[postgis] 01/01: Import upstream version 2.2.0~rc1+dfsg.

Markus Wanner markus_wanner-guest at moszumanska.debian.org
Fri Sep 25 18:17:15 UTC 2015


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

markus_wanner-guest pushed a commit to branch upstream
in repository postgis.

commit 20b21396a3769f7fc6375008a9d899c8e88765dc
Author: Markus Wanner <markus at bluegap.ch>
Date:   Fri Sep 25 19:17:51 2015 +0200

    Import upstream version 2.2.0~rc1+dfsg.
---
 .gitattributes                                     |     9 +
 .travis.yml                                        |    62 +-
 ChangeLog                                          | 70176 ++++++++++++-------
 GNUmakefile.in                                     |    26 +-
 NEWS                                               |   214 +-
 README.md                                          |    10 +
 README.postgis                                     |   146 +-
 TODO                                               |     1 -
 Version.config                                     |     4 +-
 astyle.sh                                          |     2 +-
 authors.git                                        |     6 +-
 authors.svn                                        |     8 +-
 autogen.sh                                         |    29 +-
 ci/debbie/postgis_regress.sh                       |    79 +
 ci/winnie/build_postgis.sh                         |   143 +
 ci/winnie/package_postgis.sh                       |   203 +
 ci/winnie/regress_postgis.sh                       |   174 +
 configure                                          |  4738 +-
 configure.ac                                       |   414 +-
 doc/.tx/config                                     |   168 +
 doc/Makefile.comments.in                           |    15 +-
 doc/Makefile.in                                    |    53 +-
 doc/doxygen.cfg.in                                 |     4 +-
 doc/extras.xml                                     |     1 -
 doc/extras_address_standardizer.xml                |   703 +
 doc/extras_tigergeocoder.xml                       |  1551 +-
 doc/extras_topology.xml                            |   140 +-
 doc/faq.xml                                        |    21 +-
 doc/faq_raster.xml                                 |     2 +
 doc/html/image_src/Makefile.in                     |    21 +-
 doc/html/image_src/generator.c                     |    35 +-
 doc/html/image_src/st_approximatemedialaxis01.wkt  |     2 +
 doc/html/image_src/st_extrude01.wkt                |     1 +
 doc/html/image_src/st_extrude03.wkt                |     1 +
 doc/html/image_src/st_minkowskisum01.wkt           |     3 +
 doc/html/image_src/st_minkowskisum02.wkt           |     2 +
 doc/html/image_src/st_minkowskisum03.wkt           |     3 +
 doc/html/image_src/st_minkowskisum04.wkt           |     5 +
 doc/html/image_src/st_split01.wkt                  |     2 +-
 doc/html/image_src/st_split02.wkt                  |     3 +-
 doc/html/image_src/st_straightskeleton01.wkt       |     1 +
 doc/html/image_src/st_subdivide01.wkt              |     4 +
 doc/html/image_src/st_subdivide02.wkt              |     4 +
 doc/html/image_src/st_tesselate03.wkt              |     1 +
 doc/html/image_src/st_tesselate04.wkt              |     5 +
 doc/html/image_src/styles.c                        |     1 -
 doc/html/image_src/styles.conf                     |    12 +
 doc/html/image_src/styles.h                        |     1 -
 doc/html/images/st_extrude02.png                   |   Bin 0 -> 6667 bytes
 doc/html/images/st_extrude04.png                   |   Bin 0 -> 4563 bytes
 doc/html/images/st_straightskeleton02.png          |   Bin 0 -> 4570 bytes
 doc/html/images/st_tesselate01.png                 |   Bin 0 -> 6072 bytes
 doc/html/images/st_tesselate02.png                 |   Bin 0 -> 10029 bytes
 doc/installation.xml                               |   912 +-
 doc/introduction.xml                               |    20 +-
 doc/man/pgsql2shp.1                                |     2 +-
 doc/man/shp2pgsql.1                                |    15 +-
 doc/po/README                                      |    38 +-
 doc/po/es/Makefile                                 |     2 +
 doc/po/es/extras.xml.po                            |    40 +
 doc/po/es/extras_address_standardizer.xml.po       |   852 +
 doc/po/es/extras_historytable.xml.po               |   344 +
 doc/po/es/extras_tigergeocoder.xml.po              |  2419 +
 doc/po/es/extras_topology.xml.po                   |  4209 ++
 doc/po/es/faq.xml.po                               |  1026 +
 doc/po/es/faq_raster.xml.po                        |   957 +
 doc/po/es/installation.xml.po                      |  3927 ++
 doc/po/es/introduction.xml.po                      |   676 +
 doc/po/es/performance_tips.xml.po                  |   605 +
 doc/po/es/postgis.xml.po                           |    75 +
 doc/po/es/reference.xml.po                         |    73 +
 doc/po/es/reference_accessor.xml.po                |  4200 ++
 doc/po/es/reference_constructor.xml.po             |  4345 ++
 doc/po/es/reference_editor.xml.po                  |  2547 +
 doc/po/es/reference_exception.xml.po               |   225 +
 doc/po/es/reference_guc.xml.po                     |   408 +
 doc/po/es/reference_lrs.xml.po                     |   797 +
 doc/po/es/reference_management.xml.po              |  1650 +
 doc/po/es/reference_measure.xml.po                 |  5034 ++
 doc/po/es/reference_misc.xml.po                    |   866 +
 doc/po/es/reference_operator.xml.po                |  1317 +
 doc/po/es/reference_output.xml.po                  |  2080 +
 doc/po/es/reference_processing.xml.po              |  3988 ++
 doc/po/es/reference_raster.xml.po                  | 16703 +++++
 doc/po/es/reference_sfcgal.xml.po                  |   620 +
 doc/po/es/reference_transaction.xml.po             |   517 +
 doc/po/es/reference_type.xml.po                    |   327 +
 doc/po/es/release_notes.xml.po                     |  6523 ++
 doc/po/es/reporting.xml.po                         |   210 +
 doc/po/es/using_postgis_app.xml.po                 |  1123 +
 doc/po/es/using_postgis_dataman.xml.po             |  5200 ++
 doc/po/es/using_raster_dataman.xml.po              |  2235 +
 doc/po/fr/Makefile                                 |     2 +
 doc/po/fr/extras.xml.po                            |    41 +
 doc/po/fr/extras_address_standardizer.xml.po       |   852 +
 doc/po/fr/extras_historytable.xml.po               |   303 +
 doc/po/fr/extras_tigergeocoder.xml.po              |  2407 +
 doc/po/fr/extras_topology.xml.po                   |  4588 ++
 doc/po/fr/faq.xml.po                               |  1019 +
 doc/po/fr/faq_raster.xml.po                        |   833 +
 doc/po/fr/installation.xml.po                      |  3924 ++
 doc/po/fr/introduction.xml.po                      |   684 +
 doc/po/fr/performance_tips.xml.po                  |   606 +
 doc/po/fr/postgis.xml.po                           |    76 +
 doc/po/fr/reference.xml.po                         |    74 +
 doc/po/fr/reference_accessor.xml.po                |  4235 ++
 doc/po/fr/reference_constructor.xml.po             |  4349 ++
 doc/po/fr/reference_editor.xml.po                  |  2724 +
 doc/po/fr/reference_exception.xml.po               |   282 +
 doc/po/fr/reference_guc.xml.po                     |   408 +
 doc/po/fr/reference_lrs.xml.po                     |   910 +
 doc/po/fr/reference_management.xml.po              |  1644 +
 doc/po/fr/reference_measure.xml.po                 |  5625 ++
 doc/po/fr/reference_misc.xml.po                    |   913 +
 doc/po/fr/reference_operator.xml.po                |  1333 +
 doc/po/fr/reference_output.xml.po                  |  2331 +
 doc/po/fr/reference_processing.xml.po              |  4110 ++
 doc/po/fr/reference_raster.xml.po                  | 18932 +++++
 doc/po/fr/reference_sfcgal.xml.po                  |   653 +
 doc/po/fr/reference_transaction.xml.po             |   520 +
 doc/po/fr/reference_type.xml.po                    |   329 +
 doc/po/fr/release_notes.xml.po                     |  6537 ++
 doc/po/fr/reporting.xml.po                         |   192 +
 doc/po/fr/using_postgis_app.xml.po                 |   854 +
 doc/po/fr/using_postgis_dataman.xml.po             |  3899 ++
 doc/po/fr/using_raster_dataman.xml.po              |  1590 +
 doc/po/it_IT/extras.xml.po                         |    24 +-
 doc/po/it_IT/extras_address_standardizer.xml.po    |   851 +
 doc/po/it_IT/extras_tigergeocoder.xml.po           |   711 +-
 doc/po/it_IT/extras_topology.xml.po                |  1384 +-
 doc/po/it_IT/faq.xml.po                            |   544 +-
 doc/po/it_IT/faq_raster.xml.po                     |   418 +-
 doc/po/it_IT/installation.xml.po                   |  1573 +-
 doc/po/it_IT/introduction.xml.po                   |   468 +-
 doc/po/it_IT/performance_tips.xml.po               |   209 +-
 doc/po/it_IT/postgis.xml.po                        |    56 +-
 doc/po/it_IT/reference.xml.po                      |    40 +-
 doc/po/it_IT/reference_accessor.xml.po             |   981 +-
 doc/po/it_IT/reference_constructor.xml.po          |  1151 +-
 doc/po/it_IT/reference_editor.xml.po               |   807 +-
 doc/po/it_IT/reference_guc.xml.po                  |   407 +
 doc/po/it_IT/reference_lrs.xml.po                  |   212 +-
 doc/po/it_IT/reference_management.xml.po           |   618 +-
 doc/po/it_IT/reference_measure.xml.po              |  1501 +-
 doc/po/it_IT/reference_misc.xml.po                 |   186 +-
 doc/po/it_IT/reference_operator.xml.po             |    51 +-
 doc/po/it_IT/reference_output.xml.po               |   655 +-
 doc/po/it_IT/reference_processing.xml.po           |   978 +-
 doc/po/it_IT/reference_raster.xml.po               | 10497 ++-
 doc/po/it_IT/reference_sfcgal.xml.po               |   593 +-
 doc/po/it_IT/reference_type.xml.po                 |   115 +-
 doc/po/it_IT/release_notes.xml.po                  |  3562 +-
 doc/po/it_IT/reporting.xml.po                      |    70 +-
 doc/po/it_IT/using_postgis_dataman.xml.po          |   521 +-
 doc/po/it_IT/using_raster_dataman.xml.po           |  1059 +-
 doc/po/ko_KR/Makefile                              |     2 +
 doc/po/ko_KR/extras.xml.po                         |    39 +
 doc/po/ko_KR/extras_address_standardizer.xml.po    |   852 +
 doc/po/ko_KR/extras_historytable.xml.po            |   261 +
 doc/po/ko_KR/extras_tigergeocoder.xml.po           |  2327 +
 doc/po/ko_KR/extras_topology.xml.po                |  4209 ++
 doc/po/ko_KR/faq.xml.po                            |   981 +
 doc/po/ko_KR/faq_raster.xml.po                     |   714 +
 doc/po/ko_KR/installation.xml.po                   |  3424 +
 doc/po/ko_KR/introduction.xml.po                   |   600 +
 doc/po/ko_KR/performance_tips.xml.po               |   464 +
 doc/po/ko_KR/postgis.xml.po                        |    75 +
 doc/po/ko_KR/reference.xml.po                      |    66 +
 doc/po/ko_KR/reference_accessor.xml.po             |  3381 +
 doc/po/ko_KR/reference_constructor.xml.po          |  3308 +
 doc/po/ko_KR/reference_editor.xml.po               |  2547 +
 doc/po/ko_KR/reference_exception.xml.po            |   225 +
 doc/po/ko_KR/reference_guc.xml.po                  |   408 +
 doc/po/ko_KR/reference_lrs.xml.po                  |   797 +
 doc/po/ko_KR/reference_management.xml.po           |  1543 +
 doc/po/ko_KR/reference_measure.xml.po              |  5034 ++
 doc/po/ko_KR/reference_misc.xml.po                 |   866 +
 doc/po/ko_KR/reference_operator.xml.po             |  1317 +
 doc/po/ko_KR/reference_output.xml.po               |  2080 +
 doc/po/ko_KR/reference_processing.xml.po           |  3988 ++
 doc/po/ko_KR/reference_raster.xml.po               | 16704 +++++
 doc/po/ko_KR/reference_sfcgal.xml.po               |   620 +
 doc/po/ko_KR/reference_transaction.xml.po          |   393 +
 doc/po/ko_KR/reference_type.xml.po                 |   318 +
 doc/po/ko_KR/release_notes.xml.po                  |  6523 ++
 doc/po/ko_KR/reporting.xml.po                      |   171 +
 doc/po/ko_KR/using_postgis_app.xml.po              |   798 +
 doc/po/ko_KR/using_postgis_dataman.xml.po          |  3911 ++
 doc/po/ko_KR/using_raster_dataman.xml.po           |  1590 +
 doc/po/pl/Makefile                                 |     2 +
 doc/po/pl/extras.xml.po                            |    40 +
 doc/po/pl/extras_address_standardizer.xml.po       |   853 +
 doc/po/pl/extras_historytable.xml.po               |   262 +
 doc/po/pl/extras_tigergeocoder.xml.po              |  2328 +
 doc/po/pl/extras_topology.xml.po                   |  4706 ++
 doc/po/pl/faq.xml.po                               |   778 +
 doc/po/pl/faq_raster.xml.po                        |   715 +
 doc/po/pl/installation.xml.po                      |  2953 +
 doc/po/pl/introduction.xml.po                      |   619 +
 doc/po/pl/performance_tips.xml.po                  |   465 +
 doc/po/pl/postgis.xml.po                           |    77 +
 doc/po/pl/reference.xml.po                         |    57 +
 doc/po/pl/reference_accessor.xml.po                |  3382 +
 doc/po/pl/reference_constructor.xml.po             |  3760 +
 doc/po/pl/reference_editor.xml.po                  |  2880 +
 doc/po/pl/reference_exception.xml.po               |   238 +
 doc/po/pl/reference_guc.xml.po                     |   409 +
 doc/po/pl/reference_lrs.xml.po                     |   898 +
 doc/po/pl/reference_management.xml.po              |  1204 +
 doc/po/pl/reference_measure.xml.po                 |  5035 ++
 doc/po/pl/reference_misc.xml.po                    |   867 +
 doc/po/pl/reference_operator.xml.po                |  1639 +
 doc/po/pl/reference_output.xml.po                  |  2081 +
 doc/po/pl/reference_processing.xml.po              |  3989 ++
 doc/po/pl/reference_raster.xml.po                  | 16704 +++++
 doc/po/pl/reference_sfcgal.xml.po                  |   621 +
 doc/po/pl/reference_transaction.xml.po             |   394 +
 doc/po/pl/reference_type.xml.po                    |   279 +
 doc/po/pl/release_notes.xml.po                     |  6524 ++
 doc/po/pl/reporting.xml.po                         |   172 +
 doc/po/pl/using_postgis_app.xml.po                 |   799 +
 doc/po/pl/using_postgis_dataman.xml.po             |  3900 ++
 doc/po/pl/using_raster_dataman.xml.po              |  1657 +
 doc/po/pt_BR/extras.xml.po                         |    24 +-
 doc/po/pt_BR/extras_address_standardizer.xml.po    |   851 +
 doc/po/pt_BR/extras_historytable.xml.po            |   128 +-
 doc/po/pt_BR/extras_tigergeocoder.xml.po           |   711 +-
 doc/po/pt_BR/extras_topology.xml.po                |  1384 +-
 doc/po/pt_BR/faq.xml.po                            |   562 +-
 doc/po/pt_BR/faq_raster.xml.po                     |   487 +-
 doc/po/pt_BR/installation.xml.po                   |  1573 +-
 doc/po/pt_BR/introduction.xml.po                   |   502 +-
 doc/po/pt_BR/performance_tips.xml.po               |    12 +-
 doc/po/pt_BR/postgis.xml.po                        |    55 +-
 doc/po/pt_BR/reference.xml.po                      |    39 +-
 doc/po/pt_BR/reference_accessor.xml.po             |   981 +-
 doc/po/pt_BR/reference_constructor.xml.po          |  1151 +-
 doc/po/pt_BR/reference_editor.xml.po               |   807 +-
 doc/po/pt_BR/reference_guc.xml.po                  |   407 +
 doc/po/pt_BR/reference_lrs.xml.po                  |   212 +-
 doc/po/pt_BR/reference_management.xml.po           |    83 +-
 doc/po/pt_BR/reference_measure.xml.po              |  1501 +-
 doc/po/pt_BR/reference_misc.xml.po                 |   186 +-
 doc/po/pt_BR/reference_operator.xml.po             |    51 +-
 doc/po/pt_BR/reference_output.xml.po               |   655 +-
 doc/po/pt_BR/reference_processing.xml.po           |   978 +-
 doc/po/pt_BR/reference_raster.xml.po               | 10497 ++-
 doc/po/pt_BR/reference_sfcgal.xml.po               |   580 +-
 doc/po/pt_BR/release_notes.xml.po                  |  3562 +-
 doc/po/pt_BR/using_postgis_dataman.xml.po          |   521 +-
 doc/po/pt_BR/using_raster_dataman.xml.po           |   379 +-
 doc/po/templates/extras.xml.pot                    |    20 +-
 .../templates/extras_address_standardizer.xml.pot  |   704 +
 doc/po/templates/extras_tigergeocoder.xml.pot      |   549 +-
 doc/po/templates/extras_topology.xml.pot           |  1136 +-
 doc/po/templates/faq.xml.pot                       |   228 +-
 doc/po/templates/faq_raster.xml.pot                |   122 +-
 doc/po/templates/installation.xml.pot              |  1335 +-
 doc/po/templates/introduction.xml.pot              |   184 +-
 doc/po/templates/performance_tips.xml.pot          |     8 +-
 doc/po/templates/postgis.xml.pot                   |    20 +-
 doc/po/templates/reference.xml.pot                 |     4 +-
 doc/po/templates/reference_accessor.xml.pot        |   716 +-
 doc/po/templates/reference_constructor.xml.pot     |   943 +-
 doc/po/templates/reference_editor.xml.pot          |   621 +-
 doc/po/templates/reference_guc.xml.pot             |   338 +
 doc/po/templates/reference_lrs.xml.pot             |   190 +-
 doc/po/templates/reference_management.xml.pot      |    68 +-
 doc/po/templates/reference_measure.xml.pot         |  1127 +-
 doc/po/templates/reference_misc.xml.pot            |   144 +-
 doc/po/templates/reference_operator.xml.pot        |    46 +-
 doc/po/templates/reference_output.xml.pot          |   530 +-
 doc/po/templates/reference_processing.xml.pot      |   794 +-
 doc/po/templates/reference_raster.xml.pot          |  6166 +-
 doc/po/templates/reference_sfcgal.xml.pot          |   417 +-
 doc/po/templates/release_notes.xml.pot             |  3314 +-
 doc/po/templates/using_postgis_dataman.xml.pot     |   458 +-
 doc/po/templates/using_raster_dataman.xml.pot      |   333 +-
 doc/postgis.xml                                    |    16 +-
 doc/postgis_comments.sql                           |   108 +-
 doc/raster_comments.sql                            |    37 +-
 doc/reference.xml                                  |     2 +
 doc/reference_accessor.xml                         |   104 +-
 doc/reference_constructor.xml                      |   111 +-
 doc/reference_editor.xml                           |   103 +-
 doc/reference_guc.xml                              |   235 +
 doc/reference_lrs.xml                              |    37 +-
 doc/reference_management.xml                       |    11 +-
 doc/reference_measure.xml                          |   274 +-
 doc/reference_misc.xml                             |    39 +-
 doc/reference_operator.xml                         |   262 +-
 doc/reference_output.xml                           |   149 +-
 doc/reference_processing.xml                       |   522 +-
 doc/reference_raster.xml                           |   957 +-
 doc/reference_sfcgal.xml                           |   607 +-
 doc/reference_temporal.xml                         |   292 +
 doc/release_notes.xml                              |   988 +-
 doc/sfcgal_comments.sql                            |    18 +-
 doc/template.xml                                   |     3 +
 doc/topology_comments.sql                          |     2 +-
 doc/using_postgis_dataman.xml                      |    40 +-
 doc/using_raster_dataman.xml                       |    17 +-
 doc/xsl/post_gis_day_cards.html.xsl                |     1 -
 doc/xsl/postgis_aggs_mm.xml.xsl                    |    98 +-
 doc/xsl/postgis_cheatsheet.html.xsl                |     1 -
 doc/xsl/postgis_comments.sql.xsl                   |     3 +-
 doc/xsl/postgis_gardentest.sql.xsl                 |    18 +-
 doc/xsl/postgis_gardentest_subset.sql.xsl          |     1 -
 doc/xsl/postgis_reference.xml.xsl                  |     1 -
 doc/xsl/raster_cheatsheet.html.xsl                 |     1 -
 doc/xsl/raster_comments.sql.xsl                    |     1 -
 doc/xsl/raster_gardentest.sql.xsl                  |     7 +-
 doc/xsl/sfcgal_cheatsheet.html.xsl                 |     1 -
 doc/xsl/sfcgal_comments.sql.xsl                    |     1 -
 doc/xsl/tiger_geocoder_cheatsheet.html.xsl         |     1 -
 doc/xsl/tiger_geocoder_comments.sql.xsl            |     1 -
 doc/xsl/topology_cheatsheet.html.xsl               |     1 -
 doc/xsl/topology_comments.sql.xsl                  |     1 -
 doc/xsl/topology_gardentest.sql.xsl                |     1 -
 extensions/Makefile.in                             |    13 +-
 extensions/address_standardizer/COPYING            |    12 +
 extensions/address_standardizer/Makefile           |   173 +
 extensions/address_standardizer/Makefile.in        |   173 +
 .../README.address_standardizer                    |   219 +
 extensions/address_standardizer/address_parser.c   |   120 +
 .../address_standardizer/address_standardizer.c    |   284 +
 .../address_standardizer.control                   |     4 +
 .../address_standardizer.control.in                |     4 +
 .../address_standardizer_data_us.control           |     4 +
 .../address_standardizer_data_us.control.in        |     4 +
 .../address_standardizer_functions.sql.in          |    38 +
 .../address_standardizer_types.sql.in              |    23 +
 extensions/address_standardizer/analyze.c          |  1501 +
 extensions/address_standardizer/err_param.c        |   278 +
 .../expected/test-init-extensions.out              |     2 +
 .../expected/test-parseaddress.out                 |    17 +
 .../expected/test-standardize_address_1.out        |    36 +
 .../expected/test-standardize_address_2.out        |   115 +
 extensions/address_standardizer/export.c           |   432 +
 extensions/address_standardizer/gamma.c            |   938 +
 extensions/address_standardizer/gamma.h            |     3 +
 extensions/address_standardizer/hash.c             |   191 +
 extensions/address_standardizer/hash.h             |   107 +
 extensions/address_standardizer/khash.h            |   317 +
 extensions/address_standardizer/lexicon.c          |   529 +
 extensions/address_standardizer/micro-macro.sql    |   110 +
 extensions/address_standardizer/mk-city-regex.pl   |    50 +
 extensions/address_standardizer/mk-sql.pl          |    31 +
 extensions/address_standardizer/mk-st-regexp.pl    |   734 +
 extensions/address_standardizer/pagc_api.h         |  1260 +
 extensions/address_standardizer/pagc_common.h      |   118 +
 extensions/address_standardizer/pagc_std_api.h     |    75 +
 extensions/address_standardizer/pagc_tools.c       |   441 +
 extensions/address_standardizer/pagc_tools.h       |    40 +
 extensions/address_standardizer/parseaddress-api.c |   523 +
 extensions/address_standardizer/parseaddress-api.h |    74 +
 .../address_standardizer/parseaddress-regex.h      |    12 +
 .../address_standardizer/parseaddress-stcities.h   |  5346 ++
 ...andardizer_data_us_mark_editable_objects.sql.in |     3 +
 extensions/address_standardizer/standard.c         |   692 +
 extensions/address_standardizer/std_pg_hash.c      |   895 +
 extensions/address_standardizer/std_pg_hash.h      |    16 +
 .../test-init-extensions.sql.in                    |     2 +
 .../address_standardizer/test-parseaddress.sql.in  |    76 +
 .../test-standardize_address_1.sql.in              |     6 +
 .../test-standardize_address_2.sql.in              |   113 +
 extensions/address_standardizer/test2.sql          |     8 +
 extensions/address_standardizer/test_main.c        |   335 +
 extensions/address_standardizer/tokenize.c         |  1004 +
 extensions/address_standardizer/us_gaz.sql         |  1091 +
 extensions/address_standardizer/us_lex.sql         |  2956 +
 extensions/address_standardizer/us_rules.sql       |  4383 ++
 .../address_standardizer/usps-st-city-adds.txt     |    11 +
 .../address_standardizer/usps-st-city-orig.txt     | 38469 ++++++++++
 extensions/postgis/META.json                       |   110 +-
 extensions/postgis/Makefile.in                     |    97 +-
 extensions/postgis/postgis.control                 |     4 +-
 .../postgis/sql_bits/mark_editable_objects.sql.in  |     2 +-
 .../postgis/sql_bits/postgis--unpackaged.sql.in    |  1173 -
 .../postgis/sql_bits/remove_from_extension.sql.in  |     1 -
 extensions/postgis_extension_helper.sql            |     9 +-
 extensions/postgis_extension_helper_uninstall.sql  |     1 -
 extensions/postgis_sfcgal/Makefile                 |    89 +
 extensions/postgis_sfcgal/Makefile.in              |    89 +
 extensions/postgis_sfcgal/postgis_sfcgal.control   |     5 +
 .../postgis_sfcgal/postgis_sfcgal.control.in       |     5 +
 extensions/postgis_tiger_geocoder/Makefile.in      |   167 +-
 .../postgis_tiger_geocoder.control                 |     2 +-
 .../sql_bits/add_search_path.sql.in                |    37 +-
 .../sql_bits/norm_addy_create.sql.in               |    22 +-
 .../sql_bits/remove_from_extension.sql.in          |    39 +-
 .../sql_bits/test_tuples_only_unaligned.sql.in     |     1 +
 .../sql_bits/tiger_geocoder--unpackaged.sql.in     |   198 +-
 extensions/postgis_topology/Makefile.in            |    33 +-
 extensions/postgis_topology/doc/postgis.md         |     4 +-
 extensions/postgis_topology/extlock.sql            |     2 +
 .../postgis_topology/postgis_topology.control      |     2 +-
 .../sql_bits/remove_from_extension.sql.in          |     1 -
 .../sql_bits/topology--unpackaged.sql.in           |    95 -
 extensions/upgradeable_versions.mk                 |    28 +-
 extras/WFS_locks/WFS_locks.sql.in                  |     1 -
 extras/rpm/spec/postgis.spec                       |     2 +-
 extras/tiger_geocoder/README                       |   169 +-
 extras/tiger_geocoder/census_loader.sql            |   184 +
 extras/tiger_geocoder/create_geocode.bat           |    19 +
 extras/tiger_geocoder/create_geocode.sh            |    18 +
 extras/tiger_geocoder/create_geocode.sql           |    85 +
 .../geocode/census_tracts_functions.sql            |    55 +
 extras/tiger_geocoder/geocode/geocode.sql          |   130 +
 extras/tiger_geocoder/geocode/geocode_address.sql  |   436 +
 .../geocode/geocode_intersection.sql               |   148 +
 extras/tiger_geocoder/geocode/geocode_location.sql |    98 +
 extras/tiger_geocoder/geocode/includes_address.sql |    93 +
 .../geocode/interpolate_from_address.sql           |    98 +
 .../geocode/other_helper_functions.sql             |   251 +
 extras/tiger_geocoder/geocode/rate_attributes.sql  |    78 +
 extras/tiger_geocoder/geocode/reverse_geocode.sql  |   244 +
 extras/tiger_geocoder/geocode_settings.sql         |    69 +
 .../legacy_import/tiger2008/import_tiger_shps.sh   |     0
 .../{tiger_2011 => }/normalize/count_words.sql     |     0
 .../{tiger_2011 => }/normalize/end_soundex.sql     |     0
 .../{tiger_2011 => }/normalize/get_last_words.sql  |     0
 .../normalize/location_extract.sql                 |     0
 .../normalize/location_extract_countysub_exact.sql |     0
 .../normalize/location_extract_countysub_fuzzy.sql |     0
 .../normalize/location_extract_place_exact.sql     |    60 +
 .../normalize/location_extract_place_fuzzy.sql     |    88 +
 .../tiger_geocoder/normalize/normalize_address.sql |   711 +
 extras/tiger_geocoder/normalize/pprint_addy.sql    |    43 +
 .../{tiger_2011 => }/normalize/state_extract.sql   |     0
 .../pagc_normalize/pagc_normalize_address.sql      |    50 +
 .../tiger_geocoder/pagc_normalize/pagc_tables.sql  |  8187 +++
 .../{tiger_2011 => }/regress/geocode_regress       |     0
 extras/tiger_geocoder/regress/geocode_regress.sql  |   108 +
 .../regress/normalize_address_desired_regress      |    45 +
 .../regress/normalize_address_regress              |    45 +
 .../regress/normalize_address_regress.sql          |    99 +
 .../regress/pagc_normalize_address_desired_regress |    46 +
 .../regress/pagc_normalize_address_regress         |    53 +
 .../regress/pagc_normalize_address_regress.sql     |   112 +
 .../{tiger_2011 => }/regress/regress.sql           |     0
 .../regress/reverse_geocode_regress                |     0
 .../regress/reverse_geocode_regress.sql            |     0
 .../tiger_geocoder/tables/lookup_tables_2011.sql   |  1339 +
 extras/tiger_geocoder/tiger_2011/README            |   145 -
 extras/tiger_geocoder/tiger_2011/census_loader.sql |   188 -
 .../tiger_geocoder/tiger_2011/create_geocode.bat   |    23 -
 extras/tiger_geocoder/tiger_2011/create_geocode.sh |    22 -
 .../tiger_geocoder/tiger_2011/create_geocode.sql   |    86 -
 .../tiger_2011/geocode/census_tracts_functions.sql |    57 -
 .../tiger_geocoder/tiger_2011/geocode/geocode.sql  |   131 -
 .../tiger_2011/geocode/geocode_address.sql         |   437 -
 .../tiger_2011/geocode/geocode_intersection.sql    |   149 -
 .../tiger_2011/geocode/geocode_location.sql        |    99 -
 .../tiger_2011/geocode/includes_address.sql        |    94 -
 .../geocode/interpolate_from_address.sql           |    99 -
 .../tiger_2011/geocode/other_helper_functions.sql  |   252 -
 .../tiger_2011/geocode/rate_attributes.sql         |    80 -
 .../tiger_2011/geocode/reverse_geocode.sql         |   246 -
 .../tiger_geocoder/tiger_2011/geocode_settings.sql |    58 -
 .../normalize/location_extract_place_exact.sql     |    62 -
 .../normalize/location_extract_place_fuzzy.sql     |    90 -
 .../tiger_2011/normalize/normalize_address.sql     |   713 -
 .../tiger_2011/normalize/pprint_addy.sql           |    43 -
 .../pagc_normalize/pagc_normalize_address.sql      |    52 -
 .../tiger_2011/pagc_normalize/pagc_tables.sql      |  8185 ---
 .../tiger_2011/regress/geocode_regress.sql         |   109 -
 .../tiger_2011/regress/normalize_address_regress   |    44 -
 .../regress/normalize_address_regress.sql          |    95 -
 .../regress/pagc_normalize_address_regress.sql     |    97 -
 .../tiger_2011/tables/lookup_tables_2011.sql       |  1340 -
 .../tiger_2011/tiger_loader_2011.sql               |   376 -
 .../tiger_2011/tiger_loader_2012.sql               |   407 -
 .../tiger_2011/tiger_loader_2013.sql               |   406 -
 extras/tiger_geocoder/tiger_2011/topology/README   |     4 -
 .../tiger_2011/topology/tiger_topology_loader.sql  |   188 -
 .../tiger_geocoder/tiger_2011/upgrade_geocode.sql  |   297 -
 .../tiger_geocoder/tiger_2011/upgrade_geocoder.bat |    17 -
 .../tiger_geocoder/tiger_2011/upgrade_geocoder.sh  |    14 -
 .../tiger_2011/utility/levenshtein_ignore_case.sql |     5 -
 .../tiger_2011/utility/set_search_path.sql         |    24 -
 extras/tiger_geocoder/tiger_loader_2011.sql        |   375 +
 extras/tiger_geocoder/tiger_loader_2012.sql        |   406 +
 extras/tiger_geocoder/tiger_loader_2013.sql        |   405 +
 extras/tiger_geocoder/tiger_loader_2014.sql        |   572 +
 extras/tiger_geocoder/tiger_loader_2015.sql        |   572 +
 extras/tiger_geocoder/topology/README              |     3 +
 .../topology/tiger_topology_loader.sql             |   186 +
 extras/tiger_geocoder/upgrade_geocode.sql          |   297 +
 extras/tiger_geocoder/upgrade_geocoder.bat         |    19 +
 extras/tiger_geocoder/upgrade_geocoder.sh          |    13 +
 .../{tiger_2011 => }/utility/cull_null.sql         |     0
 .../utility/levenshtein_ignore_case.sql            |     5 +
 .../utility/nullable_levenshtein.sql               |     0
 extras/tiger_geocoder/utility/set_search_path.sql  |    23 +
 .../utility/standardize_tiger_data.sql             |     8 +
 .../{tiger_2011 => }/utility/utmzone.sql           |     0
 java/Makefile                                      |    20 -
 java/ejb2/CHANGES                                  |     6 -
 java/ejb2/COPYING                                  |   341 -
 java/ejb2/COPYING_LGPL                             |   510 -
 java/ejb2/README                                   |   177 -
 java/ejb2/build.xml                                |   272 -
 java/ejb2/prepare-jboss.xml                        |    39 -
 java/ejb2/resources/application.xml                |    19 -
 java/ejb2/resources/build.properties               |    12 -
 java/ejb2/resources/jndi/jndi.properties           |     3 -
 java/ejb2/resources/postgis-ejb2-ds.xml            |    17 -
 java/ejb2/src/com/geodetix/geo/client/Client.java  |   246 -
 .../com/geodetix/geo/dao/PostGisGeometryDAO.java   |   153 -
 .../geodetix/geo/dao/PostGisGeometryDAOImpl.java   |   579 -
 .../src/com/geodetix/geo/ejb/GeometryBean.java     |   298 -
 .../com/geodetix/geo/ejb/GeometryFacadeBean.java   |   238 -
 .../exception/ApplicationGeoLayerException.java    |    66 -
 java/ejb3/.classpath                               |    11 -
 java/ejb3/.project                                 |    18 -
 java/ejb3/.settings/org.eclipse.jdt.core.prefs     |     7 -
 java/ejb3/EJB3Spatial.odt                          |   Bin 56432 -> 0 bytes
 java/ejb3/README.txt                               |    28 -
 java/ejb3/build.xml                                |    71 -
 java/ejb3/jboss/geodata-ds.xml                     |    13 -
 java/ejb3/jboss/ingest-service.xml                 |     7 -
 java/ejb3/src/META-INF/persistence.xml             |     5 -
 java/ejb3/src/jndi.properties                      |     3 -
 java/ejb3/src/org/postgis/ejb/PersonEntity.java    |    96 -
 java/ejb3/src/org/postgis/ejb/UserBean.java        |   124 -
 java/ejb3/src/org/postgis/ejb/UserBeanRemote.java  |    35 -
 java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java   |    99 -
 .../org/postgis/hibernate/ContainsExpression.java  |    83 -
 .../src/org/postgis/hibernate/GeometryType.java    |   150 -
 .../postgis/hibernate/IntersectsExpression.java    |    83 -
 .../src/org/postgis/hibernate/PostGISDialect.java  |    76 -
 .../org/postgis/hibernate/WithinExpression.java    |    83 -
 java/jdbc/COPYING_LGPL                             |   510 -
 java/jdbc/Makefile.in                              |    33 -
 java/jdbc/README                                   |   237 -
 java/jdbc/build.xml                                |   157 -
 java/jdbc/pom.xml.in                               |   147 -
 java/jdbc/src/examples/Test.java                   |   102 -
 java/jdbc/src/examples/TestAutoregister.java       |   182 -
 java/jdbc/src/examples/TestBoxes.java              |   234 -
 java/jdbc/src/examples/TestJava2d.java             |   178 -
 java/jdbc/src/examples/TestParser.java             |   580 -
 java/jdbc/src/examples/TestServer.java             |   108 -
 java/jdbc/src/examples/VersionPrinter.java         |   144 -
 java/jdbc/src/org/postgis/ComposedGeom.java        |   272 -
 java/jdbc/src/org/postgis/DriverWrapper.java       |   326 -
 .../src/org/postgis/DriverWrapperAutoprobe.java    |   110 -
 java/jdbc/src/org/postgis/DriverWrapperLW.java     |    84 -
 java/jdbc/src/org/postgis/Geometry.java            |   336 -
 java/jdbc/src/org/postgis/GeometryCollection.java  |    81 -
 java/jdbc/src/org/postgis/LineString.java          |   102 -
 java/jdbc/src/org/postgis/LinearRing.java          |    75 -
 java/jdbc/src/org/postgis/MultiLineString.java     |    96 -
 java/jdbc/src/org/postgis/MultiPoint.java          |    50 -
 java/jdbc/src/org/postgis/MultiPolygon.java        |    74 -
 java/jdbc/src/org/postgis/PGbox2d.java             |    66 -
 java/jdbc/src/org/postgis/PGbox3d.java             |    59 -
 java/jdbc/src/org/postgis/PGboxbase.java           |   174 -
 java/jdbc/src/org/postgis/PGgeometry.java          |   169 -
 java/jdbc/src/org/postgis/PGgeometryLW.java        |    66 -
 java/jdbc/src/org/postgis/Point.java               |   297 -
 java/jdbc/src/org/postgis/PointComposedGeom.java   |    96 -
 java/jdbc/src/org/postgis/Polygon.java             |    70 -
 java/jdbc/src/org/postgis/Version.java             |   108 -
 java/jdbc/src/org/postgis/binary/BinaryParser.java |   233 -
 java/jdbc/src/org/postgis/binary/BinaryWriter.java |   358 -
 java/jdbc/src/org/postgis/binary/ByteGetter.java   |    74 -
 java/jdbc/src/org/postgis/binary/ByteSetter.java   |    85 -
 java/jdbc/src/org/postgis/binary/ValueGetter.java  |   112 -
 java/jdbc/src/org/postgis/binary/ValueSetter.java  |   130 -
 .../jdbc/src/org/postgis/java2d/Java2DWrapper.java |   160 -
 .../src/org/postgis/java2d/PGShapeGeometry.java    |   166 -
 .../src/org/postgis/java2d/ShapeBinaryParser.java  |   225 -
 java/jdbc/src/org/postgis/overview.html            |    15 -
 java/jdbc/src/org/postgis/version.properties       |     3 -
 .../src/org/postgresql/driverconfig.properties     |     8 -
 java/jdbc/stubs/LICENSE                            |    26 -
 java/jdbc/stubs/org/postgresql/Connection.java     |    20 -
 java/jdbc/stubs/org/postgresql/PGConnection.java   |    25 -
 java/jdbc/todo.txt                                 |    28 -
 java/jdbc_jtsparser/README                         |     2 -
 java/jdbc_jtsparser/pom.xml                        |   143 -
 .../src/main/java/examples/JtsTestParser.java      |   593 -
 .../src/main/java/org/postgis/jts/JTSShape.java    |   279 -
 .../main/java/org/postgis/jts/JtsBinaryParser.java |   241 -
 .../main/java/org/postgis/jts/JtsBinaryWriter.java |   393 -
 .../src/main/java/org/postgis/jts/JtsGeometry.java |   159 -
 .../main/java/org/postgis/jts/JtsGisWrapper.java   |   155 -
 .../src/main/java/org/postgis/jts/JtsWrapper.java  |   160 -
 .../src/main/java/org/postgis/jts/overview.html    |     9 -
 liblwgeom/Makefile.in                              |    74 +-
 liblwgeom/README.topo                              |    26 +
 liblwgeom/TODO                                     |    31 +
 liblwgeom/bytebuffer.c                             |   369 +
 liblwgeom/bytebuffer.h                             |    76 +
 liblwgeom/cunit/Makefile.in                        |    25 +-
 liblwgeom/cunit/cu_algorithm.c                     |    63 +-
 liblwgeom/cunit/cu_buildarea.c                     |     2 +-
 liblwgeom/cunit/cu_bytebuffer.c                    |    58 +
 liblwgeom/cunit/cu_clean.c                         |    21 +-
 liblwgeom/cunit/cu_clip_by_rect.c                  |    64 +
 liblwgeom/cunit/cu_effectivearea.c                 |    79 +
 liblwgeom/cunit/cu_force_sfs.c                     |     3 +-
 liblwgeom/cunit/cu_geodetic.c                      |   203 +-
 liblwgeom/cunit/cu_geodetic_data.h                 |     1 -
 liblwgeom/cunit/cu_geos.c                          |    60 +
 liblwgeom/cunit/cu_geos_cluster.c                  |   250 +
 liblwgeom/cunit/cu_homogenize.c                    |     3 +-
 liblwgeom/cunit/cu_in_encoded_polyline.c           |    65 +
 liblwgeom/cunit/cu_in_geojson.c                    |   102 +-
 liblwgeom/cunit/cu_in_twkb.c                       |   244 +
 liblwgeom/cunit/cu_in_wkb.c                        |    20 +-
 liblwgeom/cunit/cu_in_wkt.c                        |    10 +-
 liblwgeom/cunit/cu_libgeom.c                       |   144 +-
 liblwgeom/cunit/cu_measures.c                      |   377 +-
 liblwgeom/cunit/cu_misc.c                          |    29 +-
 liblwgeom/cunit/cu_node.c                          |     2 +-
 liblwgeom/cunit/cu_out_encoded_polyline.c          |    97 +
 liblwgeom/cunit/cu_out_geojson.c                   |     3 +-
 liblwgeom/cunit/cu_out_gml.c                       |    66 +-
 liblwgeom/cunit/cu_out_kml.c                       |     3 +-
 liblwgeom/cunit/cu_out_svg.c                       |     3 +-
 liblwgeom/cunit/cu_out_twkb.c                      |   292 +
 liblwgeom/cunit/cu_out_wkb.c                       |    32 +-
 liblwgeom/cunit/cu_out_wkt.c                       |     3 +-
 liblwgeom/cunit/cu_out_x3d.c                       |    55 +-
 liblwgeom/cunit/cu_print.c                         |     3 +-
 liblwgeom/cunit/cu_ptarray.c                       |   162 +-
 liblwgeom/cunit/cu_split.c                         |    99 +-
 liblwgeom/cunit/cu_stringbuffer.c                  |     3 +-
 liblwgeom/cunit/cu_surface.c                       |     5 +-
 liblwgeom/cunit/cu_surface.h                       |     1 -
 liblwgeom/cunit/cu_tester.c                        |    68 +-
 liblwgeom/cunit/cu_tester.h                        |    22 +-
 liblwgeom/cunit/cu_tree.c                          |   100 +-
 liblwgeom/cunit/cu_triangulate.c                   |     2 +-
 liblwgeom/cunit/cu_unionfind.c                     |    97 +
 liblwgeom/cunit/cu_varint.c                        |   240 +
 liblwgeom/effectivearea.c                          |   547 +
 liblwgeom/effectivearea.h                          |    64 +
 liblwgeom/g_box.c                                  |    67 +-
 liblwgeom/g_serialized.c                           |     8 +-
 liblwgeom/g_util.c                                 |     1 -
 liblwgeom/liblwgeom.h.in                           |   317 +-
 liblwgeom/liblwgeom_internal.h                     |   105 +-
 liblwgeom/liblwgeom_topo.h                         |  1329 +
 liblwgeom/liblwgeom_topo_internal.h                |    81 +
 liblwgeom/lwalgorithm.c                            |    15 +-
 liblwgeom/lwcircstring.c                           |    32 +-
 liblwgeom/lwcollection.c                           |    36 +-
 liblwgeom/lwcompound.c                             |    78 +-
 liblwgeom/lwcurvepoly.c                            |     2 +-
 liblwgeom/lwgeodetic.c                             |   110 +-
 liblwgeom/lwgeodetic.h                             |     7 +-
 liblwgeom/lwgeodetic_tree.c                        |    78 +-
 liblwgeom/lwgeodetic_tree.h                        |     2 +
 liblwgeom/lwgeom.c                                 |   385 +-
 liblwgeom/lwgeom_api.c                             |    38 +-
 liblwgeom/lwgeom_debug.c                           |     9 +-
 liblwgeom/lwgeom_geos.c                            |   367 +-
 liblwgeom/lwgeom_geos.h                            |     5 +-
 liblwgeom/lwgeom_geos_clean.c                      |    15 +-
 liblwgeom/lwgeom_geos_cluster.c                    |   357 +
 liblwgeom/lwgeom_geos_node.c                       |     4 +-
 liblwgeom/lwgeom_geos_split.c                      |    88 +-
 liblwgeom/lwgeom_log.h                             |    35 +-
 liblwgeom/lwgeom_sfcgal.c                          |    16 +-
 liblwgeom/lwgeom_sfcgal.h                          |     2 +-
 liblwgeom/lwgeom_topo.c                            |  5746 ++
 liblwgeom/lwhomogenize.c                           |     1 -
 liblwgeom/lwin_encoded_polyline.c                  |    67 +
 liblwgeom/lwin_geojson.c                           |    62 +-
 liblwgeom/lwin_twkb.c                              |   668 +
 liblwgeom/lwin_wkb.c                               |    29 +-
 liblwgeom/lwin_wkt.c                               |   166 +-
 liblwgeom/lwin_wkt.h                               |     2 +
 liblwgeom/lwin_wkt_lex.c                           |   112 +-
 liblwgeom/lwin_wkt_lex.l                           |    18 +
 liblwgeom/lwin_wkt_parse.c                         |  2678 +-
 liblwgeom/lwin_wkt_parse.h                         |   110 +-
 liblwgeom/lwin_wkt_parse.y                         |    20 +-
 liblwgeom/lwline.c                                 |    97 +-
 liblwgeom/lwlinearreferencing.c                    |   667 +-
 liblwgeom/lwmcurve.c                               |     1 -
 liblwgeom/lwmline.c                                |     1 -
 liblwgeom/lwmpoint.c                               |     2 +-
 liblwgeom/lwout_encoded_polyline.c                 |   117 +
 liblwgeom/lwout_geojson.c                          |     1 -
 liblwgeom/lwout_gml.c                              |   657 +-
 liblwgeom/lwout_kml.c                              |     1 -
 liblwgeom/lwout_svg.c                              |     1 -
 liblwgeom/lwout_twkb.c                             |   601 +
 liblwgeom/lwout_twkb.h                             |    81 +
 liblwgeom/lwout_wkb.c                              |    84 +-
 liblwgeom/lwout_x3d.c                              |    95 +-
 liblwgeom/lwpoint.c                                |    10 +
 liblwgeom/lwpoly.c                                 |   114 +-
 liblwgeom/lwprint.c                                |    16 +-
 liblwgeom/lwsegmentize.c                           |   859 -
 liblwgeom/lwspheroid.c                             |   117 +-
 liblwgeom/lwstroke.c                               |   858 +
 liblwgeom/lwtriangle.c                             |     2 +-
 liblwgeom/lwunionfind.c                            |   152 +
 liblwgeom/lwunionfind.h                            |    42 +
 liblwgeom/lwutil.c                                 |    68 +-
 liblwgeom/measures.c                               |    56 +-
 liblwgeom/measures.h                               |    28 +-
 liblwgeom/measures3d.c                             |   295 +-
 liblwgeom/measures3d.h                             |    46 +-
 liblwgeom/ptarray.c                                |   202 +-
 liblwgeom/stringbuffer.c                           |     1 -
 liblwgeom/stringbuffer.h                           |     3 +-
 liblwgeom/varint.c                                 |   199 +
 liblwgeom/varint.h                                 |    45 +
 liblwgeom/vsprintf.c                               |   184 -
 libpgcommon/Makefile.in                            |     1 -
 libpgcommon/common.h                               |     1 -
 libpgcommon/cunit/Makefile.in                      |     1 -
 libpgcommon/gserialized_gist.c                     |     5 +-
 libpgcommon/gserialized_gist.h                     |     2 -
 libpgcommon/lwgeom_pg.c                            |    93 +-
 libpgcommon/lwgeom_pg.h                            |    30 +-
 libpgcommon/lwgeom_transform.c                     |    25 +
 libpgcommon/lwgeom_transform.h                     |     9 +-
 libpgcommon/pgsql_compat.h                         |    10 -
 libtool                                            |   179 +-
 loader/Makefile.in                                 |     4 +-
 loader/README.pgsql2shp                            |     2 +-
 loader/README.shp2pgsql                            |     2 +-
 loader/cunit/Makefile.in                           |     9 +-
 loader/cunit/cu_pgsql2shp.c                        |     1 -
 loader/cunit/cu_shp2pgsql.c                        |     1 -
 loader/cunit/cu_tester.c                           |     1 -
 loader/cunit/cu_tester.h                           |     1 -
 loader/dbfopen.c                                   |    13 +-
 loader/getopt.c                                    |     6 +-
 loader/pgsql2shp-cli.c                             |     1 -
 loader/pgsql2shp-core.c                            |   182 +-
 loader/pgsql2shp-core.h                            |    14 +-
 loader/safileio.c                                  |     3 +-
 loader/shapefil.h                                  |     1 -
 loader/shp2pgsql-cli.c                             |    15 +-
 loader/shp2pgsql-core.c                            |    96 +-
 loader/shp2pgsql-core.h                            |    11 +-
 loader/shp2pgsql-gui.c                             |    62 +-
 loader/shpcommon.c                                 |   213 +-
 loader/shpcommon.h                                 |   143 +-
 loader/shpopen.c                                   |    39 +-
 macros/ac_proj4_version.m4                         |     1 -
 postgis/Makefile.in                                |    72 +-
 postgis/Makefile.pgxs                              |   102 -
 postgis/geography.h                                |     1 -
 postgis/geography.sql.in                           |    52 +-
 postgis/geography_btree.c                          |     9 +-
 postgis/geography_inout.c                          |    25 +-
 postgis/geography_measurement.c                    |   227 +-
 postgis/geography_measurement_trees.c              |    12 +-
 postgis/geometry_inout.c                           |    21 +-
 postgis/gserialized_estimate.c                     |   119 +-
 postgis/gserialized_gist_2d.c                      |   110 +-
 postgis/gserialized_gist_nd.c                      |   459 +-
 postgis/gserialized_typmod.c                       |    23 +-
 postgis/legacy.sql.in                              |     1 -
 postgis/legacy_gist.sql.in                         |     2 +-
 postgis/legacy_minimal.sql.in                      |     1 -
 postgis/long_xact.c                                |    10 +-
 postgis/long_xact.sql.in                           |     1 -
 postgis/lwgeom_accum.c                             |   123 +-
 postgis/lwgeom_backend_api.c                       |   165 +-
 postgis/lwgeom_box.c                               |    34 +-
 postgis/lwgeom_box3d.c                             |     7 +-
 postgis/lwgeom_btree.c                             |    81 +-
 postgis/lwgeom_dump.c                              |   110 +-
 postgis/lwgeom_dumppoints.c                        |     3 +-
 postgis/lwgeom_export.c                            |   155 +-
 postgis/lwgeom_export.h                            |     1 -
 postgis/lwgeom_functions_analytic.c                |   414 +-
 postgis/lwgeom_functions_analytic.h                |     1 -
 postgis/lwgeom_functions_basic.c                   |   794 +-
 postgis/lwgeom_functions_lrs.c                     |    65 +-
 postgis/lwgeom_functions_temporal.c                |   113 +
 postgis/lwgeom_geos.c                              |  1512 +-
 postgis/lwgeom_geos.h                              |     6 +
 postgis/lwgeom_geos_clean.c                        |    12 +-
 postgis/lwgeom_geos_prepared.c                     |     8 +-
 postgis/lwgeom_geos_prepared.h                     |     1 -
 postgis/lwgeom_geos_relatematch.c                  |     7 +-
 postgis/lwgeom_in_encoded_polyline.c               |    55 +
 postgis/lwgeom_in_geohash.c                        |     6 +-
 postgis/lwgeom_in_geojson.c                        |    40 +-
 postgis/lwgeom_in_gml.c                            |   139 +-
 postgis/lwgeom_in_kml.c                            |    92 +-
 postgis/lwgeom_inout.c                             |   287 +-
 postgis/lwgeom_ogc.c                               |    85 +-
 postgis/lwgeom_rtree.c                             |     6 +-
 postgis/lwgeom_sfcgal.c                            |   264 +-
 postgis/lwgeom_sfcgal.h                            |     7 +
 postgis/lwgeom_spheroid.c                          |    19 +-
 postgis/lwgeom_sqlmm.c                             |    11 +-
 postgis/lwgeom_transform.c                         |     4 +-
 postgis/postgis.sql.in                             |   690 +-
 postgis/postgis_drop_after.sql                     |     3 +-
 postgis/postgis_drop_before.sql                    |    11 +-
 postgis/postgis_module.c                           |    11 +-
 postgis/sfcgal.sql.in                              |    81 +
 postgis/sqldefines.h                               |    11 +-
 postgis/sqldefines.h.in                            |     1 +
 postgis/uninstall_geography.sql.in                 |     1 -
 postgis/uninstall_long_xact.sql.in                 |     1 -
 postgis/uninstall_sqlmm.sql.in                     |     1 -
 postgis_config.h.in                                |     7 +-
 postgis_svn_revision.h                             |     2 +-
 raster/Makefile.in                                 |     6 +-
 raster/TODO                                        |     1 -
 raster/doc/RFC1-SerializedFormat                   |     9 +-
 raster/doc/RFC2-WellKnownBinaryFormat              |     9 +-
 raster/loader/Makefile.in                          |     1 -
 raster/loader/raster2pgsql.c                       |   273 +-
 raster/loader/raster2pgsql.h                       |    15 +-
 raster/macros/ac_proj4_version.m4                  |     3 +-
 raster/rt_core/Makefile.in                         |    48 +-
 raster/rt_core/librtcore.h                         |  2467 +
 raster/rt_core/librtcore_internal.h                |    39 +
 raster/rt_core/rt_api.c                            | 15339 ----
 raster/rt_core/rt_api.h                            |  2430 -
 raster/rt_core/rt_band.c                           |  1793 +
 raster/rt_core/rt_context.c                        |   302 +
 raster/rt_core/rt_geometry.c                       |  1326 +
 raster/rt_core/rt_mapalgebra.c                     |  1852 +
 raster/rt_core/rt_pixel.c                          |   419 +
 raster/rt_core/rt_raster.c                         |  3733 +
 raster/rt_core/rt_serialize.c                      |   907 +
 raster/rt_core/rt_serialize.h                      |   166 +
 raster/rt_core/rt_spatial_relationship.c           |  1300 +
 raster/rt_core/rt_statistics.c                     |  1852 +
 raster/rt_core/rt_util.c                           |   717 +
 raster/rt_core/rt_warp.c                           |   975 +
 raster/rt_core/rt_wkb.c                            |   705 +
 raster/rt_pg/Makefile.in                           |    56 +-
 raster/rt_pg/Makefile.pgxs                         |   102 -
 raster/rt_pg/rt_pg.c                               | 19493 -----
 raster/rt_pg/rt_pg.h                               |   102 -
 raster/rt_pg/rtpg_band_properties.c                |   736 +
 raster/rt_pg/rtpg_create.c                         |  1609 +
 raster/rt_pg/rtpg_gdal.c                           |   690 +
 raster/rt_pg/rtpg_geometry.c                       |  1319 +
 raster/rt_pg/rtpg_inout.c                          |   224 +
 raster/rt_pg/rtpg_internal.c                       |   385 +
 raster/rt_pg/rtpg_internal.h                       |    69 +
 raster/rt_pg/rtpg_mapalgebra.c                     |  7210 ++
 raster/rt_pg/rtpg_pixel.c                          |  2301 +
 raster/rt_pg/rtpg_raster_properties.c              |  1173 +
 raster/rt_pg/rtpg_spatial_relationship.c           |  1314 +
 raster/rt_pg/rtpg_statistics.c                     |  3046 +
 raster/rt_pg/rtpg_utility.c                        |   146 +
 raster/rt_pg/rtpostgis.c                           |   526 +
 raster/rt_pg/rtpostgis.h                           |    70 +
 raster/rt_pg/rtpostgis.sql.in                      |   976 +-
 raster/rt_pg/rtpostgis_drop.sql.in                 |   213 +-
 raster/rt_pg/rtpostgis_legacy.sql.in               |     3 +-
 raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in      |   592 +-
 raster/scripts/Makefile.in                         |     1 -
 raster/scripts/plpgsql/_MapAlgebraParts.sql        |     1 -
 raster/scripts/plpgsql/st_addband.sql              |     1 -
 raster/scripts/plpgsql/st_asraster.sql             |     1 -
 raster/scripts/plpgsql/st_clip.sql                 |     3 +-
 raster/scripts/plpgsql/st_deleteband.sql           |     1 -
 raster/scripts/plpgsql/st_histogram.sql            |     1 -
 raster/scripts/plpgsql/st_mapalgebra.sql           |     3 +-
 raster/scripts/plpgsql/st_mapalgebra_optimized.sql |     1 -
 raster/scripts/plpgsql/st_mapalgebrafctngb.sql     |     1 -
 raster/scripts/plpgsql/st_pixelaspolygons.sql      |     1 -
 raster/scripts/plpgsql/st_reclass.sql              |     1 -
 raster/scripts/plpgsql/st_setarray.sql             |     1 -
 raster/scripts/plpgsql/st_setvalues.sql            |     3 +-
 raster/scripts/plpgsql/st_summarystatsagg.sql      |     4 +-
 raster/scripts/plpgsql/st_tile.sql                 |     3 +-
 raster/scripts/plpgsql/st_union.sql                |     3 +-
 raster/scripts/python/Makefile.in                  |     1 -
 raster/scripts/python/Makefile.rt.sample           |     1 -
 raster/scripts/python/genraster.py                 |     1 -
 raster/scripts/python/ovdump.py                    |     2 +-
 raster/scripts/python/pixval.py                    |     2 +-
 raster/scripts/python/raster2pgsql.py              |     4 +-
 raster/scripts/python/rtgdalraster.py              |     2 -
 raster/scripts/python/rtpixdump.py                 |     3 +-
 raster/scripts/python/rtreader.py                  |     1 -
 raster/scripts/python/rtrowdump.py                 |     2 -
 raster/scripts/python/window.py                    |     2 -
 raster/test/Makefile.in                            |    16 +-
 raster/test/cunit/Makefile.in                      |    18 +-
 raster/test/cunit/cu_band_basics.c                 |     4 +-
 raster/test/cunit/cu_band_misc.c                   |   219 +-
 raster/test/cunit/cu_band_stats.c                  |     2 +-
 raster/test/cunit/cu_gdal.c                        |     4 +-
 raster/test/cunit/cu_mapalgebra.c                  |    10 +-
 raster/test/cunit/cu_misc.c                        |     4 +-
 raster/test/cunit/cu_pixtype.c                     |     2 +-
 raster/test/cunit/cu_raster_basics.c               |     2 +-
 raster/test/cunit/cu_raster_geometry.c             |   144 +-
 raster/test/cunit/cu_raster_misc.c                 |     2 +-
 raster/test/cunit/cu_raster_wkb.c                  |     2 +-
 raster/test/cunit/cu_spatial_relationship.c        |     2 +-
 raster/test/cunit/cu_tester.c                      |    30 +-
 raster/test/cunit/cu_tester.h                      |    22 +-
 raster/test/regress/Makefile.in                    |    27 +-
 raster/test/regress/box3d.sql                      |     3 +-
 raster/test/regress/bug_test_car5.sql              |     3 +-
 raster/test/regress/check_gdal.sql                 |    37 +
 raster/test/regress/check_gdal_expected            |    10 +
 raster/test/regress/check_raster_columns.sql       |    25 +-
 raster/test/regress/check_raster_columns_expected  |    14 +-
 raster/test/regress/check_raster_overviews.sql     |     3 +-
 .../test/regress/check_raster_overviews_expected   |     6 +-
 raster/test/regress/load_outdb-pre.pl              |    25 +-
 raster/test/regress/load_outdb-pre.sh              |    21 +-
 raster/test/regress/loader/Basic-post.sh           |     1 -
 raster/test/regress/loader/Basic-pre.sh            |     1 -
 raster/test/regress/loader/Basic.select.expected   |     6 +-
 raster/test/regress/loader/Basic.select.sql        |     4 +-
 raster/test/regress/loader/BasicCopy-post.sh       |     1 -
 raster/test/regress/loader/BasicCopy-pre.sh        |     1 -
 .../test/regress/loader/BasicCopy.select.expected  |     6 +-
 raster/test/regress/loader/BasicCopy.select.sql    |     4 +-
 raster/test/regress/loader/BasicFilename-post.sh   |     1 -
 raster/test/regress/loader/BasicFilename-pre.sh    |     1 -
 .../regress/loader/BasicFilename.select.expected   |     4 +-
 .../test/regress/loader/BasicFilename.select.sql   |     4 +-
 raster/test/regress/loader/BasicOutDB-post.sh      |     2 -
 raster/test/regress/loader/BasicOutDB-pre.sh       |     7 -
 .../test/regress/loader/BasicOutDB.select.expected |     6 +-
 raster/test/regress/loader/BasicOutDB.select.sql   |    10 +-
 raster/test/regress/loader/Projected-post.sql      |     4 +
 raster/test/regress/loader/Projected-pre.sql       |     8 +
 raster/test/regress/loader/Projected.opts          |     1 +
 .../test/regress/loader/Projected.select.expected  |     4 +
 raster/test/regress/loader/Projected.select.sql    |     5 +
 raster/test/regress/loader/Projected.tif           |   Bin 0 -> 13894 bytes
 raster/test/regress/loader/Tiled10x10-post.sh      |     1 -
 raster/test/regress/loader/Tiled10x10-pre.sh       |     1 -
 .../test/regress/loader/Tiled10x10.select.expected |     6 +-
 raster/test/regress/loader/Tiled10x10.select.sql   |     4 +-
 raster/test/regress/loader/Tiled10x10Copy-post.sh  |     1 -
 raster/test/regress/loader/Tiled10x10Copy-pre.sh   |     1 -
 .../regress/loader/Tiled10x10Copy.select.expected  |     6 +-
 .../test/regress/loader/Tiled10x10Copy.select.sql  |     4 +-
 raster/test/regress/loader/Tiled8x8-post.sh        |     1 -
 raster/test/regress/loader/Tiled8x8-pre.sh         |     1 -
 .../test/regress/loader/Tiled8x8.select.expected   |     8 +-
 raster/test/regress/loader/Tiled8x8.select.sql     |     6 +-
 raster/test/regress/loader/testraster.tif          |   Bin 24614 -> 13674 bytes
 raster/test/regress/permitted_gdal_drivers.sql     |     7 +-
 .../test/regress/permitted_gdal_drivers_expected   |     9 +-
 raster/test/regress/rt_addband.sql                 |    40 +-
 raster/test/regress/rt_addband_expected            |    14 +
 raster/test/regress/rt_asgdalraster.sql            |     5 +
 raster/test/regress/rt_asjpeg.sql                  |     5 +
 raster/test/regress/rt_aspng.sql                   |     5 +
 raster/test/regress/rt_astiff.sql                  |     5 +
 raster/test/regress/rt_band_properties.sql         |     3 +-
 raster/test/regress/rt_bytea.sql                   |    10 +-
 raster/test/regress/rt_count.sql                   |    20 +
 raster/test/regress/rt_count_expected              |    25 +
 raster/test/regress/rt_createoverview.sql          |    54 +
 raster/test/regress/rt_createoverview_expected     |    15 +
 raster/test/regress/rt_dimensions.sql              |     3 +-
 raster/test/regress/rt_dumpvalues.sql              |     3 +-
 .../test/regress/rt_elevation_functions_expected   |     1 -
 raster/test/regress/rt_envelope.sql                |    14 +
 raster/test/regress/rt_envelope_expected           |     4 +
 raster/test/regress/rt_fromgdalraster.sql          |     5 +
 raster/test/regress/rt_georeference.sql            |     3 +-
 raster/test/regress/rt_gist_relationships.sql      |     3 +-
 raster/test/regress/rt_hasnoband.sql               |     3 +-
 raster/test/regress/rt_histogram_expected          |    17 +-
 raster/test/regress/rt_isempty.sql                 |     3 +-
 raster/test/regress/rt_mapalgebra.sql              |     6 +-
 raster/test/regress/rt_mapalgebra_expected         |     3 -
 raster/test/regress/rt_mapalgebra_mask.sql         |    93 +
 raster/test/regress/rt_mapalgebra_mask_expected    |   595 +
 raster/test/regress/rt_pixelsize.sql               |     3 +-
 raster/test/regress/rt_pixelvalue.sql              |     4 +-
 raster/test/regress/rt_quantile_expected           |     7 +-
 raster/test/regress/rt_reclass.sql                 |    41 +-
 raster/test/regress/rt_rotation.sql                |     3 +-
 raster/test/regress/rt_scale.sql                   |     3 +-
 raster/test/regress/rt_set_band_properties.sql     |     3 +-
 raster/test/regress/rt_set_properties.sql          |     3 +-
 raster/test/regress/rt_summarystats.sql            |   136 +
 raster/test/regress/rt_summarystats_expected       |    59 +-
 raster/test/regress/rt_upperleft.sql               |     3 +-
 raster/test/regress/rt_utility.sql                 |    19 +-
 raster/test/regress/rt_utility_expected            |    19 +
 raster/test/regress/tickets.sql                    |    66 +-
 raster/test/regress/tickets_expected               |     2 +-
 regress/Makefile.in                                |   153 +-
 regress/affine.sql                                 |     5 +
 regress/affine_expected                            |     4 +
 regress/binary_expected                            |     4 +-
 regress/clipbybox2d.sql                            |    28 +
 regress/clipbybox2d_expected                       |    10 +
 regress/cluster.sql                                |    16 +
 regress/cluster_expected                           |    11 +
 regress/concave_hull.sql                           |     1 -
 regress/dumper/literalsrid-post.sql                |     1 +
 regress/dumper/literalsrid-pre.sql                 |     1 +
 regress/dumper/literalsrid.dmp                     |     1 +
 regress/dumper/literalsrid_expected.dbf            |   Bin 0 -> 77 bytes
 regress/dumper/literalsrid_expected.prj            |     1 +
 regress/dumper/literalsrid_expected.shp            |   Bin 0 -> 128 bytes
 regress/dumper/literalsrid_expected.shx            |   Bin 0 -> 108 bytes
 regress/dumper/realtable-post.sql                  |     2 +
 regress/dumper/realtable-pre.sql                   |     3 +
 regress/dumper/realtable.dmp                       |     1 +
 regress/dumper/realtable_expected.dbf              |   Bin 0 -> 77 bytes
 regress/dumper/realtable_expected.prj              |     1 +
 regress/dumper/realtable_expected.shp              |   Bin 0 -> 128 bytes
 regress/dumper/realtable_expected.shx              |   Bin 0 -> 108 bytes
 regress/forcecurve.sql                             |    12 +
 regress/forcecurve_expected                        |    12 +
 regress/geography.sql                              |    37 +-
 regress/geography_expected                         |     7 +
 regress/in_encodedpolyline.sql                     |     2 +
 regress/in_encodedpolyline_expected                |     2 +
 regress/in_geojson.sql                             |     6 +
 regress/in_geojson_expected                        |     5 +
 regress/in_gml.sql                                 |     2 +-
 regress/in_kml.sql                                 |    12 +-
 regress/in_kml_expected                            |    14 +-
 regress/interrupt.sql                              |    33 +
 regress/interrupt_buffer.sql                       |    45 +
 regress/interrupt_buffer_expected                  |     3 +
 regress/interrupt_expected                         |     4 +
 regress/interrupt_relate.sql                       |    65 +
 regress/interrupt_relate_expected                  |    16 +
 regress/knn.sql                                    |    63 +-
 regress/knn_expected                               |    11 +
 regress/knn_recheck.sql                            |   222 +
 regress/knn_recheck_expected                       |   126 +
 regress/loader/Latin1-implicit.dbf                 |   Bin 0 -> 99 bytes
 regress/loader/Latin1-implicit.select.expected     |     1 +
 regress/loader/Latin1-implicit.select.sql          |     2 +
 regress/loader/mfile.dbf                           |   Bin 0 -> 552 bytes
 regress/loader/mfile.opts                          |     2 +
 regress/loader/mfile.select.expected               |     3 +
 regress/loader/mfile.select.sql                    |     1 +
 regress/loader/mfile_mapping.txt                   |     2 +
 regress/lwgeom_regress.sql                         |   191 +-
 regress/lwgeom_regress_expected                    |    16 +
 regress/measures.sql                               |    30 +-
 regress/measures_expected                          |    19 +
 regress/operators.sql                              |    15 +-
 regress/operators_expected                         |     3 +-
 regress/out_geometry.sql                           |    14 +
 regress/out_geometry_expected                      |    13 +-
 regress/regress.sql                                |    19 +-
 regress/regress_expected                           |     7 +
 regress/regress_index.sql                          |    61 +
 regress/regress_index_expected                     |     8 +
 regress/regress_lrs.sql                            |    19 +-
 regress/regress_lrs_expected                       |     4 +
 regress/regress_management.sql                     |     1 -
 regress/regress_sfcgal.sql                         |     2 +-
 regress/regress_sfcgal_expected                    |     2 +-
 regress/remove_repeated_points.sql                 |     2 +
 regress/remove_repeated_points_expected            |     1 +
 regress/run_test                                   |  1117 -
 regress/run_test.pl                                |   142 +-
 regress/sfcgal/approximatemedialaxis.sql           |     2 +
 regress/sfcgal/approximatemedialaxis_expected      |     2 +
 regress/sfcgal/concave_hull.sql                    |     5 +-
 regress/sfcgal/empty.sql                           |     4 +-
 regress/sfcgal/empty_expected                      |     4 +-
 regress/sfcgal/legacy.sql                          |    50 +-
 regress/sfcgal/regress.sql                         |     4 +-
 regress/sfcgal/regress_ogc.sql                     |   148 +-
 regress/sfcgal/regress_ogc_expected                |     2 +-
 regress/sfcgal/tickets.sql                         |    32 +-
 regress/sfcgal/tickets_expected                    |    35 +-
 regress/simplifyvw.sql                             |    14 +
 regress/simplifyvw_expected                        |    12 +
 regress/size.sql                                   |     2 +-
 regress/split.sql                                  |    24 +
 regress/split_expected                             |     4 +
 regress/sql-mm-circularstring.sql                  |   141 +-
 regress/sql-mm-circularstring_expected             |    68 +-
 regress/sql-mm-compoundcurve.sql                   |   118 +-
 regress/sql-mm-compoundcurve_expected              |    38 +-
 regress/sql-mm-curvepoly.sql                       |   154 +-
 regress/sql-mm-curvepoly_expected                  |    20 +-
 regress/sql-mm-multicurve.sql                      |   138 +-
 regress/sql-mm-multicurve_expected                 |    16 +-
 regress/sql-mm-multisurface.sql                    |   117 +-
 regress/sql-mm-multisurface_expected               |    20 +-
 regress/subdivide.sql                              |    24 +
 regress/subdivide_expected                         |     3 +
 regress/summary_expected                           |     4 +-
 regress/swapordinates.sql                          |    15 +
 regress/swapordinates_expected                     |    10 +
 regress/temporal.sql                               |    94 +
 regress/temporal_expected                          |    34 +
 regress/temporal_knn.sql                           |    75 +
 regress/temporal_knn_expected                      |     7 +
 regress/tickets.sql                                |    40 +-
 regress/tickets_expected                           |    27 +-
 regress/twkb.sql                                   |    66 +
 regress/twkb_expected                              |    16 +
 regress/typmod.sql                                 |     4 +-
 regress/typmod_expected                            |    98 +-
 regress/wkb_expected                               |    12 +-
 spatial_ref_sys.sql                                | 14688 ++--
 topology/Makefile.in                               |    59 +-
 topology/postgis_topology.c                        |  4468 ++
 topology/sql/export/TopoJSON.sql.in                |    27 +-
 topology/sql/export/gml.sql.in                     |    24 +-
 topology/sql/manage/ManageHelper.sql.in            |     9 +-
 topology/sql/populate.sql.in                       |   451 +-
 topology/sql/query/getedgebypoint.sql.in           |    61 +-
 topology/sql/query/getfacebypoint.sql.in           |   128 +-
 topology/sql/query/getnodebypoint.sql.in           |    61 +-
 topology/sql/sqlmm.sql.in                          |  4528 +-
 topology/sql/topogeometry/totopogeom.sql.in        |     4 +-
 topology/test/regress/addtopogeometrycolumn.sql    |     1 +
 .../test/regress/addtopogeometrycolumn_expected    |     1 +
 topology/test/regress/createtopology.sql           |     4 +
 topology/test/regress/createtopology_expected      |     2 +
 topology/test/regress/droptopology.sql             |     4 +
 topology/test/regress/droptopology_expected        |     2 +
 topology/test/regress/getfacebypoint.sql           |    18 +-
 topology/test/regress/getfacebypoint_expected      |    14 +-
 topology/test/regress/legacy_invalid_expected      |     4 +-
 topology/test/regress/sqlmm.sql                    |    11 +-
 topology/test/regress/sqlmm_expected               |     8 +-
 topology/test/regress/st_addisoedge_expected       |     2 +-
 topology/test/regress/st_getfaceedges.sql          |    12 +
 topology/test/regress/st_getfaceedges_expected     |    11 +
 topology/test/regress/st_modedgesplit.sql          |    33 +-
 topology/test/regress/st_newedgessplit.sql         |    33 +-
 topology/test/regress/st_remedgenewface.sql        |     4 +-
 topology/test/regress/st_simplify.sql              |     4 +-
 topology/test/regress/topogeo_addlinestring.sql    |    75 +-
 topology/topology.sql.in                           |   424 +-
 topology/topology_drop_after.sql.in                |     3 +-
 topology/topology_drop_before.sql.in               |     3 +-
 utils/Makefile.in                                  |    27 +-
 utils/create_undef.pl                              |     2 +
 utils/create_unpackaged.pl                         |   288 +
 utils/postgis_proc_upgrade.pl                      |   308 +-
 utils/postgis_restore.pl.in                        |  3236 +-
 utils/profile_intersects.pl                        |     1 -
 utils/read_scripts_version.pl                      |     2 +-
 utils/test_estimation.pl                           |     1 -
 utils/test_geography_estimation.pl                 |     1 -
 utils/test_geography_joinestimation.pl             |     1 -
 utils/test_joinestimation.pl                       |     1 -
 1156 files changed, 571801 insertions(+), 145164 deletions(-)

diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..2a4e66d
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,9 @@
+*.vcproj	eol=crlf
+*.bat	    eol=crlf
+*.sh		eol=lf
+*.ac        eol=lf
+*.h.in      eol=lf
+*.h         eol=lf
+GNUmakefile.in eol=lf
+*_expected  eol=lf
+*.dmp       eol=lf
diff --git a/.travis.yml b/.travis.yml
index 31b46d6..1b6d6b3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,26 +1,36 @@
----
-env:
-  global:
-    - PGUSER=postgres
-    - RUNTESTFLAGS=-v
-before_install:
-  - rm .travis.yml
-  - sudo apt-get update
-  - apt-cache search libgdal
-  - sudo apt-get install -q build-essential flex autoconf libtool gfortran postgresql-server-dev-9.1 xsltproc libjson0-dev libproj-dev dblatex xsltproc libcunit1-dev libcunit1 docbook-xsl docbook-mathml libgdal-dev libgeos-dev
-  - git config --global user.name "PostGIS Travis CI"
-  - git config --global user.email $HOSTNAME":not-for-mail at travis-ci.org"
-  - ./autogen.sh
-language: c
-compiler:
-  - gcc
-notifications:
-  email: false
-  irc:
-    channels:
-      - "irc.freenode.org#postgis"
-    on_success: change
-    on_failure: always
-    use_notice: true
-#after_failure:
-#  - cat /tmp/pgis_reg/*
+env:
+  global:
+    - RUNTESTFLAGS=-v
+
+addons:
+  postgresql: "9.4"
+
+before_install:
+  - sudo apt-get update -qq
+  - sudo apt-get install -y
+      postgresql-9.4 postgresql-server-dev-9.4
+      build-essential autoconf libtool libcunit1-dev
+      xsltproc docbook-xsl docbook-mathml dblatex
+      libproj-dev libgdal-dev libgeos-dev libjson0-dev
+  - dpkg -l | grep postgresql
+  - ./autogen.sh
+
+language: c
+
+compiler: gcc
+
+script:
+  - ./configure
+  - make
+  - make check
+  - sudo make install
+  - make installcheck
+
+notifications:
+  email: false
+  irc:
+    channels:
+      - "irc.freenode.org#postgis"
+    on_success: change
+    on_failure: always
+    use_notice: false
diff --git a/ChangeLog b/ChangeLog
index 4946e37..e888df4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,2045 +1,8863 @@
-2015-07-04 05:48  robe
+2015-09-24 13:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/reference_sfcgal.xml: #3116: SFCGAL add documentation for
-	  geometry backend switch. Patch from Vincent Mora
+	* [r14092] ChangeLog: Update changelog
 
-2015-06-30 18:02  pramsey
+2015-09-24 12:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* liblwgeom/lwin_geojson.c, postgis/lwgeom_export.c: Improve
-	  geojson import for srs objects
+	* [r14091] extensions/postgis_sfcgal,
+	  extensions/postgis_tiger_geocoder, extensions/postgis_topology:
+	  Ignore working directories
 
-2015-06-24 20:23  pramsey
+2015-09-23 21:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS: Add #3177
+	* [r14090] loader/pgsql2shp-core.c, loader/shp2pgsql-core.c,
+	  loader/shpcommon.c, loader/shpcommon.h,
+	  regress/dumper/literalsrid_expected.dbf,
+	  regress/dumper/realtable_expected.dbf: #2220, write the encoding
+	  down when exporting a shape file
 
-2015-06-24 20:21  pramsey
+2015-09-23 18:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_serialized.c: #3177,
-	  gserialized_is_empty cannot handle nested empty cases
+	* [r14089] liblwgeom/lwlinearreferencing.c: #3283, be less brittle
+	  in cases of box-overlap-but-geom-not
 
-2015-06-24 19:07  pramsey
+2015-09-23 13:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* liblwgeom/lwgeodetic.h, liblwgeom/lwgeodetic_tree.h: Newlines on
-	  fileends
+	* [r14088] liblwgeom/lwprint.c: Fix valgrind for lwprint for DMS
+	  malformed case
 
-2015-06-24 19:06  pramsey
+2015-09-23 07:41  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit/cu_algorithm.c: Remove memory leak
+	* [r14087] liblwgeom/lwpoint.c, liblwgeom/ptarray.c: More
+	  postgis_config.h include ordering
 
-2015-06-24 19:05  pramsey
+2015-09-23 07:03  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit/cu_ptarray.c: Remote printf
+	* [r14086] liblwgeom/lwin_wkb.c: Include postgis_config.h before
+	  others, to allow overriding debug
 
-2015-06-11 20:06  strk
+2015-09-22 20:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* liblwgeom/lwgeom.c: Fix backport of bbox cache fix
+	* [r14085] liblwgeom/liblwgeom_internal.h, liblwgeom/lwline.c,
+	  liblwgeom/lwpoly.c, liblwgeom/ptarray.c: Make repeated point
+	  removal more sensitive to not creating invalid outputs
 
-2015-06-11 19:47  strk
+2015-09-22 19:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, liblwgeom/lwgeom.c, liblwgeom/lwline.c,
-	  liblwgeom/lwlinearreferencing.c, postgis/geography_inout.c,
-	  postgis/lwgeom_functions_basic.c, regress/affine.sql,
-	  regress/affine_expected: Only add boxes to geometries that are
-	  input with them (#3159)
-	  
-	  Includes testcase
+	* [r14084] liblwgeom/ptarray.c: Slight performance tweak to remove
+	  repeated points
 
-2015-06-10 09:26  strk
+2015-09-21 16:16  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, liblwgeom/Makefile.in: Remove liblwgeom.h on make uninstall
-	  (#3155)
+	* [r14083] configure.ac: Do not export library symbols from the
+	  PostgreSQL module
+	  
+	  Makes it easy for other modules to use dynamically linked
+	  liblwgeom.
+	  See #3281.
 
-2015-05-26 08:26  strk
+2015-09-21 16:16  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, liblwgeom/ptarray.c, regress/regress_lrs.sql,
-	  regress/regress_lrs_expected: Fix crasher found in garden tests
-	  
-	  Includes testcase.
-	  This is a backport of r13556 and r13555 from trunk.
+	* [r14082] configure.ac: Search for exclude-libs support at
+	  configure time
 
-2015-05-19 17:38  pramsey
+2015-09-21 15:46  Sandro Santilli <strk at keybit.net>
 
-	* postgis/lwgeom_accum.c: Build on 9.5
+	* [r14081] configure.ac: Stop looking for C++ compiler (#3282)
 
-2015-05-18 07:01  strk
+2015-09-21 06:59  Sandro Santilli <strk at keybit.net>
 
-	* configure.ac: Fix confusing help message for --with-pgconfig
-	  
-	  Patch by Volf Tomáš
+	* [r14079] doc/reference_processing.xml: Cross-link ST_Subdivide
+	  and ST_Split
 
-2015-05-02 23:51  dustymugs
+2015-09-18 06:28  Regina Obe <lr at pcorp.us>
 
-	* raster/test/regress/tickets.sql: pg9.0 doesn't have format
-	  function
+	* [r14078] extensions/address_standardizer/gamma.c,
+	  extensions/address_standardizer/pagc_std_api.h,
+	  extensions/address_standardizer/tokenize.c: Get rid of compiler
+	  warnings
 
-2015-05-02 20:45  dustymugs
+2015-09-16 12:00  Sandro Santilli <strk at keybit.net>
 
-	* raster/test/regress/tickets.sql,
-	  raster/test/regress/tickets_expected: unit tests of numeric
-	  overflow. ticket #3100
+	* [r14077] topology/postgis_topology.c: Fix precision of face
+	  bounding box in topology callbacks
+	  
+	  This bug triggered a regression from 2.1
 
-2015-05-02 07:01  robe
+2015-09-16 08:26  Sandro Santilli <strk at keybit.net>
 
-	* doc/faq_raster.xml: add other error you might see to the security
-	  raster faq
+	* [r14076] topology/postgis_topology.c: Fix premature reset of
+	  data_changed flag
+	  
+	  Before this fix, tipical topology loading within a single
+	  statement
+	  would fail to see changes introduced by itself.
 
-2015-04-29 20:03  robe
+2015-09-16 07:09  Sandro Santilli <strk at keybit.net>
 
-	* postgis/postgis.sql.in: #2365: Significantly improve performance
-	  of find_srid when lots of geometry columns
+	* [r14075] liblwgeom/cunit/cu_clean.c,
+	  liblwgeom/lwgeom_geos_clean.c: Plug leak in lwpoly_make_valid for
+	  unclosed ring polygons
 
-2015-04-29 15:55  pramsey
+2015-09-16 06:18  Sandro Santilli <strk at keybit.net>
 
-	* postgis/lwgeom_export.c, regress/in_geojson.sql,
-	  regress/in_geojson_expected: C90 madness
+	* [r14074] liblwgeom/lwgeom_topo.c: Fix mis-handling of
+	  _lwt_EdgeMotionArea return code
 
-2015-04-29 12:48  pramsey
+2015-09-15 20:32  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/lwgeom_export.c: #3104, st_asgml introduces random
-	  characters in ID field
+	* [r14073] liblwgeom/lwgeom_topo.c: Plug gbox leak in
+	  _lwt_AddFaceSplit
 
-2015-04-27 12:22  pramsey
+2015-09-15 20:22  Sandro Santilli <strk at keybit.net>
 
-	* doc/introduction.xml: Update corporate info
+	* [r14072] liblwgeom/lwgeom_topo.c: Plug leak in lwt_RemoveIsoNode
 
-2015-04-26 05:16  robe
+2015-09-15 20:01  Sandro Santilli <strk at keybit.net>
 
-	* extensions/upgradeable_versions.mk, postgis/postgis.sql.in: #3092
-	  refinement to geometry_columns view. Also add missing 2.0/2.1
-	  extension upgrade targets
+	* [r14071] liblwgeom/lwgeom_topo.c: Plug leaks in lwt_MoveIsoNode
 
-2015-04-26 04:33  robe
+2015-09-15 19:51  Sandro Santilli <strk at keybit.net>
 
-	* loader/shp2pgsql-core.h: #3102 - add include <locale.h> to fix
-	  mingw-64 compile issue
+	* [r14070] liblwgeom/ptarray.c: Do not assume lwerror long-jumps in
+	  ptarray_insert_point
 
-2015-04-23 20:00  pramsey
+2015-09-15 19:51  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwgeom_geos.c: #3091, segfault in unit tests in debug
+	* [r14069] liblwgeom/lwgeom_topo.c: Fix memory leak in
+	  lwt_GetNodeByPoint
 
-2015-04-23 19:36  pramsey
+2015-09-15 14:58  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, loader/shp2pgsql-core.c: #3048, shp2pgsql - illegal number
-	  format when specific system locale set
+	* [r14068] liblwgeom/lwgeom_topo.c: Plug leak in lwt_GetEdgeByPoint
 
-2015-04-23 18:19  pramsey
+2015-09-15 14:52  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/geography_btree.c: #3018, GROUP BY geography
-	  sometimes returns duplicate rows
+	* [r14067] liblwgeom/lwgeom_topo.c: Plug leak of signed edge ids in
+	  _lwt_AddFaceSplit
 
-2015-04-15 15:42  pramsey
+2015-09-15 14:44  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, liblwgeom/lwin_geojson.c: #3094, fixed another one
+	* [r14066] liblwgeom/lwgeom_topo.c: Remove memory leak in
+	  lwt_AddLine
 
-2015-03-30 12:54  pramsey
+2015-09-14 14:47  Sandro Santilli <strk at keybit.net>
 
-	* doc/release_notes.xml: Unbalanced <simplesect>
+	* [r14065] topology/postgis_topology.c: Fix hardly reachable memory
+	  fault and plug more temporary leaks
+	  
+	  Nothing serious as the only triggering condition would be
+	  unexpected
+	  return from SPI_execute (unlikely).
 
-2015-03-30 12:51  pramsey
+2015-09-14 14:35  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, Version.config: Move versions forward for development
+	* [r14064] topology/postgis_topology.c: Plug leak in
+	  get{Node,Edge,Face}WithinBox2D topology callbacks
 
-2015-03-30 12:50  pramsey
+2015-09-14 12:13  Sandro Santilli <strk at keybit.net>
 
-	* ChangeLog, NEWS, README.postgis, Version.config,
-	  doc/release_notes.xml, extensions/upgradeable_versions.mk:
-	  Prepare for 2.1.7
+	* [r14063] liblwgeom/liblwgeom.h.in, raster/rt_core/librtcore.h,
+	  raster/rt_pg/rtpostgis.c, topology/postgis_topology.c: Add all
+	  missing format attributes under GNUC
+	  
+	  Fixes the leftover suggestion warnings from
+	  -Wmissing-format-attribute
 
-2015-03-27 17:21  pramsey
+2015-09-09 13:18  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwin_geojson.c: Formatting
+	* [r14061] doc/extras_topology.xml: Fix docs for
+	  topology.intersects (#2593)
 
-2015-03-27 16:26  pramsey
+2015-09-09 10:57  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwin_geojson.c: Fix z+ handling
+	* [r14060] GNUmakefile.in: Do not force comments install when
+	  building without postgresql
+	  
+	  See #3157
 
-2015-03-26 22:29  pramsey
+2015-09-09 10:15  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwin_geojson.c: GeoJSON maintenance
+	* [r14059] configure.ac: Drop --without-postgresql, use
+	  --without-pgconfig for same purpose
+	  
+	  The --without-postgresql support was added with r13882, this
+	  commit
+	  removes it and uses the existing --with-pgconfig switch instead.
+	  Pass argument "no" or use --without-pgconfig to disable
+	  PostgreSQL.
+	  
+	  See #3157
 
-2015-03-24 13:39  dustymugs
+2015-09-09 07:44  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_pg/rt_pg.c: invalid operator. Ticket #3090
+	* [r14058] doc/extras_address_standardizer.xml: fix mismatched ids
 
-2015-03-24 13:32  dustymugs
+2015-09-09 07:14  Regina Obe <lr at pcorp.us>
 
-	* NEWS, raster/rt_pg/rt_pg.c,
-	  raster/test/regress/rt_dumpvalues.sql: Fix ST_DumpValues()
-	  crasher when cleaning. Ticket #3086
+	* [r14057] doc/extras_address_standardizer.xml: fix link tag typo
 
-2015-03-23 16:34  strk
+2015-09-09 06:30  Regina Obe <lr at pcorp.us>
 
-	* NEWS, configure.ac, liblwgeom/liblwgeom.h.in, liblwgeom/lwutil.c,
-	  postgis/lwgeom_box.c: Do not (re)define strcasestr in a public
-	  header (#3088)
+	* [r14056] doc/extras_address_standardizer.xml: Flesh out the rules
+	  table description and how to create rules
 
-2015-03-20 17:11  pramsey
+2015-09-09 04:47  Regina Obe <lr at pcorp.us>
 
-	* HOWTO_RELEASE: Add notes on updateing trunk too
+	* [r14055]
+	  extensions/address_standardizer/expected/test-standardize_address_1.out,
+	  extensions/address_standardizer/test-standardize_address_1.sql.in,
+	  extensions/address_standardizer/us_rules.sql,
+	  extras/tiger_geocoder/pagc_normalize/pagc_tables.sql,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql:
+	  #2978 address standardizer doesn't handle street number ranges,
+	  also added regress tests
 
-2015-03-20 17:08  pramsey
+2015-09-08 22:57  Regina Obe <lr at pcorp.us>
 
-	* HOWTO_RELEASE, extensions/upgradeable_versions.mk,
-	  java/jdbc_jtsparser/pom.xml: Push versions forward
+	* [r14054]
+	  extensions/address_standardizer/expected/test-standardize_address_1.out,
+	  extensions/address_standardizer/test-standardize_address_1.sql.in,
+	  extensions/address_standardizer/us_rules.sql,
+	  extras/tiger_geocoder/pagc_normalize/pagc_tables.sql,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql:
+	  #2981 handling state highways with named parts. This might not be
+	  the best way to parse but aligns with tiger data. Include tests
 
-2015-03-20 17:01  pramsey
+2015-09-07 07:52  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, Version.config: Set versions for 2.1.7dev
+	* [r14051] liblwgeom/lwgeom_topo.c: Reduce pointarray copies on
+	  face split
 
-2015-03-20 17:00  pramsey
+2015-09-06 00:11  Regina Obe <lr at pcorp.us>
 
-	* NEWS, README.postgis, Version.config, doc/release_notes.xml:
-	  Setup for 2.1.6 release
+	* [r14048]
+	  extras/tiger_geocoder/utility/standardize_tiger_data.sql: This is
+	  to fix tiger data that causes geocoding issues. This is not yet
+	  integrated into load or documented since requires more testing.
+	  Not even installed yet as part of tiger extension
 
-2015-03-20 16:45  pramsey
+2015-09-04 07:22  Regina Obe <lr at pcorp.us>
 
-	* ChangeLog: update changelog
+	* [r14047] extras/tiger_geocoder/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/regress/normalize_address_desired_regress,
+	  extras/tiger_geocoder/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_desired_regress,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql,
+	  extras/tiger_geocoder/regress/regress.sql,
+	  extras/tiger_geocoder/regress/reverse_geocode_regress.sql: get
+	  rid of all windows line breaks and enforce Unix line breaks
 
-2015-03-20 15:50  pramsey
+2015-09-04 06:23  Regina Obe <lr at pcorp.us>
 
-	* NEWS: Update NEWs
+	* [r14046]
+	  extensions/postgis_tiger_geocoder/sql_bits/test_tuples_only_unaligned.sql.in:
 
-2015-03-20 15:44  pramsey
+2015-09-04 06:22  Regina Obe <lr at pcorp.us>
 
-	* postgis/gserialized_typmod.c: Reorder to C order
+	* [r14045]
+	  extensions/postgis_tiger_geocoder/sql_bits/test_tuples_only_unaligned.sql.in:
+	  get rid of windows end line
 
-2015-03-20 15:32  pramsey
+2015-09-03 23:20  Regina Obe <lr at pcorp.us>
 
-	* postgis/lwgeom_functions_basic.c, postgis/lwgeom_sfcgal.c,
-	  regress/measures.sql, regress/measures_expected: Revert 3d-only
-	  patch from #3056
+	* [r14044] doc/reference_sfcgal.xml: give example of ST_3DArea
 
-2015-03-20 15:25  pramsey
+2015-09-03 22:48  Regina Obe <lr at pcorp.us>
 
-	* postgis/gserialized_typmod.c: Remove unneeded function call
+	* [r14043]
+	  extensions/postgis_tiger_geocoder/sql_bits/add_search_path.sql.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/mark_editable_objects.sql.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/norm_addy_create.sql.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in:
+	  change to always be linux line feed
 
-2015-03-20 14:31  pramsey
+2015-09-03 22:47  Regina Obe <lr at pcorp.us>
 
-	* regress/typmod_expected: #3031, make accepting MULTIPOINT EMPTY
-	  into Geometry(Point) the New Normal
+	* [r14042] extensions/postgis_tiger_geocoder/Makefile.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/test_tuples_only_unaligned.sql.in:
+	  add an tuples only unaligned include so don't have to worry about
+	  behavior of echo /t in bash/sh (for testing)
 
-2015-03-20 14:06  pramsey
+2015-09-03 22:33  Regina Obe <lr at pcorp.us>
 
-	* postgis/geography_inout.c, postgis/lwgeom_inout.c: #3031, allow
-	  MULTIPOINT EMPTY into Geometry(Point) columns
+	* [r14041] doc/xsl/postgis_aggs_mm.xml.xsl: #2324: Fix chart so 2D
+	  support only enabled with sfcgal is tagged with sfcgal icon
 
-2015-03-20 13:53  pramsey
+2015-09-03 21:22  Regina Obe <lr at pcorp.us>
 
-	* liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h.in,
-	  postgis/geography.h, postgis/gserialized_typmod.c: #3031, allow
-	  MULTIPOINT EMPTY to sneak into Geometry(POINT) tables
+	* [r14040] doc/reference_sfcgal.xml: fix tag typo
 
-2015-03-20 12:36  strk
+2015-09-03 21:09  Regina Obe <lr at pcorp.us>
 
-	* regress/typmod.sql, regress/typmod_expected: Add missing typmod
-	  tests for high-dimensioned TINs
+	* [r14039] doc/reference_sfcgal.xml: ST_Volume example with caveats
+	  need to have Solid geometry
 
-2015-03-20 11:07  strk
+2015-09-03 19:53  Regina Obe <lr at pcorp.us>
 
-	* regress/typmod.sql, regress/typmod_expected: Add non-empty
-	  (multi)point cases to the typmod test (#3031)
+	* [r14038] doc/reference_sfcgal.xml: fix typo
 
-2015-03-20 09:32  strk
+2015-09-03 17:19  Regina Obe <lr at pcorp.us>
 
-	* regress/typmod.sql, regress/typmod_expected: Fix typo in typmod
-	  test (#3031)
+	* [r14037] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_minkowskisum01.wkt,
+	  doc/html/image_src/st_minkowskisum02.wkt,
+	  doc/html/image_src/st_minkowskisum03.wkt,
+	  doc/html/image_src/st_minkowskisum04.wkt,
+	  doc/reference_sfcgal.xml: put in more description of minkowski
+	  sum, fix first example so fits in 200x200 grid, add second
+	  example
 
-2015-03-20 00:03  pramsey
+2015-09-03 15:47  Regina Obe <lr at pcorp.us>
 
-	* postgis/gserialized_typmod.c: Back out fix for #3031
+	* [r14036] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_minkowskisum01.wkt,
+	  doc/html/image_src/st_minkowskisum02.wkt,
+	  doc/reference_sfcgal.xml: #2305 example with figure for minkowski
+	  sum. Could do with a better explanation too for what it is.
 
-2015-03-19 23:53  pramsey
+2015-09-02 17:49  Regina Obe <lr at pcorp.us>
 
-	* postgis/gserialized_typmod.c: #3031, allow dumps with MULTIPOINT
-	  EMPTY to restore to tables with Geometry(Point)
+	* [r14035] postgis/lwgeom_accum.c: #3220 patch from Dan Baston to
+	  address Mingw failure in ST_ClusterWithin
 
-2015-03-18 19:01  pramsey
+2015-08-29 18:05  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* postgis/lwgeom_functions_basic.c, postgis/lwgeom_sfcgal.c,
-	  regress/measures.sql, regress/measures_expected: #3056, only do
-	  3d distance when both arguments are 3d
+	* [r14034] liblwgeom/bytebuffer.h, liblwgeom/cunit/cu_out_twkb.c,
+	  liblwgeom/effectivearea.h, liblwgeom/lwin_twkb.c,
+	  liblwgeom/varint.h: Fix right spelling of Avén in UTF8
 
-2015-03-17 17:15  pramsey
+2015-08-29 16:41  Sandro Santilli <strk at keybit.net>
 
-	* postgis/lwgeom_geos.c: #3079, include float.h, don't expect PgSQL
-	  to do it for us
+	* [r14033] liblwgeom/lwgeom_topo.c,
+	  topology/test/regress/topogeo_addlinestring.sql: More SRID fixes
+	  
+	  Adds SRID to TopoGeo_AddLinestring tests
 
-2015-03-17 16:30  pramsey
+2015-08-29 16:21  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwin_wkb.c: #2969, memory leak in the function of
-	  "lwtriangle_from_wkb_state"
+	* [r14031] topology/test/regress/st_newedgessplit.sql: Fix
+	  srid-aware test for "newedgessplit"
 
-2015-03-17 14:43  pramsey
+2015-08-29 15:58  Sandro Santilli <strk at keybit.net>
 
-	* postgis/gserialized_typmod.c: #2941, allow tables with geography
-	  srid != 4326
+	* [r14029] liblwgeom/lwgeom_topo.c,
+	  topology/test/regress/st_modedgesplit.sql,
+	  topology/test/regress/st_newedgessplit.sql: Do not loose SRID on
+	  edge split
+	  
+	  Add SRID to edge split tests
 
-2015-03-17 09:19  strk
+2015-08-29 11:10  Sandro Santilli <strk at keybit.net>
 
-	* extensions/upgradeable_versions.mk: Add upgrade path from 2.0.6
+	* [r14028] liblwgeom/lwgeom_topo.c: Use extended WKT for debuggin
 
-2015-03-17 09:19  strk
+2015-08-29 11:04  Sandro Santilli <strk at keybit.net>
 
-	* .gitignore, java/jdbc/Makefile.in, java/jdbc/pom.xml,
-	  java/jdbc/pom.xml.in: Generate pom.xml at configure time (#2626)
+	* [r14027] liblwgeom/lwgeom_topo.c: Remove function name from debug
+	  messages (it's already included)
 
-2015-03-16 18:35  pramsey
+2015-08-29 09:19  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, liblwgeom/lwin_geojson.c, postgis/lwgeom_in_gml.c,
-	  postgis/lwgeom_in_kml.c, regress/in_geojson_expected: #3061, do
-	  not drop repeated points when reading JSON/GML/KML
+	* [r14026] NEWS, liblwgeom/lwgeom_topo.c: Do not reference face
+	  object after free
 
-2015-03-11 17:31  strk
+2015-08-28 19:57  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwgeom_geos_split.c: Fix bug in comment
+	* [r14025] NEWS: Properly encode Nicklas name in UTF8
 
-2015-03-06 08:56  strk
+2015-08-28 12:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* regress/sfcgal/tickets_expected: Update expected results from
-	  sfcgal tests after bbox cache fix
-	  
-	  Ref: #3069
+	* [r14024] doc/reference_output.xml: yes, our docs have to 1:1
+	  match our functions :/
 
-2015-03-04 20:16  pramsey
+2015-08-28 12:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, liblwgeom/g_serialized.c, regress/tickets_expected: #3069,
-	  points getting unwanted boxes added to serialization
+	* [r14023] postgis/postgis.sql.in, postgis/postgis_drop_after.sql,
+	  postgis/postgis_drop_before.sql: Try to remove multiple
+	  signatures...
 
-2015-03-03 13:06  strk
+2015-08-27 21:23  Sandro Santilli <strk at keybit.net>
 
-	* NEWS: Add NEWS entry for the postgis_typmod_dims function
+	* [r14022] liblwgeom/lwgeom_topo.c: Fix debug build
 
-2015-03-03 13:04  strk
+2015-08-27 21:14  Sandro Santilli <strk at keybit.net>
 
-	* postgis/gserialized_typmod.c, postgis/postgis.sql.in: Have
-	  postgis_typmod_dims return NULL for unconstrained dims (#3068)
-	  
-	  This is consistent with postgis_constraint_type() also returning
-	  NULL for unconstrained.
+	* [r14021] liblwgeom/lwgeom_topo.c: Remove (leaky) debugging
 
-2015-03-02 17:35  strk
+2015-08-27 21:08  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/gserialized_gist_nd.c: Fix ND-GiST picksplit method
-	  to split on the best plane (#3058)
+	* [r14020] topology/postgis_topology.c: Use LWTFMT_ELEMID under
+	  topology/ too (#3243)
 
-2015-02-24 17:01  strk
+2015-08-27 12:46  Sandro Santilli <strk at keybit.net>
 
-	* regress/knn.sql: Include the LIMIT clause in KNN scan test
-	  queries
+	* [r14019] liblwgeom/lwgeom_topo.c: More leaks plugging
 
-2015-02-24 17:01  strk
+2015-08-27 11:19  Sandro Santilli <strk at keybit.net>
 
-	* regress/regress_index.sql: Re-enable all scan types by the end of
-	  index test
+	* [r14018] liblwgeom/ptarray.c: Fix leak in ptarray_merge
 
-2015-02-24 10:26  strk
+2015-08-27 11:01  Sandro Santilli <strk at keybit.net>
 
-	* regress/knn.sql, regress/knn_expected: Fix knn test
+	* [r14017] liblwgeom/lwgeom_topo.c: Fix some leaks in
+	  _lwt_AddFaceSplit
 
-2015-02-24 09:57  strk
+2015-08-27 10:55  Sandro Santilli <strk at keybit.net>
 
-	* regress/Makefile.in, regress/knn.sql, regress/knn_expected,
-	  regress/regress_index.sql, regress/regress_index_expected: Only
-	  run KNN tests when building against PostgreSQL 9.1+
+	* [r14016] liblwgeom/liblwgeom_topo.h: Typo in topo signature
 
-2015-02-24 09:07  strk
+2015-08-27 09:55  Sandro Santilli <strk at keybit.net>
 
-	* regress/regress_index.sql, regress/regress_index_expected: Make
-	  sure <#> order is unambiguous for first result
+	* [r14015] postgis/postgis.sql.in, postgis/sfcgal.sql.in: Add SFGAL
+	  script version mismatch on postgis_full_version
 	  
-	  Before this commit the first 2 points (or more) all had a
-	  bounding box distance of 0 so actual order was undefined
+	  See #3266
 
-2015-02-24 08:53  strk
+2015-08-26 17:30  Sandro Santilli <strk at keybit.net>
 
-	* regress/regress_index.sql: Fix scan type detection function to
-	  work with nested nodes
+	* [r14014] liblwgeom/lwgeom_topo.c: Plug more leaks in lwgeom-topo
 
-2015-02-23 18:49  pramsey
+2015-08-26 16:51  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/ptarray.c: #3051: ptarray.c:1326:43: warning: 'end' may
-	  be used uninitialized in this function
+	* [r14013] liblwgeom/lwgeom_topo.c: Plug edge leak on edge split
 
-2015-02-23 18:37  strk
+2015-08-26 16:39  Sandro Santilli <strk at keybit.net>
 
-	* regress/regress_index.sql, regress/regress_index_expected: Add
-	  test for index supported KNN queries
+	* [r14012] liblwgeom/lwgeom_topo.c: More leaks plugged on edge
+	  split
 
-2015-02-23 18:36  strk
+2015-08-26 16:18  Sandro Santilli <strk at keybit.net>
 
-	* regress/regress_index.sql, regress/regress_index_expected: Add
-	  test for use of GiST index with && operator
+	* [r14011] liblwgeom/lwgeom_topo.c: Do not leak POINTARRAY objects
+	  on edge split
 
-2015-02-23 10:13  strk
+2015-08-26 15:49  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_operator.xml: Further reword docs for <-> and <#>
-	  operators
-	  
-	  .. makeing clear KNN is only available with PgSQL 9.1+
+	* [r14010] liblwgeom/lwgeom_topo.c: Do not leak POINTARRAYs during
+	  topology function calls
 
-2015-02-23 10:04  strk
+2015-08-26 14:45  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/postgis.sql.in: Make <-> and <#> operators also
-	  available with PGSQL < 9.1
+	* [r14009] liblwgeom/lwgeom_topo.c: Plug another leak in
+	  lwt_AddIsoEdge
 
-2015-02-23 09:39  strk
+2015-08-26 14:21  Sandro Santilli <strk at keybit.net>
 
-	* doc/extras_topology.xml: Improve documentation for GetRingEdges
-	  (#3046)
+	* [r14007] liblwgeom/lwgeom_topo.c,
+	  topology/test/regress/st_getfaceedges.sql,
+	  topology/test/regress/st_getfaceedges_expected: Fix ring edge
+	  finding in ST_GetFaceEdges (#3265)
+	  
+	  Includes regress test
 
-2015-02-23 09:04  strk
+2015-08-26 12:56  Sandro Santilli <strk at keybit.net>
 
-	* regress/Makefile.in, regress/size.sql, regress/size_expected: Add
-	  bbox cache size test
+	* [r14005] liblwgeom/lwgeom_topo.c: Fix error message from
+	  GetFaceEdges
 
-2015-02-23 09:04  strk
+2015-08-26 12:36  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, libpgcommon/gserialized_gist.c,
-	  libpgcommon/gserialized_gist.h, postgis/gserialized_gist_nd.c,
-	  regress/operators.sql, regress/operators_expected: Fix
-	  dimensionality confusion in &&& operator (#3045)
-	  
-	  Also enforce the concept that missing dimensions are infinite,
-	  thus always intersecting present dimensions.
-	  See
-	  http://lists.osgeo.org/pipermail/postgis-devel/2015-February/024759.html
+	* [r14004] liblwgeom/lwgeom_topo.c: More leaks in
+	  _lwt_CheckEdgeCrossing
 
-2015-02-23 09:03  strk
+2015-08-26 12:16  Sandro Santilli <strk at keybit.net>
 
-	* regress/operators.sql, regress/operators_expected: Add tests for
-	  <->, <#> and &&& operators (#3036)
+	* [r14003] liblwgeom/lwgeom_topo.c: Correctly plug nodes leak in
+	  _lwt_AddEdge
 
-2015-02-23 09:03  strk
+2015-08-26 12:01  Sandro Santilli <strk at keybit.net>
 
-	* regress/operators.sql, regress/operators_expected: Add missing
-	  tests for ancient operators
+	* [r14002] liblwgeom/lwgeom_topo.c: Revert "Plug nodes leak in
+	  _lwt_AddEdge"
+	  
+	  This reverts r14001, as it introduced instabilities
 
-2015-02-23 09:03  strk
+2015-08-26 11:02  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_operator.xml: Reword documentation for <-> and &&&
-	  operators
-	  
-	  Hopefully less confusing now
+	* [r14001] liblwgeom/lwgeom_topo.c: Plug nodes leak in _lwt_AddEdge
 
-2015-02-23 09:03  strk
+2015-08-26 11:02  Sandro Santilli <strk at keybit.net>
 
-	* regress/Makefile.in, regress/operators.sql,
-	  regress/operators_expected, regress/regress.sql,
-	  regress/regress_expected: Extract operators tests from the
-	  generic, legacy "regress" test
+	* [r14000] liblwgeom/lwgeom_topo.c: More leaks plugged in
+	  _lwt_CheckEdgeCrossing
 
-2015-02-20 18:23  pramsey
+2015-08-26 10:19  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h.in,
-	  postgis/lwgeom_ogc.c: #3050 Peak into header for GeometryType
+	* [r13999] liblwgeom/lwgeom_topo.c: Fix memory leak in
+	  _lwt_CheckEdgeCrossing, used by edge adding funx
+	  
+	  Thanks Alessandro Furieri for spotting this
 
-2015-02-20 17:48  pramsey
+2015-08-25 14:20  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/liblwgeom.h.in, liblwgeom/lwalgorithm.c,
-	  liblwgeom/lwgeom_api.c, liblwgeom/lwgeom_geos.c,
-	  liblwgeom/lwout_geojson.c, liblwgeom/lwout_gml.c,
-	  liblwgeom/measures.c, liblwgeom/measures.h, liblwgeom/ptarray.c:
-	  #3049 Use getPoint_cp for read-only accesses
+	* [r13998] regress/run_test.pl: Add license header to run_test.pl
 
-2015-02-20 15:10  pramsey
+2015-08-25 09:44  Regina Obe <lr at pcorp.us>
 
-	* NEWS, liblwgeom/cunit/cu_algorithm.c, liblwgeom/liblwgeom.h.in,
-	  liblwgeom/measures.c, liblwgeom/ptarray.c: #3048, Use Squared
-	  Distance instead of Distance in Simplify
+	* [r13997] extensions/address_standardizer/Makefile.in,
+	  extensions/postgis_tiger_geocoder/Makefile.in: #3262 Fix
+	  address_standardizer and postgis_tiger_geocoder extension install
 
-2015-02-19 00:22  pramsey
+2015-08-24 21:33  Regina Obe <lr at pcorp.us>
 
-	* install-sh, liblwgeom/cunit/README,
-	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_buildarea.c,
-	  liblwgeom/cunit/cu_clean.c, liblwgeom/cunit/cu_force_sfs.c,
-	  liblwgeom/cunit/cu_geodetic.c, liblwgeom/cunit/cu_geos.c,
-	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_in_geojson.c,
-	  liblwgeom/cunit/cu_in_wkb.c, liblwgeom/cunit/cu_in_wkt.c,
-	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_measures.c,
-	  liblwgeom/cunit/cu_misc.c, liblwgeom/cunit/cu_node.c,
-	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
-	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
-	  liblwgeom/cunit/cu_out_wkb.c, liblwgeom/cunit/cu_out_wkt.c,
-	  liblwgeom/cunit/cu_out_x3d.c, liblwgeom/cunit/cu_print.c,
-	  liblwgeom/cunit/cu_ptarray.c, liblwgeom/cunit/cu_sfcgal.c,
-	  liblwgeom/cunit/cu_split.c, liblwgeom/cunit/cu_stringbuffer.c,
-	  liblwgeom/cunit/cu_surface.c, liblwgeom/cunit/cu_tester.c,
-	  liblwgeom/cunit/cu_tester.h, liblwgeom/cunit/cu_tree.c,
-	  liblwgeom/cunit/cu_triangulate.c,
-	  raster/test/cunit/cu_band_basics.c,
-	  raster/test/cunit/cu_band_misc.c,
-	  raster/test/cunit/cu_band_stats.c, raster/test/cunit/cu_gdal.c,
-	  raster/test/cunit/cu_mapalgebra.c, raster/test/cunit/cu_misc.c,
-	  raster/test/cunit/cu_pixtype.c,
-	  raster/test/cunit/cu_raster_basics.c,
-	  raster/test/cunit/cu_raster_geometry.c,
-	  raster/test/cunit/cu_raster_misc.c,
-	  raster/test/cunit/cu_raster_wkb.c,
-	  raster/test/cunit/cu_spatial_relationship.c,
-	  raster/test/cunit/cu_tester.c, raster/test/cunit/cu_tester.h:
-	  #3041 Cunit 2.1-3 breaks testing
+	* [r13996]
+	  extensions/address_standardizer/expected/test-init-extensions.out,
+	  extensions/address_standardizer/expected/test-parseaddress.out,
+	  extensions/address_standardizer/expected/test-standardize_address_1.out,
+	  extensions/address_standardizer/expected/test-standardize_address_2.out:
+	  change to unix line breaks
 
-2015-02-17 17:11  strk
+2015-08-24 19:47  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_pg/rtpostgis.sql.in: Pretend raster/geometry operator ~
-	  never changed (#3039)
+	* [r13995] doc/installation.xml: updte loading data to include
+	  vacuumning and install missing indexes
 
-2015-02-12 17:03  strk
+2015-08-24 12:03  Sandro Santilli <strk at keybit.net>
 
-	* doc/extras_topology.xml,
-	  topology/test/regress/legacy_invalid_expected,
-	  topology/topology.sql.in: Revert "ValidateTopology: swap edge_id
-	  and node_id for "edge crosses node" (#3022)"
+	* [r13994] postgis/postgis.sql.in: Do not raise missing-topology
+	  NOTICE on postgis_full_version()
 	  
-	  This reverts r13211, accidentally committed
+	  See #3257
 
-2015-02-12 17:02  strk
+2015-08-24 10:45  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit/cu_tester.c: Fix conditional enabling of json
-	  input unit test
+	* [r13993] extras/tiger_geocoder/upgrade_geocoder.bat: Convert .bat
+	  file to crlf, as requested by .gitattributes
 
-2015-02-12 17:02  strk
+2015-08-24 06:32  Regina Obe <lr at pcorp.us>
 
-	* doc/extras_topology.xml,
-	  topology/test/regress/legacy_invalid_expected,
-	  topology/topology.sql.in: ValidateTopology: swap edge_id and
-	  node_id for "edge crosses node" (#3022)
+	* [r13992] extensions/address_standardizer/parseaddress-api.c,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress:
+	  #3260: parse_address function screws up when zip is > 5
+	  characters
 
-2015-01-25 10:46  robe
+2015-08-24 05:43  Regina Obe <lr at pcorp.us>
 
-	* doc/extras_topology.xml: #3021 table to document the different
-	  error return types (was debating if this belongs in
-	  validatetopology_returntype, but guess better on VAlidateTopology
-	  page (and especially if the return type is reused by other
-	  functions)
+	* [r13991] extras/tiger_geocoder/pagc_normalize/pagc_tables.sql,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql:
+	  #3259 pagc_normalize_address (standardize_address), doesn't
+	  convert numbered street name right (3rd and ,third, used to
+	  become 3 instead of 3rd)
 
-2015-01-24 17:33  dustymugs
+2015-08-24 03:26  Regina Obe <lr at pcorp.us>
 
-	* NEWS, raster/rt_pg/rt_pg.c: ST_AddBand out-db band uses width
-	  value for height
+	* [r13990] extras/tiger_geocoder/tiger_loader_2013.sql,
+	  extras/tiger_geocoder/tiger_loader_2014.sql,
+	  extras/tiger_geocoder/tiger_loader_2015.sql: #2336 FIPS 20 causes
+	  wildcard expansion to wget all files
 
-2015-01-21 15:51  strk
+2015-08-24 02:01  Regina Obe <lr at pcorp.us>
 
-	* regress/Makefile.in: Fix SFCGAL tests in presence of RUNTESTFLAGS
-	  environment (#2794)
-	  
-	  This is a backport of Regina's fix from trunk
+	* [r13988]
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql:
+	  #1108 regression test to confirm this issue is fixed.
 
-2015-01-21 14:59  strk
+2015-08-24 01:53  Regina Obe <lr at pcorp.us>
 
-	* NEWS, topology/test/Makefile.in,
-	  topology/test/regress/droptopogeometrycolumn.sql,
-	  topology/test/regress/droptopogeometrycolumn_expected,
-	  topology/topology.sql.in: Allow unregistering layers of corrupted
-	  topologies (#3016)
-	  
-	  Makes topology.layer trigger and DropTopoGeometryColumn tolerant
-	  of topology schemas with no "relation" table.
-	  
-	  Allows using DropTopology to de-register and drop these kind of
-	  corrupted topologies.
+	* [r13987]
+	  extras/tiger_geocoder/regress/normalize_address_desired_regress,
+	  extras/tiger_geocoder/regress/normalize_address_regress,
+	  extras/tiger_geocoder/regress/normalize_address_regress.sql:
+	  #1108 regression test to confirm this issue is fixed.
 
-2015-01-21 13:46  strk
+2015-08-23 07:46  Regina Obe <lr at pcorp.us>
 
-	* raster/test/regress/rt_mapalgebra_expected,
-	  regress/legacy_expected, regress/run_test.pl,
-	  regress/sfcgal/legacy_expected,
-	  regress/sfcgal/wmsservers_expected, regress/wmsservers_expected:
-	  Disreguard ALTER responses during testing
+	* [r13986] doc/installation.xml:
 
-2015-01-21 12:53  strk
+2015-08-23 07:42  Regina Obe <lr at pcorp.us>
 
-	* NEWS, topology/sql/manage/TopologySummary.sql.in,
-	  topology/test/Makefile.in,
-	  topology/test/regress/topologysummary.sql,
-	  topology/test/regress/topologysummary_expected: Avoid exceptions
-	  from TopologySummary (#3015)
-	  
-	  Includes testcase for the function
+	* [r13985] doc/installation.xml: more updating to reflect all the
+	  extensions packaged in postgis 2.2
 
-2015-01-18 07:51  robe
+2015-08-23 07:19  Regina Obe <lr at pcorp.us>
 
-	* doc/faq_raster.xml: FAQ about 2.0.6, 2.1.3 security changes for
-	  raster
+	* [r13984] doc/installation.xml: update test regress output. Fix
+	  command/screen tags not in para tags
 
-2014-12-30 16:55  strk
+2015-08-23 06:58  Regina Obe <lr at pcorp.us>
 
-	* doc/reference_measure.xml: Fix typo, insert a comma
-	  
-	  Thanks Christian Sturm
+	* [r13983] ci/winnie/regress_postgis.sh: #3258 have winnie test
+	  tiger geocoder
 
-2014-12-30 09:17  strk
+2015-08-23 06:52  Regina Obe <lr at pcorp.us>
 
-	* NEWS, topology/sql/sqlmm.sql.in: Allow index scans in edge
-	  splitting and healing queries (#3000)
-	  
-	  Speeds up topology population when input edges intersect.
-	  
-	  A simple test splitting and re-healing an edge in a ~500k edges
-	  topology completes in ~1/10 of the time.
+	* [r13982] .gitignore, doc/installation.xml,
+	  extensions/Makefile.in, extensions/postgis_tiger_geocoder,
+	  extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/regress/normalize_address_desired_regress,
+	  extras/tiger_geocoder/regress/normalize_address_regress,
+	  extras/tiger_geocoder/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_desired_regress,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress,
+	  extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql:
+	  #3258 installcheck for tiger geocoder, update some regress so
+	  they reflect actual state of outputs, add new genrated folders to
+	  gitignore and svn ignore. Update the docs to describe new
+	  installcheck for (postgis_tiger_geocoder and address_standardizer
+	  extensions)
 
-2014-12-22 10:45  strk
+2015-08-23 06:49  Regina Obe <lr at pcorp.us>
 
-	* NEWS: Use mm/dd for date components placeholders
+	* [r13981] extensions/address_standardizer/Makefile.in: cleanup of
+	  processing make installcheck and building extensions to prevent
+	  junk from being installed in extension folder
 
-2014-12-18 22:43  pramsey
+2015-08-23 05:47  Regina Obe <lr at pcorp.us>
 
-	* liblwgeom/lwcollection.c: Remove warning (unused var)
+	* [r13980] extras/tiger_geocoder/normalize/pprint_addy.sql: make
+	  pre_type check not case sensitive
 
-2014-12-18 22:40  pramsey
+2015-08-22 21:47  Regina Obe <lr at pcorp.us>
 
-	* make_dist.sh: Update svn url
+	* [r13979] ci/debbie/postgis_regress.sh: hard-code to work with
+	  branches only -- will dificult tag later.
 
-2014-12-18 22:39  pramsey
+2015-08-22 21:44  Regina Obe <lr at pcorp.us>
 
-	* NEWS, Version.config: Prep for 2.1.6
+	* [r13978] ci/debbie/postgis_regress.sh: works when I cut and paste
+	  in
 
-2014-12-18 22:38  pramsey
+2015-08-22 21:30  Regina Obe <lr at pcorp.us>
 
-	* ChangeLog, NEWS, README.postgis, Version.config,
-	  doc/release_notes.xml: Release 2.1.5
+	* [r13977] ci/debbie/postgis_regress.sh: try again - damn bash
 
-2014-12-17 17:34  pramsey
+2015-08-22 21:16  Regina Obe <lr at pcorp.us>
 
-	* NEWS, postgis/geography_inout.c: #3009, geography functions may
-	  change column
+	* [r13976] ci/debbie/postgis_regress.sh: try again
 
-2014-12-12 21:13  robe
+2015-08-22 21:01  Regina Obe <lr at pcorp.us>
 
-	* doc/extras_topology.xml: fix link to vincent's topology talk --
-	  point to 2012 instead of 2010 one.
+	* [r13975] ci/debbie/postgis_regress.sh: tweak script to get to
+	  work
 
-2014-12-12 07:26  robe
+2015-08-22 20:35  Regina Obe <lr at pcorp.us>
 
-	* doc/extras_topology.xml: missed get to gets correction in last
-	  commit
+	* [r13974] ci/debbie, ci/debbie/postgis_regress.sh: move debbie's
+	  regress script into repo (already changed her regress to check if
+	  script exists and use that instead of the buildbots/debian one
 
-2014-12-12 06:58  robe
+2015-08-22 19:41  Regina Obe <lr at pcorp.us>
 
-	* doc/extras_topology.xml: Grammar corrections from Eric Theise -
-	  https://github.com/erictheise/postgis/commit/b76aeaf6b2539345d44f3c2d60fbd84625e3467d
+	* [r13973] ci/winnie/regress_postgis.sh: logic to copy dlls of
+	  address standardizer after extension install so addresss
+	  standardizer regress checks work
 
-2014-12-03 23:37  robe
+2015-08-22 19:25  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_pg/rtpostgis.sql.in: #3006 Numeric overflow when
-	  executing AddRasterConstraints, increased precision to 25,10
+	* [r13972] ci/winnie/regress_postgis.sh: have winnie do
+	  installcheck on address standardizer
 
-2014-12-01 08:47  strk
+2015-08-22 06:49  Regina Obe <lr at pcorp.us>
 
-	* configure.ac, doc/Makefile.comments.in,
-	  doc/html/image_src/Makefile.in, doc/html/image_src/generator.c,
-	  doc/html/image_src/styles.c, doc/html/image_src/styles.h,
-	  doc/man/pgsql2shp.1, doc/man/shp2pgsql.1,
-	  extras/WFS_locks/WFS_locks.sql.in, extras/rpm/spec/postgis.spec,
-	  java/Makefile, java/jdbc/Makefile.in, liblwgeom/Makefile.in,
-	  liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_algorithm.c,
-	  liblwgeom/cunit/cu_buildarea.c, liblwgeom/cunit/cu_clean.c,
-	  liblwgeom/cunit/cu_force_sfs.c, liblwgeom/cunit/cu_geodetic.c,
-	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/cunit/cu_geos.c,
-	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_in_geojson.c,
-	  liblwgeom/cunit/cu_in_wkb.c, liblwgeom/cunit/cu_in_wkt.c,
-	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_measures.c,
-	  liblwgeom/cunit/cu_misc.c, liblwgeom/cunit/cu_node.c,
-	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
-	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
-	  liblwgeom/cunit/cu_out_wkb.c, liblwgeom/cunit/cu_out_wkt.c,
-	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_ptarray.c,
-	  liblwgeom/cunit/cu_sfcgal.c, liblwgeom/cunit/cu_split.c,
-	  liblwgeom/cunit/cu_stringbuffer.c, liblwgeom/cunit/cu_surface.c,
-	  liblwgeom/cunit/cu_surface.h, liblwgeom/cunit/cu_tester.c,
-	  liblwgeom/cunit/cu_tester.h, liblwgeom/cunit/cu_tree.c,
-	  liblwgeom/cunit/cu_triangulate.c, liblwgeom/liblwgeom_internal.h,
-	  liblwgeom/lwalgorithm.c, liblwgeom/lwcircstring.c,
-	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
-	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c,
-	  liblwgeom/lwgeom_api.c, liblwgeom/lwgeom_debug.c,
-	  liblwgeom/lwgeom_geos.c, liblwgeom/lwgeom_geos.h,
-	  liblwgeom/lwgeom_geos_clean.c, liblwgeom/lwgeom_geos_node.c,
-	  liblwgeom/lwgeom_geos_split.c, liblwgeom/lwgeom_log.h,
-	  liblwgeom/lwgeom_sfcgal.c, liblwgeom/lwgeom_sfcgal.h,
-	  liblwgeom/lwgeom_transform.c, liblwgeom/lwhomogenize.c,
-	  liblwgeom/lwline.c, liblwgeom/lwlinearreferencing.c,
-	  liblwgeom/lwmcurve.c, liblwgeom/lwmline.c, liblwgeom/lwmpoint.c,
-	  liblwgeom/lwmpoly.c, liblwgeom/lwmsurface.c,
-	  liblwgeom/lwout_geojson.c, liblwgeom/lwout_gml.c,
-	  liblwgeom/lwout_kml.c, liblwgeom/lwout_svg.c,
-	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwpsurface.c,
-	  liblwgeom/lwsegmentize.c, liblwgeom/lwtin.c,
-	  liblwgeom/lwtriangle.c, liblwgeom/measures.c,
-	  liblwgeom/measures.h, liblwgeom/measures3d.c,
-	  liblwgeom/measures3d.h, liblwgeom/ptarray.c,
-	  libpgcommon/Makefile.in, libpgcommon/common.h,
-	  libpgcommon/cunit/Makefile.in, libpgcommon/lwgeom_cache.c,
-	  libpgcommon/lwgeom_cache.h, libpgcommon/lwgeom_pg.c,
-	  libpgcommon/lwgeom_transform.c, libpgcommon/lwgeom_transform.h,
-	  loader/Makefile.in, loader/README.pgsql2shp,
-	  loader/README.shp2pgsql, loader/cunit/Makefile.in,
-	  loader/cunit/cu_pgsql2shp.c, loader/cunit/cu_pgsql2shp.h,
-	  loader/cunit/cu_shp2pgsql.c, loader/cunit/cu_shp2pgsql.h,
-	  loader/cunit/cu_tester.c, loader/cunit/cu_tester.h,
-	  loader/pgsql2shp-cli.c, loader/pgsql2shp-core.h,
-	  loader/shp2pgsql-core.h, loader/shp2pgsql-gui.c,
-	  loader/shpcommon.c, loader/shpcommon.h,
-	  macros/ac_proj4_version.m4, postgis/Makefile.in,
-	  postgis/long_xact.c, postgis/long_xact.sql.in,
-	  postgis/lwgeom_accum.c, postgis/lwgeom_backend_api.c,
-	  postgis/lwgeom_backend_api.h, postgis/lwgeom_box.c,
-	  postgis/lwgeom_btree.c, postgis/lwgeom_dump.c,
-	  postgis/lwgeom_functions_analytic.c,
-	  postgis/lwgeom_functions_analytic.h,
-	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
-	  postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
-	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_prepared.c,
-	  postgis/lwgeom_geos_prepared.h,
-	  postgis/lwgeom_geos_relatematch.c, postgis/lwgeom_in_gml.c,
-	  postgis/lwgeom_ogc.c, postgis/lwgeom_rtree.c,
-	  postgis/lwgeom_sfcgal.c, postgis/lwgeom_sfcgal.h,
-	  postgis/lwgeom_spheroid.c, postgis/lwgeom_sqlmm.c,
-	  postgis/lwgeom_transform.c, postgis/lwgeom_triggers.c,
-	  postgis/postgis.sql.in, postgis/postgis_drop_after.sql,
-	  postgis/postgis_module.c, postgis/uninstall_long_xact.sql.in,
-	  postgis/uninstall_sqlmm.sql.in,
-	  raster/macros/ac_proj4_version.m4, raster/test/cunit/Makefile.in,
-	  raster/test/cunit/cu_tester.c, raster/test/cunit/cu_tester.h,
-	  topology/Makefile.in, topology/sql/export/TopoJSON.sql.in,
-	  topology/sql/export/gml.sql.in,
-	  topology/sql/manage/CopyTopology.sql.in,
-	  topology/sql/manage/TopologySummary.sql.in,
-	  topology/sql/polygonize.sql.in, topology/sql/populate.sql.in,
-	  topology/sql/predicates.sql.in,
-	  topology/sql/query/GetNodeEdges.sql.in,
-	  topology/sql/query/GetRingEdges.sql.in,
-	  topology/sql/query/getedgebypoint.sql.in,
-	  topology/sql/query/getfacebypoint.sql.in,
-	  topology/sql/query/getnodebypoint.sql.in,
-	  topology/sql/topoelement/topoelement_agg.sql.in,
-	  topology/sql/topogeometry/cleartopogeom.sql.in,
-	  topology/sql/topogeometry/simplify.sql.in,
-	  topology/sql/topogeometry/totopogeom.sql.in,
-	  topology/sql/topogeometry/type.sql.in, topology/topology.sql.in,
-	  utils/Makefile.in, utils/create_undef.pl,
-	  utils/postgis_proc_upgrade.pl, utils/postgis_restore.pl.in: Fix
-	  website links to go to postgis.net
+	* [r13971] .gitignore, extensions/address_standardizer/Makefile.in,
+	  extensions/address_standardizer/expected,
+	  extensions/address_standardizer/expected/test-init-extensions.out,
+	  extensions/address_standardizer/expected/test-parseaddress.out,
+	  extensions/address_standardizer/expected/test-standardize_address_1.out,
+	  extensions/address_standardizer/expected/test-standardize_address_2.out,
+	  extensions/address_standardizer/test-init-extensions.sql.in,
+	  extensions/address_standardizer/test-parseaddress.sql,
+	  extensions/address_standardizer/test-parseaddress.sql.in,
+	  extensions/address_standardizer/test-standardize_address_1.sql.in,
+	  extensions/address_standardizer/test-standardize_address_2.sql.in,
+	  extensions/address_standardizer/test.sql: #3184: regression tests
+	  for address_standardizer - implement make installcheck
 
-2014-10-07 14:11  robe
+2015-08-21 19:17  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql:
-	  #2958 reverse_geocode erroring ERROR: invalid input syntax for
-	  type numeric: " " (revised patch to not return 0 for non-numbered
-	  roads)
+	* [r13970] liblwgeom/measures3d.c: Stop curves at the door when
+	  entering 3D distance calc. #3253
 
-2014-10-07 13:41  robe
+2015-08-21 13:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql:
-	  #2958 reverse_geocode erroring ERROR: invalid input syntax for
-	  type numeric: " "
+	* [r13969] liblwgeom/lwgeom.c: #3254, ST_SubDivide garden crash,
+	  not empty safe
 
-2014-10-05 00:08  robe
+2015-08-21 06:54  Regina Obe <lr at pcorp.us>
 
-	* doc/reference_output.xml: #2955 ST_AsGML is missing some protos
-	  in docs
+	* [r13968] doc/reference_measure.xml: ST_Relate use integer instead
+	  of int for arg type. That's what PostgreSQL shows it as in final
+	  function and int is tripping up garden tests (doesn't know what
+	  int is).
 
-2014-10-02 17:35  pramsey
+2015-08-21 06:09  Regina Obe <lr at pcorp.us>
 
-	* NEWS: Update news for #2953
+	* [r13967] doc/extras_tigergeocoder.xml,
+	  extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/geocode_settings.sql,
+	  extras/tiger_geocoder/upgrade_geocode.sql: #2448 geocoder_setting
+	  gives primary key on restore (created a new table
+	  geocode_settings_default to hold defaults and keep
+	  geocode_settings for custom ones)
 
-2014-10-02 17:33  pramsey
+2015-08-21 05:09  Regina Obe <lr at pcorp.us>
 
-	* postgis/gserialized_estimate.c: #2953, Unable to compute stats
-	  for some features
+	* [r13966] extras/tiger_geocoder/create_geocode.sh,
+	  extras/tiger_geocoder/upgrade_geocoder.bat: missed changes per
+	  #3247 highlighted.
 
-2014-10-01 14:46  strk
+2015-08-20 20:54  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* NEWS, liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom.c,
-	  liblwgeom/lwgeom_geos_clean.c: Fix yet another memory leak in
-	  lwgeom_make_valid (#2947)
-	  
-	  The leak occurs on invalid single-component collection input.
+	* [r13965] regress/measures.sql, regress/measures_expected: Add 2
+	  regression tests for mixed dimmentionalty input to 3d distance
+	  calculations (giving z-value under FLT_MIN which is not used any
+	  more) #3244
 
-2014-10-01 14:11  strk
+2015-08-20 20:52  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* liblwgeom/cunit/cu_force_sfs.c, liblwgeom/lwsegmentize.c: Fix
-	  leaks in lwcurvepoly_segmentize and its tester
+	* [r13964] liblwgeom/measures3d.c: In 3D distance functions: Using
+	  min/max Z from 3D geometry when constructing vertical line used
+	  in finding z value for 2D geoemtry, when mixed geometry #3244
 
-2014-10-01 13:58  strk
+2015-08-20 20:17  Regina Obe <lr at pcorp.us>
 
-	* NEWS, liblwgeom/lwcurvepoly.c, liblwgeom/measures.c: Fix memory
-	  leak in lw_dist2d_poly_curvepoly and lw_dist2d_circstring_poly
-	  
-	  Also clear the memory management for
-	  lwcurvepoly_construct_from_lwpoly .
-	  Fixes #2949.
+	* [r13963] extras/tiger_geocoder/pagc_normalize/pagc_tables.sql:
+	  #2980 directional as a street name should not be abbreviated
 
-2014-09-30 06:48  strk
+2015-08-20 20:08  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* NEWS: Note the PostgreSQL 9.5 support in the news
+	* [r13960] liblwgeom/measures3d.c: Fix typo causing wrong answer in
+	  3d-calc in some situations #3251
 
-2014-09-30 06:47  strk
+2015-08-20 19:29  Regina Obe <lr at pcorp.us>
 
-	* topology/sql/predicates.sql.in: Fix syntax error in RAISE calls
-	  (#2942)
-	  
-	  PostgreSQL 9.5 doesn't tolerate them...
+	* [r13958]
+	  extras/tiger_geocoder/utility/levenshtein_ignore_case.sql: #3161:
+	  treat nulls as blank text for rating purposes (
+	  geocode_intersection returns a null rating for a specific
+	  intersection)
 
-2014-09-22 09:38  strk
+2015-08-20 19:18  Regina Obe <lr at pcorp.us>
 
-	* NEWS, liblwgeom/lwcollection.c: Reduce default paranoia on
-	  geometry collection construction
-	  
-	  Significantly speeds up creation of large collection of
-	  geometries.
-	  Closes #2933
+	* [r13957] extensions/address_standardizer/Makefile.in,
+	  extensions/address_standardizer/address_standardizer.sql.in,
+	  extensions/address_standardizer/address_standardizer_functions.sql.in,
+	  extensions/address_standardizer/address_standardizer_types.sql.in:
+	  #3183: Logic to upgrade the address_standardizer extensions
 
-2014-09-19 21:23  pramsey
+2015-08-20 18:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* configure.ac, liblwgeom/liblwgeom.h.in, liblwgeom/lwutil.c,
-	  postgis_config.h.in: #2934, strcasestr support for platforms
-	  lacking it
+	* [r13956] liblwgeom/cunit/cu_algorithm.c: Try to quiet warnings,
+	  #3250
 
-2014-09-17 17:14  pramsey
+2015-08-20 18:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, postgis/lwgeom_box.c: #2931, BOX representation is case
-	  sensitive
+	* [r13955] regress/geography.sql, regress/geography_expected: Round
+	  off test results for precision match
 
-2014-09-11 04:02  robe
+2015-08-20 18:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Version.config, extensions/upgradeable_versions.mk: bump to
-	  2.1.5dev
+	* [r13954] liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic_tree.c,
+	  postgis/geography_measurement_trees.c, regress/geography.sql,
+	  regress/geography_expected: #2422, improper stopping behavior in
+	  geographic dwithin
 
-2014-09-11 01:18  robe
+2015-08-20 16:24  Sandro Santilli <strk at keybit.net>
 
-	* ChangeLog, README.postgis, Version.config, authors.svn: Update
-	  Bborie's contact, flip to 2.1.4
+	* [r13953] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/lwgeom_topo.c, topology/postgis_topology.c,
+	  topology/sql/sqlmm.sql.in: Implement ST_RemoveIsoEdge in C
+	  
+	  Adds lwt_RemIsoEdge to liblwgeom
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-09-10 07:05  robe
+2015-08-20 15:13  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, doc/release_notes.xml: Add missing ticket items to 2.1.4
-	  release notes and stamp date on NEWs file in prep for release
-	  later today
+	* [r13952] liblwgeom/lwgeom_topo.c, topology/postgis_topology.c: Do
+	  not force debug on in C topology
 
-2014-09-09 21:31  robe
+2015-08-20 15:00  Sandro Santilli <strk at keybit.net>
 
-	* doc/release_notes.xml: We are going to release tomorrow -- I've
-	  stamped the date on the appendix release notes
+	* [r13951] doc/reference_management.xml: Fix typo in
+	  PopulateGeometryColumns docs
+	  
+	  Thanks Oliver Tonnhofer for spotting this
 
-2014-09-09 21:21  robe
+2015-08-20 14:59  Sandro Santilli <strk at keybit.net>
 
-	* NEWS: #2927 reverse geocode account for predirection and use
-	  ST_LineLocatePoint instead of deprecated ST_line_locate_point.
-	  Also added in regression test
+	* [r13950] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/liblwgeom_topo_internal.h, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c, topology/sql/populate.sql.in:
+	  Implement TopoGeo_addPolygon in C
+	  
+	  Adds getFaceWithinBox2D backend callback
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-09-09 21:19  robe
+2015-08-20 11:28  Sandro Santilli <strk at keybit.net>
 
-	* extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql,
-	  extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress,
-	  extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress.sql:
-	  #2927 reverse geocode account for predirection and use
-	  ST_LineLocatePoint instead of deprecated ST_line_locate_point.
-	  Also added in regression test
+	* [r13949] liblwgeom/lwgeom_topo.c: Fix error on "other connected
+	  edges" in _lwt_HealEdges
+	  
+	  Thanks Alessandro Furieri for catching this
+	  (our testsuite missed it!)
 
-2014-09-08 21:22  robe
+2015-08-20 10:30  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_misc.xml: #2762 renamed ST_Estimated_Extent page to
-	  ST_EstimatedExtent
+	* [r13948] liblwgeom/TODO, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c, topology/sql/populate.sql.in:
+	  Implement TopoGeo_AddLinestring to C
+	  
+	  Also:
+	  
+	  - Convert srid=-1 in topology to officially unknown srid
+	  at load time (See #3192).
+	  - Use hexwkb for box-based callback queries to avoid drifts.
+	  - Fix minTolerance computation.
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-09-07 17:42  robe
+2015-08-19 21:39  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* doc/reference_raster.xml: #2920 stab at explaining requirement
-	  for alignment and add more detail to ST_SameAlignment
+	* [r13946] liblwgeom/measures3d.c, regress/measures_expected: Fix
+	  for #3244
 
-2014-09-05 15:46  strk
+2015-08-19 16:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, raster/rt_core/rt_api.c,
-	  raster/test/regress/rt_gdalwarp.sql,
-	  raster/test/regress/rt_gdalwarp_expected,
-	  raster/test/regress/tickets.sql,
-	  raster/test/regress/tickets_expected: Fix output georeference on
-	  warping rasters with default georeference
-	  
-	  Closes #2911
+	* [r13943] regress/tickets.sql: Tests for when #3244 is fixed
 
-2014-09-03 09:54  strk
+2015-08-19 16:41  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_raster.xml: Fix typo in DropOverviewConstraints doc
+	* [r13942] liblwgeom/lwgeom_geos.c, liblwgeom/lwgeom_geos_split.c:
+	  Always return a fully owned object to lwgeom/geos function
+	  callers
+	  
+	  See #3245
 
-2014-09-03 09:15  strk
+2015-08-19 10:52  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_raster.xml, doc/using_raster_dataman.xml: Add
-	  documentation for {Add,Drop}OverviewConstraints (#2824)
+	* [r13941] NEWS, liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_geos.c,
+	  postgis/lwgeom_geos.c: Add lwgeom_unaryunion to liblwgeom
+	  
+	  Includes postgis change to use liblwgeom version
 
-2014-09-03 08:20  strk
+2015-08-19 09:15  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rtpostgis.sql.in: Add availability info for
-	  {Add,Drop}OverviewConstraints
+	* [r13940] NEWS: Add NEWS item about lwgeom_linemerge function in
+	  liblwgeom
 
-2014-08-27 08:45  strk
+2015-08-19 09:14  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, raster/rt_pg/rt_pg.c, raster/test/regress/rt_union.sql,
-	  raster/test/regress/rt_union_expected: Fix crash on null input to
-	  ST_Union(raster)
+	* [r13939] liblwgeom/cunit/cu_geos.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeom_geos.c, postgis/lwgeom_geos.c: Add
+	  lwgeom_linemerge to liblwgeom
 	  
-	  Includes testcase
+	  Includes regress test and postgis change to use liblwgeom version
 
-2014-08-27 07:37  strk
+2015-08-19 06:54  Regina Obe <lr at pcorp.us>
 
-	* extensions/postgis/Makefile.in: Remove duplicated dep tracking
+	* [r13938] ci/winnie/package_postgis.sh,
+	  ci/winnie/regress_postgis.sh: upgrade to use cgal 4.6.1 and boost
+	  1.59.0
 
-2014-08-27 07:22  strk
+2015-08-18 20:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* GNUmakefile.in, configure.ac, doc/Makefile.in: Simplify docs
-	  building rules, fixing build-on-install (#2872)
+	* [r13937] postgis/lwgeom_backend_api.c: #3238, handle case of
+	  "placeholder" GUC as well as real GUC conflicts
 
-2014-08-26 10:28  strk
+2015-08-18 18:19  Sandro Santilli <strk at keybit.net>
 
-	* postgis/lwgeom_sfcgal.c: Include postgis_config.h from
-	  lwgeom_sfcgal.c
-	  
-	  Doing so correctly gets the POSTGIS_PGSQL_VERSION variable when
-	  pgsql_compat.h is included. See #2790.
+	* [r13936] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/lwgeom_topo.c, topology/postgis_topology.c,
+	  topology/sql/populate.sql.in: Implement TopoGeo_addPoint in C
 	  
-	  Ideally, pgsql_compat.h would include postgis_config.h itself,
-	  but
-	  doing so might require a bigger change (proper -I compiler
-	  switches
-	  added to appropriate Makefiles).
-
-2014-08-26 10:12  strk
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-	* NEWS, utils/postgis_restore.pl.in: Do not skip lines starting
-	  with "--" from object comments (#2759)
+2015-08-18 17:34  Sandro Santilli <strk at keybit.net>
 
-2014-08-23 05:52  robe
+	* [r13935] liblwgeom/lwgeom_topo.c: Fix build with POSTGIS_DEBUG
+	  defined
 
-	* doc/reference_sfcgal.xml: 2855: better documentation to reflect
-	  minkowski doesn't support polyhedral and tins
+2015-08-18 17:10  Sandro Santilli <strk at keybit.net>
 
-2014-08-23 05:24  robe
+	* [r13934] liblwgeom/lwgeom_topo.c, topology/postgis_topology.c: Do
+	  not use NOTICE channel for debugging prints
 
-	* NEWS: #2899 geocode limit 1 not always returning best answer (add
-	  to NEWS)
+2015-08-18 13:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2014-08-23 05:22  robe
+	* [r13933] loader/shp2pgsql-core.c: #2283, shp2pgsql may be parsing
+	  shp's multipolygon incorrectly
 
-	* extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql,
-	  extras/tiger_geocoder/tiger_2011/regress/geocode_regress,
-	  extras/tiger_geocoder/tiger_2011/regress/geocode_regress.sql:
-	  #2899 geocode limit 1 not always returning best answer
+2015-08-18 12:58  Sandro Santilli <strk at keybit.net>
 
-2014-08-22 21:38  pramsey
+	* [r13929] doc/extras_topology.xml: Correct exception info about
+	  GetFaceByPoint and GetEdgeByPoint (#3241)
 
-	* liblwgeom/lwpoly.c: #2720, lwpoly_add_ring should update maxrings
-	  after realloc
+2015-08-18 12:54  Sandro Santilli <strk at keybit.net>
 
-2014-08-22 02:18  robe
+	* [r13928] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/lwgeom_topo.c, topology/postgis_topology.c,
+	  topology/sql/query/getedgebypoint.sql.in,
+	  topology/sql/query/getfacebypoint.sql.in,
+	  topology/sql/query/getnodebypoint.sql.in: Implement
+	  GetNodeByPoint, GetEdgeByPoint and GetFaceByPoint in C
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-	* raster/rt_core/rt_api.h: #2903 change in #2620 (to support debian
-	  freebsd kernel) broke freebsd compilation
+2015-08-18 11:56  Sandro Santilli <strk at keybit.net>
 
-2014-08-21 05:46  robe
+	* [r13925] topology/test/regress/getfacebypoint.sql,
+	  topology/test/regress/getfacebypoint_expected: Add labels for
+	  getFaceByNode tests
+	  
+	  Makes it easier to know which test failed
 
-	* NEWS: #2708 add to bug fix list
+2015-08-18 10:56  Sandro Santilli <strk at keybit.net>
 
-2014-08-21 05:42  robe
+	* [r13924] topology/postgis_topology.c: Fix getNodeWithinDistance2D
+	  callback implementation
 
-	* postgis/postgis.sql.in: #2708: updategeometrysrid doesn't update
-	  srid check in some cases (when schema not specified). Patch from
-	  Marc Jansen
+2015-08-18 10:14  Sandro Santilli <strk at keybit.net>
 
-2014-08-20 14:10  pramsey
+	* [r13923] liblwgeom/lwgeom_topo.c: Hush compiler warnings
 
-	* NEWS, configure.ac, liblwgeom/g_box.c,
-	  postgis/gserialized_gist_2d.c, postgis/gserialized_gist_nd.c,
-	  postgis_config.h.in: #2819, find isfinite or replacement on
-	  Centos5 / Solaris
+2015-08-18 09:14  Sandro Santilli <strk at keybit.net>
 
-2014-08-20 04:30  robe
+	* [r13920] doc/extras_topology.xml: See Also GetFaceByPoint in
+	  GetNodeByPoint and GetEdgeByPoint docs
 
-	* doc/reference_editor.xml, doc/reference_lrs.xml: #2871 fix update
-	  to 2.0 message for ST_LineInterpolatePoint, ST_LineSubstring and
-	  ST_LineLocatePoint. Also changed reference ids to match new
-	  function name (missed some spots)
+2015-08-17 14:56  Sandro Santilli <strk at keybit.net>
 
-2014-08-20 04:10  robe
+	* [r13915] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/lwgeom_topo.c, topology/postgis_topology.c,
+	  topology/sql/sqlmm.sql.in: Implement ST_ModEdgeHeal and
+	  ST_NewEdgeHeal in C
+	  
+	  Adds checkTopoGeomRemNode and updateTopoGeomEdgeHeal callbacks
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-	* doc/reference_editor.xml, doc/reference_lrs.xml: #2871 fix update
-	  to 2.0 message for ST_LineInterpolatePoint, ST_LineSubstring and
-	  ST_LineLocatePoint. Also changed reference ids to match new
-	  function name
+2015-08-17 09:54  Sandro Santilli <strk at keybit.net>
+
+	* [r13914] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/lwgeom_topo.c, topology/postgis_topology.c,
+	  topology/sql/sqlmm.sql.in: Implement ST_RemEdgeNewFace in C
+	  
+	  Renames updateTopoGeomRemEdge callback to checkTopoGeomRemEdge
+	  and
+	  moves face healing checks there to be more conservative with face
+	  identifiers sequence.
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-08-19 20:48  pramsey
+2015-08-16 22:39  Regina Obe <lr at pcorp.us>
 
-	* postgis/lwgeom_geos.c: #2605 armel: _ST_Covers() returns true for
-	  point in hole
+	* [r13913] extras/tiger_geocoder/tiger_loader_2015.sql: schema
+	  qualify inherits clause on all tables per Brian Hamlin's
+	  suggestion.
 
-2014-08-16 13:27  strk
+2015-08-16 21:34  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, raster/rt_pg/rtpostgis.sql.in: Raise cost of
-	  ST_ConvexHull(raster) from 1 to 300 (#2895)
+	* [r13912] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/lwgeom_topo.c, topology/postgis_topology.c,
+	  topology/sql/sqlmm.sql.in: Implement ST_RemEdgeModFace in C
+	  
+	  Includes two new callbacks for TopoGeom management
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-08-16 05:23  robe
+2015-08-16 10:02  Sandro Santilli <strk at keybit.net>
 
-	* postgis/geography.sql.in, regress/tickets.sql,
-	  regress/tickets_expected: #2870 put in change notice in sql
-	  geograpy(bytea) has changed, put in regression test
+	* [r13911] topology/test/regress/st_remedgenewface.sql: Do not run
+	  ST_RemEdgeModFace in the test for ST_RemEdgeNewFace
 
-2014-08-14 22:53  pramsey
+2015-08-16 07:31  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/geography.sql.in, postgis/geography_inout.c: #2780,
-	  Binary insert into geography column results in value being
-	  inserted as geometry
+	* [r13909] extras/tiger_geocoder/create_geocode.bat: Commit the
+	  file with crlf as requested by .gitattribute (I think)
 
-2014-08-07 13:58  strk
+2015-08-16 01:48  Regina Obe <lr at pcorp.us>
 
-	* GNUmakefile.in, doc/Makefile.in, topology/Makefile.in: Remove
-	  more generated Makefile on "distclean" (#2876)
+	* [r13907] doc/installation.xml, extras/tiger_geocoder/README,
+	  extras/tiger_geocoder/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_loader_2015.sql,
+	  extras/tiger_geocoder/upgrade_geocoder.sh: #3227 incorporate
+	  Brian's suggested changes and fix some other minor issues with
+	  instructions.
 
-2014-08-01 18:47  pramsey
+2015-08-14 01:42  Regina Obe <lr at pcorp.us>
 
-	* liblwgeom/lwline.c: #2845, fix patch
+	* [r13906] NEWS, doc/extras_tigergeocoder.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl,
+	  extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/create_geocode.bat,
+	  extras/tiger_geocoder/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_loader_2015.sql: #3227 Support for
+	  Tiger 2015 (also summary update of what's new in PostGIS 2.2)
 
-2014-08-01 18:44  pramsey
+2015-08-12 17:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, liblwgeom/lwline.c: #2845, Bad geometry created from
-	  ST_AddPoint
+	* [r13905] postgis/Makefile.in, utils/postgis_proc_upgrade.pl:
+	  #3235, ensure all commands in upgrade are within transaction
 
-2014-07-27 17:13  dustymugs
+2015-08-11 22:25  Regina Obe <lr at pcorp.us>
 
-	* NEWS, raster/rt_pg/rtpostgis.sql.in: shortcut ST_Clip if clipping
-	  geometry extent fully contains raster extent. Ticket #2829
+	* [r13904] postgis/postgis.sql.in: #3236 get rid of STRICT on
+	  ST_OrderingEquals -- preventing spatial index from being used.
 
-2014-07-21 05:03  robe
+2015-08-11 14:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/reference_output.xml: Fix X3D specification link (X3D
-	  recently redid their site which broke all the links), also link
-	  to the PostGIS X3D web viewer as demonstration of using x3dom
-	  native html/js web browser rendering
+	* [r13902] postgis/lwgeom_backend_api.c: #2382, allow multiple
+	  libraries to co-exist during upgrade, warn about GUC value being
+	  locked during coexistence period.
 
-2014-07-18 14:47  dustymugs
+2015-08-10 18:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* raster/rt_pg/rtpostgis.sql.in: correctly fixregexp escaping.
-	  ticket #2826
+	* [r13901] extensions/upgradeable_versions.mk: Add 2.0.7 release
 
-2014-07-11 17:20  pramsey
+2015-08-07 16:19  Sandro Santilli <strk at keybit.net>
 
-	* postgis/gserialized_estimate.c: #2834, ST_Estimated_Extent and
-	  mixedCase table names
+	* [r13898] topology/test/regress/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected: Enhance test for
+	  ST_MoveIsoNode
+	  
+	  Test edge crossing and valid move
 
-2014-07-08 21:01  robe
+2015-08-07 07:20  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_editor.xml: #2820: ST_Segmentize(geography) returns
-	  a geography not geometry
+	* [r13897] liblwgeom/TODO, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c, topology/sql/sqlmm.sql.in: Implement
+	  ST_RemIsoNode/ST_RemoveIsoNode in C
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-07-08 02:24  dustymugs
+2015-08-06 17:28  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rtpostgis.sql.in: fix regexp escaping
+	* [r13896] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/lwgeom_topo.c, topology/postgis_topology.c,
+	  topology/sql/sqlmm.sql.in: Implement
+	  ST_RemIsoNode/ST_RemoveIsoNode in C
+	  
+	  Adds deleteNodesById callback
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-07-07 08:57  strk
+2015-08-06 16:59  Sandro Santilli <strk at keybit.net>
 
-	* loader/shp2pgsql-core.c, raster/loader/raster2pgsql.c: Fix index
-	  creation in loaders
+	* [r13892] topology/test/regress/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected: Fix test to really remove
+	  an isolated node
 	  
-	  The bug was introduced with previous commit (typo)
-	  See #2811
+	  Prior to this, only the non-isolated ones were attempted to be
+	  removed (only testing the failure case)
 
-2014-07-07 08:18  strk
+2015-08-06 15:25  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, loader/shp2pgsql-core.c, raster/loader/raster2pgsql.c: Do
-	  not explicitly name indexes loading rasters/shapefiles (#2811)
+	* [r13891] liblwgeom/TODO: Add more of the implemented liblwgeom
+	  topo API
 
-2014-07-06 20:17  dustymugs
+2015-08-06 15:14  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, raster/rt_pg/rt_pg.c,
-	  raster/test/regress/rt_mapalgebra.sql,
-	  raster/test/regress/rt_mapalgebra_expected: ST_MapAlgebra checks
-	  callback function return datatype. Ticket #2802
+	* [r13890] extensions/address_standardizer/Makefile.in: Do not
+	  clean *.control on "make clean"
+	  
+	  It's generated by ./configure so should eventually
+	  be removed on "make distclean".
+	  
+	  Hopefully fixes debbie build:
+	  http://debbie.postgis.net:8080/job/PostGIS_Regress/7454/console
 
-2014-07-06 18:39  dustymugs
+2015-08-06 14:58  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rtpostgis.sql.in, raster/test/regress/rt_band.sql,
-	  raster/test/regress/rt_band_expected: escape delimiter of
-	  ST_Band(). Ticket #2812
+	* [r13889] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/lwgeom_topo.c, topology/postgis_topology.c,
+	  topology/sql/sqlmm.sql.in: Implement ST_ChangeEdgeGeom in C
+	  
+	  Also fixes cb_updateFacesById implementation
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-07-06 17:35  dustymugs
+2015-08-06 10:27  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
-	  raster/rt_pg/rt_pg.h, raster/test/cunit/cu_band_basics.c,
-	  raster/test/cunit/cu_band_misc.c,
-	  raster/test/cunit/cu_band_stats.c, raster/test/cunit/cu_gdal.c,
-	  raster/test/cunit/cu_mapalgebra.c, raster/test/cunit/cu_misc.c,
-	  raster/test/cunit/cu_pixtype.c,
-	  raster/test/cunit/cu_raster_basics.c,
-	  raster/test/cunit/cu_raster_geometry.c,
-	  raster/test/cunit/cu_raster_misc.c,
-	  raster/test/cunit/cu_raster_wkb.c,
-	  raster/test/cunit/cu_spatial_relationship.c: fix obsolete URL in
-	  headers
+	* [r13888] topology/postgis_topology.c: Fix another possible
+	  release of unallocated memory in edge addint funx
 
-2014-07-06 16:09  dustymugs
+2015-08-06 05:20  Regina Obe <lr at pcorp.us>
 
-	* NEWS, raster/rt_pg/rt_pg.c,
-	  raster/test/regress/rt_mapalgebra.sql,
-	  raster/test/regress/rt_mapalgebra_expected: use empty TEXT array
-	  for userargs when no user args and STRICT callback function
+	* [r13887] extensions/address_standardizer/Makefile.in,
+	  extensions/address_standardizer/sql,
+	  extensions/address_standardizer/sql_bits,
+	  extensions/address_standardizer/sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in:
+	  #3191: address_standardizer_data_us should respect is_custom flag
+	  during restore (also revised make to discard artifacts when make
+	  clean is called), got rid of sql folder (gets recreated during
+	  make), and add sql_bits to hold config for restore
 
-2014-07-06 03:20  robe
+2015-08-05 20:34  Mateusz Loskot <mateusz at loskot.net>
 
-	* doc/doxygen.cfg.in: change title from PostGIS Trunk Doxygen to
-	  PostGIS 2.1 Doxygen
+	* [r13886] .travis.yml: Revert r13885 from trunk:
+	  Migrate Travis CI builds to the new container-based architecture.
 
-2014-06-27 19:00  pramsey
+2015-08-05 16:06  Mateusz Loskot <mateusz at loskot.net>
 
-	* raster/test/regress/rt_utility.sql: #2789 regression test in
-	  raster not compatible with pgsql 9.0
+	* [r13885] .travis.yml: Migrate Travis CI builds to the new
+	  container-based architecture.
 
-2014-06-27 18:35  pramsey
+2015-08-05 07:38  Sandro Santilli <strk at keybit.net>
 
-	* NEWS: #2704 ST_GeomFromGML() does not work properly with array of
-	  gml:pos
+	* [r13884] configure.ac: Report postgresql support at the end of
+	  ./configure (#3157)
 
-2014-06-27 18:32  pramsey
+2015-08-05 07:25  Sandro Santilli <strk at keybit.net>
 
-	* postgis/lwgeom_geos.c: Ensure conditional has access to config
-	  variables
+	* [r13883] configure.ac: Fix --without-postgresql handling
 
-2014-06-27 18:18  pramsey
+2015-08-05 06:57  Sandro Santilli <strk at keybit.net>
 
-	* postgis/lwgeom_in_gml.c, regress/tickets.sql,
-	  regress/tickets_expected: #2704, ST_GeomFromGML() does not work
-	  properly with array of gml:pos
+	* [r13882] GNUmakefile.in, configure.ac: Add --without-postgresql
+	  switch to only build liblwgeom (#3157)
 
-2014-06-27 18:12  pramsey
+2015-08-05 06:45  Sandro Santilli <strk at keybit.net>
 
-	* postgis/lwgeom_geos.c, regress/tickets.sql,
-	  regress/tickets_expected: #2788 Warning on
-	  PG_RETURN_HEAPTUPLEHEADER building against PgSQL 9.
+	* [r13881] GNUmakefile.in: postgis.sql and postgis_upgrade.sql are
+	  no more created in top dir
 
-2014-06-27 07:34  strk
+2015-08-04 22:40  Regina Obe <lr at pcorp.us>
 
-	* NEWS, liblwgeom/lwgeodetic.c: Fix undefined behavior in
-	  ptarray_calculate_gbox_geodetic (#2774)
-	  
-	  Patch by Paul Ramsey
+	* [r13879] ci/winnie/build_postgis.sh,
+	  ci/winnie/package_postgis.sh, ci/winnie/regress_postgis.sh: add
+	  build and package scripts and update all to copy new postgis
+	  topology .dll to install and package folder
 
-2014-06-26 22:43  pramsey
+2015-08-04 22:25  Regina Obe <lr at pcorp.us>
 
-	* postgis/lwgeom_functions_basic.c, regress/tickets.sql,
-	  regress/tickets_expected: #2712, ST_Segmentize exception on Empty
-	  input: getPoint4d_p: point offset out of range
+	* [r13878] liblwgeom/lwgeom_topo.c: #3206 fix windows issues with
+	  topology
 
-2014-06-26 11:04  strk
+2015-08-04 21:08  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, liblwgeom/lwgeom_geos_clean.c: Fix potential memory fault
-	  in ST_MakeValid
-	  
-	  The fault would be triggered by passing a non-empty collection
-	  to ST_MakeValid where any "made-valid" component would result
-	  being non accepted by the final geometry collection constructor.
+	* [r13877] liblwgeom/TODO, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c, topology/sql/sqlmm.sql.in: Implement
+	  ST_GetFaceEdges in C
 	  
-	  I'm not sure an input exists right now to trigger that case,
-	  but worth fixing anyway.
+	  Wraps SPI_exec calls in callbacks to not force a memory context
+	  switch
 	  
-	  Bug found by Alvaro Huarte:
-	  https://github.com/postgis/postgis/pull/21
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-06-26 08:02  strk
+2015-08-04 18:36  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, configure.ac: Fix handling of bogus argument passed to
-	  --with-sfcgal (#2784)
+	* [r13876] liblwgeom/lwgeom_topo.c: Fix unchecked return from
+	  _lwt_CheckEdgeCrossing (#3225)
 	  
-	  Patch by Vincent Mora
+	  NOTE: only affects clients that do not long-jump out on lwerror
+	  (ie: PostGIS is unaffected)
 
-2014-06-25 15:56  pramsey
+2015-08-04 17:14  Regina Obe <lr at pcorp.us>
 
-	* configure.ac, liblwgeom/lwin_geojson.c, postgis_config.h.in:
-	  #2723 failure to build against external json-c 0.12
+	* [r13875] extensions/postgis_tiger_geocoder,
+	  extensions/postgis_tiger_geocoder/sql: remove sql folder and add
+	  to svnignore
 
-2014-06-25 09:50  strk
+2015-08-04 16:49  Regina Obe <lr at pcorp.us>
 
-	* liblwgeom/lwgeom_sfcgal.h: Fix warning: no previous prototype for
-	  'lwgeom_sfcgal_version'
+	* [r13874] extensions/postgis_topology: add sql folder to svn
+	  ignore list
 
-2014-06-25 09:02  strk
+2015-08-04 16:43  Regina Obe <lr at pcorp.us>
 
-	* NEWS, regress/regress_sfcgal.sql, regress/sfcgal/empty.sql,
-	  regress/sfcgal/empty_expected, regress/sfcgal/measures.sql,
-	  regress/sfcgal/regress.sql, regress/sfcgal/tickets.sql,
-	  regress/sfcgal/tickets_expected: Fix SFCGAL tests to work with
-	  all versions (#2755)
+	* [r13873] extensions/postgis_topology/sql: delete sql folder from
+	  svn gets recreated by build
 
-2014-06-24 22:45  pramsey
+2015-08-04 16:38  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit/cu_libgeom.c, liblwgeom/lwline.c: #2775
-	  lwline_from_lwmpoint leaks memory
+	* [r13872] .gitignore: Ignore extensions/address_standardizer/sql/
+	  (git version)
 
-2014-06-24 21:06  robe
+2015-08-04 09:21  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_sfcgal.xml, doc/xsl/sfcgal_comments.sql.xsl,
-	  postgis/sfcgal.sql.in: Backport sfcgal cleanup fixes from #2779,
-	  #2753 (note for this just removed ST_IsPlanar from doco since it
-	  was never released until 2.2 and corrected spelling of
-	  ST_MinkowskiSum in doco), fixed comments generation script
+	* [r13871] regress/interrupt_relate.sql: Avoid the short-circuite
+	  of ST_Equals while running interrupt tests
+	  
+	  See #3226
 
-2014-06-21 18:08  dustymugs
+2015-08-04 09:08  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, raster/rt_pg/rt_pg.c, raster/test/regress/rt_utility.sql,
-	  raster/test/regress/rt_utility_expected: fix premature memory
-	  free in RASTER_getBandPath (ST_BandPath)
+	* [r13870] regress/interrupt_relate.sql,
+	  regress/interrupt_relate_expected: Fix labels on interrupt tests
 
-2014-06-11 15:10  robe
+2015-08-04 09:02  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_raster.xml: add missing RT_Raster_EQ
+	* [r13869] regress/regress_sfcgal.sql,
+	  regress/regress_sfcgal_expected: Avoid -0 in output
+	  
+	  Fixes test run with SFCGAL 1.2.0.
+	  See #3171
 
-2014-06-09 04:24  robe
+2015-08-03 18:17  Regina Obe <lr at pcorp.us>
 
-	* doc/reference_raster.xml: fix typo in function proto for
-	  ST_NotSameAlignmentReason (had ST_SameAlignment)
+	* [r13868] ci, ci/winnie, ci/winnie/regress_postgis.sh: #3228: move
+	  winnie's regress into repo (still need to change PostGIS 2.2 jobs
+	  to use -- just experimenting with one run)
 
-2014-06-01 23:47  robe
+2015-08-03 16:31  Regina Obe <lr at pcorp.us>
 
-	* doc/reference_raster.xml: #2752: && (raster/geometry) , raster @
-	  and ~ operators not documented, also was missing ~= (same
-	  operator though was in trunk)
+	* [r13867] .gitattributes: #3219: Fix windows mingw issue can't
+	  build against git repo. Force files that need to be linux
+	  linebreaks from using native mode (CRLF on windows)
 
-2014-05-29 09:55  strk
+2015-07-31 21:47  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_pg/rtpostgis.sql.in: Add more availability info for
-	  raster operators
-	  
-	  Adds 2.0.5 availability for raster @ geometry (and back)
-	  And completes previous availability taking it up to functions
+	* [r13865] topology/postgis_topology.c: #3206 get rid of PRId64
+	  calls in appendInfoString and use instead INT64_FORMAT as
+	  suggested by Alavaro Herrera, Tom Lane of PostgreSQL dev group
+
+2015-07-31 17:23  Sandro Santilli <strk at keybit.net>
+
+	* [r13864] NEWS, postgis/lwgeom_geos.c: Add memcmp short-circuit to
+	  ST_Equals (#3223)
 	  
-	  See #2752
+	  Patch by Daniel Baston
 
-2014-05-29 09:48  strk
+2015-07-31 17:06  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rtpostgis.sql.in: Add in availability info for
-	  operator && and ~ for raster/geometry
+	* [r13862] postgis/gserialized_estimate.c: Fix uninitialized stddev
+	  in stats computation (#3222)
 	  
-	  See #2752
+	  Patch by Daniel Baston
 
-2014-05-29 09:04  strk
+2015-07-31 16:34  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rtpostgis_drop.sql.in,
-	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in: Handling of
-	  raster_columns table/view needs to be done _before_
+	* [r13861] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/liblwgeom_topo_internal.h, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c, topology/sql/sqlmm.sql.in,
+	  topology/topology.sql.in: Implement ST_GetFaceGeometry in C
+	  
+	  Adds callbacks to return SRID, precision and Z flag for
+	  backend topology object.
 	  
-	  Or we'd drop the view after...
+	  Returns EMPTY polygon for faces with no boundaries,
+	  closing #3221.
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
+
+2015-07-30 21:15  Sandro Santilli <strk at keybit.net>
 
-2014-05-29 09:04  strk
+	* [r13860] doc/extras_topology.xml: Typo in doc
 
-	* raster/rt_pg/rtpostgis_drop.sql.in,
-	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in: ST_AsRater changed
-	  signature, wasn't obsoleted
+2015-07-30 14:36  Sandro Santilli <strk at keybit.net>
 
-2014-05-29 08:22  strk
+	* [r13859] extensions/address_standardizer/Makefile.in: Ensure the
+	  sql/ dir exists before attempting to write there
+	  
+	  See https://travis-ci.org/postgis/postgis/builds/73386848
+
+2015-07-30 14:23  Sandro Santilli <strk at keybit.net>
 
-	* regress/binary_expected, regress/run_test.pl: Backport changes to
-	  run_test.pl script
+	* [r13858] liblwgeom/TODO, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/lwgeom_topo.c, topology/postgis_topology.c,
+	  topology/sql/sqlmm.sql.in,
+	  topology/test/regress/st_addisoedge_expected: Implement
+	  ST_AddIsoEdge in C
 	  
-	  This will help us with testing extension upgrades after
-	  the changes introduced in the upgrade scripts
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-05-29 08:02  strk
+2015-07-30 13:51  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rtpostgis_drop.sql.in: Do not drop non-obsolted
-	  ST_Union(raster) aggregate
+	* [r13857] topology/postgis_topology.c: Fix possible release of
+	  unallocated memory in ST_AddIsoNode
 
-2014-05-29 07:53  strk
+2015-07-30 10:21  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/Makefile.in, raster/rt_pg/rtpostgis_drop.sql.in,
-	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in: Cleanup raster
-	  drop files
-	  
-	  rtpostgis_drop.sql is used to drop obsoleted objects (after)
-	  while rtpostgis_upgrade_cleanup.sql is used to remove things that
-	  need be removed _before_ (incompatible CREATE OR REPLACE).
+	* [r13856] liblwgeom/liblwgeom_topo.h: Add signature for
+	  lwt_NewEdgeHeal (unimplemented yet)
+
+2015-07-30 09:57  Sandro Santilli <strk at keybit.net>
+
+	* [r13855] NEWS, liblwgeom/Makefile.in: Switch to versioned
+	  liblwgeom interface (#2278)
 	  
-	  Ideally nothing would need to be removed _before_ if the
-	  proc_upgrade script was made smarter to determine incompatible
-	  signature changes (but this is for another time).
+	  See
+	  https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
 
-2014-05-29 06:34  strk
+2015-07-29 17:30  Sandro Santilli <strk at keybit.net>
 
-	* NEWS: Update NEWS with raster upgrade being now done in a
-	  transaction
+	* [r13853] liblwgeom/TODO: Add TODO file for liblwgeom (for TOPO,
+	  at the moment)
 
-2014-05-29 06:20  strk
+2015-07-24 12:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* raster/rt_pg/Makefile.in: Wrap rtpostgis_upgrade.sql in a
-	  transaction (#2749)
+	* [r13852] liblwgeom/lwgeom.c: Quite warning for robe
 
-2014-05-25 19:44  dustymugs
+2015-07-24 08:37  Regina Obe <lr at pcorp.us>
 
-	* NEWS: news entry for GDAL 2.0
+	* [r13851] extensions/postgis_sfcgal/Makefile.in: #2867 can't
+	  upgrde sfcgal extension - got rid of begin/commit in upgrade and
+	  duplicate includes of helper files, change the make unpackaged
+	  from postgis_topology to EXTENSION (not tested build from
+	  unpackaged).
 
-2014-05-25 19:43  dustymugs
+2015-07-24 06:38  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_core/rt_api.c: basic support for GDAL 2.0
+	* [r13850] extensions/address_standardizer/Makefile.in,
+	  extensions/address_standardizer/sql: #3216: address standardizer
+	  mod path name not versioned
 
-2014-05-21 09:59  strk
+2015-07-23 21:34  Regina Obe <lr at pcorp.us>
 
-	* NEWS: Make format consistent
+	* [r13849]
+	  extensions/address_standardizer/address_standardizer.sql.in:
+	  #2285 standardize_address should no longer be marked as SETOF
 
-2014-05-21 09:46  strk
+2015-07-23 19:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, postgis/lwgeom_functions_analytic.c: Reduce overhead of
-	  ST_Simplify calls against points and multipoints
-	  
-	  It takes half the time to run against 800k point records now
-	  (still double the time it takes to return those 800k records
-	  directly)
-	  
-	  See #2745
+	* [r13848] regress/tickets.sql: Remove unused test
 
-2014-05-19 11:15  strk
+2015-07-23 19:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* HOWTO_RELEASE: Drop PlanetPostgis announce (automatic via
-	  http://postgis.net/news)
+	* [r13847] liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h: gridspec should be internal
 
-2014-05-19 03:00  robe
+2015-07-23 18:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* java/jdbc/pom.xml, java/jdbc_jtsparser/pom.xml: fix links and up
-	  version
+	* [r13846] doc/reference_measure.xml: #2577, ST_Project() doc
+	  update
 
-2014-05-14 11:36  robe
+2015-07-23 17:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/installation.xml: put a note for windows users not to quote
-	  drivers
+	* [r13845] spatial_ref_sys.sql: Remove unneeded commit/begin lines
 
-2014-05-14 09:17  strk
+2015-07-23 17:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* HOWTO_RELEASE, doc/Makefile.in, doc/postgis.xml: Automate
-	  postgis_download_url setting in doc/postgis.xml
-	  
-	  Drop manual step from HOWTO_RELEASE (and change list to
-	  unnumbered)
-	  Closes #2735
+	* [r13844] spatial_ref_sys.sql: Add back in more custom postgis
+	  lines
+
+2015-07-23 17:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13843] spatial_ref_sys.sql: Add in custom PostGIS alterations
+
+2015-07-23 16:44  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13842] spatial_ref_sys.sql: #2737, update spatial_ref_sys.sql
+	  to latest from GDAL/EPSG
+
+2015-07-23 16:26  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13840] doc/reference_measure.xml: #3201 ST_DistanceSphere uses
+	  SRID to obtain spheroid
+
+2015-07-22 19:00  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13836] configure.ac, regress/Makefile.in: #3213, make interrupt
+	  tests opt-out
+
+2015-07-22 17:57  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13835] liblwgeom/lwgeom.c: #3212, subdivide nparts not used
+
+2015-07-22 17:54  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13834] postgis/lwgeom_in_kml.c, regress/in_kml.sql,
+	  regress/in_kml_expected: #2395, force un-closed KML polygons
+	  closed, and issue NOTICE
+
+2015-07-22 17:05  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13833] liblwgeom/lwgeom_debug.c, regress/tickets.sql,
+	  regress/tickets_expected: #2409, ST_Summary support for curve
+	  geometries
+
+2015-07-22 16:14  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13832] loader/shp2pgsql-core.c: #2562, ANALYZE tables after
+	  shp2pgsql load
+
+2015-07-22 16:06  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13831] postgis/geography.sql.in: #2896, increase cost of
+	  _st_expand(geography) a bit
+
+2015-07-22 16:03  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13830] liblwgeom/lwline.c, regress/tickets.sql,
+	  regress/tickets_expected: #3172, ST_AddMeasure refuses to set
+	  measure of zero-length line
+
+2015-07-22 15:29  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13829] postgis/lwgeom_functions_basic.c, regress/tickets.sql,
+	  regress/tickets_expected: #2692, Curve output support in
+	  ST_Collect
+
+2015-07-22 14:54  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13827] postgis/geography.sql.in, postgis/lwgeom_ogc.c: #2641,
+	  ST_SRID and ST_SetSRID for geography
+
+2015-07-22 13:55  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13826] postgis/geography_measurement.c: #3202,
+	  ST_DistanceSphere allows operations on mixed SRIDs
+
+2015-07-22 13:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2014-05-14 08:41  strk
+	* [r13825] postgis/lwgeom_backend_api.c, postgis/lwgeom_spheroid.c:
+	  harmonize SRID mismatch testing
 
-	* HOWTO_RELEASE: Development version suffix is "dev", not "SVN"
+2015-07-22 13:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2014-05-14 08:37  strk
+	* [r13824] postgis/lwgeom_btree.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c: Harmonize SRID mismatch handling to use
+	  same function
+
+2015-07-22 12:37  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13823] liblwgeom/lwprint.c: Quiet warning about dynamic array
+	  (const doesn't do what you think it does in this context)
+
+2015-07-22 12:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* HOWTO_RELEASE: Update HOWTO_RELEASE document
+	* [r13822] loader/shpopen.c: Quiet warnings: unsigned ints can't be
+	  negative
+
+2015-07-21 16:37  Sandro Santilli <strk at keybit.net>
+
+	* [r13821] README.postgis, configure.ac: Update minimum required
+	  PostgreSQL version in README and configure
 	  
-	  See #2736
+	  See #3211
 
-2014-05-14 08:31  strk
+2015-07-20 17:08  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, Version.config, extensions/upgradeable_versions.mk: Prepare
-	  for 2.1.4
+	* [r13818] topology/test/regress/addtopogeometrycolumn.sql,
+	  topology/test/regress/addtopogeometrycolumn_expected,
+	  topology/test/regress/createtopology.sql,
+	  topology/test/regress/createtopology_expected,
+	  topology/test/regress/droptopology.sql,
+	  topology/test/regress/droptopology_expected,
+	  topology/topology.sql.in: Handle invalid topology names (#3196)
+	  
+	  Updates regressions for changes.
+	  
+	  Patch by Mike Toews <mwtoews at gmail.com>
 
-2014-05-13 16:56  strk
+2015-07-20 16:55  Sandro Santilli <strk at keybit.net>
 
-	* ChangeLog, HOWTO_RELEASE, NEWS, README.postgis,
-	  doc/release_notes.xml: Release date and notes for 2.1.3,
-	  ChangeLog update
+	* [r13817] liblwgeom/lwgeom_topo.c, topology/postgis_topology.c: Do
+	  not redefine POSTGIS_DEBUG_LEVEL (that's for debugging)
 
-2014-05-13 15:09  dustymugs
+2015-07-20 16:34  Sandro Santilli <strk at keybit.net>
 
-	* raster/test/cunit/cu_misc.c: disable one cunit test
+	* [r13816] liblwgeom/lwgeom_topo.c, topology/postgis_topology.c:
+	  Indenting only change (and a space in a printf format string)
 
-2014-05-13 15:07  dustymugs
+2015-07-20 16:13  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rt_pg.c: fix enable_all message
+	* [r13815] liblwgeom/liblwgeom_topo.h: Remove TopoGeometry
+	  management API from liblwgeom_topo
 
-2014-05-13 15:05  dustymugs
+2015-07-20 15:51  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rt_pg.c: tweaked messages
+	* [r13814] liblwgeom/liblwgeom_topo.h, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c, topology/sql/sqlmm.sql.in: Implement
+	  ST_AddEdgeNewFaces in C
+	  
+	  Adds BE callback to delete faces by id
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-05-13 12:44  strk
+2015-07-20 13:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* postgis_config.h.in: Fix header guard
+	* [r13813] liblwgeom/lwgeom.c: More subdivide recursion depth for
+	  really big input polygons (OSM)
 
-2014-05-13 09:25  strk
+2015-07-19 10:11  Sandro Santilli <strk at keybit.net>
 
-	* postgis_config.h.in: Header-guard postgis_config.h
+	* [r13812] NEWS, doc/introduction.xml: Add item about new topology
+	  API in liblwgeom
+	  
+	  Also update reference to Regione Toscana institution under
+	  "corporate sponsors" section.
 
-2014-05-12 21:43  robe
+2015-07-18 23:27  Regina Obe <lr at pcorp.us>
 
-	* postgis/gserialized_estimate.c: #2732 gserialized_estimate
-	  crashes under mingw64 windows when compiled with --enabled-debug
+	* [r13811] java: delete java SVN folder (now managed on github)
 
-2014-05-12 15:21  dustymugs
+2015-07-18 16:17  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rt_pg.c: add warning when user input does not match
-	  GDAL driver name
+	* [r13810] liblwgeom/liblwgeom_topo.h, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c: Use standard int64_t type and PRId64
+	  format for 64bit identifiers
+	  
+	  Hopefully helps with #3206
 
-2014-05-11 17:51  dustymugs
+2015-07-18 10:04  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rt_pg.c: code rearrange
+	* [r13809] NEWS: Leave a note about new Java binding home
 
-2014-05-11 16:28  dustymugs
+2015-07-17 16:41  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rt_pg.c: additional debug
+	* [r13808] liblwgeom/Makefile.in, liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/liblwgeom_topo_internal.h, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c, topology/sql/sqlmm.sql.in: Implement
+	  ST_AddEdgeModFace in C
+	  
+	  Add callbacks to:
+	  - get nodes and edges within box2d,
+	  edges by node or face, nodes by face.
+	  - insert faces.
+	  - update nodes, faces and edges.
+	  - update TopoGeometries after face split.
+	  - get edges in a ring
+	  
+	  Also fixes installation and de-installation of liblwgeom_topo.h
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-05-09 14:29  dustymugs
+2015-07-16 23:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* raster/rt_pg/rt_pg.c: more debug
+	* [r13807] liblwgeom/cunit/cu_misc.c: Remove runcall of missing
+	  test
 
-2014-05-09 14:16  dustymugs
+2015-07-16 23:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* raster/rt_pg/rt_pg.c: empty string instead of NULL. more debug
-	  output
+	* [r13806] postgis/lwgeom_geos.c: Remove call to internal function
 
-2014-05-09 05:53  robe
+2015-07-16 23:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* loader/pgsql2shp-core.c: #2727 Can't compile with --enable-debug
-	  anymore get error in pgsql2shp (revise patch backport changes
-	  from 2.2)
+	* [r13805] liblwgeom/cunit/cu_misc.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom.c: Remove unused
+	  function from old subdivide routine
 
-2014-05-09 03:32  robe
+2015-07-16 23:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* loader/pgsql2shp-core.c: #2727 Can't compile with --enable-debug
-	  anymore get error in pgsql2shp
+	* [r13804] liblwgeom/cunit/cu_geos.c, liblwgeom/lwgeom.c,
+	  regress/subdivide_expected: #3200, Make ST_Subdivide faster
 
-2014-05-06 13:59  dustymugs
+2015-07-14 16:14  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* raster/rt_pg/rt_pg.c: set first byte to null
+	* [r13803] liblwgeom/measures3d.c, regress/measures_expected: Fix
+	  wrong behavior for closest point with unknown z-value in geometry
+	  1 from last commit
 
-2014-05-06 13:16  dustymugs
+2015-07-14 15:54  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* raster/rt_pg/rt_pg.c: snprintf instead of sprintf
+	* [r13802] liblwgeom/liblwgeom.h.in, liblwgeom/measures.c,
+	  liblwgeom/measures.h, liblwgeom/measures3d.c,
+	  liblwgeom/measures3d.h, regress/measures.sql,
+	  regress/measures_expected: Fix handling of mixed dimmentionality
+	  to 3d measuring functions #2034
 
-2014-05-06 13:16  dustymugs
+2015-07-13 21:32  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* raster/rt_pg/rt_pg.c: use strncat instead of sprintf
+	* [r13801] liblwgeom/lwout_twkb.c, regress/twkb.sql,
+	  regress/twkb_expected: Fix bbox on collection level in TWKB
+	  output, #3187
 
-2014-05-06 11:29  robe
+2015-07-10 20:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/installation.xml: add in server environment
+	* [r13799] postgis/lwgeom_inout.c: Clean up missing prototype
 
-2014-05-06 11:28  robe
+2015-07-09 10:16  Sandro Santilli <strk at keybit.net>
 
-	* doc/installation.xml: correct some erroneous statements
+	* [r13796] doc/extras_topology.xml: Tag <para> can be within
+	  <note>, not viceversa (oops)
 
-2014-05-06 10:39  robe
+2015-07-09 09:49  Sandro Santilli <strk at keybit.net>
 
-	* doc/installation.xml: let's try this again
+	* [r13791] doc/extras_topology.xml: Clarify ST_AddEdgeModFace docs
+	  about new face side (#3198)
 
-2014-05-06 10:28  robe
+2015-07-07 21:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/installation.xml: fix dangling tag
+	* [r13788] liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_box.c,
+	  liblwgeom/liblwgeom.h.in, postgis/lwgeom_geos.c: From dbaston
+	  <https://github.com/postgis/postgis/pull/40> resolves outstanding
+	  TODO list item
 
-2014-05-06 10:15  robe
+2015-07-07 20:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/installation.xml: escape xml chars
+	* [r13787] liblwgeom/cunit/cu_libgeom.c: Test fix from dbaston
 
-2014-05-06 09:16  robe
+2015-07-07 18:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/installation.xml: note about restart
+	* [r13786] liblwgeom/lwin_geojson.c: Formatting
 
-2014-05-06 09:15  robe
+2015-07-07 15:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/installation.xml: add more instruction for windows, ubuntu,
-	  debian users on setting environment variables.
+	* [r13784] liblwgeom/Makefile.in: #3193, install header w/ non-exec
+	  bits
 
-2014-05-06 07:43  robe
+2015-07-04 08:50  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* doc/installation.xml: slight revisions to example
+	* [r13778] liblwgeom/lwgeom_sfcgal.c: ST_Intersects sfcgal
+	  implementation gives error with polyhedral surface. #3072. Apply
+	  patch written by Vincent Mora.
 
-2014-05-06 07:41  robe
+2015-07-04 05:50  Regina Obe <lr at pcorp.us>
 
-	* doc/installation.xml: first stab at describing the new raster
-	  environment variables
+	* [r13777] doc/reference_sfcgal.xml: #3116: SFCGAL add
+	  documentation for geometry backend switch. Patch from Vincent
+	  Mora
 
-2014-05-05 08:12  strk
+2015-07-02 15:14  Sandro Santilli <strk at keybit.net>
 
-	* configure.ac: Offline rasters are always supported
+	* [r13775] liblwgeom/lwlinearreferencing.c: Fix warning in
+	  non-debug build
 
-2014-05-04 17:15  dustymugs
+2015-07-02 15:03  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_core/rt_api.h: forgotten function declaration
+	* [r13774] liblwgeom/lwgeom_debug.c,
+	  liblwgeom/lwlinearreferencing.c: Fix debug build
 
-2014-05-04 15:52  dustymugs
+2015-07-01 17:19  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* NEWS, configure.ac, raster/raster_config.h.in,
-	  raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
-	  raster/rt_pg/rt_pg.c, raster/test/cunit/cu_misc.c,
-	  raster/test/regress/Makefile.in,
-	  raster/test/regress/permitted_gdal_drivers.sql,
-	  raster/test/regress/permitted_gdal_drivers_expected,
-	  raster/test/regress/rt_addband.sql,
-	  raster/test/regress/rt_addband_expected,
-	  raster/test/regress/rt_bytea.sql,
-	  raster/test/regress/rt_utility.sql,
-	  raster/test/regress/rt_utility_expected: add environment
-	  variables POSTGIS_ENABLE_OUTDB_RASTERS and
-	  POSTGIS_GDAL_ENABLED_DRIVERS
+	* [r13773] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwin_twkb.c, liblwgeom/lwin_twkb.h,
+	  liblwgeom/lwout_twkb.c, liblwgeom/lwout_twkb.h,
+	  liblwgeom/twkb_tools.c, postgis/lwgeom_inout.c,
+	  postgis/postgis.sql.in: revert r13771 and r13753 see #3188
 
-2014-04-25 20:44  bergun
+2015-06-30 22:43  Sandro Santilli <strk at keybit.net>
 
-	* java/jdbc, java/jdbc/README, java/jdbc/jtssrc, java/jdbc/pom.xml,
-	  java/jdbc/src/org/postgis/overview.html, java/jdbc_jtsparser,
-	  java/jdbc_jtsparser/README, java/jdbc_jtsparser/pom.xml,
-	  java/jdbc_jtsparser/src, java/jdbc_jtsparser/src/main,
-	  java/jdbc_jtsparser/src/main/java,
-	  java/jdbc_jtsparser/src/main/java/examples,
-	  java/jdbc_jtsparser/src/main/java/examples/JtsTestParser.java,
-	  java/jdbc_jtsparser/src/main/java/org,
-	  java/jdbc_jtsparser/src/main/java/org/postgis,
-	  java/jdbc_jtsparser/src/main/java/org/postgis/jts,
-	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JTSShape.java,
-	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryParser.java,
-	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryWriter.java,
-	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGeometry.java,
-	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGisWrapper.java,
-	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsWrapper.java,
-	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/overview.html:
-	  #2718 updating branches2.1 as in trunk in order to be compatible
-	  for manual submission of artifacts to OSSRH
+	* [r13772] liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h: Export ptarray_isccw to public
+	  liblwgeom header
 
-2014-04-23 16:23  dustymugs
+2015-06-30 22:30  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* raster/test/regress/permitted_gdal_drivers.sql,
-	  raster/test/regress/permitted_gdal_drivers_expected: check that
-	  srid exists in spatial_ref_sys. ticket #2715
+	* [r13771] liblwgeom/lwin_twkb.c, liblwgeom/lwin_twkb.h,
+	  liblwgeom/twkb_tools.c: Fix handling of different ingoing
+	  precision in collectTWKB and more
 
-2014-04-14 23:10  robe
+2015-06-30 22:27  Sandro Santilli <strk at keybit.net>
 
-	* doc/installation.xml: #2343 missing --with-sfcgal in docs
+	* [r13770] liblwgeom/liblwgeom.h.in, liblwgeom/ptarray.c: Move
+	  function documentation from implementation file to header file
 
-2014-04-12 16:21  dustymugs
+2015-06-30 20:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* raster/rt_pg/rt_pg.c: add RPFTOC, HTTP and PCIDSK to skipped gdal
-	  drivers list
+	* [r13769] liblwgeom/cunit/cu_unionfind.c: CUnit test case fix from
+	  dbaston
 
-2014-04-11 09:34  strk
+2015-06-30 18:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS: Advertise --disable-offline-raster in NEWS
+	* [r13768] postgis/lwgeom_export.c, postgis/postgis.sql.in,
+	  regress/out_geometry_expected: AsGeoJSON, Make the C binding the
+	  frequently used signature,
+	  start pushing the "versioned" one into background
 
-2014-04-11 09:19  strk
+2015-06-30 18:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* configure.ac, raster/raster_config.h.in, raster/rt_core/rt_api.c:
-	  Add support for disabling offline raster storage at compile time
-	  
-	  Adds --disable-offline-raster configure switch
+	* [r13767] liblwgeom/lwin_geojson.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_in_geojson.c, regress/in_geojson.sql,
+	  regress/in_geojson_expected: #2683, improve geojson srs handling
+	  (input)
 
-2014-04-11 09:03  strk
+2015-06-30 17:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, raster/rt_pg/rt_pg.c: Also disable PDF GDAL driver by
-	  default
+	* [r13765] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_geos_cluster.c,
+	  liblwgeom/cunit/cu_unionfind.c, liblwgeom/lwout_twkb.h,
+	  postgis/lwgeom_inout.c: #2669, cunit warnings
 
-2014-04-11 04:29  robe
+2015-06-30 16:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/installation.xml: #2711: topology script locations are wrong
+	* [r13764] liblwgeom/lwgeom_geos.c, postgis/lwgeom_geos.c,
+	  regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-multicurve.sql,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multisurface.sql,
+	  regress/sql-mm-multisurface_expected: Stroke curves for input
+	  into GEOS,
+	  Update SQL-MM curve regression tests
 
-2014-04-11 00:03  dustymugs
+2015-06-30 15:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* raster/rt_core/rt_api.c: fix one forgotten use of
-	  GDALRegister_MEM()
+	* [r13763] liblwgeom/liblwgeom.h.in, liblwgeom/lwstroke.c: Add
+	  const restriction to stroke/unstroke
 
-2014-04-10 22:19  dustymugs
+2015-06-30 15:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
-	  raster/rt_pg/rt_pg.c, raster/test/cunit/cu_gdal.c,
-	  raster/test/regress/Makefile.in,
-	  raster/test/regress/permitted_gdal_drivers.sql,
-	  raster/test/regress/permitted_gdal_drivers_expected: by default,
-	  prevent PostGIS raster from using GDAL drivers that can easily be
-	  abused (VRT, MEM, WCS, WMS)
+	* [r13762] ChangeLog, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/cu_ptarray.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwcompound.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwstroke.c,
+	  postgis/lwgeom_sqlmm.c: Rename _segmentize to _stroke to
+	  distinguish arc stroking routines from line densification
+	  routines
 
-2014-04-09 04:23  robe
+2015-06-30 14:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* regress/Makefile.in: #2701 backport strk change to make garden
-	  skip over createlang notice and also get rid of postgis_garden
-	  artifact on make clean. Also fixed link on script
+	* [r13761] liblwgeom/lwcircstring.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic_tree.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_geos.c: format to style
+	  guide
 
-2014-04-07 14:55  pramsey
+2015-06-30 14:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS: Fix ticket #
+	* [r13760] postgis/geography_inout.c: #2640, ST_GeogFromText allows
+	  putting in non-long lat coordinate ref
 
-2014-04-07 14:46  pramsey
+2015-06-30 13:48  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/lwgeom_dumppoints.c, regress/dumppoints.sql: #2704,
-	  ST_DumpPoints of EMPTY geometries crashes server
+	* [r13759] astyle.sh: Fix astyle availability detection
 
-2014-04-05 04:01  robe
+2015-06-30 13:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/release_notes.xml: cut in missing 2.0 branch notes
+	* [r13758] liblwgeom/lwlinearreferencing.c: reformat to style guide
 
-2014-04-04 11:43  strk
+2015-06-30 13:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, loader/pgsql2shp-core.c, regress/dumper,
-	  regress/dumper/null3d.dmp, regress/dumper/null3d_expected.dbf,
-	  regress/dumper/null3d_expected.shp,
-	  regress/dumper/null3d_expected.shx, regress/run_test.pl: Fix type
-	  detection in tables with null geometries (#2700)
-	  
-	  Includes testcase
+	* [r13757] liblwgeom/cunit/cu_measures.c: reformat to style guide
 
-2014-04-04 06:16  robe
+2015-06-30 13:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/xsl/postgis_gardentest.sql.xsl: #2698 put in converter for
-	  geomjson and fix tests to catch geomkml
+	* [r13756] liblwgeom/cunit/cu_in_geojson.c: reformat code to
+	  styleguide
 
-2014-04-04 03:22  robe
+2015-06-30 12:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/reference_accessor.xml: #2696: correct the doco that
-	  ST_NumInteriorRings no longer works with multipolygons since
-	  polys, also get rid of synonym description. People can just look
-	  back at main function name.
+	* [r13755] postgis/gserialized_estimate.c: #2342, demote join type
+	  message to debug
 
-2014-04-03 21:53  pramsey
+2015-06-30 11:27  Regina Obe <lr at pcorp.us>
 
-	* NEWS, liblwgeom/lwin_geojson.c, regress/in_geojson.sql,
-	  regress/in_geojson_expected: #2697, ST_GeomFromGeoJSON() of
-	  invalid GeoJSON Polygons crashes server process
+	* [r13754] configure.ac, doc/installation.xml,
+	  doc/reference_processing.xml: #3189 put note about 3.5 is needed
+	  to take advantage of all features. Copy geos note in availabilty
+	  tag so appears on support
 
-2014-03-31 04:20  robe
+2015-06-29 22:57  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* extensions/upgradeable_versions.mk: add 2.0.5 to upgradeable list
+	* [r13753] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwout_twkb.c, liblwgeom/lwout_twkb.h,
+	  liblwgeom/twkb_tools.c, postgis/lwgeom_inout.c,
+	  postgis/postgis.sql.in: Adding ST_CollectTWKB
 
-2014-03-29 05:43  pramsey
+2015-06-29 19:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* HOWTO_RELEASE: format text
+	* [r13752] NEWS, doc/reference_processing.xml,
+	  liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_geos_cluster.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_unionfind.c, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwgeom_geos.h, liblwgeom/lwgeom_geos_cluster.c,
+	  liblwgeom/lwunionfind.c, liblwgeom/lwunionfind.h,
+	  postgis/lwgeom_accum.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos.h, postgis/postgis.sql.in,
+	  regress/Makefile.in, regress/cluster.sql,
+	  regress/cluster_expected: #3023, ST_ClusterIntersecting /
+	  ST_ClusterWithin Functions (Dan Baston)
 
-2014-03-29 05:42  pramsey
+2015-06-29 18:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* extensions/upgradeable_versions.mk: Update for next release
+	* [r13751] liblwgeom/lwgeom_topo.c: Quiet pedantic error
 
-2014-03-29 05:37  pramsey
+2015-06-29 18:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, Version.config: Update branch to new version numbers
+	* [r13750] .gitignore, extensions/address_standardizer: Ignore a
+	  geocoding artifact
 
-2014-03-29 05:31  pramsey
+2015-06-29 17:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* HOWTO_RELEASE, README.postgis,
-	  extensions/postgis/sql_bits/postgis--unpackaged.sql.in,
-	  extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in,
-	  extensions/postgis_topology/sql_bits/topology--unpackaged.sql.in:
-	  Prepare for 2.1.2 release
+	* [r13749] liblwgeom/lwlinearreferencing.c: Remove memory leak
 
-2014-03-29 05:21  pramsey
+2015-06-29 17:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ChangeLog: Prepare for 2.1.2
+	* [r13748] liblwgeom/lwin_wkt_lex.c: Remove comment
 
-2014-03-28 22:10  strk
+2015-06-29 17:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* regress/run_test.pl: Fix extension upgrade call for topology in
-	  run_test.pl
+	* [r13747] liblwgeom/lwin_wkt.h, liblwgeom/lwin_wkt_lex.c,
+	  liblwgeom/lwin_wkt_lex.l, liblwgeom/lwin_wkt_parse.c,
+	  liblwgeom/lwin_wkt_parse.h, liblwgeom/lwin_wkt_parse.y: Fix
+	  longstanding parser memory leak
 
-2014-03-28 20:11  strk
+2015-06-29 17:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* regress/legacy.sql: Also find uninstall_legacy.sql in :scriptdir,
-	  use \cd for 9.1 support
+	* [r13746] liblwgeom/lwpoly.c: Remove memory leak
 
-2014-03-28 19:56  robe
+2015-06-29 17:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, doc/release_notes.xml: #2690 copy news to doc release
-	  notes. Be optimistic we'll release 3/31/2014
+	* [r13745] liblwgeom/cunit/cu_ptarray.c: Remove memory leak
 
-2014-03-28 19:21  strk
+2015-06-29 16:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* topology/test/regress/st_createtopogeo.sql: More spatial_ref_sys
-	  truncation during test
+	* [r13744] liblwgeom/cunit/cu_misc.c: Remove memory leak
 
-2014-03-28 19:04  strk
+2015-06-29 16:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* regress/legacy.sql: Have regress/legacy.sql truncate
-	  spatial_ref_sys
+	* [r13743] liblwgeom/cunit/cu_algorithm.c: Remove memory leak
+
+2015-06-29 16:56  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13742] liblwgeom/cunit/cu_misc.c: Remove initialized jump
+	  valgrind notice
+
+2015-06-29 16:48  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13741] liblwgeom/lwin_wkb.c: Remove mem leak from POINT EMPTY
+	  creation
 
-2014-03-28 19:04  strk
+2015-06-29 15:28  Sandro Santilli <strk at keybit.net>
 
-	* regress/legacy.sql, regress/run_test.pl: Allow using :scriptdir
-	  variable in regress tests
+	* [r13740] NEWS, liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_geos.c,
+	  postgis/lwgeom_geos.c: Add lwgeom_is_simple method in liblwgeom,
+	  use from postgis module
+
+2015-06-29 14:33  Sandro Santilli <strk at keybit.net>
+
+	* [r13739] liblwgeom/liblwgeom_topo.h: Improve documentation
+
+2015-06-29 14:07  Sandro Santilli <strk at keybit.net>
+
+	* [r13738] liblwgeom/liblwgeom_topo.h,
+	  liblwgeom/liblwgeom_topo_internal.h, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c, topology/sql/sqlmm.sql.in: Implement
+	  ST_NewEdgesSplit in C
 	  
-	  Have legacy.sql use it to find legacy.sql.
-	  The run_test.pl script sets it using pg_config when --extensions
-	  switch is given.
+	  Involved adding a new "deleteEdges" callback.
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-03-28 13:04  pramsey
+2015-06-29 11:51  Sandro Santilli <strk at keybit.net>
 
-	* regress/loader/ReprojectPts-pre.sql, regress/regress_ogc.sql,
-	  regress/regress_proj.sql: #2687, pass tests when raster/vector
-	  are co-loaded
+	* [r13737] liblwgeom/lwgeom_topo.c: Split edge splitting function
+	  to get a reusable portion
 
-2014-03-28 12:53  strk
+2015-06-29 09:09  Sandro Santilli <strk at keybit.net>
 
-	* extensions/postgis/Makefile.in: Extension "next" is patch-level
-	  away (#2684)
+	* [r13736] liblwgeom/lwgeom_topo.c: Style only change
 
-2014-03-28 12:34  pramsey
+2015-06-29 07:49  Sandro Santilli <strk at keybit.net>
 
-	* extensions/postgis/Makefile.in,
-	  extensions/upgradeable_versions.mk: #2684, upgrade extensions at
-	  the patch level
+	* [r13735] liblwgeom/liblwgeom_topo.h, liblwgeom/lwgeom_topo.c,
+	  topology/postgis_topology.c, topology/sql/sqlmm.sql.in: Implement
+	  ST_AddIsoNode in C
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-03-26 15:04  pramsey
+2015-06-29 07:02  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwgeodetic_tree.c: CircNode compare function needs to
-	  deference inputs
+	* [r13734] topology/postgis_topology.c: Do not rely on out param
+	  value in getNodeWithinDistance2D callback
 
-2014-03-26 10:20  colivier
+2015-06-29 07:01  Sandro Santilli <strk at keybit.net>
 
-	* postgis/lwgeom_in_gml.c, regress/in_gml.sql,
-	  regress/in_gml_expected: #2681 fix for 2.1 branch
+	* [r13733] liblwgeom/lwgeom_topo.c: Handle error from
+	  WithinDistance2D liblwgeom-topo backend callbacks
 
-2014-03-26 10:06  pramsey
+2015-06-28 21:49  Regina Obe <lr at pcorp.us>
 
-	* NEWS: Add #2619
+	* [r13732] liblwgeom/Makefile.in: #3170 Ability to link liblwgeom
+	  dynamically under windows (mingw-w64)
 
-2014-03-26 09:37  pramsey
+2015-06-28 16:56  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* liblwgeom/lwgeodetic.c, liblwgeom/lwin_geojson.c: Quiet a pair of
-	  llvm warnings
+	* [r13731] postgis/lwgeom_inout.c: Prevent mixed dimensionality in
+	  twkb #3186
 
-2014-03-26 09:22  pramsey
+2015-06-28 16:10  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* configure.ac, liblwgeom/lwin_geojson.c, regress/in_geojson.sql,
-	  regress/in_geojson_expected: #2619, SIGSEGV in ST_GeomFromGeoJSON
-	  with empty list of coordinates
+	* [r13730] postgis/lwgeom_inout.c: return null if no valid
+	  geoemtries is found #3185
 
-2014-03-25 20:02  bergun
+2015-06-27 22:51  Regina Obe <lr at pcorp.us>
 
-	* java/jdbc/jtssrc/pom.xml, java/jdbc/pom.xml: #2625 updating
-	  pom.xml for 2.1.2 release
+	* [r13729] doc/extras_address_standardizer.xml: another typo
 
-2014-03-25 13:35  strk
+2015-06-27 22:49  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_pg/Makefile.in: rtpostgis_upgrade_21_minor.sql is _not_
-	  same as 20_21
-	  
-	  Should fix make check w/out re-breaking #2674
+	* [r13728] doc/extras_address_standardizer.xml: ah another typo
 
-2014-03-25 12:31  pramsey
+2015-06-27 22:48  Regina Obe <lr at pcorp.us>
 
-	* NEWS: Update with latest changes
+	* [r13727] doc/xsl/postgis_aggs_mm.xml.xsl: fix embarassing typo
 
-2014-03-25 12:26  pramsey
+2015-06-27 19:21  Regina Obe <lr at pcorp.us>
 
-	* configure.ac: #2539, Check for json-c/json.h presence/usability
-	  before json/json.h
+	* [r13726] NEWS, doc/extras_address_standardizer.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: document enhancements in
+	  address_standardizer
 
-2014-03-25 08:34  pramsey
+2015-06-27 16:54  Regina Obe <lr at pcorp.us>
 
-	* liblwgeom/cunit/cu_tree.c: Remove noise from test
+	* [r13725] extensions/address_standardizer/Makefile.in: #3183 baby
+	  step - ability to do: ALTER EXTENSION
+	  address_standardizer_data_us UPDATE TO "2.2.0devnext"; ALTER
+	  EXTENSION address_standardizer_data_us UPDATE TO "2.2.0dev";
 
-2014-03-25 08:17  pramsey
+2015-06-27 16:04  Regina Obe <lr at pcorp.us>
 
-	* liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic.c,
-	  liblwgeom/lwgeodetic.h, liblwgeom/lwgeodetic_tree.c,
-	  liblwgeom/lwgeodetic_tree.h,
-	  postgis/geography_measurement_trees.c: #2675, bad handling of
-	  multi-geometries in geography tree distance
+	* [r13724] doc/extras_address_standardizer.xml: #2816 show output
+	  of address_standardizer_data_us
 
-2014-03-24 17:49  strk
+2015-06-27 15:55  Regina Obe <lr at pcorp.us>
 
-	* NEWS, utils/postgis_proc_upgrade.pl: Fix missing operator = and
-	  hash_raster_ops opclass on raster
-	  
-	  Closes #2674
+	* [r13723] extensions/address_standardizer/us_lex.sql: fix encoding
+	  of us_lex.sql so consistent with others messing up installation
+	  of extension
 
-2014-03-22 05:29  robe
+2015-06-27 15:24  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_core/rt_api.h: #2620 allow kFreeBSD to be treated as
-	  FreeBSD
+	* [r13720] extensions/address_standardizer/Makefile.in: #2816: one
+	  more try had Data_built and Data confused
 
-2014-03-22 04:29  robe
+2015-06-27 14:50  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_pg/rtpostgis.sql.in: #2674 missed the operator class
-	  hash_raster_ops in last commit
+	* [r13719] doc/extras_address_standardizer.xml,
+	  extensions/address_standardizer/Makefile.in: #2816: Might have
+	  missed some commits on last go round, also add some updated doco
 
-2014-03-22 04:28  robe
+2015-06-27 13:43  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_pg/rtpostgis.sql.in: #2674 raster missing availability
-	  info for some operators and functions used in equality operator
+	* [r13718] configure.ac,
+	  extensions/address_standardizer/Makefile.in,
+	  extensions/address_standardizer/address_standardizer_data_us.control.in,
+	  extensions/address_standardizer/gazeteer.csv,
+	  extensions/address_standardizer/lexicon.csv,
+	  extensions/address_standardizer/pagc-data-psql,
+	  extensions/address_standardizer/rules.txt: #2816: Rest of logic
+	  needed to build data us extension and install and remove old
+	  logic used to build old sql files
 
-2014-03-18 16:36  strk
+2015-06-27 08:24  Regina Obe <lr at pcorp.us>
 
-	* .travis.yml: Fix travis build by only installing postgresql 9.1
-	  (#2678)
+	* [r13717] extensions/address_standardizer/us_gaz.sql,
+	  extensions/address_standardizer/us_lex.sql,
+	  extensions/address_standardizer/us_rules.sql: #2816: Tables for
+	  address_standardizer us data extension, still need to commit
+	  logic to include as part of extension and get rid of code that
+	  creates the interim files.
 
-2014-03-13 21:11  robe
+2015-06-26 14:20  Sandro Santilli <strk at keybit.net>
 
-	* doc/Makefile.in: #2609 topogeo_AddPolygon unnecessary use of
-	  DISTINCT
+	* [r13716] topology/postgis_topology.c: Don't try to free
+	  unexistent arguments
 
-2014-03-10 18:46  robe
+2015-06-26 11:39  Sandro Santilli <strk at keybit.net>
 
-	* topology/sql/populate.sql.in: #2609 topogeo_AddPolygon
-	  unnecessary use of DISTINCT
+	* [r13715] topology/postgis_topology.c: Expect nextval() to return
+	  a 64bit integer (#3180)
 
-2014-03-09 23:16  robe
+2015-06-26 09:06  Regina Obe <lr at pcorp.us>
 
-	* doc/using_postgis_dataman.xml: #2558: WKT form(s) of MULTIPOINT
-	  documentation make OGC compliant
+	* [r13714] configure.ac, doc/installation.xml: #3182 update docs
+	  and configure to reflect SFCGAL 1.1+ is required to build with
+	  SFCGAL (patch from Vincent Mora)
 
-2014-03-09 18:55  strk
+2015-06-25 21:08  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* NEWS, configure.ac: Error out at configure time if no SQL
-	  preprocessor can be found
-	  
-	  Closes #2666
+	* [r13713] NEWS: Update NEWS file, related to #3117
 
-2014-03-08 00:51  pramsey
+2015-06-25 20:58  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* NEWS, liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c:
-	  #2534, st_distance is returning incorrect results for large
-	  geographies
+	* [r13712] doc/reference_sfcgal.xml: Documentation fix in
+	  ST_Orientation function. #2831
 
-2014-03-08 00:43  pramsey
+2015-06-25 20:55  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic_tree.c: #2636,
-	  Regress ST_Distance_Sphere between 2.1.2dev and 2.0.4 with 2D
+	* [r13711] doc/reference_sfcgal.xml: Update SFCGAL installation
+	  instructions. #3115.
 
-2014-03-07 23:58  pramsey
+2015-06-25 20:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, liblwgeom/lwgeodetic.c: #2634, regression in sphere
-	  distance code
+	* [r13710] regress/sfcgal/tickets_expected: #3181, fix regression
+	  result in sfcgal
 
-2014-03-07 23:20  pramsey
+2015-06-25 20:44  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* NEWS, liblwgeom/lwin_geojson.c: #2546, GeoJSON with string
-	  coordinates parses incorrectly
+	* [r13709] doc/reference_sfcgal.xml, postgis/lwgeom_backend_api.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
+	  postgis/lwgeom_sfcgal.c, postgis/lwgeom_sfcgal.h,
+	  postgis/sfcgal.sql.in, regress/sfcgal/concave_hull.sql,
+	  regress/sfcgal/empty.sql, regress/sfcgal/empty_expected,
+	  regress/sfcgal/regress_ogc_expected: Add suport for SFCGAL 1.1.
+	  #3117. Apply patch written by Vincent Mora
 
-2014-03-07 13:27  pramsey
+2015-06-25 20:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS: Update for #2638
+	* [r13708] regress/binary_expected, regress/tickets_expected,
+	  regress/typmod_expected, regress/wkb_expected: #3181, harmonize
+	  tests to new POINT EMPTY format
 
-2014-03-06 05:53  pramsey
+2015-06-25 20:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* liblwgeom/cunit/cu_geodetic.c, liblwgeom/g_box.c: #2638,
-	  geography ST_Intersects bugginess with Polygon/multilinestring M
+	* [r13707] NEWS, liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/lwin_wkb.c, liblwgeom/lwout_wkb.c: #3181, Output POINT
+	  EMPTY in WKB using NaN as coordinate values
 
-2014-03-03 03:01  robe
+2015-06-25 19:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* extensions/postgis/META.json, extensions/postgis/doc/postgis.md,
-	  extensions/postgis/sql_bits/remove_from_extension.sql.in,
-	  extensions/postgis_extension_helper.sql,
-	  extensions/postgis_extension_helper_uninstall.sql,
-	  extensions/postgis_tiger_geocoder/META.json,
-	  extensions/postgis_tiger_geocoder/doc/postgis_tiger_geocoder.md,
-	  extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in,
-	  extensions/postgis_topology/META.json,
-	  extensions/postgis_topology/doc/postgis.md,
-	  extensions/postgis_topology/sql_bits/remove_from_extension.sql.in:
-	  fix website links to go to postgis.net
+	* [r13706] liblwgeom/cunit/cu_libgeom.c: Make test case not overlap
+	  nan empty case
 
-2014-02-25 17:54  pramsey
+2015-06-25 18:36  Regina Obe <lr at pcorp.us>
 
-	* postgis/geography_measurement_trees.c,
-	  postgis/gserialized_estimate.c: Fix variable decls in debugs,
-	  closes #2650
+	* [r13705] extras/tiger_geocoder/geocode/geocode_intersection.sql:
+	  #2734 TIGER geocoder geocode_intersection gives no results with
+	  omitted zipcode
 
-2014-02-24 10:25  strk
+2015-06-25 16:24  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/postgis.sql.in: Let users without topology
-	  privileges call postgis_full_version()
+	* [r13702] liblwgeom/Makefile.in, liblwgeom/README.topo,
+	  liblwgeom/liblwgeom_topo.h, liblwgeom/liblwgeom_topo_internal.h,
+	  liblwgeom/lwgeom_topo.c, topology/Makefile.in,
+	  topology/postgis_topology.c, topology/sql/sqlmm.sql.in: Draft
+	  topology API in liblwgeom and topology postgresql module.
 	  
-	  Closes #2655
+	  Includes C implementation of ST_ModEdgeSplit.
+	  Passes the existing topology testsuite while also affecting
+	  functions addNode and toTopoGeom.
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
 
-2014-02-24 07:08  strk
+2015-06-25 13:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, topology/sql/sqlmm.sql.in: Drop deprecated calls from
-	  topology (#2654)
+	* [r13701] liblwgeom/cunit/cu_out_wkb.c, liblwgeom/lwout_wkb.c,
+	  regress/tickets_expected: #3178, EWKB emitter should emit complex
+	  empty geometry
 
-2014-02-24 06:41  strk
+2015-06-24 22:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, topology/sql/export/TopoJSON.sql.in,
-	  topology/sql/populate.sql.in, topology/sql/sqlmm.sql.in: Fully
-	  qualify calls to topology methods (#2653)
+	* [r13700] liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_serialized.c:
+	  #3177, gserialized_is_empty cannot handle nested empty cases
 
-2014-02-23 16:32  strk
+2015-06-23 18:56  Sandro Santilli <strk at keybit.net>
 
-	* utils/postgis_proc_upgrade.pl: Fix AGG signatures with multi-word
-	  typenames
+	* [r13694] NEWS, doc/reference_temporal.xml,
+	  postgis/lwgeom_functions_temporal.c, postgis/postgis.sql.in,
+	  regress/temporal.sql, regress/temporal_expected: Expose
+	  ST_CPAWithin to SQL
 	  
-	  For example... "double precision".
-	  This fixes upgrades involving drop/recreate of aggregates
+	  Includes dox and regress test
 
-2014-02-23 16:32  strk
+2015-06-23 17:32  Sandro Santilli <strk at keybit.net>
 
-	* regress/run_test.pl: Fix --extension --upgrade handling
+	* [r13693] liblwgeom/cunit/cu_measures.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwlinearreferencing.c: Add lwgeom_cpa_within function
+	  
+	  includes unit test
 
-2014-02-23 16:32  strk
+2015-06-23 17:04  Sandro Santilli <strk at keybit.net>
 
-	* regress/tickets.sql: Fix ambiguous query in tickets.sql when
-	  raster support is loaded
+	* [r13692] liblwgeom/cunit/cu_tester.c: Register a notice handler
+	  in cu_tester
 	  
-	  See #2651
+	  Useful for debugging sessions
 
-2014-02-23 16:09  strk
+2015-06-23 14:54  Sandro Santilli <strk at keybit.net>
 
-	* regress/run_test.pl: Add support for --extension --upgrade in
-	  run_test.pl
+	* [r13691] doc/reference_processing.xml,
+	  liblwgeom/lwgeom_geos_split.c: Add multipolygon-by-line ST_Split
+	  case in documentation
+	  
+	  Funded by RT-SITA (CIG 6002233F59)
 
-2014-02-23 15:27  strk
+2015-06-23 14:40  Sandro Santilli <strk at keybit.net>
 
-	* extensions/postgis/Makefile.in: Do not force extension-specific
-	  removal of objects on upgrade
+	* [r13690] raster/rt_pg/Makefile.in, topology/Makefile.in:
+	  Workaround PostgreSQL-9.5dev bug forcing install on check
 	  
-	  It should be taken care of by the upgrade scripts themselves
+	  See
+	  http://www.postgresql.org/message-id/CAB7nPqTsR5o3g-fBi6jbsVdhfPiLFWQ_0cGU5=94Rv_8W3qvFA@mail.gmail.com
+	  This is for topology and raster
+
+2015-06-23 12:41  Sandro Santilli <strk at keybit.net>
+
+	* [r13689] topology/sql/sqlmm.sql.in: Reduce number of queries by
+	  one within ST_ModEdgeSplit
+	  
+	  Uses "INSERT RETURNING" rather than "SELECT" and "INSERT" for
+	  getting the identifier of new node.
 
-2014-02-22 14:57  strk
+2015-06-23 12:40  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/Makefile.in, raster/rt_pg/rtpostgis.sql.in: Generate
-	  raster upgrade script using postgis_proc_upgrade
+	* [r13688] postgis/Makefile.in: Workaround PostgreSQL-9.5dev bug
+	  forcing install on check
+	  
+	  See
+	  http://www.postgresql.org/message-id/CAB7nPqTsR5o3g-fBi6jbsVdhfPiLFWQ_0cGU5=94Rv_8W3qvFA@mail.gmail.com
+
+2015-06-22 14:47  Sandro Santilli <strk at keybit.net>
+
+	* [r13687] configure.ac, doc/Makefile.comments.in,
+	  postgis/Makefile.in, postgis/Makefile.pgxs,
+	  raster/rt_pg/Makefile.in, raster/rt_pg/Makefile.pgxs,
+	  topology/Makefile.in: Drop PGXSOVERRIDE temporary hack.
+	  PostgreSQL 9.0 is minimum req now.
+
+2015-06-22 14:15  Sandro Santilli <strk at keybit.net>
+
+	* [r13686] README.md: Add links to official code repo and project
+	  homepage
+
+2015-06-22 13:49  Sandro Santilli <strk at keybit.net>
+
+	* [r13685] README.md: Remove github advertisement from README.md
+	  
+	  NOTE: it also works fine for use in gitlab
+
+2015-06-19 10:38  Sandro Santilli <strk at keybit.net>
+
+	* [r13683] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h: Add an
+	  lwpgwarning function, for those who worry !
+
+2015-06-18 11:17  Sandro Santilli <strk at keybit.net>
+
+	* [r13681] postgis/sfcgal.sql.in: ST_ApproximateMedialAxis: cast
+	  WKT to geometry on plpgqsl empty
+
+2015-06-17 18:34  Sandro Santilli <strk at keybit.net>
+
+	* [r13680] README.postgis, configure.ac, doc/installation.xml,
+	  java/Makefile, java/ejb2/CHANGES, java/ejb2/COPYING,
+	  java/ejb2/COPYING_LGPL, java/ejb2/README, java/ejb2/build.xml,
+	  java/ejb2/prepare-jboss.xml, java/ejb2/resources/application.xml,
+	  java/ejb2/resources/build.properties,
+	  java/ejb2/resources/jndi/jndi.properties,
+	  java/ejb2/resources/postgis-ejb2-ds.xml,
+	  java/ejb2/src/com/geodetix/geo/client/Client.java,
+	  java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAO.java,
+	  java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAOImpl.java,
+	  java/ejb2/src/com/geodetix/geo/ejb/GeometryBean.java,
+	  java/ejb2/src/com/geodetix/geo/ejb/GeometryFacadeBean.java,
+	  java/ejb2/src/com/geodetix/geo/exception/ApplicationGeoLayerException.java,
+	  java/ejb3/.classpath, java/ejb3/.project,
+	  java/ejb3/.settings/org.eclipse.jdt.core.prefs,
+	  java/ejb3/EJB3Spatial.odt, java/ejb3/README.txt,
+	  java/ejb3/build.xml, java/ejb3/jboss/geodata-ds.xml,
+	  java/ejb3/jboss/ingest-service.xml,
+	  java/ejb3/src/META-INF/persistence.xml,
+	  java/ejb3/src/jndi.properties,
+	  java/ejb3/src/org/postgis/ejb/PersonEntity.java,
+	  java/ejb3/src/org/postgis/ejb/UserBean.java,
+	  java/ejb3/src/org/postgis/ejb/UserBeanRemote.java,
+	  java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java,
+	  java/ejb3/src/org/postgis/hibernate/ContainsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/GeometryType.java,
+	  java/ejb3/src/org/postgis/hibernate/IntersectsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/PostGISDialect.java,
+	  java/ejb3/src/org/postgis/hibernate/WithinExpression.java,
+	  java/jdbc/COPYING_LGPL, java/jdbc/Makefile.in, java/jdbc/README,
+	  java/jdbc/build.xml, java/jdbc/pom.xml.in,
+	  java/jdbc/src/examples/Test.java,
+	  java/jdbc/src/examples/TestAutoregister.java,
+	  java/jdbc/src/examples/TestBoxes.java,
+	  java/jdbc/src/examples/TestJava2d.java,
+	  java/jdbc/src/examples/TestParser.java,
+	  java/jdbc/src/examples/TestServer.java,
+	  java/jdbc/src/examples/VersionPrinter.java,
+	  java/jdbc/src/org/postgis/ComposedGeom.java,
+	  java/jdbc/src/org/postgis/DriverWrapper.java,
+	  java/jdbc/src/org/postgis/DriverWrapperAutoprobe.java,
+	  java/jdbc/src/org/postgis/DriverWrapperLW.java,
+	  java/jdbc/src/org/postgis/Geometry.java,
+	  java/jdbc/src/org/postgis/GeometryCollection.java,
+	  java/jdbc/src/org/postgis/LineString.java,
+	  java/jdbc/src/org/postgis/LinearRing.java,
+	  java/jdbc/src/org/postgis/MultiLineString.java,
+	  java/jdbc/src/org/postgis/MultiPoint.java,
+	  java/jdbc/src/org/postgis/MultiPolygon.java,
+	  java/jdbc/src/org/postgis/PGbox2d.java,
+	  java/jdbc/src/org/postgis/PGbox3d.java,
+	  java/jdbc/src/org/postgis/PGboxbase.java,
+	  java/jdbc/src/org/postgis/PGgeometry.java,
+	  java/jdbc/src/org/postgis/PGgeometryLW.java,
+	  java/jdbc/src/org/postgis/Point.java,
+	  java/jdbc/src/org/postgis/PointComposedGeom.java,
+	  java/jdbc/src/org/postgis/Polygon.java,
+	  java/jdbc/src/org/postgis/Version.java,
+	  java/jdbc/src/org/postgis/binary/BinaryParser.java,
+	  java/jdbc/src/org/postgis/binary/BinaryWriter.java,
+	  java/jdbc/src/org/postgis/binary/ByteGetter.java,
+	  java/jdbc/src/org/postgis/binary/ByteSetter.java,
+	  java/jdbc/src/org/postgis/binary/ValueGetter.java,
+	  java/jdbc/src/org/postgis/binary/ValueSetter.java,
+	  java/jdbc/src/org/postgis/java2d/Java2DWrapper.java,
+	  java/jdbc/src/org/postgis/java2d/PGShapeGeometry.java,
+	  java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java,
+	  java/jdbc/src/org/postgis/overview.html,
+	  java/jdbc/src/org/postgis/version.properties,
+	  java/jdbc/src/org/postgresql/driverconfig.properties,
+	  java/jdbc/stubs/LICENSE,
+	  java/jdbc/stubs/org/postgresql/Connection.java,
+	  java/jdbc/stubs/org/postgresql/PGConnection.java,
+	  java/jdbc/todo.txt, java/jdbc_jtsparser/README,
+	  java/jdbc_jtsparser/pom.xml,
+	  java/jdbc_jtsparser/src/main/java/examples/JtsTestParser.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JTSShape.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryParser.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryWriter.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGeometry.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGisWrapper.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsWrapper.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/overview.html,
+	  make_dist.sh: Bye bye, java
+	  
+	  New home for java bindings is
+	  https://github.com/postgis/postgis-java
+	  See
+	  https://lists.osgeo.org/pipermail/postgis-devel/2015-June/025006.html
 
-2014-02-22 14:57  strk
+2015-06-17 18:33  Sandro Santilli <strk at keybit.net>
 
-	* utils/postgis_proc_upgrade.pl: Make postgis_proc_upgrade ready to
-	  deal with rtpostgis.sql
+	* [r13679] regress/sfcgal/approximatemedialaxis.sql,
+	  regress/sfcgal/approximatemedialaxis_expected: Add SRID
+	  conservancy in ApproximateMedialAxis test
 
-2014-02-22 09:13  strk
+2015-06-17 13:10  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, utils/postgis_proc_upgrade.pl: Soft upgrade: avoid
-	  drop/recreate of aggregates that hadn't changed
+	* [r13678] NEWS, doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_approximatemedialaxis01.wkt,
+	  doc/reference_sfcgal.xml, postgis/lwgeom_sfcgal.c,
+	  postgis/sfcgal.sql.in, regress/Makefile.in,
+	  regress/sfcgal/approximatemedialaxis.sql,
+	  regress/sfcgal/approximatemedialaxis_expected: Add
+	  ST_ApproximateMedialAxis (#3169)
 	  
-	  Closes #2560
+	  Requires SFCGAL (any version).
+	  Uses SFCGAL specific API if available (1.2+),
+	  post-processes StraightSkeleton output otherwise.
+	  
+	  Includes regression test and documentation.
 
-2014-02-22 09:13  strk
+2015-06-16 13:29  Sandro Santilli <strk at keybit.net>
 
-	* topology/sql/topoelement/topoelement_agg.sql.in: Encode
-	  availability of topology aggregates
+	* [r13677] liblwgeom/Makefile.in: Revert "Build liblwgeom with
+	  -no-undefined flag"
 	  
-	  See #2560
+	  This reverts r13650 as it broke static-only build under windows,
+	  see http://trac.osgeo.org/postgis/ticket/3167
 
-2014-02-22 09:13  strk
+2015-06-16 12:37  Sandro Santilli <strk at keybit.net>
 
-	* raster/rt_pg/rtpostgis.sql.in: Encode availability and last
-	  change in raster aggregates
-	  
-	  See #2560
+	* [r13676] postgis/sqldefines.h.in: Make SFCGAL version available
+	  in sqldefines.h
 
-2014-02-22 08:32  strk
+2015-06-16 10:12  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, topology/sql/sqlmm.sql.in: Fully qualify topology.topology
-	  (#2648)
+	* [r13675] configure.ac, postgis_config.h.in: Make SFCGAL version
+	  available in postgis_config.h.in
 
-2014-02-20 05:46  robe
+2015-06-13 08:08  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_measure.xml: #2646 typo arithmetric -> arithmetric
-	  in ST_Centroid
+	* [r13674] doc/reference_constructor.xml: Add ST_Boundary in "see
+	  also" section for ST_MakePolygon
+	  
+	  See
+	  https://lists.osgeo.org/pipermail/postgis-users/2015-June/040574.html
 
-2014-02-14 03:30  robe
+2015-06-13 08:08  Sandro Santilli <strk at keybit.net>
 
-	* doc/using_raster_dataman.xml: #2576 Error in manual wrt
-	  using_raster RT_PLPython
+	* [r13673] GNUmakefile.in, java/jdbc/Makefile.in,
+	  postgis/Makefile.in: Fix the "maintainer-clean" rule, and avoid
+	  maven downloads on clean
 
-2014-02-14 03:23  robe
+2015-06-13 08:08  Sandro Santilli <strk at keybit.net>
 
-	* doc/reference_constructor.xml: #2582 fix all references to -1 in
-	  constructors and change to 0 (SRID Unknown)
+	* [r13672] java/jdbc/Makefile.in: Only remove pom.xml on "make
+	  maintainer-clean"
+	  
+	  It's a distributed file...
+
+2015-06-12 19:32  Sandro Santilli <strk at keybit.net>
+
+	* [r13671] make_dist.sh: Include pom.xml in distribution (#3154)
+
+2015-06-12 19:26  Sandro Santilli <strk at keybit.net>
+
+	* [r13670] make_dist.sh: Stop using "cvs" string in dist script
+
+2015-06-12 19:09  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13669] liblwgeom/lwgeom.c, liblwgeom/lwgeom_geos.c,
+	  postgis/lwgeom_geos.c: #3164, ST_ClipByBox2D a little less
+	  brittle
+
+2015-06-12 18:49  Regina Obe <lr at pcorp.us>
+
+	* [r13667] make_dist.sh: take out pom make section to try to make
+	  travis happy. Turns out debbie doesn't use this script anyway.
+
+2015-06-12 18:35  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13666] NEWS, doc/reference_processing.xml,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwline.c,
+	  liblwgeom/lwlinearreferencing.c, liblwgeom/lwmpoint.c,
+	  liblwgeom/lwpoly.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in,
+	  postgis/postgis_drop_after.sql,
+	  regress/remove_repeated_points.sql,
+	  regress/remove_repeated_points_expected: #1137, Add a tolerance
+	  distance to ST_RemoveRepeatedPoints
+
+2015-06-12 09:09  Sandro Santilli <strk at keybit.net>
+
+	* [r13665] NEWS: Add item about new functions supporting
+	  compoundcurve types
+
+2015-06-11 21:09  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13664] liblwgeom/liblwgeom.h.in, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwline.c, postgis/lwgeom_ogc.c,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected, regress/tickets.sql,
+	  regress/tickets_expected: #2717, support startpoint, endpoint,
+	  pointn, numpoints for compoundcurve
+
+2015-06-11 19:58  Sandro Santilli <strk at keybit.net>
+
+	* [r13661] liblwgeom/lwlinearreferencing.c: Optimize
+	  ptarray_locate_along_linear to really honour the "from" parameter
+
+2015-06-11 19:41  Sandro Santilli <strk at keybit.net>
+
+	* [r13658] regress/affine.sql, regress/affine_expected: Add test
+	  for ST_Affine bbox cache bug (#3159)
+
+2015-06-11 19:41  Sandro Santilli <strk at keybit.net>
+
+	* [r13657] doc/reference_editor.xml, postgis/postgis.sql.in: Make
+	  ST_Scale not use ST_Affine
+
+2015-06-11 19:20  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13656] liblwgeom/lwgeom.c, liblwgeom/lwline.c,
+	  liblwgeom/lwlinearreferencing.c, postgis/geography_inout.c,
+	  postgis/lwgeom_functions_basic.c: #3159, only add boxes to
+	  geometries that are input with them
+
+2015-06-11 19:12  Sandro Santilli <strk at keybit.net>
+
+	* [r13655] NEWS: Add missing item about |=| addition
+
+2015-06-11 19:09  Sandro Santilli <strk at keybit.net>
+
+	* [r13654] NEWS, doc/reference_editor.xml,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in,
+	  regress/affine.sql, regress/affine_expected: Allow passing M
+	  factor to ST_Scale (#3062)
+
+2015-06-11 19:09  Sandro Santilli <strk at keybit.net>
+
+	* [r13653] liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/lwgeom.c: lwgeom_scale:
+	  recompute bounding box if needed
+
+2015-06-11 11:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13652] NEWS, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom_log.h,
+	  libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/geography_inout.c, postgis/geography_measurement_trees.c,
+	  postgis/lwgeom_backend_api.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_relatematch.c, postgis/lwgeom_in_geohash.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_sfcgal.c,
+	  raster/rt_core/rt_geometry.c, raster/rt_core/rt_raster.c,
+	  raster/rt_core/rt_spatial_relationship.c: Move liblwgeom logging
+	  functions outside of public header (#1220)
+
+2015-06-11 10:13  Sandro Santilli <strk at keybit.net>
+
+	* [r13651] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/vsprintf.c, loader/shp2pgsql-gui.c: Drop unused
+	  lw_vasprintf / lw_asprintf functions from liblwgeom
+
+2015-06-11 09:06  Sandro Santilli <strk at keybit.net>
+
+	* [r13650] liblwgeom/Makefile.in: Build liblwgeom with
+	  -no-undefined flag
+	  
+	  Doing so should report unresolved symbol references from regular
+	  object files.
+
+2015-06-11 00:33  Sandro Santilli <strk at keybit.net>
+
+	* [r13648] postgis/Makefile.in, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_functions_temporal.c: Move temporal function
+	  wrappers in their own file
+
+2015-06-10 23:45  Sandro Santilli <strk at keybit.net>
+
+	* [r13647] postgis/gserialized_gist_nd.c: Fix unused vars and funx
+	  warnings building against pgsql < 9.5
+
+2015-06-10 23:28  Sandro Santilli <strk at keybit.net>
+
+	* [r13646] liblwgeom/cunit/cu_tester.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwutil.c, libpgcommon/lwgeom_pg.c,
+	  raster/test/cunit/cu_tester.c: Restore liblwgeom API
+	  compatibility (#3156)
+	  
+	  Adds an lwgeom_set_debuglogger function, restore
+	  lwgeom_set_handler
+	  to the same arguments set as with 2.1.x.
+	  Updates all callers (2/3 of which are back to their original
+	  version).
+
+2015-06-10 23:27  Sandro Santilli <strk at keybit.net>
+
+	* [r13645] liblwgeom/cunit/cu_varint.c: Convert varint test to use
+	  the new ASSERT_STRING_EQUAL macro
+	  
+	  Also drops manual "strcmp" calls from it.
+
+2015-06-10 17:29  Sandro Santilli <strk at keybit.net>
+
+	* [r13644] liblwgeom/cunit/cu_ptarray.c: Convert ptarray test to
+	  use the new ASSERT_STRING_EQUAL macro
+	  
+	  Also change its suite name to "ptarray"
+
+2015-06-10 17:19  Sandro Santilli <strk at keybit.net>
+
+	* [r13643] liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_ptarray.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwgeom.c, liblwgeom/ptarray.c: Add lwgeom_scale and
+	  ptarray_scale with support of all dimensions (#3062)
+	  
+	  Includes unit test.
+
+2015-06-10 16:42  Sandro Santilli <strk at keybit.net>
+
+	* [r13642] doc/reference_operator.xml: Trim refpurpose section for
+	  <-> operator, move details down
+
+2015-06-10 16:18  Sandro Santilli <strk at keybit.net>
+
+	* [r13641] doc/reference_operator.xml, doc/reference_temporal.xml,
+	  postgis/gserialized_gist_nd.c, postgis/postgis.sql.in,
+	  regress/Makefile.in, regress/temporal_knn.sql,
+	  regress/temporal_knn_expected: Add |=| operator with CPA semantic
+	  and KNN support with PgSQL 9.5+
+	  
+	  Includes regress test and documentation
+
+2015-06-10 11:34  Sandro Santilli <strk at keybit.net>
+
+	* [r13640] postgis/lwgeom_functions_lrs.c, regress/temporal.sql,
+	  regress/temporal_expected: Ensure ST_DistanceCPA returns NULL if
+	  inputs do not meet
+
+2015-06-10 09:26  Sandro Santilli <strk at keybit.net>
+
+	* [r13639] liblwgeom/Makefile.in: Remove liblwgeom.h on make
+	  uninstall (#3155)
+
+2015-06-10 07:31  Sandro Santilli <strk at keybit.net>
+
+	* [r13636] NEWS: Add note about minimum PROJ4 version requirement
+	  raise
+
+2015-06-09 22:29  Regina Obe <lr at pcorp.us>
+
+	* [r13634] java/jdbc/Makefile.in, make_dist.sh: #3154: revise make
+	  dist to build pom and not delete.
+
+2015-06-09 20:01  Sandro Santilli <strk at keybit.net>
+
+	* [r13632] postgis/postgis.sql.in: Fix definition of ST_DistanceCPA
+
+2015-06-09 19:38  Sandro Santilli <strk at keybit.net>
+
+	* [r13631] NEWS, doc/reference_temporal.xml,
+	  postgis/lwgeom_functions_lrs.c, postgis/postgis.sql.in,
+	  regress/temporal.sql, regress/temporal_expected: ST_DistanceCPA:
+	  return distance at closest point of approach
+	  
+	  Includes regression test and docs.
+
+2015-06-09 19:21  Sandro Santilli <strk at keybit.net>
+
+	* [r13630] doc/reference_temporal.xml,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwlinearreferencing.c, postgis/lwgeom_functions_lrs.c,
+	  regress/temporal.sql, regress/temporal_expected: Have
+	  ST_ClosestPointOfApproach return NULL if inputs do not meet
+	  
+	  Makes lwgeom_tcpa return -2 if inputs do not share any point in
+	  time.
+	  Includes documentation and testcases tweaks.
+
+2015-06-09 18:19  Sandro Santilli <strk at keybit.net>
+
+	* [r13629] liblwgeom/lwlinearreferencing.c, regress/temporal.sql,
+	  regress/temporal_expected: Be less noisy on meeting trajectories,
+	  add temporal test
+
+2015-06-09 11:18  Sandro Santilli <strk at keybit.net>
+
+	* [r13628] liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/lwlinearreferencing.c: Fix lwgeom_tcpa distance
+	  computation for degenerate cases
+
+2015-06-09 11:18  Sandro Santilli <strk at keybit.net>
+
+	* [r13627] liblwgeom/measures3d.c: Implement missing
+	  distance3d_pt_pt function
+
+2015-06-09 09:59  Sandro Santilli <strk at keybit.net>
+
+	* [r13626] liblwgeom/liblwgeom.h.in: Update in-header documentation
+	  for lwgeom_split
+
+2015-06-06 04:55  Regina Obe <lr at pcorp.us>
+
+	* [r13625] extras/tiger_geocoder/tiger_loader_2014.sql: #2906: move
+	  census functions into tiger_loader_2014.sql (needed since we took
+	  out of extension but still in docs) and will be needed for
+	  upgrades
+
+2015-06-05 21:02  Regina Obe <lr at pcorp.us>
+
+	* [r13624] extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/census_loader.sql,
+	  extras/tiger_geocoder/create_geocode.sql,
+	  extras/tiger_geocoder/geocode_settings.sql,
+	  extras/tiger_geocoder/tiger_loader_2011.sql,
+	  extras/tiger_geocoder/tiger_loader_2012.sql,
+	  extras/tiger_geocoder/tiger_loader_2013.sql,
+	  extras/tiger_geocoder/tiger_loader_2014.sql,
+	  extras/tiger_geocoder/upgrade_geocode.sql: #2906: Fix webiste
+	  link postgis.net (instead of postgis.org), consolidate
+	  censustract/bg/tabblock for 2014 into 2014 loader file, fix
+	  tabblock loading issue (they renamed it so its ends in 10 now)
+
+2015-06-04 21:13  Sandro Santilli <strk at keybit.net>
+
+	* [r13623] regress/temporal.sql, regress/temporal_expected: Get
+	  "Closest Point of Approach" name straight ...
+
+2015-06-04 21:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13622] regress/regress_lrs.sql, regress/regress_lrs_expected,
+	  regress/temporal.sql, regress/temporal_expected: Move
+	  ST_ClosestPointOfApproach tests under temporal.sql
+
+2015-06-04 20:36  Regina Obe <lr at pcorp.us>
+
+	* [r13621] extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/README, extras/tiger_geocoder/tiger_2011:
+	  change extension install to go from root of tiger
+
+2015-06-04 20:32  Regina Obe <lr at pcorp.us>
+
+	* [r13620] extras/tiger_geocoder/census_loader.sql,
+	  extras/tiger_geocoder/create_geocode.bat,
+	  extras/tiger_geocoder/create_geocode.sh,
+	  extras/tiger_geocoder/create_geocode.sql,
+	  extras/tiger_geocoder/geocode,
+	  extras/tiger_geocoder/geocode_settings.sql,
+	  extras/tiger_geocoder/legacy_import,
+	  extras/tiger_geocoder/normalize,
+	  extras/tiger_geocoder/pagc_normalize,
+	  extras/tiger_geocoder/regress, extras/tiger_geocoder/tables,
+	  extras/tiger_geocoder/tiger_2011/census_loader.sql,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode,
+	  extras/tiger_geocoder/tiger_2011/geocode_settings.sql,
+	  extras/tiger_geocoder/tiger_2011/legacy_import,
+	  extras/tiger_geocoder/tiger_2011/normalize,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize,
+	  extras/tiger_geocoder/tiger_2011/regress,
+	  extras/tiger_geocoder/tiger_2011/tables,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2014.sql,
+	  extras/tiger_geocoder/tiger_2011/topology,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocoder.bat,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocoder.sh,
+	  extras/tiger_geocoder/tiger_2011/utility,
+	  extras/tiger_geocoder/tiger_loader_2011.sql,
+	  extras/tiger_geocoder/tiger_loader_2012.sql,
+	  extras/tiger_geocoder/tiger_loader_2013.sql,
+	  extras/tiger_geocoder/tiger_loader_2014.sql,
+	  extras/tiger_geocoder/topology,
+	  extras/tiger_geocoder/upgrade_geocode.sql,
+	  extras/tiger_geocoder/upgrade_geocoder.bat,
+	  extras/tiger_geocoder/upgrade_geocoder.sh,
+	  extras/tiger_geocoder/utility: a lot of this stuff is not
+	  tiger_2011, we should just go back to single folder
+
+2015-06-04 19:45  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13619] liblwgeom/lwgeom.c, raster/rt_core/rt_mapalgebra.c,
+	  raster/rt_core/rt_warp.c, raster/rt_pg/rtpostgis.c,
+	  raster/test/regress/rt_mapalgebra_expected: #2287, fix
+	  regressions with new debug in raster
+
+2015-06-04 18:53  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13618] liblwgeom/effectivearea.c, postgis/postgis.sql.in:
+	  Harmonize ST_SimplifyVW with ST_Simplify behavior when feeded
+	  with 0 tolerance
+
+2015-06-04 18:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13617] liblwgeom/cunit/cu_tester.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeom_log.h, liblwgeom/lwutil.c,
+	  libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_functions_lrs.c, postgis/lwgeom_geos.c,
+	  raster/rt_pg/rtpostgis.c, raster/rt_pg/rtpostgis.h,
+	  raster/test/cunit/cu_tester.c: #2287, move debug messages in
+	  --enable-debug builds to the DEBUG PgSQL logging channel
+
+2015-06-04 08:30  Regina Obe <lr at pcorp.us>
+
+	* [r13616] regress/knn_recheck.sql, regress/knn_recheck_expected:
+	  #3133 add nd index recheck tests
+
+2015-06-04 08:14  Regina Obe <lr at pcorp.us>
+
+	* [r13615] regress/knn_recheck.sql, regress/knn_recheck_expected:
+	  rework the knn recheck tests for goemetry, geography, add some nd
+	  tests for 3d. still more tests to add.
+
+2015-06-04 08:09  Sandro Santilli <strk at keybit.net>
+
+	* [r13614] make_dist.sh: Embed full version (and revision) in
+	  package name for dev snapshots.
+
+2015-06-03 23:08  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13611] postgis/geography_measurement.c: spellign
+
+2015-06-03 20:53  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13610] postgis/gserialized_gist_nd.c, regress/Makefile.in:
+	  #3133, support for recheck on M-measured geometries
+
+2015-06-03 19:36  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13609] regress/knn.sql, regress/knn_expected,
+	  regress/operators.sql, regress/operators_expected: Isolate <<->>
+	  in version-checked regression file
+
+2015-06-03 19:34  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13608] regress/Makefile.in: whitespace
+
+2015-06-03 19:08  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13607] liblwgeom/liblwgeom.h.in, liblwgeom/measures.c,
+	  postgis/gserialized_gist_nd.c,
+	  postgis/lwgeom_functions_analytic.c, postgis/postgis.sql.in,
+	  regress/knn.sql, regress/knn_expected, regress/operators.sql,
+	  regress/operators_expected: #3133, add <<->> recheck supporrt and
+	  rip out <<#>>
+
+2015-06-03 18:34  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13606] liblwgeom/effectivearea.c: Guard from 1 point
+	  linestrings in st_simplifyvw and st_seteffectivearea
+
+2015-06-03 17:05  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13605] postgis/geography.sql.in,
+	  postgis/geography_measurement.c, postgis/gserialized_gist_nd.c:
+	  #3132, KNN box-only operator <-> for geography to support PgSQL <
+	  9.5
+
+2015-06-03 13:50  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13604] liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/lwlinearreferencing.c: #3140, fix comparison function
+
+2015-06-03 12:52  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13603] liblwgeom/cunit/cu_geos.c: quite tests a bit
+
+2015-06-03 08:07  Sandro Santilli <strk at keybit.net>
+
+	* [r13602] configure.ac: Update the GEOS version warning to
+	  recommend 3.4.2
+
+2015-06-02 16:03  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13601] liblwgeom/lwlinearreferencing.c: #3143, use right type
+	  size / simpler pointer math?
+
+2015-06-01 16:15  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13600] postgis/gserialized_estimate.c: Guard against crazy
+	  selectivity numbers
+
+2015-06-01 16:09  Sandro Santilli <strk at keybit.net>
+
+	* [r13599] NEWS, doc/reference_accessor.xml,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in,
+	  regress/lwgeom_regress.sql, regress/lwgeom_regress_expected:
+	  ST_BoundingDiagonal (#3139)
+	  
+	  Includes tests and documentation
+
+2015-06-01 13:36  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13598] regress/clipbybox2d_expected: Harmonize regression test
+
+2015-06-01 13:23  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13597] liblwgeom/lwout_twkb.c: Stylistic OCD
+
+2015-06-01 12:27  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13596] liblwgeom/lwgeom.c: Harmonize threshold w/ message
+
+2015-06-01 09:04  Regina Obe <lr at pcorp.us>
+
+	* [r13595] doc/html/image_src/st_subdivide02.wkt,
+	  doc/reference_processing.xml, regress/Makefile.in,
+	  regress/subdivide.sql, regress/subdivide_expected: #3074: Add
+	  postgres regress for ST_SubDivide, update documentation to not
+	  use example below 8 vertices and put note about no less than 8 is
+	  allowed
+
+2015-05-31 20:30  Regina Obe <lr at pcorp.us>
+
+	* [r13594] regress/knn_recheck.sql, regress/knn_recheck_expected:
+	  more fine tuning to force index use during index tests
+
+2015-05-31 20:14  Regina Obe <lr at pcorp.us>
+
+	* [r13593] doc/reference_operator.xml,
+	  postgis/geography_measurement.c, regress/knn_recheck.sql,
+	  regress/knn_recheck_expected: #3127 revert back to use sphere
+	  distance (spheroid doesn't work with knn recheck), document that
+	  <-> is on sphere, change tests to be based on sphere instead of
+	  spheroid., #3131 reverting fixes index returned tuples wrong
+	  order issue
+
+2015-05-31 04:48  Regina Obe <lr at pcorp.us>
+
+	* [r13592] liblwgeom/cunit/cu_measures.c: revert last change
+
+2015-05-31 04:01  Regina Obe <lr at pcorp.us>
+
+	* [r13591] liblwgeom/cunit/cu_measures.c: #3143 get rid of
+	  duplicate measure_suite_setup declaration to try to fix winnie's
+	  32-bit whining.
+
+2015-05-31 01:57  Regina Obe <lr at pcorp.us>
+
+	* [r13590] postgis/geography_measurement.c: #3127 Switch knn to use
+	  spheroid distance instead of sphere distance
+
+2015-05-30 20:35  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13589] liblwgeom/lwout_twkb.c: A small opimization to not use
+	  temp buffer when size of npoints is not unpredictable
+
+2015-05-30 15:54  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13588] postgis/geography_measurement.c: #3131, just fix KNN w/
+	  big hammer
+
+2015-05-29 23:08  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13587] postgis/geography_measurement.c: Use the right function!
+
+2015-05-29 23:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13586] postgis/geography_measurement.c: Remove stub code!
+
+2015-05-29 23:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13585] postgis/geography_measurement.c: #3131, fix crasher
+
+2015-05-29 22:01  Regina Obe <lr at pcorp.us>
+
+	* [r13584] regress/Makefile.in: Add raster garden tests to make
+	  garden run
+
+2015-05-29 21:21  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13583] liblwgeom/lwgeom.c: Lower limit on max vertices
+
+2015-05-29 21:18  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13582] postgis/geography.sql.in,
+	  postgis/geography_measurement.c, postgis/gserialized_gist_nd.c:
+	  #3131, KNN geography still gives ERROR: index returned tuples in
+	  wrong order
+
+2015-05-29 17:39  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13581] regress/clipbybox2d_expected: Alter test
+
+2015-05-29 17:29  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13580] liblwgeom/lwgeom.c, postgis/lwgeom_dump.c: #3135, avoid
+	  infinite recursion on features with repeated points
+
+2015-05-29 07:56  Regina Obe <lr at pcorp.us>
+
+	* [r13579] regress/Makefile.in: #3134 change make garden to use
+	  regress install instead of the scripts in postgis/..
+
+2015-05-28 20:25  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13578] regress/clipbybox2d.sql, regress/clipbybox2d_expected,
+	  regress/tickets.sql, regress/tickets_expected: Move test to
+	  ifdef'ed location for GEOS 3.5
+
+2015-05-28 20:21  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13577] liblwgeom/cunit/cu_in_twkb.c, liblwgeom/lwout_twkb.c:
+	  Move some types around, see if winnie gets happier
+
+2015-05-28 19:55  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13576] liblwgeom/cunit/cu_geos.c, liblwgeom/lwgeom.c,
+	  regress/tickets.sql, regress/tickets_expected: #3135,
+	  ST_SubDivide garden crasher on malformed polygon and linestring
+
+2015-05-28 19:20  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13575] liblwgeom/cunit/cu_algorithm.c: Remove possible double
+	  free
+
+2015-05-28 19:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13574] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_misc.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwcollection.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwline.c, liblwgeom/lwpoly.c,
+	  postgis/lwgeom_functions_analytic.c, postgis/postgis.sql.in:
+	  #2093, Add extra policy argument to control ST_Simplify behavior
+
+2015-05-28 16:30  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13573] liblwgeom/lwout_twkb.c: Remove dead code
+
+2015-05-28 16:30  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13572] liblwgeom/bytebuffer.c, liblwgeom/bytebuffer.h,
+	  liblwgeom/lwout_twkb.c: TWKB: Drop duplicate vertices during
+	  encoding
+
+2015-05-28 15:33  Sandro Santilli <strk at keybit.net>
+
+	* [r13571] NEWS, doc/reference_temporal.xml: Add NEWS entry and
+	  another example for ST_IsValidTrajectory
+
+2015-05-28 15:18  Sandro Santilli <strk at keybit.net>
+
+	* [r13570] doc/Makefile.in, doc/postgis.xml, doc/reference.xml,
+	  doc/reference_lrs.xml, doc/reference_temporal.xml,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom.c, liblwgeom/lwline.c,
+	  postgis/lwgeom_functions_lrs.c, postgis/postgis.sql.in,
+	  regress/Makefile.in, regress/temporal.sql,
+	  regress/temporal_expected: Add ST_IsValidTrajectory (#3129)
+	  
+	  Adds lwgeom_is_trajectory and lwline_is_trajectory to liblwgeom.
+	  Includes unit and regress test.
+	  
+	  Includes documentation, starting a new "Temporal support" section
+	  in which ST_ClosestPointOfApproach is also moved
+
+2015-05-27 16:47  Sandro Santilli <strk at keybit.net>
+
+	* [r13569] liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/lwlinearreferencing.c, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected: Fix ST_ClosestPointOfApproach
+	  assumption of lwgeom->bbox being exact
+	  
+	  See #3136
+
+2015-05-27 11:45  Regina Obe <lr at pcorp.us>
+
+	* [r13568] regress/knn_recheck_expected: the actual geography tst
+	  needs some work, but for now just commit what current returns
+
+2015-05-27 06:30  Regina Obe <lr at pcorp.us>
+
+	* [r13567] regress/Makefile.in: #3134: make garden doesn't install
+	  postgis (revise to ignore if plpgsql is already installed.)
+
+2015-05-26 22:42  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13566] liblwgeom/lwgeom.c: #3126, ST_SubDivide garden crasher
+	  on Polyhedral Surface
+
+2015-05-26 19:08  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13565] postgis/geography_measurement.c: Formatting
+
+2015-05-26 19:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13564] postgis/geography_measurement.c: 0se FP_TOLERANCE
+	  instead of 0
+
+2015-05-26 19:05  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13563] postgis/geography_measurement.c: Do KNN distance calcs
+	  on the spherod
+
+2015-05-26 16:39  Sandro Santilli <strk at keybit.net>
+
+	* [r13562] doc/reference_lrs.xml: Fix return type of LRS functions
+	  in docs from float to float8
+
+2015-05-26 15:38  Sandro Santilli <strk at keybit.net>
+
+	* [r13561] regress/regress_lrs.sql, regress/regress_lrs_expected:
+	  Add missing tests for ST_AddMeasure and ST_InterpolatePoint
+
+2015-05-26 15:07  Sandro Santilli <strk at keybit.net>
+
+	* [r13560] NEWS, doc/reference_lrs.xml,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwlinearreferencing.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/postgis.sql.in, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected: Add ST_ClosestPointOfApproach
+	  (#3128)
+	  
+	  Based on new lwgeom_tcpa liblwgeom function.
+	  Includes unit and regress tests.
+	  Includes documentation.
+
+2015-05-26 09:46  Sandro Santilli <strk at keybit.net>
+
+	* [r13559] liblwgeom/lwgeom.c: Remove unused variable
+
+2015-05-26 09:43  Sandro Santilli <strk at keybit.net>
+
+	* [r13558] liblwgeom/liblwgeom.h.in, liblwgeom/measures3d.c,
+	  liblwgeom/measures3d.h: Add some const qualifiers for 3d distance
+	  functions
+
+2015-05-26 06:14  Regina Obe <lr at pcorp.us>
+
+	* [r13556] regress/knn_recheck.sql, regress/knn_recheck_expected:
+	  #2703: KNN geography recheck tests
+
+2015-05-25 18:10  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13555] regress/regress_lrs.sql, regress/regress_lrs_expected:
+	  Test for crasher
+
+2015-05-25 18:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13554] liblwgeom/ptarray.c: Fix crasher found in garden tests
+
+2015-05-25 17:58  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13553] liblwgeom/measures3d.c, liblwgeom/measures3d.h: Move
+	  inline functions for clang compat
+
+2015-05-25 16:38  Sandro Santilli <strk at keybit.net>
+
+	* [r13552] liblwgeom/Makefile.in: It's the object files that depend
+	  on headers, not the library
+
+2015-05-25 16:38  Sandro Santilli <strk at keybit.net>
+
+	* [r13551] liblwgeom/measures3d.h: Inline helper measures3d
+	  functions
+
+2015-05-25 16:23  Sandro Santilli <strk at keybit.net>
+
+	* [r13550] liblwgeom/Makefile.in: Consider all headers as
+	  dependencies of library
+
+2015-05-25 16:23  Sandro Santilli <strk at keybit.net>
+
+	* [r13549] liblwgeom/measures3d.h: Header guard and
+	  macro-protection for measures3d header
+
+2015-05-25 14:06  Regina Obe <lr at pcorp.us>
+
+	* [r13548] regress/knn_recheck_expected: was right first time -- no
+	  space at end.
+
+2015-05-25 04:24  Regina Obe <lr at pcorp.us>
+
+	* [r13547] regress/knn_recheck_expected: oops correction to what
+	  should be the results
+
+2015-05-25 02:25  Regina Obe <lr at pcorp.us>
+
+	* [r13546] regress/Makefile.in, regress/knn_recheck.sql,
+	  regress/knn_recheck_expected: #2703 knn_recheck regress tests --
+	  will currently fail -- exercises issue nicklas brought up in
+	  -devel
+
+2015-05-24 13:03  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13545] NEWS: Update NEWS-file
+
+2015-05-22 21:45  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13544] postgis/geography.sql.in: #2703, don't use the cache
+	  when running distance tests for geography
+
+2015-05-22 20:00  Regina Obe <lr at pcorp.us>
+
+	* [r13543] doc/reference_operator.xml: minor wording and additional
+	  explain of KNN true dist (also put in an Enhanced flag)
+
+2015-05-22 19:04  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13542] postgis/geography_measurement.c: Properly guard against
+	  unused parameter reads
+
+2015-05-22 18:29  Regina Obe <lr at pcorp.us>
+
+	* [r13541] doc/xsl/postgis_aggs_mm.xml.xsl: Catch enhancements
+
+2015-05-22 12:51  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13540] doc/reference_output.xml: #3123, add example using array
+	  input form of function
+
+2015-05-22 08:21  Sandro Santilli <strk at keybit.net>
+
+	* [r13539] liblwgeom/measures3d.c: Typos
+
+2015-05-21 22:48  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13538] postgis/geography.sql.in,
+	  postgis/geography_measurement.c, postgis/gserialized_gist_nd.c:
+	  <-> for geography committed with recheck
+
+2015-05-21 15:32  Sandro Santilli <strk at keybit.net>
+
+	* [r13537] topology/topology.sql.in: Reduce string concatenation
+	  operations
+	  
+	  According to the SQL standard literal strings are automatically
+	  merged when separated by at least a newline...
+
+2015-05-21 13:12  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13536] doc/reference_operator.xml: Clarify status
+
+2015-05-21 13:00  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13535] postgis/postgis.sql.in: #3124, Deprecation Warnings
+	  inside Aggregates
+
+2015-05-21 11:37  Sandro Santilli <strk at keybit.net>
+
+	* [r13534] doc/Makefile.in: Add postgis-out.xml back as a
+	  dependency of postgis_aggs_mm.xml
+
+2015-05-21 11:29  Sandro Santilli <strk at keybit.net>
+
+	* [r13533] topology/topology.sql.in: Reduce number of calls to
+	  ST_RelateMatch during ValidateTopology
+
+2015-05-21 08:26  Sandro Santilli <strk at keybit.net>
+
+	* [r13532] doc/Makefile.in: Fix dependency of postgis_aggs_mm.xml
+	  Makefile rule
+
+2015-05-20 21:12  Regina Obe <lr at pcorp.us>
+
+	* [r13531] regress/run_test.pl: Do not get fooled by carriage
+	  returns - chomp did not do the job now explicit remove
+
+2015-05-20 19:00  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13530] NEWS, doc/reference_operator.xml,
+	  postgis/gserialized_gist_2d.c, postgis/postgis.sql.in,
+	  regress/knn.sql, regress/operators.sql,
+	  regress/operators_expected: #2703, support true KNN in PgSQL 9.5+
+
+2015-05-20 18:09  Sandro Santilli <strk at keybit.net>
+
+	* [r13529] regress/run_test.pl: Do not get fooled by carriage
+	  returns
+
+2015-05-19 23:17  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13528] liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, postgis/geography_measurement.c:
+	  Fix regression "error" in UTM/geog ticket
+
+2015-05-19 18:12  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13527] liblwgeom/liblwgeom_internal.h: Fix comment
+
+2015-05-19 18:11  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13526] liblwgeom/Makefile.in, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/geodesic.c, liblwgeom/geodesic.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwspheroid.c,
+	  raster/test/cunit/Makefile.in: Only use new geodesics when Proj
+	  4.9 is installed
+
+2015-05-19 15:46  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13524] liblwgeom/liblwgeom_internal.h,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_inout.c: Support new array_create_iterator in 9.5
+
+2015-05-19 15:45  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13523] liblwgeom/cunit/cu_geodetic.c: Avoid regression failures
+	  when using old geodetic support
+
+2015-05-19 14:48  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13522] liblwgeom/geodesic.c, liblwgeom/geodesic.h: Include new
+	  files for #2918
+
+2015-05-19 14:37  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13521] NEWS, configure.ac, doc/faq.xml, doc/introduction.xml,
+	  doc/reference_constructor.xml, doc/reference_measure.xml,
+	  liblwgeom/Makefile.in, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/g_box.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwspheroid.c,
+	  postgis/geography_measurement.c, postgis/lwgeom_spheroid.c,
+	  postgis/postgis.sql.in, regress/measures_expected: #2918, Use
+	  GeographicLib functions for geodetics
+
+2015-05-18 08:55  Sandro Santilli <strk at keybit.net>
+
+	* [r13520] raster/rt_pg/rtpostgis_drop.sql.in: Drop obsoleted
+	  _st_mapalgebra version on upgrade (#2664)
+
+2015-05-18 08:55  Sandro Santilli <strk at keybit.net>
+
+	* [r13519] regress/run_test.pl: Fix error message about malformed
+	  --upgrade-path format
+
+2015-05-18 07:19  Sandro Santilli <strk at keybit.net>
+
+	* [r13518] regress/run_test.pl: Improve upgrade tester by adding
+	  postgis objects (#3120)
+
+2015-05-18 07:00  Sandro Santilli <strk at keybit.net>
+
+	* [r13516] configure.ac: Fix confusing help message for
+	  --with-pgconfig
+	  
+	  Patch by Volf Tomáš
+
+2015-05-15 16:18  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13510] raster/rt_pg/rtpostgis.sql.in,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in: DO block to emit
+	  message. ticket #3118
+
+2015-05-15 09:29  Sandro Santilli <strk at keybit.net>
+
+	* [r13509] NEWS: Note Length2d_spheroid and Point_Inside_Circle
+	  renames
+
+2015-05-15 09:27  Sandro Santilli <strk at keybit.net>
+
+	* [r13508] regress/measures.sql, regress/measures_expected: Add
+	  test for ST_Length2DSpheroid
+	  
+	  checks that 2D is really enforced
+
+2015-05-15 09:23  Sandro Santilli <strk at keybit.net>
+
+	* [r13507] doc/reference_measure.xml, postgis/lwgeom_spheroid.c,
+	  postgis/postgis.sql.in: Deprecate ST_Length2D_Spheroid, renamed
+	  to ST_Length2DSpheroid
+	  
+	  See #2748
+
+2015-05-15 08:23  Sandro Santilli <strk at keybit.net>
+
+	* [r13506] postgis/lwgeom_functions_lrs.c, postgis/postgis.sql.in,
+	  regress/sfcgal/tickets_expected, regress/tickets_expected: Warn
+	  deprecation of ST_Locate_Between_Measures and
+	  ST_Locate_Along_Measure
+	  
+	  Also add TODO item about switching to the pure-sql deprecation
+	  method
+	  (still not done now because output is slightly different between
+	  the
+	  old and new versions). See #2748.
+
+2015-05-15 08:04  Sandro Santilli <strk at keybit.net>
+
+	* [r13505] liblwgeom/lwgeom.c: Remove unused assignment
+
+2015-05-13 20:08  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13504] postgis/lwgeom_inout.c: Simplify argument handling for
+	  twkb
+
+2015-05-13 20:00  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13503] postgis/lwgeom_geos.c, postgis/lwgeom_inout.c: Free
+	  iterator when complete
+
+2015-05-13 19:38  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13502] postgis/lwgeom_geos.c: Replace manual array iterating
+	  with pgsql iterator
+
+2015-05-13 19:09  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13501] postgis/lwgeom_functions_basic.c: Remove manual array
+	  iteration
+
+2015-05-13 19:08  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13500] doc/reference_constructor.xml: De-dupe doc entries
+
+2015-05-13 18:39  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13499] liblwgeom/liblwgeom_internal.h: Remove unneed
+	  bytebuffer.h ref
+
+2015-05-13 18:38  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13498] doc/reference_constructor.xml: #3085, document
+	  ST_GeomFromTWKB
+
+2015-05-13 18:29  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13497] liblwgeom/bytebuffer.c, liblwgeom/bytebuffer.h,
+	  liblwgeom/cunit/cu_bytebuffer.c, liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_out_twkb.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, loader/dbfopen.c,
+	  loader/pgsql2shp-core.h, loader/safileio.c,
+	  loader/shp2pgsql-core.h, loader/shpopen.c,
+	  raster/loader/raster2pgsql.h, utils/read_scripts_version.pl: Add
+	  back some $Id tags and files missing in TWKB commit
+
+2015-05-13 18:13  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13496] ChangeLog, TODO, autogen.sh, configure.ac,
+	  doc/Makefile.comments.in, doc/html/image_src/Makefile.in,
+	  doc/html/image_src/generator.c, doc/html/image_src/styles.c,
+	  doc/html/image_src/styles.h, doc/xsl/post_gis_day_cards.html.xsl,
+	  doc/xsl/postgis_aggs_mm.xml.xsl,
+	  doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/postgis_comments.sql.xsl,
+	  doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl,
+	  doc/xsl/postgis_reference.xml.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/raster_comments.sql.xsl,
+	  doc/xsl/raster_gardentest.sql.xsl,
+	  doc/xsl/sfcgal_cheatsheet.html.xsl,
+	  doc/xsl/sfcgal_comments.sql.xsl,
+	  doc/xsl/tiger_geocoder_cheatsheet.html.xsl,
+	  doc/xsl/tiger_geocoder_comments.sql.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl,
+	  doc/xsl/topology_comments.sql.xsl,
+	  doc/xsl/topology_gardentest.sql.xsl,
+	  extensions/address_standardizer/parseaddress-api.c,
+	  extensions/address_standardizer/parseaddress-api.h,
+	  extensions/postgis/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_extension_helper.sql,
+	  extensions/postgis_extension_helper_uninstall.sql,
+	  extensions/postgis_tiger_geocoder/sql_bits/add_search_path.sql.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_topology/sql_bits/remove_from_extension.sql.in,
+	  extras/WFS_locks/WFS_locks.sql.in, extras/tiger_geocoder/README,
+	  extras/tiger_geocoder/tiger_2011/README,
+	  extras/tiger_geocoder/tiger_2011/census_loader.sql,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/census_tracts_functions.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/geocode_intersection.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode_settings.sql,
+	  extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2011/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql,
+	  extras/tiger_geocoder/tiger_2011/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2011/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2011/regress/pagc_normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2011/tables/lookup_tables_2011.sql,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2014.sql,
+	  extras/tiger_geocoder/tiger_2011/topology/README,
+	  extras/tiger_geocoder/tiger_2011/topology/tiger_topology_loader.sql,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocoder.bat,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocoder.sh,
+	  extras/tiger_geocoder/tiger_2011/utility/set_search_path.sql,
+	  java/ejb3/README.txt, java/ejb3/build.xml,
+	  java/ejb3/src/org/postgis/ejb/PersonEntity.java,
+	  java/ejb3/src/org/postgis/ejb/UserBean.java,
+	  java/ejb3/src/org/postgis/ejb/UserBeanRemote.java,
+	  java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java,
+	  java/ejb3/src/org/postgis/hibernate/ContainsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/GeometryType.java,
+	  java/ejb3/src/org/postgis/hibernate/IntersectsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/PostGISDialect.java,
+	  java/ejb3/src/org/postgis/hibernate/WithinExpression.java,
+	  java/jdbc/README, java/jdbc/src/examples/Test.java,
+	  java/jdbc/src/examples/TestAutoregister.java,
+	  java/jdbc/src/examples/TestBoxes.java,
+	  java/jdbc/src/examples/TestJava2d.java,
+	  java/jdbc/src/examples/TestParser.java,
+	  java/jdbc/src/examples/TestServer.java,
+	  java/jdbc/src/examples/VersionPrinter.java,
+	  java/jdbc/src/org/postgis/ComposedGeom.java,
+	  java/jdbc/src/org/postgis/DriverWrapper.java,
+	  java/jdbc/src/org/postgis/DriverWrapperAutoprobe.java,
+	  java/jdbc/src/org/postgis/DriverWrapperLW.java,
+	  java/jdbc/src/org/postgis/Geometry.java,
+	  java/jdbc/src/org/postgis/GeometryCollection.java,
+	  java/jdbc/src/org/postgis/LineString.java,
+	  java/jdbc/src/org/postgis/LinearRing.java,
+	  java/jdbc/src/org/postgis/MultiLineString.java,
+	  java/jdbc/src/org/postgis/MultiPoint.java,
+	  java/jdbc/src/org/postgis/MultiPolygon.java,
+	  java/jdbc/src/org/postgis/PGbox2d.java,
+	  java/jdbc/src/org/postgis/PGbox3d.java,
+	  java/jdbc/src/org/postgis/PGboxbase.java,
+	  java/jdbc/src/org/postgis/PGgeometry.java,
+	  java/jdbc/src/org/postgis/PGgeometryLW.java,
+	  java/jdbc/src/org/postgis/Point.java,
+	  java/jdbc/src/org/postgis/PointComposedGeom.java,
+	  java/jdbc/src/org/postgis/Polygon.java,
+	  java/jdbc/src/org/postgis/Version.java,
+	  java/jdbc/src/org/postgis/binary/BinaryParser.java,
+	  java/jdbc/src/org/postgis/binary/BinaryWriter.java,
+	  java/jdbc/src/org/postgis/binary/ByteGetter.java,
+	  java/jdbc/src/org/postgis/binary/ByteSetter.java,
+	  java/jdbc/src/org/postgis/binary/ValueGetter.java,
+	  java/jdbc/src/org/postgis/binary/ValueSetter.java,
+	  java/jdbc/src/org/postgis/java2d/Java2DWrapper.java,
+	  java/jdbc/src/org/postgis/java2d/PGShapeGeometry.java,
+	  java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java,
+	  java/jdbc/todo.txt,
+	  java/jdbc_jtsparser/src/main/java/examples/JtsTestParser.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryParser.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryWriter.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGeometry.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGisWrapper.java,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsWrapper.java,
+	  liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_effectivearea.c,
+	  liblwgeom/cunit/cu_force_sfs.c, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h,
+	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_in_geojson.c,
+	  liblwgeom/cunit/cu_in_twkb.c, liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_in_wkt.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/cunit/cu_misc.c,
+	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
+	  liblwgeom/cunit/cu_out_twkb.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/cunit/cu_stringbuffer.c, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_surface.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/cunit/cu_varint.c,
+	  liblwgeom/g_box.c, liblwgeom/g_serialized.c, liblwgeom/g_util.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeom_geos_clean.c, liblwgeom/lwgeom_geos_split.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwlinearreferencing.c,
+	  liblwgeom/lwmcurve.c, liblwgeom/lwmline.c,
+	  liblwgeom/lwout_geojson.c, liblwgeom/lwout_gml.c,
+	  liblwgeom/lwout_kml.c, liblwgeom/lwout_svg.c,
+	  liblwgeom/lwout_twkb.h, liblwgeom/lwout_x3d.c,
+	  liblwgeom/lwprint.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/measures.h, liblwgeom/measures3d.c,
+	  liblwgeom/measures3d.h, liblwgeom/stringbuffer.c,
+	  liblwgeom/stringbuffer.h, libpgcommon/Makefile.in,
+	  libpgcommon/common.h, libpgcommon/cunit/Makefile.in,
+	  libpgcommon/gserialized_gist.c, libpgcommon/lwgeom_transform.h,
+	  loader/cunit/Makefile.in, loader/cunit/cu_pgsql2shp.c,
+	  loader/cunit/cu_shp2pgsql.c, loader/cunit/cu_tester.c,
+	  loader/cunit/cu_tester.h, loader/dbfopen.c,
+	  loader/pgsql2shp-cli.c, loader/pgsql2shp-core.c,
+	  loader/pgsql2shp-core.h, loader/safileio.c, loader/shapefil.h,
+	  loader/shp2pgsql-cli.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/shpcommon.c, loader/shpcommon.h,
+	  loader/shpopen.c, macros/ac_proj4_version.m4,
+	  postgis/Makefile.in, postgis/geography.h,
+	  postgis/geography.sql.in, postgis/geography_btree.c,
+	  postgis/geography_inout.c, postgis/geography_measurement.c,
+	  postgis/gserialized_gist_2d.c, postgis/gserialized_gist_nd.c,
+	  postgis/gserialized_typmod.c, postgis/legacy.sql.in,
+	  postgis/legacy_minimal.sql.in, postgis/long_xact.sql.in,
+	  postgis/lwgeom_accum.c, postgis/lwgeom_box.c,
+	  postgis/lwgeom_dump.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_export.h, postgis/lwgeom_functions_analytic.h,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_geos_prepared.h,
+	  postgis/lwgeom_geos_relatematch.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_sqlmm.c, postgis/postgis.sql.in,
+	  postgis/postgis_drop_after.sql, postgis/postgis_drop_before.sql,
+	  postgis/uninstall_geography.sql.in,
+	  postgis/uninstall_long_xact.sql.in,
+	  postgis/uninstall_sqlmm.sql.in, raster/Makefile.in, raster/TODO,
+	  raster/loader/Makefile.in, raster/loader/raster2pgsql.c,
+	  raster/loader/raster2pgsql.h, raster/macros/ac_proj4_version.m4,
+	  raster/rt_core/Makefile.in, raster/rt_core/librtcore.h,
+	  raster/rt_core/librtcore_internal.h, raster/rt_core/rt_band.c,
+	  raster/rt_core/rt_context.c, raster/rt_core/rt_geometry.c,
+	  raster/rt_core/rt_mapalgebra.c, raster/rt_core/rt_pixel.c,
+	  raster/rt_core/rt_raster.c, raster/rt_core/rt_serialize.c,
+	  raster/rt_core/rt_serialize.h,
+	  raster/rt_core/rt_spatial_relationship.c,
+	  raster/rt_core/rt_statistics.c, raster/rt_core/rt_util.c,
+	  raster/rt_core/rt_warp.c, raster/rt_core/rt_wkb.c,
+	  raster/rt_pg/Makefile.in, raster/rt_pg/rtpg_band_properties.c,
+	  raster/rt_pg/rtpg_create.c, raster/rt_pg/rtpg_gdal.c,
+	  raster/rt_pg/rtpg_geometry.c, raster/rt_pg/rtpg_inout.c,
+	  raster/rt_pg/rtpg_internal.c, raster/rt_pg/rtpg_internal.h,
+	  raster/rt_pg/rtpg_mapalgebra.c, raster/rt_pg/rtpg_pixel.c,
+	  raster/rt_pg/rtpg_raster_properties.c,
+	  raster/rt_pg/rtpg_spatial_relationship.c,
+	  raster/rt_pg/rtpg_statistics.c, raster/rt_pg/rtpg_utility.c,
+	  raster/rt_pg/rtpostgis.c, raster/rt_pg/rtpostgis.h,
+	  raster/rt_pg/rtpostgis_drop.sql.in,
+	  raster/rt_pg/rtpostgis_legacy.sql.in,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in,
+	  raster/scripts/Makefile.in,
+	  raster/scripts/plpgsql/_MapAlgebraParts.sql,
+	  raster/scripts/plpgsql/st_addband.sql,
+	  raster/scripts/plpgsql/st_asraster.sql,
+	  raster/scripts/plpgsql/st_clip.sql,
+	  raster/scripts/plpgsql/st_deleteband.sql,
+	  raster/scripts/plpgsql/st_histogram.sql,
+	  raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_mapalgebra_optimized.sql,
+	  raster/scripts/plpgsql/st_mapalgebrafctngb.sql,
+	  raster/scripts/plpgsql/st_pixelaspolygons.sql,
+	  raster/scripts/plpgsql/st_reclass.sql,
+	  raster/scripts/plpgsql/st_setarray.sql,
+	  raster/scripts/plpgsql/st_setvalues.sql,
+	  raster/scripts/plpgsql/st_tile.sql,
+	  raster/scripts/plpgsql/st_union.sql,
+	  raster/scripts/python/Makefile.in,
+	  raster/scripts/python/Makefile.rt.sample,
+	  raster/scripts/python/genraster.py,
+	  raster/scripts/python/ovdump.py, raster/scripts/python/pixval.py,
+	  raster/scripts/python/raster2pgsql.py,
+	  raster/scripts/python/rtgdalraster.py,
+	  raster/scripts/python/rtpixdump.py,
+	  raster/scripts/python/rtreader.py,
+	  raster/scripts/python/rtrowdump.py,
+	  raster/scripts/python/window.py, raster/test/Makefile.in,
+	  raster/test/cunit/Makefile.in, raster/test/cunit/cu_tester.c,
+	  raster/test/cunit/cu_tester.h, raster/test/regress/Makefile.in,
+	  raster/test/regress/box3d.sql,
+	  raster/test/regress/bug_test_car5.sql,
+	  raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_overviews.sql,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_band_properties.sql,
+	  raster/test/regress/rt_bytea.sql,
+	  raster/test/regress/rt_dimensions.sql,
+	  raster/test/regress/rt_georeference.sql,
+	  raster/test/regress/rt_gist_relationships.sql,
+	  raster/test/regress/rt_hasnoband.sql,
+	  raster/test/regress/rt_isempty.sql,
+	  raster/test/regress/rt_pixelsize.sql,
+	  raster/test/regress/rt_pixelvalue.sql,
+	  raster/test/regress/rt_rotation.sql,
+	  raster/test/regress/rt_scale.sql,
+	  raster/test/regress/rt_set_band_properties.sql,
+	  raster/test/regress/rt_set_properties.sql,
+	  raster/test/regress/rt_upperleft.sql,
+	  raster/test/regress/rt_utility.sql, regress/concave_hull.sql,
+	  regress/regress_management.sql, regress/sfcgal/concave_hull.sql,
+	  topology/Makefile.in, topology/topology.sql.in,
+	  topology/topology_drop_after.sql.in,
+	  topology/topology_drop_before.sql.in, utils/Makefile.in,
+	  utils/profile_intersects.pl, utils/read_scripts_version.pl,
+	  utils/test_estimation.pl, utils/test_geography_estimation.pl,
+	  utils/test_geography_joinestimation.pl,
+	  utils/test_joinestimation.pl: Remove the many and unloved $Id$
+	  tags that clutter the code base
+
+2015-05-13 18:06  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13495] regress/in_geojson.sql, regress/in_geojson_expected:
+	  Include old regression cases for GeoJSON
+
+2015-05-13 18:06  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13494] raster/loader/raster2pgsql.c: Quiet warnings about using
+	  fabs on ints
+
+2015-05-13 18:03  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13493] doc/reference_constructor.xml, doc/reference_output.xml,
+	  liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_in_twkb.c, liblwgeom/cunit/cu_out_twkb.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_varint.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwin_twkb.c,
+	  liblwgeom/lwout_twkb.c, liblwgeom/lwout_twkb.h,
+	  liblwgeom/ptarray.c, liblwgeom/varint.c, liblwgeom/varint.h,
+	  libpgcommon/lwgeom_pg.h, libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h, postgis/lwgeom_accum.c,
+	  postgis/lwgeom_inout.c, postgis/postgis.sql.in,
+	  regress/tickets.sql, regress/tickets_expected, regress/twkb.sql,
+	  regress/twkb_expected: #3085 Add aggregate support and enhance
+	  TWKB support in general
+
+2015-05-12 22:27  Regina Obe <lr at pcorp.us>
+
+	* [r13492] doc/reference_processing.xml: fix tag mismatch
+
+2015-05-12 21:07  Regina Obe <lr at pcorp.us>
+
+	* [r13491] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_subdivide01.wkt,
+	  doc/html/image_src/st_subdivide02.wkt,
+	  doc/reference_processing.xml: Figures for new ST_Subdivide
+	  function
+
+2015-05-12 00:01  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13489] liblwgeom/lwgeom.c: #3108, subdivide dropping some
+	  squares
+
+2015-05-11 17:07  Sandro Santilli <strk at keybit.net>
+
+	* [r13488] doc/reference_misc.xml, postgis/postgis.sql.in:
+	  Deprecate ST_Point_Inside_Circle (#2748)
+
+2015-05-09 23:13  Regina Obe <lr at pcorp.us>
+
+	* [r13487] doc/reference_output.xml: get rid of dangling para mark
+
+2015-05-09 23:06  Regina Obe <lr at pcorp.us>
+
+	* [r13486] NEWS: add ST_AsX3D Geocoordinates and axis flipping
+	  support to history
+
+2015-05-09 22:57  Regina Obe <lr at pcorp.us>
+
+	* [r13485] doc/reference_output.xml, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwout_x3d.c,
+	  postgis/lwgeom_export.c: #897 (part of #2840 ) Support for X3D
+	  Geocoordinate (just WGS 84 for now), also ability to flip X/Y
+	  axis, includes documentation and cunit tests (still need
+	  postgresql specific tests)
+
+2015-05-04 11:18  Sandro Santilli <strk at keybit.net>
+
+	* [r13481] .travis.yml: Add installcheck step to travis build
+
+2015-05-04 11:02  Sandro Santilli <strk at keybit.net>
+
+	* [r13480] regress/sfcgal/tickets.sql: Fix online tickets test with
+	  sfcgal
+
+2015-05-04 11:02  Sandro Santilli <strk at keybit.net>
+
+	* [r13479] regress/run_test.pl, regress/sfcgal/legacy.sql,
+	  regress/sfcgal/regress_ogc.sql: Simplify a couple of sfcgal tests
+	  to simply wrap originals
+	  
+	  Adds support for using the :regdir variable in regression tests
+	  and turns 2 sfcgal tests into simple wrappers. More of this
+	  should
+	  follow.
+
+2015-05-04 10:26  Sandro Santilli <strk at keybit.net>
+
+	* [r13478] GNUmakefile.in: Allow passing custom RUNTESTFLAGS with
+	  'make installcheck'
+
+2015-05-04 10:16  Sandro Santilli <strk at keybit.net>
+
+	* [r13477] regress/sfcgal/legacy.sql: Fix online legacy test with
+	  sfcgal (#3105)
+
+2015-05-04 10:02  Sandro Santilli <strk at keybit.net>
+
+	* [r13476] regress/run_test.pl: Properly handle tear-down with
+	  --sfcgal
+
+2015-05-04 09:57  Sandro Santilli <strk at keybit.net>
+
+	* [r13475] GNUmakefile.in: Add "installcheck" rule (#2358)
+	  
+	  This is a first step, simply wraps a make check call with a
+	  properly setup RUNTESTFLAGS env variable.
+
+2015-05-04 09:57  Sandro Santilli <strk at keybit.net>
+
+	* [r13474] regress/lwgeom_regress.sql: Make Postgis_Noop call
+	  unambiguous to not fail with raster enabled
+
+2015-05-04 08:36  Sandro Santilli <strk at keybit.net>
+
+	* [r13473] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeodetic_tree.c,
+	  liblwgeom/lwin_geojson.c, liblwgeom/lwin_twkb.c,
+	  liblwgeom/lwout_twkb.c, liblwgeom/lwout_twkb.h,
+	  liblwgeom/lwout_x3d.c, liblwgeom/varint.c, loader/dbfopen.c,
+	  loader/pgsql2shp-core.c, loader/shp2pgsql-gui.c,
+	  loader/shpopen.c, raster/rt_core/rt_raster.c,
+	  raster/rt_core/rt_warp.c: C++ style comments are not allowed in
+	  ISO C90
+
+2015-05-04 07:57  Sandro Santilli <strk at keybit.net>
+
+	* [r13472] postgis/long_xact.c: Rename "errmsg" variable to avoid
+	  clash with PostgreSQL global
+	  
+	  Patch by Haribabu Kommi
+
+2015-05-03 00:41  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13471] raster/rt_pg/rtpostgis.sql.in: regex for parsing
+	  constraints. ticket #3096
+
+2015-05-02 20:27  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13468] raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/tickets.sql,
+	  raster/test/regress/tickets_expected: add unit tests for numeric
+	  overflow. ticket #3100
+
+2015-05-02 19:48  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13467] raster/rt_pg/rtpostgis.sql.in,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in: round to 10 places
+	  instead of numeric(25,10). ticket #3006
+
+2015-05-02 07:01  Regina Obe <lr at pcorp.us>
+
+	* [r13465] doc/faq_raster.xml: add other error you might see to the
+	  security raster faq
+
+2015-05-02 06:56  Regina Obe <lr at pcorp.us>
+
+	* [r13463] doc/installation.xml: Put back raster security details
+	  that are in 2.1 but weren't upported to 2.2
+
+2015-04-29 18:42  Regina Obe <lr at pcorp.us>
+
+	* [r13461] postgis/postgis.sql.in: #2365: Significantly improve
+	  performance of find_srid when lots of geometry columns
+
+2015-04-29 16:11  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13460] liblwgeom/effectivearea.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/varint.h: Quiet pedantic warnings some
+
+2015-04-29 15:55  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13459] postgis/lwgeom_export.c: C90 madness
+
+2015-04-29 15:49  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13457] postgis/lwgeom_accum.c, postgis/lwgeom_inout.c,
+	  raster/rt_core/rt_band.c, raster/rt_core/rt_raster.c,
+	  raster/rt_core/rt_warp.c: Quiet warnings about misuse of abs() /
+	  fabs() on
+	  wrong types (new clang in OSX 10.10)
+
+2015-04-29 12:48  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13456] postgis/lwgeom_export.c: #3104, st_asgml introduces
+	  random characters in ID field
+
+2015-04-27 17:43  Regina Obe <lr at pcorp.us>
+
+	* [r13454] postgis/postgis_drop_before.sql: change to drop view if
+	  exists just in case it doesn't
+
+2015-04-27 17:29  Regina Obe <lr at pcorp.us>
+
+	* [r13453] postgis/postgis.sql.in, postgis/postgis_drop_before.sql:
+	  #3103 Get rid of casting of table, schema, and column name.
+	  though oddly find_srid did not seem to be slowed down by this --
+	  need to investigate (might be the immutable strict)
+
+2015-04-27 17:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13452] liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_parse.c, liblwgeom/lwin_wkt_parse.h,
+	  liblwgeom/lwin_wkt_parse.y: #2587, CompoundCurve with empties
+	  parses differently from WKB and WKT
+
+2015-04-27 16:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13451] libpgcommon/lwgeom_pg.h, postgis/lwgeom_inout.c,
+	  postgis/postgis.sql.in: #2335, rename internal LWGEOMWKB to be a
+	  bit more clear it is for EWKB
+
+2015-04-27 12:22  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13449] doc/introduction.xml: Update corporate name
+
+2015-04-26 01:09  Regina Obe <lr at pcorp.us>
+
+	* [r13446] extensions/upgradeable_versions.mk,
+	  postgis/postgis.sql.in: #3092 refinement to geometry_columns
+	  view. Aslo add missing 2.1 extension upgrade targets
+
+2015-04-26 00:43  Regina Obe <lr at pcorp.us>
+
+	* [r13445] loader/shp2pgsql-core.h: #3102 - add include <locale.h>
+	  to fix mingw-64 compile issue
+
+2015-04-24 17:50  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13443] NEWS, postgis/postgis.sql.in: #3092, Slow performance of
+	  geometry_columns
+
+2015-04-23 22:56  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13442] liblwgeom/lwin_wkt.c: #3098, odd dimension mixes in WKT
+
+2015-04-23 20:00  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13441] liblwgeom/lwgeom_geos.c: #3091, segfault in unit tests
+	  in debug
+
+2015-04-23 19:36  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13439] NEWS, loader/shp2pgsql-core.c: #3048, shp2pgsql -
+	  illegal number format when specific system locale set
+
+2015-04-23 18:20  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13437] NEWS, postgis/geography_btree.c: #3018, GROUP BY
+	  geography sometimes returns duplicate rows
+
+2015-04-22 15:25  Sandro Santilli <strk at keybit.net>
+
+	* [r13434] NEWS, doc/reference_processing.xml,
+	  liblwgeom/cunit/cu_split.c, liblwgeom/lwgeom_geos_split.c,
+	  regress/split.sql, regress/split_expected: Allow splitting lines
+	  by multipoints
+
+2015-04-22 15:25  Sandro Santilli <strk at keybit.net>
+
+	* [r13433] NEWS, doc/reference_processing.xml,
+	  liblwgeom/cunit/cu_split.c, liblwgeom/lwgeom_geos_split.c,
+	  regress/split.sql, regress/split_expected: Allow splitting lines
+	  by multilines and (multi)polygon boundaries
+	  
+	  Funded by Tuscany Region (Italy) - SITA (CIG: 6002233F59)
+
+2015-04-22 15:25  Sandro Santilli <strk at keybit.net>
+
+	* [r13432] liblwgeom/liblwgeom_internal.h: Do not leak symbols
+	  outside of header guard block
+
+2015-04-15 15:36  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13429] NEWS: Add NEWS note on ST_SubDivide
+
+2015-04-15 15:20  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13428] liblwgeom/lwin_geojson.c: #3094, found another one
+
+2015-04-06 09:46  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13423] liblwgeom/effectivearea.c: effectivearea: force qsort to
+	  always return the same ordering when comparing identical area.
+	  Prevents different result cross platforms.
+
+2015-04-04 19:44  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13421] liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_effectivearea.c, liblwgeom/cunit/cu_tester.c,
+	  regress/Makefile.in, regress/simplifyvw.sql,
+	  regress/simplifyvw_expected: add cunit and regression tests to
+	  simplifyvw and seteffectivearea
+
+2015-04-04 19:42  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13420] liblwgeom/effectivearea.c: simplifyvw: allow polygon
+	  inner rings to collapse
+
+2015-04-03 22:31  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13419] liblwgeom/effectivearea.c: clean up
+
+2015-04-03 22:28  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13418] doc/reference_processing.xml, postgis/postgis.sql.in:
+	  Add ST_SimplifyVW
+
+2015-04-03 22:28  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13417] liblwgeom/effectivearea.c, liblwgeom/effectivearea.h,
+	  liblwgeom/liblwgeom.h.in, postgis/lwgeom_functions_analytic.c:
+	  effective area: fix multiple bugs in minHeap and make "set
+	  m-value" optional
+
+2015-03-27 16:27  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13403] liblwgeom/lwin_geojson.c: Fix z+ handling
+
+2015-03-26 22:30  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13401] liblwgeom/lwin_geojson.c: GeoJSON maintenance
+
+2015-03-26 19:16  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13398] liblwgeom/effectivearea.c, liblwgeom/effectivearea.h:
+	  Add minheap for ordering areas, and funtionality to avoid
+	  collapsing polygons for ST_Seteffectivearea
+
+2015-03-26 12:09  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13397] doc/reference_processing.xml: Entity the <
+
+2015-03-25 20:25  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13396] doc/reference_processing.xml: Add doc entry for
+	  ST_Subdivide
+
+2015-03-24 13:46  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13395] raster/rt_pg/rtpg_pixel.c: invalid operator. Ticket
+	  #3090
+
+2015-03-23 16:23  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13390] NEWS, raster/rt_pg/rtpg_pixel.c,
+	  raster/test/regress/rt_dumpvalues.sql: Fix ST_DumpValues()
+	  crasher when cleaning. Ticket #3086
+
+2015-03-23 16:04  Sandro Santilli <strk at keybit.net>
+
+	* [r13389] configure.ac, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwutil.c, postgis/lwgeom_box.c: Do not (re)define
+	  strcasestr in a public header (#3088)
+
+2015-03-23 08:43  Sandro Santilli <strk at keybit.net>
+
+	* [r13388] NEWS: Add 2.1.5 and 2.1.6 sections in NEWS
+
+2015-03-23 04:14  Regina Obe <lr at pcorp.us>
+
+	* [r13387] regress/lwgeom_regress.sql: #3087 cast text to geometry
+	  lwgeom_regress failure when testing .with CREATE EXTENSIO
+
+2015-03-23 03:43  Regina Obe <lr at pcorp.us>
+
+	* [r13386] raster/test/regress/rt_reclass.sql: #3080 regress
+	  failure on 9.5. Put in an OFFSET 0 on all the queries to prevent
+	  double ST_Reclass calling in 9.5 on constant table
+
+2015-03-20 15:45  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13376] postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_sfcgal.c, regress/measures.sql,
+	  regress/measures_expected: Back out changes from #3056
+
+2015-03-20 15:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13374] postgis/gserialized_typmod.c: Reorder to C order
+
+2015-03-20 15:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13373] liblwgeom/g_serialized.c: Reorder to C standard
+
+2015-03-20 15:34  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13372] liblwgeom/liblwgeom.h.in, postgis/geography.h,
+	  postgis/geography_inout.c, postgis/gserialized_typmod.c,
+	  postgis/lwgeom_inout.c, regress/typmod_expected: #3031, allow
+	  MULTIPOINT EMPTY into Geometry(Point) columns
+
+2015-03-20 12:38  Sandro Santilli <strk at keybit.net>
+
+	* [r13366] regress/typmod.sql, regress/typmod_expected: Add missing
+	  typmod tests for high-dimensioned TINs
+
+2015-03-20 11:07  Sandro Santilli <strk at keybit.net>
+
+	* [r13364] regress/typmod.sql, regress/typmod_expected: Add
+	  non-empty (multi)point cases to the typmod test (#3031)
+
+2015-03-20 09:33  Sandro Santilli <strk at keybit.net>
+
+	* [r13362] regress/typmod.sql, regress/typmod_expected: Fix typo in
+	  typmod test (#3031)
+
+2015-03-18 19:13  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13358] postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_sfcgal.c, regress/measures.sql,
+	  regress/measures_expected: #3056, only do 3d distance calcs when
+	  both args are 3d
+
+2015-03-17 16:30  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13353] liblwgeom/lwin_wkb.c: #2969, memory leak in the function
+	  of "lwtriangle_from_wkb_state"
+
+2015-03-17 14:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13351] regress/geography.sql, regress/geography_expected:
+	  #2941, add test to back up changes
+
+2015-03-17 11:42  Sandro Santilli <strk at keybit.net>
+
+	* [r13350] raster/rt_pg/rtpostgis.sql.in: Fix availability info for
+	  "agg_count" type (#3082)
+	  
+	  Fixes soft-upgrade from 2.1 to 2.2
+
+2015-03-17 11:42  Sandro Santilli <strk at keybit.net>
+
+	* [r13349] raster/rt_pg/rtpostgis.sql.in,
+	  utils/postgis_proc_upgrade.pl: Fix availability info for
+	  "summarystats" type (#3082)
+	  
+	  Adds support for "Missing in" label in sql comment for handling
+	  cases in which a type was missing from a version.
+
+2015-03-17 10:43  Sandro Santilli <strk at keybit.net>
+
+	* [r13348] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in: Fix soft
+	  upgrade from 2.0 to 2.2 (#3081)
+
+2015-03-17 09:19  Sandro Santilli <strk at keybit.net>
+
+	* [r13345] extensions/upgradeable_versions.mk: Add upgrade path
+	  from 2.0.6
+
+2015-03-17 09:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13344] loader/cunit/Makefile.in: Libtoolize build of loader
+	  unit tester, fixing build for me
+
+2015-03-16 20:41  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13343] liblwgeom/g_box.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwpoly.c, postgis/lwgeom_functions_basic.c,
+	  regress/clipbybox2d.sql, regress/clipbybox2d_expected: Revert
+	  previous commit, problem tricked into raster...
+
+2015-03-16 19:59  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13342] liblwgeom/g_box.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwpoly.c, postgis/lwgeom_functions_basic.c,
+	  regress/clipbybox2d.sql, regress/clipbybox2d_expected: Add a
+	  regression test for ST_Subdivide
+
+2015-03-16 18:38  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13341] regress/in_geojson_expected: #3061, Allow duplicate
+	  points in JSON, GML, GML ST_GeomFrom* functions
+
+2015-03-16 18:38  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13340] NEWS, liblwgeom/lwin_geojson.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c: #3061, do not drop repeated points when
+	  reading JSON/GML/KML
+
+2015-03-16 15:09  Sandro Santilli <strk at keybit.net>
+
+	* [r13338] postgis/lwgeom_geos.c: Include float.h for DBL_DIG
+	  define (#3079)
+
+2015-03-16 09:57  Sandro Santilli <strk at keybit.net>
+
+	* [r13337] .gitignore, java/jdbc/Makefile.in, java/jdbc/pom.xml,
+	  java/jdbc/pom.xml.in: Generate pom.xml at configure time (#2626)
+
+2015-03-16 08:46  Sandro Santilli <strk at keybit.net>
+
+	* [r13336] utils/create_undef.pl: Strip newlines and comments from
+	  uninstall/drop scripts
+
+2015-03-13 17:05  Sandro Santilli <strk at keybit.net>
+
+	* [r13334] utils/postgis_restore.pl.in: Update postgis_restore.pl
+	  skip list
+	  
+	  This was done with "make update-restore".
+	  Adds the missing signatures found in a dump that was reported
+	  to give restore errors:
+	  http://lists.osgeo.org/pipermail/postgis-users/2015-March/040282.html
+
+2015-03-13 17:05  Sandro Santilli <strk at keybit.net>
+
+	* [r13333] utils/Makefile.in: Draft an "update-restore" rule to
+	  update postgis_restore.pl.in
+	  
+	  It updates the list of known PostGIS signatures from the enabler
+	  and cleanup scripts.
+
+2015-03-13 17:05  Sandro Santilli <strk at keybit.net>
+
+	* [r13332] utils/postgis_restore.pl.in: Canonicalize signature skip
+	  list a bit
+	  
+	  Remove spaces after comma, lowercase, sort.
+
+2015-03-13 12:09  Sandro Santilli <strk at keybit.net>
+
+	* [r13331] doc/reference_raster.xml: Clarify the role of
+	  ST_DumpValues array indexes
+
+2015-03-11 17:31  Sandro Santilli <strk at keybit.net>
+
+	* [r13328] liblwgeom/lwgeom_geos_split.c: Fix bug in comment
+
+2015-03-09 18:45  Sandro Santilli <strk at keybit.net>
+
+	* [r13327] doc/html/image_src/Makefile.in: Libtoolize generator
+	  build, fixing it for me
+	  
+	  ... not sure why/how it broke (happened recently)
+
+2015-03-08 23:42  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13326] liblwgeom/lwgeom.c: Comments and notes
+
+2015-03-07 15:29  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13325] postgis/lwgeom_dump.c: Fix elog error
+
+2015-03-07 01:35  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13324] liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwpoly.c, postgis/lwgeom_dump.c,
+	  postgis/postgis.sql.in: #3074, subdivide any geometry into a
+	  simple set of
+	  smaller parts, great for subdividing tables of
+	  Really Big Things into things that are smaller than
+	  the page size
+
+2015-03-06 22:03  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13323] liblwgeom/cunit/cu_geos.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeom.c: #3074, add in lwgeom backend for subdivision
+
+2015-03-06 14:45  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13322] liblwgeom/cunit/cu_misc.c, liblwgeom/g_box.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom.c,
+	  liblwgeom/ptarray.c: #3074, first piece of infrastructure, count
+	  points in a piece
+
+2015-03-06 14:13  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13321] postgis/lwgeom_geos.c: Remove un-used pgsql headers
+
+2015-03-06 10:35  Sandro Santilli <strk at keybit.net>
+
+	* [r13320] postgis/lwgeom_geos.c: Fix ST_ClipByBox2D after gbox
+	  calculations centralization (r13313)
+	  
+	  See #3073
+
+2015-03-06 10:05  Sandro Santilli <strk at keybit.net>
+
+	* [r13319] postgis/lwgeom_geos.c: Fix build after gbox calculations
+	  centralization (r13313)
+	  
+	  NOTE: test for ST_ClipByBox2D still fails
+
+2015-03-06 08:53  Sandro Santilli <strk at keybit.net>
+
+	* [r13317] regress/sfcgal/tickets_expected: Update expected results
+	  from sfcgal tests after bbox cache fix
+	  
+	  Ref: #3069
+
+2015-03-06 08:51  Sandro Santilli <strk at keybit.net>
+
+	* [r13316] NEWS, postgis/postgis.sql.in: Simplify geometry type
+	  constraint (#3070)
+
+2015-03-05 19:30  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13315] liblwgeom/lwgeom.c, regress/lwgeom_regress_expected,
+	  regress/summary_expected: Make serialization code more agressive
+	  about not adding boxes to small things
+
+2015-03-05 19:09  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13314] postgis/lwgeom_geos.c: Move free before the report
+
+2015-03-05 19:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13313] liblwgeom/g_box.c, liblwgeom/liblwgeom.h.in,
+	  postgis/lwgeom_geos.c: Centralize gbox calculations in liblwgeom
+
+2015-03-05 18:38  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13312] liblwgeom/lwgeom.c, liblwgeom/lwprint.c,
+	  postgis/geometry_inout.c, postgis/lwgeom_ogc.c: Change more
+	  getpoint2d_p to const point calls
+
+2015-03-05 18:13  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13311] liblwgeom/lwgeodetic.c: Change some more functions to
+	  use getPoint2d_cp
+
+2015-03-05 18:03  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13310] liblwgeom/lwalgorithm.c: Change some getPoint2d_p to
+	  getPoint2d_cp
+
+2015-03-05 17:59  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13309] postgis/lwgeom_in_gml.c: Move some more primitive
+	  pointarray accesses back to liblwgeom where they belong
+
+2015-03-05 17:51  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13308] postgis/lwgeom_geos.c: Replace a few more gserialized
+	  reads with the macro
+
+2015-03-04 21:05  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13307] libpgcommon/lwgeom_pg.h, postgis/geography_inout.c,
+	  postgis/geography_measurement.c, postgis/lwgeom_btree.c,
+	  postgis/lwgeom_dump.c, postgis/lwgeom_dumppoints.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_sfcgal.c, postgis/lwgeom_transform.c,
+	  raster/rt_pg/rtpg_geometry.c, raster/rt_pg/rtpg_mapalgebra.c,
+	  raster/rt_pg/rtpg_pixel.c: Catch remaining detoasting calls and
+	  replace with MACRO
+
+2015-03-04 20:45  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13306] libpgcommon/lwgeom_pg.h, postgis/geography_btree.c,
+	  postgis/geography_inout.c, postgis/geography_measurement.c,
+	  postgis/geometry_inout.c, postgis/gserialized_typmod.c,
+	  postgis/lwgeom_backend_api.c, postgis/lwgeom_box.c,
+	  postgis/lwgeom_box3d.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_spheroid.c, postgis/lwgeom_sqlmm.c: Wrap
+	  de-toastings in a common MACRO
+
+2015-03-04 19:49  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13303] postgis/gserialized_estimate.c: Be (slightly) more
+	  memory friendly when generating statistics
+
+2015-03-04 19:47  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13302] liblwgeom/g_serialized.c, postgis/lwgeom_box.c,
+	  postgis/postgis.sql.in, regress/lwgeom_regress.sql,
+	  regress/lwgeom_regress_expected, regress/tickets_expected: #3069,
+	  bounding boxes added to simple objects on deserialization
+
+2015-03-03 12:42  Sandro Santilli <strk at keybit.net>
+
+	* [r13298] postgis/gserialized_typmod.c, postgis/postgis.sql.in:
+	  Have postgis_typmod_dims return NULL for unconstrained dims
+	  (#3068)
+	  
+	  This is consistent with postgis_constraint_type() also returning
+	  NULL for unconstrained.
+
+2015-03-03 10:26  Sandro Santilli <strk at keybit.net>
+
+	* [r13297] NEWS, libpgcommon/gserialized_gist.c,
+	  libpgcommon/gserialized_gist.h, postgis/gserialized_gist_2d.c,
+	  postgis/gserialized_gist_nd.c: Implement canonical text output
+	  for GIDX and BOX2DF
+	  
+	  They make spatial indexes inspectable with Gevel:
+	  http://www.sai.msu.su/~megera/wiki/Gevel
+
+2015-03-02 17:33  Sandro Santilli <strk at keybit.net>
+
+	* [r13294] postgis/gserialized_gist_nd.c: Fix ND-GiST picksplit
+	  method to split on the best plane (#3058)
+
+2015-02-26 10:54  Sandro Santilli <strk at keybit.net>
+
+	* [r13291] doc/reference_processing.xml: Reduce length of purpose
+	  section for ST_Buffer and ST_Intersection
+	  
+	  Better use description for lengthy text...
+
+2015-02-25 15:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13290] doc/reference_processing.xml: Reorder docs parameters
+
+2015-02-25 15:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13289] NEWS, doc/reference_processing.xml,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwgeom.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in,
+	  regress/Makefile.in, regress/swapordinates.sql,
+	  regress/swapordinates_expected: Add ST_SwapOrdinates function
+	  
+	  This is a generalization of ST_FlipCoordinates
+
+2015-02-25 08:47  Sandro Santilli <strk at keybit.net>
+
+	* [r13288] doc/introduction.xml: Update corporate name OpenGeo ->
+	  Boundless
+
+2015-02-25 08:46  Sandro Santilli <strk at keybit.net>
+
+	* [r13287] NEWS, doc/reference_operator.xml,
+	  postgis/gserialized_gist_nd.c, postgis/postgis.sql.in,
+	  regress/knn.sql, regress/knn_expected, regress/operators.sql,
+	  regress/operators_expected: Add N-dimensional distance operator
+	  with KNN support
+	  
+	  Includes docs and tests
+
+2015-02-24 17:00  Sandro Santilli <strk at keybit.net>
+
+	* [r13284] regress/knn.sql: Include the LIMIT clause in KNN scan
+	  test queries
+
+2015-02-24 17:00  Sandro Santilli <strk at keybit.net>
+
+	* [r13283] regress/regress_index.sql: Re-enable all scan types by
+	  the end of index test
+
+2015-02-24 10:20  Sandro Santilli <strk at keybit.net>
+
+	* [r13281] regress/Makefile.in, regress/knn.sql,
+	  regress/knn_expected, regress/regress_index.sql,
+	  regress/regress_index_expected: Only run KNN tests when building
+	  against PostgreSQL 9.1+
+
+2015-02-24 09:17  Sandro Santilli <strk at keybit.net>
+
+	* [r13279] regress/regress_index.sql,
+	  regress/regress_index_expected: Make sure <#> order is
+	  unambiguous for first result
+	  
+	  Before this commit the first 2 points (or more) all had a
+	  bounding box distance of 0 so actual order was undefined
+
+2015-02-24 08:59  Sandro Santilli <strk at keybit.net>
+
+	* [r13277] regress/regress_index.sql: Fix scan type detection
+	  function to work with nested nodes
+
+2015-02-23 18:27  Sandro Santilli <strk at keybit.net>
+
+	* [r13272] regress/regress_index.sql,
+	  regress/regress_index_expected: Add test for index supported KNN
+	  queries
+
+2015-02-23 18:19  Sandro Santilli <strk at keybit.net>
+
+	* [r13271] regress/regress_index.sql: Do not require XML support in
+	  PostgreSQL for testing purposes
+
+2015-02-23 17:32  Sandro Santilli <strk at keybit.net>
+
+	* [r13270] regress/regress_index.sql,
+	  regress/regress_index_expected: Add test for use of GiST index
+	  with && operator
+
+2015-02-23 14:39  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13269] postgis/lwgeom_ogc.c: #3053: possible bug in
+	  geometry_geometrytype (strncat overlap)
+
+2015-02-23 14:36  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13268] liblwgeom/ptarray.c: #3051, warning: 'end' may be used
+	  uninitialized in this function
+
+2015-02-23 10:12  Sandro Santilli <strk at keybit.net>
+
+	* [r13266] doc/reference_operator.xml: Further reword docs for <->
+	  and <#> operators
+	  
+	  .. makeing clear KNN is only available with PgSQL 9.1+
+
+2015-02-23 10:05  Sandro Santilli <strk at keybit.net>
+
+	* [r13265] postgis/postgis.sql.in: Make <-> and <#> operators also
+	  available with pgsql < 9.1
+
+2015-02-23 09:40  Sandro Santilli <strk at keybit.net>
+
+	* [r13263] doc/extras_topology.xml: Improve documentation for
+	  GetRingEdges (#3046)
+
+2015-02-20 20:31  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13255] liblwgeom/cunit/cu_misc.c, liblwgeom/g_serialized.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_api.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/ptarray.c,
+	  libpgcommon/lwgeom_pg.h, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_ogc.c: Move snap-to-grid functions into lwgeom
+	  where they belong.
+	  Modernize geometry construction to use accessors more
+
+2015-02-20 18:22  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13253] liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h.in,
+	  postgis/lwgeom_ogc.c: #3050 Peak into header for GeometryType
+
+2015-02-20 17:48  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13251] liblwgeom/liblwgeom.h.in, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwout_geojson.c, liblwgeom/lwout_gml.c,
+	  liblwgeom/measures.c, liblwgeom/measures.h, liblwgeom/ptarray.c:
+	  #3049 Use getPoint_cp for read-only accesses
+
+2015-02-20 17:27  Sandro Santilli <strk at keybit.net>
+
+	* [r13250] libpgcommon/gserialized_gist.c,
+	  libpgcommon/gserialized_gist.h, postgis/gserialized_gist_nd.c,
+	  regress/operators.sql, regress/operators_expected: Fix
+	  dimensionality confusion in &&& operator (#3045)
+	  
+	  Also enforce the concept that missing dimensions are infinite,
+	  thus always intersecting present dimensions.
+	  See
+	  http://lists.osgeo.org/pipermail/postgis-devel/2015-February/024759.html
+
+2015-02-20 16:26  Sandro Santilli <strk at keybit.net>
+
+	* [r13249] regress/Makefile.in, regress/size.sql,
+	  regress/size_expected: Add bbox cache size test
+
+2015-02-20 15:18  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13248] NEWS, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/measures.c, liblwgeom/ptarray.c: #3048, speed up
+	  simplify
+
+2015-02-19 16:35  Sandro Santilli <strk at keybit.net>
+
+	* [r13246] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_buildarea.c, liblwgeom/cunit/cu_clean.c,
+	  liblwgeom/cunit/cu_clip_by_rect.c,
+	  liblwgeom/cunit/cu_force_sfs.c, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_in_encoded_polyline.c,
+	  liblwgeom/cunit/cu_in_geojson.c, liblwgeom/cunit/cu_in_twkb.c,
+	  liblwgeom/cunit/cu_in_wkb.c, liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_misc.c, liblwgeom/cunit/cu_node.c,
+	  liblwgeom/cunit/cu_out_encoded_polyline.c,
+	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
+	  liblwgeom/cunit/cu_out_twkb.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/cunit/cu_split.c, liblwgeom/cunit/cu_stringbuffer.c,
+	  liblwgeom/cunit/cu_surface.c, liblwgeom/cunit/cu_triangulate.c,
+	  liblwgeom/cunit/cu_varint.c: Remove spaces and capital letters
+	  from suite names
+	  
+	  I wonder if the suite name should really be the file name,
+	  could work even better...
+
+2015-02-19 16:22  Sandro Santilli <strk at keybit.net>
+
+	* [r13245] regress/operators.sql, regress/operators_expected: Add
+	  tests for ND overlap operator &&&
+
+2015-02-19 15:54  Sandro Santilli <strk at keybit.net>
+
+	* [r13244] regress/operators.sql, regress/operators_expected: Add a
+	  couple of tests for <-> and <#> operators (#3036)
+
+2015-02-19 15:45  Sandro Santilli <strk at keybit.net>
+
+	* [r13243] regress/operators.sql, regress/operators_expected: Add
+	  missing tests for ancient operators
+
+2015-02-19 00:13  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13241] liblwgeom/cunit/README: update readme
+
+2015-02-18 23:35  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13240] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_buildarea.c, liblwgeom/cunit/cu_clean.c,
+	  liblwgeom/cunit/cu_clip_by_rect.c,
+	  liblwgeom/cunit/cu_force_sfs.c, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_in_encoded_polyline.c,
+	  liblwgeom/cunit/cu_in_geojson.c, liblwgeom/cunit/cu_in_twkb.c,
+	  liblwgeom/cunit/cu_in_wkb.c, liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_misc.c, liblwgeom/cunit/cu_node.c,
+	  liblwgeom/cunit/cu_out_encoded_polyline.c,
+	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
+	  liblwgeom/cunit/cu_out_twkb.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/cunit/cu_split.c, liblwgeom/cunit/cu_stringbuffer.c,
+	  liblwgeom/cunit/cu_surface.c, liblwgeom/cunit/cu_triangulate.c,
+	  liblwgeom/cunit/cu_varint.c: Harmonize Suite names
+
+2015-02-18 23:13  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13239] liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_in_wkt.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_tester.c: #3041, add remaining tests
+
+2015-02-18 22:56  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13238] liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, raster/test/cunit/cu_band_basics.c,
+	  raster/test/cunit/cu_band_misc.c,
+	  raster/test/cunit/cu_band_stats.c, raster/test/cunit/cu_gdal.c,
+	  raster/test/cunit/cu_mapalgebra.c, raster/test/cunit/cu_misc.c,
+	  raster/test/cunit/cu_pixtype.c,
+	  raster/test/cunit/cu_raster_basics.c,
+	  raster/test/cunit/cu_raster_geometry.c,
+	  raster/test/cunit/cu_raster_misc.c,
+	  raster/test/cunit/cu_raster_wkb.c,
+	  raster/test/cunit/cu_spatial_relationship.c,
+	  raster/test/cunit/cu_tester.c, raster/test/cunit/cu_tester.h:
+	  #3041, Cunit 2.1-3 breaks testing
+	  Renovate the raster cunit as well
+
+2015-02-18 21:58  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13237] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_buildarea.c, liblwgeom/cunit/cu_clean.c,
+	  liblwgeom/cunit/cu_clip_by_rect.c,
+	  liblwgeom/cunit/cu_force_sfs.c, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geos.c, liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_in_encoded_polyline.c,
+	  liblwgeom/cunit/cu_in_geojson.c, liblwgeom/cunit/cu_in_twkb.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_misc.c, liblwgeom/cunit/cu_node.c,
+	  liblwgeom/cunit/cu_out_encoded_polyline.c,
+	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
+	  liblwgeom/cunit/cu_out_twkb.c, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/cunit/cu_sfcgal.c, liblwgeom/cunit/cu_split.c,
+	  liblwgeom/cunit/cu_stringbuffer.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/cunit/cu_tree.c,
+	  liblwgeom/cunit/cu_triangulate.c, liblwgeom/cunit/cu_varint.c:
+	  #3041, Cunit 2.1-3 breaks testing
+	  This fix is for the liblwgeom cu_tester only, the raster and
+	  other
+	  testers remain to be fixed
+
+2015-02-18 17:27  Sandro Santilli <strk at keybit.net>
+
+	* [r13236] regress/operators.sql: Add note about missing operator
+	  tests
+
+2015-02-18 17:20  Sandro Santilli <strk at keybit.net>
+
+	* [r13235] regress/Makefile.in, regress/operators.sql,
+	  regress/operators_expected, regress/regress.sql,
+	  regress/regress_expected: Extract operators tests from the
+	  generic, legacy "regress" test
+
+2015-02-18 16:46  Sandro Santilli <strk at keybit.net>
+
+	* [r13234] doc/reference_operator.xml: Reword doc for &&& operator
+	  to avoid confusing "ND" with "3D"
+
+2015-02-18 16:32  Sandro Santilli <strk at keybit.net>
+
+	* [r13233] doc/reference_operator.xml: Reword documentation for <->
+	  operator
+	  
+	  Hopefully it's now less confusing
+
+2015-02-18 12:22  Sandro Santilli <strk at keybit.net>
+
+	* [r13232] regress/interrupt.sql: Further raise tolerated interrupt
+	  delay to 250ms (#2989)
+	  
+	  In one of the reported Debbie cases it took ~210ms to
+	  interrupt...
+
+2015-02-18 12:20  Sandro Santilli <strk at keybit.net>
+
+	* [r13231] regress/interrupt.sql: Raise tolerated lateness in
+	  interruption of ST_Segmentize (#2989)
+	  
+	  Tolerance raised from 150 to 200 milliseconds to aim at reducing
+	  false positives on slow machines (ie: Debbie).
+	  
+	  Uninterrupted, the query would take several seconds.
+
+2015-02-18 11:09  Sandro Santilli <strk at keybit.net>
+
+	* [r13230] utils/postgis_proc_upgrade.pl: Support adding operator
+	  class members in minor upgrades
+
+2015-02-17 17:11  Sandro Santilli <strk at keybit.net>
+
+	* [r13229] raster/rt_pg/rtpostgis.sql.in: Pretend raster/geometry
+	  operator ~ never changed (#3039)
+	  
+	  Fix soft-upgrade from 2.1.2.
+
+2015-02-17 11:22  Sandro Santilli <strk at keybit.net>
+
+	* [r13227] loader/getopt.c: Fix warning about unchecked return code
+	  
+	  The code path is actually never hit as far as I can tell
+
+2015-02-17 11:06  Sandro Santilli <strk at keybit.net>
+
+	* [r13226] loader/shp2pgsql-gui.c: Drop use of lw_asprintf
+	  
+	  Also removes a memory leak
+
+2015-02-17 10:42  Sandro Santilli <strk at keybit.net>
+
+	* [r13225] loader/shp2pgsql-gui.c: Fix another typo in recent
+	  rewrite of message handlers
+
+2015-02-17 10:29  Sandro Santilli <strk at keybit.net>
+
+	* [r13224] liblwgeom/lwutil.c, loader/shp2pgsql-gui.c: Fix typo in
+	  recent rewrite of message handlers
+
+2015-02-17 10:23  Sandro Santilli <strk at keybit.net>
+
+	* [r13223] loader/shp2pgsql-gui.c: Remove use of lw_vasprintf from
+	  loader GUI
+
+2015-02-17 10:20  Sandro Santilli <strk at keybit.net>
+
+	* [r13222] liblwgeom/cunit/cu_tester.c: Fix build, providing a
+	  missing macro from recent commit
+
+2015-02-17 10:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13221] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h: Remove
+	  unused vasbappend function from shp2pgsql core
+
+2015-02-17 10:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13220] libpgcommon/lwgeom_pg.c: Remove use of lw_vasprintf from
+	  libpgcommon
+	  
+	  Drops useless heap allocations
+
+2015-02-17 10:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13219] liblwgeom/cunit/cu_tester.c, liblwgeom/lwutil.c: Remove
+	  use of lw_vasprintf from liblwgeom
+	  
+	  Drops useless heap allocations
+
+2015-02-17 10:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13218] raster/rt_pg/rtpostgis.c, raster/test/cunit/cu_tester.c:
+	  Remove use of lw_vasprintf from raster
+	  
+	  reduces useless heap allocations
+
+2015-02-17 09:23  Sandro Santilli <strk at keybit.net>
+
+	* [r13217] raster/rt_pg/rtpostgis.sql.in: Embed availability info
+	  for raster operators
+
+2015-02-17 09:19  Sandro Santilli <strk at keybit.net>
+
+	* [r13216] raster/rt_pg/rtpostgis.sql.in: Embed availability info
+	  for raster types
+
+2015-02-16 20:36  Sandro Santilli <strk at keybit.net>
+
+	* [r13215] postgis/postgis.sql.in, utils/postgis_proc_upgrade.pl:
+	  Add embedded availability info for all operators
+
+2015-02-16 20:16  Sandro Santilli <strk at keybit.net>
+
+	* [r13214] postgis/postgis.sql.in, utils/postgis_proc_upgrade.pl:
+	  Add embedded availability info for all types
+
+2015-02-12 16:58  Sandro Santilli <strk at keybit.net>
+
+	* [r13210] liblwgeom/cunit/cu_tester.c: Fix conditional enabling of
+	  json input unit test
+
+2015-02-11 22:50  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13209] postgis/lwgeom_accum.c: Fix for #3034
+
+2015-02-10 04:41  Regina Obe <lr at pcorp.us>
+
+	* [r13208] .travis.yml: #3032 force eol to be unix LF for this file
+	  and accept mwtoews patch (I'm going to trust he knows what he's
+	  doing with travis better than I do strk check)
+
+2015-02-02 15:45  Sandro Santilli <strk at keybit.net>
+
+	* [r13207] raster/rt_pg/rtpostgis_drop.sql.in: Do not drop
+	  non-obsoleted functions on upgrade (#2038)
+	  
+	  These functions are retained:
+	  ST_Intersection(raster, integer, geometry)
+	  ST_Intersection(geometry,raster)
+
+2015-01-29 20:19  Sandro Santilli <strk at keybit.net>
+
+	* [r13206] NEWS, doc/extras_topology.xml: Document swapping 'edge
+	  crosses node' reported ids (#3022)
+
+2015-01-27 18:16  Sandro Santilli <strk at keybit.net>
+
+	* [r13205] doc/extras_topology.xml,
+	  topology/test/regress/legacy_invalid_expected,
+	  topology/topology.sql.in: ValidateTopology: swap edge_id and
+	  node_id for "edge crosses node" (#3022)
+
+2015-01-25 10:43  Regina Obe <lr at pcorp.us>
+
+	* [r13203] doc/extras_topology.xml: set availability
+
+2015-01-25 08:55  Regina Obe <lr at pcorp.us>
+
+	* [r13202] doc/release_notes.xml: missing 2.1.5 release notes
+
+2015-01-25 07:35  Regina Obe <lr at pcorp.us>
+
+	* [r13201] doc/extras_topology.xml: #3021 table to document the
+	  different error return types (was debating if this belongs in
+	  validatetopology_returntype, but guess better on VAlidateTopology
+	  page (and especially if the return type is reused by other
+	  functions)
+
+2015-01-24 17:43  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13200] raster/test/cunit/cu_band_basics.c: fix up cunit test
+
+2015-01-24 17:27  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13198] raster/rt_pg/rtpg_create.c, raster/rt_pg/rtpostgis.c:
+	  slight cleanup
+
+2015-01-24 17:27  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13197] raster/test/regress/load_outdb-pre.pl,
+	  raster/test/regress/load_outdb-pre.sh,
+	  raster/test/regress/loader/Basic.select.expected,
+	  raster/test/regress/loader/Basic.select.sql,
+	  raster/test/regress/loader/BasicCopy.select.expected,
+	  raster/test/regress/loader/BasicCopy.select.sql,
+	  raster/test/regress/loader/BasicFilename.select.expected,
+	  raster/test/regress/loader/BasicFilename.select.sql,
+	  raster/test/regress/loader/BasicOutDB.select.expected,
+	  raster/test/regress/loader/BasicOutDB.select.sql,
+	  raster/test/regress/loader/Projected.select.expected,
+	  raster/test/regress/loader/Projected.tif,
+	  raster/test/regress/loader/Tiled10x10.select.expected,
+	  raster/test/regress/loader/Tiled10x10.select.sql,
+	  raster/test/regress/loader/Tiled10x10Copy.select.expected,
+	  raster/test/regress/loader/Tiled10x10Copy.select.sql,
+	  raster/test/regress/loader/Tiled8x8.select.expected,
+	  raster/test/regress/loader/Tiled8x8.select.sql,
+	  raster/test/regress/loader/testraster.tif,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_addband_expected,
+	  raster/test/regress/rt_utility_expected: add unit test for #3020.
+	  use rectangular out-db raster
+
+2015-01-24 17:26  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r13196] NEWS, raster/rt_pg/rtpg_create.c: ST_AddBand out-db band
+	  uses width value for height
+
+2015-01-23 14:39  Sandro Santilli <strk at keybit.net>
+
+	* [r13195] doc/html/image_src/st_split01.wkt,
+	  doc/html/image_src/st_split02.wkt,
+	  doc/html/image_src/styles.conf: Tweak images for ST_Split
+	  documentation to be more readable
+	  
+	  Only covers the polygon by line split case
+
+2015-01-22 16:12  Sandro Santilli <strk at keybit.net>
+
+	* [r13194] doc/html/image_src/generator.c: Gracefully handle typos
+	  in style names for docs images
+
+2015-01-21 18:04  Sandro Santilli <strk at keybit.net>
+
+	* [r13193] NEWS: Update list of deprecated signatures
+
+2015-01-21 17:33  Sandro Santilli <strk at keybit.net>
+
+	* [r13192] doc/reference_measure.xml, postgis/postgis.sql.in:
+	  Deprecate ST_3DLength_Spheroid (#2748)
+
+2015-01-21 14:48  Sandro Santilli <strk at keybit.net>
+
+	* [r13189] topology/test/Makefile.in,
+	  topology/test/regress/droptopogeometrycolumn.sql,
+	  topology/test/regress/droptopogeometrycolumn_expected,
+	  topology/topology.sql.in: Allow unregistering layers of corrupted
+	  topologies (#3016)
+	  
+	  Makes topology.layer trigger and DropTopoGeometryColumn tolerant
+	  of topology schemas with no "relation" table.
+	  
+	  Allows using DropTopology to de-register and drop these kind of
+	  corrupted topologies.
+
+2015-01-21 12:24  Sandro Santilli <strk at keybit.net>
+
+	* [r13186] topology/sql/manage/TopologySummary.sql.in,
+	  topology/test/Makefile.in,
+	  topology/test/regress/topologysummary.sql,
+	  topology/test/regress/topologysummary_expected: Avoid exceptions
+	  from TopologySummary (#3015)
+	  
+	  Includes testcase for the function
+
+2015-01-21 11:11  Sandro Santilli <strk at keybit.net>
+
+	* [r13185] raster/test/regress/rt_mapalgebra_expected,
+	  regress/legacy_expected, regress/regress_index_expected,
+	  regress/run_test.pl, regress/sfcgal/legacy_expected,
+	  regress/sfcgal/wmsservers_expected, regress/wmsservers_expected:
+	  Disreguard ALTER responses during testing
+
+2015-01-20 01:11  Regina Obe <lr at pcorp.us>
+
+	* [r13184] doc/reference_measure.xml: take out statements about how
+	  SFCGAL handles Polyhedral surfaces
+
+2015-01-18 09:50  Regina Obe <lr at pcorp.us>
+
+	* [r13183] doc/reference_measure.xml: flag ST_3DIntersects as
+	  overloaded sfcgal function
+
+2015-01-18 09:40  Regina Obe <lr at pcorp.us>
+
+	* [r13182] extensions/upgradeable_versions.mk: #3014: add upgrade
+	  path from 2.1.5
+
+2015-01-18 07:46  Regina Obe <lr at pcorp.us>
+
+	* [r13180] doc/faq_raster.xml: FAQ about 2.0.6, 2.1.3 security
+	  changes for raster
+
+2015-01-16 13:43  Sandro Santilli <strk at keybit.net>
+
+	* [r13179] doc/reference_measure.xml, postgis/postgis.sql.in:
+	  CamelCase-ize ST_DistanceSphere (#2748)
+
+2015-01-15 08:57  Sandro Santilli <strk at keybit.net>
+
+	* [r13178] raster/doc/RFC1-SerializedFormat,
+	  raster/doc/RFC2-WellKnownBinaryFormat: Fill in meta info for RFC
+	  documents
+
+2015-01-11 20:13  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13174] doc/reference_processing.xml, liblwgeom/Makefile.in,
+	  liblwgeom/effectivearea.c, liblwgeom/liblwgeom.h.in,
+	  postgis/lwgeom_functions_analytic.c, postgis/postgis.sql.in: Add
+	  function ST_EffectiveArea, Visvalingam’s algorithm simplification
+	  #2227
+
+2015-01-04 17:08  Sandro Santilli <strk at keybit.net>
+
+	* [r13173] NEWS, doc/reference_measure.xml, postgis/postgis.sql.in,
+	  regress/measures.sql, regress/measures_expected,
+	  regress/tickets.sql, regress/tickets_expected: CamelCase-ize
+	  ST_LengtSpheroid, ST_DistanceSpheroid (#2748)
+
+2015-01-04 16:43  Sandro Santilli <strk at keybit.net>
+
+	* [r13172] NEWS, doc/reference_processing.xml,
+	  postgis/postgis.sql.in, regress/tickets.sql: CamelCase-ize
+	  ST_ShiftLongitude, ST_CombineBbox, ST_FindExtent (#2748)
+
+2015-01-02 17:11  Sandro Santilli <strk at keybit.net>
+
+	* [r13171] regress/run_test.pl: Drop topology schema after topology
+	  extension test (#2138)
+
+2014-12-30 16:55  Sandro Santilli <strk at keybit.net>
+
+	* [r13168] doc/reference_measure.xml: Fix typo, insert a comma
+	  
+	  Thanks Christian Sturm
+
+2014-12-30 09:16  Sandro Santilli <strk at keybit.net>
+
+	* [r13166] topology/sql/sqlmm.sql.in: Allow index scans in edge
+	  splitting and healing queries (#3000)
+	  
+	  Speeds up topology population when input edges intersect.
+	  
+	  A simple test splitting and re-healing an edge in a ~500k edges
+	  topology completes in ~1/10 of the time.
+
+2014-12-29 11:59  Sandro Santilli <strk at keybit.net>
+
+	* [r13165] topology/sql/sqlmm.sql.in: Enhance some comments
+
+2014-12-29 11:08  Sandro Santilli <strk at keybit.net>
+
+	* [r13164] topology/test/regress/st_simplify.sql: Do not rely on
+	  TopoGeometry->Geometry cast in ST_Simplify test
+	  
+	  Makes the test independent from CAST issues
+
+2014-12-29 10:56  Sandro Santilli <strk at keybit.net>
+
+	* [r13163] .gitignore: Ignore raster garden test results
+
+2014-12-17 17:36  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13150] postgis/geography_inout.c: #3009, geography case may
+	  alter tuple values
+
+2014-12-12 21:14  Regina Obe <lr at pcorp.us>
+
+	* [r13148] doc/extras_topology.xml: change title and point to raw
+	  version of vincent's topology pgconf 2012 talk
+
+2014-12-12 21:08  Regina Obe <lr at pcorp.us>
+
+	* [r13146] doc/extras_topology.xml: fix link to vincent's topology
+	  talk -- point to 2012 instead of 2010 one.
+
+2014-12-12 07:25  Regina Obe <lr at pcorp.us>
+
+	* [r13144] doc/extras_topology.xml: missed get to gets correction
+	  in last commit
+
+2014-12-12 06:56  Regina Obe <lr at pcorp.us>
+
+	* [r13142] doc/extras_topology.xml: Grammar corrections from Eric
+	  Theise -
+	  https://github.com/erictheise/postgis/commit/b76aeaf6b2539345d44f3c2d60fbd84625e3467d
+
+2014-12-04 00:25  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13140] liblwgeom/cunit/cu_in_wkt.c: Fix Solaris regression
+	  failure for string representation of 'Infinity'
+
+2014-12-03 23:50  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13139] authors.git, authors.svn: Update emails in authors files
+
+2014-12-03 23:48  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13138] README.postgis: Remove old knowledge from the README
+
+2014-12-03 23:28  Regina Obe <lr at pcorp.us>
+
+	* [r13136] raster/rt_pg/rtpostgis.sql.in: #3006 Numeric overflow
+	  when executing AddRasterConstraints, increased precision to 25,10
+
+2014-12-02 00:33  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13135] doc/Makefile.in, doc/html/image_src/Makefile.in,
+	  extensions/Makefile.in, loader/Makefile.in,
+	  loader/cunit/Makefile.in, postgis/Makefile.in,
+	  raster/Makefile.in: Replace final reference to 'make' with
+	  $(MAKE)
+
+2014-11-14 23:33  Regina Obe <lr at pcorp.us>
+
+	* [r13129] regress/run_test.pl: get rid of redundant DO regress
+
+2014-11-14 23:30  Regina Obe <lr at pcorp.us>
+
+	* [r13128] regress/run_test.pl: #2992: revise DO regular expression
+	  to work under windows as well. This is a revision of r13123
+	  commit.
+
+2014-11-12 17:57  Sandro Santilli <strk at keybit.net>
+
+	* [r13127] doc/extras_topology.xml: Reword documentation for
+	  TopoElement domain
+
+2014-11-11 09:25  Sandro Santilli <strk at keybit.net>
+
+	* [r13125] raster/test/regress/permitted_gdal_drivers_expected,
+	  raster/test/regress/rt_elevation_functions_expected,
+	  raster/test/regress/rt_mapalgebra_expected: Do not expect DO
+	  responses in raster regress
+	  
+	  Fixes testsuite broke by r13123
+
+2014-11-11 09:16  Sandro Santilli <strk at keybit.net>
+
+	* [r13124] regress/interrupt.sql, regress/interrupt_buffer.sql,
+	  regress/interrupt_relate.sql: Reset timer after creating input
+	  tables (#2989)
+
+2014-11-11 09:15  Sandro Santilli <strk at keybit.net>
+
+	* [r13123] regress/run_test.pl: Disreguard DO responses during
+	  testing
+
+2014-11-10 10:25  Sandro Santilli <strk at keybit.net>
+
+	* [r13122] regress/Makefile.in, regress/interrupt.sql,
+	  regress/interrupt_buffer.sql, regress/interrupt_buffer_expected,
+	  regress/interrupt_expected, regress/interrupt_relate.sql,
+	  regress/interrupt_relate_expected: Test relate-based function
+	  interruptibility (#2975)
+	  
+	  Also refactor existing interruptibility tests to avoid failures
+	  due
+	  to lack of latest GEOS version.
+	  
+	  Work funded by CartoDB
+
+2014-11-06 18:41  Sandro Santilli <strk at keybit.net>
+
+	* [r13121] regress/interrupt.sql, regress/interrupt_expected: Allow
+	  interruption to take some more time.
+	  
+	  Also show the lateness when the time test fails.
+	  Hopefully fixes or helps fixing travis build.
+
+2014-11-06 17:22  Sandro Santilli <strk at keybit.net>
+
+	* [r13120] regress/interrupt.sql, regress/interrupt_expected: Add
+	  timing check to interrupt tests
+
+2014-11-05 17:25  Sandro Santilli <strk at keybit.net>
+
+	* [r13119] topology/sql/topogeometry/totopogeom.sql.in: Hush
+	  toTopoGeom debugging NOTICE
+
+2014-10-31 19:23  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13117] regress/out_geometry_expected: Fix regression for GML
+	  output for curvepolygons
+
+2014-10-31 16:20  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13116] liblwgeom/cunit/cu_out_gml.c, liblwgeom/lwout_gml.c:
+	  #2938, fix to include <ring></ring> around curvepolygon rings
+	  (eroualt)
+
+2014-10-31 00:01  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13115] liblwgeom/cunit/cu_out_gml.c, liblwgeom/lwout_gml.c:
+	  #2938 gml export of curvepolygons fix
+
+2014-10-25 09:54  Regina Obe <lr at pcorp.us>
+
+	* [r13114] doc/extras_address_standardizer.xml: more explanation
+
+2014-10-25 09:06  Regina Obe <lr at pcorp.us>
+
+	* [r13113] doc/extras_address_standardizer.xml: put para around
+	  empha
+
+2014-10-25 08:52  Regina Obe <lr at pcorp.us>
+
+	* [r13112] doc/extras_address_standardizer.xml: fill in remaining
+	  tokens
+
+2014-10-25 07:28  Regina Obe <lr at pcorp.us>
+
+	* [r13111] doc/extras_address_standardizer.xml: work in progress -
+	  will reshuffle some things later
+
+2014-10-24 23:27  Regina Obe <lr at pcorp.us>
+
+	* [r13110]
+	  extras/tiger_geocoder/tiger_2011/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql:
+	  #2977 pagc_normalize_address function errors on nulls (changed
+	  function to STRICT to return null on null). Also did the same for
+	  normalize_address and made that also IMMUTABLE STRICT
+
+2014-10-22 16:08  Sandro Santilli <strk at keybit.net>
+
+	* [r13108] regress/Makefile.in: Allow running "make garden" over an
+	  existing "postgis_garden" database
+
+2014-10-22 16:00  Sandro Santilli <strk at keybit.net>
+
+	* [r13107] regress/Makefile.in: Fix typo in "make garden" output
+	  summary
+
+2014-10-22 15:34  Sandro Santilli <strk at keybit.net>
+
+	* [r13106] postgis/lwgeom_geos.c: Complete improvement of
+	  geos-implemented error message from postgis
+	  
+	  These ones did not match my previous regexp :)
+	  See #2970
+
+2014-10-22 14:22  Sandro Santilli <strk at keybit.net>
+
+	* [r13105] NEWS, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwline.c, liblwgeom/lwpoly.c,
+	  liblwgeom/ptarray.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_functions_basic.c, regress/Makefile.in,
+	  regress/interrupt.sql, regress/interrupt_expected: Implement
+	  interruptability of ST_Segmentize(geometry)
+	  
+	  Includes testcases at sql and cunit levels.
+	  Closes #2893
+
+2014-10-22 09:58  Sandro Santilli <strk at keybit.net>
+
+	* [r13104] postgis/lwgeom_geos.c: Improved error message on
+	  geos-implemented functions interruption/timeout
+	  
+	  See #2970
+
+2014-10-22 08:18  Sandro Santilli <strk at keybit.net>
+
+	* [r13103] postgis/postgis_module.c: Uninstall custom INT signal
+	  handler on unload
+	  
+	  NOTE: this is just academic as unloading of module never happens
+	  as of PostgreSQL 9.4+
+
+2014-10-21 14:53  Sandro Santilli <strk at keybit.net>
+
+	* [r13102] .gitignore: Ignore another generated file
+
+2014-10-21 14:51  Sandro Santilli <strk at keybit.net>
+
+	* [r13101] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_api.c: Add a
+	  method to cancel interruption requests in liblwgeom
+
+2014-10-21 10:54  Sandro Santilli <strk at keybit.net>
+
+	* [r13100] .gitignore: Ignore .pdf files (all generated)
+
+2014-10-21 10:08  Sandro Santilli <strk at keybit.net>
+
+	* [r13099] NEWS, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom_api.c,
+	  postgis/postgis_module.c: Add interruptability API to liblwgeom
+
+2014-10-20 17:01  Sandro Santilli <strk at keybit.net>
+
+	* [r13098] doc/Makefile.in: Really use DBLATEX variable
+
+2014-10-20 16:26  Sandro Santilli <strk at keybit.net>
+
+	* [r13097] doc/po/fr/performance_tips.xml.po,
+	  doc/po/it_IT/postgis.xml.po: Further update translations
+	  
+	  Italian was edited locally and already pushed to transifex,
+	  French was edited on transifex and pulled locally.
+
+2014-10-20 15:47  Sandro Santilli <strk at keybit.net>
+
+	* [r13096] doc/po/it_IT/introduction.xml.po,
+	  doc/po/it_IT/reporting.xml.po, doc/po/ko_KR/introduction.xml.po:
+	  Pull updated translations from transifex
+	  
+	  In particular, italian updates in introduction are fetched after
+	  manual editing from the web interface. The "fuzzy" strings were
+	  reported by transifex as "suggestions" and the corresponding
+	  entries were reported as "untranslated".
+
+2014-10-18 14:30  Sandro Santilli <strk at keybit.net>
+
+	* [r13092] doc/Makefile.in, doc/po/ko_KR, doc/po/ko_KR/Makefile,
+	  doc/po/ko_KR/extras.xml.po,
+	  doc/po/ko_KR/extras_address_standardizer.xml.po,
+	  doc/po/ko_KR/extras_historytable.xml.po,
+	  doc/po/ko_KR/extras_tigergeocoder.xml.po,
+	  doc/po/ko_KR/extras_topology.xml.po, doc/po/ko_KR/faq.xml.po,
+	  doc/po/ko_KR/faq_raster.xml.po, doc/po/ko_KR/installation.xml.po,
+	  doc/po/ko_KR/introduction.xml.po,
+	  doc/po/ko_KR/performance_tips.xml.po,
+	  doc/po/ko_KR/postgis.xml.po, doc/po/ko_KR/reference.xml.po,
+	  doc/po/ko_KR/reference_accessor.xml.po,
+	  doc/po/ko_KR/reference_constructor.xml.po,
+	  doc/po/ko_KR/reference_editor.xml.po,
+	  doc/po/ko_KR/reference_exception.xml.po,
+	  doc/po/ko_KR/reference_guc.xml.po,
+	  doc/po/ko_KR/reference_lrs.xml.po,
+	  doc/po/ko_KR/reference_management.xml.po,
+	  doc/po/ko_KR/reference_measure.xml.po,
+	  doc/po/ko_KR/reference_misc.xml.po,
+	  doc/po/ko_KR/reference_operator.xml.po,
+	  doc/po/ko_KR/reference_output.xml.po,
+	  doc/po/ko_KR/reference_processing.xml.po,
+	  doc/po/ko_KR/reference_raster.xml.po,
+	  doc/po/ko_KR/reference_sfcgal.xml.po,
+	  doc/po/ko_KR/reference_transaction.xml.po,
+	  doc/po/ko_KR/reference_type.xml.po,
+	  doc/po/ko_KR/release_notes.xml.po, doc/po/ko_KR/reporting.xml.po,
+	  doc/po/ko_KR/using_postgis_app.xml.po,
+	  doc/po/ko_KR/using_postgis_dataman.xml.po,
+	  doc/po/ko_KR/using_raster_dataman.xml.po: Import Korean
+	  translation from transifex, enable it
+	  
+	  Updated translations were also re-pushed on transifex
+
+2014-10-18 11:48  Sandro Santilli <strk at keybit.net>
+
+	* [r13091] doc/po/it_IT/introduction.xml.po: Review one fuzzy
+	  string in italian translation
+	  
+	  Confirms dropping the "fuzzy" label puts the translation in
+	  actual use
+
+2014-10-18 11:48  Sandro Santilli <strk at keybit.net>
+
+	* [r13090] doc/po/es/extras_address_standardizer.xml.po,
+	  doc/po/es/extras_tigergeocoder.xml.po,
+	  doc/po/es/extras_topology.xml.po, doc/po/es/faq.xml.po,
+	  doc/po/es/faq_raster.xml.po, doc/po/es/installation.xml.po,
+	  doc/po/es/introduction.xml.po, doc/po/es/performance_tips.xml.po,
+	  doc/po/es/reference.xml.po, doc/po/es/reference_accessor.xml.po,
+	  doc/po/es/reference_constructor.xml.po,
+	  doc/po/es/reference_editor.xml.po,
+	  doc/po/es/reference_guc.xml.po, doc/po/es/reference_lrs.xml.po,
+	  doc/po/es/reference_management.xml.po,
+	  doc/po/es/reference_measure.xml.po,
+	  doc/po/es/reference_misc.xml.po,
+	  doc/po/es/reference_operator.xml.po,
+	  doc/po/es/reference_processing.xml.po,
+	  doc/po/es/reference_raster.xml.po,
+	  doc/po/es/reference_sfcgal.xml.po,
+	  doc/po/es/release_notes.xml.po,
+	  doc/po/es/using_postgis_dataman.xml.po,
+	  doc/po/es/using_raster_dataman.xml.po,
+	  doc/po/fr/extras_address_standardizer.xml.po,
+	  doc/po/fr/extras_tigergeocoder.xml.po,
+	  doc/po/fr/extras_topology.xml.po, doc/po/fr/faq.xml.po,
+	  doc/po/fr/faq_raster.xml.po, doc/po/fr/installation.xml.po,
+	  doc/po/fr/introduction.xml.po, doc/po/fr/performance_tips.xml.po,
+	  doc/po/fr/reference.xml.po, doc/po/fr/reference_accessor.xml.po,
+	  doc/po/fr/reference_constructor.xml.po,
+	  doc/po/fr/reference_editor.xml.po,
+	  doc/po/fr/reference_guc.xml.po, doc/po/fr/reference_lrs.xml.po,
+	  doc/po/fr/reference_management.xml.po,
+	  doc/po/fr/reference_measure.xml.po,
+	  doc/po/fr/reference_misc.xml.po,
+	  doc/po/fr/reference_operator.xml.po,
+	  doc/po/fr/reference_processing.xml.po,
+	  doc/po/fr/reference_raster.xml.po,
+	  doc/po/fr/reference_sfcgal.xml.po,
+	  doc/po/fr/release_notes.xml.po,
+	  doc/po/fr/using_postgis_dataman.xml.po,
+	  doc/po/fr/using_raster_dataman.xml.po,
+	  doc/po/it_IT/extras_address_standardizer.xml.po,
+	  doc/po/it_IT/extras_tigergeocoder.xml.po,
+	  doc/po/it_IT/extras_topology.xml.po, doc/po/it_IT/faq.xml.po,
+	  doc/po/it_IT/faq_raster.xml.po, doc/po/it_IT/installation.xml.po,
+	  doc/po/it_IT/introduction.xml.po,
+	  doc/po/it_IT/performance_tips.xml.po,
+	  doc/po/it_IT/reference.xml.po,
+	  doc/po/it_IT/reference_accessor.xml.po,
+	  doc/po/it_IT/reference_constructor.xml.po,
+	  doc/po/it_IT/reference_editor.xml.po,
+	  doc/po/it_IT/reference_guc.xml.po,
+	  doc/po/it_IT/reference_lrs.xml.po,
+	  doc/po/it_IT/reference_management.xml.po,
+	  doc/po/it_IT/reference_measure.xml.po,
+	  doc/po/it_IT/reference_misc.xml.po,
+	  doc/po/it_IT/reference_operator.xml.po,
+	  doc/po/it_IT/reference_processing.xml.po,
+	  doc/po/it_IT/reference_raster.xml.po,
+	  doc/po/it_IT/reference_sfcgal.xml.po,
+	  doc/po/it_IT/release_notes.xml.po,
+	  doc/po/it_IT/using_postgis_dataman.xml.po,
+	  doc/po/it_IT/using_raster_dataman.xml.po,
+	  doc/po/pl/extras_address_standardizer.xml.po,
+	  doc/po/pl/extras_tigergeocoder.xml.po,
+	  doc/po/pl/extras_topology.xml.po, doc/po/pl/faq.xml.po,
+	  doc/po/pl/faq_raster.xml.po, doc/po/pl/installation.xml.po,
+	  doc/po/pl/introduction.xml.po, doc/po/pl/performance_tips.xml.po,
+	  doc/po/pl/reference.xml.po, doc/po/pl/reference_accessor.xml.po,
+	  doc/po/pl/reference_constructor.xml.po,
+	  doc/po/pl/reference_editor.xml.po,
+	  doc/po/pl/reference_guc.xml.po, doc/po/pl/reference_lrs.xml.po,
+	  doc/po/pl/reference_management.xml.po,
+	  doc/po/pl/reference_measure.xml.po,
+	  doc/po/pl/reference_misc.xml.po,
+	  doc/po/pl/reference_operator.xml.po,
+	  doc/po/pl/reference_processing.xml.po,
+	  doc/po/pl/reference_raster.xml.po,
+	  doc/po/pl/reference_sfcgal.xml.po,
+	  doc/po/pl/release_notes.xml.po,
+	  doc/po/pl/using_postgis_dataman.xml.po,
+	  doc/po/pl/using_raster_dataman.xml.po,
+	  doc/po/pt_BR/extras_address_standardizer.xml.po,
+	  doc/po/pt_BR/extras_tigergeocoder.xml.po,
+	  doc/po/pt_BR/extras_topology.xml.po, doc/po/pt_BR/faq.xml.po,
+	  doc/po/pt_BR/faq_raster.xml.po, doc/po/pt_BR/installation.xml.po,
+	  doc/po/pt_BR/introduction.xml.po,
+	  doc/po/pt_BR/performance_tips.xml.po,
+	  doc/po/pt_BR/reference.xml.po,
+	  doc/po/pt_BR/reference_accessor.xml.po,
+	  doc/po/pt_BR/reference_constructor.xml.po,
+	  doc/po/pt_BR/reference_editor.xml.po,
+	  doc/po/pt_BR/reference_guc.xml.po,
+	  doc/po/pt_BR/reference_lrs.xml.po,
+	  doc/po/pt_BR/reference_management.xml.po,
+	  doc/po/pt_BR/reference_measure.xml.po,
+	  doc/po/pt_BR/reference_misc.xml.po,
+	  doc/po/pt_BR/reference_operator.xml.po,
+	  doc/po/pt_BR/reference_processing.xml.po,
+	  doc/po/pt_BR/reference_raster.xml.po,
+	  doc/po/pt_BR/reference_sfcgal.xml.po,
+	  doc/po/pt_BR/release_notes.xml.po,
+	  doc/po/pt_BR/using_postgis_dataman.xml.po,
+	  doc/po/pt_BR/using_raster_dataman.xml.po,
+	  doc/po/templates/extras_address_standardizer.xml.pot,
+	  doc/po/templates/extras_tigergeocoder.xml.pot,
+	  doc/po/templates/extras_topology.xml.pot,
+	  doc/po/templates/faq.xml.pot,
+	  doc/po/templates/faq_raster.xml.pot,
+	  doc/po/templates/installation.xml.pot,
+	  doc/po/templates/introduction.xml.pot,
+	  doc/po/templates/performance_tips.xml.pot,
+	  doc/po/templates/reference.xml.pot,
+	  doc/po/templates/reference_accessor.xml.pot,
+	  doc/po/templates/reference_constructor.xml.pot,
+	  doc/po/templates/reference_editor.xml.pot,
+	  doc/po/templates/reference_guc.xml.pot,
+	  doc/po/templates/reference_lrs.xml.pot,
+	  doc/po/templates/reference_management.xml.pot,
+	  doc/po/templates/reference_measure.xml.pot,
+	  doc/po/templates/reference_misc.xml.pot,
+	  doc/po/templates/reference_operator.xml.pot,
+	  doc/po/templates/reference_processing.xml.pot,
+	  doc/po/templates/reference_raster.xml.pot,
+	  doc/po/templates/reference_sfcgal.xml.pot,
+	  doc/po/templates/release_notes.xml.pot,
+	  doc/po/templates/using_postgis_dataman.xml.pot,
+	  doc/po/templates/using_raster_dataman.xml.pot: Update all
+	  translation files needing to be
+	  
+	  The updated template files _and_ translations have already
+	  been pushed up to Transifex.
+
+2014-10-18 11:46  Sandro Santilli <strk at keybit.net>
+
+	* [r13089] doc/Makefile.in: Make POT creation rule phony,
+	  preventing useless ctime-only changes
+	  
+	  Also adds an "update-pot" rule to just update the pots, with no
+	  merging
+	  of the pos (not really useful if not for debugging)
+
+2014-10-18 09:36  Sandro Santilli <strk at keybit.net>
+
+	* [r13087] doc/.tx/config, doc/Makefile.in, doc/po/README: Update
+	  transifex project url, update tx configuration and README
+
+2014-10-17 16:57  Sandro Santilli <strk at keybit.net>
+
+	* [r13086] doc/Makefile.in, doc/po/pl, doc/po/pl/Makefile,
+	  doc/po/pl/extras.xml.po,
+	  doc/po/pl/extras_address_standardizer.xml.po,
+	  doc/po/pl/extras_historytable.xml.po,
+	  doc/po/pl/extras_tigergeocoder.xml.po,
+	  doc/po/pl/extras_topology.xml.po, doc/po/pl/faq.xml.po,
+	  doc/po/pl/faq_raster.xml.po, doc/po/pl/installation.xml.po,
+	  doc/po/pl/introduction.xml.po, doc/po/pl/performance_tips.xml.po,
+	  doc/po/pl/postgis.xml.po, doc/po/pl/reference.xml.po,
+	  doc/po/pl/reference_accessor.xml.po,
+	  doc/po/pl/reference_constructor.xml.po,
+	  doc/po/pl/reference_editor.xml.po,
+	  doc/po/pl/reference_exception.xml.po,
+	  doc/po/pl/reference_guc.xml.po, doc/po/pl/reference_lrs.xml.po,
+	  doc/po/pl/reference_management.xml.po,
+	  doc/po/pl/reference_measure.xml.po,
+	  doc/po/pl/reference_misc.xml.po,
+	  doc/po/pl/reference_operator.xml.po,
+	  doc/po/pl/reference_output.xml.po,
+	  doc/po/pl/reference_processing.xml.po,
+	  doc/po/pl/reference_raster.xml.po,
+	  doc/po/pl/reference_sfcgal.xml.po,
+	  doc/po/pl/reference_transaction.xml.po,
+	  doc/po/pl/reference_type.xml.po, doc/po/pl/release_notes.xml.po,
+	  doc/po/pl/reporting.xml.po, doc/po/pl/using_postgis_app.xml.po,
+	  doc/po/pl/using_postgis_dataman.xml.po,
+	  doc/po/pl/using_raster_dataman.xml.po: Import Polish translation
+	  from transifex, enable it
+	  
+	  Updated translations were also re-pushed on transifex
+
+2014-10-17 15:26  Sandro Santilli <strk at keybit.net>
+
+	* [r13085] doc/Makefile.in, doc/po/README,
+	  doc/po/it_IT/reporting.xml.po: Add 'push-tx' Makefile rule,
+	  update README with suggested workflow
+	  
+	  Also commit what resulted changed after a subsequent 'pull-tx'
+	  run
+
+2014-10-17 10:41  Sandro Santilli <strk at keybit.net>
+
+	* [r13084] doc/Makefile.in, doc/po/es/using_postgis_dataman.xml.po:
+	  Add "pull-tx" rule in Makefile
+	  
+	  The rule pulls all translations, then formats them to avoid style
+	  changes. After running the rule you can check what changed using
+	  your revision control system tools (git diff here).
+	  
+	  The commit also updates the only change that was pulled by the
+	  rule
+	  itself.
+
+2014-10-15 16:46  Sandro Santilli <strk at keybit.net>
+
+	* [r13082] doc/po/README: Add hint about using --skip with tx push
+	  -t
+
+2014-10-15 16:46  Sandro Santilli <strk at keybit.net>
+
+	* [r13081] doc/Makefile.in, doc/po/es/extras.xml.po,
+	  doc/po/es/extras_address_standardizer.xml.po,
+	  doc/po/es/extras_historytable.xml.po,
+	  doc/po/es/extras_tigergeocoder.xml.po,
+	  doc/po/es/extras_topology.xml.po, doc/po/es/faq.xml.po,
+	  doc/po/es/faq_raster.xml.po, doc/po/es/installation.xml.po,
+	  doc/po/es/introduction.xml.po, doc/po/es/performance_tips.xml.po,
+	  doc/po/es/postgis.xml.po, doc/po/es/reference.xml.po,
+	  doc/po/es/reference_accessor.xml.po,
+	  doc/po/es/reference_constructor.xml.po,
+	  doc/po/es/reference_editor.xml.po,
+	  doc/po/es/reference_exception.xml.po,
+	  doc/po/es/reference_guc.xml.po, doc/po/es/reference_lrs.xml.po,
+	  doc/po/es/reference_management.xml.po,
+	  doc/po/es/reference_measure.xml.po,
+	  doc/po/es/reference_misc.xml.po,
+	  doc/po/es/reference_operator.xml.po,
+	  doc/po/es/reference_output.xml.po,
+	  doc/po/es/reference_processing.xml.po,
+	  doc/po/es/reference_raster.xml.po,
+	  doc/po/es/reference_sfcgal.xml.po,
+	  doc/po/es/reference_transaction.xml.po,
+	  doc/po/es/reference_type.xml.po, doc/po/es/release_notes.xml.po,
+	  doc/po/es/reporting.xml.po, doc/po/es/using_postgis_app.xml.po,
+	  doc/po/es/using_postgis_dataman.xml.po,
+	  doc/po/es/using_raster_dataman.xml.po: Update spanish language
+	  files (make update-po), enable it
+
+2014-10-15 16:45  Sandro Santilli <strk at keybit.net>
+
+	* [r13080] doc/po/es/extras_tigergeocoder.xml.po,
+	  doc/po/es/installation.xml.po, doc/po/es/performance_tips.xml.po,
+	  doc/po/es/reference_management.xml.po,
+	  doc/po/es/using_postgis_dataman.xml.po,
+	  doc/po/es/using_raster_dataman.xml.po: Fix html tags in spanish
+	  translation
+	  
+	  Classes of errors found:
+	  - Translated tags ( <command> to <comando> )
+	  - Missing angular brackets ( varname>x</varname> )
+	  - Invalid space in closing tag ( </ ulink> )
+
+2014-10-15 16:45  Sandro Santilli <strk at keybit.net>
+
+	* [r13079] doc/po/es, doc/po/es/Makefile, doc/po/es/extras.xml.po,
+	  doc/po/es/extras_address_standardizer.xml.po,
+	  doc/po/es/extras_historytable.xml.po,
+	  doc/po/es/extras_tigergeocoder.xml.po,
+	  doc/po/es/extras_topology.xml.po, doc/po/es/faq.xml.po,
+	  doc/po/es/faq_raster.xml.po, doc/po/es/installation.xml.po,
+	  doc/po/es/introduction.xml.po, doc/po/es/performance_tips.xml.po,
+	  doc/po/es/postgis.xml.po, doc/po/es/reference.xml.po,
+	  doc/po/es/reference_accessor.xml.po,
+	  doc/po/es/reference_constructor.xml.po,
+	  doc/po/es/reference_editor.xml.po,
+	  doc/po/es/reference_exception.xml.po,
+	  doc/po/es/reference_guc.xml.po, doc/po/es/reference_lrs.xml.po,
+	  doc/po/es/reference_management.xml.po,
+	  doc/po/es/reference_measure.xml.po,
+	  doc/po/es/reference_misc.xml.po,
+	  doc/po/es/reference_operator.xml.po,
+	  doc/po/es/reference_output.xml.po,
+	  doc/po/es/reference_processing.xml.po,
+	  doc/po/es/reference_raster.xml.po,
+	  doc/po/es/reference_sfcgal.xml.po,
+	  doc/po/es/reference_transaction.xml.po,
+	  doc/po/es/reference_type.xml.po, doc/po/es/release_notes.xml.po,
+	  doc/po/es/reporting.xml.po, doc/po/es/using_postgis_app.xml.po,
+	  doc/po/es/using_postgis_dataman.xml.po,
+	  doc/po/es/using_raster_dataman.xml.po: Import spanish translation
+	  from transifex, add Makefile
+
+2014-10-15 15:50  Sandro Santilli <strk at keybit.net>
+
+	* [r13078] doc/po/it_IT/extras_address_standardizer.xml.po,
+	  doc/po/it_IT/reference_guc.xml.po,
+	  doc/po/pt_BR/extras_address_standardizer.xml.po,
+	  doc/po/pt_BR/reference_guc.xml.po: Add missing new translation
+	  italian/brazilian files
+
+2014-10-15 15:49  Sandro Santilli <strk at keybit.net>
+
+	* [r13077] doc/po/fr/extras.xml.po,
+	  doc/po/fr/extras_address_standardizer.xml.po,
+	  doc/po/fr/extras_historytable.xml.po,
+	  doc/po/fr/extras_tigergeocoder.xml.po,
+	  doc/po/fr/extras_topology.xml.po, doc/po/fr/faq.xml.po,
+	  doc/po/fr/faq_raster.xml.po, doc/po/fr/installation.xml.po,
+	  doc/po/fr/introduction.xml.po, doc/po/fr/performance_tips.xml.po,
+	  doc/po/fr/postgis.xml.po, doc/po/fr/reference.xml.po,
+	  doc/po/fr/reference_accessor.xml.po,
+	  doc/po/fr/reference_constructor.xml.po,
+	  doc/po/fr/reference_editor.xml.po,
+	  doc/po/fr/reference_exception.xml.po,
+	  doc/po/fr/reference_guc.xml.po, doc/po/fr/reference_lrs.xml.po,
+	  doc/po/fr/reference_management.xml.po,
+	  doc/po/fr/reference_measure.xml.po,
+	  doc/po/fr/reference_misc.xml.po,
+	  doc/po/fr/reference_operator.xml.po,
+	  doc/po/fr/reference_output.xml.po,
+	  doc/po/fr/reference_processing.xml.po,
+	  doc/po/fr/reference_raster.xml.po,
+	  doc/po/fr/reference_sfcgal.xml.po,
+	  doc/po/fr/reference_transaction.xml.po,
+	  doc/po/fr/reference_type.xml.po, doc/po/fr/release_notes.xml.po,
+	  doc/po/fr/reporting.xml.po, doc/po/fr/using_postgis_app.xml.po,
+	  doc/po/fr/using_postgis_dataman.xml.po,
+	  doc/po/fr/using_raster_dataman.xml.po: Update french language
+	  files (make update-po)
+
+2014-10-15 15:49  Sandro Santilli <strk at keybit.net>
+
+	* [r13076] doc/po/fr/faq.xml.po: Put msgstr on a single line
+	  
+	  Transifex does not like newlines in quoted text (fails on tx
+	  push).
+
+2014-10-15 15:49  Sandro Santilli <strk at keybit.net>
+
+	* [r13075] doc/po/fr/faq.xml.po, doc/po/fr/performance_tips.xml.po:
+	  Fix html tags in french translation
+
+2014-10-15 15:48  Sandro Santilli <strk at keybit.net>
+
+	* [r13074] doc/Makefile.in, doc/po/fr, doc/po/fr/Makefile,
+	  doc/po/fr/extras.xml.po,
+	  doc/po/fr/extras_address_standardizer.xml.po,
+	  doc/po/fr/extras_historytable.xml.po,
+	  doc/po/fr/extras_tigergeocoder.xml.po,
+	  doc/po/fr/extras_topology.xml.po, doc/po/fr/faq.xml.po,
+	  doc/po/fr/faq_raster.xml.po, doc/po/fr/installation.xml.po,
+	  doc/po/fr/introduction.xml.po, doc/po/fr/performance_tips.xml.po,
+	  doc/po/fr/postgis.xml.po, doc/po/fr/reference.xml.po,
+	  doc/po/fr/reference_accessor.xml.po,
+	  doc/po/fr/reference_constructor.xml.po,
+	  doc/po/fr/reference_editor.xml.po,
+	  doc/po/fr/reference_exception.xml.po,
+	  doc/po/fr/reference_guc.xml.po, doc/po/fr/reference_lrs.xml.po,
+	  doc/po/fr/reference_management.xml.po,
+	  doc/po/fr/reference_measure.xml.po,
+	  doc/po/fr/reference_misc.xml.po,
+	  doc/po/fr/reference_operator.xml.po,
+	  doc/po/fr/reference_output.xml.po,
+	  doc/po/fr/reference_processing.xml.po,
+	  doc/po/fr/reference_raster.xml.po,
+	  doc/po/fr/reference_sfcgal.xml.po,
+	  doc/po/fr/reference_transaction.xml.po,
+	  doc/po/fr/reference_type.xml.po, doc/po/fr/release_notes.xml.po,
+	  doc/po/fr/reporting.xml.po, doc/po/fr/using_postgis_app.xml.po,
+	  doc/po/fr/using_postgis_dataman.xml.po,
+	  doc/po/fr/using_raster_dataman.xml.po: Import french translation
+	  from transifex, and enable its build
+
+2014-10-14 23:00  Sandro Santilli <strk at keybit.net>
+
+	* [r13073] doc/.tx, doc/.tx/config, doc/Makefile.in, doc/po/README:
+	  Add transifex configuration and a few words about using `tx'
+	  
+	  See http://docs.transifex.com/developer/client/set
+
+2014-10-14 23:00  Sandro Santilli <strk at keybit.net>
+
+	* [r13072] doc/po/it_IT/extras.xml.po, doc/po/it_IT/postgis.xml.po,
+	  doc/po/pt_BR/extras.xml.po, doc/po/pt_BR/postgis.xml.po,
+	  doc/po/templates/extras.xml.pot,
+	  doc/po/templates/postgis.xml.pot: Regenerate extras and postgis
+	  pots/po after recent update of sources
+
+2014-10-14 22:05  Sandro Santilli <strk at keybit.net>
+
+	* [r13071] doc/po/it_IT/reporting.xml.po: Fix unclosed tag in
+	  italian translation
+
+2014-10-14 22:00  Sandro Santilli <strk at keybit.net>
+
+	* [r13070] doc/po/pt_BR/faq_raster.xml.po: Fix malformed <ulink>
+	  and </ulink> tags in po_BR translation
+
+2014-10-14 21:57  Sandro Santilli <strk at keybit.net>
+
+	* [r13069] doc/po/it_IT/faq.xml.po, doc/po/it_IT/faq_raster.xml.po,
+	  doc/po/it_IT/introduction.xml.po,
+	  doc/po/it_IT/performance_tips.xml.po,
+	  doc/po/it_IT/postgis.xml.po, doc/po/it_IT/reference.xml.po,
+	  doc/po/it_IT/reference_management.xml.po,
+	  doc/po/it_IT/reference_output.xml.po,
+	  doc/po/it_IT/reference_sfcgal.xml.po,
+	  doc/po/it_IT/reference_type.xml.po,
+	  doc/po/it_IT/reporting.xml.po,
+	  doc/po/it_IT/using_raster_dataman.xml.po,
+	  doc/po/pt_BR/extras_historytable.xml.po, doc/po/pt_BR/faq.xml.po,
+	  doc/po/pt_BR/faq_raster.xml.po, doc/po/pt_BR/postgis.xml.po,
+	  doc/po/pt_BR/reference.xml.po,
+	  doc/po/pt_BR/reference_output.xml.po,
+	  doc/po/pt_BR/reference_sfcgal.xml.po,
+	  doc/po/templates/reference_output.xml.pot: Update language files
+	  with "make update-po"
+
+2014-10-14 18:25  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13068] doc/reference_output.xml: Update url to
+	  twkb-specification and client example
+
+2014-10-14 10:05  Sandro Santilli <strk at keybit.net>
+
+	* [r13067] doc/extras.xml, doc/postgis.xml: Move topology and
+	  address standardizer entities out of extra
+	  
+	  Fixes generation of localization template for extra.xml
+
+2014-10-13 19:42  Regina Obe <lr at pcorp.us>
+
+	* [r13066] doc/po/it_IT/faq.xml.po, doc/po/it_IT/faq_raster.xml.po,
+	  doc/po/it_IT/introduction.xml.po,
+	  doc/po/it_IT/performance_tips.xml.po,
+	  doc/po/it_IT/postgis.xml.po, doc/po/it_IT/reference.xml.po,
+	  doc/po/it_IT/reference_management.xml.po,
+	  doc/po/it_IT/reference_sfcgal.xml.po,
+	  doc/po/it_IT/reference_type.xml.po,
+	  doc/po/it_IT/reporting.xml.po,
+	  doc/po/it_IT/using_raster_dataman.xml.po,
+	  doc/po/pt_BR/extras_historytable.xml.po, doc/po/pt_BR/faq.xml.po,
+	  doc/po/pt_BR/faq_raster.xml.po, doc/po/pt_BR/postgis.xml.po,
+	  doc/po/pt_BR/reference.xml.po,
+	  doc/po/pt_BR/reference_sfcgal.xml.po: files from transifex
+	  largely already translated
+
+2014-10-13 19:28  Sandro Santilli <strk at keybit.net>
+
+	* [r13065] doc/reference_guc.xml: Use double-quotes in link url
+	  attribute
+	  
+	  Single quote was confusing po2xml
+
+2014-10-13 18:08  Regina Obe <lr at pcorp.us>
+
+	* [r13064] doc/reference_guc.xml: get rid of windows breaks
+
+2014-10-13 18:07  Regina Obe <lr at pcorp.us>
+
+	* [r13063] doc/extras_address_standardizer.xml: get rid of windows
+	  \r
+
+2014-10-13 18:06  Regina Obe <lr at pcorp.us>
+
+	* [r13062] doc/po/templates/extras_address_standardizer.xml.pot:
+	  get rid of line breaks before \n
+
+2014-10-13 18:00  Regina Obe <lr at pcorp.us>
+
+	* [r13061] doc/po/templates/reference_guc.xml.pot: Get rid of line
+	  breaks before \n. Evidentally transifex thinks invalid and that
+	  might be why debbie is whining too.
+
+2014-10-10 23:36  Regina Obe <lr at pcorp.us>
+
+	* [r13059] doc/po/templates/reference_guc.xml.pot: add missing pot.
+	  Still seems to wrror out with some sort of xml issue though
+
+2014-10-10 23:26  Regina Obe <lr at pcorp.us>
+
+	* [r13058] doc/po/templates/extras_address_standardizer.xml.pot:
+	  Add missing pot
+
+2014-10-10 23:07  Regina Obe <lr at pcorp.us>
+
+	* [r13057] doc/Makefile.in: add missing xml files to pot
+	  xml_sources source
+
+2014-10-10 14:54  Sandro Santilli <strk at keybit.net>
+
+	* [r13056] doc/html/image_src/generator.c: Include sys/wait.h to
+	  have access to WEXITSTATUS (#2962)
+
+2014-10-10 10:24  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13055] liblwgeom/lwout_twkb.c: Fix a precission problem in
+	  twkb.
+	  Thanks Javier Santana!
+
+2014-10-10 09:23  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13054] postgis/lwgeom_inout.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix for #2956 Thanks strk
+
+2014-10-09 18:24  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13053] doc/reference_constructor.xml, doc/reference_output.xml,
+	  liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_in_twkb.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwin_twkb.c,
+	  liblwgeom/varint.c, liblwgeom/varint.h, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_inout.c, postgis/postgis.sql.in: Add GeomFromTWKB
+	  #2917
+
+2014-10-08 10:46  Sandro Santilli <strk at keybit.net>
+
+	* [r13052] .gitignore: Ignore files generated under
+	  address_standardizer extension
+
+2014-10-08 10:43  Sandro Santilli <strk at keybit.net>
+
+	* [r13051] configure.ac: Fix --without-address-standardizer switch
+
+2014-10-08 04:15  Regina Obe <lr at pcorp.us>
+
+	* [r13050] doc/installation.xml: get rid of obsolete statements
+
+2014-10-08 03:22  Regina Obe <lr at pcorp.us>
+
+	* [r13049] doc/installation.xml: #2877 address_standardizer
+	  auto-building as part of configure. document switches to override
+	  pcre path.
+
+2014-10-08 03:03  Regina Obe <lr at pcorp.us>
+
+	* [r13048] extensions/address_standardizer/Makefile.in: #2877
+	  remark out build-steps for Regexp:Assemble dependencies
+
+2014-10-08 02:55  Regina Obe <lr at pcorp.us>
+
+	* [r13047] extensions/address_standardizer/Makefile.in: #2877 try
+	  tab instead of spaces
+
+2014-10-08 02:46  Regina Obe <lr at pcorp.us>
+
+	* [r13046] extensions/address_standardizer/Makefile.in: typo
+
+2014-10-08 02:42  Regina Obe <lr at pcorp.us>
+
+	* [r13045] extensions/address_standardizer/Makefile.in: #2877 don't
+	  get rid of data header generated files during dist-clean (they
+	  can't be rebuilt if perl Regex::Assemble is not installed
+
+2014-10-08 02:14  Regina Obe <lr at pcorp.us>
+
+	* [r13044] configure.ac: #2877 Revise configure to build make
+	  scripts and address_standardizer extension - move pcre flags
+	  check before cppflags build etc so gets included
+
+2014-10-08 01:50  Regina Obe <lr at pcorp.us>
+
+	* [r13043] configure.ac, extensions/Makefile.in: #2877 Revise
+	  configure to build make scripts and address_standardizer
+	  extension
+
+2014-10-07 14:11  Regina Obe <lr at pcorp.us>
+
+	* [r13041]
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql:
+	  #2958 reverse_geocode erroring ERROR: invalid input syntax for
+	  type numeric: " " (revised patch to not return 0 for non-numbered
+	  roads)
+
+2014-10-07 13:38  Regina Obe <lr at pcorp.us>
+
+	* [r13039]
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql:
+	  #2958 reverse_geocode erroring ERROR: invalid input syntax for
+	  type numeric: " "
+
+2014-10-07 03:55  Regina Obe <lr at pcorp.us>
+
+	* [r13038] doc/reference_raster.xml: experiment with color coding
+
+2014-10-06 16:28  Sandro Santilli <strk at keybit.net>
+
+	* [r13037] doc/reference_processing.xml: ST_Simplify is not
+	  implemented by GEOS
+
+2014-10-05 00:05  Regina Obe <lr at pcorp.us>
+
+	* [r13035] doc/reference_output.xml: put back most common protos of
+	  ST_AsGML so docs aren't so confusing when they demonstrate their
+	  use
+
+2014-10-03 09:34  Sandro Santilli <strk at keybit.net>
+
+	* [r13034] postgis/lwgeom_geos.c, regress/clipbybox2d.sql,
+	  regress/clipbybox2d_expected: ST_ClipByBox2D: do not use
+	  gbox_overlaps with BOX2DF objects
+	  
+	  Fixes use of uninitialized memory (#2954)
+
+2014-10-02 20:54  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13033] liblwgeom/cunit/cu_out_twkb.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwout_twkb.c, liblwgeom/lwout_twkb.h: Fix for #2946 and
+	  some empty geometry fixes
+
+2014-10-02 17:32  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13030] postgis/gserialized_estimate.c: #2953, Unable to compute
+	  stats for some features
+
+2014-10-02 15:49  Sandro Santilli <strk at keybit.net>
+
+	* [r13029] doc/reference_output.xml: Fix typo in documentation for
+	  ST_AsEncodedPolyline
+
+2014-10-02 08:03  Sandro Santilli <strk at keybit.net>
+
+	* [r13028] liblwgeom/cunit/cu_clip_by_rect.c,
+	  postgis/lwgeom_geos.c, regress/clipbybox2d.sql,
+	  regress/clipbybox2d_expected: Fix memory error in ST_ClipByBox2D
+	  (#2950)
+
+2014-10-01 23:08  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13027] postgis/gserialized_typmod.c: #2941, Geography can
+	  create a non-4326 geography but geography typmod won't allow it
+
+2014-10-01 14:36  Sandro Santilli <strk at keybit.net>
+
+	* [r13025] liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_geos_clean.c: Fix yet another memory leak in
+	  lwgeom_make_valid (#2947)
+	  
+	  The leak occurs on invalid single-component collection input.
+
+2014-10-01 14:07  Sandro Santilli <strk at keybit.net>
+
+	* [r13023] liblwgeom/cunit/cu_force_sfs.c,
+	  liblwgeom/lwsegmentize.c: Fix leaks in lwcurvepoly_segmentize and
+	  its tester
+
+2014-10-01 13:54  Sandro Santilli <strk at keybit.net>
+
+	* [r13021] liblwgeom/lwcurvepoly.c, liblwgeom/measures.c: Fix
+	  memory leak in lw_dist2d_poly_curvepoly and
+	  lw_dist2d_circstring_poly
+	  
+	  Also clear the memory management for
+	  lwcurvepoly_construct_from_lwpoly .
+	  Fixes #2949.
+
+2014-10-01 13:26  Sandro Santilli <strk at keybit.net>
+
+	* [r13020] liblwgeom/cunit/cu_out_twkb.c: Remove memory leaks from
+	  TWKB unit tester
+
+2014-10-01 13:13  Sandro Santilli <strk at keybit.net>
+
+	* [r13019] liblwgeom/lwgeom_geos_node.c,
+	  liblwgeom/lwgeom_geos_split.c, raster/rt_core/rt_geometry.c,
+	  raster/rt_core/rt_raster.c,
+	  raster/rt_core/rt_spatial_relationship.c: Adapt the rest of the
+	  code to the change in LWGEOM2GEOS function
+	  
+	  Fixes #2948 (introduced by previous commit)
+
+2014-10-01 12:35  Sandro Santilli <strk at keybit.net>
+
+	* [r13018] liblwgeom/lwgeom_geos.c, liblwgeom/lwgeom_geos.h,
+	  liblwgeom/lwgeom_geos_clean.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos_prepared.c, regress/clipbybox2d.sql,
+	  regress/clipbybox2d_expected: Add support for auto-fix geom
+	  structure for GEOS conversions
+	  
+	  Fixes ST_ClipByBox2D run with non-closed polygon rings in input
+	  (#2945)
+
+2014-09-30 16:31  Sandro Santilli <strk at keybit.net>
+
+	* [r13013] utils/postgis_proc_upgrade.pl: Drop and recreate
+	  aggregates when upgrading to the same dev version
+	  
+	  See #2944 for the rationale
+
+2014-09-30 13:44  Sandro Santilli <strk at keybit.net>
+
+	* [r13012] configure.ac: Reduce expected requirements for building
+	  comments and pdf docs
+
+2014-09-30 04:16  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13009] liblwgeom/lwout_twkb.c: This should repair the build but
+	  the emty geometry twkb is still corrupt
+
+2014-09-30 03:05  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r13008] doc/reference_output.xml, liblwgeom/lwout_twkb.c,
+	  liblwgeom/lwout_twkb.h, postgis/postgis.sql.in,
+	  postgis/postgis_drop_before.sql: Add support for bboxes in twkb
+
+2014-09-29 16:32  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13007] postgis/postgis.sql.in: #2943, replace && with ~ and @
+	  in places it makes sense for wrapper functions
+
+2014-09-29 15:52  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r13006] postgis: Add an ignore
+
+2014-09-29 07:28  Sandro Santilli <strk at keybit.net>
+
+	* [r13005] topology/sql/predicates.sql.in: Fix syntax error in
+	  RAISE calls (#2942)
+	  
+	  PostgreSQL 9.5 doesn't tolerate them...
+
+2014-09-26 09:16  Sandro Santilli <strk at keybit.net>
+
+	* [r13000] regress/Makefile.in: Fix regression suite to skip
+	  ST_ClipByBox2D testing unless available
+	  
+	  .. it was a typo (requires GEOS 3.5, not 3.4)
+
+2014-09-26 08:51  Sandro Santilli <strk at keybit.net>
+
+	* [r12999] NEWS, doc/reference_processing.xml,
+	  liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_clip_by_rect.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeom_geos.c, postgis/lwgeom_geos.c,
+	  postgis/postgis.sql.in, regress/Makefile.in,
+	  regress/clipbybox2d.sql, regress/clipbybox2d_expected: Add
+	  ST_ClipByBox2D and lwgeom_clip_by_rect (#2939)
+	  
+	  Includes testcases and documentation
+	  Requires GEOS-3.5.0+
+
+2014-09-25 15:01  Sandro Santilli <strk at keybit.net>
+
+	* [r12998] liblwgeom/lwcollection.c: Fix unused variable warning
+
+2014-09-25 15:01  Sandro Santilli <strk at keybit.net>
+
+	* [r12997] liblwgeom/lwutil.c: Include <ctypes.h> for declaration
+	  of tolower() function
+
+2014-09-22 18:32  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12995] postgis/gserialized_gist_2d.c,
+	  postgis/lwgeom_functions_basic.c: Remove another call of
+	  liblwgeom_internal.h
+
+2014-09-22 09:02  Sandro Santilli <strk at keybit.net>
+
+	* [r12993] liblwgeom/lwcollection.c: Reduce default paranoia on
+	  geometry collection construction
+	  
+	  Significantly speeds up creation of large collection of
+	  geometries.
+	  Closes #2933
+
+2014-09-19 21:28  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12992] extensions/address_standardizer: Ignore some build
+	  artifacts
+
+2014-09-19 19:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12989] configure.ac, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwutil.c, postgis_config.h.in: #2934, support
+	  strcasestr for platforms that (passing understanding) do not have
+	  it
+
+2014-09-19 16:27  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12988] liblwgeom/g_box.c, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic_tree.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/measures.c,
+	  liblwgeom/measures3d.c, postgis/gserialized_gist_2d.c,
+	  postgis/lwgeom_backend_api.c, postgis/lwgeom_functions_basic.c:
+	  Replace MAXFLOAT with more "standard" FLT_MAX
+
+2014-09-18 18:27  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12987] loader/shp2pgsql-gui.c: Quiet warnings from clang
+
+2014-09-18 16:22  Sandro Santilli <strk at keybit.net>
+
+	* [r12986] liblwgeom/ptarray.c: Update comment above
+	  getPoint2d_internal, it is safe to cast now
+
+2014-09-17 21:46  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12985] configure.ac, liblwgeom/cunit/cu_in_geojson.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/measures.c, liblwgeom/measures.h,
+	  liblwgeom/measures3d.c, liblwgeom/measures3d.h,
+	  postgis/lwgeom_box.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos_clean.c: Remove many references to
+	  liblwgeom_internal.h outside liblwgeom,
+	  and quiet some nagging warnings.
+
+2014-09-17 17:13  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12982] postgis/lwgeom_box.c: #2931, BOX representation is case
+	  sensitive
+
+2014-09-17 16:08  Sandro Santilli <strk at keybit.net>
+
+	* [r12981] doc/reference_processing.xml: Link ST_UnaryUnion with
+	  ST_Node, fix See Also section formatting
+
+2014-09-11 16:36  Sandro Santilli <strk at keybit.net>
+
+	* [r12973] doc/reference_raster.xml: Remove ST_Tile references from
+	  ST_Retile docs
+	  
+	  ... wasn't very useful that way ...
+
+2014-09-11 16:33  Sandro Santilli <strk at keybit.net>
+
+	* [r12972] doc/reference_raster.xml: Move ST_Retile documentation
+	  under "raster constructors"
+	  
+	  Add note about difference from ST_Tile, link ST_Tile and
+	  ST_Resample
+
+2014-09-11 03:57  Regina Obe <lr at pcorp.us>
+
+	* [r12968] NEWS, doc/release_notes.xml,
+	  extensions/upgradeable_versions.mk: cut in missing 2.1.3 and
+	  2.1.4 release notes, fix date type in 2.0.5, add 2.1.4 to
+	  extension upgrade mix
+
+2014-09-09 21:14  Regina Obe <lr at pcorp.us>
+
+	* [r12960]
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress,
+	  extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress.sql:
+	  #2927 reverse geocode ammendment - found bug introduced. Also
+	  added in regression test
+
+2014-09-09 20:51  Regina Obe <lr at pcorp.us>
+
+	* [r12959]
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql:
+	  #2927 Get rid of tiger. prefix. Not that it affects anything
+
+2014-09-09 20:48  Regina Obe <lr at pcorp.us>
+
+	* [r12958]
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql:
+	  #2927 reverse geocode not filling in direction prefix and get rid
+	  of ST_Line_Locate_Point deprecated call.
+
+2014-09-08 21:24  Regina Obe <lr at pcorp.us>
+
+	* [r12956] doc/reference_misc.xml: #2762 renamed
+	  ST_Estimated_Extent page to ST_EstimatedExtent
+
+2014-09-07 17:10  Regina Obe <lr at pcorp.us>
+
+	* [r12953] doc/reference_raster.xml: wrong function (non-existent
+	  xref)
+
+2014-09-07 16:48  Regina Obe <lr at pcorp.us>
+
+	* [r12952] doc/reference_raster.xml: #2920 stab at explaining
+	  requirement for alignment and add more detail to ST_SameAlignment
+
+2014-09-05 15:25  Sandro Santilli <strk at keybit.net>
+
+	* [r12950] liblwgeom/Makefile.in: Fix parser rules to run
+	  automatically if needed
+
+2014-09-05 15:25  Sandro Santilli <strk at keybit.net>
+
+	* [r12949] liblwgeom/lwin_wkt_lex.c, liblwgeom/lwin_wkt_parse.c,
+	  liblwgeom/lwin_wkt_parse.h: Regenerate parser with bison 3.0.2
+	  and flex 2.5.35
+
+2014-09-05 15:01  Sandro Santilli <strk at keybit.net>
+
+	* [r12948] liblwgeom/cunit/cu_in_geojson.c,
+	  liblwgeom/cunit/cu_out_encoded_polyline.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_surface.c: Fix
+	  'defined but not used' and other warnings in unit tests
+
+2014-09-05 14:38  Sandro Santilli <strk at keybit.net>
+
+	* [r12947] liblwgeom/lwin_wkt_parse.y: Fix %name-prefix usage in
+	  gramma file
+	  
+	  Fixes warning: deprecated directive, use ‘%name-prefix’
+	  [-Wdeprecated]
+
+2014-09-05 14:38  Sandro Santilli <strk at keybit.net>
+
+	* [r12946] liblwgeom/lwin_wkt_parse.y: Fix grammar file to work
+	  around suspected bison 3.0.2 bug
+	  
+	  See
+	  http://lists.osgeo.org/pipermail/postgis-devel/2014-September/024507.html
+
+2014-09-05 14:38  Sandro Santilli <strk at keybit.net>
+
+	* [r12945] liblwgeom/lwin_wkt_lex.l: Fix "'input' defined but not
+	  used" warning on building generated parser
+
+2014-09-05 10:38  Sandro Santilli <strk at keybit.net>
+
+	* [r12944] .travis.yml: [TRAVIS] Do not use IRC notifications
+
+2014-09-05 10:28  Sandro Santilli <strk at keybit.net>
+
+	* [r12943] liblwgeom/Makefile.in: Rule to build parser is "parser",
+	  not "parse"
+
+2014-09-03 15:37  Sandro Santilli <strk at keybit.net>
+
+	* [r12942] doc/reference_raster.xml: Link ST_CreateOverview from
+	  AddOverviewConstraints
+
+2014-09-03 14:52  Sandro Santilli <strk at keybit.net>
+
+	* [r12941] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_createoverview.sql,
+	  raster/test/regress/rt_createoverview_expected: Implement
+	  ST_Retile and ST_CreateOverview (#2247)
+	  
+	  Includes testcases and documentation
+
+2014-09-03 09:54  Sandro Santilli <strk at keybit.net>
+
+	* [r12940] doc/reference_raster.xml: Fix typo in
+	  DropOverviewConstraints doc
+
+2014-09-03 09:40  Sandro Santilli <strk at keybit.net>
+
+	* [r12937] doc/html/image_src/generator.c: Fix warnings in docs
+	  image generator build
+	  
+	  Print a warning on system call failures
+
+2014-09-03 09:11  Sandro Santilli <strk at keybit.net>
+
+	* [r12934] doc/reference_raster.xml, doc/using_raster_dataman.xml:
+	  Add documentation for {Add,Drop}OverviewConstraints (#2824)
+
+2014-09-03 08:21  Sandro Santilli <strk at keybit.net>
+
+	* [r12933] raster/rt_pg/rtpostgis.sql.in: Add availability info for
+	  {Add,Drop}OverviewConstraints
+
+2014-08-31 06:19  Regina Obe <lr at pcorp.us>
+
+	* [r12930] NEWS, doc/xsl/postgis_aggs_mm.xml.xsl: #2906 document
+	  new enhancement
+
+2014-08-29 16:37  Sandro Santilli <strk at keybit.net>
+
+	* [r12929] raster/rt_core/rt_warp.c: Slightly simplify a loop
+	  setting projection parameters for gdal warp
+
+2014-08-28 15:15  Sandro Santilli <strk at keybit.net>
+
+	* [r12928] raster/rt_core/rt_warp.c,
+	  raster/test/regress/rt_gdalwarp.sql,
+	  raster/test/regress/rt_gdalwarp_expected,
+	  raster/test/regress/tickets.sql,
+	  raster/test/regress/tickets_expected: Fix output georeference on
+	  warping rasters with default georeference
+	  
+	  Closes #2911 and re-closes #2251
+
+2014-08-27 15:53  Sandro Santilli <strk at keybit.net>
+
+	* [r12927] NEWS: Add sections for 2.0.5, 2.0.6 and 2.1.3
+
+2014-08-27 15:44  Sandro Santilli <strk at keybit.net>
+
+	* [r12926] NEWS: Remove bugfix items already noted for previous
+	  versions
+
+2014-08-27 08:53  Sandro Santilli <strk at keybit.net>
+
+	* [r12925] raster/rt_pg/rtpg_mapalgebra.c,
+	  raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected: Fix crash on null input to
+	  ST_Union(raster)
+
+2014-08-26 14:40  Sandro Santilli <strk at keybit.net>
+
+	* [r12921] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in: Add TODO
+	  item about not needlessly dropping ST_SummaryStats and friends
+
+2014-08-26 09:41  Sandro Santilli <strk at keybit.net>
+
+	* [r12918] utils/postgis_restore.pl.in: Do not skip lines starting
+	  with "--" from comments (#2759)
+
+2014-08-25 20:41  Regina Obe <lr at pcorp.us>
+
+	* [r12917] extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2014.sql: #2906
+	  support for Tiger 2014
+
+2014-08-23 05:50  Regina Obe <lr at pcorp.us>
+
+	* [r12915] doc/reference_sfcgal.xml: 2855: better documentation to
+	  reflect minkowski doesn't support polyhedral and tins
+
+2014-08-23 05:31  Regina Obe <lr at pcorp.us>
+
+	* [r12914]
+	  extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2011/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2011/regress/geocode_regress.sql:
+	  #2899 geocode limit 1 not always returning best answer
+
+2014-08-22 21:38  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12911] liblwgeom/lwpoly.c: #2720, lwpoly_add_ring should update
+	  maxrings after realloc
+
+2014-08-22 21:32  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12908] postgis/postgis.sql.in: remove extra option for next
+	  feature (bboxes, comming soon) in sql-signature.
+
+2014-08-22 20:39  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12907] doc/reference_output.xml, liblwgeom/cunit/cu_out_twkb.c,
+	  liblwgeom/cunit/cu_varint.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwout_twkb.c, liblwgeom/lwout_twkb.h,
+	  liblwgeom/varint.c, liblwgeom/varint.h, postgis/lwgeom_accum.c,
+	  postgis/lwgeom_inout.c, postgis/postgis.sql.in,
+	  regress/twkb_expected: Added optional geometry size in TWKB. Also
+	  reworked the code so passing around **buf instead of *buf. Also
+	  affects the varInt code
+
+2014-08-22 02:15  Regina Obe <lr at pcorp.us>
+
+	* [r12905] raster/rt_core/librtcore.h: #2903 change in #2620 (to
+	  support debian freebsd kernel) broke freebsd compilation
+
+2014-08-21 05:39  Regina Obe <lr at pcorp.us>
+
+	* [r12902] postgis/postgis.sql.in: #2708: updategeometrysrid
+	  doesn't update srid check in some cases (when schema not
+	  specified). Patch from Marc Jansen
+
+2014-08-20 04:32  Regina Obe <lr at pcorp.us>
+
+	* [r12900] doc/reference_editor.xml, doc/reference_lrs.xml: #2871
+	  fix update to 2.0 message for ST_LineInterpolatePoint,
+	  ST_LineSubstring and ST_LineLocatePoint. Also changed reference
+	  ids to match new function name (missed some spots)
+
+2014-08-20 04:21  Regina Obe <lr at pcorp.us>
+
+	* [r12898] doc/reference_editor.xml, doc/reference_lrs.xml: #2871
+	  fix update to 2.0 message for ST_LineInterpolatePoint,
+	  ST_LineSubstring and ST_LineLocatePoint. Also changed reference
+	  ids to match new function name
+
+2014-08-19 20:48  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12896] postgis/lwgeom_geos.c: #2605 armel: _ST_Covers() returns
+	  true for point in hole
+
+2014-08-18 10:58  Sandro Santilli <strk at keybit.net>
+
+	* [r12894] GNUmakefile.in, configure.ac, doc/Makefile.in: Simplify
+	  docs building rules, hopefully fixing build-on-install (#2872)
+
+2014-08-16 05:15  Regina Obe <lr at pcorp.us>
+
+	* [r12889] postgis/geography.sql.in, regress/tickets.sql,
+	  regress/tickets_expected: #2870 put in change notice in sql
+	  geograpy(bytea) has changed, put in regression test
+
+2014-08-15 15:17  Sandro Santilli <strk at keybit.net>
+
+	* [r12888] raster/rt_pg/rtpostgis.sql.in: Raise cost of
+	  ST_ConvexHull(raster) from 1 to 300 (#2895)
+
+2014-08-14 22:53  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12887] NEWS, postgis/geography.sql.in,
+	  postgis/geography_inout.c: #2780, Binary insert into geography
+	  column results in value being inserted as geometry
+
+2014-08-11 17:47  Regina Obe <lr at pcorp.us>
+
+	* [r12884] liblwgeom/cunit/cu_varint.c: #2892 add back liblwgeom
+	  fix warnings
+
+2014-08-11 04:49  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12883] liblwgeom/Makefile.in, liblwgeom/varint.c,
+	  liblwgeom/varint.h: going back to put varint functions in
+	  varint.c
+
+2014-08-11 03:23  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12882] raster/loader/raster2pgsql.c: revert option for -s.
+	  Ticket #2891
+
+2014-08-10 17:15  Regina Obe <lr at pcorp.us>
+
+	* [r12881] postgis/geography.sql.in: #2890 missing availability
+	  info for geography operators
+
+2014-08-10 16:05  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12880] raster/loader/raster2pgsql.c: cast const char * to char
+	  *. Ticket #2885
+
+2014-08-10 15:58  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12879] raster/rt_pg/rtpg_geometry.c: Remove unused variable.
+	  Ticket #2884.
+
+2014-08-10 11:29  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12878] liblwgeom/cunit/cu_varint.c: New try for #2878 and
+	  #2880, see discussion in #2880
+
+2014-08-10 11:18  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12877] liblwgeom/cunit/cu_varint.c: Ok, varint.h is taken away
+	  again #2878 also see #2880
+
+2014-08-09 20:08  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12876] liblwgeom/cunit/cu_varint.c: Put back varint.h to get
+	  rid of compiler warnings
+
+2014-08-09 20:02  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12875] liblwgeom/varint.h: put in declrations to get rid of
+	  compiler warnings
+
+2014-08-08 13:34  Sandro Santilli <strk at keybit.net>
+
+	* [r12874] liblwgeom/varint.h: Mark inline functions as such,
+	  fixing related warnings (#2880)
+
+2014-08-08 01:13  Regina Obe <lr at pcorp.us>
+
+	* [r12873] liblwgeom/lwgeom_sfcgal.c, libpgcommon/pgsql_compat.h:
+	  #2883 warning SET_VARSIZE(PTR,len) redefined. get rid of assert
+	  (its included via liblwgeom_internal (way down there), not the
+	  ultimate issue though for this., pgsql_compat.h get rid of legacy
+	  postgresql 8.2 crap. We haven't supported 8.2 in like 7 years
+	  (sfcgal was somehow falling into this loop don't know why since
+	  postgis_config.h
+
+2014-08-08 00:34  Regina Obe <lr at pcorp.us>
+
+	* [r12872] liblwgeom/lwout_x3d.c: #2882 warbubg too many arguments
+	  for format
+
+2014-08-07 22:23  Regina Obe <lr at pcorp.us>
+
+	* [r12871] liblwgeom/cunit/cu_out_twkb.c,
+	  liblwgeom/cunit/cu_varint.c: #2878 get rid of duplicate
+	  definition of hexbytes_from_bytes (already defined in
+	  lwout_wkb.c) get rid of liblwgeom.h (already included via
+	  liblwgeom_internal.h), get rid of varint.h include (already
+	  included via lwout_twkb.c)
+
+2014-08-07 20:57  Regina Obe <lr at pcorp.us>
+
+	* [r12870] configure.ac, extensions/address_standardizer/Makefile,
+	  extensions/address_standardizer/Makefile.in,
+	  extensions/address_standardizer/address_standardizer.control,
+	  extensions/address_standardizer/address_standardizer.control.in,
+	  extensions/address_standardizer/address_standardizer.sql.in:
+	  #2877 -- folder address_standardizer into configure so inherits
+	  same versioning as rest of postgis extensions. Have makefile.in
+	  get dependencies from configure (pcre to be added later)
+
+2014-08-07 19:05  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12869] liblwgeom/cunit/Makefile.in: Fix typo
+
+2014-08-07 18:31  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12868] liblwgeom/Makefile.in, liblwgeom/varint.c,
+	  liblwgeom/varint.h: Move varINT function to header file for
+	  performance reasons
+
+2014-08-07 18:26  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12867] liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_out_twkb.c, liblwgeom/cunit/cu_tester.c: Add
+	  cunit tests for twkb
+
+2014-08-07 13:57  Sandro Santilli <strk at keybit.net>
+
+	* [r12865] GNUmakefile.in, doc/Makefile.in, topology/Makefile.in:
+	  Remove more generated Makefile on "distclean" (#2876)
+
+2014-08-07 11:37  Sandro Santilli <strk at keybit.net>
+
+	* [r12864] doc/reference_output.xml: Add missing commas in some See
+	  Also sections, link ST_AsBinary to ST_AsTWKB
+
+2014-08-06 19:41  Regina Obe <lr at pcorp.us>
+
+	* [r12862] doc/extras_address_standardizer.xml,
+	  doc/installation.xml: #2874 document move of address_standardizer
+	  to extensions folder.
+
+2014-08-06 19:36  Regina Obe <lr at pcorp.us>
+
+	* [r12861] extras/address_standardizer: remove now part of
+	  extensions folder
+
+2014-08-06 19:35  Regina Obe <lr at pcorp.us>
+
+	* [r12860] extensions/address_standardizer: Prep to move
+	  address_standardizer into extensions folder
+
+2014-08-05 12:24  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12859] raster/test/regress/rt_envelope.sql,
+	  raster/test/regress/rt_envelope_expected: forgot to add unit
+	  tests to git. ticket #2828
+
+2014-08-01 23:17  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12856] configure.ac: Make the two-line decl check work
+
+2014-08-01 23:04  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12855] autogen.sh: Make grep and sed swappable as well (Solaris
+	  again)
+
+2014-08-01 22:55  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12854] configure.ac, liblwgeom/g_box.c,
+	  postgis/gserialized_gist_2d.c, postgis/gserialized_gist_nd.c,
+	  postgis_config.h.in: Keep isfinite() but downgrade for platforms
+	  that lack it.
+	  Centos 5 has it with _GNU_SOURCE
+	  Older Solaris doesn't have it
+
+2014-08-01 18:47  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12852] liblwgeom/lwline.c: #2845, fix patch
+
+2014-08-01 18:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12849] NEWS, liblwgeom/lwline.c: #2845, Bad geometry created
+	  from ST_AddPoint
+
+2014-08-01 10:58  Regina Obe <lr at pcorp.us>
+
+	* [r12847] liblwgeom/lwout_x3d.c: #2838 grudgingly wrap shape tags
+	  around collected geometries. It's the only way I can think of to
+	  create a valid x3d sub.
+
+2014-07-31 08:42  Sandro Santilli <strk at keybit.net>
+
+	* [r12846] liblwgeom/cunit/cu_varint.c: Add a couple more tests for
+	  varint encoding
+
+2014-07-30 11:38  Sandro Santilli <strk at keybit.net>
+
+	* [r12845] .travis.yml: [TRAVIS] Do not remove postresql-common
+
+2014-07-30 10:10  Sandro Santilli <strk at keybit.net>
+
+	* [r12844] .travis.yml: [TRAVIS] Ensure to install also the 9.1
+	  server, needed for regress
+
+2014-07-30 09:44  Sandro Santilli <strk at keybit.net>
+
+	* [r12843] .travis.yml: [TRAVIS] Remove more postgresql item not in
+	  the 9.1 series
+
+2014-07-30 09:11  Sandro Santilli <strk at keybit.net>
+
+	* [r12842] .travis.yml: [TRAVIS] remove postgresql 9.2 and 9.3
+	  
+	  Hopefully fixes confusion between library and header used
+
+2014-07-29 15:50  Sandro Santilli <strk at keybit.net>
+
+	* [r12841] .travis.yml: [TRAVIS] Get a list of installed postgresql
+	  packages
+
+2014-07-29 14:50  Sandro Santilli <strk at keybit.net>
+
+	* [r12840] regress/run_test.pl: Honour verbosity flag on sql file
+	  load failure (see #2854)
+
+2014-07-29 13:56  Sandro Santilli <strk at keybit.net>
+
+	* [r12839] liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_measures.c: Fix expected return codes fixed
+	  two commits above
+	  
+	  Also sets touched suite names to match filename
+	  (with "cu_" prefix stripped out)
+
+2014-07-29 12:23  Sandro Santilli <strk at keybit.net>
+
+	* [r12838] liblwgeom/cunit/cu_varint.c: Add tests for 32bit varints
+	  encoding
+
+2014-07-29 10:34  Sandro Santilli <strk at keybit.net>
+
+	* [r12837] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_in_wkt.c, liblwgeom/cunit/cu_measures.c: Check
+	  return code from liblwgeom functions
+	  
+	  Fixes some "variable set but unused" warnings
+
+2014-07-29 10:25  Sandro Santilli <strk at keybit.net>
+
+	* [r12836] liblwgeom/Makefile.in, liblwgeom/cunit/cu_varint.c,
+	  liblwgeom/lwout_twkb.c, liblwgeom/lwout_twkb.h,
+	  liblwgeom/varint.c, liblwgeom/varint.h: Move varInt handling code
+	  into its own file module, for reuse
+	  
+	  Also found a bug in encoding 4bytes numbers
+
+2014-07-27 17:17  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12835] raster/rt_pg/rtpostgis.sql.in: code cleanup
+
+2014-07-27 17:06  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12833] NEWS, raster/rt_pg/rtpostgis.sql.in: shortcut ST_Clip if
+	  clipping geometry extent fully contains raster extent. Ticket
+	  #2829
+
+2014-07-26 13:47  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12832] NEWS, raster/rt_core/librtcore.h,
+	  raster/rt_core/rt_geometry.c, raster/rt_pg/rtpg_geometry.c,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/cunit/cu_raster_geometry.c,
+	  raster/test/regress/Makefile.in: ST_Envelope(raster) in C instead
+	  of ST_Envelope(ST_ConvexHull(raster)). ticket #2828
+
+2014-07-25 20:41  Regina Obe <lr at pcorp.us>
+
+	* [r12831] liblwgeom/lwout_x3d.c: #2838 collection handling
+	  partially fixed - fix size computation for tins and add support
+	  for polyhedralsurface in geometry collection
+
+2014-07-25 18:44  Regina Obe <lr at pcorp.us>
+
+	* [r12830] NEWS: oops duplicated entry in last commit. add another.
+
+2014-07-25 18:41  Regina Obe <lr at pcorp.us>
+
+	* [r12829] NEWS: add some missing new features to NEWS items
+
+2014-07-25 15:36  Sandro Santilli <strk at keybit.net>
+
+	* [r12828] liblwgeom/cunit/cu_varint.c, liblwgeom/lwout_twkb.c,
+	  liblwgeom/lwout_twkb.h, liblwgeom/measures.c,
+	  liblwgeom/measures.h, liblwgeom/measures3d.c,
+	  liblwgeom/measures3d.h: Fix some UTF8 encoding of Nicklas name...
+
+2014-07-25 15:25  Sandro Santilli <strk at keybit.net>
+
+	* [r12827] loader/shpcommon.c: Simplify mapping file parsing
+
+2014-07-25 12:14  Sandro Santilli <strk at keybit.net>
+
+	* [r12826] loader/pgsql2shp-core.c, loader/pgsql2shp-core.h,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shpcommon.c, loader/shpcommon.h: Share code handling field
+	  name mapping between loader and dumper
+
+2014-07-25 11:27  Regina Obe <lr at pcorp.us>
+
+	* [r12825] liblwgeom/lwout_x3d.c: #2838 collection handling
+	  partially fixed (now can handle tins and doesn't output bogus gml
+	  output
+
+2014-07-25 10:57  Sandro Santilli <strk at keybit.net>
+
+	* [r12824] doc/man/shp2pgsql.1: Add -m reference in shp2pgsql
+	  manpage. See ticket #899.
+
+2014-07-24 21:58  Regina Obe <lr at pcorp.us>
+
+	* [r12823] regress/loader/mfile_mapping.txt: change to force linux
+	  linebreaks
+
+2014-07-24 21:44  Regina Obe <lr at pcorp.us>
+
+	* [r12822] regress/loader/mfile_mapping.txt: set to platform
+	  dependent to see if this fixes issue on Linux
+
+2014-07-24 17:37  Regina Obe <lr at pcorp.us>
+
+	* [r12821] doc/using_postgis_dataman.xml, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  regress/Makefile.in, regress/loader/mfile.dbf,
+	  regress/loader/mfile.opts, regress/loader/mfile.select.expected,
+	  regress/loader/mfile.select.sql,
+	  regress/loader/mfile_mapping.txt: #899 shp2pgsql attribute names
+	  mapping (including test
+
+2014-07-23 00:20  Regina Obe <lr at pcorp.us>
+
+	* [r12820]
+	  extras/address_standardizer/address_standardizer.control: #2814
+	  address_standardizer does not install with all encodings of
+	  database
+
+2014-07-22 23:25  Regina Obe <lr at pcorp.us>
+
+	* [r12819] extras/address_standardizer/Makefile,
+	  extras/address_standardizer/address_standardizer--1.0.sql.in,
+	  extras/address_standardizer/address_standardizer.sql.in: Get rid
+	  of version number on the .sql.in file. Eventually it will have
+	  same versioning machinery as PostGIS proper
+
+2014-07-22 22:41  Regina Obe <lr at pcorp.us>
+
+	* [r12818] extensions/postgis_sfcgal/postgis_sfcgal.control.in:
+	  #2852 sfcgal extension needs to be relocatable
+
+2014-07-22 22:34  Regina Obe <lr at pcorp.us>
+
+	* [r12817] doc/extras_address_standardizer.xml,
+	  doc/extras_tigergeocoder.xml, doc/postgis.xml, doc/template.xml:
+	  Define new &address_standardizer_required; xml constant and flag
+	  functions requiring it
+
+2014-07-22 08:52  Sandro Santilli <strk at keybit.net>
+
+	* [r12816] regress/regress_index.sql: Drop dependency of estimation
+	  test on XML type (#2151)
+
+2014-07-22 08:41  Sandro Santilli <strk at keybit.net>
+
+	* [r12815] regress/regress_index.sql,
+	  regress/regress_index_expected: Raise statistic target during
+	  estimation test
+	  
+	  Possibly fixes #2851 (probability is statitics based)
+
+2014-07-21 16:39  Sandro Santilli <strk at keybit.net>
+
+	* [r12814] NEWS, postgis/gserialized_estimate.c,
+	  regress/regress_index.sql, regress/regress_index_expected:
+	  Generalize estimator code to also work with expressional indexes
+	  
+	  Improves raster selectivity estimator (#2839)
+	  Includes regression tests
+
+2014-07-21 16:12  Sandro Santilli <strk at keybit.net>
+
+	* [r12813] regress/regress_index.sql,
+	  regress/regress_index_expected: Add test for selectivity
+	  estimator
+
+2014-07-21 04:51  Regina Obe <lr at pcorp.us>
+
+	* [r12811] doc/reference_output.xml: Fix X3D specification link
+	  (X3D recently redid their site which broke all the links), also
+	  link to the PostGIS X3D web viewer as demonstration of using
+	  x3dom native html/js web browser rendering
+
+2014-07-19 20:52  Regina Obe <lr at pcorp.us>
+
+	* [r12808] doc/extras_address_standardizer.xml,
+	  doc/installation.xml: fix some typos
+
+2014-07-19 17:23  Regina Obe <lr at pcorp.us>
+
+	* [r12807] doc/extras_address_standardizer.xml: fix parse_address
+	  output
+
+2014-07-19 16:14  Regina Obe <lr at pcorp.us>
+
+	* [r12806] doc/extras_address_standardizer.xml: arg for
+	  parse_address
+
+2014-07-19 06:01  Regina Obe <lr at pcorp.us>
+
+	* [r12805] doc/extras_address_standardizer.xml: document
+	  parse_address function, add examples for parse_address and
+	  address_standardizer, fix proto for address_standardizer
+
+2014-07-19 05:19  Regina Obe <lr at pcorp.us>
+
+	* [r12803]
+	  extras/address_standardizer/address_standardizer--1.0.sql.in:
+	  #2846 parse_address is not null safe - make immutable strict
+
+2014-07-18 14:39  Sandro Santilli <strk at keybit.net>
+
+	* [r12801] raster/loader/raster2pgsql.c: Reduce some code
+	  duplication
+
+2014-07-18 07:37  Regina Obe <lr at pcorp.us>
+
+	* [r12800] doc/installation.xml: get rid of dangling para
+
+2014-07-18 07:31  Regina Obe <lr at pcorp.us>
+
+	* [r12799] doc/installation.xml: fix typo
+
+2014-07-18 07:29  Regina Obe <lr at pcorp.us>
+
+	* [r12798] doc/installation.xml: Add pcre as optional dependency
+	  for building address standardizer
+
+2014-07-18 07:10  Regina Obe <lr at pcorp.us>
+
+	* [r12796] doc/installation.xml: update install instructions to
+	  include simple example for testing installation
+
+2014-07-18 06:56  Regina Obe <lr at pcorp.us>
+
+	* [r12795] doc/installation.xml: update install instructions to
+	  reflect code is now part of repo
+
+2014-07-18 05:53  Regina Obe <lr at pcorp.us>
+
+	* [r12794] doc/extras_address_standardizer.xml: minor edits and
+	  link to installation which needs some cleanup
+
+2014-07-17 14:30  Sandro Santilli <strk at keybit.net>
+
+	* [r12793] doc/reference_management.xml, doc/reference_raster.xml:
+	  Cross-link UpdateRasterSRID and UpdateGeometrySRID
+
+2014-07-17 14:23  Sandro Santilli <strk at keybit.net>
+
+	* [r12792] raster/test/regress/loader/Projected-post.sql: Cleanup
+	  after raster import tests using overview
+	  
+	  It seems to not be automatic...
+
+2014-07-17 14:02  Sandro Santilli <strk at keybit.net>
+
+	* [r12791] raster/test/regress/loader/Projected.opts,
+	  raster/test/regress/loader/Projected.select.expected,
+	  raster/test/regress/loader/Projected.select.sql: Include
+	  overviews in the test for reprojected rasters (#2843)
+
+2014-07-17 09:02  Sandro Santilli <strk at keybit.net>
+
+	* [r12790] raster/test/regress/loader/Basic-post.sh,
+	  raster/test/regress/loader/Basic-pre.sh,
+	  raster/test/regress/loader/BasicCopy-post.sh,
+	  raster/test/regress/loader/BasicCopy-pre.sh,
+	  raster/test/regress/loader/BasicFilename-post.sh,
+	  raster/test/regress/loader/BasicFilename-pre.sh,
+	  raster/test/regress/loader/BasicOutDB-post.sh,
+	  raster/test/regress/loader/BasicOutDB-pre.sh,
+	  raster/test/regress/loader/Tiled10x10-post.sh,
+	  raster/test/regress/loader/Tiled10x10-pre.sh,
+	  raster/test/regress/loader/Tiled10x10Copy-post.sh,
+	  raster/test/regress/loader/Tiled10x10Copy-pre.sh,
+	  raster/test/regress/loader/Tiled8x8-post.sh,
+	  raster/test/regress/loader/Tiled8x8-pre.sh: Remove obsoleted
+	  shell versions of test aux scripts (#2844)
+
+2014-07-17 08:59  Sandro Santilli <strk at keybit.net>
+
+	* [r12789] NEWS, raster/loader/raster2pgsql.c,
+	  raster/loader/raster2pgsql.h, raster/test/regress/Makefile.in,
+	  raster/test/regress/loader/Projected-post.sql,
+	  raster/test/regress/loader/Projected-pre.sql,
+	  raster/test/regress/loader/Projected.opts,
+	  raster/test/regress/loader/Projected.select.expected,
+	  raster/test/regress/loader/Projected.select.sql,
+	  raster/test/regress/loader/Projected.tif: Add support for raster
+	  reprojection on import (#2843)
+
+2014-07-17 04:12  Regina Obe <lr at pcorp.us>
+
+	* [r12788] doc/extras_address_standardizer.xml: finish listing all
+	  key user defined tables -- needs more work but a start
+
+2014-07-16 10:51  Regina Obe <lr at pcorp.us>
+
+	* [r12787] doc/extras_address_standardizer.xml: missing para tag
+
+2014-07-16 06:08  Regina Obe <lr at pcorp.us>
+
+	* [r12786] doc/extras_address_standardizer.xml: add section for
+	  tables and define rules table (still need to add gaz and lex
+	  tables)
+
+2014-07-16 05:48  Regina Obe <lr at pcorp.us>
+
+	* [r12785] doc/reference_sfcgal.xml: cleanup formatting of code
+	  examples
+
+2014-07-16 05:43  Regina Obe <lr at pcorp.us>
+
+	* [r12784] doc/html/images/st_tesselate02.png: forgot to resize too
+	  big
+
+2014-07-15 07:02  Regina Obe <lr at pcorp.us>
+
+	* [r12783] doc/reference_sfcgal.xml: fix typo in image names
+
+2014-07-15 06:32  Regina Obe <lr at pcorp.us>
+
+	* [r12782] doc/reference_sfcgal.xml: fix missing tag in
+	  ST_Tesselate add more examples for ST_3DIntersection
+
+2014-07-15 05:40  Regina Obe <lr at pcorp.us>
+
+	* [r12781] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_tesselate03.wkt,
+	  doc/html/image_src/st_tesselate04.wkt,
+	  doc/html/images/st_tesselate01.png,
+	  doc/html/images/st_tesselate02.png, doc/reference_sfcgal.xml: Add
+	  documentation for ST_Tesselate with figures
+
+2014-07-14 14:36  Sandro Santilli <strk at keybit.net>
+
+	* [r12780] doc/reference_raster.xml: Add note about extent
+	  ratainment in ST_Resize, cross link docs
+	  
+	  Closes #2833
+
+2014-07-14 14:36  Sandro Santilli <strk at keybit.net>
+
+	* [r12779] raster/rt_pg/Makefile.in: Force rtpostgis.so rebuild on
+	  librtcore.a change
+
+2014-07-11 17:21  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12778] postgis/gserialized_estimate.c: #2834,
+	  ST_Estimated_Extent and mixedCase table names
+
+2014-07-11 09:22  Sandro Santilli <strk at keybit.net>
+
+	* [r12776] doc/reference_raster.xml: Drop duplicated commas, add
+	  ST_SetValue in See Also for ST_Value
+
+2014-07-11 08:36  Sandro Santilli <strk at keybit.net>
+
+	* [r12775] .gitignore: Ignore more generated files
+
+2014-07-10 01:34  Regina Obe <lr at pcorp.us>
+
+	* [r12771] doc/html/images/st_extrude02.png,
+	  doc/html/images/st_extrude04.png, doc/reference_sfcgal.xml:
+	  resize images and put a not about how the 3D was rendered.
+
+2014-07-10 01:26  Regina Obe <lr at pcorp.us>
+
+	* [r12770] doc/reference_sfcgal.xml: forgot to commit changes
+
+2014-07-10 01:25  Regina Obe <lr at pcorp.us>
+
+	* [r12769] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_extrude01.wkt,
+	  doc/html/image_src/st_extrude03.wkt,
+	  doc/html/images/st_extrude02.png,
+	  doc/html/images/st_extrude04.png: Add visual examples of
+	  extrusion
+
+2014-07-08 20:28  Regina Obe <lr at pcorp.us>
+
+	* [r12767] doc/reference_editor.xml: #2820:
+	  ST_Segmentize(geography) returns a geography not geometry
+
+2014-07-08 09:49  Sandro Santilli <strk at keybit.net>
+
+	* [r12766] regress/Makefile.in, regress/run_test.pl: Add support
+	  for sfgal in run_test --extension
+
+2014-07-08 09:16  Sandro Santilli <strk at keybit.net>
+
+	* [r12765] raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rtpostgis_drop.sql.in,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in: Cleanup raster
+	  drop files
+	  
+	  rtpostgis_drop.sql is used to drop obsoleted objects (after)
+	  while rtpostgis_upgrade_cleanup.sql is used to remove things that
+	  need be removed _before_ (incompatible CREATE OR REPLACE).
+	  
+	  Ideally nothing would need to be removed _before_ if the
+	  proc_upgrade script was made smarter to determine incompatible
+	  signature changes (but this is for another time).
+	  
+	  Closes #2673
+
+2014-07-08 02:49  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12764] raster/rt_pg/rtpostgis.sql.in: fix regexp escaping
+
+2014-07-08 01:46  Regina Obe <lr at pcorp.us>
+
+	* [r12761] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_straightskeleton02.wkt,
+	  doc/html/images/st_straightskeleton02.png: change to manual
+	  creation generated doesn't look right
+
+2014-07-08 00:37  Regina Obe <lr at pcorp.us>
+
+	* [r12760] doc/html/image_src/st_straightskeleton01.wkt,
+	  doc/html/image_src/st_straightskeleton02.wkt,
+	  doc/reference_sfcgal.xml: change example to one that takes up
+	  more of the realestate
+
+2014-07-08 00:09  Regina Obe <lr at pcorp.us>
+
+	* [r12759] doc/html/image_src/Makefile.in: fix typo in image make
+	  script for ST_StraightSkeleton image
+
+2014-07-07 23:41  Regina Obe <lr at pcorp.us>
+
+	* [r12758] doc/reference_editor.xml: missed committing ths file
+	  ST_Force2D link id fix
+
+2014-07-07 23:29  Regina Obe <lr at pcorp.us>
+
+	* [r12757] doc/reference_accessor.xml: another ST_Force_2D id
+	  change to ST_Force2D
+
+2014-07-07 23:17  Regina Obe <lr at pcorp.us>
+
+	* [r12756] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_straightskeleton01.wkt,
+	  doc/html/image_src/st_straightskeleton02.wkt,
+	  doc/reference_editor.xml, doc/reference_guc.xml,
+	  doc/reference_sfcgal.xml: Change link id of ST_Force2D from
+	  ST_Force_2D to ST_Force2Dm add doco for ST_StraightSkeleton, add
+	  example of switching backend to sfcgal
+
+2014-07-07 22:53  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12755] liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwin_encoded_polyline.c, liblwgeom/lwline.c,
+	  liblwgeom/lwout_encoded_polyline.c: Clean up warnings in encoded
+	  polyline code
+
+2014-07-07 22:44  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12754] liblwgeom/lwout_encoded_polyline.c: Convert malloc/free
+	  to lwalloc/lwfree
+
+2014-07-07 22:35  Regina Obe <lr at pcorp.us>
+
+	* [r12753] doc/reference_processing.xml, doc/reference_sfcgal.xml:
+	  Provided 3D behavior examples for ST_Intersection and
+	  ST_3DIntersection
+
+2014-07-07 15:39  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12752] NEWS, raster/rt_pg/rtpostgis.sql.in: use @ operator
+	  instead of ST_CoveredBy(). Ticket #2822
+
+2014-07-07 10:25  Sandro Santilli <strk at keybit.net>
+
+	* [r12751] doc/reference_constructor.xml, doc/reference_output.xml:
+	  Improve encoded polyline docs
+	  
+	  Fix cross-linking between encoded polyline in/out funx
+	  Add link to encoded polyline algorithm format
+
+2014-07-07 10:21  Sandro Santilli <strk at keybit.net>
+
+	* [r12750] NEWS, doc/reference_constructor.xml,
+	  doc/reference_output.xml, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_in_encoded_polyline.c,
+	  liblwgeom/cunit/cu_out_encoded_polyline.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwin_encoded_polyline.c,
+	  liblwgeom/lwout_encoded_polyline.c, postgis/Makefile.in,
+	  postgis/lwgeom_export.c, postgis/lwgeom_in_encoded_polyline.c,
+	  postgis/postgis.sql.in, regress/Makefile.in,
+	  regress/in_encodedpolyline.sql,
+	  regress/in_encodedpolyline_expected, regress/out_geometry.sql,
+	  regress/out_geometry_expected, utils/postgis_restore.pl.in: Added
+	  support for encoded_polyline input/output (#2349)
+	  
+	  Allow to convert from Encoded Polyline to LineString.
+	  Useful for storing routes from Osrm or Google into PostGIS.
+	  
+	  See
+	  http://developers.google.com/maps/documentation/utilities/polylinealgorithm
+	  
+	  Contributed by Kashif Rasul <kashif.rasul at gmail.com>
+	  
+	  Includes unit and regress tests.
+	  Includes documentation.
+	  
+	  Signed-off-by: Sandro Santilli <strk at keybit.net>
+
+2014-07-07 08:58  Sandro Santilli <strk at keybit.net>
+
+	* [r12749] loader/shp2pgsql-core.c, raster/loader/raster2pgsql.c:
+	  Fix index creation in loaders
+	  
+	  The bug was introduced with previous commit (typo)
+	  See #2811
+
+2014-07-07 08:10  Sandro Santilli <strk at keybit.net>
+
+	* [r12746] loader/shp2pgsql-core.c, raster/loader/raster2pgsql.c:
+	  Do not explicitly name indexes loading rasters/shapefiles (#2811)
+
+2014-07-06 20:01  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12744] NEWS, raster/rt_pg/rtpg_mapalgebra.c,
+	  raster/test/regress/rt_mapalgebra.sql,
+	  raster/test/regress/rt_mapalgebra_expected: Validate that
+	  ST_MapAlgebra callback function has correct return
+	  datatype. Ticket #2802
+
+2014-07-06 18:33  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12741] raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_band.sql,
+	  raster/test/regress/rt_band_expected: escape delimiter of
+	  ST_Band(). Ticket #2812
+
+2014-07-06 18:10  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12740] NEWS, raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/check_raster_columns_expected,
+	  raster/test/regress/check_raster_overviews_expected,
+	  raster/test/regress/loader/Basic.select.expected,
+	  raster/test/regress/loader/BasicCopy.select.expected,
+	  raster/test/regress/loader/BasicOutDB.select.expected,
+	  raster/test/regress/loader/Tiled10x10.select.expected,
+	  raster/test/regress/loader/Tiled10x10Copy.select.expected: Raster
+	  max extent uses envelope like Geometry. Ticket #2777
+
+2014-07-06 17:32  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12737] raster/rt_core/librtcore.h,
+	  raster/rt_pg/rtpg_band_properties.c, raster/rt_pg/rtpg_create.c,
+	  raster/rt_pg/rtpg_gdal.c, raster/rt_pg/rtpg_geometry.c,
+	  raster/rt_pg/rtpg_inout.c, raster/rt_pg/rtpg_internal.c,
+	  raster/rt_pg/rtpg_internal.h, raster/rt_pg/rtpg_mapalgebra.c,
+	  raster/rt_pg/rtpg_pixel.c, raster/rt_pg/rtpg_raster_properties.c,
+	  raster/rt_pg/rtpg_spatial_relationship.c,
+	  raster/rt_pg/rtpg_statistics.c, raster/rt_pg/rtpg_utility.c,
+	  raster/rt_pg/rtpostgis.c, raster/rt_pg/rtpostgis.h,
+	  raster/test/cunit/cu_band_basics.c,
+	  raster/test/cunit/cu_band_misc.c,
+	  raster/test/cunit/cu_band_stats.c, raster/test/cunit/cu_gdal.c,
+	  raster/test/cunit/cu_mapalgebra.c, raster/test/cunit/cu_misc.c,
+	  raster/test/cunit/cu_pixtype.c,
+	  raster/test/cunit/cu_raster_basics.c,
+	  raster/test/cunit/cu_raster_geometry.c,
+	  raster/test/cunit/cu_raster_misc.c,
+	  raster/test/cunit/cu_raster_wkb.c,
+	  raster/test/cunit/cu_spatial_relationship.c,
+	  raster/test/regress/rt_mapalgebra.sql: fix obsolete URL in
+	  headers
+
+2014-07-06 15:27  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12735] NEWS, raster/test/regress/rt_mapalgebra.sql,
+	  raster/test/regress/rt_mapalgebra_expected: added NEWS and
+	  updated tests
+
+2014-07-06 15:27  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12734] raster/rt_pg/rtpg_mapalgebra.c: use empty TEXT array for
+	  userargs when no user args and STRICT callback function
+
+2014-07-06 03:17  Regina Obe <lr at pcorp.us>
+
+	* [r12731] doc/doxygen.cfg.in: #2813 add address_standardizer as
+	  part of doxygen build
+
+2014-07-05 07:15  Regina Obe <lr at pcorp.us>
+
+	* [r12730] doc/extras_address_standardizer.xml: move title below
+	  sect1info guess not legal before it.
+
+2014-07-05 06:43  Regina Obe <lr at pcorp.us>
+
+	* [r12729] doc/extras_address_standardizer.xml: missed a spot
+	  (hopefully strk's asleep)
+
+2014-07-05 06:26  Regina Obe <lr at pcorp.us>
+
+	* [r12728] doc/extras_address_standardizer.xml: move term out of
+	  listentry
+
+2014-07-05 06:14  Regina Obe <lr at pcorp.us>
+
+	* [r12727] doc/extras.xml, doc/extras_address_standardizer.xml,
+	  doc/postgis.xml: #2801: start work on address_standardizer
+	  chapter and cut in
+
+2014-07-05 04:17  Regina Obe <lr at pcorp.us>
+
+	* [r12726] doc/reference_raster.xml: #2810 document the delimeter
+	  argument and big warning to avoid because we may remove it in
+	  future versions
+
+2014-07-04 16:11  Sandro Santilli <strk at keybit.net>
+
+	* [r12725] raster/loader/raster2pgsql.c: Change append_stringbuffer
+	  to take ownership of string parameter
+	  
+	  Reduces the amount of allocations/deallocations needed during
+	  import.
+
+2014-07-04 16:11  Sandro Santilli <strk at keybit.net>
+
+	* [r12724] raster/rt_core/rt_wkb.c: Inline hex conversion of raster
+	  wkb in rt_raster_to_hexwkb (#2798)
+	  
+	  Speeds up importing large rasters.
+
+2014-07-04 09:45  Sandro Santilli <strk at keybit.net>
+
+	* [r12723] authors.git, authors.svn: Add woodbri in git/svn authors
+	  file
+
+2014-07-04 09:45  Sandro Santilli <strk at keybit.net>
+
+	* [r12722] raster/rt_pg/rtpostgis.sql.in: Include PostgreSQL
+	  failure messages in AddRasterConstraints
+
+2014-07-03 16:37  Stephen Woodbridge <woodbri at swoodbridge.com>
+
+	* [r12721] extras/address_standardizer/README.address_standardizer:
+	  test commit to check access rights
+
+2014-07-03 12:32  Sandro Santilli <strk at keybit.net>
+
+	* [r12720] raster/rt_pg/rtpg_mapalgebra.c,
+	  raster/test/regress/rt_mapalgebra.sql,
+	  raster/test/regress/rt_mapalgebra_expected: Check that
+	  ST_MapAlgebra strict callbacks get passed an user arg
+	  
+	  Closes #2803
+	  Includes a testcase
+
+2014-07-03 03:04  Regina Obe <lr at pcorp.us>
+
+	* [r12718] NEWS: missed an edit
+
+2014-07-03 03:04  Regina Obe <lr at pcorp.us>
+
+	* [r12717] NEWS: Add address_standardizer and sfcgal to list of
+	  contributions
+
+2014-07-03 02:14  Regina Obe <lr at pcorp.us>
+
+	* [r12716] extras/address_standardizer,
+	  extras/address_standardizer/COPYING,
+	  extras/address_standardizer/Makefile,
+	  extras/address_standardizer/README.address_standardizer,
+	  extras/address_standardizer/address_parser.c,
+	  extras/address_standardizer/address_standardizer--1.0.sql.in,
+	  extras/address_standardizer/address_standardizer.c,
+	  extras/address_standardizer/address_standardizer.control,
+	  extras/address_standardizer/analyze.c,
+	  extras/address_standardizer/err_param.c,
+	  extras/address_standardizer/export.c,
+	  extras/address_standardizer/gamma.c,
+	  extras/address_standardizer/gamma.h,
+	  extras/address_standardizer/gazeteer.csv,
+	  extras/address_standardizer/hash.c,
+	  extras/address_standardizer/hash.h,
+	  extras/address_standardizer/khash.h,
+	  extras/address_standardizer/lexicon.c,
+	  extras/address_standardizer/lexicon.csv,
+	  extras/address_standardizer/micro-macro.sql,
+	  extras/address_standardizer/mk-city-regex.pl,
+	  extras/address_standardizer/mk-sql.pl,
+	  extras/address_standardizer/mk-st-regexp.pl,
+	  extras/address_standardizer/pagc-data-psql,
+	  extras/address_standardizer/pagc_api.h,
+	  extras/address_standardizer/pagc_common.h,
+	  extras/address_standardizer/pagc_std_api.h,
+	  extras/address_standardizer/pagc_tools.c,
+	  extras/address_standardizer/pagc_tools.h,
+	  extras/address_standardizer/parseaddress-api.c,
+	  extras/address_standardizer/parseaddress-api.h,
+	  extras/address_standardizer/parseaddress-regex.h,
+	  extras/address_standardizer/parseaddress-stcities.h,
+	  extras/address_standardizer/rules.txt,
+	  extras/address_standardizer/standard.c,
+	  extras/address_standardizer/std_pg_hash.c,
+	  extras/address_standardizer/std_pg_hash.h,
+	  extras/address_standardizer/test-parseaddress.sql,
+	  extras/address_standardizer/test.sql,
+	  extras/address_standardizer/test2.sql,
+	  extras/address_standardizer/test_main.c,
+	  extras/address_standardizer/tokenize.c,
+	  extras/address_standardizer/usps-st-city-adds.txt,
+	  extras/address_standardizer/usps-st-city-orig.txt: Fork of
+	  http://sourceforge.net/p/pagc/code/HEAD/tree/branches/sew-refactor/postgresql
+	  (svn://svn.code.sf.net/p/pagc/code/branches/sew-refactor/postgresql
+	  ) at r361 (Stephen Woodbridge, Walter Sinclair contribution) -
+	  address_standardizer extension for PostgreSQL forked from PAGC
+	  address standardizer to work with PostgreSQL
+
+2014-07-01 17:45  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12714] ., extensions/postgis_sfcgal: Ignore build artifacts
+
+2014-07-01 16:14  Sandro Santilli <strk at keybit.net>
+
+	* [r12713] .gitignore: Ignore install-sh, generated by autogen.sh
+
+2014-07-01 16:13  Sandro Santilli <strk at keybit.net>
+
+	* [r12712] install-sh: install-sh is a built artifact, should not
+	  be in the repository
+	  
+	  See
+	  http://lists.osgeo.org/pipermail/postgis-devel/2014-June/024327.html
+
+2014-06-30 17:55  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12710] liblwgeom/cunit/cu_surface.c: fix build
+
+2014-06-30 16:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12709] liblwgeom/cunit/cu_surface.c: #2797 cu_surface.c warning
+	  on polyhedralsurface_parse
+
+2014-06-30 16:19  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12708] doc/Makefile.comments.in, doc/Makefile.in: #2796,
+	  sfcgal_comments.sql missing for regress testing install
+
+2014-06-30 16:15  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12707] liblwgeom/cunit/Makefile.in: #2793, sfcgal cunit tests
+	  do not seem to run
+
+2014-06-30 15:28  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12706] raster/test/cunit, topology/test/regress: Ignore some
+	  build artefacts
+
+2014-06-30 14:37  Sandro Santilli <strk at keybit.net>
+
+	* [r12705] README.md: Oops, confused mapnik with postgis
+
+2014-06-30 02:43  Regina Obe <lr at pcorp.us>
+
+	* [r12704] liblwgeom/lwgeom_sfcgal.h: #2790 SET_VARSIZE redefined -
+	  to fix swapped out liblwgeom.h with liblwgeom_internal.h which
+	  includes reference to postgis_config.h to do conditional right
+	  thing based in pg version
+
+2014-06-29 21:21  Regina Obe <lr at pcorp.us>
+
+	* [r12703] regress/Makefile.in: #2794 sfcgal regress sfcgal doesn't
+	  install if RUNTESTFLAGS is set by user because trying to reuse
+	  that flag. Define new flag SFCGALTESTFLAGS and pass that along.
+
+2014-06-29 18:38  Regina Obe <lr at pcorp.us>
+
+	* [r12702] regress/sfcgal/tickets.sql,
+	  regress/sfcgal/tickets_expected: #2488: patch from Vincent Mora
+	  to make sfcgal_tickets endian agnostic
+
+2014-06-29 04:56  Regina Obe <lr at pcorp.us>
+
+	* [r12700] doc/reference_management.xml: update
+	  postgis_full_version output the old was ancient 1.3 days
+
+2014-06-29 04:17  Regina Obe <lr at pcorp.us>
+
+	* [r12699] doc/Makefile.in: #2792 docbook validation issues --
+	  remove for raster_comments generation
+
+2014-06-27 21:23  Regina Obe <lr at pcorp.us>
+
+	* [r12692] doc/installation.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  update docs to include breaking function changes, fact that
+	  sfcgal now is supported as extension, and how to install sfcgal
+	  as extension
+
+2014-06-27 21:13  Regina Obe <lr at pcorp.us>
+
+	* [r12691] doc/introduction.xml: Add Vincent Mora to credits
+
+2014-06-27 21:09  Regina Obe <lr at pcorp.us>
+
+	* [r12690] extensions/postgis_sfcgal,
+	  extensions/postgis_sfcgal/Makefile.in,
+	  extensions/postgis_sfcgal/postgis_sfcgal.control.in: #2754
+	  postgis_sfcgal extension oops missed new extension folder
+
+2014-06-27 20:56  Regina Obe <lr at pcorp.us>
+
+	* [r12689] configure.ac, extensions/Makefile.in,
+	  postgis/Makefile.in, postgis/sfcgal.sql.in: #2754 need
+	  postgis_sfcgal wrapped as an extension - patch provided by
+	  Vincent Mora (vmo)
+
+2014-06-27 20:08  Regina Obe <lr at pcorp.us>
+
+	* [r12688] configure.ac: #2783 add JSON_CPPGLAGS to CPPFLAGS so
+	  works correctly with custom json-dir
+
+2014-06-27 18:34  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12685] postgis/lwgeom_in_gml.c, regress/tickets.sql,
+	  regress/tickets_expected: #2704, ST_GeomFromGML() does not work
+	  properly with array of gml:pos
+
+2014-06-27 18:32  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12684] postgis/lwgeom_geos.c: Ensure conditional has access to
+	  configuration values
+
+2014-06-27 18:12  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12681] postgis/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: #2788 Warning on
+	  PG_RETURN_HEAPTUPLEHEADER building against PgSQL 9.
+
+2014-06-27 07:38  Sandro Santilli <strk at keybit.net>
+
+	* [r12676] liblwgeom/lwgeodetic.c: Fix undefined behavior in
+	  ptarray_calculate_gbox_geodetic (#2774)
+	  
+	  Patch by Paul Ramsey
+
+2014-06-27 07:35  Sandro Santilli <strk at keybit.net>
+
+	* [r12675] extensions/postgis/Makefile.in,
+	  extensions/postgis_topology/Makefile.in: Do not assume
+	  utils/create_unpackaged.pl is executable
+
+2014-06-26 22:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12670] postgis/lwgeom_functions_basic.c, regress/tickets.sql,
+	  regress/tickets_expected: #2712 ST_Segmentize exception on Empty
+	  input: getPoint4d_p: point offset out of range
+
+2014-06-26 13:04  Sandro Santilli <strk at keybit.net>
+
+	* [r12669] README.postgis: Add note about ./autogen.sh
+
+2014-06-26 12:06  Sandro Santilli <strk at keybit.net>
+
+	* [r12668] README.md: Add README.md to show nice travis link on the
+	  github mirror
+	  
+	  See http://github.com/postgis/postgis
+
+2014-06-26 11:03  Sandro Santilli <strk at keybit.net>
+
+	* [r12666] liblwgeom/lwgeom_geos_clean.c: Fix potential memory
+	  fault in ST_MakeValid
+	  
+	  The fault would be triggered by passing a non-empty collection
+	  to ST_MakeValid where any "made-valid" component would result
+	  being non accepted by the final geometry collection constructor.
+	  
+	  I'm not sure an input exists right now to trigger that case,
+	  but worth fixing anyway.
+	  
+	  Bug found by Alvaro Huarte:
+	  https://github.com/postgis/postgis/pull/21
+
+2014-06-26 08:02  Sandro Santilli <strk at keybit.net>
+
+	* [r12664] configure.ac: Fix handling of bogus argument passed to
+	  --with-sfcgal (#2784)
+	  
+	  Patch by Vincent Mora
+
+2014-06-25 13:30  Sandro Santilli <strk at keybit.net>
+
+	* [r12661] NEWS, README.postgis: With latest changes, support for
+	  libjson 0.9 was restored :)
+
+2014-06-25 12:31  Sandro Santilli <strk at keybit.net>
+
+	* [r12660] liblwgeom/lwin_geojson.c: Still build libjson code when
+	  having 0.9
+
+2014-06-25 11:24  Sandro Santilli <strk at keybit.net>
+
+	* [r12659] liblwgeom/lwin_geojson.c: Oops, unterminated #ifdef
+	  
+	  See https://travis-ci.org/postgis/postgis/builds/28397745#L1062
+
+2014-06-25 10:28  Sandro Santilli <strk at keybit.net>
+
+	* [r12658] liblwgeom/lwin_geojson.c: Attempt re-adding support fo
+	  libjson < 0.10 (#2723)
+	  
+	  See https://travis-ci.org/postgis/postgis/builds/28394436#L1330
+
+2014-06-25 09:49  Sandro Santilli <strk at keybit.net>
+
+	* [r12656] liblwgeom/lwgeom_sfcgal.h: Fix warning: no previous
+	  prototype for 'lwgeom_sfcgal_version'
+
+2014-06-25 08:37  Sandro Santilli <strk at keybit.net>
+
+	* [r12654] regress/regress_sfcgal.sql, regress/sfcgal/empty.sql,
+	  regress/sfcgal/empty_expected, regress/sfcgal/measures.sql,
+	  regress/sfcgal/regress.sql, regress/sfcgal/tickets.sql,
+	  regress/sfcgal/tickets_expected: Fix SFCGAL tests to work with
+	  all versions (#2755)
+
+2014-06-25 07:54  Sandro Santilli <strk at keybit.net>
+
+	* [r12653] NEWS, README.postgis: Document minimum required
+	  libjson-c version being 0.10
+	  
+	  Latest debian stable (wheezy) packages 0.11 already.
+	  See http://trac.osgeo.org/postgis/ticket/2539#comment:6
+
+2014-06-25 07:25  Sandro Santilli <strk at keybit.net>
+
+	* [r12652] NEWS, postgis/lwgeom_in_geojson.c: Report libjson
+	  version from postgis_full_version(), closing #2159
+
+2014-06-24 22:45  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12651] liblwgeom/cunit/cu_libgeom.c, liblwgeom/lwline.c: #2775
+	  lwline_from_lwmpoint leaks memory
+
+2014-06-24 21:59  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12647] configure.ac, liblwgeom/lwin_geojson.c,
+	  postgis_config.h.in: #2723 failure to build against external
+	  json-c 0.12
+
+2014-06-24 21:04  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12645] extensions/postgis_tiger_geocoder/Makefile.in: Use macro
+	  GREP instead of hardcoded
+
+2014-06-24 20:58  Regina Obe <lr at pcorp.us>
+
+	* [r12644] doc/reference_sfcgal.xml, postgis/sfcgal.sql.in: #2779
+	  put in missing availability information
+
+2014-06-24 20:43  Regina Obe <lr at pcorp.us>
+
+	* [r12643] postgis/sfcgal.sql.in: #2753 Add ST_IsPlanar (hmm did I
+	  forget to put in this ST_MinkowskiSum)
+
+2014-06-24 15:27  Sandro Santilli <strk at keybit.net>
+
+	* [r12642] postgis/lwgeom_backend_api.c: Revert r12350 as it didn't
+	  fix #2382
+	  
+	  Upgrades between 2.1 and 2.2 were fixed by r12641 and refraining
+	  from upgrading a GUC in presence of a pre-installed one is not
+	  the
+	  right way to deal with the problem (we'd rather want to replace
+	  an old GUC).
+	  
+	  See #2755 (thanks vmo)
+
+2014-06-24 15:12  Sandro Santilli <strk at keybit.net>
+
+	* [r12641] utils/postgis_proc_upgrade.pl: Force load of target
+	  shared object before major version check
+	  
+	  The load tries to ensure it's the load of the _old_ library that
+	  fails,
+	  rather than the one of the _new_ library.
+	  
+	  A failed load of the old library would make major version check
+	  resort
+	  to call the postgis_scripts_installed() which would contain the
+	  correct
+	  version since version 1.1.0 up. Load of the old library should
+	  only fail
+	  when the old library is 2.1.0 up so there's no problem there.
+	  
+	  NOTE: Failure of loading the _new_ library could still happen if
+	  the upgrade
+	  script is loaded in a session in which the _old_ library was used
+	  already.
+	  This is not something we can fix as there's no "unload" command
+	  in PostgreSQL.
+	  
+	  Closes #2382
+
+2014-06-23 15:36  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12639] raster/test/regress/load_outdb-pre.pl,
+	  raster/test/regress/load_outdb-pre.sh: add comments for out-db
+	  raster in regress tests
+
+2014-06-23 14:39  Sandro Santilli <strk at keybit.net>
+
+	* [r12638] raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected: Disable ST_MemSize test
+	  for outdb rasters
+	  
+	  I don't seem to be able to get a static memory size for them, so
+	  for now the test is disabled (but the problem remains)
+
+2014-06-23 08:54  Sandro Santilli <strk at keybit.net>
+
+	* [r12637] raster/test/regress/rt_utility.sql: Fix ST_MemSize test
+	  query with PostgreSQL 9.1
+	  
+	  See https://travis-ci.org/postgis/postgis/builds/28204298#L2377
+
+2014-06-23 07:37  Sandro Santilli <strk at keybit.net>
+
+	* [r12636] raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected: Subtract size of offdb
+	  raster paths in test for ST_MemSize
+	  
+	  Doing so should make the resulting size equal on all systems,
+	  fixing the travis builds:
+	  https://travis-ci.org/postgis/postgis#L2373-L2380
+
+2014-06-23 07:26  Sandro Santilli <strk at keybit.net>
+
+	* [r12635] doc/reference_raster.xml: Typo
+
+2014-06-22 02:51  Regina Obe <lr at pcorp.us>
+
+	* [r12634] doc/reference_misc.xml, doc/reference_raster.xml: #2770
+	  Document new ST_MemSize for raster and #2769 name change for
+	  geometry (ST_MEm_Size to ST_MemSize)
+
+2014-06-21 17:30  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12631] NEWS, raster/rt_pg/rtpg_band_properties.c,
+	  raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected: fix premature memory
+	  free in RASTER_getBandPath (ST_BandPath)
+
+2014-06-20 10:37  Sandro Santilli <strk at keybit.net>
+
+	* [r12630] NEWS, raster/rt_pg/rtpg_utility.c,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected: Implement
+	  ST_MemSize(raster)
+	  
+	  Closes #2770
+	  Includes testcases, but no documentation
+
+2014-06-20 10:12  Sandro Santilli <strk at keybit.net>
+
+	* [r12629] NEWS, postgis/postgis.sql.in,
+	  regress/lwgeom_regress.sql, regress/regress.sql: Deprecate
+	  ST_Mem_Size, welcome ST_MemSize
+	  
+	  Closes #2769
+
+2014-06-20 06:11  Regina Obe <lr at pcorp.us>
+
+	* [r12628] doc/reference_sfcgal.xml,
+	  doc/xsl/sfcgal_comments.sql.xsl: #2753 fix xsl to not trap intro
+
+2014-06-20 05:51  Regina Obe <lr at pcorp.us>
+
+	* [r12627] doc/reference_sfcgal.xml: #2753 change func proto
+	  ST_Minkowski to ST_MinkowskiSum
+
+2014-06-20 05:41  Regina Obe <lr at pcorp.us>
+
+	* [r12626] doc/reference_sfcgal.xml: #2753: patch from vmp --
+	  revised patch moving intro into an abstract instead of as
+	  separate section
+
+2014-06-19 11:23  Sandro Santilli <strk at keybit.net>
+
+	* [r12625] NEWS, raster/rt_pg/rtpg_inout.c,
+	  raster/rt_pg/rtpostgis.sql.in: Add postgis_noop(raster) function
+
+2014-06-16 06:55  Regina Obe <lr at pcorp.us>
+
+	* [r12624]
+	  extensions/postgis/sql_bits/mark_editable_objects.sql.in: #2737
+	  typo
+
+2014-06-16 06:53  Regina Obe <lr at pcorp.us>
+
+	* [r12623]
+	  extensions/postgis/sql_bits/mark_editable_objects.sql.in,
+	  spatial_ref_sys.sql: #2737 add back 900913 and update backup
+	  exclusion to exclude these. We still need to do somethng about
+	  upgrading spatial_ref_sys in general.
+
+2014-06-16 06:24  Regina Obe <lr at pcorp.us>
+
+	* [r12622] spatial_ref_sys.sql: #2737 patch from Even Rouault:
+	  Upgrade of spatial_ref_sys.sql to EPSG v8.4, note also this
+	  update spatial_ref_sys to go back to using DATUM instead of
+	  towgs84 (back to PostGIS 1.5 syntax), add new definitions, fix
+	  some existing ones.
+
+2014-06-11 21:38  Regina Obe <lr at pcorp.us>
+
+	* [r12618] extensions/upgradeable_versions.mk: missing migration
+	  path from 2.1.3
+
+2014-06-09 04:25  Regina Obe <lr at pcorp.us>
+
+	* [r12610] doc/reference_raster.xml: fix typo in function proto for
+	  ST_NotSameAlignmentReason (had ST_SameAlignment)
+
+2014-06-01 23:38  Regina Obe <lr at pcorp.us>
+
+	* [r12605] doc/reference_raster.xml: #2752: raster @ and ~
+	  operators not documented
+
+2014-06-01 21:54  Regina Obe <lr at pcorp.us>
+
+	* [r12603] doc/reference_raster.xml: #2752: raster && geometry is
+	  undocumented
+
+2014-05-29 09:57  Sandro Santilli <strk at keybit.net>
+
+	* [r12601] raster/rt_pg/rtpostgis.sql.in: Add availability info for
+	  raster/geometry operators
+	  
+	  See #2752
+
+2014-05-27 16:34  Sandro Santilli <strk at keybit.net>
+
+	* [r12589] raster/rt_pg/Makefile.in: Wrap rtpostgis_upgrade.sql in
+	  a transaction (#2749)
+
+2014-05-25 19:51  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12585] NEWS: add news for GDAL 2.0
+
+2014-05-25 19:51  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12584] raster/rt_core/rt_geometry.c,
+	  raster/rt_core/rt_raster.c: basic support for GDAL 2.0
+
+2014-05-21 09:46  Sandro Santilli <strk at keybit.net>
+
+	* [r12577] postgis/lwgeom_functions_analytic.c: Reduce overhead of
+	  ST_Simplify calls against points and multipoints
+	  
+	  It takes half the time to run against 800k point records now
+	  (still double the time it takes to return those 800k records
+	  directly)
+	  
+	  See #2745
+
+2014-05-19 11:15  Sandro Santilli <strk at keybit.net>
+
+	* [r12575] HOWTO_RELEASE: Drop PlanetPostgis announce (automatic
+	  via http://postgis.net/news)
+
+2014-05-19 03:03  Regina Obe <lr at pcorp.us>
+
+	* [r12570] java/jdbc/pom.xml, java/jdbc_jtsparser/pom.xml: fix
+	  links and version
+
+2014-05-14 10:27  Sandro Santilli <strk at keybit.net>
+
+	* [r12565] extensions/postgis/Makefile.in: Use a variable for
+	  extname
+
+2014-05-14 10:06  Sandro Santilli <strk at keybit.net>
+
+	* [r12564] extensions/postgis/Makefile.in,
+	  extensions/postgis_topology/Makefile.in,
+	  extensions/postgis_topology/extlock.sql,
+	  utils/create_unpackaged.pl: Complain if extension scripts are
+	  sourced in psql
+
+2014-05-14 09:09  Sandro Santilli <strk at keybit.net>
+
+	* [r12562] HOWTO_RELEASE, doc/Makefile.in, doc/postgis.xml:
+	  Automate postgis_download_url setting in doc/postgis.xml
+	  
+	  Drop manual step from HOWTO_RELEASE (and change list to
+	  unnumbered)
+	  Closes #2735
+
+2014-05-14 08:43  Sandro Santilli <strk at keybit.net>
+
+	* [r12560] HOWTO_RELEASE: Drop checkout step from release
+	  procedure, other cleanups
+	  
+	  See #2736
+
+2014-05-13 17:12  Sandro Santilli <strk at keybit.net>
+
+	* [r12546] HOWTO_RELEASE: Reorder release steps to avoid touching
+	  repository after tag
+
+2014-05-13 16:58  Sandro Santilli <strk at keybit.net>
+
+	* [r12543] GNUmakefile.in, HOWTO_RELEASE: Add "ChangeLog" rule,
+	  update HOWTO_RELEASE with that recipe
+
+2014-05-13 15:33  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12541] raster/rt_pg/rtpostgis.c: tweak messages
+
+2014-05-13 15:33  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12540] raster/test/cunit/cu_misc.c: disable one unit test
+
+2014-05-13 15:33  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12539] raster/rt_pg/rtpostgis.c: emit message for unknown GDAL
+	  drivers
+
+2014-05-13 12:44  Sandro Santilli <strk at keybit.net>
+
+	* [r12534] postgis_config.h.in: Fix header guard
+
+2014-05-13 09:24  Sandro Santilli <strk at keybit.net>
+
+	* [r12530] postgis_config.h.in: Header-guard postgis_config.h
+
+2014-05-12 21:41  Regina Obe <lr at pcorp.us>
+
+	* [r12528] postgis/gserialized_estimate.c: fix url back
+
+2014-05-12 21:39  Regina Obe <lr at pcorp.us>
+
+	* [r12527] postgis/gserialized_estimate.c: #2732
+	  gserialized_estimate crashes under mingw64 windows when compiled
+	  with --enabled-debug
+
+2014-05-06 14:05  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12519] raster/rt_pg/rtpostgis.c: strcat instead of sprintf
+
+2014-05-05 17:09  Sandro Santilli <strk at keybit.net>
+
+	* [r12504] extensions/postgis_extension_helper.sql,
+	  topology/Makefile.in, topology/sql/manage/ManageHelper.sql.in:
+	  Tweak search_path inline when creating topology extension
+	  
+	  Also fixes postgis website url and "make clean" rule.
+	  NOTE: I found that AddToSearchPath code is duplicated, might be
+	  a good idea to drop one of the two implementations (both
+	  touched with this commit)
+
+2014-05-05 08:24  Sandro Santilli <strk at keybit.net>
+
+	* [r12503] regress/run_test.pl: Remove debugging print from
+	  run_test.pl
+
+2014-05-05 08:08  Sandro Santilli <strk at keybit.net>
+
+	* [r12501] configure.ac: Offline rasters are always supported
+
+2014-05-04 15:51  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12495] doc/reference_guc.xml: add text mentioning env variables
+
+2014-05-04 15:51  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12494] raster/rt_pg/rtpostgis.c: added support for
+	  POSTGIS_GDAL_ENABLED_DRIVERS and POSTGIS_ENABLE_OUTDB_RASTERS
+	  environment variables to set the boot values of the GUCs
+	  postgis.gdal_enabled_drivers and postgis.enable_outdb_rasters,
+	  respectively
+
+2014-04-30 11:37  Sandro Santilli <strk at keybit.net>
+
+	* [r12493] utils/postgis_proc_upgrade.pl: Honour "Last Updated"
+	  objects comment for upgrade script (#2722)
+
+2014-04-26 14:01  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12492] NEWS, doc/reference_guc.xml, raster/rt_core/librtcore.h,
+	  raster/rt_core/rt_band.c, raster/rt_core/rt_util.c,
+	  raster/rt_pg/rtpostgis.c, raster/test/cunit/cu_misc.c,
+	  raster/test/regress/loader/BasicOutDB.select.sql,
+	  raster/test/regress/permitted_gdal_drivers.sql,
+	  raster/test/regress/rt_bytea.sql: add VSICURL keyword for GUC
+	  postgis.gdal_enabled_drivers. add GUC posgis.enable_outdb_rasters
+
+2014-04-23 16:16  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12488] raster/test/regress/permitted_gdal_drivers.sql,
+	  raster/test/regress/permitted_gdal_drivers_expected: check before
+	  inserting records into spatial_ref_sys. ticket #2715
+
+2014-04-22 14:29  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12486] raster/test/regress/load_outdb-pre.pl,
+	  raster/test/regress/load_outdb-pre.sh,
+	  raster/test/regress/loader/BasicOutDB.select.sql,
+	  raster/test/regress/permitted_gdal_drivers.sql,
+	  raster/test/regress/rt_asgdalraster.sql,
+	  raster/test/regress/rt_asjpeg.sql,
+	  raster/test/regress/rt_aspng.sql,
+	  raster/test/regress/rt_astiff.sql,
+	  raster/test/regress/rt_fromgdalraster.sql: Unit tests fail on
+	  PostgreSQL 9.1 due to GUC behavior changes between 9.1 and 9.2.
+	  Ticket #2714
+
+2014-04-21 12:38  Regina Obe <lr at pcorp.us>
+
+	* [r12485] doc/reference_accessor.xml, doc/reference_editor.xml:
+	  #2713: properly cast text to geom (don't enforce bad habits),
+	  flag ST_StartPoint and ST_EndPoint as working with
+	  CIRCULARLINSTRINGS
+
+2014-04-21 12:17  Regina Obe <lr at pcorp.us>
+
+	* [r12484] doc/reference_editor.xml: #2713 flag ST_ForceCurve as a
+	  curve function
+
+2014-04-21 08:28  Regina Obe <lr at pcorp.us>
+
+	* [r12483] regress/binary_expected: #2685: get rid of COPY lines
+	  (we are now stripping them since 9.4 adds it also when enable
+	  notice only)
+
+2014-04-21 08:12  Regina Obe <lr at pcorp.us>
+
+	* [r12482] regress/run_test.pl: #2685: ignore COPY notice (new
+	  feature in 9.4 tripping up regress checking)
+
+2014-04-19 08:41  Baris Ergun <barisergun75 at gmail.com>
+
+	* [r12481] java/jdbc/pom.xml, java/jdbc_jtsparser/pom.xml: #2626
+	  adding patch suggestion from @shane to jdbc and jdbc-jtsparser
+	  java projects inorder to be prepared to manually release jdbc
+	  jars on OSSRH
+
+2014-04-14 23:12  Regina Obe <lr at pcorp.us>
+
+	* [r12479] doc/installation.xml: #2343 missing --with-sfcgal in
+	  docs
+
+2014-04-13 22:02  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12477] raster/rt_core/librtcore.h, raster/rt_core/rt_band.c,
+	  raster/rt_core/rt_util.c, raster/rt_pg/rtpg_create.c,
+	  raster/rt_pg/rtpg_gdal.c, raster/rt_pg/rtpostgis.c: If GUC
+	  postgis.gdal_enabled_drivers = 'DISABLE_ALL', use of GDALOpen and
+	  GDALOpenShared is disabled.
+
+2014-04-13 03:14  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12476] configure.ac, raster/raster_config.h.in,
+	  raster/rt_core/rt_band.c: remove --disable-offline-raster compile
+	  flag as by default the GUC postgis.gdal_enabled_drivers is set to
+	  DISABLE_ALL
+
+2014-04-13 03:07  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12475] doc/reference_guc.xml: document the GUC
+	  postgis.gdal_enabled_drivers
+
+2014-04-13 03:07  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12474] NEWS, raster/rt_core/librtcore.h,
+	  raster/rt_core/rt_band.c, raster/rt_core/rt_raster.c,
+	  raster/rt_core/rt_util.c, raster/rt_pg/rtpg_create.c,
+	  raster/rt_pg/rtpg_gdal.c, raster/rt_pg/rtpostgis.c,
+	  raster/test/regress/check_gdal.sql,
+	  raster/test/regress/check_gdal_expected,
+	  raster/test/regress/load_outdb-pre.pl,
+	  raster/test/regress/load_outdb-pre.sh,
+	  raster/test/regress/loader/BasicOutDB.select.sql,
+	  raster/test/regress/permitted_gdal_drivers.sql,
+	  raster/test/regress/rt_asgdalraster.sql,
+	  raster/test/regress/rt_asjpeg.sql,
+	  raster/test/regress/rt_aspng.sql,
+	  raster/test/regress/rt_astiff.sql,
+	  raster/test/regress/rt_bytea.sql,
+	  raster/test/regress/rt_fromgdalraster.sql: Addition of GUC
+	  postgis.gdal_enabled_drivers with default set to all GDAL drivers
+	  disabled
+
+2014-04-13 03:07  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12473] raster/rt_pg/rtpostgis.c: initial steps at GUCs and
+	  additional drivers to skip by default
+
+2014-04-11 09:26  Sandro Santilli <strk at keybit.net>
+
+	* [r12468] regress/typmod.sql, regress/typmod_expected: Fix
+	  testsuite with custom POSTGIS_REGRESS_DB set
+
+2014-04-11 09:05  Sandro Santilli <strk at keybit.net>
+
+	* [r12466] NEWS, raster/rt_pg/rtpostgis.c: Also disable PDF GDAL
+	  driver by default
+
+2014-04-11 04:30  Regina Obe <lr at pcorp.us>
+
+	* [r12464] doc/installation.xml: #2711: topology script locations
+	  are wrong
+
+2014-04-11 00:08  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12461] raster/rt_core/rt_warp.c: remove some noisy debug
+	  messages
+
+2014-04-10 21:53  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12457] NEWS, raster/rt_core/librtcore.h,
+	  raster/rt_core/rt_geometry.c, raster/rt_core/rt_raster.c,
+	  raster/rt_core/rt_util.c, raster/rt_core/rt_warp.c,
+	  raster/rt_pg/rtpostgis.c, raster/test/cunit/cu_gdal.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/permitted_gdal_drivers.sql,
+	  raster/test/regress/permitted_gdal_drivers_expected: by default,
+	  prevent PostGIS raster from using GDAL drivers that can easily be
+	  abused (VRT, MEM, WCS, WMS)
+
+2014-04-10 21:53  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12456] raster/rt_pg/rtpostgis.c: default blocking of GDAL VRT
+	  WCS WMS and MEM drivers
+
+2014-04-10 14:35  Sandro Santilli <strk at keybit.net>
+
+	* [r12455] raster/rt_core/rt_band.c: Do not allow loading offline
+	  rasters when explicitly disabled
+	  
+	  Previous commit only disabled _saving_ rasters with offline flag,
+	  this one prevents actually loading the offline data.
+	  You can still dump databases with offline raster specs.
+
+2014-04-10 14:22  Sandro Santilli <strk at keybit.net>
+
+	* [r12454] raster/rt_core/rt_serialize.c: Fix typo in error message
+
+2014-04-10 14:10  Sandro Santilli <strk at keybit.net>
+
+	* [r12453] raster/rt_core/Makefile.in: Encode dependency of raster
+	  objects on header files
+
+2014-04-10 09:54  Sandro Santilli <strk at keybit.net>
+
+	* [r12452] regress/run_test.pl: Allow specifying name of regress
+	  database on make check
+	  
+	  Honours a POSTGIS_REGRESS_DB environment variable
+
+2014-04-10 09:53  Sandro Santilli <strk at keybit.net>
+
+	* [r12451] configure.ac: Fix build with offline raster enabled (the
+	  default)
+
+2014-04-10 09:18  Sandro Santilli <strk at keybit.net>
+
+	* [r12450] configure.ac, raster/raster_config.h.in,
+	  raster/rt_core/rt_serialize.c: Add support for disabling offline
+	  raster storage at compile time
+	  
+	  Adds --disable-offline-raster configure switch
+	  Testsuite fails with offline rasters disabled (could be fixed to
+	  skip offline raster tests)
+
+2014-04-09 20:10  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12448] extensions/postgis_tiger_geocoder/sql_bits,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwout_twkb.c,
+	  loader/pgsql2shp-core.c, postgis, postgis/lwgeom_sqlmm.c, raster,
+	  raster/rt_pg, topology: Quiet LLVM warnings and remove old
+	  ignores from properties
+
+2014-04-09 17:02  Sandro Santilli <strk at keybit.net>
+
+	* [r12446] liblwgeom/lwin_wkb.c: Add more debug prints
+
+2014-04-09 02:54  Regina Obe <lr at pcorp.us>
+
+	* [r12442] doc/xsl/postgis_gardentest.sql.xsl: add malformed
+	  polygons and linestrings
+
+2014-04-08 08:49  Sandro Santilli <strk at keybit.net>
+
+	* [r12439] .gitignore, doc/Makefile.in, regress/Makefile.in: Clean
+	  files generated on 'make gaden'
+	  
+	  And tell git to ignore them
+
+2014-04-07 19:15  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12436] regress/tickets.sql, regress/tickets_expected: #2672
+	  regresstest
+
+2014-04-07 15:09  Mateusz Loskot <mateusz at loskot.net>
+
+	* [r12435] doc/using_raster_dataman.xml: Document
+	  raster_columns.out_db metadata (Ticket #2705)
+
+2014-04-07 14:56  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12434] NEWS: Fix ticket #
+
+2014-04-07 14:51  Mateusz Loskot <mateusz at loskot.net>
+
+	* [r12432] loader/pgsql2shp-core.c: Handle error condition from
+	  fputs
+
+2014-04-07 14:44  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12430] NEWS, postgis/lwgeom_dumppoints.c,
+	  regress/dumppoints.sql: #2704, ST_DumpPoints of EMPTY geometries
+	  crashes server
+
+2014-04-07 14:39  Sandro Santilli <strk at keybit.net>
+
+	* [r12429] loader/pgsql2shp-core.c: Re-add printing return from
+	  puts with POSTGIS_DEBUG_LEVEL defined
+
+2014-04-07 14:39  Sandro Santilli <strk at keybit.net>
+
+	* [r12428] regress/Makefile.in: Echo input during garden testing
+
+2014-04-07 13:31  Mateusz Loskot <mateusz at loskot.net>
+
+	* [r12427] loader/pgsql2shp-core.c: Update r12421: Remove use of no
+	  longer existent fputs result
+
+2014-04-05 12:30  Sandro Santilli <strk at keybit.net>
+
+	* [r12424] regress/Makefile.in: Fix "make garden" rule (#2701)
+
+2014-04-05 04:03  Regina Obe <lr at pcorp.us>
+
+	* [r12423] doc/release_notes.xml: cut in 2.0.5 release notes
+
+2014-04-04 11:47  Sandro Santilli <strk at keybit.net>
+
+	* [r12421] loader/pgsql2shp-core.c, regress/dumper/null3d.dmp,
+	  regress/dumper/null3d_expected.dbf,
+	  regress/dumper/null3d_expected.shp,
+	  regress/dumper/null3d_expected.shx, regress/run_test.pl: Fix type
+	  detection in tables with null geometries (#2700)
+	  
+	  Includes testcase
+
+2014-04-04 05:26  Regina Obe <lr at pcorp.us>
+
+	* [r12417] doc/xsl/postgis_gardentest.sql.xsl: #2698 put in
+	  converter for geomjson and fix tests to catch geomkml
+
+2014-04-04 03:24  Regina Obe <lr at pcorp.us>
+
+	* [r12415] doc/reference_accessor.xml: remove more too much
+	  information
+
+2014-04-04 03:21  Regina Obe <lr at pcorp.us>
+
+	* [r12413] doc/reference_accessor.xml: get rid of synonym
+	  description - don't want to have to remember to update 2
+	  functions all the time.
+
+2014-04-04 03:19  Regina Obe <lr at pcorp.us>
+
+	* [r12412] doc/reference_accessor.xml: #2696: correct the doco that
+	  ST_NumInteriorRings no longer works with multipolygons since
+	  polys
+
+2014-04-03 21:53  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12411] NEWS, liblwgeom/lwin_geojson.c, regress/in_geojson.sql,
+	  regress/in_geojson_expected: #2697, ST_GeomFromGeoJSON() of
+	  invalid GeoJSON Polygons crashes server process
+
+2014-03-31 04:18  Regina Obe <lr at pcorp.us>
+
+	* [r12399] extensions/upgradeable_versions.mk: add 2.0.5 and
+	  replace 2.1.2dev with 2.1.2
+
+2014-03-29 19:14  Regina Obe <lr at pcorp.us>
+
+	* [r12397] NEWS: up port 2.1.1 and 2.1.2 release items from
+	  branch/2.1
+
+2014-03-29 05:17  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12385] doc/release_notes.xml: #2690, documentation needs 2.1.2
+	  release section
+
+2014-03-28 20:11  Sandro Santilli <strk at keybit.net>
+
+	* [r12382] regress/legacy.sql: Also find uninstall_legacy.sql in
+	  :scriptdir, use \cd for 9.1 support
+
+2014-03-28 19:41  Sandro Santilli <strk at keybit.net>
+
+	* [r12380] topology/test/regress/st_createtopogeo.sql: More
+	  spatial_ref_sys truncation during test
+
+2014-03-28 19:00  Sandro Santilli <strk at keybit.net>
+
+	* [r12376] regress/legacy.sql: Have regress/legacy.sql truncate
+	  spatial_ref_sys
+
+2014-03-28 18:57  Sandro Santilli <strk at keybit.net>
+
+	* [r12375] regress/legacy.sql, regress/run_test.pl: Allow using
+	  :scriptdir variable in regress tests
+	  
+	  Have legacy.sql use it to find legacy.sql.
+	  The run_test.pl script sets it using pg_config when --extensions
+	  switch is given.
+
+2014-03-28 13:07  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12374] regress/loader/ReprojectPts-pre.sql,
+	  regress/regress_ogc.sql, regress/regress_proj.sql: #2687, pass
+	  tests when both raster and vector installed
+
+2014-03-26 15:04  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12365] liblwgeom/lwgeodetic_tree.c: CircNode compare function
+	  needs to deference inputs
+
+2014-03-26 10:25  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12364] liblwgeom/lwin_geojson.c: Quiet llvm warning
+
+2014-03-26 10:23  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12363] liblwgeom/lwin_geojson.c: Go back to old hasz behavior
+
+2014-03-26 10:11  Olivier Courtin <olivier.courtin at oslandia.com>
+
+	* [r12361] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: #2681 fix.
+
+2014-03-26 09:31  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12356] liblwgeom/lwin_geojson.c: Fix up GeoJSON empty poly fix
+	  a little more
+
+2014-03-26 09:25  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12355] configure.ac, liblwgeom/lwin_geojson.c,
+	  regress/in_geojson.sql, regress/in_geojson_expected: #2619,
+	  SIGSEGV in ST_GeomFromGeoJSON with empty list of coordinates
+
+2014-03-25 20:08  Baris Ergun <barisergun75 at gmail.com>
+
+	* [r12353] java/jdbc/pom.xml, java/jdbc_jtsparser/pom.xml: #2626
+	  updating pom.xml versions to 2.2.0SVN on trunk
+
+2014-03-25 18:59  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12351] postgis/lwgeom_backend_api.c: #2382, Can't upgrade
+	  postgis ERROR: attempt to redefine parameter "postgis.backend"
+
+2014-03-25 17:35  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12350] postgis/lwgeom_backend_api.c: #2382, Can't upgrade
+	  postgis ERROR: attempt to redefine parameter "postgis.backend"
+
+2014-03-25 11:38  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12346] liblwgeom/cunit/cu_ptarray.c: Remove test output
+
+2014-03-25 08:35  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12345] liblwgeom/cunit/cu_tree.c: Quiet tests
+
+2014-03-25 08:03  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12342] liblwgeom/cunit/cu_tree.c: Uncomment tests
+
+2014-03-24 15:25  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12340] liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, liblwgeom/lwgeodetic_tree.c,
+	  liblwgeom/lwgeodetic_tree.h,
+	  postgis/geography_measurement_trees.c: #2634, should fix
+	  geography-tree-distance errors in cases
+	  where polygons interact with collections.
+
+2014-03-24 15:14  Sandro Santilli <strk at keybit.net>
+
+	* [r12339] regress/run_test.pl: Update $libver after upgrade
+
+2014-03-24 09:07  Olivier Courtin <olivier.courtin at oslandia.com>
+
+	* [r12338] doc/installation.xml: #2330 Add SFCGAL Boost (and more)
+	  requires
+
+2014-03-22 05:51  Regina Obe <lr at pcorp.us>
+
+	* [r12337] raster/rt_core/librtcore.h: #2620 allow kFreeBSD to be
+	  treated as FreeBSD
+
+2014-03-22 04:26  Regina Obe <lr at pcorp.us>
+
+	* [r12333] raster/rt_pg/rtpostgis.sql.in: #2674 raster missing
+	  availability info for some operators and functions used in
+	  equality operator
+
+2014-03-18 16:35  Sandro Santilli <strk at keybit.net>
+
+	* [r12330] .travis.yml: Fix travis build by only installing
+	  postgresql 9.1 (#2678)
+
+2014-03-16 18:36  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12329] liblwgeom/lwout_twkb.c, postgis/lwgeom_accum.c: Fix for
+	  #2671
+
+2014-03-13 21:26  Regina Obe <lr at pcorp.us>
+
+	* [r12325] doc/installation.xml: #2551: documentation upgrade (old
+	  way update) but revised to reflect we no longer have version
+	  number on update scripts.
+
+2014-03-13 21:09  Regina Obe <lr at pcorp.us>
+
+	* [r12323] doc/Makefile.in: #2621 Resources for documentation
+	  doesn't get installed - apply patch from mwanner
+
+2014-03-10 20:34  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12322] regress/twkb.sql, regress/twkb_expected: Add a twkb
+	  regression test more
+
+2014-03-10 20:25  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12321] liblwgeom/lwout_twkb.c: Make the error message about
+	  wrong calculated size in twkb a little more verbose.
+
+2014-03-10 20:08  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12320] liblwgeom/lwout_twkb.c: lround should be more correct
+	  than round since we expect a long int in return
+
+2014-03-10 19:31  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12319] postgis/lwgeom_accum.c: #2670 cleaning some code
+
+2014-03-10 19:16  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12318] postgis/lwgeom_accum.c: #2672, fix null handling for
+	  ST_AsTWKBagg
+
+2014-03-10 18:45  Regina Obe <lr at pcorp.us>
+
+	* [r12316] topology/sql/populate.sql.in: #2609 topogeo_AddPolygon
+	  unnecessary use of DISTINCT
+
+2014-03-10 04:30  Regina Obe <lr at pcorp.us>
+
+	* [r12315] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/raster_gardentest.sql.xsl: update log table name for 2.2
+	  among other things
+
+2014-03-09 23:16  Regina Obe <lr at pcorp.us>
+
+	* [r12313] doc/using_postgis_dataman.xml: #2558: WKT form(s) of
+	  MULTIPOINT documentation make OGC compliant
+
+2014-03-09 18:51  Sandro Santilli <strk at keybit.net>
+
+	* [r12311] NEWS, configure.ac: Error out at configure time if no
+	  SQL preprocessor can be found
+	  
+	  Closes #2666
+
+2014-03-09 18:42  Sandro Santilli <strk at keybit.net>
+
+	* [r12310] authors.git, authors.svn: Add Baris to git/svn authors
+	  files
+
+2014-03-09 14:24  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12309] regress/Makefile.in, regress/twkb.sql,
+	  regress/twkb_expected: Add regression tests for twkb
+
+2014-03-08 00:45  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12307] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic_tree.c:
+	  #2636, Regress ST_Distance_Sphere between 2.1.2dev and 2.0.4 with
+	  2D
+
+2014-03-07 23:58  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12305] NEWS, liblwgeom/lwgeodetic.c: #2634, regression in
+	  sphere distance code
+
+2014-03-07 23:20  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12302] NEWS, liblwgeom/lwin_geojson.c: #2546, GeoJSON with
+	  string coordinates parses incorrectly
+
+2014-03-06 06:32  Regina Obe <lr at pcorp.us>
+
+	* [r12299] doc/reference_output.xml: revise ST_AsTWKBAgg so garden
+	  autogenerates aggregate test and comment is right
+
+2014-03-06 05:54  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12297] liblwgeom/cunit/cu_geodetic.c, liblwgeom/g_box.c: #2638,
+	  geography ST_Intersects bugginess with Polygon/multilinestring M
+
+2014-03-06 05:40  Regina Obe <lr at pcorp.us>
+
+	* [r12295] doc/reference_output.xml: another minor edit
+
+2014-03-06 05:39  Regina Obe <lr at pcorp.us>
+
+	* [r12294] doc/reference_output.xml: forgot to save last change
+
+2014-03-06 05:38  Regina Obe <lr at pcorp.us>
+
+	* [r12293] doc/reference_output.xml, postgis/postgis.sql.in: #2661:
+	  st_astwkb_agg(geometry,int) needs code comment and violates
+	  naming convention, also fixed minor issues with description
+
+2014-03-04 20:35  Baris Ergun <barisergun75 at gmail.com>
+
+	* [r12292] java/jdbc/jtssrc, java/jdbc/pom.xml,
+	  java/jdbc_jtsparser, java/jdbc_jtsparser/README,
+	  java/jdbc_jtsparser/examples, java/jdbc_jtsparser/org,
+	  java/jdbc_jtsparser/pom.xml, java/jdbc_jtsparser/src,
+	  java/jdbc_jtsparser/src/main, java/jdbc_jtsparser/src/main/java,
+	  java/jdbc_jtsparser/src/main/java/examples,
+	  java/jdbc_jtsparser/src/main/java/org,
+	  java/jdbc_jtsparser/src/main/java/org/postgis/jts/overview.html:
+	  #2626 moving jtssrc folder as a separate maven project to
+	  ./java/jdbc_jtsparser
+
+2014-03-03 21:15  Baris Ergun <barisergun75 at gmail.com>
+
+	* [r12291] java/jdbc, java/jdbc/pom.xml,
+	  java/jdbc/src/org/postgis/overview.html: #2626 removing
+	  properties from version tag also removing explicit plugin
+	  declarations and adding an overview.html for javadoc
+
+2014-03-03 18:01  Sandro Santilli <strk at keybit.net>
+
+	* [r12290] utils/postgis_proc_upgrade.pl: Fix guessing module from
+	  .sql script (#2659)
+
+2014-03-03 03:06  Regina Obe <lr at pcorp.us>
+
+	* [r12289] extensions/postgis/META.json,
+	  extensions/postgis/doc/postgis.md,
+	  extensions/postgis_tiger_geocoder/META.json,
+	  extensions/postgis_tiger_geocoder/doc/postgis_tiger_geocoder.md,
+	  extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_topology/META.json,
+	  extensions/postgis_topology/doc/postgis.md,
+	  extensions/postgis_topology/sql_bits/remove_from_extension.sql.in:
+	  fix website links to go to postgis.net
+
+2014-03-03 02:56  Regina Obe <lr at pcorp.us>
+
+	* [r12287]
+	  extensions/postgis/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_extension_helper.sql,
+	  extensions/postgis_extension_helper_uninstall.sql,
+	  extensions/upgradeable_versions.mk: allow upgrade from 2.1.2dev,
+	  fix copyright notices (e.g. point to postgis.net)
+
+2014-03-01 12:47  Sandro Santilli <strk at keybit.net>
+
+	* [r12286] NEWS, regress/run_test.pl: Add --upgrade-path switch,
+	  honour -v on install/upgrade error
+	  
+	  Also print scripts versions
+	  Closes #2652
+
+2014-02-25 17:56  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12283] postgis/geography_measurement_trees.c,
+	  postgis/gserialized_estimate.c: Fix variable decls in debug
+	  statements
+
+2014-02-25 14:49  Sandro Santilli <strk at keybit.net>
+
+	* [r12281] extensions/postgis_topology/Makefile.in: Fix topology
+	  extension upgrade script building (#2656)
+
+2014-02-25 08:32  Sandro Santilli <strk at keybit.net>
+
+	* [r12280] utils/postgis_proc_upgrade.pl: Qualify hash as such
+	  
+	  Attempt to fix #2656
+
+2014-02-24 20:47  Sandro Santilli <strk at keybit.net>
+
+	* [r12279] topology/Makefile.in: Remove unused variable
+
+2014-02-24 20:46  Sandro Santilli <strk at keybit.net>
+
+	* [r12278] .travis.yml: Do not use IRC notices for build statuses
+	  
+	  .. should still send messages to the IRC channel, just not
+	  notices
+
+2014-02-24 20:46  Sandro Santilli <strk at keybit.net>
+
+	* [r12277] .gitignore, regress/run_test.pl, topology/Makefile.in:
+	  Output single upgrade script for topology: topology_upgrade.sql
+
+2014-02-24 19:24  Sandro Santilli <strk at keybit.net>
+
+	* [r12276] .gitignore, extensions/postgis/Makefile.in,
+	  raster/rt_pg/Makefile.in, regress/run_test.pl: Output single
+	  upgrade script for rtpostgis: rtpostgis_upgrade.sql
+
+2014-02-24 18:37  Sandro Santilli <strk at keybit.net>
+
+	* [r12275] .gitignore: Update ignore file now that we have a single
+	  postgis_upgrade.sql
+
+2014-02-24 18:31  Sandro Santilli <strk at keybit.net>
+
+	* [r12274] extensions/postgis/Makefile.in, postgis/Makefile.in,
+	  regress/run_test.pl: Output single upgrade script for postgis:
+	  postgis_upgrade.sql
+
+2014-02-24 10:26  Sandro Santilli <strk at keybit.net>
+
+	* [r12273] postgis/postgis.sql.in: Let users without topology
+	  privileges call postgis_full_version()
+	  
+	  Closes #2655
+
+2014-02-24 08:26  Sandro Santilli <strk at keybit.net>
+
+	* [r12271] utils/postgis_proc_upgrade.pl: Have postgis_proc_upgrade
+	  read "source" version from the live db
+	  
+	  The "version_from" parameter becomes then obsoleted (still
+	  accepted)
+	  See #2560
+
+2014-02-24 06:45  Sandro Santilli <strk at keybit.net>
+
+	* [r12269] topology/sql/export/TopoJSON.sql.in,
+	  topology/sql/populate.sql.in, topology/sql/sqlmm.sql.in: Fully
+	  qualify calls to topology methods (#2653)
+
+2014-02-23 17:36  Sandro Santilli <strk at keybit.net>
+
+	* [r12267] .travis.yml: Do not use ubuntugis-unstable
+	  
+	  Also, search for libgdal and postgresql-server
+
+2014-02-23 17:35  Sandro Santilli <strk at keybit.net>
+
+	* [r12266] .travis.yml: Strip carriage returns from .travis.yml
+
+2014-02-23 16:29  Sandro Santilli <strk at keybit.net>
+
+	* [r12262] utils/postgis_proc_upgrade.pl: Fix AGG signatures with
+	  multi-word typenames
+	  
+	  For example... "double precision".
+	  This fixes upgrades involving drop/recreate of aggregates
+
+2014-02-23 16:22  Sandro Santilli <strk at keybit.net>
+
+	* [r12261] regress/run_test.pl: Fix --extension --upgrade handling
+
+2014-02-23 16:13  Sandro Santilli <strk at keybit.net>
+
+	* [r12260] regress/tickets.sql: Fix ambiguous query in tickets.sql
+	  when raster support is loaded
+	  
+	  See #2651
+
+2014-02-23 16:09  Sandro Santilli <strk at keybit.net>
+
+	* [r12259] extensions/postgis/Makefile.in: Do not force
+	  extension-specific removal of objects on upgrade
+	  
+	  It should be taken care of by the upgrade scripts themselves
+
+2014-02-23 15:42  Sandro Santilli <strk at keybit.net>
+
+	* [r12257] regress/run_test.pl: Add support for --extension
+	  --upgrade in run_test.pl
+
+2014-02-22 21:49  Sandro Santilli <strk at keybit.net>
+
+	* [r12255] utils/postgis_proc_upgrade.pl: Allow DROP (with no IF
+	  EXISTS) to end up in upgrade scripts
+	  
+	  Fixes raster upgrade
+
+2014-02-22 21:29  Sandro Santilli <strk at keybit.net>
+
+	* [r12254] raster/rt_pg/rtpostgis_drop.sql.in: More drop of
+	  non-obsoleted aggregate signatures removed
+
+2014-02-22 21:09  Sandro Santilli <strk at keybit.net>
+
+	* [r12253] raster/rt_pg/rtpostgis_drop.sql.in: Do not force drop of
+	  non-obsoleted aggregate signatures
+
+2014-02-22 21:09  Sandro Santilli <strk at keybit.net>
+
+	* [r12252] raster/rt_pg/Makefile.in: Fix cleaning rule
+
+2014-02-22 20:44  Sandro Santilli <strk at keybit.net>
+
+	* [r12251] liblwgeom/cunit/Makefile.in: Simplify use of flags
+
+2014-02-22 20:39  Sandro Santilli <strk at keybit.net>
+
+	* [r12250] .gitignore: Ignore new temporary raster upgrade files
+
+2014-02-22 20:34  Sandro Santilli <strk at keybit.net>
+
+	* [r12249] liblwgeom/cunit/Makefile.in: Fix build of unit tests
+	  with libtool 2.4.2
+	  
+	  The error was:
+	  undefined reference to symbol 'lround@@GLIBC_2.2.5'
+	  
+	  For some reason -lm found in liblwgeom.la is not being taken
+	  in consideration. See #2649
+
+2014-02-22 20:11  Sandro Santilli <strk at keybit.net>
+
+	* [r12248] liblwgeom/cunit/cu_varint.c: Fix reference to website
+
+2014-02-22 20:10  Sandro Santilli <strk at keybit.net>
+
+	* [r12247] postgis/Makefile.in, raster/rt_pg/Makefile.in: Stop
+	  copying upgrade minor from upgrade_prev
+	  
+	  postgis_proc_upgrade should do the right thing
+
+2014-02-22 16:48  Sandro Santilli <strk at keybit.net>
+
+	* [r12246] utils/postgis_proc_upgrade.pl: Print warning on missing
+	  last updated info in aggregates
+
+2014-02-22 16:29  Sandro Santilli <strk at keybit.net>
+
+	* [r12245] utils/postgis_proc_upgrade.pl: Use last
+	  Changed/Availability in a multi-change comment
+	  
+	  See #2560
+
+2014-02-22 16:16  Sandro Santilli <strk at keybit.net>
+
+	* [r12244] utils/postgis_proc_upgrade.pl: Extract "last updated"
+	  info of aggregates from sql
+	  
+	  See #2560
+
+2014-02-22 15:31  Sandro Santilli <strk at keybit.net>
+
+	* [r12243] raster/rt_pg/Makefile.in, raster/rt_pg/rtpostgis.sql.in,
+	  topology/sql/topoelement/topoelement_agg.sql.in,
+	  utils/postgis_proc_upgrade.pl: Soft upgrade: avoid drop/recreate
+	  of aggregates that hadn't changed
+	  
+	  Generate raster upgrade script using postgis_proc_upgrade
+	  Add 2.2.0 availability for new raster aggregates
+	  See #2560
+
+2014-02-22 08:36  Sandro Santilli <strk at keybit.net>
+
+	* [r12237] topology/sql/sqlmm.sql.in: Fully qualify
+	  topology.topology (#2648)
+
+2014-02-20 05:46  Regina Obe <lr at pcorp.us>
+
+	* [r12235] doc/reference_measure.xml: #2646 typo arithmetric ->
+	  arithmetric in ST_Centroid
+
+2014-02-14 03:32  Regina Obe <lr at pcorp.us>
+
+	* [r12233] doc/using_raster_dataman.xml: #2576 Error in manual wrt
+	  using_raster RT_PLPython
+
+2014-02-14 03:25  Regina Obe <lr at pcorp.us>
+
+	* [r12231] doc/reference_constructor.xml: #25#2582 fix all
+	  references to -1 in constructors and change to 0 (SRID Unknown)
+
+2014-02-05 23:00  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12228] NEWS, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/lwgeodetic.c: #2534, st_distance is returning incorrect
+	  results for large geographies
+
+2014-02-05 17:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12227] NEWS, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/lwout_gml.c, regress/out_geometry.sql,
+	  regress/out_geometry_expected: #2632, ST_AsGML for curve types
+
+2014-02-05 05:25  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12225] regress/empty.sql, regress/sql-mm-curvepoly.sql,
+	  regress/sql-mm-curvepoly_expected: #2396, wrap wkb outputting
+	  tests in explicit endianness
+
+2014-02-04 23:17  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12224] NEWS, postgis/gserialized_estimate.c: #2615,
+	  EstimatedExtent (and hence, underlying stats) gathering wrong
+	  bbox
+
+2014-02-04 22:44  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12222] NEWS, postgis/gserialized_estimate.c: #2543, invalid
+	  join selectivity error from simple query
+
+2014-02-04 19:44  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12219] NEWS, postgis/geography_measurement_trees.c,
+	  regress/tickets.sql, regress/tickets_expected: #2556, geography
+	  ST_Intersects results depending on insert order
+
+2014-02-04 08:39  Sandro Santilli <strk at keybit.net>
+
+	* [r12217] NEWS, topology/sql/export/TopoJSON.sql.in,
+	  topology/sql/export/gml.sql.in,
+	  topology/sql/query/getedgebypoint.sql.in,
+	  topology/sql/query/getfacebypoint.sql.in,
+	  topology/sql/query/getnodebypoint.sql.in: Drop more
+	  geometry::text casts (#2616)
+	  
+	  Drop them from get*bypoint functions and from
+	  TopoJSON and GML export functions
+
+2014-02-04 08:34  Sandro Santilli <strk at keybit.net>
+
+	* [r12215] doc/extras_topology.xml: Fix ST_ModEdgeSplit
+	  documentation (#2633)
+
+2014-02-04 05:57  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12211] liblwgeom/lwgeodetic_tree.c,
+	  liblwgeom/lwgeodetic_tree.h: Add more info to circtree structures
+
+2014-01-30 19:17  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12204] java/jdbc/src/org/postgis/GeometryCollection.java:
+	  #2588, GeometryCollection constructor parse defect for sub
+	  geometries (POINTM,POLYGONM,...) of GEOMETRYCOLLECTIONM (From
+	  bergun)
+
+2014-01-29 21:47  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12201] liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_varint.c: First
+	  varint cunit test
+
+2014-01-29 21:44  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12200] liblwgeom/lwout_twkb.c: Remove flagging for first vertex
+	  and just substract with 0 instead
+
+2014-01-29 21:32  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r12199] liblwgeom/liblwgeom.h.in, liblwgeom/lwout_twkb.c,
+	  liblwgeom/lwout_twkb.h: Use signed instead of unsignet varint for
+	  ID and check for values out of varint range
+
+2014-01-29 17:49  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12198] configure.ac, doc/Makefile.comments.in,
+	  doc/html/image_src/Makefile.in, doc/html/image_src/generator.c,
+	  doc/html/image_src/styles.c, doc/html/image_src/styles.h,
+	  doc/man/pgsql2shp.1, doc/man/shp2pgsql.1,
+	  extras/WFS_locks/WFS_locks.sql.in, extras/rpm/spec/postgis.spec,
+	  java/Makefile, java/jdbc/Makefile.in, java/jdbc/README,
+	  java/jdbc/jtssrc/pom.xml, java/jdbc/pom.xml,
+	  liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_buildarea.c,
+	  liblwgeom/cunit/cu_clean.c, liblwgeom/cunit/cu_force_sfs.c,
+	  liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/cunit/cu_geos.c,
+	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_in_geojson.c,
+	  liblwgeom/cunit/cu_in_wkb.c, liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_misc.c, liblwgeom/cunit/cu_node.c,
+	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
+	  liblwgeom/cunit/cu_out_wkb.c, liblwgeom/cunit/cu_out_wkt.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/cunit/cu_sfcgal.c, liblwgeom/cunit/cu_split.c,
+	  liblwgeom/cunit/cu_stringbuffer.c, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_surface.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/cunit/cu_tree.c,
+	  liblwgeom/cunit/cu_triangulate.c, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeodetic_tree.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwgeom_debug.c, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwgeom_geos.h, liblwgeom/lwgeom_geos_clean.c,
+	  liblwgeom/lwgeom_geos_node.c, liblwgeom/lwgeom_geos_split.c,
+	  liblwgeom/lwgeom_log.h, liblwgeom/lwgeom_sfcgal.c,
+	  liblwgeom/lwgeom_sfcgal.h, liblwgeom/lwgeom_transform.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwline.c,
+	  liblwgeom/lwlinearreferencing.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwout_geojson.c,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwout_kml.c,
+	  liblwgeom/lwout_svg.c, liblwgeom/lwout_twkb.h,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwpsurface.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwtin.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/measures.c,
+	  liblwgeom/measures.h, liblwgeom/measures3d.c,
+	  liblwgeom/measures3d.h, liblwgeom/ptarray.c,
+	  liblwgeom/stringbuffer.h, libpgcommon/Makefile.in,
+	  libpgcommon/common.h, libpgcommon/cunit/Makefile.in,
+	  libpgcommon/lwgeom_cache.c, libpgcommon/lwgeom_cache.h,
+	  libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h, loader/Makefile.in,
+	  loader/README.pgsql2shp, loader/README.shp2pgsql,
+	  loader/cunit/Makefile.in, loader/cunit/cu_pgsql2shp.c,
+	  loader/cunit/cu_pgsql2shp.h, loader/cunit/cu_shp2pgsql.c,
+	  loader/cunit/cu_shp2pgsql.h, loader/cunit/cu_tester.c,
+	  loader/cunit/cu_tester.h, loader/pgsql2shp-cli.c,
+	  loader/pgsql2shp-core.h, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/shpcommon.c, loader/shpcommon.h,
+	  macros/ac_proj4_version.m4, postgis/Makefile.in,
+	  postgis/gserialized_estimate.c, postgis/legacy_gist.sql.in,
+	  postgis/long_xact.c, postgis/long_xact.sql.in,
+	  postgis/lwgeom_accum.c, postgis/lwgeom_backend_api.c,
+	  postgis/lwgeom_backend_api.h, postgis/lwgeom_box.c,
+	  postgis/lwgeom_btree.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_analytic.h,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_prepared.h,
+	  postgis/lwgeom_geos_relatematch.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_rtree.c,
+	  postgis/lwgeom_sfcgal.c, postgis/lwgeom_sfcgal.h,
+	  postgis/lwgeom_spheroid.c, postgis/lwgeom_sqlmm.c,
+	  postgis/lwgeom_transform.c, postgis/lwgeom_triggers.c,
+	  postgis/postgis_drop_after.sql, postgis/postgis_module.c,
+	  postgis/uninstall_long_xact.sql.in,
+	  postgis/uninstall_sqlmm.sql.in,
+	  raster/macros/ac_proj4_version.m4, raster/test/cunit/Makefile.in,
+	  raster/test/cunit/cu_tester.c, raster/test/cunit/cu_tester.h,
+	  regress/Makefile.in, topology/Makefile.in,
+	  topology/sql/export/TopoJSON.sql.in,
+	  topology/sql/export/gml.sql.in,
+	  topology/sql/manage/CopyTopology.sql.in,
+	  topology/sql/manage/TopologySummary.sql.in,
+	  topology/sql/polygonize.sql.in, topology/sql/populate.sql.in,
+	  topology/sql/predicates.sql.in,
+	  topology/sql/query/GetNodeEdges.sql.in,
+	  topology/sql/query/GetRingEdges.sql.in,
+	  topology/sql/query/getedgebypoint.sql.in,
+	  topology/sql/query/getfacebypoint.sql.in,
+	  topology/sql/query/getnodebypoint.sql.in,
+	  topology/sql/topoelement/topoelement_agg.sql.in,
+	  topology/sql/topogeometry/cleartopogeom.sql.in,
+	  topology/sql/topogeometry/simplify.sql.in,
+	  topology/sql/topogeometry/totopogeom.sql.in,
+	  topology/sql/topogeometry/type.sql.in, topology/topology.sql.in,
+	  topology/topology_drop_after.sql.in,
+	  topology/topology_drop_before.sql.in: #2622, Update links to
+	  PostGIS website in source file headers
 
-2014-02-05 05:25  pramsey
+2014-01-27 18:03  Sandro Santilli <strk at keybit.net>
 
-	* regress/empty.sql, regress/sql-mm-curvepoly.sql,
-	  regress/sql-mm-curvepoly_expected: #2396, wrap wkb outputting
-	  tests in explicit endianness
+	* [r12196] topology/sql/sqlmm.sql.in: Replace calls to deprecated
+	  'Equals' with calls to 'ST_Equals'
 
-2014-02-04 23:17  pramsey
+2014-01-27 18:02  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/gserialized_estimate.c: #2615, EstimatedExtent (and
-	  hence, underlying stats) gathering wrong bbox
+	* [r12195] NEWS, topology/sql/sqlmm.sql.in: Drop all calls to
+	  geometry::text during topology population (#2616)
 
-2014-02-04 22:43  pramsey
+2014-01-27 11:32  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/gserialized_estimate.c: #2543, invalid join
-	  selectivity error from simple query
+	* [r12194] topology/sql/populate.sql.in, topology/sql/sqlmm.sql.in:
+	  Reduce calls to geometry::text during topology population (#2616)
 
-2014-02-04 19:44  pramsey
+2014-01-22 16:19  Sandro Santilli <strk at keybit.net>
 
-	* NEWS: #2556 news entry
+	* [r12189] NEWS: Add notice about 2.0.0 having drop the SRID check
+	  in operator &&
 
-2014-02-04 19:31  pramsey
+2014-01-18 20:28  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* regress/tickets.sql, regress/tickets_expected: #2556, regression
-	  test
+	* [r12188] liblwgeom/liblwgeom.h.in, liblwgeom/lwout_twkb.c,
+	  postgis/lwgeom_accum.c, postgis/lwgeom_inout.c: Fix two wrong
+	  behavior in TWKB with optional id and type in different
+	  situations
 
-2014-02-04 08:36  strk
+2014-01-17 03:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* doc/extras_topology.xml: Fix ST_ModEdgeSplit documentation
-	  (#2633)
+	* [r12185] NEWS, raster/rt_core/rt_band.c: Fix the inability to
+	  open more than ~1024 unique out-db files in one process
 
-2014-02-04 06:30  pramsey
+2014-01-13 22:50  Sandro Santilli <strk at keybit.net>
 
-	* postgis/geography_measurement_trees.c: #2422, geography
-	  regression difference ST_DWithin
-	  "Fix" actually just removes tolerance-stop from the distance
-	  calculation
-	  Question of why tolerance stop fails, remains open.
+	* [r12184] topology/sql/sqlmm.sql.in: Ensure face splitting
+	  algorithm uses the edge index (#2610)
 
-2014-02-04 06:05  pramsey
+2014-01-07 04:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* postgis/geography_measurement_trees.c: Free tree on short circuit
+	* [r12179] NEWS, install-sh, raster/rt_core/librtcore.h,
+	  raster/rt_core/rt_mapalgebra.c, raster/rt_core/rt_pixel.c,
+	  raster/rt_pg/rtpg_mapalgebra.c, raster/rt_pg/rtpg_pixel.c,
+	  raster/rt_pg/rtpostgis.sql.in, raster/test/cunit/cu_band_misc.c,
+	  raster/test/cunit/cu_mapalgebra.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_mapalgebra_mask.sql,
+	  raster/test/regress/rt_mapalgebra_mask_expected: Addition of mask
+	  parameter for ST_MapAlgebra. Merge of pull request 17 from
+	  github. Lots of thanks to nclay for the hard work. Ticket #2341.
 
-2014-02-04 06:01  pramsey
+2014-01-04 17:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* liblwgeom/lwgeodetic_tree.c, liblwgeom/lwgeodetic_tree.h: Add
-	  circtree get point signature
+	* [r12177] NEWS, raster/rt_core/rt_raster.c: Remove use of void
+	  pointers in rt_raster_from_gdal_dataset to prevent void point
+	  arithemetics. Ticket #2589
 
-2014-02-04 05:56  pramsey
+2014-01-01 01:28  Regina Obe <lr at pcorp.us>
 
-	* doc/faq.xml, doc/using_postgis_dataman.xml: Update docs on WKB
+	* [r12170] doc/extras_topology.xml: #2593: document topology
+	  relationship functions intersects and equals.
 
-2014-02-04 05:56  pramsey
+2013-12-19 17:24  Sandro Santilli <strk at keybit.net>
 
-	* HOWTO_RELEASE: Update SVN urls for osgeo https
+	* [r12166] extensions/postgis_tiger_geocoder/Makefile.in: Ensure
+	  output dir is created before attempting to write to it
+	  
+	  See https://travis-ci.org/postgis/postgis/builds/15654853#L1357
 
-2014-02-04 05:47  pramsey
+2013-12-18 15:55  Sandro Santilli <strk at keybit.net>
 
-	* postgis/geography_measurement_trees.c: #2556, ST_Intersects
-	  results depending on insert order
+	* [r12165] NEWS, postgis/postgis.sql.in: Do not allow installing
+	  postgis twice in the same database (#2580)
+	  
+	  Checks for the presence of a "postgis_version" function,
+	  and if found raises an exception with a message with
+	  the schema containing it.
 
-2014-01-30 19:17  pramsey
+2013-12-15 20:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* java/jdbc/src/org/postgis/GeometryCollection.java: #2588,
-	  GeometryCollection constructor parse defect for sub geometries
-	  (POINTM,POLYGONM,...) of GEOMETRYCOLLECTIONM (From bergun)
+	* [r12162] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in: upgrade
+	  fixes for ST_CountAgg
 
-2014-01-22 16:21  strk
+2013-12-15 19:24  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS: Add notice about 2.0.0 having drop the SRID check in
-	  operator &&
+	* [r12161] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/rt_pg/rtpostgis_drop.sql.in,
+	  raster/test/regress/rt_count.sql,
+	  raster/test/regress/rt_count_expected: Add ST_CountAgg(). Ticket
+	  #2567
 
-2014-01-17 03:46  dustymugs
+2013-12-14 20:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS, raster/rt_core/rt_api.c: Fix the inability to open more
-	  than ~1024 unique out-db files in one process
+	* [r12160] NEWS, doc/reference_raster.xml: Added docs for
+	  ST_SummaryStatsAgg()
 
-2014-01-13 22:49  strk
+2013-12-14 20:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS, topology/sql/sqlmm.sql.in: Ensure face splitting algorithm
-	  uses the edge index (#2610)
+	* [r12159] NEWS, raster/rt_pg/rtpg_statistics.c,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/rt_pg/rtpostgis_drop.sql.in,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in,
+	  raster/test/regress/rt_histogram_expected,
+	  raster/test/regress/rt_quantile_expected,
+	  raster/test/regress/rt_summarystats.sql,
+	  raster/test/regress/rt_summarystats_expected: added
+	  ST_SummaryStatsAgg(). Ticket #2565
 
-2014-01-04 17:45  dustymugs
+2013-12-14 20:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS, raster/rt_core/rt_api.c: Remove use of void pointers in
-	  rt_raster_from_gdal_dataset to prevent void point arithemetics.
-	  Ticket #2589
+	* [r12158] .gitignore: ignore all
+	  topology/topology_upgrade_*_minor.sql
 
-2014-01-01 02:18  robe
+2013-12-07 19:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* doc/extras_topology.xml: #2593: document topology relationship
-	  functions intersects and equals.
+	* [r12155] doc/reference_guc.xml: fix GUC gdal_datapath
 
-2013-12-19 17:29  strk
+2013-12-07 14:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* extensions/postgis_tiger_geocoder/Makefile.in: Ensure output dir
-	  is created before attempting to write to it
-	  
-	  See https://travis-ci.org/postgis/postgis/builds/15654853#L1357
+	* [r12152] NEWS, raster/rt_core/rt_geometry.c,
+	  raster/rt_core/rt_mapalgebra.c, raster/rt_pg/rtpg_internal.c,
+	  raster/rt_pg/rtpg_internal.h, raster/rt_pg/rtpg_mapalgebra.c,
+	  raster/test/regress/rt_reclass.sql,
+	  raster/test/regress/rt_reclass_expected: fix parse cleanup of
+	  reclassarg and add unit tests
 
-2013-12-18 15:54  strk
+2013-12-07 14:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS, postgis/postgis.sql.in: Do not allow installing postgis
-	  twice in the same database (#2580)
-	  
-	  Checks for the presence of a "postgis_version" function,
-	  and if found raises an exception with a message with
-	  the schema containing it.
+	* [r12151] raster/rt_core/librtcore.h,
+	  raster/rt_core/librtcore_internal.h: rearrange includes
 
-2013-12-07 14:41  dustymugs
+2013-12-05 12:45  Regina Obe <lr at pcorp.us>
 
-	* NEWS, raster/rt_pg/rt_pg.c, raster/test/regress/rt_reclass.sql,
-	  raster/test/regress/rt_reclass_expected: fix parsing issue of
-	  range arguments of ST_Reclass. Ticket #2555
+	* [r12150] doc/reference_guc.xml, doc/reference_raster.xml: #2554:
+	  Fix name of postgis.gdal_path (wrong in docs). Give an example of
+	  new ST_MapAlgebra syntax for neighborhood callback for
+	  ST_Mean4ma.
 
-2013-11-27 16:03  dustymugs
+2013-11-27 15:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS, raster/rt_pg/rtpostgis.sql.in,
+	* [r12146] NEWS, raster/rt_pg/rtpostgis.sql.in,
 	  raster/test/regress/rt_asjpeg.sql,
 	  raster/test/regress/rt_asjpeg_expected,
 	  raster/test/regress/rt_aspng.sql,
@@ -2048,153 +8866,186 @@
 	  raster/test/regress/rt_astiff_expected: fix NULL raster handling
 	  in ST_AsPNG, ST_AsJPEG and ST_AsTIFF
 
-2013-11-21 17:24  strk
+2013-11-21 17:19  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, topology/sql/topogeometry/simplify.sql.in,
+	* [r12137] topology/sql/topogeometry/simplify.sql.in,
 	  topology/test/regress/st_simplify.sql,
 	  topology/test/regress/st_simplify_expected: Fix
 	  ST_Simplify(TopoGeometry) for hierarchical topogeoms (#2547)
 
-2013-11-21 16:52  strk
+2013-11-21 16:53  Sandro Santilli <strk at keybit.net>
 
-	* doc/extras_topology.xml: Add link from TopoElement to
+	* [r12136] doc/extras_topology.xml: Add link from TopoElement to
 	  TopoElementArray
 
-2013-11-21 16:52  strk
+2013-11-16 22:35  Regina Obe <lr at pcorp.us>
 
-	* raster/rt_pg/rtpostgis.sql.in: Fix dangling commutator for
-	  raster/geometry OPERATOR ~ (#2532)
+	* [r12128] HOWTO_RELEASE, extensions/upgradeable_versions.mk:
+	  #2544: clarify how to release docs, update the
+	  extensions/upgradeable_versions.mk to include latest releases
 
-2013-11-20 00:17  pramsey
+2013-11-12 22:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* NEWS, postgis/gserialized_gist_2d.c: #2494, Avoid unnecessary
-	  memory copy in gserialized_datum_get_box2df_p
+	* [r12125] configure.ac, liblwgeom/g_box.c,
+	  liblwgeom/lwcircstring.c, postgis/gserialized_gist_2d.c,
+	  postgis/gserialized_gist_nd.c, postgis_config.h.in: Remove
+	  warnings in llvm/clang
 
-2013-11-16 22:35  robe
+2013-11-11 18:48  Regina Obe <lr at pcorp.us>
 
-	* HOWTO_RELEASE: minor tweaks to how to release
+	* [r12121] doc/reference_raster.xml: #2541 put in missing para end
+	  tag
 
-2013-11-16 21:57  robe
+2013-11-11 17:42  Regina Obe <lr at pcorp.us>
 
-	* extensions/upgradeable_versions.mk: #2544: fix extension script
-	  (made a booboo last commit)
+	* [r12120] doc/reference_raster.xml: #2541 document = and ~= raster
+	  operators
 
-2013-11-16 20:01  robe
+2013-11-09 02:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* HOWTO_RELEASE, Version.config,
-	  extensions/upgradeable_versions.mk: #2544: change micro from svn
-	  to devand clarify how to release docs
+	* [r12116] NEWS, raster/rt_pg/rtpostgis.c,
+	  raster/test/regress/check_gdal.sql: Rename GUC
+	  postgis.gdal.datapath to postgis.gdal_datapath. Ticket #2540
 
-2013-11-12 21:40  pramsey
+2013-11-07 15:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* liblwgeom/g_box.c: #2542, build on Centos/ RHEL 5
+	* [r12108] NEWS, raster/rt_pg/rtpostgis.sql.in,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in,
+	  raster/test/regress/tickets.sql: Added missing operators. Ticket
+	  #2532
 
-2013-11-08 19:46  pramsey
+2013-11-06 17:16  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, Version.config: Set for next release
+	* [r12105] extensions/postgis_topology/Makefile.in,
+	  extensions/postgis_topology/sql_bits/topology--unpackaged.sql.in,
+	  utils/create_unpackaged.pl: Autogenerate the extension unpackaged
+	  script for topology (#2531)
+	  
+	  Required a change in create_unpackaged.pl to NOT add schemas
 
-2013-11-08 19:37  pramsey
+2013-11-06 16:52  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, README.postgis, Version.config,
+	* [r12104] extensions/postgis/Makefile.in,
 	  extensions/postgis/sql_bits/postgis--unpackaged.sql.in,
-	  extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in,
-	  extensions/postgis_topology/sql_bits/topology--unpackaged.sql.in:
-	  Update all manual bits for 2.1.1 release
+	  utils/create_unpackaged.pl: Autogenerate the extension unpackaged
+	  script (#2531)
+	  
+	  Uses a new create_unpackaged.pl script which may be also used
+	  for other extensions. This commit only uses it for the postgis
+	  one.
 
-2013-11-07 14:57  dustymugs
+2013-11-06 16:25  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, raster/rt_pg/rtpostgis.sql.in,
-	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in,
-	  raster/test/regress/tickets.sql: Add missing operators for
-	  raster. Ticket #2532
+	* [r12101] raster/rt_pg/rtpostgis.sql.in: Fix dangling commutator
+	  for raster/geometry OPERATOR ~ (#2532)
 
-2013-11-06 16:32  strk
+2013-11-06 15:10  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, postgis/postgis.sql.in: Remove duplicated signatures
+	* [r12100] extensions/Makefile.in: Do not continue if there's any
+	  error in building extensions
 
-2013-11-06 09:46  strk
+2013-11-06 14:56  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, liblwgeom/cunit/cu_split.c, liblwgeom/lwgeom_geos_split.c:
-	  Fix small memory leak in lwline_split_by_line (#2528)
-	  
-	  Thanks Alessandro Furieri for the report and test
+	* [r12099] postgis/postgis.sql.in: Drop another duplicated
+	  signature
 
-2013-11-06 09:42  strk
+2013-11-06 13:53  Sandro Santilli <strk at keybit.net>
 
-	* NEWS: tab to space
+	* [r12098] postgis/postgis.sql.in: Remove duplicated signature
 
-2013-11-06 05:12  dustymugs
+2013-11-06 09:39  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, raster/loader/raster2pgsql.c, raster/loader/raster2pgsql.h:
-	  added -k to raster2pgsql for skipping band is NODATA check
+	* [r12094] liblwgeom/cunit/cu_split.c,
+	  liblwgeom/lwgeom_geos_split.c: Fix small memory leak in
+	  lwline_split_by_line (#2528)
+	  
+	  Thanks Alessandro Furieri for the report and test
 
-2013-11-05 19:57  pramsey
+2013-11-06 04:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* postgis/lwgeom_functions_basic.c: #2529, inconsistent behaviour
-	  in ST_FlipCoordinates
+	* [r12092] NEWS, raster/loader/raster2pgsql.c,
+	  raster/loader/raster2pgsql.h: added -k to raster2pgsql for
+	  skipping band is NODATA check
 
-2013-11-05 18:25  pramsey
+2013-11-05 19:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ChangeLog, NEWS, README.postgis, doc/release_notes.xml: Update
-	  doco for 2.1.1 release
+	* [r12091] postgis/lwgeom_functions_basic.c: #2529, inconsistent
+	  behaviour in ST_FlipCoordinates
 
-2013-11-05 17:58  pramsey
+2013-11-05 19:01  Sandro Santilli <strk at keybit.net>
 
-	* extensions/postgis_tiger_geocoder/sql_bits, install-sh, postgis,
-	  raster/rt_pg, raster/test/cunit, topology, topology/test/regress:
-	  Ignore build artifacts
+	* [r12088] utils/Makefile.in, utils/create_undef.pl,
+	  utils/postgis_proc_upgrade.pl, utils/postgis_restore.pl.in: Fix
+	  urls
 
-2013-11-05 00:15  pramsey
+2013-11-04 20:51  Regina Obe <lr at pcorp.us>
 
-	* liblwgeom/lwgeom.c, regress/summary_expected: #2433, put SRIDs on
-	  sub-geometries
+	* [r12082] doc/installation.xml: #2517 change to reflect using 2.2
+	  scripts instead of 2.0 scripts
 
-2013-11-04 23:51  pramsey
+2013-11-03 02:53  Regina Obe <lr at pcorp.us>
 
-	* liblwgeom/cunit/cu_in_geojson.c, liblwgeom/cunit/cu_surface.c,
-	  liblwgeom/cunit/cu_tree.c: Quiet clang/llvm warnings
+	* [r12078] doc/installation.xml: fix xml parse error
 
-2013-11-04 23:17  pramsey
+2013-11-02 21:03  Bborie Park <bkpark at ucdavis.edu>
 
-	* configure.ac, liblwgeom/g_box.c, liblwgeom/lwcircstring.c,
-	  loader/pgsql2shp-core.c, loader/shpopen.c,
-	  postgis/gserialized_gist_2d.c, postgis/gserialized_gist_nd.c,
-	  postgis/lwgeom_sqlmm.c: Silence warnings under clang/llvm
+	* [r12077] raster/rt_core/rt_raster.c, raster/rt_core/rt_warp.c:
+	  code cleanup
 
-2013-11-04 20:48  robe
+2013-11-02 21:03  Bborie Park <bkpark at ucdavis.edu>
 
-	* doc/installation.xml: #2517 change to reflect using 2.1 scripts
-	  instead of 2.0 scripts
+	* [r12076] raster/rt_core/rt_warp.c: changed behavior of how
+	  non-spatially referenced rasters are handled
 
-2013-11-03 02:53  robe
+2013-11-02 21:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* doc/installation.xml: fix xml parse error
+	* [r12075] raster/rt_pg/rtpg_gdal.c, raster/rt_pg/rtpg_geometry.c:
+	  syntax cleanup
 
-2013-11-02 18:26  robe
+2013-11-02 18:30  Regina Obe <lr at pcorp.us>
 
-	* doc/installation.xml: #2522 document RegExp::Assemble perl
-	  dependency
+	* [r12074] doc/installation.xml: #2522 document RegExp::Assemble
+	  perl dependency
 
-2013-10-30 09:45  strk
+2013-10-30 09:54  Sandro Santilli <strk at keybit.net>
 
-	* NEWS: Reword raster license change NEWS item (#2514)
+	* [r12069] NEWS: Cleanup the NEWS file
+	  
+	  Drop license change info (#2514) as it's not really new since
+	  we'll be releasing 2.1.1 way before 2.2.0.
 
-2013-10-30 09:38  strk
+2013-10-30 09:35  Sandro Santilli <strk at keybit.net>
 
-	* LICENSE.TXT: Clarify licensing of PostGIS core as GPL2+ (#2515)
+	* [r12064] LICENSE.TXT: Clarify licensing of PostGIS core as GPL2+
+	  (#2515)
 
-2013-10-28 19:45  dustymugs
+2013-10-28 19:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS: wrong ticket
+	* [r12063] NEWS: wrong ticket
 
-2013-10-28 19:44  dustymugs
+2013-10-28 18:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS, raster/Makefile.in, raster/loader/Makefile.in,
+	* [r12058] raster/Makefile.in, raster/loader/Makefile.in,
 	  raster/loader/raster2pgsql.c, raster/loader/raster2pgsql.h,
 	  raster/macros/ac_proj4_version.m4, raster/rt_core/Makefile.in,
-	  raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
-	  raster/rt_pg/Makefile.in, raster/rt_pg/rt_pg.c,
-	  raster/rt_pg/rt_pg.h, raster/rt_pg/rtpostgis.sql.in,
+	  raster/rt_core/librtcore.h, raster/rt_core/librtcore_internal.h,
+	  raster/rt_core/rt_band.c, raster/rt_core/rt_context.c,
+	  raster/rt_core/rt_geometry.c, raster/rt_core/rt_mapalgebra.c,
+	  raster/rt_core/rt_pixel.c, raster/rt_core/rt_raster.c,
+	  raster/rt_core/rt_serialize.c, raster/rt_core/rt_serialize.h,
+	  raster/rt_core/rt_spatial_relationship.c,
+	  raster/rt_core/rt_statistics.c, raster/rt_core/rt_util.c,
+	  raster/rt_core/rt_warp.c, raster/rt_core/rt_wkb.c,
+	  raster/rt_pg/Makefile.in, raster/rt_pg/rtpg_band_properties.c,
+	  raster/rt_pg/rtpg_create.c, raster/rt_pg/rtpg_gdal.c,
+	  raster/rt_pg/rtpg_geometry.c, raster/rt_pg/rtpg_inout.c,
+	  raster/rt_pg/rtpg_internal.c, raster/rt_pg/rtpg_internal.h,
+	  raster/rt_pg/rtpg_mapalgebra.c, raster/rt_pg/rtpg_pixel.c,
+	  raster/rt_pg/rtpg_raster_properties.c,
+	  raster/rt_pg/rtpg_spatial_relationship.c,
+	  raster/rt_pg/rtpg_statistics.c, raster/rt_pg/rtpg_utility.c,
+	  raster/rt_pg/rtpostgis.c, raster/rt_pg/rtpostgis.h,
+	  raster/rt_pg/rtpostgis.sql.in,
 	  raster/rt_pg/rtpostgis_drop.sql.in,
 	  raster/rt_pg/rtpostgis_legacy.sql.in,
 	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in,
@@ -2207,8 +9058,7 @@
 	  raster/scripts/python/rtpixdump.py,
 	  raster/scripts/python/rtreader.py,
 	  raster/scripts/python/rtrowdump.py,
-	  raster/scripts/python/window.py, raster/test/Makefile.in,
-	  raster/test/cunit/Makefile.in,
+	  raster/scripts/python/window.py,
 	  raster/test/cunit/cu_band_basics.c,
 	  raster/test/cunit/cu_band_misc.c,
 	  raster/test/cunit/cu_band_stats.c, raster/test/cunit/cu_gdal.c,
@@ -2219,7 +9069,6 @@
 	  raster/test/cunit/cu_raster_misc.c,
 	  raster/test/cunit/cu_raster_wkb.c,
 	  raster/test/cunit/cu_spatial_relationship.c,
-	  raster/test/cunit/cu_tester.c, raster/test/cunit/cu_tester.h,
 	  raster/test/regress/Makefile.in, raster/test/regress/box3d.sql,
 	  raster/test/regress/bug_test_car5.sql,
 	  raster/test/regress/check_raster_columns.sql,
@@ -2242,63 +9091,161 @@
 	  raster/test/regress/rt_utility.sql: Change raster license from
 	  v3+ to v2+. Ticket #2516
 
-2013-10-24 19:54  pramsey
+2013-10-24 16:49  Sandro Santilli <strk at keybit.net>
+
+	* [r12054] doc/reference_editor.xml: Document ST_ForceCurve (#2430)
+
+2013-10-24 15:56  Sandro Santilli <strk at keybit.net>
+
+	* [r12053] utils/postgis_proc_upgrade.pl: Use
+	  postgis_scripts_installed to fetch installed version if
+	  lib_version fails
+	  
+	  Soft-uprading from 1.0 to any other 1.x would still fail unless
+	  the
+	  old 1.0 library is around. See #2510
+
+2013-10-19 17:12  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r12051] NEWS, raster/rt_pg/rtpostgis.sql.in: Support
+	  materialized views and foreign tables in raster_columns and
+	  raster_overviews. Ticket #2512
+
+2013-10-19 04:24  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12049] liblwgeom/lwgeom.c, regress/summary_expected: #2433,
+	  ST_ConcaveHull 2.1 regress failure compared to 2.0
+
+2013-10-18 21:32  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12048] postgis/postgis.sql.in: #2511, geometry_columns doesn't
+	  support materialized views or foreign tables
+
+2013-10-18 21:00  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12045] liblwgeom/liblwgeom.h.in, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/ptarray.c,
+	  regress/tickets_expected: #2463, st_length on curve is on
+	  linearized geom
+
+2013-10-18 17:20  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12042] postgis/gserialized_gist_2d.c: #2494, Avoid unnecessary
+	  memory copy in gserialized_datum_get_box2df_p
+	  From hayamiz. Adding to trunk for testing, acceptance before
+	  applying to 2.1/2.0
+
+2013-10-16 22:43  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12040] postgis/postgis.sql.in: #2511 geometry_columns doesn't
+	  support materialized views
+
+2013-10-16 16:12  Sandro Santilli <strk at keybit.net>
+
+	* [r12038] regress/run_test.pl: Close opened filedescriptors after
+	  use. Might help with #2509
+
+2013-10-15 15:02  Sandro Santilli <strk at keybit.net>
+
+	* [r12037] regress/run_test.pl: Use a different diff file for each
+	  tested shapefile output file
+	  
+	  Hopefully fixes #2507 (permission denied on overriding a tmp
+	  file)
+
+2013-10-15 14:31  Sandro Santilli <strk at keybit.net>
+
+	* [r12036] extensions/postgis/Makefile.in, postgis/Makefile.in,
+	  raster/rt_pg/Makefile.in: More hard-coded version numbers
+	  reduction
+	  
+	  This commit fixes raster and postgis/raster extension.
+	  I noticed that the extension files have what looks like being
+	  an attempt to compute the "previous" version in another way,
+	  but haven't tried to use those variables. Also, I think it would
+	  be worth moving all the version strings into the Version.config
+	  file in top-level. Not done by this commit, but comments left
+
+2013-10-13 15:44  Regina Obe <lr at pcorp.us>
+
+	* [r12035] regress/tickets.sql, regress/tickets_expected: #2506
+	  regress failure on 32-bit windows PostgreSQL. More stringent
+	  round but also subtract to guarantee they are the same
+
+2013-10-11 12:11  Sandro Santilli <strk at keybit.net>
 
-	* utils/postgis_proc_upgrade.pl: #2510,postgis_major_version_check
-	  interferes w/ upgrade
+	* [r12033] regress/dumper/literalsrid.dmp: Fix literalsrid dumper
+	  test (#2507)
 
-2013-10-19 17:20  dustymugs
+2013-10-11 12:11  Sandro Santilli <strk at keybit.net>
 
-	* NEWS, raster/rt_pg/rtpostgis.sql.in: add support for materialized
-	  views and foreign tables in raster_columns and raster_overviews.
-	  Ticket #2512
+	* [r12032] regress/run_test.pl: Name dumper test shapefile after
+	  test name (#2507)
 
-2013-10-18 21:32  pramsey
+2013-10-10 15:20  Sandro Santilli <strk at keybit.net>
 
-	* postgis/postgis.sql.in: #2511, geometry_columns doesn't support
-	  materialized views or foreign tables
+	* [r12028] regress/run_test.pl: Take stderr noise from diff as
+	  failure. Fixes false negatives (#2505)
 
-2013-10-18 20:59  pramsey
+2013-10-10 09:01  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwtree.c, liblwgeom/lwtree.h: Revert accidental code
-	  committed to lwtree.*
+	* [r12027] NEWS: Copy 2.1.0 NEWS section from the 2.1 branch
 
-2013-10-18 20:57  pramsey
+2013-10-10 08:45  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/liblwgeom.h.in, liblwgeom/lwalgorithm.c,
-	  liblwgeom/lwcircstring.c, liblwgeom/lwtree.c, liblwgeom/lwtree.h,
-	  liblwgeom/ptarray.c, regress/tickets_expected: #2463, st_length
-	  on curve is on linearized geom
+	* [r12026] regress/run_test: Drop run_test, long live run_test.pl !
 
-2013-10-16 22:41  pramsey
+2013-10-10 08:29  Sandro Santilli <strk at keybit.net>
 
-	* postgis/postgis.sql.in: #2511, geometry_columns doesn't support
-	  materialized views
+	* [r12025] NEWS, regress/Makefile.in, regress/dumper,
+	  regress/dumper/literalsrid-post.sql,
+	  regress/dumper/literalsrid-pre.sql,
+	  regress/dumper/literalsrid.dmp,
+	  regress/dumper/literalsrid_expected.dbf,
+	  regress/dumper/literalsrid_expected.prj,
+	  regress/dumper/literalsrid_expected.shp,
+	  regress/dumper/literalsrid_expected.shx,
+	  regress/dumper/realtable-post.sql,
+	  regress/dumper/realtable-pre.sql, regress/dumper/realtable.dmp,
+	  regress/dumper/realtable_expected.dbf,
+	  regress/dumper/realtable_expected.prj,
+	  regress/dumper/realtable_expected.shp,
+	  regress/dumper/realtable_expected.shx, regress/run_test.pl:
+	  Create regression tests for pgsql2shp (#2390)
+	  
+	  NOTE: only implemented in run_test.pl (not in run_test.sh)
+
+2013-10-10 07:11  Sandro Santilli <strk at keybit.net>
 
-2013-10-11 01:48  robe
+	* [r12024] regress/run_test.pl: Advertise -v, do not load rc file
+	  while fetching databases list
 
-	* regress/tickets.sql, regress/tickets_expected: #2506 regress
-	  failure on 32-bit windows PostgreSQL. More stringent round but
-	  also subtract to guarantee they are the same
+2013-10-09 15:58  Sandro Santilli <strk at keybit.net>
 
-2013-10-11 01:07  robe
+	* [r12023] regress/run_test.pl: Print usage and exit if only option
+	  switches are given to run_test.pl
 
-	* regress/tickets.sql, regress/tickets_expected: #2506 regress
-	  failure on 32-bit windows PostgreSQL. Round values so match on
-	  all platforms
+2013-10-09 15:24  Sandro Santilli <strk at keybit.net>
 
-2013-10-09 14:41  strk
+	* [r12022] regress/run_test.pl: Fix usage string for run_test.pl
 
-	* NEWS: Add 2.0.4 block in NEWS file
+2013-10-09 14:42  Sandro Santilli <strk at keybit.net>
 
-2013-10-09 14:38  strk
+	* [r12021] NEWS: Add 2.0.4 block in NEWS file
 
-	* NEWS, loader/pgsql2shp-cli.c: Fix segfault on bogus pgsql2shp
+2013-10-09 14:36  Sandro Santilli <strk at keybit.net>
+
+	* [r12017] loader/pgsql2shp-cli.c: Fix segfault on bogus pgsql2shp
 	  call (#2504)
 
-2013-10-09 06:45  strk
+2013-10-09 10:06  Sandro Santilli <strk at keybit.net>
+
+	* [r12015] postgis/Makefile.in: Reduce hard-coded version numbers
+	  to only one (previous minor version)
 
-	* NEWS, postgis/postgis.sql.in, topology/topology.sql.in,
+2013-10-09 06:36  Sandro Santilli <strk at keybit.net>
+
+	* [r12012] postgis/postgis.sql.in, topology/topology.sql.in,
 	  topology/topology_drop_before.sql.in: Put
 	  postgis_topology_scripts_installed() in topology schema (#2502)
 	  
@@ -2306,48 +9253,84 @@
 	  schema.
 	  The postgis_full_version() function is updated to find it there.
 
-2013-10-08 14:05  strk
+2013-10-08 17:46  Sandro Santilli <strk at keybit.net>
+
+	* [r12011] postgis/postgis_drop_after.sql,
+	  raster/rt_pg/rtpostgis_drop.sql.in: Drop signatures replaced in
+	  2.1 (#2489)
+
+2013-10-07 19:31  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r12009] postgis/gserialized_gist_2d.c: infinite loop around
+	  gserialized_gist_picksplit_2d from smagen (#2449)
 
-	* NEWS, postgis/postgis_drop_after.sql,
-	  raster/rt_pg/rtpostgis_drop.sql.in: Fix upgrades from 2.0 leaving
-	  stale function signatures (#2489)
+2013-10-07 17:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2013-10-07 19:20  pramsey
+	* [r12007] regress/run_test.pl: Filter LOG entries #2499
 
-	* postgis/gserialized_gist_2d.c: Apply patch from smagen to fix
-	  infinite loop in index where NaN geometry appears #2449
+2013-10-07 02:13  Regina Obe <lr at pcorp.us>
 
-2013-10-07 17:55  pramsey
+	* [r12005] doc/reference_guc.xml, doc/using_raster_dataman.xml: fix
+	  typos
 
-	* regress/run_test.pl: Filter LOG entries #2499
+2013-10-06 17:15  Regina Obe <lr at pcorp.us>
 
-2013-10-03 03:40  dustymugs
+	* [r12004] doc/postgis.xml: typo oops (hope strk doesn't catch
+	  this)
 
-	* raster/test/regress/rt_dumpvalues.sql,
+2013-10-06 17:00  Regina Obe <lr at pcorp.us>
+
+	* [r12003] doc/postgis.xml, doc/reference.xml,
+	  doc/reference_guc.xml, doc/reference_raster.xml,
+	  doc/xsl/postgis_comments.sql.xsl: add new section to document
+	  gucs, move raster postgis.gdal.data.path to guc section, exclude
+	  gucs from comment sql generation.
+
+2013-10-06 01:50  Regina Obe <lr at pcorp.us>
+
+	* [r12000] doc/faq.xml: update link for
+	  http://workshops.boundlessgeo.com/postgis-intro/ and also put in
+	  more pretty tags for common faqs
+
+2013-10-03 03:45  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r11999] raster/test/regress/rt_dumpvalues.sql,
 	  raster/test/regress/rt_dumpvalues_expected: added regression
 	  tests for ticket #2493
 
-2013-10-03 03:40  dustymugs
+2013-10-03 03:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS, raster/rt_pg/rt_pg.c: Fixed behavior of
-	  ST_DumpValues(raster, ...) when passed an empty raster
+	* [r11996] NEWS, raster/rt_pg/rtpg_pixel.c: Fixed behavior of
+	  ST_DumpValues(raster, ...) when passed an empty raster. Ticket
+	  #2493
 
-2013-09-30 20:26  robe
+2013-09-30 20:26  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql,
+	* [r11994] extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql,
 	  extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql,
 	  extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql: #2490
 	  point back to state level zip files (only available in tiger 2010
 	  folder)
 
-2013-09-27 21:17  robe
+2013-09-27 21:49  Regina Obe <lr at pcorp.us>
+
+	* [r11991] regress/tickets.sql, regress/tickets_expected: #2396
+	  change one more test to endian agnostic, fix transposition error
+	  in a ticket number
 
-	* regress/tickets.sql, regress/tickets_expected: correct typo in
-	  ticket # (as I noted in #2396 )
+2013-09-27 16:34  Sandro Santilli <strk at keybit.net>
+
+	* [r11989] regress/regress.sql, regress/regress_expected,
+	  regress/tickets_expected: Add deprecation WARNINGS for functions
+	  deprecated 1 version ago
+	  
+	  NOTE: it means a full version cycle with non-warned deprecations
+	  
+	  See #2440
 
-2013-09-27 16:08  strk
+2013-09-27 16:34  Sandro Santilli <strk at keybit.net>
 
-	* postgis/postgis.sql.in, postgis/sqldefines.h.in: Change
+	* [r11988] postgis/postgis.sql.in, postgis/sqldefines.h.in: Change
 	  deprecation warning to raise a WARNING after 2 version
 	  deprecation time
 	  
@@ -2359,111 +9342,158 @@
 	  
 	  See #2440
 
-2013-09-27 15:22  strk
+2013-09-27 14:58  Sandro Santilli <strk at keybit.net>
 
-	* postgis/postgis.sql.in: Drop misplaced comment
+	* [r11985] postgis/postgis.sql.in: Remove misplaced comment
 
-2013-09-27 03:30  robe
+2013-09-26 15:31  Sandro Santilli <strk at keybit.net>
 
-	* regress/tickets.sql, regress/tickets_expected: #2396 big-endian
-	  architecture regress failure
+	* [r11982] topology/sql/manage/TopologySummary.sql.in: Tweak
+	  TopologySummary output to count all layers (not only populated
+	  ones)
 
-2013-09-26 09:47  strk
+2013-09-24 21:50  Regina Obe <lr at pcorp.us>
 
-	* NEWS: Format!
+	* [r11978] regress/tickets_expected: #2396 liblwgeom tests fail on
+	  big-endian architectures (oops copied the wrong tickets file)
+	  (5th time)
 
-2013-09-24 21:57  robe
+2013-09-24 21:44  Regina Obe <lr at pcorp.us>
 
-	* regress/empty.sql, regress/regress.sql, regress/regress_expected,
-	  regress/sql-mm-compoundcurve.sql,
+	* [r11977] regress/tickets_expected: #2396 liblwgeom tests fail on
+	  big-endian architectures (oops copied the wrong tickets file)
+	  (4th time)
+
+2013-09-24 21:34  Regina Obe <lr at pcorp.us>
+
+	* [r11976] regress/regress.sql: #2396 liblwgeom tests fail on
+	  big-endian architectures (oops copied the wrong tickets file)
+	  (4th time)
+
+2013-09-24 21:23  Regina Obe <lr at pcorp.us>
+
+	* [r11975] regress/tickets.sql, regress/tickets_expected: #2396
+	  liblwgeom tests fail on big-endian architectures (oops copied the
+	  wrong tickets file) (3rd time hopefully a charm)
+
+2013-09-24 21:09  Regina Obe <lr at pcorp.us>
+
+	* [r11974] regress/tickets.sql, regress/tickets_expected: #2396
+	  liblwgeom tests fail on big-endian architectures (oops copied the
+	  wrong tickets file)
+
+2013-09-24 21:02  Regina Obe <lr at pcorp.us>
+
+	* [r11973] regress/empty.sql, regress/regress.sql,
+	  regress/regress_expected, regress/sql-mm-compoundcurve.sql,
 	  regress/sql-mm-compoundcurve_expected,
 	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected,
 	  regress/tickets.sql, regress/tickets_expected: #2396 liblwgeom
-	  tests fail on big-endian architectures (oops copied the wrong
-	  tickets file)
-
-2013-09-23 18:25  robe
+	  tests fail on big-endian architectures.
 
-	* NEWS, doc/extras_tigergeocoder.xml,
-	  doc/xsl/postgis_aggs_mm.xml.xsl: document #2478 support for tiger
-	  2013
+2013-09-23 04:52  Regina Obe <lr at pcorp.us>
 
-2013-09-23 04:53  robe
+	* [r11970] doc/installation.xml: #2466 point json-c to github loc
+	  instead of old 0.9 loc
 
-	* doc/installation.xml: #2466 point json-c to github loc instead of
-	  old 0.9 loc
+2013-09-22 21:43  Regina Obe <lr at pcorp.us>
 
-2013-09-23 04:36  robe
-
-	* extensions/postgis_tiger_geocoder/Makefile.in,
-	  extras/tiger_geocoder/tiger_2011/create_geocode.bat,
+	* [r11968] extras/tiger_geocoder/tiger_2011/create_geocode.bat,
 	  extras/tiger_geocoder/tiger_2011/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2011/geocode/interpolate_from_address.sql,
 	  extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql,
 	  extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql,
 	  extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql,
 	  extras/tiger_geocoder/tiger_2011/upgrade_geocoder.bat,
-	  extras/tiger_geocoder/tiger_2011/upgrade_geocoder.sh: #2478:
-	  incorporated Kahif Rasul's trunk fixes and also logic to enable
-	  tiger geocoder in 2.1 extension
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocoder.sh: #2483 patch
+	  from Kashif Rasul (get rid of deprecated calls, update to use
+	  faster dump format, and update create scripts to use 2013 data
+
+2013-09-22 02:40  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r11966] raster/rt_pg/rtpostgis.sql.in: clean up code for
+	  ST_Intersects(geometry, raster)
 
-2013-09-22 02:13  robe
+2013-09-22 01:36  Regina Obe <lr at pcorp.us>
 
-	* postgis/postgis.sql.in: #2440 -- remove warnings from functions
-	  -- (pushing this to a debug level notice)
+	* [r11963] regress/tickets.sql, regress/tickets_expected: #2440 --
+	  changed deprecated example to test by setting to debug mode.
 
-2013-09-22 02:10  robe
+2013-09-22 01:17  Regina Obe <lr at pcorp.us>
 
-	* regress/tickets.sql, regress/tickets_expected: #2440 -- remove
-	  warnings from functions -- (pushing this to a debug level notice)
+	* [r11962] postgis/postgis.sql.in: #2440 -- remove warnings from
+	  functions -- (pushing this to a debug level notice)
 
-2013-09-08 15:13  robe
+2013-09-15 02:46  Regina Obe <lr at pcorp.us>
 
-	* HOWTO_RELEASE: update to include updating source.html page. Minor
-	  other changes reshuffling
+	* [r11961] doc/release_notes.xml: merge in 2.1.0 and 2.0.4 release
+	  notes and start 2.2 chain
 
-2013-09-07 13:25  strk
+2013-09-08 15:08  Regina Obe <lr at pcorp.us>
 
-	* utils/postgis_restore.pl.in: Clean up restore script (#2471)
+	* [r11952] HOWTO_RELEASE: update to include updating source.html
+	  page. Minor other changes reshuffling
 
-2013-09-06 22:52  pramsey
+2013-09-07 13:27  Sandro Santilli <strk at keybit.net>
 
-	* doc/using_postgis_dataman.xml: Splling (#2255)
+	* [r11945] utils/postgis_restore.pl.in: Clean up restore script
+	  (#2471)
 
-2013-09-06 16:46  strk
+2013-09-06 22:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* liblwgeom/lwgeom_geos.c: Enhance error messages in
+	* [r11940] doc/using_postgis_dataman.xml: Splling (#2255)
+
+2013-09-06 16:46  Sandro Santilli <strk at keybit.net>
+
+	* [r11931] liblwgeom/lwgeom_geos.c: Enhance error messages in
 	  lwgeom_intersection and lwgeom_normalize
 
-2013-09-05 19:59  robe
+2013-09-05 08:11  Regina Obe <lr at pcorp.us>
 
-	* regress/run_test, regress/run_test.pl: #2469 add
-	  min_messages=NOTICE so travis doesn't scream
+	* [r11920] regress/tickets.sql, regress/tickets_expected: #2168
+	  test to test non-commutative fix of geog ST_Distance
 
-2013-09-05 08:16  robe
+2013-09-04 23:42  Regina Obe <lr at pcorp.us>
 
-	* .travis.yml: yaml config - not sure why travis is trying to test
-	  without yaml config
+	* [r11917] .travis.yml: change to notify only on change or for
+	  success and always for failure
 
-2013-09-05 07:58  robe
+2013-09-04 23:39  Regina Obe <lr at pcorp.us>
 
-	* regress/tickets.sql, regress/tickets_expected: #2168 test to test
-	  non-commutative fix of geog ST_Distance
+	* [r11916] .travis.yml: Test travis alerting system
 
-2013-09-04 04:37  robe
+2013-09-04 16:39  Regina Obe <lr at pcorp.us>
 
-	* regress/regress_index_nulls.sql, regress/regress_ogc.sql,
-	  regress/tickets.sql: #2467 add min_messages so travis doesn't
-	  scream
+	* [r11914] .travis.yml: travis yaml script for testing many thanks
+	  to Getty (Torsten Raudssus)
 
-2013-09-02 16:18  pramsey
+2013-09-04 12:22  Sandro Santilli <strk at keybit.net>
 
-	* postgis/geography_measurement.c: Geog best srid fix, from kashif
-	  (#2434)
+	* [r11913] regress/run_test, regress/run_test.pl: Set default
+	  client_min_messages to NOTICE when running tests
+	  
+	  See #2467 and #2469
 
-2013-08-31 15:00  dustymugs
+2013-09-03 17:31  Regina Obe <lr at pcorp.us>
 
-	* NEWS, doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
-	  raster/test/regress/Makefile.in,
+	* [r11911] regress/regress_index_nulls.sql,
+	  regress/regress_ogc.sql, regress/tickets.sql: #2467 add
+	  min_messages so travis doesn't scream
+
+2013-09-02 16:15  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r11909] postgis/geography_measurement.c: Geog intersection fix,
+	  from kashif (#2434)
+
+2013-09-01 00:09  Regina Obe <lr at pcorp.us>
+
+	* [r11899] HOWTO_RELEASE: #2456 : update HOWTO_RELEASE to include
+	  flipping docs alias when relevant. Also some other minor edits
+
+2013-08-31 15:46  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r11898] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpg_geometry.c, raster/test/regress/Makefile.in,
 	  raster/test/regress/rt_clip_expected,
 	  raster/test/regress/rt_elevation_functions_expected,
 	  raster/test/regress/rt_intersection_expected,
@@ -2472,84 +9502,119 @@
 	  raster/test/regress/rt_pixelaspolygons_expected,
 	  raster/test/regress/rt_setvalues_array_expected,
 	  raster/test/regress/rt_union_expected: Fix behavior of
-	  ST_PixelAsXXX functions with regard to exclude_nodata_parameter
+	  ST_PixelAsXXX functions with regard to exclude_nodata_value
+	  parameter
 
-2013-08-23 19:57  pramsey
+2013-08-30 23:03  Regina Obe <lr at pcorp.us>
 
-	* configure.ac: Allow version parser to handle 9.3rc3
+	* [r11893] doc/xsl/postgis_aggs_mm.xml.xsl: Add 2.2 what's new
+	  section
 
-2013-08-23 12:04  robe
+2013-08-26 22:57  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* doc/extras_tigergeocoder.xml: fix typo in function name
+	* [r11890] doc/reference_output.xml: change to int8 for twkb ID in
+	  doc
 
-2013-08-23 02:47  robe
+2013-08-26 22:35  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* doc/extras_tigergeocoder.xml: #2446 Drop_Nation_Script doco is
-	  wrong
+	* [r11889] liblwgeom/liblwgeom.h.in, liblwgeom/lwout_twkb.c,
+	  liblwgeom/lwout_twkb.h, postgis/lwgeom_accum.c,
+	  postgis/lwgeom_inout.c, postgis/postgis.sql.in: add support for
+	  ID up to int64
 
-2013-08-22 04:41  robe
+2013-08-26 20:55  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* extensions/postgis_tiger_geocoder/Makefile.in,
-	  extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql: #2441
-	  Tiger geocoder uses new features only available in Postgres 9.3.
-	  Changed to not use CREATE .. IF NOT EXISTS and use DO instead.
-	  Also revised extension to upgrade loader (it wasn't before)
+	* [r11883] postgis/postgis.sql.in: remove double sql signatures
 
-2013-08-18 01:16  robe
+2013-08-26 18:58  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Version.config, doc/postgis.xml,
-	  extensions/upgradeable_versions.mk: bump version to 2.1.1dev
+	* [r11878] doc/reference_output.xml, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwout_twkb.c, liblwgeom/lwout_twkb.h,
+	  postgis/lwgeom_accum.c, postgis/lwgeom_inout.c,
+	  postgis/postgis.sql.in: Remove homebrewed compression method.
+	  Don't add ID if not used.
 
-2013-08-18 00:50  robe
+2013-08-23 19:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/release_notes.xml: one more paragraph mark missing
+	* [r11866] configure.ac: Allow version parser to handle PostgreSQL
+	  9.3rc1
 
-2013-08-18 00:34  robe
+2013-08-23 12:02  Regina Obe <lr at pcorp.us>
 
-	* doc/release_notes.xml: fix para tag
+	* [r11863] doc/extras_tigergeocoder.xml: fix typo in function name
 
-2013-08-18 00:14  robe
+2013-08-23 03:51  Regina Obe <lr at pcorp.us>
 
-	* doc/release_notes.xml: fix remaining unbalanced para tags
+	* [r11856] extensions/postgis_tiger_geocoder/Makefile.in: #2413 --
+	  switch extension to use 2013 loader script instead
 
-2013-08-18 00:09  robe
+2013-08-23 03:33  Regina Obe <lr at pcorp.us>
 
-	* Version.config, doc/postgis.xml, doc/release_notes.xml,
-	  extensions/upgradeable_versions.mk: fix unbalanced para, flip
-	  version to 2.1.0
+	* [r11855] extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql:
+	  #2413 -- create 2013 -- so far thru testing seems like just
+	  changing the year in variables is sufficient
 
-2013-08-18 00:03  robe
+2013-08-23 02:45  Regina Obe <lr at pcorp.us>
 
-	* HOWTO_RELEASE: minor corrections
+	* [r11853] doc/extras_tigergeocoder.xml: #2446 Drop_Nation_Script
+	  doco is wrong
 
-2013-08-18 00:03  robe
+2013-08-22 15:32  Sandro Santilli <strk at keybit.net>
 
-	* extensions/postgis/sql_bits/postgis--unpackaged.sql.in,
-	  extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in,
-	  extensions/postgis_topology/sql_bits/topology--unpackaged.sql.in:
-	  update unpackaged scripts in prep for 2.1.0 release
+	* [r11852] doc/extras_topology.xml: Fix AsTopoJSON example to
+	  output correctly formatted arcs (#2444)
+
+2013-08-22 04:36  Regina Obe <lr at pcorp.us>
+
+	* [r11850] extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql:
+	  #2441 Tiger geocoder uses new features only available in Postgres
+	  9.3. Revised since running with sh didn't like some of my changes
+
+2013-08-22 03:56  Regina Obe <lr at pcorp.us>
+
+	* [r11849] extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql: #2441
+	  Tiger geocoder uses new features only available in Postgres 9.3.
+	  Changed to not use CREATE .. IF NOT EXISTS and use DO instead.
+	  Also revised extension to upgrade loader (it wasn't before)
+
+2013-08-21 21:45  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
+
+	* [r11848] raster/scripts/plpgsql/st_summarystatsagg.sql: Fixed
+	  more null cases.
+
+2013-08-18 21:59  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-2013-08-17 23:51  robe
+	* [r11839] liblwgeom/lwout_twkb.c: Fix wrong size-calculation when
+	  mixed types in aggregated twkb
 
-	* README.postgis: forgot README.postgis
+2013-08-17 23:23  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-2013-08-17 23:49  robe
+	* [r11813] liblwgeom/lwout_twkb.c, liblwgeom/lwout_twkb.h: Add
+	  varInt encoding for twkb (seems to be the best option)
 
-	* ChangeLog, NEWS, doc/release_notes.xml: update ChangeLog, NEWS in
-	  prep for 2.1.0 release
+2013-08-16 18:49  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-2013-08-16 18:45  nicklas
+	* [r11808] liblwgeom/measures.c: fix back polyhedralsurface to
+	  distance calculations #2431 (trunk)
 
-	* liblwgeom/measures.c: fix back polyhedralsurface to distance
-	  calculations #2431
+2013-08-16 00:57  Regina Obe <lr at pcorp.us>
 
-2013-08-16 00:59  robe
+	* [r11805] doc/reference_accessor.xml: #2435 ST_Summary document S
+	  flag
 
-	* doc/reference_accessor.xml: #2435 ST_Summary document S flag
+2013-08-14 22:40  Sandro Santilli <strk at keybit.net>
 
-2013-08-14 07:42  strk
+	* [r11803] NEWS, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwcompound.c,
+	  liblwgeom/lwgeom.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in,
+	  regress/Makefile.in, regress/forcecurve.sql,
+	  regress/forcecurve_expected: Implement ST_ForceCurve (#2430)
 
-	* liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c:
+2013-08-14 07:37  Sandro Santilli <strk at keybit.net>
+
+	* [r11801] liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c:
 	  lw_segment_side may return any negative number, not just -1
 	  (#2420)
 	  
@@ -2557,1106 +9622,1571 @@
 	  quadrant
 	  computation.
 
-2013-08-13 23:48  strk
+2013-08-13 23:48  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c,
+	* [r11794] liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c,
 	  regress/tickets.sql, regress/tickets_expected: Fix computation of
 	  number of quadrants per arc (#2420)
 	  
 	  Note: I had to change some tests that expected 3-quadrant curves
 	  to be accepted as curvey input to rely on round-trip instead
 
-2013-08-13 23:48  strk
+2013-08-13 23:47  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c,
+	* [r11793] liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c,
 	  regress/tickets_expected: Pick curve control point farther than
 	  in the middle
 	  
 	  Seems to get a good point when doing manual tests...
 
-2013-08-13 22:54  strk
+2013-08-13 22:54  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c,
+	* [r11790] liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c,
 	  regress/tickets.sql, regress/tickets_expected: Make sure to
 	  retain first point of curves on linearization (#2427)
 
-2013-08-13 07:25  strk
+2013-08-13 07:27  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c: Fix short
-	  allocation of edge to curves store (#2425)
+	* [r11789] liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c:
+	  Fix short allocation of edge to curves store (#2425)
 
-2013-08-13 06:53  strk
+2013-08-13 06:51  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwsegmentize.c, regress/tickets.sql,
+	* [r11784] liblwgeom/lwsegmentize.c, regress/tickets.sql,
 	  regress/tickets_expected: Add COMPOUNDCURVE in MULTICURVE support
 	  for ST_CurveToLine (#2424)
 
-2013-08-12 18:19  strk
+2013-08-12 18:11  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwsegmentize.c, regress/tickets.sql,
+	* [r11778] liblwgeom/lwsegmentize.c, regress/tickets.sql,
 	  regress/tickets_expected: Require all arc edges to form the same
 	  angle (#2423)
 	  
 	  Note: gives expected result for #183
 
-2013-08-12 09:58  strk
+2013-08-12 09:59  Sandro Santilli <strk at keybit.net>
+
+	* [r11773] regress/tickets.sql, regress/tickets_expected: Fix
+	  ticket reference (it's #2420, not 30)
 
-	* regress/tickets.sql, regress/tickets_expected: Fix ticket
-	  reference (it's #2420, not 30)
+2013-08-11 17:05  Sandro Santilli <strk at keybit.net>
+
+	* [r11770] liblwgeom/lwsegmentize.c: Declare variables the proper C
+	  way
 
-2013-08-11 18:15  strk
+2013-08-11 15:55  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwsegmentize.c, regress/tickets.sql,
+	* [r11769] liblwgeom/lwsegmentize.c, regress/tickets.sql,
 	  regress/tickets_expected: Require at least 8 edges to define a
 	  full circle (#2420)
 
-2013-08-11 08:51  strk
+2013-08-11 09:07  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwsegmentize.c, regress/tickets.sql,
+	* [r11768] liblwgeom/cunit/cu_ptarray.c: Add cunit-level test for
+	  #2412
+
+2013-08-11 08:40  Sandro Santilli <strk at keybit.net>
+
+	* [r11765] liblwgeom/lwsegmentize.c, regress/tickets.sql,
 	  regress/tickets_expected: Fix ST_LineToCurve with input having
 	  less than 4 vertices (#2412)
 
-2013-08-10 06:25  robe
+2013-08-10 06:26  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/tiger_2011/census_loader.sql: #2414
-	  extension not installing census tables
+	* [r11761] extras/tiger_geocoder/tiger_2011/census_loader.sql:
+	  #2414 extension not installing census tables
 
-2013-08-10 06:14  robe
+2013-08-10 06:15  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+	* [r11759]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
 	  #2419: agc_rules loading defaulting to is_custom true instead of
 	  false
 
-2013-08-09 07:00  strk
+2013-08-09 06:59  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwgeom.c, postgis/lwgeom_functions_basic.c,
+	* [r11754] liblwgeom/lwgeom.c, postgis/lwgeom_functions_basic.c,
 	  regress/tickets.sql, regress/tickets_expected: Fix ST_Multi with
 	  COMPOUNDCURVE and CURVEPOLYGON types (#2415)
 
-2013-08-08 22:54  robe
+2013-08-08 23:11  Regina Obe <lr at pcorp.us>
+
+	* [r11753] extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql:
+	  dupe 2934 (give Northwest next id), get rid of hard-coding of
+	  schemas in sh line
 
-	* extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+2013-08-08 22:55  Regina Obe <lr at pcorp.us>
+
+	* [r11752]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
 	  dupe 2934 (give Northwest next id)
 
-2013-08-08 22:31  robe
+2013-08-08 21:19  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql: get rid
-	  of hard-codings of schemas in sh profile, add logic to create
-	  data schema if not present
+	* [r11749] liblwgeom/cunit/cu_libgeom.c: #2396: liblwgeom CUnit
+	  tests fail on big-endian architectures.
 
-2013-08-08 06:21  strk
+2013-08-08 06:07  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwsegmentize.c, regress/sql-mm-circularstring.sql,
+	* [r11745] liblwgeom/lwsegmentize.c,
+	  regress/sql-mm-circularstring.sql,
 	  regress/sql-mm-circularstring_expected: Fix segmentize of
-	  collinear curve
+	  collinear curve (#2410)
+
+2013-08-08 06:07  Sandro Santilli <strk at keybit.net>
+
+	* [r11744] .gitignore: Ignore generated file
 
-2013-08-08 05:19  robe
+2013-08-08 05:20  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+	* [r11743]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
 	  #2403 force northwest into postdir, fix some other casing issues
+	  and upport any other changes.
+
+2013-08-07 18:41  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r11741] utils/postgis_proc_upgrade.pl: #2405 second try
+
+2013-08-06 19:19  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-2013-08-06 16:01  robe
+	* [r11740] utils/postgis_proc_upgrade.pl: #2405 fix handling of the
+	  newer create aggregate syntax
 
-	* liblwgeom/cunit/cu_libgeom.c: #2396: change wkb compare to a same
-	  check
+2013-08-06 17:09  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-2013-08-04 16:07  robe
+	* [r11739] liblwgeom/lwout_twkb.c, postgis/lwgeom_accum.c: getting
+	  rid of some compiling warnings
 
-	* extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+2013-08-04 21:27  Nicklas Avén <nicklas.aven at jordogskog.no>
+
+	* [r11736] doc/reference_output.xml, liblwgeom/Makefile.in,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwout_twkb.c,
+	  liblwgeom/lwout_twkb.h, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_accum.c, postgis/lwgeom_inout.c,
+	  postgis/postgis.sql.in: Initial commit of TWKB implimentation to
+	  trunk
+
+2013-08-04 16:36  Regina Obe <lr at pcorp.us>
+
+	* [r11735]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
 	  #2404: DISTRICT OF COLUMBIA is not abbreviated
 
-2013-08-03 17:11  robe
+2013-08-03 16:58  Regina Obe <lr at pcorp.us>
 
-	* Version.config, doc/postgis.xml,
-	  extensions/upgradeable_versions.mk: flip branch to rc3 (hopefully
-	  we won't need it and can go straight to release)
+	* [r11724]
+	  extensions/postgis_tiger_geocoder/sql_bits/mark_editable_objects.sql.in,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+	  #2401 add is_custom options to pagc_rules table
+
+2013-08-02 20:56  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r11720] raster/Makefile.in, raster/rt_pg/rtpg_band_properties.c,
+	  raster/rt_pg/rtpg_gdal.c, raster/rt_pg/rtpg_geometry.c,
+	  raster/rt_pg/rtpg_pixel.c, raster/rt_pg/rtpg_raster_properties.c,
+	  raster/rt_pg/rtpg_statistics.c: Fixes to make sure PostgreSQL
+	  version > 9.2 compile without warnings
+
+2013-08-02 19:51  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r11719] NEWS, raster/loader/raster2pgsql.h,
+	  raster/rt_core/Makefile.in, raster/rt_core/librtcore.h,
+	  raster/rt_core/librtcore_internal.h, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_core/rt_band.c,
+	  raster/rt_core/rt_context.c, raster/rt_core/rt_geometry.c,
+	  raster/rt_core/rt_mapalgebra.c, raster/rt_core/rt_pixel.c,
+	  raster/rt_core/rt_raster.c, raster/rt_core/rt_serialize.c,
+	  raster/rt_core/rt_serialize.h,
+	  raster/rt_core/rt_spatial_relationship.c,
+	  raster/rt_core/rt_statistics.c, raster/rt_core/rt_util.c,
+	  raster/rt_core/rt_warp.c, raster/rt_core/rt_wkb.c,
+	  raster/rt_pg/Makefile.in, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rt_pg.h, raster/rt_pg/rtpg_band_properties.c,
+	  raster/rt_pg/rtpg_create.c, raster/rt_pg/rtpg_gdal.c,
+	  raster/rt_pg/rtpg_geometry.c, raster/rt_pg/rtpg_inout.c,
+	  raster/rt_pg/rtpg_internal.c, raster/rt_pg/rtpg_internal.h,
+	  raster/rt_pg/rtpg_mapalgebra.c, raster/rt_pg/rtpg_pixel.c,
+	  raster/rt_pg/rtpg_raster_properties.c,
+	  raster/rt_pg/rtpg_spatial_relationship.c,
+	  raster/rt_pg/rtpg_statistics.c, raster/rt_pg/rtpg_utility.c,
+	  raster/rt_pg/rtpostgis.c, raster/rt_pg/rtpostgis.h,
+	  raster/test/cunit/cu_tester.h: Split rt_core/rt_api.c and
+	  rt_pg/rt_pg.c into smaller files.
+
+2013-07-31 18:31  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r11714] NEWS: Update news
 
-2013-08-03 17:08  robe
+2013-07-31 18:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* doc/postgis.xml: prep for release of rc2 (I know but too many new
-	  tickets closed in rc1 cycle and want to wait for geos)
+	* [r11713] loader/dbfopen.c, loader/shp2pgsql-core.c,
+	  regress/Makefile.in, regress/loader/Latin1-implicit.dbf,
+	  regress/loader/Latin1-implicit.select.expected,
+	  regress/loader/Latin1-implicit.select.sql: (#2397) read LDID/CPG
+	  where appropriate
 
-2013-08-03 16:30  robe
+2013-07-23 06:28  Sandro Santilli <strk at keybit.net>
 
-	* extensions/postgis_tiger_geocoder/sql_bits/mark_editable_objects.sql.in:
-	  #2401 logic to mark pagc_rules as editable and for backup save
-	  custom rules
+	* [r11712] regress/lwgeom_regress.sql: Use a single INSERT for
+	  preparing the data
 
-2013-08-03 16:10  robe
+2013-07-20 03:44  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
-	  #2401 What was I thinkng. pagc_rules needs to set existing to
-	  is_custom = false so old records are not considered custom
+	* [r11710] loader/pgsql2shp-cli.c: #2230 can't dump on windows 64
+	  if schema qualified. Fix by replacing with more modern code
+	  (follow same pattern and standardiz naming of variable as
+	  shp2pgsql) (should probably apply astyle but will do later)
 
-2013-08-03 16:03  robe
+2013-07-20 01:40  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
-	  #2401 fix typo in add column statement
+	* [r11705] loader/shp2pgsql-gui.1: man page for shp2pgsql-gui
+	  provided by Mònica Ramírez Arceda and mwanner
 
-2013-08-02 16:33  robe
+2013-07-19 05:48  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
-	  #2401 fix typo
+	* [r11702] doc/extras_tigergeocoder.xml, doc/installation.xml:
+	  minor updates to PAGC
 
-2013-08-02 16:31  robe
+2013-07-19 04:06  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
-	  #2401 Add is_custom options to pagc_rules table
+	* [r11701] doc/extras_tigergeocoder.xml: more clarification
 
-2013-08-02 01:30  dustymugs
+2013-07-19 04:04  Regina Obe <lr at pcorp.us>
 
-	* NEWS, doc/release_notes.xml, doc/using_raster_dataman.xml,
-	  doc/xsl/postgis_aggs_mm.xml.xsl: Add note regarding limitation of
-	  raster bands only being able to reference the first 256 bands of
-	  an out-db raster. Ticket #2111.
+	* [r11700] doc/installation.xml: typo
 
-2013-07-20 03:20  robe
+2013-07-19 04:04  Regina Obe <lr at pcorp.us>
 
-	* loader/pgsql2shp-cli.c: #2230 can't dump on windows 64 if schema
-	  qualified. Fix by replacing with more modern code (follow same
-	  pattern and standardiz naming of variable as shp2pgsql)
+	* [r11699] doc/extras_tigergeocoder.xml, doc/installation.xml:
+	  update pagc install instructions
 
-2013-07-20 01:42  robe
+2013-07-17 14:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* loader/shp2pgsql-gui.1: #2389 man page for shp2pgsql-gui provided
-	  by Mònica Ramírez Arceda and mwanner
+	* [r11692] NEWS, raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_neighborhood.sql,
+	  raster/test/regress/rt_neighborhood_expected: Fixed variable
+	  datatype in ST_Neighborhood. Ticket #2384
+
+2013-07-17 14:02  Bborie Park <bkpark at ucdavis.edu>
 
-2013-07-19 05:51  robe
+	* [r11689] NEWS, raster/rt_pg/rtpostgis.sql.in: Removed use of \'
+	  from raster warning message. Ticket #2383
 
-	* doc/extras_tigergeocoder.xml, doc/installation.xml,
+2013-07-15 16:09  Regina Obe <lr at pcorp.us>
+
+	* [r11688]
 	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
-	  #2380 backport changes related to PAGC as wwell as tiger doco
-	  updates
+	  reset gaz counter
 
-2013-07-17 14:45  dustymugs
+2013-07-15 16:07  Regina Obe <lr at pcorp.us>
 
-	* NEWS, raster/rt_pg/rtpostgis.sql.in,
-	  raster/test/regress/rt_neighborhood.sql,
-	  raster/test/regress/rt_neighborhood_expected: Fix variable
-	  datatypes in ST_Neighborhood(). Ticket #2384
+	* [r11687]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+	  oops deleted pagc_gaz entries. Also add ST LOUIS (fails regress
+	  without)
+
+2013-07-15 14:44  Regina Obe <lr at pcorp.us>
+
+	* [r11686]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+	  #2381 make std word upper case, #2380 (add a lex entry for BAY
+	  STATE) so correctly parses
+
+2013-07-15 12:53  Regina Obe <lr at pcorp.us>
+
+	* [r11685] doc/extras_tigergeocoder.xml: fix formatting
+
+2013-07-14 18:37  Sandro Santilli <strk at keybit.net>
+
+	* [r11682] topology/test/Makefile.in: GEOS 3.3.8 uses old snapping
+	  (#2379)
 
-2013-07-17 14:04  dustymugs
+2013-07-12 12:35  Regina Obe <lr at pcorp.us>
 
-	* NEWS, raster/rt_pg/rtpostgis.sql.in: Removed unsafe use of \'
-	  from raster message. Ticket #2383
+	* [r11674] doc/extras_tigergeocoder.xml: flesh out
+	  pagc_normalize_address and point out issue with batch and
+	  workaround for issue.
 
-2013-07-14 18:38  strk
+2013-07-11 00:40  Regina Obe <lr at pcorp.us>
 
-	* topology/test/Makefile.in: GEOS 3.3.8 uses old snapping (#2379)
+	* [r11668] doc/installation.xml:
 
-2013-07-10 11:38  robe
+2013-07-10 22:46  Regina Obe <lr at pcorp.us>
 
-	* doc/extras_tigergeocoder.xml, doc/installation.xml:
+	* [r11664] extensions/upgradeable_versions.mk: update extension to
+	  support upcoming 2.0.4 and 2.1.0rc1
 
-2013-07-10 11:17  robe
+2013-07-10 11:37  Regina Obe <lr at pcorp.us>
 
-	* doc/extras_tigergeocoder.xml: oops booboo
+	* [r11661] doc/extras_tigergeocoder.xml: huh more mistakes
 
-2013-07-10 11:11  robe
+2013-07-10 11:28  Regina Obe <lr at pcorp.us>
 
-	* Version.config, doc/postgis.xml,
-	  extensions/upgradeable_versions.mk: call this one rc2 with plan
-	  it will never be released and we'll go straight to gold after we
-	  clean up the news and docs.
+	* [r11657] doc/extras_tigergeocoder.xml, doc/installation.xml: oops
+	  more mistakes in link end
 
-2013-07-10 11:07  robe
+2013-07-10 11:20  Regina Obe <lr at pcorp.us>
 
-	* ChangeLog, HOWTO_RELEASE, NEWS, README.postgis, Version.config,
-	  doc/postgis.xml, extensions/upgradeable_versions.mk: prepping for
-	  rc1 release
+	* [r11656] doc/extras_tigergeocoder.xml: fix disallowed note child
+	  in abstract
 
-2013-07-10 03:44  robe
+2013-07-10 03:43  Regina Obe <lr at pcorp.us>
 
-	* extras/tiger_geocoder/README,
+	* [r11650] extras/tiger_geocoder/README,
 	  extras/tiger_geocoder/tiger_2011/README: #2245 Doc patches to
 	  tiger
 
-2013-07-10 02:44  robe
+2013-07-10 02:47  Regina Obe <lr at pcorp.us>
 
-	* doc/extras_tigergeocoder.xml, doc/installation.xml: briefly
-	  document pagc in docs and where to get. will flesh out later, but
-	  good enough for 2.1 release
+	* [r11649] doc/extras_tigergeocoder.xml, doc/installation.xml:
+	  #2367 briefly document pagc in docs and where to get. will flesh
+	  out later, but good enough for 2.1 release
 
-2013-07-09 16:37  robe
+2013-07-09 16:29  Regina Obe <lr at pcorp.us>
 
-	* doc/reference_editor.xml: #2378, document that
+	* [r11645] doc/reference_editor.xml: #2378 document that
 	  ST_CollectionExtract and ST_CollectionHomegenize are flawed when
 	  dealing with polygons with shared edges
 
-2013-07-09 03:36  pramsey
+2013-07-09 03:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* configure.ac: Allow build to work with --libintl-prefix and other
-	  configure directives
+	* [r11644] configure.ac: Allow --libintl-prefix to set cpp flags
 
-2013-07-08 06:57  robe
+2013-07-08 06:57  Regina Obe <lr at pcorp.us>
 
-	* doc/reference_lrs.xml: get rid of deprecated
-	  ST_Line_Interpolate_Point in code examples
+	* [r11641] doc/reference_lrs.xml: missed spot
 
-2013-07-05 10:45  strk
+2013-07-05 10:40  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit/cu_clean.c, liblwgeom/lwgeom_geos_clean.c:
-	  Backport ST_MakeValid memory leak fix (#2307)
+	* [r11636] liblwgeom/lwgeom_geos_clean.c: Fix the ST_MakeValid
+	  leak, keep it crash-free (#2307)
 
-2013-07-02 22:34  pramsey
+2013-07-05 10:26  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/lwgeom_geos_clean.c, regress/tickets.sql,
-	  regress/tickets_expected: #2307, add test and comment on
-	  lwgeom_free
+	* [r11635] liblwgeom/cunit/cu_clean.c: Add cunit test for #2307
+	  
+	  So now we have a "leak or crash" situation.
+
+2013-07-02 22:34  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r11621] regress/tickets.sql: #2307, remove spaces in hex string
+
+2013-07-02 22:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2013-07-02 21:51  robe
+	* [r11620] liblwgeom/lwgeom_geos_clean.c, regress/tickets.sql,
+	  regress/tickets_expected: #2307, test and comment on free line
 
-	* doc/html/image_src/st_azimuth01.wkt,
+2013-07-02 21:52  Regina Obe <lr at pcorp.us>
+
+	* [r11617] doc/html/image_src/st_azimuth01.wkt,
 	  doc/html/image_src/st_azimuth02.wkt, doc/reference_measure.xml:
 	  #876 ST_Azimuth doc patch
 
-2013-07-02 20:12  pramsey
+2013-07-02 20:15  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r11612] NEWS, configure.ac, topology/test/Makefile.in: #2371,
+	  Support GEOS versions with more than 1 digit in micro
+
+2013-07-02 16:11  Regina Obe <lr at pcorp.us>
+
+	* [r11608] doc/reference_measure.xml: move example to
+	  ST_HausdorffDistance
 
-	* NEWS, configure.ac, topology/test/Makefile.in: #2371 Support GEOS
-	  versions with more than 1 digit in micro
+2013-07-02 15:43  Regina Obe <lr at pcorp.us>
 
-2013-06-28 13:58  strk
+	* [r11607] doc/reference_measure.xml: bah get rid of last example
+	  not quite the solution for problem after further ruminating.
 
-	* postgis/lwgeom_in_kml.c, regress/in_kml.sql,
+2013-07-02 14:06  Regina Obe <lr at pcorp.us>
+
+	* [r11606] doc/reference_measure.xml: fix typo
+
+2013-07-02 13:56  Regina Obe <lr at pcorp.us>
+
+	* [r11605] doc/reference_measure.xml: minor adjustment
+
+2013-07-02 13:55  Regina Obe <lr at pcorp.us>
+
+	* [r11604] doc/reference_measure.xml: useful real world example of
+	  using ST_MaxDistance
+
+2013-07-01 09:17  Sandro Santilli <strk at keybit.net>
+
+	* [r11603] postgis/lwgeom_in_kml.c, regress/in_kml.sql,
+	  regress/in_kml_expected: Raise an error when fed KML with mixed
+	  coordinate dimension
+	  
+	  See #2372
+
+2013-06-28 13:57  Sandro Santilli <strk at keybit.net>
+
+	* [r11589] postgis/lwgeom_in_kml.c, regress/in_kml.sql,
 	  regress/in_kml_expected: Support parsing KML with space between
 	  digits and comma (#2372)
 
-2013-06-25 14:40  dustymugs
+2013-06-25 14:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* configure.ac: Comment out call for gdal-config --dep-libs as it
-	  shouldn't be
-	  necessary.
+	* [r11587] configure.ac: Removed gdal-config --dep-flags from
+	  configure.ac.
+
+2013-06-25 12:18  Sandro Santilli <strk at keybit.net>
 
-2013-06-25 13:50  strk
+	* [r11584] topology/test/Makefile.in,
+	  topology/test/regress/topogeo_addlinestring_expected_oldsnap: Fix
+	  GEOS dependent expected results
+	  
+	  Now tested and successful with all supported GEOS versions
+
+2013-06-25 11:30  Sandro Santilli <strk at keybit.net>
 
-	* configure.ac, topology/test/Makefile.in,
+	* [r11583] configure.ac, topology/test/Makefile.in,
 	  topology/test/regress/topogeo_addlinestring_expected,
 	  topology/test/regress/topogeo_addlinestring_expected_newsnap,
 	  topology/test/regress/topogeo_addlinestring_expected_oldsnap:
 	  Base expected TopoGeo_addLinestring output on GEOS version
 	  (#2368)
 
-2013-06-22 02:39  robe
+2013-06-22 22:26  Regina Obe <lr at pcorp.us>
+
+	* [r11571] doc/introduction.xml: Move Mat back to core since he's
+	  done a ton of work on CMake
+
+2013-06-21 15:15  Sandro Santilli <strk at keybit.net>
 
-	* Version.config, doc/postgis.xml,
-	  extensions/upgradeable_versions.mk: start rc1dev cycle and switch
-	  docs back to dev site
+	* [r11563] configure.ac: Do not override JSON_LDFLAGS, fixing
+	  --with-jsondir usage
 
-2013-06-22 02:37  robe
+2013-06-20 22:07  Sandro Santilli <strk at keybit.net>
 
-	* ChangeLog, HOWTO_RELEASE, NEWS, Version.config, doc/postgis.xml,
-	  extensions/upgradeable_versions.mk: update ChangeLog and prepare
-	  for tagging 2.1.0beta3
+	* [r11560] configure.ac: Add support for libjson-c 0.10+ (#2213)
 
-2013-06-21 15:45  strk
+2013-06-20 19:25  Regina Obe <lr at pcorp.us>
 
-	* configure.ac: Do not override JSON_LDFLAGS, fixing --with-jsondir
-	  usage
+	* [r11558] doc/installation.xml, doc/postgis.xml: up minimum
+	  version of PostgreSQL to 9.1 descriptively will enforce later
 
-2013-06-20 22:22  strk
+2013-06-20 15:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* NEWS, configure.ac: Add support for libjson-c 0.10+ (#2213)
+	* [r11556] doc/reference_raster.xml: Added docs regarding
+	  postgis.gdal.datapath GUC and
+	  postgis_gdal_version()
 
-2013-06-20 06:35  robe
+2013-06-20 15:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* .: branch in prep for beta3
+	* [r11555] doc/using_raster_dataman.xml: Added spatial_index column
+	  description
 
-2013-06-20 06:24  robe
+2013-06-20 15:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* #2336 state level regex wget is too greedy and pulling all states
+	* [r11554] NEWS, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/check_gdal.sql: Addition of GUC
+	  postgis.gdal.datapath to specify GDAL config variable GDAL_DATA.
+	  Ticket #1678
+
+2013-06-20 15:57  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r11553] NEWS, raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/check_raster_columns.sql: Added spatial_index
+	  column to raster_columns view. Ticket #2361
+
+2013-06-20 15:57  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r11552] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in: Added missing signatures for
+	  ST_TPI(), ST_TRI() and ST_Roughness
+
+2013-06-20 14:13  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r11551] NEWS, README.postgis: Updated to 2.2
+
+2013-06-20 06:42  Regina Obe <lr at pcorp.us>
+
+	* [r11550] Version.config: make trunk 2.2.0dev
+
+2013-06-20 06:24  Regina Obe <lr at pcorp.us>
+
+	* [r11548] extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql:
+	  #2336 state level regex wget is too greedy and pulling all states
 	  when KS is chosen
 
-2013-06-13 15:26  dustymugs
+2013-06-13 15:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed handling of schema name when adding overview constraints.
-	  Ticket #2359
+	* [r11544] NEWS, raster/loader/raster2pgsql.c: Fixed handling of
+	  schema name when adding overview constraints. Ticket #2359
 
-2013-06-11 22:52  dustymugs
+2013-06-11 22:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* Have cleanup before calls to elog(ERROR, ...)
+	* [r11542] raster/rt_pg/rt_pg.c: Have cleanup before calls to
+	  elog(ERROR, ...)
 
-2013-06-11 22:52  dustymugs
+2013-06-11 22:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* Grammar fixes for error messages (active vs passive)
+	* [r11541] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Grammar
+	  fixes for error messages (active vs passive)
 
-2013-06-08 20:28  robe
+2013-06-08 20:28  Regina Obe <lr at pcorp.us>
 
-	* #2356: quick fix for extensions not building anymore because of
-	  raster upgrade file change from rtpostgis_upgrade_20_minor.sql to
+	* [r11540] extensions/postgis/Makefile.in: #2356: quick fix for
+	  extensions not building anymore because of raster upgrade file
+	  change from rtpostgis_upgrade_20_minor.sql to
 	  rtpostgis_upgrade_20_21.sql
 	  
 	  Also got rid of some commented out code
 
-2013-06-08 20:09  robe
+2013-06-08 20:09  Regina Obe <lr at pcorp.us>
 
-	* Get rid of postgis_drop_before for extension upgrade -- we don't
-	  need it any more after #2334
+	* [r11539] extensions/postgis/Makefile.in: Get rid of
+	  postgis_drop_before for extension upgrade -- we don't need it any
+	  more after #2334
 
-2013-06-07 17:39  pramsey
+2013-06-07 17:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2351, st_distance between geographies wrong
+	* [r11535] NEWS, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic.c: #2351,
+	  st_distance between geographies wrong
 
-2013-06-05 22:35  pramsey
+2013-06-05 22:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore generated sfcgal.sql
+	* [r11533] postgis: Ignore generated sfcgal.sql
 
-2013-06-05 22:34  pramsey
+2013-06-05 22:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore generated makefile
+	* [r11532] raster/test/cunit: Ignore generated makefile
 
-2013-06-05 21:31  pramsey
+2013-06-05 21:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2315, geography_distance_uncached: variable ‘tolerance’ set but
-	  not used
+	* [r11531] postgis/geography_measurement.c: #2315,
+	  geography_distance_uncached: variable ‘tolerance’ set but not
+	  used
 
-2013-06-05 21:01  pramsey
+2013-06-05 21:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2168, ST_Distance is not always commutative
+	* [r11530] NEWS, postgis/geography_measurement.c: #2168,
+	  ST_Distance is not always commutative
 
-2013-06-05 20:38  pramsey
+2013-06-05 20:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2165, ST_NumPoints regression failure with CircularString
+	* [r11528] NEWS, postgis/lwgeom_ogc.c,
+	  regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected: #2165, ST_NumPoints
+	  regression failure with CircularString
 
-2013-06-05 18:11  pramsey
+2013-06-05 18:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2307, ST_MakeValid outputs invalid geometries
+	* [r11525] NEWS, liblwgeom/lwgeom_geos_clean.c: #2307, ST_MakeValid
+	  outputs invalid geometries
 
-2013-06-04 19:18  dustymugs
+2013-06-04 19:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added raster upgrade path from 2.0 to 2.1. Ticket #2348
+	* [r11523] .gitignore, NEWS, raster/rt_core/.svnignore,
+	  raster/rt_pg/.svnignore, raster/rt_pg/Makefile.in: Added raster
+	  upgrade path from 2.0 to 2.1. Ticket #2348
 
-2013-06-04 16:26  strk
+2013-06-04 16:26  Sandro Santilli <strk at keybit.net>
 
-	* Fix spelling errors in st_makevalid documentation
+	* [r11521] doc/reference_processing.xml: Fix spelling errors in
+	  st_makevalid documentation
 	  
 	  Fixes a couple of spelling errors, and use the full word
 	  'without' instead of the contraction 'w/out'.
 
-2013-06-04 16:22  strk
+2013-06-04 16:22  Sandro Santilli <strk at keybit.net>
 
-	* Renew the COPYING gpl-2.0 with last version from gnu.org
+	* [r11519] COPYING: Renew the COPYING gpl-2.0 with last version
+	  from gnu.org
 
-2013-06-04 14:13  strk
+2013-06-04 14:13  Sandro Santilli <strk at keybit.net>
 
-	* Let DO commands from SQL drop files end up in final upgrade
-	  script
+	* [r11518] utils/postgis_proc_upgrade.pl: Let DO commands from SQL
+	  drop files end up in final upgrade script
 	  
 	  Should fix upgrade path from 2.0 to 2.1 (#2334)
 
-2013-06-03 20:26  strk
+2013-06-03 20:26  Sandro Santilli <strk at keybit.net>
 
-	* Turn lwgeom_backend_switch into a static function
+	* [r11517] postgis/lwgeom_backend_api.c: Turn lwgeom_backend_switch
+	  into a static function
 
-2013-06-03 17:45  strk
+2013-06-03 17:45  Sandro Santilli <strk at keybit.net>
 
-	* Another couple of warnings gone
+	* [r11513] postgis/gserialized_estimate.c: Another couple of
+	  warnings gone
 
-2013-06-03 08:53  strk
+2013-06-03 08:53  Sandro Santilli <strk at keybit.net>
 
-	* More unused variables and functions warnings cleaned
+	* [r11512] postgis/geography_measurement.c,
+	  postgis/gserialized_estimate.c: More unused variables and
+	  functions warnings cleaned
 
-2013-06-03 08:26  strk
+2013-06-03 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Remove warnings from liblwgeom
+	* [r11511] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic_tree.c,
+	  liblwgeom/lwout_geojson.c, liblwgeom/lwout_x3d.c: Remove warnings
+	  from liblwgeom
 	  
 	  These are mostly unused variables
 
-2013-06-01 11:54  mcayland
+2013-06-01 11:54  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix "array subscript is above array bounds" gcc build warnings on
-	  trunk using a suitable pointer and cast.
+	* [r11508] libpgcommon/gserialized_gist.h: Fix "array subscript is
+	  above array bounds" gcc build warnings on trunk using a suitable
+	  pointer and cast.
 
-2013-05-30 22:16  strk
+2013-05-30 22:16  Sandro Santilli <strk at keybit.net>
 
-	* Update expectances after GEOSSnap fixes (#2346)
+	* [r11506] topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Update
+	  expectances after GEOSSnap fixes (#2346)
 
-2013-05-30 17:10  dustymugs
+2013-05-30 17:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* Alphabetize built-in map algebra callback functions
+	* [r11504] doc/reference_raster.xml: Alphabetize built-in map
+	  algebra callback functions
 
-2013-05-27 16:04  strk
+2013-05-27 16:04  Sandro Santilli <strk at keybit.net>
 
-	* Actually use the --strip-trailing-cr switch, do not check it only
+	* [r11503] regress/run_test.pl: Actually use the
+	  --strip-trailing-cr switch, do not check it only
 
-2013-05-27 07:03  strk
+2013-05-27 07:03  Sandro Santilli <strk at keybit.net>
 
-	* Use system diff only if it knows how to strip trailing CR (#2344)
+	* [r11502] regress/run_test.pl: Use system diff only if it knows
+	  how to strip trailing CR (#2344)
 
-2013-05-25 18:14  strk
+2013-05-25 18:14  Sandro Santilli <strk at keybit.net>
 
-	* Not all args with a dash are options, only those starting with
-	  one
+	* [r11501] utils/postgis_restore.pl.in: Not all args with a dash
+	  are options, only those starting with one
 
-2013-05-25 18:10  strk
+2013-05-25 18:10  Sandro Santilli <strk at keybit.net>
 
-	* Use system diff when available (my implementation is horrible)
+	* [r11500] regress/run_test.pl: Use system diff when available (my
+	  implementation is horrible)
 
-2013-05-25 16:58  strk
+2013-05-25 16:58  Sandro Santilli <strk at keybit.net>
 
-	* Cleanly handle unsupported switches
+	* [r11499] utils/postgis_restore.pl.in: Cleanly handle unsupported
+	  switches
 
-2013-05-25 16:49  strk
+2013-05-25 16:49  Sandro Santilli <strk at keybit.net>
 
-	* Use consistent formatting for the NEWS file
+	* [r11498] NEWS: Use consistent formatting for the NEWS file
 
-2013-05-25 16:47  strk
+2013-05-25 16:47  Sandro Santilli <strk at keybit.net>
 
-	* Fix swapped obtained/expected in regression failure report
+	* [r11497] regress/run_test.pl: Fix swapped obtained/expected in
+	  regression failure report
 
-2013-05-24 17:27  dustymugs
+2013-05-24 17:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored use of out-db rasters for regression tests
+	* [r11496] raster/test/regress/Makefile.in,
+	  raster/test/regress/clean.sql,
+	  raster/test/regress/clean_expected,
+	  raster/test/regress/load_outdb-post.pl,
+	  raster/test/regress/load_outdb-post.sh,
+	  raster/test/regress/load_outdb-pre.pl,
+	  raster/test/regress/load_outdb-pre.sh,
+	  raster/test/regress/load_outdb.sql,
+	  raster/test/regress/load_outdb_expected,
+	  raster/test/regress/rt_addband-post.pl,
+	  raster/test/regress/rt_addband-post.sh,
+	  raster/test/regress/rt_addband-pre.pl,
+	  raster/test/regress/rt_addband-pre.sh,
+	  raster/test/regress/rt_bytea-post.pl,
+	  raster/test/regress/rt_bytea-post.sh,
+	  raster/test/regress/rt_bytea-pre.pl,
+	  raster/test/regress/rt_bytea-pre.sh,
+	  raster/test/regress/rt_utility-post.pl,
+	  raster/test/regress/rt_utility-post.sh,
+	  raster/test/regress/rt_utility-pre.pl,
+	  raster/test/regress/rt_utility-pre.sh, regress/run_test.pl:
+	  Refactored use of out-db rasters for regression tests
 
-2013-05-24 17:27  dustymugs
+2013-05-24 17:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed unnecessary test due to introduction of
-	  ST_FromGDALRaster()
+	* [r11495] raster/test/regress/Makefile.in,
+	  raster/test/regress/testgdalraster,
+	  raster/test/regress/testgdalraster.test,
+	  raster/test/regress/testgdalraster_expected: Removed unnecessary
+	  test due to introduction of ST_FromGDALRaster()
 
-2013-05-24 06:29  robe
+2013-05-24 06:29  Regina Obe <lr at pcorp.us>
 
-	* hardcode minor for now fix later, get rid of old links
+	* [r11494] doc/Makefile.in, doc/postgis.xml: hardcode minor for now
+	  fix later, get rid of old links
 
-2013-05-24 04:42  robe
+2013-05-24 04:42  Regina Obe <lr at pcorp.us>
 
-	* add Natural Resources Canada (supporting Lidar point cloud)
+	* [r11493] doc/introduction.xml: add Natural Resources Canada
+	  (supporting Lidar point cloud)
 
-2013-05-24 04:24  robe
+2013-05-24 04:24  Regina Obe <lr at pcorp.us>
 
-	* this may not work
+	* [r11492] doc/installation.xml, doc/postgis.xml: this may not work
 
-2013-05-24 04:13  robe
+2013-05-24 04:13  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r11491] doc/introduction.xml:
 
-2013-05-24 04:13  robe
+2013-05-24 04:13  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r11490] doc/introduction.xml:
 
-2013-05-24 04:11  robe
+2013-05-24 04:11  Regina Obe <lr at pcorp.us>
 
-	* minor edit
+	* [r11489] doc/introduction.xml: minor edit
 
-2013-05-23 22:02  dustymugs
+2013-05-23 22:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed issues caught by clang
+	* [r11488] raster/rt_core/rt_api.c: Fixed issues caught by clang
 
-2013-05-23 20:21  robe
+2013-05-23 20:21  Regina Obe <lr at pcorp.us>
 
-	* replace defunct credit reference with credits_other_contributors
+	* [r11487] doc/release_notes.xml: replace defunct credit reference
+	  with credits_other_contributors
 
-2013-05-23 19:16  robe
+2013-05-23 19:16  Regina Obe <lr at pcorp.us>
 
-	* oops forgot beginning tag
+	* [r11486] doc/introduction.xml: oops forgot beginning tag
 
-2013-05-23 04:34  robe
+2013-05-23 04:34  Regina Obe <lr at pcorp.us>
 
-	* credit past is taking up too much prime real estate relegate past
-	  contributors to other section, add missing corporate sponsor
-	  Palantir Technologies (funded geography and funding point cloud),
-	  minor updates to bios, alphabetize core contributors otherwise
-	  have to go by relevance and get into hissing fights
+	* [r11485] doc/introduction.xml: credit past is taking up too much
+	  prime real estate relegate past contributors to other section,
+	  add missing corporate sponsor Palantir Technologies (funded
+	  geography and funding point cloud), minor updates to bios,
+	  alphabetize core contributors otherwise have to go by relevance
+	  and get into hissing fights
 
-2013-05-22 20:24  strk
+2013-05-22 20:24  Sandro Santilli <strk at keybit.net>
 
-	* Avoid (srf()).* construct, known to invoke srf() for each out
-	  field
+	* [r11484] topology/sql/populate.sql.in: Avoid (srf()).* construct,
+	  known to invoke srf() for each out field
 	  
 	  Should slightly improve performances of TopoGeo_addLinestring
 	  (in turn used by toTopoGeom)
 
-2013-05-20 10:41  robe
+2013-05-20 10:41  Regina Obe <lr at pcorp.us>
 
-	* #2185: failure on 64-bit windows edb. In event of parse error
-	  return PG_RETURN_NULL() instead of forcing functions not to cache
+	* [r11482] postgis/geography.sql.in, postgis/lwgeom_inout.c: #2185:
+	  failure on 64-bit windows edb. In event of parse error return
+	  PG_RETURN_NULL() instead of forcing functions not to cache
 	  (revert last sugar coat change)
 
-2013-05-20 00:02  robe
+2013-05-20 00:02  Regina Obe <lr at pcorp.us>
 
-	* move Bborie Park up to PSC section and augment bio on all the
-	  work he's been doing
+	* [r11479] doc/introduction.xml: move Bborie Park up to PSC section
+	  and augment bio on all the work he's been doing
 
-2013-05-19 19:01  robe
+2013-05-19 19:01  Regina Obe <lr at pcorp.us>
 
-	* #2185: bah still crashes sometimes on 9.2 -- better just remove
-	  teh immutable entirely fromt hese functions. No one should be
-	  suing these anyway since they are deprecated
+	* [r11477] postgis/geography.sql.in: #2185: bah still crashes
+	  sometimes on 9.2 -- better just remove teh immutable entirely
+	  fromt hese functions. No one should be suing these anyway since
+	  they are deprecated
 
-2013-05-19 18:41  robe
+2013-05-19 18:41  Regina Obe <lr at pcorp.us>
 
-	* #2185: bandage for 9.2 EDB x64 basically set all these SQL
-	  functions to have a cost of 1 (like the others) so they rarely
-	  will ever cache. It's super sugar coating the issue -- there is
-	  something I feel wrong with our parser that it's properly
-	  cleaning on error and corrupting shared memory when things are
-	  cached. but at least regress.sql now passes under 9.2 edb 64
+	* [r11476] postgis/geography.sql.in: #2185: bandage for 9.2 EDB x64
+	  basically set all these SQL functions to have a cost of 1 (like
+	  the others) so they rarely will ever cache. It's super sugar
+	  coating the issue -- there is something I feel wrong with our
+	  parser that it's properly cleaning on error and corrupting shared
+	  memory when things are cached. but at least regress.sql now
+	  passes under 9.2 edb 64
 
-2013-05-19 15:37  robe
+2013-05-19 15:37  Regina Obe <lr at pcorp.us>
 
-	* #2332 ammendment correct the note to note we are no longer just
-	  wrapping the otehr function
+	* [r11474] postgis/lwgeom_ogc.c: #2332 ammendment correct the note
+	  to note we are no longer just wrapping the otehr function
 
-2013-05-19 13:01  robe
+2013-05-19 13:01  Regina Obe <lr at pcorp.us>
 
-	* #2332 windows 64 EDB crasher on invalid wkb using ST_GeomFromWKB
-	  - fix by using similar logic to go ST_GeomFromEWKB and skipping
-	  intermediary call.
+	* [r11473] postgis/lwgeom_ogc.c: #2332 windows 64 EDB crasher on
+	  invalid wkb using ST_GeomFromWKB - fix by using similar logic to
+	  go ST_GeomFromEWKB and skipping intermediary call.
 
-2013-05-18 21:07  strk
+2013-05-18 21:07  Sandro Santilli <strk at keybit.net>
 
-	* Use finite() instead of isfinite()
+	* [r11471] liblwgeom/g_box.c: Use finite() instead of isfinite()
 	  
 	  The former is also already used under postgis/ so we already rely
 	  on it. The latter is been reported to be unavailable on Solaris.
 
-2013-05-17 22:53  strk
+2013-05-17 22:53  Sandro Santilli <strk at keybit.net>
 
-	* Ensure local liblwgeom and libpgcommon includes are scanned first
+	* [r11470] postgis/Makefile.in: Ensure local liblwgeom and
+	  libpgcommon includes are scanned first
 
-2013-05-16 12:37  robe
+2013-05-16 12:37  Regina Obe <lr at pcorp.us>
 
-	* clarify soft upgrade requirement for PostGIS 2.0
+	* [r11467] doc/release_notes.xml: clarify soft upgrade requirement
+	  for PostGIS 2.0
 
-2013-05-15 23:55  dustymugs
+2013-05-15 23:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added SFCGAL version output
+	* [r11466] regress/run_test, regress/run_test.pl: Added SFCGAL
+	  version output
 
-2013-05-14 22:38  dustymugs
+2013-05-14 22:38  Bborie Park <bkpark at ucdavis.edu>
 
-	* Allow correct handling of sect2 tags in chunked html
+	* [r11465] doc/Makefile.in: Allow correct handling of sect2 tags in
+	  chunked html
 
-2013-05-14 21:03  robe
+2013-05-14 21:03  Regina Obe <lr at pcorp.us>
 
-	* #2329: fix bug in where condition of backup
+	* [r11464]
+	  extensions/postgis_tiger_geocoder/sql_bits/mark_editable_objects.sql.in:
+	  #2329: fix bug in where condition of backup
 
-2013-05-14 20:42  dustymugs
+2013-05-14 20:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed Raster Processing section
+	* [r11463] doc/reference_raster.xml: Fixed Raster Processing
+	  section
 
-2013-05-14 18:52  dustymugs
+2013-05-14 18:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* Reorganized the entire Raster Processing section. Lets see if
-	  this makes
+	* [r11462] doc/reference_raster.xml: Reorganized the entire Raster
+	  Processing section. Lets see if this makes
 	  things easier to find... or not.
 
-2013-05-14 14:32  dustymugs
+2013-05-14 14:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor tweaks to ST_ColorMap() doc
+	* [r11461] doc/reference_raster.xml: Minor tweaks to ST_ColorMap()
+	  doc
 
-2013-05-14 12:57  robe
+2013-05-14 12:57  Regina Obe <lr at pcorp.us>
 
-	* alphabetize raster processing section - impossible to find stuff
-	  otherwise
+	* [r11460] doc/reference_raster.xml: alphabetize raster processing
+	  section - impossible to find stuff otherwise
 
-2013-05-14 12:10  robe
+2013-05-14 12:10  Regina Obe <lr at pcorp.us>
 
-	* #2326: describe behavior of having no non-datavalue as by design.
-	  Also change all examples to explicitly specify band (though we
-	  have only 1 band anyway) for anal clarity. (forgot edits in last
-	  commit
+	* [r11459] doc/reference_raster.xml: #2326: describe behavior of
+	  having no non-datavalue as by design. Also change all examples to
+	  explicitly specify band (though we have only 1 band anyway) for
+	  anal clarity. (forgot edits in last commit
 
-2013-05-14 12:08  robe
+2013-05-14 12:08  Regina Obe <lr at pcorp.us>
 
-	* #2326: describe behavior of having no non-datavalue as by design.
-	  Also change all examples to explicitly specify band (though we
-	  have only 1 band anyway) for anal clarity.
+	* [r11458] doc/reference_raster.xml: #2326: describe behavior of
+	  having no non-datavalue as by design. Also change all examples to
+	  explicitly specify band (though we have only 1 band anyway) for
+	  anal clarity.
 
-2013-05-13 09:42  strk
+2013-05-13 09:42  Sandro Santilli <strk at keybit.net>
 
-	* Revert changes in test for wmsservers clients
+	* [r11457] regress/wmsservers.sql: Revert changes in test for
+	  wmsservers clients
 	  
 	  Augment min client messages to ERROR so that new deprecation
 	  warnings don't need to be expected.
 
-2013-05-13 06:45  robe
+2013-05-13 06:45  Regina Obe <lr at pcorp.us>
 
-	* fix typo in ST_ColorMap query
+	* [r11456] doc/reference_raster.xml: fix typo in ST_ColorMap query
 
-2013-05-13 04:14  robe
+2013-05-13 04:14  Regina Obe <lr at pcorp.us>
 
-	* dustymugs must have made a correction to pseudo_color -- no black
+	* [r11455] doc/html/images/st_colormap_bluered.png,
+	  doc/html/images/st_colormap_fire.png,
+	  doc/html/images/st_colormap_pseudo.png, doc/reference_raster.xml:
+	  dustymugs must have made a correction to pseudo_color -- no black
 	  background anymore, also add in visualizations for new named
 	  color ramps and liink fromST_AsPNNG TOST_COLRMap
 
-2013-05-12 19:40  colivier
+2013-05-12 19:40  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* #2323. Commit it and br .po for sfcgal doc
+	* [r11450] doc/po/it_IT/reference_sfcgal.xml.po,
+	  doc/po/pt_BR/reference_sfcgal.xml.po: #2323. Commit it and br .po
+	  for sfcgal doc
 
-2013-05-12 08:43  colivier
+2013-05-12 08:43  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* #2323. Add reference_sfcgal.xml.pot
+	* [r11449] doc/po/templates/reference_sfcgal.xml.pot: #2323. Add
+	  reference_sfcgal.xml.pot
 
-2013-05-12 04:19  robe
+2013-05-12 04:19  Regina Obe <lr at pcorp.us>
 
-	* bump trunk to 2.1.0beta3dev
+	* [r11443] Version.config, doc/postgis.xml: bump trunk to
+	  2.1.0beta3dev
 
-2013-05-12 03:08  robe
+2013-05-12 03:08  Regina Obe <lr at pcorp.us>
 
-	* switch download location to downloads.osgeo.org
+	* [r11440] doc/postgis.xml: switch download location to
+	  downloads.osgeo.org
 
-2013-05-12 03:05  robe
+2013-05-12 03:05  Regina Obe <lr at pcorp.us>
 
-	* prep for beta2 tagging
+	* [r11439] Version.config: prep for beta2 tagging
 
-2013-05-12 02:27  robe
+2013-05-12 02:27  Regina Obe <lr at pcorp.us>
 
-	* #1898, #2322 move geos functions in lwtin.c to lwgeom_geos.c to
-	  prevent unhealthy dependency on geos (for loader tools and also
-	  image generator), roll back change to cunit for loader (the geos
-	  includes). bump up version number to beta2dev
+	* [r11438] Version.config, extensions/upgradeable_versions.mk,
+	  liblwgeom/lwgeom_geos.c, liblwgeom/lwtin.c,
+	  loader/cunit/Makefile.in: #1898, #2322 move geos functions in
+	  lwtin.c to lwgeom_geos.c to prevent unhealthy dependency on geos
+	  (for loader tools and also image generator), roll back change to
+	  cunit for loader (the geos includes). bump up version number to
+	  beta2dev
 
-2013-05-11 16:05  robe
+2013-05-11 16:05  Regina Obe <lr at pcorp.us>
 
-	* one more try
+	* [r11424] doc/xsl/postgis_aggs_mm.xml.xsl: one more try
 
-2013-05-11 15:55  robe
+2013-05-11 15:55  Regina Obe <lr at pcorp.us>
 
-	* try again. committed obsolete version last time.
+	* [r11423] doc/xsl/postgis_aggs_mm.xml.xsl: try again. committed
+	  obsolete version last time.
 
-2013-05-11 15:50  robe
+2013-05-11 15:50  Regina Obe <lr at pcorp.us>
 
-	* fix booboo
+	* [r11422] doc/xsl/postgis_aggs_mm.xml.xsl: fix booboo
 
-2013-05-11 15:46  robe
+2013-05-11 15:46  Regina Obe <lr at pcorp.us>
 
-	* update version number to beta1 in prep for tagging, upgrade from
-	  old dev, amendments to how to release, rebuild of unpackaged
-	  scripts
+	* [r11421] HOWTO_RELEASE, Version.config,
+	  extensions/postgis/sql_bits/postgis--unpackaged.sql.in,
+	  extensions/postgis_topology/sql_bits/topology--unpackaged.sql.in,
+	  extensions/upgradeable_versions.mk: update version number to
+	  beta1 in prep for tagging, upgrade from old dev, amendments to
+	  how to release, rebuild of unpackaged scripts
 
-2013-05-11 15:32  robe
+2013-05-11 15:32  Regina Obe <lr at pcorp.us>
 
-	* change 3d icons, better distinction between required and
-	  enhnaced, minor grammar correction
+	* [r11420] doc/html/images/matrix_3dglasses.png,
+	  doc/html/images/matrix_sfcgal_enhanced.png,
+	  doc/html/images/matrix_sfcgal_required.png, doc/postgis.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: change 3d icons, better
+	  distinction between required and enhnaced, minor grammar
+	  correction
 
-2013-05-11 13:24  colivier
+2013-05-11 13:24  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Related to #2321. SFCGAL doc entry in installation.xml.
+	* [r11419] doc/installation.xml: Related to #2321. SFCGAL doc entry
+	  in installation.xml.
 
-2013-05-11 07:47  colivier
+2013-05-11 07:47  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* #2319 fix. Update SFCGAL regress tests after #1994 functions
-	  renaming
+	* [r11418] regress/sfcgal/regress.sql, regress/sfcgal/tickets.sql,
+	  regress/sfcgal/wmsservers.sql: #2319 fix. Update SFCGAL regress
+	  tests after #1994 functions renaming
 
-2013-05-11 05:20  robe
+2013-05-11 05:20  Regina Obe <lr at pcorp.us>
 
-	* have sfcgal function appear in special index and also flag if a
-	  function requires sfcgal in matrix
+	* [r11417] doc/Makefile.in, doc/html/images/matrix_3dglasses.png,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: have sfcgal function appear in
+	  special index and also flag if a function requires sfcgal in
+	  matrix
 
-2013-05-11 03:18  robe
+2013-05-11 03:18  Regina Obe <lr at pcorp.us>
 
-	* update screen outputs
+	* [r11416] doc/installation.xml: update screen outputs
 
-2013-05-11 02:34  robe
+2013-05-11 02:34  Regina Obe <lr at pcorp.us>
 
-	* missed one comment
+	* [r11415] doc/installation.xml: missed one comment
 
-2013-05-11 02:32  robe
+2013-05-11 02:32  Regina Obe <lr at pcorp.us>
 
-	* repeat create extension instructions in short -- heck its shorter
-	  than the crap we have listed. Also correect compile instructions
-	  (with-raster and -with-topology no longer need stating) get rid
-	  of other obsolete statements
+	* [r11414] doc/installation.xml: repeat create extension
+	  instructions in short -- heck its shorter than the crap we have
+	  listed. Also correect compile instructions (with-raster and
+	  -with-topology no longer need stating) get rid of other obsolete
+	  statements
 
-2013-05-11 02:14  robe
+2013-05-11 02:14  Regina Obe <lr at pcorp.us>
 
-	* update ReadMe to include SFCGAL and preferred versions of
-	  GEOS/GDAL/CGAL. Put pretty anchors in install so doesn't create
-	  hard to bookmark numbered anchors.
+	* [r11413] README.postgis, doc/installation.xml: update ReadMe to
+	  include SFCGAL and preferred versions of GEOS/GDAL/CGAL. Put
+	  pretty anchors in install so doesn't create hard to bookmark
+	  numbered anchors.
 
-2013-05-11 01:56  robe
+2013-05-11 01:56  Regina Obe <lr at pcorp.us>
 
-	* update change log in preparation for beta1 release
+	* [r11412] ChangeLog: update change log in preparation for beta1
+	  release
 
-2013-05-10 22:27  dustymugs
+2013-05-10 22:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added more predefined color ramps for ST_ColorMap(raster).
-	  Removed RGB
+	* [r11411] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_colormap_expected: Added more predefined
+	  color ramps for ST_ColorMap(raster). Removed RGB
 	  <-> HSV colorspace conversion as it sometimes resulted in strange
 	  answers when interpolating.
 
-2013-05-10 22:27  dustymugs
+2013-05-10 22:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Remove noisy info message. A big source of confusion. Ticket
-	  #2309
+	* [r11410] raster/rt_core/rt_api.c: Remove noisy info message. A
+	  big source of confusion. Ticket #2309
 
-2013-05-10 17:17  colivier
+2013-05-10 17:17  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* cf #2318, add a optional additional version parameter in
-	  ST_ForceSFS, handle both 1.1 and 1.2. default is 1.1
+	* [r11409] doc/reference_editor.xml,
+	  liblwgeom/cunit/cu_force_sfs.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeom.c, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in: cf #2318, add a optional additional
+	  version parameter in ST_ForceSFS, handle both 1.1 and 1.2.
+	  default is 1.1
 
-2013-05-10 16:23  colivier
+2013-05-10 16:23  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Use ST_MinkowskiSum rather than ST_Minkowski userland.
+	* [r11408] doc/reference_sfcgal.xml, postgis/sfcgal.sql.in,
+	  postgis/uninstall_sfcgal.sql.in, regress/regress_sfcgal.sql,
+	  regress/regress_sfcgal_expected: Use ST_MinkowskiSum rather than
+	  ST_Minkowski userland.
 
-2013-05-10 16:17  colivier
+2013-05-10 16:17  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* add a flag for SFCGAL function cf #2317. Remove useless
-	  ST_MakeSolid doc entry
+	* [r11407] doc/postgis.xml, doc/reference_sfcgal.xml: add a flag
+	  for SFCGAL function cf #2317. Remove useless ST_MakeSolid doc
+	  entry
 
-2013-05-10 15:00  strk
+2013-05-10 15:00  Sandro Santilli <strk at keybit.net>
 
-	* ST_Force_XXX renamed to ST_ForceXXX
+	* [r11406] NEWS, doc/performance_tips.xml,
+	  doc/reference_editor.xml, postgis/postgis.sql.in,
+	  regress/binary.sql, regress/lwgeom_regress.sql,
+	  regress/regress.sql, regress/tickets.sql, regress/typmod.sql,
+	  regress/wmsservers.sql: ST_Force_XXX renamed to ST_ForceXXX
 
-2013-05-10 13:24  colivier
+2013-05-10 13:24  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Update NEWS related to #2254 and #1823
+	* [r11405] NEWS: Update NEWS related to #2254 and #1823
 
-2013-05-10 13:02  colivier
+2013-05-10 13:02  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Change ST_force_sfs to ST_ForceSFS, also in ST_ConcaveHull
-	  calls...
+	* [r11404] postgis/postgis.sql.in: Change ST_force_sfs to
+	  ST_ForceSFS, also in ST_ConcaveHull calls...
 
-2013-05-10 11:43  colivier
+2013-05-10 11:43  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Change ST_force_sfs to ST_ForceSFS
+	* [r11403] doc/reference_editor.xml, postgis/postgis.sql.in: Change
+	  ST_force_sfs to ST_ForceSFS
 
-2013-05-10 11:40  colivier
+2013-05-10 11:40  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* output COLLECTION of Polygon for TIN and PolyhedralSurface, for
+	* [r11402] liblwgeom/cunit/cu_force_sfs.c, liblwgeom/lwgeom.c:
+	  output COLLECTION of Polygon for TIN and PolyhedralSurface, for
 	  ST_ForceSFS (instead of MultiPolygon). Thanks to Sandro for these
 	  input
 
-2013-05-10 10:47  colivier
+2013-05-10 10:47  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix #2314. Add a unit test for postgis_sfcgal_version
+	* [r11401] postgis/lwgeom_backend_api.c, postgis/lwgeom_sfcgal.c,
+	  postgis/postgis.sql.in, regress/regress_sfcgal.sql,
+	  regress/regress_sfcgal_expected: Fix #2314. Add a unit test for
+	  postgis_sfcgal_version
 
-2013-05-10 07:51  strk
+2013-05-10 07:51  Sandro Santilli <strk at keybit.net>
 
-	* Fix more compiler warnings
+	* [r11400] liblwgeom/lwlinearreferencing.c,
+	  liblwgeom/lwsegmentize.c, libpgcommon/lwgeom_pg.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_in_geohash.c: Fix more compiler warnings
 	  
 	  There are still some that would be nice to fix, but it's mostly
 	  the array subscript is above array bounds one
 
-2013-05-10 07:43  robe
-
-	* link to ST_NumBands
-
-2013-05-10 07:42  robe
-
-	* example of a custom color map
-
-2013-05-10 07:17  strk
+2013-05-10 07:43  Regina Obe <lr at pcorp.us>
 
-	* Fix compiler warnings in lwgeom_functions_analytic
+	* [r11399] doc/reference_raster.xml: link to ST_NumBands
 
-2013-05-10 07:06  strk
+2013-05-10 07:42  Regina Obe <lr at pcorp.us>
 
-	* Fix implicit declaration of function 'tolower' warning
+	* [r11398] doc/html/images/st_colormap_red.png,
+	  doc/reference_raster.xml: example of a custom color map
 
-2013-05-10 07:00  colivier
+2013-05-10 07:17  Sandro Santilli <strk at keybit.net>
 
-	* Related to #2313
+	* [r11397] postgis/lwgeom_functions_analytic.c: Fix compiler
+	  warnings in lwgeom_functions_analytic
 
-2013-05-10 06:57  robe
+2013-05-10 07:06  Sandro Santilli <strk at keybit.net>
 
-	* #2290 provide visual example of color map
+	* [r11396] liblwgeom/lwalgorithm.c: Fix implicit declaration of
+	  function 'tolower' warning
 
-2013-05-10 00:09  dustymugs
+2013-05-10 07:00  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Added generated sfcgal files
+	* [r11395] liblwgeom/cunit/cu_force_sfs.c: Related to #2313
 
-2013-05-10 00:09  dustymugs
+2013-05-10 06:57  Regina Obe <lr at pcorp.us>
 
-	* Addition of ST_ColorMap(raster). Ticket #2290
+	* [r11394] doc/html/images/st_colormap_grey.png,
+	  doc/html/images/st_colormap_orig.png,
+	  doc/html/images/st_colormap_pseudo.png, doc/reference_raster.xml:
+	  #2290 provide visual example of color map
 
-2013-05-09 23:46  dustymugs
+2013-05-10 00:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* Prevent compile error for when CGAL isn't wanted.
+	* [r11393] .gitignore: Added generated sfcgal files
 
-2013-05-09 22:12  colivier
+2013-05-10 00:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* add st_force_sfs doc
+	* [r11392] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in, raster/test/cunit/Makefile.in,
+	  raster/test/cunit/cu_mapalgebra.c, raster/test/cunit/cu_misc.c,
+	  raster/test/cunit/cu_tester.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_colormap.sql,
+	  raster/test/regress/rt_colormap_expected: Addition of
+	  ST_ColorMap(raster). Ticket #2290
 
-2013-05-09 19:38  colivier
+2013-05-09 23:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add SFCGAL support cf #2254. Include SFCGAL support, postgis
-	  backend handling (GEOS/SFCGAL). Regress tests, documentation
-	  prototypes and also additional force_sfs function.
+	* [r11391] postgis/lwgeom_backend_api.c: Prevent compile error for
+	  when CGAL isn't wanted.
 
-2013-05-09 14:22  robe
+2013-05-09 22:12  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* update extension install to include tiger geocoder and some
-	  helpful commands you can run from psql
+	* [r11390] doc/reference_editor.xml: add st_force_sfs doc
 
-2013-05-09 09:24  strk
+2013-05-09 19:38  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix potential access to uninitialized value
+	* [r11389] configure.ac, doc/Makefile.in, doc/postgis.xml,
+	  doc/reference.xml, doc/reference_measure.xml,
+	  doc/reference_processing.xml, doc/reference_sfcgal.xml,
+	  doc/xsl/postgis_comments.sql.xsl,
+	  doc/xsl/sfcgal_cheatsheet.html.xsl,
+	  doc/xsl/sfcgal_comments.sql.xsl, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_force_sfs.c,
+	  liblwgeom/cunit/cu_sfcgal.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_sfcgal.c, liblwgeom/lwgeom_sfcgal.h,
+	  postgis/Makefile.in, postgis/lwgeom_backend_api.c,
+	  postgis/lwgeom_backend_api.h, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
+	  postgis/lwgeom_sfcgal.c, postgis/lwgeom_sfcgal.h,
+	  postgis/postgis.sql.in, postgis/postgis_module.c,
+	  postgis/sfcgal.sql.in, postgis/uninstall_sfcgal.sql.in,
+	  regress/Makefile.in, regress/regress_sfcgal.sql,
+	  regress/regress_sfcgal_expected, regress/run_test,
+	  regress/run_test.pl, regress/sfcgal, regress/sfcgal/README,
+	  regress/sfcgal/concave_hull.sql,
+	  regress/sfcgal/concave_hull_expected, regress/sfcgal/empty.sql,
+	  regress/sfcgal/empty_expected, regress/sfcgal/geography.sql,
+	  regress/sfcgal/geography_expected, regress/sfcgal/legacy.sql,
+	  regress/sfcgal/legacy_expected, regress/sfcgal/measures.sql,
+	  regress/sfcgal/measures_expected, regress/sfcgal/regress.sql,
+	  regress/sfcgal/regress_expected, regress/sfcgal/regress_ogc.sql,
+	  regress/sfcgal/regress_ogc_expected,
+	  regress/sfcgal/regress_ogc_prep.sql,
+	  regress/sfcgal/regress_ogc_prep_expected,
+	  regress/sfcgal/tickets.sql, regress/sfcgal/tickets_expected,
+	  regress/sfcgal/wmsservers.sql,
+	  regress/sfcgal/wmsservers_expected: Add SFCGAL support cf #2254.
+	  Include SFCGAL support, postgis backend handling (GEOS/SFCGAL).
+	  Regress tests, documentation prototypes and also additional
+	  force_sfs function.
+
+2013-05-09 14:22  Regina Obe <lr at pcorp.us>
+
+	* [r11388] doc/installation.xml: update extension install to
+	  include tiger geocoder and some helpful commands you can run from
+	  psql
+
+2013-05-09 09:24  Sandro Santilli <strk at keybit.net>
+
+	* [r11387] liblwgeom/lwcompound.c: Fix potential access to
+	  uninitialized value
 	  
 	  It would have happened on malformed COMPOUNDCURVE (unlikely).
 	  Hushes compiler warning.
 
-2013-05-09 06:34  robe
+2013-05-09 06:34  Regina Obe <lr at pcorp.us>
 
-	* start accounting for more raster helper types - addbandarg etc.
+	* [r11385] doc/xsl/raster_gardentest.sql.xsl: start accounting for
+	  more raster helper types - addbandarg etc.
 
-2013-05-08 20:37  pramsey
+2013-05-08 20:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2298, ST_AsGML geography crashable with monkey inputs
+	* [r11384] postgis/geography_inout.c: #2298, ST_AsGML geography
+	  crashable with monkey inputs
 
-2013-05-08 05:18  robe
+2013-05-08 05:18  Regina Obe <lr at pcorp.us>
 
-	* #2242: Clarify behavior of ST_Union with NULLS
+	* [r11383] doc/reference_processing.xml: #2242: Clarify behavior of
+	  ST_Union with NULLS
 
-2013-05-08 05:05  robe
+2013-05-08 05:05  Regina Obe <lr at pcorp.us>
 
-	* put full version number on st_tpi, st_tri, st_roughness
+	* [r11382] doc/reference_raster.xml: put full version number on
+	  st_tpi, st_tri, st_roughness
 
-2013-05-07 23:04  dustymugs
+2013-05-07 23:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* Commented out debug call to non-existant function
-	  nd_stats_to_grid().
+	* [r11381] NEWS, postgis/gserialized_estimate.c: Commented out
+	  debug call to non-existant function nd_stats_to_grid().
 	  Ticket #2282
 
-2013-05-07 15:39  dustymugs
+2013-05-07 15:39  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_TRI(raster). Ticket #2164. Thanks to Nathaniel Clay for
+	* [r11380] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_elevation_functions.sql,
+	  raster/test/regress/rt_elevation_functions_expected: Added
+	  ST_TRI(raster). Ticket #2164. Thanks to Nathaniel Clay for
 	  writing the function and required docs and regression tests.
 
-2013-05-07 15:39  dustymugs
+2013-05-07 15:39  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Roughness(raster). Ticket #2302. Thanks to Nathaniel
-	  Clay for writing the function and required docs and regression
-	  tests.
+	* [r11379] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_elevation_functions.sql,
+	  raster/test/regress/rt_elevation_functions_expected: Added
+	  ST_Roughness(raster). Ticket #2302. Thanks to Nathaniel Clay for
+	  writing the function and required docs and regression tests.
 
-2013-05-07 15:39  dustymugs
+2013-05-07 15:39  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_TPI(raster). Ticket #2163. Thanks to Nathaniel Clay for
+	* [r11378] NEWS, doc/introduction.xml, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_elevation_functions.sql,
+	  raster/test/regress/rt_elevation_functions_expected: Added
+	  ST_TPI(raster). Ticket #2163. Thanks to Nathaniel Clay for
 	  writing
 	  the function and required docs and regression tests.
 
-2013-05-07 15:32  robe
+2013-05-07 15:32  Regina Obe <lr at pcorp.us>
 
-	* try again
+	* [r11377] doc/postgis.xml: try again
 
-2013-05-07 15:00  robe
+2013-05-07 15:00  Regina Obe <lr at pcorp.us>
 
-	* put in author info ePub just shows unknown for author (annoying).
-	  Move editor into authorgroup. Also put in productname and number
+	* [r11376] doc/postgis.xml: put in author info ePub just shows
+	  unknown for author (annoying). Move editor into authorgroup. Also
+	  put in productname and number
 
-2013-05-07 06:05  robe
+2013-05-07 06:05  Regina Obe <lr at pcorp.us>
 
-	* fix PGCONFIG (change to @PG_CONFIG@ ) to be consistent with
-	  configure variable change.
+	* [r11375] extensions/postgis_tiger_geocoder/Makefile.in: fix
+	  PGCONFIG (change to @PG_CONFIG@ ) to be consistent with configure
+	  variable change.
 
-2013-05-06 08:30  strk
+2013-05-06 08:30  Sandro Santilli <strk at keybit.net>
 
-	* Ensure local liblwgeom dir is added first to include path in
-	  loader/
+	* [r11364] loader/Makefile.in: Ensure local liblwgeom dir is added
+	  first to include path in loader/
 
-2013-05-06 07:58  robe
+2013-05-06 07:58  Regina Obe <lr at pcorp.us>
 
-	* Add GEOS to compile cunit flags of shp2pgsql to prevent error in
-	  #1898
+	* [r11363] loader/cunit/Makefile.in: Add GEOS to compile cunit
+	  flags of shp2pgsql to prevent error in #1898
 
-2013-05-06 06:48  robe
+2013-05-06 06:48  Regina Obe <lr at pcorp.us>
 
-	* #1898: Nathan Wagner's patch that adds a flag 2 to allow
-	  ST_DelaunayTriangles to dump out a TIN. Just commit and see if
-	  winnie has same issue with shp2pgsql-gui checks
+	* [r11361] doc/reference_processing.xml, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwtin.c, regress/delaunaytriangles.sql,
+	  regress/delaunaytriangles_expected: #1898: Nathan Wagner's patch
+	  that adds a flag 2 to allow ST_DelaunayTriangles to dump out a
+	  TIN. Just commit and see if winnie has same issue with
+	  shp2pgsql-gui checks
 
-2013-05-05 22:35  robe
+2013-05-05 22:35  Regina Obe <lr at pcorp.us>
 
-	* #1818 slight doc change move the FromGeoHash family to
-	  constructor section and link back to ST_GeoHash output and amend
-	  credits to Jason Smith
+	* [r11360] NEWS, doc/introduction.xml,
+	  doc/reference_constructor.xml, doc/reference_output.xml: #1818
+	  slight doc change move the FromGeoHash family to constructor
+	  section and link back to ST_GeoHash output and amend credits to
+	  Jason Smith
 
-2013-05-05 16:34  robe
+2013-05-05 16:34  Regina Obe <lr at pcorp.us>
 
-	* #2118: add enhanced note to ST_Boundary (to note Nathan Wagner
-	  ST_Triangle support feature)
+	* [r11359] doc/reference_accessor.xml: #2118: add enhanced note to
+	  ST_Boundary (to note Nathan Wagner ST_Triangle support feature)
 
-2013-05-05 16:24  robe
+2013-05-05 16:24  Regina Obe <lr at pcorp.us>
 
-	* #2118: ST_Boundary support for Triangle type
+	* [r11358] postgis/lwgeom_geos.c, regress/Makefile.in,
+	  regress/boundary.sql, regress/boundary_expected: #2118:
+	  ST_Boundary support for Triangle type
 
-2013-05-05 01:37  robe
+2013-05-05 01:37  Regina Obe <lr at pcorp.us>
 
-	* change output naming of epub to be consistent with pdf and also
-	  try to add in the css include
+	* [r11356] doc/Makefile.in: change output naming of epub to be
+	  consistent with pdf and also try to add in the css include
 
-2013-05-04 20:15  robe
+2013-05-04 20:15  Regina Obe <lr at pcorp.us>
 
-	* bah dbtoepub doesn't understand includes
+	* [r11355] doc/Makefile.in: bah dbtoepub doesn't understand
+	  includes
 
-2013-05-04 20:04  robe
+2013-05-04 20:04  Regina Obe <lr at pcorp.us>
 
-	* switch back to rout but attempt a -I include
+	* [r11354] doc/Makefile.in: switch back to rout but attempt a -I
+	  include
 
-2013-05-04 19:42  robe
+2013-05-04 19:42  Regina Obe <lr at pcorp.us>
 
-	* change epub to be built in html so relative search for images
-	  doesn't break, fix deprecated links
+	* [r11353] doc/Makefile.in: change epub to be built in html so
+	  relative search for images doesn't break, fix deprecated links
 
-2013-05-04 16:59  robe
+2013-05-04 16:59  Regina Obe <lr at pcorp.us>
 
-	* #2204: regina programming in dark trying to put in epub build
-	  logic
+	* [r11352] doc/Makefile.in: #2204: regina programming in dark
+	  trying to put in epub build logic
 
-2013-05-04 13:54  robe
+2013-05-04 13:54  Regina Obe <lr at pcorp.us>
 
-	* change log tables generated to have 21 in name (topology garden
-	  test is far from done)
+	* [r11350] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl,
+	  doc/xsl/raster_gardentest.sql.xsl,
+	  doc/xsl/topology_gardentest.sql.xsl: change log tables generated
+	  to have 21 in name (topology garden test is far from done)
 
-2013-05-04 13:18  robe
+2013-05-04 13:18  Regina Obe <lr at pcorp.us>
 
-	* #2295 Nathan Wagner patch to support for dumping circular strings
-	  in dump points
+	* [r11349] liblwgeom/liblwgeom.h.in, liblwgeom/lwcircstring.c,
+	  postgis/lwgeom_dumppoints.c, regress/dumppoints_expected: #2295
+	  Nathan Wagner patch to support for dumping circular strings in
+	  dump points
 
-2013-05-04 01:16  robe
+2013-05-04 01:16  Regina Obe <lr at pcorp.us>
 
-	* #2293: patch to throw an error for curved geoms on ST_DumpPoints
-	  rather than crash.
+	* [r11346] postgis/lwgeom_dumppoints.c, regress/dumppoints.sql,
+	  regress/dumppoints_expected: #2293: patch to throw an error for
+	  curved geoms on ST_DumpPoints rather than crash.
 
-2013-05-03 05:54  robe
+2013-05-03 05:54  Regina Obe <lr at pcorp.us>
 
-	* #1292 commit patch ST_SnapToGrid returns a value of of range
+	* [r11345] postgis/geography_inout.c, regress/tickets.sql,
+	  regress/tickets_expected: #1292 commit patch ST_SnapToGrid
+	  returns a value of of range
 
-2013-05-03 04:45  robe
+2013-05-03 04:45  Regina Obe <lr at pcorp.us>
 
-	* #1818 credit updates J. Smith (also fix web link in CREDITS file)
+	* [r11344] CREDITS, NEWS, doc/introduction.xml: #1818 credit
+	  updates J. Smith (also fix web link in CREDITS file)
 
-2013-05-03 04:12  robe
+2013-05-03 04:12  Regina Obe <lr at pcorp.us>
 
-	* #1818: geohash one more file forgot to commit.
+	* [r11343] postgis/lwgeom_in_geohash.c: #1818: geohash one more
+	  file forgot to commit.
 
-2013-05-03 04:05  robe
+2013-05-03 04:05  Regina Obe <lr at pcorp.us>
 
-	* #1818: oops forgot to add the tests
+	* [r11342] regress/in_geohash.sql, regress/in_geohash_expected:
+	  #1818: oops forgot to add the tests
 
-2013-05-03 04:04  robe
+2013-05-03 04:04  Regina Obe <lr at pcorp.us>
 
-	* #1818: geohash patch hashbox to geom
+	* [r11341] doc/reference_output.xml,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwalgorithm.c,
+	  postgis/Makefile.in, postgis/postgis.sql.in, regress/Makefile.in,
+	  utils/postgis_restore.pl.in: #1818: geohash patch hashbox to geom
 
-2013-05-02 12:03  robe
+2013-05-02 12:03  Regina Obe <lr at pcorp.us>
 
-	* #2262 change box cast from implicit to assignment
+	* [r11340] postgis/postgis.sql.in: #2262 change box cast from
+	  implicit to assignment
 
-2013-05-02 12:00  robe
+2013-05-02 12:00  Regina Obe <lr at pcorp.us>
 
-	* add 2.0.3 and 2.1 sections, break out 2.1 changed from new
+	* [r11339] NEWS, doc/release_notes.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: add 2.0.3 and 2.1 sections,
+	  break out 2.1 changed from new
 
-2013-05-01 13:48  robe
+2013-05-01 13:48  Regina Obe <lr at pcorp.us>
 
-	* ban strk's annoying warning note about using deprecated functions
+	* [r11334]
+	  extras/tiger_geocoder/tiger_2011/geocode/interpolate_from_address.sql:
+	  ban strk's annoying warning note about using deprecated functions
 
-2013-05-01 05:51  robe
+2013-05-01 05:51  Regina Obe <lr at pcorp.us>
 
-	* revise unpackaged to include pagc stuff
+	* [r11333]
+	  extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in:
+	  revise unpackaged to include pagc stuff
 
-2013-05-01 05:05  robe
+2013-05-01 05:05  Regina Obe <lr at pcorp.us>
 
-	* fix formatting was causing miss parsing of zips
+	* [r11332]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql:
+	  fix formatting was causing miss parsing of zips
 
-2013-04-30 03:39  robe
+2013-04-30 03:39  Regina Obe <lr at pcorp.us>
 
-	* one more clarification
+	* [r11330] doc/installation.xml: one more clarification
 
-2013-04-30 03:35  robe
+2013-04-30 03:35  Regina Obe <lr at pcorp.us>
 
-	* clarify under what conditions you can compile without GDAL
+	* [r11329] doc/installation.xml: clarify under what conditions you
+	  can compile without GDAL
 
-2013-04-29 05:31  robe
+2013-04-29 05:31  Regina Obe <lr at pcorp.us>
 
-	* #2279 fix typo got smallint and int4 confused
+	* [r11328] postgis/postgis_drop_before.sql: #2279 fix typo got
+	  smallint and int4 confused
 
-2013-04-28 21:27  robe
+2013-04-28 21:27  Regina Obe <lr at pcorp.us>
 
-	* #2279: fix inability to upgrade from 2.0 to 2.1 by renaming old
-	  geog/geom selectivity functions to new name (if they are
-	  currently used) aand then allowing the standard upgrade to steam
-	  roll over the definitions.
+	* [r11327] postgis/postgis_drop_before.sql: #2279: fix inability to
+	  upgrade from 2.0 to 2.1 by renaming old geog/geom selectivity
+	  functions to new name (if they are currently used) aand then
+	  allowing the standard upgrade to steam roll over the definitions.
 
-2013-04-26 14:47  dustymugs
+2013-04-26 14:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Summary(raster). Ticket #2280
+	* [r11326] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_utility-post.pl,
+	  raster/test/regress/rt_utility-post.sh,
+	  raster/test/regress/rt_utility-pre.pl,
+	  raster/test/regress/rt_utility-pre.sh,
+	  raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected: Added
+	  ST_Summary(raster). Ticket #2280
 
-2013-04-25 10:07  robe
+2013-04-25 10:07  Regina Obe <lr at pcorp.us>
 
-	* updates to instructions more coming though should probably just
-	  put n onlin documentation
+	* [r11325] extras/tiger_geocoder/tiger_2011/README: updates to
+	  instructions more coming though should probably just put n onlin
+	  documentation
 
-2013-04-25 10:07  robe
+2013-04-25 10:07  Regina Obe <lr at pcorp.us>
 
-	* #2260: revise to use new API structure of pagc standardizer
+	* [r11324]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+	  #2260: revise to use new API structure of pagc standardizer
 
-2013-04-24 15:54  dustymugs
+2013-04-24 15:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added better handling of file paths for msys
+	* [r11323] raster/test/regress/rt_addband-pre.pl,
+	  raster/test/regress/rt_addband-pre.sh,
+	  raster/test/regress/rt_bytea-pre.pl,
+	  raster/test/regress/rt_bytea-pre.sh: Added better handling of
+	  file paths for msys
 
-2013-04-24 03:34  robe
+2013-04-24 03:34  Regina Obe <lr at pcorp.us>
 
-	* Add update path from 2.0.3 to 2.1.0SVN
+	* [r11321] extensions/upgradeable_versions.mk: Add update path from
+	  2.0.3 to 2.1.0SVN
 
-2013-04-23 23:46  dustymugs
+2013-04-23 23:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added parameter to ST_AsBinary(raster) to permit out-db bands to
-	  be treated as in-db. Ticket #2222
+	* [r11320] NEWS, doc/reference_raster.xml,
+	  raster/loader/raster2pgsql.c, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/rt_pg/rtpostgis_drop.sql.in,
+	  raster/test/cunit/cu_raster_wkb.c,
+	  raster/test/regress/rt_bytea-post.pl,
+	  raster/test/regress/rt_bytea-post.sh,
+	  raster/test/regress/rt_bytea-pre.pl,
+	  raster/test/regress/rt_bytea-pre.sh,
+	  raster/test/regress/rt_bytea.sql: Added parameter to
+	  ST_AsBinary(raster) to permit out-db bands to be treated as
+	  in-db. Ticket #2222
 
-2013-04-23 21:48  pramsey
+2013-04-23 21:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2275, revert configure argument with-pgconfig
+	* [r11319] configure.ac: #2275, revert configure argument
+	  with-pgconfig
 
-2013-04-23 21:03  pramsey
+2013-04-23 21:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2277, potential segfault condition removed
+	* [r11315] postgis/lwgeom_geos_prepared.c: #2277, potential
+	  segfault condition removed
 
-2013-04-23 20:37  dustymugs
+2013-04-23 20:37  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added test for loading out-db rasters in raster2pgsql
+	* [r11314] raster/test/regress/Makefile.in,
+	  raster/test/regress/loader/BasicOutDB-post.pl,
+	  raster/test/regress/loader/BasicOutDB-post.sh,
+	  raster/test/regress/loader/BasicOutDB-pre.pl,
+	  raster/test/regress/loader/BasicOutDB-pre.sh,
+	  raster/test/regress/loader/BasicOutDB.select.expected,
+	  raster/test/regress/loader/BasicOutDB.select.sql,
+	  raster/test/regress/rt_addband-post.sh,
+	  raster/test/regress/rt_addband-pre.sh: Added test for loading
+	  out-db rasters in raster2pgsql
 
-2013-04-23 19:32  dustymugs
+2013-04-23 19:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Explicitly initialize memory as valgrind complains
+	* [r11313] raster/test/cunit/cu_tester.c: Explicitly initialize
+	  memory as valgrind complains
 
-2013-04-23 19:32  dustymugs
+2013-04-23 19:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added bash versions of "bootstrapping" code for rt_addband test
+	* [r11312] raster/test/regress/rt_addband-post.pl,
+	  raster/test/regress/rt_addband-post.sh,
+	  raster/test/regress/rt_addband-pre.pl,
+	  raster/test/regress/rt_addband-pre.sh, regress/run_test: Added
+	  bash versions of "bootstrapping" code for rt_addband test
 
-2013-04-23 19:32  dustymugs
+2013-04-23 19:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_AddBand(raster, ...) for out-db bands. Ticket
+	* [r11311] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_addband-post.pl,
+	  raster/test/regress/rt_addband-pre.pl,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_addband_expected, regress/run_test.pl:
+	  Addition of ST_AddBand(raster, ...) for out-db bands. Ticket
 	  #2276
 
-2013-04-17 12:46  robe
+2013-04-17 12:46  Regina Obe <lr at pcorp.us>
 
-	* oops had wrong data type for tables
+	* [r11306]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+	  oops had wrong data type for tables
 
-2013-04-17 06:58  strk
+2013-04-17 06:58  Sandro Santilli <strk at keybit.net>
 
-	* Properly escape dashes in man pages
+	* [r11305] doc/man/pgsql2shp.1, doc/man/shp2pgsql.1: Properly
+	  escape dashes in man pages
 	  
 	  Patch by Markus Wanner <markus at bluegap.ch>
 
-2013-04-16 18:23  dustymugs
+2013-04-16 18:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added numerical parameters version of ST_SetGeoReference(raster).
+	* [r11304] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_georeference.sql,
+	  raster/test/regress/rt_georeference_expected: Added numerical
+	  parameters version of ST_SetGeoReference(raster).
 	  Ticket #613
 
-2013-04-16 15:21  pramsey
+2013-04-16 15:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change PGCONFIG to PG_CONFIG
+	* [r11301] configure.ac, doc/Makefile.comments.in,
+	  extensions/postgis/Makefile.in,
+	  extensions/postgis_topology/Makefile.in, loader/Makefile.in,
+	  postgis/Makefile.in, raster/rt_pg/Makefile.in,
+	  topology/Makefile.in, utils/Makefile.in: Change PGCONFIG to
+	  PG_CONFIG
 
-2013-04-16 07:40  strk
+2013-04-16 07:40  Sandro Santilli <strk at keybit.net>
 
-	* Link to wikipedia article about GeoHash from ST_GeoHash
+	* [r11300] doc/reference_output.xml: Link to wikipedia article
+	  about GeoHash from ST_GeoHash
 
-2013-04-15 21:40  dustymugs
+2013-04-15 21:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Emit warning when changing a raster's georeference if raster has
-	  any
+	* [r11298] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c: Emit warning when
+	  changing a raster's georeference if raster has any
 	  out-db bands. Also updated docs with note. Ticket #2244
 
-2013-04-15 21:14  robe
+2013-04-15 21:14  Regina Obe <lr at pcorp.us>
 
-	* add new use_pagc_addess_parser switch in list
+	* [r11297] doc/extras_tigergeocoder.xml: add new
+	  use_pagc_addess_parser switch in list
 
-2013-04-15 08:02  strk
+2013-04-15 08:02  Sandro Santilli <strk at keybit.net>
 
-	* Add -s to usage string of postgis_restore.pl. See #2264
+	* [r11296] utils/postgis_restore.pl.in: Add -s to usage string of
+	  postgis_restore.pl. See #2264
 
-2013-04-13 18:26  mcayland
+2013-04-13 18:26  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Associated CLI fix for #2272: shp2pgsql-gui crashes when given
-	  filenames with dots.
+	* [r11294] loader/shp2pgsql-cli.c: Associated CLI fix for #2272:
+	  shp2pgsql-gui crashes when given filenames with dots.
 	  
 	  After some experimentation, the best solution seems to be to use
 	  a separate scan to
@@ -3664,10 +11194,10 @@
 	  deriving the table
 	  name.
 
-2013-04-13 17:36  mcayland
+2013-04-13 17:36  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for bug #2272: shp2pgsql-gui crashes when given filenames
-	  with dots.
+	* [r11292] loader/shp2pgsql-core.c, loader/shp2pgsql-gui.c: Fix for
+	  bug #2272: shp2pgsql-gui crashes when given filenames with dots.
 	  
 	  This was a combination of two bugs: firstly, we weren't
 	  initialising the
@@ -3687,48 +11217,59 @@
 	  so
 	  that shapelib does the right thing.
 
-2013-04-13 07:15  robe
+2013-04-13 07:15  Regina Obe <lr at pcorp.us>
 
-	* #2260 - fix normalize discrepancy in pagc handling service drives
+	* [r11290]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+	  #2260 - fix normalize discrepancy in pagc handling service drives
 
-2013-04-12 18:46  pramsey
+2013-04-12 18:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #945, clean up build artefacts and upgrade script
+	* [r11289] postgis/Makefile.in, postgis/gserialized_estimate.c,
+	  postgis/postgis_drop_after.sql: #945, clean up build artefacts
+	  and upgrade script
 
-2013-04-12 18:33  pramsey
+2013-04-12 18:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #945, remove the old selectivity code, now no longer being called
+	* [r11288] postgis/Makefile.in, postgis/geography.sql.in,
+	  postgis/geography_estimate.c, postgis/geography_inout.c,
+	  postgis/geometry_estimate.c, postgis/gserialized_estimate.c,
+	  postgis/postgis.sql.in: #945, remove the old selectivity code,
+	  now no longer being called
 
-2013-04-12 16:20  strk
+2013-04-12 16:20  Sandro Santilli <strk at keybit.net>
 
-	* Rewrite the postgis_restore.pl improvement line
+	* [r11286] NEWS: Rewrite the postgis_restore.pl improvement line
 	  
 	  The commit message was also wrong, it's not the dump having
 	  postgis
 	  in custom schema but the new install...
 
-2013-04-12 16:10  strk
+2013-04-12 16:10  Sandro Santilli <strk at keybit.net>
 
-	* postgis_restore.pl support for dump with postgis in custom schema
+	* [r11285] NEWS, utils/postgis_restore.pl.in: postgis_restore.pl
+	  support for dump with postgis in custom schema
 	  
 	  See #2264 -- thanks Thomas (frost242)
 
-2013-04-11 20:14  dustymugs
+2013-04-11 20:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Prevent parallel make of raster. Ticket 2271
+	* [r11284] NEWS, raster/Makefile.in: Prevent parallel make of
+	  raster. Ticket 2271
 
-2013-04-10 20:06  robe
+2013-04-10 20:06  Regina Obe <lr at pcorp.us>
 
-	* give license faq a permanent pretty anchor.
+	* [r11281] doc/faq.xml: give license faq a permanent pretty anchor.
 
-2013-04-09 23:45  dustymugs
+2013-04-09 23:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix expression-based ST_MapAlgebra resulting in regression
-	  failures on some machines
+	* [r11277] raster/rt_pg/rt_pg.c: Fix expression-based ST_MapAlgebra
+	  resulting in regression failures on some machines
 
-2013-04-09 22:43  strk
+2013-04-09 22:43  Sandro Santilli <strk at keybit.net>
 
-	* Fix access to random memory during ANALYZE
+	* [r11276] postgis/geometry_estimate.c: Fix access to random memory
+	  during ANALYZE
 	  
 	  The bug was introduced with previous commit, see #2269
 	  
@@ -3738,237 +11279,318 @@
 	  values. This may have some consequence on the planner (not
 	  known at time of commit).
 
-2013-04-09 18:35  strk
+2013-04-09 18:35  Sandro Santilli <strk at keybit.net>
 
-	* Avoid uselessly detoasting full geometries on ANALYZE (#2269)
+	* [r11274] postgis/geometry_estimate.c: Avoid uselessly detoasting
+	  full geometries on ANALYZE (#2269)
 
-2013-04-06 18:14  dustymugs
+2013-04-06 18:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed debug statements
+	* [r11257] postgis/lwgeom_btree.c: Removed debug statements
 
-2013-04-06 18:11  dustymugs
+2013-04-06 18:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* GBOX variables not initialized for empty geometries. Ticket #2257
+	* [r11256] NEWS, postgis/lwgeom_btree.c: GBOX variables not
+	  initialized for empty geometries. Ticket #2257
 
-2013-04-05 14:37  robe
+2013-04-05 14:37  Regina Obe <lr at pcorp.us>
 
-	* change to use some elements from parse_address
+	* [r11255]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql:
+	  change to use some elements from parse_address
 
-2013-04-05 14:28  robe
+2013-04-05 14:28  Regina Obe <lr at pcorp.us>
 
-	* add pagc regression testing. Will upload the regress output once
-	  I look into the regression failures
+	* [r11254]
+	  extras/tiger_geocoder/tiger_2011/regress/pagc_normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2011/regress/regress.sql: add pagc
+	  regression testing. Will upload the regress output once I look
+	  into the regression failures
 
-2013-04-04 06:46  robe
+2013-04-04 06:46  Regina Obe <lr at pcorp.us>
 
-	* #2192: doco patch
+	* [r11252] doc/reference_processing.xml: #2192: doco patch
 
-2013-04-03 22:53  robe
+2013-04-03 22:53  Regina Obe <lr at pcorp.us>
 
-	* #2258 get rid of explicit public (so people can install postgis
-	  in any schema they want), but insure we use security invoker to
-	  call new st_esimatedExtent to prevent malicious code injection.
+	* [r11249] postgis/postgis.sql.in: #2258 get rid of explicit public
+	  (so people can install postgis in any schema they want), but
+	  insure we use security invoker to call new st_esimatedExtent to
+	  prevent malicious code injection.
 
-2013-04-03 13:39  robe
+2013-04-03 13:39  Regina Obe <lr at pcorp.us>
 
-	* mark pagc lookup tables is_custom = true as editable
+	* [r11248]
+	  extensions/postgis_tiger_geocoder/sql_bits/mark_editable_objects.sql.in:
+	  mark pagc lookup tables is_custom = true as editable
 
-2013-04-03 12:54  robe
+2013-04-03 12:54  Regina Obe <lr at pcorp.us>
 
-	* #2261: fix creation of next next upgrade script, add null
+	* [r11247] extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql:
+	  #2261: fix creation of next next upgrade script, add null
 	  protection for pagc_normalize_address
 
-2013-04-02 22:22  robe
+2013-04-02 22:22  Regina Obe <lr at pcorp.us>
 
-	* #2193: implement upgrade next next functionality hack, implement
+	* [r11246] extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/tiger_2011/normalize/normalize_address.sql:
+	  #2193: implement upgrade next next functionality hack, implement
 	  swap -- SELECT
 	  set_geocode_setting('use_pagc_address_parser','true'); will cause
 	  geocoder to use pagc address parser instead of build in
 	  normalizer
 
-2013-04-02 20:51  robe
+2013-04-02 20:51  Regina Obe <lr at pcorp.us>
 
-	* #2193: get rid of redundant call.
+	* [r11245] extras/tiger_geocoder/tiger_2011/upgrade_geocode.sql:
+	  #2193: get rid of redundant call.
 
-2013-04-02 20:46  robe
+2013-04-02 20:46  Regina Obe <lr at pcorp.us>
 
-	* #2193 integrate pagc in extension (loads helper tables) and also
+	* [r11244] extensions/postgis_tiger_geocoder/Makefile.in,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocode.sql: #2193
+	  integrate pagc in extension (loads helper tables) and also
 	  upgrade and create scripts, modify tables some more. Still need
 	  to put in another folder with c files for compile and in manual
 	  on how to enable.
 
-2013-04-02 15:07  robe
+2013-04-02 15:07  Regina Obe <lr at pcorp.us>
 
-	* #2193: pretype (not ideal because norm_addy doesn't have slot for
+	* [r11243]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql:
+	  #2193: pretype (not ideal because norm_addy doesn't have slot for
 	  it so just stuff in streettypeabbrev ) .norm_addy should ideally
 	  be changed.
 
-2013-04-02 14:57  robe
+2013-04-02 14:57  Regina Obe <lr at pcorp.us>
 
-	* forgot the pre direction
+	* [r11242]
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql:
+	  forgot the pre direction
 
-2013-04-02 14:43  robe
+2013-04-02 14:43  Regina Obe <lr at pcorp.us>
 
-	* First step of integrating the pagc normalizer, add the tables and
+	* [r11241] extras/tiger_geocoder/tiger_2011/geocode_settings.sql,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql:
+	  First step of integrating the pagc normalizer, add the tables and
 	  wrapper function that return a norm_addy object and also a
 	  geocode_setting option to swap out old address parser with pagc
 
-2013-03-31 01:55  robe
+2013-03-31 01:55  Regina Obe <lr at pcorp.us>
 
-	* #2018 mark ST_Dwithin as also supporting curves. Just taking
-	  rpamsey's word for this -- will test later.
+	* [r11230] doc/reference_measure.xml: #2018 mark ST_Dwithin as also
+	  supporting curves. Just taking rpamsey's word for this -- will
+	  test later.
 
-2013-03-30 01:19  robe
+2013-03-30 01:19  Regina Obe <lr at pcorp.us>
 
-	* #2018: highlight that curves are now supported - examples
-	  forthcoming. Also broke geography into separate example section
+	* [r11228] doc/reference_measure.xml: #2018: highlight that curves
+	  are now supported - examples forthcoming. Also broke geography
+	  into separate example section
 
-2013-03-29 20:38  pramsey
+2013-03-29 20:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2018, Remove old bruteforce function and replace with new one.
+	* [r11227] liblwgeom/measures.c, liblwgeom/measures.h: #2018,
+	  Remove old bruteforce function and replace with new one.
 
-2013-03-29 20:37  dustymugs
+2013-03-29 20:37  Bborie Park <bkpark at ucdavis.edu>
 
-	* Set CFLAGS in loader cunit tests so that mingw can run tests
+	* [r11226] loader/cunit/Makefile.in: Set CFLAGS in loader cunit
+	  tests so that mingw can run tests
 
-2013-03-29 16:47  dustymugs
+2013-03-29 16:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed commented out variants of ST_MapAlgebra removed in
-	  r11222.
+	* [r11225] raster/rt_pg/rtpostgis.sql.in: Removed commented out
+	  variants of ST_MapAlgebra removed in r11222.
 
-2013-03-29 16:36  dustymugs
+2013-03-29 16:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added news about Ticket #2133
+	* [r11224] NEWS: Added news about Ticket #2133
 
-2013-03-29 16:34  dustymugs
+2013-03-29 16:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code cleanup to shut gcc up
+	* [r11223] raster/loader/raster2pgsql.c, raster/rt_pg/rt_pg.c,
+	  raster/test/cunit/cu_band_stats.c, raster/test/cunit/cu_gdal.c,
+	  raster/test/cunit/cu_raster_geometry.c: Code cleanup to shut gcc
+	  up
 
-2013-03-29 16:33  dustymugs
+2013-03-29 16:33  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored expression variant of ST_MapAlgebra() to be faster.
+	* [r11222] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/rt_mapalgebra_expr_expected: Refactored
+	  expression variant of ST_MapAlgebra() to be faster.
 	  Performance is almost as good as ST_MapAlgebraExpr(). Ticket
 	  #2133
 
-2013-03-29 15:55  robe
+2013-03-29 15:55  Regina Obe <lr at pcorp.us>
 
-	* fix link
+	* [r11221] doc/faq_raster.xml: fix link
 
-2013-03-28 22:11  pramsey
+2013-03-28 22:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2018, Distance calculation support for arc features (circstring,
-	  compoundcurve, curvepolygon)
+	* [r11219] NEWS, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_ptarray.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwcompound.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/measures.c,
+	  liblwgeom/measures.h, liblwgeom/ptarray.c,
+	  regress/tickets_expected: #2018, Distance calculation support for
+	  arc features (circstring, compoundcurve, curvepolygon)
 
-2013-03-28 13:32  robe
+2013-03-28 13:32  Regina Obe <lr at pcorp.us>
 
-	* change variable used to __MINGW64_VERSION_MAJOR (the mingw64_w32
-	  doesn't have __MINGW64_ (only the mingw64-w64 has that)
+	* [r11218] liblwgeom/stringbuffer.c: change variable used to
+	  __MINGW64_VERSION_MAJOR (the mingw64_w32 doesn't have __MINGW64_
+	  (only the mingw64-w64 has that)
 
-2013-03-28 09:30  robe
+2013-03-28 09:30  Regina Obe <lr at pcorp.us>
 
-	* #1668: if mingw64 and it returns <0 switch to _vscprintf native
-	  windows implementation. Thanks to swoodbridge for pointing out
-	  the define to use.
+	* [r11217] liblwgeom/stringbuffer.c: #1668: if mingw64 and it
+	  returns <0 switch to _vscprintf native windows implementation.
+	  Thanks to swoodbridge for pointing out the define to use.
 
-2013-03-27 13:30  dustymugs
+2013-03-27 13:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix bad dimensions when rescaling rasters with default
-	  geotransform
+	* [r11215] NEWS, raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_gdalwarp.sql,
+	  raster/test/regress/rt_gdalwarp_expected: Fix bad dimensions when
+	  rescaling rasters with default geotransform
 	  matrix. Ticket #2251
 
-2013-03-26 15:47  pramsey
+2013-03-26 15:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* flag #945 as complete
+	* [r11213] NEWS: flag #945 as complete
 
-2013-03-26 15:24  pramsey
+2013-03-26 15:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2201, ST_GeoHash wrong on boundaries
+	* [r11212] NEWS, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/lwalgorithm.c: #2201, ST_GeoHash wrong on boundaries
 
-2013-03-26 13:12  pramsey
+2013-03-26 13:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2186, gui progress bar update is slowing loads
+	* [r11209] loader/shp2pgsql-gui.c: #2186, gui progress bar update
+	  is slowing loads
 
-2013-03-26 04:14  dustymugs
+2013-03-26 04:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Enhanced ST_Union(raster, uniontype) to union all bands of all
-	  rasters.
+	* [r11207] NEWS, doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected: Enhanced ST_Union(raster,
+	  uniontype) to union all bands of all rasters.
 	  Ticket #2200.
 
-2013-03-25 18:45  colivier
+2013-03-25 18:45  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* revert wrong regress encoding stuff from r11205
+	* [r11206] regress/run_test, regress/run_test.pl: revert wrong
+	  regress encoding stuff from r11205
 
-2013-03-25 18:41  colivier
+2013-03-25 18:41  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Related to #1553. Add missing free in cu_surface cunit to be
-	  valgrind clean. As TGEOM was not used as storage serialization, i
-	  purely remove TGEOM for now, and kept only the
-	  TIN/POLYHEDRALSURFACE lwgeom expression (will see in future if we
-	  really need to have a 3D topological storage PostGIS side)
+	* [r11205] liblwgeom/Makefile.in, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_surface.h, liblwgeom/libtgeom.c,
+	  liblwgeom/libtgeom.h, liblwgeom/lwgeom.c, regress/run_test,
+	  regress/run_test.pl: Related to #1553. Add missing free in
+	  cu_surface cunit to be valgrind clean. As TGEOM was not used as
+	  storage serialization, i purely remove TGEOM for now, and kept
+	  only the TIN/POLYHEDRALSURFACE lwgeom expression (will see in
+	  future if we really need to have a 3D topological storage PostGIS
+	  side)
 
-2013-03-25 17:17  dustymugs
+2013-03-25 17:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed old raster core tests from configure
+	* [r11204] configure.ac: Removed old raster core tests from
+	  configure
 
-2013-03-25 17:11  dustymugs
+2013-03-25 17:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* Delete old core raster tests. Ticket #2115
+	* [r11203] raster/test/core: Delete old core raster tests. Ticket
+	  #2115
 
-2013-03-25 03:14  dustymugs
+2013-03-25 03:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_FromGDALRaster(). This is what happens on a long
-	  airplane
+	* [r11202] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_fromgdalraster.sql,
+	  raster/test/regress/rt_fromgdalraster_expected: Addition of
+	  ST_FromGDALRaster(). This is what happens on a long airplane
 	  flight! Ticket #2123.
 
-2013-03-25 03:08  dustymugs
+2013-03-25 03:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added item regarding -n of raster2pgsql. Ticket #2231
+	* [r11201] NEWS: Added item regarding -n of raster2pgsql. Ticket
+	  #2231
 
-2013-03-25 03:05  dustymugs
+2013-03-25 03:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ability to specify name of filename column in raster2pgsql.
-	  More
+	* [r11200] raster/loader/raster2pgsql.c,
+	  raster/loader/raster2pgsql.h, raster/test/regress/Makefile.in,
+	  raster/test/regress/loader/BasicFilename-post.pl,
+	  raster/test/regress/loader/BasicFilename-post.sh,
+	  raster/test/regress/loader/BasicFilename-pre.pl,
+	  raster/test/regress/loader/BasicFilename-pre.sh,
+	  raster/test/regress/loader/BasicFilename.opts,
+	  raster/test/regress/loader/BasicFilename.select.expected,
+	  raster/test/regress/loader/BasicFilename.select.sql: Added
+	  ability to specify name of filename column in raster2pgsql. More
 	  stuff being done stuck in a tube at 30k feet.
 
-2013-03-22 16:12  strk
+2013-03-22 16:12  Sandro Santilli <strk at keybit.net>
 
-	* Revert "Add '-x c' switch to CPP / CC when used as SQL
-	  preprocessor"
+	* [r11197] configure.ac: Revert "Add '-x c' switch to CPP / CC when
+	  used as SQL preprocessor"
 	  
 	  It seems it wasn't needed, see #2239
 
-2013-03-22 12:34  strk
+2013-03-22 12:34  Sandro Santilli <strk at keybit.net>
 
-	* Fix lineal TopoJSON output to keep multi components separated
+	* [r11196] topology/sql/export/TopoJSON.sql.in,
+	  topology/test/regress/topojson_expected: Fix lineal TopoJSON
+	  output to keep multi components separated
 	  
 	  REF: #2228
 
-2013-03-22 11:20  strk
+2013-03-22 11:20  Sandro Santilli <strk at keybit.net>
 
-	* Add '-x c' switch to CPP / CC when used as SQL preprocessor
+	* [r11195] configure.ac: Add '-x c' switch to CPP / CC when used as
+	  SQL preprocessor
 	  
 	  Hopefully it'll set us free to name our input files with any
 	  extension we decide.
 
-2013-03-21 21:28  dustymugs
+2013-03-21 21:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix ST_InvDistWeigh4MA() to handle a situation when neighborhood
-	  is
+	* [r11194] raster/rt_pg/rtpostgis.sql.in: Fix ST_InvDistWeigh4MA()
+	  to handle a situation when neighborhood is
 	  empty except the center pixel.
 
-2013-03-21 16:15  strk
+2013-03-21 16:15  Sandro Santilli <strk at keybit.net>
 
-	* Fix areal TopoJSON output to group and order polygon rings
-	  (#2228)
+	* [r11193] doc/extras_topology.xml,
+	  topology/sql/export/TopoJSON.sql.in,
+	  topology/test/regress/topojson.sql,
+	  topology/test/regress/topojson_expected: Fix areal TopoJSON
+	  output to group and order polygon rings (#2228)
 
-2013-03-21 09:01  strk
+2013-03-21 09:01  Sandro Santilli <strk at keybit.net>
 
-	* Review comments above Makefile rule to generate .sql from .sql.in
+	* [r11192] postgis/Makefile.in, raster/rt_pg/Makefile.in,
+	  topology/Makefile.in: Review comments above Makefile rule to
+	  generate .sql from .sql.in
 
-2013-03-20 17:38  strk
+2013-03-20 17:38  Sandro Santilli <strk at keybit.net>
 
-	* Have functions deprecated in 2.1.0 raise a WARNING message
-	  (#1994)
+	* [r11191] postgis/postgis.sql.in, regress/tickets.sql,
+	  regress/tickets_expected, topology/sql/export/TopoJSON.sql.in,
+	  topology/sql/export/gml.sql.in, topology/sql/populate.sql.in,
+	  topology/sql/sqlmm.sql.in: Have functions deprecated in 2.1.0
+	  raise a WARNING message (#1994)
 	  
 	  Drop use of some deprecated functions by other functions
 	  (as exposed by testsuite).
@@ -3977,9 +11599,11 @@
 	  can change from WARNING to NOTICE or we can tweak the message,
 	  in a central place.
 
-2013-03-20 16:47  strk
+2013-03-20 16:47  Sandro Santilli <strk at keybit.net>
 
-	* Deprecate non-CamelCase linear referencing function (#1994)
+	* [r11190] NEWS, doc/reference_lrs.xml, postgis/postgis.sql.in,
+	  regress/regress_lrs.sql: Deprecate non-CamelCase linear
+	  referencing function (#1994)
 	  
 	  - ST_Line_Interpolate_Point renamed to ST_LineInterpolatePoint
 	  - ST_Line_Substring renamed to ST_LineSubstring
@@ -3988,67 +11612,142 @@
 	  Tests updated to use the new signature, docs updated to show the
 	  new signature and report deprecations
 
-2013-03-20 16:10  strk
+2013-03-20 16:10  Sandro Santilli <strk at keybit.net>
 
-	* Add perturbating edges in TopoJSON test
+	* [r11189] topology/test/regress/topojson.sql,
+	  topology/test/regress/topojson_expected: Add perturbating edges
+	  in TopoJSON test
 
-2013-03-20 12:18  strk
+2013-03-20 12:18  Sandro Santilli <strk at keybit.net>
 
-	* Update TopoJSON example with correct output, add note about arc
-	  indices
+	* [r11188] doc/extras_topology.xml: Update TopoJSON example with
+	  correct output, add note about arc indices
 
-2013-03-20 11:44  strk
+2013-03-20 11:44  Sandro Santilli <strk at keybit.net>
 
-	* Speedup areal TopoJSON output routine to use edge walking
+	* [r11187] topology/sql/export/TopoJSON.sql.in,
+	  topology/test/regress/topojson.sql,
+	  topology/test/regress/topojson_expected: Speedup areal TopoJSON
+	  output routine to use edge walking
 	  
 	  Now it takes 6% of the time to do the same thing !
 	  
 	  Tweak tests to expect new arcs numbering and order.
 	  Also fixes missing comma separating polygon ring arcs.
 
-2013-03-20 10:27  strk
-
-	* Fix AsTopoJSON call in testcase
+2013-03-20 10:27  Sandro Santilli <strk at keybit.net>
 
-2013-03-20 10:26  strk
+	* [r11186] topology/test/regress/topojson.sql,
+	  topology/test/regress/topojson_expected: Fix AsTopoJSON call in
+	  testcase
 
-	* Properly encode TopoJSON.sql.in dependency into topology.sql
+2013-03-20 10:26  Sandro Santilli <strk at keybit.net>
 
-2013-03-20 07:48  strk
+	* [r11185] topology/Makefile.in: Properly encode TopoJSON.sql.in
+	  dependency into topology.sql
 
-	* Oops, forgot to add topojson test expectancy (#2240)
+2013-03-20 07:48  Sandro Santilli <strk at keybit.net>
 
-2013-03-19 18:29  strk
+	* [r11184] topology/test/regress/topojson_expected: Oops, forgot to
+	  add topojson test expectancy (#2240)
 
-	* Add AsTopoJSON(TopoGeometry) function (#2228)
+2013-03-19 18:29  Sandro Santilli <strk at keybit.net>
 
-2013-03-19 11:52  strk
+	* [r11183] NEWS, doc/extras_topology.xml,
+	  topology/sql/export/TopoJSON.sql.in, topology/test/Makefile.in,
+	  topology/test/regress/topojson.sql, topology/topology.sql.in: Add
+	  AsTopoJSON(TopoGeometry) function (#2228)
 
-	* Cleanup and integrate documentation of ST_GetFaceEdges
+2013-03-19 11:52  Sandro Santilli <strk at keybit.net>
 
-2013-03-19 09:59  strk
+	* [r11182] doc/extras_topology.xml: Cleanup and integrate
+	  documentation of ST_GetFaceEdges
 
-	* Move GML function under a new export/ subdir
+2013-03-19 09:59  Sandro Santilli <strk at keybit.net>
 
-2013-03-19 09:53  strk
+	* [r11181] topology/Makefile.in, topology/sql/export,
+	  topology/sql/export/gml.sql.in, topology/sql/gml.sql.in,
+	  topology/topology.sql.in: Move GML function under a new export/
+	  subdir
 
-	* Drop the .c suffix of sql files to preprocess under topology/ dir
+2013-03-19 09:53  Sandro Santilli <strk at keybit.net>
 
-2013-03-19 09:16  strk
-
-	* Drop the .c suffix of sql files to preprocess under raster/ dir
+	* [r11180] topology/Makefile.in, topology/sql/gml.sql.in,
+	  topology/sql/gml.sql.in.c,
+	  topology/sql/manage/CopyTopology.sql.in,
+	  topology/sql/manage/CopyTopology.sql.in.c,
+	  topology/sql/manage/ManageHelper.sql.in,
+	  topology/sql/manage/ManageHelper.sql.in.c,
+	  topology/sql/manage/TopologySummary.sql.in,
+	  topology/sql/manage/TopologySummary.sql.in.c,
+	  topology/sql/polygonize.sql.in, topology/sql/polygonize.sql.in.c,
+	  topology/sql/populate.sql.in, topology/sql/populate.sql.in.c,
+	  topology/sql/predicates.sql.in, topology/sql/predicates.sql.in.c,
+	  topology/sql/query/GetNodeEdges.sql.in,
+	  topology/sql/query/GetNodeEdges.sql.in.c,
+	  topology/sql/query/GetRingEdges.sql.in,
+	  topology/sql/query/GetRingEdges.sql.in.c,
+	  topology/sql/query/getedgebypoint.sql.in,
+	  topology/sql/query/getedgebypoint.sql.in.c,
+	  topology/sql/query/getfacebypoint.sql.in,
+	  topology/sql/query/getfacebypoint.sql.in.c,
+	  topology/sql/query/getnodebypoint.sql.in,
+	  topology/sql/query/getnodebypoint.sql.in.c,
+	  topology/sql/sqlmm.sql.in, topology/sql/sqlmm.sql.in.c,
+	  topology/sql/topoelement/topoelement_agg.sql.in,
+	  topology/sql/topoelement/topoelement_agg.sql.in.c,
+	  topology/sql/topogeometry/cleartopogeom.sql.in,
+	  topology/sql/topogeometry/cleartopogeom.sql.in.c,
+	  topology/sql/topogeometry/simplify.sql.in,
+	  topology/sql/topogeometry/simplify.sql.in.c,
+	  topology/sql/topogeometry/totopogeom.sql.in,
+	  topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/sql/topogeometry/type.sql.in,
+	  topology/sql/topogeometry/type.sql.in.c,
+	  topology/topology.sql.in, topology/topology.sql.in.c,
+	  topology/topology_drop_after.sql.in,
+	  topology/topology_drop_after.sql.in.c,
+	  topology/topology_drop_before.sql.in,
+	  topology/topology_drop_before.sql.in.c: Drop the .c suffix of sql
+	  files to preprocess under topology/ dir
+
+2013-03-19 09:16  Sandro Santilli <strk at keybit.net>
+
+	* [r11179] .gitignore, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rtpostgis.sql.in, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/rt_pg/rtpostgis_legacy.sql.in,
+	  raster/rt_pg/rtpostgis_legacy.sql.in.c,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c: Drop the .c
+	  suffix of sql files to preprocess under raster/ dir
 
-2013-03-18 19:50  robe
+2013-03-18 19:50  Regina Obe <lr at pcorp.us>
 
-	* #2238: clarify neighborhood distance terminology
+	* [r11177] doc/reference_raster.xml: #2238: clarify neighborhood
+	  distance terminology
 
-2013-03-18 18:14  strk
+2013-03-18 18:14  Sandro Santilli <strk at keybit.net>
 
-	* Drop unused variables
+	* [r11176] topology/sql/gml.sql.in.c: Drop unused variables
 
-2013-03-18 17:20  strk
+2013-03-18 17:20  Sandro Santilli <strk at keybit.net>
 
-	* Drop the .c suffix of sql files to preprocess
+	* [r11175] .gitignore, postgis/Makefile.in,
+	  postgis/geography.sql.in, postgis/geography.sql.in.c,
+	  postgis/legacy.sql.in, postgis/legacy.sql.in.c,
+	  postgis/legacy_minimal.sql.in, postgis/legacy_minimal.sql.in.c,
+	  postgis/long_xact.sql.in, postgis/long_xact.sql.in.c,
+	  postgis/postgis.sql.in, postgis/postgis.sql.in.c,
+	  postgis/uninstall_geography.sql.in,
+	  postgis/uninstall_geography.sql.in.c,
+	  postgis/uninstall_legacy.sql.in,
+	  postgis/uninstall_legacy.sql.in.c,
+	  postgis/uninstall_long_xact.sql.in,
+	  postgis/uninstall_long_xact.sql.in.c,
+	  postgis/uninstall_sqlmm.sql.in, postgis/uninstall_sqlmm.sql.in.c:
+	  Drop the .c suffix of sql files to preprocess
 	  
 	  The suffix was added to make compilers happy about preprocessing,
 	  but invoking cpp directly should be just fine (SQLPP macro)
@@ -4057,351 +11756,443 @@
 	  happy
 	  the same thing will be done for raster/ and topology/
 
-2013-03-18 00:49  dustymugs
+2013-03-18 00:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed unescaped % in RAISE message. Ticket #2237
+	* [r11174] raster/rt_pg/rtpostgis.sql.in.c: Fixed unescaped % in
+	  RAISE message. Ticket #2237
 
-2013-03-16 15:30  robe
+2013-03-16 15:30  Regina Obe <lr at pcorp.us>
 
-	* fix typo in ST_AsGDALRaster example
+	* [r11170] doc/reference_raster.xml: fix typo in ST_AsGDALRaster
+	  example
 
-2013-03-08 13:58  strk
+2013-03-08 13:58  Sandro Santilli <strk at keybit.net>
 
-	* Make test for ST_PointOnSurface accept any contained point as
+	* [r11162] regress/regress_ogc.sql, regress/regress_ogc_expected:
+	  Make test for ST_PointOnSurface accept any contained point as
 	  valid
 	  
 	  This is to support a change in GEOS 3.3.9 / 3.4.0 that started
 	  giving different (but still valid) results.
 	  See http://trac.osgeo.org/geos/ticket/623
 
-2013-03-08 09:19  strk
+2013-03-08 09:19  Sandro Santilli <strk at keybit.net>
 
-	* Reword ST_Simplify(TopoGeometry) description (#1687)
+	* [r11160] doc/extras_topology.xml: Reword
+	  ST_Simplify(TopoGeometry) description (#1687)
 
-2013-03-07 17:08  strk
+2013-03-07 17:08  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_Simplify(TopoGeometry) -- closes #1687
+	* [r11159] NEWS, doc/extras_topology.xml,
+	  doc/reference_processing.xml: Document ST_Simplify(TopoGeometry)
+	  -- closes #1687
 
-2013-03-07 16:14  strk
+2013-03-07 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_Simplify override for TopoGeometry objects (#1687)
+	* [r11158] topology/Makefile.in,
+	  topology/sql/topogeometry/simplify.sql.in.c,
+	  topology/test/Makefile.in, topology/test/regress/st_simplify.sql,
+	  topology/test/regress/st_simplify_expected,
+	  topology/topology.sql.in.c: Add ST_Simplify override for
+	  TopoGeometry objects (#1687)
 
-2013-03-07 07:31  strk
+2013-03-07 07:31  Sandro Santilli <strk at keybit.net>
 
-	* Split test for #1968 in two parts, to avoid false negative
+	* [r11156] topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected: Split test for #1968
+	  in two parts, to avoid false negative
 
-2013-03-06 18:37  strk
+2013-03-06 18:37  Sandro Santilli <strk at keybit.net>
 
-	* Improve the test for #1968 to also check duplicated components
+	* [r11155] topology/test/regress/totopogeom.sql: Improve the test
+	  for #1968 to also check duplicated components
 
-2013-03-06 18:11  strk
+2013-03-06 18:11  Sandro Santilli <strk at keybit.net>
 
-	* Fix missing edge from toTopoGeom return (#1968)
+	* [r11152] topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected: Fix missing edge from
+	  toTopoGeom return (#1968)
 
-2013-03-06 15:33  dustymugs
+2013-03-06 15:33  Bborie Park <bkpark at ucdavis.edu>
 
-	* Bad switch for debug output
+	* [r11151] raster/rt_core/rt_api.c: Bad switch for debug output
 
-2013-03-06 15:20  strk
+2013-03-06 15:20  Sandro Santilli <strk at keybit.net>
 
-	* Allow adding points at precision distance with TopoGeo_addPoint
+	* [r11149] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addpoint.sql,
+	  topology/test/regress/topogeo_addpoint_expected: Allow adding
+	  points at precision distance with TopoGeo_addPoint
 
-2013-03-05 16:57  dustymugs
+2013-03-05 16:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor code cleanup in raster2pgsql and additional debug output
+	* [r11145] raster/loader/raster2pgsql.c, raster/rt_core/rt_api.c:
+	  Minor code cleanup in raster2pgsql and additional debug output
 	  for
 	  rt_api
 
-2013-03-05 09:10  strk
+2013-03-05 09:10  Sandro Santilli <strk at keybit.net>
 
-	* Make libjson-c optional adding --without-json configure switch
-	  (#2202)
+	* [r11144] NEWS, README.postgis, configure.ac,
+	  liblwgeom/cunit/cu_tester.c: Make libjson-c optional adding
+	  --without-json configure switch (#2202)
 
-2013-03-04 17:57  strk
+2013-03-04 17:57  Sandro Santilli <strk at keybit.net>
 
-	* Fix equality operator between EMPTY and point on origin (#2110)
+	* [r11142] postgis/lwgeom_btree.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix equality operator between EMPTY and
+	  point on origin (#2110)
 
-2013-03-04 17:02  strk
+2013-03-04 17:02  Sandro Santilli <strk at keybit.net>
 
-	* Drop PDF version of EJB3 spatial tutorial
+	* [r11140] java/ejb3/ejb3spatial.pdf: Drop PDF version of EJB3
+	  spatial tutorial
 	  
 	  There's an ODT version of the manual, pdf can be generated
 
-2013-02-28 17:56  strk
+2013-02-28 17:56  Sandro Santilli <strk at keybit.net>
 
-	* Add regression test for #2216
+	* [r11121] regress/in_geojson.sql, regress/in_geojson_expected: Add
+	  regression test for #2216
 
-2013-02-28 17:42  strk
+2013-02-28 17:42  Sandro Santilli <strk at keybit.net>
 
-	* Fix parsing GeoJSON of multipolygon with holes (#2216)
+	* [r11120] liblwgeom/cunit/cu_in_geojson.c,
+	  liblwgeom/lwin_geojson.c: Fix parsing GeoJSON of multipolygon
+	  with holes (#2216)
 
-2013-02-28 17:04  strk
+2013-02-28 17:04  Sandro Santilli <strk at keybit.net>
 
-	* Add lwgeom_from_geojson to liblwgeom, add cunit test, fix memory
-	  leak
+	* [r11119] NEWS, configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_in_geojson.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwin_geojson.c, postgis/lwgeom_in_geojson.c: Add
+	  lwgeom_from_geojson to liblwgeom, add cunit test, fix memory leak
 
-2013-02-26 23:23  dustymugs
+2013-02-26 23:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_MinConvexHull(raster). Ticket #2210
+	* [r11118] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/cunit/cu_raster_geometry.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_convexhull.sql,
+	  raster/test/regress/rt_convexhull_expected: Added
+	  ST_MinConvexHull(raster). Ticket #2210
 
-2013-02-26 17:42  dustymugs
+2013-02-26 17:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed name of exclusion constraint to by dynamic due to
-	  conflict of
+	* [r11117] NEWS, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_columns_expected: Changed name
+	  of exclusion constraint to by dynamic due to conflict of
 	  implicit index names. Ticket #2215
 
-2013-02-26 17:42  dustymugs
+2013-02-26 17:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition debug output for rt_raster_from_gdal_dataset()
+	* [r11116] raster/rt_core/rt_api.c: Addition debug output for
+	  rt_raster_from_gdal_dataset()
 
-2013-02-23 05:08  robe
+2013-02-23 05:08  Regina Obe <lr at pcorp.us>
 
-	* mordernize faq on creating spatial table.
+	* [r11113] doc/faq.xml: mordernize faq on creating spatial table.
 
-2013-02-23 02:04  robe
+2013-02-23 02:04  Regina Obe <lr at pcorp.us>
 
-	* #2209: reword to encoding raster issue to not specify explicit
-	  byte count
+	* [r11110] doc/faq_raster.xml: #2209: reword to encoding raster
+	  issue to not specify explicit byte count
 
-2013-02-22 18:26  pramsey
+2013-02-22 18:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #1292, go back to nudging geodetic coordinates (realityexists)
+	* [r11109] postgis/geography_inout.c, regress/tickets.sql,
+	  regress/tickets_expected: #1292, go back to nudging geodetic
+	  coordinates (realityexists)
 
-2013-02-21 15:53  robe
+2013-02-21 15:53  Regina Obe <lr at pcorp.us>
 
-	* remove duped qandset tags
+	* [r11108] doc/faq_raster.xml: remove duped qandset tags
 
-2013-02-21 14:09  robe
+2013-02-21 14:09  Regina Obe <lr at pcorp.us>
 
-	* missing para tag
+	* [r11107] doc/faq_raster.xml: missing para tag
 
-2013-02-21 13:31  robe
+2013-02-21 13:31  Regina Obe <lr at pcorp.us>
 
-	* oops forgot pretty anchor
+	* [r11106] doc/faq_raster.xml: oops forgot pretty anchor
 
-2013-02-21 13:29  robe
+2013-02-21 13:29  Regina Obe <lr at pcorp.us>
 
-	* document issue in ticket #2209 in FAQ. Probably only affects me,
-	  but who knows.
+	* [r11105] doc/faq_raster.xml: document issue in ticket #2209 in
+	  FAQ. Probably only affects me, but who knows.
 
-2013-02-19 23:03  robe
+2013-02-19 23:03  Regina Obe <lr at pcorp.us>
 
-	* #2208 : document that ST_PointN no longer works with first
-	  linestring of multilinestring
+	* [r11103] doc/reference_accessor.xml: #2208 : document that
+	  ST_PointN no longer works with first linestring of
+	  multilinestring
 
-2013-02-18 04:17  dustymugs
+2013-02-18 04:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Wrong debug output function
+	* [r11102] raster/rt_core/rt_api.c: Wrong debug output function
 
-2013-02-17 19:27  robe
+2013-02-17 19:27  Regina Obe <lr at pcorp.us>
 
-	* had type and name swapped
+	* [r11100] doc/reference_raster.xml: had type and name swapped
 
-2013-02-17 18:37  robe
+2013-02-17 18:37  Regina Obe <lr at pcorp.us>
 
-	* ST_MapAlgebra: create variablelist and move much of commentary to
-	  that so page is more easily digestable
+	* [r11099] doc/reference_raster.xml: ST_MapAlgebra: create
+	  variablelist and move much of commentary to that so page is more
+	  easily digestable
 
-2013-02-17 16:24  dustymugs
+2013-02-17 16:24  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed handling of out-db rasters with no geotransform matrix
+	* [r11098] raster/rt_core/rt_api.c: Fixed handling of out-db
+	  rasters with no geotransform matrix
 
-2013-02-16 21:47  dustymugs
+2013-02-16 21:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional debug output for rt_raster_gdal_warp()
+	* [r11097] raster/rt_core/rt_api.c: Additional debug output for
+	  rt_raster_gdal_warp()
 
-2013-02-16 21:47  dustymugs
+2013-02-16 21:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Update raster TODO as it was sorely out of date
+	* [r11096] raster/TODO: Update raster TODO as it was sorely out of
+	  date
 
-2013-02-16 01:00  dustymugs
+2013-02-16 01:00  Bborie Park <bkpark at ucdavis.edu>
 
-	* Faster ST_Union() done using memcpy when possible
+	* [r11095] raster/rt_pg/rt_pg.c, raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected: Faster ST_Union() done
+	  using memcpy when possible
 
-2013-02-15 23:53  dustymugs
+2013-02-15 23:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed how rasters with unknown SRID and default geotransform
-	  are
+	* [r11094] NEWS, raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_gdalwarp.sql: Changed how rasters with
+	  unknown SRID and default geotransform are
 	  handled when calling GDAL Warp API. Ticket #2203
 
-2013-02-09 06:08  robe
+2013-02-09 06:08  Regina Obe <lr at pcorp.us>
 
-	* change check geos to be 3.4 (3.4 is the new standard of
-	  excellence)
+	* [r11092] doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: change check geos to be 3.4
+	  (3.4 is the new standard of excellence)
 
-2013-02-09 05:24  robe
+2013-02-09 05:24  Regina Obe <lr at pcorp.us>
 
-	* get rid of use of xml tags in arg - messing up formatting of
-	  cheat sheet gen
+	* [r11091] doc/reference_misc.xml: get rid of use of xml tags in
+	  arg - messing up formatting of cheat sheet gen
 
-2013-02-09 05:17  robe
+2013-02-09 05:17  Regina Obe <lr at pcorp.us>
 
-	* missed one
+	* [r11090] doc/xsl/tiger_geocoder_cheatsheet.html.xsl: missed one
 
-2013-02-09 05:16  robe
+2013-02-09 05:16  Regina Obe <lr at pcorp.us>
 
-	* fix version number -- should change to read from config at some
-	  point, but too lazy to figure that out right now
+	* [r11089] doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: fix version number --
+	  should change to read from config at some point, but too lazy to
+	  figure that out right now
 
-2013-02-09 04:29  robe
+2013-02-09 04:29  Regina Obe <lr at pcorp.us>
 
-	* add styles to avoid page breaks in awkward places
+	* [r11088] doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: add styles to avoid page
+	  breaks in awkward places
 
-2013-02-09 03:45  robe
+2013-02-09 03:45  Regina Obe <lr at pcorp.us>
 
-	* update to summary of what's new in PostGIS 2.1 - this will be a
-	  really slick release :). Fix doc links in cheatsheet generator
+	* [r11086] doc/xsl/postgis_aggs_mm.xml.xsl,
+	  doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/tiger_geocoder_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: update to summary of what's
+	  new in PostGIS 2.1 - this will be a really slick release :). Fix
+	  doc links in cheatsheet generator
 
-2013-02-07 20:49  pramsey
+2013-02-07 20:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Expand size of generic cache to allow future
+	* [r11085] libpgcommon/lwgeom_cache.h: Expand size of generic cache
+	  to allow future
 	  pointcloud cache to sneak into it if necessary
 
-2013-02-07 17:16  dustymugs
+2013-02-07 17:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* Corrected use of pfree instead of PG_FREE_IF_COPY
+	* [r11084] raster/rt_pg/rt_pg.c: Corrected use of pfree instead of
+	  PG_FREE_IF_COPY
 
-2013-02-07 17:16  dustymugs
+2013-02-07 17:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional assert() calls. Will need to add usage of NDEBUG flag
-	  to turn
+	* [r11083] raster/rt_core/rt_api.c: Additional assert() calls. Will
+	  need to add usage of NDEBUG flag to turn
 	  off assert() for non-debug builds
 
-2013-02-07 06:31  robe
+2013-02-07 06:31  Regina Obe <lr at pcorp.us>
 
-	* uhh how could we forget to mention the cool
-	  ST_Union(rast,unionarg) is new in PostGIS 2.1. Got rid of some
-	  other notes as its only that annoying ST_Union(rast,uniontype)
-	  that's a sore in my back.
+	* [r11082] doc/reference_raster.xml: uhh how could we forget to
+	  mention the cool ST_Union(rast,unionarg) is new in PostGIS 2.1.
+	  Got rid of some other notes as its only that annoying
+	  ST_Union(rast,uniontype) that's a sore in my back.
 
-2013-02-06 21:38  robe
+2013-02-06 21:38  Regina Obe <lr at pcorp.us>
 
-	* #2199: clarify ST_Union(rast) multiband union feature is just for
-	  first variant. A bit too verbose, but at least I won't be
-	  confused anymore.
+	* [r11081] doc/reference_raster.xml: #2199: clarify ST_Union(rast)
+	  multiband union feature is just for first variant. A bit too
+	  verbose, but at least I won't be confused anymore.
 
-2013-02-04 19:07  dustymugs
+2013-02-04 19:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed dimension error of bands when using ST_Tile on out-db
+	* [r11079] NEWS, raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c:
+	  Fixed dimension error of bands when using ST_Tile on out-db
 	  rasters.
 	  Ticket #2198
 
-2013-02-04 19:07  dustymugs
+2013-02-04 19:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional calls to assert() and better checking of out-db raster
-	  bands
+	* [r11078] raster/rt_core/rt_api.c: Additional calls to assert()
+	  and better checking of out-db raster bands
 
-2013-02-04 19:07  dustymugs
+2013-02-04 19:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed some unnecessary assert() calls
+	* [r11077] raster/rt_pg/rt_pg.c: Removed some unnecessary assert()
+	  calls
 
-2013-02-02 23:48  robe
+2013-02-02 23:48  Regina Obe <lr at pcorp.us>
 
-	* #2190: further cleanup of topology existence checking so
-	  regresses for 9.3. Should pass with flying colors now.
+	* [r11076] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_modedgesplit_expected,
+	  topology/test/regress/st_newedgessplit_expected: #2190: further
+	  cleanup of topology existence checking so regresses for 9.3.
+	  Should pass with flying colors now.
 
-2013-02-02 22:12  robe
+2013-02-02 22:12  Regina Obe <lr at pcorp.us>
 
-	* fix for 9.3 -- pg 9.3 seems to throw errors sooner so we need to
-	  check a topology exists before trying to query it.
+	* [r11075] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_addisonode_expected: fix for 9.3 -- pg
+	  9.3 seems to throw errors sooner so we need to check a topology
+	  exists before trying to query it.
 
-2013-02-01 20:13  robe
+2013-02-01 20:13  Regina Obe <lr at pcorp.us>
 
-	* fix gdal_translate examples (port now required) and have typos in
-	  syntax
+	* [r11074] doc/faq_raster.xml: fix gdal_translate examples (port
+	  now required) and have typos in syntax
 
-2013-01-29 15:25  dustymugs
+2013-01-29 15:25  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added check that raster metadata check and warn if not
+	* [r11060] raster/rt_core/rt_api.c: Added check that raster
+	  metadata check and warn if not
 
-2013-01-29 14:48  dustymugs
+2013-01-29 14:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Remove debug output from rt_raster_gdal_warp()
+	* [r11059] raster/rt_core/rt_api.c: Remove debug output from
+	  rt_raster_gdal_warp()
 
-2013-01-28 23:01  dustymugs
+2013-01-28 23:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix function parameter value overflow that caused problems when
-	  copying
+	* [r11057] NEWS, raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/regress/rt_gdalwarp.sql,
+	  raster/test/regress/rt_gdalwarp_expected: Fix function parameter
+	  value overflow that caused problems when copying
 	  data from a GDAL dataset. Problem first appeared in ST_Resize().
 	  Ticket #2188
 
-2013-01-28 23:01  dustymugs
+2013-01-28 23:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code cleanup of rt_raster_gdal_warp()
+	* [r11056] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Code
+	  cleanup of rt_raster_gdal_warp()
 
-2013-01-26 18:17  robe
+2013-01-26 18:17  Regina Obe <lr at pcorp.us>
 
-	* ST_Perimeter not being flagged in matrix as geography function
-	  because of double function synopsis
+	* [r11046] doc/reference_measure.xml: ST_Perimeter not being
+	  flagged in matrix as geography function because of double
+	  function synopsis
 
-2013-01-26 17:31  robe
+2013-01-26 17:31  Regina Obe <lr at pcorp.us>
 
-	* link happiness -- add ref to postgresql math functions so people
-	  aren't puzzled by degrees, pi, radians where they came from
+	* [r11044] doc/reference_measure.xml: link happiness -- add ref to
+	  postgresql math functions so people aren't puzzled by degrees,
+	  pi, radians where they came from
 
-2013-01-26 17:27  robe
+2013-01-26 17:27  Regina Obe <lr at pcorp.us>
 
-	* clarify distance is in meters in the short-descrip that shows in
-	  db environment
+	* [r11043] doc/reference_measure.xml: clarify distance is in meters
+	  in the short-descrip that shows in db environment
 
-2013-01-26 17:22  robe
+2013-01-26 17:22  Regina Obe <lr at pcorp.us>
 
-	* ST_Project -- somebody didn't follow protocol and didn't tag
-	  PostGIS version when they added this
+	* [r11040] doc/reference_measure.xml: ST_Project -- somebody didn't
+	  follow protocol and didn't tag PostGIS version when they added
+	  this
 
-2013-01-26 02:42  robe
+2013-01-26 02:42  Regina Obe <lr at pcorp.us>
 
-	* spell degrees correctly -- its degrees not degreees
+	* [r11029] doc/reference_measure.xml: spell degrees correctly --
+	  its degrees not degreees
 
-2013-01-26 02:32  robe
+2013-01-26 02:32  Regina Obe <lr at pcorp.us>
 
-	* #657: correct the documentation on ST_Project to reflect it
-	  expects bearing measured in radians and how to handle for both
-	  degrees and radians
+	* [r11026] doc/reference_measure.xml: #657: correct the
+	  documentation on ST_Project to reflect it expects bearing
+	  measured in radians and how to handle for both degrees and
+	  radians
 
-2013-01-25 11:03  strk
+2013-01-25 11:03  Sandro Santilli <strk at keybit.net>
 
-	* Support dumps where the geometry column has a mixEdCaseD name
+	* [r11025] utils/postgis_restore.pl.in: Support dumps where the
+	  geometry column has a mixEdCaseD name
 
-2013-01-24 21:15  strk
+2013-01-24 21:15  Sandro Santilli <strk at keybit.net>
 
-	* Properly copy topologies with Z value (#2184)
+	* [r11022] topology/sql/manage/CopyTopology.sql.in.c,
+	  topology/test/regress/copytopology.sql,
+	  topology/test/regress/copytopology_expected: Properly copy
+	  topologies with Z value (#2184)
 
-2013-01-20 16:56  dustymugs
+2013-01-20 16:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix issue with outdb rasters with no SRID and ST_Resize (GDAL
-	  warp
+	* [r11008] NEWS, raster/rt_pg/rt_pg.c: Fix issue with outdb rasters
+	  with no SRID and ST_Resize (GDAL warp
 	  calls). Ticket #2182
 
-2013-01-18 18:09  strk
+2013-01-18 18:09  Sandro Santilli <strk at keybit.net>
 
-	* Have ST_Summary advertise presence of known srid with an [S] flag
+	* [r11004] NEWS, liblwgeom/lwgeom_debug.c,
+	  regress/summary_expected, regress/tickets_expected: Have
+	  ST_Summary advertise presence of known srid with an [S] flag
 	  
 	  Closes #2178
 
-2013-01-18 14:10  robe
+2013-01-18 14:10  Regina Obe <lr at pcorp.us>
 
-	* obsolete links
+	* [r11001] doc/introduction.xml, doc/postgis.xml: obsolete links
 
-2013-01-18 08:55  robe
+2013-01-18 08:55  Regina Obe <lr at pcorp.us>
 
-	* update news with new tiger geocoder features
+	* [r10998] NEWS: update news with new tiger geocoder features
 
-2013-01-17 08:05  strk
+2013-01-17 08:05  Sandro Santilli <strk at keybit.net>
 
-	* Prefer boolean predicates over overlay ops in ST_ChangeEdgeGeom
+	* [r10987] topology/sql/sqlmm.sql.in.c: Prefer boolean predicates
+	  over overlay ops in ST_ChangeEdgeGeom
 	  
 	  Further reduces robustness issues and squeezes another bit of
 	  performance.
 
-2013-01-16 21:42  strk
+2013-01-16 21:42  Sandro Santilli <strk at keybit.net>
 
-	* Drop useless input endpoints relate check in ST_ChangeEdgeGeom
+	* [r10985] topology/sql/sqlmm.sql.in.c: Drop useless input
+	  endpoints relate check in ST_ChangeEdgeGeom
 
-2013-01-16 15:14  strk
+2013-01-16 15:14  Sandro Santilli <strk at keybit.net>
 
-	* Make ST_ChangeEdgeGeom motion collision detection code more
-	  robust
+	* [r10984] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Make
+	  ST_ChangeEdgeGeom motion collision detection code more robust
 	  
 	  The new model avoids a call to GEOSSymDifference but rather
 	  checks
@@ -4410,61 +12201,75 @@
 	  be safe. Haven't profiled but the new code should also be faster
 	  than the previous. Fixes ticket #2176, includes testcase for it.
 
-2013-01-16 14:24  robe
+2013-01-16 14:24  Regina Obe <lr at pcorp.us>
 
-	* change to about link to show new website link
+	* [r10982] loader/shp2pgsql-gui.c: change to about link to show new
+	  website link
 
-2013-01-16 09:42  robe
+2013-01-16 09:42  Regina Obe <lr at pcorp.us>
 
-	* fix formatting and word changes to tiger extension install
-	  section
+	* [r10981] doc/installation.xml: fix formatting and word changes to
+	  tiger extension install section
 
-2013-01-16 09:16  robe
+2013-01-16 09:16  Regina Obe <lr at pcorp.us>
 
-	* update to reflect new protocol when we are on new site. Also to
-	  update download links
+	* [r10979] HOWTO_RELEASE: update to reflect new protocol when we
+	  are on new site. Also to update download links
 
-2013-01-16 07:48  robe
+2013-01-16 07:48  Regina Obe <lr at pcorp.us>
 
-	* move note into para
+	* [r10978] doc/extras_tigergeocoder.xml: move note into para
 
-2013-01-16 07:38  robe
+2013-01-16 07:38  Regina Obe <lr at pcorp.us>
 
-	* get rid of program listing stuff try to fix regress.
+	* [r10977] doc/extras_tigergeocoder.xml: get rid of program listing
+	  stuff try to fix regress.
 
-2013-01-16 07:24  robe
+2013-01-16 07:24  Regina Obe <lr at pcorp.us>
 
-	* get rid of unbalanced para tag
+	* [r10976] doc/installation.xml: get rid of unbalanced para tag
 
-2013-01-16 07:13  robe
+2013-01-16 07:13  Regina Obe <lr at pcorp.us>
 
-	* add extension model instructions for tiger geocoder install. add
-	  xml entity for download link
+	* [r10975] doc/extras_tigergeocoder.xml, doc/installation.xml,
+	  doc/postgis.xml: add extension model instructions for tiger
+	  geocoder install. add xml entity for download link
 
-2013-01-15 11:54  strk
+2013-01-15 11:54  Sandro Santilli <strk at keybit.net>
 
-	* Base vertex snap tolerance in lwline_split_by_point on line
-	  length
+	* [r10973] liblwgeom/lwgeom_geos_split.c, regress/split.sql,
+	  regress/split_expected: Base vertex snap tolerance in
+	  lwline_split_by_point on line length
 	  
 	  Fixes robustness issue in splitting line with own vertex (#2173)
 	  Also fixes one case of topology building (#2172)
 
-2013-01-02 12:24  robe
+2013-01-02 12:24  Regina Obe <lr at pcorp.us>
 
-	* give anchor friendly ids for chapter and sections (so if we
-	  shuffle in future anchor doesn't change)
+	* [r10952] doc/performance_tips.xml: give anchor friendly ids for
+	  chapter and sections (so if we shuffle in future anchor doesn't
+	  change)
 
-2012-12-31 15:18  strk
+2012-12-31 15:18  Sandro Santilli <strk at keybit.net>
 
-	* Use grep found by ./configure (and have ./configure look for it)
+	* [r10942] configure.ac, extensions/postgis_topology/Makefile.in:
+	  Use grep found by ./configure (and have ./configure look for it)
 
-2012-12-27 23:38  strk
+2012-12-27 23:38  Sandro Santilli <strk at keybit.net>
 
-	* Use grep found by ./configure
+	* [r10939] extensions/postgis/Makefile.in: Use grep found by
+	  ./configure
 
-2012-12-27 12:56  strk
+2012-12-27 12:56  Sandro Santilli <strk at keybit.net>
 
-	* Drop "lwgeom_init_allocators" need, add "lwgeom_set_handlers"
+	* [r10937] NEWS, doc/html/image_src/generator.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwutil.c, libpgcommon/lwgeom_pg.c,
+	  libpgcommon/lwgeom_pg.h, loader/shpcommon.c,
+	  postgis/postgis_module.c, raster/loader/raster2pgsql.c,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c,
+	  raster/test/core/testwkb.c, raster/test/cunit/cu_tester.c: Drop
+	  "lwgeom_init_allocators" need, add "lwgeom_set_handlers"
 	  
 	  This change allows using liblwgeom from clients which cannot
 	  define
@@ -4478,254 +12283,360 @@
 	  
 	  Thanks Giuseppe Sucameli for the base work on this
 
-2012-12-26 13:44  robe
+2012-12-26 13:44  Regina Obe <lr at pcorp.us>
 
-	* Add add_search_path helper function and call it in install of
+	* [r10934] extensions/make_unpackaged.sql,
+	  extensions/postgis_extension_helper.sql,
+	  extensions/postgis_extension_helper_uninstall.sql,
+	  extensions/postgis_tiger_geocoder/Makefile.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/add_search_path.sql.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in:
+	  Add add_search_path helper function and call it in install of
 	  postgis_tiger_geocoder to add tiger to search path. Create
 	  unpacked script for geocoder so can do CREATE EXTENSION
 	  postgis_tiger_geocoder FROM unpackaged;
 
-2012-12-21 22:55  dustymugs
+2012-12-21 22:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* More code and memory cleanup
+	* [r10914] raster/rt_core/rt_api.c: More code and memory cleanup
 
-2012-12-21 22:18  dustymugs
+2012-12-21 22:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional cleanup and making sure to free memory when hitting
-	  errors
+	* [r10913] raster/rt_core/rt_api.c: Additional cleanup and making
+	  sure to free memory when hitting errors
 
-2012-12-21 22:18  dustymugs
+2012-12-21 22:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code cleanup of rt_raster_serialize(). Basically make sure to
-	  free
+	* [r10912] raster/rt_core/rt_api.c: Code cleanup of
+	  rt_raster_serialize(). Basically make sure to free
 	  allocated memory if function has error
 
-2012-12-21 10:53  strk
+2012-12-21 10:53  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory leak in lwcollection_homogenize
+	* [r10896] liblwgeom/lwhomogenize.c: Fix memory leak in
+	  lwcollection_homogenize
 
-2012-12-21 10:01  strk
+2012-12-21 10:01  Sandro Santilli <strk at keybit.net>
 
-	* Update ignores
+	* [r10895] .gitignore: Update ignores
 
-2012-12-21 10:01  strk
+2012-12-21 10:01  Sandro Santilli <strk at keybit.net>
 
-	* Fix compiler warnings
+	* [r10894] loader/shp2pgsql-gui.c: Fix compiler warnings
 
-2012-12-20 20:47  dustymugs
+2012-12-20 20:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* PostgreSQL 9.3 changed where heap_form_tuple() is declared. Fixed
+	* [r10885] postgis/lwgeom_dumppoints.c, raster/rt_pg/rt_pg.c:
+	  PostgreSQL 9.3 changed where heap_form_tuple() is declared. Fixed
 	  in
 	  raster and postgis. Ticket #2013.
 
-2012-12-20 18:40  pramsey
+2012-12-20 18:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Quiet compile warnings.
+	* [r10882] postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_in_kml.c: Quiet compile
+	  warnings.
 
-2012-12-20 18:26  strk
+2012-12-20 18:26  Sandro Santilli <strk at keybit.net>
 
-	* Fix leak in cu_stringbuffer test
+	* [r10880] liblwgeom/cunit/cu_stringbuffer.c: Fix leak in
+	  cu_stringbuffer test
 
-2012-12-20 18:07  strk
+2012-12-20 18:07  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory leak in lwmline_locate_along
+	* [r10878] liblwgeom/lwlinearreferencing.c: Fix memory leak in
+	  lwmline_locate_along
 
-2012-12-20 17:51  strk
+2012-12-20 17:51  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory leak in geometry cleaner
+	* [r10877] liblwgeom/lwgeom_geos_clean.c: Fix memory leak in
+	  geometry cleaner
 
-2012-12-20 17:20  strk
+2012-12-20 17:20  Sandro Santilli <strk at keybit.net>
 
-	* Drop unused "libtgeom.h" include
+	* [r10872] postgis/lwgeom_functions_basic.c: Drop unused
+	  "libtgeom.h" include
 	  
 	  This is to make libtgeom memory errors less scary :)
 	  See #1553
 
-2012-12-20 17:19  strk
+2012-12-20 17:19  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory leaks in lwsegmentize and cu_ptarray
+	* [r10871] liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c:
+	  Fix memory leaks in lwsegmentize and cu_ptarray
 
-2012-12-20 16:02  robe
+2012-12-20 16:02  Regina Obe <lr at pcorp.us>
 
-	* add topology so extension now installs cleanly. still need to add
-	  set path and cleanup the make clean
+	* [r10870] extensions/postgis_tiger_geocoder/Makefile.in: add
+	  topology so extension now installs cleanly. still need to add set
+	  path and cleanup the make clean
 
-2012-12-19 23:26  dustymugs
+2012-12-19 23:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Stomp out memory leaks in CUnit tests
+	* [r10868] raster/test/cunit/cu_raster_basics.c,
+	  raster/test/cunit/cu_raster_geometry.c,
+	  raster/test/cunit/cu_raster_wkb.c, raster/test/cunit/cu_tester.c:
+	  Stomp out memory leaks in CUnit tests
 
-2012-12-19 23:26  dustymugs
+2012-12-19 23:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Make sure to free OGR geometry when the geometry is empty
+	* [r10867] raster/rt_core/rt_api.c: Make sure to free OGR geometry
+	  when the geometry is empty
 
-2012-12-19 23:26  dustymugs
+2012-12-19 23:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed memory handling of offline band path. Now explicitly
+	* [r10866] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h:
+	  Changed memory handling of offline band path. Now explicitly
 	  owned
 	  internally
 
-2012-12-19 20:52  strk
+2012-12-19 20:52  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory leak in circ_tree_new
+	* [r10865] liblwgeom/lwgeodetic_tree.c: Fix memory leak in
+	  circ_tree_new
 
-2012-12-19 20:52  strk
+2012-12-19 20:52  Sandro Santilli <strk at keybit.net>
 
-	* Fix leak in cu_geodetic test
+	* [r10864] liblwgeom/cunit/cu_geodetic.c: Fix leak in cu_geodetic
+	  test
 
-2012-12-19 20:08  strk
+2012-12-19 20:08  Sandro Santilli <strk at keybit.net>
 
-	* CUnit is not only needed for liblwgeom
+	* [r10863] configure.ac: CUnit is not only needed for liblwgeom
 
-2012-12-19 18:18  strk
+2012-12-19 18:18  Sandro Santilli <strk at keybit.net>
 
-	* Put JSON input test where it belongs (#2156)
+	* [r10861] regress/in_geojson.sql, regress/in_geojson_expected,
+	  regress/tickets.sql, regress/tickets_expected: Put JSON input
+	  test where it belongs (#2156)
 	  
 	  This time do not include other unrelated changes...
 
-2012-12-19 18:06  strk
+2012-12-19 18:06  Sandro Santilli <strk at keybit.net>
 
-	* Revert "Move JSON input test where it belons (#2156)"
+	* [r10860] doc/html/image_src/generator.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwutil.c,
+	  libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  loader/shpcommon.c, postgis/postgis_module.c,
+	  raster/loader/raster2pgsql.c, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rt_pg.h,
+	  raster/test/core/testapi.c, raster/test/core/testwkb.c,
+	  regress/in_geojson.sql, regress/in_geojson_expected,
+	  regress/tickets.sql, regress/tickets_expected: Revert "Move JSON
+	  input test where it belons (#2156)"
 	  
 	  Accidentally committed an unrelated patch..
 
-2012-12-19 18:01  strk
+2012-12-19 18:01  Sandro Santilli <strk at keybit.net>
 
-	* Move JSON input test where it belons (#2156)
+	* [r10859] doc/html/image_src/generator.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwutil.c,
+	  libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  loader/shpcommon.c, postgis/postgis_module.c,
+	  raster/loader/raster2pgsql.c, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rt_pg.h,
+	  raster/test/core/testapi.c, raster/test/core/testwkb.c,
+	  regress/in_geojson.sql, regress/in_geojson_expected,
+	  regress/tickets.sql, regress/tickets_expected: Move JSON input
+	  test where it belons (#2156)
 
-2012-12-19 00:32  robe
+2012-12-19 00:32  Regina Obe <lr at pcorp.us>
 
-	* #2153: fix typo in file path
+	* [r10856] extensions/postgis_tiger_geocoder/Makefile.in: #2153:
+	  fix typo in file path
 
-2012-12-18 20:42  dustymugs
+2012-12-18 20:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Tweaked UpdateRasterSRID() to drop/add coverage tile as needed
+	* [r10853] raster/rt_pg/rtpostgis.sql.in.c: Tweaked
+	  UpdateRasterSRID() to drop/add coverage tile as needed
 
-2012-12-18 05:06  robe
+2012-12-18 05:06  Regina Obe <lr at pcorp.us>
 
-	* #1959 remove sql_bits/mark_editable_objects.sql.in from upgrade
-	  script. It is the one causing pg_extension table to bloat and in
-	  theory not needed for upgrade since we don't change
-	  spatial_ref_sys during upgrade.
+	* [r10852] extensions/postgis/Makefile.in: #1959 remove
+	  sql_bits/mark_editable_objects.sql.in from upgrade script. It is
+	  the one causing pg_extension table to bloat and in theory not
+	  needed for upgrade since we don't change spatial_ref_sys during
+	  upgrade.
 
-2012-12-15 20:27  robe
+2012-12-15 20:27  Regina Obe <lr at pcorp.us>
 
-	* add 2.0.2 as upgrade from path
+	* [r10851] extensions/upgradeable_versions.mk: add 2.0.2 as upgrade
+	  from path
 
-2012-12-15 08:09  robe
+2012-12-15 08:09  Regina Obe <lr at pcorp.us>
 
-	* #2147 upgrade topology doesn't work on Mac BSD sed doesn't
-	  default to extended. Use already perl built topology upgrade
-	  script instead as template for extension upgrade
+	* [r10848] extensions/postgis_topology/Makefile.in: #2147 upgrade
+	  topology doesn't work on Mac BSD sed doesn't default to extended.
+	  Use already perl built topology upgrade script instead as
+	  template for extension upgrade
 
-2012-12-15 00:55  dustymugs
+2012-12-15 00:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed handling of identifiers with single quote (') such as in
-	  O'Reilly.
+	* [r10845] raster/loader/raster2pgsql.c: Fixed handling of
+	  identifiers with single quote (') such as in O'Reilly.
 
-2012-12-14 20:28  dustymugs
+2012-12-14 20:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed testing of extent geometry
+	* [r10843] raster/test/regress/loader/Tiled8x8.select.expected,
+	  raster/test/regress/loader/Tiled8x8.select.sql: Changed testing
+	  of extent geometry
 
-2012-12-14 20:27  dustymugs
+2012-12-14 20:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated raster2pgsql help and docs to reflect changes to
+	* [r10842] doc/reference_raster.xml, doc/using_raster_dataman.xml,
+	  raster/loader/raster2pgsql.c: Updated raster2pgsql help and docs
+	  to reflect changes to
 	  regular_blocking.
 
-2012-12-14 20:27  dustymugs
+2012-12-14 20:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* regular_blocking constraint removed. regular_blocking column of
+	* [r10841] NEWS, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_columns_expected:
+	  regular_blocking constraint removed. regular_blocking column of
 	  raster_columns now looks for spatially_unique and coverage_tile
 	  constraints. Ticket #2150
 
-2012-12-14 20:27  dustymugs
+2012-12-14 20:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added regression tests for ST_IsCoverageTile().
+	* [r10840] raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_iscoveragetile.sql,
+	  raster/test/regress/rt_iscoveragetile_expected: Added regression
+	  tests for ST_IsCoverageTile().
 
-2012-12-14 20:27  dustymugs
+2012-12-14 20:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added support for padded edge tiles to ST_IsCoverageTile()
+	* [r10839] raster/rt_pg/rtpostgis.sql.in.c: Added support for
+	  padded edge tiles to ST_IsCoverageTile()
 
-2012-12-14 20:27  dustymugs
+2012-12-14 20:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added support for no-band rasters to ST_Tile(raster)
+	* [r10838] raster/rt_pg/rt_pg.c: Added support for no-band rasters
+	  to ST_Tile(raster)
 
-2012-12-14 20:27  dustymugs
+2012-12-14 20:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added missing tickets and reorg of ticket list
+	* [r10837] NEWS: Added missing tickets and reorg of ticket list
 
-2012-12-14 20:27  dustymugs
+2012-12-14 20:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added parameters to ST_Tile(raster) to control padding of
-	  generated tiles.
+	* [r10836] doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/rt_tile.sql,
+	  raster/test/regress/rt_tile_expected: Added parameters to
+	  ST_Tile(raster) to control padding of generated tiles.
 	  ST_Tile(raster) no longer defaults to padding tiles. Ticket #2069
 
-2012-12-14 20:26  dustymugs
+2012-12-14 20:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of coverage_tile constraint for raster. Ticket #2148
+	* [r10835] NEWS, raster/rt_pg/rtpostgis.sql.in.c: Addition of
+	  coverage_tile constraint for raster. Ticket #2148
 
-2012-12-14 20:26  dustymugs
+2012-12-14 20:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_IsCoverageTile() to tell if tile is part of a
-	  coverage
+	* [r10834] raster/rt_pg/rtpostgis.sql.in.c: Addition of
+	  ST_IsCoverageTile() to tell if tile is part of a coverage
 
-2012-12-14 20:26  dustymugs
+2012-12-14 20:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added raster's spatially_unique constraint. Ticket #2149. Still
-	  needs
+	* [r10833] raster/rt_pg/rtpostgis.sql.in.c: Added raster's
+	  spatially_unique constraint. Ticket #2149. Still needs
 	  regression tests but won't happen until regular_blocking is
 	  finished.
 
-2012-12-14 20:26  dustymugs
-
-	* Tweaked the extent computed for the extent constraint
+2012-12-14 20:26  Bborie Park <bkpark at ucdavis.edu>
 
-2012-12-14 20:26  dustymugs
-
-	* Changed blocksize constraint to permit multiple possible values.
-	  Ticket
+	* [r10832] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_columns_expected,
+	  raster/test/regress/check_raster_overviews.sql,
+	  raster/test/regress/check_raster_overviews_expected,
+	  raster/test/regress/loader/Basic.select.expected,
+	  raster/test/regress/loader/BasicCopy.select.expected,
+	  raster/test/regress/loader/Tiled10x10.select.expected,
+	  raster/test/regress/loader/Tiled10x10Copy.select.expected,
+	  raster/test/regress/loader/Tiled8x8.select.expected: Tweaked the
+	  extent computed for the extent constraint
+
+2012-12-14 20:26  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r10831] raster/rt_pg/rtpostgis.sql.in.c: Changed blocksize
+	  constraint to permit multiple possible values. Ticket
 	  is #2143. We just need a coverage constraint and a spatially
 	  unique
 	  constraint to determine regularly blocked.
 
-2012-12-14 20:26  dustymugs
-
-	* Fixed incorrect return type in docs
+2012-12-14 20:26  Bborie Park <bkpark at ucdavis.edu>
 
-2012-12-14 20:26  dustymugs
+	* [r10830] doc/reference_raster.xml: Fixed incorrect return type in
+	  docs
 
-	* raster2pgsql no longer pads tiles by default based upon tile
-	  position and tile
+2012-12-14 20:26  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r10829] raster/loader/raster2pgsql.c,
+	  raster/loader/raster2pgsql.h, raster/test/regress/Makefile.in,
+	  raster/test/regress/loader/Tiled8x8-post.pl,
+	  raster/test/regress/loader/Tiled8x8-post.sh,
+	  raster/test/regress/loader/Tiled8x8-pre.pl,
+	  raster/test/regress/loader/Tiled8x8-pre.sh,
+	  raster/test/regress/loader/Tiled8x8.opts,
+	  raster/test/regress/loader/Tiled8x8.select.expected,
+	  raster/test/regress/loader/Tiled8x8.select.sql: raster2pgsql no
+	  longer pads tiles by default based upon tile position and tile
 	  size. This is part of the refactoring to remove padded tiles.
 	  Flag -P
 	  added so that users can indicate that tiles should be padded.
 	  Ticket #826.
 
-2012-12-14 20:25  dustymugs
+2012-12-14 20:25  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed hardcoded flags for raster2pgsql from run_test
+	* [r10828] regress/run_test, regress/run_test.pl: Removed hardcoded
+	  flags for raster2pgsql from run_test
 
-2012-12-14 20:25  dustymugs
+2012-12-14 20:25  Bborie Park <bkpark at ucdavis.edu>
 
-	* Quiet down ST_SameAlignment(raster, raster) as it was way too
-	  talkative
+	* [r10827] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_gdalwarp_expected: Quiet down
+	  ST_SameAlignment(raster, raster) as it was way too talkative
 
-2012-12-14 20:25  dustymugs
+2012-12-14 20:25  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated regression tests for raster2pgsql
+	* [r10826] raster/test/regress/loader/Basic.opts,
+	  raster/test/regress/loader/Basic.select.expected,
+	  raster/test/regress/loader/Basic.select.sql,
+	  raster/test/regress/loader/Basic.sql.expected,
+	  raster/test/regress/loader/BasicCopy.opts,
+	  raster/test/regress/loader/BasicCopy.select.expected,
+	  raster/test/regress/loader/BasicCopy.select.sql,
+	  raster/test/regress/loader/BasicCopy.sql.expected,
+	  raster/test/regress/loader/Tiled10x10.opts,
+	  raster/test/regress/loader/Tiled10x10.select.expected,
+	  raster/test/regress/loader/Tiled10x10.select.sql,
+	  raster/test/regress/loader/Tiled10x10Copy.opts,
+	  raster/test/regress/loader/Tiled10x10Copy.select.expected,
+	  raster/test/regress/loader/Tiled10x10Copy.select.sql: Updated
+	  regression tests for raster2pgsql
 
-2012-12-13 09:34  strk
+2012-12-13 09:34  Sandro Santilli <strk at keybit.net>
 
-	* Revert "Return NULL when simplifying a line results in a line
-	  with < 2 vertices"
+	* [r10822] NEWS, liblwgeom/lwcollection.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpoly.c: Revert "Return NULL when simplifying a line
+	  results in a line with < 2 vertices"
 	  
 	  The correct behavior is still being discussed here:
 	  http://trac.osgeo.org/postgis/ticket/1987
 	  Better reduce the noise...
 
-2012-12-12 15:52  strk
+2012-12-12 15:52  Sandro Santilli <strk at keybit.net>
 
-	* Return NULL when simplifying a line results in a line with < 2
-	  vertices
+	* [r10821] NEWS, liblwgeom/lwcollection.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpoly.c: Return NULL when simplifying a line results
+	  in a line with < 2 vertices
 	  
 	  Also return NULL from ST_Simplify when the input is an empty
 	  (null is a simpler form than EMPTY...)
@@ -4734,30 +12645,35 @@
 	  to me. I'm still interested in allowing collapses avoidance but
 	  I think consistency is also important.
 
-2012-12-09 19:59  pramsey
+2012-12-09 19:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2145, ST_Segmentize(geography, dist) fails with redundant
-	  coordinates
+	* [r10820] liblwgeom/lwgeodetic.c, regress/tickets.sql,
+	  regress/tickets_expected: #2145, ST_Segmentize(geography, dist)
+	  fails with redundant coordinates
 
-2012-12-07 22:07  dustymugs
+2012-12-07 22:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* More verbose output when constraints fail to be added to a raster
+	* [r10819] NEWS, raster/rt_pg/rtpostgis.sql.in.c: More verbose
+	  output when constraints fail to be added to a raster
 	  column. Ticket #2141
 
-2012-12-07 09:27  strk
+2012-12-07 09:27  Sandro Santilli <strk at keybit.net>
 
-	* Add an id to the toTopoGeom proxy entry
+	* [r10816] doc/extras_topology.xml: Add an id to the toTopoGeom
+	  proxy entry
 
-2012-12-07 09:24  strk
+2012-12-07 09:24  Sandro Santilli <strk at keybit.net>
 
-	* Element xref can't have content (was declared EMPTY)
+	* [r10815] doc/xsl/postgis_aggs_mm.xml.xsl: Element xref can't have
+	  content (was declared EMPTY)
 	  
 	  I'm surprised postgis_aggs_mm.xml.xsl contains all that XML,
 	  shouldn't it just transform source XML ?
 
-2012-12-07 09:24  strk
+2012-12-07 09:24  Sandro Santilli <strk at keybit.net>
 
-	* Add a "TopoGeometry Editors" section
+	* [r10814] doc/extras_topology.xml: Add a "TopoGeometry Editors"
+	  section
 	  
 	  I've added a toTopoGeom entry in this section for the sole
 	  purpose
@@ -4766,1368 +12682,1868 @@
 	  section. If there's any better way to deal with this I'm looking
 	  forward for enhancements.
 
-2012-12-07 08:36  strk
+2012-12-07 08:36  Sandro Santilli <strk at keybit.net>
 
-	* Element xref can't have content (was declared EMPTY)
+	* [r10813] doc/extras_topology.xml: Element xref can't have content
+	  (was declared EMPTY)
 
-2012-12-07 08:31  strk
+2012-12-07 08:31  Sandro Santilli <strk at keybit.net>
 
-	* Fix links to legacy faq
+	* [r10812] doc/release_notes.xml: Fix links to legacy faq
 
-2012-12-07 08:31  strk
+2012-12-07 08:31  Sandro Santilli <strk at keybit.net>
 
-	* Document new toTopoGeom override and clearTopoGeom
+	* [r10811] doc/extras_topology.xml: Document new toTopoGeom
+	  override and clearTopoGeom
 
-2012-12-07 01:08  dustymugs
+2012-12-07 01:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed behavior of ST_ConvexHull() for empty rasters. Ticket #2126
+	* [r10810] NEWS, raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/cunit/cu_raster_geometry.c:
+	  Fixed behavior of ST_ConvexHull() for empty rasters. Ticket #2126
 
-2012-12-06 23:23  strk
+2012-12-06 23:23  Sandro Santilli <strk at keybit.net>
 
-	* Provide a version of toTopoGeom taking a TopoGeometry object
+	* [r10809] NEWS, topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected: Provide a version of
+	  toTopoGeom taking a TopoGeometry object
 	  
 	  Such version would _add_ the space taken by the input geometry
 	  to an existing TopoGeometry.
 
-2012-12-06 23:02  strk
+2012-12-06 23:02  Sandro Santilli <strk at keybit.net>
 
-	* Add topology.clearTopoGeom(TopoGeometry) function
+	* [r10808] NEWS, topology/Makefile.in,
+	  topology/sql/topogeometry/cleartopogeom.sql.in.c,
+	  topology/test/regress/cleartopogeom.sql,
+	  topology/test/regress/cleartopogeom_expected,
+	  topology/topology.sql.in.c: Add
+	  topology.clearTopoGeom(TopoGeometry) function
 
-2012-12-06 18:45  strk
+2012-12-06 18:45  Sandro Santilli <strk at keybit.net>
 
-	* Do not hardcode version to rule to build topology_upgrade_X_minor
+	* [r10807] topology/Makefile.in: Do not hardcode version to rule to
+	  build topology_upgrade_X_minor
 
-2012-12-06 17:56  pramsey
+2012-12-06 17:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2101, add some doco in the .sql.in.c file on the _postgis_*
-	  stats info functions.
+	* [r10806] postgis/postgis.sql.in.c: #2101, add some doco in the
+	  .sql.in.c file on the _postgis_* stats info functions.
 
-2012-12-06 17:39  mloskot
+2012-12-06 17:39  Mateusz Loskot <mateusz at loskot.net>
 
-	* Added RasterReader.copy_to() utility based on SQL command COPY TO
-	  and PostGIS Raster functions ST_As<FORMAT> and outputs rasters to
+	* [r10805] raster/scripts/python/rtreader.py: Added
+	  RasterReader.copy_to() utility based on SQL command COPY TO and
+	  PostGIS Raster functions ST_As<FORMAT> and outputs rasters to
 	  hex-encoded plain text or binary raster file.
 
-2012-12-06 10:49  mloskot
+2012-12-06 10:49  Mateusz Loskot <mateusz at loskot.net>
 
-	* Typo
+	* [r10804] doc/using_raster_dataman.xml: Typo
 
-2012-12-06 05:43  dustymugs
+2012-12-06 05:43  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed handling of SRS strings as they are passed to GDAL
-	  functions.
+	* [r10803] NEWS, raster/rt_core/rt_api.c: Fixed handling of SRS
+	  strings as they are passed to GDAL functions.
 	  Ticket #2134
 
-2012-12-05 18:50  pramsey
+2012-12-05 18:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2132, _postgis_stats crashes backend on missing stats
+	* [r10800] postgis/gserialized_estimate.c,
+	  regress/regress_selectivity.sql,
+	  regress/regress_selectivity_expected: #2132, _postgis_stats
+	  crashes backend on missing stats
 
-2012-12-05 10:28  strk
+2012-12-05 10:28  Sandro Santilli <strk at keybit.net>
 
-	* Fix broken shp2pgsql help string suggesting -r to reproject
+	* [r10798] loader/shp2pgsql-cli.c: Fix broken shp2pgsql help string
+	  suggesting -r to reproject
 
-2012-12-04 19:54  pramsey
+2012-12-04 19:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #945, expose and add selectivity to the 3d/4d index (&&&)
-	  bindings
+	* [r10796] NEWS, liblwgeom/g_box.c, liblwgeom/liblwgeom.h.in,
+	  libpgcommon/gserialized_gist.c, postgis/Makefile.in,
+	  postgis/geography.sql.in.c, postgis/gserialized_estimate.c,
+	  postgis/postgis.sql.in.c, regress/Makefile.in,
+	  regress/regress_selectivity.sql,
+	  regress/regress_selectivity_expected, regress/tickets.sql,
+	  regress/tickets_expected: #945, expose and add selectivity to the
+	  3d/4d index (&&&) bindings
 
-2012-12-04 13:24  robe
+2012-12-04 13:24  Regina Obe <lr at pcorp.us>
 
-	* upport 2.0.2 release notes
+	* [r10795] NEWS, doc/release_notes.xml: upport 2.0.2 release notes
 
-2012-12-03 22:17  dustymugs
+2012-12-03 22:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed incorrect return type for ST_BandIsNoData(raster) in docs
+	* [r10792] doc/reference_raster.xml: Fixed incorrect return type
+	  for ST_BandIsNoData(raster) in docs
 
-2012-12-03 16:19  strk
+2012-12-03 16:19  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory error in MultiPolygon GeoJson parsing (#2130)
+	* [r10786] postgis/lwgeom_in_geojson.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix memory error in MultiPolygon
+	  GeoJson parsing (#2130)
 
-2012-12-03 14:10  strk
+2012-12-03 14:10  Sandro Santilli <strk at keybit.net>
 
-	* Fix SRID in ST_Homogenize output with collection input (#2129)
+	* [r10783] liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/lwhomogenize.c: Fix SRID in ST_Homogenize output with
+	  collection input (#2129)
 
-2012-12-03 10:09  strk
+2012-12-03 10:09  Sandro Santilli <strk at keybit.net>
 
-	* Make ST_RemEdge* tests 30% faster by reducing service costs
+	* [r10781] topology/test/regress/st_remedgemodface.sql,
+	  topology/test/regress/st_remedgenewface.sql: Make ST_RemEdge*
+	  tests 30% faster by reducing service costs
 
-2012-12-02 22:36  dustymugs
+2012-12-02 22:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed PICFLAGS from CFLAGS when compiling CUnit suites. Ticket
-	  #2125
+	* [r10779] raster/test/cunit/Makefile.in: Removed PICFLAGS from
+	  CFLAGS when compiling CUnit suites. Ticket #2125
 
-2012-12-01 22:56  robe
+2012-12-01 22:56  Regina Obe <lr at pcorp.us>
 
-	* fix return type
+	* [r10778] doc/extras_topology.xml: fix return type
 
-2012-12-01 20:32  robe
+2012-12-01 20:32  Regina Obe <lr at pcorp.us>
 
-	* TopoGeo_AddPolygon says aline instead of apoly
+	* [r10777] doc/extras_topology.xml: TopoGeo_AddPolygon says aline
+	  instead of apoly
 
-2012-12-01 08:34  robe
+2012-12-01 08:34  Regina Obe <lr at pcorp.us>
 
-	* don't dtd validate when making comments and cheatsheets
+	* [r10775] doc/Makefile.in: don't dtd validate when making comments
+	  and cheatsheets
 
-2012-12-01 01:19  dustymugs
+2012-12-01 01:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Resize(raster) to resize a raster using desired
-	  width/height.
+	* [r10774] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_gdalwarp.sql,
+	  raster/test/regress/rt_gdalwarp_expected: Added ST_Resize(raster)
+	  to resize a raster using desired width/height.
 	  Ticket #1293.
 
-2012-12-01 01:19  dustymugs
+2012-12-01 01:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed requirements of SRID for calling GDAL Warp API
+	* [r10773] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/regress/rt_gdalwarp.sql,
+	  raster/test/regress/rt_gdalwarp_expected: Removed requirements of
+	  SRID for calling GDAL Warp API
 
-2012-11-30 15:18  dustymugs
+2012-11-30 15:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed use of pi html code. Using "pi" instead.
+	* [r10772] doc/reference_raster.xml: Removed use of pi html code.
+	  Using "pi" instead.
 
-2012-11-30 01:13  dustymugs
+2012-11-30 01:13  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional cleanup and validation regarding ticket #1653
+	* [r10770] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Additional cleanup and
+	  validation regarding ticket #1653
 
-2012-11-30 01:13  dustymugs
+2012-11-30 01:13  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added NEWS item and doc updates for changes related to ticket
-	  #2119
+	* [r10769] NEWS, doc/reference_raster.xml: Added NEWS item and doc
+	  updates for changes related to ticket #2119
 
-2012-11-30 01:12  dustymugs
+2012-11-30 01:12  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added a special case to RASTER_GDALWarp() where if the input
-	  raster has
+	* [r10768] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_gdalwarp.sql,
+	  raster/test/regress/rt_gdalwarp_expected: Added a special case to
+	  RASTER_GDALWarp() where if the input raster has
 	  no SRID (SRID_UNKNOWN) AND the operation does not involve a
 	  reprojection, then use a catchall/substitute SRID (in this case
 	  4326).
 	  Ticket #2119
 
-2012-11-29 22:33  colivier
+2012-11-29 22:33  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix #2092 for trunk branch
+	* [r10767] postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  regress/in_kml.sql: Fix #2092 for trunk branch
 
-2012-11-29 19:29  strk
+2012-11-29 19:29  Sandro Santilli <strk at keybit.net>
 
-	* Enhance error message on unsupported geometry type (#1899)
+	* [r10763] topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected: Enhance error message
+	  on unsupported geometry type (#1899)
 
-2012-11-29 19:11  dustymugs
+2012-11-29 19:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed incorrect ticket #. From #2026 to #2062
+	* [r10762] NEWS: Fixed incorrect ticket #. From #2026 to #2062
 
-2012-11-29 18:59  dustymugs
+2012-11-29 18:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed confusion between ST_Resample(raster) and
-	  ST_Transform(raster)
+	* [r10760] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_gdalwarp.sql,
+	  raster/test/regress/rt_gdalwarp_expected,
+	  raster/test/regress/rt_resample.sql,
+	  raster/test/regress/rt_resample_expected: Removed confusion
+	  between ST_Resample(raster) and ST_Transform(raster)
 	  by removing srid parameter for ST_Resample(). Ticket #1653
 
-2012-11-29 18:59  dustymugs
+2012-11-29 18:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Renamed RASTER_resample() to RASTER_GDALWarp() and adjusted SQL
+	* [r10759] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Renamed RASTER_resample()
+	  to RASTER_GDALWarp() and adjusted SQL
 	  functions as needed. Next is to audit and possibly refactor those
 	  functions that make use of RASTER_resample().
 
-2012-11-29 18:30  strk
+2012-11-29 18:30  Sandro Santilli <strk at keybit.net>
 
-	* Ensure ST_Line_Interpolate_Point always returns POINT (#2108)
+	* [r10757] postgis/lwgeom_functions_analytic.c,
+	  regress/tickets.sql, regress/tickets_expected: Ensure
+	  ST_Line_Interpolate_Point always returns POINT (#2108)
 
-2012-11-29 18:13  strk
+2012-11-29 18:13  Sandro Santilli <strk at keybit.net>
 
-	* Ensure ST_PointOnSurface always returns POINT (#2117)
+	* [r10755] postgis/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: Ensure ST_PointOnSurface always returns
+	  POINT (#2117)
 
-2012-11-29 18:01  strk
+2012-11-29 18:01  Sandro Santilli <strk at keybit.net>
 
-	* Early release lwgeom memory
+	* [r10754] postgis/lwgeom_geos.c: Early release lwgeom memory
 
-2012-11-29 17:49  strk
+2012-11-29 17:49  Sandro Santilli <strk at keybit.net>
 
-	* Ensure ST_Centroid always returns POINT (#2109)
+	* [r10751] postgis/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: Ensure ST_Centroid always returns POINT
+	  (#2109)
 
-2012-11-29 02:12  robe
+2012-11-29 02:12  Regina Obe <lr at pcorp.us>
 
-	* #1795 make raster_views, raster_columns, geometry_columns,
-	  geometry_views, spatial_ref_sys public viewable -- none issue
-	  since they are views that only list user viewable tables and
-	  aspatial_ref_sys is harmless public info.
+	* [r10750] postgis/postgis.sql.in.c,
+	  raster/rt_pg/rtpostgis.sql.in.c: #1795 make raster_views,
+	  raster_columns, geometry_columns, geometry_views, spatial_ref_sys
+	  public viewable -- none issue since they are views that only list
+	  user viewable tables and aspatial_ref_sys is harmless public
+	  info.
 
-2012-11-29 01:21  dustymugs
+2012-11-29 01:21  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added CUnit test suites for raster core. Old raster core
+	* [r10749] .gitignore, configure.ac, raster/test/Makefile.in,
+	  raster/test/core/testapi.c, raster/test/cunit,
+	  raster/test/cunit/Makefile.in,
+	  raster/test/cunit/cu_band_basics.c,
+	  raster/test/cunit/cu_band_misc.c,
+	  raster/test/cunit/cu_band_stats.c, raster/test/cunit/cu_gdal.c,
+	  raster/test/cunit/cu_mapalgebra.c,
+	  raster/test/cunit/cu_pixtype.c,
+	  raster/test/cunit/cu_raster_basics.c,
+	  raster/test/cunit/cu_raster_geometry.c,
+	  raster/test/cunit/cu_raster_misc.c,
+	  raster/test/cunit/cu_raster_wkb.c,
+	  raster/test/cunit/cu_spatial_relationship.c,
+	  raster/test/cunit/cu_tester.c, raster/test/cunit/cu_tester.h:
+	  Added CUnit test suites for raster core. Old raster core
 	  regression
 	  tests can still be found in raster/test/core but are no longer
 	  run.
 	  Probably should delete before 2.1 is released.
 	  Ticket #173
 
-2012-11-28 22:35  nicklas
+2012-11-28 22:35  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* #2112
+	* [r10747] liblwgeom/measures3d.c, regress/tickets.sql,
+	  regress/tickets_expected: #2112
 
-2012-11-28 20:16  dustymugs
+2012-11-28 20:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored return and parameters of rt_raster_iterator()
+	* [r10746] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Refactored
+	  return and parameters of rt_raster_iterator()
 
-2012-11-28 19:31  dustymugs
+2012-11-28 19:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored return and parameters of rt_raster_from_two_rasters()
+	* [r10745] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Refactored
+	  return and parameters of rt_raster_from_two_rasters()
 
-2012-11-28 15:27  dustymugs
+2012-11-28 15:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored return and parameters of rt_raster_surface()
+	* [r10744] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Refactored
+	  return and parameters of rt_raster_surface()
 
-2012-11-27 00:58  dustymugs
+2012-11-27 00:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_NotSameAlignmentReason(raster, raster). Ticket #1709
+	* [r10742] NEWS, doc/reference_raster.xml,
+	  raster/loader/raster2pgsql.c, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_resample_expected,
+	  raster/test/regress/rt_samealignment.sql,
+	  raster/test/regress/rt_samealignment_expected: Added
+	  ST_NotSameAlignmentReason(raster, raster). Ticket #1709
 
-2012-11-26 21:09  dustymugs
+2012-11-26 21:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Transform(raster) variant that allows of aligning output
+	* [r10741] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_resample.sql,
+	  raster/test/regress/rt_resample_expected: Added
+	  ST_Transform(raster) variant that allows of aligning output
 	  rasters to a reference raster. Ticket #2105
 
-2012-11-26 19:13  dustymugs
+2012-11-26 19:13  Bborie Park <bkpark at ucdavis.edu>
 
-	* Renamed variants of ST_World2RasterCoord() and
-	  ST_Raster2WorldCoord() to
+	* [r10740] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_pixelascentroids.sql,
+	  raster/test/regress/rt_pixelaspoints.sql,
+	  raster/test/regress/rt_raster2worldcoord.sql,
+	  raster/test/regress/rt_raster2worldcoord_expected,
+	  raster/test/regress/rt_rastertoworldcoord.sql,
+	  raster/test/regress/rt_rastertoworldcoord_expected,
+	  raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_world2rastercoord.sql,
+	  raster/test/regress/rt_world2rastercoord_expected,
+	  raster/test/regress/rt_worldtorastercoord.sql,
+	  raster/test/regress/rt_worldtorastercoord_expected: Renamed
+	  variants of ST_World2RasterCoord() and ST_Raster2WorldCoord() to
 	  ST_WorldToRasterCoord() and ST_RasterToWorldCoord() as names are
 	  inconsistent with other PostGIS function names. Ticket #2104
 
-2012-11-26 12:07  strk
+2012-11-26 12:07  Sandro Santilli <strk at keybit.net>
 
-	* Skip st_area(geography) and st_length(geography)
+	* [r10738] utils/postgis_restore.pl.in: Skip st_area(geography) and
+	  st_length(geography)
 	  
 	  See
 	  http://lists.osgeo.org/pipermail/postgis-users/2012-November/035854.html
 
-2012-11-25 22:36  robe
+2012-11-25 22:36  Regina Obe <lr at pcorp.us>
 
-	* #1869 take care of ST_AsBinary(unknown/text),
-	  ST_AsText(unknown/text) is not unique errors
+	* [r10737] postgis/legacy_minimal.sql.in.c, regress/legacy.sql,
+	  regress/legacy_expected: #1869 take care of
+	  ST_AsBinary(unknown/text), ST_AsText(unknown/text) is not unique
+	  errors
 
-2012-11-25 21:55  dustymugs
+2012-11-25 21:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Where appropriate, functions in rt_core now use standardized
-	  function
+	* [r10735] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c,
+	  raster/test/core/testwkb.c: Where appropriate, functions in
+	  rt_core now use standardized function
 	  return states.
 
-2012-11-23 22:15  strk
+2012-11-23 22:15  Sandro Santilli <strk at keybit.net>
 
-	* Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints
+	* [r10734] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected,
+	  topology/test/regress/st_newedgeheal.sql,
+	  topology/test/regress/st_newedgeheal_expected: Fix
+	  ST_{Mod,New}EdgeHeal joining edges sharing both endpoints
 	  
 	  Closes #1998. Include testcases.
 	  Also simplifies the code and avoids a GEOS call.
 	  
 	  [RT-SIGTA] C.I.G.: 0494241492
 
-2012-11-23 15:57  pramsey
+2012-11-23 15:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Try to stomp out -180 (#2066)
+	* [r10732] liblwgeom/lwgeodetic.c: Try to stomp out -180 (#2066)
 
-2012-11-23 06:13  pramsey
+2012-11-23 06:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #1828, geography stats are really sensitive to narrow
-	  dimensionality issues,
+	* [r10731] postgis/geography_estimate.c: #1828, geography stats are
+	  really sensitive to narrow dimensionality issues,
 	  so geodetic bounds have to be exactly calculated for things like
 	  points
 
-2012-11-22 17:39  pramsey
+2012-11-22 17:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #1828, fix mistake to geography calculation routine
+	* [r10729] liblwgeom/liblwgeom.h.in, postgis/geography_estimate.c:
+	  #1828, fix mistake to geography calculation routine
 
-2012-11-21 23:26  pramsey
+2012-11-21 23:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Of course we're going to do real joinsel...
+	* [r10728] postgis/geometry_estimate.c: Of course we're going to do
+	  real joinsel...
 
-2012-11-21 19:52  pramsey
+2012-11-21 19:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Explain "selectivity" a little more explicitly
+	* [r10727] postgis/geometry_estimate.c: Explain "selectivity" a
+	  little more explicitly
 
-2012-11-20 23:47  pramsey
+2012-11-20 23:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Better/different error messages in stats interogator
+	* [r10726] postgis/geometry_estimate.c: Better/different error
+	  messages in stats interogator
 
-2012-11-20 23:28  pramsey
+2012-11-20 23:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2101, sql functions for selectivity inspection
+	* [r10725] postgis/geometry_estimate.c, postgis/postgis.sql.in.c:
+	  #2101, sql functions for selectivity inspection
 
-2012-11-20 21:34  pramsey
+2012-11-20 21:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make default joinsel message more obvious
+	* [r10724] postgis/geometry_estimate.c: Make default joinsel
+	  message more obvious
 
-2012-11-20 21:31  pramsey
+2012-11-20 21:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make error message minimally more helpful
+	* [r10723] postgis/geometry_estimate.c: Make error message
+	  minimally more helpful
 
-2012-11-20 21:29  pramsey
+2012-11-20 21:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Be more explicit about the types we're passing around
+	* [r10722] postgis/geometry_estimate.c, postgis/postgis.sql.in.c:
+	  Be more explicit about the types we're passing around
 
-2012-11-20 20:57  pramsey
+2012-11-20 20:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Convert SearchSysCache calls to SearchSysCache# calls, per the
-	  guidance in the PostgreSQL syscache.h file
+	* [r10721] postgis/geography_estimate.c,
+	  postgis/geometry_estimate.c: Convert SearchSysCache calls to
+	  SearchSysCache# calls, per the guidance in the PostgreSQL
+	  syscache.h file
 
-2012-11-20 20:51  pramsey
+2012-11-20 20:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2102, SQL hooks for calling selectivity functions
+	* [r10720] postgis/geometry_estimate.c, postgis/postgis.sql.in.c:
+	  #2102, SQL hooks for calling selectivity functions
 
-2012-11-20 19:07  pramsey
+2012-11-20 19:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #1828, Poor selectivity estimate on ST_DWithin
+	* [r10719] postgis/geography_estimate.c,
+	  postgis/geometry_estimate.c: #1828, Poor selectivity estimate on
+	  ST_DWithin
 
-2012-11-20 17:50  pramsey
+2012-11-20 17:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove conditional use of USE_STANDARD_DEVIATION, it's been
-	  working for years, that's what we use.
+	* [r10717] postgis/geography_estimate.c,
+	  postgis/geometry_estimate.c: Remove conditional use of
+	  USE_STANDARD_DEVIATION, it's been working for years, that's what
+	  we use.
 
-2012-11-20 09:51  robe
+2012-11-20 09:51  Regina Obe <lr at pcorp.us>
 
-	* minor formatting fix
+	* [r10713] doc/faq.xml: minor formatting fix
 
-2012-11-20 09:49  robe
+2012-11-20 09:49  Regina Obe <lr at pcorp.us>
 
-	* #1287: legacy script to reinstall old PostGIS gist op. Added to
-	  FAQ when you need to use it and stress to try not to use it and
-	  reindex if you do.
+	* [r10712] doc/faq.xml, postgis/Makefile.in,
+	  postgis/legacy_gist.sql.in: #1287: legacy script to reinstall old
+	  PostGIS gist op. Added to FAQ when you need to use it and stress
+	  to try not to use it and reindex if you do.
 
-2012-11-19 23:18  dustymugs
+2012-11-19 23:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed issue where ST_AsRaster() may not return raster with
-	  specified
+	* [r10710] NEWS, raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_asraster_expected: Fixed issue where
+	  ST_AsRaster() may not return raster with specified
 	  pixel types. Ticket #2100
 
-2012-11-19 23:18  dustymugs
+2012-11-19 23:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code cleanup of rt_raster_gdal_rasterize()
+	* [r10709] raster/rt_core/rt_api.c: Code cleanup of
+	  rt_raster_gdal_rasterize()
 
-2012-11-19 23:18  dustymugs
+2012-11-19 23:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored internal use variables and functions for
-	  rt_raster_iterator()
+	* [r10708] raster/rt_core/rt_api.c: Refactored internal use
+	  variables and functions for rt_raster_iterator()
 
-2012-11-19 23:04  pramsey
+2012-11-19 23:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move box-reading code in geography stats to use serialized box.
+	* [r10707] libpgcommon/gserialized_gist.h, libpgcommon/lwgeom_pg.h,
+	  postgis/geography_estimate.c, postgis/geometry_estimate.c: Move
+	  box-reading code in geography stats to use serialized box.
 
-2012-11-19 15:47  strk
+2012-11-19 15:47  Sandro Santilli <strk at keybit.net>
 
-	* Fix double free on ST_OffsetCurve exception (#2099)
+	* [r10705] liblwgeom/lwgeom_geos.c: Fix double free on
+	  ST_OffsetCurve exception (#2099)
 
-2012-11-19 10:20  strk
+2012-11-19 10:20  Sandro Santilli <strk at keybit.net>
 
-	* Restore 1.5.x behaviour of ST_Simplify (#1987)
+	* [r10702] liblwgeom/lwcollection.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpoly.c, regress/simplify.sql,
+	  regress/simplify_expected: Restore 1.5.x behaviour of ST_Simplify
+	  (#1987)
 
-2012-11-16 22:59  dustymugs
+2012-11-16 22:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added RANGE uniontype option for ST_Union(raster) Ticket #2097
+	* [r10696] NEWS, doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected: Added RANGE uniontype
+	  option for ST_Union(raster) Ticket #2097
 
-2012-11-16 12:35  robe
+2012-11-16 12:35  Regina Obe <lr at pcorp.us>
 
-	* geos new is 3.4
+	* [r10693] doc/xsl/post_gis_day_cards.html.xsl: geos new is 3.4
 
-2012-11-16 06:46  robe
+2012-11-16 06:46  Regina Obe <lr at pcorp.us>
 
-	* update tto reflect 2.1
+	* [r10692] doc/xsl/post_gis_day_cards.html.xsl: update tto reflect
+	  2.1
 
-2012-11-16 03:39  dustymugs
+2012-11-16 03:39  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed SQL error in regression test
+	* [r10691] raster/test/regress/rt_elevation_functions.sql: Fixed
+	  SQL error in regression test
 
-2012-11-16 01:32  dustymugs
+2012-11-16 01:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs and regression test for extent parameter variants of
+	* [r10690] doc/reference_raster.xml,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_elevation_functions.sql,
+	  raster/test/regress/rt_elevation_functions_expected: Added docs
+	  and regression test for extent parameter variants of
 	  ST_Slope, ST_Aspect and ST_Hillshade
 
-2012-11-16 01:32  dustymugs
+2012-11-16 01:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* If hillshade < 0, hillshade = 0 for ST_HillShade()
+	* [r10689] raster/rt_pg/rtpostgis.sql.in.c: If hillshade < 0,
+	  hillshade = 0 for ST_HillShade()
 
-2012-11-16 01:31  dustymugs
+2012-11-16 01:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added variants of ST_Slope, ST_Aspect and ST_Hillshade to provide
+	* [r10688] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Added variants of ST_Slope,
+	  ST_Aspect and ST_Hillshade to provide
 	  support for tiles in a coverage. Ticket is #2078
 
-2012-11-15 00:15  pramsey
+2012-11-15 00:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Comment on the dump_toupper function
+	* [r10680] liblwgeom/g_util.c: Comment on the dump_toupper function
 
-2012-11-15 00:08  pramsey
+2012-11-15 00:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Use a locale-independent braindead upper implementation
+	* [r10678] liblwgeom/g_util.c: Use a locale-independent braindead
+	  upper implementation
 
-2012-11-14 23:01  pramsey
+2012-11-14 23:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2035, Strange behavior when using left (<<) and right (>>)
-	  operators
+	* [r10677] postgis/gserialized_gist_2d.c, regress/tickets.sql,
+	  regress/tickets_expected: #2035, Strange behavior when using left
+	  (<<) and right (>>) operators
 
-2012-11-14 22:29  pramsey
+2012-11-14 22:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2028, ST_Multi(<triangle>) does not make a TIN
+	* [r10675] liblwgeom/lwgeom.c, regress/tickets.sql,
+	  regress/tickets_expected: #2028, ST_Multi(<triangle>) does not
+	  make a TIN
 
-2012-11-14 21:31  pramsey
+2012-11-14 21:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2042, measures.c: 'pt_in_arc_A' may be used uninitialized
+	* [r10673] liblwgeom/measures.c: #2042, measures.c: 'pt_in_arc_A'
+	  may be used uninitialized
 
-2012-11-14 21:25  pramsey
+2012-11-14 21:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2001, ST_CurveToLine has no effect if the geometry doesn't
-	  actually contain an arc
+	* [r10671] liblwgeom/lwsegmentize.c, postgis/lwgeom_sqlmm.c,
+	  regress/tickets.sql, regress/tickets_expected: #2001,
+	  ST_CurveToLine has no effect if the geometry doesn't actually
+	  contain an arc
 
-2012-11-14 20:45  pramsey
+2012-11-14 20:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #799, make geographic coordinates in range
+	* [r10670] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeom.c, postgis/geography_inout.c,
+	  regress/tickets_expected: #799, make geographic coordinates in
+	  range
 
-2012-11-14 17:21  pramsey
+2012-11-14 17:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make Korotkov split the default
+	* [r10669] postgis/gserialized_gist_2d.c: Make Korotkov split the
+	  default
 
-2012-11-13 22:48  pramsey
+2012-11-13 22:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2090, gserialized_read_gbox_p sets Z dimension instead of M
-	  dimension for two-point lines
+	* [r10667] liblwgeom/g_serialized.c: #2090, gserialized_read_gbox_p
+	  sets Z dimension instead of M dimension for two-point lines
 
-2012-11-13 22:30  pramsey
+2012-11-13 22:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2044, lw_arc_length: warning: variable 'a2' set but not used
+	* [r10666] liblwgeom/lwalgorithm.c: #2044, lw_arc_length: warning:
+	  variable 'a2' set but not used
 
-2012-11-13 22:10  pramsey
+2012-11-13 22:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #1895, New node splitting algorithm for GiST
+	* [r10665] NEWS, postgis/gserialized_gist_2d.c: #1895, New node
+	  splitting algorithm for GiST
 	  Set the KOROTKOV_SPLIT define to 1 to use the new approach,
 	  to 0 to use the old approach. After testing is complete,
 	  we can set the new split as the default.
 
-2012-11-13 18:58  pramsey
+2012-11-13 18:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove <inlineequation> element
+	* [r10664] doc/using_postgis_dataman.xml: Remove <inlineequation>
+	  element
 
-2012-11-13 18:57  pramsey
+2012-11-13 18:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove MathML from documentation. It's not really being used for
-	  any math.
+	* [r10663] doc/Makefile.in, doc/postgis.xml,
+	  doc/using_postgis_dataman.xml: Remove MathML from documentation.
+	  It's not really being used for any math.
 
-2012-11-09 21:54  pramsey
+2012-11-09 21:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove module magic from here, #1162
+	* [r10662] libpgcommon/lwgeom_pg.c: Remove module magic from here,
+	  #1162
 
-2012-11-09 00:09  pramsey
+2012-11-09 00:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove many warnings from -pedantic build, and clean up parser
-	  globals a little more thoroughly.
+	* [r10661] liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_split.c,
+	  liblwgeom/lwgeodetic_tree.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwgeom_geos.c, liblwgeom/lwin_wkt.c,
+	  liblwgeom/lwin_wkt_lex.c, liblwgeom/lwin_wkt_lex.l,
+	  liblwgeom/lwin_wkt_parse.c, liblwgeom/lwin_wkt_parse.h,
+	  liblwgeom/lwin_wkt_parse.y, liblwgeom/lwout_x3d.c,
+	  liblwgeom/measures3d.c, postgis/lwgeom_dumppoints.c,
+	  postgis/lwgeom_in_geojson.c: Remove many warnings from -pedantic
+	  build, and clean up parser globals a little more thoroughly.
 
-2012-11-08 08:40  strk
+2012-11-08 08:40  Sandro Santilli <strk at keybit.net>
 
-	* Rewrite topology.GetRingEdges using a recursive CTE (#2087)
+	* [r10660] topology/sql/query/GetRingEdges.sql.in.c: Rewrite
+	  topology.GetRingEdges using a recursive CTE (#2087)
 	  
 	  Walking around a ring of ~22k edges takes 1/7 of the time
 
-2012-11-08 08:40  strk
+2012-11-08 08:40  Sandro Santilli <strk at keybit.net>
 
-	* Share some code between ST_RemEdgeModFace and ST_RemEdgeNewFaces
+	* [r10659] topology/sql/sqlmm.sql.in.c: Share some code between
+	  ST_RemEdgeModFace and ST_RemEdgeNewFaces
 	  
 	  Also check TopoGeometry existance as first thing, to reduce the
 	  time it takes for failing calls.
 
-2012-11-08 05:48  robe
+2012-11-08 05:48  Regina Obe <lr at pcorp.us>
 
-	* update install to note that we now support loading tiger 2012
+	* [r10657] doc/extras_tigergeocoder.xml, doc/installation.xml:
+	  update install to note that we now support loading tiger 2012
 	  data and it is the default and upgrade instructions to get the
 	  new loader behavior
 
-2012-11-08 05:46  robe
+2012-11-08 05:46  Regina Obe <lr at pcorp.us>
 
-	* change this to use 2012 loader, but remark it out so it doesn't
-	  overwrite people's custom settings.
+	* [r10656] extras/tiger_geocoder/tiger_2011/upgrade_geocoder.bat,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocoder.sh: change this
+	  to use 2012 loader, but remark it out so it doesn't overwrite
+	  people's custom settings.
 
-2012-11-06 00:27  pramsey
+2012-11-06 00:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2048, add regression test
+	* [r10648] regress/tickets.sql, regress/tickets_expected: #2048,
+	  add regression test
 
-2012-11-05 10:27  strk
+2012-11-05 10:27  Sandro Santilli <strk at keybit.net>
 
-	* Create indices on start_node and end_node of edge_data (#2082)
+	* [r10644] topology/topology.sql.in.c: Create indices on start_node
+	  and end_node of edge_data (#2082)
 	  
 	  Those indices speed up nodes deletion by a factor of x1000 !
 	  I didn't profile, but I suspect those indices would also speed up
 	  ring walking (whereas you have to find a match between endnodes).
 
-2012-11-05 00:47  robe
+2012-11-05 00:47  Regina Obe <lr at pcorp.us>
 
-	* #2020: stop penalizing windows 9.2 32-bit when it gives a stupid
-	  answer to an ill-defined question. Change to be a well-defined
-	  question.
+	* [r10642] regress/lwgeom_regress.sql: #2020: stop penalizing
+	  windows 9.2 32-bit when it gives a stupid answer to an
+	  ill-defined question. Change to be a well-defined question.
 
-2012-11-04 20:03  robe
+2012-11-04 20:03  Regina Obe <lr at pcorp.us>
 
-	* #2081: extension files being installed twice causes errors on
-	  Ubuntu (9.3)
+	* [r10641] extensions/postgis/Makefile.in,
+	  extensions/postgis_tiger_geocoder/Makefile.in,
+	  extensions/postgis_topology/Makefile.in: #2081: extension files
+	  being installed twice causes errors on Ubuntu (9.3)
 
-2012-11-04 14:40  strk
+2012-11-04 14:40  Sandro Santilli <strk at keybit.net>
 
-	* Fix order of TopoGeometry property names
+	* [r10639] doc/extras_topology.xml: Fix order of TopoGeometry
+	  property names
 
-2012-11-04 10:45  robe
+2012-11-04 10:45  Regina Obe <lr at pcorp.us>
 
-	* #1980: define new configure arg --with-mathmldtd to allow
-	  overriding path to mathmldtd
+	* [r10638] configure.ac: #1980: define new configure arg
+	  --with-mathmldtd to allow overriding path to mathmldtd
 
-2012-11-04 00:44  strk
+2012-11-04 00:44  Sandro Santilli <strk at keybit.net>
 
-	* Oops, revert the revert...
+	* [r10637] topology/test/regress/copytopology.sql,
+	  topology/test/regress/copytopology_expected: Oops, revert the
+	  revert...
 	  
 	  Note to self: never commit between 1:00am and 8:00am
 
-2012-11-04 00:30  strk
+2012-11-04 00:30  Sandro Santilli <strk at keybit.net>
 
-	* Add note about lwgeom_make_valid being only available with
-	  GEOS-3.3+
+	* [r10636] liblwgeom/liblwgeom.h.in: Add note about
+	  lwgeom_make_valid being only available with GEOS-3.3+
 
-2012-11-04 00:30  strk
+2012-11-04 00:30  Sandro Santilli <strk at keybit.net>
 
-	* Revert "#1970 - 9.2rc1 regress failure change layer_id_seq from
-	  select * to explicitly select fields. log_cnt now returns 0 for
-	  9.2rc1 so fails regress otherwise"
+	* [r10635] topology/test/regress/copytopology.sql,
+	  topology/test/regress/copytopology_expected: Revert "#1970 -
+	  9.2rc1 regress failure change layer_id_seq from select * to
+	  explicitly select fields. log_cnt now returns 0 for 9.2rc1 so
+	  fails regress otherwise"
 	  
 	  This reverts commit c272b5ed6dec2cc415c9bccd305e81394f1bde83.
 
-2012-11-03 18:12  robe
+2012-11-03 18:12  Regina Obe <lr at pcorp.us>
 
-	* change default new install to use tiger_loader_2012.sql file
-	  instead
+	* [r10634] extras/tiger_geocoder/tiger_2011/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2011/create_geocode.sh: change
+	  default new install to use tiger_loader_2012.sql file instead
 
-2012-11-03 17:54  robe
+2012-11-03 17:54  Regina Obe <lr at pcorp.us>
 
-	* #2076: support for loading tiger 2012 data. revise
+	* [r10633] extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql:
+	  #2076: support for loading tiger 2012 data. revise
 	  loader_load_staged_data to leave out pumace10, estatefp, ugace.
 	  This fixes the faces not loading issue for 2012 data (tested with
 	  MA, DC)
 
-2012-11-02 21:14  pramsey
+2012-11-02 21:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2015, ST_IsEmpty('POLYGON EMPTY') returns False
+	* [r10630] liblwgeom/cunit/cu_out_wkb.c, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwline.c, liblwgeom/lwout_wkt.c, liblwgeom/lwpoint.c,
+	  liblwgeom/lwpoly.c, liblwgeom/lwtriangle.c: #2015,
+	  ST_IsEmpty('POLYGON EMPTY') returns False
 
-2012-11-02 20:40  dustymugs
+2012-11-02 20:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed code that is no longer used and updated docs with default
+	* [r10629] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Removed code that is no longer
+	  used and updated docs with default
 	  parameters
 
-2012-11-02 19:15  pramsey
+2012-11-02 19:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #1996, ST_AsGeoJSON('POINT EMPTY') produces invalid JSON
+	* [r10628] NEWS, liblwgeom/lwout_geojson.c, regress/tickets.sql,
+	  regress/tickets_expected: #1996, ST_AsGeoJSON('POINT EMPTY')
+	  produces invalid JSON
 
-2012-11-02 19:08  pramsey
+2012-11-02 19:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Be a bit more explicit about what we're returning from
-	  point-in-ring tests.
+	* [r10626] liblwgeom/cunit/cu_ptarray.c, liblwgeom/measures.c,
+	  liblwgeom/ptarray.c: Be a bit more explicit about what we're
+	  returning from point-in-ring tests.
 
-2012-11-02 18:12  dustymugs
+2012-11-02 18:12  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated reference links to "How Hillshade works" for ST_Slope,
-	  ST_Aspect
+	* [r10625] doc/reference_raster.xml: Updated reference links to
+	  "How Hillshade works" for ST_Slope, ST_Aspect
 	  and ST_HillShade
 
-2012-11-02 18:02  pramsey
+2012-11-02 18:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove double call of flip test.
+	* [r10624] liblwgeom/cunit/cu_libgeom.c: Remove double call of flip
+	  test.
 
-2012-11-02 17:52  pramsey
+2012-11-02 17:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #2019, ST_FlipCoordinates does not update bbox
+	* [r10621] NEWS, liblwgeom/cunit/cu_libgeom.c, liblwgeom/lwgeom.c:
+	  #2019, ST_FlipCoordinates does not update bbox
 
-2012-11-02 17:22  dustymugs
+2012-11-02 17:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored ST_Slope, ST_Aspect and ST_Hillshade() (also their
+	* [r10619] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql: Refactored
+	  ST_Slope, ST_Aspect and ST_Hillshade() (also their
 	  _st_XXX4ma() functions). Detailed docs for all three functions.
 	  Outputs
 	  now in sync with return from ArcGIS. Ticket is #2077
 
-2012-10-31 19:33  robe
+2012-10-31 19:33  Regina Obe <lr at pcorp.us>
 
-	* some wording changes, add tutorial faq
+	* [r10609] doc/faq.xml, doc/installation.xml: some wording changes,
+	  add tutorial faq
 
-2012-10-31 14:31  dustymugs
+2012-10-31 14:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added missing DROP FUNCTION statements. Ticket #2073
+	* [r10607] raster/rt_pg/rtpostgis_drop.sql.in.c: Added missing DROP
+	  FUNCTION statements. Ticket #2073
 
-2012-10-31 09:46  strk
+2012-10-31 09:46  Sandro Santilli <strk at keybit.net>
 
-	* Add instruction for upgrading between SVN revisions using
-	  extensions
+	* [r10606] doc/installation.xml: Add instruction for upgrading
+	  between SVN revisions using extensions
 
-2012-10-31 00:42  dustymugs
+2012-10-31 00:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed when the isnodata check takes place for out-db raster
-	  tiles
+	* [r10603] raster/loader/raster2pgsql.c: Changed when the isnodata
+	  check takes place for out-db raster tiles
 
-2012-10-30 23:25  pramsey
+2012-10-30 23:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #1940, epsg:2065 projection is incorrect
+	* [r10601] spatial_ref_sys.sql: #1940, epsg:2065 projection is
+	  incorrect
 
-2012-10-30 21:38  robe
+2012-10-30 21:38  Regina Obe <lr at pcorp.us>
 
-	* Add Nathan Wagner to credits
+	* [r10597] doc/introduction.xml: Add Nathan Wagner to credits
 
-2012-10-30 21:16  robe
+2012-10-30 21:16  Regina Obe <lr at pcorp.us>
 
-	* Put in Enhanced note about ST_DumpPoints -- should in theory be
-	  faster. Revise expertbot xsl script (prevent url from abutting
-	  the title)
+	* [r10596] doc/reference_processing.xml,
+	  doc/xsl/postgis_reference.xml.xsl: Put in Enhanced note about
+	  ST_DumpPoints -- should in theory be faster. Revise expertbot xsl
+	  script (prevent url from abutting the title)
 
-2012-10-30 20:32  pramsey
+2012-10-30 20:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* (#310) ST_DumpPoints as C function
+	* [r10595] NEWS, postgis/Makefile.in, postgis/lwgeom_dumppoints.c,
+	  postgis/postgis.sql.in.c: (#310) ST_DumpPoints as C function
 
-2012-10-29 22:24  robe
+2012-10-29 22:24  Regina Obe <lr at pcorp.us>
 
-	* Fix gdal binaries link
+	* [r10587] doc/faq_raster.xml: Fix gdal binaries link
 
-2012-10-29 22:23  dustymugs
+2012-10-29 22:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added SRID check to ST_Neighborhood(raster, geometry)
+	* [r10586] raster/rt_pg/rtpostgis.sql.in.c: Added SRID check to
+	  ST_Neighborhood(raster, geometry)
 
-2012-10-29 22:23  dustymugs
+2012-10-29 22:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added SRID check for ST_Intersects(geometry, raster)
+	* [r10585] raster/rt_pg/rtpostgis.sql.in.c: Added SRID check for
+	  ST_Intersects(geometry, raster)
 
-2012-10-29 22:23  dustymugs
+2012-10-29 22:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added SRID check of geometry for ST_World2RasterCoord variants
+	* [r10584] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_utility_expected: Added SRID check of
+	  geometry for ST_World2RasterCoord variants
 
-2012-10-29 22:22  dustymugs
+2012-10-29 22:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added check for SRID match in ST_Value(raster) geometry variant
+	* [r10583] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_pixelvalue_expected: Added check for SRID
+	  match in ST_Value(raster) geometry variant
 
-2012-10-29 20:14  dustymugs
+2012-10-29 20:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Set defaults for parameters of ST_Slope(raster). Ticket #1655
+	* [r10582] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Set defaults for parameters of
+	  ST_Slope(raster). Ticket #1655
 
-2012-10-29 18:56  dustymugs
+2012-10-29 18:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added UpdateRasterSRID() as per ticket #739
+	* [r10581] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Added UpdateRasterSRID() as per
+	  ticket #739
 
-2012-10-27 05:53  robe
+2012-10-27 05:53  Regina Obe <lr at pcorp.us>
 
-	* more ids and descriptive titles
+	* [r10575] doc/using_postgis_dataman.xml: more ids and descriptive
+	  titles
 
-2012-10-27 05:31  robe
+2012-10-27 05:31  Regina Obe <lr at pcorp.us>
 
-	* revise script hallie uses so strips out tags such as ulink, xref,
-	  command leaving just textual representation (these were getting
-	  cut out before)
+	* [r10574] doc/xsl/postgis_reference.xml.xsl: revise script hallie
+	  uses so strips out tags such as ulink, xref, command leaving just
+	  textual representation (these were getting cut out before)
 
-2012-10-27 04:18  robe
+2012-10-27 04:18  Regina Obe <lr at pcorp.us>
 
-	* try to put in some ids
+	* [r10573] doc/using_postgis_dataman.xml: try to put in some ids
 
-2012-10-26 00:28  dustymugs
+2012-10-26 00:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added news regarding ST_Clip(raster, ...) in C and update docs
+	* [r10569] NEWS, doc/reference_raster.xml: Added news regarding
+	  ST_Clip(raster, ...) in C and update docs
 
-2012-10-26 00:28  dustymugs
+2012-10-26 00:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rewrite of ST_Clip(raster) to be C-based and updated regression
-	  test.
+	* [r10568] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_clip_expected,
+	  raster/test/regress/rt_summarystats_expected: Rewrite of
+	  ST_Clip(raster) to be C-based and updated regression test.
 	  Ticket is #2065
 
-2012-10-25 23:06  dustymugs
+2012-10-25 23:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed default Y-scale to -1 from 1
+	* [r10567] raster/rt_core/rt_api.c, raster/test/core/testapi.c,
+	  raster/test/regress/rt_mapalgebra_expected: Fixed default Y-scale
+	  to -1 from 1
 
-2012-10-25 22:17  pramsey
+2012-10-25 22:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Expose some geodetic functions a little higher
+	* [r10566] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Expose some geodetic functions a little
+	  higher
 
-2012-10-25 20:36  pramsey
+2012-10-25 20:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix error in ptarray traversal.
+	* [r10565] liblwgeom/ptarray.c: Fix error in ptarray traversal.
 
-2012-10-25 19:29  pramsey
+2012-10-25 19:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reorganize some pointarray loops and functions. Use direct
-	  aligned access more.
+	* [r10564] liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom_api.c,
+	  liblwgeom/ptarray.c: Reorganize some pointarray loops and
+	  functions. Use direct aligned access more.
 
-2012-10-25 18:57  pramsey
+2012-10-25 18:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old signature for serialized_form function
+	* [r10563] liblwgeom/liblwgeom.h.in: Remove old signature for
+	  serialized_form function
 
-2012-10-25 18:54  pramsey
+2012-10-25 18:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Allow WKB generation to do direct memcpy of coordinates in
-	  specific cases.
+	* [r10562] liblwgeom/lwout_wkb.c: Allow WKB generation to do direct
+	  memcpy of coordinates in specific cases.
 
-2012-10-25 18:42  pramsey
+2012-10-25 18:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Use double alignment property to remove memcpy from wkb
-	  generation
+	* [r10561] liblwgeom/lwout_wkb.c, liblwgeom/lwout_wkt.c: Use double
+	  alignment property to remove memcpy from wkb generation
 
-2012-10-25 18:29  pramsey
+2012-10-25 18:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove TODO note: the storage is now double aligned
+	* [r10560] liblwgeom/lwout_wkb.c: Remove TODO note: the storage is
+	  now double aligned
 
-2012-10-25 17:47  pramsey
+2012-10-25 17:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change the gbox calculation for geodetic edges to use 3-space
-	  geometry instead of lots of transcendental functions. Much
-	  faster, much simpler, all regression tests pass.
+	* [r10559] liblwgeom/cunit/cu_geodetic.c, liblwgeom/g_box.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Change the gbox calculation for geodetic
+	  edges to use 3-space geometry instead of lots of transcendental
+	  functions. Much faster, much simpler, all regression tests pass.
 
-2012-10-25 06:00  robe
+2012-10-25 06:00  Regina Obe <lr at pcorp.us>
 
-	* revert release note changes see if it fixes doc build issue
+	* [r10557] doc/release_notes.xml: revert release note changes see
+	  if it fixes doc build issue
 
-2012-10-25 05:18  robe
+2012-10-25 05:18  Regina Obe <lr at pcorp.us>
 
-	* fix id again (maybe old conflicted with another id)
+	* [r10556] doc/using_raster_dataman.xml: fix id again (maybe old
+	  conflicted with another id)
 
-2012-10-25 04:12  robe
+2012-10-25 04:12  Regina Obe <lr at pcorp.us>
 
-	* fix chapter id doesn't follow our convention
+	* [r10554] doc/using_raster_dataman.xml: fix chapter id doesn't
+	  follow our convention
 
-2012-10-25 04:07  robe
+2012-10-25 04:07  Regina Obe <lr at pcorp.us>
 
-	* give release sections ids for easier reference
+	* [r10553] doc/release_notes.xml: give release sections ids for
+	  easier reference
 
-2012-10-24 22:22  dustymugs
+2012-10-24 22:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Preprocess input geometry for clipping raster by using the
-	  intersection
+	* [r10551] NEWS, raster/rt_pg/rtpostgis.sql.in.c: Preprocess input
+	  geometry for clipping raster by using the intersection
 	  of the input geometry and the convex hull of the raster. Ticket
 	  #1989
 
-2012-10-24 22:21  dustymugs
+2012-10-24 22:21  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added checks to rt_raster_gdal_rasterize() and RASTER_asRaster()
-	  where
+	* [r10550] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Added
+	  checks to rt_raster_gdal_rasterize() and RASTER_asRaster() where
 	  if input geometry is empty, return empty raster.
 
-2012-10-24 21:14  dustymugs
+2012-10-24 21:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Broke string for iowa hex into three parts so that doxygen
-	  doesn't choke
+	* [r10547] liblwgeom/cunit/cu_geodetic_data.h: Broke string for
+	  iowa hex into three parts so that doxygen doesn't choke
 
-2012-10-24 19:22  dustymugs
+2012-10-24 19:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Have ST_Tile() generate out-of-db tile bands if input raster's
-	  band is
+	* [r10546] doc/reference_raster.xml, raster/rt_pg/rt_pg.c: Have
+	  ST_Tile() generate out-of-db tile bands if input raster's band is
 	  out-of-db.
 
-2012-10-24 18:54  pramsey
+2012-10-24 18:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Whoops make sure the test macros match the library ones
+	* [r10545] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, liblwgeom/lwgeodetic_tree.c: Whoops make
+	  sure the test macros match the library ones
 
-2012-10-24 18:44  pramsey
+2012-10-24 18:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some debugging info to find failure in debbie
+	* [r10544] liblwgeom/cunit/cu_geodetic.c: Add some debugging info
+	  to find failure in debbie
 
-2012-10-24 18:28  pramsey
+2012-10-24 18:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add explicit tests for edge_intersects()
+	* [r10543] liblwgeom/cunit/cu_geodetic.c: Add explicit tests for
+	  edge_intersects()
 
-2012-10-24 17:26  pramsey
+2012-10-24 17:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move the distance calculation to also use the edge_intersects()
-	  function instead of edge_intersection()
+	* [r10542] liblwgeom/lwgeodetic.c: Move the distance calculation to
+	  also use the edge_intersects() function instead of
+	  edge_intersection()
 
-2012-10-24 16:31  dustymugs
+2012-10-24 16:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added "auto" option to -t switch where raster2pgsql can compute a
+	* [r10541] doc/using_raster_dataman.xml,
+	  raster/loader/raster2pgsql.c, raster/loader/raster2pgsql.h: Added
+	  "auto" option to -t switch where raster2pgsql can compute a
 	  usable
 	  tile size. Added warning message if generated tiles may cause
 	  memory
 	  issues.
 
-2012-10-24 03:41  robe
+2012-10-24 03:41  Regina Obe <lr at pcorp.us>
 
-	* minor adjustments to terminology to improve searchin
+	* [r10538] doc/reference_measure.xml,
+	  doc/using_postgis_dataman.xml: minor adjustments to terminology
+	  to improve searchin
 
-2012-10-23 23:59  dustymugs
+2012-10-23 23:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rearranged function arguments for ST_Tile(raster)
+	* [r10536] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/rt_tile.sql: Rearranged function arguments
+	  for ST_Tile(raster)
 
-2012-10-23 22:44  dustymugs
+2012-10-23 22:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added news and docs for ST_Tile(raster). Additional regression
-	  tests for
+	* [r10535] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/regress/rt_tile.sql,
+	  raster/test/regress/rt_tile_expected: Added news and docs for
+	  ST_Tile(raster). Additional regression tests for
 	  one additional variant of ST_Tile(raster)
 
-2012-10-23 22:44  dustymugs
+2012-10-23 22:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Tile() and regression tests. The circle is complete.
+	* [r10534] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in, raster/test/regress/rt_tile.sql,
+	  raster/test/regress/rt_tile_expected: Added ST_Tile() and
+	  regression tests. The circle is complete.
 
-2012-10-23 22:44  dustymugs
+2012-10-23 22:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_band_get_pixel_line() and regression tests
+	* [r10533] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Added rt_band_get_pixel_line() and
+	  regression tests
 
-2012-10-23 22:43  pramsey
+2012-10-23 22:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* (#2063) fix the vertex-crossing logic in the circular tree code
-	  to use the new edge_intersects routine
+	* [r10532] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeodetic_tree.c: (#2063) fix the vertex-crossing
+	  logic in the circular tree code to use the new edge_intersects
+	  routine
 
-2012-10-23 22:17  pramsey
+2012-10-23 22:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* (#2026) fix performance regression in geography distance
-	  calculation
+	* [r10531] NEWS, liblwgeom/g_box.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom.c,
+	  postgis/geography_measurement.c: (#2026) fix performance
+	  regression in geography distance calculation
 
-2012-10-23 21:18  pramsey
+2012-10-23 21:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* (#1976) Geography point-in-ring code overhauled for more
-	  reliability
+	* [r10527] NEWS, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: (#1976) Geography point-in-ring code
+	  overhauled for more reliability
 
-2012-10-23 13:46  dustymugs
+2012-10-23 13:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Make changes to reflect patch from #2061
+	* [r10526] doc/using_raster_dataman.xml: Make changes to reflect
+	  patch from #2061
 
-2012-10-23 04:56  pramsey
+2012-10-23 04:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Future test case for when we've solved p-i-p in generality
+	* [r10524] liblwgeom/cunit/cu_geodetic.c: Future test case for when
+	  we've solved p-i-p in generality
 
-2012-10-22 19:05  dustymugs
+2012-10-22 19:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix POSTGIS_RT_DEBUGF() usage
+	* [r10522] raster/rt_pg/rt_pg.c: Fix POSTGIS_RT_DEBUGF() usage
 
-2012-10-22 19:05  dustymugs
+2012-10-22 19:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed doxygen comment formats
+	* [r10521] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Fixed
+	  doxygen comment formats
 
-2012-10-22 17:20  dustymugs
+2012-10-22 17:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Remove unused variables.
+	* [r10520] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Remove
+	  unused variables.
 
-2012-10-22 17:20  dustymugs
+2012-10-22 17:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Cache frequently used variables minimize # of function calls in
+	* [r10519] raster/rt_core/rt_api.c: Cache frequently used variables
+	  minimize # of function calls in
 	  rt_raster_iterator()
 
-2012-10-22 17:20  dustymugs
+2012-10-22 17:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Include output from gdal-config --dep-libs when building
-	  raster2pgsql
+	* [r10518] configure.ac, raster/loader/Makefile.in: Include output
+	  from gdal-config --dep-libs when building raster2pgsql
 
-2012-10-22 17:19  dustymugs
+2012-10-22 17:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add news and doc changes to indicate proper support for raster
-	  band's
+	* [r10517] NEWS, doc/reference_raster.xml: Add news and doc changes
+	  to indicate proper support for raster band's
 	  "isnodata" support
 
-2012-10-22 17:19  dustymugs
+2012-10-22 17:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* have raster2pgsql check for raster bands being NODATA
+	* [r10516] raster/loader/raster2pgsql.c, raster/rt_core/rt_api.c:
+	  have raster2pgsql check for raster bands being NODATA
 
-2012-10-22 17:19  dustymugs
+2012-10-22 17:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Tweaked rt_band_check_is_nodata() to make use of
-	  rt_band_get_pixel()'s
+	* [r10515] raster/rt_core/rt_api.c: Tweaked
+	  rt_band_check_is_nodata() to make use of rt_band_get_pixel()'s
 	  ability to return flag indicating if value is NODATA
 
-2012-10-22 17:19  dustymugs
+2012-10-22 17:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Final fixes to support band's isnodata flag.
+	* [r10514] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Final
+	  fixes to support band's isnodata flag.
 
-2012-10-22 17:19  dustymugs
+2012-10-22 17:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* All functions in core API now support a band's isnodata value.
+	* [r10513] raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_mapalgebrafct.sql,
+	  raster/test/regress/rt_mapalgebrafct_expected,
+	  raster/test/regress/rt_pixelvalue_expected: All functions in core
+	  API now support a band's isnodata value.
 
-2012-10-22 17:19  dustymugs
+2012-10-22 17:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed signature of rt_band_get_nodata() as there was no way to
+	* [r10512] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c,
+	  raster/test/core/testwkb.c,
+	  raster/test/regress/rt_pixelvalue_expected: Changed signature of
+	  rt_band_get_nodata() as there was no way to
 	  indicate an error if the band has no NODATA.
 
-2012-10-22 17:19  dustymugs
+2012-10-22 17:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Some work adding proper support for using a band's isnodata flag.
+	* [r10511] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/regress/rt_pixelvalue_expected: Some work adding
+	  proper support for using a band's isnodata flag.
 
-2012-10-22 17:19  dustymugs
+2012-10-22 17:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed function signature for core API function
-	  rt_band_get_pixel() to
+	* [r10510] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c,
+	  raster/test/core/testwkb.c: Changed function signature for core
+	  API function rt_band_get_pixel() to
 	  indicate if pixel is NODATA
 
-2012-10-22 17:18  dustymugs
+2012-10-22 17:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor changes to references to raster2pgsql
+	* [r10509] doc/reference_raster.xml: Minor changes to references to
+	  raster2pgsql
 
-2012-10-21 23:53  robe
+2012-10-21 23:53  Regina Obe <lr at pcorp.us>
 
-	* update crowd funding details
+	* [r10506] doc/introduction.xml: update crowd funding details
 
-2012-10-21 18:02  strk
+2012-10-21 18:02  Sandro Santilli <strk at keybit.net>
 
-	* Fix GetTopoGeomElementArray(TopoGeometry) function, and add test
+	* [r10502] topology/test/regress/gettopogeomelements.sql,
+	  topology/test/regress/gettopogeomelements_expected,
+	  topology/topology.sql.in.c: Fix
+	  GetTopoGeomElementArray(TopoGeometry) function, and add test
 	  
 	  See http://trac.osgeo.org/postgis/ticket/2060
 
-2012-10-20 21:07  robe
+2012-10-20 21:07  Regina Obe <lr at pcorp.us>
 
-	* fix headeer and description
+	* [r10492] doc/xsl/postgis_reference.xml.xsl: fix headeer and
+	  description
 
-2012-10-19 22:20  pramsey
+2012-10-19 22:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Wrap NEWS to 80cols
+	* [r10488] NEWS: Wrap NEWS to 80cols
 
-2012-10-19 18:51  dustymugs
+2012-10-19 18:51  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added to news regarding ticket #2057
+	* [r10487] NEWS: Added to news regarding ticket #2057
 
-2012-10-19 18:49  dustymugs
+2012-10-19 18:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add variables specifying PostgreSQL CPPFLAGS and LDFLAGS.
+	* [r10485] raster/loader/Makefile.in: Add variables specifying
+	  PostgreSQL CPPFLAGS and LDFLAGS.
 	  Ticket is #2057
 
-2012-10-19 01:36  dustymugs
+2012-10-19 01:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Forgot to wrap tags with <para></para> in reference_raster.xml.
-	  Minor
+	* [r10479] doc/reference_raster.xml, raster/rt_pg/rt_pg.c: Forgot
+	  to wrap tags with <para></para> in reference_raster.xml. Minor
 	  comment cleanup in rt_pg.c
 
-2012-10-19 00:27  dustymugs
+2012-10-19 00:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed annoyances in the raster docs
-
-2012-10-18 23:52  dustymugs
+	* [r10478] doc/reference_raster.xml: Fixed annoyances in the raster
+	  docs
 
-	* Combined the gist spatial relationship tests into
+2012-10-18 23:52  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r10474] raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_above.sql,
+	  raster/test/regress/rt_above_expected,
+	  raster/test/regress/rt_below.sql,
+	  raster/test/regress/rt_below_expected,
+	  raster/test/regress/rt_contain.sql,
+	  raster/test/regress/rt_contain_expected,
+	  raster/test/regress/rt_contained.sql,
+	  raster/test/regress/rt_contained_expected,
+	  raster/test/regress/rt_gist_relationships.sql,
+	  raster/test/regress/rt_gist_relationships_expected,
+	  raster/test/regress/rt_left.sql,
+	  raster/test/regress/rt_left_expected,
+	  raster/test/regress/rt_overabove.sql,
+	  raster/test/regress/rt_overabove_expected,
+	  raster/test/regress/rt_overbelow.sql,
+	  raster/test/regress/rt_overbelow_expected,
+	  raster/test/regress/rt_overlap.sql,
+	  raster/test/regress/rt_overlap_expected,
+	  raster/test/regress/rt_overleft.sql,
+	  raster/test/regress/rt_overleft_expected,
+	  raster/test/regress/rt_overright.sql,
+	  raster/test/regress/rt_overright_expected,
+	  raster/test/regress/rt_right.sql,
+	  raster/test/regress/rt_right_expected,
+	  raster/test/regress/rt_same.sql,
+	  raster/test/regress/rt_same_expected: Combined the gist spatial
+	  relationship tests into
 	  rt_gist_relationships
 
-2012-10-18 23:52  dustymugs
-
-	* Combined all raster GEOS dependent spatial relationship
-	  regression tests into
+2012-10-18 23:52  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r10473] raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_contains.sql,
+	  raster/test/regress/rt_contains_expected,
+	  raster/test/regress/rt_containsproperly.sql,
+	  raster/test/regress/rt_containsproperly_expected,
+	  raster/test/regress/rt_coveredby.sql,
+	  raster/test/regress/rt_coveredby_expected,
+	  raster/test/regress/rt_covers.sql,
+	  raster/test/regress/rt_covers_expected,
+	  raster/test/regress/rt_dfullywithin.sql,
+	  raster/test/regress/rt_dfullywithin_expected,
+	  raster/test/regress/rt_disjoint.sql,
+	  raster/test/regress/rt_disjoint_expected,
+	  raster/test/regress/rt_dwithin.sql,
+	  raster/test/regress/rt_dwithin_expected,
+	  raster/test/regress/rt_geos_relationships.sql,
+	  raster/test/regress/rt_geos_relationships_expected,
+	  raster/test/regress/rt_overlaps.sql,
+	  raster/test/regress/rt_overlaps_expected,
+	  raster/test/regress/rt_touches.sql,
+	  raster/test/regress/rt_touches_expected,
+	  raster/test/regress/rt_within.sql,
+	  raster/test/regress/rt_within_expected: Combined all raster GEOS
+	  dependent spatial relationship regression tests into
 	  rt_geos_relationships.sql
 
-2012-10-18 21:45  dustymugs
+2012-10-18 21:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Clamp SRID when comparing SRIDs of raster vs geometry for geomval
+	* [r10469] raster/rt_pg/rt_pg.c: Clamp SRID when comparing SRIDs of
+	  raster vs geometry for geomval
 	  variant of ST_SetValues()
 
-2012-10-18 21:45  dustymugs
+2012-10-18 21:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for geomval variant of ST_SetValues
+	* [r10468] doc/reference_raster.xml: Added docs for geomval variant
+	  of ST_SetValues
 
-2012-10-18 21:45  dustymugs
+2012-10-18 21:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add news items regarding changes to ST_SetValue and addition of
+	* [r10467] NEWS: Add news items regarding changes to ST_SetValue
+	  and addition of
 	  geomval variant of ST_SetValues()
 
-2012-10-18 21:45  dustymugs
+2012-10-18 21:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code cleanup in rt_pg/rt_pg.c. Changed point geometry variant of
+	* [r10466] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/rt_pixelvalue.sql,
+	  raster/test/regress/rt_setvalues_geomval.sql: Code cleanup in
+	  rt_pg/rt_pg.c. Changed point geometry variant of
 	  ST_SetValue() to wrap around geomval variant of ST_SetValues().
 	  This
 	  will result in a behavior change for geometry variant of
 	  ST_SetValue().
 
-2012-10-18 21:45  dustymugs
+2012-10-18 21:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of geomval variants of ST_SetValues() and regression
-	  tests.
+	* [r10465] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_setvalues_geomval.sql,
+	  raster/test/regress/rt_setvalues_geomval_expected: Addition of
+	  geomval variants of ST_SetValues() and regression tests.
 	  Added helper function
 	  rt_raster_get_inverse_geotransform_matrix().
 	  Additional code cleanup for rt_raster_geopoint_to_cell() and
 	  rt_raster_cell_to_geopoint().
 
-2012-10-18 14:47  robe
+2012-10-18 14:47  Regina Obe <lr at pcorp.us>
 
-	* script to concatenate all the sections of postgis doc for easier
-	  digestion of postgis expert bot
+	* [r10461] doc/xsl/postgis_reference.xml.xsl: script to concatenate
+	  all the sections of postgis doc for easier digestion of postgis
+	  expert bot
 
-2012-10-17 19:30  dustymugs
+2012-10-17 19:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Correct usage of memset()
+	* [r10460] raster/rt_pg/rt_pg.c: Correct usage of memset()
 
-2012-10-17 19:30  dustymugs
+2012-10-17 19:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Cleanup description for ST_SetValues()
+	* [r10459] doc/reference_raster.xml: Cleanup description for
+	  ST_SetValues()
 
-2012-10-17 16:08  dustymugs
+2012-10-17 16:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added items to NEWS and docs for ST_DumpValues
+	* [r10458] NEWS, doc/reference_raster.xml: Added items to NEWS and
+	  docs for ST_DumpValues
 
-2012-10-17 16:08  dustymugs
+2012-10-17 16:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_DumpValues() and regression tests. Ticket #2011
+	* [r10457] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_dumpvalues.sql,
+	  raster/test/regress/rt_dumpvalues_expected: Addition of
+	  ST_DumpValues() and regression tests. Ticket #2011
 
-2012-10-17 14:29  dustymugs
+2012-10-17 14:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add fallback method of getting maximum extent for extent
-	  constraint.
+	* [r10455] raster/rt_pg/rtpostgis.sql.in.c: Add fallback method of
+	  getting maximum extent for extent constraint.
 	  Ticket is #2050
 
-2012-10-17 14:16  strk
+2012-10-17 14:16  Sandro Santilli <strk at keybit.net>
 
-	* Move trim_trailing_zeros out of liblwgeom.h (#2054)
+	* [r10454] liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h: Move trim_trailing_zeros out of
+	  liblwgeom.h (#2054)
 
-2012-10-17 13:38  strk
+2012-10-17 13:38  Sandro Santilli <strk at keybit.net>
 
-	* Get OUT_* export macros out of liblwgeom.h (#2053)
+	* [r10453] liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c: Get OUT_* export macros out of
+	  liblwgeom.h (#2053)
 
-2012-10-17 11:43  strk
+2012-10-17 11:43  Sandro Santilli <strk at keybit.net>
 
-	* Do not print more digits than available from lwgeom_to_geojson
+	* [r10451] liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/lwout_geojson.c, liblwgeom/lwutil.c: Do not print more
+	  digits than available from lwgeom_to_geojson
 	  
 	  See http://trac.osgeo.org/postgis/ticket/2051
 	  Adds tests for the ticket cases.
 
-2012-10-17 09:52  strk
+2012-10-17 09:52  Sandro Santilli <strk at keybit.net>
 
-	* It is OUT_MAX_DOUBLE_PRECISION, not OUT_MAX_DIGS_DOUBLE, we
-	  should use
+	* [r10449] liblwgeom/lwout_geojson.c: It is
+	  OUT_MAX_DOUBLE_PRECISION, not OUT_MAX_DIGS_DOUBLE, we should use
 	  
 	  These macros should really get out of liblwgeom.h and be properly
 	  documented...
 
-2012-10-17 09:45  strk
+2012-10-17 09:45  Sandro Santilli <strk at keybit.net>
 
-	* Fix buffer overflow in lwgeom_to_geojson (#2052)
+	* [r10448] liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/lwout_geojson.c: Fix buffer overflow in
+	  lwgeom_to_geojson (#2052)
 
-2012-10-16 20:59  dustymugs
+2012-10-16 20:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added optional interpolate_nodata flag as function parameter to
-	  ST_HillShade,
+	* [r10445] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Added optional
+	  interpolate_nodata flag as function parameter to ST_HillShade,
 	  ST_Aspect and ST_Slope.
 
-2012-10-16 20:42  strk
+2012-10-16 20:42  Sandro Santilli <strk at keybit.net>
 
-	* Do not abort populate_geometry_columns when table can't be
-	  altered
+	* [r10444] postgis/postgis.sql.in.c: Do not abort
+	  populate_geometry_columns when table can't be altered
 	  
 	  Also print the reason for the limitation. See #2049.
 
-2012-10-16 20:17  dustymugs
+2012-10-16 20:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed xml issues that are making debbie mad.
+	* [r10443] doc/reference_raster.xml: Fixed xml issues that are
+	  making debbie mad.
 
-2012-10-16 19:55  dustymugs
+2012-10-16 19:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added news blurb and docs regarding expression variants of
+	* [r10442] NEWS, doc/reference_raster.xml: Added news blurb and
+	  docs regarding expression variants of
 	  ST_MapAlgebra.
 
-2012-10-16 19:55  dustymugs
+2012-10-16 19:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added 2-raster expression variant of ST_MapAlgebra() and
-	  regression
+	* [r10441] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebra_expr.sql,
+	  raster/test/regress/rt_mapalgebra_expr_expected: Added 2-raster
+	  expression variant of ST_MapAlgebra() and regression
 	  tests.
 
-2012-10-16 19:55  dustymugs
+2012-10-16 19:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional tweaking of returning empty raster from map algebra of
+	* [r10440] raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_mapalgebra_expected: Additional tweaking
+	  of returning empty raster from map algebra of
 	  INTERSECTION or UNION extent
 
-2012-10-16 19:55  dustymugs
+2012-10-16 19:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Corrected handling of NULL raster resulting from NO intersection
-	  of input rasters in map algebra. Fixed spelling mistakes.
-	  Additional tests for intersections of more than 3 rasters that
-	  don't actually intersect in ST_MapAlgebra
+	* [r10439] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebra.sql,
+	  raster/test/regress/rt_mapalgebra_expected: Corrected handling of
+	  NULL raster resulting from NO intersection of input rasters in
+	  map algebra. Fixed spelling mistakes. Additional tests for
+	  intersections of more than 3 rasters that don't actually
+	  intersect in ST_MapAlgebra
 
-2012-10-16 19:55  dustymugs
+2012-10-16 19:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added one-raster expression variant for ST_MapAlgebra and
-	  appropriate
+	* [r10438] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_mapalgebra_expr.sql,
+	  raster/test/regress/rt_mapalgebra_expr_expected: Added one-raster
+	  expression variant for ST_MapAlgebra and appropriate
 	  regression tests.
 
-2012-10-16 16:08  strk
+2012-10-16 16:08  Sandro Santilli <strk at keybit.net>
 
-	* Enhance documentation about TopoElement domain
+	* [r10437] doc/extras_topology.xml: Enhance documentation about
+	  TopoElement domain
 
-2012-10-16 16:07  strk
+2012-10-16 16:07  Sandro Santilli <strk at keybit.net>
 
-	* tweak DEBUG line
+	* [r10436] postgis/postgis.sql.in.c: tweak DEBUG line
 
-2012-10-16 08:29  strk
+2012-10-16 08:29  Sandro Santilli <strk at keybit.net>
 
-	* Improve TopologySummary output
+	* [r10435] NEWS, topology/sql/manage/TopologySummary.sql.in.c:
+	  Improve TopologySummary output
 	  
 	  Add unregistered layers and orphaned TopoGeom count
 
-2012-10-16 08:29  strk
+2012-10-16 08:29  Sandro Santilli <strk at keybit.net>
 
-	* Have TopologySummary use the word "Mixed" for collection layers
+	* [r10434] topology/sql/manage/TopologySummary.sql.in.c: Have
+	  TopologySummary use the word "Mixed" for collection layers
 
-2012-10-15 19:21  dustymugs
+2012-10-15 19:21  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed incorrect use of RASTER_DEBUGF().
+	* [r10432] raster/rt_core/rt_api.c: Fixed incorrect use of
+	  RASTER_DEBUGF().
 
-2012-10-15 14:48  dustymugs
+2012-10-15 14:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* More poking at the docs for ST_MapAlgebra
+	* [r10431] doc/reference_raster.xml: More poking at the docs for
+	  ST_MapAlgebra
 
-2012-10-15 14:20  dustymugs
+2012-10-15 14:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add another example of ST_MapAlgebra() and some formatting
-	  cleanup
+	* [r10430] doc/reference_raster.xml: Add another example of
+	  ST_MapAlgebra() and some formatting cleanup
 
-2012-10-15 03:34  dustymugs
+2012-10-15 03:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed how ST_MapAlgebra regression test runs on PostgreSQL 9.0
-	  as
+	* [r10429] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebra.sql,
+	  raster/test/regress/rt_mapalgebra_expected: Changed how
+	  ST_MapAlgebra regression test runs on PostgreSQL 9.0 as
 	  usage of "GROUP BY raster" does not work. Ticket is #2048.
 
-2012-10-14 05:40  robe
+2012-10-14 05:40  Regina Obe <lr at pcorp.us>
 
-	* #2046: fix 2.1 doesn't compile with postgresql 9.0
+	* [r10428] raster/rt_pg/rt_pg.c: #2046: fix 2.1 doesn't compile
+	  with postgresql 9.0
 
-2012-10-14 05:13  robe
+2012-10-14 05:13  Regina Obe <lr at pcorp.us>
 
-	* updategeometrysrid was describing old behavior. Update to new and
-	  provide alternative syntax
+	* [r10427] doc/reference_management.xml: updategeometrysrid was
+	  describing old behavior. Update to new and provide alternative
+	  syntax
 
-2012-10-12 20:06  pramsey
+2012-10-12 20:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove odd srs error line from expected
+	* [r10425] regress/tickets_expected: Remove odd srs error line from
+	  expected
 
-2012-10-12 19:49  pramsey
+2012-10-12 19:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reduce precision test to 1cm2. There is no doubt that this
-	  approach is less numerically stable than the last. (#2043) Though
-	  in exchange, it covers the globe more completely.
+	* [r10424] liblwgeom/cunit/cu_geodetic.c: Reduce precision test to
+	  1cm2. There is no doubt that this approach is less numerically
+	  stable than the last. (#2043) Though in exchange, it covers the
+	  globe more completely.
 
-2012-10-12 19:32  pramsey
+2012-10-12 19:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reduce the precision of the double test... it passes here..
-	  (#2043)
+	* [r10423] liblwgeom/cunit/cu_geodetic.c: Reduce the precision of
+	  the double test... it passes here.. (#2043)
 
-2012-10-12 19:31  dustymugs
+2012-10-12 19:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Bug fix where pos array size was incorrect.
+	* [r10422] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebra_expected: Bug fix where pos
+	  array size was incorrect.
 
-2012-10-12 19:31  dustymugs
+2012-10-12 19:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed warning block for ST_MapAlgebra() doc page. Rearranged
-	  warning boxes
+	* [r10421] doc/reference_raster.xml: Removed warning block for
+	  ST_MapAlgebra() doc page. Rearranged warning boxes
 
-2012-10-12 16:06  dustymugs
+2012-10-12 16:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* More documentation changes regarding deprecation status of
+	* [r10420] NEWS, doc/reference_raster.xml: More documentation
+	  changes regarding deprecation status of
 	  ST_MapAlgebraFct() variants. Added news item regarding
 	  deprecation status of ST_MapAlgebraFct and ST_MapAlgebraFctNgb
 	  variants
 
-2012-10-12 16:06  dustymugs
+2012-10-12 16:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Duplicated and refactored the ST_XXX4ma() functions for
-	  ST_MapAlgebra
+	* [r10419] doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_4ma.sql,
+	  raster/test/regress/rt_4ma_expected,
+	  raster/test/regress/rt_invdistweight4ma.sql,
+	  raster/test/regress/rt_invdistweight4ma_expected: Duplicated and
+	  refactored the ST_XXX4ma() functions for ST_MapAlgebra
 	  usage. Exception for ST_InvDistWeight4ma() and ST_MinDist4ma(),
 	  both of
 	  which are new for 2.1. Added regression tests as well.
 
-2012-10-12 15:20  strk
+2012-10-12 15:20  Sandro Santilli <strk at keybit.net>
 
-	* Exit with non-zero code when commandline is malformed
+	* [r10418] loader/pgsql2shp-cli.c: Exit with non-zero code when
+	  commandline is malformed
 	  
 	  It still exists with zero code when user explictly asks for the
 	  help screen (with -? as documented and with no switch as popular
 	  habit [well, mine])
 
-2012-10-12 14:26  strk
+2012-10-12 14:26  Sandro Santilli <strk at keybit.net>
 
-	* Add pdf-localized rule for building localized pdf manual
+	* [r10417] doc/Makefile.in: Add pdf-localized rule for building
+	  localized pdf manual
 
-2012-10-12 14:06  strk
+2012-10-12 14:06  Sandro Santilli <strk at keybit.net>
 
-	* Ignoring generated files in tiger_geocoder extension
+	* [r10416] .gitignore: Ignoring generated files in tiger_geocoder
+	  extension
 
-2012-10-12 08:40  strk
+2012-10-12 08:40  Sandro Santilli <strk at keybit.net>
 
-	* Fix compiler warnings in lwgeom_geos.c
+	* [r10415] liblwgeom/lwgeom_geos.c: Fix compiler warnings in
+	  lwgeom_geos.c
 
-2012-10-12 08:34  strk
+2012-10-12 08:34  Sandro Santilli <strk at keybit.net>
 
-	* Fix a "set but not used" warning.
+	* [r10414] liblwgeom/lwalgorithm.c: Fix a "set but not used"
+	  warning.
 	  
 	  This was about the return from getPoint2d_p, but it really only
 	  returns zero on error and after lwerror was called, and only if
 	  a PARANOIA compile time macro is set...
 
-2012-10-12 08:27  strk
+2012-10-12 08:27  Sandro Santilli <strk at keybit.net>
 
-	* Fix ptarray_area_sphere signature (#2040)
+	* [r10413] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h: Fix
+	  ptarray_area_sphere signature (#2040)
 	  
 	  Since I was a it I also removed a "set but not used" warning.
 
-2012-10-12 07:50  strk
+2012-10-12 07:50  Sandro Santilli <strk at keybit.net>
 
-	* Update po files after changes in installation.xml
+	* [r10412] doc/po/it_IT/installation.xml.po,
+	  doc/po/pt_BR/installation.xml.po,
+	  doc/po/templates/installation.xml.pot: Update po files after
+	  changes in installation.xml
 
-2012-10-12 07:49  strk
+2012-10-12 07:49  Sandro Santilli <strk at keybit.net>
 
-	* Add more uses of <command> and <filename> in installation.xml
+	* [r10411] doc/installation.xml: Add more uses of <command> and
+	  <filename> in installation.xml
 	  
 	  Also fixes a missing dash in "make comments-install"
 
-2012-10-12 07:49  strk
+2012-10-12 07:49  Sandro Santilli <strk at keybit.net>
 
-	* Put <comment> tags in <para>, fixing #2041
+	* [r10410] doc/installation.xml: Put <comment> tags in <para>,
+	  fixing #2041
 
-2012-10-12 07:20  strk
+2012-10-12 07:20  Sandro Santilli <strk at keybit.net>
 
-	* Consistently use <command> tag for "make comments"
+	* [r10409] doc/installation.xml, doc/po/it_IT/installation.xml.po,
+	  doc/po/pt_BR/installation.xml.po,
+	  doc/po/templates/installation.xml.pot: Consistently use <command>
+	  tag for "make comments"
 	  
 	  Fixes complains by msgmerge (internationalization)
 
-2012-10-11 22:48  pramsey
+2012-10-11 22:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Improve support for ST_Area(geography) over dateline and poles
-	  (#2006, #2039)
+	* [r10407] NEWS, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/lwgeodetic.c, regress/tickets.sql,
+	  regress/tickets_expected: Improve support for ST_Area(geography)
+	  over dateline and poles (#2006, #2039)
 
-2012-10-11 21:44  strk
+2012-10-11 21:44  Sandro Santilli <strk at keybit.net>
 
-	* Translation of intruduction.xml to pt_BR by George Silva
+	* [r10406] doc/po/pt_BR/introduction.xml.po: Translation of
+	  intruduction.xml to pt_BR by George Silva
 
-2012-10-11 21:41  strk
+2012-10-11 21:41  Sandro Santilli <strk at keybit.net>
 
-	* Update po files
+	* [r10405] doc/po/it_IT/extras_tigergeocoder.xml.po,
+	  doc/po/it_IT/extras_topology.xml.po,
+	  doc/po/it_IT/reference_measure.xml.po,
+	  doc/po/it_IT/reference_raster.xml.po,
+	  doc/po/pt_BR/extras_tigergeocoder.xml.po,
+	  doc/po/pt_BR/extras_topology.xml.po,
+	  doc/po/pt_BR/reference_measure.xml.po,
+	  doc/po/pt_BR/reference_raster.xml.po,
+	  doc/po/templates/extras_tigergeocoder.xml.pot,
+	  doc/po/templates/extras_topology.xml.pot,
+	  doc/po/templates/reference_measure.xml.pot,
+	  doc/po/templates/reference_raster.xml.pot: Update po files
 
-2012-10-11 17:29  pramsey
+2012-10-11 17:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move area core calculation to ptarray.
+	* [r10404] liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwpoly.c,
+	  liblwgeom/measures.c, liblwgeom/ptarray.c: Move area core
+	  calculation to ptarray.
 
-2012-10-11 17:29  pramsey
+2012-10-11 17:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore build artifacts from geocoder
+	* [r10403] extensions/postgis_tiger_geocoder,
+	  extensions/postgis_tiger_geocoder/sql,
+	  extensions/postgis_tiger_geocoder/sql_bits: Ignore build
+	  artifacts from geocoder
 
-2012-10-11 17:07  strk
+2012-10-11 17:07  Sandro Santilli <strk at keybit.net>
 
-	* Simplify description of TopoElementArray
+	* [r10401] doc/extras_topology.xml: Simplify description of
+	  TopoElementArray
 	  
 	  ... and add TopoElement link to See Also section (things are
 	  better
 	  explained in there).
 
-2012-10-11 15:23  robe
+2012-10-11 15:23  Regina Obe <lr at pcorp.us>
 
-	* Get rid of hard-coded paths
+	* [r10400] extensions/postgis_tiger_geocoder/Makefile.in: Get rid
+	  of hard-coded paths
 
-2012-10-11 10:53  strk
+2012-10-11 10:53  Sandro Santilli <strk at keybit.net>
 
-	* Update json-c url
+	* [r10399] README.postgis: Update json-c url
 
-2012-10-10 23:06  robe
+2012-10-10 23:06  Regina Obe <lr at pcorp.us>
 
-	* create norm_addy
+	* [r10397]
+	  extensions/postgis_tiger_geocoder/sql_bits/norm_addy_create.sql.in:
+	  create norm_addy
 
-2012-10-10 22:59  robe
+2012-10-10 22:59  Regina Obe <lr at pcorp.us>
 
-	* #1627 : more cleanup of extension install, add configure of tiger
+	* [r10396] configure.ac, doc/extras_tigergeocoder.xml,
+	  extensions/Makefile.in,
+	  extensions/postgis_tiger_geocoder/Makefile.in,
+	  extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control.in:
+	  #1627 : more cleanup of extension install, add configure of tiger
 	  extension script to configure.ac. Fix comment in tiger comments
 	  preventing install
 
-2012-10-10 22:41  dustymugs
+2012-10-10 22:41  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added missing Availability details for various raster docs.
+	* [r10395] doc/reference_raster.xml: Added missing Availability
+	  details for various raster docs.
 	  Ticket is #2037
 
-2012-10-10 22:30  robe
+2012-10-10 22:30  Regina Obe <lr at pcorp.us>
 
-	* fix error in index column name picked up when trying to install
+	* [r10394]
+	  extras/tiger_geocoder/tiger_2011/tables/lookup_tables_2011.sql:
+	  fix error in index column name picked up when trying to install
 	  as extension
 
-2012-10-10 22:06  robe
+2012-10-10 22:06  Regina Obe <lr at pcorp.us>
 
-	* #2037: flag some new raster functions as new in this release. Hmm
-	  I merged hopefully didn't screw things up
+	* [r10393] doc/reference_raster.xml: #2037: flag some new raster
+	  functions as new in this release. Hmm I merged hopefully didn't
+	  screw things up
 
-2012-10-10 22:02  dustymugs
+2012-10-10 22:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added n-raster ST_MapAlgebra(). Additional error checking in
+	* [r10392] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_mapalgebra.sql,
+	  raster/test/regress/rt_mapalgebra_expected,
+	  raster/test/regress/rt_union_expected: Added n-raster
+	  ST_MapAlgebra(). Additional error checking in
 	  rt_raster_iterator(). Added regression checks for n-raster
 	  ST_MapAlgebra(). Ticket is #2030. Added news and docs for
 	  ST_MapAlgebra().
 
-2012-10-10 21:45  robe
+2012-10-10 21:45  Regina Obe <lr at pcorp.us>
 
-	* Just enough to make it compile but doesn't work yet
+	* [r10391] extensions/postgis_tiger_geocoder/Makefile.in,
+	  extensions/postgis_tiger_geocoder/sql,
+	  extensions/postgis_tiger_geocoder/sql_bits/mark_editable_objects.sql.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in:
+	  Just enough to make it compile but doesn't work yet
 
-2012-10-10 00:00  pramsey
+2012-10-10 00:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in arc ptarray vs ptarray and arc ptarray vs arc ptarray
-	  distance functions. (#2018)
+	* [r10390] liblwgeom/cunit/cu_measures.c, liblwgeom/measures.c,
+	  liblwgeom/measures.h: Add in arc ptarray vs ptarray and arc
+	  ptarray vs arc ptarray distance functions. (#2018)
 
-2012-10-09 23:12  dustymugs
+2012-10-09 23:12  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added HASH opclass and = operator for raster. This permits GROUP
-	  BY
+	* [r10389] raster/rt_pg/rtpostgis.sql.in.c: Added HASH opclass and
+	  = operator for raster. This permits GROUP BY
 	  raster usage.
 
-2012-10-09 23:12  dustymugs
+2012-10-09 23:12  Bborie Park <bkpark at ucdavis.edu>
 
-	* Syntax cleanup
+	* [r10388] raster/rt_pg/rt_pg.c: Syntax cleanup
 
-2012-10-09 22:48  pramsey
+2012-10-09 22:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in arc ptarray vs point distance function (#2018)
+	* [r10387] liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_ptarray.c, liblwgeom/measures.c,
+	  liblwgeom/measures.h: Add in arc ptarray vs point distance
+	  function (#2018)
 
-2012-10-09 22:04  pramsey
+2012-10-09 22:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix comment per rcoup
+	* [r10386] postgis/gserialized_typmod.c: Fix comment per rcoup
 
-2012-10-09 21:48  pramsey
+2012-10-09 21:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix up some errors in ptarray_arc iteration and the cunit test
-	  cases for arc p-i-p. (#2018)
+	* [r10385] liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/measures.c, liblwgeom/ptarray.c: Fix up some errors in
+	  ptarray_arc iteration and the cunit test cases for arc p-i-p.
+	  (#2018)
 
-2012-10-09 17:49  pramsey
+2012-10-09 17:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Point-in-polygon function for arc-based point-arrays. (#2018)
+	* [r10384] liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/ptarray.c: Point-in-polygon function for arc-based
+	  point-arrays. (#2018)
 
-2012-10-09 05:06  robe
+2012-10-09 05:06  Regina Obe <lr at pcorp.us>
 
-	* #1627: Start work on packaging as an extension -- it's not
-	  functioning yet
+	* [r10383] extensions/postgis_tiger_geocoder,
+	  extensions/postgis_tiger_geocoder/META.json,
+	  extensions/postgis_tiger_geocoder/Makefile.in,
+	  extensions/postgis_tiger_geocoder/doc,
+	  extensions/postgis_tiger_geocoder/doc/postgis_tiger_geocoder.md,
+	  extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control.in,
+	  extensions/postgis_tiger_geocoder/sql_bits: #1627: Start work on
+	  packaging as an extension -- it's not functioning yet
 
-2012-10-05 19:26  strk
+2012-10-05 19:26  Sandro Santilli <strk at keybit.net>
 
-	* Fix adding a splitting point into a 2.5d topology (#2033)
+	* [r10381] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addpoint.sql,
+	  topology/test/regress/topogeo_addpoint_expected: Fix adding a
+	  splitting point into a 2.5d topology (#2033)
 
-2012-10-05 19:22  robe
+2012-10-05 19:22  Regina Obe <lr at pcorp.us>
 
-	* link to ST_3DClosestPoint from ST_ClosestPoint. Some people
-	  didn't notice we had a 3D variant and looked in the wrong place.
+	* [r10379] doc/reference_measure.xml: link to ST_3DClosestPoint
+	  from ST_ClosestPoint. Some people didn't notice we had a 3D
+	  variant and looked in the wrong place.
 
-2012-10-05 12:25  robe
+2012-10-05 12:25  Regina Obe <lr at pcorp.us>
 
-	* #2027: change order of operation -- have cleanup happen first
-	  since the drop sometimes tries to drop functions that use types
-	  that don't exist in older versions
+	* [r10377] raster/rt_pg/Makefile.in: #2027: change order of
+	  operation -- have cleanup happen first since the drop sometimes
+	  tries to drop functions that use types that don't exist in older
+	  versions
 
-2012-10-04 04:08  robe
+2012-10-04 04:08  Regina Obe <lr at pcorp.us>
 
-	* update st_union examples (single should always specify band
-	  number to be safe) and all bands can be done now with just union
+	* [r10374] doc/reference_raster.xml: update st_union examples
+	  (single should always specify band number to be safe) and all
+	  bands can be done now with just union
 
-2012-10-03 23:07  dustymugs
+2012-10-03 23:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of flag nbnodata to rt_raster_iterator() thus allowing
-	  some
+	* [r10373] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Addition of
+	  flag nbnodata to rt_raster_iterator() thus allowing some
 	  memory savings from ST_Union(raster)
 
-2012-10-03 21:03  dustymugs
+2012-10-03 21:03  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated NEWS and docs regarding ST_Union(raster) behavior change.
+	* [r10372] NEWS, doc/reference_raster.xml: Updated NEWS and docs
+	  regarding ST_Union(raster) behavior change.
 
-2012-10-03 20:53  dustymugs
+2012-10-03 20:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Tweak what value to initialize new band to when NODATA isn't
-	  present
+	* [r10371] raster/rt_pg/rt_pg.c: Tweak what value to initialize new
+	  band to when NODATA isn't present
 
-2012-10-03 20:53  dustymugs
+2012-10-03 20:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_Union(raster) function and regression tests
+	* [r10370] raster/rt_pg/rt_pg.c, raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected: Addition of
+	  ST_Union(raster) function and regression tests
 
-2012-10-03 20:53  dustymugs
+2012-10-03 20:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added regression test for rt_raster_clone() and added missing
+	* [r10369] raster/rt_core/rt_api.c, raster/test/core/testapi.c:
+	  Added regression test for rt_raster_clone() and added missing
 	  SRID copy.
 
-2012-10-03 20:53  dustymugs
+2012-10-03 20:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of shortcut function rt_raster_clone()
+	* [r10368] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h:
+	  Addition of shortcut function rt_raster_clone()
 
-2012-10-03 16:06  robe
+2012-10-03 16:06  Regina Obe <lr at pcorp.us>
 
-	* update unpackaged to include new raster (e.g. unionarg)
+	* [r10367] extensions/postgis/sql_bits/postgis--unpackaged.sql.in:
+	  update unpackaged to include new raster (e.g. unionarg)
 
-2012-10-03 14:33  robe
+2012-10-03 14:33  Regina Obe <lr at pcorp.us>
 
-	* #2027: Add unionarg
+	* [r10366] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c: #2027:
+	  Add unionarg
 
-2012-10-03 06:16  strk
+2012-10-03 06:16  Sandro Santilli <strk at keybit.net>
 
-	* ST_AddEdge*: make update of old face edges more robust (#2025)
+	* [r10365] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_addedgemodface.sql,
+	  topology/test/regress/st_addedgemodface_expected,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: ST_AddEdge*:
+	  make update of old face edges more robust (#2025)
 	  
 	  Include tests for adding an edge that splits an hole in a face
 	  while forming a left ring which constitutes an invalid polygon
@@ -6136,928 +14552,1357 @@
 	  Also fixes one case of invalid topology creation (when the formed
 	  ring has a dangling edge but not a new area on the other side).
 
-2012-10-03 06:08  robe
+2012-10-03 06:08  Regina Obe <lr at pcorp.us>
 
-	* oops forgot to finish the changed statement
+	* [r10363] doc/reference_raster.xml: oops forgot to finish the
+	  changed statement
 
-2012-10-03 06:06  robe
+2012-10-03 06:06  Regina Obe <lr at pcorp.us>
 
-	* revise st_union example to show new and faster way of doing
-	  multi-band union
+	* [r10362] doc/reference_raster.xml: revise st_union example to
+	  show new and faster way of doing multi-band union
 
-2012-10-02 22:47  dustymugs
+2012-10-02 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor addition of debug messages
+	* [r10361] raster/rt_pg/rt_pg.c: Minor addition of debug messages
 
-2012-10-02 21:45  dustymugs
+2012-10-02 21:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added multi-band support for ST_Union. Ticket is #2021
+	* [r10360] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/rt_neighborhood_expected,
+	  raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected, utils/create_undef.pl:
+	  Added multi-band support for ST_Union. Ticket is #2021
 
-2012-10-01 23:13  robe
+2012-10-01 23:13  Regina Obe <lr at pcorp.us>
 
-	* #1938 document addition of addbandarg and swap out old example
-	  with example utilizing addbandarg
+	* [r10359] doc/reference_raster.xml: #1938 document addition of
+	  addbandarg and swap out old example with example utilizing
+	  addbandarg
 
-2012-10-01 22:23  pramsey
+2012-10-01 22:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename lwcircle_calculate_gbox_cartesian_2d to
-	  lw_arc_calculate_gbox_cartesian_2d
+	* [r10358] liblwgeom/g_box.c, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/ptarray.c: Rename lwcircle_calculate_gbox_cartesian_2d
+	  to lw_arc_calculate_gbox_cartesian_2d
 
-2012-10-01 22:18  pramsey
+2012-10-01 22:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename lwcircle_center to lw_arc_center to match other
-	  lwalgorithm signatures
+	* [r10357] liblwgeom/g_box.c, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/measures.c: Rename lwcircle_center to lw_arc_center to
+	  match other lwalgorithm signatures
 
-2012-10-01 22:10  pramsey
+2012-10-01 22:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Anal retentive code re-organization. Try and move the primitive
+	* [r10356] liblwgeom/cunit/cu_algorithm.c, liblwgeom/g_box.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwtree.c, liblwgeom/measures.c, liblwgeom/ptarray.c:
+	  Anal retentive code re-organization. Try and move the primitive
 	  computational geometry functions into lwalgorithm.c
 
-2012-10-01 14:04  strk
+2012-10-01 14:04  Sandro Santilli <strk at keybit.net>
 
-	* Do not confuse CREATE OPERATOR FAMILY with a CREATE OPERATOR
+	* [r10355] utils/postgis_restore.pl.in: Do not confuse CREATE
+	  OPERATOR FAMILY with a CREATE OPERATOR
 
-2012-10-01 09:28  strk
+2012-10-01 09:28  Sandro Santilli <strk at keybit.net>
 
-	* Accept array properties in GML input multi-geom input (#1928)
+	* [r10354] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Accept array properties in GML input
+	  multi-geom input (#1928)
 	  
 	  Patch by Kashif Rasul and Shoaib Burq / SpacialDB
 
-2012-10-01 08:47  strk
+2012-10-01 08:47  Sandro Santilli <strk at keybit.net>
 
-	* Create target dir if non-existing
+	* [r10351] extensions/postgis/Makefile.in: Create target dir if
+	  non-existing
 
-2012-09-29 17:57  robe
+2012-09-29 17:57  Regina Obe <lr at pcorp.us>
 
-	* update postgis unpackaged script. postgis_topology was already up
+	* [r10346] extensions/postgis/sql_bits/postgis--unpackaged.sql.in:
+	  update postgis unpackaged script. postgis_topology was already up
 	  to date.
 
-2012-09-29 16:14  strk
+2012-09-29 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Provide a script to opt out of extensions
+	* [r10345] extensions/opt_out.sh: Provide a script to opt out of
+	  extensions
 
-2012-09-28 23:09  dustymugs
+2012-09-28 23:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of C-based ST_Union(raster) aggregate function (ticket
-	  #1364). Renamed low level function rt_raster_has_no_band() to
-	  raster_has_band(). Updated docs and NEWS for ST_Union.
+	* [r10344] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected: Addition of C-based
+	  ST_Union(raster) aggregate function (ticket #1364). Renamed low
+	  level function rt_raster_has_no_band() to raster_has_band().
+	  Updated docs and NEWS for ST_Union.
 
-2012-09-28 22:51  pramsey
+2012-09-28 22:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove unused point in poly function
+	* [r10343] liblwgeom/liblwgeom.h.in, liblwgeom/measures.c: Remove
+	  unused point in poly function
 
-2012-09-28 22:48  pramsey
+2012-09-28 22:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ptarray_contains_point to ptarray file, so that all other
+	* [r10342] liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/measures.c, liblwgeom/ptarray.c: Add
+	  ptarray_contains_point to ptarray file, so that all other
 	  liblwgeom functions can use the one routine.
 
-2012-09-28 21:52  pramsey
+2012-09-28 21:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove no longer used function, lwgeom_pt_inside_circle.
+	* [r10341] liblwgeom/measures.c: Remove no longer used function,
+	  lwgeom_pt_inside_circle.
 
-2012-09-28 21:48  pramsey
+2012-09-28 21:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add new pointer-based coordinate access method, now that aligned
+	* [r10340] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_api.c: Add
+	  new pointer-based coordinate access method, now that aligned
 	  storage is the new normal.
 
-2012-09-28 21:08  pramsey
+2012-09-28 21:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Anal retentive function renaming: ptarray_isclosed ->
-	  ptarray_is_closed
+	* [r10339] liblwgeom/liblwgeom.h.in, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwgeom_geos_clean.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwline.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c: Anal retentive
+	  function renaming: ptarray_isclosed -> ptarray_is_closed
 
-2012-09-28 20:30  pramsey
+2012-09-28 20:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move some ptarray functions out of postgis and back into
-	  liblwgeom from silly old function that shouldn't even exist
-	  anymore (LWGEOM_inside_circle_point)
+	* [r10338] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom.c, postgis,
+	  postgis/lwgeom_functions_basic.c: Move some ptarray functions out
+	  of postgis and back into liblwgeom from silly old function that
+	  shouldn't even exist anymore (LWGEOM_inside_circle_point)
 
-2012-09-28 18:23  pramsey
+2012-09-28 18:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Measurement support for arcs (#2018)
+	* [r10337] liblwgeom/cunit/cu_measures.c, liblwgeom/measures.c,
+	  liblwgeom/measures.h: Measurement support for arcs (#2018)
 
-2012-09-28 17:03  pramsey
+2012-09-28 17:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add casts from geometry::path, geometry::point,
-	  geometry::polygon, polygon::geometry, path::geometry,
-	  point::geometry to allow easier migration to PostGIS for folks
-	  who start with the Pg types.
+	* [r10336] NEWS, postgis/Makefile.in, postgis/geometry_inout.c,
+	  postgis/postgis.sql.in.c, regress/out_geometry.sql,
+	  regress/out_geometry_expected: Add casts from geometry::path,
+	  geometry::point, geometry::polygon, polygon::geometry,
+	  path::geometry, point::geometry to allow easier migration to
+	  PostGIS for folks who start with the Pg types.
 
-2012-09-27 20:23  pramsey
+2012-09-27 20:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Distance calculation support for arc features (#2018). Commit
-	  adds lowest level primitive support for distance calculations on
-	  single arcs.
+	* [r10335] liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_tree.c, liblwgeom/g_box.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwsegmentize.c,
+	  liblwgeom/measures.c, liblwgeom/measures.h: Distance calculation
+	  support for arc features (#2018). Commit adds lowest level
+	  primitive support for distance calculations on single arcs.
 
-2012-09-26 15:56  dustymugs
+2012-09-26 15:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional regression tests for ST_Neighborhood and tweaked to
-	  support a
+	* [r10333] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_neighborhood.sql,
+	  raster/test/regress/rt_neighborhood_expected: Additional
+	  regression tests for ST_Neighborhood and tweaked to support a
 	  distance values of zero for one axis.
 
-2012-09-25 22:22  dustymugs
+2012-09-25 22:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs regarding the callback function for
-	  rt_raster_iterator()
+	* [r10332] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Added
+	  docs regarding the callback function for rt_raster_iterator()
 
-2012-09-25 22:22  dustymugs
+2012-09-25 22:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added regression tests, bug fixes and code cleanup for
+	* [r10331] raster/rt_core/rt_api.c, raster/test/core/testapi.c:
+	  Added regression tests, bug fixes and code cleanup for
 	  rt_raster_iterator().
 
-2012-09-25 22:22  dustymugs
+2012-09-25 22:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_raster_iterator(), which is feature complete. Now need
-	  to add
+	* [r10330] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Added
+	  rt_raster_iterator(), which is feature complete. Now need to add
 	  lots of regression tests before moving on to the PostgreSQL side
 	  to hook
 	  into it.
 
-2012-09-25 19:23  dustymugs
+2012-09-25 19:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed behavior when there is no pixels in the neighborhood for
+	* [r10329] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_neighborhood_expected: Changed behavior
+	  when there is no pixels in the neighborhood for
 	  ST_Neighborhood. It should still return an array as the pixel of
 	  interest could have a value... just surrounded by NODATA.
 
-2012-09-25 17:20  dustymugs
+2012-09-25 17:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional documentation regarding memory ownership
+	* [r10328] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h:
+	  Additional documentation regarding memory ownership
 
-2012-09-25 14:07  dustymugs
+2012-09-25 14:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added correct handling of rt_band's ownsdata flag indicating if
-	  the
+	* [r10327] raster/loader/raster2pgsql.c, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/test/core/testapi.c: Added
+	  correct handling of rt_band's ownsdata flag indicating if the
 	  memory used for the band's data (only for inline, not offline) is
 	  managed internally.
 
-2012-09-25 02:45  robe
+2012-09-25 02:45  Regina Obe <lr at pcorp.us>
 
-	* #2012: Change client_min_messages to warning instead of relying
-	  on default notice. 9.3's idea of notice doesn't seem to include
-	  notice about create of new tables.
+	* [r10326] regress/regress_management.sql,
+	  regress/regress_management_expected, regress/wmsservers.sql,
+	  regress/wmsservers_expected: #2012: Change client_min_messages to
+	  warning instead of relying on default notice. 9.3's idea of
+	  notice doesn't seem to include notice about create of new tables.
 
-2012-09-24 15:07  dustymugs
+2012-09-24 15:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed output array of ST_Neighborhood to have dimensions of Y,X
+	* [r10323] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_neighborhood_expected: Changed output
+	  array of ST_Neighborhood to have dimensions of Y,X
 	  instead of X,Y. This matches that found for GDAL blocks.
 
-2012-09-24 15:07  dustymugs
+2012-09-24 15:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional tests for ST_Neighborhood()
+	* [r10322] raster/test/regress/rt_neighborhood.sql,
+	  raster/test/regress/rt_neighborhood_expected: Additional tests
+	  for ST_Neighborhood()
 
-2012-09-22 14:44  robe
+2012-09-22 14:44  Regina Obe <lr at pcorp.us>
 
-	* #2010: Include for 9.3 move to below postgis_config.h so version
-	  number of postgresql is picked up before the conditional include
-	  is attempted
+	* [r10321] postgis/geometry_estimate.c: #2010: Include for 9.3 move
+	  to below postgis_config.h so version number of postgresql is
+	  picked up before the conditional include is attempted
 
-2012-09-22 09:00  robe
+2012-09-22 09:00  Regina Obe <lr at pcorp.us>
 
-	* #2010: compile support for 9.3
+	* [r10320] postgis/geometry_estimate.c: #2010: compile support for
+	  9.3
 
-2012-09-22 03:55  robe
+2012-09-22 03:55  Regina Obe <lr at pcorp.us>
 
-	* Add link to OpenGeo workshop on KNN to KNN operator.
+	* [r10318] doc/reference_operator.xml: Add link to OpenGeo workshop
+	  on KNN to KNN operator.
 
-2012-09-20 23:44  pramsey
+2012-09-20 23:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove now obsolete note.
+	* [r10314] doc/reference_misc.xml: Remove now obsolete note.
 
-2012-09-20 22:24  pramsey
+2012-09-20 22:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Document ISO WKT/WKB (#1451)
+	* [r10313] doc/bnf-wkb.txt, doc/bnf-wkt.txt: Document ISO WKT/WKB
+	  (#1451)
 
-2012-09-20 13:32  robe
+2012-09-20 13:32  Regina Obe <lr at pcorp.us>
 
-	* #1991: speed issue with 9.2 on geocode and geocoder_intersection,
+	* [r10310]
+	  extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/geocode_intersection.sql:
+	  #1991: speed issue with 9.2 on geocode and geocoder_intersection,
 	  seems to be 10-50 times faster by forcing join_collapse limit = 2
 
-2012-09-20 11:54  robe
+2012-09-20 11:54  Regina Obe <lr at pcorp.us>
 
-	* remark out regress and also put in name in database
+	* [r10309]
+	  extras/tiger_geocoder/tiger_2011/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2011/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2011/tables/lookup_tables_2011.sql,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocoder.bat: remark out
+	  regress and also put in name in database
 	  #2009 turn off loading of addrfeat
 	  #1614 add U.S. and COUNTY RD as street_type highways
 
-2012-09-19 18:48  dustymugs
+2012-09-19 18:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional regression tests for rt_raster_get_nearest_pixel()
+	* [r10306] raster/rt_core/rt_api.c, raster/test/core/testapi.c:
+	  Additional regression tests for rt_raster_get_nearest_pixel()
 
-2012-09-19 18:48  dustymugs
+2012-09-19 18:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_InvDistWeight4ma() and ST_MinDist4ma(). Changed
+	* [r10305] doc/html/images/st_invdistweight4ma_equation.png,
+	  doc/reference_raster.xml, raster/rt_pg/rtpostgis.sql.in.c: Added
+	  docs for ST_InvDistWeight4ma() and ST_MinDist4ma(). Changed
 	  function signature for ST_Neighborhood() to support specifying
 	  distances
 	  on both X and Y axis.
 
-2012-09-19 18:48  dustymugs
+2012-09-19 18:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Tweaked ST_Neighborhood() to use two separate distance parameters
-	  for X
+	* [r10304] doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/rt_neighborhood.sql,
+	  raster/test/regress/rt_neighborhood_expected: Tweaked
+	  ST_Neighborhood() to use two separate distance parameters for X
 	  and Y axes.
 
-2012-09-19 18:48  dustymugs
+2012-09-19 18:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_MinDist4ma() for getting minimum distance from the
-	  center pixel
+	* [r10303] raster/rt_pg/rtpostgis.sql.in.c: Added ST_MinDist4ma()
+	  for getting minimum distance from the center pixel
 	  to the nearest neighbor in neighborhood with value
 
-2012-09-19 18:48  dustymugs
+2012-09-19 18:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added regression tests for ST_InvDistWeight4ma()
+	* [r10302] raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_invdistweight4ma.sql,
+	  raster/test/regress/rt_invdistweight4ma_expected: Added
+	  regression tests for ST_InvDistWeight4ma()
 
-2012-09-19 18:47  dustymugs
+2012-09-19 18:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added Inverse Distance Weighting function for use with
+	* [r10301] raster/rt_pg/rtpostgis.sql.in.c: Added Inverse Distance
+	  Weighting function for use with
 	  ST_MapAlgebraFctNgb
 
-2012-09-18 12:21  robe
-
-	* #2055: (L burned in all subsequent images after Delaunay)
-	  increase remove to remove images 0-9 before building next. The
-	  remove went from 0-5 and I guess Kevin wasn't counting on anyone
-	  crazy enough to have 6 image layers. This code definitely needs
-	  some work, but this will do for now.
-
-2012-09-17 12:31  strk
-
-	* Initial support for documentatin translation
+2012-09-18 12:21  Regina Obe <lr at pcorp.us>
+
+	* [r10300] doc/html/image_src/generator.c: #2055: (L burned in all
+	  subsequent images after Delaunay) increase remove to remove
+	  images 0-9 before building next. The remove went from 0-5 and I
+	  guess Kevin wasn't counting on anyone crazy enough to have 6
+	  image layers. This code definitely needs some work, but this will
+	  do for now.
+
+2012-09-17 12:31  Sandro Santilli <strk at keybit.net>
+
+	* [r10299] .gitignore, doc/Makefile.in, doc/po,
+	  doc/po/Makefile.local, doc/po/README, doc/po/it_IT,
+	  doc/po/it_IT/Makefile, doc/po/it_IT/extras.xml.po,
+	  doc/po/it_IT/extras_historytable.xml.po,
+	  doc/po/it_IT/extras_tigergeocoder.xml.po,
+	  doc/po/it_IT/extras_topology.xml.po, doc/po/it_IT/faq.xml.po,
+	  doc/po/it_IT/faq_raster.xml.po, doc/po/it_IT/installation.xml.po,
+	  doc/po/it_IT/introduction.xml.po,
+	  doc/po/it_IT/performance_tips.xml.po,
+	  doc/po/it_IT/postgis.xml.po, doc/po/it_IT/reference.xml.po,
+	  doc/po/it_IT/reference_accessor.xml.po,
+	  doc/po/it_IT/reference_constructor.xml.po,
+	  doc/po/it_IT/reference_editor.xml.po,
+	  doc/po/it_IT/reference_exception.xml.po,
+	  doc/po/it_IT/reference_lrs.xml.po,
+	  doc/po/it_IT/reference_management.xml.po,
+	  doc/po/it_IT/reference_measure.xml.po,
+	  doc/po/it_IT/reference_misc.xml.po,
+	  doc/po/it_IT/reference_operator.xml.po,
+	  doc/po/it_IT/reference_output.xml.po,
+	  doc/po/it_IT/reference_processing.xml.po,
+	  doc/po/it_IT/reference_raster.xml.po,
+	  doc/po/it_IT/reference_transaction.xml.po,
+	  doc/po/it_IT/reference_type.xml.po,
+	  doc/po/it_IT/release_notes.xml.po, doc/po/it_IT/reporting.xml.po,
+	  doc/po/it_IT/using_postgis_app.xml.po,
+	  doc/po/it_IT/using_postgis_dataman.xml.po,
+	  doc/po/it_IT/using_raster_dataman.xml.po, doc/po/pt_BR,
+	  doc/po/pt_BR/Makefile, doc/po/pt_BR/extras.xml.po,
+	  doc/po/pt_BR/extras_historytable.xml.po,
+	  doc/po/pt_BR/extras_tigergeocoder.xml.po,
+	  doc/po/pt_BR/extras_topology.xml.po, doc/po/pt_BR/faq.xml.po,
+	  doc/po/pt_BR/faq_raster.xml.po, doc/po/pt_BR/installation.xml.po,
+	  doc/po/pt_BR/introduction.xml.po,
+	  doc/po/pt_BR/performance_tips.xml.po,
+	  doc/po/pt_BR/postgis.xml.po, doc/po/pt_BR/reference.xml.po,
+	  doc/po/pt_BR/reference_accessor.xml.po,
+	  doc/po/pt_BR/reference_constructor.xml.po,
+	  doc/po/pt_BR/reference_editor.xml.po,
+	  doc/po/pt_BR/reference_exception.xml.po,
+	  doc/po/pt_BR/reference_lrs.xml.po,
+	  doc/po/pt_BR/reference_management.xml.po,
+	  doc/po/pt_BR/reference_measure.xml.po,
+	  doc/po/pt_BR/reference_misc.xml.po,
+	  doc/po/pt_BR/reference_operator.xml.po,
+	  doc/po/pt_BR/reference_output.xml.po,
+	  doc/po/pt_BR/reference_processing.xml.po,
+	  doc/po/pt_BR/reference_raster.xml.po,
+	  doc/po/pt_BR/reference_transaction.xml.po,
+	  doc/po/pt_BR/reference_type.xml.po,
+	  doc/po/pt_BR/release_notes.xml.po, doc/po/pt_BR/reporting.xml.po,
+	  doc/po/pt_BR/using_postgis_app.xml.po,
+	  doc/po/pt_BR/using_postgis_dataman.xml.po,
+	  doc/po/pt_BR/using_raster_dataman.xml.po, doc/po/templates,
+	  doc/po/templates/README, doc/po/templates/extras.xml.pot,
+	  doc/po/templates/extras_historytable.xml.pot,
+	  doc/po/templates/extras_tigergeocoder.xml.pot,
+	  doc/po/templates/extras_topology.xml.pot,
+	  doc/po/templates/faq.xml.pot,
+	  doc/po/templates/faq_raster.xml.pot,
+	  doc/po/templates/installation.xml.pot,
+	  doc/po/templates/introduction.xml.pot,
+	  doc/po/templates/performance_tips.xml.pot,
+	  doc/po/templates/postgis.xml.pot,
+	  doc/po/templates/reference.xml.pot,
+	  doc/po/templates/reference_accessor.xml.pot,
+	  doc/po/templates/reference_constructor.xml.pot,
+	  doc/po/templates/reference_editor.xml.pot,
+	  doc/po/templates/reference_exception.xml.pot,
+	  doc/po/templates/reference_lrs.xml.pot,
+	  doc/po/templates/reference_management.xml.pot,
+	  doc/po/templates/reference_measure.xml.pot,
+	  doc/po/templates/reference_misc.xml.pot,
+	  doc/po/templates/reference_operator.xml.pot,
+	  doc/po/templates/reference_output.xml.pot,
+	  doc/po/templates/reference_processing.xml.pot,
+	  doc/po/templates/reference_raster.xml.pot,
+	  doc/po/templates/reference_transaction.xml.pot,
+	  doc/po/templates/reference_type.xml.pot,
+	  doc/po/templates/release_notes.xml.pot,
+	  doc/po/templates/reporting.xml.pot,
+	  doc/po/templates/using_postgis_app.xml.pot,
+	  doc/po/templates/using_postgis_dataman.xml.pot,
+	  doc/po/templates/using_raster_dataman.xml.pot: Initial support
+	  for documentatin translation
 	  
 	  Adds "update-po" Makefile target under doc/
 	  Adds "local-html" Makefile target under doc/po/<lang>
 
-2012-09-17 11:43  strk
+2012-09-17 11:43  Sandro Santilli <strk at keybit.net>
 
-	* Update URL of Maven jar (thanks Sandeep Thakkar)
+	* [r10298] java/jdbc/build.xml: Update URL of Maven jar (thanks
+	  Sandeep Thakkar)
 
-2012-09-14 21:03  strk
+2012-09-14 21:03  Sandro Santilli <strk at keybit.net>
 
-	* reference_type.xml has been missing from XML sources for years !
+	* [r10290] doc/Makefile.in: reference_type.xml has been missing
+	  from XML sources for years !
 
-2012-09-14 20:59  strk
+2012-09-14 20:59  Sandro Santilli <strk at keybit.net>
 
-	* Other double quotes needed by poxml
+	* [r10289] doc/installation.xml, doc/introduction.xml,
+	  doc/reference_raster.xml, doc/release_notes.xml: Other double
+	  quotes needed by poxml
 
-2012-09-14 20:52  strk
+2012-09-14 20:52  Sandro Santilli <strk at keybit.net>
 
-	* More Double quote tag attribute values for poxml support
+	* [r10288] doc/extras_topology.xml, doc/reference_constructor.xml,
+	  doc/reference_lrs.xml, doc/reference_management.xml,
+	  doc/reference_measure.xml, doc/reference_output.xml,
+	  doc/reference_processing.xml, doc/reference_raster.xml,
+	  doc/template.xml: More Double quote tag attribute values for
+	  poxml support
 
-2012-09-14 20:33  strk
+2012-09-14 20:33  Sandro Santilli <strk at keybit.net>
 
-	* Double quote tag attribute values and use open&close for
-	  <paramdef>
+	* [r10287] doc/extras_tigergeocoder.xml: Double quote tag attribute
+	  values and use open&close for <paramdef>
 	  
 	  This format plays nicely with xml2pot and po2xml...
 
-2012-09-14 11:29  robe
+2012-09-14 11:29  Regina Obe <lr at pcorp.us>
 
-	* PostGIS 2.1 changes section was incorrectly listing 2.0 instead
-	  of 2.1 changes. Also just folder 2.1 changes into many What is
-	  new in 2.1 section.
+	* [r10286] doc/xsl/postgis_aggs_mm.xml.xsl: PostGIS 2.1 changes
+	  section was incorrectly listing 2.0 instead of 2.1 changes. Also
+	  just folder 2.1 changes into many What is new in 2.1 section.
 
-2012-09-14 07:49  strk
+2012-09-14 07:49  Sandro Santilli <strk at keybit.net>
 
-	* Distinguish between generated and source XML inputs
+	* [r10285] doc/Makefile.in: Distinguish between generated and
+	  source XML inputs
 
-2012-09-14 07:40  strk
+2012-09-14 07:40  Sandro Santilli <strk at keybit.net>
 
-	* Rewrite header file to have full credits
+	* [r10284] doc/Makefile.in: Rewrite header file to have full
+	  credits
 	  
 	  Used git history to figure out authors and commit years
 
-2012-09-14 03:10  robe
+2012-09-14 03:10  Regina Obe <lr at pcorp.us>
 
-	* Add changed section for 2.1 and mark ST_Segmentize as having a
-	  breaking change
+	* [r10283] doc/reference_editor.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Add changed section for 2.1 and
+	  mark ST_Segmentize as having a breaking change
 
-2012-09-13 20:41  strk
+2012-09-13 20:41  Sandro Santilli <strk at keybit.net>
 
-	* Fix ST_Estimated_Extent name change documentation encoding
+	* [r10282] doc/reference_misc.xml: Fix ST_Estimated_Extent name
+	  change documentation encoding
 
-2012-09-13 20:11  pramsey
+2012-09-13 20:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove code in #ifdefs for PgSQL 8.4 and under, per #1880
+	* [r10281] postgis/geometry_estimate.c,
+	  postgis/gserialized_gist_2d.c, postgis/gserialized_gist_nd.c,
+	  postgis/lwgeom_accum.c: Remove code in #ifdefs for PgSQL 8.4 and
+	  under, per #1880
 
-2012-09-13 19:23  pramsey
+2012-09-13 19:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Test for #1780
+	* [r10280] regress/tickets.sql, regress/tickets_expected: Test for
+	  #1780
 
-2012-09-13 09:53  strk
+2012-09-13 09:53  Sandro Santilli <strk at keybit.net>
 
-	* ST_Estimated_Extent renamed to ST_EstimatedExtent (#1994)
+	* [r10279] NEWS, doc/reference_misc.xml, postgis/postgis.sql.in.c,
+	  regress/tickets.sql, regress/tickets_expected:
+	  ST_Estimated_Extent renamed to ST_EstimatedExtent (#1994)
 	  
 	  ST_Estimated_Extent is kept but deprecated, testcases test both
 	  signatures. Documentation documents the new name and warns about
 	  it being renamed in 2.1.0
 
-2012-09-13 02:08  pramsey
+2012-09-13 02:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #1780 ST_GeoHash should support geography type without cast
+	* [r10278] NEWS, liblwgeom/lwalgorithm.c,
+	  postgis/geography.sql.in.c, postgis/lwgeom_functions_basic.c:
+	  #1780 ST_GeoHash should support geography type without cast
 
-2012-09-12 02:37  dustymugs
+2012-09-12 02:37  Bborie Park <bkpark at ucdavis.edu>
 
-	* Reverted some of the changes committed in r10238
+	* [r10277] raster/loader/Makefile.in: Reverted some of the changes
+	  committed in r10238
 
-2012-09-11 14:07  robe
+2012-09-11 14:07  Regina Obe <lr at pcorp.us>
 
-	* forgot to commit ST_Delaun... reference in last
+	* [r10276] doc/reference_processing.xml: forgot to commit
+	  ST_Delaun... reference in last
 
-2012-09-11 14:01  robe
+2012-09-11 14:01  Regina Obe <lr at pcorp.us>
 
-	* ST_DelaunayTriangle examples and a 3D example
+	* [r10275] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_delaunaytriangles04.wkt,
+	  doc/html/image_src/styles.conf: ST_DelaunayTriangle examples and
+	  a 3D example
 
-2012-09-10 18:36  pracine
+2012-09-10 18:36  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fixed the state and final functions when count is zero or initial
-	  sum is null
+	* [r10268] raster/scripts/plpgsql/st_summarystatsagg.sql: Fixed the
+	  state and final functions when count is zero or initial sum is
+	  null
 
-2012-09-10 15:00  robe
+2012-09-10 15:00  Regina Obe <lr at pcorp.us>
 
-	* #1869 note that ST_Asbinary on unknown is now illegal. Have to
-	  backport to 2.0 as well. I will add to full legacy though for
-	  those who can't change code.
+	* [r10266] doc/reference_output.xml: #1869 note that ST_Asbinary on
+	  unknown is now illegal. Have to backport to 2.0 as well. I will
+	  add to full legacy though for those who can't change code.
 
-2012-09-08 02:26  robe
+2012-09-08 02:26  Regina Obe <lr at pcorp.us>
 
-	* Update PSC list
+	* [r10262] doc/introduction.xml: Update PSC list
 
-2012-09-08 01:24  dustymugs
+2012-09-08 01:24  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for new variant of ST_SetValues()
+	* [r10261] doc/reference_raster.xml: Added docs for new variant of
+	  ST_SetValues()
 
-2012-09-08 01:21  dustymugs
+2012-09-08 01:21  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added new variant on existing ST_SetValues where instead of a
-	  noset 2D
+	* [r10260] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_setvalues_array.sql,
+	  raster/test/regress/rt_setvalues_array_expected: Added new
+	  variant on existing ST_SetValues where instead of a noset 2D
 	  array of booleans, the parameter nosetvalue can be used instead.
 
-2012-09-08 01:18  dustymugs
+2012-09-08 01:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor message tweaks regarding GDAL/OGR detection
+	* [r10259] configure.ac: Minor message tweaks regarding GDAL/OGR
+	  detection
 
-2012-09-07 22:20  pramsey
+2012-09-07 22:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* correct length for closed circles (#1978)
+	* [r10257] NEWS, liblwgeom/lwsegmentize.c, regress/tickets.sql,
+	  regress/tickets_expected: correct length for closed circles
+	  (#1978)
 
-2012-09-07 20:05  pramsey
+2012-09-07 20:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_GeomFromGML on CurvePolygon causes server crash (#1936)
+	* [r10255] NEWS, postgis/lwgeom_in_gml.c, regress/tickets.sql,
+	  regress/tickets_expected: ST_GeomFromGML on CurvePolygon causes
+	  server crash (#1936)
 
-2012-09-07 19:54  pramsey
+2012-09-07 19:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix cunit crash due to lack of proper signature for
-	  lwgeom_segmentize_sphere in header.
+	* [r10252] liblwgeom/liblwgeom.h.in: Fix cunit crash due to lack of
+	  proper signature for lwgeom_segmentize_sphere in header.
 
-2012-09-07 18:27  pramsey
+2012-09-07 18:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Distance to a one-point LineString returns NULL (#1957)
+	* [r10251] NEWS, liblwgeom/measures.c, regress/tickets.sql,
+	  regress/tickets_expected: ST_Distance to a one-point LineString
+	  returns NULL (#1957)
 
-2012-09-06 18:08  dustymugs
+2012-09-06 18:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added item for fixes regarding ticket #1981
+	* [r10241] NEWS: Added item for fixes regarding ticket #1981
 
-2012-09-06 17:34  dustymugs
+2012-09-06 17:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed unnecessary/unused variables and assignments. Ticket is
-	  #1981
+	* [r10239] raster/rt_pg/rt_pg.c: Removed unnecessary/unused
+	  variables and assignments. Ticket is #1981
 
-2012-09-06 17:30  dustymugs
+2012-09-06 17:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor cleanup of raster2pgsql Makefile
+	* [r10238] raster/loader/Makefile.in: Minor cleanup of raster2pgsql
+	  Makefile
 
-2012-09-06 09:30  strk
+2012-09-06 09:30  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency on GEOS >= 3.3.0
+	* [r10237] README.postgis, configure.ac: Encode dependency on GEOS
+	  >= 3.3.0
 
-2012-09-06 09:27  strk
+2012-09-06 09:27  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency on PROJ >= 4.6.0
+	* [r10236] configure.ac: Encode dependency on PROJ >= 4.6.0
 
-2012-09-06 09:24  strk
+2012-09-06 09:24  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency on PostgreSQL 9.0 or higher
+	* [r10235] README.postgis, configure.ac: Encode dependency on
+	  PostgreSQL 9.0 or higher
 
-2012-09-05 13:41  robe
+2012-09-05 13:41  Regina Obe <lr at pcorp.us>
 
-	* #1970 - 9.2rc1 regress failure change layer_id_seq from select *
-	  to explicitly select fields. log_cnt now returns 0 for 9.2rc1 so
-	  fails regress otherwise
+	* [r10234] topology/test/regress/copytopology.sql,
+	  topology/test/regress/copytopology_expected: #1970 - 9.2rc1
+	  regress failure change layer_id_seq from select * to explicitly
+	  select fields. log_cnt now returns 0 for 9.2rc1 so fails regress
+	  otherwise
 
-2012-09-04 12:53  robe
+2012-09-04 12:53  Regina Obe <lr at pcorp.us>
 
-	* #1974 evidentally Unix really needs the RGB, RGBA quoted and
-	  windows doesn't like single quotes. Change to double quotes to
-	  satisfy both :)
+	* [r10226] doc/html/image_src/styles.conf: #1974 evidentally Unix
+	  really needs the RGB, RGBA quoted and windows doesn't like single
+	  quotes. Change to double quotes to satisfy both :)
 
-2012-09-04 12:48  robe
+2012-09-04 12:48  Regina Obe <lr at pcorp.us>
 
-	* #1974 revision of () escaping to work on Posix
+	* [r10225] doc/html/image_src/generator.c: #1974 revision of ()
+	  escaping to work on Posix
 
-2012-09-04 12:43  strk
+2012-09-04 12:43  Sandro Santilli <strk at keybit.net>
 
-	* Re-quote the styles, needed here
+	* [r10224] doc/html/image_src/styles.conf: Re-quote the styles,
+	  needed here
 	  
 	  Here is ImageMagick 6.5.7-8 2012-08-17 Q16
 	  Didn't look what exactly parses styles.conf
 
-2012-09-04 12:34  strk
+2012-09-04 12:34  Sandro Santilli <strk at keybit.net>
 
-	* Properly escape imagemagic paren arguments
+	* [r10223] doc/html/image_src/generator.c: Properly escape
+	  imagemagic paren arguments
 
-2012-09-04 11:44  robe
+2012-09-04 11:44  Regina Obe <lr at pcorp.us>
 
-	* #1974 revise style colors and generator.c convert calls so they
-	  work with windows ImageMagick 6.7.9 Q16
+	* [r10222] doc/html/image_src/generator.c,
+	  doc/html/image_src/styles.conf: #1974 revise style colors and
+	  generator.c convert calls so they work with windows ImageMagick
+	  6.7.9 Q16
 
-2012-09-01 08:39  strk
+2012-09-01 08:39  Sandro Santilli <strk at keybit.net>
 
-	* Add missing signatures from 1.5, closing #1391
+	* [r10217] utils/postgis_restore.pl.in: Add missing signatures from
+	  1.5, closing #1391
 	  
 	  These are: st_asukml and {x,y}{min,max}(box2d)
 
-2012-08-28 04:08  robe
+2012-08-28 04:08  Regina Obe <lr at pcorp.us>
 
-	* #1960 JDK7 compatibility patch
+	* [r10206] java/jdbc/src/org/postgis/DriverWrapper.java,
+	  java/jdbc/src/org/postgis/java2d/Java2DWrapper.java: #1960 JDK7
+	  compatibility patch
 
-2012-08-28 00:05  robe
+2012-08-28 00:05  Regina Obe <lr at pcorp.us>
 
-	* Fix for #1969 (and test buildbot) make
-	  postgis_upgrade_21_minor.sql same as postgis_upgrade_20_21.sql
-	  for now since we are in prerelease mode.
+	* [r10202] postgis/Makefile.in: Fix for #1969 (and test buildbot)
+	  make postgis_upgrade_21_minor.sql same as
+	  postgis_upgrade_20_21.sql for now since we are in prerelease
+	  mode.
 
-2012-08-27 04:50  robe
+2012-08-27 04:50  Regina Obe <lr at pcorp.us>
 
-	* #1897 relabel currently mislabeled postgis_upgrade_20_minor.sql
+	* [r10201] extensions/postgis/Makefile.in, postgis/Makefile.in:
+	  #1897 relabel currently mislabeled postgis_upgrade_20_minor.sql
 	  to postgis_upgrade_20_21.sql (still need to do the same for
 	  raster and topology)
 
-2012-08-25 03:16  robe
+2012-08-25 03:16  Regina Obe <lr at pcorp.us>
 
-	* Up version number from 2.0.1.SVN to 2.1.0SVN
+	* [r10199] java/jdbc/pom.xml: Up version number from 2.0.1.SVN to
+	  2.1.0SVN
 
-2012-08-23 07:16  robe
+2012-08-23 07:16  Regina Obe <lr at pcorp.us>
 
-	* 1963: Cast text to geometry for ST_Segmentize -- introduction of
-	  geography means no more laziness allowed
+	* [r10198] regress/regress.sql: 1963: Cast text to geometry for
+	  ST_Segmentize -- introduction of geography means no more laziness
+	  allowed
 
-2012-08-23 06:37  robe
+2012-08-23 06:37  Regina Obe <lr at pcorp.us>
 
-	* update about enhancements in geography ST_DWithin and
-	  ST_Distance. Done for ST_Intersects too I think? Paul? But
-	  haven't marked ST_Intersects since wasn't sure.
+	* [r10197] doc/reference_measure.xml: update about enhancements in
+	  geography ST_DWithin and ST_Distance. Done for ST_Intersects too
+	  I think? Paul? But haven't marked ST_Intersects since wasn't
+	  sure.
 
-2012-08-23 06:31  robe
+2012-08-23 06:31  Regina Obe <lr at pcorp.us>
 
-	* document ST_Segmentize new geography function. Will provide
-	  example later.
+	* [r10196] doc/reference_editor.xml: document ST_Segmentize new
+	  geography function. Will provide example later.
 
-2012-08-22 21:04  pramsey
+2012-08-22 21:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Segmentize(geography, maxseglength) (#1962)
+	* [r10195] NEWS, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/lwgeodetic.c, postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c: ST_Segmentize(geography,
+	  maxseglength) (#1962)
 
-2012-08-21 18:22  pramsey
+2012-08-21 18:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Intersects(geography) returns incorrect result for
+	* [r10194] liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic_tree.c:
+	  ST_Intersects(geography) returns incorrect result for
 	  pure-crossing cases (line cross line, line crosses polygon)
 	  (#1958)
 
-2012-08-20 12:06  robe
+2012-08-20 12:06  Regina Obe <lr at pcorp.us>
 
-	* Cleanup of required versions and link to new page that lists
-	  pre-packaged distros for various OS
+	* [r10191] doc/installation.xml: Cleanup of required versions and
+	  link to new page that lists pre-packaged distros for various OS
 
-2012-08-17 19:15  pramsey
+2012-08-17 19:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Error in ST_Intersects: lwgeom_covers_lwgeom_sphere: only POLYGON
-	  and POINT types are currently supported (#1949)
+	* [r10190] postgis/geography_measurement_trees.c: Error in
+	  ST_Intersects: lwgeom_covers_lwgeom_sphere: only POLYGON and
+	  POINT types are currently supported (#1949)
 
-2012-08-17 17:18  strk
+2012-08-17 17:18  Sandro Santilli <strk at keybit.net>
 
-	* Fix ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges
+	* [r10189] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected,
+	  topology/test/regress/st_newedgeheal.sql,
+	  topology/test/regress/st_newedgeheal_expected: Fix ST_ModEdgeHeal
+	  and ST_NewEdgeHeal for doubly connected edges
 	  
 	  Includes testcases, closes #1955
 
-2012-08-15 18:55  pramsey
+2012-08-15 18:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Crash in ST_Distance (#1951)
+	* [r10183] NEWS, liblwgeom/cunit/cu_tree.c,
+	  liblwgeom/lwgeodetic_tree.c: Crash in ST_Distance (#1951)
 
-2012-08-14 12:06  robe
+2012-08-14 12:06  Regina Obe <lr at pcorp.us>
 
-	* remove tiger_2010 from 2.1. So just need to update for 2.0
-	  branch. too much hassle to backport and most people will want to
-	  use tiger_2011
+	* [r10181] extras/tiger_geocoder/tiger_2010: remove tiger_2010 from
+	  2.1. So just need to update for 2.0 branch. too much hassle to
+	  backport and most people will want to use tiger_2011
 
-2012-08-13 21:45  robe
+2012-08-13 21:45  Regina Obe <lr at pcorp.us>
 
-	* #1838 for tabblock name and tabblock_id are not big enough for
+	* [r10179] extras/tiger_geocoder/tiger_2011/census_loader.sql:
+	  #1838 for tabblock name and tabblock_id are not big enough for
 	  california. Will only alter the columns if they have not already
 	  been increased in size
 
-2012-08-11 19:58  robe
+2012-08-11 19:58  Regina Obe <lr at pcorp.us>
 
-	* #1838 -- tabblock not loading. oops committed wrong change.
-	  Revert previous change and make correct change.
+	* [r10178] extras/tiger_geocoder/tiger_2011/census_loader.sql,
+	  extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql: #1838 --
+	  tabblock not loading. oops committed wrong change. Revert
+	  previous change and make correct change.
 
-2012-08-11 19:49  robe
+2012-08-11 19:49  Regina Obe <lr at pcorp.us>
 
-	* #1838 tabblock not loading
+	* [r10177] extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql:
+	  #1838 tabblock not loading
 
-2012-08-10 16:00  pramsey
+2012-08-10 16:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Switch from gnomic to LAEA for the projection for the custom
+	* [r10176] libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h, postgis/geography_measurement.c:
+	  Switch from gnomic to LAEA for the projection for the custom
 	  zones. Less perfect intersections, but measure metric fidelity
 	  for distances, areas, etc. (#1610)
 
-2012-08-09 15:54  robe
+2012-08-09 15:54  Regina Obe <lr at pcorp.us>
 
-	* #1944: Support for 2.1.0SVN/2.1.0SVN extension for topology
+	* [r10175] extensions/postgis_topology/Makefile.in: #1944: Support
+	  for 2.1.0SVN/2.1.0SVN extension for topology
 	  ALTER EXTENSION postgis_topology UPDATE TO "2.1.0SVNnext";
 	  ALTER EXTENSION postgis_topology UPDATE TO "2.1.0SVN";
 
-2012-08-09 02:31  robe
+2012-08-09 02:31  Regina Obe <lr at pcorp.us>
 
-	* fix typo revision to previous commit in support of #1944
+	* [r10174] extensions/postgis/Makefile.in: fix typo revision to
+	  previous commit in support of #1944
 
-2012-08-09 00:18  dustymugs
+2012-08-09 00:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added clamped value comparisons and updated comments for
+	* [r10173] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Added
+	  clamped value comparisons and updated comments for
 	  rt_band_get_pixel_of_value()
 
-2012-08-08 06:26  robe
+2012-08-08 06:26  Regina Obe <lr at pcorp.us>
 
-	* revision to previous commit -- forgot one and change Next to next
+	* [r10172] extensions/postgis/Makefile.in: revision to previous
+	  commit -- forgot one and change Next to next
 
-2012-08-08 06:18  robe
+2012-08-08 06:18  Regina Obe <lr at pcorp.us>
 
-	* #1944 Extensions Migration path from 2.1.0 to 2.1.0 - yoyo
-	  upgrade to allow upgrade 2.1.0SVN to 2.1.0SVNNext to 2.1.0SVN
+	* [r10171] extensions/postgis/Makefile.in: #1944 Extensions
+	  Migration path from 2.1.0 to 2.1.0 - yoyo upgrade to allow
+	  upgrade 2.1.0SVN to 2.1.0SVNNext to 2.1.0SVN
 
-2012-08-07 12:34  robe
+2012-08-07 12:34  Regina Obe <lr at pcorp.us>
 
-	* #1945 for upgrade from pre 2.1.0 release to 2.1.0 -- create
+	* [r10170] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c: #1945
+	  for upgrade from pre 2.1.0 release to 2.1.0 -- create
 	  samealignment agg and addbandarg types if they don't exist. Get
 	  rid of pre-9.0 code -- WE CAN DO now since we don't support 8.4
 	  in 2.1 :)
 
-2012-08-06 22:29  dustymugs
+2012-08-06 22:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactor data type cleanup
+	* [r10169] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c:
+	  Refactor data type cleanup
 
-2012-08-06 16:21  robe
+2012-08-06 16:21  Regina Obe <lr at pcorp.us>
 
-	* #1948 drop types from extension no longer needed by raster. Still
-	  can't upgrade because addbandarg can't be altered if it doesn't
-	  exist.
+	* [r10168]
+	  extensions/postgis/sql_bits/remove_from_extension.sql.in: #1948
+	  drop types from extension no longer needed by raster. Still can't
+	  upgrade because addbandarg can't be altered if it doesn't exist.
 
-2012-08-06 15:02  dustymugs
+2012-08-06 15:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* Simplify code underlying ST_AddBand(raster, raster[])
+	* [r10167] raster/rt_pg/rt_pg.c: Simplify code underlying
+	  ST_AddBand(raster, raster[])
 
-2012-08-05 23:04  robe
+2012-08-05 23:04  Regina Obe <lr at pcorp.us>
 
-	* Another example for ST_DumpPoints which is the most common use
-	  case
+	* [r10165] doc/reference_processing.xml: Another example for
+	  ST_DumpPoints which is the most common use case
 
-2012-08-04 14:28  dustymugs
+2012-08-04 14:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Replaced last commit with something much simpler and possibly
+	* [r10162] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c:
+	  Replaced last commit with something much simpler and possibly
 	  more
 	  effective
 
-2012-08-04 14:12  dustymugs
+2012-08-04 14:12  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added logic for when to DROP and/or CREATE TYPEs.
+	* [r10161] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c: Added
+	  logic for when to DROP and/or CREATE TYPEs.
 
-2012-08-03 21:45  robe
+2012-08-03 21:45  Regina Obe <lr at pcorp.us>
 
-	* #1947 try again forget end mark
+	* [r10160] extensions/upgradeable_versions.mk: #1947 try again
+	  forget end mark
 
-2012-08-03 21:38  robe
+2012-08-03 21:38  Regina Obe <lr at pcorp.us>
 
-	* #1947 define upgrade path from 2.0.1 to 2.1.0SVN
+	* [r10159] extensions/upgradeable_versions.mk: #1947 define upgrade
+	  path from 2.0.1 to 2.1.0SVN
 
-2012-08-03 19:43  dustymugs
+2012-08-03 19:43  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added missing variant of ST_SetValues without nband parameter.
+	* [r10158] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Added missing variant of
+	  ST_SetValues without nband parameter.
 
-2012-08-03 17:44  dustymugs
+2012-08-03 17:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added new TYPEs that need to be added when doing a minor upgrade.
+	* [r10157] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c: Added
+	  new TYPEs that need to be added when doing a minor upgrade.
 
-2012-08-03 00:19  dustymugs
+2012-08-03 00:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Cleanup of GDAL checks and additional check for OGR
+	* [r10156] configure.ac: Cleanup of GDAL checks and additional
+	  check for OGR
 
-2012-08-03 00:19  dustymugs
+2012-08-03 00:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_util_gdal_register_all() to prevent multiple calls to
+	* [r10155] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Added
+	  rt_util_gdal_register_all() to prevent multiple calls to
 	  GDALAllRegister()
 
-2012-08-02 19:27  dustymugs
+2012-08-02 19:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Tweaked tests to use new variants of ST_AddBand and ST_SetValues
+	* [r10154] raster/test/regress/rt_band.sql,
+	  raster/test/regress/rt_nearestvalue.sql: Tweaked tests to use new
+	  variants of ST_AddBand and ST_SetValues
 
-2012-08-02 18:51  dustymugs
+2012-08-02 18:51  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code and comments cleanup.
+	* [r10153] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Code and
+	  comments cleanup.
 
-2012-08-02 15:21  dustymugs
+2012-08-02 15:21  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional comments regarding use of PG_DETOAST_DATUM_COPY
+	* [r10152] raster/rt_pg/rt_pg.c: Additional comments regarding use
+	  of PG_DETOAST_DATUM_COPY
 
-2012-08-01 23:19  dustymugs
+2012-08-01 23:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added comments regarding use of PG_DETOAST_DATUM*
+	* [r10151] raster/rt_pg/rt_pg.c: Added comments regarding use of
+	  PG_DETOAST_DATUM*
 
-2012-08-01 23:16  dustymugs
+2012-08-01 23:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rewrote ST_AddBand(raster, ...) array version in C. Ticket is
-	  #1363
+	* [r10150] NEWS, doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_addband_expected: Rewrote
+	  ST_AddBand(raster, ...) array version in C. Ticket is #1363
 
-2012-08-01 03:47  robe
+2012-08-01 03:47  Regina Obe <lr at pcorp.us>
 
-	* Fix raise notice that only shows in debug mode
+	* [r10149]
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql: Fix
+	  raise notice that only shows in debug mode
 
-2012-07-31 23:44  dustymugs
+2012-07-31 23:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added regression tests and docs for two of the ST_SetValues
-	  variants
+	* [r10148] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_setvalues_array.sql,
+	  raster/test/regress/rt_setvalues_array_expected: Added regression
+	  tests and docs for two of the ST_SetValues variants
 
-2012-07-31 23:44  dustymugs
+2012-07-31 23:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_SetValues for setting an area defined by x, y, width and
+	* [r10147] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Added ST_SetValues for setting an area defined by x, y, width and
 	  height
 	  to one value. Also added function parameter "keepnodata".
 
-2012-07-31 23:44  dustymugs
+2012-07-31 23:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_SetValues() for setting an array of new values to a
+	* [r10146] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Added ST_SetValues() for setting an array of new values to a
 	  band.
 	  Ticket is #595
 
-2012-07-31 23:43  dustymugs
+2012-07-31 23:43  Bborie Park <bkpark at ucdavis.edu>
 
-	* First steps of add ST_SetValues() variant for array of values
+	* [r10145] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  First steps of add ST_SetValues() variant for array of values
 
-2012-07-31 15:40  dustymugs
+2012-07-31 15:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed forgotten type casting for ST_DWithin and ST_DFullyWithin()
+	* [r10144] raster/rt_pg/rtpostgis.sql.in.c: Fixed forgotten type
+	  casting for ST_DWithin and ST_DFullyWithin()
 
-2012-07-30 22:40  dustymugs
+2012-07-30 22:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Make PostgreSQL 8.4 happy with the rt_polygon regression test.
+	* [r10143] raster/test/regress/rt_polygon.sql: Make PostgreSQL 8.4
+	  happy with the rt_polygon regression test.
 
-2012-07-30 15:40  dustymugs
+2012-07-30 15:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added final touches of removing output-only data types
+	* [r10138] raster/rt_pg/rtpostgis_drop.sql.in.c: Added final
+	  touches of removing output-only data types
 
-2012-07-29 02:36  dustymugs
+2012-07-29 02:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added news regarding #1939
+	* [r10137] NEWS: Added news regarding #1939
 
-2012-07-29 02:34  dustymugs
+2012-07-29 02:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed histogram data type. Ticket is #1939
+	* [r10136] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Removed histogram data
+	  type. Ticket is #1939
 
-2012-07-29 02:34  dustymugs
+2012-07-29 02:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed valuecount data type. Ticket is #1939
+	* [r10135] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Removed valuecount data
+	  type. Ticket is #1939
 
-2012-07-29 02:34  dustymugs
+2012-07-29 02:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed quantile data type. Ticket is #1939
+	* [r10134] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Removed quantile data type.
+	  Ticket is #1939
 
-2012-07-29 02:34  dustymugs
+2012-07-29 02:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed summarystats data type. Ticket is #1939
+	* [r10133] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Removed summarystats data
+	  type. Ticket is #1939
 
-2012-07-27 22:49  dustymugs
+2012-07-27 22:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Expanded on comments about things to keep in mind when using
+	* [r10132] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h:
+	  Expanded on comments about things to keep in mind when using
 	  rt_band_set_pixel_line()
 
-2012-07-27 19:46  dustymugs
+2012-07-27 19:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated docs for new type addbandarg and new ST_AddBand() variant
+	* [r10131] NEWS, doc/reference_raster.xml: Updated docs for new
+	  type addbandarg and new ST_AddBand() variant
 
-2012-07-27 19:46  dustymugs
+2012-07-27 19:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored ST_AddBand to permit adding one or more new bands in
-	  one
+	* [r10130] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_addband_expected: Refactored ST_AddBand to
+	  permit adding one or more new bands in one
 	  call. Ticket is #1938.
 
-2012-07-27 19:45  dustymugs
+2012-07-27 19:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* New and refactored variants of ST_AddBand(). Purely superficial
-	  as none
+	* [r10129] raster/rt_pg/rtpostgis.sql.in.c: New and refactored
+	  variants of ST_AddBand(). Purely superficial as none
 	  of the underlying code has been rewritten for the changes...
 
-2012-07-25 20:37  dustymugs
+2012-07-25 20:37  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added examples to a bunch of functions
+	* [r10128] doc/reference_raster.xml: Added examples to a bunch of
+	  functions
 
-2012-07-25 19:31  dustymugs
+2012-07-25 19:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_pixtype_compare_clamped_values() for comparing two
-	  doubles in
+	* [r10127] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Added
+	  rt_pixtype_compare_clamped_values() for comparing two doubles in
 	  the context of a pixeltype.
 
-2012-07-25 15:26  dustymugs
+2012-07-25 15:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added info about a few undocumented raster2pgsql flags
+	* [r10125] doc/using_raster_dataman.xml: Added info about a few
+	  undocumented raster2pgsql flags
 
-2012-07-25 15:03  dustymugs
+2012-07-25 15:03  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added #1932 to NEWS
+	* [r10124] NEWS: Added #1932 to NEWS
 
-2012-07-25 15:03  dustymugs
+2012-07-25 15:03  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed syntax for setting tablespace for index. Ticket is #1932.
-	  Thanks
+	* [r10123] raster/loader/raster2pgsql.c: Fixed syntax for setting
+	  tablespace for index. Ticket is #1932. Thanks
 	  kib.
 
-2012-07-25 13:52  strk
-
-	* Do not advertise broken type "geometry(srid)" (#1934)
-
-2012-07-25 03:36  dustymugs
-
-	* Removed garbage comments
-
-2012-07-25 03:36  dustymugs
-
-	* Consolidated create_* and drop_* scripts into respective
-	  regression
+2012-07-25 13:52  Sandro Santilli <strk at keybit.net>
+
+	* [r10119] doc/using_postgis_dataman.xml: Do not advertise broken
+	  type "geometry(srid)" (#1934)
+
+2012-07-25 03:36  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r10118] raster/test/regress/rt_set_band_properties.sql: Removed
+	  garbage comments
+
+2012-07-25 03:36  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r10117] raster/test/regress/Makefile.in,
+	  raster/test/regress/create_rt_band_properties_test.sql,
+	  raster/test/regress/create_rt_band_properties_test_expected,
+	  raster/test/regress/create_rt_empty_raster_test.sql,
+	  raster/test/regress/create_rt_empty_raster_test_expected,
+	  raster/test/regress/create_rt_gist_test.sql,
+	  raster/test/regress/create_rt_gist_test_expected,
+	  raster/test/regress/create_rt_mapalgebra_test.sql,
+	  raster/test/regress/create_rt_mapalgebra_test_expected,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test_expected,
+	  raster/test/regress/create_rt_properties_test.sql,
+	  raster/test/regress/create_rt_properties_test_expected,
+	  raster/test/regress/create_rt_utility_test.sql,
+	  raster/test/regress/drop_rt_band_properties_test.sql,
+	  raster/test/regress/drop_rt_band_properties_test_expected,
+	  raster/test/regress/drop_rt_empty_raster_test.sql,
+	  raster/test/regress/drop_rt_empty_raster_test_expected,
+	  raster/test/regress/drop_rt_gist_test.sql,
+	  raster/test/regress/drop_rt_gist_test_expected,
+	  raster/test/regress/drop_rt_mapalgebra_test.sql,
+	  raster/test/regress/drop_rt_mapalgebra_test_expected,
+	  raster/test/regress/drop_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/drop_rt_mapalgebrafctngb_test_expected,
+	  raster/test/regress/drop_rt_properties_test.sql,
+	  raster/test/regress/drop_rt_properties_test_expected,
+	  raster/test/regress/rt_above.sql,
+	  raster/test/regress/rt_band_properties.sql,
+	  raster/test/regress/rt_below.sql,
+	  raster/test/regress/rt_contain.sql,
+	  raster/test/regress/rt_contained.sql,
+	  raster/test/regress/rt_dimensions.sql,
+	  raster/test/regress/rt_georeference.sql,
+	  raster/test/regress/rt_hasnoband.sql,
+	  raster/test/regress/rt_isempty.sql,
+	  raster/test/regress/rt_left.sql,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebrafct.sql,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_overabove.sql,
+	  raster/test/regress/rt_overbelow.sql,
+	  raster/test/regress/rt_overlap.sql,
+	  raster/test/regress/rt_overleft.sql,
+	  raster/test/regress/rt_overright.sql,
+	  raster/test/regress/rt_pixelsize.sql,
+	  raster/test/regress/rt_pixelvalue.sql,
+	  raster/test/regress/rt_right.sql,
+	  raster/test/regress/rt_rotation.sql,
+	  raster/test/regress/rt_same.sql,
+	  raster/test/regress/rt_scale.sql,
+	  raster/test/regress/rt_set_band_properties.sql,
+	  raster/test/regress/rt_set_properties.sql,
+	  raster/test/regress/rt_upperleft.sql,
+	  raster/test/regress/rt_utility.sql: Consolidated create_* and
+	  drop_* scripts into respective regression
 	  tests. Should make things easier to build a valgrind test suite.
 
-2012-07-25 03:36  dustymugs
+2012-07-25 03:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_DFullyWithin(raster, raster)
+	* [r10116] NEWS, doc/reference_raster.xml: Added docs for
+	  ST_DFullyWithin(raster, raster)
 
-2012-07-25 03:36  dustymugs
+2012-07-25 03:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_DFullyWithin(raster, raster) and regression tests.
+	* [r10115] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_dfullywithin.sql,
+	  raster/test/regress/rt_dfullywithin_expected: Added
+	  ST_DFullyWithin(raster, raster) and regression tests.
 	  Ticket is #1920
 
-2012-07-25 03:35  dustymugs
+2012-07-25 03:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_raster_full_within_distance() and regression tests
+	* [r10114] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Added
+	  rt_raster_full_within_distance() and regression tests
 
-2012-07-25 03:35  dustymugs
+2012-07-25 03:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_DWithin(raster, raster)
+	* [r10113] NEWS, doc/reference_raster.xml: Added docs for
+	  ST_DWithin(raster, raster)
 
-2012-07-25 03:35  dustymugs
+2012-07-25 03:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_DWithin(raster, raster) and regression tests. Ticket is
-	  #1922
+	* [r10112] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_dwithin.sql,
+	  raster/test/regress/rt_dwithin_expected: Added ST_DWithin(raster,
+	  raster) and regression tests. Ticket is #1922
 
-2012-07-25 03:35  dustymugs
+2012-07-25 03:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_raster_within_distance() and regression tests
+	* [r10111] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Added rt_raster_within_distance() and
+	  regression tests
 
-2012-07-24 18:01  dustymugs
+2012-07-24 18:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Disjoint(raster, raster), regression tests and docs.
-	  Ticket is
+	* [r10110] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_disjoint.sql,
+	  raster/test/regress/rt_disjoint_expected: Added
+	  ST_Disjoint(raster, raster), regression tests and docs. Ticket is
 
-2012-07-23 22:57  dustymugs
+2012-07-23 22:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added to docs for ST_CoveredBy
+	* [r10109] NEWS, doc/reference_raster.xml: Added to docs for
+	  ST_CoveredBy
 
-2012-07-23 22:57  dustymugs
+2012-07-23 22:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_CoveredBy and regression tests. Ticket is #1917.
+	* [r10108] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_coveredby.sql,
+	  raster/test/regress/rt_coveredby_expected: Added ST_CoveredBy and
+	  regression tests. Ticket is #1917.
 
-2012-07-23 22:57  dustymugs
+2012-07-23 22:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed missing closing tag
+	* [r10107] doc/reference_raster.xml: Fixed missing closing tag
 
-2012-07-23 22:57  dustymugs
+2012-07-23 22:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_raster_covered_by() and related tests
+	* [r10106] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Added rt_raster_covered_by() and
+	  related tests
 
-2012-07-23 22:56  dustymugs
+2012-07-23 22:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_Covers()
+	* [r10105] NEWS, doc/reference_raster.xml: Added docs for
+	  ST_Covers()
 
-2012-07-23 22:56  dustymugs
+2012-07-23 22:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Covers() and regression tests. Ticket is #1916
+	* [r10104] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_covers.sql,
+	  raster/test/regress/rt_covers_expected: Added ST_Covers() and
+	  regression tests. Ticket is #1916
 
-2012-07-23 22:56  dustymugs
+2012-07-23 22:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_raster_covers() and regression tests
+	* [r10103] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Added rt_raster_covers() and
+	  regression tests
 
-2012-07-23 18:58  dustymugs
+2012-07-23 18:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_ContainsProperly(raster, raster) and minor
-	  tweaking of
+	* [r10102] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h: Added docs for
+	  ST_ContainsProperly(raster, raster) and minor tweaking of
 	  comments
 
-2012-07-23 18:58  dustymugs
+2012-07-23 18:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_ContainsProperly(raster, raster) and regression tests
+	* [r10101] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_contains.sql,
+	  raster/test/regress/rt_contains_expected,
+	  raster/test/regress/rt_containsproperly.sql,
+	  raster/test/regress/rt_containsproperly_expected: Added
+	  ST_ContainsProperly(raster, raster) and regression tests
 
-2012-07-23 18:58  dustymugs
+2012-07-23 18:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of rt_raster_contains_properly and regression tests
+	* [r10100] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Addition of
+	  rt_raster_contains_properly and regression tests
 
-2012-07-23 17:50  dustymugs
+2012-07-23 17:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added regression tests for ST_Within(raster, raster). Ticket is
-	  #1923.
+	* [r10099] raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_within.sql,
+	  raster/test/regress/rt_within_expected: Added regression tests
+	  for ST_Within(raster, raster). Ticket is #1923.
 
-2012-07-23 17:50  dustymugs
+2012-07-23 17:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor fixups to ST_Polygon in docs. Ticket is #1929.
+	* [r10098] doc/reference_raster.xml: Minor fixups to ST_Polygon in
+	  docs. Ticket is #1929.
 
-2012-07-23 17:50  dustymugs
+2012-07-23 17:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor changes to comments
+	* [r10097] raster/rt_pg/rtpostgis_drop.sql.in.c: Minor changes to
+	  comments
 
-2012-07-23 17:50  dustymugs
+2012-07-23 17:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of docs for ST_Within(raster, raster)
+	* [r10096] NEWS, doc/reference_raster.xml: Addition of docs for
+	  ST_Within(raster, raster)
 
-2012-07-23 17:49  dustymugs
+2012-07-23 17:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Reintroduced ST_Intersects(geometry, raster) and
-	  ST_Intersects(raster,
+	* [r10095] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_intersects.sql,
+	  raster/test/regress/rt_intersects_expected: Reintroduced
+	  ST_Intersects(geometry, raster) and ST_Intersects(raster,
 	  geometry). Added notes regarding the use of ST_Polygon when
 	  needing to
 	  test the spatial relationship between a raster and a geometry.
 
-2012-07-23 17:49  dustymugs
+2012-07-23 17:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_Contains(raster, raster)
+	* [r10094] doc/reference_raster.xml: Added docs for
+	  ST_Contains(raster, raster)
 
-2012-07-23 17:49  dustymugs
+2012-07-23 17:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated regression tests to reflect the removal of various
-	  functions
+	* [r10093] raster/test/regress/rt_contains.sql,
+	  raster/test/regress/rt_contains_expected,
+	  raster/test/regress/rt_intersects.sql,
+	  raster/test/regress/rt_intersects_expected,
+	  raster/test/regress/rt_overlaps.sql,
+	  raster/test/regress/rt_overlaps_expected,
+	  raster/test/regress/rt_touches.sql,
+	  raster/test/regress/rt_touches_expected: Updated regression tests
+	  to reflect the removal of various functions
 
-2012-07-23 17:49  dustymugs
+2012-07-23 17:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed all raster/geometry variants of ST_Intersects,
-	  ST_Overlaps,
+	* [r10092] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Removed all raster/geometry
+	  variants of ST_Intersects, ST_Overlaps,
 	  ST_Touches and ST_Contains.
 
-2012-07-23 17:49  dustymugs
+2012-07-23 17:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed geometry-based ST_Touches for raster,geometry
-	  combinations.
+	* [r10091] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Removed geometry-based
+	  ST_Touches for raster,geometry combinations.
 
-2012-07-23 17:49  dustymugs
+2012-07-23 17:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed vector-space (geometry-based) variants of ST_Overlaps.
-	  Only
+	* [r10090] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Removed vector-space
+	  (geometry-based) variants of ST_Overlaps. Only
 	  raster-space versions remain.
 
-2012-07-23 17:49  dustymugs
+2012-07-23 17:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_Contains and regression tests. Ticket is #1914
+	* [r10089] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_contains.sql,
+	  raster/test/regress/rt_contains_expected: Addition of ST_Contains
+	  and regression tests. Ticket is #1914
 
-2012-07-23 17:49  dustymugs
+2012-07-23 17:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_raster_contains() and regression tests
+	* [r10088] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Added rt_raster_contains() and
+	  regression tests
 
-2012-07-23 17:49  dustymugs
+2012-07-23 17:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed some commented out code and added more debug output
+	* [r10087] raster/rt_core/rt_api.c: Removed some commented out code
+	  and added more debug output
 
-2012-07-23 00:46  robe
+2012-07-23 00:46  Regina Obe <lr at pcorp.us>
 
-	* #1929 document behavior change and speed improvements
+	* [r10086] doc/reference_raster.xml: #1929 document behavior change
+	  and speed improvements
 
-2012-07-20 00:31  dustymugs
+2012-07-20 00:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition debug messages and disabled one regression test for
-	  ST_Touches
+	* [r10081] raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_touches.sql,
+	  raster/test/regress/rt_touches_expected: Addition debug messages
+	  and disabled one regression test for ST_Touches
 	  due to floating point issues. Will need to see the WKB output.
 
-2012-07-19 23:53  dustymugs
+2012-07-19 23:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code cleanup and additional debug output
+	* [r10080] raster/rt_core/rt_api.c: Code cleanup and additional
+	  debug output
 
-2012-07-19 20:10  dustymugs
+2012-07-19 20:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated NEWS and docs for ST_Touches()
+	* [r10079] NEWS, doc/reference_raster.xml: Updated NEWS and docs
+	  for ST_Touches()
 
-2012-07-19 20:10  dustymugs
+2012-07-19 20:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_Touches() for rasters and related regression
-	  tests.
+	* [r10078] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_touches.sql,
+	  raster/test/regress/rt_touches_expected: Addition of ST_Touches()
+	  for rasters and related regression tests.
 	  Ticket is #1921
 
-2012-07-19 20:10  dustymugs
+2012-07-19 20:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* Remove rt_spatial_relationship regression tests as similar tests
-	  are
+	* [r10077] raster/test/regress/rt_spatial_relationship.sql,
+	  raster/test/regress/rt_spatial_relationship_expected: Remove
+	  rt_spatial_relationship regression tests as similar tests are
 	  done in rt_intersects and rt_intersection
 
-2012-07-19 20:09  dustymugs
+2012-07-19 20:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* Extracted most of code in rt_raster_overlaps to create generic
-	  GEOS
+	* [r10076] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Extracted most of code in
+	  rt_raster_overlaps to create generic GEOS
 	  spatial relationship testing function
 	  rt_raster_geos_spatial_relationship(). Refactored
 	  rt_raster_overlaps()
@@ -7065,1242 +15910,1621 @@
 	  rt_raster_touches()
 	  and associated regression tests
 
-2012-07-19 18:18  dustymugs
+2012-07-19 18:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_Overlaps
+	* [r10075] NEWS, doc/reference_raster.xml: Added docs for
+	  ST_Overlaps
 
-2012-07-19 18:18  dustymugs
+2012-07-19 18:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Overlaps() and associated regression tests
+	* [r10074] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_intersects.sql,
+	  raster/test/regress/rt_overlaps.sql,
+	  raster/test/regress/rt_overlaps_expected: Added ST_Overlaps() and
+	  associated regression tests
 
-2012-07-19 18:18  dustymugs
+2012-07-19 18:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of rt_raster_overlaps and related regression tests.
-	  Fixed
+	* [r10073] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Addition of
+	  rt_raster_overlaps and related regression tests. Fixed
 	  memory leaks in rt_raster_surface.
 
-2012-07-19 18:18  dustymugs
+2012-07-19 18:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed code preventing use of rt_raster_intersects on offline
-	  bands as
+	* [r10072] raster/rt_core/rt_api.c: Removed code preventing use of
+	  rt_raster_intersects on offline bands as
 	  offline bands are supported
 
-2012-07-19 18:18  dustymugs
+2012-07-19 18:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor documentation change regarding && operator and tweaked one
+	* [r10071] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Minor documentation change
+	  regarding && operator and tweaked one
 	  variant of st_intersects
 
-2012-07-19 17:00  pramsey
+2012-07-19 17:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in geography note
+	* [r10070] NEWS: Add in geography note
 
-2012-07-17 22:38  dustymugs
+2012-07-17 22:38  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed ST_Polygon regression tests to properly handle different
-	  GEOS
+	* [r10069] raster/test/regress/rt_polygon.sql,
+	  raster/test/regress/rt_polygon_expected: Fixed ST_Polygon
+	  regression tests to properly handle different GEOS
 	  versions
 
-2012-07-17 22:37  dustymugs
+2012-07-17 22:37  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix function creation statement
+	* [r10068] raster/rt_pg/rtpostgis.sql.in.c: Fix function creation
+	  statement
 
-2012-07-17 22:37  dustymugs
+2012-07-17 22:37  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added cleanup code for removing ST_BandSurface
+	* [r10067] raster/rt_pg/rtpostgis_drop.sql.in.c: Added cleanup code
+	  for removing ST_BandSurface
 
-2012-07-17 22:37  dustymugs
+2012-07-17 22:37  Bborie Park <bkpark at ucdavis.edu>
 
-	* Regression tests intended for ST_BandSurface are now for
-	  ST_Polygon
+	* [r10066] raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_bandsurface.sql,
+	  raster/test/regress/rt_bandsurface_expected,
+	  raster/test/regress/rt_polygon.sql,
+	  raster/test/regress/rt_polygon_expected: Regression tests
+	  intended for ST_BandSurface are now for ST_Polygon
 
-2012-07-17 22:37  dustymugs
+2012-07-17 22:37  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed ST_BandSurface as ST_Polygon does the same thing, just in
-	  SQL.
+	* [r10065] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c,
+	  raster/test/regress/rt_bandsurface_expected: Removed
+	  ST_BandSurface as ST_Polygon does the same thing, just in SQL.
 	  Changed ST_Polygon to point use C function instead of sql.
 	  Refactored rt_raster_surface to match performance of SQL-only
 	  ST_Polygon.
 
-2012-07-16 03:17  robe
+2012-07-16 03:17  Regina Obe <lr at pcorp.us>
 
-	* additional cleanup to insure settings are consistent
+	* [r10064] extras/tiger_geocoder/tiger_2011/regress/regress.sql:
+	  additional cleanup to insure settings are consistent
 
-2012-07-16 03:11  robe
+2012-07-16 03:11  Regina Obe <lr at pcorp.us>
 
-	* #1913 regress check
+	* [r10063]
+	  extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress,
+	  extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress.sql:
+	  #1913 regress check
 
-2012-07-16 03:09  robe
+2012-07-16 03:09  Regina Obe <lr at pcorp.us>
 
-	* #1913 reverse geocoder sometimes gives least optimal answer
+	* [r10062]
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql:
+	  #1913 reverse geocoder sometimes gives least optimal answer
 	  because of sorting issue
 
-2012-07-14 00:14  dustymugs
+2012-07-14 00:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated TODO since a bunch of functions just had tickets created.
+	* [r10061] raster/TODO: Updated TODO since a bunch of functions
+	  just had tickets created.
 
-2012-07-13 23:44  dustymugs
+2012-07-13 23:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated TODO and refactored ST_Intersects(geometry, raster) to
-	  use
+	* [r10060] raster/TODO, raster/rt_pg/rtpostgis.sql.in.c: Updated
+	  TODO and refactored ST_Intersects(geometry, raster) to use
 	  ST_BandSurface()
 
-2012-07-13 23:29  dustymugs
+2012-07-13 23:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs and updated NEWS for ST_BandSurface
+	* [r10059] NEWS, doc/reference_raster.xml: Added docs and updated
+	  NEWS for ST_BandSurface
 
-2012-07-13 23:28  dustymugs
+2012-07-13 23:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_BandSurface and regressions tests. Ticket is #1911
+	* [r10058] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_bandsurface.sql,
+	  raster/test/regress/rt_bandsurface_expected: Addition of
+	  ST_BandSurface and regressions tests. Ticket is #1911
 
-2012-07-13 23:28  dustymugs
+2012-07-13 23:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional tests for rt_raster_surface()
+	* [r10057] raster/test/core/testapi.c: Additional tests for
+	  rt_raster_surface()
 
-2012-07-13 23:28  dustymugs
+2012-07-13 23:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional comments regarding use of lwgeom_as_multi() and the
+	* [r10056] raster/rt_core/rt_api.c: Additional comments regarding
+	  use of lwgeom_as_multi() and the
 	  lwgeom_clone_deep()
 
-2012-07-13 23:28  dustymugs
+2012-07-13 23:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of rt_raster_surface() function and related regression
+	* [r10055] raster/rt_core/rt_api.c, raster/test/core/testapi.c:
+	  Addition of rt_raster_surface() function and related regression
 	  test.
 	  Added regression test for rt_raster_pixel_as_polygon.
 
-2012-07-13 23:28  dustymugs
+2012-07-13 23:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Initial commit of rt_raster_surface() with base regression tests
+	* [r10054] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Initial commit of rt_raster_surface()
+	  with base regression tests
 
-2012-07-12 17:24  pramsey
+2012-07-12 17:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in test for node splitting with nulls and empties (#1905)
+	* [r10051] regress/regress_index_nulls.sql,
+	  regress/regress_index_nulls_expected: Add in test for node
+	  splitting with nulls and empties (#1905)
 
-2012-07-12 13:49  dustymugs
+2012-07-12 13:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed word choice "Supported" instead of "Available"
+	* [r10050] raster/loader/raster2pgsql.c: Changed word choice
+	  "Supported" instead of "Available"
 
-2012-07-12 03:38  pramsey
+2012-07-12 03:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Allow circtree nodes to have more than 2 children (#1910)
+	* [r10046] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, liblwgeom/lwgeodetic_tree.c,
+	  liblwgeom/lwgeodetic_tree.h: Allow circtree nodes to have more
+	  than 2 children (#1910)
 
-2012-07-11 19:33  pramsey
+2012-07-11 19:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Comment on methodology behind tree node merging
+	* [r10045] liblwgeom/lwgeodetic_tree.c: Comment on methodology
+	  behind tree node merging
 
-2012-07-11 18:15  pramsey
+2012-07-11 18:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Complete geography performance work (#1796), move testing
-	  functions into _ST_* name space for privacy, add regression tests
-	  for issues encountered during development.
+	* [r10044] postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c,
+	  postgis/geography_measurement_trees.c,
+	  postgis/geography_measurement_trees.h, regress/Makefile.in,
+	  regress/geography.sql, regress/geography_expected: Complete
+	  geography performance work (#1796), move testing functions into
+	  _ST_* name space for privacy, add regression tests for issues
+	  encountered during development.
 
-2012-07-11 04:14  pramsey
+2012-07-11 04:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add note for future pain
+	* [r10043] liblwgeom/lwgeodetic.c: Add note for future pain
 
-2012-07-11 04:05  pramsey
+2012-07-11 04:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix issue with projecting from the poles, retain the source
-	  longitude for more sensible result.
+	* [r10042] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic_tree.c,
+	  postgis/geography_measurement_trees.c: Fix issue with projecting
+	  from the poles, retain the source longitude for more sensible
+	  result.
 
-2012-07-10 20:32  pramsey
+2012-07-10 20:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix a NaN result leaking into the tree building algorithm
-	  (optimized 32 bit code only!).
+	* [r10041] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeodetic_tree.c,
+	  postgis/geography_measurement_trees.c: Fix a NaN result leaking
+	  into the tree building algorithm (optimized 32 bit code only!).
 
-2012-07-10 20:27  strk
+2012-07-10 20:27  Sandro Santilli <strk at keybit.net>
 
-	* Create target dir if non-existing
+	* [r10039] extensions/postgis_topology/Makefile.in: Create target
+	  dir if non-existing
 
-2012-07-06 23:50  pramsey
+2012-07-06 23:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Handle best SRID finding for shapes the cross the poles and
+	* [r10038] liblwgeom/cunit/cu_geodetic.c, liblwgeom/g_box.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeodetic.c,
+	  postgis/geography_measurement.c, regress/bestsrid_expected:
+	  Handle best SRID finding for shapes the cross the poles and
 	  dateline. Also add some new larger zones in gnomic for larger
 	  shapes. (#1610)
 
-2012-07-05 19:15  pramsey
+2012-07-05 19:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix issue where the cached object is a point and the uncached one
-	  is a polygon. (#1796)
+	* [r10037] liblwgeom/lwgeodetic_tree.c,
+	  postgis/geography_measurement.c,
+	  postgis/geography_measurement_trees.c: Fix issue where the cached
+	  object is a point and the uncached one is a polygon. (#1796)
 
-2012-07-05 16:50  pramsey
+2012-07-05 16:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Support for larger objects in ST_Intersection(geography) (#1610)
+	* [r10036] libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h, postgis/geography_measurement.c:
+	  Support for larger objects in ST_Intersection(geography) (#1610)
 	  This adds a set of larger regions that are handled with a gnomic
 	  projection. It could also use an orthographic. There's still a
 	  case to be handled for objects that cross the dateline or poles.
 
-2012-07-04 18:11  pramsey
+2012-07-04 18:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix problems with circtree building on short edges near the
-	  poles. (#1796)
+	* [r10035] liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic_tree.c: Fix problems with circtree building
+	  on short edges near the poles. (#1796)
 
-2012-07-04 13:12  strk
+2012-07-04 13:12  Sandro Santilli <strk at keybit.net>
 
-	* Fix pgsql2shp for big-endian systems (#1900)
+	* [r10034] loader/pgsql2shp-core.c: Fix pgsql2shp for big-endian
+	  systems (#1900)
 	  
 	  Submitted By: Ryan Oliver <ryan.oliver at dse.vic.gov.au>
 
-2012-07-04 00:47  dustymugs
+2012-07-04 00:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed return value of rt_pixtype_get_min_value() when pixel
-	  type is
+	* [r10031] raster/rt_core/rt_api.c: Changed return value of
+	  rt_pixtype_get_min_value() when pixel type is
 	  unknown
 
-2012-07-04 00:33  dustymugs
+2012-07-04 00:33  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed how the minimum possible value of a pixel type was being
+	* [r10029] raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_histogram_expected,
+	  raster/test/regress/rt_nearestvalue.sql,
+	  raster/test/regress/rt_nearestvalue_expected,
+	  raster/test/regress/rt_neighborhood.sql,
+	  raster/test/regress/rt_neighborhood_expected,
+	  raster/test/regress/rt_pixelaspolygons.sql,
+	  raster/test/regress/rt_pixelaspolygons_expected,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_quantile_expected,
+	  raster/test/regress/rt_summarystats.sql,
+	  raster/test/regress/rt_summarystats_expected,
+	  raster/test/regress/rt_valuecount.sql,
+	  raster/test/regress/rt_valuecount_expected: Fixed how the minimum
+	  possible value of a pixel type was being
 	  determined. Added regression tests for band without NODATA.
 
-2012-07-03 23:40  dustymugs
+2012-07-03 23:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed handling of pixel value check for NODATA
+	* [r10028] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Fixed
+	  handling of pixel value check for NODATA
 
-2012-07-03 22:30  dustymugs
+2012-07-03 22:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_PixelAsPoints and ST_PixelAsCentroids and
-	  update NEWS
+	* [r10027] NEWS, doc/reference_raster.xml: Added docs for
+	  ST_PixelAsPoints and ST_PixelAsCentroids and update NEWS
 
-2012-07-03 22:30  dustymugs
+2012-07-03 22:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of notes differentiating ST_DumpPolygons and
+	* [r10026] doc/reference_raster.xml: Addition of notes
+	  differentiating ST_DumpPolygons and
 	  ST_PixelsAsPolygons
 
-2012-07-03 22:30  dustymugs
+2012-07-03 22:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of regression tests for ST_PixelAsCentroids and
+	* [r10025] raster/test/regress/rt_pixelascentroids.sql,
+	  raster/test/regress/rt_pixelascentroids_expected,
+	  raster/test/regress/rt_pixelaspoints.sql,
+	  raster/test/regress/rt_pixelaspoints_expected: Addition of
+	  regression tests for ST_PixelAsCentroids and
 	  ST_PixelAsPoints
 
-2012-07-03 22:30  dustymugs
+2012-07-03 22:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_PixelAsPoints and ST_PixelAsCentroids
+	* [r10024] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in: Addition of ST_PixelAsPoints and
+	  ST_PixelAsCentroids
 
-2012-07-03 22:30  dustymugs
+2012-07-03 22:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed RASTER_getPixelPolygon as it has been replaced with
+	* [r10023] raster/rt_pg/rt_pg.c: Removed RASTER_getPixelPolygon as
+	  it has been replaced with
 	  RASTER_getPixelPolygons
 
-2012-07-03 22:30  dustymugs
+2012-07-03 22:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Change signature of ST_PixelAsPolygons() and added regression
-	  tests.
+	* [r10022] doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_intersection.sql,
+	  raster/test/regress/rt_intersection_expected,
+	  raster/test/regress/rt_pixelaspolygons.sql,
+	  raster/test/regress/rt_pixelaspolygons_expected: Change signature
+	  of ST_PixelAsPolygons() and added regression tests.
 
-2012-07-03 22:29  dustymugs
+2012-07-03 22:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added check for empty raster to RASTER_getPixelPolygons
+	* [r10021] raster/rt_pg/rt_pg.c: Added check for empty raster to
+	  RASTER_getPixelPolygons
 
-2012-07-03 22:29  dustymugs
+2012-07-03 22:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored ST_PixelAsPolygons to call a C function and have
-	  enhanced
+	* [r10020] doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/rt_intersection.sql,
+	  raster/test/regress/rt_intersection_expected: Refactored
+	  ST_PixelAsPolygons to call a C function and have enhanced
 	  capabilities. Additional variants and regression tests are next.
 
-2012-07-03 22:29  dustymugs
+2012-07-03 22:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Renamed "hasnodata" function parameter to "exclude_nodata_value"
+	* [r10019] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Renamed "hasnodata"
+	  function parameter to "exclude_nodata_value"
 
-2012-07-03 20:08  robe
+2012-07-03 20:08  Regina Obe <lr at pcorp.us>
 
-	* fix typos
+	* [r10018] doc/reference_processing.xml: fix typos
 
-2012-07-03 19:45  robe
+2012-07-03 19:45  Regina Obe <lr at pcorp.us>
 
-	* Admit defeat and render geometries old-fashoined way
+	* [r10017] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_delaunaytriangles02.wkt,
+	  doc/html/image_src/st_delaunaytriangles03.wkt,
+	  doc/html/images/st_delaunaytriangles01.png,
+	  doc/html/images/st_delaunaytriangles02.png,
+	  doc/html/images/st_delaunaytriangles03.png,
+	  doc/reference_processing.xml: Admit defeat and render geometries
+	  old-fashoined way
 
-2012-07-03 19:18  robe
+2012-07-03 19:18  Regina Obe <lr at pcorp.us>
 
-	* let see if a geom collection works
+	* [r10016] doc/html/image_src/st_delaunaytriangles02.wkt: let see
+	  if a geom collection works
 
-2012-07-03 19:11  robe
+2012-07-03 19:11  Regina Obe <lr at pcorp.us>
 
-	* lets take out completely for now.
+	* [r10015] doc/html/image_src/st_delaunaytriangles02.wkt: lets take
+	  out completely for now.
 
-2012-07-03 19:04  robe
+2012-07-03 19:04  Regina Obe <lr at pcorp.us>
 
-	* break out multiline into separate linestrings hopefully wkt
-	  parser can deal with this better
+	* [r10014] doc/html/image_src/st_delaunaytriangles02.wkt: break out
+	  multiline into separate linestrings hopefully wkt parser can deal
+	  with this better
 
-2012-07-03 18:44  pramsey
+2012-07-03 18:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in ST_DistanceTree for testing purposes. Do not document.
+	* [r10013] postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c,
+	  postgis/geography_measurement_trees.c,
+	  postgis/geography_measurement_trees.h: Add in ST_DistanceTree for
+	  testing purposes. Do not document.
 
-2012-07-03 16:13  robe
+2012-07-03 16:13  Regina Obe <lr at pcorp.us>
 
-	* one more try
+	* [r10012] doc/html/image_src/st_delaunaytriangles02.wkt: one more
+	  try
 
-2012-07-03 15:50  robe
+2012-07-03 15:50  Regina Obe <lr at pcorp.us>
 
-	* forgot to commit wkt files
+	* [r10011] doc/html/image_src/st_delaunaytriangles02.wkt,
+	  doc/html/image_src/st_delaunaytriangles03.wkt: forgot to commit
+	  wkt files
 
-2012-07-03 15:45  robe
+2012-07-03 15:45  Regina Obe <lr at pcorp.us>
 
-	* some examples of delaunay triangles
+	* [r10010] doc/html/image_src/Makefile.in,
+	  doc/reference_processing.xml: some examples of delaunay triangles
 
-2012-07-03 13:58  strk
+2012-07-03 13:58  Sandro Santilli <strk at keybit.net>
 
-	* Be tolerant with regressing against GEOS-3.2.0
+	* [r10009] regress/tickets.sql, regress/tickets_expected: Be
+	  tolerant with regressing against GEOS-3.2.0
 
-2012-07-03 13:16  dustymugs
+2012-07-03 13:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* cleanup of examples for ST_Raster2WorldCoord()
+	* [r10008] doc/reference_raster.xml: cleanup of examples for
+	  ST_Raster2WorldCoord()
 
-2012-07-03 07:57  robe
+2012-07-03 07:57  Regina Obe <lr at pcorp.us>
 
-	* update unpackaged. Need to make this an automated task perhaps
+	* [r10007] extensions/postgis/sql_bits/postgis--unpackaged.sql.in:
+	  update unpackaged. Need to make this an automated task perhaps
 	  thru jenkins first.
 
-2012-07-01 14:24  pramsey
+2012-07-01 14:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix problem thresholded distance searching in circ-trees. (#1796)
+	* [r10006] liblwgeom/lwgeodetic_tree.c: Fix problem thresholded
+	  distance searching in circ-trees. (#1796)
 
-2012-06-30 21:18  pramsey
+2012-06-30 21:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix cache coherence error where the trees were being built on top
-	  of geometries which would get freed out from underneath them.
-	  Instead build them on the cached representations we're carrying
-	  around anyways (#1796)
+	* [r10005] libpgcommon/lwgeom_cache.c: Fix cache coherence error
+	  where the trees were being built on top of geometries which would
+	  get freed out from underneath them. Instead build them on the
+	  cached representations we're carrying around anyways (#1796)
 
-2012-06-29 20:48  dustymugs
+2012-06-29 20:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* int32 instead of int4 as per Peter Eisentraut on postgis-devel.
+	* [r10004] raster/rt_pg/rt_pg.c: int32 instead of int4 as per Peter
+	  Eisentraut on postgis-devel.
 
-2012-06-29 19:00  dustymugs
+2012-06-29 19:00  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added svn:keywords entry and removed TODO item as ticket already
-	  exists.
+	* [r10002] raster/TODO: Added svn:keywords entry and removed TODO
+	  item as ticket already exists.
 
-2012-06-29 17:10  strk
+2012-06-29 17:10  Sandro Santilli <strk at keybit.net>
 
-	* Let testing temp dir be settable using PGIS_REG_TMPDIR
+	* [r9999] regress/run_test, regress/run_test.pl: Let testing temp
+	  dir be settable using PGIS_REG_TMPDIR
 	  
 	  Prior to this change you could change it using the TMPDIR
 	  variable
 	  but that one could have been used by other software as well.
 
-2012-06-29 02:06  dustymugs
+2012-06-29 02:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed line issues. Added another TODO item.
+	* [r9997] raster/TODO: Fixed line issues. Added another TODO item.
 
-2012-06-29 01:58  dustymugs
+2012-06-29 01:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Line formatting
+	* [r9996] raster/TODO: Line formatting
 
-2012-06-28 17:31  dustymugs
+2012-06-28 17:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added raster TODO. Ticket is #1672
+	* [r9995] raster/TODO: Added raster TODO. Ticket is #1672
 
-2012-06-27 15:53  strk
+2012-06-27 15:53  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_DelaunayTriangles (#1215)
+	* [r9994] NEWS, doc/reference_processing.xml,
+	  postgis/lwgeom_geos.c, postgis/postgis.sql.in.c,
+	  regress/Makefile.in, regress/delaunaytriangles.sql,
+	  regress/delaunaytriangles_expected: Add ST_DelaunayTriangles
+	  (#1215)
 
-2012-06-27 14:26  strk
+2012-06-27 14:26  Sandro Santilli <strk at keybit.net>
 
-	* Add lwgeom_delaunay_triangulation (#1215)
+	* [r9993] liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_triangulate.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeom_geos.c: Add lwgeom_delaunay_triangulation
+	  (#1215)
 
-2012-06-27 08:26  strk
+2012-06-27 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Use LDFLAGS environment when building liblwgeom (#1891)
+	* [r9992] liblwgeom/Makefile.in: Use LDFLAGS environment when
+	  building liblwgeom (#1891)
 	  
 	  Thanks mweisman
 
-2012-06-26 20:01  dustymugs
+2012-06-26 20:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Int32GetDatum() not Int64GetDatum()
+	* [r9989] raster/rt_pg/rt_pg.c: Int32GetDatum() not Int64GetDatum()
 
-2012-06-26 18:17  dustymugs
+2012-06-26 18:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Cleanup of needless dynamic memory allocations
+	* [r9988] raster/rt_pg/rt_pg.c: Cleanup of needless dynamic memory
+	  allocations
 
-2012-06-26 18:17  dustymugs
+2012-06-26 18:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_PixelOfValue. Ticket is #1889.
+	* [r9987] NEWS, doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_pixelofvalue.sql,
+	  raster/test/regress/rt_pixelofvalue_expected: Addition of
+	  ST_PixelOfValue. Ticket is #1889.
 
-2012-06-26 18:17  dustymugs
+2012-06-26 18:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed improper freeing of memory.
+	* [r9986] raster/rt_pg/rt_pg.c: Removed improper freeing of memory.
 
-2012-06-25 09:06  robe
+2012-06-25 09:06  Regina Obe <lr at pcorp.us>
 
-	* #1866 -- apply same geom_equal hack as we did in build area so
-	  differnt order of geometries in resulting geomcollection is
-	  ignored
+	* [r9983] liblwgeom/cunit/cu_clean.c: #1866 -- apply same
+	  geom_equal hack as we did in build area so differnt order of
+	  geometries in resulting geomcollection is ignored
 
-2012-06-24 19:31  robe
+2012-06-24 19:31  Regina Obe <lr at pcorp.us>
 
-	* 2.0.1 ticket notes
+	* [r9982] NEWS, doc/release_notes.xml: 2.0.1 ticket notes
 
-2012-06-22 17:54  pramsey
+2012-06-22 17:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix a currently defined-out function signature mismatch.
+	* [r9974] postgis/geometry_estimate.c: Fix a currently defined-out
+	  function signature mismatch.
 
-2012-06-22 05:52  robe
+2012-06-22 05:52  Regina Obe <lr at pcorp.us>
 
-	* fix census tract loader for sh
+	* [r9973] extras/tiger_geocoder/tiger_2011/create_geocode.sh: fix
+	  census tract loader for sh
 
-2012-06-21 22:24  mcayland
+2012-06-21 22:24  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove auto-resizing columns from text fields in shp2pgsql-gui as
-	  they seem to be the cause of #1881.
+	* [r9971] loader/shp2pgsql-gui.c: Remove auto-resizing columns from
+	  text fields in shp2pgsql-gui as they seem to be the cause of
+	  #1881.
 
-2012-06-21 20:18  dustymugs
+2012-06-21 20:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed the string "MISSING GDAL DATA" to "GDAL_DATA not found".
+	* [r9969] raster/rt_pg/rt_pg.c, raster/test/regress/check_gdal.sql:
+	  Changed the string "MISSING GDAL DATA" to "GDAL_DATA not found".
 
-2012-06-21 20:18  dustymugs
+2012-06-21 20:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added method that includes the string "MISSING GDAL DATA" in the
-	  output
+	* [r9968] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/check_gdal.sql,
+	  raster/test/regress/check_gdal_expected: Added method that
+	  includes the string "MISSING GDAL DATA" in the output
 	  of postgis_gdal_version() if GDAL is unable to access its data
 	  files
 
-2012-06-21 11:02  robe
+2012-06-21 11:02  Regina Obe <lr at pcorp.us>
 
-	* #1759: ST_Transform fix for geography
+	* [r9965] loader/shp2pgsql-core.c: #1759: ST_Transform fix for
+	  geography
 
-2012-06-20 19:32  pramsey
+2012-06-20 19:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Hey kid, here's quarter, go buy yourself a compiler.
+	* [r9963] postgis/geography_measurement_trees.c: Hey kid, here's
+	  quarter, go buy yourself a compiler.
 
-2012-06-20 19:29  pramsey
+2012-06-20 19:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Don't try to do tree caching tricks when the arguments are both
-	  points, that's silly.
+	* [r9962] postgis/geography_measurement_trees.c: Don't try to do
+	  tree caching tricks when the arguments are both points, that's
+	  silly.
 
-2012-06-20 03:32  robe
+2012-06-20 03:32  Regina Obe <lr at pcorp.us>
 
-	* might as well change last geos version to latest release we
-	  technically don't even support 3.3.0
+	* [r9961] doc/postgis.xml: might as well change last geos version
+	  to latest release we technically don't even support 3.3.0
 
-2012-06-20 03:32  robe
+2012-06-20 03:32  Regina Obe <lr at pcorp.us>
 
-	* Change minimum postgres version from 8.4 to 9.0
+	* [r9960] doc/postgis.xml: Change minimum postgres version from 8.4
+	  to 9.0
 
-2012-06-20 03:01  pramsey
+2012-06-20 03:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_LocateAlong chokes on some value combinations (#1874)
+	* [r9958] liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/lwlinearreferencing.c: ST_LocateAlong chokes on some
+	  value combinations (#1874)
 
-2012-06-19 22:09  dustymugs
+2012-06-19 22:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored aggregate ST_SameAlignment to return NULL if one of
-	  the
+	* [r9957] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/rt_samealignment.sql,
+	  raster/test/regress/rt_samealignment_expected: Refactored
+	  aggregate ST_SameAlignment to return NULL if one of the
 	  rasters passed in is NULL. Added regression tests for aggegrate
 	  ST_SameAlignment.
 
-2012-06-19 20:47  pramsey
+2012-06-19 20:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_InterpolatePoint returns empty M value (#1873)
+	* [r9955] liblwgeom/cunit/cu_ptarray.c, liblwgeom/ptarray.c:
+	  ST_InterpolatePoint returns empty M value (#1873)
 
-2012-06-19 19:08  dustymugs
+2012-06-19 19:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of aggregate variant of ST_SameAlignment. Ticket is
-	  #1661.
+	* [r9953] NEWS, doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Addition of aggregate variant of
+	  ST_SameAlignment. Ticket is #1661.
 
-2012-06-19 19:08  dustymugs
+2012-06-19 19:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor cleanup of comments
+	* [r9952] raster/rt_pg/rtpostgis.sql.in.c: Minor cleanup of
+	  comments
 
-2012-06-19 18:11  pramsey
+2012-06-19 18:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix mistake in tree p-i-p return value.
+	* [r9951] liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic_tree.c:
+	  Fix mistake in tree p-i-p return value.
 
-2012-06-19 16:46  pramsey
+2012-06-19 16:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix mistaken error trap in st_dwithincached
+	* [r9950] postgis/geography_measurement.c: Fix mistaken error trap
+	  in st_dwithincached
 
-2012-06-19 03:42  pramsey
+2012-06-19 03:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in SQL binding for circ-tree cached searching. Currently in
-	  *Cached variants to allow comparisons.
+	* [r9949] liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeom.c, liblwgeom/lwpoly.c,
+	  liblwgeom/ptarray.c, postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c,
+	  postgis/geography_measurement_trees.c,
+	  postgis/geography_measurement_trees.h: Add in SQL binding for
+	  circ-tree cached searching. Currently in *Cached variants to
+	  allow comparisons.
 
-2012-06-18 23:59  pramsey
+2012-06-18 23:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix mistake in handling crossings-at-a-vertex
+	* [r9948] liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic_tree.c:
+	  Fix mistake in handling crossings-at-a-vertex
 
-2012-06-18 22:58  dustymugs
+2012-06-18 22:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated NEWS of recent fixes to trunk
+	* [r9947] NEWS: Updated NEWS of recent fixes to trunk
 
-2012-06-18 22:48  dustymugs
+2012-06-18 22:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Behavior is consistent across ST_Intersects(raster, ...)
-	  variants.
+	* [r9946] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Behavior is consistent across
+	  ST_Intersects(raster, ...) variants.
 	  Synced docs of ST_Intersects to actual behavior. Ticket is #1870.
 
-2012-06-18 22:48  dustymugs
+2012-06-18 22:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of comments to RASTER_mapAlgebra2()
+	* [r9945] raster/rt_pg/rt_pg.c: Addition of comments to
+	  RASTER_mapAlgebra2()
 
-2012-06-18 22:47  dustymugs
+2012-06-18 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added check before calling PG_FREE_IF_COPY() in
+	* [r9944] raster/rt_pg/rt_pg.c, raster/test/regress/Makefile.in:
+	  Added check before calling PG_FREE_IF_COPY() in
 	  RASTER_mapAlgebra2()
 
-2012-06-18 22:47  dustymugs
+2012-06-18 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* When no pixels are counted for summary stats, all other elements
-	  of
+	* [r9943] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_summarystats_expected: When no pixels are
+	  counted for summary stats, all other elements of
 	  stats output should be NULL. Ticket is #1875
 
-2012-06-18 22:47  dustymugs
+2012-06-18 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Cleanup of dev comments
+	* [r9942] raster/rt_pg/rt_pg.c: Cleanup of dev comments
 
-2012-06-18 22:47  dustymugs
+2012-06-18 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Finished work implementing use of PG_FREE_IF_COPY() and better
-	  handling of rt_pgraster variables.
+	* [r9941] raster/rt_pg/rt_pg.c: Finished work implementing use of
+	  PG_FREE_IF_COPY() and better handling of rt_pgraster variables.
 
-2012-06-18 22:47  dustymugs
+2012-06-18 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix division by zero in ST_ApproxSummaryStats and the situation
-	  where
+	* [r9940] NEWS, raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_summarystats.sql,
+	  raster/test/regress/rt_summarystats_expected: Fix division by
+	  zero in ST_ApproxSummaryStats and the situation where
 	  band is empty. Added regression tests for both situations.
 	  Ticket is #1872
 
-2012-06-18 22:47  dustymugs
+2012-06-18 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* More work implementing use of PG_FREE_IF_COPY() and better
-	  handling of
+	* [r9939] raster/rt_pg/rt_pg.c: More work implementing use of
+	  PG_FREE_IF_COPY() and better handling of
 	  rt_pgraster variables.
 
-2012-06-18 22:47  dustymugs
+2012-06-18 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* First chunk of code reintroducting PG_FREE_IF_COPY() and prevent
+	* [r9938] raster/rt_pg/rt_pg.c: First chunk of code reintroducting
+	  PG_FREE_IF_COPY() and prevent
 	  arbitrary reuse of rt_pgraster variables.
 
-2012-06-18 22:02  pramsey
+2012-06-18 22:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Silence a warning
+	* [r9935] liblwgeom/lwtree.h: Silence a warning
 
-2012-06-18 22:02  pramsey
+2012-06-18 22:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move the circ tree caching code out of libpgcommon and into the
-	  geography area that actually uses it
+	* [r9934] libpgcommon/lwgeom_cache.c, libpgcommon/lwgeom_cache.h,
+	  postgis/Makefile.in, postgis/geography_measurement_trees.c,
+	  postgis/geography_measurement_trees.h: Move the circ tree caching
+	  code out of libpgcommon and into the geography area that actually
+	  uses it
 
-2012-06-18 21:40  pramsey
+2012-06-18 21:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix missing symbols problem with lwgeom_calculate_circ_tree
-	  (#1876)
+	* [r9933] postgis/Makefile.in: Fix missing symbols problem with
+	  lwgeom_calculate_circ_tree (#1876)
 
-2012-06-18 20:14  pramsey
+2012-06-18 20:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Quiet some warnings.
+	* [r9930] liblwgeom/cunit/cu_algorithm.c: Quiet some warnings.
 
-2012-06-18 17:44  pramsey
+2012-06-18 17:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove dead code, add commentary on caching system.
+	* [r9929] libpgcommon/lwgeom_cache.c, libpgcommon/lwgeom_cache.h,
+	  postgis/lwgeom_geos_prepared.c, postgis/lwgeom_geos_prepared.h,
+	  postgis/lwgeom_rtree.c: Remove dead code, add commentary on
+	  caching system.
 
-2012-06-18 17:12  pramsey
+2012-06-18 17:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update caching code to be more generic, using call-backs to
-	  allocate/build/free specific cache structures.
+	* [r9928] libpgcommon/lwgeom_cache.c, libpgcommon/lwgeom_cache.h,
+	  postgis/lwgeom_geos_prepared.c, postgis/lwgeom_geos_prepared.h,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_rtree.h: Update caching
+	  code to be more generic, using call-backs to allocate/build/free
+	  specific cache structures.
 
-2012-06-18 13:19  robe
+2012-06-18 13:19  Regina Obe <lr at pcorp.us>
 
-	* more additions and clarifications
+	* [r9927] NEWS, doc/reference_processing.xml: more additions and
+	  clarifications
 
-2012-06-18 13:06  robe
+2012-06-18 13:06  Regina Obe <lr at pcorp.us>
 
-	* take out interruptibility from 2.0.1 release notes - got pushed
-	  to 2.1.0
+	* [r9925] NEWS, doc/release_notes.xml: take out interruptibility
+	  from 2.0.1 release notes - got pushed to 2.1.0
 
-2012-06-18 02:35  robe
+2012-06-18 02:35  Regina Obe <lr at pcorp.us>
 
-	* Add in 2.0.1 news
+	* [r9924] NEWS, doc/release_notes.xml: Add in 2.0.1 news
 
-2012-06-16 17:44  robe
+2012-06-16 17:44  Regina Obe <lr at pcorp.us>
 
-	* put link to user contributed install guides (more nicely
-	  organized than the dev one)
+	* [r9920] doc/installation.xml: put link to user contributed
+	  install guides (more nicely organized than the dev one)
 
-2012-06-15 23:53  pramsey
+2012-06-15 23:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Hide internal arguments for tree calculations and shut up the
-	  print output.
+	* [r9919] liblwgeom/cunit/cu_tree.c, liblwgeom/lwgeodetic_tree.c,
+	  liblwgeom/lwgeodetic_tree.h: Hide internal arguments for tree
+	  calculations and shut up the print output.
 
-2012-06-15 23:11  pramsey
+2012-06-15 23:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update the caching infrastructure to allow for arbitrary new
-	  caching systems to be combined into one fn_extra pointer slot.
-	  Clean up the 1-d r-tree code a little bit. Make the cache
-	  handling code for geometry caching generic so it can be re-used
-	  across different internal indexing approaches
+	* [r9918] libpgcommon/Makefile.in, libpgcommon/lwgeom_cache.c,
+	  libpgcommon/lwgeom_cache.h, libpgcommon/lwgeom_pg.h,
+	  libpgcommon/lwgeom_transform.c, postgis/Makefile.in,
+	  postgis/lwgeom_cache.c, postgis/lwgeom_cache.h,
+	  postgis/lwgeom_functions_analytic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos.h, postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_prepared.h, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_rtree.h: Update the
+	  caching infrastructure to allow for arbitrary new caching systems
+	  to be combined into one fn_extra pointer slot. Clean up the 1-d
+	  r-tree code a little bit. Make the cache handling code for
+	  geometry caching generic so it can be re-used across different
+	  internal indexing approaches
 
-2012-06-15 23:08  pramsey
+2012-06-15 23:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change ignore parameters on directory
+	* [r9917] topology/test: Change ignore parameters on directory
 
-2012-06-15 22:51  pramsey
+2012-06-15 22:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add circular tree calculations and associated tests in support of
-	  faster geography calculations.
+	* [r9916] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tree.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeodetic_tree.c, liblwgeom/lwgeodetic_tree.h,
+	  liblwgeom/lwin_wkt.h, liblwgeom/lwspheroid.c, liblwgeom/lwtree.h,
+	  liblwgeom/stringbuffer.h: Add circular tree calculations and
+	  associated tests in support of faster geography calculations.
 
-2012-06-15 21:59  dustymugs
+2012-06-15 21:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed expected output. Ticket is #1848
+	* [r9915] raster/test/regress/rt_clip_expected: Fixed expected
+	  output. Ticket is #1848
 
-2012-06-15 15:30  dustymugs
+2012-06-15 15:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional sorting of rt_clip regression test. Ticket is #1848
+	* [r9913] raster/test/regress/rt_clip.sql: Additional sorting of
+	  rt_clip regression test. Ticket is #1848
 
-2012-06-15 15:16  dustymugs
+2012-06-15 15:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* Make the sql in rtpg_getSR slightly more flexible when handling
+	* [r9910] raster/rt_pg/rt_pg.c: Make the sql in rtpg_getSR slightly
+	  more flexible when handling
 	  auth_name and auth_srid.
 
-2012-06-14 16:56  pramsey
+2012-06-14 16:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* update ignore to ignore generated doxygen file
+	* [r9909] doc: update ignore to ignore generated doxygen file
 
-2012-06-14 16:06  strk
+2012-06-14 16:06  Sandro Santilli <strk at keybit.net>
 
-	* Catch invalid topology name passed to topogeo_add* (#1867)
+	* [r9908] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected,
+	  topology/test/regress/topogeo_addpoint.sql,
+	  topology/test/regress/topogeo_addpoint_expected,
+	  topology/test/regress/topogeo_addpolygon.sql,
+	  topology/test/regress/topogeo_addpolygon_expected: Catch invalid
+	  topology name passed to topogeo_add* (#1867)
 
-2012-06-13 18:28  strk
+2012-06-13 18:28  Sandro Santilli <strk at keybit.net>
 
-	* Don't strip comment lines in the middle of COPY commands (#1865)
+	* [r9906] utils/postgis_restore.pl.in: Don't strip comment lines in
+	  the middle of COPY commands (#1865)
 	  
 	  Patch by J Smith <dark.panda at gmail.com>
 
-2012-06-12 17:28  strk
+2012-06-12 17:28  Sandro Santilli <strk at keybit.net>
 
-	* Move sqldefine include on top of the file (#1822)
+	* [r9904] topology/topology.sql.in.c: Move sqldefine include on top
+	  of the file (#1822)
 
-2012-06-12 13:11  strk
+2012-06-12 13:11  Sandro Santilli <strk at keybit.net>
 
-	* Fix call to GEOS_interruptRegisterCallback (win32)
+	* [r9902] postgis/postgis_module.c: Fix call to
+	  GEOS_interruptRegisterCallback (win32)
 
-2012-06-12 13:06  strk
+2012-06-12 13:06  Sandro Santilli <strk at keybit.net>
 
-	* Only show readable relations in metadata tables (#1813)
+	* [r9901] postgis/geography.sql.in.c, postgis/postgis.sql.in.c:
+	  Only show readable relations in metadata tables (#1813)
 	  
 	  Affects both geometry_columns and geography_columns.
 	  No easy way to put this under automated regression testing.
 
-2012-06-12 12:34  strk
+2012-06-12 12:34  Sandro Santilli <strk at keybit.net>
 
-	* Clearer error on setting an geometry to an invalid one (#1774)
+	* [r9899] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Clearer error
+	  on setting an geometry to an invalid one (#1774)
 	  
 	  Include testcase
 
-2012-06-12 10:46  strk
+2012-06-12 10:46  Sandro Santilli <strk at keybit.net>
 
-	* Drop temporary table at end of ValidateTopology (#1797)
+	* [r9896] topology/test/regress/validatetopology.sql,
+	  topology/test/regress/validatetopology_expected,
+	  topology/topology.sql.in.c: Drop temporary table at end of
+	  ValidateTopology (#1797)
 
-2012-06-12 09:30  strk
+2012-06-12 09:30  Sandro Santilli <strk at keybit.net>
 
-	* Really accept collections and multipoints from ST_MakeValid
-	  (#1719)
+	* [r9894] doc/reference_processing.xml,
+	  postgis/lwgeom_geos_clean.c, regress/clean.sql,
+	  regress/clean_expected: Really accept collections and multipoints
+	  from ST_MakeValid (#1719)
 	  
 	  Also updates documentation and SQL level tests.
 
-2012-06-12 09:30  strk
+2012-06-12 09:30  Sandro Santilli <strk at keybit.net>
 
-	* Add test for MULTIPOINT processing
+	* [r9893] liblwgeom/cunit/cu_clean.c: Add test for MULTIPOINT
+	  processing
 
-2012-06-12 09:09  strk
+2012-06-12 09:09  Sandro Santilli <strk at keybit.net>
 
-	* Add GEOMETRYCOLLECTION input support for ST_MakeValid (#1719)
+	* [r9892] NEWS, liblwgeom/cunit/cu_clean.c,
+	  liblwgeom/lwgeom_geos_clean.c: Add GEOMETRYCOLLECTION input
+	  support for ST_MakeValid (#1719)
 
-2012-06-12 08:29  robe
+2012-06-12 08:29  Regina Obe <lr at pcorp.us>
 
-	* part fix for #1860 ST_SRID not unique
+	* [r9891] regress/regress.sql: part fix for #1860 ST_SRID not
+	  unique
 
-2012-06-12 07:57  strk
+2012-06-12 07:57  Sandro Santilli <strk at keybit.net>
 
-	* Install comments when available, even withouth XSLTPROC (#1779)
+	* [r9889] doc/Makefile.in: Install comments when available, even
+	  withouth XSLTPROC (#1779)
 
-2012-06-11 18:39  strk
+2012-06-11 18:39  Sandro Santilli <strk at keybit.net>
 
-	* Build and install comments when if possible (#1779)
+	* [r9887] GNUmakefile.in: Build and install comments when if
+	  possible (#1779)
 
-2012-06-11 18:01  robe
+2012-06-11 18:01  Regina Obe <lr at pcorp.us>
 
-	* Mislabeled function (raster missing new flag and ST_ASGML
-	  mislabeled as new instead of enhanced)
+	* [r9884] doc/reference_output.xml, doc/reference_raster.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Mislabeled function (raster
+	  missing new flag and ST_ASGML mislabeled as new instead of
+	  enhanced)
 
-2012-06-11 17:28  robe
+2012-06-11 17:28  Regina Obe <lr at pcorp.us>
 
-	* get rid of 2.1 enhancements section -- probably causing pdflatex
-	  issues because we have no enhancements
+	* [r9883] doc/xsl/postgis_aggs_mm.xml.xsl: get rid of 2.1
+	  enhancements section -- probably causing pdflatex issues because
+	  we have no enhancements
 
-2012-06-11 17:12  robe
+2012-06-11 17:12  Regina Obe <lr at pcorp.us>
 
-	* fix unclosed tag
+	* [r9882] doc/xsl/postgis_aggs_mm.xml.xsl: fix unclosed tag
 
-2012-06-11 16:26  robe
+2012-06-11 16:26  Regina Obe <lr at pcorp.us>
 
-	* Add a what's new in 2.1 section
+	* [r9881] doc/xsl/postgis_aggs_mm.xml.xsl: Add a what's new in 2.1
+	  section
 
-2012-06-11 15:46  dustymugs
+2012-06-11 15:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added DROP statements for st_intersection variants that were
-	  removed
+	* [r9879] raster/rt_pg/rtpostgis_drop.sql.in.c: Added DROP
+	  statements for st_intersection variants that were removed
 	  before 2.0. Ticket is #1749
 
-2012-06-11 14:45  robe
+2012-06-11 14:45  Regina Obe <lr at pcorp.us>
 
-	* warnings too dark
+	* [r9878] doc/html/style.css: warnings too dark
 
-2012-06-11 14:02  robe
+2012-06-11 14:02  Regina Obe <lr at pcorp.us>
 
-	* warnings should be more prominent. Move extension warning up a
-	  bit. correct misspelling
+	* [r9877] doc/html/style.css, doc/installation.xml: warnings should
+	  be more prominent. Move extension warning up a bit. correct
+	  misspelling
 
-2012-06-11 11:47  robe
+2012-06-11 11:47  Regina Obe <lr at pcorp.us>
 
-	* #1815 put a big warning about this unexpected behavior when
-	  trying to explicitly backup tables that are part of an extension
+	* [r9875] doc/installation.xml: #1815 put a big warning about this
+	  unexpected behavior when trying to explicitly backup tables that
+	  are part of an extension
 
-2012-06-10 06:25  robe
+2012-06-10 06:25  Regina Obe <lr at pcorp.us>
 
-	* #1859 commit doc corrections from Kashif Rasul.
+	* [r9872] doc/extras_topology.xml, doc/installation.xml,
+	  doc/reference_accessor.xml, doc/reference_management.xml,
+	  doc/reference_processing.xml, doc/reference_raster.xml,
+	  doc/using_raster_dataman.xml: #1859 commit doc corrections from
+	  Kashif Rasul.
 
-2012-06-08 17:18  robe
+2012-06-08 17:18  Regina Obe <lr at pcorp.us>
 
-	* snaptogrid to get rid of false failures on mingw-64 resulting
-	  from single digit rounding differences
+	* [r9871] regress/loader/MultiToSinglePoint-w.select.expected,
+	  regress/loader/MultiToSinglePoint.select.expected,
+	  regress/loader/MultiToSinglePoint.select.sql,
+	  regress/loader/NotReallyMultiPoint-w.select.expected,
+	  regress/loader/NotReallyMultiPoint.select.expected,
+	  regress/loader/NotReallyMultiPoint.select.sql: snaptogrid to get
+	  rid of false failures on mingw-64 resulting from single digit
+	  rounding differences
 
-2012-06-08 14:04  mcayland
+2012-06-08 14:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rename references to -r to -s in shp2pgsql-cli.c and also move
-	  argument combination validation to a separate phase.
+	* [r9868] loader/shp2pgsql-cli.c: Rename references to -r to -s in
+	  shp2pgsql-cli.c and also move argument combination validation to
+	  a separate phase.
 	  
 	  This is based upon a report from Lauri Kajan who was having
 	  issues using -D and -s TO_SRID on Windows.
 
-2012-06-08 12:45  robe
+2012-06-08 12:45  Regina Obe <lr at pcorp.us>
 
-	* #1834 itemize srid ranges we include and set filter to not back
-	  these up. It's long and ugly I know.
+	* [r9867] extensions/compute_srid_contiguous_ranges.sql,
+	  extensions/postgis/sql_bits/mark_editable_objects.sql.in: #1834
+	  itemize srid ranges we include and set filter to not back these
+	  up. It's long and ugly I know.
 
-2012-06-08 11:55  strk
+2012-06-08 11:55  Sandro Santilli <strk at keybit.net>
 
-	* Fix failure to detect endpoint mismatch in ST_AddEdge*Face*
-	  (#1857)
+	* [r9865] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_addedgemodface.sql,
+	  topology/test/regress/st_addedgemodface_expected,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: Fix failure to
+	  detect endpoint mismatch in ST_AddEdge*Face* (#1857)
 	  
 	  Affects calls with start_node = end_node and matching start
 	  point.
 
-2012-06-08 11:13  strk
+2012-06-08 11:13  Sandro Santilli <strk at keybit.net>
 
-	* Remove unused variables
+	* [r9862] topology/sql/sqlmm.sql.in.c: Remove unused variables
 
-2012-06-08 04:14  robe
+2012-06-08 04:14  Regina Obe <lr at pcorp.us>
 
-	* minor improvements to prefer a named road over an unnamed one if
-	  within 20 meters, also #1856 ability to control preferred name
-	  for highways, county and state roads (whether numbered or local
-	  name)
+	* [r9861]
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode_settings.sql: minor
+	  improvements to prefer a named road over an unnamed one if within
+	  20 meters, also #1856 ability to control preferred name for
+	  highways, county and state roads (whether numbered or local name)
 
-2012-06-07 23:08  strk
+2012-06-07 23:08  Sandro Santilli <strk at keybit.net>
 
-	* Properly set permissions on backend temp dir
+	* [r9860] regress/run_test.pl: Properly set permissions on backend
+	  temp dir
 
-2012-06-07 15:56  dustymugs
+2012-06-07 15:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* Tweaked rt_clip queries to have the output ordered. Changed the
-	  round()
+	* [r9858] raster/test/regress/rt_clip.sql,
+	  raster/test/regress/rt_clip_expected,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_expected: Tweaked rt_clip
+	  queries to have the output ordered. Changed the round()
 	  call to a ceil() call due to the question of rounding 27.5 (is it
 	  28 or
 	  27?). Ticket is 1848.
 
-2012-06-07 15:18  strk
+2012-06-07 15:18  Sandro Santilli <strk at keybit.net>
 
-	* Register a GEOS interrupt callback to dispatch windows events
+	* [r9857] postgis/postgis_module.c: Register a GEOS interrupt
+	  callback to dispatch windows events
 	  
 	  NOTE: won't build on WIN32 with GEOS-3.4.0SVN < r3672
 
-2012-06-07 14:17  strk
+2012-06-07 14:17  Sandro Santilli <strk at keybit.net>
 
-	* Remove unused code
+	* [r9856] raster/rt_pg/rt_pg.c: Remove unused code
 
-2012-06-07 07:17  strk
+2012-06-07 07:17  Sandro Santilli <strk at keybit.net>
 
-	* Ignore generated Makefile (a new one)
+	* [r9855] .gitignore: Ignore generated Makefile (a new one)
 
-2012-06-07 06:55  strk
+2012-06-07 06:55  Sandro Santilli <strk at keybit.net>
 
-	* Fix scoping of TEST variable (#1853)
+	* [r9854] regress/run_test.pl: Fix scoping of TEST variable (#1853)
 	  
 	  I didn't really understand why it is only TEST needing to be
 	  "our"
 	  but it seems to work.
 
-2012-06-06 15:25  pramsey
+2012-06-06 15:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Wrong parameters for EPSG:3844 in spatial_ref_sys (#1851)
+	* [r9852] spatial_ref_sys.sql: Wrong parameters for EPSG:3844 in
+	  spatial_ref_sys (#1851)
 
-2012-06-06 15:24  strk
+2012-06-06 15:24  Sandro Santilli <strk at keybit.net>
 
-	* Have run_test.pl use strict mode
+	* [r9851] regress/run_test.pl: Have run_test.pl use strict mode
 
-2012-06-02 07:12  robe
+2012-06-02 07:12  Regina Obe <lr at pcorp.us>
 
-	* Forgot to add gisgraphy as another PostGIS geocoder. I know I am
-	  missing others.
+	* [r9848] doc/extras_tigergeocoder.xml: Forgot to add gisgraphy as
+	  another PostGIS geocoder. I know I am missing others.
 
-2012-05-31 22:49  pramsey
+2012-05-31 22:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Convert to using run_test.pl instead of run_test.sh
+	* [r9847] configure.ac, raster/test/regress/Makefile.in,
+	  raster/test/regress/run_test.in, regress/Makefile.in,
+	  regress/run_test.pl, topology/test/Makefile,
+	  topology/test/Makefile.in: Convert to using run_test.pl instead
+	  of run_test.sh
 
-2012-05-31 22:16  pramsey
+2012-05-31 22:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Works for MinGW now
+	* [r9846] regress/run_test.pl: Works for MinGW now
 
-2012-05-31 20:16  pramsey
+2012-05-31 20:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* back out run_test.pl change, that was an accident
+	* [r9845] topology/test/Makefile: back out run_test.pl change, that
+	  was an accident
 
-2012-05-31 20:11  strk
+2012-05-31 20:11  Sandro Santilli <strk at keybit.net>
 
-	* Use our own diff, avoid using Which. Works for me. Tests welcome.
+	* [r9844] regress/run_test.pl: Use our own diff, avoid using Which.
+	  Works for me. Tests welcome.
 
-2012-05-31 17:29  pramsey
+2012-05-31 17:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change from sed to perl
+	* [r9843] topology/Makefile.in, topology/test/Makefile: Change from
+	  sed to perl
 
-2012-05-31 16:57  pramsey
+2012-05-31 16:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Convert sed to perl
+	* [r9842] raster/test/regress/Makefile.in: Convert sed to perl
 
-2012-05-31 16:47  pramsey
+2012-05-31 16:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Switch from sed to perl
+	* [r9841] raster/rt_pg/Makefile.in: Switch from sed to perl
 
-2012-05-31 16:45  pramsey
+2012-05-31 16:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Switch from sed to perl
+	* [r9840] postgis/Makefile.in: Switch from sed to perl
 
-2012-05-31 05:46  dustymugs
+2012-05-31 05:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Explicit error message when dimensions requested exceeds the
+	* [r9838] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h:
+	  Explicit error message when dimensions requested exceeds the
 	  maximum
 	  permitted of a raster.
 
-2012-05-31 05:45  dustymugs
+2012-05-31 05:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added more verbiage regarding setting SRID with -s for
-	  raster2pgsql
+	* [r9837] doc/using_raster_dataman.xml: Added more verbiage
+	  regarding setting SRID with -s for raster2pgsql
 
-2012-05-31 05:45  dustymugs
+2012-05-31 05:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Correct spelling mistakes
+	* [r9836] doc/using_raster_dataman.xml: Correct spelling mistakes
 
-2012-05-31 05:45  dustymugs
+2012-05-31 05:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated docs to reflect change to minimum GDAL version
+	* [r9835] doc/installation.xml, doc/introduction.xml: Updated docs
+	  to reflect change to minimum GDAL version
 
-2012-05-31 05:45  dustymugs
+2012-05-31 05:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Bumped up the minimum version of GDAL from 1.6 to 1.8
+	* [r9834] configure.ac: Bumped up the minimum version of GDAL from
+	  1.6 to 1.8
 
-2012-05-31 01:44  robe
+2012-05-31 01:44  Regina Obe <lr at pcorp.us>
 
-	* #1812 change to use sT_Equals to account for polygon order
-	  difference under windows (mingw)
+	* [r9832] regress/regress_bdpoly.sql,
+	  regress/regress_bdpoly_expected: #1812 change to use sT_Equals to
+	  account for polygon order difference under windows (mingw)
 
-2012-05-31 01:34  robe
+2012-05-31 01:34  Regina Obe <lr at pcorp.us>
 
-	* fix typos
+	* [r9831] doc/extras_tigergeocoder.xml: fix typos
 
-2012-05-31 00:50  robe
+2012-05-31 00:50  Regina Obe <lr at pcorp.us>
 
-	* #1843 document new geocode_setting set/get functions, make
-	  publically readable.
+	* [r9830] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2011/geocode_settings.sql: #1843
+	  document new geocode_setting set/get functions, make publically
+	  readable.
 
-2012-05-30 21:49  pramsey
+2012-05-30 21:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Convert calls to 'sed' to calls to 'perl'
+	* [r9829] doc/Makefile.in: Convert calls to 'sed' to calls to
+	  'perl'
 
-2012-05-30 18:59  pramsey
+2012-05-30 18:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Perl-based pre/post hooks for the raster loader tests
+	* [r9828] raster/test/regress/loader/Basic-post.pl,
+	  raster/test/regress/loader/Basic-pre.pl,
+	  raster/test/regress/loader/BasicCopy-post.pl,
+	  raster/test/regress/loader/BasicCopy-pre.pl,
+	  raster/test/regress/loader/Tiled10x10-post.pl,
+	  raster/test/regress/loader/Tiled10x10-pre.pl,
+	  raster/test/regress/loader/Tiled10x10Copy-post.pl,
+	  raster/test/regress/loader/Tiled10x10Copy-pre.pl: Perl-based
+	  pre/post hooks for the raster loader tests
 
-2012-05-30 18:58  pramsey
+2012-05-30 18:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update the run_test.pl script to handle the raster loader
-	  pre/post rules
+	* [r9827] regress/README, regress/run_test.pl: Update the
+	  run_test.pl script to handle the raster loader pre/post rules
 
-2012-05-30 08:55  robe
+2012-05-30 08:55  Regina Obe <lr at pcorp.us>
 
-	* #1845 fix tracts/bg/tabblock loading
+	* [r9826] extras/tiger_geocoder/tiger_2011/census_loader.sql: #1845
+	  fix tracts/bg/tabblock loading
 
-2012-05-28 19:21  pracine
+2012-05-28 19:21  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Replace the x, y iteration with a call to ST_MapAlgebraExpr() now
-	  that it supports [rast.x] and [rast.y]. Much faster!
+	* [r9825] raster/scripts/plpgsql/st_createindexraster.sql: Replace
+	  the x, y iteration with a call to ST_MapAlgebraExpr() now that it
+	  supports [rast.x] and [rast.y]. Much faster!
 	  This is not (yet) part of rtpostgis.sql. Should be in 2.1.
 
-2012-05-28 08:04  strk
+2012-05-28 08:04  Sandro Santilli <strk at keybit.net>
 
-	* Install a signal handler to request GEOS interruption (#1802)
+	* [r9824] postgis/postgis_module.c: Install a signal handler to
+	  request GEOS interruption (#1802)
 	  
 	  Requires GEOS-3.4.0SVN
 
-2012-05-27 18:28  robe
-
-	* #1843 - logic to add the new settings table, a get and set
-	  function, and changed debug variables in various functions to
-	  lookup value from table
+2012-05-27 18:28  Regina Obe <lr at pcorp.us>
+
+	* [r9823] extras/tiger_geocoder/tiger_2011/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/geocode_intersection.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2011/geocode_settings.sql,
+	  extras/tiger_geocoder/tiger_2011/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2011/upgrade_geocode.sql: #1843 -
+	  logic to add the new settings table, a get and set function, and
+	  changed debug variables in various functions to lookup value from
+	  table
 
-2012-05-25 15:20  strk
+2012-05-25 15:20  Sandro Santilli <strk at keybit.net>
 
-	* Handle exceptions from GEOSUnionCascaded() in
-	  LWGEOM_GEOS_buildArea
+	* [r9821] liblwgeom/lwgeom_geos.c: Handle exceptions from
+	  GEOSUnionCascaded() in LWGEOM_GEOS_buildArea
 
-2012-05-24 23:13  dustymugs
+2012-05-24 23:13  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code cleanup related to rt_band_load_offline_data()
+	* [r9819] raster/rt_core/rt_api.c, raster/test/core/testapi.c: Code
+	  cleanup related to rt_band_load_offline_data()
 
-2012-05-24 10:10  strk
+2012-05-24 10:10  Sandro Santilli <strk at keybit.net>
 
-	* Do not call OGRCleanupAll() within API functions
+	* [r9818] raster/rt_core/rt_api.c: Do not call OGRCleanupAll()
+	  within API functions
 	  
 	  Valgrind didn't show any leak.
 	  Eventually we can do cleanups in _PG_fini.
 
-2012-05-24 06:41  strk
+2012-05-24 06:41  Sandro Santilli <strk at keybit.net>
 
-	* Do not assume geos allocates using malloc. Reduce memory use too.
+	* [r9817] postgis/lwgeom_geos.c: Do not assume geos allocates using
+	  malloc. Reduce memory use too.
 
-2012-05-23 22:51  dustymugs
+2012-05-23 22:51  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed GDALDriverH * to GDALDriverH.
+	* [r9816] raster/loader/raster2pgsql.c: Fixed GDALDriverH * to
+	  GDALDriverH.
 
-2012-05-23 22:36  dustymugs
+2012-05-23 22:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Use GDALIdentifyDriver() to detect whether or not a raster is
-	  supported
+	* [r9813] raster/loader/raster2pgsql.c: Use GDALIdentifyDriver() to
+	  detect whether or not a raster is supported
 	  by raster2pgsql. Thanks to rouault for the suggestion
 
-2012-05-23 21:41  colivier
+2012-05-23 21:41  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix ST_AsGML prototype in legacy. Related to #1823
+	* [r9812] postgis/legacy.sql.in.c: Fix ST_AsGML prototype in
+	  legacy. Related to #1823
 
-2012-05-23 20:49  colivier
+2012-05-23 20:49  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix geography prototype for ST_AsGML. Related to #1823
+	* [r9811] postgis/geography.sql.in.c: Fix geography prototype for
+	  ST_AsGML. Related to #1823
 
-2012-05-23 17:54  dustymugs
+2012-05-23 17:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Correct when to compute number of tiles. Ticket is #1840
+	* [r9810] NEWS, raster/loader/raster2pgsql.c: Correct when to
+	  compute number of tiles. Ticket is #1840
 
-2012-05-23 17:54  dustymugs
+2012-05-23 17:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add support for GeoTIFF subdatasets. Ticket is #1839
+	* [r9809] NEWS, raster/loader/raster2pgsql.c: Add support for
+	  GeoTIFF subdatasets. Ticket is #1839
 
-2012-05-23 06:58  robe
+2012-05-23 06:58  Regina Obe <lr at pcorp.us>
 
-	* force casting to text for band types in various examples prevent
-	  unknown warnings (alibo noted)
+	* [r9805] doc/reference_raster.xml: force casting to text for band
+	  types in various examples prevent unknown warnings (alibo noted)
 
-2012-05-23 03:24  robe
+2012-05-23 03:24  Regina Obe <lr at pcorp.us>
 
-	* backout changes about 2.0.1 already accounted for in 2.0 branch
+	* [r9803] NEWS: backout changes about 2.0.1 already accounted for
+	  in 2.0 branch
 
-2012-05-23 03:16  robe
+2012-05-23 03:16  Regina Obe <lr at pcorp.us>
 
-	* add section for 2.0.1 and more items in 2.1.0 -- sitll a lot of
-	  gaps to fill in.
+	* [r9802] NEWS: add section for 2.0.1 and more items in 2.1.0 --
+	  sitll a lot of gaps to fill in.
 
-2012-05-22 17:47  dustymugs
+2012-05-22 17:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added missing "See Also" sections for ST_NearestValue and
+	* [r9801] doc/reference_raster.xml: Added missing "See Also"
+	  sections for ST_NearestValue and
 	  ST_Neighborhood
 
-2012-05-22 17:07  dustymugs
+2012-05-22 17:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix unbalanced tags
+	* [r9800] doc/reference_raster.xml: Fix unbalanced tags
 
-2012-05-22 17:07  dustymugs
+2012-05-22 17:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_World2RasterCoord, ST_Raster2WorldCoord,
+	* [r9799] NEWS: Added ST_World2RasterCoord, ST_Raster2WorldCoord,
 	  ST_NearestValue,
 	  ST_Neighborhood to New Features section
 
-2012-05-22 17:06  dustymugs
+2012-05-22 17:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_NearestValue and ST_Neighborhood
+	* [r9798] doc/reference_raster.xml: Added docs for ST_NearestValue
+	  and ST_Neighborhood
 
-2012-05-22 17:06  dustymugs
+2012-05-22 17:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored function parameter names of ST_NearestValue and
+	* [r9797] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Refactored function
+	  parameter names of ST_NearestValue and
 	  ST_Neighborhood
 
-2012-05-22 17:06  dustymugs
+2012-05-22 17:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added docs for ST_World2RasterCoord() and ST_Raster2WorldCoord()
+	* [r9796] doc/reference_raster.xml: Added docs for
+	  ST_World2RasterCoord() and ST_Raster2WorldCoord()
 
-2012-05-22 17:06  dustymugs
+2012-05-22 17:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Expansion of regression tests and fix error messages
+	* [r9795] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_raster2worldcoord.sql,
+	  raster/test/regress/rt_raster2worldcoord_expected,
+	  raster/test/regress/rt_world2rastercoord.sql,
+	  raster/test/regress/rt_world2rastercoord_expected: Expansion of
+	  regression tests and fix error messages
 
-2012-05-22 17:06  dustymugs
+2012-05-22 17:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Lowercase language due to case-sensitivity of PostgreSQL 9.2
+	* [r9794] raster/rt_pg/rtpostgis.sql.in.c: Lowercase language due
+	  to case-sensitivity of PostgreSQL 9.2
 
-2012-05-22 17:06  dustymugs
+2012-05-22 17:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added regression tests for ST_World2RasterCoord and
+	* [r9793] raster/test/regress/Makefile.in,
+	  raster/test/regress/create_rt_utility_test.sql,
+	  raster/test/regress/rt_raster2worldcoord.sql,
+	  raster/test/regress/rt_raster2worldcoord_expected,
+	  raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected,
+	  raster/test/regress/rt_world2rastercoord.sql,
+	  raster/test/regress/rt_world2rastercoord_expected: Added
+	  regression tests for ST_World2RasterCoord and
 	  ST_Raster2WorldCoord. Updated existing tests use the same
 	  functions
 
-2012-05-22 17:06  dustymugs
+2012-05-22 17:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Raster2WorldCoord and ST_World2RasterCoord functions to
+	* [r9792] raster/rt_pg/rtpostgis.sql.in.c: Added
+	  ST_Raster2WorldCoord and ST_World2RasterCoord functions to
 	  consume
 	  RASTER_rasterToWorldCoord and RASTER_worldToRasterCoord
 	  functions.
 	  Refactored existing ST_Raster2WorldCoord(X|Y) and
 	  ST_World2RasterCoord(X|Y) functions to call new functions
 
-2012-05-22 17:06  dustymugs
+2012-05-22 17:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed unnecessary/unused variable
+	* [r9791] raster/rt_core/rt_api.c: Removed unnecessary/unused
+	  variable
 
-2012-05-22 17:05  dustymugs
+2012-05-22 17:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Drop ST_Neighborhood variants due to output datatype changes
+	* [r9790] raster/rt_pg/rtpostgis_drop.sql.in.c: Drop
+	  ST_Neighborhood variants due to output datatype changes
 
-2012-05-22 17:05  dustymugs
+2012-05-22 17:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Modified ST_Neighborhood and underlying functions to return 2D
-	  double
+	* [r9789] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c,
+	  raster/test/regress/rt_neighborhood_expected: Modified
+	  ST_Neighborhood and underlying functions to return 2D double
 	  precision array. This allows the output to be readily passed onto
 	  the
 	  ST_xxx4ma functions.
 
-2012-05-22 17:05  dustymugs
+2012-05-22 17:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated copyright
+	* [r9788] raster/rt_pg/rtpostgis.sql.in.c: Updated copyright
 
-2012-05-22 17:05  dustymugs
+2012-05-22 17:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added SRID check to ST_NearestValue
+	* [r9787] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Added SRID check to ST_NearestValue
 
-2012-05-22 17:05  dustymugs
+2012-05-22 17:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* addition of ST_NearestValue and ST_Neighborhood
+	* [r9786] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_nearestvalue.sql,
+	  raster/test/regress/rt_nearestvalue_expected,
+	  raster/test/regress/rt_neighborhood.sql,
+	  raster/test/regress/rt_neighborhood_expected: addition of
+	  ST_NearestValue and ST_Neighborhood
 
-2012-05-22 16:02  colivier
+2012-05-22 16:02  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix wrong SQL prototype, wrong PostGIS version number, and use
-	  NULL as default value rather than empty string, related to #1823
+	* [r9785] doc/reference_output.xml, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c, postgis/postgis.sql.in.c: Fix wrong SQL
+	  prototype, wrong PostGIS version number, and use NULL as default
+	  value rather than empty string, related to #1823
 
-2012-05-22 15:29  robe
+2012-05-22 15:29  Regina Obe <lr at pcorp.us>
 
-	* #1837 dupe refentry
+	* [r9784] doc/extras_tigergeocoder.xml: #1837 dupe refentry
 
-2012-05-22 15:26  robe
+2012-05-22 15:26  Regina Obe <lr at pcorp.us>
 
-	* detail how to upgrade from tiger_2010 to tiger_2011 data
+	* [r9783] doc/installation.xml: detail how to upgrade from
+	  tiger_2010 to tiger_2011 data
 
-2012-05-22 15:13  pramsey
+2012-05-22 15:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add upgrade mode and start to get raster working. Bah, going to
-	  need to handle pre/post actions after all.
+	* [r9782] regress/run_test.pl: Add upgrade mode and start to get
+	  raster working. Bah, going to need to handle pre/post actions
+	  after all.
 
-2012-05-22 14:17  pramsey
+2012-05-22 14:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Upgrade from 2.0 only
+	* [r9781] extensions/upgradeable_versions.mk: Upgrade from 2.0 only
 
-2012-05-22 13:34  robe
+2012-05-22 13:34  Regina Obe <lr at pcorp.us>
 
-	* Add new functions and notes that 2.1 is tiger_2011 instead of
-	  tiger_2010. More on upgrade instructions from tiger_2010 to
-	  tiger_2011
+	* [r9780] doc/extras_tigergeocoder.xml: Add new functions and notes
+	  that 2.1 is tiger_2011 instead of tiger_2010. More on upgrade
+	  instructions from tiger_2010 to tiger_2011
 
-2012-05-22 13:25  robe
+2012-05-22 13:25  Regina Obe <lr at pcorp.us>
 
-	* rename function drop_national_tables_generate_script() to
+	* [r9779] extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql:
+	  rename function drop_national_tables_generate_script() to
 	  drop_nation_tables_generate_script(), revise regex to prevent
 	  psql warning in 9.2 psql
 
-2012-05-22 12:23  colivier
+2012-05-22 12:23  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Use NULL value as default for id on ST_AsGML cunit tests. Related
-	  to #1823
+	* [r9778] liblwgeom/cunit/cu_out_gml.c: Use NULL value as default
+	  for id on ST_AsGML cunit tests. Related to #1823
 
-2012-05-22 09:20  strk
+2012-05-22 09:20  Sandro Santilli <strk at keybit.net>
 
-	* More entries in authors.*
+	* [r9777] authors.git, authors.svn: More entries in authors.*
 	  
 	  With this I could complete a git-svn-clone operation
 
-2012-05-22 08:49  colivier
+2012-05-22 08:49  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix some unintialized vars. Fix becoming wrong prototype call in
-	  GML3 cunit tests. Related to #1823
+	* [r9775] liblwgeom/cunit/cu_out_gml.c, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c: Fix some unintialized vars. Fix becoming
+	  wrong prototype call in GML3 cunit tests. Related to #1823
 
-2012-05-22 08:49  pramsey
+2012-05-22 08:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Initial commit of the run_test.pl perl port of the regression
-	  harness.
+	* [r9774] regress/run_test.pl: Initial commit of the run_test.pl
+	  perl port of the regression harness.
 	  This version runs the postgis loader and sql tests. It does not
 	  yet run in --upgrade mode or handle the raster or topology tests.
 
-2012-05-22 07:45  strk
+2012-05-22 07:45  Sandro Santilli <strk at keybit.net>
 
-	* Update authors file for both SVN and GIT
+	* [r9773] .gitignore, authors.git, authors.svn: Update authors file
+	  for both SVN and GIT
 
-2012-05-21 21:17  colivier
+2012-05-21 21:17  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* First implementation of gml:id support for ST_AsGML. Related to
-	  #1823. Not yet really tested. Cunit still missing
+	* [r9772] doc/reference_output.xml, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwout_gml.c, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c, postgis/postgis.sql.in.c: First
+	  implementation of gml:id support for ST_AsGML. Related to #1823.
+	  Not yet really tested. Cunit still missing
 
-2012-05-21 20:29  robe
+2012-05-21 20:29  Regina Obe <lr at pcorp.us>
 
-	* get rid of old stuff can always be pulled from prior versions
+	* [r9770] extras/tiger_geocoder/tiger_2006andbefore: get rid of old
+	  stuff can always be pulled from prior versions
 
-2012-05-21 20:28  robe
+2012-05-21 20:28  Regina Obe <lr at pcorp.us>
 
-	* move tiger_2011 work to 2.1
+	* [r9769] extras/tiger_geocoder/tiger_2011: move tiger_2011 work to
+	  2.1
 
-2012-05-21 14:48  strk
+2012-05-21 14:48  Sandro Santilli <strk at keybit.net>
 
-	* UTF8 author names
+	* [r9768] authors.svn: UTF8 author names
 
-2012-05-21 10:57  pramsey
+2012-05-21 10:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Back out ST_CollectionExtract changes, too many regression
-	  failures
+	* [r9766] postgis/lwgeom_functions_basic.c,
+	  regress/tickets_expected: Back out ST_CollectionExtract changes,
+	  too many regression failures
 
-2012-05-21 10:13  pramsey
+2012-05-21 10:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Harmonize regression to new ST_CollectionExtract behavior
+	* [r9765] regress/tickets_expected: Harmonize regression to new
+	  ST_CollectionExtract behavior
 
-2012-05-21 09:41  pramsey
+2012-05-21 09:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_CollectionExtract: inconsistent EMPTY results (#1778)
+	* [r9764] postgis/lwgeom_functions_basic.c: ST_CollectionExtract:
+	  inconsistent EMPTY results (#1778)
 
-2012-05-21 09:39  pramsey
+2012-05-21 09:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bump numbers for 2.1 on trunk
+	* [r9763] NEWS, README.postgis, Version.config: Bump numbers for
+	  2.1 on trunk
 
-2012-05-21 09:36  pramsey
+2012-05-21 09:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Accept PostGIS 1.5 WKB type numbers in WKB parser (#1807)
+	* [r9761] liblwgeom/lwin_wkb.c: Accept PostGIS 1.5 WKB type numbers
+	  in WKB parser (#1807)
 
-2012-05-21 08:05  pramsey
+2012-05-21 08:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Revert #1830
+	* [r9760] loader/pgsql2shp-core.c: Revert #1830
 
-2012-05-20 09:27  pramsey
+2012-05-20 09:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* loader dumper / gui About have version correct credits (#1743)
+	* [r9759] loader/shp2pgsql-gui.c: loader dumper / gui About have
+	  version correct credits (#1743)
 
-2012-05-20 09:17  pramsey
+2012-05-20 09:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* the pgsql2shp tool should qualify its query against pg_class to
-	  ensure it gets the correct table to dump (#1814) <chander>
+	* [r9758] loader/pgsql2shp-core.c: the pgsql2shp tool should
+	  qualify its query against pg_class to ensure it gets the correct
+	  table to dump (#1814) <chander>
 
-2012-05-20 08:21  pramsey
+2012-05-20 08:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* News update
+	* [r9757] NEWS: News update
 
-2012-05-20 08:20  pramsey
+2012-05-20 08:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* pgsql2shp fix for "XInvalid endian flag value encountered" on
-	  PostgreSQL 9.2 (#1830)
+	* [r9756] loader/pgsql2shp-core.c: pgsql2shp fix for "XInvalid
+	  endian flag value encountered" on PostgreSQL 9.2 (#1830)
 
-2012-05-20 07:31  pramsey
+2012-05-20 07:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update NEWS with some bug fixes
+	* [r9754] NEWS: Update NEWS with some bug fixes
 
-2012-05-18 09:59  strk
+2012-05-18 09:59  Sandro Santilli <strk at keybit.net>
 
-	* Fix uninitialized read in GeoJSON parser (#1829)
+	* [r9753] NEWS, postgis/lwgeom_in_geojson.c: Fix uninitialized read
+	  in GeoJSON parser (#1829)
 
-2012-05-17 13:37  strk
+2012-05-17 13:37  Sandro Santilli <strk at keybit.net>
 
-	* Last bugfix item...
+	* [r9750] NEWS: Last bugfix item...
 
-2012-05-17 13:36  strk
+2012-05-17 13:36  Sandro Santilli <strk at keybit.net>
 
-	* Do not compare uninitialized memory (#1825)
+	* [r9749] postgis/lwgeom_geos_prepared.c: Do not compare
+	  uninitialized memory (#1825)
 	  
 	  May fix prepared geometry cache sub-uses (misses)
 
-2012-05-17 12:27  strk
+2012-05-17 12:27  Sandro Santilli <strk at keybit.net>
 
-	* Fix topology loader against PostgreSQL 9.2 (#1822)
+	* [r9748] topology/topology.sql.in.c: Fix topology loader against
+	  PostgreSQL 9.2 (#1822)
 
-2012-05-17 12:10  pramsey
+2012-05-17 12:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* configure enabling extension reads 9.1 even on 9.2 (#1821)
+	* [r9747] configure.ac: configure enabling extension reads 9.1 even
+	  on 9.2 (#1821)
 
-2012-05-17 11:59  pramsey
+2012-05-17 11:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Put back 900913 srid (#1805)
+	* [r9746] spatial_ref_sys.sql: Put back 900913 srid (#1805)
 
-2012-05-17 11:54  pramsey
+2012-05-17 11:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Error in empty short circuit (#1828)
+	* [r9744] liblwgeom/lwgeodetic.c: Error in empty short circuit
+	  (#1828)
 
-2012-05-17 11:47  strk
+2012-05-17 11:47  Sandro Santilli <strk at keybit.net>
 
-	* Link lwgeom_normalize change to its ticket #1812
+	* [r9743] NEWS: Link lwgeom_normalize change to its ticket #1812
 
-2012-05-17 11:45  strk
+2012-05-17 11:45  Sandro Santilli <strk at keybit.net>
 
-	* Add lwgeom_normalize in LIBLWGEOM, use in cu_buildarea tester
+	* [r9742] NEWS, liblwgeom/cunit/cu_buildarea.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_geos.c: Add
+	  lwgeom_normalize in LIBLWGEOM, use in cu_buildarea tester
 
-2012-05-16 19:39  strk
+2012-05-16 19:39  Sandro Santilli <strk at keybit.net>
 
-	* Use the proper function to release returns from GEOS.
+	* [r9741] postgis/lwgeom_geos.c: Use the proper function to release
+	  returns from GEOS.
 
-2012-05-16 19:39  strk
+2012-05-16 19:39  Sandro Santilli <strk at keybit.net>
 
-	* Cleanly handle database creation error
+	* [r9740] regress/run_test: Cleanly handle database creation error
 
-2012-05-16 18:50  dustymugs
+2012-05-16 18:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated to note bug #1819
+	* [r9739] NEWS: Updated to note bug #1819
 
-2012-05-16 18:47  dustymugs
+2012-05-16 18:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Raster2WorldCoord and ST_World2RasterCoord functions to
+	* [r9738] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected: Added
+	  ST_Raster2WorldCoord and ST_World2RasterCoord functions to
 	  consume
 	  RASTER_rasterToWorldCoord and RASTER_worldToRasterCoord
 	  functions.
 	  Refactored existing ST_Raster2WorldCoord(X|Y) and
 	  ST_World2RasterCoord(X|Y) functions to call new functions
 
-2012-05-16 18:47  dustymugs
+2012-05-16 18:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of RASTER_rasterToWorldCoord and
-	  RASTER_worldToRasterCoord
+	* [r9737] raster/rt_pg/rt_pg.c: Addition of
+	  RASTER_rasterToWorldCoord and RASTER_worldToRasterCoord
 	  functions
 
-2012-05-16 15:16  dustymugs
+2012-05-16 15:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional lower-casing of language for PostgreSQL 9.2 as per
-	  r9735
+	* [r9736] raster/rt_pg/rtpostgis.sql.in.c: Additional lower-casing
+	  of language for PostgreSQL 9.2 as per r9735
 
-2012-05-16 08:29  robe
+2012-05-16 08:29  Regina Obe <lr at pcorp.us>
 
-	* #1820 part fix 9.2 language is case sensitive if quoted -- change
-	  'C' and 'SQL' to 'c' and 'sql'
+	* [r9735] postgis/geography.sql.in.c, postgis/geometry_estimate.c,
+	  postgis/legacy.sql.in.c, postgis/legacy_minimal.sql.in.c,
+	  postgis/long_xact.c, postgis/long_xact.sql.in.c,
+	  postgis/lwgeom_triggers.c, postgis/postgis.sql.in.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c,
+	  topology/sql/populate.sql.in.c,
+	  topology/sql/topogeometry/type.sql.in.c,
+	  topology/topology.sql.in.c: #1820 part fix 9.2 language is case
+	  sensitive if quoted -- change 'C' and 'SQL' to 'c' and 'sql'
 
-2012-05-14 23:28  dustymugs
+2012-05-14 23:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of some commented code. Might be useful if an option is
-	  added
+	* [r9734] raster/loader/raster2pgsql.c: Addition of some commented
+	  code. Might be useful if an option is added
 	  to output the VRTs used in the process of loading rasters
 
-2012-05-14 23:28  dustymugs
+2012-05-14 23:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed function parameter datatypes from uint16_t to int to
-	  better
+	* [r9733] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c,
+	  raster/test/regress/rt_pixelvalue_expected: Changed function
+	  parameter datatypes from uint16_t to int to better
 	  handle out-of-range values
 
-2012-05-10 07:24  strk
+2012-05-10 07:24  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup new BuildArea code, add profiling prints (#1806)
+	* [r9732] liblwgeom/lwgeom_geos.c, liblwgeom/lwgeom_geos_clean.c:
+	  Cleanup new BuildArea code, add profiling prints (#1806)
 
-2012-05-09 12:08  strk
+2012-05-09 12:08  Sandro Santilli <strk at keybit.net>
 
-	* Significatively speedup BuildArea with complex input (#1806)
+	* [r9731] NEWS, liblwgeom/cunit/cu_buildarea.c,
+	  liblwgeom/lwgeom_geos.c: Significatively speedup BuildArea with
+	  complex input (#1806)
 	  
 	  Affects ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry.
 	  
@@ -8317,204 +17541,245 @@
 	  with the old. Both versions return the same result (according to
 	  ST_Equals).
 
-2012-05-09 12:08  strk
+2012-05-09 12:08  Sandro Santilli <strk at keybit.net>
 
-	* Add unit test for lwgeom_buildarea (useful for #1806)
+	* [r9730] liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_buildarea.c, liblwgeom/cunit/cu_tester.c: Add
+	  unit test for lwgeom_buildarea (useful for #1806)
 
-2012-05-08 16:47  strk
+2012-05-08 16:47  Sandro Santilli <strk at keybit.net>
 
-	* ST_BuildArea: arrange polygonized output reducing overlay cost
-	  (#1806)
+	* [r9729] liblwgeom/lwgeom_geos.c: ST_BuildArea: arrange
+	  polygonized output reducing overlay cost (#1806)
 	  
 	  By running SymDifference against items with less points first we
 	  reduce the overall cost (output vertices tend to always grow).
 
-2012-05-08 16:47  strk
+2012-05-08 16:47  Sandro Santilli <strk at keybit.net>
 
-	* Make ST_MakeValid tests immune by coordinates order (using
-	  ST_Equals)
+	* [r9728] regress/clean.sql: Make ST_MakeValid tests immune by
+	  coordinates order (using ST_Equals)
 
-2012-05-08 16:47  strk
+2012-05-08 16:47  Sandro Santilli <strk at keybit.net>
 
-	* Cross reference ST_BuildArea with ST_MakePolygon
+	* [r9727] doc/reference_constructor.xml,
+	  doc/reference_processing.xml: Cross reference ST_BuildArea with
+	  ST_MakePolygon
 
-2012-05-07 11:50  robe
+2012-05-07 11:50  Regina Obe <lr at pcorp.us>
 
-	* who is in charge of QA here? 1.5.4 completely missing from trunk
+	* [r9725] doc/release_notes.xml: who is in charge of QA here? 1.5.4
+	  completely missing from trunk
 
-2012-05-07 07:08  strk
+2012-05-07 07:08  Sandro Santilli <strk at keybit.net>
 
-	* postgis_raster_lib_version is also in rtpostgis.sql, not
-	  topology.sql
+	* [r9723] postgis/postgis.sql.in.c: postgis_raster_lib_version is
+	  also in rtpostgis.sql, not topology.sql
 
-2012-05-07 06:58  strk
+2012-05-07 06:58  Sandro Santilli <strk at keybit.net>
 
-	* postgis_raster_scripts_installed is in rtpostgis.sql, not
+	* [r9722] postgis/postgis.sql.in.c:
+	  postgis_raster_scripts_installed is in rtpostgis.sql, not
 	  topology.sql
 
-2012-05-05 13:06  pramsey
+2012-05-05 13:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* README Installation error (#1804)
+	* [r9717] README.postgis: README Installation error (#1804)
 
-2012-05-04 15:12  strk
+2012-05-04 15:12  Sandro Santilli <strk at keybit.net>
 
-	* Sort bugfixes by ticket number, add an item for #1802
+	* [r9716] NEWS: Sort bugfixes by ticket number, add an item for
+	  #1802
 
-2012-05-04 11:21  strk
+2012-05-04 11:21  Sandro Santilli <strk at keybit.net>
 
-	* Turn custom allocators into an occasion for interruption (#1802)
+	* [r9715] libpgcommon/lwgeom_pg.c: Turn custom allocators into an
+	  occasion for interruption (#1802)
 	  
 	  This change allows interrupting any function at allocation time.
 	  Doesn't allow interrupting loops not invoking custom allocators
 	  (includes GEOS, so far).
 
-2012-05-04 08:06  strk
+2012-05-04 08:06  Sandro Santilli <strk at keybit.net>
 
-	* Protect ST_Segmentize from max_length=0 (#1799)
+	* [r9712] postgis/lwgeom_functions_basic.c, regress/tickets.sql,
+	  regress/tickets_expected: Protect ST_Segmentize from max_length=0
+	  (#1799)
 
-2012-05-04 02:54  dustymugs
+2012-05-04 02:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional refactoring of rtpg_getSR().
+	* [r9710] raster/rt_pg/rt_pg.c: Additional refactoring of
+	  rtpg_getSR().
 
-2012-05-04 02:54  dustymugs
+2012-05-04 02:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional fixups in rtpg_getSR() for better handling of
-	  spatial_ref_sys.
+	* [r9709] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_resample.sql,
+	  raster/test/regress/rt_resample_expected: Additional fixups in
+	  rtpg_getSR() for better handling of spatial_ref_sys.
 	  Also inclusion of several regression tests to stress
 	  rtpg_getSR().
 
-2012-04-30 17:27  pramsey
+2012-04-30 17:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Restrict the coverage of the geography polar interesction
-	  slightly.
+	* [r9705] regress/tickets.sql, regress/tickets_expected: Restrict
+	  the coverage of the geography polar interesction slightly.
 
-2012-04-30 00:35  robe
+2012-04-30 00:35  Regina Obe <lr at pcorp.us>
 
-	* update stats
+	* [r9698] doc/extras_tigergeocoder.xml: update stats
 
-2012-04-30 00:22  robe
+2012-04-30 00:22  Regina Obe <lr at pcorp.us>
 
-	* drop_state_tables_generate_script state arg misnamed as address
+	* [r9697] doc/extras_tigergeocoder.xml:
+	  drop_state_tables_generate_script state arg misnamed as address
 	  instead of param_state
 
-2012-04-26 20:32  strk
+2012-04-26 20:32  Sandro Santilli <strk at keybit.net>
 
-	* Add note about clang build fix (#1694)
+	* [r9685] NEWS: Add note about clang build fix (#1694)
 
-2012-04-26 20:26  strk
+2012-04-26 20:26  Sandro Santilli <strk at keybit.net>
 
-	* Fix wrong ticket reference
+	* [r9684] NEWS: Fix wrong ticket reference
 
-2012-04-26 20:10  strk
+2012-04-26 20:10  Sandro Santilli <strk at keybit.net>
 
-	* Fix false edge-node crossing report in ValidateTopology (#1625)
+	* [r9683] NEWS, topology/test/Makefile,
+	  topology/test/regress/validatetopology.sql,
+	  topology/test/regress/validatetopology_expected,
+	  topology/topology.sql.in.c: Fix false edge-node crossing report
+	  in ValidateTopology (#1625)
 
-2012-04-26 16:30  strk
+2012-04-26 16:30  Sandro Santilli <strk at keybit.net>
 
-	* Give ST_Azimuth a chance with close but distinct points (#1791)
+	* [r9682] NEWS, postgis/lwgeom_functions_basic.c,
+	  regress/tickets.sql, regress/tickets_expected: Give ST_Azimuth a
+	  chance with close but distinct points (#1791)
 
-2012-04-25 22:36  robe
+2012-04-25 22:36  Regina Obe <lr at pcorp.us>
 
-	* meida /print wasn't working on all cheatsheets because too
-	  specific.
+	* [r9679] doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/tiger_geocoder_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: meida /print wasn't working
+	  on all cheatsheets because too specific.
 
-2012-04-25 20:04  pramsey
+2012-04-25 20:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* AddGeometryColumns allow dims = 0 (#1573)
+	* [r9678] postgis/postgis.sql.in.c: AddGeometryColumns allow dims =
+	  0 (#1573)
 
-2012-04-25 19:41  strk
+2012-04-25 19:41  Sandro Santilli <strk at keybit.net>
 
-	* Fix toTopoGeom handling of duplicated primitives (#1790)
+	* [r9675] NEWS, topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected: Fix toTopoGeom
+	  handling of duplicated primitives (#1790)
 
-2012-04-25 18:49  pramsey
+2012-04-25 18:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* st_dwithin(geog, geog, 0) doesn't work (#1264)
+	* [r9669] postgis/geography_measurement.c, regress/tickets.sql,
+	  regress/tickets_expected: st_dwithin(geog, geog, 0) doesn't work
+	  (#1264)
 
-2012-04-25 17:54  pramsey
+2012-04-25 17:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Forward port test from #1170
+	* [r9666] regress/tickets.sql, regress/tickets_expected: Forward
+	  port test from #1170
 
-2012-04-24 22:05  robe
+2012-04-24 22:05  Regina Obe <lr at pcorp.us>
 
-	* don't underline and color hyperlinks in print mode
+	* [r9663] doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/tiger_geocoder_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: don't underline and color
+	  hyperlinks in print mode
 
-2012-04-24 20:02  pramsey
+2012-04-24 20:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* run_test hangs on MSYS (#1788)
+	* [r9662] regress/run_test: run_test hangs on MSYS (#1788)
 
-2012-04-24 19:56  pramsey
+2012-04-24 19:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* run_test hangs on MSYS (#1788)
+	* [r9661] regress/run_test: run_test hangs on MSYS (#1788)
 
-2012-04-24 19:12  strk
+2012-04-24 19:12  Sandro Santilli <strk at keybit.net>
 
-	* Azimuth on the 9th hour of the clock is 3PI/2, not 3PI/4 (thanks
-	  ij)
+	* [r9660] doc/reference_measure.xml: Azimuth on the 9th hour of the
+	  clock is 3PI/2, not 3PI/4 (thanks ij)
 
-2012-04-24 17:58  pramsey
+2012-04-24 17:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* libjson configure test doesn't include support for DLL (#1787)
+	* [r9659] configure.ac: libjson configure test doesn't include
+	  support for DLL (#1787)
 
-2012-04-24 15:37  strk
+2012-04-24 15:37  Sandro Santilli <strk at keybit.net>
 
-	* Hush debugging in ST_DumpPoints
+	* [r9657] postgis/postgis.sql.in.c: Hush debugging in ST_DumpPoints
 
-2012-04-24 09:16  strk
+2012-04-24 09:16  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom depends on postgis_config.h and postgis_svn_revision.h
-	  (#1786)
+	* [r9656] NEWS, liblwgeom/Makefile.in: liblwgeom depends on
+	  postgis_config.h and postgis_svn_revision.h (#1786)
 
-2012-04-24 09:16  strk
+2012-04-24 09:16  Sandro Santilli <strk at keybit.net>
 
-	* Fix deps of postgis on postgis_svn_revision.h, pgcommon and
-	  lwgeom
+	* [r9655] postgis/Makefile.in: Fix deps of postgis on
+	  postgis_svn_revision.h, pgcommon and lwgeom
 
-2012-04-23 05:48  robe
+2012-04-23 05:48  Regina Obe <lr at pcorp.us>
 
-	* make igst index link tag friendly and provide example of nd
-	  index.
+	* [r9654] doc/using_postgis_dataman.xml: make igst index link tag
+	  friendly and provide example of nd index.
 
-2012-04-20 16:13  dustymugs
+2012-04-20 16:13  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added note related to overviews not being aligned though the
-	  source
+	* [r9653] doc/using_raster_dataman.xml: Added note related to
+	  overviews not being aligned though the source
 	  rasters are aligned for specific overview factors.
 
-2012-04-20 14:50  dustymugs
+2012-04-20 14:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ticket #1782 to NEWS. Updated contributors section.
+	* [r9652] NEWS, doc/introduction.xml: Added ticket #1782 to NEWS.
+	  Updated contributors section.
 
-2012-04-20 03:28  pramsey
+2012-04-20 03:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix incorrect call to geom->type where geom->flags is needed
+	* [r9651] liblwgeom/lwgeom_geos_clean.c: Fix incorrect call to
+	  geom->type where geom->flags is needed
 
-2012-04-20 03:23  pramsey
+2012-04-20 03:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* st_isclosed() doesn't return false for unclosed POLYGONS only
+	* [r9650] liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwline.c, liblwgeom/lwpoly.c:
+	  st_isclosed() doesn't return false for unclosed POLYGONS only
 	  LINESTRINGS (#1756)
 
-2012-04-19 15:24  dustymugs
+2012-04-19 15:24  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed emptry string check that prevented use of proj4text or
-	  srtext in
+	* [r9649] raster/rt_pg/rt_pg.c: Removed emptry string check that
+	  prevented use of proj4text or srtext in
 	  rtpg_getSR(). Ticket is #1782
 
-2012-04-19 15:23  dustymugs
+2012-04-19 15:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* minor comments changed
+	* [r9648] raster/rt_pg/rt_pg.c: minor comments changed
 
-2012-04-18 19:21  dustymugs
+2012-04-18 19:21  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix handling of tuples as described in #1782
+	* [r9647] raster/rt_pg/rt_pg.c: Fix handling of tuples as described
+	  in #1782
 
-2012-04-16 20:06  dustymugs
+2012-04-16 20:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Replaced testing of two rasters' geotransform matrix with
-	  alignment test
+	* [r9645] raster/loader/raster2pgsql.c: Replaced testing of two
+	  rasters' geotransform matrix with alignment test
 
-2012-04-15 15:47  mcayland
+2012-04-15 15:47  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #1468: shp2pgsql-gui table column schema get shifted
+	* [r9644] loader/shp2pgsql-gui.c: Fix #1468: shp2pgsql-gui table
+	  column schema get shifted
 	  
 	  A couple of copy/paste errors meant that the update handler was
 	  being invoked
@@ -8522,10 +17787,10 @@
 	  just once on
 	  the schema column.
 
-2012-04-15 15:46  mcayland
+2012-04-15 15:46  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* shp2pgsql-gui: don't allow the user to edit the schema name in
-	  the listview.
+	* [r9643] loader/shp2pgsql-gui.c: shp2pgsql-gui: don't allow the
+	  user to edit the schema name in the listview.
 	  
 	  This brings the behaviour in line with that of the table name,
 	  and since
@@ -8533,334 +17798,407 @@
 	  be no
 	  need to do this.
 
-2012-04-13 21:14  strk
+2012-04-13 21:14  Sandro Santilli <strk at keybit.net>
 
-	* Regress-test ST_ChangeEdgeGeom with 2-vertext target (#1775)
+	* [r9642] NEWS, topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Regress-test
+	  ST_ChangeEdgeGeom with 2-vertext target (#1775)
 	  
 	  This case was actually fixed by previous commit
 	  (ST_SymDifference)
 
-2012-04-13 21:04  strk
+2012-04-13 21:04  Sandro Santilli <strk at keybit.net>
 
-	* fix ST_SymDifference(empty, geom) to return geom (#1776)
+	* [r9641] NEWS, liblwgeom/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: fix ST_SymDifference(empty, geom) to
+	  return geom (#1776)
 
-2012-04-13 14:32  strk
+2012-04-13 14:32  Sandro Santilli <strk at keybit.net>
 
-	* Give more detail on topology editing function exception
+	* [r9640] NEWS, topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_addedgemodface_expected,
+	  topology/test/regress/st_addedgenewfaces_expected,
+	  topology/test/regress/st_changeedgegeom_expected: Give more
+	  detail on topology editing function exception
 
-2012-04-12 14:09  strk
+2012-04-12 14:09  Sandro Santilli <strk at keybit.net>
 
-	* Use an SQLPP command for pre-processing SQL files (#1694)
+	* [r9639] configure.ac, postgis/Makefile.in,
+	  raster/rt_pg/Makefile.in, topology/Makefile.in: Use an SQLPP
+	  command for pre-processing SQL files (#1694)
 	  
 	  The SQLPP command is figured at ./configure time.
 	  It will use cpp(1) or gpp(1) if any is found in that order or
 	  fallback to whatever CPP expands to (usually the compiler with
 	  -E)
 
-2012-04-12 14:09  strk
+2012-04-12 14:09  Sandro Santilli <strk at keybit.net>
 
-	* Use more compatible '#define' syntax
+	* [r9638] postgis/sqldefines.h.in: Use more compatible '#define'
+	  syntax
 
-2012-04-12 10:51  strk
+2012-04-12 10:51  Sandro Santilli <strk at keybit.net>
 
-	* Do not assume ndims check statements are fully qualified (#1708)
+	* [r9637] NEWS, utils/postgis_restore.pl.in: Do not assume ndims
+	  check statements are fully qualified (#1708)
 
-2012-04-12 10:28  strk
+2012-04-12 10:28  Sandro Santilli <strk at keybit.net>
 
-	* Automate test for toTopoGeom usage with custom search_path
-	  (#1763)
+	* [r9636] topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected: Automate test for
+	  toTopoGeom usage with custom search_path (#1763)
 
-2012-04-12 10:28  strk
+2012-04-12 10:28  Sandro Santilli <strk at keybit.net>
 
-	* Do not consider RESET outputs
+	* [r9635] regress/run_test: Do not consider RESET outputs
 
-2012-04-12 10:06  strk
+2012-04-12 10:06  Sandro Santilli <strk at keybit.net>
 
-	* Rephrase item for about topology functions and full qualification
+	* [r9634] NEWS: Rephrase item for about topology functions and full
+	  qualification
 
-2012-04-12 07:21  strk
+2012-04-12 07:21  Sandro Santilli <strk at keybit.net>
 
-	* Fix NaN from ptarray_locate_point with zero-length lines (#1772)
+	* [r9630] liblwgeom/ptarray.c, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected, regress/split.sql,
+	  regress/split_expected: Fix NaN from ptarray_locate_point with
+	  zero-length lines (#1772)
 
-2012-04-12 07:21  strk
+2012-04-12 07:21  Sandro Santilli <strk at keybit.net>
 
-	* Fix comment doc about lwline_split_by_point_to
+	* [r9629] liblwgeom/lwgeom_geos_split.c: Fix comment doc about
+	  lwline_split_by_point_to
 
-2012-04-11 19:20  strk
+2012-04-11 19:20  Sandro Santilli <strk at keybit.net>
 
-	* Add note about ST_RemEdgeModFace and ST_RemEdgeNewFace fix
-	  (#1766)
+	* [r9628] NEWS: Add note about ST_RemEdgeModFace and
+	  ST_RemEdgeNewFace fix (#1766)
 
-2012-04-11 19:17  strk
+2012-04-11 19:17  Sandro Santilli <strk at keybit.net>
 
-	* Don't let ST_RemEdge* destroy TopoGeometry objects (#1766)
+	* [r9627] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_remedgemodface.sql,
+	  topology/test/regress/st_remedgemodface_expected,
+	  topology/test/regress/st_remedgenewface.sql,
+	  topology/test/regress/st_remedgenewface_expected: Don't let
+	  ST_RemEdge* destroy TopoGeometry objects (#1766)
 
-2012-04-11 12:37  strk
+2012-04-11 12:37  Sandro Santilli <strk at keybit.net>
 
-	* Add note aboute #1714 bugfix
+	* [r9626] NEWS: Add note aboute #1714 bugfix
 
-2012-04-11 12:37  strk
+2012-04-11 12:37  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup lines after (bad) snapping (#1714)
+	* [r9625] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected,
+	  topology/test/regress/topogeo_addpolygon_expected: Cleanup lines
+	  after (bad) snapping (#1714)
 
-2012-04-10 17:26  strk
+2012-04-10 17:26  Sandro Santilli <strk at keybit.net>
 
-	* Have ST_ModEdgeSplit and ST_NewEdgesSplit to use ST_Spit (#1715)
+	* [r9624] topology/sql/sqlmm.sql.in.c: Have ST_ModEdgeSplit and
+	  ST_NewEdgesSplit to use ST_Spit (#1715)
 
-2012-04-10 15:51  strk
+2012-04-10 15:51  Sandro Santilli <strk at keybit.net>
 
-	* Call config.status if liblwgeom.h.in newer than liblwgeom.h
-	  (#1691)
+	* [r9623] liblwgeom/Makefile.in: Call config.status if
+	  liblwgeom.h.in newer than liblwgeom.h (#1691)
 
-2012-04-10 10:20  strk
+2012-04-10 10:20  Sandro Santilli <strk at keybit.net>
 
-	* Add bug fixes committed so far in the 2.0 branch
+	* [r9622] NEWS: Add bug fixes committed so far in the 2.0 branch
 
-2012-04-10 00:20  robe
+2012-04-10 00:20  Regina Obe <lr at pcorp.us>
 
-	* #1759 transform functionality doesn't work if you have raster
-	  installed.
+	* [r9621] loader/shp2pgsql-core.c: #1759 transform functionality
+	  doesn't work if you have raster installed.
 
-2012-04-09 22:44  dustymugs
+2012-04-09 22:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added handling of subdatasets coming from NetCDF, HDF4 and HDF5.
+	* [r9620] raster/loader/raster2pgsql.c: Added handling of
+	  subdatasets coming from NetCDF, HDF4 and HDF5.
 	  Associated ticket is #1761.
 
-2012-04-08 10:00  strk
+2012-04-08 10:00  Sandro Santilli <strk at keybit.net>
 
-	* Fully qualify calls to topology functions (#1763)
+	* [r9619] topology/sql/topogeometry/totopogeom.sql.in.c: Fully
+	  qualify calls to topology functions (#1763)
 
-2012-04-07 02:05  robe
+2012-04-07 02:05  Regina Obe <lr at pcorp.us>
 
-	* #1757 -- change in behavior of ST_3Dlength_spheroid not noted and
-	  changed name incorrectly stated.
+	* [r9618] doc/reference_measure.xml: #1757 -- change in behavior of
+	  ST_3Dlength_spheroid not noted and changed name incorrectly
+	  stated.
 
-2012-04-06 12:38  robe
+2012-04-06 12:38  Regina Obe <lr at pcorp.us>
 
-	* hyperlink function names to section in online manual
+	* [r9617] doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: hyperlink function names to
+	  section in online manual
 
-2012-04-05 18:35  chodgson
+2012-04-05 18:35  Chris Hodgson <chodgson at refractions.net>
 
-	* updated version number in pom.xml
+	* [r9616] java/jdbc/pom.xml: updated version number in pom.xml
 
-2012-04-05 18:25  pramsey
+2012-04-05 18:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Geometry has Z dimension but column does not (#1755)
+	* [r9615] regress/tickets.sql, regress/tickets_expected: Geometry
+	  has Z dimension but column does not (#1755)
 
-2012-04-05 18:22  pramsey
+2012-04-05 18:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Send an "unknown" typmod into gserialized constructor from
-	  ST_GeographyFromText (#1755)
+	* [r9614] postgis/geography_inout.c: Send an "unknown" typmod into
+	  gserialized constructor from ST_GeographyFromText (#1755)
 
-2012-04-05 09:11  strk
+2012-04-05 09:11  Sandro Santilli <strk at keybit.net>
 
-	* Allow for 1.#INF to be threated as Inf (#1736)
+	* [r9613] liblwgeom/cunit/cu_in_wkt.c: Allow for 1.#INF to be
+	  threated as Inf (#1736)
 
-2012-04-05 09:11  strk
+2012-04-05 09:11  Sandro Santilli <strk at keybit.net>
 
-	* Threat Infinite and 1.#INF the same (#1736)
+	* [r9612] regress/regress.sql: Threat Infinite and 1.#INF the same
+	  (#1736)
 
-2012-04-05 08:56  strk
+2012-04-05 08:56  Sandro Santilli <strk at keybit.net>
 
-	* Drop java/pljava dir (#1411)
+	* [r9611] java/pljava: Drop java/pljava dir (#1411)
 
-2012-04-05 08:54  strk
+2012-04-05 08:54  Sandro Santilli <strk at keybit.net>
 
-	* Do not mention pljava, it's gone (#1411)
+	* [r9610] README.postgis: Do not mention pljava, it's gone (#1411)
 
-2012-04-05 00:27  dustymugs
+2012-04-05 00:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed missing SVN revision tag in raster2pgsql's help
+	* [r9609] raster/loader/raster2pgsql.c: Fixed missing SVN revision
+	  tag in raster2pgsql's help
 
-2012-04-04 21:49  strk
+2012-04-04 21:49  Sandro Santilli <strk at keybit.net>
 
-	* Add note about topology.Polygonize not doing edge linking
+	* [r9608] doc/extras_topology.xml: Add note about
+	  topology.Polygonize not doing edge linking
 
-2012-04-04 21:49  strk
+2012-04-04 21:49  Sandro Santilli <strk at keybit.net>
 
-	* Tabs to spaces
+	* [r9607] topology/sql/polygonize.sql.in.c: Tabs to spaces
 
-2012-04-03 19:26  pramsey
+2012-04-03 19:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update release date for 2.0.0 (TODO more readable release notes)
+	* [r9606] doc/release_notes.xml: Update release date for 2.0.0
+	  (TODO more readable release notes)
 
-2012-04-03 19:24  pramsey
+2012-04-03 19:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Set up for 2.0.1
+	* [r9604] NEWS, README.postgis: Set up for 2.0.1
 
-2012-04-03 19:22  pramsey
+2012-04-03 19:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Prep for 2.0.0
+	* [r9602] ChangeLog, README.postgis, Version.config,
+	  extensions/upgradeable_versions.mk: Prep for 2.0.0
 
-2012-04-03 18:46  dustymugs
+2012-04-03 18:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix error message
+	* [r9601] raster/rt_pg/rt_pg.c: Fix error message
 
-2012-04-03 18:29  strk
+2012-04-03 18:29  Sandro Santilli <strk at keybit.net>
 
-	* Use full URL to trac query
+	* [r9600] NEWS: Use full URL to trac query
 
-2012-04-03 18:24  pramsey
+2012-04-03 18:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add extensions
+	* [r9599] NEWS: Add extensions
 
-2012-04-03 18:21  pramsey
+2012-04-03 18:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Convert text to UTF8
+	* [r9598] NEWS: Convert text to UTF8
 
-2012-04-03 18:10  pramsey
+2012-04-03 18:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Final answer?
+	* [r9597] NEWS: Final answer?
 
-2012-04-03 17:46  pramsey
+2012-04-03 17:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* rewrite breaking section
+	* [r9596] NEWS: rewrite breaking section
 
-2012-04-03 17:34  pramsey
+2012-04-03 17:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More minor edits
+	* [r9595] NEWS: More minor edits
 
-2012-04-03 17:27  strk
+2012-04-03 17:27  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_Node item
+	* [r9594] NEWS: Add ST_Node item
 
-2012-04-03 17:25  pramsey
+2012-04-03 17:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor reorg of NEWS, more to come
+	* [r9593] NEWS: Minor reorg of NEWS, more to come
 
-2012-04-03 12:05  strk
+2012-04-03 12:05  Sandro Santilli <strk at keybit.net>
 
-	* Write CREATE TYPE as expected by postgis_proc_upgrade.pl (#1746)
+	* [r9592] postgis/postgis.sql.in.c: Write CREATE TYPE as expected
+	  by postgis_proc_upgrade.pl (#1746)
 	  
 	  The script expects CREATE TYPE to spawn multimultiple lines ...
 
-2012-04-03 12:05  strk
+2012-04-03 12:05  Sandro Santilli <strk at keybit.net>
 
-	* Add note about input noding for ST_Polygonize and ST_BuildArea
+	* [r9591] doc/reference_processing.xml: Add note about input noding
+	  for ST_Polygonize and ST_BuildArea
 
-2012-04-01 20:19  pramsey
+2012-04-01 20:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update changelog on trunk
+	* [r9590] ChangeLog: Update changelog on trunk
 
-2012-04-01 20:16  pramsey
+2012-04-01 20:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Version bumps for RC2
+	* [r9586] NEWS, README.postgis, Version.config,
+	  extensions/upgradeable_versions.mk: Version bumps for RC2
 
-2012-03-31 16:26  dustymugs
+2012-03-31 16:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor tweak to message regarding GEOS < 3.3
+	* [r9585] raster/rt_core/rt_api.c: Minor tweak to message regarding
+	  GEOS < 3.3
 
-2012-03-30 22:40  pramsey
+2012-03-30 22:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Comment out noise in the GEOS 3.2 case. (#1740)
+	* [r9584] raster/rt_core/rt_api.c: Comment out noise in the GEOS
+	  3.2 case. (#1740)
 
-2012-03-30 14:17  mcayland
+2012-03-30 14:17  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Make sure that we clear any previously selected files when
-	  (re)opening the import file selector in the shapefile GUI.
+	* [r9583] loader/shp2pgsql-gui.c: Make sure that we clear any
+	  previously selected files when (re)opening the import file
+	  selector in the shapefile GUI.
 
-2012-03-30 14:17  mcayland
+2012-03-30 14:17  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #1741: Build error --with-gui, gtk problem.
+	* [r9582] loader/shp2pgsql-gui.c: Fix #1741: Build error
+	  --with-gui, gtk problem.
 	  
 	  Older versions of GTK (< 2.14.0) don't have
 	  gtk_dialog_get_content_area(). Work
 	  around this by providing a compatibility #define for these older
 	  GTK versions.
 
-2012-03-30 08:36  strk
+2012-03-30 08:36  Sandro Santilli <strk at keybit.net>
 
-	* Have BuildArea catch exception from GEOSSymDifference (#1738)
+	* [r9581] liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_clean.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/lwgeom_geos.c: Have
+	  BuildArea catch exception from GEOSSymDifference (#1738)
 
-2012-03-29 21:52  pramsey
+2012-03-29 21:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* wrong proj4text in spatial_ref_sys for SRID 31300 and 31370
-	  (#1389)
+	* [r9578] spatial_ref_sys.sql: wrong proj4text in spatial_ref_sys
+	  for SRID 31300 and 31370 (#1389)
 
-2012-03-29 12:37  strk
+2012-03-29 12:37  Sandro Santilli <strk at keybit.net>
 
-	* Fix crash on NULL item in ND index (#1734)
+	* [r9577] postgis/gserialized_gist_nd.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix crash on NULL item in ND index
+	  (#1734)
 	  
 	  Add regression testing for the case
 
-2012-03-28 23:12  pramsey
+2012-03-28 23:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* make install doesn't install postgis_restore.pl (#1732)
+	* [r9575] utils/Makefile.in: make install doesn't install
+	  postgis_restore.pl (#1732)
 
-2012-03-28 22:59  pramsey
+2012-03-28 22:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bump versions for 2.0.0rc1 release
+	* [r9572] ChangeLog, NEWS, README.postgis, Version.config,
+	  extensions/upgradeable_versions.mk: Bump versions for 2.0.0rc1
+	  release
 
-2012-03-28 14:02  strk
+2012-03-28 14:02  Sandro Santilli <strk at keybit.net>
 
-	* Strip schemas from search_path as part of uninstall procedures
+	* [r9570] utils/create_undef.pl: Strip schemas from search_path as
+	  part of uninstall procedures
 
-2012-03-28 12:40  strk
+2012-03-28 12:40  Sandro Santilli <strk at keybit.net>
 
-	* Reduce extensions requirements (#1724)
+	* [r9569] configure.ac: Reduce extensions requirements (#1724)
 	  
 	  Build extensions even w/out topology, and even w/out xsltproc if
 	  comments are already built.
 
-2012-03-28 11:36  strk
+2012-03-28 11:36  Sandro Santilli <strk at keybit.net>
 
-	* Fix GetGopoGeomElementArray code (#1730)
+	* [r9568] topology/test/Makefile,
+	  topology/test/regress/gettopogeomelements.sql,
+	  topology/test/regress/gettopogeomelements_expected,
+	  topology/topology.sql.in.c: Fix GetGopoGeomElementArray code
+	  (#1730)
 	  
 	  Includes regression testing for both GetGopoGeomElements
 	  and GetGopoGeomElementArray
 
-2012-03-28 09:19  strk
+2012-03-28 09:19  Sandro Santilli <strk at keybit.net>
 
-	* Add regression test for GiST index crash on empty (#1697)
+	* [r9567] regress/tickets.sql, regress/tickets_expected: Add
+	  regression test for GiST index crash on empty (#1697)
 	  
 	  Also tests you can query all empty items from an index
 
-2012-03-28 08:22  strk
+2012-03-28 08:22  Sandro Santilli <strk at keybit.net>
 
-	* Fix crash in n-dimensional GiST index on EMPTY geoms (#1697)
+	* [r9563] postgis/gserialized_gist_nd.c: Fix crash in n-dimensional
+	  GiST index on EMPTY geoms (#1697)
 	  
 	  This is Paul's patch with the unrelated btree changes removed and
 	  the memset removed too.
 
-2012-03-27 23:39  robe
+2012-03-27 23:39  Regina Obe <lr at pcorp.us>
 
-	* detail how to use create extension .. from unpackaged
+	* [r9562] doc/installation.xml: detail how to use create extension
+	  .. from unpackaged
 
-2012-03-27 23:17  robe
+2012-03-27 23:17  Regina Obe <lr at pcorp.us>
 
-	* #1727 this will make statements like CREATE EXTENSION postgis
+	* [r9561] extensions/make_unpackaged.sql,
+	  extensions/postgis/Makefile.in,
+	  extensions/postgis/sql_bits/postgis--unpackaged.sql.in,
+	  extensions/postgis_topology/Makefile.in,
+	  extensions/postgis_topology/sql_bits/topology--unpackaged.sql.in:
+	  #1727 this will make statements like CREATE EXTENSION postgis
 	  FROM unpackaged; CREATE EXTENSION postgis_topology FROM
 	  unpackaged; work. It's sadly static at the moment.
 
-2012-03-27 22:05  dustymugs
+2012-03-27 22:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added robustness checking that GDAL supports spatial reference
-	  text from
+	* [r9560] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c: Added robustness checking that GDAL
+	  supports spatial reference text from
 	  spatial_ref_sys table
 
-2012-03-27 19:25  dustymugs
+2012-03-27 19:25  Bborie Park <bkpark at ucdavis.edu>
 
-	* Merge branch 'master' into HEAD
+	* [r9559] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c: Merge branch 'master' into HEAD
 
-2012-03-27 18:14  strk
+2012-03-27 18:14  Sandro Santilli <strk at keybit.net>
 
-	* Have uninstall scripts drop created schemas, regress test it
+	* [r9558] regress/run_test, utils/create_undef.pl: Have uninstall
+	  scripts drop created schemas, regress test it
 
-2012-03-27 17:30  strk
+2012-03-27 17:30  Sandro Santilli <strk at keybit.net>
 
-	* Wrap most topology.sql into a transaction
+	* [r9557] topology/topology.sql.in.c: Wrap most topology.sql into a
+	  transaction
 	  
 	  CREATE SCHEMA is left out because uninstall_topology isn't
 	  getting
 	  rid of it (to be fixed later)
 
-2012-03-27 17:06  strk
+2012-03-27 17:06  Sandro Santilli <strk at keybit.net>
 
-	* Do not mess with search_path when installing comments (#1723)
+	* [r9556] doc/xsl/topology_comments.sql.xsl: Do not mess with
+	  search_path when installing comments (#1723)
 
-2012-03-27 14:47  strk
+2012-03-27 14:47  Sandro Santilli <strk at keybit.net>
 
-	* Update extensions/README (#1720)
+	* [r9555] extensions/README: Update extensions/README (#1720)
 	  
 	  - reStructuredText Markup, 80 column text
 	  - Rewrite several paragraphs
@@ -8871,19 +18209,22 @@
 	  
 	  Patch by Mike Toews
 
-2012-03-27 14:32  strk
+2012-03-27 14:32  Sandro Santilli <strk at keybit.net>
 
-	* Accept POINT types in ST_MakeValid (#1719)
+	* [r9554] postgis/lwgeom_geos_clean.c, regress/clean.sql,
+	  regress/clean_expected: Accept POINT types in ST_MakeValid
+	  (#1719)
 
-2012-03-27 10:51  strk
+2012-03-27 10:51  Sandro Santilli <strk at keybit.net>
 
-	* 80 cols wrap for pgsql2shp help screen (#1722)
+	* [r9553] loader/pgsql2shp-cli.c: 80 cols wrap for pgsql2shp help
+	  screen (#1722)
 	  
 	  Patch by Mike Toews
 
-2012-03-27 09:56  strk
+2012-03-27 09:56  Sandro Santilli <strk at keybit.net>
 
-	* Update doc/README (#1721)
+	* [r9552] doc/README: Update doc/README (#1721)
 	  
 	  - reStructuredText Markup, 80 column text limit
 	  - Structure the make targets using definition lists
@@ -8891,24 +18232,33 @@
 	  
 	  Patch by Mike Toews
 
-2012-03-27 07:01  strk
+2012-03-27 07:01  Sandro Santilli <strk at keybit.net>
 
-	* Drop pljava (#1411)
+	* [r9551] java/pljava/README.txt, java/pljava/build.xml,
+	  java/pljava/functions.sql, java/pljava/install.sh,
+	  java/pljava/postgis_pljava.jar,
+	  java/pljava/src/org/postgis/pljava/Aggregates.java,
+	  java/pljava/src/org/postgis/pljava/HelloWorld.java,
+	  java/pljava/src/org/postgis/pljava/PLJGeometry.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsParser.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsWriter.java,
+	  java/pljava/update.sh: Drop pljava (#1411)
 
-2012-03-27 02:08  robe
+2012-03-27 02:08  Regina Obe <lr at pcorp.us>
 
-	* #1693, #1704 - twofer - change DROP AGGREGATE and DROP VIEW to be
-	  DROP .. IF EXISTS
+	* [r9550] utils/create_undef.pl: #1693, #1704 - twofer - change
+	  DROP AGGREGATE and DROP VIEW to be DROP .. IF EXISTS
 
-2012-03-27 01:16  robe
+2012-03-27 01:16  Regina Obe <lr at pcorp.us>
 
-	* minor typo correction
+	* [r9549] doc/using_postgis_dataman.xml: minor typo correction
 
-2012-03-26 16:23  mcayland
+2012-03-26 16:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rework code from r9204 (bug #900: shp2pgsql: a switch to drop M
-	  from 4d imports) to fix bug #1710: shp2pgsql -t option is not
-	  working properly.
+	* [r9548] loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h: Rework code from r9204 (bug #900:
+	  shp2pgsql: a switch to drop M from 4d imports) to fix bug #1710:
+	  shp2pgsql -t option is not working properly.
 	  
 	  The original implementation set the has_z/has_m flags directly
 	  based upon the -t parameter; however this lost the information
@@ -8918,302 +18268,395 @@
 	  simple switch() to set both the output dimension and output
 	  flags correctly.
 
-2012-03-26 16:23  mcayland
+2012-03-26 16:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove istypeM state variable from loader as it isn't used
-	  anymore.
+	* [r9547] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h: Remove
+	  istypeM state variable from loader as it isn't used anymore.
 
-2012-03-26 16:23  mcayland
+2012-03-26 16:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Improve readability in the loader by fixing various whitespace
-	  issues.
+	* [r9546] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h: Improve
+	  readability in the loader by fixing various whitespace issues.
 
-2012-03-26 13:18  robe
+2012-03-26 13:18  Regina Obe <lr at pcorp.us>
 
-	* change example for totopogeom
+	* [r9545] doc/extras_topology.xml: change example for totopogeom
 
-2012-03-26 13:17  strk
+2012-03-26 13:17  Sandro Santilli <strk at keybit.net>
 
-	* Wrap within 80 cols
+	* [r9544] MIGRATION: Wrap within 80 cols
 
-2012-03-26 12:26  robe
+2012-03-26 12:26  Regina Obe <lr at pcorp.us>
 
-	* Add an example for toTopoGeom
+	* [r9543] doc/extras_topology.xml: Add an example for toTopoGeom
 
-2012-03-23 23:46  pramsey
+2012-03-23 23:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates for 2.0
+	* [r9542] CREDITS, MIGRATION: Updates for 2.0
 
-2012-03-23 23:00  strk
+2012-03-23 23:00  Sandro Santilli <strk at keybit.net>
 
-	* Add topology validity checking (extra paranoia)
+	* [r9541] topology/test/regress/topogeo_addlinestring.sql: Add
+	  topology validity checking (extra paranoia)
 
-2012-03-23 22:54  strk
+2012-03-23 22:54  Sandro Santilli <strk at keybit.net>
 
-	* Do not abuse ST_Snap for tweaking edge endpoints (#1706)
+	* [r9540] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Do not
+	  abuse ST_Snap for tweaking edge endpoints (#1706)
 
-2012-03-23 22:23  strk
+2012-03-23 22:23  Sandro Santilli <strk at keybit.net>
 
-	* Enhance edge splitting robustness (#1711)
+	* [r9539] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_modedgesplit.sql,
+	  topology/test/regress/st_modedgesplit_expected,
+	  topology/test/regress/st_newedgessplit.sql,
+	  topology/test/regress/st_newedgessplit_expected: Enhance edge
+	  splitting robustness (#1711)
 
-2012-03-23 21:07  pramsey
+2012-03-23 21:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Skip over geodetic check for empty geometries.
+	* [r9538] liblwgeom/lwgeodetic.c: Skip over geodetic check for
+	  empty geometries.
 
-2012-03-23 19:14  pramsey
+2012-03-23 19:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Allow build to work under DEBUG=5
+	* [r9537] liblwgeom/ptarray.c: Allow build to work under DEBUG=5
 
-2012-03-23 17:08  strk
+2012-03-23 17:08  Sandro Santilli <strk at keybit.net>
 
-	* Add debugging lines to sqlmm edge splitting functions
+	* [r9536] topology/sql/sqlmm.sql.in.c: Add debugging lines to sqlmm
+	  edge splitting functions
 
-2012-03-23 15:11  strk
+2012-03-23 15:11  Sandro Santilli <strk at keybit.net>
 
-	* Add missing ticket reference to it's regression test
+	* [r9535] topology/test/regress/topogeo_addlinestring.sql: Add
+	  missing ticket reference to it's regression test
 
-2012-03-23 13:16  pracine
+2012-03-23 13:16  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Made the red color for parameters a bit darker...
+	* [r9534] doc/html/style.css: Made the red color for parameters a
+	  bit darker...
 
-2012-03-23 13:09  robe
+2012-03-23 13:09  Regina Obe <lr at pcorp.us>
 
-	* flesh out upgrade a bit.
+	* [r9533] doc/installation.xml: flesh out upgrade a bit.
 
-2012-03-23 07:54  robe
+2012-03-23 07:54  Regina Obe <lr at pcorp.us>
 
-	* make variables names red to stand out better
+	* [r9532] doc/html/style.css: make variables names red to stand out
+	  better
 
-2012-03-22 17:24  pramsey
+2012-03-22 17:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update regression to handle new collection(empty) possibilities
+	* [r9531] regress/wkt_expected: Update regression to handle new
+	  collection(empty) possibilities
 
-2012-03-22 16:55  pramsey
+2012-03-22 16:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Parse error on WKT for multi with empty elements (#1703)
+	* [r9530] liblwgeom/lwin_wkt_parse.c, liblwgeom/lwin_wkt_parse.y,
+	  liblwgeom/lwout_wkt.c: Parse error on WKT for multi with empty
+	  elements (#1703)
 
-2012-03-22 15:07  strk
+2012-03-22 15:07  Sandro Santilli <strk at keybit.net>
 
-	* Add collapsed polygon case to ST_Simplify test (#1698)
+	* [r9529] regress/simplify.sql, regress/simplify_expected: Add
+	  collapsed polygon case to ST_Simplify test (#1698)
 
-2012-03-22 15:07  strk
+2012-03-22 15:07  Sandro Santilli <strk at keybit.net>
 
-	* Add a ptarray_simplify parameter to preserve min vertices (#1698)
+	* [r9528] liblwgeom/liblwgeom_internal.h, liblwgeom/lwline.c,
+	  liblwgeom/lwpoly.c, liblwgeom/ptarray.c, regress/simplify.sql:
+	  Add a ptarray_simplify parameter to preserve min vertices (#1698)
 	  
 	  A polygon ring collapsed to a segment is still better handled by
 	  mapnik than the same ring collapsed to a single point. This
 	  commit
 	  retains at least 3 vertices for polygons.
 
-2012-03-22 15:06  strk
+2012-03-22 15:06  Sandro Santilli <strk at keybit.net>
 
-	* Do not drop collapsed polygon shells (#1698)
+	* [r9527] liblwgeom/lwpoly.c: Do not drop collapsed polygon shells
+	  (#1698)
 
-2012-03-22 13:33  robe
+2012-03-22 13:33  Regina Obe <lr at pcorp.us>
 
-	* missing para tag
+	* [r9526] doc/using_postgis_dataman.xml: missing para tag
 
-2012-03-22 13:29  robe
+2012-03-22 13:29  Regina Obe <lr at pcorp.us>
 
-	* explain geometry_columns is now a view and that spatial tables
-	  can be created in 1 step.
+	* [r9525] doc/using_postgis_dataman.xml: explain geometry_columns
+	  is now a view and that spatial tables can be created in 1 step.
 
-2012-03-22 13:02  robe
+2012-03-22 13:02  Regina Obe <lr at pcorp.us>
 
-	* more expounding on typmod vs. constraint based geometry columns
+	* [r9524] doc/using_postgis_dataman.xml: more expounding on typmod
+	  vs. constraint based geometry columns
 
-2012-03-21 21:36  pramsey
+2012-03-21 21:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change @rm to rm for visibility
-
-2012-03-21 20:32  pramsey
-
-	* Make distclean should remove all the Makefile's generated by
-	  ./configure
+	* [r9523] doc/Makefile.in, doc/html/image_src/Makefile.in,
+	  extensions/postgis/Makefile.in,
+	  extensions/postgis_topology/Makefile.in, libpgcommon/Makefile.in,
+	  libpgcommon/cunit/Makefile.in, loader/Makefile.in,
+	  loader/cunit/Makefile.in, postgis/Makefile.in,
+	  raster/Makefile.in, raster/loader/Makefile.in,
+	  raster/rt_core/Makefile.in, raster/rt_pg/Makefile.in,
+	  raster/scripts/Makefile.in, raster/scripts/python/Makefile.in,
+	  raster/test/Makefile.in, raster/test/core/Makefile.in,
+	  raster/test/regress/Makefile.in, regress/Makefile.in,
+	  topology/Makefile.in: Change @rm to rm for visibility
+
+2012-03-21 20:32  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r9522] GNUmakefile.in, doc/Makefile.in,
+	  doc/html/image_src/Makefile.in, extensions/postgis/Makefile.in,
+	  extensions/postgis_topology/Makefile.in, liblwgeom/Makefile.in,
+	  libpgcommon/Makefile.in, libpgcommon/cunit/Makefile.in,
+	  loader/Makefile.in, loader/cunit/Makefile.in,
+	  postgis/Makefile.in, raster/Makefile.in,
+	  raster/loader/Makefile.in, raster/rt_core/Makefile.in,
+	  raster/scripts/Makefile.in, raster/scripts/python/Makefile.in,
+	  raster/test/Makefile.in, raster/test/core/Makefile.in,
+	  raster/test/regress/Makefile.in, regress/Makefile.in,
+	  topology/Makefile.in: Make distclean should remove all the
+	  Makefile's generated by ./configure
 
-2012-03-21 20:03  pramsey
+2012-03-21 20:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bump versions for beta4
+	* [r9519] ChangeLog, NEWS, README.postgis, Version.config,
+	  extensions/upgradeable_versions.mk: Bump versions for beta4
 
-2012-03-21 18:22  pramsey
+2012-03-21 18:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore some files
+	* [r9518] postgis: Ignore some files
 
-2012-03-19 20:40  pramsey
+2012-03-19 20:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* README.raster needs updating or removal (#1649)
+	* [r9517] README.postgis, README.raster: README.raster needs
+	  updating or removal (#1649)
 
-2012-03-19 12:07  strk
+2012-03-19 12:07  Sandro Santilli <strk at keybit.net>
 
-	* ST_SnapToGrid: retain type on empty return (#1695)
+	* [r9516] postgis/lwgeom_functions_analytic.c, regress/tickets.sql,
+	  regress/tickets_expected: ST_SnapToGrid: retain type on empty
+	  return (#1695)
 
-2012-03-16 19:13  strk
+2012-03-16 19:13  Sandro Santilli <strk at keybit.net>
 
-	* Fix typo puffered -> buffered
+	* [r9515] doc/reference_measure.xml: Fix typo puffered -> buffered
 
-2012-03-16 19:11  strk
+2012-03-16 19:11  Sandro Santilli <strk at keybit.net>
 
-	* Be quieter on polygon ring collapse (in ST_Simplify)
+	* [r9514] liblwgeom/lwpoly.c: Be quieter on polygon ring collapse
+	  (in ST_Simplify)
 
-2012-03-16 15:03  robe
+2012-03-16 15:03  Regina Obe <lr at pcorp.us>
 
-	* fix typo in example was adding band 1 twice
+	* [r9513] doc/html/images/st_mapalgebraexpr2_08.png,
+	  doc/reference_raster.xml: fix typo in example was adding band 1
+	  twice
 
-2012-03-16 12:58  robe
+2012-03-16 12:58  Regina Obe <lr at pcorp.us>
 
-	* surreal clipping
+	* [r9512] doc/html/images/st_clip04.png,
+	  doc/html/images/st_clip05.png, doc/reference_raster.xml: surreal
+	  clipping
 
-2012-03-16 12:47  robe
+2012-03-16 12:47  Regina Obe <lr at pcorp.us>
 
-	* slightly more efficient (and hmm my last timing was with 2
-	  buildings instead of 3)
+	* [r9511] doc/reference_raster.xml: slightly more efficient (and
+	  hmm my last timing was with 2 buildings instead of 3)
 
-2012-03-16 12:40  robe
+2012-03-16 12:40  Regina Obe <lr at pcorp.us>
 
-	* minor adjustment to example
+	* [r9510] doc/reference_raster.xml: minor adjustment to example
 
-2012-03-16 12:25  robe
+2012-03-16 12:25  Regina Obe <lr at pcorp.us>
 
-	* Provide summarizing summary stats example using intersection of
-	  geometry. Pretty fast.
+	* [r9509] doc/reference_raster.xml: Provide summarizing summary
+	  stats example using intersection of geometry. Pretty fast.
 
-2012-03-16 12:15  strk
+2012-03-16 12:15  Sandro Santilli <strk at keybit.net>
 
-	* Rename legacy_compatibility_layer.sql to legacy_minimal.sql
+	* [r9508] .gitignore, postgis/Makefile.in, postgis/legacy.sql.in.c,
+	  postgis/legacy_compatibility_layer.sql.in.c,
+	  postgis/legacy_minimal.sql.in.c: Rename
+	  legacy_compatibility_layer.sql to legacy_minimal.sql
 	  
 	  As per
 	  http://postgis.refractions.net/pipermail/postgis-devel/2012-March/019663.html
 
-2012-03-16 11:58  strk
+2012-03-16 11:58  Sandro Santilli <strk at keybit.net>
 
-	* Do not take PROJ4 errno value as a sign of error (#1580, #1690)
+	* [r9507] postgis/lwgeom_transform.c: Do not take PROJ4 errno value
+	  as a sign of error (#1580, #1690)
 	  
 	  Dejavu...
 
-2012-03-16 08:48  robe
+2012-03-16 08:48  Regina Obe <lr at pcorp.us>
 
-	* Add more descriptive notes detailing difference between files
+	* [r9506] postgis/legacy.sql.in.c,
+	  postgis/legacy_compatibility_layer.sql.in.c: Add more descriptive
+	  notes detailing difference between files
 
-2012-03-16 08:27  robe
+2012-03-16 08:27  Regina Obe <lr at pcorp.us>
 
-	* fix spelling typos
+	* [r9505] doc/introduction.xml: fix spelling typos
 
-2012-03-16 06:59  robe
+2012-03-16 06:59  Regina Obe <lr at pcorp.us>
 
-	* Put in a section for crowd sourcing campaigns
+	* [r9504] doc/introduction.xml: Put in a section for crowd sourcing
+	  campaigns
 
-2012-03-15 09:54  strk
+2012-03-15 09:54  Sandro Santilli <strk at keybit.net>
 
-	* Bail out if user specified json dir isn't correct (#1688)
+	* [r9503] configure.ac: Bail out if user specified json dir isn't
+	  correct (#1688)
 
-2012-03-14 21:45  robe
+2012-03-14 21:45  Regina Obe <lr at pcorp.us>
 
-	* put note about slowness of raster st_union and promise it will be
-	  better in later versions
+	* [r9502] doc/reference_raster.xml: put note about slowness of
+	  raster st_union and promise it will be better in later versions
 
-2012-03-14 21:35  robe
+2012-03-14 21:35  Regina Obe <lr at pcorp.us>
 
-	* change example to be more efficient (prior version was taking
-	  9-10 seconds this much improved one takes 3.5 seconds)
+	* [r9501] doc/reference_raster.xml: change example to be more
+	  efficient (prior version was taking 9-10 seconds this much
+	  improved one takes 3.5 seconds)
 
-2012-03-14 20:26  dustymugs
+2012-03-14 20:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated to have C API tests use libtool
+	* [r9500] raster/test/core/Makefile.in: Updated to have C API tests
+	  use libtool
 
-2012-03-14 19:05  dustymugs
+2012-03-14 19:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Use AC_SEARCH_LIBS instead of AC_CHECK_LIB for checking GDAL
-	  libraries
+	* [r9499] configure.ac: Use AC_SEARCH_LIBS instead of AC_CHECK_LIB
+	  for checking GDAL libraries
 
-2012-03-14 16:35  strk
+2012-03-14 16:35  Sandro Santilli <strk at keybit.net>
 
-	* Don't re-implement AC_PATH_PROG for gdal-config
+	* [r9498] configure.ac: Don't re-implement AC_PATH_PROG for
+	  gdal-config
 
-2012-03-14 16:02  pramsey
+2012-03-14 16:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Prepare for 2.0.0beta3 release
+	* [r9495] ChangeLog, NEWS, README.postgis, Version.config,
+	  extensions/upgradeable_versions.mk: Prepare for 2.0.0beta3
+	  release
 
-2012-03-14 15:50  strk
+2012-03-14 15:50  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of raster _scripts_ to postgis_svn_revision.h
+	* [r9494] raster/rt_pg/Makefile.in: Encode dependency of raster
+	  _scripts_ to postgis_svn_revision.h
 
-2012-03-14 15:46  strk
+2012-03-14 15:46  Sandro Santilli <strk at keybit.net>
 
-	* Encode postgis_svn_revision.h dependency for raster lib
+	* [r9493] raster/rt_pg/Makefile.in: Encode postgis_svn_revision.h
+	  dependency for raster lib
 
-2012-03-14 15:40  strk
+2012-03-14 15:40  Sandro Santilli <strk at keybit.net>
 
-	* Make sure to rebuild topology.sql on postgis_svn_revision.h
-	  change
+	* [r9492] topology/Makefile.in: Make sure to rebuild topology.sql
+	  on postgis_svn_revision.h change
 
-2012-03-14 15:32  strk
+2012-03-14 15:32  Sandro Santilli <strk at keybit.net>
 
-	* Add a TOPOLOGY and a RASTER label in postgis_full_version()
-	  output
+	* [r9491] postgis/postgis.sql.in.c: Add a TOPOLOGY and a RASTER
+	  label in postgis_full_version() output
 	  
 	  This is to know if they are available
 
-2012-03-14 13:13  strk
+2012-03-14 13:13  Sandro Santilli <strk at keybit.net>
 
-	* Simplify ST_AsLatLonText code and possily fix #1657
+	* [r9490] postgis/lwgeom_inout.c: Simplify ST_AsLatLonText code and
+	  possily fix #1657
 	  
 	  The possible bug was a call to pg_do_encoding_conversion w/out
 	  a defined string size argument.
 
-2012-03-14 12:15  strk
+2012-03-14 12:15  Sandro Santilli <strk at keybit.net>
 
-	* Use existing text2cstring and cstring2text wheel
+	* [r9489] postgis/lwgeom_inout.c: Use existing text2cstring and
+	  cstring2text wheel
 
-2012-03-13 18:06  dustymugs
+2012-03-13 18:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Explicitly set NULL character to snprintf outputs as Windows does
-	  not do so automatically. Ticket is #1682.
+	* [r9488] raster/loader/raster2pgsql.c: Explicitly set NULL
+	  character to snprintf outputs as Windows does not do so
+	  automatically. Ticket is #1682.
 
-2012-03-13 17:08  strk
+2012-03-13 17:08  Sandro Santilli <strk at keybit.net>
 
-	* Add simple tests to stringbuffer class (#1668)
+	* [r9487] liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_stringbuffer.c, liblwgeom/cunit/cu_tester.c:
+	  Add simple tests to stringbuffer class (#1668)
 	  
 	  Hopefully these fail on windows so it's easier to test.
 	  It may take a memory debugger to really see the failure.
 
-2012-03-13 17:08  strk
+2012-03-13 17:08  Sandro Santilli <strk at keybit.net>
 
-	* Rename misc testsuite to "misc"
+	* [r9486] liblwgeom/cunit/cu_misc.c: Rename misc testsuite to
+	  "misc"
 
-2012-03-13 16:23  pramsey
+2012-03-13 16:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Roll back changes for autodetecting C99 vsnprintf (#1688)
+	* [r9485] configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/snprintf.c, liblwgeom/stringbuffer.c,
+	  liblwgeom/vsprintf.c, libpgcommon/lwgeom_pg.c,
+	  macros/snprintf.m4, postgis_config.h.in, raster/rt_pg/rt_pg.c:
+	  Roll back changes for autodetecting C99 vsnprintf (#1688)
 
-2012-03-13 16:13  dustymugs
+2012-03-13 16:13  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed "hasnodata" column output of ST_BandMetaData as per
-	  #1681. If a band does NOT have a NODATA value, the "nodatavalue"
-	  column will be NULL.
+	* [r9484] doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_asraster.sql,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_bandmetadata.sql,
+	  raster/test/regress/rt_bandmetadata_expected,
+	  raster/test/regress/rt_clip.sql,
+	  raster/test/regress/rt_clip_expected,
+	  raster/test/regress/rt_intersection.sql,
+	  raster/test/regress/rt_intersection_expected,
+	  raster/test/regress/rt_mapalgebraexpr_2raster.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster_expected,
+	  raster/test/regress/rt_mapalgebrafct_2raster.sql,
+	  raster/test/regress/rt_mapalgebrafct_2raster_expected: Removed
+	  "hasnodata" column output of ST_BandMetaData as per #1681. If a
+	  band does NOT have a NODATA value, the "nodatavalue" column will
+	  be NULL.
 
-2012-03-13 09:18  strk
+2012-03-13 09:18  Sandro Santilli <strk at keybit.net>
 
-	* Add upgrade instructions
+	* [r9483] topology/README: Add upgrade instructions
 
-2012-03-13 09:17  strk
+2012-03-13 09:17  Sandro Santilli <strk at keybit.net>
 
-	* Drop SRID constraint issue (not an issue anymore with typmod)
+	* [r9482] topology/README: Drop SRID constraint issue (not an issue
+	  anymore with typmod)
 
-2012-03-13 09:17  strk
+2012-03-13 09:17  Sandro Santilli <strk at keybit.net>
 
-	* Add note about toTopoGeom
+	* [r9481] topology/README: Add note about toTopoGeom
 
-2012-03-13 08:33  strk
+2012-03-13 08:33  Sandro Santilli <strk at keybit.net>
 
-	* Set Version to match Version.config (HOWTO_RELEASE file mentions
-	  you need to edit it anyway)
+	* [r9480] README.postgis: Set Version to match Version.config
+	  (HOWTO_RELEASE file mentions you need to edit it anyway)
 
-2012-03-13 08:30  strk
+2012-03-13 08:30  Sandro Santilli <strk at keybit.net>
 
-	* Add note about topology/README
+	* [r9479] README.postgis: Add note about topology/README
 
-2012-03-13 08:18  strk
+2012-03-13 08:18  Sandro Santilli <strk at keybit.net>
 
-	* Update README.postgis (#1670)
+	* [r9478] README.postgis: Update README.postgis (#1670)
 	  
 	  - Use consistent formatting in reStructuredText; see
 	  formatted result with rst2pdf or rst2html, or if you don't
@@ -9236,458 +18679,561 @@
 	  
 	  Patch by Mike Toews
 
-2012-03-12 21:27  pramsey
+2012-03-12 21:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Complete alternate implementation of vsnprintf, vasprintf for
-	  non-C99 systems. (#1668)
+	* [r9477] configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/snprintf.c, liblwgeom/stringbuffer.c,
+	  liblwgeom/vsprintf.c, libpgcommon/lwgeom_pg.c,
+	  macros/snprintf.m4, postgis/compat.h, postgis_config.h.in,
+	  raster/rt_pg/rt_pg.c: Complete alternate implementation of
+	  vsnprintf, vasprintf for non-C99 systems. (#1668)
 
-2012-03-12 17:45  strk
+2012-03-12 17:45  Sandro Santilli <strk at keybit.net>
 
-	* Fix UTM zone reserved SRID interpretation (#1680)
+	* [r9476] libpgcommon/lwgeom_transform.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix UTM zone reserved SRID
+	  interpretation (#1680)
 
-2012-03-10 14:33  strk
+2012-03-10 14:33  Sandro Santilli <strk at keybit.net>
 
-	* Check docs as part of "make check"
+	* [r9475] GNUmakefile.in: Check docs as part of "make check"
 	  
 	  Adds "xmllint" to the requirements for running "make check"
 
-2012-03-10 14:28  strk
+2012-03-10 14:28  Sandro Santilli <strk at keybit.net>
 
-	* Introduce use of <simplelist>. I think we should use it more..
+	* [r9474] doc/release_notes.xml: Introduce use of <simplelist>. I
+	  think we should use it more..
 
-2012-03-10 14:28  strk
+2012-03-10 14:28  Sandro Santilli <strk at keybit.net>
 
-	* typo
+	* [r9473] doc/release_notes.xml: typo
 
-2012-03-10 14:27  strk
+2012-03-10 14:27  Sandro Santilli <strk at keybit.net>
 
-	* Drop commented out lines
+	* [r9472] GNUmakefile.in: Drop commented out lines
 
-2012-03-10 14:08  strk
+2012-03-10 14:08  Sandro Santilli <strk at keybit.net>
 
-	* Add credits to Salvatore
+	* [r9471] doc/release_notes.xml: Add credits to Salvatore
 
-2012-03-10 14:08  strk
+2012-03-10 14:08  Sandro Santilli <strk at keybit.net>
 
-	* No <para> allowed after <simplesect> in <sect1> (xmllint) -- add
-	  Vizzuality credit
+	* [r9470] doc/release_notes.xml: No <para> allowed after
+	  <simplesect> in <sect1> (xmllint) -- add Vizzuality credit
 
-2012-03-10 14:08  strk
+2012-03-10 14:08  Sandro Santilli <strk at keybit.net>
 
-	* <sect1info> goes before <title>
+	* [r9469] doc/extras_tigergeocoder.xml: <sect1info> goes before
+	  <title>
 
-2012-03-10 14:08  strk
+2012-03-10 14:08  Sandro Santilli <strk at keybit.net>
 
-	* <note> cannot be direct child of <abstract> (xmllint)
+	* [r9468] doc/extras_tigergeocoder.xml: <note> cannot be direct
+	  child of <abstract> (xmllint)
 
-2012-03-10 14:07  strk
+2012-03-10 14:07  Sandro Santilli <strk at keybit.net>
 
-	* choice is a <paramdef> attribute, not <type>'s
+	* [r9467] doc/extras_tigergeocoder.xml: choice is a <paramdef>
+	  attribute, not <type>'s
 
-2012-03-10 14:07  strk
+2012-03-10 14:07  Sandro Santilli <strk at keybit.net>
 
-	* <abstract> can't contain <note> (xmllint)
+	* [r9466] doc/extras_tigergeocoder.xml: <abstract> can't contain
+	  <note> (xmllint)
 
-2012-03-10 13:44  strk
+2012-03-10 13:44  Sandro Santilli <strk at keybit.net>
 
-	* Use empty params as placeholders, add missing refsection title
-	  (xmllint)
+	* [r9465] doc/extras_topology.xml: Use empty params as
+	  placeholders, add missing refsection title (xmllint)
 
-2012-03-10 13:44  strk
+2012-03-10 13:44  Sandro Santilli <strk at keybit.net>
 
-	* More <para> wrapping (xmllint)
+	* [r9464] doc/reference_raster.xml: More <para> wrapping (xmllint)
 
-2012-03-10 13:44  strk
+2012-03-10 13:44  Sandro Santilli <strk at keybit.net>
 
-	* wrap more <informalfigure> content in <para> (xmllint)
+	* [r9463] doc/reference_raster.xml: wrap more <informalfigure>
+	  content in <para> (xmllint)
 
-2012-03-10 13:43  strk
+2012-03-10 13:43  Sandro Santilli <strk at keybit.net>
 
-	* choice is a <paramdef> attribute, not <type>'s
+	* [r9462] doc/reference_raster.xml: choice is a <paramdef>
+	  attribute, not <type>'s
 
-2012-03-10 13:43  strk
+2012-03-10 13:43  Sandro Santilli <strk at keybit.net>
 
-	* wrap <informalfigure> content in <para> (xmllint)
+	* [r9461] doc/reference_raster.xml: wrap <informalfigure> content
+	  in <para> (xmllint)
 
-2012-03-10 13:43  strk
+2012-03-10 13:43  Sandro Santilli <strk at keybit.net>
 
-	* wrap <listitem> content in <para> (xmllint)
+	* [r9460] doc/reference_raster.xml: wrap <listitem> content in
+	  <para> (xmllint)
 
-2012-03-10 13:43  strk
+2012-03-10 13:43  Sandro Santilli <strk at keybit.net>
 
-	* choice belongs to <paramdef>, not <parameter> (xmllint)
+	* [r9459] doc/reference_raster.xml: choice belongs to <paramdef>,
+	  not <parameter> (xmllint)
 
-2012-03-10 13:43  strk
+2012-03-10 13:43  Sandro Santilli <strk at keybit.net>
 
-	* <sect1info> goes before <title>
+	* [r9458] doc/reference_raster.xml: <sect1info> goes before <title>
 
-2012-03-10 13:43  strk
+2012-03-10 13:43  Sandro Santilli <strk at keybit.net>
 
-	* <informalfigure> goes in <para> (xmllint)
+	* [r9457] doc/reference_processing.xml: <informalfigure> goes in
+	  <para> (xmllint)
 
-2012-03-10 13:42  strk
+2012-03-10 13:42  Sandro Santilli <strk at keybit.net>
 
-	* Use <para> as appropriate (xmllint)
+	* [r9456] doc/reference_operator.xml: Use <para> as appropriate
+	  (xmllint)
 
-2012-03-10 13:42  strk
+2012-03-10 13:42  Sandro Santilli <strk at keybit.net>
 
-	* <informalfigure> must be in <para> (xmllint)
+	* [r9455] doc/reference_editor.xml: <informalfigure> must be in
+	  <para> (xmllint)
 
-2012-03-10 13:42  strk
+2012-03-10 13:42  Sandro Santilli <strk at keybit.net>
 
-	* Put semicolon where it belongs (xmllint)
+	* [r9454] doc/reference_constructor.xml: Put semicolon where it
+	  belongs (xmllint)
 
-2012-03-10 13:42  strk
+2012-03-10 13:42  Sandro Santilli <strk at keybit.net>
 
-	* Use <para> elements according to the DTD (xmllint)
+	* [r9453] doc/using_raster_dataman.xml: Use <para> elements
+	  according to the DTD (xmllint)
 
-2012-03-10 13:42  strk
+2012-03-10 13:42  Sandro Santilli <strk at keybit.net>
 
-	* <strong> to <emphasis> (xmllint)
+	* [r9452] doc/faq.xml: <strong> to <emphasis> (xmllint)
 
-2012-03-10 13:00  strk
+2012-03-10 13:00  Sandro Santilli <strk at keybit.net>
 
-	* <filename> is not a valid child of <listitem>, <para> is
-	  (xmllint)
+	* [r9451] doc/installation.xml: <filename> is not a valid child of
+	  <listitem>, <para> is (xmllint)
 
-2012-03-10 12:51  strk
+2012-03-10 12:51  Sandro Santilli <strk at keybit.net>
 
-	* More linked -> linkend typos
+	* [r9450] doc/xsl/postgis_aggs_mm.xml.xsl: More linked -> linkend
+	  typos
 
-2012-03-10 12:10  strk
+2012-03-10 12:10  Sandro Santilli <strk at keybit.net>
 
-	* Fix xref (thanks make check)
+	* [r9449] doc/xsl/postgis_aggs_mm.xml.xsl: Fix xref (thanks make
+	  check)
 
-2012-03-10 12:07  strk
+2012-03-10 12:07  Sandro Santilli <strk at keybit.net>
 
-	* linked -> linkend (thanks make check)
+	* [r9448] doc/reference_raster.xml, doc/release_notes.xml: linked
+	  -> linkend (thanks make check)
 
-2012-03-10 11:38  strk
+2012-03-10 11:38  Sandro Santilli <strk at keybit.net>
 
-	* Add credit to Avencia (#1671)
+	* [r9447] doc/introduction.xml: Add credit to Avencia (#1671)
 
-2012-03-10 11:31  strk
+2012-03-10 11:31  Sandro Santilli <strk at keybit.net>
 
-	* More credits
+	* [r9446] doc/introduction.xml: More credits
 
-2012-03-10 11:26  strk
+2012-03-10 11:26  Sandro Santilli <strk at keybit.net>
 
-	* Add postgis topology signers to credits section (#1601)
+	* [r9445] doc/introduction.xml: Add postgis topology signers to
+	  credits section (#1601)
 	  
 	  I also formatted the names to be one-per-line. Output won't care
 	  but it's easier to sort alphabetically ...
 
-2012-03-10 10:34  strk
+2012-03-10 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Substitute CREDITS content with pointers to manual (#1601)
+	* [r9444] CREDITS: Substitute CREDITS content with pointers to
+	  manual (#1601)
 
-2012-03-10 10:27  strk
+2012-03-10 10:27  Sandro Santilli <strk at keybit.net>
 
-	* Be quiet when postgis_svn_revision.h isn't needed (#1666)
+	* [r9443] make_dist.sh: Be quiet when postgis_svn_revision.h isn't
+	  needed (#1666)
 
-2012-03-10 00:40  dustymugs
+2012-03-10 00:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Cleanup for testing GDAL include files
+	* [r9442] configure.ac: Cleanup for testing GDAL include files
 
-2012-03-10 00:30  dustymugs
+2012-03-10 00:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* This should do it. Debugging Hudson is fun... like entertaining a
-	  grumpy old man.
+	* [r9441] configure.ac: This should do it. Debugging Hudson is
+	  fun... like entertaining a grumpy old man.
 
-2012-03-10 00:24  dustymugs
+2012-03-10 00:24  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed multiple AC_ARG_WITH calls for raster
+	* [r9440] configure.ac: Removed multiple AC_ARG_WITH calls for
+	  raster
 
-2012-03-10 00:19  dustymugs
+2012-03-10 00:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Another attempt to fix hudson...
+	* [r9439] configure.ac: Another attempt to fix hudson...
 
-2012-03-10 00:05  dustymugs
+2012-03-10 00:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Comment cleanup as hudson isn't happy.
+	* [r9438] configure.ac: Comment cleanup as hudson isn't happy.
 
-2012-03-09 23:57  dustymugs
+2012-03-09 23:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed GDAL configuration as hudson wasn't getting
-	  GDALFPolygonize. This may be the cause for Windows not detecting
-	  GDALFPolygonize either.
+	* [r9437] configure.ac: Fixed GDAL configuration as hudson wasn't
+	  getting GDALFPolygonize. This may be the cause for Windows not
+	  detecting GDALFPolygonize either.
 
-2012-03-09 19:00  dustymugs
+2012-03-09 19:00  Bborie Park <bkpark at ucdavis.edu>
 
-	* Initialize variables that may cause compile-time warnings in
-	  rt_api.c. Added additional NLS items to raster2pgsql.
+	* [r9436] raster/loader/Makefile.in, raster/loader/raster2pgsql.h,
+	  raster/rt_core/rt_api.c: Initialize variables that may cause
+	  compile-time warnings in rt_api.c. Added additional NLS items to
+	  raster2pgsql.
 
-2012-03-09 17:46  pramsey
+2012-03-09 17:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Work around difference between behavior of MS snprintf and C99
-	  snprintf. (#1668)
+	* [r9435] liblwgeom/stringbuffer.c: Work around difference between
+	  behavior of MS snprintf and C99 snprintf. (#1668)
 
-2012-03-09 14:59  robe
+2012-03-09 14:59  Regina Obe <lr at pcorp.us>
 
-	* minor correction in title of example
+	* [r9434] doc/reference_raster.xml: minor correction in title of
+	  example
 
-2012-03-09 14:20  robe
+2012-03-09 14:20  Regina Obe <lr at pcorp.us>
 
-	* Fix mapalgebra2 syntax
+	* [r9433] doc/html/images/st_mapalgebraexpr2_08.png,
+	  doc/reference_raster.xml: Fix mapalgebra2 syntax
 
-2012-03-08 10:58  strk
+2012-03-08 10:58  Sandro Santilli <strk at keybit.net>
 
-	* Ignore all html files under doc/html/ (also chunked)
+	* [r9432] .gitignore: Ignore all html files under doc/html/ (also
+	  chunked)
 
-2012-03-08 10:58  strk
+2012-03-08 10:58  Sandro Santilli <strk at keybit.net>
 
-	* Give introduction chapter an id.
+	* [r9431] doc/introduction.xml: Give introduction chapter an id.
 	  
 	  This should give it a nice URL online so we can point to credits
 	  from the CREDITS file (#1601)
 
-2012-03-08 10:36  strk
+2012-03-08 10:36  Sandro Santilli <strk at keybit.net>
 
-	* Remove .svnignore files (#1665)
+	* [r9430] make_dist.sh: Remove .svnignore files (#1665)
 
-2012-03-08 10:36  strk
+2012-03-08 10:36  Sandro Santilli <strk at keybit.net>
 
-	* Drop .cvsignore files
+	* [r9429] doc/html/.cvsignore, extras/ogc_test_suite/.cvsignore,
+	  extras/wkb_reader/.cvsignore, java/jdbc/.cvsignore,
+	  loader/.cvsignore, postgis/.cvsignore, topology/.cvsignore,
+	  topology/ER/.cvsignore, topology/test/.cvsignore: Drop .cvsignore
+	  files
 
-2012-03-07 20:51  pramsey
+2012-03-07 20:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update trunk versions for next cycle
+	* [r9427] Version.config, extensions/upgradeable_versions.mk:
+	  Update trunk versions for next cycle
 
-2012-03-07 20:50  pramsey
+2012-03-07 20:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update for beta2 release
+	* [r9425] ChangeLog, NEWS, README.postgis: Update for beta2 release
 
-2012-03-07 20:47  pramsey
+2012-03-07 20:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix need to hack regress source path
+	* [r9424] configure.ac, regress/Makefile.in: Fix need to hack
+	  regress source path
 
-2012-03-07 20:38  pramsey
+2012-03-07 20:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove reliance on `pwd` for raster build and test.
+	* [r9423] configure.ac, raster/loader/Makefile.in,
+	  raster/rt_core/Makefile.in, raster/rt_pg/Makefile.in,
+	  raster/test/core/Makefile.in, raster/test/regress/Makefile.in,
+	  raster/test/regress/testgdalraster,
+	  raster/test/regress/testgdalraster.in: Remove reliance on `pwd`
+	  for raster build and test.
 
-2012-03-07 19:31  pramsey
+2012-03-07 19:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Replace " with ' in mingw pwd call
+	* [r9422] configure.ac: Replace " with ' in mingw pwd call
 
-2012-03-07 19:27  pramsey
+2012-03-07 19:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* MinGW configure for regression dir
+	* [r9421] configure.ac: MinGW configure for regression dir
 
-2012-03-07 17:40  pramsey
+2012-03-07 17:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Summary output contains a spurious "+" sign (#1663)
+	* [r9420] liblwgeom/lwgeom_debug.c: ST_Summary output contains a
+	  spurious "+" sign (#1663)
 
-2012-03-07 11:39  strk
+2012-03-07 11:39  Sandro Santilli <strk at keybit.net>
 
-	* Actually run GeoJSON input tests when libjson is available
+	* [r9419] configure.ac, regress/Makefile.in: Actually run GeoJSON
+	  input tests when libjson is available
 
-2012-03-07 11:18  strk
+2012-03-07 11:18  Sandro Santilli <strk at keybit.net>
 
-	* Report libjson availability from postgis_full_version (#1660)
+	* [r9418] postgis/lwgeom_in_geojson.c, postgis/postgis.sql.in.c:
+	  Report libjson availability from postgis_full_version (#1660)
 	  
 	  This commit adds a postgis_libjson_version() although the library
 	  doesn't give any version information. We just return NULL if not
 	  using the library and "UNKNOWN" otherwise.
 
-2012-03-07 10:55  strk
+2012-03-07 10:55  Sandro Santilli <strk at keybit.net>
 
-	* Add note about installing json-c library on apt-based systems
+	* [r9417] README.postgis: Add note about installing json-c library
+	  on apt-based systems
 
-2012-03-07 09:16  strk
+2012-03-07 09:16  Sandro Santilli <strk at keybit.net>
 
-	* Update REQUIREMENTS section, add JSON-C (#1660)
+	* [r9416] README.postgis: Update REQUIREMENTS section, add JSON-C
+	  (#1660)
 
-2012-03-07 08:17  strk
+2012-03-07 08:17  Sandro Santilli <strk at keybit.net>
 
-	* I didn't realize we had ST_AsLatLonText already :)
+	* [r9415] TODO: I didn't realize we had ST_AsLatLonText already :)
 
-2012-03-07 05:31  pramsey
+2012-03-07 05:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Crash in ST_Project on NULL input (#1658)
+	* [r9414] postgis/geography_measurement.c: Crash in ST_Project on
+	  NULL input (#1658)
 
-2012-03-07 04:28  dustymugs
+2012-03-07 04:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Slightly more verbose error message for when
-	  rt_raster_gdal_rasterize() is unable to have an OSR object
-	  project a provided srs text.
+	* [r9413] raster/rt_core/rt_api.c: Slightly more verbose error
+	  message for when rt_raster_gdal_rasterize() is unable to have an
+	  OSR object project a provided srs text.
 
-2012-03-06 21:16  strk
+2012-03-06 21:16  Sandro Santilli <strk at keybit.net>
 
-	* Update TODO list dropping done items
+	* [r9412] TODO: Update TODO list dropping done items
 
-2012-03-06 18:55  pramsey
+2012-03-06 18:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Work around default rule for lexer generation. (#1644)
+	* [r9411] liblwgeom/Makefile.in: Work around default rule for lexer
+	  generation. (#1644)
 
-2012-03-06 16:19  pramsey
+2012-03-06 16:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* I'm not sure this "fix" was actually a fix so I'm removing it.
+	* [r9410] loader/Makefile.in: I'm not sure this "fix" was actually
+	  a fix so I'm removing it.
 
-2012-03-06 16:16  strk
+2012-03-06 16:16  Sandro Santilli <strk at keybit.net>
 
-	* Snap new lines over existing nodes (#1654)
+	* [r9409] NEWS, topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Snap new
+	  lines over existing nodes (#1654)
 	  
 	  Also add Salvatore to the list of testing heroes :)
 
-2012-03-06 13:44  strk
+2012-03-06 13:44  Sandro Santilli <strk at keybit.net>
 
-	* Don't let a single collapse hide _all_ edges (#1650)
+	* [r9408] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Don't let a
+	  single collapse hide _all_ edges (#1650)
 
-2012-03-06 13:21  strk
+2012-03-06 13:21  Sandro Santilli <strk at keybit.net>
 
-	* Skip collapsed edges after snapping (#1650)
+	* [r9407] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Skip
+	  collapsed edges after snapping (#1650)
 
-2012-03-06 13:20  strk
+2012-03-06 13:20  Sandro Santilli <strk at keybit.net>
 
-	* Uncomment new tests for #1641
+	* [r9406] topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Uncomment
+	  new tests for #1641
 
-2012-03-06 09:45  strk
+2012-03-06 09:45  Sandro Santilli <strk at keybit.net>
 
-	* Have "make install" only install what "make" built (#1652)
+	* [r9405] doc/Makefile.in, doc/README: Have "make install" only
+	  install what "make" built (#1652)
 	  
 	  Also updates the README to be in sync with Makefile.in
 
-2012-03-06 09:05  strk
+2012-03-06 09:05  Sandro Santilli <strk at keybit.net>
 
-	* Fix toTopoGeom to actualy _use_ to given tolerance (#1647)
+	* [r9404] topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected: Fix toTopoGeom to
+	  actualy _use_ to given tolerance (#1647)
 
-2012-03-05 23:09  pramsey
+2012-03-05 23:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename LOADER_OBJS to the more direct SHPLIB_OBJS
+	* [r9403] loader/Makefile.in: Rename LOADER_OBJS to the more direct
+	  SHPLIB_OBJS
 
-2012-03-05 22:54  pramsey
+2012-03-05 22:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Defines are picked up from ../../postgis_config.h via
-	  ../liblwgeom_internal.h
+	* [r9402] liblwgeom/cunit/Makefile.in: Defines are picked up from
+	  ../../postgis_config.h via ../liblwgeom_internal.h
 
-2012-03-05 22:51  pramsey
+2012-03-05 22:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add static link directive to libtool (#1644) allows build on
-	  Debian Wheezy
+	* [r9401] loader/Makefile.in: Add static link directive to libtool
+	  (#1644) allows build on Debian Wheezy
 
-2012-03-05 16:45  pramsey
+2012-03-05 16:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update kneufeld contact info
+	* [r9400] authors.svn: Update kneufeld contact info
 
-2012-03-05 12:24  strk
+2012-03-05 12:24  Sandro Santilli <strk at keybit.net>
 
-	* Add GetTopologySRID (#1182)
+	* [r9399] doc/extras_topology.xml, topology/topology.sql.in.c: Add
+	  GetTopologySRID (#1182)
 
-2012-03-05 12:14  strk
+2012-03-05 12:14  Sandro Santilli <strk at keybit.net>
 
-	* Optimize ST_AddIsoNode (#983)
+	* [r9398] topology/sql/sqlmm.sql.in.c: Optimize ST_AddIsoNode
+	  (#983)
 
-2012-03-05 11:33  strk
+2012-03-05 11:33  Sandro Santilli <strk at keybit.net>
 
-	* Move topology reference entries from "processing" to
-	  "constructors"
+	* [r9397] doc/extras_topology.xml: Move topology reference entries
+	  from "processing" to "constructors"
 
-2012-03-05 11:05  strk
+2012-03-05 11:05  Sandro Santilli <strk at keybit.net>
 
-	* _ST_MinTolerance isn't IMMUTABLE, due to db lookup...
+	* [r9396] topology/sql/populate.sql.in.c: _ST_MinTolerance isn't
+	  IMMUTABLE, due to db lookup...
 
-2012-03-05 10:49  strk
+2012-03-05 10:49  Sandro Santilli <strk at keybit.net>
 
-	* Handle 0 tolerance by using topology.precision or min float one
+	* [r9395] topology/sql/populate.sql.in.c,
+	  topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Handle 0
+	  tolerance by using topology.precision or min float one
 	  
 	  This handling fixes the #1641 case w/out passing an explicit
 	  tolerance and makes a step toward #785.
 
-2012-03-05 08:28  strk
+2012-03-05 08:28  Sandro Santilli <strk at keybit.net>
 
-	* Fix typos (FUNCION), drop duplicate entries
+	* [r9394] utils/postgis_restore.pl.in: Fix typos (FUNCION), drop
+	  duplicate entries
 
-2012-03-04 22:35  robe
+2012-03-04 22:35  Regina Obe <lr at pcorp.us>
 
-	* put in libiconv path specification if it needs to be done. For
-	  some reason my mingw64 can't find it unless its explicitly set.
+	* [r9393] doc/installation.xml: put in libiconv path specification
+	  if it needs to be done. For some reason my mingw64 can't find it
+	  unless its explicitly set.
 
-2012-03-03 22:59  robe
+2012-03-03 22:59  Regina Obe <lr at pcorp.us>
 
-	* Link postgis raster contributors to raster funding page.
+	* [r9392] doc/release_notes.xml: Link postgis raster contributors
+	  to raster funding page.
 
-2012-03-03 22:56  robe
+2012-03-03 22:56  Regina Obe <lr at pcorp.us>
 
-	* add in missing credits and link to Paul's credit description blog
-	  pages.
+	* [r9391] doc/introduction.xml, doc/release_notes.xml: add in
+	  missing credits and link to Paul's credit description blog pages.
 
-2012-03-02 23:35  pramsey
+2012-03-02 23:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add an SRID to box3d to allow lossless casts.
+	* [r9390] liblwgeom/g_box.c, liblwgeom/liblwgeom.h.in,
+	  postgis/lwgeom_box3d.c, postgis/postgis.sql.in.c: Add an SRID to
+	  box3d to allow lossless casts.
 
-2012-03-02 20:53  pracine
+2012-03-02 20:53  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Finish fix for ticket #1635. Added operator function to skip when
-	  restoring.
+	* [r9389] utils/postgis_restore.pl.in: Finish fix for ticket #1635.
+	  Added operator function to skip when restoring.
 
-2012-03-02 20:17  pracine
+2012-03-02 20:17  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix for ticket #1589. Removed misleading example.
+	* [r9388] doc/reference_raster.xml: Fix for ticket #1589. Removed
+	  misleading example.
 
-2012-03-02 20:14  pracine
+2012-03-02 20:14  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix for ticket #1589. Removed misleading example.
+	* [r9387] doc/reference_raster.xml: Fix for ticket #1589. Removed
+	  misleading example.
 
-2012-03-02 19:00  dustymugs
+2012-03-02 19:00  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed problem with passing PROJ.4 text to GDAL which may result
-	  in SRS WKT that is NOT what is desired. Now preferentially use
-	  EPSG:SRID if available. Ticket is #1618.
+	* [r9386] raster/rt_pg/rt_pg.c: Fixed problem with passing PROJ.4
+	  text to GDAL which may result in SRS WKT that is NOT what is
+	  desired. Now preferentially use EPSG:SRID if available. Ticket is
+	  #1618.
 
-2012-03-02 15:02  robe
+2012-03-02 15:02  Regina Obe <lr at pcorp.us>
 
-	* #1630 and drop type raster_columns. Good grief how many hidden
+	* [r9385] extensions/postgis/sql_bits/remove_from_extension.sql.in:
+	  #1630 and drop type raster_columns. Good grief how many hidden
 	  objects are there.
 
-2012-03-02 14:36  robe
+2012-03-02 14:36  Regina Obe <lr at pcorp.us>
 
-	* #1630 Add missing permutations of st_clip that exist in older
-	  versions so trimraster can be renamed to crop
+	* [r9384] raster/rt_pg/rtpostgis_drop.sql.in.c: #1630 Add missing
+	  permutations of st_clip that exist in older versions so
+	  trimraster can be renamed to crop
 
-2012-03-02 14:11  robe
+2012-03-02 14:11  Regina Obe <lr at pcorp.us>
 
-	* oops type in last commit.
+	* [r9383] extensions/postgis/sql_bits/remove_from_extension.sql.in:
+	  oops type in last commit.
 
-2012-03-02 14:05  robe
+2012-03-02 14:05  Regina Obe <lr at pcorp.us>
 
-	* #1630 -- this has got to be a bug in the PostgreSQL extensions
+	* [r9382] extensions/postgis/sql_bits/remove_from_extension.sql.in:
+	  #1630 -- this has got to be a bug in the PostgreSQL extensions
 	  model that I have to drop dependent types of views and types from
 	  extension when drop view and type. Will confirm later.
 
-2012-03-02 13:15  robe
+2012-03-02 13:15  Regina Obe <lr at pcorp.us>
 
-	* Add section about soft upgrade with extensions.
+	* [r9381] doc/installation.xml: Add section about soft upgrade with
+	  extensions.
 
-2012-03-02 01:15  dustymugs
+2012-03-02 01:15  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add handling of when clamped pixel values is equal to the band's
-	  clamped NODATA value. Ticket is #1139.
+	* [r9380] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Add handling of
+	  when clamped pixel values is equal to the band's clamped NODATA
+	  value. Ticket is #1139.
 
-2012-03-01 22:25  dzwarg
+2012-03-01 22:25  David Zwarg <dzwarg at azavea.com>
 
-	* Added regression test for error case reported in #1638.
+	* [r9379] raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_expected: Added regression
+	  test for error case reported in #1638.
 
-2012-03-01 22:17  dustymugs
+2012-03-01 22:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored how skewed rasters are computed as the extents were
-	  not correct. Rewrote parts of rt_raster_gdal_warp and
-	  rt_raster_gdal_rasterize. Related ticket is #1615.
+	* [r9378] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_clip_expected,
+	  raster/test/regress/rt_intersects_expected,
+	  raster/test/regress/rt_resample_expected: Refactored how skewed
+	  rasters are computed as the extents were not correct. Rewrote
+	  parts of rt_raster_gdal_warp and rt_raster_gdal_rasterize.
+	  Related ticket is #1615.
 
-2012-03-01 21:05  pracine
+2012-03-01 21:05  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix for #1589 and #1633.
+	* [r9377] doc/reference_raster.xml: Fix for #1589 and #1633.
 
-2012-03-01 20:32  strk
+2012-03-01 20:32  Sandro Santilli <strk at keybit.net>
 
-	* postgis_drop_before.sql.in.c => postgis_drop_before.sql
+	* [r9376] extensions/postgis/Makefile.in:
+	  postgis_drop_before.sql.in.c => postgis_drop_before.sql
 
-2012-03-01 19:46  pramsey
+2012-03-01 19:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make --prefix note a warning rather than a failure. (#1628)
+	* [r9375] configure.ac: Make --prefix note a warning rather than a
+	  failure. (#1628)
 
-2012-03-01 19:09  strk
+2012-03-01 19:09  Sandro Santilli <strk at keybit.net>
 
-	* Add an internal topology._st_mintolerance funtion
+	* [r9374] topology/sql/populate.sql.in.c: Add an internal
+	  topology._st_mintolerance funtion
 	  
 	  This function computes the minimum tolerance for a given
 	  geometry.
@@ -9698,198 +19244,243 @@
 	  inconsistency (#1625) but could probably be used everytime 0 is
 	  passed as a tolerance, possibly fixing #1641 as well.
 
-2012-03-01 16:47  dustymugs
+2012-03-01 16:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Update regression tests for 1-raster ST_MapAlgebraExpr due to
-	  commit r9371
+	* [r9373] raster/test/regress/rt_mapalgebraexpr.sql: Update
+	  regression tests for 1-raster ST_MapAlgebraExpr due to commit
+	  r9371
 
-2012-03-01 16:47  pracine
+2012-03-01 16:47  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix for ticket #1635. Added explicit ~ and && operators on raster
-	  and geometry.
+	* [r9372] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_contain.sql,
+	  raster/test/regress/rt_contain_expected,
+	  raster/test/regress/rt_overlap.sql,
+	  raster/test/regress/rt_overlap_expected: Fix for ticket #1635.
+	  Added explicit ~ and && operators on raster and geometry.
 
-2012-03-01 15:59  dustymugs
+2012-03-01 15:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Forced casting of output from 1-raster ST_MapAlgebraExpr. Ticket
-	  is #1639.
+	* [r9371] raster/rt_pg/rt_pg.c: Forced casting of output from
+	  1-raster ST_MapAlgebraExpr. Ticket is #1639.
 
-2012-03-01 15:51  strk
+2012-03-01 15:51  Sandro Santilli <strk at keybit.net>
 
-	* MathML DTDs are also needed for the HTML
+	* [r9370] doc/README: MathML DTDs are also needed for the HTML
 
-2012-03-01 15:51  strk
+2012-03-01 15:51  Sandro Santilli <strk at keybit.net>
 
-	* added MathML 3 DTD to requirements in doc
+	* [r9369] doc/README: added MathML 3 DTD to requirements in doc
 
-2012-03-01 15:14  strk
+2012-03-01 15:14  Sandro Santilli <strk at keybit.net>
 
-	* Add a test for #1641 using a tolerance (1e-16 is good enough)
+	* [r9368] topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Add a test
+	  for #1641 using a tolerance (1e-16 is good enough)
 
-2012-03-01 15:07  strk
+2012-03-01 15:07  Sandro Santilli <strk at keybit.net>
 
-	* Add test for #1641 (disabled as it would fail)
+	* [r9367] topology/test/regress/topogeo_addlinestring.sql: Add test
+	  for #1641 (disabled as it would fail)
 
-2012-03-01 15:07  strk
+2012-03-01 15:07  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup the face table as well (you just can't drop the universe)
+	* [r9366] topology/test/regress/topogeo_addlinestring.sql: Cleanup
+	  the face table as well (you just can't drop the universe)
 
-2012-03-01 12:50  strk
+2012-03-01 12:50  Sandro Santilli <strk at keybit.net>
 
-	* Add more items in the skip list (#1640)
+	* [r9365] utils/postgis_restore.pl.in: Add more items in the skip
+	  list (#1640)
 
-2012-03-01 12:25  strk
+2012-03-01 12:25  Sandro Santilli <strk at keybit.net>
 
-	* Add tests for ptarray_insert_point (see #1640)
+	* [r9364] liblwgeom/cunit/cu_ptarray.c: Add tests for
+	  ptarray_insert_point (see #1640)
 
-2012-03-01 12:25  strk
+2012-03-01 12:25  Sandro Santilli <strk at keybit.net>
 
-	* Check args passed to ptarray_set_point4d
+	* [r9363] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_api.c,
+	  liblwgeom/ptarray.c: Check args passed to ptarray_set_point4d
 
-2012-03-01 11:58  strk
+2012-03-01 11:58  Sandro Santilli <strk at keybit.net>
 
-	* Drop reference to postgis_uses_stats (#1632)
+	* [r9362] doc/reference_management.xml: Drop reference to
+	  postgis_uses_stats (#1632)
 
-2012-03-01 09:16  strk
+2012-03-01 09:16  Sandro Santilli <strk at keybit.net>
 
-	* Properly exit the loop parsing spatial_ref_sys population (#1640)
+	* [r9361] utils/postgis_restore.pl.in: Properly exit the loop
+	  parsing spatial_ref_sys population (#1640)
 
-2012-03-01 08:54  strk
+2012-03-01 08:54  Sandro Santilli <strk at keybit.net>
 
-	* Drop postgis_uses_stats (#1632)
+	* [r9360] postgis/postgis.sql.in.c, postgis/postgis_drop_after.sql:
+	  Drop postgis_uses_stats (#1632)
 
-2012-03-01 08:26  strk
+2012-03-01 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Rename drop files to be hopefully clearer, add copyright headers
+	* [r9359] postgis/Makefile.in, postgis/postgis_drop.sql.in.c,
+	  postgis/postgis_drop_after.sql, postgis/postgis_drop_before.sql,
+	  postgis/postgis_drop_before.sql.in.c: Rename drop files to be
+	  hopefully clearer, add copyright headers
 
-2012-03-01 08:26  strk
+2012-03-01 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Stop including drop calls from main postgis.sql file
+	* [r9358] postgis/Makefile.in, postgis/postgis.sql.in.c: Stop
+	  including drop calls from main postgis.sql file
 	  
 	  Upgrade file is still generated with the drop file included
 
-2012-02-29 18:58  pramsey
+2012-02-29 18:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* make parse location error test a little more lenient
+	* [r9357] liblwgeom/cunit/cu_in_wkt.c: make parse location error
+	  test a little more lenient
 
-2012-02-29 18:19  pramsey
+2012-02-29 18:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update for post-Beta1
+	* [r9354] Version.config, extensions/upgradeable_versions.mk:
+	  Update for post-Beta1
 
-2012-02-29 18:18  pramsey
+2012-02-29 18:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update for beta1
+	* [r9353] ChangeLog, NEWS, README.postgis: Update for beta1
 
-2012-02-29 15:59  strk
+2012-02-29 15:59  Sandro Santilli <strk at keybit.net>
 
-	* Check first point after snapping an edge to a new point (#1631)
+	* [r9352] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Check first
+	  point after snapping an edge to a new point (#1631)
 
-2012-02-29 14:20  strk
+2012-02-29 14:20  Sandro Santilli <strk at keybit.net>
 
-	* Get the deprecated function right (fixes previous commit)
+	* [r9351] raster/rt_pg/rtpostgis_drop.sql.in.c: Get the deprecated
+	  function right (fixes previous commit)
 
-2012-02-29 14:14  strk
+2012-02-29 14:14  Sandro Santilli <strk at keybit.net>
 
-	* Drop removed st_clip function (#1630)
+	* [r9350] raster/rt_pg/rtpostgis_drop.sql.in.c: Drop removed
+	  st_clip function (#1630)
 
-2012-02-29 13:52  strk
+2012-02-29 13:52  Sandro Santilli <strk at keybit.net>
 
-	* Do not install intermediary files (#1621)
+	* [r9349] raster/rt_pg/Makefile.in: Do not install intermediary
+	  files (#1621)
 
-2012-02-29 13:35  strk
+2012-02-29 13:35  Sandro Santilli <strk at keybit.net>
 
-	* Don't override postgis_svn_revision.h with a fake revision
-	  (#1634)
+	* [r9348] utils/svn_repo_revision.pl: Don't override
+	  postgis_svn_revision.h with a fake revision (#1634)
 
-2012-02-29 10:55  strk
+2012-02-29 10:55  Sandro Santilli <strk at keybit.net>
 
-	* Stop using postgis_uses_stats() from postgis_full_version()
-	  (#1632)
+	* [r9347] postgis/postgis.sql.in.c: Stop using postgis_uses_stats()
+	  from postgis_full_version() (#1632)
 
-2012-02-29 10:48  strk
+2012-02-29 10:48  Sandro Santilli <strk at keybit.net>
 
-	* Integrate upgrade tips in postgis_full_version reference
+	* [r9346] doc/reference_management.xml: Integrate upgrade tips in
+	  postgis_full_version reference
 
-2012-02-29 10:39  strk
+2012-02-29 10:39  Sandro Santilli <strk at keybit.net>
 
-	* Mention rtpostgis_upgrade* and topology_upgrade* in manual
-	  (#1611)
+	* [r9345] doc/installation.xml: Mention rtpostgis_upgrade* and
+	  topology_upgrade* in manual (#1611)
 
-2012-02-29 10:08  strk
+2012-02-29 10:08  Sandro Santilli <strk at keybit.net>
 
-	* Have XSLTPROCFLAGS default to --nonet
+	* [r9344] doc/Makefile.in: Have XSLTPROCFLAGS default to --nonet
 	  
 	  This way you can drop by redefining it as in: make XSLTPROCFLAGS=
 
-2012-02-29 09:51  strk
+2012-02-29 09:51  Sandro Santilli <strk at keybit.net>
 
-	* Add support for a user-defined XSLTPROCFLAGS variable to append
+	* [r9343] doc/Makefile.in: Add support for a user-defined
+	  XSLTPROCFLAGS variable to append
 	  
 	  Example: make -C doc html XSLTPROCFLAGS=--nonet
 	  
 	  Still defaults to allow net access, I couldn't find an option to
 	  override --nonet with its contraty...
 
-2012-02-29 09:00  robe
+2012-02-29 09:00  Regina Obe <lr at pcorp.us>
 
-	* #1630: Swap the order of dropping - you have to drop the function
-	  first before the type
+	* [r9342] raster/rt_pg/rtpostgis_drop.sql.in.c: #1630: Swap the
+	  order of dropping - you have to drop the function first before
+	  the type
 
-2012-02-29 08:44  robe
+2012-02-29 08:44  Regina Obe <lr at pcorp.us>
 
-	* #1630: drop wktgeomval type from extension, but still can't drop
+	* [r9341] extensions/postgis/sql_bits/remove_from_extension.sql.in:
+	  #1630: drop wktgeomval type from extension, but still can't drop
 	  because of function _st_dumpaswktpolygons
 
-2012-02-29 08:04  robe
+2012-02-29 08:04  Regina Obe <lr at pcorp.us>
 
-	* #1619: Logic to mark spatial_ref_sys, topology, layers tables as
+	* [r9340] extensions/postgis/Makefile.in,
+	  extensions/postgis/sql_bits/mark_editable_objects.sql.in,
+	  extensions/postgis_topology/Makefile.in,
+	  extensions/postgis_topology/sql_bits/mark_editable_objects.sql.in:
+	  #1619: Logic to mark spatial_ref_sys, topology, layers tables as
 	  user editable so that the data in them gets backed up during
 	  pg_dump
 
-2012-02-29 03:01  pracine
+2012-02-29 03:01  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* 
+	* [r9339] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c:
 
-2012-02-29 02:56  pracine
+2012-02-29 02:56  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Other minor fix.
+	* [r9338] doc/reference_raster.xml: Other minor fix.
 
-2012-02-29 02:51  pracine
+2012-02-29 02:51  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* fix doc typo.
+	* [r9337] doc/reference_raster.xml: fix doc typo.
 
-2012-02-29 02:47  pracine
+2012-02-29 02:47  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix for ticket 1536. Added a nodataval[] parameter to
-	  ST_Intersection and removed the otheruserfunc one.
+	* [r9336] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/regress/rt_clip.sql,
+	  raster/test/regress/rt_intersection.sql,
+	  raster/test/regress/rt_intersection_expected: Fix for ticket
+	  1536. Added a nodataval[] parameter to ST_Intersection and
+	  removed the otheruserfunc one.
 	  
 	  Changed the ST_Clip trimraster parameter name to crop and set it
 	  to true by default.
 	  
 	  Updated the doc.
 
-2012-02-29 00:52  pramsey
+2012-02-29 00:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for MinGW!
+	* [r9335] raster/raster_config.h.in: Fix for MinGW!
 
-2012-02-29 00:49  pramsey
+2012-02-29 00:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for windoze!
+	* [r9334] postgis_config.h.in: Fix for windoze!
 
-2012-02-28 18:50  pramsey
+2012-02-28 18:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make our --prefix policy crystal clear
+	* [r9333] configure.ac: Make our --prefix policy crystal clear
 
-2012-02-28 18:29  pramsey
+2012-02-28 18:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix regression due to new error message in GML generation
+	* [r9332] liblwgeom/cunit/cu_out_gml.c: Fix regression due to new
+	  error message in GML generation
 
-2012-02-28 18:09  pramsey
+2012-02-28 18:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make error message on GML2 calls for TIN more instructive (#1591)
+	* [r9331] liblwgeom/lwout_gml.c: Make error message on GML2 calls
+	  for TIN more instructive (#1591)
 
-2012-02-28 17:17  strk
+2012-02-28 17:17  Sandro Santilli <strk at keybit.net>
 
-	* TopoGeo_addPoint: use a more functional tolerance when snapping
+	* [r9330] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected:
+	  TopoGeo_addPoint: use a more functional tolerance when snapping
 	  (#1613)
 	  
 	  All of this looks like magic but it isn't.
@@ -9905,373 +19496,2353 @@
 	  topology
 	  building issue and that's A Good Thing.
 
-2012-02-28 17:17  strk
-
-	* Hush debugging lines unless requested
-
-2012-02-28 10:43  strk
-
-	* Ignore extension sql target dirs
-
-2012-02-28 10:28  strk
-
-	* Have configure look for mathml2.dtd, rework doc build scripts
-	  (#1157)
-
-2012-02-28 10:17  robe
-
-	* correct proto output type -- ST_Union of rasters always returns a
-	  raster
-
-2012-02-28 06:13  pramsey
-
-	* Set eol-style to LF
-
-2012-02-27 22:08  pramsey
-
-	* Try again with line endings, this time using eol-style instead of
-	  eol-type (#1605)
-
-2012-02-27 20:58  pramsey
-
-	* Set appropriate mime types and text file types on all files.
-	  (#1605)
+2012-02-28 17:17  Sandro Santilli <strk at keybit.net>
+
+	* [r9329] topology/sql/sqlmm.sql.in.c: Hush debugging lines unless
+	  requested
+
+2012-02-28 10:43  Sandro Santilli <strk at keybit.net>
+
+	* [r9328] .gitignore: Ignore extension sql target dirs
+
+2012-02-28 10:28  Sandro Santilli <strk at keybit.net>
+
+	* [r9327] configure.ac, doc/Makefile.in, doc/postgis.xml: Have
+	  configure look for mathml2.dtd, rework doc build scripts (#1157)
+
+2012-02-28 10:17  Regina Obe <lr at pcorp.us>
+
+	* [r9326] doc/reference_raster.xml: correct proto output type --
+	  ST_Union of rasters always returns a raster
+
+2012-02-28 06:13  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r9325] configure.ac: Set eol-style to LF
+
+2012-02-27 22:08  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r9324] COPYING, CREDITS, GNUmakefile.in, HOWTO_RELEASE,
+	  LICENSE.TXT, MIGRATION, Makefile, NEWS, README.postgis,
+	  README.raster, STYLE, TODO, Version.config, astyle.sh,
+	  autogen.sh, configure.ac, doc/Makefile.comments.in,
+	  doc/Makefile.in, doc/README, doc/ZMSgeoms.txt,
+	  doc/doxygen.cfg.in, doc/extras.xml, doc/extras_historytable.xml,
+	  doc/extras_tigergeocoder.xml, doc/extras_topology.xml,
+	  doc/faq.xml, doc/faq_raster.xml, doc/geography.txt,
+	  doc/html/image_src/Makefile.in, doc/html/image_src/de9im01.wkt,
+	  doc/html/image_src/de9im02.wkt, doc/html/image_src/de9im03.wkt,
+	  doc/html/image_src/de9im04.wkt, doc/html/image_src/de9im05.wkt,
+	  doc/html/image_src/de9im06.wkt, doc/html/image_src/de9im07.wkt,
+	  doc/html/image_src/de9im08.wkt, doc/html/image_src/de9im09.wkt,
+	  doc/html/image_src/de9im10.wkt, doc/html/image_src/de9im11.wkt,
+	  doc/html/image_src/de9im12.wkt, doc/html/image_src/de9im13.wkt,
+	  doc/html/image_src/generator.c,
+	  doc/html/image_src/st_azimuth01.wkt,
+	  doc/html/image_src/st_azimuth02.wkt,
+	  doc/html/image_src/st_azimuthmath.sql,
+	  doc/html/image_src/st_buffer01.wkt,
+	  doc/html/image_src/st_buffer02.wkt,
+	  doc/html/image_src/st_buffer03.wkt,
+	  doc/html/image_src/st_buffer04.wkt,
+	  doc/html/image_src/st_buffer05.wkt,
+	  doc/html/image_src/st_buffer06.wkt,
+	  doc/html/image_src/st_buffer07.wkt,
+	  doc/html/image_src/st_buffer08.wkt,
+	  doc/html/image_src/st_buildarea01.wkt,
+	  doc/html/image_src/st_buildarea02.wkt,
+	  doc/html/image_src/st_centroid01.wkt,
+	  doc/html/image_src/st_centroid02.wkt,
+	  doc/html/image_src/st_centroid03.wkt,
+	  doc/html/image_src/st_centroid04.wkt,
+	  doc/html/image_src/st_closestpoint01.wkt,
+	  doc/html/image_src/st_closestpoint02.wkt,
+	  doc/html/image_src/st_concavehull01.wkt,
+	  doc/html/image_src/st_concavehull02.wkt,
+	  doc/html/image_src/st_concavehull03.wkt,
+	  doc/html/image_src/st_concavehull04.wkt,
+	  doc/html/image_src/st_concavehull05.wkt,
+	  doc/html/image_src/st_concavehull06.wkt,
+	  doc/html/image_src/st_concavehull07.wkt,
+	  doc/html/image_src/st_concavehull08.wkt,
+	  doc/html/image_src/st_contains01.wkt,
+	  doc/html/image_src/st_contains02.wkt,
+	  doc/html/image_src/st_contains03.wkt,
+	  doc/html/image_src/st_contains04.wkt,
+	  doc/html/image_src/st_contains05.wkt,
+	  doc/html/image_src/st_contains06.wkt,
+	  doc/html/image_src/st_convexhull01.wkt,
+	  doc/html/image_src/st_crosses01.wkt,
+	  doc/html/image_src/st_crosses02.wkt,
+	  doc/html/image_src/st_crosses03.wkt,
+	  doc/html/image_src/st_crosses04.wkt,
+	  doc/html/image_src/st_difference01.wkt,
+	  doc/html/image_src/st_dumppoints01.wkt,
+	  doc/html/image_src/st_issimple01.wkt,
+	  doc/html/image_src/st_issimple02.wkt,
+	  doc/html/image_src/st_issimple03.wkt,
+	  doc/html/image_src/st_issimple04.wkt,
+	  doc/html/image_src/st_issimple05.wkt,
+	  doc/html/image_src/st_issimple06.wkt,
+	  doc/html/image_src/st_issimple07.wkt,
+	  doc/html/image_src/st_isvalid01.wkt,
+	  doc/html/image_src/st_isvalid02.wkt,
+	  doc/html/image_src/st_isvalid03.wkt,
+	  doc/html/image_src/st_isvalid04.wkt,
+	  doc/html/image_src/st_isvalid05.wkt,
+	  doc/html/image_src/st_isvalid06.wkt,
+	  doc/html/image_src/st_isvalid07.wkt,
+	  doc/html/image_src/st_isvalid08.wkt,
+	  doc/html/image_src/st_isvalid09.wkt,
+	  doc/html/image_src/st_line_interpolate_point01.wkt,
+	  doc/html/image_src/st_line_substring01.wkt,
+	  doc/html/image_src/st_linecrossingdirection01.wkt,
+	  doc/html/image_src/st_linecrossingdirection02.wkt,
+	  doc/html/image_src/st_linecrossingdirection03.wkt,
+	  doc/html/image_src/st_linecrossingdirection04.wkt,
+	  doc/html/image_src/st_longestline01.wkt,
+	  doc/html/image_src/st_longestline02.wkt,
+	  doc/html/image_src/st_longestline03.wkt,
+	  doc/html/image_src/st_minimumboundingcircle01.wkt,
+	  doc/html/image_src/st_offsetcurve01.wkt,
+	  doc/html/image_src/st_offsetcurve02.wkt,
+	  doc/html/image_src/st_offsetcurve03.wkt,
+	  doc/html/image_src/st_offsetcurve04.wkt,
+	  doc/html/image_src/st_offsetcurve05.wkt,
+	  doc/html/image_src/st_offsetcurve06.wkt,
+	  doc/html/image_src/st_overlaps01.wkt,
+	  doc/html/image_src/st_overlaps02.wkt,
+	  doc/html/image_src/st_overlaps03.wkt,
+	  doc/html/image_src/st_sharedpaths01.wkt,
+	  doc/html/image_src/st_sharedpaths02.wkt,
+	  doc/html/image_src/st_shortestline01.wkt,
+	  doc/html/image_src/st_shortestline02.wkt,
+	  doc/html/image_src/st_snap01.wkt,
+	  doc/html/image_src/st_snap02.wkt,
+	  doc/html/image_src/st_snap03.wkt,
+	  doc/html/image_src/st_snap04.wkt,
+	  doc/html/image_src/st_snap05.wkt,
+	  doc/html/image_src/st_split01.wkt,
+	  doc/html/image_src/st_split02.wkt,
+	  doc/html/image_src/st_split03.wkt,
+	  doc/html/image_src/st_split04.wkt,
+	  doc/html/image_src/st_symdifference01.wkt,
+	  doc/html/image_src/st_symdifference02.wkt,
+	  doc/html/image_src/st_touches01.wkt,
+	  doc/html/image_src/st_touches02.wkt,
+	  doc/html/image_src/st_touches03.wkt,
+	  doc/html/image_src/st_touches04.wkt,
+	  doc/html/image_src/st_touches05.wkt,
+	  doc/html/image_src/st_touches06.wkt,
+	  doc/html/image_src/st_within01.wkt, doc/html/image_src/styles.c,
+	  doc/html/image_src/styles.conf, doc/html/image_src/styles.h,
+	  doc/html/images/PostGIS_logo.png, doc/html/images/caution.png,
+	  doc/html/images/ccbysa.png, doc/html/images/check.png,
+	  doc/html/images/important.png,
+	  doc/html/images/matrix_autocast.png,
+	  doc/html/images/matrix_checkmark.png,
+	  doc/html/images/matrix_transform.png, doc/html/images/note.png,
+	  doc/html/images/osgeo_logo.png,
+	  doc/html/images/raster_xscale_yscale_xskew_yskew.png,
+	  doc/html/images/rt_st_transform01.png,
+	  doc/html/images/rt_st_transform02.png,
+	  doc/html/images/rt_st_transform03.png,
+	  doc/html/images/st_asraster01.png,
+	  doc/html/images/st_asraster02.png, doc/html/images/st_band01.png,
+	  doc/html/images/st_band02.png, doc/html/images/st_band03.png,
+	  doc/html/images/st_clip01.png, doc/html/images/st_clip02.png,
+	  doc/html/images/st_clip03.png,
+	  doc/html/images/st_crosses-math.gif,
+	  doc/html/images/st_mapalgebraexpr01.png,
+	  doc/html/images/st_mapalgebraexpr02.png,
+	  doc/html/images/st_mapalgebraexpr2_01.png,
+	  doc/html/images/st_mapalgebraexpr2_02.png,
+	  doc/html/images/st_mapalgebraexpr2_04.png,
+	  doc/html/images/st_mapalgebraexpr2_05.png,
+	  doc/html/images/st_mapalgebraexpr2_06.png,
+	  doc/html/images/st_mapalgebraexpr2_07.png,
+	  doc/html/images/st_mapalgebrafct2_01.png,
+	  doc/html/images/st_mapalgebrafct2_02.png,
+	  doc/html/images/st_mapalgebrafctngb01.png,
+	  doc/html/images/st_mapalgebrafctngb02.png,
+	  doc/html/images/st_resample01.png,
+	  doc/html/images/st_resample02.png,
+	  doc/html/images/st_rescale01.png,
+	  doc/html/images/st_rescale02.png,
+	  doc/html/images/st_touches-math.gif, doc/html/images/tip.png,
+	  doc/html/images/warning.png, doc/html/style.css,
+	  doc/installation.xml, doc/introduction.xml,
+	  doc/performance_tips.xml, doc/postgis.xml, doc/reference.xml,
+	  doc/reference_accessor.xml, doc/reference_constructor.xml,
+	  doc/reference_editor.xml, doc/reference_exception.xml,
+	  doc/reference_lrs.xml, doc/reference_management.xml,
+	  doc/reference_measure.xml, doc/reference_misc.xml,
+	  doc/reference_operator.xml, doc/reference_output.xml,
+	  doc/reference_processing.xml, doc/reference_raster.xml,
+	  doc/reference_transaction.xml, doc/reference_type.xml,
+	  doc/release_notes.xml, doc/reporting.xml,
+	  doc/rfc/postgis_rfc_02.txt, doc/rfc/postgis_rfc_03.txt,
+	  doc/rfc/postgis_rfc_03_sheet.txt, doc/rfc/postgis_rfc_04.txt,
+	  doc/template.xml, doc/using_postgis_app.xml,
+	  doc/using_postgis_dataman.xml, doc/using_raster_dataman.xml,
+	  doc/xmlformat.conf, extensions/Makefile.in, extensions/README,
+	  extensions/postgis/Makefile.in,
+	  extensions/postgis/postgis.control.in,
+	  extensions/postgis/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_extension_helper.sql,
+	  extensions/postgis_extension_helper_uninstall.sql,
+	  extensions/postgis_topology/Makefile.in,
+	  extensions/postgis_topology/postgis_topology.control.in,
+	  extensions/postgis_topology/sql_bits/remove_from_extension.sql.in,
+	  extras/WFS_locks/Makefile, extras/WFS_locks/README,
+	  extras/WFS_locks/WFS_locks.c, extras/WFS_locks/WFS_locks.sql.in,
+	  extras/WFS_locks/test.sql, extras/history_table/README,
+	  extras/history_table/history_table.sql,
+	  extras/ogc_test_suite/1_schema.sql,
+	  extras/ogc_test_suite/2_queries.sql,
+	  extras/ogc_test_suite/3_cleanup.sql,
+	  extras/ogc_test_suite/Makefile, extras/ogc_test_suite/README,
+	  extras/rpm/README, extras/rpm/patches/filter-requires-perl-Pg.sh,
+	  extras/template_gis/Makefile, extras/template_gis/README,
+	  extras/template_gis/createdb.postgis.in,
+	  extras/template_gis/mktemplate_gis.in,
+	  extras/template_gis/mktemplate_gis.sh.in,
+	  extras/template_gis/postgis_env.sh.in,
+	  extras/template_gis/postgres_lib.sh.in,
+	  extras/template_gis/rmtemplate_gis.in,
+	  extras/template_gis/rmtemplate_gis.sh.in,
+	  extras/tiger_geocoder/README,
+	  extras/tiger_geocoder/tiger_2006andbefore/README,
+	  extras/tiger_geocoder/tiger_2006andbefore/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_state.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_zip.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_get_point.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_zip.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/load_tiger.sh,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/newdb.sh,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/tigerimport.sh,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/tigerpoly2.py,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/count_words.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/end_soundex.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/get_last_words.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/state_extract.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/orig/tiger_geocoder.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables/lookup_tables.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables/roads_local.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables/tiger_geocode_roads.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/cull_null.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/levenshtein_ignore_case.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/nullable_levenshtein.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/utmzone.sql,
+	  extras/tiger_geocoder/tiger_2010/README,
+	  extras/tiger_geocoder/tiger_2010/census_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/census_tracts_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_intersection.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/legacy_import/tiger2008/import_tiger_shps.sh,
+	  extras/tiger_geocoder/tiger_2010/normalize/count_words.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/end_soundex.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/get_last_words.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/state_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/reverse_geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/topology/README,
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocoder.bat,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocoder.sh,
+	  extras/tiger_geocoder/tiger_2010/utility/cull_null.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/levenshtein_ignore_case.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/nullable_levenshtein.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/utmzone.sql,
+	  extras/wkb_reader/Makefile, extras/wkb_reader/README,
+	  extras/wkb_reader/printwkb.c, extras/wkb_reader/readwkb.c,
+	  extras/wkb_reader/wkbtest.h, install-sh, java/Makefile,
+	  java/ejb2/COPYING, java/ejb2/COPYING_LGPL, java/ejb2/README,
+	  java/ejb2/build.xml, java/ejb2/prepare-jboss.xml,
+	  java/ejb2/resources/application.xml,
+	  java/ejb2/resources/build.properties,
+	  java/ejb2/resources/jndi/jndi.properties,
+	  java/ejb2/resources/postgis-ejb2-ds.xml,
+	  java/ejb2/src/com/geodetix/geo/client/Client.java,
+	  java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAO.java,
+	  java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAOImpl.java,
+	  java/ejb2/src/com/geodetix/geo/ejb/GeometryBean.java,
+	  java/ejb2/src/com/geodetix/geo/ejb/GeometryFacadeBean.java,
+	  java/ejb2/src/com/geodetix/geo/exception/ApplicationGeoLayerException.java,
+	  java/ejb3/.settings/org.eclipse.jdt.core.prefs,
+	  java/ejb3/EJB3Spatial.odt, java/ejb3/README.txt,
+	  java/ejb3/build.xml, java/ejb3/ejb3spatial.pdf,
+	  java/ejb3/jboss/geodata-ds.xml,
+	  java/ejb3/jboss/ingest-service.xml,
+	  java/ejb3/src/META-INF/persistence.xml,
+	  java/ejb3/src/jndi.properties,
+	  java/ejb3/src/org/postgis/ejb/PersonEntity.java,
+	  java/ejb3/src/org/postgis/ejb/UserBean.java,
+	  java/ejb3/src/org/postgis/ejb/UserBeanRemote.java,
+	  java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java,
+	  java/ejb3/src/org/postgis/hibernate/ContainsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/GeometryType.java,
+	  java/ejb3/src/org/postgis/hibernate/IntersectsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/PostGISDialect.java,
+	  java/ejb3/src/org/postgis/hibernate/WithinExpression.java,
+	  java/jdbc/COPYING_LGPL, java/jdbc/Makefile.in, java/jdbc/README,
+	  java/jdbc/build.xml,
+	  java/jdbc/jtssrc/examples/JtsTestParser.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JTSShape.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsBinaryWriter.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsGisWrapper.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsWrapper.java,
+	  java/jdbc/jtssrc/pom.xml, java/jdbc/pom.xml,
+	  java/jdbc/src/examples/Test.java,
+	  java/jdbc/src/examples/TestAutoregister.java,
+	  java/jdbc/src/examples/TestBoxes.java,
+	  java/jdbc/src/examples/TestJava2d.java,
+	  java/jdbc/src/examples/TestParser.java,
+	  java/jdbc/src/examples/TestServer.java,
+	  java/jdbc/src/examples/VersionPrinter.java,
+	  java/jdbc/src/org/postgis/ComposedGeom.java,
+	  java/jdbc/src/org/postgis/DriverWrapper.java,
+	  java/jdbc/src/org/postgis/DriverWrapperAutoprobe.java,
+	  java/jdbc/src/org/postgis/DriverWrapperLW.java,
+	  java/jdbc/src/org/postgis/Geometry.java,
+	  java/jdbc/src/org/postgis/GeometryCollection.java,
+	  java/jdbc/src/org/postgis/LineString.java,
+	  java/jdbc/src/org/postgis/LinearRing.java,
+	  java/jdbc/src/org/postgis/MultiLineString.java,
+	  java/jdbc/src/org/postgis/MultiPoint.java,
+	  java/jdbc/src/org/postgis/MultiPolygon.java,
+	  java/jdbc/src/org/postgis/PGbox2d.java,
+	  java/jdbc/src/org/postgis/PGbox3d.java,
+	  java/jdbc/src/org/postgis/PGboxbase.java,
+	  java/jdbc/src/org/postgis/PGgeometry.java,
+	  java/jdbc/src/org/postgis/PGgeometryLW.java,
+	  java/jdbc/src/org/postgis/Point.java,
+	  java/jdbc/src/org/postgis/PointComposedGeom.java,
+	  java/jdbc/src/org/postgis/Polygon.java,
+	  java/jdbc/src/org/postgis/Version.java,
+	  java/jdbc/src/org/postgis/binary/BinaryParser.java,
+	  java/jdbc/src/org/postgis/binary/BinaryWriter.java,
+	  java/jdbc/src/org/postgis/binary/ByteGetter.java,
+	  java/jdbc/src/org/postgis/binary/ByteSetter.java,
+	  java/jdbc/src/org/postgis/binary/ValueGetter.java,
+	  java/jdbc/src/org/postgis/binary/ValueSetter.java,
+	  java/jdbc/src/org/postgis/java2d/Java2DWrapper.java,
+	  java/jdbc/src/org/postgis/java2d/PGShapeGeometry.java,
+	  java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java,
+	  java/jdbc/src/org/postgis/version.properties,
+	  java/jdbc/src/org/postgresql/driverconfig.properties,
+	  java/jdbc/stubs/LICENSE,
+	  java/jdbc/stubs/org/postgresql/Connection.java,
+	  java/jdbc/stubs/org/postgresql/PGConnection.java,
+	  java/jdbc/todo.txt, java/pljava/README.txt,
+	  java/pljava/build.xml, java/pljava/functions.sql,
+	  java/pljava/install.sh, java/pljava/postgis_pljava.jar,
+	  java/pljava/src/org/postgis/pljava/Aggregates.java,
+	  java/pljava/src/org/postgis/pljava/HelloWorld.java,
+	  java/pljava/src/org/postgis/pljava/PLJGeometry.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsParser.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsWriter.java,
+	  java/pljava/update.sh, liblwgeom/Makefile.in, liblwgeom/box2d.c,
+	  liblwgeom/cunit/Makefile.in, liblwgeom/cunit/README,
+	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/cunit/cu_geos.c,
+	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_in_wkt.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/cunit/cu_misc.c,
+	  liblwgeom/cunit/cu_node.c, liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_out_kml.c,
+	  liblwgeom/cunit/cu_out_svg.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/cunit/cu_split.c, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_surface.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/g_serialized.txt,
+	  liblwgeom/g_util.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/libtgeom.c,
+	  liblwgeom/libtgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwgeom_debug.c, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwgeom_geos.h, liblwgeom/lwgeom_geos_clean.c,
+	  liblwgeom/lwgeom_geos_node.c, liblwgeom/lwgeom_geos_split.c,
+	  liblwgeom/lwgeom_log.h, liblwgeom/lwgeom_transform.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_lex.c, liblwgeom/lwin_wkt_lex.l,
+	  liblwgeom/lwin_wkt_parse.c, liblwgeom/lwin_wkt_parse.h,
+	  liblwgeom/lwin_wkt_parse.y, liblwgeom/lwline.c,
+	  liblwgeom/lwlinearreferencing.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwout_geojson.c,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwout_kml.c,
+	  liblwgeom/lwout_svg.c, liblwgeom/lwout_wkb.c,
+	  liblwgeom/lwout_wkt.c, liblwgeom/lwout_x3d.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwprint.c,
+	  liblwgeom/lwpsurface.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwspheroid.c, liblwgeom/lwtin.c, liblwgeom/lwtree.c,
+	  liblwgeom/lwtree.h, liblwgeom/lwtriangle.c, liblwgeom/lwutil.c,
+	  liblwgeom/measures.c, liblwgeom/measures.h,
+	  liblwgeom/measures3d.c, liblwgeom/measures3d.h,
+	  liblwgeom/ptarray.c, liblwgeom/stringbuffer.c,
+	  liblwgeom/stringbuffer.h, liblwgeom/vsprintf.c,
+	  libpgcommon/Makefile.in, libpgcommon/common.h,
+	  libpgcommon/cunit/Makefile.in, libpgcommon/gserialized_gist.c,
+	  libpgcommon/gserialized_gist.h, libpgcommon/lwgeom_pg.c,
+	  libpgcommon/lwgeom_pg.h, libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h, libpgcommon/pgsql_compat.h,
+	  loader/Makefile.in, loader/README.i18n, loader/README.pgsql2shp,
+	  loader/README.shp2pgsql, loader/README.txt, loader/TODO,
+	  loader/cunit/Makefile.in, loader/cunit/cu_pgsql2shp.c,
+	  loader/cunit/cu_pgsql2shp.h, loader/cunit/cu_shp2pgsql.c,
+	  loader/cunit/cu_shp2pgsql.h, loader/cunit/cu_tester.c,
+	  loader/cunit/cu_tester.h, loader/cunit/map.txt, loader/dbfopen.c,
+	  loader/getopt.c, loader/getopt.h, loader/image/error.png,
+	  loader/image/good.png, loader/image/icon_source.svg,
+	  loader/image/warn.png, loader/pgsql2shp-cli.c,
+	  loader/pgsql2shp-core.c, loader/pgsql2shp-core.h,
+	  loader/safileio.c, loader/shapefil.h, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/shp2pgsql-gui.ico,
+	  loader/shpcommon.c, loader/shpcommon.h, loader/shpopen.c,
+	  macros/ac_proj4_version.m4, macros/codeset.m4, macros/gettext.m4,
+	  macros/gtk-2.0.m4, macros/iconv.m4, macros/intl.m4,
+	  macros/intldir.m4, macros/intlmacosx.m4, macros/intltool.m4,
+	  macros/lib-ld.m4, macros/lib-link.m4, macros/lib-prefix.m4,
+	  macros/nls.m4, macros/po.m4, macros/progtest.m4, make_dist.sh,
+	  postgis/Makefile.in, postgis/Makefile.pgxs, postgis/README,
+	  postgis/TODO, postgis/compat.h, postgis/geography.h,
+	  postgis/geography.sql.in.c, postgis/geography_btree.c,
+	  postgis/geography_estimate.c, postgis/geography_inout.c,
+	  postgis/geography_measurement.c, postgis/geometry_estimate.c,
+	  postgis/geometry_inout.c, postgis/gserialized_gist_2d.c,
+	  postgis/gserialized_gist_nd.c, postgis/gserialized_typmod.c,
+	  postgis/legacy.sql.in.c,
+	  postgis/legacy_compatibility_layer.sql.in.c, postgis/long_xact.c,
+	  postgis/long_xact.sql.in.c, postgis/lwgeom_accum.c,
+	  postgis/lwgeom_box.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_btree.c, postgis/lwgeom_cache.c,
+	  postgis/lwgeom_cache.h, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_export.h,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_analytic.h,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_prepared.h,
+	  postgis/lwgeom_geos_relatematch.c, postgis/lwgeom_in_geojson.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_rtree.h,
+	  postgis/lwgeom_spheroid.c, postgis/lwgeom_sqlmm.c,
+	  postgis/lwgeom_transform.c, postgis/lwgeom_triggers.c,
+	  postgis/postgis.sql.in.c, postgis/postgis_drop.sql.in.c,
+	  postgis/postgis_drop_before.sql.in.c, postgis/postgis_module.c,
+	  postgis/sqldefines.h.in, postgis/uninstall_geography.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c,
+	  postgis/uninstall_long_xact.sql.in.c,
+	  postgis/uninstall_sqlmm.sql.in.c, postgis_config.h.in,
+	  raster/CREDITS, raster/Makefile.in, raster/NEWS,
+	  raster/Version.config, raster/doc/doxygen.cfg.in,
+	  raster/install-sh, raster/loader/Makefile.in,
+	  raster/loader/raster2pgsql.c, raster/loader/raster2pgsql.h,
+	  raster/macros/ac_proj4_version.m4, raster/raster_config.h.in,
+	  raster/rt_core/Makefile.in, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/Makefile.pgxs, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rt_pg.h, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/rt_pg/rtpostgis_legacy.sql.in.c,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c,
+	  raster/scripts/Makefile.in,
+	  raster/scripts/plpgsql/_MapAlgebraParts.sql,
+	  raster/scripts/plpgsql/readme.txt,
+	  raster/scripts/plpgsql/st_addband.sql,
+	  raster/scripts/plpgsql/st_areaweightedsummarystats.sql,
+	  raster/scripts/plpgsql/st_asraster.sql,
+	  raster/scripts/plpgsql/st_clip.sql,
+	  raster/scripts/plpgsql/st_createindexraster.sql,
+	  raster/scripts/plpgsql/st_deleteband.sql,
+	  raster/scripts/plpgsql/st_geomextent2rastercoord.sql,
+	  raster/scripts/plpgsql/st_histogram.sql,
+	  raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_mapalgebra_optimized.sql,
+	  raster/scripts/plpgsql/st_mapalgebrafctngb.sql,
+	  raster/scripts/plpgsql/st_multibandmapalgebra.sql,
+	  raster/scripts/plpgsql/st_pixelaspoints.sql,
+	  raster/scripts/plpgsql/st_pixelaspolygons.sql,
+	  raster/scripts/plpgsql/st_querytables.sql,
+	  raster/scripts/plpgsql/st_reclass.sql,
+	  raster/scripts/plpgsql/st_setarray.sql,
+	  raster/scripts/plpgsql/st_setvalues.sql,
+	  raster/scripts/plpgsql/st_splittable.sql,
+	  raster/scripts/plpgsql/st_summarystatsagg.sql,
+	  raster/scripts/plpgsql/st_tile.sql,
+	  raster/scripts/plpgsql/st_union.sql,
+	  raster/scripts/python/Makefile.in,
+	  raster/scripts/python/Makefile.rt.sample,
+	  raster/scripts/python/genraster.py,
+	  raster/scripts/python/ovdump.py, raster/scripts/python/pixval.py,
+	  raster/scripts/python/raster2pgsql.py,
+	  raster/scripts/python/rtgdalraster.py,
+	  raster/scripts/python/rtpixdump.py,
+	  raster/scripts/python/rtreader.py,
+	  raster/scripts/python/rtrowdump.py,
+	  raster/scripts/python/window.py, raster/test/Makefile.in,
+	  raster/test/core/Makefile.in, raster/test/core/check.h,
+	  raster/test/core/testapi.c, raster/test/core/testwkb.c,
+	  raster/test/regress/Makefile.in, raster/test/regress/README,
+	  raster/test/regress/box3d.sql,
+	  raster/test/regress/box3d_expected,
+	  raster/test/regress/bug_test_car5.sql,
+	  raster/test/regress/bug_test_car5_expected,
+	  raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_columns_expected,
+	  raster/test/regress/check_raster_overviews.sql,
+	  raster/test/regress/check_raster_overviews_expected,
+	  raster/test/regress/create_rt_band_properties_test.sql,
+	  raster/test/regress/create_rt_band_properties_test_expected,
+	  raster/test/regress/create_rt_empty_raster_test.sql,
+	  raster/test/regress/create_rt_empty_raster_test_expected,
+	  raster/test/regress/create_rt_gist_test.sql,
+	  raster/test/regress/create_rt_gist_test_expected,
+	  raster/test/regress/create_rt_mapalgebra_test.sql,
+	  raster/test/regress/create_rt_mapalgebra_test_expected,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test_expected,
+	  raster/test/regress/create_rt_properties_test.sql,
+	  raster/test/regress/create_rt_properties_test_expected,
+	  raster/test/regress/create_rt_utility_test.sql,
+	  raster/test/regress/drop_rt_band_properties_test.sql,
+	  raster/test/regress/drop_rt_band_properties_test_expected,
+	  raster/test/regress/drop_rt_empty_raster_test.sql,
+	  raster/test/regress/drop_rt_empty_raster_test_expected,
+	  raster/test/regress/drop_rt_gist_test.sql,
+	  raster/test/regress/drop_rt_gist_test_expected,
+	  raster/test/regress/drop_rt_mapalgebra_test.sql,
+	  raster/test/regress/drop_rt_mapalgebra_test_expected,
+	  raster/test/regress/drop_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/drop_rt_mapalgebrafctngb_test_expected,
+	  raster/test/regress/drop_rt_properties_test.sql,
+	  raster/test/regress/drop_rt_properties_test_expected,
+	  raster/test/regress/loader/Basic-post.sh,
+	  raster/test/regress/loader/Basic-pre.sh,
+	  raster/test/regress/loader/Basic.select.sql,
+	  raster/test/regress/loader/BasicCopy-post.sh,
+	  raster/test/regress/loader/BasicCopy-pre.sh,
+	  raster/test/regress/loader/BasicCopy.select.sql,
+	  raster/test/regress/loader/Tiled10x10-post.sh,
+	  raster/test/regress/loader/Tiled10x10-pre.sh,
+	  raster/test/regress/loader/Tiled10x10.select.sql,
+	  raster/test/regress/loader/Tiled10x10Copy-post.sh,
+	  raster/test/regress/loader/Tiled10x10Copy-pre.sh,
+	  raster/test/regress/loader/Tiled10x10Copy.select.sql,
+	  raster/test/regress/loader/testraster.tif,
+	  raster/test/regress/rt_above.sql,
+	  raster/test/regress/rt_above_expected,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_addband_expected,
+	  raster/test/regress/rt_asgdalraster.sql,
+	  raster/test/regress/rt_asgdalraster_expected,
+	  raster/test/regress/rt_asjpeg.sql,
+	  raster/test/regress/rt_asjpeg_expected,
+	  raster/test/regress/rt_aspng.sql,
+	  raster/test/regress/rt_aspng_expected,
+	  raster/test/regress/rt_asraster.sql,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_astiff.sql,
+	  raster/test/regress/rt_astiff_expected,
+	  raster/test/regress/rt_band.sql,
+	  raster/test/regress/rt_band_expected,
+	  raster/test/regress/rt_band_properties.sql,
+	  raster/test/regress/rt_band_properties_expected,
+	  raster/test/regress/rt_bandmetadata.sql,
+	  raster/test/regress/rt_bandmetadata_expected,
+	  raster/test/regress/rt_below.sql,
+	  raster/test/regress/rt_below_expected,
+	  raster/test/regress/rt_bytea.sql,
+	  raster/test/regress/rt_bytea_expected,
+	  raster/test/regress/rt_clip.sql,
+	  raster/test/regress/rt_clip_expected,
+	  raster/test/regress/rt_contain.sql,
+	  raster/test/regress/rt_contain_expected,
+	  raster/test/regress/rt_contained.sql,
+	  raster/test/regress/rt_contained_expected,
+	  raster/test/regress/rt_count.sql,
+	  raster/test/regress/rt_count_expected,
+	  raster/test/regress/rt_dimensions.sql,
+	  raster/test/regress/rt_dimensions_expected,
+	  raster/test/regress/rt_georeference.sql,
+	  raster/test/regress/rt_georeference_expected,
+	  raster/test/regress/rt_hasnoband.sql,
+	  raster/test/regress/rt_hasnoband_expected,
+	  raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_histogram_expected,
+	  raster/test/regress/rt_intersection.sql,
+	  raster/test/regress/rt_intersection_expected,
+	  raster/test/regress/rt_intersects.sql,
+	  raster/test/regress/rt_intersects_expected,
+	  raster/test/regress/rt_io.sql,
+	  raster/test/regress/rt_io_expected,
+	  raster/test/regress/rt_isempty.sql,
+	  raster/test/regress/rt_isempty_expected,
+	  raster/test/regress/rt_left.sql,
+	  raster/test/regress/rt_left_expected,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster_expected,
+	  raster/test/regress/rt_mapalgebraexpr_expected,
+	  raster/test/regress/rt_mapalgebrafct.sql,
+	  raster/test/regress/rt_mapalgebrafct_2raster.sql,
+	  raster/test/regress/rt_mapalgebrafct_2raster_expected,
+	  raster/test/regress/rt_mapalgebrafct_expected,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_expected,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc_expected,
+	  raster/test/regress/rt_metadata.sql,
+	  raster/test/regress/rt_metadata_expected,
+	  raster/test/regress/rt_overabove.sql,
+	  raster/test/regress/rt_overabove_expected,
+	  raster/test/regress/rt_overbelow.sql,
+	  raster/test/regress/rt_overbelow_expected,
+	  raster/test/regress/rt_overlap.sql,
+	  raster/test/regress/rt_overlap_expected,
+	  raster/test/regress/rt_overleft.sql,
+	  raster/test/regress/rt_overleft_expected,
+	  raster/test/regress/rt_overright.sql,
+	  raster/test/regress/rt_overright_expected,
+	  raster/test/regress/rt_pixelsize.sql,
+	  raster/test/regress/rt_pixelsize_expected,
+	  raster/test/regress/rt_pixelvalue.sql,
+	  raster/test/regress/rt_pixelvalue_expected,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_quantile_expected,
+	  raster/test/regress/rt_reclass.sql,
+	  raster/test/regress/rt_reclass_expected,
+	  raster/test/regress/rt_resample.sql,
+	  raster/test/regress/rt_resample_expected,
+	  raster/test/regress/rt_right.sql,
+	  raster/test/regress/rt_right_expected,
+	  raster/test/regress/rt_rotation.sql,
+	  raster/test/regress/rt_rotation_expected,
+	  raster/test/regress/rt_same.sql,
+	  raster/test/regress/rt_same_expected,
+	  raster/test/regress/rt_samealignment.sql,
+	  raster/test/regress/rt_samealignment_expected,
+	  raster/test/regress/rt_scale.sql,
+	  raster/test/regress/rt_scale_expected,
+	  raster/test/regress/rt_set_band_properties.sql,
+	  raster/test/regress/rt_set_band_properties_expected,
+	  raster/test/regress/rt_set_properties.sql,
+	  raster/test/regress/rt_set_properties_expected,
+	  raster/test/regress/rt_spatial_relationship.sql,
+	  raster/test/regress/rt_spatial_relationship_expected,
+	  raster/test/regress/rt_summarystats.sql,
+	  raster/test/regress/rt_summarystats_expected,
+	  raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected,
+	  raster/test/regress/rt_upperleft.sql,
+	  raster/test/regress/rt_upperleft_expected,
+	  raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected,
+	  raster/test/regress/rt_valuecount.sql,
+	  raster/test/regress/rt_valuecount_expected,
+	  raster/test/regress/rt_valuepercent.sql,
+	  raster/test/regress/rt_valuepercent_expected,
+	  raster/test/regress/run_test.in,
+	  raster/test/regress/testgdalraster.in,
+	  raster/test/regress/testgdalraster_expected,
+	  raster/test/regress/tickets.sql,
+	  raster/test/regress/tickets_expected, regress/Makefile.in,
+	  regress/README, regress/affine.sql, regress/affine_expected,
+	  regress/bestsrid.sql, regress/bestsrid_expected,
+	  regress/binary.sql, regress/binary_expected, regress/clean.sql,
+	  regress/clean_expected, regress/concave_hull.sql,
+	  regress/concave_hull_expected, regress/ctors.sql,
+	  regress/ctors_expected, regress/dump.sql, regress/dump_expected,
+	  regress/dumppoints.sql, regress/dumppoints_expected,
+	  regress/empty.sql, regress/empty_expected, regress/hausdorff.sql,
+	  regress/hausdorff_expected, regress/in_geojson.sql,
+	  regress/in_geojson_expected, regress/in_gml.sql,
+	  regress/in_gml_expected, regress/in_kml.sql,
+	  regress/in_kml_expected, regress/iscollection.sql,
+	  regress/iscollection_expected, regress/isvaliddetail.sql,
+	  regress/isvaliddetail_expected, regress/legacy.sql,
+	  regress/legacy_expected, regress/loader/Arc.dbf,
+	  regress/loader/Arc.select.sql, regress/loader/Arc.shp,
+	  regress/loader/ArcM.dbf, regress/loader/ArcM.select.sql,
+	  regress/loader/ArcM.shp, regress/loader/ArcZ.dbf,
+	  regress/loader/ArcZ.select.sql, regress/loader/ArcZ.shp,
+	  regress/loader/Latin1.dbf, regress/loader/Latin1.select.sql,
+	  regress/loader/MultiPoint.dbf,
+	  regress/loader/MultiPoint.select.sql,
+	  regress/loader/MultiPoint.shp, regress/loader/MultiPointM.dbf,
+	  regress/loader/MultiPointM.select.sql,
+	  regress/loader/MultiPointM.shp, regress/loader/MultiPointZ.dbf,
+	  regress/loader/MultiPointZ.select.sql,
+	  regress/loader/MultiPointZ.shp,
+	  regress/loader/MultiToSinglePoint.dbf,
+	  regress/loader/MultiToSinglePoint.select.sql,
+	  regress/loader/NoTransPoint.dbf,
+	  regress/loader/NoTransPoint.select.sql,
+	  regress/loader/NotReallyMultiPoint.dbf,
+	  regress/loader/NotReallyMultiPoint.select.sql,
+	  regress/loader/Point.dbf, regress/loader/Point.select.sql,
+	  regress/loader/Point.shp, regress/loader/PointM.dbf,
+	  regress/loader/PointM.select.sql, regress/loader/PointM.shp,
+	  regress/loader/PointWithSchema-post.sql,
+	  regress/loader/PointWithSchema-pre.sql,
+	  regress/loader/PointWithSchema.dbf,
+	  regress/loader/PointWithSchema.select.sql,
+	  regress/loader/PointZ.dbf, regress/loader/PointZ.select.sql,
+	  regress/loader/PointZ.shp, regress/loader/Polygon.dbf,
+	  regress/loader/Polygon.select.sql, regress/loader/Polygon.shp,
+	  regress/loader/PolygonM.dbf, regress/loader/PolygonM.select.sql,
+	  regress/loader/PolygonM.shp, regress/loader/PolygonZ.dbf,
+	  regress/loader/PolygonZ.select.sql, regress/loader/PolygonZ.shp,
+	  regress/loader/README, regress/loader/ReprojectPts-post.sql,
+	  regress/loader/ReprojectPts-pre.sql,
+	  regress/loader/ReprojectPts.dbf,
+	  regress/loader/ReprojectPts.select.sql,
+	  regress/loader/ReprojectPtsGeog-post.sql,
+	  regress/loader/ReprojectPtsGeog-pre.sql,
+	  regress/loader/ReprojectPtsGeog.dbf,
+	  regress/loader/ReprojectPtsGeog.select.sql,
+	  regress/loader/TSIPolygon.dbf,
+	  regress/loader/TSIPolygon.select.sql,
+	  regress/loader/TSTIPolygon.dbf,
+	  regress/loader/TSTIPolygon.select.sql,
+	  regress/loader/TSTPolygon.dbf,
+	  regress/loader/TSTPolygon.select.sql, regress/long_xact.sql,
+	  regress/long_xact_expected, regress/lwgeom_regress.sql,
+	  regress/lwgeom_regress_expected, regress/measures.sql,
+	  regress/measures_expected, regress/node.sql,
+	  regress/node_expected, regress/offsetcurve.sql,
+	  regress/offsetcurve_expected, regress/out_geography.sql,
+	  regress/out_geography_expected, regress/out_geometry.sql,
+	  regress/out_geometry_expected, regress/polygonize.sql,
+	  regress/polygonize_expected, regress/polyhedralsurface.sql,
+	  regress/polyhedralsurface_expected,
+	  regress/postgis_type_name.sql,
+	  regress/postgis_type_name_expected, regress/regress.sql,
+	  regress/regress_bdpoly.sql, regress/regress_bdpoly_expected,
+	  regress/regress_biginsert.sql, regress/regress_buffer_params.sql,
+	  regress/regress_buffer_params_expected, regress/regress_expected,
+	  regress/regress_index.sql, regress/regress_index_expected,
+	  regress/regress_index_nulls.sql,
+	  regress/regress_index_nulls_expected,
+	  regress/regress_lots_of_nulls.sql,
+	  regress/regress_lots_of_points.sql, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected, regress/regress_management.sql,
+	  regress/regress_management_expected, regress/regress_ogc.sql,
+	  regress/regress_ogc_cover.sql,
+	  regress/regress_ogc_cover_expected, regress/regress_ogc_expected,
+	  regress/regress_ogc_prep.sql, regress/regress_ogc_prep_expected,
+	  regress/regress_proj.sql, regress/regress_proj_expected,
+	  regress/relate.sql, regress/relate_bnr.sql,
+	  regress/relate_bnr_expected, regress/relate_expected,
+	  regress/relatematch.sql, regress/relatematch_expected,
+	  regress/remove_repeated_points.sql,
+	  regress/remove_repeated_points_expected, regress/removepoint.sql,
+	  regress/removepoint_expected, regress/setpoint.sql,
+	  regress/setpoint_expected, regress/sharedpaths.sql,
+	  regress/sharedpaths_expected, regress/simplify.sql,
+	  regress/simplify_expected, regress/snap.sql,
+	  regress/snap_expected, regress/snaptogrid.sql,
+	  regress/snaptogrid_expected, regress/split.sql,
+	  regress/split_expected, regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-general.sql, regress/sql-mm-general_expected,
+	  regress/sql-mm-multicurve.sql,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multisurface.sql,
+	  regress/sql-mm-multisurface_expected,
+	  regress/sql-mm-serialize.sql, regress/sql-mm-serialize_expected,
+	  regress/summary.sql, regress/summary_expected,
+	  regress/tickets.sql, regress/tickets_expected,
+	  regress/typmod.sql, regress/typmod_expected,
+	  regress/unaryunion.sql, regress/unaryunion_expected,
+	  regress/wkb.sql, regress/wkb_expected, regress/wkt.sql,
+	  regress/wkt_expected, regress/wmsservers.sql,
+	  regress/wmsservers_expected, spatial_ref_sys.sql,
+	  topology/ER/Makefile, topology/ER/topology.fig,
+	  topology/Makefile.in, topology/README, topology/TODO,
+	  topology/sql/gml.sql.in.c,
+	  topology/sql/manage/CopyTopology.sql.in.c,
+	  topology/sql/manage/ManageHelper.sql.in.c,
+	  topology/sql/manage/TopologySummary.sql.in.c,
+	  topology/sql/polygonize.sql.in.c, topology/sql/populate.sql.in.c,
+	  topology/sql/predicates.sql.in.c,
+	  topology/sql/query/GetNodeEdges.sql.in.c,
+	  topology/sql/query/GetRingEdges.sql.in.c,
+	  topology/sql/query/getedgebypoint.sql.in.c,
+	  topology/sql/query/getfacebypoint.sql.in.c,
+	  topology/sql/query/getnodebypoint.sql.in.c,
+	  topology/sql/sqlmm.sql.in.c,
+	  topology/sql/topoelement/topoelement_agg.sql.in.c,
+	  topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/sql/topogeometry/type.sql.in.c, topology/test/Makefile,
+	  topology/test/cache_geometries.sql,
+	  topology/test/edit_topology.sql, topology/test/hierarchy.sql,
+	  topology/test/invalid_topology.sql,
+	  topology/test/load_features.sql,
+	  topology/test/load_topology.sql.in,
+	  topology/test/more_features.sql, topology/test/predicates.sql.in,
+	  topology/test/query_features.sql,
+	  topology/test/regress/addedge.sql,
+	  topology/test/regress/addedge_expected,
+	  topology/test/regress/addface.sql,
+	  topology/test/regress/addface2.5d.sql,
+	  topology/test/regress/addface2.5d_expected,
+	  topology/test/regress/addface_expected,
+	  topology/test/regress/addnode.sql,
+	  topology/test/regress/addnode_expected,
+	  topology/test/regress/addtopogeometrycolumn.sql,
+	  topology/test/regress/addtopogeometrycolumn_expected,
+	  topology/test/regress/copytopology.sql,
+	  topology/test/regress/copytopology_expected,
+	  topology/test/regress/createtopogeom.sql,
+	  topology/test/regress/createtopogeom_expected,
+	  topology/test/regress/createtopology.sql,
+	  topology/test/regress/createtopology_expected,
+	  topology/test/regress/droptopology.sql,
+	  topology/test/regress/droptopology_expected,
+	  topology/test/regress/getedgebypoint.sql,
+	  topology/test/regress/getedgebypoint_expected,
+	  topology/test/regress/getfacebypoint.sql,
+	  topology/test/regress/getfacebypoint_expected,
+	  topology/test/regress/getnodebypoint.sql,
+	  topology/test/regress/getnodebypoint_expected,
+	  topology/test/regress/getnodeedges.sql,
+	  topology/test/regress/getnodeedges_expected,
+	  topology/test/regress/getringedges.sql,
+	  topology/test/regress/getringedges_expected,
+	  topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected,
+	  topology/test/regress/layertrigger.sql,
+	  topology/test/regress/layertrigger_expected,
+	  topology/test/regress/legacy_invalid.sql,
+	  topology/test/regress/legacy_invalid_expected,
+	  topology/test/regress/legacy_predicate.sql,
+	  topology/test/regress/legacy_predicate_expected,
+	  topology/test/regress/legacy_query.sql,
+	  topology/test/regress/legacy_query_expected,
+	  topology/test/regress/legacy_validate.sql,
+	  topology/test/regress/legacy_validate_expected,
+	  topology/test/regress/polygonize.sql,
+	  topology/test/regress/polygonize_expected,
+	  topology/test/regress/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected,
+	  topology/test/regress/st_addedgemodface.sql,
+	  topology/test/regress/st_addedgemodface_expected,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected,
+	  topology/test/regress/st_addisoedge.sql,
+	  topology/test/regress/st_addisoedge_expected,
+	  topology/test/regress/st_addisonode.sql,
+	  topology/test/regress/st_addisonode_expected,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected,
+	  topology/test/regress/st_createtopogeo.sql,
+	  topology/test/regress/st_createtopogeo_expected,
+	  topology/test/regress/st_getfaceedges.sql,
+	  topology/test/regress/st_getfaceedges_expected,
+	  topology/test/regress/st_getfacegeometry.sql,
+	  topology/test/regress/st_getfacegeometry_expected,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected,
+	  topology/test/regress/st_modedgesplit.sql,
+	  topology/test/regress/st_modedgesplit_expected,
+	  topology/test/regress/st_newedgeheal.sql,
+	  topology/test/regress/st_newedgeheal_expected,
+	  topology/test/regress/st_newedgessplit.sql,
+	  topology/test/regress/st_newedgessplit_expected,
+	  topology/test/regress/st_remedgemodface.sql,
+	  topology/test/regress/st_remedgemodface_expected,
+	  topology/test/regress/st_remedgenewface.sql,
+	  topology/test/regress/st_remedgenewface_expected,
+	  topology/test/regress/topo2.5d.sql,
+	  topology/test/regress/topo2.5d_expected,
+	  topology/test/regress/topoelement.sql,
+	  topology/test/regress/topoelement_expected,
+	  topology/test/regress/topoelementarray_agg.sql,
+	  topology/test/regress/topoelementarray_agg_expected,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected,
+	  topology/test/regress/topogeo_addpoint.sql,
+	  topology/test/regress/topogeo_addpoint_expected,
+	  topology/test/regress/topogeo_addpolygon.sql,
+	  topology/test/regress/topogeo_addpolygon_expected,
+	  topology/test/regress/topogeometry_type.sql,
+	  topology/test/regress/topogeometry_type_expected,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected,
+	  topology/test/validate_topology.sql, topology/topology.sql.in.c,
+	  topology/topology_drop_after.sql.in.c,
+	  topology/topology_drop_before.sql.in.c, utils/Makefile.in,
+	  utils/README, utils/create_undef.pl,
+	  utils/postgis_proc_upgrade.pl, utils/postgis_restore.pl.in,
+	  utils/profile_intersects.pl, utils/read_scripts_version.pl,
+	  utils/svn_repo_revision.pl, utils/test_estimation.pl,
+	  utils/test_geography_estimation.pl,
+	  utils/test_geography_joinestimation.pl,
+	  utils/test_joinestimation.pl: Try again with line endings, this
+	  time using eol-style instead of eol-type (#1605)
+
+2012-02-27 20:58  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r9323] COPYING, CREDITS, GNUmakefile.in, HOWTO_RELEASE,
+	  LICENSE.TXT, MIGRATION, Makefile, NEWS, README.postgis,
+	  README.raster, STYLE, TODO, Version.config, astyle.sh,
+	  autogen.sh, configure.ac, doc/Makefile.comments.in,
+	  doc/Makefile.in, doc/README, doc/ZMSgeoms.txt,
+	  doc/doxygen.cfg.in, doc/extras.xml, doc/extras_historytable.xml,
+	  doc/extras_tigergeocoder.xml, doc/extras_topology.xml,
+	  doc/faq.xml, doc/faq_raster.xml, doc/geography.txt,
+	  doc/html/image_src/Makefile.in, doc/html/image_src/de9im01.wkt,
+	  doc/html/image_src/de9im02.wkt, doc/html/image_src/de9im03.wkt,
+	  doc/html/image_src/de9im04.wkt, doc/html/image_src/de9im05.wkt,
+	  doc/html/image_src/de9im06.wkt, doc/html/image_src/de9im07.wkt,
+	  doc/html/image_src/de9im08.wkt, doc/html/image_src/de9im09.wkt,
+	  doc/html/image_src/de9im10.wkt, doc/html/image_src/de9im11.wkt,
+	  doc/html/image_src/de9im12.wkt, doc/html/image_src/de9im13.wkt,
+	  doc/html/image_src/generator.c,
+	  doc/html/image_src/st_azimuth01.wkt,
+	  doc/html/image_src/st_azimuth02.wkt,
+	  doc/html/image_src/st_azimuthmath.sql,
+	  doc/html/image_src/st_buffer01.wkt,
+	  doc/html/image_src/st_buffer02.wkt,
+	  doc/html/image_src/st_buffer03.wkt,
+	  doc/html/image_src/st_buffer04.wkt,
+	  doc/html/image_src/st_buffer05.wkt,
+	  doc/html/image_src/st_buffer06.wkt,
+	  doc/html/image_src/st_buffer07.wkt,
+	  doc/html/image_src/st_buffer08.wkt,
+	  doc/html/image_src/st_buildarea01.wkt,
+	  doc/html/image_src/st_buildarea02.wkt,
+	  doc/html/image_src/st_centroid01.wkt,
+	  doc/html/image_src/st_centroid02.wkt,
+	  doc/html/image_src/st_centroid03.wkt,
+	  doc/html/image_src/st_centroid04.wkt,
+	  doc/html/image_src/st_closestpoint01.wkt,
+	  doc/html/image_src/st_closestpoint02.wkt,
+	  doc/html/image_src/st_concavehull01.wkt,
+	  doc/html/image_src/st_concavehull02.wkt,
+	  doc/html/image_src/st_concavehull03.wkt,
+	  doc/html/image_src/st_concavehull04.wkt,
+	  doc/html/image_src/st_concavehull05.wkt,
+	  doc/html/image_src/st_concavehull06.wkt,
+	  doc/html/image_src/st_concavehull07.wkt,
+	  doc/html/image_src/st_concavehull08.wkt,
+	  doc/html/image_src/st_contains01.wkt,
+	  doc/html/image_src/st_contains02.wkt,
+	  doc/html/image_src/st_contains03.wkt,
+	  doc/html/image_src/st_contains04.wkt,
+	  doc/html/image_src/st_contains05.wkt,
+	  doc/html/image_src/st_contains06.wkt,
+	  doc/html/image_src/st_convexhull01.wkt,
+	  doc/html/image_src/st_crosses01.wkt,
+	  doc/html/image_src/st_crosses02.wkt,
+	  doc/html/image_src/st_crosses03.wkt,
+	  doc/html/image_src/st_crosses04.wkt,
+	  doc/html/image_src/st_difference01.wkt,
+	  doc/html/image_src/st_dumppoints01.wkt,
+	  doc/html/image_src/st_issimple01.wkt,
+	  doc/html/image_src/st_issimple02.wkt,
+	  doc/html/image_src/st_issimple03.wkt,
+	  doc/html/image_src/st_issimple04.wkt,
+	  doc/html/image_src/st_issimple05.wkt,
+	  doc/html/image_src/st_issimple06.wkt,
+	  doc/html/image_src/st_issimple07.wkt,
+	  doc/html/image_src/st_isvalid01.wkt,
+	  doc/html/image_src/st_isvalid02.wkt,
+	  doc/html/image_src/st_isvalid03.wkt,
+	  doc/html/image_src/st_isvalid04.wkt,
+	  doc/html/image_src/st_isvalid05.wkt,
+	  doc/html/image_src/st_isvalid06.wkt,
+	  doc/html/image_src/st_isvalid07.wkt,
+	  doc/html/image_src/st_isvalid08.wkt,
+	  doc/html/image_src/st_isvalid09.wkt,
+	  doc/html/image_src/st_line_interpolate_point01.wkt,
+	  doc/html/image_src/st_line_substring01.wkt,
+	  doc/html/image_src/st_linecrossingdirection01.wkt,
+	  doc/html/image_src/st_linecrossingdirection02.wkt,
+	  doc/html/image_src/st_linecrossingdirection03.wkt,
+	  doc/html/image_src/st_linecrossingdirection04.wkt,
+	  doc/html/image_src/st_longestline01.wkt,
+	  doc/html/image_src/st_longestline02.wkt,
+	  doc/html/image_src/st_longestline03.wkt,
+	  doc/html/image_src/st_minimumboundingcircle01.wkt,
+	  doc/html/image_src/st_offsetcurve01.wkt,
+	  doc/html/image_src/st_offsetcurve02.wkt,
+	  doc/html/image_src/st_offsetcurve03.wkt,
+	  doc/html/image_src/st_offsetcurve04.wkt,
+	  doc/html/image_src/st_offsetcurve05.wkt,
+	  doc/html/image_src/st_offsetcurve06.wkt,
+	  doc/html/image_src/st_overlaps01.wkt,
+	  doc/html/image_src/st_overlaps02.wkt,
+	  doc/html/image_src/st_overlaps03.wkt,
+	  doc/html/image_src/st_sharedpaths01.wkt,
+	  doc/html/image_src/st_sharedpaths02.wkt,
+	  doc/html/image_src/st_shortestline01.wkt,
+	  doc/html/image_src/st_shortestline02.wkt,
+	  doc/html/image_src/st_snap01.wkt,
+	  doc/html/image_src/st_snap02.wkt,
+	  doc/html/image_src/st_snap03.wkt,
+	  doc/html/image_src/st_snap04.wkt,
+	  doc/html/image_src/st_snap05.wkt,
+	  doc/html/image_src/st_split01.wkt,
+	  doc/html/image_src/st_split02.wkt,
+	  doc/html/image_src/st_split03.wkt,
+	  doc/html/image_src/st_split04.wkt,
+	  doc/html/image_src/st_symdifference01.wkt,
+	  doc/html/image_src/st_symdifference02.wkt,
+	  doc/html/image_src/st_touches01.wkt,
+	  doc/html/image_src/st_touches02.wkt,
+	  doc/html/image_src/st_touches03.wkt,
+	  doc/html/image_src/st_touches04.wkt,
+	  doc/html/image_src/st_touches05.wkt,
+	  doc/html/image_src/st_touches06.wkt,
+	  doc/html/image_src/st_within01.wkt, doc/html/image_src/styles.c,
+	  doc/html/image_src/styles.conf, doc/html/image_src/styles.h,
+	  doc/html/images/PostGIS_logo.png, doc/html/images/caution.png,
+	  doc/html/images/ccbysa.png, doc/html/images/check.png,
+	  doc/html/images/important.png,
+	  doc/html/images/matrix_autocast.png,
+	  doc/html/images/matrix_checkmark.png,
+	  doc/html/images/matrix_transform.png, doc/html/images/note.png,
+	  doc/html/images/osgeo_logo.png,
+	  doc/html/images/raster_xscale_yscale_xskew_yskew.png,
+	  doc/html/images/rt_st_transform01.png,
+	  doc/html/images/rt_st_transform02.png,
+	  doc/html/images/rt_st_transform03.png,
+	  doc/html/images/st_asraster01.png,
+	  doc/html/images/st_asraster02.png, doc/html/images/st_band01.png,
+	  doc/html/images/st_band02.png, doc/html/images/st_band03.png,
+	  doc/html/images/st_clip01.png, doc/html/images/st_clip02.png,
+	  doc/html/images/st_clip03.png,
+	  doc/html/images/st_crosses-math.gif,
+	  doc/html/images/st_mapalgebraexpr01.png,
+	  doc/html/images/st_mapalgebraexpr02.png,
+	  doc/html/images/st_mapalgebraexpr2_01.png,
+	  doc/html/images/st_mapalgebraexpr2_02.png,
+	  doc/html/images/st_mapalgebraexpr2_04.png,
+	  doc/html/images/st_mapalgebraexpr2_05.png,
+	  doc/html/images/st_mapalgebraexpr2_06.png,
+	  doc/html/images/st_mapalgebraexpr2_07.png,
+	  doc/html/images/st_mapalgebrafct2_01.png,
+	  doc/html/images/st_mapalgebrafct2_02.png,
+	  doc/html/images/st_mapalgebrafctngb01.png,
+	  doc/html/images/st_mapalgebrafctngb02.png,
+	  doc/html/images/st_resample01.png,
+	  doc/html/images/st_resample02.png,
+	  doc/html/images/st_rescale01.png,
+	  doc/html/images/st_rescale02.png,
+	  doc/html/images/st_touches-math.gif, doc/html/images/tip.png,
+	  doc/html/images/warning.png, doc/html/style.css,
+	  doc/installation.xml, doc/introduction.xml,
+	  doc/performance_tips.xml, doc/postgis.xml, doc/reference.xml,
+	  doc/reference_accessor.xml, doc/reference_constructor.xml,
+	  doc/reference_editor.xml, doc/reference_exception.xml,
+	  doc/reference_lrs.xml, doc/reference_management.xml,
+	  doc/reference_measure.xml, doc/reference_misc.xml,
+	  doc/reference_operator.xml, doc/reference_output.xml,
+	  doc/reference_processing.xml, doc/reference_raster.xml,
+	  doc/reference_transaction.xml, doc/reference_type.xml,
+	  doc/release_notes.xml, doc/reporting.xml,
+	  doc/rfc/postgis_rfc_02.txt, doc/rfc/postgis_rfc_03.txt,
+	  doc/rfc/postgis_rfc_03_sheet.txt, doc/rfc/postgis_rfc_04.txt,
+	  doc/template.xml, doc/using_postgis_app.xml,
+	  doc/using_postgis_dataman.xml, doc/using_raster_dataman.xml,
+	  doc/xmlformat.conf, extensions/Makefile.in, extensions/README,
+	  extensions/postgis/Makefile.in,
+	  extensions/postgis/postgis.control.in,
+	  extensions/postgis/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_extension_helper.sql,
+	  extensions/postgis_extension_helper_uninstall.sql,
+	  extensions/postgis_topology/Makefile.in,
+	  extensions/postgis_topology/postgis_topology.control.in,
+	  extensions/postgis_topology/sql_bits/remove_from_extension.sql.in,
+	  extras/WFS_locks/Makefile, extras/WFS_locks/README,
+	  extras/WFS_locks/WFS_locks.c, extras/WFS_locks/WFS_locks.sql.in,
+	  extras/WFS_locks/test.sql, extras/history_table/README,
+	  extras/history_table/history_table.sql,
+	  extras/ogc_test_suite/1_schema.sql,
+	  extras/ogc_test_suite/2_queries.sql,
+	  extras/ogc_test_suite/3_cleanup.sql,
+	  extras/ogc_test_suite/Makefile, extras/ogc_test_suite/README,
+	  extras/rpm/README, extras/rpm/patches/filter-requires-perl-Pg.sh,
+	  extras/template_gis/Makefile, extras/template_gis/README,
+	  extras/template_gis/createdb.postgis.in,
+	  extras/template_gis/mktemplate_gis.in,
+	  extras/template_gis/mktemplate_gis.sh.in,
+	  extras/template_gis/postgis_env.sh.in,
+	  extras/template_gis/postgres_lib.sh.in,
+	  extras/template_gis/rmtemplate_gis.in,
+	  extras/template_gis/rmtemplate_gis.sh.in,
+	  extras/tiger_geocoder/README,
+	  extras/tiger_geocoder/tiger_2006andbefore/README,
+	  extras/tiger_geocoder/tiger_2006andbefore/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_state.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_zip.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_get_point.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_zip.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/load_tiger.sh,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/newdb.sh,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/tigerimport.sh,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/tigerpoly2.py,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/count_words.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/end_soundex.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/get_last_words.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/state_extract.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/orig/tiger_geocoder.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables/lookup_tables.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables/roads_local.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables/tiger_geocode_roads.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/cull_null.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/levenshtein_ignore_case.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/nullable_levenshtein.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/utmzone.sql,
+	  extras/tiger_geocoder/tiger_2010/README,
+	  extras/tiger_geocoder/tiger_2010/census_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/census_tracts_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_intersection.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/legacy_import/tiger2008/import_tiger_shps.sh,
+	  extras/tiger_geocoder/tiger_2010/normalize/count_words.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/end_soundex.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/get_last_words.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/state_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/reverse_geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/topology/README,
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocoder.bat,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocoder.sh,
+	  extras/tiger_geocoder/tiger_2010/utility/cull_null.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/levenshtein_ignore_case.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/nullable_levenshtein.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/utmzone.sql,
+	  extras/wkb_reader/Makefile, extras/wkb_reader/README,
+	  extras/wkb_reader/printwkb.c, extras/wkb_reader/readwkb.c,
+	  extras/wkb_reader/wkbtest.h, install-sh, java/Makefile,
+	  java/ejb2/COPYING, java/ejb2/COPYING_LGPL, java/ejb2/README,
+	  java/ejb2/build.xml, java/ejb2/prepare-jboss.xml,
+	  java/ejb2/resources/application.xml,
+	  java/ejb2/resources/build.properties,
+	  java/ejb2/resources/jndi/jndi.properties,
+	  java/ejb2/resources/postgis-ejb2-ds.xml,
+	  java/ejb2/src/com/geodetix/geo/client/Client.java,
+	  java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAO.java,
+	  java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAOImpl.java,
+	  java/ejb2/src/com/geodetix/geo/ejb/GeometryBean.java,
+	  java/ejb2/src/com/geodetix/geo/ejb/GeometryFacadeBean.java,
+	  java/ejb2/src/com/geodetix/geo/exception/ApplicationGeoLayerException.java,
+	  java/ejb3/.settings/org.eclipse.jdt.core.prefs,
+	  java/ejb3/EJB3Spatial.odt, java/ejb3/README.txt,
+	  java/ejb3/build.xml, java/ejb3/ejb3spatial.pdf,
+	  java/ejb3/jboss/geodata-ds.xml,
+	  java/ejb3/jboss/ingest-service.xml,
+	  java/ejb3/src/META-INF/persistence.xml,
+	  java/ejb3/src/jndi.properties,
+	  java/ejb3/src/org/postgis/ejb/PersonEntity.java,
+	  java/ejb3/src/org/postgis/ejb/UserBean.java,
+	  java/ejb3/src/org/postgis/ejb/UserBeanRemote.java,
+	  java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java,
+	  java/ejb3/src/org/postgis/hibernate/ContainsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/GeometryType.java,
+	  java/ejb3/src/org/postgis/hibernate/IntersectsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/PostGISDialect.java,
+	  java/ejb3/src/org/postgis/hibernate/WithinExpression.java,
+	  java/jdbc/COPYING_LGPL, java/jdbc/Makefile.in, java/jdbc/README,
+	  java/jdbc/build.xml,
+	  java/jdbc/jtssrc/examples/JtsTestParser.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JTSShape.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsBinaryWriter.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsGisWrapper.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsWrapper.java,
+	  java/jdbc/jtssrc/pom.xml, java/jdbc/pom.xml,
+	  java/jdbc/src/examples/Test.java,
+	  java/jdbc/src/examples/TestAutoregister.java,
+	  java/jdbc/src/examples/TestBoxes.java,
+	  java/jdbc/src/examples/TestJava2d.java,
+	  java/jdbc/src/examples/TestParser.java,
+	  java/jdbc/src/examples/TestServer.java,
+	  java/jdbc/src/examples/VersionPrinter.java,
+	  java/jdbc/src/org/postgis/ComposedGeom.java,
+	  java/jdbc/src/org/postgis/DriverWrapper.java,
+	  java/jdbc/src/org/postgis/DriverWrapperAutoprobe.java,
+	  java/jdbc/src/org/postgis/DriverWrapperLW.java,
+	  java/jdbc/src/org/postgis/Geometry.java,
+	  java/jdbc/src/org/postgis/GeometryCollection.java,
+	  java/jdbc/src/org/postgis/LineString.java,
+	  java/jdbc/src/org/postgis/LinearRing.java,
+	  java/jdbc/src/org/postgis/MultiLineString.java,
+	  java/jdbc/src/org/postgis/MultiPoint.java,
+	  java/jdbc/src/org/postgis/MultiPolygon.java,
+	  java/jdbc/src/org/postgis/PGbox2d.java,
+	  java/jdbc/src/org/postgis/PGbox3d.java,
+	  java/jdbc/src/org/postgis/PGboxbase.java,
+	  java/jdbc/src/org/postgis/PGgeometry.java,
+	  java/jdbc/src/org/postgis/PGgeometryLW.java,
+	  java/jdbc/src/org/postgis/Point.java,
+	  java/jdbc/src/org/postgis/PointComposedGeom.java,
+	  java/jdbc/src/org/postgis/Polygon.java,
+	  java/jdbc/src/org/postgis/Version.java,
+	  java/jdbc/src/org/postgis/binary/BinaryParser.java,
+	  java/jdbc/src/org/postgis/binary/BinaryWriter.java,
+	  java/jdbc/src/org/postgis/binary/ByteGetter.java,
+	  java/jdbc/src/org/postgis/binary/ByteSetter.java,
+	  java/jdbc/src/org/postgis/binary/ValueGetter.java,
+	  java/jdbc/src/org/postgis/binary/ValueSetter.java,
+	  java/jdbc/src/org/postgis/java2d/Java2DWrapper.java,
+	  java/jdbc/src/org/postgis/java2d/PGShapeGeometry.java,
+	  java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java,
+	  java/jdbc/src/org/postgis/version.properties,
+	  java/jdbc/src/org/postgresql/driverconfig.properties,
+	  java/jdbc/stubs/LICENSE,
+	  java/jdbc/stubs/org/postgresql/Connection.java,
+	  java/jdbc/stubs/org/postgresql/PGConnection.java,
+	  java/jdbc/todo.txt, java/pljava/README.txt,
+	  java/pljava/build.xml, java/pljava/functions.sql,
+	  java/pljava/install.sh, java/pljava/postgis_pljava.jar,
+	  java/pljava/src/org/postgis/pljava/Aggregates.java,
+	  java/pljava/src/org/postgis/pljava/HelloWorld.java,
+	  java/pljava/src/org/postgis/pljava/PLJGeometry.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsParser.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsWriter.java,
+	  java/pljava/update.sh, liblwgeom/Makefile.in, liblwgeom/box2d.c,
+	  liblwgeom/cunit/Makefile.in, liblwgeom/cunit/README,
+	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/cunit/cu_geos.c,
+	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_in_wkt.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/cunit/cu_misc.c,
+	  liblwgeom/cunit/cu_node.c, liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_out_kml.c,
+	  liblwgeom/cunit/cu_out_svg.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/cunit/cu_split.c, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_surface.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/g_serialized.txt,
+	  liblwgeom/g_util.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/libtgeom.c,
+	  liblwgeom/libtgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwgeom_debug.c, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwgeom_geos.h, liblwgeom/lwgeom_geos_clean.c,
+	  liblwgeom/lwgeom_geos_node.c, liblwgeom/lwgeom_geos_split.c,
+	  liblwgeom/lwgeom_log.h, liblwgeom/lwgeom_transform.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_lex.c, liblwgeom/lwin_wkt_lex.l,
+	  liblwgeom/lwin_wkt_parse.c, liblwgeom/lwin_wkt_parse.h,
+	  liblwgeom/lwin_wkt_parse.y, liblwgeom/lwline.c,
+	  liblwgeom/lwlinearreferencing.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwout_geojson.c,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwout_kml.c,
+	  liblwgeom/lwout_svg.c, liblwgeom/lwout_wkb.c,
+	  liblwgeom/lwout_wkt.c, liblwgeom/lwout_x3d.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwprint.c,
+	  liblwgeom/lwpsurface.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwspheroid.c, liblwgeom/lwtin.c, liblwgeom/lwtree.c,
+	  liblwgeom/lwtree.h, liblwgeom/lwtriangle.c, liblwgeom/lwutil.c,
+	  liblwgeom/measures.c, liblwgeom/measures.h,
+	  liblwgeom/measures3d.c, liblwgeom/measures3d.h,
+	  liblwgeom/ptarray.c, liblwgeom/stringbuffer.c,
+	  liblwgeom/stringbuffer.h, liblwgeom/vsprintf.c,
+	  libpgcommon/Makefile.in, libpgcommon/common.h,
+	  libpgcommon/cunit/Makefile.in, libpgcommon/gserialized_gist.c,
+	  libpgcommon/gserialized_gist.h, libpgcommon/lwgeom_pg.c,
+	  libpgcommon/lwgeom_pg.h, libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h, libpgcommon/pgsql_compat.h,
+	  loader/Makefile.in, loader/README.i18n, loader/README.pgsql2shp,
+	  loader/README.shp2pgsql, loader/README.txt, loader/TODO,
+	  loader/cunit/Makefile.in, loader/cunit/cu_pgsql2shp.c,
+	  loader/cunit/cu_pgsql2shp.h, loader/cunit/cu_shp2pgsql.c,
+	  loader/cunit/cu_shp2pgsql.h, loader/cunit/cu_tester.c,
+	  loader/cunit/cu_tester.h, loader/cunit/map.txt, loader/dbfopen.c,
+	  loader/getopt.c, loader/getopt.h, loader/image/error.png,
+	  loader/image/good.png, loader/image/icon_source.svg,
+	  loader/image/warn.png, loader/pgsql2shp-cli.c,
+	  loader/pgsql2shp-core.c, loader/pgsql2shp-core.h,
+	  loader/safileio.c, loader/shapefil.h, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/shp2pgsql-gui.ico,
+	  loader/shpcommon.c, loader/shpcommon.h, loader/shpopen.c,
+	  macros/ac_proj4_version.m4, macros/codeset.m4, macros/gettext.m4,
+	  macros/gtk-2.0.m4, macros/iconv.m4, macros/intl.m4,
+	  macros/intldir.m4, macros/intlmacosx.m4, macros/intltool.m4,
+	  macros/lib-ld.m4, macros/lib-link.m4, macros/lib-prefix.m4,
+	  macros/nls.m4, macros/po.m4, macros/progtest.m4, make_dist.sh,
+	  postgis/Makefile.in, postgis/Makefile.pgxs, postgis/README,
+	  postgis/TODO, postgis/compat.h, postgis/geography.h,
+	  postgis/geography.sql.in.c, postgis/geography_btree.c,
+	  postgis/geography_estimate.c, postgis/geography_inout.c,
+	  postgis/geography_measurement.c, postgis/geometry_estimate.c,
+	  postgis/geometry_inout.c, postgis/gserialized_gist_2d.c,
+	  postgis/gserialized_gist_nd.c, postgis/gserialized_typmod.c,
+	  postgis/legacy.sql.in.c,
+	  postgis/legacy_compatibility_layer.sql.in.c, postgis/long_xact.c,
+	  postgis/long_xact.sql.in.c, postgis/lwgeom_accum.c,
+	  postgis/lwgeom_box.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_btree.c, postgis/lwgeom_cache.c,
+	  postgis/lwgeom_cache.h, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_export.h,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_analytic.h,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_prepared.h,
+	  postgis/lwgeom_geos_relatematch.c, postgis/lwgeom_in_geojson.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_rtree.h,
+	  postgis/lwgeom_spheroid.c, postgis/lwgeom_sqlmm.c,
+	  postgis/lwgeom_transform.c, postgis/lwgeom_triggers.c,
+	  postgis/postgis.sql.in.c, postgis/postgis_drop.sql.in.c,
+	  postgis/postgis_drop_before.sql.in.c, postgis/postgis_module.c,
+	  postgis/sqldefines.h.in, postgis/uninstall_geography.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c,
+	  postgis/uninstall_long_xact.sql.in.c,
+	  postgis/uninstall_sqlmm.sql.in.c, postgis_config.h.in,
+	  raster/CREDITS, raster/Makefile.in, raster/NEWS,
+	  raster/Version.config, raster/doc/doxygen.cfg.in,
+	  raster/install-sh, raster/loader/Makefile.in,
+	  raster/loader/raster2pgsql.c, raster/loader/raster2pgsql.h,
+	  raster/macros/ac_proj4_version.m4, raster/raster_config.h.in,
+	  raster/rt_core/Makefile.in, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/Makefile.pgxs, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rt_pg.h, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/rt_pg/rtpostgis_legacy.sql.in.c,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c,
+	  raster/scripts/Makefile.in,
+	  raster/scripts/plpgsql/_MapAlgebraParts.sql,
+	  raster/scripts/plpgsql/readme.txt,
+	  raster/scripts/plpgsql/st_addband.sql,
+	  raster/scripts/plpgsql/st_areaweightedsummarystats.sql,
+	  raster/scripts/plpgsql/st_asraster.sql,
+	  raster/scripts/plpgsql/st_clip.sql,
+	  raster/scripts/plpgsql/st_createindexraster.sql,
+	  raster/scripts/plpgsql/st_deleteband.sql,
+	  raster/scripts/plpgsql/st_geomextent2rastercoord.sql,
+	  raster/scripts/plpgsql/st_histogram.sql,
+	  raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_mapalgebra_optimized.sql,
+	  raster/scripts/plpgsql/st_mapalgebrafctngb.sql,
+	  raster/scripts/plpgsql/st_multibandmapalgebra.sql,
+	  raster/scripts/plpgsql/st_pixelaspoints.sql,
+	  raster/scripts/plpgsql/st_pixelaspolygons.sql,
+	  raster/scripts/plpgsql/st_querytables.sql,
+	  raster/scripts/plpgsql/st_reclass.sql,
+	  raster/scripts/plpgsql/st_setarray.sql,
+	  raster/scripts/plpgsql/st_setvalues.sql,
+	  raster/scripts/plpgsql/st_splittable.sql,
+	  raster/scripts/plpgsql/st_summarystatsagg.sql,
+	  raster/scripts/plpgsql/st_tile.sql,
+	  raster/scripts/plpgsql/st_union.sql,
+	  raster/scripts/python/Makefile.in,
+	  raster/scripts/python/Makefile.rt.sample,
+	  raster/scripts/python/genraster.py,
+	  raster/scripts/python/ovdump.py, raster/scripts/python/pixval.py,
+	  raster/scripts/python/raster2pgsql.py,
+	  raster/scripts/python/rtgdalraster.py,
+	  raster/scripts/python/rtpixdump.py,
+	  raster/scripts/python/rtreader.py,
+	  raster/scripts/python/rtrowdump.py,
+	  raster/scripts/python/window.py, raster/test/Makefile.in,
+	  raster/test/core/Makefile.in, raster/test/core/check.h,
+	  raster/test/core/testapi.c, raster/test/core/testwkb.c,
+	  raster/test/regress/Makefile.in, raster/test/regress/README,
+	  raster/test/regress/box3d.sql,
+	  raster/test/regress/box3d_expected,
+	  raster/test/regress/bug_test_car5.sql,
+	  raster/test/regress/bug_test_car5_expected,
+	  raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_columns_expected,
+	  raster/test/regress/check_raster_overviews.sql,
+	  raster/test/regress/check_raster_overviews_expected,
+	  raster/test/regress/create_rt_band_properties_test.sql,
+	  raster/test/regress/create_rt_band_properties_test_expected,
+	  raster/test/regress/create_rt_empty_raster_test.sql,
+	  raster/test/regress/create_rt_empty_raster_test_expected,
+	  raster/test/regress/create_rt_gist_test.sql,
+	  raster/test/regress/create_rt_gist_test_expected,
+	  raster/test/regress/create_rt_mapalgebra_test.sql,
+	  raster/test/regress/create_rt_mapalgebra_test_expected,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test_expected,
+	  raster/test/regress/create_rt_properties_test.sql,
+	  raster/test/regress/create_rt_properties_test_expected,
+	  raster/test/regress/create_rt_utility_test.sql,
+	  raster/test/regress/drop_rt_band_properties_test.sql,
+	  raster/test/regress/drop_rt_band_properties_test_expected,
+	  raster/test/regress/drop_rt_empty_raster_test.sql,
+	  raster/test/regress/drop_rt_empty_raster_test_expected,
+	  raster/test/regress/drop_rt_gist_test.sql,
+	  raster/test/regress/drop_rt_gist_test_expected,
+	  raster/test/regress/drop_rt_mapalgebra_test.sql,
+	  raster/test/regress/drop_rt_mapalgebra_test_expected,
+	  raster/test/regress/drop_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/drop_rt_mapalgebrafctngb_test_expected,
+	  raster/test/regress/drop_rt_properties_test.sql,
+	  raster/test/regress/drop_rt_properties_test_expected,
+	  raster/test/regress/loader/Basic-post.sh,
+	  raster/test/regress/loader/Basic-pre.sh,
+	  raster/test/regress/loader/Basic.select.sql,
+	  raster/test/regress/loader/BasicCopy-post.sh,
+	  raster/test/regress/loader/BasicCopy-pre.sh,
+	  raster/test/regress/loader/BasicCopy.select.sql,
+	  raster/test/regress/loader/Tiled10x10-post.sh,
+	  raster/test/regress/loader/Tiled10x10-pre.sh,
+	  raster/test/regress/loader/Tiled10x10.select.sql,
+	  raster/test/regress/loader/Tiled10x10Copy-post.sh,
+	  raster/test/regress/loader/Tiled10x10Copy-pre.sh,
+	  raster/test/regress/loader/Tiled10x10Copy.select.sql,
+	  raster/test/regress/loader/testraster.tif,
+	  raster/test/regress/rt_above.sql,
+	  raster/test/regress/rt_above_expected,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_addband_expected,
+	  raster/test/regress/rt_asgdalraster.sql,
+	  raster/test/regress/rt_asgdalraster_expected,
+	  raster/test/regress/rt_asjpeg.sql,
+	  raster/test/regress/rt_asjpeg_expected,
+	  raster/test/regress/rt_aspng.sql,
+	  raster/test/regress/rt_aspng_expected,
+	  raster/test/regress/rt_asraster.sql,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_astiff.sql,
+	  raster/test/regress/rt_astiff_expected,
+	  raster/test/regress/rt_band.sql,
+	  raster/test/regress/rt_band_expected,
+	  raster/test/regress/rt_band_properties.sql,
+	  raster/test/regress/rt_band_properties_expected,
+	  raster/test/regress/rt_bandmetadata.sql,
+	  raster/test/regress/rt_bandmetadata_expected,
+	  raster/test/regress/rt_below.sql,
+	  raster/test/regress/rt_below_expected,
+	  raster/test/regress/rt_bytea.sql,
+	  raster/test/regress/rt_bytea_expected,
+	  raster/test/regress/rt_clip.sql,
+	  raster/test/regress/rt_clip_expected,
+	  raster/test/regress/rt_contain.sql,
+	  raster/test/regress/rt_contain_expected,
+	  raster/test/regress/rt_contained.sql,
+	  raster/test/regress/rt_contained_expected,
+	  raster/test/regress/rt_count.sql,
+	  raster/test/regress/rt_count_expected,
+	  raster/test/regress/rt_dimensions.sql,
+	  raster/test/regress/rt_dimensions_expected,
+	  raster/test/regress/rt_georeference.sql,
+	  raster/test/regress/rt_georeference_expected,
+	  raster/test/regress/rt_hasnoband.sql,
+	  raster/test/regress/rt_hasnoband_expected,
+	  raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_histogram_expected,
+	  raster/test/regress/rt_intersection.sql,
+	  raster/test/regress/rt_intersection_expected,
+	  raster/test/regress/rt_intersects.sql,
+	  raster/test/regress/rt_intersects_expected,
+	  raster/test/regress/rt_io.sql,
+	  raster/test/regress/rt_io_expected,
+	  raster/test/regress/rt_isempty.sql,
+	  raster/test/regress/rt_isempty_expected,
+	  raster/test/regress/rt_left.sql,
+	  raster/test/regress/rt_left_expected,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster_expected,
+	  raster/test/regress/rt_mapalgebraexpr_expected,
+	  raster/test/regress/rt_mapalgebrafct.sql,
+	  raster/test/regress/rt_mapalgebrafct_2raster.sql,
+	  raster/test/regress/rt_mapalgebrafct_2raster_expected,
+	  raster/test/regress/rt_mapalgebrafct_expected,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_expected,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc_expected,
+	  raster/test/regress/rt_metadata.sql,
+	  raster/test/regress/rt_metadata_expected,
+	  raster/test/regress/rt_overabove.sql,
+	  raster/test/regress/rt_overabove_expected,
+	  raster/test/regress/rt_overbelow.sql,
+	  raster/test/regress/rt_overbelow_expected,
+	  raster/test/regress/rt_overlap.sql,
+	  raster/test/regress/rt_overlap_expected,
+	  raster/test/regress/rt_overleft.sql,
+	  raster/test/regress/rt_overleft_expected,
+	  raster/test/regress/rt_overright.sql,
+	  raster/test/regress/rt_overright_expected,
+	  raster/test/regress/rt_pixelsize.sql,
+	  raster/test/regress/rt_pixelsize_expected,
+	  raster/test/regress/rt_pixelvalue.sql,
+	  raster/test/regress/rt_pixelvalue_expected,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_quantile_expected,
+	  raster/test/regress/rt_reclass.sql,
+	  raster/test/regress/rt_reclass_expected,
+	  raster/test/regress/rt_resample.sql,
+	  raster/test/regress/rt_resample_expected,
+	  raster/test/regress/rt_right.sql,
+	  raster/test/regress/rt_right_expected,
+	  raster/test/regress/rt_rotation.sql,
+	  raster/test/regress/rt_rotation_expected,
+	  raster/test/regress/rt_same.sql,
+	  raster/test/regress/rt_same_expected,
+	  raster/test/regress/rt_samealignment.sql,
+	  raster/test/regress/rt_samealignment_expected,
+	  raster/test/regress/rt_scale.sql,
+	  raster/test/regress/rt_scale_expected,
+	  raster/test/regress/rt_set_band_properties.sql,
+	  raster/test/regress/rt_set_band_properties_expected,
+	  raster/test/regress/rt_set_properties.sql,
+	  raster/test/regress/rt_set_properties_expected,
+	  raster/test/regress/rt_spatial_relationship.sql,
+	  raster/test/regress/rt_spatial_relationship_expected,
+	  raster/test/regress/rt_summarystats.sql,
+	  raster/test/regress/rt_summarystats_expected,
+	  raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected,
+	  raster/test/regress/rt_upperleft.sql,
+	  raster/test/regress/rt_upperleft_expected,
+	  raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected,
+	  raster/test/regress/rt_valuecount.sql,
+	  raster/test/regress/rt_valuecount_expected,
+	  raster/test/regress/rt_valuepercent.sql,
+	  raster/test/regress/rt_valuepercent_expected,
+	  raster/test/regress/run_test.in,
+	  raster/test/regress/testgdalraster.in,
+	  raster/test/regress/testgdalraster_expected,
+	  raster/test/regress/tickets.sql,
+	  raster/test/regress/tickets_expected, regress/Makefile.in,
+	  regress/README, regress/affine.sql, regress/affine_expected,
+	  regress/bestsrid.sql, regress/bestsrid_expected,
+	  regress/binary.sql, regress/binary_expected, regress/clean.sql,
+	  regress/clean_expected, regress/concave_hull.sql,
+	  regress/concave_hull_expected, regress/ctors.sql,
+	  regress/ctors_expected, regress/dump.sql, regress/dump_expected,
+	  regress/dumppoints.sql, regress/dumppoints_expected,
+	  regress/empty.sql, regress/empty_expected, regress/hausdorff.sql,
+	  regress/hausdorff_expected, regress/in_geojson.sql,
+	  regress/in_geojson_expected, regress/in_gml.sql,
+	  regress/in_gml_expected, regress/in_kml.sql,
+	  regress/in_kml_expected, regress/iscollection.sql,
+	  regress/iscollection_expected, regress/isvaliddetail.sql,
+	  regress/isvaliddetail_expected, regress/legacy_expected,
+	  regress/loader/Arc.dbf, regress/loader/Arc.select.sql,
+	  regress/loader/Arc.shp, regress/loader/ArcM.dbf,
+	  regress/loader/ArcM.select.sql, regress/loader/ArcM.shp,
+	  regress/loader/ArcZ.dbf, regress/loader/ArcZ.select.sql,
+	  regress/loader/ArcZ.shp, regress/loader/Latin1.dbf,
+	  regress/loader/Latin1.select.sql, regress/loader/MultiPoint.dbf,
+	  regress/loader/MultiPoint.select.sql,
+	  regress/loader/MultiPoint.shp, regress/loader/MultiPointM.dbf,
+	  regress/loader/MultiPointM.select.sql,
+	  regress/loader/MultiPointM.shp, regress/loader/MultiPointZ.dbf,
+	  regress/loader/MultiPointZ.select.sql,
+	  regress/loader/MultiPointZ.shp,
+	  regress/loader/MultiToSinglePoint.dbf,
+	  regress/loader/MultiToSinglePoint.select.sql,
+	  regress/loader/NoTransPoint.dbf,
+	  regress/loader/NoTransPoint.select.sql,
+	  regress/loader/NotReallyMultiPoint.dbf,
+	  regress/loader/NotReallyMultiPoint.select.sql,
+	  regress/loader/Point.dbf, regress/loader/Point.select.sql,
+	  regress/loader/Point.shp, regress/loader/PointM.dbf,
+	  regress/loader/PointM.select.sql, regress/loader/PointM.shp,
+	  regress/loader/PointWithSchema-post.sql,
+	  regress/loader/PointWithSchema-pre.sql,
+	  regress/loader/PointWithSchema.dbf,
+	  regress/loader/PointWithSchema.select.sql,
+	  regress/loader/PointZ.dbf, regress/loader/PointZ.select.sql,
+	  regress/loader/PointZ.shp, regress/loader/Polygon.dbf,
+	  regress/loader/Polygon.select.sql, regress/loader/Polygon.shp,
+	  regress/loader/PolygonM.dbf, regress/loader/PolygonM.select.sql,
+	  regress/loader/PolygonM.shp, regress/loader/PolygonZ.dbf,
+	  regress/loader/PolygonZ.select.sql, regress/loader/PolygonZ.shp,
+	  regress/loader/README, regress/loader/ReprojectPts-pre.sql,
+	  regress/loader/ReprojectPts.dbf,
+	  regress/loader/ReprojectPts.select.sql,
+	  regress/loader/ReprojectPtsGeog-pre.sql,
+	  regress/loader/ReprojectPtsGeog.dbf,
+	  regress/loader/ReprojectPtsGeog.select.sql,
+	  regress/loader/TSIPolygon.dbf,
+	  regress/loader/TSIPolygon.select.sql,
+	  regress/loader/TSTIPolygon.dbf,
+	  regress/loader/TSTIPolygon.select.sql,
+	  regress/loader/TSTPolygon.dbf,
+	  regress/loader/TSTPolygon.select.sql, regress/long_xact.sql,
+	  regress/long_xact_expected, regress/lwgeom_regress.sql,
+	  regress/lwgeom_regress_expected, regress/measures.sql,
+	  regress/measures_expected, regress/node.sql,
+	  regress/node_expected, regress/offsetcurve.sql,
+	  regress/offsetcurve_expected, regress/out_geography.sql,
+	  regress/out_geography_expected, regress/out_geometry.sql,
+	  regress/out_geometry_expected, regress/polygonize.sql,
+	  regress/polygonize_expected, regress/polyhedralsurface.sql,
+	  regress/polyhedralsurface_expected,
+	  regress/postgis_type_name.sql,
+	  regress/postgis_type_name_expected, regress/regress.sql,
+	  regress/regress_bdpoly.sql, regress/regress_bdpoly_expected,
+	  regress/regress_biginsert.sql, regress/regress_buffer_params.sql,
+	  regress/regress_buffer_params_expected, regress/regress_expected,
+	  regress/regress_index.sql, regress/regress_index_expected,
+	  regress/regress_index_nulls.sql,
+	  regress/regress_index_nulls_expected,
+	  regress/regress_lots_of_nulls.sql,
+	  regress/regress_lots_of_points.sql, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected, regress/regress_management.sql,
+	  regress/regress_management_expected, regress/regress_ogc.sql,
+	  regress/regress_ogc_cover.sql,
+	  regress/regress_ogc_cover_expected, regress/regress_ogc_expected,
+	  regress/regress_ogc_prep.sql, regress/regress_ogc_prep_expected,
+	  regress/regress_proj.sql, regress/regress_proj_expected,
+	  regress/relate.sql, regress/relate_bnr.sql,
+	  regress/relate_bnr_expected, regress/relate_expected,
+	  regress/relatematch.sql, regress/relatematch_expected,
+	  regress/remove_repeated_points.sql,
+	  regress/remove_repeated_points_expected, regress/removepoint.sql,
+	  regress/removepoint_expected, regress/setpoint.sql,
+	  regress/setpoint_expected, regress/sharedpaths.sql,
+	  regress/sharedpaths_expected, regress/simplify.sql,
+	  regress/simplify_expected, regress/snap.sql,
+	  regress/snap_expected, regress/snaptogrid.sql,
+	  regress/snaptogrid_expected, regress/split.sql,
+	  regress/split_expected, regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-general.sql, regress/sql-mm-general_expected,
+	  regress/sql-mm-multicurve.sql,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multisurface.sql,
+	  regress/sql-mm-multisurface_expected,
+	  regress/sql-mm-serialize.sql, regress/sql-mm-serialize_expected,
+	  regress/summary.sql, regress/summary_expected,
+	  regress/tickets.sql, regress/tickets_expected,
+	  regress/typmod.sql, regress/typmod_expected,
+	  regress/unaryunion.sql, regress/unaryunion_expected,
+	  regress/wkb.sql, regress/wkb_expected, regress/wkt.sql,
+	  regress/wkt_expected, regress/wmsservers.sql,
+	  regress/wmsservers_expected, spatial_ref_sys.sql,
+	  topology/ER/Makefile, topology/ER/topology.fig,
+	  topology/Makefile.in, topology/README, topology/TODO,
+	  topology/sql/gml.sql.in.c,
+	  topology/sql/manage/CopyTopology.sql.in.c,
+	  topology/sql/manage/ManageHelper.sql.in.c,
+	  topology/sql/manage/TopologySummary.sql.in.c,
+	  topology/sql/polygonize.sql.in.c, topology/sql/populate.sql.in.c,
+	  topology/sql/predicates.sql.in.c,
+	  topology/sql/query/GetNodeEdges.sql.in.c,
+	  topology/sql/query/GetRingEdges.sql.in.c,
+	  topology/sql/query/getedgebypoint.sql.in.c,
+	  topology/sql/query/getfacebypoint.sql.in.c,
+	  topology/sql/query/getnodebypoint.sql.in.c,
+	  topology/sql/sqlmm.sql.in.c,
+	  topology/sql/topoelement/topoelement_agg.sql.in.c,
+	  topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/sql/topogeometry/type.sql.in.c, topology/test/Makefile,
+	  topology/test/cache_geometries.sql,
+	  topology/test/edit_topology.sql, topology/test/hierarchy.sql,
+	  topology/test/invalid_topology.sql,
+	  topology/test/load_features.sql,
+	  topology/test/load_topology.sql.in,
+	  topology/test/more_features.sql, topology/test/predicates.sql.in,
+	  topology/test/query_features.sql,
+	  topology/test/regress/addedge.sql,
+	  topology/test/regress/addedge_expected,
+	  topology/test/regress/addface.sql,
+	  topology/test/regress/addface2.5d.sql,
+	  topology/test/regress/addface2.5d_expected,
+	  topology/test/regress/addface_expected,
+	  topology/test/regress/addnode.sql,
+	  topology/test/regress/addnode_expected,
+	  topology/test/regress/addtopogeometrycolumn.sql,
+	  topology/test/regress/addtopogeometrycolumn_expected,
+	  topology/test/regress/copytopology.sql,
+	  topology/test/regress/copytopology_expected,
+	  topology/test/regress/createtopogeom.sql,
+	  topology/test/regress/createtopogeom_expected,
+	  topology/test/regress/createtopology.sql,
+	  topology/test/regress/createtopology_expected,
+	  topology/test/regress/droptopology.sql,
+	  topology/test/regress/droptopology_expected,
+	  topology/test/regress/getedgebypoint.sql,
+	  topology/test/regress/getedgebypoint_expected,
+	  topology/test/regress/getfacebypoint.sql,
+	  topology/test/regress/getfacebypoint_expected,
+	  topology/test/regress/getnodebypoint.sql,
+	  topology/test/regress/getnodebypoint_expected,
+	  topology/test/regress/getnodeedges.sql,
+	  topology/test/regress/getnodeedges_expected,
+	  topology/test/regress/getringedges.sql,
+	  topology/test/regress/getringedges_expected,
+	  topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected,
+	  topology/test/regress/layertrigger.sql,
+	  topology/test/regress/layertrigger_expected,
+	  topology/test/regress/legacy_invalid.sql,
+	  topology/test/regress/legacy_invalid_expected,
+	  topology/test/regress/legacy_predicate.sql,
+	  topology/test/regress/legacy_predicate_expected,
+	  topology/test/regress/legacy_query.sql,
+	  topology/test/regress/legacy_query_expected,
+	  topology/test/regress/legacy_validate.sql,
+	  topology/test/regress/legacy_validate_expected,
+	  topology/test/regress/polygonize.sql,
+	  topology/test/regress/polygonize_expected,
+	  topology/test/regress/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected,
+	  topology/test/regress/st_addedgemodface.sql,
+	  topology/test/regress/st_addedgemodface_expected,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected,
+	  topology/test/regress/st_addisoedge.sql,
+	  topology/test/regress/st_addisoedge_expected,
+	  topology/test/regress/st_addisonode.sql,
+	  topology/test/regress/st_addisonode_expected,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected,
+	  topology/test/regress/st_createtopogeo.sql,
+	  topology/test/regress/st_createtopogeo_expected,
+	  topology/test/regress/st_getfaceedges.sql,
+	  topology/test/regress/st_getfaceedges_expected,
+	  topology/test/regress/st_getfacegeometry.sql,
+	  topology/test/regress/st_getfacegeometry_expected,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected,
+	  topology/test/regress/st_modedgesplit.sql,
+	  topology/test/regress/st_modedgesplit_expected,
+	  topology/test/regress/st_newedgeheal.sql,
+	  topology/test/regress/st_newedgeheal_expected,
+	  topology/test/regress/st_newedgessplit.sql,
+	  topology/test/regress/st_newedgessplit_expected,
+	  topology/test/regress/st_remedgemodface.sql,
+	  topology/test/regress/st_remedgemodface_expected,
+	  topology/test/regress/st_remedgenewface.sql,
+	  topology/test/regress/st_remedgenewface_expected,
+	  topology/test/regress/topo2.5d.sql,
+	  topology/test/regress/topo2.5d_expected,
+	  topology/test/regress/topoelement.sql,
+	  topology/test/regress/topoelement_expected,
+	  topology/test/regress/topoelementarray_agg.sql,
+	  topology/test/regress/topoelementarray_agg_expected,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected,
+	  topology/test/regress/topogeo_addpoint.sql,
+	  topology/test/regress/topogeo_addpoint_expected,
+	  topology/test/regress/topogeo_addpolygon.sql,
+	  topology/test/regress/topogeo_addpolygon_expected,
+	  topology/test/regress/topogeometry_type.sql,
+	  topology/test/regress/topogeometry_type_expected,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected,
+	  topology/test/validate_topology.sql, topology/topology.sql.in.c,
+	  topology/topology_drop_after.sql.in.c,
+	  topology/topology_drop_before.sql.in.c, utils/Makefile.in,
+	  utils/README, utils/create_undef.pl,
+	  utils/postgis_proc_upgrade.pl, utils/postgis_restore.pl.in,
+	  utils/profile_intersects.pl, utils/read_scripts_version.pl,
+	  utils/svn_repo_revision.pl, utils/test_estimation.pl,
+	  utils/test_geography_estimation.pl,
+	  utils/test_geography_joinestimation.pl,
+	  utils/test_joinestimation.pl: Set appropriate mime types and text
+	  file types on all files. (#1605)
 
-2012-02-27 18:19  pramsey
+2012-02-27 18:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Load the "right" legacy.sql file (warning: hard coding
-	  00-regress-install into a sql file).
+	* [r9322] regress/legacy.sql: Load the "right" legacy.sql file
+	  (warning: hard coding 00-regress-install into a sql file).
 
-2012-02-27 18:13  pramsey
+2012-02-27 18:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Quiet compile warning.
+	* [r9321] liblwgeom/cunit/cu_split.c: Quiet compile warning.
 
-2012-02-27 18:07  strk
+2012-02-27 18:07  Sandro Santilli <strk at keybit.net>
 
-	* Use rounder numbers in tests (fixes a regression on 32bit system)
+	* [r9320] regress/tickets.sql, regress/tickets_expected: Use
+	  rounder numbers in tests (fixes a regression on 32bit system)
 
-2012-02-27 17:48  pramsey
+2012-02-27 17:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore LF/CRLF differences when differencing sql output files in
-	  raster tests.
+	* [r9319] regress/run_test: Ignore LF/CRLF differences when
+	  differencing sql output files in raster tests.
 
-2012-02-27 17:36  strk
+2012-02-27 17:36  Sandro Santilli <strk at keybit.net>
 
-	* Add regression test for legacy.sql and uninstall_legacy.sql
-	  (#915)
+	* [r9318] regress/Makefile.in, regress/legacy.sql,
+	  regress/legacy_expected: Add regression test for legacy.sql and
+	  uninstall_legacy.sql (#915)
 
-2012-02-27 17:36  strk
+2012-02-27 17:36  Sandro Santilli <strk at keybit.net>
 
-	* Properly cleanup spatial_ref_sys after loader tests
+	* [r9317] regress/loader/ReprojectPts-post.sql,
+	  regress/loader/ReprojectPts-pre.sql,
+	  regress/loader/ReprojectPtsGeog-post.sql,
+	  regress/loader/ReprojectPtsGeog-pre.sql: Properly cleanup
+	  spatial_ref_sys after loader tests
 
-2012-02-27 17:36  strk
+2012-02-27 17:36  Sandro Santilli <strk at keybit.net>
 
-	* Properly cleanup spatial_ref_sys
+	* [r9316] regress/regress_proj.sql: Properly cleanup
+	  spatial_ref_sys
 
-2012-02-27 16:55  strk
+2012-02-27 16:55  Sandro Santilli <strk at keybit.net>
 
-	* Define the legacy 'within' as a proxy to ST_Within as the C entry
-	  point was dropped
+	* [r9315] postgis/legacy.sql.in.c: Define the legacy 'within' as a
+	  proxy to ST_Within as the C entry point was dropped
 
-2012-02-27 16:52  strk
+2012-02-27 16:52  Sandro Santilli <strk at keybit.net>
 
-	* Generate uninstall_legacy.sql from legacy.sql (#949)
+	* [r9314] postgis/Makefile.in, postgis/uninstall_legacy.sql.in.c:
+	  Generate uninstall_legacy.sql from legacy.sql (#949)
 
-2012-02-27 16:42  dustymugs
+2012-02-27 16:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Correct handling of 8BSI pixel types when converting a raster to
+	* [r9313] raster/rt_core/rt_api.c, raster/test/core/testapi.c:
+	  Correct handling of 8BSI pixel types when converting a raster to
 	  a GDAL MEM dataset. This should resolve the failures in #1617.
 
-2012-02-27 16:26  strk
+2012-02-27 16:26  Sandro Santilli <strk at keybit.net>
 
-	* Fix "make clean" to drop all generated files
+	* [r9312] topology/Makefile.in: Fix "make clean" to drop all
+	  generated files
 
-2012-02-27 16:06  strk
+2012-02-27 16:06  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of topology script on sqldefines (for version)
+	* [r9311] topology/Makefile.in: Encode dependency of topology
+	  script on sqldefines (for version)
 
-2012-02-27 15:55  strk
+2012-02-27 15:55  Sandro Santilli <strk at keybit.net>
 
-	* Have postgis_full_version() check versions of all objects (#1608)
+	* [r9310] postgis/postgis.sql.in.c: Have postgis_full_version()
+	  check versions of all objects (#1608)
 
-2012-02-27 15:39  strk
+2012-02-27 15:39  Sandro Santilli <strk at keybit.net>
 
-	* Have postgis_raster_lib_version() include SVN revision (#1608)
+	* [r9309] raster/rt_pg/rt_pg.c: Have postgis_raster_lib_version()
+	  include SVN revision (#1608)
 
-2012-02-27 15:26  strk
+2012-02-27 15:26  Sandro Santilli <strk at keybit.net>
 
-	* st_clip signature changed (#1620)
+	* [r9308] raster/rt_pg/rtpostgis_drop.sql.in.c: st_clip signature
+	  changed (#1620)
 
-2012-02-27 15:03  strk
+2012-02-27 15:03  Sandro Santilli <strk at keybit.net>
 
-	* Add postgis_raster_scripts_installed() function (#1608)
+	* [r9307] raster/rt_pg/rtpostgis.sql.in.c: Add
+	  postgis_raster_scripts_installed() function (#1608)
 
-2012-02-27 15:02  strk
+2012-02-27 15:02  Sandro Santilli <strk at keybit.net>
 
-	* Add postgis_topology_scripts_installed() function (#1608)
+	* [r9306] topology/topology.sql.in.c: Add
+	  postgis_topology_scripts_installed() function (#1608)
 
-2012-02-27 14:08  robe
+2012-02-27 14:08  Regina Obe <lr at pcorp.us>
 
-	* update to March. Seems likely we'll miss the February boat. Maybe
-	  shoot for March.
+	* [r9305] NEWS, doc/release_notes.xml: update to March. Seems
+	  likely we'll miss the February boat. Maybe shoot for March.
 
-2012-02-27 11:22  strk
+2012-02-27 11:22  Sandro Santilli <strk at keybit.net>
 
-	* Set script version to master version + svn revision (#1608)
+	* [r9304] configure.ac, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c, postgis/sqldefines.h.in: Set script
+	  version to master version + svn revision (#1608)
 	  
 	  Affects postgis_scripts_released() and
 	  posgis_scripts_installed().
 	  Needs some wider testing of upgrade scripts and then will attach
 	  the same version to raster and topology.
 
-2012-02-26 18:31  dustymugs
+2012-02-26 18:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional test of rt_raster_to_gdal().
+	* [r9303] raster/test/core/testapi.c: Additional test of
+	  rt_raster_to_gdal().
 
-2012-02-25 20:35  pramsey
+2012-02-25 20:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor update to comments.
+	* [r9302] loader/shp2pgsql-cli.c: Minor update to comments.
 
-2012-02-25 20:30  pramsey
+2012-02-25 20:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Simplify table/schema copying, hopefully fix windows.
+	* [r9301] loader/shp2pgsql-cli.c: Simplify table/schema copying,
+	  hopefully fix windows.
 
-2012-02-25 19:46  pramsey
+2012-02-25 19:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Compress sed calls into one to make life better for MSYS
+	* [r9300] raster/test/regress/run_test.in, regress/run_test:
+	  Compress sed calls into one to make life better for MSYS
 
-2012-02-25 17:10  pramsey
+2012-02-25 17:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Correct fix for win32 crasher, it was proj returning a null error
+	* [r9299] libpgcommon/lwgeom_transform.c, regress/tickets_expected:
+	  Correct fix for win32 crasher, it was proj returning a null error
 	  string.
 
-2012-02-25 05:53  pramsey
+2012-02-25 05:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* SPI_finish before dropping out on NULL proj4text
+	* [r9298] libpgcommon/lwgeom_transform.c: SPI_finish before
+	  dropping out on NULL proj4text
 
-2012-02-25 05:49  pramsey
+2012-02-25 05:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Match to new behavior on null proj4text
+	* [r9297] regress/tickets_expected: Match to new behavior on null
+	  proj4text
 
-2012-02-25 03:12  pramsey
+2012-02-25 03:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove Win32 crasher on NULL proj4 string
+	* [r9296] libpgcommon/lwgeom_transform.c: Remove Win32 crasher on
+	  NULL proj4 string
 
-2012-02-24 23:58  pramsey
+2012-02-24 23:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Quote out the svn and git commands for windoze
+	* [r9295] utils/svn_repo_revision.pl: Quote out the svn and git
+	  commands for windoze
 
-2012-02-24 23:42  dustymugs
+2012-02-24 23:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Forgot to update regression tests for changes made in r9293
+	* [r9294] raster/test/regress/rt_asraster_expected: Forgot to
+	  update regression tests for changes made in r9293
 
-2012-02-24 22:54  dustymugs
+2012-02-24 22:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed conversion of pixel types between PostGIS raster and GDAL.
-	  Essentially PostGIS raster 8BSI is now a GDT_Int16.
+	* [r9293] raster/rt_core/rt_api.c: Fixed conversion of pixel types
+	  between PostGIS raster and GDAL. Essentially PostGIS raster 8BSI
+	  is now a GDT_Int16.
 
-2012-02-24 22:46  pracine
+2012-02-24 22:46  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Minor corrections.
+	* [r9292] doc/reference_raster.xml: Minor corrections.
 
-2012-02-24 22:41  pramsey
+2012-02-24 22:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix up the revision info in the usage lines
+	* [r9291] loader/pgsql2shp-cli.c, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-gui.c: Fix up the revision info in the usage
+	  lines
 
-2012-02-24 20:17  strk
+2012-02-24 20:17  Sandro Santilli <strk at keybit.net>
 
-	* Make sure the created backend temp directory is world writeable
+	* [r9290] regress/run_test: Make sure the created backend temp
+	  directory is world writeable
 
-2012-02-24 19:24  dustymugs
+2012-02-24 19:24  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional fixups to not increase extent if an alignment is to
-	  take place in rt_raster_gdal_rasterize().
+	* [r9289] raster/rt_core/rt_api.c: Additional fixups to not
+	  increase extent if an alignment is to take place in
+	  rt_raster_gdal_rasterize().
 
-2012-02-24 19:11  strk
+2012-02-24 19:11  Sandro Santilli <strk at keybit.net>
 
-	* Be immune from topology sequence advancements
+	* [r9288] topology/test/regress/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected: Be immune from topology
+	  sequence advancements
 
-2012-02-24 18:49  pramsey
+2012-02-24 18:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make sure the regress tmp directory exists before trying to write
-	  to it.
+	* [r9287] regress/run_test: Make sure the regress tmp directory
+	  exists before trying to write to it.
 
-2012-02-24 17:33  dustymugs
+2012-02-24 17:33  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added additional conditions for rt_raster_gdal_rasterize()
-	  determining when to expand the extent.
+	* [r9286] raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_intersects_expected: Added additional
+	  conditions for rt_raster_gdal_rasterize() determining when to
+	  expand the extent.
 
-2012-02-24 15:23  strk
+2012-02-24 15:23  Sandro Santilli <strk at keybit.net>
 
-	* Do not report "face without edges" error for universal face
-	  (#1612)
+	* [r9285] topology/test/regress/legacy_validate.sql,
+	  topology/test/regress/legacy_validate_expected,
+	  topology/topology.sql.in.c: Do not report "face without edges"
+	  error for universal face (#1612)
 
-2012-02-24 15:23  strk
+2012-02-24 15:23  Sandro Santilli <strk at keybit.net>
 
-	* Rename the backend temp dir and drop with brute force
+	* [r9284] regress/run_test: Rename the backend temp dir and drop
+	  with brute force
 	  
 	  Avoids errors when no test writes anything in there (so no dir)
 
-2012-02-24 10:21  strk
+2012-02-24 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Properly drop the temporary directory setup for backend output
+	* [r9283] regress/run_test: Properly drop the temporary directory
+	  setup for backend output
 	  
 	  This prevents errors when running "make check" against backends
 	  owned by different users.
 
-2012-02-24 05:05  dustymugs
-
-	* Set all raster CASTs to be ASSIGNMENT not IMPLICIT. Related
-	  ticket is #490. Knowing my luck, I'll be reverting this due to
-	  some showstopper.
+2012-02-24 05:05  Bborie Park <bkpark at ucdavis.edu>
 
-2012-02-23 22:25  dustymugs
-
-	* Added correct handling of negative scale-x and positive scale-y
-	  in rt_raster_gdal_warp().
-
-2012-02-23 21:49  dustymugs
-
-	* Renamed rt_raster_dump_as_wktpolygons() to
+	* [r9282] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c,
+	  raster/test/regress/rt_above.sql,
+	  raster/test/regress/rt_below.sql,
+	  raster/test/regress/rt_bytea.sql,
+	  raster/test/regress/rt_contain.sql,
+	  raster/test/regress/rt_contained.sql,
+	  raster/test/regress/rt_left.sql,
+	  raster/test/regress/rt_overabove.sql,
+	  raster/test/regress/rt_overbelow.sql,
+	  raster/test/regress/rt_overlap.sql,
+	  raster/test/regress/rt_overleft.sql,
+	  raster/test/regress/rt_overright.sql,
+	  raster/test/regress/rt_right.sql,
+	  raster/test/regress/rt_same.sql: Set all raster CASTs to be
+	  ASSIGNMENT not IMPLICIT. Related ticket is #490. Knowing my luck,
+	  I'll be reverting this due to some showstopper.
+
+2012-02-23 22:25  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r9281] raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_resample_expected: Added correct handling
+	  of negative scale-x and positive scale-y in
+	  rt_raster_gdal_warp().
+
+2012-02-23 21:49  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r9280] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c, raster/test/core/testapi.c:
+	  Renamed rt_raster_dump_as_wktpolygons() to
 	  rt_raster_gdal_polygonize(). Refactored
 	  rt_raster_gdal_polygonize() to use LWPOLY objects instead of WKT
 	  strings. Also added cleanup code to make invalid dumped
 	  geometries valid. Associated tickets are #1586 and #637.
 
-2012-02-23 16:07  strk
+2012-02-23 16:07  Sandro Santilli <strk at keybit.net>
 
-	* Don't deep clone POINTARRAY in GML input routine.
+	* [r9279] postgis/lwgeom_in_gml.c: Don't deep clone POINTARRAY in
+	  GML input routine.
 	  
 	  Let's see if doing so exposes more memory errors (#1591).
 	  Does run valgrind clean here.
 
-2012-02-23 15:42  pracine
+2012-02-23 15:42  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Rewrote most of ST_AsRaster. Grouped similar variants to make
-	  everything a bit more readable.
+	* [r9278] doc/reference_raster.xml: Rewrote most of ST_AsRaster.
+	  Grouped similar variants to make everything a bit more readable.
 
-2012-02-23 13:28  strk
+2012-02-23 13:28  Sandro Santilli <strk at keybit.net>
 
-	* Set the default regression temp dir to /tmp/pgis_reg (#1607)
+	* [r9277] regress/run_test: Set the default regression temp dir to
+	  /tmp/pgis_reg (#1607)
 
-2012-02-23 12:54  strk
+2012-02-23 12:54  Sandro Santilli <strk at keybit.net>
 
-	* Have ST_GetFaceGeometry check face existance, regress-test
+	* [r9276] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_getfacegeometry.sql,
+	  topology/test/regress/st_getfacegeometry_expected: Have
+	  ST_GetFaceGeometry check face existance, regress-test
 
-2012-02-23 11:24  strk
+2012-02-23 11:24  Sandro Santilli <strk at keybit.net>
 
-	* Drop the UpdateGeometrySRID version with old param name (#1606)
+	* [r9275] postgis/postgis_drop_before.sql.in.c: Drop the
+	  UpdateGeometrySRID version with old param name (#1606)
 
-2012-02-22 23:13  pramsey
+2012-02-22 23:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Correctly handle the new lexer/parser output files
+	* [r9272] astyle.sh: Correctly handle the new lexer/parser output
+	  files
 
-2012-02-22 23:06  dustymugs
+2012-02-22 23:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rewrote chunks of rt_raster_gdal_warp() and
-	  rt_raster_gdal_rasterize() to correctly generate skewed rasters.
-	  Related ticket is #1395. This should also resolve #1586.
+	* [r9271] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c, raster/test/regress/rt_asraster.sql,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_intersection.sql,
+	  raster/test/regress/rt_intersection_expected,
+	  raster/test/regress/rt_resample_expected: Rewrote chunks of
+	  rt_raster_gdal_warp() and rt_raster_gdal_rasterize() to correctly
+	  generate skewed rasters. Related ticket is #1395. This should
+	  also resolve #1586.
 
-2012-02-22 20:38  pramsey
+2012-02-22 20:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Set svn:eol-style native (#1598)
+	* [r9270] liblwgeom/box2d.c, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_geodetic.c, liblwgeom/cunit/cu_geos.c,
+	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_in_wkt.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/cunit/cu_misc.c,
+	  liblwgeom/cunit/cu_node.c, liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_out_kml.c,
+	  liblwgeom/cunit/cu_out_svg.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/cunit/cu_split.c, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/g_util.c,
+	  liblwgeom/libtgeom.c, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwgeom_geos_clean.c, liblwgeom/lwgeom_geos_node.c,
+	  liblwgeom/lwgeom_geos_split.c, liblwgeom/lwgeom_transform.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt_lex.c,
+	  liblwgeom/lwin_wkt_parse.c, liblwgeom/lwline.c,
+	  liblwgeom/lwlinearreferencing.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwout_geojson.c,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwout_kml.c,
+	  liblwgeom/lwout_svg.c, liblwgeom/lwout_wkb.c,
+	  liblwgeom/lwout_wkt.c, liblwgeom/lwout_x3d.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwprint.c,
+	  liblwgeom/lwpsurface.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwspheroid.c, liblwgeom/lwtin.c, liblwgeom/lwtree.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/lwutil.c, liblwgeom/measures.c,
+	  liblwgeom/measures3d.c, liblwgeom/ptarray.c,
+	  liblwgeom/stringbuffer.c, liblwgeom/vsprintf.c,
+	  postgis/geography.sql.in.c, postgis/geography_btree.c,
+	  postgis/geography_estimate.c, postgis/geography_inout.c,
+	  postgis/geography_measurement.c, postgis/geometry_estimate.c,
+	  postgis/geometry_inout.c, postgis/gserialized_gist_2d.c,
+	  postgis/gserialized_gist_nd.c, postgis/gserialized_typmod.c,
+	  postgis/legacy.sql.in.c,
+	  postgis/legacy_compatibility_layer.sql.in.c,
+	  postgis/lwgeom_cache.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_relatematch.c, postgis/lwgeom_in_geojson.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_sqlmm.c,
+	  postgis/lwgeom_transform.c, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c,
+	  postgis/postgis_drop_before.sql.in.c, postgis/postgis_module.c,
+	  postgis/uninstall_geography.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c,
+	  postgis/uninstall_long_xact.sql.in.c,
+	  postgis/uninstall_sqlmm.sql.in.c, raster/loader/raster2pgsql.c,
+	  raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/rt_pg/rtpostgis_legacy.sql.in.c,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c: Set
+	  svn:eol-style native (#1598)
 
-2012-02-22 19:40  pramsey
+2012-02-22 19:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update numbers for alpha6
+	* [r9267] ChangeLog, NEWS, README.postgis, Version.config,
+	  extensions/upgradeable_versions.mk: Update numbers for alpha6
 
-2012-02-22 19:31  robe
+2012-02-22 19:31  Regina Obe <lr at pcorp.us>
 
-	* put in LF instruction to prevent my windows from putting in
-	  windows offensive line breaks
+	* [r9266] liblwgeom/lwout_x3d.c: put in LF instruction to prevent
+	  my windows from putting in windows offensive line breaks
 
-2012-02-22 19:29  pramsey
+2012-02-22 19:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change dos to unix lineends. (#1598)
+	* [r9265] liblwgeom/measures3d.c, liblwgeom/measures3d.h: Change
+	  dos to unix lineends. (#1598)
 
-2012-02-22 19:20  pramsey
+2012-02-22 19:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore makefile
+	* [r9264] java/jdbc: Ignore makefile
 
-2012-02-22 19:18  pramsey
+2012-02-22 19:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Really remove the dos linefeeds this time (#1598)
+	* [r9263] liblwgeom/lwout_x3d.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_rtree.h, postgis/postgis.sql.in.c: Really remove
+	  the dos linefeeds this time (#1598)
 
-2012-02-22 19:08  pramsey
+2012-02-22 19:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Revert dos lineending commit that blew away those files...
+	* [r9262] liblwgeom/lwout_x3d.c, liblwgeom/measures.c,
+	  liblwgeom/measures.h, postgis/lwgeom_export.c,
+	  postgis/lwgeom_rtree.h, postgis/postgis.sql.in.c: Revert dos
+	  lineending commit that blew away those files...
 
-2012-02-22 19:01  pramsey
+2012-02-22 19:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Use consistent UNIX line endings (#1598) fix up those files that
-	  pass through the C preprocessor at least.
+	* [r9261] liblwgeom/lwout_x3d.c, liblwgeom/measures.c,
+	  liblwgeom/measures.h, postgis/lwgeom_export.c,
+	  postgis/lwgeom_rtree.h, postgis/postgis.sql.in.c: Use consistent
+	  UNIX line endings (#1598) fix up those files that pass through
+	  the C preprocessor at least.
 
-2012-02-22 18:59  pramsey
+2012-02-22 18:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Switch to evaluating tests using psql with verbosity=terse
+	* [r9260] raster/test/regress/bug_test_car5_expected,
+	  raster/test/regress/rt_histogram_expected,
+	  raster/test/regress/rt_quantile_expected,
+	  raster/test/regress/rt_summarystats_expected,
+	  raster/test/regress/rt_valuecount_expected,
+	  regress/regress_expected, regress/run_test,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly_expected, regress/tickets.sql,
+	  regress/tickets_expected, regress/wkt_expected: Switch to
+	  evaluating tests using psql with verbosity=terse
 
-2012-02-22 17:19  strk
+2012-02-22 17:19  Sandro Santilli <strk at keybit.net>
 
-	* Fix ST_Polygonize aggregate to retain Z (#1602)
+	* [r9258] postgis/lwgeom_geos.c, regress/polygonize.sql,
+	  regress/polygonize_expected: Fix ST_Polygonize aggregate to
+	  retain Z (#1602)
 
-2012-02-22 15:52  strk
+2012-02-22 15:52  Sandro Santilli <strk at keybit.net>
 
-	* Stay within 80 cols
+	* [r9257] LICENSE.TXT: Stay within 80 cols
 
-2012-02-22 15:33  strk
+2012-02-22 15:33  Sandro Santilli <strk at keybit.net>
 
-	* Parametrize max user SRID in the SQL file too
+	* [r9256] postgis/postgis.sql.in.c, postgis/sqldefines.h.in:
+	  Parametrize max user SRID in the SQL file too
 
-2012-02-22 12:49  strk
+2012-02-22 12:49  Sandro Santilli <strk at keybit.net>
 
-	* Check SRID passed to UpdateGeometrySRID, patch by Mike Toews
-	  (#1596)
+	* [r9253] postgis/postgis.sql.in.c, regress/tickets.sql,
+	  regress/tickets_expected: Check SRID passed to
+	  UpdateGeometrySRID, patch by Mike Toews (#1596)
 	  
 	  Adds regression testing
 
-2012-02-22 12:48  strk
+2012-02-22 12:48  Sandro Santilli <strk at keybit.net>
 
-	* Forward port fix to #1595, although there's no way to expose in
-	  2.0
+	* [r9252] postgis/lwgeom_functions_analytic.c: Forward port fix to
+	  #1595, although there's no way to expose in 2.0
 
-2012-02-22 03:09  robe
+2012-02-22 03:09  Regina Obe <lr at pcorp.us>
 
-	* correct st_clip raster so eimage matches the code. the behavior
-	  changed butthe code was wrong (showing old behavior). Also put
-	  back the multiband case using new syntax which is probably more
-	  common usaage.
+	* [r9251] doc/reference_raster.xml: correct st_clip raster so
+	  eimage matches the code. the behavior changed butthe code was
+	  wrong (showing old behavior). Also put back the multiband case
+	  using new syntax which is probably more common usaage.
 
-2012-02-21 15:51  pracine
+2012-02-21 15:51  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Added single quote around 8BUI since the XSL now escape them. See
-	  #1588.
+	* [r9249] doc/reference_raster.xml: Added single quote around 8BUI
+	  since the XSL now escape them. See #1588.
 
-2012-02-21 15:47  pracine
+2012-02-21 15:47  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Added one missign default value for the value parameter of
-	  ST_AsRaster and added one missing variant.
+	* [r9248] doc/reference_raster.xml: Added one missign default value
+	  for the value parameter of ST_AsRaster and added one missing
+	  variant.
 
-2012-02-21 14:32  strk
+2012-02-21 14:32  Sandro Santilli <strk at keybit.net>
 
-	* Add a ptarray_transform function in liblwgeom API
+	* [r9247] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_transform.c:
+	  Add a ptarray_transform function in liblwgeom API
 
-2012-02-21 13:54  strk
+2012-02-21 13:54  Sandro Santilli <strk at keybit.net>
 
-	* Draft an lwgeom_from_gml function (#1591)
+	* [r9246] postgis/lwgeom_in_gml.c: Draft an lwgeom_from_gml
+	  function (#1591)
 	  
 	  Can't be moved all to liblwgeom due to use of spatial_ref_sys
 
-2012-02-21 11:07  strk
+2012-02-21 11:07  Sandro Santilli <strk at keybit.net>
 
-	* Print SRID in decimal form, not hex (#1593)
+	* [r9245] loader/shp2pgsql-core.c: Print SRID in decimal form, not
+	  hex (#1593)
 
-2012-02-21 10:57  strk
+2012-02-21 10:57  Sandro Santilli <strk at keybit.net>
 
-	* Update documentation about shp2pgsql -s/-g flag (#1524)
+	* [r9244] doc/using_postgis_dataman.xml: Update documentation about
+	  shp2pgsql -s/-g flag (#1524)
 
-2012-02-21 09:43  strk
+2012-02-21 09:43  Sandro Santilli <strk at keybit.net>
 
-	* Add an --extensions switch to run_test (#964)
+	* [r9243] regress/run_test: Add an --extensions switch to run_test
+	  (#964)
 	  
 	  When passing that switch the install and uninstall of spatial db
 	  happens using the EXTENSION model. It's currently not run as part
@@ -10279,481 +21850,633 @@
 	  calls when both core and raster modules are installed (there's no
 	  way to separate them in the EXTENSION model).
 
-2012-02-21 09:07  strk
+2012-02-21 09:07  Sandro Santilli <strk at keybit.net>
 
-	* Put prepare/upgrade/uninstall operations in their own functions
+	* [r9242] regress/run_test: Put prepare/upgrade/uninstall
+	  operations in their own functions
 
-2012-02-20 20:09  pracine
+2012-02-20 20:09  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* More work on ST_Resample and ST_Intersection
+	* [r9241] doc/reference_raster.xml: More work on ST_Resample and
+	  ST_Intersection
 
-2012-02-20 14:32  strk
+2012-02-20 14:32  Sandro Santilli <strk at keybit.net>
 
-	* Ignore generated extensions and java files
+	* [r9240] .gitignore: Ignore generated extensions and java files
 
-2012-02-20 13:28  strk
+2012-02-20 13:28  Sandro Santilli <strk at keybit.net>
 
-	* Do not printf from potgis library. Possibly fixes #1570
+	* [r9239] postgis/lwgeom_in_gml.c: Do not printf from potgis
+	  library. Possibly fixes #1570
 
-2012-02-20 13:18  strk
+2012-02-20 13:18  Sandro Santilli <strk at keybit.net>
 
-	* Ignore generated java/jdbc/Makefile
+	* [r9238] .gitignore: Ignore generated java/jdbc/Makefile
 
-2012-02-20 13:16  strk
+2012-02-20 13:16  Sandro Santilli <strk at keybit.net>
 
-	* Escape single quotes in param list when generating raster
-	  comments
+	* [r9237] doc/xsl/raster_comments.sql.xsl: Escape single quotes in
+	  param list when generating raster comments
 	  
 	  Closes ticket #1588
 
-2012-02-20 12:52  strk
+2012-02-20 12:52  Sandro Santilli <strk at keybit.net>
 
-	* Ant rules to excecute maven by Maria Arias de Reyna (#1437)
+	* [r9236] configure.ac, java/Makefile, java/jdbc/Makefile,
+	  java/jdbc/Makefile.in, java/jdbc/build.xml: Ant rules to excecute
+	  maven by Maria Arias de Reyna (#1437)
 	  
 	  Also simplify java Makefile to be simple proxies of ant
 
-2012-02-20 10:52  strk
+2012-02-20 10:52  Sandro Santilli <strk at keybit.net>
 
-	* Update face MBR on edge change (#1587)
+	* [r9235] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Update face MBR
+	  on edge change (#1587)
 
-2012-02-20 10:19  strk
+2012-02-20 10:19  Sandro Santilli <strk at keybit.net>
 
-	* Enhance documentation for ST_ChangeEdgeGeom
+	* [r9234] doc/extras_topology.xml: Enhance documentation for
+	  ST_ChangeEdgeGeom
 
-2012-02-17 23:41  robe
+2012-02-17 23:41  Regina Obe <lr at pcorp.us>
 
-	* Link to my office base article on how to display postgis rasters
-	  in base reports.
+	* [r9233] doc/using_raster_dataman.xml: Link to my office base
+	  article on how to display postgis rasters in base reports.
 
-2012-02-17 22:23  pracine
+2012-02-17 22:23  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Rewrote the ST_Rescale documentation.
+	* [r9232] doc/reference_raster.xml: Rewrote the ST_Rescale
+	  documentation.
 
-2012-02-17 22:00  pramsey
+2012-02-17 22:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* This works but it makes estimated extent case sensitive both ways
-	  (no weaseling out and giving upper case versions of lower case
-	  tables) (#1585)
+	* [r9230] postgis/geometry_estimate.c: This works but it makes
+	  estimated extent case sensitive both ways (no weaseling out and
+	  giving upper case versions of lower case tables) (#1585)
 
-2012-02-17 20:52  pracine
+2012-02-17 20:52  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Ticket #1536. First revision of st_intersection(). Removal of the
-	  extent parameter and first documentation.
+	* [r9229] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Ticket #1536. First revision of
+	  st_intersection(). Removal of the extent parameter and first
+	  documentation.
 
-2012-02-17 18:29  strk
+2012-02-17 18:29  Sandro Santilli <strk at keybit.net>
 
-	* Check edge disposition around endnodes (#1571)
+	* [r9228] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Check edge
+	  disposition around endnodes (#1571)
 	  
 	  Includes a couple new testcases, for closed and non-closed edges
 	  changing disposition around their end nodes.
 
-2012-02-17 18:28  pracine
+2012-02-17 18:28  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Many more small typo fixes...
+	* [r9227] doc/reference_raster.xml: Many more small typo fixes...
 
-2012-02-17 15:11  strk
+2012-02-17 15:11  Sandro Santilli <strk at keybit.net>
 
-	* Rework edge motion range construction (#1571)
+	* [r9226] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Rework edge
+	  motion range construction (#1571)
 	  
 	  Includes a new testcase which was failing before this change
 
-2012-02-17 14:03  strk
+2012-02-17 14:03  Sandro Santilli <strk at keybit.net>
 
-	* Add another test for ST_ChangeEdgeGeom
+	* [r9225] topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Add another
+	  test for ST_ChangeEdgeGeom
 
-2012-02-17 13:46  strk
+2012-02-17 13:46  Sandro Santilli <strk at keybit.net>
 
-	* Handle some (not all) cases of non-isomorphic edge changes
-	  (#1571)
+	* [r9224] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Handle some
+	  (not all) cases of non-isomorphic edge changes (#1571)
 	  
 	  The problem is much harder than it looks ...
 
-2012-02-17 08:39  strk
+2012-02-17 08:39  Sandro Santilli <strk at keybit.net>
 
-	* Add test numbers to ST_ChangeEdgeGeom regression cases
+	* [r9223] topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Add test
+	  numbers to ST_ChangeEdgeGeom regression cases
 
-2012-02-17 08:39  strk
+2012-02-17 08:39  Sandro Santilli <strk at keybit.net>
 
-	* Ignore utils/postgis_restore.pl (now generated)
+	* [r9222] .gitignore: Ignore utils/postgis_restore.pl (now
+	  generated)
 
-2012-02-16 17:45  strk
+2012-02-16 17:45  Sandro Santilli <strk at keybit.net>
 
-	* Update comment, hopefully clearer now
+	* [r9221] topology/sql/sqlmm.sql.in.c: Update comment, hopefully
+	  clearer now
 
-2012-02-16 15:49  pracine
+2012-02-16 15:49  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fixed a number of small problem. Capitalized x and y.
+	* [r9220] doc/reference_raster.xml: Fixed a number of small
+	  problem. Capitalized x and y.
 
-2012-02-16 10:25  strk
+2012-02-16 10:25  Sandro Santilli <strk at keybit.net>
 
-	* Add a topology.GetNodeEdges function
+	* [r9219] doc/extras_topology.xml, topology/Makefile.in,
+	  topology/sql/query/GetNodeEdges.sql.in.c,
+	  topology/test/regress/getnodeedges.sql,
+	  topology/test/regress/getnodeedges_expected,
+	  topology/topology.sql.in.c: Add a topology.GetNodeEdges function
 	  
 	  This function is a fundamental topological primitive to do things
 	  like SQL-based poligonization.
 
-2012-02-16 08:49  strk
+2012-02-16 08:49  Sandro Santilli <strk at keybit.net>
 
-	* Ignore postgis_svn_revision.h
+	* [r9218] .gitignore: Ignore postgis_svn_revision.h
 
-2012-02-16 08:08  strk
+2012-02-16 08:08  Sandro Santilli <strk at keybit.net>
 
-	* Set availability of ST_ChangeEdgeGeom
+	* [r9217] doc/extras_topology.xml: Set availability of
+	  ST_ChangeEdgeGeom
 
-2012-02-16 08:08  strk
+2012-02-16 08:08  Sandro Santilli <strk at keybit.net>
 
-	* Fix cross reference
+	* [r9216] doc/reference_raster.xml: Fix cross reference
 
-2012-02-16 00:28  pramsey
+2012-02-16 00:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove now-obsolete TODO comment
+	* [r9215] libpgcommon/lwgeom_transform.c: Remove now-obsolete TODO
+	  comment
 
-2012-02-16 00:25  pramsey
+2012-02-16 00:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Prepare for Proj4.8 with spheroid info handling
+	* [r9214] libpgcommon/lwgeom_transform.c: Prepare for Proj4.8 with
+	  spheroid info handling
 
-2012-02-15 23:25  pramsey
+2012-02-15 23:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add generated files to svn:ignore
+	* [r9213] ., extensions, utils: Add generated files to svn:ignore
 
-2012-02-15 22:45  pramsey
+2012-02-15 22:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* jdbc: org.postgis.Point.equals() is not reflexive (#1313)
+	* [r9211] java/jdbc/src/org/postgis/Point.java: jdbc:
+	  org.postgis.Point.equals() is not reflexive (#1313)
 
-2012-02-15 22:34  pramsey
+2012-02-15 22:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix XML typo
+	* [r9209] doc/reference_processing.xml: Fix XML typo
 
-2012-02-15 22:27  pramsey
+2012-02-15 22:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Negative distance argument to ST_Buffer not documented (#1535)
+	* [r9208] doc/reference_processing.xml: Negative distance argument
+	  to ST_Buffer not documented (#1535)
 
-2012-02-15 21:56  pramsey
+2012-02-15 21:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* shp2pgsql: a switch to drop M from 4d imports (#900)
+	* [r9205] doc/using_postgis_dataman.xml: shp2pgsql: a switch to
+	  drop M from 4d imports (#900)
 
-2012-02-15 21:37  pramsey
+2012-02-15 21:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* shp2pgsql: a switch to drop M from 4d imports (#900)
+	* [r9204] loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h: shp2pgsql: a switch to drop M from 4d
+	  imports (#900)
 
-2012-02-15 21:23  pracine
+2012-02-15 21:23  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Updated the version returned by the PostGIS_Raster_Lib_Version()
-	  example.
+	* [r9203] doc/reference_raster.xml: Updated the version returned by
+	  the PostGIS_Raster_Lib_Version() example.
 
-2012-02-15 21:18  pracine
+2012-02-15 21:18  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Removed some garbage.
+	* [r9202] doc/reference_raster.xml: Removed some garbage.
 
-2012-02-15 21:12  pramsey
+2012-02-15 21:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove fugitive EOL white space
+	* [r9201] extensions/upgradeable_versions.mk: Remove fugitive EOL
+	  white space
 
-2012-02-15 20:58  pramsey
+2012-02-15 20:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add minor version upgradeable
+	* [r9200] extensions/upgradeable_versions.mk: Add minor version
+	  upgradeable
 
-2012-02-15 20:57  pramsey
+2012-02-15 20:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Push trunk version forward
+	* [r9198] Version.config: Push trunk version forward
 
-2012-02-15 20:55  pramsey
+2012-02-15 20:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update meta for alpha5
+	* [r9196] ChangeLog, NEWS, README.postgis: Update meta for alpha5
 
-2012-02-15 19:28  pracine
+2012-02-15 19:28  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix for #1576 & #1569. ST_Clip now works on multiband rasters and
-	  accept an array of nodata values.
+	* [r9195] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/regress/rt_clip.sql,
+	  raster/test/regress/rt_clip_expected: Fix for #1576 & #1569.
+	  ST_Clip now works on multiband rasters and accept an array of
+	  nodata values.
 
-2012-02-15 15:59  strk
+2012-02-15 15:59  Sandro Santilli <strk at keybit.net>
 
-	* Do not take PROJ4 errno value as a sign of error (#1580)
+	* [r9194] libpgcommon/lwgeom_transform.c, regress/tickets.sql,
+	  regress/tickets_expected: Do not take PROJ4 errno value as a sign
+	  of error (#1580)
 
-2012-02-15 11:00  strk
+2012-02-15 11:00  Sandro Santilli <strk at keybit.net>
 
-	* dd support for fetching SVN revision from pure-git clones (#1579)
+	* [r9193] utils/svn_repo_revision.pl: dd support for fetching SVN
+	  revision from pure-git clones (#1579)
 
-2012-02-14 22:21  robe
+2012-02-14 22:21  Regina Obe <lr at pcorp.us>
 
-	* Example of how to use only psql to output a raster image.
+	* [r9192] doc/using_raster_dataman.xml: Example of how to use only
+	  psql to output a raster image.
 
-2012-02-14 17:57  strk
+2012-02-14 17:57  Sandro Santilli <strk at keybit.net>
 
-	* Fix crash with empty polygons in P-I-P tests (#1578)
+	* [r9191] postgis/lwgeom_functions_analytic.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix crash with empty polygons in P-I-P
+	  tests (#1578)
 
-2012-02-14 17:54  robe
+2012-02-14 17:54  Regina Obe <lr at pcorp.us>
 
-	* #1494: documentation of new census tract loader and get_tract
-	  functions.
+	* [r9190] doc/extras_tigergeocoder.xml: #1494: documentation of new
+	  census tract loader and get_tract functions.
 
-2012-02-14 17:53  robe
+2012-02-14 17:53  Regina Obe <lr at pcorp.us>
 
-	* #1494: done with programming need to finish documenting and
-	  regress test.
+	* [r9189] extras/tiger_geocoder/tiger_2010/census_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/census_tracts_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1494: done
+	  with programming need to finish documenting and regress test.
 
-2012-02-14 17:47  dustymugs
+2012-02-14 17:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Readded rt_clip regression test.
+	* [r9188] raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_clip.sql: Readded rt_clip regression test.
 
-2012-02-14 17:29  dustymugs
+2012-02-14 17:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed handling of negative X-scale or positive Y-scale in
-	  rt_raster_gdal_rasterize(). Ticket is #1574.
+	* [r9187] raster/rt_core/rt_api.c: Fixed handling of negative
+	  X-scale or positive Y-scale in rt_raster_gdal_rasterize(). Ticket
+	  is #1574.
 
-2012-02-14 17:15  strk
+2012-02-14 17:15  Sandro Santilli <strk at keybit.net>
 
-	* We don't use a profiler anymore
+	* [r9186] postgis/lwgeom_geos.c: We don't use a profiler anymore
 
-2012-02-14 17:00  dzwarg
+2012-02-14 17:00  David Zwarg <dzwarg at azavea.com>
 
-	* Reverting changes that optimize ST_MapAlgebraExpr. Re-advertise x
-	  and y parameters as int32. Reverts changes from r9137, closes
-	  #1557.
+	* [r9185] raster/rt_pg/rt_pg.c: Reverting changes that optimize
+	  ST_MapAlgebraExpr. Re-advertise x and y parameters as int32.
+	  Reverts changes from r9137, closes #1557.
 
-2012-02-14 13:31  strk
+2012-02-14 13:31  Sandro Santilli <strk at keybit.net>
 
-	* Make one-point lines convertible to GEOS, see #1543
+	* [r9184] liblwgeom/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: Make one-point lines convertible to
+	  GEOS, see #1543
 
-2012-02-13 22:46  pracine
+2012-02-13 22:46  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Temporarily remove st_clip regress...
+	* [r9183] raster/test/regress/Makefile.in: Temporarily remove
+	  st_clip regress...
 
-2012-02-13 22:02  pramsey
+2012-02-13 22:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Configured without raster still tries to make
-	  raster/rt_pg/rtpostgis.sql (#1575) only try to build extensions
-	  if we have both raster and topology as well as pgsql 9.1
+	* [r9182] configure.ac: Configured without raster still tries to
+	  make raster/rt_pg/rtpostgis.sql (#1575) only try to build
+	  extensions if we have both raster and topology as well as pgsql
+	  9.1
 
-2012-02-13 21:58  pracine
+2012-02-13 21:58  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Closing ticket #597. Added regression tests for ST_Clip. More
-	  tests to come when fixing #1576.
+	* [r9181] raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_clip.sql,
+	  raster/test/regress/rt_clip_expected: Closing ticket #597. Added
+	  regression tests for ST_Clip. More tests to come when fixing
+	  #1576.
 
-2012-02-13 21:25  strk
+2012-02-13 21:25  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of topology comments and cheatsheet
+	* [r9180] doc/Makefile.in: Encode dependency of topology comments
+	  and cheatsheet
 	  
 	  Same should be done for raster and tiger...
 
-2012-02-13 20:44  strk
+2012-02-13 20:44  Sandro Santilli <strk at keybit.net>
 
-	* Fix documentation of GetRingEdges
+	* [r9179] doc/extras_topology.xml: Fix documentation of
+	  GetRingEdges
 
-2012-02-13 20:44  strk
+2012-02-13 20:44  Sandro Santilli <strk at keybit.net>
 
-	* Install topology comments too, when regressing topology
+	* [r9178] regress/run_test: Install topology comments too, when
+	  regressing topology
 
-2012-02-13 20:44  strk
+2012-02-13 20:44  Sandro Santilli <strk at keybit.net>
 
-	* Install topology_comments.sql as well
+	* [r9177] doc/Makefile.comments.in: Install topology_comments.sql
+	  as well
 
-2012-02-13 18:28  pracine
+2012-02-13 18:28  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix for ticket #1572. ST_PixelAsPolygons() return NULL values
-	  when the requested band or no band exist.
+	* [r9176] raster/rt_pg/rtpostgis.sql.in.c: Fix for ticket #1572.
+	  ST_PixelAsPolygons() return NULL values when the requested band
+	  or no band exist.
 
-2012-02-13 18:06  strk
+2012-02-13 18:06  Sandro Santilli <strk at keybit.net>
 
-	* Allow retaining all custom spatial_ref_sys entries, even clashing
+	* [r9175] doc/installation.xml, utils/postgis_restore.pl.in: Allow
+	  retaining all custom spatial_ref_sys entries, even clashing
 	  
 	  Update manual accordingly (hard upgrade procedure)
 
-2012-02-13 17:47  strk
+2012-02-13 17:47  Sandro Santilli <strk at keybit.net>
 
-	* Fix regexp renaming srid enforcement check
+	* [r9174] utils/postgis_restore.pl.in: Fix regexp renaming srid
+	  enforcement check
 
-2012-02-13 17:01  strk
+2012-02-13 17:01  Sandro Santilli <strk at keybit.net>
 
-	* Add a note about handling of out-of-range SRIDs on hard upgrade
+	* [r9173] doc/installation.xml: Add a note about handling of
+	  out-of-range SRIDs on hard upgrade
 
-2012-02-13 16:29  strk
+2012-02-13 16:29  Sandro Santilli <strk at keybit.net>
 
-	* Accept more feature type names from AddTopoGeometryColumn (#1470)
+	* [r9172] topology/test/regress/addtopogeometrycolumn.sql,
+	  topology/test/regress/addtopogeometrycolumn_expected,
+	  topology/topology.sql.in.c: Accept more feature type names from
+	  AddTopoGeometryColumn (#1470)
 	  
 	  With this commit you can pass return of ST_GeometryType or
 	  return GeometryType as input to the function.
 
-2012-02-13 16:11  strk
+2012-02-13 16:11  Sandro Santilli <strk at keybit.net>
 
-	* More VOLATILE -> STRICT (#955). Let's call it completed.
+	* [r9171] topology/sql/predicates.sql.in.c,
+	  topology/sql/sqlmm.sql.in.c: More VOLATILE -> STRICT (#955).
+	  Let's call it completed.
 
-2012-02-13 16:04  strk
+2012-02-13 16:04  Sandro Santilli <strk at keybit.net>
 
-	* Some VOLATILE functions turned to STABLE (#955)
+	* [r9170] topology/topology.sql.in.c: Some VOLATILE functions
+	  turned to STABLE (#955)
 	  
 	  A noticeable exception is the Geometry(TopoGeometry) cast which
 	  triggers a regression when made STABLE.
 
-2012-02-13 15:43  pracine
+2012-02-13 15:43  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix regression broken by the limit imposed to SRID < 999999.
-	  Anyway the srid provided was not the right one. Changed from 4269
-	  to 26919.
+	* [r9169] raster/test/regress/create_rt_band_properties_test.sql,
+	  raster/test/regress/create_rt_utility_test.sql,
+	  raster/test/regress/rt_spatial_relationship.sql: Fix regression
+	  broken by the limit imposed to SRID < 999999. Anyway the srid
+	  provided was not the right one. Changed from 4269 to 26919.
 
-2012-02-13 15:12  robe
+2012-02-13 15:12  Regina Obe <lr at pcorp.us>
 
-	* #1494 - ability to load census tract, block group, tabblock - boy
-	  did I screw this one. Should be all fixed now and tested (loading
+	* [r9168] extras/tiger_geocoder/tiger_2010/census_loader.sql: #1494
+	  - ability to load census tract, block group, tabblock - boy did I
+	  screw this one. Should be all fixed now and tested (loading
 	  part), still need to write the function, but that's the easy part
 
-2012-02-13 14:48  strk
+2012-02-13 14:48  Sandro Santilli <strk at keybit.net>
 
-	* Move SRID max and user-max definitions to configure.ac
+	* [r9167] .gitignore, configure.ac, liblwgeom/liblwgeom.h.in,
+	  utils/Makefile, utils/Makefile.in, utils/postgis_restore.pl,
+	  utils/postgis_restore.pl.in: Move SRID max and user-max
+	  definitions to configure.ac
 	  
 	  This should help keeping postgis_restore.pl and core in sync
 	  wrt SRID ranges.
 
-2012-02-13 14:17  strk
+2012-02-13 14:17  Sandro Santilli <strk at keybit.net>
 
-	* Refine user feedback about SRID conversion and reserved zones
+	* [r9166] utils/postgis_restore.pl: Refine user feedback about SRID
+	  conversion and reserved zones
 
-2012-02-13 11:25  strk
+2012-02-13 11:25  Sandro Santilli <strk at keybit.net>
 
-	* Drop (SRF()).* constructs (#956)
+	* [r9165] topology/sql/gml.sql.in.c,
+	  topology/sql/populate.sql.in.c, topology/sql/sqlmm.sql.in.c: Drop
+	  (SRF()).* constructs (#956)
 
-2012-02-13 10:58  strk
+2012-02-13 10:58  Sandro Santilli <strk at keybit.net>
 
-	* Have regress install comments adn throw an error on failure
-	  (#1532)
+	* [r9164] regress/run_test: Have regress install comments adn throw
+	  an error on failure (#1532)
 
-2012-02-13 10:58  strk
+2012-02-13 10:58  Sandro Santilli <strk at keybit.net>
 
-	* Have staged-install install comments when possible (#1532)
+	* [r9163] GNUmakefile.in, configure.ac, doc/Makefile.comments.in,
+	  doc/Makefile.in, regress/Makefile.in: Have staged-install install
+	  comments when possible (#1532)
 
-2012-02-13 10:16  strk
+2012-02-13 10:16  Sandro Santilli <strk at keybit.net>
 
-	* Report svn revision
+	* [r9162] regress/run_test: Report svn revision
 
-2012-02-13 10:16  strk
+2012-02-13 10:16  Sandro Santilli <strk at keybit.net>
 
-	* Encode postgis_svn_revision dependency
+	* [r9161] postgis/Makefile.in: Encode postgis_svn_revision
+	  dependency
 
-2012-02-13 10:00  strk
+2012-02-13 10:00  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup postgis_svn_revision.h makefile rule (PHONY)
+	* [r9160] GNUmakefile.in: Cleanup postgis_svn_revision.h makefile
+	  rule (PHONY)
 
-2012-02-13 09:58  strk
+2012-02-13 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Do not override postgis_svn_revision.h if revision didn't change
+	* [r9159] utils/svn_repo_revision.pl: Do not override
+	  postgis_svn_revision.h if revision didn't change
 
-2012-02-13 09:15  strk
+2012-02-13 09:15  Sandro Santilli <strk at keybit.net>
 
-	* Add support for fetching SVN revision from local git-svn
-	  repository
+	* [r9158] utils/svn_repo_revision.pl: Add support for fetching SVN
+	  revision from local git-svn repository
 
-2012-02-11 21:17  strk
+2012-02-11 21:17  Sandro Santilli <strk at keybit.net>
 
-	* It's "svn", not "svnn". And a TODO item...
+	* [r9157] utils/svn_repo_revision.pl: It's "svn", not "svnn". And a
+	  TODO item...
 
-2012-02-11 16:08  pramsey
+2012-02-11 16:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix regression in OSX (-0 vs 0)
+	* [r9156] raster/test/regress/rt_rotation.sql,
+	  raster/test/regress/rt_rotation_expected: Fix regression in OSX
+	  (-0 vs 0)
 
-2012-02-11 05:14  pramsey
+2012-02-11 05:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Report SVN revision in PostGIS_Full_Version (#1518)
+	* [r9155] GNUmakefile.in, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c, postgis_config.h.in,
+	  utils/svn_repo_revision.pl: Report SVN revision in
+	  PostGIS_Full_Version (#1518)
 
-2012-02-10 23:33  dustymugs
+2012-02-10 23:33  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added checks of SRID to make sure that SRIDs are within the
-	  permitted range. Ticket is #1568.
+	* [r9154] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/core/testwkb.c,
+	  raster/test/regress/bug_test_car5_expected,
+	  raster/test/regress/create_rt_mapalgebra_test.sql,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/create_rt_properties_test.sql,
+	  raster/test/regress/create_rt_utility_test.sql,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_band.sql,
+	  raster/test/regress/rt_bytea_expected,
+	  raster/test/regress/rt_count.sql,
+	  raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebrafct.sql,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_expected,
+	  raster/test/regress/rt_metadata.sql,
+	  raster/test/regress/rt_metadata_expected,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_reclass.sql,
+	  raster/test/regress/rt_summarystats.sql,
+	  raster/test/regress/rt_valuecount.sql,
+	  raster/test/regress/rt_valuepercent.sql: Added checks of SRID to
+	  make sure that SRIDs are within the permitted range. Ticket is
+	  #1568.
 
-2012-02-10 22:42  pracine
+2012-02-10 22:42  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* ST_Clip returns all bands when no band is specified.
+	* [r9153] doc/reference_raster.xml: ST_Clip returns all bands when
+	  no band is specified.
 
-2012-02-10 22:36  pracine
+2012-02-10 22:36  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix for ticket #1569. ST_Clip variants defaulting to band 1
-	  should default to NULL so that they return all bands.
+	* [r9152] raster/rt_pg/rtpostgis.sql.in.c: Fix for ticket #1569.
+	  ST_Clip variants defaulting to band 1 should default to NULL so
+	  that they return all bands.
 
-2012-02-10 20:21  pramsey
+2012-02-10 20:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Back out SVN generation stuff.
+	* [r9151] GNUmakefile.in, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c, postgis_config.h.in,
+	  utils/read_scripts_version.pl: Back out SVN generation stuff.
 
-2012-02-10 19:55  pramsey
+2012-02-10 19:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Try to fail better on SVN snatching...
+	* [r9150] utils/Makefile, utils/svn_repo_revision.pl: Try to fail
+	  better on SVN snatching...
 
-2012-02-10 19:49  pramsey
+2012-02-10 19:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Report SVN revision in PostGIS_Full_Version (#1518)
+	* [r9149] postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c, postgis_config.h.in: Report SVN
+	  revision in PostGIS_Full_Version (#1518)
 
-2012-02-10 18:46  pracine
+2012-02-10 18:46  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* ST_PixelAsPolygon() does not have a band parameter anymore.
+	* [r9148] raster/rt_pg/rtpostgis.sql.in.c: ST_PixelAsPolygon() does
+	  not have a band parameter anymore.
 
-2012-02-10 18:38  robe
+2012-02-10 18:38  Regina Obe <lr at pcorp.us>
 
-	* #1494: move parent table creation to a function so logic is in
-	  single place, add a new census_loader.sql script with census
-	  specific load logic, revise create and update scripts to load the
-	  new census logic and create tables if not present. Still need to
-	  test and write a function to return census info given a point
-	  before can mark this as done.
+	* [r9147] extras/tiger_geocoder/tiger_2010/census_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2010/tables/census_tracts_tables.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1494: move
+	  parent table creation to a function so logic is in single place,
+	  add a new census_loader.sql script with census specific load
+	  logic, revise create and update scripts to load the new census
+	  logic and create tables if not present. Still need to test and
+	  write a function to return census info given a point before can
+	  mark this as done.
 
-2012-02-10 17:05  pracine
+2012-02-10 17:05  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Have perl to backup the file before editing. 'make check' is
-	  failing on Windows 7 without that.
+	* [r9146] regress/Makefile.in: Have perl to backup the file before
+	  editing. 'make check' is failing on Windows 7 without that.
 	  
 	  See
 	  http://postgis.refractions.net/pipermail/postgis-devel/2012-February/018482.html
 
-2012-02-10 16:53  strk
+2012-02-10 16:53  Sandro Santilli <strk at keybit.net>
 
-	* Clamp SRID valuesu > SRID_MAXIMUM to fall in the reserved range
-	  (#1505)
+	* [r9145] liblwgeom/lwutil.c, utils/postgis_restore.pl: Clamp SRID
+	  valuesu > SRID_MAXIMUM to fall in the reserved range (#1505)
 	  
 	  The reserved range is SRID_USER_MAXIMUM+1 to SRID_MAXIMUM.
 	  Core takes care of typmod clamping, postgis_restore.pl takes care
 	  of clamping table definition and spatial_ref_sys entries.
 
-2012-02-10 16:53  strk
+2012-02-10 16:53  Sandro Santilli <strk at keybit.net>
 
-	* Add SRID_USER_MXIMUM define
+	* [r9144] liblwgeom/liblwgeom.h.in: Add SRID_USER_MXIMUM define
 
-2012-02-10 16:18  pramsey
+2012-02-10 16:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix syntax error in MS example
+	* [r9143] doc/using_postgis_app.xml: Fix syntax error in MS example
 
-2012-02-10 09:19  strk
+2012-02-10 09:19  Sandro Santilli <strk at keybit.net>
 
-	* Drop the now-generated Makefile on distclean, and ignore it
+	* [r9141] .gitignore, extensions/Makefile.in: Drop the
+	  now-generated Makefile on distclean, and ignore it
 
-2012-02-10 09:16  strk
+2012-02-10 09:16  Sandro Santilli <strk at keybit.net>
 
-	* Fix builds --without-topology (#1565)
+	* [r9140] configure.ac, extensions/Makefile,
+	  extensions/Makefile.in: Fix builds --without-topology (#1565)
 
-2012-02-10 01:21  robe
+2012-02-10 01:21  Regina Obe <lr at pcorp.us>
 
-	* #1564 fix typo in cat call preventing other files from being
-	  concatenated
+	* [r9139] extensions/postgis_topology/Makefile.in: #1564 fix typo
+	  in cat call preventing other files from being concatenated
 
-2012-02-09 23:02  robe
+2012-02-09 23:02  Regina Obe <lr at pcorp.us>
 
-	* #1563: remove raster_columns view from extension so it can be
+	* [r9138] extensions/postgis/sql_bits/remove_from_extension.sql.in:
+	  #1563: remove raster_columns view from extension so it can be
 	  dropped without complaint.
 
-2012-02-09 20:12  dzwarg
+2012-02-09 20:12  David Zwarg <dzwarg at azavea.com>
 
-	* Performance improvement by keeping x and y pixel coordinates as
-	  floats.
+	* [r9137] raster/rt_pg/rt_pg.c: Performance improvement by keeping
+	  x and y pixel coordinates as floats.
 
-2012-02-09 19:19  strk
+2012-02-09 19:19  Sandro Santilli <strk at keybit.net>
 
-	* Actually save Grand Unified Geom Cache rather than just building
-	  it
+	* [r9136] postgis/lwgeom_cache.c: Actually save Grand Unified Geom
+	  Cache rather than just building it
 	  
 	  Fixes #547
 
-2012-02-09 17:16  strk
-
-	* More postgis_config.h inclusion removal from headers
+2012-02-09 17:16  Sandro Santilli <strk at keybit.net>
 
-2012-02-09 17:00  strk
-
-	* Drop postgis_config.h include from lwgeom_pg.h header.
+	* [r9135] postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_prepared.h,
+	  postgis/lwgeom_geos_relatematch.c: More postgis_config.h
+	  inclusion removal from headers
+
+2012-02-09 17:00  Sandro Santilli <strk at keybit.net>
+
+	* [r9134] liblwgeom/lwgeom_transform.c, libpgcommon/lwgeom_pg.h,
+	  libpgcommon/lwgeom_transform.c, postgis/geography_estimate.c,
+	  postgis/geometry_estimate.c, postgis/long_xact.c,
+	  postgis/lwgeom_accum.c, postgis/lwgeom_box.c,
+	  postgis/lwgeom_box3d.c, postgis/lwgeom_btree.c,
+	  postgis/lwgeom_cache.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_in_geojson.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_spheroid.c,
+	  postgis/lwgeom_sqlmm.c, postgis/lwgeom_transform.c,
+	  postgis/lwgeom_triggers.c, postgis/postgis_module.c,
+	  raster/rt_pg/rt_pg.c: Drop postgis_config.h include from
+	  lwgeom_pg.h header.
 	  
 	  Generally, package config files should _not_ be included
 	  by package headers. In this specific case the aim is overriding
@@ -10764,469 +22487,605 @@
 	  two files which were missing it (used git history to figure
 	  assignments)
 
-2012-02-09 17:00  strk
+2012-02-09 17:00  Sandro Santilli <strk at keybit.net>
 
-	* Fix header guard of pgsql_compat.h and drop the duplicate
+	* [r9133] libpgcommon/pgsql_compat.h, raster/rt_pg/pgsql_compat.h:
+	  Fix header guard of pgsql_compat.h and drop the duplicate
 
-2012-02-09 10:49  robe
+2012-02-09 10:49  Regina Obe <lr at pcorp.us>
 
-	* Hmm double added a file -- #1563 which was causing the can't drop
-	  because postgis extension depends on it error
+	* [r9132] extensions/postgis/Makefile.in: Hmm double added a file
+	  -- #1563 which was causing the can't drop because postgis
+	  extension depends on it error
 
-2012-02-09 10:10  strk
+2012-02-09 10:10  Sandro Santilli <strk at keybit.net>
 
-	* Forward distclean to extensions subdirs
+	* [r9131] extensions/Makefile: Forward distclean to extensions
+	  subdirs
 
-2012-02-09 02:34  pramsey
+2012-02-09 02:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Don't delete the comments.
+	* [r9130] doc/Makefile.in: Don't delete the comments.
 
-2012-02-09 01:54  robe
+2012-02-09 01:54  Regina Obe <lr at pcorp.us>
 
-	* #1562 replace string with text
+	* [r9129] doc/reference_raster.xml: #1562 replace string with text
 
-2012-02-09 00:42  pramsey
+2012-02-09 00:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More verbose message, per DFuhriman
+	* [r9128] liblwgeom/lwgeodetic.c: More verbose message, per
+	  DFuhriman
 
-2012-02-09 00:37  pramsey
+2012-02-09 00:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Invalid geography polygons: BOOM! Could not generate outside
+	* [r9127] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/lwgeodetic.c:
+	  Invalid geography polygons: BOOM! Could not generate outside
 	  point! (#1046)
 
-2012-02-09 00:27  dzwarg
+2012-02-09 00:27  David Zwarg <dzwarg at azavea.com>
 
-	* Fixed bug where PG_DETOAST_DATUM args were incorrect.
+	* [r9126] raster/rt_pg/rt_pg.c: Fixed bug where PG_DETOAST_DATUM
+	  args were incorrect.
 
-2012-02-09 00:18  dzwarg
+2012-02-09 00:18  David Zwarg <dzwarg at azavea.com>
 
-	* Changed DATUM_SLICE to DATUM in setGeotransform.
+	* [r9125] raster/rt_pg/rt_pg.c: Changed DATUM_SLICE to DATUM in
+	  setGeotransform.
 
-2012-02-08 23:59  dzwarg
+2012-02-08 23:59  David Zwarg <dzwarg at azavea.com>
 
-	* Added documentation for raster processing builtin functions:
-	  st_min4ma, st_max4ma, st_mean4ma, st_sum4ma, st_range4ma,
-	  st_distinct4ma, st_stddev4ma.
+	* [r9124] doc/reference_raster.xml: Added documentation for raster
+	  processing builtin functions: st_min4ma, st_max4ma, st_mean4ma,
+	  st_sum4ma, st_range4ma, st_distinct4ma, st_stddev4ma.
 
-2012-02-08 23:01  pramsey
+2012-02-08 23:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change from scripts-based script versions to repository based
-	  versions. Should also be more robust? ha ha ha. (#1282)
+	* [r9123] utils/read_scripts_version.pl: Change from scripts-based
+	  script versions to repository based versions. Should also be more
+	  robust? ha ha ha. (#1282)
 
-2012-02-08 22:44  pramsey
+2012-02-08 22:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the scripts version get read again.
+	* [r9122] utils/read_scripts_version.pl: Make the scripts version
+	  get read again.
 
-2012-02-08 21:58  dustymugs
+2012-02-08 21:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix to correct building of testapi in MinGW. Ticket is #1560.
+	* [r9121] raster/test/core/Makefile.in: Fix to correct building of
+	  testapi in MinGW. Ticket is #1560.
 
-2012-02-08 21:31  dzwarg
+2012-02-08 21:31  David Zwarg <dzwarg at azavea.com>
 
-	* Do not allocate inside of 1 raster mapalgebra loop for datum
-	  values and nulls.
+	* [r9120] raster/rt_pg/rt_pg.c: Do not allocate inside of 1 raster
+	  mapalgebra loop for datum values and nulls.
 
-2012-02-08 21:29  pramsey
+2012-02-08 21:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ./configure still display the old raster version number (#1599)
+	* [r9119] configure.ac: ./configure still display the old raster
+	  version number (#1599)
 
-2012-02-08 21:20  dustymugs
+2012-02-08 21:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Instead of dynamically allocating space for variables "values"
-	  and "nulls" with each pixel, just initialize both to the max
-	  possible # of elements. Done for 2-raster ST_MapAlgebraExpr
+	* [r9118] raster/rt_pg/rt_pg.c: Instead of dynamically allocating
+	  space for variables "values" and "nulls" with each pixel, just
+	  initialize both to the max possible # of elements. Done for
+	  2-raster ST_MapAlgebraExpr
 
-2012-02-08 21:08  dustymugs
+2012-02-08 21:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Remove deleted function signature for ST_PixelAsPolygon. Ticket
-	  is #1529
+	* [r9117] doc/reference_raster.xml: Remove deleted function
+	  signature for ST_PixelAsPolygon. Ticket is #1529
 
-2012-02-08 21:08  pramsey
+2012-02-08 21:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* test for termios.h in case we want to do password prompting in
-	  the future
+	* [r9116] configure.ac: test for termios.h in case we want to do
+	  password prompting in the future
 
-2012-02-08 21:04  dustymugs
+2012-02-08 21:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* Values for [rast1.x], [rast1.y], [rast2.x] and [rast2.y] should
-	  be INT4 instead of FLOAT8. Ticket is #1557
+	* [r9115] raster/rt_pg/rt_pg.c: Values for [rast1.x], [rast1.y],
+	  [rast2.x] and [rast2.y] should be INT4 instead of FLOAT8. Ticket
+	  is #1557
 
-2012-02-08 21:03  dzwarg
+2012-02-08 21:03  David Zwarg <dzwarg at azavea.com>
 
-	* Removed geotransform type. Fixed rounding, so Hudson will be my
-	  friend in raster regression tests.
+	* [r9114] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_rotation.sql,
+	  raster/test/regress/rt_rotation_expected: Removed geotransform
+	  type. Fixed rounding, so Hudson will be my friend in raster
+	  regression tests.
 
-2012-02-08 20:51  strk
+2012-02-08 20:51  Sandro Santilli <strk at keybit.net>
 
-	* do not heap-allocate SPI arg types
+	* [r9113] raster/rt_pg/rt_pg.c: do not heap-allocate SPI arg types
 
-2012-02-08 20:33  strk
+2012-02-08 20:33  Sandro Santilli <strk at keybit.net>
 
-	* ST_MapAlgebraExpr: advertise X and Y params as integers (#1557)
+	* [r9112] raster/rt_pg/rt_pg.c: ST_MapAlgebraExpr: advertise X and
+	  Y params as integers (#1557)
 	  
 	  Also stop doing 3 string matches per pixel for no reason
 
-2012-02-08 19:44  dzwarg
-
-	* Added documentation for 1 and 2 raster map algebra user callback
-	  function documentation for pixel position array parameter to
-	  userfunc. #1525
-
-2012-02-08 19:09  pramsey
-
-	* Handle French svn?
-
-2012-02-08 19:04  dzwarg
-
-	* Added geotransform methods and correction to basis vectors during
-	  raster rotation. #1353
+2012-02-08 19:44  David Zwarg <dzwarg at azavea.com>
 
-2012-02-08 18:51  pramsey
+	* [r9111] doc/reference_raster.xml: Added documentation for 1 and 2
+	  raster map algebra user callback function documentation for pixel
+	  position array parameter to userfunc. #1525
 
-	* Stop relying on private projects.h PROJ header (#1541)
+2012-02-08 19:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2012-02-08 17:39  pramsey
+	* [r9110] utils/svn_repo_revision.pl: Handle French svn?
 
-	* Add missing target
+2012-02-08 19:04  David Zwarg <dzwarg at azavea.com>
 
-2012-02-08 17:36  pramsey
+	* [r9109] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_rotation_expected: Added geotransform
+	  methods and correction to basis vectors during raster rotation.
+	  #1353
 
-	* Push forward version numbers
+2012-02-08 18:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2012-02-08 17:33  pramsey
+	* [r9108] liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  libpgcommon/lwgeom_transform.c, postgis/geography.h: Stop relying
+	  on private projects.h PROJ header (#1541)
 
-	* Commit in preparation for 2.0.0alpha4
+2012-02-08 17:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2012-02-08 17:23  dzwarg
+	* [r9107] extensions/Makefile: Add missing target
 
-	* Added ST_StdDev4ma raster neighborhood processing function. #1318
+2012-02-08 17:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2012-02-08 17:19  pramsey
+	* [r9105] HOWTO_RELEASE, Version.config,
+	  extensions/upgradeable_versions.mk: Push forward version numbers
 
-	* lwgeom_release (#699) move free if copy calls to end of functions
-	  in any place where there is any chance that a problem might occur
+2012-02-08 17:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2012-02-08 16:44  dustymugs
+	* [r9102] ChangeLog, NEWS, README.postgis: Commit in preparation
+	  for 2.0.0alpha4
 
-	* Minor debug message tweak
+2012-02-08 17:23  David Zwarg <dzwarg at azavea.com>
 
-2012-02-08 16:11  dustymugs
+	* [r9101] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc_expected: Added
+	  ST_StdDev4ma raster neighborhood processing function. #1318
 
-	* Added regression tests for raster2pgsql loader. Ticket is #1388
+2012-02-08 17:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2012-02-08 15:17  colivier
+	* [r9100] postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_sqlmm.c: lwgeom_release (#699) move free if copy
+	  calls to end of functions in any place where there is any chance
+	  that a problem might occur
 
-	* Bugfixes related to #1552, and somehow to #665. Thanks to Sandro
-	  for report and valgrind stuff !
+2012-02-08 16:44  Bborie Park <bkpark at ucdavis.edu>
 
-2012-02-08 10:06  strk
+	* [r9099] raster/rt_core/rt_api.c: Minor debug message tweak
 
-	* Document topology.GetRingEdges (#959)
+2012-02-08 16:11  Bborie Park <bkpark at ucdavis.edu>
 
-2012-02-08 09:36  strk
-
-	* Do not release serialized input until output is deserialized
+	* [r9098] raster/loader/raster2pgsql.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/loader/Basic-post.sh,
+	  raster/test/regress/loader/Basic-pre.sh,
+	  raster/test/regress/loader/Basic.select.expected,
+	  raster/test/regress/loader/Basic.select.sql,
+	  raster/test/regress/loader/Basic.sql.expected,
+	  raster/test/regress/loader/BasicCopy-post.sh,
+	  raster/test/regress/loader/BasicCopy-pre.sh,
+	  raster/test/regress/loader/BasicCopy.opts,
+	  raster/test/regress/loader/BasicCopy.select.expected,
+	  raster/test/regress/loader/BasicCopy.select.sql,
+	  raster/test/regress/loader/BasicCopy.sql.expected,
+	  raster/test/regress/loader/Tiled10x10-post.sh,
+	  raster/test/regress/loader/Tiled10x10-pre.sh,
+	  raster/test/regress/loader/Tiled10x10.opts,
+	  raster/test/regress/loader/Tiled10x10.select.expected,
+	  raster/test/regress/loader/Tiled10x10.select.sql,
+	  raster/test/regress/loader/Tiled10x10Copy-post.sh,
+	  raster/test/regress/loader/Tiled10x10Copy-pre.sh,
+	  raster/test/regress/loader/Tiled10x10Copy.opts,
+	  raster/test/regress/loader/Tiled10x10Copy.select.expected,
+	  raster/test/regress/loader/Tiled10x10Copy.select.sql,
+	  regress/run_test: Added regression tests for raster2pgsql loader.
+	  Ticket is #1388
+
+2012-02-08 15:17  Olivier Courtin <olivier.courtin at oslandia.com>
+
+	* [r9097] liblwgeom/libtgeom.c, liblwgeom/libtgeom.h: Bugfixes
+	  related to #1552, and somehow to #665. Thanks to Sandro for
+	  report and valgrind stuff !
+
+2012-02-08 10:06  Sandro Santilli <strk at keybit.net>
+
+	* [r9096] doc/extras_topology.xml: Document topology.GetRingEdges
+	  (#959)
+
+2012-02-08 09:36  Sandro Santilli <strk at keybit.net>
+
+	* [r9095] postgis/lwgeom_geos.c: Do not release serialized input
+	  until output is deserialized
 	  
 	  See
 	  http://postgis.refractions.net/pipermail/postgis-devel/2012-February/018336.html
 
-2012-02-08 06:42  pramsey
+2012-02-08 06:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* configure_json.patch (#1539) from Evan Roualt
+	* [r9094] configure.ac: configure_json.patch (#1539) from Evan
+	  Roualt
 
-2012-02-08 05:29  colivier
+2012-02-08 05:29  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* restore (at least) tin_geom and psurface_geom unit tests call.
-	  Related to #665
+	* [r9093] liblwgeom/cunit/cu_surface.c: restore (at least) tin_geom
+	  and psurface_geom unit tests call. Related to #665
 
-2012-02-08 05:23  colivier
+2012-02-08 05:23  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix BBOX handling in serialization. Still related to #665
+	* [r9092] liblwgeom/libtgeom.c: Fix BBOX handling in serialization.
+	  Still related to #665
 
-2012-02-08 04:36  colivier
+2012-02-08 04:36  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Change BBOX double to float in serialization. Related to #665
+	* [r9091] liblwgeom/libtgeom.c: Change BBOX double to float in
+	  serialization. Related to #665
 
-2012-02-08 00:43  dzwarg
+2012-02-08 00:43  David Zwarg <dzwarg at azavea.com>
 
-	* Added ST_Distinct4ma helper neighborhood processing function. See
-	  #1318
+	* [r9090] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc_expected: Added
+	  ST_Distinct4ma helper neighborhood processing function. See #1318
 
-2012-02-08 00:29  dzwarg
+2012-02-08 00:29  David Zwarg <dzwarg at azavea.com>
 
-	* Fixed typo in configure.ac
+	* [r9089] configure.ac: Fixed typo in configure.ac
 
-2012-02-08 00:23  pramsey
+2012-02-08 00:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* loader/Latin1 regression failure with database SQL_ASCII encoding
+	* [r9088] regress/loader/Latin1.select.sql, regress/run_test:
+	  loader/Latin1 regression failure with database SQL_ASCII encoding
 	  (#1465) from Greg Troxel
 
-2012-02-08 00:15  pramsey
+2012-02-08 00:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove another dying test
+	* [r9087] liblwgeom/cunit/cu_surface.c: Remove another dying test
 
-2012-02-08 00:14  pramsey
+2012-02-08 00:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove failing test
+	* [r9086] liblwgeom/cunit/cu_surface.c: Remove failing test
 
-2012-02-08 00:14  pramsey
+2012-02-08 00:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove dependency on svnrevision.h
+	* [r9085] postgis/Makefile.in: Remove dependency on svnrevision.h
 
-2012-02-08 00:01  pramsey
+2012-02-08 00:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* docs-install uses bare cp (#1528) from Greg Troxel
+	* [r9084] doc/Makefile.in: docs-install uses bare cp (#1528) from
+	  Greg Troxel
 
-2012-02-07 23:51  pramsey
+2012-02-07 23:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore svnrevision.h
+	* [r9083] .: Ignore svnrevision.h
 
-2012-02-07 23:49  pramsey
+2012-02-07 23:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_MinimumBoundingCircle needs regression test (#1042)
+	* [r9082] regress/tickets.sql, regress/tickets_expected:
+	  ST_MinimumBoundingCircle needs regression test (#1042)
 
-2012-02-07 23:42  pramsey
+2012-02-07 23:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add a warning for lower numbers of GEOS
+	* [r9081] configure.ac: Add a warning for lower numbers of GEOS
 
-2012-02-07 23:37  colivier
+2012-02-07 23:37  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Still several bugfixes related to #665
+	* [r9080] liblwgeom/libtgeom.c: Still several bugfixes related to
+	  #665
 
-2012-02-07 23:27  pramsey
+2012-02-07 23:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Force generation of an svnrevision.h file when building in a repo
-	  and the svn executable is available.
+	* [r9079] GNUmakefile.in, make_dist.sh, postgis/Makefile.in,
+	  utils/svn_repo_revision.pl: Force generation of an svnrevision.h
+	  file when building in a repo and the svn executable is available.
 	  Ensure that when building a tarball with make_dist.sh the
 	  revision is read from the tag in the remote svn repository.
 	  This should cover both development and distribution cases.
 
-2012-02-07 22:17  pramsey
+2012-02-07 22:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add dzwarg
+	* [r9078] authors.svn: Add dzwarg
 
-2012-02-07 22:05  dustymugs
+2012-02-07 22:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Clean up raster regression and move loader regression directory.
+	* [r9077] raster/test/Makefile.in, raster/test/core/testapi.c,
+	  raster/test/loader, raster/test/regress/Makefile.in,
+	  raster/test/regress/loader,
+	  raster/test/regress/loader/testraster.tif: Clean up raster
+	  regression and move loader regression directory.
 
-2012-02-07 21:30  colivier
+2012-02-07 21:30  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Still bugfixes. Related to #665
+	* [r9076] liblwgeom/libtgeom.c: Still bugfixes. Related to #665
 
-2012-02-07 21:14  pramsey
+2012-02-07 21:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Test non-empty new types in regress/wkb (#1477)
+	* [r9075] regress/wkb.sql, regress/wkb_expected: Test non-empty new
+	  types in regress/wkb (#1477)
 
-2012-02-07 21:04  colivier
+2012-02-07 21:04  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Restore surface cunit tests
+	* [r9074] liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_tester.c:
+	  Restore surface cunit tests
 
-2012-02-07 21:01  colivier
+2012-02-07 21:01  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix some bugfixes. Handle EMPTY use cases. Minor changes. Related
-	  to #665
+	* [r9073] liblwgeom/cunit/cu_surface.c, liblwgeom/libtgeom.c: Fix
+	  some bugfixes. Handle EMPTY use cases. Minor changes. Related to
+	  #665
 
-2012-02-07 19:42  pramsey
+2012-02-07 19:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* lwgeom_release (#699), reviewed all usage of lwgeom_release
+	* [r9072] liblwgeom/cunit/cu_split.c, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_geos_node.c, liblwgeom/lwline.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwpsurface.c,
+	  liblwgeom/lwtin.c, liblwgeom/lwtriangle.c,
+	  postgis/geography_measurement.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_spheroid.c,
+	  postgis/lwgeom_sqlmm.c: lwgeom_release (#699), reviewed all usage
+	  of lwgeom_release
 	  and replaced with lwgeom_free where possible. Changed the
 	  def'n of lwgeom_release so that it only frees the containing
 	  objects, and not any sub-objects, for those few remaining
 	  cases that required a gentler freeing of objects.
 
-2012-02-07 19:35  dustymugs
+2012-02-07 19:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor cleanup of parameter names of ST_Intersection(raster,
-	  geometry)
+	* [r9071] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Minor cleanup of parameter
+	  names of ST_Intersection(raster, geometry)
 
-2012-02-07 19:25  dzwarg
+2012-02-07 19:25  David Zwarg <dzwarg at azavea.com>
 
-	* Added positional parameters to 1 raster version of
-	  ST_MapAlgebraFct. Closes #1525
+	* [r9070] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/create_rt_mapalgebra_test.sql,
+	  raster/test/regress/drop_rt_mapalgebra_test.sql,
+	  raster/test/regress/rt_mapalgebrafct.sql,
+	  raster/test/regress/rt_mapalgebrafct_expected: Added positional
+	  parameters to 1 raster version of ST_MapAlgebraFct. Closes #1525
 
-2012-02-07 18:40  pracine
+2012-02-07 18:40  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Added ST_TileAsGeom() returning only the extent of the planned
-	  tiles as polygons
+	* [r9069] raster/scripts/plpgsql/st_tile.sql: Added ST_TileAsGeom()
+	  returning only the extent of the planned tiles as polygons
 
-2012-02-07 18:07  dzwarg
+2012-02-07 18:07  David Zwarg <dzwarg at azavea.com>
 
-	* Corrected clamped values in tests for ST_MapAlgebraExpr and
-	  ST_MapAlgebraFct.
+	* [r9068] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_expected,
+	  raster/test/regress/rt_mapalgebrafct_expected: Corrected clamped
+	  values in tests for ST_MapAlgebraExpr and ST_MapAlgebraFct.
 	  Implemented prepared statements in ST_MapAlgebraExpr.
 
-2012-02-07 17:23  pramsey
+2012-02-07 17:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Documentation URLs, visible whitespace, and minor touchups
-	  (#1548) from mwtoews
+	* [r9067] doc/extras_tigergeocoder.xml, doc/extras_topology.xml,
+	  doc/faq_raster.xml, doc/installation.xml, doc/introduction.xml,
+	  doc/performance_tips.xml, doc/reference_accessor.xml,
+	  doc/reference_constructor.xml, doc/reference_editor.xml,
+	  doc/reference_lrs.xml, doc/reference_management.xml,
+	  doc/reference_measure.xml, doc/reference_misc.xml,
+	  doc/reference_processing.xml, doc/reference_raster.xml,
+	  doc/reference_transaction.xml, doc/reference_type.xml,
+	  doc/release_notes.xml, doc/reporting.xml,
+	  doc/using_postgis_dataman.xml: Documentation URLs, visible
+	  whitespace, and minor touchups (#1548) from mwtoews
 
-2012-02-07 17:07  pramsey
+2012-02-07 17:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reorder the include flags, per Greg Troxel
+	* [r9066] libpgcommon/Makefile.in: Reorder the include flags, per
+	  Greg Troxel
 
-2012-02-07 15:47  pracine
+2012-02-07 15:47  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* First plpgsql prototype for ST_Tile(rast raster, width integer,
-	  height integer, padwithnodata boolean, nodatavalue double
-	  precision)
+	* [r9065] raster/scripts/plpgsql/st_tile.sql: First plpgsql
+	  prototype for ST_Tile(rast raster, width integer, height integer,
+	  padwithnodata boolean, nodatavalue double precision)
 
-2012-02-07 13:12  mcayland
+2012-02-07 13:12  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix a couple of compiler warnings in shp2pgsql-gui caused by
-	  uninitialised variables.
+	* [r9064] loader/shp2pgsql-gui.c: Fix a couple of compiler warnings
+	  in shp2pgsql-gui caused by uninitialised variables.
 
-2012-02-07 10:14  strk
+2012-02-07 10:14  Sandro Santilli <strk at keybit.net>
 
-	* Allow changing a closed edge (but w/out fixing linking, see #892)
+	* [r9063] topology/sql/sqlmm.sql.in.c,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Allow changing
+	  a closed edge (but w/out fixing linking, see #892)
 
-2012-02-07 09:50  strk
+2012-02-07 09:50  Sandro Santilli <strk at keybit.net>
 
-	* Re-add install-sh in the repository to support libtool < 2.0
+	* [r9062] .gitignore, install-sh: Re-add install-sh in the
+	  repository to support libtool < 2.0
 
-2012-02-07 07:22  strk
+2012-02-07 07:22  Sandro Santilli <strk at keybit.net>
 
-	* Ignore install-sh
+	* [r9061] .gitignore: Ignore install-sh
 
-2012-02-07 07:20  strk
+2012-02-07 07:20  Sandro Santilli <strk at keybit.net>
 
-	* install-sh is generated by ./autogen.sh, needs not be in
-	  repository
+	* [r9060] install-sh: install-sh is generated by ./autogen.sh,
+	  needs not be in repository
 
-2012-02-07 02:34  colivier
+2012-02-07 02:34  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* temp desactivation of surface unit test
+	* [r9059] liblwgeom/cunit/cu_tester.c: temp desactivation of
+	  surface unit test
 
-2012-02-06 23:50  pramsey
+2012-02-06 23:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Whoops, slight error in the empty geometry handling fixed.
+	* [r9058] postgis/lwgeom_geos.c: Whoops, slight error in the empty
+	  geometry handling fixed.
 
-2012-02-06 23:30  colivier
+2012-02-06 23:30  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Temp remove su_surface till everything fixed on it...
+	* [r9057] liblwgeom/cunit/Makefile.in: Temp remove su_surface till
+	  everything fixed on it...
 
-2012-02-06 23:25  pramsey
+2012-02-06 23:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Have ST_Union aggregate use UnaryUnion from GEOS-3.0.0 (#922)
+	* [r9056] postgis/lwgeom_geos.c,
+	  topology/test/regress/legacy_query_expected: Have ST_Union
+	  aggregate use UnaryUnion from GEOS-3.0.0 (#922)
 
-2012-02-06 23:14  dustymugs
+2012-02-06 23:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Make sure new bands when added using ST_AddBand are correctly
-	  clamping NODATA values. Ticket is #1546.
+	* [r9055] raster/rt_core/rt_api.c: Make sure new bands when added
+	  using ST_AddBand are correctly clamping NODATA values. Ticket is
+	  #1546.
 
-2012-02-06 21:32  pramsey
+2012-02-06 21:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove dead prototype
+	* [r9054] postgis/lwgeom_geos.c: Remove dead prototype
 
-2012-02-06 21:15  colivier
+2012-02-06 21:15  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix a bug in tgeom_free, related to #665
+	* [r9053] liblwgeom/cunit/cu_surface.c, liblwgeom/libtgeom.c: Fix a
+	  bug in tgeom_free, related to #665
 
-2012-02-06 20:53  dustymugs
+2012-02-06 20:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added support to pass pixel positions of both rasters to user
-	  function in 2-raster ST_MapAlgebraFct. This provides similar
-	  functionality to the keywords described in #1525.
+	* [r9052] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebrafct_2raster.sql: Added support
+	  to pass pixel positions of both rasters to user function in
+	  2-raster ST_MapAlgebraFct. This provides similar functionality to
+	  the keywords described in #1525.
 
-2012-02-06 20:07  pramsey
+2012-02-06 20:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change searched location of proj files when no proj variable
-	  (#1022)
+	* [r9051] libpgcommon/lwgeom_transform.c: Change searched location
+	  of proj files when no proj variable (#1022)
 
-2012-02-06 19:45  pramsey
+2012-02-06 19:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Quiet rm
+	* [r9050] doc/Makefile.in: Quiet rm
 
-2012-02-06 19:44  pramsey
+2012-02-06 19:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* quiet echo
+	* [r9049] extensions/Makefile: quiet echo
 
-2012-02-06 19:33  pramsey
+2012-02-06 19:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Dummy up a check target
+	* [r9048] extensions/Makefile: Dummy up a check target
 
-2012-02-06 19:32  pramsey
+2012-02-06 19:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move regres forward again
+	* [r9047] GNUmakefile.in: Move regres forward again
 
-2012-02-06 19:30  pramsey
+2012-02-06 19:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make exensions depend on comments, so also depend on xsltproc
+	* [r9046] configure.ac, doc/Makefile.in,
+	  extensions/postgis/Makefile.in,
+	  extensions/postgis_topology/Makefile.in: Make exensions depend on
+	  comments, so also depend on xsltproc
 
-2012-02-06 19:13  pramsey
+2012-02-06 19:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Duplicate named case-insensitive XML refentry ids / HTML files
+	* [r9045] doc/reference_type.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  Duplicate named case-insensitive XML refentry ids / HTML files
 	  (#1511)
 
-2012-02-06 19:01  pramsey
+2012-02-06 19:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* PostGIS extensions should build/install automatically if PostGIS
-	  is compiled against 9.1 (#1490)
+	* [r9044] GNUmakefile.in, configure.ac, extensions/Makefile,
+	  extensions/postgis/Makefile.in,
+	  extensions/postgis_topology/Makefile.in: PostGIS extensions
+	  should build/install automatically if PostGIS is compiled against
+	  9.1 (#1490)
 
-2012-02-06 18:44  pramsey
+2012-02-06 18:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change how we calculate minor versions suitable for extension
-	  upgrade.
+	* [r9043] HOWTO_RELEASE, extensions/postgis/Makefile.in,
+	  extensions/postgis_topology/Makefile.in,
+	  extensions/upgradeable_versions.mk: Change how we calculate minor
+	  versions suitable for extension upgrade.
 
-2012-02-06 18:36  dzwarg
+2012-02-06 18:36  David Zwarg <dzwarg at azavea.com>
 
-	* Checked connection to SPI manager in ST_MapAlgebraExpr
+	* [r9042] raster/rt_pg/rt_pg.c: Checked connection to SPI manager
+	  in ST_MapAlgebraExpr
 
-2012-02-06 17:49  dzwarg
+2012-02-06 17:49  David Zwarg <dzwarg at azavea.com>
 
-	* Whitespace changes to _st_hillshade4ma
+	* [r9041] raster/rt_pg/rtpostgis.sql.in.c: Whitespace changes to
+	  _st_hillshade4ma
 
-2012-02-06 17:26  dzwarg
+2012-02-06 17:26  David Zwarg <dzwarg at azavea.com>
 
-	* Reordered linking order for core regression tests. Follow up to
+	* [r9040] raster/test/core/Makefile.in: Reordered linking order for
+	  core regression tests. Follow up to
 	  http://postgis.refractions.net/pipermail/postgis-devel/2011-December/016646.html
 	  and r8399
 
-2012-02-06 13:43  strk
+2012-02-06 13:43  Sandro Santilli <strk at keybit.net>
 
-	* Tabs to spaces (2)
+	* [r9039] topology/topology.sql.in.c: Tabs to spaces (2)
 
-2012-02-06 13:16  strk
+2012-02-06 13:16  Sandro Santilli <strk at keybit.net>
 
-	* Don't let ValidateTopology choke on invalid edges (#1544)
+	* [r9038] topology/test/invalid_topology.sql,
+	  topology/test/regress/legacy_invalid_expected,
+	  topology/topology.sql.in.c: Don't let ValidateTopology choke on
+	  invalid edges (#1544)
 
-2012-02-06 03:20  pramsey
+2012-02-06 03:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Allow 'make check' to run all the way through on OSX (the sed
+	* [r9037] raster/rt_pg/Makefile.in, topology/Makefile.in: Allow
+	  'make check' to run all the way through on OSX (the sed
 	  implementation must be slightly different, so let's see if Perl
 	  is any more standard). Hopefully other platforms will be happy.
 
-2012-02-06 02:15  pramsey
+2012-02-06 02:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Try out the pj_get_def() method of finding the spheroid
-	  parameters, but: it doesn't work.
+	* [r9036] libpgcommon/lwgeom_transform.c: Try out the pj_get_def()
+	  method of finding the spheroid parameters, but: it doesn't work.
 
-2012-02-05 02:15  robe
+2012-02-05 02:15  Regina Obe <lr at pcorp.us>
 
-	* put in an FAQ about the common function is not unique error that
-	  I suspect a lot of people will be running into because they don't
-	  cast their geometry inputs and that a lot of raster functions
-	  have overloaded functions similar to the geometry ones.
+	* [r9035] doc/faq_raster.xml: put in an FAQ about the common
+	  function is not unique error that I suspect a lot of people will
+	  be running into because they don't cast their geometry inputs and
+	  that a lot of raster functions have overloaded functions similar
+	  to the geometry ones.
 
-2012-02-05 00:30  mcayland
+2012-02-05 00:30  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Change encoding reference URL to that used for libiconv rather
-	  than PostgreSQL since that's what we are using to do the encoding
-	  conversion (as per #1303).
+	* [r9033] loader/shp2pgsql-core.c: Change encoding reference URL to
+	  that used for libiconv rather than PostgreSQL since that's what
+	  we are using to do the encoding conversion (as per #1303).
 
-2012-02-05 00:30  mcayland
+2012-02-05 00:30  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for #1540: Fix segfault in shp2pgsql-gui when no port is
-	  specified. Prevent dereferencing a NULL pointer if the string is
-	  empty.
+	* [r9032] loader/shp2pgsql-gui.c: Fix for #1540: Fix segfault in
+	  shp2pgsql-gui when no port is specified. Prevent dereferencing a
+	  NULL pointer if the string is empty.
 
-2012-02-04 17:53  strk
+2012-02-04 17:53  Sandro Santilli <strk at keybit.net>
 
-	* Implemented new keywords for 1-raster ST_MapAlgebraExpr (#1525)
+	* [r9031] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebraexpr.sql: Implemented new
+	  keywords for 1-raster ST_MapAlgebraExpr (#1525)
 
-2012-02-04 02:36  mcayland
+2012-02-04 02:36  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix an issue in the shapefile GUI caused by saving the original
-	  shapefile name before processing.
+	* [r9030] loader/shp2pgsql-gui.c: Fix an issue in the shapefile GUI
+	  caused by saving the original shapefile name before processing.
 	  
 	  This was a bug caused by having two separate passes during
 	  export; we were saving the original
@@ -11236,603 +23095,768 @@
 	  the last iteration, and do it
 	  multiple times causing random crashes.
 
-2012-02-04 01:30  pramsey
+2012-02-04 01:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Geography should support SRIDs other than 4326 (#1538)
+	* [r9029] liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwgeom_transform.c, libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h, postgis/geography.h,
+	  postgis/geography_inout.c, postgis/geography_measurement.c,
+	  postgis/lwgeom_transform.c, regress/out_geography_expected:
+	  Geography should support SRIDs other than 4326 (#1538)
 
-2012-02-04 01:17  mcayland
+2012-02-04 01:17  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Alter the shapefile GUI so that multiple shapefiles can be
-	  selected in the import file chooser.
+	* [r9028] loader/shp2pgsql-gui.c: Alter the shapefile GUI so that
+	  multiple shapefiles can be selected in the import file chooser.
 
-2012-02-04 00:39  mcayland
+2012-02-04 00:39  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add GUI support for the shp2pgsql -S (simple geometries) switch.
-	  This closes #660.
+	* [r9027] loader/shp2pgsql-gui.c: Add GUI support for the shp2pgsql
+	  -S (simple geometries) switch. This closes #660.
 
-2012-02-04 00:39  mcayland
+2012-02-04 00:39  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update shapefile GUI "About" text and window title to reflect
-	  that it now handles export as well as import.
+	* [r9026] loader/shp2pgsql-gui.c: Update shapefile GUI "About" text
+	  and window title to reflect that it now handles export as well as
+	  import.
 
-2012-02-04 00:39  mcayland
+2012-02-04 00:39  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add shapefile dumper (table export) to the shp2pgsql GUI. This
-	  closes ticket #1480.
+	* [r9025] loader/shp2pgsql-gui.c: Add shapefile dumper (table
+	  export) to the shp2pgsql GUI. This closes ticket #1480.
 
-2012-02-04 00:02  dustymugs
+2012-02-04 00:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* Explicitly set the output band's pixel type depending on the band
-	  being returned (FIRST, SECOND, BOTH. OTHER is left NULL) in
+	* [r9024] raster/rt_pg/rtpostgis.sql.in.c: Explicitly set the
+	  output band's pixel type depending on the band being returned
+	  (FIRST, SECOND, BOTH. OTHER is left NULL) in
 	  ST_Intersection(raster, raster). Related ticket is #1537.
 
-2012-02-03 22:57  dustymugs
+2012-02-03 22:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* Implemented keywords for 2-raster ST_MapAlgebraExpr as described
-	  in #1525. Will do 2-raster ST_MapAlgebraFct next.
+	* [r9023] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/scripts/plpgsql/st_clip.sql,
+	  raster/scripts/plpgsql/st_union.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster.sql: Implemented
+	  keywords for 2-raster ST_MapAlgebraExpr as described in #1525.
+	  Will do 2-raster ST_MapAlgebraFct next.
 
-2012-02-03 21:29  pramsey
+2012-02-03 21:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Separate the cache handling code from the transform function
+	* [r9022] postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_transform.c: Separate the cache handling code from
+	  the transform function
 
-2012-02-03 21:04  mcayland
+2012-02-03 21:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix pgsql2shp crash when dumping a table without a geo column.
+	* [r9021] loader/pgsql2shp-core.c: Fix pgsql2shp crash when dumping
+	  a table without a geo column.
 
-2012-02-03 21:04  mcayland
+2012-02-03 21:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix construction of pgsql2shp's main retrieval query in
-	  ShpDumperOpenTable().
+	* [r9020] loader/pgsql2shp-core.c: Fix construction of pgsql2shp's
+	  main retrieval query in ShpDumperOpenTable().
 	  
 	  This fixes a regression which caused pgsql2shp to generate an
 	  incorrect SQL query
 	  for tables without any geo columns.
 
-2012-02-03 21:03  mcayland
+2012-02-03 21:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Move initialisation of pgsql2shp state endian flag to the same
-	  location all the other initialisers.
+	* [r9019] loader/pgsql2shp-core.c: Move initialisation of pgsql2shp
+	  state endian flag to the same location all the other
+	  initialisers.
 
-2012-02-03 21:03  mcayland
+2012-02-03 21:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix missing #ifdef POSTGIS_GEOS_VERSION ... #endif preventing
-	  liblwgeom from compiling on GEOS < 3.3.0.
+	* [r9018] liblwgeom/lwgeom_geos_node.c: Fix missing #ifdef
+	  POSTGIS_GEOS_VERSION ... #endif preventing liblwgeom from
+	  compiling on GEOS < 3.3.0.
 
-2012-02-03 18:09  dustymugs
+2012-02-03 18:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed optimization bug in 1-raster ST_MapAlgebraExpr. Ticket is
-	  #1515.
+	* [r9017] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebraexpr_expected: Fixed
+	  optimization bug in 1-raster ST_MapAlgebraExpr. Ticket is #1515.
 
-2012-02-03 12:51  robe
+2012-02-03 12:51  Regina Obe <lr at pcorp.us>
 
-	* #1530: fix typo in full upgrade -- was using the postgis only
-	  script instead of the combined postgis + raster script. Still
-	  need to test, will close out once tested.
+	* [r9016] extensions/postgis/Makefile.in: #1530: fix typo in full
+	  upgrade -- was using the postgis only script instead of the
+	  combined postgis + raster script. Still need to test, will close
+	  out once tested.
 
-2012-02-03 03:58  dustymugs
+2012-02-03 03:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Reverted r9014. Hudson ain't happy with sed.
+	* [r9015] raster/rt_pg/Makefile.in: Reverted r9014. Hudson ain't
+	  happy with sed.
 
-2012-02-03 03:51  dustymugs
+2012-02-03 03:51  Bborie Park <bkpark at ucdavis.edu>
 
-	* Merge of patch provided in #1533. Thanks gdt.
+	* [r9014] raster/rt_pg/Makefile.in: Merge of patch provided in
+	  #1533. Thanks gdt.
 
-2012-02-02 19:25  dustymugs
+2012-02-02 19:25  Bborie Park <bkpark at ucdavis.edu>
 
-	* Message cleanup by removing unnecessary newlines.
+	* [r9013] raster/rt_core/rt_api.c: Message cleanup by removing
+	  unnecessary newlines.
 
-2012-02-02 18:47  dustymugs
+2012-02-02 18:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored stderr messaging so that C API messages are properly
-	  emitted. Based on suggestion in comment 4 of #1531.
+	* [r9012] raster/loader/raster2pgsql.c: Refactored stderr messaging
+	  so that C API messages are properly emitted. Based on suggestion
+	  in comment 4 of #1531.
 
-2012-02-02 17:38  dustymugs
+2012-02-02 17:38  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional error checking and formatting of error messages
+	* [r9011] raster/loader/raster2pgsql.c: Additional error checking
+	  and formatting of error messages
 
-2012-02-01 23:55  pramsey
+2012-02-01 23:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add lwcollection_homogenize and ST_Homogenize (#375)
+	* [r9010] doc/reference_editor.xml: Add lwcollection_homogenize and
+	  ST_Homogenize (#375)
 
-2012-02-01 23:18  pramsey
+2012-02-01 23:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add lwcollection_homogenize and ST_Homogenize (#375)
+	* [r9009] liblwgeom/lwhomogenize.c,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in.c: Add
+	  lwcollection_homogenize and ST_Homogenize (#375)
 
-2012-02-01 23:00  pramsey
+2012-02-01 23:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Support curves in lwgeom_homogenize (#1526)
+	* [r9008] liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwhomogenize.c,
+	  liblwgeom/lwhomogenize.h: Support curves in lwgeom_homogenize
+	  (#1526)
 
-2012-02-01 22:06  dustymugs
+2012-02-01 22:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added check of values being passed to atan2() in
-	  _st_hillshade4ma()
+	* [r9007] raster/rt_pg/rtpostgis.sql.in.c: Added check of values
+	  being passed to atan2() in _st_hillshade4ma()
 
-2012-02-01 21:27  pramsey
+2012-02-01 21:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Enhance ST_Rotate by adding offset origin parameters (#1251) from
-	  mwtoews
+	* [r9006] doc/reference_editor.xml, postgis/postgis.sql.in.c,
+	  regress/affine.sql, regress/affine_expected: Enhance ST_Rotate by
+	  adding offset origin parameters (#1251) from mwtoews
 
-2012-02-01 21:17  pramsey
+2012-02-01 21:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Azimuth, ST_Project regression tests (#1398)
+	* [r9005] regress/tickets.sql, regress/tickets_expected:
+	  ST_Azimuth, ST_Project regression tests (#1398)
 
-2012-02-01 17:39  pramsey
+2012-02-01 17:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Also remove .gitignore files from tarbal distro
+	* [r9004] make_dist.sh: Also remove .gitignore files from tarbal
+	  distro
 
-2012-02-01 17:35  pramsey
+2012-02-01 17:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Push forward versions for weekly snap
+	* [r9001] ChangeLog, NEWS, README.postgis, Version.config: Push
+	  forward versions for weekly snap
 
-2012-02-01 17:28  robe
+2012-02-01 17:28  Regina Obe <lr at pcorp.us>
 
-	* #1494: build parent structures to support census tract reporting
+	* [r9000]
+	  extras/tiger_geocoder/tiger_2010/tables/census_tracts_tables.sql:
+	  #1494: build parent structures to support census tract reporting
 	  by geocoder.
 
-2012-02-01 15:28  dustymugs
+2012-02-01 15:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional cleanup of a few functions using
-	  ST_PixelAsPolygon(raster, int, int, int). Also, made map algebra
-	  expression case-sensitive in 2-raster ST_MapAlgebraExpr. Now, the
-	  keywords must be RAST1 and RAST2.
+	* [r8999] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebraexpr_2raster.sql: Additional
+	  cleanup of a few functions using ST_PixelAsPolygon(raster, int,
+	  int, int). Also, made map algebra expression case-sensitive in
+	  2-raster ST_MapAlgebraExpr. Now, the keywords must be RAST1 and
+	  RAST2.
 
-2012-02-01 14:58  dustymugs
+2012-02-01 14:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored regression test for ST_PixelAsPolygon
+	* [r8998] raster/test/regress/rt_pixelvalue.sql: Refactored
+	  regression test for ST_PixelAsPolygon
 
-2012-02-01 14:32  dustymugs
+2012-02-01 14:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Deleted deprecated ST_PixelAsPolygon(raster, int, int, int)
-	  variant.
+	* [r8997] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Deleted deprecated
+	  ST_PixelAsPolygon(raster, int, int, int) variant.
 
-2012-02-01 11:51  strk
+2012-02-01 11:51  Sandro Santilli <strk at keybit.net>
 
-	* Make test more readable
+	* [r8996] raster/test/regress/rt_mapalgebraexpr.sql: Make test more
+	  readable
 
-2012-02-01 11:39  strk
+2012-02-01 11:39  Sandro Santilli <strk at keybit.net>
 
-	* Keep initial value when an expression eveluates to null (#1523)
+	* [r8995] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_expected: Keep initial
+	  value when an expression eveluates to null (#1523)
 
-2012-02-01 10:15  strk
+2012-02-01 10:15  Sandro Santilli <strk at keybit.net>
 
-	* Implement RAST.X and RAST.Y keyword substitution in
-	  ST_MapAlgebraExpr
+	* [r8994] doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_expected: Implement RAST.X
+	  and RAST.Y keyword substitution in ST_MapAlgebraExpr
 	  
 	  Includes regression test and documentation update. See #1519.
 
-2012-02-01 09:20  strk
+2012-02-01 09:20  Sandro Santilli <strk at keybit.net>
 
-	* Implement ST_PixelAsPolygon in C, provide a core API entry for it
+	* [r8993] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c: Implement
+	  ST_PixelAsPolygon in C, provide a core API entry for it
 	  
 	  The API entry point is expected to be useful for #1519
 
-2012-02-01 05:30  pramsey
+2012-02-01 05:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Try again to fix #1292
+	* [r8992] liblwgeom/lwgeodetic.c: Try again to fix #1292
 
-2012-02-01 02:14  pramsey
+2012-02-01 02:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* VACUUM cannot be executed from a function or multi-command string
-	  (#1517)
+	* [r8991] spatial_ref_sys.sql: VACUUM cannot be executed from a
+	  function or multi-command string (#1517)
 
-2012-02-01 00:41  pramsey
+2012-02-01 00:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix include to be pathless
+	* [r8990] postgis/geography_measurement.c: Fix include to be
+	  pathless
 
-2012-01-31 23:36  pramsey
+2012-01-31 23:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update spatial_ref_sys to latest GDAL generated version (#1493)
+	* [r8987] spatial_ref_sys.sql: Update spatial_ref_sys to latest
+	  GDAL generated version (#1493)
 
-2012-01-31 22:33  pramsey
+2012-01-31 22:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Line_Interpolate_Point doesn't interpolate M-values (#639)
+	* [r8986] postgis/lwgeom_functions_analytic.c:
+	  ST_Line_Interpolate_Point doesn't interpolate M-values (#639)
 
-2012-01-31 20:46  pramsey
+2012-01-31 20:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove some compile warnings.
+	* [r8984] liblwgeom/lwgeodetic.c, loader/pgsql2shp-cli.c,
+	  loader/pgsql2shp-core.h, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.h, loader/shp2pgsql-gui.c: Remove some
+	  compile warnings.
 
-2012-01-31 18:56  pramsey
+2012-01-31 18:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Gah, someone else can do this...
+	* [r8982] postgis/postgis.sql.in.c: Gah, someone else can do
+	  this...
 
-2012-01-31 18:24  pramsey
+2012-01-31 18:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Really, I do know how to write XML.
+	* [r8981] doc/faq.xml: Really, I do know how to write XML.
 
-2012-01-31 18:19  pramsey
+2012-01-31 18:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_SnapToGrid returns a value out of range (#1292)
+	* [r8980] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeodetic.c,
+	  postgis/geography_inout.c: ST_SnapToGrid returns a value out of
+	  range (#1292)
 
-2012-01-31 18:12  pramsey
+2012-01-31 18:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename ST_BuildArea backend function
+	* [r8979] liblwgeom/lwgeom_geos.c, postgis/legacy.sql.in.c: Rename
+	  ST_BuildArea backend function
 
-2012-01-31 18:10  pramsey
+2012-01-31 18:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix missing tag
+	* [r8978] doc/faq.xml: Fix missing tag
 
-2012-01-31 18:09  pramsey
+2012-01-31 18:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Drop Equals(geom,geom) - deprecated in 1.2.3 (#1486)
+	* [r8977] postgis/postgis.sql.in.c: Drop Equals(geom,geom) -
+	  deprecated in 1.2.3 (#1486)
 
-2012-01-31 18:03  pramsey
+2012-01-31 18:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* FAQ about licensing (#1262)
+	* [r8976] doc/faq.xml: FAQ about licensing (#1262)
 
-2012-01-31 17:44  dustymugs
+2012-01-31 17:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Explicitly set spatial index name as PostgreSQL 8.4 requires an
+	* [r8975] raster/loader/raster2pgsql.c, raster/rt_pg/rt_pg.c:
+	  Explicitly set spatial index name as PostgreSQL 8.4 requires an
 	  index name. Associated ticket is #1513. Also fixed string trim
 	  functions to prevent modification of passed string.
 
-2012-01-31 14:50  dustymugs
+2012-01-31 14:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed evaluation of two floating point numbers in
-	  RASTER_getRotation. Fixes one of the two regression failures
-	  described in #1501.
+	* [r8974] raster/rt_pg/rt_pg.c: Fixed evaluation of two floating
+	  point numbers in RASTER_getRotation. Fixes one of the two
+	  regression failures described in #1501.
 
-2012-01-31 14:46  dustymugs
+2012-01-31 14:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added check of band # passed to ST_DumpAsPolygons. Fixes #1514.
+	* [r8973] raster/rt_pg/rt_pg.c: Added check of band # passed to
+	  ST_DumpAsPolygons. Fixes #1514.
 
-2012-01-31 05:50  pramsey
+2012-01-31 05:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Pgsql2shp: Dumping: XWKB structure does not match expected size!
-	  (#1479)
+	* [r8972] loader/pgsql2shp-core.c: Pgsql2shp: Dumping: XWKB
+	  structure does not match expected size! (#1479)
 
-2012-01-30 21:52  pramsey
+2012-01-30 21:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Segmentize returns invalid LINESTRING for zero-length input
-	  (#1304)
+	* [r8971] liblwgeom/ptarray.c: ST_Segmentize returns invalid
+	  LINESTRING for zero-length input (#1304)
 
-2012-01-30 20:41  pramsey
+2012-01-30 20:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_LocateBetweenElevations should return NULL and not fail if
+	* [r8969] liblwgeom/lwlinearreferencing.c:
+	  ST_LocateBetweenElevations should return NULL and not fail if
 	  intersection is void (#1250)
 
-2012-01-30 20:17  pramsey
+2012-01-30 20:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Within not using prepared geometries (#962)
+	* [r8968] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c:
+	  ST_Within not using prepared geometries (#962)
 
-2012-01-30 02:47  pramsey
+2012-01-30 02:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* (#393) shp2pgsql returns "fseek(-xxx) failed on DBF file." for
+	* [r8967] loader/pgsql2shp-core.c, loader/pgsql2shp-core.h,
+	  loader/safileio.c, loader/shapefil.h, loader/shp2pgsql-core.h:
+	  (#393) shp2pgsql returns "fseek(-xxx) failed on DBF file." for
 	  large (>2GB) DBF files
 
-2012-01-30 00:37  pramsey
+2012-01-30 00:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* GML for empty geometries should be NULL (#1377)
+	* [r8966] liblwgeom/cunit/cu_out_gml.c, liblwgeom/lwout_gml.c,
+	  postgis/geography_inout.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_in_gml.c, regress/empty_expected,
+	  regress/tickets.sql, regress/tickets_expected: GML for empty
+	  geometries should be NULL (#1377)
 
-2012-01-29 23:30  nicklas
+2012-01-29 23:30  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Increase robustness in distance-calculations when point is on
-	  segment.
+	* [r8965] liblwgeom/measures.c, regress/measures.sql,
+	  regress/measures_expected: Increase robustness in
+	  distance-calculations when point is on segment.
 
-2012-01-29 21:19  strk
+2012-01-29 21:19  Sandro Santilli <strk at keybit.net>
 
-	* typo
+	* [r8964] postgis/geometry_estimate.c: typo
 
-2012-01-29 19:57  pramsey
+2012-01-29 19:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Be more liberal in accepting "empty" tags in constructing
-	  geometries from GML (#1059)
+	* [r8963] postgis/lwgeom_in_gml.c, regress/in_gml_expected: Be more
+	  liberal in accepting "empty" tags in constructing geometries from
+	  GML (#1059)
 
-2012-01-29 14:44  strk
+2012-01-29 14:44  Sandro Santilli <strk at keybit.net>
 
-	* Give me psc status
+	* [r8962] CREDITS: Give me psc status
 
-2012-01-28 23:11  strk
+2012-01-28 23:11  Sandro Santilli <strk at keybit.net>
 
-	* Fix _ST_AddFaceSplit code against PostgreSQL 9.1
+	* [r8961] topology/sql/sqlmm.sql.in.c: Fix _ST_AddFaceSplit code
+	  against PostgreSQL 9.1
 
-2012-01-28 22:08  strk
+2012-01-28 22:08  Sandro Santilli <strk at keybit.net>
 
-	* Don't put constant geometries in CTE, which confuses estimator
+	* [r8960] topology/sql/populate.sql.in.c: Don't put constant
+	  geometries in CTE, which confuses estimator
 
-2012-01-28 17:05  strk
+2012-01-28 17:05  Sandro Santilli <strk at keybit.net>
 
-	* Simplify code in _ST_AddFaceSplit, reduce edges table scans.
+	* [r8959] topology/sql/sqlmm.sql.in.c: Simplify code in
+	  _ST_AddFaceSplit, reduce edges table scans.
 	  
 	  Also set debugging off by default
 
-2012-01-28 16:20  strk
+2012-01-28 16:20  Sandro Santilli <strk at keybit.net>
 
-	* Switch ST_AddEdgeNewFaces from ST_Polygonize to _ST_AddSplitFace
+	* [r8958] topology/sql/sqlmm.sql.in.c: Switch ST_AddEdgeNewFaces
+	  from ST_Polygonize to _ST_AddSplitFace
 	  
 	  See ticket #1508
 
-2012-01-28 13:45  strk
+2012-01-28 13:45  Sandro Santilli <strk at keybit.net>
 
-	* Stop using ST_Polygonize from ST_AddEdgeModFace.
+	* [r8957] topology/sql/sqlmm.sql.in.c: Stop using ST_Polygonize
+	  from ST_AddEdgeModFace.
 	  
 	  This commit also estrapolates an internal _ST_AddSplitFace
 	  function
 	  for reuse by ST_AddEdgeModFaces
 
-2012-01-28 13:18  strk
+2012-01-28 13:18  Sandro Santilli <strk at keybit.net>
 
-	* Rename topogeometry column check to be more readable
+	* [r8956] topology/topology.sql.in.c: Rename topogeometry column
+	  check to be more readable
 
-2012-01-28 10:42  strk
+2012-01-28 10:42  Sandro Santilli <strk at keybit.net>
 
-	* New test for closing multi-edge ring in a face (ST_AddEdge*Face*)
+	* [r8955] topology/test/regress/st_addedgemodface.sql,
+	  topology/test/regress/st_addedgemodface_expected,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: New test for
+	  closing multi-edge ring in a face (ST_AddEdge*Face*)
 
-2012-01-28 07:44  strk
+2012-01-28 07:44  Sandro Santilli <strk at keybit.net>
 
-	* Allow multiple topogeometry columns in one table (again)
+	* [r8954] topology/topology.sql.in.c: Allow multiple topogeometry
+	  columns in one table (again)
 	  
 	  Dunno why this piece was missing from previous commit, sorry
 
-2012-01-28 07:37  strk
+2012-01-28 07:37  Sandro Santilli <strk at keybit.net>
 
-	* Allow multiple TopoGeometry column in the same table
+	* [r8953] topology/test/regress/addtopogeometrycolumn.sql,
+	  topology/test/regress/addtopogeometrycolumn_expected: Allow
+	  multiple TopoGeometry column in the same table
 
-2012-01-28 00:23  robe
+2012-01-28 00:23  Regina Obe <lr at pcorp.us>
 
-	* add protos for ST_Quantile raster table coverage. Still some more
-	  to add as well as examples of usage
+	* [r8952] doc/reference_raster.xml: add protos for ST_Quantile
+	  raster table coverage. Still some more to add as well as examples
+	  of usage
 
-2012-01-27 23:31  pramsey
+2012-01-27 23:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix one remaining crasher for ST_AsGML('SRID=4326;POLYGON
-	  EMPTY');
+	* [r8951] liblwgeom/lwout_gml.c: Fix one remaining crasher for
+	  ST_AsGML('SRID=4326;POLYGON EMPTY');
 
-2012-01-27 22:24  pramsey
+2012-01-27 22:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #1504 (Segfault running ST_EstimatedExtent())
+	* [r8950] postgis/geometry_estimate.c: #1504 (Segfault running
+	  ST_EstimatedExtent())
 
-2012-01-27 21:05  dustymugs
+2012-01-27 21:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed segfault caused by an empty quantile linked list being used
-	  to get the quantile's value. Ticket is #1506.
+	* [r8949] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c: Fixed segfault caused by an empty quantile
+	  linked list being used to get the quantile's value. Ticket is
+	  #1506.
 
-2012-01-27 20:55  pramsey
+2012-01-27 20:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Tighten up on-arc test a bit more.
+	* [r8948] liblwgeom/cunit/cu_ptarray.c, liblwgeom/lwsegmentize.c:
+	  Tighten up on-arc test a bit more.
 
-2012-01-27 20:14  strk
+2012-01-27 20:14  Sandro Santilli <strk at keybit.net>
 
-	* Add "face has no rings" validity checking
+	* [r8947] topology/test/regress/legacy_invalid_expected,
+	  topology/topology.sql.in.c: Add "face has no rings" validity
+	  checking
 
-2012-01-27 18:57  pramsey
+2012-01-27 18:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Revert accidental inclusion of shape file size patch in curve
-	  patch
+	* [r8946] loader/safileio.c, loader/shapefil.h: Revert accidental
+	  inclusion of shape file size patch in curve patch
 
-2012-01-27 18:54  pramsey
+2012-01-27 18:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #920 (ST_LineToCurve generating invalid CURVEPOLYGON)
+	* [r8945] install-sh, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwsegmentize.c,
+	  loader/safileio.c, loader/shapefil.h,
+	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected,
+	  regress/tickets_expected: #920 (ST_LineToCurve generating invalid
+	  CURVEPOLYGON)
 
-2012-01-27 14:22  strk
+2012-01-27 14:22  Sandro Santilli <strk at keybit.net>
 
-	* More test for face splitting and inside holes
+	* [r8944] topology/test/regress/st_addedgemodface.sql,
+	  topology/test/regress/st_addedgemodface_expected,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: More test for
+	  face splitting and inside holes
 
-2012-01-27 11:36  strk
+2012-01-27 11:36  Sandro Santilli <strk at keybit.net>
 
-	* More test for update of isolated nodes in split-faces.
+	* [r8943] topology/test/regress/st_addedgemodface.sql,
+	  topology/test/regress/st_addedgemodface_expected,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: More test for
+	  update of isolated nodes in split-faces.
 
-2012-01-27 11:05  strk
+2012-01-27 11:05  Sandro Santilli <strk at keybit.net>
 
-	* Rewrite test for ST_AddIsoNode (see #1503)
+	* [r8942] topology/test/regress/st_addisonode.sql,
+	  topology/test/regress/st_addisonode_expected: Rewrite test for
+	  ST_AddIsoNode (see #1503)
 
-2012-01-27 11:05  strk
+2012-01-27 11:05  Sandro Santilli <strk at keybit.net>
 
-	* Simplify the code looking for face containment in ST_AddIsoNode
+	* [r8941] topology/sql/sqlmm.sql.in.c: Simplify the code looking
+	  for face containment in ST_AddIsoNode
 	  
 	  Fixes bug #1503 for me, altough I didn't handle to produce a
 	  testcase for it.
 
-2012-01-27 08:18  strk
+2012-01-27 08:18  Sandro Santilli <strk at keybit.net>
 
-	* Add test for update of isolated nodes in split-faces.
+	* [r8940] topology/test/regress/st_addedgemodface.sql,
+	  topology/test/regress/st_addedgemodface_expected,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: Add test for
+	  update of isolated nodes in split-faces.
 	  
 	  Affects both ST_AddEdgeModFace and ST_AddEdgeNewFaces (both work)
 
-2012-01-26 20:25  pramsey
+2012-01-26 20:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Complete #737
+	* [r8939] regress/Makefile.in, regress/wmsservers.sql,
+	  regress/wmsservers_expected, regress/wmsservers_new.sql,
+	  regress/wmsservers_new_expected, regress/wmsservers_old.sql,
+	  regress/wmsservers_old_expected: Complete #737
 
-2012-01-26 20:19  pramsey
+2012-01-26 20:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Detect asprintf, vasprintf, fseeko
+	* [r8938] configure.ac, postgis_config.h.in: Detect asprintf,
+	  vasprintf, fseeko
 
-2012-01-26 18:09  strk
+2012-01-26 18:09  Sandro Santilli <strk at keybit.net>
 
-	* Change expectations from tests involving ST_MakeLine
+	* [r8937] regress/regress_expected, regress/tickets_expected:
+	  Change expectations from tests involving ST_MakeLine
 
-2012-01-26 17:23  pramsey
+2012-01-26 17:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Clean up and exit when shp file missing
+	* [r8936] loader/shpopen.c: Clean up and exit when shp file missing
 
-2012-01-26 16:22  pramsey
+2012-01-26 16:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix contact per a message on postgis-users from Markus Innerebner
+	* [r8932] java/jdbc/src/org/postgis/LineString.java: Fix contact
+	  per a message on postgis-users from Markus Innerebner
 
-2012-01-26 13:00  strk
+2012-01-26 13:00  Sandro Santilli <strk at keybit.net>
 
-	* Add support for linestrings in ST_MakeLine (#1500)
+	* [r8931] doc/reference_constructor.xml,
+	  postgis/lwgeom_functions_basic.c, regress/ctors.sql,
+	  regress/ctors_expected: Add support for linestrings in
+	  ST_MakeLine (#1500)
 	  
 	  Affects both the aggregate and the 2-parameters function.
 	  Regression testing included.
 	  Documentation was updated, but lacks examples.
 
-2012-01-26 12:59  strk
+2012-01-26 12:59  Sandro Santilli <strk at keybit.net>
 
-	* Implement lwline_from_lwgeom_array (untested)
+	* [r8930] liblwgeom/liblwgeom.h.in, liblwgeom/lwline.c: Implement
+	  lwline_from_lwgeom_array (untested)
 
-2012-01-26 12:59  strk
+2012-01-26 12:59  Sandro Santilli <strk at keybit.net>
 
-	* Don't let ptarray_append_ptarray change read-only pointarrays
+	* [r8929] liblwgeom/cunit/cu_ptarray.c, liblwgeom/ptarray.c: Don't
+	  let ptarray_append_ptarray change read-only pointarrays
 
-2012-01-26 12:59  strk
+2012-01-26 12:59  Sandro Santilli <strk at keybit.net>
 
-	* Test that mixed dimensionality is not allowed by
-	  ptarray_append_ptarray
+	* [r8928] liblwgeom/cunit/cu_ptarray.c: Test that mixed
+	  dimensionality is not allowed by ptarray_append_ptarray
 
-2012-01-26 12:34  strk
+2012-01-26 12:34  Sandro Santilli <strk at keybit.net>
 
-	* Add more test for FLAGS_GET_ and FLAGS_SET_
+	* [r8927] liblwgeom/cunit/cu_libgeom.c: Add more test for
+	  FLAGS_GET_ and FLAGS_SET_
 
-2012-01-26 09:16  strk
+2012-01-26 09:16  Sandro Santilli <strk at keybit.net>
 
-	* Implement ptarray_append_ptarray, and change its signature
+	* [r8926] liblwgeom/cunit/cu_ptarray.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/ptarray.c: Implement ptarray_append_ptarray, and change
+	  its signature
 	  
 	  This is propedeutic to ticket #1500
 
-2012-01-26 08:12  strk
+2012-01-26 08:12  Sandro Santilli <strk at keybit.net>
 
-	* Tweak debug messages not to clutter output
+	* [r8925] topology/sql/sqlmm.sql.in.c: Tweak debug messages not to
+	  clutter output
 
-2012-01-25 17:40  pramsey
+2012-01-25 17:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bump version string forward
+	* [r8924] Version.config: Bump version string forward
 
-2012-01-25 17:38  pramsey
+2012-01-25 17:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Prep for alpha2
+	* [r8921] ChangeLog, NEWS, README.postgis: Prep for alpha2
 
-2012-01-24 22:23  pramsey
+2012-01-24 22:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* SVG empty geometries gives invalid memory alloc (#1038)
+	* [r8920] liblwgeom/lwout_svg.c, regress/tickets.sql,
+	  regress/tickets_expected: SVG empty geometries gives invalid
+	  memory alloc (#1038)
 
-2012-01-24 21:57  pramsey
+2012-01-24 21:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update shplib to the latest release (1.3.0b3) and stitch in our
-	  special date and logical handling. (#393)
+	* [r8919] loader/dbfopen.c, loader/pgsql2shp-core.c,
+	  loader/safileio.c, loader/shapefil.h, loader/shp2pgsql-core.c,
+	  loader/shpopen.c: Update shplib to the latest release (1.3.0b3)
+	  and stitch in our special date and logical handling. (#393)
 
-2012-01-24 19:42  pramsey
+2012-01-24 19:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Double guard against geos versions of 3.4.dev form. (#1488)
+	* [r8917] configure.ac: Double guard against geos versions of
+	  3.4.dev form. (#1488)
 
-2012-01-24 18:04  strk
+2012-01-24 18:04  Sandro Santilli <strk at keybit.net>
 
-	* Stop WARNING from AddFace about next_left_edge/next_right_edge
+	* [r8916] doc/extras_topology.xml, topology/sql/populate.sql.in.c:
+	  Stop WARNING from AddFace about next_left_edge/next_right_edge
 
-2012-01-24 17:29  strk
+2012-01-24 17:29  Sandro Santilli <strk at keybit.net>
 
-	* Optimize ST_AddEdge*Face* detection of face split conditions
-	  (#1497)
+	* [r8915] topology/sql/sqlmm.sql.in.c: Optimize ST_AddEdge*Face*
+	  detection of face split conditions (#1497)
 
-2012-01-24 17:29  strk
+2012-01-24 17:29  Sandro Santilli <strk at keybit.net>
 
-	* Protect DEBUG lines in compile-time conditional
+	* [r8914] topology/sql/query/GetRingEdges.sql.in.c: Protect DEBUG
+	  lines in compile-time conditional
 
-2012-01-24 17:20  pramsey
+2012-01-24 17:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Test for #1150, null entry in spatial_ref_sys
+	* [r8913] regress/tickets.sql, regress/tickets_expected: Test for
+	  #1150, null entry in spatial_ref_sys
 
-2012-01-24 14:03  strk
+2012-01-24 14:03  Sandro Santilli <strk at keybit.net>
 
-	* Fix linking bugs with ST_NewEdgesSplit function (#1496)
+	* [r8912] topology/sql/sqlmm.sql.in.c, topology/test/Makefile,
+	  topology/test/regress/st_newedgessplit.sql,
+	  topology/test/regress/st_newedgessplit_expected: Fix linking bugs
+	  with ST_NewEdgesSplit function (#1496)
 	  
 	  Includes test coverage for this other function.
 
-2012-01-24 11:15  strk
+2012-01-24 11:15  Sandro Santilli <strk at keybit.net>
 
-	* Fix edge-linking in ST_ModEdgeSplit (#1496)
+	* [r8911] topology/sql/sqlmm.sql.in.c, topology/test/Makefile,
+	  topology/test/regress/st_modedgesplit.sql,
+	  topology/test/regress/st_modedgesplit_expected: Fix edge-linking
+	  in ST_ModEdgeSplit (#1496)
 	  
 	  Includes regression test. ST_NewEdgesSplit still needs testing.
 
-2012-01-24 00:09  pramsey
+2012-01-24 00:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Prevent people from inserting entries in spatial_ref_sys with no
-	  proj4text (#1150)
+	* [r8910] libpgcommon/lwgeom_transform.c: Prevent people from
+	  inserting entries in spatial_ref_sys with no proj4text (#1150)
 
-2012-01-23 23:27  pramsey
+2012-01-23 23:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make topology enabled the default
+	* [r8908] configure.ac: Make topology enabled the default
 
-2012-01-23 23:20  pramsey
+2012-01-23 23:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Allow raster to actually turn on by default
+	* [r8907] configure.ac: Allow raster to actually turn on by default
 
-2012-01-23 22:20  pramsey
+2012-01-23 22:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move raster/topology status to the bottom of the report
+	* [r8906] configure.ac: Move raster/topology status to the bottom
+	  of the report
 
-2012-01-23 22:18  pramsey
+2012-01-23 22:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Report on raster status whether enabled or not
+	* [r8905] configure.ac: Report on raster status whether enabled or
+	  not
 
-2012-01-23 21:42  pramsey
+2012-01-23 21:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Push forward the trunk version to match release march
+	* [r8904] Version.config: Push forward the trunk version to match
+	  release march
 
-2012-01-22 20:10  strk
+2012-01-22 20:10  Sandro Santilli <strk at keybit.net>
 
-	* Fix ambiguos references (with postgresql 9.x)
+	* [r8903] topology/topology.sql.in.c: Fix ambiguos references (with
+	  postgresql 9.x)
 
-2012-01-22 19:25  strk
+2012-01-22 19:25  Sandro Santilli <strk at keybit.net>
 
-	* AddTopoGeometryColumn: check child layer before incrementing
-	  sequence
+	* [r8902] topology/test/regress/addtopogeometrycolumn.sql,
+	  topology/test/regress/addtopogeometrycolumn_expected,
+	  topology/topology.sql.in.c: AddTopoGeometryColumn: check child
+	  layer before incrementing sequence
 
-2012-01-22 19:13  strk
+2012-01-22 19:13  Sandro Santilli <strk at keybit.net>
 
-	* typo
+	* [r8901] doc/extras_topology.xml: typo
 
-2012-01-22 15:43  strk
+2012-01-22 15:43  Sandro Santilli <strk at keybit.net>
 
-	* TopoGeo_addLineString: fix node crossing, reduce edges creations
+	* [r8900] topology/sql/populate.sql.in.c,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected:
+	  TopoGeo_addLineString: fix node crossing, reduce edges creations
 
-2012-01-22 12:10  strk
+2012-01-22 12:10  Sandro Santilli <strk at keybit.net>
 
-	* Comment typo
+	* [r8899] topology/test/regress/topogeo_addlinestring.sql: Comment
+	  typo
 
-2012-01-21 01:31  robe
+2012-01-21 01:31  Regina Obe <lr at pcorp.us>
 
-	* update build extensions to include the make comments if building
-	  from source repo and also that it requires a separate compile
-	  step (until #1490)
+	* [r8898] doc/installation.xml, extensions/README: update build
+	  extensions to include the make comments if building from source
+	  repo and also that it requires a separate compile step (until
+	  #1490)
 
-2012-01-20 23:41  pramsey
+2012-01-20 23:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix typo
+	* [r8897] configure.ac: Fix typo
 
-2012-01-20 23:05  pramsey
+2012-01-20 23:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make raster on by default and --without-raster the configuration
-	  parameter to disable it.
+	* [r8896] configure.ac: Make raster on by default and
+	  --without-raster the configuration parameter to disable it.
 
-2012-01-20 18:14  robe
+2012-01-20 18:14  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r8895] doc/using_raster_dataman.xml: fix typo
 
-2012-01-20 18:14  robe
+2012-01-20 18:14  Regina Obe <lr at pcorp.us>
 
-	* Add a plpython example for outputting raster images
+	* [r8894] doc/using_raster_dataman.xml: Add a plpython example for
+	  outputting raster images
 
-2012-01-20 14:47  strk
+2012-01-20 14:47  Sandro Santilli <strk at keybit.net>
 
-	* Have TopoGeometry::Geometry always return a MULTI* (#1462)
+	* [r8893] topology/test/regress/createtopogeom_expected,
+	  topology/test/regress/legacy_query_expected,
+	  topology/test/regress/topo2.5d_expected,
+	  topology/test/regress/totopogeom_expected,
+	  topology/topology.sql.in.c: Have TopoGeometry::Geometry always
+	  return a MULTI* (#1462)
 
-2012-01-20 14:47  strk
+2012-01-20 14:47  Sandro Santilli <strk at keybit.net>
 
-	* Don't let ST_Multi create collections of a single EMPTY (#1489)
+	* [r8892] liblwgeom/lwgeom.c, regress/tickets.sql,
+	  regress/tickets_expected: Don't let ST_Multi create collections
+	  of a single EMPTY (#1489)
 
-2012-01-20 10:06  robe
+2012-01-20 10:06  Regina Obe <lr at pcorp.us>
 
-	* #1487: add out_db argument to AddRasterConstraints and
-	  DropRasterConstraints documentation so extensions can install
-	  again
+	* [r8891] doc/reference_raster.xml: #1487: add out_db argument to
+	  AddRasterConstraints and DropRasterConstraints documentation so
+	  extensions can install again
 
-2012-01-20 10:02  strk
+2012-01-20 10:02  Sandro Santilli <strk at keybit.net>
 
-	* Test new types in regress/wkt (#1476)
+	* [r8890] regress/wkt.sql, regress/wkt_expected: Test new types in
+	  regress/wkt (#1476)
 
-2012-01-20 09:11  strk
+2012-01-20 09:11  Sandro Santilli <strk at keybit.net>
 
-	* Exclude raster_columns from geometry_columns (#1122)
+	* [r8889] postgis/postgis.sql.in.c,
+	  raster/test/regress/Makefile.in, raster/test/regress/tickets.sql,
+	  raster/test/regress/tickets_expected: Exclude raster_columns from
+	  geometry_columns (#1122)
 	  
 	  Add regress test, with a newborn "tickets" testcase for raster
 
-2012-01-20 08:46  strk
+2012-01-20 08:46  Sandro Santilli <strk at keybit.net>
 
-	* Fix a missing return introduced with fix to #547
+	* [r8888] postgis/lwgeom_cache.c: Fix a missing return introduced
+	  with fix to #547
 
-2012-01-20 08:12  strk
+2012-01-20 08:12  Sandro Santilli <strk at keybit.net>
 
-	* Change ST_Equals to use the ~= operator (#1453)
+	* [r8886] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c,
+	  regress/empty.sql, regress/empty_expected: Change ST_Equals to
+	  use the ~= operator (#1453)
 	  
 	  Doing so it will consistently return TRUE for EMPTY-EMPTY, while
 	  previously _ST_Equals returned TRUE but ST_Equals returned FALSE.
@@ -11841,46 +23865,53 @@
 	  from 'geomequals' to 'ST_Equals' and marks an SQL 'Equals'
 	  signature as a candidate for dropping before 2.0.0 final
 
-2012-01-20 08:12  strk
+2012-01-20 08:12  Sandro Santilli <strk at keybit.net>
 
-	* Revert "remove ~= from documentation -- we don't want people
-	  using this operator"
+	* [r8885] doc/reference_operator.xml: Revert "remove ~= from
+	  documentation -- we don't want people using this operator"
 	  
 	  This reverts r8799
 
-2012-01-20 07:10  robe
+2012-01-20 07:10  Regina Obe <lr at pcorp.us>
 
-	* readme was outdated.
+	* [r8884] extensions/README: readme was outdated.
 
-2012-01-20 05:08  pramsey
+2012-01-20 05:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update for alpha1?
+	* [r8881] ChangeLog, HOWTO_RELEASE: Update for alpha1?
 
-2012-01-20 00:11  pramsey
+2012-01-20 00:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Transforming from SRID 4267 to 4326 returns incorrect result
-	  (#1301)
+	* [r8880] liblwgeom/lwgeom_transform.c: Transforming from SRID 4267
+	  to 4326 returns incorrect result (#1301)
 
-2012-01-19 23:58  pramsey
+2012-01-19 23:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Stop configure if we don't find perl. (#1484)
+	* [r8879] configure.ac: Stop configure if we don't find perl.
+	  (#1484)
 
-2012-01-19 17:39  strk
+2012-01-19 17:39  Sandro Santilli <strk at keybit.net>
 
-	* In 9.1, it is datamoduledir driving module install dir, not
-	  MODULEDIR
+	* [r8878] postgis/Makefile.in, raster/rt_pg/Makefile.in,
+	  topology/Makefile.in: In 9.1, it is datamoduledir driving module
+	  install dir, not MODULEDIR
 
-2012-01-19 17:15  strk
+2012-01-19 17:15  Sandro Santilli <strk at keybit.net>
 
-	* Have both RTREE and PREPARED_GEOM caches cohexist (#547)
+	* [r8877] postgis/Makefile.in, postgis/lwgeom_cache.c,
+	  postgis/lwgeom_cache.h, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos_prepared.c, postgis/lwgeom_rtree.c,
+	  postgis/lwgeom_rtree.h: Have both RTREE and PREPARED_GEOM caches
+	  cohexist (#547)
 	  
 	  Fixes a memory leak and improves performances when both p-i-p
 	  and other kind of overlays are requested during the same
 	  statement.
 
-2012-01-19 17:03  strk
+2012-01-19 17:03  Sandro Santilli <strk at keybit.net>
 
-	* Update expected raster intersection results after fix to #852
+	* [r8876] raster/test/regress/rt_spatial_relationship_expected:
+	  Update expected raster intersection results after fix to #852
 	  
 	  I've carefully checked the cases and where indeed expecting wrong
 	  results (the point is very close to the raster's convex hull
@@ -11888,76 +23919,90 @@
 	  but slightly outside, ST_Distance reports 1.58882185807825e-14
 	  units)
 
-2012-01-19 09:48  strk
+2012-01-19 09:48  Sandro Santilli <strk at keybit.net>
 
-	* Add test for cached version of point_in_ring (#852)
+	* [r8874] regress/tickets.sql, regress/tickets_expected: Add test
+	  for cached version of point_in_ring (#852)
 
-2012-01-19 08:59  strk
+2012-01-19 08:59  Sandro Santilli <strk at keybit.net>
 
-	* Drop use of tolerance in PIP (#852)
+	* [r8873] postgis/lwgeom_functions_analytic.c, regress/tickets.sql,
+	  regress/tickets_expected: Drop use of tolerance in PIP (#852)
 	  
 	  Affects point_in_ring and point_in_ring_rtree.
 	  Includes regress test but not hitting the cache.
 
-2012-01-19 08:16  strk
+2012-01-19 08:16  Sandro Santilli <strk at keybit.net>
 
-	* Do not run the upgrade test if the normal test failed
+	* [r8872] regress/Makefile.in: Do not run the upgrade test if the
+	  normal test failed
 
-2012-01-19 08:16  strk
+2012-01-19 08:16  Sandro Santilli <strk at keybit.net>
 
-	* Oops, forgot to cleanup after debugging (triggered testsuite
-	  failure)
+	* [r8871] regress/binary.sql: Oops, forgot to cleanup after
+	  debugging (triggered testsuite failure)
 
-2012-01-18 15:47  strk
+2012-01-18 15:47  Sandro Santilli <strk at keybit.net>
 
-	* Rework st_estimated_extent to deal with analyzed empty tables
-	  (#818)
+	* [r8870] postgis/geometry_estimate.c, regress/run_test,
+	  regress/tickets.sql, regress/tickets_expected: Rework
+	  st_estimated_extent to deal with analyzed empty tables (#818)
 	  
 	  Still doesn't distinguish between empty and not analyzed recently
 	  (might be improved in that reguard)
 
-2012-01-18 14:19  strk
+2012-01-18 14:19  Sandro Santilli <strk at keybit.net>
 
-	* Drop &Z_support in ST_Summary, see #649 comment:2
+	* [r8869] doc/reference_accessor.xml: Drop &Z_support in
+	  ST_Summary, see #649 comment:2
 
-2012-01-18 14:17  strk
+2012-01-18 14:17  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_Summary(geography), "G" flag (#1277), document (#649)
+	* [r8868] doc/reference_accessor.xml, liblwgeom/lwgeom_debug.c,
+	  postgis/geography.sql.in.c: Add ST_Summary(geography), "G" flag
+	  (#1277), document (#649)
 
-2012-01-18 13:46  strk
+2012-01-18 13:46  Sandro Santilli <strk at keybit.net>
 
-	* Complete binary IO testing in presence of typmod (#850)
+	* [r8867] regress/typmod.sql, regress/typmod_expected: Complete
+	  binary IO testing in presence of typmod (#850)
 
-2012-01-18 13:46  strk
+2012-01-18 13:46  Sandro Santilli <strk at keybit.net>
 
-	* Do proper cleanups
+	* [r8866] regress/run_test: Do proper cleanups
 
-2012-01-18 13:46  strk
+2012-01-18 13:46  Sandro Santilli <strk at keybit.net>
 
-	* Check typmod on binary geometry input (#850)
+	* [r8865] postgis/lwgeom_inout.c: Check typmod on binary geometry
+	  input (#850)
 	  
 	  Testcase will follow
 
-2012-01-18 10:17  strk
+2012-01-18 10:17  Sandro Santilli <strk at keybit.net>
 
-	* Have geography typmod threat unkonwn srid an omitted srid (#1482)
+	* [r8864] postgis/gserialized_typmod.c, regress/tickets.sql,
+	  regress/tickets_expected: Have geography typmod threat unkonwn
+	  srid an omitted srid (#1482)
 
-2012-01-18 10:17  strk
+2012-01-18 10:17  Sandro Santilli <strk at keybit.net>
 
-	* Add --expect switch to save obtained output as expected
+	* [r8863] regress/run_test: Add --expect switch to save obtained
+	  output as expected
 	  
 	  Will help generating testcases
 
-2012-01-18 10:17  strk
+2012-01-18 10:17  Sandro Santilli <strk at keybit.net>
 
-	* Drop the support for multiple expected files (not needed anymore)
+	* [r8862] regress/run_test: Drop the support for multiple expected
+	  files (not needed anymore)
 	  
 	  The support was also broken, btw...
 
-2012-01-18 08:19  strk
+2012-01-18 08:19  Sandro Santilli <strk at keybit.net>
 
-	* Test roundtrip with a binary cursor for both geometry and
-	  geography
+	* [r8861] regress/binary.sql, regress/binary_expected,
+	  regress/run_test: Test roundtrip with a binary cursor for both
+	  geometry and geography
 	  
 	  With this commit the binary.sql testcase doesn't test the actual
 	  binary output anymore but rather uses canonical binary output to
@@ -11973,245 +24018,339 @@
 	  
 	  See ticket #850 for more info
 
-2012-01-17 20:01  strk
+2012-01-17 20:01  Sandro Santilli <strk at keybit.net>
 
-	* Implement canonical input-output for geography (#850)
+	* [r8860] postgis/geography.sql.in.c, postgis/geography_inout.c,
+	  regress/binary.sql, regress/binary_expected: Implement canonical
+	  input-output for geography (#850)
 	  
 	  Note: canonical output is tested, input isn't.
 
-2012-01-17 19:15  strk
+2012-01-17 19:15  Sandro Santilli <strk at keybit.net>
 
-	* Test canonical binary output for geometry (#850)
+	* [r8859] regress/Makefile.in, regress/binary.sql,
+	  regress/binary_expected: Test canonical binary output for
+	  geometry (#850)
 	  
 	  NOTE: big-endian machines are expected to fail this new test
 	  please send your actual output for a fix
 
-2012-01-17 19:15  strk
+2012-01-17 19:15  Sandro Santilli <strk at keybit.net>
 
-	* Support alternate expected files
+	* [r8858] regress/run_test: Support alternate expected files
 	  
 	  Useful to test WKB output on different byte-endian machines.
 
-2012-01-17 19:15  strk
+2012-01-17 19:15  Sandro Santilli <strk at keybit.net>
 
-	* Support for binary output (#850)
+	* [r8857] regress/run_test: Support for binary output (#850)
 
-2012-01-17 18:04  strk
+2012-01-17 18:04  Sandro Santilli <strk at keybit.net>
 
-	* Override geometrytype for geography (#1450).
+	* [r8856] postgis/geography.sql.in.c, regress/tickets.sql,
+	  regress/tickets_expected: Override geometrytype for geography
+	  (#1450).
 	  
 	  The testusite runs without problems so I didn't also add a
 	  geometrytype(text) function [I want the implicit cast!]
 
-2012-01-17 17:52  strk
+2012-01-17 17:52  Sandro Santilli <strk at keybit.net>
 
-	* Run the testsuite again after upgrading (#1326)
+	* [r8855] raster/test/regress/Makefile.in, regress/Makefile.in,
+	  topology/test/Makefile: Run the testsuite again after upgrading
+	  (#1326)
 
-2012-01-17 17:52  strk
+2012-01-17 17:52  Sandro Santilli <strk at keybit.net>
 
-	* Reword loading of upgrade scripts
+	* [r8854] regress/run_test: Reword loading of upgrade scripts
 
-2012-01-17 17:13  strk
+2012-01-17 17:13  Sandro Santilli <strk at keybit.net>
 
-	* Enhance staged install to include raster, topology and all
+	* [r8853] postgis/Makefile.in, raster/rt_pg/Makefile.in,
+	  raster/test/regress/Makefile.in, regress/Makefile.in,
+	  regress/run_test, topology/Makefile.in, topology/test/Makefile:
+	  Enhance staged install to include raster, topology and all
 	  scripts
 	  
 	  Add an --upgrade switch to regress/run_test in preparation of
 	  regress testing upgrade scripts (#1326)
 
-2012-01-17 08:57  strk
+2012-01-17 08:57  Sandro Santilli <strk at keybit.net>
 
-	* Do not drop legacy getSRID in postgis_drop (#1401)
+	* [r8852] postgis/postgis_drop.sql.in.c: Do not drop legacy getSRID
+	  in postgis_drop (#1401)
 	  
 	  This commit reverts r8837
 
-2012-01-16 22:26  pramsey
+2012-01-16 22:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename lwpoint_interpolate to point_interpolate
+	* [r8851] doc/installation.xml, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwlinearreferencing.c:
+	  Rename lwpoint_interpolate to point_interpolate
 
-2012-01-16 21:13  strk
+2012-01-16 21:13  Sandro Santilli <strk at keybit.net>
 
-	* Snap output of test for #723 to a grid
+	* [r8850] regress/tickets.sql, regress/tickets_expected: Snap
+	  output of test for #723 to a grid
 	  
 	  The test was failing due to coordinate drifts on 32bit
 
-2012-01-16 17:37  strk
+2012-01-16 17:37  Sandro Santilli <strk at keybit.net>
 
-	* Fix 2.5d split (#745)
+	* [r8847] liblwgeom/lwgeom_geos_split.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix 2.5d split (#745)
 
-2012-01-16 17:00  strk
+2012-01-16 17:00  Sandro Santilli <strk at keybit.net>
 
-	* Keep UTM zone numbers in range, regress-test _ST_BestSRID (#1234)
+	* [r8846] postgis/geography_measurement.c, regress/Makefile.in,
+	  regress/bestsrid.sql, regress/bestsrid_expected,
+	  regress/tickets.sql, regress/tickets_expected: Keep UTM zone
+	  numbers in range, regress-test _ST_BestSRID (#1234)
 
-2012-01-16 15:39  strk
+2012-01-16 15:39  Sandro Santilli <strk at keybit.net>
 
-	* Add an ST_AsEWKT(text) to prefer geometry over geography
+	* [r8845] postgis/geography.sql.in.c: Add an ST_AsEWKT(text) to
+	  prefer geometry over geography
 
-2012-01-16 14:46  strk
+2012-01-16 14:46  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_EWKT for geography type (#675)
+	* [r8844] doc/reference_output.xml, postgis/geography.sql.in.c: Add
+	  ST_EWKT for geography type (#675)
 
-2012-01-16 14:33  strk
+2012-01-16 14:33  Sandro Santilli <strk at keybit.net>
 
-	* The official unknown SRID is 0, not -1
+	* [r8843] loader/pgsql2shp-core.c: The official unknown SRID is 0,
+	  not -1
 
-2012-01-16 14:21  strk
+2012-01-16 14:21  Sandro Santilli <strk at keybit.net>
 
-	* Have 'make doc' build the single-page HTML
+	* [r8842] GNUmakefile.in, doc/Makefile.in: Have 'make doc' build
+	  the single-page HTML
 
-2012-01-16 14:04  strk
+2012-01-16 14:04  Sandro Santilli <strk at keybit.net>
 
-	* Allow building with gettext 0.14. Patch by Greg Troxel
-	  <gdt at ir.bbn.com>
+	* [r8841] README.postgis, macros/gettext.m4: Allow building with
+	  gettext 0.14. Patch by Greg Troxel <gdt at ir.bbn.com>
 
-2012-01-16 13:56  strk
+2012-01-16 13:56  Sandro Santilli <strk at keybit.net>
 
-	* Detect PERL locally
+	* [r8840] configure.ac, postgis/Makefile.in,
+	  raster/rt_pg/Makefile.in, topology/Makefile.in: Detect PERL
+	  locally
 
-2012-01-16 13:10  strk
+2012-01-16 13:10  Sandro Santilli <strk at keybit.net>
 
-	* Ignore generated extension files
+	* [r8839] .gitignore: Ignore generated extension files
 
-2012-01-16 12:33  strk
+2012-01-16 12:33  Sandro Santilli <strk at keybit.net>
 
-	* Move lwgeom_summary to liblwgeom (#1446)
+	* [r8838] liblwgeom/Makefile.in, liblwgeom/lwgeom_debug.c,
+	  postgis/Makefile.in, postgis/lwgeom_debug.c: Move lwgeom_summary
+	  to liblwgeom (#1446)
 
-2012-01-16 12:25  strk
+2012-01-16 12:25  Sandro Santilli <strk at keybit.net>
 
-	* Drop getsrid (#1401)
+	* [r8837] postgis/postgis_drop.sql.in.c: Drop getsrid (#1401)
 
-2012-01-16 12:10  strk
+2012-01-16 12:10  Sandro Santilli <strk at keybit.net>
 
-	* Add test for insertion into typmod-ed table (#1414)
+	* [r8836] regress/typmod.sql, regress/typmod_expected: Add test for
+	  insertion into typmod-ed table (#1414)
 
-2012-01-16 11:22  strk
+2012-01-16 11:22  Sandro Santilli <strk at keybit.net>
 
-	* Fix WKB output for POINT EMPTY with SRID or higher dims (#1478)
+	* [r8835] liblwgeom/lwout_wkb.c, regress/tickets.sql,
+	  regress/tickets_expected, regress/wkb_expected: Fix WKB output
+	  for POINT EMPTY with SRID or higher dims (#1478)
 
-2012-01-16 10:34  strk
+2012-01-16 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Add WKB round-trip test for TIN
+	* [r8834] regress/wkb.sql, regress/wkb_expected: Add WKB round-trip
+	  test for TIN
 
-2012-01-16 10:31  strk
+2012-01-16 10:31  Sandro Santilli <strk at keybit.net>
 
-	* Fix reading TRIANGLE EMPTY in WKB form (#1474)
+	* [r8833] liblwgeom/lwin_wkb.c, regress/wkb.sql,
+	  regress/wkb_expected: Fix reading TRIANGLE EMPTY in WKB form
+	  (#1474)
 
-2012-01-16 10:31  strk
+2012-01-16 10:31  Sandro Santilli <strk at keybit.net>
 
-	* Add POLYHEDRALSURFACE roundtrip WKB test
+	* [r8832] regress/wkb.sql, regress/wkb_expected: Add
+	  POLYHEDRALSURFACE roundtrip WKB test
 
-2012-01-16 10:24  strk
+2012-01-16 10:24  Sandro Santilli <strk at keybit.net>
 
-	* Implement lwgeom_same for MULTICURVE and MULTISURFACE (#1475)
+	* [r8831] liblwgeom/lwgeom.c, regress/wkb.sql,
+	  regress/wkb_expected: Implement lwgeom_same for MULTICURVE and
+	  MULTISURFACE (#1475)
 
-2012-01-16 10:21  strk
+2012-01-16 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Implement lwgeom_same for CURVEPOLYGON types (#1475)
+	* [r8830] liblwgeom/lwgeom.c, regress/wkb.sql,
+	  regress/wkb_expected: Implement lwgeom_same for CURVEPOLYGON
+	  types (#1475)
 
-2012-01-16 10:18  strk
+2012-01-16 10:18  Sandro Santilli <strk at keybit.net>
 
-	* Implement lwgeom_same for COMPOUNDCURVE (#1475)
+	* [r8829] liblwgeom/lwgeom.c, regress/wkb.sql,
+	  regress/wkb_expected: Implement lwgeom_same for COMPOUNDCURVE
+	  (#1475)
 
-2012-01-16 10:11  strk
+2012-01-16 10:11  Sandro Santilli <strk at keybit.net>
 
-	* Implement lwgeom_same for circularstring (#1475)
+	* [r8828] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom.c,
+	  regress/wkb.sql, regress/wkb_expected: Implement lwgeom_same for
+	  circularstring (#1475)
 
-2012-01-16 09:11  strk
+2012-01-16 09:11  Sandro Santilli <strk at keybit.net>
 
-	* A CURVEPOLY is also a collection. Fixes #1473.
+	* [r8827] liblwgeom/lwgeom.c, regress/tickets.sql,
+	  regress/tickets_expected: A CURVEPOLY is also a collection. Fixes
+	  #1473.
 
-2012-01-16 09:11  strk
+2012-01-16 09:11  Sandro Santilli <strk at keybit.net>
 
-	* Prevent lwcollection_construct from creating non-collection types
+	* [r8826] liblwgeom/lwcollection.c: Prevent lwcollection_construct
+	  from creating non-collection types
 
-2012-01-16 08:25  strk
+2012-01-16 08:25  Sandro Santilli <strk at keybit.net>
 
-	* Use a CTE for queries involving largs WKB input.
+	* [r8825] topology/sql/populate.sql.in.c: Use a CTE for queries
+	  involving largs WKB input.
 	  
 	  Reduces parsing and execution time.
 
-2012-01-16 08:25  strk
+2012-01-16 08:25  Sandro Santilli <strk at keybit.net>
 
-	* Comment out expensive DEBUG lines
+	* [r8824] topology/sql/topogeometry/totopogeom.sql.in.c: Comment
+	  out expensive DEBUG lines
 
-2012-01-16 08:24  strk
+2012-01-16 08:24  Sandro Santilli <strk at keybit.net>
 
-	* Downgrade notice of face splitting to debug level
+	* [r8823] topology/sql/sqlmm.sql.in.c: Downgrade notice of face
+	  splitting to debug level
 
-2012-01-15 20:52  strk
+2012-01-15 20:52  Sandro Santilli <strk at keybit.net>
 
-	* Wrap DEBUG output in ifdef POSTGIS_TOPOLOGY_DEBUG (#1469)
+	* [r8822] topology/Makefile.in, topology/sql/gml.sql,
+	  topology/sql/gml.sql.in.c, topology/sql/manage/CopyTopology.sql,
+	  topology/sql/manage/CopyTopology.sql.in.c,
+	  topology/sql/manage/ManageHelper.sql,
+	  topology/sql/manage/ManageHelper.sql.in.c,
+	  topology/sql/manage/TopologySummary.sql,
+	  topology/sql/manage/TopologySummary.sql.in.c,
+	  topology/sql/polygonize.sql, topology/sql/polygonize.sql.in.c,
+	  topology/sql/populate.sql, topology/sql/populate.sql.in.c,
+	  topology/sql/predicates.sql, topology/sql/predicates.sql.in.c,
+	  topology/sql/query/GetRingEdges.sql,
+	  topology/sql/query/GetRingEdges.sql.in.c,
+	  topology/sql/query/getedgebypoint.sql,
+	  topology/sql/query/getedgebypoint.sql.in.c,
+	  topology/sql/query/getfacebypoint.sql,
+	  topology/sql/query/getfacebypoint.sql.in.c,
+	  topology/sql/query/getnodebypoint.sql,
+	  topology/sql/query/getnodebypoint.sql.in.c,
+	  topology/sql/sqlmm.sql, topology/sql/sqlmm.sql.in.c,
+	  topology/sql/topoelement/topoelement_agg.sql,
+	  topology/sql/topoelement/topoelement_agg.sql.in.c,
+	  topology/sql/topogeometry/totopogeom.sql,
+	  topology/sql/topogeometry/totopogeom.sql.in.c,
+	  topology/sql/topogeometry/type.sql,
+	  topology/sql/topogeometry/type.sql.in.c,
+	  topology/topology.sql.in.c: Wrap DEBUG output in ifdef
+	  POSTGIS_TOPOLOGY_DEBUG (#1469)
 
-2012-01-15 17:50  strk
+2012-01-15 17:50  Sandro Santilli <strk at keybit.net>
 
-	* Make AddTopoGeometryColumn less sequence-number-eager,
-	  regress-test
+	* [r8821] topology/test/Makefile,
+	  topology/test/regress/addtopogeometrycolumn.sql,
+	  topology/test/regress/addtopogeometrycolumn_expected,
+	  topology/topology.sql.in.c: Make AddTopoGeometryColumn less
+	  sequence-number-eager, regress-test
 
-2012-01-15 09:25  robe
+2012-01-15 09:25  Regina Obe <lr at pcorp.us>
 
-	* put in spaces in ST_InterpolatePoint See Also references
+	* [r8820] doc/reference_lrs.xml: put in spaces in
+	  ST_InterpolatePoint See Also references
 
-2012-01-15 09:23  robe
+2012-01-15 09:23  Regina Obe <lr at pcorp.us>
 
-	* ditto for ST_LocateBetween - name change flag and minor other
-	  corrections
+	* [r8819] doc/reference_lrs.xml: ditto for ST_LocateBetween - name
+	  change flag and minor other corrections
 
-2012-01-15 09:10  robe
+2012-01-15 09:10  Regina Obe <lr at pcorp.us>
 
-	* put a note ST_LocateAlong name changed (and is a new name in 2.0
-	  - old name is ST_Locate_Along_Measure)
+	* [r8818] doc/reference_lrs.xml: put a note ST_LocateAlong name
+	  changed (and is a new name in 2.0 - old name is
+	  ST_Locate_Along_Measure)
 
-2012-01-15 03:59  robe
+2012-01-15 03:59  Regina Obe <lr at pcorp.us>
 
-	* link to where to download pre-built cheat sheets
+	* [r8817] doc/installation.xml: link to where to download pre-built
+	  cheat sheets
 
-2012-01-15 03:32  robe
+2012-01-15 03:32  Regina Obe <lr at pcorp.us>
 
-	* revise docs about make installing extensions to note that
-	  extensions are now installed by default if compiling against
-	  9.1+. Also provide an example query to run to verify extensions
-	  are installed. THANKS pramsey -- now if we can only have a real
-	  tagged release that would be SWEET.
+	* [r8816] doc/installation.xml: revise docs about make installing
+	  extensions to note that extensions are now installed by default
+	  if compiling against 9.1+. Also provide an example query to run
+	  to verify extensions are installed. THANKS pramsey -- now if we
+	  can only have a real tagged release that would be SWEET.
 
-2012-01-15 03:18  robe
+2012-01-15 03:18  Regina Obe <lr at pcorp.us>
 
-	* #1401 Goodbye getSRID()
+	* [r8815] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c: #1401 Goodbye getSRID()
 
-2012-01-14 13:10  mcayland
+2012-01-14 13:10  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Display "Creating Index..." text within the progress dialog
-	  rather than within the shp2pgsql-gui log window.
+	* [r8814] loader/shp2pgsql-gui.c: Display "Creating Index..." text
+	  within the progress dialog rather than within the shp2pgsql-gui
+	  log window.
 	  
 	  This should make it more obvious to users that something is still
 	  happening in the case that
 	  they are building on a index on larger shapefiles which can often
 	  take quite some time.
 
-2012-01-14 07:37  robe
+2012-01-14 07:37  Regina Obe <lr at pcorp.us>
 
-	* change eol from native to LF to try to resolve #1466
+	* [r8813] regress/wkt_expected: change eol from native to LF to try
+	  to resolve #1466
 
-2012-01-14 07:29  robe
+2012-01-14 07:29  Regina Obe <lr at pcorp.us>
 
-	* document --with-gettext=no optionand case why you would want to
-	  do this. Also minor modifications as to use GEOS 3.3.2 and why
-	  you should
+	* [r8812] doc/installation.xml: document --with-gettext=no
+	  optionand case why you would want to do this. Also minor
+	  modifications as to use GEOS 3.3.2 and why you should
 
-2012-01-14 01:03  pramsey
+2012-01-14 01:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_InterpolatePoint, deprecate ST_Locate_Between_Measures and
-	  ST_Locate_Along_Measure. Document new functions. Alter
-	  regressions and docs to use AsText instead of AsEWKT.
+	* [r8811] doc/reference_lrs.xml, liblwgeom/cunit/cu_node.c,
+	  liblwgeom/cunit/cu_ptarray.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom_geos_split.c,
+	  liblwgeom/lwlinearreferencing.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_lrs.c, postgis/postgis.sql.in.c,
+	  regress/regress_lrs.sql, regress/regress_lrs_expected,
+	  regress/tickets_expected: Add ST_InterpolatePoint, deprecate
+	  ST_Locate_Between_Measures and ST_Locate_Along_Measure. Document
+	  new functions. Alter regressions and docs to use AsText instead
+	  of AsEWKT.
 
-2012-01-14 00:49  mcayland
+2012-01-14 00:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Use normal autoconf convention of using #define to determine
-	  whether or not GDALFPOLYGONIZE is present, rather than always
-	  having it present and setting its value to either 0 or 1.
+	* [r8810] configure.ac, raster/rt_core/rt_api.c,
+	  raster/test/core/testapi.c: Use normal autoconf convention of
+	  using #define to determine whether or not GDALFPOLYGONIZE is
+	  present, rather than always having it present and setting its
+	  value to either 0 or 1.
 
-2012-01-14 00:49  mcayland
+2012-01-14 00:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Switch liblwgeom to use the POSTGIS_* defines already generated
+	* [r8809] liblwgeom/Makefile.in, liblwgeom/liblwgeom_internal.h:
+	  Switch liblwgeom to use the POSTGIS_* defines already generated
 	  by configure, rather than passing them in directly.
 	  
 	  Similar to my previous commit, however here the aim is that by
@@ -12220,9 +24359,13 @@
 	  use other compilers rather than embedding
 	  specific -D flags into the command line.
 
-2012-01-14 00:49  mcayland
+2012-01-14 00:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Switch NLS build to use the in-built ENABLE_NLS define rather
+	* [r8808] configure.ac, loader/Makefile.in,
+	  loader/pgsql2shp-core.h, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/shpcommon.h, postgis_config.h.in:
+	  Switch NLS build to use the in-built ENABLE_NLS define rather
 	  than USE_NLS.
 	  
 	  The key concept here is that we eliminate all logic from the
@@ -12233,24 +24376,25 @@
 	  system in future
 	  such as CMake.
 
-2012-01-14 00:49  mcayland
+2012-01-14 00:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Enable configure to accept the additional parameter
-	  --with-gettext=no to disable NLS builds.
+	* [r8807] configure.ac: Enable configure to accept the additional
+	  parameter --with-gettext=no to disable NLS builds.
 	  
 	  This makes it possible to explicitly disable builds at configure
 	  time if required for
 	  platforms where this causes problems such as Windows (see bug
 	  #748).
 
-2012-01-14 00:48  mcayland
+2012-01-14 00:48  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix incorrect camel-casing for HAVE_JSON within configure.ac.
+	* [r8806] configure.ac: Fix incorrect camel-casing for HAVE_JSON
+	  within configure.ac.
 
-2012-01-14 00:48  mcayland
+2012-01-14 00:48  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix up AC_DEFINE macros in configure.ac that don't have a
-	  description.
+	* [r8805] configure.ac, postgis_config.h.in: Fix up AC_DEFINE
+	  macros in configure.ac that don't have a description.
 	  
 	  While autoheader emits a warning, it actually fails and does not
 	  regenerate
@@ -12260,144 +24404,184 @@
 	  minus the
 	  PACKAGE_* macros.
 
-2012-01-13 17:34  strk
+2012-01-13 17:34  Sandro Santilli <strk at keybit.net>
 
-	* Add test for creating tables with circularstring typmod (#1085)
+	* [r8804] regress/typmod.sql, regress/typmod_expected: Add test for
+	  creating tables with circularstring typmod (#1085)
 
-2012-01-13 17:33  strk
+2012-01-13 17:33  Sandro Santilli <strk at keybit.net>
 
-	* First draft of a test for typmod (#1085)
+	* [r8803] regress/Makefile.in, regress/typmod.sql,
+	  regress/typmod_expected: First draft of a test for typmod (#1085)
 	  
 	  This version simply creates the tables and checks
 	  geometry_columns.
 	  Should be enhanced to test effectiveness of constraints.
 
-2012-01-13 16:28  robe
+2012-01-13 16:28  Regina Obe <lr at pcorp.us>
 
-	* remove dangling reference to geometry_same
+	* [r8802] doc/reference_operator.xml: remove dangling reference to
+	  geometry_same
 
-2012-01-13 16:23  strk
+2012-01-13 16:23  Sandro Santilli <strk at keybit.net>
 
-	* Virtualize ``make'' calls (#1464)
+	* [r8801] libpgcommon/Makefile.in: Virtualize ``make'' calls
+	  (#1464)
 
-2012-01-13 15:54  mcayland
+2012-01-13 15:54  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rename geometry column header in shp2pgsql-gui to "geo column" to
-	  reduce its visible width based upon feedback from Regina.
+	* [r8800] loader/shp2pgsql-gui.c: Rename geometry column header in
+	  shp2pgsql-gui to "geo column" to reduce its visible width based
+	  upon feedback from Regina.
 
-2012-01-13 15:50  robe
+2012-01-13 15:50  Regina Obe <lr at pcorp.us>
 
-	* remove ~= from documentation -- we don't want people using this
-	  operator
+	* [r8799] doc/reference_operator.xml: remove ~= from documentation
+	  -- we don't want people using this operator
 
-2012-01-13 13:31  strk
+2012-01-13 13:31  Sandro Santilli <strk at keybit.net>
 
-	* Add all signature in the current repository
+	* [r8798] utils/postgis_restore.pl: Add all signature in the
+	  current repository
 
-2012-01-13 11:34  strk
+2012-01-13 11:34  Sandro Santilli <strk at keybit.net>
 
-	* Add more signatures found in a more recent dump of mine
+	* [r8797] utils/postgis_restore.pl: Add more signatures found in a
+	  more recent dump of mine
 
-2012-01-13 11:29  strk
+2012-01-13 11:29  Sandro Santilli <strk at keybit.net>
 
-	* Make verbose output of postgis_restore.pl more useful for
-	  maintainance
+	* [r8796] utils/postgis_restore.pl: Make verbose output of
+	  postgis_restore.pl more useful for maintainance
 	  
 	  It will now avoid to collapse all spaces to keep the door open
 	  for
 	  better parsing in the future and to be more human readable.
 
-2012-01-13 10:00  strk
+2012-01-13 10:00  Sandro Santilli <strk at keybit.net>
 
-	* Make ~= operator GIST-indexable, following existing documentation
+	* [r8795] postgis/postgis.sql.in.c: Make ~= operator
+	  GIST-indexable, following existing documentation
 	  
 	  NOTE: it takes a dump/reload for this to be in effect.
 
-2012-01-12 21:43  pramsey
+2012-01-12 21:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in an offset option to ST_LocateBetween
+	* [r8794] liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwlinearreferencing.c, postgis/lwgeom_functions_lrs.c:
+	  Add in an offset option to ST_LocateBetween
 
-2012-01-12 19:55  pramsey
+2012-01-12 19:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for MULTIPOINT and POINT to ST_LocateBetween
+	* [r8793] liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwlinearreferencing.c: Add support for MULTIPOINT and
+	  POINT to ST_LocateBetween
 
-2012-01-12 19:07  pramsey
+2012-01-12 19:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Flip ST_LocateBetween to use the same LRS code as
-	  ST_LocateBetweenElevations
+	* [r8792] liblwgeom/cunit/cu_algorithm.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwlinearreferencing.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/postgis.sql.in.c: Flip ST_LocateBetween to use the same
+	  LRS code as ST_LocateBetweenElevations
 
-2012-01-12 17:41  strk
+2012-01-12 17:41  Sandro Santilli <strk at keybit.net>
 
-	* Add regress test for topology.AddFace robustness (see #1383)
+	* [r8791] topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected: Add regress test for
+	  topology.AddFace robustness (see #1383)
 
-2012-01-12 17:06  strk
+2012-01-12 17:06  Sandro Santilli <strk at keybit.net>
 
-	* Fix lw_dist2d_pt_seg(B, AB), see #1459
+	* [r8790] liblwgeom/cunit/cu_measures.c, liblwgeom/measures.c: Fix
+	  lw_dist2d_pt_seg(B, AB), see #1459
 	  
 	  Includes regress testing. Should also fix #1383
 
-2012-01-12 11:21  strk
+2012-01-12 11:21  Sandro Santilli <strk at keybit.net>
 
-	* Complete tests for higher coordinate dimensions (#1455)
+	* [r8789] regress/wkt.sql, regress/wkt_expected: Complete tests for
+	  higher coordinate dimensions (#1455)
 
-2012-01-12 11:21  strk
+2012-01-12 11:21  Sandro Santilli <strk at keybit.net>
 
-	* Fix bug in dimension computer for collection WKT.
+	* [r8788] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/lwin_wkt.c,
+	  regress/wkb_expected: Fix bug in dimension computer for
+	  collection WKT.
 	  
 	  The parser got confused by inner M letters.
 	  This commit also improves speed early breaking the loop over WKT.
 
-2012-01-12 11:20  strk
+2012-01-12 11:20  Sandro Santilli <strk at keybit.net>
 
-	* Add tests for higher coordinate dimensions (#1455)
+	* [r8787] regress/wkt.sql, regress/wkt_expected: Add tests for
+	  higher coordinate dimensions (#1455)
 	  
 	  GEOMETRYCOLLECTION still fails
 
-2012-01-12 08:52  strk
+2012-01-12 08:52  Sandro Santilli <strk at keybit.net>
 
-	* Test roundtrip of WKT. Higher dimensions still needed (#1455)
+	* [r8786] regress/wkt.sql, regress/wkt_expected: Test roundtrip of
+	  WKT. Higher dimensions still needed (#1455)
 
-2012-01-12 08:52  strk
+2012-01-12 08:52  Sandro Santilli <strk at keybit.net>
 
-	* Fix a bug in gserialized_read_gbox_p reading garbage in EMPTY
+	* [r8785] liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_serialized.c:
+	  Fix a bug in gserialized_read_gbox_p reading garbage in EMPTY
 	  point
 	  
 	  Includes cunit test. Fixes #1458.
 
-2012-01-12 08:51  strk
+2012-01-12 08:51  Sandro Santilli <strk at keybit.net>
 
-	* gbox_float_round: do not attempt to round M when not present
+	* [r8784] liblwgeom/g_box.c: gbox_float_round: do not attempt to
+	  round M when not present
 
-2012-01-12 08:51  strk
+2012-01-12 08:51  Sandro Santilli <strk at keybit.net>
 
-	* Expose gbox_float_round to liblwgeom API
+	* [r8783] liblwgeom/g_box.c, liblwgeom/g_serialized.c,
+	  liblwgeom/liblwgeom.h.in: Expose gbox_float_round to liblwgeom
+	  API
 
-2012-01-11 19:45  pramsey
+2012-01-11 19:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change references to BOX2DFLOAT4 to just BOX2D and remove the
-	  struct. Ding dong.
+	* [r8782] liblwgeom/liblwgeom.h.in, postgis/legacy.sql.in.c,
+	  postgis/lwgeom_box.c, postgis/lwgeom_box3d.c,
+	  postgis/postgis.sql.in.c: Change references to BOX2DFLOAT4 to
+	  just BOX2D and remove the struct. Ding dong.
 
-2012-01-11 19:20  pramsey
+2012-01-11 19:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Tie astext(geography) and asbinary(geography) directly to the
-	  lwgeom_ C functions, without a cast
+	* [r8781] postgis/geography.sql.in.c, postgis/geography_inout.c,
+	  postgis/lwgeom_ogc.c: Tie astext(geography) and
+	  asbinary(geography) directly to the lwgeom_ C functions, without
+	  a cast
 
-2012-01-11 18:53  strk
+2012-01-11 18:53  Sandro Santilli <strk at keybit.net>
 
-	* Allow higher dimensions in GeomFromWKB (#1452)
+	* [r8780] postgis/lwgeom_ogc.c, regress/wkb.sql,
+	  regress/wkb_expected: Allow higher dimensions in GeomFromWKB
+	  (#1452)
 	  
 	  Includes regress test for WKB roundtrip
 	  (failing as expected with point empty)
 
-2012-01-11 18:45  strk
+2012-01-11 18:45  Sandro Santilli <strk at keybit.net>
 
-	* Fix bug in gbox_same -> lwgeom_same -> ST_OrderingEquals (#1454)
+	* [r8779] liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_box.c,
+	  regress/tickets.sql, regress/tickets_expected: Fix bug in
+	  gbox_same -> lwgeom_same -> ST_OrderingEquals (#1454)
 	  
 	  Adds regression test for lwgeom_same and ST_OrderingEquals
 
-2012-01-11 17:18  strk
+2012-01-11 17:18  Sandro Santilli <strk at keybit.net>
 
-	* Fix EMPTY ~= EMPTY to return TRUE (#1453)
+	* [r8778] postgis/gserialized_gist_2d.c, regress/empty.sql,
+	  regress/empty_expected, regress/tickets.sql,
+	  regress/tickets_expected: Fix EMPTY ~= EMPTY to return TRUE
+	  (#1453)
 	  
 	  This also fixes ST_OrderingEquals for empty geometries and
 	  adds the concept of NULL boxes to represent EMPTY boxes.
@@ -12405,124 +24589,169 @@
 	  ST_Equals is still broken as it uses the overlap operator
 	  instead.
 
-2012-01-11 17:18  strk
+2012-01-11 17:18  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of libpgcommon on postgis_config.h
+	* [r8777] libpgcommon/Makefile.in: Encode dependency of libpgcommon
+	  on postgis_config.h
 
-2012-01-11 17:18  strk
+2012-01-11 17:18  Sandro Santilli <strk at keybit.net>
 
-	* Xref ST_AsBinary to its reverse ST_GeomFromWKB
+	* [r8776] doc/reference_output.xml: Xref ST_AsBinary to its reverse
+	  ST_GeomFromWKB
 
-2012-01-11 15:57  strk
+2012-01-11 15:57  Sandro Santilli <strk at keybit.net>
 
-	* Add paranoid test of another malformed WKB found in #168
+	* [r8775] liblwgeom/cunit/cu_in_wkb.c: Add paranoid test of another
+	  malformed WKB found in #168
 
-2012-01-11 15:51  strk
+2012-01-11 15:51  Sandro Santilli <strk at keybit.net>
 
-	* Drop ST_AsBinary(text) wrapper, removed in previous commits
+	* [r8774] NEWS, postgis/postgis_drop.sql.in.c: Drop
+	  ST_AsBinary(text) wrapper, removed in previous commits
 
-2012-01-11 14:50  strk
+2012-01-11 14:50  Sandro Santilli <strk at keybit.net>
 
-	* Add documentation about enhancements in ST_AsBinary (#288)
+	* [r8773] doc/reference_output.xml: Add documentation about
+	  enhancements in ST_AsBinary (#288)
 
-2012-01-11 14:46  strk
+2012-01-11 14:46  Sandro Santilli <strk at keybit.net>
 
-	* Drop geography-specific C-side of AsBinary function. Proxy to
-	  geometry.
+	* [r8772] postgis/geography.sql.in.c, postgis/geography_inout.c,
+	  regress/tickets_expected: Drop geography-specific C-side of
+	  AsBinary function. Proxy to geometry.
 	  
 	  See #288
 
-2012-01-11 12:30  strk
+2012-01-11 12:30  Sandro Santilli <strk at keybit.net>
 
-	* Limit geometry_columns view definition within 80 columns.
+	* [r8771] postgis/postgis.sql.in.c: Limit geometry_columns view
+	  definition within 80 columns.
 	  
 	  This is to avoid issues like #1449
 
-2012-01-11 11:17  strk
+2012-01-11 11:17  Sandro Santilli <strk at keybit.net>
 
-	* Add regress test for WKB (#1448) and enable the existing one for
-	  WKT
+	* [r8770] regress/Makefile.in, regress/wkb.sql,
+	  regress/wkb_expected, regress/wkt_expected: Add regress test for
+	  WKB (#1448) and enable the existing one for WKT
 
-2012-01-11 11:17  strk
+2012-01-11 11:17  Sandro Santilli <strk at keybit.net>
 
-	* Unlease higher dimensions in ST_AsBinary, using SQL/MM (#288)
+	* [r8769] NEWS, postgis/lwgeom_ogc.c: Unlease higher dimensions in
+	  ST_AsBinary, using SQL/MM (#288)
 
-2012-01-11 11:16  strk
+2012-01-11 11:16  Sandro Santilli <strk at keybit.net>
 
-	* ST_AsText item is an enhancement, not a new feature
+	* [r8768] NEWS: ST_AsText item is an enhancement, not a new feature
 
-2012-01-11 10:40  strk
+2012-01-11 10:40  Sandro Santilli <strk at keybit.net>
 
-	* Add note aboute AsText support for higher dimension
+	* [r8767] NEWS: Add note aboute AsText support for higher dimension
 
-2012-01-11 10:34  strk
+2012-01-11 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Unleash SQL/MM WKT returned by ST_AsText (#287)
+	* [r8766] postgis/lwgeom_ogc.c,
+	  regress/remove_repeated_points_expected,
+	  regress/simplify_expected,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multisurface_expected, regress/tickets.sql,
+	  regress/tickets_expected: Unleash SQL/MM WKT returned by
+	  ST_AsText (#287)
 
-2012-01-11 08:36  strk
+2012-01-11 08:36  Sandro Santilli <strk at keybit.net>
 
-	* Use $(MAKE) to invoke whatever make was used by builder
+	* [r8763] doc/Makefile.in: Use $(MAKE) to invoke whatever make was
+	  used by builder
 
-2012-01-11 08:26  strk
+2012-01-11 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Update HARD UPGRADE section, mention --with-topology
+	* [r8760] README.postgis: Update HARD UPGRADE section, mention
+	  --with-topology
 
-2012-01-11 02:27  pramsey
+2012-01-11 02:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Try an older bash syntax for robe?
+	* [r8759] extensions/postgis/Makefile.in,
+	  extensions/postgis_topology/Makefile.in: Try an older bash syntax
+	  for robe?
 
-2012-01-10 23:22  pramsey
+2012-01-10 23:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_LocateAlong support for multipoints too (completeness)
+	* [r8758] liblwgeom/lwlinearreferencing.c,
+	  postgis/lwgeom_functions_lrs.c: Add ST_LocateAlong support for
+	  multipoints too (completeness)
 
-2012-01-10 23:14  pramsey
+2012-01-10 23:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bind ST_LocateAlong() to the new LRS function that supports
-	  offsets.
+	* [r8757] liblwgeom/lwlinearreferencing.c,
+	  postgis/lwgeom_functions_lrs.c, postgis/postgis.sql.in.c: Bind
+	  ST_LocateAlong() to the new LRS function that supports offsets.
 
-2012-01-10 23:04  pramsey
+2012-01-10 23:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* svn:ignore properties
+	* [r8756] doc, extensions/postgis, extensions/postgis/Makefile.in,
+	  extensions/postgis/sql, extensions/postgis/sql_bits,
+	  extensions/postgis_topology, extensions/postgis_topology/sql,
+	  extensions/postgis_topology/sql_bits, topology/test: svn:ignore
+	  properties
 
-2012-01-10 23:04  pramsey
+2012-01-10 23:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Spacing, yes
+	* [r8755] configure.ac: Spacing, yes
 
-2012-01-10 22:20  robe
+2012-01-10 22:20  Regina Obe <lr at pcorp.us>
 
-	* #1444 fix typo in command (should be command not comand)
+	* [r8754] doc/installation.xml: #1444 fix typo in command (should
+	  be command not comand)
 
-2012-01-10 21:51  pramsey
+2012-01-10 21:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bring the extensions into the autoconf environment
+	* [r8753] configure.ac, extensions/postgis/Makefile,
+	  extensions/postgis/Makefile.in,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis/postgis.control.in,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/Makefile.in,
+	  extensions/postgis_topology/postgis_topology.control,
+	  extensions/postgis_topology/postgis_topology.control.in: Bring
+	  the extensions into the autoconf environment
 
-2012-01-10 19:36  dustymugs
+2012-01-10 19:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed incorrect call to rt_raster_geopoint_to_cell in
-	  rt_band_load_offline_data and added additional debug messages
+	* [r8752] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Fixed incorrect call to
+	  rt_raster_geopoint_to_cell in rt_band_load_offline_data and added
+	  additional debug messages
 
-2012-01-10 18:45  dustymugs
+2012-01-10 18:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed incorrect use of rt_band_destroy when loading offline band
-	  data. ALso added rules to raster_columns and raster_overviews to
-	  gracefully handle insert/update/delete.
+	* [r8751] raster/rt_core/rt_api.c,
+	  raster/rt_pg/rtpostgis_legacy.sql.in.c: Fixed incorrect use of
+	  rt_band_destroy when loading offline band data. ALso added rules
+	  to raster_columns and raster_overviews to gracefully handle
+	  insert/update/delete.
 
-2012-01-10 18:18  dustymugs
+2012-01-10 18:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed double free of memory when using out-of-database bands
+	* [r8750] raster/loader/raster2pgsql.c: Fixed double free of memory
+	  when using out-of-database bands
 
-2012-01-10 18:12  strk
+2012-01-10 18:12  Sandro Santilli <strk at keybit.net>
 
-	* Add rules on geometry_columns view to tolerate
+	* [r8749] postgis/postgis.sql.in.c, utils/postgis_proc_upgrade.pl:
+	  Add rules on geometry_columns view to tolerate
 	  insert/update/delete
 	  
 	  Fixes OGR, see #1426. Raises no warning on operation (it should).
 	  This commit includes changes in postgis_proc_upgrade.pl to retain
 	  rules.
 
-2012-01-10 14:58  strk
+2012-01-10 14:58  Sandro Santilli <strk at keybit.net>
 
-	* Reflect type of empty from ST_Dimension (#1441)
+	* [r8748] liblwgeom/lwgeom.c: Reflect type of empty from
+	  ST_Dimension (#1441)
 	  
 	  No existing testcase fail, no new testcase is added.
 	  This change doesn't invalidate any part of the reference manual.
@@ -12530,204 +24759,280 @@
 	  
 	  Signed-off-by: Charlie Brown
 
-2012-01-10 13:17  strk
+2012-01-10 13:17  Sandro Santilli <strk at keybit.net>
 
-	* Use a standard lwcollection_allows_subtype function to guard
-	  against bad input.
+	* [r8747] liblwgeom/g_serialized.c, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwcollection.c, regress/tickets_expected: Use a
+	  standard lwcollection_allows_subtype function to guard against
+	  bad input.
 	  
 	  Fixes #698 (and #1445 in a better way)
 
-2012-01-10 12:28  mcayland
+2012-01-10 12:28  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* If the database settings are incorrect when attempting an import,
-	  display the connection settings
+	* [r8746] loader/shp2pgsql-gui.c: If the database settings are
+	  incorrect when attempting an import, display the connection
+	  settings
 	  dialog.
 	  
 	  Also a minor bugfix: if the dialog is cancelled by closing the
 	  window, ensure that any unset
 	  fields are reset back to blank.
 
-2012-01-10 12:28  mcayland
+2012-01-10 12:28  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Switch shp2pgsql-gui to COPY mode by default for increased speed;
-	  the user doesn't really care
+	* [r8745] loader/shp2pgsql-gui.c: Switch shp2pgsql-gui to COPY mode
+	  by default for increased speed; the user doesn't really care
 	  what form the output takes when it's being loaded into the
 	  database directly rather than via
 	  a file.
 
-2012-01-10 12:28  mcayland
+2012-01-10 12:28  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Raise an error within shp2pgsql-gui if the user clicks "Import"
-	  without having added any files to the list.
+	* [r8744] loader/shp2pgsql-gui.c: Raise an error within
+	  shp2pgsql-gui if the user clicks "Import" without having added
+	  any files to the list.
 
-2012-01-10 12:28  mcayland
+2012-01-10 12:28  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Alter shp2pgsql-gui so that we use one connection per file; this
-	  makes tracking error state
+	* [r8743] loader/shp2pgsql-gui.c: Alter shp2pgsql-gui so that we
+	  use one connection per file; this makes tracking error state
 	  on the server considerably easier, since upon abort we just
 	  disconnect from the server rather
 	  than trying to figure out what state we are in and handle it
 	  appropriately.
 
-2012-01-10 11:36  strk
+2012-01-10 11:36  Sandro Santilli <strk at keybit.net>
 
-	* Check type of elements added to multi geometries. Fixes #1445.
+	* [r8742] liblwgeom/cunit/cu_in_wkb.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwin_wkb.c, regress/tickets.sql,
+	  regress/tickets_expected: Check type of elements added to multi
+	  geometries. Fixes #1445.
 	  
 	  Includes regress testing both at the liblwgeom and postgis
 	  levels.
 
-2012-01-10 10:06  strk
+2012-01-10 10:06  Sandro Santilli <strk at keybit.net>
 
-	* Add "M" type modifiers on elements of GEOMETRYCOLLECTION
+	* [r8741] liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/lwout_wkt.c,
+	  regress/regress_lrs_expected,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multisurface_expected,
+	  regress/sql-mm-serialize.sql: Add "M" type modifiers on elements
+	  of GEOMETRYCOLLECTION
 	  
 	  Reflects specs in doc/ZMgeoms.txt and satisfies the parser.
 	  Closes ticket #724.
 
-2012-01-10 08:32  strk
+2012-01-10 08:32  Sandro Santilli <strk at keybit.net>
 
-	* Other generated files
+	* [r8740] .gitignore: Other generated files
 
-2012-01-10 08:28  strk
+2012-01-10 08:28  Sandro Santilli <strk at keybit.net>
 
-	* Ignore new generated files
+	* [r8739] .gitignore: Ignore new generated files
 
-2012-01-10 08:26  strk
+2012-01-10 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Add images-clean rule and perform the cleanup on maintainer-clean
+	* [r8738] doc/Makefile.in, doc/html/image_src/Makefile.in: Add
+	  images-clean rule and perform the cleanup on maintainer-clean
 
-2012-01-10 07:25  robe
+2012-01-10 07:25  Regina Obe <lr at pcorp.us>
 
-	* put in missing title tag
+	* [r8737] doc/installation.xml: put in missing title tag
 
-2012-01-10 07:12  robe
+2012-01-10 07:12  Regina Obe <lr at pcorp.us>
 
-	* put in missing end paragraph end tag
+	* [r8736] doc/installation.xml: put in missing end paragraph end
+	  tag
 
-2012-01-10 07:03  robe
+2012-01-10 07:03  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r8735] doc/installation.xml: fix typo
 
-2012-01-10 06:53  robe
+2012-01-10 06:53  Regina Obe <lr at pcorp.us>
 
-	* #1442: Add sections on installing, upgrading and loading data
-	  into tiger geocoder. Got at least 2 people who seem confused
-	  about how to upgrade their tiger installs and assume it follows
-	  the same steps as the rest of PostGIS.
+	* [r8734] doc/installation.xml: #1442: Add sections on installing,
+	  upgrading and loading data into tiger geocoder. Got at least 2
+	  people who seem confused about how to upgrade their tiger
+	  installs and assume it follows the same steps as the rest of
+	  PostGIS.
 
-2012-01-09 22:43  dustymugs
+2012-01-09 22:43  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added column "out_db" to raster_columns. "out_db" is of type
-	  boolean[] with each element indicating if that band of same index
-	  is out-of-database. Updated relevant AddRasterConstraints and
-	  DropRasterConstraints functions. Related ticket is #1440.
+	* [r8733] raster/loader/raster2pgsql.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/rt_pg/rtpostgis_legacy.sql.in.c: Added column "out_db" to
+	  raster_columns. "out_db" is of type boolean[] with each element
+	  indicating if that band of same index is out-of-database. Updated
+	  relevant AddRasterConstraints and DropRasterConstraints
+	  functions. Related ticket is #1440.
 
-2012-01-09 20:17  robe
+2012-01-09 20:17  Regina Obe <lr at pcorp.us>
 
-	* put in svn Author Date Id Revision keywords
+	* [r8732] extensions/postgis/META.json,
+	  extensions/postgis/Makefile, extensions/postgis/doc/postgis.md,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_extension_helper.sql,
+	  extensions/postgis_extension_helper_uninstall.sql,
+	  extensions/postgis_topology/META.json,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/doc/postgis.md,
+	  extensions/postgis_topology/postgis_topology.control,
+	  extensions/postgis_topology/sql_bits/remove_from_extension.sql.in:
+	  put in svn Author Date Id Revision keywords
 
-2012-01-09 20:08  dustymugs
+2012-01-09 20:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Make the data of externally-loaded band internally owned so a
-	  call to rt_band_destroy() properly frees the memory.
+	* [r8731] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Make the data of externally-loaded
+	  band internally owned so a call to rt_band_destroy() properly
+	  frees the memory.
 
-2012-01-09 19:48  dustymugs
+2012-01-09 19:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add read-only support for band data located outside the database
-	  in raster files. All "get" and analysis functions should work for
-	  out of database bands. Related ticket is #1440. Also added a test
-	  raster file for use by an out of db band and future use for
-	  raster2pgsql loader regression tests.
+	* [r8730] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c, raster/test/loader,
+	  raster/test/loader/testraster.tif: Add read-only support for band
+	  data located outside the database in raster files. All "get" and
+	  analysis functions should work for out of database bands. Related
+	  ticket is #1440. Also added a test raster file for use by an out
+	  of db band and future use for raster2pgsql loader regression
+	  tests.
 
-2012-01-09 19:05  dustymugs
+2012-01-09 19:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed garbage whitespace.
+	* [r8729] raster/rt_pg/rtpostgis.sql.in.c: Removed garbage
+	  whitespace.
 
-2012-01-09 19:02  dustymugs
+2012-01-09 19:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added conditional check to ST_Intersects(raster, int, raster,
-	  int) to deal with STRICT being set on _st_intersects(raster, int,
-	  raster, int). Fixes regression caused in r8714.
+	* [r8728] raster/rt_pg/rtpostgis.sql.in.c: Added conditional check
+	  to ST_Intersects(raster, int, raster, int) to deal with STRICT
+	  being set on _st_intersects(raster, int, raster, int). Fixes
+	  regression caused in r8714.
 
-2012-01-09 18:50  pramsey
+2012-01-09 18:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove whitespace
+	* [r8727] extensions/postgis/Makefile: Remove whitespace
 
-2012-01-09 18:27  pramsey
+2012-01-09 18:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Interim progress on LRS work.
+	* [r8726] liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwline.c, liblwgeom/lwlinearreferencing.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwpoint.c, liblwgeom/measures.c,
+	  liblwgeom/measures3d.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c: Interim
+	  progress on LRS work.
 
-2012-01-09 18:01  strk
+2012-01-09 18:01  Sandro Santilli <strk at keybit.net>
 
-	* Change lwgeom_is_empty to return spatial emptiness (#671)
+	* [r8725] liblwgeom/cunit/cu_libgeom.c, liblwgeom/lwcollection.c,
+	  regress/dump_expected, regress/tickets_expected: Change
+	  lwgeom_is_empty to return spatial emptiness (#671)
 
-2012-01-09 17:55  mcayland
+2012-01-09 17:55  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Allow manual resizing of the filename column within shp2pgsql-gui
-	  if required, as per request from Regina.
+	* [r8724] loader/shp2pgsql-gui.c: Allow manual resizing of the
+	  filename column within shp2pgsql-gui if required, as per request
+	  from Regina.
 
-2012-01-09 17:27  strk
+2012-01-09 17:27  Sandro Santilli <strk at keybit.net>
 
-	* Further cleanup of ST_CollectionExtract documentation
+	* [r8723] doc/reference_editor.xml: Further cleanup of
+	  ST_CollectionExtract documentation
 
-2012-01-09 17:10  strk
+2012-01-09 17:10  Sandro Santilli <strk at keybit.net>
 
-	* Document new ST_CollectionExtract behavior
+	* [r8722] doc/reference_editor.xml: Document new
+	  ST_CollectionExtract behavior
 
-2012-01-09 17:01  strk
+2012-01-09 17:01  Sandro Santilli <strk at keybit.net>
 
-	* Switch back ST_CollectionExtract to return EMPTY rather than NULL
-	  on no matches (#835)
+	* [r8721] postgis/lwgeom_functions_basic.c,
+	  regress/regress_expected, regress/tickets_expected: Switch back
+	  ST_CollectionExtract to return EMPTY rather than NULL on no
+	  matches (#835)
 	  
 	  This behavior seems closer to the one requested in original #457
 	  testcase, and is still consistent. Is also closer to
 	  documentation.
 
-2012-01-09 17:01  strk
+2012-01-09 17:01  Sandro Santilli <strk at keybit.net>
 
-	* Add lwgeom_construct_empty API call
+	* [r8720] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom.c: Add
+	  lwgeom_construct_empty API call
 
-2012-01-09 17:01  strk
+2012-01-09 17:01  Sandro Santilli <strk at keybit.net>
 
-	* Implement lwcompound_construct_empty
+	* [r8719] liblwgeom/lwcompound.c: Implement
+	  lwcompound_construct_empty
 
-2012-01-09 16:20  strk
+2012-01-09 16:20  Sandro Santilli <strk at keybit.net>
 
-	* Alwas return NULL on type miss from ST_CollectionExtract (#835)
+	* [r8718] postgis/lwgeom_functions_basic.c,
+	  regress/regress_expected, regress/tickets.sql,
+	  regress/tickets_expected: Alwas return NULL on type miss from
+	  ST_CollectionExtract (#835)
 
-2012-01-09 16:20  strk
+2012-01-09 16:20  Sandro Santilli <strk at keybit.net>
 
-	* Return typed empties from lwcollection_extract
+	* [r8717] liblwgeom/cunit/cu_libgeom.c, liblwgeom/lwcollection.c:
+	  Return typed empties from lwcollection_extract
 
-2012-01-09 15:27  strk
+2012-01-09 15:27  Sandro Santilli <strk at keybit.net>
 
-	* Distribute comments in tarball. Stop distributing pdf or html
-	  (#626)
+	* [r8716] doc/Makefile.in, make_dist.sh: Distribute comments in
+	  tarball. Stop distributing pdf or html (#626)
 
-2012-01-09 15:03  strk
+2012-01-09 15:03  Sandro Santilli <strk at keybit.net>
 
-	* Fix compiler warnings
+	* [r8715] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_geos.c: Fix
+	  compiler warnings
 
-2012-01-09 15:01  dustymugs
+2012-01-09 15:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Make _ST_Intersects(raster, raster) STRICT as per comments in
-	  #1412.
+	* [r8714] raster/rt_pg/rtpostgis.sql.in.c: Make
+	  _ST_Intersects(raster, raster) STRICT as per comments in #1412.
 
-2012-01-09 14:56  robe
+2012-01-09 14:56  Regina Obe <lr at pcorp.us>
 
-	* #1392: Can't geocode intersecting highways or areas where no zip
+	* [r8713]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_intersection.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql:
+	  #1392: Can't geocode intersecting highways or areas where no zip
 	  available
 
-2012-01-09 13:36  strk
+2012-01-09 13:36  Sandro Santilli <strk at keybit.net>
 
-	* Build the libtool wrapper script version of raster2pgsql
+	* [r8712] raster/loader/Makefile.in: Build the libtool wrapper
+	  script version of raster2pgsql
 
-2012-01-09 12:48  robe
+2012-01-09 12:48  Regina Obe <lr at pcorp.us>
 
-	* Add Maria Arias de Reyna to credits
+	* [r8711] doc/introduction.xml, doc/release_notes.xml: Add Maria
+	  Arias de Reyna to credits
 
-2012-01-09 11:01  strk
+2012-01-09 11:01  Sandro Santilli <strk at keybit.net>
 
-	* Update Java components to support SRID<=0 as unknown SRID (#1221)
+	* [r8710] java/jdbc/README,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  java/jdbc/jtssrc/pom.xml, java/jdbc/pom.xml,
+	  java/jdbc/src/examples/TestServer.java,
+	  java/jdbc/src/org/postgis/DriverWrapper.java,
+	  java/jdbc/src/org/postgis/Geometry.java,
+	  java/jdbc/src/org/postgis/Version.java,
+	  java/jdbc/src/org/postgis/binary/BinaryParser.java,
+	  java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java,
+	  java/jdbc/src/org/postgis/version.properties, java/jdbc/todo.txt:
+	  Update Java components to support SRID<=0 as unknown SRID (#1221)
 	  
 	  This is first patch by Maria Arias de Reyna taking on
 	  maintainance
@@ -12735,17 +25040,25 @@
 	  a new maven based build system. It also includes some indenting
 	  changes.
 
-2012-01-09 10:34  strk
+2012-01-09 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory leak in shapefile loader (#1436)
+	* [r8709] loader/shp2pgsql-core.c: Fix memory leak in shapefile
+	  loader (#1436)
 
-2012-01-09 07:52  robe
+2012-01-09 07:52  Regina Obe <lr at pcorp.us>
 
-	* fix typo in extension version
+	* [r8707] extensions/postgis/postgis.control: fix typo in extension
+	  version
 
-2012-01-08 23:32  mcayland
+2012-01-08 23:32  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit reworked version of shp2pgsql-gui to the repository.
+	* [r8706] loader/Makefile.in, loader/cunit/Makefile.in,
+	  loader/cunit/cu_list.c, loader/cunit/cu_list.h,
+	  loader/cunit/cu_tester.c, loader/pgsql2shp-core.c,
+	  loader/pgsql2shp-core.h, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h, loader/shp2pgsql-gui.c,
+	  loader/shpcommon.h, loader/structure.c, loader/structure.h:
+	  Commit reworked version of shp2pgsql-gui to the repository.
 	  
 	  As per my email to postgis-devel, this commit contains a major
 	  reworking
@@ -12771,1108 +25084,1407 @@
 	  separately
 	  and will be included in a later commit.
 
-2012-01-08 19:15  robe
+2012-01-08 19:15  Regina Obe <lr at pcorp.us>
 
-	* Fix typo in manual and more description about schema.
-	  Evidentially some people do try to read the manual and make sense
-	  of it as demonstrated here:
+	* [r8705] doc/using_raster_dataman.xml: Fix typo in manual and more
+	  description about schema. Evidentially some people do try to read
+	  the manual and make sense of it as demonstrated here:
 	  http://gis.stackexchange.com/questions/18254/loading-a-raster-into-a-postgis-2-0-database-on-windows
 
-2012-01-08 16:28  dustymugs
+2012-01-08 16:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code cleanup related to registering and deregistering GDAL
-	  drivers
+	* [r8704] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Code cleanup related to registering
+	  and deregistering GDAL drivers
 
-2012-01-08 07:57  robe
+2012-01-08 07:57  Regina Obe <lr at pcorp.us>
 
-	* lots of corrections, also add integer[] arg recognition
+	* [r8703] doc/xsl/raster_gardentest.sql.xsl: lots of corrections,
+	  also add integer[] arg recognition
 
-2012-01-08 07:29  robe
+2012-01-08 07:29  Regina Obe <lr at pcorp.us>
 
-	* more cleanup -- issue with raster / raster functions and output
-	  convexhull instead of raster when result type is raster or
-	  geometry
+	* [r8702] doc/xsl/raster_gardentest.sql.xsl: more cleanup -- issue
+	  with raster / raster functions and output convexhull instead of
+	  raster when result type is raster or geometry
 
-2012-01-08 06:49  robe
+2012-01-08 06:49  Regina Obe <lr at pcorp.us>
 
-	* revise to recognize array of raster arguments
+	* [r8701] doc/xsl/raster_gardentest.sql.xsl: revise to recognize
+	  array of raster arguments
 
-2012-01-08 06:26  robe
+2012-01-08 06:26  Regina Obe <lr at pcorp.us>
 
-	* get rid of dropraster addrastercolumn and replace with create
-	  table, apply constraints. Still a lot of cleanup to go
+	* [r8700] doc/xsl/raster_gardentest.sql.xsl: get rid of dropraster
+	  addrastercolumn and replace with create table, apply constraints.
+	  Still a lot of cleanup to go
 
-2012-01-07 19:28  robe
+2012-01-07 19:28  Regina Obe <lr at pcorp.us>
 
-	* #1435: fix function proto typo of TopoGeo_AddPoint in docs
+	* [r8699] doc/extras_topology.xml: #1435: fix function proto typo
+	  of TopoGeo_AddPoint in docs
 
-2012-01-07 19:24  robe
+2012-01-07 19:24  Regina Obe <lr at pcorp.us>
 
-	* fix typo in version number
+	* [r8698] extensions/postgis_topology/postgis_topology.control: fix
+	  typo in version number
 
-2012-01-07 19:04  robe
+2012-01-07 19:04  Regina Obe <lr at pcorp.us>
 
-	* change alpha1 to a14. It appears we won't be releasing an alpha1
-	  this weekend bah.
+	* [r8697] extensions/postgis/postgis.control,
+	  extensions/postgis_topology/postgis_topology.control: change
+	  alpha1 to a14. It appears we won't be releasing an alpha1 this
+	  weekend bah.
 
-2012-01-07 19:02  robe
+2012-01-07 19:02  Regina Obe <lr at pcorp.us>
 
-	* update instructions to reflect changes that need to be made to
-	  extensions before tagged release. Hopefully we can automate this
-	  part in the future -- but have no clue how.
+	* [r8696] HOWTO_RELEASE: update instructions to reflect changes
+	  that need to be made to extensions before tagged release.
+	  Hopefully we can automate this part in the future -- but have no
+	  clue how.
 
-2012-01-07 15:24  dustymugs
+2012-01-07 15:24  Bborie Park <bkpark at ucdavis.edu>
 
-	* Have rt_raster_from_gdal_dataset attempt to determine the SRID of
-	  the raster using OSR.
+	* [r8695] raster/rt_core/rt_api.c: Have rt_raster_from_gdal_dataset
+	  attempt to determine the SRID of the raster using OSR.
 
-2012-01-07 14:05  dustymugs
+2012-01-07 14:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional tweaks for the NODATA values constraint. Continues
-	  changes made in r8691.
+	* [r8694] raster/rt_pg/rtpostgis.sql.in.c: Additional tweaks for
+	  the NODATA values constraint. Continues changes made in r8691.
 
-2012-01-07 00:55  robe
+2012-01-07 00:55  Regina Obe <lr at pcorp.us>
 
-	* bump version to alpha1 in preparation for alpha1 shuttle launch
+	* [r8693] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: bump
+	  version to alpha1 in preparation for alpha1 shuttle launch
 
-2012-01-07 00:47  pramsey
+2012-01-07 00:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move geojson test into geojson.sql file
+	* [r8692] regress/in_geojson.sql, regress/in_geojson_expected,
+	  regress/tickets.sql, regress/tickets_expected: Move geojson test
+	  into geojson.sql file
 
-2012-01-07 00:42  dustymugs
+2012-01-07 00:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed handling of NODATA value constraint as band with no NODATA
-	  was being constrained with the value of zero.
+	* [r8691] raster/rt_pg/rtpostgis.sql.in.c: Fixed handling of NODATA
+	  value constraint as band with no NODATA was being constrained
+	  with the value of zero.
 
-2012-01-07 00:29  pramsey
+2012-01-07 00:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_GeomFromGeoJSON - Malformed GeoJSON causes SIGSEGV in postgres
-	  process (#1434)
+	* [r8690] postgis/lwgeom_in_geojson.c, regress/tickets.sql,
+	  regress/tickets_expected: ST_GeomFromGeoJSON - Malformed GeoJSON
+	  causes SIGSEGV in postgres process (#1434)
 
-2012-01-06 21:39  pramsey
+2012-01-06 21:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move offset curve generation into liblwgeom with other geos
+	* [r8689] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_geos.c, liblwgeom/lwlinearreferencing.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_in_geojson.c,
+	  postgis/postgis.sql.in.c, regress/offsetcurve_expected: Move
+	  offset curve generation into liblwgeom with other geos
 	  functionality
 
-2012-01-06 17:35  robe
+2012-01-06 17:35  Regina Obe <lr at pcorp.us>
 
-	* fix tag typo
+	* [r8688] doc/reference_raster.xml: fix tag typo
 
-2012-01-06 16:29  robe
+2012-01-06 16:29  Regina Obe <lr at pcorp.us>
 
-	* example of AddRasterConstraint that takes listing of constraints
-	  to apply
+	* [r8687] doc/reference_raster.xml: example of AddRasterConstraint
+	  that takes listing of constraints to apply
 
-2012-01-06 15:35  robe
+2012-01-06 15:35  Regina Obe <lr at pcorp.us>
 
-	* Accidentally took out ST_WKTToSQL during #1443. ST_WKTToSQL is
-	  documented SQL/MM alias (extension didn't install as a result
-	  since the documentation comment installation failed)
+	* [r8686] postgis/postgis.sql.in.c: Accidentally took out
+	  ST_WKTToSQL during #1443. ST_WKTToSQL is documented SQL/MM alias
+	  (extension didn't install as a result since the documentation
+	  comment installation failed)
 
-2012-01-05 22:10  pramsey
+2012-01-05 22:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add files to svn:ignore
+	* [r8685] topology: Add files to svn:ignore
 
-2012-01-05 21:18  dustymugs
+2012-01-05 21:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added shortcut mechanism for copying data in
+	* [r8684] raster/rt_core/rt_api.c, raster/test/core/testapi.c:
+	  Added shortcut mechanism for copying data in
 	  rt_raster_from_gdal_dataset() when the natural block width is the
 	  raster width. Enhanced testing in testapi.c.
 
-2012-01-05 20:52  dustymugs
+2012-01-05 20:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* Syntax cleanup as part of memory bugs audit. Related to ticket
-	  #1432. This should be the last of it for now.
+	* [r8683] raster/rt_pg/rt_pg.c: Syntax cleanup as part of memory
+	  bugs audit. Related to ticket #1432. This should be the last of
+	  it for now.
 
-2012-01-05 20:31  robe
+2012-01-05 20:31  Regina Obe <lr at pcorp.us>
 
-	* #1433: Part 2 - merge what is left of sqlmm.sql.in.c into
-	  postgis.sql.in.c
+	* [r8682] postgis/Makefile.in, postgis/postgis.sql.in.c,
+	  postgis/sqlmm.sql.in.c: #1433: Part 2 - merge what is left of
+	  sqlmm.sql.in.c into postgis.sql.in.c
 
-2012-01-05 20:13  dustymugs
+2012-01-05 20:13  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional regression tests for ST_AsGDALRaster, ST_GDALDrivers,
-	  ST_AsRaster, ST_Resample, ST_Metadata. Syntax cleanup in rt_pg.c
-	  and testwkb.c
+	* [r8681] raster/rt_pg/rt_pg.c, raster/test/core/testwkb.c,
+	  raster/test/regress/rt_asgdalraster.sql,
+	  raster/test/regress/rt_asgdalraster_expected,
+	  raster/test/regress/rt_asraster.sql,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_metadata.sql,
+	  raster/test/regress/rt_metadata_expected,
+	  raster/test/regress/rt_resample.sql,
+	  raster/test/regress/rt_resample_expected: Additional regression
+	  tests for ST_AsGDALRaster, ST_GDALDrivers, ST_AsRaster,
+	  ST_Resample, ST_Metadata. Syntax cleanup in rt_pg.c and testwkb.c
 
-2012-01-05 19:56  robe
+2012-01-05 19:56  Regina Obe <lr at pcorp.us>
 
-	* #1433: part 1 -- get rid of SE functions
+	* [r8680] postgis/legacy.sql.in.c, postgis/sqlmm.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c: #1433: part 1 -- get rid of SE
+	  functions
 
-2012-01-05 18:59  dustymugs
+2012-01-05 18:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Memory bug fixes and additional regression tests for
-	  ST_SummaryStats, ST_Histogram, ST_ValueCount, ST_Reclass and
-	  ST_Quantile. Ticket is #1432.
+	* [r8679] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_histogram_expected,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_quantile_expected,
+	  raster/test/regress/rt_reclass.sql,
+	  raster/test/regress/rt_reclass_expected,
+	  raster/test/regress/rt_summarystats.sql,
+	  raster/test/regress/rt_summarystats_expected,
+	  raster/test/regress/rt_valuecount.sql,
+	  raster/test/regress/rt_valuecount_expected: Memory bug fixes and
+	  additional regression tests for ST_SummaryStats, ST_Histogram,
+	  ST_ValueCount, ST_Reclass and ST_Quantile. Ticket is #1432.
 
-2012-01-05 16:10  strk
+2012-01-05 16:10  Sandro Santilli <strk at keybit.net>
 
-	* Switch memory context back before returning in
-	  RASTER_bandmetadata
+	* [r8678] raster/rt_pg/rt_pg.c: Switch memory context back before
+	  returning in RASTER_bandmetadata
 	  
 	  Fixes second case in #1432
 
-2012-01-05 08:15  strk
+2012-01-05 08:15  Sandro Santilli <strk at keybit.net>
 
-	* It takes GEOS-3.3.2 for a sane topology (noding fixes in there)
+	* [r8677] configure.ac: It takes GEOS-3.3.2 for a sane topology
+	  (noding fixes in there)
 
-2012-01-05 07:59  robe
+2012-01-05 07:59  Regina Obe <lr at pcorp.us>
 
-	* #1430: create topology_drop_before and topology_drop_after to
-	  allow changing names of input args and allow changing functions
-	  to use default args
+	* [r8676] topology/Makefile.in,
+	  topology/topology_drop_after.sql.in.c,
+	  topology/topology_drop_before.sql.in.c: #1430: create
+	  topology_drop_before and topology_drop_after to allow changing
+	  names of input args and allow changing functions to use default
+	  args
 
-2012-01-05 07:51  robe
+2012-01-05 07:51  Regina Obe <lr at pcorp.us>
 
-	* svn tags
+	* [r8675] postgis/postgis_drop_before.sql.in.c: svn tags
 
-2012-01-04 22:30  strk
+2012-01-04 22:30  Sandro Santilli <strk at keybit.net>
 
-	* Fix deallocation of terminating NULL in RASTER_asGDALRaster
-	  (#1432)
+	* [r8674] raster/rt_pg/rt_pg.c: Fix deallocation of terminating
+	  NULL in RASTER_asGDALRaster (#1432)
 
-2012-01-04 21:38  strk
+2012-01-04 21:38  Sandro Santilli <strk at keybit.net>
 
-	* Work around a PostgreSQL 8.4+ bug with CREATE INTO (#1431)
+	* [r8673] topology/test/regress/st_remedgemodface.sql,
+	  topology/test/regress/st_remedgenewface.sql: Work around a
+	  PostgreSQL 8.4+ bug with CREATE INTO (#1431)
 
-2012-01-04 20:50  strk
+2012-01-04 20:50  Sandro Santilli <strk at keybit.net>
 
-	* Document topology.toTopoGeometry (#1017)
+	* [r8672] doc/extras_topology.xml: Document topology.toTopoGeometry
+	  (#1017)
 
-2012-01-04 18:33  strk
+2012-01-04 18:33  Sandro Santilli <strk at keybit.net>
 
-	* Complete implementation and regress test for toTopoGeom (#1017)
+	* [r8671] topology/sql/topogeometry/totopogeom.sql,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected: Complete
+	  implementation and regress test for toTopoGeom (#1017)
 	  
 	  You can start playing with this. Lacks documentation.
 	  Expect troubles. Feel free to report them.
 
-2012-01-04 18:17  strk
+2012-01-04 18:17  Sandro Santilli <strk at keybit.net>
 
-	* Implement TopoGeometry->Geometry converter for COLLECTION types
+	* [r8670] topology/test/regress/createtopogeom_expected,
+	  topology/topology.sql.in.c: Implement TopoGeometry->Geometry
+	  converter for COLLECTION types
 
-2012-01-04 17:58  pramsey
+2012-01-04 17:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Don't allow --with-topology when GEOS version < 3.3
+	* [r8669] configure.ac: Don't allow --with-topology when GEOS
+	  version < 3.3
 
-2012-01-04 02:07  pramsey
+2012-01-04 02:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Try to make json-c detection slightly more automatic.
+	* [r8668] configure.ac: Try to make json-c detection slightly more
+	  automatic.
 
-2012-01-03 23:52  pramsey
+2012-01-03 23:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change to GNU macro NAN. Still not feeling The Confidence.
+	* [r8667] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  regress/tickets.sql, regress/tickets_expected: Change to GNU
+	  macro NAN. Still not feeling The Confidence.
 
-2012-01-03 23:42  pramsey
+2012-01-03 23:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make numerical stability fix actually be present
+	* [r8666] liblwgeom/lwspheroid.c: Make numerical stability fix
+	  actually be present
 
-2012-01-03 23:28  pramsey
+2012-01-03 23:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Hm, nan() function?
+	* [r8665] liblwgeom/lwgeodetic.c: Hm, nan() function?
 
-2012-01-03 23:24  strk
+2012-01-03 23:24  Sandro Santilli <strk at keybit.net>
 
-	* Document TopoGeo_AddPolygon
+	* [r8664] doc/extras_topology.xml: Document TopoGeo_AddPolygon
 
-2012-01-03 23:17  strk
+2012-01-03 23:17  Sandro Santilli <strk at keybit.net>
 
-	* Implement and regress-test TopoGeo_addPolygon
+	* [r8663] topology/sql/populate.sql, topology/test/Makefile,
+	  topology/test/regress/topogeo_addpolygon.sql,
+	  topology/test/regress/topogeo_addpolygon_expected: Implement and
+	  regress-test TopoGeo_addPolygon
 
-2012-01-03 22:07  pramsey
+2012-01-03 22:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make ST_Azimuth(p1, p1) return NULL and make ST_Project(p1, 0,
-	  NULL) return p1.
+	* [r8662] liblwgeom/lwgeodetic.c, postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c,
+	  postgis/lwgeom_functions_basic.c: Make ST_Azimuth(p1, p1) return
+	  NULL and make ST_Project(p1, 0, NULL) return p1.
 
-2012-01-03 21:30  strk
+2012-01-03 21:30  Sandro Santilli <strk at keybit.net>
 
-	* ST_Split was implemented - a lot more to remove from TODO
+	* [r8661] TODO: ST_Split was implemented - a lot more to remove
+	  from TODO
 
-2012-01-03 20:55  strk
+2012-01-03 20:55  Sandro Santilli <strk at keybit.net>
 
-	* Change parameter names to use the "athing" convention. See #1427
+	* [r8660] topology/sql/topogeometry/totopogeom.sql: Change
+	  parameter names to use the "athing" convention. See #1427
 
-2012-01-03 20:48  strk
+2012-01-03 20:48  Sandro Santilli <strk at keybit.net>
 
-	* Fix typo in exception message, change signature of
-	  TopoGeo_addPolygon
+	* [r8659] topology/sql/populate.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Fix typo in
+	  exception message, change signature of TopoGeo_addPolygon
 
-2012-01-03 20:31  pramsey
+2012-01-03 20:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reorganize SQL definitions a bit: type creation at the start,
-	  indexes and operators after, then other stuff. Probably further
-	  ordering would be C-stuff before PL/PgSQL stuff.
+	* [r8658] postgis/geography.sql.in.c, postgis/postgis.sql.in.c,
+	  utils/postgis_restore.pl: Reorganize SQL definitions a bit: type
+	  creation at the start, indexes and operators after, then other
+	  stuff. Probably further ordering would be C-stuff before PL/PgSQL
+	  stuff.
 
-2012-01-03 20:24  strk
+2012-01-03 20:24  Sandro Santilli <strk at keybit.net>
 
-	* Test invalid calls to topogeo_addpoint
+	* [r8657] topology/test/regress/topogeo_addpoint.sql,
+	  topology/test/regress/topogeo_addpoint_expected: Test invalid
+	  calls to topogeo_addpoint
 
-2012-01-03 20:04  strk
+2012-01-03 20:04  Sandro Santilli <strk at keybit.net>
 
-	* Document TopoGeo_addLineString
+	* [r8656] doc/extras_topology.xml: Document TopoGeo_addLineString
 
-2012-01-03 19:21  pramsey
+2012-01-03 19:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change units to radians and add some tests (#657 and #1305)
+	* [r8655] liblwgeom/lwgeodetic.c, postgis/geography_measurement.c,
+	  postgis/lwgeom_functions_basic.c, regress/tickets.sql,
+	  regress/tickets_expected: Change units to radians and add some
+	  tests (#657 and #1305)
 
-2012-01-03 18:41  strk
+2012-01-03 18:41  Sandro Santilli <strk at keybit.net>
 
-	* Implement and regress-test TopoGeo_AddLineString
+	* [r8654] topology/sql/populate.sql, topology/test/Makefile,
+	  topology/test/regress/topogeo_addlinestring.sql,
+	  topology/test/regress/topogeo_addlinestring_expected: Implement
+	  and regress-test TopoGeo_AddLineString
 
-2012-01-03 18:34  dustymugs
+2012-01-03 18:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed DROP VIEW statements as per suggestion by robe in ticket
-	  #1422.
+	* [r8653] raster/rt_pg/rtpostgis_legacy.sql.in.c: Removed DROP VIEW
+	  statements as per suggestion by robe in ticket #1422.
 
-2012-01-03 10:52  strk
+2012-01-03 10:52  Sandro Santilli <strk at keybit.net>
 
-	* Document TopoGeo_addPoint
+	* [r8652] doc/extras_topology.xml: Document TopoGeo_addPoint
 
-2012-01-03 10:39  strk
+2012-01-03 10:39  Sandro Santilli <strk at keybit.net>
 
-	* Add regression test for TopoGeo_AddPoint
+	* [r8651] topology/test/Makefile,
+	  topology/test/regress/topogeo_addpoint.sql,
+	  topology/test/regress/topogeo_addpoint_expected: Add regression
+	  test for TopoGeo_AddPoint
 
-2012-01-03 10:10  strk
+2012-01-03 10:10  Sandro Santilli <strk at keybit.net>
 
-	* Move TopoGeom_addXXX functions to populate.sql and refine
+	* [r8650] topology/sql/populate.sql, topology/topology.sql.in.c:
+	  Move TopoGeom_addXXX functions to populate.sql and refine
 	  signatures
 	  
 	  Implement TopoGeom_addPoint (misses regression testing yet)
 
-2012-01-03 09:49  strk
+2012-01-03 09:49  Sandro Santilli <strk at keybit.net>
 
-	* Don't consider the old self edge when checking integrity
+	* [r8649] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Don't consider
+	  the old self edge when checking integrity
 	  
 	  Fixes a bug introduced by previous commit.
 
-2012-01-03 09:44  strk
+2012-01-03 09:44  Sandro Santilli <strk at keybit.net>
 
-	* Don't consider shared nodes as edge intersections. Fixes #1428.
+	* [r8648] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Don't consider
+	  shared nodes as edge intersections. Fixes #1428.
 
-2012-01-02 06:59  dustymugs
+2012-01-02 06:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Renamed legacy.sql.in.c to rtpostgis_legacy.sql.in.c to not
-	  conflict with postgis' legacy.sql. Associated ticket is #1422.
+	* [r8647] raster/rt_pg, raster/rt_pg/.svnignore,
+	  raster/rt_pg/Makefile.in, raster/rt_pg/legacy.sql.in.c,
+	  raster/rt_pg/rtpostgis_legacy.sql.in.c: Renamed legacy.sql.in.c
+	  to rtpostgis_legacy.sql.in.c to not conflict with postgis'
+	  legacy.sql. Associated ticket is #1422.
 
-2012-01-02 00:31  robe
+2012-01-02 00:31  Regina Obe <lr at pcorp.us>
 
-	* #722 more regress fixes for GeomFromText
+	* [r8646] regress/measures.sql, regress/sql-mm-general.sql: #722
+	  more regress fixes for GeomFromText
 
-2012-01-02 00:25  robe
+2012-01-02 00:25  Regina Obe <lr at pcorp.us>
 
-	* #722: regress replace GeomFromText with ST_GeomFromText
+	* [r8645] regress/tickets.sql: #722: regress replace GeomFromText
+	  with ST_GeomFromText
 
-2012-01-01 23:42  robe
+2012-01-01 23:42  Regina Obe <lr at pcorp.us>
 
-	* #722: Good bye GeomFromWKB, GeomFromText
+	* [r8644] postgis/legacy.sql.in.c,
+	  postgis/legacy_compatibility_layer.sql.in.c,
+	  postgis/postgis.sql.in.c, postgis/uninstall_legacy.sql.in.c:
+	  #722: Good bye GeomFromWKB, GeomFromText
 
-2012-01-01 21:04  dustymugs
+2012-01-01 21:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added legacy.sql which adds renamed and removed columns to
+	* [r8643] raster/rt_pg, raster/rt_pg/.svnignore,
+	  raster/rt_pg/Makefile.in, raster/rt_pg/legacy.sql.in.c: Added
+	  legacy.sql which adds renamed and removed columns to
 	  raster_columns and raster_overviews. This will allow 3rd party
 	  software that hasn't been updated to the current structures of
 	  raster_columns and raster_overviews to still operate
 	  successfully.
 
-2012-01-01 15:58  robe
+2012-01-01 15:58  Regina Obe <lr at pcorp.us>
 
-	* #961: Change ST_GeoHash to use default args
+	* [r8642] doc/reference_output.xml, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c: #961: Change ST_GeoHash to use
+	  default args
 
-2012-01-01 15:41  robe
+2012-01-01 15:41  Regina Obe <lr at pcorp.us>
 
-	* update to include ST_Azimuth for geography -- still need example.
-	  Also provide example for using degrees
+	* [r8641] doc/reference_measure.xml: update to include ST_Azimuth
+	  for geography -- still need example. Also provide example for
+	  using degrees
 
-2012-01-01 15:22  robe
+2012-01-01 15:22  Regina Obe <lr at pcorp.us>
 
-	* #961: ST_AsGeoJSON change to use default args
+	* [r8640] doc/reference_output.xml, postgis/geography.sql.in.c,
+	  postgis/postgis.sql.in.c, postgis/postgis_drop.sql.in.c: #961:
+	  ST_AsGeoJSON change to use default args
 
-2012-01-01 14:39  robe
+2012-01-01 14:39  Regina Obe <lr at pcorp.us>
 
-	* over dropped ST_AsKML protos
+	* [r8639] postgis/postgis_drop.sql.in.c: over dropped ST_AsKML
+	  protos
 
-2012-01-01 14:10  robe
+2012-01-01 14:10  Regina Obe <lr at pcorp.us>
 
-	* changed name of prec to maxdecimaldigits for ST_AsX3D to be
-	  consistent with other ST_As* functions, change ST_AsKML to use
-	  default args
+	* [r8638] doc/reference_output.xml, postgis/geography.sql.in.c,
+	  postgis/postgis.sql.in.c, postgis/postgis_drop.sql.in.c,
+	  postgis/postgis_drop_before.sql.in.c: changed name of prec to
+	  maxdecimaldigits for ST_AsX3D to be consistent with other ST_As*
+	  functions, change ST_AsKML to use default args
 
-2012-01-01 13:28  robe
+2012-01-01 13:28  Regina Obe <lr at pcorp.us>
 
-	* fix incorrect arg name in ST_AsGML
+	* [r8637] doc/reference_output.xml: fix incorrect arg name in
+	  ST_AsGML
 
-2012-01-01 13:24  robe
+2012-01-01 13:24  Regina Obe <lr at pcorp.us>
 
-	* #722: Remove all functions with ST_ equivalents from core
+	* [r8636] postgis/legacy.sql.in.c,
+	  postgis/legacy_compatibility_layer.sql.in.c,
+	  postgis/postgis.sql.in.c, postgis/uninstall_legacy.sql.in.c:
+	  #722: Remove all functions with ST_ equivalents from core
 	  postgis.sql. Good bye SetSRID
 
-2012-01-01 04:38  robe
+2012-01-01 04:38  Regina Obe <lr at pcorp.us>
 
-	* #1423: ST_AsGML regress fixes -- bah revert last change
+	* [r8635] postgis/geography.sql.in.c, postgis/postgis.sql.in.c:
+	  #1423: ST_AsGML regress fixes -- bah revert last change
 	  evidentally '' and NULL prefix do not mean the same thing.
 
-2012-01-01 03:41  robe
+2012-01-01 03:41  Regina Obe <lr at pcorp.us>
 
-	* #1423 revision -- put back the strict but set default prefix to
+	* [r8634] postgis/geography.sql.in.c, postgis/postgis.sql.in.c:
+	  #1423 revision -- put back the strict but set default prefix to
 	  '' AND NULLIF it in the function
 
-2012-01-01 03:28  robe
+2012-01-01 03:28  Regina Obe <lr at pcorp.us>
 
-	* #1423 -- fix for geography ST_AsGML - take off strictness if we
-	  allow null for prefix
+	* [r8633] postgis/geography.sql.in.c: #1423 -- fix for geography
+	  ST_AsGML - take off strictness if we allow null for prefix
 
-2012-01-01 03:27  robe
+2012-01-01 03:27  Regina Obe <lr at pcorp.us>
 
-	* #1423: ST_AsGML fix - Can't have strict on funcs that take
-	  default args where a default arg defaults to NULL. Really :)
+	* [r8632] postgis/postgis.sql.in.c: #1423: ST_AsGML fix - Can't
+	  have strict on funcs that take default args where a default arg
+	  defaults to NULL. Really :)
 
-2012-01-01 02:57  robe
+2012-01-01 02:57  Regina Obe <lr at pcorp.us>
 
-	* forgot a ST_AsGML drop version,geometry version
+	* [r8631] postgis/postgis_drop.sql.in.c: forgot a ST_AsGML drop
+	  version,geometry version
 
-2012-01-01 01:40  dustymugs
+2012-01-01 01:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added support for attempting to identify the EPSG from a raster's
-	  metadata if SRID is not provided with -s. If unable to get
-	  geotransform matrix from raster, use generic default of (0, 1, 0,
-	  0, 0, -1).
+	* [r8630] raster/loader/raster2pgsql.c,
+	  raster/loader/raster2pgsql.h: Added support for attempting to
+	  identify the EPSG from a raster's metadata if SRID is not
+	  provided with -s. If unable to get geotransform matrix from
+	  raster, use generic default of (0, 1, 0, 0, 0, -1).
 	  
 	  Associated ticket is #1421
 
-2012-01-01 01:26  robe
+2012-01-01 01:26  Regina Obe <lr at pcorp.us>
 
-	* #961: Change ST_AsGML to use default args
+	* [r8629] doc/reference_output.xml, postgis/geography.sql.in.c,
+	  postgis/postgis.sql.in.c, postgis/postgis_drop.sql.in.c: #961:
+	  Change ST_AsGML to use default args
 
-2011-12-31 09:47  strk
+2011-12-31 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Document new optional arguments to AddNode
+	* [r8628] doc/extras_topology.xml: Document new optional arguments
+	  to AddNode
 
-2011-12-31 09:47  strk
+2011-12-31 09:47  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddNode: add 2 additional optional arguments to allow
-	  splitting edges and computing containing_face
+	* [r8627] topology/sql/populate.sql,
+	  topology/test/regress/addnode.sql,
+	  topology/test/regress/addnode_expected: topology.AddNode: add 2
+	  additional optional arguments to allow splitting edges and
+	  computing containing_face
 
-2011-12-31 09:47  strk
+2011-12-31 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Add parameter names
+	* [r8626] topology/sql/sqlmm.sql: Add parameter names
 
-2011-12-31 09:47  strk
+2011-12-31 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Use DEBUG level for printing SQL being executed...
+	* [r8625] topology/sql/query/getfacebypoint.sql: Use DEBUG level
+	  for printing SQL being executed...
 
-2011-12-31 04:45  robe
+2011-12-31 04:45  Regina Obe <lr at pcorp.us>
 
-	* bump up release numbers
+	* [r8624] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: bump up
+	  release numbers
 
-2011-12-31 04:36  robe
+2011-12-31 04:36  Regina Obe <lr at pcorp.us>
 
-	* forgot altitude arg for hillshade
+	* [r8623] doc/reference_raster.xml: forgot altitude arg for
+	  hillshade
 
-2011-12-30 15:52  robe
+2011-12-30 15:52  Regina Obe <lr at pcorp.us>
 
-	* quickly change the options name arg to agree with ST_AsGML docs
+	* [r8622] doc/reference_output.xml, postgis/postgis.sql.in.c:
+	  quickly change the options name arg to agree with ST_AsGML docs
 
-2011-12-30 15:43  robe
+2011-12-30 15:43  Regina Obe <lr at pcorp.us>
 
-	* #1415 -- beginning support for options -- expose the currently
-	  useless opts flag
+	* [r8621] doc/reference_output.xml, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c: #1415 -- beginning support for
+	  options -- expose the currently useless opts flag
 
-2011-12-30 13:23  pramsey
+2011-12-30 13:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Stub in ST_LocateAlong and ST_LocateBetween for implementation
+	* [r8620] postgis/sqlmm.sql.in.c, postgis/uninstall_sqlmm.sql.in.c:
+	  Stub in ST_LocateAlong and ST_LocateBetween for implementation
 	  before 2.0
 
-2011-12-30 09:24  robe
+2011-12-30 09:24  Regina Obe <lr at pcorp.us>
 
-	* put in default values for ST_AsSVG geography
+	* [r8619] doc/reference_output.xml: put in default values for
+	  ST_AsSVG geography
 
-2011-12-30 09:06  robe
+2011-12-30 09:06  Regina Obe <lr at pcorp.us>
 
-	* change ST_AsSVG(text) to explicilty list all args otherwise
-	  upgrade script fails -- since old signature exists causing
-	  ambiguous conflict during install.
+	* [r8618] postgis/geography.sql.in.c: change ST_AsSVG(text) to
+	  explicilty list all args otherwise upgrade script fails -- since
+	  old signature exists causing ambiguous conflict during install.
 
-2011-12-30 08:48  robe
+2011-12-30 08:48  Regina Obe <lr at pcorp.us>
 
-	* change ST_AsSVG to use default args and support named args. Also
-	  correct misstatement in geography code as to the ordering of args
-	  thought that ordering makes more logical sense to me (it ain't
-	  the way it is)
+	* [r8617] doc/reference_output.xml, doc/reference_raster.xml,
+	  postgis/geography.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c: change ST_AsSVG to use default
+	  args and support named args. Also correct misstatement in
+	  geography code as to the ordering of args thought that ordering
+	  makes more logical sense to me (it ain't the way it is)
 
-2011-12-29 21:00  pramsey
+2011-12-29 21:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Conditionally drop loader test tables (requires PostgreSQL >= 8.2
-	  to support IF EXISTS syntax)
+	* [r8616] regress/run_test: Conditionally drop loader test tables
+	  (requires PostgreSQL >= 8.2 to support IF EXISTS syntax)
 
-2011-12-29 20:32  pramsey
+2011-12-29 20:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix postgis_valid_typmod to use gserialized* as an input instead
-	  of lwgeom* to get past in/out memory management issues (#1413)
+	* [r8615] postgis/geography.h, postgis/geography_inout.c,
+	  postgis/gserialized_typmod.c, postgis/lwgeom_inout.c: Fix
+	  postgis_valid_typmod to use gserialized* as an input instead of
+	  lwgeom* to get past in/out memory management issues (#1413)
 
-2011-12-29 18:13  strk
+2011-12-29 18:13  Sandro Santilli <strk at keybit.net>
 
-	* Retain type of TopoGeometry objects defined by NO element (#1017)
+	* [r8614] topology/test/regress/createtopogeom.sql,
+	  topology/test/regress/createtopogeom_expected,
+	  topology/topology.sql.in.c: Retain type of TopoGeometry objects
+	  defined by NO element (#1017)
 	  
 	  Includes regression tests for conversion of typed empty objects
 	  from simple to topological model.
 
-2011-12-29 18:01  strk
+2011-12-29 18:01  Sandro Santilli <strk at keybit.net>
 
-	* Consider TopoElements of type 0 as empty, allow CreateTopoGeom
+	* [r8613] doc/extras_topology.xml, topology/topology.sql.in.c:
+	  Consider TopoElements of type 0 as empty, allow CreateTopoGeom
 	  calls w/out a TopoElementArray to construct empties (#1017)
 
-2011-12-29 11:18  strk
+2011-12-29 11:18  Sandro Santilli <strk at keybit.net>
 
-	* Test more TopoGeometry creation
+	* [r8612] topology/test/regress/createtopogeom.sql,
+	  topology/test/regress/createtopogeom_expected: Test more
+	  TopoGeometry creation
 
-2011-12-29 10:52  strk
+2011-12-29 10:52  Sandro Santilli <strk at keybit.net>
 
-	* CreateTopoGeom: tweak error message on out-of-range TopoGeometry
-	  type
+	* [r8611] topology/test/regress/createtopogeom.sql,
+	  topology/test/regress/createtopogeom_expected,
+	  topology/topology.sql.in.c: CreateTopoGeom: tweak error message
+	  on out-of-range TopoGeometry type
 
-2011-12-29 10:44  strk
+2011-12-29 10:44  Sandro Santilli <strk at keybit.net>
 
-	* Complete parameter names
+	* [r8610] topology/topology.sql.in.c: Complete parameter names
 
-2011-12-29 07:40  strk
+2011-12-29 07:40  Sandro Santilli <strk at keybit.net>
 
-	* Typos and argument names
+	* [r8609] topology/sql/populate.sql: Typos and argument names
 
-2011-12-29 07:39  strk
+2011-12-29 07:39  Sandro Santilli <strk at keybit.net>
 
-	* Honour verbosity for database initialization errors
+	* [r8608] regress/run_test: Honour verbosity for database
+	  initialization errors
 
-2011-12-29 07:04  strk
+2011-12-29 07:04  Sandro Santilli <strk at keybit.net>
 
-	* Tabs to spaces, a few TODO items...
+	* [r8607] topology/sql/predicates.sql: Tabs to spaces, a few TODO
+	  items...
 
-2011-12-29 07:04  strk
+2011-12-29 07:04  Sandro Santilli <strk at keybit.net>
 
-	* Put overridden (for topology) spatial predicates in their own
-	  file
+	* [r8606] topology/Makefile.in, topology/sql/predicates.sql,
+	  topology/topology.sql.in.c: Put overridden (for topology) spatial
+	  predicates in their own file
 
-2011-12-29 06:48  strk
+2011-12-29 06:48  Sandro Santilli <strk at keybit.net>
 
-	* topology.toTopoGeom: add type compatibility checks (#1017)
+	* [r8605] topology/sql/topogeometry/totopogeom.sql,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected: topology.toTopoGeom:
+	  add type compatibility checks (#1017)
 
-2011-12-29 06:05  strk
+2011-12-29 06:05  Sandro Santilli <strk at keybit.net>
 
-	* Add geometry parameter names to functions
+	* [r8604] postgis/postgis.sql.in.c: Add geometry parameter names to
+	  functions
 
-2011-12-28 16:51  dustymugs
+2011-12-28 16:51  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed STRICT from various ST_Intersects functions and changed
-	  the costs of calling ST_Intersects to 1000. Related ticket is
-	  #1410.
+	* [r8603] raster/rt_pg/rtpostgis.sql.in.c: Removed STRICT from
+	  various ST_Intersects functions and changed the costs of calling
+	  ST_Intersects to 1000. Related ticket is #1410.
 
-2011-12-28 15:45  dustymugs
+2011-12-28 15:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Force initialization of output GDAL raster from
-	  rt_raster_gdal_warp to band's NODATA value. Also, spelling
-	  correction.
+	* [r8602] raster/rt_core/rt_api.c: Force initialization of output
+	  GDAL raster from rt_raster_gdal_warp to band's NODATA value.
+	  Also, spelling correction.
 
-2011-12-28 14:07  robe
+2011-12-28 14:07  Regina Obe <lr at pcorp.us>
 
-	* I have difficulty with simple math
+	* [r8601] doc/using_raster_dataman.xml: I have difficulty with
+	  simple math
 
-2011-12-28 13:59  robe
+2011-12-28 13:59  Regina Obe <lr at pcorp.us>
 
-	* more description of over view
+	* [r8600] doc/using_raster_dataman.xml: more description of over
+	  view
 
-2011-12-28 11:01  strk
+2011-12-28 11:01  Sandro Santilli <strk at keybit.net>
 
-	* Drop spurious white spaces. Should fix #1409. Thanks Peter Clark.
+	* [r8599] raster/rt_pg/Makefile.in: Drop spurious white spaces.
+	  Should fix #1409. Thanks Peter Clark.
 
-2011-12-28 02:19  dustymugs
+2011-12-28 02:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Correct output of INSERT statements for overviews in
-	  raster2pgsql.c. Associated ticket is #1404. Aslo minor code
-	  formatting and additional code checks in rtpostgis.sql.in.c
+	* [r8598] raster/loader/raster2pgsql.c,
+	  raster/rt_pg/rtpostgis.sql.in.c: Correct output of INSERT
+	  statements for overviews in raster2pgsql.c. Associated ticket is
+	  #1404. Aslo minor code formatting and additional code checks in
+	  rtpostgis.sql.in.c
 
-2011-12-27 16:37  robe
+2011-12-27 16:37  Regina Obe <lr at pcorp.us>
 
-	* oops missing tag -- removed other copy paste mistakes
+	* [r8597] doc/reference_raster.xml: oops missing tag -- removed
+	  other copy paste mistakes
 
-2011-12-27 16:33  robe
+2011-12-27 16:33  Regina Obe <lr at pcorp.us>
 
-	* document ST_HillShade (still need to put in examples)
+	* [r8596] doc/reference_raster.xml: document ST_HillShade (still
+	  need to put in examples)
 
-2011-12-27 15:31  robe
+2011-12-27 15:31  Regina Obe <lr at pcorp.us>
 
-	* norm is right - powers of 2 are better especially since my file
-	  tiles are in powers of 2 so don't get scrap tiles
+	* [r8595] doc/using_raster_dataman.xml: norm is right - powers of 2
+	  are better especially since my file tiles are in powers of 2 so
+	  don't get scrap tiles
 
-2011-12-27 06:32  robe
+2011-12-27 06:32  Regina Obe <lr at pcorp.us>
 
-	* link to npgsql download site.
+	* [r8594] doc/using_raster_dataman.xml: link to npgsql download
+	  site.
 
-2011-12-27 06:27  robe
+2011-12-27 06:27  Regina Obe <lr at pcorp.us>
 
-	* fix typo and provide link to java jdbc download site
+	* [r8593] doc/using_raster_dataman.xml: fix typo and provide link
+	  to java jdbc download site
 
-2011-12-27 06:04  robe
+2011-12-27 06:04  Regina Obe <lr at pcorp.us>
 
-	* link to raster applications section that demonstrates how to use
-	  these functions in an application
+	* [r8592] doc/reference_raster.xml: link to raster applications
+	  section that demonstrates how to use these functions in an
+	  application
 
-2011-12-27 06:01  robe
+2011-12-27 06:01  Regina Obe <lr at pcorp.us>
 
-	* replace java example with a simpler more useful one
+	* [r8591] doc/using_raster_dataman.xml: replace java example with a
+	  simpler more useful one
 
-2011-12-27 05:29  robe
+2011-12-27 05:29  Regina Obe <lr at pcorp.us>
 
-	* provide a java console app example
+	* [r8590] doc/using_raster_dataman.xml: provide a java console app
+	  example
 
-2011-12-26 22:22  robe
+2011-12-26 22:22  Regina Obe <lr at pcorp.us>
 
-	* more description
+	* [r8589] doc/using_raster_dataman.xml: more description
 
-2011-12-26 22:10  robe
+2011-12-26 22:10  Regina Obe <lr at pcorp.us>
 
-	* c# example using ST_AsPNG
+	* [r8588] doc/using_raster_dataman.xml: c# example using ST_AsPNG
 
-2011-12-26 20:31  robe
+2011-12-26 20:31  Regina Obe <lr at pcorp.us>
 
-	* more cleanup
+	* [r8587] doc/using_raster_dataman.xml: more cleanup
 
-2011-12-26 20:24  robe
+2011-12-26 20:24  Regina Obe <lr at pcorp.us>
 
-	* use docbook paragraph tags
+	* [r8586] doc/using_raster_dataman.xml: use docbook paragraph tags
 
-2011-12-26 20:21  robe
+2011-12-26 20:21  Regina Obe <lr at pcorp.us>
 
-	* some other minor cleanup
+	* [r8585] doc/using_raster_dataman.xml: some other minor cleanup
 
-2011-12-26 20:20  robe
+2011-12-26 20:20  Regina Obe <lr at pcorp.us>
 
-	* wrap php code in cdata tags
+	* [r8584] doc/using_raster_dataman.xml: wrap php code in cdata tags
 
-2011-12-26 20:10  robe
+2011-12-26 20:10  Regina Obe <lr at pcorp.us>
 
-	* Add php example using postgis raster
+	* [r8583] doc/using_raster_dataman.xml: Add php example using
+	  postgis raster
 
-2011-12-26 17:43  robe
+2011-12-26 17:43  Regina Obe <lr at pcorp.us>
 
-	* correct comment
+	* [r8582] doc/reference_raster.xml: correct comment
 
-2011-12-26 17:38  robe
+2011-12-26 17:38  Regina Obe <lr at pcorp.us>
 
-	* minor formatting cleanup
+	* [r8581] doc/reference_raster.xml: minor formatting cleanup
 
-2011-12-26 17:37  robe
+2011-12-26 17:37  Regina Obe <lr at pcorp.us>
 
-	* fix typo in image names
+	* [r8580] doc/reference_raster.xml: fix typo in image names
 
-2011-12-26 11:04  robe
+2011-12-26 11:04  Regina Obe <lr at pcorp.us>
 
-	* example of resample
+	* [r8579] doc/html/images/st_resample01.png,
+	  doc/html/images/st_resample02.png, doc/reference_raster.xml:
+	  example of resample
 
-2011-12-26 10:31  robe
+2011-12-26 10:31  Regina Obe <lr at pcorp.us>
 
-	* fix typo in cast check expression. Should be checking for box3d
-	  existence not box2d
+	* [r8578] raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c: fix typo
+	  in cast check expression. Should be checking for box3d existence
+	  not box2d
 
-2011-12-26 09:32  robe
+2011-12-26 09:32  Regina Obe <lr at pcorp.us>
 
-	* bump up version numbers
+	* [r8577] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: bump up
+	  version numbers
 
-2011-12-25 10:56  strk
+2011-12-25 10:56  Sandro Santilli <strk at keybit.net>
 
-	* Stub toTopoGeom function and testcase (#1017)
+	* [r8576] topology/Makefile.in,
+	  topology/sql/topogeometry/totopogeom.sql, topology/test/Makefile,
+	  topology/test/regress/totopogeom.sql,
+	  topology/test/regress/totopogeom_expected,
+	  topology/topology.sql.in.c: Stub toTopoGeom function and testcase
+	  (#1017)
 
-2011-12-25 10:56  strk
+2011-12-25 10:56  Sandro Santilli <strk at keybit.net>
 
-	* Add missing dependencies of topology.sql (includes)
+	* [r8575] topology/Makefile.in: Add missing dependencies of
+	  topology.sql (includes)
 
-2011-12-24 22:27  robe
+2011-12-24 22:27  Regina Obe <lr at pcorp.us>
 
-	* another minor typo
+	* [r8574] doc/reference_raster.xml: another minor typo
 
-2011-12-24 22:10  robe
+2011-12-24 22:10  Regina Obe <lr at pcorp.us>
 
-	* fix typo in column numbers
+	* [r8573] doc/reference_raster.xml: fix typo in column numbers
 
-2011-12-24 21:39  robe
+2011-12-24 21:39  Regina Obe <lr at pcorp.us>
 
-	* minor formatting change
+	* [r8572] doc/reference_raster.xml: minor formatting change
 
-2011-12-24 21:07  robe
+2011-12-24 21:07  Regina Obe <lr at pcorp.us>
 
-	* fix formatting of ST_Transform example and add another sub
-	  example demonstrating using different algorithm
+	* [r8571] doc/html/images/rt_st_transform03.png,
+	  doc/reference_raster.xml: fix formatting of ST_Transform example
+	  and add another sub example demonstrating using different
+	  algorithm
 
-2011-12-24 20:18  robe
+2011-12-24 20:18  Regina Obe <lr at pcorp.us>
 
-	* example for raster transform
+	* [r8570] doc/html/images/rt_st_transform01.png,
+	  doc/html/images/rt_st_transform02.png, doc/reference_raster.xml:
+	  example for raster transform
 
-2011-12-24 18:40  robe
+2011-12-24 18:40  Regina Obe <lr at pcorp.us>
 
-	* change docs to use unix style slashes which work correctly on
-	  both Unix and windows.
+	* [r8569] doc/using_raster_dataman.xml: change docs to use unix
+	  style slashes which work correctly on both Unix and windows.
 
-2011-12-24 16:42  dustymugs
+2011-12-24 16:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* If generating overviews and -F is set, overview tables will have
-	  "filename" column.
+	* [r8568] raster/loader/raster2pgsql.c: If generating overviews and
+	  -F is set, overview tables will have "filename" column.
 
-2011-12-24 15:52  dustymugs
+2011-12-24 15:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* Testing the wrong variable when checking if two rasters is
-	  different.
+	* [r8567] raster/loader/raster2pgsql.c: Testing the wrong variable
+	  when checking if two rasters is different.
 
-2011-12-24 11:41  strk
+2011-12-24 11:41  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of objects and scripts on configuration
+	* [r8566] raster/rt_pg/Makefile.in: Encode dependency of objects
+	  and scripts on configuration
 
-2011-12-24 11:22  strk
+2011-12-24 11:22  Sandro Santilli <strk at keybit.net>
 
-	* Ignore generated uninstall_rtpostgis.sql
+	* [r8565] .gitignore: Ignore generated uninstall_rtpostgis.sql
 
-2011-12-24 11:22  strk
+2011-12-24 11:22  Sandro Santilli <strk at keybit.net>
 
-	* Drop created tables after run
+	* [r8564] topology/test/regress/droptopology.sql: Drop created
+	  tables after run
 
-2011-12-24 11:22  strk
+2011-12-24 11:22  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup created tables after run
+	* [r8563] topology/test/regress/topo2.5d.sql: Cleanup created
+	  tables after run
 
-2011-12-24 11:21  strk
+2011-12-24 11:21  Sandro Santilli <strk at keybit.net>
 
-	* drop created table after run
+	* [r8562] topology/test/regress/gml.sql: drop created table after
+	  run
 
-2011-12-24 11:21  strk
+2011-12-24 11:21  Sandro Santilli <strk at keybit.net>
 
-	* Add support for dropping DOMAINs in create_undef.pl (#1407)
+	* [r8561] utils/create_undef.pl: Add support for dropping DOMAINs
+	  in create_undef.pl (#1407)
 
-2011-12-24 11:21  strk
+2011-12-24 11:21  Sandro Santilli <strk at keybit.net>
 
-	* Enable uninstall_topology.sql testing
+	* [r8560] regress/run_test: Enable uninstall_topology.sql testing
 
-2011-12-24 11:21  strk
+2011-12-24 11:21  Sandro Santilli <strk at keybit.net>
 
-	* Allow fully-qualified basetype name for aggregates
+	* [r8559] utils/create_undef.pl: Allow fully-qualified basetype
+	  name for aggregates
 
-2011-12-24 11:21  strk
+2011-12-24 11:21  Sandro Santilli <strk at keybit.net>
 
-	* Drop tables in reverse order, reducing probability of fkey
-	  troubles
+	* [r8558] utils/create_undef.pl: Drop tables in reverse order,
+	  reducing probability of fkey troubles
 
-2011-12-24 10:42  strk
+2011-12-24 10:42  Sandro Santilli <strk at keybit.net>
 
-	* run_test doesn't need USE_VERSION anymore
+	* [r8557] raster/test/regress/Makefile.in, regress/Makefile.in,
+	  topology/test/Makefile: run_test doesn't need USE_VERSION anymore
 
-2011-12-24 10:42  strk
+2011-12-24 10:42  Sandro Santilli <strk at keybit.net>
 
-	* Generate uninstall_topology.sql
+	* [r8556] .gitignore, topology/Makefile.in: Generate
+	  uninstall_topology.sql
 
-2011-12-24 10:34  strk
+2011-12-24 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Stop using USE_VERSION, assume pgsql is always > 7.4.
+	* [r8555] regress/run_test: Stop using USE_VERSION, assume pgsql is
+	  always > 7.4.
 	  
 	  Hopefully fixes #819
 
-2011-12-24 10:34  strk
+2011-12-24 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Add support for objects schema definition in create_undef.pl
+	* [r8554] utils/create_undef.pl: Add support for objects schema
+	  definition in create_undef.pl
 
-2011-12-24 09:59  strk
+2011-12-24 09:59  Sandro Santilli <strk at keybit.net>
 
-	* Drop created function after run
+	* [r8553] raster/test/regress/rt_intersection.sql: Drop created
+	  function after run
 
-2011-12-24 09:59  strk
+2011-12-24 09:59  Sandro Santilli <strk at keybit.net>
 
-	* Ensure mapalgebra test functions are dropped
+	* [r8552] raster/test/regress/Makefile.in,
+	  raster/test/regress/drop_rt_mapalgebra_test.sql,
+	  raster/test/regress/drop_rt_mapalgebra_test_expected,
+	  raster/test/regress/drop_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/drop_rt_mapalgebrafctngb_test_expected:
+	  Ensure mapalgebra test functions are dropped
 
-2011-12-24 09:59  strk
+2011-12-24 09:59  Sandro Santilli <strk at keybit.net>
 
-	* Don't load rt_utility_test data creator as test
+	* [r8551] raster/test/regress/Makefile.in,
+	  raster/test/regress/create_rt_utility_test_expected,
+	  raster/test/regress/rt_utility.sql: Don't load rt_utility_test
+	  data creator as test
 
-2011-12-24 09:58  strk
+2011-12-24 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Add rt_empty_raster dropper script
+	* [r8550] raster/test/regress/Makefile.in,
+	  raster/test/regress/drop_rt_empty_raster_test.sql,
+	  raster/test/regress/drop_rt_empty_raster_test_expected: Add
+	  rt_empty_raster dropper script
 
-2011-12-24 09:58  strk
+2011-12-24 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Add rt_properties_test dropper script
+	* [r8549] raster/test/regress/Makefile.in,
+	  raster/test/regress/drop_rt_properties_test.sql,
+	  raster/test/regress/drop_rt_properties_test_expected: Add
+	  rt_properties_test dropper script
 
-2011-12-24 09:58  strk
+2011-12-24 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Move single-test data tables within the testfiles, cleanup after
-	  run
+	* [r8548] raster/test/regress/Makefile.in,
+	  raster/test/regress/box3d.sql,
+	  raster/test/regress/create_box3d_test.sql,
+	  raster/test/regress/create_box3d_test_expected,
+	  raster/test/regress/create_rt_bytea_test.sql,
+	  raster/test/regress/create_rt_bytea_test_expected,
+	  raster/test/regress/rt_bytea.sql: Move single-test data tables
+	  within the testfiles, cleanup after run
 
-2011-12-24 09:58  strk
+2011-12-24 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup after run
+	* [r8547] raster/test/regress/rt_io.sql: Cleanup after run
 
-2011-12-24 09:58  strk
+2011-12-24 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Add a drop_rt_band_properties_test script for cleanup purposes
+	* [r8546] raster/test/regress/Makefile.in,
+	  raster/test/regress/drop_rt_band_properties_test.sql,
+	  raster/test/regress/drop_rt_band_properties_test_expected: Add a
+	  drop_rt_band_properties_test script for cleanup purposes
 
-2011-12-24 09:58  strk
+2011-12-24 09:58  Sandro Santilli <strk at keybit.net>
 
-	* cleanup data tables
+	* [r8545] raster/test/regress/rt_spatial_relationship.sql: cleanup
+	  data tables
 
-2011-12-24 09:58  strk
+2011-12-24 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Add a drop_rt_gist_test.sql file for cleanup purposes (#301)
+	* [r8544] raster/test/regress/Makefile.in,
+	  raster/test/regress/drop_rt_gist_test.sql,
+	  raster/test/regress/drop_rt_gist_test_expected: Add a
+	  drop_rt_gist_test.sql file for cleanup purposes (#301)
 
-2011-12-24 09:58  strk
+2011-12-24 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup created objects
+	* [r8543] raster/test/regress/bug_test_car5.sql: Cleanup created
+	  objects
 
-2011-12-24 09:57  strk
+2011-12-24 09:57  Sandro Santilli <strk at keybit.net>
 
-	* Avoid function calls in DEFAULT specifications for unknown SRID
+	* [r8542] raster/rt_pg/rtpostgis.sql.in.c: Avoid function calls in
+	  DEFAULT specifications for unknown SRID
 	  
 	  Matches what postgis.sql does as well.
 	  Fixes generation of uninstall script for raster (#301)
 
-2011-12-24 09:57  strk
+2011-12-24 09:57  Sandro Santilli <strk at keybit.net>
 
-	* Enhance DEFAULT specification stripper
+	* [r8541] utils/create_undef.pl: Enhance DEFAULT specification
+	  stripper
 
-2011-12-24 09:57  strk
+2011-12-24 09:57  Sandro Santilli <strk at keybit.net>
 
-	* Run uninstall test for raster, when enabled
+	* [r8540] regress/run_test: Run uninstall test for raster, when
+	  enabled
 
-2011-12-24 09:56  strk
+2011-12-24 09:56  Sandro Santilli <strk at keybit.net>
 
-	* Generate uninstall_rtpostgis.sql (#301)
+	* [r8539] raster/rt_pg/Makefile.in: Generate
+	  uninstall_rtpostgis.sql (#301)
 
-2011-12-24 02:51  dustymugs
+2011-12-24 02:51  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional work to remove DROP FUNCTION statements depending upon
-	  prior DROP TYPE ... CASCADE statements that generate ERRORs
+	* [r8538] utils/uninstall_script: Additional work to remove DROP
+	  FUNCTION statements depending upon prior DROP TYPE ... CASCADE
+	  statements that generate ERRORs
 
-2011-12-24 01:14  dustymugs
+2011-12-24 01:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Instead of using spatial reference text in WKT format, use PROJ.4
-	  format when possible. This does mean that in situations that
-	  require WKT format, rt_raster_gdal_sr must be called to convert
-	  from one format to the other.
+	* [r8537] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c: Instead of using spatial reference text in
+	  WKT format, use PROJ.4 format when possible. This does mean that
+	  in situations that require WKT format, rt_raster_gdal_sr must be
+	  called to convert from one format to the other.
 
-2011-12-24 01:08  dustymugs
+2011-12-24 01:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix issue with RASTER_sameAlignment where the deserializing of
-	  the raster is not being limited to just the header.
+	* [r8536] raster/rt_pg/rt_pg.c: Fix issue with RASTER_sameAlignment
+	  where the deserializing of the raster is not being limited to
+	  just the header.
 
-2011-12-23 17:33  strk
+2011-12-23 17:33  Sandro Santilli <strk at keybit.net>
 
-	* support multiline function signatures at the parsing stage too...
+	* [r8535] utils/create_undef.pl: support multiline function
+	  signatures at the parsing stage too...
 
-2011-12-23 17:30  strk
+2011-12-23 17:30  Sandro Santilli <strk at keybit.net>
 
-	* Add support for multiline function signatures
+	* [r8534] utils/create_undef.pl: Add support for multiline function
+	  signatures
 
-2011-12-23 17:01  dustymugs
+2011-12-23 17:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Overview constraints should always be added regardless of whether
-	  or not the user requests raster constraints.
+	* [r8533] raster/loader/raster2pgsql.c: Overview constraints should
+	  always be added regardless of whether or not the user requests
+	  raster constraints.
 
-2011-12-23 16:49  strk
+2011-12-23 16:49  Sandro Santilli <strk at keybit.net>
 
-	* Write header in the files generated by create_undef.pl
+	* [r8532] utils/create_undef.pl: Write header in the files
+	  generated by create_undef.pl
 	  
 	  Header includes license, creation timestamp and input filename
 
-2011-12-23 16:49  strk
+2011-12-23 16:49  Sandro Santilli <strk at keybit.net>
 
-	* Simplify uninstall_postgis.sql rule, drop the manual edited
-	  version
+	* [r8531] .gitignore, postgis/Makefile.in,
+	  postgis/uninstall_postgis.sql.in.c: Simplify
+	  uninstall_postgis.sql rule, drop the manual edited version
 
-2011-12-23 16:39  dustymugs
+2011-12-23 16:39  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed erroneous addition of filename to overviews when the flags
-	  -l -F -Y are combined.
+	* [r8530] raster/loader/raster2pgsql.c: Fixed erroneous addition of
+	  filename to overviews when the flags -l -F -Y are combined.
 
-2011-12-23 16:22  dustymugs
+2011-12-23 16:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed for better path handling
+	* [r8529] utils/uninstall_script: Fixed for better path handling
 
-2011-12-23 16:18  robe
+2011-12-23 16:18  Regina Obe <lr at pcorp.us>
 
-	* put in sections for postgis extensions. Probably will need some
-	  cleanup.
+	* [r8528] doc/installation.xml: put in sections for postgis
+	  extensions. Probably will need some cleanup.
 
-2011-12-23 16:14  strk
+2011-12-23 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Ignore generated comment files
+	* [r8527] .gitignore: Ignore generated comment files
 
-2011-12-23 16:14  strk
+2011-12-23 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Ignore generated raster files
+	* [r8526] .gitignore: Ignore generated raster files
 
-2011-12-23 16:14  strk
+2011-12-23 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Let create_undef.pl generate uninstall_postgis.sql
+	* [r8525] postgis/Makefile.in: Let create_undef.pl generate
+	  uninstall_postgis.sql
 
-2011-12-23 16:14  strk
+2011-12-23 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup after loader test runs, fixing uninstall testing
+	* [r8524] regress/run_test: Cleanup after loader test runs, fixing
+	  uninstall testing
 
-2011-12-23 16:14  strk
+2011-12-23 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Drop objects created by the tests
+	* [r8523] regress/clean.sql, regress/sql-mm-serialize.sql: Drop
+	  objects created by the tests
 
-2011-12-23 16:14  strk
+2011-12-23 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Fix create_undef.pl script to generate correct uninstall script
+	* [r8522] utils/create_undef.pl: Fix create_undef.pl script to
+	  generate correct uninstall script
 
-2011-12-23 16:04  dustymugs
+2011-12-23 16:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added uninstall_script to facilitate generation of
-	  uninstall_postgis.sql and uninstall_rtpostgis.sql. It could still
-	  use additional validation and cleaning up of the output uninstall
-	  sql files.
+	* [r8521] utils/uninstall_script: Added uninstall_script to
+	  facilitate generation of uninstall_postgis.sql and
+	  uninstall_rtpostgis.sql. It could still use additional validation
+	  and cleaning up of the output uninstall sql files.
 
-2011-12-23 13:20  robe
+2011-12-23 13:20  Regina Obe <lr at pcorp.us>
 
-	* minor code change to make example a bit shorter
+	* [r8520] doc/reference_raster.xml: minor code change to make
+	  example a bit shorter
 
-2011-12-23 13:06  robe
+2011-12-23 13:06  Regina Obe <lr at pcorp.us>
 
-	* fix some erroneous statements about ST_Clip and provide example
-	  demonstrating trimraster argument effect
+	* [r8519] doc/reference_raster.xml: fix some erroneous statements
+	  about ST_Clip and provide example demonstrating trimraster
+	  argument effect
 
-2011-12-23 08:53  robe
+2011-12-23 08:53  Regina Obe <lr at pcorp.us>
 
-	* fix unbalanced tag
+	* [r8518] doc/reference_raster.xml: fix unbalanced tag
 
-2011-12-23 08:38  robe
+2011-12-23 08:38  Regina Obe <lr at pcorp.us>
 
-	* some cosmetic cleanup
+	* [r8517] doc/reference_raster.xml: some cosmetic cleanup
 
-2011-12-23 08:35  robe
+2011-12-23 08:35  Regina Obe <lr at pcorp.us>
 
-	* example of st_clip with pictures
+	* [r8516] doc/html/images/st_clip01.png,
+	  doc/html/images/st_clip02.png, doc/html/images/st_clip03.png,
+	  doc/reference_raster.xml: example of st_clip with pictures
 
-2011-12-23 07:58  robe
+2011-12-23 07:58  Regina Obe <lr at pcorp.us>
 
-	* start documenting ST_Clip
+	* [r8515] doc/reference_raster.xml: start documenting ST_Clip
 
-2011-12-22 19:09  robe
+2011-12-22 19:09  Regina Obe <lr at pcorp.us>
 
-	* fill in missing protos for droprasterconstraints /
-	  addrasterconstraints
+	* [r8514] doc/reference_raster.xml: fill in missing protos for
+	  droprasterconstraints / addrasterconstraints
 
-2011-12-22 13:24  robe
+2011-12-22 13:24  Regina Obe <lr at pcorp.us>
 
-	* make title a little shorter
+	* [r8513] doc/using_raster_dataman.xml: make title a little shorter
 
-2011-12-22 13:23  robe
+2011-12-22 13:23  Regina Obe <lr at pcorp.us>
 
-	* changing titles -- raster data man I'm eventually going to throw
+	* [r8512] doc/using_postgis_app.xml, doc/using_raster_dataman.xml:
+	  changing titles -- raster data man I'm eventually going to throw
 	  in mapserver, .net, jdbc examples cause I'm too lazy to create a
 	  separate chapter. The postgis app section is really specific to
 	  postgis geometry since it doesn't talk about raster or geography
 	  at all.
 
-2011-12-22 13:18  robe
+2011-12-22 13:18  Regina Obe <lr at pcorp.us>
 
-	* minor error in statement
+	* [r8511] doc/using_raster_dataman.xml: minor error in statement
 
-2011-12-22 11:20  strk
+2011-12-22 11:20  Sandro Santilli <strk at keybit.net>
 
-	* Drop operator families, not classes (#543)
+	* [r8510] postgis/uninstall_geography.sql.in.c,
+	  postgis/uninstall_postgis.sql.in.c: Drop operator families, not
+	  classes (#543)
 
-2011-12-22 11:20  strk
+2011-12-22 11:20  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of uninstall_postgis.sql on included files
+	* [r8509] postgis/Makefile.in: Encode dependency of
+	  uninstall_postgis.sql on included files
 
-2011-12-22 11:20  strk
+2011-12-22 11:20  Sandro Santilli <strk at keybit.net>
 
-	* Add more uninstall objects found by uninstall test (#1397)
+	* [r8508] postgis/uninstall_postgis.sql.in.c: Add more uninstall
+	  objects found by uninstall test (#1397)
 
-2011-12-22 11:19  strk
+2011-12-22 11:19  Sandro Santilli <strk at keybit.net>
 
-	* Count objects in the _regress_ database, not elsewhere (#1397)
+	* [r8507] regress/run_test: Count objects in the _regress_
+	  database, not elsewhere (#1397)
 
-2011-12-22 10:21  strk
+2011-12-22 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Fix testing of uninstall script count [#1397]
+	* [r8506] regress/run_test: Fix testing of uninstall script count
+	  [#1397]
 	  
 	  This commit also adds new utility functions and skips testing
 	  uninstall when raster or topology are enabled.
 
-2011-12-22 10:21  strk
+2011-12-22 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Fix uninstall script [#1153]
+	* [r8505] postgis/uninstall_postgis.sql.in.c: Fix uninstall script
+	  [#1153]
 
-2011-12-22 10:21  strk
+2011-12-22 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Deprecate Polygonize and Collect aggregates [#1400]
+	* [r8504] postgis/postgis.sql.in.c, postgis/postgis_drop.sql.in.c:
+	  Deprecate Polygonize and Collect aggregates [#1400]
 
-2011-12-22 10:21  strk
+2011-12-22 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of postgis.sql from included scripts
+	* [r8503] postgis/Makefile.in: Encode dependency of postgis.sql
+	  from included scripts
 
-2011-12-22 10:21  strk
+2011-12-22 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of postgis objects on postgis_config.h
+	* [r8502] postgis/Makefile.in: Encode dependency of postgis objects
+	  on postgis_config.h
 	  
 	  Fixes ./configure && make check after switching between different
 	  PostgreSQL versions.
 
-2011-12-22 10:21  strk
+2011-12-22 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Add testing for uninstall_postgis.sql [#1397]
+	* [r8501] regress/run_test: Add testing for uninstall_postgis.sql
+	  [#1397]
 	  
 	  The uninstall currently fails due to #1153
 
-2011-12-22 08:23  strk
+2011-12-22 08:23  Sandro Santilli <strk at keybit.net>
 
-	* Don't depend on bytea representation for unrelated tests.
+	* [r8500] regress/tickets.sql, regress/tickets_expected: Don't
+	  depend on bytea representation for unrelated tests.
 	  
 	  Fix testing against PostgreSQL 9.0+.
 
-2011-12-22 08:01  strk
+2011-12-22 08:01  Sandro Santilli <strk at keybit.net>
 
-	* Replace INFINITY with MAXFLOAT. Should fix Solaris build [#1396]
+	* [r8499] postgis/gserialized_gist_2d.c: Replace INFINITY with
+	  MAXFLOAT. Should fix Solaris build [#1396]
 	  
 	  I don't think it makes a difference as those functions are not
 	  documented about the exceptional return, and no regression test
 	  fails with the change.
 
-2011-12-22 05:48  pramsey
+2011-12-22 05:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move SPI_finish to after elog calls. This seems to fix the
-	  regression failure in 877, though why is not clear. Is SPI_finish
-	  removing a memory context that palloc has allocated things
-	  inside? This would explain the odd result (tbl and col variables
-	  get emptied upon call to SPI_finish).
+	* [r8498] postgis/geometry_estimate.c: Move SPI_finish to after
+	  elog calls. This seems to fix the regression failure in 877,
+	  though why is not clear. Is SPI_finish removing a memory context
+	  that palloc has allocated things inside? This would explain the
+	  odd result (tbl and col variables get emptied upon call to
+	  SPI_finish).
 
-2011-12-21 21:49  robe
+2011-12-21 21:49  Regina Obe <lr at pcorp.us>
 
-	* change ST_Reclass example to use less verbose ST_AddBand array
-	  syntax
+	* [r8497] doc/reference_raster.xml: change ST_Reclass example to
+	  use less verbose ST_AddBand array syntax
 
-2011-12-21 19:07  pramsey
+2011-12-21 19:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Azimuth on the spheroid (#1305)
+	* [r8496] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeodetic.c,
+	  postgis/geography.sql.in.c, postgis/geography_measurement.c:
+	  ST_Azimuth on the spheroid (#1305)
 
-2011-12-21 18:42  pramsey
+2011-12-21 18:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_Project(geography, distance, azimuth) (#657) to construct
-	  a new point given a heading and a distance.
+	* [r8495] doc/reference_measure.xml, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeodetic.c, postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c: Add ST_Project(geography,
+	  distance, azimuth) (#657) to construct a new point given a
+	  heading and a distance.
 
-2011-12-21 17:16  robe
+2011-12-21 17:16  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r8494] doc/using_raster_dataman.xml: fix typo
 
-2011-12-21 17:15  strk
+2011-12-21 17:15  Sandro Santilli <strk at keybit.net>
 
-	* Add missing options in the help string
+	* [r8493] regress/run_test: Add missing options in the help string
 
-2011-12-21 17:09  strk
+2011-12-21 17:09  Sandro Santilli <strk at keybit.net>
 
-	* Put staged postgis.sql with other staged intsall objects
+	* [r8492] regress/Makefile.in, regress/run_test: Put staged
+	  postgis.sql with other staged intsall objects
 
-2011-12-21 16:17  strk
+2011-12-21 16:17  Sandro Santilli <strk at keybit.net>
 
-	* Document the new -s from:to syntax of shp2pgsql [#994]
+	* [r8491] doc/man/shp2pgsql.1: Document the new -s from:to syntax
+	  of shp2pgsql [#994]
 
-2011-12-21 14:53  strk
+2011-12-21 14:53  Sandro Santilli <strk at keybit.net>
 
-	* Add include for lwgeom_typmod_valid define
+	* [r8490] postgis/lwgeom_inout.c: Add include for
+	  lwgeom_typmod_valid define
 
-2011-12-21 14:50  strk
+2011-12-21 14:50  Sandro Santilli <strk at keybit.net>
 
-	* Add top-level and postgis/ dirs in include path for building
-	  scripts
+	* [r8489] raster/rt_pg/Makefile.in: Add top-level and postgis/ dirs
+	  in include path for building scripts
 	  
 	  Fixes an error finding sqldefines.h
 
-2011-12-21 14:37  strk
+2011-12-21 14:37  Sandro Santilli <strk at keybit.net>
 
-	* Use own implementation of endian detection, should fix #1172
+	* [r8488] liblwgeom/liblwgeom_internal.h, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwout_wkb.c, liblwgeom/lwutil.c: Use own implementation
+	  of endian detection, should fix #1172
 
-2011-12-21 14:16  strk
+2011-12-21 14:16  Sandro Santilli <strk at keybit.net>
 
-	* Fix repeated modifier
+	* [r8487] java/jdbc/src/org/postgis/Geometry.java: Fix repeated
+	  modifier
 
-2011-12-21 14:03  strk
+2011-12-21 14:03  Sandro Santilli <strk at keybit.net>
 
-	* Put PostgreSQL module related code in a new postgis_module.c file
+	* [r8486] postgis/Makefile.in, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis_module.c: Put PostgreSQL module related code in a
+	  new postgis_module.c file
 	  
 	  Beside the existing MODULE_MAGIC macro we now also have
 	  _PG_init and _PG_fini which are called at module load and unload.
 	  Such functions may be used to deal with GUC (and sample code for
 	  that is stubbed already). See #1393.
 
-2011-12-21 13:59  robe
+2011-12-21 13:59  Regina Obe <lr at pcorp.us>
 
-	* #1257 - drop mem_size
+	* [r8485] postgis/uninstall_legacy.sql.in.c: #1257 - drop mem_size
 
-2011-12-21 13:14  robe
+2011-12-21 13:14  Regina Obe <lr at pcorp.us>
 
-	* #1345 write this off as an observed regression difference and
-	  document the behavior for those like me who will be adversely
-	  impacted and confused by application breakage.
+	* [r8484] doc/reference_accessor.xml: #1345 write this off as an
+	  observed regression difference and document the behavior for
+	  those like me who will be adversely impacted and confused by
+	  application breakage.
 
-2011-12-21 13:03  robe
+2011-12-21 13:03  Regina Obe <lr at pcorp.us>
 
-	* #1242 write this off as a documentation bug. I don't have 1.5.1
-	  anymore to confirm ST_Line_Locate_Point ever worked with
-	  multilinestrings and doesn't work on my 1.5.3 install
+	* [r8482] doc/reference_lrs.xml: #1242 write this off as a
+	  documentation bug. I don't have 1.5.1 anymore to confirm
+	  ST_Line_Locate_Point ever worked with multilinestrings and
+	  doesn't work on my 1.5.3 install
 
-2011-12-20 19:35  strk
+2011-12-20 19:35  Sandro Santilli <strk at keybit.net>
 
-	* Convert java components to SRID<=0 being unknown and 0 being the
-	  official one [#1221]
+	* [r8481] java/jdbc/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsBinaryWriter.java,
+	  java/jdbc/src/org/postgis/Geometry.java,
+	  java/jdbc/src/org/postgis/PGboxbase.java,
+	  java/jdbc/src/org/postgis/PGgeometry.java,
+	  java/jdbc/src/org/postgis/binary/BinaryParser.java,
+	  java/jdbc/src/org/postgis/binary/BinaryWriter.java,
+	  java/jdbc/src/org/postgis/java2d/PGShapeGeometry.java,
+	  java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsParser.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsWriter.java: Convert java
+	  components to SRID<=0 being unknown and 0 being the official one
+	  [#1221]
 	  
 	  NOTE: this is untested, as "make" didn't know what to do and so
 	  neither do I
 
-2011-12-20 18:51  strk
+2011-12-20 18:51  Sandro Santilli <strk at keybit.net>
 
-	* Different types _can_ be equal, see #756
+	* [r8480] postgis/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: Different types _can_ be equal, see
+	  #756
 
-2011-12-20 16:56  robe
+2011-12-20 16:56  Regina Obe <lr at pcorp.us>
 
-	* link to windows supplementary hard upgrade instructions
+	* [r8479] doc/installation.xml: link to windows supplementary hard
+	  upgrade instructions
 
-2011-12-20 16:01  strk
+2011-12-20 16:01  Sandro Santilli <strk at keybit.net>
 
-	* Add comments in current version, including topo and raster
-	  [#1390]
+	* [r8478] utils/postgis_restore.pl: Add comments in current
+	  version, including topo and raster [#1390]
 
-2011-12-20 15:43  strk
+2011-12-20 15:43  Sandro Santilli <strk at keybit.net>
 
-	* Add comments from pgis-1.4 [#1390]
+	* [r8477] utils/postgis_restore.pl: Add comments from pgis-1.4
+	  [#1390]
 	  
 	  Also handle pg_restore errors more cleanly
 
-2011-12-20 15:18  strk
+2011-12-20 15:18  Sandro Santilli <strk at keybit.net>
 
-	* Add more objects from a 1.5 install, including comments [#1390]
+	* [r8476] utils/postgis_restore.pl: Add more objects from a 1.5
+	  install, including comments [#1390]
 
-2011-12-20 03:28  dustymugs
+2011-12-20 03:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Finished support for make target "uninstall".
+	* [r8475] raster/loader/Makefile.in, raster/scripts/Makefile.in:
+	  Finished support for make target "uninstall".
 
-2011-12-20 02:58  dustymugs
+2011-12-20 02:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Correct handling of make target "distclean". Next is "uninstall".
+	* [r8474] raster/Makefile.in, raster/loader/Makefile.in,
+	  raster/rt_pg, raster/rt_pg/.svnignore, raster/rt_pg/Makefile.in,
+	  raster/scripts/Makefile.in, raster/scripts/python/Makefile.in,
+	  raster/test/Makefile.in, raster/test/regress/Makefile.in: Correct
+	  handling of make target "distclean". Next is "uninstall".
 
-2011-12-19 19:21  strk
+2011-12-19 19:21  Sandro Santilli <strk at keybit.net>
 
-	* Update loader tests to use the new reprojection switch [#994]
+	* [r8473] regress/loader/ReprojectPts.opts,
+	  regress/loader/ReprojectPtsGeog.opts: Update loader tests to use
+	  the new reprojection switch [#994]
 
-2011-12-19 19:06  strk
+2011-12-19 19:06  Sandro Santilli <strk at keybit.net>
 
-	* Drop -r switch, allow requesting reprojection with -s [#994]
+	* [r8472] loader/shp2pgsql-cli.c: Drop -r switch, allow requesting
+	  reprojection with -s [#994]
 
-2011-12-19 16:19  strk
+2011-12-19 16:19  Sandro Santilli <strk at keybit.net>
 
-	* Make sure input is at least 3 characters long (#1146)
+	* [r8471] doc/html/image_src/generator.c: Make sure input is at
+	  least 3 characters long (#1146)
 
-2011-12-19 16:19  strk
+2011-12-19 16:19  Sandro Santilli <strk at keybit.net>
 
-	* Report testing of pg-8.4.9/pgis-2.0.0SVN =>
-	  pg-9.1.2/pgis-2.0.0SVN
+	* [r8470] utils/postgis_restore.pl: Report testing of
+	  pg-8.4.9/pgis-2.0.0SVN => pg-9.1.2/pgis-2.0.0SVN
 
-2011-12-19 12:27  strk
+2011-12-19 12:27  Sandro Santilli <strk at keybit.net>
 
-	* Document postgis_restore.pl based HARD UPGRADE procedure
+	* [r8469] doc/installation.xml: Document postgis_restore.pl based
+	  HARD UPGRADE procedure
 	  
 	  Reviews are welcome.
 	  The new description replaces the old one so the brute force noisy
@@ -13880,252 +26492,356 @@
 	  is now undocumented. If really needed it may come back in a
 	  subsection.
 
-2011-12-19 09:07  strk
+2011-12-19 09:07  Sandro Santilli <strk at keybit.net>
 
-	* Allow keeping rows in spatial_ref_sys at postgis_restore.pl time
+	* [r8468] utils/postgis_restore.pl: Allow keeping rows in
+	  spatial_ref_sys at postgis_restore.pl time
 	  
 	  After this commit the entries found in spatial_ref_sys at time
 	  of restore are retained w/out triggering ERROR lines in logfile
 	  or transaction aborts. Entries in dump with SRID not found in
 	  existing spatial_ref_sys are inserted.
 
-2011-12-19 08:18  strk
+2011-12-19 08:18  Sandro Santilli <strk at keybit.net>
 
-	* Fix SRIDs in topology.topology after restore.
+	* [r8467] utils/postgis_restore.pl: Fix SRIDs in topology.topology
+	  after restore.
 
-2011-12-19 06:33  robe
+2011-12-19 06:33  Regina Obe <lr at pcorp.us>
 
-	* bump up numbers. logic to drop raster casts from extension if
-	  they are present and script asks to drop.
+	* [r8466] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis_extension_helper.sql,
+	  extensions/postgis_extension_helper_uninstall.sql,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: bump up
+	  numbers. logic to drop raster casts from extension if they are
+	  present and script asks to drop.
 
-2011-12-19 05:00  robe
+2011-12-19 05:00  Regina Obe <lr at pcorp.us>
 
-	* get rid of superfluous drop if exists _drop_st_samealignment
+	* [r8465] raster/rt_pg/rtpostgis_drop.sql.in.c: get rid of
+	  superfluous drop if exists _drop_st_samealignment
 
-2011-12-19 04:56  dustymugs
+2011-12-19 04:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed to suppress PL/pgSQL notices causing issues due to line #
-	  output. Added order by to check_raster_overviews to ensure
-	  consistent output.
+	* [r8464] raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_columns_expected,
+	  raster/test/regress/check_raster_overviews.sql,
+	  raster/test/regress/check_raster_overviews_expected,
+	  raster/test/regress/rt_intersection.sql,
+	  raster/test/regress/rt_intersection_expected: Fixed to suppress
+	  PL/pgSQL notices causing issues due to line # output. Added order
+	  by to check_raster_overviews to ensure consistent output.
 
-2011-12-19 04:48  robe
+2011-12-19 04:48  Regina Obe <lr at pcorp.us>
 
-	* revise upgrade script to take into consideration change in casts
+	* [r8463] raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in.c: revise upgrade
+	  script to take into consideration change in casts
 
-2011-12-19 04:12  robe
+2011-12-19 04:12  Regina Obe <lr at pcorp.us>
 
-	* replace box2d with box3d in examples and remaining func
+	* [r8462] doc/reference_raster.xml: replace box2d with box3d in
+	  examples and remaining func
 
-2011-12-19 03:44  robe
+2011-12-19 03:44  Regina Obe <lr at pcorp.us>
 
-	* Clarify topology topoelement example that it is an example of
-	  WHAT NOT TO DO
+	* [r8461] doc/extras_topology.xml: Clarify topology topoelement
+	  example that it is an example of WHAT NOT TO DO
 
-2011-12-19 03:37  robe
+2011-12-19 03:37  Regina Obe <lr at pcorp.us>
 
-	* replace references to box2d with box3d
+	* [r8460] doc/reference_raster.xml: replace references to box2d
+	  with box3d
 
-2011-12-19 02:18  robe
+2011-12-19 02:18  Regina Obe <lr at pcorp.us>
 
-	* get rid of remove ST_Intersection signatures and replace with new
-	  ones. Add the raster outputting intersection signatures. Still
-	  need to put in examples.
+	* [r8459] doc/reference_raster.xml: get rid of remove
+	  ST_Intersection signatures and replace with new ones. Add the
+	  raster outputting intersection signatures. Still need to put in
+	  examples.
 
-2011-12-19 01:59  robe
+2011-12-19 01:59  Regina Obe <lr at pcorp.us>
 
-	* update faq for raster to bring it more up to line with new
-	  loading , QGIS support etc., remove box2d and replace with box3d,
-	  minor rewording -- people who don't know GDAL don't know what a
-	  GDAL raster is. Took that word out when describing -G since it
-	  confuses rather than adding value.
+	* [r8458] doc/faq_raster.xml, doc/reference_raster.xml,
+	  doc/using_raster_dataman.xml: update faq for raster to bring it
+	  more up to line with new loading , QGIS support etc., remove
+	  box2d and replace with box3d, minor rewording -- people who don't
+	  know GDAL don't know what a GDAL raster is. Took that word out
+	  when describing -G since it confuses rather than adding value.
 
-2011-12-19 01:53  dustymugs
+2011-12-19 01:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored and cleaned up the regressions checks of values in
-	  raster_columns and raster_overviews views.
+	* [r8457] raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_columns_expected,
+	  raster/test/regress/check_raster_overviews.sql,
+	  raster/test/regress/check_raster_overviews_expected: Refactored
+	  and cleaned up the regressions checks of values in raster_columns
+	  and raster_overviews views.
 
-2011-12-18 23:02  strk
+2011-12-18 23:02  Sandro Santilli <strk at keybit.net>
 
-	* Document darkblue test: pg-9.1b3/pgis-1.5 to
-	  pg-9.1.1/pgis-2.0.0SVN
+	* [r8456] utils/postgis_restore.pl: Document darkblue test:
+	  pg-9.1b3/pgis-1.5 to pg-9.1.1/pgis-2.0.0SVN
 
-2011-12-18 22:42  strk
+2011-12-18 22:42  Sandro Santilli <strk at keybit.net>
 
-	* Do not expect things to happen in "userland" schema (what is it?)
+	* [r8455] raster/test/regress/check_raster_columns_expected,
+	  raster/test/regress/check_raster_overviews_expected: Do not
+	  expect things to happen in "userland" schema (what is it?)
 
-2011-12-18 18:49  robe
+2011-12-18 18:49  Regina Obe <lr at pcorp.us>
 
-	* put in missing tag
+	* [r8454] doc/using_raster_dataman.xml: put in missing tag
 
-2011-12-18 18:05  robe
+2011-12-18 18:05  Regina Obe <lr at pcorp.us>
 
-	* add in some missing raster2pgsql switches and provide an example
-	  of the -G list drivers option.
+	* [r8453] doc/using_raster_dataman.xml: add in some missing
+	  raster2pgsql switches and provide an example of the -G list
+	  drivers option.
 
-2011-12-18 14:24  strk
+2011-12-18 14:24  Sandro Santilli <strk at keybit.net>
 
-	* Update after typo fix for AddGeometryColumn error message
+	* [r8452] regress/tickets_expected: Update after typo fix for
+	  AddGeometryColumn error message
 
-2011-12-18 14:22  strk
+2011-12-18 14:22  Sandro Santilli <strk at keybit.net>
 
-	* Fix st_extent on empty relation (#1385)
+	* [r8451] postgis/lwgeom_box3d.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix st_extent on empty relation (#1385)
 
-2011-12-17 21:00  strk
+2011-12-17 21:00  Sandro Santilli <strk at keybit.net>
 
-	* AddGeometryColumns => AddGeometryColumn
+	* [r8450] postgis/postgis.sql.in.c: AddGeometryColumns =>
+	  AddGeometryColumn
 
-2011-12-17 01:50  robe
+2011-12-17 01:50  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r8449] doc/using_raster_dataman.xml: fix typo
 
-2011-12-16 22:07  dustymugs
+2011-12-16 22:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor comment cleanup in rtpostgis.sql.in.c. Added regression
-	  tests for AddRasterConstraints, AddOverviewConstraints,
+	* [r8448] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_columns_expected,
+	  raster/test/regress/check_raster_overviews.sql,
+	  raster/test/regress/check_raster_overviews_expected: Minor
+	  comment cleanup in rtpostgis.sql.in.c. Added regression tests for
+	  AddRasterConstraints, AddOverviewConstraints,
 	  DropRasterConstraints and DropOverviewConstraints.
 
-2011-12-16 17:20  strk
+2011-12-16 17:20  Sandro Santilli <strk at keybit.net>
 
-	* Do restore spatial_ref_sys from dump, temporarly disabling srid
-	  check
+	* [r8447] utils/postgis_restore.pl: Do restore spatial_ref_sys from
+	  dump, temporarly disabling srid check
 	  
 	  Assuming you don't source spatial_ref_sys.sql prior to run
 	  postgis_restore.pl you would always end up with all your data
 	  in the table and if no SRIDS are out of the valid range you'd
 	  also have the constraint in place.
 
-2011-12-16 16:39  strk
+2011-12-16 16:39  Sandro Santilli <strk at keybit.net>
 
-	* Add more signatures to skip on restore (raster)
+	* [r8446] utils/postgis_restore.pl: Add more signatures to skip on
+	  restore (raster)
 
-2011-12-16 15:16  strk
+2011-12-16 15:16  Sandro Santilli <strk at keybit.net>
 
-	* Report full exception string on ST_Intersection failure (see
-	  #1173)
+	* [r8445] liblwgeom/lwgeom_geos.c: Report full exception string on
+	  ST_Intersection failure (see #1173)
 
-2011-12-16 14:59  strk
+2011-12-16 14:59  Sandro Santilli <strk at keybit.net>
 
-	* Add test for #1344 (can't dump invalid geometries)
+	* [r8444] regress/tickets.sql, regress/tickets_expected: Add test
+	  for #1344 (can't dump invalid geometries)
 
-2011-12-16 04:34  robe
+2011-12-16 04:34  Regina Obe <lr at pcorp.us>
 
-	* fix more typos
+	* [r8442] doc/using_raster_dataman.xml: fix more typos
 
-2011-12-16 04:27  robe
+2011-12-16 04:27  Regina Obe <lr at pcorp.us>
 
-	* more typo fix
+	* [r8441] doc/using_raster_dataman.xml: more typo fix
 
-2011-12-16 04:24  robe
+2011-12-16 04:24  Regina Obe <lr at pcorp.us>
 
-	* fix more typos
+	* [r8440] doc/using_raster_dataman.xml: fix more typos
 
-2011-12-16 04:21  robe
+2011-12-16 04:21  Regina Obe <lr at pcorp.us>
 
-	* flesh out creating rasters section a bit.
+	* [r8439] doc/using_raster_dataman.xml: flesh out creating rasters
+	  section a bit.
 
-2011-12-16 01:41  robe
+2011-12-16 01:41  Regina Obe <lr at pcorp.us>
 
-	* start best practices stuff and break up loading and creating into
-	  two separate sections.
+	* [r8438] doc/using_raster_dataman.xml: start best practices stuff
+	  and break up loading and creating into two separate sections.
 
-2011-12-16 01:25  robe
+2011-12-16 01:25  Regina Obe <lr at pcorp.us>
 
-	* cosmetic change to lists
+	* [r8437] doc/using_raster_dataman.xml: cosmetic change to lists
 
-2011-12-16 01:11  dustymugs
+2011-12-16 01:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of C-based ST_MinPossibleValue to replace the existing
-	  ST_MinPossibleVal which uses hard-coded values. Updated dependent
-	  functions and scripts/plpgsql to use new function. Deleted
+	* [r8436] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/scripts/plpgsql/st_clip.sql,
+	  raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_mapalgebra_optimized.sql,
+	  raster/scripts/plpgsql/st_mapalgebrafctngb.sql,
+	  raster/scripts/plpgsql/st_minpossibleval.sql,
+	  raster/test/regress/rt_utility.sql,
+	  raster/test/regress/rt_utility_expected: Addition of C-based
+	  ST_MinPossibleValue to replace the existing ST_MinPossibleVal
+	  which uses hard-coded values. Updated dependent functions and
+	  scripts/plpgsql to use new function. Deleted
 	  scripts/plpgsql/st_minpossibleval.sql to stop people from using
 	  it. Associated ticket is #1298.
 
-2011-12-16 00:09  dustymugs
-
-	* Just changes to the comments of ST_Intersection(geometry, raster)
-
-2011-12-15 23:47  dustymugs
-
-	* Addition of two-raster ST_Intersection function set in
-	  raster-space well as another set for raster,geometry
-	  ST_Intersection in raster-space. Associated ticket is #1381
-
-2011-12-15 23:43  dustymugs
-
-	* Renamed function parameters for ST_SameAlignment and
-	  ST_Intersects so that the names follow the convention used for
-	  similarly purposed parameters of other raster functions.
-
-2011-12-15 23:29  strk
-
-	* Allow calling geography_in with less than 3 args (see #1320)
-
-2011-12-15 23:26  strk
+2011-12-16 00:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* Check typmod on geometry input. Fixes before triggers (#1320)
+	* [r8435] raster/rt_pg/rtpostgis.sql.in.c: Just changes to the
+	  comments of ST_Intersection(geometry, raster)
 
-2011-12-15 15:11  strk
+2011-12-15 23:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix documentation for the new option for GML box output
-
-2011-12-15 02:19  robe
-
-	* more error fixes and change ordered lists to itemized lists
-
-2011-12-15 02:17  robe
+	* [r8434] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_intersection.sql,
+	  raster/test/regress/rt_intersection_expected: Addition of
+	  two-raster ST_Intersection function set in raster-space well as
+	  another set for raster,geometry ST_Intersection in raster-space.
+	  Associated ticket is #1381
 
-	* fix invalid link end
+2011-12-15 23:43  Bborie Park <bkpark at ucdavis.edu>
 
-2011-12-15 02:15  robe
+	* [r8433] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Renamed function parameters
+	  for ST_SameAlignment and ST_Intersects so that the names follow
+	  the convention used for similarly purposed parameters of other
+	  raster functions.
 
-	* get rid of extra tag
+2011-12-15 23:29  Sandro Santilli <strk at keybit.net>
 
-2011-12-15 02:14  robe
+	* [r8432] postgis/geography_inout.c: Allow calling geography_in
+	  with less than 3 args (see #1320)
 
-	* correct regular_blocking definition, add descriptions for
-	  raster_overview columns
+2011-12-15 23:26  Sandro Santilli <strk at keybit.net>
 
-2011-12-15 01:56  robe
+	* [r8431] postgis/lwgeom_inout.c, regress/tickets.sql,
+	  regress/tickets_expected: Check typmod on geometry input. Fixes
+	  before triggers (#1320)
 
-	* more reasons why we have raster overviews
+2011-12-15 15:11  Sandro Santilli <strk at keybit.net>
 
-2011-12-15 01:54  robe
+	* [r8430] doc/reference_output.xml: Fix documentation for the new
+	  option for GML box output
 
-	* Start raster_overviews section
+2011-12-15 02:19  Regina Obe <lr at pcorp.us>
 
-2011-12-15 00:21  dustymugs
+	* [r8429] doc/using_raster_dataman.xml: more error fixes and change
+	  ordered lists to itemized lists
 
-	* Renamed st_bytea to bytea as per PostGIS convention. Existing
-	  databases will not be affected if upgraded using the upgrade
-	  scripts. Associated ticket is #1003
+2011-12-15 02:17  Regina Obe <lr at pcorp.us>
 
-2011-12-15 00:16  dustymugs
+	* [r8428] doc/using_raster_dataman.xml: fix invalid link end
 
-	* Commented out the dropping of box2d casts as the upgrade scripts
-	  won't install the box3d casts.
+2011-12-15 02:15  Regina Obe <lr at pcorp.us>
 
-2011-12-14 23:51  dustymugs
+	* [r8427] doc/using_raster_dataman.xml: get rid of extra tag
 
-	* Renamed operator functions and made appropriate changes to
-	  associated operators to be inline with usage for geometry and
-	  geography. Associated ticket is #633. Existing users will not be
-	  affected as the upgrade scripts do not drop or add new operators.
+2011-12-15 02:14  Regina Obe <lr at pcorp.us>
 
-2011-12-14 23:02  dustymugs
+	* [r8426] doc/using_raster_dataman.xml: correct regular_blocking
+	  definition, add descriptions for raster_overview columns
 
-	* Added DROP CAST and DROP FUNCTION for box2d.
+2011-12-15 01:56  Regina Obe <lr at pcorp.us>
 
-2011-12-14 22:57  dustymugs
+	* [r8425] doc/using_raster_dataman.xml: more reasons why we have
+	  raster overviews
 
-	* Dropped casts to box2d and replaced with casts to box3d.
-	  Associated ticket is #1330.
+2011-12-15 01:54  Regina Obe <lr at pcorp.us>
 
-2011-12-14 22:23  dustymugs
+	* [r8424] doc/using_raster_dataman.xml: Start raster_overviews
+	  section
 
-	* Added option -G to get listing of supported raster types instead
-	  of calling ST_GDALDrivers in SQL. Had to tweak
-	  rt_raster_gdal_drivers in rt_api.c to not limit drivers based
-	  upon creation capabilities. Associated ticket is #1374.
+2011-12-15 00:21  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r8423] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/rt_bytea.sql: Renamed st_bytea to bytea as
+	  per PostGIS convention. Existing databases will not be affected
+	  if upgraded using the upgrade scripts. Associated ticket is #1003
+
+2011-12-15 00:16  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r8422] raster/rt_pg/rtpostgis_drop.sql.in.c: Commented out the
+	  dropping of box2d casts as the upgrade scripts won't install the
+	  box3d casts.
+
+2011-12-14 23:51  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r8421] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/rt_above.sql,
+	  raster/test/regress/rt_above_expected,
+	  raster/test/regress/rt_below.sql,
+	  raster/test/regress/rt_below_expected,
+	  raster/test/regress/rt_contain.sql,
+	  raster/test/regress/rt_contain_expected,
+	  raster/test/regress/rt_contained.sql,
+	  raster/test/regress/rt_contained_expected,
+	  raster/test/regress/rt_left.sql,
+	  raster/test/regress/rt_left_expected,
+	  raster/test/regress/rt_overabove.sql,
+	  raster/test/regress/rt_overabove_expected,
+	  raster/test/regress/rt_overbelow.sql,
+	  raster/test/regress/rt_overbelow_expected,
+	  raster/test/regress/rt_overlap.sql,
+	  raster/test/regress/rt_overlap_expected,
+	  raster/test/regress/rt_overleft.sql,
+	  raster/test/regress/rt_overleft_expected,
+	  raster/test/regress/rt_overright.sql,
+	  raster/test/regress/rt_overright_expected,
+	  raster/test/regress/rt_right.sql,
+	  raster/test/regress/rt_right_expected,
+	  raster/test/regress/rt_same.sql,
+	  raster/test/regress/rt_same_expected: Renamed operator functions
+	  and made appropriate changes to associated operators to be inline
+	  with usage for geometry and geography. Associated ticket is #633.
+	  Existing users will not be affected as the upgrade scripts do not
+	  drop or add new operators.
+
+2011-12-14 23:02  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r8420] raster/rt_pg/rtpostgis_drop.sql.in.c: Added DROP CAST and
+	  DROP FUNCTION for box2d.
+
+2011-12-14 22:57  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r8419] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in, raster/test/regress/box3d.sql,
+	  raster/test/regress/box3d_expected,
+	  raster/test/regress/create_box3d_test.sql,
+	  raster/test/regress/create_box3d_test_expected,
+	  raster/test/regress/create_rt_box2d_test.sql,
+	  raster/test/regress/create_rt_box2d_test_expected,
+	  raster/test/regress/rt_box2d.sql,
+	  raster/test/regress/rt_box2d_expected: Dropped casts to box2d and
+	  replaced with casts to box3d. Associated ticket is #1330.
+
+2011-12-14 22:23  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r8418] raster/loader/raster2pgsql.c, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/test/core/testapi.c: Added option -G to get listing of
+	  supported raster types instead of calling ST_GDALDrivers in SQL.
+	  Had to tweak rt_raster_gdal_drivers in rt_api.c to not limit
+	  drivers based upon creation capabilities. Associated ticket is
+	  #1374.
 	  Added ability to specify band indices with ranges for option -b.
 	  Example: -b 1-5,7,9-15. Associated ticket is #1375.
 	  Added warning messages when loader is processing more than one
@@ -14133,20 +26849,24 @@
 	  types, hasnodata flags, NODATA values, geotransforms andtile
 	  sizes. Associated ticket is #153.
 
-2011-12-14 22:14  robe
+2011-12-14 22:14  Regina Obe <lr at pcorp.us>
 
-	* document raster_columns catalog view
+	* [r8417] doc/using_raster_dataman.xml: document raster_columns
+	  catalog view
 
-2011-12-14 18:33  strk
+2011-12-14 18:33  Sandro Santilli <strk at keybit.net>
 
-	* Make dropping of log files fully controlled by switch (#1376)
+	* [r8416] regress/run_test: Make dropping of log files fully
+	  controlled by switch (#1376)
 	  
 	  This is because hudson wants to report the regress.log in any
 	  case
 
-2011-12-14 18:25  strk
+2011-12-14 18:25  Sandro Santilli <strk at keybit.net>
 
-	* Regress test all behaviors involving EMPTY geometries
+	* [r8415] postgis/lwgeom_ogc.c, regress/empty.sql,
+	  regress/empty_expected: Regress test all behaviors involving
+	  EMPTY geometries
 	  
 	  See http://trac.osgeo.org/postgis/wiki/DevWikiEmptyGeometry
 	  Changes ST_NumPoints and ST_ExteriorRing to behave requested.
@@ -14154,978 +26874,1219 @@
 	  
 	  Closes #692
 
-2011-12-14 18:24  strk
+2011-12-14 18:24  Sandro Santilli <strk at keybit.net>
 
-	* Crossref ST_InteriorRingN with ST_ExteriorRing
+	* [r8414] doc/reference_accessor.xml: Crossref ST_InteriorRingN
+	  with ST_ExteriorRing
 
-2011-12-14 17:13  strk
+2011-12-14 17:13  Sandro Santilli <strk at keybit.net>
 
-	* Drop temporary files if there are no failures (#1376)
+	* [r8413] regress/run_test: Drop temporary files if there are no
+	  failures (#1376)
 
-2011-12-14 16:02  strk
+2011-12-14 16:02  Sandro Santilli <strk at keybit.net>
 
-	* Fix crash on ST_AsGML('POLYGON EMPTY') (#681)
+	* [r8412] liblwgeom/cunit/cu_out_gml.c, liblwgeom/lwout_gml.c,
+	  regress/empty.sql, regress/empty_expected: Fix crash on
+	  ST_AsGML('POLYGON EMPTY') (#681)
 	  
 	  Also tweak GML of empty types to be smaller and include
 	  regression testing both at the liblwgeom and sql level
 
-2011-12-14 15:07  strk
+2011-12-14 15:07  Sandro Santilli <strk at keybit.net>
 
-	* Fix a typo from last commit, stub test for GML emptyness
+	* [r8411] regress/empty.sql, regress/empty_expected: Fix a typo
+	  from last commit, stub test for GML emptyness
 
-2011-12-14 14:46  strk
+2011-12-14 14:46  Sandro Santilli <strk at keybit.net>
 
-	* Enable a test for an old bugfix (#683)
+	* [r8410] regress/tickets.sql, regress/tickets_expected: Enable a
+	  test for an old bugfix (#683)
 
-2011-12-14 14:46  strk
+2011-12-14 14:46  Sandro Santilli <strk at keybit.net>
 
-	* Move the EMPTY buffer test from tickets.sql to empty.sql
+	* [r8409] regress/empty.sql, regress/empty_expected,
+	  regress/tickets.sql, regress/tickets_expected: Move the EMPTY
+	  buffer test from tickets.sql to empty.sql
 
-2011-12-14 14:37  strk
+2011-12-14 14:37  Sandro Santilli <strk at keybit.net>
 
-	* Return empty geoms snapped to a grid as immutated (#1089)
+	* [r8408] postgis/lwgeom_functions_analytic.c, regress/Makefile.in,
+	  regress/empty.sql, regress/empty_expected: Return empty geoms
+	  snapped to a grid as immutated (#1089)
 	  
 	  Also introduces an "empty" regression test
 
-2011-12-14 14:25  robe
+2011-12-14 14:25  Regina Obe <lr at pcorp.us>
 
-	* minor corrections / enhancements
+	* [r8407] doc/using_raster_dataman.xml: minor corrections /
+	  enhancements
 
-2011-12-14 13:31  strk
+2011-12-14 13:31  Sandro Santilli <strk at keybit.net>
 
-	* Drop topology specific versioning
+	* [r8406] configure.ac, topology/Version.config: Drop topology
+	  specific versioning
 
-2011-12-14 13:31  strk
+2011-12-14 13:31  Sandro Santilli <strk at keybit.net>
 
-	* Add more skip signatures, from interim builds
+	* [r8405] utils/postgis_restore.pl: Add more skip signatures, from
+	  interim builds
 
-2011-12-14 11:22  robe
+2011-12-14 11:22  Regina Obe <lr at pcorp.us>
 
-	* minor change to rtpostgis_drop so can more easily drop from
-	  extension for extension install. Many changes to extensions so
-	  can use native postgis upgarde and raster upgrade scripts. bump
-	  up version numbers
+	* [r8404] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis/sql_bits/remove_from_extension.sql.in,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: minor change to
+	  rtpostgis_drop so can more easily drop from extension for
+	  extension install. Many changes to extensions so can use native
+	  postgis upgarde and raster upgrade scripts. bump up version
+	  numbers
 
-2011-12-14 10:44  robe
+2011-12-14 10:44  Regina Obe <lr at pcorp.us>
 
-	* fix errors in documentation and comment scripts preveningt
-	  comments install from installing cleanly
+	* [r8403] doc/reference_raster.xml,
+	  doc/xsl/raster_comments.sql.xsl: fix errors in documentation and
+	  comment scripts preveningt comments install from installing
+	  cleanly
 
-2011-12-14 10:06  robe
+2011-12-14 10:06  Regina Obe <lr at pcorp.us>
 
-	* Get rid of removed AddRasterTable,Column etc and replace with
-	  newer AddRasterConstraints/DropRasterConstraints
+	* [r8402] doc/reference_raster.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Get rid of removed
+	  AddRasterTable,Column etc and replace with newer
+	  AddRasterConstraints/DropRasterConstraints
 
-2011-12-14 07:59  strk
+2011-12-14 07:59  Sandro Santilli <strk at keybit.net>
 
-	* Add -v switch to postgis_restore.pl, tweak usage and debug output
+	* [r8401] utils/postgis_restore.pl: Add -v switch to
+	  postgis_restore.pl, tweak usage and debug output
 
-2011-12-14 02:54  robe
+2011-12-14 02:54  Regina Obe <lr at pcorp.us>
 
-	* Add stub section describing the raster_columns and
-	  raster_overview catalog views. Also fix typo. More coming.
+	* [r8400] doc/using_raster_dataman.xml: Add stub section describing
+	  the raster_columns and raster_overview catalog views. Also fix
+	  typo. More coming.
 
-2011-12-14 02:31  dustymugs
+2011-12-14 02:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* As per discussion in postgis-devel regarding Ubuntu 11.10,
-	  tweaked the order in which -lm is passed to LDFLAGS
+	* [r8399] raster/loader/Makefile.in: As per discussion in
+	  postgis-devel regarding Ubuntu 11.10, tweaked the order in which
+	  -lm is passed to LDFLAGS
 
-2011-12-14 01:22  dustymugs
+2011-12-14 01:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored for less memory usage by aggresively flushing string
-	  buffers.
+	* [r8398] raster/loader/raster2pgsql.c: Refactored for less memory
+	  usage by aggresively flushing string buffers.
 
-2011-12-13 23:29  strk
+2011-12-13 23:29  Sandro Santilli <strk at keybit.net>
 
-	* Disable triggers on the topology.layer table during restore, to
-	  allow population in random order (#1371)
+	* [r8397] utils/postgis_restore.pl: Disable triggers on the
+	  topology.layer table during restore, to allow population in
+	  random order (#1371)
 
-2011-12-13 23:21  dustymugs
+2011-12-13 23:21  Bborie Park <bkpark at ucdavis.edu>
 
-	* As per discussion in ticket #1373, convert raster constraints
-	  with floating point values (scalex, scaley, nodata values) into
-	  numeric(16,10) for comparison due to precision issues.
+	* [r8396] raster/rt_pg/rtpostgis.sql.in.c: As per discussion in
+	  ticket #1373, convert raster constraints with floating point
+	  values (scalex, scaley, nodata values) into numeric(16,10) for
+	  comparison due to precision issues.
 
-2011-12-13 22:39  robe
+2011-12-13 22:39  Regina Obe <lr at pcorp.us>
 
-	* Add -Y copy switch
+	* [r8395] doc/using_raster_dataman.xml: Add -Y copy switch
 
-2011-12-13 21:58  robe
+2011-12-13 21:58  Regina Obe <lr at pcorp.us>
 
-	* more examples -- put in a missing copy switch -- more switches to
-	  add.
+	* [r8394] doc/using_raster_dataman.xml: more examples -- put in a
+	  missing copy switch -- more switches to add.
 
-2011-12-13 21:19  dustymugs
+2011-12-13 21:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed handling of output ranges going from high to low rather
-	  than the default of values going from low to high. Based upon
-	  message on postgis-users:
+	* [r8393] raster/rt_core/rt_api.c: Fixed handling of output ranges
+	  going from high to low rather than the default of values going
+	  from low to high. Based upon message on postgis-users:
 	  http://postgis.refractions.net/pipermail/postgis-users/2011-December/031763.html
 
-2011-12-13 20:05  dustymugs
+2011-12-13 20:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed incorrect entity using_raster_dataman.
+	* [r8392] doc/postgis.xml: Fixed incorrect entity
+	  using_raster_dataman.
 
-2011-12-13 19:15  robe
+2011-12-13 19:15  Regina Obe <lr at pcorp.us>
 
-	* break raste loder into its own data management chapter -- this
-	  chapter will expand in time. Get rid of how to use old
-	  raster2pgsql.py and replace with instructions on using
-	  raster2pgsql executable.
+	* [r8391] doc/Makefile.in, doc/postgis.xml,
+	  doc/reference_raster.xml, doc/using_raster_dataman.xml: break
+	  raste loder into its own data management chapter -- this chapter
+	  will expand in time. Get rid of how to use old raster2pgsql.py
+	  and replace with instructions on using raster2pgsql executable.
 
-2011-12-13 18:19  dustymugs
+2011-12-13 18:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removal of now-unsupported AddRasterColumn, DropRasterColumn and
-	  DropRasterTable.
+	* [r8390] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Removal of now-unsupported
+	  AddRasterColumn, DropRasterColumn and DropRasterTable.
 
-2011-12-13 18:16  dustymugs
+2011-12-13 18:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added DROP AGGREGATE for new ST_Union signature. Associated
-	  ticket is #1372.
+	* [r8389] raster/rt_pg/rtpostgis_drop.sql.in.c: Added DROP
+	  AGGREGATE for new ST_Union signature. Associated ticket is #1372.
 
-2011-12-13 17:24  dustymugs
+2011-12-13 17:24  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed PGXS and added explicit bin path variable. Works now in
-	  8.4, 9.0 and 9.1. Related ticket is #1370.
+	* [r8388] raster/loader/Makefile.in: Removed PGXS and added
+	  explicit bin path variable. Works now in 8.4, 9.0 and 9.1.
+	  Related ticket is #1370.
 
-2011-12-13 16:37  strk
+2011-12-13 16:37  Sandro Santilli <strk at keybit.net>
 
-	* Drop the old postgis_restore.pl and substitute it with the new
+	* [r8387] utils/new_postgis_restore.pl, utils/postgis_restore.pl:
+	  Drop the old postgis_restore.pl and substitute it with the new
 	  one
 
-2011-12-13 16:33  strk
+2011-12-13 16:33  Sandro Santilli <strk at keybit.net>
 
-	* Ignore more Makefiles
+	* [r8386] .gitignore: Ignore more Makefiles
 
-2011-12-13 16:33  strk
+2011-12-13 16:33  Sandro Santilli <strk at keybit.net>
 
-	* Strictness fixes, internal docs
+	* [r8385] utils/new_postgis_restore.pl: Strictness fixes, internal
+	  docs
 
-2011-12-13 15:04  dustymugs
+2011-12-13 15:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* Revert change made in r8383. Install of loader doesn't work
-	  correctly without PGXS. Still need to figure out why LDFLAGS is
-	  getting eaten.
+	* [r8384] raster/loader/Makefile.in: Revert change made in r8383.
+	  Install of loader doesn't work correctly without PGXS. Still need
+	  to figure out why LDFLAGS is getting eaten.
 	  
 	  Associated ticket is #1370.
 
-2011-12-13 14:14  dustymugs
+2011-12-13 14:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed PGXS as per ticket #1370.
+	* [r8383] raster/loader/Makefile.in: Removed PGXS as per ticket
+	  #1370.
 
-2011-12-13 12:00  strk
+2011-12-13 12:00  Sandro Santilli <strk at keybit.net>
 
-	* Maintain the buffer-returns-areal invariant on empty input (#322)
+	* [r8382] postgis/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: Maintain the buffer-returns-areal
+	  invariant on empty input (#322)
 
-2011-12-13 12:00  strk
+2011-12-13 12:00  Sandro Santilli <strk at keybit.net>
 
-	* tabs to spaces
+	* [r8381] configure.ac: tabs to spaces
 
-2011-12-13 10:38  strk
+2011-12-13 10:38  Sandro Santilli <strk at keybit.net>
 
-	* Always output create ore replace view in upgrade scripts (#1097)
+	* [r8380] utils/postgis_proc_upgrade.pl: Always output create ore
+	  replace view in upgrade scripts (#1097)
 
-2011-12-13 09:59  strk
+2011-12-13 09:59  Sandro Santilli <strk at keybit.net>
 
-	* Allow function definitions to end with '$$ LANGUAGE' (#1365)
+	* [r8379] utils/postgis_proc_upgrade.pl: Allow function definitions
+	  to end with '$$ LANGUAGE' (#1365)
 
-2011-12-13 09:59  strk
+2011-12-13 09:59  Sandro Santilli <strk at keybit.net>
 
-	* Use warnings
+	* [r8378] utils/postgis_proc_upgrade.pl: Use warnings
 
-2011-12-13 09:58  strk
+2011-12-13 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of upgrade script from the tool generating it
+	* [r8377] postgis/Makefile.in: Encode dependency of upgrade script
+	  from the tool generating it
 
-2011-12-13 09:16  strk
+2011-12-13 09:16  Sandro Santilli <strk at keybit.net>
 
-	* Add copyright headers, looking at SCM logs. Review welcome.
+	* [r8376] utils/new_postgis_restore.pl,
+	  utils/postgis_proc_upgrade.pl, utils/postgis_restore.pl: Add
+	  copyright headers, looking at SCM logs. Review welcome.
 
-2011-12-13 05:23  dustymugs
+2011-12-13 05:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Text format cleanup in loader/raster2pgsql.c. Fixed missing
+	* [r8375] raster/loader/raster2pgsql.c, raster/scripts/Makefile.in:
+	  Text format cleanup in loader/raster2pgsql.c. Fixed missing
 	  target in scripts/Makefile.in
 
-2011-12-13 05:11  dustymugs
+2011-12-13 05:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added missing Makefile.in for raster/scripts
+	* [r8374] raster/scripts/Makefile.in: Added missing Makefile.in for
+	  raster/scripts
 
-2011-12-13 05:06  dustymugs
+2011-12-13 05:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Set svn:keywords for "$Id$"
+	* [r8373] raster/loader/raster2pgsql.c,
+	  raster/loader/raster2pgsql.h: Set svn:keywords for "$Id$"
 
-2011-12-13 05:03  dustymugs
+2011-12-13 05:03  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added version information.
+	* [r8372] raster/loader/raster2pgsql.c,
+	  raster/loader/raster2pgsql.h: Added version information.
 	  
 	  Associated ticket is #1369.
 
-2011-12-13 03:00  dustymugs
+2011-12-13 03:00  Bborie Park <bkpark at ucdavis.edu>
 
-	* With commit of C-based raster2pgsql in r8369, removed dependency
-	  checks on Python, NumPy and GDAL with Python bindings. You will
-	  want to run autogen.sh with this commit. With this commit, the
-	  python-based raster2pgsql.py is now retired and unsupported.
+	* [r8371] configure.ac, raster/Makefile.in,
+	  raster/scripts/python/Makefile.in: With commit of C-based
+	  raster2pgsql in r8369, removed dependency checks on Python, NumPy
+	  and GDAL with Python bindings. You will want to run autogen.sh
+	  with this commit. With this commit, the python-based
+	  raster2pgsql.py is now retired and unsupported.
 
-2011-12-13 01:58  dustymugs
+2011-12-13 01:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional check with warnings if PostgreSQL identifiers exceed
-	  the standard maximum length of 63 characters (64 counting NULL)
+	* [r8370] raster/loader/raster2pgsql.c,
+	  raster/loader/raster2pgsql.h: Additional check with warnings if
+	  PostgreSQL identifiers exceed the standard maximum length of 63
+	  characters (64 counting NULL)
 
-2011-12-12 23:12  dustymugs
+2011-12-12 23:12  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of C-based raster2pgsql in raster/loader. No changes
-	  have been made to remove the existing python-based
-	  raster2pgsql.py nor remove the python dependency in configure.
-	  Users will need to run autogen.sh after this revision.
+	* [r8369] configure.ac, raster/Makefile.in, raster/loader,
+	  raster/loader/.svnignore, raster/loader/Makefile.in,
+	  raster/loader/raster2pgsql.c, raster/loader/raster2pgsql.h,
+	  raster/rt_pg/rtpostgis.sql.in.c: Addition of C-based raster2pgsql
+	  in raster/loader. No changes have been made to remove the
+	  existing python-based raster2pgsql.py nor remove the python
+	  dependency in configure. Users will need to run autogen.sh after
+	  this revision.
 	  
 	  Associated ticket is #1297.
 
-2011-12-12 22:42  strk
+2011-12-12 22:42  Sandro Santilli <strk at keybit.net>
 
-	* Skip constraints on raster_columns and raster_overviews
+	* [r8368] utils/new_postgis_restore.pl: Skip constraints on
+	  raster_columns and raster_overviews
 
-2011-12-12 22:38  robe
+2011-12-12 22:38  Regina Obe <lr at pcorp.us>
 
-	* fix title
+	* [r8367] doc/reference_raster.xml: fix title
 
-2011-12-12 22:22  strk
+2011-12-12 22:22  Sandro Santilli <strk at keybit.net>
 
-	* Rewrite spatial table constraints to add st_ prefix and use 0
-	  rather than -1 for unknown
+	* [r8366] utils/new_postgis_restore.pl: Rewrite spatial table
+	  constraints to add st_ prefix and use 0 rather than -1 for
+	  unknown
 
-2011-12-12 21:45  strk
+2011-12-12 21:45  Sandro Santilli <strk at keybit.net>
 
-	* Filter OPERATOR at the ASCII dump phase to have finer control
-	  over which operators are really skipped (#1368)
+	* [r8365] utils/new_postgis_restore.pl: Filter OPERATOR at the
+	  ASCII dump phase to have finer control over which operators are
+	  really skipped (#1368)
 
-2011-12-12 20:32  robe
+2011-12-12 20:32  Regina Obe <lr at pcorp.us>
 
-	* another example of ST_Union
+	* [r8364] doc/reference_raster.xml: another example of ST_Union
 
-2011-12-12 20:23  robe
+2011-12-12 20:23  Regina Obe <lr at pcorp.us>
 
-	* example of ST_Union
+	* [r8363] doc/reference_raster.xml: example of ST_Union
 
-2011-12-12 16:10  strk
+2011-12-12 16:10  Sandro Santilli <strk at keybit.net>
 
-	* Drop lwgeom_gist and dependent items, including from dumps
-	  (#1362)
+	* [r8362] postgis/Makefile.in, postgis/lwgeom_gist.c,
+	  utils/new_postgis_restore.pl: Drop lwgeom_gist and dependent
+	  items, including from dumps (#1362)
 
-2011-12-12 15:45  strk
+2011-12-12 15:45  Sandro Santilli <strk at keybit.net>
 
-	* Do not restore metadata tables which now became views
+	* [r8361] utils/new_postgis_restore.pl: Do not restore metadata
+	  tables which now became views
 
-2011-12-12 15:28  strk
+2011-12-12 15:28  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup item list: drop duplicates, add some missings
+	* [r8360] utils/new_postgis_restore.pl: Cleanup item list: drop
+	  duplicates, add some missings
 
-2011-12-12 15:28  strk
+2011-12-12 15:28  Sandro Santilli <strk at keybit.net>
 
-	* Remove duplicated entries, add some missing ones
+	* [r8359] utils/new_postgis_restore.pl: Remove duplicated entries,
+	  add some missing ones
 
-2011-12-12 12:17  robe
+2011-12-12 12:17  Regina Obe <lr at pcorp.us>
 
-	* reduce ST_MakeEnvelope down to one function but make srid default
-	  to 0 (would be nice if we defined an @SRID_UNKNOWN in the
-	  sqldefine.h.in so I don't have to hard code this). Get rid of
-	  other variant. changing to use default parameters doesn't seem to
-	  require dropping the function so only had to drop one of them
+	* [r8358] postgis/postgis.sql.in.c,
+	  postgis/postgis_drop_before.sql.in.c: reduce ST_MakeEnvelope down
+	  to one function but make srid default to 0 (would be nice if we
+	  defined an @SRID_UNKNOWN in the sqldefine.h.in so I don't have to
+	  hard code this). Get rid of other variant. changing to use
+	  default parameters doesn't seem to require dropping the function
+	  so only had to drop one of them
 
-2011-12-12 12:09  robe
+2011-12-12 12:09  Regina Obe <lr at pcorp.us>
 
-	* oops took out a tag by accident
+	* [r8357] doc/reference_constructor.xml: oops took out a tag by
+	  accident
 
-2011-12-12 12:03  robe
+2011-12-12 12:03  Regina Obe <lr at pcorp.us>
 
-	* document the new ST_MakeEnvelope variant (pretend like its used
-	  default paramters already), will fix the code later
+	* [r8356] doc/reference_constructor.xml: document the new
+	  ST_MakeEnvelope variant (pretend like its used default paramters
+	  already), will fix the code later
 
-2011-12-12 02:20  robe
+2011-12-12 02:20  Regina Obe <lr at pcorp.us>
 
-	* #1366 -- don't rely on state field being capitalized.
+	* [r8355]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_intersection.sql:
+	  #1366 -- don't rely on state field being capitalized.
 
-2011-12-11 20:23  robe
+2011-12-11 20:23  Regina Obe <lr at pcorp.us>
 
-	* forgot about max /min
+	* [r8354] doc/reference_raster.xml: forgot about max /min
 
-2011-12-11 20:21  robe
+2011-12-11 20:21  Regina Obe <lr at pcorp.us>
 
-	* change generateor to display name for aggregates instead of id.
-	  For raster ids are different from name
+	* [r8353] doc/xsl/postgis_aggs_mm.xml.xsl: change generateor to
+	  display name for aggregates instead of id. For raster ids are
+	  different from name
 
-2011-12-11 19:29  robe
+2011-12-11 19:29  Regina Obe <lr at pcorp.us>
 
-	* preliminary documentation for raster version of ST_Union
-	  aggregate function
+	* [r8352] doc/reference_raster.xml: preliminary documentation for
+	  raster version of ST_Union aggregate function
 
-2011-12-11 15:45  robe
+2011-12-11 15:45  Regina Obe <lr at pcorp.us>
 
-	* Revisions to ST_Union for raster: get rid of dependency on
-	  rastexpr (and get rid of type), put in regress tests, get rid of
-	  many ST_Union permutations and limit to st_union(rast),
-	  st_union(rast,p_expression), st_union(rast,band_num),
-	  st_union(rast,band_num,p_expression). Note for drop I'm not
-	  dropping those other versions in case people have installed them
-	  from scripts folder or are currently using them. just dropping
-	  the ones I'm replacing.
+	* [r8351] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_union.sql,
+	  raster/test/regress/rt_union_expected: Revisions to ST_Union for
+	  raster: get rid of dependency on rastexpr (and get rid of type),
+	  put in regress tests, get rid of many ST_Union permutations and
+	  limit to st_union(rast), st_union(rast,p_expression),
+	  st_union(rast,band_num), st_union(rast,band_num,p_expression).
+	  Note for drop I'm not dropping those other versions in case
+	  people have installed them from scripts folder or are currently
+	  using them. just dropping the ones I'm replacing.
 
-2011-12-11 02:42  robe
+2011-12-11 02:42  Regina Obe <lr at pcorp.us>
 
-	* fix function name typo in geocode_intersection
+	* [r8350] doc/extras_tigergeocoder.xml: fix function name typo in
+	  geocode_intersection
 
-2011-12-10 18:08  robe
+2011-12-10 18:08  Regina Obe <lr at pcorp.us>
 
-	* minor edit
+	* [r8349] doc/reference_raster.xml: minor edit
 
-2011-12-10 18:03  robe
+2011-12-10 18:03  Regina Obe <lr at pcorp.us>
 
-	* fix error in logic
+	* [r8348] doc/reference_raster.xml: fix error in logic
 
-2011-12-10 16:56  robe
+2011-12-10 16:56  Regina Obe <lr at pcorp.us>
 
-	* missed a spot
+	* [r8347] doc/reference_raster.xml: missed a spot
 
-2011-12-10 16:55  robe
+2011-12-10 16:55  Regina Obe <lr at pcorp.us>
 
-	* describe the example a bit better for ST_AddBand multi-band
-	  example
+	* [r8346] doc/reference_raster.xml: describe the example a bit
+	  better for ST_AddBand multi-band example
 
-2011-12-10 11:09  robe
+2011-12-10 11:09  Regina Obe <lr at pcorp.us>
 
-	* #1361: fill in some more cases where hard/soft
+	* [r8345] doc/release_notes.xml: #1361: fill in some more cases
+	  where hard/soft
 
-2011-12-10 11:04  robe
+2011-12-10 11:04  Regina Obe <lr at pcorp.us>
 
-	* #1361: make it clearer that a hard upgrade is required of
-	  everyone.
+	* [r8344] doc/release_notes.xml: #1361: make it clearer that a hard
+	  upgrade is required of everyone.
 
-2011-12-10 03:12  robe
+2011-12-10 03:12  Regina Obe <lr at pcorp.us>
 
-	* ST_AddBand version that takes an array of rasters
+	* [r8343] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_addband_expected: ST_AddBand version that
+	  takes an array of rasters
 
-2011-12-10 01:20  dustymugs
+2011-12-10 01:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed calls to the wrong memory allocation function in rtpg_XXX
-	  utility functions.
+	* [r8342] raster/rt_pg/rt_pg.c: Fixed calls to the wrong memory
+	  allocation function in rtpg_XXX utility functions.
 
-2011-12-10 01:01  dustymugs
+2011-12-10 01:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code refactoring in rtpg_ utility functions for better memory
-	  usage and syntax cleanup in rt_api.*
+	* [r8341] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c: Code refactoring in rtpg_ utility functions
+	  for better memory usage and syntax cleanup in rt_api.*
 
-2011-12-10 01:00  dustymugs
+2011-12-10 01:00  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed missing $ in AddOverviewConstraint() which was setting 7 as
-	  the overview factor instead of the value at $7.
+	* [r8340] raster/rt_pg/rtpostgis.sql.in.c: Fixed missing $ in
+	  AddOverviewConstraint() which was setting 7 as the overview
+	  factor instead of the value at $7.
 
-2011-12-09 18:59  strk
+2011-12-09 18:59  Sandro Santilli <strk at keybit.net>
 
-	* Add all signatures found in a newly created PostGIS 2.0 database
+	* [r8339] utils/new_postgis_restore.pl: Add all signatures found in
+	  a newly created PostGIS 2.0 database
 	  
 	  See #1360
 
-2011-12-09 17:17  strk
+2011-12-09 17:17  Sandro Santilli <strk at keybit.net>
 
-	* Add box3d related objects to skip in the _restore scripts (#1359)
+	* [r8338] utils/new_postgis_restore.pl, utils/postgis_restore.pl:
+	  Add box3d related objects to skip in the _restore scripts (#1359)
 
-2011-12-09 16:27  strk
+2011-12-09 16:27  Sandro Santilli <strk at keybit.net>
 
-	* Restrict disabled code to the one really hurting
+	* [r8337] liblwgeom/cunit/cu_surface.c: Restrict disabled code to
+	  the one really hurting
 	  
 	  See ticket #665 for more informations.
 	  The commit also renames the test suite to "surface".
 
-2011-12-09 15:33  strk
+2011-12-09 15:33  Sandro Santilli <strk at keybit.net>
 
-	* gbox_float_round: don't roundup Z value if the box doesn't have
-	  one
+	* [r8336] liblwgeom/g_serialized.c: gbox_float_round: don't roundup
+	  Z value if the box doesn't have one
 	  
 	  Fixes #1309
 
-2011-12-09 14:37  strk
+2011-12-09 14:37  Sandro Santilli <strk at keybit.net>
 
-	* Add a public lwgeom_get_bbox function (#1324)
+	* [r8335] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom.c,
+	  liblwgeom/lwout_gml.c: Add a public lwgeom_get_bbox function
+	  (#1324)
 
-2011-12-09 14:37  strk
+2011-12-09 14:37  Sandro Santilli <strk at keybit.net>
 
-	* Don't let lwgeom_add_bbox syntetize a fake box for empty
-	  geometries
+	* [r8334] liblwgeom/cunit/cu_out_gml.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwout_gml.c: Don't let lwgeom_add_bbox syntetize a fake
+	  box for empty geometries
 	  
 	  Empty geometries have no box. Period.
 	  Update GML extent output for empty geometries to handle the
 	  special
 	  case by using empty tags. Regress test it.
 
-2011-12-09 13:50  strk
+2011-12-09 13:50  Sandro Santilli <strk at keybit.net>
 
-	* Fix segfault in GML3 extent output (#1323)
+	* [r8333] liblwgeom/cunit/cu_out_gml.c, liblwgeom/lwout_gml.c: Fix
+	  segfault in GML3 extent output (#1323)
 	  
 	  Add support for srsDimension in GML3 extent output.
 	  Add unit level comprensive regression testing.
 
-2011-12-09 12:25  strk
+2011-12-09 12:25  Sandro Santilli <strk at keybit.net>
 
-	* Allow calling ST_MakeEnvelope w/out a srid (#1339)
+	* [r8332] postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c, regress/regress.sql,
+	  regress/regress_expected: Allow calling ST_MakeEnvelope w/out a
+	  srid (#1339)
 
-2011-12-09 11:18  strk
+2011-12-09 11:18  Sandro Santilli <strk at keybit.net>
 
-	* Add a gbox_overlaps_2d function, use when appropriate (#1357)
+	* [r8331] liblwgeom/g_box.c, liblwgeom/liblwgeom.h.in,
+	  postgis/lwgeom_geos.c: Add a gbox_overlaps_2d function, use when
+	  appropriate (#1357)
 
-2011-12-08 22:16  pramsey
+2011-12-08 22:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Guard against NaN values in coordinates passing into GEOS (#627)
+	* [r8328] liblwgeom/cunit/cu_libgeom.c, liblwgeom/lwgeom_geos.c,
+	  postgis/lwgeom_geos.c: Guard against NaN values in coordinates
+	  passing into GEOS (#627)
 
-2011-12-08 21:57  pramsey
+2011-12-08 21:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Check that NaN coordinate values find their way into bboxes, they
-	  do, NaN is bigger than Inf, apparently.
+	* [r8327] liblwgeom/cunit/cu_libgeom.c: Check that NaN coordinate
+	  values find their way into bboxes, they do, NaN is bigger than
+	  Inf, apparently.
 
-2011-12-08 21:26  pramsey
+2011-12-08 21:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Test for bbox calculations when there's an infinite coordinate.
+	* [r8326] liblwgeom/cunit/cu_libgeom.c: Test for bbox calculations
+	  when there's an infinite coordinate.
 
-2011-12-08 20:05  dustymugs
+2011-12-08 20:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Return use of GDAL "natural" blocking removed in r8313 and
-	  refactor pointer handling.
+	* [r8325] raster/rt_core/rt_api.c: Return use of GDAL "natural"
+	  blocking removed in r8313 and refactor pointer handling.
 
-2011-12-08 19:51  pramsey
+2011-12-08 19:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove box3d_extent hack
+	* [r8324] doc/reference_misc.xml, doc/reference_type.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl, postgis/legacy.sql.in.c,
+	  postgis/lwgeom_box3d.c, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c, postgis/uninstall_legacy.sql.in.c,
+	  postgis/uninstall_postgis.sql.in.c: Remove box3d_extent hack
 
-2011-12-08 17:54  pramsey
+2011-12-08 17:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the ST_Equals test insensitive to minor box differences.
+	* [r8323] postgis/lwgeom_geos.c: Make the ST_Equals test
+	  insensitive to minor box differences.
 
-2011-12-08 14:44  robe
+2011-12-08 14:44  Regina Obe <lr at pcorp.us>
 
-	* Add Jose and Even to credits
+	* [r8322] NEWS, doc/introduction.xml, doc/release_notes.xml: Add
+	  Jose and Even to credits
 
-2011-12-08 13:35  strk
+2011-12-08 13:35  Sandro Santilli <strk at keybit.net>
 
-	* Add a note about ST_Estimated_Extent on empty or non-analyzed
-	  tables (#877)
+	* [r8321] doc/reference_misc.xml: Add a note about
+	  ST_Estimated_Extent on empty or non-analyzed tables (#877)
 
-2011-12-08 11:29  strk
+2011-12-08 11:29  Sandro Santilli <strk at keybit.net>
 
-	* Have ST_Estimated_Extent return NULL when no stats are found for
-	  a table.
+	* [r8319] postgis/geometry_estimate.c, regress/tickets.sql,
+	  regress/tickets_expected: Have ST_Estimated_Extent return NULL
+	  when no stats are found for a table.
 	  
 	  No stats means empty table or no run of analyze. Warn about that.
 	  These Fixes bug #877. Includes regress test.
 
-2011-12-08 11:28  strk
+2011-12-08 11:28  Sandro Santilli <strk at keybit.net>
 
-	* Hush VACUUM and ANALYZE backend feedback while running tests
+	* [r8318] regress/run_test: Hush VACUUM and ANALYZE backend
+	  feedback while running tests
 
-2011-12-08 08:07  strk
+2011-12-08 08:07  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddToSearchPath: quote database identifier.
+	* [r8315] topology/sql/manage/ManageHelper.sql:
+	  topology.AddToSearchPath: quote database identifier.
 	  
 	  Thanks to Jose Carlos Martinez Llario <jomarlla at cgf.upv.es>
 
-2011-12-07 20:46  dustymugs
+2011-12-07 20:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_raster_set_pixel_line for use when setting values for
+	* [r8314] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Added
+	  rt_raster_set_pixel_line for use when setting values for
 	  sequential pixels. Should be faster than repeated calls to
 	  rt_raster_set_pixel.
 
-2011-12-07 15:29  dustymugs
+2011-12-07 15:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored the GDALRasterIO part of rt_raster_from_gdal_dataset
-	  to use scanlines instead of "natural" blocks, which dramatically
-	  simplifies the code and makes it easier to maintain.
+	* [r8313] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c: Refactored the GDALRasterIO part of
+	  rt_raster_from_gdal_dataset to use scanlines instead of "natural"
+	  blocks, which dramatically simplifies the code and makes it
+	  easier to maintain.
 
-2011-12-07 06:17  robe
+2011-12-07 06:17  Regina Obe <lr at pcorp.us>
 
-	* alphabetize and update tester credits
+	* [r8312] NEWS, doc/release_notes.xml: alphabetize and update
+	  tester credits
 
-2011-12-07 03:41  robe
+2011-12-07 03:41  Regina Obe <lr at pcorp.us>
 
-	* update license to provide detail about documentation license and
-	  copyright of data etc.
+	* [r8311] LICENSE.TXT: update license to provide detail about
+	  documentation license and copyright of data etc.
 
-2011-12-07 01:15  dustymugs
+2011-12-07 01:15  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed regression issue with rt_raster_from_gdal_dataset by
-	  explicitly setting the valid block sizes passed into
-	  GDALRasterIO. Probably related to the changes made in r8309
+	* [r8310] raster/rt_core/rt_api.c: Fixed regression issue with
+	  rt_raster_from_gdal_dataset by explicitly setting the valid block
+	  sizes passed into GDALRasterIO. Probably related to the changes
+	  made in r8309
 
-2011-12-06 16:48  dustymugs
+2011-12-06 16:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed attempt to duplicate entire band in
-	  rt_raster_from_gdal_dataset
+	* [r8309] raster/rt_core/rt_api.c: Removed attempt to duplicate
+	  entire band in rt_raster_from_gdal_dataset
 
-2011-12-06 14:40  robe
+2011-12-06 14:40  Regina Obe <lr at pcorp.us>
 
-	* put some obsolete notes in existing management functions. Now
-	  that raster_columns is a view no longer need to use management
-	  functions to drop or add raster columns or tables. Will document
-	  the new addconstraints etc. taht replaces much of these soon.
+	* [r8308] doc/reference_raster.xml: put some obsolete notes in
+	  existing management functions. Now that raster_columns is a view
+	  no longer need to use management functions to drop or add raster
+	  columns or tables. Will document the new addconstraints etc. taht
+	  replaces much of these soon.
 
-2011-12-06 12:16  strk
+2011-12-06 12:16  Sandro Santilli <strk at keybit.net>
 
-	* Add copyright header. Date and attribution looked up by SCM
-	  history.
+	* [r8307] postgis/long_xact.c: Add copyright header. Date and
+	  attribution looked up by SCM history.
 	  
 	  Verified by my own memory (I wrote the initial vesion of that
 	  file)
 
-2011-12-06 06:06  dustymugs
+2011-12-06 06:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Resolved a bunch of memory issues related to use of SPI that have
-	  been bugging me for a while. Tested successfully in Linux 32 and
-	  64-bit and OSX 64-bit.
+	* [r8306] raster/rt_pg/rt_pg.c: Resolved a bunch of memory issues
+	  related to use of SPI that have been bugging me for a while.
+	  Tested successfully in Linux 32 and 64-bit and OSX 64-bit.
 
-2011-12-05 18:58  dustymugs
+2011-12-05 18:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* As per discussions and ticket #1319, raster_columns and
-	  raster_overviews are now constraint-based views. AddRasterColumn,
-	  DropRasterColumn and DropRasterTable are now deprecated in favor
-	  of AddRasterConstraints and DropRasterConstraints. Additional
+	* [r8305] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/check_raster_columns.sql,
+	  raster/test/regress/check_raster_overviews.sql: As per
+	  discussions and ticket #1319, raster_columns and raster_overviews
+	  are now constraint-based views. AddRasterColumn, DropRasterColumn
+	  and DropRasterTable are now deprecated in favor of
+	  AddRasterConstraints and DropRasterConstraints. Additional
 	  constraints are now available for enforcing the consistency of
 	  the rasters in a table.
 
-2011-12-05 18:36  dustymugs
+2011-12-05 18:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed division by bin-width for when bin-widths are specified
-	  in ST_Histogram
+	* [r8304] raster/rt_core/rt_api.c: Removed division by bin-width
+	  for when bin-widths are specified in ST_Histogram
 
-2011-12-05 02:06  dustymugs
+2011-12-05 02:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Correctly free raster memory when handling NULL rasters.
+	* [r8303] raster/rt_pg/rt_pg.c: Correctly free raster memory when
+	  handling NULL rasters.
 	  
 	  Associated ticket is #1349
 
-2011-12-03 08:29  robe
+2011-12-03 08:29  Regina Obe <lr at pcorp.us>
 
-	* #1343: get rid of geomvalxy and change ST_PixelAsPolygons to use
-	  default args and do without geomvalxy
+	* [r8302] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: #1343: get rid of geomvalxy
+	  and change ST_PixelAsPolygons to use default args and do without
+	  geomvalxy
 
-2011-12-03 07:24  robe
+2011-12-03 07:24  Regina Obe <lr at pcorp.us>
 
-	* #1338 - document ST_PixelWidth/Height
+	* [r8301] doc/html/images/raster_xscale_yscale_xskew_yskew.png,
+	  doc/reference_raster.xml: #1338 - document ST_PixelWidth/Height
 
-2011-12-03 06:54  dustymugs
+2011-12-03 06:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed VARIADIC from ST_BandMetadata. Associated ticket is
-	  #1343.
+	* [r8300] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_bandmetadata.sql: Removed VARIADIC from
+	  ST_BandMetadata. Associated ticket is #1343.
 
-2011-12-02 17:44  robe
+2011-12-02 17:44  Regina Obe <lr at pcorp.us>
 
-	* #1346: fix misuse of quote_literal causing topology, topology,
-	  topology, topology
+	* [r8299] topology/sql/manage/ManageHelper.sql: #1346: fix misuse
+	  of quote_literal causing topology, topology, topology, topology
 
-2011-12-02 17:28  strk
+2011-12-02 17:28  Sandro Santilli <strk at keybit.net>
 
-	* Encode dependency of topology.sql on ManageHelper.sql
+	* [r8298] topology/Makefile.in: Encode dependency of topology.sql
+	  on ManageHelper.sql
 
-2011-12-02 15:43  robe
+2011-12-02 15:43  Regina Obe <lr at pcorp.us>
 
-	* more revisions to cross streets logic -- don't rely on start
+	* [r8297]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_intersection.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql:
+	  more revisions to cross streets logic -- don't rely on start
 	  point working with multilinestrings. change tfid to be unique
 	  index on faces.
 
-2011-12-02 15:22  dustymugs
+2011-12-02 15:22  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added cleanup statements for bandmetatype type and change
-	  function signature for st_bandmetadata.
+	* [r8296] raster/rt_pg/rtpostgis_drop.sql.in.c: Added cleanup
+	  statements for bandmetatype type and change function signature
+	  for st_bandmetadata.
 
-2011-12-02 15:13  dustymugs
+2011-12-02 15:13  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed the type bandmetadata as per #1343.
+	* [r8295] raster/rt_pg/rtpostgis.sql.in.c: Removed the type
+	  bandmetadata as per #1343.
 
-2011-12-02 08:07  robe
+2011-12-02 08:07  Regina Obe <lr at pcorp.us>
 
-	* move geocode_intersection.sql to user api section since it is
+	* [r8294] extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: move
+	  geocode_intersection.sql to user api section since it is
 	  documented.
 
-2011-12-02 06:27  robe
+2011-12-02 06:27  Regina Obe <lr at pcorp.us>
 
-	* try to make emphasis bold by putting in a role='bold'
+	* [r8293] doc/reference_operator.xml: try to make emphasis bold by
+	  putting in a role='bold'
 
-2011-12-01 20:41  robe
+2011-12-01 20:41  Regina Obe <lr at pcorp.us>
 
-	* replace ~= with ST_OrderingEquals (now that we got rid of recheck
-	  the older ~= no longer is a truish geometry equality operator
+	* [r8292] doc/using_postgis_dataman.xml: replace ~= with
+	  ST_OrderingEquals (now that we got rid of recheck the older ~= no
+	  longer is a truish geometry equality operator
 
-2011-12-01 20:37  robe
+2011-12-01 20:37  Regina Obe <lr at pcorp.us>
 
-	* emphasize approximate in KNN operators to reduce the chance of
-	  any misunderstandings
+	* [r8291] doc/reference_operator.xml: emphasize approximate in KNN
+	  operators to reduce the chance of any misunderstandings
 
-2011-12-01 19:06  robe
+2011-12-01 19:06  Regina Obe <lr at pcorp.us>
 
-	* make compatible with postgresql 8.4, more speed improvements
+	* [r8290]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_intersection.sql:
+	  make compatible with postgresql 8.4, more speed improvements
 
-2011-12-01 17:52  robe
+2011-12-01 17:52  Regina Obe <lr at pcorp.us>
 
-	* missed a spot about occasions where point distance is not same as
-	  <->
+	* [r8289] doc/reference_operator.xml: missed a spot about occasions
+	  where point distance is not same as <->
 
-2011-12-01 17:38  robe
+2011-12-01 17:38  Regina Obe <lr at pcorp.us>
 
-	* try to clarify accuracy etc. of <#> and <->
+	* [r8288] doc/reference_operator.xml: try to clarify accuracy etc.
+	  of <#> and <->
 
-2011-12-01 16:14  pracine
+2011-12-01 16:14  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Ticket 1342. Integrate ST_PixelAsPolygons into rtpostgis.sql
+	* [r8287] raster/rt_pg/rtpostgis.sql.in.c: Ticket 1342. Integrate
+	  ST_PixelAsPolygons into rtpostgis.sql
 
-2011-12-01 16:07  pracine
+2011-12-01 16:07  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Return null when band number does not exist.
+	* [r8286] raster/scripts/plpgsql/st_pixelaspolygons.sql: Return
+	  null when band number does not exist.
 
-2011-12-01 16:06  pracine
+2011-12-01 16:06  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Removed ST_MinPossibleVal defined in another script
+	* [r8285] raster/scripts/plpgsql/st_mapalgebra.sql: Removed
+	  ST_MinPossibleVal defined in another script
 
-2011-12-01 16:05  pracine
+2011-12-01 16:05  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Added doc, more test and return null when band number does not
-	  exist.
+	* [r8284] raster/scripts/plpgsql/st_clip.sql: Added doc, more test
+	  and return null when band number does not exist.
 
-2011-12-01 15:52  pracine
+2011-12-01 15:52  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Ticket 1342. Integrate ST_Clip script into rtpostgis.sql
+	* [r8283] raster/rt_pg/rtpostgis.sql.in.c: Ticket 1342. Integrate
+	  ST_Clip script into rtpostgis.sql
 
-2011-12-01 15:15  pracine
+2011-12-01 15:15  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Ticket #1340. Integrate ST_Union into rtpostgis.sql
+	* [r8282] raster/rt_pg/rtpostgis.sql.in.c: Ticket #1340. Integrate
+	  ST_Union into rtpostgis.sql
 
-2011-12-01 15:11  pracine
+2011-12-01 15:11  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Replaced AsBinary with ST_AsBinary in the test section
+	* [r8281] raster/scripts/plpgsql/st_union.sql: Replaced AsBinary
+	  with ST_AsBinary in the test section
 
-2011-12-01 13:32  robe
+2011-12-01 13:32  Regina Obe <lr at pcorp.us>
 
-	* #1337 clarify what sql is good for and get rid of some other
-	  obsolete syntax (this really needs to be read with a fine-tooth
-	  comb). The amount of obsolete info in this chapter is mesmerizing
+	* [r8280] doc/using_postgis_dataman.xml: #1337 clarify what sql is
+	  good for and get rid of some other obsolete syntax (this really
+	  needs to be read with a fine-tooth comb). The amount of obsolete
+	  info in this chapter is mesmerizing
 
-2011-12-01 08:36  robe
+2011-12-01 08:36  Regina Obe <lr at pcorp.us>
 
-	* #1333 geocode_intersections: would help to actually include the
+	* [r8276] extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_intersection.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1333
+	  geocode_intersections: would help to actually include the
 	  function to.
 
-2011-12-01 08:28  robe
+2011-12-01 08:28  Regina Obe <lr at pcorp.us>
 
-	* #1333 geocode intersections
+	* [r8275] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql:
+	  #1333 geocode intersections
 
-2011-12-01 04:29  dzwarg
+2011-12-01 04:29  David Zwarg <dzwarg at azavea.com>
 
-	* Added neighborhood hillshade on top of ST_MapAlgebraFctNgb. Part
-	  of #1318
+	* [r8274] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc_expected: Added
+	  neighborhood hillshade on top of ST_MapAlgebraFctNgb. Part of
+	  #1318
 
-2011-12-01 02:23  dustymugs
+2011-12-01 02:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Tweaked ST_BandMetadata so that calling the function with an
-	  empty array returns all metadata of all bands. Example:
-	  ST_BandMetadata(rast, VARIADIC ARRAY[]::int[])
+	* [r8273] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_bandmetadata.sql,
+	  raster/test/regress/rt_bandmetadata_expected: Tweaked
+	  ST_BandMetadata so that calling the function with an empty array
+	  returns all metadata of all bands. Example: ST_BandMetadata(rast,
+	  VARIADIC ARRAY[]::int[])
 
-2011-12-01 01:11  pracine
+2011-12-01 01:11  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Copied from ST_MapAlgebra.sql
+	* [r8272] raster/scripts/plpgsql/st_minpossibleval.sql: Copied from
+	  ST_MapAlgebra.sql
 
-2011-12-01 01:10  pracine
+2011-12-01 01:10  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Copied from ST_Union
+	* [r8271] raster/scripts/plpgsql/st_multibandmapalgebra.sql: Copied
+	  from ST_Union
 
-2011-12-01 01:09  pracine
+2011-12-01 01:09  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Some cleaning before inclusion in rtpostgis.sql
+	* [r8270] raster/scripts/plpgsql/st_union.sql: Some cleaning before
+	  inclusion in rtpostgis.sql
 	  Removed ST_MultiBandMapAlgebra and ST_HasNoBand
 
-2011-12-01 01:07  pracine
+2011-12-01 01:07  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Return the last band when the provided band number does not
-	  exist.
+	* [r8269] raster/scripts/plpgsql/st_pixelaspolygons.sql: Return the
+	  last band when the provided band number does not exist.
 
-2011-12-01 01:07  pracine
+2011-12-01 01:07  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Added some variants and tests
+	* [r8268] raster/scripts/plpgsql/st_clip.sql: Added some variants
+	  and tests
 
-2011-11-30 22:42  pracine
+2011-11-30 22:42  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* plpgsql implementation for st_clip.sql(raster, geom)
+	* [r8267] raster/scripts/plpgsql/st_clip.sql: plpgsql
+	  implementation for st_clip.sql(raster, geom)
 
-2011-11-30 22:41  pracine
+2011-11-30 22:41  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Added the id of the polygon in the example
+	* [r8266] raster/scripts/plpgsql/st_areaweightedsummarystats.sql:
+	  Added the id of the polygon in the example
 
-2011-11-30 22:34  dzwarg
+2011-11-30 22:34  David Zwarg <dzwarg at azavea.com>
 
-	* Added ST_Aspect map algebra neighborhood shortcut function. #1318
+	* [r8265] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc_expected: Added
+	  ST_Aspect map algebra neighborhood shortcut function. #1318
 
-2011-11-30 21:44  dzwarg
+2011-11-30 21:44  David Zwarg <dzwarg at azavea.com>
 
-	* Added ST_Slope map algebra neighborhood shortcut function.
+	* [r8264] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc_expected: Added
+	  ST_Slope map algebra neighborhood shortcut function.
 
-2011-11-30 20:35  dustymugs
+2011-11-30 20:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed ST_AsRaster to duplicate exactly the attributes of a
+	* [r8263] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/core/testapi.c, raster/test/regress/rt_asraster.sql:
+	  Fixed ST_AsRaster to duplicate exactly the attributes of a
 	  reference raster.
 	  
 	  Associated ticket is #1336.
 
-2011-11-30 19:26  dzwarg
+2011-11-30 19:26  David Zwarg <dzwarg at azavea.com>
 
-	* Added helper user functions for common MapAlgebra operations:
-	  Min, Max, Mean, Range. #1318
+	* [r8262] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_userfunc_expected: Added
+	  helper user functions for common MapAlgebra operations: Min, Max,
+	  Mean, Range. #1318
 
-2011-11-30 16:45  dzwarg
+2011-11-30 16:45  David Zwarg <dzwarg at azavea.com>
 
-	* Updated tests for 'dog-ate-my-homework' test. Expanded comments
-	  and elaborated on complex conditionals in ST_MapAlgebraFctNgb
+	* [r8261] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_expected: Updated tests
+	  for 'dog-ate-my-homework' test. Expanded comments and elaborated
+	  on complex conditionals in ST_MapAlgebraFctNgb
 
-2011-11-30 14:51  dzwarg
+2011-11-30 14:51  David Zwarg <dzwarg at azavea.com>
 
-	* Added additional tests for ST_MapAlgebraFctNgb, changed string
-	  compare on nodatamode to !=
+	* [r8260] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_expected: Added
+	  additional tests for ST_MapAlgebraFctNgb, changed string compare
+	  on nodatamode to !=
 
-2011-11-29 23:25  dustymugs
+2011-11-29 23:25  Bborie Park <bkpark at ucdavis.edu>
 
-	* In preparation of turning the table raster_columns into a view,
-	  refactored ST_BandMetadata to have the bandnum parameter be
-	  variadic. Fleshed out regression tests for ST_BandMetadata.
+	* [r8259] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_bandmetadata.sql,
+	  raster/test/regress/rt_bandmetadata_expected: In preparation of
+	  turning the table raster_columns into a view, refactored
+	  ST_BandMetadata to have the bandnum parameter be variadic.
+	  Fleshed out regression tests for ST_BandMetadata.
 
-2011-11-29 20:30  strk
+2011-11-29 20:30  Sandro Santilli <strk at keybit.net>
 
-	* Ignore more generated files
+	* [r8258] .gitignore: Ignore more generated files
 
-2011-11-29 20:22  pramsey
+2011-11-29 20:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_AddPoint returns incorrect result on Linux (#1335) from roualt
+	* [r8257] liblwgeom/ptarray.c: ST_AddPoint returns incorrect result
+	  on Linux (#1335) from roualt
 
-2011-11-29 16:57  pracine
+2011-11-29 16:57  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Replaced the summarystatsstate type with the summarystats type to
-	  avoid defining a new type.
+	* [r8256] raster/scripts/plpgsql/st_summarystatsagg.sql: Replaced
+	  the summarystatsstate type with the summarystats type to avoid
+	  defining a new type.
 
-2011-11-29 16:34  pracine
+2011-11-29 16:34  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Changed the note at the beginning of the file when the function
-	  is now implemented in C.
+	* [r8255] raster/scripts/plpgsql/st_asraster.sql,
+	  raster/scripts/plpgsql/st_histogram.sql,
+	  raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_reclass.sql: Changed the note at the
+	  beginning of the file when the function is now implemented in C.
 
-2011-11-29 16:20  pracine
+2011-11-29 16:20  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Some more useful functions
+	* [r8254] raster/scripts/plpgsql/st_pixelaspoints.sql,
+	  raster/scripts/plpgsql/st_querytables.sql,
+	  raster/scripts/plpgsql/st_splittable.sql: Some more useful
+	  functions
 
-2011-11-29 16:15  pracine
+2011-11-29 16:15  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Added some plpgsql functions
+	* [r8253] raster/scripts/plpgsql/st_areaweightedsummarystats.sql,
+	  raster/scripts/plpgsql/st_createindexraster.sql,
+	  raster/scripts/plpgsql/st_splittable.sql,
+	  raster/scripts/plpgsql/st_summarystatsagg.sql: Added some plpgsql
+	  functions
 
-2011-11-29 08:49  robe
+2011-11-29 08:49  Regina Obe <lr at pcorp.us>
 
-	* Fix for #1310
+	* [r8252]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql:
+	  Fix for #1310
 
-2011-11-28 13:36  robe
+2011-11-28 13:36  Regina Obe <lr at pcorp.us>
 
-	* Note: libxml2 dependency of ST_Geom*ML functions and ref back to
+	* [r8251] doc/installation.xml, doc/reference_constructor.xml:
+	  Note: libxml2 dependency of ST_Geom*ML functions and ref back to
 	  configuration section. Also put in missing --with-xml2config flag
 	  in installion_configuration section
 
-2011-11-26 21:17  robe
+2011-11-26 21:17  Regina Obe <lr at pcorp.us>
 
-	* put a firmer sorta date in the sand
+	* [r8250] NEWS, doc/release_notes.xml: put a firmer sorta date in
+	  the sand
 
-2011-11-26 21:16  robe
+2011-11-26 21:16  Regina Obe <lr at pcorp.us>
 
-	* more credit cleanup -- add people I missed, fix some minor typos
+	* [r8249] NEWS, doc/introduction.xml, doc/release_notes.xml: more
+	  credit cleanup -- add people I missed, fix some minor typos
 
-2011-11-26 06:07  pramsey
+2011-11-26 06:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_AsSVG kills whole postgres server when fails (#1028)
+	* [r8246] liblwgeom/lwout_svg.c: ST_AsSVG kills whole postgres
+	  server when fails (#1028)
 
-2011-11-26 05:25  robe
+2011-11-26 05:25  Regina Obe <lr at pcorp.us>
 
-	* update credits to include hard-core testers
+	* [r8244] NEWS, doc/introduction.xml, doc/release_notes.xml: update
+	  credits to include hard-core testers
 
-2011-11-26 05:04  pramsey
+2011-11-26 05:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Revert per #1246
+	* [r8243] regress/run_test: Revert per #1246
 
-2011-11-25 11:54  robe
+2011-11-25 11:54  Regina Obe <lr at pcorp.us>
 
-	* remove more obsolete protos in docs and up extension alpha
-	  version numbers
+	* [r8242] doc/reference_raster.xml, extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: remove more
+	  obsolete protos in docs and up extension alpha version numbers
 
-2011-11-25 11:49  robe
+2011-11-25 11:49  Regina Obe <lr at pcorp.us>
 
-	* remove more protos that have been removed and replaced with
-	  default args
+	* [r8241] doc/reference_raster.xml: remove more protos that have
+	  been removed and replaced with default args
 
-2011-11-24 21:13  strk
+2011-11-24 21:13  Sandro Santilli <strk at keybit.net>
 
-	* Move the 'CREATE SCHEMA' query out of first column anchorage
-	  (#1325)
+	* [r8239] topology/topology.sql.in.c: Move the 'CREATE SCHEMA'
+	  query out of first column anchorage (#1325)
 	  
 	  Makes the upgrade script generator less confused...
 
-2011-11-24 19:17  pramsey
+2011-11-24 19:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix operator mis-referencing nd function for 2d op.
+	* [r8238] postgis/postgis.sql.in.c: Fix operator mis-referencing nd
+	  function for 2d op.
 
-2011-11-24 16:01  strk
+2011-11-24 16:01  Sandro Santilli <strk at keybit.net>
 
-	* Override GeometryType and ST_GeometryType for TopoGeometry
-	  (#1289)
+	* [r8237] topology/sql/topogeometry,
+	  topology/sql/topogeometry/type.sql, topology/test/Makefile,
+	  topology/test/hierarchy.sql,
+	  topology/test/regress/topogeometry_type.sql,
+	  topology/test/regress/topogeometry_type_expected,
+	  topology/topology.sql.in.c: Override GeometryType and
+	  ST_GeometryType for TopoGeometry (#1289)
 	  
 	  Includes regression testing.
 	  NOTE: we'll always advertise MULTI as a safest bet
 
-2011-11-24 16:01  strk
+2011-11-24 16:01  Sandro Santilli <strk at keybit.net>
 
-	* Shake legacy testcase a bit to avoid to mix population with
-	  queries
+	* [r8236] topology/test/hierarchy.sql,
+	  topology/test/predicate.expected,
+	  topology/test/predicates.sql.in,
+	  topology/test/query_features.sql,
+	  topology/test/regress/legacy_predicate_expected,
+	  topology/test/regress/legacy_query_expected: Shake legacy
+	  testcase a bit to avoid to mix population with queries
 
-2011-11-24 03:44  robe
+2011-11-24 03:44  Regina Obe <lr at pcorp.us>
 
-	* provide examples for ST_GeomFromGeoJSON now that I can compile it
-	  :)
+	* [r8235] doc/reference_constructor.xml: provide examples for
+	  ST_GeomFromGeoJSON now that I can compile it :)
 
-2011-11-24 03:23  robe
+2011-11-24 03:23  Regina Obe <lr at pcorp.us>
 
-	* update to include links to wiki for extra compilation help and
-	  pre-built binaries.
+	* [r8234] doc/installation.xml: update to include links to wiki for
+	  extra compilation help and pre-built binaries.
 
-2011-11-24 03:14  robe
+2011-11-24 03:14  Regina Obe <lr at pcorp.us>
 
-	* Amend installation instructions to include json-dir configure
-	  option
+	* [r8233] doc/installation.xml: Amend installation instructions to
+	  include json-dir configure option
 
-2011-11-24 02:05  robe
+2011-11-24 02:05  Regina Obe <lr at pcorp.us>
 
-	* minor updates to bios
+	* [r8232] doc/introduction.xml: minor updates to bios
 
-2011-11-24 01:58  robe
+2011-11-24 01:58  Regina Obe <lr at pcorp.us>
 
-	* update news / credits for ST_GeomFromGeoJSON
+	* [r8231] NEWS, doc/release_notes.xml: update news / credits for
+	  ST_GeomFromGeoJSON
 
-2011-11-23 17:28  strk
+2011-11-23 17:28  Sandro Santilli <strk at keybit.net>
 
-	* Const-correct GML signatures
+	* [r8229] liblwgeom/liblwgeom.h.in, liblwgeom/lwout_gml.c:
+	  Const-correct GML signatures
 
-2011-11-23 17:26  robe
+2011-11-23 17:26  Regina Obe <lr at pcorp.us>
 
-	* change + to | to make strk happy
+	* [r8228] doc/reference_output.xml: change + to | to make strk
+	  happy
 
-2011-11-23 17:24  robe
+2011-11-23 17:24  Regina Obe <lr at pcorp.us>
 
-	* update ST_AsGML with examples and include envelope bits option
+	* [r8227] doc/reference_output.xml: update ST_AsGML with examples
+	  and include envelope bits option
 
-2011-11-23 15:27  robe
+2011-11-23 15:27  Regina Obe <lr at pcorp.us>
 
-	* fix typo in GML description noted by strk
+	* [r8226] doc/reference_output.xml: fix typo in GML description
+	  noted by strk
 
-2011-11-23 02:17  robe
+2011-11-23 02:17  Regina Obe <lr at pcorp.us>
 
-	* correct signatures of some functions changed to use more default
-	  args
+	* [r8225] doc/reference_raster.xml: correct signatures of some
+	  functions changed to use more default args
 
-2011-11-22 19:01  dustymugs
+2011-11-22 19:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Prefixed internal C utility functions with rtpg_. This keeps the
-	  coding style inline with that for postgis.
+	* [r8224] raster/rt_pg/rt_pg.c: Prefixed internal C utility
+	  functions with rtpg_. This keeps the coding style inline with
+	  that for postgis.
 
-2011-11-22 18:10  dustymugs
+2011-11-22 18:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* Corrected incorrect drop function statement.
+	* [r8223] raster/rt_pg/rtpostgis_drop.sql.in.c: Corrected incorrect
+	  drop function statement.
 
-2011-11-22 17:58  dustymugs
+2011-11-22 17:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* More SQL function cleanup with use of default parameter values.
+	* [r8222] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: More SQL function cleanup
+	  with use of default parameter values.
 
-2011-11-22 09:26  robe
+2011-11-22 09:26  Regina Obe <lr at pcorp.us>
 
-	* up the alpha numbers
+	* [r8221] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: up the
+	  alpha numbers
 
-2011-11-22 09:21  robe
+2011-11-22 09:21  Regina Obe <lr at pcorp.us>
 
-	* missed a spot
+	* [r8220] doc/reference_raster.xml: missed a spot
 
-2011-11-22 09:05  robe
+2011-11-22 09:05  Regina Obe <lr at pcorp.us>
 
-	* correct documentation to get rid of protos eradicated in r8218
-	  (so extensions installs)
+	* [r8219] doc/reference_raster.xml: correct documentation to get
+	  rid of protos eradicated in r8218 (so extensions installs)
 
-2011-11-22 01:06  dustymugs
+2011-11-22 01:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional function cleanup by making use of DEFAULT parameter
-	  values
+	* [r8218] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Additional function cleanup
+	  by making use of DEFAULT parameter values
 
-2011-11-21 20:09  dustymugs
+2011-11-21 20:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed expression parsing in RASTER_mapAlgebra2. Evidently, the
-	  count parameter of replace() is an input/output parameter.
+	* [r8217] raster/rt_pg/rt_pg.c: Fixed expression parsing in
+	  RASTER_mapAlgebra2. Evidently, the count parameter of replace()
+	  is an input/output parameter.
 	  
 	  Associated ticket is #1317.
 
-2011-11-21 19:55  dustymugs
+2011-11-21 19:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed behavior of one raster not having specified band and being
-	  sampled.
+	* [r8216] raster/rt_pg/rt_pg.c: Fixed behavior of one raster not
+	  having specified band and being sampled.
 	  
 	  Associated ticket is #1316.
 
-2011-11-21 19:18  dustymugs
+2011-11-21 19:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed extent bug for UNION in rt_raster_from_two_rasters
+	* [r8215] raster/rt_core/rt_api.c: Fixed extent bug for UNION in
+	  rt_raster_from_two_rasters
 
-2011-11-21 19:18  robe
+2011-11-21 19:18  Regina Obe <lr at pcorp.us>
 
-	* description corrections to ST_MapAlgebraNgbFct based on input
-	  from dzwarg
+	* [r8214] doc/reference_raster.xml: description corrections to
+	  ST_MapAlgebraNgbFct based on input from dzwarg
 
-2011-11-21 17:37  pracine
+2011-11-21 17:37  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Many fix following the C implementation of the two raster version
-	  of ST_MapAlgebra.
+	* [r8213] raster/scripts/plpgsql/st_union.sql: Many fix following
+	  the C implementation of the two raster version of ST_MapAlgebra.
 
-2011-11-21 16:32  strk
+2011-11-21 16:32  Sandro Santilli <strk at keybit.net>
 
-	* Add a vertex-snap-tolerance parameter to ptarray_substring
+	* [r8212] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_geos_split.c,
+	  liblwgeom/ptarray.c, postgis/lwgeom_functions_analytic.c: Add a
+	  vertex-snap-tolerance parameter to ptarray_substring
 	  
 	  This is aimed at improving robustness for ST_Split, which now
 	  uses an hard-coded tolerance of 1e-14 (see #1311)
 
-2011-11-21 16:15  robe
+2011-11-21 16:15  Regina Obe <lr at pcorp.us>
 
-	* revise explanation based on trying to read the code to figure out
-	  what nodatamode in theory should be doing
+	* [r8211] doc/reference_raster.xml: revise explanation based on
+	  trying to read the code to figure out what nodatamode in theory
+	  should be doing
 
-2011-11-21 16:03  strk
+2011-11-21 16:03  Sandro Santilli <strk at keybit.net>
 
-	* Numerate tests for line_substring
+	* [r8210] regress/regress_lrs.sql, regress/regress_lrs_expected:
+	  Numerate tests for line_substring
 
-2011-11-21 15:59  pracine
+2011-11-21 15:59  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix cut and paste error
+	* [r8209] raster/scripts/plpgsql/st_union.sql: -Fix cut and paste
+	  error
 
-2011-11-21 15:37  robe
+2011-11-21 15:37  Regina Obe <lr at pcorp.us>
 
-	* get rid of extra para tag
+	* [r8208] doc/reference_raster.xml: get rid of extra para tag
 
-2011-11-21 15:32  robe
+2011-11-21 15:32  Regina Obe <lr at pcorp.us>
 
-	* ST_MapAlgebraFctNgb:add in the nodatamode to ST_ (forgot it last
-	  time). I still have no clue what this parameter does -- doesn't
-	  seem to do anything for me like get rid of the border. Add in
-	  links to where to get example raster used. fix some typos
+	* [r8207] doc/reference_raster.xml: ST_MapAlgebraFctNgb:add in the
+	  nodatamode to ST_ (forgot it last time). I still have no clue
+	  what this parameter does -- doesn't seem to do anything for me
+	  like get rid of the border. Add in links to where to get example
+	  raster used. fix some typos
 
-2011-11-21 14:59  strk
+2011-11-21 14:59  Sandro Santilli <strk at keybit.net>
 
-	* Add testcase for #1311 (lwgeom_split).
+	* [r8206] liblwgeom/cunit/cu_split.c: Add testcase for #1311
+	  (lwgeom_split).
 	  
 	  Also fix existing testcase (wasn't really testing it).
 
-2011-11-21 14:59  strk
+2011-11-21 14:59  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory leak in lwgeom_split
+	* [r8205] liblwgeom/lwgeom_geos_split.c: Fix memory leak in
+	  lwgeom_split
 
-2011-11-21 12:10  strk
+2011-11-21 12:10  Sandro Santilli <strk at keybit.net>
 
-	* Hush warning about missing prototype.
+	* [r8204] liblwgeom/g_serialized.c: Hush warning about missing
+	  prototype.
 	  
 	  This is really a commit intended to amend the previous for the
 	  sake
@@ -15133,9 +28094,11 @@
 	  #1023
 	  which is more complex)
 
-2011-11-21 12:03  strk
+2011-11-21 12:03  Sandro Santilli <strk at keybit.net>
 
-	* Have gserialized_get_gbox_p always return a round-to-float box
+	* [r8203] liblwgeom/g_serialized.c, regress/tickets.sql,
+	  regress/tickets_expected: Have gserialized_get_gbox_p always
+	  return a round-to-float box
 	  
 	  That is, even when computing the box from scratch.
 	  This makes the box always float-oriented,
@@ -15143,851 +28106,1185 @@
 	  Closes (hopefully forever) bug #1023.
 	  Includes testcase otherwise failing.
 
-2011-11-21 09:33  strk
+2011-11-21 09:33  Sandro Santilli <strk at keybit.net>
 
-	* Add testcase for ticket #1302 (now passes)
+	* [r8202] topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected: Add testcase for ticket
+	  #1302 (now passes)
 
-2011-11-21 08:33  strk
+2011-11-21 08:33  Sandro Santilli <strk at keybit.net>
 
-	* Update expected error messages not to include the "topology"
-	  namespace (now that it's part of the search_path).
+	* [r8201] topology/test/regress/topoelement_expected: Update
+	  expected error messages not to include the "topology" namespace
+	  (now that it's part of the search_path).
 
-2011-11-21 08:23  strk
+2011-11-21 08:23  Sandro Santilli <strk at keybit.net>
 
-	* Rename "LibGeom Suite" to simply "libgeom", for easy of use
+	* [r8200] liblwgeom/cunit/cu_libgeom.c: Rename "LibGeom Suite" to
+	  simply "libgeom", for easy of use
 
-2011-11-21 08:21  strk
+2011-11-21 08:21  Sandro Santilli <strk at keybit.net>
 
-	* Surrender to evidence of the narrow ring tested being clockwise
+	* [r8199] liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_ptarray.c: Surrender to evidence of the narrow
+	  ring tested being clockwise
 
-2011-11-21 08:08  strk
+2011-11-21 08:08  Sandro Santilli <strk at keybit.net>
 
-	* Improve robustness of ptarray_isccw (see #1302)
+	* [r8198] liblwgeom/lwgeom_api.c: Improve robustness of
+	  ptarray_isccw (see #1302)
 
-2011-11-21 07:48  robe
+2011-11-21 07:48  Regina Obe <lr at pcorp.us>
 
-	* Logic to add topology to database search path on install or
-	  upgrade
+	* [r8197] topology/sql/manage/ManageHelper.sql,
+	  topology/topology.sql.in.c: Logic to add topology to database
+	  search path on install or upgrade
 
-2011-11-21 04:02  robe
+2011-11-21 04:02  Regina Obe <lr at pcorp.us>
 
-	* FIX upgrade script - complement to r8186 - drop all mapalgebra
-	  functions before upgrade because for pg9.0+ CREATE OR REPLACE
-	  FUNCTION fails if argument names have changed. Also update docs
-	  to reflect new naming of userfunction to
+	* [r8196] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: FIX upgrade script -
+	  complement to r8186 - drop all mapalgebra functions before
+	  upgrade because for pg9.0+ CREATE OR REPLACE FUNCTION fails if
+	  argument names have changed. Also update docs to reflect new
+	  naming of userfunction to
 	  onerasteruderfunc,tworasteruserfunc,onerasternguserfunc
 
-2011-11-20 21:37  robe
+2011-11-20 21:37  Regina Obe <lr at pcorp.us>
 
-	* fix some ST_MapAlgebra userfunc arg names to agree with code.
-	  Still ng ones to go and drop fix.
+	* [r8195] doc/reference_raster.xml: fix some ST_MapAlgebra userfunc
+	  arg names to agree with code. Still ng ones to go and drop fix.
 
-2011-11-20 21:35  strk
+2011-11-20 21:35  Sandro Santilli <strk at keybit.net>
 
-	* Add another test for ptarray_isccw, which incredibly seems to
-	  disagree with the same check done when the same ring occurs in a
-	  polygon
+	* [r8194] liblwgeom/cunit/cu_ptarray.c: Add another test for
+	  ptarray_isccw, which incredibly seems to disagree with the same
+	  check done when the same ring occurs in a polygon
 
-2011-11-20 21:19  strk
+2011-11-20 21:19  Sandro Santilli <strk at keybit.net>
 
-	* Do not memcpy to self in ptarray_reverse (see #1302)
+	* [r8193] liblwgeom/ptarray.c: Do not memcpy to self in
+	  ptarray_reverse (see #1302)
 
-2011-11-20 21:19  strk
+2011-11-20 21:19  Sandro Santilli <strk at keybit.net>
 
-	* Better indent for comparing obtained/expected
+	* [r8192] liblwgeom/cunit/cu_libgeom.c: Better indent for comparing
+	  obtained/expected
 
-2011-11-20 20:51  strk
+2011-11-20 20:51  Sandro Santilli <strk at keybit.net>
 
-	* Fix 'clean' rule under loader to drop stuff under .libs
+	* [r8191] loader/Makefile.in: Fix 'clean' rule under loader to drop
+	  stuff under .libs
 
-2011-11-20 20:51  strk
+2011-11-20 20:51  Sandro Santilli <strk at keybit.net>
 
-	* Add test for lwgeom_force_clockwise (see #1302)
+	* [r8190] liblwgeom/cunit/cu_libgeom.c: Add test for
+	  lwgeom_force_clockwise (see #1302)
 
-2011-11-19 17:28  strk
+2011-11-19 17:28  Sandro Santilli <strk at keybit.net>
 
-	* Add test for ptarray_isccw (see #1302)
+	* [r8189] liblwgeom/cunit/cu_ptarray.c: Add test for ptarray_isccw
+	  (see #1302)
 
-2011-11-18 23:47  dustymugs
+2011-11-18 23:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of function rt_util_gdal_datatype_to_pixtype to
+	* [r8188] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h:
+	  Addition of function rt_util_gdal_datatype_to_pixtype to
 	  complement rt_util_pixtype_to_gdal_datatype.
 
-2011-11-18 22:38  dzwarg
+2011-11-18 22:38  David Zwarg <dzwarg at azavea.com>
 
-	* Documented ST_Rotation and ST_SetRotation.
+	* [r8187] doc/reference_raster.xml: Documented ST_Rotation and
+	  ST_SetRotation.
 
-2011-11-18 21:41  dustymugs
+2011-11-18 21:41  Bborie Park <bkpark at ucdavis.edu>
 
-	* Update parameter names for regprocedure data types
+	* [r8186] raster/rt_pg/rtpostgis.sql.in.c: Update parameter names
+	  for regprocedure data types
 
-2011-11-18 21:28  dzwarg
+2011-11-18 21:28  David Zwarg <dzwarg at azavea.com>
 
-	* Nodata mode defaults to 'ignore' if it is NULL. Added tests for
-	  out of range neighborhoods.
+	* [r8185] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_expected: Nodata mode
+	  defaults to 'ignore' if it is NULL. Added tests for out of range
+	  neighborhoods.
 
-2011-11-18 20:56  dzwarg
+2011-11-18 20:56  David Zwarg <dzwarg at azavea.com>
 
-	* Non-functional change. Updated author email address for dzwarg.
+	* [r8184] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.h, raster/test/regress/rt_band_properties.sql,
+	  raster/test/regress/rt_box2d.sql,
+	  raster/test/regress/rt_set_band_properties.sql,
+	  raster/test/regress/rt_set_properties.sql: Non-functional change.
+	  Updated author email address for dzwarg.
 
-2011-11-18 20:53  dzwarg
+2011-11-18 20:53  David Zwarg <dzwarg at azavea.com>
 
-	* Refactored ST_MapAlgebraFctNgb to cache userfunction lookup, and
-	  accept NULL input and output values.
+	* [r8183] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_expected: Refactored
+	  ST_MapAlgebraFctNgb to cache userfunction lookup, and accept NULL
+	  input and output values.
 
-2011-11-18 20:15  dzwarg
+2011-11-18 20:15  David Zwarg <dzwarg at azavea.com>
 
-	* Refactored ST_MapAlgebraFct to cache userfunction lookup, and
-	  accept NULL input and output values.
+	* [r8182] raster/rt_pg/rt_pg.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/create_rt_mapalgebra_test.sql,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test.sql,
+	  raster/test/regress/create_rt_mapalgebrafctngb_test_expected,
+	  raster/test/regress/rt_mapalgebrafct.sql,
+	  raster/test/regress/rt_mapalgebrafct_expected,
+	  raster/test/regress/rt_mapalgebrafctngb.sql: Refactored
+	  ST_MapAlgebraFct to cache userfunction lookup, and accept NULL
+	  input and output values.
 
-2011-11-18 18:30  dustymugs
+2011-11-18 18:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added a flag --with-raster-dblwarning so as to provide the
-	  software builder the option of enabling all the value
+	* [r8181] configure.ac, raster/raster_config.h.in,
+	  raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/regress/rt_addband_expected,
+	  raster/test/regress/rt_mapalgebraexpr_expected,
+	  raster/test/regress/rt_mapalgebrafct_expected,
+	  raster/test/regress/rt_mapalgebrafctngb_expected: Added a flag
+	  --with-raster-dblwarning so as to provide the software builder
+	  the option of enabling all the value
 	  truncation/clamping/conversion warnings, which can be many. The
 	  new default is to suppress those warnings. All appropriate
 	  regression tests have been updated.
 	  
 	  Associated ticket is #1307
 
-2011-11-18 15:53  dzwarg
+2011-11-18 15:53  David Zwarg <dzwarg at azavea.com>
 
-	* Enabled all tests on ST_MapAlgebraFctNgb.
+	* [r8180] raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_expected: Enabled all
+	  tests on ST_MapAlgebraFctNgb.
 
-2011-11-18 14:53  dzwarg
+2011-11-18 14:53  David Zwarg <dzwarg at azavea.com>
 
-	* Fixed debug problem in #1308
+	* [r8179] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Fixed
+	  debug problem in #1308
 
-2011-11-18 13:59  robe
+2011-11-18 13:59  Regina Obe <lr at pcorp.us>
 
-	* fix minor typo
+	* [r8178] doc/reference_constructor.xml: fix minor typo
 
-2011-11-18 13:58  robe
+2011-11-18 13:58  Regina Obe <lr at pcorp.us>
 
-	* document new ST_GeomFromGeoJSON function. Will provide examples
-	  later once resolved my JSON-C compilation issues
+	* [r8177] doc/reference_constructor.xml: document new
+	  ST_GeomFromGeoJSON function. Will provide examples later once
+	  resolved my JSON-C compilation issues
 
-2011-11-18 13:24  robe
+2011-11-18 13:24  Regina Obe <lr at pcorp.us>
 
-	* minor corrections
+	* [r8176] doc/reference_raster.xml: minor corrections
 
-2011-11-18 03:36  robe
+2011-11-18 03:36  Regina Obe <lr at pcorp.us>
 
-	* increment alpha release number to allow upgrade with extensions
+	* [r8175] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control: increment alpha release
+	  number to allow upgrade with extensions
 
-2011-11-18 03:08  robe
+2011-11-18 03:08  Regina Obe <lr at pcorp.us>
 
-	* fix code comment
+	* [r8174] doc/reference_raster.xml: fix code comment
 
-2011-11-18 02:54  robe
+2011-11-18 02:54  Regina Obe <lr at pcorp.us>
 
-	* forgot pixeltype in ngb arg list
+	* [r8173] doc/reference_raster.xml: forgot pixeltype in ngb arg
+	  list
 
-2011-11-18 02:48  robe
+2011-11-18 02:48  Regina Obe <lr at pcorp.us>
 
-	* fix typo in linkends
+	* [r8172] doc/reference_raster.xml: fix typo in linkends
 
-2011-11-18 02:32  robe
+2011-11-18 02:32  Regina Obe <lr at pcorp.us>
 
-	* put in missing spaces
+	* [r8171] doc/reference_raster.xml: put in missing spaces
 
-2011-11-18 02:31  robe
+2011-11-18 02:31  Regina Obe <lr at pcorp.us>
 
-	* ST_MapAlgebraFctNgb (and put in immuatable for other
-	  st_mapalgebras)
+	* [r8170] doc/html/images/st_mapalgebrafctngb01.png,
+	  doc/html/images/st_mapalgebrafctngb02.png,
+	  doc/reference_raster.xml: ST_MapAlgebraFctNgb (and put in
+	  immuatable for other st_mapalgebras)
 
-2011-11-18 01:15  robe
+2011-11-18 01:15  Regina Obe <lr at pcorp.us>
 
-	* #1306: document rescale and provide examples, fix st_resample
+	* [r8169] doc/html/images/st_rescale01.png,
+	  doc/html/images/st_rescale02.png, doc/reference_raster.xml:
+	  #1306: document rescale and provide examples, fix st_resample
 	  args. (still 2 more to go in this ticket)
 
-2011-11-18 00:29  pramsey
+2011-11-18 00:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move library link to appropriate place.
+	* [r8168] configure.ac: Move library link to appropriate place.
 
-2011-11-18 00:17  pramsey
+2011-11-18 00:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_GeomFromGeoJSON (#376)
+	* [r8167] configure.ac, doc/installation.xml, postgis/Makefile.in,
+	  postgis/geometry_estimate.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_export.h, postgis/lwgeom_in_geojson.c,
+	  postgis/postgis.sql.in.c, postgis_config.h.in,
+	  regress/Makefile.in, regress/in_geojson.sql,
+	  regress/in_geojson_expected: Add ST_GeomFromGeoJSON (#376)
 
-2011-11-18 00:17  robe
+2011-11-18 00:17  Regina Obe <lr at pcorp.us>
 
-	* correct ST_Resample arguments to agree with implementation. Still
-	  need to fill in descriptions of what all params mean
+	* [r8166] doc/reference_raster.xml: correct ST_Resample arguments
+	  to agree with implementation. Still need to fill in descriptions
+	  of what all params mean
 
-2011-11-17 22:48  dustymugs
+2011-11-17 22:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix the 8.4 error only described in #1296.
+	* [r8165] raster/test/regress/rt_mapalgebrafctngb.sql: Fix the 8.4
+	  error only described in #1296.
 
-2011-11-17 15:04  dustymugs
+2011-11-17 15:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* Additional corrections and cleanup for ST_BandNoDataValue
+	* [r8164] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Additional corrections and
+	  cleanup for ST_BandNoDataValue
 
-2011-11-17 14:57  dustymugs
+2011-11-17 14:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed a bunch of other nodataval datatype issues.
+	* [r8163] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Fixed a bunch of other nodataval datatype issues.
 
-2011-11-17 14:49  dustymugs
+2011-11-17 14:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed invalid handling of nodatavalue in ST_BandMetaData(). Issue
-	  arises due to C backend using Float8GetDatum while SQL frontend
-	  using real datatype.
+	* [r8162] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_asraster_expected: Fixed invalid handling
+	  of nodatavalue in ST_BandMetaData(). Issue arises due to C
+	  backend using Float8GetDatum while SQL frontend using real
+	  datatype.
 
-2011-11-17 04:25  robe
+2011-11-17 04:25  Regina Obe <lr at pcorp.us>
 
-	* put in some spacing
+	* [r8161] doc/xsl/post_gis_day_cards.html.xsl: put in some spacing
 
-2011-11-17 01:44  robe
+2011-11-17 01:44  Regina Obe <lr at pcorp.us>
 
-	* more event ideas
+	* [r8160] doc/xsl/post_gis_day_cards.html.xsl: more event ideas
 
-2011-11-16 20:39  robe
+2011-11-16 20:39  Regina Obe <lr at pcorp.us>
 
-	* put in missing svn:keywords fix formatting of cards so easier to
-	  break on pages
+	* [r8159] doc/xsl/post_gis_day_cards.html.xsl,
+	  doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/tiger_geocoder_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl,
+	  doc/xsl/topology_comments.sql.xsl,
+	  doc/xsl/topology_gardentest.sql.xsl: put in missing svn:keywords
+	  fix formatting of cards so easier to break on pages
 
-2011-11-16 17:38  robe
+2011-11-16 17:38  Regina Obe <lr at pcorp.us>
 
-	* Post GIS day commemorative cards generator
+	* [r8158] doc/xsl/post_gis_day_cards.html.xsl: Post GIS day
+	  commemorative cards generator
 
-2011-11-16 03:41  robe
+2011-11-16 03:41  Regina Obe <lr at pcorp.us>
 
-	* logic to create a an topology_upgrade_20_minor.sql
+	* [r8157] topology/Makefile.in: logic to create a an
+	  topology_upgrade_20_minor.sql
 
-2011-11-15 18:15  dustymugs
+2011-11-15 18:15  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed hardcoded SRID of 0 and replaced with ST_SRID('Point(0
-	  0)'::geometry)
+	* [r8156] raster/rt_pg/rtpostgis.sql.in.c: Removed hardcoded SRID
+	  of 0 and replaced with ST_SRID('Point(0 0)'::geometry)
 
-2011-11-15 00:48  robe
+2011-11-15 00:48  Regina Obe <lr at pcorp.us>
 
-	* put in missing t in raster load examples
+	* [r8155] doc/reference_raster.xml: put in missing t in raster load
+	  examples
 
-2011-11-14 23:21  dzwarg
+2011-11-14 23:21  David Zwarg <dzwarg at azavea.com>
 
-	* Added single version of map algebra that operates on
-	  neighborhoods.
+	* [r8154] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/scripts/plpgsql/st_mapalgebrafctngb.sql,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_mapalgebrafctngb.sql,
+	  raster/test/regress/rt_mapalgebrafctngb_expected: Added single
+	  version of map algebra that operates on neighborhoods.
 
-2011-11-14 21:40  dustymugs
+2011-11-14 21:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ability to specify raster width and height to ST_Resample.
+	* [r8153] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/rt_resample.sql,
+	  raster/test/regress/rt_resample_expected: Added ability to
+	  specify raster width and height to ST_Resample.
 	  
 	  Associated ticket is #1267
 
-2011-11-14 08:15  robe
+2011-11-14 08:15  Regina Obe <lr at pcorp.us>
 
-	* revise extension upgrade builder to use new remove functions from
+	* [r8152] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis/sql_bits/remove_from_extension.sql.in: revise
+	  extension upgrade builder to use new remove functions from
 	  extension before attemtpting to readd them. Cool I can now
 	  upgrade my 2.0.0a3 to 2.0.0a.6 without any complaints.
 
-2011-11-14 07:36  robe
+2011-11-14 07:36  Regina Obe <lr at pcorp.us>
 
-	* minor corrections to extension helper, create extension
+	* [r8151] extensions/postgis_extension_helper.sql,
+	  extensions/postgis_extension_helper_uninstall.sql,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control,
+	  extensions/postgis_topology/sql_bits/remove_from_extension.sql.in:
+	  minor corrections to extension helper, create extension
 	  uninstall, incorporate in topology extension upgrade script
 
-2011-11-14 05:44  robe
+2011-11-14 05:44  Regina Obe <lr at pcorp.us>
 
-	* helper functions for creating upgrade extension script. So far
-	  helper so I can sneakingly drop functions from an existing
-	  extension so I can reinstall them if a create or replace will not
-	  be sufficient.(so I avoid the dreaded error -- can't drop
-	  function /aggregate because its part of an extension.)
+	* [r8150] extensions/postgis_extension_helper.sql: helper functions
+	  for creating upgrade extension script. So far helper so I can
+	  sneakingly drop functions from an existing extension so I can
+	  reinstall them if a create or replace will not be sufficient.(so
+	  I avoid the dreaded error -- can't drop function /aggregate
+	  because its part of an extension.)
 
-2011-11-13 03:45  robe
+2011-11-13 03:45  Regina Obe <lr at pcorp.us>
 
-	* #1288: correct some obsolete advice about how to create indexes
-	  and register a geometry column.
+	* [r8149] doc/using_postgis_dataman.xml: #1288: correct some
+	  obsolete advice about how to create indexes and register a
+	  geometry column.
 
-2011-11-12 18:20  strk
+2011-11-12 18:20  Sandro Santilli <strk at keybit.net>
 
-	* Do not consider nodes with the same bounding box as being equal.
+	* [r8148] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_createtopogeo.sql,
+	  topology/test/regress/st_createtopogeo_expected: Do not consider
+	  nodes with the same bounding box as being equal.
 	  
 	  Fixes bug #1284. Includes regression test.
 
-2011-11-12 15:12  dustymugs
+2011-11-12 15:12  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added checks to make sure user-function is valid. Also added
-	  check for volatility of user-function with notice if function is
-	  volatile.
+	* [r8147] raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c,
+	  raster/test/regress/rt_mapalgebrafct_2raster.sql,
+	  raster/test/regress/rt_mapalgebrafct_2raster_expected: Added
+	  checks to make sure user-function is valid. Also added check for
+	  volatility of user-function with notice if function is volatile.
 
-2011-11-12 13:14  robe
+2011-11-12 13:14  Regina Obe <lr at pcorp.us>
 
-	* Fix typo
+	* [r8146] doc/reference_raster.xml: Fix typo
 
-2011-11-12 05:28  robe
+2011-11-12 05:28  Regina Obe <lr at pcorp.us>
 
-	* escape html entitities in program listing of ST_MApAlgebrafct 2
-	  band version
+	* [r8145] doc/reference_raster.xml: escape html entitities in
+	  program listing of ST_MApAlgebrafct 2 band version
 
-2011-11-12 04:27  robe
+2011-11-12 04:27  Regina Obe <lr at pcorp.us>
 
-	* add examples and fix arg list
+	* [r8144] doc/html/images/st_mapalgebrafct2_01.png,
+	  doc/html/images/st_mapalgebrafct2_02.png,
+	  doc/reference_raster.xml: add examples and fix arg list
 
-2011-11-12 00:01  dustymugs
+2011-11-12 00:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed third variant as it conflicts with the second variant of
-	  2-raster ST_MapAlgebraFct
+	* [r8143] raster/rt_pg/rtpostgis.sql.in.c: Removed third variant as
+	  it conflicts with the second variant of 2-raster ST_MapAlgebraFct
 	  
 	  Related ticket is #1283
 
-2011-11-11 23:07  robe
+2011-11-11 23:07  Regina Obe <lr at pcorp.us>
 
-	* begin documentation of 2 band ST_MapAlgebraFct -- waiting for
-	  dustymugs to fix signature before providing examples
+	* [r8142] doc/reference_raster.xml: begin documentation of 2 band
+	  ST_MapAlgebraFct -- waiting for dustymugs to fix signature before
+	  providing examples
 
-2011-11-11 20:34  robe
+2011-11-11 20:34  Regina Obe <lr at pcorp.us>
 
-	* fix arg list in ST_MapAlgebraExpr single band version
-	  (nodatavalexpr got relaplced with nodataval which is now double
-	  precision instead of text)
+	* [r8141] doc/reference_raster.xml: fix arg list in
+	  ST_MapAlgebraExpr single band version (nodatavalexpr got
+	  relaplced with nodataval which is now double precision instead of
+	  text)
 
-2011-11-11 19:31  dzwarg
+2011-11-11 19:31  David Zwarg <dzwarg at azavea.com>
 
-	* Added more test to plpgsql ST_MapAlgebraFctNgb prototype.
+	* [r8140] raster/scripts/plpgsql/st_mapalgebrafctngb.sql: Added
+	  more test to plpgsql ST_MapAlgebraFctNgb prototype.
 
-2011-11-11 18:50  dzwarg
+2011-11-11 18:50  David Zwarg <dzwarg at azavea.com>
 
-	* Added pl/pgsql prototype of the neighborhood map algebra
-	  function.
+	* [r8139] raster/scripts/plpgsql/st_mapalgebrafctngb.sql: Added
+	  pl/pgsql prototype of the neighborhood map algebra function.
 
-2011-11-11 15:45  dustymugs
+2011-11-11 15:45  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed commented-out stubs for nonexistant RASTER_mapAlgebra2Fct
+	* [r8138] raster/rt_pg/rt_pg.c: Removed commented-out stubs for
+	  nonexistant RASTER_mapAlgebra2Fct
 
-2011-11-11 15:41  dustymugs
+2011-11-11 15:41  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add ST_MapAlgebraFct for 2 rasters. This is the sibling of
-	  2-raster ST_MapAlgebraExpr. Renamed RASTER_mapAlgebra2Expr to
+	* [r8137] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_mapalgebraexpr_2raster.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster_expected,
+	  raster/test/regress/rt_mapalgebrafct_2raster.sql,
+	  raster/test/regress/rt_mapalgebrafct_2raster_expected: Add
+	  ST_MapAlgebraFct for 2 rasters. This is the sibling of 2-raster
+	  ST_MapAlgebraExpr. Renamed RASTER_mapAlgebra2Expr to
 	  RASTER_mapAlgebra2 as both 2-raster ST_MapAlgebraExpr and
 	  ST_MapAlgebraFct call the same function.
 	  
 	  Associated ticket is #1281.
 
-2011-11-11 08:40  robe
+2011-11-11 08:40  Regina Obe <lr at pcorp.us>
 
-	* put comment about expression
+	* [r8136] doc/reference_raster.xml: put comment about expression
 
-2011-11-10 20:59  dzwarg
+2011-11-10 20:59  David Zwarg <dzwarg at azavea.com>
 
-	* Updated documentation for all variants of ST_MapAlgebraFct.
+	* [r8135] doc/reference_raster.xml: Updated documentation for all
+	  variants of ST_MapAlgebraFct.
 
-2011-11-10 11:10  strk
+2011-11-10 11:10  Sandro Santilli <strk at keybit.net>
 
-	* Make sure to "round-to-float" boxes read from serialized, no
-	  matter if there was or not a cache. Fixes #1273. Includes regress
-	  testing. Note: would be worth to also test the 2-points line case
-	  (I didn't in this specific commit, but the patch should fix that
-	  as well).
+	* [r8134] liblwgeom/g_serialized.c, regress/tickets.sql,
+	  regress/tickets_expected: Make sure to "round-to-float" boxes
+	  read from serialized, no matter if there was or not a cache.
+	  Fixes #1273. Includes regress testing. Note: would be worth to
+	  also test the 2-points line case (I didn't in this specific
+	  commit, but the patch should fix that as well).
 
-2011-11-10 00:18  robe
+2011-11-10 00:18  Regina Obe <lr at pcorp.us>
 
-	* add missing references to other functions used
+	* [r8133] doc/reference_raster.xml: add missing references to other
+	  functions used
 
-2011-11-10 00:15  robe
+2011-11-10 00:15  Regina Obe <lr at pcorp.us>
 
-	* Add example of overlaying single rasters on same canvas
+	* [r8132] doc/html/images/st_mapalgebraexpr2_04.png,
+	  doc/html/images/st_mapalgebraexpr2_05.png,
+	  doc/html/images/st_mapalgebraexpr2_06.png,
+	  doc/html/images/st_mapalgebraexpr2_07.png,
+	  doc/reference_raster.xml: Add example of overlaying single
+	  rasters on same canvas
 
-2011-11-10 00:02  dustymugs
+2011-11-10 00:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* Signatures changed for ST_MapAlgebraExpr where nodatavaluerepl
-	  (text) is now nodataval (double precision)
+	* [r8131] raster/rt_pg/rtpostgis_drop.sql.in.c: Signatures changed
+	  for ST_MapAlgebraExpr where nodatavaluerepl (text) is now
+	  nodataval (double precision)
 
-2011-11-09 23:52  dustymugs
+2011-11-09 23:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed all remaining memory leaks from testapi.c
+	* [r8130] raster/test/core/testapi.c: Removed all remaining memory
+	  leaks from testapi.c
 
-2011-11-09 23:12  dustymugs
+2011-11-09 23:12  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rolled back attempt to clean up memory handling. We'll just live
-	  with this until testapi.c is replaced by cunit tests for raster.
+	* [r8129] raster/test/core/testapi.c: Rolled back attempt to clean
+	  up memory handling. We'll just live with this until testapi.c is
+	  replaced by cunit tests for raster.
 
-2011-11-09 23:00  dustymugs
+2011-11-09 23:00  Bborie Park <bkpark at ucdavis.edu>
 
-	* Separated the output raster's extent calculation from
-	  RASTER_mapAlgebra2Expr() in rt_pg.c to
-	  rt_raster_from_two_rasters() in rt_api.c. Added test of
-	  rt_raster_from_two_rasters() in testapi.c
+	* [r8128] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Separated the
+	  output raster's extent calculation from RASTER_mapAlgebra2Expr()
+	  in rt_pg.c to rt_raster_from_two_rasters() in rt_api.c. Added
+	  test of rt_raster_from_two_rasters() in testapi.c
 
-2011-11-09 17:15  robe
+2011-11-09 17:15  Regina Obe <lr at pcorp.us>
 
-	* fix typos, provide description for nodatanodataval (pierre /
-	  bborie /dzwarg -- please check my definitions to make sure they
-	  are right)
+	* [r8127] doc/reference_raster.xml: fix typos, provide description
+	  for nodatanodataval (pierre / bborie /dzwarg -- please check my
+	  definitions to make sure they are right)
 
-2011-11-09 15:35  dustymugs
+2011-11-09 15:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed bug where an expression doesn't contain a placeholder
-	  (either rast1 or rast2).
+	* [r8126] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_mapalgebraexpr_2raster.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster_expected: Fixed bug
+	  where an expression doesn't contain a placeholder (either rast1
+	  or rast2).
 	  
 	  Associated ticket is #1276.
 
-2011-11-09 05:02  robe
-
-	* fix minor typos
+2011-11-09 05:02  Regina Obe <lr at pcorp.us>
 
-2011-11-09 03:52  robe
+	* [r8125] doc/reference_raster.xml: fix minor typos
 
-	* increment version
+2011-11-09 03:52  Regina Obe <lr at pcorp.us>
 
-2011-11-09 03:45  robe
-
-	* break out what all the different arguments are in 2 map algebra.
+	* [r8124] extensions/postgis/postgis.control,
+	  extensions/postgis_topology/postgis_topology.control: increment
+	  version
 
-2011-11-09 02:55  robe
+2011-11-09 03:45  Regina Obe <lr at pcorp.us>
 
-	* fix some typos, revise example demonstrating difference between
-	  intersection and union. include pictures.
+	* [r8123] doc/reference_raster.xml: break out what all the
+	  different arguments are in 2 map algebra.
 
-2011-11-09 01:05  robe
+2011-11-09 02:55  Regina Obe <lr at pcorp.us>
 
-	* Add ST_BandMetaData to drop target. Upgrade can't install the new
-	  version otherwise since the output parameter data types changed.
+	* [r8122] doc/html/images/st_mapalgebraexpr2_01.png,
+	  doc/html/images/st_mapalgebraexpr2_02.png,
+	  doc/reference_raster.xml: fix some typos, revise example
+	  demonstrating difference between intersection and union. include
+	  pictures.
 
-2011-11-08 23:18  dustymugs
+2011-11-09 01:05  Regina Obe <lr at pcorp.us>
 
-	* Fix floating point issues in rt_raster_geopoint_to_cell in
-	  addition to other minor changes.
+	* [r8121] raster/rt_pg/rtpostgis_drop.sql.in.c: Add ST_BandMetaData
+	  to drop target. Upgrade can't install the new version otherwise
+	  since the output parameter data types changed.
 
-2011-11-08 21:34  dustymugs
+2011-11-08 23:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Bug fix for evaluating remainder when remainder is infinitely
-	  close to 1. Basically, the check wasn't added to a block of code
-	  those similar blocks of code had the check.
+	* [r8120] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Fix
+	  floating point issues in rt_raster_geopoint_to_cell in addition
+	  to other minor changes.
 
-2011-11-08 20:32  robe
+2011-11-08 21:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* ST_MapAlgebraExpr - 2 band version - incorporate Pierre's
-	  corrections / additions
+	* [r8119] raster/rt_core/rt_api.c: Bug fix for evaluating remainder
+	  when remainder is infinitely close to 1. Basically, the check
+	  wasn't added to a block of code those similar blocks of code had
+	  the check.
 
-2011-11-08 18:41  robe
+2011-11-08 20:32  Regina Obe <lr at pcorp.us>
 
-	* document ST_MapAlgebraExpr (2 raster band version). Need to clean
-	  up the example also figure out how I managed to crash my server
-	  with this.
+	* [r8118] doc/reference_raster.xml: ST_MapAlgebraExpr - 2 band
+	  version - incorporate Pierre's corrections / additions
 
-2011-11-08 17:47  pramsey
+2011-11-08 18:41  Regina Obe <lr at pcorp.us>
 
-	* Do the "are boxes different?" test in ST_Equals using a tolerance
-	  instead of exact comparisons.
+	* [r8117] doc/reference_raster.xml: document ST_MapAlgebraExpr (2
+	  raster band version). Need to clean up the example also figure
+	  out how I managed to crash my server with this.
 
-2011-11-08 10:23  strk
+2011-11-08 17:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-fix robustness issue on 32bit system (seg is 0-based, npoints
-	  is 1-based but segments is npoints-1)
+	* [r8116] postgis/lwgeom_geos.c: Do the "are boxes different?" test
+	  in ST_Equals using a tolerance instead of exact comparisons.
 
-2011-11-08 08:55  strk
+2011-11-08 10:23  Sandro Santilli <strk at keybit.net>
 
-	* Give unique names to linearref tests
+	* [r8115] liblwgeom/cunit/cu_ptarray.c, liblwgeom/ptarray.c: Re-fix
+	  robustness issue on 32bit system (seg is 0-based, npoints is
+	  1-based but segments is npoints-1)
 
-2011-11-08 08:55  strk
+2011-11-08 08:55  Sandro Santilli <strk at keybit.net>
 
-	* Add test for bug #1270
+	* [r8114] regress/regress_lrs.sql, regress/regress_lrs_expected:
+	  Give unique names to linearref tests
 
-2011-11-08 08:51  strk
+2011-11-08 08:55  Sandro Santilli <strk at keybit.net>
 
-	* Fix st_line_locate_point check for "last point" (#1271)
+	* [r8113] liblwgeom/cunit/cu_split.c: Add test for bug #1270
 
-2011-11-08 05:27  dustymugs
+2011-11-08 08:51  Sandro Santilli <strk at keybit.net>
 
-	* Renamed ST_MapAlgebra2Expr to ST_MapAlgebra after concensus with
-	  Pierre and Regina.
+	* [r8112] liblwgeom/ptarray.c: Fix st_line_locate_point check for
+	  "last point" (#1271)
 
-2011-11-08 00:00  dustymugs
+2011-11-08 05:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* Replaced ST_MapAlgebraExpr's "nodatavalueexpr" parameter with
-	  "nodataval" and datatype changed from text to double precision.
-	  This makes this parameter the same as "nodatanodataval" found in
+	* [r8111] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_mapalgebra2expr.sql,
+	  raster/test/regress/rt_mapalgebra2expr_expected,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster.sql,
+	  raster/test/regress/rt_mapalgebraexpr_2raster_expected: Renamed
+	  ST_MapAlgebra2Expr to ST_MapAlgebra after concensus with Pierre
+	  and Regina.
+
+2011-11-08 00:00  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r8110] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_expected: Replaced
+	  ST_MapAlgebraExpr's "nodatavalueexpr" parameter with "nodataval"
+	  and datatype changed from text to double precision. This makes
+	  this parameter the same as "nodatanodataval" found in
 	  ST_MapAlgebra2Expr.
 	  
 	  Associated ticket is #866
 
-2011-11-07 21:17  dustymugs
+2011-11-07 21:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rephrased a sentence or two in ST_Resample. Might not be the
-	  best.
+	* [r8109] doc/reference_raster.xml: Rephrased a sentence or two in
+	  ST_Resample. Might not be the best.
 
-2011-11-07 21:07  dustymugs
+2011-11-07 21:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of 2-raster map algebra function ST_MapAlgebra2Expr.
-	  Next is ST_MapAlgebra2Fct.
+	* [r8108] raster, raster/rt_pg, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rt_pg.h, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_mapalgebra_optimized.sql,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_mapalgebra2expr.sql,
+	  raster/test/regress/rt_mapalgebra2expr_expected: Addition of
+	  2-raster map algebra function ST_MapAlgebra2Expr. Next is
+	  ST_MapAlgebra2Fct.
 	  
 	  Ticket is #1268.
 
-2011-11-07 17:01  strk
+2011-11-07 17:01  Sandro Santilli <strk at keybit.net>
 
-	* Enhance robustness of ptarray_locate_point, fixing bug #1269.
+	* [r8107] liblwgeom/cunit/cu_ptarray.c, liblwgeom/ptarray.c:
+	  Enhance robustness of ptarray_locate_point, fixing bug #1269.
 	  
 	  Includes regression testcase.
 
-2011-11-06 20:26  dustymugs
+2011-11-06 20:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Following the cleanup in r8104, additional cleanup to remove
+	* [r8106] postgis/postgis.sql.in.c, postgis/sqldefines.h.in:
+	  Following the cleanup in r8104, additional cleanup to remove
 	  POSTGIS_GDAL_VERSION
 
-2011-11-06 20:17  strk
+2011-11-06 20:17  Sandro Santilli <strk at keybit.net>
 
-	* Double-check line splitting to avoid returning empty components
+	* [r8105] liblwgeom/lwgeom_geos_split.c: Double-check line
+	  splitting to avoid returning empty components
 	  
 	  It happened on my 32bit system based on presence or absence of an
 	  lwnotice call, probably a compiler bug...
 
-2011-11-06 19:39  strk
+2011-11-06 19:39  Sandro Santilli <strk at keybit.net>
 
-	* Don't change SQL at compile time. The code is safe enough.
+	* [r8104] postgis/postgis.sql.in.c: Don't change SQL at compile
+	  time. The code is safe enough.
 
-2011-11-06 19:30  dustymugs
+2011-11-06 19:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Renamed output parameter "hasnodatavalue" to "hasnodata" in
-	  ST_BandMetadata(). This makes the parameter name consistent with
-	  all other use of "hasnodata" and the docs for ST_BandMetadata.
+	* [r8103] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_asraster.sql,
+	  raster/test/regress/rt_bandmetadata.sql: Renamed output parameter
+	  "hasnodatavalue" to "hasnodata" in ST_BandMetadata(). This makes
+	  the parameter name consistent with all other use of "hasnodata"
+	  and the docs for ST_BandMetadata.
 
-2011-11-06 04:56  dustymugs
+2011-11-06 04:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed the bug described in #1263. Also fixed additional code that
-	  has the same problem. Additional syntax cleaning and comments
-	  updated. Fixed the problem with "make check" running test/core
-	  twice.
+	* [r8102] raster/Makefile.in, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c: Fixed the bug
+	  described in #1263. Also fixed additional code that has the same
+	  problem. Additional syntax cleaning and comments updated. Fixed
+	  the problem with "make check" running test/core twice.
 
-2011-11-05 22:40  dustymugs
+2011-11-05 22:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Reverted r8100 due to regression failures. Instead, I added an
-	  exception check to catch for when the client isn't able to find
-	  postgis_gdal_version in the search path.
+	* [r8101] postgis/Makefile.in, postgis/postgis.sql.in.c,
+	  raster/rt_pg/rtpostgis.sql.in.c: Reverted r8100 due to regression
+	  failures. Instead, I added an exception check to catch for when
+	  the client isn't able to find postgis_gdal_version in the search
+	  path.
 	  
 	  Associated ticket is #1266
 
-2011-11-05 14:28  dustymugs
+2011-11-05 14:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Moved postgis_gdal_version() from rtpostgis.sql.in.c to
-	  postgis.sql.in.c. Added additional sed command to
-	  postgis/Makefile.in to handle RASTER_MODULE_PATH so as to
-	  continue using the underlyiing RASTER_gdal_version().
+	* [r8100] postgis/Makefile.in, postgis/postgis.sql.in.c,
+	  raster/rt_pg/rtpostgis.sql.in.c: Moved postgis_gdal_version()
+	  from rtpostgis.sql.in.c to postgis.sql.in.c. Added additional sed
+	  command to postgis/Makefile.in to handle RASTER_MODULE_PATH so as
+	  to continue using the underlyiing RASTER_gdal_version().
 	  
 	  Associated ticket is #1266.
 
-2011-11-05 03:50  robe
+2011-11-05 03:50  Regina Obe <lr at pcorp.us>
 
-	* Fix output of ST_Node -- evidentally we haven't yet instituted
-	  the change to output MULTILINESTRINGZ etc in WKT in ST_AsText nor
-	  ST_AsEWKT
+	* [r8099] doc/reference_processing.xml: Fix output of ST_Node --
+	  evidentally we haven't yet instituted the change to output
+	  MULTILINESTRINGZ etc in WKT in ST_AsText nor ST_AsEWKT
 
-2011-11-04 22:06  robe
+2011-11-04 22:06  Regina Obe <lr at pcorp.us>
 
-	* increment to 2.0.0a4
+	* [r8098] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control: increment to 2.0.0a4
 
-2011-11-04 22:05  robe
+2011-11-04 22:05  Regina Obe <lr at pcorp.us>
 
-	* increment to 2.0.0a4
+	* [r8097] extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: increment
+	  to 2.0.0a4
 
-2011-11-04 21:43  robe
+2011-11-04 21:43  Regina Obe <lr at pcorp.us>
 
-	* alphabatize reference_processing section. Change postgis
-	  cheatsheet to output to 2 columns. Minor adjusts to tiger
-	  cheatsheet
+	* [r8096] doc/reference_processing.xml,
+	  doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/tiger_geocoder_cheatsheet.html.xsl: alphabatize
+	  reference_processing section. Change postgis cheatsheet to output
+	  to 2 columns. Minor adjusts to tiger cheatsheet
 
-2011-11-04 20:46  robe
+2011-11-04 20:46  Regina Obe <lr at pcorp.us>
 
-	* #1206: put in example for ST_Node. Can't test yet since my geos
-	  is recompiling.
+	* [r8095] doc/reference_processing.xml: #1206: put in example for
+	  ST_Node. Can't test yet since my geos is recompiling.
 
-2011-11-04 18:48  strk
+2011-11-04 18:48  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_Node (#1206)
+	* [r8094] doc/reference_processing.xml: Document ST_Node (#1206)
 
-2011-11-04 18:24  strk
+2011-11-04 18:24  Sandro Santilli <strk at keybit.net>
 
-	* Add SQL-level tests for ST_Node (#1206)
+	* [r8093] regress/Makefile.in, regress/node.sql,
+	  regress/node_expected: Add SQL-level tests for ST_Node (#1206)
 
-2011-11-04 18:17  strk
+2011-11-04 18:17  Sandro Santilli <strk at keybit.net>
 
-	* Fix clean rule to get rid of .o files
+	* [r8092] liblwgeom/Makefile.in: Fix clean rule to get rid of .o
+	  files
 
-2011-11-04 14:25  strk
+2011-11-04 14:25  Sandro Santilli <strk at keybit.net>
 
-	* Expose ST_Node at SQL level (#1206)
+	* [r8091] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c: Expose
+	  ST_Node at SQL level (#1206)
 
-2011-11-04 12:22  robe
+2011-11-04 12:22  Regina Obe <lr at pcorp.us>
 
-	* ability to turn off example generation, and change to turn off by
-	  default
+	* [r8090] doc/xsl/raster_cheatsheet.html.xsl: ability to turn off
+	  example generation, and change to turn off by default
 
-2011-11-04 08:15  strk
+2011-11-04 08:15  Sandro Santilli <strk at keybit.net>
 
-	* Fix builds againts GEOS < 3.3
+	* [r8089] liblwgeom/lwgeom_geos_node.c: Fix builds againts GEOS <
+	  3.3
 
-2011-11-04 06:45  strk
+2011-11-04 06:45  Sandro Santilli <strk at keybit.net>
 
-	* Add an lwgeom_node function in liblwgeom (see #1206)
+	* [r8088] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_node.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_geos_node.c: Add an
+	  lwgeom_node function in liblwgeom (see #1206)
 	  Includes testcase
 
-2011-11-04 00:57  robe
+2011-11-04 00:57  Regina Obe <lr at pcorp.us>
 
-	* Add enhanced note for AddGeometryColumn
+	* [r8087] doc/reference_management.xml: Add enhanced note for
+	  AddGeometryColumn
 
-2011-11-03 17:28  strk
+2011-11-03 17:28  Sandro Santilli <strk at keybit.net>
 
-	* Add lwcollection_reserve internal function
+	* [r8086] liblwgeom/liblwgeom_internal.h, liblwgeom/lwcollection.c:
+	  Add lwcollection_reserve internal function
 
-2011-11-03 17:09  strk
+2011-11-03 17:09  Sandro Santilli <strk at keybit.net>
 
-	* Pass GEOS version to unit tests, skip test for SPLIT when
+	* [r8085] liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_split.c:
+	  Pass GEOS version to unit tests, skip test for SPLIT when
 	  building against older geos.
 
-2011-11-03 16:20  strk
+2011-11-03 16:20  Sandro Santilli <strk at keybit.net>
 
-	* Add an line-by-point internal split function taking an output
-	  vector.
+	* [r8084] liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_split.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwgeom_geos_split.c: Add an line-by-point internal
+	  split function taking an output vector.
 	  Regress test the new function.
 
-2011-11-02 16:53  strk
+2011-11-02 16:53  Sandro Santilli <strk at keybit.net>
 
-	* Add test for ST_Summary
+	* [r8083] regress/Makefile.in, regress/summary.sql,
+	  regress/summary_expected: Add test for ST_Summary
 
-2011-11-02 13:48  robe
+2011-11-02 13:48  Regina Obe <lr at pcorp.us>
 
-	* change order of populate_geometry_columns drop all one depends on
-	  oid one
+	* [r8082] postgis/postgis_drop.sql.in.c: change order of
+	  populate_geometry_columns drop all one depends on oid one
 
-2011-11-02 13:47  robe
+2011-11-02 13:47  Regina Obe <lr at pcorp.us>
 
-	* drop populate_geometry_columns(). This is needed because got
-	  replaced by populate_geometry_columns(use_typmod=true). So if
-	  both exist get function is not unique error
+	* [r8081] postgis/postgis_drop.sql.in.c: drop
+	  populate_geometry_columns(). This is needed because got replaced
+	  by populate_geometry_columns(use_typmod=true). So if both exist
+	  get function is not unique error
 
-2011-11-02 13:42  robe
+2011-11-02 13:42  Regina Obe <lr at pcorp.us>
 
-	* #1256 drop memgeomunion so geomunion can be dropped
+	* [r8080] postgis/postgis_drop.sql.in.c: #1256 drop memgeomunion so
+	  geomunion can be dropped
 
-2011-11-02 06:50  robe
+2011-11-02 06:50  Regina Obe <lr at pcorp.us>
 
-	* more formatting experiments
+	* [r8079] doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl: more formatting experiments
 
-2011-11-02 04:28  pramsey
+2011-11-02 04:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Composite geometries end up with nested BBOX caches (#1254)
+	* [r8078] liblwgeom/Makefile.in, liblwgeom/g_serialized.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_api.c,
+	  postgis/MISSING_OBJECTS, postgis/lwgeom_debug.c: Composite
+	  geometries end up with nested BBOX caches (#1254)
 
-2011-11-01 18:17  dustymugs
+2011-11-01 18:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Based upon mailing list discussion, changed call to ST_AsRaster
-	  in _st_intersects(raster, geometry) to _st_asraster.
+	* [r8077] raster/rt_pg/rtpostgis.sql.in.c: Based upon mailing list
+	  discussion, changed call to ST_AsRaster in _st_intersects(raster,
+	  geometry) to _st_asraster.
 
-2011-11-01 17:59  pramsey
+2011-11-01 17:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make st_summary at least return consistent results (#1254)
+	* [r8076] liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_surface.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwtin.c, liblwgeom/measures3d.c,
+	  postgis/lwgeom_debug.c: Make st_summary at least return
+	  consistent results (#1254)
 
-2011-11-01 17:11  robe
+2011-11-01 17:11  Regina Obe <lr at pcorp.us>
 
-	* document ST_SameAlignment
+	* [r8075] doc/reference_raster.xml: document ST_SameAlignment
 
-2011-11-01 04:41  robe
+2011-11-01 04:41  Regina Obe <lr at pcorp.us>
 
-	* revise all to output arg list and conditionally show examples and
-	  descriptions
+	* [r8074] doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/tiger_geocoder_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: revise all to output arg
+	  list and conditionally show examples and descriptions
 
-2011-11-01 03:06  robe
+2011-11-01 03:06  Regina Obe <lr at pcorp.us>
 
-	* xsl to generate postgis cheatsheet, add make cheatsheet to
-	  gnumake, better outptuting of functions with different protos.
+	* [r8073] GNUmakefile.in, doc/Makefile.in, doc/installation.xml,
+	  doc/xsl/postgis_cheatsheet.html.xsl,
+	  doc/xsl/raster_cheatsheet.html.xsl: xsl to generate postgis
+	  cheatsheet, add make cheatsheet to gnumake, better outptuting of
+	  functions with different protos.
 
-2011-10-31 22:26  strk
+2011-10-31 22:26  Sandro Santilli <strk at keybit.net>
 
-	* ST_CreateTopoGeo: speedup merged lines splitting [RT-SIGTA]
+	* [r8069] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_createtopogeo_expected:
+	  ST_CreateTopoGeo: speedup merged lines splitting [RT-SIGTA]
 
-2011-10-31 21:18  pramsey
+2011-10-31 21:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Increase accuracy of area calculation (#810)
+	* [r8068] liblwgeom/lwpoly.c: Increase accuracy of area calculation
+	  (#810)
 
-2011-10-31 20:59  pramsey
+2011-10-31 20:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove redundant prototype
+	* [r8067] libpgcommon/lwgeom_pg.h: Remove redundant prototype
 
-2011-10-31 20:55  pramsey
+2011-10-31 20:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move gserialized_get_gbox_p to liblwgeom and
-	  gserialized_read_gbox_p to liblwgeom_internal
+	* [r8066] liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, libpgcommon/lwgeom_pg.c,
+	  postgis/geography_measurement.c: Move gserialized_get_gbox_p to
+	  liblwgeom and gserialized_read_gbox_p to liblwgeom_internal
 
-2011-10-31 20:23  pramsey
+2011-10-31 20:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename pglwgeom_box2d_p
+	* [r8065] liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h.in,
+	  libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/geography_measurement.c, postgis/lwgeom_box.c,
+	  postgis/lwgeom_btree.c, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_gist.c: Rename
+	  pglwgeom_box2d_p
 
-2011-10-31 20:02  robe
+2011-10-31 20:02  Regina Obe <lr at pcorp.us>
 
-	* add raster cheat sheet generator -- and a make cheatsheets
-	  command to generate all.
+	* [r8064] doc/Makefile.in, doc/xsl/raster_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: add raster cheat sheet
+	  generator -- and a make cheatsheets command to generate all.
 
-2011-10-31 19:20  robe
+2011-10-31 19:20  Regina Obe <lr at pcorp.us>
 
-	* get rid of word "Functions" in section headers
+	* [r8063] doc/reference_raster.xml: get rid of word "Functions" in
+	  section headers
 
-2011-10-31 13:03  strk
+2011-10-31 13:03  Sandro Santilli <strk at keybit.net>
 
-	* ST_CreateTopoGeo: do not drop input nodes of degree 2 (#1258)
+	* [r8062] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_createtopogeo.sql,
+	  topology/test/regress/st_createtopogeo_expected:
+	  ST_CreateTopoGeo: do not drop input nodes of degree 2 (#1258)
 	  [RT-SIGTA]
 
-2011-10-31 12:45  strk
+2011-10-31 12:45  Sandro Santilli <strk at keybit.net>
 
-	* Fix generation of topology in presence of edges with same
-	  bounding box (#1261).
+	* [r8061] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_createtopogeo.sql,
+	  topology/test/regress/st_createtopogeo_expected: Fix generation
+	  of topology in presence of edges with same bounding box (#1261).
 	  
 	  Includes regress test [RT-SIGTA]
 
-2011-10-31 12:22  robe
+2011-10-31 12:22  Regina Obe <lr at pcorp.us>
 
-	* fix another erroneous statement - its ValidateTopology not
-	  ST_ValidateTopology
+	* [r8060] doc/extras_topology.xml: fix another erroneous statement
+	  - its ValidateTopology not ST_ValidateTopology
 
-2011-10-31 11:58  robe
+2011-10-31 11:58  Regina Obe <lr at pcorp.us>
 
-	* get rid of word feature in description of AddTopGeometryColumn.
-	  Table can be any kind of table.
+	* [r8059] doc/extras_topology.xml: get rid of word feature in
+	  description of AddTopGeometryColumn. Table can be any kind of
+	  table.
 
-2011-10-31 05:32  robe
+2011-10-31 05:32  Regina Obe <lr at pcorp.us>
 
-	* more cleanup -- only print example sections if they have examples
+	* [r8058] doc/xsl/tiger_geocoder_cheatsheet.html.xsl,
+	  doc/xsl/topology_cheatsheet.html.xsl: more cleanup -- only print
+	  example sections if they have examples
 
-2011-10-31 03:14  robe
+2011-10-31 03:14  Regina Obe <lr at pcorp.us>
 
-	* build cheat sheet for tiger geocoder. This one looks better laid
-	  out than topology one so have to revisit topology
+	* [r8057] doc/Makefile.in,
+	  doc/xsl/tiger_geocoder_cheatsheet.html.xsl: build cheat sheet for
+	  tiger geocoder. This one looks better laid out than topology one
+	  so have to revisit topology
 
-2011-10-31 02:11  robe
+2011-10-31 02:11  Regina Obe <lr at pcorp.us>
 
-	* logic to flag new functions and allow tags in listings to be
-	  displayed
+	* [r8056] doc/xsl/topology_cheatsheet.html.xsl: logic to flag new
+	  functions and allow tags in listings to be displayed
 
-2011-10-30 23:10  robe
+2011-10-30 23:10  Regina Obe <lr at pcorp.us>
 
-	* get rid of unused styles
+	* [r8055] doc/xsl/topology_cheatsheet.html.xsl: get rid of unused
+	  styles
 
-2011-10-30 21:47  strk
+2011-10-30 21:47  Sandro Santilli <strk at keybit.net>
 
-	* AddEdgeModFace, AddEdgeNewFaces: simplify calls to AddEdge
-	  [RT-SIGTA]
+	* [r8054] topology/sql/sqlmm.sql: AddEdgeModFace, AddEdgeNewFaces:
+	  simplify calls to AddEdge [RT-SIGTA]
 
-2011-10-30 20:57  pramsey
+2011-10-30 20:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove some duplicate headers (much of this to be done...)
+	* [r8053] liblwgeom/box2d.c, liblwgeom/g_box.c,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgeom_transform.c,
+	  liblwgeom/lwout_geojson.c, liblwgeom/lwout_gml.c,
+	  liblwgeom/lwout_kml.c, liblwgeom/lwout_svg.c,
+	  liblwgeom/lwout_x3d.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/measures.c, liblwgeom/measures3d.c,
+	  liblwgeom/vsprintf.c, libpgcommon/lwgeom_pg.c,
+	  libpgcommon/lwgeom_pg.h, libpgcommon/lwgeom_transform.c,
+	  postgis/geography_inout.c: Remove some duplicate headers (much of
+	  this to be done...)
 
-2011-10-30 20:45  pramsey
+2011-10-30 20:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove SERIALIZED_FORM
+	* [r8052] liblwgeom/profile.h, libpgcommon/lwgeom_pg.h,
+	  postgis/SERIALIZED_FORM, postgis/profile.h: Remove
+	  SERIALIZED_FORM
 
-2011-10-30 20:40  pramsey
+2011-10-30 20:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_serialize
+	* [r8051] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/Makefile.in, postgis/geography.h,
+	  postgis/geography_inout.c, postgis/lwgeom_box.c,
+	  postgis/lwgeom_box3d.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_sqlmm.c,
+	  postgis/lwgeom_transform.c: Remove pglwgeom_serialize
 
-2011-10-30 19:15  strk
+2011-10-30 19:15  Sandro Santilli <strk at keybit.net>
 
-	* Add some hints about the visited table for topology.AsGML
+	* [r8050] doc/extras_topology.xml: Add some hints about the visited
+	  table for topology.AsGML
 
-2011-10-30 18:49  robe
+2011-10-30 18:49  Regina Obe <lr at pcorp.us>
 
-	* logic to build html cheatsheet -- some logic still needed to
+	* [r8049] doc/Makefile.in, doc/xsl/topology_cheatsheet.html.xsl:
+	  logic to build html cheatsheet -- some logic still needed to
 	  extract the examples correctly.
 
-2011-10-30 15:36  robe
+2011-10-30 15:36  Regina Obe <lr at pcorp.us>
 
-	* get rid of extra fluff words in section titles
+	* [r8048] doc/extras_topology.xml: get rid of extra fluff words in
+	  section titles
 
-2011-10-29 20:54  pramsey
+2011-10-29 20:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix regression
+	* [r8047] postgis/lwgeom_functions_basic.c: Fix regression
 
-2011-10-29 20:35  pramsey
+2011-10-29 20:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_ndims
+	* [r8046] liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeom.c, libpgcommon/lwgeom_pg.c,
+	  libpgcommon/lwgeom_pg.h, postgis/geography_inout.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_ogc.c,
+	  raster/rt_pg/rt_pg.c: Remove pglwgeom_ndims
 
-2011-10-29 20:07  pramsey
+2011-10-29 20:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_size
+	* [r8045] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_functions_basic.c: Remove pglwgeom_size
 
-2011-10-29 20:04  pramsey
+2011-10-29 20:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_get_zm
+	* [r8044] liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h.in,
+	  libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_functions_basic.c: Remove pglwgeom_get_zm
 
-2011-10-29 01:05  pramsey
+2011-10-29 01:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix odd formating in optimistic_overlap
+	* [r8043] postgis/lwgeom_functions_basic.c: Fix odd formating in
+	  optimistic_overlap
 
-2011-10-29 01:01  pramsey
+2011-10-29 01:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_is_empty
+	* [r8042] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_geos.c: Remove pglwgeom_is_empty
 
-2011-10-29 01:00  pramsey
+2011-10-29 01:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_drop_bbox
+	* [r8041] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_inout.c: Remove pglwgeom_drop_bbox
 
-2011-10-29 00:58  pramsey
+2011-10-29 00:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_has_bbox, pglwgeom_has_z, pglwgeom_has_m
+	* [r8040] liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h.in:
+	  Remove pglwgeom_has_bbox, pglwgeom_has_z, pglwgeom_has_m
 
-2011-10-29 00:58  pramsey
+2011-10-29 00:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_has_bbox, pglwgeom_has_z, pglwgeom_has_m
+	* [r8039] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_gist.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c: Remove
+	  pglwgeom_has_bbox, pglwgeom_has_z, pglwgeom_has_m
 
-2011-10-29 00:50  pramsey
+2011-10-29 00:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_get_type
+	* [r8038] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/geography_inout.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_spheroid.c: Remove
+	  pglwgeom_get_type
 
-2011-10-28 22:06  pramsey
+2011-10-28 22:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* remove pglwgeom_get_srid, pglwgeom_set_srid
+	* [r8037] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_btree.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_gist.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_spheroid.c,
+	  postgis/lwgeom_transform.c: remove pglwgeom_get_srid,
+	  pglwgeom_set_srid
 
-2011-10-28 21:57  pramsey
+2011-10-28 21:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove pglwgeom_deserialize
+	* [r8036] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/geography_inout.c, postgis/lwgeom_box.c,
+	  postgis/lwgeom_box3d.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_spheroid.c,
+	  postgis/lwgeom_sqlmm.c, postgis/lwgeom_transform.c: Remove
+	  pglwgeom_deserialize
 
-2011-10-28 20:54  pramsey
+2011-10-28 20:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Commit remaining removals of BOX2DFLOAT4 and PG_LWGEOM
+	* [r8035] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h: Commit
+	  remaining removals of BOX2DFLOAT4 and PG_LWGEOM
 
-2011-10-28 20:46  pramsey
+2011-10-28 20:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove BOX2DFLOAT4->GBOX and PG_LWGEOM->GSERIALIZED #defines
+	* [r8034] liblwgeom/box2d.c, liblwgeom/g_serialized.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  postgis/geography_inout.c, postgis/geometry_estimate.c,
+	  postgis/lwgeom_box.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_btree.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_prepared.h, postgis/lwgeom_gist.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_rtree.h,
+	  postgis/lwgeom_spheroid.c, postgis/lwgeom_sqlmm.c,
+	  postgis/lwgeom_transform.c: Remove BOX2DFLOAT4->GBOX and
+	  PG_LWGEOM->GSERIALIZED #defines
 
-2011-10-28 18:21  pramsey
+2011-10-28 18:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix call to geometry_type_from_string to use right type.
+	* [r8033] liblwgeom/cunit/cu_libgeom.c: Fix call to
+	  geometry_type_from_string to use right type.
 
-2011-10-28 18:09  pramsey
+2011-10-28 18:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move clone support functions into internal
+	* [r8032] liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h:
+	  Move clone support functions into internal
 
-2011-10-28 18:01  pramsey
+2011-10-28 18:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Replace min/max/abs macros with FP_* variants in liblwgeom/ and
-	  with pgsql variants in postgis/
+	* [r8031] liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwalgorithm.c, liblwgeom/measures.c,
+	  postgis/geography_estimate.c, postgis/geometry_estimate.c,
+	  postgis/lwgeom_box.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_functions_basic.c: Replace min/max/abs macros with
+	  FP_* variants in liblwgeom/ and with pgsql variants in postgis/
 
-2011-10-28 17:52  pramsey
+2011-10-28 17:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove orphaned box3d and box2dfloat4 utility functions
+	* [r8030] liblwgeom/box2d.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwgeom_api.c, postgis/lwgeom_functions_analytic.c:
+	  Remove orphaned box3d and box2dfloat4 utility functions
 
-2011-10-28 17:44  pramsey
+2011-10-28 17:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove orphaned _compute_box3d functions
+	* [r8029] liblwgeom/cunit/cu_geodetic.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwline.c, liblwgeom/lwpoint.c,
+	  liblwgeom/lwpoly.c, liblwgeom/lwtriangle.c, liblwgeom/ptarray.c:
+	  Remove orphaned _compute_box3d functions
 
-2011-10-28 17:35  pramsey
+2011-10-28 17:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove box2df_from_gbox and gbox_from_box2df
+	* [r8028] liblwgeom/g_box.c, liblwgeom/liblwgeom.h.in: Remove
+	  box2df_from_gbox and gbox_from_box2df
 
-2011-10-28 17:01  pramsey
+2011-10-28 17:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ensure calls to lwgeom->type use type of uint8_t
+	* [r8027] liblwgeom/g_util.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_api.c, liblwgeom/lwutil.c,
+	  loader/pgsql2shp-core.c, postgis/gserialized_typmod.c,
+	  postgis/lwgeom_debug.c, postgis/lwgeom_functions_basic.c: Ensure
+	  calls to lwgeom->type use type of uint8_t
 
-2011-10-28 14:51  pramsey
+2011-10-28 14:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old profiling code
+	* [r8026] liblwgeom/lwgeom_geos.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos.h, postgis/lwgeom_inout.c: Remove old
+	  profiling code
 
-2011-10-27 23:02  pramsey
+2011-10-27 23:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old 8-bit type utility functions.
+	* [r8025] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwsegmentize.c, postgis/lwgeom_rtree.c: Remove old
+	  8-bit type utility functions.
 
-2011-10-27 22:48  pramsey
+2011-10-27 22:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_Min* and LWGEOM_Max*
+	* [r8024] liblwgeom/liblwgeom.h.in, postgis/geography_estimate.c,
+	  postgis/geometry_estimate.c, postgis/lwgeom_box.c,
+	  postgis/lwgeom_box3d.c: Remove LWGEOM_Min* and LWGEOM_Max*
 
-2011-10-27 21:03  pramsey
+2011-10-27 21:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove serialized_form functions:
+	* [r8023] liblwgeom/liblwgeom.h.in, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwline.c, liblwgeom/lwpoint.c,
+	  liblwgeom/lwpoly.c, liblwgeom/lwtriangle.c,
+	  postgis/BBOXCACHE_BEHAVIOURS: Remove serialized_form functions:
 	  lwpoint_serialize_size
 	  lwpoint_serialize
 	  lwpoint_serialize_buf
@@ -16013,25 +29310,35 @@
 	  lwgeom_serialized_construct
 	  lwgeom_getsrid
 
-2011-10-27 20:52  pramsey
+2011-10-27 20:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove printBYTES
+	* [r8022] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_api.c: Remove
+	  printBYTES
 
-2011-10-27 20:51  pramsey
+2011-10-27 20:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reorder header file a little.
+	* [r8021] liblwgeom/liblwgeom.h.in: Reorder header file a little.
 
-2011-10-27 20:14  pramsey
+2011-10-27 20:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Complete removal of LWGEOM_INSPECTED
+	* [r8020] liblwgeom/lwgeom_api.c: Complete removal of
+	  LWGEOM_INSPECTED
 
-2011-10-27 20:07  pramsey
+2011-10-27 20:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED
+	* [r8019] liblwgeom/liblwgeom.h.in: Remove LWGEOM_INSPECTED
 
-2011-10-27 20:05  pramsey
+2011-10-27 20:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old deserialze and inspected functions.
+	* [r8018] liblwgeom/liblwgeom.h.in, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwline.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwpsurface.c, liblwgeom/lwtin.c,
+	  liblwgeom/lwtriangle.c: Remove old deserialze and inspected
+	  functions.
 	  
 	  serialized_lwgeom_size
 	  lwgeom_size_subgeom
@@ -16075,1257 +29382,1656 @@
 	  lwgeom_getnumgeometries
 	  lwgeom_getnumgeometries_inspected
 
-2011-10-27 19:23  pramsey
+2011-10-27 19:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove compute_serialized_box3d
+	* [r8017] liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_api.c: Remove
+	  compute_serialized_box3d
 
-2011-10-27 19:10  pramsey
+2011-10-27 19:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove duplicate and unused is_worth_caching_serialized_bbox and
-	  is_worth_caching_lwgeom_bbox
+	* [r8016] liblwgeom/liblwgeom.h.in, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_inout.c: Remove duplicate and unused
+	  is_worth_caching_serialized_bbox and is_worth_caching_lwgeom_bbox
 
-2011-10-27 18:44  pramsey
+2011-10-27 18:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ignores for new built files
+	* [r8015] liblwgeom, libpgcommon, libpgcommon/cunit, postgis,
+	  raster, raster/test/regress: Add ignores for new built files
 
-2011-10-27 14:35  strk
+2011-10-27 14:35  Sandro Santilli <strk at keybit.net>
 
-	* Wrap lines within 80 columns
+	* [r8013] liblwgeom/g_serialized.txt: Wrap lines within 80 columns
 
-2011-10-27 14:09  dustymugs
+2011-10-27 14:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rtpostgis_drop.sql, rtpostgis_drop.sql.in,
-	  rtpostgis_upgrade.sql and rtpostgis_upgrade_20_minor.sql to
-	  svn:ignore
+	* [r8012] raster/rt_pg/.svnignore: Added rtpostgis_drop.sql,
+	  rtpostgis_drop.sql.in, rtpostgis_upgrade.sql and
+	  rtpostgis_upgrade_20_minor.sql to svn:ignore
 
-2011-10-27 14:08  dustymugs
+2011-10-27 14:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored rt_band_get_min_value() to call new function
+	* [r8011] raster/.svnignore, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/scripts/python,
+	  raster/scripts/python/.svnignore: Refactored
+	  rt_band_get_min_value() to call new function
 	  rt_pixtype_get_min_value(). Addition of function
 	  rt_util_extent_type().
 
-2011-10-26 23:47  pramsey
+2011-10-26 23:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove PG_LWGEOM_construct
+	* [r8010] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  postgis/lwgeom_btree.c: Remove PG_LWGEOM_construct
 
-2011-10-26 23:21  pramsey
+2011-10-26 23:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove orphaned pglwgeom function
-	  pglwgeom_compute_serialized_box3d
+	* [r8009] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h: Remove
+	  orphaned pglwgeom function pglwgeom_compute_serialized_box3d
 
-2011-10-26 23:07  pramsey
+2011-10-26 23:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove non-gserialized portions of utility functions.
+	* [r8008] libpgcommon/lwgeom_pg.c: Remove non-gserialized portions
+	  of utility functions.
 
-2011-10-26 22:58  pramsey
+2011-10-26 22:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove more orphaned box2d support functions
+	* [r8007] doc/rfc/postgis_rfc_03_sheet.txt, liblwgeom/box2d.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom_api.c: Remove more
+	  orphaned box2d support functions
 
-2011-10-26 22:36  pramsey
+2011-10-26 22:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove *_compute_box2d* functions that are now orphans.
+	* [r8006] liblwgeom/liblwgeom.h.in, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeom.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwtriangle.c,
+	  liblwgeom/ptarray.c: Remove *_compute_box2d* functions that are
+	  now orphans.
 
-2011-10-25 21:19  pramsey
+2011-10-25 21:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove gserialized_on conditionals. Only type defines remain to
-	  be cleared out.
+	* [r8005] postgis/lwgeom_box3d.c, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_geos.c, raster/rt_pg/rt_pg.c: Remove
+	  gserialized_on conditionals. Only type defines remain to be
+	  cleared out.
 
-2011-10-25 21:05  pramsey
+2011-10-25 21:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old box2dfloat4 in favor of gbox.
+	* [r8004] libpgcommon/lwgeom_pg.h, postgis/Makefile.in,
+	  postgis/lwgeom_box.c, postgis/lwgeom_box2dfloat4.c,
+	  postgis/lwgeom_box3d.c: Remove old box2dfloat4 in favor of gbox.
 
-2011-10-25 20:31  strk
+2011-10-25 20:31  Sandro Santilli <strk at keybit.net>
 
-	* Add own copyright on the file. See
+	* [r8003] postgis/geometry_estimate.c: Add own copyright on the
+	  file. See
 	  http://postgis.refractions.net/pipermail/postgis-devel/2004-March/thread.html
 	  for historical mail exchanges about it :)
 
-2011-10-25 20:02  pramsey
+2011-10-25 20:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old serialized_form index selectivity code.
+	* [r8002] postgis/Makefile.in, postgis/geometry_estimate.c,
+	  postgis/geometry_gist_selectivity.c, postgis/lwgeom_estimate.c:
+	  Remove old serialized_form index selectivity code.
 
-2011-10-21 21:49  strk
+2011-10-21 21:49  Sandro Santilli <strk at keybit.net>
 
-	* Explode the topology sections to keep primitive (sql/mm) topology
-	  management more separate from higher (TopoGeometry) management.
+	* [r8001] doc/extras_topology.xml: Explode the topology sections to
+	  keep primitive (sql/mm) topology management more separate from
+	  higher (TopoGeometry) management.
 
-2011-10-21 21:42  dustymugs
+2011-10-21 21:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_raster_set_geotransform_matrix() to provide quick
-	  setting of a raster's geotransform based upon the matrix
+	* [r8000] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Added
+	  rt_raster_set_geotransform_matrix() to provide quick setting of a
+	  raster's geotransform based upon the matrix
 
-2011-10-21 19:10  dustymugs
+2011-10-21 19:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* Corrected rt_raster_same_alignment() and RASTER_sameAlignment()
-	  to behave as an end-user would expect it to. So intead of errors
-	  when parameters don't match, return false.
+	* [r7999] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/core/testapi.c,
+	  raster/test/regress/rt_samealignment_expected: Corrected
+	  rt_raster_same_alignment() and RASTER_sameAlignment() to behave
+	  as an end-user would expect it to. So intead of errors when
+	  parameters don't match, return false.
 
-2011-10-21 18:11  dustymugs
+2011-10-21 18:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed rt_raster_has_no_band to use 0-based band index instead
-	  of 1-based. Removed function prototype ST_HasNoData(raster) as
-	  the other prototype ST_HasNoData(raster, nband) now uses the
-	  default value of 1 for nband.
+	* [r7998] doc/reference_raster.xml, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c: Changed
+	  rt_raster_has_no_band to use 0-based band index instead of
+	  1-based. Removed function prototype ST_HasNoData(raster) as the
+	  other prototype ST_HasNoData(raster, nband) now uses the default
+	  value of 1 for nband.
 
-2011-10-21 14:53  dustymugs
+2011-10-21 14:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed those functions that is 1-based for band index to 0-based
-	  in rt_core. This leaves only rt_raster_has_no_band, which may
-	  have other issues as well.
+	* [r7997] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: Changed those functions
+	  that is 1-based for band index to 0-based in rt_core. This leaves
+	  only rt_raster_has_no_band, which may have other issues as well.
 	  
 	  Associated ticket is #754
 
-2011-10-21 12:01  robe
+2011-10-21 12:01  Regina Obe <lr at pcorp.us>
 
-	* put in logic to st_setsrid to wgs84 before doing
-	  st_distance_sphere in case Paul decides he doesn't want to fix
-	  the regression issue noted in #1243
+	* [r7996]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql: put
+	  in logic to st_setsrid to wgs84 before doing st_distance_sphere
+	  in case Paul decides he doesn't want to fix the regression issue
+	  noted in #1243
 
-2011-10-20 22:24  dustymugs
+2011-10-20 22:24  Bborie Park <bkpark at ucdavis.edu>
 
-	* Renamed RASTER_samealignment() to RASTER_sameAlignment() and
+	* [r7995] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Renamed RASTER_samealignment() to RASTER_sameAlignment() and
 	  corrected C++ style comments with C comments
 
-2011-10-20 22:07  dustymugs
+2011-10-20 22:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed use of PG_DETOAST_DATUM_COPY and PG_FREE_IF_COPY as all
-	  rasters should be detoasted using PG_DETOAST_DATUM as it doesn't
-	  create a copy, thus consuming more space.
+	* [r7994] raster/rt_pg/rt_pg.c: Removed use of
+	  PG_DETOAST_DATUM_COPY and PG_FREE_IF_COPY as all rasters should
+	  be detoasted using PG_DETOAST_DATUM as it doesn't create a copy,
+	  thus consuming more space.
 
-2011-10-20 13:31  dzwarg
+2011-10-20 13:31  David Zwarg <dzwarg at azavea.com>
 
-	* Replaced missing signatures of ST_MapAlgebraFct.
+	* [r7993] raster/rt_pg/rtpostgis.sql.in.c: Replaced missing
+	  signatures of ST_MapAlgebraFct.
 
-2011-10-20 00:49  robe
+2011-10-20 00:49  Regina Obe <lr at pcorp.us>
 
-	* move function args to single line so CREATe EXTENSION topology
-	  FROM unpackaged script builds corectly
+	* [r7992] topology/sql/gml.sql,
+	  topology/sql/topoelement/topoelement_agg.sql: move function args
+	  to single line so CREATe EXTENSION topology FROM unpackaged
+	  script builds corectly
 
-2011-10-19 23:47  robe
+2011-10-19 23:47  Regina Obe <lr at pcorp.us>
 
-	* add in missing ST_MapAlgebraFct protos
+	* [r7991] doc/reference_raster.xml: add in missing ST_MapAlgebraFct
+	  protos
 
-2011-10-19 23:25  robe
+2011-10-19 23:25  Regina Obe <lr at pcorp.us>
 
-	* evidentally missed one or get the wrong ST_MapAlgebraFct proto in
-	  last commit
+	* [r7990] doc/reference_raster.xml: evidentally missed one or get
+	  the wrong ST_MapAlgebraFct proto in last commit
 
-2011-10-19 20:31  robe
+2011-10-19 20:31  Regina Obe <lr at pcorp.us>
 
-	* Get rid of st_mapalgebrafct(raster,text,regprocedure,text[])
-	  proto since there is no matching function - messing up my ability
-	  to test my extensions
+	* [r7989] doc/reference_raster.xml: Get rid of
+	  st_mapalgebrafct(raster,text,regprocedure,text[]) proto since
+	  there is no matching function - messing up my ability to test my
+	  extensions
 
-2011-10-18 11:37  robe
+2011-10-18 11:37  Regina Obe <lr at pcorp.us>
 
-	* #860 Get rid of some dup definitions in ST_MapAlgebraFct and add
-	  some missing ones.
+	* [r7988] doc/reference_raster.xml: #860 Get rid of some dup
+	  definitions in ST_MapAlgebraFct and add some missing ones.
 
-2011-10-18 02:23  robe
+2011-10-18 02:23  Regina Obe <lr at pcorp.us>
 
-	* Add postgis_before_drop for dropping functions that have arument
-	  names renamed before reinstall. Just for upgrade script since
-	  can't do CREATE OR REPLACE if arg names have changed
+	* [r7987] postgis/Makefile.in: Add postgis_before_drop for dropping
+	  functions that have arument names renamed before reinstall. Just
+	  for upgrade script since can't do CREATE OR REPLACE if arg names
+	  have changed
 
-2011-10-17 16:16  dzwarg
+2011-10-17 16:16  David Zwarg <dzwarg at azavea.com>
 
-	* Fixed documentation code listing typo for ST_MapAlgebraFct, and
-	  added more information about userfunctions and variadic text
-	  args.
+	* [r7986] doc/reference_raster.xml: Fixed documentation code
+	  listing typo for ST_MapAlgebraFct, and added more information
+	  about userfunctions and variadic text args.
 
-2011-10-17 13:45  robe
+2011-10-17 13:45  Regina Obe <lr at pcorp.us>
 
-	* update bios
+	* [r7985] doc/introduction.xml: update bios
 
-2011-10-17 13:10  dzwarg
+2011-10-17 13:10  David Zwarg <dzwarg at azavea.com>
 
-	* Added ST_MapAlgebraFct to documentation, with same examples as
-	  ST_MapAlgebraExpr
+	* [r7984] doc/reference_raster.xml: Added ST_MapAlgebraFct to
+	  documentation, with same examples as ST_MapAlgebraExpr
 
-2011-10-16 18:17  robe
+2011-10-16 18:17  Regina Obe <lr at pcorp.us>
 
-	* upgrade from a1-a3 for topology, beginning of upgrade extension
-	  for postgis -- still need to resolve issue of ALTER EXTENSION not
+	* [r7983] extensions/postgis/Makefile,
+	  extensions/postgis/postgis.control,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: upgrade
+	  from a1-a3 for topology, beginning of upgrade extension for
+	  postgis -- still need to resolve issue of ALTER EXTENSION not
 	  having a DROP IF EXISTS -- a bit annoying for aggs.
 
-2011-10-14 22:43  robe
+2011-10-14 22:43  Regina Obe <lr at pcorp.us>
 
-	* Move XMin/Max etc out of miscellaneous into accessors -- Per
-	  Pierre's suggestion. Seems more logical.
+	* [r7982] doc/reference_accessor.xml, doc/reference_misc.xml: Move
+	  XMin/Max etc out of miscellaneous into accessors -- Per Pierre's
+	  suggestion. Seems more logical.
 
-2011-10-14 22:36  robe
+2011-10-14 22:36  Regina Obe <lr at pcorp.us>
 
-	* Getr di of the word function in heard. Guess it is kind of stupid
+	* [r7981] doc/reference_processing.xml: Getr di of the word
+	  function in heard. Guess it is kind of stupid
 
-2011-10-14 18:11  dzwarg
+2011-10-14 18:11  David Zwarg <dzwarg at azavea.com>
 
-	* Implemented raster map algebra with user functions/callbacks.
-	  (#860)
+	* [r7980] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/create_rt_mapalgebra_test.sql,
+	  raster/test/regress/rt_mapalgebra.sql,
+	  raster/test/regress/rt_mapalgebra_expected,
+	  raster/test/regress/rt_mapalgebraexpr.sql,
+	  raster/test/regress/rt_mapalgebraexpr_expected,
+	  raster/test/regress/rt_mapalgebrafct.sql,
+	  raster/test/regress/rt_mapalgebrafct_expected: Implemented raster
+	  map algebra with user functions/callbacks. (#860)
 
-2011-10-13 17:54  pramsey
+2011-10-13 17:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Actually we use bash code, not sh code
+	* [r7979] regress/run_test: Actually we use bash code, not sh code
 
-2011-10-13 12:28  robe
+2011-10-13 12:28  Regina Obe <lr at pcorp.us>
 
-	* Add _ST_Resample -- evidentally arg names changed. also got rid
-	  of arg names in _ST_AsRaster
+	* [r7977] raster/rt_pg/rtpostgis_drop.sql.in.c: Add _ST_Resample --
+	  evidentally arg names changed. also got rid of arg names in
+	  _ST_AsRaster
 
-2011-10-13 11:56  robe
+2011-10-13 11:56  Regina Obe <lr at pcorp.us>
 
-	* Some functions need to be dropped before upgrade minor if they
-	  need to be recreated. This is required for functions where
-	  argument names change but fundamental types do not. Will add this
-	  to upgrade minor script build later.
+	* [r7976] postgis/postgis_drop_before.sql.in.c: Some functions need
+	  to be dropped before upgrade minor if they need to be recreated.
+	  This is required for functions where argument names change but
+	  fundamental types do not. Will add this to upgrade minor script
+	  build later.
 
-2011-10-12 14:36  dustymugs
+2011-10-12 14:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Bug fix for _ST_Intersects(geometry, raster) where the buffering
-	  of the intersection could return NULL. This happens if the buffer
-	  was passed zero for the buffer distance.
+	* [r7975] raster/rt_pg/rtpostgis.sql.in.c: Bug fix for
+	  _ST_Intersects(geometry, raster) where the buffering of the
+	  intersection could return NULL. This happens if the buffer was
+	  passed zero for the buffer distance.
 
-2011-10-12 12:51  robe
+2011-10-12 12:51  Regina Obe <lr at pcorp.us>
 
-	* move ST_AddBand to raster constructors section per ticket #1240
-	  and rename Raster Band Accessors and Constructors to just Raster
-	  Band Accessors
+	* [r7974] doc/reference_raster.xml: move ST_AddBand to raster
+	  constructors section per ticket #1240 and rename Raster Band
+	  Accessors and Constructors to just Raster Band Accessors
 
-2011-10-12 11:26  robe
+2011-10-12 11:26  Regina Obe <lr at pcorp.us>
 
-	* another minor correction
+	* [r7972] doc/using_postgis_dataman.xml: another minor correction
 
-2011-10-12 11:18  robe
+2011-10-12 11:18  Regina Obe <lr at pcorp.us>
 
-	* #1241 apply doc_vacuum_analyze_and_I_None_typo.patch
+	* [r7971] doc/using_postgis_dataman.xml: #1241 apply
+	  doc_vacuum_analyze_and_I_None_typo.patch
 
-2011-10-11 14:37  strk
+2011-10-11 14:37  Sandro Santilli <strk at keybit.net>
 
-	* Typename in type specifier doesn't need to be quoted.
+	* [r7970] regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-compoundcurve.sql, regress/sql-mm-curvepoly.sql,
+	  regress/sql-mm-multicurve.sql, regress/sql-mm-multisurface.sql:
+	  Typename in type specifier doesn't need to be quoted.
 
-2011-10-11 10:33  strk
+2011-10-11 10:33  Sandro Santilli <strk at keybit.net>
 
-	* Ignore more generated files
+	* [r7969] .gitignore: Ignore more generated files
 
-2011-10-10 20:50  strk
+2011-10-10 20:50  Sandro Santilli <strk at keybit.net>
 
-	* Restrict valid spatial_ref_sys SRID values between 1 and 998999
-	  (#1233)
+	* [r7968] postgis/postgis.sql.in.c: Restrict valid spatial_ref_sys
+	  SRID values between 1 and 998999 (#1233)
 	  
 	  I guess it'll take some special handling for this change in the
 	  upgrade scripts. I didn't do any with this commit.
 
-2011-10-10 20:38  strk
+2011-10-10 20:38  Sandro Santilli <strk at keybit.net>
 
-	* Clamp SRID in typmod parser. Now we get NOTICE/clamp also on
-	  create table.
+	* [r7967] postgis/gserialized_typmod.c: Clamp SRID in typmod
+	  parser. Now we get NOTICE/clamp also on create table.
 
-2011-10-10 20:26  strk
+2011-10-10 20:26  Sandro Santilli <strk at keybit.net>
 
-	* Clamp SRID in AddGeometryColumn, update expected topology test
-	  results to expect -1 being transformed to 0 (current official
-	  UNKNOWN SRID value).
+	* [r7966] postgis/postgis.sql.in.c,
+	  topology/test/regress/legacy_predicate_expected,
+	  topology/test/regress/legacy_query_expected,
+	  topology/test/regress/st_remedgemodface_expected,
+	  topology/test/regress/st_remedgenewface_expected: Clamp SRID in
+	  AddGeometryColumn, update expected topology test results to
+	  expect -1 being transformed to 0 (current official UNKNOWN SRID
+	  value).
 
-2011-10-10 19:25  strk
+2011-10-10 19:25  Sandro Santilli <strk at keybit.net>
 
-	* Do not use AddGeometryColumn, to avoid having to write an
-	  explicit unknown SRID value.
+	* [r7965] regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-multicurve.sql,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multisurface.sql,
+	  regress/sql-mm-multisurface_expected: Do not use
+	  AddGeometryColumn, to avoid having to write an explicit unknown
+	  SRID value.
 
-2011-10-10 17:50  strk
+2011-10-10 17:50  Sandro Santilli <strk at keybit.net>
 
-	* Hush NOTICES in regress test currently not emitting any
-	  (propedeutic for srid clamping in AddGeometryColumn, which is
-	  invoked with SRID=-1 by this testcase)
+	* [r7964] regress/sql-mm-circularstring.sql: Hush NOTICES in
+	  regress test currently not emitting any (propedeutic for srid
+	  clamping in AddGeometryColumn, which is invoked with SRID=-1 by
+	  this testcase)
 
-2011-10-10 07:38  strk
+2011-10-10 07:38  Sandro Santilli <strk at keybit.net>
 
-	* Clamp SRID on serialization and deserialization. Raise an error
-	  when clamp_srid receives a number > 999999
+	* [r7963] liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_serialized.c,
+	  liblwgeom/liblwgeom.h.in, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwutil.c: Clamp SRID on serialization and
+	  deserialization. Raise an error when clamp_srid receives a number
+	  > 999999
 
-2011-10-10 07:35  strk
+2011-10-10 07:35  Sandro Santilli <strk at keybit.net>
 
-	* Do not input an explicit value to mean unknown SRID (in raster
-	  test)
+	* [r7962] raster/test/regress/create_rt_gist_test.sql: Do not input
+	  an explicit value to mean unknown SRID (in raster test)
 
-2011-10-10 07:20  strk
+2011-10-10 07:20  Sandro Santilli <strk at keybit.net>
 
-	* Do not input an explicit value to mean unknown SRID
+	* [r7961] regress/tickets.sql: Do not input an explicit value to
+	  mean unknown SRID
 
-2011-10-10 06:55  strk
+2011-10-10 06:55  Sandro Santilli <strk at keybit.net>
 
-	* Use macros for hard-coded "magic" SRIDs used by _BestSRID and
+	* [r7960] libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h, postgis/geography_measurement.c:
+	  Use macros for hard-coded "magic" SRIDs used by _BestSRID and
 	  ST_Transform, use 999xxx range for them. See ticket #1230.
 
-2011-10-07 00:29  dustymugs
+2011-10-07 00:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added additional error checking and error messages to
-	  ST_SameAlignment function
+	* [r7959] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/core/testapi.c,
+	  raster/test/regress/rt_samealignment_expected: Added additional
+	  error checking and error messages to ST_SameAlignment function
 
-2011-10-06 23:25  dustymugs
+2011-10-06 23:25  Bborie Park <bkpark at ucdavis.edu>
 
-	* minor cleanup and prettiness.
+	* [r7958] raster/rt_pg/Makefile.in: minor cleanup and prettiness.
 
-2011-10-06 15:47  dustymugs
+2011-10-06 15:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Make use of clamp_srid function for SRID checks
+	* [r7957] raster/rt_pg/rt_pg.c: Make use of clamp_srid function for
+	  SRID checks
 
-2011-10-06 14:08  strk
+2011-10-06 14:08  Sandro Santilli <strk at keybit.net>
 
-	* Raise a NOTICE when a SRID <= 0 but != SRID_UNKNOWN is converted
+	* [r7956] liblwgeom/lwutil.c: Raise a NOTICE when a SRID <= 0 but
+	  != SRID_UNKNOWN is converted
 
-2011-10-06 13:35  strk
+2011-10-06 13:35  Sandro Santilli <strk at keybit.net>
 
-	* Clamp literal SRID values occurring in WKB and WKT.
+	* [r7955] liblwgeom/lwin_wkb.c, liblwgeom/lwin_wkt.c: Clamp literal
+	  SRID values occurring in WKB and WKT.
 
-2011-10-06 13:35  strk
+2011-10-06 13:35  Sandro Santilli <strk at keybit.net>
 
-	* Add clamp_srid internal function returning UNKNOWN for <= 0
-	  values.
+	* [r7954] liblwgeom/liblwgeom_internal.h, liblwgeom/lwutil.c: Add
+	  clamp_srid internal function returning UNKNOWN for <= 0 values.
 
-2011-10-06 07:18  strk
+2011-10-06 07:18  Sandro Santilli <strk at keybit.net>
 
-	* Do not use an explicit SRID=-1 in EKWT. It's not needed.
+	* [r7953] regress/out_geography.sql: Do not use an explicit SRID=-1
+	  in EKWT. It's not needed.
 
-2011-10-06 06:57  strk
+2011-10-06 06:57  Sandro Santilli <strk at keybit.net>
 
-	* Do not use an explicit SRID=-1 in EKWT. It's not needed.
+	* [r7952] regress/relate.sql: Do not use an explicit SRID=-1 in
+	  EKWT. It's not needed.
 
-2011-10-05 23:03  dustymugs
+2011-10-05 23:03  Bborie Park <bkpark at ucdavis.edu>
 
-	* Implements ST_SameAlignment.
+	* [r7951] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_samealignment.sql,
+	  raster/test/regress/rt_samealignment_expected: Implements
+	  ST_SameAlignment.
 	  
 	  Associated ticket is #589.
 
-2011-10-05 18:55  dustymugs
+2011-10-05 18:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed --with-gdalconfig parameter as per ticket #1167.
+	* [r7950] configure.ac: Fixed --with-gdalconfig parameter as per
+	  ticket #1167.
 
-2011-10-05 18:49  dustymugs
+2011-10-05 18:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* As per Bryce's comments in ticket #1174, reduce the number of
-	  calculations when doing rt_raster_geopoint_to_cell by using an
-	  inverse geotransform matrix. Unlike the patch attached to the
-	  ticket, this commit does not change the structure of the
-	  rt_raster struct. It may be worth changing the rt_raster struct
-	  eventually, but will cost us the single memcpy when serializing
-	  rt_raster. Also, changes for testing SRID as "unknown" if value
-	  is lte SRID_UNKNOWN (presently 0).
+	* [r7949] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c: As per Bryce's comments in ticket #1174,
+	  reduce the number of calculations when doing
+	  rt_raster_geopoint_to_cell by using an inverse geotransform
+	  matrix. Unlike the patch attached to the ticket, this commit does
+	  not change the structure of the rt_raster struct. It may be worth
+	  changing the rt_raster struct eventually, but will cost us the
+	  single memcpy when serializing rt_raster. Also, changes for
+	  testing SRID as "unknown" if value is lte SRID_UNKNOWN (presently
+	  0).
 	  
 	  Associated ticket is #1174.
 
-2011-10-05 04:54  dustymugs
+2011-10-05 04:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed hackish use of POSTGIS_GDAL_VERSION in
-	  postgis/sqldefines.h.in and postgis/postgis.sql.in.c. Added
-	  conditional compilation of extent resizing based upon GDAL
-	  version in rt_api.c
+	* [r7948] postgis/postgis.sql.in.c, postgis/sqldefines.h.in,
+	  raster/rt_core/rt_api.c: Removed hackish use of
+	  POSTGIS_GDAL_VERSION in postgis/sqldefines.h.in and
+	  postgis/postgis.sql.in.c. Added conditional compilation of extent
+	  resizing based upon GDAL version in rt_api.c
 
-2011-10-04 23:32  dustymugs
+2011-10-04 23:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed bug where a call to postgis_full_version causes error if
+	* [r7947] postgis/postgis.sql.in.c, postgis/sqldefines.h.in: Fixed
+	  bug where a call to postgis_full_version causes error if
 	  postgis_gdal_version doesn't exist because raster support is not
 	  included
 
-2011-10-04 23:13  strk
+2011-10-04 23:13  Sandro Santilli <strk at keybit.net>
 
-	* don't try to call postgis_gdal_version() if not testing raster
-	  (the signature is unavailable)
+	* [r7946] regress/run_test: don't try to call
+	  postgis_gdal_version() if not testing raster (the signature is
+	  unavailable)
 
-2011-10-04 22:38  dustymugs
+2011-10-04 22:38  Bborie Park <bkpark at ucdavis.edu>
 
-	* Adds postgis_gdal_version() function as per ticket #1225.
+	* [r7945] configure.ac, postgis/postgis.sql.in.c,
+	  raster/raster_config.h.in, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, regress/run_test: Adds
+	  postgis_gdal_version() function as per ticket #1225.
 
-2011-10-04 20:51  dustymugs
+2011-10-04 20:51  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed adjustment of extent by half-pixel to full-pixel for
-	  points and linestrings to ensure compatibility with GDAL 1.6, 1.7
-	  and 1.8. GDAL 1.9 (current trunk) appears to work fine with
-	  half-pixel adjustments.
+	* [r7944] raster/rt_core/rt_api.c: Changed adjustment of extent by
+	  half-pixel to full-pixel for points and linestrings to ensure
+	  compatibility with GDAL 1.6, 1.7 and 1.8. GDAL 1.9 (current
+	  trunk) appears to work fine with half-pixel adjustments.
 
-2011-10-04 20:46  robe
+2011-10-04 20:46  Regina Obe <lr at pcorp.us>
 
-	* add KNN GIST + credits to news release (was already in docs)
+	* [r7943] NEWS: add KNN GIST + credits to news release (was already
+	  in docs)
 
-2011-10-04 20:43  robe
+2011-10-04 20:43  Regina Obe <lr at pcorp.us>
 
-	* minor correction to <#> description
+	* [r7942] doc/reference_operator.xml: minor correction to <#>
+	  description
 
-2011-10-04 19:50  dustymugs
+2011-10-04 19:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* For linestrings, use same logic for points where extent is
-	  increased by half a pixel to catch geometries on the edges.
+	* [r7941] raster/rt_core/rt_api.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_intersects.sql: For linestrings, use same
+	  logic for points where extent is increased by half a pixel to
+	  catch geometries on the edges.
 	  
 	  Associated ticket is #1213
 
-2011-10-04 17:08  strk
+2011-10-04 17:08  Sandro Santilli <strk at keybit.net>
 
-	* Do not base availability of SQL ST_Hausdorff* signatures on GEOS
-	  version
+	* [r7940] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c: Do not
+	  base availability of SQL ST_Hausdorff* signatures on GEOS version
 	  
 	  Tested with GEOS from the 3.1 branch (yes, we still support it !)
 
-2011-10-04 16:45  strk
+2011-10-04 16:45  Sandro Santilli <strk at keybit.net>
 
-	* Simple review of the topology README. Wasn't that outdated :)
+	* [r7939] topology/README: Simple review of the topology README.
+	  Wasn't that outdated :)
 
-2011-10-04 16:27  strk
+2011-10-04 16:27  Sandro Santilli <strk at keybit.net>
 
-	* Do not base availability of SQL isValid* signatures on GEOS
-	  version
+	* [r7938] postgis/postgis.sql.in.c: Do not base availability of SQL
+	  isValid* signatures on GEOS version
 	  
 	  This is a work for the C level library.
 
-2011-10-04 14:33  strk
+2011-10-04 14:33  Sandro Santilli <strk at keybit.net>
 
-	* Tweak expected test output to expect unknown srid to be reported
-	  as 0
+	* [r7937] topology/test/regress/createtopology_expected,
+	  topology/test/regress/st_createtopogeo_expected: Tweak expected
+	  test output to expect unknown srid to be reported as 0
 	  
 	  If this will change before release, git-revert is our friend
 
-2011-10-04 14:33  strk
+2011-10-04 14:33  Sandro Santilli <strk at keybit.net>
 
-	* Make topology.CreateTopology unknown-srid-agnostic (uses ST_Srid
-	  to tell)
+	* [r7936] topology/topology.sql.in.c: Make topology.CreateTopology
+	  unknown-srid-agnostic (uses ST_Srid to tell)
 	  
 	  Hopefully this makes the topology code stable during the SRID
 	  fights :)
 
-2011-10-03 15:29  robe
+2011-10-03 15:29  Regina Obe <lr at pcorp.us>
 
-	* Guess Nicklas was right - should have looked at my explain.
-	  Revised example to use geometry constants. Seems to be a
-	  limitation in KNN that it needs constants. Same annoying behavior
-	  with my trigram KNN that only constant phrases work, not even
-	  constant phrases wrapped in alias work.
+	* [r7935] doc/reference_operator.xml: Guess Nicklas was right -
+	  should have looked at my explain. Revised example to use geometry
+	  constants. Seems to be a limitation in KNN that it needs
+	  constants. Same annoying behavior with my trigram KNN that only
+	  constant phrases work, not even constant phrases wrapped in alias
+	  work.
 
-2011-10-03 10:32  strk
+2011-10-03 10:32  Sandro Santilli <strk at keybit.net>
 
-	* Drop more non-ascii dashes, update regress tests (#1226)
-	  [RT-SIGTA]
+	* [r7934] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_modedgeheal_expected,
+	  topology/test/regress/st_newedgeheal_expected,
+	  topology/test/regress/st_remedgemodface_expected,
+	  topology/test/regress/st_remedgenewface_expected: Drop more
+	  non-ascii dashes, update regress tests (#1226) [RT-SIGTA]
 	  
 	  There's a still-failing regress test due to SRID 0 being
 	  considered != 1
 
-2011-10-03 10:26  strk
+2011-10-03 10:26  Sandro Santilli <strk at keybit.net>
 
-	* Use ASCII dash, not UTF8 one. Fixes #1226. [RT-SIGTA]
+	* [r7933] topology/sql/sqlmm.sql: Use ASCII dash, not UTF8 one.
+	  Fixes #1226. [RT-SIGTA]
 
-2011-10-02 23:38  robe
+2011-10-02 23:38  Regina Obe <lr at pcorp.us>
 
-	* Add in st_valuecount evidentally changed output in 2.0 series
+	* [r7932] raster/rt_pg/rtpostgis_drop.sql.in.c: Add in
+	  st_valuecount evidentally changed output in 2.0 series
 
-2011-10-02 14:12  dustymugs
+2011-10-02 14:12  Bborie Park <bkpark at ucdavis.edu>
 
-	* fixed _st_intersects(raster, geometry, integer) where call to
+	* [r7931] raster/rt_pg/rtpostgis.sql.in.c: fixed
+	  _st_intersects(raster, geometry, integer) where call to
 	  ST_Intersects was hardcoding the first band of raster instead of
 	  using user-provided nband.
 
-2011-10-02 03:18  robe
+2011-10-02 03:18  Regina Obe <lr at pcorp.us>
 
-	* preliminary logic to build an rtpostgis_upgrade_20_minor.sql
-	  script. Still missing a drop somewhere since my older db doesn't
-	  upgrade because complains about out parameters changed in some
-	  function.
+	* [r7930] raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: preliminary logic to build
+	  an rtpostgis_upgrade_20_minor.sql script. Still missing a drop
+	  somewhere since my older db doesn't upgrade because complains
+	  about out parameters changed in some function.
 
-2011-10-01 17:28  dustymugs
+2011-10-01 17:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed installation path of rtpostgis.sql to contrib/postgis-2.0.
-	  Added build of rtpostgis_drop.sql
+	* [r7929] raster/rt_pg/Makefile.in: Fixed installation path of
+	  rtpostgis.sql to contrib/postgis-2.0. Added build of
+	  rtpostgis_drop.sql
 	  
 	  Associated ticket is #615
 
-2011-10-01 16:47  robe
+2011-10-01 16:47  Regina Obe <lr at pcorp.us>
 
-	* itemize more removed functions for upgrade purposes
+	* [r7928] raster/rt_pg/rtpostgis_drop.sql.in.c: itemize more
+	  removed functions for upgrade purposes
 
-2011-10-01 03:46  robe
+2011-10-01 03:46  Regina Obe <lr at pcorp.us>
 
-	* add very paertinatnet ST_3DDistance reference to ST_3DDwithin
+	* [r7927] doc/reference_measure.xml: add very paertinatnet
+	  ST_3DDistance reference to ST_3DDwithin
 
-2011-10-01 02:58  robe
+2011-10-01 02:58  Regina Obe <lr at pcorp.us>
 
-	* get rid of obsolete proto, replace with new onesfor
-	  ST_Intersects. Clarify distinctions between raster/goemtry and
-	  geometry/raster operations
+	* [r7926] doc/reference_raster.xml: get rid of obsolete proto,
+	  replace with new onesfor ST_Intersects. Clarify distinctions
+	  between raster/goemtry and geometry/raster operations
 
-2011-09-30 20:03  dzwarg
+2011-09-30 20:03  David Zwarg <dzwarg at azavea.com>
 
-	* Changed ST_MapAlgebra to ST_MapAlgebraExpr. Also moved around the
-	  pixeltype parameter -- it is no longer optional. Also updated
-	  docs that referred to ST_MapAlgebra. (#860)
+	* [r7925] doc/html/images/st_mapalgebra01.png,
+	  doc/html/images/st_mapalgebra02.png,
+	  doc/html/images/st_mapalgebraexpr01.png,
+	  doc/html/images/st_mapalgebraexpr02.png,
+	  doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_mapalgebra.sql: Changed ST_MapAlgebra to
+	  ST_MapAlgebraExpr. Also moved around the pixeltype parameter --
+	  it is no longer optional. Also updated docs that referred to
+	  ST_MapAlgebra. (#860)
 
-2011-09-30 18:34  dzwarg
+2011-09-30 18:34  David Zwarg <dzwarg at azavea.com>
 
-	* Renamed 'nodatavalueexpr' variable. (#866)
+	* [r7924] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Renamed 'nodatavalueexpr' variable. (#866)
 
-2011-09-30 00:11  dustymugs
+2011-09-30 00:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated regression tests to correctly support change of unknown
-	  SRID from -1 to 0.
+	* [r7923] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c,
+	  raster/test/regress/rt_asgdalraster.sql,
+	  raster/test/regress/rt_asjpeg.sql,
+	  raster/test/regress/rt_aspng.sql,
+	  raster/test/regress/rt_astiff.sql,
+	  raster/test/regress/rt_intersects.sql: Updated regression tests
+	  to correctly support change of unknown SRID from -1 to 0.
 
-2011-09-29 19:43  strk
+2011-09-29 19:43  Sandro Santilli <strk at keybit.net>
 
-	* Fix distclean rule to drop Makefile too
+	* [r7922] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in: Fix
+	  distclean rule to drop Makefile too
 
-2011-09-29 19:43  strk
+2011-09-29 19:43  Sandro Santilli <strk at keybit.net>
 
-	* Define SHELL (used by LIBTOOL and INSTALL) hopefully helps bug
-	  #1218
+	* [r7921] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  loader/Makefile.in: Define SHELL (used by LIBTOOL and INSTALL)
+	  hopefully helps bug #1218
 
-2011-09-29 18:53  dustymugs
+2011-09-29 18:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* Uncommented include of lwgeom_pg.h in rt_pg.c. Fixed setting SRID
-	  to -1 to SRID_UNKNOWN.
+	* [r7920] raster/rt_pg/rt_pg.c: Uncommented include of lwgeom_pg.h
+	  in rt_pg.c. Fixed setting SRID to -1 to SRID_UNKNOWN.
 
-2011-09-29 18:33  dustymugs
+2011-09-29 18:33  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed function ST_Intersects(raster, raster, int, int) to
-	  ST_Intersects(raster, raster). Added additional comments to
+	* [r7919] raster/rt_core/rt_api.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_intersects.sql: Changed function
+	  ST_Intersects(raster, raster, int, int) to ST_Intersects(raster,
+	  raster). Added additional comments to
 	  rt_raster_geopoint_to_cell().
 	  
 	  Associated ticket is #1212
 
-2011-09-29 10:40  strk
+2011-09-29 10:40  Sandro Santilli <strk at keybit.net>
 
-	* Do not incentivate use of SRID=-1 in mapserver examples.
+	* [r7918] doc/using_postgis_app.xml: Do not incentivate use of
+	  SRID=-1 in mapserver examples.
 
-2011-09-29 10:34  strk
+2011-09-29 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Do not suggest using "SRID=<unknown>" prefix in EWKT
+	* [r7917] doc/extras_topology.xml: Do not suggest using
+	  "SRID=<unknown>" prefix in EWKT
 
-2011-09-29 07:18  robe
+2011-09-29 07:18  Regina Obe <lr at pcorp.us>
 
-	* start work building unpackaged
+	* [r7916] extensions/postgis/Makefile: start work building
+	  unpackaged
 
-2011-09-29 04:05  robe
+2011-09-29 04:05  Regina Obe <lr at pcorp.us>
 
-	* add KNN gist and srid =0 breaking change. Add Vizzuality to
-	  corporate sponsors
+	* [r7915] doc/introduction.xml, doc/release_notes.xml: add KNN gist
+	  and srid =0 breaking change. Add Vizzuality to corporate sponsors
 
-2011-09-28 23:59  pramsey
+2011-09-28 23:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove gserialized.h define file (actual #define is now
-	  temporarily in liblwgeom.h)
+	* [r7914] libpgcommon/gserialized.h: Remove gserialized.h define
+	  file (actual #define is now temporarily in liblwgeom.h)
 
-2011-09-28 23:58  pramsey
+2011-09-28 23:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove GSERIALIZED_ON from .sql files.
+	* [r7913] liblwgeom/liblwgeom.h.in, libpgcommon/gserialized.h,
+	  libpgcommon/lwgeom_pg.h, postgis/geography.h,
+	  postgis/geography.sql.in.c, postgis/legacy.sql.in.c,
+	  postgis/legacy_compatibility_layer.sql.in.c,
+	  postgis/postgis.sql.in.c, postgis/sqldefines.h.in,
+	  raster/rt_pg/rt_pg.h, raster/rt_pg/rtpostgis.sql.in.c: Remove
+	  GSERIALIZED_ON from .sql files.
 
-2011-09-28 23:38  pramsey
+2011-09-28 23:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change "no SRID" SRID to 0 (#286)
+	* [r7912] doc/extras_topology.xml, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_geodetic.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/examples, liblwgeom/liblwgeom.h.in, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_geos_split.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwout_wkb.c, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_transform.c,
+	  regress/out_geometry.sql, regress/out_geometry_expected,
+	  regress/regress_proj.sql, regress/regress_proj_expected,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly_expected: Change "no SRID" SRID to 0
+	  (#286)
 
-2011-09-28 21:56  robe
+2011-09-28 21:56  Regina Obe <lr at pcorp.us>
 
-	* document box distance KNN operator
+	* [r7911] doc/reference_operator.xml: document box distance KNN
+	  operator
 
-2011-09-28 15:06  pramsey
+2011-09-28 15:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the <-> operator return linear not square units, to match
-	  the <#> operator.
+	* [r7910] postgis/gserialized_gist_2d.c: Make the <-> operator
+	  return linear not square units, to match the <#> operator.
 
-2011-09-28 15:04  pramsey
+2011-09-28 15:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add box-wise ORDER BY for KNN (#701)
+	* [r7909] postgis/gserialized_gist_2d.c, postgis/postgis.sql.in.c:
+	  Add box-wise ORDER BY for KNN (#701)
 
-2011-09-28 10:13  strk
+2011-09-28 10:13  Sandro Santilli <strk at keybit.net>
 
-	* Image generator also uses LWDEBUG macros... how popular !
+	* [r7908] doc/html/image_src/generator.c: Image generator also uses
+	  LWDEBUG macros... how popular !
 
-2011-09-28 10:05  strk
+2011-09-28 10:05  Sandro Santilli <strk at keybit.net>
 
-	* Move LWDEBUG macros in a new lwgeom_log.h header file (see #1220)
+	* [r7907] liblwgeom/Makefile.in, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h.in,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwgeom_geos.c, liblwgeom/lwgeom_geos_clean.c,
+	  liblwgeom/lwgeom_log.h, liblwgeom/lwgeom_transform.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt_lex.c,
+	  liblwgeom/lwin_wkt_lex.l, liblwgeom/lwin_wkt_parse.c,
+	  liblwgeom/lwin_wkt_parse.y, liblwgeom/lwline.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwout_wkb.c,
+	  liblwgeom/lwout_wkt.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwpsurface.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwspheroid.c, liblwgeom/lwtin.c, liblwgeom/lwtree.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/lwutil.c, liblwgeom/measures.c,
+	  liblwgeom/measures3d.c, liblwgeom/ptarray.c,
+	  libpgcommon/lwgeom_transform.c, loader/pgsql2shp-core.c,
+	  loader/shp2pgsql-core.c, postgis/geography_measurement.c,
+	  postgis/lwgeom_debug.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_lrs.c, postgis/lwgeom_rtree.c,
+	  postgis/lwgeom_spheroid.c: Move LWDEBUG macros in a new
+	  lwgeom_log.h header file (see #1220)
 	  
 	  Update all implementation files accordingly.
 	  Fix some misuses out of liblwgeom.
 	  Add missing copyright notices in a few files.
 
-2011-09-27 23:29  robe
+2011-09-27 23:29  Regina Obe <lr at pcorp.us>
 
-	* merge postgis and raster into a single extension called
-	  "postgis", revise postgis_topology control to depend on this new
-	  extension
+	* [r7906] extensions/postgis, extensions/postgis/META.json,
+	  extensions/postgis/Makefile, extensions/postgis/postgis.control,
+	  extensions/postgis/postgis_core.control, extensions/postgis_core,
+	  extensions/postgis_raster,
+	  extensions/postgis_topology/postgis_topology.control: merge
+	  postgis and raster into a single extension called "postgis",
+	  revise postgis_topology control to depend on this new extension
 
-2011-09-27 23:28  robe
+2011-09-27 23:28  Regina Obe <lr at pcorp.us>
 
-	* more drop of functions that changed signature
+	* [r7905] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis_drop.sql.in.c: more drop of functions that
+	  changed signature
 
-2011-09-27 17:35  robe
+2011-09-27 17:35  Regina Obe <lr at pcorp.us>
 
-	* clarify current implementation is centroid of box not the
-	  geometry.
+	* [r7904] doc/reference_operator.xml: clarify current
+	  implementation is centroid of box not the geometry.
 
-2011-09-27 15:33  strk
+2011-09-27 15:33  Sandro Santilli <strk at keybit.net>
 
-	* Drop duplicated geometry_out definition
+	* [r7903] postgis/postgis.sql.in.c: Drop duplicated geometry_out
+	  definition
 
-2011-09-27 05:09  robe
+2011-09-27 05:09  Regina Obe <lr at pcorp.us>
 
-	* correct the description on semantics of knn operator
+	* [r7902] doc/reference_operator.xml: correct the description on
+	  semantics of knn operator
 
-2011-09-27 03:40  dustymugs
+2011-09-27 03:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed ST_Intersects(raster, int, raster, int) version of two
-	  raster ST_Intersects.
+	* [r7901] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/Makefile.in: Removed ST_Intersects(raster, int,
+	  raster, int) version of two raster ST_Intersects.
 	  
 	  Associated ticket is #1212
 
-2011-09-27 03:15  robe
+2011-09-27 03:15  Regina Obe <lr at pcorp.us>
 
-	* wrap examples in cdata tags so don't break parser
+	* [r7900] doc/reference_operator.xml: wrap examples in cdata tags
+	  so don't break parser
 
-2011-09-27 02:58  robe
+2011-09-27 02:58  Regina Obe <lr at pcorp.us>
 
-	* document new knn gist operator -- example mostly plagiarized from
-	  Paul's postgis-devel example with addition of care consideration
-	  of safe casting and SQL formatting. I know I'm getting lazy in my
-	  old age.
+	* [r7899] doc/reference_operator.xml: document new knn gist
+	  operator -- example mostly plagiarized from Paul's postgis-devel
+	  example with addition of care consideration of safe casting and
+	  SQL formatting. I know I'm getting lazy in my old age.
 
-2011-09-27 02:22  robe
+2011-09-27 02:22  Regina Obe <lr at pcorp.us>
 
-	* preliminary work on drop deprecated functions. Not tied into
-	  anything yet.
+	* [r7898] raster/rt_pg/rtpostgis_drop.sql.in.c: preliminary work on
+	  drop deprecated functions. Not tied into anything yet.
 
-2011-09-27 02:09  robe
+2011-09-27 02:09  Regina Obe <lr at pcorp.us>
 
-	* get rid of obslete protos for ST_Intersects and revise
-	  description to describe new semantics of raster st_intersects
+	* [r7897] doc/reference_raster.xml: get rid of obslete protos for
+	  ST_Intersects and revise description to describe new semantics of
+	  raster st_intersects
 
-2011-09-27 01:55  robe
+2011-09-27 01:55  Regina Obe <lr at pcorp.us>
 
-	* put in svn keywords and forcce to LF
+	* [r7896] postgis/postgis_drop.sql.in.c: put in svn keywords and
+	  forcce to LF
 
-2011-09-26 21:05  pramsey
+2011-09-26 21:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Wrap <-> distance ordering into a PgSQL 9.1+ block.
+	* [r7895] postgis/postgis.sql.in.c: Wrap <-> distance ordering into
+	  a PgSQL 9.1+ block.
 
-2011-09-26 20:39  pramsey
+2011-09-26 20:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for KNN-GiST ops. First cut only, much testing
+	* [r7894] postgis/gserialized_gist_2d.c, postgis/postgis.sql.in.c:
+	  Add support for KNN-GiST ops. First cut only, much testing
 	  required. (#701)
 
-2011-09-26 14:25  strk
+2011-09-26 14:25  Sandro Santilli <strk at keybit.net>
 
-	* Don't use the same name for input parameter and returned table
-	  description.
+	* [r7893] topology/test/regress/st_createtopogeo.sql: Don't use the
+	  same name for input parameter and returned table description.
 	  
 	  Hopefully fixes ticket #1210 [RT-SIGTA]
 
-2011-09-26 06:29  robe
+2011-09-26 06:29  Regina Obe <lr at pcorp.us>
 
-	* document ST_Intersects(rasta,rastb,nbanda,nbandb) -- left out
+	* [r7892] doc/reference_raster.xml: document
+	  ST_Intersects(rasta,rastb,nbanda,nbandb) -- left out
 	  ST_Intersects(rasta,nbanda,rastb,nbandb) - that one offends my
 	  senses.
 
-2011-09-25 20:37  robe
+2011-09-25 20:37  Regina Obe <lr at pcorp.us>
 
-	* add missing geos flag to let it make check under mingw
+	* [r7891] raster/test/core/Makefile.in: add missing geos flag to
+	  let it make check under mingw
 
-2011-09-25 14:48  dustymugs
+2011-09-25 14:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed unnecessary typedef for fmin and fmax on windows.
-	  Possible fix to #1207.
+	* [r7890] raster/rt_core/rt_api.h: Removed unnecessary typedef for
+	  fmin and fmax on windows. Possible fix to #1207.
 
-2011-09-24 19:05  dustymugs
+2011-09-24 19:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Tweaks to makefiles due to linker symbol errors in OSX. Hopefully
-	  this can also resolve the issue with #1207.
+	* [r7889] raster/rt_core/Makefile.in, raster/rt_core/rt_api.h,
+	  raster/test/core/Makefile.in: Tweaks to makefiles due to linker
+	  symbol errors in OSX. Hopefully this can also resolve the issue
+	  with #1207.
 
-2011-09-23 22:00  robe
+2011-09-23 22:00  Regina Obe <lr at pcorp.us>
 
-	* Add killer sed command to create a topology upgrade minor script
-	  from topology.sql. Also change release version to 2.0.0a1 since
-	  we haven't released yet. This will build a script to upgrade our
+	* [r7888] extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: Add killer
+	  sed command to create a topology upgrade minor script from
+	  topology.sql. Also change release version to 2.0.0a1 since we
+	  haven't released yet. This will build a script to upgrade our
 	  mislabeled 2.0.0 to 2.0.0a1
 
-2011-09-23 19:58  robe
+2011-09-23 19:58  Regina Obe <lr at pcorp.us>
 
-	* #1209: redundant constraint chk_statefp on loading edges.
+	* [r7887] extras/tiger_geocoder/tiger_2010/tiger_loader.sql: #1209:
+	  redundant constraint chk_statefp on loading edges.
 
-2011-09-23 19:21  strk
+2011-09-23 19:21  Sandro Santilli <strk at keybit.net>
 
-	* Update topology functions status. We've completed the SQL/MM set
-	  !
+	* [r7886] topology/topology.sql.in.c: Update topology functions
+	  status. We've completed the SQL/MM set !
 
-2011-09-23 19:21  strk
+2011-09-23 19:21  Sandro Santilli <strk at keybit.net>
 
-	* Implement topology.ST_CreateTopoGeo (#1190) [RT-SIGTA]
+	* [r7885] doc/extras_topology.xml, topology/sql/sqlmm.sql,
+	  topology/test/Makefile,
+	  topology/test/regress/st_createtopogeo.sql,
+	  topology/test/regress/st_createtopogeo_expected: Implement
+	  topology.ST_CreateTopoGeo (#1190) [RT-SIGTA]
 	  
 	  Includes regress testing and documentation update
 
-2011-09-22 15:07  dustymugs
+2011-09-22 15:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Further tweaks to rt_raster_gdal_rasterize to correctly handle
+	* [r7884] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_intersects.sql,
+	  raster/test/regress/rt_intersects_expected,
+	  raster/test/regress/rt_spatial_relationship.sql,
+	  raster/test/regress/rt_spatial_relationship_expected: Further
+	  tweaks to rt_raster_gdal_rasterize to correctly handle
 	  auto-computed extents of multipoints. Addition of ST_Intersects
 	  for two rasters. Refactored the one raster and one geometry
 	  version of ST_Intersects.
 	  
 	  Associated ticket is #1176
 
-2011-09-22 14:06  strk
+2011-09-22 14:06  Sandro Santilli <strk at keybit.net>
 
-	* Make face creation order predictable in ST_AddEdgeNewFaces
-	  (#1205)
+	* [r7883] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: Make face
+	  creation order predictable in ST_AddEdgeNewFaces (#1205)
 	  
 	  Always create the face on the right first [RT-SIGTA]
 
-2011-09-22 09:14  strk
+2011-09-22 09:14  Sandro Santilli <strk at keybit.net>
 
-	* Add notes and TODO items about the edge-adding functions
-	  [RT-SIGTA]
+	* [r7882] topology/sql/sqlmm.sql: Add notes and TODO items about
+	  the edge-adding functions [RT-SIGTA]
 	  
 	  See ticket #1205
 
-2011-09-22 07:22  strk
+2011-09-22 07:22  Sandro Santilli <strk at keybit.net>
 
-	* Reduce noice produced by ST_AddEdgeModFace at NOTICE level
-	  [RT-SIGTA]
+	* [r7881] topology/sql/sqlmm.sql: Reduce noice produced by
+	  ST_AddEdgeModFace at NOTICE level [RT-SIGTA]
 
-2011-09-21 10:34  strk
+2011-09-21 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Don't wrap prepared geom implementation in a conditional macro
+	* [r7880] postgis/lwgeom_geos_prepared.c: Don't wrap prepared geom
+	  implementation in a conditional macro
 	  
 	  These kind of full-disabling should be done at Makefile level...
 
-2011-09-21 09:50  strk
+2011-09-21 09:50  Sandro Santilli <strk at keybit.net>
 
-	* Add header guards to geos headers, move GEOS_PREPARED define to
-	  the implementation file, add missing copyright header.
+	* [r7879] postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
+	  postgis/lwgeom_geos_prepared.h, postgis/profile.h: Add header
+	  guards to geos headers, move GEOS_PREPARED define to the
+	  implementation file, add missing copyright header.
 
-2011-09-21 07:32  strk
+2011-09-21 07:32  Sandro Santilli <strk at keybit.net>
 
-	* Make RemEdgeModFace symmetric to AddEdgeModFace about face
-	  retention
+	* [r7878] doc/extras_topology.xml, topology/sql/sqlmm.sql,
+	  topology/test/regress/st_remedgemodface_expected: Make
+	  RemEdgeModFace symmetric to AddEdgeModFace about face retention
 	  
 	  Save the face on the right, so that running:
 	  ST_RemEdgeModFace(name, ST_AddEdgeModFace(name, ...))
 	  ... will not modify the topology.
 	  [RT-SIGTA]
 
-2011-09-21 03:29  robe
+2011-09-21 03:29  Regina Obe <lr at pcorp.us>
 
-	* move args to same line as func so extensions unpackaged adds them
-	  correctly will ahve to come up with a better way of doing this.
+	* [r7877] topology/sql/gml.sql,
+	  topology/sql/manage/CopyTopology.sql: move args to same line as
+	  func so extensions unpackaged adds them correctly will ahve to
+	  come up with a better way of doing this.
 
-2011-09-21 03:28  robe
+2011-09-21 03:28  Regina Obe <lr at pcorp.us>
 
-	* makr postgis_core as required. Admittedly this will go away once
-	  we merge postgis_core and raster. Doing this gets rid of issues
-	  with raster not being able to find geometry etc if installed in
+	* [r7876] extensions/postgis_raster/postgis_raster.control: makr
+	  postgis_core as required. Admittedly this will go away once we
+	  merge postgis_core and raster. Doing this gets rid of issues with
+	  raster not being able to find geometry etc if installed in
 	  separate schema from postgis_core
 
-2011-09-21 03:23  robe
+2011-09-21 03:23  Regina Obe <lr at pcorp.us>
 
-	* more changes to properly utilize extenions model, 1 remove create
+	* [r7875] extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/postgis_topology.control: more
+	  changes to properly utilize extenions model, 1 remove create
 	  schema since extesnion creates it if not present, in control file
 	  designate postgis_core is required so create adds it to search
 	  path, more cleanup for unpackaged
 
-2011-09-21 02:14  robe
+2011-09-21 02:14  Regina Obe <lr at pcorp.us>
 
-	* pick up table, type, trigger, and schemas in unlogged add
+	* [r7874] extensions/postgis_topology/Makefile: pick up table,
+	  type, trigger, and schemas in unlogged add
 
-2011-09-20 16:47  robe
+2011-09-20 16:47  Regina Obe <lr at pcorp.us>
 
-	* get rid of linebreaks in function arg list so unpackaged builder
-	  works, fix logical error in sed expression
+	* [r7873] extensions/postgis_topology/Makefile,
+	  topology/sql/gml.sql: get rid of linebreaks in function arg list
+	  so unpackaged builder works, fix logical error in sed expression
 
-2011-09-20 15:49  robe
+2011-09-20 15:49  Regina Obe <lr at pcorp.us>
 
-	* preliminary logic to build install from unpackaged file
+	* [r7872] extensions/postgis_topology/Makefile: preliminary logic
+	  to build install from unpackaged file
 
-2011-09-20 15:21  strk
+2011-09-20 15:21  Sandro Santilli <strk at keybit.net>
 
-	* Implement ST_RemEdgeModFace (#1189) [RT-SIGTA]
+	* [r7871] doc/extras_topology.xml, topology/sql/sqlmm.sql,
+	  topology/test/Makefile,
+	  topology/test/regress/st_remedgemodface.sql,
+	  topology/test/regress/st_remedgemodface_expected: Implement
+	  ST_RemEdgeModFace (#1189) [RT-SIGTA]
 	  
 	  Include regress testing and documentation.
 
-2011-09-19 21:28  dustymugs
+2011-09-19 21:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* additional code cleanup of rt_raster_gdal_rasterize
+	* [r7870] raster/rt_core/rt_api.c: additional code cleanup of
+	  rt_raster_gdal_rasterize
 
-2011-09-19 16:53  strk
+2011-09-19 16:53  Sandro Santilli <strk at keybit.net>
 
-	* Have ST_RemEdgeNewFace return NULL when no face is created
-	  [RT-SIGTA]
+	* [r7869] doc/extras_topology.xml, topology/sql/sqlmm.sql,
+	  topology/test/regress/st_remedgenewface_expected: Have
+	  ST_RemEdgeNewFace return NULL when no face is created [RT-SIGTA]
 	  
 	  This is to match the ISO spec more closely. Docs and regress test
 	  updated.
 
-2011-09-19 14:17  strk
+2011-09-19 14:17  Sandro Santilli <strk at keybit.net>
 
-	* Fix ST_Estimated_Extent by correctly interpret histogram box
-	  (#1200)
+	* [r7868] postgis/geometry_gist_selectivity.c: Fix
+	  ST_Estimated_Extent by correctly interpret histogram box (#1200)
 
-2011-09-19 06:40  strk
+2011-09-19 06:40  Sandro Santilli <strk at keybit.net>
 
-	* TopologySummary: do not count the universe face in the face count
+	* [r7867] topology/sql/manage/TopologySummary.sql: TopologySummary:
+	  do not count the universe face in the face count
 
-2011-09-19 06:40  strk
+2011-09-19 06:40  Sandro Santilli <strk at keybit.net>
 
-	* ST_InitTopoGeo: use named argument, drop trailing space from
-	  return text
+	* [r7866] topology/sql/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected: ST_InitTopoGeo: use named
+	  argument, drop trailing space from return text
 
-2011-09-18 15:51  robe
+2011-09-18 15:51  Regina Obe <lr at pcorp.us>
 
-	* #1202 -- also fixed issue with when typ mod application fails
-	  (because of mixed geometries) to properly catch error and raise
-	  warning instead of throw error.
+	* [r7865] postgis/postgis.sql.in.c: #1202 -- also fixed issue with
+	  when typ mod application fails (because of mixed geometries) to
+	  properly catch error and raise warning instead of throw error.
 
-2011-09-18 15:04  robe
+2011-09-18 15:04  Regina Obe <lr at pcorp.us>
 
-	* fix typo in warning
+	* [r7864] postgis/postgis.sql.in.c: fix typo in warning
 
-2011-09-18 14:56  robe
+2011-09-18 14:56  Regina Obe <lr at pcorp.us>
 
-	* #1201 don't error out when populate_geometry_columns is called on
-	  an empty table, just provide warning and don't do anything.
-	  Exclude raster_columns from populate_geometry_columns inspection.
+	* [r7863] postgis/postgis.sql.in.c: #1201 don't error out when
+	  populate_geometry_columns is called on an empty table, just
+	  provide warning and don't do anything. Exclude raster_columns
+	  from populate_geometry_columns inspection.
 
-2011-09-17 19:59  pramsey
+2011-09-17 19:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* shp2pgsql gui wrong use of create spatial index (#1091)
+	* [r7862] loader/shp2pgsql-core.c: shp2pgsql gui wrong use of
+	  create spatial index (#1091)
 
-2011-09-17 07:58  strk
+2011-09-17 07:58  Sandro Santilli <strk at keybit.net>
 
-	* Typo in testcase label
+	* [r7861] topology/test/regress/st_remedgenewface.sql,
+	  topology/test/regress/st_remedgenewface_expected: Typo in
+	  testcase label
 
-2011-09-17 07:10  strk
+2011-09-17 07:10  Sandro Santilli <strk at keybit.net>
 
-	* Typo
+	* [r7860] topology/sql/sqlmm.sql: Typo
 
-2011-09-17 06:58  strk
+2011-09-17 06:58  Sandro Santilli <strk at keybit.net>
 
-	* Minor inline documentation updates
+	* [r7859] topology/sql/sqlmm.sql, topology/topology.sql.in.c: Minor
+	  inline documentation updates
 
-2011-09-17 06:46  strk
+2011-09-17 06:46  Sandro Santilli <strk at keybit.net>
 
-	* Implement ST_RemEdgeNewFace (#1188) [RT-SIGTA]
+	* [r7858] doc/extras_topology.xml, topology/sql/sqlmm.sql,
+	  topology/test/Makefile, topology/test/cache_geometries.sql,
+	  topology/test/regress/st_remedgenewface.sql,
+	  topology/test/regress/st_remedgenewface_expected: Implement
+	  ST_RemEdgeNewFace (#1188) [RT-SIGTA]
 	  
 	  Includes regress testing and documentation.
 
-2011-09-16 13:32  dustymugs
+2011-09-16 13:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* fixups and code cleanups for the rt_raster_gdal_rasterize to
-	  better handle point and linestring geometries
+	* [r7857] raster/rt_core/rt_api.c: fixups and code cleanups for the
+	  rt_raster_gdal_rasterize to better handle point and linestring
+	  geometries
 
-2011-09-15 20:43  robe
+2011-09-15 20:43  Regina Obe <lr at pcorp.us>
 
-	* more cleanup and put in logic to also install in database help
-	  descriptors
+	* [r7856] extensions/postgis_core/Makefile,
+	  extensions/postgis_raster/META.json,
+	  extensions/postgis_raster/Makefile,
+	  extensions/postgis_raster/all.sql,
+	  extensions/postgis_topology/META.json,
+	  extensions/postgis_topology/Makefile: more cleanup and put in
+	  logic to also install in database help descriptors
 
-2011-09-15 20:05  robe
+2011-09-15 20:05  Regina Obe <lr at pcorp.us>
 
-	* fix invalid st_summarystats proto
+	* [r7855] doc/reference_raster.xml: fix invalid st_summarystats
+	  proto
 
-2011-09-15 18:35  robe
+2011-09-15 18:35  Regina Obe <lr at pcorp.us>
 
-	* now topology installs can get rid of error note.
+	* [r7854] extensions/README: now topology installs can get rid of
+	  error note.
 
-2011-09-15 18:33  robe
+2011-09-15 18:33  Regina Obe <lr at pcorp.us>
 
-	* postgis_topology extension now installing right. Had to get rid
+	* [r7853] extensions/postgis_core/META.json,
+	  extensions/postgis_topology/META.json,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/all.sql, topology/topology.sql.in.c:
+	  postgis_topology extension now installing right. Had to get rid
 	  of ALTER TABLE .. hasz and merge it into the CREATE TABLE since
 	  that was the culprit causing extension install error
 
-2011-09-15 13:57  robe
-
-	* more cleanup -- this time no more errors when installing
-
-2011-09-15 08:40  robe
-
-	* Support for PostgreSQL 9.1 CREATE EXTENSION syntax
+2011-09-15 13:57  Regina Obe <lr at pcorp.us>
+
+	* [r7852] extensions/postgis_core/META.json,
+	  extensions/postgis_core/Makefile,
+	  extensions/postgis_core/all.sql: more cleanup -- this time no
+	  more errors when installing
+
+2011-09-15 08:40  Regina Obe <lr at pcorp.us>
+
+	* [r7851] extensions, extensions/README, extensions/postgis_core,
+	  extensions/postgis_core/META.json,
+	  extensions/postgis_core/Makefile,
+	  extensions/postgis_core/all.sql, extensions/postgis_core/doc,
+	  extensions/postgis_core/doc/postgis.md,
+	  extensions/postgis_core/postgis_core.control,
+	  extensions/postgis_core/sql, extensions/postgis_core/sql_bits,
+	  extensions/postgis_raster, extensions/postgis_raster/META.json,
+	  extensions/postgis_raster/Makefile,
+	  extensions/postgis_raster/all.sql, extensions/postgis_raster/doc,
+	  extensions/postgis_raster/doc/postgis.md,
+	  extensions/postgis_raster/postgis_raster.control,
+	  extensions/postgis_raster/sql,
+	  extensions/postgis_raster/sql_bits, extensions/postgis_topology,
+	  extensions/postgis_topology/META.json,
+	  extensions/postgis_topology/Makefile,
+	  extensions/postgis_topology/all.sql,
+	  extensions/postgis_topology/doc,
+	  extensions/postgis_topology/doc/postgis.md,
+	  extensions/postgis_topology/postgis_topology.control,
+	  extensions/postgis_topology/sql,
+	  extensions/postgis_topology/sql_bits: Support for PostgreSQL 9.1
+	  CREATE EXTENSION syntax
 
-2011-09-14 15:37  robe
+2011-09-14 15:37  Regina Obe <lr at pcorp.us>
 
-	* change & to html equivalent entity
+	* [r7850] doc/extras_topology.xml: change & to html equivalent
+	  entity
 
-2011-09-14 15:24  robe
+2011-09-14 15:24  Regina Obe <lr at pcorp.us>
 
-	* provide real world examples of how to use CreateTopoGeom
+	* [r7849] doc/extras_topology.xml: provide real world examples of
+	  how to use CreateTopoGeom
 
-2011-09-14 14:55  robe
+2011-09-14 14:55  Regina Obe <lr at pcorp.us>
 
-	* more fixes
+	* [r7848] doc/extras_tigergeocoder.xml: more fixes
 
-2011-09-14 14:51  robe
+2011-09-14 14:51  Regina Obe <lr at pcorp.us>
 
-	* put in new timings. After speed fix loading is 3 times faster
+	* [r7847] doc/extras_tigergeocoder.xml: put in new timings. After
+	  speed fix loading is 3 times faster
 
-2011-09-14 14:02  robe
+2011-09-14 14:02  Regina Obe <lr at pcorp.us>
 
-	* fix typo and create another link reference
+	* [r7846] doc/extras_tigergeocoder.xml: fix typo and create another
+	  link reference
 
-2011-09-14 12:14  pracine
+2011-09-14 12:14  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Commented some queries so that the file can be executed to load
-	  the functions.
+	* [r7845] raster/scripts/plpgsql/st_mapalgebra.sql: Commented some
+	  queries so that the file can be executed to load the functions.
 
-2011-09-14 07:02  robe
+2011-09-14 07:02  Regina Obe <lr at pcorp.us>
 
-	* drop populate_geometry_columns version that just takes oid. Has
-	  bene replaced with versoin that takes default arg use_typmod
+	* [r7844] postgis/postgis_drop.sql.in.c: drop
+	  populate_geometry_columns version that just takes oid. Has bene
+	  replaced with versoin that takes default arg use_typmod
 
-2011-09-13 18:52  strk
+2011-09-13 18:52  Sandro Santilli <strk at keybit.net>
 
-	* Re-enable accidentally disabled prepared geoms. Fixes bug #1165.
+	* [r7843] postgis/lwgeom_geos.c: Re-enable accidentally disabled
+	  prepared geoms. Fixes bug #1165.
 
-2011-09-13 18:47  chodgson
+2011-09-13 18:47  Chris Hodgson <chodgson at refractions.net>
 
-	* Added some diagrams to the st_overlaps docmentation
+	* [r7842] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_overlaps01.wkt,
+	  doc/html/image_src/st_overlaps02.wkt,
+	  doc/html/image_src/st_overlaps03.wkt, doc/reference_measure.xml:
+	  Added some diagrams to the st_overlaps docmentation
 
-2011-09-13 03:51  robe
+2011-09-13 03:51  Regina Obe <lr at pcorp.us>
 
-	* fix for #1158 can't compile 8.4 under mingw windows
+	* [r7841] postgis/Makefile.in, raster/rt_pg/Makefile.in: fix for
+	  #1158 can't compile 8.4 under mingw windows
 
-2011-09-12 16:02  strk
+2011-09-12 16:02  Sandro Santilli <strk at keybit.net>
 
-	* Handle db initialization errors earlier
+	* [r7840] regress/run_test: Handle db initialization errors earlier
 
-2011-09-12 04:56  robe
+2011-09-12 04:56  Regina Obe <lr at pcorp.us>
 
-	* make topoelementarray examples make more sense
+	* [r7839] doc/extras_topology.xml: make topoelementarray examples
+	  make more sense
 
-2011-09-12 04:44  robe
+2011-09-12 04:44  Regina Obe <lr at pcorp.us>
 
-	* put in more description about what type id means
+	* [r7838] doc/extras_topology.xml: put in more description about
+	  what type id means
 
-2011-09-11 02:42  robe
+2011-09-11 02:42  Regina Obe <lr at pcorp.us>
 
-	* Link several functions back to new Topology_Load_Tiger since that
-	  demonstrates use of these functions
+	* [r7837] doc/extras_topology.xml: Link several functions back to
+	  new Topology_Load_Tiger since that demonstrates use of these
+	  functions
 
-2011-09-10 14:09  robe
+2011-09-10 14:09  Regina Obe <lr at pcorp.us>
 
-	* minor wording changes and reference to configuration part of
+	* [r7836] doc/extras_tigergeocoder.xml, doc/installation.xml: minor
+	  wording changes and reference to configuration part of
 	  documentation
 
-2011-09-10 13:52  robe
+2011-09-10 13:52  Regina Obe <lr at pcorp.us>
 
-	* fix typo link to tiger topology loader
+	* [r7835] doc/extras_tigergeocoder.xml, doc/extras_topology.xml:
+	  fix typo link to tiger topology loader
 
-2011-09-10 12:43  strk
+2011-09-10 12:43  Sandro Santilli <strk at keybit.net>
 
-	* Fix "no ID for constraint linkedn: Create_Topology" error
+	* [r7834] doc/extras_tigergeocoder.xml: Fix "no ID for constraint
+	  linkedn: Create_Topology" error
 
-2011-09-10 11:49  strk
+2011-09-10 11:49  Sandro Santilli <strk at keybit.net>
 
-	* Honour DESTDIR in documentation Makefile. Patch by Bryce L
-	  Nordgren.
+	* [r7833] doc/Makefile.in: Honour DESTDIR in documentation
+	  Makefile. Patch by Bryce L Nordgren.
 	  
 	  See ticket #1184
 
-2011-09-10 06:43  robe
+2011-09-10 06:43  Regina Obe <lr at pcorp.us>
 
-	* Document tiger to postgis topology loader and revise scripts to
-	  install the new function. also some additional minor fixes
+	* [r7832] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: Document
+	  tiger to postgis topology loader and revise scripts to install
+	  the new function. also some additional minor fixes
 
-2011-09-10 05:35  robe
+2011-09-10 05:35  Regina Obe <lr at pcorp.us>
 
-	* save as UTF-8
+	* [r7831]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  save as UTF-8
 
-2011-09-10 05:11  robe
+2011-09-10 05:11  Regina Obe <lr at pcorp.us>
 
-	* Alas a load with no topology validation errors. Fix remaining
+	* [r7830]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  Alas a load with no topology validation errors. Fix remaining
 	  issues with missing loading of some edges of faces
 
-2011-09-10 02:49  robe
+2011-09-10 02:49  Regina Obe <lr at pcorp.us>
 
-	* get rid of superfluous junk
+	* [r7829]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  get rid of superfluous junk
 
-2011-09-09 14:47  robe
+2011-09-09 14:47  Regina Obe <lr at pcorp.us>
 
-	* example of how to get actual edge geometries
+	* [r7828] doc/extras_topology.xml: example of how to get actual
+	  edge geometries
 
-2011-09-09 14:06  robe
+2011-09-09 14:06  Regina Obe <lr at pcorp.us>
 
-	* revise to snap points to topology precision, also set edge
+	* [r7827]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  revise to snap points to topology precision, also set edge
 	  left/right face to 0 if null (world face). ValidateTopology now
 	  reports 25 errors instead of 484 errors (what it did before)
 
-2011-09-08 19:18  robe
+2011-09-08 19:18  Regina Obe <lr at pcorp.us>
 
-	* revise to transform to spatial reference system of target
+	* [r7826]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  revise to transform to spatial reference system of target
 	  topology
 
-2011-09-08 16:47  robe
+2011-09-08 16:47  Regina Obe <lr at pcorp.us>
 
-	* more changes to add missing edges
+	* [r7825]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  more changes to add missing edges
 
-2011-09-08 14:36  robe
+2011-09-08 14:36  Regina Obe <lr at pcorp.us>
 
-	* more minor corrections
+	* [r7824]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  more minor corrections
 
-2011-09-08 14:23  robe
+2011-09-08 14:23  Regina Obe <lr at pcorp.us>
 
-	* #1181 TopologySummary is broken causing ambiquous reference.
-	  Changed to have local variable be called var_topology_id so
-	  doesn't conflict with table column topology_id
+	* [r7823] topology/sql/manage/TopologySummary.sql: #1181
+	  TopologySummary is broken causing ambiquous reference. Changed to
+	  have local variable be called var_topology_id so doesn't conflict
+	  with table column topology_id
 
-2011-09-08 08:06  robe
+2011-09-08 08:06  Regina Obe <lr at pcorp.us>
 
-	* logic to load in edges marking those with orphaned next_left,
+	* [r7822]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  logic to load in edges marking those with orphaned next_left,
 	  next_right to -neg of itself
 
-2011-09-07 17:13  robe
+2011-09-07 17:13  Regina Obe <lr at pcorp.us>
 
-	* more typo corrections
+	* [r7821]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  more typo corrections
 
-2011-09-07 14:57  robe
+2011-09-07 14:57  Regina Obe <lr at pcorp.us>
 
-	* more typos
+	* [r7820]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  more typos
 
-2011-09-07 14:55  robe
+2011-09-07 14:55  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r7819]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  fix typo
 
-2011-09-07 14:54  robe
+2011-09-07 14:54  Regina Obe <lr at pcorp.us>
 
-	* more work on tiger topology loader -- revised to use temp table.
+	* [r7818] extras/tiger_geocoder/tiger_2010/topology/README,
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  more work on tiger topology loader -- revised to use temp table.
 
-2011-09-07 13:58  dustymugs
+2011-09-07 13:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Updated expected output due to change in message
+	* [r7817] raster/test/regress/rt_aspng_expected: Updated expected
+	  output due to change in message
 
-2011-09-06 21:01  robe
+2011-09-06 21:01  Regina Obe <lr at pcorp.us>
 
-	* correct some mistatements about export functions
+	* [r7816] doc/reference_raster.xml: correct some mistatements about
+	  export functions
 
-2011-09-06 20:10  dustymugs
+2011-09-06 20:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed ST_AsPNG to allow rasters with four bands as that becomes a
-	  RGBA PNG image.
+	* [r7815] raster/rt_pg/rtpostgis.sql.in.c: Fixed ST_AsPNG to allow
+	  rasters with four bands as that becomes a RGBA PNG image.
 
-2011-09-06 16:40  robe
+2011-09-06 16:40  Regina Obe <lr at pcorp.us>
 
-	* fix typos
+	* [r7814] doc/reference_raster.xml: fix typos
 
-2011-09-06 16:24  robe
+2011-09-06 16:24  Regina Obe <lr at pcorp.us>
 
-	* more examples
+	* [r7813] doc/html/images/st_mapalgebra01.png,
+	  doc/html/images/st_mapalgebra02.png, doc/reference_raster.xml:
+	  more examples
 
-2011-09-06 08:07  robe
+2011-09-06 08:07  Regina Obe <lr at pcorp.us>
 
-	* minor indentation fix
+	* [r7812] doc/reference_raster.xml: minor indentation fix
 
-2011-09-06 08:07  robe
+2011-09-06 08:07  Regina Obe <lr at pcorp.us>
 
-	* document st_resample - still need to put in examples
+	* [r7811] doc/reference_raster.xml: document st_resample - still
+	  need to put in examples
 
-2011-09-06 07:25  robe
+2011-09-06 07:25  Regina Obe <lr at pcorp.us>
 
-	* get rid of transparency -- transparency turning to black in pdf
-	  format
+	* [r7810] doc/html/images/st_asraster01.png,
+	  doc/html/images/st_asraster02.png: get rid of transparency --
+	  transparency turning to black in pdf format
 
-2011-09-06 06:56  robe
+2011-09-06 06:56  Regina Obe <lr at pcorp.us>
 
-	* Add another example with pictures
+	* [r7809] doc/html/images/st_band01.png,
+	  doc/html/images/st_band02.png, doc/html/images/st_band03.png,
+	  doc/reference_raster.xml: Add another example with pictures
 
-2011-09-06 02:11  robe
+2011-09-06 02:11  Regina Obe <lr at pcorp.us>
 
-	* Move ST_AsRaster and ST_Band to raster contructor section
+	* [r7808] doc/extras_historytable.xml, doc/reference_raster.xml:
+	  Move ST_AsRaster and ST_Band to raster contructor section
 
-2011-09-05 15:44  robe
+2011-09-05 15:44  Regina Obe <lr at pcorp.us>
 
-	* revmoe history table out of docs for now
+	* [r7806] doc/extras.xml: revmoe history table out of docs for now
 
-2011-09-04 02:50  robe
+2011-09-04 02:50  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r7804] doc/postgis.xml: fix typo
 
-2011-09-02 19:46  robe
+2011-09-02 19:46  Regina Obe <lr at pcorp.us>
 
-	* Put in creative commons license stamp
+	* [r7803] doc/html/images/ccbysa.png, doc/postgis.xml: Put in
+	  creative commons license stamp
 
-2011-09-02 01:54  dustymugs
+2011-09-02 01:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added optimizations and shortcuts for
+	* [r7802] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Added optimizations and shortcuts for
 	  rt_band_get_quantiles_stream
 
-2011-09-01 14:58  robe
+2011-09-01 14:58  Regina Obe <lr at pcorp.us>
 
-	* revise to return first part of street number e.g. 112-345 -> 112
+	* [r7801]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  revise to return first part of street number e.g. 112-345 -> 112
 
-2011-09-01 12:35  robe
+2011-09-01 12:35  Regina Obe <lr at pcorp.us>
 
-	* revise so works under 8.4 evidentially in 8.4 INTO USING clauses
+	* [r7800]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  revise so works under 8.4 evidentially in 8.4 INTO USING clauses
 	  are not interchangeable but they are in later versions
 
-2011-09-01 11:41  robe
+2011-09-01 11:41  Regina Obe <lr at pcorp.us>
 
-	* fill in missing tag
+	* [r7799] doc/extras_tigergeocoder.xml: fill in missing tag
 
-2011-09-01 09:00  robe
+2011-09-01 09:00  Regina Obe <lr at pcorp.us>
 
-	* more finetuninng of street offset to consider non-straight tlids
+	* [r7798]
+	  extras/tiger_geocoder/tiger_2010/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress: more
+	  finetuninng of street offset to consider non-straight tlids
 
-2011-08-31 14:54  robe
+2011-08-31 14:54  Regina Obe <lr at pcorp.us>
 
-	* #1052 update doco to reflect change in behavior.
+	* [r7797] doc/extras_tigergeocoder.xml: #1052 update doco to
+	  reflect change in behavior.
 
-2011-08-31 14:53  robe
+2011-08-31 14:53  Regina Obe <lr at pcorp.us>
 
-	* #1052 -- instead of placing geocoded point at center line, offset
-	  it 10 meters to the correct odd/even (L / R utilizing addr.side
-	  field). May later change this to allow the user to specify the
-	  offset amount.
+	* [r7796]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1052 --
+	  instead of placing geocoded point at center line, offset it 10
+	  meters to the correct odd/even (L / R utilizing addr.side field).
+	  May later change this to allow the user to specify the offset
+	  amount.
 
-2011-08-31 07:06  strk
+2011-08-31 07:06  Sandro Santilli <strk at keybit.net>
 
-	* With libtool for loader/dumper there's no need to stage-install
-	  them
+	* [r7795] regress/Makefile.in, regress/run_test: With libtool for
+	  loader/dumper there's no need to stage-install them
 	  
 	  Fixes ticket #1177 [RT-SIGTA]
 
-2011-08-29 16:02  robe
+2011-08-29 16:02  Regina Obe <lr at pcorp.us>
 
-	* fill in missing protos for ST_AsRaster
+	* [r7794] doc/reference_raster.xml: fill in missing protos for
+	  ST_AsRaster
 
-2011-08-29 15:23  strk
+2011-08-29 15:23  Sandro Santilli <strk at keybit.net>
 
-	* Dynamically link loader and dumper to liblwgeom [RT-SIGTA]
+	* [r7793] loader/Makefile.in: Dynamically link loader and dumper to
+	  liblwgeom [RT-SIGTA]
 	  
 	  This reduces each of the 3 installed executable sizes by 547 Kb.
 
-2011-08-29 14:45  strk
+2011-08-29 14:45  Sandro Santilli <strk at keybit.net>
 
-	* Use libtool to link liblwgeom unit tester (helps testing the
-	  shared library)
+	* [r7792] liblwgeom/cunit/Makefile.in: Use libtool to link
+	  liblwgeom unit tester (helps testing the shared library)
 
-2011-08-27 17:16  dustymugs
+2011-08-27 17:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* fixed improperly commented-out RAISE DEBUG statement for
-	  AddRasterColumn function.
+	* [r7791] raster/rt_pg/rtpostgis.sql.in.c: fixed improperly
+	  commented-out RAISE DEBUG statement for AddRasterColumn function.
 	  
 	  Associated ticket is #1175.
 
-2011-08-26 14:47  dustymugs
+2011-08-26 14:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added solaris define for UNIX using patch provided by rroliver.
+	* [r7790] raster/rt_core/rt_api.h: Added solaris define for UNIX
+	  using patch provided by rroliver.
 	  
 	  Associated ticket is #1171.
 
-2011-08-26 00:04  dustymugs
+2011-08-26 00:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* Tweaked memory allocation in RASTER_quantileCoverage.
+	* [r7789] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Tweaked
+	  memory allocation in RASTER_quantileCoverage.
 
-2011-08-25 23:23  dustymugs
+2011-08-25 23:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed the function rt_band_get_summary_stats rt_core/rt_api.c to
-	  correctly handle the situation where a band's values are all
-	  nodata
+	* [r7788] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_asraster_expected: Fixed the function
+	  rt_band_get_summary_stats rt_core/rt_api.c to correctly handle
+	  the situation where a band's values are all nodata
 
-2011-08-25 18:39  dustymugs
+2011-08-25 18:39  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed "WITH OIDS" from raster table creation.
+	* [r7787] raster/rt_pg/rtpostgis.sql.in.c: Removed "WITH OIDS" from
+	  raster table creation.
 
-2011-08-25 18:18  dustymugs
+2011-08-25 18:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fix error of unknown symbol gidx_to_string when building with the
+	* [r7786] libpgcommon/gserialized_gist.c,
+	  libpgcommon/gserialized_gist.h, postgis/gserialized_gist_nd.c:
+	  Fix error of unknown symbol gidx_to_string when building with the
 	  flags --with-raster --enable-debug using patch
 	  gidx_to_string.patch provided by bnordgren.
 	  
 	  Associated ticket is #1161
 
-2011-08-25 14:44  dustymugs
+2011-08-25 14:44  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed the problem where having configure detect that GDAL has the
-	  GDALFPolygonize function does not cause the code to use
-	  GDALFPolygonize. This is due to the macro GDALFPOLYGONIZE not
-	  being set anywhere. So, it is now being set in raster_config.h.in
-	  and included in rt_core/rt_api.h. Had to update testapi.c as the
-	  geometries generated differ depending on whether or not
-	  GDALFPolygonize is used.
+	* [r7785] raster/raster_config.h.in, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rt_pg.h,
+	  raster/test/core/testapi.c: Fixed the problem where having
+	  configure detect that GDAL has the GDALFPolygonize function does
+	  not cause the code to use GDALFPolygonize. This is due to the
+	  macro GDALFPOLYGONIZE not being set anywhere. So, it is now being
+	  set in raster_config.h.in and included in rt_core/rt_api.h. Had
+	  to update testapi.c as the geometries generated differ depending
+	  on whether or not GDALFPolygonize is used.
 	  
 	  Associated ticket is #650
 
-2011-08-25 11:33  robe
+2011-08-25 11:33  Regina Obe <lr at pcorp.us>
 
-	* provide better example and images to complement. Also note that
+	* [r7784] doc/html/images/st_asraster01.png,
+	  doc/html/images/st_asraster02.png, doc/reference_raster.xml:
+	  provide better example and images to complement. Also note that
 	  ST_AsRaster doesn't yet work with newer geometries
 
-2011-08-24 22:31  pramsey
+2011-08-24 22:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added in gettext headers to allow compilation under osx with
-	  iconv
+	* [r7783] libpgcommon/Makefile.in: Added in gettext headers to
+	  allow compilation under osx with iconv
 
-2011-08-24 19:20  robe
+2011-08-24 19:20  Regina Obe <lr at pcorp.us>
 
-	* cleanup formatting a bit on ST_AsRaster example
+	* [r7782] doc/reference_raster.xml: cleanup formatting a bit on
+	  ST_AsRaster example
 
-2011-08-24 17:40  dustymugs
+2011-08-24 17:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added DESTDIR so that raster2pgsql.py is installed in the
-	  user-specified path
+	* [r7781] raster/scripts/python/Makefile.in: Added DESTDIR so that
+	  raster2pgsql.py is installed in the user-specified path
 
-2011-08-24 16:08  robe
+2011-08-24 16:08  Regina Obe <lr at pcorp.us>
 
-	* Provide some examples for using ST_AsRaster. This function is way
-	  cool.
+	* [r7780] doc/reference_raster.xml: Provide some examples for using
+	  ST_AsRaster. This function is way cool.
 
-2011-08-24 15:23  dustymugs
+2011-08-24 15:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Inclusion of missing ST_PixelWidth and ST_PixelHeight functions
-	  and regression tests.
+	* [r7779] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_pixelsize.sql,
+	  raster/test/regress/rt_pixelsize_expected: Inclusion of missing
+	  ST_PixelWidth and ST_PixelHeight functions and regression tests.
 	  
 	  Associated ticket is #928
 
-2011-08-23 22:41  dustymugs
+2011-08-23 22:41  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored ST_ValueCount and ST_ValuePercent to be a C function
-	  rather than a plpgsql function.
+	* [r7778] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c: Refactored ST_ValueCount and
+	  ST_ValuePercent to be a C function rather than a plpgsql
+	  function.
 
-2011-08-22 21:24  robe
+2011-08-22 21:24  Regina Obe <lr at pcorp.us>
 
-	* #997 put in correct codes for non-state us territories
+	* [r7775]
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql:
+	  #997 put in correct codes for non-state us territories
 
-2011-08-21 03:34  robe
+2011-08-21 03:34  Regina Obe <lr at pcorp.us>
 
-	* #1158 add proj flags to fix mingw test issue
+	* [r7774] raster/test/core/Makefile.in: #1158 add proj flags to fix
+	  mingw test issue
 
-2011-08-20 21:17  strk
+2011-08-20 21:17  Sandro Santilli <strk at keybit.net>
 
-	* Put PG_MODULE_MAGIC in raster and postgis source files rather
-	  than in libpgcommon. Should fix the mingw build. See ticket
-	  #1158.
+	* [r7773] libpgcommon/lwgeom_pg.c,
+	  postgis/lwgeom_functions_basic.c, raster/rt_pg/rt_pg.c: Put
+	  PG_MODULE_MAGIC in raster and postgis source files rather than in
+	  libpgcommon. Should fix the mingw build. See ticket #1158.
 
-2011-08-20 21:08  strk
+2011-08-20 21:08  Sandro Santilli <strk at keybit.net>
 
-	* Use PROJ cflags when building raster module (see #1158)
+	* [r7772] raster/rt_pg/Makefile.in: Use PROJ cflags when building
+	  raster module (see #1158)
 
-2011-08-20 17:51  dustymugs
+2011-08-20 17:51  Bborie Park <bkpark at ucdavis.edu>
 
-	* More fixups for the quantile coverage function. Fixes segfault
-	  that seems to only occur on OSX.
+	* [r7771] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/core/testapi.c, raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_quantile_expected: More fixups for the
+	  quantile coverage function. Fixes segfault that seems to only
+	  occur on OSX.
 
-2011-08-20 16:43  strk
+2011-08-20 16:43  Sandro Santilli <strk at keybit.net>
 
-	* Drop duplicated typedef [RT-SIGTA]
+	* [r7770] liblwgeom/liblwgeom.h.in: Drop duplicated typedef
+	  [RT-SIGTA]
 
-2011-08-20 15:55  strk
+2011-08-20 15:55  Sandro Santilli <strk at keybit.net>
 
-	* Install liblwgeom.h under a sensible location... [RT-SIGTA]
+	* [r7769] liblwgeom/Makefile.in: Install liblwgeom.h under a
+	  sensible location... [RT-SIGTA]
 
-2011-08-20 15:43  strk
+2011-08-20 15:43  Sandro Santilli <strk at keybit.net>
 
-	* Move gserialized_gist to libpgcommon fixing a circular dependency
-	  between libpgcommon and liblwgeom, put libpgcommon _after_
-	  liblwgeom in pg modules link lines, drop duplicated
-	  lwgeom_init_allocators and PG_MODULE_MAGIC from raster module
-	  (they are in libpgcommon already). Includes patch in #1161.
-	  [RT-SIGTA]
+	* [r7768] libpgcommon/Makefile.in, libpgcommon/gserialized_gist.c,
+	  libpgcommon/gserialized_gist.h, postgis/Makefile.in,
+	  postgis/gserialized_gist.c, postgis/gserialized_gist.h,
+	  postgis/gserialized_gist_nd.c, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rt_pg.c: Move gserialized_gist to libpgcommon fixing
+	  a circular dependency between libpgcommon and liblwgeom, put
+	  libpgcommon _after_ liblwgeom in pg modules link lines, drop
+	  duplicated lwgeom_init_allocators and PG_MODULE_MAGIC from raster
+	  module (they are in libpgcommon already). Includes patch in
+	  #1161. [RT-SIGTA]
 
-2011-08-20 00:54  dustymugs
+2011-08-20 00:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Corrected incorrect function usage
+	* [r7767] raster/rt_pg/rt_pg.c: Corrected incorrect function usage
 
-2011-08-19 22:57  dustymugs
+2011-08-19 22:57  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added forgotten explicit freeing of memory and some code cleanup
+	* [r7766] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Added
+	  forgotten explicit freeing of memory and some code cleanup
 
-2011-08-19 19:08  dustymugs
+2011-08-19 19:08  Bborie Park <bkpark at ucdavis.edu>
 
-	* Adds coverage table version of ST_Quantile and ST_ApproxQuantile.
-	  Function implemented using the algorithm discussed in
+	* [r7765] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_histogram_expected,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_quantile_expected: Adds coverage table
+	  version of ST_Quantile and ST_ApproxQuantile. Function
+	  implemented using the algorithm discussed in
 	  
 	  A One-Pass Space-Efficient Algorithm for Finding Quantiles (1995)
 	  by Rakesh Agrawal, Arun Swami
@@ -17335,487 +31041,724 @@
 	  Also refactored the regression test for rt_histogram due to
 	  unnecessary columns in output
 
-2011-08-19 14:04  dustymugs
+2011-08-19 14:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* Commit of patch provided by David Zwarg in #482 adding the
-	  functions ST_SetRotation, ST_Rotation, ST_PixelHeight and
-	  ST_PixelWidth.
+	* [r7763] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/create_rt_properties_test.sql,
+	  raster/test/regress/rt_georeference.sql,
+	  raster/test/regress/rt_georeference_expected,
+	  raster/test/regress/rt_rotation.sql,
+	  raster/test/regress/rt_rotation_expected: Commit of patch
+	  provided by David Zwarg in #482 adding the functions
+	  ST_SetRotation, ST_Rotation, ST_PixelHeight and ST_PixelWidth.
 	  
 	  Associated tickets are #482, #928, #929 and #936
 
-2011-08-19 10:12  strk
+2011-08-19 10:12  Sandro Santilli <strk at keybit.net>
 
-	* Include version in liblwgeom.h [RT-SIGTA]
+	* [r7762] .gitignore, configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/liblwgeom.h, liblwgeom/liblwgeom.h.in: Include version
+	  in liblwgeom.h [RT-SIGTA]
 	  
 	  Closes ticket #1164
 
-2011-08-19 09:34  strk
+2011-08-19 09:34  Sandro Santilli <strk at keybit.net>
 
-	* Drop (u)int32 and uchar in favor of C99 standard int types
-	  [RT-SIGTA]
+	* [r7761] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_in_wkb.c, liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_out_wkt.c,
+	  liblwgeom/cunit/cu_surface.c, liblwgeom/examples/unparser.c,
+	  liblwgeom/g_box.c, liblwgeom/g_serialized.c, liblwgeom/g_util.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/libtgeom.c, liblwgeom/libtgeom.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwgeom_geos.c, liblwgeom/lwgeom_geos_clean.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h, liblwgeom/lwline.c,
+	  liblwgeom/lwmcurve.c, liblwgeom/lwmline.c, liblwgeom/lwmpoint.c,
+	  liblwgeom/lwmpoly.c, liblwgeom/lwmsurface.c,
+	  liblwgeom/lwout_wkb.c, liblwgeom/lwout_wkt.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwpsurface.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwtin.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/lwutil.c, liblwgeom/ptarray.c,
+	  libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  loader/pgsql2shp-core.c, loader/shpopen.c, postgis/geography.h,
+	  postgis/geography_inout.c, postgis/gserialized_gist.c,
+	  postgis/gserialized_gist_2d.c, postgis/lwgeom_estimate.c,
+	  postgis/lwgeom_functions_analytic.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c, raster/rt_pg/rt_pg.c: Drop (u)int32 and
+	  uchar in favor of C99 standard int types [RT-SIGTA]
 	  
 	  This commit drops PostgreSQL references in liblwgeom.h (C_H
 	  define)
 	  and hopefully reduces the noise generated by custom symbols.
 
-2011-08-19 09:30  strk
+2011-08-19 09:30  Sandro Santilli <strk at keybit.net>
 
-	* Don't use problematic int types for no reason...
+	* [r7760] loader/shp2pgsql-core.c: Don't use problematic int types
+	  for no reason...
 
-2011-08-19 08:16  strk
+2011-08-19 08:16  Sandro Santilli <strk at keybit.net>
 
-	* Install liblwgeom on 'make install' [RT-SIGTA]
+	* [r7759] liblwgeom/Makefile.in: Install liblwgeom on 'make
+	  install' [RT-SIGTA]
 	  
 	  Uses liblwgeom.h as the API header for liblwgeom.
 
-2011-08-19 07:55  strk
+2011-08-19 07:55  Sandro Santilli <strk at keybit.net>
 
-	* Move SQL-exposed functions out of libpgcommon (#1163).
+	* [r7758] libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h, postgis/Makefile.in,
+	  postgis/lwgeom_transform.c: Move SQL-exposed functions out of
+	  libpgcommon (#1163).
 
-2011-08-16 13:19  robe
+2011-08-16 13:19  Regina Obe <lr at pcorp.us>
 
-	* more clarification of behavior change in 2.0 of bbox storage
+	* [r7757] doc/xsl/postgis_aggs_mm.xml.xsl: more clarification of
+	  behavior change in 2.0 of bbox storage
 
-2011-08-16 12:51  robe
+2011-08-16 12:51  Regina Obe <lr at pcorp.us>
 
-	* #1160: documentation clarification of behavior
+	* [r7755] doc/reference_operator.xml: #1160: documentation
+	  clarification of behavior
 
-2011-08-16 09:47  strk
+2011-08-16 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Move NO_*_VALUE from liblwgeom.h to liblwgeom_internal.h
+	* [r7754] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h:
+	  Move NO_*_VALUE from liblwgeom.h to liblwgeom_internal.h
 	  [RT-SIGTA]
 
-2011-08-16 09:25  strk
+2011-08-16 09:25  Sandro Santilli <strk at keybit.net>
 
-	* Move DIST_MAX and DIST_MIN from liblwgeom.h to
+	* [r7753] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h:
+	  Move DIST_MAX and DIST_MIN from liblwgeom.h to
 	  liblwgeom_internal.h (weird values, btw) [RT-SIGTA]
 
-2011-08-16 09:15  strk
+2011-08-16 09:15  Sandro Santilli <strk at keybit.net>
 
-	* Honour DISTDIR when installing liblwgeom. Drop the finish call as
-	  it may require root privileges on some systems [RT-SIGTA].
+	* [r7752] liblwgeom/Makefile.in: Honour DISTDIR when installing
+	  liblwgeom. Drop the finish call as it may require root privileges
+	  on some systems [RT-SIGTA].
 
-2011-08-15 22:43  dustymugs
+2011-08-15 22:43  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed unnecessary code from rt_band_get_summary_stats. Fixed
-	  incorrect comment for rt_band_get_value_count.
+	* [r7751] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Removed
+	  unnecessary code from rt_band_get_summary_stats. Fixed incorrect
+	  comment for rt_band_get_value_count.
 
-2011-08-15 11:36  strk
+2011-08-15 11:36  Sandro Santilli <strk at keybit.net>
 
-	* Use proper PROJ4 flags when linking against liblwgeom. See ticket
-	  #1158. [RT-SIGTA]
+	* [r7749] raster/rt_core/Makefile.in: Use proper PROJ4 flags when
+	  linking against liblwgeom. See ticket #1158. [RT-SIGTA]
 
-2011-08-14 19:47  strk
+2011-08-14 19:47  Sandro Santilli <strk at keybit.net>
 
-	* Fix for missing include directory on Mingw (#1158). Thanks Bryce
-	  Nordgren.
+	* [r7748] configure.ac: Fix for missing include directory on Mingw
+	  (#1158). Thanks Bryce Nordgren.
 
-2011-08-14 12:39  robe
+2011-08-14 12:39  Regina Obe <lr at pcorp.us>
 
-	* #1071: Logic to mark nodes that are contained in a face
+	* [r7747]
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  #1071: Logic to mark nodes that are contained in a face
 
-2011-08-14 12:32  robe
+2011-08-14 12:32  Regina Obe <lr at pcorp.us>
 
-	* #1071 - start work on tiger PostGIS topology loader
+	* [r7746] extras/tiger_geocoder/tiger_2010/topology,
+	  extras/tiger_geocoder/tiger_2010/topology/README,
+	  extras/tiger_geocoder/tiger_2010/topology/tiger_topology_loader.sql:
+	  #1071 - start work on tiger PostGIS topology loader
 
-2011-08-13 18:10  dustymugs
+2011-08-13 18:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* Consolidated various struct declarations from rt_api.c into
-	  rt_api.h as these structs are duplicatively redeclared in rt_pg.c
-	  and testapi.c
+	* [r7745] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Consolidated
+	  various struct declarations from rt_api.c into rt_api.h as these
+	  structs are duplicatively redeclared in rt_pg.c and testapi.c
 
-2011-08-13 10:06  strk
+2011-08-13 10:06  Sandro Santilli <strk at keybit.net>
 
-	* Second attempt at libtool usage. Seems better to me now.
+	* [r7744] configure.ac, doc/html/image_src/Makefile.in,
+	  liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  loader/Makefile.in, loader/cunit/Makefile.in,
+	  postgis/Makefile.in: Second attempt at libtool usage. Seems
+	  better to me now.
 	  PostGIS clients still all use the static version of the library.
 	  Libraries are not installed by default.
 	  [RT-SIGTA]
 
-2011-08-13 09:02  strk
+2011-08-13 09:02  Sandro Santilli <strk at keybit.net>
 
-	* Drop unused code
+	* [r7743] postgis/lwgeom_geos_prepared.c: Drop unused code
 
-2011-08-13 02:01  robe
+2011-08-13 02:01  Regina Obe <lr at pcorp.us>
 
-	* #1156 incorporate suggestions from forkandwait
+	* [r7742] extras/tiger_geocoder/tiger_2010/README: #1156
+	  incorporate suggestions from forkandwait
 
-2011-08-12 19:18  strk
+2011-08-12 19:18  Sandro Santilli <strk at keybit.net>
 
-	* Move lwproj_from_string from libpgcommon to liblwgeom [RT-SIGTA]
+	* [r7741] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom_transform.c, libpgcommon/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.h: Move lwproj_from_string from
+	  libpgcommon to liblwgeom [RT-SIGTA]
 
-2011-08-12 17:57  strk
+2011-08-12 17:57  Sandro Santilli <strk at keybit.net>
 
-	* liblwgeom/cunit also needs PROJ_CPPFLAGS
+	* [r7740] liblwgeom/cunit/Makefile.in: liblwgeom/cunit also needs
+	  PROJ_CPPFLAGS
 
-2011-08-12 17:55  strk
+2011-08-12 17:55  Sandro Santilli <strk at keybit.net>
 
-	* Rename make_project to lwproj_from_string, ready to be moved to
-	  liblwgeom [RT-SIGTA]
+	* [r7739] liblwgeom/lwgeom_transform.c,
+	  libpgcommon/lwgeom_transform.c, libpgcommon/lwgeom_transform.h,
+	  postgis/lwgeom_in_gml.c: Rename make_project to
+	  lwproj_from_string, ready to be moved to liblwgeom [RT-SIGTA]
 
-2011-08-12 17:42  strk
+2011-08-12 17:42  Sandro Santilli <strk at keybit.net>
 
-	* Even generator.c will need proper proj cflags now..
+	* [r7738] doc/html/image_src/Makefile.in: Even generator.c will
+	  need proper proj cflags now..
 
-2011-08-12 17:37  strk
+2011-08-12 17:37  Sandro Santilli <strk at keybit.net>
 
-	* loader also includes liblwgeom.h, thus wants PROJ cpp flags
+	* [r7737] loader/Makefile.in: loader also includes liblwgeom.h,
+	  thus wants PROJ cpp flags
 
-2011-08-12 17:33  strk
+2011-08-12 17:33  Sandro Santilli <strk at keybit.net>
 
-	* Use PROJ4 C flags, see if this makes Hudson happy.
+	* [r7736] libpgcommon/Makefile.in: Use PROJ4 C flags, see if this
+	  makes Hudson happy.
 
-2011-08-12 17:26  strk
+2011-08-12 17:26  Sandro Santilli <strk at keybit.net>
 
-	* Copyright review on lwgeom_pg.{c,h} files
+	* [r7735] libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h:
+	  Copyright review on lwgeom_pg.{c,h} files
 
-2011-08-12 17:25  strk
+2011-08-12 17:25  Sandro Santilli <strk at keybit.net>
 
-	* Make transformation and projection cache API available (ticket
-	  #1053)
+	* [r7734] .gitignore, GNUmakefile.in, configure.ac,
+	  liblwgeom/Makefile.in, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom_transform.c, libpgcommon,
+	  libpgcommon/Makefile.in, libpgcommon/common.h, libpgcommon/cunit,
+	  libpgcommon/cunit/Makefile.in, libpgcommon/gserialized.h,
+	  libpgcommon/lwgeom_pg.c, libpgcommon/lwgeom_pg.h,
+	  libpgcommon/lwgeom_transform.c, libpgcommon/lwgeom_transform.h,
+	  libpgcommon/pgsql_compat.h, postgis/Makefile.in,
+	  postgis/gserialized.h, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_pg.c, postgis/lwgeom_pg.h,
+	  postgis/lwgeom_transform.c, postgis/lwgeom_transform.h,
+	  postgis/pgsql_compat.h, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rt_pg.h, raster/rt_pg/rtpostgis.sql.in.c: Make
+	  transformation and projection cache API available (ticket #1053)
 
-2011-08-12 10:12  strk
+2011-08-12 10:12  Sandro Santilli <strk at keybit.net>
 
-	* Drop unused macros CARTESIAN and GEODETIC from liblwgeom.h
+	* [r7733] liblwgeom/liblwgeom.h: Drop unused macros CARTESIAN and
+	  GEODETIC from liblwgeom.h
 
-2011-08-12 10:11  strk
+2011-08-12 10:11  Sandro Santilli <strk at keybit.net>
 
-	* Snap and SharedPaths are both direct GEOS proxies, not extra
-	  [RT-SIGTA]
+	* [r7732] liblwgeom/liblwgeom.h: Snap and SharedPaths are both
+	  direct GEOS proxies, not extra [RT-SIGTA]
 
-2011-08-12 09:11  strk
+2011-08-12 09:11  Sandro Santilli <strk at keybit.net>
 
-	* Export lwgeom_sharedpaths to liblwgeom, and fix exception message
+	* [r7731] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_geos.c,
+	  postgis/Makefile.in, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos_sharedpaths.c, regress/sharedpaths_expected:
+	  Export lwgeom_sharedpaths to liblwgeom, and fix exception message
 	  [RT-SIGTA]
 
-2011-08-11 21:01  dustymugs
+2011-08-11 21:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rewrote the code for the coverage table versions of
-	  ST_SummaryStats and ST_Histogram. So instead of plpgsql, it is
-	  now in C within rt_pg/rt_pg.c
+	* [r7730] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c: Rewrote the code for the
+	  coverage table versions of ST_SummaryStats and ST_Histogram. So
+	  instead of plpgsql, it is now in C within rt_pg/rt_pg.c
 
-2011-08-11 16:35  robe
+2011-08-11 16:35  Regina Obe <lr at pcorp.us>
 
-	* change reverse_geocode back to using addr table and also use
+	* [r7729]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/reverse_geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/reverse_geocode_regress.sql:
+	  change reverse_geocode back to using addr table and also use
 	  cousub for location
 
-2011-08-11 08:04  strk
+2011-08-11 08:04  Sandro Santilli <strk at keybit.net>
 
-	* Fix leftover PARSER_CHECK reference (thanks Hudson) [RT-SIGTA]
+	* [r7728] doc/html/image_src/generator.c: Fix leftover PARSER_CHECK
+	  reference (thanks Hudson) [RT-SIGTA]
 
-2011-08-11 08:04  strk
+2011-08-11 08:04  Sandro Santilli <strk at keybit.net>
 
-	* Export lwgeom_split to liblwgeom, const-correct it [RT-SIGTA]
+	* [r7727] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom_geos_split.c, postgis/Makefile.in,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_split.c: Export
+	  lwgeom_split to liblwgeom, const-correct it [RT-SIGTA]
 
-2011-08-11 07:52  strk
+2011-08-11 07:52  Sandro Santilli <strk at keybit.net>
 
-	* Export lwgeom_snap to liblwgeom [RT-SIGTA]
+	* [r7726] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_geos.c,
+	  postgis/Makefile.in, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos_snap.c: Export lwgeom_snap to liblwgeom
+	  [RT-SIGTA]
 
-2011-08-11 07:51  strk
+2011-08-11 07:51  Sandro Santilli <strk at keybit.net>
 
-	* Give PARSER_CHECK macros an LW_ prefix [RT-SIGTA]
+	* [r7725] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_geodetic.c, liblwgeom/cunit/cu_geos.c,
+	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_in_wkt.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/cunit/cu_misc.c,
+	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
+	  liblwgeom/cunit/cu_out_wkb.c, liblwgeom/cunit/cu_out_wkt.c,
+	  liblwgeom/cunit/cu_out_x3d.c, liblwgeom/cunit/cu_print.c,
+	  liblwgeom/cunit/cu_ptarray.c, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.c, loader/pgsql2shp-core.c,
+	  postgis/geography_inout.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c: Give PARSER_CHECK macros an LW_ prefix
+	  [RT-SIGTA]
 
-2011-08-11 07:50  strk
+2011-08-11 07:50  Sandro Santilli <strk at keybit.net>
 
-	* Fix parser documentation [RT-SIGTA]
+	* [r7724] liblwgeom/liblwgeom.h: Fix parser documentation
+	  [RT-SIGTA]
 
-2011-08-10 23:16  pramsey
+2011-08-10 23:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Match style of liblwgeom.h include guard
+	* [r7723] liblwgeom/liblwgeom_internal.h: Match style of
+	  liblwgeom.h include guard
 
-2011-08-10 22:43  pramsey
+2011-08-10 22:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Little checks in clean_wkt_out_suite
+	* [r7722] liblwgeom/cunit/cu_out_wkt.c: Little checks in
+	  clean_wkt_out_suite
 
-2011-08-10 22:28  pramsey
+2011-08-10 22:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old WKB/WKT parsers and generators and switch all internal
-	  references remaining (mostly in cunit) over to the new
-	  implementations.
+	* [r7721] doc/html/image_src/generator.c, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geos.c, liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_misc.c, liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_out_kml.c,
+	  liblwgeom/cunit/cu_out_svg.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/lex.yy.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwgeom_geos_clean.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwin_wkt.c,
+	  liblwgeom/wktparse.h, liblwgeom/wktparse.lex,
+	  liblwgeom/wktparse.tab.c, liblwgeom/wktparse.tab.h,
+	  liblwgeom/wktparse.y, postgis/lwgeom_geos_split.c: Remove old
+	  WKB/WKT parsers and generators and switch all internal references
+	  remaining (mostly in cunit) over to the new implementations.
 
-2011-08-09 16:56  strk
+2011-08-09 16:56  Sandro Santilli <strk at keybit.net>
 
-	* Export lwgeom_makevalid to liblwgeom [RT-SIGTA]
+	* [r7720] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom_geos_clean.c, postgis/lwgeom_geos_clean.c:
+	  Export lwgeom_makevalid to liblwgeom [RT-SIGTA]
 
-2011-08-09 16:05  strk
+2011-08-09 16:05  Sandro Santilli <strk at keybit.net>
 
-	* Add GEOS entry points in liblwgeom.h (public API) [RT-SIGTA]
+	* [r7719] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwgeom_geos.h, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos.h: Add GEOS entry points in liblwgeom.h
+	  (public API) [RT-SIGTA]
 
-2011-08-09 15:43  strk
+2011-08-09 15:43  Sandro Santilli <strk at keybit.net>
 
-	* Add some documentation about parsing [RT-SIGTA]
+	* [r7718] liblwgeom/liblwgeom.h: Add some documentation about
+	  parsing [RT-SIGTA]
 
-2011-08-09 15:43  strk
+2011-08-09 15:43  Sandro Santilli <strk at keybit.net>
 
-	* Mark "chip" functions for deletion
+	* [r7717] doc/rfc/postgis_rfc_03_sheet.txt: Mark "chip" functions
+	  for deletion
 
-2011-08-09 15:12  strk
+2011-08-09 15:12  Sandro Santilli <strk at keybit.net>
 
-	* Drop REPEATED_POINTS_* and SPLICE_* defines from liblwgeom.h,
-	  move MAXFLOAT to liblwgeom_internal.h [RT-SIGTA]
+	* [r7716] liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/examples/unparser.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwin_wkt.c,
+	  liblwgeom/lwline.c, liblwgeom/lwout_gml.c, liblwgeom/lwpoint.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/ptarray.c,
+	  loader/shp2pgsql-core.c, postgis/lwgeom_box2dfloat4.c,
+	  postgis/lwgeom_box3d.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_rtree.c: Drop REPEATED_POINTS_* and SPLICE_*
+	  defines from liblwgeom.h, move MAXFLOAT to liblwgeom_internal.h
+	  [RT-SIGTA]
 
-2011-08-09 14:54  robe
+2011-08-09 14:54  Regina Obe <lr at pcorp.us>
 
-	* make eol for all rfcs be LF so our unix brethren can edit them
+	* [r7715] doc/rfc/postgis_rfc_02.txt, doc/rfc/postgis_rfc_03.txt,
+	  doc/rfc/postgis_rfc_03_sheet.txt, doc/rfc/postgis_rfc_04.txt:
+	  make eol for all rfcs be LF so our unix brethren can edit them
 	  without fuss
 
-2011-08-09 14:19  strk
+2011-08-09 14:19  Sandro Santilli <strk at keybit.net>
 
-	* Move floating points comparator macros from liblwgeom.h to
-	  liblwgeom_internal.h (not prefixed symbols) [RT-SIGTA]
+	* [r7714] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  postgis/geography_btree.c, postgis/geography_measurement.c,
+	  postgis/lwgeom_rtree.c: Move floating points comparator macros
+	  from liblwgeom.h to liblwgeom_internal.h (not prefixed symbols)
+	  [RT-SIGTA]
 
-2011-08-09 09:51  strk
+2011-08-09 09:51  Sandro Santilli <strk at keybit.net>
 
-	* Don't include liblwgeom.h from headers if not needed, document
-	  what is it needed for in implementation files [RT-SIGTA]
+	* [r7713] loader/pgsql2shp-core.c, loader/pgsql2shp-core.h,
+	  loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h, loader/shp2pgsql-gui.c,
+	  loader/shpcommon.c, loader/shpcommon.h: Don't include liblwgeom.h
+	  from headers if not needed, document what is it needed for in
+	  implementation files [RT-SIGTA]
 
-2011-08-09 09:50  strk
+2011-08-09 09:50  Sandro Santilli <strk at keybit.net>
 
-	* Clean up gui as well
+	* [r7712] loader/Makefile.in: Clean up gui as well
 
-2011-08-09 08:28  strk
+2011-08-09 08:28  Sandro Santilli <strk at keybit.net>
 
-	* Drop CHIP type and any reference to it [RT-SIGTA]
+	* [r7711] liblwgeom/liblwgeom.h, postgis/Makefile.in,
+	  postgis/legacy_chip.sql.in.c, postgis/lwgeom_chip.c: Drop CHIP
+	  type and any reference to it [RT-SIGTA]
 
-2011-08-09 05:52  robe
+2011-08-09 05:52  Regina Obe <lr at pcorp.us>
 
-	* strk's patch fix for #1155
+	* [r7710] postgis/Makefile.in: strk's patch fix for #1155
 
-2011-08-08 10:11  strk
+2011-08-08 10:11  Sandro Santilli <strk at keybit.net>
 
-	* Encode more deps
+	* [r7709] loader/Makefile.in: Encode more deps
 
-2011-08-08 09:56  strk
+2011-08-08 09:56  Sandro Santilli <strk at keybit.net>
 
-	* Const-correct some GEOS functions in liblwgeom fixing pending
+	* [r7708] liblwgeom/lwgeom_geos.c, liblwgeom/lwgeom_geos.h:
+	  Const-correct some GEOS functions in liblwgeom fixing pending
 	  memory errors when overlaying empty and non-empty geometries (not
 	  exploited by testing) [RT-SIGTA]
 
-2011-08-08 09:27  strk
+2011-08-08 09:27  Sandro Santilli <strk at keybit.net>
 
-	* Move getMachineEndian() and error_if_srid_mismatch() from
-	  liblwgeom.h to liblwgeom_internal.h
+	* [r7707] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwgeom_geos.c, postgis/lwgeom_box2dfloat4.c,
+	  postgis/lwgeom_box3d.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_geos_sharedpaths.c, postgis/lwgeom_geos_snap.c,
+	  postgis/lwgeom_geos_split.c, postgis/lwgeom_gist.c: Move
+	  getMachineEndian() and error_if_srid_mismatch() from liblwgeom.h
+	  to liblwgeom_internal.h
 
-2011-08-08 08:59  strk
+2011-08-08 08:59  Sandro Santilli <strk at keybit.net>
 
-	* Put PG_LWGEOM stuff where it belongs (out of liblwgeom)
-	  [RT-SIGTA]
+	* [r7706] liblwgeom/liblwgeom.h, postgis/lwgeom_pg.h: Put PG_LWGEOM
+	  stuff where it belongs (out of liblwgeom) [RT-SIGTA]
 
-2011-08-06 18:42  strk
+2011-08-06 18:42  Sandro Santilli <strk at keybit.net>
 
-	* Include postgis_config.h to find POSTGIS_VERSION and
-	  stringbuffer.h when needed
+	* [r7705] loader/pgsql2shp-cli.c, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.h: Include postgis_config.h to find
+	  POSTGIS_VERSION and stringbuffer.h when needed
 
-2011-08-06 18:17  strk
+2011-08-06 18:17  Sandro Santilli <strk at keybit.net>
 
-	* Reduce number of includes from liblwgeom.h (closest header to a
-	  public API).
+	* [r7704] liblwgeom/liblwgeom.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwgeom_geos.c, liblwgeom/lwin_wkt.c,
+	  liblwgeom/lwout_kml.c, liblwgeom/lwout_wkt.c,
+	  liblwgeom/stringbuffer.c: Reduce number of includes from
+	  liblwgeom.h (closest header to a public API).
 	  Update other files accordingly. [RT-SIGTA]
 
-2011-08-06 18:03  strk
+2011-08-06 18:03  Sandro Santilli <strk at keybit.net>
 
-	* Fix dependency referencing dropped rule [RT-SIGTA]
+	* [r7703] liblwgeom/Makefile.in: Fix dependency referencing dropped
+	  rule [RT-SIGTA]
 
-2011-08-06 18:01  strk
+2011-08-06 18:01  Sandro Santilli <strk at keybit.net>
 
-	* Add static library to {,un}install-liblwgeom rules [RT-SIGTA]
+	* [r7702] liblwgeom/Makefile.in: Add static library to
+	  {,un}install-liblwgeom rules [RT-SIGTA]
 
-2011-08-06 17:48  strk
+2011-08-06 17:48  Sandro Santilli <strk at keybit.net>
 
-	* Re-drop use of libtool (more troubles than help).
+	* [r7701] configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile.in, loader/Makefile.in,
+	  loader/cunit/Makefile.in, postgis/Makefile.in: Re-drop use of
+	  libtool (more troubles than help).
 	  Stub a rule to build and install a shared liblwgeom.
 	  [RT-SIGTA].
 
-2011-08-06 16:18  strk
+2011-08-06 16:18  Sandro Santilli <strk at keybit.net>
 
-	* Re-introduce numerical flags in building "NM" objs [RT-SIGTA]
+	* [r7700] liblwgeom/Makefile.in: Re-introduce numerical flags in
+	  building "NM" objs [RT-SIGTA]
 
-2011-08-06 15:12  strk
+2011-08-06 15:12  Sandro Santilli <strk at keybit.net>
 
-	* Use libtool to build liblwgeom. Still only static. [RT-SIGTA]
+	* [r7699] .gitignore, configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile.in, loader/Makefile.in,
+	  loader/cunit/Makefile.in, postgis/Makefile.in: Use libtool to
+	  build liblwgeom. Still only static. [RT-SIGTA]
 
-2011-08-06 09:47  strk
+2011-08-06 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Use GEOS compiler and linker flags for liblwgeom, add
-	  lwgeom_geos_noop and cunit test for it (to confirm linking works,
-	  and it does) [RT-SIGTA]
+	* [r7698] configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_geos.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwgeom_geos.h: Use GEOS compiler and linker flags for
+	  liblwgeom, add lwgeom_geos_noop and cunit test for it (to confirm
+	  linking works, and it does) [RT-SIGTA]
 
-2011-08-06 09:46  strk
+2011-08-06 09:46  Sandro Santilli <strk at keybit.net>
 
-	* Add lwgeom_buildarea to liblwgeom [RT-SIGTA]
+	* [r7697] liblwgeom/lwgeom_geos.c, liblwgeom/lwgeom_geos.h,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos.h: Add
+	  lwgeom_buildarea to liblwgeom [RT-SIGTA]
 
-2011-08-06 09:46  strk
+2011-08-06 09:46  Sandro Santilli <strk at keybit.net>
 
-	* Add GEOS spatial operations to liblwgeom (ticket #1050)
-	  [RT-SIGTA]
+	* [r7696] liblwgeom/Makefile.in, liblwgeom/lwgeom_geos.c,
+	  liblwgeom/lwgeom_geos.h, liblwgeom/profile.h,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos.h: Add GEOS spatial
+	  operations to liblwgeom (ticket #1050) [RT-SIGTA]
 
-2011-08-05 12:45  robe
+2011-08-05 12:45  Regina Obe <lr at pcorp.us>
 
-	* Another minor check
+	* [r7695] doc/installation.xml: Another minor check
 
-2011-08-04 15:03  robe
+2011-08-04 15:03  Regina Obe <lr at pcorp.us>
 
-	* Update hard upgrade to include use of
-	  legacy_compatibility_layer.sql
+	* [r7694] doc/installation.xml: Update hard upgrade to include use
+	  of legacy_compatibility_layer.sql
 
-2011-08-03 15:01  robe
+2011-08-03 15:01  Regina Obe <lr at pcorp.us>
 
-	* Create new legacy compatibility layer script which will install
-	  the absolute minimal to restore an old postgis database. Also got
-	  rid of srid function and moved to legacy compatibility layer.
-	  Still need to test with a restore.
+	* [r7693] postgis/Makefile.in, postgis/legacy.sql.in.c,
+	  postgis/legacy_compatibility_layer.sql.in.c,
+	  postgis/postgis.sql.in.c: Create new legacy compatibility layer
+	  script which will install the absolute minimal to restore an old
+	  postgis database. Also got rid of srid function and moved to
+	  legacy compatibility layer. Still need to test with a restore.
 
-2011-08-03 12:14  robe
+2011-08-03 12:14  Regina Obe <lr at pcorp.us>
 
-	* some typo cleanup
+	* [r7692] doc/extras_tigergeocoder.xml: some typo cleanup
 
-2011-08-03 05:00  robe
+2011-08-03 05:00  Regina Obe <lr at pcorp.us>
 
-	* Make more efficient the case when no state or city is provided
+	* [r7691]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql:
+	  Make more efficient the case when no state or city is provided
 	  but zip is provided.
 
-2011-08-03 03:51  robe
+2011-08-03 03:51  Regina Obe <lr at pcorp.us>
 
-	* document new drop_indexes_generate_script function
+	* [r7690] doc/extras_tigergeocoder.xml: document new
+	  drop_indexes_generate_script function
 
-2011-08-03 02:06  robe
+2011-08-03 02:06  Regina Obe <lr at pcorp.us>
 
-	* Major rework to improve speed, selectivity, and additional
-	  regress. Also added some indexes and removed some -- should solve
-	  #1145, #1148, and #1131 (should be about 60% faster for most
-	  cases and in some as much as 20 times faster). Better performance
-	  if you set max results = 1. Some other minor cleanup.
-	  documentation of new management helper functions coming next.
+	* [r7689]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/regress.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocoder.bat: Major
+	  rework to improve speed, selectivity, and additional regress.
+	  Also added some indexes and removed some -- should solve #1145,
+	  #1148, and #1131 (should be about 60% faster for most cases and
+	  in some as much as 20 times faster). Better performance if you
+	  set max results = 1. Some other minor cleanup. documentation of
+	  new management helper functions coming next.
 
-2011-08-02 06:33  robe
+2011-08-02 06:33  Regina Obe <lr at pcorp.us>
 
-	* Add link to Sandro's topology Paris 2011 slides in summary of
-	  topology reference section
+	* [r7688] doc/extras_topology.xml: Add link to Sandro's topology
+	  Paris 2011 slides in summary of topology reference section
 
-2011-07-28 18:56  strk
+2011-07-28 18:56  Sandro Santilli <strk at keybit.net>
 
-	* Use strcpy rather than strncpy, simpler and less error-prone
+	* [r7687] doc/html/image_src/generator.c: Use strcpy rather than
+	  strncpy, simpler and less error-prone
 
-2011-07-28 18:43  strk
+2011-07-28 18:43  Sandro Santilli <strk at keybit.net>
 
-	* Give strncpy enough space to write a terminating null. Thanks
-	  gengor for the patch.
+	* [r7686] doc/html/image_src/generator.c: Give strncpy enough space
+	  to write a terminating null. Thanks gengor for the patch.
 
-2011-07-27 19:21  robe
+2011-07-27 19:21  Regina Obe <lr at pcorp.us>
 
-	* minor updates to ST_MakeLine to clarify pre-9.0 and 9.0+
-	  approaches
+	* [r7684] doc/reference_constructor.xml: minor updates to
+	  ST_MakeLine to clarify pre-9.0 and 9.0+ approaches
 
-2011-07-27 11:55  robe
+2011-07-27 11:55  Regina Obe <lr at pcorp.us>
 
-	* 1 more change
+	* [r7683] doc/reference_constructor.xml: 1 more change
 
-2011-07-27 11:54  robe
+2011-07-27 11:54  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r7682] doc/reference_constructor.xml: fix typo
 
-2011-07-27 11:52  robe
+2011-07-27 11:52  Regina Obe <lr at pcorp.us>
 
-	* example of using new PostgreSQL 9.0+ ORDER BY aggregate feature
-	  for ST_MakeLine
+	* [r7681] doc/reference_constructor.xml: example of using new
+	  PostgreSQL 9.0+ ORDER BY aggregate feature for ST_MakeLine
 
-2011-07-26 15:39  robe
+2011-07-26 15:39  Regina Obe <lr at pcorp.us>
 
-	* more examples for ST_Offsetcurve
+	* [r7680] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_offsetcurve05.wkt,
+	  doc/html/image_src/st_offsetcurve06.wkt,
+	  doc/reference_processing.xml: more examples for ST_Offsetcurve
 
-2011-07-26 14:30  robe
+2011-07-26 14:30  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r7679] doc/reference_processing.xml: fix typo
 
-2011-07-26 14:29  robe
+2011-07-26 14:29  Regina Obe <lr at pcorp.us>
 
-	* remove left and right notes until I have arrows. not embarrass
-	  myself with my directional dyslexia.
+	* [r7678] doc/reference_processing.xml: remove left and right notes
+	  until I have arrows. not embarrass myself with my directional
+	  dyslexia.
 
-2011-07-26 05:37  robe
+2011-07-26 05:37  Regina Obe <lr at pcorp.us>
 
-	* Start work documenting ST_AsRaster
+	* [r7677] doc/reference_raster.xml: Start work documenting
+	  ST_AsRaster
 
-2011-07-25 15:53  robe
+2011-07-25 15:53  Regina Obe <lr at pcorp.us>
 
-	* reduce spacing more
+	* [r7676] doc/reference_processing.xml: reduce spacing more
 
-2011-07-25 15:52  dustymugs
+2011-07-25 15:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_AsRaster function to provide the ability to
-	  convert geometries into rasters.
+	* [r7675] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_asraster.sql,
+	  raster/test/regress/rt_asraster_expected,
+	  raster/test/regress/rt_resample.sql: Addition of ST_AsRaster
+	  function to provide the ability to convert geometries into
+	  rasters.
 	  
 	  Associated ticket is #1141.
 
-2011-07-25 14:20  robe
+2011-07-25 14:20  Regina Obe <lr at pcorp.us>
 
-	* another typo
+	* [r7674] doc/reference_processing.xml: another typo
 
-2011-07-25 14:10  robe
+2011-07-25 14:10  Regina Obe <lr at pcorp.us>
 
-	* fix coloring to agree with color of other examples
+	* [r7673] doc/html/image_src/st_offsetcurve04.wkt: fix coloring to
+	  agree with color of other examples
 
-2011-07-25 14:08  robe
+2011-07-25 14:08  Regina Obe <lr at pcorp.us>
 
-	* reduce width of table cells -- ST_OffsetCurve
+	* [r7672] doc/reference_processing.xml: reduce width of table cells
+	  -- ST_OffsetCurve
 
-2011-07-25 14:04  robe
+2011-07-25 14:04  Regina Obe <lr at pcorp.us>
 
-	* redo all examples so they fit in the 0 0 200 200 grid
+	* [r7671] doc/html/image_src/st_offsetcurve01.wkt,
+	  doc/html/image_src/st_offsetcurve02.wkt,
+	  doc/html/image_src/st_offsetcurve03.wkt,
+	  doc/reference_processing.xml: redo all examples so they fit in
+	  the 0 0 200 200 grid
 
-2011-07-25 13:44  robe
+2011-07-25 13:44  Regina Obe <lr at pcorp.us>
 
-	* fix some typos and grid more to fix
+	* [r7670] doc/html/image_src/st_offsetcurve04.wkt,
+	  doc/reference_processing.xml: fix some typos and grid more to fix
 
-2011-07-25 12:18  robe
+2011-07-25 12:18  Regina Obe <lr at pcorp.us>
 
-	* get rid of semicolons
+	* [r7669] doc/html/image_src/st_offsetcurve02.wkt,
+	  doc/html/image_src/st_offsetcurve03.wkt,
+	  doc/html/image_src/st_offsetcurve04.wkt: get rid of semicolons
 
-2011-07-25 12:13  robe
+2011-07-25 12:13  Regina Obe <lr at pcorp.us>
 
-	* need more pictures :), visual examples for st_offsetcurve
+	* [r7668] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_offsetcurve01.wkt,
+	  doc/html/image_src/st_offsetcurve02.wkt,
+	  doc/html/image_src/st_offsetcurve03.wkt,
+	  doc/html/image_src/st_offsetcurve04.wkt,
+	  doc/reference_processing.xml: need more pictures :), visual
+	  examples for st_offsetcurve
 
-2011-07-24 08:15  robe
+2011-07-24 08:15  Regina Obe <lr at pcorp.us>
 
-	* update ST_MapAlgebra to agree with implementation (got rid of
-	  bosolete proto and example and replaced with new example
+	* [r7667] doc/reference_raster.xml: update ST_MapAlgebra to agree
+	  with implementation (got rid of bosolete proto and example and
+	  replaced with new example
 
-2011-07-23 21:42  strk
+2011-07-23 21:42  Sandro Santilli <strk at keybit.net>
 
-	* Be terse, we don't care about context. Closes ticket #1142.
+	* [r7666] topology/test/regress/createtopogeom.sql,
+	  topology/test/regress/createtopogeom_expected: Be terse, we don't
+	  care about context. Closes ticket #1142.
 
-2011-07-23 21:34  strk
+2011-07-23 21:34  Sandro Santilli <strk at keybit.net>
 
-	* Set 'C' collation when creating regress database. See #1140.
+	* [r7665] regress/loader/PointZ-G.select.expected,
+	  regress/loader/PointZ-w.select.expected,
+	  regress/loader/PointZ.select.expected, regress/run_test: Set 'C'
+	  collation when creating regress database. See #1140.
 
-2011-07-22 20:20  pracine
+2011-07-22 20:20  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Added a note saying that those function now have a C
-	  implementation. Many TABs converted to spaces.
+	* [r7664] raster/scripts/plpgsql/st_histogram.sql,
+	  raster/scripts/plpgsql/st_reclass.sql: Added a note saying that
+	  those function now have a C implementation. Many TABs converted
+	  to spaces.
 
-2011-07-22 20:05  pracine
+2011-07-22 20:05  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix for #645.
+	* [r7663] raster/scripts/plpgsql/st_setvalues.sql: -Fix for #645.
 	  -Replaced min and max with LEAST and GREATEST
 	  -Adaptation to ST_SetBandNodataValue()
 
-2011-07-22 19:38  pracine
+2011-07-22 19:38  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Fix for ticket #969. Removed conflicting function variant.
+	* [r7662] raster/rt_pg/rtpostgis.sql.in.c: Fix for ticket #969.
+	  Removed conflicting function variant.
 
-2011-07-22 19:31  pracine
+2011-07-22 19:31  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Addaptation to new two rasters ST_MapAlgebra in which
-	  nodatavalue expressions are text and now accept a
-	  nodatanodatavalueexpr.
+	* [r7661] raster/scripts/plpgsql/st_union.sql: -Addaptation to new
+	  two rasters ST_MapAlgebra in which nodatavalue expressions are
+	  text and now accept a nodatanodatavalueexpr.
 	  -Added RANGE as a predefined expression.
 
-2011-07-22 19:29  pracine
+2011-07-22 19:29  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Modified comment on further enhancements.
+	* [r7660] raster/scripts/plpgsql/st_mapalgebra_optimized.sql:
+	  Modified comment on further enhancements.
 
-2011-07-22 19:28  pracine
+2011-07-22 19:28  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix for ticket #644. Removed all variants.
+	* [r7659] raster/scripts/plpgsql/st_mapalgebra.sql: -Fix for ticket
+	  #644. Removed all variants.
 	  -Fixed the two rasters version.
 	  -Added some tests.
 	  -Added ST_MinPossibleVal().
@@ -17825,87 +31768,137 @@
 	  -Added implementation of two rasters overlay operations using the
 	  two raster MapAlgebra.
 
-2011-07-21 17:31  dustymugs
+2011-07-21 17:31  Bborie Park <bkpark at ucdavis.edu>
 
-	* Cleaned the grid alignment code to remove unnecessary cruft in
-	  rt_raster_gdal_warp
+	* [r7658] raster/rt_core/rt_api.c: Cleaned the grid alignment code
+	  to remove unnecessary cruft in rt_raster_gdal_warp
 
-2011-07-21 16:20  dustymugs
+2011-07-21 16:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed floating point issue with the remainder returned from the
-	  function modf in rt_api.c. Updated messages in rt_pg.c. Corrected
-	  expected regression results in rt_resample_expected.
+	* [r7657] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_resample_expected: Fixed floating point
+	  issue with the remainder returned from the function modf in
+	  rt_api.c. Updated messages in rt_pg.c. Corrected expected
+	  regression results in rt_resample_expected.
 	  
 	  Associated ticket is #1114
 
-2011-07-20 19:53  strk
+2011-07-20 19:53  Sandro Santilli <strk at keybit.net>
 
-	* Improve testsuite predictability (#1135)
+	* [r7656] regress/loader/Arc.select.sql,
+	  regress/loader/ArcM.select.sql, regress/loader/ArcZ.select.sql,
+	  regress/loader/Point.select.sql,
+	  regress/loader/PointM-G.select.expected,
+	  regress/loader/PointM-w.select.expected,
+	  regress/loader/PointM.select.expected,
+	  regress/loader/PointM.select.sql,
+	  regress/loader/PointWithSchema.select.sql,
+	  regress/loader/PointZ-G.select.expected,
+	  regress/loader/PointZ-w.select.expected,
+	  regress/loader/PointZ.select.expected,
+	  regress/loader/PointZ.select.sql: Improve testsuite
+	  predictability (#1135)
 
-2011-07-19 22:20  dustymugs
+2011-07-19 22:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Bug fix of deallocating array using wrong index variable
+	* [r7654] raster/rt_core/rt_api.c: Bug fix of deallocating array
+	  using wrong index variable
 
-2011-07-18 23:39  dustymugs
+2011-07-18 23:39  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed width and height values expected.
+	* [r7653] raster/test/regress/rt_resample_expected: Fixed width and
+	  height values expected.
 
-2011-07-18 23:29  dustymugs
+2011-07-18 23:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* - tweaked the rt_resample regression test to use SRIDs under
-	  1000000
+	* [r7652] raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_resample.sql,
+	  raster/test/regress/rt_resample_expected: - tweaked the
+	  rt_resample regression test to use SRIDs under 1000000
 	  - changed the computation of width and height when aligning to a
 	  grid
 
-2011-07-18 04:44  robe
+2011-07-18 04:44  Regina Obe <lr at pcorp.us>
 
-	* Fix datatype of tlid on edges table. Other tables with tlid are
+	* [r7651]
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql:
+	  Fix datatype of tlid on edges table. Other tables with tlid are
 	  set to bigint. This one set to numeric(10). Still revising my
 	  tables to determine what impact this has in utilizing the
 	  existing indexes
 
-2011-07-17 17:39  robe
+2011-07-17 17:39  Regina Obe <lr at pcorp.us>
 
-	* Limit edge and featnames search to just road / street types
+	* [r7650]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql:
+	  Limit edge and featnames search to just road / street types
 
-2011-07-17 17:02  robe
+2011-07-17 17:02  Regina Obe <lr at pcorp.us>
 
-	* more regress tests for reverse_geocode
+	* [r7649]
+	  extras/tiger_geocoder/tiger_2010/regress/reverse_geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/reverse_geocode_regress.sql:
+	  more regress tests for reverse_geocode
 
-2011-07-17 16:46  robe
+2011-07-17 16:46  Regina Obe <lr at pcorp.us>
 
-	* simplify logic by getting rid of addr join. Speed improved
+	* [r7648]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  simplify logic by getting rid of addr join. Speed improved
 	  slightly
 
-2011-07-17 16:11  robe
+2011-07-17 16:11  Regina Obe <lr at pcorp.us>
 
-	* enhancements to support reverse geocoding of highway locations.
+	* [r7647]
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/reverse_geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/reverse_geocode_regress.sql:
+	  enhancements to support reverse geocoding of highway locations.
 	  Also add reverse geocode regress tests
 
-2011-07-16 04:19  robe
+2011-07-16 04:19  Regina Obe <lr at pcorp.us>
 
-	* #1125 have highway designations print in front of streetname
-	  instead of after
+	* [r7646]
+	  extras/tiger_geocoder/tiger_2010/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1125 have
+	  highway designations print in front of streetname instead of
+	  after
 
-2011-07-15 21:07  dustymugs
+2011-07-15 21:07  Bborie Park <bkpark at ucdavis.edu>
 
-	* Minor comment updates to correct details
+	* [r7644] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Minor
+	  comment updates to correct details
 
-2011-07-15 06:40  robe
+2011-07-15 06:40  Regina Obe <lr at pcorp.us>
 
-	* revise ratings to minimize numberes steetss from matching highly
+	* [r7641]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql:
+	  revise ratings to minimize numberes steetss from matching highly
 	  with interstate routes. Also glue on pretype abrv (which are
 	  technically street types) to front of street name in normalize
 	  output so that highways print correctly as e.g. State Hwy 10 etc.
 
-2011-07-15 05:31  robe
+2011-07-15 05:31  Regina Obe <lr at pcorp.us>
 
-	* Add in common abbreviation RT to map to Rte and test case to
-	  regress to test
+	* [r7640] extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: Add in
+	  common abbreviation RT to map to Rte and test case to regress to
+	  test
 
-2011-07-14 20:11  dustymugs
+2011-07-14 20:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code refactored for RASTER_dumpWKTPolygons to use same mechanisms
+	* [r7639] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Code refactored for RASTER_dumpWKTPolygons to use same mechanisms
 	  for resultset generation (Datums instead of CStrings) as
 	  RASTER_metadata and other functions.
 	  
@@ -17913,216 +31906,301 @@
 	  attributes rather than separate/multiple calls to ST_Skew*,
 	  ST_Scale*, ST_UpperLeft*.
 
-2011-07-14 14:54  dustymugs
+2011-07-14 14:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored functions returning sets to use Datums instead of C
-	  strings, which were causing rounding issues particularly for
-	  ST_Metadata. This refactoring affected RASTER_metadata,
-	  RASTER_bandmetadata, RASTER_summarystats, RASTER_histogram,
-	  RASTER_quantile, RASTER_valuecount and RASTER_gdaldrivers.
+	* [r7638] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_bandmetadata.sql,
+	  raster/test/regress/rt_bandmetadata_expected,
+	  raster/test/regress/rt_count.sql: Refactored functions returning
+	  sets to use Datums instead of C strings, which were causing
+	  rounding issues particularly for ST_Metadata. This refactoring
+	  affected RASTER_metadata, RASTER_bandmetadata,
+	  RASTER_summarystats, RASTER_histogram, RASTER_quantile,
+	  RASTER_valuecount and RASTER_gdaldrivers.
 	  
 	  Also refactored the ST_Raster2World* and ST_World2Raster*
 	  functions to get the raster's metadata in one call using
 	  ST_Metadata rather than individual calls for the georeference
 	  components
 
-2011-07-14 11:47  robe
+2011-07-14 11:47  Regina Obe <lr at pcorp.us>
 
-	* add make tiger_geocoder_comments.sql to build script
+	* [r7637] doc/Makefile.in: add make tiger_geocoder_comments.sql to
+	  build script
 
-2011-07-14 11:32  robe
+2011-07-14 11:32  Regina Obe <lr at pcorp.us>
 
-	* Start work on PostgreSQL in db help for geocoder
+	* [r7636] doc/xsl/tiger_geocoder_comments.sql.xsl: Start work on
+	  PostgreSQL in db help for geocoder
 
-2011-07-14 11:13  robe
+2011-07-14 11:13  Regina Obe <lr at pcorp.us>
 
-	* document the install_missing_indexes function that is used as
-	  part of the upgrade process
+	* [r7635] doc/extras_tigergeocoder.xml: document the
+	  install_missing_indexes function that is used as part of the
+	  upgrade process
 
-2011-07-14 07:45  robe
+2011-07-14 07:45  Regina Obe <lr at pcorp.us>
 
-	* #1113 take into consideration street prequals like Old in rating
-	  and filtering, also added btree varops on fullname (trigrams and
+	* [r7634] extras/tiger_geocoder/tiger_2010/README,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1113 take
+	  into consideration street prequals like Old in rating and
+	  filtering, also added btree varops on fullname (trigrams and
 	  fulltext proved too slow will need to reinvestigate those), also
 	  added helper function install_missing_indezes() which gets run as
 	  part of upgrade script. will need to add to documentation. Also
 	  added regress tests from snippets in #1113
 
-2011-07-13 19:33  dustymugs
+2011-07-13 19:33  Bborie Park <bkpark at ucdavis.edu>
 
-	* Complete refactoring of code from ST_Transform to ST_Resample.
-	  There are four new functions as of this revision: ST_Resample,
-	  ST_Rescale, ST_Reskew and ST_SnapToGrid. ST_Transform is still
-	  present but points to ST_Resample.
+	* [r7633] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_resample.sql,
+	  raster/test/regress/rt_resample_expected,
+	  raster/test/regress/rt_transform.sql,
+	  raster/test/regress/rt_transform_expected: Complete refactoring
+	  of code from ST_Transform to ST_Resample. There are four new
+	  functions as of this revision: ST_Resample, ST_Rescale, ST_Reskew
+	  and ST_SnapToGrid. ST_Transform is still present but points to
+	  ST_Resample.
 	  
 	  Associated ticket #1114
 
-2011-07-12 19:45  robe
+2011-07-12 19:45  Regina Obe <lr at pcorp.us>
 
-	* Fix for #1112 service roads
+	* [r7632]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: Fix for
+	  #1112 service roads
 
-2011-07-12 13:03  robe
+2011-07-12 13:03  Regina Obe <lr at pcorp.us>
 
-	* Partial fix for #1108
+	* [r7631]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql:
+	  Partial fix for #1108
 
-2011-07-12 04:14  robe
+2011-07-12 04:14  Regina Obe <lr at pcorp.us>
 
-	* Fix regress failure with #1074 (wasn't correctly handling all
+	* [r7630]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql:
+	  Fix regress failure with #1074 (wasn't correctly handling all
 	  cases where street name is composed of a street type
 
-2011-07-11 17:03  strk
+2011-07-11 17:03  Sandro Santilli <strk at keybit.net>
 
-	* Change ST_OffsetCurve parameters type from cstrin to text. See
-	  ticket #1117.
+	* [r7629] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c: Change
+	  ST_OffsetCurve parameters type from cstrin to text. See ticket
+	  #1117.
 
-2011-07-11 12:17  strk
+2011-07-11 12:17  Sandro Santilli <strk at keybit.net>
 
-	* Stricter ISO output from ST_GetEdgeFaces: start enumerating ring
-	  edges from the edge with smaller id [RT-SIGTA]
+	* [r7628] doc/extras_topology.xml, topology/sql/sqlmm.sql,
+	  topology/test/regress/st_getfaceedges_expected: Stricter ISO
+	  output from ST_GetEdgeFaces: start enumerating ring edges from
+	  the edge with smaller id [RT-SIGTA]
 
-2011-07-09 20:32  robe
+2011-07-09 20:32  Regina Obe <lr at pcorp.us>
 
-	* oops typo
+	* [r7627] extras/tiger_geocoder/tiger_2010/tiger_loader.sql: oops
+	  typo
 
-2011-07-09 20:25  robe
+2011-07-09 20:25  Regina Obe <lr at pcorp.us>
 
-	* revert change
+	* [r7626] extras/tiger_geocoder/tiger_2010/tiger_loader.sql: revert
+	  change
 
-2011-07-09 20:12  robe
+2011-07-09 20:12  Regina Obe <lr at pcorp.us>
 
-	* fix type in county load
+	* [r7625] extras/tiger_geocoder/tiger_2010/tiger_loader.sql: fix
+	  type in county load
 
-2011-07-09 15:55  strk
+2011-07-09 15:55  Sandro Santilli <strk at keybit.net>
 
-	* Clarify return code from topology.ST_ModEdgeHeal. Clean up
-	  description of ST_NewEdgeHeal too.
+	* [r7624] doc/extras_topology.xml: Clarify return code from
+	  topology.ST_ModEdgeHeal. Clean up description of ST_NewEdgeHeal
+	  too.
 
-2011-07-09 01:23  robe
+2011-07-09 01:23  Regina Obe <lr at pcorp.us>
 
-	* example of using geocode geometry filter
+	* [r7623] doc/extras_tigergeocoder.xml: example of using geocode
+	  geometry filter
 
-2011-07-09 01:06  robe
+2011-07-09 01:06  Regina Obe <lr at pcorp.us>
 
-	* Fix ST_Transform signature to match revised function declarations
+	* [r7622] doc/reference_raster.xml: Fix ST_Transform signature to
+	  match revised function declarations
 
-2011-07-08 08:23  robe
+2011-07-08 08:23  Regina Obe <lr at pcorp.us>
 
-	* upper case and replace (ZM and Z) in geometry_columns so its more
-	  backwards compatible with old geometry_columns table
+	* [r7621] postgis/postgis.sql.in.c: upper case and replace (ZM and
+	  Z) in geometry_columns so its more backwards compatible with old
+	  geometry_columns table
 
-2011-07-07 22:45  robe
+2011-07-07 22:45  Regina Obe <lr at pcorp.us>
 
-	* #1070 optional geometry filter arg, documentation (well start
-	  need example), and regress tests
+	* [r7620] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1070
+	  optional geometry filter arg, documentation (well start need
+	  example), and regress tests
 
-2011-07-07 22:23  dustymugs
+2011-07-07 22:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Final refactor of ST_Transform and underlying RASTER_resample
+	* [r7619] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Final refactor of ST_Transform and underlying RASTER_resample
 	  before overhaul for ST_Resample
 
-2011-07-07 21:58  dustymugs
+2011-07-07 21:58  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored ST_Transform in preparation for additional refactoring
+	* [r7618] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Refactored ST_Transform in preparation for additional refactoring
 	  to accomodate ST_Resample
 
-2011-07-07 18:28  dustymugs
+2011-07-07 18:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Cleaned up the large number of floating point equality tests with
-	  a function-like macro
+	* [r7617] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c: Cleaned up the large number of floating
+	  point equality tests with a function-like macro
 
-2011-07-07 12:41  robe
+2011-07-07 12:41  Regina Obe <lr at pcorp.us>
 
-	* #1074, #1109 - Fix for compound named streets that have a portion
+	* [r7616]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql:
+	  #1074, #1109 - Fix for compound named streets that have a portion
 	  that is a street type
 
-2011-07-06 23:44  robe
+2011-07-06 23:44  Regina Obe <lr at pcorp.us>
 
-	* more regress tests for #1109
+	* [r7615]
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql:
+	  more regress tests for #1109
 
-2011-07-06 23:15  dustymugs
+2011-07-06 23:15  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored how user-specified upperleft corner coordinates are
-	  handled
+	* [r7614] raster/rt_core/rt_api.c: Refactored how user-specified
+	  upperleft corner coordinates are handled
 
-2011-07-06 23:00  robe
+2011-07-06 23:00  Regina Obe <lr at pcorp.us>
 
-	* fix for #1109 when a street name is same as a defined street type
+	* [r7613]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  fix for #1109 when a street name is same as a defined street type
 
-2011-07-06 15:02  strk
+2011-07-06 15:02  Sandro Santilli <strk at keybit.net>
 
-	* Properly destroy lwgeom in lwgeom_to_x3d3 now that it's safe (see
-	  #1102)
+	* [r7612] liblwgeom/lwout_x3d.c: Properly destroy lwgeom in
+	  lwgeom_to_x3d3 now that it's safe (see #1102)
 
-2011-07-06 14:55  strk
+2011-07-06 14:55  Sandro Santilli <strk at keybit.net>
 
-	* Properly release memory in lwmline_clip_to_ordinate_range (see
-	  #1102)
+	* [r7611] liblwgeom/lwalgorithm.c: Properly release memory in
+	  lwmline_clip_to_ordinate_range (see #1102)
 
-2011-07-06 14:45  strk
+2011-07-06 14:45  Sandro Santilli <strk at keybit.net>
 
-	* Have lwcollection_extract clone (shallow) the extracted
+	* [r7610] liblwgeom/cunit/cu_libgeom.c, liblwgeom/lwcollection.c:
+	  Have lwcollection_extract clone (shallow) the extracted
 	  components. Safely lwgeom_free the return from
 	  lwcollection_extract in testcase.
 
-2011-07-06 14:29  strk
+2011-07-06 14:29  Sandro Santilli <strk at keybit.net>
 
-	* Properly lwgeom_free cloned objects in lwgeom_homogenize now that
-	  it is safe
+	* [r7609] liblwgeom/lwhomogenize.c: Properly lwgeom_free cloned
+	  objects in lwgeom_homogenize now that it is safe
 
-2011-07-06 14:29  strk
+2011-07-06 14:29  Sandro Santilli <strk at keybit.net>
 
-	* Implement ptarray_clone (shallow) and update clone documentation
-	  (doxygen), have lw*_clone clone the POINTARRAY but not the
-	  serialized point list (using ptarray_clone), add unit testing for
-	  lwgeom_clone. See ticket #1102.
+	* [r7608] liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwgeom.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwtriangle.c,
+	  liblwgeom/ptarray.c: Implement ptarray_clone (shallow) and update
+	  clone documentation (doxygen), have lw*_clone clone the
+	  POINTARRAY but not the serialized point list (using
+	  ptarray_clone), add unit testing for lwgeom_clone. See ticket
+	  #1102.
 
-2011-07-06 10:48  mcayland
+2011-07-06 10:48  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix compile warning in geography_measurement.c caused by missing
-	  function prototype.
+	* [r7607] postgis/geography_measurement.c: Fix compile warning in
+	  geography_measurement.c caused by missing function prototype.
 
-2011-07-06 10:48  mcayland
+2011-07-06 10:48  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix compile warning for lwgeom_init_allocators() in loader/dumper
-	  by adding missing liblwgeom.h #include.
+	* [r7606] loader/shpcommon.h: Fix compile warning for
+	  lwgeom_init_allocators() in loader/dumper by adding missing
+	  liblwgeom.h #include.
 
-2011-07-06 09:40  strk
+2011-07-06 09:40  Sandro Santilli <strk at keybit.net>
 
-	* Rename ptarray_clone to ptarray_clone_deep, to be conformant with
+	* [r7605] liblwgeom/liblwgeom.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwline.c, liblwgeom/lwpoly.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_dump.c, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c: Rename
+	  ptarray_clone to ptarray_clone_deep, to be conformant with
 	  lwgeom_clone_deep in that it copies the serialized pointlist too
 
-2011-07-06 08:04  strk
+2011-07-06 08:04  Sandro Santilli <strk at keybit.net>
 
-	* Compiler warning fix
+	* [r7604] liblwgeom/cunit/cu_print.c: Compiler warning fix
 
-2011-07-06 07:42  strk
+2011-07-06 07:42  Sandro Santilli <strk at keybit.net>
 
-	* Fix compiler warnings (#999)
+	* [r7603] liblwgeom/lwout_x3d.c: Fix compiler warnings (#999)
 
-2011-07-06 07:42  strk
+2011-07-06 07:42  Sandro Santilli <strk at keybit.net>
 
-	* Don't let temporary collection leak in lwgeom_to_x3d3 (actually
-	  do, but sligthly less, till we fix lwgeom_clone). See #1102.
+	* [r7602] liblwgeom/lwout_x3d.c: Don't let temporary collection
+	  leak in lwgeom_to_x3d3 (actually do, but sligthly less, till we
+	  fix lwgeom_clone). See #1102.
 
-2011-07-06 07:42  strk
+2011-07-06 07:42  Sandro Santilli <strk at keybit.net>
 
-	* const-correct lw*_is_closed
+	* [r7601] liblwgeom/liblwgeom.h, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpsurface.c, liblwgeom/lwtin.c: const-correct
+	  lw*_is_closed
 
-2011-07-06 06:46  strk
+2011-07-06 06:46  Sandro Santilli <strk at keybit.net>
 
-	* properly release reported error message string
+	* [r7600] liblwgeom/cunit/cu_tester.c: properly release reported
+	  error message string
 
-2011-07-06 06:46  strk
+2011-07-06 06:46  Sandro Santilli <strk at keybit.net>
 
-	* properly release lwgeom objec in test_lwprint_assert_error
+	* [r7599] liblwgeom/cunit/cu_print.c: properly release lwgeom objec
+	  in test_lwprint_assert_error
 
-2011-07-06 06:46  strk
+2011-07-06 06:46  Sandro Santilli <strk at keybit.net>
 
-	* properly release lwgeom objec in test_misc_area
+	* [r7598] liblwgeom/cunit/cu_misc.c: properly release lwgeom objec
+	  in test_misc_area
 
-2011-07-06 05:18  dustymugs
+2011-07-06 05:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed expressions for pixel byte boundaries in assert tests of
+	* [r7597] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Changed
+	  expressions for pixel byte boundaries in assert tests of
 	  rt_raster_serialize and rt_raster_deserialize in rt_api.c. The
 	  changed expressions are based upon relative values rather than
 	  the original absolute values. This should resolve the problem
@@ -18131,128 +32209,169 @@
 	  
 	  Associated tickets are #1061 and possibly #1066.
 
-2011-07-06 02:17  robe
+2011-07-06 02:17  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r7596] doc/extras_tigergeocoder.xml: fix typo
 
-2011-07-06 01:02  robe
+2011-07-06 01:02  Regina Obe <lr at pcorp.us>
 
-	* drop_state_tables_generate_script function and document it. Also
+	* [r7595] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql:
+	  drop_state_tables_generate_script function and document it. Also
 	  add blank paramdef to missing indexes so doesn't look goofy in
 	  docs
 
-2011-07-06 00:40  robe
+2011-07-06 00:40  Regina Obe <lr at pcorp.us>
 
-	* Get rid of use of array_accum and replace with array_agg (which
-	  exists in PostgreSQL 9\8.4+). Now that we only support 8.4+, we
-	  can just use array_agg.
+	* [r7594]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql: Get rid of use
+	  of array_accum and replace with array_agg (which exists in
+	  PostgreSQL 9\8.4+). Now that we only support 8.4+, we can just
+	  use array_agg.
 
-2011-07-05 22:02  pramsey
+2011-07-05 22:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove leak in mixed time ptarray case (#1102)
+	* [r7593] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/lwin_wkt.c: Remove
+	  leak in mixed time ptarray case (#1102)
 
-2011-07-05 21:01  strk
+2011-07-05 21:01  Sandro Santilli <strk at keybit.net>
 
-	* Plug some more easy leaks in testers
+	* [r7592] liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_surface.c: Plug
+	  some more easy leaks in testers
 
-2011-07-05 20:21  pramsey
+2011-07-05 20:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Stop up small but universal leak. (#1102)
+	* [r7591] liblwgeom/lwin_wkt_lex.c, liblwgeom/lwin_wkt_lex.l: Stop
+	  up small but universal leak. (#1102)
 
-2011-07-05 18:55  strk
+2011-07-05 18:55  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory leak while computing box3d for nested
-	  geometrycollection (revealed by test in cu_geodetic.c)
+	* [r7590] liblwgeom/lwcollection.c: Fix memory leak while computing
+	  box3d for nested geometrycollection (revealed by test in
+	  cu_geodetic.c)
 
-2011-07-05 18:41  strk
+2011-07-05 18:41  Sandro Santilli <strk at keybit.net>
 
-	* Properly release memory allocated by tester
+	* [r7589] liblwgeom/cunit/cu_geodetic.c: Properly release memory
+	  allocated by tester
 
-2011-07-05 17:49  robe
+2011-07-05 17:49  Regina Obe <lr at pcorp.us>
 
-	* #1076 hanlde of post direction with highways -- 1940 County Road
+	* [r7588]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress:
+	  #1076 hanlde of post direction with highways -- 1940 County Road
 	  C W, Roseville, MN 55113 , also trim excess space left in street
 	  names
 
-2011-07-04 22:51  pramsey
+2011-07-04 22:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove memory leaks when a parse error kicks out in WKT (#1102)
+	* [r7587] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/ptarray.c: Remove memory leaks
+	  when a parse error kicks out in WKT (#1102)
 
-2011-07-04 17:32  robe
+2011-07-04 17:32  Regina Obe <lr at pcorp.us>
 
-	* #1076 more work toward Highway geocoding -- significant rework of
-	  original patch. Still need to parse out the direction information
+	* [r7586]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1076 more
+	  work toward Highway geocoding -- significant rework of original
+	  patch. Still need to parse out the direction information
 
-2011-07-04 15:50  strk
+2011-07-04 15:50  Sandro Santilli <strk at keybit.net>
 
-	* Drop dangling reference to Probe_Geometry_Columns (see #1083)
+	* [r7585] doc/reference_management.xml: Drop dangling reference to
+	  Probe_Geometry_Columns (see #1083)
 
-2011-07-04 15:40  strk
+2011-07-04 15:40  Sandro Santilli <strk at keybit.net>
 
-	* A couple more tests for btree against points: different points,
+	* [r7584] regress/tickets.sql, regress/tickets_expected: A couple
+	  more tests for btree against points: different points,
 	  differently cached boxes
 
-2011-07-04 15:34  strk
+2011-07-04 15:34  Sandro Santilli <strk at keybit.net>
 
-	* Have pglwgeom_getbox2d_p compute a bounding box when not cached.
-	  Fixes #1023.
+	* [r7583] postgis/lwgeom_pg.c: Have pglwgeom_getbox2d_p compute a
+	  bounding box when not cached. Fixes #1023.
 
-2011-07-04 15:12  strk
+2011-07-04 15:12  Sandro Santilli <strk at keybit.net>
 
-	* Document pglwgeom_getbox2d_p. See
+	* [r7582] postgis/lwgeom_pg.h: Document pglwgeom_getbox2d_p. See
 	  http://trac.osgeo.org/postgis/ticket/1023
 
-2011-07-04 14:50  strk
+2011-07-04 14:50  Sandro Santilli <strk at keybit.net>
 
-	* More unit test memory leaks and compiler warnings fixed
+	* [r7581] liblwgeom/cunit/cu_algorithm.c: More unit test memory
+	  leaks and compiler warnings fixed
 
-2011-07-04 14:14  strk
+2011-07-04 14:14  Sandro Santilli <strk at keybit.net>
 
-	* Add test for btree equality of points (#1023)
+	* [r7580] regress/tickets.sql, regress/tickets_expected: Add test
+	  for btree equality of points (#1023)
 
-2011-07-04 13:56  strk
+2011-07-04 13:56  Sandro Santilli <strk at keybit.net>
 
-	* Do not deep-free return from lwcollection_homogenize as it
-	  doesn't copy POINTARRAY memory. See #1104.
+	* [r7579] liblwgeom/cunit/cu_homogenize.c: Do not deep-free return
+	  from lwcollection_homogenize as it doesn't copy POINTARRAY
+	  memory. See #1104.
 
-2011-07-04 12:29  strk
+2011-07-04 12:29  Sandro Santilli <strk at keybit.net>
 
-	* Plug some memory leaks in the unit tests, to help finding
-	  lower-level ones...
+	* [r7578] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_geodetic.c, liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_print.c,
+	  liblwgeom/cunit/cu_surface.c: Plug some memory leaks in the unit
+	  tests, to help finding lower-level ones...
 
-2011-07-04 12:29  strk
+2011-07-04 12:29  Sandro Santilli <strk at keybit.net>
 
-	* Document memory management of lwdoubles_to_latlon and
-	  lwpoint_to_latlon
+	* [r7577] liblwgeom/lwprint.c: Document memory management of
+	  lwdoubles_to_latlon and lwpoint_to_latlon
 
-2011-07-04 11:24  strk
+2011-07-04 11:24  Sandro Santilli <strk at keybit.net>
 
-	* Fix support for MULTICURVEZM and make TIN spelling conformant to
-	  other (MixedCase). Add cohomprensive regress test for
-	  postgis_type_name(). Closes bug #1096 once again.
+	* [r7576] postgis/postgis.sql.in.c, regress/Makefile.in,
+	  regress/postgis_type_name.sql,
+	  regress/postgis_type_name_expected: Fix support for MULTICURVEZM
+	  and make TIN spelling conformant to other (MixedCase). Add
+	  cohomprensive regress test for postgis_type_name(). Closes bug
+	  #1096 once again.
 
-2011-07-04 11:24  strk
+2011-07-04 11:24  Sandro Santilli <strk at keybit.net>
 
-	* Add missing circular types to geomtype_struct_array, fixing bug
-	  #1094
+	* [r7575] liblwgeom/g_util.c: Add missing circular types to
+	  geomtype_struct_array, fixing bug #1094
 
-2011-07-04 11:24  strk
+2011-07-04 11:24  Sandro Santilli <strk at keybit.net>
 
-	* Do not hard-code lenght of geomtype struct array (See #1094)
+	* [r7574] liblwgeom/g_util.c: Do not hard-code lenght of geomtype
+	  struct array (See #1094)
 
-2011-07-04 10:10  strk
+2011-07-04 10:10  Sandro Santilli <strk at keybit.net>
 
-	* AddGeometryColumn: when complaining about unknown geometry type
-	  also report the used name and dimensions (see related bug #1096)
+	* [r7573] postgis/postgis.sql.in.c: AddGeometryColumn: when
+	  complaining about unknown geometry type also report the used name
+	  and dimensions (see related bug #1096)
 
-2011-07-04 10:02  strk
+2011-07-04 10:02  Sandro Santilli <strk at keybit.net>
 
-	* Fix unused variable warning when building against GEOS >= 3.3
+	* [r7572] postgis/lwgeom_geos.c: Fix unused variable warning when
+	  building against GEOS >= 3.3
 
-2011-07-04 09:26  mcayland
+2011-07-04 09:26  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Make all PostGIS object files depend upon liblwgeom, so that if
-	  liblwgeom is
+	* [r7571] postgis/Makefile.in: Make all PostGIS object files depend
+	  upon liblwgeom, so that if liblwgeom is
 	  changed then it also triggers a (complete) rebuild of PostGIS.
 	  
 	  Note as documented in #447 this is an over-cautious approach
@@ -18263,201 +32382,256 @@
 	  doesn't
 	  force a rebuild of PostGIS.
 
-2011-07-04 09:09  strk
+2011-07-04 09:09  Sandro Santilli <strk at keybit.net>
 
-	* typo
+	* [r7570] postgis/postgis.sql.in.c: typo
 
-2011-07-04 09:07  strk
+2011-07-04 09:07  Sandro Santilli <strk at keybit.net>
 
-	* Update expected error messages since typmod introduction. Closes
-	  ticket #1101.
+	* [r7569] topology/test/regress/createtopology_expected: Update
+	  expected error messages since typmod introduction. Closes ticket
+	  #1101.
 
-2011-07-04 09:00  strk
+2011-07-04 09:00  Sandro Santilli <strk at keybit.net>
 
-	* Do not manually delete rows from geometry_columns (which is now a
-	  view). Closes ticket #1099.
+	* [r7568] topology/topology.sql.in.c: Do not manually delete rows
+	  from geometry_columns (which is now a view). Closes ticket #1099.
 
-2011-07-04 07:35  robe
+2011-07-04 07:35  Regina Obe <lr at pcorp.us>
 
-	* Partial fix for #1076, county roads and highways, but think I
-	  might have broken the SELECT (addy).*,* from geocode('16725
-	  Rockford Road, Plymouth, MN 55447') or my data is bad
+	* [r7567]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/regress.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: Partial fix
+	  for #1076, county roads and highways, but think I might have
+	  broken the SELECT (addy).*,* from geocode('16725 Rockford Road,
+	  Plymouth, MN 55447') or my data is bad
 
-2011-07-03 21:47  mcayland
+2011-07-03 21:47  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for #1088: Too many columns in select crashes pgsql2shp.
+	* [r7566] loader/pgsql2shp-core.c: Fix for #1088: Too many columns
+	  in select crashes pgsql2shp.
 	  
 	  Instead of a fixed length query string, dynamically allocate the
 	  memory based
 	  upon the sum of the lengths of all of the column names.
 
-2011-07-03 16:51  robe
+2011-07-03 16:51  Regina Obe <lr at pcorp.us>
 
-	* #1087 improve rating algorithm. also start to use prepared
-	  statements where appropriate (don't put state in prepared part
-	  since that would prevent constraint exclusion from kicking in)
+	* [r7565] extras/tiger_geocoder/tiger_2010/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1087
+	  improve rating algorithm. also start to use prepared statements
+	  where appropriate (don't put state in prepared part since that
+	  would prevent constraint exclusion from kicking in)
 
-2011-07-03 10:45  robe
+2011-07-03 10:45  Regina Obe <lr at pcorp.us>
 
-	* Add more tests, minor cleanup
+	* [r7564] extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql:
+	  Add more tests, minor cleanup
 
-2011-07-03 05:03  robe
+2011-07-03 05:03  Regina Obe <lr at pcorp.us>
 
-	* Update credits and release notes to include change in
-	  geometry_columns and management functions, add ST_OffSetCurve to
+	* [r7563] NEWS, doc/introduction.xml, doc/release_notes.xml: Update
+	  credits and release notes to include change in geometry_columns
+	  and management functions, add ST_OffSetCurve to
 	  release_notes.xml, add Rafal Magda to people credits list
 
-2011-07-03 01:58  robe
+2011-07-03 01:58  Regina Obe <lr at pcorp.us>
 
-	* more column width cleanup
+	* [r7562] MIGRATION: more column width cleanup
 
-2011-07-03 01:52  robe
+2011-07-03 01:52  Regina Obe <lr at pcorp.us>
 
-	* #1095 clarification of what is mean by geometry_columns not
-	  supporting views built the old constraint way
+	* [r7561] MIGRATION: #1095 clarification of what is mean by
+	  geometry_columns not supporting views built the old constraint
+	  way
 
-2011-07-03 01:50  robe
+2011-07-03 01:50  Regina Obe <lr at pcorp.us>
 
-	* #1095 cleanup MIGRATION document
+	* [r7560] MIGRATION: #1095 cleanup MIGRATION document
 
-2011-07-03 01:29  robe
+2011-07-03 01:29  Regina Obe <lr at pcorp.us>
 
-	* #1096 same fix as for linestringZ, apply to geometryM, zm and
-	  multilinestringZ
+	* [r7559] postgis/postgis.sql.in.c: #1096 same fix as for
+	  linestringZ, apply to geometryM, zm and multilinestringZ
 
-2011-07-03 00:59  robe
+2011-07-03 00:59  Regina Obe <lr at pcorp.us>
 
-	* #1098 fix UpdateGeometrySRID
+	* [r7558] postgis/postgis.sql.in.c: #1098 fix UpdateGeometrySRID
 
-2011-07-02 18:19  robe
+2011-07-02 18:19  Regina Obe <lr at pcorp.us>
 
-	* #1083, #1093: fix typo, delete probe_geometry_columns which is
-	  now completely obsolte with gnew geometry-columns view change
+	* [r7557] doc/reference_management.xml: #1083, #1093: fix typo,
+	  delete probe_geometry_columns which is now completely obsolte
+	  with gnew geometry-columns view change
 
-2011-07-02 17:53  robe
+2011-07-02 17:53  Regina Obe <lr at pcorp.us>
 
-	* missed a spot
+	* [r7556] doc/reference_management.xml: missed a spot
 
-2011-07-02 17:52  robe
+2011-07-02 17:52  Regina Obe <lr at pcorp.us>
 
-	* add missing para end tag
+	* [r7555] doc/reference_management.xml: add missing para end tag
 
-2011-07-02 17:25  robe
+2011-07-02 17:25  Regina Obe <lr at pcorp.us>
 
-	* start describing management functions how typmod changes things
-	  --- Populate_geometry_columns, dropgeometrytable,
-	  dropgeometrycolumn. More to go.
+	* [r7554] doc/reference_management.xml: start describing management
+	  functions how typmod changes things ---
+	  Populate_geometry_columns, dropgeometrytable, dropgeometrycolumn.
+	  More to go.
 
-2011-07-02 16:52  robe
+2011-07-02 16:52  Regina Obe <lr at pcorp.us>
 
-	* #1096 can't create 2.5d linestrings
+	* [r7553] postgis/postgis.sql.in.c: #1096 can't create 2.5d
+	  linestrings
 
-2011-07-02 16:29  robe
+2011-07-02 16:29  Regina Obe <lr at pcorp.us>
 
-	* revise template to give example of optional argument
+	* [r7552] doc/template.xml: revise template to give example of
+	  optional argument
 
-2011-07-02 13:43  mcayland
+2011-07-02 13:43  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update loader regression test suite to add a simple test for
-	  shp2pgsql (much as we now do for pgsql2shp).
+	* [r7551] loader/cunit/Makefile.in, loader/cunit/cu_pgsql2shp.c,
+	  loader/cunit/cu_shp2pgsql.c, loader/cunit/cu_shp2pgsql.h,
+	  loader/cunit/cu_tester.c, loader/cunit/cu_tester.h,
+	  loader/pgsql2shp-cli.c, loader/pgsql2shp-core.c,
+	  loader/pgsql2shp-core.h, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/shpcommon.c: Update loader
+	  regression test suite to add a simple test for shp2pgsql (much as
+	  we now do for pgsql2shp).
 	  
 	  Note that these tests aren't completely comprehensive and should
 	  be expanded, with the long term aim
 	  of moving the loader regression tests out of the main regression
 	  harness and into CUnit instead.
 
-2011-07-02 12:34  mcayland
+2011-07-02 12:34  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix up the loader unit tests so that if --with-gui is not passed
-	  to configure, the non-GUI tests will continute to run instead of
+	* [r7550] loader/cunit/Makefile.in, loader/cunit/cu_tester.c: Fix
+	  up the loader unit tests so that if --with-gui is not passed to
+	  configure, the non-GUI tests will continute to run instead of
 	  failing compilation.
 
-2011-07-02 09:27  robe
+2011-07-02 09:27  Regina Obe <lr at pcorp.us>
 
-	* revise wmsservers_new to use new typmod and not directly delete
-	  and add to geometry_columns so passes regress
+	* [r7549] regress/wmsservers_new.sql: revise wmsservers_new to use
+	  new typmod and not directly delete and add to geometry_columns so
+	  passes regress
 
-2011-07-02 08:58  robe
+2011-07-02 08:58  Regina Obe <lr at pcorp.us>
 
-	* #944, #1081, #1083, #1088, #1084: Convert geometry_columns to a
-	  view, revise management functions to not update/delete from
-	  geometry_columns and to support typmod. Will use typmod behavior
-	  as default
+	* [r7548] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c, postgis/uninstall_legacy.sql.in.c,
+	  regress/loader/PointWithSchema-post.sql,
+	  regress/wmsservers_new.sql: #944, #1081, #1083, #1088, #1084:
+	  Convert geometry_columns to a view, revise management functions
+	  to not update/delete from geometry_columns and to support typmod.
+	  Will use typmod behavior as default
 	  fix typos in postgis_type_name and delete from geometry_column
 	  calls in regress.
 
-2011-07-01 22:36  mcayland
+2011-07-01 22:36  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Another attempt to fix #1080 on Windows - it seems that simply
-	  opening and
+	* [r7547] loader/pgsql2shp-core.c: Another attempt to fix #1080 on
+	  Windows - it seems that simply opening and
 	  closing a pgsql2shp state object is a good way to find all
 	  uninitialised
 	  variables.
 
-2011-07-01 21:37  mcayland
+2011-07-01 21:37  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Revised fix for #1080 based upon backtrace provided by Regina.
+	* [r7546] loader/pgsql2shp-core.c: Revised fix for #1080 based upon
+	  backtrace provided by Regina.
 
-2011-07-01 21:32  robe
+2011-07-01 21:32  Regina Obe <lr at pcorp.us>
 
-	* #1082 get rid of delete from geometry_columns call. Also cleanup
-	  argument list to make more modern
+	* [r7545] postgis/postgis.sql.in.c: #1082 get rid of delete from
+	  geometry_columns call. Also cleanup argument list to make more
+	  modern
 
-2011-07-01 14:34  robe
+2011-07-01 14:34  Regina Obe <lr at pcorp.us>
 
-	* Benchmark notes
+	* [r7544] MIGRATION: Benchmark notes
 
-2011-07-01 13:45  robe
+2011-07-01 13:45  Regina Obe <lr at pcorp.us>
 
-	* itemize more upgrade GOTCHAS
+	* [r7543] MIGRATION: itemize more upgrade GOTCHAS
 
-2011-07-01 13:10  robe
+2011-07-01 13:10  Regina Obe <lr at pcorp.us>
 
-	* convert to CREATE OR REPLACE postgis_constraint_srid
+	* [r7542] postgis/postgis.sql.in.c: convert to CREATE OR REPLACE
+	  postgis_constraint_srid
 
-2011-07-01 12:59  robe
+2011-07-01 12:59  Regina Obe <lr at pcorp.us>
 
-	* put in associated ticket numbers change to unaligned format for
-	  easier diffing, add in script to run test suite. Force LF and put
-	  svn keywords
+	* [r7541] extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/regress.sql: put in
+	  associated ticket numbers change to unaligned format for easier
+	  diffing, add in script to run test suite. Force LF and put svn
+	  keywords
 
-2011-07-01 11:47  strk
+2011-07-01 11:47  Sandro Santilli <strk at keybit.net>
 
-	* Add 2 more testcases for ST_OffsetCurve, one of which returning a
+	* [r7540] regress/offsetcurve.sql, regress/offsetcurve_expected:
+	  Add 2 more testcases for ST_OffsetCurve, one of which returning a
 	  MULTILINESTRING
 
-2011-07-01 10:59  strk
+2011-07-01 10:59  Sandro Santilli <strk at keybit.net>
 
-	* Use choice="opt" to encode default parameter for ST_OffsetCurve
+	* [r7539] doc/reference_processing.xml: Use choice="opt" to encode
+	  default parameter for ST_OffsetCurve
 
-2011-07-01 10:36  strk
+2011-07-01 10:36  Sandro Santilli <strk at keybit.net>
 
-	* Well, let's run the ST_OffsetCurve regress test only against
-	  GEOS-3.3. After all it's known to fail against 3.2 ... (due to
+	* [r7538] regress/Makefile.in: Well, let's run the ST_OffsetCurve
+	  regress test only against GEOS-3.3. After all it's known to fail
+	  against 3.2 ... (due to
 	  http://trac.osgeo.org/geos/ticket/455#comment:1)
 
-2011-07-01 10:14  strk
+2011-07-01 10:14  Sandro Santilli <strk at keybit.net>
 
-	* Test LINESTRING EMPTY return from ST_OffsetCurve
+	* [r7537] regress/offsetcurve.sql, regress/offsetcurve_expected:
+	  Test LINESTRING EMPTY return from ST_OffsetCurve
 
-2011-07-01 10:10  strk
+2011-07-01 10:10  Sandro Santilli <strk at keybit.net>
 
-	* Properly convert typed empties coming from GEOS.
+	* [r7536] postgis/lwgeom_geos.c, regress/tickets_expected: Properly
+	  convert typed empties coming from GEOS.
 
-2011-07-01 10:10  strk
+2011-07-01 10:10  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_OffsetCurve news item
+	* [r7535] NEWS: Add ST_OffsetCurve news item
 
-2011-07-01 09:56  strk
+2011-07-01 09:56  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_OffsetCurve function supporting both GEOS-3.2 and
-	  GEOS-3.3+. Uses distance parameter sign to derive left/right
-	  side. Includes regress testing and documentation. Based on patch
-	  by Rafal Magda.
+	* [r7534] doc/reference_processing.xml, postgis/lwgeom_geos.c,
+	  postgis/postgis.sql.in.c, regress/Makefile.in,
+	  regress/offsetcurve.sql, regress/offsetcurve_expected: Add
+	  ST_OffsetCurve function supporting both GEOS-3.2 and GEOS-3.3+.
+	  Uses distance parameter sign to derive left/right side. Includes
+	  regress testing and documentation. Based on patch by Rafal Magda.
 
-2011-07-01 09:33  mcayland
+2011-07-01 09:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #1080: cunit is crashing on test_ShpDumerDestroy().
+	* [r7533] loader/cunit/cu_pgsql2shp.c: Fix #1080: cunit is crashing
+	  on test_ShpDumerDestroy().
 	  
 	  Looks like the original code omitted to set the default config
 	  values causing
@@ -18465,44 +32639,59 @@
 	  platforms due
 	  to uninitialised pointers.
 
-2011-07-01 06:17  robe
+2011-07-01 06:17  Regina Obe <lr at pcorp.us>
 
-	* Force unix LF. Also get rid of unnecessary call to CREATE INDEX
-	  .. we have a missing script for that.
+	* [r7532] extras/tiger_geocoder/tiger_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: Force unix
+	  LF. Also get rid of unnecessary call to CREATE INDEX .. we have a
+	  missing script for that.
 
-2011-07-01 02:22  robe
+2011-07-01 02:22  Regina Obe <lr at pcorp.us>
 
-	* Fix for #1086 Issue with parsing out location. also added to
+	* [r7531]
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/state_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql:
+	  Fix for #1086 Issue with parsing out location. also added to
 	  regression tests
 
-2011-07-01 00:02  robe
+2011-07-01 00:02  Regina Obe <lr at pcorp.us>
 
-	* fix build -- had functions installed out of order of dependency
+	* [r7530] postgis/postgis.sql.in.c: fix build -- had functions
+	  installed out of order of dependency
 
-2011-06-30 19:18  robe
+2011-06-30 19:18  Regina Obe <lr at pcorp.us>
 
-	* add pretty function to return pretty name and use in
-	  postgis_constraint_type (seems 3 times as slow with conversion --
-	  will investigate later) -- before my 50 odd goemetry_columns
-	  based on all constraint columns returns 75ms now takes 250-300
-	  ms.
+	* [r7529] postgis/postgis.sql.in.c: add pretty function to return
+	  pretty name and use in postgis_constraint_type (seems 3 times as
+	  slow with conversion -- will investigate later) -- before my 50
+	  odd goemetry_columns based on all constraint columns returns 75ms
+	  now takes 250-300 ms.
 
-2011-06-30 17:16  dustymugs
+2011-06-30 17:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* removed accidental commit of some debug testing
+	* [r7528] raster/rt_core/rt_api.c: removed accidental commit of
+	  some debug testing
 
-2011-06-30 13:28  dustymugs
+2011-06-30 13:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* fixed logic issues in ST_AsJPEG
+	* [r7527] raster/rt_core/rt_api.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_asjpeg_expected: fixed logic issues in
+	  ST_AsJPEG
 
-2011-06-29 23:14  pramsey
+2011-06-29 23:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change parameter order in 900913 (magic!)
+	* [r7526] spatial_ref_sys.sql: Change parameter order in 900913
+	  (magic!)
 
-2011-06-29 22:40  mcayland
+2011-06-29 22:40  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit rework of #885 (pgsql2shp fields conversion from
-	  predefined list).
+	* [r7524] doc/man/pgsql2shp.1, loader/cunit/cu_pgsql2shp.c,
+	  loader/pgsql2shp-cli.c, loader/pgsql2shp-core.c,
+	  loader/pgsql2shp-core.h: Commit rework of #885 (pgsql2shp fields
+	  conversion from predefined list).
 	  
 	  This patch required extra work to ensure that it was a better fit
 	  for the
@@ -18511,92 +32700,126 @@
 	  coding style and altering various names/code locations as
 	  appropriate.
 
-2011-06-29 22:40  pramsey
+2011-06-29 22:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* GEOS no like POINT EMPTY (#1060)
+	* [r7523] postgis/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: GEOS no like POINT EMPTY (#1060)
 
-2011-06-29 21:10  robe
+2011-06-29 21:10  Regina Obe <lr at pcorp.us>
 
-	* Itemize some issues with restoring data from old that cause
-	  failures
+	* [r7522] MIGRATION: Itemize some issues with restoring data from
+	  old that cause failures
 
-2011-06-29 19:14  robe
+2011-06-29 19:14  Regina Obe <lr at pcorp.us>
 
-	* Add Hunter Systems Group to credits for funding Geocoder
-	  enhancements
+	* [r7521] NEWS, doc/introduction.xml, doc/release_notes.xml: Add
+	  Hunter Systems Group to credits for funding Geocoder enhancements
 
-2011-06-29 16:26  robe
+2011-06-29 16:26  Regina Obe <lr at pcorp.us>
 
-	* #949 more legacy cleanup -- add G-M to uninstall, remove accum
+	* [r7520] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c: #949 more legacy cleanup --
+	  add G-M to uninstall, remove accum
 
-2011-06-29 12:56  robe
+2011-06-29 12:56  Regina Obe <lr at pcorp.us>
 
-	* fix typo in uninstall script
+	* [r7519] postgis/uninstall_legacy.sql.in.c: fix typo in uninstall
+	  script
 
-2011-06-29 10:35  robe
+2011-06-29 10:35  Regina Obe <lr at pcorp.us>
 
-	* #1069: Support for specifying max_results to return. Regress
-	  already committed
+	* [r7518] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1069:
+	  Support for specifying max_results to return. Regress already
+	  committed
 
-2011-06-29 05:06  robe
+2011-06-29 05:06  Regina Obe <lr at pcorp.us>
 
-	* fix for #1073 handling mangled zipcodes and update regress to
+	* [r7517]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql:
+	  fix for #1073 handling mangled zipcodes and update regress to
 	  include these
 
-2011-06-29 04:23  robe
+2011-06-29 04:23  Regina Obe <lr at pcorp.us>
 
-	* #1077 preliminary regress tests and current outputs (formatting
+	* [r7516] extras/tiger_geocoder/tiger_2010/regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress,
+	  extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql:
+	  #1077 preliminary regress tests and current outputs (formatting
 	  needs cleanup and to be run by script but will deal with that
 	  later). Already have a regress failure when compared with docs.
 
-2011-06-28 19:36  strk
+2011-06-28 19:36  Sandro Santilli <strk at keybit.net>
 
-	* Simplify layertrigger tests dropping unneeded operations. The
-	  reduction was verified to still trigger bug #950 prior to the fix
-	  for it.
+	* [r7515] topology/test/regress/layertrigger.sql,
+	  topology/test/regress/layertrigger_expected: Simplify
+	  layertrigger tests dropping unneeded operations. The reduction
+	  was verified to still trigger bug #950 prior to the fix for it.
 
-2011-06-28 19:36  strk
+2011-06-28 19:36  Sandro Santilli <strk at keybit.net>
 
-	* Apply patch by Andrea Peri to fix topology layer trigger.
-	  Includes regress test. Closes ticket #950.
+	* [r7514] topology/test/Makefile,
+	  topology/test/regress/layertrigger.sql,
+	  topology/test/regress/layertrigger_expected,
+	  topology/topology.sql.in.c: Apply patch by Andrea Peri to fix
+	  topology layer trigger. Includes regress test. Closes ticket
+	  #950.
 
-2011-06-28 14:26  robe
+2011-06-28 14:26  Regina Obe <lr at pcorp.us>
 
-	* #1063 - add update website with released doc version to
-	  HOWTO_RELEASE steps
+	* [r7512] HOWTO_RELEASE: #1063 - add update website with released
+	  doc version to HOWTO_RELEASE steps
 
-2011-06-28 12:32  robe
+2011-06-28 12:32  Regina Obe <lr at pcorp.us>
 
-	* fix windows script -- had sh style commented alter schema line
+	* [r7511] extras/tiger_geocoder/tiger_2010/create_geocode.bat: fix
+	  windows script -- had sh style commented alter schema line
 	  instead of windows batch style commented alter schema
 
-2011-06-28 12:21  robe
+2011-06-28 12:21  Regina Obe <lr at pcorp.us>
 
-	* put in missing homage to GDAL. Also updated the GDAL use list
+	* [r7510] doc/introduction.xml: put in missing homage to GDAL. Also
+	  updated the GDAL use list
 	  http://trac.osgeo.org/gdal/wiki/SoftwareUsingGdal to include
 	  PostGIS
 
-2011-06-28 03:55  robe
+2011-06-28 03:55  Regina Obe <lr at pcorp.us>
 
-	* Partial fix for #1068 -- handling of misspelled numeric streets
+	* [r7509]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/rate_attributes.sql:
+	  Partial fix for #1068 -- handling of misspelled numeric streets
 	  such as 13nd or 22th and partial support for numeric streets with
 	  fractions like 1/2
 
-2011-06-28 02:50  robe
+2011-06-28 02:50  Regina Obe <lr at pcorp.us>
 
-	* get rid of drop / recreate norm_addy. It's not necessary yet
-	  since we haven't changed it.
+	* [r7508] extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: get
+	  rid of drop / recreate norm_addy. It's not necessary yet since we
+	  haven't changed it.
 
-2011-06-28 01:27  robe
+2011-06-28 01:27  Regina Obe <lr at pcorp.us>
 
-	* #1068 partial fix -- trimmed leading/trailing spaces in
+	* [r7507]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  #1068 partial fix -- trimmed leading/trailing spaces in
 	  normalize_address fields so now correctly handles things like
 	  W.,N. etc. More fixes coming.
 
-2011-06-27 21:35  dustymugs
+2011-06-27 21:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* - wrote function getSRTextSPI to create one code for getting the
-	  srtext of a SRID from the spatial_ref_sys table.
+	* [r7506] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c: - wrote
+	  function getSRTextSPI to create one code for getting the srtext
+	  of a SRID from the spatial_ref_sys table.
 	  - removed plpgsql function _ST_srtext with addition of
 	  getSRTextSPI.
 	  
@@ -18604,190 +32827,253 @@
 	  side-affect of the new function as the srtext returned through
 	  SPI is copied to an interval variable.
 
-2011-06-27 19:31  pramsey
+2011-06-27 19:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore GNUMakefile
+	* [r7505] .: Ignore GNUMakefile
 
-2011-06-27 19:24  pramsey
+2011-06-27 19:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change CompoundString to CompoundCurve
+	* [r7504] liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_out_kml.c,
+	  liblwgeom/cunit/cu_out_svg.c, liblwgeom/cunit/cu_out_x3d.c,
+	  postgis/SERIALIZED_FORM: Change CompoundString to CompoundCurve
 
-2011-06-27 19:02  dustymugs
+2011-06-27 19:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* modified expected results for rt_pixelvalue.
+	* [r7503] raster/test/regress/rt_pixelvalue_expected: modified
+	  expected results for rt_pixelvalue.
 	  
 	  Associated ticket is #1055
 
-2011-06-27 18:53  pramsey
+2011-06-27 18:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add migration guide for upgraders
+	* [r7502] MIGRATION: Add migration guide for upgraders
 
-2011-06-27 18:02  pramsey
+2011-06-27 18:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix type name for CompoundCurve
+	* [r7497] liblwgeom/lwutil.c: Fix type name for CompoundCurve
 
-2011-06-27 16:47  mcayland
+2011-06-27 16:47  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Edit rt_band_get_pixel() so that the warning message contains the
-	  out-of-bound coordinates being accessed.
+	* [r7496] raster/rt_core/rt_api.c: Edit rt_band_get_pixel() so that
+	  the warning message contains the out-of-bound coordinates being
+	  accessed.
 
-2011-06-27 14:35  dustymugs
+2011-06-27 14:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* Cleanup of error messages.
+	* [r7495] raster/rt_pg/rt_pg.c: Cleanup of error messages.
 
-2011-06-27 01:53  robe
+2011-06-27 01:53  Regina Obe <lr at pcorp.us>
 
-	* version garden test files so now named raster_gardentest_20.sql,
-	  postgis_gardentest_20.sql. Add reclassarg type example to raster
-	  garden objects
+	* [r7494] doc/Makefile.in, doc/xsl/raster_gardentest.sql.xsl,
+	  regress/Makefile.in: version garden test files so now named
+	  raster_gardentest_20.sql, postgis_gardentest_20.sql. Add
+	  reclassarg type example to raster garden objects
 
-2011-06-26 19:44  robe
+2011-06-26 19:44  Regina Obe <lr at pcorp.us>
 
-	* revise to ignore OUT parameters. Also add 20 to postgis garden
-	  output table name
+	* [r7493] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/raster_gardentest.sql.xsl: revise to ignore OUT
+	  parameters. Also add 20 to postgis garden output table name
 
-2011-06-26 18:18  robe
+2011-06-26 18:18  Regina Obe <lr at pcorp.us>
 
-	* change ST_AsX3d from using methodsynopsis back to funcsynopsis.
-	  This was an attempt before to stylize default args which didn't
-	  work out.
+	* [r7492] doc/reference_output.xml: change ST_AsX3d from using
+	  methodsynopsis back to funcsynopsis. This was an attempt before
+	  to stylize default args which didn't work out.
 
-2011-06-26 17:31  pramsey
+2011-06-26 17:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_IsValidDetail and ST_IsValidReason POLYGON CRASH (#712)
+	* [r7491] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  postgis/lwgeom_geos.c: ST_IsValidDetail and ST_IsValidReason
+	  POLYGON CRASH (#712)
 
-2011-06-26 03:15  pramsey
+2011-06-26 03:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make test for co-linearity a little more double-barrelled.
+	* [r7490] liblwgeom/lwsegmentize.c: Make test for co-linearity a
+	  little more double-barrelled.
 
-2011-06-26 02:29  pramsey
+2011-06-26 02:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Simplify circle stroking code (#1057)
+	* [r7489] liblwgeom/lwsegmentize.c: Simplify circle stroking code
+	  (#1057)
 
-2011-06-25 23:35  pramsey
+2011-06-25 23:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove reference to algorithm.h from generator.c
+	* [r7488] doc/html/image_src/generator.c: Remove reference to
+	  algorithm.h from generator.c
 
-2011-06-25 22:36  pramsey
+2011-06-25 22:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Prototype segmentation code and move lwalgorith.h prototypes into
+	* [r7487] liblwgeom/Makefile.in, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/g_box.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwtree.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos_split.c:
+	  Prototype segmentation code and move lwalgorith.h prototypes into
 	  liblwgeom.h and liblwgeom_internal.h
 
-2011-06-25 21:42  pramsey
+2011-06-25 21:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Convert some BOX3D functions to GBOX
+	* [r7486] liblwgeom/cunit/cu_algorithm.c, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h, postgis/lwgeom_functions_basic.c:
+	  Convert some BOX3D functions to GBOX
 
-2011-06-25 21:11  robe
+2011-06-25 21:11  Regina Obe <lr at pcorp.us>
 
-	* correct column names of norm_addy object - they were wrong
+	* [r7485] doc/extras_tigergeocoder.xml: correct column names of
+	  norm_addy object - they were wrong
 
-2011-06-25 20:32  robe
+2011-06-25 20:32  Regina Obe <lr at pcorp.us>
 
-	* update release notes
+	* [r7484] NEWS, doc/release_notes.xml: update release notes
 
-2011-06-25 20:24  robe
+2011-06-25 20:24  Regina Obe <lr at pcorp.us>
 
-	* #1062 apply typo patch from Kasif Rasul
+	* [r7483] doc/extras_topology.xml, doc/faq_raster.xml,
+	  doc/introduction.xml, doc/man/pgsql2shp.1,
+	  doc/reference_processing.xml, doc/reference_raster.xml: #1062
+	  apply typo patch from Kasif Rasul
 
-2011-06-25 19:20  dustymugs
+2011-06-25 19:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Modified ST_Transform to permit specification of projected
-	  raster's scale. This is due to the scale change that occurs when
-	  a raster is being reprojected.
+	* [r7482] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_transform.sql,
+	  raster/test/regress/rt_transform_expected: Modified ST_Transform
+	  to permit specification of projected raster's scale. This is due
+	  to the scale change that occurs when a raster is being
+	  reprojected.
 
-2011-06-25 18:15  robe
+2011-06-25 18:15  Regina Obe <lr at pcorp.us>
 
-	* bounding box clarification && (that it's 2D)
+	* [r7481] doc/reference_operator.xml: bounding box clarification &&
+	  (that it's 2D)
 
-2011-06-25 18:14  robe
+2011-06-25 18:14  Regina Obe <lr at pcorp.us>
 
-	* minor clarifications
+	* [r7480] doc/extras_tigergeocoder.xml: minor clarifications
 
-2011-06-25 08:13  robe
+2011-06-25 08:13  Regina Obe <lr at pcorp.us>
 
-	* #1051 - fix rating logic (typo in direction weight) causing -
+	* [r7474]
+	  extras/tiger_geocoder/tiger_2010/geocode/rate_attributes.sql:
+	  #1051 - fix rating logic (typo in direction weight) causing -
 	  select (g.addy).*, astext(g.geomout), g.* from geocode('150 2nd
 	  Ave S, Minneapolis, MN 55401') as g To return north instead of
 	  south. Also change functions to use named args
 
-2011-06-24 23:18  robe
+2011-06-24 23:18  Regina Obe <lr at pcorp.us>
 
-	* bah pdflatex doesn't like sect3. Just make it a sect2
+	* [r7473] doc/xsl/postgis_aggs_mm.xml.xsl: bah pdflatex doesn't
+	  like sect3. Just make it a sect2
 
-2011-06-24 21:49  robe
+2011-06-24 21:49  Regina Obe <lr at pcorp.us>
 
-	* Id on para didn't take -- lets try a sect3
+	* [r7472] doc/xsl/postgis_aggs_mm.xml.xsl: Id on para didn't take
+	  -- lets try a sect3
 
-2011-06-24 21:20  dustymugs
+2011-06-24 21:20  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added sanitization of the algorithm parameter of ST_Transform.
-	  Refactored the regression test for ST_Transform.
+	* [r7471] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_transform.sql,
+	  raster/test/regress/rt_transform_expected: Added sanitization of
+	  the algorithm parameter of ST_Transform. Refactored the
+	  regression test for ST_Transform.
 
-2011-06-24 16:30  robe
+2011-06-24 16:30  Regina Obe <lr at pcorp.us>
 
-	* put in ancho for changed section and link back from top of What's
-	  new to breaking changes section
+	* [r7470] doc/xsl/postgis_aggs_mm.xml.xsl: put in ancho for changed
+	  section and link back from top of What's new to breaking changes
+	  section
 
-2011-06-24 16:14  robe
+2011-06-24 16:14  Regina Obe <lr at pcorp.us>
 
-	* revise 2.0 changed,enhanced, new to also capture paragraphs
-	  embedded in sub tags such as warning, note. Was missing some
-	  breaking changes ST_Length, ST_GeomFromText etc because it wasn't
-	  catching warnings
+	* [r7469] doc/xsl/postgis_aggs_mm.xml.xsl: revise 2.0
+	  changed,enhanced, new to also capture paragraphs embedded in sub
+	  tags such as warning, note. Was missing some breaking changes
+	  ST_Length, ST_GeomFromText etc because it wasn't catching
+	  warnings
 
-2011-06-24 14:25  robe
+2011-06-24 14:25  Regina Obe <lr at pcorp.us>
 
-	* thought had changed to use default params -- guess not. Also
+	* [r7468]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  thought had changed to use default params -- guess not. Also
 	  stamp in time author info as comment inside function
 
-2011-06-24 13:02  robe
+2011-06-24 13:02  Regina Obe <lr at pcorp.us>
 
-	* Get rid of note about ST_Transform not working on all platforms.
-	  No longer true
+	* [r7467] doc/reference_raster.xml: Get rid of note about
+	  ST_Transform not working on all platforms. No longer true
 
-2011-06-24 01:28  robe
+2011-06-24 01:28  Regina Obe <lr at pcorp.us>
 
-	* revert unnecessary edit
+	* [r7463]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  revert unnecessary edit
 
-2011-06-24 01:20  robe
+2011-06-24 01:20  Regina Obe <lr at pcorp.us>
 
-	* fix for #1051 -- postDirAbbrev doesn't parse
+	* [r7462]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  fix for #1051 -- postDirAbbrev doesn't parse
 
-2011-06-23 23:50  chodgson
+2011-06-23 23:50  Chris Hodgson <chodgson at refractions.net>
 
-	* further bug fix for #884
+	* [r7461] ., liblwgeom/liblwgeom.h, liblwgeom/lwcircstring.c,
+	  loader/getopt.c, loader/getopt.h, loader/shpcommon.h,
+	  postgis/long_xact.sql.in.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/postgis.sql.in.c, postgis/sqlmm.sql.in.c,
+	  raster/doc/RFC2-WellKnownBinaryFormat,
+	  raster/scripts/python/Makefile.rt.sample,
+	  raster/scripts/python/rtreader.py: further bug fix for #884
 
-2011-06-23 22:29  robe
+2011-06-23 22:29  Regina Obe <lr at pcorp.us>
 
-	* note about ST_length geography breaking change -- in 1.5 used to
-	  return perimeter of a polygon now returns 0 just like geometry
+	* [r7459] doc/reference_measure.xml: note about ST_length geography
+	  breaking change -- in 1.5 used to return perimeter of a polygon
+	  now returns 0 just like geometry
 
-2011-06-23 21:15  robe
+2011-06-23 21:15  Regina Obe <lr at pcorp.us>
 
-	* time autho stamp signatures
+	* [r7458]
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_fuzzy.sql:
+	  time autho stamp signatures
 
-2011-06-23 21:11  robe
+2011-06-23 21:11  Regina Obe <lr at pcorp.us>
 
-	* fix typos
+	* [r7457]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  fix typos
 
-2011-06-23 21:08  robe
+2011-06-23 21:08  Regina Obe <lr at pcorp.us>
 
-	* put in author revision id placeholder and have as part of code
+	* [r7456]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  put in author revision id placeholder and have as part of code
 	  logic as well
 
-2011-06-23 20:46  dustymugs
+2011-06-23 20:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* Removed rt_raster_transform from rt_api.c and any calls to it
-	  since rt_raster_gdal_warp has same results for reprojections.
+	* [r7455] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Removed
+	  rt_raster_transform from rt_api.c and any calls to it since
+	  rt_raster_gdal_warp has same results for reprojections.
 
-2011-06-23 20:29  dustymugs
+2011-06-23 20:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of rt_raster_gdal_warp function in rt_api.c. This was
-	  written based upon GDAL's gdalwarp utility to provide a flexible
-	  means to reproject, change the scale of, adjust the skew (deskew)
-	  of and shift the origin of a raster. RASTER_transform in rt_pg.c
-	  has been adjusted to make use of rt_raster_gdal_warp instead of
-	  rt_raster_transform. Regression te
+	* [r7454] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c: Addition of rt_raster_gdal_warp
+	  function in rt_api.c. This was written based upon GDAL's gdalwarp
+	  utility to provide a flexible means to reproject, change the
+	  scale of, adjust the skew (deskew) of and shift the origin of a
+	  raster. RASTER_transform in rt_pg.c has been adjusted to make use
+	  of rt_raster_gdal_warp instead of rt_raster_transform. Regression
+	  te
 	  sts confirm that resulting rasters from rt_raster_gdal_warp are
 	  identical to that of rt_raster_transform.
 	  
@@ -18798,248 +33084,305 @@
 	  The function rt_raster_transform will be removed in a future
 	  revision.
 
-2011-06-23 15:36  pramsey
+2011-06-23 15:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-base circular bbox regressions
+	* [r7453] regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-multisurface_expected: Re-base circular bbox
+	  regressions
 
-2011-06-23 13:57  pramsey
+2011-06-23 13:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* PostGIS Box2D (and && operator) gives wrong result for
-	  ST_CircularString type (#578)
+	* [r7452] liblwgeom/g_box.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwsegmentize.c: PostGIS Box2D (and && operator) gives
+	  wrong result for ST_CircularString type (#578)
 
-2011-06-23 13:53  robe
+2011-06-23 13:53  Regina Obe <lr at pcorp.us>
 
-	* clean up credits a bit
+	* [r7451] CREDITS: clean up credits a bit
 
-2011-06-23 11:07  robe
+2011-06-23 11:07  Regina Obe <lr at pcorp.us>
 
-	* #944 support functions to comb out type,srid, dim from constraint
-	  based geometries and integration into geometry_columns_v so that
-	  non-typmods and typmods of the world can coexist in harmony
+	* [r7450] postgis/postgis.sql.in.c: #944 support functions to comb
+	  out type,srid, dim from constraint based geometries and
+	  integration into geometry_columns_v so that non-typmods and
+	  typmods of the world can coexist in harmony
 
-2011-06-23 11:01  strk
+2011-06-23 11:01  Sandro Santilli <strk at keybit.net>
 
-	* Don't interpret types as flags in ST_Summary. Fixes bug #1054
-	  (needs automated testing)
+	* [r7449] postgis/lwgeom_debug.c: Don't interpret types as flags in
+	  ST_Summary. Fixes bug #1054 (needs automated testing)
 
-2011-06-22 23:13  robe
+2011-06-22 23:13  Regina Obe <lr at pcorp.us>
 
-	* minor addition to GEOMETRYCOLLECTION(EMPTY) warning
+	* [r7448] doc/reference_constructor.xml: minor addition to
+	  GEOMETRYCOLLECTION(EMPTY) warning
 
-2011-06-22 23:10  robe
+2011-06-22 23:10  Regina Obe <lr at pcorp.us>
 
-	* #924 - document breaking change
+	* [r7447] doc/reference_accessor.xml,
+	  doc/reference_constructor.xml: #924 - document breaking change
 
-2011-06-22 22:09  pramsey
+2011-06-22 22:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_ForceRHR POLYGON EMPTY crash (#710)
+	* [r7446] liblwgeom/lwpoly.c: ST_ForceRHR POLYGON EMPTY crash
+	  (#710)
 
-2011-06-22 21:33  pramsey
+2011-06-22 21:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_GeoHash POLYGON Empty crash (#711)
+	* [r7445] liblwgeom/lwgeom.c, postgis/lwgeom_functions_basic.c:
+	  ST_GeoHash POLYGON Empty crash (#711)
 
-2011-06-22 06:55  robe
+2011-06-22 06:55  Regina Obe <lr at pcorp.us>
 
-	* Fill in raster coverage protos for ST_Histogram (still need
-	  examples for these), fix typo in another function, change
-	  ST_SetBandNoDataValue as if it supports default args (the
-	  documentation will be consistent with implementation onces #1049
-	  is done)
+	* [r7444] doc/reference_raster.xml: Fill in raster coverage protos
+	  for ST_Histogram (still need examples for these), fix typo in
+	  another function, change ST_SetBandNoDataValue as if it supports
+	  default args (the documentation will be consistent with
+	  implementation onces #1049 is done)
 
-2011-06-21 06:13  robe
+2011-06-21 06:13  Regina Obe <lr at pcorp.us>
 
-	* get rid of extraneous proto
+	* [r7443] doc/reference_raster.xml: get rid of extraneous proto
 
-2011-06-21 05:45  robe
+2011-06-21 05:45  Regina Obe <lr at pcorp.us>
 
-	* more fine tuning of output of driver options
+	* [r7442] doc/reference_raster.xml: more fine tuning of output of
+	  driver options
 
-2011-06-21 05:25  robe
+2011-06-21 05:25  Regina Obe <lr at pcorp.us>
 
-	* Fix ST_GDalDrivers output to correctly output options as table. I
-	  had thought it was evenly balanced (all options have
-	  descriptions), but that is not the case so origianl example had
-	  the name and descriptions mismatched
+	* [r7441] doc/reference_raster.xml: Fix ST_GDalDrivers output to
+	  correctly output options as table. I had thought it was evenly
+	  balanced (all options have descriptions), but that is not the
+	  case so origianl example had the name and descriptions mismatched
 
-2011-06-21 05:05  dustymugs
+2011-06-21 05:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored code and removed the use of SET_VARSIZE for
-	  RASTER_band to fix segfault.
+	* [r7440] raster/rt_pg/rt_pg.c, raster/test/regress/rt_band.sql,
+	  raster/test/regress/rt_band_expected: Refactored code and removed
+	  the use of SET_VARSIZE for RASTER_band to fix segfault.
 	  
 	  Associated ticket is #1044.
 
-2011-06-21 04:18  robe
+2011-06-21 04:18  Regina Obe <lr at pcorp.us>
 
-	* change bigint to integer for ST_ValueCount record outputs
+	* [r7439] doc/reference_raster.xml: change bigint to integer for
+	  ST_ValueCount record outputs
 
-2011-06-21 03:26  robe
+2011-06-21 03:26  Regina Obe <lr at pcorp.us>
 
-	* document ST_AsJPEG and fill in missing protos for ST_ValueCount
+	* [r7438] doc/reference_raster.xml: document ST_AsJPEG and fill in
+	  missing protos for ST_ValueCount
 
-2011-06-21 01:52  robe
+2011-06-21 01:52  Regina Obe <lr at pcorp.us>
 
-	* Get rid of removed ST_SummaryStats proto and add new
-	  ST_SummaryStats proto
+	* [r7437] doc/reference_raster.xml: Get rid of removed
+	  ST_SummaryStats proto and add new ST_SummaryStats proto
 
-2011-06-20 21:15  pramsey
+2011-06-20 21:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Dump with GSerialized POINT EMPTY and EWKT/AsText mismatch
-	  (#746)
+	* [r7436] postgis/lwgeom_dump.c: ST_Dump with GSerialized POINT
+	  EMPTY and EWKT/AsText mismatch (#746)
 
-2011-06-20 17:08  pramsey
+2011-06-20 17:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Increase size of generator.c static buffer. (#583)
+	* [r7435] doc/html/image_src/generator.c: Increase size of
+	  generator.c static buffer. (#583)
 
-2011-06-20 16:58  pramsey
+2011-06-20 16:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* geography: ST_Intersects, ST_DWithin gbox_overlaps: geometries
-	  have mismatched dimensionality (#1037)
+	* [r7433] liblwgeom/g_box.c: geography: ST_Intersects, ST_DWithin
+	  gbox_overlaps: geometries have mismatched dimensionality (#1037)
 
-2011-06-20 14:55  dustymugs
+2011-06-20 14:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed the regression tests for ST_Transform in preparation for
-	  testing replacement ST_Transform function with different
-	  underlying code.
+	* [r7432] raster/test/regress/rt_transform.sql,
+	  raster/test/regress/rt_transform_expected: Changed the regression
+	  tests for ST_Transform in preparation for testing replacement
+	  ST_Transform function with different underlying code.
 
-2011-06-20 11:37  strk
+2011-06-20 11:37  Sandro Santilli <strk at keybit.net>
 
-	* Add missing SQL/MM functions in the status section (TODO)
+	* [r7431] topology/topology.sql.in.c: Add missing SQL/MM functions
+	  in the status section (TODO)
 
-2011-06-20 09:29  robe
+2011-06-20 09:29  Regina Obe <lr at pcorp.us>
 
-	* #1040 -- ST_MinimumBoundingCircle -- replace X(), Y() deprecated
-	  calls with ST_X(), ST_Y(). Also changed to use default args. We
-	  really need regression tests for this function. Will put on
-	  separate task.
+	* [r7430] doc/reference_processing.xml, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c: #1040 -- ST_MinimumBoundingCircle
+	  -- replace X(), Y() deprecated calls with ST_X(), ST_Y(). Also
+	  changed to use default args. We really need regression tests for
+	  this function. Will put on separate task.
 
-2011-06-19 06:24  robe
+2011-06-19 06:24  Regina Obe <lr at pcorp.us>
 
-	* more cleanup of hard upgrade instructions
+	* [r7429] doc/installation.xml: more cleanup of hard upgrade
+	  instructions
 
-2011-06-19 05:52  robe
+2011-06-19 05:52  Regina Obe <lr at pcorp.us>
 
-	* Amend hard upgrade instructions to remove stuff that is obsolete
-	  and add in additional steps needed for PostGIS 2.0. Also update
-	  creating new spatial database to include instructions for
-	  installing raster and topology support
+	* [r7428] doc/installation.xml: Amend hard upgrade instructions to
+	  remove stuff that is obsolete and add in additional steps needed
+	  for PostGIS 2.0. Also update creating new spatial database to
+	  include instructions for installing raster and topology support
 
-2011-06-19 00:31  robe
+2011-06-19 00:31  Regina Obe <lr at pcorp.us>
 
-	* add index check / generation for soundex, lower, geometry gist,
+	* [r7427]
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql:
+	  add index check / generation for soundex, lower, geometry gist,
 	  and least_hn
 
-2011-06-18 22:16  robe
+2011-06-18 22:16  Regina Obe <lr at pcorp.us>
 
-	* Fix for #1025 -- Geocoder Failing with NORTH EAST is street name
+	* [r7426]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  Fix for #1025 -- Geocoder Failing with NORTH EAST is street name
 
-2011-06-18 18:24  pramsey
+2011-06-18 18:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Error message change
+	* [r7425] postgis/gserialized_typmod.c: Error message change
 
-2011-06-18 07:35  robe
+2011-06-18 07:35  Regina Obe <lr at pcorp.us>
 
-	* hmm lets try that again
+	* [r7424]
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql:
+	  hmm lets try that again
 
-2011-06-18 07:34  robe
+2011-06-18 07:34  Regina Obe <lr at pcorp.us>
 
-	* backout some code didn't mean to commit
+	* [r7423]
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql:
+	  backout some code didn't mean to commit
 
-2011-06-18 07:29  robe
+2011-06-18 07:29  Regina Obe <lr at pcorp.us>
 
-	* Found some indexes I missed -- added to tiger_loader, also #1036
-	  create missing_indexes generation script to back install. Still
-	  need to put in logic for some more indexes, but htis is a good
-	  start. Also documented new function
+	* [r7422] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql: Found some
+	  indexes I missed -- added to tiger_loader, also #1036 create
+	  missing_indexes generation script to back install. Still need to
+	  put in logic for some more indexes, but htis is a good start.
+	  Also documented new function
 
-2011-06-18 06:03  robe
+2011-06-18 06:03  Regina Obe <lr at pcorp.us>
 
-	* fix error in last commit
+	* [r7421]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql: fix
+	  error in last commit
 
-2011-06-18 05:33  robe
+2011-06-18 05:33  Regina Obe <lr at pcorp.us>
 
-	* get rid of unnecessary auto casting
+	* [r7420]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql: get
+	  rid of unnecessary auto casting
 
-2011-06-18 05:15  robe
+2011-06-18 05:15  Regina Obe <lr at pcorp.us>
 
-	* #1035 gluing on .0 is making least check always return 0.
+	* [r7419]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql:
+	  #1035 gluing on .0 is making least check always return 0.
 
-2011-06-18 03:41  robe
+2011-06-18 03:41  Regina Obe <lr at pcorp.us>
 
-	* Change ST_Length, ST_Perimeter for geography to use default
-	  parameters, document ST_Perimeter(geography,use_spheroid)
+	* [r7418] doc/reference_measure.xml, postgis/geography.sql.in.c,
+	  postgis/postgis_drop.sql.in.c: Change ST_Length, ST_Perimeter for
+	  geography to use default parameters, document
+	  ST_Perimeter(geography,use_spheroid)
 
-2011-06-17 22:36  pramsey
+2011-06-17 22:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Quiet regression failure for minor rounding difference.
+	* [r7417] regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected: Quiet regression failure
+	  for minor rounding difference.
 
-2011-06-17 22:18  pramsey
+2011-06-17 22:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bounding box calculation for straight CircString fails (#668)
+	* [r7416] liblwgeom/g_box.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwsegmentize.c,
+	  regress/tickets.sql, regress/tickets_expected: Bounding box
+	  calculation for straight CircString fails (#668)
 
-2011-06-17 21:26  pramsey
+2011-06-17 21:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Retrieving and storing Geography column data through JDBC does
-	  not work (#350)
+	* [r7415] postgis/geography.sql.in.c: Retrieving and storing
+	  Geography column data through JDBC does not work (#350)
 
-2011-06-17 21:11  pramsey
+2011-06-17 21:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Define alias ST_Perimeter (for geography ST_Length) (#526)
+	* [r7414] postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c: Define alias ST_Perimeter (for
+	  geography ST_Length) (#526)
 
-2011-06-17 20:33  robe
+2011-06-17 20:33  Regina Obe <lr at pcorp.us>
 
-	* #1032 fix typos
+	* [r7413] doc/reference_raster.xml: #1032 fix typos
 
-2011-06-17 20:14  robe
+2011-06-17 20:14  Regina Obe <lr at pcorp.us>
 
-	* change geography to geometry and limit view to only output tables
-	  and views
+	* [r7412] postgis/postgis.sql.in.c: change geography to geometry
+	  and limit view to only output tables and views
 
-2011-06-17 20:06  dustymugs
+2011-06-17 20:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* fixed parameter passing in ST_AsTiff
+	* [r7411] raster/rt_pg/rtpostgis.sql.in.c: fixed parameter passing
+	  in ST_AsTiff
 
-2011-06-17 15:16  dustymugs
+2011-06-17 15:16  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored ST_SummaryStats so that there is a non-user
-	  _ST_SummaryStats that is the backend of all ST_SummaryStats and
-	  ST_ApproxSummary stats functions. This eliminates the
-	  "sample_percent" parameter from the one ST_SummaryStats function
-	  that had it.
+	* [r7410] raster/rt_pg/rtpostgis.sql.in.c: Refactored
+	  ST_SummaryStats so that there is a non-user _ST_SummaryStats that
+	  is the backend of all ST_SummaryStats and ST_ApproxSummary stats
+	  functions. This eliminates the "sample_percent" parameter from
+	  the one ST_SummaryStats function that had it.
 
-2011-06-16 21:01  pramsey
+2011-06-16 21:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Partial typmod support for PostGIS geometry (#944)
+	* [r7409] postgis/Makefile.in, postgis/geography.h,
+	  postgis/geography.sql.in.c, postgis/geography_inout.c,
+	  postgis/geometry_inout.c, postgis/gserialized_typmod.c,
+	  postgis/postgis.sql.in.c: Partial typmod support for PostGIS
+	  geometry (#944)
 
-2011-06-16 20:29  robe
+2011-06-16 20:29  Regina Obe <lr at pcorp.us>
 
-	* Some cleanup. change ST_AsGDALRaster example using spatial ref to
-	  agree with new syntax of just passing in the srid.
+	* [r7408] doc/reference_raster.xml: Some cleanup. change
+	  ST_AsGDALRaster example using spatial ref to agree with new
+	  syntax of just passing in the srid.
 
-2011-06-16 02:16  robe
+2011-06-16 02:16  Regina Obe <lr at pcorp.us>
 
-	* put in missing tag
+	* [r7404] doc/reference_operator.xml: put in missing tag
 
-2011-06-16 02:08  robe
+2011-06-16 02:08  Regina Obe <lr at pcorp.us>
 
-	* document &&& nd interacts bounding box operator
+	* [r7403] doc/reference_operator.xml: document &&& nd interacts
+	  bounding box operator
 
-2011-06-15 23:59  pramsey
+2011-06-15 23:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix up selectivity and operators a little
+	* [r7402] liblwgeom/g_box.c, liblwgeom/liblwgeom.h,
+	  postgis/geography.sql.in.c, postgis/geometry_gist_selectivity.c,
+	  postgis/lwgeom_box3d.c, postgis/postgis.sql.in.c: Fix up
+	  selectivity and operators a little
 
-2011-06-15 20:22  pramsey
+2011-06-15 20:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add a couple more GBOX functions to map to B2DF4 requirements
+	* [r7401] liblwgeom/g_box.c, liblwgeom/liblwgeom.h,
+	  postgis/lwgeom_box2dfloat4.c, postgis/lwgeom_gist.c: Add a couple
+	  more GBOX functions to map to B2DF4 requirements
 
-2011-06-15 15:43  dustymugs
+2011-06-15 15:43  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed band pixel types to 64BF instead of 32BF so that the
-	  warning messages for data getting converted are mitigated.
+	* [r7400] raster/test/core/testapi.c: Changed band pixel types to
+	  64BF instead of 32BF so that the warning messages for data
+	  getting converted are mitigated.
 
-2011-06-15 14:29  dustymugs
+2011-06-15 14:29  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added value for nBandCount attribute of GDALWarpOptions in
-	  rt_raster_transform function.
+	* [r7399] raster/rt_core/rt_api.c: Added value for nBandCount
+	  attribute of GDALWarpOptions in rt_raster_transform function.
 	  
 	  This is based upon the discussion found at:
 	  
@@ -19047,111 +33390,138 @@
 	  
 	  Related ticket is #1015
 
-2011-06-15 12:44  robe
+2011-06-15 12:44  Regina Obe <lr at pcorp.us>
 
-	* #722 - get rid of transform and remainder of SnapToGrid
-	  deprecated family of functions. Add to #945 uninstall_legacy and
-	  also legacy.sql.in.c files
+	* [r7398] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c: #722 - get rid of transform
+	  and remainder of SnapToGrid deprecated family of functions. Add
+	  to #945 uninstall_legacy and also legacy.sql.in.c files
 
-2011-06-15 01:25  robe
+2011-06-15 01:25  Regina Obe <lr at pcorp.us>
 
-	* Change ST_MapAlgebra to use default args and amend the
-	  documentation to reflect change. In so doing fix #969 -
-	  inconsistent order of args, #967 raster regress failures on 9.0
-	  and 9.1
+	* [r7397] doc/reference_raster.xml,
+	  raster/rt_pg/rtpostgis.sql.in.c: Change ST_MapAlgebra to use
+	  default args and amend the documentation to reflect change. In so
+	  doing fix #969 - inconsistent order of args, #967 raster regress
+	  failures on 9.0 and 9.1
 
-2011-06-14 19:32  dustymugs
+2011-06-14 19:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed SRID to something within the range permitted by
-	  GSERIALIZED. As of this revision, all raster regression tests
-	  pass successfully.
+	* [r7396] raster/test/regress/create_rt_band_properties_test.sql,
+	  raster/test/regress/rt_spatial_relationship.sql: Changed SRID to
+	  something within the range permitted by GSERIALIZED. As of this
+	  revision, all raster regression tests pass successfully.
 
-2011-06-14 16:21  pramsey
+2011-06-14 16:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* bug in BOX2DFLOAT4_in function due to GSERIALIZED_ON change
-	  (#1020)
+	* [r7395] postgis/lwgeom_box2dfloat4.c: bug in BOX2DFLOAT4_in
+	  function due to GSERIALIZED_ON change (#1020)
 
-2011-06-14 16:04  dustymugs
+2011-06-14 16:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* With GSERIALIZED_ON enabled, adapted code that needs preprocessor
-	  conditions. Basically instead of "geometry_gist_sel" and
+	* [r7394] raster/rt_pg/rtpostgis.sql.in.c: With GSERIALIZED_ON
+	  enabled, adapted code that needs preprocessor conditions.
+	  Basically instead of "geometry_gist_sel" and
 	  "geometry_gist_joinsel", GSERIALIZED_ON uses "contsel" and
 	  "contjoinsel"
 
-2011-06-14 08:20  strk
+2011-06-14 08:20  Sandro Santilli <strk at keybit.net>
 
-	* Do not explicitly name GIST opclass (was renamed). Fixes topology
-	  after the GSERIALIZED switch.
+	* [r7393] topology/topology.sql.in.c: Do not explicitly name GIST
+	  opclass (was renamed). Fixes topology after the GSERIALIZED
+	  switch.
 
-2011-06-14 08:20  strk
+2011-06-14 08:20  Sandro Santilli <strk at keybit.net>
 
-	* Fix libiconv linker flags
+	* [r7392] loader/Makefile.in, loader/cunit/Makefile.in: Fix
+	  libiconv linker flags
 
-2011-06-14 04:26  pramsey
+2011-06-14 04:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Apply bug in BOX2DFLOAT4_in function due to GSERIALIZED_ON change
-	  (#1020) from dustymugs
+	* [r7391] postgis/lwgeom_box2dfloat4.c: Apply bug in BOX2DFLOAT4_in
+	  function due to GSERIALIZED_ON change (#1020) from dustymugs
 
-2011-06-13 21:47  dustymugs
+2011-06-13 21:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed memory leak in RASTER_asGDALRaster of rt_pg.c and left note
-	  in comments of rt_raster_to_gdal
+	* [r7390] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Fixed memory
+	  leak in RASTER_asGDALRaster of rt_pg.c and left note in comments
+	  of rt_raster_to_gdal
 
-2011-06-13 21:31  pramsey
+2011-06-13 21:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move from GSERIALIZED off by default to on by default. Adjust
-	  minor regression changes as necessary.
+	* [r7389] postgis/gserialized.h, regress/dump_expected,
+	  regress/lwgeom_regress_expected, regress/regress_expected,
+	  regress/sql-mm-circularstring_expected: Move from GSERIALIZED off
+	  by default to on by default. Adjust minor regression changes as
+	  necessary.
 
-2011-06-13 20:20  pramsey
+2011-06-13 20:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Allow cunit tests to build and run in OS/X
+	* [r7388] loader/cunit/Makefile.in: Allow cunit tests to build and
+	  run in OS/X
 
-2011-06-13 19:51  pramsey
+2011-06-13 19:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add svn:ignores for some new derived files.
+	* [r7387] postgis: Add svn:ignores for some new derived files.
 
-2011-06-13 12:30  robe
+2011-06-13 12:30  Regina Obe <lr at pcorp.us>
 
-	* update 1.5.3 release notes
+	* [r7386] NEWS, doc/release_notes.xml: update 1.5.3 release notes
 
-2011-06-13 11:25  robe
+2011-06-13 11:25  Regina Obe <lr at pcorp.us>
 
-	* #609 revise JDBC to use non-deprecated calling syntax
+	* [r7384] doc/using_postgis_app.xml: #609 revise JDBC to use
+	  non-deprecated calling syntax
 
-2011-06-13 01:32  robe
+2011-06-13 01:32  Regina Obe <lr at pcorp.us>
 
-	* surpress outputting sql if not in debug mode
+	* [r7382]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  surpress outputting sql if not in debug mode
 
-2011-06-13 01:31  robe
+2011-06-13 01:31  Regina Obe <lr at pcorp.us>
 
-	* change to return as much address as possible even if no fullname
+	* [r7381]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  change to return as much address as possible even if no fullname
 	  at least try to return city, state, zip
 
-2011-06-12 14:33  robe
+2011-06-12 14:33  Regina Obe <lr at pcorp.us>
 
-	* fix typo in reverse_geocode name and get rid of other prot since
-	  changed to use default args
+	* [r7380] doc/extras_tigergeocoder.xml: fix typo in reverse_geocode
+	  name and get rid of other prot since changed to use default args
 
-2011-06-12 06:34  robe
+2011-06-12 06:34  Regina Obe <lr at pcorp.us>
 
-	* fix division by zero issue
+	* [r7379]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql: fix
+	  division by zero issue
 
-2011-06-12 04:55  robe
+2011-06-12 04:55  Regina Obe <lr at pcorp.us>
 
-	* make debug statement conditional
+	* [r7378]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  make debug statement conditional
 
-2011-06-12 04:52  robe
+2011-06-12 04:52  Regina Obe <lr at pcorp.us>
 
-	* significantly improve speed of reverse geocode (when all states
+	* [r7377]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql:
+	  significantly improve speed of reverse geocode (when all states
 	  loaded), but using CTEs and unparameterizing query (parameterized
 	  often does not use inheritance), reverse_geocode to use default
 	  parameters, put in table column comments to describe some of what
 	  loader columns mean.
 
-2011-06-11 19:26  dustymugs
+2011-06-11 19:26  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added function parameter "header_only" to rt_raster_deserialize.
-	  This instructs the function to only extract the raster header.
+	* [r7376] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testwkb.c: Added function
+	  parameter "header_only" to rt_raster_deserialize. This instructs
+	  the function to only extract the raster header.
 	  
 	  All functions calls to rt_raster_deserialize in rt_pg.c and
 	  testwkb.c have been modified to account for the "header_only"
@@ -19162,11 +33532,22 @@
 	  
 	  Now to work on valgrinding rt_pg.c
 
-2011-06-11 19:06  dustymugs
-
-	* Removed the ST_SummaryStats wrappers: ST_Sum, ST_Mean, ST_Stddev,
-	  ST_MinMax. Only ST_Count is preserved as it has a shortcut for
-	  when "exclude_nodata_value" is FALSE.
+2011-06-11 19:06  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r7375] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in, raster/test/regress/rt_mean.sql,
+	  raster/test/regress/rt_mean_expected,
+	  raster/test/regress/rt_minmax.sql,
+	  raster/test/regress/rt_minmax_expected,
+	  raster/test/regress/rt_stddev.sql,
+	  raster/test/regress/rt_stddev_expected,
+	  raster/test/regress/rt_sum.sql,
+	  raster/test/regress/rt_sum_expected,
+	  raster/test/regress/rt_transform.sql,
+	  raster/test/regress/rt_transform_expected: Removed the
+	  ST_SummaryStats wrappers: ST_Sum, ST_Mean, ST_Stddev, ST_MinMax.
+	  Only ST_Count is preserved as it has a shortcut for when
+	  "exclude_nodata_value" is FALSE.
 	  
 	  Refactored regression test for rt_transform due to removal of
 	  some ST_SummaryStats wrappers and make the tests no longer about
@@ -19175,165 +33556,201 @@
 	  
 	  Associated ticket is #1005 and to some degree, #985.
 
-2011-06-11 13:41  robe
+2011-06-11 13:41  Regina Obe <lr at pcorp.us>
 
-	* Sort what's new 2.0 by name of section insted of id since raster
-	  ids start with RT_ they are being sorted at the top above
-	  everything else which is confusing
+	* [r7374] doc/xsl/postgis_aggs_mm.xml.xsl: Sort what's new 2.0 by
+	  name of section insted of id since raster ids start with RT_ they
+	  are being sorted at the top above everything else which is
+	  confusing
 
-2011-06-11 05:27  robe
+2011-06-11 05:27  Regina Obe <lr at pcorp.us>
 
-	* Fix ST_BandMetaData, ST_AsGDalRaster (they take defaults now so
-	  prots have ben removed)
+	* [r7373] doc/reference_raster.xml: Fix ST_BandMetaData,
+	  ST_AsGDalRaster (they take defaults now so prots have ben
+	  removed)
 
-2011-06-11 04:59  dustymugs
+2011-06-11 04:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored rt_raster_replace_band in rt_api.c to return the
-	  replaced band.
+	* [r7372] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c: Refactored
+	  rt_raster_replace_band in rt_api.c to return the replaced band.
 	  Additional memory cleanups in testapi.c due to segfault and
 	  leaks.
 
-2011-06-11 01:09  robe
+2011-06-11 01:09  Regina Obe <lr at pcorp.us>
 
-	* Note about issues with raster ST_Transform
+	* [r7371] doc/reference_raster.xml: Note about issues with raster
+	  ST_Transform
 
-2011-06-11 00:43  robe
+2011-06-11 00:43  Regina Obe <lr at pcorp.us>
 
-	* document raster ST_Transform function. Will provide examples
-	  later.
+	* [r7370] doc/reference_raster.xml: document raster ST_Transform
+	  function. Will provide examples later.
 
-2011-06-11 00:05  dustymugs
+2011-06-11 00:05  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed bunch of memory leaks in rt_api.c and testapi.c. Will need
+	* [r7369] raster/rt_core/rt_api.c, raster/test/core/testapi.c:
+	  Fixed bunch of memory leaks in rt_api.c and testapi.c. Will need
 	  to valgrind the regression tests to clean up the leaks in rt_pg.c
 
-2011-06-10 23:19  robe
+2011-06-10 23:19  Regina Obe <lr at pcorp.us>
 
-	* get rid of ST_SRSText usage is gone and replaced with just srid
-	  so parallel with geometry. Update all the function doco -- they
-	  used to use srstext, but now they use srid.
+	* [r7368] doc/reference_raster.xml: get rid of ST_SRSText usage is
+	  gone and replaced with just srid so parallel with geometry.
+	  Update all the function doco -- they used to use srstext, but now
+	  they use srid.
 
-2011-06-10 23:01  dustymugs
+2011-06-10 23:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Refactored how GDAL warp options are freed. I believe I was
-	  prematurely freeing the options.
+	* [r7367] raster/rt_core/rt_api.c: Refactored how GDAL warp options
+	  are freed. I believe I was prematurely freeing the options.
 	  
 	  Associated ticket #1015
 
-2011-06-10 19:49  pracine
+2011-06-10 19:49  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Getting pixel value at out of range coordinate should only return
-	  a warning. Was broken at r7106. Added a check.
+	* [r7366] raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_pixelvalue.sql,
+	  raster/test/regress/rt_pixelvalue_expected: Getting pixel value
+	  at out of range coordinate should only return a warning. Was
+	  broken at r7106. Added a check.
 
-2011-06-10 18:18  dustymugs
+2011-06-10 18:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Fixed error messages.
+	* [r7365] raster/rt_pg/rt_pg.c: Fixed error messages.
 
-2011-06-10 18:14  dustymugs
+2011-06-10 18:14  Bborie Park <bkpark at ucdavis.edu>
 
-	* Explicitly set GDALWarpOptions element padfSrcNoDataImag as it
-	  seems some folks are having regression error. Based upon the GDAL
-	  code, explicitly setting padfSrcNoDataImag and padfDstNoDataImag
-	  should eliminate the error message that is occurring.
+	* [r7364] raster/rt_core/rt_api.c: Explicitly set GDALWarpOptions
+	  element padfSrcNoDataImag as it seems some folks are having
+	  regression error. Based upon the GDAL code, explicitly setting
+	  padfSrcNoDataImag and padfDstNoDataImag should eliminate the
+	  error message that is occurring.
 	  
 	  Associated tickets are #925 and #1015.
 
-2011-06-10 17:24  robe
+2011-06-10 17:24  Regina Obe <lr at pcorp.us>
 
-	* #609 jdbc error in documentation
+	* [r7363] doc/using_postgis_app.xml: #609 jdbc error in
+	  documentation
 
-2011-06-10 17:00  robe
+2011-06-10 17:00  Regina Obe <lr at pcorp.us>
 
-	* #666 -- strange I don't recall this being an issue on PostGIS
-	  2.0, but seems to be also. Still need regress test for it though.
+	* [r7361] postgis/postgis.sql.in.c: #666 -- strange I don't recall
+	  this being an issue on PostGIS 2.0, but seems to be also. Still
+	  need regress test for it though.
 
-2011-06-10 16:16  pramsey
+2011-06-10 16:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update NZ projections for grid transformation support (#631)
+	* [r7359] spatial_ref_sys.sql: Update NZ projections for grid
+	  transformation support (#631)
 
-2011-06-10 15:19  dustymugs
+2011-06-10 15:19  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rewrote ST_BandMetaData to use a C function instead of sequential
-	  calls for the metadata of a raster's band in plpgsql. Also added
-	  regression tests for ST_MetaData and ST_BandMetaData due to C
-	  functions.
+	* [r7357] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_bandmetadata.sql,
+	  raster/test/regress/rt_bandmetadata_expected,
+	  raster/test/regress/rt_metadata.sql,
+	  raster/test/regress/rt_metadata_expected: Rewrote ST_BandMetaData
+	  to use a C function instead of sequential calls for the metadata
+	  of a raster's band in plpgsql. Also added regression tests for
+	  ST_MetaData and ST_BandMetaData due to C functions.
 	  
 	  Associated ticket #1012
 
-2011-06-10 05:13  robe
+2011-06-10 05:13  Regina Obe <lr at pcorp.us>
 
-	* more description on reclass expressions
+	* [r7356] doc/reference_raster.xml: more description on reclass
+	  expressions
 
-2011-06-10 01:52  robe
+2011-06-10 01:52  Regina Obe <lr at pcorp.us>
 
-	* more examples for ST_Point and example converting to geography
+	* [r7354] doc/reference_constructor.xml: more examples for ST_Point
+	  and example converting to geography
 
-2011-06-09 21:27  pramsey
+2011-06-09 21:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor change to work with gserialzed
+	* [r7353] regress/regress_index.sql: Minor change to work with
+	  gserialzed
 
-2011-06-09 21:15  dustymugs
+2011-06-09 21:15  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rewrote ST_Metadata to make use of a C function instead of
+	* [r7352] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c:
+	  Rewrote ST_Metadata to make use of a C function instead of
 	  sequential calls for the metadata of a raster in plpgsql.
 	  
 	  Associated ticket #1012
 
-2011-06-09 21:12  pramsey
+2011-06-09 21:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove some compile warnings
+	* [r7351] postgis/lwgeom_export.c: Remove some compile warnings
 
-2011-06-09 21:12  pramsey
+2011-06-09 21:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some ignores
+	* [r7350] doc, macros: Add some ignores
 
-2011-06-09 20:51  pramsey
+2011-06-09 20:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bad handling of Inf values in GEOS (#1013)
+	* [r7349] postgis/lwgeom_geos.c: Bad handling of Inf values in GEOS
+	  (#1013)
 
-2011-06-09 20:32  robe
+2011-06-09 20:32  Regina Obe <lr at pcorp.us>
 
-	* #448 add CUnit requirement for testing
+	* [r7348] doc/installation.xml: #448 add CUnit requirement for
+	  testing
 
-2011-06-09 18:55  dustymugs
+2011-06-09 18:55  Bborie Park <bkpark at ucdavis.edu>
 
-	* Replaced the parameter "srs" in ST_AsGDALRaster with "srid" so as
-	  to match that of ST_Transform and other functions that deals with
-	  spatial reference systems. In doing so, this eliminates the user
-	  function ST_srtext and just has a hidden _ST_srtext function for
-	  use by the underlying C functions. Another nice benefit is that I
-	  was able to reduce the number of user-facing functions.
+	* [r7346] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/scripts/python/rtgdalraster.py: Replaced the parameter
+	  "srs" in ST_AsGDALRaster with "srid" so as to match that of
+	  ST_Transform and other functions that deals with spatial
+	  reference systems. In doing so, this eliminates the user function
+	  ST_srtext and just has a hidden _ST_srtext function for use by
+	  the underlying C functions. Another nice benefit is that I was
+	  able to reduce the number of user-facing functions.
 	  
 	  Associated ticket #1011
 
-2011-06-09 16:01  robe
+2011-06-09 16:01  Regina Obe <lr at pcorp.us>
 
-	* #1009 typo in index creation
+	* [r7345]
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql:
+	  #1009 typo in index creation
 
-2011-06-08 22:47  dustymugs
+2011-06-08 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* - added additional tests that shouldn't require datum shift files
-	  for proj.4.
+	* [r7343] raster/test/regress/rt_transform.sql,
+	  raster/test/regress/rt_transform_expected: - added additional
+	  tests that shouldn't require datum shift files for proj.4.
 	  - refactored output that would be double precision to be rounded
 
-2011-06-08 21:10  dustymugs
+2011-06-08 21:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* Rewrote how the standard/sample deviation is computed in
-	  ST_SummaryStats for coverage tables. It now extends the existing
-	  use of a single-pass standard deviation calculation to be able to
-	  do the calculation for a coverage table.
+	* [r7342] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c: Rewrote how the standard/sample
+	  deviation is computed in ST_SummaryStats for coverage tables. It
+	  now extends the existing use of a single-pass standard deviation
+	  calculation to be able to do the calculation for a coverage
+	  table.
 	  
 	  Associated ticket #985.
 
-2011-06-08 00:10  dustymugs
+2011-06-08 00:10  Bborie Park <bkpark at ucdavis.edu>
 
-	* forgot to comment out debug code for ST_Histogram thus causing
-	  rt_histogram regression to fail
+	* [r7341] raster/rt_pg/rtpostgis.sql.in.c: forgot to comment out
+	  debug code for ST_Histogram thus causing rt_histogram regression
+	  to fail
 
-2011-06-08 00:00  dustymugs
+2011-06-08 00:00  Bborie Park <bkpark at ucdavis.edu>
 
-	* fixed ST_SummaryStats for coverage tables where the sum of all
-	  tiles was not being computed.
+	* [r7340] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_sum_expected,
+	  raster/test/regress/rt_summarystats_expected: fixed
+	  ST_SummaryStats for coverage tables where the sum of all tiles
+	  was not being computed.
 	  Associated ticket #1005
 	  
 	  Also added shortcuts to ST_Count for when parameter
@@ -19342,25 +33759,34 @@
 	  normal route and the shortcut is negligible for small rasters but
 	  noticable when run on large rasters and coverage tables
 
-2011-06-07 22:59  dustymugs
+2011-06-07 22:59  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added support for coverage tables to ST_Histogram. This entailed
-	  adding the ability to explicitly specify the min and max values
-	  in the underlying C function rt_band_get_histogram. The min and
-	  max parameters should ONLY be used by the established coverage
-	  table handling ST_Histogram functions as the returned percent
-	  element of the histogram type is changed from returning the
-	  percentage to returning the sum of counts for that histogram.
+	* [r7339] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_histogram_expected: Added support for
+	  coverage tables to ST_Histogram. This entailed adding the ability
+	  to explicitly specify the min and max values in the underlying C
+	  function rt_band_get_histogram. The min and max parameters should
+	  ONLY be used by the established coverage table handling
+	  ST_Histogram functions as the returned percent element of the
+	  histogram type is changed from returning the percentage to
+	  returning the sum of counts for that histogram.
 	  
 	  Associated ticket is #934.
 
-2011-06-07 18:21  dustymugs
-
-	* Add ST_Transform function that achieves the primary purpose of
-	  reprojecting a raster to a new projection system. This makes use
-	  of the GDAL Warp API function GDALAutoCreateWarpedVRT(). In the
-	  future, the underlying C function is expected to be refactored to
-	  support skewing and pixel scaling at the same time the raster is
+2011-06-07 18:21  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r7338] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_transform.sql,
+	  raster/test/regress/rt_transform_expected: Add ST_Transform
+	  function that achieves the primary purpose of reprojecting a
+	  raster to a new projection system. This makes use of the GDAL
+	  Warp API function GDALAutoCreateWarpedVRT(). In the future, the
+	  underlying C function is expected to be refactored to support
+	  skewing and pixel scaling at the same time the raster is
 	  reprojected.
 	  
 	  Really minor changes to rt_pg/rt_pg.c adding initilization values
@@ -19372,439 +33798,561 @@
 	  
 	  Associated ticket is #925
 
-2011-06-07 13:04  robe
+2011-06-07 13:04  Regina Obe <lr at pcorp.us>
 
-	* Put legacy.sql in varname tag so prints out as courier and stands
-	  out more. Some clarification on the geography/geometry choice
-	  question
+	* [r7336] doc/faq.xml: Put legacy.sql in varname tag so prints out
+	  as courier and stands out more. Some clarification on the
+	  geography/geometry choice question
 
-2011-06-07 12:37  robe
+2011-06-07 12:37  Regina Obe <lr at pcorp.us>
 
-	* more corrections of erroneous statements
+	* [r7335] doc/reference_raster.xml: more corrections of erroneous
+	  statements
 
-2011-06-07 12:16  robe
+2011-06-07 12:16  Regina Obe <lr at pcorp.us>
 
-	* Fix minor formatting issues
+	* [r7334] doc/reference_raster.xml: Fix minor formatting issues
 
-2011-06-07 07:45  robe
+2011-06-07 07:45  Regina Obe <lr at pcorp.us>
 
-	* forgot output column in histogram type
+	* [r7333] doc/reference_raster.xml: forgot output column in
+	  histogram type
 
-2011-06-07 07:41  robe
+2011-06-07 07:41  Regina Obe <lr at pcorp.us>
 
-	* more correction in ST_Histogram explanation
+	* [r7332] doc/reference_raster.xml: more correction in ST_Histogram
+	  explanation
 
-2011-06-07 07:26  robe
+2011-06-07 07:26  Regina Obe <lr at pcorp.us>
 
-	* make description of programming match what is going on in
-	  histogram example
+	* [r7331] doc/reference_raster.xml: make description of programming
+	  match what is going on in histogram example
 
-2011-06-07 07:24  robe
+2011-06-07 07:24  Regina Obe <lr at pcorp.us>
 
-	* missing one proto for ST_Histogram
+	* [r7330] doc/reference_raster.xml: missing one proto for
+	  ST_Histogram
 
-2011-06-07 07:20  robe
+2011-06-07 07:20  Regina Obe <lr at pcorp.us>
 
-	* add description ST_Histogram inputs
+	* [r7329] doc/reference_raster.xml: add description ST_Histogram
+	  inputs
 
-2011-06-07 07:10  robe
+2011-06-07 07:10  Regina Obe <lr at pcorp.us>
 
-	* document histogram type
+	* [r7328] doc/reference_raster.xml: document histogram type
 
-2011-06-07 07:02  robe
+2011-06-07 07:02  Regina Obe <lr at pcorp.us>
 
-	* document ST_Histogram
+	* [r7327] doc/reference_raster.xml: document ST_Histogram
 
-2011-06-05 21:49  dustymugs
+2011-06-05 21:49  Bborie Park <bkpark at ucdavis.edu>
 
-	* bug fix of r7325 where the wrong variable is used in the "for"
-	  loop at line 5442
+	* [r7326] raster/rt_core/rt_api.c: bug fix of r7325 where the wrong
+	  variable is used in the "for" loop at line 5442
 
-2011-06-05 20:52  dustymugs
+2011-06-05 20:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* - added additional function parameters "bandNums" and "count" to
-	  rt_raster_to_gdal_mem so that the GDAL dataset created only
-	  contains those bands specified
+	* [r7325] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: - added additional function
+	  parameters "bandNums" and "count" to rt_raster_to_gdal_mem so
+	  that the GDAL dataset created only contains those bands specified
 	  - any calls to rt_raster_to_gdal_mem function was refactored for
 	  the new function parameters
 	  - refactored rt_raster_dump_as_wktpolygons to make use of
 	  rt_raster_to_gdal_mem so as to reduce duplicate code and improve
 	  cleanliness
 
-2011-06-05 07:55  robe
+2011-06-05 07:55  Regina Obe <lr at pcorp.us>
 
-	* fix ambiguous column issue now that new zcta5 also has statefp
+	* [r7324]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_location.sql:
+	  fix ambiguous column issue now that new zcta5 also has statefp
 
-2011-06-05 07:35  robe
+2011-06-05 07:35  Regina Obe <lr at pcorp.us>
 
-	* more speed optimizations
+	* [r7323]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/rate_attributes.sql:
+	  more speed optimizations
 
-2011-06-05 07:07  robe
+2011-06-05 07:07  Regina Obe <lr at pcorp.us>
 
-	* revise function s so lookup zip utilizes constraint exclusion
+	* [r7322]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql:
+	  revise function s so lookup zip utilizes constraint exclusion
 
-2011-06-05 06:13  robe
+2011-06-05 06:13  Regina Obe <lr at pcorp.us>
 
-	* #1004: census has finally released zcta5 for 2010. Get rid of
-	  zcta500 table. replace with a more generic named zcta5. Revise
-	  loader state script to load in zcta510 data and revise functions
-	  to use new zcta5 table.
+	* [r7321]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: #1004:
+	  census has finally released zcta5 for 2010. Get rid of zcta500
+	  table. replace with a more generic named zcta5. Revise loader
+	  state script to load in zcta510 data and revise functions to use
+	  new zcta5 table.
 
-2011-06-04 02:11  robe
+2011-06-04 02:11  Regina Obe <lr at pcorp.us>
 
-	* Fix more erroneous statements about ST_Reclass
+	* [r7320] doc/reference_raster.xml: Fix more erroneous statements
+	  about ST_Reclass
 
-2011-06-04 00:59  robe
+2011-06-04 00:59  Regina Obe <lr at pcorp.us>
 
-	* get rid of TODO note on ST_REclass exmaple -- I already did it.
+	* [r7319] doc/reference_raster.xml: get rid of TODO note on
+	  ST_REclass exmaple -- I already did it.
 
-2011-06-04 00:58  robe
+2011-06-04 00:58  Regina Obe <lr at pcorp.us>
 
-	* huh more mistakes in ST_Reclass
+	* [r7318] doc/reference_raster.xml: huh more mistakes in ST_Reclass
 
-2011-06-03 17:02  dustymugs
+2011-06-03 17:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added rt_raster_from_gdal_dataset function to rt_core/rt_api.c.
-	  This function provides the functionality needed to convert a GDAL
-	  dataset into a PostGIS Raster object.
+	* [r7317] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/test/core/testapi.c: Added rt_raster_from_gdal_dataset
+	  function to rt_core/rt_api.c. This function provides the
+	  functionality needed to convert a GDAL dataset into a PostGIS
+	  Raster object.
 
-2011-06-03 15:19  jorgearevalo
+2011-06-03 15:19  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Check for new GDALFPolygonize function. If it isn't present, the
-	  old GDALPolygonize is called. Related ticket #650.
+	* [r7316] configure.ac, raster/rt_core/rt_api.c,
+	  raster/test/core/testapi.c: Check for new GDALFPolygonize
+	  function. If it isn't present, the old GDALPolygonize is called.
+	  Related ticket #650.
 
-2011-06-03 06:00  robe
+2011-06-03 06:00  Regina Obe <lr at pcorp.us>
 
-	* add missing ST_ValueCount protos, get rid of ' around , causing
-	  comment installation to fail.
+	* [r7315] doc/reference_raster.xml: add missing ST_ValueCount
+	  protos, get rid of ' around , causing comment installation to
+	  fail.
 
-2011-06-02 22:51  robe
+2011-06-02 22:51  Regina Obe <lr at pcorp.us>
 
-	* fix wording of reclassarg and summarystats
+	* [r7314] doc/reference_raster.xml: fix wording of reclassarg and
+	  summarystats
 
-2011-06-02 22:25  robe
+2011-06-02 22:25  Regina Obe <lr at pcorp.us>
 
-	* Fix typo
+	* [r7313] doc/reference_raster.xml: Fix typo
 
-2011-06-02 21:54  robe
+2011-06-02 21:54  Regina Obe <lr at pcorp.us>
 
-	* document ST_Band
+	* [r7312] doc/reference_raster.xml: document ST_Band
 
-2011-06-02 21:27  robe
+2011-06-02 21:27  Regina Obe <lr at pcorp.us>
 
-	* get rid of extra paragraph marks
+	* [r7311] doc/reference_raster.xml: get rid of extra paragraph
+	  marks
 
-2011-06-02 21:13  robe
+2011-06-02 21:13  Regina Obe <lr at pcorp.us>
 
-	* example how to use variadic version of ST_Reclass raster
-	  function, finish off reclassarg type description, add
-	  summarystats type
+	* [r7310] doc/reference_raster.xml: example how to use variadic
+	  version of ST_Reclass raster function, finish off reclassarg type
+	  description, add summarystats type
 
-2011-06-02 05:05  robe
+2011-06-02 05:05  Regina Obe <lr at pcorp.us>
 
-	* Clarify GDAL version requirements for Mapserver to load PostGIS
-	  raster
+	* [r7309] doc/faq_raster.xml: Clarify GDAL version requirements for
+	  Mapserver to load PostGIS raster
 
-2011-06-01 23:50  jorgearevalo
+2011-06-01 23:50  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Fixed ticket #650. You need to update your GDAL copy to a release
-	  up to 22476 to make it work.
+	* [r7308] raster/rt_core/Makefile.in, raster/rt_core/rt_api.c,
+	  raster/test/core/testapi.c: Fixed ticket #650. You need to update
+	  your GDAL copy to a release up to 22476 to make it work.
 
-2011-06-01 12:31  strk
+2011-06-01 12:31  Sandro Santilli <strk at keybit.net>
 
-	* The box2d of an empty geometry is NULL, not a point. Closes
-	  ticket #938 and regress-tests it.
+	* [r7307] postgis/lwgeom_box2dfloat4.c, regress/tickets.sql,
+	  regress/tickets_expected: The box2d of an empty geometry is NULL,
+	  not a point. Closes ticket #938 and regress-tests it.
 
-2011-06-01 11:55  robe
+2011-06-01 11:55  Regina Obe <lr at pcorp.us>
 
-	* put a space after parameter name to try to prevent getting shoved
-	  in with type in reclassarg type def
+	* [r7306] doc/reference_raster.xml: put a space after parameter
+	  name to try to prevent getting shoved in with type in reclassarg
+	  type def
 
-2011-06-01 08:22  robe
+2011-06-01 08:22  Regina Obe <lr at pcorp.us>
 
-	* st_recalss -- hmm screwed up on example. Had overlapping ranges
-	  before.
+	* [r7305] doc/reference_raster.xml: st_recalss -- hmm screwed up on
+	  example. Had overlapping ranges before.
 
-2011-06-01 08:17  robe
+2011-06-01 08:17  Regina Obe <lr at pcorp.us>
 
-	* move raster types to raster section (there are way too many now
-	  to try to lump into reference_type and do case statements to
-	  exclude from postgis_comments). Revise raster_comments to look
-	  for types in reference_raster. Add docu for ST_Reclass and
-	  reclassarg type. Need at least one more example to show how to
-	  use recalssargs.
+	* [r7304] doc/reference_raster.xml, doc/reference_type.xml,
+	  doc/xsl/raster_comments.sql.xsl: move raster types to raster
+	  section (there are way too many now to try to lump into
+	  reference_type and do case statements to exclude from
+	  postgis_comments). Revise raster_comments to look for types in
+	  reference_raster. Add docu for ST_Reclass and reclassarg type.
+	  Need at least one more example to show how to use recalssargs.
 
-2011-05-31 22:54  dustymugs
+2011-05-31 22:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* additional code refactoring in rt_raster_from_band
+	* [r7303] raster/rt_core/rt_api.c: additional code refactoring in
+	  rt_raster_from_band
 
-2011-05-31 22:47  dustymugs
+2011-05-31 22:47  Bborie Park <bkpark at ucdavis.edu>
 
-	* code refactored and added copying of raster attributes to new
-	  raster in rt_raster_from_band
+	* [r7302] raster/rt_core/rt_api.c: code refactored and added
+	  copying of raster attributes to new raster in rt_raster_from_band
 
-2011-05-31 01:50  robe
+2011-05-31 01:50  Regina Obe <lr at pcorp.us>
 
-	* #960 get rid of obsolete ST_AsPNG protos to make consistent with
-	  implementation
+	* [r7301] doc/reference_raster.xml: #960 get rid of obsolete
+	  ST_AsPNG protos to make consistent with implementation
 
-2011-05-31 01:39  robe
+2011-05-31 01:39  Regina Obe <lr at pcorp.us>
 
-	* #960 get rid of ST_AsGDALRaster proto and update remaining to be
-	  consistent with new default args.
+	* [r7300] doc/reference_raster.xml: #960 get rid of ST_AsGDALRaster
+	  proto and update remaining to be consistent with new default
+	  args.
 
-2011-05-31 01:29  robe
+2011-05-31 01:29  Regina Obe <lr at pcorp.us>
 
-	* #961- reduce number of functions - Get rid of st_area(geography)
-	  and change st_area(geography, use_spheroid = true) and also have
-	  named argument names so callable by named args
+	* [r7299] doc/reference_measure.xml, postgis/geography.sql.in.c,
+	  postgis/postgis_drop.sql.in.c: #961- reduce number of functions -
+	  Get rid of st_area(geography) and change st_area(geography,
+	  use_spheroid = true) and also have named argument names so
+	  callable by named args
 
-2011-05-31 01:09  robe
+2011-05-31 01:09  Regina Obe <lr at pcorp.us>
 
-	* document missing proto for createtopology
+	* [r7298] doc/extras_topology.xml: document missing proto for
+	  createtopology
 
-2011-05-31 00:54  robe
+2011-05-31 00:54  Regina Obe <lr at pcorp.us>
 
-	* Document ST_SummaryStats raster function
+	* [r7297] doc/reference_raster.xml: Document ST_SummaryStats raster
+	  function
 
-2011-05-30 20:18  dustymugs
+2011-05-30 20:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added default values for function parameters of ST_AsTIFF,
-	  ST_AsJPEG and ST_AsPNG.
+	* [r7296] raster/rt_pg/rtpostgis.sql.in.c: Added default values for
+	  function parameters of ST_AsTIFF, ST_AsJPEG and ST_AsPNG.
 	  
 	  Associated ticket is #960
 
-2011-05-30 15:48  dustymugs
+2011-05-30 15:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added default parameter for ST_AsGDALRaster
+	* [r7295] raster/rt_pg/rtpostgis.sql.in.c: Added default parameter
+	  for ST_AsGDALRaster
 	  
 	  Associated ticket is #960
 
-2011-05-30 14:53  dustymugs
+2011-05-30 14:53  Bborie Park <bkpark at ucdavis.edu>
 
-	* renamed all instances of "hasnodata" function argument to
+	* [r7294] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c: renamed
+	  all instances of "hasnodata" function argument to
 	  "exclude_nodata_value" in SQL functions (and underlying code
 	  where appropriate) ST_SummaryStats, ST_Count, ST_Sum, ST_Mean,
 	  ST_StdDev, ST_MinMax, ST_Quantile, ST_Histogram, ST_ValueCount
 	  and ST_ValuePercent
 
-2011-05-30 09:45  robe
+2011-05-30 09:45  Regina Obe <lr at pcorp.us>
 
-	* get rid of bash line -- seems unnecessary and breaks if multiple
+	* [r7293] extras/tiger_geocoder/tiger_2010/tiger_loader.sql: get
+	  rid of bash line -- seems unnecessary and breaks if multiple
 	  states. Forgot cd which was making secondary states fail loading.
 
-2011-05-30 08:28  robe
+2011-05-30 08:28  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r7292] doc/reference_raster.xml:
 
-2011-05-30 08:27  robe
+2011-05-30 08:27  Regina Obe <lr at pcorp.us>
 
-	* more corrections and one more example for ST_ValueCount
+	* [r7291] doc/reference_raster.xml: more corrections and one more
+	  example for ST_ValueCount
 
-2011-05-30 07:39  robe
+2011-05-30 07:39  Regina Obe <lr at pcorp.us>
 
-	* fix errors in notes
+	* [r7290] doc/reference_raster.xml: fix errors in notes
 
-2011-05-30 03:57  robe
+2011-05-30 03:57  Regina Obe <lr at pcorp.us>
 
-	* fill in more missing protos for st_valuecount -- still more to go
+	* [r7289] doc/reference_raster.xml: fill in more missing protos for
+	  st_valuecount -- still more to go
 
-2011-05-30 03:43  robe
+2011-05-30 03:43  Regina Obe <lr at pcorp.us>
 
-	* put in missing protos for st_quantile. Revise comment generator
-	  scripts to properly handle OUT parameters
+	* [r7288] doc/reference_raster.xml,
+	  doc/xsl/postgis_comments.sql.xsl,
+	  doc/xsl/raster_comments.sql.xsl,
+	  doc/xsl/topology_comments.sql.xsl: put in missing protos for
+	  st_quantile. Revise comment generator scripts to properly handle
+	  OUT parameters
 
-2011-05-30 02:52  robe
+2011-05-30 02:52  Regina Obe <lr at pcorp.us>
 
-	* document ST_quantile -- still missing some protos (also get rid
-	  of obsolete warnings)
+	* [r7287] doc/reference_raster.xml: document ST_quantile -- still
+	  missing some protos (also get rid of obsolete warnings)
 
-2011-05-30 01:56  robe
+2011-05-30 01:56  Regina Obe <lr at pcorp.us>
 
-	* reference to st_valuecount in st_dumpaspixels
+	* [r7286] doc/reference_raster.xml: reference to st_valuecount in
+	  st_dumpaspixels
 
-2011-05-30 01:51  robe
+2011-05-30 01:51  Regina Obe <lr at pcorp.us>
 
-	* Move Bborie's new cool stat functions into their own section. Add
-	  documentation for st_valuecount -- more coming for other raster
-	  functions. macro replace hasnodata with exclude_nodata_value
-	  which hopefully will be clearer to everyone. The raster codebase
-	  needs to be changed to agree with new names (mostly for those
-	  utilizing named arguments in PostgreSQL 9.0+). In enhnced section
-	  --put a note that hasnodata was renamed to exclude_nodata_value.
+	* [r7285] doc/reference_raster.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Move Bborie's new cool stat
+	  functions into their own section. Add documentation for
+	  st_valuecount -- more coming for other raster functions. macro
+	  replace hasnodata with exclude_nodata_value which hopefully will
+	  be clearer to everyone. The raster codebase needs to be changed
+	  to agree with new names (mostly for those utilizing named
+	  arguments in PostgreSQL 9.0+). In enhnced section --put a note
+	  that hasnodata was renamed to exclude_nodata_value.
 
-2011-05-30 00:30  robe
+2011-05-30 00:30  Regina Obe <lr at pcorp.us>
 
-	* add remarked out line to set search path -- suggested by Brian
-	  Hamlin. Also some other minor changes
+	* [r7284] extras/tiger_geocoder/tiger_2010/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql: add remarked
+	  out line to set search path -- suggested by Brian Hamlin. Also
+	  some other minor changes
 
-2011-05-28 23:32  robe
+2011-05-28 23:32  Regina Obe <lr at pcorp.us>
 
-	* Get rid of deprecated call to centroid
+	* [r7283]
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_location.sql:
+	  Get rid of deprecated call to centroid
 
-2011-05-28 15:07  robe
+2011-05-28 15:07  Regina Obe <lr at pcorp.us>
 
-	* fix for #996 also had to revise least and greatest helper
-	  functions to deal with to and froms that can't be converted to
-	  integers. Also added missing indexes to base tables (helps the
-	  planner with inherited tables though it never really uses those
-	  indexes)
+	* [r7282] extras/tiger_geocoder/tiger_2010/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: fix for
+	  #996 also had to revise least and greatest helper functions to
+	  deal with to and froms that can't be converted to integers. Also
+	  added missing indexes to base tables (helps the planner with
+	  inherited tables though it never really uses those indexes)
 
-2011-05-28 13:29  robe
+2011-05-28 13:29  Regina Obe <lr at pcorp.us>
 
-	* fill in some missing licensing headers and svn tags
+	* [r7281] extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocoder.bat,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocoder.sh: fill in
+	  some missing licensing headers and svn tags
 
-2011-05-28 11:46  strk
+2011-05-28 11:46  Sandro Santilli <strk at keybit.net>
 
-	* It's "spatialreference.org", not "spatialreferencing.org"
-	  (srid=900913)
+	* [r7280] spatial_ref_sys.sql: It's "spatialreference.org", not
+	  "spatialreferencing.org" (srid=900913)
 
-2011-05-28 11:24  robe
+2011-05-28 11:24  Regina Obe <lr at pcorp.us>
 
-	* revise readme wording so those unix users who aren't on linux
-	  won't be quite as offended
+	* [r7279] extras/tiger_geocoder/tiger_2010/README: revise readme
+	  wording so those unix users who aren't on linux won't be quite as
+	  offended
 
-2011-05-28 11:18  robe
+2011-05-28 11:18  Regina Obe <lr at pcorp.us>
 
-	* fix for #995 handling lower level fips. Also many fixes for #908
-	  sh tiger loader profile. Testing now and will close out if
-	  confirmed its fixed. Also put in a note in the .sh and .bat that
-	  for PostgreSQL 9.1+ have to install fuzzystrmatch with the CREATE
-	  EXTENSION syntax
-
-2011-05-27 23:35  dustymugs
+	* [r7278] extras/tiger_geocoder/tiger_2010/README,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql: fix for #995
+	  handling lower level fips. Also many fixes for #908 sh tiger
+	  loader profile. Testing now and will close out if confirmed its
+	  fixed. Also put in a note in the .sh and .bat that for PostgreSQL
+	  9.1+ have to install fuzzystrmatch with the CREATE EXTENSION
+	  syntax
 
-	* - remove OUT parameters on those functions that only return a
-	  single value.
+2011-05-27 23:35  Bborie Park <bkpark at ucdavis.edu>
+
+	* [r7277] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_count.sql,
+	  raster/test/regress/rt_count_expected,
+	  raster/test/regress/rt_mean.sql,
+	  raster/test/regress/rt_mean_expected,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_quantile_expected,
+	  raster/test/regress/rt_stddev.sql,
+	  raster/test/regress/rt_stddev_expected,
+	  raster/test/regress/rt_sum.sql,
+	  raster/test/regress/rt_sum_expected,
+	  raster/test/regress/rt_valuecount.sql,
+	  raster/test/regress/rt_valuepercent.sql: - remove OUT parameters
+	  on those functions that only return a single value.
 	  - updated regression tests that made use of those functions
 	  returning single values with OUT parameters
 
-2011-05-27 14:42  dustymugs
+2011-05-27 14:42  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added default values for function arguments of ST_Reclass
+	* [r7276] raster/rt_pg/rtpostgis.sql.in.c: Added default values for
+	  function arguments of ST_Reclass
 
-2011-05-27 14:01  strk
+2011-05-27 14:01  Sandro Santilli <strk at keybit.net>
 
-	* ST_AddEdgeModFace is complete...
+	* [r7275] topology/topology.sql.in.c: ST_AddEdgeModFace is
+	  complete...
 
-2011-05-27 14:01  strk
+2011-05-27 14:01  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_AddEdgeModFace, tweak documentation of
-	  ST_AddEdgeNewFaces [RT-SIGTA]
+	* [r7274] doc/extras_topology.xml: Document ST_AddEdgeModFace,
+	  tweak documentation of ST_AddEdgeNewFaces [RT-SIGTA]
 
-2011-05-27 14:01  strk
+2011-05-27 14:01  Sandro Santilli <strk at keybit.net>
 
-	* Implement topology.ST_AddEdgeModFace. Includes regress test.
-	  [RT-SIGTA]
+	* [r7273] topology/sql/sqlmm.sql, topology/test/Makefile,
+	  topology/test/regress/st_addedgemodface.sql,
+	  topology/test/regress/st_addedgemodface_expected: Implement
+	  topology.ST_AddEdgeModFace. Includes regress test. [RT-SIGTA]
 
-2011-05-27 12:15  robe
+2011-05-27 12:15  Regina Obe <lr at pcorp.us>
 
-	* fix indentation
+	* [r7272] doc/reference_raster.xml: fix indentation
 
-2011-05-27 10:18  strk
+2011-05-27 10:18  Sandro Santilli <strk at keybit.net>
 
-	* Simplify face registration by the end of ST_AddEdgeNewFaces
-	  [RT-SIGTA]
+	* [r7271] topology/sql/sqlmm.sql: Simplify face registration by the
+	  end of ST_AddEdgeNewFaces [RT-SIGTA]
 
-2011-05-27 09:51  strk
+2011-05-27 09:51  Sandro Santilli <strk at keybit.net>
 
-	* ST_AddEdgeNewFaces: another test splitting a face with holes on
+	* [r7270] topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected:
+	  ST_AddEdgeNewFaces: another test splitting a face with holes on
 	  both sides [RT-SIGTA].
 
-2011-05-27 09:34  strk
+2011-05-27 09:34  Sandro Santilli <strk at keybit.net>
 
-	* topology.ST_AddEdgeNewFaces: do not needlessly replace face of
+	* [r7269] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected:
+	  topology.ST_AddEdgeNewFaces: do not needlessly replace face of
 	  holes found in a face splitted by the newly added edge. Regress
 	  test it. [RT-SIGTA].
 
-2011-05-27 08:34  strk
+2011-05-27 08:34  Sandro Santilli <strk at keybit.net>
 
-	* Add an optional force_new parameter to topology.ST_AddFace to
-	  force creation of a new face when one already exists. Regress
-	  test and document. [RT-SIGTA]
+	* [r7268] doc/extras_topology.xml, topology/sql/populate.sql,
+	  topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected: Add an optional force_new
+	  parameter to topology.ST_AddFace to force creation of a new face
+	  when one already exists. Regress test and document. [RT-SIGTA]
 
-2011-05-27 08:34  strk
+2011-05-27 08:34  Sandro Santilli <strk at keybit.net>
 
-	* fix cpp extra token warning
+	* [r7267] topology/topology.sql.in.c: fix cpp extra token warning
 
-2011-05-27 07:13  robe
+2011-05-27 07:13  Regina Obe <lr at pcorp.us>
 
-	* change ST_ConcaveHull to use default parameters
+	* [r7266] doc/reference_processing.xml, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c: change ST_ConcaveHull to use
+	  default parameters
 
-2011-05-27 06:46  robe
+2011-05-27 06:46  Regina Obe <lr at pcorp.us>
 
-	* preliminary documentation for ST_Count
+	* [r7265] doc/reference_raster.xml: preliminary documentation for
+	  ST_Count
 
-2011-05-27 00:02  dustymugs
+2011-05-27 00:02  Bborie Park <bkpark at ucdavis.edu>
 
-	* - Added default values for function parameters of ST_ValueCount
-	  and ST_ValuePercent. Removed duplicative functions of the same.
+	* [r7264] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_valuecount.sql,
+	  raster/test/regress/rt_valuepercent.sql: - Added default values
+	  for function parameters of ST_ValueCount and ST_ValuePercent.
+	  Removed duplicative functions of the same.
 	  - Tweaked the regression tests for ST_ValueCount and
 	  ST_ValuePercent as one question for each function type was too
 	  ambiguous.
 
-2011-05-26 23:32  dustymugs
+2011-05-26 23:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added default parameter values for ST_Quantile functions
+	* [r7263] raster/rt_pg/rtpostgis.sql.in.c: Added default parameter
+	  values for ST_Quantile functions
 
-2011-05-26 23:11  dustymugs
+2011-05-26 23:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added default values for function parameters of ST_Histogram and
-	  removed duplicative functions.
+	* [r7262] raster/rt_pg/rtpostgis.sql.in.c: Added default values for
+	  function parameters of ST_Histogram and removed duplicative
+	  functions.
 
-2011-05-26 22:50  dustymugs
+2011-05-26 22:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* Forgot to delete the commented out functions of ST_SummaryStats
-	  and dependants from r7260
+	* [r7261] raster/rt_pg/rtpostgis.sql.in.c: Forgot to delete the
+	  commented out functions of ST_SummaryStats and dependants from
+	  r7260
 
-2011-05-26 22:40  dustymugs
+2011-05-26 22:40  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added default values for function parameters of ST_SummaryStats,
-	  ST_Count, ST_Sum, ST_Mean, ST_StdDev and ST_MinMax.
+	* [r7260] raster/rt_pg/rtpostgis.sql.in.c: Added default values for
+	  function parameters of ST_SummaryStats, ST_Count, ST_Sum,
+	  ST_Mean, ST_StdDev and ST_MinMax.
 
-2011-05-26 21:35  dustymugs
+2011-05-26 21:35  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added default parameter for ST_Band and reduced function count by
-	  1.
+	* [r7259] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_band.sql,
+	  raster/test/regress/rt_band_expected: Added default parameter for
+	  ST_Band and reduced function count by 1.
 	  
 	  Added additional regression tests for ST_Band.
 
-2011-05-26 21:23  dustymugs
+2011-05-26 21:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed to STABLE from IMMUTABLE for all functions that operate
-	  on a coverage using the function parameters "rastertable" and
-	  "rastercolumn"
+	* [r7258] raster/rt_pg/rtpostgis.sql.in.c: Changed to STABLE from
+	  IMMUTABLE for all functions that operate on a coverage using the
+	  function parameters "rastertable" and "rastercolumn"
 
-2011-05-26 20:09  dustymugs
+2011-05-26 20:09  Bborie Park <bkpark at ucdavis.edu>
 
-	* changed name "proportion" to "percent" for ST_Histogram to stay
-	  consistent with ST_ValuePercent
+	* [r7257] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/rt_histogram.sql: changed name "proportion"
+	  to "percent" for ST_Histogram to stay consistent with
+	  ST_ValuePercent
 
-2011-05-26 20:04  dustymugs
+2011-05-26 20:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_ValuePercent, sibling of ST_ValueCount. This
-	  function provides the ability to determine the percentage of a
-	  raster's band that is of a user-specified value.
+	* [r7256] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_valuecount.sql,
+	  raster/test/regress/rt_valuecount_expected,
+	  raster/test/regress/rt_valuepercent.sql,
+	  raster/test/regress/rt_valuepercent_expected: Addition of
+	  ST_ValuePercent, sibling of ST_ValueCount. This function provides
+	  the ability to determine the percentage of a raster's band that
+	  is of a user-specified value.
 	  
 	  Assocated ticket is #990
 	  
 	  Also specified STRICT for functions with "searchvalue" (the
 	  singular) argument.
 
-2011-05-26 15:43  dustymugs
+2011-05-26 15:43  Bborie Park <bkpark at ucdavis.edu>
 
-	* Changed the datatype for "count" from integer to bigint. This
-	  should allow the "count" return value to handle large numbers
-	  coming from the various coverage functions.
+	* [r7255] raster/rt_pg/rtpostgis.sql.in.c: Changed the datatype for
+	  "count" from integer to bigint. This should allow the "count"
+	  return value to handle large numbers coming from the various
+	  coverage functions.
 
-2011-05-26 14:01  robe
+2011-05-26 14:01  Regina Obe <lr at pcorp.us>
 
-	* #949 Add all E and F deprecated functions to
-	  uninstall_legacy.sql.in.c and minor sorting and casing cleanup.
+	* [r7254] postgis/legacy.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c: #949 Add all E and F
+	  deprecated functions to uninstall_legacy.sql.in.c and minor
+	  sorting and casing cleanup.
 
-2011-05-26 07:26  strk
+2011-05-26 07:26  Sandro Santilli <strk at keybit.net>
 
-	* Error handling refinements in topology.ST_AddEdgeNewFaces (#988)
+	* [r7253] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: Error handling
+	  refinements in topology.ST_AddEdgeNewFaces (#988)
 	  
 	  Check for given edge having two distinct vertices before getting
 	  a new
@@ -19814,85 +34362,113 @@
 	  no-segment
 	  edges to not talk about nodes. [RT-SIGTA]
 
-2011-05-26 04:23  dustymugs
+2011-05-26 04:23  Bborie Park <bkpark at ucdavis.edu>
 
-	* Adds ST_ValueCount to count the number of times a user-provided
-	  value or all values occurs in a raster's band.
+	* [r7252] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_valuecount.sql,
+	  raster/test/regress/rt_valuecount_expected: Adds ST_ValueCount to
+	  count the number of times a user-provided value or all values
+	  occurs in a raster's band.
 	  
 	  Associated ticket is #953
 
-2011-05-25 23:38  robe
+2011-05-25 23:38  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r7251] doc/reference_output.xml:
 
-2011-05-25 23:37  robe
+2011-05-25 23:37  Regina Obe <lr at pcorp.us>
 
-	* put header on table
+	* [r7250] doc/reference_output.xml: put header on table
 
-2011-05-25 21:09  robe
+2011-05-25 21:09  Regina Obe <lr at pcorp.us>
 
-	* try group
+	* [r7249] doc/reference_raster.xml: try group
 
-2011-05-25 18:42  pramsey
+2011-05-25 18:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* #661 Type info of geography columns incomplete - pg_dump output
-	  wrong
+	* [r7248] postgis/geography_inout.c: #661 Type info of geography
+	  columns incomplete - pg_dump output wrong
 
-2011-05-25 18:28  dustymugs
+2011-05-25 18:28  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add ST_Count and ST_Sum functions that are fronts for the count
-	  and sum values of ST_SummaryStats
+	* [r7246] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_count.sql,
+	  raster/test/regress/rt_count_expected,
+	  raster/test/regress/rt_sum.sql,
+	  raster/test/regress/rt_sum_expected: Add ST_Count and ST_Sum
+	  functions that are fronts for the count and sum values of
+	  ST_SummaryStats
 	  
 	  Associated tickets are #985 (ST_Count) and #986 (ST_Sum)
 
-2011-05-25 13:13  robe
+2011-05-25 13:13  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r7245] doc/Makefile.in:
 
-2011-05-25 12:49  robe
+2011-05-25 12:49  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r7244] doc/reference_raster.xml:
 
-2011-05-25 12:48  robe
+2011-05-25 12:48  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r7243] doc/reference_raster.xml:
 
-2011-05-25 12:35  robe
+2011-05-25 12:35  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r7242] doc/reference_output.xml:
 
-2011-05-25 12:29  robe
+2011-05-25 12:29  Regina Obe <lr at pcorp.us>
 
-	* revert
+	* [r7241] doc/Makefile.in: revert
 
-2011-05-25 12:13  robe
+2011-05-25 12:13  Regina Obe <lr at pcorp.us>
 
-	* define style for methodsynopsis
+	* [r7240] doc/Makefile.in: define style for methodsynopsis
 
-2011-05-24 18:53  robe
+2011-05-24 18:53  Regina Obe <lr at pcorp.us>
 
-	* missed a spot
+	* [r7239] doc/reference_output.xml: missed a spot
 
-2011-05-24 18:50  robe
+2011-05-24 18:50  Regina Obe <lr at pcorp.us>
 
-	* experiment with methodsynopsis evidentally seems to support
-	  default parameters and conditional args, we need to move from
-	  funcsynopsis (designed for C) to methodsynopsis. This is what PHP
-	  uses -- https://doc.php.net/php/dochowto/chapter-skeletons.php
+	* [r7238] doc/reference_output.xml: experiment with methodsynopsis
+	  evidentally seems to support default parameters and conditional
+	  args, we need to move from funcsynopsis (designed for C) to
+	  methodsynopsis. This is what PHP uses --
+	  https://doc.php.net/php/dochowto/chapter-skeletons.php
 
-2011-05-24 15:21  strk
+2011-05-24 15:21  Sandro Santilli <strk at keybit.net>
 
-	* Stop using astext legacy function in raster tests -- make check
+	* [r7237] raster/test/regress/rt_spatial_relationship.sql: Stop
+	  using astext legacy function in raster tests -- make check
 	  finally succeeds with both raster and topology enabled
 
-2011-05-24 14:47  strk
+2011-05-24 14:47  Sandro Santilli <strk at keybit.net>
 
-	* Allow dumping universal face edges with ST_GetFaceEdges. Do it in
-	  the correct order. Fixes bug #984. [RT-SIGTA]
+	* [r7236] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_getfaceedges.sql,
+	  topology/test/regress/st_getfaceedges_expected: Allow dumping
+	  universal face edges with ST_GetFaceEdges. Do it in the correct
+	  order. Fixes bug #984. [RT-SIGTA]
 
-2011-05-24 14:27  dustymugs
+2011-05-24 14:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* - Added test testgdalraster.in which properly tests the output of
+	* [r7235] raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_asgdalraster.sql,
+	  raster/test/regress/rt_asgdalraster_expected,
+	  raster/test/regress/rt_asjpeg.sql,
+	  raster/test/regress/rt_asjpeg_expected,
+	  raster/test/regress/rt_aspng.sql,
+	  raster/test/regress/rt_aspng_expected,
+	  raster/test/regress/rt_astiff.sql,
+	  raster/test/regress/rt_astiff_expected,
+	  raster/test/regress/testgdalraster.in,
+	  raster/test/regress/testgdalraster.test,
+	  raster/test/regress/testgdalraster_expected: - Added test
+	  testgdalraster.in which properly tests the output of
 	  ST_AsGDALRaster. This test makes use of rtgdalraster.py found in
 	  raster/scripts/python, which itself requires psycopg2.
 	  - Refactored rt_asgdalraster.sql, rt_astiff.sql, rt_asjpeg.sql
@@ -19900,399 +34476,549 @@
 	  the respective functions with an MD5 checksum but rather be a
 	  test of the functions' behaviors.
 
-2011-05-24 13:49  strk
+2011-05-24 13:49  Sandro Santilli <strk at keybit.net>
 
-	* ST_GetFaceGeometry: throw SQL/MM exception when asked for the
+	* [r7234] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_getfacegeometry.sql,
+	  topology/test/regress/st_getfacegeometry_expected:
+	  ST_GetFaceGeometry: throw SQL/MM exception when asked for the
 	  Universal Face geometry. Fixes bug #973 [RT-SIGTA]
 
-2011-05-24 13:47  strk
+2011-05-24 13:47  Sandro Santilli <strk at keybit.net>
 
-	* topology.ValidateTopology: do not construct the geometry of
-	  universal face, it's not used anyway. Closes bug #977. [RT-SIGTA]
+	* [r7233] topology/topology.sql.in.c: topology.ValidateTopology: do
+	  not construct the geometry of universal face, it's not used
+	  anyway. Closes bug #977. [RT-SIGTA]
 
-2011-05-24 13:15  strk
+2011-05-24 13:15  Sandro Santilli <strk at keybit.net>
 
-	* ST_AddEdgeNewFaces: don't get fooled by empty segments when
+	* [r7232] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected:
+	  ST_AddEdgeNewFaces: don't get fooled by empty segments when
 	  computing azimuts [RT-SIGTA]
 
-2011-05-24 12:14  strk
+2011-05-24 12:14  Sandro Santilli <strk at keybit.net>
 
-	* Fix a bogus test for ST_AddEdgeNewFaces (was missing to check
-	  informations about the newly added edge) -- [RT-SIGTA]
+	* [r7231] topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: Fix a bogus
+	  test for ST_AddEdgeNewFaces (was missing to check informations
+	  about the newly added edge) -- [RT-SIGTA]
 
-2011-05-24 10:45  strk
+2011-05-24 10:45  Sandro Santilli <strk at keybit.net>
 
-	* Add another (successful) test for ST_AddEdgeNewFaces when
-	  creating a new face in the universal face by closing a ring
-	  around an existing non-isolated edge [RT-SIGTA].
+	* [r7230] topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: Add another
+	  (successful) test for ST_AddEdgeNewFaces when creating a new face
+	  in the universal face by closing a ring around an existing
+	  non-isolated edge [RT-SIGTA].
 
-2011-05-24 09:22  strk
+2011-05-24 09:22  Sandro Santilli <strk at keybit.net>
 
-	* Add TODO item and SQL/MM compatibility note in ST_ChangeEdgeGeom
+	* [r7229] topology/sql/sqlmm.sql: Add TODO item and SQL/MM
+	  compatibility note in ST_ChangeEdgeGeom
 
-2011-05-24 09:13  strk
+2011-05-24 09:13  Sandro Santilli <strk at keybit.net>
 
-	* Test ST_ChangeEdgeGeom with edge crossing
+	* [r7228] topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Test
+	  ST_ChangeEdgeGeom with edge crossing
 
-2011-05-24 08:45  strk
+2011-05-24 08:45  Sandro Santilli <strk at keybit.net>
 
-	* ST_ChangeEdgeGeom: check existence of given edge, reduce scans
+	* [r7227] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected:
+	  ST_ChangeEdgeGeom: check existence of given edge, reduce scans
 	  used to check start/end point and simplify the code, regress test
 	  the fix. Fixes bug #979.
 
-2011-05-24 08:22  strk
+2011-05-24 08:22  Sandro Santilli <strk at keybit.net>
 
-	* No functional change: tabs to 2 spaces.
+	* [r7226] topology/sql/sqlmm.sql: No functional change: tabs to 2
+	  spaces.
 
-2011-05-24 08:13  strk
+2011-05-24 08:13  Sandro Santilli <strk at keybit.net>
 
-	* Move tests for ST_ChangeEdgeGeom into a dedicated file. Prepared
-	  for ticket #979. [RT-SIGTA].
+	* [r7225] topology/test/Makefile, topology/test/regress/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected,
+	  topology/test/regress/st_changeedgegeom.sql,
+	  topology/test/regress/st_changeedgegeom_expected: Move tests for
+	  ST_ChangeEdgeGeom into a dedicated file. Prepared for ticket
+	  #979. [RT-SIGTA].
 
-2011-05-24 07:54  strk
+2011-05-24 07:54  Sandro Santilli <strk at keybit.net>
 
-	* Test ST_GetFaceGeometry behavior when given face_id 0 (Universal
+	* [r7224] topology/test/regress/st_getfacegeometry.sql,
+	  topology/test/regress/st_getfacegeometry_expected: Test
+	  ST_GetFaceGeometry behavior when given face_id 0 (Universal
 	  Face). See ticket #973.
 
-2011-05-24 07:04  strk
+2011-05-24 07:04  Sandro Santilli <strk at keybit.net>
 
-	* ST_AddIsoEdge: tell that a node is isolated by only looking at
-	  containing_face rather than recomputing it. Closes ticket #978.
-	  [RT-SIGTA]
+	* [r7223] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_addisoedge.sql,
+	  topology/test/regress/st_addisoedge_expected: ST_AddIsoEdge: tell
+	  that a node is isolated by only looking at containing_face rather
+	  than recomputing it. Closes ticket #978. [RT-SIGTA]
 
-2011-05-24 06:55  strk
+2011-05-24 06:55  Sandro Santilli <strk at keybit.net>
 
-	* Do not let ST_AddIsoNode add non-isolated nodes. Allow specifying
-	  0 as the isolated node face and check it is correct. If
-	  containing_face is given as null then compute it. Patch by Andrea
-	  Peri. [RT-SIGTA]
+	* [r7222] topology/sql/sqlmm.sql, topology/test/Makefile,
+	  topology/test/regress/sqlmm_expected,
+	  topology/test/regress/st_addisonode.sql,
+	  topology/test/regress/st_addisonode_expected: Do not let
+	  ST_AddIsoNode add non-isolated nodes. Allow specifying 0 as the
+	  isolated node face and check it is correct. If containing_face is
+	  given as null then compute it. Patch by Andrea Peri. [RT-SIGTA]
 
-2011-05-24 06:44  robe
+2011-05-24 06:44  Regina Obe <lr at pcorp.us>
 
-	* Fix for #981 - using astext legacy function in tests
+	* [r7221] topology/test/hierarchy.sql,
+	  topology/test/query_features.sql: Fix for #981 - using astext
+	  legacy function in tests
 
-2011-05-24 06:43  robe
+2011-05-24 06:43  Regina Obe <lr at pcorp.us>
 
-	* fix typos
+	* [r7220] doc/extras_topology.xml: fix typos
 
-2011-05-24 05:48  robe
+2011-05-24 05:48  Regina Obe <lr at pcorp.us>
 
-	* #722 remove Centroid and Dump, #949 more additons to uninstall
-	  (Centroid, Dump, addbbox,dropbbox)
+	* [r7219] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c: #722 remove Centroid and Dump,
+	  #949 more additons to uninstall (Centroid, Dump,
+	  addbbox,dropbbox)
 
-2011-05-24 05:19  robe
+2011-05-24 05:19  Regina Obe <lr at pcorp.us>
 
-	* fix link error
+	* [r7218] doc/extras_topology.xml: fix link error
 
-2011-05-24 05:05  robe
+2011-05-24 05:05  Regina Obe <lr at pcorp.us>
 
-	* #722 remove AsBinary and AsText, #949 more additons to uninstall
-	  (AsText,Asbinary, other output functions)
+	* [r7217] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/uninstall_legacy.sql.in.c: #722 remove AsBinary and
+	  AsText, #949 more additons to uninstall (AsText,Asbinary, other
+	  output functions)
 
-2011-05-24 03:03  robe
+2011-05-24 03:03  Regina Obe <lr at pcorp.us>
 
-	* Document ST_ChangeEdgeGeom, revise function to confirm to new
-	  plpgsql coding standard. Get rid of redundant && check since its
-	  already encapsulated in ST_Intersects and ST_Within
+	* [r7216] doc/extras_topology.xml, topology/sql/sqlmm.sql: Document
+	  ST_ChangeEdgeGeom, revise function to confirm to new plpgsql
+	  coding standard. Get rid of redundant && check since its already
+	  encapsulated in ST_Intersects and ST_Within
 
-2011-05-23 13:30  strk
+2011-05-23 13:30  Sandro Santilli <strk at keybit.net>
 
-	* update the list of what's implemented and what not
+	* [r7215] topology/topology.sql.in.c: update the list of what's
+	  implemented and what not
 
-2011-05-23 13:30  strk
+2011-05-23 13:30  Sandro Santilli <strk at keybit.net>
 
-	* Style-only change: tab to spaces in ST_AddIsoEdge, shorten name
-	  of test topology
+	* [r7214] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_addisoedge.sql,
+	  topology/test/regress/st_addisoedge_expected: Style-only change:
+	  tab to spaces in ST_AddIsoEdge, shorten name of test topology
 
-2011-05-23 13:13  strk
+2011-05-23 13:13  Sandro Santilli <strk at keybit.net>
 
-	* Fix test for ST_AddIsoEdge verifying "geometry intersects an
-	  edge" exception. Fix exception message raised when attempting to
-	  insert a closed edge. Update regress test accoringly.
+	* [r7213] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_addisoedge.sql,
+	  topology/test/regress/st_addisoedge_expected: Fix test for
+	  ST_AddIsoEdge verifying "geometry intersects an edge" exception.
+	  Fix exception message raised when attempting to insert a closed
+	  edge. Update regress test accoringly.
 
-2011-05-23 12:49  strk
+2011-05-23 12:49  Sandro Santilli <strk at keybit.net>
 
-	* ST_AddIsoEdge: set containing_face of nodes connected by the
-	  newly added edge to null as the nodes are not isolated anymore.
-	  Regress test it. Closes ticket #976.
+	* [r7212] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_addisoedge.sql,
+	  topology/test/regress/st_addisoedge_expected: ST_AddIsoEdge: set
+	  containing_face of nodes connected by the newly added edge to
+	  null as the nodes are not isolated anymore. Regress test it.
+	  Closes ticket #976.
 
-2011-05-23 12:33  strk
+2011-05-23 12:33  Sandro Santilli <strk at keybit.net>
 
-	* Put tests for ST_AddIsoEdge in their own file. Fix use of !
-	  rather than "not" for negating booleans in pl/pgsql.
+	* [r7211] topology/sql/sqlmm.sql, topology/test/Makefile,
+	  topology/test/regress/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected,
+	  topology/test/regress/st_addisoedge.sql,
+	  topology/test/regress/st_addisoedge_expected: Put tests for
+	  ST_AddIsoEdge in their own file. Fix use of ! rather than "not"
+	  for negating booleans in pl/pgsql.
 
-2011-05-23 11:30  strk
+2011-05-23 11:30  Sandro Santilli <strk at keybit.net>
 
-	* Update load_topology.sql to properly set MBR field of faces.
+	* [r7210] topology/test/load_topology.sql.in,
+	  topology/test/regress/st_addedgenewfaces_expected: Update
+	  load_topology.sql to properly set MBR field of faces.
 
-2011-05-23 11:28  strk
+2011-05-23 11:28  Sandro Santilli <strk at keybit.net>
 
-	* And fix expected test output from st_addedgenewfaces (dunno how I
+	* [r7209] topology/test/regress/st_addedgenewfaces_expected: And
+	  fix expected test output from st_addedgenewfaces (dunno how I
 	  could commit such a partial change...)
 
-2011-05-23 11:26  strk
+2011-05-23 11:26  Sandro Santilli <strk at keybit.net>
 
-	* Oops, forgot to uncomment temporarely disabled lines
+	* [r7208] topology/test/regress/st_addedgenewfaces.sql: Oops,
+	  forgot to uncomment temporarely disabled lines
 
-2011-05-23 08:44  strk
+2011-05-23 08:44  Sandro Santilli <strk at keybit.net>
 
-	* Test that topology.ST_AddEdgeNewFaces properly updates isolated
-	  edges contained in a newly created face [RT-SIGTA]
+	* [r7207] topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected: Test that
+	  topology.ST_AddEdgeNewFaces properly updates isolated edges
+	  contained in a newly created face [RT-SIGTA]
 
-2011-05-22 16:06  dustymugs
+2011-05-22 16:06  Bborie Park <bkpark at ucdavis.edu>
 
-	* - fixed band count check in st_asjpeg and st_aspng
+	* [r7206] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_aspng_expected: - fixed band count check
+	  in st_asjpeg and st_aspng
 	  - fixed regression expected output for rt_aspng
 
-2011-05-22 06:33  robe
+2011-05-22 06:33  Regina Obe <lr at pcorp.us>
 
-	* Start work on #949 uninstall_legacy.sql and also some minor
+	* [r7205] postgis/Makefile.in, postgis/legacy.sql.in.c,
+	  postgis/postgis_drop.sql.in.c, postgis/uninstall_legacy.sql.in.c:
+	  Start work on #949 uninstall_legacy.sql and also some minor
 	  cleanup additions/sorting fo existing
 
-2011-05-20 20:18  robe
+2011-05-20 20:18  Regina Obe <lr at pcorp.us>
 
-	* treating as executable didn't help - going to reinit my db as
-	  utf-8 instead
+	* [r7204] regress/loader/Latin1.select.expected: treating as
+	  executable didn't help - going to reinit my db as utf-8 instead
 
-2011-05-20 13:48  jorgearevalo
+2011-05-20 13:48  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Commented line that caused memory crash because an invalid free.
-	  Related ticket #958.
+	* [r7202] raster/rt_pg/rt_pg.c: Commented line that caused memory
+	  crash because an invalid free. Related ticket #958.
 
-2011-05-19 20:36  strk
+2011-05-19 20:36  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddEdge: make edge linking self-consistent (each added
-	  edge will form a proper loop)
+	* [r7201] topology/sql/populate.sql,
+	  topology/test/regress/addedge_expected: topology.AddEdge: make
+	  edge linking self-consistent (each added edge will form a proper
+	  loop)
 
-2011-05-19 04:54  robe
+2011-05-19 04:54  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r7200] doc/reference_output.xml: fix typo
 
-2011-05-19 04:53  robe
+2011-05-19 04:53  Regina Obe <lr at pcorp.us>
 
-	* support for 2D points, add multipoint 2d / 3d to cunit. Add a
-	  mapping table to documentation to clarify how we map PostGIS
-	  geometries to X3D equivalent.
+	* [r7199] doc/reference_output.xml, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/lwout_x3d.c: support for 2D points, add multipoint 2d /
+	  3d to cunit. Add a mapping table to documentation to clarify how
+	  we map PostGIS geometries to X3D equivalent.
 
-2011-05-19 04:04  robe
+2011-05-19 04:04  Regina Obe <lr at pcorp.us>
 
-	* clean up some compiler warnings
+	* [r7198] liblwgeom/lwout_x3d.c: clean up some compiler warnings
 
-2011-05-18 23:33  dustymugs
+2011-05-18 23:33  Bborie Park <bkpark at ucdavis.edu>
 
-	* - taking a suggestion from strk in #958, all regression tests for
-	  functions related to ST_SummaryStats has been rounded to 3
-	  decimal places
+	* [r7196] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_histogram_expected,
+	  raster/test/regress/rt_mean.sql,
+	  raster/test/regress/rt_mean_expected,
+	  raster/test/regress/rt_minmax.sql,
+	  raster/test/regress/rt_minmax_expected,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_quantile_expected,
+	  raster/test/regress/rt_stddev.sql,
+	  raster/test/regress/rt_stddev_expected,
+	  raster/test/regress/rt_summarystats.sql,
+	  raster/test/regress/rt_summarystats_expected: - taking a
+	  suggestion from strk in #958, all regression tests for functions
+	  related to ST_SummaryStats has been rounded to 3 decimal places
 	  - added additional argument checks for pgraster to rt_pg.c
 	  - changed floating point comparisons in rt_pg.c and rt_api.c
 
-2011-05-18 16:18  strk
+2011-05-18 16:18  Sandro Santilli <strk at keybit.net>
 
-	* ST_AddEdgeNewFaces is now implemented..
+	* [r7195] doc/extras_topology.xml: ST_AddEdgeNewFaces is now
+	  implemented..
 
-2011-05-18 16:08  strk
+2011-05-18 16:08  Sandro Santilli <strk at keybit.net>
 
-	* topology.ST_AddEdgeNewFaces implementation and regression test
+	* [r7194] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected:
+	  topology.ST_AddEdgeNewFaces implementation and regression test
 	  [RT-SIGTA]
 
-2011-05-18 14:18  dustymugs
+2011-05-18 14:18  Bborie Park <bkpark at ucdavis.edu>
 
-	* ST_SummaryStats returns the sum as part of the summary stats.
+	* [r7193] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/core/testapi.c,
+	  raster/test/regress/rt_summarystats_expected,
+	  raster/test/regress/run_test.in: ST_SummaryStats returns the sum
+	  as part of the summary stats.
 	  _ST_SummaryStats(rastertable, rastercolumn) function changed to
 	  make use of the sum and compute a straight mean (sum / count)
 	  rather than computing a weighted mean.
 
-2011-05-18 13:59  strk
+2011-05-18 13:59  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddFace(): properly update left/right face for edges
+	* [r7192] doc/extras_topology.xml, topology/sql/populate.sql,
+	  topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected,
+	  topology/test/regress/getfacebypoint.sql,
+	  topology/test/regress/getfacebypoint_expected:
+	  topology.AddFace(): properly update left/right face for edges
 	  _contained_ in the newly registered face and containing_face for
 	  isolated nodes in it, refine documentation about it [RT-SIGTA]
 
-2011-05-18 13:32  robe
+2011-05-18 13:32  Regina Obe <lr at pcorp.us>
 
-	* damn mathml you mock me! anyrate put in defaults as Pierre asked
-	  for ST_ASTiff (hope www... fixes their damn mathml). We really
-	  got to stop downloading that file.
+	* [r7191] doc/reference_raster.xml: damn mathml you mock me!
+	  anyrate put in defaults as Pierre asked for ST_ASTiff (hope
+	  www... fixes their damn mathml). We really got to stop
+	  downloading that file.
 
-2011-05-18 12:55  robe
+2011-05-18 12:55  Regina Obe <lr at pcorp.us>
 
-	* define ST_SRText and backref
+	* [r7190] doc/reference_raster.xml: define ST_SRText and backref
 
-2011-05-18 12:41  robe
+2011-05-18 12:41  Regina Obe <lr at pcorp.us>
 
-	* fix ST_ASTIFF incorrect types start putting in defaults
+	* [r7189] doc/reference_raster.xml: fix ST_ASTIFF incorrect types
+	  start putting in defaults
 
-2011-05-18 12:05  robe
+2011-05-18 12:05  Regina Obe <lr at pcorp.us>
 
-	* let me try to put the opt somewhere else.
+	* [r7188] doc/reference_output.xml: let me try to put the opt
+	  somewhere else.
 
-2011-05-18 11:12  robe
+2011-05-18 11:12  Regina Obe <lr at pcorp.us>
 
-	* more mistakes
+	* [r7187] doc/reference_raster.xml: more mistakes
 
-2011-05-18 11:08  robe
+2011-05-18 11:08  Regina Obe <lr at pcorp.us>
 
-	* fix some incorrect statements
+	* [r7186] doc/reference_raster.xml: fix some incorrect statements
 
-2011-05-18 08:58  strk
+2011-05-18 08:58  Sandro Santilli <strk at keybit.net>
 
-	* topology.GetRingEdges() implementation and test. This is the
-	  first real user of next_left_edge/next_right_edge fields in the
-	  edge table. [RT-SIGTA]
+	* [r7185] topology/Makefile.in,
+	  topology/sql/query/GetRingEdges.sql, topology/test/Makefile,
+	  topology/test/regress/getringedges.sql,
+	  topology/test/regress/getringedges_expected,
+	  topology/topology.sql.in.c: topology.GetRingEdges()
+	  implementation and test. This is the first real user of
+	  next_left_edge/next_right_edge fields in the edge table.
+	  [RT-SIGTA]
 
-2011-05-18 07:23  strk
+2011-05-18 07:23  Sandro Santilli <strk at keybit.net>
 
-	* Add a short paragraph about the semantic of edge's next_left_edge
-	  and next_right_edge fields.
+	* [r7184] topology/README: Add a short paragraph about the semantic
+	  of edge's next_left_edge and next_right_edge fields.
 
-2011-05-18 07:15  robe
+2011-05-18 07:15  Regina Obe <lr at pcorp.us>
 
-	* Fix ST_AsTiff function proto typos
+	* [r7183] doc/reference_raster.xml: Fix ST_AsTiff function proto
+	  typos
 
-2011-05-18 05:43  robe
+2011-05-18 05:43  Regina Obe <lr at pcorp.us>
 
-	* Document ST_AsTIFF and fix some missttatements about ST_ASPNG.
-	  Also pretend like we are using default args already
+	* [r7182] doc/reference_raster.xml: Document ST_AsTIFF and fix some
+	  missttatements about ST_ASPNG. Also pretend like we are using
+	  default args already
 
-2011-05-18 05:08  robe
+2011-05-18 05:08  Regina Obe <lr at pcorp.us>
 
-	* get rid of opt
+	* [r7181] doc/xsl/postgis_comments.sql.xsl: get rid of opt
 
-2011-05-18 04:43  robe
+2011-05-18 04:43  Regina Obe <lr at pcorp.us>
 
-	* bah just use brackets for optional args -- docbook seems to be
-	  ignoring the choice='opt' tag
+	* [r7180] doc/reference_output.xml: bah just use brackets for
+	  optional args -- docbook seems to be ignoring the choice='opt'
+	  tag
 
-2011-05-18 04:13  robe
+2011-05-18 04:13  Regina Obe <lr at pcorp.us>
 
-	* try to get optional argument to have brackets using optional tag
+	* [r7179] doc/reference_output.xml: try to get optional argument to
+	  have brackets using optional tag
 
-2011-05-18 00:00  robe
+2011-05-18 00:00  Regina Obe <lr at pcorp.us>
 
-	* revise to put optional arguments in [] in the description. Damn
-	  dtd keeps downloading
+	* [r7178] doc/xsl/postgis_comments.sql.xsl: revise to put optional
+	  arguments in [] in the description. Damn dtd keeps downloading
 
-2011-05-17 22:50  robe
+2011-05-17 22:50  Regina Obe <lr at pcorp.us>
 
-	* Nothing like experimenting with myself. Change ST_AsX3D to use
-	  default parameters and reduce down to one proto
+	* [r7177] doc/reference_output.xml, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c: Nothing like experimenting with
+	  myself. Change ST_AsX3D to use default parameters and reduce down
+	  to one proto
 
-2011-05-17 19:35  strk
+2011-05-17 19:35  Sandro Santilli <strk at keybit.net>
 
-	* Appropriately tag GML functions as STABLE, IMMUTABLE or VOLATILE
-	  - see bug #955
+	* [r7176] topology/sql/gml.sql: Appropriately tag GML functions as
+	  STABLE, IMMUTABLE or VOLATILE - see bug #955
 
-2011-05-17 17:51  robe
+2011-05-17 17:51  Regina Obe <lr at pcorp.us>
 
-	* more back ref
+	* [r7175] doc/reference_raster.xml: more back ref
 
-2011-05-17 17:45  robe
+2011-05-17 17:45  Regina Obe <lr at pcorp.us>
 
-	* fix typos add backrefere to ST_GDALDrivers
+	* [r7174] doc/reference_raster.xml: fix typos add backrefere to
+	  ST_GDALDrivers
 
-2011-05-17 15:58  strk
+2011-05-17 15:58  Sandro Santilli <strk at keybit.net>
 
-	* Strip 'SELECT' feedback from regression test outputs
+	* [r7173] raster/test/regress/create_rt_gist_test_expected,
+	  raster/test/regress/rt_mean_expected,
+	  raster/test/regress/rt_stddev_expected,
+	  raster/test/regress/rt_summarystats_expected, regress/run_test:
+	  Strip 'SELECT' feedback from regression test outputs
 
-2011-05-17 15:27  dustymugs
+2011-05-17 15:27  Bborie Park <bkpark at ucdavis.edu>
 
-	* changed the dimensions of the raster generated for the summary
-	  stats test from 10000 x 10000 to 100 x 100
+	* [r7172] raster/test/core/testapi.c: changed the dimensions of the
+	  raster generated for the summary stats test from 10000 x 10000 to
+	  100 x 100
 
-2011-05-17 15:01  dustymugs
+2011-05-17 15:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* Code cleanup of uncorrected statement from r7170
+	* [r7171] raster/rt_pg/rtpostgis.sql.in.c: Code cleanup of
+	  uncorrected statement from r7170
 	  Associated ticket is #954
 
-2011-05-17 14:46  dustymugs
+2011-05-17 14:46  Bborie Park <bkpark at ucdavis.edu>
 
-	* refactored code that attempted to modify a function parameter as
-	  PostgreSQL 8.4 sets all function parameters as CONSTANT, unlike
-	  PostgreSQL 9.0
+	* [r7170] raster/rt_pg/rtpostgis.sql.in.c: refactored code that
+	  attempted to modify a function parameter as PostgreSQL 8.4 sets
+	  all function parameters as CONSTANT, unlike PostgreSQL 9.0
 
-2011-05-17 14:42  strk
+2011-05-17 14:42  Sandro Santilli <strk at keybit.net>
 
-	* Tag some functions as STABLE or even IMMUTABLE (from volatile) -
-	  see bug #955
+	* [r7169] topology/sql/manage/TopologySummary.sql,
+	  topology/sql/query/getedgebypoint.sql,
+	  topology/sql/query/getfacebypoint.sql,
+	  topology/sql/query/getnodebypoint.sql,
+	  topology/sql/topoelement/topoelement_agg.sql: Tag some functions
+	  as STABLE or even IMMUTABLE (from volatile) - see bug #955
 
-2011-05-17 14:04  dustymugs
+2011-05-17 14:04  Bborie Park <bkpark at ucdavis.edu>
 
-	* refactored usage of snprintf to use explicit string sizes rather
-	  than what is a gcc specific implementation where the return value
-	  of snprintf is the ideal size of the string
+	* [r7168] raster/rt_pg/rt_pg.c: refactored usage of snprintf to use
+	  explicit string sizes rather than what is a gcc specific
+	  implementation where the return value of snprintf is the ideal
+	  size of the string
 
-2011-05-17 07:33  strk
+2011-05-17 07:33  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in sample topology load (face id sequence value)
-	  [RT-SIGTA]
+	* [r7167] topology/test/load_topology.sql.in,
+	  topology/test/regress/copytopology_expected,
+	  topology/test/regress/gml_expected,
+	  topology/test/regress/legacy_predicate_expected,
+	  topology/test/regress/legacy_query_expected,
+	  topology/test/regress/legacy_validate_expected,
+	  topology/test/regress/st_addedgenewfaces_expected,
+	  topology/test/regress/st_modedgeheal_expected,
+	  topology/test/regress/st_newedgeheal_expected: Fixed bug in
+	  sample topology load (face id sequence value) [RT-SIGTA]
 
-2011-05-17 06:34  robe
+2011-05-17 06:34  Regina Obe <lr at pcorp.us>
 
-	* revise to correctly comment functions with OUT parameters
+	* [r7166] doc/xsl/raster_comments.sql.xsl: revise to correctly
+	  comment functions with OUT parameters
 
-2011-05-17 05:37  robe
+2011-05-17 05:37  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r7165] doc/introduction.xml: fix typo
 
-2011-05-17 03:02  robe
+2011-05-17 03:02  Regina Obe <lr at pcorp.us>
 
-	* document ST_GDALDrivers and back reference to ST_AsGDALRaster
+	* [r7164] doc/reference_raster.xml: document ST_GDALDrivers and
+	  back reference to ST_AsGDALRaster
 
-2011-05-17 02:06  robe
+2011-05-17 02:06  Regina Obe <lr at pcorp.us>
 
-	* Document ST_AsGDALRaster
+	* [r7163] doc/reference_raster.xml: Document ST_AsGDALRaster
 
-2011-05-17 00:55  robe
+2011-05-17 00:55  Regina Obe <lr at pcorp.us>
 
-	* forgot availability and GDAL dependency note on ST_AsPNG
+	* [r7162] doc/reference_raster.xml: forgot availability and GDAL
+	  dependency note on ST_AsPNG
 
-2011-05-17 00:40  robe
+2011-05-17 00:40  Regina Obe <lr at pcorp.us>
 
-	* First draft of ST_ASPNG doco. Need some more examples and perhaps
-	  even pictures.
+	* [r7161] doc/reference_raster.xml: First draft of ST_ASPNG doco.
+	  Need some more examples and perhaps even pictures.
 
-2011-05-16 22:01  dustymugs
+2011-05-16 22:01  Bborie Park <bkpark at ucdavis.edu>
 
-	* - fixed usage of function parameter "hasnodata" to follow
-	  standardized interpretation
+	* [r7160] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/scripts/python/rtgdalraster.py,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_mean.sql,
+	  raster/test/regress/rt_minmax.sql,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_stddev.sql,
+	  raster/test/regress/rt_summarystats.sql: - fixed usage of
+	  function parameter "hasnodata" to follow standardized
+	  interpretation
 	  - added copyright notices for work done by Bborie Park funded
 	  through the Regents of the University of California
 
-2011-05-16 19:56  dustymugs
+2011-05-16 19:56  Bborie Park <bkpark at ucdavis.edu>
 
-	* removed duplicative ST_Histogram function
+	* [r7159] raster/rt_pg/rtpostgis.sql.in.c: removed duplicative
+	  ST_Histogram function
 
-2011-05-16 19:54  dustymugs
+2011-05-16 19:54  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add ST_AsPNG
+	* [r7158] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_aspng.sql,
+	  raster/test/regress/rt_aspng_expected: Add ST_AsPNG
 	  
 	  - added SQL functions for ST_AsPNG
 	  - added regression tests
 	  
 	  Associated ticket is #342
 
-2011-05-16 19:52  dustymugs
+2011-05-16 19:52  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add ST_AsJPEG function
+	* [r7157] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_asjpeg.sql,
+	  raster/test/regress/rt_asjpeg_expected: Add ST_AsJPEG function
 	  
 	  - added SQL functions for ST_AsJPEG
 	  - added regression tests
 	  
 	  Associated ticket is #340
 
-2011-05-16 19:50  dustymugs
+2011-05-16 19:50  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add ST_AsTIFF function
+	* [r7156] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_astiff.sql,
+	  raster/test/regress/rt_astiff_expected: Add ST_AsTIFF function
 	  
 	  - add SQL functions for ST_AsTIFF
 	  - add regression tests
 	  
 	  Associated ticket is #341
 
-2011-05-16 19:48  dustymugs
+2011-05-16 19:48  Bborie Park <bkpark at ucdavis.edu>
 
-	* Add ST_AsGDALRaster function and helper functions ST_GDALDrivers
-	  and ST_srtext
+	* [r7155] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/scripts/python/rtgdalraster.py,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_asgdalraster.sql,
+	  raster/test/regress/rt_asgdalraster_expected: Add ST_AsGDALRaster
+	  function and helper functions ST_GDALDrivers and ST_srtext
 	  - added rt_raster_to_gdal, rt_raster_gdal_drivers and
 	  rt_raster_to_gdal_mem functions to rt_core/rt_api.c and rt_api.h
 	  - added test cases to test/core/testapi.c
@@ -20303,9 +35029,14 @@
 	  
 	  Associated ticket is #901
 
-2011-05-16 19:43  dustymugs
+2011-05-16 19:43  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Reclass function
+	* [r7154] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_reclass.sql,
+	  raster/test/regress/rt_reclass_expected: Added ST_Reclass
+	  function
 	  
 	  - added rt_band_reclass and rt_raster_replace_band to
 	  rt_core/rt_api.c and rt_api.h
@@ -20316,9 +35047,14 @@
 	  
 	  Associated ticket is #903
 
-2011-05-16 19:39  dustymugs
+2011-05-16 19:39  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Quantile functions
+	* [r7153] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_quantile.sql,
+	  raster/test/regress/rt_quantile_expected: Added ST_Quantile
+	  functions
 	  - added function rt_raster_get_quantiles to rt_core/rt_api.c and
 	  rt_api.h
 	  - added test case to test/core/testapi.c
@@ -20328,9 +35064,14 @@
 	  
 	  Associated ticket is #935
 
-2011-05-16 19:36  dustymugs
+2011-05-16 19:36  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Histogram functions.
+	* [r7152] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_histogram.sql,
+	  raster/test/regress/rt_histogram_expected: Added ST_Histogram
+	  functions.
 	  - added function rt_band_get_histogram to rt_core/rt_api.c and
 	  rt_api.h
 	  - added test case to test/core/testapi.c
@@ -20340,34 +35081,47 @@
 	  
 	  Associated ticket is #934
 
-2011-05-16 19:34  dustymugs
+2011-05-16 19:34  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_MinMax function
+	* [r7151] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_minmax.sql,
+	  raster/test/regress/rt_minmax_expected: Added ST_MinMax function
 	  - added SQL functions for ST_MinMax
 	  - added regression tests
 	  
 	  Associated ticket is #902
 
-2011-05-16 19:32  dustymugs
+2011-05-16 19:32  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_StdDev function
+	* [r7150] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_stddev.sql,
+	  raster/test/regress/rt_stddev_expected: Added ST_StdDev function
 	  - added SQL functions for ST_StdDev
 	  - added regression tests
 	  
 	  Associated ticket is #932
 
-2011-05-16 19:30  dustymugs
+2011-05-16 19:30  Bborie Park <bkpark at ucdavis.edu>
 
-	* Added ST_Mean function.
+	* [r7149] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/Makefile.in, raster/test/regress/rt_mean.sql,
+	  raster/test/regress/rt_mean_expected: Added ST_Mean function.
 	  
 	  - added SQL functions for ST_Mean to rt_pg/rtpostgis.sql.in.c
 	  - added regression tests
 	  
 	  Associated ticket is #931
 
-2011-05-16 19:17  dustymugs
+2011-05-16 19:17  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_SummaryStats function.
+	* [r7148] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_summarystats.sql,
+	  raster/test/regress/rt_summarystats_expected: Addition of
+	  ST_SummaryStats function.
 	  
 	  - added function rt_band_get_summary_stats to rt_core/rt_api.c
 	  and rt_api.h
@@ -20379,9 +35133,14 @@
 	  
 	  Associated ticket is #930.
 
-2011-05-16 19:11  dustymugs
+2011-05-16 19:11  Bborie Park <bkpark at ucdavis.edu>
 
-	* Addition of ST_Band functionality.
+	* [r7147] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_band.sql,
+	  raster/test/regress/rt_band_expected: Addition of ST_Band
+	  functionality.
 	  - added function rt_raster_from_band to rt_core/rt_api.c and
 	  rt_api.h
 	  - added test case to test/core/testapi.c
@@ -20391,181 +35150,277 @@
 	  
 	  Associated ticket is #339 and attached patch st_band.3.patch
 
-2011-05-16 11:01  strk
-
-	* Fix a bug in the example topology data (related to
-	  next_left_edge) -- affected regress testing, also updated
-	  [RT-SIGTA]
-
-2011-05-13 19:29  robe
+2011-05-16 11:01  Sandro Santilli <strk at keybit.net>
 
-	* forgot to add Bborie's organization
+	* [r7146] topology/test/load_topology.sql.in,
+	  topology/test/regress/st_modedgeheal_expected,
+	  topology/test/regress/st_newedgeheal_expected: Fix a bug in the
+	  example topology data (related to next_left_edge) -- affected
+	  regress testing, also updated [RT-SIGTA]
 
-2011-05-13 19:27  robe
+2011-05-13 19:29  Regina Obe <lr at pcorp.us>
 
-	* Add Bborie Park to development team lists. Assume Paul, you've
-	  given him SVN edit rights already.
+	* [r7145] doc/introduction.xml: forgot to add Bborie's organization
 
-2011-05-13 08:46  robe
+2011-05-13 19:27  Regina Obe <lr at pcorp.us>
 
-	* apply astyle
+	* [r7144] CREDITS, authors.svn, doc/introduction.xml: Add Bborie
+	  Park to development team lists. Assume Paul, you've given him SVN
+	  edit rights already.
 
-2011-05-13 08:46  robe
+2011-05-13 08:46  Regina Obe <lr at pcorp.us>
 
-	* apply astyle
+	* [r7143] liblwgeom/lwout_x3d.c: apply astyle
 
-2011-05-13 01:04  chodgson
+2011-05-13 08:46  Regina Obe <lr at pcorp.us>
 
-	* additional bug fix for #844
+	* [r7142] postgis/lwgeom_accum.c: apply astyle
 
-2011-05-12 22:05  chodgson
+2011-05-13 01:04  Chris Hodgson <chodgson at refractions.net>
 
-	* added regess test for #884
+	* [r7141] postgis/lwgeom_rtree.c: additional bug fix for #844
 
-2011-05-12 18:51  chodgson
+2011-05-12 22:05  Chris Hodgson <chodgson at refractions.net>
 
-	* merged fix from r7136 in 1.5 branch, fixes broken
-	  point_in_multipolygon_rtree, for #884
+	* [r7139] ., liblwgeom/liblwgeom.h, liblwgeom/lwcircstring.c,
+	  loader/getopt.c, loader/getopt.h, loader/shpcommon.h,
+	  postgis/long_xact.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/sqlmm.sql.in.c, raster/doc/RFC2-WellKnownBinaryFormat,
+	  raster/scripts/python/Makefile.rt.sample,
+	  raster/scripts/python/rtreader.py, regress/tickets.sql,
+	  regress/tickets_expected: added regess test for #884
+
+2011-05-12 18:51  Chris Hodgson <chodgson at refractions.net>
+
+	* [r7137] ., liblwgeom/liblwgeom.h, liblwgeom/lwcircstring.c,
+	  loader/getopt.c, loader/getopt.h, loader/shpcommon.h,
+	  postgis/long_xact.sql.in.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_analytic.h, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_rtree.h,
+	  postgis/postgis.sql.in.c, postgis/sqlmm.sql.in.c,
+	  raster/doc/RFC2-WellKnownBinaryFormat,
+	  raster/scripts/python/Makefile.rt.sample,
+	  raster/scripts/python/rtreader.py: merged fix from r7136 in 1.5
+	  branch, fixes broken point_in_multipolygon_rtree, for #884
 
-2011-05-12 17:39  robe
+2011-05-12 17:39  Regina Obe <lr at pcorp.us>
 
-	* fix for #940 -- can't compile PostGIS 2.0 against PostgreSQL 9.1
-	  beta 1
+	* [r7135] postgis/lwgeom_accum.c: fix for #940 -- can't compile
+	  PostGIS 2.0 against PostgreSQL 9.1 beta 1
 
-2011-05-12 16:14  strk
+2011-05-12 16:14  Sandro Santilli <strk at keybit.net>
 
-	* topology.ST_AddEdgeNewFaces : tabs to spaces, named arguments,
+	* [r7134] topology/sql/sqlmm.sql, topology/test/Makefile,
+	  topology/test/regress/st_addedgenewfaces.sql,
+	  topology/test/regress/st_addedgenewfaces_expected:
+	  topology.ST_AddEdgeNewFaces : tabs to spaces, named arguments,
 	  code cleanups and improved checks, tests for invalid calls
 	  [RT-SIGTA]
 
-2011-05-12 10:23  strk
+2011-05-12 10:23  Sandro Santilli <strk at keybit.net>
 
-	* Don't miss to clean load_topology-4326.sql
+	* [r7133] topology/test/Makefile: Don't miss to clean
+	  load_topology-4326.sql
 
-2011-05-12 07:28  robe
+2011-05-12 07:28  Regina Obe <lr at pcorp.us>
 
-	* add about the tiger upgrade script
+	* [r7132] doc/extras_tigergeocoder.xml: add about the tiger upgrade
+	  script
 
-2011-05-11 14:59  robe
+2011-05-11 14:59  Regina Obe <lr at pcorp.us>
 
-	* more optimizations
+	* [r7131]
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  more optimizations
 
-2011-05-11 13:50  robe
+2011-05-11 13:50  Regina Obe <lr at pcorp.us>
 
-	* put in some missing indexes
+	* [r7130]
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: put in some
+	  missing indexes
 
-2011-05-11 13:32  robe
+2011-05-11 13:32  Regina Obe <lr at pcorp.us>
 
-	* more performance enhancements
+	* [r7129]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql: more
+	  performance enhancements
 
-2011-05-11 12:56  robe
+2011-05-11 12:56  Regina Obe <lr at pcorp.us>
 
-	* turn off debug mode
+	* [r7128]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  turn off debug mode
 
-2011-05-11 12:55  robe
+2011-05-11 12:55  Regina Obe <lr at pcorp.us>
 
-	* more usability and performance enhancements. Change
+	* [r7127] extras/tiger_geocoder/tiger_2010/README,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocoder.bat,
+	  extras/tiger_geocoder/tiger_2010/upgrade_geocoder.sh: more
+	  usability and performance enhancements. Change
 	  geocoder/reverse_geocode to use tiger.state_lookup instead of
 	  each schema state table (to achieve this had to add statefp to
 	  lookup table). Also put in upgrade scripts and notes on upgrading
 	  in README. (current script will only upgrade an alpha tiger 2010
 	  (PostGIS 2.0.0 install) ).
 
-2011-05-11 11:32  robe
+2011-05-11 11:32  Regina Obe <lr at pcorp.us>
 
-	* bah Hudson still not happy. Make some preemptive changes
+	* [r7126] doc/release_notes.xml: bah Hudson still not happy. Make
+	  some preemptive changes
 
-2011-05-11 11:08  robe
+2011-05-11 11:08  Regina Obe <lr at pcorp.us>
 
-	* Frivolous edit to try to cure Hudson's hiccup
+	* [r7125] doc/introduction.xml: Frivolous edit to try to cure
+	  Hudson's hiccup
 
-2011-05-11 02:34  robe
+2011-05-11 02:34  Regina Obe <lr at pcorp.us>
 
-	* minor change to Kevin's bio
+	* [r7124] doc/introduction.xml: minor change to Kevin's bio
 
-2011-05-11 02:11  robe
+2011-05-11 02:11  Regina Obe <lr at pcorp.us>
 
-	* update PSC list and alphabetize it to get rid of any unintended
-	  implications of hierarchy. Add new PSC members / remove old and
-	  mark Paul as Chair.
+	* [r7123] doc/introduction.xml: update PSC list and alphabetize it
+	  to get rid of any unintended implications of hierarchy. Add new
+	  PSC members / remove old and mark Paul as Chair.
 
-2011-05-10 04:54  robe
+2011-05-10 04:54  Regina Obe <lr at pcorp.us>
 
-	* fix some comments
+	* [r7122] liblwgeom/lwout_x3d.c: fix some comments
 
-2011-05-10 03:57  robe
+2011-05-10 03:57  Regina Obe <lr at pcorp.us>
 
-	* put in a todo why I'm punting properly handling holes for now
+	* [r7121] liblwgeom/lwout_x3d.c: put in a todo why I'm punting
+	  properly handling holes for now
 
-2011-05-09 19:59  robe
+2011-05-09 19:59  Regina Obe <lr at pcorp.us>
 
-	* more cleanup of normalize_address function
+	* [r7120]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  more cleanup of normalize_address function
 
-2011-05-09 16:10  robe
+2011-05-09 16:10  Regina Obe <lr at pcorp.us>
 
-	* put in missing constraints
+	* [r7119] extras/tiger_geocoder/tiger_2010/tiger_loader.sql: put in
+	  missing constraints
 
-2011-05-09 15:16  strk
+2011-05-09 15:16  Sandro Santilli <strk at keybit.net>
 
-	* Implement, document, and regress-test SQL/MM ST_NewEdgeHeal
-	  [RT-SIGTA]
+	* [r7118] doc/extras_topology.xml, topology/sql/sqlmm.sql,
+	  topology/test/Makefile, topology/test/regress/st_newedgeheal.sql,
+	  topology/test/regress/st_newedgeheal_expected: Implement,
+	  document, and regress-test SQL/MM ST_NewEdgeHeal [RT-SIGTA]
 
-2011-05-09 15:00  robe
+2011-05-09 15:00  Regina Obe <lr at pcorp.us>
 
-	* major speed improvements to normalize_address
+	* [r7117]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  major speed improvements to normalize_address
 
-2011-05-09 14:17  strk
+2011-05-09 14:17  Sandro Santilli <strk at keybit.net>
 
-	* Check for "other connected edges" before TopoGeometry definitions
+	* [r7116] topology/sql/sqlmm.sql: Check for "other connected edges"
+	  before TopoGeometry definitions
 
-2011-05-09 14:07  strk
+2011-05-09 14:07  Sandro Santilli <strk at keybit.net>
 
-	* Fix path to raster (regress) enabler script. Fixes ticket #947.
+	* [r7115] regress/run_test: Fix path to raster (regress) enabler
+	  script. Fixes ticket #947.
 
-2011-05-08 19:34  robe
+2011-05-08 19:34  Regina Obe <lr at pcorp.us>
 
-	* some explanation of theoretical vs. actual
+	* [r7114] doc/extras_tigergeocoder.xml: some explanation of
+	  theoretical vs. actual
 
-2011-05-08 17:20  robe
+2011-05-08 17:20  Regina Obe <lr at pcorp.us>
 
-	* mark as immutable
+	* [r7113]
+	  extras/tiger_geocoder/tiger_2010/normalize/count_words.sql: mark
+	  as immutable
 
-2011-05-08 17:18  robe
+2011-05-08 17:18  Regina Obe <lr at pcorp.us>
 
-	* more cleanup. Get rid of more deprecated functions, put in more
+	* [r7112]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/end_soundex.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/get_last_words.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/state_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/cull_null.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/levenshtein_ignore_case.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/nullable_levenshtein.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/utmzone.sql: more
+	  cleanup. Get rid of more deprecated functions, put in more
 	  stable,imuutable markers. Change some functions from plpgsql to
 	  sql
 
-2011-05-08 16:36  robe
-
-	* Put in costing and make most of the functions either STABLE or
+2011-05-08 16:36  Regina Obe <lr at pcorp.us>
+
+	* [r7111] extras/tiger_geocoder/tiger_2010/README,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/rate_attributes.sql: Put
+	  in costing and make most of the functions either STABLE or
 	  IMMUTABLE. We were loosing a lot of cacheability of that. Also
 	  put in instructions in README how to upgrade the scripts. Will
 	  need to put this in the official docs too once cleaned that up a
 	  bit.
 
-2011-05-07 16:33  robe
+2011-05-07 16:33  Regina Obe <lr at pcorp.us>
 
-	* put in clock timestamps in debugging logic. We seem to be loosing
+	* [r7110]
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql:
+	  put in clock timestamps in debugging logic. We seem to be loosing
 	  more time on this normalize than we should be.
 
-2011-05-06 21:39  strk
+2011-05-06 21:39  Sandro Santilli <strk at keybit.net>
 
-	* ST_ModEdgeHeal: move check for TopoGeometry after check for
-	  connected edges. Fixes bug #942 and regress-tests it [RT-SIGTA]
+	* [r7109] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected: ST_ModEdgeHeal:
+	  move check for TopoGeometry after check for connected edges.
+	  Fixes bug #942 and regress-tests it [RT-SIGTA]
 
-2011-05-06 21:21  strk
+2011-05-06 21:21  Sandro Santilli <strk at keybit.net>
 
-	* topology.ST_ModEdgeHeal: Check for edge existance before
+	* [r7108] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected:
+	  topology.ST_ModEdgeHeal: Check for edge existance before
 	  TopoGeometry definitions. Fixes bug #941 and regress-tests it.
 
-2011-05-06 14:29  jorgearevalo
+2011-05-06 14:29  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Trailing spaces removed from raster files.
+	* [r7107] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rt_pg.h,
+	  raster/test/core/testapi.c, raster/test/core/testwkb.c: Trailing
+	  spaces removed from raster files.
 
-2011-05-06 12:06  jorgearevalo
+2011-05-06 12:06  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Changes in raster memory management:
+	* [r7106] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/core/testapi.c,
+	  raster/test/core/testwkb.c,
+	  raster/test/regress/rt_addband_expected,
+	  raster/test/regress/rt_mapalgebra_expected: Changes in raster
+	  memory management:
 	  - Only calling function memory context is used, except in SRF
 	  functions, where
 	  multi_call_memory_ctx is used.
@@ -20583,565 +35438,727 @@
 	  memory
 	  context).
 
-2011-05-06 06:46  strk
+2011-05-06 06:46  Sandro Santilli <strk at keybit.net>
 
-	* Closer-to-iso exceptions from ST_GetFaceEdges/ST_ModEdgeHeal
-	  [RT-SIGTA]
+	* [r7105] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_getfaceedges.sql,
+	  topology/test/regress/st_getfaceedges_expected,
+	  topology/test/regress/st_modedgeheal_expected: Closer-to-iso
+	  exceptions from ST_GetFaceEdges/ST_ModEdgeHeal [RT-SIGTA]
 
-2011-05-05 21:12  strk
+2011-05-05 21:12  Sandro Santilli <strk at keybit.net>
 
-	* Drop commented out code
+	* [r7104] liblwgeom/lwout_wkb.c: Drop commented out code
 
-2011-05-05 21:12  strk
+2011-05-05 21:12  Sandro Santilli <strk at keybit.net>
 
-	* Do not attempt to read points from empty pointarrays (thanks
-	  valgrind for finding this)
+	* [r7103] liblwgeom/lwgunparse.c: Do not attempt to read points
+	  from empty pointarrays (thanks valgrind for finding this)
 
-2011-05-05 21:12  strk
+2011-05-05 21:12  Sandro Santilli <strk at keybit.net>
 
-	* Allow dumping polygons with empty rings, fixing bug #937, add
+	* [r7102] liblwgeom/cunit/cu_out_wkb.c, liblwgeom/lwout_wkb.c:
+	  Allow dumping polygons with empty rings, fixing bug #937, add
 	  unit testing for that case.
 
-2011-05-05 12:13  robe
+2011-05-05 12:13  Regina Obe <lr at pcorp.us>
 
-	* amend
+	* [r7101] doc/faq_raster.xml: amend
 
-2011-05-05 08:32  strk
+2011-05-05 08:32  Sandro Santilli <strk at keybit.net>
 
-	* another generated file git-ignored
+	* [r7100] .gitignore: another generated file git-ignored
 
-2011-05-05 07:34  strk
+2011-05-05 07:34  Sandro Santilli <strk at keybit.net>
 
-	* Ignore new generated files
+	* [r7099] .gitignore: Ignore new generated files
 
-2011-05-05 07:30  robe
+2011-05-05 07:30  Regina Obe <lr at pcorp.us>
 
-	* replace osgeo log with project one and one that is not
-	  transparent so looks okay in pdf. Add PostGIS logo. Move logos to
-	  cover page.
+	* [r7098] doc/html/images/PostGIS_logo.png,
+	  doc/html/images/osgeo_logo.png, doc/introduction.xml,
+	  doc/postgis.xml: replace osgeo log with project one and one that
+	  is not transparent so looks okay in pdf. Add PostGIS logo. Move
+	  logos to cover page.
 
-2011-05-05 02:45  robe
+2011-05-05 02:45  Regina Obe <lr at pcorp.us>
 
-	* get rid of literal wrapper
+	* [r7097] doc/introduction.xml: get rid of literal wrapper
 
-2011-05-05 02:44  robe
+2011-05-05 02:44  Regina Obe <lr at pcorp.us>
 
-	* amend faq and fix some typos
+	* [r7096] doc/faq.xml: amend faq and fix some typos
 
-2011-05-05 02:30  robe
+2011-05-05 02:30  Regina Obe <lr at pcorp.us>
 
-	* Update Chris' bio now that he is taking on more of an active role
+	* [r7095] doc/introduction.xml: Update Chris' bio now that he is
+	  taking on more of an active role
 
-2011-05-05 02:26  robe
+2011-05-05 02:26  Regina Obe <lr at pcorp.us>
 
-	* attempt at OSGeo branding our documentation
+	* [r7094] doc/html/images/osgeo_logo.png, doc/introduction.xml:
+	  attempt at OSGeo branding our documentation
 
-2011-05-04 23:56  chodgson
+2011-05-04 23:56  Chris Hodgson <chodgson at refractions.net>
 
-	* merged changes r7092 to fix null handling in st_collect for #912,
-	  #630 in 1.5 branch into trunk
+	* [r7093] ., postgis/lwgeom_functions_basic.c, regress/tickets.sql,
+	  regress/tickets_expected: merged changes r7092 to fix null
+	  handling in st_collect for #912, #630 in 1.5 branch into trunk
 
-2011-05-04 18:34  strk
+2011-05-04 18:34  Sandro Santilli <strk at keybit.net>
 
-	* Add note about updating joined edges and relationships, touch
-	  ST_ModEdgeSplit, ST_NewEdgeSplit, ST_ModEdgeHeal [RT-SIGTA]
+	* [r7091] doc/extras_topology.xml: Add note about updating joined
+	  edges and relationships, touch ST_ModEdgeSplit, ST_NewEdgeSplit,
+	  ST_ModEdgeHeal [RT-SIGTA]
 
-2011-05-04 18:20  strk
+2011-05-04 18:20  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_ModEdgeHeal [RT-SIGTA]
+	* [r7090] doc/extras_topology.xml: Document ST_ModEdgeHeal
+	  [RT-SIGTA]
 
-2011-05-04 18:20  strk
+2011-05-04 18:20  Sandro Santilli <strk at keybit.net>
 
-	* ST_ModEdgeHeal: update TopoGeom definitions, and test it
-	  [RT-SIGTA]
+	* [r7089] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected: ST_ModEdgeHeal:
+	  update TopoGeom definitions, and test it [RT-SIGTA]
 
-2011-05-04 18:20  strk
+2011-05-04 18:20  Sandro Santilli <strk at keybit.net>
 
-	* Test that healing of two edges is forbidden if any topogeom is
-	  defined by only one of them [RT-SIGTA]
+	* [r7088] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected: Test that healing
+	  of two edges is forbidden if any topogeom is defined by only one
+	  of them [RT-SIGTA]
 
-2011-05-04 18:20  strk
+2011-05-04 18:20  Sandro Santilli <strk at keybit.net>
 
-	* Forbid healing edges if any feature is defined by only one of the
-	  two [RT-SIGTA]
+	* [r7087] topology/sql/sqlmm.sql,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected: Forbid healing
+	  edges if any feature is defined by only one of the two [RT-SIGTA]
 
-2011-05-04 18:19  strk
+2011-05-04 18:19  Sandro Santilli <strk at keybit.net>
 
-	* Complete primitive (SQL/MM) portion of ST_ModEdgeHeal, regress
-	  test [RT-SIGTA]
+	* [r7086] topology/sql/sqlmm.sql, topology/test/Makefile,
+	  topology/test/regress/st_modedgeheal.sql,
+	  topology/test/regress/st_modedgeheal_expected: Complete primitive
+	  (SQL/MM) portion of ST_ModEdgeHeal, regress test [RT-SIGTA]
 
-2011-05-04 18:19  strk
+2011-05-04 18:19  Sandro Santilli <strk at keybit.net>
 
-	* Stub topology.ST_ModEdgeHeal [RT-SIGTA]
+	* [r7085] topology/sql/sqlmm.sql, topology/topology.sql.in.c: Stub
+	  topology.ST_ModEdgeHeal [RT-SIGTA]
 
-2011-05-03 16:56  strk
+2011-05-03 16:56  Sandro Santilli <strk at keybit.net>
 
-	* Add examples of ST_GetFaceEdges
+	* [r7084] doc/extras_topology.xml: Add examples of ST_GetFaceEdges
 
-2011-05-03 13:35  robe
+2011-05-03 13:35  Regina Obe <lr at pcorp.us>
 
-	* more work on handling 3d polygons with holes
+	* [r7083] liblwgeom/lwout_x3d.c: more work on handling 3d polygons
+	  with holes
 
-2011-05-03 13:32  strk
+2011-05-03 13:32  Sandro Santilli <strk at keybit.net>
 
-	* extent() -> st_extent()
+	* [r7082] raster/test/regress/rt_above.sql,
+	  raster/test/regress/rt_below.sql,
+	  raster/test/regress/rt_contain.sql,
+	  raster/test/regress/rt_contained.sql,
+	  raster/test/regress/rt_left.sql,
+	  raster/test/regress/rt_overabove.sql,
+	  raster/test/regress/rt_overbelow.sql,
+	  raster/test/regress/rt_overlap.sql,
+	  raster/test/regress/rt_overleft.sql,
+	  raster/test/regress/rt_overright.sql,
+	  raster/test/regress/rt_right.sql,
+	  raster/test/regress/rt_same.sql: extent() -> st_extent()
 
-2011-05-03 13:32  strk
+2011-05-03 13:32  Sandro Santilli <strk at keybit.net>
 
-	* Implement ST_GetFaceEdges (sql/mm topology function) [RT-SIGTA]
+	* [r7081] topology/sql/sqlmm.sql, topology/test/Makefile,
+	  topology/test/regress/st_getfaceedges.sql,
+	  topology/test/regress/st_getfaceedges_expected,
+	  topology/topology.sql.in.c: Implement ST_GetFaceEdges (sql/mm
+	  topology function) [RT-SIGTA]
 
-2011-05-03 12:45  robe
+2011-05-03 12:45  Regina Obe <lr at pcorp.us>
 
-	* Use strk's suggestion of quieting hudson reqress by adding a \set
-	  VERBOSITY terse
+	* [r7080] regress/regress_management.sql,
+	  regress/regress_management_expected: Use strk's suggestion of
+	  quieting hudson reqress by adding a \set VERBOSITY terse
 
-2011-05-03 08:20  strk
+2011-05-03 08:20  Sandro Santilli <strk at keybit.net>
 
-	* Move type definition close to the function using it
-	  (ST_GetFaceEdges)
+	* [r7079] topology/sql/sqlmm.sql, topology/topology.sql.in.c: Move
+	  type definition close to the function using it (ST_GetFaceEdges)
 
-2011-05-01 02:46  robe
+2011-05-01 02:46  Regina Obe <lr at pcorp.us>
 
-	* Fix handling of 3d polygons (still doesn't handle holes right),
-	  update doc to show example and also caveats so far, add polygon
-	  and polyhedralsurface example to c unit tests
+	* [r7078] doc/reference_output.xml, liblwgeom/cunit/cu_out_x3d.c,
+	  liblwgeom/lwout_x3d.c: Fix handling of 3d polygons (still doesn't
+	  handle holes right), update doc to show example and also caveats
+	  so far, add polygon and polyhedralsurface example to c unit tests
 
-2011-04-30 22:26  colivier
+2011-04-30 22:26  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* First implementation of #459. Still need unit tests and docs
+	* [r7077] liblwgeom/liblwgeom.h, liblwgeom/lwout_gml.c,
+	  postgis/lwgeom_export.c: First implementation of #459. Still need
+	  unit tests and docs
 
-2011-04-30 08:38  robe
+2011-04-30 08:38  Regina Obe <lr at pcorp.us>
 
-	* put topology_comments generation back in the overall comments
-	  make
+	* [r7075] doc/Makefile.in: put topology_comments generation back in
+	  the overall comments make
 
-2011-04-30 08:29  colivier
+2011-04-30 08:29  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix #933. Update related unit test. Add a convenient way to trace
-	  error in ST_GeomFromGML function
+	* [r7074] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Fix #933. Update related unit test. Add
+	  a convenient way to trace error in ST_GeomFromGML function
 
-2011-04-29 19:10  robe
+2011-04-29 19:10  Regina Obe <lr at pcorp.us>
 
-	* fix some typos in tiger geocoder documentation and hmm if Hudson
-	  is hiccuping (causing Olivier headaches), this might be the water
-	  he needs.
+	* [r7073] doc/extras_tigergeocoder.xml: fix some typos in tiger
+	  geocoder documentation and hmm if Hudson is hiccuping (causing
+	  Olivier headaches), this might be the water he needs.
 
-2011-04-29 18:39  colivier
+2011-04-29 18:39  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add LinearRing unit test for ST_GeomFromGML. Related to #905
+	* [r7072] regress/in_gml.sql, regress/in_gml_expected: Add
+	  LinearRing unit test for ST_GeomFromGML. Related to #905
 
-2011-04-29 17:44  colivier
+2011-04-29 17:44  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add an srid default value as second optional parameter for
-	  ST_GeomFromGML. Related to #906. Remove a wrong srsName
-	  definition. Update doc and unit test
+	* [r7071] doc/reference_constructor.xml, postgis/lwgeom_in_gml.c,
+	  postgis/postgis.sql.in.c, regress/in_gml.sql: Add an srid default
+	  value as second optional parameter for ST_GeomFromGML. Related to
+	  #906. Remove a wrong srsName definition. Update doc and unit test
 
-2011-04-28 21:05  robe
+2011-04-28 21:05  Regina Obe <lr at pcorp.us>
 
-	* Fix for #927
+	* [r7070]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql: Fix
+	  for #927
 
-2011-04-28 17:57  robe
+2011-04-28 17:57  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r7069] LICENSE.TXT: fix typo
 
-2011-04-26 12:35  robe
+2011-04-26 12:35  Regina Obe <lr at pcorp.us>
 
-	* #722 More deprecated functions: Get rid Extent deprecated
-	  aggregate, find_extent, Combine_BBox,StartPoint, EndPoint
+	* [r7065] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: #722
+	  More deprecated functions: Get rid Extent deprecated aggregate,
+	  find_extent, Combine_BBox,StartPoint, EndPoint
 
-2011-04-25 21:19  robe
+2011-04-25 21:19  Regina Obe <lr at pcorp.us>
 
-	* missed a spot
+	* [r7064] liblwgeom/liblwgeom.h: missed a spot
 
-2011-04-25 21:18  robe
+2011-04-25 21:18  Regina Obe <lr at pcorp.us>
 
-	* #923: document fix
+	* [r7063] doc/reference_accessor.xml, liblwgeom/lwgeom_api.c: #923:
+	  document fix
 
-2011-04-25 20:43  robe
+2011-04-25 20:43  Regina Obe <lr at pcorp.us>
 
-	* more link back to legacy_faq in release notes and what's changed
+	* [r7062] doc/release_notes.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  more link back to legacy_faq in release notes and what's changed
 
-2011-04-25 20:32  robe
+2011-04-25 20:32  Regina Obe <lr at pcorp.us>
 
-	* more update of credits
+	* [r7061] CREDITS, doc/introduction.xml: more update of credits
 
-2011-04-25 18:49  pramsey
+2011-04-25 18:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix spelling of chodgson
+	* [r7060] CREDITS: Fix spelling of chodgson
 
-2011-04-23 08:19  robe
+2011-04-23 08:19  Regina Obe <lr at pcorp.us>
 
-	* Add faq about how to get back removed legacy functions
+	* [r7059] doc/faq.xml: Add faq about how to get back removed legacy
+	  functions
 
-2011-04-23 08:03  robe
+2011-04-23 08:03  Regina Obe <lr at pcorp.us>
 
-	* Add missing ST_MapAlgebra proto
+	* [r7058] doc/reference_raster.xml: Add missing ST_MapAlgebra proto
 
-2011-04-22 11:36  jorgearevalo
+2011-04-22 11:36  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* MapAlgebra expected test messages updated.
+	* [r7057] raster/test/regress/rt_mapalgebra_expected: MapAlgebra
+	  expected test messages updated.
 
-2011-04-21 18:51  pracine
+2011-04-21 18:51  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Function necessary for ST_Histogram with a geometry parameter
+	* [r7056] raster/scripts/plpgsql/st_geomextent2rastercoord.sql:
+	  Function necessary for ST_Histogram with a geometry parameter
 
-2011-04-21 15:03  pracine
+2011-04-21 15:03  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -First version of ST_Histogram
+	* [r7055] raster/scripts/plpgsql/st_histogram.sql: -First version
+	  of ST_Histogram
 
-2011-04-20 09:23  nicklas
+2011-04-20 09:23  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Fix bug #918
+	* [r7054] postgis/postgis.sql.in.c: Fix bug #918
 
-2011-04-20 08:36  robe
+2011-04-20 08:36  Regina Obe <lr at pcorp.us>
 
-	* take out topology_comments build from make comments -- seems to
-	  be making Hudson mad. Will put back in later. I think this is
-	  flaw in docbook and its trying to download a buggy docbook
-	  version since it succeeds for me when built separately but not
-	  built in chain. Will try to put back later.
+	* [r7053] doc/Makefile.in: take out topology_comments build from
+	  make comments -- seems to be making Hudson mad. Will put back in
+	  later. I think this is flaw in docbook and its trying to download
+	  a buggy docbook version since it succeeds for me when built
+	  separately but not built in chain. Will try to put back later.
 
-2011-04-20 08:34  robe
+2011-04-20 08:34  Regina Obe <lr at pcorp.us>
 
-	* attempt at itemizing our licensing terms and licenses in use by
-	  various files and dependencies
+	* [r7052] LICENSE.TXT: attempt at itemizing our licensing terms and
+	  licenses in use by various files and dependencies
 
-2011-04-20 08:06  robe
+2011-04-20 08:06  Regina Obe <lr at pcorp.us>
 
-	* minor indent change
+	* [r7051] doc/extras_topology.xml: minor indent change
 
-2011-04-20 07:04  robe
+2011-04-20 07:04  Regina Obe <lr at pcorp.us>
 
-	* Hudson is a demanding man. Try to make him happy again so he
-	  builds the docs again.
+	* [r7050] doc/introduction.xml: Hudson is a demanding man. Try to
+	  make him happy again so he builds the docs again.
 
-2011-04-19 16:58  strk
+2011-04-19 16:58  Sandro Santilli <strk at keybit.net>
 
-	* Document topology.polygonize(<toponame>)
+	* [r7049] doc/extras_topology.xml: Document
+	  topology.polygonize(<toponame>)
 
-2011-04-19 16:58  strk
+2011-04-19 16:58  Sandro Santilli <strk at keybit.net>
 
-	* Regress test for topology.polygonize(<toponame>)
+	* [r7048] topology/test/Makefile,
+	  topology/test/regress/polygonize.sql,
+	  topology/test/regress/polygonize_expected: Regress test for
+	  topology.polygonize(<toponame>)
 
-2011-04-19 16:58  strk
+2011-04-19 16:58  Sandro Santilli <strk at keybit.net>
 
-	* Add topology.polygonize(<toponame>) function, see ticket #916
+	* [r7047] topology/Makefile.in, topology/sql/polygonize.sql,
+	  topology/topology.sql.in.c: Add topology.polygonize(<toponame>)
+	  function, see ticket #916
 
-2011-04-19 16:51  robe
+2011-04-19 16:51  Regina Obe <lr at pcorp.us>
 
-	* #914 separate chip legacy functions from rest of legacy functions
+	* [r7046] postgis/legacy.sql.in.c, postgis/legacy_chip.sql.in.c:
+	  #914 separate chip legacy functions from rest of legacy functions
 	  (regular legacy will be converted to legacy.sql, but chip won't
 	  for now)
 
-2011-04-18 14:08  robe
+2011-04-18 14:08  Regina Obe <lr at pcorp.us>
 
-	* fix for #913 replace geometry2box2d with LWGEOM_to_BOX2DFLOAT4 in
-	  st_box2d function definition.
+	* [r7045] postgis/legacy.sql.in.c: fix for #913 replace
+	  geometry2box2d with LWGEOM_to_BOX2DFLOAT4 in st_box2d function
+	  definition.
 
-2011-04-17 16:41  robe
+2011-04-17 16:41  Regina Obe <lr at pcorp.us>
 
-	* variable for buffer styles
+	* [r7044] doc/xsl/postgis_gardentest.sql.xsl: variable for buffer
+	  styles
 
-2011-04-15 20:34  pracine
+2011-04-15 20:34  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Warn that this function was implemented in C
+	* [r7042] raster/scripts/plpgsql/st_addband.sql: Warn that this
+	  function was implemented in C
 
-2011-04-15 20:30  pracine
+2011-04-15 20:30  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -The minimum for float and double are -FLT_MAX & -DBL_MAX
+	* [r7041] raster/rt_core/rt_api.c: -The minimum for float and
+	  double are -FLT_MAX & -DBL_MAX
 	  -Stacked some CASE options
 
-2011-04-15 18:06  pracine
+2011-04-15 18:06  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix for #651. Replace "scale" parameter for "pixelsize".
+	* [r7040] raster/rt_pg/rtpostgis.sql.in.c: -Fix for #651. Replace
+	  "scale" parameter for "pixelsize".
 
-2011-04-15 18:05  pracine
+2011-04-15 18:05  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix for #651. Replace "scale" parameter for "pixelsize".
+	* [r7039] doc/reference_raster.xml: -Fix for #651. Replace "scale"
+	  parameter for "pixelsize".
 
-2011-04-15 17:56  jorgearevalo
+2011-04-15 17:56  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Bug fixed: Loader tried to insert in <schema>.raster_overviews
-	  instead of public.raster_overviews
+	* [r7038] raster/scripts/python/raster2pgsql.py: Bug fixed: Loader
+	  tried to insert in <schema>.raster_overviews instead of
+	  public.raster_overviews
 
-2011-04-15 11:21  robe
+2011-04-15 11:21  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r7037] extras/tiger_geocoder/tiger_2010/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/cull_null.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/levenshtein_ignore_case.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/nullable_levenshtein.sql,
+	  extras/tiger_geocoder/tiger_2010/utility/utmzone.sql:
 
-2011-04-15 11:19  robe
+2011-04-15 11:19  Regina Obe <lr at pcorp.us>
 
-	* change to all line feed
+	* [r7036]
+	  extras/tiger_geocoder/tiger_2010/normalize/count_words.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/end_soundex.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/get_last_words.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/state_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql:
+	  change to all line feed
 
-2011-04-15 11:15  robe
+2011-04-15 11:15  Regina Obe <lr at pcorp.us>
 
-	* more patch corrections to support sh
+	* [r7035] extras/tiger_geocoder/tiger_2010/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql: more patch
+	  corrections to support sh
 
-2011-04-15 11:03  robe
+2011-04-15 11:03  Regina Obe <lr at pcorp.us>
 
-	* cleanup of breaks minor other changes
+	* [r7034]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  cleanup of breaks minor other changes
 
-2011-04-15 11:00  robe
+2011-04-15 11:00  Regina Obe <lr at pcorp.us>
 
-	* replace with linux breaks, minor changes to paths
+	* [r7033] extras/tiger_geocoder/tiger_2010/create_geocode.sh:
+	  replace with linux breaks, minor changes to paths
 
-2011-04-14 16:29  jorgearevalo
+2011-04-14 16:29  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* palloc return value doesn't need to be checked, because if out of
-	  memory, function ends with elog(ERROR). It never returns NULL.
+	* [r7032] raster/rt_pg/rt_pg.c: palloc return value doesn't need to
+	  be checked, because if out of memory, function ends with
+	  elog(ERROR). It never returns NULL.
 
-2011-04-14 13:50  strk
+2011-04-14 13:50  Sandro Santilli <strk at keybit.net>
 
-	* Drop the unused BUILD_RASTER configure variable, fix use of the
-	  RASTER variable. Fixes bug #910.
+	* [r7031] configure.ac: Drop the unused BUILD_RASTER configure
+	  variable, fix use of the RASTER variable. Fixes bug #910.
 
-2011-04-14 11:07  strk
+2011-04-14 11:07  Sandro Santilli <strk at keybit.net>
 
-	* Properly credit Stadt Uster, co-sponsor of buffer styles in 1.5
+	* [r7030] doc/introduction.xml: Properly credit Stadt Uster,
+	  co-sponsor of buffer styles in 1.5
 
-2011-04-14 11:07  strk
+2011-04-14 11:07  Sandro Santilli <strk at keybit.net>
 
-	* Implement SnapToGrid for CIRCULARSTRING and COMPOUNDCURVE. Just
-	  enough to fix #183.
+	* [r7029] postgis/lwgeom_functions_analytic.c, regress/tickets.sql,
+	  regress/tickets_expected: Implement SnapToGrid for CIRCULARSTRING
+	  and COMPOUNDCURVE. Just enough to fix #183.
 
-2011-04-14 10:38  strk
+2011-04-14 10:38  Sandro Santilli <strk at keybit.net>
 
-	* Do not error out if things are clean already
+	* [r7028] loader/cunit/Makefile.in: Do not error out if things are
+	  clean already
 
-2011-04-14 10:36  strk
+2011-04-14 10:36  Sandro Santilli <strk at keybit.net>
 
-	* Properly clean in loader's cunit test dir
+	* [r7027] loader/Makefile.in: Properly clean in loader's cunit test
+	  dir
 
-2011-04-13 19:53  jorgearevalo
+2011-04-13 19:53  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Context freed. It's not necessary.
+	* [r7026] raster/rt_pg/rt_pg.c: Context freed. It's not necessary.
 
-2011-04-13 19:44  jorgearevalo
+2011-04-13 19:44  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Fixed bug from ticket #837. Some other improvements in
-	  RASTER_mapAlgebra. Minor bug fixed in rt_raster_serialized_size.
+	* [r7025] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Fixed bug
+	  from ticket #837. Some other improvements in RASTER_mapAlgebra.
+	  Minor bug fixed in rt_raster_serialized_size.
 
-2011-04-13 11:21  strk
+2011-04-13 11:21  Sandro Santilli <strk at keybit.net>
 
-	* Add test for ticket #834
+	* [r7024] regress/tickets.sql, regress/tickets_expected: Add test
+	  for ticket #834
 
-2011-04-13 10:25  mleslie
+2011-04-13 10:25  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Adding a dbf filter for file selection.
+	* [r7023] loader/shp2pgsql-gui.c: Adding a dbf filter for file
+	  selection.
 
-2011-04-13 08:08  strk
+2011-04-13 08:08  Sandro Santilli <strk at keybit.net>
 
-	* Have 'svnrebase' rule use an authors file rather than command.
-	  Lets older git do it (old git on the machine currently mirroring
-	  the codebase to github).
+	* [r7022] .gitignore, GNUmakefile.in, author.sh: Have 'svnrebase'
+	  rule use an authors file rather than command. Lets older git do
+	  it (old git on the machine currently mirroring the codebase to
+	  github).
 
-2011-04-13 07:57  strk
+2011-04-13 07:57  Sandro Santilli <strk at keybit.net>
 
-	* Add svnrebase rule, to facilitate use from git
+	* [r7021] GNUmakefile.in: Add svnrebase rule, to facilitate use
+	  from git
 
-2011-04-13 07:41  strk
+2011-04-13 07:41  Sandro Santilli <strk at keybit.net>
 
-	* Add script to be used with git-svn --authors-prog
+	* [r7020] author.sh: Add script to be used with git-svn
+	  --authors-prog
 
-2011-04-12 12:34  robe
+2011-04-12 12:34  Regina Obe <lr at pcorp.us>
 
-	* Quiet quiet Hudson
+	* [r7019] regress/loader/PointWithSchema-post.sql: Quiet quiet
+	  Hudson
 
-2011-04-11 17:13  robe
+2011-04-11 17:13  Regina Obe <lr at pcorp.us>
 
-	* credit change
+	* [r7018] liblwgeom/cunit/cu_out_x3d.c: credit change
 
-2011-04-11 16:17  robe
+2011-04-11 16:17  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r7017] liblwgeom/cunit/cu_out_x3d.c:
 
-2011-04-11 16:14  robe
+2011-04-11 16:14  Regina Obe <lr at pcorp.us>
 
-	* preliminary cunit tests for x3d output functions
+	* [r7016] liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_out_x3d.c, liblwgeom/cunit/cu_tester.c:
+	  preliminary cunit tests for x3d output functions
 
-2011-04-11 09:54  strk
+2011-04-11 09:54  Sandro Santilli <strk at keybit.net>
 
-	* Add support for a RUNTESTFLAGS variable so you can do something
-	  like: 'make check RUNTESTFLAGS=-v' and get the problems printed
-	  w/out having to look at logs.
+	* [r7015] raster/test/regress/Makefile.in, regress/Makefile.in,
+	  topology/test/Makefile: Add support for a RUNTESTFLAGS variable
+	  so you can do something like: 'make check RUNTESTFLAGS=-v' and
+	  get the problems printed w/out having to look at logs.
 
-2011-04-11 09:53  strk
+2011-04-11 09:53  Sandro Santilli <strk at keybit.net>
 
-	* Do not raise an exception from DropGeometryTable if a
-	  non-existing table is given. Patch by Andrea Peri. Regress test
-	  mine. Closes ticket #861.
+	* [r7014] postgis/postgis.sql.in.c, regress/regress_management.sql,
+	  regress/regress_management_expected: Do not raise an exception
+	  from DropGeometryTable if a non-existing table is given. Patch by
+	  Andrea Peri. Regress test mine. Closes ticket #861.
 
-2011-04-09 14:27  robe
+2011-04-09 14:27  Regina Obe <lr at pcorp.us>
 
-	* minor cleanup replace tabs with spaces in ST_LineToCurve example
+	* [r7013] doc/reference_processing.xml: minor cleanup replace tabs
+	  with spaces in ST_LineToCurve example
 
-2011-04-09 06:32  robe
+2011-04-09 06:32  Regina Obe <lr at pcorp.us>
 
-	* fix url in ST_Azimuth.
+	* [r7012] doc/reference_measure.xml: fix url in ST_Azimuth.
 
-2011-04-08 17:02  robe
+2011-04-08 17:02  Regina Obe <lr at pcorp.us>
 
-	* Azimuth example with angles of azimuth and my drawing cheatsheet
+	* [r7011] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_azimuth01.wkt,
+	  doc/html/image_src/st_azimuth02.wkt,
+	  doc/html/image_src/st_azimuthmath.sql, doc/reference_measure.xml:
+	  Azimuth example with angles of azimuth and my drawing cheatsheet
 	  (st_azimuthmath.sql) in case have to do this again.
 
-2011-04-08 14:04  robe
+2011-04-08 14:04  Regina Obe <lr at pcorp.us>
 
-	* Document TopologySummary
+	* [r7010] doc/extras_topology.xml: Document TopologySummary
 
-2011-04-08 10:58  strk
+2011-04-08 10:58  Sandro Santilli <strk at keybit.net>
 
-	* tabs to spaces
+	* [r7009] NEWS: tabs to spaces
 
-2011-04-07 18:02  jorgearevalo
+2011-04-07 18:02  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Some memory freed. Related ticket #851.
+	* [r7008] raster/rt_pg/rt_pg.c: Some memory freed. Related ticket
+	  #851.
 
-2011-04-06 14:30  strk
+2011-04-06 14:30  Sandro Santilli <strk at keybit.net>
 
-	* Fix typo in gserialized_overlaps (contains->overlaps). Fixes
-	  ticket #869.
+	* [r7007] postgis/gserialized_gist_nd.c: Fix typo in
+	  gserialized_overlaps (contains->overlaps). Fixes ticket #869.
 
-2011-04-05 22:26  robe
+2011-04-05 22:26  Regina Obe <lr at pcorp.us>
 
-	* Get rid of some tests in _ST_ConcaveHull and only attempt to make
-	  a polygon if the line is simple. ST_Covers is causing me quite a
+	* [r7006] postgis/postgis.sql.in.c, regress/Makefile.in,
+	  regress/concave_hull.sql, regress/concave_hull_expected: Get rid
+	  of some tests in _ST_ConcaveHull and only attempt to make a
+	  polygon if the line is simple. ST_Covers is causing me quite a
 	  bit of greif as a testing tool. don't recall so many topo node
 	  this and that in GEOS 3.2 ST_Covers. Also add in some regress
 	  tests for ST_ConcaveHull -- more to come.
 
-2011-04-04 16:25  robe
+2011-04-04 16:25  Regina Obe <lr at pcorp.us>
 
-	* Fix typo in tiger manual and fix for #887 -- it was really the
-	  issue of using , instead of space to separate state and zip that
-	  was the main culprit
+	* [r7005] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2010/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_2010/normalize/state_extract.sql: Fix
+	  typo in tiger manual and fix for #887 -- it was really the issue
+	  of using , instead of space to separate state and zip that was
+	  the main culprit
 
-2011-04-04 15:19  robe
+2011-04-04 15:19  Regina Obe <lr at pcorp.us>
 
-	* add pgsql2shp -m switch to dumper help
+	* [r7004] doc/using_postgis_dataman.xml: add pgsql2shp -m switch to
+	  dumper help
 
-2011-04-04 13:10  robe
+2011-04-04 13:10  Regina Obe <lr at pcorp.us>
 
-	* minor issue preventing legacy load: locate_along_measure should
-	  use ST_ wrapper
+	* [r7003] postgis/legacy.sql.in.c: minor issue preventing legacy
+	  load: locate_along_measure should use ST_ wrapper
 
-2011-04-04 12:11  strk
+2011-04-04 12:11  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddFace: prepare ring geometry and check intersection
-	  with an interior edge point. Speeds up registration of faces,
-	  particularly when composed by many edges. See ticket #880.
-	  [RT-SIGTA]
+	* [r7002] topology/sql/populate.sql: topology.AddFace: prepare ring
+	  geometry and check intersection with an interior edge point.
+	  Speeds up registration of faces, particularly when composed by
+	  many edges. See ticket #880. [RT-SIGTA]
 
-2011-04-04 07:05  strk
+2011-04-04 07:05  Sandro Santilli <strk at keybit.net>
 
-	* Add -m reference in pgsql2shp manpage, by Loic Dachary. See
-	  ticket #885.
+	* [r7001] doc/man/pgsql2shp.1: Add -m reference in pgsql2shp
+	  manpage, by Loic Dachary. See ticket #885.
 
-2011-04-04 03:10  robe
+2011-04-04 03:10  Regina Obe <lr at pcorp.us>
 
-	* Add pgsql2shp allow predefined list to news and release. Add Loic
+	* [r7000] NEWS, doc/introduction.xml, doc/release_notes.xml: Add
+	  pgsql2shp allow predefined list to news and release. Add Loic
 	  Dachary to credits.
 
-2011-04-04 02:35  robe
+2011-04-04 02:35  Regina Obe <lr at pcorp.us>
 
-	* forgot one ST_AddBand proto
+	* [r6999] doc/reference_raster.xml: forgot one ST_AddBand proto
 
-2011-04-04 02:20  robe
+2011-04-04 02:20  Regina Obe <lr at pcorp.us>
 
-	* Add missing ST_Band protos and remove non-existent one
+	* [r6998] doc/reference_raster.xml: Add missing ST_Band protos and
+	  remove non-existent one
 
-2011-04-04 01:25  robe
+2011-04-04 01:25  Regina Obe <lr at pcorp.us>
 
-	* #898, #551: generate postgis_upgrade_20_minor.sql, legacy.sql and
-	  stop generating obsolete 15_minor, 14, 13_14
+	* [r6997] postgis/Makefile.in: #898, #551: generate
+	  postgis_upgrade_20_minor.sql, legacy.sql and stop generating
+	  obsolete 15_minor, 14, 13_14
 
-2011-04-03 19:19  strk
+2011-04-03 19:19  Sandro Santilli <strk at keybit.net>
 
-	* Ticket #855 by Loic Dachary: pgsql2shp fields conversion from
-	  predefined list
+	* [r6996] loader/cunit/Makefile.in, loader/cunit/cu_pgsql2shp.c,
+	  loader/cunit/cu_pgsql2shp.h, loader/cunit/cu_tester.c,
+	  loader/cunit/cu_tester.h, loader/cunit/map.txt,
+	  loader/pgsql2shp-cli.c, loader/pgsql2shp-core.c,
+	  loader/pgsql2shp-core.h: Ticket #855 by Loic Dachary: pgsql2shp
+	  fields conversion from predefined list
 
-2011-04-02 12:27  strk
+2011-04-02 12:27  Sandro Santilli <strk at keybit.net>
 
-	* Use a 2d geometry for face mbr, even for 2.5d topologies. After
-	  all mbr is a rectangle (not cube) by definition (Minimum Bounding
-	  Rectangle) so we don't want to mess with poliedron or whatnot
-	  [see #103 for more infos about the can of worms..]
+	* [r6995] topology/test/Makefile,
+	  topology/test/regress/addface2.5d.sql,
+	  topology/test/regress/addface2.5d_expected,
+	  topology/topology.sql.in.c: Use a 2d geometry for face mbr, even
+	  for 2.5d topologies. After all mbr is a rectangle (not cube) by
+	  definition (Minimum Bounding Rectangle) so we don't want to mess
+	  with poliedron or whatnot [see #103 for more infos about the can
+	  of worms..]
 
-2011-04-01 05:18  jorgearevalo
+2011-04-01 05:18  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Raster testing added to core testing. Related ticket #762.
+	* [r6994] GNUmakefile.in, configure.ac, raster/Makefile.in,
+	  raster/rt_pg/Makefile.in, raster/test/Makefile.in,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in,
+	  regress/run_test: Raster testing added to core testing. Related
+	  ticket #762.
 
-2011-03-31 10:26  strk
+2011-03-31 10:26  Sandro Santilli <strk at keybit.net>
 
-	* topology.TopologSummary: survive presence of stale records in
+	* [r6993] topology/sql/manage/TopologySummary.sql:
+	  topology.TopologSummary: survive presence of stale records in
 	  topology.topology and missing tables from topology schemas.
 
-2011-03-31 10:26  strk
+2011-03-31 10:26  Sandro Santilli <strk at keybit.net>
 
-	* topology.TopologySummary: report 'has Z' flag on topologies
+	* [r6992] topology/sql/manage/TopologySummary.sql:
+	  topology.TopologySummary: report 'has Z' flag on topologies
 
-2011-03-31 09:35  strk
+2011-03-31 09:35  Sandro Santilli <strk at keybit.net>
 
-	* Add support for creating topologies allowing 3d vertices on edges
-	  and nodes. Includes regress testing [RT-SIGTA]
+	* [r6991] topology/test/Makefile,
+	  topology/test/regress/createtopology.sql,
+	  topology/test/regress/createtopology_expected,
+	  topology/test/regress/topo2.5d.sql,
+	  topology/test/regress/topo2.5d_expected,
+	  topology/topology.sql.in.c: Add support for creating topologies
+	  allowing 3d vertices on edges and nodes. Includes regress testing
+	  [RT-SIGTA]
 
-2011-03-29 14:58  robe
+2011-03-29 14:58  Regina Obe <lr at pcorp.us>
 
-	* try to save as utf-8
+	* [r6990] regress/loader/Latin1.select.expected: try to save as
+	  utf-8
 
-2011-03-29 14:10  robe
+2011-03-29 14:10  Regina Obe <lr at pcorp.us>
 
-	* that didn't work. Try resaving as latin1 and then repull down.
+	* [r6989] regress/loader/Latin1.select.expected: that didn't work.
+	  Try resaving as latin1 and then repull down.
 
-2011-03-29 13:57  robe
+2011-03-29 13:57  Regina Obe <lr at pcorp.us>
 
-	* mark this as an executable then maybe just mamber it won't try to
-	  inherit the encoding of my OS
+	* [r6988] regress/loader/Latin1.select.expected: mark this as an
+	  executable then maybe just mamber it won't try to inherit the
+	  encoding of my OS
 
-2011-03-29 13:57  strk
+2011-03-29 13:57  Sandro Santilli <strk at keybit.net>
 
-	* Add another test for topology.AddFace in presence of an open edge
-	  whose endpoints both intersect a polygon ring which does not
-	  cover it.
+	* [r6987] topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected: Add another test for
+	  topology.AddFace in presence of an open edge whose endpoints both
+	  intersect a polygon ring which does not cover it.
 
-2011-03-29 13:20  jorgearevalo
+2011-03-29 13:20  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Modified expected result for create_rt_gist_test regress test. It
+	* [r6986] raster/test/regress/create_rt_gist_test_expected:
+	  Modified expected result for create_rt_gist_test regress test. It
 	  works
 	  differently in PostgreSQL 8.4.7 and PostgreSQL 9.0.3. See ticket
 	  #870.
 
-2011-03-29 11:10  robe
+2011-03-29 11:10  Regina Obe <lr at pcorp.us>
 
-	* Add #817 Renaming old 3D functions to the convention ST_3D to
-	  release notes
+	* [r6985] NEWS, doc/release_notes.xml: Add #817 Renaming old 3D
+	  functions to the convention ST_3D to release notes
 
-2011-03-28 23:24  jorgearevalo
+2011-03-28 23:24  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Modified expected values for some raster tests
+	* [r6984] raster/test/regress/create_rt_gist_test_expected,
+	  raster/test/regress/rt_addband_expected: Modified expected values
+	  for some raster tests
 
-2011-03-28 23:10  pracine
+2011-03-28 23:10  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Minimal value for float is -FLT_MAX, not FLT_MIN
+	* [r6983] raster/rt_core/rt_api.c: -Minimal value for float is
+	  -FLT_MAX, not FLT_MIN
 
-2011-03-28 22:56  jorgearevalo
+2011-03-28 22:56  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* liblwgeom/lex.yy.c version 6180 reverted
+	* [r6982] liblwgeom/lex.yy.c: liblwgeom/lex.yy.c version 6180
+	  reverted
 
-2011-03-28 22:52  jorgearevalo
+2011-03-28 22:52  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Missed check added again.
+	* [r6981] liblwgeom/lex.yy.c, raster/rt_core/rt_api.c: Missed check
+	  added again.
 
-2011-03-28 22:49  jorgearevalo
+2011-03-28 22:49  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Some bugs related with ticket #870 solved. Added more test for
+	* [r6980] raster/rt_core/rt_api.c, raster/test/core/testapi.c: Some
+	  bugs related with ticket #870 solved. Added more test for
 	  polygonize function.
 
-2011-03-28 22:10  pracine
+2011-03-28 22:10  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Changed message not proper when just setting pixel value
+	* [r6979] raster/rt_core/rt_api.c,
+	  raster/test/regress/rt_addband_expected: -Changed message not
+	  proper when just setting pixel value
 
-2011-03-28 20:31  pracine
+2011-03-28 20:31  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Transformed many error into warning (or notice)
+	* [r6978] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_addband_expected: -Transformed many error
+	  into warning (or notice)
 	  -Removed function name in message for warnings
 	  -Added doc about rules when to return notice or error
 	  -Removed commented out notices
@@ -21149,94 +36166,126 @@
 	  -Get band number with PG_GETARG_INT32 instead of PG_GETARG_UINT16
 	  which was converting values < 0 to something > 0
 
-2011-03-28 20:21  robe
+2011-03-28 20:21  Regina Obe <lr at pcorp.us>
 
-	* attempt to quiet floating point erros in reprojection by roudning
-	  the coordinates (worked on mingw and still works after change). I
-	  assume -ws are when using -w switch?
+	* [r6977] regress/loader/ReprojectPts-w.select.expected,
+	  regress/loader/ReprojectPts.select.expected,
+	  regress/loader/ReprojectPts.select.sql,
+	  regress/loader/ReprojectPtsGeog-w.select.expected,
+	  regress/loader/ReprojectPtsGeog.select.expected,
+	  regress/loader/ReprojectPtsGeog.select.sql: attempt to quiet
+	  floating point erros in reprojection by roudning the coordinates
+	  (worked on mingw and still works after change). I assume -ws are
+	  when using -w switch?
 
-2011-03-28 18:46  nicklas
+2011-03-28 18:46  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Putting renamed 3D-functions in legacy.sql.c and some clarifying
-	  notes about the renaming
+	* [r6976] doc/reference_constructor.xml, doc/reference_measure.xml,
+	  doc/reference_misc.xml, postgis/legacy.sql.in.c,
+	  postgis/postgis.sql.in.c: Putting renamed 3D-functions in
+	  legacy.sql.c and some clarifying notes about the renaming
 
-2011-03-28 18:01  jorgearevalo
+2011-03-28 18:01  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Raster polygonization optimized using a layer filter to avoid
-	  NODATA values. Related ticket #870.
+	* [r6975] raster/rt_core/rt_api.c: Raster polygonization optimized
+	  using a layer filter to avoid NODATA values. Related ticket #870.
 
-2011-03-27 17:50  nicklas
+2011-03-27 17:50  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Renaming of 3D functions, #817
+	* [r6974] doc/reference_constructor.xml, doc/reference_measure.xml,
+	  doc/reference_misc.xml, doc/reference_type.xml,
+	  doc/rfc/postgis_rfc_03_sheet.txt, postgis/postgis.sql.in.c,
+	  postgis/uninstall_postgis.sql.in.c, regress/ctors.sql,
+	  regress/lwgeom_regress.sql, regress/measures.sql,
+	  utils/new_postgis_restore.pl: Renaming of 3D functions, #817
 
-2011-03-27 02:43  robe
+2011-03-27 02:43  Regina Obe <lr at pcorp.us>
 
-	* more additions / corrections to release notes
+	* [r6973] NEWS, doc/release_notes.xml: more additions / corrections
+	  to release notes
 
-2011-03-26 23:44  robe
+2011-03-26 23:44  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6972] extras/tiger_geocoder/tiger_2010/create_geocode.sh:
 
-2011-03-26 23:42  robe
+2011-03-26 23:42  Regina Obe <lr at pcorp.us>
 
-	* more typo corrections
+	* [r6971] extras/tiger_geocoder/tiger_2010/create_geocode.sh,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql: more typo
+	  corrections
 
-2011-03-26 18:04  robe
+2011-03-26 18:04  Regina Obe <lr at pcorp.us>
 
-	* update docs to reflect changes in tiger loader
+	* [r6970] doc/extras_tigergeocoder.xml: update docs to reflect
+	  changes in tiger loader
 
-2011-03-26 17:43  robe
+2011-03-26 17:43  Regina Obe <lr at pcorp.us>
 
-	* cleanup change linux to sh. Get rid of some typos in the sh
-	  script generator, move some more variables to the top for easier
-	  setting. Fix some errors in loader_tables preventing some soundex
-	  index from being created. Change reverse_geocoder.sql (from
-	  utfy-8 (not sure how that happened)
+	* [r6969] extras/tiger_geocoder/tiger_2010/README,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql: cleanup change
+	  linux to sh. Get rid of some typos in the sh script generator,
+	  move some more variables to the top for easier setting. Fix some
+	  errors in loader_tables preventing some soundex index from being
+	  created. Change reverse_geocoder.sql (from utfy-8 (not sure how
+	  that happened)
 
-2011-03-25 09:11  robe
+2011-03-25 09:11  Regina Obe <lr at pcorp.us>
 
-	* amend to include work on tiger geocoder
+	* [r6968] doc/xsl/postgis_aggs_mm.xml.xsl: amend to include work on
+	  tiger geocoder
 
-2011-03-24 22:56  pracine
+2011-03-24 22:56  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fixxed a bug getting toindex band index
+	* [r6967] raster/rt_pg/rt_pg.c: -Fixxed a bug getting toindex band
+	  index
 	  -Classified one function declaration
 
-2011-03-24 22:55  pracine
+2011-03-24 22:55  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -ST_AddBand should add the new band as the last band if no band
-	  index is apecified
+	* [r6966] raster/rt_pg/rtpostgis.sql.in.c: -ST_AddBand should add
+	  the new band as the last band if no band index is apecified
 
-2011-03-24 11:39  robe
+2011-03-24 11:39  Regina Obe <lr at pcorp.us>
 
-	* Give special functions index a static name so it doesn't get
-	  pushed down to another chapter every time we add a new chapter
+	* [r6965] doc/xsl/postgis_aggs_mm.xml.xsl: Give special functions
+	  index a static name so it doesn't get pushed down to another
+	  chapter every time we add a new chapter
 
-2011-03-23 22:09  pracine
+2011-03-23 22:09  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Return NULL if raster is NULL in RASTER_addband
+	* [r6964] raster/rt_pg/rt_pg.c: -Return NULL if raster is NULL in
+	  RASTER_addband
 	  -Warn if first raster is NULL in RASTER_copyband and return NULL
 
-2011-03-23 22:01  pracine
+2011-03-23 22:01  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Reordered/classified function declaration
+	* [r6963] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_pixelvalue_expected: -Reordered/classified
+	  function declaration
 	  -Renamed index and nband to bandindex in many functions
 	  -Better handling for NULL in RASTER_setBandNoDataValue following
 	  ticket #883. Return original raster if can't set nodata value
 
-2011-03-23 21:50  pracine
+2011-03-23 21:50  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* Removed extra spaces
+	* [r6962] raster/test/regress/rt_io.sql: Removed extra spaces
 
-2011-03-23 20:51  pracine
+2011-03-23 20:51  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Better handling of NULL for ST_SetValue. Return the original
-	  raster when band, X or Y are NULL instead of an error or NULL.
-	  See #883.
+	* [r6961] raster/rt_pg/rt_pg.c,
+	  raster/test/regress/rt_pixelvalue_expected: -Better handling of
+	  NULL for ST_SetValue. Return the original raster when band, X or
+	  Y are NULL instead of an error or NULL. See #883.
 
-2011-03-23 19:52  pracine
+2011-03-23 19:52  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -General review of ST_AddBand following ticket 871
+	* [r6960] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_addband_expected,
+	  raster/test/regress/rt_pixelvalue_expected: -General review of
+	  ST_AddBand following ticket 871
 	  -Moved some warning in the core
 	  -Renamed the parameters to make more explicit which one is "to"
 	  and which one is "from"
@@ -21247,189 +36296,419 @@
 	  -Removed (or moved) some documentation from rt_api.c already
 	  present in rt_api.h
 
-2011-03-23 18:15  jorgearevalo
+2011-03-23 18:15  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Semicolon missed.
+	* [r6959] raster/rt_pg/rt_pg.c: Semicolon missed.
 
-2011-03-23 02:57  jorgearevalo
+2011-03-23 02:57  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Server crash reported in ticket #837 partially solved. SPI_finish
-	  causes server to crash. Commented in this commit, but it's not a
-	  good solution, I think.
+	* [r6958] raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Server
+	  crash reported in ticket #837 partially solved. SPI_finish causes
+	  server to crash. Commented in this commit, but it's not a good
+	  solution, I think.
 	  This guy had the same problem 10 years ago. No responses:
 	  http://www.mail-archive.com/pgsql-general@postgresql.org/msg18558.html
 
-2011-03-22 20:31  pracine
+2011-03-22 20:31  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -ST_PixelAsPolygons also return the x & y coordinates of the
+	* [r6957] raster/scripts/plpgsql/st_pixelaspolygons.sql:
+	  -ST_PixelAsPolygons also return the x & y coordinates of the
 	  pixel
 
-2011-03-22 14:26  robe
+2011-03-22 14:26  Regina Obe <lr at pcorp.us>
 
-	* some clarification of specs
+	* [r6956] doc/reference_output.xml: some clarification of specs
 
-2011-03-22 13:54  robe
+2011-03-22 13:54  Regina Obe <lr at pcorp.us>
 
-	* more cleanup
+	* [r6955] doc/introduction.xml: more cleanup
 
-2011-03-22 05:57  robe
+2011-03-22 05:57  Regina Obe <lr at pcorp.us>
 
-	* minor rearrangement wording changes to Paul's bio
+	* [r6954] doc/introduction.xml: minor rearrangement wording changes
+	  to Paul's bio
 
-2011-03-22 05:53  robe
+2011-03-22 05:53  Regina Obe <lr at pcorp.us>
 
-	* Amend my bio so people know who to point fingers at when Tiger
-	  Geocoder and X3D don't work right.
+	* [r6953] doc/introduction.xml: Amend my bio so people know who to
+	  point fingers at when Tiger Geocoder and X3D don't work right.
 
-2011-03-22 05:44  robe
+2011-03-22 05:44  Regina Obe <lr at pcorp.us>
 
-	* Fix #879 (get rid of use of both deprecated line_locate_point and
+	* [r6952] doc/extras_topology.xml, topology/sql/sqlmm.sql: Fix #879
+	  (get rid of use of both deprecated line_locate_point and
 	  line_substring... document function
 
-2011-03-21 16:33  strk
+2011-03-21 16:33  Sandro Santilli <strk at keybit.net>
 
-	* Add test for ST_Polygonize with nested collection input (see
-	  ticket #878)
+	* [r6951] regress/Makefile.in, regress/polygonize.sql,
+	  regress/polygonize_expected: Add test for ST_Polygonize with
+	  nested collection input (see ticket #878)
 
-2011-03-21 11:04  strk
+2011-03-21 11:04  Sandro Santilli <strk at keybit.net>
 
-	* Convert to $$ quoting (ticket #714)
+	* [r6950] topology/sql/sqlmm.sql, topology/topology.sql.in.c:
+	  Convert to $$ quoting (ticket #714)
 
-2011-03-21 10:28  strk
+2011-03-21 10:28  Sandro Santilli <strk at keybit.net>
 
-	* Add an ST_RemIsoNode alias to ST_RemoveIsoNode (ticket #798)
+	* [r6949] topology/sql/sqlmm.sql: Add an ST_RemIsoNode alias to
+	  ST_RemoveIsoNode (ticket #798)
 
-2011-03-21 10:18  strk
+2011-03-21 10:18  Sandro Santilli <strk at keybit.net>
 
-	* ST_ModEdgesSplit -> ST_ModEdgeSplit (ticket #794)
+	* [r6948] topology/sql/sqlmm.sql, topology/topology.sql.in.c:
+	  ST_ModEdgesSplit -> ST_ModEdgeSplit (ticket #794)
 
-2011-03-20 16:04  robe
+2011-03-20 16:04  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6947] doc/introduction.xml:
 
-2011-03-20 15:58  robe
+2011-03-20 15:58  Regina Obe <lr at pcorp.us>
 
-	* more credit cleanup and rounding up of credits
+	* [r6946] doc/introduction.xml: more credit cleanup and rounding up
+	  of credits
 
-2011-03-20 15:44  robe
+2011-03-20 15:44  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6945] doc/introduction.xml: fix typo
 
-2011-03-20 14:01  jorgearevalo
+2011-03-20 14:01  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Two ST_AddBands missing variants added. Related tickets #858,
-	  #792.
+	* [r6944] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_addband_expected,
+	  raster/test/regress/rt_mapalgebra_expected: Two ST_AddBands
+	  missing variants added. Related tickets #858, #792.
 
-2011-03-20 08:55  strk
+2011-03-20 08:55  Sandro Santilli <strk at keybit.net>
 
-	* Re-drop ST_SharedPath from topology.AddFace, this time with
-	  stronger robustness, so not prone to error exposed by #874. It
-	  was a pity to give up a 10% speed improvement... Thanks supermoon
-	  for keeping me up. [RT-SIGTA]
+	* [r6943] topology/sql/populate.sql: Re-drop ST_SharedPath from
+	  topology.AddFace, this time with stronger robustness, so not
+	  prone to error exposed by #874. It was a pity to give up a 10%
+	  speed improvement... Thanks supermoon for keeping me up.
+	  [RT-SIGTA]
 
-2011-03-19 23:35  strk
+2011-03-19 23:35  Sandro Santilli <strk at keybit.net>
 
-	* Fix #874 by getting back to ST_SharedPaths use. Might try to
-	  optimize again in the future, but correctness first! This commit
-	  also adds regression testing for the case [RT-SIGTA]
+	* [r6942] topology/sql/populate.sql,
+	  topology/test/regress/addface.sql: Fix #874 by getting back to
+	  ST_SharedPaths use. Might try to optimize again in the future,
+	  but correctness first! This commit also adds regression testing
+	  for the case [RT-SIGTA]
 
-2011-03-19 02:49  robe
+2011-03-19 02:49  Regina Obe <lr at pcorp.us>
 
-	* more company contribution amendments
+	* [r6941] NEWS, doc/release_notes.xml: more company contribution
+	  amendments
 
-2011-03-19 02:31  robe
+2011-03-19 02:31  Regina Obe <lr at pcorp.us>
 
-	* more updating to better reflect corporate sponsor contributions
+	* [r6940] NEWS, doc/release_notes.xml: more updating to better
+	  reflect corporate sponsor contributions
 
-2011-03-19 02:05  robe
+2011-03-19 02:05  Regina Obe <lr at pcorp.us>
 
-	* More cleanup of release notes. Add a corporate contributors
-	  section to kill 2 birds (give credit to companies that have
-	  funded PostGIS and also so we have a catalog of companies that
-	  can lay claim to parts of PostGIS as part of our incubation due
-	  diligence). Guys if I'm missing companies in the list which I
-	  most surely am, please add them.
+	* [r6939] NEWS, doc/introduction.xml, doc/release_notes.xml: More
+	  cleanup of release notes. Add a corporate contributors section to
+	  kill 2 birds (give credit to companies that have funded PostGIS
+	  and also so we have a catalog of companies that can lay claim to
+	  parts of PostGIS as part of our incubation due diligence). Guys
+	  if I'm missing companies in the list which I most surely am,
+	  please add them.
 
-2011-03-18 21:13  robe
+2011-03-18 21:13  Regina Obe <lr at pcorp.us>
 
-	* Fill in coordIndex for multipolygons
+	* [r6938] liblwgeom/lwout_x3d.c: Fill in coordIndex for
+	  multipolygons
 
-2011-03-18 20:06  robe
+2011-03-18 20:06  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6937] regress/loader/Latin1.select.expected:
 
-2011-03-18 19:56  robe
+2011-03-18 19:56  Regina Obe <lr at pcorp.us>
 
-	* force to LF eol type so doesn't barf in MingW
+	* [r6936] regress/loader/PointWithSchema.select.expected: force to
+	  LF eol type so doesn't barf in MingW
 
-2011-03-18 19:43  pramsey
+2011-03-18 19:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams: Changed variables we are storing getopt result in
-	  from char to int, since int is the return type from the getopt
+	* [r6935] loader/shp2pgsql-cli.c, loader/shp2pgsql-gui.c: Jeff
+	  Adams: Changed variables we are storing getopt result in from
+	  char to int, since int is the return type from the getopt
 	  function. (#663)
 
-2011-03-18 19:33  robe
+2011-03-18 19:33  Regina Obe <lr at pcorp.us>
 
-	* Update credits and release notes to include Jeff Adams much
-	  appreciated contributions and other minor things
+	* [r6934] NEWS, doc/introduction.xml, doc/release_notes.xml: Update
+	  credits and release notes to include Jeff Adams much appreciated
+	  contributions and other minor things
 
-2011-03-18 19:22  pramsey
+2011-03-18 19:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams: Removed not-really-necessary -m1 parameter from grep
-	  call because it does not work on MingW.
+	* [r6933] regress/run_test: Jeff Adams: Removed
+	  not-really-necessary -m1 parameter from grep call because it does
+	  not work on MingW.
 
-2011-03-18 19:13  pramsey
+2011-03-18 19:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams: Added regression test for LATIN1 encoding, fixed
-	  failure to convert to UTF8. (#808)
+	* [r6932] loader/shp2pgsql-core.c, regress/Makefile.in,
+	  regress/loader/Latin1.dbf, regress/loader/Latin1.opts,
+	  regress/loader/Latin1.select.expected,
+	  regress/loader/Latin1.select.sql, regress/loader/README,
+	  regress/run_test: Jeff Adams: Added regression test for LATIN1
+	  encoding, fixed failure to convert to UTF8. (#808)
 
-2011-03-18 19:03  robe
+2011-03-18 19:03  Regina Obe <lr at pcorp.us>
 
-	* need to always output with LF breaks otherwise fails on windows
-	  mingw as windows switches the breaks to CRLF
+	* [r6931] regress/tickets_expected: need to always output with LF
+	  breaks otherwise fails on windows mingw as windows switches the
+	  breaks to CRLF
 
-2011-03-18 18:30  pramsey
+2011-03-18 18:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams: Added dumping tests for -G versions of loader regress
+	* [r6930] regress/loader/Arc-G.shp.expected,
+	  regress/loader/ArcM-G.shp.expected,
+	  regress/loader/ArcZ-G.shp.expected,
+	  regress/loader/MultiPoint-G.shp.expected,
+	  regress/loader/MultiPointM-G.shp.expected,
+	  regress/loader/MultiPointZ-G.shp.expected,
+	  regress/loader/Point-G.shp.expected,
+	  regress/loader/PointM-G.shp.expected,
+	  regress/loader/PointZ-G.shp.expected,
+	  regress/loader/Polygon-G.shp.expected,
+	  regress/loader/PolygonM-G.shp.expected,
+	  regress/loader/PolygonZ-G.shp.expected, regress/run_test: Jeff
+	  Adams: Added dumping tests for -G versions of loader regress
 	  tests.
 
-2011-03-18 18:21  pramsey
-
-	* Jeff Adams: Now runs all the normal regression tests with the -G
-	  option as well. (#358)
-
-2011-03-18 17:36  pramsey
-
-	* Jeff Adams: Adding a regression test for the loader that uses a
-	  schema-qualified table name.
+2011-03-18 18:21  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r6929] regress/loader/Arc-G.select.expected,
+	  regress/loader/Arc.select.sql,
+	  regress/loader/ArcM-G.select.expected,
+	  regress/loader/ArcM.select.sql,
+	  regress/loader/ArcZ-G.select.expected,
+	  regress/loader/ArcZ.select.sql,
+	  regress/loader/MultiPoint-G.select.expected,
+	  regress/loader/MultiPoint.select.sql,
+	  regress/loader/MultiPointM-G.select.expected,
+	  regress/loader/MultiPointM.select.sql,
+	  regress/loader/MultiPointZ-G.select.expected,
+	  regress/loader/MultiPointZ.select.sql,
+	  regress/loader/Point-G.select.expected,
+	  regress/loader/Point.select.sql,
+	  regress/loader/PointM-G.select.expected,
+	  regress/loader/PointM.select.sql,
+	  regress/loader/PointZ-G.select.expected,
+	  regress/loader/PointZ.select.sql,
+	  regress/loader/Polygon-G.select.expected,
+	  regress/loader/Polygon.select.sql,
+	  regress/loader/PolygonM-G.select.expected,
+	  regress/loader/PolygonM.select.sql,
+	  regress/loader/PolygonZ-G.select.expected,
+	  regress/loader/PolygonZ.select.sql, regress/run_test: Jeff Adams:
+	  Now runs all the normal regression tests with the -G option as
+	  well. (#358)
+
+2011-03-18 17:36  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r6928] regress/Makefile.in,
+	  regress/loader/PointWithSchema-post.sql,
+	  regress/loader/PointWithSchema-pre.sql,
+	  regress/loader/PointWithSchema.dbf,
+	  regress/loader/PointWithSchema.opts,
+	  regress/loader/PointWithSchema.select.expected,
+	  regress/loader/PointWithSchema.select.sql,
+	  regress/loader/PointWithSchema.shp,
+	  regress/loader/PointWithSchema.shx: Jeff Adams: Adding a
+	  regression test for the loader that uses a schema-qualified table
+	  name.
 
-2011-03-18 16:54  pramsey
+2011-03-18 16:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams: Per suggestion on #857, corrected output to indicate
-	  table name is optional.
+	* [r6927] loader/shp2pgsql-cli.c: Jeff Adams: Per suggestion on
+	  #857, corrected output to indicate table name is optional.
 
-2011-03-18 16:47  pramsey
+2011-03-18 16:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Whoops, back out the gserialized flag
+	* [r6926] postgis/gserialized.h: Whoops, back out the gserialized
+	  flag
 
-2011-03-18 16:24  pramsey
+2011-03-18 16:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams: Increasing precision due to tests failing in
-	  automatic build.
+	* [r6925] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  regress/loader/MultiToSinglePoint-w.select.expected,
+	  regress/loader/NotReallyMultiPoint-w.select.expected,
+	  regress/loader/ReprojectPts-w.select.expected,
+	  regress/loader/ReprojectPtsGeog-w.select.expected: Jeff Adams:
+	  Increasing precision due to tests failing in automatic build.
 
-2011-03-18 16:16  pramsey
+2011-03-18 16:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add the &&& operator and index binding for
-	  'gist_geometry_ops_nd'. Operator behavior in mixed-dimension
+	* [r6924] postgis/geography.sql.in.c, postgis/gserialized.h,
+	  postgis/gserialized_gist_nd.c, postgis/lwgeom_btree.c,
+	  postgis/postgis.sql.in.c: Add the &&& operator and index binding
+	  for 'gist_geometry_ops_nd'. Operator behavior in mixed-dimension
 	  query situations still to be determined.
 
-2011-03-18 15:52  pramsey
+2011-03-18 15:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix build fail when DEBUG = 1.
+	* [r6923] raster/rt_core/rt_api.c: Fix build fail when DEBUG = 1.
 
-2011-03-18 15:40  pramsey
+2011-03-18 15:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixes the following shp2pgsql issues:
+	* [r6922] doc/man/shp2pgsql.1, doc/using_postgis_dataman.xml,
+	  loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h, loader/shp2pgsql-gui.c,
+	  regress/Makefile.in, regress/loader/Arc-w.select.expected,
+	  regress/loader/Arc-wkb.expected, regress/loader/Arc-wkb.sql,
+	  regress/loader/Arc-wkt.expected, regress/loader/Arc-wkt.sql,
+	  regress/loader/Arc.select.expected,
+	  regress/loader/Arc.select.sql, regress/loader/Arc.shp.expected,
+	  regress/loader/ArcM-w.select.expected,
+	  regress/loader/ArcM-wkb.expected, regress/loader/ArcM-wkb.sql,
+	  regress/loader/ArcM-wkt.expected, regress/loader/ArcM-wkt.sql,
+	  regress/loader/ArcM.select.expected,
+	  regress/loader/ArcM.select.sql, regress/loader/ArcM.shp.expected,
+	  regress/loader/ArcZ-w.select.expected,
+	  regress/loader/ArcZ-wkb.expected,
+	  regress/loader/ArcZ-wkt.expected,
+	  regress/loader/ArcZ.select.expected,
+	  regress/loader/ArcZ.select.sql, regress/loader/ArcZ.shp.expected,
+	  regress/loader/MultiPoint-w.select.expected,
+	  regress/loader/MultiPoint-wkb.expected,
+	  regress/loader/MultiPoint-wkb.sql,
+	  regress/loader/MultiPoint-wkt.expected,
+	  regress/loader/MultiPoint-wkt.sql,
+	  regress/loader/MultiPoint.select.expected,
+	  regress/loader/MultiPoint.select.sql,
+	  regress/loader/MultiPoint.shp.expected,
+	  regress/loader/MultiPointM-w.select.expected,
+	  regress/loader/MultiPointM-wkb.expected,
+	  regress/loader/MultiPointM-wkb.sql,
+	  regress/loader/MultiPointM-wkt.expected,
+	  regress/loader/MultiPointM-wkt.sql,
+	  regress/loader/MultiPointM.select.expected,
+	  regress/loader/MultiPointM.select.sql,
+	  regress/loader/MultiPointM.shp.expected,
+	  regress/loader/MultiPointZ-w.select.expected,
+	  regress/loader/MultiPointZ-wkb.expected,
+	  regress/loader/MultiPointZ-wkb.sql,
+	  regress/loader/MultiPointZ-wkt.expected,
+	  regress/loader/MultiPointZ-wkt.sql,
+	  regress/loader/MultiPointZ.select.expected,
+	  regress/loader/MultiPointZ.select.sql,
+	  regress/loader/MultiPointZ.shp.expected,
+	  regress/loader/MultiToSinglePoint-w.select.expected,
+	  regress/loader/MultiToSinglePoint.dbf,
+	  regress/loader/MultiToSinglePoint.opts,
+	  regress/loader/MultiToSinglePoint.select.expected,
+	  regress/loader/MultiToSinglePoint.select.sql,
+	  regress/loader/MultiToSinglePoint.shp,
+	  regress/loader/MultiToSinglePoint.shp.expected,
+	  regress/loader/MultiToSinglePoint.shx,
+	  regress/loader/NoTransPoint-w.select.expected,
+	  regress/loader/NoTransPoint-wkb.expected,
+	  regress/loader/NoTransPoint-wkb.sql,
+	  regress/loader/NoTransPoint-wkt.expected,
+	  regress/loader/NoTransPoint-wkt.sql,
+	  regress/loader/NoTransPoint.select.expected,
+	  regress/loader/NoTransPoint.select.sql,
+	  regress/loader/NoTransPoint.shp.expected,
+	  regress/loader/NotReallyMultiPoint-w.select.expected,
+	  regress/loader/NotReallyMultiPoint.dbf,
+	  regress/loader/NotReallyMultiPoint.select.expected,
+	  regress/loader/NotReallyMultiPoint.select.sql,
+	  regress/loader/NotReallyMultiPoint.shp,
+	  regress/loader/NotReallyMultiPoint.shp.expected,
+	  regress/loader/NotReallyMultiPoint.shx,
+	  regress/loader/Point-w.select.expected,
+	  regress/loader/Point-wkb.expected, regress/loader/Point-wkb.sql,
+	  regress/loader/Point-wkt.expected, regress/loader/Point-wkt.sql,
+	  regress/loader/Point.select.expected,
+	  regress/loader/Point.select.sql,
+	  regress/loader/Point.shp.expected,
+	  regress/loader/PointM-w.select.expected,
+	  regress/loader/PointM-wkb.expected,
+	  regress/loader/PointM-wkb.sql,
+	  regress/loader/PointM-wkt.expected,
+	  regress/loader/PointM-wkt.sql,
+	  regress/loader/PointM.select.expected,
+	  regress/loader/PointM.select.sql,
+	  regress/loader/PointM.shp.expected,
+	  regress/loader/PointZ-w.select.expected,
+	  regress/loader/PointZ-wkb.expected,
+	  regress/loader/PointZ-wkb.sql,
+	  regress/loader/PointZ-wkt.expected,
+	  regress/loader/PointZ-wkt.sql,
+	  regress/loader/PointZ.select.expected,
+	  regress/loader/PointZ.select.sql,
+	  regress/loader/PointZ.shp.expected,
+	  regress/loader/Polygon-w.select.expected,
+	  regress/loader/Polygon-wkb.expected,
+	  regress/loader/Polygon-wkb.sql,
+	  regress/loader/Polygon-wkt.expected,
+	  regress/loader/Polygon-wkt.sql,
+	  regress/loader/Polygon.select.expected,
+	  regress/loader/Polygon.select.sql,
+	  regress/loader/Polygon.shp.expected,
+	  regress/loader/PolygonM-w.select.expected,
+	  regress/loader/PolygonM-wkb.expected,
+	  regress/loader/PolygonM-wkb.sql,
+	  regress/loader/PolygonM-wkt.expected,
+	  regress/loader/PolygonM-wkt.sql,
+	  regress/loader/PolygonM.select.expected,
+	  regress/loader/PolygonM.select.sql,
+	  regress/loader/PolygonM.shp.expected,
+	  regress/loader/PolygonZ-w.select.expected,
+	  regress/loader/PolygonZ-wkb.expected,
+	  regress/loader/PolygonZ-wkb.sql,
+	  regress/loader/PolygonZ-wkt.expected,
+	  regress/loader/PolygonZ-wkt.sql,
+	  regress/loader/PolygonZ.select.expected,
+	  regress/loader/PolygonZ.select.sql,
+	  regress/loader/PolygonZ.shp.expected, regress/loader/README,
+	  regress/loader/ReprojectPts-pre.sql,
+	  regress/loader/ReprojectPts-w.select.expected,
+	  regress/loader/ReprojectPts.dbf,
+	  regress/loader/ReprojectPts.opts,
+	  regress/loader/ReprojectPts.select.expected,
+	  regress/loader/ReprojectPts.select.sql,
+	  regress/loader/ReprojectPts.shp, regress/loader/ReprojectPts.shx,
+	  regress/loader/ReprojectPtsGeog-pre.sql,
+	  regress/loader/ReprojectPtsGeog-w.select.expected,
+	  regress/loader/ReprojectPtsGeog.dbf,
+	  regress/loader/ReprojectPtsGeog.opts,
+	  regress/loader/ReprojectPtsGeog.select.expected,
+	  regress/loader/ReprojectPtsGeog.select.sql,
+	  regress/loader/ReprojectPtsGeog.shp,
+	  regress/loader/ReprojectPtsGeog.shx,
+	  regress/loader/TSIPolygon-w.select.expected,
+	  regress/loader/TSIPolygon-wkb.expected,
+	  regress/loader/TSIPolygon-wkb.sql,
+	  regress/loader/TSIPolygon-wkt.expected,
+	  regress/loader/TSIPolygon-wkt.sql,
+	  regress/loader/TSIPolygon.select.expected,
+	  regress/loader/TSIPolygon.select.sql,
+	  regress/loader/TSIPolygon.shp.expected,
+	  regress/loader/TSTIPolygon-w.select.expected,
+	  regress/loader/TSTIPolygon-wkb.expected,
+	  regress/loader/TSTIPolygon-wkb.sql,
+	  regress/loader/TSTIPolygon-wkt.expected,
+	  regress/loader/TSTIPolygon-wkt.sql,
+	  regress/loader/TSTIPolygon.select.expected,
+	  regress/loader/TSTIPolygon.select.sql,
+	  regress/loader/TSTIPolygon.shp.expected,
+	  regress/loader/TSTPolygon-w.select.expected,
+	  regress/loader/TSTPolygon-wkb.expected,
+	  regress/loader/TSTPolygon-wkb.sql,
+	  regress/loader/TSTPolygon-wkt.expected,
+	  regress/loader/TSTPolygon-wkt.sql,
+	  regress/loader/TSTPolygon.select.expected,
+	  regress/loader/TSTPolygon.select.sql,
+	  regress/loader/TSTPolygon.shp.expected, regress/out_geometry.sql,
+	  regress/run_test: Fixes the following shp2pgsql issues:
 	  #229: A new "-r" command line parameter to specify a "from" SRID
 	  for reprojecting (the existing -s is the "to").
 	  #779: -S now works for points, and -w is documented.
@@ -21437,16 +36716,25 @@
 	  correctly load with all MULTIPOINTs.
 	  #865: no longer crashes when both -g and -G are used.
 
-2011-03-18 14:11  pracine
+2011-03-18 14:11  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Standardized the way we write "nodata" from "NODATA" to "nodata"
+	* [r6921] raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/scripts/plpgsql/_MapAlgebraParts.sql,
+	  raster/scripts/plpgsql/st_reclass.sql,
+	  raster/scripts/python/raster2pgsql.py,
+	  raster/test/regress/bug_test_car5.sql: -Standardized the way we
+	  write "nodata" from "NODATA" to "nodata"
 	  -My editor remove a lot of trailing space and convert tab to 4
 	  spaces. Please set your editor to do the same.
 
-2011-03-18 14:06  pracine
+2011-03-18 14:06  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix for ticket 792: Clamp double to known values when pixeltype
-	  is other than double in rt_band_set_nodata, rt_band_set_pixel &
+	* [r6920] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/test/regress/rt_addband_expected,
+	  raster/test/regress/rt_io_expected,
+	  raster/test/regress/rt_pixelvalue_expected: -Fix for ticket 792:
+	  Clamp double to known values when pixeltype is other than double
+	  in rt_band_set_nodata, rt_band_set_pixel &
 	  rt_raster_generate_new_band
 	  -Added function name to many error messages
 	  -Standardized the way we write "nodata" from "NODATA" to "nodata"
@@ -21455,403 +36743,527 @@
 	  spaces. Please make your editor do the same.
 	  -Removed declarations of many unused variable
 
-2011-03-17 19:30  pramsey
+2011-03-17 19:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Quiet some debug-level warnings.
+	* [r6919] postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_gist.c, postgis/lwgeom_rtree.c,
+	  postgis/lwgeom_spheroid.c: Quiet some debug-level warnings.
 
-2011-03-17 19:27  pramsey
+2011-03-17 19:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix mis-named debugging global
+	* [r6918] postgis/gserialized_gist_2d.c: Fix mis-named debugging
+	  global
 
-2011-03-17 13:44  pramsey
+2011-03-17 13:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Replace variable-length-key 2D index with fixed-length-key for
-	  GSERIALIZED case.
+	* [r6917] liblwgeom/liblwgeom.h, postgis/Makefile.in,
+	  postgis/geography.h, postgis/geography.sql.in.c,
+	  postgis/geography_btree.c, postgis/geography_gist.c,
+	  postgis/gserialized_gist.c, postgis/gserialized_gist.h,
+	  postgis/gserialized_gist_2d.c, postgis/gserialized_gist_nd.c,
+	  postgis/postgis.sql.in.c: Replace variable-length-key 2D index
+	  with fixed-length-key for GSERIALIZED case.
 
-2011-03-17 00:08  strk
+2011-03-17 00:08  Sandro Santilli <strk at keybit.net>
 
-	* Avoid using ST_SharedPath in topology.AddFace as well.
+	* [r6916] topology/sql/populate.sql: Avoid using ST_SharedPath in
+	  topology.AddFace as well.
 
-2011-03-16 22:15  robe
+2011-03-16 22:15  Regina Obe <lr at pcorp.us>
 
-	* Multilinestring working even for closed multilinestrings. Still
+	* [r6915] doc/reference_output.xml, liblwgeom/lwout_x3d.c:
+	  Multilinestring working even for closed multilinestrings. Still
 	  need to fix polygon and multipolygons. also added example of
 	  closed multilinestring.
 
-2011-03-16 20:23  robe
+2011-03-16 20:23  Regina Obe <lr at pcorp.us>
 
-	* sort of take care of multilinestrings -- doesn't work for
-	  multilinestrings with closed linestrings so that's next up to
-	  correct.
+	* [r6914] liblwgeom/lwout_x3d.c: sort of take care of
+	  multilinestrings -- doesn't work for multilinestrings with closed
+	  linestrings so that's next up to correct.
 
-2011-03-16 19:16  pramsey
+2011-03-16 19:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams: Updated man page for -X, -T, and -e parameters (#110
-	  and #67).
+	* [r6913] doc/man/shp2pgsql.1: Jeff Adams: Updated man page for -X,
+	  -T, and -e parameters (#110 and #67).
 
-2011-03-16 19:16  pramsey
+2011-03-16 19:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams: Only automatically run -D tests if no custom
-	  parameters have been set.
+	* [r6912] regress/run_test: Jeff Adams: Only automatically run -D
+	  tests if no custom parameters have been set.
 
-2011-03-16 18:48  jorgearevalo
+2011-03-16 18:48  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Deleted empty rt_raster_map_algebra function from rt_core.
-	  MapAlgebra
+	* [r6911] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Deleted
+	  empty rt_raster_map_algebra function from rt_core. MapAlgebra
 	  implemented at PostgreSQL level.
 
-2011-03-16 17:53  robe
+2011-03-16 17:53  Regina Obe <lr at pcorp.us>
 
-	* replace & with & to fix build
-
-2011-03-16 17:16  pramsey
+	* [r6910] doc/reference_raster.xml: replace & with & to fix
+	  build
 
-	* Jeff Adams patch to add command line flag to not use a
+2011-03-16 17:16  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r6909] loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h, regress/Makefile.in,
+	  regress/loader/NoTransPoint-wkb.expected,
+	  regress/loader/NoTransPoint-wkb.sql,
+	  regress/loader/NoTransPoint-wkt.expected,
+	  regress/loader/NoTransPoint-wkt.sql,
+	  regress/loader/NoTransPoint.dbf,
+	  regress/loader/NoTransPoint.opts,
+	  regress/loader/NoTransPoint.shp, regress/loader/NoTransPoint.shx:
+	  Jeff Adams patch to add command line flag to not use a
 	  transaction. (#110)
 
-2011-03-16 16:47  robe
+2011-03-16 16:47  Regina Obe <lr at pcorp.us>
 
-	* #651 revise ST_MakeEmptyRaster so arg names and types are
-	  consistent
+	* [r6908] doc/reference_raster.xml: #651 revise ST_MakeEmptyRaster
+	  so arg names and types are consistent
 
-2011-03-16 14:06  pramsey
+2011-03-16 14:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams new testing of loader with cmd line options.
+	* [r6907] regress/loader/README,
+	  regress/loader/TSIPolygon-wkb.expected,
+	  regress/loader/TSIPolygon-wkb.sql,
+	  regress/loader/TSIPolygon-wkt.expected,
+	  regress/loader/TSIPolygon-wkt.sql, regress/loader/TSIPolygon.dbf,
+	  regress/loader/TSIPolygon.opts, regress/loader/TSIPolygon.shp,
+	  regress/loader/TSIPolygon.shx,
+	  regress/loader/TSTIPolygon-wkb.expected,
+	  regress/loader/TSTIPolygon-wkb.sql,
+	  regress/loader/TSTIPolygon-wkt.expected,
+	  regress/loader/TSTIPolygon-wkt.sql,
+	  regress/loader/TSTIPolygon.dbf, regress/loader/TSTIPolygon.opts,
+	  regress/loader/TSTIPolygon.shp, regress/loader/TSTIPolygon.shx,
+	  regress/loader/TSTPolygon-wkb.expected,
+	  regress/loader/TSTPolygon-wkb.sql,
+	  regress/loader/TSTPolygon-wkt.expected,
+	  regress/loader/TSTPolygon-wkt.sql, regress/loader/TSTPolygon.dbf,
+	  regress/loader/TSTPolygon.opts, regress/loader/TSTPolygon.shp,
+	  regress/loader/TSTPolygon.shx, regress/run_test: Jeff Adams new
+	  testing of loader with cmd line options.
 
-2011-03-16 13:03  pramsey
+2011-03-16 13:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams patch to allow pre/post actions in regression tests
+	* [r6906] regress/README, regress/run_test: Jeff Adams patch to
+	  allow pre/post actions in regression tests
 
-2011-03-16 13:02  pramsey
+2011-03-16 13:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Jeff Adams patch to support tablespaces (#67)
+	* [r6905] loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h: Jeff Adams patch to support tablespaces
+	  (#67)
 
-2011-03-16 05:15  robe
+2011-03-16 05:15  Regina Obe <lr at pcorp.us>
 
-	* Document ST_ASX3D function -- still a work in progress -- will
-	  add more as I flesh out the rest.
+	* [r6904] doc/reference_output.xml: Document ST_ASX3D function --
+	  still a work in progress -- will add more as I flesh out the
+	  rest.
 
-2011-03-16 04:48  robe
+2011-03-16 04:48  Regina Obe <lr at pcorp.us>
 
-	* Alas a functioning polyhedralsurface export viewable in freeWRL.
-	  Also add proto that just takes geometry as argument and defaults
-	  to precision 15
+	* [r6903] liblwgeom/lwout_x3d.c, postgis/postgis.sql.in.c: Alas a
+	  functioning polyhedralsurface export viewable in freeWRL. Also
+	  add proto that just takes geometry as argument and defaults to
+	  precision 15
 
-2011-03-15 15:11  jorgearevalo
+2011-03-15 15:11  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added ST_IsEmpty documentation. Related ticket #591.
+	* [r6902] doc/reference_raster.xml: Added ST_IsEmpty documentation.
+	  Related ticket #591.
 
-2011-03-15 14:04  robe
+2011-03-15 14:04  Regina Obe <lr at pcorp.us>
 
-	* Add regress tests for populate_geometry_columns,DropGeometryTable
+	* [r6901] regress/Makefile.in, regress/regress_management.sql,
+	  regress/regress_management_expected: Add regress tests for
+	  populate_geometry_columns,DropGeometryTable
 
-2011-03-15 06:01  robe
+2011-03-15 06:01  Regina Obe <lr at pcorp.us>
 
-	* Fix copy comment error
+	* [r6900] liblwgeom/lwout_x3d.c: Fix copy comment error
 
-2011-03-14 17:00  robe
+2011-03-14 17:00  Regina Obe <lr at pcorp.us>
 
-	* Lots of fixes. TIN is about perfect, Point, multipoint about
-	  perfect too, LINESTRING close.
+	* [r6899] liblwgeom/lwout_x3d.c: Lots of fixes. TIN is about
+	  perfect, Point, multipoint about perfect too, LINESTRING close.
 
-2011-03-12 10:42  robe
+2011-03-12 10:42  Regina Obe <lr at pcorp.us>
 
-	* minor corrections
+	* [r6898] NEWS, doc/release_notes.xml: minor corrections
 
-2011-03-11 21:12  robe
+2011-03-11 21:12  Regina Obe <lr at pcorp.us>
 
-	* preliminary work on x3d export. Still a lot to go. point,
-	  multipoint, tin, linestring almost working. Still need to fiddle
-	  with coordindex and spacing and get rid of junk copied from gml
-	  not needed.
+	* [r6897] liblwgeom/Makefile.in, liblwgeom/lwout_x3d.c,
+	  postgis/lwgeom_export.c, postgis/postgis.sql.in.c: preliminary
+	  work on x3d export. Still a lot to go. point, multipoint, tin,
+	  linestring almost working. Still need to fiddle with coordindex
+	  and spacing and get rid of junk copied from gml not needed.
 
-2011-03-11 13:27  robe
+2011-03-11 13:27  Regina Obe <lr at pcorp.us>
 
-	* minor change
+	* [r6896] doc/extras_topology.xml: minor change
 
-2011-03-11 12:37  robe
+2011-03-11 12:37  Regina Obe <lr at pcorp.us>
 
-	* Add Availability: 2.0.0 for functions I know are new after the
-	  raster postgis 2.0.0 merge
+	* [r6895] doc/reference_raster.xml: Add Availability: 2.0.0 for
+	  functions I know are new after the raster postgis 2.0.0 merge
 
-2011-03-11 12:26  robe
+2011-03-11 12:26  Regina Obe <lr at pcorp.us>
 
-	* document GetFaceByPoint and revise release_notes
+	* [r6894] doc/extras_topology.xml, doc/release_notes.xml: document
+	  GetFaceByPoint and revise release_notes
 
-2011-03-10 21:18  robe
+2011-03-10 21:18  Regina Obe <lr at pcorp.us>
 
-	* Add in Jorge's great windows instructions
+	* [r6893] doc/faq_raster.xml: Add in Jorge's great windows
+	  instructions
 
-2011-03-10 18:53  strk
+2011-03-10 18:53  Sandro Santilli <strk at keybit.net>
 
-	* Add a --raster flag to run_test
+	* [r6892] regress/run_test: Add a --raster flag to run_test
 
-2011-03-10 11:33  strk
+2011-03-10 11:33  Sandro Santilli <strk at keybit.net>
 
-	* TopologySummary: Take an empty feature_column as a sign of a
-	  "detached" topological layer (one having no deploy on
-	  user-tables).
+	* [r6891] topology/sql/manage/TopologySummary.sql: TopologySummary:
+	  Take an empty feature_column as a sign of a "detached"
+	  topological layer (one having no deploy on user-tables).
 
-2011-03-09 21:59  strk
+2011-03-09 21:59  Sandro Santilli <strk at keybit.net>
 
-	* Ticket #849 by Andrea Peri: topology.GetFaceByPoint
-	  implementation and test
+	* [r6889] topology/Makefile.in,
+	  topology/sql/query/getfacebypoint.sql, topology/test/Makefile,
+	  topology/test/regress/getfacebypoint.sql,
+	  topology/test/regress/getfacebypoint_expected,
+	  topology/topology.sql.in.c: Ticket #849 by Andrea Peri:
+	  topology.GetFaceByPoint implementation and test
 
-2011-03-09 19:18  strk
+2011-03-09 19:18  Sandro Santilli <strk at keybit.net>
 
-	* Ticket #856: topology.CopyTopology(text,text) implementation,
-	  test and documentation
+	* [r6888] doc/extras_topology.xml, topology/Makefile.in,
+	  topology/sql/manage/CopyTopology.sql, topology/test/Makefile,
+	  topology/test/regress/copytopology.sql,
+	  topology/test/regress/copytopology_expected,
+	  topology/topology.sql.in.c: Ticket #856:
+	  topology.CopyTopology(text,text) implementation, test and
+	  documentation
 
-2011-03-09 16:30  strk
+2011-03-09 16:30  Sandro Santilli <strk at keybit.net>
 
-	* Make createtopogeom test independent from the number of
-	  topologies created before running it
+	* [r6887] topology/test/regress/createtopogeom.sql,
+	  topology/test/regress/createtopogeom_expected: Make
+	  createtopogeom test independent from the number of topologies
+	  created before running it
 
-2011-03-09 10:19  strk
+2011-03-09 10:19  Sandro Santilli <strk at keybit.net>
 
-	* Ticket #855: topology.TopologySummary(<name>)
+	* [r6886] topology/Makefile.in, topology/sql/manage,
+	  topology/sql/manage/TopologySummary.sql,
+	  topology/topology.sql.in.c: Ticket #855:
+	  topology.TopologySummary(<name>)
 
-2011-03-09 10:14  strk
+2011-03-09 10:14  Sandro Santilli <strk at keybit.net>
 
-	* Add note for ST_Relate with boundary node rule
+	* [r6885] NEWS: Add note for ST_Relate with boundary node rule
 
-2011-03-08 15:26  strk
+2011-03-08 15:26  Sandro Santilli <strk at keybit.net>
 
-	* Simplify AddEdge code by using BoundaryNodeRule 2 (Endpoint) in
-	  ST_Relate call, thus saving a couple of calls to ST_RelateMatch.
-	  See tickets #770 and #844.
+	* [r6884] topology/sql/populate.sql: Simplify AddEdge code by using
+	  BoundaryNodeRule 2 (Endpoint) in ST_Relate call, thus saving a
+	  couple of calls to ST_RelateMatch. See tickets #770 and #844.
 
-2011-03-08 10:43  strk
+2011-03-08 10:43  Sandro Santilli <strk at keybit.net>
 
-	* Some (poor) documentation for ST_Relate(g1,g2,boundaryNodeRule)
+	* [r6883] doc/reference_measure.xml: Some (poor) documentation for
+	  ST_Relate(g1,g2,boundaryNodeRule)
 
-2011-03-08 10:23  strk
+2011-03-08 10:23  Sandro Santilli <strk at keybit.net>
 
-	* Ticket #844: add support for boundary node rule specification in
-	  ST_Relate [RT-SIGTA]
+	* [r6882] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c,
+	  regress/Makefile.in, regress/relate_bnr.sql,
+	  regress/relate_bnr_expected: Ticket #844: add support for
+	  boundary node rule specification in ST_Relate [RT-SIGTA]
 
-2011-03-08 08:16  strk
+2011-03-08 08:16  Sandro Santilli <strk at keybit.net>
 
-	* Enable a very old relate test which for some reason was never
-	  automatically run
+	* [r6881] regress/Makefile.in, regress/relate.sql,
+	  regress/relate_expected, regress/relate_test: Enable a very old
+	  relate test which for some reason was never automatically run
 
-2011-03-07 11:05  strk
+2011-03-07 11:05  Sandro Santilli <strk at keybit.net>
 
-	* Avoid using ST_SharedPath (expensive)
+	* [r6880] topology/sql/gml.sql: Avoid using ST_SharedPath
+	  (expensive)
 
-2011-03-05 11:00  jorgearevalo
+2011-03-05 11:00  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* is_nan function defined for Python versions under 2.6
+	* [r6879] raster/scripts/python/raster2pgsql.py: is_nan function
+	  defined for Python versions under 2.6
 
-2011-03-05 09:12  robe
+2011-03-05 09:12  Regina Obe <lr at pcorp.us>
 
-	* more marks of TIN
+	* [r6878] doc/reference_accessor.xml: more marks of TIN
 
-2011-03-05 06:17  robe
+2011-03-05 06:17  Regina Obe <lr at pcorp.us>
 
-	* Flag more functions as supporting TINS, provide some examples
+	* [r6877] doc/reference_accessor.xml: Flag more functions as
+	  supporting TINS, provide some examples
 
-2011-03-05 06:07  robe
+2011-03-05 06:07  Regina Obe <lr at pcorp.us>
 
-	* more examples of TIN and polyhedral surfaces
+	* [r6876] doc/reference_accessor.xml, doc/reference_processing.xml:
+	  more examples of TIN and polyhedral surfaces
 
-2011-03-05 05:51  robe
+2011-03-05 05:51  Regina Obe <lr at pcorp.us>
 
-	* Fix ST_DumpPoints 3D examples so they don't flatten to 2D
+	* [r6875] doc/reference_processing.xml: Fix ST_DumpPoints 3D
+	  examples so they don't flatten to 2D
 
-2011-03-01 14:47  strk
+2011-03-01 14:47  Sandro Santilli <strk at keybit.net>
 
-	* More ignores
+	* [r6874] .gitignore: More ignores
 
-2011-02-28 18:14  strk
+2011-02-28 18:14  Sandro Santilli <strk at keybit.net>
 
-	* Use left_face/right_face when looking for face ring's edges. I've
-	  seen some areal TopoGeometries dumped in 1:76 of the time
-	  [RT-SIGTA]
+	* [r6873] topology/sql/gml.sql: Use left_face/right_face when
+	  looking for face ring's edges. I've seen some areal
+	  TopoGeometries dumped in 1:76 of the time [RT-SIGTA]
 
-2011-02-28 10:53  strk
+2011-02-28 10:53  Sandro Santilli <strk at keybit.net>
 
-	* Add test for invalid AddFace call (polygon not fully defined by
-	  known edges)
+	* [r6872] topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected: Add test for invalid
+	  AddFace call (polygon not fully defined by known edges)
 
-2011-02-28 10:40  strk
+2011-02-28 10:40  Sandro Santilli <strk at keybit.net>
 
-	* Founded -> Found (in expected results..)
+	* [r6871] topology/test/regress/getedgebypoint_expected,
+	  topology/test/regress/getnodebypoint_expected: Founded -> Found
+	  (in expected results..)
 
-2011-02-26 21:29  robe
+2011-02-26 21:29  Regina Obe <lr at pcorp.us>
 
-	* #848 Fix eror message for GetNodeByPoint, GetNodeByEdge
+	* [r6870] doc/extras_topology.xml,
+	  topology/sql/query/getedgebypoint.sql,
+	  topology/sql/query/getnodebypoint.sql: #848 Fix eror message for
+	  GetNodeByPoint, GetNodeByEdge
 
-2011-02-26 04:22  robe
+2011-02-26 04:22  Regina Obe <lr at pcorp.us>
 
-	* cealn up examples and data type mistake
+	* [r6869] doc/extras_topology.xml: cealn up examples and data type
+	  mistake
 
-2011-02-26 03:32  robe
+2011-02-26 03:32  Regina Obe <lr at pcorp.us>
 
-	* minor changes and attempt to fix matrix table (cutting off now)
+	* [r6868] doc/extras_topology.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  minor changes and attempt to fix matrix table (cutting off now)
 
-2011-02-25 23:01  robe
+2011-02-25 23:01  Regina Obe <lr at pcorp.us>
 
-	* doucmentation for #791 , #793 - GetNodeByPoint, GetEdgeByPoint --
-	  made some changes to Andrea Peri's wording and change ot examples
-	  so they really fall in MA. Still need to output results.
+	* [r6867] doc/extras_topology.xml: doucmentation for #791 , #793 -
+	  GetNodeByPoint, GetEdgeByPoint -- made some changes to Andrea
+	  Peri's wording and change ot examples so they really fall in MA.
+	  Still need to output results.
 
-2011-02-25 09:18  strk
+2011-02-25 09:18  Sandro Santilli <strk at keybit.net>
 
-	* Update copyright notice
+	* [r6866] topology/sql/query/getedgebypoint.sql,
+	  topology/sql/query/getnodebypoint.sql: Update copyright notice
 
-2011-02-25 08:56  strk
+2011-02-25 08:56  Sandro Santilli <strk at keybit.net>
 
-	* topology.GetEdgeByPoint: implementation and regress test, by
-	  Andrea Peri. Ticket #791. Note that previous commit (for #793)
-	  was GetNodeByPoint. My mistake, sorry.
+	* [r6865] topology/Makefile.in,
+	  topology/sql/query/getedgebypoint.sql, topology/test/Makefile,
+	  topology/test/regress/getedgebypoint.sql,
+	  topology/test/regress/getedgebypoint_expected,
+	  topology/topology.sql.in.c: topology.GetEdgeByPoint:
+	  implementation and regress test, by Andrea Peri. Ticket #791.
+	  Note that previous commit (for #793) was GetNodeByPoint. My
+	  mistake, sorry.
 
-2011-02-25 08:45  strk
+2011-02-25 08:45  Sandro Santilli <strk at keybit.net>
 
-	* topology.GetEdgeByPoint: implementation and regress test, by
-	  Andrea Peri. Ticket #793
+	* [r6864] topology/Makefile.in, topology/sql/query,
+	  topology/sql/query/getnodebypoint.sql, topology/test/Makefile,
+	  topology/test/regress/getnodebypoint.sql,
+	  topology/test/regress/getnodebypoint_expected,
+	  topology/topology.sql.in.c: topology.GetEdgeByPoint:
+	  implementation and regress test, by Andrea Peri. Ticket #793
 
-2011-02-24 21:44  nicklas
+2011-02-24 21:44  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Copyright notes
+	* [r6863] liblwgeom/measures.c, liblwgeom/measures.h,
+	  liblwgeom/measures3d.c, liblwgeom/measures3d.h: Copyright notes
 
-2011-02-24 17:39  robe
+2011-02-24 17:39  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6862] doc/extras_tigergeocoder.xml: fix typo
 
-2011-02-24 17:23  robe
+2011-02-24 17:23  Regina Obe <lr at pcorp.us>
 
-	* Put in a note about nominatim OSM geocoder that works with
-	  international addresses and open street map data
+	* [r6861] doc/extras_tigergeocoder.xml: Put in a note about
+	  nominatim OSM geocoder that works with international addresses
+	  and open street map data
 
-2011-02-24 17:16  jorgearevalo
+2011-02-24 17:16  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Now is not possible to load rasters with different scale in the
-	  same table. Related ticket #153
+	* [r6860] raster/scripts/python/raster2pgsql.py: Now is not
+	  possible to load rasters with different scale in the same table.
+	  Related ticket #153
 
-2011-02-24 15:45  strk
+2011-02-24 15:45  Sandro Santilli <strk at keybit.net>
 
-	* Improve precision of point_in_ring_rtree too (bug #845).
+	* [r6859] postgis/lwgeom_functions_analytic.c: Improve precision of
+	  point_in_ring_rtree too (bug #845).
 
-2011-02-24 15:17  strk
+2011-02-24 15:17  Sandro Santilli <strk at keybit.net>
 
-	* Improve precision of point_in_ring. Fixes and regress-tests bug
-	  #845.
+	* [r6857] postgis/lwgeom_functions_analytic.c, regress/tickets.sql,
+	  regress/tickets_expected: Improve precision of point_in_ring.
+	  Fixes and regress-tests bug #845.
 
-2011-02-24 07:54  robe
+2011-02-24 07:54  Regina Obe <lr at pcorp.us>
 
-	* note psc members
+	* [r6856] CREDITS: note psc members
 
-2011-02-24 07:52  robe
+2011-02-24 07:52  Regina Obe <lr at pcorp.us>
 
-	* amend list of core contributors, add in their svn usernames and
-	  core areas of responsibility
+	* [r6855] CREDITS: amend list of core contributors, add in their
+	  svn usernames and core areas of responsibility
 
-2011-02-24 07:35  robe
+2011-02-24 07:35  Regina Obe <lr at pcorp.us>
 
-	* Amend author list and credits (credits is still obsolete --
-	  tempted to just get rid of it since its redundant with news and
-	  hard to maintain)
+	* [r6854] CREDITS, authors.svn: Amend author list and credits
+	  (credits is still obsolete -- tempted to just get rid of it since
+	  its redundant with news and hard to maintain)
 
-2011-02-23 08:58  robe
+2011-02-23 08:58  Regina Obe <lr at pcorp.us>
 
-	* amend enhancements line for ST_AsGML to note strk's addition of
-	  option 4 -- use LineString instead of curve tag
+	* [r6853] doc/reference_output.xml: amend enhancements line for
+	  ST_AsGML to note strk's addition of option 4 -- use LineString
+	  instead of curve tag
 
-2011-02-22 14:52  strk
+2011-02-22 14:52  Sandro Santilli <strk at keybit.net>
 
-	* Ticket #816: flag to select <LineString> over <Curve> for GML3
-	  line output [RT-SIGTA]
+	* [r6852] doc/reference_output.xml, postgis/lwgeom_export.c,
+	  regress/out_geometry.sql, regress/out_geometry_expected: Ticket
+	  #816: flag to select <LineString> over <Curve> for GML3 line
+	  output [RT-SIGTA]
 
-2011-02-22 14:25  strk
+2011-02-22 14:25  Sandro Santilli <strk at keybit.net>
 
-	* Test new LW_GML_SHORTLINE GML2 option [RT-SIGTA]
+	* [r6851] liblwgeom/cunit/cu_out_gml.c: Test new LW_GML_SHORTLINE
+	  GML2 option [RT-SIGTA]
 
-2011-02-22 14:25  strk
+2011-02-22 14:25  Sandro Santilli <strk at keybit.net>
 
-	* Add LW_GML_SHORTLINE flag to prefer <LineString> over <Curve> tag
-	  for lines GML3 output [RT-SIGTA]
+	* [r6850] liblwgeom/liblwgeom.h, liblwgeom/lwout_gml.c: Add
+	  LW_GML_SHORTLINE flag to prefer <LineString> over <Curve> tag for
+	  lines GML3 output [RT-SIGTA]
 
-2011-02-22 13:01  strk
+2011-02-22 13:01  Sandro Santilli <strk at keybit.net>
 
-	* Use a single bitfield for GML output options [RT-SIGTA]
+	* [r6849] liblwgeom/cunit/cu_out_gml.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwout_gml.c, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c: Use a single bitfield for GML output
+	  options [RT-SIGTA]
 
-2011-02-19 01:05  mloskot
+2011-02-19 01:05  Mateusz Loskot <mateusz at loskot.net>
 
-	* Improved GDAL detection and reporting
+	* [r6848] configure.ac: Improved GDAL detection and reporting
 
-2011-02-19 00:42  mloskot
+2011-02-19 00:42  Mateusz Loskot <mateusz at loskot.net>
 
-	* ./configure checks for GDAL Python bindings with built-in NumPy
-	  array support (Ticket #838)
+	* [r6847] configure.ac: ./configure checks for GDAL Python bindings
+	  with built-in NumPy array support (Ticket #838)
 
-2011-02-18 16:24  strk
+2011-02-18 16:24  Sandro Santilli <strk at keybit.net>
 
-	* Performance improvements in topology.AddFace: consider each ring
-	  separately when looking for composing edges; compute orientation
-	  inside the loop body to avoid sorting and grouping [RT-SIGTA]
+	* [r6846] topology/sql/populate.sql: Performance improvements in
+	  topology.AddFace: consider each ring separately when looking for
+	  composing edges; compute orientation inside the loop body to
+	  avoid sorting and grouping [RT-SIGTA]
 
-2011-02-18 14:58  strk
+2011-02-18 14:58  Sandro Santilli <strk at keybit.net>
 
-	* Test passing polygons with holes to topology.AddFace [RT-SIGTA]
+	* [r6845] topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected,
+	  topology/test/regress/createtopogeom_expected: Test passing
+	  polygons with holes to topology.AddFace [RT-SIGTA]
 
-2011-02-17 19:19  robe
+2011-02-17 19:19  Regina Obe <lr at pcorp.us>
 
-	* Amend ST_AsGML and ST_GeomFromGML to include the fact they
+	* [r6844] doc/reference_constructor.xml, doc/reference_output.xml:
+	  Amend ST_AsGML and ST_GeomFromGML to include the fact they
 	  support TINS
 
-2011-02-17 13:13  robe
+2011-02-17 13:13  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6843] doc/reference_raster.xml:
 
-2011-02-17 13:08  robe
+2011-02-17 13:08  Regina Obe <lr at pcorp.us>
 
-	* wrong statement
+	* [r6842] doc/reference_raster.xml: wrong statement
 
-2011-02-17 13:02  robe
+2011-02-17 13:02  Regina Obe <lr at pcorp.us>
 
-	* indent a bit better
+	* [r6841] doc/reference_raster.xml: indent a bit better
 
-2011-02-17 13:01  robe
+2011-02-17 13:01  Regina Obe <lr at pcorp.us>
 
-	* Provide a more useful example of map algebra.
+	* [r6840] doc/reference_raster.xml: Provide a more useful example
+	  of map algebra.
 
-2011-02-17 12:15  robe
+2011-02-17 12:15  Regina Obe <lr at pcorp.us>
 
-	* fix typo and add reference to ST_Value
+	* [r6839] doc/reference_raster.xml: fix typo and add reference to
+	  ST_Value
 
-2011-02-17 12:10  robe
+2011-02-17 12:10  Regina Obe <lr at pcorp.us>
 
-	* fix typo in xsl hopefully will make raster list right -- though
-	  must have syntax wrong anyway since topology and tiger get
-	  listed.
+	* [r6838] doc/xsl/postgis_aggs_mm.xml.xsl: fix typo in xsl
+	  hopefully will make raster list right -- though must have syntax
+	  wrong anyway since topology and tiger get listed.
 
-2011-02-17 06:07  robe
+2011-02-17 06:07  Regina Obe <lr at pcorp.us>
 
-	* provide an example of map algebra
+	* [r6837] doc/reference_raster.xml: provide an example of map
+	  algebra
 
-2011-02-17 04:31  robe
+2011-02-17 04:31  Regina Obe <lr at pcorp.us>
 
-	* #836 PostGIS raster in 2.0 is not being output in Trunk Doxygen
+	* [r6836] doc/doxygen.cfg.in: #836 PostGIS raster in 2.0 is not
+	  being output in Trunk Doxygen
 
-2011-02-17 04:23  robe
+2011-02-17 04:23  Regina Obe <lr at pcorp.us>
 
-	* Document ST_MapAlgebra -- need better description and examples
-	  forthcoming
+	* [r6835] doc/reference_raster.xml: Document ST_MapAlgebra -- need
+	  better description and examples forthcoming
 
-2011-02-16 19:15  jorgearevalo
+2011-02-16 19:15  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added documentation for the new version of ST_AddBand function
+	* [r6834] doc/reference_raster.xml: Added documentation for the new
+	  version of ST_AddBand function
 
-2011-02-16 19:12  jorgearevalo
+2011-02-16 19:12  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added a new variant for ST_AddBand, taking 2 rasters as input.
-	  Needs doc.
+	* [r6833] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_addband.sql,
+	  raster/test/regress/rt_addband_expected: Added a new variant for
+	  ST_AddBand, taking 2 rasters as input. Needs doc.
 
-2011-02-16 18:19  jorgearevalo
+2011-02-16 18:19  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* - One raster core implementation of MapAlgebra (related ticket
-	  #588, needs
+	* [r6832] doc/reference_raster.xml, raster/rt_core/ma_lexer.l,
+	  raster/rt_core/ma_parser.y, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c, raster/test/regress/Makefile.in,
+	  raster/test/regress/create_rt_mapalgebra_test.sql,
+	  raster/test/regress/create_rt_mapalgebra_test_expected,
+	  raster/test/regress/rt_mapalgebra.sql,
+	  raster/test/regress/rt_mapalgebra_expected: - One raster core
+	  implementation of MapAlgebra (related ticket #588, needs
 	  documentation).
 	  - RASTER_addBand code moved to core level. The new RASTER_addBand
 	  function calls
@@ -21862,48 +37274,55 @@
 	  a raster, not
 	  an integer.
 
-2011-02-16 17:41  strk
+2011-02-16 17:41  Sandro Santilli <strk at keybit.net>
 
-	* Add UnaryUnion item
+	* [r6831] NEWS: Add UnaryUnion item
 
-2011-02-16 11:15  strk
+2011-02-16 11:15  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_UnaryUnion
+	* [r6830] doc/reference_processing.xml: Document ST_UnaryUnion
 
-2011-02-16 10:19  strk
+2011-02-16 10:19  Sandro Santilli <strk at keybit.net>
 
-	* Stop on first error when creating the regress db
+	* [r6829] regress/run_test: Stop on first error when creating the
+	  regress db
 
-2011-02-16 10:19  strk
+2011-02-16 10:19  Sandro Santilli <strk at keybit.net>
 
-	* Expose versions of ST_IsValid and ST_IsValidReason accepting "the
-	  ESRI flag" and implemented as wrappers to ST_IsValidDetail. Only
+	* [r6828] doc/reference_accessor.xml, postgis/postgis.sql.in.c,
+	  regress/isvaliddetail.sql, regress/isvaliddetail_expected: Expose
+	  versions of ST_IsValid and ST_IsValidReason accepting "the ESRI
+	  flag" and implemented as wrappers to ST_IsValidDetail. Only
 	  available when building against GEOS-3.3+. Commit includes
 	  documentation and regress-testing. Closes ticket #831 [RT-SIGTA]
 
-2011-02-16 09:12  strk
+2011-02-16 09:12  Sandro Santilli <strk at keybit.net>
 
-	* Only run ST_isValidDetail if GEOS is >= 3.3 -- Reduce tests for
-	  GEOS version grouping togheter tests depending on the same
-	  version [RT-SIGTA]
+	* [r6827] regress/Makefile.in: Only run ST_isValidDetail if GEOS is
+	  >= 3.3 -- Reduce tests for GEOS version grouping togheter tests
+	  depending on the same version [RT-SIGTA]
 
-2011-02-16 08:54  strk
+2011-02-16 08:54  Sandro Santilli <strk at keybit.net>
 
-	* Regression test for ST_isValidDetail (including "ESRI" flag)
-	  [RT-SIGTA]
+	* [r6826] regress/Makefile.in, regress/isvaliddetail.sql,
+	  regress/isvaliddetail_expected: Regression test for
+	  ST_isValidDetail (including "ESRI" flag) [RT-SIGTA]
 
-2011-02-16 08:34  strk
+2011-02-16 08:34  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_isValidDetail(geom, flags) variant [RT-SIGTA]
+	* [r6825] doc/reference_accessor.xml: Document
+	  ST_isValidDetail(geom, flags) variant [RT-SIGTA]
 
-2011-02-15 17:36  strk
+2011-02-15 17:36  Sandro Santilli <strk at keybit.net>
 
-	* Allow specifying validity checking flags in ST_isValidDetail
-	  [RT-SIGTA]
+	* [r6824] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c: Allow
+	  specifying validity checking flags in ST_isValidDetail [RT-SIGTA]
 
-2011-02-15 13:49  robe
+2011-02-15 13:49  Regina Obe <lr at pcorp.us>
 
-	* Make work on PostgreSQL 8.4 (was using some syntax only allowed
+	* [r6823] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  Make work on PostgreSQL 8.4 (was using some syntax only allowed
 	  in 9.0+). Also account for the odd / even side of street rule.
 	  And of course that demonstrated there is a bug somewhere (most
 	  likely in the geocoder), but got to pull up some maps to see
@@ -21912,2888 +37331,3962 @@
 	  hate when you program the reverse of something and it exposes a
 	  bug. Also fix some minor documentation.
 
-2011-02-15 08:26  strk
+2011-02-15 08:26  Sandro Santilli <strk at keybit.net>
 
-	* topology: create an index on edge.left_face and edge.right_face,
-	  speeding up construction of polygonal Geometry from TopoGeometry
-	  by a factor of 10 (Closes #806)
+	* [r6822] topology/topology.sql.in.c: topology: create an index on
+	  edge.left_face and edge.right_face, speeding up construction of
+	  polygonal Geometry from TopoGeometry by a factor of 10 (Closes
+	  #806)
 
-2011-02-15 07:19  robe
+2011-02-15 07:19  Regina Obe <lr at pcorp.us>
 
-	* document reverse_geocode
+	* [r6821] doc/extras_tigergeocoder.xml: document reverse_geocode
 
-2011-02-15 06:36  robe
+2011-02-15 06:36  Regina Obe <lr at pcorp.us>
 
-	* Change to transform the point if not in nad83 long lat already
+	* [r6820]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  Change to transform the point if not in nad83 long lat already
 
-2011-02-15 06:15  robe
+2011-02-15 06:15  Regina Obe <lr at pcorp.us>
 
-	* reverse_geocode complete (with street range), now to document and
+	* [r6819] extras/tiger_geocoder/tiger_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  reverse_geocode complete (with street range), now to document and
 	  improve speed and test
 
-2011-02-15 00:26  robe
+2011-02-15 00:26  Regina Obe <lr at pcorp.us>
 
-	* Journeying into street ranges now can tell which side of the
+	* [r6818]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  Journeying into street ranges now can tell which side of the
 	  street we are on and spits that out when include_strnum_range is
 	  true. Next (hopefully last) step will be to pinpoint address
 	  number
 
-2011-02-14 18:22  robe
+2011-02-14 18:22  Regina Obe <lr at pcorp.us>
 
-	* First draft of reverse geocde currently just gets the street need
+	* [r6817]
+	  extras/tiger_geocoder/tiger_2010/geocode/reverse_geocode.sql:
+	  First draft of reverse geocde currently just gets the street need
 	  to interpolate to get approximate number
 
-2011-02-14 17:26  strk
+2011-02-14 17:26  Sandro Santilli <strk at keybit.net>
 
-	* ST_UnaryUnion and test
+	* [r6816] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c,
+	  regress/Makefile.in, regress/unaryunion.sql,
+	  regress/unaryunion_expected: ST_UnaryUnion and test
 
-2011-02-14 12:10  jorgearevalo
+2011-02-14 12:10  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* The array for NODATA values is not generated if NaN is returned
-	  as nodata value
+	* [r6815] raster/scripts/python/raster2pgsql.py: The array for
+	  NODATA values is not generated if NaN is returned as nodata value
 	  for bands. Related ticket #828.
 
-2011-02-14 11:57  robe
+2011-02-14 11:57  Regina Obe <lr at pcorp.us>
 
-	* fix another mismatched tag
+	* [r6814] doc/extras_topology.xml: fix another mismatched tag
 
-2011-02-14 03:33  robe
+2011-02-14 03:33  Regina Obe <lr at pcorp.us>
 
-	* put in missing / and not about implementation
+	* [r6813] doc/extras_topology.xml: put in missing / and not about
+	  implementation
 
-2011-02-14 03:10  robe
+2011-02-14 03:10  Regina Obe <lr at pcorp.us>
 
-	* recommit
+	* [r6812] doc/extras_topology.xml: recommit
 
-2011-02-14 02:33  robe
+2011-02-14 02:33  Regina Obe <lr at pcorp.us>
 
-	* amend mapserver instructions mode='2' is now required for most
-	  rasters to display
+	* [r6811] doc/faq_raster.xml: amend mapserver instructions mode='2'
+	  is now required for most rasters to display
 
-2011-02-13 03:51  robe
+2011-02-13 03:51  Regina Obe <lr at pcorp.us>
 
-	* ST_AddEdgeNewFaces - On closer inspection -- a lot of work is
-	  done in it, but not enough to make it functional.
+	* [r6810] doc/extras_topology.xml: ST_AddEdgeNewFaces - On closer
+	  inspection -- a lot of work is done in it, but not enough to make
+	  it functional.
 
-2011-02-13 03:45  robe
+2011-02-13 03:45  Regina Obe <lr at pcorp.us>
 
-	* ST_AddEdgeNewFaces - still need to put in an example
+	* [r6809] doc/extras_topology.xml: ST_AddEdgeNewFaces - still need
+	  to put in an example
 
-2011-02-12 18:22  robe
+2011-02-12 18:22  Regina Obe <lr at pcorp.us>
 
-	* fix typo and add minor amendments
+	* [r6808] doc/faq_raster.xml, doc/reference_raster.xml: fix typo
+	  and add minor amendments
 
-2011-02-11 22:58  robe
+2011-02-11 22:58  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6807] doc/reference_raster.xml:
 
-2011-02-11 22:45  robe
+2011-02-11 22:45  Regina Obe <lr at pcorp.us>
 
-	* add back in example
+	* [r6806] doc/reference_raster.xml: add back in example
 
-2011-02-11 22:40  robe
+2011-02-11 22:40  Regina Obe <lr at pcorp.us>
 
-	* more pieces
+	* [r6805] doc/reference_raster.xml: more pieces
 
-2011-02-11 22:31  robe
+2011-02-11 22:31  Regina Obe <lr at pcorp.us>
 
-	* add another piece
+	* [r6804] doc/reference_raster.xml: add another piece
 
-2011-02-11 22:18  robe
+2011-02-11 22:18  Regina Obe <lr at pcorp.us>
 
-	* Slowly put back new section -- last build worked.
+	* [r6803] doc/reference_raster.xml: Slowly put back new section --
+	  last build worked.
 
-2011-02-11 22:06  robe
+2011-02-11 22:06  Regina Obe <lr at pcorp.us>
 
-	* remove new section to see if that fixes build
+	* [r6802] doc/reference_raster.xml: remove new section to see if
+	  that fixes build
 
-2011-02-11 21:15  robe
+2011-02-11 21:15  Regina Obe <lr at pcorp.us>
 
-	* Get rid of <p> and replace with <para>
+	* [r6801] doc/reference_raster.xml: Get rid of <p> and replace with
+	  <para>
 
-2011-02-11 21:04  robe
+2011-02-11 21:04  Regina Obe <lr at pcorp.us>
 
-	* Hudson is alive again but not happy. Hopefully this will make him
-	  happier.
+	* [r6800] doc/reference_raster.xml: Hudson is alive again but not
+	  happy. Hopefully this will make him happier.
 
-2011-02-11 08:56  robe
+2011-02-11 08:56  Regina Obe <lr at pcorp.us>
 
-	* Add new section on loading rasters. will eventually copy some
-	  content from gdal site and wiki site and various examples of
-	  loading rasters and creating from scratch.
+	* [r6799] doc/reference_raster.xml: Add new section on loading
+	  rasters. will eventually copy some content from gdal site and
+	  wiki site and various examples of loading rasters and creating
+	  from scratch.
 
-2011-02-10 11:59  robe
+2011-02-10 11:59  Regina Obe <lr at pcorp.us>
 
-	* #824 more corrections from Kashif Rasul
+	* [r6798] doc/README, doc/extras_tigergeocoder.xml, doc/faq.xml,
+	  doc/faq_raster.xml, doc/geography.txt, doc/installation.xml,
+	  doc/reference_accessor.xml, doc/reference_lrs.xml,
+	  doc/reference_misc.xml, doc/reference_output.xml,
+	  doc/reference_processing.xml, doc/reference_raster.xml,
+	  doc/release_notes.xml, doc/using_postgis_dataman.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: #824 more corrections from
+	  Kashif Rasul
 
-2011-02-10 06:56  robe
+2011-02-10 06:56  Regina Obe <lr at pcorp.us>
 
-	* wow geocoder flies on decent hardware.
+	* [r6797] doc/extras_tigergeocoder.xml: wow geocoder flies on
+	  decent hardware.
 
-2011-02-10 06:10  robe
+2011-02-10 06:10  Regina Obe <lr at pcorp.us>
 
-	* documentaiton is in DocBook XML not SGML (well not anymore
-	  anyway).
+	* [r6796] doc/reporting.xml: documentaiton is in DocBook XML not
+	  SGML (well not anymore anyway).
 
-2011-02-10 06:01  robe
+2011-02-10 06:01  Regina Obe <lr at pcorp.us>
 
-	* Add tiger_geocoder to enhancements, add Kashif Rasul to credits
-	  in appreciation of his many corrections to the documentation,
-	  other minor credits corrections
+	* [r6795] NEWS, doc/introduction.xml, doc/release_notes.xml: Add
+	  tiger_geocoder to enhancements, add Kashif Rasul to credits in
+	  appreciation of his many corrections to the documentation, other
+	  minor credits corrections
 
-2011-02-10 05:33  robe
+2011-02-10 05:33  Regina Obe <lr at pcorp.us>
 
-	* Add some calrification notes to normalize_address function. Get
-	  rid of superfluous line break in linux script.
+	* [r6794] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sh: Add some
+	  calrification notes to normalize_address function. Get rid of
+	  superfluous line break in linux script.
 
-2011-02-10 04:40  robe
+2011-02-10 04:40  Regina Obe <lr at pcorp.us>
 
-	* Revise README to be clearer. Update the tiger_loader linux
-	  script.
+	* [r6793] extras/tiger_geocoder/tiger_2010/README,
+	  extras/tiger_geocoder/tiger_2010/tiger_loader.sql: Revise README
+	  to be clearer. Update the tiger_loader linux script.
 
-2011-02-09 16:36  strk
+2011-02-09 16:36  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddFace: report an "uncovered point" on missing edges
-	  [RT-SIGTA]
+	* [r6792] topology/sql/populate.sql: topology.AddFace: report an
+	  "uncovered point" on missing edges [RT-SIGTA]
 
-2011-02-09 16:01  robe
+2011-02-09 16:01  Regina Obe <lr at pcorp.us>
 
-	* change references of the_geom and the_geog to geom and geog.
-	  "the" is so much wasteful typing
+	* [r6791] doc/using_postgis_app.xml: change references of the_geom
+	  and the_geog to geom and geog. "the" is so much wasteful typing
 
-2011-02-09 12:54  robe
+2011-02-09 12:54  Regina Obe <lr at pcorp.us>
 
-	* #821: doc typos errata from Kashif Rasul
+	* [r6790] doc/ZMSgeoms.txt, doc/extras_historytable.xml,
+	  doc/extras_topology.xml, doc/installation.xml,
+	  doc/reference_management.xml, doc/reference_measure.xml,
+	  doc/reference_output.xml, doc/reference_processing.xml,
+	  doc/reference_raster.xml, doc/reference_type.xml,
+	  doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl,
+	  doc/xsl/raster_gardentest.sql.xsl,
+	  doc/xsl/topology_gardentest.sql.xsl: #821: doc typos errata from
+	  Kashif Rasul
 
-2011-02-08 17:42  strk
+2011-02-08 17:42  Sandro Santilli <strk at keybit.net>
 
-	* Do not call lwmessage_truncate if not needed (an prior to
-	  checking the args passed to it)
+	* [r6789] postgis/lwgeom_pg.c: Do not call lwmessage_truncate if
+	  not needed (an prior to checking the args passed to it)
 
-2011-02-07 22:05  robe
+2011-02-07 22:05  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6788] doc/extras_historytable.xml: fix typo
 
-2011-02-07 17:51  robe
+2011-02-07 17:51  Regina Obe <lr at pcorp.us>
 
-	* document history_table feature
+	* [r6787] doc/Makefile.in, doc/extras.xml,
+	  doc/extras_historytable.xml, doc/postgis.xml: document
+	  history_table feature
 
-2011-02-07 17:03  strk
+2011-02-07 17:03  Sandro Santilli <strk at keybit.net>
 
-	* Also set LANG (see ticket #819) [RT-SIGTA]
+	* [r6786] regress/run_test: Also set LANG (see ticket #819)
+	  [RT-SIGTA]
 
-2011-02-07 16:53  strk
+2011-02-07 16:53  Sandro Santilli <strk at keybit.net>
 
-	* Tag VOLATILE functions explicitly [RT-SIGTA]
+	* [r6785] topology/sql/populate.sql: Tag VOLATILE functions
+	  explicitly [RT-SIGTA]
 
-2011-02-06 00:39  robe
+2011-02-06 00:39  Regina Obe <lr at pcorp.us>
 
-	* oops
+	* [r6784] doc/reference_editor.xml: oops
 
-2011-02-06 00:34  robe
+2011-02-06 00:34  Regina Obe <lr at pcorp.us>
 
-	* Fix typo in ST_SetSRID and add examples
+	* [r6782] doc/reference_editor.xml: Fix typo in ST_SetSRID and add
+	  examples
 
-2011-02-05 00:53  robe
+2011-02-05 00:53  Regina Obe <lr at pcorp.us>
 
-	* Id for chapter 4 in wrong place -- move, add missing -S switch in
-	  loader detail, fix some typos in tiger geocoder and add reference
-	  to shp2pgsql section in manual
+	* [r6781] doc/extras_tigergeocoder.xml,
+	  doc/using_postgis_dataman.xml: Id for chapter 4 in wrong place --
+	  move, add missing -S switch in loader detail, fix some typos in
+	  tiger geocoder and add reference to shp2pgsql section in manual
 
-2011-02-04 18:33  robe
+2011-02-04 18:33  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6780] doc/extras_tigergeocoder.xml:
 
-2011-02-04 18:33  robe
+2011-02-04 18:33  Regina Obe <lr at pcorp.us>
 
-	* fix some spelling and revise some wording
+	* [r6779] doc/extras_tigergeocoder.xml: fix some spelling and
+	  revise some wording
 
-2011-02-04 17:33  robe
+2011-02-04 17:33  Regina Obe <lr at pcorp.us>
 
-	* add description of loader function.
+	* [r6778] doc/extras_tigergeocoder.xml: add description of loader
+	  function.
 
-2011-02-04 17:26  strk
+2011-02-04 17:26  Sandro Santilli <strk at keybit.net>
 
-	* Use quote_ident more...
+	* [r6777] topology/topology.sql.in.c: Use quote_ident more...
 
-2011-02-04 17:19  strk
+2011-02-04 17:19  Sandro Santilli <strk at keybit.net>
 
-	* Fix a bug in topology.CreateTopoGeom in presence of MixCased
-	  topologies [RT-SIGTA]
+	* [r6776] topology/test/Makefile,
+	  topology/test/regress/createtopogeom.sql,
+	  topology/test/regress/createtopogeom_expected,
+	  topology/topology.sql.in.c: Fix a bug in topology.CreateTopoGeom
+	  in presence of MixCased topologies [RT-SIGTA]
 
-2011-02-04 16:31  strk
+2011-02-04 16:31  Sandro Santilli <strk at keybit.net>
 
-	* Fix a bug in topology.add{Node,Edge,Face} breaking on MixedCased
-	  topology names [RT-SIGTA]
+	* [r6775] topology/sql/populate.sql,
+	  topology/test/regress/addedge.sql,
+	  topology/test/regress/addedge_expected,
+	  topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected,
+	  topology/test/regress/addnode.sql,
+	  topology/test/regress/addnode_expected: Fix a bug in
+	  topology.add{Node,Edge,Face} breaking on MixedCased topology
+	  names [RT-SIGTA]
 
-2011-02-01 13:55  robe
+2011-02-01 13:55  Regina Obe <lr at pcorp.us>
 
-	* Best guess at what the Linux equivalent should look like will
-	  have to test later once get my Linux box setup again
+	* [r6774] extras/tiger_geocoder/tiger_2010/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_2010/create_geocode.sh: Best guess at
+	  what the Linux equivalent should look like will have to test
+	  later once get my Linux box setup again
 
-2011-02-01 13:53  strk
+2011-02-01 13:53  Sandro Santilli <strk at keybit.net>
 
-	* ST_Estimated_Extent: make exception message about lack of stats
-	  clearer
+	* [r6773] postgis/lwgeom_estimate.c: ST_Estimated_Extent: make
+	  exception message about lack of stats clearer
 
-2011-02-01 10:24  strk
+2011-02-01 10:24  Sandro Santilli <strk at keybit.net>
 
-	* AsGML(TopoGeometry): test xref to visited face [RT-SIGTA].
+	* [r6772] topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: AsGML(TopoGeometry): test
+	  xref to visited face [RT-SIGTA].
 
-2011-02-01 09:55  strk
+2011-02-01 09:55  Sandro Santilli <strk at keybit.net>
 
-	* AsGML(TopoGeometry): add test for faces marking visit of edges
-	  [RT-SIGTA]
+	* [r6771] topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: AsGML(TopoGeometry): add test
+	  for faces marking visit of edges [RT-SIGTA]
 
-2011-02-01 09:43  strk
+2011-02-01 09:43  Sandro Santilli <strk at keybit.net>
 
-	* AsGML(TopoGeometry) Add test for ouput of multi puntual features
-	  [RT-SIGTA]
+	* [r6770] topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: AsGML(TopoGeometry) Add test
+	  for ouput of multi puntual features [RT-SIGTA]
 
-2011-01-31 20:26  strk
+2011-01-31 20:26  Sandro Santilli <strk at keybit.net>
 
-	* Document the new version of topology.AsGML() signature (polluting
-	  for commandline friendliness!)
+	* [r6769] doc/extras_topology.xml: Document the new version of
+	  topology.AsGML() signature (polluting for commandline
+	  friendliness!)
 
-2011-01-31 17:33  strk
+2011-01-31 17:33  Sandro Santilli <strk at keybit.net>
 
-	* Use a <gml:Face> tag for each topological face, allowing proper
+	* [r6768] topology/sql/gml.sql, topology/test/regress/gml_expected:
+	  Use a <gml:Face> tag for each topological face, allowing proper
 	  xrefs. Needs xref testing (requires overlapping topological
 	  features) [RT-SIGTA]
 
-2011-01-31 15:04  robe
-
-	* minor formatting change in doc. #722 remove more deprecated
-	  functions: ConvexHull.
-
-2011-01-31 14:39  robe
-
-	* fix typo
+2011-01-31 15:04  Regina Obe <lr at pcorp.us>
 
-2011-01-31 14:37  robe
+	* [r6767] doc/reference_raster.xml, postgis/legacy.sql.in.c,
+	  postgis/postgis.sql.in.c: minor formatting change in doc. #722
+	  remove more deprecated functions: ConvexHull.
 
-	* document ST_HasNoBand, fix note on ST_Value so appears in right
-	  place in what's new index
+2011-01-31 14:39  Regina Obe <lr at pcorp.us>
 
-2011-01-30 18:40  robe
+	* [r6766] doc/reference_raster.xml: fix typo
 
-	* out in missing protos for ST_Value and not that hasnodata is a
-	  new option for ST_Value in 2.0
+2011-01-31 14:37  Regina Obe <lr at pcorp.us>
 
-2011-01-30 01:29  robe
+	* [r6765] doc/reference_raster.xml: document ST_HasNoBand, fix note
+	  on ST_Value so appears in right place in what's new index
 
-	* rename to agree with documentation and other tiger folder
+2011-01-30 18:40  Regina Obe <lr at pcorp.us>
 
-2011-01-28 21:31  robe
-
-	* remark out Paul's cunit test that fails on windows so my regress
-	  checks don't always halt and can complete.
-
-2011-01-28 18:04  strk
-
-	* syntetize purpose of AsGML(TopoGeometry)
-
-2011-01-28 17:15  strk
-
-	* Use named parameters
-
-2011-01-28 17:05  strk
-
-	* Add a "gmlversion" parameter to topology.AsGML(TopoGeometry).
-	  Test and document. [RT-SIGTA].
-
-2011-01-28 16:01  robe
-
-	* 
-
-2011-01-28 16:00  robe
-
-	* corrections to data types in functions -- had them backwards
-
-2011-01-28 15:19  robe
-
-	* missed some spots
-
-2011-01-28 15:01  robe
+	* [r6764] doc/reference_raster.xml: out in missing protos for
+	  ST_Value and not that hasnodata is a new option for ST_Value in
+	  2.0
 
-	* some other minor doc corrections. Stamp files with svn author,
+2011-01-30 01:29  Regina Obe <lr at pcorp.us>
+
+	* [r6763] extras/tiger_geocoder/tiger_2010,
+	  extras/tiger_geocoder/tiger_geocoder_2010: rename to agree with
+	  documentation and other tiger folder
+
+2011-01-28 21:31  Regina Obe <lr at pcorp.us>
+
+	* [r6762] liblwgeom/cunit/cu_in_wkt.c: remark out Paul's cunit test
+	  that fails on windows so my regress checks don't always halt and
+	  can complete.
+
+2011-01-28 18:04  Sandro Santilli <strk at keybit.net>
+
+	* [r6761] doc/extras_topology.xml: syntetize purpose of
+	  AsGML(TopoGeometry)
+
+2011-01-28 17:15  Sandro Santilli <strk at keybit.net>
+
+	* [r6760] topology/sql/gml.sql: Use named parameters
+
+2011-01-28 17:05  Sandro Santilli <strk at keybit.net>
+
+	* [r6759] doc/extras_topology.xml, topology/sql/gml.sql,
+	  topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: Add a "gmlversion" parameter
+	  to topology.AsGML(TopoGeometry). Test and document. [RT-SIGTA].
+
+2011-01-28 16:01  Regina Obe <lr at pcorp.us>
+
+	* [r6758] doc/extras_tigergeocoder.xml:
+
+2011-01-28 16:00  Regina Obe <lr at pcorp.us>
+
+	* [r6757] doc/extras_tigergeocoder.xml: corrections to data types
+	  in functions -- had them backwards
+
+2011-01-28 15:19  Regina Obe <lr at pcorp.us>
+
+	* [r6756]
+	  extras/tiger_geocoder/tiger_geocoder_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/tiger_loader.sql:
+	  missed some spots
+
+2011-01-28 15:01  Regina Obe <lr at pcorp.us>
+
+	* [r6755] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/README,
+	  extras/tiger_geocoder/tiger_2006andbefore/README,
+	  extras/tiger_geocoder/tiger_geocoder_2010/README,
+	  extras/tiger_geocoder/tiger_geocoder_2010/create_geocode.bat,
+	  extras/tiger_geocoder/tiger_geocoder_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/legacy_import/tiger2008/import_tiger_shps.sh,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/count_words.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/end_soundex.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/get_last_words.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/location_extract_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/location_extract_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/normalize/state_extract.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/tables/lookup_tables_2010.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/tiger_loader.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/utility/cull_null.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/utility/levenshtein_ignore_case.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/utility/nullable_levenshtein.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/utility/utmzone.sql:
+	  some other minor doc corrections. Stamp files with svn author,
 	  revision etc keywords
 
-2011-01-28 14:37  robe
+2011-01-28 14:37  Regina Obe <lr at pcorp.us>
 
-	* fix some typos
+	* [r6754] doc/extras_tigergeocoder.xml: fix some typos
 
-2011-01-28 13:09  robe
+2011-01-28 13:09  Regina Obe <lr at pcorp.us>
 
-	* put back missing tag
+	* [r6753] doc/extras_tigergeocoder.xml: put back missing tag
 
-2011-01-28 13:03  robe
+2011-01-28 13:03  Regina Obe <lr at pcorp.us>
 
-	* simplify example
+	* [r6752] doc/extras_tigergeocoder.xml: simplify example
 
-2011-01-28 12:27  robe
+2011-01-28 12:27  Regina Obe <lr at pcorp.us>
 
-	* get rid of some redundancy
+	* [r6751] doc/extras_tigergeocoder.xml: get rid of some redundancy
 
-2011-01-28 12:25  robe
+2011-01-28 12:25  Regina Obe <lr at pcorp.us>
 
-	* minor clarifications
+	* [r6750] doc/extras_tigergeocoder.xml: minor clarifications
 
-2011-01-28 12:11  robe
+2011-01-28 12:11  Regina Obe <lr at pcorp.us>
 
-	* After having to answer this yet again I am finally reduced to
-	  adding the age old question: Why does pgAdmin show that my
-	  geometries are blank. Also change the FAQ to a pretty anchor so
-	  its easily referenceable and permanent.
+	* [r6748] doc/faq.xml: After having to answer this yet again I am
+	  finally reduced to adding the age old question: Why does pgAdmin
+	  show that my geometries are blank. Also change the FAQ to a
+	  pretty anchor so its easily referenceable and permanent.
 
-2011-01-28 08:55  strk
+2011-01-28 08:55  Sandro Santilli <strk at keybit.net>
 
-	* Change face.mbr field from BOX2D to GEOMETRY, and gist-index it,
+	* [r6747] topology/sql/populate.sql,
+	  topology/test/regress/addface.sql, topology/topology.sql.in.c:
+	  Change face.mbr field from BOX2D to GEOMETRY, and gist-index it,
 	  closes ticket #800 [RT-SIGTA].
 
-2011-01-28 06:14  robe
+2011-01-28 06:14  Regina Obe <lr at pcorp.us>
 
-	* document normalize_address and pprint_addy functions of tiger
-	  geocoder
+	* [r6746] doc/extras_tigergeocoder.xml: document normalize_address
+	  and pprint_addy functions of tiger geocoder
 
-2011-01-27 20:40  strk
+2011-01-27 20:40  Sandro Santilli <strk at keybit.net>
 
-	* Document new parameter of AsGML(TopoGeometry) [RT-SIGTA].
+	* [r6745] doc/extras_topology.xml: Document new parameter of
+	  AsGML(TopoGeometry) [RT-SIGTA].
 
-2011-01-27 20:35  strk
+2011-01-27 20:35  Sandro Santilli <strk at keybit.net>
 
-	* AsGML(TopoGeometry): allow specifying a prefix for topology
-	  element identifiers, and test it. [RT-SIGTA]
+	* [r6744] topology/sql/gml.sql, topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: AsGML(TopoGeometry): allow
+	  specifying a prefix for topology element identifiers, and test
+	  it. [RT-SIGTA]
 
-2011-01-27 18:21  robe
+2011-01-27 18:21  Regina Obe <lr at pcorp.us>
 
-	* correction
+	* [r6743] doc/extras_tigergeocoder.xml: correction
 
-2011-01-27 18:17  robe
+2011-01-27 18:17  Regina Obe <lr at pcorp.us>
 
-	* put in a batch geocoding example, more performance enhancements
-	  and loading changes.
+	* [r6742] doc/extras_tigergeocoder.xml,
+	  extras/tiger_geocoder/tiger_geocoder_2010/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/geocode/other_helper_functions.sql,
+	  extras/tiger_geocoder/tiger_geocoder_2010/tiger_loader.sql: put
+	  in a batch geocoding example, more performance enhancements and
+	  loading changes.
 
-2011-01-27 15:56  robe
+2011-01-27 15:56  Regina Obe <lr at pcorp.us>
 
-	* start documenting tiger geocoder
+	* [r6741] doc/Makefile.in, doc/extras.xml,
+	  doc/extras_tigergeocoder.xml, doc/postgis.xml: start documenting
+	  tiger geocoder
 
-2011-01-27 09:43  strk
+2011-01-27 09:43  Sandro Santilli <strk at keybit.net>
 
-	* AsGML(TopoGeometry): fix xref syntax error (#811) [RT-SIGTA]
+	* [r6740] topology/sql/gml.sql, topology/test/regress/gml_expected:
+	  AsGML(TopoGeometry): fix xref syntax error (#811) [RT-SIGTA]
 
-2011-01-27 08:48  strk
+2011-01-27 08:48  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddEdge: when an intersection occurs, also report
-	  intersection point [RT-SIGTA]
+	* [r6739] topology/sql/populate.sql,
+	  topology/test/regress/addedge_expected: topology.AddEdge: when an
+	  intersection occurs, also report intersection point [RT-SIGTA]
 
-2011-01-26 16:57  jorgearevalo
+2011-01-26 16:57  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added header for RASTER_setBandIsNoData.Related ticket #593.
+	* [r6738] raster/rt_pg/rt_pg.c: Added header for
+	  RASTER_setBandIsNoData.Related ticket #593.
 
-2011-01-26 16:28  jorgearevalo
+2011-01-26 16:28  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* The documentation for ST_BandIsNoData was changed by error. This
-	  commit fixes
+	* [r6737] doc/reference_raster.xml: The documentation for
+	  ST_BandIsNoData was changed by error. This commit fixes
 	  it. Related ticket #593.
 
-2011-01-26 16:08  jorgearevalo
+2011-01-26 16:08  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added function ST_SetBandIsNoData with tests and doc. Deleted
-	  isnodata checking
+	* [r6736] doc/reference_raster.xml, raster/rt_pg/rt_pg.c,
+	  raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/scripts/python/raster2pgsql.py,
+	  raster/test/regress/create_rt_band_properties_test.sql,
+	  raster/test/regress/rt_band_properties.sql,
+	  raster/test/regress/rt_band_properties_expected,
+	  raster/test/regress/rt_pixelvalue_expected: Added function
+	  ST_SetBandIsNoData with tests and doc. Deleted isnodata checking
 	  for loader. Related ticket #593.
 
-2011-01-26 15:16  robe
+2011-01-26 15:16  Regina Obe <lr at pcorp.us>
 
-	* put in logic to fill zipcode_lookup_base, fix some other errors
+	* [r6735]
+	  extras/tiger_geocoder/tiger_geocoder_2010/tiger_loader.sql: put
+	  in logic to fill zipcode_lookup_base, fix some other errors
 
-2011-01-26 13:43  strk
+2011-01-26 13:43  Sandro Santilli <strk at keybit.net>
 
-	* Try to keep NEWS format consistent (80 cols, same indenting as
-	  previous). Still too much information for my taste, but it's a
-	  step forward.
+	* [r6734] NEWS: Try to keep NEWS format consistent (80 cols, same
+	  indenting as previous). Still too much information for my taste,
+	  but it's a step forward.
 
-2011-01-26 13:34  strk
+2011-01-26 13:34  Sandro Santilli <strk at keybit.net>
 
-	* Document the new 'visitedTable' parameter to topology.AsGML
-	  [RT-SIGTA].
+	* [r6733] doc/extras_topology.xml: Document the new 'visitedTable'
+	  parameter to topology.AsGML [RT-SIGTA].
 
-2011-01-25 21:52  strk
+2011-01-25 21:52  Sandro Santilli <strk at keybit.net>
 
-	* Complete visited bookkeeping for AsGML(TopoGeometry) and automate
-	  test for it [RT-SIGTA]
+	* [r6732] topology/sql/gml.sql, topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: Complete visited bookkeeping
+	  for AsGML(TopoGeometry) and automate test for it [RT-SIGTA]
 
-2011-01-25 18:08  strk
+2011-01-25 18:08  Sandro Santilli <strk at keybit.net>
 
-	* I realized we're in 2011...
+	* [r6731] topology/sql/gml.sql, topology/sql/populate.sql,
+	  topology/sql/sqlmm.sql,
+	  topology/sql/topoelement/topoelement_agg.sql,
+	  topology/topology.sql.in.c: I realized we're in 2011...
 
-2011-01-25 17:16  robe
+2011-01-25 17:16  Regina Obe <lr at pcorp.us>
 
-	* update installation instructions to include raster_comments.sql,
-	  topology_comments.sql
+	* [r6730] doc/installation.xml: update installation instructions to
+	  include raster_comments.sql, topology_comments.sql
 
-2011-01-25 17:04  strk
+2011-01-25 17:04  Sandro Santilli <strk at keybit.net>
 
-	* AsGML(TopoGeometry): Add support for visited table and xlink:xref
-	  for Edges [RT-SIGTA]
+	* [r6729] topology/sql/gml.sql: AsGML(TopoGeometry): Add support
+	  for visited table and xlink:xref for Edges [RT-SIGTA]
 
-2011-01-25 16:46  robe
+2011-01-25 16:46  Regina Obe <lr at pcorp.us>
 
-	* Put in missing make topology_comments.sql and also add to the
-	  make comments routine
+	* [r6728] doc/Makefile.in: Put in missing make
+	  topology_comments.sql and also add to the make comments routine
 
-2011-01-25 15:05  strk
+2011-01-25 15:05  Sandro Santilli <strk at keybit.net>
 
-	* Test use of the options argument to topology.AsGML [RT-SIGTA]
+	* [r6726] topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: Test use of the options
+	  argument to topology.AsGML [RT-SIGTA]
 
-2011-01-25 14:52  strk
+2011-01-25 14:52  Sandro Santilli <strk at keybit.net>
 
-	* Allow specifying GML output precision and options to the
+	* [r6725] doc/extras_topology.xml, topology/sql/gml.sql: Allow
+	  specifying GML output precision and options to the
 	  topology.AsGML(TopoGeometry) function [RT-SIGTA].
 
-2011-01-25 09:39  strk
-
-	* Make topology.AddEdge consistent with AddNode and AddFace in that
-	  it will return an existing identical Edge, if found.
-
-2011-01-25 06:38  robe
-
-	* cleanup -- other legacy stuff is already in tiger2006
-
-2011-01-25 06:36  robe
-
-	* 
-
-2011-01-25 06:31  robe
-
-	* reshuffle in preparation for merging in tiger 2010 support
-	  version
-
-2011-01-25 06:20  robe
-
-	* Add ST_ConcaveHull to news item
-
-2011-01-24 20:56  strk
-
-	* Test multi-component lineal topogeometries [RT-SIGTA]
-
-2011-01-24 20:52  strk
-
-	* Output multi-edge lineal TopoGeometry GML with a meaningful edge
-	  ordering [RT-SIGTA]
+2011-01-25 09:39  Sandro Santilli <strk at keybit.net>
+
+	* [r6724] doc/extras_topology.xml, topology/sql/populate.sql,
+	  topology/test/regress/addedge.sql,
+	  topology/test/regress/addedge_expected: Make topology.AddEdge
+	  consistent with AddNode and AddFace in that it will return an
+	  existing identical Edge, if found.
+
+2011-01-25 06:38  Regina Obe <lr at pcorp.us>
+
+	* [r6723]
+	  extras/tiger_geocoder/tiger_geocoder_2010/legacy_import/import_tiger_shps.sh,
+	  extras/tiger_geocoder/tiger_geocoder_2010/legacy_import/load_tiger.sh,
+	  extras/tiger_geocoder/tiger_geocoder_2010/legacy_import/newdb.sh,
+	  extras/tiger_geocoder/tiger_geocoder_2010/legacy_import/tiger2008/import_tiger_shps.sh,
+	  extras/tiger_geocoder/tiger_geocoder_2010/legacy_import/tigerimport.sh,
+	  extras/tiger_geocoder/tiger_geocoder_2010/legacy_import/tigerpoly2.py:
+	  cleanup -- other legacy stuff is already in tiger2006
+
+2011-01-25 06:36  Regina Obe <lr at pcorp.us>
+
+	* [r6722] extras/tiger_geocoder/tiger_geocoder_2010:
+
+2011-01-25 06:31  Regina Obe <lr at pcorp.us>
+
+	* [r6721] extras/tiger_geocoder/INSTALL,
+	  extras/tiger_geocoder/README,
+	  extras/tiger_geocoder/create_geocode.sql,
+	  extras/tiger_geocoder/geocode, extras/tiger_geocoder/import,
+	  extras/tiger_geocoder/normalize, extras/tiger_geocoder/orig,
+	  extras/tiger_geocoder/tables,
+	  extras/tiger_geocoder/tiger_2006andbefore,
+	  extras/tiger_geocoder/tiger_2006andbefore/INSTALL,
+	  extras/tiger_geocoder/tiger_2006andbefore/README,
+	  extras/tiger_geocoder/tiger_2006andbefore/create_geocode.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_state.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_address_zip.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_get_point.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/geocode_zip.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/includes_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/import,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/load_tiger.sh,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/newdb.sh,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/tigerimport.sh,
+	  extras/tiger_geocoder/tiger_2006andbefore/import/tigerpoly2.py,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/count_words.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/end_soundex.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/get_last_words.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_countysub_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/normalize/state_extract.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/orig,
+	  extras/tiger_geocoder/tiger_2006andbefore/orig/tiger_geocoder.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables/lookup_tables.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables/roads_local.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/tables/tiger_geocode_roads.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/cull_null.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/levenshtein_ignore_case.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/nullable_levenshtein.sql,
+	  extras/tiger_geocoder/tiger_2006andbefore/utility/utmzone.sql,
+	  extras/tiger_geocoder/utility: reshuffle in preparation for
+	  merging in tiger 2010 support version
+
+2011-01-25 06:20  Regina Obe <lr at pcorp.us>
+
+	* [r6720] NEWS, doc/release_notes.xml: Add ST_ConcaveHull to news
+	  item
+
+2011-01-24 20:56  Sandro Santilli <strk at keybit.net>
+
+	* [r6719] topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: Test multi-component lineal
+	  topogeometries [RT-SIGTA]
+
+2011-01-24 20:52  Sandro Santilli <strk at keybit.net>
+
+	* [r6718] topology/sql/gml.sql: Output multi-edge lineal
+	  TopoGeometry GML with a meaningful edge ordering [RT-SIGTA]
+
+2011-01-24 15:06  Jorge Arévalo <jorge.arevalo at deimos-space.com>
+
+	* [r6716] doc/reference_raster.xml,
+	  raster/doc/RFC1-SerializedFormat,
+	  raster/doc/RFC2-WellKnownBinaryFormat, raster/rt_core/rt_api.c,
+	  raster/scripts/python/raster2pgsql.py: Documentation updated for
+	  ST_BandIsNodata function. Added band nodata checking
+	  in loader script.
 
-2011-01-24 15:06  jorgearevalo
+2011-01-24 14:38  Sandro Santilli <strk at keybit.net>
 
-	* Documentation updated for ST_BandIsNodata function. Added band
-	  nodata checking
-	  in loader script.
+	* [r6715] topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: Add test for TopoSurface GML
+	  output with multi-face TopoGeometry objects [RT-SIGTA]
 
-2011-01-24 14:38  strk
+2011-01-24 14:18  Sandro Santilli <strk at keybit.net>
 
-	* Add test for TopoSurface GML output with multi-face TopoGeometry
-	  objects [RT-SIGTA]
+	* [r6714] .gitignore: load_topology* are generated now
 
-2011-01-24 14:18  strk
+2011-01-24 14:14  Sandro Santilli <strk at keybit.net>
 
-	* load_topology* are generated now
+	* [r6713] topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: Test the noprefix and
+	  customprefix GML outputs against all geoms taken in consideration
+	  for the default GML ..
 
-2011-01-24 14:14  strk
+2011-01-24 14:03  Sandro Santilli <strk at keybit.net>
 
-	* Test the noprefix and customprefix GML outputs against all geoms
-	  taken in consideration for the default GML ..
+	* [r6712] topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: Add test for single-component
+	  areal TopoGeometry GML output [RT-SIGTA]
 
-2011-01-24 14:03  strk
+2011-01-24 14:01  Sandro Santilli <strk at keybit.net>
 
-	* Add test for single-component areal TopoGeometry GML output
+	* [r6711] topology/sql/gml.sql: AsGML(TopoGeometry): Do not force
+	  right-hand-rule on each polygon ring (isn't needed and doesn't
+	  make sense as it would get the hole rings wrong anyway)
 	  [RT-SIGTA]
 
-2011-01-24 14:01  strk
+2011-01-24 11:43  Sandro Santilli <strk at keybit.net>
 
-	* AsGML(TopoGeometry): Do not force right-hand-rule on each polygon
-	  ring (isn't needed and doesn't make sense as it would get the
-	  hole rings wrong anyway) [RT-SIGTA]
+	* [r6710] topology/sql/gml.sql: AsGML(TopoGeometry): for
+	  TopoSurface, make the directedEdge sequence be ordered to go
+	  around each ring (ie: make the order meaningful) [RT-SIGTA].
 
-2011-01-24 11:43  strk
+2011-01-24 11:11  Sandro Santilli <strk at keybit.net>
 
-	* AsGML(TopoGeometry): for TopoSurface, make the directedEdge
-	  sequence be ordered to go around each ring (ie: make the order
-	  meaningful) [RT-SIGTA].
+	* [r6709] topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: AsGML(TopoGeometry) add test
+	  for TopoCurve output (only single-element, till ordering of
+	  components is sorted out) [RT-SIGTA].
 
-2011-01-24 11:11  strk
+2011-01-24 09:31  Sandro Santilli <strk at keybit.net>
 
-	* AsGML(TopoGeometry) add test for TopoCurve output (only
-	  single-element, till ordering of components is sorted out)
-	  [RT-SIGTA].
+	* [r6708] topology/test/Makefile, topology/test/regress/gml.sql,
+	  topology/test/regress/gml_expected: Test GML output of puntual
+	  TopoGeometry objects. Lineal and Areal are still undergoing
+	  manual tests and debate about importance of components sequence
+	  ordering [RT-SIGTA].
 
-2011-01-24 09:31  strk
+2011-01-23 20:25  Sandro Santilli <strk at keybit.net>
 
-	* Test GML output of puntual TopoGeometry objects. Lineal and Areal
-	  are still undergoing manual tests and debate about importance of
-	  components sequence ordering [RT-SIGTA].
+	* [r6702] topology/sql/gml.sql: topology.AsGML(TopoGeometry): Write
+	  end node of edges. Fixes bug #807 [RT-SIGTA]
 
-2011-01-23 20:25  strk
+2011-01-23 14:48  Regina Obe <lr at pcorp.us>
 
-	* topology.AsGML(TopoGeometry): Write end node of edges. Fixes bug
-	  #807 [RT-SIGTA]
+	* [r6701] doc/extras_topology.xml: Document AsGML and fill in some
+	  missing examples in other functions
 
-2011-01-23 14:48  robe
+2011-01-22 23:02  Sandro Santilli <strk at keybit.net>
 
-	* Document AsGML and fill in some missing examples in other
-	  functions
+	* [r6700] topology/topology.sql.in.c: Port topology.Geometry to $$
+	  syntax [RT-SIGTA]
 
-2011-01-22 23:02  strk
+2011-01-22 22:38  Sandro Santilli <strk at keybit.net>
 
-	* Port topology.Geometry to $$ syntax [RT-SIGTA]
+	* [r6699] topology/sql/sqlmm.sql, topology/topology.sql.in.c:
+	  update email address
 
-2011-01-22 22:38  strk
+2011-01-22 19:26  Sandro Santilli <strk at keybit.net>
 
-	* update email address
+	* [r6698] topology/sql/gml.sql: topology.AsGML: Add the missing
+	  gml:directedEdge part within the gml:Face tag, appropriately (?)
+	  computing orientation of each "ring" edge [RT-SIGTA] (#803)
 
-2011-01-22 19:26  strk
+2011-01-22 18:46  Sandro Santilli <strk at keybit.net>
 
-	* topology.AsGML: Add the missing gml:directedEdge part within the
-	  gml:Face tag, appropriately (?) computing orientation of each
-	  "ring" edge [RT-SIGTA] (#803)
+	* [r6697] regress/tickets.sql, regress/tickets_expected: Add test
+	  for ST_AsGML with long srsName. Expects what at first sight
+	  looked like a bug (#804).
 
-2011-01-22 18:46  strk
+2011-01-22 18:08  Sandro Santilli <strk at keybit.net>
 
-	* Add test for ST_AsGML with long srsName. Expects what at first
-	  sight looked like a bug (#804).
+	* [r6696] topology/test/cache_geometries.sql,
+	  topology/test/load_features.sql,
+	  topology/test/regress/legacy_predicate_expected,
+	  topology/test/regress/legacy_query_expected: There's no need to
+	  add geometry columns when creating Topological layers, that's
+	  something only useful for caching geometries, so move to
+	  cache_geometries.sql
 
-2011-01-22 18:08  strk
+2011-01-22 18:08  Sandro Santilli <strk at keybit.net>
 
-	* There's no need to add geometry columns when creating Topological
-	  layers, that's something only useful for caching geometries, so
-	  move to cache_geometries.sql
+	* [r6695] topology/test/Makefile, topology/test/load_topology.sql,
+	  topology/test/load_topology.sql.in: Cleanup the topology regress
+	  dir Makefile. Have load_topology.sql generated to allow for
+	  specifying different SRIDs.
 
-2011-01-22 18:08  strk
+2011-01-22 17:26  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup the topology regress dir Makefile. Have load_topology.sql
-	  generated to allow for specifying different SRIDs.
+	* [r6694] topology/sql/gml.sql: Rename internal functions so to
+	  have an underscore prefix, document them as such. Drop wrappers
+	  for internal functions (they are not meant to be called by users
+	  so don't need to be friendly) [RT-SIGTA]
 
-2011-01-22 17:26  strk
+2011-01-22 17:21  Sandro Santilli <strk at keybit.net>
 
-	* Rename internal functions so to have an underscore prefix,
-	  document them as such. Drop wrappers for internal functions (they
-	  are not meant to be called by users so don't need to be friendly)
+	* [r6693] topology/sql/gml.sql: topology.AsGML(TopoGeometry): Add
+	  support for specifying a namespace prefix. See ticket #801.
 	  [RT-SIGTA]
 
-2011-01-22 17:21  strk
+2011-01-22 16:10  Sandro Santilli <strk at keybit.net>
 
-	* topology.AsGML(TopoGeometry): Add support for specifying a
-	  namespace prefix. See ticket #801. [RT-SIGTA]
+	* [r6692] topology/sql/gml.sql: topology.AsGML: Use Long CRS for
+	  pointProperty and curveProperty [RT-SIGTA]
 
-2011-01-22 16:10  strk
+2011-01-22 15:24  Sandro Santilli <strk at keybit.net>
 
-	* topology.AsGML: Use Long CRS for pointProperty and curveProperty
-	  [RT-SIGTA]
-
-2011-01-22 15:24  strk
-
-	* Use GML3 for Edge curveProperty and Node pointProperty (see #802)
-	  [RT-SIGTA].
+	* [r6691] topology/sql/gml.sql: Use GML3 for Edge curveProperty and
+	  Node pointProperty (see #802) [RT-SIGTA].
 
-2011-01-22 13:55  strk
+2011-01-22 13:55  Sandro Santilli <strk at keybit.net>
 
-	* topology.AsGML(TopoGeometry): add a <gml:Face> tag (See ticket
-	  #803) [RT-SIGTA]
+	* [r6690] topology/sql/gml.sql: topology.AsGML(TopoGeometry): add a
+	  <gml:Face> tag (See ticket #803) [RT-SIGTA]
 
-2011-01-22 13:27  strk
+2011-01-22 13:27  Sandro Santilli <strk at keybit.net>
 
-	* Don't miss to include the gml routines in the main topology.sql
+	* [r6689] topology/topology.sql.in.c: Don't miss to include the gml
+	  routines in the main topology.sql
 
-2011-01-22 08:37  strk
+2011-01-22 08:37  Sandro Santilli <strk at keybit.net>
 
-	* fix spurious ending bracket in topo-GML output [RT-SIGTA]
+	* [r6688] topology/sql/gml.sql: fix spurious ending bracket in
+	  topo-GML output [RT-SIGTA]
 
-2011-01-21 22:10  strk
+2011-01-21 22:10  Sandro Santilli <strk at keybit.net>
 
-	* First version of topological gml output routines (still miss the
-	  visited map) [RT-SIGTA]
+	* [r6687] topology/Makefile.in, topology/sql/gml.sql: First version
+	  of topological gml output routines (still miss the visited map)
+	  [RT-SIGTA]
 
-2011-01-21 14:08  strk
+2011-01-21 14:08  Sandro Santilli <strk at keybit.net>
 
-	* I've just realized TopoElement is also used for
-	  TopoGeomId/LayerID, thus can't restrict the second element to a
-	  max of 4 or using layers beyond the forth would be impossible.
-	  Fix the domain and test accordingly. Update documentation to be
-	  informative on the matter.
+	* [r6684] doc/extras_topology.xml,
+	  topology/test/regress/topoelement.sql,
+	  topology/test/regress/topoelement_expected,
+	  topology/topology.sql.in.c: I've just realized TopoElement is
+	  also used for TopoGeomId/LayerID, thus can't restrict the second
+	  element to a max of 4 or using layers beyond the forth would be
+	  impossible. Fix the domain and test accordingly. Update
+	  documentation to be informative on the matter.
 
-2011-01-21 13:21  strk
+2011-01-21 13:21  Sandro Santilli <strk at keybit.net>
 
-	* Fix TopoGeometry -> Geometry conversion for hierarchically
-	  defined TopoGeometries in presence of multiple topologies. Take
-	  the chance so simplify a query. WARNING: This fix doesn't have an
-	  automated regression test.
+	* [r6683] topology/topology.sql.in.c: Fix TopoGeometry -> Geometry
+	  conversion for hierarchically defined TopoGeometries in presence
+	  of multiple topologies. Take the chance so simplify a query.
+	  WARNING: This fix doesn't have an automated regression test.
 
-2011-01-21 07:15  robe
+2011-01-21 07:15  Regina Obe <lr at pcorp.us>
 
-	* document ST_RemoveIsoNode minor changes to match function
-	  signatures toponame -> atopology for ST_ functions
+	* [r6682] doc/extras_topology.xml: document ST_RemoveIsoNode minor
+	  changes to match function signatures toponame -> atopology for
+	  ST_ functions
 
-2011-01-21 07:03  robe
+2011-01-21 07:03  Regina Obe <lr at pcorp.us>
 
-	* Move ST_GetFaceGeomety, document the non-existence of
-	  ST_GetFaceEdges (its just a stub)
+	* [r6681] doc/extras_topology.xml: Move ST_GetFaceGeomety, document
+	  the non-existence of ST_GetFaceEdges (its just a stub)
 
-2011-01-20 23:29  pracine
+2011-01-20 23:29  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix for ticket 606: ST_Value now return NULL for nodata value
-	  and ST_SetValue accept NULL values (if there is a nodata value in
-	  the band).
+	* [r6680] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/create_rt_band_properties_test.sql,
+	  raster/test/regress/rt_pixelvalue.sql,
+	  raster/test/regress/rt_pixelvalue_expected: -Fix for ticket 606:
+	  ST_Value now return NULL for nodata value and ST_SetValue accept
+	  NULL values (if there is a nodata value in the band).
 	  
 	  ST_Value accept a boolean parameter which, when set to false,
 	  have the function to return nodata values as their true value
 	  instead of null.
 
-2011-01-20 17:07  jorgearevalo
+2011-01-20 17:07  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added isnodata flag at core level and st_bandisnodata at
-	  postgresql level.
+	* [r6678] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/create_rt_band_properties_test.sql,
+	  raster/test/regress/rt_band_properties.sql,
+	  raster/test/regress/rt_band_properties_expected,
+	  raster/test/regress/rt_pixelvalue_expected: Added isnodata flag
+	  at core level and st_bandisnodata at postgresql level.
 	  Related ticket #593. Fixed bug with debug functions at raster
 	  core level. Still
 	  need to change the loader and the doc.
 
-2011-01-19 21:42  robe
+2011-01-19 21:42  Regina Obe <lr at pcorp.us>
 
-	* #795: ST_Intersects raster documentation is confusing
+	* [r6675] doc/reference_raster.xml: #795: ST_Intersects raster
+	  documentation is confusing
 
-2011-01-19 21:11  pracine
+2011-01-19 21:11  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Clarify help messages.
+	* [r6674] raster/scripts/python/raster2pgsql.py: -Clarify help
+	  messages.
 
-2011-01-19 20:52  pracine
+2011-01-19 20:52  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Added a -a option to append tiles to an existing table.
+	* [r6673] raster/scripts/python/raster2pgsql.py: -Added a -a option
+	  to append tiles to an existing table.
 	  -Fixed ticket 542. The table WAS dropped but not recreated.
 
-2011-01-19 16:46  strk
+2011-01-19 16:46  Sandro Santilli <strk at keybit.net>
 
-	* Make the TopoElement domain stricter to forbid arrays with more
-	  than 2 elements and also checking the element type being in valid
-	  range [RT-SIGTA]
+	* [r6672] topology/test/Makefile,
+	  topology/test/regress/topoelement.sql,
+	  topology/test/regress/topoelement_expected,
+	  topology/test/regress/topoelementarray_agg.sql,
+	  topology/test/regress/topoelementarray_agg_expected,
+	  topology/topology.sql.in.c: Make the TopoElement domain stricter
+	  to forbid arrays with more than 2 elements and also checking the
+	  element type being in valid range [RT-SIGTA]
 
-2011-01-18 23:24  robe
+2011-01-18 23:24  Regina Obe <lr at pcorp.us>
 
-	* Put in section abstact for each
+	* [r6671] doc/extras_topology.xml: Put in section abstact for each
 
-2011-01-18 17:19  strk
+2011-01-18 17:19  Sandro Santilli <strk at keybit.net>
 
-	* Raise an exception if AddEdge is called on a topology which
-	  already defines faces other than the universe face (see #781)
+	* [r6670] topology/sql/populate.sql,
+	  topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected: Raise an exception if
+	  AddEdge is called on a topology which already defines faces other
+	  than the universe face (see #781)
 
-2011-01-18 14:53  robe
+2011-01-18 14:53  Regina Obe <lr at pcorp.us>
 
-	* #722: remove more deprecated functions - ST_MakeLineGArray,
-	  Polygonize_GArray,PointFromWKB (proto), max_distance
+	* [r6669] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/tickets.sql: #722: remove more deprecated functions -
+	  ST_MakeLineGArray, Polygonize_GArray,PointFromWKB (proto),
+	  max_distance
 
-2011-01-18 13:52  strk
+2011-01-18 13:52  Sandro Santilli <strk at keybit.net>
 
-	* ValidateTopology: have temporary table dropped on commit (#783).
-	  Thanks Andrea Peri [RT-SIGTA]
+	* [r6668] topology/topology.sql.in.c: ValidateTopology: have
+	  temporary table dropped on commit (#783). Thanks Andrea Peri
+	  [RT-SIGTA]
 
-2011-01-18 12:50  robe
+2011-01-18 12:50  Regina Obe <lr at pcorp.us>
 
-	* Link to Vincent Picavet's great Foss4G 2010 presentation on
-	  Topology and Network Analysis.
+	* [r6667] doc/extras_topology.xml: Link to Vincent Picavet's great
+	  Foss4G 2010 presentation on Topology and Network Analysis.
 
-2011-01-18 12:28  robe
+2011-01-18 12:28  Regina Obe <lr at pcorp.us>
 
-	* minor corrections
+	* [r6666] doc/extras_topology.xml: minor corrections
 
-2011-01-18 06:38  robe
+2011-01-18 06:38  Regina Obe <lr at pcorp.us>
 
-	* Fix #786 ST_MoveIsoNode gives ST_Intersects is not unique. Also
-	  change to use newer $$ quoting syntax.
+	* [r6665] topology/sql/sqlmm.sql: Fix #786 ST_MoveIsoNode gives
+	  ST_Intersects is not unique. Also change to use newer $$ quoting
+	  syntax.
 
-2011-01-18 06:10  robe
+2011-01-18 06:10  Regina Obe <lr at pcorp.us>
 
-	* Fix typo
+	* [r6664] doc/extras_topology.xml: Fix typo
 
-2011-01-18 06:06  robe
+2011-01-18 06:06  Regina Obe <lr at pcorp.us>
 
-	* ST_MoveIsoNode
+	* [r6663] doc/extras_topology.xml: ST_MoveIsoNode
 
-2011-01-18 05:17  robe
+2011-01-18 05:17  Regina Obe <lr at pcorp.us>
 
-	* fix redundancy in description
+	* [r6662] doc/extras_topology.xml: fix redundancy in description
 
-2011-01-18 04:45  robe
+2011-01-18 04:45  Regina Obe <lr at pcorp.us>
 
-	* ST_NewEdgesSplit, add new processing section, fix some links
+	* [r6661] doc/extras_topology.xml: ST_NewEdgesSplit, add new
+	  processing section, fix some links
 
-2011-01-17 23:07  robe
+2011-01-17 23:07  Regina Obe <lr at pcorp.us>
 
-	* Add ST_AddIsoEdge (still need to put in examples), put in more
+	* [r6660] doc/extras_topology.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  Add ST_AddIsoEdge (still need to put in examples), put in more
 	  back links. Revise special index section to also consider
 	  topology aggregates
 
-2011-01-17 22:35  strk
+2011-01-17 22:35  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddNode: fix detection of edge crossing (#780)
-	  [RT-SIGTA]
+	* [r6659] topology/sql/populate.sql,
+	  topology/test/regress/addnode.sql,
+	  topology/test/regress/addnode_expected: topology.AddNode: fix
+	  detection of edge crossing (#780) [RT-SIGTA]
 
-2011-01-17 21:32  strk
+2011-01-17 21:32  Sandro Santilli <strk at keybit.net>
 
-	* ValidateTopology: Use a temporary table to create face geometries
-	  only once. Huge speed boost for #772.
+	* [r6658] topology/topology.sql.in.c: ValidateTopology: Use a
+	  temporary table to create face geometries only once. Huge speed
+	  boost for #772.
 
-2011-01-17 21:03  strk
+2011-01-17 21:03  Sandro Santilli <strk at keybit.net>
 
-	* ValidateTopology: Put some water on fire by avoiding a full
-	  cartesian product scan (#772). It's still too slow, but it is a
-	  step forward.
+	* [r6657] topology/test/regress/legacy_invalid_expected,
+	  topology/topology.sql.in.c: ValidateTopology: Put some water on
+	  fire by avoiding a full cartesian product scan (#772). It's still
+	  too slow, but it is a step forward.
 
-2011-01-17 19:58  strk
+2011-01-17 19:58  Sandro Santilli <strk at keybit.net>
 
-	* ST_DWithin already includes a bounding box check
+	* [r6656] topology/topology.sql.in.c: ST_DWithin already includes a
+	  bounding box check
 
-2011-01-17 18:15  robe
+2011-01-17 18:15  Regina Obe <lr at pcorp.us>
 
-	* Put in accent in Jorge's name
+	* [r6655] NEWS, doc/release_notes.xml: Put in accent in Jorge's
+	  name
 
-2011-01-17 13:18  robe
+2011-01-17 13:18  Regina Obe <lr at pcorp.us>
 
-	* forgot this in last commit
+	* [r6654] NEWS: forgot this in last commit
 
-2011-01-17 13:18  robe
+2011-01-17 13:18  Regina Obe <lr at pcorp.us>
 
-	* fix typos in Mat's name
+	* [r6653] doc/release_notes.xml: fix typos in Mat's name
 
-2011-01-17 12:16  robe
+2011-01-17 12:16  Regina Obe <lr at pcorp.us>
 
-	* document ST_InitTopoGeo, cleanup some of the sql-mm labelings
+	* [r6652] doc/extras_topology.xml: document ST_InitTopoGeo, cleanup
+	  some of the sql-mm labelings
 
-2011-01-17 10:39  robe
+2011-01-17 10:39  Regina Obe <lr at pcorp.us>
 
-	* Document ST_AddIsoNode - still need to add examples. Update
-	  ValidateTopology to reflect enhancements and bug fixes in 2.0.
+	* [r6651] doc/extras_topology.xml: Document ST_AddIsoNode - still
+	  need to add examples. Update ValidateTopology to reflect
+	  enhancements and bug fixes in 2.0.
 
-2011-01-17 09:04  strk
+2011-01-17 09:04  Sandro Santilli <strk at keybit.net>
 
-	* topology.ValidateTopology: rewrite the edge crossing detection
-	  query. Fixes a false positive (#777) and unexpectedly a bunch of
-	  false negative in the legacy_invalid testcase (now properly
-	  checked visually). [RT-SIGTA].
+	* [r6650] topology/test/regress/legacy_invalid_expected,
+	  topology/topology.sql.in.c: topology.ValidateTopology: rewrite
+	  the edge crossing detection query. Fixes a false positive (#777)
+	  and unexpectedly a bunch of false negative in the legacy_invalid
+	  testcase (now properly checked visually). [RT-SIGTA].
 
-2011-01-17 08:47  strk
+2011-01-17 08:47  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddEdge: correctly handle the case in which a newly
-	  added closed edge touches an existing closed edge with an
-	  endpoint over a non-endpoint [RT-SIGTA].
+	* [r6649] topology/sql/populate.sql,
+	  topology/test/regress/addedge.sql,
+	  topology/test/regress/addedge_expected: topology.AddEdge:
+	  correctly handle the case in which a newly added closed edge
+	  touches an existing closed edge with an endpoint over a
+	  non-endpoint [RT-SIGTA].
 
-2011-01-17 08:47  strk
+2011-01-17 08:47  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddFace: raise another WARNING about
-	  next_left/right_face element of topology edges not being set as
-	  dictated by the model
+	* [r6648] topology/sql/populate.sql,
+	  topology/test/regress/addface_expected: topology.AddFace: raise
+	  another WARNING about next_left/right_face element of topology
+	  edges not being set as dictated by the model
 
-2011-01-17 03:26  robe
+2011-01-17 03:26  Regina Obe <lr at pcorp.us>
 
-	* note magnitude of deprecation
+	* [r6647] NEWS, doc/release_notes.xml: note magnitude of
+	  deprecation
 
-2011-01-16 21:42  strk
+2011-01-16 21:42  Sandro Santilli <strk at keybit.net>
 
-	* ValidateTopology: don't compute full intersection matrix to
-	  detect edge-node intersection. Use ST_DWithin instead. Use
-	  ST_DWithin for coincident nodes detection as well, so to be more
-	  consistent [RT-SIGTA]
+	* [r6646] topology/topology.sql.in.c: ValidateTopology: don't
+	  compute full intersection matrix to detect edge-node
+	  intersection. Use ST_DWithin instead. Use ST_DWithin for
+	  coincident nodes detection as well, so to be more consistent
+	  [RT-SIGTA]
 
-2011-01-16 21:29  strk
+2011-01-16 21:29  Sandro Santilli <strk at keybit.net>
 
-	* ValidateTopology: && operator is not enough to tell if two points
-	  are cohincident (it was at time of HWGEOM...) [RT-SIGTA]
+	* [r6645] topology/topology.sql.in.c: ValidateTopology: && operator
+	  is not enough to tell if two points are cohincident (it was at
+	  time of HWGEOM...) [RT-SIGTA]
 
-2011-01-16 20:17  robe
+2011-01-16 20:17  Regina Obe <lr at pcorp.us>
 
-	* release notes minor updates while still fresh in my mind.
+	* [r6644] NEWS, doc/release_notes.xml: release notes minor updates
+	  while still fresh in my mind.
 
-2011-01-16 17:19  strk
+2011-01-16 17:19  Sandro Santilli <strk at keybit.net>
 
-	* ignore more generated files
+	* [r6643] .gitignore: ignore more generated files
 
-2011-01-16 12:08  robe
+2011-01-16 12:08  Regina Obe <lr at pcorp.us>
 
-	* document ST_3DLongestLine and add missing polyhedralsurface and
-	  3D support flags for ST_3D family of functions
+	* [r6642] doc/reference_measure.xml: document ST_3DLongestLine and
+	  add missing polyhedralsurface and 3D support flags for ST_3D
+	  family of functions
 
-2011-01-16 11:22  robe
+2011-01-16 11:22  Regina Obe <lr at pcorp.us>
 
-	* #776: replace dump with ST_Dump in ST_CreateTopogeo
+	* [r6641] topology/sql/sqlmm.sql: #776: replace dump with ST_Dump
+	  in ST_CreateTopogeo
 
-2011-01-16 10:36  strk
+2011-01-16 10:36  Sandro Santilli <strk at keybit.net>
 
-	* Drop unused domain TopoGeomElementArray. See #775
+	* [r6640] topology/topology.sql.in.c: Drop unused domain
+	  TopoGeomElementArray. See #775
 
-2011-01-16 10:22  robe
+2011-01-16 10:22  Regina Obe <lr at pcorp.us>
 
-	* minor corrections and start documenting ST_CreateTopoGeo
+	* [r6639] doc/extras_topology.xml: minor corrections and start
+	  documenting ST_CreateTopoGeo
 
-2011-01-16 09:10  robe
+2011-01-16 09:10  Regina Obe <lr at pcorp.us>
 
-	* #774: regress fails - Oops forgot to commit this file on last
-	  commit
+	* [r6638] postgis/sqlmm.sql.in.c: #774: regress fails - Oops forgot
+	  to commit this file on last commit
 
-2011-01-16 08:18  robe
+2011-01-16 08:18  Regina Obe <lr at pcorp.us>
 
-	* #722: remove drecated functions BuildArea, MakePolygon
+	* [r6637] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: #722:
+	  remove drecated functions BuildArea, MakePolygon
 
-2011-01-15 23:55  strk
+2011-01-15 23:55  Sandro Santilli <strk at keybit.net>
 
-	* html/postgis.html doesn't really depend on images, and encoding
-	  such dep has the only effect to _always_ rebuild the
-	  documentation, which defeats the purpose of 'make'...
+	* [r6636] doc/Makefile.in: html/postgis.html doesn't really depend
+	  on images, and encoding such dep has the only effect to _always_
+	  rebuild the documentation, which defeats the purpose of 'make'...
 
-2011-01-15 23:37  strk
+2011-01-15 23:37  Sandro Santilli <strk at keybit.net>
 
-	* There's no 'html' rule, so there's no point in making it PHONY...
+	* [r6635] doc/Makefile.in: There's no 'html' rule, so there's no
+	  point in making it PHONY...
 
-2011-01-15 23:37  strk
+2011-01-15 23:37  Sandro Santilli <strk at keybit.net>
 
-	* Don't need to clean image_src in maintainer-clean as that's
-	  already done by clean, which is a dependency of maintainer-clean
+	* [r6634] doc/Makefile.in: Don't need to clean image_src in
+	  maintainer-clean as that's already done by clean, which is a
+	  dependency of maintainer-clean
 
-2011-01-15 23:14  strk
+2011-01-15 23:14  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddFace: group face boundary edge finding query results
-	  to avoid considering the _same_ edge multiple times. Can reduce
-	  execution time from _hours_ to _minutes_ [RT-SIGTA]
+	* [r6633] topology/sql/populate.sql: topology.AddFace: group face
+	  boundary edge finding query results to avoid considering the
+	  _same_ edge multiple times. Can reduce execution time from
+	  _hours_ to _minutes_ [RT-SIGTA]
 
-2011-01-15 19:11  robe
+2011-01-15 19:11  Regina Obe <lr at pcorp.us>
 
-	* ST_GetFaceGeometry and minor formatting
+	* [r6632] doc/extras_topology.xml: ST_GetFaceGeometry and minor
+	  formatting
 
-2011-01-15 18:49  robe
+2011-01-15 18:49  Regina Obe <lr at pcorp.us>
 
-	* fix some typos
+	* [r6631] doc/extras_topology.xml: fix some typos
 
-2011-01-15 14:59  robe
+2011-01-15 14:59  Regina Obe <lr at pcorp.us>
 
-	* Put back AddNode -- accidentally replaced with an extra AddEdge.
+	* [r6630] doc/extras_topology.xml: Put back AddNode -- accidentally
+	  replaced with an extra AddEdge.
 
-2011-01-15 14:33  robe
+2011-01-15 14:33  Regina Obe <lr at pcorp.us>
 
-	* AddFace, minor additions to other functions and note about
-	  dependencies on GEOS 3.3
+	* [r6629] doc/extras_topology.xml: AddFace, minor additions to
+	  other functions and note about dependencies on GEOS 3.3
 
-2011-01-15 07:14  robe
+2011-01-15 07:14  Regina Obe <lr at pcorp.us>
 
-	* document addnode, fix typo
+	* [r6628] doc/extras_topology.xml: document addnode, fix typo
 
-2011-01-15 06:50  robe
+2011-01-15 06:50  Regina Obe <lr at pcorp.us>
 
-	* Add examples for AddEdge, fix typo, add TIGER overview link as an
-	  example of a topologically based database for people not clear of
-	  its utility.
+	* [r6627] doc/extras_topology.xml: Add examples for AddEdge, fix
+	  typo, add TIGER overview link as an example of a topologically
+	  based database for people not clear of its utility.
 
-2011-01-14 16:40  strk
+2011-01-14 16:40  Sandro Santilli <strk at keybit.net>
 
-	* topology.AddEdge: handle case of endpoint intersection between
-	  closed edges. Fixes #770. [RT-SIGTA]
+	* [r6626] topology/sql/populate.sql,
+	  topology/test/regress/addedge.sql,
+	  topology/test/regress/addedge_expected: topology.AddEdge: handle
+	  case of endpoint intersection between closed edges. Fixes #770.
+	  [RT-SIGTA]
 
-2011-01-14 00:01  robe
+2011-01-14 00:01  Regina Obe <lr at pcorp.us>
 
-	* Get rid of ST_BandHasNoDataValue and ST_SetBandHasNoDataValue.
-	  Amend ST_BandNoDataValue to reflect new way of setting it to NULL
-	  if you want all pixel values considered.
+	* [r6625] doc/reference_raster.xml: Get rid of
+	  ST_BandHasNoDataValue and ST_SetBandHasNoDataValue. Amend
+	  ST_BandNoDataValue to reflect new way of setting it to NULL if
+	  you want all pixel values considered.
 
-2011-01-13 23:56  robe
+2011-01-13 23:56  Regina Obe <lr at pcorp.us>
 
-	* Document AddEdge function will provide example later
+	* [r6624] doc/extras_topology.xml: Document AddEdge function will
+	  provide example later
 
-2011-01-13 23:44  robe
+2011-01-13 23:44  Regina Obe <lr at pcorp.us>
 
-	* forgot to update the description too
+	* [r6623] doc/reference_accessor.xml: forgot to update the
+	  description too
 
-2011-01-13 23:40  robe
+2011-01-13 23:40  Regina Obe <lr at pcorp.us>
 
-	* Amend ST_GeometryN to note singular geometry behavior change
+	* [r6622] doc/reference_accessor.xml: Amend ST_GeometryN to note
+	  singular geometry behavior change
 
-2011-01-13 21:36  jorgearevalo
+2011-01-13 21:36  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Functions ST_BandHasNodataValue and ST_SetBandHasNodataValue
-	  deleted. Related ticket #602.
+	* [r6621] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/regress/rt_band_properties.sql,
+	  raster/test/regress/rt_set_band_properties.sql,
+	  raster/test/regress/rt_spatial_relationship.sql: Functions
+	  ST_BandHasNodataValue and ST_SetBandHasNodataValue deleted.
+	  Related ticket #602.
 
-2011-01-13 20:09  jorgearevalo
+2011-01-13 20:09  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Minor bug solved in debug functions.
+	* [r6620] raster/rt_core/rt_api.c: Minor bug solved in debug
+	  functions.
 
-2011-01-13 15:05  robe
+2011-01-13 15:05  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6619] doc/release_notes.xml: fix typo
 
-2011-01-13 14:55  robe
+2011-01-13 14:55  Regina Obe <lr at pcorp.us>
 
-	* Amend release notes to include new changes in 2.0
+	* [r6618] NEWS, doc/introduction.xml, doc/release_notes.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Amend release notes to include
+	  new changes in 2.0
 
-2011-01-13 13:36  robe
+2011-01-13 13:36  Regina Obe <lr at pcorp.us>
 
-	* mark TopoElementArray_agg as new in 2.0.0, back reference
-	  topoelementarray back to this function.
+	* [r6617] doc/extras_topology.xml: mark TopoElementArray_agg as new
+	  in 2.0.0, back reference topoelementarray back to this function.
 
-2011-01-13 13:21  strk
+2011-01-13 13:21  Sandro Santilli <strk at keybit.net>
 
-	* add ST_RelateMatch item
+	* [r6616] NEWS: add ST_RelateMatch item
 
-2011-01-13 09:37  robe
+2011-01-13 09:37  Regina Obe <lr at pcorp.us>
 
-	* fix another id typo
+	* [r6615] doc/extras_topology.xml: fix another id typo
 
-2011-01-13 09:34  robe
+2011-01-13 09:34  Regina Obe <lr at pcorp.us>
 
-	* fix link id
+	* [r6614] doc/extras_topology.xml: fix link id
 
-2011-01-13 08:48  robe
+2011-01-13 08:48  Regina Obe <lr at pcorp.us>
 
-	* topolelementarray_agg and revise xsl to comment agg (hack fo r
-	  now will do better later)
+	* [r6613] doc/extras_topology.xml,
+	  doc/xsl/topology_comments.sql.xsl: topolelementarray_agg and
+	  revise xsl to comment agg (hack fo r now will do better later)
 
-2011-01-13 08:27  robe
+2011-01-13 08:27  Regina Obe <lr at pcorp.us>
 
-	* Another minor change to ST_3DShortestLine. Document
+	* [r6612] doc/extras_topology.xml, doc/reference_measure.xml:
+	  Another minor change to ST_3DShortestLine. Document
 	  topoelementarraay and GetTopoGeomElementArray (which by the ways
 	  seems to me a bit of a misnomer)
 
-2011-01-13 07:13  robe
+2011-01-13 07:13  Regina Obe <lr at pcorp.us>
 
-	* Minor formatting changes of ST_3DShortestLine, get rid of note
-	  abotu ST_3DMaxDistance only working for points and linestrings
-	  now that it works for most everything.
+	* [r6611] doc/reference_measure.xml: Minor formatting changes of
+	  ST_3DShortestLine, get rid of note abotu ST_3DMaxDistance only
+	  working for points and linestrings now that it works for most
+	  everything.
 
-2011-01-12 22:37  jorgearevalo
+2011-01-12 22:37  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Fixed bug #655.
+	* [r6610] raster/scripts/python/raster2pgsql.py: Fixed bug #655.
 
-2011-01-12 22:03  robe
+2011-01-12 22:03  Regina Obe <lr at pcorp.us>
 
-	* #768: get rid of replace ndims with st_ndims in
-	  populate_geometry_columns
+	* [r6609] postgis/postgis.sql.in.c: #768: get rid of replace ndims
+	  with st_ndims in populate_geometry_columns
 
-2011-01-12 22:02  mloskot
+2011-01-12 22:02  Mateusz Loskot <mateusz at loskot.net>
 
-	* [raster] Cleaned and updated copyright notice.
+	* [r6608] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rt_pg.h: [raster] Cleaned and
+	  updated copyright notice.
 
-2011-01-12 21:58  nicklas
+2011-01-12 21:58  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Added ST_3DShortestLine in doc and some small editing.
-	  ST_3DLongestLine is still missing.
+	* [r6607] doc/reference_measure.xml: Added ST_3DShortestLine in doc
+	  and some small editing. ST_3DLongestLine is still missing.
 	  Regina, please take a look if it looks ok.
 
-2011-01-12 21:17  jorgearevalo
+2011-01-12 21:17  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Regression test expected result is now empty. Related tickets:
+	* [r6606] raster/test/regress/rt_band_properties_expected:
+	  Regression test expected result is now empty. Related tickets:
 	  #759, #769.
 
-2011-01-12 19:10  pracine
+2011-01-12 19:10  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Revert to original values for two test failing on Mat machine.
-	  Those values are the good ones on Pierre`s Windows and Jorge`s
-	  Linux. Something must have gone wrong on Mat`s one.
+	* [r6605] raster/test/regress/rt_addband_expected: -Revert to
+	  original values for two test failing on Mat machine. Those values
+	  are the good ones on Pierre`s Windows and Jorge`s Linux.
+	  Something must have gone wrong on Mat`s one.
 
-2011-01-12 17:24  robe
+2011-01-12 17:24  Regina Obe <lr at pcorp.us>
 
-	* update see also links
+	* [r6604] doc/reference_measure.xml: update see also links
 
-2011-01-12 17:22  robe
+2011-01-12 17:22  Regina Obe <lr at pcorp.us>
 
-	* Get rid of note in ST_3DDistance that states only works for
-	  linestrings and points. Now works for all. Add an example of
-	  polygon/multilinestring and update 3DClosestPoint example to be
-	  the same for contrast compare
+	* [r6603] doc/reference_measure.xml: Get rid of note in
+	  ST_3DDistance that states only works for linestrings and points.
+	  Now works for all. Add an example of polygon/multilinestring and
+	  update 3DClosestPoint example to be the same for contrast compare
 
-2011-01-12 11:07  robe
+2011-01-12 11:07  Regina Obe <lr at pcorp.us>
 
-	* get rid of note about 3d relatonship dist functions only workng
-	  for points and linestrings. They work for polygons and even
-	  polyhedralsurfaces though need to verify answers are right.
+	* [r6602] doc/reference_measure.xml: get rid of note about 3d
+	  relatonship dist functions only workng for points and
+	  linestrings. They work for polygons and even polyhedralsurfaces
+	  though need to verify answers are right.
 
-2011-01-12 10:23  robe
+2011-01-12 10:23  Regina Obe <lr at pcorp.us>
 
-	* update to reflect note about breaking change in naming of
-	  PixelSize to Scale
+	* [r6601] doc/reference_raster.xml: update to reflect note about
+	  breaking change in naming of PixelSize to Scale
 
-2011-01-12 08:14  robe
+2011-01-12 08:14  Regina Obe <lr at pcorp.us>
 
-	* GetTopologyName, GetTopologyID accessors
+	* [r6600] doc/extras_topology.xml: GetTopologyName, GetTopologyID
+	  accessors
 
-2011-01-12 07:52  robe
+2011-01-12 07:52  Regina Obe <lr at pcorp.us>
 
-	* remove availaiblit 2.0 from existing functions since they were
-	  available before (will reserve that for really new functions).
-	  Add domains section and accessors section. Revise
-	  topology_comments to be able to put in descriptors for domains
+	* [r6599] doc/extras_topology.xml,
+	  doc/xsl/topology_comments.sql.xsl: remove availaiblit 2.0 from
+	  existing functions since they were available before (will reserve
+	  that for really new functions). Add domains section and accessors
+	  section. Revise topology_comments to be able to put in
+	  descriptors for domains
 
-2011-01-12 06:32  robe
+2011-01-12 06:32  Regina Obe <lr at pcorp.us>
 
-	* ValidateTopology and validatetopology_returntype
+	* [r6598] doc/extras_topology.xml: ValidateTopology and
+	  validatetopology_returntype
 
-2011-01-12 05:01  robe
+2011-01-12 05:01  Regina Obe <lr at pcorp.us>
 
-	* get rid of deprecated calls and checks to srid() and setsrid()
-	  and ndims() in populate_geometry_columns, UpdateGeometrySRID,
+	* [r6597] postgis/postgis.sql.in.c: get rid of deprecated calls and
+	  checks to srid() and setsrid() and ndims() in
+	  populate_geometry_columns, UpdateGeometrySRID,
 	  probe_geometry_columns, find_srid
 
-2011-01-11 17:18  robe
+2011-01-11 17:18  Regina Obe <lr at pcorp.us>
 
-	* make relatematch a conditional GEOS 3.3 test
+	* [r6596] regress/Makefile.in: make relatematch a conditional GEOS
+	  3.3 test
 
-2011-01-11 15:53  robe
+2011-01-11 15:53  Regina Obe <lr at pcorp.us>
 
-	* Add another type, add missing element, update make check example
-	  in installation. Fix error introduced in regress that prevented
-	  all tests from running.
+	* [r6595] doc/extras_topology.xml, doc/installation.xml,
+	  regress/Makefile.in: Add another type, add missing element,
+	  update make check example in installation. Fix error introduced
+	  in regress that prevented all tests from running.
 
-2011-01-11 15:20  robe
+2011-01-11 15:20  Regina Obe <lr at pcorp.us>
 
-	* Give installation a pretty anchor name so can be referenced
-	  easily from elsewhere. Update to include how to compile with
-	  topology and raster support. Add a type section to topology to
-	  define structure of topogeometry etc. Ammend topology_comments to
-	  be able to extra type comments.
+	* [r6594] doc/extras_topology.xml, doc/installation.xml,
+	  doc/xsl/topology_comments.sql.xsl: Give installation a pretty
+	  anchor name so can be referenced easily from elsewhere. Update to
+	  include how to compile with topology and raster support. Add a
+	  type section to topology to define structure of topogeometry etc.
+	  Ammend topology_comments to be able to extra type comments.
 
-2011-01-11 09:12  robe
+2011-01-11 09:12  Regina Obe <lr at pcorp.us>
 
-	* #764: Topology error using ST_AddIsoNode (now that raster has an
-	  ST_Intersects it is now more necessary to not rely on auto casts)
+	* [r6593] topology/sql/sqlmm.sql: #764: Topology error using
+	  ST_AddIsoNode (now that raster has an ST_Intersects it is now
+	  more necessary to not rely on auto casts)
 
-2011-01-11 03:38  robe
+2011-01-11 03:38  Regina Obe <lr at pcorp.us>
 
-	* fix duplicate refentry id
+	* [r6592] doc/extras_topology.xml: fix duplicate refentry id
 
-2011-01-11 03:22  robe
+2011-01-11 03:22  Regina Obe <lr at pcorp.us>
 
-	* #763: documentation had wrong datatype for tg_type which made the
-	  associated comment break
+	* [r6591] doc/extras_topology.xml: #763: documentation had wrong
+	  datatype for tg_type which made the associated comment break
 
-2011-01-10 17:31  robe
+2011-01-10 17:31  Regina Obe <lr at pcorp.us>
 
-	* #760: missed some
+	* [r6590] topology/sql/sqlmm.sql: #760: missed some
 
-2011-01-10 17:27  robe
+2011-01-10 17:27  Regina Obe <lr at pcorp.us>
 
-	* #760: replace deprecated function names with new names so all
-	  regress tests pass again. This should completely work now.
+	* [r6589] topology/sql/populate.sql, topology/sql/sqlmm.sql: #760:
+	  replace deprecated function names with new names so all regress
+	  tests pass again. This should completely work now.
 
-2011-01-10 17:13  robe
+2011-01-10 17:13  Regina Obe <lr at pcorp.us>
 
-	* Start replacing deprecated names with new names - still more to
-	  do
+	* [r6588] topology/topology.sql.in.c: Start replacing deprecated
+	  names with new names - still more to do
 
-2011-01-10 16:36  robe
+2011-01-10 16:36  Regina Obe <lr at pcorp.us>
 
-	* #722: Get rid of more deprecated functions - mem_size, xmax,
-	  xmin,ymax, ymin,zmflag,zmax,zmin
+	* [r6587] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: #722:
+	  Get rid of more deprecated functions - mem_size, xmax, xmin,ymax,
+	  ymin,zmflag,zmax,zmin
 
-2011-01-10 14:21  jorgearevalo
+2011-01-10 14:21  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Deleted gserialized check. It's safe to use geometry_gist_sel.
-	  Related ticket #758.
+	* [r6586] raster/rt_pg/rtpostgis.sql.in.c: Deleted gserialized
+	  check. It's safe to use geometry_gist_sel. Related ticket #758.
 
-2011-01-09 18:38  robe
+2011-01-09 18:38  Regina Obe <lr at pcorp.us>
 
-	* Get rid of now unuseful note in ST_Value. Update
-	  short-description to reflect now works with geometry points
+	* [r6585] doc/reference_raster.xml: Get rid of now unuseful note in
+	  ST_Value. Update short-description to reflect now works with
+	  geometry points
 
-2011-01-09 16:01  jorgearevalo
+2011-01-09 16:01  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Replaced annoying warning message for a debug-only message.
-	  Related ticket #759.
+	* [r6584] raster/rt_core/rt_api.c: Replaced annoying warning
+	  message for a debug-only message. Related ticket #759.
 
-2011-01-08 10:51  nicklas
+2011-01-08 10:51  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* fix typo from r6580, and some enhanced notes
+	* [r6583] liblwgeom/measures3d.c: fix typo from r6580, and some
+	  enhanced notes
 
-2011-01-07 15:12  jorgearevalo
+2011-01-07 15:12  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Bug solved: RASTER_DEBUGf replaced by RASTER_DEBUGF. Related
-	  ticket #757.
+	* [r6582] raster/rt_core/rt_api.c: Bug solved: RASTER_DEBUGf
+	  replaced by RASTER_DEBUGF. Related ticket #757.
 
-2011-01-07 13:38  robe
+2011-01-07 13:38  Regina Obe <lr at pcorp.us>
 
-	* remove wmsservers_old so its failure doesn't halt further make
-	  check
+	* [r6581] regress/Makefile.in: remove wmsservers_old so its failure
+	  doesn't halt further make check
 
-2011-01-07 13:08  nicklas
+2011-01-07 13:08  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Fix for ticket #755
+	* [r6580] liblwgeom/measures3d.c: Fix for ticket #755
 
-2011-01-07 10:48  strk
+2011-01-07 10:48  Sandro Santilli <strk at keybit.net>
 
-	* Enlarge the diagram image, by Andrea Peri (#750)
+	* [r6579] topology/ER/topology.fig: Enlarge the diagram image, by
+	  Andrea Peri (#750)
 
-2011-01-07 09:55  strk
+2011-01-07 09:55  Sandro Santilli <strk at keybit.net>
 
-	* Fix bug in topology.DropTopology getting confused in presence of
-	  multiple topologies [RT-SIGTA]
+	* [r6578] topology/test/Makefile,
+	  topology/test/regress/droptopology.sql,
+	  topology/test/regress/droptopology_expected,
+	  topology/topology.sql.in.c: Fix bug in topology.DropTopology
+	  getting confused in presence of multiple topologies [RT-SIGTA]
 
-2011-01-07 09:54  strk
+2011-01-07 09:54  Sandro Santilli <strk at keybit.net>
 
-	* Add TopoElementArray_agg function, to help with TopoGeometry
-	  construction [RT-SIGTA]
+	* [r6577] topology/sql/topoelement,
+	  topology/sql/topoelement/topoelement_agg.sql,
+	  topology/test/Makefile,
+	  topology/test/regress/topoelementarray_agg.sql,
+	  topology/test/regress/topoelementarray_agg_expected,
+	  topology/topology.sql.in.c: Add TopoElementArray_agg function, to
+	  help with TopoGeometry construction [RT-SIGTA]
 
-2011-01-05 23:35  robe
+2011-01-05 23:35  Regina Obe <lr at pcorp.us>
 
-	* #722 : remove deprecated functions (part): contains,
-	  intersection, line_interpolate_point, line_locate_point,
+	* [r6576] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/sqlmm.sql.in.c: #722 : remove deprecated functions
+	  (part): contains, intersection, line_interpolate_point,
+	  line_locate_point,
 	  line_substring, locate_between_measures
 
-2011-01-05 22:25  robe
+2011-01-05 22:25  Regina Obe <lr at pcorp.us>
 
-	* #722 remove deprecated functions (part): boundary, GeomUnion,
-	  intersects, IsRing, IsSimple,
+	* [r6575] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/regress_buffer_params.sql, regress/snaptogrid.sql,
+	  regress/snaptogrid_expected: #722 remove deprecated functions
+	  (part): boundary, GeomUnion, intersects, IsRing, IsSimple,
 	  length2d_spheroid, locate_along_measure, relate,PointOnSurface,
 	  SnapToGrid, symmetricdifference, touches
 
-2011-01-05 17:41  jorgearevalo
+2011-01-05 17:41  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Replaced references to "pixsize" by "scale". Complete the
-	  previous commit.
+	* [r6574] raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_mapalgebra_optimized.sql: Replaced
+	  references to "pixsize" by "scale". Complete the previous commit.
 	  Related ticket #654
 
-2011-01-05 17:38  jorgearevalo
+2011-01-05 17:38  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Updated plpgsql scripts, replacing "PixelSize" with "Scale".
-	  Related ticket #654
+	* [r6573] raster/scripts/plpgsql/st_asraster.sql,
+	  raster/scripts/plpgsql/st_clip.sql,
+	  raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_mapalgebra_optimized.sql: Updated
+	  plpgsql scripts, replacing "PixelSize" with "Scale". Related
+	  ticket #654
 
-2011-01-05 17:01  jorgearevalo
+2011-01-05 17:01  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Call to ctx->warn replaced by RASTER_DEBUGF, to avoid annoying
-	  and unexpected messages in calls to st_bandmetadata.
+	* [r6572] raster/rt_core/rt_api.c: Call to ctx->warn replaced by
+	  RASTER_DEBUGF, to avoid annoying and unexpected messages in calls
+	  to st_bandmetadata.
 
-2011-01-05 14:56  robe
+2011-01-05 14:56  Regina Obe <lr at pcorp.us>
 
-	* #722 (part): Down with really really dumb constructors :)
+	* [r6571] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/regress_ogc.sql: #722 (part): Down with really really
+	  dumb constructors :)
 	  GeomCollFromText,LineFromText,LineFromWKB,LineStringFromText,LinestringFromWKB,LineMerge,MLineFromText
 	  ,MLineFromWKB,MPointFromText,MPolyFromWKB,MultiLineFromWKB,MultiLineStringFromText,MultiPointFromWKB,
 	  ST_Polygonize_GArray,PolyFromText,PolyFromWKB,PolygonFromWKB,PointFromText,PointFromWKB
 
-2011-01-05 13:47  robe
+2011-01-05 13:47  Regina Obe <lr at pcorp.us>
 
-	* more cleanup of operator functions that are now removed
+	* [r6570] postgis/uninstall_postgis.sql.in.c: more cleanup of
+	  operator functions that are now removed
 
-2011-01-05 13:36  robe
+2011-01-05 13:36  Regina Obe <lr at pcorp.us>
 
-	* remove related operator, chip no longer installed. I still think
-	  we need to get rid of the DROP CASCADES in this file
+	* [r6569] postgis/uninstall_postgis.sql.in.c: remove related
+	  operator, chip no longer installed. I still think we need to get
+	  rid of the DROP CASCADES in this file
 
-2011-01-05 13:34  robe
+2011-01-05 13:34  Regina Obe <lr at pcorp.us>
 
-	* #302: okay I forgot some - remove old functions that are ST_
-	  redundant copies of operator ones
+	* [r6568] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: #302:
+	  okay I forgot some - remove old functions that are ST_ redundant
+	  copies of operator ones
 	  st_geometry_lt,st_geometry_le,st_geometry_le,st_geometry_gt,st_geometry_ge,st_geometry_eq,st_geometry_cmp,
 	  postgis_gist_sel,postgis_gist_joinsel,st_postgis_gist_sel,st_postgis_gist_joinsel,st_geometry_overleft,
 	  st_geometry_overabove,st_geometry_left,st_geometry_right,st_geometry_above,
 	  st_geometry_below,st_geometry_contain
 	  ,st_geometry_contained,st_geometry_overlap,st_geometry_same
 
-2011-01-05 05:57  robe
+2011-01-05 05:57  Regina Obe <lr at pcorp.us>
 
-	* #302 completed I think: Drop ST_ duplicate variants of functions
+	* [r6567] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: #302
+	  completed I think: Drop ST_ duplicate variants of functions
 	  underneath TYPE and OPERATOR definitions.
 	  remove: st_geometry_analyze
 
-2011-01-04 17:44  robe
+2011-01-04 17:44  Regina Obe <lr at pcorp.us>
 
-	* #302 (part done): Drop ST_ duplicate variants of functions
-	  underneath TYPE and OPERATOR definitions.
+	* [r6566] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: #302
+	  (part done): Drop ST_ duplicate variants of functions underneath
+	  TYPE and OPERATOR definitions.
 	  st_box3d_in, st_box3d_out,st_spheroid_in,
 	  st_spheroid_out,st_geometry_in, st_geometry_out,
 	  st_geometry_recv,st_geometry_send
 
-2011-01-04 17:25  robe
+2011-01-04 17:25  Regina Obe <lr at pcorp.us>
 
-	* #722 - remove more deprecated functions - crosses,
+	* [r6565] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: #722 -
+	  remove more deprecated functions - crosses,
 	  within,multipointfromtext,mpolyfromtext,
 	  multipolygonfromtext
 
-2011-01-04 13:59  robe
+2011-01-04 13:59  Regina Obe <lr at pcorp.us>
 
-	* remove deprecated functions:
+	* [r6564] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/ctors.sql: remove deprecated functions:
 	  bdpolyfromtext,bdmpolyfromtext,collect,disjoint,memcollect,memgeomunion,
 	  unite_garray,st_unit_garray .
 	  reshuffle legacy.sql.in.c so aggregates and dependencies are
 	  together
 
-2011-01-04 13:35  robe
+2011-01-04 13:35  Regina Obe <lr at pcorp.us>
 
-	* remove more deprecated: dimension,exteriorring,
-	  geometryn,interiorringn, isempty,isclosed,
+	* [r6563] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/regress_ogc.sql: remove more deprecated:
+	  dimension,exteriorring, geometryn,interiorringn,
+	  isempty,isclosed,
 	  m,numinteriorring, numinteriorrings,pointn,x,y,z
 
-2011-01-04 13:07  robe
+2011-01-04 13:07  Regina Obe <lr at pcorp.us>
 
-	* remove deprecated functions:
+	* [r6562] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: remove
+	  deprecated functions:
 	  addpoint,ndims,numgeometries,numpoints,removepoint,setpoint
 
-2011-01-04 12:51  robe
+2011-01-04 12:51  Regina Obe <lr at pcorp.us>
 
-	* remove more deprecated functions
+	* [r6561] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/sql-mm-circularstring.sql: remove more deprecated
+	  functions
 
-2011-01-03 19:26  robe
+2011-01-03 19:26  Regina Obe <lr at pcorp.us>
 
-	* get rid of more deprecated functions
+	* [r6560] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected: get rid of more deprecated
+	  functions
 
-2011-01-03 18:52  robe
+2011-01-03 18:52  Regina Obe <lr at pcorp.us>
 
-	* remove more deprecated functions
+	* [r6559] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/ctors.sql: remove more deprecated functions
 
-2011-01-03 18:24  robe
+2011-01-03 18:24  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6558] regress/wmsservers_new_expected,
+	  regress/wmsservers_old_expected:
 
-2011-01-03 16:35  jorgearevalo
+2011-01-03 16:35  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Deleted old flex/bison analyzer for MapAlgebra. Newer version on
-	  raster/rt_core.
+	* [r6557] raster/ma_lexer.l, raster/ma_lexer_only.l,
+	  raster/ma_parser.y: Deleted old flex/bison analyzer for
+	  MapAlgebra. Newer version on raster/rt_core.
 
-2011-01-03 16:17  jorgearevalo
+2011-01-03 16:17  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added regress test files for ST_IsEmpty and ST_HasNoBand (they
-	  were missed in previous commit)
+	* [r6556] raster/test/regress/Makefile.in,
+	  raster/test/regress/create_rt_empty_raster_test.sql,
+	  raster/test/regress/create_rt_empty_raster_test_expected,
+	  raster/test/regress/rt_hasnoband.sql,
+	  raster/test/regress/rt_hasnoband_expected,
+	  raster/test/regress/rt_isempty.sql,
+	  raster/test/regress/rt_isempty_expected: Added regress test files
+	  for ST_IsEmpty and ST_HasNoBand (they were missed in previous
+	  commit)
 
-2011-01-03 16:07  jorgearevalo
+2011-01-03 16:07  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added code for ST_IsEmpty and ST_HasNoBand functions. And test
+	* [r6555] raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/regress/Makefile.in:
+	  Added code for ST_IsEmpty and ST_HasNoBand functions. And test
 	  code for the
 	  first one. Related tickets #592, #593.
 
-2011-01-03 11:53  jorgearevalo
+2011-01-03 11:53  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Changed information return by postgis_raster_build_date and
+	* [r6554] raster/rt_pg/rt_pg.c: Changed information return by
+	  postgis_raster_build_date and
 	  postgis_raster_lib_version, to match the PostGIS build date and
 	  version. Related
 	  ticket #653
 
-2011-01-03 10:55  jorgearevalo
+2011-01-03 10:55  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Raster doc updated with the new names of several functions
-	  (Box2D, Scale, etc).
+	* [r6553] doc/reference_raster.xml: Raster doc updated with the new
+	  names of several functions (Box2D, Scale, etc).
 	  Related ticket #654
 
-2011-01-03 10:46  jorgearevalo
+2011-01-03 10:46  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Renamed accessors and editors of 'PixelSize' to 'Scale',
-	  including tests.
+	* [r6552] raster/rt_core/ma_lexer.l, raster/rt_core/ma_parser.y,
+	  raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c, raster/test/core/testwkb.c,
+	  raster/test/regress/Makefile.in,
+	  raster/test/regress/rt_box2d.sql,
+	  raster/test/regress/rt_georeference.sql,
+	  raster/test/regress/rt_pixelsize.sql,
+	  raster/test/regress/rt_pixelsize_expected,
+	  raster/test/regress/rt_scale.sql,
+	  raster/test/regress/rt_scale_expected,
+	  raster/test/regress/rt_set_properties.sql: Renamed accessors and
+	  editors of 'PixelSize' to 'Scale', including tests.
 	  Related ticket #654.
 
-2011-01-02 22:21  jorgearevalo
+2011-01-02 22:21  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Some modifications made on basic MapAlgebra lexer/parser. Very
+	* [r6551] raster/rt_core/ma_lexer.l, raster/rt_core/ma_parser.y:
+	  Some modifications made on basic MapAlgebra lexer/parser. Very
 	  basic version just now.
 
-2011-01-01 15:35  jorgearevalo
+2011-01-01 15:35  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Temporarily include postgis/gserialized.h file in
-	  raster/rt_pg/rtpostgis.sql.in.c to get access to GSERIALIZED_ON
-	  and avoid error with gserialized enabled
+	* [r6550] raster/rt_pg/rtpostgis.sql.in.c: Temporarily include
+	  postgis/gserialized.h file in raster/rt_pg/rtpostgis.sql.in.c to
+	  get access to GSERIALIZED_ON and avoid error with gserialized
+	  enabled
 
-2010-12-31 08:12  robe
+2010-12-31 08:12  Regina Obe <lr at pcorp.us>
 
-	* add gist index overlap tests
+	* [r6549] doc/xsl/postgis_gardentest.sql.xsl: add gist index
+	  overlap tests
 
-2010-12-31 01:53  robe
+2010-12-31 01:53  Regina Obe <lr at pcorp.us>
 
-	* update bios
+	* [r6548] doc/introduction.xml: update bios
 
-2010-12-30 23:28  jorgearevalo
+2010-12-30 23:28  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Changed some functions names for operators. Related tickets #742,
-	  #730
+	* [r6547] raster/rt_pg/rtpostgis.sql.in.c: Changed some functions
+	  names for operators. Related tickets #742, #730
 
-2010-12-30 23:17  pramsey
+2010-12-30 23:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* gserialized enabled ST_Reverse LINESTRING EMPTY crash (#743)
+	* [r6546] liblwgeom/lwline.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwtriangle.c: gserialized enabled ST_Reverse LINESTRING
+	  EMPTY crash (#743)
 
-2010-12-30 21:00  pramsey
+2010-12-30 21:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Convex hull serialization problem (#741)
+	* [r6545] postgis/lwgeom_geos.c: Convex hull serialization problem
+	  (#741)
 
-2010-12-30 18:31  nicklas
+2010-12-30 18:31  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* rounding precision difference in measures regress test #703,
-	  #735, #607
+	* [r6543] regress/measures.sql, regress/measures_expected: rounding
+	  precision difference in measures regress test #703, #735, #607
 
-2010-12-30 16:54  pramsey
+2010-12-30 16:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Guard against empty in isclosed (#740)
+	* [r6542] liblwgeom/lwgeom.c: Guard against empty in isclosed
+	  (#740)
 
-2010-12-30 00:14  pramsey
+2010-12-30 00:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in gserialized-ready selectivity functions for 2d default
-	  index.
+	* [r6540] postgis/Makefile.in, postgis/geography.sql.in.c,
+	  postgis/geometry_gist_selectivity.c, postgis/lwgeom_estimate.c,
+	  postgis/postgis.sql.in.c: Add in gserialized-ready selectivity
+	  functions for 2d default index.
 
-2010-12-29 18:51  pramsey
+2010-12-29 18:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_ExteriorRing POLYGON EMPTY crash (#708)
+	* [r6538] postgis/lwgeom_ogc.c: ST_ExteriorRing POLYGON EMPTY crash
+	  (#708)
 
-2010-12-29 15:49  nicklas
+2010-12-29 15:49  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* typo in comment
+	* [r6537] liblwgeom/measures3d.h: typo in comment
 
-2010-12-29 15:38  robe
+2010-12-29 15:38  Regina Obe <lr at pcorp.us>
 
-	* Get rid of a lot of deprecated functions. People will hate me
-	  c'est la vie.
+	* [r6536] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: Get
+	  rid of a lot of deprecated functions. People will hate me c'est
+	  la vie.
 
-2010-12-29 15:37  robe
+2010-12-29 15:37  Regina Obe <lr at pcorp.us>
 
-	* get rid of more deprecated calls, but keep old deprecated
-	  wmsservers and rename to wmsservers_old. Create a new version
-	  wmsservers_new that doesn't use deprecated calls. the old will
-	  fail once I pull the switch on old deprecated calls, but the new
-	  should work.
+	* [r6535] regress/Makefile.in, regress/sql-mm-multisurface.sql,
+	  regress/sql-mm-multisurface_expected, regress/wmsservers.sql,
+	  regress/wmsservers_expected, regress/wmsservers_new.sql,
+	  regress/wmsservers_new_expected, regress/wmsservers_old.sql,
+	  regress/wmsservers_old_expected: get rid of more deprecated
+	  calls, but keep old deprecated wmsservers and rename to
+	  wmsservers_old. Create a new version wmsservers_new that doesn't
+	  use deprecated calls. the old will fail once I pull the switch on
+	  old deprecated calls, but the new should work.
 
-2010-12-29 15:17  robe
+2010-12-29 15:17  Regina Obe <lr at pcorp.us>
 
-	* remove deprecated tests
+	* [r6534] regress/sql-mm-multicurve.sql,
+	  regress/sql-mm-multicurve_expected: remove deprecated tests
 
-2010-12-29 14:50  robe
+2010-12-29 14:50  Regina Obe <lr at pcorp.us>
 
-	* forgot these
+	* [r6533] regress/lwgeom_regress_expected, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected: forgot these
 
-2010-12-29 14:48  robe
+2010-12-29 14:48  Regina Obe <lr at pcorp.us>
 
-	* get rid of more deprecated
+	* [r6532] regress/loader/MultiPointM-wkt.sql,
+	  regress/loader/PointZ-wkb.sql, regress/loader/Polygon-wkt.sql,
+	  regress/loader/PolygonM-wkb.sql, regress/loader/PolygonM-wkt.sql,
+	  regress/loader/PolygonZ-wkb.sql, regress/loader/PolygonZ-wkt.sql,
+	  regress/lwgeom_regress.sql, regress/regress_proj.sql,
+	  regress/regress_proj_expected, regress/sql-mm-curvepoly.sql,
+	  regress/sql-mm-curvepoly_expected: get rid of more deprecated
 
-2010-12-29 14:14  robe
+2010-12-29 14:14  Regina Obe <lr at pcorp.us>
 
-	* Get rid of more deprecated calls
+	* [r6531] regress/affine.sql, regress/affine_expected,
+	  regress/ctors.sql, regress/ctors_expected,
+	  regress/regress_ogc.sql, regress/regress_ogc_expected,
+	  regress/removepoint.sql, regress/removepoint_expected,
+	  regress/setpoint.sql, regress/setpoint_expected,
+	  regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve.sql: Get rid of more deprecated
+	  calls
 
-2010-12-29 14:07  pramsey
+2010-12-29 14:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update test to reflect that polygons are now supported.
+	* [r6530] regress/measures.sql, regress/measures_expected: Update
+	  test to reflect that polygons are now supported.
 
-2010-12-29 09:58  robe
+2010-12-29 09:58  Regina Obe <lr at pcorp.us>
 
-	* start new section
+	* [r6529] doc/extras_topology.xml: start new section
 
-2010-12-28 22:12  nicklas
+2010-12-28 22:12  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* 3D distance functions against polygons
+	* [r6528] liblwgeom/measures3d.c, liblwgeom/measures3d.h: 3D
+	  distance functions against polygons
 
-2010-12-28 21:58  robe
+2010-12-28 21:58  Regina Obe <lr at pcorp.us>
 
-	* fix dangling RT_ST_Box2D references
+	* [r6527] doc/reference_raster.xml: fix dangling RT_ST_Box2D
+	  references
 
-2010-12-28 18:24  robe
+2010-12-28 18:24  Regina Obe <lr at pcorp.us>
 
-	* Get rid of deprecated calls
+	* [r6526] regress/loader/Arc-wkb.sql, regress/loader/Arc-wkt.sql,
+	  regress/loader/ArcM-wkb.sql, regress/loader/ArcM-wkt.sql,
+	  regress/loader/MultiPoint-wkb.sql,
+	  regress/loader/MultiPoint-wkt.sql,
+	  regress/loader/MultiPointM-wkb.sql,
+	  regress/loader/MultiPointZ-wkb.sql,
+	  regress/loader/MultiPointZ-wkt.sql, regress/loader/Point-wkb.sql,
+	  regress/loader/Point-wkt.sql, regress/loader/PointM-wkb.sql,
+	  regress/loader/PointM-wkt.sql, regress/loader/PointZ-wkt.sql,
+	  regress/loader/Polygon-wkb.sql: Get rid of deprecated calls
 
-2010-12-28 18:24  robe
+2010-12-28 18:24  Regina Obe <lr at pcorp.us>
 
-	* get rid of deprecated calls
+	* [r6525] regress/regress_bdpoly.sql,
+	  regress/regress_bdpoly_expected: get rid of deprecated calls
 
-2010-12-28 18:22  robe
+2010-12-28 18:22  Regina Obe <lr at pcorp.us>
 
-	* start getting rid of deprecated calls
+	* [r6524] loader/pgsql2shp-core.c, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c: start getting rid of deprecated calls
 
-2010-12-28 18:00  pramsey
+2010-12-28 18:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix regression failure in standard serialization mode. (#735)
+	* [r6523] liblwgeom/g_box.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix regression failure in standard
+	  serialization mode. (#735)
 
-2010-12-28 17:16  strk
+2010-12-28 17:16  Sandro Santilli <strk at keybit.net>
 
-	* Default topology tolerance is 0, not -1
+	* [r6522] topology/topology.sql.in.c: Default topology tolerance is
+	  0, not -1
 
-2010-12-28 15:47  robe
+2010-12-28 15:47  Regina Obe <lr at pcorp.us>
 
-	* reenable ST_AddPoint
+	* [r6521] doc/xsl/postgis_gardentest.sql.xsl: reenable ST_AddPoint
 
-2010-12-28 01:10  pramsey
+2010-12-28 01:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Over-determined dimensionality in building line from lwptarray
+	* [r6520] liblwgeom/lwline.c: Over-determined dimensionality in
+	  building line from lwptarray
 
-2010-12-28 00:54  pramsey
+2010-12-28 00:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Whoops, senses of many 2d operators were reversed.
+	* [r6519] postgis/geography.sql.in.c, postgis/geography_gist.c:
+	  Whoops, senses of many 2d operators were reversed.
 
-2010-12-28 00:42  robe
+2010-12-28 00:42  Regina Obe <lr at pcorp.us>
 
-	* miscellaneous fixes and indentation
+	* [r6518] doc/extras_topology.xml: miscellaneous fixes and
+	  indentation
 
-2010-12-28 00:27  pramsey
+2010-12-28 00:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* T_Distance_Spheroid is kinda broken (#677)
+	* [r6517] regress/tickets.sql, regress/tickets_expected:
+	  T_Distance_Spheroid is kinda broken (#677)
 
-2010-12-28 00:24  pramsey
+2010-12-28 00:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Distance_Spheroid is kinda broken (#677)
+	* [r6516] liblwgeom/g_box.c, liblwgeom/lwgeodetic.c,
+	  postgis/lwgeom_spheroid.c: ST_Distance_Spheroid is kinda broken
+	  (#677)
 
-2010-12-27 22:41  pramsey
+2010-12-27 22:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_MakeLine aggregate function crashes with empty geometries
-	  (#729)
+	* [r6515] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwline.c, postgis/lwgeom_functions_basic.c,
+	  regress/tickets.sql, regress/tickets_expected: ST_MakeLine
+	  aggregate function crashes with empty geometries (#729)
 
-2010-12-27 11:56  strk
+2010-12-27 11:56  Sandro Santilli <strk at keybit.net>
 
-	* PG_CONFIG seems to be needed for PGXS
+	* [r6514] topology/Makefile.in: PG_CONFIG seems to be needed for
+	  PGXS
 
-2010-12-27 11:10  strk
+2010-12-27 11:10  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_SharedPaths and ST_Snap items
+	* [r6513] NEWS: Add ST_SharedPaths and ST_Snap items
 
-2010-12-27 11:05  strk
+2010-12-27 11:05  Sandro Santilli <strk at keybit.net>
 
-	* Do not consider DEBUG and NOTICE mesages when running sqlmm
-	  regression tests. Should fix #734.
+	* [r6512] topology/test/regress/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected: Do not consider DEBUG and
+	  NOTICE mesages when running sqlmm regression tests. Should fix
+	  #734.
 
-2010-12-27 03:38  robe
+2010-12-27 03:38  Regina Obe <lr at pcorp.us>
 
-	* ST_Box2D -> Box2D
+	* [r6511] doc/reference_raster.xml: ST_Box2D -> Box2D
 
-2010-12-27 01:40  robe
+2010-12-27 01:40  Regina Obe <lr at pcorp.us>
 
-	* get rid of more functions
+	* [r6510] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c: get
+	  rid of more functions
 
-2010-12-26 19:27  robe
+2010-12-26 19:27  Regina Obe <lr at pcorp.us>
 
-	* revise to include mention of topology support
+	* [r6509] doc/xsl/postgis_aggs_mm.xml.xsl: revise to include
+	  mention of topology support
 
-2010-12-26 19:11  robe
+2010-12-26 19:11  Regina Obe <lr at pcorp.us>
 
-	* fix tag typo pointed out by strk
+	* [r6507] doc/using_postgis_dataman.xml: fix tag typo pointed out
+	  by strk
 
-2010-12-26 18:47  robe
+2010-12-26 18:47  Regina Obe <lr at pcorp.us>
 
-	* put AddTopo.. example in programlisting tag, minior indenting
-	  changes
+	* [r6506] doc/extras_topology.xml: put AddTopo.. example in
+	  programlisting tag, minior indenting changes
 
-2010-12-26 13:24  jorgearevalo
+2010-12-26 13:24  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* ST_Box2D replaced by Box2D. Related ticket #730.
+	* [r6505] raster/rt_pg/rtpostgis.sql.in.c: ST_Box2D replaced by
+	  Box2D. Related ticket #730.
 
-2010-12-25 19:38  robe
+2010-12-25 19:38  Regina Obe <lr at pcorp.us>
 
-	* DropTopogeometryColumn
+	* [r6504] doc/extras_topology.xml: DropTopogeometryColumn
 
-2010-12-25 19:02  robe
+2010-12-25 19:02  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6503] doc/extras_topology.xml:
 
-2010-12-25 18:58  robe
+2010-12-25 18:58  Regina Obe <lr at pcorp.us>
 
-	* Example for addtopogeometrycolumn
+	* [r6502] doc/extras_topology.xml: Example for
+	  addtopogeometrycolumn
 
-2010-12-24 22:08  pramsey
+2010-12-24 22:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change default gserialized gist index to 2d and put all the old
+	* [r6501] postgis/geography.sql.in.c, postgis/geography_gist.c:
+	  Change default gserialized gist index to 2d and put all the old
 	  operators back in place.
 
-2010-12-24 18:13  robe
+2010-12-24 18:13  Regina Obe <lr at pcorp.us>
 
-	* fix data type mismatches that got flagged when generating
-	  topology comments, put in a set_path clause for topology comments
-	  generation
+	* [r6500] doc/extras_topology.xml,
+	  doc/xsl/topology_comments.sql.xsl: fix data type mismatches that
+	  got flagged when generating topology comments, put in a set_path
+	  clause for topology comments generation
 
-2010-12-24 18:01  robe
+2010-12-24 18:01  Regina Obe <lr at pcorp.us>
 
-	* Start work on topology database help and garden tester.
+	* [r6499] doc/xsl/topology_comments.sql.xsl,
+	  doc/xsl/topology_gardentest.sql.xsl: Start work on topology
+	  database help and garden tester.
 
-2010-12-24 17:53  robe
+2010-12-24 17:53  Regina Obe <lr at pcorp.us>
 
-	* AddTopoGeometryColumn
+	* [r6498] doc/extras_topology.xml: AddTopoGeometryColumn
 
-2010-12-24 10:22  strk
+2010-12-24 10:22  Sandro Santilli <strk at keybit.net>
 
-	* Update with some integrations provided by Andrea Peri [RT-SIGTA]
+	* [r6497] topology/README: Update with some integrations provided
+	  by Andrea Peri [RT-SIGTA]
 
-2010-12-24 01:38  robe
+2010-12-24 01:38  Regina Obe <lr at pcorp.us>
 
-	* Fix for #732 - chip does not exist
+	* [r6496] postgis/postgis_drop.sql.in.c: Fix for #732 - chip does
+	  not exist
 
-2010-12-23 22:49  pramsey
+2010-12-23 22:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add more tickets tests up to #700
+	* [r6495] regress/tickets.sql, regress/tickets_expected: Add more
+	  tickets tests up to #700
 
-2010-12-23 22:06  pramsey
+2010-12-23 22:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix conversion to geometry (#730)
+	* [r6494] raster/rt_pg/rt_pg.c, raster/rt_pg/rt_pg.h: Fix
+	  conversion to geometry (#730)
 
-2010-12-23 19:06  pramsey
+2010-12-23 19:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some tickets from the trac into regression
+	* [r6493] regress/tickets.sql, regress/tickets_expected: Add some
+	  tickets from the trac into regression
 
-2010-12-23 18:05  pramsey
+2010-12-23 18:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move clone prototypes back into public...
+	* [r6492] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h:
+	  Move clone prototypes back into public...
 
-2010-12-23 18:03  pramsey
+2010-12-23 18:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_AddPoint is broken (#662)
+	* [r6491] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeom.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpoly.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_basic.c: ST_AddPoint is broken (#662)
 
-2010-12-23 17:41  robe
+2010-12-23 17:41  Regina Obe <lr at pcorp.us>
 
-	* ability to exclude operators from testing
+	* [r6490] doc/xsl/postgis_gardentest.sql.xsl: ability to exclude
+	  operators from testing
 
-2010-12-23 17:30  strk
+2010-12-23 17:30  Sandro Santilli <strk at keybit.net>
 
-	* Other CREATEFUNCTION and _VOLATILE* gone (see #714)
+	* [r6489] topology/topology.sql.in.c: Other CREATEFUNCTION and
+	  _VOLATILE* gone (see #714)
 
-2010-12-23 17:21  robe
+2010-12-23 17:21  Regina Obe <lr at pcorp.us>
 
-	* log more sql
+	* [r6488] doc/xsl/raster_gardentest.sql.xsl: log more sql
 
-2010-12-23 17:04  pramsey
+2010-12-23 17:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_MakeBox2D crashes with LINESTRING (#728)
+	* [r6487] postgis/lwgeom_box2dfloat4.c: ST_MakeBox2D crashes with
+	  LINESTRING (#728)
 
-2010-12-23 14:19  strk
+2010-12-23 14:19  Sandro Santilli <strk at keybit.net>
 
-	* Stop relying on preprocessor for CREATEFUNCTION and _VOLATILE
-	  (see #714)
+	* [r6486] topology/sql/sqlmm.sql: Stop relying on preprocessor for
+	  CREATEFUNCTION and _VOLATILE (see #714)
 
-2010-12-23 13:31  robe
+2010-12-23 13:31  Regina Obe <lr at pcorp.us>
 
-	* miss end para
+	* [r6485] doc/reference_measure.xml: miss end para
 
-2010-12-23 12:49  strk
+2010-12-23 12:49  Sandro Santilli <strk at keybit.net>
 
-	* Make ST_GetFaceGeometry use ST_BuildArea rather than assuming
-	  first polygon coming out of Polygonize will be the correct one.
-	  Fixes ticket #726. Enables automated testing for it.
+	* [r6484] topology/sql/sqlmm.sql, topology/test/Makefile,
+	  topology/test/regress/st_getfacegeometry.sql,
+	  topology/test/regress/st_getfacegeometry_expected: Make
+	  ST_GetFaceGeometry use ST_BuildArea rather than assuming first
+	  polygon coming out of Polygonize will be the correct one. Fixes
+	  ticket #726. Enables automated testing for it.
 
-2010-12-23 12:28  strk
+2010-12-23 12:28  Sandro Santilli <strk at keybit.net>
 
-	* Add test showing bug in st_getfacegeometry
+	* [r6483] topology/test/regress/st_getfacegeometry.sql: Add test
+	  showing bug in st_getfacegeometry
 
-2010-12-23 07:57  strk
+2010-12-23 07:57  Sandro Santilli <strk at keybit.net>
 
-	* more git ignores
+	* [r6482] .gitignore: more git ignores
 
-2010-12-22 22:40  pramsey
+2010-12-22 22:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Last regression fixes for postgis-on-gserialized
+	* [r6481] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_api.c,
+	  postgis/lwgeom_box2dfloat4.c, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c: Last regression fixes for
+	  postgis-on-gserialized
 
-2010-12-22 21:16  pramsey
+2010-12-22 21:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change srid from uint32 to int32 and update gserialized and
-	  TYPMOD handlers to deal with signed SRIDs
+	* [r6480] liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_serialized.c,
+	  liblwgeom/g_serialized.txt, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_rtree.c,
+	  postgis/lwgeom_rtree.h: Change srid from uint32 to int32 and
+	  update gserialized and TYPMOD handlers to deal with signed SRIDs
 
-2010-12-22 20:02  robe
+2010-12-22 20:02  Regina Obe <lr at pcorp.us>
 
-	* miscellaneous
+	* [r6479] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/measures.sql: miscellaneous
 
-2010-12-22 19:41  robe
+2010-12-22 19:41  Regina Obe <lr at pcorp.us>
 
-	* Goodbye length
+	* [r6478] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/measures.sql: Goodbye length
 
-2010-12-22 19:15  robe
+2010-12-22 19:15  Regina Obe <lr at pcorp.us>
 
-	* Good bye simplify
+	* [r6477] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/simplify.sql, regress/simplify_expected: Good bye
+	  simplify
 
-2010-12-22 19:04  robe
+2010-12-22 19:04  Regina Obe <lr at pcorp.us>
 
-	* History #515: good bye chip (we can hold on to the dependency
+	* [r6476] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c:
+	  History #515: good bye chip (we can hold on to the dependency
 	  functions thru postgis 2.0 and then maybe completely rid in 2.1)
 
-2010-12-22 18:59  jorgearevalo
+2010-12-22 18:59  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Basic flex/bison grammar to start working with raster MapAlgebra
+	* [r6475] raster/ma_lexer.l, raster/ma_parser.y: Basic flex/bison
+	  grammar to start working with raster MapAlgebra
 
-2010-12-22 18:45  strk
+2010-12-22 18:45  Sandro Santilli <strk at keybit.net>
 
-	* Support faces with all edges on the same side, and test
-	  [RT-SIGTA]
+	* [r6474] topology/sql/populate.sql,
+	  topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected: Support faces with all
+	  edges on the same side, and test [RT-SIGTA]
 
-2010-12-22 18:42  robe
+2010-12-22 18:42  Regina Obe <lr at pcorp.us>
 
-	* get rid of addbbox,dropbbox,hasbbox (and replace occurrences in
-	  regress with newer postgis_addbbox etc)
+	* [r6473] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/regress.sql: get rid of addbbox,dropbbox,hasbbox (and
+	  replace occurrences in regress with newer postgis_addbbox etc)
 
-2010-12-22 18:24  strk
+2010-12-22 18:24  Sandro Santilli <strk at keybit.net>
 
-	* Add rules to avoid the infinite loop took before ./configure is
-	  run
+	* [r6472] Makefile: Add rules to avoid the infinite loop took
+	  before ./configure is run
 
-2010-12-22 17:27  strk
+2010-12-22 17:27  Sandro Santilli <strk at keybit.net>
 
-	* Implement topology.AddFace and add test
+	* [r6471] topology/sql/populate.sql, topology/test/Makefile,
+	  topology/test/regress/addface.sql,
+	  topology/test/regress/addface_expected: Implement
+	  topology.AddFace and add test
 
-2010-12-22 17:08  robe
+2010-12-22 17:08  Regina Obe <lr at pcorp.us>
 
-	* move all deprecated Affine functoins to legach.sql.in.c, remove
-	  use in non-deprecated functions and in regress tests
+	* [r6470] postgis/legacy.sql.in.c, postgis/postgis.sql.in.c,
+	  regress/affine.sql, regress/affine_expected,
+	  regress/measures.sql: move all deprecated Affine functoins to
+	  legach.sql.in.c, remove use in non-deprecated functions and in
+	  regress tests
 
-2010-12-22 06:17  pramsey
+2010-12-22 06:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add legacy file for removed-but-not-forgotten old function
-	  aliases
+	* [r6469] postgis/legacy.sql.in.c: Add legacy file for
+	  removed-but-not-forgotten old function aliases
 
-2010-12-22 01:08  pramsey
+2010-12-22 01:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Continue working GSERIALIZED_ON into the code base. Working on
+	* [r6468] liblwgeom/liblwgeom.h, liblwgeom/lwpoint.c,
+	  liblwgeom/measures.c, liblwgeom/measures3d.c,
+	  postgis/geography_measurement.c, postgis/lwgeom_box2dfloat4.c,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in.c:
+	  Continue working GSERIALIZED_ON into the code base. Working on
 	  switching BOX2DFLOAT4 to a GBOX
 
-2010-12-21 23:56  pramsey
+2010-12-21 23:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove some ST_ variants of cast-support functions (#302), and
-	  start legacy.sql.in.c (#722)
+	* [r6467] liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcollection.c, liblwgeom/lwpoly.c,
+	  liblwgeom/ptarray.c, postgis/geography_gist.c,
+	  postgis/gserialized.h, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_pg.c, postgis/lwgeom_pg.h,
+	  postgis/postgis.sql.in.c, postgis/postgis_drop.sql.in.c,
+	  regress/affine.sql, regress/lwgeom_regress.sql,
+	  regress/regress.sql, regress/regress_expected,
+	  regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-multisurface.sql: Remove some ST_ variants of
+	  cast-support functions (#302), and start legacy.sql.in.c (#722)
 
-2010-12-21 22:19  robe
+2010-12-21 22:19  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6466] doc/using_postgis_dataman.xml: fix typo
 
-2010-12-21 22:14  robe
+2010-12-21 22:14  Regina Obe <lr at pcorp.us>
 
-	* point relation functions to DE-9IM section of docs for more info
+	* [r6464] doc/reference_measure.xml, doc/using_postgis_dataman.xml:
+	  point relation functions to DE-9IM section of docs for more info
 
-2010-12-21 21:39  pramsey
+2010-12-21 21:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More clean-up and work on using gserialized.
+	* [r6463] liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, postgis/geography.h,
+	  postgis/geography_gist.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_pg.c: More clean-up and work on using gserialized.
 
-2010-12-21 18:01  pramsey
+2010-12-21 18:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Push the UNKNOWN forcing down into gserialized get/set
+	* [r6462] liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_serialized.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwhomogenize.c: Push the UNKNOWN
+	  forcing down into gserialized get/set
 
-2010-12-21 17:38  robe
+2010-12-21 17:38  Regina Obe <lr at pcorp.us>
 
-	* Document ST_RelateMatch -- polish up later
+	* [r6461] doc/extras_topology.xml, doc/postgis.xml,
+	  doc/reference_measure.xml: Document ST_RelateMatch -- polish up
+	  later
 
-2010-12-21 17:36  strk
+2010-12-21 17:36  Sandro Santilli <strk at keybit.net>
 
-	* Don't release memory associated with arguments. Fixes #725.
+	* [r6460] postgis/lwgeom_geos_relatematch.c: Don't release memory
+	  associated with arguments. Fixes #725.
 
-2010-12-21 10:32  strk
+2010-12-21 10:32  Sandro Santilli <strk at keybit.net>
 
-	* Implement ST_RelateMatch, see ticket #717. [RT-SIGTA]
+	* [r6459] postgis/Makefile.in, postgis/lwgeom_geos_relatematch.c,
+	  postgis/postgis.sql.in.c, regress/Makefile.in,
+	  regress/relatematch.sql, regress/relatematch_expected: Implement
+	  ST_RelateMatch, see ticket #717. [RT-SIGTA]
 
-2010-12-21 01:55  pramsey
+2010-12-21 01:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Some preliminary fixes to support SRID_UNKNOWN == 0
+	* [r6458] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_surface.c, liblwgeom/lwhomogenize.c,
+	  liblwgeom/lwin_wkb.c: Some preliminary fixes to support
+	  SRID_UNKNOWN == 0
 
-2010-12-20 23:34  pramsey
+2010-12-20 23:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add regression test for #723
+	* [r6457] regress/tickets.sql, regress/tickets_expected: Add
+	  regression test for #723
 
-2010-12-20 22:01  strk
+2010-12-20 22:01  Sandro Santilli <strk at keybit.net>
 
-	* Fix addEdge when both endpoints are shared with an existing edge
-	  (and test) [RT-SIGTA]
+	* [r6456] topology/sql/populate.sql,
+	  topology/test/regress/addedge.sql,
+	  topology/test/regress/addedge_expected: Fix addEdge when both
+	  endpoints are shared with an existing edge (and test) [RT-SIGTA]
 
-2010-12-20 19:41  pramsey
+2010-12-20 19:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix last regression break in casting
+	* [r6455] postgis/geography_inout.c: Fix last regression break in
+	  casting
 
-2010-12-20 19:31  pramsey
+2010-12-20 19:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Arg, there's regression breaks in the last commit!
+	* [r6454] liblwgeom/g_box.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_transform.c: Arg, there's regression breaks in the
+	  last commit!
 
-2010-12-20 19:16  pramsey
+2010-12-20 19:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Intersection for geography is really messed up (#723)
+	* [r6453] liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, postgis/geography_gist.c: ST_Intersection for
+	  geography is really messed up (#723)
 
-2010-12-20 12:03  robe
+2010-12-20 12:03  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6452] doc/xsl/postgis_gardentest.sql.xsl: fix typo
 
-2010-12-20 04:39  pramsey
+2010-12-20 04:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove a few more old constructions in favour of
-	  forward-compatible approaches.
+	* [r6450] liblwgeom/g_box.c, liblwgeom/liblwgeom.h,
+	  postgis/lwgeom_box3d.c, postgis/lwgeom_functions_basic.c: Remove
+	  a few more old constructions in favour of forward-compatible
+	  approaches.
 
-2010-12-18 21:48  robe
+2010-12-18 21:48  Regina Obe <lr at pcorp.us>
 
-	* fix spatial_class update
+	* [r6448] doc/xsl/postgis_gardentest.sql.xsl: fix spatial_class
+	  update
 
-2010-12-18 16:44  pramsey
+2010-12-18 16:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add the operators to the index opclass too
+	* [r6447] postgis/geography.sql.in.c: Add the operators to the
+	  index opclass too
 
-2010-12-18 16:42  pramsey
+2010-12-18 16:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some operators to indexes on gserialized
+	* [r6446] postgis/geography.sql.in.c, postgis/geography_gist.c,
+	  postgis/postgis.sql.in.c: Add some operators to indexes on
+	  gserialized
 
-2010-12-18 15:31  pramsey
+2010-12-18 15:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in test for #720
+	* [r6445] regress/tickets.sql, regress/tickets_expected: Add in
+	  test for #720
 
-2010-12-18 15:27  pramsey
+2010-12-18 15:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Transform is broken for all MULTI geometries (#720), wonder
-	  how that got through...
+	* [r6444] postgis/lwgeom_transform.c: ST_Transform is broken for
+	  all MULTI geometries (#720), wonder how that got through...
 
-2010-12-18 05:06  pramsey
+2010-12-18 05:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add gserialized.h. Later this can be the central place for
-	  index/object utilities, for now it just holds the switch to turn
-	  the gserialized code on and off while we develop
+	* [r6443] postgis/geography.sql.in.c, postgis/gserialized.h,
+	  postgis/lwgeom_pg.h, postgis/sqldefines.h.in: Add gserialized.h.
+	  Later this can be the central place for index/object utilities,
+	  for now it just holds the switch to turn the gserialized code on
+	  and off while we develop
 
-2010-12-18 04:54  pramsey
+2010-12-18 04:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove oddity around gbox duplication
+	* [r6442] liblwgeom/g_box.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeom.c: Remove oddity around gbox duplication
 
-2010-12-18 00:38  pramsey
+2010-12-18 00:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More syncro between geometry and geography. Stubbed index
-	  binding.
+	* [r6441] liblwgeom/g_box.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwin_wkb.c, loader/cunit, postgis/Makefile.in,
+	  postgis/geography.sql.in.c, postgis/geography_gist.c,
+	  postgis/postgis.sql.in.c: More syncro between geometry and
+	  geography. Stubbed index binding.
 
-2010-12-17 22:16  pramsey
+2010-12-17 22:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-name GiST index functions generically for re-use in geometry.
+	* [r6440] postgis/geography.sql.in.c, postgis/geography_gist.c:
+	  Re-name GiST index functions generically for re-use in geometry.
 
-2010-12-17 22:03  pramsey
+2010-12-17 22:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Review to prepare generic index bindings for geography, then
-	  geometry
+	* [r6439] postgis/geography.h, postgis/geography_gist.c,
+	  regress/tickets.sql, regress/tickets_expected: Review to prepare
+	  generic index bindings for geography, then geometry
 
-2010-12-17 21:32  pramsey
+2010-12-17 21:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Harmonize some index support functions to be more generic
-	  gserialized functions and less specific geography functions.
+	* [r6438] liblwgeom/g_box.c, liblwgeom/liblwgeom.h,
+	  postgis/geography.h, postgis/geography_btree.c,
+	  postgis/geography_gist.c, postgis/geography_measurement.c,
+	  regress/tickets.sql, regress/tickets_expected: Harmonize some
+	  index support functions to be more generic gserialized functions
+	  and less specific geography functions.
 
-2010-12-17 20:10  pramsey
+2010-12-17 20:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-orgs to push the geodetic/cartesian divide a little further
-	  under the covers as part of the geometry/geography group hug at
-	  the index bindings level.
+	* [r6437] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_api.c, liblwgeom/lwline.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwout_geojson.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwspheroid.c, liblwgeom/lwtriangle.c,
+	  liblwgeom/ptarray.c, postgis/geography.h,
+	  postgis/geography_gist.c, postgis/geography_inout.c,
+	  postgis/geography_measurement.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_transform.c,
+	  regress/measures.sql: Re-orgs to push the geodetic/cartesian
+	  divide a little further under the covers as part of the
+	  geometry/geography group hug at the index bindings level.
 
-2010-12-17 18:34  robe
+2010-12-17 18:34  Regina Obe <lr at pcorp.us>
 
-	* fix typo add DropTopology
+	* [r6436] doc/extras_topology.xml, doc/using_postgis_dataman.xml:
+	  fix typo add DropTopology
 
-2010-12-17 17:56  strk
+2010-12-17 17:56  Sandro Santilli <strk at keybit.net>
 
-	* Add regress testing for topology.AddEdge
+	* [r6435] topology/test/Makefile,
+	  topology/test/regress/addedge.sql,
+	  topology/test/regress/addedge_expected: Add regress testing for
+	  topology.AddEdge
 
-2010-12-17 17:44  robe
+2010-12-17 17:44  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6434] doc/extras.xml, doc/extras_topology.xml:
 
-2010-12-17 17:24  robe
+2010-12-17 17:24  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6433] doc/Makefile.in, doc/extras_topology.xml,
+	  doc/postgis.xml:
 
-2010-12-17 17:19  strk
+2010-12-17 17:19  Sandro Santilli <strk at keybit.net>
 
-	* Add a note about possible semantic change
+	* [r6432] topology/sql/populate.sql: Add a note about possible
+	  semantic change
 
-2010-12-17 17:16  strk
+2010-12-17 17:16  Sandro Santilli <strk at keybit.net>
 
-	* New topology.AddEdge function [RT-SIGTA]
+	* [r6431] topology/sql/populate.sql: New topology.AddEdge function
+	  [RT-SIGTA]
 
-2010-12-17 16:45  robe
+2010-12-17 16:45  Regina Obe <lr at pcorp.us>
 
-	* fix typos
+	* [r6430] doc/postgis.xml: fix typos
 
-2010-12-17 16:34  robe
+2010-12-17 16:34  Regina Obe <lr at pcorp.us>
 
-	* Put in section in manual for topology and extras in general.
-	  Change postgis.refractions.net to www.postgis.org
+	* [r6429] doc/extras.xml, doc/extras_topology.xml,
+	  doc/introduction.xml, doc/postgis.xml: Put in section in manual
+	  for topology and extras in general. Change
+	  postgis.refractions.net to www.postgis.org
 
-2010-12-17 16:16  strk
+2010-12-17 16:16  Sandro Santilli <strk at keybit.net>
 
-	* Use newer quoting paradigm ($$); use ST_Crosses when willing to
-	  check crossing, not just intersection...; add proper credits
+	* [r6428] topology/sql/populate.sql: Use newer quoting paradigm
+	  ($$); use ST_Crosses when willing to check crossing, not just
+	  intersection...; add proper credits
 
-2010-12-17 15:51  strk
+2010-12-17 15:51  Sandro Santilli <strk at keybit.net>
 
-	* Add an inspection in the final node table
+	* [r6427] topology/test/regress/addnode.sql,
+	  topology/test/regress/addnode_expected: Add an inspection in the
+	  final node table
 
-2010-12-17 15:27  strk
+2010-12-17 15:27  Sandro Santilli <strk at keybit.net>
 
-	* Add test for topology.addNode
+	* [r6426] topology/test/Makefile,
+	  topology/test/regress/addnode.sql,
+	  topology/test/regress/addnode_expected: Add test for
+	  topology.addNode
 
-2010-12-17 15:17  strk
+2010-12-17 15:17  Sandro Santilli <strk at keybit.net>
 
-	* Avoid NOTICE messages while running topology tests, make results
-	  immune of the number of topologies ever created in the database
-	  (helps getting stable results when running the tests manually
-	  using run_test directly)
+	* [r6425] topology/test/invalid_topology.sql,
+	  topology/test/load_topology.sql,
+	  topology/test/regress/legacy_invalid.sql,
+	  topology/test/regress/legacy_invalid_expected,
+	  topology/test/regress/legacy_predicate.sql,
+	  topology/test/regress/legacy_predicate_expected,
+	  topology/test/regress/legacy_query.sql,
+	  topology/test/regress/legacy_query_expected,
+	  topology/test/regress/legacy_validate.sql,
+	  topology/test/regress/legacy_validate_expected: Avoid NOTICE
+	  messages while running topology tests, make results immune of the
+	  number of topologies ever created in the database (helps getting
+	  stable results when running the tests manually using run_test
+	  directly)
 
-2010-12-17 14:00  jorgearevalo
+2010-12-17 14:00  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added very basic flex files for raster MapAlgebra implementation.
-	  The file
+	* [r6424] raster/ma_lexer.l, raster/ma_lexer_only.l: Added very
+	  basic flex files for raster MapAlgebra implementation. The file
 	  'ma_lexer_only' is for testing only the lexer, without the parser
 
-2010-12-17 07:52  strk
+2010-12-17 07:52  Sandro Santilli <strk at keybit.net>
 
-	* split load_topology in 3 steps: load of topology, creation of
-	  feature tables, query of feature tables. Adapt tests accordingly.
+	* [r6423] topology/test/Makefile, topology/test/load_features.sql,
+	  topology/test/load_topology.sql,
+	  topology/test/query_features.sql,
+	  topology/test/regress/legacy_predicate.sql,
+	  topology/test/regress/legacy_predicate_expected,
+	  topology/test/regress/legacy_query.sql,
+	  topology/test/regress/legacy_query_expected,
+	  topology/test/regress/legacy_validate.sql,
+	  topology/test/regress/legacy_validate_expected,
+	  topology/test/validate_topology.sql: split load_topology in 3
+	  steps: load of topology, creation of feature tables, query of
+	  feature tables. Adapt tests accordingly.
 
-2010-12-16 18:02  strk
+2010-12-16 18:02  Sandro Santilli <strk at keybit.net>
 
-	* Return number of failures as exit status
+	* [r6422] regress/run_test: Return number of failures as exit
+	  status
 
-2010-12-16 18:00  strk
+2010-12-16 18:00  Sandro Santilli <strk at keybit.net>
 
-	* Have run_test exit code reflect presence of failures.
+	* [r6421] regress/run_test: Have run_test exit code reflect
+	  presence of failures.
 
-2010-12-16 17:52  strk
+2010-12-16 17:52  Sandro Santilli <strk at keybit.net>
 
-	* Remove duplicated check rule
+	* [r6420] regress/Makefile.in: Remove duplicated check rule
 
-2010-12-16 17:46  strk
+2010-12-16 17:46  Sandro Santilli <strk at keybit.net>
 
-	* This one shouldn't be in the repository.. anyway, since it is...
+	* [r6419] .gitignore: This one shouldn't be in the repository..
+	  anyway, since it is...
 
-2010-12-16 17:30  strk
+2010-12-16 17:30  Sandro Santilli <strk at keybit.net>
 
-	* Turn 'regress' dir into a first class subdir, fixes ticket #715
+	* [r6418] GNUmakefile.in, regress/Makefile.in: Turn 'regress' dir
+	  into a first class subdir, fixes ticket #715
 
-2010-12-16 16:33  strk
+2010-12-16 16:33  Sandro Santilli <strk at keybit.net>
 
-	* Comment-out obsoleted rules (didn't drop in case someone will
-	  miss them)
+	* [r6417] GNUmakefile.in: Comment-out obsoleted rules (didn't drop
+	  in case someone will miss them)
 
-2010-12-16 16:28  strk
+2010-12-16 16:28  Sandro Santilli <strk at keybit.net>
 
-	* Add 'distclean' to the SUBDIRS target
+	* [r6416] GNUmakefile.in, liblwgeom/Makefile.in, utils/Makefile:
+	  Add 'distclean' to the SUBDIRS target
 
-2010-12-16 14:46  strk
+2010-12-16 14:46  Sandro Santilli <strk at keybit.net>
 
-	* Add 'check' rule under the SUBDIR loop. You now get topology
-	  checked if you configured --with-topology
+	* [r6415] GNUmakefile.in, utils/Makefile: Add 'check' rule under
+	  the SUBDIR loop. You now get topology checked if you configured
+	  --with-topology
 
-2010-12-16 14:35  strk
+2010-12-16 14:35  Sandro Santilli <strk at keybit.net>
 
-	* Only run unit tests when building GUI (See
+	* [r6414] loader/Makefile.in: Only run unit tests when building GUI
+	  (See
 	  http://postgis.refractions.net/pipermail/postgis-devel/2010-December/011014.html)
 
-2010-12-16 14:17  robe
-
-	* yeh can put ST_AsKML test back in now that trunk isn't crashing
-	  on it.
+2010-12-16 14:17  Regina Obe <lr at pcorp.us>
 
-2010-12-16 13:16  robe
+	* [r6413] doc/xsl/postgis_gardentest.sql.xsl: yeh can put ST_AsKML
+	  test back in now that trunk isn't crashing on it.
 
-	* most have missed these
+2010-12-16 13:16  Regina Obe <lr at pcorp.us>
 
-2010-12-16 09:48  strk
+	* [r6412] regress/long_xact_expected,
+	  regress/lwgeom_regress_expected, regress/measures_expected: most
+	  have missed these
 
-	* Add 'clean' to the set of targets handled with the SUBDIRS loop
+2010-12-16 09:48  Sandro Santilli <strk at keybit.net>
 
-2010-12-15 22:17  pramsey
-
-	* Add in GSERIALIZED options for many of the pglgweom_ support
-	  functions.
+	* [r6411] GNUmakefile.in, utils/Makefile: Add 'clean' to the set of
+	  targets handled with the SUBDIRS loop
 
-2010-12-15 21:31  pramsey
+2010-12-15 22:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in #defines to allow conditional switch-over to GSERIALIZED
+	* [r6410] postgis/lwgeom_pg.c: Add in GSERIALIZED options for many
+	  of the pglgweom_ support functions.
 
-2010-12-15 20:06  strk
+2010-12-15 21:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fail on fix subdir build failure. Add missing uninstall rule in
-	  liblwgeom
+	* [r6409] liblwgeom/liblwgeom.h, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_functions_lrs.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_pg.c, postgis/lwgeom_pg.h: Add in #defines to
+	  allow conditional switch-over to GSERIALIZED
 
-2010-12-15 18:35  pramsey
+2010-12-15 20:06  Sandro Santilli <strk at keybit.net>
 
-	* Remove silly pointer tests from LWGEOM_collect
+	* [r6408] GNUmakefile.in, liblwgeom/Makefile.in: Fail on fix subdir
+	  build failure. Add missing uninstall rule in liblwgeom
 
-2010-12-15 18:29  strk
+2010-12-15 18:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Install topology.sql in the same directory as other things
-	  postgis
+	* [r6407] postgis/lwgeom_functions_basic.c: Remove silly pointer
+	  tests from LWGEOM_collect
 
-2010-12-15 18:28  pramsey
+2010-12-15 18:29  Sandro Santilli <strk at keybit.net>
 
-	* LWGEOM_accum is orphaned code, bye bye!
+	* [r6406] topology/Makefile.in: Install topology.sql in the same
+	  directory as other things postgis
 
-2010-12-15 18:03  strk
+2010-12-15 18:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Generate GNUMakefile, add a --with-topology switch to configure,
-	  enabling descending under topology/ dir
+	* [r6405] postgis/lwgeom_functions_basic.c: LWGEOM_accum is
+	  orphaned code, bye bye!
 
-2010-12-15 17:51  pramsey
+2010-12-15 18:03  Sandro Santilli <strk at keybit.net>
 
-	* Move geometrycollection back out of the supported types for KML
+	* [r6404] GNUmakefile, GNUmakefile.in, configure.ac,
+	  topology/Version.config: Generate GNUMakefile, add a
+	  --with-topology switch to configure, enabling descending under
+	  topology/ dir
 
-2010-12-15 17:46  pramsey
+2010-12-15 17:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* KML crashes on EMPTY (#681)
+	* [r6403] liblwgeom/cunit/cu_out_kml.c: Move geometrycollection
+	  back out of the supported types for KML
 
-2010-12-15 17:14  strk
+2010-12-15 17:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Thanks for the great partecipation around GNUmakefile
-	  improvements proposal. It's finally here :)
+	* [r6402] liblwgeom/lwout_kml.c, liblwgeom/stringbuffer.c,
+	  postgis/geography_inout.c: KML crashes on EMPTY (#681)
 
-2010-12-15 17:11  strk
+2010-12-15 17:14  Sandro Santilli <strk at keybit.net>
 
-	* Add a check rule under topology/ [RT-SIGTA]
+	* [r6401] GNUmakefile: Thanks for the great partecipation around
+	  GNUmakefile improvements proposal. It's finally here :)
 
-2010-12-15 17:06  strk
+2010-12-15 17:11  Sandro Santilli <strk at keybit.net>
 
-	* Make sure predicate sql file is generated before use
+	* [r6400] topology/Makefile.in: Add a check rule under topology/
+	  [RT-SIGTA]
 
-2010-12-15 16:41  strk
+2010-12-15 17:06  Sandro Santilli <strk at keybit.net>
 
-	* Add sqlmm automated test. Drop old rules [RT-SIGTA]
+	* [r6399] topology/test/Makefile: Make sure predicate sql file is
+	  generated before use
 
-2010-12-15 16:24  strk
+2010-12-15 16:41  Sandro Santilli <strk at keybit.net>
 
-	* automatize topology validity checking [RT-SIGTA]
+	* [r6398] topology/test/Makefile, topology/test/regress/sqlmm.sql,
+	  topology/test/regress/sqlmm_expected,
+	  topology/test/sqlmm_topology.sql: Add sqlmm automated test. Drop
+	  old rules [RT-SIGTA]
 
-2010-12-15 16:04  strk
+2010-12-15 16:24  Sandro Santilli <strk at keybit.net>
 
-	* Start a proper 'make check' rule, using the testrunner in top
-	  dir's regress dir
+	* [r6397] topology/test/Makefile,
+	  topology/test/regress/legacy_invalid.sql,
+	  topology/test/regress/legacy_invalid_expected: automatize
+	  topology validity checking [RT-SIGTA]
 
-2010-12-15 15:25  robe
+2010-12-15 16:04  Sandro Santilli <strk at keybit.net>
 
-	* okay just exclude POLYGON EMPTY and ST_AsKML -- too many victims
-	  for POLYGON EMPTY including ST_LineMerge now. change namespace to
-	  www.postgis.org
+	* [r6396] topology/test/Makefile, topology/test/regress,
+	  topology/test/regress/legacy_predicate.sql,
+	  topology/test/regress/legacy_predicate_expected,
+	  topology/test/regress/legacy_validate.sql,
+	  topology/test/regress/legacy_validate_expected: Start a proper
+	  'make check' rule, using the testrunner in top dir's regress dir
 
-2010-12-15 14:14  strk
+2010-12-15 15:25  Regina Obe <lr at pcorp.us>
 
-	* Allow run_test calls from foreign directories
+	* [r6395] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl,
+	  doc/xsl/raster_gardentest.sql.xsl: okay just exclude POLYGON
+	  EMPTY and ST_AsKML -- too many victims for POLYGON EMPTY
+	  including ST_LineMerge now. change namespace to www.postgis.org
 
-2010-12-15 14:09  strk
+2010-12-15 14:14  Sandro Santilli <strk at keybit.net>
 
-	* Do not read ~/.psqlrc when creating database
+	* [r6394] regress/run_test: Allow run_test calls from foreign
+	  directories
 
-2010-12-15 14:04  strk
+2010-12-15 14:09  Sandro Santilli <strk at keybit.net>
 
-	* Add a --topology switch to equip regression db with topology
-	  support when requested
+	* [r6393] regress/run_test: Do not read ~/.psqlrc when creating
+	  database
 
-2010-12-15 13:39  strk
+2010-12-15 14:04  Sandro Santilli <strk at keybit.net>
 
-	* Add new populate.sql file to host topology population routines.
-	  Properly encode dependencies.
+	* [r6392] regress/run_test: Add a --topology switch to equip
+	  regression db with topology support when requested
 
-2010-12-15 13:23  robe
+2010-12-15 13:39  Sandro Santilli <strk at keybit.net>
 
-	* exclude more functions from tests that are sorta broken
+	* [r6391] topology/Makefile.in, topology/sql/populate.sql,
+	  topology/topology.sql.in.c: Add new populate.sql file to host
+	  topology population routines. Properly encode dependencies.
 
-2010-12-15 11:01  strk
+2010-12-15 13:23  Regina Obe <lr at pcorp.us>
 
-	* Split sqlmm specific things into its own file
+	* [r6390] doc/xsl/postgis_gardentest.sql.xsl: exclude more
+	  functions from tests that are sorta broken
 
-2010-12-15 10:48  strk
+2010-12-15 11:01  Sandro Santilli <strk at keybit.net>
 
-	* Work outside of transaction, to help upgrade/test cycles. Fix
-	  leftover from previous commit. [RT-SIGTA]
+	* [r6389] topology/sql, topology/sql/sqlmm.sql,
+	  topology/topology.sql.in.c: Split sqlmm specific things into its
+	  own file
 
-2010-12-15 10:44  strk
+2010-12-15 10:48  Sandro Santilli <strk at keybit.net>
 
-	* Fix typo in TopoGeo_addLinestring description, add DEBUG lines
+	* [r6388] topology/topology.sql.in.c: Work outside of transaction,
+	  to help upgrade/test cycles. Fix leftover from previous commit.
 	  [RT-SIGTA]
 
-2010-12-15 10:08  strk
-
-	* Fix detection of non-existent schema in ST_CreateTopoGeo
+2010-12-15 10:44  Sandro Santilli <strk at keybit.net>
 
-2010-12-15 00:57  pramsey
+	* [r6387] topology/topology.sql.in.c: Fix typo in
+	  TopoGeo_addLinestring description, add DEBUG lines [RT-SIGTA]
 
-	* Flip more memcpy calls away.
+2010-12-15 10:08  Sandro Santilli <strk at keybit.net>
 
-2010-12-15 00:24  pramsey
+	* [r6386] topology/topology.sql.in.c: Fix detection of non-existent
+	  schema in ST_CreateTopoGeo
 
-	* Remove some calls to memcpy in favor of API functions.
+2010-12-15 00:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-15 00:12  pramsey
+	* [r6385] postgis/geography_inout.c,
+	  postgis/geography_measurement.c, postgis/lwgeom_estimate.c,
+	  postgis/lwgeom_export.c: Flip more memcpy calls away.
 
-	* Strip out more instances of SERIALIZED_FORM
+2010-12-15 00:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-14 20:30  pramsey
+	* [r6384] postgis/lwgeom_geos_clean.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_transform.c: Remove some calls to memcpy in favor
+	  of API functions.
 
-	* Return non-zero when tests fail
+2010-12-15 00:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-14 20:21  pramsey
+	* [r6383] postgis/lwgeom_box2dfloat4.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_btree.c, postgis/lwgeom_estimate.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos_prepared.c, postgis/lwgeom_gist.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_pg.c, postgis/lwgeom_pg.h:
+	  Strip out more instances of SERIALIZED_FORM
 
-	* Fix regressions in the new KML emitter
+2010-12-14 20:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-14 16:00  robe
+	* [r6382] liblwgeom/cunit/cu_tester.c: Return non-zero when tests
+	  fail
 
-	* exclude from testing functions known to crash with POLYGON EMPTY
+2010-12-14 20:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-14 05:53  pramsey
+	* [r6381] liblwgeom/cunit/cu_out_kml.c, liblwgeom/lwout_kml.c,
+	  liblwgeom/stringbuffer.c, liblwgeom/stringbuffer.h: Fix
+	  regressions in the new KML emitter
 
-	* Memory leak in geography_from_text (#624)
+2010-12-14 16:00  Regina Obe <lr at pcorp.us>
 
-2010-12-14 05:01  pramsey
+	* [r6380] doc/xsl/postgis_gardentest.sql.xsl: exclude from testing
+	  functions known to crash with POLYGON EMPTY
 
-	* Minor usage changes. (#604)
+2010-12-14 05:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-14 00:56  pramsey
+	* [r6376] postgis/geography_inout.c: Memory leak in
+	  geography_from_text (#624)
 
-	* Update (c) header
+2010-12-14 05:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-14 00:54  pramsey
+	* [r6374] loader/shp2pgsql-cli.c: Minor usage changes. (#604)
 
-	* Convert KML output to use stringbuffer for a 50% code
-	  shrinkage...
+2010-12-14 00:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-14 00:49  pramsey
+	* [r6371] liblwgeom/lwout_kml.c: Update (c) header
 
-	* Remove multicurve warning
+2010-12-14 00:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-14 00:37  robe
+	* [r6370] liblwgeom/lwout_kml.c, postgis/lwgeom_export.c: Convert
+	  KML output to use stringbuffer for a 50% code shrinkage...
 
-	* fix some typos and add back curvepolygon example that was
-	  crashing before with old ewkt parser
+2010-12-14 00:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 23:50  pramsey
+	* [r6369] liblwgeom/cunit/cu_out_wkt.c: Remove multicurve warning
 
-	* Second thoughts on stringbuffer changes
+2010-12-14 00:37  Regina Obe <lr at pcorp.us>
 
-2010-12-13 23:40  pramsey
+	* [r6368] doc/xsl/postgis_gardentest.sql.xsl: fix some typos and
+	  add back curvepolygon example that was crashing before with old
+	  ewkt parser
 
-	* Potential minor speed-up functions for stringbuffering
+2010-12-13 23:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 23:34  pramsey
+	* [r6367] liblwgeom/stringbuffer.c, liblwgeom/stringbuffer.h:
+	  Second thoughts on stringbuffer changes
 
-	* Add extra multicurve test for WKT
+2010-12-13 23:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 21:42  pramsey
+	* [r6366] liblwgeom/stringbuffer.c, liblwgeom/stringbuffer.h:
+	  Potential minor speed-up functions for stringbuffering
 
-	* Update parser to handling compound curves within multicurves
-	  (#525)
+2010-12-13 23:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 21:31  pramsey
+	* [r6365] liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c: Add extra multicurve test for WKT
 
-	* ST_CollectionExtract returns non-requested type (#457)
+2010-12-13 21:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 20:40  pramsey
+	* [r6364] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/lwin_wkt_parse.c,
+	  liblwgeom/lwin_wkt_parse.y: Update parser to handling compound
+	  curves within multicurves (#525)
 
-	* Return value of snprintf not correctly checked (#556)
+2010-12-13 21:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 20:25  pramsey
+	* [r6363] postgis/lwgeom_functions_basic.c, regress/tickets.sql,
+	  regress/tickets_expected: ST_CollectionExtract returns
+	  non-requested type (#457)
 
-	* Improve stringbuffer_t performance (#439). This is largely done
-	  already in past passes. Added one small memory fix.
+2010-12-13 20:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 20:09  pramsey
+	* [r6360] loader/shp2pgsql-core.c: Return value of snprintf not
+	  correctly checked (#556)
 
-	* Change default shp2pgsql column to "geom" (#352)
+2010-12-13 20:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 19:50  robe
+	* [r6359] liblwgeom/stringbuffer.c: Improve stringbuffer_t
+	  performance (#439). This is largely done already in past passes.
+	  Added one small memory fix.
 
-	* 
+2010-12-13 20:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 19:44  robe
+	* [r6358] loader/shp2pgsql-core.h: Change default shp2pgsql column
+	  to "geom" (#352)
 
-	* 
+2010-12-13 19:50  Regina Obe <lr at pcorp.us>
 
-2010-12-13 19:44  robe
+	* [r6357] regress/removepoint_expected, regress/setpoint_expected,
+	  regress/sharedpaths_expected, regress/simplify_expected,
+	  regress/snap_expected, regress/snaptogrid_expected:
 
-	* 
+2010-12-13 19:44  Regina Obe <lr at pcorp.us>
 
-2010-12-13 19:43  pramsey
+	* [r6356] regress/loader/Arc-wkb.expected,
+	  regress/loader/Arc-wkt.expected,
+	  regress/loader/ArcM-wkt.expected,
+	  regress/loader/ArcZ-wkb.expected,
+	  regress/loader/ArcZ-wkt.expected:
 
-	* Fix ST_Segmentize on curved geometries -- CRASH (#706). This is
-	  actually a reflection of inconsistency in the lwgeom_clone()
-	  function (creates copy of everything except point array) and the
-	  ptarray_clone() function (creates copy of everything). The
-	  definitions of _clone, _copy, _release, and _free need to be made
-	  consistent and documented.
+2010-12-13 19:44  Regina Obe <lr at pcorp.us>
 
-2010-12-13 19:42  robe
+	* [r6355] regress/loader/Polygon-wkb.expected,
+	  regress/loader/Polygon-wkt.expected,
+	  regress/loader/PolygonM-wkb.expected,
+	  regress/loader/PolygonM-wkt.expected,
+	  regress/loader/PolygonZ-wkb.expected,
+	  regress/loader/PolygonZ-wkt.expected:
 
-	* 
+2010-12-13 19:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 19:34  robe
+	* [r6354] postgis/lwgeom_functions_basic.c: Fix ST_Segmentize on
+	  curved geometries -- CRASH (#706). This is actually a reflection
+	  of inconsistency in the lwgeom_clone() function (creates copy of
+	  everything except point array) and the ptarray_clone() function
+	  (creates copy of everything). The definitions of _clone, _copy,
+	  _release, and _free need to be made consistent and documented.
 
-	* 
+2010-12-13 19:42  Regina Obe <lr at pcorp.us>
 
-2010-12-13 19:32  robe
+	* [r6353] regress/regress_bdpoly_expected,
+	  regress/regress_buffer_params_expected,
+	  regress/regress_index_expected,
+	  regress/regress_index_nulls_expected,
+	  regress/regress_lrs_expected, regress/regress_ogc_cover_expected,
+	  regress/regress_ogc_expected, regress/regress_ogc_prep_expected,
+	  regress/regress_proj_expected:
 
-	* 
+2010-12-13 19:34  Regina Obe <lr at pcorp.us>
 
-2010-12-13 19:25  robe
+	* [r6352] regress/loader/MultiPoint-wkb.expected,
+	  regress/loader/MultiPoint-wkt.expected,
+	  regress/loader/MultiPointM-wkb.expected,
+	  regress/loader/MultiPointM-wkt.expected,
+	  regress/loader/MultiPointZ-wkb.expected,
+	  regress/loader/MultiPointZ-wkt.expected,
+	  regress/loader/PointM-wkb.expected,
+	  regress/loader/PointM-wkt.expected:
 
-	* 
+2010-12-13 19:32  Regina Obe <lr at pcorp.us>
 
-2010-12-13 19:25  pramsey
+	* [r6351] regress/affine_expected, regress/clean_expected,
+	  regress/ctors_expected, regress/dump_expected,
+	  regress/dumppoints_expected, regress/hausdorff_expected,
+	  regress/in_gml_expected, regress/in_kml_expected,
+	  regress/iscollection_expected:
 
-	* Fix up failure in distance calculation (#705) and replace some
-	  SRID -1 with SRID_UNKNOWN
+2010-12-13 19:25  Regina Obe <lr at pcorp.us>
 
-2010-12-13 19:19  robe
+	* [r6350] regress/loader/PointZ-wkb.expected,
+	  regress/loader/PointZ-wkt.expected:
 
-	* 
+2010-12-13 19:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-13 16:38  robe
-
-	* Okay changed this to LF since people seemed to like changing this
-	  one a lot. We'll see if this fixes my frustrations without
-	  causing any frustration for anyone else.
-
-2010-12-13 13:14  robe
-
-	* remove collection of geometries into crasher group to prevent
-	  testing until we revisit #700
-
-2010-12-13 10:49  strk
-
-	* Add comments on the 'edge' topology primitives view
+	* [r6349] liblwgeom/g_serialized.c, liblwgeom/libtgeom.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwtriangle.c,
+	  liblwgeom/ptarray.c, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_geos_split.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_pg.c, postgis/lwgeom_transform.c,
+	  raster/rt_core/rt_api.c, raster/rt_pg/rt_pg.c: Fix up failure in
+	  distance calculation (#705) and replace some SRID -1 with
+	  SRID_UNKNOWN
 
-2010-12-13 09:51  strk
+2010-12-13 19:19  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r6348] regress/loader/ArcM-wkb.expected,
+	  regress/loader/Point-wkb.expected,
+	  regress/loader/Point-wkt.expected:
 
-2010-12-12 22:42  nicklas
+2010-12-13 16:38  Regina Obe <lr at pcorp.us>
 
-	* 3d distance functions for line-line cases
+	* [r6347] regress/regress_expected: Okay changed this to LF since
+	  people seemed to like changing this one a lot. We'll see if this
+	  fixes my frustrations without causing any frustration for anyone
+	  else.
 
-2010-12-12 18:59  nicklas
+2010-12-13 13:14  Regina Obe <lr at pcorp.us>
 
-	* Some cleaning up in measure functions in lwgeom_functions_basic.c
+	* [r6346] doc/xsl/postgis_gardentest.sql.xsl: remove collection of
+	  geometries into crasher group to prevent testing until we revisit
+	  #700
 
-2010-12-12 00:12  pramsey
+2010-12-13 10:49  Sandro Santilli <strk at keybit.net>
 
-	* Remove more SERIALIZED_FORM
+	* [r6345] topology/topology.sql.in.c: Add comments on the 'edge'
+	  topology primitives view
 
-2010-12-11 00:28  pramsey
+2010-12-13 09:51  Sandro Santilli <strk at keybit.net>
 
-	* ptarray_free now frees the serialized_ptlist, unless
-	  FLAGS_GET_READONLY is set.
+	* [r6344] topology/README: typo
 
-2010-12-11 00:27  strk
+2010-12-12 22:42  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Do not force drop of pre-existing topology schema. Sounds
-	  dangerous when start using it for real.
+	* [r6343] liblwgeom/measures3d.c, liblwgeom/measures3d.h,
+	  regress/measures.sql, regress/measures_expected: 3d distance
+	  functions for line-line cases
 
-2010-12-10 23:22  pramsey
+2010-12-12 18:59  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Switch to cstring2text for text returns.
+	* [r6342] postgis/lwgeom_functions_basic.c: Some cleaning up in
+	  measure functions in lwgeom_functions_basic.c
 
-2010-12-10 23:15  pramsey
+2010-12-12 00:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Clean out more SERIALIZED_FORM calls
+	* [r6341] postgis/lwgeom_export.c,
+	  postgis/lwgeom_functions_analytic.c, postgis/lwgeom_inout.c:
+	  Remove more SERIALIZED_FORM
 
-2010-12-10 22:45  pramsey
+2010-12-11 00:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Clean out some more calls to SERIALIZED_FORM
+	* [r6340] liblwgeom/liblwgeom.h, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwin_wkt_parse.c, liblwgeom/lwin_wkt_parse.y,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpsurface.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwtin.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/ptarray.c,
+	  loader/shp2pgsql-core.c: ptarray_free now frees the
+	  serialized_ptlist, unless FLAGS_GET_READONLY is set.
 
-2010-12-10 20:22  pramsey
+2010-12-11 00:27  Sandro Santilli <strk at keybit.net>
 
-	* Issues with TRIANGLE AND TIN EMPTY collections - hmm do they
-	  exist? (#686)
+	* [r6339] topology/topology.sql.in.c: Do not force drop of
+	  pre-existing topology schema. Sounds dangerous when start using
+	  it for real.
 
-2010-12-10 19:44  pramsey
+2010-12-10 23:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for TIN EMPTY per #686
+	* [r6338] postgis/lwgeom_inout.c, postgis/lwgeom_transform.c:
+	  Switch to cstring2text for text returns.
 
-2010-12-10 19:10  pramsey
+2010-12-10 23:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix cunit failures on Polyhedral surface (#697)
+	* [r6337] postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_split.c: Clean
+	  out more SERIALIZED_FORM calls
 
-2010-12-10 18:10  pramsey
+2010-12-10 22:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* WKB and WKT closure checks are now in X/Y only (#693)
+	* [r6336] postgis/lwgeom_ogc.c, postgis/lwgeom_rtree.c,
+	  postgis/lwgeom_spheroid.c, postgis/lwgeom_sqlmm.c: Clean out some
+	  more calls to SERIALIZED_FORM
 
-2010-12-10 18:06  strk
+2010-12-10 20:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Revert GNUMakefile changes as per Mark request. I had enough
-	  complains about build scripts this week...
+	* [r6335] liblwgeom/lwtriangle.c, regress/regress.sql,
+	  regress/regress_expected: Issues with TRIANGLE AND TIN EMPTY
+	  collections - hmm do they exist? (#686)
 
-2010-12-10 18:00  pramsey
+2010-12-10 19:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix ST_Segmentize and Polyhedral Surface -- CRASH (#696)
+	* [r6334] postgis/lwgeom_ogc.c, postgis/lwgeom_pg.c,
+	  postgis/lwgeom_pg.h: Fix for TIN EMPTY per #686
 
-2010-12-10 17:57  strk
+2010-12-10 19:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add 'uninstall' rule in the loop. Work around the docs dep by
-	  using uninstall deps. Add an 'uninstall' rule to raster subsystem
+	* [r6333] liblwgeom/liblwgeom.h, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_parse.c, liblwgeom/lwin_wkt_parse.y,
+	  liblwgeom/ptarray.c, regress/regress.sql,
+	  regress/regress_expected: Fix cunit failures on Polyhedral
+	  surface (#697)
 
-2010-12-10 17:49  strk
+2010-12-10 18:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Be verbose during recursion. List liblwgeom in SUBDIRS, stub
-	  install rules for liblwgeom and utils
+	* [r6332] liblwgeom/lwin_wkb.c, liblwgeom/lwin_wkt.c: WKB and WKT
+	  closure checks are now in X/Y only (#693)
 
-2010-12-10 17:29  strk
+2010-12-10 18:06  Sandro Santilli <strk at keybit.net>
 
-	* more ignores
+	* [r6331] GNUmakefile: Revert GNUMakefile changes as per Mark
+	  request. I had enough complains about build scripts this week...
 
-2010-12-10 17:19  strk
+2010-12-10 18:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Start listing some subdirs to recurse into. Hopefully one day
-	  this will become cleaner
+	* [r6330] postgis/lwgeom_functions_basic.c: Fix ST_Segmentize and
+	  Polyhedral Surface -- CRASH (#696)
 
-2010-12-10 17:19  strk
+2010-12-10 17:57  Sandro Santilli <strk at keybit.net>
 
-	* add .svn to .gitignore (why is this in repo ? oh well.. it is
-	  useful anyway)
+	* [r6329] GNUmakefile, raster/Makefile.in, utils/Makefile: Add
+	  'uninstall' rule in the loop. Work around the docs dep by using
+	  uninstall deps. Add an 'uninstall' rule to raster subsystem
 
-2010-12-10 15:45  pramsey
+2010-12-10 17:49  Sandro Santilli <strk at keybit.net>
 
-	* Fix for crash in ST_RemovePoint (#695)
+	* [r6328] GNUmakefile, liblwgeom/Makefile.in, utils/Makefile: Be
+	  verbose during recursion. List liblwgeom in SUBDIRS, stub install
+	  rules for liblwgeom and utils
 
-2010-12-10 14:53  mloskot
+2010-12-10 17:29  Sandro Santilli <strk at keybit.net>
 
-	* Fixed problems with truncated decimal places of float-point
-	  values in textual output. For large datasets, it was leading to
-	  incorrectly calculated dimensions. Now, all floats are formatted
-	  with 15 decimal places.
+	* [r6327] .gitignore: more ignores
 
-2010-12-09 19:17  pramsey
+2010-12-10 17:19  Sandro Santilli <strk at keybit.net>
 
-	* Wrap up GEOS predicates in EMPTY tests (#685)
+	* [r6326] GNUmakefile: Start listing some subdirs to recurse into.
+	  Hopefully one day this will become cleaner
 
-2010-12-09 18:52  pramsey
+2010-12-10 17:19  Sandro Santilli <strk at keybit.net>
 
-	* Remove old function calls
+	* [r6325] .gitignore: add .svn to .gitignore (why is this in repo ?
+	  oh well.. it is useful anyway)
 
-2010-12-09 18:51  pramsey
+2010-12-10 15:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for centroid crash on emtpy (#684)
+	* [r6324] postgis/lwgeom_functions_basic.c: Fix for crash in
+	  ST_RemovePoint (#695)
 
-2010-12-09 18:00  pramsey
+2010-12-10 14:53  Mateusz Loskot <mateusz at loskot.net>
 
-	* Fix crash in ST_MakeLine (#690)
+	* [r6323] raster/scripts/python/raster2pgsql.py: Fixed problems
+	  with truncated decimal places of float-point values in textual
+	  output. For large datasets, it was leading to incorrectly
+	  calculated dimensions. Now, all floats are formatted with 15
+	  decimal places.
 
-2010-12-09 16:10  pramsey
+2010-12-09 19:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add config rpath
+	* [r6322] postgis/lwgeom_geos.c: Wrap up GEOS predicates in EMPTY
+	  tests (#685)
 
-2010-12-09 15:00  robe
+2010-12-09 18:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* formatting
+	* [r6321] doc/html/image_src/generator.c: Remove old function calls
 
-2010-12-08 23:58  pramsey
+2010-12-09 18:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove more appeals to pglwgeom->type
+	* [r6320] postgis/lwgeom_geos.c, postgis/lwgeom_pg.c,
+	  postgis/lwgeom_pg.h: Fix for centroid crash on emtpy (#684)
 
-2010-12-08 23:52  pramsey
+2010-12-09 18:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove more appeals to pglwgeom->type
+	* [r6319] postgis/lwgeom_functions_basic.c, regress/regress.sql,
+	  regress/regress_expected: Fix crash in ST_MakeLine (#690)
 
-2010-12-08 23:40  pramsey
+2010-12-09 16:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove more appeals to pglwgeom->type
+	* [r6318] config.rpath: Add config rpath
 
-2010-12-08 23:29  pramsey
+2010-12-09 15:00  Regina Obe <lr at pcorp.us>
 
-	* Remove another call to TYPE_HASBBOX
+	* [r6317] doc/reference_editor.xml: formatting
 
-2010-12-08 23:28  pramsey
+2010-12-08 23:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove call to TYPE_HASBBOX
+	* [r6316] postgis/lwgeom_geos.c, postgis/lwgeom_geos_sharedpaths.c,
+	  postgis/lwgeom_geos_snap.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_spheroid.c: Remove more appeals to pglwgeom->type
 
-2010-12-08 23:27  pramsey
+2010-12-08 23:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove many cases of calls to SERIALIZED_FORM in favour of direct
-	  pglwgeom deserialization
+	* [r6315] postgis/lwgeom_functions_basic.c, postgis/lwgeom_pg.c,
+	  postgis/lwgeom_pg.h: Remove more appeals to pglwgeom->type
 
-2010-12-08 23:19  robe
+2010-12-08 23:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* need to keep GEOMETRYCOLLECTION EMPTY away from others since GEOS
-	  throws geometry collection not support for it often so hiding the
-	  crashing in some cases of typed empties.
+	* [r6314] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwout_geojson.c, liblwgeom/lwpoint.c,
+	  liblwgeom/lwpoly.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/ptarray.c, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_pg.c, postgis/lwgeom_pg.h: Remove more appeals to
+	  pglwgeom->type
 
-2010-12-08 22:31  pramsey
+2010-12-08 23:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove many instances of lwgeom_getType used on PG_LWGEOM
+	* [r6313] postgis/lwgeom_functions_basic.c: Remove another call to
+	  TYPE_HASBBOX
 
-2010-12-08 22:02  robe
+2010-12-08 23:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add more emptiness. We need to explore emptiness more deeply :)
+	* [r6312] postgis/lwgeom_functions_basic.c: Remove call to
+	  TYPE_HASBBOX
 
-2010-12-08 21:21  pramsey
+2010-12-08 23:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* When asking for a serialized forms type, use pglwgeom_get_type
+	* [r6311] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_api.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_pg.c,
+	  postgis/lwgeom_pg.h, postgis/lwgeom_rtree.c: Remove many cases of
+	  calls to SERIALIZED_FORM in favour of direct pglwgeom
+	  deserialization
 
-2010-12-08 20:54  pramsey
+2010-12-08 23:19  Regina Obe <lr at pcorp.us>
 
-	* Cut down reliance on TYPE_GETTYPE macro in favor of a function we
-	  can repoint later in the serialization change process
+	* [r6310] doc/xsl/postgis_gardentest.sql.xsl: need to keep
+	  GEOMETRYCOLLECTION EMPTY away from others since GEOS throws
+	  geometry collection not support for it often so hiding the
+	  crashing in some cases of typed empties.
 
-2010-12-08 20:35  pramsey
+2010-12-08 22:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Expunge some TYPE_GETTYPE
+	* [r6309] loader/pgsql2shp-core.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_gist.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_pg.c, postgis/lwgeom_pg.h: Remove many instances
+	  of lwgeom_getType used on PG_LWGEOM
 
-2010-12-08 20:35  pramsey
+2010-12-08 22:02  Regina Obe <lr at pcorp.us>
 
-	* Start to work on PG_LWGEOM sanity before changeover
+	* [r6308] doc/xsl/postgis_gardentest.sql.xsl: Add more emptiness.
+	  We need to explore emptiness more deeply :)
 
-2010-12-08 19:24  pramsey
+2010-12-08 21:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename has_arc to lwgeom_has_arc
+	* [r6307] postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c: When asking for a serialized forms type,
+	  use pglwgeom_get_type
 
-2010-12-08 19:23  pramsey
+2010-12-08 20:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix crash on BuildArea(empty) (#683)
+	* [r6306] postgis/lwgeom_box3d.c, postgis/lwgeom_chip.c,
+	  postgis/lwgeom_debug.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_pg.c, postgis/lwgeom_pg.h,
+	  postgis/lwgeom_rtree.c: Cut down reliance on TYPE_GETTYPE macro
+	  in favor of a function we can repoint later in the serialization
+	  change process
 
-2010-12-08 18:20  pramsey
+2010-12-08 20:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Handle empty geometries in ST_Buffer(). If argument empty, return
-	  empty. (#682)
+	* [r6305] liblwgeom/lwin_wkb.c, liblwgeom/measures3d.c: Expunge
+	  some TYPE_GETTYPE
 
-2010-12-08 18:06  pramsey
+2010-12-08 20:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix crash in GML output of POLYGON EMPTY (#681)
+	* [r6304] postgis/geography_inout.c, postgis/lwgeom_pg.c,
+	  postgis/lwgeom_pg.h: Start to work on PG_LWGEOM sanity before
+	  changeover
 
-2010-12-08 16:20  pramsey
+2010-12-08 19:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix AsBinary handling of > 2d features in geography (#680)
+	* [r6303] liblwgeom/liblwgeom.h, liblwgeom/lwsegmentize.c,
+	  postgis/lwgeom_sqlmm.c: Rename has_arc to lwgeom_has_arc
 
-2010-12-08 16:04  pramsey
+2010-12-08 19:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Output higher dimensions in astext in geography (#680)
+	* [r6302] postgis/lwgeom_geos.c: Fix crash on BuildArea(empty)
+	  (#683)
 
-2010-12-08 00:23  pramsey
+2010-12-08 18:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor rearrangement of memory handling.
+	* [r6301] postgis/lwgeom_geos.c, regress/regress_ogc.sql,
+	  regress/regress_ogc_expected: Handle empty geometries in
+	  ST_Buffer(). If argument empty, return empty. (#682)
 
-2010-12-08 00:02  pramsey
+2010-12-08 18:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename lwgeom_from_wkt to lwgeom_parse_wkt to note the use of the
-	  parser object.
+	* [r6300] liblwgeom/cunit/cu_out_gml.c, liblwgeom/lwout_gml.c: Fix
+	  crash in GML output of POLYGON EMPTY (#681)
 
-2010-12-07 21:59  pramsey
+2010-12-08 16:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Start flipping over references to srid = -1 to srid =
-	  SRID_UNKNOWN
+	* [r6299] postgis/geography_inout.c: Fix AsBinary handling of > 2d
+	  features in geography (#680)
 
-2010-12-07 21:55  strk
+2010-12-08 16:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Use unified diffs for expected/obtained (easier to read)
+	* [r6298] postgis/geography_inout.c: Output higher dimensions in
+	  astext in geography (#680)
 
-2010-12-07 21:08  pramsey
+2010-12-08 00:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Replace the old WKB/WKT parser and emitters with the new ones.
+	* [r6295] liblwgeom/lwin_wkb.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c: Minor rearrangement of memory
+	  handling.
+
+2010-12-08 00:02  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r6294] liblwgeom/cunit/cu_in_wkb.c, liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_out_wkb.c, liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/cunit/cu_surface.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt_parse.c, liblwgeom/lwin_wkt_parse.y,
+	  liblwgeom/lwout_wkb.c, loader/shp2pgsql-core.c,
+	  postgis/geography_inout.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c: Rename lwgeom_from_wkt to lwgeom_parse_wkt
+	  to note the use of the parser object.
+
+2010-12-07 21:59  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r6293] liblwgeom/liblwgeom.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c, liblwgeom/lwline.c,
+	  liblwgeom/lwout_wkb.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwtriangle.c, loader/shp2pgsql-core.c,
+	  postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_pg.c: Start flipping over references to srid = -1
+	  to srid = SRID_UNKNOWN
+
+2010-12-07 21:55  Sandro Santilli <strk at keybit.net>
+
+	* [r6292] regress/run_test: Use unified diffs for expected/obtained
+	  (easier to read)
+
+2010-12-07 21:08  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r6291] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_geodetic.c, liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_in_wkt.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_misc.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwin_wkb.c, liblwgeom/lwin_wkt.c,
+	  liblwgeom/lwin_wkt.h, liblwgeom/lwin_wkt_lex.c,
+	  liblwgeom/lwin_wkt_lex.l, liblwgeom/lwin_wkt_parse.c,
+	  liblwgeom/lwin_wkt_parse.y, liblwgeom/lwline.c,
+	  liblwgeom/lwout_wkb.c, liblwgeom/lwout_wkt.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwtriangle.c,
+	  liblwgeom/ptarray.c, loader/pgsql2shp-core.c,
+	  loader/shp2pgsql-core.c, postgis/geography_inout.c,
+	  postgis/lwgeom_dump.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_gist.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_pg.c, postgis/lwgeom_pg.h,
+	  regress/Makefile.in, regress/clean.sql, regress/dump_expected,
+	  regress/out_geography.sql, regress/out_geography_expected,
+	  regress/out_geometry.sql, regress/polyhedralsurface_expected,
+	  regress/regress_expected, regress/regress_proj.sql,
+	  regress/regress_proj_expected, regress/run_test,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly_expected, regress/tickets_expected:
+	  Replace the old WKB/WKT parser and emitters with the new ones.
 
-2010-12-07 14:02  robe
+2010-12-07 14:02  Regina Obe <lr at pcorp.us>
 
-	* change to 1 column (st_sharedpaths)
+	* [r6290] doc/reference_processing.xml: change to 1 column
+	  (st_sharedpaths)
 
-2010-12-07 13:45  robe
+2010-12-07 13:45  Regina Obe <lr at pcorp.us>
 
-	* reduce width some more
+	* [r6289] doc/reference_editor.xml: reduce width some more
 
-2010-12-07 13:42  robe
+2010-12-07 13:42  Regina Obe <lr at pcorp.us>
 
-	* change color to be clearer reduce width of text
+	* [r6288] doc/html/image_src/st_sharedpaths02.wkt,
+	  doc/reference_processing.xml: change color to be clearer reduce
+	  width of text
 
-2010-12-07 12:51  robe
+2010-12-07 12:51  Regina Obe <lr at pcorp.us>
 
-	* end tbody
+	* [r6287] doc/reference_processing.xml: end tbody
 
-2010-12-07 12:45  robe
+2010-12-07 12:45  Regina Obe <lr at pcorp.us>
 
-	* fix formatting
+	* [r6286] doc/reference_editor.xml: fix formatting
 
-2010-12-07 12:42  robe
+2010-12-07 12:42  Regina Obe <lr at pcorp.us>
 
-	* diagram of shared paths
+	* [r6285] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_sharedpaths01.wkt,
+	  doc/html/image_src/st_sharedpaths02.wkt,
+	  doc/reference_processing.xml: diagram of shared paths
 
-2010-12-07 12:25  robe
+2010-12-07 12:25  Regina Obe <lr at pcorp.us>
 
-	* formatting fixes
+	* [r6284] doc/html/image_src/st_snap04.wkt,
+	  doc/reference_editor.xml: formatting fixes
 
-2010-12-07 12:02  robe
+2010-12-07 12:02  Regina Obe <lr at pcorp.us>
 
-	* more examples to demonstrate its not just limited to 1 point
-	  snapping
+	* [r6283] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_snap04.wkt,
+	  doc/html/image_src/st_snap05.wkt, doc/reference_editor.xml: more
+	  examples to demonstrate its not just limited to 1 point snapping
 
-2010-12-07 08:30  robe
+2010-12-07 08:30  Regina Obe <lr at pcorp.us>
 
-	* looks funny in one row, better put each in separate row
+	* [r6282] doc/reference_editor.xml: looks funny in one row, better
+	  put each in separate row
 
-2010-12-07 07:56  robe
+2010-12-07 07:56  Regina Obe <lr at pcorp.us>
 
-	* example with diagram for ST_Snap
+	* [r6281] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_snap01.wkt,
+	  doc/html/image_src/st_snap02.wkt,
+	  doc/html/image_src/st_snap03.wkt, doc/reference_editor.xml:
+	  example with diagram for ST_Snap
 
-2010-12-06 15:15  robe
+2010-12-06 15:15  Regina Obe <lr at pcorp.us>
 
-	* minor comment corrections
+	* [r6280] doc/xsl/postgis_gardentest.sql.xsl: minor comment
+	  corrections
 
-2010-12-06 15:15  robe
+2010-12-06 15:15  Regina Obe <lr at pcorp.us>
 
-	* start logging sql queries to log table
+	* [r6279] doc/xsl/raster_gardentest.sql.xsl: start logging sql
+	  queries to log table
 
-2010-12-06 15:07  strk
+2010-12-06 15:07  Sandro Santilli <strk at keybit.net>
 
-	* Add a couple more cases provided by RT-SITA
+	* [r6278] regress/sharedpaths.sql, regress/sharedpaths_expected:
+	  Add a couple more cases provided by RT-SITA
 
-2010-12-06 14:52  strk
+2010-12-06 14:52  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_Snap, xref with SnapToGrid
+	* [r6277] doc/reference_editor.xml: Document ST_Snap, xref with
+	  SnapToGrid
 
-2010-12-06 14:21  strk
+2010-12-06 14:21  Sandro Santilli <strk at keybit.net>
 
-	* Fix typo in ST_SharedPaths documentation, add some xrefs
+	* [r6276] doc/reference_processing.xml: Fix typo in ST_SharedPaths
+	  documentation, add some xrefs
 
-2010-12-03 21:38  pramsey
+2010-12-03 21:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates to the WKT parser to report errlocation in more places.
+	* [r6275] liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_out_wkb.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt_lex.c,
+	  liblwgeom/lwin_wkt_lex.l, liblwgeom/lwin_wkt_parse.c,
+	  liblwgeom/lwin_wkt_parse.y, liblwgeom/lwout_wkb.c: Updates to the
+	  WKT parser to report errlocation in more places.
 
-2010-12-03 16:53  pramsey
+2010-12-03 16:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make use of ptarray api for manipulating serialized_pointlist
+	* [r6274] liblwgeom/liblwgeom.h, liblwgeom/ptarray.c,
+	  postgis/lwgeom_geos.c: Make use of ptarray api for manipulating
+	  serialized_pointlist
 
-2010-12-03 15:53  pramsey
+2010-12-03 15:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove a couple warnings.
+	* [r6273] postgis/lwgeom_functions_basic.c, postgis/lwgeom_ogc.c:
+	  Remove a couple warnings.
 
-2010-12-03 10:13  strk
+2010-12-03 10:13  Sandro Santilli <strk at keybit.net>
 
-	* Add SNAP test reported on JTS mailing list
+	* [r6272] regress/snap.sql, regress/snap_expected: Add SNAP test
+	  reported on JTS mailing list
 
-2010-12-03 09:53  strk
+2010-12-03 09:53  Sandro Santilli <strk at keybit.net>
 
-	* Fix release of wrong memory (same bug as #670, found here for
-	  copy&paste)
+	* [r6271] postgis/lwgeom_geos_snap.c: Fix release of wrong memory
+	  (same bug as #670, found here for copy&paste)
 
-2010-12-03 09:22  strk
+2010-12-03 09:22  Sandro Santilli <strk at keybit.net>
 
-	* FREE the right argument (fixes bug #670)
+	* [r6270] postgis/lwgeom_geos_sharedpaths.c: FREE the right
+	  argument (fixes bug #670)
 
-2010-12-03 09:00  strk
+2010-12-03 09:00  Sandro Santilli <strk at keybit.net>
 
-	* Add test for bug 670
+	* [r6269] regress/sharedpaths.sql, regress/sharedpaths_expected:
+	  Add test for bug 670
 
-2010-12-03 05:40  robe
+2010-12-03 05:40  Regina Obe <lr at pcorp.us>
 
-	* document st_sharedpaths and alphabetize listings
+	* [r6268] doc/reference_processing.xml: document st_sharedpaths and
+	  alphabetize listings
 
-2010-12-02 20:38  pramsey
+2010-12-02 20:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change i18n instructions to use shp2pgsql_LANG.po as format for
-	  po file names.
+	* [r6267] loader/Makefile.in, loader/README.i18n: Change i18n
+	  instructions to use shp2pgsql_LANG.po as format for po file
+	  names.
 
-2010-12-02 20:35  pramsey
+2010-12-02 20:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove serialized_pointlist direct access from ./postgis
+	* [r6266] postgis/lwgeom_functions_basic.c: Remove
+	  serialized_pointlist direct access from ./postgis
 
-2010-12-02 19:09  pramsey
+2010-12-02 19:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move is_closed fully to liblwgeom and remove LWGEOM_INSPECTED
-	  from IsClosed
+	* [r6265] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  postgis/lwgeom_ogc.c: Move is_closed fully to liblwgeom and
+	  remove LWGEOM_INSPECTED from IsClosed
 
-2010-12-02 18:52  pramsey
+2010-12-02 18:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED from pointn, startpoint, endpoint, and
-	  migrate functionality to liblwgeom.
+	* [r6264] liblwgeom/liblwgeom.h, liblwgeom/lwline.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_ogc.c,
+	  regress/regress_ogc.sql, regress/regress_ogc_expected: Remove
+	  LWGEOM_INSPECTED from pointn, startpoint, endpoint, and migrate
+	  functionality to liblwgeom.
 
-2010-12-02 18:12  strk
+2010-12-02 18:12  Sandro Santilli <strk at keybit.net>
 
-	* ST_Snap and regress testing
+	* [r6263] postgis/Makefile.in, postgis/lwgeom_geos_snap.c,
+	  postgis/postgis.sql.in.c, regress/Makefile.in, regress/snap.sql,
+	  regress/snap_expected: ST_Snap and regress testing
 
-2010-12-02 18:01  pramsey
+2010-12-02 18:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED from PointN
+	* [r6262] postgis/lwgeom_ogc.c: Remove LWGEOM_INSPECTED from PointN
 
-2010-12-02 17:46  pramsey
+2010-12-02 17:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED from NumInteriorRings
+	* [r6261] postgis/lwgeom_ogc.c: Remove LWGEOM_INSPECTED from
+	  NumInteriorRings
 
-2010-12-02 17:39  pramsey
+2010-12-02 17:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove unused function
+	* [r6260] postgis/lwgeom_ogc.c: Remove unused function
 
-2010-12-02 17:38  pramsey
+2010-12-02 17:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED from ndims
+	* [r6259] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  postgis/lwgeom_ogc.c: Remove LWGEOM_INSPECTED from ndims
 
-2010-12-02 17:18  pramsey
+2010-12-02 17:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove INSPECTED from numpoints
+	* [r6258] postgis/lwgeom_ogc.c, regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected: Remove INSPECTED from
+	  numpoints
 
-2010-12-02 16:25  mloskot
+2010-12-02 16:25  Mateusz Loskot <mateusz at loskot.net>
 
-	* Updated SQL scripts location in the database building makefile
+	* [r6257] raster/scripts/python/Makefile.rt.sample: Updated SQL
+	  scripts location in the database building makefile
 
-2010-12-02 16:13  pramsey
+2010-12-02 16:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove GET_GETTYPE from some functions.
+	* [r6256] liblwgeom/lwgeom.c: Remove GET_GETTYPE from some
+	  functions.
 
-2010-12-02 16:06  robe
+2010-12-02 16:06  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6255] doc/xsl/postgis_gardentest.sql.xsl: fix typo
 
-2010-12-02 15:55  pramsey
+2010-12-02 15:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED from ST_Union
+	* [r6253] postgis/lwgeom_geos.c, regress/regress_ogc.sql,
+	  regress/regress_ogc_expected: Remove LWGEOM_INSPECTED from
+	  ST_Union
 
-2010-12-02 15:54  robe
+2010-12-02 15:54  Regina Obe <lr at pcorp.us>
 
-	* remove ~= geography according to garden tests geography doesn't
+	* [r6252] doc/reference_operator.xml, doc/reference_output.xml:
+	  remove ~= geography according to garden tests geography doesn't
 	  have such an operator. Also put in version number arg name to
 	  make GeoJSON easier to test
 
-2010-12-02 15:51  robe
+2010-12-02 15:51  Regina Obe <lr at pcorp.us>
 
-	* all test sql statements should be logged to postgis_garden_log
-	  and successful results output to postgis_garden_log_output
+	* [r6251] doc/xsl/postgis_gardentest.sql.xsl: all test sql
+	  statements should be logged to postgis_garden_log and successful
+	  results output to postgis_garden_log_output
 
-2010-12-02 15:37  pramsey
+2010-12-02 15:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Pass iconv header flags to cpp in all cases.
+	* [r6250] loader/Makefile.in: Pass iconv header flags to cpp in all
+	  cases.
 
-2010-12-02 15:29  mloskot
+2010-12-02 15:29  Mateusz Loskot <mateusz at loskot.net>
 
-	* Fixed invalid on-error return value from rt_raster_add_band
+	* [r6249] raster/rt_core/rt_api.c: Fixed invalid on-error return
+	  value from rt_raster_add_band
 
-2010-12-02 15:28  mloskot
+2010-12-02 15:28  Mateusz Loskot <mateusz at loskot.net>
 
-	* Updated the raster messages output by the configure script.
+	* [r6248] configure.ac: Updated the raster messages output by the
+	  configure script.
 
-2010-12-02 14:40  jorgearevalo
+2010-12-02 14:40  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Changed SRID by srid in LWPOLY structure call. Due to change in
-	  r6204
+	* [r6247] raster/test/core/testapi.c: Changed SRID by srid in
+	  LWPOLY structure call. Due to change in r6204
 
-2010-12-02 06:55  robe
+2010-12-02 06:55  Regina Obe <lr at pcorp.us>
 
-	* start logging the sql to postgis_garden_log table and store the
-	  output as xml in postgis_garden_log_output. Still more to fix.
-	  This will hopefully make it easier for vegetable gardeners to
-	  pick ripe vegetables.
+	* [r6246] doc/xsl/postgis_gardentest.sql.xsl: start logging the sql
+	  to postgis_garden_log table and store the output as xml in
+	  postgis_garden_log_output. Still more to fix. This will hopefully
+	  make it easier for vegetable gardeners to pick ripe vegetables.
 
-2010-12-02 03:43  pramsey
+2010-12-02 03:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add i18n string wrapper for pgsql2shp utility too.
+	* [r6245] loader/Makefile.in, loader/pgsql2shp-cli.c,
+	  loader/pgsql2shp-core.c, loader/pgsql2shp-core.h,
+	  loader/shp2pgsql-cli.c: Add i18n string wrapper for pgsql2shp
+	  utility too.
 
-2010-12-02 00:51  pramsey
+2010-12-02 00:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Now for sure.
+	* [r6244] macros/progtest.m4: Now for sure.
 
-2010-12-02 00:50  pramsey
+2010-12-02 00:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Final one?
+	* [r6243] macros/lib-ld.m4: Final one?
 
-2010-12-02 00:48  pramsey
+2010-12-02 00:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More NLS macros
+	* [r6242] macros/lib-link.m4, macros/lib-prefix.m4: More NLS macros
 
-2010-12-02 00:47  pramsey
+2010-12-02 00:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add another NLS macro
+	* [r6241] macros/po.m4: Add another NLS macro
 
-2010-12-02 00:46  pramsey
+2010-12-02 00:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add needed macro
+	* [r6240] macros/codeset.m4: Add needed macro
 
-2010-12-02 00:44  pramsey
+2010-12-02 00:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* First attempt at i18n for the loader/dumper.
+	* [r6239] configure.ac, loader/Makefile.in, loader/README.i18n,
+	  loader/README.txt, loader/po, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, macros/gettext.m4, macros/iconv.m4,
+	  macros/intl.m4, macros/intldir.m4, macros/intlmacosx.m4,
+	  macros/intltool.m4, macros/nls.m4: First attempt at i18n for the
+	  loader/dumper.
 
-2010-12-01 20:28  pramsey
+2010-12-01 20:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED from perimeter calculation
+	* [r6238] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/libtgeom.c, liblwgeom/libtgeom.h,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/measures.c,
+	  postgis/lwgeom_functions_basic.c: Remove LWGEOM_INSPECTED from
+	  perimeter calculation
 
-2010-12-01 19:59  pramsey
+2010-12-01 19:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED from transform functions
+	* [r6237] postgis/lwgeom_transform.c: Remove LWGEOM_INSPECTED from
+	  transform functions
 
-2010-12-01 18:13  strk
+2010-12-01 18:13  Sandro Santilli <strk at keybit.net>
 
-	* Add regression testing for ST_SharedPaths
+	* [r6236] regress/Makefile.in, regress/sharedpaths.sql,
+	  regress/sharedpaths_expected: Add regression testing for
+	  ST_SharedPaths
 
-2010-12-01 18:11  strk
+2010-12-01 18:11  Sandro Santilli <strk at keybit.net>
 
-	* Support typed multi* empties, just enough fro ST_SharedEdge (see
-	  issue #673 for more)
+	* [r6235] postgis/lwgeom_geos.c: Support typed multi* empties, just
+	  enough fro ST_SharedEdge (see issue #673 for more)
 
-2010-12-01 16:23  strk
+2010-12-01 16:23  Sandro Santilli <strk at keybit.net>
 
-	* Fix builds against libgeos < 3.3.0
+	* [r6234] postgis/lwgeom_geos_sharedpaths.c: Fix builds against
+	  libgeos < 3.3.0
 
-2010-12-01 16:23  strk
+2010-12-01 16:23  Sandro Santilli <strk at keybit.net>
 
-	* Retain SRID in output
+	* [r6233] postgis/lwgeom_geos_sharedpaths.c: Retain SRID in output
 
-2010-12-01 16:15  strk
+2010-12-01 16:15  Sandro Santilli <strk at keybit.net>
 
-	* Newer script (2009 rather than 2006). Hoping others' won't have
-	  it updated (my ./autogen.sh runs always update it)
+	* [r6232] install-sh: Newer script (2009 rather than 2006). Hoping
+	  others' won't have it updated (my ./autogen.sh runs always update
+	  it)
 
-2010-12-01 15:54  strk
+2010-12-01 15:54  Sandro Santilli <strk at keybit.net>
 
-	* Build and register ST_SharedPaths
+	* [r6231] postgis/Makefile.in, postgis/postgis.sql.in.c: Build and
+	  register ST_SharedPaths
 
-2010-12-01 15:42  strk
+2010-12-01 15:42  Sandro Santilli <strk at keybit.net>
 
-	* postgis/Makefile is generated from postgis/Makefile.in by
-	  ./configure
+	* [r6230] postgis/Makefile: postgis/Makefile is generated from
+	  postgis/Makefile.in by ./configure
 
-2010-12-01 15:12  robe
+2010-12-01 15:12  Regina Obe <lr at pcorp.us>
 
-	* no fair -- I want a collection of empties too
+	* [r6229] doc/xsl/postgis_gardentest.sql.xsl: no fair -- I want a
+	  collection of empties too
 
-2010-12-01 15:07  strk
+2010-12-01 15:07  Sandro Santilli <strk at keybit.net>
 
-	* typo
+	* [r6228] postgis/postgis.sql.in.c: typo
 
-2010-12-01 14:56  strk
+2010-12-01 14:56  Sandro Santilli <strk at keybit.net>
 
-	* Test dumping an insanely _empty_ geometry
+	* [r6227] regress/dump.sql, regress/dump_expected: Test dumping an
+	  insanely _empty_ geometry
 
-2010-12-01 14:44  strk
+2010-12-01 14:44  Sandro Santilli <strk at keybit.net>
 
-	* Test ST_Dump(EMPTY)
+	* [r6226] regress/dump.sql, regress/dump_expected: Test
+	  ST_Dump(EMPTY)
 
-2010-12-01 14:41  strk
+2010-12-01 14:41  Sandro Santilli <strk at keybit.net>
 
-	* Add test for ST_Dump
+	* [r6225] regress/Makefile.in, regress/dump.sql,
+	  regress/dump_expected: Add test for ST_Dump
 
-2010-12-01 13:57  strk
+2010-12-01 13:57  Sandro Santilli <strk at keybit.net>
 
-	* some ignores
+	* [r6224] .gitignore: some ignores
 
-2010-12-01 13:57  strk
+2010-12-01 13:57  Sandro Santilli <strk at keybit.net>
 
-	* Execute bit
+	* [r6223] utils/postgis_restore.pl: Execute bit
 
-2010-12-01 13:57  strk
+2010-12-01 13:57  Sandro Santilli <strk at keybit.net>
 
-	* Build ST_SharedPaths function (currently returning a
+	* [r6222] postgis/Makefile, postgis/lwgeom_geos_sharedpaths.c:
+	  Build ST_SharedPaths function (currently returning a
 	  geometrycollection)
 
-2010-12-01 01:02  pramsey
-
-	* Add stringbuffer_create_size() to allow different starting sizes
-	  for the buffer
+2010-12-01 01:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-12-01 00:53  pramsey
-
-	* Move affine transforms into liblwgeom and expunge
-	  LWGEOM_INSPECTED
+	* [r6221] liblwgeom/stringbuffer.c, liblwgeom/stringbuffer.h: Add
+	  stringbuffer_create_size() to allow different starting sizes for
+	  the buffer
 
-2010-12-01 00:00  pramsey
+2010-12-01 00:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make spheroid distance respect z if it's there.
+	* [r6220] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwgeom.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_basic.c: Move affine transforms into
+	  liblwgeom and expunge LWGEOM_INSPECTED
 
-2010-11-30 23:46  pramsey
+2010-12-01 00:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old length_ellipse functions
+	* [r6219] liblwgeom/lwgeodetic.c: Make spheroid distance respect z
+	  if it's there.
 
-2010-11-30 23:44  pramsey
+2010-11-30 23:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move spheroid length calculation to using same function as
-	  geography
+	* [r6218] postgis/lwgeom_spheroid.c: Remove old length_ellipse
+	  functions
 
-2010-11-30 23:23  pramsey
+2010-11-30 23:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Include some extra memory freeing in the force_ndims variants.
+	* [r6217] postgis/geography_measurement.c,
+	  postgis/lwgeom_spheroid.c, regress/measures.sql,
+	  regress/measures_expected: Move spheroid length calculation to
+	  using same function as geography
 
-2010-11-30 22:55  pramsey
+2010-11-30 23:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move length calculations fully to liblwgeom and remove
-	  LWGEOM_INSPECTED
+	* [r6216] postgis/lwgeom_functions_basic.c: Include some extra
+	  memory freeing in the force_ndims variants.
 
-2010-11-30 21:54  pramsey
+2010-11-30 22:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move area calculations fully to liblwgeom and remove
+	* [r6215] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c, liblwgeom/lwline.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/measures.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_spheroid.c: Move
+	  length calculations fully to liblwgeom and remove
 	  LWGEOM_INSPECTED
 
-2010-11-30 21:35  pramsey
+2010-11-30 21:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED from AsGML and AsKML
-
-2010-11-30 20:11  pramsey
-
-	* Remove LWGEOM_INSPECTED from AsGeoJSON
+	* [r6214] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/measures.c,
+	  postgis/lwgeom_functions_basic.c: Move area calculations fully to
+	  liblwgeom and remove LWGEOM_INSPECTED
 
-2010-11-30 19:02  pramsey
+2010-11-30 21:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LWGEOM_INSPECTED from AsSVG
+	* [r6213] liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwout_kml.c,
+	  postgis/geography_inout.c, postgis/lwgeom_export.c: Remove
+	  LWGEOM_INSPECTED from AsGML and AsKML
 
-2010-11-30 07:02  robe
+2010-11-30 20:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* more logging cleanup and add create index test for
-	  geometry/geography. Change verison number arg in ST_GeoJSON so
-	  can stuff the right value in testing
+	* [r6212] liblwgeom/cunit/cu_out_geojson.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwout_geojson.c, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c: Remove LWGEOM_INSPECTED from AsGeoJSON
 
-2010-11-29 13:02  robe
+2010-11-30 19:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* more mistakes
+	* [r6211] liblwgeom/cunit/cu_out_svg.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwout_svg.c, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c: Remove LWGEOM_INSPECTED from AsSVG
 
-2010-11-29 12:55  robe
+2010-11-30 07:02  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6210] doc/reference_output.xml,
+	  doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/raster_gardentest.sql.xsl: more logging cleanup and add
+	  create index test for geometry/geography. Change verison number
+	  arg in ST_GeoJSON so can stuff the right value in testing
 
-2010-11-26 16:55  robe
+2010-11-29 13:02  Regina Obe <lr at pcorp.us>
 
-	* fix more mistakes in table logging. replace toxic curved
-	  geometries with little more harmless. Get rid of false positive
-	  relationships by forcing geometries to have bounding boxes that
-	  intersect at least sometimes.
+	* [r6209] doc/reference_raster.xml: more mistakes
 
-2010-11-26 13:40  robe
+2010-11-29 12:55  Regina Obe <lr at pcorp.us>
 
-	* put back curved geometries. Had taken them out in 1.4, but guess
-	  never put them back because of distance issues. Also some other
-	  minor cleanup
+	* [r6208] doc/reference_raster.xml: fix typo
 
-2010-11-25 18:38  colivier
+2010-11-26 16:55  Regina Obe <lr at pcorp.us>
 
-	* Change POINTARRAY.dims to POINTARRAY.flags. Related to #658
+	* [r6207] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/raster_gardentest.sql.xsl: fix more mistakes in table
+	  logging. replace toxic curved geometries with little more
+	  harmless. Get rid of false positive relationships by forcing
+	  geometries to have bounding boxes that intersect at least
+	  sometimes.
 
-2010-11-25 17:34  colivier
+2010-11-26 13:40  Regina Obe <lr at pcorp.us>
 
-	* Change SRID to srid in LWGEOM struct (and also in CHIP too).
-	  Rename some functions related to SRID from Camel notation to
-	  lower case: errorIfSRIDMismatch, pglwgeom_getSRID,
-	  pglwgeom_setSRID, LWGEOM_getSRID, LWGEOM_setSRID, hasSRID.
-	  Related to #658
+	* [r6206] doc/xsl/postgis_gardentest.sql.xsl: put back curved
+	  geometries. Had taken them out in 1.4, but guess never put them
+	  back because of distance issues. Also some other minor cleanup
 
-2010-11-24 23:44  robe
+2010-11-25 18:38  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* fix casing in dropRastertable
+	* [r6205] liblwgeom/g_serialized.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwline.c,
+	  liblwgeom/lwout_geojson.c, liblwgeom/lwout_gml.c,
+	  liblwgeom/lwout_kml.c, liblwgeom/lwout_wkb.c,
+	  liblwgeom/lwout_wkt.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwtriangle.c,
+	  liblwgeom/measures.c, liblwgeom/ptarray.c, postgis/lwgeom_chip.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_spheroid.c: Change POINTARRAY.dims to
+	  POINTARRAY.flags. Related to #658
 
-2010-11-24 22:29  robe
+2010-11-25 17:34  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* fix table casing in Addrastercolumn
+	* [r6204] liblwgeom/cunit/cu_surface.c, liblwgeom/g_serialized.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwhomogenize.c,
+	  liblwgeom/lwline.c, liblwgeom/lwmcurve.c, liblwgeom/lwmline.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwout_wkb.c,
+	  liblwgeom/lwout_wkt.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwpsurface.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwtin.c, liblwgeom/lwtriangle.c, liblwgeom/lwutil.c,
+	  loader/shp2pgsql-core.c, postgis/geography_inout.c,
+	  postgis/lwgeom_box2dfloat4.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_btree.c, postgis/lwgeom_chip.c,
+	  postgis/lwgeom_dump.c, postgis/lwgeom_estimate.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_export.h,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_geos_prepared.c, postgis/lwgeom_geos_split.c,
+	  postgis/lwgeom_gist.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_pg.c, postgis/lwgeom_pg.h,
+	  postgis/lwgeom_spheroid.c, postgis/lwgeom_transform.c,
+	  postgis/lwgeom_transform.h, postgis/postgis.sql.in.c: Change SRID
+	  to srid in LWGEOM struct (and also in CHIP too). Rename some
+	  functions related to SRID from Camel notation to lower case:
+	  errorIfSRIDMismatch, pglwgeom_getSRID, pglwgeom_setSRID,
+	  LWGEOM_getSRID, LWGEOM_setSRID, hasSRID. Related to #658
 
-2010-11-24 17:49  pramsey
+2010-11-24 23:44  Regina Obe <lr at pcorp.us>
 
-	* Fully free temporary ptarray
+	* [r6203] doc/xsl/raster_gardentest.sql.xsl: fix casing in
+	  dropRastertable
 
-2010-11-24 17:46  robe
+2010-11-24 22:29  Regina Obe <lr at pcorp.us>
 
-	* reenable st_curvetoline and st_linetocurve functions. Seem to
-	  work now.
+	* [r6202] doc/xsl/raster_gardentest.sql.xsl: fix table casing in
+	  Addrastercolumn
 
-2010-11-24 15:41  robe
+2010-11-24 17:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Exclude ST_MinimumBoundingCircle from testing. That uses
-	  ST_AddPoint too.
+	* [r6201] liblwgeom/lwsegmentize.c: Fully free temporary ptarray
 
-2010-11-24 13:34  robe
+2010-11-24 17:46  Regina Obe <lr at pcorp.us>
 
-	* change polygon z and m building to not use ST_AddPoint and remove
-	  ST_AddPoint from testing until it works again. Put ST_Transform
-	  back.
+	* [r6200] doc/xsl/postgis_gardentest.sql.xsl: reenable
+	  st_curvetoline and st_linetocurve functions. Seem to work now.
 
-2010-11-24 01:09  pramsey
+2010-11-24 15:41  Regina Obe <lr at pcorp.us>
 
-	* Inherit gbox flags from lwgeom when calculating. This makes
-	  sense.
+	* [r6199] doc/xsl/postgis_gardentest.sql.xsl: Exclude
+	  ST_MinimumBoundingCircle from testing. That uses ST_AddPoint too.
 
-2010-11-24 01:06  pramsey
+2010-11-24 13:34  Regina Obe <lr at pcorp.us>
 
-	* Initialize static GBOX flags to zero to avoid nastiness.
+	* [r6198] doc/xsl/postgis_gardentest.sql.xsl: change polygon z and
+	  m building to not use ST_AddPoint and remove ST_AddPoint from
+	  testing until it works again. Put ST_Transform back.
 
-2010-11-24 00:39  pramsey
+2010-11-24 01:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Tighten up lwgeodetic a little
+	* [r6197] liblwgeom/lwgeodetic.c: Inherit gbox flags from lwgeom
+	  when calculating. This makes sense.
 
-2010-11-24 00:28  pramsey
+2010-11-24 01:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ensure that flags are initialized cleanly in constructors
+	* [r6196] liblwgeom/lwgeodetic.c: Initialize static GBOX flags to
+	  zero to avoid nastiness.
 
-2010-11-23 23:47  pramsey
+2010-11-24 00:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update geography functions to use the in-build .flags attribute
-	  on LWGEOM
+	* [r6195] liblwgeom/lwgeodetic.c: Tighten up lwgeodetic a little
 
-2010-11-23 20:22  pramsey
+2010-11-24 00:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove libgeom.h
+	* [r6194] liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwline.c, liblwgeom/lwmcurve.c, liblwgeom/lwmline.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwpsurface.c, liblwgeom/lwtin.c,
+	  liblwgeom/lwtriangle.c, postgis/geography_measurement.c: Ensure
+	  that flags are initialized cleanly in constructors
 
-2010-11-23 15:49  robe
+2010-11-23 23:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* fix casing of pixel types
+	* [r6193] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_ptarray.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, liblwgeom/lwspheroid.c,
+	  postgis/geography_inout.c, postgis/geography_measurement.c,
+	  postgis/lwgeom_spheroid.c: Update geography functions to use the
+	  in-build .flags attribute on LWGEOM
 
-2010-11-23 00:44  pramsey
+2010-11-23 20:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the ptarray_add_point behavior more explicit.
+	* [r6192] liblwgeom/Makefile.in, liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_in_wkb.c, liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_out_kml.c,
+	  liblwgeom/cunit/cu_out_svg.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_out_wkt.c, liblwgeom/libgeom.h: Remove
+	  libgeom.h
 
-2010-11-23 00:23  pramsey
+2010-11-23 15:49  Regina Obe <lr at pcorp.us>
 
-	* Remove dlfcn.h. Doesn't seem to make any difference under OS/X.
+	* [r6191] doc/xsl/raster_gardentest.sql.xsl: fix casing of pixel
+	  types
 
-2010-11-23 00:16  pramsey
+2010-11-23 00:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update force2d to preserve repeated points.
+	* [r6190] liblwgeom/cunit/cu_ptarray.c,
+	  liblwgeom/examples/unparser.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwin_wkt.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/ptarray.c,
+	  loader/shp2pgsql-core.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_rtree.c: Make the ptarray_add_point behavior more
+	  explicit.
 
-2010-11-22 22:33  pramsey
+2010-11-23 00:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in actual cu_ptarray.c test file
+	* [r6189] liblwgeom/cunit/cu_tester.c: Remove dlfcn.h. Doesn't seem
+	  to make any difference under OS/X.
 
-2010-11-22 22:23  pramsey
+2010-11-23 00:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make ptarray_append_point handle higher dimensions more
-	  consistently.
+	* [r6188] liblwgeom/liblwgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/ptarray.c: Update force2d to preserve repeated points.
 
-2010-11-22 19:24  pramsey
+2010-11-22 22:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make LWGEOM_expand use the ptarray API
+	* [r6187] liblwgeom/cunit/cu_ptarray.c: Add in actual cu_ptarray.c
+	  test file
 
-2010-11-22 15:43  robe
+2010-11-22 22:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* change to not use skewed rasters and insure when point is used in
-	  falls in the raster to prevent unnecessary alarms
+	* [r6186] liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/ptarray.c: Make ptarray_append_point handle higher
+	  dimensions more consistently.
 
-2010-11-22 15:17  robe
+2010-11-22 19:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* fix more bugs in test
+	* [r6185] postgis/lwgeom_functions_basic.c: Make LWGEOM_expand use
+	  the ptarray API
 
-2010-11-22 13:34  robe
+2010-11-22 15:43  Regina Obe <lr at pcorp.us>
 
-	* fix some bugs in tests. More fixes to come
+	* [r6184] doc/xsl/raster_gardentest.sql.xsl: change to not use
+	  skewed rasters and insure when point is used in falls in the
+	  raster to prevent unnecessary alarms
 
-2010-11-21 19:13  colivier
+2010-11-22 15:17  Regina Obe <lr at pcorp.us>
 
-	* Add triangle support for ST_Transform. Fix #600. Thanks to Regina
-	  for report !
+	* [r6183] doc/xsl/raster_gardentest.sql.xsl: fix more bugs in test
 
-2010-11-21 19:02  colivier
+2010-11-22 13:34  Regina Obe <lr at pcorp.us>
 
-	* #658 part 1. Enhance LWGEOM struct (type, flags and GBOX) and
-	  related functions call.
+	* [r6182] doc/xsl/raster_gardentest.sql.xsl: fix some bugs in
+	  tests. More fixes to come
 
-2010-11-19 22:12  pramsey
+2010-11-21 19:13  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Revert GML change. Hm.
+	* [r6181] postgis/lwgeom_transform.c: Add triangle support for
+	  ST_Transform. Fix #600. Thanks to Regina for report !
 
-2010-11-19 21:51  pramsey
+2010-11-21 19:02  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Change in gml regression to match what seems to be the right
-	  answers.
+	* [r6180] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_surface.c, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/lex.yy.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/libtgeom.c,
+	  liblwgeom/libtgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwhomogenize.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwline.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwout_geojson.c,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwout_kml.c,
+	  liblwgeom/lwout_wkb.c, liblwgeom/lwout_wkt.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c, liblwgeom/lwpsurface.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwspheroid.c,
+	  liblwgeom/lwtin.c, liblwgeom/lwtriangle.c, liblwgeom/lwutil.c,
+	  liblwgeom/measures.c, liblwgeom/measures.h, liblwgeom/ptarray.c,
+	  loader/shp2pgsql-core.c, postgis/geography_inout.c,
+	  postgis/lwgeom_box2dfloat4.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_geos_split.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c, postgis/lwgeom_ogc.c,
+	  postgis/lwgeom_transform.c: #658 part 1. Enhance LWGEOM struct
+	  (type, flags and GBOX) and related functions call.
 
-2010-11-18 18:37  pramsey
+2010-11-19 22:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Flip nrings function from serialized to lwgeom based.
+	* [r6179] regress/in_gml_expected: Revert GML change. Hm.
 
-2010-11-18 18:13  pramsey
+2010-11-19 21:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change over npoints to use an lwgeom based function intead of
-	  serialized.
+	* [r6178] regress/in_gml_expected: Change in gml regression to
+	  match what seems to be the right answers.
 
-2010-11-18 05:28  pramsey
+2010-11-18 18:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* An argument for git. This massive commit includes the renaming of
-	  function in the ptarray API, the removal of some pointArray_*
-	  variants in favor of ptarray_* variants, and, importantly, the
-	  adition of _append_point and _insert_point options for
-	  pointarrays. Functions have been switched over to using the API
-	  instead of managing the serialized_pointlist themselves. This has
-	  necessitated the re-writing of some functions. Simplify2d and
-	  Force2d have been re-written as lwgeom functions instead of
-	  serialized form functions, and moved into liblwgeom. There are
-	  still some major functions to move into liblwgeom, including the
-	  point_in_polygon functions that support the intersects shortcuts
-	  and the linear referencing fuctions in lwgeom_functions_analytic.
+	* [r6177] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  postgis/lwgeom_functions_basic.c: Flip nrings function from
+	  serialized to lwgeom based.
 
-2010-11-16 17:25  robe
+2010-11-18 18:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* minor logging corrections
+	* [r6176] liblwgeom/cunit/cu_misc.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, postgis/lwgeom_functions_basic.c: Change over
+	  npoints to use an lwgeom based function intead of serialized.
 
-2010-11-14 18:10  jorgearevalo
+2010-11-18 05:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added MapAlgebra prerequisites to raster core.
+	* [r6175] liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_misc.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/examples/unparser.c, liblwgeom/g_serialized.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/libtgeom.c, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgeom_api.c, liblwgeom/lwin_wkt.c,
+	  liblwgeom/lwline.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwtriangle.c,
+	  liblwgeom/ptarray.c, loader/shp2pgsql-core.c,
+	  postgis/geography_inout.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_rtree.c, postgis/lwgeom_transform.c,
+	  raster/rt_core/rt_api.c: An argument for git. This massive commit
+	  includes the renaming of function in the ptarray API, the removal
+	  of some pointArray_* variants in favor of ptarray_* variants,
+	  and, importantly, the adition of _append_point and _insert_point
+	  options for pointarrays. Functions have been switched over to
+	  using the API instead of managing the serialized_pointlist
+	  themselves. This has necessitated the re-writing of some
+	  functions. Simplify2d and Force2d have been re-written as lwgeom
+	  functions instead of serialized form functions, and moved into
+	  liblwgeom. There are still some major functions to move into
+	  liblwgeom, including the point_in_polygon functions that support
+	  the intersects shortcuts and the linear referencing fuctions in
+	  lwgeom_functions_analytic.
+
+2010-11-16 17:25  Regina Obe <lr at pcorp.us>
+
+	* [r6174] doc/xsl/postgis_gardentest.sql.xsl: minor logging
+	  corrections
 
-2010-11-12 15:48  robe
+2010-11-14 18:10  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Update 9.0 FAQ to include npgsql fixed driver for bytea support
+	* [r6173] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h: Added
+	  MapAlgebra prerequisites to raster core.
 
-2010-11-04 23:21  pramsey
+2010-11-12 15:48  Regina Obe <lr at pcorp.us>
 
-	* Change pointArray_construct() to
-	  ptarray_construct_reference_data()
+	* [r6172] doc/faq.xml: Update 9.0 FAQ to include npgsql fixed
+	  driver for bytea support
 
-2010-11-02 14:20  robe
+2010-11-04 23:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* add relevant references
+	* [r6170] liblwgeom/cunit/cu_geodetic.c, liblwgeom/g_serialized.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwline.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_box2dfloat4.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_ogc.c: Change
+	  pointArray_construct() to ptarray_construct_reference_data()
 
-2010-11-02 06:20  pramsey
+2010-11-02 14:20  Regina Obe <lr at pcorp.us>
 
-	* Change over to lwgeom_is_collection where appropriate.
+	* [r6168] doc/reference_processing.xml: add relevant references
 
-2010-11-02 05:52  pramsey
+2010-11-02 06:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove unused function. Rename lwgeom_is_collection to
+	* [r6167] liblwgeom/lwgeom.c, liblwgeom/measures.c,
+	  liblwgeom/measures.h, liblwgeom/measures3d.c,
+	  liblwgeom/measures3d.h, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos_clean.c,
+	  postgis/lwgeom_geos_split.c: Change over to lwgeom_is_collection
+	  where appropriate.
+
+2010-11-02 05:52  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r6166] liblwgeom/liblwgeom.h, liblwgeom/liblwgeom_internal.h,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwhomogenize.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/measures.c,
+	  liblwgeom/measures3d.c, loader/pgsql2shp-core.c,
+	  postgis/lwgeom_dump.c, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_split.c: Remove
+	  unused function. Rename lwgeom_is_collection to
 	  lwtype_is_collection.
 
-2010-11-01 21:03  kneufeld
+2010-11-01 21:03  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* try an experiment to fix Docbook and MathML compatibility issues.
+	* [r6165] doc/postgis.xml, doc/using_postgis_dataman.xml: try an
+	  experiment to fix Docbook and MathML compatibility issues.
 	  upgrade Docbook to 4.5
 	  upgrade MathML to 2.0
 	  
@@ -24802,613 +41295,849 @@
 	  
 	  "make check" should now pass without incident.
 
-2010-11-01 14:48  robe
+2010-11-01 14:48  Regina Obe <lr at pcorp.us>
 
-	* logging for multi arg functions
-
-2010-11-01 14:07  robe
-
-	* Get rid of WKT in credits and some minor spring cleaning
+	* [r6164] doc/xsl/postgis_gardentest.sql.xsl: logging for multi arg
+	  functions
 
-2010-11-01 08:15  pramsey
+2010-11-01 14:07  Regina Obe <lr at pcorp.us>
 
-	* Fix liblwgeom.h reference in generator
+	* [r6163] doc/introduction.xml: Get rid of WKT in credits and some
+	  minor spring cleaning
 
-2010-11-01 08:11  pramsey
+2010-11-01 08:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove DYNPTARRAY and all users of it
+	* [r6162] doc/html/image_src/generator.c: Fix liblwgeom.h reference
+	  in generator
 
-2010-11-01 01:28  pramsey
+2010-11-01 08:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Flip all the internal liblwgeom files over to use
-	  liblwgeom_internal.h
+	* [r6161] liblwgeom/examples/unparser.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/ptarray.c, loader/shp2pgsql-core.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_lrs.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c: Remove DYNPTARRAY and all users of it
+
+2010-11-01 01:28  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r6160] liblwgeom/box2d.c, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/examples/unparser.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/libtgeom.c,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwhomogenize.c,
+	  liblwgeom/lwhomogenize.h, liblwgeom/lwin_wkt.c,
+	  liblwgeom/lwline.c, liblwgeom/lwmcurve.c, liblwgeom/lwmline.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwout_geojson.c,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwout_kml.c,
+	  liblwgeom/lwout_svg.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwprint.c, liblwgeom/lwpsurface.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwtin.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/lwutil.c, liblwgeom/measures.h,
+	  liblwgeom/measures3d.h, liblwgeom/ptarray.c,
+	  liblwgeom/stringbuffer.c: Flip all the internal liblwgeom files
+	  over to use liblwgeom_internal.h
 
-2010-11-01 01:16  pramsey
+2010-11-01 01:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove one use of DYNPTARRAY
+	* [r6159] liblwgeom/libtgeom.c: Remove one use of DYNPTARRAY
 
-2010-10-31 03:19  pramsey
+2010-10-31 03:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove a pair of unused functions.
+	* [r6158] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_api.c: Remove a
+	  pair of unused functions.
 
-2010-10-31 02:31  pramsey
+2010-10-31 02:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Clean out scruft from my G_ phase and start attempting to
-	  separate _internal from external liblwgeom functions.
+	* [r6157] configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_surface.h, liblwgeom/g_box.c,
+	  liblwgeom/g_coord.c, liblwgeom/g_geometry.c,
+	  liblwgeom/g_ptarray.c, liblwgeom/g_serialized.c,
+	  liblwgeom/g_util.c, liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/libtgeom.c,
+	  liblwgeom/libtgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, liblwgeom/lwgeom.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwin_wkt.h, liblwgeom/lwout_wkb.c,
+	  liblwgeom/lwout_wkt.c, liblwgeom/lwspheroid.c,
+	  liblwgeom/lwtree.c, liblwgeom/lwtree.h, liblwgeom/measures.c,
+	  postgis/geography_btree.c, postgis/geography_estimate.c,
+	  postgis/geography_gist.c, postgis/geography_inout.c,
+	  postgis/geography_measurement.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_spheroid.c,
+	  postgis_config.h.in, raster: Clean out scruft from my G_ phase
+	  and start attempting to separate _internal from external
+	  liblwgeom functions.
 
-2010-10-30 17:35  strk
+2010-10-30 17:35  Sandro Santilli <strk at keybit.net>
 
-	* ISO C90 forbids mixed declarations and code
+	* [r6156] raster/rt_pg/rt_pg.c: ISO C90 forbids mixed declarations
+	  and code
 
-2010-10-29 22:57  robe
+2010-10-29 22:57  Regina Obe <lr at pcorp.us>
 
-	* put in references to geomval data type
+	* [r6155] doc/reference_raster.xml: put in references to geomval
+	  data type
 
-2010-10-29 22:20  robe
+2010-10-29 22:20  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6154] doc/postgis.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
 
-2010-10-29 21:57  robe
+2010-10-29 21:57  Regina Obe <lr at pcorp.us>
 
-	* switch order back
+	* [r6153] doc/postgis.xml: switch order back
 
-2010-10-29 21:33  robe
+2010-10-29 21:33  Regina Obe <lr at pcorp.us>
 
-	* Include rasters in special function index and switch ordering of
-	  chapters so special function index is at the end again after
-	  raster
+	* [r6152] doc/postgis.xml, doc/xsl/postgis_aggs_mm.xml.xsl: Include
+	  rasters in special function index and switch ordering of chapters
+	  so special function index is at the end again after raster
 
-2010-10-29 13:04  robe
+2010-10-29 13:04  Regina Obe <lr at pcorp.us>
 
-	* test all functions -- first draft -- lots of false negatives
+	* [r6151] doc/xsl/raster_gardentest.sql.xsl: test all functions --
+	  first draft -- lots of false negatives
 
-2010-10-29 12:21  robe
+2010-10-29 12:21  Regina Obe <lr at pcorp.us>
 
-	* fix typo in logging
+	* [r6150] doc/xsl/raster_gardentest.sql.xsl: fix typo in logging
 
-2010-10-29 12:04  robe
+2010-10-29 12:04  Regina Obe <lr at pcorp.us>
 
-	* update to test the raster operators
+	* [r6149] doc/xsl/raster_gardentest.sql.xsl: update to test the
+	  raster operators
 
-2010-10-29 11:28  robe
+2010-10-29 11:28  Regina Obe <lr at pcorp.us>
 
-	* ST_3DDFullyWithin
+	* [r6148] doc/reference_measure.xml: ST_3DDFullyWithin
 
-2010-10-28 23:08  pracine
+2010-10-28 23:08  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* --General enhancement to the script functions. Still a lot of
-	  work to do...
+	* [r6147] raster/scripts/plpgsql/_MapAlgebraParts.sql,
+	  raster/scripts/plpgsql/st_addband.sql,
+	  raster/scripts/plpgsql/st_asraster.sql,
+	  raster/scripts/plpgsql/st_clip.sql,
+	  raster/scripts/plpgsql/st_deleteband.sql,
+	  raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_mapalgebra_optimized.sql,
+	  raster/scripts/plpgsql/st_pixelaspolygons.sql,
+	  raster/scripts/plpgsql/st_reclass.sql,
+	  raster/scripts/plpgsql/st_setvalues.sql,
+	  raster/scripts/plpgsql/st_sevalues.sql,
+	  raster/scripts/plpgsql/st_union.sql: --General enhancement to the
+	  script functions. Still a lot of work to do...
 
-2010-10-28 13:47  robe
+2010-10-28 13:47  Regina Obe <lr at pcorp.us>
 
-	* some cleanup and one more link
+	* [r6146] doc/faq_raster.xml: some cleanup and one more link
 
-2010-10-28 13:10  robe
+2010-10-28 13:10  Regina Obe <lr at pcorp.us>
 
-	* get rid of tabs
+	* [r6145] doc/reference_raster.xml: get rid of tabs
 
-2010-10-28 12:45  robe
+2010-10-28 12:45  Regina Obe <lr at pcorp.us>
 
-	* Try to clarify use of ST_MakeEmptyRaster to address #651
+	* [r6144] doc/reference_raster.xml: Try to clarify use of
+	  ST_MakeEmptyRaster to address #651
 
-2010-10-27 18:01  kneufeld
+2010-10-27 18:01  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated reference to appropriate image in the discussion on
-	  geometry validity
+	* [r6143] doc/html/image_src/st_isvalid09.wkt,
+	  doc/using_postgis_dataman.xml: updated reference to appropriate
+	  image in the discussion on geometry validity
 
-2010-10-27 17:27  kneufeld
+2010-10-27 17:27  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added an example for ST_IsValid that shows a valid multipolygon
-	  that touches at a point.
+	* [r6142] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_isvalid09.wkt,
+	  doc/using_postgis_dataman.xml: added an example for ST_IsValid
+	  that shows a valid multipolygon that touches at a point.
 
-2010-10-27 17:09  kneufeld
+2010-10-27 17:09  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* remove <remark> TODO tag in doc.
+	* [r6141] doc/reference_measure.xml: remove <remark> TODO tag in
+	  doc.
 
-2010-10-27 16:47  robe
+2010-10-27 16:47  Regina Obe <lr at pcorp.us>
 
-	* Logic to test inserting rasters of all different types
+	* [r6140] doc/xsl/raster_gardentest.sql.xsl: Logic to test
+	  inserting rasters of all different types
 
-2010-10-27 14:38  robe
+2010-10-27 14:38  Regina Obe <lr at pcorp.us>
 
-	* First working version of raster garden test -- currently just
-	  does an addrastercolumn for all pixel types supported, drop
-	  raster table and logs completion and timing to raster_garden_log
-	  table
+	* [r6139] doc/reference_raster.xml,
+	  doc/xsl/raster_gardentest.sql.xsl: First working version of
+	  raster garden test -- currently just does an addrastercolumn for
+	  all pixel types supported, drop raster table and logs completion
+	  and timing to raster_garden_log table
 
-2010-10-27 12:51  jorgearevalo
+2010-10-27 12:51  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* gdal2raster.py renamed to raster2pgsql.py. Related ticket #612
+	* [r6138] doc/faq_raster.xml, doc/reference_raster.xml,
+	  raster/scripts/python/Makefile.in,
+	  raster/scripts/python/gdal2raster.py,
+	  raster/scripts/python/raster2pgsql.py: gdal2raster.py renamed to
+	  raster2pgsql.py. Related ticket #612
 
-2010-10-27 11:06  jorgearevalo
+2010-10-27 11:06  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added CC=@CC@ in raster/rt_core/Makefile.in. Related ticket #550.
+	* [r6137] raster/rt_core/Makefile.in: Added CC=@CC@ in
+	  raster/rt_core/Makefile.in. Related ticket #550.
 
-2010-10-26 17:40  jorgearevalo
+2010-10-26 17:40  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Fixes on PostGIS Raster debug system. The raster core uses
+	* [r6136] README.raster, README.raster.debugging, configure.ac,
+	  raster/DEBUG, raster/raster_config.h.in,
+	  raster/rt_core/Makefile.in, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rt_pg.c, raster/test/core/Makefile.in: Fixes on
+	  PostGIS Raster debug system. The raster core uses
 	  default_info_handler() call. Other minor bugs fixed. Created
 	  DEBUG file in
 	  raster directory, similar to postgis/DEBUG file. Erased
 	  references to old raster debug variables in configure.ac. Deleted
 	  old readme file.
 
-2010-10-26 16:41  robe
+2010-10-26 16:41  Regina Obe <lr at pcorp.us>
 
-	* start work on raster garden test generator
+	* [r6135] doc/xsl/raster_gardentest.sql.xsl: start work on raster
+	  garden test generator
 
-2010-10-26 16:40  jorgearevalo
+2010-10-26 16:40  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* New debug system, similar to the PostGIS debug system, with two
-	  sets of macros
+	* [r6134] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rt_pg.h: New debug system,
+	  similar to the PostGIS debug system, with two sets of macros
 	  that depend on the POSTGIS_DEBUG_LEVEL value. Related ticket
 	  #638.
 
-2010-10-26 15:50  robe
+2010-10-26 15:50  Regina Obe <lr at pcorp.us>
 
-	* fix id ref
+	* [r6133] doc/reference_type.xml: fix id ref
 
-2010-10-26 15:42  robe
+2010-10-26 15:42  Regina Obe <lr at pcorp.us>
 
-	* fix build issue -- need more fixing later
+	* [r6132] doc/xsl/postgis_aggs_mm.xml.xsl: fix build issue -- need
+	  more fixing later
 
-2010-10-26 15:01  robe
+2010-10-26 15:01  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6131] doc/xsl/postgis_aggs_mm.xml.xsl: fix typo
 
-2010-10-26 14:47  robe
+2010-10-26 14:47  Regina Obe <lr at pcorp.us>
 
-	* add raster types in in reference_types section and also put in
-	  special indexes section. Will eventually move special indexes
-	  below raster since it will now cover it as well.
+	* [r6130] doc/reference_type.xml, doc/xsl/postgis_aggs_mm.xml.xsl,
+	  doc/xsl/postgis_comments.sql.xsl,
+	  doc/xsl/raster_comments.sql.xsl: add raster types in in
+	  reference_types section and also put in special indexes section.
+	  Will eventually move special indexes below raster since it will
+	  now cover it as well.
 
-2010-10-26 12:46  robe
+2010-10-26 12:46  Regina Obe <lr at pcorp.us>
 
-	* try to get rid of utf stuff again
+	* [r6129] doc/xsl/postgis_aggs_mm.xml.xsl: try to get rid of utf
+	  stuff again
 
-2010-10-25 17:28  pramsey
+2010-10-25 17:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Use ptarray_isclosed to check closure
+	* [r6128] liblwgeom/lwin_wkb.c: Use ptarray_isclosed to check
+	  closure
 
-2010-10-25 16:06  jorgearevalo
+2010-10-25 16:06  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Added svn tag keywords to raster plpgsql scripts. Related ticket
-	  #642.
+	* [r6127] raster/raster_config.h.in,
+	  raster/scripts/plpgsql/st_asraster.sql,
+	  raster/scripts/plpgsql/st_clip.sql,
+	  raster/scripts/plpgsql/st_deleteband.sql,
+	  raster/scripts/plpgsql/st_mapalgebra.sql,
+	  raster/scripts/plpgsql/st_pixelaspolygons.sql,
+	  raster/scripts/plpgsql/st_reclass.sql,
+	  raster/scripts/plpgsql/st_setarray.sql,
+	  raster/scripts/plpgsql/st_sevalues.sql,
+	  raster/scripts/plpgsql/st_union.sql: Added svn tag keywords to
+	  raster plpgsql scripts. Related ticket #642.
 
-2010-10-25 14:46  robe
+2010-10-25 14:46  Regina Obe <lr at pcorp.us>
 
-	* revert
+	* [r6126] doc/xsl/postgis_aggs_mm.xml.xsl: revert
 
-2010-10-25 14:33  robe
+2010-10-25 14:33  Regina Obe <lr at pcorp.us>
 
-	* get rid of utf header entirely -- my xsltproc when run with
-	  make-comments chokes on it.
+	* [r6125] doc/xsl/postgis_aggs_mm.xml.xsl: get rid of utf header
+	  entirely -- my xsltproc when run with make-comments chokes on it.
 
-2010-10-25 05:01  pramsey
+2010-10-25 05:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some WKT tests on EMPTY
+	* [r6124] liblwgeom/cunit/cu_in_wkt.c: Add some WKT tests on EMPTY
 
-2010-10-25 04:57  pramsey
+2010-10-25 04:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add/improve comments, fix SRID handling for EWKT inputs.
+	* [r6123] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt_lex.c,
+	  liblwgeom/lwin_wkt_lex.l, liblwgeom/lwin_wkt_parse.c,
+	  liblwgeom/lwin_wkt_parse.h, liblwgeom/lwin_wkt_parse.y:
+	  Add/improve comments, fix SRID handling for EWKT inputs.
 
-2010-10-25 04:34  pramsey
+2010-10-25 04:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More care handling mixed dimensional inputs and being tolerant of
+	* [r6122] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/lwin_wkt.c: More
+	  care handling mixed dimensional inputs and being tolerant of
 	  wierd stuff
 
-2010-10-25 00:14  pramsey
+2010-10-25 00:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add destructors for the _list elements of the grammar.
+	* [r6121] liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_parse.c, liblwgeom/lwin_wkt_parse.y: Add
+	  destructors for the _list elements of the grammar.
 
-2010-10-24 19:51  pramsey
+2010-10-24 19:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove parse/lex outputs from 'clean' target, add to
-	  'maintainer-clean'
+	* [r6120] liblwgeom/Makefile.in: Remove parse/lex outputs from
+	  'clean' target, add to 'maintainer-clean'
 
-2010-10-24 19:30  pramsey
+2010-10-24 19:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update lexer
+	* [r6119] liblwgeom/lwin_wkt_lex.c: Update lexer
 
-2010-10-24 19:30  pramsey
+2010-10-24 19:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add generated parser/lexer files
+	* [r6118] liblwgeom/lwin_wkt_lex.c, liblwgeom/lwin_wkt_parse.c,
+	  liblwgeom/lwin_wkt_parse.h: Add generated parser/lexer files
 
-2010-10-24 19:29  pramsey
+2010-10-24 19:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove svn:ignores for lex/parser results
+	* [r6117] liblwgeom: Remove svn:ignores for lex/parser results
 
-2010-10-24 19:28  pramsey
+2010-10-24 19:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove header-file option
+	* [r6116] liblwgeom/lwin_wkt_lex.l: Remove header-file option
 
-2010-10-24 19:25  pramsey
+2010-10-24 19:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More tweaks to lexer to generate header
+	* [r6115] liblwgeom/Makefile.in, liblwgeom/cunit/cu_in_wkt.c,
+	  liblwgeom/lwin_wkt_lex.l: More tweaks to lexer to generate header
 
-2010-10-24 19:13  pramsey
+2010-10-24 19:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change order of options
+	* [r6114] liblwgeom/lwin_wkt_lex.l: Change order of options
 
-2010-10-24 19:00  pramsey
+2010-10-24 19:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Turn off verbose grammar
+	* [r6113] liblwgeom/lwin_wkt_parse.y: Turn off verbose grammar
 
-2010-10-24 19:00  pramsey
+2010-10-24 19:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in tests for more WKT types and fix bugs as they show up.
+	* [r6112] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_parse.y: Add in tests for more WKT types and
+	  fix bugs as they show up.
 
-2010-10-24 16:08  pramsey
+2010-10-24 16:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add quotes to bison/flex calls.
+	* [r6111] liblwgeom/Makefile.in: Add quotes to bison/flex calls.
 
-2010-10-24 16:04  pramsey
+2010-10-24 16:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Match the error strings with the legacy ones in the old WKT
-	  parser.
+	* [r6110] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgparse.c, liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_lex.l, liblwgeom/lwin_wkt_parse.y: Match the
+	  error strings with the legacy ones in the old WKT parser.
 
-2010-10-24 15:25  pramsey
+2010-10-24 15:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename WKT out suite.
+	* [r6109] liblwgeom/cunit/cu_out_wkt.c,
+	  liblwgeom/cunit/cu_tester.c: Rename WKT out suite.
 
-2010-10-23 23:53  pramsey
+2010-10-23 23:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change sytax on calls to LEX to maybe make windoze and others
-	  happier
+	* [r6108] liblwgeom/Makefile.in: Change sytax on calls to LEX to
+	  maybe make windoze and others happier
 
-2010-10-23 23:50  pramsey
+2010-10-23 23:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore generated Makefile
+	* [r6107] loader/cunit: Ignore generated Makefile
 
-2010-10-23 23:49  pramsey
+2010-10-23 23:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change empty collection constructor to take a type number, like
-	  the non-empty constructor (because we now believe in typed
-	  empties).
+	* [r6106] postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_lrs.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c: Change empty
+	  collection constructor to take a type number, like the non-empty
+	  constructor (because we now believe in typed empties).
 
-2010-10-23 23:48  pramsey
+2010-10-23 23:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Finish untested support for all types in WKT input.
+	* [r6105] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/libtgeom.c, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwhomogenize.c,
+	  liblwgeom/lwin_wkb.c, liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_parse.y, liblwgeom/lwmline.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c, liblwgeom/measures.c,
+	  liblwgeom/measures3d.c: Finish untested support for all types in
+	  WKT input.
 
-2010-10-23 14:41  pramsey
+2010-10-23 14:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove long form lex parameters
+	* [r6104] liblwgeom/Makefile.in: Remove long form lex parameters
 
-2010-10-22 23:32  pramsey
+2010-10-22 23:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add dimensional empties to the grammar
+	* [r6103] liblwgeom/lwin_wkt_parse.y: Add dimensional empties to
+	  the grammar
 
-2010-10-22 23:29  pramsey
+2010-10-22 23:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* comment the fact we support ISO extended types in WKB emitter
+	* [r6102] liblwgeom/lwout_wkb.c: comment the fact we support ISO
+	  extended types in WKB emitter
 
-2010-10-22 23:27  pramsey
+2010-10-22 23:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in the ISO extended types to the WKT parser and emitter.
+	* [r6101] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_lex.l, liblwgeom/lwin_wkt_parse.y,
+	  liblwgeom/lwline.c, liblwgeom/lwmpoint.c, liblwgeom/lwout_wkt.c,
+	  liblwgeom/lwpoly.c, liblwgeom/ptarray.c: Add in the ISO extended
+	  types to the WKT parser and emitter.
 
-2010-10-22 19:27  pramsey
+2010-10-22 19:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Apply mcayland patch to build parse/lex. Remember: make clean
-	  before make.
+	* [r6100] liblwgeom/Makefile.in: Apply mcayland patch to build
+	  parse/lex. Remember: make clean before make.
 
-2010-10-22 16:29  jorgearevalo
+2010-10-22 16:29  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Changed '--with-gdal' for '--with-gdalconfig'. Related tickets
-	  #610 #616
+	* [r6099] configure.ac, doc/installation.xml: Changed '--with-gdal'
+	  for '--with-gdalconfig'. Related tickets #610 #616
 
-2010-10-22 14:54  robe
+2010-10-22 14:54  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r6098] doc/installation.xml: fix typo
 
-2010-10-22 14:52  robe
+2010-10-22 14:52  Regina Obe <lr at pcorp.us>
 
-	* document GDAL config setting. Showing with-gdal for now. Jorge --
-	  don't forget to change this in make to with-gdalconfig to be
-	  consistent with other config namings.
+	* [r6097] doc/installation.xml: document GDAL config setting.
+	  Showing with-gdal for now. Jorge -- don't forget to change this
+	  in make to with-gdalconfig to be consistent with other config
+	  namings.
 
-2010-10-22 14:43  robe
+2010-10-22 14:43  Regina Obe <lr at pcorp.us>
 
-	* amend install instructions to reflect new simplied installation
-	  of raster support
+	* [r6096] doc/installation.xml: amend install instructions to
+	  reflect new simplied installation of raster support
 
-2010-10-22 14:00  jorgearevalo
+2010-10-22 14:00  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Raster build simplified. Only "./configure --with-raster & make &
-	  make install" needed. Raster objetive names changed in
-	  GNUMakefile. Raster library object generated with PostGIS version
-	  numbers.
+	* [r6095] GNUmakefile, configure.ac, raster/Makefile.in,
+	  raster/rt_pg/Makefile.in: Raster build simplified. Only
+	  "./configure --with-raster & make & make install" needed. Raster
+	  objetive names changed in GNUMakefile. Raster library object
+	  generated with PostGIS version numbers.
 
-2010-10-22 02:14  pramsey
+2010-10-22 02:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in more parser cases and test an EMPTY case.
+	* [r6094] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/lwin_wkt.c,
+	  liblwgeom/lwin_wkt.h, liblwgeom/lwin_wkt_parse.y,
+	  liblwgeom/lwout_wkt.c, liblwgeom/stringbuffer.c,
+	  liblwgeom/stringbuffer.h: Add in more parser cases and test an
+	  EMPTY case.
 
-2010-10-21 22:22  pramsey
+2010-10-21 22:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for point and multipoints to the WKT parser.
+	* [r6093] liblwgeom/cunit/cu_in_wkt.c, liblwgeom/lex.yy.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwin_wkt.c,
+	  liblwgeom/lwin_wkt.h, liblwgeom/lwin_wkt_parse.y,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwpoint.c: Add support for point
+	  and multipoints to the WKT parser.
 
-2010-10-21 21:32  pramsey
+2010-10-21 21:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ensure the parser prereqs are built (#636)
+	* [r6092] liblwgeom/Makefile.in: Ensure the parser prereqs are
+	  built (#636)
 
-2010-10-20 22:51  pramsey
+2010-10-20 22:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Current work on bison-based WKT-to-LWGEOM parser. Implemented for
+	* [r6091] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_in_wkt.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_lex.l, liblwgeom/lwin_wkt_parse.y: Current
+	  work on bison-based WKT-to-LWGEOM parser. Implemented for
 	  LINESTRING, almost ready to extend to all types.
 
-2010-10-20 14:09  robe
+2010-10-20 14:09  Regina Obe <lr at pcorp.us>
 
-	* correction in output type
+	* [r6090] doc/reference_raster.xml: correction in output type
 
-2010-10-20 13:41  pracine
+2010-10-20 13:41  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix for ticket ticket 634. Typo in error message.
+	* [r6089] raster/rt_core/rt_api.c: -Fix for ticket ticket 634. Typo
+	  in error message.
 
-2010-10-20 13:38  pracine
+2010-10-20 13:38  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix for ticket 632. st_world2rastercoordx and
-	  st_world2rastercoordy must return int instead of float8.
+	* [r6088] raster/rt_pg/rtpostgis.sql.in.c: -Fix for ticket 632.
+	  st_world2rastercoordx and st_world2rastercoordy must return int
+	  instead of float8.
 
-2010-10-20 12:22  robe
+2010-10-20 12:22  Regina Obe <lr at pcorp.us>
 
-	* finish off documenting current public raster functions. Think
-	  that's all of them we have so far
+	* [r6087] doc/reference_raster.xml: finish off documenting current
+	  public raster functions. Think that's all of them we have so far
 
-2010-10-19 13:02  robe
+2010-10-19 13:02  Regina Obe <lr at pcorp.us>
 
-	* fill in missing portos and provide more description of what
-	  additional protos do when args are left out or included
+	* [r6086] doc/reference_raster.xml: fill in missing portos and
+	  provide more description of what additional protos do when args
+	  are left out or included
 
-2010-10-19 12:31  robe
+2010-10-19 12:31  Regina Obe <lr at pcorp.us>
 
-	* missing protos for st_askml, st_asgml
+	* [r6085] doc/reference_output.xml: missing protos for st_askml,
+	  st_asgml
 
-2010-10-18 15:59  strk
+2010-10-18 15:59  Sandro Santilli <strk at keybit.net>
 
-	* Location argument to GEOSIsValidDetail is non-const
+	* [r6084] postgis/lwgeom_geos.c: Location argument to
+	  GEOSIsValidDetail is non-const
 
-2010-10-18 13:15  strk
+2010-10-18 13:15  Sandro Santilli <strk at keybit.net>
 
-	* Snap ShortestLine to 1e-14 grid (fixes failure on opensuse)
+	* [r6083] regress/measures.sql, regress/measures_expected: Snap
+	  ShortestLine to 1e-14 grid (fixes failure on opensuse)
 
-2010-10-15 21:46  pracine
+2010-10-15 21:46  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Fix for ticket 628.
+	* [r6082] raster/scripts/python/gdal2raster.py: -Fix for ticket
+	  628.
 
-2010-10-15 14:32  robe
+2010-10-15 14:32  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r6081] doc/xsl/postgis_gardentest.sql.xsl: typo
 
-2010-10-15 14:29  robe
+2010-10-15 14:29  Regina Obe <lr at pcorp.us>
 
-	* more logic errors
+	* [r6080] doc/xsl/postgis_gardentest.sql.xsl: more logic errors
 
-2010-10-15 13:28  robe
+2010-10-15 13:28  Regina Obe <lr at pcorp.us>
 
-	* fix error in logic in test, change xml header to match other xml
-	  files
+	* [r6079] doc/xsl/postgis_comments.sql.xsl,
+	  doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/raster_comments.sql.xsl: fix error in logic in test,
+	  change xml header to match other xml files
 
-2010-10-14 06:54  robe
+2010-10-14 06:54  Regina Obe <lr at pcorp.us>
 
-	* fix non valid RT_Reference link
+	* [r6078] doc/xsl/postgis_aggs_mm.xml.xsl: fix non valid
+	  RT_Reference link
 
-2010-10-14 06:04  colivier
+2010-10-14 06:04  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix few errors inside DocBook documentation. Refer to #471
+	* [r6077] doc/installation.xml, doc/reference_accessor.xml,
+	  doc/reference_processing.xml, doc/reference_raster.xml,
+	  doc/using_postgis_dataman.xml: Fix few errors inside DocBook
+	  documentation. Refer to #471
 
-2010-10-13 22:22  robe
+2010-10-13 22:22  Regina Obe <lr at pcorp.us>
 
-	* address some dtd errors
+	* [r6076] doc/faq_raster.xml, doc/reference_raster.xml: address
+	  some dtd errors
 
-2010-10-13 17:12  jorgearevalo
+2010-10-13 17:12  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Modified raster Makefiles to solve bugs of ticket #610 (build
-	  error and
+	* [r6075] raster/rt_core/Makefile.in, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/Makefile.pgxs: Modified raster Makefiles to solve
+	  bugs of ticket #610 (build error and
 	  incorrect placement of rtpostgis.sql file)
 
-2010-10-13 15:41  jorgearevalo
+2010-10-13 15:41  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Deleted references to 'WKT' in rtpostgis.sql and faq_raster.xml
+	* [r6074] doc/faq_raster.xml, raster/rt_pg/rtpostgis.sql.in.c:
+	  Deleted references to 'WKT' in rtpostgis.sql and faq_raster.xml
 
-2010-10-13 14:31  robe
+2010-10-13 14:31  Regina Obe <lr at pcorp.us>
 
-	* Correct the spelling of Peucker
+	* [r6072] doc/reference_processing.xml: Correct the spelling of
+	  Peucker
 
-2010-10-13 13:44  robe
+2010-10-13 13:44  Regina Obe <lr at pcorp.us>
 
-	* correction to example
+	* [r6071] doc/reference_raster.xml: correction to example
 
-2010-10-13 13:03  robe
+2010-10-13 13:03  Regina Obe <lr at pcorp.us>
 
-	* amend the what is new in PostGIS 2.0 section
+	* [r6070] doc/xsl/postgis_aggs_mm.xml.xsl: amend the what is new in
+	  PostGIS 2.0 section
 
-2010-10-13 08:52  robe
+2010-10-13 08:52  Regina Obe <lr at pcorp.us>
 
-	* Put reference to addband and setvalue in empty raster. If a
-	  raster has no bands and values, do you see it :)
+	* [r6069] doc/reference_raster.xml: Put reference to addband and
+	  setvalue in empty raster. If a raster has no bands and values, do
+	  you see it :)
 
-2010-10-13 08:45  robe
+2010-10-13 08:45  Regina Obe <lr at pcorp.us>
 
-	* fill in missing protos for ST_AddBand and an example of creating
-	  a raster from scratch
+	* [r6068] doc/reference_raster.xml: fill in missing protos for
+	  ST_AddBand and an example of creating a raster from scratch
 
-2010-10-13 08:12  robe
+2010-10-13 08:12  Regina Obe <lr at pcorp.us>
 
-	* add raster_comments.sql to be copied to contrib directory as well
+	* [r6067] doc/Makefile.comments.in: add raster_comments.sql to be
+	  copied to contrib directory as well
 
-2010-10-12 18:38  robe
+2010-10-12 18:38  Regina Obe <lr at pcorp.us>
 
-	* this is now auto built when make comments is run
+	* [r6066] raster/doc/raster_comments.sql: this is now auto built
+	  when make comments is run
 
-2010-10-12 18:37  robe
+2010-10-12 18:37  Regina Obe <lr at pcorp.us>
 
-	* revise to also build raster_comments.sql when make comments is
-	  run
+	* [r6065] doc/Makefile.in: revise to also build raster_comments.sql
+	  when make comments is run
 
-2010-10-11 00:45  robe
+2010-10-11 00:45  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r6064] doc/reference_raster.xml: typo
 
-2010-10-11 00:45  robe
+2010-10-11 00:45  Regina Obe <lr at pcorp.us>
 
-	* fix typo in faxq_raster. Document ST_AddBand
+	* [r6063] doc/faq_raster.xml, doc/reference_raster.xml: fix typo in
+	  faxq_raster. Document ST_AddBand
 
-2010-10-10 22:00  pramsey
+2010-10-10 22:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove warnings
+	* [r6062] liblwgeom/cunit/cu_in_wkb.c: Remove warnings
 
-2010-10-10 11:16  jorgearevalo
+2010-10-10 11:16  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* Modified the prototype of dump core/server/sql functions, adding
-	  "wkt" to their names, because their returning elements are WKT
-	  geometries, not real PostGIS geometries.
+	* [r6061] raster/rt_core/rt_api.c, raster/rt_core/rt_api.h,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/test/core/testapi.c: Modified the prototype of dump
+	  core/server/sql functions, adding "wkt" to their names, because
+	  their returning elements are WKT geometries, not real PostGIS
+	  geometries.
 
-2010-10-10 00:08  pramsey
+2010-10-10 00:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Put the WKT new parser files into repo so others can see them and
-	  I can work in synch with trunk.
+	* [r6060] liblwgeom, liblwgeom/Makefile.in, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwin_wkt.c, liblwgeom/lwin_wkt.h,
+	  liblwgeom/lwin_wkt_lex.l, liblwgeom/lwin_wkt_parse.y,
+	  liblwgeom/lwline.c, liblwgeom/ptarray.c: Put the WKT new parser
+	  files into repo so others can see them and I can work in synch
+	  with trunk.
 
-2010-10-09 04:03  robe
+2010-10-09 04:03  Regina Obe <lr at pcorp.us>
 
-	* Put link to Jorge's PostGIS Raster and Oracle GeoRaster series
+	* [r6059] doc/faq_raster.xml: Put link to Jorge's PostGIS Raster
+	  and Oracle GeoRaster series
 
-2010-10-08 18:08  pramsey
+2010-10-08 18:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add param.h to headers, pick up ENDIAN macros?
+	* [r6058] liblwgeom/lwin_wkb.c: Add param.h to headers, pick up
+	  ENDIAN macros?
 
-2010-10-08 16:45  robe
+2010-10-08 16:45  Regina Obe <lr at pcorp.us>
 
-	* another fix
+	* [r6057] doc/xsl/postgis_gardentest.sql.xsl: another fix
 
-2010-10-08 14:55  pracine
+2010-10-08 14:55  Pierre Racine <Pierre.Racine at sbf.ulaval.ca>
 
-	* -Modify ST_Intersects so that index is taken into account by the
-	  planner
+	* [r6056] raster/rt_pg/rtpostgis.sql.in.c: -Modify ST_Intersects so
+	  that index is taken into account by the planner
 	  -Added a series of ST_Intersects with a boolean parameter to make
 	  the desactivation of the nodata value working with indexes
 
-2010-10-08 13:15  robe
+2010-10-08 13:15  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r6055] doc/xsl/postgis_gardentest.sql.xsl:
 
-2010-10-08 13:14  robe
+2010-10-08 13:14  Regina Obe <lr at pcorp.us>
 
-	* more corrections
+	* [r6054] doc/xsl/postgis_gardentest.sql.xsl: more corrections
 
-2010-10-08 13:00  robe
+2010-10-08 13:00  Regina Obe <lr at pcorp.us>
 
-	* take out automatic build of raster_comments (until figure out
-	  what's wrong), fix some logic in gardent test, take out
-	  ST_Transform until it stops crashing.
+	* [r6053] doc/Makefile.in, doc/xsl/postgis_gardentest.sql.xsl: take
+	  out automatic build of raster_comments (until figure out what's
+	  wrong), fix some logic in gardent test, take out ST_Transform
+	  until it stops crashing.
 
-2010-10-08 11:39  robe
+2010-10-08 11:39  Regina Obe <lr at pcorp.us>
 
-	* logic to build raster_comments postgresql help instructions --
+	* [r6052] doc/Makefile.in, doc/xsl/wktraster_comments.sql.xsl:
+	  logic to build raster_comments postgresql help instructions --
 	  also replace postgis.refractions.net with www.postgis.org
 
-2010-10-08 11:31  robe
+2010-10-08 11:31  Regina Obe <lr at pcorp.us>
 
-	* rename to raster to be consistent with other files
+	* [r6051] doc/xsl/raster_comments.sql.xsl: rename to raster to be
+	  consistent with other files
 
-2010-10-07 15:55  robe
+2010-10-07 15:55  Regina Obe <lr at pcorp.us>
 
-	* Put in vacuum analyze crash test
+	* [r6050] doc/xsl/postgis_gardentest.sql.xsl: Put in vacuum analyze
+	  crash test
 
-2010-10-06 20:23  pramsey
+2010-10-06 20:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add nested geometry collection test.
+	* [r6049] liblwgeom/cunit/cu_in_wkb.c: Add nested geometry
+	  collection test.
 
-2010-10-06 20:11  pramsey
+2010-10-06 20:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add extra comments.
+	* [r6048] liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_out_wkb.c, liblwgeom/lwin_wkb.c: Add extra
+	  comments.
 
-2010-10-06 19:32  pramsey
+2010-10-06 19:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add extra tests, remove printf noise from run.
+	* [r6047] liblwgeom/cunit/cu_in_wkb.c,
+	  liblwgeom/cunit/cu_out_wkb.c: Add extra tests, remove printf
+	  noise from run.
 
-2010-10-06 19:17  pramsey
+2010-10-06 19:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in WKB reader and associated test framework to build.
+	* [r6046] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_in_wkb.c, liblwgeom/cunit/cu_out_wkb.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/libgeom.h,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwout_wkb.c: Add in WKB reader and associated test
+	  framework to build.
 
-2010-10-06 17:51  pramsey
+2010-10-06 17:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix a write-out-of-bounds error.
+	* [r6045] liblwgeom/lwout_wkb.c: Fix a write-out-of-bounds error.
 
-2010-10-06 15:20  pramsey
+2010-10-06 15:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Finish first draft of WKB reader.
+	* [r6044] liblwgeom/lwcollection.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwpoly.c: Finish first draft of WKB reader.
 
-2010-10-06 00:35  pramsey
+2010-10-06 00:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Clean out compile warnings.
+	* [r6043] liblwgeom/liblwgeom.h, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwin_wkb.c, liblwgeom/lwout_wkb.c: Clean out compile
+	  warnings.
 
-2010-10-05 23:33  pramsey
+2010-10-05 23:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add WKB writing support for TIN, Triangle and PolyhedralSurface
+	* [r6042] liblwgeom/lwout_wkb.c: Add WKB writing support for TIN,
+	  Triangle and PolyhedralSurface
 
-2010-10-05 23:32  pramsey
+2010-10-05 23:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add WKB writing support for TIN, Triangle and PolyhedralSurface
+	* [r6041] liblwgeom/lwin_wkb.c: Add WKB writing support for TIN,
+	  Triangle and PolyhedralSurface
 
-2010-10-05 22:49  pramsey
+2010-10-05 22:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Macroify the WKB type numbers and add the extended types for 3D
-	  objects.
+	* [r6040] liblwgeom/libgeom.h, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwout_wkb.c: Macroify the WKB type numbers and add the
+	  extended types for 3D objects.
 
-2010-10-03 19:57  pramsey
+2010-10-03 19:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix syntax error in ptarray_segmentize2d introduced in last
-	  commit
+	* [r6039] liblwgeom/ptarray.c: Fix syntax error in
+	  ptarray_segmentize2d introduced in last commit
 
-2010-10-03 19:43  pramsey
+2010-10-03 19:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ensure maxpoints is filled in appropriately
+	* [r6038] liblwgeom/ptarray.c: Ensure maxpoints is filled in
+	  appropriately
 
-2010-10-03 18:15  pramsey
+2010-10-03 18:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove lwin_wkb from build until it's complete
+	* [r6037] liblwgeom/Makefile.in: Remove lwin_wkb from build until
+	  it's complete
 
-2010-10-03 18:14  pramsey
+2010-10-03 18:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Continue with new WKB parser. Change signature of RHR "right hand
+	* [r6036] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_out_wkb.c, liblwgeom/cunit/cu_out_wkt.c,
+	  liblwgeom/cunit/cu_wkb.c, liblwgeom/cunit/cu_wkt.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c, liblwgeom/lwin_wkb.c,
+	  liblwgeom/lwpoly.c, liblwgeom/lwtriangle.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in.c:
+	  Continue with new WKB parser. Change signature of RHR "right hand
 	  rule" functions to "clockwise" to avoid misinterpretations of
 	  orientation rules.
 
-2010-10-03 01:39  robe
+2010-10-03 01:39  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r6034] doc/faq.xml: typo
 
-2010-10-02 15:46  robe
+2010-10-02 15:46  Regina Obe <lr at pcorp.us>
 
-	* update PostgreSQL 9.0 that upgrading the driver works as well.
+	* [r6032] doc/faq.xml: update PostgreSQL 9.0 that upgrading the
+	  driver works as well.
 
-2010-09-29 20:28  nicklas
+2010-09-29 20:28  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* removing run-time sized array
+	* [r6030] liblwgeom/measures.c: removing run-time sized array
 
-2010-09-27 15:20  robe
+2010-09-27 15:20  Regina Obe <lr at pcorp.us>
 
-	* copy Paul's changes to trunk
+	* [r6028] NEWS: copy Paul's changes to trunk
 
-2010-09-27 13:25  robe
+2010-09-27 13:25  Regina Obe <lr at pcorp.us>
 
-	* missing gtk dependency note
+	* [r6024] doc/installation.xml: missing gtk dependency note
 
-2010-09-27 13:11  robe
+2010-09-27 13:11  Regina Obe <lr at pcorp.us>
 
-	* update install instructions to include install of raster and
-	  dependency on GDAL
+	* [r6022] doc/installation.xml: update install instructions to
+	  include install of raster and dependency on GDAL
 
-2010-09-27 12:59  jorgearevalo
+2010-09-27 12:59  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* liblwgeom/lex.yy.c replaced with previous version
+	* [r6021] install-sh, liblwgeom/lex.yy.c, liblwgeom/wktparse.tab.c,
+	  liblwgeom/wktparse.tab.h, raster/.vimrc, raster/COPYING:
+	  liblwgeom/lex.yy.c replaced with previous version
 
-2010-09-26 21:41  jorgearevalo
+2010-09-26 21:41  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* README files updated with the new raster extension information.
+	* [r6020] README.postgis, README.raster: README files updated with
+	  the new raster extension information.
 
-2010-09-26 21:21  jorgearevalo
+2010-09-26 21:21  Jorge Arévalo <jorge.arevalo at deimos-space.com>
 
-	* - Added raster extension to new 'raster' directory.
+	* [r6019] GNUmakefile, README.raster, README.raster.debugging,
+	  configure.ac, doc/reference_raster.xml, install-sh,
+	  liblwgeom/lex.yy.c, liblwgeom/wktparse.tab.c,
+	  liblwgeom/wktparse.tab.h, raster, raster/Makefile,
+	  raster/Makefile.in, raster/NEWS, raster/README,
+	  raster/README.debugging, raster/autogen.sh, raster/config.guess,
+	  raster/config.sub, raster/configure.ac,
+	  raster/doc/raster_comments.sql,
+	  raster/doc/wktraster_comments.sql, raster/raster_config.h.in,
+	  raster/rt_core/Makefile.in, raster/rt_core/rt_api.c,
+	  raster/rt_core/rt_api.h, raster/rt_pg/Makefile.in,
+	  raster/rt_pg/rt_pg.c, raster/rt_pg/rtpostgis.sql.in.c,
+	  raster/scripts/Makefile.in, raster/scripts/Makefile.rt.sample,
+	  raster/scripts/gdal2wktraster.py, raster/scripts/genraster.py,
+	  raster/scripts/ovdump.py, raster/scripts/pixval.py,
+	  raster/scripts/python, raster/scripts/python/Makefile.in,
+	  raster/scripts/python/Makefile.rt.sample,
+	  raster/scripts/python/gdal2raster.py,
+	  raster/scripts/python/genraster.py,
+	  raster/scripts/python/ovdump.py, raster/scripts/python/pixval.py,
+	  raster/scripts/python/rtpixdump.py,
+	  raster/scripts/python/rtreader.py,
+	  raster/scripts/python/rtrowdump.py,
+	  raster/scripts/python/window.py, raster/scripts/rtpixdump.py,
+	  raster/scripts/rtreader.py, raster/scripts/rtrowdump.py,
+	  raster/scripts/window.py, raster/test/core/Makefile.in,
+	  raster/test/core/testapi.c, raster/test/regress/run_test.in,
+	  raster/wktraster_config.h.in: - Added raster extension to new
+	  'raster' directory.
 	  - Modified PostGIS 'configure.ac' script to add support for new
 	  raster type (driven by '--with-raster' configure option.
 	  - Added raster build options to 'GNUMakefile' script.
@@ -25416,665 +42145,808 @@
 	  'raster/scripts' directory.
 	  - References to "WKT" deleted from source code.
 
-2010-09-24 18:41  pramsey
+2010-09-24 18:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Forward port regression fixes for pgSQL 9.0 support
+	* [r6017] regress/tickets.sql, regress/tickets_expected,
+	  regress/wmsservers.sql, regress/wmsservers_expected: Forward port
+	  regression fixes for pgSQL 9.0 support
 
-2010-09-24 12:53  robe
+2010-09-24 12:53  Regina Obe <lr at pcorp.us>
 
-	* move to enhanced from available
+	* [r6015] doc/reference_misc.xml: move to enhanced from available
 
-2010-09-24 11:39  robe
+2010-09-24 11:39  Regina Obe <lr at pcorp.us>
 
-	* change all these polyhedral surface/tin to enhanced from
-	  available
+	* [r6014] doc/reference_constructor.xml, doc/reference_editor.xml,
+	  doc/reference_measure.xml, doc/reference_operator.xml,
+	  doc/reference_output.xml, doc/reference_processing.xml: change
+	  all these polyhedral surface/tin to enhanced from available
 
-2010-09-24 11:00  robe
+2010-09-24 11:00  Regina Obe <lr at pcorp.us>
 
-	* Note change in behavior of ST_NumGeometries and add back changed
-	  section.
+	* [r6013] doc/reference_accessor.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Note change in behavior of
+	  ST_NumGeometries and add back changed section.
 
-2010-09-24 10:52  robe
+2010-09-24 10:52  Regina Obe <lr at pcorp.us>
 
-	* get rid of changed for now
+	* [r6012] doc/xsl/postgis_aggs_mm.xml.xsl: get rid of changed for
+	  now
 
-2010-09-24 10:38  robe
+2010-09-24 10:38  Regina Obe <lr at pcorp.us>
 
-	* mark all polyhedral preexisting functions as enhanced. minor
-	  correction to comments
+	* [r6011] doc/reference_constructor.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: mark all polyhedral preexisting
+	  functions as enhanced. minor correction to comments
 
-2010-09-24 10:34  robe
+2010-09-24 10:34  Regina Obe <lr at pcorp.us>
 
-	* we have too many new functions (those polyhedral things that
-	  should really be marked as enhancements) and we are going to have
-	  a lot of breaking changes. Revise what's new section to have a
-	  really new, enhanced, and behavior changed section
+	* [r6010] doc/reference_accessor.xml, doc/template.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: we have too many new functions
+	  (those polyhedral things that should really be marked as
+	  enhancements) and we are going to have a lot of breaking changes.
+	  Revise what's new section to have a really new, enhanced, and
+	  behavior changed section
 
-2010-09-23 07:40  mleslie
+2010-09-23 07:40  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Reverting erroneous changes to pgui_read_connection.
+	* [r6009] loader/shp2pgsql-gui.c: Reverting erroneous changes to
+	  pgui_read_connection.
 
-2010-09-22 23:45  mleslie
+2010-09-22 23:45  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Reverting the default geometry column name change. Got too
-	  excited... breathe deep...
+	* [r6008] loader/shp2pgsql-core.h: Reverting the default geometry
+	  column name change. Got too excited... breathe deep...
 
-2010-09-22 22:30  pramsey
+2010-09-22 22:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Use 'the_geom' as geometry column when running regression tests
-	  to match the old regression fragments.
+	* [r6007] regress/run_test: Use 'the_geom' as geometry column when
+	  running regression tests to match the old regression fragments.
 
-2010-09-22 22:24  pramsey
+2010-09-22 22:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove compiler warnings in OS/X
+	* [r6006] postgis/lwgeom_geos_clean.c: Remove compiler warnings in
+	  OS/X
 
-2010-09-22 17:30  robe
+2010-09-22 17:30  Regina Obe <lr at pcorp.us>
 
-	* ST_3DIntersects
+	* [r6005] doc/reference_measure.xml: ST_3DIntersects
 
-2010-09-22 17:22  robe
+2010-09-22 17:22  Regina Obe <lr at pcorp.us>
 
-	* fix some typos
+	* [r6004] doc/reference_measure.xml: fix some typos
 
-2010-09-22 17:15  robe
+2010-09-22 17:15  Regina Obe <lr at pcorp.us>
 
-	* ST_3DClosestPoint -- if only our wkt diagrammer could draw 3d
-	  geometries
+	* [r6003] doc/reference_measure.xml: ST_3DClosestPoint -- if only
+	  our wkt diagrammer could draw 3d geometries
 
-2010-09-22 05:34  mleslie
+2010-09-22 05:34  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Forcing table names to lower case when initially added.
+	* [r6001] loader/shp2pgsql-gui.c: Forcing table names to lower case
+	  when initially added.
 
-2010-09-21 23:22  mleslie
+2010-09-21 23:22  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Removing lingering references to the broken icon support.
+	* [r6000] loader/shp2pgsql-gui.c: Removing lingering references to
+	  the broken icon support.
 
-2010-09-21 23:12  mleslie
+2010-09-21 23:12  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Changing the default geometry name from 'the_geom' to 'geom'
+	* [r5999] loader/shp2pgsql-gui.c: Changing the default geometry
+	  name from 'the_geom' to 'geom'
 
-2010-09-21 23:11  mleslie
+2010-09-21 23:11  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Changing the default geometry name from 'the_geom' to 'geom'
+	* [r5998] loader/shp2pgsql-core.h: Changing the default geometry
+	  name from 'the_geom' to 'geom'
 
-2010-09-21 03:36  mleslie
+2010-09-21 03:36  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Clearing some compile warnings and fixing the issue where the
-	  test connection button always reported success.
+	* [r5995] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/structure.h: Clearing some compile
+	  warnings and fixing the issue where the test connection button
+	  always reported success.
 
-2010-09-19 17:44  robe
+2010-09-19 17:44  Regina Obe <lr at pcorp.us>
 
-	* ditto
+	* [r5992] NEWS, doc/release_notes.xml: ditto
 
-2010-09-19 16:56  mcayland
+2010-09-19 16:56  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #603: shp2pgsql: "-w" produces invalid WKT for MULTI*
-	  objects.
+	* [r5990] loader/shp2pgsql-core.c: Fix #603: shp2pgsql: "-w"
+	  produces invalid WKT for MULTI* objects.
 
-2010-09-19 12:48  robe
+2010-09-19 12:48  Regina Obe <lr at pcorp.us>
 
-	* 1.5.2 release notes updated
+	* [r5988] NEWS, doc/release_notes.xml: 1.5.2 release notes updated
 
-2010-09-19 12:22  mcayland
+2010-09-19 12:22  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix the comments-uninstall target so it now works correctly with
-	  the new PGXS code.
+	* [r5986] doc/Makefile.in: Fix the comments-uninstall target so it
+	  now works correctly with the new PGXS code.
 
-2010-09-19 12:11  mcayland
+2010-09-19 12:11  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #572: Password whitespace for Shape File to PostGIS Importer
-	  not supported. Fixed by adding a new function especially designed
-	  for escaping arguments for PQconnectdb strings, and plugging it
-	  into the GUI.
+	* [r5984] loader/Makefile.in, loader/shp2pgsql-gui.c,
+	  loader/shpcommon.c, loader/shpcommon.h: Fix #572: Password
+	  whitespace for Shape File to PostGIS Importer not supported.
+	  Fixed by adding a new function especially designed for escaping
+	  arguments for PQconnectdb strings, and plugging it into the GUI.
 	  
 	  Note this commit is different from the 1.5 branch version, since
 	  the escaping function is moved into a new common library as I can
 	  see it being required for the new pgsql2shp CLI in the not too
 	  distant future.
 
-2010-09-18 23:54  robe
+2010-09-18 23:54  Regina Obe <lr at pcorp.us>
 
-	* ditto
+	* [r5982] NEWS, doc/release_notes.xml: ditto
 
-2010-09-18 15:22  mcayland
+2010-09-18 15:22  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #527: Log window in shp2pgsql-gui should always append text
-	  to bottom of window.
+	* [r5975] loader/shp2pgsql-gui.c: Fix #527: Log window in
+	  shp2pgsql-gui should always append text to bottom of window.
 
-2010-09-15 16:51  colivier
+2010-09-15 16:51  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add Triangle support for ST_NPoints. Thanks again to Regina for
-	  this report. Related to #596
+	* [r5973] postgis/lwgeom_functions_basic.c: Add Triangle support
+	  for ST_NPoints. Thanks again to Regina for this report. Related
+	  to #596
 
-2010-09-15 16:09  robe
+2010-09-15 16:09  Regina Obe <lr at pcorp.us>
 
-	* start documenting 3d measurement functions
+	* [r5972] doc/reference_measure.xml: start documenting 3d
+	  measurement functions
 
-2010-09-15 16:01  robe
+2010-09-15 16:01  Regina Obe <lr at pcorp.us>
 
-	* another spot missing
+	* [r5971] doc/postgis.xml: another spot missing
 
-2010-09-15 15:15  robe
+2010-09-15 15:15  Regina Obe <lr at pcorp.us>
 
-	* forgot a spot
+	* [r5970] doc/Makefile.in: forgot a spot
 
-2010-09-15 15:12  robe
+2010-09-15 15:12  Regina Obe <lr at pcorp.us>
 
-	* rename wktraster to raster
+	* [r5969] doc/faq_raster.xml, doc/faq_wktraster.xml,
+	  doc/postgis.xml, doc/reference_raster.xml,
+	  doc/reference_wktraster.xml: rename wktraster to raster
 
-2010-09-13 19:18  strk
+2010-09-13 19:18  Sandro Santilli <strk at keybit.net>
 
-	* Drop references to topology geometry tables in DropTopology (see
-	  #586)
+	* [r5966] topology/topology.sql.in.c: Drop references to topology
+	  geometry tables in DropTopology (see #586)
 
-2010-09-13 17:01  strk
+2010-09-13 17:01  Sandro Santilli <strk at keybit.net>
 
-	* Add note about topology.sql expecting a postgis-enabled db
+	* [r5965] topology/README: Add note about topology.sql expecting a
+	  postgis-enabled db
 
-2010-09-13 16:59  strk
+2010-09-13 16:59  Sandro Santilli <strk at keybit.net>
 
-	* PostgreSQL 9 support : don't use reserved 'table' keyword (see
-	  #585)
+	* [r5964] topology/topology.sql.in.c: PostgreSQL 9 support : don't
+	  use reserved 'table' keyword (see #585)
 
-2010-09-13 13:45  robe
+2010-09-13 13:45  Regina Obe <lr at pcorp.us>
 
-	* more cleanup
+	* [r5963] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_concavehull07.wkt,
+	  doc/html/image_src/st_concavehull08.wkt,
+	  doc/reference_processing.xml: more cleanup
 
-2010-09-13 13:01  robe
+2010-09-13 13:01  Regina Obe <lr at pcorp.us>
 
-	* minor changes
+	* [r5962] postgis/postgis.sql.in.c: minor changes
 
-2010-09-13 12:46  robe
+2010-09-13 12:46  Regina Obe <lr at pcorp.us>
 
-	* give up on complex S example and change to simpler L example
+	* [r5961] doc/html/image_src/st_concavehull04.wkt,
+	  doc/html/image_src/st_concavehull05.wkt,
+	  doc/html/image_src/st_concavehull06.wkt,
+	  doc/html/image_src/st_concavehull07.wkt,
+	  doc/reference_processing.xml: give up on complex S example and
+	  change to simpler L example
 
-2010-09-10 20:47  pramsey
+2010-09-10 20:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support file for shapefil update
+	* [r5959] loader/safileio.c: Add support file for shapefil update
 
-2010-09-10 20:47  pramsey
+2010-09-10 20:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for #554, align internal shapelib with official shapelib
+	* [r5958] loader/Makefile.in, loader/dbfopen.c, loader/shapefil.h,
+	  loader/shpopen.c: Fix for #554, align internal shapelib with
+	  official shapelib
 
-2010-09-10 19:07  robe
+2010-09-10 19:07  Regina Obe <lr at pcorp.us>
 
-	* get rid of points in the lower concave hull as well, minor text
-	  cleanup
+	* [r5956] doc/html/image_src/st_concavehull05.wkt,
+	  doc/reference_processing.xml: get rid of points in the lower
+	  concave hull as well, minor text cleanup
 
-2010-09-10 18:47  robe
+2010-09-10 18:47  Regina Obe <lr at pcorp.us>
 
-	* revert changes. Getting crud from other pictures in all pictures
-	  that follow
+	* [r5955] doc/html/image_src/generator.c: revert changes. Getting
+	  crud from other pictures in all pictures that follow
 
-2010-09-10 16:33  robe
+2010-09-10 16:33  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5954] doc/html/image_src/st_concavehull06.wkt,
+	  doc/html/image_src/st_concavehull07.wkt:
 
-2010-09-10 15:34  robe
+2010-09-10 15:34  Regina Obe <lr at pcorp.us>
 
-	* get rid of points too cluttered
+	* [r5953] doc/html/image_src/st_concavehull06.wkt,
+	  doc/reference_processing.xml: get rid of points too cluttered
 
-2010-09-10 15:25  robe
+2010-09-10 15:25  Regina Obe <lr at pcorp.us>
 
-	* put back example -- some minor clean up
+	* [r5952] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_concavehull07.wkt,
+	  doc/reference_processing.xml: put back example -- some minor
+	  clean up
 
-2010-09-10 15:25  pramsey
+2010-09-10 15:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bring forward fix from #513
+	* [r5951] loader/shp2pgsql-gui.c: Bring forward fix from #513
 
-2010-09-10 15:20  colivier
+2010-09-10 15:20  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Apply patch from mwtoews. On postgresql_min_version entity in
-	  doc. Related to #539
+	* [r5949] doc/installation.xml, doc/postgis.xml: Apply patch from
+	  mwtoews. On postgresql_min_version entity in doc. Related to #539
 
-2010-09-10 15:14  pramsey
+2010-09-10 15:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for #532, Temporary table geography columns appear in other's
-	  sessions
+	* [r5948] postgis/geography.sql.in.c: Fix for #532, Temporary table
+	  geography columns appear in other's sessions
 
-2010-09-10 14:53  robe
+2010-09-10 14:53  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5946] doc/html/image_src/st_concavehull06.wkt:
 
-2010-09-10 14:47  robe
+2010-09-10 14:47  Regina Obe <lr at pcorp.us>
 
-	* give up for now
+	* [r5945] doc/html/image_src/Makefile.in: give up for now
 
-2010-09-10 14:44  robe
+2010-09-10 14:44  Regina Obe <lr at pcorp.us>
 
-	* move holes to geometrycollection
+	* [r5944] doc/html/image_src/st_concavehull07.wkt: move holes to
+	  geometrycollection
 
-2010-09-10 14:35  robe
+2010-09-10 14:35  Regina Obe <lr at pcorp.us>
 
-	* get rid of some holes
+	* [r5943] doc/html/image_src/st_concavehull07.wkt: get rid of some
+	  holes
 
-2010-09-10 14:25  colivier
+2010-09-10 14:25  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix wrong name in function definition
+	* [r5942] postgis/lwgeom_ogc.c: Fix wrong name in function
+	  definition
 
-2010-09-10 14:18  robe
+2010-09-10 14:18  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5941] doc/html/image_src/generator.c:
 
-2010-09-10 14:17  robe
+2010-09-10 14:17  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5940] doc/html/image_src/generator.c:
 
-2010-09-10 14:13  robe
+2010-09-10 14:13  Regina Obe <lr at pcorp.us>
 
-	* alright just going to increase allocated line size
+	* [r5939] doc/html/image_src/generator.c: alright just going to
+	  increase allocated line size
 
-2010-09-10 14:08  robe
+2010-09-10 14:08  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5938] doc/html/image_src/st_concavehull07.wkt:
 
-2010-09-10 14:06  colivier
+2010-09-10 14:06  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix TGEOM wrong size allocation. Tks to Paul for report
+	* [r5937] liblwgeom/libtgeom.c: Fix TGEOM wrong size allocation.
+	  Tks to Paul for report
 
-2010-09-10 14:03  robe
+2010-09-10 14:03  Regina Obe <lr at pcorp.us>
 
-	* break into several more multipoints -- parser has limit (need to
-	  fix parser later)
+	* [r5936] doc/html/image_src/st_concavehull06.wkt,
+	  doc/html/image_src/st_concavehull07.wkt: break into several more
+	  multipoints -- parser has limit (need to fix parser later)
 
-2010-09-10 13:59  robe
+2010-09-10 13:59  Regina Obe <lr at pcorp.us>
 
-	* break multipoint
+	* [r5935] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_concavehull04.wkt,
+	  doc/html/image_src/st_concavehull05.wkt: break multipoint
 
-2010-09-10 13:51  robe
+2010-09-10 13:51  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5934] doc/html/image_src/Makefile.in:
 
-2010-09-10 13:49  robe
+2010-09-10 13:49  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5933] doc/html/image_src/st_concavehull03.wkt:
 
-2010-09-10 13:37  robe
+2010-09-10 13:37  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5932] doc/html/image_src/st_concavehull03.wkt:
 
-2010-09-10 13:35  robe
+2010-09-10 13:35  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5931] doc/html/image_src/st_concavehull03.wkt:
 
-2010-09-10 13:29  robe
+2010-09-10 13:29  Regina Obe <lr at pcorp.us>
 
-	* concavehull can't reset input params in 8.3, fix document example
+	* [r5930] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_concavehull03.wkt,
+	  doc/reference_processing.xml, postgis/postgis.sql.in.c:
+	  concavehull can't reset input params in 8.3, fix document example
 
-2010-09-10 13:15  robe
+2010-09-10 13:15  Regina Obe <lr at pcorp.us>
 
-	* cleanup
+	* [r5929] postgis/postgis.sql.in.c: cleanup
 
-2010-09-10 13:00  robe
+2010-09-10 13:00  Regina Obe <lr at pcorp.us>
 
-	* Faster and more robust and accurate concave hull with Simon's S
-	  shape example test
+	* [r5927] doc/html/image_src/st_concavehull04.wkt,
+	  doc/html/image_src/st_concavehull05.wkt,
+	  doc/html/image_src/st_concavehull06.wkt,
+	  doc/html/image_src/st_concavehull07.wkt,
+	  doc/reference_processing.xml, postgis/postgis.sql.in.c: Faster
+	  and more robust and accurate concave hull with Simon's S shape
+	  example test
 
-2010-09-10 12:58  mcayland
+2010-09-10 12:58  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #458: postgis_comments being installed in contrib instead of
+	* [r5926] configure.ac, doc/Makefile.comments.in, doc/Makefile.in:
+	  Fix #458: postgis_comments being installed in contrib instead of
 	  version folder (this is a little bit of a hack since we can't
 	  merge PGXS into the main Makefile directly, but it works).
 
-2010-09-10 08:50  mcayland
+2010-09-10 08:50  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #581: LWGEOM_expand produces inconsistent results. Change the
-	  bounding box calculation routines in ptarray.c so that they
-	  perform the entire calculation in double precision then convert
-	  the final result to BOX2DFLOAT4. This prevents rounding errors
-	  being introduced into the bounding box when each input result is
-	  converted to BOX2DFLOAT4 in turn.
+	* [r5923] liblwgeom/ptarray.c: Fix #581: LWGEOM_expand produces
+	  inconsistent results. Change the bounding box calculation
+	  routines in ptarray.c so that they perform the entire calculation
+	  in double precision then convert the final result to BOX2DFLOAT4.
+	  This prevents rounding errors being introduced into the bounding
+	  box when each input result is converted to BOX2DFLOAT4 in turn.
 
-2010-09-07 21:59  strk
+2010-09-07 21:59  Sandro Santilli <strk at keybit.net>
 
-	* concave hull is currently supported
+	* [r5922] doc/reference_processing.xml: concave hull is currently
+	  supported
 
-2010-09-07 21:34  robe
+2010-09-07 21:34  Regina Obe <lr at pcorp.us>
 
-	* availability note for st_concavehull
+	* [r5921] postgis/postgis.sql.in.c: availability note for
+	  st_concavehull
 
-2010-09-07 09:45  mcayland
+2010-09-07 09:45  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix incorrect status return code from projFileCreate.
+	* [r5920] loader/pgsql2shp-core.c: Fix incorrect status return code
+	  from projFileCreate.
 
-2010-09-07 09:30  colivier
+2010-09-07 09:30  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* minor changes on comment
+	* [r5919] liblwgeom/libtgeom.h: minor changes on comment
 
-2010-09-06 21:52  mcayland
+2010-09-06 21:52  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix ShpDumperCloseTable so that it now passes back any errors
-	  that may occur during projFileCreate.
+	* [r5918] loader/pgsql2shp-core.c: Fix ShpDumperCloseTable so that
+	  it now passes back any errors that may occur during
+	  projFileCreate.
 
-2010-09-06 21:49  mcayland
+2010-09-06 21:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix the mixed-type geometry column detection routines so that
-	  they allow just MULTI/non-MULTI versions of the same basic
-	  geometry type within a column. Per report from Denis Rykov.
+	* [r5917] liblwgeom/liblwgeom.h, loader/pgsql2shp-core.c: Fix the
+	  mixed-type geometry column detection routines so that they allow
+	  just MULTI/non-MULTI versions of the same basic geometry type
+	  within a column. Per report from Denis Rykov.
 
-2010-09-06 21:07  robe
+2010-09-06 21:07  Regina Obe <lr at pcorp.us>
 
-	* minor corrections
+	* [r5916] doc/reference_processing.xml: minor corrections
 
-2010-09-06 21:00  robe
+2010-09-06 21:00  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r5915] doc/reference_processing.xml: fix typo
 
-2010-09-06 20:55  robe
+2010-09-06 20:55  Regina Obe <lr at pcorp.us>
 
-	* slightly more robust concave hull and update with links to our
+	* [r5914] doc/reference_processing.xml, postgis/postgis.sql.in.c:
+	  slightly more robust concave hull and update with links to our
 	  test real world cases.
 
-2010-09-06 12:53  colivier
+2010-09-06 12:53  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add TRIANGLE, TIN and PolyhedralSurface support to Perimeter, and
-	  relevant cunit tests (cf #568). Add TRIANGLE Area support (and so
-	  to TIN).
+	* [r5913] liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_surface.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/libtgeom.c, liblwgeom/libtgeom.h, liblwgeom/measures.c,
+	  postgis/lwgeom_functions_basic.c: Add TRIANGLE, TIN and
+	  PolyhedralSurface support to Perimeter, and relevant cunit tests
+	  (cf #568). Add TRIANGLE Area support (and so to TIN).
 
-2010-09-06 09:40  colivier
+2010-09-06 09:40  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add TRIANGLE support for GeometryN. Fix #574. Thanks to Regina
-	  for report
+	* [r5912] postgis/lwgeom_ogc.c: Add TRIANGLE support for GeometryN.
+	  Fix #574. Thanks to Regina for report
 
-2010-09-06 08:16  robe
+2010-09-06 08:16  Regina Obe <lr at pcorp.us>
 
-	* more cleanup of bios. Get rid of WKT and just called it Raster
-	  since in PostGIS 2.0, we will eventually drop the WKT from the
-	  name
+	* [r5911] doc/introduction.xml: more cleanup of bios. Get rid of
+	  WKT and just called it Raster since in PostGIS 2.0, we will
+	  eventually drop the WKT from the name
 
-2010-09-05 17:01  colivier
+2010-09-05 17:01  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Revert changes on PointN and Numpoints to remove TRIANGLE
-	  support. Add ExteriorRing support to TRIANGLE. Changes DumpPoint
-	  behaviour to reflect exteriorRing. Update unit tests
+	* [r5910] postgis/lwgeom_ogc.c, postgis/postgis.sql.in.c,
+	  regress/dumppoints_expected: Revert changes on PointN and
+	  Numpoints to remove TRIANGLE support. Add ExteriorRing support to
+	  TRIANGLE. Changes DumpPoint behaviour to reflect exteriorRing.
+	  Update unit tests
 
-2010-09-05 16:42  colivier
+2010-09-05 16:42  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* make astyle
+	* [r5909] liblwgeom/cunit/cu_surface.c: make astyle
 
-2010-09-05 15:25  colivier
+2010-09-05 15:25  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Use TGEOM struct to compute POLYHEDRALSURFACE and TIN dimension.
-	  Add relevant cunit tests. Few astyle improve
+	* [r5908] liblwgeom/cunit/cu_surface.c,
+	  liblwgeom/cunit/cu_surface.h, liblwgeom/libtgeom.c,
+	  liblwgeom/libtgeom.h, liblwgeom/lwgeom.c: Use TGEOM struct to
+	  compute POLYHEDRALSURFACE and TIN dimension. Add relevant cunit
+	  tests. Few astyle improve
 
-2010-09-03 16:14  robe
+2010-09-03 16:14  Regina Obe <lr at pcorp.us>
 
-	* add additional proto for creating holed polygons -- example later
+	* [r5906] doc/reference_processing.xml: add additional proto for
+	  creating holed polygons -- example later
 
-2010-09-03 15:37  robe
+2010-09-03 15:37  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5905] doc/reference_processing.xml:
 
-2010-09-03 15:35  robe
+2010-09-03 15:35  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5904] doc/html/image_src/st_concavehull04.wkt,
+	  doc/html/image_src/st_concavehull05.wkt,
+	  doc/html/image_src/st_concavehull06.wkt:
 
-2010-09-03 15:13  robe
+2010-09-03 15:13  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5903] doc/html/image_src/st_concavehull05.wkt:
 
-2010-09-03 15:08  robe
+2010-09-03 15:08  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r5902] doc/reference_processing.xml: typo
 
-2010-09-03 15:06  robe
+2010-09-03 15:06  Regina Obe <lr at pcorp.us>
 
-	* ST_ConcaveHull mark as new, reduce precision of point examples so
-	  passes thru wkt image generator
+	* [r5901] doc/html/image_src/st_concavehull04.wkt,
+	  doc/html/image_src/st_concavehull05.wkt,
+	  doc/html/image_src/st_concavehull06.wkt,
+	  doc/reference_processing.xml: ST_ConcaveHull mark as new, reduce
+	  precision of point examples so passes thru wkt image generator
 
-2010-09-03 14:48  robe
+2010-09-03 14:48  Regina Obe <lr at pcorp.us>
 
-	* Example of ST_ConcaveHull against point set
+	* [r5900] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_concavehull04.wkt,
+	  doc/html/image_src/st_concavehull05.wkt,
+	  doc/html/image_src/st_concavehull06.wkt,
+	  doc/reference_processing.xml: Example of ST_ConcaveHull against
+	  point set
 
-2010-09-03 13:58  robe
+2010-09-03 13:58  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5899] doc/html/image_src/st_concavehull03.wkt,
+	  doc/reference_processing.xml:
 
-2010-09-03 13:52  robe
+2010-09-03 13:52  Regina Obe <lr at pcorp.us>
 
-	* try again
+	* [r5898] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_concavehull02.wkt: try again
 
-2010-09-03 13:47  robe
+2010-09-03 13:47  Regina Obe <lr at pcorp.us>
 
-	* snap points to grid
+	* [r5897] doc/html/image_src/st_concavehull03.wkt,
+	  doc/reference_processing.xml: snap points to grid
 
-2010-09-03 13:42  robe
+2010-09-03 13:42  Regina Obe <lr at pcorp.us>
 
-	* take out last example for now
+	* [r5896] doc/html/image_src/Makefile.in: take out last example for
+	  now
 
-2010-09-03 13:39  robe
+2010-09-03 13:39  Regina Obe <lr at pcorp.us>
 
-	* Will assume my concave hull with the over 1100 points polygon
-	  slaughtered the wkt processor
+	* [r5895] doc/html/image_src/st_concavehull03.wkt,
+	  doc/reference_processing.xml: Will assume my concave hull with
+	  the over 1100 points polygon slaughtered the wkt processor
 
-2010-09-03 13:23  robe
+2010-09-03 13:23  Regina Obe <lr at pcorp.us>
 
-	* First draft of ST_ConcaveHull -- more to come
+	* [r5894] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_concavehull01.wkt,
+	  doc/html/image_src/st_concavehull02.wkt,
+	  doc/html/image_src/st_concavehull03.wkt,
+	  doc/reference_processing.xml, postgis/postgis.sql.in.c: First
+	  draft of ST_ConcaveHull -- more to come
 
-2010-09-03 12:31  strk
+2010-09-03 12:31  Sandro Santilli <strk at keybit.net>
 
-	* Make edge-edge relations clearer. Thanks to Peter Hopfgartner and
-	  to
+	* [r5893] topology/ER/topology.fig: Make edge-edge relations
+	  clearer. Thanks to Peter Hopfgartner and to
 	  Xfig developers for the wonderful experience of patching a
 	  diagram ! :)
 
-2010-09-01 23:44  mcayland
+2010-09-01 23:44  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix pgsql2shp so that it correctly returns an exit code of 1
-	  (fail) in the case where either a user query returns no rows, or
-	  the specified table is empty.
+	* [r5892] loader/pgsql2shp-core.c: Fix pgsql2shp so that it
+	  correctly returns an exit code of 1 (fail) in the case where
+	  either a user query returns no rows, or the specified table is
+	  empty.
 
-2010-09-01 23:23  mcayland
+2010-09-01 23:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Revert r5888 - the real bug is that the error message handling in
-	  place should already catch this condition but doesn't.
+	* [r5891] loader/pgsql2shp-cli.c: Revert r5888 - the real bug is
+	  that the error message handling in place should already catch
+	  this condition but doesn't.
 
-2010-09-01 20:14  nicklas
+2010-09-01 20:14  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Fixed some build warnings I had missed
+	* [r5890] liblwgeom/measures3d.c: Fixed some build warnings I had
+	  missed
 
-2010-09-01 19:55  nicklas
+2010-09-01 19:55  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* 3D Distance functions, only point-point and point line. #576
+	* [r5889] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h,
+	  liblwgeom/measures.c, liblwgeom/measures3d.c,
+	  liblwgeom/measures3d.h, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c, regress/measures.sql,
+	  regress/measures_expected: 3D Distance functions, only
+	  point-point and point line. #576
 
-2010-09-01 17:40  mcayland
+2010-09-01 17:40  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Alter the pgsql2shp CLI program so that it returns a new exit
-	  code of 2 to indicate "success, but 0 records processed". This
-	  could happen if a user-defined query doesn't return any results,
-	  or the source table happens to be empty. By setting a separate
-	  exit code, we allow scripts to determine whether or not the
-	  output shapefile contains any (useful) data.
+	* [r5888] loader/pgsql2shp-cli.c: Alter the pgsql2shp CLI program
+	  so that it returns a new exit code of 2 to indicate "success, but
+	  0 records processed". This could happen if a user-defined query
+	  doesn't return any results, or the source table happens to be
+	  empty. By setting a separate exit code, we allow scripts to
+	  determine whether or not the output shapefile contains any
+	  (useful) data.
 
-2010-09-01 12:50  robe
+2010-09-01 12:50  Regina Obe <lr at pcorp.us>
 
-	* missed a spot
+	* [r5887] NEWS: missed a spot
 
-2010-09-01 12:48  robe
+2010-09-01 12:48  Regina Obe <lr at pcorp.us>
 
-	* update with 1.5.2, 1.5.1 changes and also TIN/Polyhedral for
-	  2.0.0
+	* [r5886] NEWS: update with 1.5.2, 1.5.1 changes and also
+	  TIN/Polyhedral for 2.0.0
 
-2010-09-01 05:56  robe
+2010-09-01 05:56  Regina Obe <lr at pcorp.us>
 
-	* update credits
+	* [r5883] doc/introduction.xml: update credits
 
-2010-09-01 05:51  robe
+2010-09-01 05:51  Regina Obe <lr at pcorp.us>
 
-	* update release notes to include 1.5.2 (uppcoming) and 1.5.1 and
-	  corrections to 1.5.0
+	* [r5881] doc/release_notes.xml: update release notes to include
+	  1.5.2 (uppcoming) and 1.5.1 and corrections to 1.5.0
 
-2010-08-31 19:14  colivier
+2010-08-31 19:14  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix wrong pointer allocation size, with 64 bits errors. Tks to
+	* [r5878] liblwgeom/cunit/cu_surface.c, liblwgeom/libtgeom.c: Fix
+	  wrong pointer allocation size, with 64 bits errors. Tks to
 	  Mateusz for report. Improve cu_unit report. Improve and fix some
 	  messages from LWDEBUG
 
-2010-08-31 18:01  nicklas
+2010-08-31 18:01  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* remove strict on st_equals as discussed in #536
+	* [r5877] postgis/postgis.sql.in.c: remove strict on st_equals as
+	  discussed in #536
 
-2010-08-30 09:06  colivier
+2010-08-30 09:06  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Astyle on new files
+	* [r5875] liblwgeom/cunit/cu_surface.c, liblwgeom/libtgeom.c:
+	  Astyle on new files
 
-2010-08-30 06:49  colivier
+2010-08-30 06:49  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add Topology structure for connected surfaces (PolyhedralSurface,
-	  Tin) and LWGEOM to TGEOM transformations routines. Add related
-	  cunit tests. Merge cu_tin and cu_polyhedralsurface into a single
-	  cu_surface unit test.
+	* [r5874] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_polyhedralsurface.c,
+	  liblwgeom/cunit/cu_polyhedralsurface.h,
+	  liblwgeom/cunit/cu_surface.c, liblwgeom/cunit/cu_surface.h,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tin.c,
+	  liblwgeom/cunit/cu_tin.h, liblwgeom/libtgeom.c,
+	  liblwgeom/libtgeom.h: Add Topology structure for connected
+	  surfaces (PolyhedralSurface, Tin) and LWGEOM to TGEOM
+	  transformations routines. Add related cunit tests. Merge cu_tin
+	  and cu_polyhedralsurface into a single cu_surface unit test.
 
-2010-08-30 06:47  colivier
+2010-08-30 06:47  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Improve comments
+	* [r5873] postgis/lwgeom_in_gml.c: Improve comments
 
-2010-08-30 06:45  colivier
+2010-08-30 06:45  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* add Triangle support in lwgeom_getnumgeometries
+	* [r5872] liblwgeom/lwgeom_api.c: add Triangle support in
+	  lwgeom_getnumgeometries
 
-2010-08-28 09:21  mcayland
+2010-08-28 09:21  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix uninitialised gidfound variable which would sometimes cause
-	  pgsql2shp to fail if a gid column was not present on a database
-	  table.
+	* [r5871] loader/pgsql2shp-core.c: Fix uninitialised gidfound
+	  variable which would sometimes cause pgsql2shp to fail if a gid
+	  column was not present on a database table.
 
-2010-08-28 09:16  mcayland
+2010-08-28 09:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Set svn:keywords property so that the version number is updated
-	  correctly on checkout.
+	* [r5870] loader/pgsql2shp-core.h: Set svn:keywords property so
+	  that the version number is updated correctly on checkout.
 
-2010-08-24 12:42  robe
+2010-08-24 12:42  Regina Obe <lr at pcorp.us>
 
-	* more visually appealing example
+	* [r5867] doc/html/image_src/st_split03.wkt,
+	  doc/html/image_src/st_split04.wkt, doc/reference_processing.xml:
+	  more visually appealing example
 
-2010-08-24 11:37  robe
+2010-08-24 11:37  Regina Obe <lr at pcorp.us>
 
-	* another st_split example
+	* [r5866] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_split03.wkt,
+	  doc/html/image_src/st_split04.wkt, doc/reference_processing.xml:
+	  another st_split example
 
-2010-08-23 14:12  strk
+2010-08-23 14:12  Sandro Santilli <strk at keybit.net>
 
-	* Add 3 more postgis objects to skip from dumps
+	* [r5863] utils/new_postgis_restore.pl: Add 3 more postgis objects
+	  to skip from dumps
 
-2010-08-23 13:08  robe
+2010-08-23 13:08  Regina Obe <lr at pcorp.us>
 
-	* fix pixel types list to agree with Mat's changes to raster rfc
+	* [r5862] doc/reference_wktraster.xml: fix pixel types list to
+	  agree with Mat's changes to raster rfc
 
-2010-08-21 21:20  robe
+2010-08-21 21:20  Regina Obe <lr at pcorp.us>
 
-	* Fix dead link -- Jorge changed his link for Oracle raster / wkt
-	  raster compare
+	* [r5860] doc/faq_wktraster.xml: Fix dead link -- Jorge changed his
+	  link for Oracle raster / wkt raster compare
 
-2010-08-20 22:38  pramsey
+2010-08-20 22:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add unfinished WKB input parser for later.
+	* [r5856] liblwgeom/lwin_wkb.c: Add unfinished WKB input parser for
+	  later.
 
-2010-08-20 16:40  pramsey
+2010-08-20 16:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Synch up to 1.5 version
+	* [r5855] spatial_ref_sys.sql: Synch up to 1.5 version
 
-2010-08-20 13:14  robe
+2010-08-20 13:14  Regina Obe <lr at pcorp.us>
 
-	* some fluff from the example I copied from didn't mean to put in.
+	* [r5854] doc/reference_processing.xml: some fluff from the example
+	  I copied from didn't mean to put in.
 
-2010-08-20 12:50  robe
+2010-08-20 12:50  Regina Obe <lr at pcorp.us>
 
-	* Example for ST_Split
+	* [r5853] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_split01.wkt,
+	  doc/html/image_src/st_split02.wkt, doc/reference_processing.xml:
+	  Example for ST_Split
 
-2010-08-19 19:50  pramsey
+2010-08-19 19:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Slight improvement for #573
+	* [r5852] liblwgeom/lwgeodetic.c: Slight improvement for #573
 
-2010-08-19 12:28  robe
+2010-08-19 12:28  Regina Obe <lr at pcorp.us>
 
-	* more tin and ps. Note about change in st_asbinary in 9.0
+	* [r5850] doc/reference_misc.xml, doc/reference_output.xml: more
+	  tin and ps. Note about change in st_asbinary in 9.0
 
-2010-08-18 18:48  robe
+2010-08-18 18:48  Regina Obe <lr at pcorp.us>
 
-	* mark more TIN compatible functions. revise template slightly
+	* [r5849] doc/reference_editor.xml, doc/template.xml: mark more TIN
+	  compatible functions. revise template slightly
 
-2010-08-18 14:22  robe
+2010-08-18 14:22  Regina Obe <lr at pcorp.us>
 
-	* Flag more TIN support
+	* [r5848] doc/reference_processing.xml: Flag more TIN support
 
-2010-08-18 11:19  colivier
+2010-08-18 11:19  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add lwtype_name to report more user friendly error message. Cf
-	  #570
+	* [r5847] postgis/lwgeom_geos.c: Add lwtype_name to report more
+	  user friendly error message. Cf #570
 
-2010-08-18 08:02  colivier
+2010-08-18 08:02  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Put TYPE_GETTYPE before his possible debug use...
+	* [r5846] postgis/lwgeom_geos.c: Put TYPE_GETTYPE before his
+	  possible debug use...
 
-2010-08-18 08:01  colivier
+2010-08-18 08:01  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix for #573, where has_arc check with unsupported
-	  TRIANGLE/TIN/POLYHEDRALSURFACE produce crash with POSTGIS2GEOS
-	  function. Thanks to Regina for bug report !
+	* [r5845] liblwgeom/lwsegmentize.c: Fix for #573, where has_arc
+	  check with unsupported TRIANGLE/TIN/POLYHEDRALSURFACE produce
+	  crash with POSTGIS2GEOS function. Thanks to Regina for bug report
+	  !
 
-2010-08-17 20:10  pramsey
+2010-08-17 20:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Return the, er, return value.
+	* [r5843] liblwgeom/lwgeodetic.c: Return the, er, return value.
 
-2010-08-17 18:24  colivier
+2010-08-17 18:24  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add TRIANGLE support to ST_Affine function. Thanks to Regina for
-	  detailled bug report. Cf #571
+	* [r5842] postgis/lwgeom_functions_basic.c: Add TRIANGLE support to
+	  ST_Affine function. Thanks to Regina for detailled bug report. Cf
+	  #571
 
-2010-08-17 15:21  robe
+2010-08-17 15:21  Regina Obe <lr at pcorp.us>
 
-	* revise slightly for true collection for polysurface.
+	* [r5839] doc/xsl/postgis_gardentest.sql.xsl: revise slightly for
+	  true collection for polysurface.
 
-2010-08-17 07:48  robe
+2010-08-17 07:48  Regina Obe <lr at pcorp.us>
 
-	* Add examples of EWKB/EWKT for TIN, TRIANGLE, and MULTICURVE
+	* [r5838] doc/using_postgis_dataman.xml: Add examples of EWKB/EWKT
+	  for TIN, TRIANGLE, and MULTICURVE
 
-2010-08-17 07:24  robe
+2010-08-17 07:24  Regina Obe <lr at pcorp.us>
 
-	* mark ST_Dump as TIN supporting, update peoples bios. Add Maxime
-	  van Noppen (aka yabo) to contributors list (ST_DumpPoints and
+	* [r5837] doc/introduction.xml, doc/reference_processing.xml: mark
+	  ST_Dump as TIN supporting, update peoples bios. Add Maxime van
+	  Noppen (aka yabo) to contributors list (ST_DumpPoints and
 	  ST_Collect support)
 
-2010-08-16 15:09  robe
+2010-08-16 15:09  Regina Obe <lr at pcorp.us>
 
-	* Add matrix column for TIN/Triangles. Add TINA dn triangles to
-	  garden tests
+	* [r5836] doc/xsl/postgis_aggs_mm.xml.xsl,
+	  doc/xsl/postgis_gardentest.sql.xsl: Add matrix column for
+	  TIN/Triangles. Add TINA dn triangles to garden tests
 
-2010-08-16 14:19  robe
+2010-08-16 14:19  Regina Obe <lr at pcorp.us>
 
-	* Mark ST_Dumpoints as supporting Polyhedral, triangles, and TINS.
-	  Example of these. Revise add a marker in template and postgis.xml
-	  for Triangles and TINS.
+	* [r5835] doc/postgis.xml, doc/reference_processing.xml,
+	  doc/template.xml: Mark ST_Dumpoints as supporting Polyhedral,
+	  triangles, and TINS. Example of these. Revise add a marker in
+	  template and postgis.xml for Triangles and TINS.
 
-2010-08-16 07:59  mleslie
+2010-08-16 07:59  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Changing the ID keyword to Id, so it will actually get picked up.
+	* [r5834] loader/structure.c, loader/structure.h: Changing the ID
+	  keyword to Id, so it will actually get picked up.
 
-2010-08-16 07:58  mleslie
+2010-08-16 07:58  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Setting svn:keywords so the headers make sense.
+	* [r5833] loader/structure.c, loader/structure.h: Setting
+	  svn:keywords so the headers make sense.
 
-2010-08-16 07:49  mleslie
+2010-08-16 07:49  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Adding copywrite header to the structure files.
+	* [r5832] loader/structure.c, loader/structure.h: Adding copywrite
+	  header to the structure files.
 
-2010-08-16 07:49  mleslie
+2010-08-16 07:49  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Removing a Makefile that shouldn't have been committed.
+	* [r5831] loader/cunit/Makefile: Removing a Makefile that shouldn't
+	  have been committed.
 
-2010-08-15 18:54  colivier
+2010-08-15 18:54  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add St_NumPoints and ST_PointN support for Triangle. Add
-	  ST_DumpPoints support for Triangle, Tin and Polyhedral Surface,
-	  and related unit tests. Tks to yabo for patch. Related to #564
+	* [r5830] postgis/lwgeom_in_gml.c, postgis/lwgeom_ogc.c,
+	  postgis/postgis.sql.in.c, regress/dumppoints.sql,
+	  regress/dumppoints_expected: Add St_NumPoints and ST_PointN
+	  support for Triangle. Add ST_DumpPoints support for Triangle, Tin
+	  and Polyhedral Surface, and related unit tests. Tks to yabo for
+	  patch. Related to #564
 
-2010-08-15 18:51  colivier
+2010-08-15 18:51  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add forgotten Triangle support in lwgeom_inspect
+	* [r5829] liblwgeom/lwgeom_api.c: Add forgotten Triangle support in
+	  lwgeom_inspect
 
-2010-08-15 14:20  mcayland
+2010-08-15 14:20  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit initial version of reworked pgsql2shp architecture that
+	* [r5828] loader/Makefile.in, loader/pgsql2shp-cli.c,
+	  loader/pgsql2shp-core.c, loader/pgsql2shp-core.h,
+	  loader/pgsql2shp.c, loader/shp2pgsql-core.h, loader/shpcommon.h:
+	  Commit initial version of reworked pgsql2shp architecture that
 	  defines a common API within pgsql2shp-core that can be called
 	  from both the existing CLI and in the future a GUI interface.
 	  
@@ -26086,5185 +42958,6549 @@
 	  This work was primarily sponsored by OpenGeo (http://opengeo.org)
 	  - thanks guys!
 
-2010-08-15 13:57  colivier
+2010-08-15 13:57  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add Tin and Triangle support for ST_GeomFromGML. Add related unit
-	  tests
+	* [r5827] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Add Tin and Triangle support for
+	  ST_GeomFromGML. Add related unit tests
 
-2010-08-15 13:56  colivier
+2010-08-15 13:56  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix error in lwgeom_recursive2d for Triangle type
+	* [r5826] postgis/lwgeom_functions_basic.c: Fix error in
+	  lwgeom_recursive2d for Triangle type
 
-2010-08-15 08:30  colivier
+2010-08-15 08:30  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Astyle session on whole trunk
+	* [r5825] extras/wkb_reader/readwkb.c,
+	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
+	  liblwgeom/cunit/cu_polyhedralsurface.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tin.c, liblwgeom/cunit/cu_wkb.c,
+	  liblwgeom/cunit/cu_wkt.c, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeom.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwline.c,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwout_kml.c,
+	  liblwgeom/lwout_wkb.c, liblwgeom/lwout_wkt.c,
+	  liblwgeom/lwpsurface.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwspheroid.c, liblwgeom/lwtin.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/lwutil.c, liblwgeom/ptarray.c,
+	  liblwgeom/stringbuffer.c, loader/cunit/Makefile,
+	  loader/cunit/cu_list.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-gui.c, loader/structure.c,
+	  postgis/geography_inout.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_split.c,
+	  postgis/lwgeom_gist.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c: Astyle session on whole trunk
 
-2010-08-14 10:57  mcayland
+2010-08-14 10:57  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix a memory leak in all of the MULTI* deserialize routines -
-	  once the relevant information had been copied from the
-	  LWGEOM_INSPECTED structure, the inspected structure itself was
-	  not being freed.
+	* [r5824] liblwgeom/lwmcurve.c, liblwgeom/lwmline.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c: Fix a memory leak in all of the MULTI*
+	  deserialize routines - once the relevant information had been
+	  copied from the LWGEOM_INSPECTED structure, the inspected
+	  structure itself was not being freed.
 
-2010-08-13 17:30  colivier
+2010-08-13 17:30  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Few lwtype_name add
+	* [r5822] liblwgeom/lwmline.c, liblwgeom/lwmpoint.c,
+	  liblwgeom/lwmpoly.c: Few lwtype_name add
 
-2010-08-13 17:29  colivier
+2010-08-13 17:29  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add Triangle and TIN new geometry type. Add Cunit tests on parse
-	  stage, related to #561. Add ST_AsGML support TIN and Triangle for
-	  GML 3. Slightly cast change in PolyhedralSurface LWGEOM struct
-	  Remove PolyhedralSurface support from forceRHR function as
-	  orientation is meaningfull in PS. Move is_closed functions from
-	  PostGIS to LWGEOM dir and related cunit test case on line and
-	  curves.
+	* [r5821] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_algorithm.c, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tin.c,
+	  liblwgeom/cunit/cu_tin.h, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/g_util.c, liblwgeom/lex.yy.c,
+	  liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwline.c,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwpsurface.c, liblwgeom/lwtin.c,
+	  liblwgeom/lwtriangle.c, liblwgeom/lwutil.c, liblwgeom/wktparse.h,
+	  liblwgeom/wktparse.lex, liblwgeom/wktparse.tab.c,
+	  liblwgeom/wktparse.tab.h, liblwgeom/wktparse.y,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_ogc.c,
+	  postgis/postgis.sql.in.c: Add Triangle and TIN new geometry type.
+	  Add Cunit tests on parse stage, related to #561. Add ST_AsGML
+	  support TIN and Triangle for GML 3. Slightly cast change in
+	  PolyhedralSurface LWGEOM struct Remove PolyhedralSurface support
+	  from forceRHR function as orientation is meaningfull in PS. Move
+	  is_closed functions from PostGIS to LWGEOM dir and related cunit
+	  test case on line and curves.
 
-2010-08-13 15:26  robe
+2010-08-13 15:26  Regina Obe <lr at pcorp.us>
 
-	* ST_AsGML polyhedral support
+	* [r5820] doc/reference_output.xml: ST_AsGML polyhedral support
 
-2010-08-13 15:15  robe
+2010-08-13 15:15  Regina Obe <lr at pcorp.us>
 
-	* st_isclosed polyhedral surface
+	* [r5819] doc/reference_accessor.xml: st_isclosed polyhedral
+	  surface
 
-2010-08-12 15:40  robe
+2010-08-12 15:40  Regina Obe <lr at pcorp.us>
 
-	* more. Change polyhedralsurface example to valid srid so don't get
-	  false errors
+	* [r5818] doc/reference_editor.xml, doc/reference_operator.xml,
+	  doc/xsl/postgis_gardentest.sql.xsl: more. Change
+	  polyhedralsurface example to valid srid so don't get false errors
 
-2010-08-12 14:58  robe
+2010-08-12 14:58  Regina Obe <lr at pcorp.us>
 
-	* Affine family polyhedral
+	* [r5817] doc/reference_editor.xml: Affine family polyhedral
 
-2010-08-12 14:52  robe
+2010-08-12 14:52  Regina Obe <lr at pcorp.us>
 
-	* Polyhedral findings based on monkey testing -- more to come
+	* [r5816] doc/reference_accessor.xml, doc/reference_editor.xml:
+	  Polyhedral findings based on monkey testing -- more to come
 
-2010-08-12 12:39  robe
+2010-08-12 12:39  Regina Obe <lr at pcorp.us>
 
-	* missing SELECT
+	* [r5815] doc/reference_constructor.xml: missing SELECT
 
-2010-08-11 19:20  robe
+2010-08-11 19:20  Regina Obe <lr at pcorp.us>
 
-	* more logging
+	* [r5814] doc/xsl/postgis_gardentest.sql.xsl: more logging
 
-2010-08-11 18:41  robe
+2010-08-11 18:41  Regina Obe <lr at pcorp.us>
 
-	* start logging start and stop times to logging table
-	  postgis_garden_log. Still needs some fine tuning
+	* [r5813] doc/xsl/postgis_gardentest.sql.xsl: start logging start
+	  and stop times to logging table postgis_garden_log. Still needs
+	  some fine tuning
 
-2010-08-11 13:42  robe
+2010-08-11 13:42  Regina Obe <lr at pcorp.us>
 
-	* ST_GeomFromGML example for Polyhedral surface
+	* [r5812] doc/reference_constructor.xml: ST_GeomFromGML example for
+	  Polyhedral surface
 
-2010-08-11 12:15  robe
+2010-08-11 12:15  Regina Obe <lr at pcorp.us>
 
-	* I think Mark committed this file by accident
+	* [r5810] loader/structure.o: I think Mark committed this file by
+	  accident
 
-2010-08-11 09:50  mleslie
+2010-08-11 09:50  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Pushing the shp2pgsql-gui changes (multi-file, validation,
-	  drag-n-drop) pulled from stable branch into trunk.
+	* [r5809] configure.ac, loader/Makefile.in, loader/cunit,
+	  loader/cunit/Makefile, loader/cunit/Makefile.in,
+	  loader/cunit/cu_list.c, loader/cunit/cu_list.h,
+	  loader/cunit/cu_tester.c, loader/cunit/cu_tester.h, loader/image,
+	  loader/image/error.png, loader/image/good.png,
+	  loader/image/icon_source.svg, loader/image/warn.png,
+	  loader/shp2pgsql-gui.c, loader/structure.c, loader/structure.h,
+	  loader/structure.o: Pushing the shp2pgsql-gui changes
+	  (multi-file, validation, drag-n-drop) pulled from stable branch
+	  into trunk.
 
-2010-08-11 09:24  nicklas
+2010-08-11 09:24  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* pushing *uchar use out of measures.c as part of #308
+	* [r5807] liblwgeom/cunit/cu_measures.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/measures.c, liblwgeom/measures.h,
+	  postgis/lwgeom_functions_basic.c: pushing *uchar use out of
+	  measures.c as part of #308
 
-2010-08-10 19:43  pramsey
+2010-08-10 19:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in fix for #562, forward ported from 1.5 branch
-	  (point-in-poly failure for large large geography polygons)
+	* [r5805] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/lwgeodetic.c: Add
+	  in fix for #562, forward ported from 1.5 branch (point-in-poly
+	  failure for large large geography polygons)
 
-2010-08-10 16:19  colivier
+2010-08-10 16:19  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add POLYHEDRALSURFACE support to ST_AsGML for GML 3 output
+	* [r5803] liblwgeom/cunit/cu_out_gml.c, liblwgeom/lwout_gml.c: Add
+	  POLYHEDRALSURFACE support to ST_AsGML for GML 3 output
 
-2010-08-09 18:56  robe
+2010-08-09 18:56  Regina Obe <lr at pcorp.us>
 
-	* Flag st_dimension supports polyhedral and no longer throws
-	  exception for empty geoms
+	* [r5799] doc/reference_accessor.xml: Flag st_dimension supports
+	  polyhedral and no longer throws exception for empty geoms
 
-2010-08-09 15:40  robe
+2010-08-09 15:40  Regina Obe <lr at pcorp.us>
 
-	* ST_GeometryN polyhedral support
+	* [r5798] doc/reference_accessor.xml: ST_GeometryN polyhedral
+	  support
 
-2010-08-09 14:22  robe
+2010-08-09 14:22  Regina Obe <lr at pcorp.us>
 
-	* mark some more functions support polyhedral surface
+	* [r5797] doc/reference_processing.xml: mark some more functions
+	  support polyhedral surface
 
-2010-08-09 13:53  robe
+2010-08-09 13:53  Regina Obe <lr at pcorp.us>
 
-	* appendments about Polyhedral surface support
+	* [r5796] doc/reference_accessor.xml, doc/reference_editor.xml,
+	  doc/template.xml: appendments about Polyhedral surface support
 
-2010-08-08 22:20  strk
+2010-08-08 22:20  Sandro Santilli <strk at keybit.net>
 
-	* Drop spurious empty line
+	* [r5795] regress/polyhedralsurface_expected: Drop spurious empty
+	  line
 
-2010-08-08 22:20  strk
+2010-08-08 22:20  Sandro Santilli <strk at keybit.net>
 
-	* 'pushd' is not guaranteed to be provided by all shells (Ubuntu
-	  8.10 has /bin/sh point to dash(1) which doesn't provide it)
+	* [r5794] regress/Makefile.in: 'pushd' is not guaranteed to be
+	  provided by all shells (Ubuntu 8.10 has /bin/sh point to dash(1)
+	  which doesn't provide it)
 
-2010-08-08 20:41  colivier
+2010-08-08 20:41  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add function aliases for ST_NumPatches and ST_PatchN (both SFS
-	  1.2 and SQL/MM). Add PolyhedralSurface for ST_IsClosed (surface
-	  vs volume). Update ST_Dimension support to be consistent. Add
-	  unit tests.
+	* [r5793] postgis/lwgeom_ogc.c, postgis/postgis.sql.in.c,
+	  regress/Makefile.in, regress/polyhedralsurface.sql,
+	  regress/polyhedralsurface_expected: Add function aliases for
+	  ST_NumPatches and ST_PatchN (both SFS 1.2 and SQL/MM). Add
+	  PolyhedralSurface for ST_IsClosed (surface vs volume). Update
+	  ST_Dimension support to be consistent. Add unit tests.
 
-2010-08-08 20:36  colivier
+2010-08-08 20:36  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Improve printLWPSURFACE to also print each rings if any
+	* [r5792] liblwgeom/lwpsurface.c: Improve printLWPSURFACE to also
+	  print each rings if any
 
-2010-08-06 21:31  colivier
+2010-08-06 21:31  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* lwtype_name session. cf #453
+	* [r5791] liblwgeom/g_box.c, liblwgeom/g_serialized.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwout_wkt.c,
+	  liblwgeom/lwsegmentize.c: lwtype_name session. cf #453
 
-2010-08-06 20:30  colivier
+2010-08-06 20:30  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Typo in error message
+	* [r5790] postgis/lwgeom_in_gml.c: Typo in error message
 
-2010-08-06 20:08  colivier
+2010-08-06 20:08  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add PolyhedralSurface support to ST_GeomFromGML. Add related unit
-	  tests. related to #430
+	* [r5789] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Add PolyhedralSurface support to
+	  ST_GeomFromGML. Add related unit tests. related to #430
 
-2010-08-06 20:07  colivier
+2010-08-06 20:07  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add PolyhedralSurface support to force_* functions
+	* [r5788] postgis/lwgeom_functions_basic.c: Add PolyhedralSurface
+	  support to force_* functions
 
-2010-08-06 16:17  robe
+2010-08-06 16:17  Regina Obe <lr at pcorp.us>
 
-	* flag more ps functions
+	* [r5784] doc/reference_output.xml: flag more ps functions
 
-2010-08-06 15:50  robe
+2010-08-06 15:50  Regina Obe <lr at pcorp.us>
 
-	* typo in entity
+	* [r5783] doc/reference_measure.xml: typo in entity
 
-2010-08-06 15:42  robe
+2010-08-06 15:42  Regina Obe <lr at pcorp.us>
 
-	* typos
+	* [r5782] doc/reference_constructor.xml, doc/reference_measure.xml:
+	  typos
 
-2010-08-06 13:43  robe
+2010-08-06 13:43  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5781] doc/reference_measure.xml:
 
-2010-08-06 13:42  robe
+2010-08-06 13:42  Regina Obe <lr at pcorp.us>
 
-	* st_area polyhedral support
+	* [r5780] doc/reference_measure.xml: st_area polyhedral support
 
-2010-08-06 13:24  robe
+2010-08-06 13:24  Regina Obe <lr at pcorp.us>
 
-	* flagged wrong function - swap
+	* [r5779] doc/reference_constructor.xml: flagged wrong function -
+	  swap
 
-2010-08-06 13:22  robe
+2010-08-06 13:22  Regina Obe <lr at pcorp.us>
 
-	* flagged 1 too many functions as polyhedral supporting
+	* [r5778] doc/reference_constructor.xml: flagged 1 too many
+	  functions as polyhedral supporting
 
-2010-08-06 13:03  robe
+2010-08-06 13:03  Regina Obe <lr at pcorp.us>
 
-	* forgot to increment column count
+	* [r5777] doc/xsl/postgis_aggs_mm.xml.xsl: forgot to increment
+	  column count
 
-2010-08-06 13:00  robe
+2010-08-06 13:00  Regina Obe <lr at pcorp.us>
 
-	* itemize some constructors supporting polyhedral surfaces
+	* [r5776] doc/reference_constructor.xml: itemize some constructors
+	  supporting polyhedral surfaces
 
-2010-08-06 12:50  robe
+2010-08-06 12:50  Regina Obe <lr at pcorp.us>
 
-	* update template to include polyhedral, add a special section
-	  listing just polyhedral support functions
+	* [r5775] doc/template.xml, doc/xsl/postgis_aggs_mm.xml.xsl: update
+	  template to include polyhedral, add a special section listing
+	  just polyhedral support functions
 
-2010-08-06 12:42  robe
+2010-08-06 12:42  Regina Obe <lr at pcorp.us>
 
-	* Add polyhedral column and abbreviate the others so can easily fit
-	  new column. We should eventually have raster in there too.
+	* [r5774] doc/xsl/postgis_aggs_mm.xml.xsl: Add polyhedral column
+	  and abbreviate the others so can easily fit new column. We should
+	  eventually have raster in there too.
 
-2010-08-06 12:22  robe
+2010-08-06 12:22  Regina Obe <lr at pcorp.us>
 
-	* Add polyhedral surface to code names and add ST_Dump as
-	  supporting polyhedral surfaces
+	* [r5773] doc/postgis.xml, doc/reference_processing.xml: Add
+	  polyhedral surface to code names and add ST_Dump as supporting
+	  polyhedral surfaces
 
-2010-08-05 19:43  colivier
+2010-08-05 19:43  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add POLYHEDRALSURFACE support to AddGeometryColumn, GetType,
+	* [r5772] postgis/lwgeom_ogc.c, postgis/postgis.sql.in.c: Add
+	  POLYHEDRALSURFACE support to AddGeometryColumn, GetType,
 	  ST_Dimension, ST_NumGeometries. Related to #555
 
-2010-08-05 15:58  colivier
+2010-08-05 15:58  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Change label 'face' to 'patch' in POLYHEDRALSURFACE. Related to
-	  #427
+	* [r5771] liblwgeom/lwgparse.c, liblwgeom/wktparse.h,
+	  liblwgeom/wktparse.tab.c, liblwgeom/wktparse.y: Change label
+	  'face' to 'patch' in POLYHEDRALSURFACE. Related to #427
 
-2010-08-04 20:02  colivier
+2010-08-04 20:02  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add geography support for POLYHEDRALSURFACE. Related to #427
+	* [r5770] liblwgeom/cunit/cu_polyhedralsurface.c,
+	  liblwgeom/g_box.c, liblwgeom/g_serialized.c, liblwgeom/g_util.c:
+	  Add geography support for POLYHEDRALSURFACE. Related to #427
 
-2010-08-04 19:04  colivier
+2010-08-04 19:04  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Update some comments to add year to each ISO specs reference.
-	  Some beautify on code. Not a single change on code itself.
+	* [r5769] postgis/lwgeom_in_gml.c: Update some comments to add year
+	  to each ISO specs reference. Some beautify on code. Not a single
+	  change on code itself.
 
-2010-08-03 17:55  robe
+2010-08-03 17:55  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r5768] doc/xsl/postgis_gardentest.sql.xsl: fix typo
 
-2010-08-03 14:19  robe
+2010-08-03 14:19  Regina Obe <lr at pcorp.us>
 
-	* minor corrections and addition about bytea output behavior in 9.0
+	* [r5766] doc/faq.xml, doc/reference_constructor.xml,
+	  doc/reference_measure.xml: minor corrections and addition about
+	  bytea output behavior in 9.0
 
-2010-08-02 16:02  robe
+2010-08-02 16:02  Regina Obe <lr at pcorp.us>
 
-	* Add polyhedralsurface to ewkt example forms
+	* [r5765] doc/using_postgis_dataman.xml: Add polyhedralsurface to
+	  ewkt example forms
 
-2010-08-02 15:59  robe
+2010-08-02 15:59  Regina Obe <lr at pcorp.us>
 
-	* Add polyhedral surface to garden geometry set
+	* [r5764] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl: Add polyhedral surface
+	  to garden geometry set
 
-2010-08-01 21:11  colivier
+2010-08-01 21:11  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add 2D and 3DM support to POLYHEDRALSURFACE. Allow interior rings
-	  for patches. Don't check anymore minimum patch number. Related to
-	  #427
+	* [r5760] liblwgeom/cunit/cu_polyhedralsurface.c,
+	  liblwgeom/lex.yy.c, liblwgeom/liblwgeom.h, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/wktparse.h,
+	  liblwgeom/wktparse.lex, liblwgeom/wktparse.tab.c,
+	  liblwgeom/wktparse.tab.h, liblwgeom/wktparse.y: Add 2D and 3DM
+	  support to POLYHEDRALSURFACE. Allow interior rings for patches.
+	  Don't check anymore minimum patch number. Related to #427
 
-2010-07-29 13:44  nicklas
+2010-07-29 13:44  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* ugly style fix
+	* [r5758] liblwgeom/lwout_wkb.c: ugly style fix
 
-2010-07-29 13:36  nicklas
+2010-07-29 13:36  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* param.h is needed for ENDIAN definitions in mingw
+	* [r5757] liblwgeom/lwout_wkb.c: param.h is needed for ENDIAN
+	  definitions in mingw
 
-2010-07-28 04:30  robe
+2010-07-28 04:30  Regina Obe <lr at pcorp.us>
 
-	* amend docs to talk about standard_conforming_strings and change
-	  in 9.0
+	* [r5755] doc/reference_constructor.xml: amend docs to talk about
+	  standard_conforming_strings and change in 9.0
 
-2010-07-27 18:22  robe
+2010-07-27 18:22  Regina Obe <lr at pcorp.us>
 
-	* ST_SetValue
+	* [r5754] doc/reference_wktraster.xml: ST_SetValue
 
-2010-07-25 21:20  colivier
+2010-07-25 21:20  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add really basic POLYHEDRALSURFACE support. Parse, Unparse,
-	  Serialization and cunit unit tests. related to #427
+	* [r5753] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_polyhedralsurface.c,
+	  liblwgeom/cunit/cu_polyhedralsurface.h,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/lex.yy.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwpsurface.c,
+	  liblwgeom/lwutil.c, liblwgeom/wktparse.h, liblwgeom/wktparse.lex,
+	  liblwgeom/wktparse.tab.c, liblwgeom/wktparse.tab.h,
+	  liblwgeom/wktparse.y: Add really basic POLYHEDRALSURFACE support.
+	  Parse, Unparse, Serialization and cunit unit tests. related to
+	  #427
 
-2010-07-24 10:55  colivier
+2010-07-24 10:55  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Remove Integer deprecaded types (POINTTYPEI, LINETYPEI,
-	  POLYGONTYPEI) and lwgi related stuff. As a consequence EWKB of
-	  CURVEPOLYTYPE, MULTICURVETYPE and MULTISURFACETYPE is
-	  changed/impacted (geometry type bits). Now we have 3 new free
-	  geometry type available. Preliminary work to #427
+	* [r5752] liblwgeom/lex.yy.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgparse.c, liblwgeom/lwgunparse.c,
+	  liblwgeom/lwutil.c, liblwgeom/wktparse.h,
+	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-serialize.sql: Remove Integer deprecaded types
+	  (POINTTYPEI, LINETYPEI, POLYGONTYPEI) and lwgi related stuff. As
+	  a consequence EWKB of CURVEPOLYTYPE, MULTICURVETYPE and
+	  MULTISURFACETYPE is changed/impacted (geometry type bits). Now we
+	  have 3 new free geometry type available. Preliminary work to #427
 
-2010-07-23 14:55  robe
+2010-07-23 14:55  Regina Obe <lr at pcorp.us>
 
-	* Polish up Raster FAQ a bit more
+	* [r5749] doc/faq_wktraster.xml: Polish up Raster FAQ a bit more
 
-2010-07-23 14:16  robe
+2010-07-23 14:16  Regina Obe <lr at pcorp.us>
 
-	* document raster2coord family of functions
+	* [r5747] doc/reference_wktraster.xml: document raster2coord family
+	  of functions
 
-2010-07-22 12:26  robe
+2010-07-22 12:26  Regina Obe <lr at pcorp.us>
 
-	* Add Jorge's discussion on Oracle GeoRaster to FAQ
+	* [r5746] doc/faq_wktraster.xml: Add Jorge's discussion on Oracle
+	  GeoRaster to FAQ
 
-2010-07-22 10:50  robe
+2010-07-22 10:50  Regina Obe <lr at pcorp.us>
 
-	* Update to include link to MacOSX binaries. Also put in the reason
-	  for rtpostgis not loading (our fault but...)
+	* [r5745] doc/faq_wktraster.xml: Update to include link to MacOSX
+	  binaries. Also put in the reason for rtpostgis not loading (our
+	  fault but...)
 
-2010-07-09 16:59  robe
+2010-07-09 16:59  Regina Obe <lr at pcorp.us>
 
-	* ST_PixelAsPolygon
+	* [r5736] doc/reference_wktraster.xml: ST_PixelAsPolygon
 
-2010-07-09 14:55  robe
+2010-07-09 14:55  Regina Obe <lr at pcorp.us>
 
-	* additional note link to ST_BandPixelType in case people don't
-	  know what the codes mean
+	* [r5735] doc/reference_wktraster.xml: additional note link to
+	  ST_BandPixelType in case people don't know what the codes mean
 
-2010-07-09 14:53  robe
+2010-07-09 14:53  Regina Obe <lr at pcorp.us>
 
-	* ST_RasterBandMetaData
+	* [r5734] doc/reference_wktraster.xml: ST_RasterBandMetaData
 
-2010-07-07 21:52  strk
+2010-07-07 21:52  Sandro Santilli <strk at keybit.net>
 
-	* Add 7.3+ CAST (wasn't needed up to 7.2, against which this
-	  topology implementation was coded)
+	* [r5732] topology/topology.sql.in.c: Add 7.3+ CAST (wasn't needed
+	  up to 7.2, against which this topology implementation was coded)
 
-2010-07-07 14:23  robe
+2010-07-07 14:23  Regina Obe <lr at pcorp.us>
 
-	* get rid of obsolete note. Have to simplify example too since its
-	  not needed anymore -- oh well - will do later
+	* [r5731] doc/reference_wktraster.xml: get rid of obsolete note.
+	  Have to simplify example too since its not needed anymore -- oh
+	  well - will do later
 
-2010-07-07 14:20  robe
+2010-07-07 14:20  Regina Obe <lr at pcorp.us>
 
-	* typo missing end tag
+	* [r5729] doc/reference_wktraster.xml: typo missing end tag
 
-2010-07-07 14:18  robe
+2010-07-07 14:18  Regina Obe <lr at pcorp.us>
 
-	* new protos for st_value (the point geometry versions -- yeh) plus
-	  examples
+	* [r5728] doc/reference_wktraster.xml: new protos for st_value (the
+	  point geometry versions -- yeh) plus examples
 
-2010-07-07 13:59  robe
+2010-07-07 13:59  Regina Obe <lr at pcorp.us>
 
-	* st_metadata
+	* [r5727] doc/reference_wktraster.xml: st_metadata
 
-2010-07-07 13:50  robe
+2010-07-07 13:50  Regina Obe <lr at pcorp.us>
 
-	* other missing protos of existing defined
+	* [r5726] doc/reference_wktraster.xml: other missing protos of
+	  existing defined
 
-2010-07-07 13:44  robe
+2010-07-07 13:44  Regina Obe <lr at pcorp.us>
 
-	* missed spot
+	* [r5725] doc/reference_wktraster.xml: missed spot
 
-2010-07-07 13:43  robe
+2010-07-07 13:43  Regina Obe <lr at pcorp.us>
 
-	* ad missing proto for bandnodatavalue
+	* [r5724] doc/reference_wktraster.xml: ad missing proto for
+	  bandnodatavalue
 
-2010-07-06 08:28  strk
+2010-07-06 08:28  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_isCollection (see #549)
+	* [r5723] NEWS, doc/reference_accessor.xml: Document
+	  ST_isCollection (see #549)
 
-2010-07-06 08:28  strk
+2010-07-06 08:28  Sandro Santilli <strk at keybit.net>
 
-	* Remove spurious element (was hiding behind a fill)
+	* [r5722] topology/ER/topology.fig: Remove spurious element (was
+	  hiding behind a fill)
 
-2010-07-04 16:34  pramsey
+2010-07-04 16:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in micro commit to see if email hook is running
+	* [r5721] README.postgis: Add in micro commit to see if email hook
+	  is running
 
-2010-07-01 13:20  strk
+2010-07-01 13:20  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_isCollection (see ticket #549)
+	* [r5718] NEWS, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c, regress/Makefile.in,
+	  regress/iscollection.sql, regress/iscollection_expected: Add
+	  ST_isCollection (see ticket #549)
 
-2010-06-30 16:14  strk
+2010-06-30 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Do not source psqlrc when doing tests
+	* [r5717] topology/test/Makefile: Do not source psqlrc when doing
+	  tests
 
-2010-06-30 16:10  strk
+2010-06-30 16:10  Sandro Santilli <strk at keybit.net>
 
-	* More explicit cast from geometry to text (for quote_ident's sake)
-	  and an handling of unexistent topology. Tests run again with psql
-	  8.3.9
+	* [r5716] topology/topology.sql.in.c: More explicit cast from
+	  geometry to text (for quote_ident's sake) and an handling of
+	  unexistent topology. Tests run again with psql 8.3.9
 
-2010-06-30 15:52  strk
+2010-06-30 15:52  Sandro Santilli <strk at keybit.net>
 
-	* Define the cross-pgsql macros that used to be in sqldefines.h
-	  (now lost) + use st_union rather than geomunion (now lost)
+	* [r5715] topology/topology.sql.in.c: Define the cross-pgsql macros
+	  that used to be in sqldefines.h (now lost) + use st_union rather
+	  than geomunion (now lost)
 
-2010-06-30 15:51  strk
+2010-06-30 15:51  Sandro Santilli <strk at keybit.net>
 
-	* Fix loading of postgis.sql
+	* [r5714] topology/test/Makefile: Fix loading of postgis.sql
 
-2010-06-25 10:05  strk
+2010-06-25 10:05  Sandro Santilli <strk at keybit.net>
 
-	* More exception handling to avoid leaks and give more info when it
-	  happens
+	* [r5708] postgis/lwgeom_geos.c: More exception handling to avoid
+	  leaks and give more info when it happens
 
-2010-06-25 09:30  strk
+2010-06-25 09:30  Sandro Santilli <strk at keybit.net>
 
-	* Properly handle GEOS exceptions on cascaded union code (failing
-	  since introduction of postponed exception for cleaning geoms)
+	* [r5707] postgis/lwgeom_geos.c: Properly handle GEOS exceptions on
+	  cascaded union code (failing since introduction of postponed
+	  exception for cleaning geoms)
 
-2010-06-25 07:46  robe
+2010-06-25 07:46  Regina Obe <lr at pcorp.us>
 
-	* #536 get rid of strict on ST_Intersects, ST_CoveredBy and
-	  ST_Covers because spatial index doesn't work with strict on (and
-	  text,text ST_DWithin)
+	* [r5705] postgis/geography.sql.in.c: #536 get rid of strict on
+	  ST_Intersects, ST_CoveredBy and ST_Covers because spatial index
+	  doesn't work with strict on (and text,text ST_DWithin)
 
-2010-06-25 07:41  strk
+2010-06-25 07:41  Sandro Santilli <strk at keybit.net>
 
-	* Test splitting 3d line by 2d blade
+	* [r5703] regress/split.sql, regress/split_expected: Test splitting
+	  3d line by 2d blade
 
-2010-06-24 13:26  robe
+2010-06-24 13:26  Regina Obe <lr at pcorp.us>
 
-	* minor corrections
+	* [r5702] doc/faq_wktraster.xml: minor corrections
 
-2010-06-24 13:22  robe
+2010-06-24 13:22  Regina Obe <lr at pcorp.us>
 
-	* Add another FAQ
+	* [r5701] doc/faq_wktraster.xml: Add another FAQ
 
-2010-06-24 12:02  robe
+2010-06-24 12:02  Regina Obe <lr at pcorp.us>
 
-	* fix some data type typos
+	* [r5700] doc/reference_wktraster.xml: fix some data type typos
 
-2010-06-23 17:56  robe
+2010-06-23 17:56  Regina Obe <lr at pcorp.us>
 
-	* typo in data type
+	* [r5699] doc/reference_wktraster.xml: typo in data type
 
-2010-06-23 16:53  robe
+2010-06-23 16:53  Regina Obe <lr at pcorp.us>
 
-	* ST_Intersection and minor changes for setof to distinquish from
-	  array types
+	* [r5698] doc/reference_wktraster.xml: ST_Intersection and minor
+	  changes for setof to distinquish from array types
 
-2010-06-23 16:27  robe
+2010-06-23 16:27  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r5697] doc/reference_wktraster.xml: fix typo
 
-2010-06-23 14:36  robe
+2010-06-23 14:36  Regina Obe <lr at pcorp.us>
 
-	* Document ST_Intersects
+	* [r5696] doc/reference_wktraster.xml: Document ST_Intersects
 
-2010-06-23 14:18  robe
+2010-06-23 14:18  Regina Obe <lr at pcorp.us>
 
-	* document ST_Polygon
+	* [r5695] doc/reference_wktraster.xml: document ST_Polygon
 
-2010-06-23 13:51  robe
+2010-06-23 13:51  Regina Obe <lr at pcorp.us>
 
-	* Add some faqs from the wkt raster wiki. A lot I left out for now
-	  because they are too wordy.
+	* [r5694] doc/faq_wktraster.xml: Add some faqs from the wkt raster
+	  wiki. A lot I left out for now because they are too wordy.
 
-2010-06-03 19:10  pramsey
+2010-06-03 19:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove crash when dbf file is missing / unloadable
+	* [r5678] loader/shp2pgsql-core.c: Remove crash when dbf file is
+	  missing / unloadable
 
-2010-06-01 19:59  pramsey
+2010-06-01 19:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix sense of the dbf/date test.
+	* [r5666] loader/dbfopen.c: Fix sense of the dbf/date test.
 
-2010-06-01 19:58  pramsey
+2010-06-01 19:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Accept "0" as a null value for Date types.
+	* [r5665] loader/dbfopen.c: Accept "0" as a null value for Date
+	  types.
 
-2010-05-27 14:03  pramsey
+2010-05-27 14:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remember to close the iconv handle
+	* [r5649] loader/shp2pgsql-core.c: Remember to close the iconv
+	  handle
 
-2010-05-27 14:02  pramsey
+2010-05-27 14:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make use of iconvctl conditional on it existing
+	* [r5648] configure.ac, loader/shp2pgsql-core.c: Make use of
+	  iconvctl conditional on it existing
 
-2010-05-27 13:40  pramsey
+2010-05-27 13:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove unused variable
+	* [r5647] loader/shp2pgsql-core.c: Remove unused variable
 
-2010-05-27 13:19  pramsey
+2010-05-27 13:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix utf8 to return *something* when it can, so that something can
-	  be reported in
+	* [r5646] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h: Fix
+	  utf8 to return *something* when it can, so that something can be
+	  reported in
 	  the error string.
 
-2010-05-26 17:26  pramsey
+2010-05-26 17:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change default back to UTF8 and improve error message on failure.
+	* [r5643] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h: Change
+	  default back to UTF8 and improve error message on failure.
 
-2010-05-26 16:26  pramsey
+2010-05-26 16:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Read configuration info from environment, if it's there.
+	* [r5642] loader/shp2pgsql-gui.c: Read configuration info from
+	  environment, if it's there.
 
-2010-05-26 16:02  pramsey
+2010-05-26 16:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Only update the progress bar once every N records, where N is
-	  determined by the number of records in the file.
+	* [r5639] loader/shp2pgsql-gui.c: Only update the progress bar once
+	  every N records, where N is determined by the number of records
+	  in the file.
 
-2010-05-25 18:44  pramsey
+2010-05-25 18:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Back off from Win32 encoding to more generic ISO8859-1
+	* [r5638] loader/shp2pgsql-core.h: Back off from Win32 encoding to
+	  more generic ISO8859-1
 
-2010-05-22 15:41  strk
+2010-05-22 15:41  Sandro Santilli <strk at keybit.net>
 
-	* Add note about the truncated multibyte enhancement (as the issue
-	  came out on IRC for another dataset)
+	* [r5634] NEWS: Add note about the truncated multibyte enhancement
+	  (as the issue came out on IRC for another dataset)
 
-2010-05-20 04:20  robe
+2010-05-20 04:20  Regina Obe <lr at pcorp.us>
 
-	* minor formatting on ST_Covers
+	* [r5632] doc/reference_measure.xml: minor formatting on ST_Covers
 
-2010-05-19 15:22  robe
+2010-05-19 15:22  Regina Obe <lr at pcorp.us>
 
-	* link to ST_MakePointM from ST_MakePoint
+	* [r5629] doc/reference_constructor.xml: link to ST_MakePointM from
+	  ST_MakePoint
 
-2010-05-19 15:17  robe
+2010-05-19 15:17  Regina Obe <lr at pcorp.us>
 
-	* geography example for st_covers
+	* [r5628] doc/reference_measure.xml: geography example for
+	  st_covers
 
-2010-05-18 17:43  pramsey
+2010-05-18 17:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove crash for case when all geographies are on the outer edges
-	  of the histobox, causing all to be classified as "deviants" by
-	  the stdev code line (#474)
+	* [r5625] postgis/geography_estimate.c: Remove crash for case when
+	  all geographies are on the outer edges of the histobox, causing
+	  all to be classified as "deviants" by the stdev code line (#474)
 
-2010-05-17 23:38  pramsey
+2010-05-17 23:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename vasbappend to stringbuffer_aprintf
+	* [r5623] liblwgeom/lwout_wkt.c, liblwgeom/stringbuffer.c,
+	  liblwgeom/stringbuffer.h, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h, loader/shp2pgsql-gui.c: Rename
+	  vasbappend to stringbuffer_aprintf
 
-2010-05-17 23:33  pramsey
+2010-05-17 23:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Allow GUI to create partial connection strings.
+	* [r5622] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c: Allow GUI to create partial connection
+	  strings.
 
-2010-05-13 08:39  strk
+2010-05-13 08:39  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory error in ST_Split (short allocation)
+	* [r5618] postgis/lwgeom_geos_split.c: Fix memory error in ST_Split
+	  (short allocation)
 
-2010-05-04 21:21  strk
+2010-05-04 21:21  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_MakeValid item
+	* [r5615] NEWS: Add ST_MakeValid item
 
-2010-05-04 21:19  strk
+2010-05-04 21:19  Sandro Santilli <strk at keybit.net>
 
-	* Oops, was using GEOS types instead of LWGEOM ones..
+	* [r5614] postgis/lwgeom_geos_clean.c: Oops, was using GEOS types
+	  instead of LWGEOM ones..
 
-2010-05-04 17:18  robe
+2010-05-04 17:18  Regina Obe <lr at pcorp.us>
 
-	* fix formatting
+	* [r5612] doc/reference_constructor.xml: fix formatting
 
-2010-05-04 17:17  robe
+2010-05-04 17:17  Regina Obe <lr at pcorp.us>
 
-	* Provide at least one example of ST_GeogFromText
+	* [r5611] doc/reference_constructor.xml: Provide at least one
+	  example of ST_GeogFromText
 
-2010-05-04 15:36  robe
+2010-05-04 15:36  Regina Obe <lr at pcorp.us>
 
-	* fix some faqs I got wrong, break out some long faqs. Add Tamas
-	  nightly build to list for latest and greatest windows GDAL
-	  binaries
+	* [r5610] doc/faq_wktraster.xml: fix some faqs I got wrong, break
+	  out some long faqs. Add Tamas nightly build to list for latest
+	  and greatest windows GDAL binaries
 
-2010-05-04 03:50  robe
+2010-05-04 03:50  Regina Obe <lr at pcorp.us>
 
-	* Break out raster band editor functions into separate section
+	* [r5609] doc/reference_wktraster.xml: Break out raster band editor
+	  functions into separate section
 
-2010-05-03 20:01  robe
+2010-05-03 20:01  Regina Obe <lr at pcorp.us>
 
-	* link ref
+	* [r5607] doc/reference_wktraster.xml: link ref
 
-2010-05-03 19:59  robe
+2010-05-03 19:59  Regina Obe <lr at pcorp.us>
 
-	* requested changes from #514
+	* [r5606] doc/reference_wktraster.xml: requested changes from #514
 
-2010-05-03 16:35  strk
+2010-05-03 16:35  Sandro Santilli <strk at keybit.net>
 
-	* ST_MakeValid: Early fail if an unsupported type is given
+	* [r5604] postgis/lwgeom_geos_clean.c: ST_MakeValid: Early fail if
+	  an unsupported type is given
 
-2010-05-03 16:24  strk
+2010-05-03 16:24  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_MakeValid
+	* [r5603] doc/reference_processing.xml: Document ST_MakeValid
 
-2010-05-03 16:02  strk
+2010-05-03 16:02  Sandro Santilli <strk at keybit.net>
 
-	* Add a 'staged-install' rule, helpful when you want to run a
-	  single test after changing the core lib ...
+	* [r5602] regress/Makefile.in: Add a 'staged-install' rule, helpful
+	  when you want to run a single test after changing the core lib
+	  ...
 
-2010-05-03 15:59  strk
+2010-05-03 15:59  Sandro Santilli <strk at keybit.net>
 
-	* ST_MakeValid: don't choke on MULTILINESTRING containing invalid
-	  LINESTRING elements
+	* [r5601] postgis/lwgeom_geos_clean.c, regress/clean.sql,
+	  regress/clean_expected: ST_MakeValid: don't choke on
+	  MULTILINESTRING containing invalid LINESTRING elements
 
-2010-05-03 12:11  strk
+2010-05-03 12:11  Sandro Santilli <strk at keybit.net>
 
-	* Merge SRID-retainment tests with some of the other tests
+	* [r5600] regress/clean.sql, regress/clean_expected: Merge
+	  SRID-retainment tests with some of the other tests
 
-2010-05-03 11:31  strk
+2010-05-03 11:31  Sandro Santilli <strk at keybit.net>
 
-	* Do not drop polygon boundaries collapsed to points
+	* [r5599] postgis/lwgeom_geos_clean.c, regress/clean.sql,
+	  regress/clean_expected: Do not drop polygon boundaries collapsed
+	  to points
 
-2010-05-03 03:26  robe
+2010-05-03 03:26  Regina Obe <lr at pcorp.us>
 
-	* Link to helper function built using ST_Value
+	* [r5598] doc/reference_wktraster.xml: Link to helper function
+	  built using ST_Value
 
-2010-05-03 03:11  robe
+2010-05-03 03:11  Regina Obe <lr at pcorp.us>
 
-	* Get rid of still under development for ST_DumpAsPolygons. Seems
-	  to be working fairly well now.
+	* [r5597] doc/reference_wktraster.xml: Get rid of still under
+	  development for ST_DumpAsPolygons. Seems to be working fairly
+	  well now.
 
-2010-04-30 19:17  robe
+2010-04-30 19:17  Regina Obe <lr at pcorp.us>
 
-	* move bandnodatavalue to raster band section
+	* [r5595] doc/reference_wktraster.xml: move bandnodatavalue to
+	  raster band section
 
-2010-04-30 18:34  robe
+2010-04-30 18:34  Regina Obe <lr at pcorp.us>
 
-	* slight correction
+	* [r5594] doc/reference_wktraster.xml: slight correction
 
-2010-04-30 18:34  robe
+2010-04-30 18:34  Regina Obe <lr at pcorp.us>
 
-	* document build date and lib version maintenance functions
+	* [r5593] doc/reference_wktraster.xml: document build date and lib
+	  version maintenance functions
 
-2010-04-30 18:25  robe
+2010-04-30 18:25  Regina Obe <lr at pcorp.us>
 
-	* document more functions -- start breaking out raster band
-	  functions from raster functions
+	* [r5592] doc/reference_wktraster.xml: document more functions --
+	  start breaking out raster band functions from raster functions
 
-2010-04-30 16:17  robe
+2010-04-30 16:17  Regina Obe <lr at pcorp.us>
 
-	* example for ST_DumpAsPolygons
+	* [r5591] doc/reference_wktraster.xml: example for
+	  ST_DumpAsPolygons
 
-2010-04-27 15:26  colivier
+2010-04-27 15:26  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add new option to ST_AsGML: ability to remove srsDimension
-	  attribute in GML 3. cf #508
+	* [r5575] doc/reference_output.xml, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwout_gml.c,
+	  postgis/geography_inout.c, postgis/lwgeom_export.c,
+	  regress/out_geography.sql, regress/out_geography_expected,
+	  regress/out_geometry.sql, regress/out_geometry_expected: Add new
+	  option to ST_AsGML: ability to remove srsDimension attribute in
+	  GML 3. cf #508
 
-2010-04-27 13:58  colivier
+2010-04-27 13:58  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix wrong OGC URN in GeoJson and GML output. Cf #507
+	* [r5572] doc/reference_output.xml, liblwgeom/cunit/cu_out_gml.c,
+	  postgis/lwgeom_export.c, regress/out_geography_expected,
+	  regress/out_geometry_expected: Fix wrong OGC URN in GeoJson and
+	  GML output. Cf #507
 
-2010-04-20 04:18  robe
+2010-04-20 04:18  Regina Obe <lr at pcorp.us>
 
-	* Add another example to st_value demonstrating sampling and fix
-	  other example
+	* [r5568] doc/reference_wktraster.xml: Add another example to
+	  st_value demonstrating sampling and fix other example
 
-2010-04-19 03:07  robe
+2010-04-19 03:07  Regina Obe <lr at pcorp.us>
 
-	* document ST_SetBandHasNoDataValue
+	* [r5567] doc/reference_wktraster.xml: document
+	  ST_SetBandHasNoDataValue
 
-2010-04-18 12:13  strk
+2010-04-18 12:13  Sandro Santilli <strk at keybit.net>
 
-	* Escape fields named xmin (xmax was already escaped). See issue
-	  #504.
+	* [r5566] loader/shp2pgsql-core.c: Escape fields named xmin (xmax
+	  was already escaped). See issue #504.
 
-2010-04-17 21:25  strk
+2010-04-17 21:25  Sandro Santilli <strk at keybit.net>
 
-	* Fix documentation for ST_Split (so postgis_comments.sql is
-	  correct)
+	* [r5565] doc/reference_processing.xml: Fix documentation for
+	  ST_Split (so postgis_comments.sql is correct)
 
-2010-04-17 11:06  strk
+2010-04-17 11:06  Sandro Santilli <strk at keybit.net>
 
-	* Plug a couple of memory leaks
+	* [r5564] postgis/lwgeom_geos.c: Plug a couple of memory leaks
 
-2010-04-17 08:26  strk
+2010-04-17 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Fix crash on invalid polygon rings conversion to geos
+	* [r5563] postgis/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: Fix crash on invalid polygon rings
+	  conversion to geos
 
-2010-04-17 01:53  robe
+2010-04-17 01:53  Regina Obe <lr at pcorp.us>
 
-	* fix typos and add more links
+	* [r5562] doc/reference_wktraster.xml: fix typos and add more links
 
-2010-04-17 00:57  robe
+2010-04-17 00:57  Regina Obe <lr at pcorp.us>
 
-	* ST_SkewX, ST_SkewY, ST_SetSkew
+	* [r5561] doc/reference_wktraster.xml: ST_SkewX, ST_SkewY,
+	  ST_SetSkew
 
-2010-04-17 00:13  robe
+2010-04-17 00:13  Regina Obe <lr at pcorp.us>
 
-	* typo in return description of ST_MakeEmptyRaster
+	* [r5560] doc/reference_wktraster.xml: typo in return description
+	  of ST_MakeEmptyRaster
 
-2010-04-14 17:42  robe
+2010-04-14 17:42  Regina Obe <lr at pcorp.us>
 
-	* fix typos
+	* [r5551] doc/reference_wktraster.xml: fix typos
 
-2010-04-14 14:56  robe
+2010-04-14 14:56  Regina Obe <lr at pcorp.us>
 
-	* more gdal_translate examples
+	* [r5550] doc/faq_wktraster.xml: more gdal_translate examples
 
-2010-04-14 14:48  robe
+2010-04-14 14:48  Regina Obe <lr at pcorp.us>
 
-	* another example of gdal_translate
+	* [r5549] doc/faq_wktraster.xml: another example of gdal_translate
 
-2010-04-14 14:09  robe
+2010-04-14 14:09  Regina Obe <lr at pcorp.us>
 
-	* Example of AddRasterColumn
+	* [r5547] doc/reference_wktraster.xml: Example of AddRasterColumn
 
-2010-04-14 13:16  robe
+2010-04-14 13:16  Regina Obe <lr at pcorp.us>
 
-	* Fix typo
+	* [r5546] doc/reference_wktraster.xml: Fix typo
 
-2010-04-14 12:52  robe
+2010-04-14 12:52  Regina Obe <lr at pcorp.us>
 
-	* Provide yet more common use case examples of ST_Value
+	* [r5545] doc/reference_wktraster.xml: Provide yet more common use
+	  case examples of ST_Value
 
-2010-04-14 11:48  robe
+2010-04-14 11:48  Regina Obe <lr at pcorp.us>
 
-	* try to get rid of really long lines
+	* [r5544] doc/faq_wktraster.xml: try to get rid of really long
+	  lines
 
-2010-04-14 11:40  robe
+2010-04-14 11:40  Regina Obe <lr at pcorp.us>
 
-	* Document how to define a raster layer in Mapserver
+	* [r5543] doc/faq_wktraster.xml: Document how to define a raster
+	  layer in Mapserver
 
-2010-04-13 06:08  robe
+2010-04-13 06:08  Regina Obe <lr at pcorp.us>
 
-	* Give faq an id for easier pretty bookmarking
+	* [r5540] doc/faq_wktraster.xml: Give faq an id for easier pretty
+	  bookmarking
 
-2010-04-13 04:38  robe
+2010-04-13 04:38  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5539] doc/faq_wktraster.xml:
 
-2010-04-13 04:37  robe
+2010-04-13 04:37  Regina Obe <lr at pcorp.us>
 
-	* forgot paragraph mark
+	* [r5538] doc/faq_wktraster.xml: forgot paragraph mark
 
-2010-04-13 04:35  robe
+2010-04-13 04:35  Regina Obe <lr at pcorp.us>
 
-	* more elaboration of the important Can I export my raster data FAQ
+	* [r5537] doc/faq_wktraster.xml: more elaboration of the important
+	  Can I export my raster data FAQ
 
-2010-04-12 21:11  robe
+2010-04-12 21:11  Regina Obe <lr at pcorp.us>
 
-	* typo fix
+	* [r5536] doc/faq_wktraster.xml: typo fix
 
-2010-04-12 20:58  robe
+2010-04-12 20:58  Regina Obe <lr at pcorp.us>
 
-	* Add quickie faq about exporting raster data from PostGIS
+	* [r5535] doc/faq_wktraster.xml: Add quickie faq about exporting
+	  raster data from PostGIS
 
-2010-04-12 08:48  colivier
+2010-04-12 08:48  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add optional namespace to ST_AsKML function. related in a way to
-	  #460
+	* [r5532] doc/reference_output.xml, liblwgeom/cunit/cu_out_kml.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwout_kml.c,
+	  postgis/geography.sql.in.c, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c, postgis/postgis.sql.in.c,
+	  regress/out_geography.sql, regress/out_geography_expected,
+	  regress/out_geometry.sql, regress/out_geometry_expected: Add
+	  optional namespace to ST_AsKML function. related in a way to #460
 
-2010-04-12 04:44  robe
+2010-04-12 04:44  Regina Obe <lr at pcorp.us>
 
-	* minor additions
+	* [r5531] doc/reference_wktraster.xml: minor additions
 
-2010-04-11 23:21  robe
+2010-04-11 23:21  Regina Obe <lr at pcorp.us>
 
-	* start documenting ST_DumpAsPolygons. Will provide examples once
-	  get it to stop crashing on me.
+	* [r5530] doc/reference_wktraster.xml: start documenting
+	  ST_DumpAsPolygons. Will provide examples once get it to stop
+	  crashing on me.
 
-2010-04-11 23:03  robe
+2010-04-11 23:03  Regina Obe <lr at pcorp.us>
 
-	* fix tag typo
+	* [r5529] doc/reference_wktraster.xml: fix tag typo
 
-2010-04-11 22:52  robe
+2010-04-11 22:52  Regina Obe <lr at pcorp.us>
 
-	* mistated something. Correct constraint description of
-	  addrastercolumn
+	* [r5528] doc/reference_wktraster.xml: mistated something. Correct
+	  constraint description of addrastercolumn
 
-2010-04-11 22:45  robe
+2010-04-11 22:45  Regina Obe <lr at pcorp.us>
 
-	* Add management functions section
+	* [r5527] doc/reference_wktraster.xml: Add management functions
+	  section
 
-2010-04-10 15:32  robe
+2010-04-10 15:32  Regina Obe <lr at pcorp.us>
 
-	* minor change
+	* [r5526] doc/xsl/wktraster_comments.sql.xsl: minor change
 
-2010-04-10 03:39  robe
+2010-04-10 03:39  Regina Obe <lr at pcorp.us>
 
-	* title change
+	* [r5525] doc/reference_wktraster.xml: title change
 
-2010-04-10 02:48  robe
+2010-04-10 02:48  Regina Obe <lr at pcorp.us>
 
-	* start itemizing operators
+	* [r5524] doc/reference_wktraster.xml: start itemizing operators
 
-2010-04-10 01:42  robe
+2010-04-10 01:42  Regina Obe <lr at pcorp.us>
 
-	* document st_setgeoreference
+	* [r5523] doc/reference_wktraster.xml: document st_setgeoreference
 
-2010-04-09 16:24  robe
+2010-04-09 16:24  Regina Obe <lr at pcorp.us>
 
-	* Add ST_SetUpperLeft
+	* [r5517] doc/reference_wktraster.xml: Add ST_SetUpperLeft
 
-2010-04-07 21:45  robe
+2010-04-07 21:45  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r5514] doc/faq_wktraster.xml, doc/reference_wktraster.xml:
 
-2010-04-07 19:22  robe
+2010-04-07 19:22  Regina Obe <lr at pcorp.us>
 
-	* fix reference typo
+	* [r5513] doc/faq_wktraster.xml: fix reference typo
 
-2010-04-07 17:25  robe
+2010-04-07 17:25  Regina Obe <lr at pcorp.us>
 
-	* forgot to add faq_wktraster item
+	* [r5512] doc/postgis.xml: forgot to add faq_wktraster item
 
-2010-04-07 16:54  robe
+2010-04-07 16:54  Regina Obe <lr at pcorp.us>
 
-	* First draft of wktraster faq
+	* [r5511] doc/Makefile.in, doc/faq_wktraster.xml, doc/postgis.xml:
+	  First draft of wktraster faq
 
-2010-04-07 14:35  robe
+2010-04-07 14:35  Regina Obe <lr at pcorp.us>
 
-	* conver to 1 column 2 row table
+	* [r5510] doc/reference_wktraster.xml: conver to 1 column 2 row
+	  table
 
-2010-04-07 14:15  robe
+2010-04-07 14:15  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r5509] doc/reference_wktraster.xml: typo
 
-2010-04-07 14:06  robe
+2010-04-07 14:06  Regina Obe <lr at pcorp.us>
 
-	* correct typo
+	* [r5508] doc/reference_wktraster.xml: correct typo
 
-2010-04-07 14:05  robe
+2010-04-07 14:05  Regina Obe <lr at pcorp.us>
 
-	* Put link to spec for a diagrammatic view.
+	* [r5507] doc/reference_wktraster.xml: Put link to spec for a
+	  diagrammatic view.
 
-2010-04-07 13:59  robe
+2010-04-07 13:59  Regina Obe <lr at pcorp.us>
 
-	* first draft of ST_ConvexHull -- still need to put in pictures
+	* [r5506] doc/reference_wktraster.xml: first draft of ST_ConvexHull
+	  -- still need to put in pictures
 
-2010-04-06 23:37  pramsey
+2010-04-06 23:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for command-q shutdown in Mac GTK build
+	* [r5505] configure.ac, loader/Makefile.in, loader/shp2pgsql-gui.c,
+	  macros/gtk-2.0.m4: Add support for command-q shutdown in Mac GTK
+	  build
 
-2010-04-06 18:33  strk
+2010-04-06 18:33  Sandro Santilli <strk at keybit.net>
 
-	* WARN and continue on incomplete multibyte sequence
+	* [r5503] loader/shp2pgsql-core.c: WARN and continue on incomplete
+	  multibyte sequence
 
-2010-04-05 21:38  robe
+2010-04-05 21:38  Regina Obe <lr at pcorp.us>
 
-	* slight correction
+	* [r5497] doc/reference_wktraster.xml: slight correction
 
-2010-04-05 21:32  robe
+2010-04-05 21:32  Regina Obe <lr at pcorp.us>
 
-	* itemize band pixel types and fix some formatting issues
+	* [r5496] doc/reference_wktraster.xml: itemize band pixel types and
+	  fix some formatting issues
 
-2010-04-05 15:17  robe
+2010-04-05 15:17  Regina Obe <lr at pcorp.us>
 
-	* more blurb in description
+	* [r5495] doc/xsl/wktraster_comments.sql.xsl: more blurb in
+	  description
 
-2010-04-05 15:16  robe
+2010-04-05 15:16  Regina Obe <lr at pcorp.us>
 
-	* xsl to build postgresql help for wktraster
+	* [r5494] doc/xsl/wktraster_comments.sql.xsl: xsl to build
+	  postgresql help for wktraster
 
-2010-04-05 14:12  robe
+2010-04-05 14:12  Regina Obe <lr at pcorp.us>
 
-	* Start adding editors, give an additional better example of
-	  ST_Value
+	* [r5493] doc/reference_wktraster.xml: Start adding editors, give
+	  an additional better example of ST_Value
 
-2010-04-05 07:28  robe
+2010-04-05 07:28  Regina Obe <lr at pcorp.us>
 
-	* upper left x and y
+	* [r5492] doc/reference_wktraster.xml: upper left x and y
 
-2010-04-05 05:59  robe
+2010-04-05 05:59  Regina Obe <lr at pcorp.us>
 
-	* example for st_value
+	* [r5491] doc/reference_wktraster.xml: example for st_value
 
-2010-04-05 05:55  robe
+2010-04-05 05:55  Regina Obe <lr at pcorp.us>
 
-	* typo in constructor section
+	* [r5490] doc/reference_wktraster.xml: typo in constructor section
 
-2010-04-05 05:52  robe
+2010-04-05 05:52  Regina Obe <lr at pcorp.us>
 
-	* st_box2d, st_envelope (note regular Postgis changed st_box2d to
-	  just box2d old st_box2d is deprecated)
+	* [r5489] doc/reference_wktraster.xml: st_box2d, st_envelope (note
+	  regular Postgis changed st_box2d to just box2d old st_box2d is
+	  deprecated)
 
-2010-04-05 05:25  robe
+2010-04-05 05:25  Regina Obe <lr at pcorp.us>
 
-	* more typos fixed, add constructor section
+	* [r5488] doc/reference_wktraster.xml: more typos fixed, add
+	  constructor section
 
-2010-04-05 04:59  robe
+2010-04-05 04:59  Regina Obe <lr at pcorp.us>
 
-	* Fix typo
+	* [r5487] doc/reference_wktraster.xml: Fix typo
 
-2010-04-05 04:30  robe
+2010-04-05 04:30  Regina Obe <lr at pcorp.us>
 
-	* more functions documented
+	* [r5486] doc/reference_wktraster.xml: more functions documented
 
-2010-04-05 02:28  robe
+2010-04-05 02:28  Regina Obe <lr at pcorp.us>
 
-	* more accessors
+	* [r5485] doc/reference_wktraster.xml: more accessors
 
-2010-04-05 01:32  robe
+2010-04-05 01:32  Regina Obe <lr at pcorp.us>
 
-	* more changes
+	* [r5484] doc/postgis.xml, doc/reference_wktraster.xml: more
+	  changes
 
-2010-04-05 01:05  robe
+2010-04-05 01:05  Regina Obe <lr at pcorp.us>
 
-	* First start at integrating wktraster documentation -- hopefully
-	  didn't break anything doing this.
+	* [r5483] doc/Makefile.in, doc/reference_wktraster.xml: First start
+	  at integrating wktraster documentation -- hopefully didn't break
+	  anything doing this.
 
-2010-03-31 15:34  strk
+2010-03-31 15:34  Sandro Santilli <strk at keybit.net>
 
-	* Do not hard-code default encoding (since it's a macro)
+	* [r5473] loader/shp2pgsql-cli.c: Do not hard-code default encoding
+	  (since it's a macro)
 
-2010-03-31 14:50  strk
+2010-03-31 14:50  Sandro Santilli <strk at keybit.net>
 
-	* Dump more informations about failing decoding
+	* [r5472] loader/shp2pgsql-core.c: Dump more informations about
+	  failing decoding
 
-2010-03-30 12:32  colivier
+2010-03-30 12:32  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add geography support to ST_AsGML with prefix namespace option.
-	  Update doc and unit tests. cf #460
+	* [r5471] doc/reference_output.xml, postgis/geography.sql.in.c,
+	  postgis/geography_inout.c, regress/out_geography.sql,
+	  regress/out_geography_expected, regress/out_geometry.sql,
+	  regress/out_geometry_expected: Add geography support to ST_AsGML
+	  with prefix namespace option. Update doc and unit tests. cf #460
 
-2010-03-30 12:29  colivier
+2010-03-30 12:29  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Remove old reference file
+	* [r5470] doc/reference_old.xml: Remove old reference file
 
-2010-03-29 20:03  pramsey
+2010-03-29 20:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix syntax error.
+	* [r5469] liblwgeom/stringbuffer.c: Fix syntax error.
 
-2010-03-29 20:02  pramsey
+2010-03-29 20:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reorganize avprintf a litle.
+	* [r5468] liblwgeom/stringbuffer.c: Reorganize avprintf a litle.
 
-2010-03-29 19:57  pramsey
+2010-03-29 19:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Propogate vsnprintf errors up verbatim
+	* [r5467] liblwgeom/stringbuffer.c: Propogate vsnprintf errors up
+	  verbatim
 
-2010-03-28 08:33  colivier
+2010-03-28 08:33  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix a lot of DocBook errors. Use DocBook + MathML DTD. Fix
-	  xsl/postgis_aggs_mm.xml.xsl to produce valid Docbook. Now make
-	  check output in docs is clean. cf #471
+	* [r5466] doc/installation.xml, doc/postgis.xml,
+	  doc/reference_accessor.xml, doc/reference_editor.xml,
+	  doc/reference_measure.xml, doc/reference_misc.xml,
+	  doc/reference_operator.xml, doc/reference_output.xml,
+	  doc/reference_processing.xml, doc/reference_transaction.xml,
+	  doc/reference_type.xml, doc/using_postgis_dataman.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Fix a lot of DocBook errors. Use
+	  DocBook + MathML DTD. Fix xsl/postgis_aggs_mm.xml.xsl to produce
+	  valid Docbook. Now make check output in docs is clean. cf #471
 
-2010-03-27 17:50  colivier
+2010-03-27 17:50  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* add make check rule in doc/Makefile. Use xmllint to check
-	  postgis.xml documentation against docbook dtd.
+	* [r5465] doc/Makefile.in: add make check rule in doc/Makefile. Use
+	  xmllint to check postgis.xml documentation against docbook dtd.
 
-2010-03-25 05:11  pramsey
+2010-03-25 05:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the default size more reasonable again.
+	* [r5463] liblwgeom/stringbuffer.h: Make the default size more
+	  reasonable again.
 
-2010-03-25 05:09  pramsey
+2010-03-25 05:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add comments on error return values.
+	* [r5462] liblwgeom/stringbuffer.c: Add comments on error return
+	  values.
 
-2010-03-25 05:06  pramsey
+2010-03-25 05:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Improved stringbuffer again. Always write directly into the
+	* [r5461] liblwgeom/stringbuffer.c, liblwgeom/stringbuffer.h:
+	  Improved stringbuffer again. Always write directly into the
 	  buffer, no more memcpy'ing. Change return values for printing
 	  calls to int, so that print errors can be detected and handled by
 	  the layers above, if desired.
 
-2010-03-24 17:54  pramsey
+2010-03-24 17:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Restore original license terms.
+	* [r5460] liblwgeom/stringbuffer.c, liblwgeom/stringbuffer.h:
+	  Restore original license terms.
 
-2010-03-23 19:35  strk
+2010-03-23 19:35  Sandro Santilli <strk at keybit.net>
 
-	* Expose custom prefix arg for ST_asGML to SQL, add tests and dox
+	* [r5459] doc/reference_output.xml, postgis/lwgeom_export.c,
+	  postgis/postgis.sql.in.c, regress/out_geometry.sql,
+	  regress/out_geometry_expected: Expose custom prefix arg for
+	  ST_asGML to SQL, add tests and dox
 
-2010-03-23 00:25  pramsey
+2010-03-23 00:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for array aggregation error (#469)
+	* [r5454] postgis/lwgeom_accum.c: Fix for array aggregation error
+	  (#469)
 
-2010-03-22 21:13  strk
+2010-03-22 21:13  Sandro Santilli <strk at keybit.net>
 
-	* Add support in liblwgeom for specifying a custom (or no)
-	  namespace/prefix for GML output
+	* [r5452] liblwgeom/cunit/cu_out_gml.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwout_gml.c, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c: Add support in liblwgeom for specifying
+	  a custom (or no) namespace/prefix for GML output
 
-2010-03-22 19:38  pramsey
+2010-03-22 19:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Convert all extern opt* variables to pgis_opt* variables to avoid
-	  clashes with system variables. (ug!)
+	* [r5450] loader/getopt.c, loader/getopt.h, loader/pgsql2shp.c,
+	  loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-gui.c: Convert all extern opt* variables to
+	  pgis_opt* variables to avoid clashes with system variables. (ug!)
 
-2010-03-17 08:27  strk
+2010-03-17 08:27  Sandro Santilli <strk at keybit.net>
 
-	* Add test for GEOMETRYCOLLECTION and ST_Split
+	* [r5448] regress/split.sql, regress/split_expected: Add test for
+	  GEOMETRYCOLLECTION and ST_Split
 
-2010-03-17 07:42  strk
+2010-03-17 07:42  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_Split
+	* [r5447] NEWS: Add ST_Split
 
-2010-03-17 07:40  strk
+2010-03-17 07:40  Sandro Santilli <strk at keybit.net>
 
-	* Don't choke on clean when there's nothing to clean
+	* [r5446] liblwgeom/cunit/Makefile.in: Don't choke on clean when
+	  there's nothing to clean
 
-2010-03-17 07:32  strk
+2010-03-17 07:32  Sandro Santilli <strk at keybit.net>
 
-	* Fix 'clean' rule to descend in cunit
+	* [r5445] GNUmakefile, liblwgeom/Makefile.in: Fix 'clean' rule to
+	  descend in cunit
 
-2010-03-16 22:18  strk
+2010-03-16 22:18  Sandro Santilli <strk at keybit.net>
 
-	* Add support for MULTI* in ST_Split
+	* [r5444] postgis/lwgeom_geos_split.c, regress/split.sql,
+	  regress/split_expected: Add support for MULTI* in ST_Split
 
-2010-03-16 13:14  strk
+2010-03-16 13:14  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_Split
+	* [r5440] doc/reference_processing.xml: Document ST_Split
 
-2010-03-16 03:13  pramsey
+2010-03-16 03:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Some function renaming: lwgeom_typename => lwtype_name. The
-	  internal float/up/down functions get slightly better names. Make
-	  collection types re-sizable: added maxgeoms to all collections,
-	  and created lwcollection_add_lwgeom() function. Remove all *_add
-	  functions. Revized homogenize function to use the new _add_lwgeom
-	  and variants.
+	* [r5439] ChangeLog, liblwgeom/g_serialized.c, liblwgeom/g_util.c,
+	  liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurvepoly.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgunparse.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwline.c,
+	  liblwgeom/lwmcurve.c, liblwgeom/lwmline.c, liblwgeom/lwmpoint.c,
+	  liblwgeom/lwmpoly.c, liblwgeom/lwmsurface.c,
+	  liblwgeom/lwout_geojson.c, liblwgeom/lwout_gml.c,
+	  liblwgeom/lwout_kml.c, liblwgeom/lwout_svg.c,
+	  liblwgeom/lwout_wkb.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwprint.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwutil.c, liblwgeom/measures.c, liblwgeom/ptarray.c,
+	  liblwgeom/wktparse.h, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h, postgis/geography_gist.c,
+	  postgis/geography_inout.c, postgis/lwgeom_chip.c,
+	  postgis/lwgeom_debug.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos_clean.c, postgis/lwgeom_geos_split.c,
+	  postgis/lwgeom_gist.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c: Some function renaming: lwgeom_typename =>
+	  lwtype_name. The internal float/up/down functions get slightly
+	  better names. Make collection types re-sizable: added maxgeoms to
+	  all collections, and created lwcollection_add_lwgeom() function.
+	  Remove all *_add functions. Revized homogenize function to use
+	  the new _add_lwgeom and variants.
 
-2010-03-15 18:03  strk
+2010-03-15 18:03  Sandro Santilli <strk at keybit.net>
 
-	* Rename ST_SplitGeometry to ST_Split (better now than never)
+	* [r5438] postgis/lwgeom_geos_split.c, postgis/postgis.sql.in.c,
+	  regress/split.sql: Rename ST_SplitGeometry to ST_Split (better
+	  now than never)
 
-2010-03-15 18:00  strk
+2010-03-15 18:00  Sandro Santilli <strk at keybit.net>
 
-	* Implement split-poly-by-line
+	* [r5437] postgis/lwgeom_geos_split.c, regress/split.sql,
+	  regress/split_expected: Implement split-poly-by-line
 
-2010-03-13 12:55  strk
+2010-03-13 12:55  Sandro Santilli <strk at keybit.net>
 
-	* Reword exception message, make algorithm more robust not relying
-	  on constructive functions to detect relation between inputs
+	* [r5436] postgis/lwgeom_geos_split.c, regress/split.sql,
+	  regress/split_expected: Reword exception message, make algorithm
+	  more robust not relying on constructive functions to detect
+	  relation between inputs
 
-2010-03-13 11:23  strk
+2010-03-13 11:23  Sandro Santilli <strk at keybit.net>
 
-	* Fix printf call
+	* [r5435] postgis/lwgeom_geos_split.c: Fix printf call
 
-2010-03-13 11:16  strk
+2010-03-13 11:16  Sandro Santilli <strk at keybit.net>
 
-	* Split-line-by-line: handle overlap cases by raising an exception
+	* [r5434] postgis/lwgeom_geos_split.c, regress/split.sql,
+	  regress/split_expected: Split-line-by-line: handle overlap cases
+	  by raising an exception
 
-2010-03-13 10:59  strk
+2010-03-13 10:59  Sandro Santilli <strk at keybit.net>
 
-	* Implement split-line-by-line
+	* [r5433] postgis/lwgeom_geos_split.c, regress/split.sql,
+	  regress/split_expected: Implement split-line-by-line
 
-2010-03-13 09:22  strk
+2010-03-13 09:22  Sandro Santilli <strk at keybit.net>
 
-	* Be polite
+	* [r5432] postgis/lwgeom_functions_analytic.c: Be polite
 
-2010-03-12 18:39  strk
+2010-03-12 18:39  Sandro Santilli <strk at keybit.net>
 
-	* Fix memory errors in presence of NULL (0-verticed) geometries and
-	  insert (default) policy.
+	* [r5430] loader/shp2pgsql-core.c: Fix memory errors in presence of
+	  NULL (0-verticed) geometries and insert (default) policy.
 
-2010-03-12 15:46  strk
+2010-03-12 15:46  Sandro Santilli <strk at keybit.net>
 
-	* ptarray_substring *does* already implement interpolation
+	* [r5429] liblwgeom/ptarray.c: ptarray_substring *does* already
+	  implement interpolation
 
-2010-03-12 15:25  strk
+2010-03-12 15:25  Sandro Santilli <strk at keybit.net>
 
-	* Drop extraneous task (if it referred to loader we do have a
-	  switch for index creation now)
+	* [r5428] postgis/TODO: Drop extraneous task (if it referred to
+	  loader we do have a switch for index creation now)
 
-2010-03-12 15:15  strk
+2010-03-12 15:15  Sandro Santilli <strk at keybit.net>
 
-	* Fix ST_DumpPoints not to relay on NULL return from
-	  ST_NumGeometries to tell multi and singles apart
+	* [r5427] postgis/postgis.sql.in.c: Fix ST_DumpPoints not to relay
+	  on NULL return from ST_NumGeometries to tell multi and singles
+	  apart
 
-2010-03-12 15:14  strk
+2010-03-12 15:14  Sandro Santilli <strk at keybit.net>
 
-	* Trigger reconstruction of regress' postgis.sql when original one
-	  changes
+	* [r5426] regress/Makefile.in: Trigger reconstruction of regress'
+	  postgis.sql when original one changes
 
-2010-03-12 14:03  strk
+2010-03-12 14:03  Sandro Santilli <strk at keybit.net>
 
-	* Add item about GeometryN/NumGeometries
+	* [r5424] NEWS: Add item about GeometryN/NumGeometries
 
-2010-03-12 13:50  strk
+2010-03-12 13:50  Sandro Santilli <strk at keybit.net>
 
-	* Add support for simple geometries in ST_GeometryN and
-	  ST_NumGeometries
+	* [r5423] postgis/lwgeom_ogc.c, regress/regress_ogc.sql,
+	  regress/regress_ogc_expected: Add support for simple geometries
+	  in ST_GeometryN and ST_NumGeometries
 
-2010-03-12 13:29  mcayland
+2010-03-12 13:29  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix the PGXS override code for detecting older versions of
-	  PostgreSQL - the existing (incomplete) check was still checking
-	  for a minimum version of 8.5, rather
+	* [r5422] configure.ac: Fix the PGXS override code for detecting
+	  older versions of PostgreSQL - the existing (incomplete) check
+	  was still checking for a minimum version of 8.5, rather
 	  than the new version number of 9.0.
 
-2010-03-12 00:21  robe
+2010-03-12 00:21  Regina Obe <lr at pcorp.us>
 
-	* put in note about improvement to ST_Line_SubString #410
+	* [r5419] doc/reference_lrs.xml: put in note about improvement to
+	  ST_Line_SubString #410
 
-2010-03-11 20:50  strk
+2010-03-11 20:50  Sandro Santilli <strk at keybit.net>
 
-	* More comments cleanup
+	* [r5416] postgis/lwgeom_geos_split.c: More comments cleanup
 
-2010-03-11 20:48  strk
+2010-03-11 20:48  Sandro Santilli <strk at keybit.net>
 
-	* remove wrong comment
+	* [r5415] postgis/lwgeom_geos_split.c: remove wrong comment
 
-2010-03-11 20:34  strk
+2010-03-11 20:34  Sandro Santilli <strk at keybit.net>
 
-	* Set interface specs in stone within the implementation file, add
-	  a testcase to show what's "left" and what's "right" in the
-	  split-line-by-point
+	* [r5414] postgis/lwgeom_geos_split.c, regress/split.sql,
+	  regress/split_expected: Set interface specs in stone within the
+	  implementation file, add a testcase to show what's "left" and
+	  what's "right" in the split-line-by-point
 
-2010-03-11 20:28  strk
+2010-03-11 20:28  Sandro Santilli <strk at keybit.net>
 
-	* *always* return a collection from ST_SplitGeometry
+	* [r5413] postgis/lwgeom_geos_split.c, regress/split_expected:
+	  *always* return a collection from ST_SplitGeometry
 
-2010-03-11 20:19  strk
+2010-03-11 20:19  Sandro Santilli <strk at keybit.net>
 
-	* Have ST_SplitGeometry return a collection of at most 2 elements
-	  (original part, cut-away part) so it's easier to handle by
-	  callers
+	* [r5412] postgis/lwgeom_geos_split.c, regress/split.sql,
+	  regress/split_expected: Have ST_SplitGeometry return a collection
+	  of at most 2 elements (original part, cut-away part) so it's
+	  easier to handle by callers
 
-2010-03-11 17:53  strk
+2010-03-11 17:53  Sandro Santilli <strk at keybit.net>
 
-	* Add SRID retainment testcase for removerepeatedpoint (paranoia)
+	* [r5411] regress/remove_repeated_points.sql,
+	  regress/remove_repeated_points_expected: Add SRID retainment
+	  testcase for removerepeatedpoint (paranoia)
 
-2010-03-11 17:51  strk
+2010-03-11 17:51  Sandro Santilli <strk at keybit.net>
 
-	* Add SRID retainment testcases
+	* [r5410] regress/clean.sql, regress/clean_expected: Add SRID
+	  retainment testcases
 
-2010-03-11 17:21  strk
+2010-03-11 17:21  Sandro Santilli <strk at keybit.net>
 
-	* Don't 'clean' the SRID...
+	* [r5409] postgis/lwgeom_geos_clean.c: Don't 'clean' the SRID...
 
-2010-03-11 14:34  pramsey
+2010-03-11 14:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Grammar fix.
+	* [r5401] HOWTO_RELEASE: Grammar fix.
 
-2010-03-10 15:38  pramsey
+2010-03-10 15:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix to allow compile on 9.0alpha
+	* [r5398] postgis/lwgeom_accum.c: Fix to allow compile on 9.0alpha
 
-2010-03-10 15:33  strk
+2010-03-10 15:33  Sandro Santilli <strk at keybit.net>
 
-	* Initial work on ST_SplitGeometry. Split line by point
-	  implemented.
+	* [r5396] postgis/Makefile.in, postgis/lwgeom_geos_split.c,
+	  postgis/postgis.sql.in.c, regress/Makefile.in, regress/split.sql,
+	  regress/split_expected: Initial work on ST_SplitGeometry. Split
+	  line by point implemented.
 
-2010-03-10 15:29  strk
+2010-03-10 15:29  Sandro Santilli <strk at keybit.net>
 
-	* Since we do a full scan of pointarray from ptarray_locate_point,
-	  take the chance to also return min distance
+	* [r5395] liblwgeom/liblwgeom.h, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_analytic.c: Since we do a full scan of
+	  pointarray from ptarray_locate_point, take the chance to also
+	  return min distance
 
-2010-03-10 14:32  strk
+2010-03-10 14:32  Sandro Santilli <strk at keybit.net>
 
-	* Document closest_point_on_segment in header file
+	* [r5394] liblwgeom/liblwgeom.h: Document closest_point_on_segment
+	  in header file
 
-2010-03-10 14:20  strk
+2010-03-10 14:20  Sandro Santilli <strk at keybit.net>
 
-	* Document ptarray_locate_point in header file
+	* [r5393] liblwgeom/liblwgeom.h: Document ptarray_locate_point in
+	  header file
 
-2010-03-10 10:07  strk
+2010-03-10 10:07  Sandro Santilli <strk at keybit.net>
 
-	* Export geos error logger
+	* [r5392] postgis/lwgeom_geos.c, postgis/lwgeom_geos.h,
+	  postgis/lwgeom_geos_clean.c: Export geos error logger
 
-2010-03-09 00:37  pramsey
+2010-03-09 00:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix syntax error in spatial_ref_sys hard upgrade directions
-	  (#373)
+	* [r5389] doc/installation.xml: Fix syntax error in spatial_ref_sys
+	  hard upgrade directions (#373)
 
-2010-03-09 00:31  pramsey
+2010-03-09 00:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Include 'geography_columns' defn when upgrading from <= 1.4
-	  (#414)
+	* [r5387] utils/postgis_proc_upgrade.pl: Include
+	  'geography_columns' defn when upgrading from <= 1.4 (#414)
 
-2010-03-09 00:22  pramsey
+2010-03-09 00:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Quiet notices in the .sql install files (#415)
+	* [r5386] postgis/postgis.sql.in.c: Quiet notices in the .sql
+	  install files (#415)
 
-2010-03-08 23:28  pramsey
+2010-03-08 23:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update the bbox when you alter the underlying geometry (#410)
+	* [r5384] liblwgeom/lwline.c, postgis/lwgeom_functions_basic.c:
+	  Update the bbox when you alter the underlying geometry (#410)
 	  ST_SetPoint, ST_Ad
 	  dPoint, ST_RemovePoint.
 
-2010-03-08 16:37  kneufeld
+2010-03-08 16:37  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated broken link to utmzone PostGIS plpgsql helper function.
+	* [r5380] doc/using_postgis_dataman.xml: updated broken link to
+	  utmzone PostGIS plpgsql helper function.
 	  bug #461
 
-2010-03-05 23:31  pramsey
+2010-03-05 23:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Note minimum required versions.
+	* [r5377] README.postgis: Note minimum required versions.
 
-2010-03-05 21:49  strk
+2010-03-05 21:49  Sandro Santilli <strk at keybit.net>
 
-	* Fix typo
+	* [r5376] postgis/lwgeom_ogc.c: Fix typo
 
-2010-03-05 02:35  pramsey
+2010-03-05 02:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* A few more WKB unit tests.
+	* [r5375] liblwgeom/cunit/cu_wkb.c: A few more WKB unit tests.
 
-2010-03-04 09:40  colivier
+2010-03-04 09:40  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add ST_PointN xref in ST_SetPoint entry, from Bruno Friedmann
-	  report
+	* [r5374] doc/reference_editor.xml: Add ST_PointN xref in
+	  ST_SetPoint entry, from Bruno Friedmann report
 
-2010-03-03 06:10  pramsey
+2010-03-03 06:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Set keywords.
+	* [r5372] liblwgeom/lwhomogenize.c, liblwgeom/lwout_geojson.c,
+	  liblwgeom/lwout_gml.c, liblwgeom/lwout_kml.c,
+	  liblwgeom/lwout_svg.c, liblwgeom/lwout_wkb.c,
+	  liblwgeom/lwout_wkt.c, liblwgeom/lwprint.c: Set keywords.
 
-2010-03-03 06:10  pramsey
+2010-03-03 06:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Set keywords and some copyright headers.
+	* [r5371] liblwgeom/cunit/cu_geodetic_data.h,
+	  liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_out_geojson.c, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_svg.c,
+	  liblwgeom/cunit/cu_print.c, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/cunit/cu_wkb.c,
+	  liblwgeom/cunit/cu_wkt.c: Set keywords and some copyright
+	  headers.
 
-2010-03-03 06:06  pramsey
+2010-03-03 06:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some tests of the old versus new WKB output.
+	* [r5370] liblwgeom/cunit/cu_wkb.c, liblwgeom/lwout_wkb.c: Add some
+	  tests of the old versus new WKB output.
 
-2010-03-03 06:06  pramsey
+2010-03-03 06:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move spheroid test to the correct place.
+	* [r5369] postgis/geography_measurement.c: Move spheroid test to
+	  the correct place.
 
-2010-03-03 05:40  pramsey
+2010-03-03 05:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove doxygen flags from static functions.
+	* [r5368] liblwgeom/lwout_wkb.c, liblwgeom/lwout_wkt.c: Remove
+	  doxygen flags from static functions.
 
-2010-03-03 05:38  pramsey
+2010-03-03 05:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some documentation to the public functions.
+	* [r5367] liblwgeom/lwout_wkb.c, liblwgeom/lwout_wkt.c: Add some
+	  documentation to the public functions.
 
-2010-03-03 01:15  pramsey
+2010-03-03 01:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in tests and fixes for WKB emitter.
+	* [r5366] liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_wkb.c, liblwgeom/libgeom.h,
+	  liblwgeom/lwout_wkb.c, liblwgeom/lwout_wkt.c: Add in tests and
+	  fixes for WKB emitter.
 
-2010-03-02 23:18  pramsey
+2010-03-02 23:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add first cut to lwgeom_to_wkb function.
+	* [r5365] liblwgeom/Makefile.in, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_wkt.c, liblwgeom/libgeom.h,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwout_wkb.c,
+	  liblwgeom/lwout_wkt.c: Add first cut to lwgeom_to_wkb function.
 
-2010-03-02 23:16  pramsey
+2010-03-02 23:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add a couple functions (length, copy) to stringbuffer, and add
+	* [r5364] liblwgeom/stringbuffer.c, liblwgeom/stringbuffer.h: Add a
+	  couple functions (length, copy) to stringbuffer, and add
 	  comments.
 
-2010-03-02 21:32  strk
+2010-03-02 21:32  Sandro Santilli <strk at keybit.net>
 
-	* ST_MakeValid : turn collapsed lines into points [RT-SIGTA]
+	* [r5363] postgis/lwgeom_geos_clean.c, regress/clean.sql,
+	  regress/clean_expected: ST_MakeValid : turn collapsed lines into
+	  points [RT-SIGTA]
 
-2010-02-28 23:11  strk
+2010-02-28 23:11  Sandro Santilli <strk at keybit.net>
 
-	* Node lineal geometries resulting invalid. Re-enable automated
-	  testcase for st_MakeValid [RT-SIGTA]
+	* [r5360] postgis/lwgeom_geos_clean.c, regress/Makefile.in,
+	  regress/clean.sql, regress/clean_expected: Node lineal geometries
+	  resulting invalid. Re-enable automated testcase for st_MakeValid
+	  [RT-SIGTA]
 
-2010-02-28 22:48  strk
+2010-02-28 22:48  Sandro Santilli <strk at keybit.net>
 
-	* Don't use a collection when there's no area
+	* [r5359] postgis/lwgeom_geos_clean.c: Don't use a collection when
+	  there's no area
 
-2010-02-28 22:24  strk
+2010-02-28 22:24  Sandro Santilli <strk at keybit.net>
 
-	* Fix build with debugging on, fix bug when run against invalid
-	  linestrings
+	* [r5358] postgis/lwgeom_geos_clean.c: Fix build with debugging on,
+	  fix bug when run against invalid linestrings
 
-2010-02-28 21:31  strk
+2010-02-28 21:31  Sandro Santilli <strk at keybit.net>
 
-	* Add paranoid check to make super-sure no input vertices are
-	  dropped by ST_MakeValid [RT-SIGTA]
+	* [r5357] postgis/lwgeom_geos_clean.c: Add paranoid check to make
+	  super-sure no input vertices are dropped by ST_MakeValid
+	  [RT-SIGTA]
 
-2010-02-28 20:36  strk
+2010-02-28 20:36  Sandro Santilli <strk at keybit.net>
 
-	* Put GEOS-only functionality of ST_MakeValid in its own function
+	* [r5356] postgis/lwgeom_geos_clean.c: Put GEOS-only functionality
+	  of ST_MakeValid in its own function
 
-2010-02-28 19:24  strk
+2010-02-28 19:24  Sandro Santilli <strk at keybit.net>
 
-	* Fix documentation to match current behaviour
+	* [r5355] postgis/lwgeom_geos_clean.c: Fix documentation to match
+	  current behaviour
 
-2010-02-28 19:09  strk
+2010-02-28 19:09  Sandro Santilli <strk at keybit.net>
 
-	* Simplify code
+	* [r5354] postgis/lwgeom_geos_clean.c: Simplify code
 
-2010-02-28 19:04  strk
+2010-02-28 19:04  Sandro Santilli <strk at keybit.net>
 
-	* Avoid a call to the GEOS CAPI when unnecessary (works around a
-	  bug in GEOS aborting in some cases of EMPTY polygons
+	* [r5353] postgis/lwgeom_geos.c: Avoid a call to the GEOS CAPI when
+	  unnecessary (works around a bug in GEOS aborting in some cases of
+	  EMPTY polygons
 
-2010-02-28 17:20  strk
+2010-02-28 17:20  Sandro Santilli <strk at keybit.net>
 
-	* Move ST_CleanGeometry core code into specialized 'lwgeom'
-	  function
+	* [r5352] postgis/lwgeom_geos_clean.c: Move ST_CleanGeometry core
+	  code into specialized 'lwgeom' function
 
-2010-02-28 17:11  strk
+2010-02-28 17:11  Sandro Santilli <strk at keybit.net>
 
-	* cleanups
+	* [r5351] postgis/lwgeom_geos_clean.c: cleanups
 
-2010-02-28 14:05  strk
+2010-02-28 14:05  Sandro Santilli <strk at keybit.net>
 
-	* Put areal part first in collection, and collapsed edges second
+	* [r5350] postgis/lwgeom_geos_clean.c: Put areal part first in
+	  collection, and collapsed edges second
 
-2010-02-26 15:05  colivier
+2010-02-26 15:05  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add new 'make garden' rule to launch full Garden test regression
+	* [r5349] GNUmakefile, doc/Makefile.in, regress/Makefile.in: Add
+	  new 'make garden' rule to launch full Garden test regression
 	  tests
 
-2010-02-26 02:50  pramsey
-
-	* Instructions on adding new tests to cunit, from Jeff Adams.
-
-2010-02-26 00:16  colivier
-
-	* Add few more lwgeom_typename, and update regress test if needed.
-	  Restore initial lwnotice behaviour in remove_repeated_points on
-	  unknown types (instead of lwerror).
-
-2010-02-25 17:54  colivier
-
-	* Fix add forgotten return in flip_coordinates (cf #452). Add
-	  lwgeom_typename in several functions to avoid cryptic error
-	  message (#452 again).
-
-2010-02-25 15:13  pramsey
-
-	* Fix potential corner case in sphere area calculation (#451)
-
-2010-02-25 14:30  robe
+2010-02-26 02:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Put new functions in alphabetical order.
+	* [r5348] liblwgeom/cunit/Makefile.in, liblwgeom/cunit/README,
+	  liblwgeom/cunit/cu_tester.h: Instructions on adding new tests to
+	  cunit, from Jeff Adams.
 
-2010-02-25 14:23  robe
+2010-02-26 00:16  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Put in What is new in 2.0 section to trap new 2.0 enhancements
+	* [r5347] liblwgeom/lwgeom.c, regress/tickets_expected: Add few
+	  more lwgeom_typename, and update regress test if needed. Restore
+	  initial lwnotice behaviour in remove_repeated_points on unknown
+	  types (instead of lwerror).
 
-2010-02-25 14:11  colivier
+2010-02-25 17:54  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add libxml2 requirement para. Fix #344. Thanks to Mateus for
-	  report.
-
-2010-02-25 13:41  pramsey
-
-	* Fix for st_area(geography) over the dateline (#450)
-
-2010-02-25 13:38  colivier
+	* [r5346] liblwgeom/lwgeom.c: Fix add forgotten return in
+	  flip_coordinates (cf #452). Add lwgeom_typename in several
+	  functions to avoid cryptic error message (#452 again).
 
-	* rename ptarray_reverse_axis to ptarray_flip_coordinates. Add
-	  lwgeom_flip_coordinates and ST_FlipCoordinates (#354). Add
-	  relevant cunit tests and basic documentation.
+2010-02-25 15:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-25 13:30  strk
+	* [r5345] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c:
+	  Fix potential corner case in sphere area calculation (#451)
 
-	* Drop unused code, avoid putting empty geometry in a collection..
-	  [RT-SIGTA]
+2010-02-25 14:30  Regina Obe <lr at pcorp.us>
 
-2010-02-25 13:15  strk
+	* [r5343] doc/reference_processing.xml: Put new functions in
+	  alphabetical order.
 
-	* Recursively try to build area with portions of the original
-	  boundary not on the boundary of newly constructed area and
-	  symdifference the new area (if any) with the final polygon being
-	  built. This behaviour gives more chance to get a pure areal (not
-	  mixed) output still not missing vertices.
+2010-02-25 14:23  Regina Obe <lr at pcorp.us>
 
-2010-02-24 14:40  pramsey
+	* [r5342] doc/xsl/postgis_aggs_mm.xml.xsl: Put in What is new in
+	  2.0 section to trap new 2.0 enhancements
 
-	* Change dimensionality indicators to have spaces between type
-	  indicators for WKT_ISO output form.
+2010-02-25 14:11  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-24 13:50  pramsey
+	* [r5341] doc/installation.xml: Add libxml2 requirement para. Fix
+	  #344. Thanks to Mateus for report.
 
-	* Add support from SRID= block on EWKT
+2010-02-25 13:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 22:18  pramsey
+	* [r5339] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwspheroid.c: Fix for st_area(geography) over the
+	  dateline (#450)
 
-	* Remove last compile warnings.
+2010-02-25 13:38  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-23 22:16  pramsey
+	* [r5338] doc/reference_processing.xml,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_in_gml.c,
+	  postgis/postgis.sql.in.c: rename ptarray_reverse_axis to
+	  ptarray_flip_coordinates. Add lwgeom_flip_coordinates and
+	  ST_FlipCoordinates (#354). Add relevant cunit tests and basic
+	  documentation.
 
-	* Making test methods static to avoid compiler warnings. For Jeff
-	  Adams.
+2010-02-25 13:30  Sandro Santilli <strk at keybit.net>
 
-2010-02-23 22:14  pramsey
+	* [r5337] postgis/lwgeom_geos_clean.c: Drop unused code, avoid
+	  putting empty geometry in a collection.. [RT-SIGTA]
 
-	* Making test methods static to avoid compiler warnings.
+2010-02-25 13:15  Sandro Santilli <strk at keybit.net>
 
-2010-02-23 22:11  pramsey
+	* [r5336] postgis/lwgeom_geos_clean.c: Recursively try to build
+	  area with portions of the original boundary not on the boundary
+	  of newly constructed area and symdifference the new area (if any)
+	  with the final polygon being built. This behaviour gives more
+	  chance to get a pure areal (not mixed) output still not missing
+	  vertices.
 
-	* Make test functions static.
+2010-02-24 14:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 22:07  pramsey
+	* [r5335] liblwgeom/cunit/cu_wkt.c, liblwgeom/lwout_wkt.c: Change
+	  dimensionality indicators to have spaces between type indicators
+	  for WKT_ISO output form.
 
-	* Made unit tests easier to add. New suites now just need to be
-	  added to two lines in cu_tester.c, no changes to header files
-	  necessary, new tests need one line in the appropriate .c file.
-	  From Jeff Adams.
+2010-02-24 13:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 21:41  pramsey
+	* [r5334] liblwgeom/cunit/cu_wkt.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwout_wkt.c: Add support from SRID=
+	  block on EWKT
 
-	* Remove unused va_copy.
+2010-02-23 22:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 21:41  pramsey
+	* [r5333] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h: Remove
+	  last compile warnings.
 
-	* Woops again, got work and start size values reversed.
+2010-02-23 22:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 21:30  pramsey
+	* [r5332] liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_out_kml.c,
+	  liblwgeom/cunit/cu_out_svg.c: Making test methods static to avoid
+	  compiler warnings. For Jeff Adams.
 
-	* Oops, commit stringbuffer.h with sensible values for internal
-	  sizes.
+2010-02-23 22:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 21:29  pramsey
+	* [r5331] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_geodetic.c, liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_print.c: Making test methods static to avoid
+	  compiler warnings.
 
-	* Improve performance and cut back stringbuffer_t to the minimum.
+2010-02-23 22:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 19:51  pramsey
+	* [r5330] liblwgeom/cunit/cu_wkt.c: Make test functions static.
 
-	* Allow cu_tester to accept parameters to run individual tests or
-	  suites, from Jeff Adams.
+2010-02-23 22:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 19:42  strk
+	* [r5329] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_homogenize.h, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_libgeom.h, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_measures.h, liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_geojson.h, liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_gml.h, liblwgeom/cunit/cu_out_kml.c,
+	  liblwgeom/cunit/cu_out_kml.h, liblwgeom/cunit/cu_out_svg.c,
+	  liblwgeom/cunit/cu_out_svg.h, liblwgeom/cunit/cu_print.c,
+	  liblwgeom/cunit/cu_print.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/cunit/cu_wkt.c,
+	  liblwgeom/cunit/cu_wkt.h: Made unit tests easier to add. New
+	  suites now just need to be added to two lines in cu_tester.c, no
+	  changes to header files necessary, new tests need one line in the
+	  appropriate .c file. From Jeff Adams.
 
-	* Don't let ST_RemoveRepeatedPoint collapse LINESTRINGs (not sure
-	  why, but someone doesn't want them in the db)
+2010-02-23 21:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 18:29  colivier
+	* [r5327] liblwgeom/stringbuffer.c: Remove unused va_copy.
 
-	* Move ptarray reverse axis function from postgis/lwgeom_in_gml to
-	  liblwgeom/ptarray
+2010-02-23 21:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 18:18  pramsey
+	* [r5326] liblwgeom/stringbuffer.h: Woops again, got work and start
+	  size values reversed.
 
-	* More WKT tests.
+2010-02-23 21:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 17:55  pramsey
+	* [r5325] liblwgeom/stringbuffer.h: Oops, commit stringbuffer.h
+	  with sensible values for internal sizes.
 
-	* More WKT unit tests
+2010-02-23 21:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 15:55  colivier
+	* [r5324] liblwgeom/cunit/cu_wkt.c, liblwgeom/stringbuffer.c,
+	  liblwgeom/stringbuffer.h: Improve performance and cut back
+	  stringbuffer_t to the minimum.
 
-	* In fact Nested GeometryCollection are never been supported in SVG
-	  and GeoJSON. Update the cunit tests cases
+2010-02-23 19:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-23 15:21  colivier
+	* [r5323] liblwgeom/cunit/cu_tester.c: Allow cu_tester to accept
+	  parameters to run individual tests or suites, from Jeff Adams.
 
-	* Check astyle version prior to do anything. 'blessed' version is
-	  1.23. Related to #433 and postgis-devel discussions
+2010-02-23 19:42  Sandro Santilli <strk at keybit.net>
 
-2010-02-23 14:52  colivier
+	* [r5322] liblwgeom/ptarray.c, regress/remove_repeated_points.sql,
+	  regress/remove_repeated_points_expected: Don't let
+	  ST_RemoveRepeatedPoint collapse LINESTRINGs (not sure why, but
+	  someone doesn't want them in the db)
 
-	* Fix 443. Move all regress export functions test files in a single
-	  one. add geography output regression tests (SVG/KML/GML/GeoJSON)
+2010-02-23 18:29  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-22 22:43  pramsey
+	* [r5319] liblwgeom/liblwgeom.h, liblwgeom/ptarray.c,
+	  postgis/lwgeom_in_gml.c: Move ptarray reverse axis function from
+	  postgis/lwgeom_in_gml to liblwgeom/ptarray
 
-	* Add more unit tests for WKT
+2010-02-23 18:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-22 22:04  colivier
+	* [r5318] liblwgeom/cunit/cu_wkt.c: More WKT tests.
 
-	* Fix #441. And introduce a change in behaviour: if
-	  geometryCollection and bbox, not sub geoms bbox are provided
-	  anymore
+2010-02-23 17:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-22 20:58  strk
+	* [r5317] liblwgeom/cunit/cu_wkt.c, liblwgeom/cunit/cu_wkt.h: More
+	  WKT unit tests
 
-	* Let ST_CleanGeometry down to C [RT-SIGTA]
+2010-02-23 15:55  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-22 20:45  strk
+	* [r5316] liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_svg.c: In fact Nested GeometryCollection
+	  are never been supported in SVG and GeoJSON. Update the cunit
+	  tests cases
 
-	* Derive an lwgeom_make_valid from ST_MakeValid [RT-SIGTA]
+2010-02-23 15:21  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-22 20:42  pramsey
+	* [r5315] astyle.sh: Check astyle version prior to do anything.
+	  'blessed' version is 1.23. Related to #433 and postgis-devel
+	  discussions
 
-	* ST_AsLatLonText(geometry, format) from Jeff Adams
+2010-02-23 14:52  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-22 20:29  strk
+	* [r5314] postgis/geography_inout.c, regress/Makefile.in,
+	  regress/geojson.sql, regress/geojson_expected, regress/gml.sql,
+	  regress/gml_expected, regress/kml.sql, regress/kml_expected,
+	  regress/out_geography.sql, regress/out_geography_expected,
+	  regress/out_geometry.sql, regress/out_geometry_expected,
+	  regress/svg.sql, regress/svg_expected: Fix 443. Move all regress
+	  export functions test files in a single one. add geography output
+	  regression tests (SVG/KML/GML/GeoJSON)
 
-	* Follow style guidelines for function naming
+2010-02-22 22:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-22 19:53  pramsey
+	* [r5312] liblwgeom/cunit/cu_wkt.c: Add more unit tests for WKT
 
-	* First cut of new WKT output functions, need more unit tests.
+2010-02-22 22:04  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-22 19:52  colivier
+	* [r5311] liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/lwout_geojson.c: Fix #441. And introduce a change in
+	  behaviour: if geometryCollection and bbox, not sub geoms bbox are
+	  provided anymore
 
-	* Fix missing math.h include in lwout_svg (#438). Put back
-	  lwgeom_export.h as we need header for getSRSbySRID.
+2010-02-22 20:58  Sandro Santilli <strk at keybit.net>
 
-2010-02-22 19:37  strk
+	* [r5307] postgis/lwgeom_geos_clean.c, postgis/postgis.sql.in.c:
+	  Let ST_CleanGeometry down to C [RT-SIGTA]
 
-	* Oops (#434)
+2010-02-22 20:45  Sandro Santilli <strk at keybit.net>
 
-2010-02-22 19:35  strk
+	* [r5306] postgis/lwgeom_geos_clean.c: Derive an lwgeom_make_valid
+	  from ST_MakeValid [RT-SIGTA]
 
-	* Fix warnings when building with GEOS < 3.3.0 (ticket #434
+2010-02-22 20:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-22 19:31  strk
+	* [r5305] doc/reference_output.xml, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_print.c,
+	  liblwgeom/cunit/cu_print.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwprint.c, postgis/lwgeom_inout.c,
+	  postgis/postgis.sql.in.c: ST_AsLatLonText(geometry, format) from
+	  Jeff Adams
 
-	* Fix missing prototypes warnings
+2010-02-22 20:29  Sandro Santilli <strk at keybit.net>
 
-2010-02-22 19:31  colivier
+	* [r5304] postgis/lwgeom_geos_clean.c, postgis/postgis.sql.in.c:
+	  Follow style guidelines for function naming
 
-	* Id tag
+2010-02-22 19:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-22 19:16  colivier
+	* [r5302] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/cunit/cu_wkt.c, liblwgeom/cunit/cu_wkt.h,
+	  liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwout_wkt.c, liblwgeom/stringbuffer.c,
+	  liblwgeom/stringbuffer.h: First cut of new WKT output functions,
+	  need more unit tests.
 
-	* merge all export functions in a same file. remove useless old
-	  ones. rename SVG one to LWGEOM_asSVG for consistancy.
+2010-02-22 19:52  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-22 18:49  colivier
+	* [r5301] liblwgeom/lwout_svg.c, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_export.h: Fix missing
+	  math.h include in lwout_svg (#438). Put back lwgeom_export.h as
+	  we need header for getSRSbySRID.
 
-	* Fix comment stuff in cunit
+2010-02-22 19:37  Sandro Santilli <strk at keybit.net>
 
-2010-02-22 18:43  colivier
+	* [r5299] liblwgeom/liblwgeom.h: Oops (#434)
 
-	* move ST_AsSVG from postgis to lwgeom dir. write cun it tests.
-	  related to #377
+2010-02-22 19:35  Sandro Santilli <strk at keybit.net>
 
-2010-02-22 15:37  colivier
+	* [r5298] postgis/lwgeom_geos_clean.c: Fix warnings when building
+	  with GEOS < 3.3.0 (ticket #434
 
-	* bbox only bother about external ring. add the related cunit test
+2010-02-22 19:31  Sandro Santilli <strk at keybit.net>
 
-2010-02-22 15:30  pramsey
+	* [r5297] install-sh, liblwgeom/liblwgeom.h: Fix missing prototypes
+	  warnings
 
-	* Move stringbuffer from ./loader to ./liblwgeom for use in string
-	  emitter functions.
+2010-02-22 19:31  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-22 14:03  colivier
+	* [r5296] liblwgeom/lwout_geojson.c, liblwgeom/lwout_gml.c,
+	  liblwgeom/lwout_kml.c, liblwgeom/lwout_svg.c: Id tag
 
-	* Move ST_AsGeoJson from postgis to liblwgeom dir. Use as most as
-	  cunit test as possible. Related to #377.
+2010-02-22 19:16  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-21 22:34  strk
+	* [r5294] postgis/Makefile.in, postgis/geography_inout.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_export.h,
+	  postgis/lwgeom_geojson.c, postgis/lwgeom_gml.c,
+	  postgis/lwgeom_kml.c, postgis/lwgeom_svg.c,
+	  postgis/postgis.sql.in.c: merge all export functions in a same
+	  file. remove useless old ones. rename SVG one to LWGEOM_asSVG for
+	  consistancy.
 
-	* Cleanup the GeometryClean function now that vertex checking is
-	  done better in ST_MakeValid
+2010-02-22 18:49  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-21 22:10  strk
+	* [r5291] liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_out_kml.c: Fix
+	  comment stuff in cunit
 
-	* Force multi-type in output if input was multi [RT-SIGTA]
+2010-02-22 18:43  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-21 21:53  colivier
+	* [r5289] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_out_svg.c, liblwgeom/cunit/cu_out_svg.h,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwout_svg.c,
+	  postgis/geography_inout.c, postgis/lwgeom_export.h,
+	  postgis/lwgeom_svg.c, regress/svg.sql, regress/svg_expected: move
+	  ST_AsSVG from postgis to lwgeom dir. write cun it tests. related
+	  to #377
 
-	* Add missing MultiPoint test. Fix wrong LWGEOM type on cu_gml
-	  tests.
+2010-02-22 15:37  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-21 21:34  colivier
+	* [r5285] liblwgeom/cunit/cu_out_geojson.c: bbox only bother about
+	  external ring. add the related cunit test
 
-	* add explicit void return type
+2010-02-22 15:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2010-02-21 21:11  strk
+	* [r5284] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h,
+	  liblwgeom/stringbuffer.c, liblwgeom/stringbuffer.h,
+	  loader/Makefile.in, loader/shp2pgsql-core.h,
+	  loader/stringbuffer.c, loader/stringbuffer.h: Move stringbuffer
+	  from ./loader to ./liblwgeom for use in string emitter functions.
 
-	* Disable 'clean' test (still deciding on what's the expected
-	  output); keep only cut-lines that have vertices not shared with
-	  boundary of final area; move 'clean' code in separate file
-	  [RT-SIGTA].
+2010-02-22 14:03  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-21 20:32  colivier
+	* [r5283] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_out_geojson.c,
+	  liblwgeom/cunit/cu_out_geojson.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/cunit/cu_tester.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwout_geojson.c, postgis/geography_inout.c,
+	  postgis/lwgeom_geojson.c, regress/geojson.sql,
+	  regress/geojson_expected: Move ST_AsGeoJson from postgis to
+	  liblwgeom dir. Use as most as cunit test as possible. Related to
+	  #377.
 
-	* Move ST_AsKML from postgis to liblwgeom dir. Use as most cunit
-	  test as possible. Few related corrections on GML similar
-	  implementation. cf #377
+2010-02-21 22:34  Sandro Santilli <strk at keybit.net>
 
-2010-02-21 18:23  colivier
+	* [r5282] postgis/postgis.sql.in.c: Cleanup the GeometryClean
+	  function now that vertex checking is done better in ST_MakeValid
 
-	* Add forgotten lwout_gml.c file (#377)
+2010-02-21 22:10  Sandro Santilli <strk at keybit.net>
 
-2010-02-21 18:18  colivier
+	* [r5281] postgis/lwgeom_geos_clean.c: Force multi-type in output
+	  if input was multi [RT-SIGTA]
 
-	* Move ST_AsGML from postgis dir to liblwgeom. Rewrite most units
-	  test with cunit. cf #377
+2010-02-21 21:53  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-21 12:36  colivier
+	* [r5280] liblwgeom/cunit/cu_out_gml.c,
+	  liblwgeom/cunit/cu_out_kml.c: Add missing MultiPoint test. Fix
+	  wrong LWGEOM type on cu_gml tests.
 
-	* make astyle session
+2010-02-21 21:34  Olivier Courtin <olivier.courtin at oslandia.com>
 
-2010-02-21 12:22  strk
+	* [r5279] liblwgeom/cunit/cu_homogenize.c: add explicit void return
+	  type
 
-	* ST_RemoveRepeatedPoints [RT-SIGTA]
+2010-02-21 21:11  Sandro Santilli <strk at keybit.net>
+
+	* [r5278] postgis/Makefile.in, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos.h, postgis/lwgeom_geos_clean.c,
+	  regress/Makefile.in: Disable 'clean' test (still deciding on
+	  what's the expected output); keep only cut-lines that have
+	  vertices not shared with boundary of final area; move 'clean'
+	  code in separate file [RT-SIGTA].
+
+2010-02-21 20:32  Olivier Courtin <olivier.courtin at oslandia.com>
+
+	* [r5277] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_out_gml.c, liblwgeom/cunit/cu_out_gml.h,
+	  liblwgeom/cunit/cu_out_kml.c, liblwgeom/cunit/cu_out_kml.h,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwout_gml.c,
+	  liblwgeom/lwout_kml.c, postgis/geography_inout.c,
+	  postgis/lwgeom_kml.c, regress/kml.sql, regress/kml_expected: Move
+	  ST_AsKML from postgis to liblwgeom dir. Use as most cunit test as
+	  possible. Few related corrections on GML similar implementation.
+	  cf #377
+
+2010-02-21 18:23  Olivier Courtin <olivier.courtin at oslandia.com>
+
+	* [r5276] liblwgeom/lwout_gml.c: Add forgotten lwout_gml.c file
+	  (#377)
+
+2010-02-21 18:18  Olivier Courtin <olivier.courtin at oslandia.com>
+
+	* [r5275] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/liblwgeom.h, postgis/geography_inout.c,
+	  postgis/lwgeom_export.h, postgis/lwgeom_gml.c, regress/gml.sql,
+	  regress/gml_expected, regress/tickets_expected: Move ST_AsGML
+	  from postgis dir to liblwgeom. Rewrite most units test with
+	  cunit. cf #377
+
+2010-02-21 12:36  Olivier Courtin <olivier.courtin at oslandia.com>
+
+	* [r5274] extras/wkb_reader/readwkb.c, liblwgeom/g_ptarray.c,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwspheroid.c, postgis/geography_inout.c,
+	  postgis/lwgeom_gist.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_ogc.c: make astyle session
+
+2010-02-21 12:22  Sandro Santilli <strk at keybit.net>
+
+	* [r5273] NEWS, doc/reference_processing.xml,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwcollection.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwline.c, liblwgeom/lwmpoint.c,
+	  liblwgeom/lwpoly.c, liblwgeom/ptarray.c,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in.c,
+	  regress/Makefile.in, regress/remove_repeated_points.sql,
+	  regress/remove_repeated_points_expected: ST_RemoveRepeatedPoints
+	  [RT-SIGTA]
 
-2010-02-21 12:21  strk
+2010-02-21 12:21  Sandro Santilli <strk at keybit.net>
 
-	* style...
+	* [r5272] postgis/lwgeom_functions_analytic.c: style...
 
-2010-02-21 12:21  strk
+2010-02-21 12:21  Sandro Santilli <strk at keybit.net>
 
-	* Make stylish
+	* [r5271] liblwgeom/cunit/cu_homogenize.c,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/lwhomogenize.c,
+	  postgis/lwgeom_gml.c, postgis/lwgeom_in_kml.c: Make stylish
 
-2010-02-20 19:47  colivier
+2010-02-20 19:47  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* use the rights homogenize cunit suite handlers
+	* [r5270] liblwgeom/cunit/cu_homogenize.c: use the rights
+	  homogenize cunit suite handlers
 
-2010-02-20 19:09  colivier
+2010-02-20 19:09  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix computed string length in Polygon with several rings for
-	  ST_AsGML with GML3. Related to #421
+	* [r5269] postgis/lwgeom_gml.c: Fix computed string length in
+	  Polygon with several rings for ST_AsGML with GML3. Related to
+	  #421
 
-2010-02-20 18:26  colivier
+2010-02-20 18:26  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Use lwgeom_homogenize in in_kml stuff. Related to #375
+	* [r5266] postgis/lwgeom_in_kml.c, regress/in_kml.sql,
+	  regress/in_kml_expected: Use lwgeom_homogenize in in_kml stuff.
+	  Related to #375
 
-2010-02-20 18:25  colivier
+2010-02-20 18:25  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add lwgeom_homogenize function. Related to #375. Add cunit
-	  related tests
+	* [r5265] liblwgeom/Makefile.in, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_homogenize.c, liblwgeom/cunit/cu_homogenize.h,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwcollection.c,
+	  liblwgeom/lwhomogenize.c, liblwgeom/lwhomogenize.h: Add
+	  lwgeom_homogenize function. Related to #375. Add cunit related
+	  tests
 
-2010-02-20 16:47  colivier
+2010-02-20 16:47  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add Cunit - lwerror use case handle - #420
+	* [r5264] liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h:
+	  Add Cunit - lwerror use case handle - #420
 
-2010-02-18 21:02  pramsey
+2010-02-18 21:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add multilinestring support to st_line_substring (#419)
+	* [r5261] postgis/lwgeom_functions_analytic.c: Add multilinestring
+	  support to st_line_substring (#419)
 
-2010-02-17 21:02  strk
+2010-02-17 21:02  Sandro Santilli <strk at keybit.net>
 
-	* Allow retaining badly collapsed rings (single-point) as points in
-	  ST_MakeValid. Add testcase for it [RT-SIGTA]
+	* [r5258] postgis/lwgeom_geos.c, regress/clean.sql,
+	  regress/clean_expected: Allow retaining badly collapsed rings
+	  (single-point) as points in ST_MakeValid. Add testcase for it
+	  [RT-SIGTA]
 
-2010-02-16 23:27  kneufeld
+2010-02-16 23:27  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* removed sfs_compliant note for ST_Transform
+	* [r5257] doc/reference_editor.xml: removed sfs_compliant note for
+	  ST_Transform
 
-2010-02-16 09:38  strk
+2010-02-16 09:38  Sandro Santilli <strk at keybit.net>
 
-	* Return NULL rather than throwing when a COLLECTION is given to
+	* [r5256] doc/reference_accessor.xml, postgis/lwgeom_geos.c: Return
+	  NULL rather than throwing when a COLLECTION is given to
 	  ST_Boundary [RT-SIGTA]
 
-2010-02-16 09:29  strk
+2010-02-16 09:29  Sandro Santilli <strk at keybit.net>
 
-	* Fix build with --enable-debug=3 [RT-SIGTA]
+	* [r5255] postgis/lwgeom_geos.c: Fix build with --enable-debug=3
+	  [RT-SIGTA]
 
-2010-02-16 09:08  strk
+2010-02-16 09:08  Sandro Santilli <strk at keybit.net>
 
-	* Add origin field for the clean dataset table, so we can add
-	  PG-specific ones w/out caring about visualizing them:)
+	* [r5254] regress/clean.sql: Add origin field for the clean dataset
+	  table, so we can add PG-specific ones w/out caring about
+	  visualizing them:)
 
-2010-02-16 09:06  strk
+2010-02-16 09:06  Sandro Santilli <strk at keybit.net>
 
-	* Add a test for input being invalid (a test of the test)
+	* [r5253] regress/clean.sql, regress/clean_expected: Add a test for
+	  input being invalid (a test of the test)
 
-2010-02-16 09:03  strk
+2010-02-16 09:03  Sandro Santilli <strk at keybit.net>
 
-	* Separate areal-specific cleanups in LWGEOM_GEOS_makeValidPolygon
-	  [RT-SIGTA]
+	* [r5252] postgis/lwgeom_geos.c: Separate areal-specific cleanups
+	  in LWGEOM_GEOS_makeValidPolygon [RT-SIGTA]
 
-2010-02-16 08:28  strk
+2010-02-16 08:28  Sandro Santilli <strk at keybit.net>
 
-	* Empty geometries are cleanest [RT-SIGTA]
+	* [r5251] postgis/postgis.sql.in.c: Empty geometries are cleanest
+	  [RT-SIGTA]
 
-2010-02-16 08:22  strk
+2010-02-16 08:22  Sandro Santilli <strk at keybit.net>
 
-	* Drop the optional arg to ST_MakeClean, document what it does,
-	  improve the ST_CleanGeometry stub. [RT-SIGTA]
+	* [r5250] postgis/postgis.sql.in.c: Drop the optional arg to
+	  ST_MakeClean, document what it does, improve the ST_CleanGeometry
+	  stub. [RT-SIGTA]
 
-2010-02-16 08:07  strk
+2010-02-16 08:07  Sandro Santilli <strk at keybit.net>
 
-	* Drop the optional parameter to ST_MakeValid, we always want to
-	  collect collapses (users can always filter later) [RT-SIGTA].
+	* [r5249] postgis/lwgeom_geos.c, regress/clean.sql: Drop the
+	  optional parameter to ST_MakeValid, we always want to collect
+	  collapses (users can always filter later) [RT-SIGTA].
 
-2010-02-16 08:03  strk
+2010-02-16 08:03  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_Dimension handling of empty geometries
+	* [r5248] doc/reference_accessor.xml: Document ST_Dimension
+	  handling of empty geometries
 
-2010-02-16 07:54  strk
+2010-02-16 07:54  Sandro Santilli <strk at keybit.net>
 
-	* Do not throw exception on empty ST_Dimension(empty) [RT-SIGTA]
+	* [r5247] postgis/lwgeom_ogc.c: Do not throw exception on empty
+	  ST_Dimension(empty) [RT-SIGTA]
 
-2010-02-15 22:41  strk
+2010-02-15 22:41  Sandro Santilli <strk at keybit.net>
 
-	* Further cleanups in ST_MakeClean [RT-SIGTA]
+	* [r5246] postgis/lwgeom_geos.c: Further cleanups in ST_MakeClean
+	  [RT-SIGTA]
 
-2010-02-15 22:31  strk
+2010-02-15 22:31  Sandro Santilli <strk at keybit.net>
 
-	* Fix unsupported message
+	* [r5245] postgis/lwgeom_geos.c: Fix unsupported message
 
-2010-02-15 21:17  strk
+2010-02-15 21:17  Sandro Santilli <strk at keybit.net>
 
-	* Plug more leaks
+	* [r5244] postgis/lwgeom_geos.c: Plug more leaks
 
-2010-02-15 20:40  strk
+2010-02-15 20:40  Sandro Santilli <strk at keybit.net>
 
-	* Plug memory leak on GEOS geom construction failure [RT-SIGTA]
+	* [r5243] postgis/lwgeom_geos.c: Plug memory leak on GEOS geom
+	  construction failure [RT-SIGTA]
 
-2010-02-15 20:21  strk
+2010-02-15 20:21  Sandro Santilli <strk at keybit.net>
 
-	* Rework the regress test to make it easier for curious people to
-	  keep the test dataset for inspection with some GUI (give it a
-	  try, it's a nice one).
+	* [r5242] regress/clean.sql, regress/clean_expected: Rework the
+	  regress test to make it easier for curious people to keep the
+	  test dataset for inspection with some GUI (give it a try, it's a
+	  nice one).
 
-2010-02-14 23:35  strk
+2010-02-14 23:35  Sandro Santilli <strk at keybit.net>
 
-	* Clarify the case of linestring invalidity dropping confugins
-	  reference to linearrings
+	* [r5241] doc/using_postgis_dataman.xml: Clarify the case of
+	  linestring invalidity dropping confugins reference to linearrings
 
-2010-02-14 22:59  strk
+2010-02-14 22:59  Sandro Santilli <strk at keybit.net>
 
-	* Implement ST_MakeValid(geom_in, collect_collapses) and stub
+	* [r5240] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c,
+	  regress/Makefile.in, regress/clean.sql, regress/clean_expected:
+	  Implement ST_MakeValid(geom_in, collect_collapses) and stub
 	  ST_CleanGeometry. Add regression test for ST_MakeValid and
 	  polygons [RT-SIGTA]
 
-2010-02-14 16:54  strk
+2010-02-14 16:54  Sandro Santilli <strk at keybit.net>
 
-	* Cleanups. Hope to reuse some structs for a C-version of
-	  ST_DumpPoints
+	* [r5239] postgis/lwgeom_dump.c: Cleanups. Hope to reuse some
+	  structs for a C-version of ST_DumpPoints
 
-2010-02-14 16:33  strk
+2010-02-14 16:33  Sandro Santilli <strk at keybit.net>
 
-	* Try to make st_DumpPoints reference somewhat clearer [RT-SIGTA]
+	* [r5238] doc/reference_processing.xml: Try to make st_DumpPoints
+	  reference somewhat clearer [RT-SIGTA]
 
-2010-02-14 13:46  strk
+2010-02-14 13:46  Sandro Santilli <strk at keybit.net>
 
-	* ptarray_remove_repeated_points [RT-SIGTA]
+	* [r5237] liblwgeom/liblwgeom.h, liblwgeom/ptarray.c:
+	  ptarray_remove_repeated_points [RT-SIGTA]
 
-2010-02-13 15:29  strk
+2010-02-13 15:29  Sandro Santilli <strk at keybit.net>
 
-	* Add another validity test [RT-SIGTA]
+	* [r5236] regress/tickets.sql, regress/tickets_expected: Add
+	  another validity test [RT-SIGTA]
 
-2010-02-13 14:35  strk
+2010-02-13 14:35  Sandro Santilli <strk at keybit.net>
 
-	* Handle NULL returns from POSTGIS2GEOS and LWGEOM2GEOS now that we
-	  allow that [RT-SIGTA].
+	* [r5235] GNUmakefile, postgis/lwgeom_geos.c: Handle NULL returns
+	  from POSTGIS2GEOS and LWGEOM2GEOS now that we allow that
+	  [RT-SIGTA].
 	  Add a 'commit' rule (give it a try)
 
-2010-02-12 23:04  strk
+2010-02-12 23:04  Sandro Santilli <strk at keybit.net>
 
-	* Revert GEOS error handlers to be lwnotice to avoid aborting full
-	  transactions (like it was in 1.5)
+	* [r5234] postgis/lwgeom_geos.c: Revert GEOS error handlers to be
+	  lwnotice to avoid aborting full transactions (like it was in 1.5)
 
-2010-02-11 23:12  strk
+2010-02-11 23:12  Sandro Santilli <strk at keybit.net>
 
-	* Fix typo
+	* [r5231] doc/reference_measure.xml: Fix typo
 
-2010-02-11 21:01  strk
+2010-02-11 21:01  Sandro Santilli <strk at keybit.net>
 
-	* Get style
+	* [r5230] liblwgeom/ptarray.c: Get style
 
-2010-02-11 18:56  strk
+2010-02-11 18:56  Sandro Santilli <strk at keybit.net>
 
-	* Separate GEOS part of 'buildarea' function from POSTGIS part of
-	  it (might eventually be moved down to GEOS) [RT-SIGTA]
+	* [r5229] postgis/lwgeom_geos.c, postgis/lwgeom_geos.h: Separate
+	  GEOS part of 'buildarea' function from POSTGIS part of it (might
+	  eventually be moved down to GEOS) [RT-SIGTA]
 
-2010-02-10 22:23  strk
+2010-02-10 22:23  Sandro Santilli <strk at keybit.net>
 
-	* xref
+	* [r5228] doc/reference_lrs.xml: xref
 
-2010-02-10 20:54  strk
+2010-02-10 20:54  Sandro Santilli <strk at keybit.net>
 
-	* Enhance documentation of ptarray_addPoint [RT-SIGTA]
+	* [r5227] liblwgeom/ptarray.c: Enhance documentation of
+	  ptarray_addPoint [RT-SIGTA]
 
-2010-02-09 22:36  strk
+2010-02-09 22:36  Sandro Santilli <strk at keybit.net>
 
-	* Don't refuse to output invalid geometries trough a cursor, being
-	  consistent with other output routines (dumper ends up using
-	  these) -- [RT-SIGTA]
+	* [r5226] postgis/lwgeom_inout.c: Don't refuse to output invalid
+	  geometries trough a cursor, being consistent with other output
+	  routines (dumper ends up using these) -- [RT-SIGTA]
 
-2010-02-09 17:59  strk
+2010-02-09 17:59  Sandro Santilli <strk at keybit.net>
 
-	* Oops, it seems I broke the build (sorry)
+	* [r5225] liblwgeom/liblwgeom.h: Oops, it seems I broke the build
+	  (sorry)
 
-2010-02-09 06:52  strk
+2010-02-09 06:52  Sandro Santilli <strk at keybit.net>
 
-	* Fix documention
+	* [r5224] liblwgeom/ptarray.c: Fix documention
 
-2010-02-08 22:36  strk
+2010-02-08 22:36  Sandro Santilli <strk at keybit.net>
 
-	* tweak the sponsor name
+	* [r5221] NEWS: tweak the sponsor name
 
-2010-02-08 21:39  strk
+2010-02-08 21:39  Sandro Santilli <strk at keybit.net>
 
-	* Initialie GEOS using lwerror for errors so that exceptions are
-	  really handled (or testcases in #411 crash on many GEOS
-	  functions)
+	* [r5220] postgis/lwgeom_geos.c: Initialie GEOS using lwerror for
+	  errors so that exceptions are really handled (or testcases in
+	  #411 crash on many GEOS functions)
 
-2010-02-08 20:05  strk
+2010-02-08 20:05  Sandro Santilli <strk at keybit.net>
 
-	* Add credits to new feature item
+	* [r5219] NEWS: Add credits to new feature item
 
-2010-02-08 18:54  strk
+2010-02-08 18:54  Sandro Santilli <strk at keybit.net>
 
-	* Don't refuse to unparse malformed geometries. Fixes #411. Didn't
-	  seem to expose the crash in #168, the testcase for it was
-	  expanded to extract invalidity reason.
+	* [r5214] postgis/lwgeom_inout.c, postgis/lwgeom_ogc.c,
+	  regress/tickets.sql, regress/tickets_expected: Don't refuse to
+	  unparse malformed geometries. Fixes #411. Didn't seem to expose
+	  the crash in #168, the testcase for it was expanded to extract
+	  invalidity reason.
 
-2010-02-06 13:57  strk
+2010-02-06 13:57  Sandro Santilli <strk at keybit.net>
 
-	* Simplify hooks on GEOS error reporter function from isvalid*
-	  functions
+	* [r5213] postgis/lwgeom_geos.c: Simplify hooks on GEOS error
+	  reporter function from isvalid* functions
 
-2010-02-06 13:48  strk
+2010-02-06 13:48  Sandro Santilli <strk at keybit.net>
 
-	* Add another test for #407
+	* [r5212] regress/tickets.sql, regress/tickets_expected: Add
+	  another test for #407
 
-2010-02-06 10:49  colivier
+2010-02-06 10:49  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix non NULL terminated string in ST_AsSVG with
-	  GEOMETRYCOLLECTION EMPTY, cf #409 reported by sdikiy. Add related
-	  unit test
+	* [r5211] postgis/lwgeom_svg.c, regress/svg.sql,
+	  regress/svg_expected: Fix non NULL terminated string in ST_AsSVG
+	  with GEOMETRYCOLLECTION EMPTY, cf #409 reported by sdikiy. Add
+	  related unit test
 
-2010-02-05 20:58  strk
+2010-02-05 20:58  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_isValidDetail item
+	* [r5208] NEWS: Add ST_isValidDetail item
 
-2010-02-05 20:55  strk
+2010-02-05 20:55  Sandro Santilli <strk at keybit.net>
 
-	* Register a buffer-logger as error-reporter from ST_isValidReason
-	  and ST_isValidDetail so to catch exceptions thrown by GEOS at
-	  postgis->geos conversion for the sake of reporting actual error.
-	  Fixes ticket #408. Completed with testcase.
+	* [r5207] postgis/lwgeom_geos.c, regress/tickets.sql,
+	  regress/tickets_expected: Register a buffer-logger as
+	  error-reporter from ST_isValidReason and ST_isValidDetail so to
+	  catch exceptions thrown by GEOS at postgis->geos conversion for
+	  the sake of reporting actual error. Fixes ticket #408. Completed
+	  with testcase.
 
-2010-02-05 17:58  strk
+2010-02-05 17:58  Sandro Santilli <strk at keybit.net>
 
-	* A space after return type looks better (and seems to be the
-	  policy) for funcdef tags
+	* [r5206] doc/reference_processing.xml: A space after return type
+	  looks better (and seems to be the policy) for funcdef tags
 
-2010-02-05 17:57  strk
+2010-02-05 17:57  Sandro Santilli <strk at keybit.net>
 
-	* Document ST_IsValidDetail
+	* [r5205] doc/reference_accessor.xml: Document ST_IsValidDetail
 
-2010-02-05 17:26  strk
+2010-02-05 17:26  Sandro Santilli <strk at keybit.net>
 
-	* Add ST_isValidDetail(geom) returns valid_detail (new type!)
+	* [r5204] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c: Add
+	  ST_isValidDetail(geom) returns valid_detail (new type!)
 
-2010-02-04 20:30  strk
+2010-02-04 20:30  Sandro Santilli <strk at keybit.net>
 
-	* Astyle run (a-ha, got you!)
+	* [r5203] postgis/geography_gist.c: Astyle run (a-ha, got you!)
 
-2010-02-04 17:43  pramsey
+2010-02-04 17:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Push version numbers on trunk forward to next release.
+	* [r5202] NEWS, README.postgis, Version.config: Push version
+	  numbers on trunk forward to next release.
 
-2010-02-04 17:21  pramsey
+2010-02-04 17:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update release dates and changelog for 1.5.0
+	* [r5197] ChangeLog, NEWS, README.postgis, doc/release_notes.xml:
+	  Update release dates and changelog for 1.5.0
 
-2010-02-03 22:42  pramsey
+2010-02-03 22:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Initialize config->createindex value to 0
+	* [r5195] loader/shp2pgsql-core.c: Initialize config->createindex
+	  value to 0
 
-2010-02-03 21:42  pramsey
+2010-02-03 21:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix handling of "missing table argument" case to use file name
-	  properly.
+	* [r5194] loader/shp2pgsql-cli.c: Fix handling of "missing table
+	  argument" case to use file name properly.
 
-2010-02-02 23:47  pramsey
+2010-02-02 23:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add --no-psqlrc to run_test (#405)
+	* [r5193] regress/run_test: Add --no-psqlrc to run_test (#405)
 
-2010-02-02 22:44  pramsey
+2010-02-02 22:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Tiny re-format
+	* [r5190] postgis/geography_gist.c: Tiny re-format
 
-2010-02-02 17:44  pramsey
+2010-02-02 17:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Extra information per Greg Troxel
+	* [r5189] README.postgis: Extra information per Greg Troxel
 
-2010-02-02 16:13  pramsey
+2010-02-02 16:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update usage string to show correct default encoding.
+	* [r5188] loader/shp2pgsql-cli.c: Update usage string to show
+	  correct default encoding.
 
-2010-02-02 04:14  pramsey
+2010-02-02 04:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* astyle recent change
+	* [r5187] loader/shp2pgsql-cli.c: astyle recent change
 
-2010-02-02 02:41  pramsey
+2010-02-02 02:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix segfault on cases where not enough arguments are provided.
-	  (#402)
+	* [r5186] loader/shp2pgsql-cli.c: Fix segfault on cases where not
+	  enough arguments are provided. (#402)
 
-2010-02-02 00:15  pramsey
+2010-02-02 00:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix mis-handling of the commandline operations modes (#401)
+	* [r5185] loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c: Fix
+	  mis-handling of the commandline operations modes (#401)
 
-2010-02-01 18:24  pramsey
+2010-02-01 18:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Silence 'no-eol' compiler warning.
+	* [r5184] postgis/geography_btree.c: Silence 'no-eol' compiler
+	  warning.
 
-2010-02-01 17:35  pramsey
+2010-02-01 17:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* 1.5 astyle pass
+	* [r5181] astyle.sh, doc/html/image_src/generator.c,
+	  extras/wkb_reader/printwkb.c, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_geodetic.c, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/examples/unparser.c,
+	  liblwgeom/g_box.c, liblwgeom/g_coord.c, liblwgeom/g_ptarray.c,
+	  liblwgeom/g_serialized.c, liblwgeom/g_util.c,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwline.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwspheroid.c,
+	  liblwgeom/lwtree.c, liblwgeom/lwutil.c, liblwgeom/measures.c,
+	  liblwgeom/ptarray.c, loader/dbfopen.c, loader/getopt.c,
+	  loader/pgsql2shp.c, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-gui.c,
+	  loader/shpopen.c, loader/stringbuffer.c,
+	  postgis/geography_btree.c, postgis/geography_estimate.c,
+	  postgis/geography_gist.c, postgis/geography_inout.c,
+	  postgis/geography_measurement.c, postgis/lwgeom_accum.c,
+	  postgis/lwgeom_box3d.c, postgis/lwgeom_chip.c,
+	  postgis/lwgeom_debug.c, postgis/lwgeom_estimate.c,
+	  postgis/lwgeom_export.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geos.c, postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_gist.c, postgis/lwgeom_gml.c,
+	  postgis/lwgeom_in_gml.c, postgis/lwgeom_in_kml.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_spheroid.c,
+	  postgis/lwgeom_sqlmm.c, postgis/lwgeom_svg.c,
+	  postgis/lwgeom_transform.c: 1.5 astyle pass
 
-2010-01-29 21:24  pramsey
+2010-01-29 21:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Keep floats out of registers for spheroid calculation. Fixes odd
-	  bug in OS/X gcc 4.1. Could probably be narrowed to only use flag
-	  on affected platform. (#395)
+	* [r5180] configure.ac, liblwgeom/Makefile.in: Keep floats out of
+	  registers for spheroid calculation. Fixes odd bug in OS/X gcc
+	  4.1. Could probably be narrowed to only use flag on affected
+	  platform. (#395)
 
-2010-01-29 18:22  robe
+2010-01-29 18:22  Regina Obe <lr at pcorp.us>
 
-	* fix example
+	* [r5179] doc/reference_exception.xml: fix example
 
-2010-01-29 18:00  pramsey
+2010-01-29 18:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Extra debugging information in spheroid area calculation.
+	* [r5178] liblwgeom/lwspheroid.c: Extra debugging information in
+	  spheroid area calculation.
 
-2010-01-28 17:42  pramsey
+2010-01-28 17:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make area unit tests actually test against known good values
+	* [r5177] liblwgeom/cunit/cu_geodetic.c: Make area unit tests
+	  actually test against known good values
 
-2010-01-28 15:51  colivier
+2010-01-28 15:51  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* revert r5175 commit about points results on #304. Related to #395
+	* [r5176] regress/tickets_expected: revert r5175 commit about
+	  points results on #304. Related to #395
 
-2010-01-28 15:28  colivier
+2010-01-28 15:28  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* In regress/tickets* Add missing srid 32702 and 32602. Add results
+	* [r5175] regress/tickets.sql, regress/tickets_expected: In
+	  regress/tickets* Add missing srid 32702 and 32602. Add results
 	  from #304 tests. Related to #395
 
-2010-01-28 15:09  strk
+2010-01-28 15:09  Sandro Santilli <strk at keybit.net>
 
-	* Fix 'maintainer-clean' rule
+	* [r5174] GNUmakefile: Fix 'maintainer-clean' rule
 
-2010-01-28 14:23  mcayland
+2010-01-28 14:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix astyle.sh script so that if astyle cannot be found then it
-	  immediately aborts with an error. Per report from Nicklas.
+	* [r5173] astyle.sh: Fix astyle.sh script so that if astyle cannot
+	  be found then it immediately aborts with an error. Per report
+	  from Nicklas.
 
-2010-01-28 12:19  mcayland
+2010-01-28 12:19  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add "make astyle" target to clean up source tree formatting as
-	  per the style guidelines.
+	* [r5172] GNUmakefile, astyle.sh: Add "make astyle" target to clean
+	  up source tree formatting as per the style guidelines.
 
-2010-01-26 21:10  pramsey
+2010-01-26 21:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make GEOS test insist on >= 3.1.1
+	* [r5171] configure.ac: Make GEOS test insist on >= 3.1.1
 
-2010-01-26 20:20  pramsey
+2010-01-26 20:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove warning from lwline
+	* [r5170] liblwgeom/lwline.c: Remove warning from lwline
 
-2010-01-26 19:08  pramsey
+2010-01-26 19:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add example for ST_AddMeasure on multilinestring
+	* [r5169] doc/reference_lrs.xml: Add example for ST_AddMeasure on
+	  multilinestring
 
-2010-01-26 18:56  pramsey
+2010-01-26 18:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make ST_AddMeasure handle multilinestrings as well as
-	  linestrings.
+	* [r5168] liblwgeom/cunit/cu_geodetic.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwline.c, liblwgeom/lwmline.c,
+	  postgis/lwgeom_functions_lrs.c: Make ST_AddMeasure handle
+	  multilinestrings as well as linestrings.
 
-2010-01-26 17:24  pramsey
+2010-01-26 17:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove unneeded See Also section.
+	* [r5167] doc/reference_lrs.xml: Remove unneeded See Also section.
 
-2010-01-26 17:09  pramsey
+2010-01-26 17:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove ST_StartMeasure ST_EndMeasure
+	* [r5166] NEWS, doc/reference_lrs.xml, doc/release_notes.xml,
+	  postgis/postgis.sql.in.c, postgis/uninstall_postgis.sql.in.c:
+	  Remove ST_StartMeasure ST_EndMeasure
 
-2010-01-26 01:13  pramsey
+2010-01-26 01:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore postgis_comments.sql
+	* [r5165] doc: Ignore postgis_comments.sql
 
-2010-01-25 21:08  pramsey
+2010-01-25 21:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Replace soft tabs with hard.
+	* [r5164] postgis/postgis.sql.in.c: Replace soft tabs with hard.
 
-2010-01-25 21:06  pramsey
+2010-01-25 21:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add uninstall recipe for AddMeasure (#390)
+	* [r5163] postgis/uninstall_postgis.sql.in.c: Add uninstall recipe
+	  for AddMeasure (#390)
 
-2010-01-25 21:03  pramsey
+2010-01-25 21:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_AddMeasure and associated documentations (#390)
+	* [r5162] doc/reference_lrs.xml, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwline.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/postgis.sql.in.c: Add ST_AddMeasure and associated
+	  documentations (#390)
 
-2010-01-24 09:10  nicklas
+2010-01-24 09:10  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* 
+	* [r5161] doc/reference_operator.xml:
 
-2010-01-23 23:31  nicklas
+2010-01-23 23:31  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Tiny Typo
+	* [r5160] NEWS: Tiny Typo
 
-2010-01-23 23:29  nicklas
+2010-01-23 23:29  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* remove ST_Maxdistance from TODO and note that C-version is still
-	  TODO for ST_DumpPoints
+	* [r5159] TODO: remove ST_Maxdistance from TODO and note that
+	  C-version is still TODO for ST_DumpPoints
 
-2010-01-22 06:05  pramsey
+2010-01-22 06:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add note on removing milestone from trac
+	* [r5156] HOWTO_RELEASE: Add note on removing milestone from trac
 
-2010-01-21 16:44  pramsey
+2010-01-21 16:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates for 1.5.0rc1
+	* [r5150] ChangeLog, README.postgis: Updates for 1.5.0rc1
 
-2010-01-21 13:08  nicklas
+2010-01-21 13:08  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* add missing comment
+	* [r5149] configure.ac: add missing comment
 
-2010-01-21 07:19  nicklas
+2010-01-21 07:19  Nicklas Avén <nicklas.aven at jordogskog.no>
 
-	* Fix for make check on MingW #389
+	* [r5148] configure.ac, regress/Makefile.in: Fix for make check on
+	  MingW #389
 
-2010-01-21 00:06  pramsey
+2010-01-21 00:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated XML release notes (#374)
+	* [r5147] NEWS, doc/release_notes.xml: Updated XML release notes
+	  (#374)
 
-2010-01-20 20:17  pramsey
+2010-01-20 20:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make proper #! calls to perl in perl scripts
+	* [r5145] utils/create_undef.pl, utils/postgis_proc_upgrade.pl,
+	  utils/postgis_restore.pl: Make proper #! calls to perl in perl
+	  scripts
 
-2010-01-20 18:55  robe
+2010-01-20 18:55  Regina Obe <lr at pcorp.us>
 
-	* Add Jorge Arevalo to list since he's contributing a lot of work
-	  to WKT Raster
+	* [r5143] doc/introduction.xml: Add Jorge Arevalo to list since
+	  he's contributing a lot of work to WKT Raster
 
-2010-01-19 12:40  robe
+2010-01-19 12:40  Regina Obe <lr at pcorp.us>
 
-	* Add George, Guillaume, and Vincent to contributors list
+	* [r5140] doc/introduction.xml: Add George, Guillaume, and Vincent
+	  to contributors list
 
-2010-01-19 12:37  robe
+2010-01-19 12:37  Regina Obe <lr at pcorp.us>
 
-	* Bump Nicklas up since he's added a lot to this release and now
-	  has commit access
+	* [r5139] doc/introduction.xml: Bump Nicklas up since he's added a
+	  lot to this release and now has commit access
 
-2010-01-18 19:40  pramsey
+2010-01-18 19:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add towgs84 line into proj4text for srid = 28992 (#387)
+	* [r5137] spatial_ref_sys.sql: Add towgs84 line into proj4text for
+	  srid = 28992 (#387)
 
-2010-01-16 04:26  robe
+2010-01-16 04:26  Regina Obe <lr at pcorp.us>
 
-	* Add Guillaume's PostgreSQL 8.5 contribution
+	* [r5136] NEWS: Add Guillaume's PostgreSQL 8.5 contribution
 
-2010-01-15 19:48  pramsey
+2010-01-15 19:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* 80col wrap NEWS
+	* [r5135] NEWS: 80col wrap NEWS
 
-2010-01-15 18:49  robe
+2010-01-15 18:49  Regina Obe <lr at pcorp.us>
 
-	* add note about GEOS 3.2
+	* [r5134] NEWS: add note about GEOS 3.2
 
-2010-01-15 18:41  pramsey
+2010-01-15 18:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Short circuit on distance tests: only do full spheroidal
-	  calculation where the distance is near or greater than the
-	  tolerance. This will make large st_dwithin() radius searches much
-	  faster since points that are well within the radius will not have
-	  their full geodetic calculation run, only those that are close to
-	  the radius boundary.
+	* [r5133] liblwgeom/lwgeodetic.c: Short circuit on distance tests:
+	  only do full spheroidal calculation where the distance is near or
+	  greater than the tolerance. This will make large st_dwithin()
+	  radius searches much faster since points that are well within the
+	  radius will not have their full geodetic calculation run, only
+	  those that are close to the radius boundary.
 
-2010-01-15 18:06  pramsey
+2010-01-15 18:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Prepare for 1.5.0b2
+	* [r5130] ChangeLog, NEWS: Prepare for 1.5.0b2
 
-2010-01-15 17:54  pramsey
+2010-01-15 17:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make GEOS 3.1 the mandatory minimum (#385)
+	* [r5129] configure.ac, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos_prepared.h, postgis/postgis.sql.in.c,
+	  postgis/uninstall_postgis.sql.in.c, regress/Makefile.in: Make
+	  GEOS 3.1 the mandatory minimum (#385)
 
-2010-01-15 17:47  pramsey
+2010-01-15 17:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore all PNG files.
+	* [r5128] doc/html/images: Ignore all PNG files.
 
-2010-01-15 08:13  colivier
+2010-01-15 08:13  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Round decimal part in #58 ticket unit test. As the previous
-	  result was not cross platform compliant
+	* [r5127] regress/tickets.sql, regress/tickets_expected: Round
+	  decimal part in #58 ticket unit test. As the previous result was
+	  not cross platform compliant
 
-2010-01-14 14:45  colivier
+2010-01-14 14:45  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix undefined vars in LWDEBUGF (#383)
+	* [r5124] liblwgeom/measures.c: Fix undefined vars in LWDEBUGF
+	  (#383)
 
-2010-01-14 08:34  colivier
+2010-01-14 08:34  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Update TODO. remove ST_GeomFromKML entry
+	* [r5123] TODO: Update TODO. remove ST_GeomFromKML entry
 
-2010-01-12 10:33  mcayland
+2010-01-12 10:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add missing MODULE_big section for #311 which was preventing the
-	  main PostGIS library from being installed on older versions of
-	  PostgreSQL.
+	* [r5121] postgis/Makefile.pgxs: Add missing MODULE_big section for
+	  #311 which was preventing the main PostGIS library from being
+	  installed on older versions of PostgreSQL.
 
-2010-01-12 08:23  robe
+2010-01-12 08:23  Regina Obe <lr at pcorp.us>
 
-	* slight typo correction
+	* [r5120] NEWS: slight typo correction
 
-2010-01-12 08:18  robe
+2010-01-12 08:18  Regina Obe <lr at pcorp.us>
 
-	* Add ST_DFullyWithin and add analysis as descriptor to functions
+	* [r5119] NEWS: Add ST_DFullyWithin and add analysis as descriptor
+	  to functions
 
-2010-01-12 04:28  pramsey
+2010-01-12 04:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change ST_Equals to use && instead of ~= (#378)
+	* [r5118] postgis/postgis.sql.in.c: Change ST_Equals to use &&
+	  instead of ~= (#378)
 
-2010-01-12 04:24  pramsey
+2010-01-12 04:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Shorten trac URL.
+	* [r5117] NEWS: Shorten trac URL.
 
-2010-01-12 01:01  pramsey
+2010-01-12 01:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add comment about postgis_comments.sql handling in 'clean' target
-	  of docs
+	* [r5116] make_dist.sh: Add comment about postgis_comments.sql
+	  handling in 'clean' target of docs
 
-2010-01-12 01:00  pramsey
+2010-01-12 01:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Don't remove postgis_comments.sql when doing a 'make clean' in
-	  doc, that way they can survive into the tarball build for final
-	  release.
+	* [r5115] doc/Makefile.in: Don't remove postgis_comments.sql when
+	  doing a 'make clean' in doc, that way they can survive into the
+	  tarball build for final release.
 
-2010-01-12 00:25  pramsey
+2010-01-12 00:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Performance tweak to distance calculations with tolerance. If
-	  distance is much less than tolerance, don't bother with geodetic
-	  calculation. If distance is close to or greater than tolerance,
-	  do the geodetic calculation. Should make st_dwithin faster,
-	  avoiding geodetic calculations for points that are clearly within
-	  tolerance.
+	* [r5114] postgis/geography_measurement.c: Performance tweak to
+	  distance calculations with tolerance. If distance is much less
+	  than tolerance, don't bother with geodetic calculation. If
+	  distance is close to or greater than tolerance, do the geodetic
+	  calculation. Should make st_dwithin faster, avoiding geodetic
+	  calculations for points that are clearly within tolerance.
 
-2010-01-11 17:31  kneufeld
+2010-01-11 17:31  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added missing liblwgeom target needed to build the documentation
-	  images
+	* [r5113] doc/html/image_src/Makefile.in: added missing liblwgeom
+	  target needed to build the documentation images
 
-2010-01-09 03:05  robe
+2010-01-09 03:05  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r5112] NEWS: fix typo
 
-2010-01-09 03:05  robe
+2010-01-09 03:05  Regina Obe <lr at pcorp.us>
 
-	* Fill in missing spots in News
+	* [r5111] NEWS: Fill in missing spots in News
 
-2010-01-09 00:10  pramsey
+2010-01-09 00:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Use macro define to determine default geometry column name in gui
+	* [r5110] loader/shp2pgsql-gui.c: Use macro define to determine
+	  default geometry column name in gui
 
-2010-01-08 23:39  pramsey
+2010-01-08 23:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update the NEW file
+	* [r5107] NEWS: Update the NEW file
 
-2010-01-08 23:16  pramsey
+2010-01-08 23:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added in one removed function (st_max_distance, replaced by
-	  st_maxdistance) to the drop script (#330)
+	* [r5106] postgis/postgis_drop.sql.in.c: Added in one removed
+	  function (st_max_distance, replaced by st_maxdistance) to the
+	  drop script (#330)
 
-2010-01-08 22:48  pramsey
+2010-01-08 22:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Override pgxs defaults for install, from mcayland (#311)
+	* [r5105] configure.ac, postgis/Makefile.in, postgis/Makefile.pgxs:
+	  Override pgxs defaults for install, from mcayland (#311)
 
-2010-01-07 16:04  mcayland
+2010-01-07 16:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Apply a modified version of Guillaume Lelarge's patch to allow
-	  compilation under current PostgreSQL 8.5 CVS.
+	* [r5104] postgis/geography_estimate.c, postgis/lwgeom_estimate.c,
+	  postgis/lwgeom_pg.h: Apply a modified version of Guillaume
+	  Lelarge's patch to allow compilation under current PostgreSQL 8.5
+	  CVS.
 
-2010-01-04 23:25  pramsey
+2010-01-04 23:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Initailize config value from simple_geometries
+	* [r5101] loader/shp2pgsql-core.c: Initailize config value from
+	  simple_geometries
 
-2010-01-04 19:52  pramsey
+2010-01-04 19:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bracked and reformat comparison to be more explicit
+	* [r5100] loader/shp2pgsql-core.c: Bracked and reformat comparison
+	  to be more explicit
 
-2010-01-04 17:55  pramsey
+2010-01-04 17:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed up de-serialization routines to avoid *geoms = malloc(0)
+	* [r5099] liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_libgeom.h, liblwgeom/lwcollection.c,
+	  liblwgeom/lwmcurve.c, liblwgeom/lwmline.c, liblwgeom/lwmpoint.c,
+	  liblwgeom/lwmpoly.c, liblwgeom/lwmsurface.c, liblwgeom/lwpoly.c:
+	  Fixed up de-serialization routines to avoid *geoms = malloc(0)
 	  cases which were causing free to fail later on down the line
 	  (#370)
 
-2010-01-04 05:47  pramsey
+2010-01-04 05:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove the ifdef/endif blocks for HAVE_ICONV (#367)
+	* [r5098] loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h: Remove the ifdef/endif blocks for
+	  HAVE_ICONV (#367)
 
-2010-01-04 05:42  pramsey
+2010-01-04 05:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make configure error out when iconv is unavailable. (#367)
+	* [r5097] configure.ac: Make configure error out when iconv is
+	  unavailable. (#367)
 
-2010-01-04 05:21  pramsey
+2010-01-04 05:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor change to about dialog build.
+	* [r5096] loader/shp2pgsql-gui.c: Minor change to about dialog
+	  build.
 
-2010-01-04 04:52  pramsey
+2010-01-04 04:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-fix connection password hiding (#356)
+	* [r5095] loader/shp2pgsql-gui.c: Re-fix connection password hiding
+	  (#356)
 
-2010-01-04 00:34  pramsey
+2010-01-04 00:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix the RCSID to actually substitute
+	* [r5094] loader/shp2pgsql-gui.c: Fix the RCSID to actually
+	  substitute
 
-2010-01-04 00:32  pramsey
+2010-01-04 00:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add an About dialogue that contains the revision string
-	  (hopefully)
+	* [r5093] loader/shp2pgsql-gui.c: Add an About dialogue that
+	  contains the revision string (hopefully)
 
-2010-01-04 00:31  pramsey
+2010-01-04 00:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make lwcollection_extract slightly more empty-intelligent
+	* [r5092] liblwgeom/lwcollection.c: Make lwcollection_extract
+	  slightly more empty-intelligent
 
-2010-01-03 23:05  pramsey
+2010-01-03 23:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Separate the options config persistence from the main persistence
-	  routine to allow the "geocolumn" magic to work more reliably
-	  (#369)
+	* [r5091] loader/shp2pgsql-gui.c: Separate the options config
+	  persistence from the main persistence routine to allow the
+	  "geocolumn" magic to work more reliably (#369)
 
-2010-01-02 08:17  pramsey
+2010-01-02 08:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add initialization to fix one Win32 segfault.
+	* [r5090] loader/shp2pgsql-core.c: Add initialization to fix one
+	  Win32 segfault.
 
-2010-01-02 07:01  pramsey
+2010-01-02 07:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add getopt.o into the modules used by shp2pgsql-gui.exe
+	* [r5089] loader/Makefile.in: Add getopt.o into the modules used by
+	  shp2pgsql-gui.exe
 
-2010-01-02 06:57  pramsey
+2010-01-02 06:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Flip back to pgis_getopt
+	* [r5088] loader/shp2pgsql-gui.c: Flip back to pgis_getopt
 
-2010-01-01 20:28  pramsey
+2010-01-01 20:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change log entry to reflect actual iconv target encoding (UTF-8,
-	  not UTF8)
+	* [r5087] loader/shp2pgsql-core.c: Change log entry to reflect
+	  actual iconv target encoding (UTF-8, not UTF8)
 
-2010-01-01 19:44  robe
+2010-01-01 19:44  Regina Obe <lr at pcorp.us>
 
-	* amend upgrade instructions to include description
-	  postgis_upgrade*.sql
+	* [r5086] doc/installation.xml: amend upgrade instructions to
+	  include description postgis_upgrade*.sql
 
-2010-01-01 19:30  robe
+2010-01-01 19:30  Regina Obe <lr at pcorp.us>
 
-	* put in ?, -n and -N missing from loader list
+	* [r5085] doc/using_postgis_dataman.xml: put in ?, -n and -N
+	  missing from loader list
 
-2009-12-31 12:41  robe
+2009-12-31 12:41  Regina Obe <lr at pcorp.us>
 
-	* minor change
+	* [r5084] doc/using_postgis_dataman.xml: minor change
 
-2009-12-31 11:56  robe
+2009-12-31 11:56  Regina Obe <lr at pcorp.us>
 
-	* amend shp2pgsql section to mention gui loader and also -G
-	  geography switch
+	* [r5083] doc/using_postgis_dataman.xml: amend shp2pgsql section to
+	  mention gui loader and also -G geography switch
 
-2009-12-30 15:31  robe
+2009-12-30 15:31  Regina Obe <lr at pcorp.us>
 
-	* change wording in what is new titles to reflect they show both
-	  new and changed/enhanced functions
+	* [r5082] doc/xsl/postgis_aggs_mm.xml.xsl: change wording in what
+	  is new titles to reflect they show both new and changed/enhanced
+	  functions
 
-2009-12-30 15:12  robe
+2009-12-30 15:12  Regina Obe <lr at pcorp.us>
 
-	* Fix ST_Extent/ST_Expand docs to reflect change in behavior of
+	* [r5081] doc/reference_accessor.xml, doc/reference_misc.xml: Fix
+	  ST_Extent/ST_Expand docs to reflect change in behavior of
 	  outputting double precision coords instead of float4. Still need
 	  to fix up examples.
 
-2009-12-30 14:52  mcayland
+2009-12-30 14:52  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix ST_Envelope() and ST_Expand() so that they use double
+	* [r5080] postgis/lwgeom_functions_basic.c,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve_expected, regress/tickets_expected:
+	  Fix ST_Envelope() and ST_Expand() so that they use double
 	  precision arithmetic rather than single precision arithmetic for
 	  their calculations. The internal BOX2DFLOAT4s should *never* be
 	  used for calculation purposes.
 
-2009-12-30 13:08  robe
+2009-12-30 13:08  Regina Obe <lr at pcorp.us>
 
-	* ST_Box back to Box link ref
+	* [r5079] doc/reference_accessor.xml: ST_Box back to Box link ref
 
-2009-12-30 12:53  robe
+2009-12-30 12:53  Regina Obe <lr at pcorp.us>
 
-	* oops revert change I guess ST_Box .. is the one that's
-	  deprecated. How confusing :) PRobably should remove from docs at
-	  some point.
+	* [r5077] doc/faq.xml, doc/reference_misc.xml: oops revert change I
+	  guess ST_Box .. is the one that's deprecated. How confusing :)
+	  PRobably should remove from docs at some point.
 
-2009-12-30 12:48  robe
+2009-12-30 12:48  Regina Obe <lr at pcorp.us>
 
-	* amend faqs and change Box2D,Box3D to ST_Box...
+	* [r5076] doc/faq.xml, doc/reference_misc.xml: amend faqs and
+	  change Box2D,Box3D to ST_Box...
 
-2009-12-30 09:15  robe
+2009-12-30 09:15  Regina Obe <lr at pcorp.us>
 
-	* correct example
+	* [r5074] doc/reference_constructor.xml: correct example
 
-2009-12-30 07:20  robe
+2009-12-30 07:20  Regina Obe <lr at pcorp.us>
 
-	* more clarity on the float4/float8 for ST_Envelope
+	* [r5073] doc/reference_accessor.xml: more clarity on the
+	  float4/float8 for ST_Envelope
 
-2009-12-30 06:53  robe
+2009-12-30 06:53  Regina Obe <lr at pcorp.us>
 
-	* #531 ST_Envelope has wrong return type changed from boolean to
-	  geometry
+	* [r5071] doc/reference_accessor.xml: #531 ST_Envelope has wrong
+	  return type changed from boolean to geometry
 
-2009-12-30 06:45  robe
+2009-12-30 06:45  Regina Obe <lr at pcorp.us>
 
-	* slight wording change
+	* [r5069] doc/reference_operator.xml: slight wording change
 
-2009-12-30 06:44  robe
+2009-12-30 06:44  Regina Obe <lr at pcorp.us>
 
-	* fill in mising geography = operator
+	* [r5068] doc/reference_operator.xml: fill in mising geography =
+	  operator
 
-2009-12-30 06:38  robe
+2009-12-30 06:38  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r5067] doc/reference_constructor.xml: fix typo
 
-2009-12-30 06:12  robe
+2009-12-30 06:12  Regina Obe <lr at pcorp.us>
 
-	* #365 document ST_GeogFromWKB and ST_GeogFromText
+	* [r5066] doc/reference_constructor.xml: #365 document
+	  ST_GeogFromWKB and ST_GeogFromText
 
-2009-12-30 01:25  pramsey
+2009-12-30 01:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename ST_GeographyFromBinary to ST_GeogFromWKB. Add
-	  ST_GeogFromText to ape the ISO geometry spec more closely. (#360)
+	* [r5065] postgis/geography.sql.in.c: Rename ST_GeographyFromBinary
+	  to ST_GeogFromWKB. Add ST_GeogFromText to ape the ISO geometry
+	  spec more closely. (#360)
 
-2009-12-30 01:20  pramsey
+2009-12-30 01:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove the NULL policy line from the GUI options (#363)
+	* [r5064] loader/shp2pgsql-gui.c: Remove the NULL policy line from
+	  the GUI options (#363)
 
-2009-12-30 01:12  pramsey
+2009-12-30 01:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make a few things more explicit in the handling of encoding.
+	* [r5063] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c: Make a few things more explicit in the
+	  handling of encoding.
 
-2009-12-29 20:23  pramsey
+2009-12-29 20:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove a couple compiler warnings following last change.
+	* [r5062] loader/shp2pgsql-gui.c: Remove a couple compiler warnings
+	  following last change.
 
-2009-12-29 20:16  pramsey
+2009-12-29 20:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change options dialogue into actual GTK dialog and move to
-	  creating/destroying it on each appearance. (#363)
+	* [r5061] loader/shp2pgsql-gui.c: Change options dialogue into
+	  actual GTK dialog and move to creating/destroying it on each
+	  appearance. (#363)
 
-2009-12-29 19:23  pramsey
+2009-12-29 19:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Try and get around the expanding window problem
+	* [r5060] loader/shp2pgsql-gui.c: Try and get around the expanding
+	  window problem
 
-2009-12-29 08:52  mcayland
+2009-12-29 08:52  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add a filter name to the shapefile file selector; this is just a
-	  cosmetic fix.
+	* [r5059] loader/shp2pgsql-gui.c: Add a filter name to the
+	  shapefile file selector; this is just a cosmetic fix.
 
-2009-12-29 08:35  mcayland
+2009-12-29 08:35  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Restrict SQL to only 255 characters when displaying erroneus SQL
-	  in the log window. This prevents GTK from crashing when really
-	  long lines are added to the log window.
+	* [r5058] loader/shp2pgsql-gui.c: Restrict SQL to only 255
+	  characters when displaying erroneus SQL in the log window. This
+	  prevents GTK from crashing when really long lines are added to
+	  the log window.
 
-2009-12-28 18:48  pramsey
+2009-12-28 18:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Include GUI as conditional install target
+	* [r5057] loader/Makefile.in: Include GUI as conditional install
+	  target
 
-2009-12-28 13:32  mcayland
+2009-12-28 13:32  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add some more missing defaults to the shapefile loader
-	  configuration.
+	* [r5056] loader/shp2pgsql-core.c: Add some more missing defaults
+	  to the shapefile loader configuration.
 
-2009-12-27 17:16  mcayland
+2009-12-27 17:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix shp2pgsql-gui not picking up the correct default settings,
-	  which was causing some shapefiles to abort in the GUI but when
-	  using the CLI.
+	* [r5055] loader/shp2pgsql-core.c, loader/shp2pgsql-gui.c: Fix
+	  shp2pgsql-gui not picking up the correct default settings, which
+	  was causing some shapefiles to abort in the GUI but when using
+	  the CLI.
 
-2009-12-25 04:41  pramsey
+2009-12-25 04:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix up another password leaking into the log (#356)
+	* [r5054] loader/shp2pgsql-gui.c: Fix up another password leaking
+	  into the log (#356)
 
-2009-12-24 00:57  pramsey
+2009-12-24 00:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Handle case where there is no password to sanitize
+	* [r5053] loader/shp2pgsql-gui.c: Handle case where there is no
+	  password to sanitize
 
-2009-12-23 19:49  pramsey
+2009-12-23 19:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Sanitize the connection string displayed in the GUI log (#356)
+	* [r5052] loader/shp2pgsql-gui.c: Sanitize the connection string
+	  displayed in the GUI log (#356)
 
-2009-12-23 19:34  pramsey
+2009-12-23 19:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for dumping geography tables. (#251)
+	* [r5051] loader/pgsql2shp.c: Add support for dumping geography
+	  tables. (#251)
 
-2009-12-23 15:48  colivier
+2009-12-23 15:48  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add http://www.epsg.org/6.11.2/4326 srsName pattern support
-	  (related to CITE WFS 1.1 GetFeature-tc17.2. Add related unit
-	  tests
+	* [r5050] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Add http://www.epsg.org/6.11.2/4326
+	  srsName pattern support (related to CITE WFS 1.1
+	  GetFeature-tc17.2. Add related unit tests
 
-2009-12-23 05:01  pramsey
+2009-12-23 05:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove hack PGAdmin GUI target (#355)
+	* [r5049] loader/Makefile.in: Remove hack PGAdmin GUI target (#355)
 
-2009-12-22 20:50  pramsey
+2009-12-22 20:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add message to GUI when creating spatial index.
+	* [r5047] loader/shp2pgsql-gui.c: Add message to GUI when creating
+	  spatial index.
 
-2009-12-22 19:38  pramsey
+2009-12-22 19:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add shp2pgsql-pgadmin build target for exe without special win32
-	  options.
+	* [r5046] loader/Makefile.in: Add shp2pgsql-pgadmin build target
+	  for exe without special win32 options.
 
-2009-12-22 12:38  mcayland
+2009-12-22 12:38  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix bug in geography support when creating indexes.
+	* [r5045] loader/shp2pgsql-core.c: Fix bug in geography support
+	  when creating indexes.
 
-2009-12-22 12:28  mcayland
+2009-12-22 12:28  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* More improvements to the shapefile loader:
+	* [r5044] loader/shp2pgsql-core.c, loader/shp2pgsql-gui.c: More
+	  improvements to the shapefile loader:
 	  - Fix COPY support for shapefiles containing more than 1 record
 	  - Fix cancellation on mid-import
 	  - Remove progress logging on import, and replace with flashly
 	  progress bar
 
-2009-12-22 00:35  pramsey
+2009-12-22 00:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Handle index building when loading geography
+	* [r5043] loader/shp2pgsql-core.c: Handle index building when
+	  loading geography
 
-2009-12-22 00:27  pramsey
+2009-12-22 00:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for GEOGRAPHY type to loader GUI. (#251)
+	* [r5042] loader/shp2pgsql-gui.c: Add support for GEOGRAPHY type to
+	  loader GUI. (#251)
 
-2009-12-21 23:22  pramsey
+2009-12-21 23:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for geography type to command-line loader (#251)
+	* [r5040] loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h, loader/shp2pgsql-gui.c: Add support for
+	  geography type to command-line loader (#251)
 
-2009-12-20 17:42  pramsey
+2009-12-20 17:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* CFLAGS=-pedantic pass over the codebase and warnings reduced
+	* [r5039] liblwgeom/g_ptarray.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeom.c, liblwgeom/lwmline.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c, liblwgeom/lwtree.c,
+	  liblwgeom/measures.c, loader/pgsql2shp.c,
+	  loader/shp2pgsql-core.c: CFLAGS=-pedantic pass over the codebase
+	  and warnings reduced
 
-2009-12-20 17:23  pramsey
+2009-12-20 17:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Disable unused static function.
+	* [r5038] postgis/lwgeom_in_kml.c: Disable unused static function.
 
-2009-12-20 04:42  pramsey
+2009-12-20 04:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor changes to header inclusions.
+	* [r5037] loader/getopt.c, loader/pgsql2shp.c,
+	  loader/shp2pgsql-core.h: Minor changes to header inclusions.
 
-2009-12-20 04:31  pramsey
+2009-12-20 04:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix bracket issue in commandline opt handline
+	* [r5036] loader/shp2pgsql-cli.c: Fix bracket issue in commandline
+	  opt handline
 
-2009-12-19 03:56  pramsey
+2009-12-19 03:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Radically simpler getopt implementation from AT&T UNIX.
+	* [r5035] loader/getopt.c, loader/getopt.h, loader/shp2pgsql-cli.c:
+	  Radically simpler getopt implementation from AT&T UNIX.
 
-2009-12-18 20:51  pramsey
+2009-12-18 20:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some logging during the load so we can see what's going on.
+	* [r5034] loader/shp2pgsql-gui.c: Add some logging during the load
+	  so we can see what's going on.
 
-2009-12-18 19:28  colivier
+2009-12-18 19:28  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* remove the #273 test, as it already the same than point_1
+	* [r5033] regress/in_gml.sql, regress/in_gml_expected: remove the
+	  #273 test, as it already the same than point_1
 
-2009-12-18 19:08  colivier
+2009-12-18 19:08  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Libxml become mandatory. Cf #344. Modify configure step, remove
-	  all HAVE_LIBXML2 from code, sql and unit tests. Update
-	  documentation
+	* [r5032] configure.ac, doc/reference_constructor.xml,
+	  doc/reference_management.xml, doc/release_notes.xml,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_in_gml.c,
+	  postgis/lwgeom_in_kml.c, postgis/postgis.sql.in.c,
+	  postgis/sqldefines.h.in, postgis/uninstall_postgis.sql.in.c,
+	  postgis_config.h.in, regress/Makefile.in: Libxml become
+	  mandatory. Cf #344. Modify configure step, remove all
+	  HAVE_LIBXML2 from code, sql and unit tests. Update documentation
 
-2009-12-18 18:38  pramsey
+2009-12-18 18:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Moved size of int8 down to 19 chars (#326)
+	* [r5031] loader/pgsql2shp.c: Moved size of int8 down to 19 chars
+	  (#326)
 
-2009-12-18 18:26  robe
+2009-12-18 18:26  Regina Obe <lr at pcorp.us>
 
-	* fix some typos, cosmetic changes, throw some more geography
-	  around
+	* [r5030] doc/faq.xml: fix some typos, cosmetic changes, throw some
+	  more geography around
 
-2009-12-18 17:43  robe
+2009-12-18 17:43  Regina Obe <lr at pcorp.us>
 
-	* Find a home for Paul's examples and Advanced FAQ and back
-	  reference from main FAQ section
+	* [r5029] doc/faq.xml, doc/using_postgis_dataman.xml: Find a home
+	  for Paul's examples and Advanced FAQ and back reference from main
+	  FAQ section
 
-2009-12-18 17:16  robe
+2009-12-18 17:16  Regina Obe <lr at pcorp.us>
 
-	* We all new this day would come when we'd have to devote a whole
-	  section to this new kid called "geography". Think we still need
-	  to shuffle things around as the next section seems like a
-	  disconnect from the geography section
+	* [r5028] doc/faq.xml, doc/using_postgis_dataman.xml: We all new
+	  this day would come when we'd have to devote a whole section to
+	  this new kid called "geography". Think we still need to shuffle
+	  things around as the next section seems like a disconnect from
+	  the geography section
 
-2009-12-18 07:46  mleslie
+2009-12-18 07:46  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Reverting the change of r5007, removal of the getopt hack, to get
-	  windows builds working again.
+	* [r5025] loader/Makefile.in, loader/getopt.c, loader/getopt.h,
+	  loader/pgsql2shp.c, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c: Reverting the change of r5007, removal of
+	  the getopt hack, to get windows builds working again.
 
-2009-12-18 06:39  pramsey
+2009-12-18 06:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in icon and resource information for Win32 GUI
+	* [r5024] configure.ac, loader/Makefile.in,
+	  loader/shp2pgsql-gui.ico, loader/shp2pgsql-gui.rc: Add in icon
+	  and resource information for Win32 GUI
 
-2009-12-18 05:55  pramsey
+2009-12-18 05:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make GUI open w/o console under Win32
+	* [r5023] configure.ac, loader/Makefile.in: Make GUI open w/o
+	  console under Win32
 
-2009-12-17 12:54  mcayland
+2009-12-17 12:54  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Implement proper cleanup if an import fails, and also disable the
-	  "Import" button during the import to ensure that multiple import
-	  threads can't be launched.
+	* [r5020] loader/shp2pgsql-gui.c: Implement proper cleanup if an
+	  import fails, and also disable the "Import" button during the
+	  import to ensure that multiple import threads can't be launched.
 
-2009-12-17 11:16  mcayland
+2009-12-17 11:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add GUI option to allow the use of COPY rather than INSERT to
-	  load geometries into the database. Currently the default is still
-	  to use INSERT.
+	* [r5019] loader/shp2pgsql-gui.c: Add GUI option to allow the use
+	  of COPY rather than INSERT to load geometries into the database.
+	  Currently the default is still to use INSERT.
 
-2009-12-17 11:11  mcayland
+2009-12-17 11:11  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix memory scope error (resulting in segfault) accidentally
-	  introduced by the command line changes.
+	* [r5018] loader/shp2pgsql-gui.c: Fix memory scope error (resulting
+	  in segfault) accidentally introduced by the command line changes.
 
-2009-12-16 17:13  pramsey
+2009-12-16 17:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Temporarily de-regress the loader while talking to -devel
+	* [r5013] loader/shp2pgsql-core.h: Temporarily de-regress the
+	  loader while talking to -devel
 
-2009-12-16 17:00  pramsey
+2009-12-16 17:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Quiet solaris warnings
+	* [r5012] liblwgeom/libgeom.h, postgis/geography_estimate.c: Quiet
+	  solaris warnings
 
-2009-12-16 16:49  pramsey
+2009-12-16 16:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove warning on Solaris
+	* [r5011] postgis/lwgeom_chip.c: Remove warning on Solaris
 
-2009-12-16 00:43  pramsey
+2009-12-16 00:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add initial values.
+	* [r5010] postgis/geography_estimate.c: Add initial values.
 
-2009-12-15 23:55  pramsey
+2009-12-15 23:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change MAX_DBF_FIELD_SIZE to 254 (#326)
+	* [r5009] loader/pgsql2shp.c: Change MAX_DBF_FIELD_SIZE to 254
+	  (#326)
 
-2009-12-15 23:44  pramsey
+2009-12-15 23:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in support for command-line options for connection info to
-	  GUI (#338)
+	* [r5008] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c: Add in support for command-line options
+	  for connection info to GUI (#338)
 
-2009-12-15 21:45  pramsey
+2009-12-15 21:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove custom getopt files and move back to system getopt. Will
-	  take some testing, but will be worth it to be rid of this
-	  unmaintainable hack.
+	* [r5007] loader/Makefile.in, loader/getopt.c, loader/getopt.h,
+	  loader/pgsql2shp.c, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c: Remove custom getopt files and move back
+	  to system getopt. Will take some testing, but will be worth it to
+	  be rid of this unmaintainable hack.
 
-2009-12-15 20:56  pramsey
+2009-12-15 20:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make null date field blank rather than 00000000 (#321)
+	* [r5006] loader/pgsql2shp.c: Make null date field blank rather
+	  than 00000000 (#321)
 
-2009-12-15 20:08  pramsey
+2009-12-15 20:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make 4326 the default SRID for "unknown" cases, both in column
-	  creation and in geography object creation. (#347)
+	* [r5005] postgis/geography.h, postgis/geography_inout.c: Make 4326
+	  the default SRID for "unknown" cases, both in column creation and
+	  in geography object creation. (#347)
 
-2009-12-15 18:44  pramsey
+2009-12-15 18:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add --with-libiconv argument to configure, to allow third-party
+	* [r5004] configure.ac, loader/Makefile.in, loader/shp2pgsql-gui.c:
+	  Add --with-libiconv argument to configure, to allow third-party
 	  iconv libraries to be used instead of system iconv, if so
 	  desired. Necessary to work around an OS/X Snow Leopard issue
 	  (iconv_open only available as a 32 bit call!)
 
-2009-12-15 18:42  pramsey
+2009-12-15 18:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix buffer overrun case.
+	* [r5003] loader/shp2pgsql-core.c: Fix buffer overrun case.
 
-2009-12-15 15:10  pramsey
+2009-12-15 15:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove syntax error (fumbling fingers?) in the usage line (#345)
+	* [r5002] utils/postgis_restore.pl: Remove syntax error (fumbling
+	  fingers?) in the usage line (#345)
 
-2009-12-15 15:08  pramsey
+2009-12-15 15:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove test that enforces only OGC-standard WKT for
-	  GeomFromText(). We'll accept any string we can parse, just like
-	  geometry_in(). (#332)
+	* [r5001] postgis/lwgeom_ogc.c: Remove test that enforces only
+	  OGC-standard WKT for GeomFromText(). We'll accept any string we
+	  can parse, just like geometry_in(). (#332)
 
-2009-12-14 18:04  pramsey
+2009-12-14 18:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Flip argument order for -cli exe build and add CFLAGS back into
-	  linking line
+	* [r5000] loader/Makefile.in: Flip argument order for -cli exe
+	  build and add CFLAGS back into linking line
 
-2009-12-14 11:26  mcayland
+2009-12-14 11:26  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove the original shp2pgsql.c file which is no longer required
-	  with the new architecture.
+	* [r4999] loader/shp2pgsql.c: Remove the original shp2pgsql.c file
+	  which is no longer required with the new architecture.
 
-2009-12-14 01:38  mcayland
+2009-12-14 01:38  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix incorrect logic when outputting escaped strings; COPY does
-	  not require the attribute to be surrounded by apostrophes.
+	* [r4998] loader/shp2pgsql-core.c: Fix incorrect logic when
+	  outputting escaped strings; COPY does not require the attribute
+	  to be surrounded by apostrophes.
 
-2009-12-14 01:23  mcayland
+2009-12-14 01:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix missing COPY terminator from shp2pgsql command line
-	  component.
+	* [r4997] loader/shp2pgsql-cli.c: Fix missing COPY terminator from
+	  shp2pgsql command line component.
 
-2009-12-13 20:31  mcayland
+2009-12-13 20:31  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit initial version of reworked shp2pgsql architecture that
-	  defines a common API within shp2pgsql-core that can be called
-	  from both the CLI and GUI interfaces.
+	* [r4996] loader/Makefile.in, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/shp2pgsql.c: Commit initial
+	  version of reworked shp2pgsql architecture that defines a common
+	  API within shp2pgsql-core that can be called from both the CLI
+	  and GUI interfaces.
 	  
 	  There are still some minor TODOs left, however the basic concept
 	  appears to work well and I've also spent time running tests under
 	  valgrind to ensure that we don't leak memory on larger
 	  shapefiles.
 
-2009-12-09 17:33  kneufeld
+2009-12-09 17:33  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added identifier to shp2pgsql usage section
+	* [r4995] doc/using_postgis_dataman.xml: added identifier to
+	  shp2pgsql usage section
 
-2009-12-09 17:12  kneufeld
+2009-12-09 17:12  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated "Using the Loader" to demonstrate the use of the
-	  available options
+	* [r4994] doc/using_postgis_dataman.xml: updated "Using the Loader"
+	  to demonstrate the use of the available options
 
-2009-12-09 05:08  robe
+2009-12-09 05:08  Regina Obe <lr at pcorp.us>
 
-	* Correct the output type of ST_Extent and flag this as a change in
-	  behavior in PostGIS 1.4
+	* [r4992] doc/reference_misc.xml: Correct the output type of
+	  ST_Extent and flag this as a change in behavior in PostGIS 1.4
 
-2009-12-07 15:56  pramsey
+2009-12-07 15:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix mistakes in geography faq item.
+	* [r4991] doc/using_postgis_app.xml: Fix mistakes in geography faq
+	  item.
 
-2009-12-04 15:39  robe
+2009-12-04 15:39  Regina Obe <lr at pcorp.us>
 
-	* get rid of begin; commit in geography.sql.in.c. Now that it is
-	  part of postgis.sql.inc.c, no need for it.
+	* [r4989] postgis/geography.sql.in.c: get rid of begin; commit in
+	  geography.sql.in.c. Now that it is part of postgis.sql.inc.c, no
+	  need for it.
 
-2009-12-04 12:32  robe
+2009-12-04 12:32  Regina Obe <lr at pcorp.us>
 
-	* change to use refname instead of refid for link in what's new --
-	  so operators show the operator symbol instead of underlying
-	  function name
+	* [r4988] doc/xsl/postgis_aggs_mm.xml.xsl: change to use refname
+	  instead of refid for link in what's new -- so operators show the
+	  operator symbol instead of underlying function name
 
-2009-12-03 20:42  kneufeld
+2009-12-03 20:42  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* removed VACUUM
+	* [r4987] spatial_ref_sys.sql: removed VACUUM
 	  made into a single transaction block
 
-2009-12-03 18:51  kneufeld
+2009-12-03 18:51  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* removed url that is probably the cause in breaking docbook
+	* [r4986] doc/using_postgis_dataman.xml: removed url that is
+	  probably the cause in breaking docbook
 
-2009-12-03 18:43  kneufeld
+2009-12-03 18:43  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* a couple typos in the DE-9IM explanation
+	* [r4985] doc/using_postgis_dataman.xml: a couple typos in the
+	  DE-9IM explanation
 	  added further reading references.
 
-2009-12-03 16:23  kneufeld
+2009-12-03 16:23  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed a typo and added a few cross links
+	* [r4984] doc/using_postgis_dataman.xml: fixed a typo and added a
+	  few cross links
 
-2009-12-03 14:23  robe
+2009-12-03 14:23  Regina Obe <lr at pcorp.us>
 
-	* Replace unicode codes with images. IE 6 and 7 not happy. PDF not
-	  happy with unicode happy face symbol -- Regina not happy :(
+	* [r4983] doc/html/images/matrix_autocast.png,
+	  doc/html/images/matrix_checkmark.png,
+	  doc/html/images/matrix_transform.png,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Replace unicode codes with
+	  images. IE 6 and 7 not happy. PDF not happy with unicode happy
+	  face symbol -- Regina not happy :(
 
-2009-12-03 08:58  robe
+2009-12-03 08:58  Regina Obe <lr at pcorp.us>
 
-	* fill in missing curve support flags for outputs
+	* [r4982] doc/reference_output.xml: fill in missing curve support
+	  flags for outputs
 
-2009-12-03 06:14  kneufeld
+2009-12-03 06:14  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added a few reference cross links
+	* [r4981] doc/using_postgis_dataman.xml: added a few reference
+	  cross links
 
-2009-12-02 23:41  kneufeld
+2009-12-02 23:41  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* removed borders around the tables in the geometry compliancy
-	  section
+	* [r4980] doc/using_postgis_dataman.xml: removed borders around the
+	  tables in the geometry compliancy section
 
-2009-12-02 23:25  kneufeld
+2009-12-02 23:25  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added some thoughts on DE-9IM
+	* [r4979] doc/html/style.css, doc/using_postgis_dataman.xml: added
+	  some thoughts on DE-9IM
 
-2009-12-02 23:23  kneufeld
+2009-12-02 23:23  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added target to resize certain images
+	* [r4978] doc/html/image_src/Makefile.in: added target to resize
+	  certain images
 
-2009-12-02 22:05  robe
+2009-12-02 22:05  Regina Obe <lr at pcorp.us>
 
-	* Flag more as working with curves. I think all do except same
-	  operator but need to verify.
+	* [r4977] doc/reference_operator.xml: Flag more as working with
+	  curves. I think all do except same operator but need to verify.
 
-2009-12-02 21:48  robe
+2009-12-02 21:48  Regina Obe <lr at pcorp.us>
 
-	* Looks fine in all my IE8 browsers perhaps its just IE7 that's
-	  behind the times. Use cutesy unicode dingbats for now -- alos put
-	  in item list legend.
+	* [r4976] doc/xsl/postgis_aggs_mm.xml.xsl: Looks fine in all my IE8
+	  browsers perhaps its just IE7 that's behind the times. Use cutesy
+	  unicode dingbats for now -- alos put in item list legend.
 
-2009-12-02 21:02  kneufeld
+2009-12-02 21:02  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added de9im images
+	* [r4975] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/de9im01.wkt, doc/html/image_src/de9im02.wkt,
+	  doc/html/image_src/de9im03.wkt, doc/html/image_src/de9im04.wkt,
+	  doc/html/image_src/de9im05.wkt, doc/html/image_src/de9im06.wkt,
+	  doc/html/image_src/de9im07.wkt, doc/html/image_src/de9im08.wkt,
+	  doc/html/image_src/de9im09.wkt, doc/html/image_src/de9im10.wkt,
+	  doc/html/image_src/de9im11.wkt, doc/html/image_src/de9im12.wkt,
+	  doc/html/image_src/de9im13.wkt, doc/html/image_src/styles.conf:
+	  added de9im images
 
-2009-12-02 15:20  robe
+2009-12-02 15:20  Regina Obe <lr at pcorp.us>
 
-	* Now that pdf table layout is fixed with informal table -- put
-	  back operators in matrix
+	* [r4974] doc/xsl/postgis_aggs_mm.xml.xsl: Now that pdf table
+	  layout is fixed with informal table -- put back operators in
+	  matrix
 
-2009-12-02 14:47  robe
+2009-12-02 14:47  Regina Obe <lr at pcorp.us>
 
-	* Do I dear try an informal table again :)
+	* [r4973] doc/xsl/postgis_aggs_mm.xml.xsl: Do I dear try an
+	  informal table again :)
 
-2009-12-02 14:03  robe
+2009-12-02 14:03  Regina Obe <lr at pcorp.us>
 
-	* Try Mateusz idea of a unicode checkmark
+	* [r4972] doc/xsl/postgis_aggs_mm.xml.xsl: Try Mateusz idea of a
+	  unicode checkmark
 
-2009-12-01 22:54  robe
+2009-12-01 22:54  Regina Obe <lr at pcorp.us>
 
-	* hmm spelled geometry wrong
+	* [r4971] doc/xsl/postgis_aggs_mm.xml.xsl: hmm spelled geometry
+	  wrong
 
-2009-12-01 22:40  robe
+2009-12-01 22:40  Regina Obe <lr at pcorp.us>
 
-	* get rid of padding on tables
+	* [r4970] doc/html/style.css: get rid of padding on tables
 
-2009-12-01 22:30  robe
+2009-12-01 22:30  Regina Obe <lr at pcorp.us>
 
-	* try again
+	* [r4969] doc/xsl/postgis_aggs_mm.xml.xsl: try again
 
-2009-12-01 21:47  robe
+2009-12-01 21:47  Regina Obe <lr at pcorp.us>
 
-	* back to formal table
+	* [r4968] doc/xsl/postgis_aggs_mm.xml.xsl: back to formal table
 
-2009-12-01 20:08  robe
+2009-12-01 20:08  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r4967] doc/xsl/postgis_aggs_mm.xml.xsl:
 
-2009-12-01 20:00  robe
+2009-12-01 20:00  Regina Obe <lr at pcorp.us>
 
-	* try again
+	* [r4966] doc/xsl/postgis_aggs_mm.xml.xsl: try again
 
-2009-12-01 19:53  robe
+2009-12-01 19:53  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r4965] doc/xsl/postgis_aggs_mm.xml.xsl:
 
-2009-12-01 19:34  robe
+2009-12-01 19:34  Regina Obe <lr at pcorp.us>
 
-	* fix build
+	* [r4964] doc/xsl/postgis_aggs_mm.xml.xsl: fix build
 
-2009-12-01 19:19  robe
+2009-12-01 19:19  Regina Obe <lr at pcorp.us>
 
-	* seeif pdf looks better with an informaltable
+	* [r4963] doc/xsl/postgis_aggs_mm.xml.xsl: seeif pdf looks better
+	  with an informaltable
 
-2009-12-01 18:30  robe
+2009-12-01 18:30  Regina Obe <lr at pcorp.us>
 
-	* title change
+	* [r4962] doc/xsl/postgis_aggs_mm.xml.xsl: title change
 
-2009-12-01 18:29  robe
+2009-12-01 18:29  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r4961] doc/xsl/postgis_aggs_mm.xml.xsl: typo
 
-2009-12-01 18:07  robe
+2009-12-01 18:07  Regina Obe <lr at pcorp.us>
 
-	* Add sql mm compliance column get rid of cell-padding
+	* [r4960] doc/html/style.css, doc/xsl/postgis_aggs_mm.xml.xsl: Add
+	  sql mm compliance column get rid of cell-padding
 
-2009-12-01 17:17  robe
+2009-12-01 17:17  Regina Obe <lr at pcorp.us>
 
-	* shorten matrix list to exclude operators and exception so pdf is
-	  not quite so ugly. Try to fit on one page.
+	* [r4959] doc/xsl/postgis_aggs_mm.xml.xsl: shorten matrix list to
+	  exclude operators and exception so pdf is not quite so ugly. Try
+	  to fit on one page.
 
-2009-12-01 17:06  robe
+2009-12-01 17:06  Regina Obe <lr at pcorp.us>
 
-	* fix filter for 2.5D/curved support. More tweaking of style
+	* [r4958] doc/html/style.css, doc/xsl/postgis_aggs_mm.xml.xsl: fix
+	  filter for 2.5D/curved support. More tweaking of style
 
-2009-12-01 16:42  robe
+2009-12-01 16:42  Regina Obe <lr at pcorp.us>
 
-	* get rid of border=0 altogether exclude management,types, and
+	* [r4957] doc/html/style.css, doc/xsl/postgis_aggs_mm.xml.xsl: get
+	  rid of border=0 altogether exclude management,types, and
 	  transaction from matrix
 
-2009-12-01 16:15  robe
+2009-12-01 16:15  Regina Obe <lr at pcorp.us>
 
-	* border not taking
+	* [r4956] doc/html/style.css: border not taking
 
-2009-12-01 15:09  robe
+2009-12-01 15:09  Regina Obe <lr at pcorp.us>
 
-	* I want table borders
+	* [r4955] doc/html/style.css: I want table borders
 
-2009-12-01 14:42  robe
+2009-12-01 14:42  Regina Obe <lr at pcorp.us>
 
-	* oops had left over junk -- get rid of junk
+	* [r4954] doc/xsl/postgis_aggs_mm.xml.xsl: oops had left over junk
+	  -- get rid of junk
 
-2009-12-01 14:28  robe
+2009-12-01 14:28  Regina Obe <lr at pcorp.us>
 
-	* try to get rid of section abstract -- see if pdflatex accepts
-	  super duper matrix
+	* [r4953] doc/xsl/postgis_aggs_mm.xml.xsl: try to get rid of
+	  section abstract -- see if pdflatex accepts super duper matrix
 
-2009-12-01 14:15  robe
+2009-12-01 14:15  Regina Obe <lr at pcorp.us>
 
-	* First attempt at super-duper type functionality compare matrix
+	* [r4952] doc/xsl/postgis_aggs_mm.xml.xsl: First attempt at
+	  super-duper type functionality compare matrix
 
-2009-11-30 22:08  pramsey
+2009-11-30 22:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix up boundary condition in node interaction test.
+	* [r4949] liblwgeom/cunit/cu_measures.c, liblwgeom/lwtree.c: Fix up
+	  boundary condition in node interaction test.
 
-2009-11-30 20:52  pramsey
+2009-11-30 20:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add an internal geometry tree for use in a native prepared
-	  geometry scheme for fast intersection tests.
+	* [r4948] liblwgeom/Makefile.in, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwtree.c, liblwgeom/lwtree.h, liblwgeom/measures.c: Add
+	  an internal geometry tree for use in a native prepared geometry
+	  scheme for fast intersection tests.
 
-2009-11-30 20:50  pramsey
+2009-11-30 20:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add svn:keywords to everyone
+	* [r4947] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_geodetic.c, liblwgeom/cunit/cu_geodetic.h,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_libgeom.h, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_measures.h, liblwgeom/cunit/cu_tester.h: Add
+	  svn:keywords to everyone
 
-2009-11-30 20:49  pramsey
+2009-11-30 20:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add NL to end of expected file.
+	* [r4946] regress/in_gml_expected: Add NL to end of expected file.
 
-2009-11-30 20:44  pramsey
+2009-11-30 20:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move the fromGML test into the in_gml.sql file, so that it will
-	  be properly excluded when libxml2 is not available.
+	* [r4945] regress/in_gml.sql, regress/in_gml_expected,
+	  regress/tickets.sql, regress/tickets_expected: Move the fromGML
+	  test into the in_gml.sql file, so that it will be properly
+	  excluded when libxml2 is not available.
 
-2009-11-30 20:39  pramsey
+2009-11-30 20:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move have_libxml2 define to the other library have_ defines.
+	* [r4944] postgis_config.h.in: Move have_libxml2 define to the
+	  other library have_ defines.
 
-2009-11-30 20:37  pramsey
+2009-11-30 20:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix warnings from cpp during sql file build as reported by
-	  kneufeld
+	* [r4943] configure.ac, postgis/sqldefines.h.in,
+	  postgis/uninstall_postgis.sql.in.c: Fix warnings from cpp during
+	  sql file build as reported by kneufeld
 
-2009-11-30 19:56  pramsey
+2009-11-30 19:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated SQL files for uninstallation to match current state.
+	* [r4942] postgis/postgis_drop.sql.in.c, postgis/sqldefines.h.in,
+	  postgis/uninstall_geography.sql.in.c,
+	  postgis/uninstall_postgis.sql.in.c: Updated SQL files for
+	  uninstallation to match current state.
 
-2009-11-30 19:12  pramsey
+2009-11-30 19:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update the upgrade process description to match new scripts.
+	* [r4941] README.postgis: Update the upgrade process description to
+	  match new scripts.
 
-2009-11-30 17:27  pramsey
+2009-11-30 17:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename ST_PointOutside to _ST_PointOutside (#325)
+	* [r4938] postgis/geography.sql.in.c: Rename ST_PointOutside to
+	  _ST_PointOutside (#325)
 
-2009-11-30 16:40  kneufeld
+2009-11-30 16:40  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* renamed ST_DumpPoints to _ST_DumpPoints
+	* [r4937] postgis/postgis.sql.in.c: renamed ST_DumpPoints to
+	  _ST_DumpPoints
 
-2009-11-30 14:30  robe
+2009-11-30 14:30  Regina Obe <lr at pcorp.us>
 
-	* revise template to use new entities
+	* [r4936] doc/template.xml: revise template to use new entities
 
-2009-11-30 14:24  robe
+2009-11-30 14:24  Regina Obe <lr at pcorp.us>
 
-	* availability note not specified right for ST_DumpPoints
+	* [r4935] doc/reference_processing.xml: availability note not
+	  specified right for ST_DumpPoints
 
-2009-11-30 09:16  robe
+2009-11-30 09:16  Regina Obe <lr at pcorp.us>
 
-	* fill in missing proto for st_polygonize
+	* [r4934] doc/reference_processing.xml: fill in missing proto for
+	  st_polygonize
 
-2009-11-29 09:07  robe
+2009-11-29 09:07  Regina Obe <lr at pcorp.us>
 
-	* Yeh ST_GeomFromKML/GML not crashing anymore on Windows (when
-	  libxml statically compiled in) -- can put back the tests
+	* [r4932] doc/xsl/postgis_gardentest.sql.xsl: Yeh
+	  ST_GeomFromKML/GML not crashing anymore on Windows (when libxml
+	  statically compiled in) -- can put back the tests
 
-2009-11-28 22:36  robe
+2009-11-28 22:36  Regina Obe <lr at pcorp.us>
 
-	* Add missing ST_CoveredBy proto for geography
+	* [r4927] doc/reference_measure.xml: Add missing ST_CoveredBy proto
+	  for geography
 
-2009-11-28 07:13  robe
+2009-11-28 07:13  Regina Obe <lr at pcorp.us>
 
-	* try to force paragraph at top using sectinfo abstract. Make note
-	  about deprecation more threatening.
+	* [r4926] doc/reference.xml, doc/reference_type.xml: try to force
+	  paragraph at top using sectinfo abstract. Make note about
+	  deprecation more threatening.
 
-2009-11-28 06:50  robe
+2009-11-28 06:50  Regina Obe <lr at pcorp.us>
 
-	* slight amendment to description of casts
+	* [r4925] doc/reference_type.xml: slight amendment to description
+	  of casts
 
-2009-11-28 06:40  robe
+2009-11-28 06:40  Regina Obe <lr at pcorp.us>
 
-	* fill out casting behavior, also list box type functions and links
+	* [r4924] doc/reference_type.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  fill out casting behavior, also list box type functions and links
 	  to it and from it
 
-2009-11-27 23:38  pramsey
+2009-11-27 23:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add install directory as an ignore.
+	* [r4923] regress: Add install directory as an ignore.
 
-2009-11-27 20:58  robe
+2009-11-27 20:58  Regina Obe <lr at pcorp.us>
 
-	* link to new geometry_dump sections, also alphabetize dump
-	  functions
+	* [r4922] doc/reference_processing.xml: link to new geometry_dump
+	  sections, also alphabetize dump functions
 
-2009-11-27 20:39  robe
+2009-11-27 20:39  Regina Obe <lr at pcorp.us>
 
-	* thanks Kevin -- this should work now
+	* [r4921] doc/reference_type.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  thanks Kevin -- this should work now
 
-2009-11-27 20:31  robe
+2009-11-27 20:31  Regina Obe <lr at pcorp.us>
 
-	* take out link and see if hudson is happy
+	* [r4920] doc/reference_type.xml: take out link and see if hudson
+	  is happy
 
-2009-11-27 20:01  robe
+2009-11-27 20:01  Regina Obe <lr at pcorp.us>
 
-	* try again - maybe typo
+	* [r4919] doc/reference_type.xml: try again - maybe typo
 
-2009-11-27 19:46  robe
+2009-11-27 19:46  Regina Obe <lr at pcorp.us>
 
-	* Add geometry_dump and special index to list all functions that
+	* [r4918] doc/reference_type.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  Add geometry_dump and special index to list all functions that
 	  take as input or output geometry_dump objects
 
-2009-11-27 19:21  pramsey
+2009-11-27 19:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* A few more Mapserver usage updates.
+	* [r4917] doc/using_postgis_app.xml: A few more Mapserver usage
+	  updates.
 
-2009-11-27 19:17  pramsey
+2009-11-27 19:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update the using mapserver section a little
+	* [r4916] doc/using_postgis_app.xml: Update the using mapserver
+	  section a little
 
-2009-11-27 17:50  pramsey
+2009-11-27 17:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add newlines at file ends to silence warnings
+	* [r4913] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h: Add newlines at file ends to
+	  silence warnings
 
-2009-11-27 17:06  kneufeld
+2009-11-27 17:06  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Fixed a few typos and missing references
+	* [r4912] doc/reference_processing.xml,
+	  doc/using_postgis_dataman.xml: Fixed a few typos and missing
+	  references
 
-2009-11-27 16:28  robe
+2009-11-27 16:28  Regina Obe <lr at pcorp.us>
 
-	* okay another try. bad scaling
+	* [r4911] doc/html/image_src/st_longestline03.wkt,
+	  doc/reference_measure.xml: okay another try. bad scaling
 
-2009-11-27 16:01  robe
+2009-11-27 16:01  Regina Obe <lr at pcorp.us>
 
-	* make all colors different for clarity
+	* [r4910] doc/html/image_src/st_closestpoint01.wkt,
+	  doc/html/image_src/st_closestpoint02.wkt: make all colors
+	  different for clarity
 
-2009-11-27 15:37  robe
+2009-11-27 15:37  Regina Obe <lr at pcorp.us>
 
-	* forgot images
+	* [r4909] doc/html/image_src/st_closestpoint01.wkt,
+	  doc/html/image_src/st_closestpoint02.wkt: forgot images
 
-2009-11-27 15:36  robe
+2009-11-27 15:36  Regina Obe <lr at pcorp.us>
 
-	* remove dupe ST_DFullyWithin, put in availability note for
-	  ST_DFullyWithin, add ST_ClosestPoint documentation and images,
-	  fix ST_LongestLine diag 3(forgot about the 200x200 rule)
+	* [r4908] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_longestline03.wkt,
+	  doc/reference_measure.xml: remove dupe ST_DFullyWithin, put in
+	  availability note for ST_DFullyWithin, add ST_ClosestPoint
+	  documentation and images, fix ST_LongestLine diag 3(forgot about
+	  the 200x200 rule)
 
-2009-11-26 18:50  robe
+2009-11-26 18:50  Regina Obe <lr at pcorp.us>
 
-	* another st_longestline example
+	* [r4907] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_longestline03.wkt,
+	  doc/reference_measure.xml: another st_longestline example
 
-2009-11-26 17:56  mcayland
+2009-11-26 17:56  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit slightly altered regression tests for the above.
+	* [r4906] regress/regress_expected,
+	  regress/sql-mm-curvepoly_expected: Commit slightly altered
+	  regression tests for the above.
 
-2009-11-26 17:55  mcayland
+2009-11-26 17:55  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #316: IsValid? called on invalid 3d object leads to crash.
-	  Because of the way the parser works, not all tuples can hold a
-	  valid parse position; hence when trying to display the error
-	  message, the parser would crash. The solution I went for here was
-	  to alter pop() so that "counting tuples" always hold a valid
-	  parse position, and then re-write the various check functions to
-	  ensure that they only display parse errors with details from the
-	  next "counting tuple" higher up in the stack.
+	* [r4905] liblwgeom/lwgparse.c: Fix #316: IsValid? called on
+	  invalid 3d object leads to crash. Because of the way the parser
+	  works, not all tuples can hold a valid parse position; hence when
+	  trying to display the error message, the parser would crash. The
+	  solution I went for here was to alter pop() so that "counting
+	  tuples" always hold a valid parse position, and then re-write the
+	  various check functions to ensure that they only display parse
+	  errors with details from the next "counting tuple" higher up in
+	  the stack.
 
-2009-11-26 16:52  robe
+2009-11-26 16:52  Regina Obe <lr at pcorp.us>
 
-	* change shortestline/longestline point/line example
+	* [r4903] doc/html/image_src/st_longestline01.wkt,
+	  doc/html/image_src/st_shortestline01.wkt,
+	  doc/reference_measure.xml: change shortestline/longestline
+	  point/line example
 
-2009-11-25 23:37  robe
+2009-11-25 23:37  Regina Obe <lr at pcorp.us>
 
-	* another typo
+	* [r4901] doc/html/image_src/st_shortestline01.wkt: another typo
 
-2009-11-25 23:36  robe
+2009-11-25 23:36  Regina Obe <lr at pcorp.us>
 
-	* fix typo in coordinates
+	* [r4900] doc/html/image_src/st_longestline01.wkt: fix typo in
+	  coordinates
 
-2009-11-25 23:07  robe
+2009-11-25 23:07  Regina Obe <lr at pcorp.us>
 
-	* make diagrams more interesting
+	* [r4899] doc/html/image_src/st_longestline01.wkt,
+	  doc/html/image_src/st_shortestline01.wkt,
+	  doc/reference_measure.xml: make diagrams more interesting
 
-2009-11-25 22:48  robe
+2009-11-25 22:48  Regina Obe <lr at pcorp.us>
 
-	* Put in figures for ST_LongestLine. revise figure for shortest
-	  line make geometries the same for easy compare
+	* [r4898] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_longestline01.wkt,
+	  doc/html/image_src/st_longestline02.wkt,
+	  doc/html/image_src/st_shortestline02.wkt,
+	  doc/reference_measure.xml: Put in figures for ST_LongestLine.
+	  revise figure for shortest line make geometries the same for easy
+	  compare
 
-2009-11-25 22:15  robe
+2009-11-25 22:15  Regina Obe <lr at pcorp.us>
 
-	* cosmetic changes
+	* [r4897] doc/reference_measure.xml: cosmetic changes
 
-2009-11-25 22:12  robe
+2009-11-25 22:12  Regina Obe <lr at pcorp.us>
 
-	* Put in images for ST_ShortestLine
+	* [r4896] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_shortestline01.wkt,
+	  doc/html/image_src/st_shortestline02.wkt,
+	  doc/reference_measure.xml: Put in images for ST_ShortestLine
 
-2009-11-25 21:49  robe
+2009-11-25 21:49  Regina Obe <lr at pcorp.us>
 
-	* put in missing availability notes
+	* [r4895] doc/reference_measure.xml: put in missing availability
+	  notes
 
-2009-11-25 19:15  pramsey
+2009-11-25 19:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Merge Nicklas Aven's distance spike into trunk. (#63, #231)
+	* [r4894] doc/reference_measure.xml, doc/reference_old.xml,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/cunit/cu_measures.h,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwcircstring.c,
+	  liblwgeom/measures.c, liblwgeom/measures.h,
+	  postgis/long_xact.sql.in.c, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c, postgis/sqlmm.sql.in.c,
+	  postgis/uninstall_postgis.sql.in.c, regress/measures.sql,
+	  regress/measures_expected: Merge Nicklas Aven's distance spike
+	  into trunk. (#63, #231)
 
-2009-11-24 22:10  kneufeld
+2009-11-24 22:10  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added refentry section for ST_DumpPoints()
+	* [r4892] doc/reference_processing.xml: added refentry section for
+	  ST_DumpPoints()
 
-2009-11-24 21:46  kneufeld
+2009-11-24 21:46  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added an ST_DumpPoints image to the collection.
+	* [r4891] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_dumppoints01.wkt,
+	  doc/html/image_src/styles.conf: added an ST_DumpPoints image to
+	  the collection.
 
-2009-11-24 17:28  colivier
+2009-11-24 17:28  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* explicit NULL test on xa->name. Related to #273
+	* [r4890] postgis/lwgeom_in_gml.c: explicit NULL test on xa->name.
+	  Related to #273
 
-2009-11-24 10:28  colivier
+2009-11-24 10:28  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* add also availability note to GmlToSQL()
+	* [r4889] doc/reference_constructor.xml: add also availability note
+	  to GmlToSQL()
 
-2009-11-24 10:20  colivier
+2009-11-24 10:20  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* add availability information for postgis_libxml_version()
+	* [r4888] doc/reference_management.xml: add availability
+	  information for postgis_libxml_version()
 
-2009-11-23 18:07  robe
+2009-11-23 18:07  Regina Obe <lr at pcorp.us>
 
-	* #300 - minor casing changes to reference. Incorporate logic to
+	* [r4887] doc/reference_type.xml, doc/xsl/postgis_comments.sql.xsl:
+	  #300 - minor casing changes to reference. Incorporate logic to
 	  comment types. Types need more description and casting behavior
 	  detail.
 
-2009-11-23 14:27  robe
+2009-11-23 14:27  Regina Obe <lr at pcorp.us>
 
-	* New postgresql type section per #300. Still need to modify
-	  postgis_comments.sql.xsl accordingly
+	* [r4886] doc/postgis.xml, doc/reference.xml,
+	  doc/reference_type.xml: New postgresql type section per #300.
+	  Still need to modify postgis_comments.sql.xsl accordingly
 
-2009-11-23 14:26  colivier
+2009-11-23 14:26  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add libxml2 version information in postgis_full_version. Add
-	  libxml2 support information in postgis_version. Add new
-	  postgis_libxml_version function. Add doc entry for this new
-	  function.
+	* [r4885] configure.ac, doc/reference_management.xml,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in.c,
+	  postgis/sqldefines.h.in, postgis_config.h.in: Add libxml2 version
+	  information in postgis_full_version. Add libxml2 support
+	  information in postgis_version. Add new postgis_libxml_version
+	  function. Add doc entry for this new function.
 
-2009-11-22 04:56  pramsey
+2009-11-22 04:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move utility functions only used in cunit tests to the cunit
-	  code.
+	* [r4880] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Move utility functions only used in cunit
+	  tests to the cunit code.
 
-2009-11-22 04:28  pramsey
+2009-11-22 04:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Replace pow(,2.0) with POW2 macro.
+	* [r4879] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwspheroid.c: Replace pow(,2.0) with POW2 macro.
 
-2009-11-21 06:08  pramsey
+2009-11-21 06:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move from pass-by-value to pass-by-const-pointer. What can I say,
-	  I have no control over myself.
+	* [r4877] liblwgeom/cunit/cu_geodetic.c, liblwgeom/g_box.c,
+	  liblwgeom/g_serialized.c, liblwgeom/g_util.c,
+	  liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwspheroid.c,
+	  postgis/geography_measurement.c, postgis/lwgeom_spheroid.c: Move
+	  from pass-by-value to pass-by-const-pointer. What can I say, I
+	  have no control over myself.
 
-2009-11-21 03:44  robe
+2009-11-21 03:44  Regina Obe <lr at pcorp.us>
 
-	* update st_buffer, st_intersection details for geography to
-	  reflect what we are actually doing in bestsrid calc
+	* [r4876] doc/reference_processing.xml: update st_buffer,
+	  st_intersection details for geography to reflect what we are
+	  actually doing in bestsrid calc
 
-2009-11-21 03:31  robe
+2009-11-21 03:31  Regina Obe <lr at pcorp.us>
 
-	* grammar correction
+	* [r4875] doc/reference_editor.xml: grammar correction
 
-2009-11-20 20:12  pramsey
+2009-11-20 20:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix an error hidden in a debug line.
+	* [r4873] postgis/geography_gist.c: Fix an error hidden in a debug
+	  line.
 
-2009-11-20 18:36  pramsey
+2009-11-20 18:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix graxing case and improve co-linear handling with help from
+	* [r4872] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c:
+	  Fix graxing case and improve co-linear handling with help from
 	  Nicklas Aven (#314)
 
-2009-11-20 18:05  kneufeld
+2009-11-20 18:05  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added missing dependency of postgis_aggs_mm for the comments
+	* [r4871] doc/Makefile.in: added missing dependency of
+	  postgis_aggs_mm for the comments
 
-2009-11-20 14:02  mcayland
+2009-11-20 14:02  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Apply Kris Jurka's pgsql2shp patches, as detail in the
-	  postgis-devel archives on 12th Nov. Thanks Kris!
+	* [r4870] loader/pgsql2shp.c: Apply Kris Jurka's pgsql2shp patches,
+	  as detail in the postgis-devel archives on 12th Nov. Thanks Kris!
 
-2009-11-20 13:53  mcayland
+2009-11-20 13:53  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Finish working on Dave Fuhry's memory-leak patch, and also fix
-	  several other leaks found by running shp2pgsql through valgrind.
+	* [r4868] loader/shp2pgsql.c: Finish working on Dave Fuhry's
+	  memory-leak patch, and also fix several other leaks found by
+	  running shp2pgsql through valgrind.
 
-2009-11-19 22:35  colivier
+2009-11-19 22:35  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Switch to reference splitted files. Add references entities. Use
-	  postgis.xml rather than reference.xml in doc/xsl/* files. Add
-	  template rule in doc/xsl/* to only use
-	  /book/chapter[@id='reference'].
+	* [r4866] doc/Makefile.in, doc/postgis.xml, doc/reference.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl,
+	  doc/xsl/postgis_comments.sql.xsl,
+	  doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl: Switch to reference
+	  splitted files. Add references entities. Use postgis.xml rather
+	  than reference.xml in doc/xsl/* files. Add template rule in
+	  doc/xsl/* to only use /book/chapter[@id='reference'].
 
-2009-11-19 20:23  pramsey
+2009-11-19 20:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Handle the case where the stabline and a polygon edge are
-	  co-linear in point-in-polygon test.
+	* [r4865] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_libgeom.h, liblwgeom/lwgeodetic.c: Handle the
+	  case where the stabline and a polygon edge are co-linear in
+	  point-in-polygon test.
 
-2009-11-19 15:39  mcayland
+2009-11-19 15:39  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Alter regression test harness so that shp2pgsql/pgsql2shp can be
-	  tested without being installed.
+	* [r4862] loader/Makefile.in, regress/run_test: Alter regression
+	  test harness so that shp2pgsql/pgsql2shp can be tested without
+	  being installed.
 
-2009-11-19 00:54  pramsey
+2009-11-19 00:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Attempt to clarify MULTIPOLYGON behavior in
-	  ST_SimplifyPreserveTopology (#240)
+	* [r4857] doc/reference.xml: Attempt to clarify MULTIPOLYGON
+	  behavior in ST_SimplifyPreserveTopology (#240)
 
-2009-11-18 19:54  pramsey
+2009-11-18 19:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add another example (#218)
+	* [r4855] doc/reference_editor.xml: Add another example (#218)
 
-2009-11-18 19:53  pramsey
+2009-11-18 19:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Put constants reference in the example, so people see it (nobody
-	  reads documentation) (#218)
+	* [r4854] doc/reference_editor.xml: Put constants reference in the
+	  example, so people see it (nobody reads documentation) (#218)
 
-2009-11-18 17:28  kneufeld
+2009-11-18 17:28  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Ok, well that didn't work. Reverting changes.
+	* [r4853] doc/Makefile.in: Ok, well that didn't work. Reverting
+	  changes.
 
-2009-11-18 17:19  kneufeld
+2009-11-18 17:19  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* simplified postgis-out.xml target. The sed replacement should
-	  only happen on the postgis.xml file as the DocBook variable
-	  &last_release_version is used throughout the documentation
+	* [r4852] doc/Makefile.in: simplified postgis-out.xml target. The
+	  sed replacement should only happen on the postgis.xml file as the
+	  DocBook variable &last_release_version is used throughout the
+	  documentation
 
-2009-11-17 23:27  pramsey
+2009-11-17 23:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in the history table convenience functions, a README and some
-	  manual examples for pedagogy.
+	* [r4851] extras/history_table, extras/history_table/README,
+	  extras/history_table/history_table.sql: Add in the history table
+	  convenience functions, a README and some manual examples for
+	  pedagogy.
 
-2009-11-17 22:29  pramsey
+2009-11-17 22:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix a double-free in the unit test for collection extract.
+	* [r4850] liblwgeom/cunit/cu_libgeom.c: Fix a double-free in the
+	  unit test for collection extract.
 
-2009-11-17 20:14  pramsey
+2009-11-17 20:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add availability line.
+	* [r4849] doc/reference_editor.xml: Add availability line.
 
-2009-11-17 20:05  pramsey
+2009-11-17 20:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add more explanation of type numbers.
+	* [r4848] doc/reference_editor.xml: Add more explanation of type
+	  numbers.
 
-2009-11-17 20:03  pramsey
+2009-11-17 20:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Implement ST_CollectionExtract() to pull specific homogeneous
-	  collections out of heterogeneous collections. Regressions and
-	  documentation included. (#218)
+	* [r4847] doc/reference_editor.xml, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcollection.c, liblwgeom/lwutil.c,
+	  postgis/lwgeom_functions_basic.c, postgis/postgis.sql.in.c,
+	  regress/regress.sql, regress/regress_expected: Implement
+	  ST_CollectionExtract() to pull specific homogeneous collections
+	  out of heterogeneous collections. Regressions and documentation
+	  included. (#218)
 
-2009-11-17 17:23  pramsey
+2009-11-17 17:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Trim the binary versions of geometries to try and remove
-	  regressions from other platforms.
+	* [r4846] regress/wmsservers.sql, regress/wmsservers_expected: Trim
+	  the binary versions of geometries to try and remove regressions
+	  from other platforms.
 
-2009-11-17 14:00  mcayland
+2009-11-17 14:00  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Properly fix #219 by creating a separate "mini install" of
-	  PostGIS into the PGXS regression directory that can be used for
-	  regression. This is because different architectures have
-	  different naming conventions, and so Paul's original hack isn't
-	  guaranteed to work. By using PGXS to perform the install, we
-	  eliminate the problem of having to know the final architecture
-	  library name.
+	* [r4845] postgis/Makefile.in, regress/Makefile.in: Properly fix
+	  #219 by creating a separate "mini install" of PostGIS into the
+	  PGXS regression directory that can be used for regression. This
+	  is because different architectures have different naming
+	  conventions, and so Paul's original hack isn't guaranteed to
+	  work. By using PGXS to perform the install, we eliminate the
+	  problem of having to know the final architecture library name.
 
-2009-11-17 04:28  pramsey
+2009-11-17 04:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add tests from #210 to the tickets.sql
+	* [r4844] regress/tickets.sql, regress/tickets_expected: Add tests
+	  from #210 to the tickets.sql
 
-2009-11-17 04:25  pramsey
+2009-11-17 04:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add tickets.sql and expected tests derived from old trac entries
-	  (#214)
+	* [r4843] regress/Makefile.in, regress/tickets.sql,
+	  regress/tickets_expected: Add tickets.sql and expected tests
+	  derived from old trac entries (#214)
 
-2009-11-16 23:30  pramsey
+2009-11-16 23:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add identifying lines to SQL so that error lines are easier to
-	  find.
+	* [r4842] regress/wmsservers.sql, regress/wmsservers_expected: Add
+	  identifying lines to SQL so that error lines are easier to find.
 
-2009-11-16 23:22  pramsey
+2009-11-16 23:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove trailing space from libname
+	* [r4841] regress/Makefile.in: Remove trailing space from libname
 
-2009-11-16 22:01  pramsey
+2009-11-16 22:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in hack to match the library .so substition name to the one
-	  produced by a particular PgSQL version. (#219)
+	* [r4840] regress/Makefile.in: Add in hack to match the library .so
+	  substition name to the one produced by a particular PgSQL
+	  version. (#219)
 
-2009-11-16 21:13  pramsey
+2009-11-16 21:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in tests for MapServer/Geoserver-style SQL calls. (#224)
+	* [r4839] regress/Makefile.in, regress/wmsservers.sql,
+	  regress/wmsservers_expected: Add in tests for
+	  MapServer/Geoserver-style SQL calls. (#224)
 
-2009-11-16 20:25  pramsey
+2009-11-16 20:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make scripts version independent of library micro-version.
+	* [r4838] configure.ac: Make scripts version independent of library
+	  micro-version.
 
-2009-11-16 19:52  pramsey
+2009-11-16 19:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make POSTGIS_SCRIPTS_VERSION reflect the maximum SVN version of
-	  the SQL input files. (#242)
+	* [r4837] configure.ac, utils/read_scripts_version.pl: Make
+	  POSTGIS_SCRIPTS_VERSION reflect the maximum SVN version of the
+	  SQL input files. (#242)
 
-2009-11-16 19:47  kneufeld
+2009-11-16 19:47  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Ticket #76.
+	* [r4836] postgis/postgis.sql.in.c, regress/Makefile.in,
+	  regress/dumppoints.sql, regress/dumppoints_expected: Ticket #76.
 	  - added a modified version of a plpgsql implementation for
 	  ST_DumpPoints() proposed by Maxime van Noppen.
 	  - added regression tests
 
-2009-11-16 19:10  pramsey
+2009-11-16 19:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make an unknown geography SRID translate to a 4326 geometry SRID
-	  during a cast (#298)
+	* [r4835] postgis/geography_inout.c: Make an unknown geography SRID
+	  translate to a 4326 geometry SRID during a cast (#298)
 
-2009-11-16 19:06  robe
+2009-11-16 19:06  Regina Obe <lr at pcorp.us>
 
-	* forgot availability note
+	* [r4834] doc/reference_constructor.xml: forgot availability note
 
-2009-11-16 19:04  robe
+2009-11-16 19:04  Regina Obe <lr at pcorp.us>
 
-	* fix typos in ST_MakeEnvelope (at least he tries :) )
+	* [r4833] doc/reference_constructor.xml: fix typos in
+	  ST_MakeEnvelope (at least he tries :) )
 
-2009-11-16 18:46  pramsey
+2009-11-16 18:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add doco and regression tests for ST_MakeEnvelope() (#199)
+	* [r4832] doc/reference_constructor.xml, regress/regress.sql,
+	  regress/regress_expected: Add doco and regression tests for
+	  ST_MakeEnvelope() (#199)
 
-2009-11-16 18:28  pramsey
+2009-11-16 18:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_MakeEnvelope() constructor, terse function for making bbox
-	  polygons. (#199)
+	* [r4831] postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c: Add ST_MakeEnvelope() constructor,
+	  terse function for making bbox polygons. (#199)
 
-2009-11-16 13:50  robe
+2009-11-16 13:50  Regina Obe <lr at pcorp.us>
 
-	* revise to deal with boolean arguments
+	* [r4830] doc/xsl/postgis_gardentest_subset.sql.xsl: revise to deal
+	  with boolean arguments
 
-2009-11-16 12:57  robe
+2009-11-16 12:57  Regina Obe <lr at pcorp.us>
 
-	* Update geography transform description to reflect new cowboy
-	  transform hack strategy :). Need to update functions as well once
-	  Olivier has stopped kicking dust.
+	* [r4829] doc/xsl/postgis_aggs_mm.xml.xsl: Update geography
+	  transform description to reflect new cowboy transform hack
+	  strategy :). Need to update functions as well once Olivier has
+	  stopped kicking dust.
 
-2009-11-16 05:55  robe
+2009-11-16 05:55  Regina Obe <lr at pcorp.us>
 
-	* More encouragement to use GEOS 3.2 :)
+	* [r4827] doc/installation.xml: More encouragement to use GEOS 3.2
+	  :)
 
-2009-11-16 05:53  robe
+2009-11-16 05:53  Regina Obe <lr at pcorp.us>
 
-	* get rid of reference to loading geography.sql (now integrated in
-	  postgis.sql)
+	* [r4826] doc/installation.xml: get rid of reference to loading
+	  geography.sql (now integrated in postgis.sql)
 
-2009-11-16 00:28  colivier
+2009-11-16 00:28  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* revert Makefile.in reference.xml and postgis.xml to r4816. Need
+	* [r4824] doc/Makefile.in, doc/postgis.xml, doc/reference.xml:
+	  revert Makefile.in reference.xml and postgis.xml to r4816. Need
 	  to fix NewFunction reference to go further :(
 
-2009-11-16 00:27  pramsey
+2009-11-16 00:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Cowboy triumphs. (#304)
+	* [r4823] postgis/geography_measurement.c,
+	  postgis/lwgeom_transform.c: Cowboy triumphs. (#304)
 
-2009-11-15 23:13  pramsey
+2009-11-15 23:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Actually use Antarctic stereographic for antarctic points. (#304)
+	* [r4822] postgis/geography_measurement.c: Actually use Antarctic
+	  stereographic for antarctic points. (#304)
 
-2009-11-15 22:17  colivier
+2009-11-15 22:17  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add final semicolon. Remove useless copy related to reference.xml
+	* [r4821] doc/Makefile.in: Add final semicolon. Remove useless copy
+	  related to reference.xml
 
-2009-11-15 22:03  colivier
+2009-11-15 22:03  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add forgotten .xml (in pdf rule)
+	* [r4820] doc/Makefile.in: Add forgotten .xml (in pdf rule)
 
-2009-11-15 21:55  colivier
+2009-11-15 21:55  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add forgotten .xml in postgis-out rule
+	* [r4819] doc/Makefile.in: Add forgotten .xml in postgis-out rule
 
-2009-11-15 21:23  colivier
+2009-11-15 21:23  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Update Makefile rules, related to reference.xml split (r4817)
+	* [r4818] doc/Makefile.in: Update Makefile rules, related to
+	  reference.xml split (r4817)
 
-2009-11-15 20:39  colivier
+2009-11-15 20:39  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Split reference.xml on several sub files (upon sect1). Use entity
+	* [r4817] doc/postgis.xml, doc/reference.xml,
+	  doc/reference_accessor.xml, doc/reference_constructor.xml,
+	  doc/reference_editor.xml, doc/reference_exception.xml,
+	  doc/reference_lrs.xml, doc/reference_management.xml,
+	  doc/reference_measure.xml, doc/reference_misc.xml,
+	  doc/reference_operator.xml, doc/reference_output.xml,
+	  doc/reference_processing.xml, doc/reference_transaction.xml:
+	  Split reference.xml on several sub files (upon sect1). Use entity
 	  to avoid redundant compliant/support text (SFS, SQL/MM, Z/M
 	  dimensions, Curve support)
 
-2009-11-15 19:52  pramsey
+2009-11-15 19:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Handle odd ArcMap scinotation for large ints. (#38)
+	* [r4816] loader/shp2pgsql-core.c, loader/shp2pgsql.c: Handle odd
+	  ArcMap scinotation for large ints. (#38)
 
-2009-11-15 19:32  pramsey
+2009-11-15 19:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add locale handling by setting to 'C' (#303)
+	* [r4815] regress/run_test: Add locale handling by setting to 'C'
+	  (#303)
 
-2009-11-15 19:23  pramsey
+2009-11-15 19:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the _cmp and _eq methods use the same equality conditions so
-	  that
+	* [r4814] postgis/geography_btree.c: Make the _cmp and _eq methods
+	  use the same equality conditions so that
 	  indexed and unindexed answers will be the same. (#292)
 
-2009-11-14 21:14  pramsey
+2009-11-14 21:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move the polar stereographic line a little further north in
-	  bestsrid. (#304)
+	* [r4812] postgis/geography_measurement.c: Move the polar
+	  stereographic line a little further north in bestsrid. (#304)
 
-2009-11-14 03:49  robe
+2009-11-14 03:49  Regina Obe <lr at pcorp.us>
 
-	* missing ST_DWithin geography spheroid proto
+	* [r4810] doc/reference.xml: missing ST_DWithin geography spheroid
+	  proto
 
-2009-11-14 00:40  pramsey
+2009-11-14 00:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add testing and drop deprecated functions (#202)
+	* [r4806] postgis, postgis/postgis.sql.in.c,
+	  postgis/postgis_drop.sql.in.c, utils/postgis_proc_upgrade.pl: Add
+	  testing and drop deprecated functions (#202)
 
-2009-11-13 22:13  pramsey
+2009-11-13 22:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Build out version specific upgrade scripts.
+	* [r4804] postgis/Makefile.in, utils/postgis_proc_upgrade.pl: Build
+	  out version specific upgrade scripts.
 
-2009-11-13 20:04  pramsey
+2009-11-13 20:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* First baby steps towards version-specific loader
+	* [r4803] postgis/postgis.sql.in.c, postgis/sqldefines.h.in,
+	  utils/postgis_proc_upgrade.pl: First baby steps towards
+	  version-specific loader
 
-2009-11-13 15:28  robe
+2009-11-13 15:28  Regina Obe <lr at pcorp.us>
 
-	* libxml preferable
+	* [r4802] doc/release_notes.xml: libxml preferable
 
-2009-11-13 15:27  robe
+2009-11-13 15:27  Regina Obe <lr at pcorp.us>
 
-	* fix Paul's bad spelling, add KML in output list, link to what's
-	  new in PostGIS 1.5 section, GEOS 3.2 preferred
+	* [r4801] doc/release_notes.xml: fix Paul's bad spelling, add KML
+	  in output list, link to what's new in PostGIS 1.5 section, GEOS
+	  3.2 preferred
 
-2009-11-13 03:35  robe
+2009-11-13 03:35  Regina Obe <lr at pcorp.us>
 
-	* fix formatting in ST_LineCrossingDirection (replace tabs with
-	  spaces)-- show new corrected output after #272 - should be
-	  negatively symmetric fix
+	* [r4795] doc/reference.xml: fix formatting in
+	  ST_LineCrossingDirection (replace tabs with spaces)-- show new
+	  corrected output after #272 - should be negatively symmetric fix
 
-2009-11-12 19:00  pramsey
+2009-11-12 19:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Walk back function deletions of ST_ functions under types and
-	  operators, these can't be dropped during an in-place upgrade,
-	  *sigh*. (#195)
+	* [r4794] postgis/postgis.sql.in.c: Walk back function deletions of
+	  ST_ functions under types and operators, these can't be dropped
+	  during an in-place upgrade, *sigh*. (#195)
 
-2009-11-12 04:09  pramsey
+2009-11-12 04:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old version ifdefs for versions < PgSQL 8.3 (#290)
+	* [r4793] postgis/lwgeom_functions_basic.c, postgis/lwgeom_gist.c:
+	  Remove old version ifdefs for versions < PgSQL 8.3 (#290)
 
-2009-11-11 19:57  pramsey
+2009-11-11 19:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update behavior of lwgeom_same to match "orderingequals"
-	  semantics (#289)
+	* [r4789] liblwgeom/lwcollection.c, liblwgeom/lwgeom.c,
+	  regress/regress_expected: Update behavior of lwgeom_same to match
+	  "orderingequals" semantics (#289)
 
-2009-11-11 19:35  pramsey
+2009-11-11 19:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Slightly loosen equality tolerance check for point in cone...
-	  does this fix cunit regressions?
+	* [r4788] liblwgeom/lwgeodetic.c: Slightly loosen equality
+	  tolerance check for point in cone... does this fix cunit
+	  regressions?
 
-2009-11-11 19:02  pramsey
+2009-11-11 19:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Simplify code and improve consistency of linecrossing results
-	  (#272)
+	* [r4786] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h: Simplify code and improve consistency of
+	  linecrossing results (#272)
 
-2009-11-11 00:00  pramsey
+2009-11-11 00:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove GisT headers from file and set keywords.
+	* [r4784] postgis/geography_btree.c: Remove GisT headers from file
+	  and set keywords.
 
-2009-11-10 23:58  pramsey
+2009-11-10 23:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the = operator do a pure equality test
+	* [r4783] postgis/geography_btree.c: Make the = operator do a pure
+	  equality test
 
-2009-11-10 20:39  pramsey
+2009-11-10 20:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Stub implementation of ordering operators (#292)
+	* [r4779] postgis/Makefile.in, postgis/geography.sql.in.c,
+	  postgis/geography_btree.c: Stub implementation of ordering
+	  operators (#292)
 
-2009-11-10 19:30  pramsey
+2009-11-10 19:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Apply handling for EMPTY geometries to all geography functions
-	  per the DevWikiEmptyGeometry page.
+	* [r4778] liblwgeom/lwgeodetic.c, postgis/geography.h,
+	  postgis/geography.sql.in.c, postgis/geography_gist.c,
+	  postgis/geography_measurement.c: Apply handling for EMPTY
+	  geometries to all geography functions per the
+	  DevWikiEmptyGeometry page.
 
-2009-11-10 18:34  robe
+2009-11-10 18:34  Regina Obe <lr at pcorp.us>
 
-	* put logic to recognize boolean and KML text args. Exclude
-	  ST_GeomFromKML and ST_GeomFromGML from testing until crashing
-	  problem under mingw is resolved.
+	* [r4777] doc/xsl/postgis_gardentest.sql.xsl: put logic to
+	  recognize boolean and KML text args. Exclude ST_GeomFromKML and
+	  ST_GeomFromGML from testing until crashing problem under mingw is
+	  resolved.
 
-2009-11-10 12:45  robe
+2009-11-10 12:45  Regina Obe <lr at pcorp.us>
 
-	* put availability note first in what's new for 1.5. Some of the
-	  functions aren't new but support geography or have behavior
-	  change. Easier if that note comes first. Will change for prior
-	  what's new later if this looks okay.
+	* [r4774] doc/xsl/postgis_aggs_mm.xml.xsl: put availability note
+	  first in what's new for 1.5. Some of the functions aren't new but
+	  support geography or have behavior change. Easier if that note
+	  comes first. Will change for prior what's new later if this looks
+	  okay.
 
-2009-11-10 12:18  robe
+2009-11-10 12:18  Regina Obe <lr at pcorp.us>
 
-	* using (T) to denote Paul's transform hacks and noting what that
-	  (T) means. Will eventually use to generate super duper function
-	  compare matrix :)
+	* [r4773] doc/xsl/postgis_aggs_mm.xml.xsl: using (T) to denote
+	  Paul's transform hacks and noting what that (T) means. Will
+	  eventually use to generate super duper function compare matrix :)
 
-2009-11-10 12:13  robe
+2009-11-10 12:13  Regina Obe <lr at pcorp.us>
 
-	* Put in ST_Intersection proto for geography
+	* [r4772] doc/reference.xml: Put in ST_Intersection proto for
+	  geography
 
-2009-11-10 12:08  robe
+2009-11-10 12:08  Regina Obe <lr at pcorp.us>
 
-	* add ST_Intersects proto for geography
+	* [r4771] doc/reference.xml: add ST_Intersects proto for geography
 
-2009-11-10 11:57  robe
+2009-11-10 11:57  Regina Obe <lr at pcorp.us>
 
-	* Add ST_GeomFromKML, add some grammar corrections to
-	  ST_GeomFromGML
+	* [r4770] doc/reference.xml: Add ST_GeomFromKML, add some grammar
+	  corrections to ST_GeomFromGML
 
-2009-11-08 19:05  colivier
+2009-11-08 19:05  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Initial version of ST_GeomFromKML function and related units
-	  tests
+	* [r4769] postgis/Makefile.in, postgis/lwgeom_in_kml.c,
+	  postgis/postgis.sql.in.c, regress/Makefile.in,
+	  regress/in_kml.sql, regress/in_kml_expected: Initial version of
+	  ST_GeomFromKML function and related units tests
 
-2009-11-08 19:02  colivier
+2009-11-08 19:02  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* remove an unused var. minor comment change
+	* [r4768] postgis/lwgeom_in_gml.c: remove an unused var. minor
+	  comment change
 
-2009-11-08 06:42  colivier
+2009-11-08 06:42  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Complete ST_GeomFromGML documentation. Add ST_GMLToSQL
-	  documentation entry. (Please tks to read back as my english
-	  grammar is far to be perfect)
+	* [r4767] doc/reference.xml: Complete ST_GeomFromGML documentation.
+	  Add ST_GMLToSQL documentation entry. (Please tks to read back as
+	  my english grammar is far to be perfect)
 
-2009-11-07 16:49  pramsey
+2009-11-07 16:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove TODO items that have actually been done.
+	* [r4766] TODO: Remove TODO items that have actually been done.
 
-2009-11-07 16:17  pramsey
+2009-11-07 16:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the configure-time test for PgSQL version check for 8.3+
-	  (#290)
+	* [r4765] configure.ac: Make the configure-time test for PgSQL
+	  version check for 8.3+ (#290)
 
-2009-11-07 01:47  pramsey
+2009-11-07 01:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Drop database when function loads fail in regression tests. (#77)
+	* [r4764] regress/run_test: Drop database when function loads fail
+	  in regression tests. (#77)
 
-2009-11-07 01:31  pramsey
+2009-11-07 01:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make ~= be a bounding box only operator and upgrade ST_Equals()
-	  and ST_OrderingEquals() to match the new behavior. Update
-	  regression tests to match new behavior. (#282) See also #289 for
-	  an odd quirk discovered while updating regression tests.
+	* [r4763] postgis/lwgeom_gist.c, postgis/postgis.sql.in.c,
+	  postgis/sqlmm.sql.in.c, regress/regress.sql,
+	  regress/regress_expected: Make ~= be a bounding box only operator
+	  and upgrade ST_Equals() and ST_OrderingEquals() to match the new
+	  behavior. Update regression tests to match new behavior. (#282)
+	  See also #289 for an odd quirk discovered while updating
+	  regression tests.
 
-2009-11-07 00:33  pramsey
+2009-11-07 00:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add text wrappers to functions we commonly expect people to call
-	  with text arguments but expect implicit casting to geometry.
-	  (#252)
+	* [r4762] postgis/geography.sql.in.c: Add text wrappers to
+	  functions we commonly expect people to call with text arguments
+	  but expect implicit casting to geometry. (#252)
 
-2009-11-07 00:12  pramsey
+2009-11-07 00:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for point-on-vertex case of st_covers (#271)
+	* [r4761] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/lwgeodetic.c: Fix for
+	  point-on-vertex case of st_covers (#271)
 
-2009-11-06 22:55  pramsey
+2009-11-06 22:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Utility to read svn revision numbers from SQL scripts.
+	* [r4760] utils/read_scripts_version.pl: Utility to read svn
+	  revision numbers from SQL scripts.
 
-2009-11-06 22:49  colivier
+2009-11-06 22:49  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* finalize Xlink support (GML SF-2 fully compliant). Fix typo on
-	  PointProperty/Point. Few comments and style corrections. Update
-	  unit tests.
+	* [r4759] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: finalize Xlink support (GML SF-2 fully
+	  compliant). Fix typo on PointProperty/Point. Few comments and
+	  style corrections. Update unit tests.
 
-2009-11-06 21:45  pramsey
+2009-11-06 21:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make geography.sql part of the standard postgis.sql build.
+	* [r4758] postgis/Makefile.in, postgis/postgis.sql.in.c: Make
+	  geography.sql part of the standard postgis.sql build.
 
-2009-11-06 20:46  pramsey
+2009-11-06 20:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add costs to CPU intensive C functions and update doco to ensure
-	  8.3 is the referenced minimum PgSQL version. (#230)
+	* [r4757] README.postgis, doc/installation.xml,
+	  doc/release_notes.xml, postgis/geography.sql.in.c,
+	  postgis/postgis.sql.in.c: Add costs to CPU intensive C functions
+	  and update doco to ensure 8.3 is the referenced minimum PgSQL
+	  version. (#230)
 
-2009-11-06 17:30  pramsey
+2009-11-06 17:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update documentation for those functions affected by RFC3. They
-	  are all internal functions that are going to disappear in 2.0,
-	  might be better to simply remove them, but for now...
+	* [r4755] doc/reference.xml: Update documentation for those
+	  functions affected by RFC3. They are all internal functions that
+	  are going to disappear in 2.0, might be better to simply remove
+	  them, but for now...
 
-2009-11-05 20:20  pramsey
+2009-11-05 20:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for #157, ST_GeometryType output doesn't correctly identify
-	  curved geometries
+	* [r4752] postgis/lwgeom_ogc.c, postgis/postgis.sql.in.c: Fix for
+	  #157, ST_GeometryType output doesn't correctly identify curved
+	  geometries
 
-2009-11-05 19:29  pramsey
+2009-11-05 19:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for new LRS regression (#283)
+	* [r4751] regress/regress_lrs_expected: Fix for new LRS regression
+	  (#283)
 
-2009-11-05 19:04  pramsey
+2009-11-05 19:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Implement RFC3 (#195)
+	* [r4750] postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c, postgis/sqlmm.sql.in.c,
+	  regress/regress.sql, regress/regress_expected,
+	  regress/regress_ogc.sql, regress/regress_ogc_expected: Implement
+	  RFC3 (#195)
 
-2009-11-05 04:55  pramsey
+2009-11-05 04:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Some initializations and a null pointer avoidance test (#273)
+	* [r4749] postgis/lwgeom_in_gml.c: Some initializations and a null
+	  pointer avoidance test (#273)
 
-2009-11-05 00:58  pramsey
+2009-11-05 00:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_Intersection() and ST_Intersects() for geography.
+	* [r4748] postgis/geography.sql.in.c, postgis/lwgeom_geos.c: Add
+	  ST_Intersection() and ST_Intersects() for geography.
 
-2009-11-05 00:43  pramsey
+2009-11-05 00:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove createdb_opt lines from psql and createlang calls. (#228)
+	* [r4746] utils/postgis_restore.pl: Remove createdb_opt lines from
+	  psql and createlang calls. (#228)
 
-2009-11-05 00:37  pramsey
+2009-11-05 00:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make non-M attempts to run LRS functions error out instead of
-	  return NULL (#113)
+	* [r4745] postgis/lwgeom_functions_lrs.c: Make non-M attempts to
+	  run LRS functions error out instead of return NULL (#113)
 
-2009-11-04 23:51  pramsey
+2009-11-04 23:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for #273? Some unitialized variables may have been causing
-	  problems. Initializing them fixed this problem for me.
+	* [r4744] postgis/lwgeom_in_gml.c: Fix for #273? Some unitialized
+	  variables may have been causing problems. Initializing them fixed
+	  this problem for me.
 
-2009-11-04 23:03  pramsey
+2009-11-04 23:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix hausdorf crasher (#279)
+	* [r4743] postgis/lwgeom_geos.c: Fix hausdorf crasher (#279)
 
-2009-11-04 21:19  colivier
+2009-11-04 21:19  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* revert wrong commit (r4741) on wktparse.lex file
+	* [r4742] liblwgeom/wktparse.lex: revert wrong commit (r4741) on
+	  wktparse.lex file
 
-2009-11-04 21:10  colivier
+2009-11-04 21:10  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Allow a double to not have digit after dot (related to #175).
-	  Update unit test case
+	* [r4741] liblwgeom/wktparse.lex, postgis/lwgeom_in_gml.c,
+	  regress/in_gml.sql, regress/in_gml_expected: Allow a double to
+	  not have digit after dot (related to #175). Update unit test case
 
-2009-11-04 20:35  pramsey
+2009-11-04 20:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for #175, numbers with a terminal decimal won't parse.
+	* [r4739] liblwgeom/lex.yy.c, liblwgeom/wktparse.lex: Fix for #175,
+	  numbers with a terminal decimal won't parse.
 
-2009-11-04 18:59  robe
+2009-11-04 18:59  Regina Obe <lr at pcorp.us>
 
-	* amend ST_Length to include use_spheroid proto and amend examples
-	  to state new default behavior
+	* [r4737] doc/reference.xml: amend ST_Length to include
+	  use_spheroid proto and amend examples to state new default
+	  behavior
 
-2009-11-04 18:47  pramsey
+2009-11-04 18:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Allow ~= operator to recheck, per #253.
+	* [r4736] postgis/lwgeom_gist.c: Allow ~= operator to recheck, per
+	  #253.
 
-2009-11-04 11:57  robe
+2009-11-04 11:57  Regina Obe <lr at pcorp.us>
 
-	* type correction in ST_BuildArea output. Add additional proto to
-	  ST_Area and correct the example to show the new spheroid
-	  measurement default
+	* [r4735] doc/reference.xml: type correction in ST_BuildArea
+	  output. Add additional proto to ST_Area and correct the example
+	  to show the new spheroid measurement default
 
-2009-11-04 09:53  colivier
+2009-11-04 09:53  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Give priority to gml namespace attribute if any. Apply a fix on
-	  ring incrementation (Surface/interior)
+	* [r4734] postgis/lwgeom_in_gml.c: Give priority to gml namespace
+	  attribute if any. Apply a fix on ring incrementation
+	  (Surface/interior)
 
-2009-11-04 03:27  pramsey
+2009-11-04 03:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change ST_Area(geog) to defaul to spheroid calculation.
+	* [r4733] postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c: Change ST_Area(geog) to defaul
+	  to spheroid calculation.
 
-2009-11-04 00:13  pramsey
+2009-11-04 00:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove unit test failure cases in 32-bit architectures. Now have
+	* [r4732] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c:
+	  Remove unit test failure cases in 32-bit architectures. Now have
 	  to test correctness
 	  of algorithms on test data in 64-bit environment.
 
-2009-11-03 22:26  colivier
+2009-11-03 22:26  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Initial support of Xlink. Add related units tests. Few cleaning
+	* [r4731] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Initial support of Xlink. Add related
+	  units tests. Few cleaning
 
-2009-11-03 22:24  colivier
+2009-11-03 22:24  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add xpath headers support for libxml2
+	* [r4730] configure.ac: Add xpath headers support for libxml2
 
-2009-11-03 21:24  pramsey
+2009-11-03 21:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* File headers and property setting.
+	* [r4729] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwspheroid.c: File headers and property setting.
 
-2009-11-03 21:16  pramsey
+2009-11-03 21:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in handlers to avoid sheroid area cases we currently cannot
-	  handle.
+	* [r4728] postgis/geography_measurement.c: Add in handlers to avoid
+	  sheroid area cases we currently cannot handle.
 
-2009-11-03 21:13  pramsey
+2009-11-03 21:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Slight change in ST_Area wording.
+	* [r4727] doc/reference.xml: Slight change in ST_Area wording.
 
-2009-11-03 15:32  robe
+2009-11-03 15:32  Regina Obe <lr at pcorp.us>
 
-	* amend distance proto and example -- now we default to spheroid
+	* [r4726] doc/reference.xml: amend distance proto and example --
+	  now we default to spheroid
 
-2009-11-03 13:36  colivier
+2009-11-03 13:36  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add namespace support. Add pointProperty and pointRep support.
-	  Fix pos and posList spaces inside coordinates issue. Comments
-	  update. Update unit tests
+	* [r4725] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Add namespace support. Add pointProperty
+	  and pointRep support. Fix pos and posList spaces inside
+	  coordinates issue. Comments update. Update unit tests
 
-2009-11-03 10:03  robe
+2009-11-03 10:03  Regina Obe <lr at pcorp.us>
 
-	* get rid of extra para tag
+	* [r4724] doc/reference.xml: get rid of extra para tag
 
-2009-11-03 09:47  robe
+2009-11-03 09:47  Regina Obe <lr at pcorp.us>
 
-	* more typo fixing
+	* [r4723] doc/reference.xml: more typo fixing
 
-2009-11-03 09:33  robe
+2009-11-03 09:33  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r4722] doc/reference.xml: fix typo
 
-2009-11-03 05:19  robe
+2009-11-03 05:19  Regina Obe <lr at pcorp.us>
 
-	* Document ST_Buffer for geography and caveats
+	* [r4721] doc/reference.xml: Document ST_Buffer for geography and
+	  caveats
 
-2009-11-03 02:58  pramsey
+2009-11-03 02:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-enable other geodetic unit tests and remove Java code block.
+	* [r4720] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwspheroid.c:
+	  Re-enable other geodetic unit tests and remove Java code block.
 
-2009-11-03 00:36  pramsey
+2009-11-03 00:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* First cut of ST_Area(geography) on spheroid. Currently not
-	  default, use ST_Area(geog, true) to enable it. Beware of
-	  limitations over poles and eequator.
+	* [r4719] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/g_box.c,
+	  liblwgeom/libgeom.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, liblwgeom/lwspheroid.c,
+	  postgis/geography.h, postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c: First cut of ST_Area(geography)
+	  on spheroid. Currently not default, use ST_Area(geog, true) to
+	  enable it. Beware of limitations over poles and eequator.
 
-2009-11-02 12:05  robe
+2009-11-02 12:05  Regina Obe <lr at pcorp.us>
 
-	* minor corrections to ST_distance_sphere/spheroid descriptions
+	* [r4717] doc/reference.xml: minor corrections to
+	  ST_distance_sphere/spheroid descriptions
 
-2009-11-01 22:31  robe
+2009-11-01 22:31  Regina Obe <lr at pcorp.us>
 
-	* amend doc for st_distance_sphere, st_distance_spheroid to reflect
-	  expanded support.
+	* [r4716] doc/reference.xml: amend doc for st_distance_sphere,
+	  st_distance_spheroid to reflect expanded support.
 
-2009-10-31 05:05  pramsey
+2009-10-31 05:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make distance_spher(oid) functions a little more type safe.
+	* [r4713] postgis/lwgeom_spheroid.c: Make distance_spher(oid)
+	  functions a little more type safe.
 
-2009-10-31 04:53  pramsey
+2009-10-31 04:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update distance_sphere and distance_spheroid to back onto new
+	* [r4712] postgis/lwgeom_spheroid.c, postgis/postgis.sql.in.c:
+	  Update distance_sphere and distance_spheroid to back onto new
 	  geodetic handlers and support generic geometry.
 
-2009-10-31 00:10  pramsey
+2009-10-31 00:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Tighten up geometry->geography case (#265)
+	* [r4711] postgis/geography_inout.c: Tighten up geometry->geography
+	  case (#265)
 
-2009-10-31 00:01  pramsey
+2009-10-31 00:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_Length() implementation on spheroid and rationalize the
-	  sphere/spheroid implementations into
+	* [r4710] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/libgeom.h,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, liblwgeom/lwspheroid.c,
+	  liblwgeom/lwspheroid.h, postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c: Add ST_Length() implementation
+	  on spheroid and rationalize the sphere/spheroid implementations
+	  into
 	  a smaller shared set of functions.
 
-2009-10-30 20:45  pramsey
+2009-10-30 20:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in spheroid calculations for ST_Distance and ST_DWithin.
+	* [r4709] liblwgeom/libgeom.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwspheroid.c, liblwgeom/lwspheroid.h,
+	  postgis/geography.h, postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c: Add in spheroid calculations for
+	  ST_Distance and ST_DWithin.
 
-2009-10-30 19:00  robe
+2009-10-30 19:00  Regina Obe <lr at pcorp.us>
 
-	* Add link to new compatibility matrix
+	* [r4708] doc/installation.xml: Add link to new compatibility
+	  matrix
 
-2009-10-29 20:31  colivier
+2009-10-29 20:31  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Change dimension to srsDimension (GML 3.1.1)
+	* [r4705] postgis/lwgeom_in_gml.c, regress/in_gml.sql: Change
+	  dimension to srsDimension (GML 3.1.1)
 
-2009-10-29 20:21  colivier
+2009-10-29 20:21  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Change attribute dimension into srsDimension (GML 3.1.1), cf #276
+	* [r4704] postgis/lwgeom_gml.c, regress/gml_expected: Change
+	  attribute dimension into srsDimension (GML 3.1.1), cf #276
 
-2009-10-29 19:53  pramsey
+2009-10-29 19:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor changes for numerical stability. Remove logging.
+	* [r4702] liblwgeom/lwspheroid.c: Minor changes for numerical
+	  stability. Remove logging.
 
-2009-10-29 19:41  pramsey
+2009-10-29 19:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Increase precision of minor axis constant.
+	* [r4701] postgis/geography.h: Increase precision of minor axis
+	  constant.
 
-2009-10-29 19:24  pramsey
+2009-10-29 19:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Spheroid distance calculation between points added.
+	* [r4700] liblwgeom/Makefile.in, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, liblwgeom/lwspheroid.c,
+	  liblwgeom/lwspheroid.h: Spheroid distance calculation between
+	  points added.
 
-2009-10-29 18:42  colivier
+2009-10-29 18:42  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add mixed GML srs support. Add ability to deal with lat/lon issue
-	  in GML 3. Fix GML collection units tests. Update units tests
+	* [r4699] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Add mixed GML srs support. Add ability
+	  to deal with lat/lon issue in GML 3. Fix GML collection units
+	  tests. Update units tests
 
-2009-10-29 18:40  colivier
+2009-10-29 18:40  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Expose transform_point, make_project and GetProj4StringSPI.
+	* [r4698] postgis/lwgeom_transform.c, postgis/lwgeom_transform.h:
+	  Expose transform_point, make_project and GetProj4StringSPI.
 	  Creation of lwgem_transform.h
 
-2009-10-29 14:21  colivier
+2009-10-29 14:21  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Update unit test result, related to error message change (r4662
-	  in lwgeom_transform.c)
+	* [r4697] regress/kml_expected: Update unit test result, related to
+	  error message change (r4662 in lwgeom_transform.c)
 
-2009-10-29 14:08  colivier
+2009-10-29 14:08  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add attribute dimension in gml:pos and gml:posList. Fix
-	  geometrycollection invalid GML output. Update units test. Cf #276
+	* [r4696] postgis/lwgeom_gml.c, regress/gml.sql,
+	  regress/gml_expected: Add attribute dimension in gml:pos and
+	  gml:posList. Fix geometrycollection invalid GML output. Update
+	  units test. Cf #276
 
-2009-10-28 23:05  pramsey
+2009-10-28 23:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Note why the penalty function was changed.
+	* [r4694] postgis/geography_gist.c: Note why the penalty function
+	  was changed.
 
-2009-10-28 23:02  pramsey
+2009-10-28 23:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove overly clever penalty calculation and improve index
-	  structure a lot!
+	* [r4693] postgis/geography_gist.c: Remove overly clever penalty
+	  calculation and improve index structure a lot!
 
-2009-10-28 18:38  pramsey
+2009-10-28 18:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fill in actual error condition
+	* [r4692] postgis/geography_gist.c: Fill in actual error condition
 
-2009-10-28 18:20  pramsey
+2009-10-28 18:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix error in picksplit routine, perhaps will fix balance problem.
+	* [r4691] postgis/geography_gist.c,
+	  postgis/geography_measurement.c: Fix error in picksplit routine,
+	  perhaps will fix balance problem.
 
-2009-10-28 12:13  robe
+2009-10-28 12:13  Regina Obe <lr at pcorp.us>
 
-	* slight attribution update
+	* [r4690] doc/introduction.xml: slight attribution update
 
-2009-10-28 11:56  robe
+2009-10-28 11:56  Regina Obe <lr at pcorp.us>
 
-	* minor update to release notes (copying content from branch 1.3
-	  not in trunk)
+	* [r4689] doc/release_notes.xml: minor update to release notes
+	  (copying content from branch 1.3 not in trunk)
 
-2009-10-28 11:47  robe
+2009-10-28 11:47  Regina Obe <lr at pcorp.us>
 
-	* switch pretty tag back to credits -- already linked in
-	  reference.xml
+	* [r4687] doc/introduction.xml: switch pretty tag back to credits
+	  -- already linked in reference.xml
 
-2009-10-28 11:40  robe
+2009-10-28 11:40  Regina Obe <lr at pcorp.us>
 
-	* update credits to include breakout of PSC and bump up people with
-	  commit access and currently committing work
+	* [r4686] doc/introduction.xml: update credits to include breakout
+	  of PSC and bump up people with commit access and currently
+	  committing work
 
-2009-10-28 11:05  robe
+2009-10-28 11:05  Regina Obe <lr at pcorp.us>
 
-	* copy release notes text from branch 1.4 which is strangely more
-	  up to date.
+	* [r4684] doc/release_notes.xml: copy release notes text from
+	  branch 1.4 which is strangely more up to date.
 
-2009-10-28 10:58  robe
+2009-10-28 10:58  Regina Obe <lr at pcorp.us>
 
-	* correct links to postgis bug tracker and subversion repository.
-	  Also amend the release_notes section to reflect newer version
-	  changes
+	* [r4683] doc/release_notes.xml, doc/reporting.xml: correct links
+	  to postgis bug tracker and subversion repository. Also amend the
+	  release_notes section to reflect newer version changes
 
-2009-10-27 21:39  colivier
+2009-10-27 21:39  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix huge number overflow in export functions, cf #277
+	* [r4682] postgis/lwgeom_export.h, postgis/lwgeom_geojson.c,
+	  postgis/lwgeom_gml.c, postgis/lwgeom_kml.c, postgis/lwgeom_svg.c:
+	  Fix huge number overflow in export functions, cf #277
 
-2009-10-24 16:37  colivier
+2009-10-24 16:37  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add multi data coordinates support. Add unit test case data_1
+	* [r4680] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Add multi data coordinates support. Add
+	  unit test case data_1
 
-2009-10-24 16:35  colivier
+2009-10-24 16:35  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add ptarray_merge function
+	* [r4679] liblwgeom/liblwgeom.h, liblwgeom/ptarray.c: Add
+	  ptarray_merge function
 
-2009-10-23 23:16  pramsey
+2009-10-23 23:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update personal information.
+	* [r4677] doc/postgis.xml: Update personal information.
 
-2009-10-23 16:01  robe
+2009-10-23 16:01  Regina Obe <lr at pcorp.us>
 
-	* typo in example
+	* [r4676] doc/reference.xml: typo in example
 
-2009-10-23 15:51  robe
+2009-10-23 15:51  Regina Obe <lr at pcorp.us>
 
-	* put in availability note for ST_GeomFromGML, link back from
-	  ST_AsGML, note about libxml2 required
+	* [r4675] doc/reference.xml: put in availability note for
+	  ST_GeomFromGML, link back from ST_AsGML, note about libxml2
+	  required
 
-2009-10-23 13:26  robe
+2009-10-23 13:26  Regina Obe <lr at pcorp.us>
 
-	* Preliminary documentation for ST_GeomFromGML and logic to support
-	  gml input parameters
+	* [r4672] doc/reference.xml, doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl: Preliminary
+	  documentation for ST_GeomFromGML and logic to support gml input
+	  parameters
 
-2009-10-22 14:08  colivier
+2009-10-22 14:08  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Use ptarray_isclosed3d to check if 3D rings are closed also on Z.
-	  Update units tests cases
+	* [r4671] postgis/lwgeom_in_gml.c, regress/in_gml.sql,
+	  regress/in_gml_expected: Use ptarray_isclosed3d to check if 3D
+	  rings are closed also on Z. Update units tests cases
 
-2009-10-22 14:06  colivier
+2009-10-22 14:06  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add ptarray_isclosed3d function
+	* [r4670] liblwgeom/liblwgeom.h, liblwgeom/ptarray.c: Add
+	  ptarray_isclosed3d function
 
-2009-10-20 15:30  robe
+2009-10-20 15:30  Regina Obe <lr at pcorp.us>
 
-	* fix typo in libxml deactivated notice
+	* [r4669] configure.ac: fix typo in libxml deactivated notice
 
-2009-10-20 13:07  colivier
+2009-10-20 13:07  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add HAVE_LIBXML2
+	* [r4668] postgis_config.h.in: Add HAVE_LIBXML2
 
-2009-10-20 12:54  colivier
+2009-10-20 12:54  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add initial version of GeomFromGML function, and units tests
-	  cases.
+	* [r4667] postgis/Makefile.in, postgis/lwgeom_in_gml.c,
+	  postgis/postgis.sql.in.c, regress/Makefile.in,
+	  regress/in_gml.sql, regress/in_gml_expected: Add initial version
+	  of GeomFromGML function, and units tests cases.
 
-2009-10-20 12:51  colivier
+2009-10-20 12:51  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add libxml2 support (needed by GeomFromGML)
+	* [r4666] configure.ac, postgis/sqldefines.h.in: Add libxml2
+	  support (needed by GeomFromGML)
 
-2009-10-19 12:53  robe
+2009-10-19 12:53  Regina Obe <lr at pcorp.us>
 
-	* update to include ST_Length for geography
+	* [r4665] doc/reference.xml: update to include ST_Length for
+	  geography
 
-2009-10-19 05:05  pramsey
+2009-10-19 05:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add _ST_BestSRID(Geography) utility function to support
+	* [r4664] postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c, postgis/lwgeom_transform.c: Add
+	  _ST_BestSRID(Geography) utility function to support
 	  ST_Buffer(geography, radius) hack that casts back and forth to
 	  geometry.
 
-2009-10-18 21:15  pramsey
+2009-10-18 21:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in support for magic srid numbers that will always be
-	  available for UTM WGS84 and polar stereography. Will be used in
-	  wrappers that allow geometry functions to be applied to
-	  geography.
+	* [r4663] postgis/lwgeom_transform.c: Add in support for magic srid
+	  numbers that will always be available for UTM WGS84 and polar
+	  stereography. Will be used in wrappers that allow geometry
+	  functions to be applied to geography.
 
-2009-10-18 04:19  pramsey
+2009-10-18 04:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Length(geography) per #266
+	* [r4662] liblwgeom/libgeom.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, postgis/geography.sql.in.c,
+	  postgis/geography_measurement.c: ST_Length(geography) per #266
 
-2009-10-16 23:30  pramsey
+2009-10-16 23:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Muck with index logging code.
+	* [r4661] postgis/geography_gist.c, postgis/lwgeom_gist.c: Muck
+	  with index logging code.
 
-2009-10-16 16:33  mcayland
+2009-10-16 16:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix the geography <column> && <column> selectivity code. Now the
-	  answers between geometry and geography are reasonably similar :)
+	* [r4660] postgis/geography_estimate.c: Fix the geography <column>
+	  && <column> selectivity code. Now the answers between geometry
+	  and geography are reasonably similar :)
 
-2009-10-16 16:31  mcayland
+2009-10-16 16:31  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit a first-hack attempt at a script to test the geography
-	  join estimation code.
+	* [r4659] utils/test_geography_joinestimation.pl: Commit a
+	  first-hack attempt at a script to test the geography join
+	  estimation code.
 
-2009-10-16 16:23  mcayland
+2009-10-16 16:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Change "Mixed Geometry Types" message into a warning rather than
-	  an error in the existing join estimation test script.
+	* [r4658] utils/test_joinestimation.pl: Change "Mixed Geometry
+	  Types" message into a warning rather than an error in the
+	  existing join estimation test script.
 
-2009-10-16 13:33  robe
+2009-10-16 13:33  Regina Obe <lr at pcorp.us>
 
-	* revise to test && against table and also put in some floating
-	  points to make tests more interesting
+	* [r4657] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl: revise to test &&
+	  against table and also put in some floating points to make tests
+	  more interesting
 
-2009-10-16 13:01  robe
+2009-10-16 13:01  Regina Obe <lr at pcorp.us>
 
-	* #269 get rid of geography -> geometry implicit to make it an
-	  explicit cast
+	* [r4656] postgis/geography.sql.in.c: #269 get rid of geography ->
+	  geometry implicit to make it an explicit cast
 
-2009-10-16 09:37  strk
+2009-10-16 09:37  Sandro Santilli <strk at keybit.net>
 
-	* Tell what the default is for -N in help output and README file
+	* [r4655] loader/README.shp2pgsql, loader/shp2pgsql.c: Tell what
+	  the default is for -N in help output and README file
 
-2009-10-15 17:50  mcayland
+2009-10-15 17:50  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update the TYPMOD_SET_* macros in the same way as for the
-	  FLAGS_SET_* macros earlier, so that they actually change the
-	  variable they reference.
+	* [r4654] liblwgeom/cunit/cu_libgeom.c, liblwgeom/libgeom.h,
+	  postgis/geography_inout.c: Update the TYPMOD_SET_* macros in the
+	  same way as for the FLAGS_SET_* macros earlier, so that they
+	  actually change the variable they reference.
 
-2009-10-15 17:45  mcayland
+2009-10-15 17:45  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add (slightly hacked) version of geography selectivity test
-	  script to the repo.
+	* [r4653] utils/test_geography_estimation.pl: Add (slightly hacked)
+	  version of geography selectivity test script to the repo.
 
-2009-10-15 17:44  mcayland
+2009-10-15 17:44  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix test_estimation.pl script so it doesn't require oids - no-one
-	  uses these in the 21st century...
+	* [r4652] utils/test_estimation.pl: Fix test_estimation.pl script
+	  so it doesn't require oids - no-one uses these in the 21st
+	  century...
 
-2009-10-15 15:35  mcayland
+2009-10-15 15:35  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Alter the FLAGS_SET_* macros so that they actually update the
-	  specified flag variable, rather than just returning the new value
-	  of the flag variable.
+	* [r4651] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_libgeom.c, liblwgeom/g_coord.c,
+	  liblwgeom/g_serialized.c, liblwgeom/g_util.c,
+	  liblwgeom/libgeom.h, postgis/geography_estimate.c,
+	  postgis/geography_gist.c, postgis/geography_inout.c: Alter the
+	  FLAGS_SET_* macros so that they actually update the specified
+	  flag variable, rather than just returning the new value of the
+	  flag variable.
 
-2009-10-15 14:48  mcayland
+2009-10-15 14:48  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for column intersection geography queries sometimes returning
-	  "lwgeom_get_gbox_geodetic: non-geodetic gbox provided" during
-	  execution - a missing initialisation bug.
+	* [r4650] postgis/geography_estimate.c: Fix for column intersection
+	  geography queries sometimes returning "lwgeom_get_gbox_geodetic:
+	  non-geodetic gbox provided" during execution - a missing
+	  initialisation bug.
 
-2009-10-14 16:57  mcayland
+2009-10-14 16:57  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Re-enable ANALYZE hook, now that it doesn't crash upon loading
-	  Paul's test dataset anymore.
+	* [r4649] postgis/geography.sql.in.c: Re-enable ANALYZE hook, now
+	  that it doesn't crash upon loading Paul's test dataset anymore.
 
-2009-10-14 16:22  mcayland
+2009-10-14 16:22  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Don't use the default (integer) version of abs() during floating
-	  point calculations...
+	* [r4648] postgis/geography_estimate.c: Don't use the default
+	  (integer) version of abs() during floating point calculations...
 
-2009-10-13 19:50  pramsey
+2009-10-13 19:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Much better fix for NaN area problem.
+	* [r4647] liblwgeom/lwgeodetic.c: Much better fix for NaN area
+	  problem.
 
-2009-10-13 19:39  pramsey
+2009-10-13 19:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* HAck fix for NaN areas.
+	* [r4646] liblwgeom/lwgeodetic.c: HAck fix for NaN areas.
 
-2009-10-11 02:03  pramsey
+2009-10-11 02:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Don't copy bboxes from lwgeom to gserialized when working with
-	  geodetics. (#263)
+	* [r4640] liblwgeom/g_serialized.c: Don't copy bboxes from lwgeom
+	  to gserialized when working with geodetics. (#263)
 
-2009-10-10 16:59  robe
+2009-10-10 16:59  Regina Obe <lr at pcorp.us>
 
-	* update to include ST_Covers geography
+	* [r4639] doc/reference.xml: update to include ST_Covers geography
 
-2009-10-10 15:43  robe
+2009-10-10 15:43  Regina Obe <lr at pcorp.us>
 
-	* update ST_Area with geography examples
+	* [r4638] doc/reference.xml: update ST_Area with geography examples
 
-2009-10-10 03:18  pramsey
+2009-10-10 03:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add geometry(geography) case per #257
+	* [r4637] postgis/geography.sql.in.c, postgis/geography_inout.c:
+	  Add geometry(geography) case per #257
 
-2009-10-10 00:08  pramsey
+2009-10-10 00:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix ST_Area(geography) calculation to be more... correct.
+	* [r4636] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h: Fix
+	  ST_Area(geography) calculation to be more... correct.
 
-2009-10-09 19:23  pramsey
+2009-10-09 19:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add implementation for ST_Covers(geography, geography) in
+	* [r4635] liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeom.c, liblwgeom/measures.c,
+	  postgis/geography.sql.in.c, postgis/geography_measurement.c,
+	  postgis/lwgeom_dump.c, postgis/lwgeom_functions_basic.c: Add
+	  implementation for ST_Covers(geography, geography) in
 	  point-in-polygon case.
 
-2009-10-09 18:07  pramsey
+2009-10-09 18:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix incorrect use of flags macros
+	* [r4634] liblwgeom/g_box.c: Fix incorrect use of flags macros
 
-2009-10-09 16:51  pramsey
+2009-10-09 16:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* One more fix for #260.
+	* [r4633] liblwgeom/g_box.c: One more fix for #260.
 
-2009-10-09 16:07  pramsey
+2009-10-09 16:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for #261 (spurious dimension difference errors)
+	* [r4632] liblwgeom/g_box.c: Fix for #261 (spurious dimension
+	  difference errors)
 
-2009-10-09 10:39  robe
+2009-10-09 10:39  Regina Obe <lr at pcorp.us>
 
-	* Put in proto for ST_Area(geography). Still need to put in example
-	  but my ST_Area is non-existent will double-check why.
+	* [r4631] doc/reference.xml: Put in proto for ST_Area(geography).
+	  Still need to put in example but my ST_Area is non-existent will
+	  double-check why.
 
-2009-10-09 04:16  pramsey
+2009-10-09 04:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_PointOutside() function for testing purposes.
+	* [r4630] liblwgeom/libgeom.h, liblwgeom/lwgeodetic.c,
+	  postgis/geography.sql.in.c, postgis/geography_measurement.c: Add
+	  ST_PointOutside() function for testing purposes.
 
-2009-10-08 19:40  pramsey
+2009-10-08 19:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make geographic point initialization slightly more efficient
-	  (avoid doing it twice for each vertex)
+	* [r4629] liblwgeom/lwgeodetic.c: Make geographic point
+	  initialization slightly more efficient (avoid doing it twice for
+	  each vertex)
 
-2009-10-08 18:59  pramsey
+2009-10-08 18:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make error messages slightly less opaque
+	* [r4628] postgis/geography_measurement.c: Make error messages
+	  slightly less opaque
 
-2009-10-08 18:41  pramsey
+2009-10-08 18:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Comment out analyze argument in geometry type creation -- it is
-	  causing a crash for me when loading my test data tables.
+	* [r4627] postgis/geography.sql.in.c: Comment out analyze argument
+	  in geometry type creation -- it is causing a crash for me when
+	  loading my test data tables.
 
-2009-10-08 17:10  pramsey
+2009-10-08 17:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change radius figure to common average.
+	* [r4626] postgis/geography.h: Change radius figure to common
+	  average.
 
-2009-10-08 17:04  pramsey
+2009-10-08 17:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reformat SQL lines with tabs
+	* [r4625] postgis/geography.sql.in.c: Reformat SQL lines with tabs
 
-2009-10-08 11:43  robe
+2009-10-08 11:43  Regina Obe <lr at pcorp.us>
 
-	* revise readme to include link to instructions for garden test
+	* [r4624] doc/README: revise readme to include link to instructions
+	  for garden test
 
-2009-10-08 11:40  robe
+2009-10-08 11:40  Regina Obe <lr at pcorp.us>
 
-	* Revise to have function list past in as arg to xsltproc
+	* [r4623] doc/xsl/postgis_gardentest_subset.sql.xsl: Revise to have
+	  function list past in as arg to xsltproc
 
-2009-10-08 10:29  mcayland
+2009-10-08 10:29  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit first attempt at working geography index selectivity - the
-	  conversion should be there, however it needs some kind of test
-	  harness to verify some of the results.
+	* [r4622] postgis/geography_estimate.c: Commit first attempt at
+	  working geography index selectivity - the conversion should be
+	  there, however it needs some kind of test harness to verify some
+	  of the results.
 
-2009-10-08 05:35  pramsey
+2009-10-08 05:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Area(geography) implementation and SQL bindings.
+	* [r4621] liblwgeom/libgeom.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h, postgis/Makefile.in,
+	  postgis/geography.sql.in.c, postgis/geography_distance.c,
+	  postgis/geography_measurement.c: ST_Area(geography)
+	  implementation and SQL bindings.
 
-2009-10-07 14:26  pramsey
+2009-10-07 14:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the calculation of gboxes a little simpler in the db level
-	  code.
+	* [r4620] liblwgeom/g_box.c, liblwgeom/libgeom.h,
+	  postgis/geography_distance.c: Make the calculation of gboxes a
+	  little simpler in the db level code.
 
-2009-10-07 12:16  mcayland
+2009-10-07 12:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #179: ST_MakeLine and ST_MakeLine_Garry crash server with
+	* [r4618] postgis/lwgeom_accum.c, postgis/lwgeom_functions_basic.c:
+	  Fix #179: ST_MakeLine and ST_MakeLine_Garry crash server with
 	  null arrays again. There was another non-NULL safe array iterator
 	  within LWGEOM_makeline_garray.
 
-2009-10-07 11:52  robe
+2009-10-07 11:52  Regina Obe <lr at pcorp.us>
 
-	* Add table with multiple nulls to garden of geometries.
-	  Evidentally -- there are some NULL bugs that escape trapping with
-	  just a single null geometry in the table.
+	* [r4617] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl: Add table with
+	  multiple nulls to garden of geometries. Evidentally -- there are
+	  some NULL bugs that escape trapping with just a single null
+	  geometry in the table.
 
-2009-10-07 04:38  robe
+2009-10-07 04:38  Regina Obe <lr at pcorp.us>
 
-	* flip order of ST_Relate protos as Martin observes it doesn't
-	  match our description
+	* [r4615] doc/reference.xml: flip order of ST_Relate protos as
+	  Martin observes it doesn't match our description
 
-2009-10-07 03:38  pramsey
+2009-10-07 03:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Put prototypes into place
+	* [r4614] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h: Put
+	  prototypes into place
 
-2009-10-07 03:37  pramsey
+2009-10-07 03:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change from pass by reference to pass by value
+	* [r4613] liblwgeom/g_box.c, liblwgeom/libgeom.h,
+	  liblwgeom/lwgeodetic.c: Change from pass by reference to pass by
+	  value
 
-2009-10-07 03:35  pramsey
+2009-10-07 03:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Short circuit the edge intersection test when the gboxes are
-	  disjoint
+	* [r4612] liblwgeom/lwgeodetic.c: Short circuit the edge
+	  intersection test when the gboxes are disjoint
 
-2009-10-06 16:16  mcayland
+2009-10-06 16:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* First attempt at porting the estimate_selectivity() function to
-	  handle 3 dimensions. Note this is mostly untested at the moment,
-	  as this is only the function that cuts the relevant section out
-	  of the histogram. We still need to plug this into the PostgreSQL
-	  infrastructure.
+	* [r4611] postgis/geography_estimate.c: First attempt at porting
+	  the estimate_selectivity() function to handle 3 dimensions. Note
+	  this is mostly untested at the moment, as this is only the
+	  function that cuts the relevant section out of the histogram. We
+	  still need to plug this into the PostgreSQL infrastructure.
 
-2009-10-06 13:51  mcayland
+2009-10-06 13:51  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #258: ST_HausdorffDistance crashes server. Another geometry
-	  free typo (same as #241) in both st_hausdorffdistance() and
-	  st_hausdorffdistancedensify().
+	* [r4610] postgis/lwgeom_geos.c: Fix #258: ST_HausdorffDistance
+	  crashes server. Another geometry free typo (same as #241) in both
+	  st_hausdorffdistance() and st_hausdorffdistancedensify().
 
-2009-10-06 13:43  mcayland
+2009-10-06 13:43  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #241: ST_LineCrossingDirection Server Crash (Segfault) caused
-	  by a typo freeing the wrong parameter.
+	* [r4608] postgis/lwgeom_functions_analytic.c: Fix #241:
+	  ST_LineCrossingDirection Server Crash (Segfault) caused by a typo
+	  freeing the wrong parameter.
 
-2009-10-06 12:02  robe
+2009-10-06 12:02  Regina Obe <lr at pcorp.us>
 
-	* Put NULL safety tests back in now that Mark has fixed aggregate
-	  collection bug
+	* [r4607] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl: Put NULL safety tests
+	  back in now that Mark has fixed aggregate collection bug
 
-2009-10-06 11:15  robe
+2009-10-06 11:15  Regina Obe <lr at pcorp.us>
 
-	* Turn of Paul's accidental commit of fanboy mac enabled random
-	  test
+	* [r4606] liblwgeom/cunit/cu_geodetic.c: Turn of Paul's accidental
+	  commit of fanboy mac enabled random test
 
-2009-10-06 10:49  mcayland
+2009-10-06 10:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix compilation bug when debug is enabled.
+	* [r4605] liblwgeom/lwgeodetic.c: Fix compilation bug when debug is
+	  enabled.
 
-2009-10-06 10:15  mcayland
+2009-10-06 10:15  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix another non-NULL safe array iteration within
+	* [r4604] postgis/lwgeom_accum.c, postgis/lwgeom_functions_basic.c:
+	  Fix another non-NULL safe array iteration within
 	  LWGEOM_collect_garray, as discovered by Regina's torture tests.
 
-2009-10-06 08:52  mcayland
+2009-10-06 08:52  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Move CFLAGS after the PGXS include directive, so that the
-	  autotools configuration doesn't getting overwritten by the PGXS
-	  version. Required when passing custom compiler f
+	* [r4602] loader/Makefile.in: Move CFLAGS after the PGXS include
+	  directive, so that the autotools configuration doesn't getting
+	  overwritten by the PGXS version. Required when passing custom
+	  compiler f
 	  lags into PostGIS as reported by William Kyngesburye.
 
-2009-10-06 04:59  pramsey
+2009-10-06 04:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make db implementation consistent with liblwgeom
+	* [r4600] liblwgeom/cunit/cu_geodetic.c,
+	  postgis/geography_distance.c: Make db implementation consistent
+	  with liblwgeom
 
-2009-10-06 04:50  pramsey
+2009-10-06 04:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change signatures for lwgeom distance sphere
+	* [r4599] liblwgeom/cunit/cu_geodetic.c, liblwgeom/libgeom.h,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h: Change signatures
+	  for lwgeom distance sphere
 
-2009-10-06 04:19  pramsey
+2009-10-06 04:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* New point-outside routine, and allow distances against empty
-	  geometries.
+	* [r4598] liblwgeom/cunit/cu_geodetic.c, liblwgeom/g_box.c,
+	  liblwgeom/libgeom.h, liblwgeom/lwgeodetic.c: New point-outside
+	  routine, and allow distances against empty geometries.
 
-2009-10-05 21:15  kneufeld
+2009-10-05 21:15  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated ST_IsValid's reference to the OGC specs.
+	* [r4597] doc/reference.xml: updated ST_IsValid's reference to the
+	  OGC specs.
 
-2009-10-05 19:43  pramsey
+2009-10-05 19:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More test cases in there (but turned off, because they fail :(
+	* [r4596] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: More test cases in there (but turned off,
+	  because they fail :(
 
-2009-10-05 19:38  pramsey
+2009-10-05 19:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add untested new p-i-p approach for more testing later.
+	* [r4595] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Add untested new p-i-p approach for more
+	  testing later.
 
-2009-10-05 16:17  mcayland
+2009-10-05 16:17  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit first attempt at a multi-D statistics histogram builder.
-	  Note that while geodetic data is inherently 3D, the builder also
-	  contains code to handle lower dimension cartesian coordinates,
-	  which should make porting to ggeometry easier at a later date. At
-	  the moment there are no selectivity routines which actually use
-	  the histograms for real queries, however a reasonably convincing
-	  histogram is created in pg_statistic and all regression tests
-	  pass here.
+	* [r4594] postgis/geography_estimate.c: Commit first attempt at a
+	  multi-D statistics histogram builder. Note that while geodetic
+	  data is inherently 3D, the builder also contains code to handle
+	  lower dimension cartesian coordinates, which should make porting
+	  to ggeometry easier at a later date. At the moment there are no
+	  selectivity routines which actually use the histograms for real
+	  queries, however a reasonably convincing histogram is created in
+	  pg_statistic and all regression tests pass here.
 
-2009-10-05 14:37  pramsey
+2009-10-05 14:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Increase precision.
+	* [r4593] liblwgeom/cunit/cu_geodetic.c: Increase precision.
 
-2009-10-05 14:37  pramsey
+2009-10-05 14:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add another printing block
+	* [r4592] liblwgeom/cunit/cu_geodetic.c: Add another printing block
 
-2009-10-05 12:52  robe
+2009-10-05 12:52  Regina Obe <lr at pcorp.us>
 
-	* more errors in my logic
+	* [r4591] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl: more errors in my
+	  logic
 
-2009-10-05 11:45  robe
+2009-10-05 11:45  Regina Obe <lr at pcorp.us>
 
-	* more corrections
+	* [r4590] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl: more corrections
 
-2009-10-05 05:05  pramsey
+2009-10-05 05:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added new point-on-edge routine still no joy on bad test case.
+	* [r4589] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Added new point-on-edge routine still no
+	  joy on bad test case.
 
-2009-10-04 22:26  pramsey
+2009-10-04 22:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add another test case that needs resolution
+	* [r4588] liblwgeom/cunit/cu_geodetic.c: Add another test case that
+	  needs resolution
 
-2009-10-04 01:41  pramsey
+2009-10-04 01:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add SQL bindings for selectivity functions.
+	* [r4587] postgis/geography.sql.in.c: Add SQL bindings for
+	  selectivity functions.
 
-2009-10-04 00:52  pramsey
+2009-10-04 00:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* revert to previous version
+	* [r4586] install-sh: revert to previous version
 
-2009-10-04 00:51  pramsey
+2009-10-04 00:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Some fixes to the ST_DWithin code.
+	* [r4585] install-sh, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/lwgeodetic.c, postgis/geography.sql.in.c,
+	  postgis/geography_distance.c, postgis/geography_estimate.c,
+	  postgis/geography_gist.c: Some fixes to the ST_DWithin code.
 
-2009-10-02 20:07  robe
+2009-10-02 20:07  Regina Obe <lr at pcorp.us>
 
-	* more changes to better test geography
+	* [r4584] doc/xsl/postgis_gardentest.sql.xsl,
+	  doc/xsl/postgis_gardentest_subset.sql.xsl: more changes to better
+	  test geography
 
-2009-10-02 19:24  robe
+2009-10-02 19:24  Regina Obe <lr at pcorp.us>
 
-	* cosmetic change to tolerance args for ST_DWithin
+	* [r4583] doc/reference.xml: cosmetic change to tolerance args for
+	  ST_DWithin
 
-2009-10-02 19:21  robe
+2009-10-02 19:21  Regina Obe <lr at pcorp.us>
 
-	* put create table examples in program listing tag
+	* [r4582] doc/using_postgis_dataman.xml: put create table examples
+	  in program listing tag
 
-2009-10-02 19:08  robe
+2009-10-02 19:08  Regina Obe <lr at pcorp.us>
 
-	* add geography proto for ST_DWithin, also fill in some
-	  availability marks forgotten.
+	* [r4581] doc/reference.xml: add geography proto for ST_DWithin,
+	  also fill in some availability marks forgotten.
 
-2009-10-02 18:44  robe
+2009-10-02 18:44  Regina Obe <lr at pcorp.us>
 
-	* Add geography example for ST_Distance, more geometry examples and
-	  amend to reflect its in meters
+	* [r4580] doc/reference.xml: Add geography example for ST_Distance,
+	  more geometry examples and amend to reflect its in meters
 
-2009-10-02 18:28  pramsey
+2009-10-02 18:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Largely untested implementation of ST_DWithin(geography,
-	  geography).
+	* [r4579] postgis/geography.h, postgis/geography.sql.in.c,
+	  postgis/geography_distance.c, postgis/geography_gist.c,
+	  postgis/geography_inout.c: Largely untested implementation of
+	  ST_DWithin(geography, geography).
 	  We're in business baby!
 
-2009-10-02 14:13  strk
+2009-10-02 14:13  Sandro Santilli <strk at keybit.net>
 
-	* typo in help message
+	* [r4578] loader/shp2pgsql.c: typo in help message
 
-2009-10-02 01:38  pramsey
+2009-10-02 01:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make the units of st_distance(geography, geography) meters
+	* [r4577] postgis/geography.h, postgis/geography_distance.c: Make
+	  the units of st_distance(geography, geography) meters
 
-2009-10-01 23:54  pramsey
+2009-10-01 23:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix boner error
+	* [r4576] liblwgeom/lwgeodetic.c: Fix boner error
 
-2009-10-01 21:18  robe
+2009-10-01 21:18  Regina Obe <lr at pcorp.us>
 
-	* typos
+	* [r4575] doc/xsl/postgis_gardentest.sql.xsl: typos
 
-2009-10-01 20:37  robe
+2009-10-01 20:37  Regina Obe <lr at pcorp.us>
 
-	* put in ST_Distance proto for geography so can test it.
+	* [r4574] doc/reference.xml: put in ST_Distance proto for geography
+	  so can test it.
 
-2009-10-01 19:50  pramsey
+2009-10-01 19:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Distance(geography, geography) roughed in. Small detail,
+	* [r4573] liblwgeom/lwgeodetic.c, postgis/Makefile.in,
+	  postgis/geography.h, postgis/geography.sql.in.c,
+	  postgis/geography_distance.c, postgis/geography_gist.c:
+	  ST_Distance(geography, geography) roughed in. Small detail,
 	  currently returns answers in radians. :)
 
-2009-10-01 18:45  pramsey
+2009-10-01 18:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add polygon/point distance and tests.
+	* [r4572] liblwgeom/cunit/cu_geodetic.c, liblwgeom/libgeom.h,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h: Add polygon/point
+	  distance and tests.
 
-2009-10-01 14:52  pramsey
+2009-10-01 14:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Wow, error that only showed up in MinGW, but totally an error. I
-	  wonder why my test passed this... clean memory I guess.
+	* [r4571] liblwgeom/cunit/cu_geodetic.c: Wow, error that only
+	  showed up in MinGW, but totally an error. I wonder why my test
+	  passed this... clean memory I guess.
 
-2009-10-01 05:53  pramsey
+2009-10-01 05:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* lwgeom sphere distance function and tests for point/linestring
+	* [r4570] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/libgeom.h,
+	  liblwgeom/lwgeodetic.c: lwgeom sphere distance function and tests
+	  for point/linestring
 
-2009-09-30 23:59  pramsey
+2009-09-30 23:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Roughing in lwgeom distance machinery now.
+	* [r4569] liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeom.c: Roughing in lwgeom distance machinery now.
 
-2009-09-30 23:03  pramsey
+2009-09-30 23:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add edge-edge distance tests.
+	* [r4568] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h: Add edge-edge distance tests.
 
-2009-09-30 21:45  pramsey
+2009-09-30 21:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add return value for point of closest approach on arc/edge
-	  distance.
+	* [r4567] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Add return value for point of closest
+	  approach on arc/edge distance.
 
-2009-09-30 21:21  pramsey
+2009-09-30 21:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add edge-to-point distance calculation and tests
+	* [r4566] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Add edge-to-point distance calculation
+	  and tests
 
-2009-09-30 19:34  pramsey
+2009-09-30 19:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove CPU intensive test and add some lat/lon utility functions
+	* [r4565] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c:
+	  Remove CPU intensive test and add some lat/lon utility functions
 
-2009-09-30 19:02  pramsey
+2009-09-30 19:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make point-in-edge test even looser (fp tolerance factor)
+	* [r4564] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c:
+	  Make point-in-edge test even looser (fp tolerance factor)
 
-2009-09-30 18:57  pramsey
+2009-09-30 18:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move defines around a bit.
+	* [r4563] liblwgeom/cunit/cu_geodetic.c: Move defines around a bit.
 
-2009-09-30 18:54  pramsey
+2009-09-30 18:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some debugging blocks for later
+	* [r4562] liblwgeom/cunit/cu_geodetic.c: Add some debugging blocks
+	  for later
 
-2009-09-30 18:28  pramsey
+2009-09-30 18:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in special case test for parallel / equal edges.
+	* [r4561] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c:
+	  Add in special case test for parallel / equal edges.
 
-2009-09-30 17:12  pramsey
+2009-09-30 17:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Whoops, make sure we test all our test cases.
+	* [r4560] liblwgeom/cunit/cu_geodetic.c: Whoops, make sure we test
+	  all our test cases.
 
-2009-09-30 17:09  pramsey
+2009-09-30 17:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make random brute force test a compile-time option.
+	* [r4559] liblwgeom/cunit/cu_geodetic.c: Make random brute force
+	  test a compile-time option.
 
-2009-09-30 17:05  pramsey
+2009-09-30 17:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add more test cases for geocentric bbox calculation and make 'in
+	* [r4558] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/lwgeodetic.c: Add
+	  more test cases for geocentric bbox calculation and make 'in
 	  cone' test inclusive of end points.
 
-2009-09-30 15:50  robe
+2009-09-30 15:50  Regina Obe <lr at pcorp.us>
 
-	* more fixes to make geography friendly
+	* [r4557] doc/xsl/postgis_gardentest.sql.xsl: more fixes to make
+	  geography friendly
 
-2009-09-30 14:10  strk
+2009-09-30 14:10  Sandro Santilli <strk at keybit.net>
 
-	* Can't put backslash-commands in 'echo' parameter in a standard
-	  way
+	* [r4556] autogen.sh: Can't put backslash-commands in 'echo'
+	  parameter in a standard way
 	  (would take -e in some cases) so replace \t with some spaces
 
-2009-09-30 08:39  strk
+2009-09-30 08:39  Sandro Santilli <strk at keybit.net>
 
-	* add missing newline at end of error message (utf8/iconv)
+	* [r4555] loader/shp2pgsql.c: add missing newline at end of error
+	  message (utf8/iconv)
 
-2009-09-30 00:17  pramsey
+2009-09-30 00:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-enable all geodetic tests.
+	* [r4554] liblwgeom/cunit/cu_geodetic.c: Re-enable all geodetic
+	  tests.
 
-2009-09-30 00:11  pramsey
+2009-09-30 00:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some extra comments
+	* [r4553] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c:
+	  Add some extra comments
 
-2009-09-29 20:44  pramsey
+2009-09-29 20:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* astyle the work thus far
+	* [r4552] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: astyle the work thus far
 
-2009-09-29 20:41  pramsey
+2009-09-29 20:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Flip the clairaut calculations to return both top and bottom in
-	  one go.
+	* [r4551] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Flip the clairaut calculations to return
+	  both top and bottom in one go.
 
-2009-09-29 19:53  pramsey
+2009-09-29 19:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old GBOX test answers (some were wrong!) in favor of
-	  actual slow calculations
+	* [r4550] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h: Remove old GBOX test answers
+	  (some were wrong!) in favor of actual slow calculations
 
-2009-09-29 19:50  pramsey
+2009-09-29 19:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add randomized box maker/checker... still some small errors?
+	* [r4549] liblwgeom/cunit/cu_geodetic.c: Add randomized box
+	  maker/checker... still some small errors?
 
-2009-09-29 19:02  pramsey
+2009-09-29 19:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make polygon pole check a little more general.
+	* [r4548] liblwgeom/lwgeodetic.c: Make polygon pole check a little
+	  more general.
 
-2009-09-29 18:48  pramsey
+2009-09-29 18:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* All bbox test cases now pass. Suck on that!
+	* [r4547] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: All bbox test cases now pass. Suck on
+	  that!
 
-2009-09-29 15:55  robe
+2009-09-29 15:55  Regina Obe <lr at pcorp.us>
 
-	* remove null geometry from testing until we fix aggregate null
-	  crashing bug. Also fix multipolygonz and m not returning those
-	  geometry types.
+	* [r4546] doc/xsl/postgis_gardentest.sql.xsl: remove null geometry
+	  from testing until we fix aggregate null crashing bug. Also fix
+	  multipolygonz and m not returning those geometry types.
 
-2009-09-29 14:40  pramsey
+2009-09-29 14:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove un-used function from testing.
+	* [r4544] liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h: Remove
+	  un-used function from testing.
 
-2009-09-29 14:39  pramsey
+2009-09-29 14:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Work on making "on edge" test more reliable.
+	* [r4543] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Work on making "on edge" test more
+	  reliable.
 
-2009-09-29 13:31  strk
+2009-09-29 13:31  Sandro Santilli <strk at keybit.net>
 
-	* Ensure lwcollection_segmentize2d always return a NEW geometry.
-	  Fixes ticket #254. Add regression test for that bug.
+	* [r4542] liblwgeom/lwcollection.c, regress/regress.sql,
+	  regress/regress_expected: Ensure lwcollection_segmentize2d always
+	  return a NEW geometry. Fixes ticket #254. Add regression test for
+	  that bug.
 
-2009-09-29 12:42  robe
+2009-09-29 12:42  Regina Obe <lr at pcorp.us>
 
-	* Add missing protos for geography for ST_AsKML, ST_AsGeoJSON,
+	* [r4541] doc/reference.xml, doc/xsl/postgis_aggs_mm.xml.xsl: Add
+	  missing protos for geography for ST_AsKML, ST_AsGeoJSON,
 	  ST_AsSVG, ST_AsGML. Revise xml parser special index generator to
 	  not dupe when multiple protos with geography
 
-2009-09-29 12:23  robe
+2009-09-29 12:23  Regina Obe <lr at pcorp.us>
 
-	* Put in overload text for ST_AsText and ST_AsBinary to prevent the
-	  function .. is not unique when passing in text (unknown) rep of a
-	  geometry. Still need to do this for ST_AsKML etc. that Olivier
-	  just put in.
+	* [r4540] postgis/geography.sql.in.c: Put in overload text for
+	  ST_AsText and ST_AsBinary to prevent the function .. is not
+	  unique when passing in text (unknown) rep of a geometry. Still
+	  need to do this for ST_AsKML etc. that Olivier just put in.
 
-2009-09-29 07:45  colivier
+2009-09-29 07:45  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Update documentation related to geography typmod export functions
-	  (r4535, r4536)
+	* [r4539] doc/using_postgis_dataman.xml: Update documentation
+	  related to geography typmod export functions (r4535, r4536)
 
-2009-09-29 06:34  robe
+2009-09-29 06:34  Regina Obe <lr at pcorp.us>
 
-	* Add a new special index section to collect functions that take as
-	  input or output geography data type. Also give pretty anchor to
-	  PostGIS Geography section
+	* [r4538] doc/using_postgis_dataman.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Add a new special index section
+	  to collect functions that take as input or output geography data
+	  type. Also give pretty anchor to PostGIS Geography section
 
-2009-09-28 22:45  pramsey
+2009-09-28 22:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Test re-org and first cut at edge intersection.
+	* [r4537] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_libgeom.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Test re-org and first cut at edge
+	  intersection.
 
-2009-09-28 18:31  colivier
+2009-09-28 18:31  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* A forgot prototype in ST_AsGeoJson export function
+	* [r4536] postgis/geography.sql.in.c: A forgot prototype in
+	  ST_AsGeoJson export function
 
-2009-09-28 18:16  colivier
+2009-09-28 18:16  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add geography typmod support for export functions (ST_AsGML,
+	* [r4535] postgis/Makefile.in, postgis/geography.sql.in.c,
+	  postgis/geography_inout.c, postgis/lwgeom_export.c,
+	  postgis/lwgeom_export.h, postgis/lwgeom_geojson.c,
+	  postgis/lwgeom_gml.c, postgis/lwgeom_kml.c, postgis/lwgeom_svg.c:
+	  Add geography typmod support for export functions (ST_AsGML,
 	  ST_AsGeoJson, ST_KML, St_AsSVG). Create lwgeom_export.c and
 	  lwgeom_export.h to factorize common export functions routines.
 
-2009-09-25 13:32  robe
+2009-09-25 13:32  Regina Obe <lr at pcorp.us>
 
-	* remove regex.h include per Nicklas observation its still in
-	  there.
+	* [r4533] liblwgeom/libgeom.h: remove regex.h include per Nicklas
+	  observation its still in there.
 
-2009-09-23 18:15  pramsey
+2009-09-23 18:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add SQL def'n for geography_analyze function.
+	* [r4532] postgis/geography.sql.in.c: Add SQL def'n for
+	  geography_analyze function.
 
-2009-09-23 16:11  robe
+2009-09-23 16:11  Regina Obe <lr at pcorp.us>
 
-	* another typo
+	* [r4531] doc/reference.xml: another typo
 
-2009-09-22 21:56  robe
+2009-09-22 21:56  Regina Obe <lr at pcorp.us>
 
-	* missing spots for geography.sql and postgis_comments.sql
+	* [r4530] doc/installation.xml: missing spots for geography.sql and
+	  postgis_comments.sql
 
-2009-09-22 21:53  robe
+2009-09-22 21:53  Regina Obe <lr at pcorp.us>
 
-	* correct typo
+	* [r4529] doc/reference.xml: correct typo
 
-2009-09-22 21:14  robe
+2009-09-22 21:14  Regina Obe <lr at pcorp.us>
 
-	* start putting in geography functions
+	* [r4528] doc/reference.xml: start putting in geography functions
 
-2009-09-22 13:38  mcayland
+2009-09-22 13:38  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit fix to LW_ABS() macro as discovered by Nicklas Aven.
+	* [r4527] liblwgeom/liblwgeom.h: Commit fix to LW_ABS() macro as
+	  discovered by Nicklas Aven.
 
-2009-09-22 13:09  mcayland
+2009-09-22 13:09  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add the basic machinery to call a function when running VACUUM
-	  ANALYZE on a geography column - the more interesting parts are
-	  yet to come ;)
+	* [r4526] postgis/Makefile.in, postgis/geography.sql.in.c,
+	  postgis/geography_estimate.c: Add the basic machinery to call a
+	  function when running VACUUM ANALYZE on a geography column - the
+	  more interesting parts are yet to come ;)
 
-2009-09-22 12:27  robe
+2009-09-22 12:27  Regina Obe <lr at pcorp.us>
 
-	* get rid of things like invalid coords for 4326 space tripping up
-	  geography testing.
+	* [r4525] doc/xsl/postgis_gardentest.sql.xsl: get rid of things
+	  like invalid coords for 4326 space tripping up geography testing.
 
-2009-09-22 11:53  mcayland
+2009-09-22 11:53  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Oops - forgot to bump the array indices on the last commit :(
+	* [r4524] liblwgeom/g_util.c: Oops - forgot to bump the array
+	  indices on the last commit :(
 
-2009-09-22 11:27  robe
+2009-09-22 11:27  Regina Obe <lr at pcorp.us>
 
-	* Update installation to include geography.sql (yikes we still had
-	  install lwpostgis.sql -- no wonder people are so confused). Also
-	  upped required to 8.3
+	* [r4523] doc/installation.xml: Update installation to include
+	  geography.sql (yikes we still had install lwpostgis.sql -- no
+	  wonder people are so confused). Also upped required to 8.3
 
-2009-09-22 11:23  robe
+2009-09-22 11:23  Regina Obe <lr at pcorp.us>
 
-	* cut in Paul's geography.txt into the official docs. Didn't notice
-	  it before :(. We might need a whole new chapter for this to do it
-	  justice but will deal with formatting later.
+	* [r4522] doc/using_postgis_dataman.xml: cut in Paul's
+	  geography.txt into the official docs. Didn't notice it before :(.
+	  We might need a whole new chapter for this to do it justice but
+	  will deal with formatting later.
 
-2009-09-22 11:23  mcayland
+2009-09-22 11:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add missing geometry(m)(z) type missing from previous commit.
+	* [r4521] liblwgeom/g_util.c: Add missing geometry(m)(z) type
+	  missing from previous commit.
 
-2009-09-22 11:13  mcayland
+2009-09-22 11:13  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove dependency on regex library by implementing the same
-	  functionality using standard C functions. Passes regression tests
-	  for me.
+	* [r4520] configure.ac, liblwgeom/cunit/Makefile.in,
+	  liblwgeom/g_util.c, postgis/Makefile.in: Remove dependency on
+	  regex library by implementing the same functionality using
+	  standard C functions. Passes regression tests for me.
 
-2009-09-22 00:06  pramsey
+2009-09-22 00:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change signatures to use fewer pointers.
+	* [r4519] postgis/geography_gist.c: Change signatures to use fewer
+	  pointers.
 
-2009-09-21 10:57  mcayland
+2009-09-21 10:57  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update LWDEBUG(F)/POSTGIS_DEBUG(F) macro debug levels to follow
-	  the standard in postgis/DEBUG.
+	* [r4518] postgis/geography_inout.c,
+	  postgis/lwgeom_geos_prepared.c: Update
+	  LWDEBUG(F)/POSTGIS_DEBUG(F) macro debug levels to follow the
+	  standard in postgis/DEBUG.
 
-2009-09-21 10:50  mcayland
+2009-09-21 10:50  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Change macros to use capitalised names, as per standard C
-	  convention. This means it is possible at a glance to determine
-	  what is a macro and what is a function.
+	* [r4517] postgis/geography_gist.c: Change macros to use
+	  capitalised names, as per standard C convention. This means it is
+	  possible at a glance to determine what is a macro and what is a
+	  function.
 
-2009-09-20 08:15  robe
+2009-09-20 08:15  Regina Obe <lr at pcorp.us>
 
-	* fix typos and redundant things
+	* [r4516] doc/using_postgis_dataman.xml,
+	  doc/xsl/postgis_gardentest.sql.xsl: fix typos and redundant
+	  things
 
-2009-09-20 08:10  robe
+2009-09-20 08:10  Regina Obe <lr at pcorp.us>
 
-	* flag some operators that support geography, put in logic to test
+	* [r4515] doc/reference.xml, doc/xsl/postgis_gardentest.sql.xsl:
+	  flag some operators that support geography, put in logic to test
 	  for geography marked functions
 
-2009-09-20 07:50  robe
+2009-09-20 07:50  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r4514] doc/using_postgis_dataman.xml:
 
-2009-09-20 07:45  robe
+2009-09-20 07:45  Regina Obe <lr at pcorp.us>
 
-	* Make slot for geography data type and start filling in details
+	* [r4513] doc/using_postgis_dataman.xml: Make slot for geography
+	  data type and start filling in details
 
-2009-09-18 14:53  pramsey
+2009-09-18 14:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Clean up tests so they pass quietly. (#249)
+	* [r4512] liblwgeom/cunit/cu_geodetic.c: Clean up tests so they
+	  pass quietly. (#249)
 
-2009-09-18 14:10  robe
+2009-09-18 14:10  Regina Obe <lr at pcorp.us>
 
-	* #250: Fix to get mingw to compile using conditional -lregex
+	* [r4511] configure.ac, liblwgeom/cunit/Makefile.in,
+	  postgis/Makefile.in: #250: Fix to get mingw to compile using
+	  conditional -lregex
 	  Had to change configure.ac too so -lregex is not put in if its
 	  built-in.
 
-2009-09-17 15:44  robe
-
-	* Revise garden test to include testing for creating geography
-	  types. Still needs a bit more work. Also discovered more crashers
-	  to put in bug list (not all related to geography)
-
-2009-09-17 05:57  pramsey
-
-	* Fix serialization problem with lwgeoms that have bboxes.
-
-2009-09-17 05:33  pramsey
-
-	* Clean up gbox serialization a little
-
-2009-09-17 02:33  pramsey
-
-	* Add lwgeom_is_empty() test
+2009-09-17 15:44  Regina Obe <lr at pcorp.us>
 
-2009-09-17 00:01  pramsey
+	* [r4510] doc/xsl/postgis_gardentest.sql.xsl: Revise garden test to
+	  include testing for creating geography types. Still needs a bit
+	  more work. Also discovered more crashers to put in bug list (not
+	  all related to geography)
 
-	* Work on tracking down bug in casting geometry->geography
+2009-09-17 05:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-16 22:43  pramsey
+	* [r4509] liblwgeom/g_serialized.c,
+	  postgis/lwgeom_functions_basic.c: Fix serialization problem with
+	  lwgeoms that have bboxes.
 
-	* Fix some test cases crossing the date line
+2009-09-17 05:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-16 21:09  pramsey
+	* [r4508] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_libgeom.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/g_serialized.c, liblwgeom/libgeom.h,
+	  liblwgeom/lwgeodetic.c: Clean up gbox serialization a little
 
-	* Add gbox string constructor for testing purposes
+2009-09-17 02:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-16 20:19  pramsey
+	* [r4507] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c: Add
+	  lwgeom_is_empty() test
 
-	* More tests pass
+2009-09-17 00:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-16 18:54  pramsey
+	* [r4506] liblwgeom/cunit/cu_geodetic.c, liblwgeom/g_serialized.c,
+	  liblwgeom/lwgeodetic.c: Work on tracking down bug in casting
+	  geometry->geography
 
-	* Change back to less intensive cartesian clairaut
+2009-09-16 22:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-16 18:50  pramsey
+	* [r4505] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic_data.h, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Fix some test cases crossing the date
+	  line
 
-	* Fix errors in calculating geocentric bounds. Early test cases now
-	  pass!
+2009-09-16 21:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-15 21:21  pramsey
+	* [r4504] liblwgeom/cunit/cu_geodetic.c, liblwgeom/g_box.c,
+	  liblwgeom/libgeom.h: Add gbox string constructor for testing
+	  purposes
 
-	* Hook geocentric calculation into gbox routines, start testing
+2009-09-16 20:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-15 19:50  pramsey
+	* [r4503] liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/g_box.c, liblwgeom/g_serialized.c, liblwgeom/libgeom.h,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h: More tests pass
 
-	* Geocentric bounding box roughed in and compiles.
+2009-09-16 18:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-14 20:30  pramsey
+	* [r4502] liblwgeom/lwgeodetic.c: Change back to less intensive
+	  cartesian clairaut
 
-	* Start the geodetic machinery. Add an internal API header for
-	  eventual API rationalisation
+2009-09-16 18:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-14 18:33  pramsey
+	* [r4501] liblwgeom/g_box.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeodetic.h: Fix errors in calculating geocentric
+	  bounds. Early test cases now pass!
 
-	* Crib index penalty tweak from pgsphere.
+2009-09-15 21:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-14 18:15  pramsey
+	* [r4500] liblwgeom/cunit/cu_geodetic.c, liblwgeom/lwgeodetic.c:
+	  Hook geocentric calculation into gbox routines, start testing
 
-	* Add FP_EQUALS and bracket arguments for a little extra safety
+2009-09-15 19:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-14 17:01  kneufeld
+	* [r4499] liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/cunit/cu_geodetic.c,
+	  liblwgeom/cunit/cu_geodetic.h, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_libgeom.h, liblwgeom/cunit/cu_measures.h,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/cunit/cu_tester.h,
+	  liblwgeom/g_box.c, liblwgeom/g_serialized.c, liblwgeom/libgeom.h,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  postgis/geography_gist.c, postgis/geography_inout.c: Geocentric
+	  bounding box roughed in and compiles.
 
-	* fix for POPULATE_GEOMETRY_COLUMNS - remove hard-coded "public"
-	  schema references.
+2009-09-14 20:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-14 10:54  mcayland
+	* [r4498] liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/liblwgeom_internal.h, liblwgeom/lwalgorithm.h,
+	  liblwgeom/lwgeodetic.c, liblwgeom/lwgeodetic.h,
+	  liblwgeom/lwgeom.c, postgis/geography_gist.c: Start the geodetic
+	  machinery. Add an internal API header for eventual API
+	  rationalisation
 
-	* Merge Paul's geodetic (geography) branch into trunk, as per
-	  discussions on postgis-devel. Most of the merge was automatic
-	  (albeit quite slow), with a few manual touch-ups where the merge
-	  algorithm couldn't handle this automatically. "make check" runs
-	  and passes, so I hope I haven't managed to break too much ;)
+2009-09-14 18:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-12 04:01  robe
+	* [r4497] liblwgeom/liblwgeom.h, postgis/geography_gist.c: Crib
+	  index penalty tweak from pgsphere.
 
-	* formatting cleanup
+2009-09-14 18:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-09-12 03:43  robe
+	* [r4496] liblwgeom/liblwgeom.h: Add FP_EQUALS and bracket
+	  arguments for a little extra safety
 
-	* Add more line crossings. change tab to 4 spaces
+2009-09-14 17:01  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-2009-09-12 03:12  robe
-
-	* define new styles mediumline and use those
-
-2009-09-11 21:24  robe
-
-	* add new st_linecrossing graphic, experiment with new style, put
-	  in informal table
-
-2009-09-11 12:40  robe
-
-	* incomplete finish later
-
-2009-09-11 12:26  robe
-
-	* make arrow and start separate to see if it shows better
-
-2009-09-11 06:04  robe
+	* [r4495] postgis/postgis.sql.in.c: fix for
+	  POPULATE_GEOMETRY_COLUMNS - remove hard-coded "public" schema
+	  references.
 
-	* revise example so scales well on 200 x 200 grid
+2009-09-14 10:54  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r4494] ., doc/geography.txt, doc/reference.xml,
+	  doc/reference_old.xml, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile.in, liblwgeom/cunit/cu_libgeom.c,
+	  liblwgeom/cunit/cu_libgeom.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/g_box.c, liblwgeom/g_coord.c, liblwgeom/g_geometry.c,
+	  liblwgeom/g_ptarray.c, liblwgeom/g_serialized.c,
+	  liblwgeom/g_serialized.txt, liblwgeom/g_util.c,
+	  liblwgeom/libgeom.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwgeodetic.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwline.c, liblwgeom/lwpoint.c,
+	  liblwgeom/lwpoly.c, liblwgeom/lwutil.c, liblwgeom/ptarray.c,
+	  postgis, postgis/Makefile.in, postgis/geography.h,
+	  postgis/geography.sql.in.c, postgis/geography_gist.c,
+	  postgis/geography_inout.c, postgis/long_xact.sql.in.c,
+	  postgis/lwgeom_gist.c, postgis/postgis.sql.in.c,
+	  postgis/sqlmm.sql.in.c, postgis/uninstall_long_xact.sql.in.c,
+	  postgis/uninstall_postgis.sql.in.c,
+	  postgis/uninstall_sqlmm.sql.in.c: Merge Paul's geodetic
+	  (geography) branch into trunk, as per discussions on
+	  postgis-devel. Most of the merge was automatic (albeit quite
+	  slow), with a few manual touch-ups where the merge algorithm
+	  couldn't handle this automatically. "make check" runs and passes,
+	  so I hope I haven't managed to break too much ;)
+
+2009-09-12 04:01  Regina Obe <lr at pcorp.us>
+
+	* [r4493] doc/reference.xml: formatting cleanup
+
+2009-09-12 03:43  Regina Obe <lr at pcorp.us>
+
+	* [r4492] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_linecrossingdirection03.wkt,
+	  doc/html/image_src/st_linecrossingdirection04.wkt,
+	  doc/reference.xml: Add more line crossings. change tab to 4
+	  spaces
+
+2009-09-12 03:12  Regina Obe <lr at pcorp.us>
+
+	* [r4491] doc/html/image_src/st_linecrossingdirection01.wkt,
+	  doc/html/image_src/st_linecrossingdirection02.wkt,
+	  doc/html/image_src/styles.conf: define new styles mediumline and
+	  use those
+
+2009-09-11 21:24  Regina Obe <lr at pcorp.us>
+
+	* [r4484] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_linecrossingdirection01.wkt,
+	  doc/html/image_src/st_linecrossingdirection02.wkt,
+	  doc/html/image_src/styles.conf, doc/reference.xml: add new
+	  st_linecrossing graphic, experiment with new style, put in
+	  informal table
+
+2009-09-11 12:40  Regina Obe <lr at pcorp.us>
+
+	* [r4480] doc/html/image_src/st_linecrossingdirection02.wkt,
+	  doc/reference.xml: incomplete finish later
+
+2009-09-11 12:26  Regina Obe <lr at pcorp.us>
+
+	* [r4479] doc/html/image_src/st_linecrossingdirection01.wkt: make
+	  arrow and start separate to see if it shows better
+
+2009-09-11 06:04  Regina Obe <lr at pcorp.us>
+
+	* [r4478] doc/html/image_src/st_linecrossingdirection01.wkt,
+	  doc/reference.xml: revise example so scales well on 200 x 200
+	  grid
 
-2009-09-11 03:19  kneufeld
+2009-09-11 03:19  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added a few comments to aid in image generation.
+	* [r4477] doc/html/image_src/generator.c,
+	  doc/html/image_src/styles.c: added a few comments to aid in image
+	  generation.
 
-2009-09-10 06:34  robe
+2009-09-10 06:34  Regina Obe <lr at pcorp.us>
 
-	* round digits
+	* [r4475] doc/html/image_src/st_linecrossingdirection01.wkt: round
+	  digits
 
-2009-09-10 06:19  robe
+2009-09-10 06:19  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r4474] doc/html/image_src/st_linecrossingdirection01.wkt:
 
-2009-09-10 05:56  robe
+2009-09-10 05:56  Regina Obe <lr at pcorp.us>
 
-	* try geometry collection instead
+	* [r4473] doc/html/image_src/st_linecrossingdirection01.wkt: try
+	  geometry collection instead
 
-2009-09-10 05:54  robe
+2009-09-10 05:54  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r4472] doc/html/image_src/st_linecrossingdirection01.wkt:
 
-2009-09-10 05:39  robe
+2009-09-10 05:39  Regina Obe <lr at pcorp.us>
 
-	* typo in makefile
+	* [r4471] doc/html/image_src/Makefile.in: typo in makefile
 
-2009-09-10 05:27  robe
+2009-09-10 05:27  Regina Obe <lr at pcorp.us>
 
-	* first attempt at figure for st_linecrossingdirection. Also query
-	  correction.
+	* [r4470] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_linecrossingdirection01.wkt,
+	  doc/reference.xml: first attempt at figure for
+	  st_linecrossingdirection. Also query correction.
 
-2009-09-10 04:10  robe
+2009-09-10 04:10  Regina Obe <lr at pcorp.us>
 
-	* figure for st_line_substring
+	* [r4468] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_line_substring01.wkt, doc/reference.xml:
+	  figure for st_line_substring
 
-2009-09-10 04:03  robe
+2009-09-10 04:03  Regina Obe <lr at pcorp.us>
 
-	* figure of st_line_interpolate_point
+	* [r4467] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_line_interpolate_point01.wkt,
+	  doc/reference.xml: figure of st_line_interpolate_point
 
-2009-09-08 06:09  robe
+2009-09-08 06:09  Regina Obe <lr at pcorp.us>
 
-	* better fit example
+	* [r4451] doc/html/image_src/st_minimumboundingcircle01.wkt,
+	  doc/reference.xml: better fit example
 
-2009-09-08 05:28  robe
+2009-09-08 05:28  Regina Obe <lr at pcorp.us>
 
-	* typos
+	* [r4450] doc/html/image_src/st_minimumboundingcircle01.wkt,
+	  doc/reference.xml: typos
 
-2009-09-08 05:24  robe
+2009-09-08 05:24  Regina Obe <lr at pcorp.us>
 
-	* forgot wkt
+	* [r4449] doc/html/image_src/st_minimumboundingcircle01.wkt: forgot
+	  wkt
 
-2009-09-08 05:24  robe
+2009-09-08 05:24  Regina Obe <lr at pcorp.us>
 
-	* figure for minimum bounding circle
+	* [r4448] doc/html/image_src/Makefile.in, doc/reference.xml: figure
+	  for minimum bounding circle
 
-2009-09-05 17:31  robe
+2009-09-05 17:31  Regina Obe <lr at pcorp.us>
 
-	* Some wording changes and addition of figure for st_difference
+	* [r4446] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_difference01.wkt, doc/reference.xml: Some
+	  wording changes and addition of figure for st_difference
 
-2009-09-05 17:11  robe
+2009-09-05 17:11  Regina Obe <lr at pcorp.us>
 
-	* formatting change
+	* [r4445] doc/reference.xml: formatting change
 
-2009-09-05 16:55  robe
+2009-09-05 16:55  Regina Obe <lr at pcorp.us>
 
-	* add figures for st_symdifference and slight update on
-	  st_convexhull
+	* [r4444] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_symdifference01.wkt,
+	  doc/html/image_src/st_symdifference02.wkt, doc/reference.xml: add
+	  figures for st_symdifference and slight update on st_convexhull
 
-2009-09-04 18:43  kneufeld
+2009-09-04 18:43  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added images as a requirement to the chunked-html target
+	* [r4443] doc/Makefile.in: added images as a requirement to the
+	  chunked-html target
 
-2009-09-04 18:24  kneufeld
+2009-09-04 18:24  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* made the 'images' a requirement for pdf generation
+	* [r4442] doc/Makefile.in, doc/html/image_src/generator.c: made the
+	  'images' a requirement for pdf generation
 	  changed the background of the generated images to white instead
 	  of being transparent.
 
-2009-09-01 18:57  robe
+2009-09-01 18:57  Regina Obe <lr at pcorp.us>
 
-	* minor formatting
+	* [r4440] doc/reference.xml: minor formatting
 
-2009-09-01 18:34  robe
+2009-09-01 18:34  Regina Obe <lr at pcorp.us>
 
-	* better convex hull example
+	* [r4439] doc/html/image_src/st_convexhull01.wkt,
+	  doc/reference.xml: better convex hull example
 
-2009-08-28 19:10  robe
+2009-08-28 19:10  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r4438] doc/html/image_src/st_convexhull01.wkt,
+	  doc/reference.xml:
 
-2009-08-28 18:58  robe
+2009-08-28 18:58  Regina Obe <lr at pcorp.us>
 
-	* better visual convex hull
+	* [r4437] doc/html/image_src/st_convexhull01.wkt,
+	  doc/reference.xml: better visual convex hull
 
-2009-08-28 18:38  robe
+2009-08-28 18:38  Regina Obe <lr at pcorp.us>
 
-	* Put in image of ST_ConvexHull
+	* [r4436] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_convexhull01.wkt, doc/reference.xml: Put in
+	  image of ST_ConvexHull
 
-2009-08-28 17:41  robe
+2009-08-28 17:41  Regina Obe <lr at pcorp.us>
 
-	* put in alpha order
+	* [r4434] doc/html/image_src/Makefile.in: put in alpha order
 
-2009-08-28 17:32  robe
+2009-08-28 17:32  Regina Obe <lr at pcorp.us>
 
-	* get rid of extra space
+	* [r4433] doc/html/image_src/st_buildarea02.wkt: get rid of extra
+	  space
 
-2009-08-28 17:23  robe
+2009-08-28 17:23  Regina Obe <lr at pcorp.us>
 
-	* Make gaping hole more gaping, make code table 1 column instead of
+	* [r4432] doc/html/image_src/st_buildarea02.wkt, doc/reference.xml:
+	  Make gaping hole more gaping, make code table 1 column instead of
 	  2
 
-2009-08-28 16:44  robe
+2009-08-28 16:44  Regina Obe <lr at pcorp.us>
 
-	* improve on st_buildarea code formatting
+	* [r4430] doc/reference.xml: improve on st_buildarea code
+	  formatting
 
-2009-08-28 15:37  kneufeld
+2009-08-28 15:37  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Changing MULTIPOLYGON into several POLYGONs so the image
-	  generating WKT parser doesn't fail.
+	* [r4429] doc/html/image_src/st_buildarea02.wkt: Changing
+	  MULTIPOLYGON into several POLYGONs so the image generating WKT
+	  parser doesn't fail.
 
-2009-08-28 15:16  kneufeld
+2009-08-28 15:16  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added a small How To section, referencing the wiki on how to
-	  generate images used in the documentation.
+	* [r4428] doc/README: added a small How To section, referencing the
+	  wiki on how to generate images used in the documentation.
 
-2009-08-28 12:03  robe
+2009-08-28 12:03  Regina Obe <lr at pcorp.us>
 
-	* Add pictures for ST_BuildArea examples
+	* [r4427] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_buildarea01.wkt,
+	  doc/html/image_src/st_buildarea02.wkt, doc/reference.xml: Add
+	  pictures for ST_BuildArea examples
 
-2009-08-28 11:34  robe
+2009-08-28 11:34  Regina Obe <lr at pcorp.us>
 
-	* Commit jlivni documentation addition and update with minor
-	  comment for PostgreSQL 8.4 users and notice about obsolete
-	  settings. Also put in hyperlinks back to the current interactive
-	  version of PostgreSQL manual for each part.
+	* [r4425] doc/performance_tips.xml: Commit jlivni documentation
+	  addition and update with minor comment for PostgreSQL 8.4 users
+	  and notice about obsolete settings. Also put in hyperlinks back
+	  to the current interactive version of PostgreSQL manual for each
+	  part.
 
-2009-08-23 02:20  robe
+2009-08-23 02:20  Regina Obe <lr at pcorp.us>
 
-	* change lwpostgis to postgis and example to show 1.5.0SVN
+	* [r4423] doc/reference.xml, postgis/postgis.sql.in.c: change
+	  lwpostgis to postgis and example to show 1.5.0SVN
 
-2009-08-17 13:22  pramsey
+2009-08-17 13:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Initialize counter to ensure later test works (#239)
+	* [r4421] postgis/lwgeom_svg.c: Initialize counter to ensure later
+	  test works (#239)
 
-2009-08-17 13:19  pramsey
+2009-08-17 13:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add comment and clearer information to fix for #239
+	* [r4419] postgis/lwgeom_svg.c: Add comment and clearer information
+	  to fix for #239
 
-2009-08-17 11:37  robe
+2009-08-17 11:37  Regina Obe <lr at pcorp.us>
 
-	* revert order of availability. Revise xsl to pick up
+	* [r4417] doc/reference.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  revert order of availability. Revise xsl to pick up
 	  availabilities embedded in note tag
 
-2009-08-17 11:29  robe
+2009-08-17 11:29  Regina Obe <lr at pcorp.us>
 
-	* debugging why not showing in new section
+	* [r4416] doc/reference.xml: debugging why not showing in new
+	  section
 
-2009-08-17 02:59  pramsey
+2009-08-17 02:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for handling of empty geometrycollection in asssvg (#239)
+	* [r4415] postgis/lwgeom_svg.c: Fix for handling of empty
+	  geometrycollection in asssvg (#239)
 
-2009-08-16 15:03  robe
+2009-08-16 15:03  Regina Obe <lr at pcorp.us>
 
-	* update svg availability note
+	* [r4413] doc/reference.xml: update svg availability note
 
-2009-08-16 14:49  robe
+2009-08-16 14:49  Regina Obe <lr at pcorp.us>
 
-	* Correct ST_AsSVG command to reflect introduction of L command
+	* [r4410] doc/reference.xml: Correct ST_AsSVG command to reflect
+	  introduction of L command
 
-2009-08-16 05:34  robe
+2009-08-16 05:34  Regina Obe <lr at pcorp.us>
 
-	* add null and empty geometry collection to garden variety geometry
-	  list
+	* [r4409] doc/xsl/postgis_gardentest.sql.xsl: add null and empty
+	  geometry collection to garden variety geometry list
 
-2009-08-16 05:29  robe
+2009-08-16 05:29  Regina Obe <lr at pcorp.us>
 
-	* cast null to geometry
+	* [r4408] doc/xsl/postgis_gardentest_subset.sql.xsl: cast null to
+	  geometry
 
-2009-08-16 05:09  robe
+2009-08-16 05:09  Regina Obe <lr at pcorp.us>
 
-	* Version of garden test to allow selecting a subset of functions
-	  to test.
+	* [r4407] doc/xsl/postgis_gardentest_subset.sql.xsl: Version of
+	  garden test to allow selecting a subset of functions to test.
 
-2009-08-16 04:41  robe
+2009-08-16 04:41  Regina Obe <lr at pcorp.us>
 
-	* update ST_buffer (include buffer style in refpuprose so shows in
-	  postgresql function descrip),
+	* [r4406] doc/reference.xml: update ST_buffer (include buffer style
+	  in refpuprose so shows in postgresql function descrip),
 	  update refpurpose of hausdorf and include useful links for more
 	  details
 
-2009-08-13 00:37  mleslie
+2009-08-13 00:37  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Removing accidental commit from r4366.
+	* [r4397] regress/Makefile.in: Removing accidental commit from
+	  r4366.
 
-2009-08-11 16:38  strk
+2009-08-11 16:38  Sandro Santilli <strk at keybit.net>
 
-	* Add ChangeLog.svn rule, and auxiliary authors file
+	* [r4383] GNUmakefile, authors.svn: Add ChangeLog.svn rule, and
+	  auxiliary authors file
 
-2009-08-07 03:38  mleslie
+2009-08-07 03:38  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Fix for ticket #234
+	* [r4366] liblwgeom/lwgparse.c, regress/Makefile.in,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected: Fix for ticket #234
 
-2009-08-05 18:09  pramsey
+2009-08-05 18:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove printfs from code.
+	* [r4350] postgis/lwgeom_functions_basic.c: Remove printfs from
+	  code.
 
-2009-08-01 18:33  robe
+2009-08-01 18:33  Regina Obe <lr at pcorp.us>
 
-	* update ST_Line_Locate ... with example of closest point. Asked
-	  way too many times on postgis news groups
+	* [r4341] doc/reference.xml: update ST_Line_Locate ... with example
+	  of closest point. Asked way too many times on postgis news groups
 
-2009-07-30 16:03  mcayland
+2009-07-30 16:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove quotes from PATH in regression Makefile, as it seems that
-	  the last MingW hack doesn't need this any more.
+	* [r4338] regress/Makefile.in: Remove quotes from PATH in
+	  regression Makefile, as it seems that the last MingW hack doesn't
+	  need this any more.
 
-2009-07-18 20:01  mcayland
+2009-07-18 20:01  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for Windows combining stdout/stderr when executing the
-	  $(shell) command.
+	* [r4322] regress/Makefile.in: Fix for Windows combining
+	  stdout/stderr when executing the $(shell) command.
 
-2009-07-18 19:01  mcayland
+2009-07-18 19:01  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Apply fix to allow regression tests to run on MingW by fixing
-	  PATH and removing trailing CR/LFs on some outputs.
+	* [r4321] regress/Makefile.in, regress/run_test: Apply fix to allow
+	  regression tests to run on MingW by fixing PATH and removing
+	  trailing CR/LFs on some outputs.
 
-2009-07-18 18:45  mcayland
+2009-07-18 18:45  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix regression regex listings so that the newer "LINE n:" lines
-	  and lines containing just a position indicator (^) introduced in
-	  PostgreSQL 8.4 are removed from the regression output.
+	* [r4319] regress/run_test: Fix regression regex listings so that
+	  the newer "LINE n:" lines and lines containing just a position
+	  indicator (^) introduced in PostgreSQL 8.4 are removed from the
+	  regression output.
 
-2009-07-16 21:32  mcayland
+2009-07-16 21:32  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Move SERIALIZED_FORM to lwgeom_pg.h from liblwgeom.h since it
+	* [r4310] liblwgeom/liblwgeom.h, postgis/lwgeom_pg.h: Move
+	  SERIALIZED_FORM to lwgeom_pg.h from liblwgeom.h since it
 	  references a PostgreSQL-only structure. Per report from Nicklas
 	  Aven.
 
-2009-07-16 21:26  mcayland
+2009-07-16 21:26  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit patch for missing lw_asprintf() from #222.
+	* [r4308] loader/shp2pgsql-gui.c: Commit patch for missing
+	  lw_asprintf() from #222.
 
-2009-07-13 17:27  pramsey
+2009-07-13 17:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* MinGW fix for loader (#222), Mark Cave-Ayland
+	* [r4293] liblwgeom/liblwgeom.h, loader/Makefile.in,
+	  loader/shp2pgsql-cli.c, loader/shp2pgsql-core.c,
+	  loader/shp2pgsql-core.h, loader/shp2pgsql-gui.c: MinGW fix for
+	  loader (#222), Mark Cave-Ayland
 
-2009-07-13 16:57  pramsey
+2009-07-13 16:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ignore copied version of postgis.sql
+	* [r4292] regress: ignore copied version of postgis.sql
 
-2009-07-13 16:57  pramsey
+2009-07-13 16:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ignore generated images
+	* [r4291] doc/html/images: ignore generated images
 
-2009-07-08 22:43  robe
+2009-07-08 22:43  Regina Obe <lr at pcorp.us>
 
-	* Put in availability and GEOS for Hausdorff distance
+	* [r4287] doc/reference.xml: Put in availability and GEOS for
+	  Hausdorff distance
 
-2009-07-08 22:39  pramsey
+2009-07-08 22:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* match header format
+	* [r4286] README.postgis: match header format
 
-2009-07-08 16:27  strk
+2009-07-08 16:27  Sandro Santilli <strk at keybit.net>
 
-	* Update instructions for testing (and moved that step *before*
-	  install - finally!)
+	* [r4285] README.postgis: Update instructions for testing (and
+	  moved that step *before* install - finally!)
 
-2009-07-08 16:03  strk
+2009-07-08 16:03  Sandro Santilli <strk at keybit.net>
 
-	* Pre-install check rule by Paul cleaned up to allow top-level run
-	  and correct dependencies. See issue #219.
+	* [r4284] regress/Makefile.in: Pre-install check rule by Paul
+	  cleaned up to allow top-level run and correct dependencies. See
+	  issue #219.
 
-2009-07-08 15:28  pramsey
+2009-07-08 15:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove images from clean target
+	* [r4283] doc/html/image_src/Makefile.in: Remove images from clean
+	  target
 
-2009-07-08 15:16  pramsey
+2009-07-08 15:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove CUnit dependency
+	* [r4280] doc/html/image_src/generator.c: Remove CUnit dependency
 
-2009-07-08 15:15  pramsey
+2009-07-08 15:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* clean doc images as part of clean
+	* [r4279] doc/Makefile.in: clean doc images as part of clean
 
-2009-07-08 15:09  pramsey
+2009-07-08 15:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix itglish.
+	* [r4278] make_dist.sh: Fix itglish.
 
-2009-07-08 04:59  mcayland
+2009-07-08 04:59  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #112: ST_CurveToLine sometimes crashes server. While the
-	  circle segmentiser detected colinear circle points, it didn't
-	  check for the
+	* [r4272] liblwgeom/lwsegmentize.c: Fix #112: ST_CurveToLine
+	  sometimes crashes server. While the circle segmentiser detected
+	  colinear circle points, it didn't check for the
 	  NULL pointer returned in this case. Since we are converting to a
 	  line, the current behaviour is to simply append the circle points
 	  as s
 	  tandard line points.
 
-2009-07-08 04:48  mcayland
-
-	* Fix #183: ST_LineToCurve gives getPoint4d_p offset error. This
-	  was due to the lookahead in the curve segmentising code going off
-	  the end of the point array.
+2009-07-08 04:48  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-2009-07-08 00:20  pramsey
+	* [r4270] liblwgeom/lwsegmentize.c: Fix #183: ST_LineToCurve gives
+	  getPoint4d_p offset error. This was due to the lookahead in the
+	  curve segmentising code going off the end of the point array.
 
-	* Change error message to be more relevant
+2009-07-08 00:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-2009-07-07 15:44  strk
+	* [r4268] utils/postgis_proc_upgrade.pl: Change error message to be
+	  more relevant
 
-	* It's "synonym", not "synonim"...
+2009-07-07 15:44  Sandro Santilli <strk at keybit.net>
 
-2009-07-07 15:03  strk
+	* [r4267] doc/reference.xml: It's "synonym", not "synonim"...
 
-	* For buffer parameters: accept 'butt' as a synonim for 'flat',
-	  'miter' for 'mitre' and 'miter_limit' for 'mitre_limit'.
+2009-07-07 15:03  Sandro Santilli <strk at keybit.net>
 
-2009-07-07 13:18  strk
+	* [r4266] doc/reference.xml, postgis/lwgeom_geos.c,
+	  regress/regress_buffer_params.sql,
+	  regress/regress_buffer_params_expected: For buffer parameters:
+	  accept 'butt' as a synonim for 'flat', 'miter' for 'mitre' and
+	  'miter_limit' for 'mitre_limit'.
 
-	* Fix join style images to match calls
+2009-07-07 13:18  Sandro Santilli <strk at keybit.net>
 
-2009-07-07 10:33  mcayland
+	* [r4265] doc/reference.xml: Fix join style images to match calls
 
-	* Fix compile problems on non-GNU systems by using va_copy as an
-	  alias onto the real version. Per report from Stefano Bonnin.
+2009-07-07 10:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-2009-07-06 16:07  strk
+	* [r4264] liblwgeom/vsprintf.c: Fix compile problems on non-GNU
+	  systems by using va_copy as an alias onto the real version. Per
+	  report from Stefano Bonnin.
 
-	* Don't use strtok_r, to help with MingW builds.
+2009-07-06 16:07  Sandro Santilli <strk at keybit.net>
 
-2009-07-06 07:37  robe
+	* [r4262] postgis/lwgeom_geos.c: Don't use strtok_r, to help with
+	  MingW builds.
 
-	* forgot to save last change
+2009-07-06 07:37  Regina Obe <lr at pcorp.us>
 
-2009-07-06 07:37  robe
+	* [r4261] STYLE: forgot to save last change
 
-	* slight correction
+2009-07-06 07:37  Regina Obe <lr at pcorp.us>
 
-2009-07-06 07:33  robe
+	* [r4260] STYLE: slight correction
 
-	* Update style on commenting required to be picked up by doxygen
+2009-07-06 07:33  Regina Obe <lr at pcorp.us>
 
-2009-07-05 21:41  mcayland
-
-	* Alter loader Makefile to include PGXS so that we can extract
-	  DESTDIR to use for the location for shp2pgsql/pgsql2shp. Per
-	  report from Devrim GÜNDÜZ.
-
-2009-07-03 07:21  robe
-
-	* update st_pointn to note it supports circular strings and curves
-
-2009-07-03 04:57  kneufeld
-
-	* removed the images used in the documentation since these are now
-	  generated automatically using ImageMagick.
-
-2009-07-03 04:56  kneufeld
+	* [r4259] STYLE: Update style on commenting required to be picked
+	  up by doxygen
 
-	* updated the doc's README file
+2009-07-05 21:41  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r4258] loader/Makefile.in: Alter loader Makefile to include PGXS
+	  so that we can extract DESTDIR to use for the location for
+	  shp2pgsql/pgsql2shp. Per report from Devrim GÜNDÜZ.
+
+2009-07-03 07:21  Regina Obe <lr at pcorp.us>
+
+	* [r4255] doc/reference.xml: update st_pointn to note it supports
+	  circular strings and curves
+
+2009-07-03 04:57  Kevin Neufeld <kneufeld.ca at gmail.com>
+
+	* [r4254] doc/html/images/st_centroid01.png,
+	  doc/html/images/st_centroid02.png,
+	  doc/html/images/st_centroid03.png,
+	  doc/html/images/st_centroid04.png,
+	  doc/html/images/st_crosses01.gif,
+	  doc/html/images/st_crosses02.gif,
+	  doc/html/images/st_crosses03.gif,
+	  doc/html/images/st_crosses04.gif,
+	  doc/html/images/st_issimple01.png,
+	  doc/html/images/st_issimple02.png,
+	  doc/html/images/st_issimple03.png,
+	  doc/html/images/st_issimple04.png,
+	  doc/html/images/st_issimple05.png,
+	  doc/html/images/st_issimple06.png,
+	  doc/html/images/st_issimple07.png,
+	  doc/html/images/st_isvalid01.png,
+	  doc/html/images/st_isvalid02.png,
+	  doc/html/images/st_isvalid03.png,
+	  doc/html/images/st_isvalid04.png,
+	  doc/html/images/st_isvalid05.png,
+	  doc/html/images/st_isvalid06.png,
+	  doc/html/images/st_isvalid07.png,
+	  doc/html/images/st_isvalid08.png,
+	  doc/html/images/st_touches01.png,
+	  doc/html/images/st_touches02.png,
+	  doc/html/images/st_touches03.png,
+	  doc/html/images/st_touches04.png,
+	  doc/html/images/st_touches05.png,
+	  doc/html/images/st_touches06.png: removed the images used in the
+	  documentation since these are now generated automatically using
+	  ImageMagick.
+
+2009-07-03 04:56  Kevin Neufeld <kneufeld.ca at gmail.com>
+
+	* [r4253] doc/Makefile.in, doc/README: updated the doc's README
+	  file
 	  made "images" a target to "all" so the images get automatically
 	  generated when calling make with no parameters.
 
-2009-07-02 16:57  pramsey
+2009-07-02 16:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add SQL/MM item
+	* [r4252] TODO: Add SQL/MM item
 
-2009-07-02 16:31  pramsey
+2009-07-02 16:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Build doc images as part of distribution build.
+	* [r4250] HOWTO_RELEASE, make_dist.sh: Build doc images as part of
+	  distribution build.
 
-2009-07-02 16:29  pramsey
+2009-07-02 16:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* add generator to ignore
+	* [r4249] doc/html/image_src: add generator to ignore
 
-2009-07-02 16:00  pramsey
+2009-07-02 16:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* more notes on requirements
+	* [r4248] HOWTO_RELEASE: more notes on requirements
 
-2009-07-02 08:31  mleslie
+2009-07-02 08:31  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Making the changes from r4244 and r4245 onto trunk, addressing
+	* [r4246] liblwgeom/lwgparse.c, postgis/lwgeom_ogc.c,
+	  regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected:
+	  Making the changes from r4244 and r4245 onto trunk, addressing
 	  ticket 212.
 
-2009-07-01 16:56  pramsey
+2009-07-01 16:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bring this up to date.
+	* [r4243] CREDITS: Bring this up to date.
 
-2009-07-01 15:42  pramsey
+2009-07-01 15:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix bad memory access in aggregates on nulls (#210), Mark
-	  Cave-Ayland.
+	* [r4238] postgis/lwgeom_accum.c, postgis/lwgeom_geos.c: Fix bad
+	  memory access in aggregates on nulls (#210), Mark Cave-Ayland.
 
-2009-07-01 12:30  robe
+2009-07-01 12:30  Regina Obe <lr at pcorp.us>
 
-	* arg should be text not string for st_buffer
+	* [r4236] doc/reference.xml: arg should be text not string for
+	  st_buffer
 
-2009-07-01 11:53  robe
+2009-07-01 11:53  Regina Obe <lr at pcorp.us>
 
-	* amend documentation on curved support to include new compound
-	  curve in curve polygon support.
+	* [r4234] doc/using_postgis_dataman.xml: amend documentation on
+	  curved support to include new compound curve in curve polygon
+	  support.
 
-2009-06-30 07:46  mleslie
+2009-06-30 07:46  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Enabling the compound curve parsing for segmentisation; reported
-	  in ticket 213
+	* [r4232] liblwgeom/lwsegmentize.c: Enabling the compound curve
+	  parsing for segmentisation; reported in ticket 213
 
-2009-06-30 07:35  mleslie
+2009-06-30 07:35  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* First swing at ticket 212.
+	* [r4231] liblwgeom/lwgunparse.c,
+	  regress/sql-mm-curvepoly_expected: First swing at ticket 212.
 
-2009-06-26 13:43  robe
+2009-06-26 13:43  Regina Obe <lr at pcorp.us>
 
-	* slight correction some functions are not new but enhanced
+	* [r4227] doc/xsl/postgis_aggs_mm.xml.xsl: slight correction some
+	  functions are not new but enhanced
 
-2009-06-26 13:33  robe
+2009-06-26 13:33  Regina Obe <lr at pcorp.us>
 
-	* change ST_Buffer argname from params to buffer_style_params so
-	  torture test can eventually properly exercise it and not feed it
-	  garbage params
+	* [r4225] doc/reference.xml: change ST_Buffer argname from params
+	  to buffer_style_params so torture test can eventually properly
+	  exercise it and not feed it garbage params
 
-2009-06-26 13:30  robe
+2009-06-26 13:30  Regina Obe <lr at pcorp.us>
 
-	* update ST_Buffer so appears in new in PostGIS 1.5 section
+	* [r4224] doc/reference.xml: update ST_Buffer so appears in new in
+	  PostGIS 1.5 section
 
-2009-06-26 13:22  robe
+2009-06-26 13:22  Regina Obe <lr at pcorp.us>
 
-	* try to fix hudson build error
+	* [r4223] doc/xsl/postgis_aggs_mm.xml.xsl: try to fix hudson build
+	  error
 
-2009-06-26 12:43  robe
+2009-06-26 12:43  Regina Obe <lr at pcorp.us>
 
-	* Update special index to include a what is new in 1.5 section
+	* [r4222] doc/xsl/postgis_aggs_mm.xml.xsl: Update special index to
+	  include a what is new in 1.5 section
 
-2009-06-26 09:35  mcayland
+2009-06-26 09:35  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Unbreak the PostGIS universe for people who aren't using GEOS SVN
-	  (will be 3.2).
+	* [r4218] postgis/lwgeom_geos.c, regress/Makefile.in: Unbreak the
+	  PostGIS universe for people who aren't using GEOS SVN (will be
+	  3.2).
 
-2009-06-25 12:01  strk
+2009-06-25 12:01  Sandro Santilli <strk at keybit.net>
 
-	* Put queries right below the diagram showing them
+	* [r4217] doc/reference.xml: Put queries right below the diagram
+	  showing them
 
-2009-06-25 12:00  strk
+2009-06-25 12:00  Sandro Santilli <strk at keybit.net>
 
-	* Make quad_segs images style consistent with others; add original
-	  point
+	* [r4216] doc/html/image_src/st_buffer01.wkt,
+	  doc/html/image_src/st_buffer02.wkt: Make quad_segs images style
+	  consistent with others; add original point
 
-2009-06-25 11:19  strk
+2009-06-25 11:19  Sandro Santilli <strk at keybit.net>
 
-	* Add more styled buffer example images and update reference manual
-	  to include them
+	* [r4215] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_buffer06.wkt,
+	  doc/html/image_src/st_buffer07.wkt,
+	  doc/html/image_src/st_buffer08.wkt, doc/reference.xml: Add more
+	  styled buffer example images and update reference manual to
+	  include them
 
-2009-06-25 10:57  strk
+2009-06-25 10:57  Sandro Santilli <strk at keybit.net>
 
-	* Use thin link style for source linestring
+	* [r4214] doc/html/image_src/st_buffer03.wkt,
+	  doc/html/image_src/st_buffer04.wkt,
+	  doc/html/image_src/st_buffer05.wkt: Use thin link style for
+	  source linestring
 
-2009-06-25 08:16  strk
+2009-06-25 08:16  Sandro Santilli <strk at keybit.net>
 
-	* Add examples of different encdap styles
+	* [r4213] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_buffer03.wkt,
+	  doc/html/image_src/st_buffer04.wkt,
+	  doc/html/image_src/st_buffer05.wkt: Add examples of different
+	  encdap styles
 
-2009-06-25 07:34  strk
+2009-06-25 07:34  Sandro Santilli <strk at keybit.net>
 
-	* Add item for parametrized buffers
+	* [r4212] NEWS: Add item for parametrized buffers
 
-2009-06-25 03:32  robe
+2009-06-25 03:32  Regina Obe <lr at pcorp.us>
 
-	* More cleanup of code comments so function descriptions are picked
-	  up by doxygen
+	* [r4211] loader/shp2pgsql-core.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_estimate.c, postgis/lwgeom_gist.c,
+	  postgis/lwgeom_rtree.c: More cleanup of code comments so function
+	  descriptions are picked up by doxygen
 
-2009-06-25 03:03  robe
+2009-06-25 03:03  Regina Obe <lr at pcorp.us>
 
-	* fix commenting style so function descriptions are picked up by
+	* [r4210] liblwgeom/lwalgorithm.c, liblwgeom/lwgeom_api.c: fix
+	  commenting style so function descriptions are picked up by
 	  doxygen
 
-2009-06-24 22:09  pramsey
+2009-06-24 22:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add news item for #206
+	* [r4209] NEWS: Add news item for #206
 
-2009-06-24 22:08  pramsey
+2009-06-24 22:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for hausdorff distance calculations. Requires GEOS
-	  3.2+. (#209) From Vincent Picavet.
+	* [r4208] doc/reference.xml, postgis/lwgeom_geos.c,
+	  postgis/postgis.sql.in.c, postgis/uninstall_postgis.sql.in.c,
+	  regress/Makefile.in, regress/hausdorff.sql,
+	  regress/hausdorff_expected: Add support for hausdorff distance
+	  calculations. Requires GEOS 3.2+. (#209) From Vincent Picavet.
 	  If you are working off of GEOS trunk, svn up, compile and
 	  install!
 
-2009-06-24 17:10  strk
+2009-06-24 17:10  Sandro Santilli <strk at keybit.net>
 
-	* Add uninstall lines for new buffer signatures
+	* [r4207] postgis/uninstall_postgis.sql.in.c: Add uninstall lines
+	  for new buffer signatures
 
-2009-06-24 13:32  strk
+2009-06-24 13:32  Sandro Santilli <strk at keybit.net>
 
-	* Add tests for parametrized buffer
+	* [r4206] regress/Makefile.in, regress/regress_buffer_params.sql,
+	  regress/regress_buffer_params_expected: Add tests for
+	  parametrized buffer
 
-2009-06-24 13:04  strk
+2009-06-24 13:04  Sandro Santilli <strk at keybit.net>
 
-	* Document third ST_Buffer signature (the one taking parameters as
-	  string).
+	* [r4205] doc/reference.xml: Document third ST_Buffer signature
+	  (the one taking parameters as string).
 
-2009-06-24 11:18  mcayland
+2009-06-24 11:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove validation from shapefile to WKT/WKB conversion to retain
-	  same behaviour as 1.3. Final resolution for #198.
+	* [r4203] loader/shp2pgsql-core.c, loader/shp2pgsql.c: Remove
+	  validation from shapefile to WKT/WKB conversion to retain same
+	  behaviour as 1.3. Final resolution for #198.
 
-2009-06-24 10:44  mcayland
+2009-06-24 10:44  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix accidental typo; module name hardcoded in the .sql.in.c file
-	  rather than being set to MODULE_PATHNAME. Fixes #208.
+	* [r4200] postgis/postgis.sql.in.c: Fix accidental typo; module
+	  name hardcoded in the .sql.in.c file rather than being set to
+	  MODULE_PATHNAME. Fixes #208.
 
-2009-06-24 10:34  strk
+2009-06-24 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Use $$ quoting. See ticket #207.
+	* [r4199] postgis/postgis.sql.in.c: Use $$ quoting. See ticket
+	  #207.
 
-2009-06-23 22:40  strk
+2009-06-23 22:40  Sandro Santilli <strk at keybit.net>
 
-	* Add _ST_Buffer(geom, distance, params); refactor other versions
-	  to all proxy to the new one.
+	* [r4198] postgis/lwgeom_geos.c, postgis/postgis.sql.in.c: Add
+	  _ST_Buffer(geom, distance, params); refactor other versions to
+	  all proxy to the new one.
 
-2009-06-23 20:57  pramsey
+2009-06-23 20:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bump up to 1.5 in trunk
+	* [r4195] NEWS, README.postgis, Version.config: Bump up to 1.5 in
+	  trunk
 
-2009-06-23 16:46  strk
+2009-06-23 16:46  Sandro Santilli <strk at keybit.net>
 
-	* Fix dangerous use of message string as printf-like format.
+	* [r4193] postgis/lwgeom_inout.c: Fix dangerous use of message
+	  string as printf-like format.
 
-2009-06-23 16:38  strk
+2009-06-23 16:38  Sandro Santilli <strk at keybit.net>
 
-	* Yet another buffer auto-cast test. With a different quadSegs this
+	* [r4192] regress/regress_ogc.sql, regress/regress_ogc_expected:
+	  Yet another buffer auto-cast test. With a different quadSegs this
 	  time to be really sure the argument is being used.
 
-2009-06-23 16:36  strk
+2009-06-23 16:36  Sandro Santilli <strk at keybit.net>
 
-	* Add test for third argument to buffer() being a string (based on
+	* [r4191] regress/regress_ogc.sql, regress/regress_ogc_expected:
+	  Add test for third argument to buffer() being a string (based on
 	  auto-cast)
 
-2009-06-22 03:12  robe
-
-	* Put in minimal GEOS requirement for ST_Covers and ST_CoveredBy.
-	  Its not necessary for 1.4 really but oh well.
+2009-06-22 03:12  Regina Obe <lr at pcorp.us>
 
-2009-06-20 22:13  strk
+	* [r4190] doc/reference.xml: Put in minimal GEOS requirement for
+	  ST_Covers and ST_CoveredBy. Its not necessary for 1.4 really but
+	  oh well.
 
-	* Gracefully handle typed empty GEOS geometries.
+2009-06-20 22:13  Sandro Santilli <strk at keybit.net>
 
-2009-06-20 21:26  strk
-
-	* Add tests for area() called against empty geometries
+	* [r4189] postgis/lwgeom_geos.c: Gracefully handle typed empty GEOS
+	  geometries.
 
-2009-06-20 21:25  strk
+2009-06-20 21:26  Sandro Santilli <strk at keybit.net>
 
-	* Handle empty polygon rings
+	* [r4188] regress/measures.sql, regress/measures_expected: Add
+	  tests for area() called against empty geometries
 
-2009-06-19 17:12  robe
+2009-06-20 21:25  Sandro Santilli <strk at keybit.net>
 
-	* get rid of ref_geom so doesn't break agg checks
+	* [r4187] liblwgeom/measures.c: Handle empty polygon rings
 
-2009-06-19 15:13  robe
+2009-06-19 17:12  Regina Obe <lr at pcorp.us>
 
-	* test not handling aggregates right
+	* [r4185] doc/xsl/postgis_gardentest.sql.xsl: get rid of ref_geom
+	  so doesn't break agg checks
 
-2009-06-19 14:18  robe
+2009-06-19 15:13  Regina Obe <lr at pcorp.us>
 
-	* typo in docs --
+	* [r4184] doc/xsl/postgis_gardentest.sql.xsl: test not handling
+	  aggregates right
 
-2009-06-19 12:20  robe
+2009-06-19 14:18  Regina Obe <lr at pcorp.us>
 
-	* fix type and add --with-gui description for building loader gui
+	* [r4183] doc/reference.xml: typo in docs --
 
-2009-06-16 15:53  robe
+2009-06-19 12:20  Regina Obe <lr at pcorp.us>
 
-	* Forgot ST_MinimumBoundingCircle and credit Bruce Rindahl
+	* [r4182] doc/installation.xml: fix type and add --with-gui
+	  description for building loader gui
 
-2009-06-15 17:48  pramsey
+2009-06-16 15:53  Regina Obe <lr at pcorp.us>
 
-	* More updates
+	* [r4175] NEWS: Forgot ST_MinimumBoundingCircle and credit Bruce
+	  Rindahl
 
-2009-06-15 17:42  pramsey
+2009-06-15 17:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update doc instructions.
+	* [r4173] HOWTO_RELEASE: More updates
 
-2009-06-12 15:30  robe
+2009-06-15 17:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* replace _VOLATILE_STRICT with VOLATILE STRICT
+	* [r4172] HOWTO_RELEASE: Update doc instructions.
 
-2009-06-12 15:14  robe
+2009-06-12 15:30  Regina Obe <lr at pcorp.us>
 
-	* Change _VOLATILE to VOLATILE
+	* [r4170] postgis/long_xact.sql.in.c: replace _VOLATILE_STRICT with
+	  VOLATILE STRICT
 
-2009-06-11 16:44  pramsey
+2009-06-12 15:14  Regina Obe <lr at pcorp.us>
 
-	* astyle --style=ansi --indent=tab (#133)
+	* [r4169] postgis/postgis.sql.in.c: Change _VOLATILE to VOLATILE
 
-2009-06-11 16:31  pramsey
+2009-06-11 16:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* remove file that should never have been added
+	* [r4168] doc/html/image_src/generator.c,
+	  doc/html/image_src/styles.c, doc/html/image_src/styles.h,
+	  extras/WFS_locks/WFS_locks.c, extras/wkb_reader/printwkb.c,
+	  extras/wkb_reader/readwkb.c, extras/wkb_reader/wkbtest.h,
+	  liblwgeom/box2d.c, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_measures.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/examples/unparser.c, liblwgeom/lex.yy.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwline.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwutil.c,
+	  liblwgeom/measures.c, liblwgeom/ptarray.c, liblwgeom/vsprintf.c,
+	  liblwgeom/wktparse.h, liblwgeom/wktparse.tab.c,
+	  liblwgeom/wktparse.tab.h, loader/dbfopen.c, loader/getopt.c,
+	  loader/getopt.h, loader/shapefil.h, loader/shpopen.c,
+	  loader/stringbuffer.c, loader/stringbuffer.h,
+	  postgis/long_xact.c, postgis/lwgeom_accum.c,
+	  postgis/lwgeom_box2dfloat4.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_btree.c, postgis/lwgeom_chip.c,
+	  postgis/lwgeom_debug.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_estimate.c, postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_functions_lrs.c,
+	  postgis/lwgeom_geojson.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos.h, postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_prepared.h, postgis/lwgeom_gist.c,
+	  postgis/lwgeom_gml.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_kml.c, postgis/lwgeom_ogc.c, postgis/lwgeom_pg.c,
+	  postgis/lwgeom_pg.h, postgis/lwgeom_spheroid.c,
+	  postgis/lwgeom_svg.c, postgis/lwgeom_transform.c,
+	  postgis/lwgeom_triggers.c: astyle --style=ansi --indent=tab
+	  (#133)
+
+2009-06-11 16:31  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r4167] postgis/test.c: remove file that should never have been
+	  added
 
-2009-06-11 15:52  pramsey
+2009-06-11 15:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Clean up old compatibility code. (#196)
+	* [r4166] postgis/long_xact.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/sqldefines.h.in, postgis/sqlmm.sql.in.c: Clean up old
+	  compatibility code. (#196)
 
-2009-06-11 13:28  mcayland
+2009-06-11 13:28  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Further fix for #156, and also #167 it seems. Looks like I forgot
-	  to apply the fix to the WKB routines aswell.
+	* [r4165] liblwgeom/lwgunparse.c: Further fix for #156, and also
+	  #167 it seems. Looks like I forgot to apply the fix to the WKB
+	  routines aswell.
 
-2009-06-10 14:51  robe
+2009-06-10 14:51  Regina Obe <lr at pcorp.us>
 
-	* correct example
+	* [r4164] doc/reference.xml: correct example
 
-2009-06-10 01:26  robe
+2009-06-10 01:26  Regina Obe <lr at pcorp.us>
 
-	* Add David Techer, new doco enhancements, new
+	* [r4162] NEWS: Add David Techer, new doco enhancements, new
 	  populate_geometry_columns
 
-2009-06-10 01:18  robe
+2009-06-10 01:18  Regina Obe <lr at pcorp.us>
 
-	* Add Jean David Techer to list of contributors
+	* [r4161] NEWS: Add Jean David Techer to list of contributors
 
-2009-06-09 23:54  pramsey
+2009-06-09 23:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update the hard upgrade script to handle 1.4 transition. (#144)
+	* [r4160] utils/postgis_restore.pl: Update the hard upgrade script
+	  to handle 1.4 transition. (#144)
 
-2009-06-09 23:27  pramsey
+2009-06-09 23:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Closes (#134)
+	* [r4159] NEWS: Closes (#134)
 
-2009-06-09 22:51  pramsey
+2009-06-09 22:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More work on 1.4 upgrade script.
+	* [r4158] doc/html/image_src, utils/postgis_proc_upgrade.pl: More
+	  work on 1.4 upgrade script.
 
-2009-06-09 22:14  pramsey
+2009-06-09 22:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More fixes to upgrade process.
+	* [r4157] postgis, postgis/postgis.sql.in.c: More fixes to upgrade
+	  process.
 
-2009-06-08 23:21  pramsey
+2009-06-08 23:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Work on upgrade script.
+	* [r4156] postgis/postgis.sql.in.c, utils/postgis_proc_upgrade.pl:
+	  Work on upgrade script.
 
-2009-06-08 22:33  pramsey
+2009-06-08 22:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Turn "CREATE OR REPLACE FUNCTION" into "CREATEFUNCTION" for
-	  preprocessing magic.
+	* [r4155] postgis/postgis.sql.in.c: Turn "CREATE OR REPLACE
+	  FUNCTION" into "CREATEFUNCTION" for preprocessing magic.
 
-2009-06-08 22:30  pramsey
+2009-06-08 22:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* remove syntax error
+	* [r4154] postgis/postgis.sql.in.c: remove syntax error
 
-2009-06-08 19:40  pramsey
+2009-06-08 19:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated to EPSG 7.1 version (#191)
+	* [r4153] spatial_ref_sys.sql: Updated to EPSG 7.1 version (#191)
 
-2009-06-08 17:35  robe
+2009-06-08 17:35  Regina Obe <lr at pcorp.us>
 
-	* #190: populate_geometry_columns gives nonstandard use of \' in a
-	  string literal in 8.4
+	* [r4152] postgis/postgis.sql.in.c: #190: populate_geometry_columns
+	  gives nonstandard use of \' in a string literal in 8.4
 
-2009-06-06 14:09  mcayland
+2009-06-06 14:09  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add a new uninstall_postgis.sql file to the repository that will
-	  enable the complete removal of PostGIS from a database.
+	* [r4147] postgis/Makefile.in, postgis/long_xact.sql.in,
+	  postgis/long_xact.sql.in.c, postgis/postgis.sql.in.c,
+	  postgis/sqlmm.sql.in, postgis/sqlmm.sql.in.c,
+	  postgis/uninstall_long_xact.sql.in.c,
+	  postgis/uninstall_postgis.sql.in.c,
+	  postgis/uninstall_sqlmm.sql.in.c: Add a new uninstall_postgis.sql
+	  file to the repository that will enable the complete removal of
+	  PostGIS from a database.
 
-2009-06-04 15:29  robe
+2009-06-04 15:29  Regina Obe <lr at pcorp.us>
 
-	* updated to make 8.2 minimum for Linux as well (its too confusing
-	  to have minimum 8.2 for windows and not for Linux as well)
+	* [r4136] NEWS: updated to make 8.2 minimum for Linux as well (its
+	  too confusing to have minimum 8.2 for windows and not for Linux
+	  as well)
 
-2009-06-04 15:20  robe
+2009-06-04 15:20  Regina Obe <lr at pcorp.us>
 
-	* change ReadME and installation to change minimum version from 8.1
-	  to 8.2 (not many people are running 8.1 and besides Paul already
-	  put in a DROP AGG IF EXISTS in upgrade script -- so binds us to
-	  8.2+ already. Besides I don't think we should be supporting more
-	  than 2 versions behind of latest PostgreSQL release in our trunk.
-	  Too much maintenance. Correct ReadME bug tracker link
+	* [r4135] README.postgis, doc/installation.xml: change ReadME and
+	  installation to change minimum version from 8.1 to 8.2 (not many
+	  people are running 8.1 and besides Paul already put in a DROP AGG
+	  IF EXISTS in upgrade script -- so binds us to 8.2+ already.
+	  Besides I don't think we should be supporting more than 2
+	  versions behind of latest PostgreSQL release in our trunk. Too
+	  much maintenance. Correct ReadME bug tracker link
 
-2009-06-04 14:17  pramsey
+2009-06-04 14:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for #192.
+	* [r4134] regress/Makefile.in, regress/run_test: Fix for #192.
 
-2009-06-03 23:56  pramsey
+2009-06-03 23:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for issue #189, includes implicit requirement for 8.2+ in
-	  DROP AGGREGATE
+	* [r4132] postgis/Makefile.in, utils/postgis_proc_upgrade.pl: Fix
+	  for issue #189, includes implicit requirement for 8.2+ in DROP
+	  AGGREGATE
 
-2009-06-03 23:07  pramsey
+2009-06-03 23:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for issue #186
+	* [r4131] regress/Makefile.in, regress/run_test: Fix for issue #186
 
-2009-06-03 22:46  pramsey
+2009-06-03 22:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* remove warnings from autoconf process
+	* [r4130] configure.ac: remove warnings from autoconf process
 
-2009-05-29 18:10  kneufeld
+2009-05-29 18:10  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* small typo in Populate_Geometry_Columns doc
+	* [r4113] doc/reference.xml: small typo in
+	  Populate_Geometry_Columns doc
 
-2009-05-27 17:14  kneufeld
+2009-05-27 17:14  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* performed an overhaul of the installation guide ... hopefully
-	  it's easier to follow.
+	* [r4111] doc, doc/html/style.css, doc/installation.xml,
+	  doc/xmlformat.conf: performed an overhaul of the installation
+	  guide ... hopefully it's easier to follow.
 
-2009-05-26 18:35  kneufeld
+2009-05-26 18:35  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated the comments-install make target
+	* [r4110] doc/Makefile.in: updated the comments-install make target
 
-2009-05-26 18:28  kneufeld
+2009-05-26 18:28  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added version numbers to the requirements section in the
-	  installation doc.
+	* [r4109] doc/installation.xml: added version numbers to the
+	  requirements section in the installation doc.
 
-2009-05-26 18:27  kneufeld
+2009-05-26 18:27  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added dblatex and convert to the status lines at the end of
-	  configure
+	* [r4108] configure.ac: added dblatex and convert to the status
+	  lines at the end of configure
 
-2009-05-26 18:10  kneufeld
+2009-05-26 18:10  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added postgis_aggs_mm.xml to the 'make clean' target
+	* [r4107] doc/Makefile.in: added postgis_aggs_mm.xml to the 'make
+	  clean' target
 
-2009-05-26 18:00  kneufeld
+2009-05-26 18:00  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added postgis_comments.sql as a target to the main makefile
+	* [r4106] GNUmakefile, configure.ac, doc/Makefile.in: added
+	  postgis_comments.sql as a target to the main makefile
 	  
 	  Since we don't want to add xsltproc as a dependency, this will
 	  remain separate for now:
@@ -31273,1335 +49509,1758 @@
 	  
 	  (the file should be removed by 'make uninstall')
 
-2009-05-26 17:24  robe
+2009-05-26 17:24  Regina Obe <lr at pcorp.us>
 
-	* make example fit the diagram in text
+	* [r4105] doc/reference.xml: make example fit the diagram in text
 
-2009-05-26 17:08  robe
+2009-05-26 17:08  Regina Obe <lr at pcorp.us>
 
-	* Make lame circle more lame
+	* [r4104] doc/html/image_src/st_buffer02.wkt, doc/reference.xml:
+	  Make lame circle more lame
 
-2009-05-26 16:47  robe
+2009-05-26 16:47  Regina Obe <lr at pcorp.us>
 
-	* put in images for buffer, fix within example image and example
-	  query
+	* [r4103] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_buffer01.wkt,
+	  doc/html/image_src/st_buffer02.wkt,
+	  doc/html/image_src/st_within01.wkt, doc/reference.xml: put in
+	  images for buffer, fix within example image and example query
 
-2009-05-26 16:26  robe
+2009-05-26 16:26  Regina Obe <lr at pcorp.us>
 
-	* for consistency make example be same as what is used to generate
-	  the image.
+	* [r4102] doc/reference.xml: for consistency make example be same
+	  as what is used to generate the image.
 
-2009-05-26 16:24  robe
+2009-05-26 16:24  Regina Obe <lr at pcorp.us>
 
-	* bad image try again
+	* [r4101] doc/html/image_src/st_within01.wkt: bad image try again
 
-2009-05-26 15:05  robe
+2009-05-26 15:05  Regina Obe <lr at pcorp.us>
 
-	* Add st_within example to makefile and translate example so in
-	  viewable region.
+	* [r4100] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_within01.wkt: Add st_within example to
+	  makefile and translate example so in viewable region.
 
-2009-05-25 20:26  kneufeld
+2009-05-25 20:26  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added a status line to the main makefile that indicates if
-	  PostGIS was built successfully.
+	* [r4099] GNUmakefile: added a status line to the main makefile
+	  that indicates if PostGIS was built successfully.
 
-2009-05-24 07:52  robe
+2009-05-24 07:52  Regina Obe <lr at pcorp.us>
 
-	* update to include behavior for 3D and also note this seems to go
-	  beyond what the spec defines.
+	* [r4098] doc/reference.xml: update to include behavior for 3D and
+	  also note this seems to go beyond what the spec defines.
 
-2009-05-22 23:22  kneufeld
+2009-05-22 23:22  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* use a docbook variable instead
+	* [r4097] doc/installation.xml: use a docbook variable instead
 
-2009-05-22 23:19  kneufeld
+2009-05-22 23:19  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* didn't need the c preprocessor after all
+	* [r4096] doc/Makefile.in, doc/installation.xml,
+	  doc/installation.xml.in: didn't need the c preprocessor after all
 
-2009-05-22 22:14  kneufeld
+2009-05-22 22:14  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Added a Short Version section.
+	* [r4095] doc/installation.xml.in: Added a Short Version section.
 	  Updated requirements.
 
-2009-05-22 22:07  kneufeld
+2009-05-22 22:07  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* formatted installation.xml in preparation for editing
+	* [r4094] doc/Makefile.in, doc/installation.xml,
+	  doc/installation.xml.in: formatted installation.xml in
+	  preparation for editing
 
-2009-05-22 21:32  kneufeld
+2009-05-22 21:32  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added the xmlformatter conf file for pretty printing the
-	  documentation's xml files
+	* [r4093] doc/xmlformat.conf: added the xmlformatter conf file for
+	  pretty printing the documentation's xml files
 	  
 	  This will allow us to separate code changes from style changes in
 	  the docs.
 
-2009-05-20 11:16  robe
+2009-05-20 11:16  Regina Obe <lr at pcorp.us>
 
-	* Testing out Kevin's auto image generator hopefully I didn't break
+	* [r4092] doc/html/image_src/st_within01.wkt, doc/reference.xml:
+	  Testing out Kevin's auto image generator hopefully I didn't break
 	  it.
 
-2009-05-20 10:54  robe
+2009-05-20 10:54  Regina Obe <lr at pcorp.us>
 
-	* Correct ST_GeometryN example -- sign was wrong. Also embellish by
-	  showing a multicurve and flag as working for multicurves
+	* [r4091] doc/reference.xml: Correct ST_GeometryN example -- sign
+	  was wrong. Also embellish by showing a multicurve and flag as
+	  working for multicurves
 
-2009-05-19 20:49  kneufeld
+2009-05-19 20:49  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added image examples to ST_Contains
+	* [r4089] doc/html/image_src/Makefile.in,
+	  doc/html/image_src/st_contains01.wkt,
+	  doc/html/image_src/st_contains02.wkt,
+	  doc/html/image_src/st_contains03.wkt,
+	  doc/html/image_src/st_contains04.wkt,
+	  doc/html/image_src/st_contains05.wkt,
+	  doc/html/image_src/st_contains06.wkt, doc/reference.xml: added
+	  image examples to ST_Contains
 
-2009-05-19 03:44  robe
+2009-05-19 03:44  Regina Obe <lr at pcorp.us>
 
-	* Example exploding a compoundcurve, also reference to ST_GeometryN
-	  since they serve similar purposes
+	* [r4085] doc/reference.xml: Example exploding a compoundcurve,
+	  also reference to ST_GeometryN since they serve similar purposes
 
-2009-05-14 23:42  kneufeld
+2009-05-14 23:42  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added styles to the generated documentation images
+	* [r4081] configure.ac, doc/Makefile.in,
+	  doc/html/image_src/Makefile.in, doc/html/image_src/generator.c,
+	  doc/html/image_src/st_centroid01.wkt,
+	  doc/html/image_src/st_centroid02.wkt,
+	  doc/html/image_src/st_centroid03.wkt,
+	  doc/html/image_src/st_centroid04.wkt,
+	  doc/html/image_src/st_crosses01.wkt,
+	  doc/html/image_src/st_crosses02.wkt,
+	  doc/html/image_src/st_crosses03.wkt,
+	  doc/html/image_src/st_crosses04.wkt,
+	  doc/html/image_src/st_issimple01.wkt,
+	  doc/html/image_src/st_issimple02.wkt,
+	  doc/html/image_src/st_issimple03.wkt,
+	  doc/html/image_src/st_issimple04.wkt,
+	  doc/html/image_src/st_issimple05.wkt,
+	  doc/html/image_src/st_issimple06.wkt,
+	  doc/html/image_src/st_issimple07.wkt,
+	  doc/html/image_src/st_isvalid01.wkt,
+	  doc/html/image_src/st_isvalid02.wkt,
+	  doc/html/image_src/st_isvalid03.wkt,
+	  doc/html/image_src/st_isvalid04.wkt,
+	  doc/html/image_src/st_isvalid05.wkt,
+	  doc/html/image_src/st_isvalid06.wkt,
+	  doc/html/image_src/st_isvalid07.wkt,
+	  doc/html/image_src/st_isvalid08.wkt,
+	  doc/html/image_src/st_touches01.wkt,
+	  doc/html/image_src/st_touches02.wkt,
+	  doc/html/image_src/st_touches03.wkt,
+	  doc/html/image_src/st_touches04.wkt,
+	  doc/html/image_src/st_touches05.wkt,
+	  doc/html/image_src/st_touches06.wkt, doc/html/image_src/styles.c,
+	  doc/html/image_src/styles.conf, doc/html/image_src/styles.h,
+	  doc/reference.xml: added styles to the generated documentation
+	  images
 	  added ImageMagick as a dependency
 
-2009-05-09 12:53  mcayland
-
-	* Fix #178: ST_XMax() and ST_YMax() return incorrect values. This
-	  was caused by the fact that the min/max routines did not check
-	  whether the result for each axis was actually the min or max, but
-	  instead simply returned the structure value. Hence if an inverted
-	  coordinate system were being used, the wrong value would be
-	  returned.
-
-2009-05-09 12:34  mcayland
-
-	* Remove a double-free bug caused if the unparser finds an invalid
-	  geometry (fixes #168)
-
-2009-05-09 11:46  mcayland
-
-	* Correct erroneus formatting which was causing two comments to be
-	  nested and hence generating a compiler warning.
-
-2009-05-06 23:32  kneufeld
-
-	* removed horrible dos carriage returns
+2009-05-09 12:53  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r4079] postgis/lwgeom_box3d.c: Fix #178: ST_XMax() and ST_YMax()
+	  return incorrect values. This was caused by the fact that the
+	  min/max routines did not check whether the result for each axis
+	  was actually the min or max, but instead simply returned the
+	  structure value. Hence if an inverted coordinate system were
+	  being used, the wrong value would be returned.
+
+2009-05-09 12:34  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r4078] liblwgeom/lwgunparse.c: Remove a double-free bug caused
+	  if the unparser finds an invalid geometry (fixes #168)
+
+2009-05-09 11:46  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r4077] loader/shp2pgsql.c: Correct erroneus formatting which was
+	  causing two comments to be nested and hence generating a compiler
+	  warning.
+
+2009-05-06 23:32  Kevin Neufeld <kneufeld.ca at gmail.com>
+
+	* [r4076] doc/html/image_src/generator.c,
+	  doc/html/image_src/st_centroid02.wkt,
+	  doc/html/image_src/st_centroid03.wkt,
+	  doc/html/image_src/st_centroid04.wkt,
+	  doc/html/image_src/st_crosses01.wkt,
+	  doc/html/image_src/st_crosses02.wkt,
+	  doc/html/image_src/st_crosses03.wkt,
+	  doc/html/image_src/st_crosses04.wkt,
+	  doc/html/image_src/st_issimple01.wkt,
+	  doc/html/image_src/st_issimple02.wkt,
+	  doc/html/image_src/st_issimple03.wkt,
+	  doc/html/image_src/st_issimple04.wkt,
+	  doc/html/image_src/st_issimple05.wkt,
+	  doc/html/image_src/st_issimple06.wkt,
+	  doc/html/image_src/st_issimple07.wkt,
+	  doc/html/image_src/st_isvalid01.wkt,
+	  doc/html/image_src/st_isvalid02.wkt,
+	  doc/html/image_src/st_isvalid03.wkt,
+	  doc/html/image_src/st_isvalid04.wkt,
+	  doc/html/image_src/st_isvalid05.wkt: removed horrible dos
+	  carriage returns
 	  - convert to unix
 
-2009-05-06 23:20  kneufeld
+2009-05-06 23:20  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Added code that will automatically generate the spatial images
-	  used in the documentation from WKT input.
-
-2009-05-06 18:11  robe
-
-	* typo
-
-2009-05-06 18:04  robe
-
-	* update with 1.3.6 items
-
-2009-05-05 19:40  pramsey
-
-	* Add 900913 to allow web mappers a smoother ride.
-
-2009-05-05 04:44  robe
-
-	* doxygen friendly comments
+	* [r4075] configure.ac, doc/Makefile.in,
+	  doc/html/image_src/Makefile.in, doc/html/image_src/generator.c,
+	  doc/html/image_src/st_centroid01.svg,
+	  doc/html/image_src/st_centroid01.wkt,
+	  doc/html/image_src/st_centroid02.svg,
+	  doc/html/image_src/st_centroid02.wkt,
+	  doc/html/image_src/st_centroid03.svg,
+	  doc/html/image_src/st_centroid03.wkt,
+	  doc/html/image_src/st_centroid04.svg,
+	  doc/html/image_src/st_centroid04.wkt,
+	  doc/html/image_src/st_crosses01.wkt,
+	  doc/html/image_src/st_crosses02.wkt,
+	  doc/html/image_src/st_crosses03.wkt,
+	  doc/html/image_src/st_crosses04.wkt,
+	  doc/html/image_src/st_issimple01.wkt,
+	  doc/html/image_src/st_issimple02.wkt,
+	  doc/html/image_src/st_issimple03.wkt,
+	  doc/html/image_src/st_issimple04.wkt,
+	  doc/html/image_src/st_issimple05.wkt,
+	  doc/html/image_src/st_issimple06.wkt,
+	  doc/html/image_src/st_issimple07.wkt,
+	  doc/html/image_src/st_isvalid01.wkt,
+	  doc/html/image_src/st_isvalid02.wkt,
+	  doc/html/image_src/st_isvalid03.wkt,
+	  doc/html/image_src/st_isvalid04.wkt,
+	  doc/html/image_src/st_isvalid05.wkt,
+	  doc/html/image_src/st_touches01.svg,
+	  doc/html/image_src/st_touches02.svg,
+	  doc/html/image_src/st_touches03.svg,
+	  doc/html/image_src/st_touches04.svg,
+	  doc/html/image_src/st_touches05.svg,
+	  doc/html/image_src/st_touches06.svg: Added code that will
+	  automatically generate the spatial images used in the
+	  documentation from WKT input.
+
+2009-05-06 18:11  Regina Obe <lr at pcorp.us>
+
+	* [r4073] NEWS: typo
+
+2009-05-06 18:04  Regina Obe <lr at pcorp.us>
+
+	* [r4072] NEWS: update with 1.3.6 items
+
+2009-05-05 19:40  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r4070] spatial_ref_sys.sql: Add 900913 to allow web mappers a
+	  smoother ride.
+
+2009-05-05 04:44  Regina Obe <lr at pcorp.us>
+
+	* [r4069] postgis/lwgeom_functions_basic.c: doxygen friendly
+	  comments
 
-2009-05-05 04:29  robe
+2009-05-05 04:29  Regina Obe <lr at pcorp.us>
 
-	* doxygen friendly comments
+	* [r4068] postgis/lwgeom_accum.c, postgis/lwgeom_geojson.c,
+	  postgis/lwgeom_gml.c, postgis/lwgeom_ogc.c, postgis/lwgeom_svg.c,
+	  postgis/lwgeom_transform.c, postgis/lwgeom_triggers.c: doxygen
+	  friendly comments
 
-2009-05-04 18:00  robe
+2009-05-04 18:00  Regina Obe <lr at pcorp.us>
 
-	* more doxygen comment cleanup
+	* [r4064] liblwgeom/lwmpoly.c, liblwgeom/wktparse.h,
+	  postgis/lwgeom_kml.c: more doxygen comment cleanup
 
-2009-05-03 04:36  robe
+2009-05-03 04:36  Regina Obe <lr at pcorp.us>
 
-	* slight mod
+	* [r4062] postgis/lwgeom_geos.c: slight mod
 
-2009-05-03 04:32  robe
+2009-05-03 04:32  Regina Obe <lr at pcorp.us>
 
-	* make doco descriptions doxygen/javadoc friendly
+	* [r4061] postgis/lwgeom_geos.c: make doco descriptions
+	  doxygen/javadoc friendly
 
-2009-05-03 03:58  robe
+2009-05-03 03:58  Regina Obe <lr at pcorp.us>
 
-	* make function doc doxygen friendly
+	* [r4060] liblwgeom/lwgeom.c: make function doc doxygen friendly
 
-2009-05-03 03:50  robe
+2009-05-03 03:50  Regina Obe <lr at pcorp.us>
 
-	* make function descriptor doxygen friendly
+	* [r4059] liblwgeom/lwcompound.c: make function descriptor doxygen
+	  friendly
 
-2009-05-03 03:33  robe
+2009-05-03 03:33  Regina Obe <lr at pcorp.us>
 
-	* enable alphabetical index
+	* [r4058] doc/doxygen.cfg.in: enable alphabetical index
 
-2009-05-03 03:16  robe
+2009-05-03 03:16  Regina Obe <lr at pcorp.us>
 
-	* change commenting style to javadoc style
+	* [r4057] liblwgeom/lwalgorithm.c, liblwgeom/lwcollection.c,
+	  liblwgeom/ptarray.c, loader/pgsql2shp.c, loader/shp2pgsql.c:
+	  change commenting style to javadoc style
 
-2009-05-03 03:03  robe
+2009-05-03 03:03  Regina Obe <lr at pcorp.us>
 
-	* enable javadoc autobrief
+	* [r4056] doc/doxygen.cfg.in: enable javadoc autobrief
 
-2009-05-02 09:40  robe
+2009-05-02 09:40  Regina Obe <lr at pcorp.us>
 
-	* make function descriptions doxygen friendly
+	* [r4054] loader/pgsql2shp.c, loader/shp2pgsql.c: make function
+	  descriptions doxygen friendly
 
-2009-05-02 07:13  robe
+2009-05-02 07:13  Regina Obe <lr at pcorp.us>
 
-	* make function descriptions doxygen friendly
+	* [r4053] liblwgeom/ptarray.c: make function descriptions doxygen
+	  friendly
 
-2009-05-02 06:27  robe
+2009-05-02 06:27  Regina Obe <lr at pcorp.us>
 
-	* Experimenting with Doxygen hyperlinking tags
+	* [r4052] liblwgeom/lwalgorithm.c, liblwgeom/lwcollection.c:
+	  Experimenting with Doxygen hyperlinking tags
 
-2009-05-01 22:47  robe
+2009-05-01 22:47  Regina Obe <lr at pcorp.us>
 
-	* More experimentation with doxygen commenting styles
+	* [r4051] liblwgeom/lwcollection.c: More experimentation with
+	  doxygen commenting styles
 
-2009-05-01 04:26  robe
+2009-05-01 04:26  Regina Obe <lr at pcorp.us>
 
-	* More auto doc friendlying
+	* [r4049] liblwgeom/lwcollection.c: More auto doc friendlying
 
-2009-05-01 04:24  robe
+2009-05-01 04:24  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r4048] liblwgeom/lwcollection.c: typo
 
-2009-05-01 04:24  robe
+2009-05-01 04:24  Regina Obe <lr at pcorp.us>
 
-	* experiment with making our inline comments more doxygen friendly
+	* [r4047] liblwgeom/lwcollection.c: experiment with making our
+	  inline comments more doxygen friendly
 
-2009-04-30 22:26  kneufeld
+2009-04-30 22:26  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated several Doxygen parameters
+	* [r4045] doc/doxygen.cfg.in: updated several Doxygen parameters
 
-2009-04-30 21:38  kneufeld
+2009-04-30 21:38  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* removed full path names from config file
+	* [r4044] doc/doxygen.cfg.in: removed full path names from config
+	  file
 
-2009-04-30 20:19  kneufeld
+2009-04-30 20:19  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* add make target to build Doxygen
+	* [r4043] doc/Makefile.in, doc/doxygen.cfg.in: add make target to
+	  build Doxygen
 
-2009-04-30 19:41  kneufeld
+2009-04-30 19:41  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added a Doxygen configuration file
+	* [r4042] doc/doxygen.cfg.in: added a Doxygen configuration file
 
-2009-04-29 19:22  kneufeld
+2009-04-29 19:22  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* dropping a table that's not there causes an ERROR in the logs
+	* [r4040] regress/run_test: dropping a table that's not there
+	  causes an ERROR in the logs
 	  - 8.1 does not support DROP TABLE IF EXISTS, so first test if the
 	  table is there, then drop it.
 
-2009-04-28 19:13  colivier
+2009-04-28 19:13  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add a new option for ST_AsGML related to axis order, and lat lon
-	  inversion in GML 3.1.1, cf #161. Add unit test on this new option
-	  bit field. Update documentation. Fix also wrong option value in
-	  ST_AsGML for CRS, and outdated example output (still for
-	  ST_AsGML).
+	* [r4039] doc/reference.xml, postgis/lwgeom_gml.c, regress/gml.sql,
+	  regress/gml_expected: Add a new option for ST_AsGML related to
+	  axis order, and lat lon inversion in GML 3.1.1, cf #161. Add unit
+	  test on this new option bit field. Update documentation. Fix also
+	  wrong option value in ST_AsGML for CRS, and outdated example
+	  output (still for ST_AsGML).
 
-2009-04-28 17:04  kneufeld
+2009-04-28 17:04  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* - removed a few compile errors from the javadoc build
+	* [r4038] java/jdbc/build.xml,
+	  java/jdbc/src/org/postgis/Geometry.java,
+	  java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java: -
+	  removed a few compile errors from the javadoc build
 	  - renamed jar so it follows the name-version convention
 
-2009-04-27 22:07  robe
+2009-04-27 22:07  Regina Obe <lr at pcorp.us>
 
-	* change error about unknown spatial ref to a warning.
+	* [r4034] loader/pgsql2shp.c: change error about unknown spatial
+	  ref to a warning.
 
-2009-04-27 19:46  kneufeld
+2009-04-27 19:46  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* test commit
+	* [r4030] doc/template.xml: test commit
 
-2009-04-27 19:24  kneufeld
+2009-04-27 19:24  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* test commit
+	* [r4029] doc/postgis.xml: test commit
 
-2009-04-27 19:07  kneufeld
+2009-04-27 19:07  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Test commit to test autobuild
+	* [r4026] doc/faq.xml: Test commit to test autobuild
 
-2009-04-27 16:09  robe
+2009-04-27 16:09  Regina Obe <lr at pcorp.us>
 
-	* revise to better guarantee a deteriministic sort so can diff
-	  compare between 1.3.5, 1.3.6, 1.4 (still needs work). Also
-	  exclude curved tests and functions not supported in 1.3.5 since
-	  it curve crashes 1.3.5 thus making it not comparable.
+	* [r4025] doc/xsl/postgis_gardentest.sql.xsl: revise to better
+	  guarantee a deteriministic sort so can diff compare between
+	  1.3.5, 1.3.6, 1.4 (still needs work). Also exclude curved tests
+	  and functions not supported in 1.3.5 since it curve crashes 1.3.5
+	  thus making it not comparable.
 
-2009-04-26 05:37  kneufeld
+2009-04-26 05:37  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* small typo fix
+	* [r4023] doc/reference.xml: small typo fix
 
-2009-04-24 19:13  pramsey
+2009-04-24 19:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* add feature mangling task
+	* [r4020] TODO: add feature mangling task
 
-2009-04-23 14:36  robe
+2009-04-23 14:36  Regina Obe <lr at pcorp.us>
 
-	* exclude curved geometries from 1.3.5 testing
+	* [r4019] doc/xsl/postgis_gardentest.sql.xsl: exclude curved
+	  geometries from 1.3.5 testing
 
-2009-04-23 12:12  robe
+2009-04-23 12:12  Regina Obe <lr at pcorp.us>
 
-	* Add ST_BdMPolyFromText to list not to test against 1.3.5 (crashes
+	* [r4018] doc/xsl/postgis_gardentest.sql.xsl: Add
+	  ST_BdMPolyFromText to list not to test against 1.3.5 (crashes
 	  1.3.5 with curves though fine in 1.3.6)
 
-2009-04-22 18:33  robe
+2009-04-22 18:33  Regina Obe <lr at pcorp.us>
 
-	* revise to include a version variable and get rid of limit (think
-	  its causing different tests to be run non-consistently depending
-	  on ordering of postgresql so hard to compare outputs)
+	* [r4017] doc/xsl/postgis_gardentest.sql.xsl: revise to include a
+	  version variable and get rid of limit (think its causing
+	  different tests to be run non-consistently depending on ordering
+	  of postgresql so hard to compare outputs)
 
-2009-04-21 17:45  pramsey
+2009-04-21 17:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More info about XSL in final configure output
+	* [r4012] configure.ac, make_dist.sh: More info about XSL in final
+	  configure output
 
-2009-04-17 13:59  robe
+2009-04-17 13:59  Regina Obe <lr at pcorp.us>
 
-	* add ST_MinimumBoundingCircle to 1.3 exclude
+	* [r4010] doc/xsl/postgis_gardentest.sql.xsl: add
+	  ST_MinimumBoundingCircle to 1.3 exclude
 
-2009-04-16 07:31  robe
+2009-04-16 07:31  Regina Obe <lr at pcorp.us>
 
-	* Update installation to have link to Windows Compilation guide
-	  Nicklas put together.
+	* [r4006] doc/installation.xml: Update installation to have link to
+	  Windows Compilation guide Nicklas put together.
 
-2009-04-16 05:54  robe
+2009-04-16 05:54  Regina Obe <lr at pcorp.us>
 
-	* ADd more curved geometry support functions to list and give
-	  curved geometry special index a pretty anchor.
+	* [r4005] doc/reference.xml, doc/xsl/postgis_aggs_mm.xml.xsl: ADd
+	  more curved geometry support functions to list and give curved
+	  geometry special index a pretty anchor.
 
-2009-04-15 17:18  pramsey
+2009-04-15 17:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* wee reformatting
+	* [r4004] NEWS: wee reformatting
 
-2009-04-15 17:15  pramsey
+2009-04-15 17:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* remove tabs
+	* [r4003] NEWS: remove tabs
 
-2009-04-15 17:09  pramsey
+2009-04-15 17:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* add link to trac for 1.4
+	* [r4002] NEWS: add link to trac for 1.4
 
-2009-04-15 01:22  robe
+2009-04-15 01:22  Regina Obe <lr at pcorp.us>
 
-	* add link to st_relate
+	* [r4001] doc/reference.xml: add link to st_relate
 
-2009-04-15 01:11  robe
+2009-04-15 01:11  Regina Obe <lr at pcorp.us>
 
-	* amend ST_ContainsProperly to summarize its speed advantages
+	* [r4000] doc/reference.xml: amend ST_ContainsProperly to summarize
+	  its speed advantages
 
-2009-04-14 14:25  mcayland
+2009-04-14 14:25  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Try and fix shp2pgsql-core for bug #124. Need to change sprintf()
-	  to pgis_exec() within the loader.
+	* [r3999] loader/shp2pgsql-core.c: Try and fix shp2pgsql-core for
+	  bug #124. Need to change sprintf() to pgis_exec() within the
+	  loader.
 
-2009-04-14 06:47  robe
+2009-04-14 06:47  Regina Obe <lr at pcorp.us>
 
-	* add containsproperly
+	* [r3998] NEWS: add containsproperly
 
-2009-04-14 06:42  robe
+2009-04-14 06:42  Regina Obe <lr at pcorp.us>
 
-	* I think the year is 2009 and we are in april now
+	* [r3997] NEWS: I think the year is 2009 and we are in april now
 
-2009-04-12 12:18  mcayland
+2009-04-12 12:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Same as r3994 but for the second copy of shp2pgsql.
+	* [r3995] loader/shp2pgsql-core.c: Same as r3994 but for the second
+	  copy of shp2pgsql.
 
-2009-04-12 11:16  mcayland
+2009-04-12 11:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix #104 'shp2pgsql is using deprecated PostgreSQL escape
-	  syntax'. Remember that not everyone's installation has
-	  "standard_conforming_strings" enabled by default.
+	* [r3994] loader/shp2pgsql.c: Fix #104 'shp2pgsql is using
+	  deprecated PostgreSQL escape syntax'. Remember that not
+	  everyone's installation has "standard_conforming_strings" enabled
+	  by default.
 
-2009-04-12 10:56  mcayland
+2009-04-12 10:56  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix bug #148 'envelope() doesn't support new box3d_extent type'.
-	  Looks like we do need to add casts for box3d_extent to all of
-	  box2dfloaat, box3d and geometry after all.
+	* [r3993] postgis/postgis.sql.in.c: Fix bug #148 'envelope()
+	  doesn't support new box3d_extent type'. Looks like we do need to
+	  add casts for box3d_extent to all of box2dfloaat, box3d and
+	  geometry after all.
 
-2009-04-12 05:25  robe
+2009-04-12 05:25  Regina Obe <lr at pcorp.us>
 
-	* missed some
+	* [r3992] doc/xsl/postgis_gardentest.sql.xsl: missed some
 
-2009-04-12 05:14  robe
+2009-04-12 05:14  Regina Obe <lr at pcorp.us>
 
-	* Add ST_ContainsProperly to exclude for 1.3 testing.
+	* [r3991] doc/xsl/postgis_gardentest.sql.xsl: Add
+	  ST_ContainsProperly to exclude for 1.3 testing.
 
-2009-04-12 04:10  robe
+2009-04-12 04:10  Regina Obe <lr at pcorp.us>
 
-	* Add new function ST_ContainsProperly and provide examples. Also
-	  update ST_Contains to better explain the subtleties of the
-	  definition and example to demonstrate the difference between
-	  contains and containsproperly
+	* [r3990] doc/reference.xml: Add new function ST_ContainsProperly
+	  and provide examples. Also update ST_Contains to better explain
+	  the subtleties of the definition and example to demonstrate the
+	  difference between contains and containsproperly
 
-2009-04-10 08:27  mcayland
+2009-04-10 08:27  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Make good on my promise from bug #123 to remove the E'...'
-	  escaping from shp2pgsql and revert to standard SQL escaping. Also
-	  rename protect_quote_string() and make_good_string() to
+	* [r3989] loader/shp2pgsql-core.c, loader/shp2pgsql.c: Make good on
+	  my promise from bug #123 to remove the E'...' escaping from
+	  shp2pgsql and revert to standard SQL escaping. Also rename
+	  protect_quote_string() and make_good_string() to
 	  escape_insert_string() and escape_copy_string() respectively so
 	  the names reflect what they actually do.
 
-2009-04-06 17:31  pramsey
+2009-04-06 17:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix mis-spelling in Eduin Carrillo's name
+	* [r3980] NEWS, doc/introduction.xml: Fix mis-spelling in Eduin
+	  Carrillo's name
 
-2009-04-05 18:06  pramsey
+2009-04-05 18:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* keywords
+	* [r3969] liblwgeom/cunit/cu_measures.c,
+	  liblwgeom/cunit/cu_measures.h: keywords
 
-2009-04-05 18:05  robe
+2009-04-05 18:05  Regina Obe <lr at pcorp.us>
 
-	* Add Nicklas Avén to contributors list
+	* [r3968] doc/introduction.xml: Add Nicklas Avén to contributors
+	  list
 
-2009-04-05 16:48  pramsey
+2009-04-05 16:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for collection vs collection distance behavior. Per Nicklas
-	  Avén. GBT #146
+	* [r3967] liblwgeom/cunit/Makefile.in,
+	  liblwgeom/cunit/cu_measures.c, liblwgeom/cunit/cu_measures.h,
+	  liblwgeom/cunit/cu_tester.c, liblwgeom/measures.c: Fix for
+	  collection vs collection distance behavior. Per Nicklas Avén. GBT
+	  #146
 
-2009-03-29 08:12  mcayland
+2009-03-29 08:12  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for previous commit; move the locations of the CASTs so that
-	  they are after the definitions. Thanks Olivier!
+	* [r3939] postgis/postgis.sql.in.c: Fix for previous commit; move
+	  the locations of the CASTs so that they are after the
+	  definitions. Thanks Olivier!
 
-2009-03-29 00:34  mcayland
+2009-03-29 00:34  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add additional casts for box3d_extent to box3d/box2d so that
-	  other PostGIS functions can use the output of ST_Extent. Per
-	  report from Olivier Courtin related to GBT#93.
+	* [r3938] postgis/lwgeom_box3d.c, postgis/postgis.sql.in.c: Add
+	  additional casts for box3d_extent to box3d/box2d so that other
+	  PostGIS functions can use the output of ST_Extent. Per report
+	  from Olivier Courtin related to GBT#93.
 
-2009-03-24 19:05  colivier
+2009-03-24 19:05  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* suppress compilation warning on non initialized variable
+	* [r3936] postgis/lwgeom_kml.c: suppress compilation warning on non
+	  initialized variable
 
-2009-03-23 22:45  pramsey
+2009-03-23 22:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore autotools artefacts.
+	* [r3935] .: Ignore autotools artefacts.
 
-2009-03-23 22:44  pramsey
+2009-03-23 22:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Once more unto the breach! autotools w/ mloskot autogen.sh from
-	  GBT#142
+	* [r3934] autogen.sh, config.guess, config.sub: Once more unto the
+	  breach! autotools w/ mloskot autogen.sh from GBT#142
 
-2009-03-23 17:18  pramsey
+2009-03-23 17:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Back to the future.
+	* [r3933] ltmain.sh: Back to the future.
 
-2009-03-22 07:50  robe
+2009-03-22 07:50  Regina Obe <lr at pcorp.us>
 
-	* expansion of example and description
+	* [r3932] doc/reference.xml: expansion of example and description
 
-2009-03-22 07:46  robe
+2009-03-22 07:46  Regina Obe <lr at pcorp.us>
 
-	* Create new exception section and move over the Has,Drop, Add BBOX
-	  family per MCA request.
+	* [r3931] doc/reference.xml: Create new exception section and move
+	  over the Has,Drop, Add BBOX family per MCA request.
 
-2009-03-22 07:08  pramsey
+2009-03-22 07:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Can't get enough punishment: write out results of configure.
+	* [r3929] configure.ac: Can't get enough punishment: write out
+	  results of configure.
 
-2009-03-22 06:43  pramsey
+2009-03-22 06:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Back for more punishment: if we can checkin config.sub and
-	  config.guess, we can check in ltmain.sh. Autotools, I despise
-	  thee.
+	* [r3928] config.guess, ltmain.sh: Back for more punishment: if we
+	  can checkin config.sub and config.guess, we can check in
+	  ltmain.sh. Autotools, I despise thee.
 
-2009-03-22 06:30  pramsey
+2009-03-22 06:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* OK, didn't like that. libtoolize alters config.guess and
-	  config.sub,
+	* [r3927] autogen.sh: OK, didn't like that. libtoolize alters
+	  config.guess and config.sub,
 	  but removing them breaks build. Run libtoolize by hand and add
 	  the resultants
 	  to svn?
 
-2009-03-22 06:28  pramsey
+2009-03-22 06:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* config.guess back?
+	* [r3926] config.guess: config.guess back?
 
-2009-03-22 03:34  pramsey
+2009-03-22 03:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* config.sub back in?
+	* [r3925] config.sub: config.sub back in?
 
-2009-03-22 03:23  pramsey
+2009-03-22 03:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Break build per mloskot. Remember to run ./autogen.sh and
-	  hopefully you have libtoolize!
+	* [r3924] autogen.sh, config.guess, config.sub: Break build per
+	  mloskot. Remember to run ./autogen.sh and hopefully you have
+	  libtoolize!
 
-2009-03-22 02:26  robe
+2009-03-22 02:26  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r3923] doc/xsl/postgis_gardentest.sql.xsl: typo
 
-2009-03-22 02:23  robe
+2009-03-22 02:23  Regina Obe <lr at pcorp.us>
 
-	* not dealing correctly with arguments that are geometry arrays
-	  where there is only one geometry in the arglist
+	* [r3922] doc/xsl/postgis_gardentest.sql.xsl: not dealing correctly
+	  with arguments that are geometry arrays where there is only one
+	  geometry in the arglist
 
-2009-03-21 19:14  colivier
+2009-03-21 19:14  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix static buffer size to add precision spaces. Cf #119
+	* [r3921] postgis/lwgeom_geojson.c, postgis/lwgeom_gml.c,
+	  postgis/lwgeom_kml.c, postgis/lwgeom_svg.c: Fix static buffer
+	  size to add precision spaces. Cf #119
 
-2009-03-20 18:43  pramsey
+2009-03-20 18:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update release notes more
+	* [r3916] NEWS: Update release notes more
 
-2009-03-20 16:48  kneufeld
+2009-03-20 16:48  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated the operator notes in reference.xml to reflect the fact
-	  that they do indeed use indexes.
+	* [r3915] doc/reference.xml: updated the operator notes in
+	  reference.xml to reflect the fact that they do indeed use
+	  indexes.
 
-2009-03-20 14:55  robe
+2009-03-20 14:55  Regina Obe <lr at pcorp.us>
 
-	* Add ST_MakeLine array proto. Provide example use. Flag that
-	  ST_MAkeLine was enhanced in 1.4
+	* [r3912] doc/reference.xml: Add ST_MakeLine array proto. Provide
+	  example use. Flag that ST_MAkeLine was enhanced in 1.4
 
-2009-03-20 14:40  robe
+2009-03-20 14:40  Regina Obe <lr at pcorp.us>
 
-	* Fill in missing ST_Collect(geomarray) proto. Provide examples for
-	  using ST_Union(geomarray), ST_Collect(geomarray)
+	* [r3911] doc/reference.xml: Fill in missing ST_Collect(geomarray)
+	  proto. Provide examples for using ST_Union(geomarray),
+	  ST_Collect(geomarray)
 
-2009-03-20 13:39  colivier
+2009-03-20 13:39  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix GML multi size computation. Cf issue #141
+	* [r3910] postgis/lwgeom_gml.c: Fix GML multi size computation. Cf
+	  issue #141
 
-2009-03-20 05:43  kneufeld
+2009-03-20 05:43  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* a small typo patch from mloskot, renaming a few "geometry_column"
-	  to "geometry_columns"
+	* [r3906] doc/reference.xml, postgis/postgis.sql.in.c: a small typo
+	  patch from mloskot, renaming a few "geometry_column" to
+	  "geometry_columns"
 
-2009-03-20 05:32  kneufeld
+2009-03-20 05:32  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* renamed reference.xml to reference_old.xml
+	* [r3905] configure.ac, doc/Makefile.in, doc/postgis.xml,
+	  doc/reference.xml, doc/reference_new.xml, doc/reference_old.xml:
+	  renamed reference.xml to reference_old.xml
 	  renamed reference_new.xml to reference.xml
 	  updated configure.ac, doc/Makefile.in, and doc/postgis.xml
 	  accordingly.
 
-2009-03-19 17:58  pramsey
+2009-03-19 17:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Revert, now I get a warning in OS/X. Solaris will have to suck it
-	  up.
+	* [r3903] postgis/lwgeom_chip.c: Revert, now I get a warning in
+	  OS/X. Solaris will have to suck it up.
 
-2009-03-19 17:50  pramsey
+2009-03-19 17:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make autogen.sh a little more tolerant of missing / re-named
-	  autotools.
+	* [r3901] autogen.sh, configure.ac: Make autogen.sh a little more
+	  tolerant of missing / re-named autotools.
 
-2009-03-19 17:28  kneufeld
+2009-03-19 17:28  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated ST_Relate docs - changed 3rd parameter to be more clear
+	* [r3900] doc/reference_new.xml: updated ST_Relate docs - changed
+	  3rd parameter to be more clear
 
-2009-03-19 17:03  pramsey
+2009-03-19 17:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove warning in Solaris.
+	* [r3899] postgis/lwgeom_debug.c: Remove warning in Solaris.
 
-2009-03-19 16:58  pramsey
+2009-03-19 16:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove warning in Solaris.
+	* [r3898] postgis/lwgeom_chip.c: Remove warning in Solaris.
 
-2009-03-19 16:52  pramsey
+2009-03-19 16:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove one last 'const' warning.
+	* [r3897] postgis/lwgeom_geos_prepared.c,
+	  postgis/lwgeom_geos_prepared.h: Remove one last 'const' warning.
 
-2009-03-19 13:27  colivier
+2009-03-19 13:27  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Few minor improve/change on memory size to allocate
+	* [r3895] postgis/lwgeom_svg.c: Few minor improve/change on memory
+	  size to allocate
 
-2009-03-19 11:52  mcayland
+2009-03-19 11:52  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* More lwgeom_geos.c fixes to remove compilation warnings, but this
-	  time for compiling with GEOS >= 3.1.
+	* [r3894] postgis/lwgeom_geos.c: More lwgeom_geos.c fixes to remove
+	  compilation warnings, but this time for compiling with GEOS >=
+	  3.1.
 
-2009-03-19 06:05  pramsey
+2009-03-19 06:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Oops, we don't use the literal output of autoheader.
+	* [r3893] postgis/lwgeom_estimate.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_gist.c,
+	  postgis_config.h.in: Oops, we don't use the literal output of
+	  autoheader.
 
-2009-03-19 05:55  pramsey
+2009-03-19 05:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove prepared geometry compilation warning.
+	* [r3892] postgis/lwgeom_geos_prepared.c: Remove prepared geometry
+	  compilation warning.
 
-2009-03-19 05:54  pramsey
+2009-03-19 05:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ieeefp.h for Solaris.
+	* [r3891] postgis/lwgeom_estimate.c, postgis/lwgeom_gist.c: Add
+	  ieeefp.h for Solaris.
 
-2009-03-19 05:53  pramsey
+2009-03-19 05:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add testing for ieeefp.h to autoconf
+	* [r3890] configure.ac, postgis_config.h.in: Add testing for
+	  ieeefp.h to autoconf
 
-2009-03-19 00:48  pramsey
+2009-03-19 00:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Final fix to remove cpp requirement
+	* [r3889] regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multisurface_expected: Final fix to remove cpp
+	  requirement
 
-2009-03-19 00:38  pramsey
+2009-03-19 00:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove preproc step for sql-mm curve regression.
+	* [r3888] regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-circularstring_expected.in,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-compoundcurve_expected.in,
+	  regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-curvepoly_expected.in,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multicurve_expected.in,
+	  regress/sql-mm-multisurface_expected,
+	  regress/sql-mm-multisurface_expected.in: Remove preproc step for
+	  sql-mm curve regression.
 
-2009-03-19 00:37  pramsey
+2009-03-19 00:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove USE_JTS and cpp preproc from sql-mm regression
+	* [r3887] regress/Makefile.in,
+	  regress/sql-mm-circularstring_expected.in,
+	  regress/sql-mm-compoundcurve_expected.in,
+	  regress/sql-mm-curvepoly_expected.in,
+	  regress/sql-mm-multicurve_expected.in,
+	  regress/sql-mm-multisurface_expected.in: Remove USE_JTS and cpp
+	  preproc from sql-mm regression
 
-2009-03-18 23:42  pramsey
+2009-03-18 23:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add lidar item
+	* [r3886] TODO: Add lidar item
 
-2009-03-16 23:06  mcayland
+2009-03-16 23:06  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* More cleanup work based upon Mateusz's MSVC patches; remove
-	  references to unistd.h and sys/param.h since they are no longer
-	  required for determining endian-ness.
+	* [r3877] liblwgeom/lex.yy.c, liblwgeom/lwgunparse.c,
+	  liblwgeom/wktparse.lex, postgis/lwgeom_inout.c: More cleanup work
+	  based upon Mateusz's MSVC patches; remove references to unistd.h
+	  and sys/param.h since they are no longer required for determining
+	  endian-ness.
 
-2009-03-13 13:11  robe
+2009-03-13 13:11  Regina Obe <lr at pcorp.us>
 
-	* switch order
+	* [r3868] doc/postgis.xml: switch order
 
-2009-03-13 13:09  robe
+2009-03-13 13:09  Regina Obe <lr at pcorp.us>
 
-	* get rid of sT_PolyFromWKB reference. Will readd those stupid ones
-	  left in reference.xml later
+	* [r3867] doc/reference_new.xml: get rid of sT_PolyFromWKB
+	  reference. Will readd those stupid ones left in reference.xml
+	  later
 
-2009-03-13 13:08  robe
+2009-03-13 13:08  Regina Obe <lr at pcorp.us>
 
-	* more spots
+	* [r3866] doc/postgis.xml: more spots
 
-2009-03-13 13:05  robe
+2009-03-13 13:05  Regina Obe <lr at pcorp.us>
 
-	* missed a spot
+	* [r3865] doc/postgis.xml: missed a spot
 
-2009-03-13 12:53  robe
+2009-03-13 12:53  Regina Obe <lr at pcorp.us>
 
-	* remove using_postgis and reference and add using_postgis_dataman,
-	  using_postgis_app
+	* [r3864] doc/postgis.xml: remove using_postgis and reference and
+	  add using_postgis_dataman, using_postgis_app
 
-2009-03-13 12:11  robe
+2009-03-13 12:11  Regina Obe <lr at pcorp.us>
 
-	* Break using_postgis into 2 sections, remover reference.xml from
-	  doc make
+	* [r3863] doc/Makefile.in, doc/using_postgis.xml,
+	  doc/using_postgis_app.xml, doc/using_postgis_dataman.xml: Break
+	  using_postgis into 2 sections, remover reference.xml from doc
+	  make
 
-2009-03-12 23:20  robe
+2009-03-12 23:20  Regina Obe <lr at pcorp.us>
 
-	* #HISTORY #GBT 121: update tiger_geocoder to run in PostgreSQL 8.3
-	  - apply patch from cdwinslow
+	* [r3860]
+	  extras/tiger_geocoder/geocode/geocode_address_countysub_exact.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_place_exact.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_place_fuzzy.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_state.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_zip.sql,
+	  extras/tiger_geocoder/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/geocode/geocode_zip.sql,
+	  extras/tiger_geocoder/normalize/pprint_addy.sql,
+	  extras/tiger_geocoder/tables/lookup_tables.sql: #HISTORY #GBT
+	  121: update tiger_geocoder to run in PostgreSQL 8.3 - apply patch
+	  from cdwinslow
 
-2009-03-11 05:31  kneufeld
+2009-03-11 05:31  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated SQL/MM specs in ST_PointFromWKB
+	* [r3854] doc/reference.xml, doc/reference_new.xml: updated SQL/MM
+	  specs in ST_PointFromWKB
 
-2009-03-11 05:13  kneufeld
+2009-03-11 05:13  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over ST_LineFromWKB
+	* [r3853] doc/reference.xml, doc/reference_new.xml: moved over
+	  ST_LineFromWKB
 
-2009-03-11 05:11  kneufeld
+2009-03-11 05:11  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added missing linkend
+	* [r3852] doc/reference.xml: added missing linkend
 
-2009-03-11 05:09  kneufeld
+2009-03-11 05:09  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated doc descriptions and linkends.
+	* [r3851] doc/reference_new.xml: updated doc descriptions and
+	  linkends.
 
-2009-03-11 04:56  kneufeld
+2009-03-11 04:56  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over ST_PointFromWKB
+	* [r3850] doc/reference.xml, doc/reference_new.xml: moved over
+	  ST_PointFromWKB
 
-2009-03-11 04:35  kneufeld
+2009-03-11 04:35  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over ST_GeomFromWKB
+	* [r3849] doc/reference.xml, doc/reference_new.xml: moved over
+	  ST_GeomFromWKB
 
-2009-03-10 21:29  mcayland
+2009-03-10 21:29  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* More MSVC fixes from Mateusz related to ISO C++ vs. C99 variable
-	  initialisation.
+	* [r3848] liblwgeom/lwgunparse.c: More MSVC fixes from Mateusz
+	  related to ISO C++ vs. C99 variable initialisation.
 
-2009-03-10 21:05  colivier
+2009-03-10 21:05  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* updated SVG unit to reduce to max 2 decimal digits
+	* [r3847] regress/svg.sql, regress/svg_expected: updated SVG unit
+	  to reduce to max 2 decimal digits
 
-2009-03-10 21:03  pramsey
+2009-03-10 21:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* MSVC line
+	* [r3846] NEWS: MSVC line
 
-2009-03-10 20:49  colivier
+2009-03-10 20:49  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add SVG unit test file
+	* [r3845] regress/Makefile.in, regress/svg.sql,
+	  regress/svg_expected: Add SVG unit test file
 
-2009-03-10 20:42  pramsey
+2009-03-10 20:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add 1.3.5 release notes into trunk docs
+	* [r3844] NEWS, doc/release_notes.xml: Add 1.3.5 release notes into
+	  trunk docs
 
-2009-03-10 20:37  pramsey
+2009-03-10 20:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* First cut of 1.4 release notes.
+	* [r3843] NEWS: First cut of 1.4 release notes.
 
-2009-03-10 20:25  mcayland
+2009-03-10 20:25  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for GBT#132: Make check should run CUnit. This is to aid
-	  developers as we move the majority of the testing framework over
-	  to CUnit.
+	* [r3842] GNUmakefile, liblwgeom/cunit/Makefile.in: Fix for
+	  GBT#132: Make check should run CUnit. This is to aid developers
+	  as we move the majority of the testing framework over to CUnit.
 
-2009-03-10 20:15  mcayland
+2009-03-10 20:15  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit Mateusz's patch to move the postgres.h #include to the top
-	  of the file in order to aid the MSVC build.
+	* [r3841] postgis/long_xact.c, postgis/lwgeom_box2dfloat4.c,
+	  postgis/lwgeom_box3d.c, postgis/lwgeom_btree.c,
+	  postgis/lwgeom_chip.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_estimate.c, postgis/lwgeom_functions_basic.c,
+	  postgis/lwgeom_geos.h, postgis/lwgeom_geos_prepared.h,
+	  postgis/lwgeom_gist.c, postgis/lwgeom_inout.c,
+	  postgis/lwgeom_pg.c, postgis/lwgeom_pg.h, postgis/lwgeom_sqlmm.c,
+	  postgis/lwgeom_transform.c: Commit Mateusz's patch to move the
+	  postgres.h #include to the top of the file in order to aid the
+	  MSVC build.
 
-2009-03-10 20:15  colivier
+2009-03-10 20:15  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* update GML unit test according to AsGML option related to CRS
-	  output option
+	* [r3840] regress/gml.sql, regress/gml_expected: update GML unit
+	  test according to AsGML option related to CRS output option
 
-2009-03-10 19:37  mcayland
+2009-03-10 19:37  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove compiler warning from commit r3821.
+	* [r3839] liblwgeom/wktparse.h: Remove compiler warning from commit
+	  r3821.
 
-2009-03-10 19:30  colivier
+2009-03-10 19:30  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Update unit test upon previous GeoJson CRS change
+	* [r3838] regress/geojson.sql, regress/geojson_expected: Update
+	  unit test upon previous GeoJson CRS change
 
-2009-03-10 19:29  mcayland
+2009-03-10 19:29  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update PostGIS trunk so that the minimum required version of GEOS
-	  is 3.0.0. This allows us to finally remove all remaining
-	  compilation warnings since we can adjust the casts to make
-	  correct use of the GEOS 3.0.0 header types.
+	* [r3837] configure.ac, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_geos.h, postgis/postgis.sql.in.c: Update PostGIS
+	  trunk so that the minimum required version of GEOS is 3.0.0. This
+	  allows us to finally remove all remaining compilation warnings
+	  since we can adjust the casts to make correct use of the GEOS
+	  3.0.0 header types.
 
-2009-03-10 18:20  colivier
+2009-03-10 18:20  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Fix GeoJson CRS output format (1.0 spec). Add OGC long CRS format
-	  (Cf RFC 5165) as an option. On AsGeoJson it change option order
-	  from 1.3.X between Bbox and CRS. On AsGML a new option parameter
-	  is added
+	* [r3835] doc/reference_new.xml, postgis/lwgeom_geojson.c,
+	  postgis/lwgeom_gml.c, postgis/postgis.sql.in.c: Fix GeoJson CRS
+	  output format (1.0 spec). Add OGC long CRS format (Cf RFC 5165)
+	  as an option. On AsGeoJson it change option order from 1.3.X
+	  between Bbox and CRS. On AsGML a new option parameter is added
 
-2009-03-10 17:24  mcayland
+2009-03-10 17:24  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Some documentation updates; change the instructions for
-	  decompressing the tarballs for PROJ and GEOS so that they work
-	  for our Solaris friends (as per the instructions for the main
-	  PostGIS tarball). Also move version entities for GEOS and PROJ
-	  into postgis.xml, so that as newer versions of PROJ/GEOS are
-	  released, we only need to update the version number in one
-	  location for the change to be reflected throughout the
-	  installation documentation.
+	* [r3833] doc/installation.xml, doc/postgis.xml: Some documentation
+	  updates; change the instructions for decompressing the tarballs
+	  for PROJ and GEOS so that they work for our Solaris friends (as
+	  per the instructions for the main PostGIS tarball). Also move
+	  version entities for GEOS and PROJ into postgis.xml, so that as
+	  newer versions of PROJ/GEOS are released, we only need to update
+	  the version number in one location for the change to be reflected
+	  throughout the installation documentation.
 
-2009-03-10 16:26  mcayland
+2009-03-10 16:26  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Augment comment related to Paul's fix for GBT#130 as I'm bound to
-	  forget why we decided to do this at a later date...
+	* [r3831] liblwgeom/lwgunparse.c: Augment comment related to Paul's
+	  fix for GBT#130 as I'm bound to forget why we decided to do this
+	  at a later date...
 
-2009-03-10 16:24  colivier
+2009-03-10 16:24  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add circstring release and LWGEOM conversion entry
+	* [r3830] liblwgeom/liblwgeom.h, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwgeom.c: Add circstring release and LWGEOM conversion
+	  entry
 
-2009-03-10 16:18  mcayland
+2009-03-10 16:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove some GCC-isms from the unparser related to setting array
-	  sizes at run-time rather than compile time. Per report from
-	  Mateusz Loskot.
+	* [r3828] liblwgeom/lwgunparse.c: Remove some GCC-isms from the
+	  unparser related to setting array sizes at run-time rather than
+	  compile time. Per report from Mateusz Loskot.
 
-2009-03-10 15:54  mcayland
+2009-03-10 15:54  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix GBT#126: Don't include private PROJ.4 header projects.h. It
-	  appears that from its inception, PostGIS has inadvertently used
-	  the PROJ.4 internal projects.h header file rather than the
-	  correct proj_api.h header file. This patch flips over to the new
-	  header file and changes everything over to use the new external
-	  structures/APIS.
+	* [r3827] postgis/lwgeom_transform.c: Fix GBT#126: Don't include
+	  private PROJ.4 header projects.h. It appears that from its
+	  inception, PostGIS has inadvertently used the PROJ.4 internal
+	  projects.h header file rather than the correct proj_api.h header
+	  file. This patch flips over to the new header file and changes
+	  everything over to use the new external structures/APIS.
 
-2009-03-10 15:12  pramsey
+2009-03-10 15:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for GBT #130, remove bdpoly regression failure.
+	* [r3826] liblwgeom/lwgunparse.c: Fix for GBT #130, remove bdpoly
+	  regression failure.
 
-2009-03-10 15:06  mcayland
+2009-03-10 15:06  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for GBT#89: transform() grid-shift 2nd chance logic
-	  defective. Remove the 2nd chance logic completely and allow the
-	  user to configure the behaviour using the standard PROJ.4
-	  +nadgrids parameter. I've added a section to the ST_Transform()
-	  section of the manual which gives an example of how you can do
-	  this.
+	* [r3825] doc/reference_new.xml, postgis/lwgeom_transform.c: Fix
+	  for GBT#89: transform() grid-shift 2nd chance logic defective.
+	  Remove the 2nd chance logic completely and allow the user to
+	  configure the behaviour using the standard PROJ.4 +nadgrids
+	  parameter. I've added a section to the ST_Transform() section of
+	  the manual which gives an example of how you can do this.
 
-2009-03-10 14:59  colivier
+2009-03-10 14:59  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Add SVG L Command in absolute path according to BNF SVG Path. Add
-	  some forgotten geometry release.
+	* [r3824] postgis/lwgeom_svg.c: Add SVG L Command in absolute path
+	  according to BNF SVG Path. Add some forgotten geometry release.
 
-2009-03-10 00:29  mleslie
+2009-03-10 00:29  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Moving parser changes from spike/mleslie/parser to allow the
-	  proper nesting of compound curves within curve polygons and the
-	  validation of compound curve continuity. This also resolves
-	  GBT#124.
+	* [r3821] liblwgeom/lex.yy.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/wktparse.h, liblwgeom/wktparse.tab.c,
+	  liblwgeom/wktparse.y, regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected.in,
+	  regress/sql-mm-curvepoly.sql,
+	  regress/sql-mm-curvepoly_expected.in,
+	  regress/sql-mm-serialize.sql: Moving parser changes from
+	  spike/mleslie/parser to allow the proper nesting of compound
+	  curves within curve polygons and the validation of compound curve
+	  continuity. This also resolves GBT#124.
 
-2009-03-09 22:01  pramsey
+2009-03-09 22:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Don't segmentize geometry if input doesn't pass hasarc
+	* [r3820] postgis/lwgeom_sqlmm.c: Don't segmentize geometry if
+	  input doesn't pass hasarc
 
-2009-03-09 21:15  robe
+2009-03-09 21:15  Regina Obe <lr at pcorp.us>
 
-	* Put ST_CurveToLine back in script. Seems to not crash anymore
-	  with Paul's changes to GBT: 112
+	* [r3819] doc/xsl/postgis_gardentest.sql.xsl: Put ST_CurveToLine
+	  back in script. Seems to not crash anymore with Paul's changes to
+	  GBT: 112
 
-2009-03-09 18:40  pramsey
+2009-03-09 18:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for GBT#96.
+	* [r3817] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  postgis/lwgeom_functions_basic.c, regress/regress.sql,
+	  regress/regress_expected: Fix for GBT#96.
 
-2009-03-09 17:19  mcayland
+2009-03-09 17:19  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix the OSGB 27700 SRID definition in spatial_ref_sys.sql since
-	  it is missing a datum parameter. We can't backpatch this since it
-	  is only available in newer versions of PROJ, and we don't have
-	  any PROJ version detection capability in 1.3 branch.
+	* [r3816] spatial_ref_sys.sql: Fix the OSGB 27700 SRID definition
+	  in spatial_ref_sys.sql since it is missing a datum parameter. We
+	  can't backpatch this since it is only available in newer versions
+	  of PROJ, and we don't have any PROJ version detection capability
+	  in 1.3 branch.
 
-2009-03-09 16:20  mcayland
+2009-03-09 16:20  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove compile warnings from lwgeom_dump.c related to the removal
-	  of TupleDescGetSlot (we don't need to set the deprecated fields
-	  in FuncCallContext if we are using BuildTupleFromCStrings).
+	* [r3815] postgis/lwgeom_dump.c: Remove compile warnings from
+	  lwgeom_dump.c related to the removal of TupleDescGetSlot (we
+	  don't need to set the deprecated fields in FuncCallContext if we
+	  are using BuildTupleFromCStrings).
 
-2009-03-09 15:34  pramsey
+2009-03-09 15:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More camel-case changes.
+	* [r3814] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  postgis/lwgeom_functions_basic.c: More camel-case changes.
 
-2009-03-09 14:51  colivier
+2009-03-09 14:51  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* Refactored the whole assvg export function in the same way than
-	  asgeojson. Fix #119 issue on big geometrycollection geometry.
-	  Keep the same SVG output than before
+	* [r3813] postgis/lwgeom_svg.c: Refactored the whole assvg export
+	  function in the same way than asgeojson. Fix #119 issue on big
+	  geometrycollection geometry. Keep the same SVG output than before
 
-2009-03-09 14:36  pramsey
+2009-03-09 14:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove some camelCase function signatures from liblwgeom
+	* [r3812] ChangeLog, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwgeom.c, liblwgeom/lwpoint.c, postgis/lwgeom_dump.c,
+	  postgis/lwgeom_functions_analytic.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_geos.c,
+	  postgis/lwgeom_ogc.c, postgis/lwgeom_pg.c,
+	  postgis/lwgeom_transform.c: Remove some camelCase function
+	  signatures from liblwgeom
 
-2009-03-08 22:33  mcayland
+2009-03-08 22:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for GBT#93: ST_Extent() and ST_Estimated_Extent() return
-	  BOX2DFLOAT4s. This is currently done using a horrible hack for
-	  backwards compatibility which introduces a new type just for
-	  ST_Extent(). See GBT email to postgis-devel and code comments for
-	  more detail.
+	* [r3811] postgis/lwgeom_box3d.c, postgis/postgis.sql.in.c,
+	  regress/lwgeom_regress_expected: Fix for GBT#93: ST_Extent() and
+	  ST_Estimated_Extent() return BOX2DFLOAT4s. This is currently done
+	  using a horrible hack for backwards compatibility which
+	  introduces a new type just for ST_Extent(). See GBT email to
+	  postgis-devel and code comments for more detail.
 
-2009-03-08 21:41  pramsey
+2009-03-08 21:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix goof in box2d computation.
+	* [r3809] liblwgeom/lwgeom_api.c: Fix goof in box2d computation.
 
-2009-03-08 21:15  pramsey
+2009-03-08 21:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for GBT#112
+	* [r3807] liblwgeom/lwsegmentize.c: Fix for GBT#112
 
-2009-03-08 17:00  mcayland
+2009-03-08 17:00  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add some explanation comments to lwgeom_accum.c explaining why we
-	  need to implement our own set of geometry aggregate functions.
+	* [r3806] postgis/lwgeom_accum.c: Add some explanation comments to
+	  lwgeom_accum.c explaining why we need to implement our own set of
+	  geometry aggregate functions.
 
-2009-03-08 16:36  mcayland
+2009-03-08 16:36  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Alter the in-built casts between the internal PostgreSQL BOX type
-	  and the PostGIS geometry/BOX3D types so that they do not go
-	  through an intermediate BOX2DFLOAT4 first. This prevents the
-	  float4 rounding errors appearing in the numbers when invoking the
-	  casts.
+	* [r3805] postgis/lwgeom_box.c, postgis/lwgeom_box3d.c,
+	  postgis/lwgeom_functions_basic.c, postgis/lwgeom_pg.h: Alter the
+	  in-built casts between the internal PostgreSQL BOX type and the
+	  PostGIS geometry/BOX3D types so that they do not go through an
+	  intermediate BOX2DFLOAT4 first. This prevents the float4 rounding
+	  errors appearing in the numbers when invoking the casts.
 
-2009-03-08 15:37  pramsey
+2009-03-08 15:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for GBT #116, EMPTY hex polygon no longer causes crash.
+	* [r3803] liblwgeom/lwgeom_api.c: Fix for GBT #116, EMPTY hex
+	  polygon no longer causes crash.
 
-2009-03-08 14:36  mcayland
+2009-03-08 14:36  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix GBT#122: ST_SnapToGrid gives 13 when fed circular string.
-	  Alter the error message so that it correctly displays the type
-	  rather than just it's internal number.
+	* [r3802] postgis/lwgeom_functions_analytic.c: Fix GBT#122:
+	  ST_SnapToGrid gives 13 when fed circular string. Alter the error
+	  message so that it correctly displays the type rather than just
+	  it's internal number.
 
-2009-03-06 14:15  robe
+2009-03-06 14:15  Regina Obe <lr at pcorp.us>
 
-	* missing svn tags and copyright info
+	* [r3799] postgis/lwgeom_dump.c: missing svn tags and copyright
+	  info
 
-2009-03-03 18:01  robe
+2009-03-03 18:01  Regina Obe <lr at pcorp.us>
 
-	* Flag ST_GeoHash as curved support friendly, put in pretty anchors
+	* [r3790] doc/reference_new.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  Flag ST_GeoHash as curved support friendly, put in pretty anchors
 	  for special function sections
 
-2009-03-03 18:00  pramsey
+2009-03-03 18:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix tests to match current geohash signatures (lon/lat) and
-	  precisions (odd and even)
+	* [r3789] liblwgeom/cunit/cu_algorithm.c: Fix tests to match
+	  current geohash signatures (lon/lat) and precisions (odd and
+	  even)
 
-2009-02-27 18:09  robe
+2009-02-27 18:09  Regina Obe <lr at pcorp.us>
 
-	* Get rid of additional calls to TupleDescGetSlot(tupdesc) in dump
-	  and dumprings and replace deprecated use of TupleDescGetSlot with
-	  8.1+ preferred BlessTupleDesc
+	* [r3781] postgis/lwgeom_dump.c: Get rid of additional calls to
+	  TupleDescGetSlot(tupdesc) in dump and dumprings and replace
+	  deprecated use of TupleDescGetSlot with 8.1+ preferred
+	  BlessTupleDesc
 
-2009-02-23 15:19  strk
+2009-02-23 15:19  Sandro Santilli <strk at keybit.net>
 
-	* Fix parse_hex to support lower-case A-F too (issue 120)
+	* [r3762] liblwgeom/lwgeom_api.c: Fix parse_hex to support
+	  lower-case A-F too (issue 120)
 
-2009-02-23 13:47  robe
+2009-02-23 13:47  Regina Obe <lr at pcorp.us>
 
-	* change to move postgis_comments.sql to root
+	* [r3760] doc/Makefile.in: change to move postgis_comments.sql to
+	  root
 
-2009-02-19 21:12  pramsey
+2009-02-19 21:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add variable decls to trunk :)
+	* [r3750] loader/dbfopen.c: Add variable decls to trunk :)
 
-2009-02-19 20:59  pramsey
+2009-02-19 20:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add EOF marker, per GBT#105
+	* [r3749] loader/dbfopen.c: Add EOF marker, per GBT#105
 
-2009-02-19 09:42  mcayland
+2009-02-19 09:42  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update trunk so that it will compile against PostgreSQL 8.4.
-	  Based upon Talha Rizwan's original patch, with a small tweak from
-	  me.
+	* [r3741] postgis/long_xact.c, postgis/lwgeom_estimate.c: Update
+	  trunk so that it will compile against PostgreSQL 8.4. Based upon
+	  Talha Rizwan's original patch, with a small tweak from me.
 
-2009-02-17 18:26  robe
+2009-02-17 18:26  Regina Obe <lr at pcorp.us>
 
-	* change to use tab separator instead
+	* [r3734] doc/Makefile.in: change to use tab separator instead
 
-2009-02-17 03:56  robe
+2009-02-17 03:56  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r3730] doc/xsl/postgis_aggs_mm.xml.xsl: fix typo
 
-2009-02-17 03:02  robe
+2009-02-17 03:02  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r3729] doc/xsl/postgis_aggs_mm.xml.xsl:
 
-2009-02-17 02:59  robe
+2009-02-17 02:59  Regina Obe <lr at pcorp.us>
 
-	* Make new - 1 section with 2 subsections. Change ST_AsGeoJSON
+	* [r3728] doc/reference_new.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  Make new - 1 section with 2 subsections. Change ST_AsGeoJSON
 	  availability tag to be consistent with others
 
-2009-02-17 02:55  robe
+2009-02-17 02:55  Regina Obe <lr at pcorp.us>
 
-	* Section new functions in 1.3
+	* [r3727] doc/xsl/postgis_aggs_mm.xml.xsl: Section new functions in
+	  1.3
 
-2009-02-16 22:18  robe
+2009-02-16 22:18  Regina Obe <lr at pcorp.us>
 
-	* Try again to get postgis_comments.sql to generate
+	* [r3721] doc/Makefile.in: Try again to get postgis_comments.sql to
+	  generate
 
-2009-02-13 19:56  robe
+2009-02-13 19:56  Regina Obe <lr at pcorp.us>
 
-	* amend st_union description to include new proto and performance
+	* [r3705] doc/reference_new.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  amend st_union description to include new proto and performance
 	  enhancements. Add space before availability in xsl parser what is
 	  new section
 
-2009-02-13 19:23  robe
+2009-02-13 19:23  Regina Obe <lr at pcorp.us>
 
-	* Add special section listing new functions in this release. Get
+	* [r3704] doc/reference_new.xml, doc/xsl/postgis_aggs_mm.xml.xsl:
+	  Add special section listing new functions in this release. Get
 	  rid of note tag around ST_GeoHash availability so consistent with
 	  other availability text
 
-2009-02-13 06:58  robe
+2009-02-13 06:58  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r3702] doc/Makefile.in:
 
-2009-02-12 18:32  robe
+2009-02-12 18:32  Regina Obe <lr at pcorp.us>
 
-	* more work on comments generation
+	* [r3694] doc/Makefile.in: more work on comments generation
 
-2009-02-12 17:39  robe
+2009-02-12 17:39  Regina Obe <lr at pcorp.us>
 
-	* Put in logic to output postgis_comments.sql
+	* [r3690] doc/Makefile.in: Put in logic to output
+	  postgis_comments.sql
 
-2009-02-11 21:48  pramsey
+2009-02-11 21:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bind ST_GeoHash into SQL.
+	* [r3688] doc/reference_new.xml, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h, postgis/lwgeom_functions_basic.c,
+	  postgis/postgis.sql.in.c: Bind ST_GeoHash into SQL.
 
-2009-02-11 18:28  pramsey
+2009-02-11 18:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change references from ./lwgeom to ./postgis
+	* [r3687] GNUmakefile, README.postgis, STYLE, configure.ac,
+	  make_dist.sh, regress/Makefile.in, topology/topology.sql.in.c:
+	  Change references from ./lwgeom to ./postgis
 
-2009-02-11 18:22  pramsey
+2009-02-11 18:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change the name of the main source directory. This is going to
-	  break the build for a little while until I fix all the
-	  references, but I want to do it atomically to ensure version
-	  history is preserved.
+	* [r3686] lwgeom, postgis: Change the name of the main source
+	  directory. This is going to break the build for a little while
+	  until I fix all the references, but I want to do it atomically to
+	  ensure version history is preserved.
 
-2009-02-11 02:11  pramsey
+2009-02-11 02:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* GeoHash implementation first cut.
+	* [r3685] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwalgorithm.h,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeom.c: GeoHash
+	  implementation first cut.
 
-2009-02-10 21:20  pramsey
+2009-02-10 21:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Solve iconv-on-Solaris (and hopefully many other platforms with
-	  system iconv in libc) problem in autoconf.
+	* [r3683] configure.ac: Solve iconv-on-Solaris (and hopefully many
+	  other platforms with system iconv in libc) problem in autoconf.
 
-2009-02-10 20:10  pramsey
+2009-02-10 20:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Demote new loader code from default build for now.
+	* [r3682] loader/Makefile.in: Demote new loader code from default
+	  build for now.
 
-2009-02-10 20:06  pramsey
+2009-02-10 20:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* New restore script, much simpler, takes -Fc dump and writes back
-	  ASCII on stdout
+	* [r3681] utils/new_postgis_restore.pl: New restore script, much
+	  simpler, takes -Fc dump and writes back ASCII on stdout
 
-2009-02-10 08:00  colivier
+2009-02-10 08:00  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* KML output: use decimal places rather than significant digit,
-	  trim trailing zeros, update documentation, update unit test
+	* [r3677] doc/reference_new.xml, lwgeom/lwgeom_kml.c,
+	  regress/kml.sql, regress/kml_expected: KML output: use decimal
+	  places rather than significant digit, trim trailing zeros, update
+	  documentation, update unit test
 
-2009-02-10 07:54  colivier
+2009-02-10 07:54  Olivier Courtin <olivier.courtin at oslandia.com>
 
-	* GeoJson output: trim trailing zero, add forgotten free on
+	* [r3676] doc/reference_new.xml, lwgeom/lwgeom_geojson.c,
+	  lwgeom/lwgeom_gml.c, regress/Makefile.in, regress/geojson.sql,
+	  regress/geojson_expected, regress/gml.sql, regress/gml_expected:
+	  GeoJson output: trim trailing zero, add forgotten free on
 	  subgemotry inspect. GML output: precision no more as a global
 	  one, decimal places rather than significant digits, trim trailing
 	  zero, add unit test, doc update with output example
 
-2009-02-09 23:51  pramsey
-
-	* Fix case sensitive in AGGREGATE reading.
-
-2009-02-05 20:01  kneufeld
-
-	* Updated ST_DumpRings description and example.
-
-2009-02-04 18:13  kneufeld
-
-	* Added example to ST_PointN
-
-2009-02-04 13:54  robe
-
-	* minor changes. Take ST_CurveToLine out so tests can complete
-	  until we fix.
+2009-02-09 23:51  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r3675] utils/postgis_restore.pl: Fix case sensitive in AGGREGATE
+	  reading.
+
+2009-02-05 20:01  Kevin Neufeld <kneufeld.ca at gmail.com>
+
+	* [r3647] doc/reference_new.xml: Updated ST_DumpRings description
+	  and example.
+
+2009-02-04 18:13  Kevin Neufeld <kneufeld.ca at gmail.com>
+
+	* [r3641] doc/reference_new.xml: Added example to ST_PointN
+
+2009-02-04 13:54  Regina Obe <lr at pcorp.us>
+
+	* [r3640] doc/xsl/postgis_gardentest.sql.xsl: minor changes. Take
+	  ST_CurveToLine out so tests can complete until we fix.
+
+2009-02-04 00:28  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r3639] doc/faq.xml, doc/installation.xml, doc/introduction.xml,
+	  doc/performance_tips.xml, doc/reference.xml,
+	  doc/reference_new.xml, doc/release_notes.xml, doc/reporting.xml,
+	  doc/template.xml, doc/using_postgis.xml, java/ejb2/build.xml,
+	  java/ejb2/prepare-jboss.xml, java/ejb2/resources/application.xml,
+	  java/ejb2/resources/postgis-ejb2-ds.xml,
+	  java/ejb2/src/com/geodetix/geo/client/Client.java,
+	  java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAO.java,
+	  java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAOImpl.java,
+	  java/ejb2/src/com/geodetix/geo/ejb/GeometryBean.java,
+	  java/ejb2/src/com/geodetix/geo/ejb/GeometryFacadeBean.java,
+	  java/ejb2/src/com/geodetix/geo/exception/ApplicationGeoLayerException.java,
+	  java/ejb3/build.xml, java/ejb3/jboss/geodata-ds.xml,
+	  java/ejb3/jboss/ingest-service.xml,
+	  java/ejb3/src/META-INF/persistence.xml,
+	  java/ejb3/src/org/postgis/ejb/PersonEntity.java,
+	  java/ejb3/src/org/postgis/ejb/UserBean.java,
+	  java/ejb3/src/org/postgis/ejb/UserBeanRemote.java,
+	  java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java,
+	  java/ejb3/src/org/postgis/hibernate/ContainsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/GeometryType.java,
+	  java/ejb3/src/org/postgis/hibernate/IntersectsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/PostGISDialect.java,
+	  java/ejb3/src/org/postgis/hibernate/WithinExpression.java,
+	  java/jdbc/build.xml,
+	  java/jdbc/jtssrc/org/postgis/jts/JTSShape.java,
+	  java/pljava/build.xml,
+	  java/pljava/src/org/postgis/pljava/Aggregates.java,
+	  java/pljava/src/org/postgis/pljava/HelloWorld.java,
+	  java/pljava/src/org/postgis/pljava/PLJGeometry.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsParser.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsWriter.java,
+	  liblwgeom/box2d.c, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/cunit/cu_tester.c,
+	  liblwgeom/examples/unparser.c, liblwgeom/lex.yy.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwcollection.c, liblwgeom/lwcompound.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwline.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/lwutil.c,
+	  liblwgeom/measures.c, liblwgeom/ptarray.c, liblwgeom/vsprintf.c,
+	  liblwgeom/wktparse.h, liblwgeom/wktparse.tab.c,
+	  liblwgeom/wktparse.tab.h, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/stringbuffer.c,
+	  loader/stringbuffer.h, lwgeom/long_xact.c, lwgeom/lwgeom_accum.c,
+	  lwgeom/lwgeom_box.c, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_btree.c,
+	  lwgeom/lwgeom_chip.c, lwgeom/lwgeom_debug.c,
+	  lwgeom/lwgeom_dump.c, lwgeom/lwgeom_estimate.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_functions_lrs.c,
+	  lwgeom/lwgeom_geojson.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos.h, lwgeom/lwgeom_geos_prepared.c,
+	  lwgeom/lwgeom_geos_prepared.h, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_gml.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_kml.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c, lwgeom/lwgeom_rtree.c,
+	  lwgeom/lwgeom_rtree.h, lwgeom/lwgeom_spheroid.c,
+	  lwgeom/lwgeom_sqlmm.c, lwgeom/lwgeom_svg.c,
+	  lwgeom/lwgeom_transform.c, lwgeom/lwgeom_triggers.c,
+	  lwgeom/postgis.sql.in.c, lwgeom/test.c,
+	  topology/topology.sql.in.c: Propset Author Id Keyword Revision on
+	  all files.
 
-2009-02-04 00:28  pramsey
+2009-02-04 00:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Propset Author Id Keyword Revision on all files.
+	* [r3638] liblwgeom/cunit/cu_algorithm.c: Formating
 
-2009-02-04 00:23  pramsey
+2009-02-03 20:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Formating
+	* [r3637] liblwgeom/cunit/cu_algorithm.c, liblwgeom/lwalgorithm.c:
+	  Fix boundary conditions with from==to hitting first/list vertex.
 
-2009-02-03 20:51  pramsey
+2009-02-03 19:09  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix boundary conditions with from==to hitting first/list vertex.
+	* [r3636] liblwgeom/lwgeom.c: Fix GBT#109: Some operators not
+	  supported for Circular. In this case I haven't added the
+	  comparison code as I am not 100% sure on the semantics, but the
+	  error message should be much clearer to users now.
 
-2009-02-03 19:09  mcayland
+2009-02-03 17:49  Regina Obe <lr at pcorp.us>
 
-	* Fix GBT#109: Some operators not supported for Circular. In this
-	  case I haven't added the comparison code as I am not 100% sure on
-	  the semantics, but the error message should be much clearer to
-	  users now.
+	* [r3635] doc/reference_new.xml: Add corrections from Bruce Rindahl
 
-2009-02-03 17:49  robe
+2009-02-03 17:30  Regina Obe <lr at pcorp.us>
 
-	* Add corrections from Bruce Rindahl
+	* [r3634] doc/reference_new.xml: forgot some spaces
 
-2009-02-03 17:30  robe
+2009-02-03 16:10  Regina Obe <lr at pcorp.us>
 
-	* forgot some spaces
+	* [r3633] doc/reference_new.xml: forgot availability info
 
-2009-02-03 16:10  robe
+2009-02-03 15:23  Regina Obe <lr at pcorp.us>
 
-	* forgot availability info
+	* [r3632] doc/reference_new.xml: update st_convexhull definition --
+	  wasn't very clear
 
-2009-02-03 15:23  robe
+2009-02-03 15:20  Regina Obe <lr at pcorp.us>
 
-	* update st_convexhull definition -- wasn't very clear
+	* [r3631] doc/reference_new.xml: Document ST_MinimumBoundingCircle
 
-2009-02-03 15:20  robe
+2009-02-03 14:52  Regina Obe <lr at pcorp.us>
 
-	* Document ST_MinimumBoundingCircle
+	* [r3630] lwgeom/postgis.sql.in.c: #HISTORY:
+	  ST_MinimumBoundingCircle -- also change to support geometries
+	  with LINESTRING,POINT convex hulls
 
-2009-02-03 14:52  robe
+2009-02-03 14:21  Regina Obe <lr at pcorp.us>
 
-	* #HISTORY: ST_MinimumBoundingCircle -- also change to support
-	  geometries with LINESTRING,POINT convex hulls
+	* [r3629] lwgeom/postgis.sql.in.c: First draft of
+	  ST_MinimumBoundingCircle contributed by Bruce Rindahl. Changed to
+	  use named params and renamed function from mbc to
+	  ST_MinimumBoundingCircle.
 
-2009-02-03 14:21  robe
+2009-02-03 13:23  Regina Obe <lr at pcorp.us>
 
-	* First draft of ST_MinimumBoundingCircle contributed by Bruce
-	  Rindahl. Changed to use named params and renamed function from
-	  mbc to ST_MinimumBoundingCircle.
+	* [r3628] doc/xsl/postgis_gardentest.sql.xsl: put back linetocurve
+	  curvetoline tests now that issue 86 and 108 should have fixed
 
-2009-02-03 13:23  robe
+2009-02-03 07:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* put back linetocurve curvetoline tests now that issue 86 and 108
-	  should have fixed
+	* [r3623] loader/shp2pgsql-core.c, loader/shp2pgsql.c: Use
+	  "extended string" format for escaping \ and ' in insert
+	  statements.
 
-2009-02-03 07:20  pramsey
+2009-02-03 04:36  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Use "extended string" format for escaping \ and ' in insert
-	  statements.
+	* [r3622] doc/rfc/postgis_rfc_04.txt: Adding an rfc for changing
+	  the validation approach when parsing WKT.
 
-2009-02-03 04:36  mleslie
+2009-02-03 01:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Adding an rfc for changing the validation approach when parsing
-	  WKT.
+	* [r3621] liblwgeom/lwalgorithm.c: astyle this file
 
-2009-02-03 01:59  pramsey
+2009-02-03 01:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* astyle this file
+	* [r3620] lwgeom/lwgeom_gist.c: Comment datum slice pull.
 
-2009-02-03 01:04  pramsey
+2009-02-02 22:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Comment datum slice pull.
+	* [r3619] liblwgeom/lwalgorithm.c, liblwgeom/lwalgorithm.h,
+	  lwgeom/lwgeom_geos.c: formatting
 
-2009-02-02 22:21  pramsey
+2009-02-02 18:26  Regina Obe <lr at pcorp.us>
 
-	* formatting
+	* [r3617] doc/reference_new.xml,
+	  doc/xsl/postgis_gardentest.sql.xsl: Typo in docs confusing
+	  gardentester. Also change ST_Collect use to ST_Union so we are
+	  testing with valid polygons (reduces union intersection error
+	  messages)
 
-2009-02-02 18:26  robe
+2009-02-02 06:01  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Typo in docs confusing gardentester. Also change ST_Collect use
-	  to ST_Union so we are testing with valid polygons (reduces union
-	  intersection error messages)
+	* [r3605] liblwgeom/lwsegmentize.c, regress/sql-mm-general.sql,
+	  regress/sql-mm-general_expected: Fix for Issue 108 and regress
+	  test.
 
-2009-02-02 06:01  mleslie
+2009-02-02 04:19  Regina Obe <lr at pcorp.us>
 
-	* Fix for Issue 108 and regress test.
+	* [r3604] doc/reference_new.xml: Document
+	  ST_LocateBetweenElevations
 
-2009-02-02 04:19  robe
+2009-02-01 06:48  Regina Obe <lr at pcorp.us>
 
-	* Document ST_LocateBetweenElevations
+	* [r3603] doc/reference_new.xml: Get rid of warnings -- no longer
+	  relevant for ST_LineCrossingDirection
 
-2009-02-01 06:48  robe
+2009-01-30 17:16  Regina Obe <lr at pcorp.us>
 
-	* Get rid of warnings -- no longer relevant for
-	  ST_LineCrossingDirection
+	* [r3599] doc/xsl/postgis_gardentest.sql.xsl: revise to correctly
+	  fill in timestamp/date args
 
-2009-01-30 17:16  robe
+2009-01-30 14:03  Regina Obe <lr at pcorp.us>
 
-	* revise to correctly fill in timestamp/date args
+	* [r3594] doc/xsl/postgis_gardentest.sql.xsl: put in logic to test
+	  operators
 
-2009-01-30 14:03  robe
+2009-01-30 13:44  Regina Obe <lr at pcorp.us>
 
-	* put in logic to test operators
+	* [r3593] doc/xsl/postgis_comments.sql.xsl,
+	  doc/xsl/postgis_gardentest.sql.xsl: Operator check in wrong
+	  segment of xpath
 
-2009-01-30 13:44  robe
+2009-01-28 23:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Operator check in wrong segment of xpath
+	* [r3578] lwgeom/lwgeom_geos.c: Change error message.
 
-2009-01-28 23:42  pramsey
+2009-01-28 23:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change error message.
+	* [r3576] lwgeom/lwgeom_geos.c: Handle null return from
+	  cascadedunion.
 
-2009-01-28 23:34  pramsey
+2009-01-28 01:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Handle null return from cascadedunion.
+	* [r3572] TODO: wrapping
 
-2009-01-28 01:02  pramsey
+2009-01-27 05:30  Regina Obe <lr at pcorp.us>
 
-	* wrapping
+	* [r3570] lwgeom/lwgeom_accum.c: missing meta properties
 
-2009-01-27 05:30  robe
+2009-01-25 15:52  Regina Obe <lr at pcorp.us>
 
-	* missing meta properties
+	* [r3569] doc/reference_new.xml: Document ST_Extent3D now that Paul
+	  has proclaimed it a public function
 
-2009-01-25 15:52  robe
+2009-01-24 20:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Document ST_Extent3D now that Paul has proclaimed it a public
-	  function
+	* [r3568] doc/rfc/postgis_rfc_03_sheet.txt, lwgeom/lwgeom_accum.c,
+	  lwgeom/postgis.sql.in.c: Small changes in createrelplace syntax,
+	  comments, function rename recommendation.
 
-2009-01-24 20:49  pramsey
+2009-01-23 22:05  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Small changes in createrelplace syntax, comments, function rename
-	  recommendation.
+	* [r3567] doc/reference_new.xml: small wording fix for
+	  DropGeometryColumn
 
-2009-01-23 22:05  kneufeld
+2009-01-23 20:06  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* small wording fix for DropGeometryColumn
+	* [r3566] doc/rfc/postgis_rfc_03.txt,
+	  doc/rfc/postgis_rfc_03_sheet.txt: Add function naming rfc
 
-2009-01-23 20:06  pramsey
+2009-01-22 23:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add function naming rfc
+	* [r3565] lwgeom/lwgeom_accum.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/postgis.sql.in.c: Flip all aggregate functions over to the
+	  new aggregation system. Remove catalog hacks in favour of wrapper
+	  type. Make the fast implementations the default and _old
+	  implementations the legacy.
 
-2009-01-22 23:58  pramsey
+2009-01-22 19:25  Regina Obe <lr at pcorp.us>
 
-	* Flip all aggregate functions over to the new aggregation system.
-	  Remove catalog hacks in favour of wrapper type. Make the fast
-	  implementations the default and _old implementations the legacy.
+	* [r3564] doc/xsl/postgis_comments.sql.xsl,
+	  doc/xsl/postgis_gardentest.sql.xsl: Filter out Operators section
+	  from xsl transforms
 
-2009-01-22 19:25  robe
+2009-01-22 19:25  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Filter out Operators section from xsl transforms
+	* [r3563] doc/reference.xml, doc/reference_new.xml: moved over the
+	  remaining operands from reference.xml to reference_new.xml in the
+	  documentation
 
-2009-01-22 19:25  kneufeld
+2009-01-22 19:15  Regina Obe <lr at pcorp.us>
 
-	* moved over the remaining operands from reference.xml to
-	  reference_new.xml in the documentation
+	* [r3562] doc/reference_new.xml: Give operators section a pretty
+	  anchor and id so easy to bookmark and I can exclude from xsl
+	  scripts
 
-2009-01-22 19:15  robe
+2009-01-22 18:19  Regina Obe <lr at pcorp.us>
 
-	* Give operators section a pretty anchor and id so easy to bookmark
-	  and I can exclude from xsl scripts
+	* [r3561] loader/dbfopen.c: Fix DBFReadDeleted logic -- should
+	  return 1 if record is deleted and 0 if it is not deleted
 
-2009-01-22 18:19  robe
+2009-01-22 18:02  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Fix DBFReadDeleted logic -- should return 1 if record is deleted
-	  and 0 if it is not deleted
+	* [r3558] doc/reference.xml, doc/reference_new.xml: moved over |>>
+	  from reference.xml to reference_new.xml in the documentation
 
-2009-01-22 18:02  kneufeld
+2009-01-22 17:46  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over |>> from reference.xml to reference_new.xml in the
+	* [r3557] doc/reference.xml, doc/reference_new.xml: moved over <<,
+	  <<|, and >> from reference.xml to reference_new.xml in the
 	  documentation
 
-2009-01-22 17:46  kneufeld
+2009-01-22 05:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* moved over <<, <<|, and >> from reference.xml to
-	  reference_new.xml in the documentation
+	* [r3556] lwgeom/postgis.sql.in.c: Remove protection from
+	  ST_GeometryArray() aggregate.
 
-2009-01-22 05:56  pramsey
+2009-01-22 05:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove protection from ST_GeometryArray() aggregate.
+	* [r3555] lwgeom: More ignore fixes
 
-2009-01-22 05:37  pramsey
+2009-01-22 05:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More ignore fixes
+	* [r3554] lwgeom: Ignore postgis.sql.*
 
-2009-01-22 05:35  pramsey
+2009-01-22 05:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore postgis.sql.*
+	* [r3553] lwgeom/postgis.sql.in.c: Alter pg_proc update to work
+	  with older PgSQLs too.
 
-2009-01-22 05:32  pramsey
+2009-01-22 01:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Alter pg_proc update to work with older PgSQLs too.
+	* [r3552] lwgeom/Makefile.in, lwgeom/lwgeom_accum.c,
+	  lwgeom/postgis.sql.in.c: First stab at a back-port of the
+	  array_agg from 8.4. Our's isn't generic, and it's got it's own
+	  name, so it won't collide, ... needs testing on PgSQL < 8.3
+	  still.
 
-2009-01-22 01:39  pramsey
+2009-01-22 01:16  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* First stab at a back-port of the array_agg from 8.4. Our's isn't
-	  generic, and it's got it's own name, so it won't collide, ...
-	  needs testing on PgSQL < 8.3 still.
+	* [r3551] doc/reference.xml, doc/reference_new.xml: moved over |&>
+	  from reference.xml to reference_new.xml in the documentation
 
-2009-01-22 01:16  kneufeld
+2009-01-22 00:44  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over |&> from reference.xml to reference_new.xml in the
-	  documentation
+	* [r3550] doc/reference.xml, doc/reference_new.xml: moved over &>|
+	  from reference.xml to reference_new.xml in the documentation
 
-2009-01-22 00:44  kneufeld
+2009-01-22 00:16  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over &>| from reference.xml to reference_new.xml in the
-	  documentation
+	* [r3549] doc/reference.xml, doc/reference_new.xml: moved over &>
+	  from reference.xml to reference_new.xml in the documentation
 
-2009-01-22 00:16  kneufeld
+2009-01-21 23:26  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over &> from reference.xml to reference_new.xml in the
+	* [r3548] doc/reference.xml, doc/reference_new.xml: moved over &&,
+	  &<, and = from reference.xml to reference_new.xml in the
 	  documentation
 
-2009-01-21 23:26  kneufeld
+2009-01-21 23:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* moved over &&, &<, and = from reference.xml to reference_new.xml
-	  in the documentation
+	* [r3547] configure.ac, lwgeom/lwgeom_geos.c,
+	  lwgeom/postgis.sql.in.c: Add support for fast unions, with
+	  cascaded union. Currently for testing, in the ST_Union_Fast()
+	  agggregate. Requires GEOS SVN r2252 or higher.
 
-2009-01-21 23:19  pramsey
+2009-01-21 21:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for fast unions, with cascaded union. Currently for
-	  testing, in the ST_Union_Fast() agggregate. Requires GEOS SVN
-	  r2252 or higher.
+	* [r3546] doc/rfc, doc/rfc/postgis_rfc_02.txt: Add rfc document.
+	  First one: alignment ideas.
 
-2009-01-21 21:55  pramsey
+2009-01-21 21:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add rfc document. First one: alignment ideas.
+	* [r3545] lwgeom/lwgeom_estimate.c: Headers split in 8.4?
 
-2009-01-21 21:50  pramsey
+2009-01-20 18:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Headers split in 8.4?
+	* [r3544] loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c: Put translation_stage into descriptive
+	  MACRO names
 
-2009-01-20 18:43  pramsey
+2009-01-20 18:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Put translation_stage into descriptive MACRO names
+	* [r3543] macros/gtk-2.0.m4: Add GTK macro.
 
-2009-01-20 18:28  pramsey
+2009-01-20 17:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add GTK macro.
+	* [r3542] configure.ac, loader/Makefile.in: Replace hand-built
+	  pkg-config routine w/ m4 from gtk source.
 
-2009-01-20 17:48  pramsey
+2009-01-20 07:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Replace hand-built pkg-config routine w/ m4 from gtk source.
+	* [r3541] loader/shp2pgsql-gui.c: Compile your work much?
 
-2009-01-20 07:36  pramsey
+2009-01-20 07:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Compile your work much?
+	* [r3540] loader/shp2pgsql-gui.c: Protect the filename setting a
+	  little bit more in case it's NULL.
 
-2009-01-20 07:13  pramsey
+2009-01-20 00:50  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Protect the filename setting a little bit more in case it's NULL.
+	* [r3539] doc/reference_new.xml: Fixed accidental broken build in
+	  docs from Rev3536.
 
-2009-01-20 00:50  kneufeld
+2009-01-19 21:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed accidental broken build in docs from Rev3536.
+	* [r3538] configure.ac, liblwgeom/liblwgeom.h, loader,
+	  loader/Makefile.in, loader/dbfopen.c, loader/shp2pgsql-cli.c,
+	  loader/shp2pgsql-core.c, loader/shp2pgsql-core.h,
+	  loader/shp2pgsql-gui.c, loader/stringbuffer.c,
+	  loader/stringbuffer.h: First revision of the GUI. Configure using
+	  --with-gui to enable full GUI build. New core/cli will build by
+	  default. Old utilities remain in place for now.
 
-2009-01-19 21:33  pramsey
+2009-01-16 17:58  Regina Obe <lr at pcorp.us>
 
-	* First revision of the GUI. Configure using --with-gui to enable
-	  full GUI build. New core/cli will build by default. Old utilities
-	  remain in place for now.
+	* [r3537] doc/reference.xml, doc/reference_new.xml: move
+	  ST_GeomCollFromText
 
-2009-01-16 17:58  robe
+2009-01-16 17:41  Regina Obe <lr at pcorp.us>
 
-	* move ST_GeomCollFromText
+	* [r3536] doc/reference.xml, doc/reference_new.xml: Move
+	  st_mpolyfromtext
 
-2009-01-16 17:41  robe
+2009-01-15 21:11  Regina Obe <lr at pcorp.us>
 
-	* Move st_mpolyfromtext
+	* [r3535] doc/reference_new.xml: Left some garbage in
 
-2009-01-15 21:11  robe
+2009-01-15 18:35  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Left some garbage in
-
-2009-01-15 18:35  mcayland
-
-	* Part 1 of GBT#94: Rename folders/files to be more consistent.
+	* [r3534] GNUmakefile, README.postgis, doc/installation.xml,
+	  extras/ogc_test_suite/Makefile, extras/ogc_test_suite/README,
+	  extras/template_gis/profile, extras/tiger_geocoder/INSTALL,
+	  extras/tiger_geocoder/import/newdb.sh, lwgeom/Makefile.in,
+	  lwgeom/lwpostgis.sql.in.c, lwgeom/postgis.sql.in.c,
+	  lwgeom/sqldefines.h.in, regress/Makefile.in, regress/run_test:
+	  Part 1 of GBT#94: Rename folders/files to be more consistent.
 	  Embed the MAJOR.MINOR version in the PostgreSQL shared library
 	  name (to allow different databases to contain different PostGIS
 	  versions) and also rename lwpostgis.sql to postgis.sql. Update
 	  documentation in various files to reflect the new names at the
 	  same time.
 
-2009-01-15 18:24  robe
+2009-01-15 18:24  Regina Obe <lr at pcorp.us>
 
-	* Move ST_MLineFromText
+	* [r3533] doc/reference.xml, doc/reference_new.xml: Move
+	  ST_MLineFromText
 
-2009-01-15 18:17  robe
+2009-01-15 18:17  Regina Obe <lr at pcorp.us>
 
-	* more stuff
+	* [r3532] doc/reference_new.xml: more stuff
 
-2009-01-15 18:16  robe
+2009-01-15 18:16  Regina Obe <lr at pcorp.us>
 
-	* forgot some stuff
+	* [r3531] doc/reference_new.xml: forgot some stuff
 
-2009-01-15 18:14  robe
+2009-01-15 18:14  Regina Obe <lr at pcorp.us>
 
-	* Move over MPointFromText
+	* [r3530] doc/reference.xml, doc/reference_new.xml: Move over
+	  MPointFromText
 
-2009-01-15 15:10  mcayland
+2009-01-15 15:10  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix the output of "SELECT postgis_full_version()" on trunk by
-	  ensuring that USE_STATS is present, and correctly generating the
+	* [r3529] lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in.c, lwgeom/sqldefines.h.in: Fix the output
+	  of "SELECT postgis_full_version()" on trunk by ensuring that
+	  USE_STATS is present, and correctly generating the
 	  POSTGIS_SCRIPTS_VERSION variable so that installations of trunk
 	  don't keep thinking that they need a scripts upgrade.
 
-2009-01-14 17:46  pramsey
+2009-01-14 17:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove missing prototype warning from build.
+	* [r3527] liblwgeom/wktparse.h: Remove missing prototype warning
+	  from build.
 
-2009-01-13 15:12  robe
+2009-01-13 15:12  Regina Obe <lr at pcorp.us>
 
-	* Error in logic in gardentest not correctly flagging WKT functions
-	  as taking geometry variant
+	* [r3526] doc/xsl/postgis_gardentest.sql.xsl: Error in logic in
+	  gardentest not correctly flagging WKT functions as taking
+	  geometry variant
 
-2009-01-13 15:11  mcayland
+2009-01-13 15:11  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix regression tests to account for changes made in r3522 (rename
+	* [r3525] regress/geojson_expected, regress/kml_expected: Fix
+	  regression tests to account for changes made in r3522 (rename
 	  'Curve' to 'CircularString')
 
-2009-01-13 14:04  robe
+2009-01-13 14:04  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_PolygonFromText
+	* [r3524] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_PolygonFromText
 
-2009-01-13 13:12  mcayland
+2009-01-13 13:12  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix compile warnings for the cunit tests (unused variables).
+	* [r3523] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_tester.c: Fix compile warnings for the cunit
+	  tests (unused variables).
 
-2009-01-13 13:00  mcayland
+2009-01-13 13:00  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update lwgeom_gettypename() by renaming Curve to CircularString.
-	  Now lots of error messages scattered throughout liblwgeom should
-	  start to make sense...
+	* [r3522] liblwgeom/lwutil.c: Update lwgeom_gettypename() by
+	  renaming Curve to CircularString. Now lots of error messages
+	  scattered throughout liblwgeom should start to make sense...
 
-2009-01-13 12:59  mcayland
+2009-01-13 12:59  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rearrange liblwgeom.h as per Paul's comment on GBT#97: Rename
-	  LWCURVE to LWCIRCSTRING. Also rename lwfree_circstring() to
-	  lwcircstring_free() so that it matches the others (I guess this
-	  was missed in the first pass).
+	* [r3521] liblwgeom/liblwgeom.h, liblwgeom/lwcircstring.c,
+	  liblwgeom/lwgeom_api.c: Rearrange liblwgeom.h as per Paul's
+	  comment on GBT#97: Rename LWCURVE to LWCIRCSTRING. Also rename
+	  lwfree_circstring() to lwcircstring_free() so that it matches the
+	  others (I guess this was missed in the first pass).
 
-2009-01-13 12:27  mcayland
+2009-01-13 12:27  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit for GBT#97: Rename LWCURVE to LWCIRCSTRING (also know as
-	  restoring balance to the universe).
+	* [r3520] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcircstring.c, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurve.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwsegmentize.c, liblwgeom/wktparse.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_transform.c: Commit for GBT#97: Rename LWCURVE to
+	  LWCIRCSTRING (also know as restoring balance to the universe).
 	  
 	  Having gone through and re-read sections of the CIRCULARSTRING
 	  code, it is amazing how much easier the code is to read without
@@ -32611,140 +51270,170 @@
 	  torture script. Please let me know if I accidentally broke
 	  anything :)
 
-2009-01-12 19:29  pramsey
+2009-01-12 19:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove double-free problem from loader in presence of new
-	  deep-freeing lwfree calls.
+	* [r3519] liblwgeom/lwcollection.c, liblwgeom/lwmpoint.c,
+	  liblwgeom/lwmpoly.c, loader/shp2pgsql.c: Remove double-free
+	  problem from loader in presence of new deep-freeing lwfree calls.
 
-2009-01-12 14:38  robe
+2009-01-12 14:38  Regina Obe <lr at pcorp.us>
 
-	* typos
+	* [r3518] doc/reference_new.xml: typos
 
-2009-01-12 14:24  robe
+2009-01-12 14:24  Regina Obe <lr at pcorp.us>
 
-	* Correct. ST_LinestringFromText does not exist though was
-	  documented before.
+	* [r3517] doc/reference_new.xml: Correct. ST_LinestringFromText
+	  does not exist though was documented before.
 
-2009-01-12 13:54  robe
+2009-01-12 13:54  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Line functions and point out how pointless they are.
-	  Also correct incorrect statement that they throw errors when
-	  given non-line - they just return null.
+	* [r3516] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Line functions and point out how pointless they are. Also
+	  correct incorrect statement that they throw errors when given
+	  non-line - they just return null.
 
-2009-01-12 12:23  mcayland
+2009-01-12 12:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove erroneus merge from r3502 (HAVE_CUNIT_H just isn't defined
-	  anymore...)
+	* [r3515] liblwgeom/Makefile.in: Remove erroneus merge from r3502
+	  (HAVE_CUNIT_H just isn't defined anymore...)
 
-2009-01-11 07:10  pramsey
+2009-01-11 07:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove RECHECK per GBT#18.
+	* [r3514] lwgeom/lwgeom_gist.c, lwgeom/lwpostgis.sql.in.c: Remove
+	  RECHECK per GBT#18.
 
-2009-01-09 23:04  robe
+2009-01-09 23:04  Regina Obe <lr at pcorp.us>
 
-	* Fix typo
+	* [r3513] doc/reference_new.xml: Fix typo
 
-2009-01-09 22:52  robe
+2009-01-09 22:52  Regina Obe <lr at pcorp.us>
 
-	* Move over rest of miscellaneous -- NOTE st_find_srid does not
-	  exist - was never renamed from find_srid. Not sure its worth
-	  fixing since its rarely used anyway.
+	* [r3512] doc/reference.xml, doc/reference_new.xml: Move over rest
+	  of miscellaneous -- NOTE st_find_srid does not exist - was never
+	  renamed from find_srid. Not sure its worth fixing since its
+	  rarely used anyway.
 
-2009-01-09 19:17  pramsey
+2009-01-09 19:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename lwfree_inspected to lwinspected_release, per it's "shallow
-	  free" behavior.
+	* [r3511] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geojson.c,
+	  lwgeom/lwgeom_gml.c, lwgeom/lwgeom_kml.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_spheroid.c, lwgeom/lwgeom_transform.c: Rename
+	  lwfree_inspected to lwinspected_release, per it's "shallow free"
+	  behavior.
 
-2009-01-09 17:41  pramsey
+2009-01-09 17:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename lwfree_* to *_free.
+	* [r3510] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/examples/unparser.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwline.c, liblwgeom/lwmline.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c, liblwgeom/lwpoint.c,
+	  liblwgeom/lwpoly.c, liblwgeom/ptarray.c, loader/shp2pgsql.c,
+	  lwgeom/lwgeom_functions_analytic.c, lwgeom/lwgeom_kml.c: Rename
+	  lwfree_* to *_free.
 
-2009-01-09 14:15  robe
+2009-01-09 14:15  Regina Obe <lr at pcorp.us>
 
-	* Missed some ST_ spots.
+	* [r3509] doc/using_postgis.xml: Missed some ST_ spots.
 
-2009-01-09 13:49  robe
+2009-01-09 13:49  Regina Obe <lr at pcorp.us>
 
-	* Missed a spot.
+	* [r3508] doc/using_postgis.xml: Missed a spot.
 
-2009-01-09 13:48  robe
+2009-01-09 13:48  Regina Obe <lr at pcorp.us>
 
-	* Using - fix some connectiontype omissions in Mapserver section,
-	  add in processing defer comment, fix some missing ST_
+	* [r3507] doc/using_postgis.xml: Using - fix some connectiontype
+	  omissions in Mapserver section, add in processing defer comment,
+	  fix some missing ST_
 
-2009-01-09 13:32  robe
+2009-01-09 13:32  Regina Obe <lr at pcorp.us>
 
-	* Add circular string note
+	* [r3506] doc/reference_new.xml: Add circular string note
 
-2009-01-09 13:29  robe
+2009-01-09 13:29  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_NRings
+	* [r3505] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_NRings
 
-2009-01-09 13:17  robe
+2009-01-09 13:17  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Zmflag
+	* [r3504] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Zmflag
 
-2009-01-08 17:22  pramsey
+2009-01-08 17:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Forgot to save this file. Also changes to lwfree_* *_release.
+	* [r3503] lwgeom/lwgeom_gml.c: Forgot to save this file. Also
+	  changes to lwfree_* *_release.
 
-2009-01-08 17:04  pramsey
+2009-01-08 17:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Alter lwfree_* to deep-free memory. Add variants of *_release to
+	* [r3502] liblwgeom/Makefile.in, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcollection.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwline.c, liblwgeom/lwmline.c,
+	  liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c, liblwgeom/lwpoint.c,
+	  liblwgeom/lwpoly.c, liblwgeom/ptarray.c,
+	  lwgeom/lwgeom_functions_analytic.c, lwgeom/lwgeom_geojson.c:
+	  Alter lwfree_* to deep-free memory. Add variants of *_release to
 	  support shallow-free. Go through lwgeom/ and replace any lwfree_*
 	  instances with *_release where appropriate. (Surprisingly few.)
 
-2009-01-08 16:06  robe
+2009-01-08 16:06  Regina Obe <lr at pcorp.us>
 
-	* documentatioin out of synch with reality since garden test
-	  failing. Change spelling ST_CrossingDirection to new name
-	  ST_LineCrossingDirection
+	* [r3501] doc/reference_new.xml: documentatioin out of synch with
+	  reality since garden test failing. Change spelling
+	  ST_CrossingDirection to new name ST_LineCrossingDirection
 
-2009-01-08 15:50  robe
+2009-01-08 15:50  Regina Obe <lr at pcorp.us>
 
-	* put in valid name space (giving error with my xsltproc otherwise)
+	* [r3500] doc/xsl/postgis_gardentest.sql.xsl: put in valid name
+	  space (giving error with my xsltproc otherwise)
 
-2009-01-07 19:40  robe
+2009-01-07 19:40  Regina Obe <lr at pcorp.us>
 
-	* Finish off adding multi garden geometries
+	* [r3499] doc/xsl/postgis_gardentest.sql.xsl: Finish off adding
+	  multi garden geometries
 
-2009-01-07 18:25  kneufeld
+2009-01-07 18:25  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated documention on addgeometrycolumn, clarifying the errors
-	  thrown.
+	* [r3498] doc/reference_new.xml: updated documention on
+	  addgeometrycolumn, clarifying the errors thrown.
 
-2009-01-07 12:11  mcayland
+2009-01-07 12:11  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Bump some LWDEBUG(F) from level 1 up to levels 3-4 (level 1 is
-	  reserved)
+	* [r3496] liblwgeom/lwalgorithm.c: Bump some LWDEBUG(F) from level
+	  1 up to levels 3-4 (level 1 is reserved)
 
-2009-01-07 01:16  pramsey
+2009-01-07 01:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove memory leak in standard loader.
+	* [r3495] loader/shp2pgsql.c: Remove memory leak in standard
+	  loader.
 
-2009-01-05 20:54  mcayland
+2009-01-05 20:54  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Allow CPPFLAGS/LDFLAGS parameters from the command line to be
-	  passed into the CUnit Makefile, since CUnit is the only
-	  dependency that cannot determine its own flags using a --with-X
-	  parameter. This allows CUnit to be installed in a non-standard
-	  location if required.
+	* [r3494] configure.ac, liblwgeom/cunit/Makefile.in: Allow
+	  CPPFLAGS/LDFLAGS parameters from the command line to be passed
+	  into the CUnit Makefile, since CUnit is the only dependency that
+	  cannot determine its own flags using a --with-X parameter. This
+	  allows CUnit to be installed in a non-standard location if
+	  required.
 
-2009-01-05 14:44  robe
+2009-01-05 14:44  Regina Obe <lr at pcorp.us>
 
-	* Put circular back in mix. Doesn't crash now that MCA changed
-	  distance to throw error.
+	* [r3493] doc/xsl/postgis_gardentest.sql.xsl: Put circular back in
+	  mix. Doesn't crash now that MCA changed distance to throw error.
 
-2009-01-05 00:08  mcayland
+2009-01-05 00:08  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rework the CUnit detection infrastructure as you can't locate
-	  include files based on an absolute path. This is because autoconf
-	  and the compiler have differing ideas of the current paths (this
-	  totally breaks the Win32 build since you have the extra mapping
-	  between UNIX-type MingW paths and Windows-type paths). Hopefully
-	  this should not affect existing users at all - if so, please post
-	  a report on -devel. I'll try running this on MingW at a later
-	  date.
+	* [r3492] configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile.in: Rework the CUnit detection
+	  infrastructure as you can't locate include files based on an
+	  absolute path. This is because autoconf and the compiler have
+	  differing ideas of the current paths (this totally breaks the
+	  Win32 build since you have the extra mapping between UNIX-type
+	  MingW paths and Windows-type paths). Hopefully this should not
+	  affect existing users at all - if so, please post a report on
+	  -devel. I'll try running this on MingW at a later date.
 	  
 	  I've also enforced "make check" to run the unit tests, rather
 	  than "make test". This is a fallout from the early days when strk
@@ -32752,581 +51441,707 @@
 	  accident which appears to have stuck :(
 	  .
 
-2009-01-04 20:39  mcayland
+2009-01-04 20:39  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix comment in lwgeom_from_ewkt() and also add a quick error
-	  check to lwgeom_from_ewkt() and lwgeom_from_ewkb() - otherwise
-	  upon parse failure we could pass a half-baked geometry back to
-	  the caller which would not be good :(
+	* [r3491] liblwgeom/lwgeom.c: Fix comment in lwgeom_from_ewkt() and
+	  also add a quick error check to lwgeom_from_ewkt() and
+	  lwgeom_from_ewkb() - otherwise upon parse failure we could pass a
+	  half-baked geometry back to the caller which would not be good :(
 
-2009-01-04 20:11  mcayland
+2009-01-04 20:11  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update the cunit tests to use the proper parser flag
-	  PARSER_CHECK_NONE rather than the hard-coded zero.
+	* [r3490] liblwgeom/cunit/cu_algorithm.c: Update the cunit tests to
+	  use the proper parser flag PARSER_CHECK_NONE rather than the
+	  hard-coded zero.
 
-2009-01-04 19:54  mcayland
+2009-01-04 19:54  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add -lm to the cu_tester link line - we must always add this to
-	  the link line for anything that links agains liblwgeom.a (at
-	  least on my Linux system here)
+	* [r3489] liblwgeom/cunit/Makefile.in: Add -lm to the cu_tester
+	  link line - we must always add this to the link line for anything
+	  that links agains liblwgeom.a (at least on my Linux system here)
 
-2009-01-04 19:24  mcayland
+2009-01-04 19:24  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit quick fix for GBT#85: ST_Distance crashes on Circular
-	  String. Rather than devise and implement a set of distance
-	  functions for CIRCULARSTRINGs, I've simply added code to detect
-	  the condition and throw an "Unsupported geometry type" error,
-	  similar to as already exists within the codebase.
+	* [r3487] liblwgeom/measures.c: Commit quick fix for GBT#85:
+	  ST_Distance crashes on Circular String. Rather than devise and
+	  implement a set of distance functions for CIRCULARSTRINGs, I've
+	  simply added code to detect the condition and throw an
+	  "Unsupported geometry type" error, similar to as already exists
+	  within the codebase.
 
-2009-01-02 13:25  robe
+2009-01-02 13:25  Regina Obe <lr at pcorp.us>
 
-	* minor update
+	* [r3486] TODO: minor update
 
-2009-01-02 13:23  robe
+2009-01-02 13:23  Regina Obe <lr at pcorp.us>
 
-	* Add ST_DumpPoints. Not sure how simple it is.
+	* [r3485] TODO: Add ST_DumpPoints. Not sure how simple it is.
 
-2009-01-01 21:36  robe
+2009-01-01 21:36  Regina Obe <lr at pcorp.us>
 
-	* Put time stamp placeholder on (I think)
+	* [r3484] TODO: Put time stamp placeholder on (I think)
 
-2009-01-01 21:26  robe
+2009-01-01 21:26  Regina Obe <lr at pcorp.us>
 
-	* Fix typo
+	* [r3483] TODO: Fix typo
 
-2009-01-01 00:31  pramsey
+2009-01-01 00:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix based on test case from MAC.
+	* [r3482] liblwgeom/cunit/cu_algorithm.c, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwgeom_api.c: Fix based on test case from MAC.
 
-2008-12-27 22:58  pramsey
+2008-12-27 22:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add support for multilinestring to st_locatebetweenelevations
+	* [r3481] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h,
+	  lwgeom/lwgeom_functions_analytic.c: Add support for
+	  multilinestring to st_locatebetweenelevations
 
-2008-12-27 08:08  pramsey
+2008-12-27 08:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add heat map case.
+	* [r3480] TODO: Add heat map case.
 
-2008-12-24 20:15  pramsey
+2008-12-24 20:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add mline version of clipper.
+	* [r3479] liblwgeom/lwalgorithm.c, liblwgeom/lwalgorithm.h: Add
+	  mline version of clipper.
 
-2008-12-24 17:37  pramsey
+2008-12-24 17:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add lwfree_geom to generically deep-free lwgeometries.
+	* [r3478] liblwgeom/cunit/cu_algorithm.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwalgorithm.c, liblwgeom/lwgeom.c: Add lwfree_geom to
+	  generically deep-free lwgeometries.
 
-2008-12-24 17:09  pramsey
+2008-12-24 17:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add lwgeom_from_ewkt and change larger cunit tests to create
-	  candidate geometries from text instead of by hand.
+	* [r3477] liblwgeom/cunit, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c: Add lwgeom_from_ewkt
+	  and change larger cunit tests to create candidate geometries from
+	  text instead of by hand.
 
-2008-12-24 00:32  mcayland
+2008-12-24 00:32  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Try and commit a pre-generated output from flex that works for
-	  the build-bot.
+	* [r3476] liblwgeom/lex.yy.c: Try and commit a pre-generated output
+	  from flex that works for the build-bot.
 
-2008-12-23 22:11  pramsey
+2008-12-23 22:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Revert accidental commit of lex.yy.c
+	* [r3475] liblwgeom/lex.yy.c: Revert accidental commit of lex.yy.c
 
-2008-12-23 20:20  pramsey
+2008-12-23 20:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename new functions to ST_LineCrossingDirection and
-	  ST_LocateBetweenElevations for more explicitness and closer
-	  correspondance to SQL/MM, respectively. Add a new geometry
-	  counter for collections.
+	* [r3474] liblwgeom/lex.yy.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcollection.c, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwpostgis.sql.in.c: Rename new functions to
+	  ST_LineCrossingDirection and ST_LocateBetweenElevations for more
+	  explicitness and closer correspondance to SQL/MM, respectively.
+	  Add a new geometry counter for collections.
 
-2008-12-23 13:24  robe
+2008-12-23 13:24  Regina Obe <lr at pcorp.us>
 
-	* Break out multi as separate geometry types and start putting in.
-	  Remove unary/aggregate geom since now exactly the same as section
-	  that takes only 1 geometry.
+	* [r3473] doc/xsl/postgis_gardentest.sql.xsl: Break out multi as
+	  separate geometry types and start putting in. Remove
+	  unary/aggregate geom since now exactly the same as section that
+	  takes only 1 geometry.
 
-2008-12-22 23:37  pramsey
+2008-12-22 23:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add CUnit to main 'make test' build and check for existance of
-	  CUnit.h as part of ./configure
+	* [r3472] configure.ac, liblwgeom/Makefile.in,
+	  liblwgeom/cunit/Makefile, liblwgeom/cunit/Makefile.in: Add CUnit
+	  to main 'make test' build and check for existance of CUnit.h as
+	  part of ./configure
 
-2008-12-22 21:49  mcayland
+2008-12-22 21:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix typo in the backticks when extracting linker/include flags
-	  from pg_config. Resolving this allows SVN trunk to compile on
-	  MingW! :)
+	* [r3471] configure.ac: Fix typo in the backticks when extracting
+	  linker/include flags from pg_config. Resolving this allows SVN
+	  trunk to compile on MingW! :)
 
-2008-12-22 17:49  robe
+2008-12-22 17:49  Regina Obe <lr at pcorp.us>
 
-	* More typos
+	* [r3470] doc/reference_new.xml: More typos
 
-2008-12-22 17:48  robe
+2008-12-22 17:48  Regina Obe <lr at pcorp.us>
 
-	* More typos
+	* [r3469] doc/reference_new.xml: More typos
 
-2008-12-22 17:47  robe
+2008-12-22 17:47  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r3468] doc/reference_new.xml: typo
 
-2008-12-22 16:54  robe
+2008-12-22 16:54  Regina Obe <lr at pcorp.us>
 
-	* Missed a constant
+	* [r3467] doc/reference_new.xml: Missed a constant
 
-2008-12-22 16:53  robe
+2008-12-22 16:53  Regina Obe <lr at pcorp.us>
 
-	* First draft of ST_CrossingDirection -- needs more work
+	* [r3466] doc/reference_new.xml: First draft of
+	  ST_CrossingDirection -- needs more work
 
-2008-12-22 15:22  robe
+2008-12-22 15:22  Regina Obe <lr at pcorp.us>
 
-	* More conditional corrections. Also take circular back out of test
-	  since still crashes under 1.4 with ST_Distance.
+	* [r3465] doc/xsl/postgis_gardentest.sql.xsl: More conditional
+	  corrections. Also take circular back out of test since still
+	  crashes under 1.4 with ST_Distance.
 
-2008-12-22 14:14  robe
+2008-12-22 14:14  Regina Obe <lr at pcorp.us>
 
-	* Revision - change to not test geoms against other geoms if
-	  function only takes one geom, better commenting of output. Put
-	  back circularstring -- crashes on 1.3 still on ST_Distance in
-	  some cases. Haven't tested against trunk
+	* [r3464] doc/xsl/postgis_gardentest.sql.xsl: Revision - change to
+	  not test geoms against other geoms if function only takes one
+	  geom, better commenting of output. Put back circularstring --
+	  crashes on 1.3 still on ST_Distance in some cases. Haven't tested
+	  against trunk
 
-2008-12-22 12:15  mcayland
+2008-12-22 12:15  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove the few C++-style comments that have crept into the
+	* [r3462] STYLE, liblwgeom/lwcurve.c, liblwgeom/lwutil.c,
+	  liblwgeom/wktparse.lex, lwgeom/lwgeom_chip.c, lwgeom/test.c:
+	  Remove the few C++-style comments that have crept into the
 	  codebase, and add a note to the STYLE document stating that
 	  C-style comments should be used.
 
-2008-12-22 11:51  mcayland
+2008-12-22 11:51  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove the WKB_CONVERSION hack which was invented to try and make
-	  the JTS connector more reliable. Since all the other JTS code has
-	  gone, this can now go too. See
+	* [r3461] lwgeom/lwgeom_geos.c: Remove the WKB_CONVERSION hack
+	  which was invented to try and make the JTS connector more
+	  reliable. Since all the other JTS code has gone, this can now go
+	  too. See
 	  http://postgis.refractions.net/pipermail/postgis-devel/2008-August/003495.html
 	  for a little discussion.
 
-2008-12-22 11:38  mcayland
+2008-12-22 11:38  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Errr.... unsigned *what* exactly??! If you'd have asked me
-	  yesterday if I thought this would compile, I would have said
-	  no...
+	* [r3460] liblwgeom/lwgunparse.c: Errr.... unsigned *what*
+	  exactly??! If you'd have asked me yesterday if I thought this
+	  would compile, I would have said no...
 
-2008-12-22 11:11  mcayland
+2008-12-22 11:11  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Some code tidy-ups: remove Windows CR/LFs from the file, change
-	  the free()s into lwfree()s, and fix a spelling mistake.
+	* [r3459] liblwgeom/lwmcurve.c: Some code tidy-ups: remove Windows
+	  CR/LFs from the file, change the free()s into lwfree()s, and fix
+	  a spelling mistake.
 
-2008-12-22 09:30  robe
+2008-12-22 09:30  Regina Obe <lr at pcorp.us>
 
-	* revert part of last change
+	* [r3458] doc/xsl/postgis_gardentest.sql.xsl: revert part of last
+	  change
 
-2008-12-22 08:39  robe
+2008-12-22 08:39  Regina Obe <lr at pcorp.us>
 
-	* correction to last edit
+	* [r3457] doc/xsl/postgis_gardentest.sql.xsl: correction to last
+	  edit
 
-2008-12-21 06:37  pramsey
+2008-12-21 06:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_LineClipZ(geometry, from, to) SQL and C functions.
+	* [r3456] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/lwalgorithm.c,
+	  lwgeom/lwgeom_functions_analytic.c, lwgeom/lwpostgis.sql.in.c:
+	  Add ST_LineClipZ(geometry, from, to) SQL and C functions.
 
-2008-12-19 19:21  pramsey
+2008-12-19 19:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Complete c-level line clipping routines, and unit tests.
+	* [r3455] liblwgeom/cunit, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/lwalgorithm.c: Complete c-level line clipping routines,
+	  and unit tests.
 
-2008-12-19 19:20  pramsey
+2008-12-19 19:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add in lwfree_* deep memory clean-up routines for multi-objects.
+	* [r3454] liblwgeom/liblwgeom.h, liblwgeom/lwcollection.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c:
+	  Add in lwfree_* deep memory clean-up routines for multi-objects.
 
-2008-12-19 18:51  kneufeld
+2008-12-19 18:51  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Upgraded section in using_postgis.xml that talks about OGC
-	  Simplicity / Validity.
+	* [r3453] doc/html/images/st_issimple01.png,
+	  doc/html/images/st_issimple02.png,
+	  doc/html/images/st_issimple03.png,
+	  doc/html/images/st_issimple04.png,
+	  doc/html/images/st_issimple05.png,
+	  doc/html/images/st_issimple06.png,
+	  doc/html/images/st_issimple07.png,
+	  doc/html/images/st_isvalid01.png,
+	  doc/html/images/st_isvalid02.png,
+	  doc/html/images/st_isvalid03.png,
+	  doc/html/images/st_isvalid04.png,
+	  doc/html/images/st_isvalid05.png,
+	  doc/html/images/st_isvalid06.png,
+	  doc/html/images/st_isvalid07.png,
+	  doc/html/images/st_isvalid08.png, doc/reference_new.xml,
+	  doc/using_postgis.xml: Upgraded section in using_postgis.xml that
+	  talks about OGC Simplicity / Validity.
 
-2008-12-19 16:57  pramsey
+2008-12-19 16:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove camelCase example from style guideline against camelCase
-	  (! :)
+	* [r3452] STYLE: Remove camelCase example from style guideline
+	  against camelCase (! :)
 
-2008-12-19 14:59  mcayland
+2008-12-19 14:59  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove the PostGIS LWGEOM type constants from pgsql2shp - they
-	  are no longer needed here as they are included as part of
-	  liblwgeom.h.
+	* [r3451] loader/pgsql2shp.c: Remove the PostGIS LWGEOM type
+	  constants from pgsql2shp - they are no longer needed here as they
+	  are included as part of liblwgeom.h.
 
-2008-12-18 20:42  pramsey
+2008-12-18 20:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Complete the pfree_ to lwfree_ renaming.
+	* [r3450] liblwgeom/examples/unparser.c, liblwgeom/lwgeom_api.c,
+	  liblwgeom/lwpoint.c, loader/shp2pgsql.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geojson.c,
+	  lwgeom/lwgeom_gml.c, lwgeom/lwgeom_kml.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_spheroid.c, lwgeom/lwgeom_transform.c: Complete the
+	  pfree_ to lwfree_ renaming.
 
-2008-12-18 20:36  pramsey
+2008-12-18 20:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move curve back down below curve struct. Hm.
+	* [r3449] liblwgeom/liblwgeom.h: Move curve back down below curve
+	  struct. Hm.
 
-2008-12-18 20:35  pramsey
+2008-12-18 20:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Complete the pfree_* to lwfree_* renaming.
+	* [r3448] liblwgeom/examples/unparser.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwcurve.c, liblwgeom/lwgeom_api.c, liblwgeom/lwline.c,
+	  liblwgeom/lwpoint.c, liblwgeom/lwpoly.c: Complete the pfree_* to
+	  lwfree_* renaming.
 
-2008-12-18 20:30  pramsey
+2008-12-18 20:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename pfree_* memory management function lwfree_*
+	* [r3447] liblwgeom/examples/unparser.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwpoint.c, loader/shp2pgsql.c,
+	  lwgeom/lwgeom_functions_analytic.c, lwgeom/lwgeom_geojson.c,
+	  lwgeom/lwgeom_gml.c, lwgeom/lwgeom_kml.c: Rename pfree_* memory
+	  management function lwfree_*
 
-2008-12-18 20:22  pramsey
+2008-12-18 20:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Partial work commit for safety
+	* [r3446] liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h, liblwgeom/lwgeom.c: Partial work commit
+	  for safety
 
-2008-12-18 17:07  pramsey
+2008-12-18 17:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ignore generated Makefile
+	* [r3445] loader: Ignore generated Makefile
 
-2008-12-18 15:58  robe
+2008-12-18 15:58  Regina Obe <lr at pcorp.us>
 
-	* Revise to cross every geometry with every other to better test
-	  the functions that take 2 geometries. This increases the
-	  generated script to about 18 MB. Still need to trim off some of
-	  these tests (since it does the same for singular geom functions)
+	* [r3444] doc/xsl/postgis_gardentest.sql.xsl: Revise to cross every
+	  geometry with every other to better test the functions that take
+	  2 geometries. This increases the generated script to about 18 MB.
+	  Still need to trim off some of these tests (since it does the
+	  same for singular geom functions)
 
-2008-12-18 15:38  robe
+2008-12-18 15:38  Regina Obe <lr at pcorp.us>
 
-	* Get rid of redundant variable declares
+	* [r3443] doc/xsl/postgis_gardentest.sql.xsl: Get rid of redundant
+	  variable declares
 
-2008-12-18 15:32  robe
+2008-12-18 15:32  Regina Obe <lr at pcorp.us>
 
-	* Get rid of 2 geom relation section. Its redundant now that the
-	  last condition section has been improved.
+	* [r3442] doc/xsl/postgis_gardentest.sql.xsl: Get rid of 2 geom
+	  relation section. Its redundant now that the last condition
+	  section has been improved.
 
-2008-12-18 15:25  robe
+2008-12-18 15:25  Regina Obe <lr at pcorp.us>
 
-	* Numerous enhancements to make torture script generator smarter -
-	  e.g. don't use geometry select when function takes not
-	  geometries, don't put monkey in when you see pattern matrix use a
-	  real intersectionmatrix, concept of version
+	* [r3441] doc/xsl/postgis_gardentest.sql.xsl: Numerous enhancements
+	  to make torture script generator smarter - e.g. don't use
+	  geometry select when function takes not geometries, don't put
+	  monkey in when you see pattern matrix use a real
+	  intersectionmatrix, concept of version
 
-2008-12-18 00:54  pramsey
+2008-12-18 00:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Partial work saved back for later.
+	* [r3440] liblwgeom/Makefile.in, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h: Partial work saved back for later.
 
-2008-12-17 20:47  pramsey
+2008-12-17 20:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Partial work into SVN where I can get at it elsewhere.
+	* [r3439] TODO, liblwgeom/liblwgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h: Partial work into SVN where I can get at
+	  it elsewhere.
 
-2008-12-17 20:22  pramsey
+2008-12-17 20:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove LFs from regression files per MCA.
+	* [r3438] regress/sql-mm-circularstring_expected.in,
+	  regress/sql-mm-compoundcurve_expected.in,
+	  regress/sql-mm-curvepoly_expected.in,
+	  regress/sql-mm-multicurve_expected.in,
+	  regress/sql-mm-multisurface_expected.in: Remove LFs from
+	  regression files per MCA.
 
-2008-12-17 19:37  mcayland
+2008-12-17 19:37  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* #HISTORY: Really fix what was broken in r3431/3432. See the notes
-	  there for the full detail.
+	* [r3436] liblwgeom/lwgunparse.c: #HISTORY: Really fix what was
+	  broken in r3431/3432. See the notes there for the full detail.
 
-2008-12-17 18:20  pramsey
+2008-12-17 18:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-locate cunit, add a STYLE guideline draft and some TODO notes.
+	* [r3435] STYLE, TODO, cunit, liblwgeom/cunit,
+	  liblwgeom/cunit/Makefile, liblwgeom/cunit/cu_algorithm.c,
+	  liblwgeom/cunit/cu_algorithm.h, liblwgeom/cunit/cu_tester.c:
+	  Re-locate cunit, add a STYLE guideline draft and some TODO notes.
 
-2008-12-17 16:03  mcayland
+2008-12-17 16:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Undo r3431/3432: this isn't ready for the primetime yet as it
-	  breaks a couple of the regression tests.
+	* [r3433] liblwgeom/lwgunparse.c: Undo r3431/3432: this isn't ready
+	  for the primetime yet as it breaks a couple of the regression
+	  tests.
 
-2008-12-17 15:01  mcayland
+2008-12-17 15:01  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for one of Regina's torture failures as posted to the -devel
-	  list here:
+	* [r3431] liblwgeom/lwgunparse.c: Fix for one of Regina's torture
+	  failures as posted to the -devel list here:
 	  http://postgis.refractions.net/pipermail/postgis-devel/2008-December/004362.html.
 	  A CurvePolygon has a "standard header" and so must be passed
 	  through a function that understands the optional existence of
 	  SRIDs/BBOXes etc. in the header.
 
-2008-12-17 05:36  pramsey
+2008-12-17 05:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* harmonize unit tests with new function names
+	* [r3430] cunit/cu_algorithm.c, cunit/cu_algorithm.h: harmonize
+	  unit tests with new function names
 
-2008-12-17 05:32  pramsey
+2008-12-17 05:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* harmonize function names so things... compile
+	* [r3429] liblwgeom/lwalgorithm.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c: harmonize function names so
+	  things... compile
 
-2008-12-17 05:28  pramsey
+2008-12-17 05:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Revisison per MCA and (c) headers.
+	* [r3428] cunit/cu_algorithm.c, cunit/cu_algorithm.h,
+	  cunit/cu_tester.c, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h, lwgeom/lwgeom_functions_analytic.c:
+	  Revisison per MCA and (c) headers.
 
-2008-12-17 00:22  pramsey
+2008-12-17 00:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add some co-linearity tests.
+	* [r3427] cunit/cu_algorithm.c: Add some co-linearity tests.
 
-2008-12-17 00:19  pramsey
+2008-12-17 00:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Basic co-linearity support. Remove touching cases from
-	  crossingdirection.
+	* [r3426] cunit/cu_algorithm.c, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h: Basic co-linearity support. Remove
+	  touching cases from crossingdirection.
 
-2008-12-16 23:43  pramsey
+2008-12-16 23:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add ST_CrossingDirection(line, line) bindings into SQL.
+	* [r3425] liblwgeom/lwalgorithm.c,
+	  lwgeom/lwgeom_functions_analytic.c, lwgeom/lwpostgis.sql.in.c:
+	  Add ST_CrossingDirection(line, line) bindings into SQL.
 
-2008-12-16 22:29  pramsey
+2008-12-16 22:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* First cut of line crossing function, and associated cunit tests.
+	* [r3424] cunit, cunit/Makefile, cunit/cu_algorithm.c,
+	  cunit/cu_algorithm.h, cunit/cu_tester.c, liblwgeom/Makefile.in,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwalgorithm.c,
+	  liblwgeom/lwalgorithm.h: First cut of line crossing function, and
+	  associated cunit tests.
 
-2008-12-16 21:21  kneufeld
+2008-12-16 21:21  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed bug in probe_geometry_columns where an srid of -1 is not
-	  properly detected. (last time :))
+	* [r3423] lwgeom/lwpostgis.sql.in.c: fixed bug in
+	  probe_geometry_columns where an srid of -1 is not properly
+	  detected. (last time :))
 
-2008-12-16 21:11  kneufeld
+2008-12-16 21:11  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed bug in probe_geometry_columns where an srid of -1 is not
-	  properly detected.
+	* [r3422] lwgeom/lwpostgis.sql.in.c: fixed bug in
+	  probe_geometry_columns where an srid of -1 is not properly
+	  detected.
 
-2008-12-16 21:07  kneufeld
+2008-12-16 21:07  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed bug in probe_geometry_columns where an srid of -1 is not
-	  properly detected.
+	* [r3421] lwgeom/lwpostgis.sql.in.c: fixed bug in
+	  probe_geometry_columns where an srid of -1 is not properly
+	  detected.
 
-2008-12-16 16:22  robe
+2008-12-16 16:22  Regina Obe <lr at pcorp.us>
 
-	* More changes - can't remember
+	* [r3420] doc/xsl/postgis_gardentest.sql.xsl: More changes - can't
+	  remember
 
-2008-12-16 13:01  robe
+2008-12-16 13:01  Regina Obe <lr at pcorp.us>
 
-	* Add cross reference to ST_IsValidReason on ST_IsValid and
-	  ST_Summary
+	* [r3419] doc/reference_new.xml: Add cross reference to
+	  ST_IsValidReason on ST_IsValid and ST_Summary
 
-2008-12-16 12:40  robe
+2008-12-16 12:40  Regina Obe <lr at pcorp.us>
 
-	* Fix formatting of ForceRHR args -- messing up torture test
-	  generator
+	* [r3417] doc/reference_new.xml: Fix formatting of ForceRHR args --
+	  messing up torture test generator
 
-2008-12-15 14:50  robe
+2008-12-15 14:50  Regina Obe <lr at pcorp.us>
 
-	* missing the st_geomfromtext among others because of bad
-	  conditions - switched to xsl:choose to simplify logic.
+	* [r3411] doc/xsl/postgis_gardentest.sql.xsl: missing the
+	  st_geomfromtext among others because of bad conditions - switched
+	  to xsl:choose to simplify logic.
 
-2008-12-15 13:36  robe
+2008-12-15 13:36  Regina Obe <lr at pcorp.us>
 
-	* minor comment addition
+	* [r3410] loader/pgsql2shp.c: minor comment addition
 
-2008-12-15 12:56  robe
+2008-12-15 12:56  Regina Obe <lr at pcorp.us>
 
-	* add more data types. Remove curve tests again -- too many
-	  crashers
+	* [r3409] doc/xsl/postgis_gardentest.sql.xsl: add more data types.
+	  Remove curve tests again -- too many crashers
 
-2008-12-15 12:36  robe
+2008-12-15 12:36  Regina Obe <lr at pcorp.us>
 
-	* Typo in data type param
+	* [r3408] doc/reference_new.xml: Typo in data type param
 
-2008-12-15 10:30  mcayland
+2008-12-15 10:30  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* #HISTORY: Fix for GBT#83: "ST_Multi on curved polygon gives
-	  ERROR: Unknown geometry type: 0". On reflection, ST_Multi() can
-	  only operate on standard POINT, LINESTRING and POLYGON types as
-	  the only MULTI geomtypes are MULTIPOINT, MULTILINESTRING and
-	  MULTIPOLYGON. This was caused by the introduction of the curve
-	  crashing fixes in 1.3.4.
+	* [r3406] lwgeom/lwgeom_functions_basic.c: #HISTORY: Fix for
+	  GBT#83: "ST_Multi on curved polygon gives ERROR: Unknown geometry
+	  type: 0". On reflection, ST_Multi() can only operate on standard
+	  POINT, LINESTRING and POLYGON types as the only MULTI geomtypes
+	  are MULTIPOINT, MULTILINESTRING and MULTIPOLYGON. This was caused
+	  by the introduction of the curve crashing fixes in 1.3.4.
 
-2008-12-15 05:33  robe
+2008-12-15 05:33  Regina Obe <lr at pcorp.us>
 
-	* more cleanup
+	* [r3405] doc/xsl/postgis_gardentest.sql.xsl: more cleanup
 
-2008-12-15 05:03  robe
+2008-12-15 05:03  Regina Obe <lr at pcorp.us>
 
-	* Think I got most of the functions with additional args, left out
-	  circular since it crashes. We can fix in 1.4
+	* [r3404] doc/xsl/postgis_gardentest.sql.xsl: Think I got most of
+	  the functions with additional args, left out circular since it
+	  crashes. We can fix in 1.4
 
-2008-12-15 04:12  robe
+2008-12-15 04:12  Regina Obe <lr at pcorp.us>
 
-	* replace param logic
+	* [r3403] doc/xsl/postgis_gardentest.sql.xsl: replace param logic
 
-2008-12-15 02:38  robe
+2008-12-15 02:38  Regina Obe <lr at pcorp.us>
 
-	* #GBT 84: Fix typo in boundary error
+	* [r3401] lwgeom/lwgeom_geos.c: #GBT 84: Fix typo in boundary error
 
-2008-12-14 15:14  robe
+2008-12-14 15:14  Regina Obe <lr at pcorp.us>
 
-	* Add circular string and curved polygon to garden set. Also start
-	  work on dealing with functions that take floats and integers as
-	  additional params
+	* [r3400] doc/xsl/postgis_gardentest.sql.xsl: Add circular string
+	  and curved polygon to garden set. Also start work on dealing with
+	  functions that take floats and integers as additional params
 
-2008-12-14 07:24  robe
+2008-12-14 07:24  Regina Obe <lr at pcorp.us>
 
-	* Exclude st_curvetoline from test for now. Crashes on geometry
-	  collection test.
+	* [r3399] doc/xsl/postgis_gardentest.sql.xsl: Exclude
+	  st_curvetoline from test for now. Crashes on geometry collection
+	  test.
 
-2008-12-14 03:19  robe
+2008-12-14 03:19  Regina Obe <lr at pcorp.us>
 
-	* Add GEOMETRYCOLLECTION to garden mix. This crashes my 1.3.5SVN
-	  build after running generated script - investigating
+	* [r3398] doc/xsl/postgis_gardentest.sql.xsl: Add
+	  GEOMETRYCOLLECTION to garden mix. This crashes my 1.3.5SVN build
+	  after running generated script - investigating
 
-2008-12-14 03:10  robe
+2008-12-14 03:10  Regina Obe <lr at pcorp.us>
 
-	* Add logic to test for unary functions that take box2d/3d and add
-	  3d geometries to garden set.
+	* [r3397] doc/xsl/postgis_gardentest.sql.xsl: Add logic to test for
+	  unary functions that take box2d/3d and add 3d geometries to
+	  garden set.
 
-2008-12-14 01:50  robe
+2008-12-14 01:50  Regina Obe <lr at pcorp.us>
 
-	* Add create table, add geom, drop column, drop table to batch of
-	  tortures
+	* [r3396] doc/xsl/postgis_gardentest.sql.xsl: Add create table, add
+	  geom, drop column, drop table to batch of tortures
 
-2008-12-13 19:48  pramsey
+2008-12-13 19:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove isvalidreason, it's done.
+	* [r3395] TODO: Remove isvalidreason, it's done.
 
-2008-12-13 19:47  pramsey
+2008-12-13 19:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add typmod idea
+	* [r3394] TODO: Add typmod idea
 
-2008-12-12 17:07  robe
+2008-12-12 17:07  Regina Obe <lr at pcorp.us>
 
-	* Fix condition statement that prevented some 2 geom functions from
-	  being picked up
+	* [r3393] doc/xsl/postgis_gardentest.sql.xsl: Fix condition
+	  statement that prevented some 2 geom functions from being picked
+	  up
 
-2008-12-12 16:55  robe
+2008-12-12 16:55  Regina Obe <lr at pcorp.us>
 
-	* Added POLYGONM gset to test. Also got rid of monkey crashing
-	  LineMerge. May add back later by removing the NOT (j=i)
-	  conditions.
+	* [r3392] doc/xsl/postgis_gardentest.sql.xsl: Added POLYGONM gset
+	  to test. Also got rid of monkey crashing LineMerge. May add back
+	  later by removing the NOT (j=i) conditions.
 
-2008-12-12 16:49  robe
+2008-12-12 16:49  Regina Obe <lr at pcorp.us>
 
-	* Note that ST_MakePolygon can be used to make measured polys and
-	  3d polys
+	* [r3391] doc/reference_new.xml: Note that ST_MakePolygon can be
+	  used to make measured polys and 3d polys
 
-2008-12-12 16:26  robe
+2008-12-12 16:26  Regina Obe <lr at pcorp.us>
 
-	* use strcmp for compare instead of comparing first element in
-	  projcreate
+	* [r3390] loader/pgsql2shp.c: use strcmp for compare instead of
+	  comparing first element in projcreate
 
-2008-12-12 14:20  robe
+2008-12-12 14:20  Regina Obe <lr at pcorp.us>
 
-	* get rid of accidentally copied comment
+	* [r3389] doc/xsl/postgis_gardentest.sql.xsl: get rid of
+	  accidentally copied comment
 
-2008-12-12 14:11  robe
+2008-12-12 14:11  Regina Obe <lr at pcorp.us>
 
-	* Add relationship/ functions that act on 2 geometries tests to the
-	  mix
+	* [r3388] doc/xsl/postgis_gardentest.sql.xsl: Add relationship/
+	  functions that act on 2 geometries tests to the mix
 
-2008-12-12 13:40  robe
+2008-12-12 13:40  Regina Obe <lr at pcorp.us>
 
-	* Add POINTM and LINESTRINGM to garden family
+	* [r3387] doc/xsl/postgis_gardentest.sql.xsl: Add POINTM and
+	  LINESTRINGM to garden family
 
-2008-12-12 13:17  robe
+2008-12-12 13:17  Regina Obe <lr at pcorp.us>
 
-	* Remove Postgis_JTS_Version from docs. No longer in 1.4 code base.
+	* [r3386] doc/reference_new.xml: Remove Postgis_JTS_Version from
+	  docs. No longer in 1.4 code base.
 
-2008-12-12 13:05  robe
+2008-12-12 13:05  Regina Obe <lr at pcorp.us>
 
-	* Revise to use an xml collection instead of repetitive loops. Also
-	  put in select start and end so when the server crashes you know
-	  where it broke.
+	* [r3385] doc/xsl/postgis_gardentest.sql.xsl: Revise to use an xml
+	  collection instead of repetitive loops. Also put in select start
+	  and end so when the server crashes you know where it broke.
 
-2008-12-12 11:07  mcayland
+2008-12-12 11:07  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Looks like I accidentally removed some code from LWGEOM_accum
-	  that was required to set the Oid of the array being used to store
-	  the aggregate results. As reported by Regina.
+	* [r3384] lwgeom/lwgeom_functions_basic.c: Looks like I
+	  accidentally removed some code from LWGEOM_accum that was
+	  required to set the Oid of the array being used to store the
+	  aggregate results. As reported by Regina.
 
-2008-12-11 19:38  robe
+2008-12-11 19:38  Regina Obe <lr at pcorp.us>
 
-	* Fix typo in geometry test
+	* [r3381] doc/xsl/postgis_gardentest.sql.xsl: Fix typo in geometry
+	  test
 
-2008-12-11 18:57  robe
+2008-12-11 18:57  Regina Obe <lr at pcorp.us>
 
-	* put in the svn:keywords thingy and also update postgis_gardentest
-	  to generate garden test for all unary postgis functions and
-	  aggregates
+	* [r3380] doc/xsl/postgis_aggs_mm.xml.xsl,
+	  doc/xsl/postgis_comments.sql.xsl,
+	  doc/xsl/postgis_gardentest.sql.xsl: put in the svn:keywords
+	  thingy and also update postgis_gardentest to generate garden test
+	  for all unary postgis functions and aggregates
 
-2008-12-11 17:18  kneufeld
+2008-12-11 17:18  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added a HINT to the ERROR message in errorIfGeometryCollection
-	  indicating the geometry that is in error.
+	* [r3379] lwgeom/lwgeom_geos.c: added a HINT to the ERROR message
+	  in errorIfGeometryCollection indicating the geometry that is in
+	  error.
 
-2008-12-11 16:56  robe
+2008-12-11 16:56  Regina Obe <lr at pcorp.us>
 
-	* First draft of garden test sql generator. This version just
-	  searches the docs and outputs tests for functions that take no
-	  arguments. Need to formulate a list of geometries to generate
-	  code for unary and so forth.
+	* [r3378] doc/xsl/postgis_gardentest.sql.xsl: First draft of garden
+	  test sql generator. This version just searches the docs and
+	  outputs tests for functions that take no arguments. Need to
+	  formulate a list of geometries to generate code for unary and so
+	  forth.
 
-2008-12-11 15:56  robe
+2008-12-11 15:56  Regina Obe <lr at pcorp.us>
 
-	* Incorporated Mark's suggestion to use PQescapeStringConn instead
-	  of building a custom function. Also fixed typo. Note using free()
-	  instead of PQfree since couldn't find a PQfree. I looked at the
-	  8.3.5 postgresql source code base, and that's what they seem to
-	  use when releasing buffer space.
+	* [r3377] loader/pgsql2shp.c: Incorporated Mark's suggestion to use
+	  PQescapeStringConn instead of building a custom function. Also
+	  fixed typo. Note using free() instead of PQfree since couldn't
+	  find a PQfree. I looked at the 8.3.5 postgresql source code base,
+	  and that's what they seem to use when releasing buffer space.
 
-2008-12-11 14:55  mcayland
+2008-12-11 14:55  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Increase the amount of allocated memory by 3 bytes, so that if
-	  maxlength < 3 and we return just "..." then we still have enough
-	  space to store the string without clobbering memory.
+	* [r3376] liblwgeom/lwutil.c: Increase the amount of allocated
+	  memory by 3 bytes, so that if maxlength < 3 and we return just
+	  "..." then we still have enough space to store the string without
+	  clobbering memory.
 
-2008-12-11 13:46  mcayland
+2008-12-11 13:46  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix up a couple of errors in the new lwmessage_truncate()
-	  function found by Kevin - correct an off-by-one error in the
-	  code, and include a missing startpos offset in the end truncation
-	  code. Also ensure that if maxlength gets too small then we return
-	  "..." rather than crashing.
+	* [r3375] liblwgeom/lwutil.c, lwgeom/lwgeom_pg.c: Fix up a couple
+	  of errors in the new lwmessage_truncate() function found by Kevin
+	  - correct an off-by-one error in the code, and include a missing
+	  startpos offset in the end truncation code. Also ensure that if
+	  maxlength gets too small then we return "..." rather than
+	  crashing.
 
-2008-12-10 12:36  mcayland
+2008-12-10 12:36  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Resolve local merge conflict from previous commit.
+	* [r3374] liblwgeom/liblwgeom.h: Resolve local merge conflict from
+	  previous commit.
 
-2008-12-10 12:32  mcayland
+2008-12-10 12:32  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add new lwmessage_truncate() function to liblwgeom that will
-	  truncate a string to a maximum number of characters, adding a
-	  "..." to indicate where the string has been trimmed. Truncation
-	  can be specified to occur from either the start or end of the
-	  string as required. Also update the parser error handler to use
-	  the new function.
+	* [r3373] liblwgeom/lwutil.c, lwgeom/lwgeom_pg.c,
+	  regress/regress_expected, regress/wkt_expected: Add new
+	  lwmessage_truncate() function to liblwgeom that will truncate a
+	  string to a maximum number of characters, adding a "..." to
+	  indicate where the string has been trimmed. Truncation can be
+	  specified to occur from either the start or end of the string as
+	  required. Also update the parser error handler to use the new
+	  function.
 
-2008-12-09 23:29  mleslie
+2008-12-09 23:29  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Porting the floating point comparison operator upgrade from the
-	  1.3 branch.
+	* [r3372] liblwgeom/liblwgeom.h, liblwgeom/lwcurve.c: Porting the
+	  floating point comparison operator upgrade from the 1.3 branch.
 
-2008-12-07 02:52  robe
+2008-12-07 02:52  Regina Obe <lr at pcorp.us>
 
-	* correct mm reference of ST_PointFromText and remove from old MM
-	  section
+	* [r3370] doc/reference.xml, doc/reference_new.xml: correct mm
+	  reference of ST_PointFromText and remove from old MM section
 
-2008-12-07 02:47  robe
+2008-12-07 02:47  Regina Obe <lr at pcorp.us>
 
-	* Minor additions
+	* [r3369] doc/reference_new.xml: Minor additions
 
-2008-12-07 02:42  robe
+2008-12-07 02:42  Regina Obe <lr at pcorp.us>
 
-	* fix some typos
+	* [r3368] doc/reference_new.xml: fix some typos
 
-2008-12-07 02:29  robe
+2008-12-07 02:29  Regina Obe <lr at pcorp.us>
 
-	* Move over (x,y,z) min/max family and add cross reference to those
-	  from ST_X, ST_Y, ST_Z
+	* [r3367] doc/reference.xml, doc/reference_new.xml: Move over
+	  (x,y,z) min/max family and add cross reference to those from
+	  ST_X, ST_Y, ST_Z
 
-2008-12-07 00:40  robe
+2008-12-07 00:40  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Box2D and ST_Box3D and flag ST_Accum as working with
-	  circular strings
+	* [r3366] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Box2D and ST_Box3D and flag ST_Accum as working with circular
+	  strings
 
-2008-12-05 19:39  robe
+2008-12-05 19:39  Regina Obe <lr at pcorp.us>
 
-	* revise example
+	* [r3365] doc/reference_new.xml: revise example
 
-2008-12-05 19:31  robe
+2008-12-05 19:31  Regina Obe <lr at pcorp.us>
 
-	* Clarify use of ST_Relation and include Martin's example of
-	  interior intersects
+	* [r3364] doc/reference_new.xml: Clarify use of ST_Relation and
+	  include Martin's example of interior intersects
 
-2008-12-05 13:46  robe
+2008-12-05 13:46  Regina Obe <lr at pcorp.us>
 
-	* #HISTORY: #GBT:34 - .prj creation by pgsql2shp
+	* [r3363] loader/pgsql2shp.c: #HISTORY: #GBT:34 - .prj creation by
+	  pgsql2shp
 
-2008-12-05 12:33  robe
+2008-12-05 12:33  Regina Obe <lr at pcorp.us>
 
-	* #GBT 80: ST_Multi seg faults when given MULTILINESTRING
+	* [r3362] liblwgeom/lwgeom.c: #GBT 80: ST_Multi seg faults when
+	  given MULTILINESTRING
 
-2008-12-04 17:01  robe
+2008-12-04 17:01  Regina Obe <lr at pcorp.us>
 
-	* Move over rest of Long Transactions
+	* [r3360] doc/reference.xml, doc/reference_new.xml: Move over rest
+	  of Long Transactions
 
-2008-12-03 17:12  mcayland
+2008-12-03 17:12  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix GBT#79: shp2pgsql does not honor -s (also known as Mark
-	  accidentally missed the sr_id from the geometry constructors)
+	* [r3359] loader/shp2pgsql.c: Fix GBT#79: shp2pgsql does not honor
+	  -s (also known as Mark accidentally missed the sr_id from the
+	  geometry constructors)
 
-2008-12-03 16:02  mcayland
+2008-12-03 16:02  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Lightbulb moment: the fix for GBT#21: locate_along_measure: wrong
+	* [r3357] liblwgeom/ptarray.c, lwgeom/lwgeom_functions_lrs.c:
+	  Lightbulb moment: the fix for GBT#21: locate_along_measure: wrong
 	  values, invalid data required extra work as floating point errors
 	  could still be introduced by the removal of the memcpy(). In fact
 	  it was the clipping logic that was wrong, so this patch re-adds
@@ -33334,438 +52149,488 @@
 	  flags to remove this floating point error. With thanks to Stephen
 	  Davies.
 
-2008-12-02 20:04  robe
+2008-12-02 20:04  Regina Obe <lr at pcorp.us>
 
-	* Remove some junk and fix some typos, rephrase descriptions
+	* [r3356] doc/reference_new.xml: Remove some junk and fix some
+	  typos, rephrase descriptions
 
-2008-12-02 20:00  robe
+2008-12-02 20:00  Regina Obe <lr at pcorp.us>
 
-	* Move over LockRow
+	* [r3355] doc/reference.xml, doc/reference_new.xml: Move over
+	  LockRow
 
-2008-12-02 19:43  robe
+2008-12-02 19:43  Regina Obe <lr at pcorp.us>
 
-	* Move over CheckAuth
+	* [r3354] doc/reference.xml, doc/reference_new.xml: Move over
+	  CheckAuth
 
-2008-12-01 23:34  robe
+2008-12-01 23:34  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r3353] doc/reference_new.xml: typo
 
-2008-12-01 22:19  robe
+2008-12-01 22:19  Regina Obe <lr at pcorp.us>
 
-	* remove extra def
+	* [r3352] doc/reference_new.xml: remove extra def
 
-2008-12-01 22:06  robe
+2008-12-01 22:06  Regina Obe <lr at pcorp.us>
 
-	* Move over Enable/Disable LongTransactions
+	* [r3351] doc/reference.xml, doc/reference_new.xml: Move over
+	  Enable/Disable LongTransactions
 
-2008-12-01 12:41  robe
+2008-12-01 12:41  Regina Obe <lr at pcorp.us>
 
-	* Damn casing - wrong fix
+	* [r3350] doc/reference_new.xml: Damn casing - wrong fix
 
-2008-12-01 12:38  robe
+2008-12-01 12:38  Regina Obe <lr at pcorp.us>
 
-	* typo ?
+	* [r3349] doc/reference_new.xml: typo ?
 
-2008-12-01 12:13  robe
+2008-12-01 12:13  Regina Obe <lr at pcorp.us>
 
-	* typo?
+	* [r3348] doc/reference_new.xml: typo?
 
-2008-12-01 06:32  robe
+2008-12-01 06:32  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_HasBBox
+	* [r3347] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_HasBBox
 
-2008-12-01 06:26  robe
+2008-12-01 06:26  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_AddBBox, ST_DropBBox - the last of the Geometry
-	  Editors
+	* [r3346] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_AddBBox, ST_DropBBox - the last of the Geometry Editors
 
-2008-11-28 16:38  pramsey
+2008-11-28 16:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* wrap isvalidreason in test for GEOS >= 3.1
+	* [r3345] lwgeom/lwgeom_geos.c: wrap isvalidreason in test for GEOS
+	  >= 3.1
 
-2008-11-27 19:04  robe
+2008-11-27 19:04  Regina Obe <lr at pcorp.us>
 
-	* correction
+	* [r3344] doc/reference_new.xml: correction
 
-2008-11-27 18:53  robe
+2008-11-27 18:53  Regina Obe <lr at pcorp.us>
 
-	* ST_IsValidReason typo and add an example of a valid geometry
+	* [r3343] doc/reference_new.xml: ST_IsValidReason typo and add an
+	  example of a valid geometry
 
-2008-11-27 18:31  robe
+2008-11-27 18:31  Regina Obe <lr at pcorp.us>
 
-	* Document new ST_IsValidReason function. I suppose this may be the
-	  last time I can successfully create invalid geometries before
-	  Mark ruins all the fun.
+	* [r3342] doc/reference_new.xml: Document new ST_IsValidReason
+	  function. I suppose this may be the last time I can successfully
+	  create invalid geometries before Mark ruins all the fun.
 
-2008-11-26 19:04  pramsey
+2008-11-26 19:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_IsValidReason(geometry) returns text reason for validity
+	* [r3341] lwgeom/lwgeom_geos.c, lwgeom/lwpostgis.sql.in.c:
+	  ST_IsValidReason(geometry) returns text reason for validity
 	  failure.
 	  Requires GEOS >= 3.1.
 	  GBT#51
 
-2008-11-26 13:40  mcayland
+2008-11-26 13:40  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Apply patch from strk to prevent unneccesary invocation of 'ar'
-	  when building liblwgeom.
+	* [r3340] liblwgeom/Makefile.in: Apply patch from strk to prevent
+	  unneccesary invocation of 'ar' when building liblwgeom.
 
-2008-11-26 12:11  robe
+2008-11-26 12:11  Regina Obe <lr at pcorp.us>
 
-	* Correct install docs to agree with README. Not sure if this is
-	  necessary since this is partially for already installed postgis.
-	  Are we going to have an lwgeom folder in contrib?
+	* [r3339] doc/installation.xml: Correct install docs to agree with
+	  README. Not sure if this is necessary since this is partially for
+	  already installed postgis. Are we going to have an lwgeom folder
+	  in contrib?
 
-2008-11-26 11:49  mcayland
+2008-11-26 11:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Create liblwgeom as a phony dependency, so that any changes to
-	  liblwgeom cause a re-build of liblwgeom.a during "make". Patch
-	  provided by strk.
+	* [r3338] GNUmakefile: Create liblwgeom as a phony dependency, so
+	  that any changes to liblwgeom cause a re-build of liblwgeom.a
+	  during "make". Patch provided by strk.
 
-2008-11-26 11:43  mcayland
+2008-11-26 11:43  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix some minor errors in the README documentation as indicated by
-	  strk.
+	* [r3337] README.postgis: Fix some minor errors in the README
+	  documentation as indicated by strk.
 
-2008-11-25 21:46  pramsey
+2008-11-25 21:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bring forward release notes from 1.3.4
+	* [r3336] NEWS, doc/release_notes.xml: Bring forward release notes
+	  from 1.3.4
 
-2008-11-25 10:42  mcayland
+2008-11-25 10:42  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Quick fix for GBT#72: ST_Estimated_Extent sometimes returns null
-	  if table exists but not in current schema.
+	* [r3335] lwgeom/lwgeom_estimate.c: Quick fix for GBT#72:
+	  ST_Estimated_Extent sometimes returns null if table exists but
+	  not in current schema.
 
-2008-11-24 13:18  robe
+2008-11-24 13:18  Regina Obe <lr at pcorp.us>
 
-	* Fix indentation for estimated_extent example. Document
-	  ST_Force_Collection broken when given Circular strings for
-	  versions prior to 1.3.4
+	* [r3326] doc/reference_new.xml: Fix indentation for
+	  estimated_extent example. Document ST_Force_Collection broken
+	  when given Circular strings for versions prior to 1.3.4
 
-2008-11-24 11:04  mcayland
+2008-11-24 11:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for GBT#73: ST_Force_Collection crashes with CIRCULARSTRING.
-	  This is basically the same fix for GBT#66: ST_Dump kills backend
-	  when fed CIRCULAR STRING except that it occurs in a different
-	  place.
+	* [r3325] lwgeom/lwgeom_functions_basic.c: Fix for GBT#73:
+	  ST_Force_Collection crashes with CIRCULARSTRING. This is
+	  basically the same fix for GBT#66: ST_Dump kills backend when fed
+	  CIRCULAR STRING except that it occurs in a different place.
 
-2008-11-24 11:01  mcayland
+2008-11-24 11:01  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Move lwgeom_contains_subgeoms() into liblwgeom core as it seems
-	  it is now required outside of lwgeom_dump.c.
+	* [r3324] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  lwgeom/lwgeom_dump.c: Move lwgeom_contains_subgeoms() into
+	  liblwgeom core as it seems it is now required outside of
+	  lwgeom_dump.c.
 
-2008-11-23 19:18  robe
+2008-11-23 19:18  Regina Obe <lr at pcorp.us>
 
-	* Move over the rest of the ST_Force* family
+	* [r3320] doc/reference.xml, doc/reference_new.xml: Move over the
+	  rest of the ST_Force* family
 
-2008-11-23 07:22  robe
+2008-11-23 07:22  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Estimated_Extent
+	* [r3319] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Estimated_Extent
 
-2008-11-23 06:54  robe
+2008-11-23 06:54  Regina Obe <lr at pcorp.us>
 
-	* minor changes
+	* [r3318] doc/reference_new.xml: minor changes
 
-2008-11-23 06:50  robe
+2008-11-23 06:50  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_GeomFromWKB
+	* [r3317] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_GeomFromWKB
 
-2008-11-21 14:41  robe
+2008-11-21 14:41  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r3316] doc/reference_new.xml: typo
 
-2008-11-21 14:30  robe
+2008-11-21 14:30  Regina Obe <lr at pcorp.us>
 
-	* Fix indentation of examples
+	* [r3315] doc/using_postgis.xml: Fix indentation of examples
 
-2008-11-21 14:28  robe
+2008-11-21 14:28  Regina Obe <lr at pcorp.us>
 
-	* GBT #71: Update section 4.2 of docs to describe manual adding to
-	  geometry columns - revision. Add pretty anchor, reference pretty
-	  anchor in AddGeometryColumn reference section. Rearrange order.
+	* [r3314] doc/reference_new.xml, doc/using_postgis.xml: GBT #71:
+	  Update section 4.2 of docs to describe manual adding to geometry
+	  columns - revision. Add pretty anchor, reference pretty anchor in
+	  AddGeometryColumn reference section. Rearrange order.
 
-2008-11-21 14:15  robe
+2008-11-21 14:15  Regina Obe <lr at pcorp.us>
 
-	* GBT #71: Update section 4.2 of docs to describe manual adding to
-	  geometry columns.
+	* [r3313] doc/using_postgis.xml: GBT #71: Update section 4.2 of
+	  docs to describe manual adding to geometry columns.
 	  
 	  Decided to just add a new section after
 
-2008-11-21 08:32  robe
+2008-11-21 08:32  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r3311] doc/reference_new.xml:
 
-2008-11-21 08:31  robe
+2008-11-21 08:31  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_CoordDim
+	* [r3310] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_CoordDim
 
-2008-11-20 22:03  mcayland
+2008-11-20 22:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Located more profile calls using grep and converted them over to
-	  use the new macros. Hopefully I've caught all of them now...
+	* [r3309] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.h,
+	  lwgeom/lwgeom_inout.c: Located more profile calls using grep and
+	  converted them over to use the new macros. Hopefully I've caught
+	  all of them now...
 
-2008-11-20 18:45  mcayland
+2008-11-20 18:45  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Found some new locations containing profiling code outside of the
+	* [r3308] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_inout.c:
+	  Found some new locations containing profiling code outside of the
 	  GEOS functions, so swap them over to using the new macros.
 
-2008-11-20 15:00  mcayland
+2008-11-20 15:00  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Switch GEOS profiling over to use conditional macros, much in the
-	  same way as LWDEBUG(F) has been implemented. This improves code
-	  readability by not having constant #if...#endif sections
-	  throughout the code. I've also changed the variable that
-	  indicates whether profiling has been enabled to POSTGIS_PROFILE,
-	  and integrated it into the autoconf configuration. Hence
-	  profiling can be enabled by running configure with the
-	  --enable-profile option, or setting POSTGIS_PROFILE in
-	  postgis_config.h to 1 and re-compiling.
+	* [r3307] configure.ac, lwgeom/lwgeom_geos.c, lwgeom/profile.h,
+	  postgis_config.h.in: Switch GEOS profiling over to use
+	  conditional macros, much in the same way as LWDEBUG(F) has been
+	  implemented. This improves code readability by not having
+	  constant #if...#endif sections throughout the code. I've also
+	  changed the variable that indicates whether profiling has been
+	  enabled to POSTGIS_PROFILE, and integrated it into the autoconf
+	  configuration. Hence profiling can be enabled by running
+	  configure with the --enable-profile option, or setting
+	  POSTGIS_PROFILE in postgis_config.h to 1 and re-compiling.
 
-2008-11-20 13:32  robe
+2008-11-20 13:32  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r3305] doc/reference_new.xml: typo
 
-2008-11-20 12:55  robe
+2008-11-20 12:55  Regina Obe <lr at pcorp.us>
 
-	* Add note on ST_Transform and ST_AsKML that they require Proj
-	  support
+	* [r3304] doc/reference_new.xml: Add note on ST_Transform and
+	  ST_AsKML that they require Proj support
 
-2008-11-19 13:40  robe
+2008-11-19 13:40  Regina Obe <lr at pcorp.us>
 
-	* update doc on install to reference geos 3.0.3
+	* [r3301] doc/installation.xml: update doc on install to reference
+	  geos 3.0.3
 
-2008-11-17 17:30  robe
+2008-11-17 17:30  Regina Obe <lr at pcorp.us>
 
-	* amend ST_Mem_Size
+	* [r3300] doc/reference_new.xml: amend ST_Mem_Size
 
-2008-11-17 01:00  robe
+2008-11-17 01:00  Regina Obe <lr at pcorp.us>
 
-	* typos
+	* [r3299] doc/reference_new.xml: typos
 
-2008-11-17 00:52  robe
+2008-11-17 00:52  Regina Obe <lr at pcorp.us>
 
-	* st_mem_size
+	* [r3298] doc/reference.xml, doc/reference_new.xml: st_mem_size
 
-2008-11-17 00:05  robe
+2008-11-17 00:05  Regina Obe <lr at pcorp.us>
 
-	* Document missing ST_AsGML func proto
+	* [r3296] doc/reference_new.xml: Document missing ST_AsGML func
+	  proto
 
-2008-11-16 15:54  robe
+2008-11-16 15:54  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r3294] doc/reference_new.xml: typo
 
-2008-11-15 20:33  robe
+2008-11-15 20:33  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Polygon and ST_WKBToSQL, move ST_MakePolygon from
-	  Geometry Processing to Geometry Constructors section
+	* [r3293] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Polygon and ST_WKBToSQL, move ST_MakePolygon from Geometry
+	  Processing to Geometry Constructors section
 
-2008-11-14 23:46  robe
+2008-11-14 23:46  Regina Obe <lr at pcorp.us>
 
-	* Move over rest of non-MM compliant Geometry Constructor functions
+	* [r3291] doc/reference.xml, doc/reference_new.xml: Move over rest
+	  of non-MM compliant Geometry Constructor functions
 
-2008-11-12 17:42  pramsey
+2008-11-12 17:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update with latest BS
+	* [r3290] TODO: Update with latest BS
 
-2008-11-10 16:35  pramsey
+2008-11-10 16:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* astyle --style=ansi --indent=tab=8
+	* [r3284] lwgeom/lwgeom_geos_prepared.c,
+	  lwgeom/lwgeom_geos_prepared.h, lwgeom/lwgeom_rtree.c,
+	  lwgeom/lwgeom_rtree.h: astyle --style=ansi --indent=tab=8
 
-2008-11-10 15:48  pramsey
+2008-11-10 15:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix error in prepgeomcache type
+	* [r3283] lwgeom/lwgeom_geos_prepared.h, lwgeom/lwgeom_rtree.h: Fix
+	  error in prepgeomcache type
 
-2008-11-08 14:43  robe
+2008-11-08 14:43  Regina Obe <lr at pcorp.us>
 
-	* Document affine functions now work with curves. Though I don't
-	  have a tool to verify correctness, so my assumption - it returns
-	  something that sounds sort of right.
+	* [r3282] doc/reference_new.xml: Document affine functions now work
+	  with curves. Though I don't have a tool to verify correctness, so
+	  my assumption - it returns something that sounds sort of right.
 
-2008-11-08 14:17  robe
+2008-11-08 14:17  Regina Obe <lr at pcorp.us>
 
-	* document more functions that work with circular strings
+	* [r3281] doc/reference_new.xml: document more functions that work
+	  with circular strings
 
-2008-11-08 06:46  robe
+2008-11-08 06:46  Regina Obe <lr at pcorp.us>
 
-	* document support for curves of functions Mark C just fixed with
-	  disclaimer only works in 1.3.4+
+	* [r3280] doc/reference_new.xml: document support for curves of
+	  functions Mark C just fixed with disclaimer only works in 1.3.4+
 
-2008-11-07 17:07  pramsey
+2008-11-07 17:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Prepared geometry mixed-types bug fix ported forward from 1.3.
+	* [r3279] lwgeom/lwgeom_geos_prepared.c,
+	  lwgeom/lwgeom_geos_prepared.h, lwgeom/lwgeom_rtree.c,
+	  lwgeom/lwgeom_rtree.h, regress/regress_ogc_prep.sql,
+	  regress/regress_ogc_prep_expected: Prepared geometry mixed-types
+	  bug fix ported forward from 1.3.
 
-2008-11-07 14:23  mcayland
+2008-11-07 14:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* After a quick sanity grep, I noticed that ST_Transform() was also
-	  susceptible to crashing on curve types in the same way as the
-	  previous two fixes. Hence I'm committing a fix now before Regina
-	  finds it and logs another bug report :)
+	* [r3278] lwgeom/lwgeom_transform.c: After a quick sanity grep, I
+	  noticed that ST_Transform() was also susceptible to crashing on
+	  curve types in the same way as the previous two fixes. Hence I'm
+	  committing a fix now before Regina finds it and logs another bug
+	  report :)
 
-2008-11-07 14:21  mcayland
+2008-11-07 14:21  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix GBT#69: ST_Translate crashes when fed circular string.
-	  lwgeom_affine_recursive() needs to know about the new
-	  lwgeom_getcurve_inspected() function.
+	* [r3277] lwgeom/lwgeom_functions_basic.c: Fix GBT#69: ST_Translate
+	  crashes when fed circular string. lwgeom_affine_recursive() needs
+	  to know about the new lwgeom_getcurve_inspected() function.
 
-2008-11-07 14:18  mcayland
+2008-11-07 14:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix GBT#70: ST_NPoints Crashes with Curves. lwgeom_npoints()
-	  needs to know about the new lwgeom_getcurve_inspected() function.
+	* [r3276] lwgeom/lwgeom_functions_basic.c: Fix GBT#70: ST_NPoints
+	  Crashes with Curves. lwgeom_npoints() needs to know about the new
+	  lwgeom_getcurve_inspected() function.
 
-2008-11-07 14:05  mcayland
+2008-11-07 14:05  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add missing lwgeom_getcurve_inspected() function which is
-	  required for some of the latest GBT fixes.
+	* [r3275] liblwgeom/liblwgeom.h, liblwgeom/lwgeom_api.c: Add
+	  missing lwgeom_getcurve_inspected() function which is required
+	  for some of the latest GBT fixes.
 
-2008-11-07 07:44  robe
+2008-11-07 07:44  Regina Obe <lr at pcorp.us>
 
-	* Yeh ST_Dump now works with curves
+	* [r3267] doc/reference_new.xml: Yeh ST_Dump now works with curves
 
-2008-11-06 17:16  mcayland
+2008-11-06 17:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add missing function prototype from r3263.
+	* [r3265] lwgeom/lwgeom_dump.c: Add missing function prototype from
+	  r3263.
 
-2008-11-06 17:05  mcayland
+2008-11-06 17:05  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for GBT#66: ST_Dump kills backend when fed CIRCULAR STRING.
-	  With thanks to Regina Obe.
+	* [r3263] lwgeom/lwgeom_dump.c: Fix for GBT#66: ST_Dump kills
+	  backend when fed CIRCULAR STRING. With thanks to Regina Obe.
 
-2008-11-06 16:12  mcayland
+2008-11-06 16:12  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* The GEOS 2.2 series "geos_c.h" is missing header guards, so
-	  including the header multiple times as is done in lwgeom_geos.h
-	  and lwgeom_geos_prepared.h causes compilation to fail with
-	  multiple definition errors. This patch fixes this problem
-	  allowing GEOS 2.2 to work with PostGIS once again, although of
-	  course it can easily be removed when it is decided that GEOS 2.2
-	  support is no longer required.
+	* [r3262] lwgeom/lwgeom_geos.h, lwgeom/lwgeom_geos_prepared.h: The
+	  GEOS 2.2 series "geos_c.h" is missing header guards, so including
+	  the header multiple times as is done in lwgeom_geos.h and
+	  lwgeom_geos_prepared.h causes compilation to fail with multiple
+	  definition errors. This patch fixes this problem allowing GEOS
+	  2.2 to work with PostGIS once again, although of course it can
+	  easily be removed when it is decided that GEOS 2.2 support is no
+	  longer required.
 
-2008-11-06 15:15  mcayland
+2008-11-06 15:15  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Change configure to check for the existence of the PGXS Makefile,
+	* [r3261] configure.ac, lwgeom/Makefile.in, topology/Makefile.in:
+	  Change configure to check for the existence of the PGXS Makefile,
 	  even if pg_config can be found. This is become distributions such
 	  as Debian install pg_config as part of libpq-dev but this package
 	  doesn't contain the required Makefile. Per bug report from strk.
 
-2008-11-05 13:03  robe
+2008-11-05 13:03  Regina Obe <lr at pcorp.us>
 
-	* amend ST_Longitude bug comment
+	* [r3258] doc/reference_new.xml: amend ST_Longitude bug comment
 
-2008-11-05 11:29  mcayland
+2008-11-05 11:29  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix ST_AsGML() not recognising GEOMETRYCOLLECTION as a valid
-	  geometry type from my GBT#65 fix :(
+	* [r3257] lwgeom/lwgeom_gml.c: Fix ST_AsGML() not recognising
+	  GEOMETRYCOLLECTION as a valid geometry type from my GBT#65 fix :(
 
-2008-11-05 11:25  mcayland
+2008-11-05 11:25  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix regression tests reporting incorrect failures due to a change
-	  of output caused by r3243.
+	* [r3255] regress/geojson_expected, regress/kml_expected: Fix
+	  regression tests reporting incorrect failures due to a change of
+	  output caused by r3243.
 
-2008-11-05 11:06  mcayland
+2008-11-05 11:06  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for GBT#68 - ST_Shift_Longitude doesn't work with MULTIPOINT.
-	  Looks like this was just a simple mistake in the code. I've also
-	  improved the error message to return the proper type name instead
-	  of just a number.
+	* [r3253] liblwgeom/lwgeom.c: Fix for GBT#68 - ST_Shift_Longitude
+	  doesn't work with MULTIPOINT. Looks like this was just a simple
+	  mistake in the code. I've also improved the error message to
+	  return the proper type name instead of just a number.
 
-2008-11-05 01:56  robe
+2008-11-05 01:56  Regina Obe <lr at pcorp.us>
 
-	* add ST_Collect as having some support for circular
+	* [r3251] doc/reference_new.xml: add ST_Collect as having some
+	  support for circular
 
-2008-11-04 20:26  robe
+2008-11-04 20:26  Regina Obe <lr at pcorp.us>
 
-	* typo in proto
+	* [r3249] doc/reference_new.xml: typo in proto
 
-2008-11-04 20:05  robe
+2008-11-04 20:05  Regina Obe <lr at pcorp.us>
 
-	* Add missing proto for ST_CurveToLine
+	* [r3247] doc/reference_new.xml: Add missing proto for
+	  ST_CurveToLine
 
-2008-11-04 14:15  robe
+2008-11-04 14:15  Regina Obe <lr at pcorp.us>
 
-	* Add ST_HasArc, pull some useful comments from source code to add
-	  to ST_CurveToLine
+	* [r3245] doc/reference_new.xml: Add ST_HasArc, pull some useful
+	  comments from source code to add to ST_CurveToLine
 
-2008-11-04 14:09  mcayland
+2008-11-04 14:09  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix lwgeom_typename() not returning a valid string for any of the
-	  newer geometry types.
+	* [r3243] liblwgeom/lwutil.c: Fix lwgeom_typename() not returning a
+	  valid string for any of the newer geometry types.
 
-2008-11-04 13:58  mcayland
+2008-11-04 13:58  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for GBT#65: ST_AsGML kills the backend when fed a CIRCULAR
-	  STRING. The default code attempts to inspect any unknown geometry
-	  which fails on CIRCULARSTRING. A longer term fix may be to fix
-	  CIRCULARSTRING so that it can be inspected, however the fix here
-	  is to throw an ERROR for unknown types just as the other As_*()
-	  functions do.
+	* [r3241] lwgeom/lwgeom_gml.c: Fix for GBT#65: ST_AsGML kills the
+	  backend when fed a CIRCULAR STRING. The default code attempts to
+	  inspect any unknown geometry which fails on CIRCULARSTRING. A
+	  longer term fix may be to fix CIRCULARSTRING so that it can be
+	  inspected, however the fix here is to throw an ERROR for unknown
+	  types just as the other As_*() functions do.
 
-2008-11-04 13:43  robe
+2008-11-04 13:43  Regina Obe <lr at pcorp.us>
 
-	* Change all ST_AsKML to use new ST_Transform
+	* [r3240] lwgeom/lwpostgis.sql.in.c: Change all ST_AsKML to use new
+	  ST_Transform
 
-2008-11-04 13:14  robe
+2008-11-04 13:14  Regina Obe <lr at pcorp.us>
 
-	* More flagging of functions that work with 3d
+	* [r3238] doc/reference_new.xml: More flagging of functions that
+	  work with 3d
 
-2008-11-04 12:31  robe
+2008-11-04 12:31  Regina Obe <lr at pcorp.us>
 
-	* fill in all protos for kml, flag more functions as supporting 3d
-	  and circular/curve
+	* [r3237] doc/reference_new.xml: fill in all protos for kml, flag
+	  more functions as supporting 3d and circular/curve
 
-2008-11-04 10:00  mcayland
+2008-11-04 10:00  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Change ST_GeomFromText() to GeomFromText() for older hwgeom (-w)
-	  support - looks like I was a little bit to eager in my earlier
-	  conversion to use the new ST_ calling convention.
+	* [r3236] loader/shp2pgsql.c: Change ST_GeomFromText() to
+	  GeomFromText() for older hwgeom (-w) support - looks like I was a
+	  little bit to eager in my earlier conversion to use the new ST_
+	  calling convention.
 
-2008-11-04 09:57  mcayland
+2008-11-04 09:57  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Alter loader Makefile to add liblwgeom.a dependency, so people
-	  who just want to build the shapefile loaders can do "make" within
-	  the loader subdirectory and liblwgeom.a will automagically get
-	  build first.
+	* [r3235] loader/Makefile.in: Alter loader Makefile to add
+	  liblwgeom.a dependency, so people who just want to build the
+	  shapefile loaders can do "make" within the loader subdirectory
+	  and liblwgeom.a will automagically get build first.
 
-2008-11-04 02:48  robe
+2008-11-04 02:48  Regina Obe <lr at pcorp.us>
 
-	* fix typo
+	* [r3234] doc/xsl/postgis_aggs_mm.xml.xsl: fix typo
 
-2008-11-04 02:19  robe
+2008-11-04 02:19  Regina Obe <lr at pcorp.us>
 
-	* document circular support of more functions
+	* [r3233] doc/reference_new.xml: document circular support of more
+	  functions
 
-2008-11-04 02:07  robe
+2008-11-04 02:07  Regina Obe <lr at pcorp.us>
 
-	* Get rid of MM compliancy note for ST_LineToCurve, can only find
-	  ST_CurveToLine in MM docs
+	* [r3232] doc/reference_new.xml: Get rid of MM compliancy note for
+	  ST_LineToCurve, can only find ST_CurveToLine in MM docs
 
-2008-11-04 01:56  robe
+2008-11-04 01:56  Regina Obe <lr at pcorp.us>
 
-	* correct comment
+	* [r3231] doc/xsl/postgis_aggs_mm.xml.xsl: correct comment
 
-2008-11-04 01:55  robe
+2008-11-04 01:55  Regina Obe <lr at pcorp.us>
 
-	* Add new section to document circular string support
+	* [r3230] doc/xsl/postgis_aggs_mm.xml.xsl: Add new section to
+	  document circular string support
 
-2008-11-04 01:47  robe
+2008-11-04 01:47  Regina Obe <lr at pcorp.us>
 
-	* Document ST_LineToCurve and ST_CurveToLine, update template to
-	  include note about Circular String support in prep for new index
-	  section
+	* [r3228] doc/reference_new.xml, doc/template.xml: Document
+	  ST_LineToCurve and ST_CurveToLine, update template to include
+	  note about Circular String support in prep for new index section
 
-2008-11-03 17:00  kneufeld
+2008-11-03 17:00  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated url in comments to the documentation on the implemented
-	  point-in-polygon algorithm to
+	* [r3226] lwgeom/lwgeom_functions_analytic.c: updated url in
+	  comments to the documentation on the implemented point-in-polygon
+	  algorithm to
 	  http://softsurfer.com/Archive/algorithm_0103/algorithm_0103.htm#Winding%20Number.
 	  Old link was dead.
 
-2008-11-03 16:23  mcayland
+2008-11-03 16:23  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add missing ICONV_LDFLAGS variable to the loader Makefile. Thanks
-	  to Olivier Courtin for noticing.
+	* [r3225] loader/Makefile.in: Add missing ICONV_LDFLAGS variable to
+	  the loader Makefile. Thanks to Olivier Courtin for noticing.
 
-2008-11-03 16:17  mcayland
+2008-11-03 16:17  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Switch pgsql2shp over to using liblwgeom.
+	* [r3224] loader/Makefile.in, loader/pgsql2shp.c, loader/wkb.h:
+	  Switch pgsql2shp over to using liblwgeom.
 	  
 	  There are few commits that can be as satisfying as one which
 	  involves the removal of ~1200 lines of code. By using the
@@ -33786,33 +52651,39 @@
 	  Note that while there may be a difference in behaviour in some
 	  corner cases, all regression tests pass here.
 
-2008-10-31 10:41  mcayland
+2008-10-31 10:41  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add missing serialized_lwgeom_from_hexwkb() function to liblwgeom
-	  which is required for adding liblwgeom support to pgsql2shp.
+	* [r3223] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c: Add missing
+	  serialized_lwgeom_from_hexwkb() function to liblwgeom which is
+	  required for adding liblwgeom support to pgsql2shp.
 
-2008-10-31 10:04  mcayland
+2008-10-31 10:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Some more shp2pgsql clearups; remove some dead commented code and
-	  switch over to use the LWDEBUG(F) debugging framework.
+	* [r3222] loader/shp2pgsql.c: Some more shp2pgsql clearups; remove
+	  some dead commented code and switch over to use the LWDEBUG(F)
+	  debugging framework.
 
-2008-10-30 23:13  mcayland
+2008-10-30 23:13  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix regression test differences between different platforms in
-	  the AsGeoJSON regression code. There were two issues: firstly,
-	  the original regression tests included precision information > 15
-	  significant figures, and secondly the GeoJSON code was exposing
-	  BOX2DFLOAT4 information to the client instead of calculating the
-	  true bounding box. With thanks to Olivier Courtin.
+	* [r3221] doc/reference_new.xml, lwgeom/lwgeom_geojson.c,
+	  regress/geojson.sql, regress/geojson_expected: Fix regression
+	  test differences between different platforms in the AsGeoJSON
+	  regression code. There were two issues: firstly, the original
+	  regression tests included precision information > 15 significant
+	  figures, and secondly the GeoJSON code was exposing BOX2DFLOAT4
+	  information to the client instead of calculating the true
+	  bounding box. With thanks to Olivier Courtin.
 
-2008-10-30 22:48  robe
+2008-10-30 22:48  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_DumpRings
+	* [r3218] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_DumpRings
 
-2008-10-30 17:10  mcayland
+2008-10-30 17:10  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Switch shp2pgsql over to use liblwgeom instead of its own
-	  internal parser. Some notes from looking at the code:
+	* [r3217] loader/Makefile.in, loader/shp2pgsql.c: Switch shp2pgsql
+	  over to use liblwgeom instead of its own internal parser. Some
+	  notes from looking at the code:
 	  
 	  i) I've abstracted the I/O formatting functions into a new
 	  OutputGeometry() function since it allow the logic concerning
@@ -33841,1585 +52712,1928 @@
 	  the maths library and liblwgeom.a, so some manual intervention on
 	  the automated build may be required ;)
 
-2008-10-29 18:32  robe
+2008-10-29 18:32  Regina Obe <lr at pcorp.us>
 
-	* Make more pretty section names, move over ST_Accum and provide
-	  example.
+	* [r3215] doc/reference.xml, doc/reference_new.xml: Make more
+	  pretty section names, move over ST_Accum and provide example.
 
-2008-10-29 18:05  robe
+2008-10-29 18:05  Regina Obe <lr at pcorp.us>
 
-	* Pretty anchors for all new sections
+	* [r3214] doc/reference_new.xml: Pretty anchors for all new
+	  sections
 
-2008-10-29 17:59  robe
+2008-10-29 17:59  Regina Obe <lr at pcorp.us>
 
-	* Incorrect function arg in ST_Union
+	* [r3212] doc/reference_new.xml: Incorrect function arg in ST_Union
 
-2008-10-29 17:36  robe
+2008-10-29 17:36  Regina Obe <lr at pcorp.us>
 
-	* Okay maybe hmm 4th or 5th time is the charm
+	* [r3210] doc/reference_new.xml: Okay maybe hmm 4th or 5th time is
+	  the charm
 
-2008-10-29 17:34  robe
+2008-10-29 17:34  Regina Obe <lr at pcorp.us>
 
-	* Again
+	* [r3209] doc/reference_new.xml: Again
 
-2008-10-29 17:34  robe
+2008-10-29 17:34  Regina Obe <lr at pcorp.us>
 
-	* Lets try again
+	* [r3208] doc/reference_new.xml: Lets try again
 
-2008-10-29 17:29  robe
+2008-10-29 17:29  Regina Obe <lr at pcorp.us>
 
-	* function name typo
+	* [r3207] doc/reference_new.xml: function name typo
 
-2008-10-29 17:27  robe
+2008-10-29 17:27  Regina Obe <lr at pcorp.us>
 
-	* Move over rest of Linear Referencing functions and provide
-	  examples. Experiment with giving pretty anchor to section.
+	* [r3206] doc/reference.xml, doc/reference_new.xml: Move over rest
+	  of Linear Referencing functions and provide examples. Experiment
+	  with giving pretty anchor to section.
 
-2008-10-29 13:58  robe
+2008-10-29 13:58  Regina Obe <lr at pcorp.us>
 
-	* Add Availability note for Populate_Geometry_Columns
+	* [r3205] doc/reference_new.xml: Add Availability note for
+	  Populate_Geometry_Columns
 
-2008-10-29 13:52  robe
+2008-10-29 13:52  Regina Obe <lr at pcorp.us>
 
-	* Fix line_interpolate_point link
+	* [r3204] doc/reference.xml: Fix line_interpolate_point link
 
-2008-10-29 13:13  robe
+2008-10-29 13:13  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Line_Substring
+	* [r3202] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Line_Substring
 
-2008-10-29 12:37  robe
+2008-10-29 12:37  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Line_Interpolate_Point
+	* [r3200] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Line_Interpolate_Point
 
-2008-10-27 16:13  kneufeld
+2008-10-27 16:13  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* changed linkend to match case in ST_Length2d to ST_Length2D
+	* [r3199] doc/reference.xml, doc/reference_new.xml: changed linkend
+	  to match case in ST_Length2d to ST_Length2D
 
-2008-10-27 16:05  kneufeld
+2008-10-27 16:05  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* attempt to fix broken linkend by replacing it with an xref in
-	  reference_new.xml
+	* [r3198] doc/reference_new.xml: attempt to fix broken linkend by
+	  replacing it with an xref in reference_new.xml
 
-2008-10-27 15:53  robe
+2008-10-27 15:53  Regina Obe <lr at pcorp.us>
 
-	* Move over sql mm compliance for ST_Disjoint and get rid of
-	  annoying carriage return in template.xml
+	* [r3197] doc/reference.xml, doc/reference_new.xml,
+	  doc/template.xml: Move over sql mm compliance for ST_Disjoint and
+	  get rid of annoying carriage return in template.xml
 
-2008-10-27 15:49  kneufeld
+2008-10-27 15:49  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added availability to Populate_Geometry_Columns
+	* [r3196] lwgeom/lwpostgis.sql.in.c: added availability to
+	  Populate_Geometry_Columns
 
-2008-10-27 15:48  kneufeld
+2008-10-27 15:48  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed typo in broken link to ST_Distance_Spheroid
+	* [r3195] doc/reference_new.xml: fixed typo in broken link to
+	  ST_Distance_Spheroid
 
-2008-10-27 15:33  kneufeld
+2008-10-27 15:33  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed typo in ST_Length3d_Spheriod xref to ST_Length_Spheroid
+	* [r3194] doc/reference_new.xml: fixed typo in ST_Length3d_Spheriod
+	  xref to ST_Length_Spheroid
 
-2008-10-27 15:29  kneufeld
+2008-10-27 15:29  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed typo in missing constraint linkend: ST_InteriorRings to
-	  ST_NumInteriorRings
+	* [r3193] doc/reference_new.xml: fixed typo in missing constraint
+	  linkend: ST_InteriorRings to ST_NumInteriorRings
 
-2008-10-27 15:26  kneufeld
+2008-10-27 15:26  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* typo in xref link
+	* [r3192] doc/reference_new.xml: typo in xref link
 
-2008-10-27 15:25  kneufeld
+2008-10-27 15:25  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added id for missing constraint linkend: PostGIS_Scripts_Released
+	* [r3191] doc/reference_new.xml: added id for missing constraint
+	  linkend: PostGIS_Scripts_Released
 
-2008-10-27 15:21  kneufeld
+2008-10-27 15:21  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added id for missing constraint linkend: line_substring
+	* [r3190] doc/reference.xml: added id for missing constraint
+	  linkend: line_substring
 
-2008-10-27 15:15  kneufeld
+2008-10-27 15:15  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added id for constraint linkend: length2d
+	* [r3189] doc/reference.xml: added id for constraint linkend:
+	  length2d
 
-2008-10-27 06:49  kneufeld
+2008-10-27 06:49  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed bug in lwpostgis.sql.in.c in POPULATE_GEOMETRY_COLUMNS when
-	  detecting SRIDs of -1.
+	* [r3188] lwgeom/lwpostgis.sql.in.c: fixed bug in
+	  lwpostgis.sql.in.c in POPULATE_GEOMETRY_COLUMNS when detecting
+	  SRIDs of -1.
 
-2008-10-27 06:29  kneufeld
+2008-10-27 06:29  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated description for Populate_Geometry_Columns
+	* [r3187] doc/reference_new.xml: updated description for
+	  Populate_Geometry_Columns
 
-2008-10-27 06:13  kneufeld
+2008-10-27 06:13  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added plpgsql function Probe_Geometry_Columns to
-	  lwpostgis.sql.in.c and added documentation in reference_new.xml
+	* [r3186] doc/reference_new.xml, lwgeom/lwpostgis.sql.in.c: added
+	  plpgsql function Probe_Geometry_Columns to lwpostgis.sql.in.c and
+	  added documentation in reference_new.xml
 
-2008-10-26 22:26  robe
+2008-10-26 22:26  Regina Obe <lr at pcorp.us>
 
-	* Fix typo
+	* [r3185] doc/reference_new.xml: Fix typo
 
-2008-10-26 22:18  robe
+2008-10-26 22:18  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Length* functions. Correct documentation - e.g.
-	  missing ST_Length2D_Spheroid and ST_Length3d_Spheroid and
+	* [r3183] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Length* functions. Correct documentation - e.g. missing
+	  ST_Length2D_Spheroid and ST_Length3d_Spheroid and
 	  ST_Length_Spheroid are synonyms. Seems to disagree with how we
 	  define ST_Length.
 
-2008-10-26 21:24  robe
+2008-10-26 21:24  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Distance_Spher* functions
+	* [r3181] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Distance_Spher* functions
 
-2008-10-26 19:49  robe
+2008-10-26 19:49  Regina Obe <lr at pcorp.us>
 
-	* Put in availability info for rotate functions
+	* [r3179] doc/reference_new.xml: Put in availability info for
+	  rotate functions
 
-2008-10-26 19:43  robe
+2008-10-26 19:43  Regina Obe <lr at pcorp.us>
 
-	* Move over rest of Affine family. Correct some typos. Put
-	  ST_ForceRHR in right location.
+	* [r3178] doc/reference.xml, doc/reference_new.xml: Move over rest
+	  of Affine family. Correct some typos. Put ST_ForceRHR in right
+	  location.
 
-2008-10-26 18:14  robe
+2008-10-26 18:14  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Affine
+	* [r3177] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Affine
 
-2008-10-25 17:29  robe
+2008-10-25 17:29  Regina Obe <lr at pcorp.us>
 
-	* Add = operator the most confusing and accidentally used operator
-	  of all
+	* [r3175] doc/reference.xml: Add = operator the most confusing and
+	  accidentally used operator of all
 
-2008-10-25 16:30  robe
+2008-10-25 16:30  Regina Obe <lr at pcorp.us>
 
-	* Commit provide another example of ST_SetPoint and flag as
-	  supporting 3d
+	* [r3174] doc/reference_new.xml: Commit provide another example of
+	  ST_SetPoint and flag as supporting 3d
 
-2008-10-24 15:01  robe
+2008-10-24 15:01  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r3170] doc/reference_new.xml: typo
 
-2008-10-24 14:53  robe
+2008-10-24 14:53  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_SnapToGrid
+	* [r3168] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_SnapToGrid
 
-2008-10-23 00:28  robe
+2008-10-23 00:28  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r3166] doc/reference_new.xml: typo
 
-2008-10-22 18:55  robe
+2008-10-22 18:55  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Relate the last of the Geometry Relationship
-	  Function and destroy the section in old reference.
+	* [r3164] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Relate the last of the Geometry Relationship Function and
+	  destroy the section in old reference.
 
-2008-10-21 06:41  robe
+2008-10-21 06:41  Regina Obe <lr at pcorp.us>
 
-	* Move over perimeter and max distance
+	* [r3161] doc/reference.xml, doc/reference_new.xml: Move over
+	  perimeter and max distance
 
-2008-10-21 04:54  kneufeld
+2008-10-21 04:54  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved ST_ForceRHR into the correct category
+	* [r3159] doc/reference_new.xml: moved ST_ForceRHR into the correct
+	  category
 
-2008-10-21 04:41  kneufeld
+2008-10-21 04:41  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over ST_ForceRHR
+	* [r3158] doc/reference.xml, doc/reference_new.xml: moved over
+	  ST_ForceRHR
 
-2008-10-20 17:36  robe
+2008-10-20 17:36  Regina Obe <lr at pcorp.us>
 
-	* typo in st_cover something. Hate non-symmetric relationships
+	* [r3157] doc/reference_new.xml: typo in st_cover something. Hate
+	  non-symmetric relationships
 
-2008-10-20 17:29  robe
+2008-10-20 17:29  Regina Obe <lr at pcorp.us>
 
-	* Revert change to ST_MemUnion - it really is that. Most have had a
-	  faulty restore when it was named ST_MemGeomUnion
+	* [r3155] doc/reference_new.xml: Revert change to ST_MemUnion - it
+	  really is that. Most have had a faulty restore when it was named
+	  ST_MemGeomUnion
 
-2008-10-20 17:25  robe
+2008-10-20 17:25  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Covers and ST_CoveredBy and provide examples, update
+	* [r3154] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Covers and ST_CoveredBy and provide examples, update
 	  ST_Contains example to show distinction between ST_Covers,
 	  ST_Contains etc.
 
-2008-10-20 14:49  robe
+2008-10-20 14:49  Regina Obe <lr at pcorp.us>
 
-	* correct links in README and note about running make check before
-	  make install. How the hell do you do that?
+	* [r3152] README.postgis: correct links in README and note about
+	  running make check before make install. How the hell do you do
+	  that?
 
-2008-10-19 23:40  robe
+2008-10-19 23:40  Regina Obe <lr at pcorp.us>
 
-	* Provide example for GeometryType. fix typo
+	* [r3146] doc/reference_new.xml: Provide example for GeometryType.
+	  fix typo
 
-2008-10-19 23:31  robe
+2008-10-19 23:31  Regina Obe <lr at pcorp.us>
 
-	* typo in ST_Y definition. Also added common use-case example of
-	  ST_Centroid used with ST_X, ST_Y
+	* [r3144] doc/reference_new.xml: typo in ST_Y definition. Also
+	  added common use-case example of ST_Centroid used with ST_X, ST_Y
 
-2008-10-19 14:52  mcayland
+2008-10-19 14:52  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* After several discussions at PGDay, it seems that the only
-	  use-case for the PGXS PROGRAM clause is for programs that wish to
-	  link with the backend libraries. Hence create a new Makefile for
-	  the loader directory which uses the new autoconf infrastructure,
-	  based upon library and dependency lists from the original 1.3
-	  branch.
+	* [r3143] configure.ac, loader/Makefile, loader/Makefile.in,
+	  loader/Makefile.pgsql2shp.in, loader/Makefile.shp2pgsql.in: After
+	  several discussions at PGDay, it seems that the only use-case for
+	  the PGXS PROGRAM clause is for programs that wish to link with
+	  the backend libraries. Hence create a new Makefile for the loader
+	  directory which uses the new autoconf infrastructure, based upon
+	  library and dependency lists from the original 1.3 branch.
 
-2008-10-19 14:40  robe
+2008-10-19 14:40  Regina Obe <lr at pcorp.us>
 
-	* Move over remainder of Geometry Accessors to new section. Fix
-	  ST_MemUnion (really ST_MemGeomUnion), correct mistake in
-	  ST_SymDifference
+	* [r3141] doc/reference.xml, doc/reference_new.xml: Move over
+	  remainder of Geometry Accessors to new section. Fix ST_MemUnion
+	  (really ST_MemGeomUnion), correct mistake in ST_SymDifference
 
-2008-10-18 08:33  mcayland
+2008-10-18 08:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove postgis_jts_version() function call from regression tests
-	  as the function no longer exists (prevents warning being
-	  displayed at the start of the test run)
+	* [r3140] regress/run_test: Remove postgis_jts_version() function
+	  call from regression tests as the function no longer exists
+	  (prevents warning being displayed at the start of the test run)
 
-2008-10-17 18:51  robe
+2008-10-17 18:51  Regina Obe <lr at pcorp.us>
 
-	* Move over the *N family
+	* [r3138] doc/reference.xml, doc/reference_new.xml: Move over the
+	  *N family
 
-2008-10-17 17:58  robe
+2008-10-17 17:58  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_length2d, ST_length3d
+	* [r3136] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_length2d, ST_length3d
 
-2008-10-17 03:39  robe
+2008-10-17 03:39  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_MemUnion the last of the geometry processing
-	  functions and destroy the geometry processing functions old
-	  section
+	* [r3134] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_MemUnion the last of the geometry processing functions and
+	  destroy the geometry processing functions old section
 
-2008-10-17 03:05  robe
+2008-10-17 03:05  Regina Obe <lr at pcorp.us>
 
-	* forgot to delete some stuff
+	* [r3133] doc/reference_new.xml: forgot to delete some stuff
 
-2008-10-17 03:04  robe
+2008-10-17 03:04  Regina Obe <lr at pcorp.us>
 
-	* move over ST_Shift_Longitude, ST_Difference, ST_SymDifference
+	* [r3131] doc/reference.xml, doc/reference_new.xml: move over
+	  ST_Shift_Longitude, ST_Difference, ST_SymDifference
 
-2008-10-16 22:13  kneufeld
+2008-10-16 22:13  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* reverting accidental commit to template.xml
+	* [r3130] doc/template.xml: reverting accidental commit to
+	  template.xml
 
-2008-10-16 18:35  robe
+2008-10-16 18:35  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_NumGeometries
+	* [r3128] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_NumGeometries
 
-2008-10-16 18:17  robe
+2008-10-16 18:17  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_ExteriorRing, ST_NumInteriorRings,
-	  ST_NumInteriorRing
+	* [r3126] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_ExteriorRing, ST_NumInteriorRings, ST_NumInteriorRing
 
-2008-10-16 18:12  kneufeld
+2008-10-16 18:12  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added dblatex as a dependency for building PDF's
+	* [r3125] configure.ac, doc/Makefile.in: added dblatex as a
+	  dependency for building PDF's
 	  added a pdf target to doc/Makefile.in
 
-2008-10-16 08:33  mcayland
+2008-10-16 08:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update to previous parser patch: if the error location is 0 (i.e.
-	  we haven't even matched a valid OGC WKT type) then display a more
-	  appropriate message. Per minor gripe from Paul.
+	* [r3124] lwgeom/lwgeom_pg.c: Update to previous parser patch: if
+	  the error location is 0 (i.e. we haven't even matched a valid OGC
+	  WKT type) then display a more appropriate message. Per minor
+	  gripe from Paul.
 
-2008-10-16 07:22  robe
+2008-10-16 07:22  Regina Obe <lr at pcorp.us>
 
-	* update st_azimuth - it should be called vector instead of line
-	  since order of points reverses the angle
+	* [r3123] doc/reference_new.xml: update st_azimuth - it should be
+	  called vector instead of line since order of points reverses the
+	  angle
 
-2008-10-16 07:17  robe
+2008-10-16 07:17  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Azimuth and provide example
+	* [r3120] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Azimuth and provide example
 
-2008-10-16 06:35  robe
+2008-10-16 06:35  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Boundary to new section, copy comment about SQL-MM
-	  srid to xsl header
+	* [r3118] doc/reference.xml, doc/reference_new.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Move over ST_Boundary to new
+	  section, copy comment about SQL-MM srid to xsl header
 
-2008-10-15 21:44  mcayland
+2008-10-15 21:44  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix pointer problem in the new HINT code caused by strncpy() not
-	  padding with zeros unless the specified length is *longer* than
-	  the source string.
+	* [r3117] lwgeom/lwgeom_pg.c: Fix pointer problem in the new HINT
+	  code caused by strncpy() not padding with zeros unless the
+	  specified length is *longer* than the source string.
 
-2008-10-15 18:36  pramsey
+2008-10-15 18:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* last one!
+	* [r3116] lwgeom/lwgeom_box2dfloat4.c: last one!
 
-2008-10-15 18:26  pramsey
+2008-10-15 18:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* expunge remaining stringBuffer references
+	* [r3115] lwgeom/lwgeom_gist.c, lwgeom/lwgeom_inout.c: expunge
+	  remaining stringBuffer references
 
-2008-10-15 17:59  pramsey
+2008-10-15 17:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove stringBuffer.* from build/repository.
+	* [r3114] lwgeom/Makefile.in, lwgeom/lwgeom_gist.c,
+	  lwgeom/stringBuffer.c, lwgeom/stringBuffer.h: Remove
+	  stringBuffer.* from build/repository.
 
-2008-10-15 15:03  mcayland
+2008-10-15 15:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update the LWGEOM parser to provide error HINTs when being called
-	  from PostgreSQL, and update regression tests accordingly.
+	* [r3113] liblwgeom/liblwgeom.h, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/wktparse.h, lwgeom/lwgeom_pg.c,
+	  lwgeom/lwgeom_pg.h, regress/regress_expected,
+	  regress/regress_ogc_expected, regress/wkt_expected: Update the
+	  LWGEOM parser to provide error HINTs when being called from
+	  PostgreSQL, and update regression tests accordingly.
 
-2008-10-15 13:43  robe
+2008-10-15 13:43  Regina Obe <lr at pcorp.us>
 
-	* fix spacing of st_linemerge, st_segmentize examples.
+	* [r3112] doc/reference_new.xml: fix spacing of st_linemerge,
+	  st_segmentize examples.
 
-2008-10-15 13:39  robe
+2008-10-15 13:39  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Segmentize and ST_LineMerge
+	* [r3110] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Segmentize and ST_LineMerge
 
-2008-10-14 23:08  kneufeld
+2008-10-14 23:08  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved cleanup of the pdf to the maintainer-clean target
+	* [r3109] doc/Makefile.in: moved cleanup of the pdf to the
+	  maintainer-clean target
 
-2008-10-14 20:11  pramsey
+2008-10-14 20:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove sliced test code and return to original state.
+	* [r3107] lwgeom/lwgeom_gist.c: Remove sliced test code and return
+	  to original state.
 
-2008-10-14 19:51  mcayland
+2008-10-14 19:51  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Nearly finish work on the new parser API. The key part of this
-	  patch is to alter the behaviour of the parser so that instead of
-	  generating errors directly, it returns an error code, error
-	  location and an error message. Hence the caller is now in charge
-	  of the behaviour when parsing invalid geometries, and so can
-	  ignore errors or proceed onto the next geometry if required. The
-	  regression test change is due to a change in an error message,
-	  since the error is now returned from the unparser before it even
-	  gets to GEOS.
+	* [r3106] liblwgeom/liblwgeom.h, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/wktparse.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h,
+	  regress/regress_ogc_expected: Nearly finish work on the new
+	  parser API. The key part of this patch is to alter the behaviour
+	  of the parser so that instead of generating errors directly, it
+	  returns an error code, error location and an error message. Hence
+	  the caller is now in charge of the behaviour when parsing invalid
+	  geometries, and so can ignore errors or proceed onto the next
+	  geometry if required. The regression test change is due to a
+	  change in an error message, since the error is now returned from
+	  the unparser before it even gets to GEOS.
 
-2008-10-14 19:39  robe
+2008-10-14 19:39  Regina Obe <lr at pcorp.us>
 
-	* Provide examples for ST_Simplify and ST_SimplifyPreserveTopology
+	* [r3105] doc/reference_new.xml: Provide examples for ST_Simplify
+	  and ST_SimplifyPreserveTopology
 
-2008-10-14 18:16  robe
+2008-10-14 18:16  Regina Obe <lr at pcorp.us>
 
-	* Move over st_simplify and st_simplifypreservetopology. Still need
-	  to put in examples.
+	* [r3103] doc/reference.xml, doc/reference_new.xml: Move over
+	  st_simplify and st_simplifypreservetopology. Still need to put in
+	  examples.
 
-2008-10-14 17:42  pramsey
+2008-10-14 17:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* astyle style=ansi indent=tab=8
+	* [r3101] lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_gist.c: astyle
+	  style=ansi indent=tab=8
 
-2008-10-14 11:40  robe
+2008-10-14 11:40  Regina Obe <lr at pcorp.us>
 
-	* completely move over rest of management functions to new section.
-	  Add probe_geometry_columns - never been documented, but useful.
-	  Get rid of update_geometry_stats - just returns a dumb message
-	  that its obsolete.
+	* [r3099] doc/reference.xml, doc/reference_new.xml: completely move
+	  over rest of management functions to new section. Add
+	  probe_geometry_columns - never been documented, but useful. Get
+	  rid of update_geometry_stats - just returns a dumb message that
+	  its obsolete.
 
-2008-10-14 03:56  robe
+2008-10-14 03:56  Regina Obe <lr at pcorp.us>
 
-	* Add missing function proto for dropgeometrytable
+	* [r3098] doc/reference_new.xml: Add missing function proto for
+	  dropgeometrytable
 
-2008-10-13 13:16  mcayland
+2008-10-13 13:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rename parser_check_flags to current_parser_check_flags and
+	* [r3095] liblwgeom/lwgparse.c, liblwgeom/lwgunparse.c: Rename
+	  parser_check_flags to current_parser_check_flags and
 	  unparser_check_flags to current_unparser_check_flags to clarify
 	  that these status variables only reflect the checks enabled for
 	  the current parse.
 
-2008-10-13 13:03  mcayland
+2008-10-13 13:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Move the liblwgeom unparser example over to the dynptarray API
-	  which is the proper way to alter point arrays in memory.
+	* [r3094] liblwgeom/examples/unparser.c: Move the liblwgeom
+	  unparser example over to the dynptarray API which is the proper
+	  way to alter point arrays in memory.
 
-2008-10-13 11:36  mcayland
+2008-10-13 11:36  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix up some more warnings in SVN trunk; note that there are still
-	  2 remaining PreparedGeometry warnings, but these will require
+	* [r3093] lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_geos_prepared.c, lwgeom/lwgeom_geos_prepared.h: Fix
+	  up some more warnings in SVN trunk; note that there are still 2
+	  remaining PreparedGeometry warnings, but these will require
 	  patching GEOS.
 
-2008-10-12 17:47  pramsey
+2008-10-12 17:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Performance boost: only detoast the front of the tuple first and
+	* [r3091] lwgeom/lwgeom_gist.c: Performance boost: only detoast the
+	  front of the tuple first and
 	  extract the bbox from that.
 
-2008-10-10 16:34  pramsey
+2008-10-10 16:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Pull prep_cache reference safely inside PREPARED_GEOM #ifdef
+	* [r3089] lwgeom/lwgeom_geos.c: Pull prep_cache reference safely
+	  inside PREPARED_GEOM #ifdef
 
-2008-10-10 05:24  pramsey
+2008-10-10 05:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Set keywords propery.
+	* [r3088] lwgeom/long_xact.c, lwgeom/lwgeom_box.c,
+	  lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_box3d.c,
+	  lwgeom/lwgeom_btree.c, lwgeom/lwgeom_chip.c,
+	  lwgeom/lwgeom_debug.c, lwgeom/lwgeom_dump.c,
+	  lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_functions_lrs.c,
+	  lwgeom/lwgeom_geojson.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos.h, lwgeom/lwgeom_geos_prepared.c,
+	  lwgeom/lwgeom_geos_prepared.h, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_gml.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_kml.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c, lwgeom/lwgeom_rtree.c,
+	  lwgeom/lwgeom_spheroid.c, lwgeom/lwgeom_sqlmm.c,
+	  lwgeom/lwgeom_svg.c, lwgeom/lwgeom_transform.c,
+	  lwgeom/lwgeom_triggers.c, lwgeom/lwpostgis.sql.in.c,
+	  lwgeom/stringBuffer.c, lwgeom/test.c: Set keywords propery.
 
-2008-10-10 05:17  pramsey
+2008-10-10 05:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Clean-up and comment.
+	* [r3087] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos.h,
+	  lwgeom/lwgeom_geos_prepared.c, lwgeom/lwpostgis.sql.in.c:
+	  Clean-up and comment.
 
-2008-10-10 04:41  pramsey
+2008-10-10 04:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename lwgeom_geos_c.c to lwgeom_geos.c
+	* [r3086] lwgeom/Makefile.in, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_c.c: Rename lwgeom_geos_c.c to lwgeom_geos.c
 
-2008-10-10 04:39  pramsey
+2008-10-10 04:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Prepared geometries getting closer to readiness. Integrated into
+	* [r3085] lwgeom/Makefile.in, lwgeom/lwgeom_geos.h,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_geos_prepared.c,
+	  lwgeom/lwgeom_geos_prepared.h, lwgeom/lwgeom_rtree.h,
+	  lwgeom/lwpostgis.sql.in.c, regress/README,
+	  regress/regress_ogc_prep.sql, regress/regress_ogc_prep_expected:
+	  Prepared geometries getting closer to readiness. Integrated into
 	  standard functions, regression tests added.
 
-2008-10-10 01:35  mleslie
+2008-10-10 01:35  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Updating the regression test README file with details about the c
-	  preprocessing step and the formatting of the _expected file
-	  results.
+	* [r3084] regress/README: Updating the regression test README file
+	  with details about the c preprocessing step and the formatting of
+	  the _expected file results.
 
-2008-10-08 18:57  robe
+2008-10-08 18:57  Regina Obe <lr at pcorp.us>
 
-	* SQL my MM
+	* [r3083] doc/xsl/postgis_aggs_mm.xml.xsl: SQL my MM
 
-2008-10-08 18:51  robe
+2008-10-08 18:51  Regina Obe <lr at pcorp.us>
 
-	* update st_translate include support for 3d flag
+	* [r3082] doc/reference_new.xml: update st_translate include
+	  support for 3d flag
 
-2008-10-08 18:27  pramsey
+2008-10-08 18:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move to memcmp keys, leave prepared functions tied to old keyed
+	* [r3081] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos_c.c:
+	  Move to memcmp keys, leave prepared functions tied to old keyed
 	  signatures for now.
 
-2008-10-08 10:14  mleslie
+2008-10-08 10:14  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Rebuilt the box3d generation for circular strings to account for
-	  a special large-arc case. Fix for issue 58, includes regression
-	  test for the case.
+	* [r3080] liblwgeom/lwcurve.c, regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected.in: Rebuilt the box3d
+	  generation for circular strings to account for a special
+	  large-arc case. Fix for issue 58, includes regression test for
+	  the case.
 
-2008-10-08 05:48  kneufeld
+2008-10-08 05:48  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed several broken or redirected external URLs.
+	* [r3077] doc/reference.xml: fixed several broken or redirected
+	  external URLs.
 
-2008-10-08 05:45  kneufeld
+2008-10-08 05:45  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed several broken or redirected external URLs.
+	* [r3076] doc/introduction.xml, doc/reference.xml,
+	  doc/reporting.xml, doc/template.xml, doc/using_postgis.xml: fixed
+	  several broken or redirected external URLs.
 
-2008-10-08 04:25  pramsey
+2008-10-08 04:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix minor logic error in intersects() bbox shortcut.
+	* [r3075] lwgeom/lwgeom_geos_c.c: Fix minor logic error in
+	  intersects() bbox shortcut.
 
-2008-10-07 23:51  pramsey
+2008-10-07 23:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-work prepared geom cache to use memcmp instead of keys, step
-	  1.
+	* [r3074] lwgeom/lwgeom_geos_c.c: Re-work prepared geom cache to
+	  use memcmp instead of keys, step 1.
 
-2008-10-07 20:38  pramsey
+2008-10-07 20:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Move DEBUG statement next to a req'd variable.
+	* [r3073] lwgeom/lwgeom_gist.c: Move DEBUG statement next to a
+	  req'd variable.
 
-2008-10-07 18:09  robe
+2008-10-07 18:09  Regina Obe <lr at pcorp.us>
 
-	* correct mistake
+	* [r3072] doc/reference_new.xml: correct mistake
 
-2008-10-07 17:39  robe
+2008-10-07 17:39  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_ConvexHull
+	* [r3071] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_ConvexHull
 
-2008-10-06 19:51  pramsey
+2008-10-06 19:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix slight error in box shortcut logic in prepared intersects.
+	* [r3070] lwgeom/lwgeom_geos_c.c: Fix slight error in box shortcut
+	  logic in prepared intersects.
 
-2008-10-05 22:12  pramsey
+2008-10-05 22:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Convert from LWDEBUG to POSTGIS_DEBUG
+	* [r3068] lwgeom/lwgeom_geos_c.c: Convert from LWDEBUG to
+	  POSTGIS_DEBUG
 
-2008-10-05 17:33  mcayland
+2008-10-05 17:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix stupid mistake in the liblwgeom parser...
+	* [r3067] liblwgeom/lwgparse.c: Fix stupid mistake in the liblwgeom
+	  parser...
 
-2008-10-04 21:29  pramsey
+2008-10-04 21:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix boneheaded error in prepared intersects.
+	* [r3065] lwgeom/lwgeom_geos_c.c: Fix boneheaded error in prepared
+	  intersects.
 
-2008-10-04 17:49  pramsey
+2008-10-04 17:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Protect prepared geometry implementation in GEOS>=3.1 defines.
+	* [r3064] lwgeom/lwgeom_geos_c.c: Protect prepared geometry
+	  implementation in GEOS>=3.1 defines.
 
-2008-10-04 16:00  mcayland
+2008-10-04 16:00  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix the DEBUGF statements I didn't realise I broke with the new
-	  LWGEOM parser/unparser API (in response to Paul's r3061 commit).
+	* [r3063] lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_inout.c: Fix the DEBUGF statements I didn't realise
+	  I broke with the new LWGEOM parser/unparser API (in response to
+	  Paul's r3061 commit).
 
-2008-10-03 18:07  pramsey
+2008-10-03 18:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Some extra debugf's in the prepared geometry code.
+	* [r3062] lwgeom/lwgeom_geos_c.c: Some extra debugf's in the
+	  prepared geometry code.
 
-2008-10-03 17:37  pramsey
+2008-10-03 17:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Patch up and comment out some DEBUGF lines that don't compile due
-	  to changes in function
+	* [r3061] lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_inout.c: Patch up and comment out some DEBUGF lines
+	  that don't compile due to changes in function
 	  signatures in liblwgeom
 
-2008-10-03 13:23  robe
+2008-10-03 13:23  Regina Obe <lr at pcorp.us>
 
-	* correct incorrect statement
+	* [r3060] doc/reference_new.xml: correct incorrect statement
 
-2008-10-03 13:20  robe
+2008-10-03 13:20  Regina Obe <lr at pcorp.us>
 
-	* Update ST_Union's fitness for 3d with examples.
+	* [r3059] doc/reference_new.xml: Update ST_Union's fitness for 3d
+	  with examples.
 
-2008-10-03 09:22  robe
+2008-10-03 09:22  Regina Obe <lr at pcorp.us>
 
-	* Add more examples of 3d use and annotate more 3d functions
+	* [r3058] doc/reference_new.xml: Add more examples of 3d use and
+	  annotate more 3d functions
 
-2008-10-02 23:53  pramsey
+2008-10-02 23:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rework prepared geometry handling to look more like the
-	  implementation of
+	* [r3056] lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_transform.c: Rework
+	  prepared geometry handling to look more like the implementation
+	  of
 	  PJ caching in transform.
 
-2008-10-02 18:52  pramsey
+2008-10-02 18:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Flip format to 'astyle --style=ansi --indent=tab=8' to make
-	  upcoming
+	* [r3055] lwgeom/lwgeom_geos_c.c: Flip format to 'astyle
+	  --style=ansi --indent=tab=8' to make upcoming
 	  changes more consistent, stylewise. (Can't stand the mixed styles
 	  anymore!)
 
-2008-10-02 18:35  pramsey
+2008-10-02 18:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* add .so. to svn:ignore
+	* [r3054] lwgeom: add .so. to svn:ignore
 
-2008-10-02 17:36  pramsey
+2008-10-02 17:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* add check for invalid srid to addgeometrycolumn (#33)
+	* [r3053] lwgeom/lwpostgis.sql.in.c: add check for invalid srid to
+	  addgeometrycolumn (#33)
 
-2008-10-02 16:46  pramsey
+2008-10-02 16:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ensure relate(g,g,p) is case insensitive (#44)
+	* [r3050] lwgeom/lwgeom_geos_c.c: ensure relate(g,g,p) is case
+	  insensitive (#44)
 
-2008-10-02 16:15  robe
+2008-10-02 16:15  Regina Obe <lr at pcorp.us>
 
-	* Flag more 3d compatible functions
+	* [r3048] doc/reference_new.xml: Flag more 3d compatible functions
 
-2008-10-02 16:00  pramsey
+2008-10-02 16:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* pass commandline options into backend command (#45)
+	* [r3047] utils/postgis_restore.pl: pass commandline options into
+	  backend command (#45)
 
-2008-10-02 15:56  pramsey
+2008-10-02 15:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix log message to refer to correct function name
+	* [r3045] lwgeom/lwgeom_rtree.c: Fix log message to refer to
+	  correct function name
 
-2008-10-02 12:43  robe
+2008-10-02 12:43  Regina Obe <lr at pcorp.us>
 
-	* Fix minor typos in ST_Polygonize
+	* [r3044] doc/reference_new.xml: Fix minor typos in ST_Polygonize
 
-2008-10-02 12:14  robe
+2008-10-02 12:14  Regina Obe <lr at pcorp.us>
 
-	* Get rid of extra line breaks in specialty function section (by
-	  changing xsl). Move over ST_Polygonize and provide examples.
+	* [r3043] doc/reference.xml, doc/reference_new.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Get rid of extra line breaks in
+	  specialty function section (by changing xsl). Move over
+	  ST_Polygonize and provide examples.
 
-2008-10-02 11:40  robe
+2008-10-02 11:40  Regina Obe <lr at pcorp.us>
 
-	* Start annotating functions that support 3d, add some examples of
-	  3d, update xsl to pull out functions that support 3d in a
-	  separate special function index
+	* [r3042] doc/reference_new.xml, doc/template.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: Start annotating functions that
+	  support 3d, add some examples of 3d, update xsl to pull out
+	  functions that support 3d in a separate special function index
 
-2008-10-02 11:17  robe
+2008-10-02 11:17  Regina Obe <lr at pcorp.us>
 
-	* extraneous junk left
+	* [r3041] doc/reference_new.xml: extraneous junk left
 
-2008-10-02 11:16  robe
+2008-10-02 11:16  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Extent
+	* [r3040] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Extent
 
-2008-10-01 21:55  robe
+2008-10-01 21:55  Regina Obe <lr at pcorp.us>
 
-	* Get rid of excess paragraph in mm compliance section
+	* [r3039] doc/xsl/postgis_aggs_mm.xml.xsl: Get rid of excess
+	  paragraph in mm compliance section
 
-2008-10-01 21:53  robe
+2008-10-01 21:53  Regina Obe <lr at pcorp.us>
 
-	* Moved some functions to Geometry Processing section
+	* [r3038] doc/reference_new.xml: Moved some functions to Geometry
+	  Processing section
 
-2008-10-01 21:42  robe
+2008-10-01 21:42  Regina Obe <lr at pcorp.us>
 
-	* Put in SQL mm compliance for ST_Intersection
+	* [r3037] doc/reference_new.xml: Put in SQL mm compliance for
+	  ST_Intersection
 
-2008-10-01 20:04  robe
+2008-10-01 20:04  Regina Obe <lr at pcorp.us>
 
-	* Move ST_Intersection to new reference_new.xml
+	* [r3036] doc/reference.xml, doc/reference_new.xml: Move
+	  ST_Intersection to new reference_new.xml
 
-2008-09-30 17:42  robe
+2008-09-30 17:42  Regina Obe <lr at pcorp.us>
 
-	* Revise to include mm compliance section
+	* [r3035] doc/xsl/postgis_aggs_mm.xml.xsl: Revise to include mm
+	  compliance section
 
-2008-09-30 17:39  robe
+2008-09-30 17:39  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Intersects sql mm compliance note to reference_new
-	  (remove sT_Intersects from MM section of old reference)
+	* [r3034] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Intersects sql mm compliance note to reference_new (remove
+	  sT_Intersects from MM section of old reference)
 
-2008-09-30 13:29  mcayland
+2008-09-30 13:29  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update regression tests to include test cases for GBT#21.
+	* [r3032] regress/regress_lrs.sql, regress/regress_lrs_expected:
+	  Update regression tests to include test cases for GBT#21.
 
-2008-09-30 13:25  mcayland
+2008-09-30 13:25  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for locate_along_measure returning invalid values (GBT#21)
+	* [r3031] lwgeom/lwgeom_functions_lrs.c: Fix for
+	  locate_along_measure returning invalid values (GBT#21)
 
-2008-09-30 04:06  kneufeld
+2008-09-30 04:06  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added a new aggregate and sql_mm toc to docs generated via a
-	  custom xsl (provided by Regina Obe) to the documentation Makefile
+	* [r3030] doc/Makefile.in, doc/postgis.xml,
+	  doc/xsl/postgis_aggs_mm.xml.xsl: added a new aggregate and sql_mm
+	  toc to docs generated via a custom xsl (provided by Regina Obe)
+	  to the documentation Makefile
 
-2008-09-29 16:20  robe
+2008-09-29 16:20  Regina Obe <lr at pcorp.us>
 
-	* change to sort functions alphabetically
+	* [r3027] doc/xsl/postgis_aggs_mm.xml.xsl: change to sort functions
+	  alphabetically
 
-2008-09-28 19:48  mcayland
+2008-09-28 19:48  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update LWGEOM unparser to (E)WKT/WKB to resturn a
+	* [r3026] liblwgeom/examples/unparser.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgparse.c, liblwgeom/lwgunparse.c,
+	  liblwgeom/wktparse.h, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c:
+	  Update LWGEOM unparser to (E)WKT/WKB to resturn a
 	  LWGEOM_UNPARSER_RESULT structure instead of just the WKT/WKB
 	  character array. This is the same work done for r3023 but applied
 	  to the unparser instead.
 
-2008-09-28 16:18  mcayland
+2008-09-28 16:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* With the advent of LWGEOM_PARSER_RESULT, it is now possible to
-	  get rid of the horrible SERIALIZED_LWGEOM hack for PostgreSQL 8.3
-	  to allow us to return the size separate from the result. This is
-	  good as it removes another level of indirection from the parser.
-	  Note that the size field has now been added to the
-	  LWGEOM_PARSER_RESULT structure.
+	* [r3025] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgparse.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_pg.c: With the advent of LWGEOM_PARSER_RESULT, it
+	  is now possible to get rid of the horrible SERIALIZED_LWGEOM hack
+	  for PostgreSQL 8.3 to allow us to return the size separate from
+	  the result. This is good as it removes another level of
+	  indirection from the parser. Note that the size field has now
+	  been added to the LWGEOM_PARSER_RESULT structure.
 
-2008-09-28 15:47  mcayland
+2008-09-28 15:47  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Clear up warnings (mixed declartions within code and invalid
-	  return) from r3022.
+	* [r3024] lwgeom/lwgeom_rtree.c, lwgeom/lwgeom_rtree.h: Clear up
+	  warnings (mixed declartions within code and invalid return) from
+	  r3022.
 
-2008-09-28 15:32  mcayland
+2008-09-28 15:32  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update (E)WKT/WKB parser to return a structure
+	* [r3023] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgparse.c, liblwgeom/wktparse.h,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c:
+	  Update (E)WKT/WKB parser to return a structure
 	  (LWGEOM_PARSER_RESULT) instead of just the serialized lwgeom.
 	  This is in preparation for returning more detailed error
 	  information back to the caller.
 
-2008-09-28 09:03  pramsey
+2008-09-28 09:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update pip shortcut code to be less aggressive in building cache.
+	* [r3022] lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_rtree.c,
+	  lwgeom/lwgeom_rtree.h: Update pip shortcut code to be less
+	  aggressive in building cache.
 
-2008-09-27 08:19  mcayland
+2008-09-27 08:19  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rename parser_check_flags to unparser_check_flags for the
-	  unparser to prevent linking error under OS X. Also add missing
-	  function prototype to silence compiler warning in the PiP code.
+	* [r3021] liblwgeom/lwgunparse.c,
+	  lwgeom/lwgeom_functions_analytic.c: Rename parser_check_flags to
+	  unparser_check_flags for the unparser to prevent linking error
+	  under OS X. Also add missing function prototype to silence
+	  compiler warning in the PiP code.
 
-2008-09-26 21:46  pramsey
+2008-09-26 21:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* harmonize sql functions with c functions for prepared geometry
+	* [r3020] lwgeom/lwgeom_geos_c.c, lwgeom/lwpostgis.sql.in.c:
+	  harmonize sql functions with c functions for prepared geometry
 
-2008-09-26 21:34  pramsey
+2008-09-26 21:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make preparedgeometry memory handling a good deal kinder (no
-	  longer losing base geometry every time)
+	* [r3019] lwgeom/lwgeom_geos_c.c: Make preparedgeometry memory
+	  handling a good deal kinder (no longer losing base geometry every
+	  time)
 
-2008-09-26 21:01  robe
+2008-09-26 21:01  Regina Obe <lr at pcorp.us>
 
-	* put index in listitems and hope for the best
+	* [r3018] doc/xsl/postgis_aggs_mm.xml.xsl: put index in listitems
+	  and hope for the best
 
-2008-09-26 19:43  pramsey
+2008-09-26 19:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* P-I-P rennovation complete: memory leaks gone, multipolygon
-	  support added
+	* [r3017] lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_rtree.c,
+	  lwgeom/lwgeom_rtree.h: P-I-P rennovation complete: memory leaks
+	  gone, multipolygon support added
 
-2008-09-26 18:59  robe
+2008-09-26 18:59  Regina Obe <lr at pcorp.us>
 
-	* correct the comments
+	* [r3016] doc/xsl/postgis_aggs_mm.xml.xsl: correct the comments
 
-2008-09-26 18:55  robe
+2008-09-26 18:55  Regina Obe <lr at pcorp.us>
 
-	* xsl that generates index listing of postgis spatial aggregates
-	  and MM compliant functions
+	* [r3015] doc/xsl/postgis_aggs_mm.xml.xsl: xsl that generates index
+	  listing of postgis spatial aggregates and MM compliant functions
 
-2008-09-26 12:45  robe
+2008-09-26 12:45  Regina Obe <lr at pcorp.us>
 
-	* Put in author/license info (hmm this is a guess - couldn't find a
-	  good example in SVN to go by). Also comment on what xsl is doing.
+	* [r3014] doc/xsl/postgis_comments.sql.xsl: Put in author/license
+	  info (hmm this is a guess - couldn't find a good example in SVN
+	  to go by). Also comment on what xsl is doing.
 
-2008-09-26 02:50  kneufeld
+2008-09-26 02:50  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated "make clean" directive to include the newly generated
-	  PDFs
+	* [r3013] doc/Makefile.in: updated "make clean" directive to
+	  include the newly generated PDFs
 
-2008-09-25 21:50  mcayland
+2008-09-25 21:50  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add parser flags to the LWGEOM to (E)WKB/WKT parsers, similar to
-	  has already been done for the (E)WKB/WKT to LWGEOM parsers.
+	* [r3012] liblwgeom/examples/unparser.c, liblwgeom/liblwgeom.h,
+	  liblwgeom/lwgeom.c, liblwgeom/lwgparse.c, liblwgeom/lwgunparse.c,
+	  liblwgeom/wktparse.h, lwgeom/lwgeom_dump.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos_c.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h: Add parser flags to the
+	  LWGEOM to (E)WKB/WKT parsers, similar to has already been done
+	  for the (E)WKB/WKT to LWGEOM parsers.
 
-2008-09-25 21:34  mcayland
+2008-09-25 21:34  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove missing variables from LWDEBUG(F) statement that would
-	  cause compilation to fail with POSTGIS_DEBUG_LEVEL > 0
+	* [r3011] lwgeom/lwgeom_rtree.c: Remove missing variables from
+	  LWDEBUG(F) statement that would cause compilation to fail with
+	  POSTGIS_DEBUG_LEVEL > 0
 
-2008-09-25 20:46  pramsey
+2008-09-25 20:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Another biggish leak into the parent context.
+	* [r3010] lwgeom/lwgeom_rtree.c: Another biggish leak into the
+	  parent context.
 
-2008-09-25 19:18  pramsey
+2008-09-25 19:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More small memory leaks removed.
+	* [r3009] lwgeom/lwgeom_rtree.c, lwgeom/lwgeom_rtree.h: More small
+	  memory leaks removed.
 
-2008-09-25 17:18  pramsey
+2008-09-25 17:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove more memory leaks from P-I-P shortcut code.
+	* [r3008] lwgeom/lwgeom_rtree.c: Remove more memory leaks from
+	  P-I-P shortcut code.
 
-2008-09-25 12:18  robe
+2008-09-25 12:18  Regina Obe <lr at pcorp.us>
 
-	* More typo fixes
+	* [r3007] doc/reference_new.xml: More typo fixes
 
-2008-09-25 12:10  robe
+2008-09-25 12:10  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_MakePointM, miscellaneous typo fixes
+	* [r3006] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_MakePointM, miscellaneous typo fixes
 
-2008-09-24 14:05  robe
+2008-09-24 14:05  Regina Obe <lr at pcorp.us>
 
-	* Put svn back in microversion
+	* [r3003] Version.config: Put svn back in microversion
 
-2008-09-24 14:01  robe
+2008-09-24 14:01  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r3002] lwgeom/lwpostgis.sql.in.c: typo
 
-2008-09-24 13:55  robe
+2008-09-24 13:55  Regina Obe <lr at pcorp.us>
 
-	* Added ST_MakePointM, removed redundant redefinition of MakePointM
-	  so docs are now in synch with actual functions.
+	* [r2999] lwgeom/lwpostgis.sql.in.c: Added ST_MakePointM, removed
+	  redundant redefinition of MakePointM so docs are now in synch
+	  with actual functions.
 
-2008-09-23 21:32  mcayland
+2008-09-23 21:32  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Use __va_copy() to pass a copy of the variadic structure to
-	  lw_vasprintf() to solve ABI difference between 32bit/64bit
-	  architectures.
+	* [r2998] liblwgeom/vsprintf.c: Use __va_copy() to pass a copy of
+	  the variadic structure to lw_vasprintf() to solve ABI difference
+	  between 32bit/64bit architectures.
 
-2008-09-23 19:59  mcayland
+2008-09-23 19:59  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove a couple more warnings when compiling with debug enabled
-	  from lwgeom_gist.c.
+	* [r2997] lwgeom/lwgeom_gist.c: Remove a couple more warnings when
+	  compiling with debug enabled from lwgeom_gist.c.
 
-2008-09-23 19:53  mcayland
+2008-09-23 19:53  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Revert commit 2990: the real bug was that the LWDEBUG statement
-	  was incorrect rather than the code - the additional read_int()
-	  was causing an off-by-one error when outputting WKB causing
-	  several regression tests to fail.
+	* [r2996] liblwgeom/lwgunparse.c: Revert commit 2990: the real bug
+	  was that the LWDEBUG statement was incorrect rather than the code
+	  - the additional read_int() was causing an off-by-one error when
+	  outputting WKB causing several regression tests to fail.
 
-2008-09-23 19:44  mcayland
+2008-09-23 19:44  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Refactor the memory management routines to account for the fact
-	  that variadic functions can't be called directly from the initial
-	  allocators. Also solve issues related to differences between the
-	  system vasprintf() (if supplied) and the liblwgeom vasprintf() by
+	* [r2995] liblwgeom/liblwgeom.h, liblwgeom/lwutil.c,
+	  liblwgeom/vsprintf.c, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h: Refactor the memory
+	  management routines to account for the fact that variadic
+	  functions can't be called directly from the initial allocators.
+	  Also solve issues related to differences between the system
+	  vasprintf() (if supplied) and the liblwgeom vasprintf() by
 	  renaming to lw_vasprintf() and using it throughout PostGIS. With
 	  all this in place, GBT#54 is fixed which is very useful when
 	  debugging ;)
 
-2008-09-23 19:07  pramsey
+2008-09-23 19:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reduce p-i-p memory leak by 50%
+	* [r2993] lwgeom/lwgeom_rtree.c: Reduce p-i-p memory leak by 50%
 
-2008-09-23 13:05  robe
+2008-09-23 13:05  Regina Obe <lr at pcorp.us>
 
-	* fix typo add more links
+	* [r2992] doc/reference_new.xml: fix typo add more links
 
-2008-09-23 13:00  robe
+2008-09-23 13:00  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Buffer
+	* [r2991] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Buffer
 
-2008-09-22 22:59  pramsey
+2008-09-22 22:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add cnt declaration where missing.
+	* [r2990] liblwgeom/lwgunparse.c: Add cnt declaration where
+	  missing.
 
-2008-09-22 17:55  robe
+2008-09-22 17:55  Regina Obe <lr at pcorp.us>
 
-	* change to xsl 1.0 plus minor indent change
+	* [r2989] doc/xsl/postgis_comments.sql.xsl: change to xsl 1.0 plus
+	  minor indent change
 
-2008-09-22 12:28  robe
+2008-09-22 12:28  Regina Obe <lr at pcorp.us>
 
-	* Add xsl file that autogenerates sql set comment statements from
+	* [r2988] doc/xsl, doc/xsl/postgis_comments.sql.xsl: Add xsl file
+	  that autogenerates sql set comment statements from
 	  reference_new.xml
 
-2008-09-22 12:18  robe
+2008-09-22 12:18  Regina Obe <lr at pcorp.us>
 
-	* Realized from my sql comment generation xsl that there is really
-	  no ST_WKTToSQL that takes an SRID and no ST_BD.. that doesn't
-	  take an SRID. Very shocking.
+	* [r2987] doc/reference_new.xml: Realized from my sql comment
+	  generation xsl that there is really no ST_WKTToSQL that takes an
+	  SRID and no ST_BD.. that doesn't take an SRID. Very shocking.
 
-2008-09-21 23:15  robe
+2008-09-21 23:15  Regina Obe <lr at pcorp.us>
 
-	* typo in st_setsrid returns geometry not boolean
+	* [r2986] doc/reference_new.xml: typo in st_setsrid returns
+	  geometry not boolean
 
-2008-09-18 22:12  pramsey
+2008-09-18 22:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add a few more generated files to ignore
+	* [r2985] liblwgeom, lwgeom: Add a few more generated files to
+	  ignore
 
-2008-09-18 22:09  pramsey
+2008-09-18 22:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Set ignore properties on generated files.
+	* [r2984] ., doc, liblwgeom, loader, lwgeom, regress, topology: Set
+	  ignore properties on generated files.
 
-2008-09-18 13:54  mcayland
+2008-09-18 13:54  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update the code for unparsing LWGEOMs to WKB/WKT so that it
-	  includes the standard simple checks: LINESTRINGs must have > 2
-	  points, POLYGONs must have closed rings and CIRCULARSTRINGs must
-	  have > 2 points and the number of points must be odd. There is
-	  still a little more work to do to allow flags to be passed into
-	  the parser to specify which checks should be enforced, much like
-	  has already been done for the parsing from WKB/WKT to LWGEOM.
+	* [r2983] liblwgeom/lwgunparse.c: Update the code for unparsing
+	  LWGEOMs to WKB/WKT so that it includes the standard simple
+	  checks: LINESTRINGs must have > 2 points, POLYGONs must have
+	  closed rings and CIRCULARSTRINGs must have > 2 points and the
+	  number of points must be odd. There is still a little more work
+	  to do to allow flags to be passed into the parser to specify
+	  which checks should be enforced, much like has already been done
+	  for the parsing from WKB/WKT to LWGEOM.
 
-2008-09-18 04:34  kneufeld
+2008-09-18 04:34  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* commit to test autobuild process and svn hooks
+	* [r2982] doc/reference_new.xml: commit to test autobuild process
+	  and svn hooks
 	  - removed extra tabs from preformatted text blocks
 
-2008-09-18 04:22  kneufeld
+2008-09-18 04:22  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* commit to test autobuild process and svn hooks
+	* [r2981] doc/installation.xml: commit to test autobuild process
+	  and svn hooks
 	  - removed extra tabs from preformatted text blocks
 
-2008-09-17 15:05  robe
+2008-09-17 15:05  Regina Obe <lr at pcorp.us>
 
-	* Add to ST_SetSRID - reference to spatial_ref_sys
+	* [r2980] doc/reference_new.xml: Add to ST_SetSRID - reference to
+	  spatial_ref_sys
 
-2008-09-17 14:46  robe
+2008-09-17 14:46  Regina Obe <lr at pcorp.us>
 
-	* Link ST_SetSRID to updated spatial_ref_sys section using cutesy
-	  anchor.
+	* [r2979] doc/reference_new.xml: Link ST_SetSRID to updated
+	  spatial_ref_sys section using cutesy anchor.
 
-2008-09-17 14:41  robe
+2008-09-17 14:41  Regina Obe <lr at pcorp.us>
 
-	* Give spatial reference systems section a cutesy anchor.
+	* [r2978] doc/using_postgis.xml: Give spatial reference systems
+	  section a cutesy anchor.
 
-2008-09-17 05:49  robe
+2008-09-17 05:49  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r2977] doc/using_postgis.xml:
 
-2008-09-17 05:48  robe
+2008-09-17 05:48  Regina Obe <lr at pcorp.us>
 
-	* typo in link
+	* [r2976] doc/using_postgis.xml: typo in link
 
-2008-09-17 04:14  robe
+2008-09-17 04:14  Regina Obe <lr at pcorp.us>
 
-	* more fleshing out of spatial ref section
+	* [r2975] doc/using_postgis.xml: more fleshing out of spatial ref
+	  section
 
-2008-09-17 04:00  robe
+2008-09-17 04:00  Regina Obe <lr at pcorp.us>
 
-	* Beef up spatial reference section. Still needs work.
+	* [r2974] doc/using_postgis.xml: Beef up spatial reference section.
+	  Still needs work.
 
-2008-09-17 03:54  kneufeld
+2008-09-17 03:54  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added an id to ST_Buffer to provide an end link for cross
-	  references.
+	* [r2973] doc/reference.xml: added an id to ST_Buffer to provide an
+	  end link for cross references.
 
-2008-09-16 22:43  mcayland
+2008-09-16 22:43  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Silence a few more compiler warnings that had appeared during my
-	  last few parser commits.
+	* [r2972] liblwgeom/liblwgeom.h, liblwgeom/lwsegmentize.c,
+	  liblwgeom/lwutil.c: Silence a few more compiler warnings that had
+	  appeared during my last few parser commits.
 
-2008-09-16 22:29  mcayland
+2008-09-16 22:29  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add an example of how the liblwgeom API can be used by other C
-	  programs to manipulate geometries and output the result.
-	  Currently the unparser.c program shows how a geometry can be
-	  constructed "on the fly" and then exported in both WKT and HEXWKB
-	  formats; however it gives programmers the potential to devise
-	  some very unique processing tools which can generate files that
-	  can be loaded into PostGIS.
+	* [r2971] liblwgeom/examples, liblwgeom/examples/Makefile,
+	  liblwgeom/examples/README, liblwgeom/examples/unparser.c: Add an
+	  example of how the liblwgeom API can be used by other C programs
+	  to manipulate geometries and output the result. Currently the
+	  unparser.c program shows how a geometry can be constructed "on
+	  the fly" and then exported in both WKT and HEXWKB formats;
+	  however it gives programmers the potential to devise some very
+	  unique processing tools which can generate files that can be
+	  loaded into PostGIS.
 
-2008-09-16 18:44  mcayland
+2008-09-16 18:44  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Move the LWGEOM-specific functions from lwgeom_sqlmm.c into
-	  liblwgeom/lwsegmentize.c to ensure that liblwgeom can exist as a
-	  standalone library.
+	* [r2970] liblwgeom/Makefile.in, liblwgeom/lwsegmentize.c,
+	  lwgeom/lwgeom_sqlmm.c: Move the LWGEOM-specific functions from
+	  lwgeom_sqlmm.c into liblwgeom/lwsegmentize.c to ensure that
+	  liblwgeom can exist as a standalone library.
 
-2008-09-16 13:35  robe
+2008-09-16 13:35  Regina Obe <lr at pcorp.us>
 
-	* Cleanup of FAQ
+	* [r2969] doc/faq.xml: Cleanup of FAQ
 
-2008-09-16 13:17  robe
+2008-09-16 13:17  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Expand
+	* [r2968] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Expand
 
-2008-09-16 01:51  robe
+2008-09-16 01:51  Regina Obe <lr at pcorp.us>
 
-	* Expand list of contributors
+	* [r2966] doc/introduction.xml: Expand list of contributors
 
-2008-09-16 01:47  robe
+2008-09-16 01:47  Regina Obe <lr at pcorp.us>
 
-	* Expand list of contributors
+	* [r2965] doc/introduction.xml: Expand list of contributors
 
-2008-09-15 11:54  robe
+2008-09-15 11:54  Regina Obe <lr at pcorp.us>
 
-	* Fix url link to proj to point to osgeo
+	* [r2963] doc/using_postgis.xml: Fix url link to proj to point to
+	  osgeo
 
-2008-09-13 05:41  kneufeld
+2008-09-13 05:41  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Moved over ST_IsRing to new PostGIS reference.
+	* [r2962] doc/reference.xml, doc/reference_new.xml: Moved over
+	  ST_IsRing to new PostGIS reference.
 	  Fixed link errors to ST_IsSimple.
 
-2008-09-12 12:12  robe
+2008-09-12 12:12  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r2960] doc/introduction.xml: typo
 
-2008-09-12 10:46  robe
+2008-09-12 10:46  Regina Obe <lr at pcorp.us>
 
-	* Spelled Kevin's last name wrong and Mateusz first name wrong.
-	  Sorry Kevin and Mateusz.
+	* [r2959] doc/introduction.xml: Spelled Kevin's last name wrong and
+	  Mateusz first name wrong. Sorry Kevin and Mateusz.
 
-2008-09-12 10:40  robe
+2008-09-12 10:40  Regina Obe <lr at pcorp.us>
 
-	* Update Credits and project links
+	* [r2958] doc/introduction.xml: Update Credits and project links
 	  1) Get rid of emails
 	  2) Change order of key contributors based on heuristics a)
 	  duration of contribution, b) frequency of contributions,
 	  c)recency of contributions, d) impact of contributions,
 	  and add some new contributors (more need to be added)
 
-2008-09-11 12:18  mcayland
+2008-09-11 12:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Reinstate the PDF documentation system based on OpenJade,
-	  including integration with autoconf. "make postgis.pdf" should
-	  now output lovely PDF format documentation :)
+	* [r2957] configure.ac, doc/Makefile.in: Reinstate the PDF
+	  documentation system based on OpenJade, including integration
+	  with autoconf. "make postgis.pdf" should now output lovely PDF
+	  format documentation :)
 
-2008-09-11 12:04  mcayland
+2008-09-11 12:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Documentation fixes to allow PDF documents to be generated from
+	* [r2956] doc/reference_new.xml, doc/using_postgis.xml:
+	  Documentation fixes to allow PDF documents to be generated from
 	  Docbook source using OpenJade - OpenJade seems a lot more strict
 	  than xsltproc when generating output :(
 
-2008-09-10 21:06  robe
+2008-09-10 21:06  Regina Obe <lr at pcorp.us>
 
-	* Get rid of left over stuff from ST_IsValid and ST_Summary copy.
+	* [r2955] doc/reference_new.xml: Get rid of left over stuff from
+	  ST_IsValid and ST_Summary copy.
 
-2008-09-10 11:57  robe
+2008-09-10 11:57  Regina Obe <lr at pcorp.us>
 
-	* example and result misaligned
+	* [r2954] doc/reference_new.xml: example and result misaligned
 
-2008-09-10 11:39  robe
+2008-09-10 11:39  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Summary and provide example.
+	* [r2953] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Summary and provide example.
 
-2008-09-10 11:28  robe
+2008-09-10 11:28  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_IsValid and provide example
+	* [r2952] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_IsValid and provide example
 
-2008-09-10 07:28  robe
+2008-09-10 07:28  Regina Obe <lr at pcorp.us>
 
-	* correct st_contain signature, other misc fixes
+	* [r2951] doc/reference_new.xml: correct st_contain signature,
+	  other misc fixes
 
-2008-09-10 06:47  robe
+2008-09-10 06:47  Regina Obe <lr at pcorp.us>
 
-	* Add ST_IsValid reference to ST_Within.
+	* [r2950] doc/reference_new.xml: Add ST_IsValid reference to
+	  ST_Within.
 
-2008-09-09 21:10  mcayland
+2008-09-09 21:10  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Allow a flags parameter to be passed into the WKT parser to
+	* [r2949] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgparse.c, liblwgeom/wktparse.h, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c:
+	  Allow a flags parameter to be passed into the WKT parser to
 	  determine which consistency checks are performed out of polygon
 	  ring closure, minimum number of points and odd number of points.
 
-2008-09-08 20:17  mcayland
+2008-09-08 20:17  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit generated versions of the new parser files for people who
-	  do not have flex or bison installed.
+	* [r2948] liblwgeom/lex.yy.c, liblwgeom/wktparse.tab.c,
+	  liblwgeom/wktparse.tab.h: Commit generated versions of the new
+	  parser files for people who do not have flex or bison installed.
 
-2008-09-08 20:16  mcayland
+2008-09-08 20:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Enhance geometry parser so that it keeps track of the current
-	  position during parsing. With a bit more work, this should allow
-	  error messages to pinpoint the exact location of an invalid
-	  geometry section or syntax error.
+	* [r2947] liblwgeom/wktparse.lex, liblwgeom/wktparse.y: Enhance
+	  geometry parser so that it keeps track of the current position
+	  during parsing. With a bit more work, this should allow error
+	  messages to pinpoint the exact location of an invalid geometry
+	  section or syntax error.
 
-2008-09-08 13:12  robe
+2008-09-08 13:12  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Translate and provide example use
+	* [r2946] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Translate and provide example use
 
-2008-09-07 11:02  mcayland
+2008-09-07 11:02  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Yet another update to the liblwgeom parser API -
+	* [r2945] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c:
+	  Yet another update to the liblwgeom parser API -
 	  lwgeom_from_ewkt() has been renamed to
 	  serialized_lwgeom_from_ewkt() to indicate that the function
 	  returns a serialied LWGEOM rather than an unserialized LWGEOM
 	  structure.
 
-2008-09-07 09:14  robe
+2008-09-07 09:14  Regina Obe <lr at pcorp.us>
 
-	* typo in funcprototype
+	* [r2944] doc/reference_new.xml: typo in funcprototype
 
-2008-09-07 09:07  robe
+2008-09-07 09:07  Regina Obe <lr at pcorp.us>
 
-	* Provide example of ST_SetPoint
+	* [r2943] doc/reference_new.xml: Provide example of ST_SetPoint
 
-2008-09-07 08:43  robe
+2008-09-07 08:43  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_SetPoint to new section
+	* [r2942] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_SetPoint to new section
 
-2008-09-06 19:12  robe
+2008-09-06 19:12  Regina Obe <lr at pcorp.us>
 
-	* change alias field names of st_contains examples
+	* [r2941] doc/reference_new.xml: change alias field names of
+	  st_contains examples
 
-2008-09-06 19:02  robe
+2008-09-06 19:02  Regina Obe <lr at pcorp.us>
 
-	* correct mm spec section of ST_Contains. Remove MM ST_Contains
-	  from old ref section
+	* [r2940] doc/reference.xml, doc/reference_new.xml: correct mm spec
+	  section of ST_Contains. Remove MM ST_Contains from old ref
+	  section
 
-2008-09-06 18:58  robe
+2008-09-06 18:58  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Contains to new section. Provide example. Minor
-	  changes to ST_Within
+	* [r2939] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Contains to new section. Provide example. Minor changes to
+	  ST_Within
 
-2008-09-04 18:28  robe
+2008-09-04 18:28  Regina Obe <lr at pcorp.us>
 
-	* Put in disclaimer on ST_Equals when dealing with invalid
-	  geometries
+	* [r2938] doc/reference_new.xml: Put in disclaimer on ST_Equals
+	  when dealing with invalid geometries
 
-2008-09-04 12:40  robe
+2008-09-04 12:40  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_NDims and ST_Dimension to new reference section
+	* [r2937] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_NDims and ST_Dimension to new reference section
 
-2008-09-04 12:08  robe
+2008-09-04 12:08  Regina Obe <lr at pcorp.us>
 
-	* minor change to example
+	* [r2936] doc/reference_new.xml: minor change to example
 
-2008-09-04 12:04  robe
+2008-09-04 12:04  Regina Obe <lr at pcorp.us>
 
-	* accidentally took out reference from ST_OrderingEquals
+	* [r2935] doc/reference_new.xml: accidentally took out reference
+	  from ST_OrderingEquals
 
-2008-09-04 11:56  robe
+2008-09-04 11:56  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Overlaps to new reference section and provide some
-	  examples
+	* [r2934] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Overlaps to new reference section and provide some examples
 
-2008-08-28 21:09  robe
+2008-08-28 21:09  Regina Obe <lr at pcorp.us>
 
-	* Fixed url links to geos and proj. Both are now osgeo projects and
-	  no longer at refractions or remotesensing. Move around
-	  instructions putting geos and proj compilation steps at the end
-	  per Mark's request
+	* [r2932] doc/installation.xml: Fixed url links to geos and proj.
+	  Both are now osgeo projects and no longer at refractions or
+	  remotesensing. Move around instructions putting geos and proj
+	  compilation steps at the end per Mark's request
 
-2008-08-27 04:34  kneufeld
+2008-08-27 04:34  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved ST_IsClosed to the new documentation template.
+	* [r2931] doc/reference.xml, doc/reference_new.xml: moved
+	  ST_IsClosed to the new documentation template.
 
-2008-08-24 04:54  kneufeld
+2008-08-24 04:54  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved ST_StartPoint and ST_EndPoint to new reference_new.xml
+	* [r2930] doc/reference.xml, doc/reference_new.xml: moved
+	  ST_StartPoint and ST_EndPoint to new reference_new.xml
 
-2008-08-22 17:47  robe
+2008-08-22 17:47  Regina Obe <lr at pcorp.us>
 
-	* another typo
+	* [r2929] doc/installation.xml: another typo
 
-2008-08-22 17:36  robe
+2008-08-22 17:36  Regina Obe <lr at pcorp.us>
 
-	* Typo
+	* [r2928] doc/installation.xml: Typo
 
-2008-08-22 17:13  robe
+2008-08-22 17:13  Regina Obe <lr at pcorp.us>
 
-	* Some changes based on Mark's comments.
+	* [r2927] doc/installation.xml: Some changes based on Mark's
+	  comments.
 
-2008-08-22 14:46  robe
+2008-08-22 14:46  Regina Obe <lr at pcorp.us>
 
-	* More typos
+	* [r2926] doc/installation.xml: More typos
 
-2008-08-22 13:37  robe
+2008-08-22 13:37  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r2925] doc/installation.xml: typo
 
-2008-08-22 13:05  robe
+2008-08-22 13:05  Regina Obe <lr at pcorp.us>
 
-	* More reordering
+	* [r2924] doc/installation.xml: More reordering
 
-2008-08-22 12:52  robe
+2008-08-22 12:52  Regina Obe <lr at pcorp.us>
 
-	* Installation got moved out of order for some reason.
+	* [r2923] doc/installation.xml: Installation got moved out of order
+	  for some reason.
 
-2008-08-22 12:32  robe
+2008-08-22 12:32  Regina Obe <lr at pcorp.us>
 
-	* Typo
+	* [r2922] doc/installation.xml: Typo
 
-2008-08-22 12:14  robe
+2008-08-22 12:14  Regina Obe <lr at pcorp.us>
 
-	* Updated the installations docs. I took some of Olivier Courtin
-	  instructions for install
+	* [r2921] doc/installation.xml: Updated the installations docs. I
+	  took some of Olivier Courtin instructions for install
 	  (http://postgis.refractions.net/pipermail/postgis-users/2008-August/020746.html)
 	  which seemed much easier to follow than the ones we currently
 	  have. Also corrected path settings we had to the install files.
 	  They are all in downloads not root of postgis as we suggested.
 
-2008-08-21 11:27  mcayland
+2008-08-21 11:27  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update PostGIS README file to account for changes in SVN trunk.
+	* [r2920] README.postgis: Update PostGIS README file to account for
+	  changes in SVN trunk.
 
-2008-08-21 10:56  mcayland
+2008-08-21 10:56  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update PostGIS SVN trunk to use the new 8.4 GiST API (where
-	  RECHECK is now specified within the consistent function, rather
-	  than being supplied as part of the operator class definition).
-	  This allows PostGIS to compile and pass regression tests on the
-	  latest PostgreSQL 8.4 CVS HEAD.
+	* [r2919] lwgeom/lwgeom_gist.c, lwgeom/lwpostgis.sql.in.c: Update
+	  PostGIS SVN trunk to use the new 8.4 GiST API (where RECHECK is
+	  now specified within the consistent function, rather than being
+	  supplied as part of the operator class definition). This allows
+	  PostGIS to compile and pass regression tests on the latest
+	  PostgreSQL 8.4 CVS HEAD.
 
-2008-08-21 08:45  mcayland
+2008-08-21 08:45  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Alter the lwgeom Makefile so that liblwgeom.a is linked directly,
-	  rather than using the -L...-l options on the command line. This
-	  is to prevent problems on OSX where PGXSadds the PostgreSQL
-	  $libdir to the PostGIS link line, causing it to link to
-	  liblwgeom.so produced by older versions of PostGIS rather than
-	  the static liblwgeom.a.
+	* [r2918] loader/Makefile.pgsql2shp.in,
+	  loader/Makefile.shp2pgsql.in, lwgeom/Makefile.in: Alter the
+	  lwgeom Makefile so that liblwgeom.a is linked directly, rather
+	  than using the -L...-l options on the command line. This is to
+	  prevent problems on OSX where PGXSadds the PostgreSQL $libdir to
+	  the PostGIS link line, causing it to link to liblwgeom.so
+	  produced by older versions of PostGIS rather than the static
+	  liblwgeom.a.
 	  
 	  Also change the PGXS CPP/LIB equivalent variables to use += so
 	  that extra compile/link options can be supplied. Per report from
 	  Robert Rainthorpe, with thanks to William Kyngesburye.
 
-2008-08-12 16:42  pramsey
+2008-08-12 16:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* move to CLASS/STYLE mapserver 5.X syntax
+	* [r2916] doc/using_postgis.xml: move to CLASS/STYLE mapserver 5.X
+	  syntax
 
-2008-08-04 11:50  robe
+2008-08-04 11:50  Regina Obe <lr at pcorp.us>
 
-	* Moved over ST_SRID, fixed a typo, added some references
+	* [r2915] doc/reference.xml, doc/reference_new.xml: Moved over
+	  ST_SRID, fixed a typo, added some references
 
-2008-08-04 11:32  robe
+2008-08-04 11:32  Regina Obe <lr at pcorp.us>
 
-	* got rid of additional entry for ST_GeomFromText - was already
-	  moved over, moved over ST_PointFromText, ST_MakePoint
+	* [r2914] doc/reference.xml, doc/reference_new.xml: got rid of
+	  additional entry for ST_GeomFromText - was already moved over,
+	  moved over ST_PointFromText, ST_MakePoint
 
-2008-08-03 15:05  pramsey
+2008-08-03 15:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Spelling changes from Mark Kolybabi.
+	* [r2913] README.postgis, doc/README, doc/faq.xml,
+	  doc/introduction.xml, doc/reference.xml, doc/release_notes.xml:
+	  Spelling changes from Mark Kolybabi.
 
-2008-08-02 22:03  mcayland
+2008-08-02 22:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add a download reference for Apache Ant, plus fix a couple more
-	  typos.
+	* [r2912] doc/installation.xml: Add a download reference for Apache
+	  Ant, plus fix a couple more typos.
 
-2008-08-02 08:41  mcayland
+2008-08-02 08:41  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Correct typo from the previous documentation commit.
+	* [r2911] doc/installation.xml: Correct typo from the previous
+	  documentation commit.
 
-2008-08-02 08:24  mcayland
+2008-08-02 08:24  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* A long overdue documentation update - update the installation
-	  section to reflect the many changes in the new SVN trunk build
-	  system.
+	* [r2909] doc/installation.xml: A long overdue documentation update
+	  - update the installation section to reflect the many changes in
+	  the new SVN trunk build system.
 
-2008-08-01 16:01  robe
+2008-08-01 16:01  Regina Obe <lr at pcorp.us>
 
-	* bad break in GeoJSON example
+	* [r2908] doc/reference_new.xml: bad break in GeoJSON example
 
-2008-08-01 15:18  robe
+2008-08-01 15:18  Regina Obe <lr at pcorp.us>
 
-	* Provide example for geojson (excerpts from postgis newsgroup
-	  thread)
+	* [r2907] doc/reference_new.xml: Provide example for geojson
+	  (excerpts from postgis newsgroup thread)
 
-2008-08-01 15:12  kneufeld
+2008-08-01 15:12  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Reverted html markup for mathematical expressions in ST_Touches
+	* [r2906] doc/html/images/st_crosses-math.gif,
+	  doc/html/images/st_touches-math.gif, doc/reference_new.xml:
+	  Reverted html markup for mathematical expressions in ST_Touches
 	  and ST_Crosses to a gif image. It seems unicode markup does not
 	  work well for both IE and Firefox. The next best thing to do is
 	  to get MathML markup working.
 
-2008-08-01 04:42  kneufeld
+2008-08-01 04:42  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* small grammar correction in ST_Touches
+	* [r2905] doc/reference_new.xml: small grammar correction in
+	  ST_Touches
 
-2008-08-01 04:26  kneufeld
+2008-08-01 04:26  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added ST_Touches examples
+	* [r2904] doc/html/image_src/st_touches01.svg,
+	  doc/html/image_src/st_touches02.svg,
+	  doc/html/image_src/st_touches03.svg,
+	  doc/html/image_src/st_touches04.svg,
+	  doc/html/image_src/st_touches05.svg,
+	  doc/html/image_src/st_touches06.svg,
+	  doc/html/images/st_touches01.png,
+	  doc/html/images/st_touches02.png,
+	  doc/html/images/st_touches03.png,
+	  doc/html/images/st_touches04.png,
+	  doc/html/images/st_touches05.png,
+	  doc/html/images/st_touches06.png, doc/reference_new.xml: added
+	  ST_Touches examples
 
-2008-07-31 12:32  robe
+2008-07-31 12:32  Regina Obe <lr at pcorp.us>
 
-	* took out kml example - causing parsing error.
+	* [r2903] doc/reference_new.xml: took out kml example - causing
+	  parsing error.
 
-2008-07-31 12:14  robe
+2008-07-31 12:14  Regina Obe <lr at pcorp.us>
 
-	* Moved over remaining geometry output functions and put in
-	  availability for each.
+	* [r2902] doc/reference.xml, doc/reference_new.xml: Moved over
+	  remaining geometry output functions and put in availability for
+	  each.
 
-2008-07-31 06:35  robe
+2008-07-31 06:35  Regina Obe <lr at pcorp.us>
 
-	* Put in Availability 1.3.4 for ST_AsGeoJSON
+	* [r2901] doc/reference.xml: Put in Availability 1.3.4 for
+	  ST_AsGeoJSON
 
-2008-07-31 06:33  kneufeld
+2008-07-31 06:33  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed small typo in ST_Touches mathematical expression
+	* [r2899] doc/reference_new.xml: fixed small typo in ST_Touches
+	  mathematical expression
 
-2008-07-31 06:29  kneufeld
+2008-07-31 06:29  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Moved over ST_Touches to new PostGIS reference. Examples
-	  forthcoming.
+	* [r2898] doc/reference.xml, doc/reference_new.xml: Moved over
+	  ST_Touches to new PostGIS reference. Examples forthcoming.
 
-2008-07-31 04:57  kneufeld
+2008-07-31 04:57  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* replaced the mathematical gif expression in ST_Crosses with
-	  simple html markup
+	* [r2897] doc/html/images/st_crosses-math.gif, doc/html/style.css,
+	  doc/reference_new.xml: replaced the mathematical gif expression
+	  in ST_Crosses with simple html markup
 
-2008-07-30 14:05  robe
+2008-07-30 14:05  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_WKTToSQL and also defined ST_GeometryFromText
-	  (didn't see it in the old docs, but its not deprecated and is a
-	  popular variant)
+	* [r2896] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_WKTToSQL and also defined ST_GeometryFromText (didn't see it
+	  in the old docs, but its not deprecated and is a popular variant)
 
-2008-07-30 11:41  robe
+2008-07-30 11:41  Regina Obe <lr at pcorp.us>
 
-	* Got rid pf superfluous redirection to deprecated functions of
+	* [r2895] lwgeom/lwpostgis.sql.in.c, lwgeom/sqlmm.sql.in: Got rid
+	  pf superfluous redirection to deprecated functions of
 	  ST_GeomFromWkb and ST_GeomFromText - now they just point directly
 	  to the c functions. Changed all FromWKB, FromText variants to
 	  point to the non-deprecated ST_GeomFrom, ST_BuildArea etc.
 	  (before they were pointing at deprecated functions)
 
-2008-07-29 15:46  robe
+2008-07-29 15:46  Regina Obe <lr at pcorp.us>
 
-	* grammatical error
+	* [r2894] doc/reference_new.xml: grammatical error
 
-2008-07-29 15:42  robe
+2008-07-29 15:42  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_Collect and ST_Union, provide examples for ST_Union.
-	  Get rid of comment about don't use ST_Union with geometry
-	  collections - seems to work fine with those.
+	* [r2893] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_Collect and ST_Union, provide examples for ST_Union. Get rid
+	  of comment about don't use ST_Union with geometry collections -
+	  seems to work fine with those.
 
-2008-07-29 12:35  robe
+2008-07-29 12:35  Regina Obe <lr at pcorp.us>
 
-	* typo in function declare for perimeter
+	* [r2892] doc/reference_new.xml: typo in function declare for
+	  perimeter
 
-2008-07-29 12:00  robe
+2008-07-29 12:00  Regina Obe <lr at pcorp.us>
 
-	* remove ST_Area from reference.xml already accounted for in
-	  reference_new.xml, move over ST_Length, ST_Perimeter
+	* [r2891] doc/reference.xml, doc/reference_new.xml: remove ST_Area
+	  from reference.xml already accounted for in reference_new.xml,
+	  move over ST_Length, ST_Perimeter
 
-2008-07-29 05:43  kneufeld
+2008-07-29 05:43  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over st_pointonsurface and provided examples.
+	* [r2890] doc/reference.xml, doc/reference_new.xml: moved over
+	  st_pointonsurface and provided examples.
 
-2008-07-29 05:11  kneufeld
+2008-07-29 05:11  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved over st_centroid and provided examples in both svg and png
-	  format. Eventually, ImageMagick will be used to generate the png
-	  files, but for now they are committed into svn.
+	* [r2889] doc/html/image_src, doc/html/image_src/st_centroid01.svg,
+	  doc/html/image_src/st_centroid02.svg,
+	  doc/html/image_src/st_centroid03.svg,
+	  doc/html/image_src/st_centroid04.svg,
+	  doc/html/images/st_centroid01.png,
+	  doc/html/images/st_centroid02.png,
+	  doc/html/images/st_centroid03.png,
+	  doc/html/images/st_centroid04.png, doc/reference.xml,
+	  doc/reference_new.xml: moved over st_centroid and provided
+	  examples in both svg and png format. Eventually, ImageMagick will
+	  be used to generate the png files, but for now they are committed
+	  into svn.
 
-2008-07-29 04:42  robe
+2008-07-29 04:42  Regina Obe <lr at pcorp.us>
 
-	* minor formatting changes, note about ST_NumPOints being an alias
-	  for ST_NPoints moving forward.
+	* [r2888] doc/reference_new.xml: minor formatting changes, note
+	  about ST_NumPOints being an alias for ST_NPoints moving forward.
 
-2008-07-28 19:05  kneufeld
+2008-07-28 19:05  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed some minor xrefences in the documentation so the autobuild
-	  doesn't throw errors.
+	* [r2887] doc/reference.xml, doc/reference_new.xml: fixed some
+	  minor xrefences in the documentation so the autobuild doesn't
+	  throw errors.
 
-2008-07-28 12:07  robe
+2008-07-28 12:07  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_GeomFromEWKT, ST_GeomFromEWKB and provide examples.
-	  Fix some miscellaneous references.
+	* [r2886] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_GeomFromEWKT, ST_GeomFromEWKB and provide examples. Fix some
+	  miscellaneous references.
 
-2008-07-28 10:03  mcayland
+2008-07-28 10:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Allow Makefile substitutions for PGCONFIG which are required if
-	  pg_config is not located in the path. Note that as part of this
-	  fix, we now need to generate topology/Makefile using autoconf.
-	  Thanks to Jorgen Austvik for the report and partial patch.
+	* [r2885] configure.ac, loader/Makefile.pgsql2shp.in,
+	  loader/Makefile.shp2pgsql.in, lwgeom/Makefile.in,
+	  topology/Makefile, topology/Makefile.in: Allow Makefile
+	  substitutions for PGCONFIG which are required if pg_config is not
+	  located in the path. Note that as part of this fix, we now need
+	  to generate topology/Makefile using autoconf. Thanks to Jorgen
+	  Austvik for the report and partial patch.
 
-2008-07-28 09:13  mcayland
+2008-07-28 09:13  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix -o option for flex; the output filename must be specified
-	  immediately after -o without any preceding white space. Per
-	  report from Jorgen Austvik.
+	* [r2884] liblwgeom/Makefile.in: Fix -o option for flex; the output
+	  filename must be specified immediately after -o without any
+	  preceding white space. Per report from Jorgen Austvik.
 
-2008-07-24 11:58  robe
+2008-07-24 11:58  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_GeomFromText and provide examples
+	* [r2883] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_GeomFromText and provide examples
 
-2008-07-24 10:22  mcayland
+2008-07-24 10:22  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add PROJ.4 version check to ensure that a minimum version of
-	  4.5.0 is installed. This is to ensure that the
+	* [r2882] configure.ac: Add PROJ.4 version check to ensure that a
+	  minimum version of 4.5.0 is installed. This is to ensure that the
 	  pj_set_searchpath() function is present (note: it was actually
 	  added in 4.4.9, however we version detect on major.minor rather
 	  than major.minor.release)
 
-2008-07-24 05:55  kneufeld
+2008-07-24 05:55  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Moved several version functions to the new PostGIS reference.
+	* [r2881] doc/Makefile.in, doc/reference.xml,
+	  doc/reference_new.xml: Moved several version functions to the new
+	  PostGIS reference.
 
-2008-07-23 17:13  kneufeld
+2008-07-23 17:13  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added some xreferences so the autobuild process does not throw
-	  errors.
+	* [r2880] doc/reference.xml, doc/reference_new.xml: added some
+	  xreferences so the autobuild process does not throw errors.
 
-2008-07-23 16:40  kneufeld
+2008-07-23 16:40  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* changed @@LAST_RELEASE_VERSION@@ with a DocBook variable so the
-	  correct version number gets substituted in all included files,
-	  not just postgis.xml
+	* [r2879] doc/installation.xml, doc/postgis.xml: changed
+	  @@LAST_RELEASE_VERSION@@ with a DocBook variable so the correct
+	  version number gets substituted in all included files, not just
+	  postgis.xml
 
-2008-07-23 12:03  robe
+2008-07-23 12:03  Regina Obe <lr at pcorp.us>
 
-	* move of ST_AsBinary,ST_AsEWKB - add examples, various minor fixes
-	  to ST_As function descriptions
+	* [r2878] doc/reference.xml, doc/reference_new.xml: move of
+	  ST_AsBinary,ST_AsEWKB - add examples, various minor fixes to
+	  ST_As function descriptions
 
-2008-07-23 10:56  robe
+2008-07-23 10:56  Regina Obe <lr at pcorp.us>
 
-	* 
+	* [r2877] doc/reference.xml:
 
-2008-07-22 13:53  robe
+2008-07-22 13:53  Regina Obe <lr at pcorp.us>
 
-	* Deprecate ST_area2d
+	* [r2876] lwgeom/lwpostgis.sql.in.c: Deprecate ST_area2d
 
-2008-07-22 11:38  robe
+2008-07-22 11:38  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_AsText, ST_AsEWKT and provide examples. Change order
-	  of ST_Multi.
+	* [r2875] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_AsText, ST_AsEWKT and provide examples. Change order of
+	  ST_Multi.
 
-2008-07-22 11:12  robe
+2008-07-22 11:12  Regina Obe <lr at pcorp.us>
 
-	* move over ST_SetSRID, ST_Transform and ST_Multi. Provide
-	  examples.
+	* [r2874] doc/reference.xml, doc/reference_new.xml: move over
+	  ST_SetSRID, ST_Transform and ST_Multi. Provide examples.
 
-2008-07-21 16:20  robe
+2008-07-21 16:20  Regina Obe <lr at pcorp.us>
 
-	* Remove ST_Area2D and replace with ST_Area - move to new section
-	  and provide example
+	* [r2873] doc/reference.xml, doc/reference_new.xml: Remove
+	  ST_Area2D and replace with ST_Area - move to new section and
+	  provide example
 
-2008-07-21 12:09  robe
+2008-07-21 12:09  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_GeometryType, ST_MakePolygon
+	* [r2871] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_GeometryType, ST_MakePolygon
 
-2008-07-21 11:38  robe
+2008-07-21 11:38  Regina Obe <lr at pcorp.us>
 
-	* delete reference to ST_Equals in reference.xml - alread in new
-	  version, include an ST_DWithin non-join join example.
+	* [r2870] doc/reference.xml, doc/reference_new.xml: delete
+	  reference to ST_Equals in reference.xml - alread in new version,
+	  include an ST_DWithin non-join join example.
 
-2008-07-18 12:23  robe
+2008-07-18 12:23  Regina Obe <lr at pcorp.us>
 
-	* Move over ST_AddPoint, ST_RemovePoint, ST_Npoints, ST_NumPoints
-	  and provide examples.
+	* [r2869] doc/reference.xml, doc/reference_new.xml: Move over
+	  ST_AddPoint, ST_RemovePoint, ST_Npoints, ST_NumPoints and provide
+	  examples.
 
-2008-07-17 14:16  robe
+2008-07-17 14:16  Regina Obe <lr at pcorp.us>
 
-	* Move ST_Reverse and add example
+	* [r2868] doc/reference.xml, doc/reference_new.xml: Move ST_Reverse
+	  and add example
 
-2008-07-17 12:14  robe
+2008-07-17 12:14  Regina Obe <lr at pcorp.us>
 
-	* Move ST_BuildArea expand on definition, provide example, Move
+	* [r2867] doc/reference.xml, doc/reference_new.xml: Move
+	  ST_BuildArea expand on definition, provide example, Move
 	  ST_BdPolyFromText and ST_BdMPolyFromText
 
-2008-07-17 11:20  robe
+2008-07-17 11:20  Regina Obe <lr at pcorp.us>
 
-	* move over ST_Within and provide example
+	* [r2866] doc/reference.xml, doc/reference_new.xml: move over
+	  ST_Within and provide example
 
-2008-07-16 08:42  mcayland
+2008-07-16 08:42  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix for segfault in ANALYZE due to incorrect use of legacy BOX
-	  type within compute_geometry_stats() (Fixes GBT#43). Thanks to
-	  Landon Fuller for the bug report and fix.
+	* [r2864] lwgeom/lwgeom_estimate.c: Fix for segfault in ANALYZE due
+	  to incorrect use of legacy BOX type within
+	  compute_geometry_stats() (Fixes GBT#43). Thanks to Landon Fuller
+	  for the bug report and fix.
 
-2008-07-16 06:42  kneufeld
+2008-07-16 06:42  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* moved ST_Envelope, complete with examples.
+	* [r2863] doc/reference.xml, doc/reference_new.xml: moved
+	  ST_Envelope, complete with examples.
 
-2008-07-16 05:10  kneufeld
+2008-07-16 05:10  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated the st_crosses method:
+	* [r2862] doc/reference_new.xml: updated the st_crosses method:
 	  made the geometry parameters lowercase and made a few changes to
 	  content.
 
-2008-07-16 05:03  kneufeld
+2008-07-16 05:03  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Moved ST_Crosses into new reference_new.xml file, complete with
-	  images.
+	* [r2861] doc/html/images/st_crosses-math.gif,
+	  doc/html/images/st_crosses01.gif,
+	  doc/html/images/st_crosses02.gif,
+	  doc/html/images/st_crosses03.gif,
+	  doc/html/images/st_crosses04.gif, doc/html/style.css,
+	  doc/reference.xml, doc/reference_new.xml: Moved ST_Crosses into
+	  new reference_new.xml file, complete with images.
 	  Updated css to use fixed-width fonts for programlistings.
 
-2008-07-16 04:55  kneufeld
+2008-07-16 04:55  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed small typo
+	* [r2860] doc/using_postgis.xml: fixed small typo
 
-2008-07-16 04:54  kneufeld
+2008-07-16 04:54  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Apparently, the <inlinegraphic> will become deprecated in a
-	  future version of DocBook. Now replaced with <inlinemediaobject>.
+	* [r2859] doc/template.xml: Apparently, the <inlinegraphic> will
+	  become deprecated in a future version of DocBook. Now replaced
+	  with <inlinemediaobject>.
 
-2008-07-15 21:20  kneufeld
+2008-07-15 21:20  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed a small typo so the autobuild process will still work.
+	* [r2858] doc/reference.xml, doc/reference_new.xml: fixed a small
+	  typo so the autobuild process will still work.
 
-2008-07-15 19:38  robe
+2008-07-15 19:38  Regina Obe <lr at pcorp.us>
 
-	* Move ST_Equals, ST_OrderingEquals - provide examples. Make
-	  Geometry - geometry
+	* [r2857] doc/reference.xml, doc/reference_new.xml,
+	  doc/template.xml: Move ST_Equals, ST_OrderingEquals - provide
+	  examples. Make Geometry - geometry
 
-2008-07-15 18:02  robe
+2008-07-15 18:02  Regina Obe <lr at pcorp.us>
 
-	* minor corrections to ST_SetSRID and UpdateGeometrySRID
+	* [r2856] doc/reference_new.xml: minor corrections to ST_SetSRID
+	  and UpdateGeometrySRID
 
-2008-07-15 17:54  robe
+2008-07-15 17:54  Regina Obe <lr at pcorp.us>
 
-	* remove includes index note for ST_MakeLine
+	* [r2855] doc/reference_new.xml: remove includes index note for
+	  ST_MakeLine
 
-2008-07-15 17:51  robe
+2008-07-15 17:51  Regina Obe <lr at pcorp.us>
 
-	* Move ST_Intersection, ST_Disjoint provide examples for both.
+	* [r2854] doc/reference.xml, doc/reference_new.xml: Move
+	  ST_Intersection, ST_Disjoint provide examples for both.
 
-2008-07-15 15:33  kneufeld
+2008-07-15 15:33  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* applied patch from Mark to fix the if/then/else so the Makefile
-	  can run on older systems (ie. FC3)
+	* [r2853] doc/Makefile.in: applied patch from Mark to fix the
+	  if/then/else so the Makefile can run on older systems (ie. FC3)
 
-2008-07-15 11:34  robe
+2008-07-15 11:34  Regina Obe <lr at pcorp.us>
 
-	* typo
+	* [r2852] doc/reference_new.xml: typo
 
-2008-07-15 11:03  robe
+2008-07-15 11:03  Regina Obe <lr at pcorp.us>
 
-	* Move ST_MakeLine from reference.xml to reference_new.xml and add
-	  an additional example to ST_MakeLine
+	* [r2851] doc/reference.xml, doc/reference_new.xml: Move
+	  ST_MakeLine from reference.xml to reference_new.xml and add an
+	  additional example to ST_MakeLine
 
-2008-07-15 06:57  kneufeld
+2008-07-15 06:57  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Started migration of the functions in reference.xml using the
-	  <variablelist> concept to a new "reference_new.xml" using
-	  DocBook's <refentry> concept. Once migration is complete,
-	  reference.xml will be removed and reference_new.xml will be
-	  renamed to reference.xml. The included template.xml file is not
-	  used, except to provide example usage of DocBook's refentry tag.
+	* [r2850] doc/Makefile.in, doc/html/images,
+	  doc/html/images/caution.png, doc/html/images/check.png,
+	  doc/html/images/important.png, doc/html/images/note.png,
+	  doc/html/images/tip.png, doc/html/images/warning.png,
+	  doc/postgis.xml, doc/reference.xml, doc/reference_new.xml,
+	  doc/release_notes.xml, doc/template.xml: Started migration of the
+	  functions in reference.xml using the <variablelist> concept to a
+	  new "reference_new.xml" using DocBook's <refentry> concept. Once
+	  migration is complete, reference.xml will be removed and
+	  reference_new.xml will be renamed to reference.xml. The included
+	  template.xml file is not used, except to provide example usage of
+	  DocBook's refentry tag.
 
-2008-07-14 21:52  pramsey
+2008-07-14 21:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated CSS from Dane Springmeyer
+	* [r2849] doc/html/style.css: Updated CSS from Dane Springmeyer
 
-2008-07-14 16:30  robe
+2008-07-14 16:30  Regina Obe <lr at pcorp.us>
 
-	* Example use case of ST_DWithin
+	* [r2847] doc/reference.xml: Example use case of ST_DWithin
 
-2008-07-14 11:40  mcayland
+2008-07-14 11:40  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Modify autoconf stylesheet logic (again) to correctly distinguish
-	  between the case where a valid docbook stylesheet is found
-	  automatically and where it is explicitly specified using the
-	  --with-xsldir option.
+	* [r2846] configure.ac: Modify autoconf stylesheet logic (again) to
+	  correctly distinguish between the case where a valid docbook
+	  stylesheet is found automatically and where it is explicitly
+	  specified using the --with-xsldir option.
 
-2008-07-14 10:41  mcayland
+2008-07-14 10:41  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Change autoconf iconv-detection code so that ICONV_LDFLAGS is
-	  explicitly set in the AC_CHECK_LIB() action-if-found section
-	  (LIBS does not get automatically set when action-if-found is
-	  set). Thanks to Olivier Courtin for the bug report.
+	* [r2845] configure.ac: Change autoconf iconv-detection code so
+	  that ICONV_LDFLAGS is explicitly set in the AC_CHECK_LIB()
+	  action-if-found section (LIBS does not get automatically set when
+	  action-if-found is set). Thanks to Olivier Courtin for the bug
+	  report.
 
-2008-07-14 10:05  mcayland
+2008-07-14 10:05  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Apply some autoconf / Makefile changes from Olivier Courtin.
-	  XSLBASE should not be checked for validity unless it has been
-	  explicitly specified using the --with-xsldir option, and we also
-	  add some friendlier messages in the documentation Makefile in
-	  case the DocBook stylesheets and/or xsltproc cannot be found.
-	  Additionally, the configure --help output has been tidied up
-	  using the AS_HELP_STRING macro.
+	* [r2844] configure.ac, doc/Makefile.in: Apply some autoconf /
+	  Makefile changes from Olivier Courtin. XSLBASE should not be
+	  checked for validity unless it has been explicitly specified
+	  using the --with-xsldir option, and we also add some friendlier
+	  messages in the documentation Makefile in case the DocBook
+	  stylesheets and/or xsltproc cannot be found. Additionally, the
+	  configure --help output has been tidied up using the
+	  AS_HELP_STRING macro.
 
-2008-07-13 23:47  pramsey
+2008-07-13 23:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Apply GeoJSON patch from Olivier Courtin.
+	* [r2842] doc/reference.xml, lwgeom/lwgeom_geojson.c,
+	  regress/geojson.sql, regress/geojson_expected: Apply GeoJSON
+	  patch from Olivier Courtin.
 
-2008-07-13 17:33  mcayland
+2008-07-13 17:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rename the new parser function ewkt_to_lwgeom() to
+	* [r2841] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c:
+	  Rename the new parser function ewkt_to_lwgeom() to
 	  lwgeon_from_ewkt() so that it matches the rest of the parser API
 
-2008-07-13 11:09  mcayland
+2008-07-13 11:09  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add some additional LWDEBUG(F) statements for debugging that I
-	  missed the first time around with the new debugging
-	  infrastructure
+	* [r2840] liblwgeom/lwgunparse.c: Add some additional LWDEBUG(F)
+	  statements for debugging that I missed the first time around with
+	  the new debugging infrastructure
 
-2008-07-13 10:50  mcayland
+2008-07-13 10:50  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* More work on improving the EWKT/B parser; remove all references
+	* [r2839] liblwgeom/liblwgeom.h, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c:
+	  More work on improving the EWKT/B parser; remove all references
 	  to allocator functions from outside of liblwgeom by generating
 	  wrapper functions with more meaningful names. As well as cleaning
 	  up the API, it also makes the code much more readable
 
-2008-07-11 10:48  robe
+2008-07-11 10:48  Regina Obe <lr at pcorp.us>
 
-	* Example uses of ST_Line_SubString
+	* [r2838] doc/reference.xml: Example uses of ST_Line_SubString
 
-2008-07-10 13:16  robe
+2008-07-10 13:16  Regina Obe <lr at pcorp.us>
 
-	* Examples of using ST_ExteriorRing and ST_NumInteriorRings
+	* [r2837] doc/reference.xml: Examples of using ST_ExteriorRing and
+	  ST_NumInteriorRings
 
-2008-07-09 11:16  robe
+2008-07-09 11:16  Regina Obe <lr at pcorp.us>
 
-	* Numerous small changes. Changed some returns 1 (TRUE) to just
-	  TRUE. Automatic casting between 0 1 and boolean no longer exists
-	  in PostgreSQL. Lets not confuse people by suggesting to them they
-	  are the same.
+	* [r2836] doc/reference.xml: Numerous small changes. Changed some
+	  returns 1 (TRUE) to just TRUE. Automatic casting between 0 1 and
+	  boolean no longer exists in PostgreSQL. Lets not confuse people
+	  by suggesting to them they are the same.
 
-2008-07-08 13:30  robe
+2008-07-08 13:30  Regina Obe <lr at pcorp.us>
 
-	* numerous changes(remove additional parent, argument list changes,
-	  multi function breakout)
+	* [r2835] doc/reference.xml: numerous changes(remove additional
+	  parent, argument list changes, multi function breakout)
 
-2008-07-08 12:01  robe
+2008-07-08 12:01  Regina Obe <lr at pcorp.us>
 
-	* Provide examples of using ST_MakePolygon in conjunction with
-	  ST_Accum and PostgreSQL ARRAY() function
+	* [r2834] doc/reference.xml: Provide examples of using
+	  ST_MakePolygon in conjunction with ST_Accum and PostgreSQL
+	  ARRAY() function
 
-2008-07-08 06:05  mleslie
+2008-07-08 06:05  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added brief descriptions to the SQL-MM curve types.
+	* [r2833] doc/using_postgis.xml: Added brief descriptions to the
+	  SQL-MM curve types.
 
-2008-07-08 05:15  kneufeld
+2008-07-08 05:15  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* modified toc top generation level param
+	* [r2832] doc/Makefile.in: modified toc top generation level param
 
-2008-07-08 05:09  kneufeld
+2008-07-08 05:09  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* split postgis.xml into manageable chunks, broken at chapter
+	* [r2831] doc/Makefile.in, doc/faq.xml, doc/installation.xml,
+	  doc/introduction.xml, doc/long_xact.xml,
+	  doc/performance_tips.xml, doc/postgis.xml, doc/reference.xml,
+	  doc/release_notes.xml, doc/reporting.xml, doc/using_postgis.xml:
+	  split postgis.xml into manageable chunks, broken at chapter
 	  divisions.
 
-2008-07-08 03:12  kneufeld
+2008-07-08 03:12  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* updated tips section to reference ST_* function names
+	* [r2830] doc/postgis.xml: updated tips section to reference ST_*
+	  function names
 
-2008-07-07 12:20  robe
+2008-07-07 12:20  Regina Obe <lr at pcorp.us>
 
-	* Example of ST_AddPoint, some fixes of non-ST references,
-	  miscellaneous indenting changes.
+	* [r2829] doc/postgis.xml: Example of ST_AddPoint, some fixes of
+	  non-ST references, miscellaneous indenting changes.
 
-2008-07-07 11:57  robe
+2008-07-07 11:57  Regina Obe <lr at pcorp.us>
 
-	* Add examples for ST_MakePolygon, correct non-st to ST references
-	  in ST_MakePolygon section
+	* [r2828] doc/postgis.xml: Add examples for ST_MakePolygon, correct
+	  non-st to ST references in ST_MakePolygon section
 
-2008-07-06 07:22  robe
+2008-07-06 07:22  Regina Obe <lr at pcorp.us>
 
-	* fixed ST_Dimension example, flipped order of conditions in WHERE
-	  on some examples (in later versions of PostgreSQL since we don't
-	  have our costs right - the planner may choose to process in order
-	  of conditions
+	* [r2827] doc/postgis.xml: fixed ST_Dimension example, flipped
+	  order of conditions in WHERE on some examples (in later versions
+	  of PostgreSQL since we don't have our costs right - the planner
+	  may choose to process in order of conditions
 
-2008-07-06 01:47  kneufeld
+2008-07-06 01:47  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* fixed typo in a WKT example.
+	* [r2826] doc/postgis.xml: fixed typo in a WKT example.
 
-2008-07-03 19:07  robe
+2008-07-03 19:07  Regina Obe <lr at pcorp.us>
 
-	* Examples of use of ST_MakeLine, correction to my ST_Collect
-	  example.
+	* [r2825] doc/postgis.xml: Examples of use of ST_MakeLine,
+	  correction to my ST_Collect example.
 
-2008-07-03 17:36  pramsey
+2008-07-03 17:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add version information to <title>
+	* [r2824] doc/postgis.xml: Add version information to <title>
 
-2008-07-03 17:08  pramsey
+2008-07-03 17:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Match version numbers to new naming conventions.
+	* [r2821] java/jdbc/Makefile, java/jdbc/build.xml: Match version
+	  numbers to new naming conventions.
 
-2008-07-03 09:28  mcayland
+2008-07-03 09:28  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add the parser build rules back into the liblwgeom Makefile, so
-	  now any changes to either the lexer or parser source files will
-	  automatically invoke a rebuild of the relevant output files
-	  during make
+	* [r2820] configure.ac, liblwgeom/Makefile.in: Add the parser build
+	  rules back into the liblwgeom Makefile, so now any changes to
+	  either the lexer or parser source files will automatically invoke
+	  a rebuild of the relevant output files during make
 
-2008-07-01 14:15  mcayland
+2008-07-01 14:15  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix liblwgeom requiring gcc to compile. By using macros and
-	  variables supplied by libtool, we can now detect the PIC flags
-	  and whether the compiler will accept additional gcc warning flags
-	  for developers
+	* [r2819] configure.ac, liblwgeom/Makefile.in: Fix liblwgeom
+	  requiring gcc to compile. By using macros and variables supplied
+	  by libtool, we can now detect the PIC flags and whether the
+	  compiler will accept additional gcc warning flags for developers
 
-2008-06-30 15:30  robe
+2008-06-30 15:30  Regina Obe <lr at pcorp.us>
 
-	* Fixed typo
+	* [r2817] doc/postgis.xml: Fixed typo
 
-2008-06-29 19:19  mcayland
+2008-06-29 19:19  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Move some PostgreSQL compatibility macros from lwgeom_pg.h into
+	* [r2816] lwgeom/lwgeom_pg.h, lwgeom/pgsql_compat.h: Move some
+	  PostgreSQL compatibility macros from lwgeom_pg.h into
 	  pgsql_compat.h which is their proper home
 
-2008-06-29 19:11  mcayland
+2008-06-29 19:11  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Split the basic geometry accessors into a separate static library
+	* [r2815] GNUmakefile, configure.ac, liblwgeom,
+	  liblwgeom/Makefile.in, liblwgeom/box2d.c, liblwgeom/lex.yy.c,
+	  liblwgeom/liblwgeom.h, liblwgeom/lwcollection.c,
+	  liblwgeom/lwcompound.c, liblwgeom/lwcurve.c,
+	  liblwgeom/lwcurvepoly.c, liblwgeom/lwgeom.c,
+	  liblwgeom/lwgeom_api.c, liblwgeom/lwgparse.c,
+	  liblwgeom/lwgunparse.c, liblwgeom/lwline.c, liblwgeom/lwmcurve.c,
+	  liblwgeom/lwmline.c, liblwgeom/lwmpoint.c, liblwgeom/lwmpoly.c,
+	  liblwgeom/lwmsurface.c, liblwgeom/lwpoint.c, liblwgeom/lwpoly.c,
+	  liblwgeom/lwutil.c, liblwgeom/measures.c, liblwgeom/ptarray.c,
+	  liblwgeom/vsprintf.c, liblwgeom/wktparse.h,
+	  liblwgeom/wktparse.lex, liblwgeom/wktparse.tab.c,
+	  liblwgeom/wktparse.tab.h, liblwgeom/wktparse.y,
+	  lwgeom/Makefile.in, lwgeom/box2d.c, lwgeom/lex.yy.c,
+	  lwgeom/liblwgeom.c, lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwcompound.c, lwgeom/lwcurve.c, lwgeom/lwcurvepoly.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_api.c, lwgeom/lwgeom_dump.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos_c.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h, lwgeom/lwgeom_sqlmm.c,
+	  lwgeom/lwgparse.c, lwgeom/lwline.c, lwgeom/lwmcurve.c,
+	  lwgeom/lwmline.c, lwgeom/lwmpoint.c, lwgeom/lwmpoly.c,
+	  lwgeom/lwmsurface.c, lwgeom/lwpoint.c, lwgeom/lwpoly.c,
+	  lwgeom/measures.c, lwgeom/ptarray.c, lwgeom/vsprintf.c,
+	  lwgeom/wktparse.h, lwgeom/wktparse.lex, lwgeom/wktparse.tab.c,
+	  lwgeom/wktparse.tab.h, lwgeom/wktparse.y, lwgeom/wktunparse.c:
+	  Split the basic geometry accessors into a separate static library
 	  liblwgeom.a; this potentially allows re-use of the liblwgeom
 	  functions from within PostGIS, or could be extended at a later
 	  date to include databases other than MySQL. This patch includes a
@@ -35436,342 +54650,445 @@
 	  options, but these can be fixed later - it seemed more important
 	  to make the warnings visible to developers.
 
-2008-06-28 05:34  robe
+2008-06-28 05:34  Regina Obe <lr at pcorp.us>
 
-	* Flesh out definition of ST_Collect and how to use it.
+	* [r2814] doc/postgis.xml: Flesh out definition of ST_Collect and
+	  how to use it.
 
-2008-06-26 02:40  kneufeld
+2008-06-26 02:40  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* ST_SnapToGrid SQL functions were referencing the deprecated
-	  SnapToGrid instead of their ST_.. equivalents.
+	* [r2812] lwgeom/lwpostgis.sql.in.c: ST_SnapToGrid SQL functions
+	  were referencing the deprecated SnapToGrid instead of their ST_..
+	  equivalents.
 
-2008-06-24 16:12  robe
+2008-06-24 16:12  Regina Obe <lr at pcorp.us>
 
-	* Fix mismatched para in intersection documentation and remove
-	  dangling command tag in Reporting Documentation Issues section.
+	* [r2811] doc/postgis.xml: Fix mismatched para in intersection
+	  documentation and remove dangling command tag in Reporting
+	  Documentation Issues section.
 
-2008-06-24 15:57  robe
+2008-06-24 15:57  Regina Obe <lr at pcorp.us>
 
-	* Definitions for st_convexhull and st_shift_longitude
+	* [r2810] doc/postgis.xml: Definitions for st_convexhull and
+	  st_shift_longitude
 
-2008-06-06 08:53  mcayland
+2008-06-06 08:53  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rearrange lwgeom/Makefile.in in terms of the liblwgeom/PostgreSQL
-	  distinction, plus remove remaining JTS reference.
+	* [r2809] lwgeom/Makefile.in: Rearrange lwgeom/Makefile.in in terms
+	  of the liblwgeom/PostgreSQL distinction, plus remove remaining
+	  JTS reference.
 
-2008-06-06 08:48  mcayland
+2008-06-06 08:48  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove JTS support from liblwpostgis; native GCJ-compiled JTS
-	  code is reported not to be reliable enough within a production
-	  environment, so well stick with GEOS.
+	* [r2808] lwgeom/lwgeom_jts.c, lwgeom/lwgeom_jts_wrapper.cpp,
+	  lwgeom/lwgeom_nojts.c: Remove JTS support from liblwpostgis;
+	  native GCJ-compiled JTS code is reported not to be reliable
+	  enough within a production environment, so well stick with GEOS.
 
-2008-06-05 16:08  mcayland
+2008-06-05 16:08  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Some more updates to lwpostgis.sql.in.c; correct a couple of
-	  missing conversions from OPAQUE_TYPE to internal (how on earth
-	  did regression tests pass with this still in place??), plus
-	  remove the UPDATE on pg_opclass to change the OID of the index
-	  storage type since we can do this by specifying a STORAGE clause
-	  instead.
+	* [r2807] lwgeom/lwpostgis.sql.in.c: Some more updates to
+	  lwpostgis.sql.in.c; correct a couple of missing conversions from
+	  OPAQUE_TYPE to internal (how on earth did regression tests pass
+	  with this still in place??), plus remove the UPDATE on pg_opclass
+	  to change the OID of the index storage type since we can do this
+	  by specifying a STORAGE clause instead.
 
-2008-06-05 14:49  mcayland
+2008-06-05 14:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove Makefile from lwgeom/ directory; it is no longer needed as
-	  it is automatically generated from lwgeom/Makefile.in
+	* [r2806] lwgeom/Makefile: Remove Makefile from lwgeom/ directory;
+	  it is no longer needed as it is automatically generated from
+	  lwgeom/Makefile.in
 
-2008-06-05 14:47  mcayland
+2008-06-05 14:47  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update new Makefile copyrights, also remove compat.h from the
-	  loader/ directory since it is now no longer needed.
+	* [r2805] loader/Makefile.pgsql2shp.in,
+	  loader/Makefile.shp2pgsql.in, loader/compat.h,
+	  loader/pgsql2shp.c, lwgeom/Makefile, lwgeom/Makefile.in: Update
+	  new Makefile copyrights, also remove compat.h from the loader/
+	  directory since it is now no longer needed.
 
-2008-06-05 14:30  mcayland
+2008-06-05 14:30  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update copyrights for configure.ac (rewritten from scratch, and
+	* [r2804] configure.ac, configure.in, macros/ac_proj4_version.m4:
+	  Update copyrights for configure.ac (rewritten from scratch, and
 	  now renamed from the deprecated form configure.in) and also the
 	  PROJ.4 version detection macro
 
-2008-06-05 12:09  mcayland
+2008-06-05 12:09  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Switch all SQL and PL/PGSQL stored procedures over to use dollar
-	  quoting instead of apostrophes for function bodies. At last, most
-	  of the stored procedures actually become readable
+	* [r2803] lwgeom/long_xact.sql.in, lwgeom/lwpostgis.sql.in.c,
+	  lwgeom/sqlmm.sql.in: Switch all SQL and PL/PGSQL stored
+	  procedures over to use dollar quoting instead of apostrophes for
+	  function bodies. At last, most of the stored procedures actually
+	  become readable
 
-2008-06-05 11:19  mcayland
+2008-06-05 11:19  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove the HAS_SCHEMA #define and all related #else code since we
-	  now guarantee to be using PostgreSQL > 7.2
+	* [r2802] lwgeom/long_xact.sql.in, lwgeom/sqldefines.h.in: Remove
+	  the HAS_SCHEMA #define and all related #else code since we now
+	  guarantee to be using PostgreSQL > 7.2
 
-2008-06-05 11:07  mcayland
+2008-06-05 11:07  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove PQunescapeBytea hack from pgsql2shp which is no longer
+	* [r2801] loader/Makefile.pgsql2shp.in, loader/PQunescapeBytea.c:
+	  Remove PQunescapeBytea hack from pgsql2shp which is no longer
 	  needed, as it was only required for versions of PostgreSQL < 7.3
 
-2008-06-05 10:51  mcayland
+2008-06-05 10:51  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove all of the pre-PostgreSQL 7.3 schema #ifdefs from
-	  lwpostgis.sql.in to make things readable once again.
+	* [r2800] lwgeom/lwpostgis.sql.in.c: Remove all of the
+	  pre-PostgreSQL 7.3 schema #ifdefs from lwpostgis.sql.in to make
+	  things readable once again.
 
-2008-06-05 10:19  mcayland
+2008-06-05 10:19  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Blast away the huge amounts of legacy C code related to
-	  PostgreSQL versions < 8.1. Next step will be to work on the SQL
-	  script files too.
+	* [r2799] lwgeom/lwgeom_btree.c, lwgeom/lwgeom_dump.c,
+	  lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwgeom_transform.c, lwgeom/lwpostgis.sql.in.c,
+	  lwgeom/pgsql_compat.h, lwgeom/sqldefines.h.in: Blast away the
+	  huge amounts of legacy C code related to PostgreSQL versions <
+	  8.1. Next step will be to work on the SQL script files too.
 
-2008-05-31 10:35  mcayland
+2008-05-31 10:35  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Provide a new text file called DEBUG explaining how to use the
-	  new debug system.
+	* [r2798] configure.in, lwgeom/DEBUG: Provide a new text file
+	  called DEBUG explaining how to use the new debug system.
 
-2008-05-31 09:56  mcayland
+2008-05-31 09:56  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit new PostGIS debugging infrastructure. These changes unify
-	  all the debug logging to use a new set of macros:
-	  LWDEBUG()/LWDEBUGF() for LWGEOM functions, and
-	  POSTGIS_DEBUG()/POSTGIS_DEBUGF() for PostgreSQL functions. To
-	  enable debugging, run configure with --enable-debug and then
-	  remake the entire project. If --enable-debug is omitted during
-	  configure, the above macros evaluate to (void)0, and hence should
-	  be removed by the compiler during optimisation. Also: contains
-	  minor warning cleanups and a fix for the ST_Dwithin SQL
-	  definition.
+	* [r2797] configure.in, lwgeom/liblwgeom.c, lwgeom/liblwgeom.h,
+	  lwgeom/long_xact.c, lwgeom/lwcollection.c, lwgeom/lwcompound.c,
+	  lwgeom/lwcurve.c, lwgeom/lwcurvepoly.c, lwgeom/lwgeom.c,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_btree.c,
+	  lwgeom/lwgeom_debug.c, lwgeom/lwgeom_dump.c,
+	  lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_functions_lrs.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_gml.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h, lwgeom/lwgeom_rtree.c,
+	  lwgeom/lwgeom_spheroid.c, lwgeom/lwgeom_sqlmm.c,
+	  lwgeom/lwgeom_transform.c, lwgeom/lwgparse.c, lwgeom/lwline.c,
+	  lwgeom/lwmpoly.c, lwgeom/lwmsurface.c, lwgeom/lwpoint.c,
+	  lwgeom/lwpoly.c, lwgeom/lwpostgis.sql.in.c, lwgeom/measures.c,
+	  lwgeom/ptarray.c, postgis_config.h.in: Commit new PostGIS
+	  debugging infrastructure. These changes unify all the debug
+	  logging to use a new set of macros: LWDEBUG()/LWDEBUGF() for
+	  LWGEOM functions, and POSTGIS_DEBUG()/POSTGIS_DEBUGF() for
+	  PostgreSQL functions. To enable debugging, run configure with
+	  --enable-debug and then remake the entire project. If
+	  --enable-debug is omitted during configure, the above macros
+	  evaluate to (void)0, and hence should be removed by the compiler
+	  during optimisation. Also: contains minor warning cleanups and a
+	  fix for the ST_Dwithin SQL definition.
 
-2008-05-28 23:03  pramsey
+2008-05-28 23:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Enhanced speed _ST_DWithin(g,g,d) that returns as soon as g and g
-	  are within d of each other, rather than using distance naively.
-	  Change ST_DWithin to use enhanced op. (Issue 20)
+	* [r2796] lwgeom/box2d.c, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_svg.c,
+	  lwgeom/lwpostgis.sql.in.c, lwgeom/measures.c: Enhanced speed
+	  _ST_DWithin(g,g,d) that returns as soon as g and g are within d
+	  of each other, rather than using distance naively. Change
+	  ST_DWithin to use enhanced op. (Issue 20)
 
-2008-05-28 21:58  pramsey
+2008-05-28 21:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix towgs84 for 31300 and 31370 (issue 23)
+	* [r2793] spatial_ref_sys.sql: Fix towgs84 for 31300 and 31370
+	  (issue 23)
 
-2008-05-28 21:47  pramsey
+2008-05-28 21:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Geomunion name change note, issue 26.
+	* [r2792] doc/postgis.xml: Geomunion name change note, issue 26.
 
-2008-05-28 21:45  pramsey
+2008-05-28 21:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bug reporting documentation (issue 27)
+	* [r2789] doc/postgis.xml: Bug reporting documentation (issue 27)
 
-2008-05-28 21:35  pramsey
+2008-05-28 21:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for issue 30, ST_Buffer doco mistake
+	* [r2787] doc/postgis.xml: Fix for issue 30, ST_Buffer doco mistake
 
-2008-05-27 15:08  mcayland
+2008-05-27 15:08  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove extra warnings related to the shp2pgsql deleted records
+	* [r2785] loader/dbfopen.c, loader/shapefil.h, loader/shpopen.c:
+	  Remove extra warnings related to the shp2pgsql deleted records
 	  patch
 
-2008-05-27 14:47  mcayland
+2008-05-27 14:47  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update new build system to include iconv detection for shp2pgsql
+	* [r2784] configure.in, loader/Makefile.shp2pgsql,
+	  loader/Makefile.shp2pgsql.in, loader/shp2pgsql.c,
+	  postgis_config.h.in: Update new build system to include iconv
+	  detection for shp2pgsql
 
-2008-05-27 03:00  pramsey
+2008-05-27 03:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for DBF files with deleted records. (#29)
+	* [r2783] ChangeLog, loader/dbfopen.c, loader/shapefil.h,
+	  loader/shp2pgsql.c: Fix for DBF files with deleted records. (#29)
 
-2008-05-22 20:43  mcayland
+2008-05-22 20:43  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Since PGXS compiles libraries with -Wall, attempt to remove as
-	  many warnings as possible. Most of these are missing function
-	  prototypes at the top of each file.
+	* [r2781] lwgeom/liblwgeom.h, lwgeom/long_xact.c, lwgeom/lwcurve.c,
+	  lwgeom/lwgeom_box.c, lwgeom/lwgeom_chip.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_rtree.c,
+	  lwgeom/lwgeom_sqlmm.c, lwgeom/lwgeom_transform.c,
+	  lwgeom/wktunparse.c: Since PGXS compiles libraries with -Wall,
+	  attempt to remove as many warnings as possible. Most of these are
+	  missing function prototypes at the top of each file.
 
-2008-05-22 14:34  mcayland
+2008-05-22 14:34  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update documentation build so that "make install" now works.
-	  Maybe this will fix the on-line website build?
+	* [r2780] configure.in, doc/Makefile.in: Update documentation build
+	  so that "make install" now works. Maybe this will fix the on-line
+	  website build?
 
-2008-05-22 14:31  mcayland
+2008-05-22 14:31  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update topology/ directory to use the new PGXS build system.
+	* [r2779] topology/Makefile, topology/topology.sql.in,
+	  topology/topology.sql.in.c: Update topology/ directory to use the
+	  new PGXS build system.
 
-2008-05-20 22:24  mcayland
+2008-05-20 22:24  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Update previous commit: add Makefile.in and remove Makefile,
-	  since Makefile is now generated from Makefile.in automatically.
+	* [r2778] doc/Makefile, doc/Makefile.in: Update previous commit:
+	  add Makefile.in and remove Makefile, since Makefile is now
+	  generated from Makefile.in automatically.
 
-2008-05-20 22:10  mcayland
+2008-05-20 22:10  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rework the documentation Makefile so that it works with the
-	  autoconf build system.
+	* [r2777] configure.in, doc/Makefile: Rework the documentation
+	  Makefile so that it works with the autoconf build system.
 
-2008-05-14 17:24  mcayland
+2008-05-14 17:24  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fixes for previous commit: missed Makefile.config target for
-	  "make clean"
+	* [r2776] GNUmakefile: Fixes for previous commit: missed
+	  Makefile.config target for "make clean"
 
-2008-05-14 17:19  mcayland
+2008-05-14 17:19  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fixes for previous commit: Alter GNUmakefile to understand that
-	  Makefile.config no longer exists, plus remove lwgeom/sqldefines.h
-	  as it is generated by autoconf
+	* [r2775] GNUmakefile, lwgeom/sqldefines.h: Fixes for previous
+	  commit: Alter GNUmakefile to understand that Makefile.config no
+	  longer exists, plus remove lwgeom/sqldefines.h as it is generated
+	  by autoconf
 
-2008-05-14 17:10  mcayland
+2008-05-14 17:10  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit new build system based upon PGXS. Due to the large number
-	  of changes, please refer to
+	* [r2774] HOWTO_RELEASE, Makefile.config.in, Version.config,
+	  autogen.sh, config.h.in, configure.in, loader/Makefile,
+	  loader/Makefile.pgsql2shp.in, loader/Makefile.shp2pgsql,
+	  loader/pgsql2shp.c, loader/shp2pgsql.c, lwgeom/Makefile,
+	  lwgeom/Makefile.in, lwgeom/Makefile.shlib, lwgeom/liblwgeom.c,
+	  lwgeom/liblwgeom.h, lwgeom/long_xact.sql.in,
+	  lwgeom/lwgeom_btree.c, lwgeom/lwgeom_dump.c,
+	  lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h,
+	  lwgeom/lwgeom_transform.c, lwgeom/lwpostgis.sql.in,
+	  lwgeom/lwpostgis.sql.in.c, lwgeom/pgsql_compat.h,
+	  lwgeom/sqldefines.h, lwgeom/sqldefines.h.in, lwgeom/sqlmm.sql.in,
+	  macros, macros/ac_proj4_version.m4, postgis_config.h.in,
+	  regress/Makefile, regress/Makefile.in, regress/run_test,
+	  regress/sql-mm-circularstring_expected.in,
+	  regress/sql-mm-compoundcurve_expected.in,
+	  regress/sql-mm-curvepoly_expected.in,
+	  regress/sql-mm-multicurve_expected.in,
+	  regress/sql-mm-multisurface_expected.in: Commit new build system
+	  based upon PGXS. Due to the large number of changes, please refer
+	  to
 	  http://postgis.refractions.net/pipermail/postgis-devel/2008-May/003010.html.
 
-2008-04-24 01:04  pramsey
+2008-04-24 01:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_AsGeoJSon patch from Olivier Courtin
+	* [r2772] ChangeLog, doc/postgis.xml, lwgeom/Makefile,
+	  lwgeom/lwgeom_chip.c, lwgeom/lwgeom_geojson.c,
+	  lwgeom/lwpostgis.sql.in, regress/Makefile, regress/geojson.sql,
+	  regress/geojson_expected: ST_AsGeoJSon patch from Olivier Courtin
 	  <olivier.courtin at camptocamp.com>.
 
-2008-04-22 14:54  pramsey
+2008-04-22 14:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* envelope doco fix
+	* [r2771] doc/postgis.xml: envelope doco fix
 
-2008-04-12 18:39  pramsey
+2008-04-12 18:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bump trunk up to 1.3.4SVN
+	* [r2770] Version.config: Bump trunk up to 1.3.4SVN
 
-2008-04-12 18:32  pramsey
+2008-04-12 18:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Versions and news for the 1.3.3 release.
+	* [r2768] ChangeLog, NEWS, README.postgis, Version.config,
+	  doc/postgis.xml: Versions and news for the 1.3.3 release.
 
-2008-04-12 16:46  pramsey
+2008-04-12 16:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update re dbf patch
+	* [r2765] ChangeLog: Update re dbf patch
 
-2008-04-12 16:44  pramsey
+2008-04-12 16:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* New -n switch to support DBF-only loading of attributes without
-	  shapes.
+	* [r2764] loader/shp2pgsql.c: New -n switch to support DBF-only
+	  loading of attributes without shapes.
 	  Submitted by Regina Obe.
 
-2008-04-12 10:16  mcayland
+2008-04-12 10:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove svn:eol-style from regress_ogc_expected; MingW requires
-	  unix line endings in order for the diff to work as expected.
+	* [r2763] regress/regress_ogc_expected: Remove svn:eol-style from
+	  regress_ogc_expected; MingW requires unix line endings in order
+	  for the diff to work as expected.
 
-2008-04-10 14:44  pramsey
+2008-04-10 14:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reduce FTDate field size to 8 bytes from 10. Matches other calls
-	  in the file
+	* [r2762] loader/pgsql2shp.c: Reduce FTDate field size to 8 bytes
+	  from 10. Matches other calls in the file
 	  now, no good explanation in code why it was 10 to start with.
 	  http://postgis.refractions.net/pipermail/postgis-users/2008-April/019169.html
 
-2008-04-10 06:40  mcayland
+2008-04-10 06:40  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Another round of PostgreSQL 8.3 fixes, this time related to
-	  arrays. Make sure that we use the supplied ArrayType pointer
-	  macros, instead of attempting to access to cast directly to
-	  ArrayType. This resolved GBT#13 where a "corrupted histogram"
-	  error is thrown when using using ST_EstimatedExtent() under 8.3.
+	* [r2761] lwgeom/lwgeom_estimate.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos_c.c,
+	  lwgeom/lwgeom_jts.c: Another round of PostgreSQL 8.3 fixes, this
+	  time related to arrays. Make sure that we use the supplied
+	  ArrayType pointer macros, instead of attempting to access to cast
+	  directly to ArrayType. This resolved GBT#13 where a "corrupted
+	  histogram" error is thrown when using using ST_EstimatedExtent()
+	  under 8.3.
 
-2008-04-09 19:52  pramsey
+2008-04-09 19:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change sr_id into an integer, per mca's suggestion.
+	* [r2760] loader/shp2pgsql.c: Change sr_id into an integer, per
+	  mca's suggestion.
 
-2008-04-08 21:36  pramsey
+2008-04-08 21:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix string literal comparison warnings: "comparison with string
-	  literal results in
+	* [r2759] loader/shp2pgsql.c: Fix string literal comparison
+	  warnings: "comparison with string literal results in
 	  unspecified behaviour"
 
-2008-04-07 20:09  pramsey
+2008-04-07 20:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename all occurances of getopt to pgis_getopt to work around
+	* [r2758] ChangeLog, loader/getopt.c, loader/getopt.h,
+	  loader/pgsql2shp.c, loader/shp2pgsql.c: Rename all occurances of
+	  getopt to pgis_getopt to work around
 	  OS/X 10.5 system function name collision.
 
-2008-04-07 19:47  pramsey
+2008-04-07 19:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix the ST_AsKML regression tests.
+	* [r2757] regress/kml.sql: Fix the ST_AsKML regression tests.
 
-2008-04-07 19:47  pramsey
+2008-04-07 19:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Allow conditional regression tests based on GEOS_VERNUM and move
+	* [r2756] lwgeom/lwpostgis.sql.in, regress/Makefile,
+	  regress/kml_expected, regress/regress_ogc.sql,
+	  regress/regress_ogc_cover.sql,
+	  regress/regress_ogc_cover_expected, regress/regress_ogc_expected:
+	  Allow conditional regression tests based on GEOS_VERNUM and move
 	  the
 	  cover/prepared tests into the appropriate buckets. Fix the
 	  AT_AsKML
 	  regression tests.
 
-2008-04-05 14:49  pramsey
+2008-04-05 14:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* remove unloved header file
+	* [r2755] lwgeom/lwgeom.h: remove unloved header file
 
-2008-03-31 11:16  mcayland
+2008-03-31 11:16  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove the code that adds share/contrib/nad to the PROJ.4 search
-	  path for PostgreSQL < 8.0 since the mechanism for determining the
-	  path has changed from earlier versions, and this was mainly for
-	  Win32 users. Also rename nad/ directory to proj/ to keep it
-	  inline with an existing PROJ.4 installation.
+	* [r2754] lwgeom/lwgeom_transform.c: Remove the code that adds
+	  share/contrib/nad to the PROJ.4 search path for PostgreSQL < 8.0
+	  since the mechanism for determining the path has changed from
+	  earlier versions, and this was mainly for Win32 users. Also
+	  rename nad/ directory to proj/ to keep it inline with an existing
+	  PROJ.4 installation.
 
-2008-03-30 19:38  pramsey
+2008-03-30 19:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* small syntax errors in ST_YMAX, etc functions
+	* [r2753] doc/postgis.xml: small syntax errors in ST_YMAX, etc
+	  functions
 
-2008-03-30 19:37  pramsey
+2008-03-30 19:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* confirm st_*min st_*max
+	* [r2752] lwgeom/lwpostgis.sql.in: confirm st_*min st_*max
 
-2008-03-28 23:24  pramsey
+2008-03-28 23:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Syntax error in sql.in
+	* [r2751] lwgeom/lwpostgis.sql.in: Syntax error in sql.in
 
-2008-03-28 21:31  pramsey
+2008-03-28 21:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed up KML patch from Eduin Carillo.
+	* [r2750] ChangeLog, lwgeom/lwgeom_kml.c, lwgeom/lwpostgis.sql.in:
+	  Fixed up KML patch from Eduin Carillo.
 
-2008-03-28 21:28  pramsey
+2008-03-28 21:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Enable the USE_PROJ and GEOS_VERNUM macros to propogate into
-	  lwpostgis.sql.in
+	* [r2749] lwgeom/Makefile: Enable the USE_PROJ and GEOS_VERNUM
+	  macros to propogate into lwpostgis.sql.in
 
-2008-03-28 21:10  pramsey
+2008-03-28 21:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Revert KML patch, bad puppy!
+	* [r2748] ChangeLog, lwgeom/lwgeom_kml.c, lwgeom/lwpostgis.sql.in:
+	  Revert KML patch, bad puppy!
 
-2008-03-28 21:04  pramsey
+2008-03-28 21:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added KML patch from Eduin Carillo.
+	* [r2747] ChangeLog, lwgeom/lwgeom_kml.c, lwgeom/lwpostgis.sql.in:
+	  Added KML patch from Eduin Carillo.
 	  http://code.google.com/p/postgis/issues/detail?id=17
 
-2008-03-28 20:18  pramsey
+2008-03-28 20:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed ifeq to ifndef for CXX macro test.
+	* [r2746] lwgeom/Makefile: Changed ifeq to ifndef for CXX macro
+	  test.
 
-2008-03-28 20:17  pramsey
+2008-03-28 20:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Removed unloved and un-used geos_version.sh file.
+	* [r2745] geos_version.sh: Removed unloved and un-used
+	  geos_version.sh file.
 
-2008-03-28 20:03  pramsey
+2008-03-28 20:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added SVN support patch from Dr. Marco Hugentobler, as described
-	  in
+	* [r2744] ChangeLog, doc/postgis.xml, lwgeom/lwgeom_svg.c: Added
+	  SVN support patch from Dr. Marco Hugentobler, as described in
 	  http://postgis.refractions.net/pipermail/postgis-devel/2008-February/002883.html
 
-2008-03-28 19:25  pramsey
+2008-03-28 19:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added GEOS_VERNUM macro and protected GEOS 3.0/3.1 functionality
+	* [r2743] ChangeLog, Makefile.config.in, configure.in,
+	  lwgeom/Makefile, lwgeom/lwgeom_geos_c.c, lwgeom/lwpostgis.sql.in:
+	  Added GEOS_VERNUM macro and protected GEOS 3.0/3.1 functionality
 	  behind it.
 
-2008-03-28 18:55  mcayland
+2008-03-28 18:55  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix crash caused by double-free in LWGEOM_same - we were
-	  accidentally freeing the 1st parameter twice instead of freeing
-	  the second parameter. Thanks to Cliff Wright for the bug report.
+	* [r2742] lwgeom/lwgeom_functions_basic.c: Fix crash caused by
+	  double-free in LWGEOM_same - we were accidentally freeing the 1st
+	  parameter twice instead of freeing the second parameter. Thanks
+	  to Cliff Wright for the bug report.
 
-2008-03-28 17:05  pramsey
+2008-03-28 17:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Removed regress_ogc_prep from tests temporarily until a new GEOS
-	  is released with support
+	* [r2741] regress/Makefile: Removed regress_ogc_prep from tests
+	  temporarily until a new GEOS is released with support
 	  for new predicates.
 
-2008-03-27 21:18  mcayland
+2008-03-27 21:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix bug with |>> and <<| operators - the BOX2D overabove and
-	  overbelow functions were actually wrong, causing index scans to
-	  return the wrong results. Per bug report from Tomas Karlsson.
+	* [r2740] lwgeom/lwgeom_box2dfloat4.c: Fix bug with |>> and <<|
+	  operators - the BOX2D overabove and overbelow functions were
+	  actually wrong, causing index scans to return the wrong results.
+	  Per bug report from Tomas Karlsson.
 
-2008-03-26 03:40  pramsey
+2008-03-26 03:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change link to postgis bug tracker
+	* [r2739] doc/postgis.xml: Change link to postgis bug tracker
 
-2008-03-21 08:17  mcayland
+2008-03-21 08:17  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Resolve GBT bugs #2,#3 and #9 related to crashes when calling
+	* [r2738] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos_c.c:
+	  Resolve GBT bugs #2,#3 and #9 related to crashes when calling
 	  aggregate functions under PostgreSQL 8.3 (all earlier versions
 	  would not see the error). This was due to missing more VARSIZE
 	  macros in the PostgreSQL 8.3 conversion. The complete list of
@@ -35780,17 +55097,23 @@
 	  ST_MakeLine(), ST_Polygonize(), ST_Union()/ST_GeomUnion(),
 	  ST_MakePolygon()/ST_Polygon().
 
-2008-02-12 15:05  pramsey
+2008-02-12 15:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Document ST_SimplifyPreserveTopology(geometry,float)
+	* [r2737] doc/postgis.xml: Document
+	  ST_SimplifyPreserveTopology(geometry,float)
 
-2008-02-12 15:03  pramsey
+2008-02-12 15:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added hook to GEOSTopologyPreserveSimplify
+	* [r2736] ChangeLog, lwgeom/lwgeom_geos_c.c,
+	  lwgeom/lwpostgis.sql.in: Added hook to
+	  GEOSTopologyPreserveSimplify
 
-2008-01-29 01:24  benjubb
+2008-01-29 01:24  Ben Jubb <benjubb at refractions.net>
 
-	* Changed the interface for the GEOS prepared predicates.
+	* [r2735] lwgeom/lwgeom_geos_c.c, lwgeom/lwpostgis.sql.in,
+	  regress/Makefile, regress/regress_ogc_prep.sql,
+	  regress/regress_ogc_prep_expected: Changed the interface for the
+	  GEOS prepared predicates.
 	  ST_contains, ST_containsProperly, ST_covers, and ST_intersects
 	  are now overloaded.
 	  The new arguments style is ( geometry, geometry, integer). The
@@ -35800,24 +55123,25 @@
 	  side-steps the issue of determining when the identity of the
 	  first geometry changes.
 
-2008-01-22 19:44  benjubb
+2008-01-22 19:44  Ben Jubb <benjubb at refractions.net>
 
-	* Ammended to include prepared geometry cache code in scope of
-	  PREPARED_GEOM symbol.
+	* [r2734] lwgeom/lwgeom_geos_c.c: Ammended to include prepared
+	  geometry cache code in scope of PREPARED_GEOM symbol.
 
-2008-01-22 00:24  benjubb
+2008-01-22 00:24  Ben Jubb <benjubb at refractions.net>
 
-	* Modified to check version of GEOS and stub out prepared
-	  predicates if GEOS is prior to 3.1.0
+	* [r2733] lwgeom/lwgeom_geos_c.c: Modified to check version of GEOS
+	  and stub out prepared predicates if GEOS is prior to 3.1.0
 
-2008-01-18 18:57  benjubb
+2008-01-18 18:57  Ben Jubb <benjubb at refractions.net>
 
-	* Made some minor changes suggested by Mark Cave-Ayland.
+	* [r2732] lwgeom/lwgeom_geos_c.c: Made some minor changes suggested
+	  by Mark Cave-Ayland.
 
-2008-01-18 01:05  benjubb
+2008-01-18 01:05  Ben Jubb <benjubb at refractions.net>
 
-	* Added new function wrappers to expose prepared geometry
-	  predicates:
+	* [r2731] lwgeom/lwpostgis.sql.in: Added new function wrappers to
+	  expose prepared geometry predicates:
 	  ST_ContainsPrepared( geometry, geometry )
 	  ST_ContainsProperlyPrepared( geometry, geometry )
 	  ST_CoversPrepared( geometry, geometry )
@@ -35826,18 +55150,20 @@
 	  as well, this function was added, for orthogonality:
 	  ST_ContainsProperly( geometry, geometry )
 
-2008-01-18 01:04  benjubb
+2008-01-18 01:04  Ben Jubb <benjubb at refractions.net>
 
-	* Added new functions to lwgeom_geos_c.c to support prepared
-	  geometry predicates.
+	* [r2730] lwgeom/lwgeom_geos_c.c: Added new functions to
+	  lwgeom_geos_c.c to support prepared geometry predicates.
 	  bool containsPrepared( geom, geom)
 	  bool containsProperlyPrepared( geom, geom)
 	  bool coversPrepared( geom, geom)
 	  bool intersectsPrepared( geom, geom)
 
-2008-01-18 00:59  benjubb
+2008-01-18 00:59  Ben Jubb <benjubb at refractions.net>
 
-	* Tests for the prepared geometry predicates.
+	* [r2729] regress/regress_ogc_prep.sql,
+	  regress/regress_ogc_prep_expected: Tests for the prepared
+	  geometry predicates.
 	  The tests were copied from regress_ogc, and modified.
 	  Most of the tests use a pattern where the same function is
 	  invoked three times with the same argument.
@@ -35846,92 +55172,102 @@
 	  fails for one case. This
 	  probably due to a bug in GEOS.
 
-2008-01-11 15:05  mcayland
+2008-01-11 15:05  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Bump version number to 1.3.3SVN for next development cycle.
+	* [r2727] Version.config: Bump version number to 1.3.3SVN for next
+	  development cycle.
 
-2008-01-11 15:04  mcayland
+2008-01-11 15:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rewrite the pgsql2shp connection string code so that it uses a
-	  connection string, rather than setting environment variables.
-	  MingW-compiled and MSVC-compiled apps seem to have great problems
-	  passing the variables to each other, causing regression to fail.
-	  With this fix (and a Makefile tweak), it is now possible to run a
+	* [r2726] loader/pgsql2shp.c, lwgeom/Makefile: Rewrite the
+	  pgsql2shp connection string code so that it uses a connection
+	  string, rather than setting environment variables. MingW-compiled
+	  and MSVC-compiled apps seem to have great problems passing the
+	  variables to each other, causing regression to fail. With this
+	  fix (and a Makefile tweak), it is now possible to run a
 	  MingW-compiled PostGIS against an MSVC compiled PostgreSQL and
 	  pass all regression tests.
 
-2007-12-03 23:10  pramsey
+2007-12-03 23:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix up bad entities and screwed up programlistings from some
-	  previous pretty-printing
+	* [r2725] doc/postgis.xml: Fix up bad entities and screwed up
+	  programlistings from some previous pretty-printing
 	  run on the XML.
 
-2007-12-02 20:37  mcayland
+2007-12-02 20:37  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit updated versions of the ChangeLog and README.postgis (also
-	  change some references in README.postgis from "run as root" to
-	  "run as postgres", and correct the --with-pgsql and --with-geos
-	  documentation)
+	* [r2723] ChangeLog, README.postgis: Commit updated versions of the
+	  ChangeLog and README.postgis (also change some references in
+	  README.postgis from "run as root" to "run as postgres", and
+	  correct the --with-pgsql and --with-geos documentation)
 
-2007-11-30 18:19  pramsey
+2007-11-30 18:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added release notes.
+	* [r2722] NEWS, doc/postgis.xml: Added release notes.
 
-2007-11-30 13:04  mcayland
+2007-11-30 13:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix the (E)WKB parser so that it performs validation checks in
-	  the same way as the WKT parser, e.g. ensure POLYGON rings are
-	  closed, LINESTRINGs consist of at least 2 points and that curves
-	  have at least 3 points. As discovered when looking simplify() bug
-	  submitted by Ivan Mincik.
+	* [r2721] lwgeom/lwgparse.c: Fix the (E)WKB parser so that it
+	  performs validation checks in the same way as the WKT parser,
+	  e.g. ensure POLYGON rings are closed, LINESTRINGs consist of at
+	  least 2 points and that curves have at least 3 points. As
+	  discovered when looking simplify() bug submitted by Ivan Mincik.
 
-2007-11-27 22:39  mcayland
+2007-11-27 22:39  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rename the existing get_int32() and get_uint32() functions to
-	  lw_get_int32() and lw_get_uint32() respectively in order to avoid
-	  a collision with functions of the same name in newer versions of
-	  OS X. This should resolve the problem with PostGIS crashing on
-	  some OS X installations. Many thanks to William Kyngesburye and
-	  others for resolving this issue.
+	* [r2719] lwgeom/liblwgeom.h, lwgeom/lwcurve.c,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_pg.c, lwgeom/lwline.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c: Rename the existing
+	  get_int32() and get_uint32() functions to lw_get_int32() and
+	  lw_get_uint32() respectively in order to avoid a collision with
+	  functions of the same name in newer versions of OS X. This should
+	  resolve the problem with PostGIS crashing on some OS X
+	  installations. Many thanks to William Kyngesburye and others for
+	  resolving this issue.
 
-2007-11-27 22:19  mcayland
+2007-11-27 22:19  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Extend the PROJ.4 search path to include
-	  $sharedir/contrib/postgis/nad when looking for grid files. This
-	  is mainly to allow Win32 builds to find grid files without having
-	  to use a PROJ.4 DLL compiled containing a fixed path.
+	* [r2718] lwgeom/lwgeom_transform.c: Extend the PROJ.4 search path
+	  to include $sharedir/contrib/postgis/nad when looking for grid
+	  files. This is mainly to allow Win32 builds to find grid files
+	  without having to use a PROJ.4 DLL compiled containing a fixed
+	  path.
 
-2007-11-23 10:42  mcayland
+2007-11-23 10:42  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Apply Tom Glancy's patch to shp2pgsql which corrects an
-	  off-by-one error in the field_width calculation when determining
-	  which SQL numeric type is required depending upon the length of
-	  the corresponding shapefile field. This should eliminate various
-	  out of range error messages that may have appeared when
-	  attempting to load a converted shapefile into PostgreSQL.
+	* [r2717] loader/shp2pgsql.c: Apply Tom Glancy's patch to shp2pgsql
+	  which corrects an off-by-one error in the field_width calculation
+	  when determining which SQL numeric type is required depending
+	  upon the length of the corresponding shapefile field. This should
+	  eliminate various out of range error messages that may have
+	  appeared when attempting to load a converted shapefile into
+	  PostgreSQL.
 
-2007-11-23 10:24  mcayland
+2007-11-23 10:24  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit a first attempt at an Ant build.xml file for the PostGIS
-	  JDBC driver so finally all the Java drivers build with Ant for
-	  consistency, plus we eliminate numerous cross platform problems.
-	  As it stands, the build.xml file supports only the standard JDBC
-	  driver - if you wish to use a JTS-enabled JDBC driver or run the
-	  online regression tests then you must still use the Makefile. Any
-	  help porting the remaining parts of the Makefile would be
-	  appreciated.
+	* [r2716] java/jdbc/Makefile, java/jdbc/build.xml: Commit a first
+	  attempt at an Ant build.xml file for the PostGIS JDBC driver so
+	  finally all the Java drivers build with Ant for consistency, plus
+	  we eliminate numerous cross platform problems. As it stands, the
+	  build.xml file supports only the standard JDBC driver - if you
+	  wish to use a JTS-enabled JDBC driver or run the online
+	  regression tests then you must still use the Makefile. Any help
+	  porting the remaining parts of the Makefile would be appreciated.
 
-2007-10-29 16:29  mcayland
+2007-10-29 16:29  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Apply parts of Charlie Savage's MSVC patch - mainly tidying up
-	  variable allocations so they appear at the start of functions,
-	  but also making better use of the pj_get_errno_ref() which gets
-	  rid of the auto-import warnings on MingW.
+	* [r2715] loader/pgsql2shp.c, lwgeom/lwcurve.c,
+	  lwgeom/lwgeom_dump.c, lwgeom/lwgeom_rtree.c,
+	  lwgeom/lwgeom_transform.c: Apply parts of Charlie Savage's MSVC
+	  patch - mainly tidying up variable allocations so they appear at
+	  the start of functions, but also making better use of the
+	  pj_get_errno_ref() which gets rid of the auto-import warnings on
+	  MingW.
 
-2007-10-29 14:22  mcayland
+2007-10-29 14:22  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove version numbers from liblwgeom references in lwpostgis.sql
-	  as per
+	* [r2714] lwgeom/Makefile: Remove version numbers from liblwgeom
+	  references in lwpostgis.sql as per
 	  http://postgis.refractions.net/pipermail/postgis-devel/2007-September/002764.html.
 	  This should help make upgrades a lot easier for people since it
 	  removes the need to change the SQL function definitions when
@@ -35940,257 +55276,344 @@
 	  remove support for PostgreSQL < 8.0, we can use PGXS instead and
 	  thus remove the redundant shared library code from PostGIS.
 
-2007-10-29 13:44  mcayland
+2007-10-29 13:44  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit Charlie Savage's patches (with additional comments) to the
-	  bounding box/envelope functions to ensure that valid geometries
-	  are always returned; in more specific terms, if a bounding box is
-	  a point then a POINT is returned, and if a bounding box is
-	  1-dimensional a LINESTRING is returned. Otherwise a POLYGON is
-	  returned as per the old behaviour. For details see the thread in
-	  the postgis-users archives Sept 2007 'How to get the centroid of
-	  an bounding box using st_extent'.
+	* [r2713] lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_box3d.c,
+	  lwgeom/lwgeom_functions_basic.c: Commit Charlie Savage's patches
+	  (with additional comments) to the bounding box/envelope functions
+	  to ensure that valid geometries are always returned; in more
+	  specific terms, if a bounding box is a point then a POINT is
+	  returned, and if a bounding box is 1-dimensional a LINESTRING is
+	  returned. Otherwise a POLYGON is returned as per the old
+	  behaviour. For details see the thread in the postgis-users
+	  archives Sept 2007 'How to get the centroid of an bounding box
+	  using st_extent'.
 
-2007-10-29 12:34  mcayland
+2007-10-29 12:34  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix broken error message when attempting to deserialise a type
-	  other than a point; the message should now correctly show the
-	  name of the offending type. Patch supplied by Charlie Savage.
+	* [r2712] lwgeom/lwpoint.c: Fix broken error message when
+	  attempting to deserialise a type other than a point; the message
+	  should now correctly show the name of the offending type. Patch
+	  supplied by Charlie Savage.
 
-2007-10-23 00:19  pramsey
+2007-10-23 00:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* KML credits patch <yecarrillo>
+	* [r2711] CREDITS, lwgeom/lwgeom_kml.c, regress/kml.sql: KML
+	  credits patch <yecarrillo>
 
-2007-10-10 21:27  mcayland
+2007-10-10 21:27  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Apply extra fixes for the reworked AsGML() function to ensure
-	  that enough memory is allocated for the GML output. Patch
-	  supplied by Barbara Phillipot.
+	* [r2710] lwgeom/lwgeom_gml.c: Apply extra fixes for the reworked
+	  AsGML() function to ensure that enough memory is allocated for
+	  the GML output. Patch supplied by Barbara Phillipot.
 
-2007-09-28 10:18  mcayland
+2007-09-28 10:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix a mistake in my refactoring of the AsGML() patch for GML3
-	  support - the detoasted geometry is now the second argument
-	  rather than the first. Per report from Olivier Courtin.
+	* [r2709] lwgeom/lwgeom_gml.c: Fix a mistake in my refactoring of
+	  the AsGML() patch for GML3 support - the detoasted geometry is
+	  now the second argument rather than the first. Per report from
+	  Olivier Courtin.
 
-2007-09-19 05:01  pramsey
+2007-09-19 05:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Applied patch from Charlie Savage to make ST_Envelope return a
-	  POINT
+	* [r2708] lwgeom/lwgeom_functions_basic.c: Applied patch from
+	  Charlie Savage to make ST_Envelope return a POINT
 	  when the input geometry is a POINT or a one-part MULTIPOINT.
 
-2007-09-06 16:03  mcayland
+2007-09-06 16:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Commit modified version of Barbara Phillipot's GML patch to fix
-	  existing output to make it GML2 compliant, plus add GML3 output
-	  capability
+	* [r2707] doc/postgis.xml, lwgeom/lwgeom_gml.c,
+	  lwgeom/lwpostgis.sql.in: Commit modified version of Barbara
+	  Phillipot's GML patch to fix existing output to make it GML2
+	  compliant, plus add GML3 output capability
 
-2007-08-22 15:09  pramsey
+2007-08-22 15:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Rename ST_GeomUnion to ST_Union in docs and ST_MemGeomUnion to
+	* [r2700] doc/postgis.xml, lwgeom/lwpostgis.sql.in: Rename
+	  ST_GeomUnion to ST_Union in docs and ST_MemGeomUnion to
 	  ST_MemUnion in
 	  .sql.
 
-2007-08-21 23:02  mcayland
+2007-08-21 23:02  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix crash when calling ST_EndPoint caused by a double-free in
-	  LWGEOM_endpoint_linestring. This bug has been there for a while -
-	  thanks to Eric Francois for the bug report.
+	* [r2699] lwgeom/lwgeom_ogc.c: Fix crash when calling ST_EndPoint
+	  caused by a double-free in LWGEOM_endpoint_linestring. This bug
+	  has been there for a while - thanks to Eric Francois for the bug
+	  report.
 
-2007-08-15 14:39  snowman
+2007-08-15 14:39  Stephen Frost <sfrost at snowman.net>
 
-	* - Include levenshtein difference in rating when doing city/state
+	* [r2694] extras/tiger_geocoder/geocode/geocode_location.sql: -
+	  Include levenshtein difference in rating when doing city/state
 	  match.
 
-2007-08-13 16:30  pramsey
+2007-08-13 16:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Increment version number to 1.3.2 for next development cycle
+	* [r2693] Version.config: Increment version number to 1.3.2 for
+	  next development cycle
 
-2007-08-13 16:12  pramsey
+2007-08-13 16:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Version flip up to 1.3.1
+	* [r2691] ChangeLog, HOWTO_RELEASE, NEWS, README.postgis,
+	  Version.config, doc/postgis.xml: Version flip up to 1.3.1
 
-2007-08-13 15:51  mcayland
+2007-08-13 15:51  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fixed spelling error for the word "geometry" thanks to Regina
-	  Obe, plus added comment about initial PostgreSQL 8.3 support.
+	* [r2690] doc/postgis.xml: Fixed spelling error for the word
+	  "geometry" thanks to Regina Obe, plus added comment about initial
+	  PostgreSQL 8.3 support.
 
-2007-08-13 07:27  mcayland
+2007-08-13 07:27  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* This time really fix the documentation missing tag problem...
+	* [r2689] doc/postgis.xml: This time really fix the documentation
+	  missing tag problem...
 
-2007-08-13 07:14  mcayland
+2007-08-13 07:14  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix documentation since an error in the 1.3.0 release notes xml
-	  caused the build to fail (this may need author review)
+	* [r2688] doc/postgis.xml: Fix documentation since an error in the
+	  1.3.0 release notes xml caused the build to fail (this may need
+	  author review)
 
-2007-08-13 07:06  mcayland
+2007-08-13 07:06  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove warning about unused variable in lwgeom.c (it was a
-	  leftover from the PostgreSQL 8.3 compatibility patch)
+	* [r2687] lwgeom/lwgeom.c: Remove warning about unused variable in
+	  lwgeom.c (it was a leftover from the PostgreSQL 8.3 compatibility
+	  patch)
 
-2007-08-09 22:50  mleslie
+2007-08-09 22:50  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added release notes and updated version numbers and release
-	  dates.
+	* [r2684] ChangeLog, NEWS, README.postgis, Version.config,
+	  doc/postgis.xml: Added release notes and updated version numbers
+	  and release dates.
 
-2007-08-09 22:19  mleslie
+2007-08-09 22:19  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Moved the intersects method back to the original definition and
-	  disabled the new apparently broken implementation.
+	* [r2682] lwgeom/lwgeom_jts.c: Moved the intersects method back to
+	  the original definition and disabled the new apparently broken
+	  implementation.
 
-2007-08-09 16:57  mleslie
+2007-08-09 16:57  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Bumped the version number to RC5.
+	* [r2681] Version.config: Bumped the version number to RC5.
 
-2007-08-09 16:56  mleslie
+2007-08-09 16:56  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Updated the regression tests for curved geoms to avoid the byte
-	  ordering problems.
+	* [r2680] regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected.in,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected.in,
+	  regress/sql-mm-curvepoly.sql,
+	  regress/sql-mm-curvepoly_expected.in,
+	  regress/sql-mm-multicurve.sql,
+	  regress/sql-mm-multicurve_expected.in,
+	  regress/sql-mm-multisurface.sql,
+	  regress/sql-mm-multisurface_expected.in: Updated the regression
+	  tests for curved geoms to avoid the byte ordering problems.
 
-2007-08-03 20:58  mleslie
+2007-08-03 20:58  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Removed an unused function that was erroneously committed.
+	* [r2679] lwgeom/lwgeom_jts_wrapper.cpp: Removed an unused function
+	  that was erroneously committed.
 
-2007-08-02 19:58  mleslie
+2007-08-02 19:58  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added PreparedGeometry and caching support to the intersects
-	  function in the jts connector. Created wrapper functions for the
+	* [r2678] lwgeom/lwgeom_jts.c, lwgeom/lwgeom_jts_wrapper.cpp: Added
+	  PreparedGeometry and caching support to the intersects function
+	  in the jts connector. Created wrapper functions for the
 	  PreparedGeometry functionality.
 
-2007-08-02 19:57  mleslie
+2007-08-02 19:57  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Removed a call to the deprecated point_in_ring function.
+	* [r2677] lwgeom/lwgeom_functions_analytic.c: Removed a call to the
+	  deprecated point_in_ring function.
 
-2007-07-31 20:40  mleslie
+2007-07-31 20:40  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Updated the version numbers.
+	* [r2672] Version.config: Updated the version numbers.
 
-2007-07-26 18:55  mleslie
+2007-07-26 18:55  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Applyed Michael Fuhrs patch to fix the reserved word issue
-	  against PostgreSQL 8.3.
+	* [r2671] lwgeom/long_xact.sql.in: Applyed Michael Fuhrs patch to
+	  fix the reserved word issue against PostgreSQL 8.3.
 
-2007-07-23 21:43  mleslie
+2007-07-23 21:43  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Fixed the FP_LTEQ macro to accomodate values significantly larger
-	  that zero.
+	* [r2669] lwgeom/liblwgeom.h: Fixed the FP_LTEQ macro to accomodate
+	  values significantly larger that zero.
 
-2007-07-23 18:52  mleslie
+2007-07-23 18:52  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added the covers and coveredby functions to the jts connector.
+	* [r2668] lwgeom/lwgeom_jts.c: Added the covers and coveredby
+	  functions to the jts connector.
 
-2007-07-23 16:29  mleslie
+2007-07-23 16:29  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Updated the loader to create the index after the data has been
-	  loaded.
+	* [r2667] loader/shp2pgsql.c: Updated the loader to create the
+	  index after the data has been loaded.
 
-2007-07-20 04:29  pramsey
+2007-07-20 04:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix some ST_ declarations that were missing.
+	* [r2666] lwgeom/lwpostgis.sql.in: Fix some ST_ declarations that
+	  were missing.
 
-2007-07-18 15:57  mleslie
+2007-07-18 15:57  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Applying Michael Fuhrs patch to correct my attrocious selling.
+	* [r2665] doc/postgis.xml: Applying Michael Fuhrs patch to correct
+	  my attrocious selling.
 
-2007-07-16 18:53  mleslie
+2007-07-16 18:53  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added notes about the implicit index operators on the relational
-	  functions.
+	* [r2664] doc/postgis.xml: Added notes about the implicit index
+	  operators on the relational functions.
 
-2007-07-16 18:26  mleslie
+2007-07-16 18:26  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Resurrected the ST_LineToCurve regression tests, but commented
+	* [r2663] regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-compoundcurve.sql, regress/sql-mm-curvepoly.sql,
+	  regress/sql-mm-multicurve.sql, regress/sql-mm-multisurface.sql:
+	  Resurrected the ST_LineToCurve regression tests, but commented
 	  them out until ST_SnapToGrid excepts curves.
 
-2007-07-16 18:06  mleslie
+2007-07-16 18:06  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Upgraded the escaping of quotes from the deprecated backslashing
-	  to the doubling of quotes.
+	* [r2662] loader/shp2pgsql.c: Upgraded the escaping of quotes from
+	  the deprecated backslashing to the doubling of quotes.
 
-2007-07-13 05:48  mcayland
+2007-07-13 05:48  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Rollback experimental shp2pgsql escaping change that accidently
-	  got included in the last commit :(
+	* [r2657] loader/shp2pgsql.c: Rollback experimental shp2pgsql
+	  escaping change that accidently got included in the last commit
+	  :(
 
-2007-07-13 05:42  mcayland
+2007-07-13 05:42  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Correct previous commit for older PostgreSQL versions - the order
-	  of the methods in PROJ4SRSCacheContextMethods is not consistent
-	  between versions.
+	* [r2656] loader/shp2pgsql.c, lwgeom/lwgeom_transform.c: Correct
+	  previous commit for older PostgreSQL versions - the order of the
+	  methods in PROJ4SRSCacheContextMethods is not consistent between
+	  versions.
 
-2007-07-12 20:33  mcayland
+2007-07-12 20:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add missing methods to the PROJ.4 cache memory context to prevent
-	  a backend crash caused by a NULL pointer dereference when
-	  PostgreSQL is trying to clean up memory contexts. Per report from
-	  Tom Lane.
+	* [r2655] lwgeom/lwgeom_transform.c: Add missing methods to the
+	  PROJ.4 cache memory context to prevent a backend crash caused by
+	  a NULL pointer dereference when PostgreSQL is trying to clean up
+	  memory contexts. Per report from Tom Lane.
 
-2007-07-12 17:20  mleslie
+2007-07-12 17:20  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Removing the unsnappable test calls to LineToCurve.
+	* [r2654] regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected.in,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected.in,
+	  regress/sql-mm-curvepoly.sql,
+	  regress/sql-mm-curvepoly_expected.in,
+	  regress/sql-mm-multicurve.sql,
+	  regress/sql-mm-multicurve_expected.in,
+	  regress/sql-mm-multisurface.sql,
+	  regress/sql-mm-multisurface_expected.in: Removing the unsnappable
+	  test calls to LineToCurve.
 
-2007-07-11 01:17  pramsey
+2007-07-11 01:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove extra/debian, per recommendation from Stephen Frost
+	* [r2653] extras/debian: Remove extra/debian, per recommendation
+	  from Stephen Frost
 
-2007-07-10 21:12  pramsey
+2007-07-10 21:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove templategis from make, install, clean targets.
+	* [r2652] GNUmakefile: Remove templategis from make, install, clean
+	  targets.
 
-2007-07-09 03:11  snowman
+2007-07-09 03:11  Stephen Frost <sfrost at snowman.net>
 
-	* - Remove debugging NOTICE
+	* [r2651] extras/tiger_geocoder/geocode/geocode.sql: - Remove
+	  debugging NOTICE
 
-2007-07-09 02:20  snowman
+2007-07-09 02:20  Stephen Frost <sfrost at snowman.net>
 
-	* - Added print-print function for norm_addy type (norm_addy ->
-	  varchar)
+	* [r2650] extras/tiger_geocoder/create_geocode.sql,
+	  extras/tiger_geocoder/geocode/geocode.sql,
+	  extras/tiger_geocoder/normalize/pprint_addy.sql: - Added
+	  print-print function for norm_addy type (norm_addy -> varchar)
 	  - Restructured geocode(), accept address in parsed norm_addy form
 	  as well as unparsed varchar form. Return norm_addy type instead
 	  of
 	  varchar (use pprint_addy() if you want a varchar result instead)
 
-2007-07-08 21:56  snowman
+2007-07-08 21:56  Stephen Frost <sfrost at snowman.net>
 
-	* - City names are 90 characters (this matters more than you might
+	* [r2649] extras/tiger_geocoder/tables/lookup_tables.sql: - City
+	  names are 90 characters (this matters more than you might
 	  think because it affects the types returned from the various
 	  calls and if they don't match subsequent geocode() queries in
 	  the same session may complain about the planned record type not
 	  matching across calls)
 
-2007-07-06 16:45  pramsey
+2007-07-06 16:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* ST_Dwithin reference entry
+	* [r2648] doc/postgis.xml: ST_Dwithin reference entry
 
-2007-07-06 16:44  pramsey
+2007-07-06 16:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added ST_DWithin SQL function
+	* [r2647] lwgeom/lwpostgis.sql.in: Added ST_DWithin SQL function
 
-2007-07-04 17:12  mleslie
+2007-07-04 17:12  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Applied the patch from Michael Fuhr to fix the definition of
-	  ST_PointN
+	* [r2646] lwgeom/lwpostgis.sql.in: Applied the patch from Michael
+	  Fuhr to fix the definition of ST_PointN
 
-2007-07-03 21:36  snowman
+2007-07-03 21:36  Stephen Frost <sfrost at snowman.net>
 
-	* - Change to generic database name
+	* [r2645] extras/tiger_geocoder/import/load_tiger.sh: - Change to
+	  generic database name
 
-2007-07-03 21:36  snowman
+2007-07-03 21:36  Stephen Frost <sfrost at snowman.net>
 
-	* - Update install instructions
+	* [r2644] extras/tiger_geocoder/INSTALL: - Update install
+	  instructions
 
-2007-07-03 21:32  snowman
+2007-07-03 21:32  Stephen Frost <sfrost at snowman.net>
 
-	* Add in initial import scripts for importing the TIGER/Line
+	* [r2643] extras/tiger_geocoder/import,
+	  extras/tiger_geocoder/import/load_tiger.sh,
+	  extras/tiger_geocoder/import/newdb.sh,
+	  extras/tiger_geocoder/import/tigerimport.sh,
+	  extras/tiger_geocoder/import/tigerpoly2.py: Add in initial import
+	  scripts for importing the TIGER/Line
 	  data into a PostGIS system. Could probably be improved to
 	  accept more arguments/etc and require less direct script
 	  modification to make it work. Also, not sure the polygons
 	  are done perfectly yet. :/
 
-2007-07-03 21:30  snowman
-
-	* Add in broken out/updated normalize/geocode functions
+2007-07-03 21:30  Stephen Frost <sfrost at snowman.net>
+
+	* [r2642] extras/tiger_geocoder/create_geocode.sql,
+	  extras/tiger_geocoder/geocode,
+	  extras/tiger_geocoder/geocode/geocode.sql,
+	  extras/tiger_geocoder/geocode/geocode_address.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_countysub_exact.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_place_exact.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_place_fuzzy.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_state.sql,
+	  extras/tiger_geocoder/geocode/geocode_address_zip.sql,
+	  extras/tiger_geocoder/geocode/geocode_get_point.sql,
+	  extras/tiger_geocoder/geocode/geocode_location.sql,
+	  extras/tiger_geocoder/geocode/geocode_zip.sql,
+	  extras/tiger_geocoder/geocode/includes_address.sql,
+	  extras/tiger_geocoder/geocode/interpolate_from_address.sql,
+	  extras/tiger_geocoder/geocode/rate_attributes.sql,
+	  extras/tiger_geocoder/normalize,
+	  extras/tiger_geocoder/normalize/count_words.sql,
+	  extras/tiger_geocoder/normalize/end_soundex.sql,
+	  extras/tiger_geocoder/normalize/get_last_words.sql,
+	  extras/tiger_geocoder/normalize/location_extract.sql,
+	  extras/tiger_geocoder/normalize/location_extract_countysub_exact.sql,
+	  extras/tiger_geocoder/normalize/location_extract_countysub_fuzzy.sql,
+	  extras/tiger_geocoder/normalize/location_extract_place_exact.sql,
+	  extras/tiger_geocoder/normalize/location_extract_place_fuzzy.sql,
+	  extras/tiger_geocoder/normalize/normalize_address.sql,
+	  extras/tiger_geocoder/normalize/state_extract.sql: Add in broken
+	  out/updated normalize/geocode functions
 	  - create_geocode.sql:
 	  Main creation script for pulling in all the other
 	  .sql files to create all the functions and whatnot
@@ -36209,16 +55632,23 @@
 	  be a specific record type across multiple calls. That's
 	  currently a problem. :/
 
-2007-07-03 21:22  snowman
+2007-07-03 21:22  Stephen Frost <sfrost at snowman.net>
 
-	* Initial import of utility functions, seperated into individual
-	  files
+	* [r2641] extras/tiger_geocoder/utility,
+	  extras/tiger_geocoder/utility/cull_null.sql,
+	  extras/tiger_geocoder/utility/levenshtein_ignore_case.sql,
+	  extras/tiger_geocoder/utility/nullable_levenshtein.sql,
+	  extras/tiger_geocoder/utility/utmzone.sql: Initial import of
+	  utility functions, seperated into individual files
 	  for sanity.
 
-2007-07-03 21:19  snowman
+2007-07-03 21:19  Stephen Frost <sfrost at snowman.net>
 
-	* tables/- New scripts for roads_local/tiger_geocode_roads, clean
-	  up lookup_tables
+	* [r2640] extras/tiger_geocoder/tables/lookup_tables.sql,
+	  extras/tiger_geocoder/tables/roads_local.sql,
+	  extras/tiger_geocoder/tables/tiger_geocode_roads.sql: tables/-
+	  New scripts for roads_local/tiger_geocode_roads, clean up
+	  lookup_tables
 	  - roads_local.sql:
 	  Script to create the road_local table from the completechain
 	  table which is created by ogr2ogr. Mainly handles type
@@ -36244,190 +55674,291 @@
 	  zip_lookup_all
 	  zip_lookup
 
-2007-07-03 21:05  snowman
-
-	* - Minor reorg, add in other parts of the initial load
-
-2007-07-03 20:51  snowman
-
-	* - Original tiger geocoder
-
-2007-07-03 20:03  mleslie
+2007-07-03 21:05  Stephen Frost <sfrost at snowman.net>
 
-	* Added a home for the tiger geocoder.
+	* [r2639] extras/tiger_geocoder/INSTALL,
+	  extras/tiger_geocoder/README, extras/tiger_geocoder/orig,
+	  extras/tiger_geocoder/orig/tiger_geocoder.sql,
+	  extras/tiger_geocoder/tables,
+	  extras/tiger_geocoder/tables/lookup_tables.sql,
+	  extras/tiger_geocoder/tiger_geocoder.sql: - Minor reorg, add in
+	  other parts of the initial load
 
-2007-06-28 22:46  mleslie
+2007-07-03 20:51  Stephen Frost <sfrost at snowman.net>
 
-	* Added ST_Covers and ST_CoveredBy functions, as discussed at
-	  http://lin-ear-th-inking.blogspot.com. Added regression tests and
-	  documention for the new functions.
+	* [r2638] extras/tiger_geocoder/tiger_geocoder.sql: - Original
+	  tiger geocoder
 
-2007-06-28 20:21  mleslie
+2007-07-03 20:03  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added a 1D rtree for polygon segment indexing, and tied the index
-	  into the point in polygon short-circuit of the contains, within,
-	  intersects and disjoint methods. Added an index cache to the
-	  comparitor methods to save index build times.
+	* [r2637] extras/tiger_geocoder: Added a home for the tiger
+	  geocoder.
 
-2007-06-28 20:16  mleslie
+2007-06-28 22:46  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added or updated debugging statements.
+	* [r2635] ChangeLog, doc/postgis.xml, lwgeom/lwgeom_geos_c.c,
+	  lwgeom/lwpostgis.sql.in, regress/regress_ogc.sql,
+	  regress/regress_ogc_expected: Added ST_Covers and ST_CoveredBy
+	  functions, as discussed at http://lin-ear-th-inking.blogspot.com.
+	  Added regression tests and documention for the new functions.
 
-2007-06-28 20:14  mleslie
+2007-06-28 20:21  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Altered the macro tests for pg_alloc, pg_realloc to only print
-	  debugging information when alloc debugging is enabled.
+	* [r2634] lwgeom/Makefile, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_functions_analytic.c, lwgeom/lwgeom_geos_c.c,
+	  lwgeom/lwgeom_rtree.c, lwgeom/lwgeom_rtree.h: Added a 1D rtree
+	  for polygon segment indexing, and tied the index into the point
+	  in polygon short-circuit of the contains, within, intersects and
+	  disjoint methods. Added an index cache to the comparitor methods
+	  to save index build times.
 
-2007-06-15 19:06  mleslie
+2007-06-28 20:16  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Updated the regression test suite to allow variable results
-	  depending on jts/geos availability.
+	* [r2633] lwgeom/lwcollection.c, lwgeom/lwgeom.c, lwgeom/lwline.c,
+	  lwgeom/lwpoly.c: Added or updated debugging statements.
 
-2007-06-15 19:04  mleslie
+2007-06-28 20:14  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added curvey geometry recognition to the jts connector.
+	* [r2632] lwgeom/lwgeom_pg.c: Altered the macro tests for pg_alloc,
+	  pg_realloc to only print debugging information when alloc
+	  debugging is enabled.
 
-2007-06-12 14:46  pramsey
+2007-06-15 19:06  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Typo corrections from Michael Fuhr.
-
-2007-06-08 10:28  mcayland
-
-	* Applied Michael Fuhr's patch to use explicit text casts where
-	  required. Required for PostgreSQL 8.3 where many of the implicit
-	  casts to text have been removed.
-
-2007-06-07 16:16  mleslie
-
-	* Added relational function definitions that inline index operators
-	  for automagic index utilization.
-
-2007-06-06 19:19  nbarker
-
-	* Hibernate Spatial Criteria Queries and Dialect
-
-2007-06-05 20:46  mleslie
-
-	* Updated the docs to reflect the function name transition.
-
-2007-06-05 20:45  mleslie
-
-	* Reorganized the sqlmm function declarations to prevent
-	  duplication and confusion.
-
-2007-06-04 23:06  mleslie
-
-	* Added versions of functions with standard ST (Spatial Type)
-	  prefixes to any functions that were lacking them. Updated the
-	  regression tests to include the new functions.
-
-2007-06-01 20:56  mleslie
-
-	* Ongoing PIP trauma. Addressed the issue of points in line with a
-	  boundary segment, but not actually on it. Added appropriate unit
-	  tests.
-
-2007-06-01 12:44  mcayland
-
-	* Reduce 'LWGEOM_gist_joinsel called with arguments that are not
-	  column references' warning to DEBUG1; it's not really a problem,
-	  and in cases where people a lot of these types of queries, the
-	  logs get flooded with these NOTICEs. Per email from Flavio Perri.
-
-2007-06-01 09:54  mcayland
-
-	* Fixed bug #145 - RemovePoint Failure in the bugtracker. It was an
-	  off-by-one error in ptarray.c which caused the penultimate point
-	  to not be copied to the new geometry.
-
-2007-06-01 07:01  mcayland
-
-	* Fix broken docbook stylesheet search. AC_ARG_WITH only calls its
-	  contents when a --with-* option is specified, so the search would
-	  never be invoked in its current position. Moved the search into
-	  the second macro argument, so it is now invoked if no --with-xsl
-	  argument is specified, which I believe was the intended
-	  behaviour.
-
-2007-05-31 13:18  mcayland
-
-	* Add support for the upcoming release of PostgreSQL 8.3. From
-	  PostgreSQL 8.3, the internal structure of varlena datatypes has
-	  changed and so any references to the size of the varlena and its
-	  address must use the VARSIZE and SET_VARSIZE macros. Includes a
-	  #define in pgsql_compat.h so that SET_VARSIZE still works with
-	  the older PostgreSQL versions. Passes all regression tests under
-	  PostgreSQL 8.2 and PostgreSQL 8.3. Thanks to David Techer and
-	  Michael Fuhr for additional testing.
-
-2007-05-28 15:34  mleslie
+	* [r2625] config.h.in, configure.in, regress/Makefile,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-circularstring_expected.in,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-compoundcurve_expected.in,
+	  regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-curvepoly_expected.in,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multicurve_expected.in,
+	  regress/sql-mm-multisurface_expected,
+	  regress/sql-mm-multisurface_expected.in: Updated the regression
+	  test suite to allow variable results depending on jts/geos
+	  availability.
+
+2007-06-15 19:04  Mark Leslie <mark.s.leslie at gmail.com>
+
+	* [r2624] lwgeom/lwgeom_jts.c: Added curvey geometry recognition to
+	  the jts connector.
+
+2007-06-12 14:46  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r2623] doc/postgis.xml: Typo corrections from Michael Fuhr.
+
+2007-06-08 10:28  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r2622] lwgeom/long_xact.sql.in, lwgeom/lwgeom_gml.c,
+	  lwgeom/lwgeom_kml.c, lwgeom/lwpostgis.sql.in: Applied Michael
+	  Fuhr's patch to use explicit text casts where required. Required
+	  for PostgreSQL 8.3 where many of the implicit casts to text have
+	  been removed.
+
+2007-06-07 16:16  Mark Leslie <mark.s.leslie at gmail.com>
+
+	* [r2620] ChangeLog, lwgeom/lwpostgis.sql.in: Added relational
+	  function definitions that inline index operators for automagic
+	  index utilization.
+
+2007-06-06 19:19  Norman Barker <nbarker at ittvis.com>
+
+	* [r2619]
+	  java/ejb3/src/org/postgis/hibernate/ContainsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/IntersectsExpression.java,
+	  java/ejb3/src/org/postgis/hibernate/PostGISDialect.java,
+	  java/ejb3/src/org/postgis/hibernate/WithinExpression.java,
+	  java/hibernate: Hibernate Spatial Criteria Queries and Dialect
+
+2007-06-05 20:46  Mark Leslie <mark.s.leslie at gmail.com>
+
+	* [r2618] doc/postgis.xml: Updated the docs to reflect the function
+	  name transition.
+
+2007-06-05 20:45  Mark Leslie <mark.s.leslie at gmail.com>
+
+	* [r2617] lwgeom/lwpostgis.sql.in, lwgeom/sqlmm.sql.in: Reorganized
+	  the sqlmm function declarations to prevent duplication and
+	  confusion.
+
+2007-06-04 23:06  Mark Leslie <mark.s.leslie at gmail.com>
+
+	* [r2616] ChangeLog, lwgeom/lwpostgis.sql.in, lwgeom/sqlmm.sql.in,
+	  regress/affine.sql, regress/affine_expected, regress/ctors.sql,
+	  regress/ctors_expected, regress/kml.sql, regress/kml_expected,
+	  regress/lwgeom_regress.sql, regress/lwgeom_regress_expected,
+	  regress/measures.sql, regress/measures_expected,
+	  regress/regress.sql, regress/regress_bdpoly.sql,
+	  regress/regress_bdpoly_expected, regress/regress_expected,
+	  regress/regress_index.sql, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected, regress/regress_ogc.sql,
+	  regress/regress_ogc_expected, regress/regress_proj.sql,
+	  regress/regress_proj_expected, regress/removepoint.sql,
+	  regress/removepoint_expected, regress/setpoint.sql,
+	  regress/setpoint_expected, regress/simplify.sql,
+	  regress/simplify_expected, regress/snaptogrid.sql,
+	  regress/snaptogrid_expected, regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-multicurve.sql,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multisurface.sql,
+	  regress/sql-mm-multisurface_expected,
+	  regress/sql-mm-serialize.sql, regress/wkt.sql: Added versions of
+	  functions with standard ST (Spatial Type) prefixes to any
+	  functions that were lacking them. Updated the regression tests to
+	  include the new functions.
+
+2007-06-01 20:56  Mark Leslie <mark.s.leslie at gmail.com>
+
+	* [r2614] lwgeom/lwgeom_functions_analytic.c,
+	  regress/regress_ogc.sql, regress/regress_ogc_expected: Ongoing
+	  PIP trauma. Addressed the issue of points in line with a boundary
+	  segment, but not actually on it. Added appropriate unit tests.
+
+2007-06-01 12:44  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r2613] lwgeom/lwgeom_estimate.c: Reduce 'LWGEOM_gist_joinsel
+	  called with arguments that are not column references' warning to
+	  DEBUG1; it's not really a problem, and in cases where people a
+	  lot of these types of queries, the logs get flooded with these
+	  NOTICEs. Per email from Flavio Perri.
+
+2007-06-01 09:54  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r2612] lwgeom/ptarray.c: Fixed bug #145 - RemovePoint Failure in
+	  the bugtracker. It was an off-by-one error in ptarray.c which
+	  caused the penultimate point to not be copied to the new
+	  geometry.
 
-	* Added curve handling to getType, numGeometries, geometryN,
-	  dimension, exteriorRing, numInteriorRings, interiorRingN, closed
-	  (lwgeom_ogc.c) lwgeom_clone (lwgeom.c) and area. Added function
-	  ST_CurveToLine and ST_LineToCurve. Added regression tests for
-	  sql-mm geometries and related functions.
+2007-06-01 07:01  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r2611] configure.in: Fix broken docbook stylesheet search.
+	  AC_ARG_WITH only calls its contents when a --with-* option is
+	  specified, so the search would never be invoked in its current
+	  position. Moved the search into the second macro argument, so it
+	  is now invoked if no --with-xsl argument is specified, which I
+	  believe was the intended behaviour.
+
+2007-05-31 13:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+
+	* [r2610] Makefile.config.in, lwgeom/liblwgeom.h, lwgeom/lwgeom.c,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_chip.c,
+	  lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_gml.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_jts.c, lwgeom/lwgeom_kml.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c, lwgeom/lwgeom_svg.c,
+	  lwgeom/lwgeom_transform.c, lwgeom/lwgparse.c,
+	  lwgeom/pgsql_compat.h, lwgeom/wktparse.h: Add support for the
+	  upcoming release of PostgreSQL 8.3. From PostgreSQL 8.3, the
+	  internal structure of varlena datatypes has changed and so any
+	  references to the size of the varlena and its address must use
+	  the VARSIZE and SET_VARSIZE macros. Includes a #define in
+	  pgsql_compat.h so that SET_VARSIZE still works with the older
+	  PostgreSQL versions. Passes all regression tests under PostgreSQL
+	  8.2 and PostgreSQL 8.3. Thanks to David Techer and Michael Fuhr
+	  for additional testing.
+
+2007-05-28 15:34  Mark Leslie <mark.s.leslie at gmail.com>
+
+	* [r2609] ChangeLog, lwgeom/liblwgeom.h, lwgeom/lwgeom.c,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_sqlmm.c, lwgeom/lwpostgis.sql.in,
+	  lwgeom/measures.c, regress/Makefile,
+	  regress/sql-mm-circularstring.sql,
+	  regress/sql-mm-circularstring_expected,
+	  regress/sql-mm-compoundcurve.sql,
+	  regress/sql-mm-compoundcurve_expected,
+	  regress/sql-mm-curvepoly.sql, regress/sql-mm-curvepoly_expected,
+	  regress/sql-mm-general.sql, regress/sql-mm-general_expected,
+	  regress/sql-mm-multicurve.sql,
+	  regress/sql-mm-multicurve_expected,
+	  regress/sql-mm-multisurface.sql,
+	  regress/sql-mm-multisurface_expected: Added curve handling to
+	  getType, numGeometries, geometryN, dimension, exteriorRing,
+	  numInteriorRings, interiorRingN, closed (lwgeom_ogc.c)
+	  lwgeom_clone (lwgeom.c) and area. Added function ST_CurveToLine
+	  and ST_LineToCurve. Added regression tests for sql-mm geometries
+	  and related functions.
 
-2007-05-22 22:10  mleslie
+2007-05-22 22:10  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added short-circuit calls for the point-in-polygon cases of
-	  disjoint and intersect calls. Added regression tests for the new
-	  short-circuits.
+	* [r2608] ChangeLog, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_geos_c.c, regress/regress_ogc.sql,
+	  regress/regress_ogc_expected: Added short-circuit calls for the
+	  point-in-polygon cases of disjoint and intersect calls. Added
+	  regression tests for the new short-circuits.
 
-2007-05-14 18:04  mcayland
+2007-05-14 18:04  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Bump SVN code version to 1.2.2SVN
+	* [r2607] Version.config: Bump SVN code version to 1.2.2SVN
 
-2007-05-14 17:55  mcayland
+2007-05-14 17:55  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fix broken regress_proj expected results by removing the extra
-	  DELETE at the end of the file.
+	* [r2606] regress/regress_proj_expected: Fix broken regress_proj
+	  expected results by removing the extra DELETE at the end of the
+	  file.
 
-2007-05-14 17:51  mcayland
+2007-05-14 17:51  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove GEOS C++ API support from PostGIS HEAD; it's been broken
-	  since 1.2.0 and so we require a minimum of GEOS 2.2.0 to compile
-	  and run PostGIS. Includes alterations to autoconf to display an
-	  error message during configure if the GEOS version is incorrect.
-	  Passes all regression tests with GEOS 2.2.3 and GEOS 3.0.0rc4
-	  using GEOS CAPI.
+	* [r2605] Makefile.config.in, configure.in, lwgeom/Makefile,
+	  lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_wrapper.cpp: Remove GEOS
+	  C++ API support from PostGIS HEAD; it's been broken since 1.2.0
+	  and so we require a minimum of GEOS 2.2.0 to compile and run
+	  PostGIS. Includes alterations to autoconf to display an error
+	  message during configure if the GEOS version is incorrect. Passes
+	  all regression tests with GEOS 2.2.3 and GEOS 3.0.0rc4 using GEOS
+	  CAPI.
 
-2007-05-08 16:37  pramsey
+2007-05-08 16:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Spelling fix
+	* [r2604] doc/postgis.xml: Spelling fix
 
-2007-04-02 21:17  pramsey
+2007-04-02 21:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Small doco fix
+	* [r2602] doc/postgis.xml: Small doco fix
 
-2007-03-15 09:22  mschaber
+2007-03-15 09:22  Markus Schaber <markus at schabi.de>
 
-	* aded PostGIS Dialect for Hibernate from Norman Barker
+	* [r2601] ChangeLog, NEWS, java/hibernate,
+	  java/hibernate/PostGISDialect.java: aded PostGIS Dialect for
+	  Hibernate from Norman Barker
 
-2007-03-09 19:34  mleslie
+2007-03-09 19:34  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Bug 143 is once again dealt with, this time for good.
+	* [r2600] lwgeom/lwgeom_functions_analytic.c: Bug 143 is once again
+	  dealt with, this time for good.
 
-2007-03-09 18:30  mleslie
+2007-03-09 18:30  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Rolling back a cure that killed the patient.
+	* [r2599] lwgeom/lwgeom_functions_analytic.c: Rolling back a cure
+	  that killed the patient.
 
-2007-03-09 00:33  mleslie
+2007-03-09 00:33  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Bug 143 code fix and regression case.
+	* [r2598] lwgeom/liblwgeom.h, lwgeom/lwgeom_functions_analytic.c,
+	  regress/regress_ogc.sql, regress/regress_ogc_expected: Bug 143
+	  code fix and regression case.
 
-2007-03-01 08:31  strk
+2007-03-01 08:31  Sandro Santilli <strk at keybit.net>
 
-	* * extras/template_gis/Makefile:
+	* [r2597] ChangeLog, extras/template_gis/Makefile: *
+	  extras/template_gis/Makefile:
 	  Install 'defaults' file to $(DATADIR)$(prefix)
 
-2007-02-28 17:39  pramsey
+2007-02-28 17:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove minor typo
+	* [r2596] doc/postgis.xml: Remove minor typo
 
-2007-02-26 09:03  strk
+2007-02-26 09:03  Sandro Santilli <strk at keybit.net>
 
-	* * regress/run_test: discard CONTEXT and DELETE
+	* [r2595] ChangeLog, regress/Makefile, regress/kml.sql,
+	  regress/kml_expected, regress/run_test: * regress/run_test:
+	  discard CONTEXT and DELETE
 	  lines from test outputs.
 	  
 	  Patch by Eduin Carrillo, sliglty modified to take precision
@@ -36436,1073 +55967,1473 @@
 	  * regress/: Makefile, kml.sql, kml_expected:
 	  Regression test for asKML().
 
-2007-02-06 17:38  pramsey
+2007-02-06 17:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Edits from Bruce Rindahl
+	* [r2594] doc/postgis.xml: Edits from Bruce Rindahl
 
-2007-01-26 15:11  mcayland
+2007-01-26 15:11  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Refine previous patch to use a different delimiter than : (!) for
-	  sed. This simplifies the Makefile and protects all the $*dir
-	  arguments from escaping issues under Win32.
+	* [r2591] ChangeLog, extras/template_gis/Makefile: Refine previous
+	  patch to use a different delimiter than : (!) for sed. This
+	  simplifies the Makefile and protects all the $*dir arguments from
+	  escaping issues under Win32.
 
-2007-01-19 09:44  strk
+2007-01-19 09:44  Sandro Santilli <strk at keybit.net>
 
-	* * extras/template_gis/Makefile: escape $bindir
+	* [r2590] ChangeLog, extras/template_gis/Makefile: *
+	  extras/template_gis/Makefile: escape $bindir
 	  to allow for colons in it's value (win32 issue).
 
-2007-01-18 18:51  mschaber
+2007-01-18 18:51  Markus Schaber <markus at schabi.de>
 
-	* finally really fixed javadoc build on Windows. Yes, that hack is
-	  ugly. Kudos to Marc Cave-Ayland.
+	* [r2589] ChangeLog, java/jdbc/Makefile: finally really fixed
+	  javadoc build on Windows. Yes, that hack is ugly. Kudos to Marc
+	  Cave-Ayland.
 
-2007-01-18 18:33  mschaber
+2007-01-18 18:33  Markus Schaber <markus at schabi.de>
 
-	* further fix for javadoc build
+	* [r2588] java/jdbc/Makefile: further fix for javadoc build
 
-2007-01-18 17:56  mschaber
+2007-01-18 17:56  Markus Schaber <markus at schabi.de>
 
-	* fixed jdbc javadoc build
+	* [r2587] ChangeLog, java/jdbc/Makefile: fixed jdbc javadoc build
 
-2007-01-15 10:48  strk
+2007-01-15 10:48  Sandro Santilli <strk at keybit.net>
 
-	* Patch by Michael Fuhr: * extras/template_gis/Makefile: quote grep
-	  argument for Solaris to work.
+	* [r2586] ChangeLog, extras/template_gis/Makefile: Patch by Michael
+	  Fuhr: * extras/template_gis/Makefile: quote grep argument for
+	  Solaris to work.
 
-2007-01-12 20:28  pramsey
+2007-01-12 20:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change 'Postgis' to 'PostGIS'
+	* [r2585] doc/postgis.xml: Change 'Postgis' to 'PostGIS'
 
-2007-01-12 18:07  strk
+2007-01-12 18:07  Sandro Santilli <strk at keybit.net>
 
-	* Patch by Gerald Fenoy <djay at gentoo.org>:
+	* [r2584] ChangeLog, configure.in: Patch by Gerald Fenoy
+	  <djay at gentoo.org>:
 	  
 	  * configure.in: add --with-xsl switch.
 
-2007-01-12 01:50  pramsey
+2007-01-12 01:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* 1.2.1 release prep
+	* [r2582] CREDITS, ChangeLog, HOWTO_RELEASE, NEWS, README.postgis,
+	  TODO, Version.config, doc/postgis.xml: 1.2.1 release prep
 
-2007-01-11 01:40  mleslie
+2007-01-11 01:40  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added a length check to prevent the point in polygon shortcut
-	  from finding points contained within a zero length segment.
+	* [r2580] lwgeom/lwgeom_functions_analytic.c: Added a length check
+	  to prevent the point in polygon shortcut from finding points
+	  contained within a zero length segment.
 
-2007-01-11 01:39  mleslie
+2007-01-11 01:39  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Fixed the COMPOUNDCURVE example to properly should the contained
-	  CIRCULARSTRING.
+	* [r2579] doc/postgis.xml: Fixed the COMPOUNDCURVE example to
+	  properly should the contained CIRCULARSTRING.
 
-2007-01-08 10:48  mschaber
+2007-01-08 10:48  Markus Schaber <markus at schabi.de>
 
-	* fixed 8.2 compatibility
+	* [r2570] ChangeLog, NEWS,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsWrapper.java,
+	  java/jdbc/src/org/postgis/DriverWrapper.java,
+	  java/jdbc/src/org/postgis/DriverWrapperAutoprobe.java,
+	  java/jdbc/src/org/postgis/DriverWrapperLW.java: fixed 8.2
+	  compatibility
 
-2007-01-08 10:12  mschaber
+2007-01-08 10:12  Markus Schaber <markus at schabi.de>
 
-	* hopefully fixed GCJ build
+	* [r2569] java/jdbc/Makefile: hopefully fixed GCJ build
 
-2007-01-05 00:52  strk
+2007-01-05 00:52  Sandro Santilli <strk at keybit.net>
 
-	* * GNUmakefile: bring in extra/template_gis for all rules.
+	* [r2568] ChangeLog, GNUmakefile, extras/template_gis/Makefile: *
+	  GNUmakefile: bring in extra/template_gis for all rules.
 	  * extras/template_gis/Makefile: have 'install' also install
 	  manuals.
 
-2007-01-03 17:28  kneufeld
+2007-01-03 17:28  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* initial load
+	* [r2567] regress/regress_index_nulls_expected: initial load
 
-2006-12-29 00:31  strk
+2006-12-29 00:31  Sandro Santilli <strk at keybit.net>
 
-	* * configure.in: fixed GEOS_LDFLAGS detection
+	* [r2566] ChangeLog, configure.in: * configure.in: fixed
+	  GEOS_LDFLAGS detection
 	  for older GEOS versions.
 
-2006-12-29 00:26  strk
+2006-12-29 00:26  Sandro Santilli <strk at keybit.net>
 
-	* cleaned up Hard Upgrade manual section (was unreadable).
+	* [r2565] ChangeLog, doc/postgis.xml: cleaned up Hard Upgrade
+	  manual section (was unreadable).
 
-2006-12-27 04:58  devrim
+2006-12-27 04:58  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Update spec file to 1.2.0 and fix many issues.
+	* [r2564] extras/rpm/patches/postgis-configure.patch,
+	  extras/rpm/patches/postgis-javamakefile.patch,
+	  extras/rpm/patches/postgis-jdbcdedectver.sh,
+	  extras/rpm/spec/postgis.spec: Update spec file to 1.2.0 and fix
+	  many issues.
 	  Update RPM patches.
 
-2006-12-22 11:28  mschaber
+2006-12-22 11:28  Markus Schaber <markus at schabi.de>
 
-	* Added generation of JDBC javadoc zip file
+	* [r2563] ChangeLog, NEWS, java/jdbc, java/jdbc/Makefile: Added
+	  generation of JDBC javadoc zip file
 
-2006-12-21 00:19  pramsey
+2006-12-21 00:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated to 1.2.0
+	* [r2562] README.postgis: Updated to 1.2.0
 
-2006-12-20 20:43  strk
+2006-12-20 20:43  Sandro Santilli <strk at keybit.net>
 
-	* * regress/README: wrote info about adding regression tests
+	* [r2561] ChangeLog, regress/README: * regress/README: wrote info
+	  about adding regression tests
 	  (plus some ChangeLog formatting)
 
-2006-12-20 18:47  kneufeld
+2006-12-20 18:47  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Added fix to permit gist indexes to have more than 459 null
-	  geometries in a table
+	* [r2560] ChangeLog: Added fix to permit gist indexes to have more
+	  than 459 null geometries in a table
 
-2006-12-20 18:44  kneufeld
+2006-12-20 18:44  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Added test to fix that permitted gist indexes to have more than
-	  459 null geometries in a table
+	* [r2559] regress/Makefile, regress/regress_index_nulls.sql,
+	  regress/regress_lots_of_nulls.sql: Added test to fix that
+	  permitted gist indexes to have more than 459 null geometries in a
+	  table
 
-2006-12-20 18:43  kneufeld
+2006-12-20 18:43  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Added fix to permit gist indexes to have more than 459 null
-	  geometries in a table
+	* [r2558] lwgeom/lwgeom_gist.c: Added fix to permit gist indexes to
+	  have more than 459 null geometries in a table
 
-2006-12-18 14:12  mschaber
+2006-12-18 14:12  Markus Schaber <markus at schabi.de>
 
-	* Improved SRID handling in regression tests and added
+	* [r2557] ChangeLog, java/jdbc/jtssrc/examples/JtsTestParser.java:
+	  Improved SRID handling in regression tests and added
 	  CoordinateArraySequence tests.
 
-2006-12-18 13:04  mschaber
+2006-12-18 13:04  Markus Schaber <markus at schabi.de>
 
-	* Added ChangeLog/News entries for recent commits
+	* [r2556] ChangeLog, NEWS: Added ChangeLog/News entries for recent
+	  commits
 
-2006-12-18 12:58  mschaber
+2006-12-18 12:58  Markus Schaber <markus at schabi.de>
 
-	* Fix multi-dimension handling in JtsBinaryWriter, thanks to Thomas
+	* [r2555] java/jdbc/jtssrc/org/postgis/jts/JtsBinaryWriter.java:
+	  Fix multi-dimension handling in JtsBinaryWriter, thanks to Thomas
 	  Marti for the hints
 
-2006-12-18 12:55  mschaber
+2006-12-18 12:55  Markus Schaber <markus at schabi.de>
 
-	* Fixed Makefile for jts tests, commented debug options better
+	* [r2554] java/jdbc/Makefile: Fixed Makefile for jts tests,
+	  commented debug options better
 
-2006-12-15 11:00  strk
+2006-12-15 11:00  Sandro Santilli <strk at keybit.net>
 
-	* Patch by Eduin Carrillo: short circuit transform when source and
-	  target SRID are the same.
+	* [r2553] ChangeLog, lwgeom/lwgeom_transform.c: Patch by Eduin
+	  Carrillo: short circuit transform when source and target SRID are
+	  the same.
 
-2006-12-15 10:54  strk
+2006-12-15 10:54  Sandro Santilli <strk at keybit.net>
 
-	* Added additional step for adding release marks in ChangeLog
+	* [r2552] HOWTO_RELEASE: Added additional step for adding release
+	  marks in ChangeLog
 
-2006-12-15 10:51  strk
+2006-12-15 10:51  Sandro Santilli <strk at keybit.net>
 
-	* marked 1.2.0 release
+	* [r2551] ChangeLog: marked 1.2.0 release
 
-2006-12-15 10:48  strk
+2006-12-15 10:48  Sandro Santilli <strk at keybit.net>
 
-	* Patch by Eduin Carrillo <yecarrillo at yahoo.com>:
+	* [r2550] ChangeLog, doc/postgis.xml, lwgeom/Makefile,
+	  lwgeom/lwgeom_kml.c, lwgeom/lwpostgis.sql.in: Patch by Eduin
+	  Carrillo <yecarrillo at yahoo.com>:
 	  
 	  * lwgeom/: Makefile, lwgeom_kml.c, lwpostgis.sql.in:
 	  New AsKML() function
 	  * doc/postgis.xml: document new AsKML function.
 
-2006-12-13 17:50  mschaber
+2006-12-13 17:50  Markus Schaber <markus at schabi.de>
 
-	* fixed 'hard upgrade' instructions in readme.postgis
+	* [r2549] ChangeLog, README.postgis: fixed 'hard upgrade'
+	  instructions in readme.postgis
 
-2006-12-11 17:41  pramsey
+2006-12-11 17:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated vers. #
+	* [r2548] doc/postgis.xml: Updated vers. #
 
-2006-12-09 03:57  pramsey
+2006-12-09 03:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update version to corrent 1.2.0 version, and set news to correct
-	  version
+	* [r2543] NEWS, Version.config: Update version to corrent 1.2.0
+	  version, and set news to correct version
 	  and date.
 
-2006-12-06 02:00  mleslie
+2006-12-06 02:00  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Updated with curved geometry definitions.
+	* [r2541] lwgeom/SERIALIZED_FORM: Updated with curved geometry
+	  definitions.
 
-2006-12-06 00:30  mleslie
+2006-12-06 00:30  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added sections for SQL-MM and ArcSDE function ports.
+	* [r2540] ChangeLog, doc/postgis.xml: Added sections for SQL-MM and
+	  ArcSDE function ports.
 
-2006-12-05 20:45  mleslie
+2006-12-05 20:45  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Fixing some incomplete paths, and adding changes to the regress
-	  directory.
+	* [r2539] ChangeLog: Fixing some incomplete paths, and adding
+	  changes to the regress directory.
 
-2006-12-05 20:41  mleslie
+2006-12-05 20:41  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added the previous changes for the curved geometry support.
+	* [r2538] ChangeLog: Added the previous changes for the curved
+	  geometry support.
 
-2006-12-05 19:22  kneufeld
+2006-12-05 19:22  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Added SQL/MM wrappers to existing PostGIS functions
+	* [r2537] ChangeLog: Added SQL/MM wrappers to existing PostGIS
+	  functions
 
-2006-12-05 19:07  kneufeld
+2006-12-05 19:07  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* added a subset (only those implemented by ArcSDE) of the SQL/MM
-	  function prototypes and appended the file to lwpostgis.sql
+	* [r2536] lwgeom/Makefile, lwgeom/sqlmm.sql.in: added a subset
+	  (only those implemented by ArcSDE) of the SQL/MM function
+	  prototypes and appended the file to lwpostgis.sql
 
-2006-12-05 19:05  kneufeld
+2006-12-05 19:05  Kevin Neufeld <kneufeld.ca at gmail.com>
 
-	* Moved common sql defines to their own header file.
+	* [r2535] lwgeom/long_xact.sql, lwgeom/long_xact.sql.in,
+	  lwgeom/lwpostgis.sql.in, lwgeom/sqldefines.h: Moved common sql
+	  defines to their own header file.
 	  ie. IF USE_VERSION>72 ...
 
-2006-12-05 11:00  mschaber
-
-	* Added JTS shape + missing News message
-
-2006-12-05 01:21  mleslie
-
-	* Updated the documentation to include an SQL-MM types section.
-
-2006-12-01 22:16  mleslie
-
-	* Added typedefs and serialization/deserialization functionality
+2006-12-05 11:00  Markus Schaber <markus at schabi.de>
+
+	* [r2534] ChangeLog, NEWS,
+	  java/jdbc/jtssrc/org/postgis/jts/JTSShape.java: Added JTS shape +
+	  missing News message
+
+2006-12-05 01:21  Mark Leslie <mark.s.leslie at gmail.com>
+
+	* [r2533] NEWS, doc/postgis.xml: Updated the documentation to
+	  include an SQL-MM types section.
+
+2006-12-01 22:16  Mark Leslie <mark.s.leslie at gmail.com>
+
+	* [r2532] NEWS, Version.config, doc/postgis.xml, lwgeom/Makefile,
+	  lwgeom/lex.yy.c, lwgeom/liblwgeom.c, lwgeom/liblwgeom.h,
+	  lwgeom/lwcollection.c, lwgeom/lwcompound.c, lwgeom/lwcurve.c,
+	  lwgeom/lwcurvepoly.c, lwgeom/lwgeom.c, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_pg.c,
+	  lwgeom/lwgeom_spheroid.c, lwgeom/lwgeom_sqlmm.c,
+	  lwgeom/lwgparse.c, lwgeom/lwline.c, lwgeom/lwmcurve.c,
+	  lwgeom/lwmsurface.c, lwgeom/lwpostgis.sql.in, lwgeom/ptarray.c,
+	  lwgeom/wktparse.h, lwgeom/wktparse.lex, lwgeom/wktparse.tab.c,
+	  lwgeom/wktparse.tab.h, lwgeom/wktparse.y, lwgeom/wktunparse.c,
+	  regress/Makefile, regress/lwgeom_regress_expected,
+	  regress/sql-mm-serialize.sql, regress/sql-mm-serialize_expected:
+	  Added typedefs and serialization/deserialization functionality
 	  for sql-mm defined curved geometry types. Added a
 	  point_in_polygon short-circuit for contains and within functions.
 
-2006-11-22 10:42  mschaber
+2006-11-22 10:42  Markus Schaber <markus at schabi.de>
 
-	* java/ejb3/src/org/postgis/hibernate/GeometryType.java Added
+	* [r2531] ChangeLog,
+	  java/ejb3/src/org/postgis/hibernate/GeometryType.java:
+	  java/ejb3/src/org/postgis/hibernate/GeometryType.java Added
 	  Nullpointer Fix by Norman Barker
 
-2006-11-20 12:59  strk
+2006-11-20 12:59  Sandro Santilli <strk at keybit.net>
 
-	* * utils/postgis_restore.pl (canonicalize_typename):
+	* [r2530] ChangeLog, utils/postgis_restore.pl: *
+	  utils/postgis_restore.pl (canonicalize_typename):
 	  canonicalize 'timezone .* time stamp' to 'timezone'
 	  (fixes bug #121)
 
-2006-11-17 17:12  strk
+2006-11-17 17:12  Sandro Santilli <strk at keybit.net>
 
-	* Patch by "Antoine Bajolet" <antoine.bajolet at tdf.fr>:
+	* [r2529] ChangeLog, lwgeom/lwgeom_gist.c: Patch by "Antoine
+	  Bajolet" <antoine.bajolet at tdf.fr>:
 	  
 	  * lwgeom/lwgeom_gist.c: fixed 'directives may not be used inside
 	  a
 	  macro argument' error raised by some compilers.
 
-2006-11-10 15:17  strk
+2006-11-10 15:17  Sandro Santilli <strk at keybit.net>
 
-	* * configure.in (geos detection): use $geos_prefix/lib when
-	  --ldflags is not supported by geos-config available.
+	* [r2528] ChangeLog, configure.in: * configure.in (geos detection):
+	  use $geos_prefix/lib when --ldflags is not supported by
+	  geos-config available.
 
-2006-11-10 14:11  strk
+2006-11-10 14:11  Sandro Santilli <strk at keybit.net>
 
-	* Patch by Havard Tveite <havard.tveite at nlh.no>:
+	* [r2527] ChangeLog, doc/postgis.xml, utils/postgis_restore.pl:
+	  Patch by Havard Tveite <havard.tveite at nlh.no>:
 	  
 	  * doc/postgix.xml (Hard Upgrade): add info about createdb params
 	  * utils/postgis_restore.pl: fix use of createdb params
 
-2006-11-02 13:22  strk
+2006-11-02 13:22  Sandro Santilli <strk at keybit.net>
 
-	* * doc/postgis.xml: list setSRID bug fix in 'Bug fixes' section.
+	* [r2525] ChangeLog, doc/postgis.xml: * doc/postgis.xml: list
+	  setSRID bug fix in 'Bug fixes' section.
 
-2006-11-02 11:48  mschaber
+2006-11-02 11:48  Markus Schaber <markus at schabi.de>
 
-	* Added missing docs about setsrid()
+	* [r2524] ChangeLog, doc/postgis.xml: Added missing docs about
+	  setsrid()
 
-2006-11-02 09:03  mschaber
+2006-11-02 09:03  Markus Schaber <markus at schabi.de>
 
-	* fixed setSRID bug in JDBC ComposedGeom.
+	* [r2523] NEWS, java/jdbc/src/org/postgis/ComposedGeom.java: fixed
+	  setSRID bug in JDBC ComposedGeom.
 
-2006-11-02 08:06  strk
+2006-11-02 08:06  Sandro Santilli <strk at keybit.net>
 
-	* ready for 1.1.6 release
+	* [r2522] ChangeLog, NEWS, Version.config, doc/postgis.xml: ready
+	  for 1.1.6 release
 
-2006-11-02 07:55  strk
+2006-11-02 07:55  Sandro Santilli <strk at keybit.net>
 
-	* * lwgeom/lwgeom_api.c, lwgeom/wktunparse.c: cast -1 to a char
+	* [r2521] ChangeLog, lwgeom/lwgeom_api.c, lwgeom/wktunparse.c: *
+	  lwgeom/lwgeom_api.c, lwgeom/wktunparse.c: cast -1 to a char
 	  to make some compilers happy about comparison with a char type.
 
-2006-10-26 09:41  strk
+2006-10-26 09:41  Sandro Santilli <strk at keybit.net>
 
-	* Renamed CHANGES file to NEWS, updated references to it
+	* [r2520] CHANGES, HOWTO_RELEASE, NEWS, extras/debian/rules,
+	  extras/rpm/spec/postgis.spec: Renamed CHANGES file to NEWS,
+	  updated references to it
 
-2006-10-26 09:35  strk
+2006-10-26 09:35  Sandro Santilli <strk at keybit.net>
 
-	* Initial import of an automatic generated ChangeLog - all
-	  developers please manually edit this on each commit
+	* [r2519] ChangeLog: Initial import of an automatic generated
+	  ChangeLog - all developers please manually edit this on each
+	  commit
 
-2006-10-25 10:23  mschaber
+2006-10-25 10:23  Markus Schaber <markus at schabi.de>
 
-	* fixed CAPI change that broke 64-bit platforms
+	* [r2518] CHANGES, lwgeom/lwgeom_geos_c.c: fixed CAPI change that
+	  broke 64-bit platforms
 
-2006-10-25 10:00  mschaber
+2006-10-25 10:00  Markus Schaber <markus at schabi.de>
 
-	* updated changelog to reflect loader regression fix
+	* [r2517] CHANGES: updated changelog to reflect loader regression
+	  fix
 
-2006-10-25 09:57  mschaber
+2006-10-25 09:57  Markus Schaber <markus at schabi.de>
 
-	* Make regress test build loader and dumper as it needs them
+	* [r2516] regress/Makefile: Make regress test build loader and
+	  dumper as it needs them
 
-2006-10-24 12:35  strk
+2006-10-24 12:35  Sandro Santilli <strk at keybit.net>
 
-	* use Z ordinate in reprojections
+	* [r2515] CHANGES, lwgeom/lwgeom_transform.c: use Z ordinate in
+	  reprojections
 
-2006-10-19 12:01  strk
+2006-10-19 12:01  Sandro Santilli <strk at keybit.net>
 
-	* spatial_ref_sys.sql updated to EPSG 6.11.1
+	* [r2514] CHANGES, spatial_ref_sys.sql: spatial_ref_sys.sql updated
+	  to EPSG 6.11.1
 
-2006-10-14 14:22  mschaber
+2006-10-14 14:22  Markus Schaber <markus at schabi.de>
 
-	* sanitized usage info output on loader/dumper
+	* [r2513] CHANGES, doc/man/pgsql2shp.1, doc/man/shp2pgsql.1,
+	  loader/README.pgsql2shp, loader/README.shp2pgsql,
+	  loader/pgsql2shp.c, loader/shp2pgsql.c: sanitized usage info
+	  output on loader/dumper
 
-2006-10-14 09:26  mschaber
+2006-10-14 09:26  Markus Schaber <markus at schabi.de>
 
-	* Cleaned up Version.config & co.
+	* [r2512] CHANGES, HOWTO_RELEASE, Version.config, doc/Makefile,
+	  extras/debian/rules, extras/template_gis/Makefile,
+	  java/jdbc/Makefile, java/jdbc/src/org/postgis/Version.java,
+	  loader/Makefile, loader/pgsql2shp.c, loader/shp2pgsql.c,
+	  lwgeom/Makefile, lwgeom/Makefile.shlib: Cleaned up Version.config
+	  & co.
 
-2006-10-13 15:56  mschaber
+2006-10-13 15:56  Markus Schaber <markus at schabi.de>
 
-	* updated CHANGES and doc/postgis.xml in preparation of upcoming
-	  release
+	* [r2510] CHANGES, doc/postgis.xml: updated CHANGES and
+	  doc/postgis.xml in preparation of upcoming release
 
-2006-10-13 15:35  mschaber
+2006-10-13 15:35  Markus Schaber <markus at schabi.de>
 
-	* updated HOWTO_RELEASE to reflect version.
+	* [r2509] HOWTO_RELEASE: updated HOWTO_RELEASE to reflect version.
 
-2006-10-13 14:18  mcayland
+2006-10-13 14:18  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Updated CHANGES files to reflect the MingW (Win32) linker fix for
-	  pgsql2hp under PostgreSQL 8.2
+	* [r2508] CHANGES: Updated CHANGES files to reflect the MingW
+	  (Win32) linker fix for pgsql2hp under PostgreSQL 8.2
 
-2006-10-11 13:35  mschaber
+2006-10-11 13:35  Markus Schaber <markus at schabi.de>
 
-	* Added hint about template_postgis to docs, thanks to Marc
-	  Cave-Ayland for contribution.
+	* [r2507] doc/postgis.xml: Added hint about template_postgis to
+	  docs, thanks to Marc Cave-Ayland for contribution.
 
-2006-10-11 11:19  mschaber
+2006-10-11 11:19  Markus Schaber <markus at schabi.de>
 
-	* fix ARC regression test failures in loader
+	* [r2506] loader/shp2pgsql.c: fix ARC regression test failures in
+	  loader
 
-2006-10-11 10:45  mschaber
+2006-10-11 10:45  Markus Schaber <markus at schabi.de>
 
-	* added note about odt to README, re-exported pdf
+	* [r2505] java/ejb3/README.txt, java/ejb3/ejb3spatial.pdf: added
+	  note about odt to README, re-exported pdf
 
-2006-10-11 10:00  strk
+2006-10-11 10:00  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in InsertLineStringWKT, also fixed some typos
+	* [r2504] loader/shp2pgsql.c: Fixed a bug in InsertLineStringWKT,
+	  also fixed some typos
 
-2006-10-11 09:43  mschaber
+2006-10-11 09:43  Markus Schaber <markus at schabi.de>
 
-	* added -S option and updated README to loader/dumper
+	* [r2503] ., CHANGES, doc/man/pgsql2shp.1, doc/man/shp2pgsql.1,
+	  doc/postgis.xml, loader/README.pgsql2shp,
+	  loader/README.shp2pgsql, loader/README.txt, loader/shp2pgsql.c:
+	  added -S option and updated README to loader/dumper
 
-2006-10-11 09:37  mschaber
+2006-10-11 09:37  Markus Schaber <markus at schabi.de>
 
-	* bumped versions to 1.1.5
+	* [r2502] Version.config: bumped versions to 1.1.5
 
-2006-10-09 17:22  mschaber
+2006-10-09 17:22  Markus Schaber <markus at schabi.de>
 
-	* fix EJB3 replace Method for Hibernate
+	* [r2501] java/ejb3/src/org/postgis/hibernate/GeometryType.java:
+	  fix EJB3 replace Method for Hibernate
 
-2006-10-09 17:12  mschaber
+2006-10-09 17:12  Markus Schaber <markus at schabi.de>
 
-	* added EJB3Spatial.odt, fixed Normans contact mail
+	* [r2500] CHANGES, java/ejb3/EJB3Spatial.odt, java/ejb3/README.txt,
+	  java/ejb3/build.xml,
+	  java/ejb3/src/org/postgis/ejb/PersonEntity.java,
+	  java/ejb3/src/org/postgis/ejb/UserBean.java,
+	  java/ejb3/src/org/postgis/ejb/UserBeanRemote.java,
+	  java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java,
+	  java/ejb3/src/org/postgis/hibernate/GeometryType.java: added
+	  EJB3Spatial.odt, fixed Normans contact mail
 
-2006-10-09 16:33  mcayland
+2006-10-09 16:33  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Remove extra PGFELIBS definition in one of the MingW specific
-	  sections since it was triggering a linker bug within MingW's gcc.
-	  This was the reason that compiling against PostgreSQL 8.2 beta 1
-	  under MingW would produce pgsql2shp executables that would
-	  segfault.
+	* [r2499] configure.in: Remove extra PGFELIBS definition in one of
+	  the MingW specific sections since it was triggering a linker bug
+	  within MingW's gcc. This was the reason that compiling against
+	  PostgreSQL 8.2 beta 1 under MingW would produce pgsql2shp
+	  executables that would segfault.
 
-2006-10-04 10:47  mschaber
+2006-10-04 10:47  Markus Schaber <markus at schabi.de>
 
-	* fixed svn:ignore
+	* [r2498] java/ejb3, java/ejb3/lib: fixed svn:ignore
 
-2006-10-02 23:26  mschaber
+2006-10-02 23:26  Markus Schaber <markus at schabi.de>
 
-	* Fix all Eclipse warnings in java code, small cleanup
+	* [r2497] java/jdbc/jtssrc/org/postgis/jts/JtsBinaryWriter.java,
+	  java/jdbc/src/examples/TestAutoregister.java,
+	  java/jdbc/src/org/postgis/binary/BinaryWriter.java,
+	  java/pljava/functions.sql,
+	  java/pljava/src/org/postgis/pljava/Aggregates.java,
+	  java/pljava/src/org/postgis/pljava/HelloWorld.java: Fix all
+	  Eclipse warnings in java code, small cleanup
 
-2006-10-02 23:16  mschaber
+2006-10-02 23:16  Markus Schaber <markus at schabi.de>
 
-	* First PLJava checkin.
+	* [r2496] java/pljava, java/pljava/README.txt,
+	  java/pljava/build.xml, java/pljava/functions.sql,
+	  java/pljava/install.sh, java/pljava/postgis_pljava.jar,
+	  java/pljava/src, java/pljava/src/org,
+	  java/pljava/src/org/postgis, java/pljava/src/org/postgis/pljava,
+	  java/pljava/src/org/postgis/pljava/Aggregates.java,
+	  java/pljava/src/org/postgis/pljava/HelloWorld.java,
+	  java/pljava/src/org/postgis/pljava/PLJGeometry.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsParser.java,
+	  java/pljava/src/org/postgis/pljava/PLJtsWriter.java,
+	  java/pljava/update.sh: First PLJava checkin.
 	  pljava needs some patches that are currently floating on
 	  pljava-dev to make it work, it seems that we're the first actual
 	  users of varlen UTD mappings in pljava.
 
-2006-10-02 15:58  mschaber
+2006-10-02 15:58  Markus Schaber <markus at schabi.de>
 
-	* fixed NullPointer exception in org.postgis.Geometry.equals()
+	* [r2495] CHANGES, java/jdbc/src/org/postgis/Geometry.java: fixed
+	  NullPointer exception in org.postgis.Geometry.equals()
 
-2006-10-02 14:39  mschaber
+2006-10-02 14:39  Markus Schaber <markus at schabi.de>
 
-	* added .settings to svn:ignore
+	* [r2494] .: added .settings to svn:ignore
 
-2006-10-02 14:30  mschaber
+2006-10-02 14:30  Markus Schaber <markus at schabi.de>
 
-	* Removed obsolete synchronisation from JTS.
+	* [r2493] CHANGES,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  java/jdbc/jtssrc/org/postgis/jts/JtsBinaryWriter.java: Removed
+	  obsolete synchronisation from JTS.
 
-2006-10-02 12:37  mschaber
+2006-10-02 12:37  Markus Schaber <markus at schabi.de>
 
-	* fix bit width bugs in Docu
+	* [r2492] lwgeom/SERIALIZED_FORM: fix bit width bugs in Docu
 
-2006-09-27 15:50  mschaber
+2006-09-27 15:50  Markus Schaber <markus at schabi.de>
 
-	* Added further jdbc Todo issues.
+	* [r2491] java/jdbc/todo.txt: Added further jdbc Todo issues.
 
-2006-09-27 12:37  strk
+2006-09-27 12:37  Sandro Santilli <strk at keybit.net>
 
-	* removed incompatible pointer type warning
+	* [r2490] lwgeom/lwgeom_geos_c.c: removed incompatible pointer type
+	  warning
 
-2006-09-27 08:37  mschaber
+2006-09-27 08:37  Markus Schaber <markus at schabi.de>
 
-	* fix erroneously changed build.xml
+	* [r2488] java/ejb3/build.xml: fix erroneously changed build.xml
 
-2006-09-27 08:36  mschaber
+2006-09-27 08:36  Markus Schaber <markus at schabi.de>
 
-	* removed hyperflous jar file
+	* [r2487] java/ejb3/README.txt, java/ejb3/build.xml, java/ejb3/lib,
+	  java/ejb3/lib/postgis_1.1.0.jar: removed hyperflous jar file
 
-2006-09-27 08:23  strk
+2006-09-27 08:23  Sandro Santilli <strk at keybit.net>
 
-	* lower default verbosity level
+	* [r2485] loader/pgsql2shp.c: lower default verbosity level
 
-2006-09-27 08:22  strk
+2006-09-27 08:22  Sandro Santilli <strk at keybit.net>
 
-	* fixed to work with SVN
+	* [r2483] make_dist.sh: fixed to work with SVN
 
-2006-09-27 07:50  strk
+2006-09-27 07:50  Sandro Santilli <strk at keybit.net>
 
-	* updated tag step
+	* [r2481] HOWTO_RELEASE: updated tag step
 
-2006-09-27 07:39  strk
+2006-09-27 07:39  Sandro Santilli <strk at keybit.net>
 
-	* updated release notes
+	* [r2480] CHANGES, doc/postgis.xml: updated release notes
 
-2006-09-27 07:29  strk
+2006-09-27 07:29  Sandro Santilli <strk at keybit.net>
 
-	* version set to 1.1.4 (stripped CVS suffix
+	* [r2479] CHANGES, Version.config: version set to 1.1.4 (stripped
+	  CVS suffix
 
-2006-09-25 08:27  strk
+2006-09-25 08:27  Sandro Santilli <strk at keybit.net>
 
-	* Encode pgsql2shp process pid into temporary table name, to reduce
-	  likelyhood of name clashes.
+	* [r2478] CHANGES, loader/pgsql2shp.c: Encode pgsql2shp process pid
+	  into temporary table name, to reduce likelyhood of name clashes.
 
-2006-09-22 14:51  mschaber
+2006-09-22 14:51  Markus Schaber <markus at schabi.de>
 
-	* fixed typo, updated CHANGES
+	* [r2477] CHANGES, java/ejb3/README.txt: fixed typo, updated
+	  CHANGES
 
-2006-09-20 09:03  mschaber
+2006-09-20 09:03  Markus Schaber <markus at schabi.de>
 
-	* added ejb3 tutorial
+	* [r2476] java/ejb3, java/ejb3/.classpath, java/ejb3/.project,
+	  java/ejb3/.settings,
+	  java/ejb3/.settings/org.eclipse.jdt.core.prefs,
+	  java/ejb3/README.txt, java/ejb3/build.xml,
+	  java/ejb3/ejb3spatial.pdf, java/ejb3/jboss,
+	  java/ejb3/jboss/geodata-ds.xml,
+	  java/ejb3/jboss/ingest-service.xml, java/ejb3/lib,
+	  java/ejb3/lib/postgis_1.1.0.jar, java/ejb3/src,
+	  java/ejb3/src/META-INF, java/ejb3/src/META-INF/persistence.xml,
+	  java/ejb3/src/jndi.properties, java/ejb3/src/org,
+	  java/ejb3/src/org/postgis, java/ejb3/src/org/postgis/ejb,
+	  java/ejb3/src/org/postgis/ejb/PersonEntity.java,
+	  java/ejb3/src/org/postgis/ejb/UserBean.java,
+	  java/ejb3/src/org/postgis/ejb/UserBeanRemote.java,
+	  java/ejb3/src/org/postgis/ejb/mdb,
+	  java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java,
+	  java/ejb3/src/org/postgis/hibernate,
+	  java/ejb3/src/org/postgis/hibernate/GeometryType.java: added ejb3
+	  tutorial
 
-2006-09-18 13:21  strk
+2006-09-18 13:21  Sandro Santilli <strk at keybit.net>
 
-	* Applied patch by Michael Fuhr <mike at fuhr.org>:
+	* [r2475] doc/postgis.xml: Applied patch by Michael Fuhr
+	  <mike at fuhr.org>:
 	  Most are spelling errors, but in one case I removed the word
 	  "symmetric"
 	  from the description of the Difference() function
 	  (SymDifference() is
 	  symmetric; Difference() is not).
 
-2006-09-18 09:16  strk
+2006-09-18 09:16  Sandro Santilli <strk at keybit.net>
 
-	* Fixed regress tests to pass with GEOS-3.0.0
+	* [r2474] CHANGES, regress/regress_ogc.sql,
+	  regress/regress_ogc_expected: Fixed regress tests to pass with
+	  GEOS-3.0.0
 
-2006-09-13 20:17  mschaber
+2006-09-13 20:17  Markus Schaber <markus at schabi.de>
 
-	* updated readme to java directory layout change
+	* [r2473] CHANGES: updated readme to java directory layout change
 
-2006-09-09 16:32  pramsey
+2006-09-09 16:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added fix for null dates that are encoded as '' instead of
-	  00000000.
+	* [r2472] loader/dbfopen.c: Added fix for null dates that are
+	  encoded as '' instead of 00000000.
 
-2006-09-07 17:37  strk
+2006-09-07 17:37  Sandro Santilli <strk at keybit.net>
 
-	* More fixes for mixed declarations and code
+	* [r2471] lwgeom/lwgeom_chip.c, lwgeom/lwgeom_dump.c: More fixes
+	  for mixed declarations and code
 
-2006-09-07 17:03  strk
+2006-09-07 17:03  Sandro Santilli <strk at keybit.net>
 
-	* Declare variables at start of blocks...
+	* [r2470] lwgeom/lwgeom_chip.c: Declare variables at start of
+	  blocks...
 
-2006-09-06 11:16  strk
+2006-09-06 11:16  Sandro Santilli <strk at keybit.net>
 
-	* removed duplicated function definition
+	* [r2469] topology/topology.sql.in: removed duplicated function
+	  definition
 
-2006-09-05 15:22  mschaber
+2006-09-05 15:22  Markus Schaber <markus at schabi.de>
 
-	* updated jdbc Makefile to new directory layout
+	* [r2468] java/jdbc/Makefile: updated jdbc Makefile to new
+	  directory layout
 
-2006-09-05 15:16  mschaber
+2006-09-05 15:16  Markus Schaber <markus at schabi.de>
 
-	* Java/JDBC directory reorganization
+	* [r2467] java, java/ejb2, java/jdbc, java/jdbc/ejb2, jdbc2:
+	  Java/JDBC directory reorganization
 
-2006-08-30 08:46  mschaber
+2006-08-30 08:46  Markus Schaber <markus at schabi.de>
 
-	* added EJB2 support POC
+	* [r2466] CHANGES, jdbc2/ejb2, jdbc2/ejb2/CHANGES,
+	  jdbc2/ejb2/COPYING, jdbc2/ejb2/COPYING_LGPL, jdbc2/ejb2/README,
+	  jdbc2/ejb2/build.xml, jdbc2/ejb2/lib, jdbc2/ejb2/lib/commonlib,
+	  jdbc2/ejb2/lib/compiletimelib, jdbc2/ejb2/lib/xdocletlib,
+	  jdbc2/ejb2/prepare-jboss.xml, jdbc2/ejb2/resources,
+	  jdbc2/ejb2/resources/application.xml,
+	  jdbc2/ejb2/resources/build.properties, jdbc2/ejb2/resources/jndi,
+	  jdbc2/ejb2/resources/jndi/jndi.properties,
+	  jdbc2/ejb2/resources/postgis-ejb2-ds.xml, jdbc2/ejb2/src,
+	  jdbc2/ejb2/src/com, jdbc2/ejb2/src/com/geodetix,
+	  jdbc2/ejb2/src/com/geodetix/geo,
+	  jdbc2/ejb2/src/com/geodetix/geo/client,
+	  jdbc2/ejb2/src/com/geodetix/geo/client/Client.java,
+	  jdbc2/ejb2/src/com/geodetix/geo/dao,
+	  jdbc2/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAO.java,
+	  jdbc2/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAOImpl.java,
+	  jdbc2/ejb2/src/com/geodetix/geo/ejb,
+	  jdbc2/ejb2/src/com/geodetix/geo/ejb/GeometryBean.java,
+	  jdbc2/ejb2/src/com/geodetix/geo/ejb/GeometryFacadeBean.java,
+	  jdbc2/ejb2/src/com/geodetix/geo/exception,
+	  jdbc2/ejb2/src/com/geodetix/geo/exception/ApplicationGeoLayerException.java:
+	  added EJB2 support POC
 
-2006-08-30 08:39  mschaber
+2006-08-30 08:39  Markus Schaber <markus at schabi.de>
 
-	* fixed README about droped trove4j dependency
+	* [r2465] jdbc2/README: fixed README about droped trove4j
+	  dependency
 
-2006-07-28 13:11  strk
+2006-07-28 13:11  Sandro Santilli <strk at keybit.net>
 
-	* added regress/lwpostgis.sql to svn:ignore list
+	* [r2464] regress: added regress/lwpostgis.sql to svn:ignore list
 
-2006-07-28 13:08  strk
+2006-07-28 13:08  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r2463] CHANGES: updated
 
-2006-07-28 13:07  strk
+2006-07-28 13:07  Sandro Santilli <strk at keybit.net>
 
-	* Added tests for makeline, makebox2d and makebox3d
+	* [r2462] regress/ctors.sql, regress/ctors_expected: Added tests
+	  for makeline, makebox2d and makebox3d
 
-2006-07-28 13:07  strk
+2006-07-28 13:07  Sandro Santilli <strk at keybit.net>
 
-	* Fixed small typo in debugging message, replaced custom SRID check
-	  with errorIfSRIDMismatch() function in LWGEOM_makeline
+	* [r2461] lwgeom/lwgeom_functions_basic.c: Fixed small typo in
+	  debugging message, replaced custom SRID check with
+	  errorIfSRIDMismatch() function in LWGEOM_makeline
 
-2006-07-28 13:06  strk
+2006-07-28 13:06  Sandro Santilli <strk at keybit.net>
 
-	* Added SRID match check in MakeBox3D, fixed small typo in error
-	  message
+	* [r2460] lwgeom/lwgeom_box3d.c: Added SRID match check in
+	  MakeBox3D, fixed small typo in error message
 
-2006-07-28 13:05  strk
+2006-07-28 13:05  Sandro Santilli <strk at keybit.net>
 
-	* Added SRID match check in MakeBox2D
+	* [r2459] lwgeom/lwgeom_box2dfloat4.c: Added SRID match check in
+	  MakeBox2D
 
-2006-07-27 15:06  strk
+2006-07-27 15:06  Sandro Santilli <strk at keybit.net>
 
-	* Marked shapefiles as binary, corrected accidentally mangled ones
+	* [r2458] regress/loader/Arc.dbf, regress/loader/Arc.shp,
+	  regress/loader/Arc.shx, regress/loader/ArcM.dbf,
+	  regress/loader/ArcM.shp, regress/loader/ArcM.shx,
+	  regress/loader/ArcZ.dbf, regress/loader/ArcZ.shp,
+	  regress/loader/ArcZ.shx, regress/loader/MultiPoint.dbf,
+	  regress/loader/MultiPoint.shp, regress/loader/MultiPoint.shx,
+	  regress/loader/MultiPointM.dbf, regress/loader/MultiPointM.shp,
+	  regress/loader/MultiPointM.shx, regress/loader/MultiPointZ.dbf,
+	  regress/loader/MultiPointZ.shp, regress/loader/MultiPointZ.shx,
+	  regress/loader/Point.dbf, regress/loader/Point.shp,
+	  regress/loader/Point.shx, regress/loader/PointM.dbf,
+	  regress/loader/PointM.shp, regress/loader/PointM.shx,
+	  regress/loader/PointZ.dbf, regress/loader/PointZ.shp,
+	  regress/loader/PointZ.shx, regress/loader/Polygon.dbf,
+	  regress/loader/Polygon.shp, regress/loader/Polygon.shx,
+	  regress/loader/PolygonM.dbf, regress/loader/PolygonM.shp,
+	  regress/loader/PolygonM.shx, regress/loader/PolygonZ.dbf,
+	  regress/loader/PolygonZ.shp, regress/loader/PolygonZ.shx: Marked
+	  shapefiles as binary, corrected accidentally mangled ones
 
-2006-07-27 09:44  mschaber
+2006-07-27 09:44  Markus Schaber <markus at schabi.de>
 
-	* typo fix in comment
+	* [r2457] jdbc2/Makefile: typo fix in comment
 
-2006-07-26 18:44  pramsey
+2006-07-26 18:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed Refractions mailing address.
+	* [r2456] doc/postgis.xml: Changed Refractions mailing address.
 
-2006-07-26 17:21  pramsey
+2006-07-26 17:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-order repository
+	* [r2455] doc/.cvsignore: Re-order repository
 
-2006-07-26 17:21  pramsey
+2006-07-26 17:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Re-order repository
+	* [r2454] .cvsignore: Re-order repository
 
-2006-07-25 20:16  strk
+2006-07-25 20:16  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in collect() function discarding SRID of input
+	* [r2413] CHANGES, lwgeom/lwgeom_functions_basic.c,
+	  regress/Makefile, regress/ctors.sql, regress/ctors_expected:
+	  Fixed bug in collect() function discarding SRID of input
 
-2006-07-25 18:24  mschaber
+2006-07-25 18:24  Markus Schaber <markus at schabi.de>
 
-	* Reworked jdbc2 makefile
+	* [r2412] jdbc2/Makefile, jdbc2/sources.inc: Reworked jdbc2
+	  makefile
 
-2006-07-21 21:21  pramsey
+2006-07-21 21:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add official "adaptions" to the files to make them suitable for
+	* [r2411] extras/ogc_test_suite/1_schema.sql,
+	  extras/ogc_test_suite/2_queries.sql: Add official "adaptions" to
+	  the files to make them suitable for
 	  submission to the OGC compliance process.
 
-2006-07-19 13:31  mschaber
+2006-07-19 13:31  Markus Schaber <markus at schabi.de>
 
-	* fixed checkSrid method in JtsBinaryWriter
+	* [r2410] jdbc2/jtssrc/org/postgis/jts/JtsBinaryWriter.java: fixed
+	  checkSrid method in JtsBinaryWriter
 
-2006-07-19 09:45  mschaber
+2006-07-19 09:45  Markus Schaber <markus at schabi.de>
 
-	* Fix setSridRecurse function in JTS
+	* [r2409] jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java: Fix
+	  setSridRecurse function in JTS
 
-2006-07-18 18:13  mschaber
+2006-07-18 18:13  Markus Schaber <markus at schabi.de>
 
-	* fix compiler warning due to deprecated method
+	* [r2408] jdbc2/src/examples/TestJava2d.java: fix compiler warning
+	  due to deprecated method
 
-2006-07-18 18:13  mschaber
+2006-07-18 18:13  Markus Schaber <markus at schabi.de>
 
-	* fix SRID handling in JTS code
+	* [r2407] CHANGES,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryWriter.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java: fix SRID handling
+	  in JTS code
 
-2006-07-07 13:56  strk
+2006-07-07 13:56  Sandro Santilli <strk at keybit.net>
 
-	* Applied Michael Fuhr patches:
+	* [r2406] lwgeom/long_xact.sql, lwgeom/lwpostgis.sql.in: Applied
+	  Michael Fuhr patches:
 	  Eliminate the warnings that escape_string_warning complains
 	  about.
 	  The patches change \' (backslash single-quote) to ''
 	  (single-quote single-quote) and replace a couple of other escapes
 	  with calls to chr().
 
-2006-07-02 23:41  strk
+2006-07-02 23:41  Sandro Santilli <strk at keybit.net>
 
-	* Fixed support for PostgreSQL 8.2 (gist) - patch by Michael Fuhr
+	* [r2405] CHANGES, Version.config, lwgeom/lwgeom_gist.c: Fixed
+	  support for PostgreSQL 8.2 (gist) - patch by Michael Fuhr
 	  <mike at fuhr.org>
 
-2006-06-30 21:29  strk
+2006-06-30 21:29  Sandro Santilli <strk at keybit.net>
 
-	* Prepared for 1.1.3 release: release notes, changes, version.
-	  Release date set for today (2006-06-30)
+	* [r2403] CHANGES, Version.config, doc/long_xact.xml,
+	  doc/postgis.xml: Prepared for 1.1.3 release: release notes,
+	  changes, version. Release date set for today (2006-06-30)
 
-2006-06-26 01:02  strk
+2006-06-26 01:02  Sandro Santilli <strk at keybit.net>
 
-	* replaced ROLLBACK with COMMIT in psql output to hide differences
-	  with 7.4 and lower pgsql versions.
+	* [r2402] regress/run_test: replaced ROLLBACK with COMMIT in psql
+	  output to hide differences with 7.4 and lower pgsql versions.
 
-2006-06-26 00:56  strk
+2006-06-26 00:56  Sandro Santilli <strk at keybit.net>
 
-	* Fixed Invalid Memory Alloc request size error on GEOS=>LWGEOM
-	  conversion for EMPTY geometries. Removed warnings when built with
-	  POSTGIS_DEBUG enabled.
+	* [r2401] lwgeom/lwgeom_geos_c.c: Fixed Invalid Memory Alloc
+	  request size error on GEOS=>LWGEOM conversion for EMPTY
+	  geometries. Removed warnings when built with POSTGIS_DEBUG
+	  enabled.
 
-2006-06-26 00:41  strk
+2006-06-26 00:41  Sandro Santilli <strk at keybit.net>
 
-	* Added debug lines in LWGEOM_affine, fixed some compiler warnings
-	  for build with POSTGIS_DEBUG enabled.
+	* [r2400] lwgeom/lwgeom_functions_basic.c: Added debug lines in
+	  LWGEOM_affine, fixed some compiler warnings for build with
+	  POSTGIS_DEBUG enabled.
 
-2006-06-26 00:40  strk
+2006-06-26 00:40  Sandro Santilli <strk at keybit.net>
 
-	* qualified all geometry arguments.
+	* [r2399] regress/affine.sql: qualified all geometry arguments.
 
-2006-06-25 23:59  strk
+2006-06-25 23:59  Sandro Santilli <strk at keybit.net>
 
-	* Added Long Transaction Support routines, dox and regress test.
+	* [r2398] CHANGES, doc/Makefile, doc/long_xact.xml,
+	  doc/postgis.xml, lwgeom/Makefile, lwgeom/long_xact.c,
+	  lwgeom/long_xact.sql, lwgeom/lwpostgis.sql.in, regress/Makefile,
+	  regress/long_xact.sql, regress/long_xact_expected: Added Long
+	  Transaction Support routines, dox and regress test.
 
-2006-06-25 23:45  strk
+2006-06-25 23:45  Sandro Santilli <strk at keybit.net>
 
-	* Fixed the lc_messages failure by avoiding attempts at setting it
-	  when run against a postgresql version < 8.0. Also fixed a path in
-	  a message from run_test.
+	* [r2397] regress/Makefile, regress/run_test: Fixed the lc_messages
+	  failure by avoiding attempts at setting it when run against a
+	  postgresql version < 8.0. Also fixed a path in a message from
+	  run_test.
 
-2006-06-25 22:53  strk
+2006-06-25 22:53  Sandro Santilli <strk at keybit.net>
 
-	* Release Notes moved to an higher depth to reduce ToC noise.
+	* [r2396] doc/postgis.xml: Release Notes moved to an higher depth
+	  to reduce ToC noise.
 
-2006-06-25 22:50  strk
+2006-06-25 22:50  Sandro Santilli <strk at keybit.net>
 
-	* Fixed HTML output rules
+	* [r2395] doc/Makefile: Fixed HTML output rules
 
-2006-06-25 22:33  strk
+2006-06-25 22:33  Sandro Santilli <strk at keybit.net>
 
-	* Add getTransactionID() stored procedure to support pgsql 7.3 (not
+	* [r2394] extras/WFS_locks/WFS_locks.c,
+	  extras/WFS_locks/WFS_locks.sql.in, extras/WFS_locks/test.sql: Add
+	  getTransactionID() stored procedure to support pgsql 7.3 (not
 	  tested against 7.2)
 
-2006-06-24 01:08  strk
+2006-06-24 01:08  Sandro Santilli <strk at keybit.net>
 
-	* Removed compiler warnings (and more requested)
+	* [r2393] extras/WFS_locks/Makefile, extras/WFS_locks/WFS_locks.c:
+	  Removed compiler warnings (and more requested)
 
-2006-06-24 00:11  strk
+2006-06-24 00:11  Sandro Santilli <strk at keybit.net>
 
-	* Added spaces between parameters ref and operator, as pgsql 7.3
-	  chokes otherwise ($1*$2 becomes $1 * $2)
+	* [r2392] lwgeom/lwpostgis.sql.in: Added spaces between parameters
+	  ref and operator, as pgsql 7.3 chokes otherwise ($1*$2 becomes $1
+	  * $2)
 
-2006-06-23 23:37  strk
+2006-06-23 23:37  Sandro Santilli <strk at keybit.net>
 
-	* Added EnableLongTransactions() and DisableLongTransactions().
+	* [r2391] extras/WFS_locks/README, extras/WFS_locks/WFS_locks.c,
+	  extras/WFS_locks/WFS_locks.sql.in: Added EnableLongTransactions()
+	  and DisableLongTransactions().
 
-2006-06-23 21:56  strk
+2006-06-23 21:56  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a couple of bugs, added a simple test script, cleaner error
+	* [r2390] extras/WFS_locks/Makefile, extras/WFS_locks/WFS_locks.c,
+	  extras/WFS_locks/WFS_locks.sql.in, extras/WFS_locks/test.sql:
+	  Fixed a couple of bugs, added a simple test script, cleaner error
 	  messages
 	  and compile-time support for unauthorized row updates behaviour
 	  (abort, skip).
 
-2006-06-19 10:42  strk
+2006-06-19 10:42  Sandro Santilli <strk at keybit.net>
 
-	* Removed -0 values from polygon doubles
+	* [r2389] regress/loader/Polygon-wkb.expected,
+	  regress/loader/Polygon-wkt.expected, regress/loader/Polygon.shp,
+	  regress/loader/PolygonM-wkb.expected,
+	  regress/loader/PolygonM-wkt.expected,
+	  regress/loader/PolygonM.shp,
+	  regress/loader/PolygonZ-wkb.expected,
+	  regress/loader/PolygonZ-wkt.expected,
+	  regress/loader/PolygonZ.shp: Removed -0 values from polygon
+	  doubles
 
-2006-06-18 11:29  strk
+2006-06-18 11:29  Sandro Santilli <strk at keybit.net>
 
-	* Changed -e test with -f, for Solaris support
-
-2006-06-17 11:46  strk
-
-	* removed spurious newline
-
-2006-06-17 11:44  strk
+	* [r2388] regress/run_test: Changed -e test with -f, for Solaris
+	  support
 
-	* Fixed portability issues in the new run_test code, added loader
-	  test
+2006-06-17 11:46  Sandro Santilli <strk at keybit.net>
+
+	* [r2387] regress/loader/MultiPointZ-wkt.expected: removed spurious
+	  newline
+
+2006-06-17 11:44  Sandro Santilli <strk at keybit.net>
+
+	* [r2386] regress/Makefile, regress/loader/Arc-wkb.expected,
+	  regress/loader/Arc-wkb.sql, regress/loader/Arc-wkt.expected,
+	  regress/loader/Arc-wkt.sql, regress/loader/Arc.dbf,
+	  regress/loader/Arc.shp, regress/loader/Arc.shx,
+	  regress/loader/ArcM-wkb.expected, regress/loader/ArcM-wkb.sql,
+	  regress/loader/ArcM-wkt.expected, regress/loader/ArcM-wkt.sql,
+	  regress/loader/ArcM.dbf, regress/loader/ArcM.shp,
+	  regress/loader/ArcM.shx, regress/loader/ArcZ-wkb.expected,
+	  regress/loader/ArcZ-wkt.expected, regress/loader/ArcZ.dbf,
+	  regress/loader/ArcZ.shp, regress/loader/ArcZ.shx,
+	  regress/loader/MultiPoint-wkb.expected,
+	  regress/loader/MultiPoint-wkb.sql,
+	  regress/loader/MultiPoint-wkt.expected,
+	  regress/loader/MultiPoint-wkt.sql, regress/loader/MultiPoint.dbf,
+	  regress/loader/MultiPoint.shp, regress/loader/MultiPoint.shx,
+	  regress/loader/MultiPointM-wkb.expected,
+	  regress/loader/MultiPointM-wkb.sql,
+	  regress/loader/MultiPointM-wkt.expected,
+	  regress/loader/MultiPointM-wkt.sql,
+	  regress/loader/MultiPointM.dbf, regress/loader/MultiPointM.shp,
+	  regress/loader/MultiPointM.shx,
+	  regress/loader/MultiPointZ-wkb.expected,
+	  regress/loader/MultiPointZ-wkb.sql,
+	  regress/loader/MultiPointZ-wkt.expected,
+	  regress/loader/MultiPointZ-wkt.sql,
+	  regress/loader/MultiPointZ.dbf, regress/loader/MultiPointZ.shp,
+	  regress/loader/MultiPointZ.shx,
+	  regress/loader/Point-wkb.expected, regress/loader/Point-wkb.sql,
+	  regress/loader/Point-wkt.expected, regress/loader/Point-wkt.sql,
+	  regress/loader/Point.dbf, regress/loader/Point.shp,
+	  regress/loader/Point.shx, regress/loader/PointM-wkb.expected,
+	  regress/loader/PointM-wkb.sql,
+	  regress/loader/PointM-wkt.expected,
+	  regress/loader/PointM-wkt.sql, regress/loader/PointM.dbf,
+	  regress/loader/PointM.shp, regress/loader/PointM.shx,
+	  regress/loader/PointZ-wkb.expected,
+	  regress/loader/PointZ-wkb.sql,
+	  regress/loader/PointZ-wkt.expected,
+	  regress/loader/PointZ-wkt.sql, regress/loader/PointZ.dbf,
+	  regress/loader/PointZ.shp, regress/loader/PointZ.shx,
+	  regress/loader/Polygon-wkb.expected,
+	  regress/loader/Polygon-wkb.sql,
+	  regress/loader/Polygon-wkt.expected,
+	  regress/loader/Polygon-wkt.sql, regress/loader/Polygon.dbf,
+	  regress/loader/Polygon.shp, regress/loader/Polygon.shx,
+	  regress/loader/PolygonM-wkb.expected,
+	  regress/loader/PolygonM-wkb.sql,
+	  regress/loader/PolygonM-wkt.expected,
+	  regress/loader/PolygonM-wkt.sql, regress/loader/PolygonM.dbf,
+	  regress/loader/PolygonM.shp, regress/loader/PolygonM.shx,
+	  regress/loader/PolygonZ-wkb.expected,
+	  regress/loader/PolygonZ-wkb.sql,
+	  regress/loader/PolygonZ-wkt.expected,
+	  regress/loader/PolygonZ-wkt.sql, regress/loader/PolygonZ.dbf,
+	  regress/loader/PolygonZ.shp, regress/loader/PolygonZ.shx,
+	  regress/loader/README, regress/loader/mlines2d-wkb.expected,
+	  regress/loader/mlines2d-wkt.expected,
+	  regress/loader/mlines2d.dbf, regress/loader/mlines2d.shp,
+	  regress/loader/mlines2d.shx,
+	  regress/loader/mlines3dm-wkb.expected,
+	  regress/loader/mlines3dm-wkt.expected,
+	  regress/loader/mlines3dm.dbf, regress/loader/mlines3dm.shp,
+	  regress/loader/mlines3dm.shx,
+	  regress/loader/mlines3dz-wkb.expected,
+	  regress/loader/mlines3dz-wkt.expected,
+	  regress/loader/mlines3dz.dbf, regress/loader/mlines3dz.shp,
+	  regress/loader/mlines3dz.shx,
+	  regress/loader/mlines4d-wkb.expected,
+	  regress/loader/mlines4d-wkt.expected,
+	  regress/loader/mlines4d.dbf, regress/loader/mlines4d.shp,
+	  regress/loader/mlines4d.shx, regress/run_test: Fixed portability
+	  issues in the new run_test code, added loader test
 	  for all supported shapefile types
 
-2006-06-16 14:18  strk
-
-	* Aliased 'test' rule as 'check', to conform to common practice.
-
-2006-06-16 14:13  strk
-
-	* New regress test cases and support for loader/dumper.
-
-2006-06-16 14:12  strk
-
-	* - BUGFIX in pgsql2shp successful return code.
+2006-06-16 14:18  Sandro Santilli <strk at keybit.net>
+
+	* [r2385] CHANGES, GNUmakefile, Makefile, README.postgis: Aliased
+	  'test' rule as 'check', to conform to common practice.
+
+2006-06-16 14:13  Sandro Santilli <strk at keybit.net>
+
+	* [r2384] CHANGES, regress/Makefile, regress/loader,
+	  regress/loader/README, regress/loader/mlines2d-wkb.expected,
+	  regress/loader/mlines2d-wkt.expected,
+	  regress/loader/mlines2d.dbf, regress/loader/mlines2d.shp,
+	  regress/loader/mlines2d.shx,
+	  regress/loader/mlines3dm-wkb.expected,
+	  regress/loader/mlines3dm-wkt.expected,
+	  regress/loader/mlines3dm.dbf, regress/loader/mlines3dm.shp,
+	  regress/loader/mlines3dm.shx,
+	  regress/loader/mlines3dz-wkb.expected,
+	  regress/loader/mlines3dz-wkt.expected,
+	  regress/loader/mlines3dz.dbf, regress/loader/mlines3dz.shp,
+	  regress/loader/mlines3dz.shx,
+	  regress/loader/mlines4d-wkb.expected,
+	  regress/loader/mlines4d-wkt.expected,
+	  regress/loader/mlines4d.dbf, regress/loader/mlines4d.shp,
+	  regress/loader/mlines4d.shx, regress/run_test: New regress test
+	  cases and support for loader/dumper.
+
+2006-06-16 14:12  Sandro Santilli <strk at keybit.net>
+
+	* [r2383] loader/pgsql2shp.c, loader/shp2pgsql.c: - BUGFIX in
+	  pgsql2shp successful return code.
 	  - BUGFIX in shp2pgsql handling of MultiLine WKT.
 
-2006-06-13 10:20  strk
+2006-06-13 10:20  Sandro Santilli <strk at keybit.net>
 
-	* Updated template_gis Makefile to work with older debian sarge
-	  (stable).
+	* [r2382] extras/template_gis/Makefile: Updated template_gis
+	  Makefile to work with older debian sarge (stable).
 	  Patch by Alex Bodnaru.
 
-2006-06-09 06:03  strk
+2006-06-09 06:03  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in PGISSCRIPT variable (provided by Alex Bodnaru)
+	* [r2381] extras/template_gis/profile: Fixed bug in PGISSCRIPT
+	  variable (provided by Alex Bodnaru)
 
-2006-06-05 17:24  strk
+2006-06-05 17:24  Sandro Santilli <strk at keybit.net>
 
-	* Updated misleading documentation for Segmentize() function
+	* [r2380] doc/postgis.xml, lwgeom/lwgeom_functions_basic.c: Updated
+	  misleading documentation for Segmentize() function
 
-2006-06-02 16:59  strk
+2006-06-02 16:59  Sandro Santilli <strk at keybit.net>
 
-	* Fully supported georeferencing in chip drawing ops (must still
-	  tweak edge cases)
+	* [r2379] lwgeom/lwgeom_chip.c: Fully supported georeferencing in
+	  chip drawing ops (must still tweak edge cases)
 
-2006-06-01 16:57  strk
+2006-06-01 16:57  Sandro Santilli <strk at keybit.net>
 
-	* Fixed lwgeom drawing primitives to honour georeferencing.
+	* [r2378] lwgeom/liblwgeom.h, lwgeom/lwgeom_chip.c: Fixed lwgeom
+	  drawing primitives to honour georeferencing.
 
-2006-06-01 07:07  strk
+2006-06-01 07:07  Sandro Santilli <strk at keybit.net>
 
-	* Added "fmgr.h" include, for PG_MODULE_MAGIC definition
+	* [r2377] lwgeom/lwgeom_pg.c: Added "fmgr.h" include, for
+	  PG_MODULE_MAGIC definition
 
-2006-06-01 06:58  strk
+2006-06-01 06:58  Sandro Santilli <strk at keybit.net>
 
-	* Added magic block ctor for 8.2 compatibility
+	* [r2376] CHANGES, lwgeom/lwgeom_pg.c: Added magic block ctor for
+	  8.2 compatibility
 
-2006-06-01 06:56  strk
+2006-06-01 06:56  Sandro Santilli <strk at keybit.net>
 
-	* Don't link pgsql2shp to more libs then required.
+	* [r2375] CHANGES, configure.in: Don't link pgsql2shp to more libs
+	  then required.
 
-2006-05-31 08:58  strk
+2006-05-31 08:58  Sandro Santilli <strk at keybit.net>
 
-	* Added support and info for CHIP.datatype 7,8,107 and 108. They
-	  were not documented but used by CHIP canonical input function.
+	* [r2374] lwgeom/liblwgeom.h, lwgeom/lwgeom_chip.c: Added support
+	  and info for CHIP.datatype 7,8,107 and 108. They were not
+	  documented but used by CHIP canonical input function.
 
-2006-05-31 06:43  strk
+2006-05-31 06:43  Sandro Santilli <strk at keybit.net>
 
-	* Imported template_gis utilities contributed by Roberto Boati and
-	  Alex Bodnaru.
+	* [r2373] extras/template_gis, extras/template_gis/Makefile,
+	  extras/template_gis/README,
+	  extras/template_gis/createdb.postgis.1,
+	  extras/template_gis/createdb.postgis.in,
+	  extras/template_gis/mktemplate_gis.1,
+	  extras/template_gis/mktemplate_gis.in,
+	  extras/template_gis/mktemplate_gis.sh.in,
+	  extras/template_gis/postgis_env.sh.in,
+	  extras/template_gis/postgres_lib.sh.in,
+	  extras/template_gis/profile,
+	  extras/template_gis/rmtemplate_gis.1,
+	  extras/template_gis/rmtemplate_gis.in,
+	  extras/template_gis/rmtemplate_gis.sh.in: Imported template_gis
+	  utilities contributed by Roberto Boati and Alex Bodnaru.
 
-2006-05-30 17:19  strk
+2006-05-30 17:19  Sandro Santilli <strk at keybit.net>
 
-	* Added some primitives for CHIP management + rendering for points
-	  and lines
+	* [r2372] lwgeom/lwgeom_chip.c: Added some primitives for CHIP
+	  management + rendering for points and lines
 
-2006-05-30 17:17  strk
+2006-05-30 17:17  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in CHIP input routine failing on uncompressed 1x1
-	  integer chip inputs
+	* [r2371] lwgeom/lwgeom_chip.c: Fixed bug in CHIP input routine
+	  failing on uncompressed 1x1 integer chip inputs
 
-2006-05-30 08:47  strk
+2006-05-30 08:47  Sandro Santilli <strk at keybit.net>
 
-	* added copyright header
+	* [r2370] lwgeom/lwgeom.c: added copyright header
 
-2006-05-30 08:38  strk
+2006-05-30 08:38  Sandro Santilli <strk at keybit.net>
 
-	* Added some missing copyright headers.
+	* [r2369] lwgeom/lwcollection.c, lwgeom/lwgeom_estimate.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwline.c,
+	  lwgeom/lwmline.c, lwgeom/lwmpoint.c, lwgeom/lwmpoly.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c, lwgeom/measures.c,
+	  lwgeom/ptarray.c: Added some missing copyright headers.
 
-2006-05-23 09:48  strk
+2006-05-23 09:48  Sandro Santilli <strk at keybit.net>
 
-	* NEW AsHEXEWKB(geom, XDR|NDR) function + documentation
+	* [r2368] CHANGES, doc/postgis.xml, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwpostgis.sql.in: NEW AsHEXEWKB(geom, XDR|NDR) function +
+	  documentation
 
-2006-05-22 15:29  strk
+2006-05-22 15:29  Sandro Santilli <strk at keybit.net>
 
-	* Moved 'measures' query into a specific file, added a test for bug
-	  #108
+	* [r2367] regress/Makefile, regress/measures.sql,
+	  regress/measures_expected, regress/regress.sql,
+	  regress/regress_expected: Moved 'measures' query into a specific
+	  file, added a test for bug #108
 
-2006-05-22 14:57  strk
+2006-05-22 14:57  Sandro Santilli <strk at keybit.net>
 
-	* Set version to 1.1.3CVS
+	* [r2366] Version.config: Set version to 1.1.3CVS
 
-2006-05-22 14:23  strk
+2006-05-22 14:23  Sandro Santilli <strk at keybit.net>
 
-	* Transform a SRID==0 from GEOS to a SRID=-1.
+	* [r2365] lwgeom/lwgeom_geos_c.c: Transform a SRID==0 from GEOS to
+	  a SRID=-1.
 
-2006-05-22 13:08  strk
+2006-05-22 13:08  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in distance2d_poly_poly() never really comparing ring
-	  distances
+	* [r2364] CHANGES, lwgeom/measures.c: Fixed a bug in
+	  distance2d_poly_poly() never really comparing ring distances
 	  between 1st ring of 1st geom and all rings of second one.
 
-2006-05-22 12:10  strk
+2006-05-22 12:10  Sandro Santilli <strk at keybit.net>
 
-	* Added 'with oids' specification to create table (oids are used
-	  for the test).
+	* [r2363] topology/test/load_topology.sql: Added 'with oids'
+	  specification to create table (oids are used for the test).
 	  'With oids' was available in postgresql 7.3.4 so we should not be
 	  highering
 	  the requirements for topology. Suggestion from Alex Bodnaru.
 
-2006-05-22 11:17  strk
+2006-05-22 11:17  Sandro Santilli <strk at keybit.net>
 
-	* Applied cleanups by Alex Bodnaru
+	* [r2362] topology/test/Makefile: Applied cleanups by Alex Bodnaru
 
-2006-05-22 11:02  strk
+2006-05-22 11:02  Sandro Santilli <strk at keybit.net>
 
-	* New DumpRings(polygon) function + docs
+	* [r2361] CHANGES, doc/postgis.xml, lwgeom/lwgeom_dump.c,
+	  lwgeom/lwpostgis.sql.in: New DumpRings(polygon) function + docs
 
-2006-05-22 10:58  strk
+2006-05-22 10:58  Sandro Santilli <strk at keybit.net>
 
-	* fixed errors in DEBUG builds
+	* [r2360] lwgeom/measures.c: fixed errors in DEBUG builds
 
-2006-05-22 10:38  strk
+2006-05-22 10:38  Sandro Santilli <strk at keybit.net>
 
-	* Added usage comment about lwpoly_construct()
+	* [r2359] lwgeom/liblwgeom.h: Added usage comment about
+	  lwpoly_construct()
 
-2006-05-17 15:52  strk
+2006-05-17 15:52  Sandro Santilli <strk at keybit.net>
 
-	* Added Bruce Rindahl in the credits hall
+	* [r2358] doc/postgis.xml: Added Bruce Rindahl in the credits hall
 
-2006-05-17 15:32  strk
+2006-05-17 15:32  Sandro Santilli <strk at keybit.net>
 
-	* Added note about doc generation change
+	* [r2357] CHANGES: Added note about doc generation change
 
-2006-05-17 13:11  strk
+2006-05-17 13:11  Sandro Santilli <strk at keybit.net>
 
-	* DocBook version set to 4.3 (4.2 did not have <code> tag)
+	* [r2356] doc/postgis.xml: DocBook version set to 4.3 (4.2 did not
+	  have <code> tag)
 	  Thanks to Mateus Loskot for the tip!
 
-2006-05-17 13:04  strk
+2006-05-17 13:04  Sandro Santilli <strk at keybit.net>
 
-	* Changed PDF manual generation rule to use db2pdf from
+	* [r2355] Makefile.config.in, configure.in, doc/Makefile,
+	  doc/README: Changed PDF manual generation rule to use db2pdf from
 	  docbook-utils package. Input does not validate, thus the rule
 	  doesn't succeed yet, but removing <code> tags is enough to
 	  complete.
 
-2006-05-17 12:26  strk
+2006-05-17 12:26  Sandro Santilli <strk at keybit.net>
 
-	* Added note about pdfxmltex being provided by xmltex package
+	* [r2354] doc/README: Added note about pdfxmltex being provided by
+	  xmltex package
 
-2006-05-17 12:25  strk
+2006-05-17 12:25  Sandro Santilli <strk at keybit.net>
 
-	* Added check for pdfxmltex availability before attempting to use
-	  it
+	* [r2353] doc/Makefile: Added check for pdfxmltex availability
+	  before attempting to use it
 
-2006-05-17 07:52  strk
+2006-05-17 07:52  Sandro Santilli <strk at keybit.net>
 
-	* Additional bbox tests for transcale, rotateX and rotateY
+	* [r2352] regress/affine.sql, regress/affine_expected: Additional
+	  bbox tests for transcale, rotateX and rotateY
 
-2006-05-16 19:11  strk
+2006-05-16 19:11  Sandro Santilli <strk at keybit.net>
 
-	* Added tests for translate and scale bbox computation
+	* [r2351] regress/affine.sql, regress/affine_expected: Added tests
+	  for translate and scale bbox computation
 
-2006-05-16 17:09  strk
+2006-05-16 17:09  Sandro Santilli <strk at keybit.net>
 
-	* BUGXFIX in affine() failing to update bounding box
+	* [r2350] CHANGES, lwgeom/lwgeom_functions_basic.c: BUGXFIX in
+	  affine() failing to update bounding box
 
-2006-05-11 14:24  strk
+2006-05-11 14:24  Sandro Santilli <strk at keybit.net>
 
-	* Update to 1.1.2 by Laurent WANDREBECK
+	* [r2349] extras/rpm/spec/postgis.spec: Update to 1.1.2 by Laurent
+	  WANDREBECK
 
-2006-05-11 09:41  strk
+2006-05-11 09:41  Sandro Santilli <strk at keybit.net>
 
-	* added postgis.fo and postgis.pdf
+	* [r2348] doc, doc/.cvsignore: added postgis.fo and postgis.pdf
 
-2006-05-11 09:41  strk
+2006-05-11 09:41  Sandro Santilli <strk at keybit.net>
 
-	* changed single-file html production to 'make html', simpler
+	* [r2347] doc/README: changed single-file html production to 'make
+	  html', simpler
 
-2006-05-10 13:40  strk
+2006-05-10 13:40  Sandro Santilli <strk at keybit.net>
 
-	* Added notes about requirements for dox generation, cleaned up
-	  Makefile
+	* [r2346] doc/Makefile, doc/README: Added notes about requirements
+	  for dox generation, cleaned up Makefile
 
-2006-05-10 10:47  mschaber
+2006-05-10 10:47  Markus Schaber <markus at schabi.de>
 
-	* Small typo fix in comment
+	* [r2345] jdbc2/src/org/postgis/Point.java: Small typo fix in
+	  comment
 
-2006-05-10 10:37  strk
+2006-05-10 10:37  Sandro Santilli <strk at keybit.net>
 
-	* Removed >/dev/null redirection of pdfxmltex command, to see
-	  what's going on
+	* [r2344] doc/Makefile: Removed >/dev/null redirection of pdfxmltex
+	  command, to see what's going on
 
-2006-05-09 13:06  mschaber
+2006-05-09 13:06  Markus Schaber <markus at schabi.de>
 
-	* Fixed JtsGeometry.equals()
+	* [r2343] CHANGES, Version.config,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  jdbc2/src/org/postgis/Geometry.java: Fixed JtsGeometry.equals()
 	  Imporoved Geometry setter/getter
 	  updated postgis version
 
-2006-05-04 15:19  strk
+2006-05-04 15:19  Sandro Santilli <strk at keybit.net>
 
-	* Support for Tru64 build (bug#104)
+	* [r2342] CHANGES, lwgeom/lex.yy.c, lwgeom/wktparse.lex: Support
+	  for Tru64 build (bug#104)
 
-2006-05-03 08:33  mschaber
+2006-05-03 08:33  Markus Schaber <markus at schabi.de>
 
-	* added eclipsebin to cvsignore
+	* [r2341] ., .cvsignore: added eclipsebin to cvsignore
 
-2006-05-03 08:30  mschaber
+2006-05-03 08:30  Markus Schaber <markus at schabi.de>
 
-	* Added regression tests for OGC conformant multiPoint parsing,
-	  updated CHANGELOG
+	* [r2340] CHANGES, jdbc2/src/examples/TestParser.java: Added
+	  regression tests for OGC conformant multiPoint parsing, updated
+	  CHANGELOG
 
-2006-05-03 08:18  mschaber
+2006-05-03 08:18  Markus Schaber <markus at schabi.de>
 
-	* Added test case for scientific notation
+	* [r2339] jdbc2/src/examples/TestParser.java: Added test case for
+	  scientific notation
 
-2006-04-26 14:42  mschaber
+2006-04-26 14:42  Markus Schaber <markus at schabi.de>
 
-	* fixed typo in regression test online help
+	* [r2338] jdbc2/src/examples/TestParser.java: fixed typo in
+	  regression test online help
 
-2006-04-26 12:19  strk
+2006-04-26 12:19  Sandro Santilli <strk at keybit.net>
 
-	* Added --with-geos-libdir and --with-proj-libdir configure
-	  switches
+	* [r2337] CHANGES, Makefile.config.in, configure.in,
+	  lwgeom/Makefile: Added --with-geos-libdir and --with-proj-libdir
+	  configure switches
 
-2006-04-18 16:57  strk
+2006-04-18 16:57  Sandro Santilli <strk at keybit.net>
 
-	* Fixed invalid C++ style comment
+	* [r2336] lwgeom/lex.yy.c, lwgeom/wktparse.y: Fixed invalid C++
+	  style comment
 
-2006-04-18 16:56  strk
+2006-04-18 16:56  Sandro Santilli <strk at keybit.net>
 
-	* Used ad-hoc AC_PROG_YACC for yacc detection
+	* [r2335] configure.in: Used ad-hoc AC_PROG_YACC for yacc detection
 
-2006-04-18 14:09  strk
+2006-04-18 14:09  Sandro Santilli <strk at keybit.net>
 
-	* Limited text field size to 255 (bug #84) [will eventually provide
-	  a switch to support wider fields ]
+	* [r2334] loader/pgsql2shp.c: Limited text field size to 255 (bug
+	  #84) [will eventually provide a switch to support wider fields ]
 
-2006-04-18 12:36  strk
+2006-04-18 12:36  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r2333] CHANGES: updated
 
-2006-04-18 12:30  strk
+2006-04-18 12:30  Sandro Santilli <strk at keybit.net>
 
-	* Added test for wkt parser
+	* [r2332] regress/Makefile, regress/wkt.sql, regress/wkt_expected:
+	  Added test for wkt parser
 
-2006-04-18 12:30  strk
+2006-04-18 12:30  Sandro Santilli <strk at keybit.net>
 
-	* WKT parser: forbidden EMPTY elements in non-collection
-	  multigeoms.
+	* [r2331] lwgeom/lex.yy.c, lwgeom/wktparse.tab.c,
+	  lwgeom/wktparse.y: WKT parser: forbidden EMPTY elements in
+	  non-collection multigeoms.
 
-2006-04-18 10:28  strk
+2006-04-18 10:28  Sandro Santilli <strk at keybit.net>
 
-	* Cleanly handled deserialization of points with non-point input by
-	  raising an error. Made other simple geoms deserializers errors of
-	  this kind be consistent. Added a check in lwgeom_typename() to
-	  avoid memory corruption when input geometrytype is out of range.
+	* [r2330] lwgeom/liblwgeom.c, lwgeom/lwline.c, lwgeom/lwpoint.c,
+	  lwgeom/lwpoly.c: Cleanly handled deserialization of points with
+	  non-point input by raising an error. Made other simple geoms
+	  deserializers errors of this kind be consistent. Added a check in
+	  lwgeom_typename() to avoid memory corruption when input
+	  geometrytype is out of range.
 
-2006-04-18 09:19  strk
+2006-04-18 09:19  Sandro Santilli <strk at keybit.net>
 
-	* Added check for libiconv_open (for MingW) - patch provided by
-	  Mark Cave-Ayland
+	* [r2329] configure.in: Added check for libiconv_open (for MingW) -
+	  patch provided by Mark Cave-Ayland
 
-2006-04-18 09:16  strk
+2006-04-18 09:16  Sandro Santilli <strk at keybit.net>
 
-	* Substituted bzero() use with memset()
+	* [r2328] loader/shp2pgsql.c: Substituted bzero() use with memset()
 
-2006-04-18 09:10  strk
+2006-04-18 09:10  Sandro Santilli <strk at keybit.net>
 
-	* Applied patch by Mark Cave-Ayland allowing in-place regression
+	* [r2327] Makefile.config.in, configure.in, lwgeom/Makefile:
+	  Applied patch by Mark Cave-Ayland allowing in-place regression
 	  tests to
 	  be run under MingW (Win32)
 
-2006-04-10 08:19  strk
+2006-04-10 08:19  Sandro Santilli <strk at keybit.net>
 
-	* Added support for printing argument geoms on union failures
+	* [r2326] lwgeom/lwgeom_jts.c: Added support for printing argument
+	  geoms on union failures
 	  within unite_garray() loop.
 
-2006-03-29 09:25  strk
+2006-03-29 09:25  Sandro Santilli <strk at keybit.net>
 
-	* removed obsoleted items
+	* [r2325] TODO: removed obsoleted items
 
-2006-03-29 09:19  strk
+2006-03-29 09:19  Sandro Santilli <strk at keybit.net>
 
-	* Set release version and date
+	* [r2323] README.postgis: Set release version and date
 
-2006-03-29 09:14  strk
+2006-03-29 09:14  Sandro Santilli <strk at keybit.net>
 
-	* Prepared for 1.1.2 release
+	* [r2322] CHANGES, Version.config, doc/postgis.xml: Prepared for
+	  1.1.2 release
 
-2006-03-28 08:39  strk
+2006-03-28 08:39  Sandro Santilli <strk at keybit.net>
 
-	* Mangled Self-intersection message to remove 'at or near point'
+	* [r2321] regress/run_test: Mangled Self-intersection message to
+	  remove 'at or near point'
 	  so that test works with both GEOS 2.x (w/out point spec) and 3.x
 	  (with point spec)
 
-2006-03-27 09:33  strk
+2006-03-27 09:33  Sandro Santilli <strk at keybit.net>
 
-	* Used a larger grid for buffer() test, to account for rounding
+	* [r2320] regress/regress_ogc.sql, regress/regress_ogc_expected:
+	  Used a larger grid for buffer() test, to account for rounding
 	  changes between
 	  GEOS-2.2 and GEOS-3.0
 
-2006-03-13 10:54  strk
+2006-03-13 10:54  Sandro Santilli <strk at keybit.net>
 
-	* Applied patch from Mark Cave Ayland embedding access control for
+	* [r2319] CHANGES, lwgeom/lwgeom_estimate.c,
+	  lwgeom/lwpostgis.sql.in: Applied patch from Mark Cave Ayland
+	  embedding access control for
 	  the estimated_extent functions.
 
-2006-03-13 10:41  strk
+2006-03-13 10:41  Sandro Santilli <strk at keybit.net>
 
-	* added enforceRHR fix
+	* [r2318] CHANGES: added enforceRHR fix
 
-2006-03-12 17:20  pramsey
+2006-03-12 17:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix isccw to return correct ccw answer.
+	* [r2317] lwgeom/lwgeom_api.c: Fix isccw to return correct ccw
+	  answer.
 
-2006-03-12 17:13  pramsey
+2006-03-12 17:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for enforceRHR to actually enforce rather than just reverse.
-	  (Note
+	* [r2316] lwgeom/lwgeom.c: Fix for enforceRHR to actually enforce
+	  rather than just reverse. (Note
 	  that seems to be enforcing CW RHR rather than CCW RHR.)
 
-2006-03-08 18:21  strk
+2006-03-08 18:21  Sandro Santilli <strk at keybit.net>
 
-	* Added pg_config --libs to PGFELIBS as a workaround for systems
+	* [r2315] configure.in: Added pg_config --libs to PGFELIBS as a
+	  workaround for systems
 	  that doesn't automatically detect dependencies
 
-2006-03-01 09:10  strk
+2006-03-01 09:10  Sandro Santilli <strk at keybit.net>
 
-	* Fixed 'clean' rule to succeed also when tree already cleaned (rm
-	  -f)
+	* [r2314] regress/Makefile: Fixed 'clean' rule to succeed also when
+	  tree already cleaned (rm -f)
 
-2006-02-24 20:23  pramsey
+2006-02-24 20:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor error in install instructions
+	* [r2313] doc/postgis.xml: Minor error in install instructions
 
-2006-02-23 11:48  mschaber
+2006-02-23 11:48  Markus Schaber <markus at schabi.de>
 
-	* documented affine(), rewrote transscale() to use affine()
+	* [r2312] CHANGES, doc/postgis.xml,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in,
+	  regress/affine.sql, regress/affine_expected: documented affine(),
+	  rewrote transscale() to use affine()
 
-2006-02-22 14:06  strk
+2006-02-22 14:06  Sandro Santilli <strk at keybit.net>
 
-	* Added affine() internal function.
+	* [r2311] CHANGES, doc/postgis.xml, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in,
+	  regress/Makefile, regress/affine.sql, regress/affine_expected:
+	  Added affine() internal function.
 	  Provided rotate{Z,X,Y}() internally using affine().
 	  Made scale() and translate() internally use affine().
 	  Obsoleted transscale() function.
 	  Fixed a bbox-related bug in transscale()
 	  Added a test for affine transformations.
 
-2006-02-15 08:38  strk
+2006-02-15 08:38  Sandro Santilli <strk at keybit.net>
 
-	* Qualified args of difference() to avoid clashes with other
-	  packages
+	* [r2310] regress/regress_ogc.sql: Qualified args of difference()
+	  to avoid clashes with other packages
 
-2006-02-10 10:58  strk
+2006-02-10 10:58  Sandro Santilli <strk at keybit.net>
 
-	* Made it a single transaction
+	* [r2309] spatial_ref_sys.sql: Made it a single transaction
 
-2006-02-10 10:57  strk
+2006-02-10 10:57  Sandro Santilli <strk at keybit.net>
 
-	* Removed intermediate VACUUM
+	* [r2308] spatial_ref_sys.sql: Removed intermediate VACUUM
 
-2006-02-06 20:04  mschaber
+2006-02-06 20:04  Markus Schaber <markus at schabi.de>
 
-	* fixed srid handling in jts for composed geometries - this had
-	  prevented 'inner' geometries with no given srid from inheriting
-	  the srid from outer collection.
+	* [r2307] CHANGES,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java: fixed srid
+	  handling in jts for composed geometries - this had prevented
+	  'inner' geometries with no given srid from inheriting the srid
+	  from outer collection.
 
-2006-02-06 11:16  strk
+2006-02-06 11:16  Sandro Santilli <strk at keybit.net>
 
-	* Added uchar typedef
+	* [r2306] lwgeom/lwgeom.h: Added uchar typedef
 
-2006-02-06 11:12  strk
+2006-02-06 11:12  Sandro Santilli <strk at keybit.net>
 
-	* uint32_t typedef moved back from wktparse.h to lwgparse.c and
-	  wktunparse.c
+	* [r2305] lwgeom/lwgparse.c, lwgeom/wktparse.h,
+	  lwgeom/wktunparse.c: uint32_t typedef moved back from wktparse.h
+	  to lwgparse.c and wktunparse.c
 
-2006-02-06 11:09  strk
+2006-02-06 11:09  Sandro Santilli <strk at keybit.net>
 
-	* added snaptogrid behavior
+	* [r2304] lwgeom/BBOXCACHE_BEHAVIOURS: added snaptogrid behavior
 
-2006-02-03 20:53  strk
+2006-02-03 20:53  Sandro Santilli <strk at keybit.net>
 
-	* Swapped stdint.h (unavailable on Solaris9) with inttypes.h
+	* [r2303] loader/pgsql2shp.c, loader/wkb.h, lwgeom/lwgparse.c,
+	  lwgeom/wktparse.h, lwgeom/wktunparse.c: Swapped stdint.h
+	  (unavailable on Solaris9) with inttypes.h
 
-2006-02-03 09:52  strk
+2006-02-03 09:52  Sandro Santilli <strk at keybit.net>
 
-	* Changed int4 typedefs to use POSIX uint32_t
+	* [r2302] CHANGES, lwgeom/lwgparse.c, lwgeom/wktunparse.c: Changed
+	  int4 typedefs to use POSIX uint32_t
 
-2006-02-02 04:46  pramsey
+2006-02-02 04:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated maintainers info.
+	* [r2301] doc/postgis.xml: Updated maintainers info.
 
-2006-02-01 22:15  strk
+2006-02-01 22:15  Sandro Santilli <strk at keybit.net>
 
-	* Made regress/run_test create and drop it's regress database
+	* [r2300] CHANGES, regress/Makefile, regress/run_test: Made
+	  regress/run_test create and drop it's regress database
 	  unless otherwise specified using --nocreate and --nodrop
 	  switches.
 
-2006-02-01 20:48  strk
+2006-02-01 20:48  Sandro Santilli <strk at keybit.net>
 
-	* Portable tests for docdir and datadir, comments fixed.
+	* [r2299] configure.in: Portable tests for docdir and datadir,
+	  comments fixed.
 	  Thanks to Havard Tveite for pointing out.
 
-2006-01-29 13:54  strk
+2006-01-29 13:54  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in SnapToGrid() bbox computation.
+	* [r2298] CHANGES, README.postgis, Version.config, lwgeom/Makefile,
+	  lwgeom/box2d.c, lwgeom/lwgeom.c,
+	  lwgeom/lwgeom_functions_analytic.c, regress/Makefile,
+	  regress/run_test, regress/snaptogrid.sql,
+	  regress/snaptogrid_expected: Fixed bug in SnapToGrid() bbox
+	  computation.
 	  Previous policy (WHEN SIMPLE) turned out to be non-simple,
 	  so this has been changed to TAINING.
 	  Bbox will then be recomputed by scanning output coordinates
@@ -37517,249 +57448,306 @@
 	  
 	  Version bumped to 1.1.2 and CHANGES file updated.
 
-2006-01-23 00:13  strk
+2006-01-23 00:13  Sandro Santilli <strk at keybit.net>
 
-	* Set version to 1.1.1, edited 1.1.1 Release Notes chapter in
-	  manual
+	* [r2296] CHANGES, Version.config, doc/postgis.xml: Set version to
+	  1.1.1, edited 1.1.1 Release Notes chapter in manual
 	  and set release date (2006-01-23).
 
-2006-01-22 23:09  pramsey
+2006-01-22 23:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix for bug 10, SRID 28992 incorrect
+	* [r2295] spatial_ref_sys.sql: Fix for bug 10, SRID 28992 incorrect
 
-2006-01-21 08:40  strk
+2006-01-21 08:40  Sandro Santilli <strk at keybit.net>
 
-	* Separated 'export' from assignment, for Solaris support -
+	* [r2294] regress/run_test, regress/test_index_concurrency:
+	  Separated 'export' from assignment, for Solaris support -
 	  reported by Michael Fuhr
 
-2006-01-19 19:19  strk
+2006-01-19 19:19  Sandro Santilli <strk at keybit.net>
 
-	* Updated documentation for line_substring() and
-	  line_interpolate_point()
+	* [r2293] doc/postgis.xml: Updated documentation for
+	  line_substring() and line_interpolate_point()
 
-2006-01-19 19:13  strk
+2006-01-19 19:13  Sandro Santilli <strk at keybit.net>
 
-	* Added a couple of line_interpolate_point tests
+	* [r2292] regress/regress_lrs.sql, regress/regress_lrs_expected:
+	  Added a couple of line_interpolate_point tests
 
-2006-01-19 19:11  strk
+2006-01-19 19:11  Sandro Santilli <strk at keybit.net>
 
-	* Z and M interpolation in line_interpolate_point()
+	* [r2291] CHANGES, lwgeom/lwgeom_functions_analytic.c: Z and M
+	  interpolation in line_interpolate_point()
 
-2006-01-19 18:26  strk
+2006-01-19 18:26  Sandro Santilli <strk at keybit.net>
 
-	* Made line_substring() handle corner case of start/end having the
-	  same
+	* [r2290] lwgeom/lwgeom_functions_analytic.c, lwgeom/ptarray.c,
+	  regress/regress_lrs.sql, regress/regress_lrs_expected: Made
+	  line_substring() handle corner case of start/end having the same
 	  value. A point is returned in that case.
 
-2006-01-19 18:17  strk
+2006-01-19 18:17  Sandro Santilli <strk at keybit.net>
 
-	* Added more regress tests for line_substring
+	* [r2289] regress/regress_lrs.sql, regress/regress_lrs_expected:
+	  Added more regress tests for line_substring
 
-2006-01-19 18:17  strk
+2006-01-19 18:17  Sandro Santilli <strk at keybit.net>
 
-	* Added Z and M interpolation in ptarray_substring(), fixed some
-	  corner-case bugs
+	* [r2288] CHANGES, lwgeom/ptarray.c: Added Z and M interpolation in
+	  ptarray_substring(), fixed some corner-case bugs
 
-2006-01-19 18:16  strk
+2006-01-19 18:16  Sandro Santilli <strk at keybit.net>
 
-	* Added interpolate_point4d() general function in API
+	* [r2287] lwgeom/liblwgeom.h, lwgeom/lwgeom_api.c: Added
+	  interpolate_point4d() general function in API
 
-2006-01-19 18:15  strk
+2006-01-19 18:15  Sandro Santilli <strk at keybit.net>
 
-	* Added -v switch to show differences inline
+	* [r2286] regress/run_test: Added -v switch to show differences
+	  inline
 
-2006-01-18 21:06  strk
+2006-01-18 21:06  Sandro Santilli <strk at keybit.net>
 
-	* Forced lc_messages to be 'C' during regress tests
+	* [r2285] CHANGES, regress/run_test: Forced lc_messages to be 'C'
+	  during regress tests
 
-2006-01-18 10:19  strk
+2006-01-18 10:19  Sandro Santilli <strk at keybit.net>
 
-	* Fixed out-of-bound condition in ptarray_substring during copy of
+	* [r2284] CHANGES, lwgeom/ptarray.c, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected: Fixed out-of-bound condition in
+	  ptarray_substring during copy of
 	  unaltered points.
 	  Added regress test for the case
 	  (postgis-devel/2006-January/001951.html)
 
-2006-01-17 14:53  strk
+2006-01-17 14:53  Sandro Santilli <strk at keybit.net>
 
-	* Fixed $datadir and $docdir paths to support postgresql convention
+	* [r2283] configure.in: Fixed $datadir and $docdir paths to support
+	  postgresql convention
 	  of adding 'postgresql' component IFF neither 'pgsql' nor
 	  'postgres'
 	  already appear in the path.
 
-2006-01-17 08:37  strk
+2006-01-17 08:37  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_restore.pl fix
+	* [r2282] CHANGES: Added postgis_restore.pl fix
 
-2006-01-17 08:36  strk
+2006-01-17 08:36  Sandro Santilli <strk at keybit.net>
 
-	* Commented out debugging premature exit left from last review
+	* [r2281] utils/postgis_restore.pl: Commented out debugging
+	  premature exit left from last review
 
-2006-01-16 10:42  strk
+2006-01-16 10:42  Sandro Santilli <strk at keybit.net>
 
-	* Added support for Bool and Date DBF<=>PGIS mapping
+	* [r2280] loader/dbfopen.c, loader/pgsql2shp.c, loader/shapefil.h,
+	  loader/shp2pgsql.c: Added support for Bool and Date DBF<=>PGIS
+	  mapping
 
-2006-01-16 10:10  strk
+2006-01-16 10:10  Sandro Santilli <strk at keybit.net>
 
-	* Fixed default pgsql prefix to /usr/local/pgsql (default since
-	  pgsql 7.2)
+	* [r2279] CHANGES, configure.in: Fixed default pgsql prefix to
+	  /usr/local/pgsql (default since pgsql 7.2)
 
-2006-01-15 22:56  strk
+2006-01-15 22:56  Sandro Santilli <strk at keybit.net>
 
-	* Fixed handling of pg_config --bindir
+	* [r2278] CHANGES, Makefile.config.in, configure.in: Fixed handling
+	  of pg_config --bindir
 
-2006-01-13 09:11  strk
+2006-01-13 09:11  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in ptarray_locate_point() - added regress test for
-	  specific case
+	* [r2277] CHANGES, lwgeom/ptarray.c, regress/lwgeom_regress.sql,
+	  regress/lwgeom_regress_expected, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected: Fixed bug in ptarray_locate_point()
+	  - added regress test for specific case
 
-2006-01-12 12:26  strk
+2006-01-12 12:26  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug blessing all GEOMETRYCOLLECTIONS to MULTIPOLYGONS in
-	  postgis->GEOS
+	* [r2276] CHANGES, lwgeom/lwgeom_geos_c.c: Fixed bug blessing all
+	  GEOMETRYCOLLECTIONS to MULTIPOLYGONS in postgis->GEOS
 	  converted trough C-API
 
-2006-01-10 16:38  mschaber
+2006-01-10 16:38  Markus Schaber <markus at schabi.de>
 
-	* Added NumInteriorRing(geometry) alias function
+	* [r2275] CHANGES, doc/postgis.xml, lwgeom/lwpostgis.sql.in: Added
+	  NumInteriorRing(geometry) alias function
 
-2006-01-09 16:40  strk
+2006-01-09 16:40  Sandro Santilli <strk at keybit.net>
 
-	* ISO C90 comments, signedness mismatch fixes
+	* [r2274] loader/PQunescapeBytea.c, loader/compat.h,
+	  loader/dbfopen.c, loader/pgsql2shp.c, loader/shp2pgsql.c: ISO C90
+	  comments, signedness mismatch fixes
 
-2006-01-09 15:55  strk
+2006-01-09 15:55  Sandro Santilli <strk at keybit.net>
 
-	* ISO C90 comments (finished in lwgeom/)
+	* [r2273] lwgeom/lwgeom_box.c, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_btree.c,
+	  lwgeom/lwgeom_chip.c, lwgeom/lwgeom_dump.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_gml.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_svg.c,
+	  lwgeom/lwgeom_transform.c, lwgeom/profile.h,
+	  lwgeom/stringBuffer.c, lwgeom/stringBuffer.h: ISO C90 comments
+	  (finished in lwgeom/)
 
-2006-01-09 15:12  strk
+2006-01-09 15:12  Sandro Santilli <strk at keybit.net>
 
-	* ISO C90 comments
+	* [r2272] lwgeom/lwcollection.c, lwgeom/lwgeom_spheroid.c,
+	  lwgeom/lwline.c, lwgeom/lwmline.c, lwgeom/lwmpoint.c,
+	  lwgeom/lwmpoly.c, lwgeom/lwpoint.c, lwgeom/wktunparse.c: ISO C90
+	  comments
 
-2006-01-09 15:11  strk
+2006-01-09 15:11  Sandro Santilli <strk at keybit.net>
 
-	* Removed variable-sized array and fixed comments as for ISO C90
+	* [r2271] lwgeom/lwgeom_functions_analytic.c: Removed
+	  variable-sized array and fixed comments as for ISO C90
 	  requirements.
 
-2006-01-09 15:09  strk
+2006-01-09 15:09  Sandro Santilli <strk at keybit.net>
 
-	* Added simplify() test unit
+	* [r2270] regress/Makefile, regress/simplify.sql,
+	  regress/simplify_expected: Added simplify() test unit
 
-2006-01-09 14:43  strk
+2006-01-09 14:43  Sandro Santilli <strk at keybit.net>
 
-	* ISO C90 comments, indenting
+	* [r2269] lwgeom/lwgeom_api.c: ISO C90 comments, indenting
 
-2006-01-09 12:56  strk
+2006-01-09 12:56  Sandro Santilli <strk at keybit.net>
 
-	* Proc upgrade requirement message made more clear.
+	* [r2268] lwgeom/lwpostgis.sql.in: Proc upgrade requirement message
+	  made more clear.
 
-2006-01-09 12:55  strk
+2006-01-09 12:55  Sandro Santilli <strk at keybit.net>
 
-	* Removed variable-sized array forbidden by ISO C90.
+	* [r2267] lwgeom/lwgeom_debug.c: Removed variable-sized array
+	  forbidden by ISO C90.
 
-2006-01-09 12:39  strk
+2006-01-09 12:39  Sandro Santilli <strk at keybit.net>
 
-	* C++ style comments removed, fixed return from void function.
+	* [r2266] lwgeom/liblwgeom.c: C++ style comments removed, fixed
+	  return from void function.
 
-2006-01-09 12:36  strk
+2006-01-09 12:36  Sandro Santilli <strk at keybit.net>
 
-	* Changed C++ style comments to ISO C format
+	* [r2265] lwgeom/ptarray.c: Changed C++ style comments to ISO C
+	  format
 
-2006-01-09 12:30  strk
+2006-01-09 12:30  Sandro Santilli <strk at keybit.net>
 
-	* Changed C++ style comments to ISO C ones.
+	* [r2264] lwgeom/measures.c: Changed C++ style comments to ISO C
+	  ones.
 
-2006-01-09 12:17  strk
+2006-01-09 12:17  Sandro Santilli <strk at keybit.net>
 
-	* Added Solaris 2.7 and MingW support improvements item
+	* [r2263] CHANGES: Added Solaris 2.7 and MingW support improvements
+	  item
 
-2006-01-09 11:48  strk
+2006-01-09 11:48  Sandro Santilli <strk at keybit.net>
 
-	* Fixed "strict-aliasing rule" breaks.
+	* [r2262] lwgeom/lwgeom_estimate.c: Fixed "strict-aliasing rule"
+	  breaks.
 
-2006-01-09 11:43  strk
+2006-01-09 11:43  Sandro Santilli <strk at keybit.net>
 
-	* Found another (faster) way to avoid breaking "strict-aliasing
-	  rules"
+	* [r2261] lwgeom/ptarray.c: Found another (faster) way to avoid
+	  breaking "strict-aliasing rules"
 
-2006-01-09 11:05  strk
+2006-01-09 11:05  Sandro Santilli <strk at keybit.net>
 
-	* Removed POINT4D=>POINT2D cast raising GCC warning
+	* [r2260] lwgeom/ptarray.c: Removed POINT4D=>POINT2D cast raising
+	  GCC warning
 
-2006-01-09 10:56  strk
+2006-01-09 10:56  Sandro Santilli <strk at keybit.net>
 
-	* Changed "! test" to "test !" and "-e" to "-f" for Solaris
-	  compatibility.
+	* [r2259] configure.in: Changed "! test" to "test !" and "-e" to
+	  "-f" for Solaris compatibility.
 
-2006-01-09 10:42  strk
+2006-01-09 10:42  Sandro Santilli <strk at keybit.net>
 
-	* Changed all C++ style comments to ISO C ones.
+	* [r2258] lwgeom/lwgeom_functions_basic.c: Changed all C++ style
+	  comments to ISO C ones.
 
-2006-01-08 15:02  strk
+2006-01-08 15:02  Sandro Santilli <strk at keybit.net>
 
-	* Added lwpostgis_upgrade.sql
+	* [r2257] ., .cvsignore: Added lwpostgis_upgrade.sql
 
-2006-01-07 10:18  strk
+2006-01-07 10:18  Sandro Santilli <strk at keybit.net>
 
-	* Changed $PWD uses with `pwd` (required for Solaris 2.7)
+	* [r2256] configure.in: Changed $PWD uses with `pwd` (required for
+	  Solaris 2.7)
 
-2006-01-05 15:01  strk
+2006-01-05 15:01  Sandro Santilli <strk at keybit.net>
 
-	* More portable (hopefully) use of quotes and backticks
+	* [r2255] configure.in: More portable (hopefully) use of quotes and
+	  backticks
 
-2006-01-05 00:26  chodgson
+2006-01-05 00:26  Chris Hodgson <chodgson at refractions.net>
 
-	* rollback to contain cast
+	* [r2254] lwgeom/lwgeom_inout.c: rollback to contain cast
 
-2006-01-05 00:19  chodgson
+2006-01-05 00:19  Chris Hodgson <chodgson at refractions.net>
 
-	* 1.12 with changes from 1.11 integrated
+	* [r2253] lwgeom/lwgeom_chip.c: 1.12 with changes from 1.11
+	  integrated
 
-2006-01-05 00:07  chodgson
+2006-01-05 00:07  Chris Hodgson <chodgson at refractions.net>
 
-	* Recommitted with changes from 1_34 integrated
+	* [r2252] lwgeom/lwgeom_functions_basic.c: Recommitted with changes
+	  from 1_34 integrated
 
-2006-01-04 21:37  chodgson
+2006-01-04 21:37  Chris Hodgson <chodgson at refractions.net>
 
-	* Added function optimistic_overlap in order to support
-	  TerrainServer. Note that optimistic_overlap existed in postgis
-	  prior to 1.0 but was removed. The included version is a hack to
-	  work with the newer lwgeom structs
+	* [r2251] lwgeom/lwgeom_functions_basic.c: Added function
+	  optimistic_overlap in order to support TerrainServer. Note that
+	  optimistic_overlap existed in postgis prior to 1.0 but was
+	  removed. The included version is a hack to work with the newer
+	  lwgeom structs
 
-2006-01-04 21:21  chodgson
+2006-01-04 21:21  Chris Hodgson <chodgson at refractions.net>
 
-	* Modified lwgeom2 = ... line in LWGEOMFromWKB function; removed
-	  the (uchar *) cast
+	* [r2250] lwgeom/lwgeom_inout.c: Modified lwgeom2 = ... line in
+	  LWGEOMFromWKB function; removed the (uchar *) cast
 
-2006-01-04 21:16  chodgson
+2006-01-04 21:16  Chris Hodgson <chodgson at refractions.net>
 
-	* Added the CHIP_send function which enables Postgres 8.0 to send a
-	  binary CHIP
+	* [r2249] lwgeom/lwgeom_chip.c: Added the CHIP_send function which
+	  enables Postgres 8.0 to send a binary CHIP
 
-2006-01-01 02:30  strk
+2006-01-01 02:30  Sandro Santilli <strk at keybit.net>
 
-	* Added missing include for definition of unparse_WKB()
+	* [r2248] lwgeom/lwgeom_pg.c: Added missing include for definition
+	  of unparse_WKB()
 
-2006-01-01 02:19  strk
+2006-01-01 02:19  Sandro Santilli <strk at keybit.net>
 
-	* Dropped unused box2df_to_box() and box_to_box2df() functions.
-	  Added box_to_box2df_p() function to complement exiting
+	* [r2247] lwgeom/lwgeom_box.c, lwgeom/lwgeom_pg.h: Dropped unused
+	  box2df_to_box() and box_to_box2df() functions. Added
+	  box_to_box2df_p() function to complement exiting
 	  box2df_to_box_p().
 
-2005-12-31 15:11  strk
+2005-12-31 15:11  Sandro Santilli <strk at keybit.net>
 
-	* Fixed reference to PostgreSQL "contrib" directory (no more
-	  required)
+	* [r2246] doc/postgis.xml: Fixed reference to PostgreSQL "contrib"
+	  directory (no more required)
 
-2005-12-31 14:57  strk
+2005-12-31 14:57  Sandro Santilli <strk at keybit.net>
 
-	* Fixed "possibly uninitialized" warning in box2df_to_box3d
+	* [r2245] lwgeom/lwgeom_api.c: Fixed "possibly uninitialized"
+	  warning in box2df_to_box3d
 
-2005-12-30 18:14  strk
+2005-12-30 18:14  Sandro Santilli <strk at keybit.net>
 
-	* Fixed all signedness warnings
+	* [r2244] lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_box3d.c,
+	  lwgeom/lwgeom_chip.c, lwgeom/lwgeom_gml.c, lwgeom/lwgeom_svg.c,
+	  lwgeom/lwgeom_transform.c: Fixed all signedness warnings
 
-2005-12-30 17:40  strk
+2005-12-30 17:40  Sandro Santilli <strk at keybit.net>
 
-	* Moved PG_LWGEOM WKB I/O and SRID get/set funx
+	* [r2243] CHANGES, Version.config, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_api.c, lwgeom/lwgeom_chip.c,
+	  lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h, lwgeom/lwgparse.c,
+	  lwgeom/lwpoly.c, lwgeom/wktparse.h: Moved PG_LWGEOM WKB I/O and
+	  SRID get/set funx
 	  from lwgeom_api.c to lwgeom_pg.c.
 	  Made lwgeom_from_ewkb directly invoke grammar parser rather then
 	  invoke
@@ -37768,277 +57756,310 @@
 	  the files
 	  being committed (more to do on other files)
 
-2005-12-28 18:43  devrim
+2005-12-28 18:43  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Removed unused patch
+	* [r2242] extras/rpm/patches/postgis-version.config.patch: Removed
+	  unused patch
 
-2005-12-28 18:40  devrim
+2005-12-28 18:40  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Lots of fixes for 1.1
+	* [r2241] extras/rpm/spec/postgis.spec: Lots of fixes for 1.1
 
-2005-12-21 18:45  strk
+2005-12-21 18:45  Sandro Santilli <strk at keybit.net>
 
-	* Removed awk usage, --with-template is detected during the single
+	* [r2239] configure.in: Removed awk usage, --with-template is
+	  detected during the single
 	  pg_config --configure scan
 
-2005-12-21 13:18  strk
+2005-12-21 13:18  Sandro Santilli <strk at keybit.net>
 
-	* Changed $() constructs to "``" ones, for portability
+	* [r2238] configure.in: Changed $() constructs to "``" ones, for
+	  portability
 
-2005-12-21 12:12  strk
+2005-12-21 12:12  Sandro Santilli <strk at keybit.net>
 
-	* Raised a warning on pj_errno==-38 (a nodatum transform is
-	  attempted before giving up)
+	* [r2237] lwgeom/lwgeom_transform.c: Raised a warning on
+	  pj_errno==-38 (a nodatum transform is attempted before giving up)
 
-2005-12-20 09:17  strk
+2005-12-20 09:17  Sandro Santilli <strk at keybit.net>
 
-	* Used more portable sed syntax, submitted by Michael Fuhr.
+	* [r2236] regress/run_test: Used more portable sed syntax,
+	  submitted by Michael Fuhr.
 
-2005-12-20 09:06  strk
+2005-12-20 09:06  Sandro Santilli <strk at keybit.net>
 
-	* Fixed inconsistency between docs install/uninstall paths
+	* [r2235] doc/Makefile: Fixed inconsistency between docs
+	  install/uninstall paths
 
-2005-12-19 20:33  strk
+2005-12-19 20:33  Sandro Santilli <strk at keybit.net>
 
-	* Fixed eprefix (bindir) use
+	* [r2234] configure.in: Fixed eprefix (bindir) use
 
-2005-12-19 20:23  strk
+2005-12-19 20:23  Sandro Santilli <strk at keybit.net>
 
-	* Dropped `liblwgeom' dependency from 'test' rule
+	* [r2233] GNUmakefile: Dropped `liblwgeom' dependency from 'test'
+	  rule
 
-2005-12-19 15:07  strk
+2005-12-19 15:07  Sandro Santilli <strk at keybit.net>
 
-	* Allowed for overriding of --datadir.
+	* [r2232] configure.in: Allowed for overriding of --datadir.
 	  reworked pg_config --configure parsing to make a single scan.
 	  Fixed mishanlding of --prefix
 
-2005-12-19 12:26  strk
+2005-12-19 12:26  Sandro Santilli <strk at keybit.net>
 
-	* make regress => make test
+	* [r2231] README.postgis: make regress => make test
 
-2005-12-19 10:39  strk
+2005-12-19 10:39  Sandro Santilli <strk at keybit.net>
 
-	* used a consistent construct for out_and_err redirect,
+	* [r2230] regress/regress_expected, regress/run_test: used a
+	  consistent construct for out_and_err redirect,
 	  added rule to make [eE][-+]0+[0-9]+ become e[-+][1-9]+
 
-2005-12-19 10:17  strk
+2005-12-19 10:17  Sandro Santilli <strk at keybit.net>
 
-	* Applied patch for MingW support (buffering and INF representation
-	  problems)
+	* [r2229] regress/run_test: Applied patch for MingW support
+	  (buffering and INF representation problems)
 
-2005-12-19 09:43  strk
+2005-12-19 09:43  Sandro Santilli <strk at keybit.net>
 
-	* Fixed uninstall rule for scripts
+	* [r2228] lwgeom/Makefile: Fixed uninstall rule for scripts
 
-2005-12-16 16:53  strk
+2005-12-16 16:53  Sandro Santilli <strk at keybit.net>
 
-	* fixed iconv check
+	* [r2227] configure.in: fixed iconv check
 
-2005-12-16 16:47  strk
+2005-12-16 16:47  Sandro Santilli <strk at keybit.net>
 
-	* Added support for mixed libiconv/iconv
+	* [r2226] Makefile.config.in, configure.in, loader/Makefile: Added
+	  support for mixed libiconv/iconv
 
-2005-12-16 15:07  strk
+2005-12-16 15:07  Sandro Santilli <strk at keybit.net>
 
-	* Added make_dist.sh argument.
+	* [r2225] HOWTO_RELEASE: Added make_dist.sh argument.
 
-2005-12-16 11:55  strk
+2005-12-16 11:55  Sandro Santilli <strk at keybit.net>
 
-	* Almost done with closure
+	* [r2224] TODO: Almost done with closure
 
-2005-12-16 11:53  strk
+2005-12-16 11:53  Sandro Santilli <strk at keybit.net>
 
-	* Added Carl Anderson to release-specifi credits section (forgot,
-	  who know how many else)
+	* [r2223] doc/postgis.xml: Added Carl Anderson to release-specifi
+	  credits section (forgot, who know how many else)
 
-2005-12-16 11:14  strk
+2005-12-16 11:14  Sandro Santilli <strk at keybit.net>
 
-	* Edited release notes in manual, set release date to 2005/12/21
+	* [r2222] CHANGES, doc/postgis.xml: Edited release notes in manual,
+	  set release date to 2005/12/21
 	  (if everything goes file)
 
-2005-12-16 10:06  mschaber
+2005-12-16 10:06  Markus Schaber <markus at schabi.de>
 
-	* small README improvements
+	* [r2221] jdbc2/README: small README improvements
 
-2005-12-16 09:36  strk
+2005-12-16 09:36  Sandro Santilli <strk at keybit.net>
 
-	* Added installed procs version when proc upgrade needed
+	* [r2220] lwgeom/lwpostgis.sql.in: Added installed procs version
+	  when proc upgrade needed
 
-2005-12-16 09:32  strk
+2005-12-16 09:32  Sandro Santilli <strk at keybit.net>
 
-	* Added release procedure and Versioning rationale.
+	* [r2219] HOWTO_RELEASE, TODO, make_dist.sh: Added release
+	  procedure and Versioning rationale.
 
-2005-12-16 08:59  strk
+2005-12-16 08:59  Sandro Santilli <strk at keybit.net>
 
-	* lwpostgis_upgrade.sql installed by install and removed by
-	  uninstall,
+	* [r2218] Version.config, lwgeom/Makefile: lwpostgis_upgrade.sql
+	  installed by install and removed by uninstall,
 	  fixed path info for lwpostgis.sql install. Stripped CVS from
 	  version
 	  strings and added note about SO/REL versions being the same.
 
-2005-12-16 08:56  strk
+2005-12-16 08:56  Sandro Santilli <strk at keybit.net>
 
-	* Added required typinfo include
+	* [r2217] lwgeom/lwgeom_geos_wrapper.cpp: Added required typinfo
+	  include
 
-2005-12-16 08:38  strk
+2005-12-16 08:38  Sandro Santilli <strk at keybit.net>
 
-	* Simplified top warning about upgradability of changes.
+	* [r2216] lwgeom/lwpostgis.sql.in: Simplified top warning about
+	  upgradability of changes.
 
-2005-12-16 08:37  strk
+2005-12-16 08:37  Sandro Santilli <strk at keybit.net>
 
-	* Added dependency of postgis_proc_upgrade.pl in
-	  lwpostgis_upgrade.sql rule
+	* [r2215] lwgeom/Makefile: Added dependency of
+	  postgis_proc_upgrade.pl in lwpostgis_upgrade.sql rule
 
-2005-12-16 08:33  strk
+2005-12-16 08:33  Sandro Santilli <strk at keybit.net>
 
-	* Fixed version checker to only use Major to compare
+	* [r2214] utils/postgis_proc_upgrade.pl: Fixed version checker to
+	  only use Major to compare
 
-2005-12-16 02:08  strk
+2005-12-16 02:08  Sandro Santilli <strk at keybit.net>
 
-	* Reverted use of $(shlib_major) to $(shlib).
+	* [r2213] lwgeom/Makefile: Reverted use of $(shlib_major) to
+	  $(shlib).
 	  Since lwpostgis_upgrade.sql is always enough
 	  to rebind, and also required...
 
-2005-12-16 01:48  strk
+2005-12-16 01:48  Sandro Santilli <strk at keybit.net>
 
-	* Added comment about the use of postgis_lib_version in version
-	  checker
+	* [r2212] utils/postgis_proc_upgrade.pl: Added comment about the
+	  use of postgis_lib_version in version checker
 	  (last commit log was incomplete)
 
-2005-12-16 01:41  strk
+2005-12-16 01:41  Sandro Santilli <strk at keybit.net>
 
-	* Unified SCRIPTS, LIB and RELEASE versions for the sake of
-	  simplicity.
+	* [r2211] CHANGES, Version.config, lwgeom/Makefile,
+	  lwgeom/lwpostgis.sql.in, utils/postgis_proc_upgrade.pl: Unified
+	  SCRIPTS, LIB and RELEASE versions for the sake of simplicity.
 	  postgis_scripts_released() will return the same as
 	  postgis_lib_version()
 	  postgis_scripts_installed() return still the same numbers but as
 	  written
 	  in the database at the time of lwpostgis.sql sourcing.
 
-2005-12-16 01:35  strk
+2005-12-16 01:35  Sandro Santilli <strk at keybit.net>
 
-	* Added notes `bout postgis_scripts_released(),
-	  postgis_scripts_installed()
+	* [r2210] doc/postgis.xml: Added notes `bout
+	  postgis_scripts_released(), postgis_scripts_installed()
 	  and postgis_version(). Copied soft upgrade description from
 	  README
 	  file - removed most references about DBPROC/RELPROC and the like.
 
-2005-12-15 23:57  strk
+2005-12-15 23:57  Sandro Santilli <strk at keybit.net>
 
-	* perl availability check by ./configure (sorry, you'll need it
-	  from now on)
+	* [r2209] Makefile.config.in, configure.in, lwgeom/Makefile: perl
+	  availability check by ./configure (sorry, you'll need it from now
+	  on)
 
-2005-12-15 23:52  strk
+2005-12-15 23:52  Sandro Santilli <strk at keybit.net>
 
-	* Added note about jdbc/ drop and PgSQL source dependency relief
+	* [r2208] CHANGES: Added note about jdbc/ drop and PgSQL source
+	  dependency relief
 
-2005-12-15 23:49  strk
+2005-12-15 23:49  Sandro Santilli <strk at keybit.net>
 
-	* Removed obsoleted code
+	* [r2207] jdbc: Removed obsoleted code
 
-2005-12-15 23:46  pramsey
+2005-12-15 23:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove qandasetdiv tags and fix numbering...
+	* [r2206] doc/postgis.xml: Remove qandasetdiv tags and fix
+	  numbering...
 
-2005-12-15 23:28  strk
+2005-12-15 23:28  Sandro Santilli <strk at keybit.net>
 
-	* - Made postgis_version() a C function w/out changing output.
+	* [r2205] CHANGES, GNUmakefile, lwgeom/Makefile,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_nojts.c,
+	  lwgeom/lwpostgis.sql.in: - Made postgis_version() a C function
+	  w/out changing output.
 	  - Moved postgis centroid() version (neither GEOS nor JTS) from
 	  lwgeom_functions_basic.c to lwgeom_nojts.c (fails far less
 	  times with "redefinition of centroid" errors.)
 	  - Made lwpostgis_upgrade.sql build by default (must add a check
 	  for perl availability in ./configure.in)
 
-2005-12-15 23:17  pramsey
+2005-12-15 23:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Wording changes here and there.
+	* [r2204] README.postgis: Wording changes here and there.
 
-2005-12-15 22:50  strk
+2005-12-15 22:50  Sandro Santilli <strk at keybit.net>
 
-	* Updated Upgrading section
+	* [r2203] README.postgis: Updated Upgrading section
 
-2005-12-15 19:11  strk
+2005-12-15 19:11  Sandro Santilli <strk at keybit.net>
 
-	* back to single full package
+	* [r2202] make_dist.sh: back to single full package
 
-2005-12-15 18:34  strk
+2005-12-15 18:34  Sandro Santilli <strk at keybit.net>
 
-	* Switched HARD/SOFT upgrade and removed HACK upgrade sections.
+	* [r2201] doc/postgis.xml: Switched HARD/SOFT upgrade and removed
+	  HACK upgrade sections.
 
-2005-12-15 18:30  strk
+2005-12-15 18:30  Sandro Santilli <strk at keybit.net>
 
-	* Added item for 1.1 closure
+	* [r2200] TODO: Added item for 1.1 closure
 
-2005-12-15 15:18  strk
+2005-12-15 15:18  Sandro Santilli <strk at keybit.net>
 
-	* Added things to do for 1.1.0 closeup
+	* [r2199] TODO: Added things to do for 1.1.0 closeup
 
-2005-12-15 09:28  strk
+2005-12-15 09:28  Sandro Santilli <strk at keybit.net>
 
-	* Infinite->Infinity
+	* [r2198] regress/run_test: Infinite->Infinity
 
-2005-12-15 01:27  strk
+2005-12-15 01:27  Sandro Santilli <strk at keybit.net>
 
-	* Added PROJ version in output - would change the whole thing to
-	  postgis_full_version() if it only fit into 80 cols
+	* [r2197] regress/run_test: Added PROJ version in output - would
+	  change the whole thing to postgis_full_version() if it only fit
+	  into 80 cols
 
-2005-12-15 01:21  strk
+2005-12-15 01:21  Sandro Santilli <strk at keybit.net>
 
-	* Made PROJ test be run only if USE_PROJ=1
+	* [r2196] regress/Makefile: Made PROJ test be run only if
+	  USE_PROJ=1
 
-2005-12-15 01:19  strk
+2005-12-15 01:19  Sandro Santilli <strk at keybit.net>
 
-	* Moved GEOS/JTS function from regress to ogc test
+	* [r2195] regress/regress.sql, regress/regress_expected,
+	  regress/regress_ogc.sql, regress/regress_ogc_expected: Moved
+	  GEOS/JTS function from regress to ogc test
 
-2005-12-15 01:07  strk
+2005-12-15 01:07  Sandro Santilli <strk at keybit.net>
 
-	* Removed call to replace(text,text,text) in regress.sql
+	* [r2194] regress/regress.sql, regress/run_test: Removed call to
+	  replace(text,text,text) in regress.sql
 	  (unsupported by pgsql 7.2)
 	  Used sed in run_test to Transform Infinite to inf and Inf to inf
 
-2005-12-15 00:49  strk
+2005-12-15 00:49  Sandro Santilli <strk at keybit.net>
 
-	* Splitted SCRIPTS_VERSION in MAJOR,MINOR,MICRO
+	* [r2193] Version.config, lwgeom/Makefile: Splitted SCRIPTS_VERSION
+	  in MAJOR,MINOR,MICRO
 
-2005-12-15 00:47  strk
+2005-12-15 00:47  Sandro Santilli <strk at keybit.net>
 
-	* 'IMMUTABLE STRICT' -> '_IMMUTABLE_STRICT' fix for new polygon
-	  ctors
+	* [r2192] lwgeom/lwpostgis.sql.in: 'IMMUTABLE STRICT' ->
+	  '_IMMUTABLE_STRICT' fix for new polygon ctors
 
-2005-12-15 00:28  strk
+2005-12-15 00:28  Sandro Santilli <strk at keybit.net>
 
-	* typo fixed
+	* [r2191] regress/run_test: typo fixed
 
-2005-12-14 18:56  strk
+2005-12-14 18:56  Sandro Santilli <strk at keybit.net>
 
-	* Removed rectangle-level locking (DONE)
+	* [r2190] TODO: Removed rectangle-level locking (DONE)
 
-2005-12-14 18:45  strk
+2005-12-14 18:45  Sandro Santilli <strk at keybit.net>
 
-	* Dropped 1.1.0 specific section - all pending items dumped to
-	  'other random items'
+	* [r2189] TODO: Dropped 1.1.0 specific section - all pending items
+	  dumped to 'other random items'
 
-2005-12-14 18:44  strk
+2005-12-14 18:44  Sandro Santilli <strk at keybit.net>
 
-	* Typo fixed (dumber->dumper) - was tempted to keep it ;)
+	* [r2188] doc/postgis.xml: Typo fixed (dumber->dumper) - was
+	  tempted to keep it ;)
 
-2005-12-14 18:34  strk
+2005-12-14 18:34  Sandro Santilli <strk at keybit.net>
 
-	* Reintroduced revised INSTALLATION, UPGRADE, USAGE.
+	* [r2187] README.postgis: Reintroduced revised INSTALLATION,
+	  UPGRADE, USAGE.
 	  Added REQUIREMENTS, CONFIGURATION and TESTING.
 	  UPGRADE still requires some cleanup (IMHO).
 
-2005-12-14 15:40  strk
+2005-12-14 15:40  Sandro Santilli <strk at keybit.net>
 
-	* Removed most info, added reference to PostGIS manual instead
+	* [r2186] README.postgis: Removed most info, added reference to
+	  PostGIS manual instead
 
-2005-12-14 15:29  strk
+2005-12-14 15:29  Sandro Santilli <strk at keybit.net>
 
-	* Removed postgis_geos_version.h - should be under lwgeom/
+	* [r2185] ., .cvsignore: Removed postgis_geos_version.h - should be
+	  under lwgeom/
 
-2005-12-14 15:23  strk
+2005-12-14 15:23  Sandro Santilli <strk at keybit.net>
 
-	* - Create two packages:
+	* [r2184] make_dist.sh: - Create two packages:
 	  postgis-$$.tar.gz and postgis-regress-$$.tar.gz
 	  
 	  - New syntax:
@@ -38047,91 +58068,111 @@
 	  -- postgis-1.1.0.tar.gz postgis-regress-1.1.0.tar.gz
 	  sh make_dist.sh 1.1.0
 
-2005-12-14 14:14  strk
+2005-12-14 14:14  Sandro Santilli <strk at keybit.net>
 
-	* Removed obsoleted --param shade.verbatim param from xsltproc
-	  call,
+	* [r2183] doc/Makefile: Removed obsoleted --param shade.verbatim
+	  param from xsltproc call,
 	  moved common flags on top file.
 
-2005-12-14 13:43  strk
+2005-12-14 13:43  Sandro Santilli <strk at keybit.net>
 
-	* fixed closing tag mismatch
+	* [r2182] doc/postgis.xml: fixed closing tag mismatch
 
-2005-12-14 13:42  strk
+2005-12-14 13:42  Sandro Santilli <strk at keybit.net>
 
-	* Added release version in abstract, updated INSTALL section to
-	  reflect autoconf-based layout
+	* [r2181] doc/postgis.xml: Added release version in abstract,
+	  updated INSTALL section to reflect autoconf-based layout
 
-2005-12-14 12:24  strk
+2005-12-14 12:24  Sandro Santilli <strk at keybit.net>
 
-	* Nicely handled missing requirements for docs build
+	* [r2180] Makefile.config.in, configure.in, doc/Makefile: Nicely
+	  handled missing requirements for docs build
 
-2005-12-14 11:13  strk
+2005-12-14 11:13  Sandro Santilli <strk at keybit.net>
 
-	* Snapped buffer() output to a grid of 1.0E-14 grid to account for
-	  slightly
+	* [r2179] regress/regress.sql, regress/regress_ogc.sql,
+	  regress/regress_ogc_expected: Snapped buffer() output to a grid
+	  of 1.0E-14 grid to account for slightly
 	  different floating number behaviours on Solaris.
 	  Normalized Infinity to inf to account for different libc outputs.
 
-2005-12-14 00:26  strk
+2005-12-14 00:26  Sandro Santilli <strk at keybit.net>
 
-	* Regression tests output made much more concise
+	* [r2178] regress/Makefile, regress/run_test: Regression tests
+	  output made much more concise
 
-2005-12-13 23:25  strk
+2005-12-13 23:25  Sandro Santilli <strk at keybit.net>
 
-	* removed unused variable
+	* [r2177] lwgeom/ptarray.c: removed unused variable
 
-2005-12-13 22:04  strk
+2005-12-13 22:04  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOS/JTS version info when available
+	* [r2176] regress/run_test: Added GEOS/JTS version info when
+	  available
 
-2005-12-13 21:16  strk
+2005-12-13 21:16  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a misnamed test
+	* [r2175] regress/Makefile: Fixed a misnamed test
 
-2005-12-13 19:01  strk
+2005-12-13 19:01  Sandro Santilli <strk at keybit.net>
 
-	* Renamed ReplacePoint() to SetPoint()
+	* [r2174] doc/postgis.xml, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in, regress/Makefile,
+	  regress/replacepoint.sql, regress/replacepoint_expected,
+	  regress/setpoint.sql, regress/setpoint_expected: Renamed
+	  ReplacePoint() to SetPoint()
 
-2005-12-13 18:39  strk
+2005-12-13 18:39  Sandro Santilli <strk at keybit.net>
 
-	* Added RemovePoint() and ReplacePoint() to complete Geometry
-	  editiong function.
+	* [r2173] CHANGES, doc/postgis.xml, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwline.c,
+	  lwgeom/lwpostgis.sql.in, lwgeom/ptarray.c, regress/Makefile,
+	  regress/removepoint.sql, regress/removepoint_expected,
+	  regress/replacepoint.sql, regress/replacepoint_expected: Added
+	  RemovePoint() and ReplacePoint() to complete Geometry editiong
+	  function.
 	  Added regress tests for them.
 
-2005-12-13 18:19  strk
+2005-12-13 18:19  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in lwgeom_as_anytype cast funcions
+	* [r2172] lwgeom/lwgeom.c: Fixed bug in lwgeom_as_anytype cast
+	  funcions
 
-2005-12-13 14:19  strk
+2005-12-13 14:19  Sandro Santilli <strk at keybit.net>
 
-	* LRS section repopulated
+	* [r2170] doc/postgis.xml: LRS section repopulated
 
-2005-12-13 12:51  strk
+2005-12-13 12:51  Sandro Santilli <strk at keybit.net>
 
-	* Moved out of LRS section: line_locate_point back (to Misc),
+	* [r2169] doc/postgis.xml: Moved out of LRS section:
+	  line_locate_point back (to Misc),
 	  line_substring and line_interpolate_point (to Geometry
 	  constructors).
 	  Added more cross-references.
 
-2005-12-13 12:12  strk
+2005-12-13 12:12  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r2168] TODO: updated
 
-2005-12-12 20:41  strk
+2005-12-12 20:41  Sandro Santilli <strk at keybit.net>
 
-	* Handled common invokation mistake (accept trailing .sql in test
-	  names)
+	* [r2167] regress/run_test: Handled common invokation mistake
+	  (accept trailing .sql in test names)
 
-2005-12-12 20:31  strk
+2005-12-12 20:31  Sandro Santilli <strk at keybit.net>
 
-	* Changed math statements to be compatible with solaris shell,
-	  fixed typo
+	* [r2166] regress/run_test: Changed math statements to be
+	  compatible with solaris shell, fixed typo
 
-2005-12-12 17:40  strk
+2005-12-12 17:40  Sandro Santilli <strk at keybit.net>
 
-	* - Fixed Z presence detection in GEOS funcions (C++ and C
-	  wrappers).
+	* [r2165] CHANGES, doc/postgis.xml, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_c.c, lwgeom/lwgeom_geos_wrapper.cpp,
+	  lwgeom/lwgeom_jts.c, lwgeom/lwgeom_nojts.c,
+	  lwgeom/lwpostgis.sql.in, regress/Makefile,
+	  regress/regress_bdpoly.sql, regress/regress_bdpoly_expected,
+	  regress/regress_expected, regress/run_test: - Fixed Z presence
+	  detection in GEOS funcions (C++ and C wrappers).
 	  - NEW BuildArea(any_geometry) function
 	  - NEW OGC BdPolyFromText(linestring_wkt, srid) function
 	  - NEW OGC BdMPolyFromText(linestring_wkt, srid) function
@@ -38140,1581 +58181,1954 @@
 	  - Reworked regress test runner to be more succint and report
 	  a summary of test results
 
-2005-12-12 11:35  strk
+2005-12-12 11:35  Sandro Santilli <strk at keybit.net>
 
-	* Avoided detect_geos_version rule when using the GEOS C-API
+	* [r2164] lwgeom/Makefile: Avoided detect_geos_version rule when
+	  using the GEOS C-API
 
-2005-12-12 11:33  strk
+2005-12-12 11:33  Sandro Santilli <strk at keybit.net>
 
-	* Wrapped grid_print declaration and definition in VERBOSE block,
-	  to avoid compiler warning about it being unused
+	* [r2163] lwgeom/lwgeom_functions_analytic.c: Wrapped grid_print
+	  declaration and definition in VERBOSE block, to avoid compiler
+	  warning about it being unused
 
-2005-12-10 15:46  strk
+2005-12-10 15:46  Sandro Santilli <strk at keybit.net>
 
-	* Fixed error message typo
+	* [r2161] lwgeom/lwgeom_api.c: Fixed error message typo
 
-2005-12-09 20:43  pramsey
+2005-12-09 20:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added credits for GEOS and Proj4.
+	* [r2160] doc/postgis.xml: Added credits for GEOS and Proj4.
 
-2005-12-09 15:14  strk
+2005-12-09 15:14  Sandro Santilli <strk at keybit.net>
 
-	* Organized Change log for 1.1.0
+	* [r2158] CHANGES: Organized Change log for 1.1.0
 
-2005-12-09 12:02  strk
+2005-12-09 12:02  Sandro Santilli <strk at keybit.net>
 
-	* Added Charlie Savage in credits
+	* [r2157] doc/postgis.xml: Added Charlie Savage in credits
 
-2005-12-09 12:00  strk
+2005-12-09 12:00  Sandro Santilli <strk at keybit.net>
 
-	* Plugged memory leaks in Polygonize().
+	* [r2155] CHANGES, lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_c.c,
+	  lwgeom/lwgeom_geos_wrapper.cpp: Plugged memory leaks in
+	  Polygonize().
 
-2005-12-09 10:14  strk
+2005-12-09 10:14  Sandro Santilli <strk at keybit.net>
 
-	* Added a couple of polygonize tests
+	* [r2153] regress/regress_ogc.sql, regress/regress_ogc_expected:
+	  Added a couple of polygonize tests
 
-2005-12-07 12:22  strk
+2005-12-07 12:22  Sandro Santilli <strk at keybit.net>
 
-	* Fixed handling of CAST for 8.0.0 restore.
+	* [r2151] utils/postgis_restore.pl: Fixed handling of CAST for
+	  8.0.0 restore.
 	  Type name canonicalization function defined separately.
 
-2005-12-07 09:05  strk
+2005-12-07 09:05  Sandro Santilli <strk at keybit.net>
 
-	* Added note about OID column drop in pre 8.1 to 8.1+ upgrades
+	* [r2150] utils/postgis_restore.pl: Added note about OID column
+	  drop in pre 8.1 to 8.1+ upgrades
 
-2005-12-06 15:42  devrim
+2005-12-06 15:42  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Label the spec file as 1.1.0
+	* [r2148] extras/rpm/spec/postgis.spec: Label the spec file as
+	  1.1.0
 
-2005-12-06 15:37  strk
+2005-12-06 15:37  Sandro Santilli <strk at keybit.net>
 
-	* Updated SnapToGrid documentation
+	* [r2147] doc/postgis.xml: Updated SnapToGrid documentation
 
-2005-12-06 15:26  devrim
+2005-12-06 15:26  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Update to 1.0.6
+	* [r2146] extras/rpm/spec/postgis.spec: Update to 1.0.6
 
-2005-12-06 15:09  strk
+2005-12-06 15:09  Sandro Santilli <strk at keybit.net>
 
-	* Updated after release 1.0.6
+	* [r2145] CHANGES, doc/postgis.xml: Updated after release 1.0.6
 
-2005-12-06 14:56  strk
+2005-12-06 14:56  Sandro Santilli <strk at keybit.net>
 
-	* Added check for successfully postgis installation before running
-	  tests
+	* [r2142] regress/run_test: Added check for successfully postgis
+	  installation before running tests
 
-2005-12-06 14:51  strk
+2005-12-06 14:51  Sandro Santilli <strk at keybit.net>
 
-	* Added user-reported intersects() test
+	* [r2141] regress/regress_ogc.sql, regress/regress_ogc_expected:
+	  Added user-reported intersects() test
 
-2005-12-02 15:11  strk
+2005-12-02 15:11  Sandro Santilli <strk at keybit.net>
 
-	* Had regress_ogc test skipped if no GEOS nor JTS support is
-	  compiled in
+	* [r2139] regress/Makefile: Had regress_ogc test skipped if no GEOS
+	  nor JTS support is compiled in
 
-2005-12-02 14:56  strk
+2005-12-02 14:56  Sandro Santilli <strk at keybit.net>
 
-	* Added missing rules
+	* [r2138] Makefile: Added missing rules
 
-2005-12-02 14:52  strk
+2005-12-02 14:52  Sandro Santilli <strk at keybit.net>
 
-	* Copied PostgreSQL top-level Makefile for use by systems in which
-	  make != gmake
+	* [r2137] GNUmakefile, Makefile: Copied PostgreSQL top-level
+	  Makefile for use by systems in which make != gmake
 
-2005-12-02 14:35  strk
+2005-12-02 14:35  Sandro Santilli <strk at keybit.net>
 
-	* Fixed support for PGSQL version 7.2 and 7.3
+	* [r2136] lwgeom/lwgeom_transform.c: Fixed support for PGSQL
+	  version 7.2 and 7.3
 
-2005-12-02 14:15  strk
+2005-12-02 14:15  Sandro Santilli <strk at keybit.net>
 
-	* Fixed SnapToGrid output expectance (higher dims no more
-	  discarded)
+	* [r2135] regress/regress_proj_expected: Fixed SnapToGrid output
+	  expectance (higher dims no more discarded)
 
-2005-12-02 13:21  strk
+2005-12-02 13:21  Sandro Santilli <strk at keybit.net>
 
-	* Added note about new SnapToGrid function
+	* [r2134] CHANGES: Added note about new SnapToGrid function
 
-2005-12-02 13:16  strk
+2005-12-02 13:16  Sandro Santilli <strk at keybit.net>
 
-	* Added SnapToGrid(geom, point_offset, xsz, ysz, zsz, msz)
+	* [r2133] lwgeom/lwpostgis.sql.in: Added SnapToGrid(geom,
+	  point_offset, xsz, ysz, zsz, msz)
 
-2005-12-02 10:46  strk
+2005-12-02 10:46  Sandro Santilli <strk at keybit.net>
 
-	* Added LWGEOM_snaptogrid_pointoff and gridspec utility funx
+	* [r2132] lwgeom/lwgeom_functions_analytic.c: Added
+	  LWGEOM_snaptogrid_pointoff and gridspec utility funx
 
-2005-12-02 09:12  strk
+2005-12-02 09:12  Sandro Santilli <strk at keybit.net>
 
-	* Added note about SnapToGrid bbox computation
+	* [r2131] CHANGES: Added note about SnapToGrid bbox computation
 
-2005-12-02 09:07  strk
+2005-12-02 09:07  Sandro Santilli <strk at keybit.net>
 
-	* Fixed output box2d computation in SnapToGrid (was working with
-	  float,
+	* [r2129] lwgeom/lwgeom_functions_analytic.c: Fixed output box2d
+	  computation in SnapToGrid (was working with float,
 	  changed to work with doubles and call appropriate box3d->box2d
 	  converter).
 
-2005-12-02 09:06  strk
+2005-12-02 09:06  Sandro Santilli <strk at keybit.net>
 
-	* Added PARANOIA_LEVEL checks in box3d<->box2d converters
+	* [r2128] lwgeom/lwgeom_api.c: Added PARANOIA_LEVEL checks in
+	  box3d<->box2d converters
 
-2005-12-02 08:26  strk
+2005-12-02 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Quoted grep pattern (Solaris' shell threats carets as pipes).
+	* [r2127] regress/Makefile, regress/run_test: Quoted grep pattern
+	  (Solaris' shell threats carets as pipes).
 	  Added a sleep 1 before dropping DB (to avoid "database being
 	  accessed" errors).
 
-2005-12-01 22:29  strk
+2005-12-01 22:29  Sandro Santilli <strk at keybit.net>
 
-	* Changed back 'tests' to 'test'
+	* [r2126] regress/Makefile: Changed back 'tests' to 'test'
 
-2005-12-01 19:25  strk
+2005-12-01 19:25  Sandro Santilli <strk at keybit.net>
 
-	* Added note about SnapToGrid and higher dims
+	* [r2125] CHANGES: Added note about SnapToGrid and higher dims
 
-2005-12-01 19:09  strk
+2005-12-01 19:09  Sandro Santilli <strk at keybit.net>
 
-	* Exported DYNPTARRAY struct and accessor funx (from _lrs.c).
+	* [r2124] lwgeom/liblwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_lrs.c, lwgeom/ptarray.c: Exported
+	  DYNPTARRAY struct and accessor funx (from _lrs.c).
 	  Rewritten ptarray_grid() to allow snapping of all dimensions and
 	  never discard input ordinates.
 
-2005-12-01 17:14  strk
+2005-12-01 17:14  Sandro Santilli <strk at keybit.net>
 
-	* Fixed missing LineMerge symbol when built against geos-1.0
+	* [r2123] lwgeom/lwgeom_geos_wrapper.cpp: Fixed missing LineMerge
+	  symbol when built against geos-1.0
 
-2005-12-01 16:21  strk
+2005-12-01 16:21  Sandro Santilli <strk at keybit.net>
 
-	* Added SRID mismatch checks in GEOS and JTS wrappers
+	* [r2122] CHANGES, lwgeom/liblwgeom.c, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_c.c,
+	  lwgeom/lwgeom_jts.c: Added SRID mismatch checks in GEOS and JTS
+	  wrappers
 
-2005-12-01 16:19  strk
+2005-12-01 16:19  Sandro Santilli <strk at keybit.net>
 
-	* Updated comment about GEOS C-API (starts with 2.2.x)
+	* [r2121] Makefile.config.in: Updated comment about GEOS C-API
+	  (starts with 2.2.x)
 
-2005-12-01 15:53  strk
+2005-12-01 15:53  Sandro Santilli <strk at keybit.net>
 
-	* Renamed clean: to cleanup:, provided empty clean: to make things
-	  work
+	* [r2118] regress/Makefile: Renamed clean: to cleanup:, provided
+	  empty clean: to make things work
 	  from toplevel makefile.
 
-2005-12-01 15:50  strk
+2005-12-01 15:50  Sandro Santilli <strk at keybit.net>
 
-	* Fixed handling of bogus geos-1.0
+	* [r2117] configure.in: Fixed handling of bogus geos-1.0
 
-2005-12-01 14:07  strk
+2005-12-01 14:07  Sandro Santilli <strk at keybit.net>
 
-	* Skipped checks of SQL command outputs
+	* [r2116] regress/Makefile, regress/lwgeom_regress_expected,
+	  regress/regress_expected, regress/regress_index_expected,
+	  regress/run_test: Skipped checks of SQL command outputs
 	  (INSERT,UPDATE,CREATE,DROP).
 	  Cleaned up postgis_reg after tests run.
 
-2005-12-01 13:53  strk
+2005-12-01 13:53  Sandro Santilli <strk at keybit.net>
 
-	* Fixed lwgeom_segmentize2d() to always return a clone
+	* [r2115] CHANGES, lwgeom/lwgeom.c: Fixed lwgeom_segmentize2d() to
+	  always return a clone
 
-2005-12-01 13:49  strk
+2005-12-01 13:49  Sandro Santilli <strk at keybit.net>
 
-	* Fixed short-allocation in lwcollection_clone()
+	* [r2113] CHANGES, lwgeom/lwcollection.c: Fixed short-allocation in
+	  lwcollection_clone()
 
-2005-12-01 13:37  strk
+2005-12-01 13:37  Sandro Santilli <strk at keybit.net>
 
-	* Fixed test to cleanup after run
+	* [r2111] regress/regress_proj.sql, regress/regress_proj_expected:
+	  Fixed test to cleanup after run
 
-2005-11-30 21:02  strk
+2005-11-30 21:02  Sandro Santilli <strk at keybit.net>
 
-	* Added missing proj tests
+	* [r2109] regress/regress_proj.sql, regress/regress_proj_expected:
+	  Added missing proj tests
 
-2005-11-30 18:24  strk
+2005-11-30 18:24  Sandro Santilli <strk at keybit.net>
 
-	* Fixed segfault on addPoint() with invalid offset
+	* [r2108] CHANGES, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/ptarray.c: Fixed segfault on addPoint() with invalid
+	  offset
 
-2005-11-30 18:24  strk
+2005-11-30 18:24  Sandro Santilli <strk at keybit.net>
 
-	* Fixed error message on non-readable expected file
+	* [r2107] regress/run_test: Fixed error message on non-readable
+	  expected file
 
-2005-11-30 17:04  strk
+2005-11-30 17:04  Sandro Santilli <strk at keybit.net>
 
-	* Added Alex Mayrhofer to list of contributors
+	* [r2105] doc/postgis.xml: Added Alex Mayrhofer to list of
+	  contributors
 
-2005-11-30 16:59  strk
+2005-11-30 16:59  Sandro Santilli <strk at keybit.net>
 
-	* Moved 8.2 support to 1.0.6 section
+	* [r2103] CHANGES: Moved 8.2 support to 1.0.6 section
 
-2005-11-30 16:57  strk
+2005-11-30 16:57  Sandro Santilli <strk at keybit.net>
 
-	* Added proj tests, curtesy of Alex Mayrhofer
+	* [r2101] regress/Makefile: Added proj tests, curtesy of Alex
+	  Mayrhofer
 
-2005-11-29 22:40  strk
+2005-11-29 22:40  Sandro Santilli <strk at keybit.net>
 
-	* CAPI usage triggered starting at geos-2.2
+	* [r2099] configure.in: CAPI usage triggered starting at geos-2.2
 
-2005-11-29 10:05  strk
+2005-11-29 10:05  Sandro Santilli <strk at keybit.net>
 
-	* Added locate_among_measure() and locate_between_measures() dox.
+	* [r2096] CHANGES, doc/postgis.xml: Added locate_among_measure()
+	  and locate_between_measures() dox.
 	  Updated CHANGES adding new LRS funx and new transform() code.
 
-2005-11-29 09:00  strk
+2005-11-29 09:00  Sandro Santilli <strk at keybit.net>
 
-	* Updated documentation for X,Y,M and Z
+	* [r2095] TODO, doc/postgis.xml: Updated documentation for X,Y,M
+	  and Z
 
-2005-11-28 16:01  strk
+2005-11-28 16:01  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a segfault on geom_accum(NULL, NULL) condition
+	* [r2094] CHANGES, lwgeom/lwgeom_functions_basic.c: Fixed a
+	  segfault on geom_accum(NULL, NULL) condition
 
-2005-11-28 15:59  strk
+2005-11-28 15:59  Sandro Santilli <strk at keybit.net>
 
-	* Added geom_accum(NULL,NULL) test
+	* [r2091] regress/regress.sql, regress/regress_expected: Added
+	  geom_accum(NULL,NULL) test
 
-2005-11-28 15:06  strk
+2005-11-28 15:06  Sandro Santilli <strk at keybit.net>
 
-	* Estrapolated SERIALIZED_FORM doc from liblwgeom.h and put it into
+	* [r2090] lwgeom/SERIALIZED_FORM, lwgeom/compat.h,
+	  lwgeom/liblwgeom.h, lwgeom/lwgeom_functions_lrs.c,
+	  lwgeom/lwgeom_pg.h, lwgeom/pgsql_compat.h: Estrapolated
+	  SERIALIZED_FORM doc from liblwgeom.h and put it into
 	  SERIALIZED_FORM file.
 	  Cleaned up header files so to avoid C++ style comments and
 	  -pedantic errors.
 	  (more to come on this front)
 
-2005-11-28 11:49  strk
+2005-11-28 11:49  Sandro Santilli <strk at keybit.net>
 
-	* Added bbox cache handling fix in 1.0.6
+	* [r2088] CHANGES: Added bbox cache handling fix in 1.0.6
 
-2005-11-28 11:48  strk
+2005-11-28 11:48  Sandro Santilli <strk at keybit.net>
 
-	* minor cleanups and comments
+	* [r2087] lwgeom/lwgeom_functions_basic.c: minor cleanups and
+	  comments
 
-2005-11-28 11:31  strk
+2005-11-28 11:31  Sandro Santilli <strk at keybit.net>
 
-	* memory release in force_collection
+	* [r2085] lwgeom/lwgeom_functions_basic.c: memory release in
+	  force_collection
 
-2005-11-28 11:27  strk
+2005-11-28 11:27  Sandro Santilli <strk at keybit.net>
 
-	* Added force_collection test
+	* [r2083] regress/regress.sql, regress/regress_expected: Added
+	  force_collection test
 
-2005-11-28 11:20  strk
+2005-11-28 11:20  Sandro Santilli <strk at keybit.net>
 
-	* Fixed ExteriorRing() and Segmentize() handling of bbox cache
+	* [r2081] lwgeom/lwcollection.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwline.c, lwgeom/lwpoly.c: Fixed
+	  ExteriorRing() and Segmentize() handling of bbox cache
 
-2005-11-28 11:04  strk
+2005-11-28 11:04  Sandro Santilli <strk at keybit.net>
 
-	* Added ExteriorRing and Segmentize tests
+	* [r2079] regress/regress.sql, regress/regress_expected,
+	  regress/regress_ogc.sql, regress/regress_ogc_expected: Added
+	  ExteriorRing and Segmentize tests
 
-2005-11-25 17:22  mschaber
+2005-11-25 17:22  Markus Schaber <markus at schabi.de>
 
-	* java2d and doc improvements
+	* [r2077] jdbc2/README,
+	  jdbc2/src/org/postgis/java2d/PGShapeGeometry.java,
+	  jdbc2/src/org/postgis/java2d/ShapeBinaryParser.java: java2d and
+	  doc improvements
 
-2005-11-25 16:14  strk
+2005-11-25 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Added support for PostgreSQL head, as suggested by Michael Fuhr.
+	* [r2076] CHANGES, Makefile.config.in, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_chip.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_pg.h, lwgeom/lwgeom_spheroid.c: Added support for
+	  PostgreSQL head, as suggested by Michael Fuhr.
 	  Cleaned up includes.
 
-2005-11-25 16:11  strk
+2005-11-25 16:11  Sandro Santilli <strk at keybit.net>
 
-	* Wrapped PROJ4SRSCacheCheck function in ifdef
-	  MEMORY_CONTEXT_CHECKING block, to avoid compiler warning
+	* [r2075] lwgeom/lwgeom_transform.c: Wrapped PROJ4SRSCacheCheck
+	  function in ifdef MEMORY_CONTEXT_CHECKING block, to avoid
+	  compiler warning
 
-2005-11-25 15:43  strk
+2005-11-25 15:43  Sandro Santilli <strk at keybit.net>
 
-	* Added unite_garray() test
+	* [r2074] regress/regress_ogc.sql, regress/regress_ogc_expected:
+	  Added unite_garray() test
 
-2005-11-25 15:43  strk
+2005-11-25 15:43  Sandro Santilli <strk at keybit.net>
 
-	* Added database version info
+	* [r2073] regress/run_test: Added database version info
 
-2005-11-25 15:34  strk
+2005-11-25 15:34  Sandro Santilli <strk at keybit.net>
 
-	* Fixed expected ERROR and NOTICEs
+	* [r2072] regress/regress_expected, regress/regress_ogc_expected:
+	  Fixed expected ERROR and NOTICEs
 
-2005-11-25 15:28  strk
+2005-11-25 15:28  Sandro Santilli <strk at keybit.net>
 
-	* Fixed 0-size allocation in lwcollection deserializer
+	* [r2071] lwgeom/lwcollection.c: Fixed 0-size allocation in
+	  lwcollection deserializer
 	  (only matters when backend is compiled with --enable-cassert)
 
-2005-11-25 14:14  strk
+2005-11-25 14:14  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis library version and builddate, to make sure the
-	  existing database
+	* [r2069] regress/run_test: Added postgis library version and
+	  builddate, to make sure the existing database
 	  being used is equipped with the library we are willing to test.
 
-2005-11-24 20:20  strk
+2005-11-24 20:20  Sandro Santilli <strk at keybit.net>
 
-	* Added note about documentation updates requirement (will anyone
-	  read it before 1.1.0 ? ;)
+	* [r2068] TODO: Added note about documentation updates requirement
+	  (will anyone read it before 1.1.0 ? ;)
 
-2005-11-24 20:18  strk
+2005-11-24 20:18  Sandro Santilli <strk at keybit.net>
 
-	* Fixed sizeof(GEOSGeom) calls, minor debugging improvements.
+	* [r2067] lwgeom/lwgeom_geos_c.c: Fixed sizeof(GEOSGeom) calls,
+	  minor debugging improvements.
 
-2005-11-24 20:11  strk
+2005-11-24 20:11  Sandro Santilli <strk at keybit.net>
 
-	* Added -N and -g documentation
+	* [r2064] doc/man/shp2pgsql.1: Added -N and -g documentation
 
-2005-11-23 15:54  strk
+2005-11-23 15:54  Sandro Santilli <strk at keybit.net>
 
-	* Changed X(), Y(), M() and Z() to raise an error if input
+	* [r2061] lwgeom/lwgeom_ogc.c: Changed X(), Y(), M() and Z() to
+	  raise an error if input
 	  is not strictly a point (must update documentation)
 
-2005-11-23 15:30  strk
+2005-11-23 15:30  Sandro Santilli <strk at keybit.net>
 
-	* Changed locate_between_measures() to return simpler types
+	* [r2060] lwgeom/lwgeom_functions_lrs.c, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected: Changed locate_between_measures()
+	  to return simpler types
 
-2005-11-23 14:52  strk
+2005-11-23 14:52  Sandro Santilli <strk at keybit.net>
 
-	* Changed M() and Z() to return NULL when input doesn't have
+	* [r2059] CHANGES, lwgeom/lwgeom_ogc.c, regress/regress.sql,
+	  regress/regress_expected: Changed M() and Z() to return NULL when
+	  input doesn't have
 	  the requested dimension. Updated regress tests with a few
 	  of these cases.
 
-2005-11-23 14:44  strk
+2005-11-23 14:44  Sandro Santilli <strk at keybit.net>
 
-	* Added usage dox and check for required input files
+	* [r2058] regress/run_test: Added usage dox and check for required
+	  input files
 
-2005-11-23 14:38  strk
+2005-11-23 14:38  Sandro Santilli <strk at keybit.net>
 
-	* Reworked regress tests to avoid multiple database creations
+	* [r2057] regress/Makefile, regress/lwgeom_regress.sql,
+	  regress/lwgeom_regress_expected, regress/regress.sql,
+	  regress/regress_expected, regress/regress_index.sql,
+	  regress/regress_index_expected, regress/regress_lrs.sql,
+	  regress/regress_lrs_expected, regress/run_index_regress,
+	  regress/run_lwgeom_regress, regress/run_ogc_regress,
+	  regress/run_regress, regress/run_test: Reworked regress tests to
+	  avoid multiple database creations
 
-2005-11-23 13:48  strk
+2005-11-23 13:48  Sandro Santilli <strk at keybit.net>
 
-	* fixed bug in points duplication check of dynptarray_addPoint4d
+	* [r2056] lwgeom/lwgeom_functions_lrs.c: fixed bug in points
+	  duplication check of dynptarray_addPoint4d
 
-2005-11-23 13:46  strk
+2005-11-23 13:46  Sandro Santilli <strk at keybit.net>
 
-	* Added a few regression tests for LRS functions
+	* [r2055] regress/regress.sql, regress/regress_expected: Added a
+	  few regression tests for LRS functions
 
-2005-11-23 13:19  strk
+2005-11-23 13:19  Sandro Santilli <strk at keybit.net>
 
-	* Initial implementation of locate_among_measure() and
+	* [r2054] lwgeom/Makefile, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_functions_lrs.c, lwgeom/lwpostgis.sql.in: Initial
+	  implementation of locate_among_measure() and
 	  locate_between_measures()
 
-2005-11-22 21:29  strk
+2005-11-22 21:29  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in getPoint{3dm,3dz,4d}_p() api calls automatically
+	* [r2053] CHANGES, doc/postgis.xml, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_api.c, regress/regress.sql,
+	  regress/regress_expected: Fixed a bug in getPoint{3dm,3dz,4d}_p()
+	  api calls automatically
 	  fixing bugs in force_{3dm,3dz,4d}() user functions, for which
 	  tests have been added in regress dir.
 	  Wrapped paranoid checks in PARANOIA_LEVEL preprocessor blocks.
 	  Updated release notes and CHANGES file.
 
-2005-11-22 19:59  strk
+2005-11-22 19:59  Sandro Santilli <strk at keybit.net>
 
-	* Fixed debugging printf call
+	* [r2051] lwgeom/lwcollection.c: Fixed debugging printf call
 
-2005-11-18 17:37  mcayland
+2005-11-18 17:37  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Add fix for PG 8.1 calling the MemoryContext check method when
-	  compiled as a debug build
+	* [r2049] lwgeom/lwgeom_transform.c: Add fix for PG 8.1 calling the
+	  MemoryContext check method when compiled as a debug build
 
-2005-11-18 10:48  strk
+2005-11-18 10:48  Sandro Santilli <strk at keybit.net>
 
-	* fixed double release of bbox cache memory
+	* [r2048] lwgeom/lwgeom_transform.c: fixed double release of bbox
+	  cache memory
 
-2005-11-18 10:16  strk
+2005-11-18 10:16  Sandro Santilli <strk at keybit.net>
 
-	* Removed casts on lwalloc return.
+	* [r2047] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_gml.c,
+	  lwgeom/lwgeom_svg.c: Removed casts on lwalloc return.
 	  Used varlena macros when appropriate.
 
-2005-11-17 23:35  mcayland
+2005-11-17 23:35  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Removed duplicate debugging code used to reset the cache when it
-	  was full
+	* [r2045] lwgeom/lwgeom_transform.c: Removed duplicate debugging
+	  code used to reset the cache when it was full
 
-2005-11-17 23:25  mcayland
+2005-11-17 23:25  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fixed assertion bug and an off-by-one palloc() in the new
-	  transform() code
+	* [r2044] lwgeom/lwgeom_transform.c: Fixed assertion bug and an
+	  off-by-one palloc() in the new transform() code
 
-2005-11-17 17:49  mcayland
+2005-11-17 17:49  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Reimplement transform() using a cache that maintains SRS and
+	* [r2043] lwgeom/lwgeom_transform.c, lwgeom/lwpostgis.sql.in:
+	  Reimplement transform() using a cache that maintains SRS and
 	  PROJ.4 library handles throughout each portal to speed up
 	  reprojections on large datasets
 
-2005-11-16 13:04  mschaber
+2005-11-16 13:04  Markus Schaber <markus at schabi.de>
 
-	* small comment improvements in Point.java
+	* [r2042] jdbc2/src/org/postgis/Point.java: small comment
+	  improvements in Point.java
 
-2005-11-16 10:34  strk
+2005-11-16 10:34  Sandro Santilli <strk at keybit.net>
 
-	* Added availability info of line_interpolate_point function
+	* [r2041] doc/postgis.xml: Added availability info of
+	  line_interpolate_point function
 
-2005-11-16 09:49  strk
+2005-11-16 09:49  Sandro Santilli <strk at keybit.net>
 
-	* Updated 1.0.5 release documentation
+	* [r2040] CHANGES, doc/postgis.xml: Updated 1.0.5 release
+	  documentation
 
-2005-11-14 10:05  strk
+2005-11-14 10:05  Sandro Santilli <strk at keybit.net>
 
-	* Forced use of CAPI when building against GEOS 3.x.x or superior
+	* [r2038] configure.in: Forced use of CAPI when building against
+	  GEOS 3.x.x or superior
 
-2005-11-14 09:01  strk
+2005-11-14 09:01  Sandro Santilli <strk at keybit.net>
 
-	* Forced copy of BOX2D at deserialization time.
+	* [r2037] lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_c.c,
+	  lwgeom/lwgeom_jts.c, lwgeom/lwline.c, lwgeom/lwmline.c,
+	  lwgeom/lwmpoint.c, lwgeom/lwmpoly.c, lwgeom/lwpoint.c,
+	  lwgeom/lwpoly.c: Forced copy of BOX2D at deserialization time.
 	  LWGEOM (sub)objects will always have their own copy, safely
 	  released
 	  by lwgeom_release(). This will remove memory alignment problems.
 
-2005-11-11 18:04  strk
+2005-11-11 18:04  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r2034] TODO: updated
 
-2005-11-11 17:49  strk
+2005-11-11 17:49  Sandro Santilli <strk at keybit.net>
 
-	* Updated
+	* [r2032] CHANGES: Updated
 
-2005-11-11 17:45  strk
+2005-11-11 17:45  Sandro Santilli <strk at keybit.net>
 
-	* Fixed memory alignment bug in base geometry type serializers,
-	  added integrity check for geometry type flag and it's pointarrays
+	* [r2030] lwgeom/lwline.c, lwgeom/lwpoint.c, lwgeom/lwpoly.c: Fixed
+	  memory alignment bug in base geometry type serializers, added
+	  integrity check for geometry type flag and it's pointarrays
 	  dimension mismatch
 
-2005-11-11 17:23  strk
+2005-11-11 17:23  Sandro Santilli <strk at keybit.net>
 
-	* Fixed memory alignment issues in force_*d*_recursive
+	* [r2029] lwgeom/lwgeom_functions_basic.c: Fixed memory alignment
+	  issues in force_*d*_recursive
 
-2005-11-11 17:03  strk
+2005-11-11 17:03  Sandro Santilli <strk at keybit.net>
 
-	* Added some dimensionality changes tests
+	* [r2027] regress/lwgeom_regress.sql,
+	  regress/lwgeom_regress_expected: Added some dimensionality
+	  changes tests
 
-2005-11-11 17:02  strk
+2005-11-11 17:02  Sandro Santilli <strk at keybit.net>
 
-	* Added linemerge test
+	* [r2026] regress/regress.sql, regress/regress_expected: Added
+	  linemerge test
 
-2005-11-11 10:49  strk
+2005-11-11 10:49  Sandro Santilli <strk at keybit.net>
 
-	* Fixed short-initialization in getPoint4d_p
+	* [r2020] CHANGES, lwgeom/lwgeom_api.c: Fixed short-initialization
+	  in getPoint4d_p
 
-2005-11-01 17:11  strk
+2005-11-01 17:11  Sandro Santilli <strk at keybit.net>
 
-	* Ported ELF detection code from PostgreSQL. PostGIS builds on
-	  freebsd > 2 out of the box now.
+	* [r2019] Makefile.config.in, configure.in: Ported ELF detection
+	  code from PostgreSQL. PostGIS builds on freebsd > 2 out of the
+	  box now.
 
-2005-11-01 11:56  strk
+2005-11-01 11:56  Sandro Santilli <strk at keybit.net>
 
-	* Initial work on ST_AddEdgeNewFaces
+	* [r2018] topology/topology.sql.in: Initial work on
+	  ST_AddEdgeNewFaces
 
-2005-11-01 11:46  strk
+2005-11-01 11:46  Sandro Santilli <strk at keybit.net>
 
-	* Removed calls to get_proj4_from_srid() from transform() to
-	  require
+	* [r2016] lwgeom/lwpostgis.sql.in: Removed calls to
+	  get_proj4_from_srid() from transform() to require
 	  a single scan of spatial_ref_sys for call rather then two.
 
-2005-11-01 11:37  strk
+2005-11-01 11:37  Sandro Santilli <strk at keybit.net>
 
-	* Fixed handling of --with-proj handling
+	* [r2015] configure.in: Fixed handling of --with-proj handling
 
-2005-11-01 10:29  strk
+2005-11-01 10:29  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r2014] CHANGES: updated
 
-2005-11-01 10:22  strk
+2005-11-01 10:22  Sandro Santilli <strk at keybit.net>
 
-	* Changed major-minor version numbers extraction to be compatible
-	  with postgresql 7.2.1 (relies on the fact that this information
-	  will always be in the first 4 characters - single digit per
-	  version)
+	* [r2011] utils/postgis_proc_upgrade.pl: Changed major-minor
+	  version numbers extraction to be compatible with postgresql 7.2.1
+	  (relies on the fact that this information will always be in the
+	  first 4 characters - single digit per version)
 
-2005-11-01 09:25  strk
+2005-11-01 09:25  Sandro Santilli <strk at keybit.net>
 
-	* Reworked NULL geometries handling code letting user specify
-	  policy (insert,skip,abort). Insert is the default.
+	* [r2010] loader/shp2pgsql.c: Reworked NULL geometries handling
+	  code letting user specify policy (insert,skip,abort). Insert is
+	  the default.
 
-2005-10-31 13:42  mschaber
+2005-10-31 13:42  Markus Schaber <markus at schabi.de>
 
-	* Document Bug in PGShapeGeometry
+	* [r2009] jdbc2/src/org/postgis/java2d/PGShapeGeometry.java:
+	  Document Bug in PGShapeGeometry
 
-2005-10-28 13:48  mschaber
+2005-10-28 13:48  Markus Schaber <markus at schabi.de>
 
-	* Small winding rule fix and some comment improvements
+	* [r2008] jdbc2/src/org/postgis/java2d/PGShapeGeometry.java: Small
+	  winding rule fix and some comment improvements
 
-2005-10-26 11:10  strk
+2005-10-26 11:10  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r2006] CHANGES: updated
 
-2005-10-26 11:07  strk
+2005-10-26 11:07  Sandro Santilli <strk at keybit.net>
 
-	* Added optional second argument to specify schema in which postgis
-	  functions are to be replaced
+	* [r2004] utils/postgis_proc_upgrade.pl: Added optional second
+	  argument to specify schema in which postgis functions are to be
+	  replaced
 
-2005-10-25 14:31  strk
+2005-10-25 14:31  Sandro Santilli <strk at keybit.net>
 
-	* Added azimuth() and shift_longitude() functions
+	* [r2003] CHANGES: Added azimuth() and shift_longitude() functions
 
-2005-10-25 14:31  strk
+2005-10-25 14:31  Sandro Santilli <strk at keybit.net>
 
-	* Added documentation for azimuth()
+	* [r2002] doc/postgis.xml: Added documentation for azimuth()
 
-2005-10-25 14:21  strk
+2005-10-25 14:21  Sandro Santilli <strk at keybit.net>
 
-	* Added missing SRID check in azimuth() function
+	* [r2001] lwgeom/lwgeom_functions_basic.c: Added missing SRID check
+	  in azimuth() function
 
-2005-10-25 14:15  strk
+2005-10-25 14:15  Sandro Santilli <strk at keybit.net>
 
-	* Added azimuth(point,point) function.
+	* [r2000] lwgeom/liblwgeom.h, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in, lwgeom/measures.c: Added
+	  azimuth(point,point) function.
 
-2005-10-25 11:38  strk
+2005-10-25 11:38  Sandro Santilli <strk at keybit.net>
 
-	* Added shift_longitude(geometry) sql procedure and underlying
+	* [r1999] lwgeom/liblwgeom.h, lwgeom/lwgeom.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in,
+	  lwgeom/ptarray.c: Added shift_longitude(geometry) sql procedure
+	  and underlying
 	  ptarray_longitude_shift(POINTARRAY *) and
 	  lwgeom_longitude_shift(LWGEOM *)
 	  functions.
 
-2005-10-25 11:37  strk
+2005-10-25 11:37  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in GEOSCoordSeq to POINTARRAY converter
+	* [r1998] lwgeom/lwgeom_geos_c.c: Fixed bug in GEOSCoordSeq to
+	  POINTARRAY converter
 
-2005-10-25 11:16  strk
+2005-10-25 11:16  Sandro Santilli <strk at keybit.net>
 
-	* Added pglwgeom_deserialize()
+	* [r1997] lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h: Added
+	  pglwgeom_deserialize()
 
-2005-10-24 16:14  strk
+2005-10-24 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Moved loader/dumper stricter handling of attribute sizes from
-	  1.0.5 to head section
+	* [r1996] CHANGES: Moved loader/dumper stricter handling of
+	  attribute sizes from 1.0.5 to head section
 
-2005-10-24 15:54  strk
+2005-10-24 15:54  Sandro Santilli <strk at keybit.net>
 
-	* fixed wrong assumption about maximum size of integer attributes
-	  (width is maximum size of text representation)
+	* [r1993] loader/shp2pgsql.c: fixed wrong assumption about maximum
+	  size of integer attributes (width is maximum size of text
+	  representation)
 
-2005-10-24 13:29  strk
+2005-10-24 13:29  Sandro Santilli <strk at keybit.net>
 
-	* Updated to reflect ownership policy in GEOS C-api.
+	* [r1991] lwgeom/lwgeom_geos_c.c: Updated to reflect ownership
+	  policy in GEOS C-api.
 
-2005-10-24 11:33  strk
+2005-10-24 11:33  Sandro Santilli <strk at keybit.net>
 
-	* Added attribute types mapping change
+	* [r1990] CHANGES: Added attribute types mapping change
 
-2005-10-24 11:30  strk
+2005-10-24 11:30  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in string attributes handling truncating values of
-	  maximum
+	* [r1987] loader/pgsql2shp.c, loader/shp2pgsql.c: Fixed a bug in
+	  string attributes handling truncating values of maximum
 	  allowed length, curtesy of Lars Roessiger.
 	  Reworked integer attributes handling to be stricter in dbf->sql
 	  mapping
 	  and to allow for big int8 values in sql->dbf conversion
 
-2005-10-21 15:35  mschaber
+2005-10-21 15:35  Markus Schaber <markus at schabi.de>
 
-	* PGShapeGeometry constructor cleanup
+	* [r1986] jdbc2/src/org/postgis/java2d/PGShapeGeometry.java:
+	  PGShapeGeometry constructor cleanup
 
-2005-10-21 13:06  mschaber
+2005-10-21 13:06  Markus Schaber <markus at schabi.de>
 
-	* Updated jdbc2 README to reflect JTS dependency on trove4j
+	* [r1985] jdbc2, jdbc2/.cvsignore, jdbc2/README: Updated jdbc2
+	  README to reflect JTS dependency on trove4j
 
-2005-10-21 12:07  mschaber
+2005-10-21 12:07  Markus Schaber <markus at schabi.de>
 
-	* implemented JTS GeometryFactory caching
+	* [r1984] jdbc2/README,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  jdbc2/src/examples/TestJava2d.java: implemented JTS
+	  GeometryFactory caching
 
-2005-10-21 11:33  strk
+2005-10-21 11:33  Sandro Santilli <strk at keybit.net>
 
-	* Applied patch by Lars Roessiger handling numerical values with a
-	  trailing decima
+	* [r1982] CHANGES, loader/shp2pgsql.c: Applied patch by Lars
+	  Roessiger handling numerical values with a trailing decima
 	  l dot
 
-2005-10-21 08:53  mschaber
+2005-10-21 08:53  Markus Schaber <markus at schabi.de>
 
-	* typo fix in java2D example
+	* [r1981] jdbc2/src/examples/TestJava2d.java: typo fix in java2D
+	  example
 
-2005-10-20 18:07  mschaber
+2005-10-20 18:07  Markus Schaber <markus at schabi.de>
 
-	* added example for java2d
+	* [r1980] jdbc2/sources.inc, jdbc2/src/examples/TestJava2d.java,
+	  jdbc2/src/org/postgis/java2d/Java2DWrapper.java,
+	  jdbc2/src/org/postgis/java2d/PGShapeGeometry.java: added example
+	  for java2d
 
-2005-10-20 16:13  mschaber
+2005-10-20 16:13  Markus Schaber <markus at schabi.de>
 
-	* moved java2d to ordinary src directory, as it does not depend on
-	  any external libraries.
+	* [r1979] jdbc2/java2dsrc, jdbc2/src/org/postgis/java2d,
+	  jdbc2/src/org/postgis/java2d/Java2DWrapper.java,
+	  jdbc2/src/org/postgis/java2d/PGShapeGeometry.java,
+	  jdbc2/src/org/postgis/java2d/ShapeBinaryParser.java: moved java2d
+	  to ordinary src directory, as it does not depend on any external
+	  libraries.
 
-2005-10-20 16:04  mschaber
+2005-10-20 16:04  Markus Schaber <markus at schabi.de>
 
-	* fix postgresql 7.2 datatype registration compatibility code
+	* [r1978] jdbc2/src/org/postgis/DriverWrapper.java: fix postgresql
+	  7.2 datatype registration compatibility code
 
-2005-10-20 15:58  mschaber
+2005-10-20 15:58  Markus Schaber <markus at schabi.de>
 
-	* Fixed all deprecation warnings in JTS code by using proper
-	  GeometryFactory instances (hope)
+	* [r1977] jdbc2/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryWriter.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGisWrapper.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsWrapper.java: Fixed all
+	  deprecation warnings in JTS code by using proper GeometryFactory
+	  instances (hope)
 
-2005-10-20 15:57  mschaber
+2005-10-20 15:57  Markus Schaber <markus at schabi.de>
 
-	* added forgotten changelog entry
+	* [r1976] CHANGES: added forgotten changelog entry
 
-2005-10-20 14:35  mschaber
+2005-10-20 14:35  Markus Schaber <markus at schabi.de>
 
-	* Added some source for java2D readonly support
+	* [r1975] jdbc2/java2dsrc, jdbc2/java2dsrc/org,
+	  jdbc2/java2dsrc/org/postgis, jdbc2/java2dsrc/org/postgis/java2d,
+	  jdbc2/java2dsrc/org/postgis/java2d/Java2DWrapper.java,
+	  jdbc2/java2dsrc/org/postgis/java2d/PGShapeGeometry.java,
+	  jdbc2/java2dsrc/org/postgis/java2d/ShapeBinaryParser.java: Added
+	  some source for java2D readonly support
 
-2005-10-19 13:11  strk
+2005-10-19 13:11  Sandro Santilli <strk at keybit.net>
 
-	* Handled some more errors.
+	* [r1974] lwgeom/lwgeom_geos_c.c: Handled some more errors.
 
-2005-10-19 10:12  strk
+2005-10-19 10:12  Sandro Santilli <strk at keybit.net>
 
-	* Removed useless variables from linemerge()
+	* [r1973] lwgeom/lwgeom_jts.c: Removed useless variables from
+	  linemerge()
 
-2005-10-19 10:09  strk
+2005-10-19 10:09  Sandro Santilli <strk at keybit.net>
 
-	* Removed unused variables in linemerge()
+	* [r1972] lwgeom/lwgeom_geos.c: Removed unused variables in
+	  linemerge()
 
-2005-10-19 10:04  strk
+2005-10-19 10:04  Sandro Santilli <strk at keybit.net>
 
-	* Added ST_ModEdgesSplit function, cleaned up test files, added
-	  tests for
+	* [r1971] topology/test/Makefile,
+	  topology/test/cache_geometries.sql,
+	  topology/test/edit_topology.sql, topology/test/hierarchy.sql,
+	  topology/test/load_topology.sql,
+	  topology/test/predicate.expected, topology/topology.sql.in: Added
+	  ST_ModEdgesSplit function, cleaned up test files, added tests for
 	  the new topology editing functions.
 
-2005-10-18 16:39  strk
+2005-10-18 16:39  Sandro Santilli <strk at keybit.net>
 
-	* Fixed ST_NewEdgesSplit function to return new Node id rather then
-	  text
+	* [r1970] topology/topology.sql.in: Fixed ST_NewEdgesSplit function
+	  to return new Node id rather then text
 
-2005-10-18 15:31  strk
+2005-10-18 15:31  Sandro Santilli <strk at keybit.net>
 
-	* Added SQL/MM functions ST_RemoveIsoEdge and ST_NewEdgesSplit.
+	* [r1969] topology/test/load_topology.sql,
+	  topology/test/sqlmm_topology.sql, topology/topology.sql.in: Added
+	  SQL/MM functions ST_RemoveIsoEdge and ST_NewEdgesSplit.
 	  The ST_NewEdgesSplit also updates the Relation table (out of
 	  SQL/MM specs).
 
-2005-10-17 09:40  strk
+2005-10-17 09:40  Sandro Santilli <strk at keybit.net>
 
-	* Changed GEOS initializzation to use lwnotice for errors rather
-	  then
+	* [r1968] lwgeom/lwgeom_geos_c.c: Changed GEOS initializzation to
+	  use lwnotice for errors rather then
 	  lwerror, to allow for cleanup on exceptions.
 
-2005-10-17 09:39  strk
+2005-10-17 09:39  Sandro Santilli <strk at keybit.net>
 
-	* Added -Wall flag to compilers invocation
+	* [r1967] lwgeom/Makefile: Added -Wall flag to compilers invocation
 
-2005-10-17 08:37  strk
+2005-10-17 08:37  Sandro Santilli <strk at keybit.net>
 
-	* Fixed compiler warnings, handled exceptions in POSTGIS2GEOS
-	  conversions
+	* [r1966] lwgeom/lwgeom_geos_c.c: Fixed compiler warnings, handled
+	  exceptions in POSTGIS2GEOS conversions
 
-2005-10-14 08:29  strk
+2005-10-14 08:29  Sandro Santilli <strk at keybit.net>
 
-	* Added topology change
+	* [r1965] CHANGES: Added topology change
 
-2005-10-13 16:21  strk
+2005-10-13 16:21  Sandro Santilli <strk at keybit.net>
 
-	* Initial work on topology model support
+	* [r1964] topology, topology/.cvsignore, topology/ER,
+	  topology/ER/.cvsignore, topology/ER/Makefile,
+	  topology/ER/topology.fig, topology/Makefile, topology/README,
+	  topology/TODO, topology/test, topology/test/.cvsignore,
+	  topology/test/Makefile, topology/test/cache_geometries.sql,
+	  topology/test/hierarchy.sql, topology/test/invalid_topology.sql,
+	  topology/test/load_topology.sql, topology/test/more_features.sql,
+	  topology/test/predicates.sql.in,
+	  topology/test/sqlmm_topology.sql,
+	  topology/test/validate_topology.sql, topology/topology.sql.in:
+	  Initial work on topology model support
 
-2005-10-13 13:40  strk
+2005-10-13 13:40  Sandro Santilli <strk at keybit.net>
 
-	* Fixed return code from shp2pgsql
+	* [r1963] CHANGES, loader/shp2pgsql.c: Fixed return code from
+	  shp2pgsql
 
-2005-10-10 16:19  strk
+2005-10-10 16:19  Sandro Santilli <strk at keybit.net>
 
-	* Fixed null values fraction computation in geometry analyzer as
-	  suggested by Michael Fuhr
+	* [r1961] CHANGES, lwgeom/lwgeom_estimate.c: Fixed null values
+	  fraction computation in geometry analyzer as suggested by Michael
+	  Fuhr
 
-2005-10-03 21:45  devrim
+2005-10-03 21:45  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Added basic doc about building RPMs
+	* [r1959] extras/rpm/README: Added basic doc about building RPMs
 
-2005-10-03 21:29  devrim
+2005-10-03 21:29  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* - Make PostGIS build against pgxs so that we don't need
-	  PostgreSQL sources.
+	* [r1958] extras/rpm/spec/postgis.spec: - Make PostGIS build
+	  against pgxs so that we don't need PostgreSQL sources.
 	  - Fixed all build errors except jdbc (so, defaulted to 0)
 	  - Added new files under %utils
 
-2005-10-03 18:08  strk
+2005-10-03 18:08  Sandro Santilli <strk at keybit.net>
 
-	* Stricter string attributes lenght handling. DBF header will be
-	  used
+	* [r1957] loader/pgsql2shp.c, loader/shp2pgsql.c: Stricter string
+	  attributes lenght handling. DBF header will be used
 	  to set varchar maxlenght, (var)char typmod will be used to set
 	  DBF header
 	  len.
 
-2005-10-03 17:36  devrim
+2005-10-03 17:36  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Removed postgis-jdbc2-makefile.patch (applied to -head)
+	* [r1956] extras/rpm/spec/postgis.spec: Removed
+	  postgis-jdbc2-makefile.patch (applied to -head)
 
-2005-10-03 17:29  devrim
+2005-10-03 17:29  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Applied to HEAD, so removed
+	* [r1955] extras/rpm/patches/postgis-jdbc2-makefile.patch: Applied
+	  to HEAD, so removed
 
-2005-10-03 07:53  strk
+2005-10-03 07:53  Sandro Santilli <strk at keybit.net>
 
-	* Added -W and -I loader switches to manuals.
+	* [r1954] doc/man/shp2pgsql.1, doc/postgis.xml: Added -W and -I
+	  loader switches to manuals.
 
-2005-10-03 07:45  strk
+2005-10-03 07:45  Sandro Santilli <strk at keybit.net>
 
-	* Issued a warning when -W is specified and no UTF8 support has
-	  been compiled in.
+	* [r1953] loader/shp2pgsql.c: Issued a warning when -W is specified
+	  and no UTF8 support has been compiled in.
 
-2005-09-30 15:09  devrim
+2005-09-30 15:09  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Removed
+	* [r1952] extras/rpm/README.rpm: Removed
 
-2005-09-30 15:09  devrim
+2005-09-30 15:09  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Renamed the file and fixed the non-ascii char
+	* [r1951] extras/rpm/README: Renamed the file and fixed the
+	  non-ascii char
 
-2005-09-30 12:44  strk
+2005-09-30 12:44  Sandro Santilli <strk at keybit.net>
 
-	* undefined UNITE_USING_BUFFER (defining it to 0 did not have the
-	  expected result)
+	* [r1950] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_c.c: undefined
+	  UNITE_USING_BUFFER (defining it to 0 did not have the expected
+	  result)
 
-2005-09-30 08:59  strk
+2005-09-30 08:59  Sandro Santilli <strk at keybit.net>
 
-	* Fixed release of stack memory occurring when shp2pgsql is
-	  compiled with USE_ICONV defined, an attribute value needs to be
-	  escaped and no -W is used
+	* [r1949] CHANGES, loader/shp2pgsql.c: Fixed release of stack
+	  memory occurring when shp2pgsql is compiled with USE_ICONV
+	  defined, an attribute value needs to be escaped and no -W is used
 
-2005-09-29 07:11  mschaber
+2005-09-29 07:11  Markus Schaber <markus at schabi.de>
 
-	* Manually applied Makefile changes from Devrim GUNDUZ
-	  (extras/rpm/patches/postgis-jdbc2-makefile.patch) to HEAD jdbc2
-	  Makefile
+	* [r1947] jdbc2/Makefile: Manually applied Makefile changes from
+	  Devrim GUNDUZ (extras/rpm/patches/postgis-jdbc2-makefile.patch)
+	  to HEAD jdbc2 Makefile
 
-2005-09-28 16:34  strk
+2005-09-28 16:34  Sandro Santilli <strk at keybit.net>
 
-	* Honoured want3d parameter in GEOS2POSTGIS converters
+	* [r1946] lwgeom/lwgeom_geos_c.c: Honoured want3d parameter in
+	  GEOS2POSTGIS converters
 
-2005-09-27 21:50  devrim
+2005-09-27 21:50  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Mentioned about the patches in spec file.
+	* [r1945] extras/rpm/README.rpm: Mentioned about the patches in
+	  spec file.
 
-2005-09-27 21:48  devrim
+2005-09-27 21:48  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Initial README file for PostGIS RPM
+	* [r1944] extras/rpm/README.rpm: Initial README file for PostGIS
+	  RPM
 
-2005-09-27 21:26  devrim
+2005-09-27 21:26  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Initial import of postgis.spec
+	* [r1943] extras/rpm/spec, extras/rpm/spec/postgis.spec: Initial
+	  import of postgis.spec
 
-2005-09-27 21:12  devrim
+2005-09-27 21:12  Devrim GÜNDÜZ <devrim at gunduz.org>
 
-	* Necesarry patches used to build PostGIS RPMs.
+	* [r1942] extras/rpm, extras/rpm/patches,
+	  extras/rpm/patches/filter-requires-perl-Pg.sh,
+	  extras/rpm/patches/postgis-jdbc2-makefile.patch,
+	  extras/rpm/patches/postgis-jdbcdedectver.sh,
+	  extras/rpm/patches/postgis-version.config.patch: Necesarry
+	  patches used to build PostGIS RPMs.
 
-2005-09-27 16:30  strk
+2005-09-27 16:30  Sandro Santilli <strk at keybit.net>
 
-	* Wrapped debugging line in preprocessor block.
+	* [r1941] lwgeom/lwgeom_geos_c.c: Wrapped debugging line in
+	  preprocessor block.
 
-2005-09-26 13:48  strk
+2005-09-26 13:48  Sandro Santilli <strk at keybit.net>
 
-	* Made USE_GEOS_CAPI definable by ./configure
+	* [r1940] Makefile.config.in: Made USE_GEOS_CAPI definable by
+	  ./configure
 
-2005-09-26 13:47  strk
+2005-09-26 13:47  Sandro Santilli <strk at keybit.net>
 
-	* Added --with-geos-capi switch
+	* [r1939] configure.in: Added --with-geos-capi switch
 
-2005-09-26 12:53  strk
+2005-09-26 12:53  Sandro Santilli <strk at keybit.net>
 
-	* Added LineMerge function in Geometry Editors chapter
+	* [r1938] doc/postgis.xml: Added LineMerge function in Geometry
+	  Editors chapter
 
-2005-09-26 12:36  strk
+2005-09-26 12:36  Sandro Santilli <strk at keybit.net>
 
-	* Initial switches for use of GEOS C-API
+	* [r1937] CHANGES, Makefile.config.in, lwgeom/Makefile: Initial
+	  switches for use of GEOS C-API
 
-2005-09-26 12:30  strk
+2005-09-26 12:30  Sandro Santilli <strk at keybit.net>
 
-	* Added LineMerge interface
+	* [r1936] lwgeom/lwgeom_geos_c.c: Added LineMerge interface
 
-2005-09-26 12:09  strk
+2005-09-26 12:09  Sandro Santilli <strk at keybit.net>
 
-	* Updated LineMerge facts
+	* [r1935] TODO: Updated LineMerge facts
 
-2005-09-26 12:08  strk
+2005-09-26 12:08  Sandro Santilli <strk at keybit.net>
 
-	* Added JTSLineMerge stub, fixed typos in profiling outputs.
+	* [r1934] lwgeom/lwgeom_jts.c, lwgeom/lwgeom_jts_wrapper.cpp: Added
+	  JTSLineMerge stub, fixed typos in profiling outputs.
 
-2005-09-26 12:07  strk
+2005-09-26 12:07  Sandro Santilli <strk at keybit.net>
 
-	* Added stub for linemerge()
+	* [r1933] lwgeom/lwgeom_nojts.c: Added stub for linemerge()
 
-2005-09-26 12:04  strk
+2005-09-26 12:04  Sandro Santilli <strk at keybit.net>
 
-	* Added new LineMerge funtion
+	* [r1932] CHANGES: Added new LineMerge funtion
 
-2005-09-26 12:03  strk
+2005-09-26 12:03  Sandro Santilli <strk at keybit.net>
 
-	* Fixed prototype of linemerge() and error typo in it
+	* [r1931] lwgeom/lwgeom_geos.c: Fixed prototype of linemerge() and
+	  error typo in it
 
-2005-09-26 11:35  strk
+2005-09-26 11:35  Sandro Santilli <strk at keybit.net>
 
-	* Changed GEOSLineMerge function to take one geometry and return
-	  the simplest
+	* [r1930] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_wrapper.cpp,
+	  lwgeom/lwpostgis.sql.in: Changed GEOSLineMerge function to take
+	  one geometry and return the simplest
 	  geometry formed by set of merged LineStrings. Fixed memory leak
 	  in
 	  GEOSrelate().
 
-2005-09-23 17:25  strk
+2005-09-23 17:25  Sandro Santilli <strk at keybit.net>
 
-	* Added linemerge_garray function
+	* [r1929] lwgeom/lwpostgis.sql.in: Added linemerge_garray function
 
-2005-09-23 17:22  strk
+2005-09-23 17:22  Sandro Santilli <strk at keybit.net>
 
-	* Added LineMerger interface
+	* [r1928] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_wrapper.cpp:
+	  Added LineMerger interface
 
-2005-09-23 17:06  strk
+2005-09-23 17:06  Sandro Santilli <strk at keybit.net>
 
-	* Initial wrapper to GEOS C api
+	* [r1927] lwgeom/lwgeom_geos_c.c: Initial wrapper to GEOS C api
 
-2005-09-23 16:43  strk
+2005-09-23 16:43  Sandro Santilli <strk at keybit.net>
 
-	* Added wrappers for ewkb output
+	* [r1926] lwgeom/liblwgeom.h, lwgeom/lwgeom.c, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c: Added wrappers for ewkb output
 
-2005-09-23 16:41  strk
+2005-09-23 16:41  Sandro Santilli <strk at keybit.net>
 
-	* cleanups
+	* [r1925] lwgeom/lwgeom_inout.c: cleanups
 
-2005-09-23 16:24  strk
+2005-09-23 16:24  Sandro Santilli <strk at keybit.net>
 
-	* cleanups
+	* [r1924] lwgeom/ptarray.c: cleanups
 
-2005-09-23 15:43  strk
+2005-09-23 15:43  Sandro Santilli <strk at keybit.net>
 
-	* added header sentinels
+	* [r1923] lwgeom/wktparse.h: added header sentinels
 
-2005-09-23 11:45  strk
+2005-09-23 11:45  Sandro Santilli <strk at keybit.net>
 
-	* Made LWGEOMFromWKB use underlying pglwgeom_from_ewkb()
+	* [r1922] lwgeom/lwgeom_inout.c: Made LWGEOMFromWKB use underlying
+	  pglwgeom_from_ewkb()
 
-2005-09-23 11:23  strk
+2005-09-23 11:23  Sandro Santilli <strk at keybit.net>
 
-	* Added pglwgeom_from_ewkb function
+	* [r1921] lwgeom/liblwgeom.h, lwgeom/lwgeom_api.c: Added
+	  pglwgeom_from_ewkb function
 
-2005-09-16 13:19  strk
+2005-09-16 13:19  Sandro Santilli <strk at keybit.net>
 
-	* given some consistent format to items
+	* [r1920] CHANGES: given some consistent format to items
 
-2005-09-15 14:53  strk
+2005-09-15 14:53  Sandro Santilli <strk at keybit.net>
 
-	* Fixed X(),Y() and Z() functions descriptions, added M().
+	* [r1918] doc/postgis.xml: Fixed X(),Y() and Z() functions
+	  descriptions, added M().
 
-2005-09-15 10:24  strk
+2005-09-15 10:24  Sandro Santilli <strk at keybit.net>
 
-	* Moved AddPoint() function from 'geometry constructors' to
-	  'geometry editors' chapter
+	* [r1917] doc/postgis.xml: Moved AddPoint() function from 'geometry
+	  constructors' to 'geometry editors' chapter
 
-2005-09-15 10:16  strk
+2005-09-15 10:16  Sandro Santilli <strk at keybit.net>
 
-	* Disabled buffer-based GeomUnion
+	* [r1915] CHANGES, lwgeom/lwgeom_geos.c: Disabled buffer-based
+	  GeomUnion
 
-2005-09-15 10:13  strk
+2005-09-15 10:13  Sandro Santilli <strk at keybit.net>
 
-	* Moved the fix_geometry_column() removal to 1.1.0 section
+	* [r1914] CHANGES: Moved the fix_geometry_column() removal to 1.1.0
+	  section
 
-2005-09-15 09:55  strk
+2005-09-15 09:55  Sandro Santilli <strk at keybit.net>
 
-	* Removed automatic fix_geometry_columns() call in
-	  update_geometry_stats and AddGeometryColumns()
+	* [r1911] CHANGES, lwgeom/lwpostgis.sql.in: Removed automatic
+	  fix_geometry_columns() call in update_geometry_stats and
+	  AddGeometryColumns()
 
-2005-09-15 09:50  strk
+2005-09-15 09:50  Sandro Santilli <strk at keybit.net>
 
-	* Added Reporting Bugs chapter
+	* [r1910] doc/postgis.xml: Added Reporting Bugs chapter
 
-2005-09-09 17:03  strk
+2005-09-09 17:03  Sandro Santilli <strk at keybit.net>
 
-	* Updated release info for 1.0.4
+	* [r1908] CHANGES, doc/postgis.xml: Updated release info for 1.0.4
 
-2005-09-09 16:21  strk
+2005-09-09 16:21  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in scale() and transscale() functions corrupting output
-	  bounding box
+	* [r1906] lwgeom/lwgeom_functions_basic.c: Fixed bug in scale() and
+	  transscale() functions corrupting output bounding box
 
-2005-09-09 15:23  strk
+2005-09-09 15:23  Sandro Santilli <strk at keybit.net>
 
-	* cleanups for waste left in previous patches
+	* [r1903] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_ogc.c:
+	  cleanups for waste left in previous patches
 
-2005-09-09 14:47  strk
+2005-09-09 14:47  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in translate() corrupting output bounding box.
-	  Bounding-box related cleanups in exterior_ring()
+	* [r1901] CHANGES, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_ogc.c: Fixed bug in translate() corrupting output
+	  bounding box. Bounding-box related cleanups in exterior_ring()
 
-2005-09-08 23:30  strk
+2005-09-08 23:30  Sandro Santilli <strk at keybit.net>
 
-	* Made ptarray_compute_box3d a wrapper of ptarray_compute_box3d_p
+	* [r1899] CHANGES, lwgeom/ptarray.c: Made ptarray_compute_box3d a
+	  wrapper of ptarray_compute_box3d_p
 
-2005-09-08 22:59  strk
+2005-09-08 22:59  Sandro Santilli <strk at keybit.net>
 
-	* minor speedups in distance()
+	* [r1896] CHANGES, lwgeom/measures.c: minor speedups in distance()
 
-2005-09-08 19:26  strk
+2005-09-08 19:26  Sandro Santilli <strk at keybit.net>
 
-	* Handled search_box outside of histogram_box case in selectivity
-	  estimator
+	* [r1894] CHANGES, lwgeom/lwgeom_estimate.c: Handled search_box
+	  outside of histogram_box case in selectivity estimator
 
-2005-09-07 11:58  mschaber
+2005-09-07 11:58  Markus Schaber <markus at schabi.de>
 
-	* added some more Todo points
+	* [r1892] TODO: added some more Todo points
 
-2005-09-06 09:22  strk
+2005-09-06 09:22  Sandro Santilli <strk at keybit.net>
 
-	* Added notes about PointN, GeometryN and InteriorRingN indexing
-	  method
+	* [r1891] CHANGES, doc/postgis.xml: Added notes about PointN,
+	  GeometryN and InteriorRingN indexing method
 
-2005-09-06 08:29  strk
+2005-09-06 08:29  Sandro Santilli <strk at keybit.net>
 
-	* BOX3d parser note
+	* [r1889] CHANGES: BOX3d parser note
 
-2005-09-06 08:28  strk
+2005-09-06 08:28  Sandro Santilli <strk at keybit.net>
 
-	* looser BOX3D parser
+	* [r1887] lwgeom/lwgeom_box3d.c: looser BOX3D parser
 
-2005-09-03 06:11  strk
+2005-09-03 06:11  Sandro Santilli <strk at keybit.net>
 
-	* Leak plugged in compute_serialized_box3d_p
+	* [r1885] CHANGES, lwgeom/lwgeom_api.c: Leak plugged in
+	  compute_serialized_box3d_p
 
-2005-08-31 17:09  strk
+2005-08-31 17:09  Sandro Santilli <strk at keybit.net>
 
-	* removed compiler warnings
+	* [r1883] lwgeom/lwgeom_api.c: removed compiler warnings
 
-2005-08-31 16:49  strk
+2005-08-31 16:49  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in pointArray_construct() misinterpreting hasZ and hasM
-	  parameters
+	* [r1881] CHANGES, lwgeom/lwgeom_api.c: Fixed bug in
+	  pointArray_construct() misinterpreting hasZ and hasM parameters
 
-2005-08-29 22:36  strk
+2005-08-29 22:36  Sandro Santilli <strk at keybit.net>
 
-	* Removed premature object destruction in InsertLineString{WKT,}
-	  causing segfault
+	* [r1879] CHANGES, loader/shp2pgsql.c: Removed premature object
+	  destruction in InsertLineString{WKT,} causing segfault
 
-2005-08-29 12:08  strk
+2005-08-29 12:08  Sandro Santilli <strk at keybit.net>
 
-	* Added Nikita Shulga <malfet at jscc.ru> in contributors list.
+	* [r1877] doc/postgis.xml: Added Nikita Shulga <malfet at jscc.ru> in
+	  contributors list.
 
-2005-08-29 11:56  strk
+2005-08-29 11:56  Sandro Santilli <strk at keybit.net>
 
-	* Typo fixed
+	* [r1875] lwgeom/liblwgeom.h, lwgeom/lwgparse.c,
+	  lwgeom/lwpostgis.sql.in: Typo fixed
 
-2005-08-29 11:48  strk
+2005-08-29 11:48  Sandro Santilli <strk at keybit.net>
 
-	* Fixed sprintf() calls to avoid overlapping memory,
+	* [r1872] CHANGES, loader/shp2pgsql.c: Fixed sprintf() calls to
+	  avoid overlapping memory,
 	  reworked not-null objects existance check to reduce startup
 	  costs.
 
-2005-08-16 21:38  strk
+2005-08-16 21:38  Sandro Santilli <strk at keybit.net>
 
-	* Added M(point) function
+	* [r1871] CHANGES, lwgeom/lwgeom_ogc.c, lwgeom/lwpostgis.sql.in:
+	  Added M(point) function
 
-2005-08-16 11:24  strk
+2005-08-16 11:24  Sandro Santilli <strk at keybit.net>
 
-	* Early memory release in GiST indexing
+	* [r1870] CHANGES, lwgeom/lwgeom_gist.c: Early memory release in
+	  GiST indexing
 
-2005-08-12 19:20  pramsey
+2005-08-12 19:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added +proj=longlat to all corrupt srs entries.
+	* [r1867] spatial_ref_sys.sql: Added +proj=longlat to all corrupt
+	  srs entries.
 
-2005-08-10 23:16  strk
+2005-08-10 23:16  Sandro Santilli <strk at keybit.net>
 
-	* Removed pfree of proj4 text in make_project failure cases
-	  (required for error message)
+	* [r1865] lwgeom/lwgeom_transform.c: Removed pfree of proj4 text in
+	  make_project failure cases (required for error message)
 
-2005-08-10 23:12  strk
+2005-08-10 23:12  Sandro Santilli <strk at keybit.net>
 
-	* Added segfault fix
+	* [r1863] CHANGES: Added segfault fix
 
-2005-08-10 23:06  strk
+2005-08-10 23:06  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a segfault in transform_geom exploited by proj4's
-	  make_project error.
+	* [r1860] lwgeom/lwgeom_transform.c: Fixed a segfault in
+	  transform_geom exploited by proj4's make_project error.
 
-2005-08-04 16:29  strk
+2005-08-04 16:29  Sandro Santilli <strk at keybit.net>
 
-	* Checked for PSQL run success
+	* [r1857] utils/postgis_restore.pl: Checked for PSQL run success
 
-2005-08-04 15:20  strk
+2005-08-04 15:20  Sandro Santilli <strk at keybit.net>
 
-	* Added availability note for version functions
+	* [r1855] doc/postgis.xml: Added availability note for version
+	  functions
 
-2005-08-04 15:03  strk
+2005-08-04 15:03  Sandro Santilli <strk at keybit.net>
 
-	* Updated
+	* [r1854] TODO: Updated
 
-2005-08-04 14:55  strk
+2005-08-04 14:55  Sandro Santilli <strk at keybit.net>
 
-	* 1.0.3 release notes and date
+	* [r1853] CHANGES, doc/postgis.xml: 1.0.3 release notes and date
 
-2005-08-04 14:54  strk
+2005-08-04 14:54  Sandro Santilli <strk at keybit.net>
 
-	* Added plpgsql_validator explicit function skip
+	* [r1852] utils/postgis_restore.pl: Added plpgsql_validator
+	  explicit function skip
 
-2005-07-29 22:24  strk
+2005-07-29 22:24  Sandro Santilli <strk at keybit.net>
 
-	* updated 1.0.3 section
+	* [r1846] CHANGES: updated 1.0.3 section
 
-2005-07-29 22:08  strk
+2005-07-29 22:08  Sandro Santilli <strk at keybit.net>
 
-	* Added more obsoleted functions, new obsoleted_ops considered,
+	* [r1844] utils/postgis_restore.pl: Added more obsoleted functions,
+	  new obsoleted_ops considered,
 	  check of pg_restore -l return code, better regexp to allow
 	  broader
 	  range of dump/restore versions.
 
-2005-07-28 12:23  mschaber
+2005-07-28 12:23  Markus Schaber <markus at schabi.de>
 
-	* fix EWKT constructors to accept SRID=4711; representation
+	* [r1839] CHANGES, jdbc2/src/org/postgis/ComposedGeom.java,
+	  jdbc2/src/org/postgis/Geometry.java,
+	  jdbc2/src/org/postgis/Point.java: fix EWKT constructors to accept
+	  SRID=4711; representation
 
-2005-07-27 02:47  strk
+2005-07-27 02:47  Sandro Santilli <strk at keybit.net>
 
-	* Support for multibyte field names in loader
+	* [r1838] CHANGES, loader/shp2pgsql.c: Support for multibyte field
+	  names in loader
 
-2005-07-27 02:35  strk
+2005-07-27 02:35  Sandro Santilli <strk at keybit.net>
 
-	* Minor cleanups in loader
+	* [r1836] CHANGES, loader/shp2pgsql.c: Minor cleanups in loader
 
-2005-07-27 02:07  strk
+2005-07-27 02:07  Sandro Santilli <strk at keybit.net>
 
-	* Fixed handling of POINT types as WKT (-w) in loader
+	* [r1834] CHANGES, loader/shp2pgsql.c: Fixed handling of POINT
+	  types as WKT (-w) in loader
 
-2005-07-25 22:24  strk
+2005-07-25 22:24  Sandro Santilli <strk at keybit.net>
 
-	* bugfix in ptarray_compute_box2d_p
+	* [r1828] CHANGES, lwgeom/ptarray.c: bugfix in
+	  ptarray_compute_box2d_p
 
-2005-07-22 19:15  strk
+2005-07-22 19:15  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in {get,pop}{int,double} for 64bit archs
+	* [r1825] CHANGES, loader/pgsql2shp.c: Fixed bug in
+	  {get,pop}{int,double} for 64bit archs
 
-2005-07-19 11:26  strk
+2005-07-19 11:26  Sandro Santilli <strk at keybit.net>
 
-	* removed useless strchr call in LWGEOM_in
+	* [r1820] CHANGES, lwgeom/lwgeom_inout.c: removed useless strchr
+	  call in LWGEOM_in
 
-2005-07-13 14:28  strk
+2005-07-13 14:28  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1818] CHANGES: updated
 
-2005-07-13 14:26  strk
+2005-07-13 14:26  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug reported by klaus F�rster
+	* [r1815] utils/create_undef.pl: Fixed bug reported by klaus
+	  F�rster
 
-2005-07-12 16:19  strk
+2005-07-12 16:19  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in user query handling, reported by Andrew Seales
+	* [r1813] CHANGES, loader/pgsql2shp.c: Fixed bug in user query
+	  handling, reported by Andrew Seales
 
-2005-07-05 16:12  strk
+2005-07-05 16:12  Sandro Santilli <strk at keybit.net>
 
-	* Forced INSTALL to be install-sh
+	* [r1811] configure.in: Forced INSTALL to be install-sh
 
-2005-07-05 15:13  strk
+2005-07-05 15:13  Sandro Santilli <strk at keybit.net>
 
-	* Added more win32-specific variables
+	* [r1810] Makefile.config.in, configure.in: Added more
+	  win32-specific variables
 
-2005-07-04 17:04  strk
+2005-07-04 17:04  Sandro Santilli <strk at keybit.net>
 
-	* Cleaned up to use more facilities from Makefile.shlib
+	* [r1809] Makefile.config.in, configure.in, lwgeom/Makefile:
+	  Cleaned up to use more facilities from Makefile.shlib
 
-2005-07-04 09:47  strk
+2005-07-04 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Added conservative iconv detection code
+	* [r1808] ., .cvsignore, Makefile, config.h.in, configure.in,
+	  loader/shp2pgsql.c: Added conservative iconv detection code
 
-2005-07-04 09:14  strk
+2005-07-04 09:14  Sandro Santilli <strk at keybit.net>
 
-	* adjusted for 1.0.2 release
+	* [r1807] CHANGES: adjusted for 1.0.2 release
 
-2005-07-04 09:12  strk
+2005-07-04 09:12  Sandro Santilli <strk at keybit.net>
 
-	* Dropped broken attempt at 'detecting' iconv.
+	* [r1806] configure.in: Dropped broken attempt at 'detecting'
+	  iconv.
 
-2005-07-03 17:46  strk
+2005-07-03 17:46  Sandro Santilli <strk at keybit.net>
 
-	* Added 1.0.2 release notes
+	* [r1805] doc/postgis.xml: Added 1.0.2 release notes
 
-2005-07-01 21:10  strk
+2005-07-01 21:10  Sandro Santilli <strk at keybit.net>
 
-	* Included debian packaging scripts
+	* [r1804] extras/debian, extras/debian/README.Debian,
+	  extras/debian/changelog, extras/debian/compat,
+	  extras/debian/control, extras/debian/createdb.postgis,
+	  extras/debian/createdb.postgis.1, extras/debian/logtop.sh,
+	  extras/debian/mktemplate_gis.1, extras/debian/mktemplate_gis.in,
+	  extras/debian/mkupstreampatch.sh, extras/debian/patches,
+	  extras/debian/patches/patch.level,
+	  extras/debian/patches/upstream.diff,
+	  extras/debian/postgresql.vars.mk, extras/debian/rmtemplate_gis,
+	  extras/debian/rmtemplate_gis.1, extras/debian/rules,
+	  extras/debian/sofiles.in, extras/debian/sofiles.in/control,
+	  extras/debian/sofiles.in/copyright,
+	  extras/debian/sofiles.in/libpostgis#SOVER#.dirs,
+	  extras/debian/sofiles.in/libpostgis#SOVER#.docs,
+	  extras/debian/sofiles.in/libpostgis#SOVER#.examples,
+	  extras/debian/sofiles.in/libpostgis#SOVER#.install,
+	  extras/debian/sofiles.in/libpostgis#SOVER#.manpages,
+	  extras/debian/sofiles.in/libpostgis#SOVER#.postinst,
+	  extras/debian/sofiles.in/libpostgis#SOVER#.prerm,
+	  extras/debian/sofiles.in/libpostgis-doc.doc-base,
+	  extras/debian/sofiles.in/libpostgis-doc.docs,
+	  extras/debian/sofiles.in/libpostgis-java-debug.install,
+	  extras/debian/sofiles.in/libpostgis-java.dirs,
+	  extras/debian/sofiles.in/libpostgis-java.docs,
+	  extras/debian/sofiles.in/libpostgis-java.examples,
+	  extras/debian/sofiles.in/libpostgis-java.install,
+	  extras/debian/sofiles.mk, extras/debian/watch: Included debian
+	  packaging scripts
 
-2005-06-28 22:01  strk
+2005-06-28 22:01  Sandro Santilli <strk at keybit.net>
 
-	* Added index concurrency tester
+	* [r1794] regress/test_index_concurrency: Added index concurrency
+	  tester
 
-2005-06-28 22:00  strk
+2005-06-28 22:00  Sandro Santilli <strk at keybit.net>
 
-	* Fixed extimators to work with postgresql 8.1.x
+	* [r1791] lwgeom/lwgeom_estimate.c: Fixed extimators to work with
+	  postgresql 8.1.x
 
-2005-06-28 14:58  strk
+2005-06-28 14:58  Sandro Santilli <strk at keybit.net>
 
-	* Reverted rtree logic back to use leaf/internal consistency
-	  functions
+	* [r1787] lwgeom/lwgeom_gist.c: Reverted rtree logic back to use
+	  leaf/internal consistency functions
 
-2005-06-28 14:51  strk
+2005-06-28 14:51  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1786] CHANGES, lwgeom/Makefile: updated
 
-2005-06-28 14:42  strk
+2005-06-28 14:42  Sandro Santilli <strk at keybit.net>
 
-	* Maintained separate vars for CFLAGS and CXXFLAGS
+	* [r1783] lwgeom/Makefile: Maintained separate vars for CFLAGS and
+	  CXXFLAGS
 
-2005-06-28 14:34  strk
+2005-06-28 14:34  Sandro Santilli <strk at keybit.net>
 
-	* Bugfix in RTBelowStrategyNumber handling
+	* [r1781] lwgeom/lwgeom_gist.c: Bugfix in RTBelowStrategyNumber
+	  handling
 
-2005-06-28 14:00  strk
+2005-06-28 14:00  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1780] CHANGES: updated
 
-2005-06-28 13:53  strk
+2005-06-28 13:53  Sandro Santilli <strk at keybit.net>
 
-	* Inclusion of core rtree header for StratregyNumber typedef (8.1
-	  support)
+	* [r1778] lwgeom/lwgeom_gist.c: Inclusion of core rtree header for
+	  StratregyNumber typedef (8.1 support)
 
-2005-06-28 11:33  strk
+2005-06-28 11:33  Sandro Santilli <strk at keybit.net>
 
-	* Added switch for pgsql 8.1 build
+	* [r1777] Makefile.config.in: Added switch for pgsql 8.1 build
 
-2005-06-28 11:33  strk
+2005-06-28 11:33  Sandro Santilli <strk at keybit.net>
 
-	* Moved chunked GeomUnion defines on top of file
+	* [r1776] CHANGES, lwgeom/lwgeom_geos.c: Moved chunked GeomUnion
+	  defines on top of file
 
-2005-06-28 08:12  mschaber
+2005-06-28 08:12  Markus Schaber <markus at schabi.de>
 
-	* fix compile problems in ValueSetter for ancient jdk releases.
+	* [r1774] CHANGES, jdbc2/src/org/postgis/binary/ValueSetter.java:
+	  fix compile problems in ValueSetter for ancient jdk releases.
 
-2005-06-27 15:16  strk
+2005-06-27 15:16  Sandro Santilli <strk at keybit.net>
 
-	* Initial chunk-based unite_garray implementation
+	* [r1773] CHANGES, lwgeom/lwgeom_geos.c: Initial chunk-based
+	  unite_garray implementation
 
-2005-06-26 09:15  strk
+2005-06-26 09:15  Sandro Santilli <strk at keybit.net>
 
-	* Added collect,buffer implementation for unite_garray().
-	  Compile-time definable: GEOS version defaults to on, JTS to off
+	* [r1772] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_jts.c: Added
+	  collect,buffer implementation for unite_garray(). Compile-time
+	  definable: GEOS version defaults to on, JTS to off
 
-2005-06-25 10:24  strk
+2005-06-25 10:24  Sandro Santilli <strk at keybit.net>
 
-	* Added pgsql standard geometryc types cast
+	* [r1770] TODO: Added pgsql standard geometryc types cast
 
-2005-06-24 12:36  strk
+2005-06-24 12:36  Sandro Santilli <strk at keybit.net>
 
-	* Fixed rtree indexing (ported from pgsql rtree fix)
+	* [r1769] CHANGES, lwgeom/lwgeom_gist.c: Fixed rtree indexing
+	  (ported from pgsql rtree fix)
 
-2005-06-24 07:55  mschaber
+2005-06-24 07:55  Markus Schaber <markus at schabi.de>
 
-	* added casts between PostgreSQL and PostGIS geometries to TODO
-	  list
+	* [r1767] TODO: added casts between PostgreSQL and PostGIS
+	  geometries to TODO list
 
-2005-06-17 14:51  strk
+2005-06-17 14:51  Sandro Santilli <strk at keybit.net>
 
-	* Memory leak fix in pg_error
+	* [r1766] CHANGES, lwgeom/lwgeom_pg.c: Memory leak fix in pg_error
 
-2005-06-16 17:55  strk
+2005-06-16 17:55  Sandro Santilli <strk at keybit.net>
 
-	* Added -I switch for GiST index creation in loader
+	* [r1764] CHANGES, TODO, doc/man/shp2pgsql.1, loader/shp2pgsql.c:
+	  Added -I switch for GiST index creation in loader
 
-2005-06-15 16:04  strk
+2005-06-15 16:04  Sandro Santilli <strk at keybit.net>
 
-	* fault tolerant btree ops
+	* [r1762] CHANGES: fault tolerant btree ops
 
-2005-06-15 16:04  strk
+2005-06-15 16:04  Sandro Santilli <strk at keybit.net>
 
-	* fault tolerant btree ops
+	* [r1761] lwgeom/lwgeom_btree.c: fault tolerant btree ops
 
-2005-06-10 16:27  strk
+2005-06-10 16:27  Sandro Santilli <strk at keybit.net>
 
-	* Added (commented) aggregates handling
+	* [r1759] utils/postgis_proc_upgrade.pl: Added (commented)
+	  aggregates handling
 
-2005-06-10 16:03  strk
+2005-06-10 16:03  Sandro Santilli <strk at keybit.net>
 
-	* Renamed {GEOS,JTS}_polygonize_garray to polygonize_garray to
-	  reduce
+	* [r1758] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_jts.c,
+	  lwgeom/lwgeom_nojts.c, lwgeom/lwpostgis.sql.in: Renamed
+	  {GEOS,JTS}_polygonize_garray to polygonize_garray to reduce
 	  redundancies.
 
-2005-06-10 16:02  strk
+2005-06-10 16:02  Sandro Santilli <strk at keybit.net>
 
-	* Fixed handling of --with-geos
+	* [r1757] configure.in: Fixed handling of --with-geos
 
-2005-06-10 12:36  strk
+2005-06-10 12:36  Sandro Santilli <strk at keybit.net>
 
-	* Added availability info for postgis_full_version() and
-	  postgis_jts_version()
+	* [r1756] doc/postgis.xml: Added availability info for
+	  postgis_full_version() and postgis_jts_version()
 
-2005-06-10 12:00  strk
+2005-06-10 12:00  Sandro Santilli <strk at keybit.net>
 
-	* Added JTSnoop and JTSversion functions.
+	* [r1755] CHANGES, lwgeom/lwgeom_geos.c, lwgeom/lwgeom_jts.c,
+	  lwgeom/lwgeom_jts_wrapper.cpp, lwgeom/lwgeom_nojts.c,
+	  lwgeom/lwpostgis.sql.in: Added JTSnoop and JTSversion functions.
 
-2005-06-10 11:58  strk
+2005-06-10 11:58  Sandro Santilli <strk at keybit.net>
 
-	* More info in the Upgrade chapter (soft upgrade/hard upgrade)
+	* [r1754] doc/postgis.xml: More info in the Upgrade chapter (soft
+	  upgrade/hard upgrade)
 
-2005-06-10 09:54  strk
+2005-06-10 09:54  Sandro Santilli <strk at keybit.net>
 
-	* Added isvalid(empty) test
+	* [r1753] regress/regress_ogc.sql, regress/regress_ogc_expected:
+	  Added isvalid(empty) test
 
-2005-06-09 16:02  strk
+2005-06-09 16:02  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1752] TODO: updated
 
-2005-06-09 16:02  strk
+2005-06-09 16:02  Sandro Santilli <strk at keybit.net>
 
-	* Added SRID check in line_locate_point()
+	* [r1751] lwgeom/lwgeom_functions_analytic.c: Added SRID check in
+	  line_locate_point()
 
-2005-06-09 16:02  strk
+2005-06-09 16:02  Sandro Santilli <strk at keybit.net>
 
-	* removed spurious comments
+	* [r1750] lwgeom/lwpostgis.sql.in: removed spurious comments
 
-2005-06-09 16:01  strk
+2005-06-09 16:01  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in ptarray_locate_point
+	* [r1749] lwgeom/ptarray.c: Fixed bug in ptarray_locate_point
 
-2005-06-09 16:00  strk
+2005-06-09 16:00  Sandro Santilli <strk at keybit.net>
 
-	* Added test for line_locate_point
+	* [r1748] regress/lwgeom_regress.sql,
+	  regress/lwgeom_regress_expected: Added test for line_locate_point
 
-2005-06-09 15:12  strk
+2005-06-09 15:12  Sandro Santilli <strk at keybit.net>
 
-	* Added line_locate_point() function
+	* [r1747] CHANGES, TODO, doc/postgis.xml, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_functions_analytic.c, lwgeom/lwpostgis.sql.in,
+	  lwgeom/ptarray.c: Added line_locate_point() function
 
-2005-06-09 12:30  strk
+2005-06-09 12:30  Sandro Santilli <strk at keybit.net>
 
-	* Added a check for correct order of ``from'' and ``to'' args in
-	  line_substring()
+	* [r1746] lwgeom/lwgeom_functions_analytic.c: Added a check for
+	  correct order of ``from'' and ``to'' args in line_substring()
 
-2005-06-09 12:24  strk
+2005-06-09 12:24  Sandro Santilli <strk at keybit.net>
 
-	* NEW line_substring() function
+	* [r1745] CHANGES, TODO, doc/postgis.xml, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_functions_analytic.c, lwgeom/lwpostgis.sql.in,
+	  lwgeom/ptarray.c: NEW line_substring() function
 
-2005-06-07 07:51  strk
+2005-06-07 07:51  Sandro Santilli <strk at keybit.net>
 
-	* Added missing Makefile.shlib and removed explicit 'all' rule from
-	  lwgeom build
+	* [r1744] Makefile, lwgeom/Makefile.shlib: Added missing
+	  Makefile.shlib and removed explicit 'all' rule from lwgeom build
 
-2005-06-06 18:42  strk
+2005-06-06 18:42  Sandro Santilli <strk at keybit.net>
 
-	* iconv autodetection
+	* [r1743] Makefile.config.in, TODO, configure.in: iconv
+	  autodetection
 
-2005-06-06 17:28  strk
+2005-06-06 17:28  Sandro Santilli <strk at keybit.net>
 
-	* Moved 'all' rule before Makefile.shlib inclusion, to have bare
-	  'make' calls work again
+	* [r1742] lwgeom/Makefile: Moved 'all' rule before Makefile.shlib
+	  inclusion, to have bare 'make' calls work again
 
-2005-06-06 17:21  strk
+2005-06-06 17:21  Sandro Santilli <strk at keybit.net>
 
-	* Added WARNING about changes implications in terms of
-	  SCRIPTS_VERSION
+	* [r1741] lwgeom/lwpostgis.sql.in: Added WARNING about changes
+	  implications in terms of SCRIPTS_VERSION
 	  upgrade. Removed extra tokens after #endif directives to make
 	  newer
 	  preprocessor (3.4.3) happy.
 
-2005-06-06 16:49  strk
+2005-06-06 16:49  Sandro Santilli <strk at keybit.net>
 
-	* Initial implementation of postgis procedures upgrade script
+	* [r1740] CHANGES, utils/Makefile, utils/README,
+	  utils/postgis_proc_upgrade.pl: Initial implementation of postgis
+	  procedures upgrade script
 
-2005-06-06 16:49  strk
+2005-06-06 16:49  Sandro Santilli <strk at keybit.net>
 
-	* Added availability info for new functions
+	* [r1739] lwgeom/lwpostgis.sql.in: Added availability info for new
+	  functions
 
-2005-06-06 16:48  strk
+2005-06-06 16:48  Sandro Santilli <strk at keybit.net>
 
-	* Incremented micro version number in SCRIPTS_VERSION (due to
-	  functions addition)
+	* [r1738] Version.config: Incremented micro version number in
+	  SCRIPTS_VERSION (due to functions addition)
 
-2005-06-06 16:47  strk
+2005-06-06 16:47  Sandro Santilli <strk at keybit.net>
 
-	* Moved create_undef.pl from root to utils/ dir
+	* [r1737] create_undef.pl, utils/create_undef.pl: Moved
+	  create_undef.pl from root to utils/ dir
 
-2005-06-06 16:47  strk
+2005-06-06 16:47  Sandro Santilli <strk at keybit.net>
 
-	* Removed automatic build of docs
+	* [r1736] Makefile: Removed automatic build of docs
 
-2005-06-06 07:58  mschaber
+2005-06-06 07:58  Markus Schaber <markus at schabi.de>
 
-	* added scale() and transscale() functions (like transform())
+	* [r1735] CHANGES, doc/postgis.xml, jdbc2, jdbc2/.cvsignore,
+	  lwgeom/BBOXCACHE_BEHAVIOURS, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in: added
+	  scale() and transscale() functions (like transform())
 
-2005-06-06 07:54  mschaber
+2005-06-06 07:54  Markus Schaber <markus at schabi.de>
 
-	* merge Alex' jdbc2 specific Makefile patches
+	* [r1734] jdbc2/Makefile: merge Alex' jdbc2 specific Makefile
+	  patches
 
-2005-06-04 10:06  strk
+2005-06-04 10:06  Sandro Santilli <strk at keybit.net>
 
-	* Applied Alex Bodnaru patch for pgsql source tree dependency drop.
+	* [r1733] Makefile, Makefile.config.in, configure.in, doc/Makefile,
+	  jdbc2/Makefile, loader/Makefile, lwgeom/Makefile: Applied Alex
+	  Bodnaru patch for pgsql source tree dependency drop.
 
-2005-05-25 12:01  strk
+2005-05-25 12:01  Sandro Santilli <strk at keybit.net>
 
-	* Stripped out CR chars
+	* [r1731] extras/wkb_reader/printwkb.c,
+	  extras/wkb_reader/readwkb.c, extras/wkb_reader/wkbtest.h:
+	  Stripped out CR chars
 
-2005-05-25 10:12  mschaber
+2005-05-25 10:12  Markus Schaber <markus at schabi.de>
 
-	* fix comment
+	* [r1730] jdbc2/jtssrc/examples/JtsTestParser.java: fix comment
 
-2005-05-25 10:08  mschaber
+2005-05-25 10:08  Markus Schaber <markus at schabi.de>
 
-	* JTS binary parser now passes basic regression suite
+	* [r1729] jdbc2/Makefile, jdbc2/jtssrc/examples/JtsTestParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryWriter.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGisWrapper.java,
+	  jdbc2/src/org/postgis/binary/ByteSetter.java,
+	  jdbc2/src/org/postgis/binary/ValueSetter.java: JTS binary parser
+	  now passes basic regression suite
 
-2005-05-24 17:19  strk
+2005-05-24 17:19  Sandro Santilli <strk at keybit.net>
 
-	* Added release date for postgis-1.0.1
+	* [r1728] CHANGES: Added release date for postgis-1.0.1
 
-2005-05-24 16:56  strk
+2005-05-24 16:56  Sandro Santilli <strk at keybit.net>
 
-	* Added iconv autodetection, removed already-added things
+	* [r1727] TODO: Added iconv autodetection, removed already-added
+	  things
 
-2005-05-24 14:02  strk
+2005-05-24 14:02  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis-1.0.1 release date
+	* [r1726] doc/postgis.xml: Added postgis-1.0.1 release date
 
-2005-05-23 16:18  mschaber
+2005-05-23 16:18  Markus Schaber <markus at schabi.de>
 
-	* Cleaned up Point.equals(Point) mess
+	* [r1722] jdbc2/src/org/postgis/Point.java: Cleaned up
+	  Point.equals(Point) mess
 
-2005-05-23 14:15  strk
+2005-05-23 14:15  Sandro Santilli <strk at keybit.net>
 
-	* Compiled 1.0.1 release notes
+	* [r1721] doc/postgis.xml: Compiled 1.0.1 release notes
 
-2005-05-18 17:01  strk
+2005-05-18 17:01  Sandro Santilli <strk at keybit.net>
 
-	* Applied 'strictness' patch by James Marca
+	* [r1719] CHANGES, utils/postgis_restore.pl: Applied 'strictness'
+	  patch by James Marca
 
-2005-05-18 15:49  strk
+2005-05-18 15:49  Sandro Santilli <strk at keybit.net>
 
-	* Fixed SetSRID() entry
+	* [r1717] doc/postgis.xml: Fixed SetSRID() entry
 
-2005-05-18 15:39  strk
+2005-05-18 15:39  Sandro Santilli <strk at keybit.net>
 
-	* added Paris projections fixes
+	* [r1715] CHANGES: added Paris projections fixes
 
-2005-05-18 15:36  strk
+2005-05-18 15:36  Sandro Santilli <strk at keybit.net>
 
-	* Updated proj4text for some French projections, as for Nicolas
-	  Ribot report
+	* [r1713] spatial_ref_sys.sql: Updated proj4text for some French
+	  projections, as for Nicolas Ribot report
 
-2005-05-16 17:50  strk
+2005-05-16 17:50  Sandro Santilli <strk at keybit.net>
 
-	* Added note about pgsq2shp attributes names bugfix
+	* [r1709] CHANGES: Added note about pgsq2shp attributes names
+	  bugfix
 
-2005-05-16 17:22  strk
+2005-05-16 17:22  Sandro Santilli <strk at keybit.net>
 
-	* Fixed DBF field names handling as for clashes avoiding.
+	* [r1708] loader/pgsql2shp.c: Fixed DBF field names handling as for
+	  clashes avoiding.
 	  pgsql field renames are warned.
 
-2005-05-16 08:05  strk
+2005-05-16 08:05  Sandro Santilli <strk at keybit.net>
 
-	* Moved dumper and postgis_restore.pl changes in 1.0.1 section
-	  (back-ported)
+	* [r1707] CHANGES: Moved dumper and postgis_restore.pl changes in
+	  1.0.1 section (back-ported)
 
-2005-05-16 07:49  strk
+2005-05-16 07:49  Sandro Santilli <strk at keybit.net>
 
-	* Allowed custom args passing to createdb invocation
+	* [r1703] utils/postgis_restore.pl: Allowed custom args passing to
+	  createdb invocation
 
-2005-05-15 08:05  strk
+2005-05-15 08:05  Sandro Santilli <strk at keybit.net>
 
-	* updated docs as for -k switch
+	* [r1702] doc/man/pgsql2shp.1, doc/man/shp2pgsql.1: updated docs as
+	  for -k switch
 
-2005-05-13 14:16  strk
+2005-05-13 14:16  Sandro Santilli <strk at keybit.net>
 
-	* Added new -k switch and credits for it
+	* [r1701] CHANGES, CREDITS: Added new -k switch and credits for it
 
-2005-05-13 14:06  strk
+2005-05-13 14:06  Sandro Santilli <strk at keybit.net>
 
-	* Applied patch from Obe, Regina to keep identifiers case.
+	* [r1700] loader/pgsql2shp.c: Applied patch from Obe, Regina to
+	  keep identifiers case.
 
-2005-05-13 08:03  strk
+2005-05-13 08:03  Sandro Santilli <strk at keybit.net>
 
-	* Added support for macosx build
+	* [r1699] Makefile.config.in, configure.in, lwgeom/Makefile: Added
+	  support for macosx build
 
-2005-05-12 10:09  strk
+2005-05-12 10:09  Sandro Santilli <strk at keybit.net>
 
-	* changed PGBELIBS command to avoid backtics and newlines
+	* [r1698] configure.in: changed PGBELIBS command to avoid backtics
+	  and newlines
 
-2005-05-12 07:45  strk
+2005-05-12 07:45  Sandro Santilli <strk at keybit.net>
 
-	* Added another dir in search path for docbook.xml, changed shell
-	  invocation
+	* [r1697] configure.in: Added another dir in search path for
+	  docbook.xml, changed shell invocation
 	  line for mingw to avoid newline char being used.
 
-2005-05-11 08:55  strk
+2005-05-11 08:55  Sandro Santilli <strk at keybit.net>
 
-	* Renamed MINGW to mingw in HOST_OS findstrings
+	* [r1696] lwgeom/Makefile: Renamed MINGW to mingw in HOST_OS
+	  findstrings
 
-2005-05-10 12:52  strk
+2005-05-10 12:52  Sandro Santilli <strk at keybit.net>
 
-	* Forced OID usage in geometry_column table
+	* [r1694] lwgeom/lwpostgis.sql.in: Forced OID usage in
+	  geometry_column table
 
-2005-05-10 12:32  strk
+2005-05-10 12:32  Sandro Santilli <strk at keybit.net>
 
-	* fixed mingw handling syntax
+	* [r1693] configure.in: fixed mingw handling syntax
 
-2005-05-10 10:58  strk
+2005-05-10 10:58  Sandro Santilli <strk at keybit.net>
 
-	* Added Makefile.config
+	* [r1692] ., .cvsignore: Added Makefile.config
 
-2005-05-10 10:57  strk
+2005-05-10 10:57  Sandro Santilli <strk at keybit.net>
 
-	* Added scripts used by autoconf
+	* [r1691] config.guess, config.sub, install-sh: Added scripts used
+	  by autoconf
 
-2005-05-10 09:35  strk
+2005-05-10 09:35  Sandro Santilli <strk at keybit.net>
 
-	* Added initial custom support for MINGW
+	* [r1690] Makefile.config.in, configure.in, loader/Makefile,
+	  lwgeom/Makefile: Added initial custom support for MINGW
 
-2005-05-10 08:31  strk
+2005-05-10 08:31  Sandro Santilli <strk at keybit.net>
 
-	* GEOS autodetect activated
+	* [r1689] configure.in: GEOS autodetect activated
 
-2005-05-10 08:15  strk
+2005-05-10 08:15  Sandro Santilli <strk at keybit.net>
 
-	* fixed upgrade procedure section as suggested by Steven Bowden
+	* [r1687] doc/postgis.xml: fixed upgrade procedure section as
+	  suggested by Steven Bowden
 
-2005-05-09 22:33  strk
+2005-05-09 22:33  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1686] TODO: updated
 
-2005-05-04 07:00  strk
+2005-05-04 07:00  Sandro Santilli <strk at keybit.net>
 
-	* Version bumped to 1.1.0CVS
+	* [r1683] Version.config: Version bumped to 1.1.0CVS
 
-2005-05-04 06:58  strk
+2005-05-04 06:58  Sandro Santilli <strk at keybit.net>
 
-	* GEOS/JTS performed operations dox made more explicit about which
+	* [r1682] doc/postgis.xml: GEOS/JTS performed operations dox made
+	  more explicit about which
 	  argument is 'this' and which is 'otherGeometry'.
 
-2005-05-02 10:52  strk
+2005-05-02 10:52  Sandro Santilli <strk at keybit.net>
 
-	* Moved 1.0.1 changes into their own section - added jdbc2 -target
-	  change notice
+	* [r1680] CHANGES: Moved 1.0.1 changes into their own section -
+	  added jdbc2 -target change notice
 
-2005-04-28 11:51  mschaber
+2005-04-28 11:51  Markus Schaber <markus at schabi.de>
 
-	* added jdbc2 maintainerclean
+	* [r1678] Makefile, jdbc2/Makefile: added jdbc2 maintainerclean
 
-2005-04-28 11:01  strk
+2005-04-28 11:01  Sandro Santilli <strk at keybit.net>
 
-	* Fixed distclean rule to build required Makefile.config
+	* [r1677] Makefile: Fixed distclean rule to build required
+	  Makefile.config
 
-2005-04-28 08:35  mschaber
+2005-04-28 08:35  Markus Schaber <markus at schabi.de>
 
-	* fix sources.inc things
+	* [r1676] jdbc2/Makefile, jdbc2/sources.inc: fix sources.inc things
 
-2005-04-27 16:14  mschaber
+2005-04-27 16:14  Markus Schaber <markus at schabi.de>
 
-	* Reworked Makefile
+	* [r1675] jdbc2/Makefile, jdbc2/sources.inc: Reworked Makefile
 
-2005-04-26 18:45  strk
+2005-04-26 18:45  Sandro Santilli <strk at keybit.net>
 
-	* Added MakeValidShape() function
+	* [r1674] TODO: Added MakeValidShape() function
 
-2005-04-26 18:08  strk
+2005-04-26 18:08  Sandro Santilli <strk at keybit.net>
 
-	* Fixed USE_JTS variable to actually use autoconf-detected value
+	* [r1673] Makefile.config.in: Fixed USE_JTS variable to actually
+	  use autoconf-detected value
 
-2005-04-26 07:01  mschaber
+2005-04-26 07:01  Markus Schaber <markus at schabi.de>
 
-	* Improved versionprinter to print offline versions even if
-	  database is not available
+	* [r1672] jdbc2/src/examples/VersionPrinter.java: Improved
+	  versionprinter to print offline versions even if database is not
+	  available
 
-2005-04-22 01:07  strk
+2005-04-22 01:07  Sandro Santilli <strk at keybit.net>
 
-	* Added fix in join selectivity
+	* [r1671] CHANGES: Added fix in join selectivity
 
-2005-04-22 01:07  strk
+2005-04-22 01:07  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in join selectivity estimator returning invalid
-	  estimates (>1)
+	* [r1669] lwgeom/lwgeom_estimate.c: Fixed bug in join selectivity
+	  estimator returning invalid estimates (>1)
 
-2005-04-21 16:31  strk
+2005-04-21 16:31  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in 3d spheroid length computation, patch by zmocnik at
-	  hotmail dot com
+	* [r1666] CHANGES, lwgeom/lwgeom_spheroid.c: Fixed bug in 3d
+	  spheroid length computation, patch by zmocnik at hotmail dot com
 
-2005-04-21 09:21  strk
+2005-04-21 09:21  Sandro Santilli <strk at keybit.net>
 
-	* Added new LRS funx suggested by Paul
+	* [r1665] TODO: Added new LRS funx suggested by Paul
 
-2005-04-21 09:09  strk
+2005-04-21 09:09  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1664] CHANGES: updated
 
-2005-04-21 09:08  strk
+2005-04-21 09:08  Sandro Santilli <strk at keybit.net>
 
-	* Applied patch from Ron Mayer fixing a segfault in string escaper
-	  funx
+	* [r1663] loader/shp2pgsql.c: Applied patch from Ron Mayer fixing a
+	  segfault in string escaper funx
 
-2005-04-20 15:22  strk
+2005-04-20 15:22  Sandro Santilli <strk at keybit.net>
 
-	* Fixed link to SimpleFeature Specification
+	* [r1659] doc/postgis.xml: Fixed link to SimpleFeature
+	  Specification
 
-2005-04-20 15:17  strk
+2005-04-20 15:17  Sandro Santilli <strk at keybit.net>
 
-	* Fixed clean-lib rule (wasn't removing anything!)
+	* [r1658] lwgeom/Makefile: Fixed clean-lib rule (wasn't removing
+	  anything!)
 
-2005-04-20 15:09  mschaber
+2005-04-20 15:09  Markus Schaber <markus at schabi.de>
 
-	* Fixed pg_opclass update to be schema-aware.
+	* [r1657] lwgeom/lwpostgis.sql.in: Fixed pg_opclass update to be
+	  schema-aware.
 
-2005-04-20 10:21  strk
+2005-04-20 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bogus example of GeometryFromText(box3d, int) changing it
+	* [r1654] doc/postgis.xml: Fixed bogus example of
+	  GeometryFromText(box3d, int) changing it
 	  to SetSRID(box3d, int) in chapter 5.1.2
 
-2005-04-20 08:12  strk
+2005-04-20 08:12  Sandro Santilli <strk at keybit.net>
 
-	* Updated
+	* [r1653] TODO: Updated
 
-2005-04-20 08:10  strk
+2005-04-20 08:10  Sandro Santilli <strk at keybit.net>
 
-	* Added rules to automatically call configure or config.status,
+	* [r1652] Makefile: Added rules to automatically call configure or
+	  config.status,
 	  added docs rule to be invoked by topdir.
 
-2005-04-20 08:01  strk
+2005-04-20 08:01  Sandro Santilli <strk at keybit.net>
 
-	* Removed again, can't work anymore.
+	* [r1651] Makefile.config: Removed again, can't work anymore.
 
-2005-04-20 07:55  strk
+2005-04-20 07:55  Sandro Santilli <strk at keybit.net>
 
-	* Put old Makefile.config back to allow for automatic documentation
-	  production,
+	* [r1650] Makefile.config: Put old Makefile.config back to allow
+	  for automatic documentation production,
 	  must be removed again when process gets updated.
 
-2005-04-19 10:58  strk
+2005-04-19 10:58  Sandro Santilli <strk at keybit.net>
 
-	* added LPATH to summary output (if different from install dir)
+	* [r1648] configure.in: added LPATH to summary output (if different
+	  from install dir)
 
-2005-04-19 10:41  strk
+2005-04-19 10:41  Sandro Santilli <strk at keybit.net>
 
-	* Reworked autoconf path to use pgsql or custom layout based on
+	* [r1647] Makefile.config.in, configure.in, doc/Makefile,
+	  lwgeom/Makefile: Reworked autoconf path to use pgsql or custom
+	  layout based on
 	  presence of a --prefix switch.
 
-2005-04-19 09:32  strk
+2005-04-19 09:32  Sandro Santilli <strk at keybit.net>
 
-	* Added -c flag to INSTALL invokations (copy, not move)
+	* [r1646] Makefile.config.in: Added -c flag to INSTALL invokations
+	  (copy, not move)
 
-2005-04-19 09:20  strk
+2005-04-19 09:20  Sandro Santilli <strk at keybit.net>
 
-	* More info in configure output, added autogen.sh wrapper
+	* [r1645] autogen.sh, configure.in: More info in configure output,
+	  added autogen.sh wrapper
 
-2005-04-18 23:31  strk
+2005-04-18 23:31  Sandro Santilli <strk at keybit.net>
 
-	* Added 1.0.0 section
+	* [r1644] CREDITS: Added 1.0.0 section
 
-2005-04-18 14:46  strk
+2005-04-18 14:46  Sandro Santilli <strk at keybit.net>
 
-	* Improved autoconf script, dropped pgsql source dependency.
-	  EXPERIMENTAL.
+	* [r1641] ., .cvsignore, Makefile, Makefile.config,
+	  Makefile.config.in, configure.in, doc/Makefile, loader/Makefile,
+	  lwgeom/Makefile: Improved autoconf script, dropped pgsql source
+	  dependency. EXPERIMENTAL.
 
-2005-04-18 14:25  strk
+2005-04-18 14:25  Sandro Santilli <strk at keybit.net>
 
-	* Added TODO list for release 1.1
+	* [r1640] TODO: Added TODO list for release 1.1
 
-2005-04-18 14:15  strk
+2005-04-18 14:15  Sandro Santilli <strk at keybit.net>
 
-	* Fixed 1.0.0 release date to 2005/04/19
+	* [r1639] CHANGES, doc/postgis.xml: Fixed 1.0.0 release date to
+	  2005/04/19
 
-2005-04-18 14:12  strk
+2005-04-18 14:12  Sandro Santilli <strk at keybit.net>
 
-	* Slightly changed standard deviation computation to be more
+	* [r1636] CHANGES, doc/postgis.xml, lwgeom/lwgeom_estimate.c:
+	  Slightly changed standard deviation computation to be more
 	  corner-case-friendly.
 
-2005-04-18 14:04  strk
+2005-04-18 14:04  Sandro Santilli <strk at keybit.net>
 
-	* Added estmator code and testers bugfix for 1.0.0 release.
+	* [r1635] CHANGES, doc/postgis.xml: Added estmator code and testers
+	  bugfix for 1.0.0 release.
 
-2005-04-18 13:50  strk
+2005-04-18 13:50  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in table2 schema parsing.
+	* [r1633] utils/test_joinestimation.pl: Fixed bug in table2 schema
+	  parsing.
 
-2005-04-18 13:30  strk
+2005-04-18 13:30  Sandro Santilli <strk at keybit.net>
 
-	* Fixed to work against LWGEOM installations
+	* [r1631] utils/test_estimation.pl: Fixed to work against LWGEOM
+	  installations
 
-2005-04-18 10:57  strk
+2005-04-18 10:57  Sandro Santilli <strk at keybit.net>
 
-	* Applied patched by Ron Mayer fixing memory leakages and invalid
-	  results
+	* [r1629] lwgeom/lwgeom_estimate.c: Applied patched by Ron Mayer
+	  fixing memory leakages and invalid results
 	  in join selectivity estimator. Fixed some return to use default
 	  JOIN
 	  selectivity estimate instead of default RESTRICT selectivity
 	  estimate.
 
-2005-04-15 20:12  strk
-
-	* Fixed Makefile to read Makefile.config
-
-2005-04-15 15:10  strk
-
-	* Updated to reflect examples->extras rename
-
-2005-04-15 15:09  strk
-
-	* Renamed examples/ to extras/. Added WFS_locks.
-
-2005-04-15 14:04  mschaber
-
-	* jdbc2 works:
+2005-04-15 20:12  Sandro Santilli <strk at keybit.net>
+
+	* [r1627] doc/postgis.xml: Fixed Makefile to read Makefile.config
+
+2005-04-15 15:10  Sandro Santilli <strk at keybit.net>
+
+	* [r1624] README.postgis: Updated to reflect examples->extras
+	  rename
+
+2005-04-15 15:09  Sandro Santilli <strk at keybit.net>
+
+	* [r1623] examples, extras, extras/WFS_locks,
+	  extras/WFS_locks/Makefile, extras/WFS_locks/README,
+	  extras/WFS_locks/WFS_locks.c, extras/WFS_locks/WFS_locks.sql.in,
+	  extras/ogc_test_suite, extras/ogc_test_suite/.cvsignore,
+	  extras/ogc_test_suite/1_schema.sql,
+	  extras/ogc_test_suite/2_queries.sql,
+	  extras/ogc_test_suite/3_cleanup.sql,
+	  extras/ogc_test_suite/Makefile, extras/ogc_test_suite/README,
+	  extras/wkb_reader, extras/wkb_reader/.cvsignore,
+	  extras/wkb_reader/Makefile, extras/wkb_reader/README,
+	  extras/wkb_reader/printwkb.c, extras/wkb_reader/readwkb.c,
+	  extras/wkb_reader/wkbtest.h: Renamed examples/ to extras/. Added
+	  WFS_locks.
+
+2005-04-15 14:04  Markus Schaber <markus at schabi.de>
+
+	* [r1622] CHANGES, Version.config, jdbc2, jdbc2/.cvsignore,
+	  jdbc2/Makefile, jdbc2/README,
+	  jdbc2/jtssrc/examples/JtsTestParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryWriter.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGisWrapper.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsWrapper.java,
+	  jdbc2/src/examples/Test.java,
+	  jdbc2/src/examples/TestAutoregister.java,
+	  jdbc2/src/examples/TestBoxes.java,
+	  jdbc2/src/examples/TestParser.java,
+	  jdbc2/src/examples/TestServer.java,
+	  jdbc2/src/examples/VersionPrinter.java,
+	  jdbc2/src/org/postgis/ComposedGeom.java,
+	  jdbc2/src/org/postgis/DriverWrapper.java,
+	  jdbc2/src/org/postgis/DriverWrapperAutoprobe.java,
+	  jdbc2/src/org/postgis/DriverWrapperLW.java,
+	  jdbc2/src/org/postgis/Geometry.java,
+	  jdbc2/src/org/postgis/GeometryCollection.java,
+	  jdbc2/src/org/postgis/LineString.java,
+	  jdbc2/src/org/postgis/LinearRing.java,
+	  jdbc2/src/org/postgis/MultiLineString.java,
+	  jdbc2/src/org/postgis/MultiPoint.java,
+	  jdbc2/src/org/postgis/MultiPolygon.java,
+	  jdbc2/src/org/postgis/PGbox2d.java,
+	  jdbc2/src/org/postgis/PGbox3d.java,
+	  jdbc2/src/org/postgis/PGboxbase.java,
+	  jdbc2/src/org/postgis/PGgeometry.java,
+	  jdbc2/src/org/postgis/PGgeometryLW.java,
+	  jdbc2/src/org/postgis/Point.java,
+	  jdbc2/src/org/postgis/PointComposedGeom.java,
+	  jdbc2/src/org/postgis/Polygon.java,
+	  jdbc2/src/org/postgis/Version.java,
+	  jdbc2/src/org/postgis/binary/BinaryParser.java,
+	  jdbc2/src/org/postgis/binary/BinaryWriter.java,
+	  jdbc2/src/org/postgis/binary/ByteGetter.java,
+	  jdbc2/src/org/postgis/binary/ByteSetter.java,
+	  jdbc2/src/org/postgis/binary/ValueGetter.java,
+	  jdbc2/src/org/postgis/binary/ValueSetter.java,
+	  jdbc2/stubs/org/postgresql/Connection.java,
+	  jdbc2/stubs/org/postgresql/PGConnection.java, jdbc2/todo.txt,
+	  lwgeom, lwgeom/.cvsignore, lwgeom/TODO: jdbc2 works:
 	  + Makefile improvements
 	  + JTS support improvements
 	  + Improved regression test system
@@ -39722,602 +60136,699 @@
 	  + Support for (Hex)(E)wkb
 	  + Autoprobing DriverWrapper for HexWKB / EWKT switching
 
-2005-04-15 10:01  strk
+2005-04-15 10:01  Sandro Santilli <strk at keybit.net>
 
-	* Added configure outputs
+	* [r1621] ., .cvsignore: Added configure outputs
 
-2005-04-15 09:54  strk
+2005-04-15 09:54  Sandro Santilli <strk at keybit.net>
 
-	* Added more people to manual "CREDITS" chapter (copied from
-	  CREDITS file).
+	* [r1620] CREDITS, doc/postgis.xml: Added more people to manual
+	  "CREDITS" chapter (copied from CREDITS file).
 	  Added a not in CREDITS redirecting to the postgis manual.
 
-2005-04-15 09:31  strk
+2005-04-15 09:31  Sandro Santilli <strk at keybit.net>
 
-	* Version bumbed to 1.0.0
+	* [r1619] Version.config: Version bumbed to 1.0.0
 
-2005-04-14 13:35  strk
+2005-04-14 13:35  Sandro Santilli <strk at keybit.net>
 
-	* Added shp2pgsql bugfix and autoconf improvement in Release Notes.
+	* [r1618] CHANGES, doc/postgis.xml: Added shp2pgsql bugfix and
+	  autoconf improvement in Release Notes.
 
-2005-04-14 12:58  strk
+2005-04-14 12:58  Sandro Santilli <strk at keybit.net>
 
-	* Applied patch by Gino Lucrezi fixing bug in string escaping code.
+	* [r1617] loader/shp2pgsql.c: Applied patch by Gino Lucrezi fixing
+	  bug in string escaping code.
 
-2005-04-14 11:25  strk
+2005-04-14 11:25  Sandro Santilli <strk at keybit.net>
 
-	* --enable-autoconf put back
+	* [r1616] configure.in: --enable-autoconf put back
 
-2005-04-14 11:23  strk
+2005-04-14 11:23  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup, improvements, JTS support added
+	* [r1615] configure.in: Cleanup, improvements, JTS support added
 
-2005-04-14 09:40  strk
+2005-04-14 09:40  Sandro Santilli <strk at keybit.net>
 
-	* Added Alex Bodnaru in the "Other contributors" section, for
-	  debian packaging.
+	* [r1614] doc/postgis.xml: Added Alex Bodnaru in the "Other
+	  contributors" section, for debian packaging.
 
-2005-04-14 08:02  strk
+2005-04-14 08:02  Sandro Santilli <strk at keybit.net>
 
-	* Added a not about need of memory alignment constraints handling
-	  for deserializers
+	* [r1613] lwgeom/TODO: Added a not about need of memory alignment
+	  constraints handling for deserializers
 
-2005-04-13 15:57  strk
+2005-04-13 15:57  Sandro Santilli <strk at keybit.net>
 
-	* Removed the CREDITS section from Release Notes and move
-	  contributors
+	* [r1612] doc/postgis.xml: Removed the CREDITS section from Release
+	  Notes and move contributors
 	  in chapter 1.1 (Credits).
 
-2005-04-13 14:25  strk
+2005-04-13 14:25  Sandro Santilli <strk at keybit.net>
 
-	* Release notes made an appendix, updated credits section
+	* [r1611] doc/postgis.xml: Release notes made an appendix, updated
+	  credits section
 
-2005-04-13 14:24  strk
+2005-04-13 14:24  Sandro Santilli <strk at keybit.net>
 
-	* Added MINGW support as suggested by David Techer.
+	* [r1610] loader/Makefile: Added MINGW support as suggested by
+	  David Techer.
 
-2005-04-12 11:18  strk
+2005-04-12 11:18  Sandro Santilli <strk at keybit.net>
 
-	* Added release notes for 1.0.0 final
+	* [r1609] doc/postgis.xml: Added release notes for 1.0.0 final
 
-2005-04-12 11:17  strk
+2005-04-12 11:17  Sandro Santilli <strk at keybit.net>
 
-	* XSLBASE made back-redefinable
+	* [r1608] doc/Makefile: XSLBASE made back-redefinable
 
-2005-04-08 06:45  pramsey
+2005-04-08 06:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make xsl reference work for rackmount nightly build
+	* [r1607] doc/Makefile: Make xsl reference work for rackmount
+	  nightly build
 
-2005-04-07 21:02  mschaber
+2005-04-07 21:02  Markus Schaber <markus at schabi.de>
 
-	* typo fixes and linked function in 4.2.4
+	* [r1606] doc/Makefile, doc/postgis.xml: typo fixes and linked
+	  function in 4.2.4
 
-2005-04-07 19:03  strk
+2005-04-07 19:03  Sandro Santilli <strk at keybit.net>
 
-	* Added new strict OGC compliancy enforcement sector of manual
+	* [r1605] CHANGES: Added new strict OGC compliancy enforcement
+	  sector of manual
 
-2005-04-07 19:00  strk
+2005-04-07 19:00  Sandro Santilli <strk at keybit.net>
 
-	* Corrected and augmented the new chapter about ensuring OGC
-	  compliancy.
+	* [r1604] doc/postgis.xml: Corrected and augmented the new chapter
+	  about ensuring OGC compliancy.
 
-2005-04-07 09:32  mschaber
+2005-04-07 09:32  Markus Schaber <markus at schabi.de>
 
-	* Added information about geometry validity.
+	* [r1603] doc/postgis.xml: Added information about geometry
+	  validity.
 
-2005-04-06 16:49  strk
+2005-04-06 16:49  Sandro Santilli <strk at keybit.net>
 
-	* Added -p flag addition for shp2pgsql
+	* [r1602] CHANGES: Added -p flag addition for shp2pgsql
 
-2005-04-06 14:16  strk
+2005-04-06 14:16  Sandro Santilli <strk at keybit.net>
 
-	* Removed manual update of gid field.
+	* [r1601] loader/shp2pgsql.c: Removed manual update of gid field.
 
-2005-04-06 14:02  mschaber
+2005-04-06 14:02  Markus Schaber <markus at schabi.de>
 
-	* added -p option (prepare mode) that spits out the table schema
-	  without
+	* [r1600] doc/man/shp2pgsql.1, doc/postgis.xml,
+	  loader/README.shp2pgsql, loader/shp2pgsql.c: added -p option
+	  (prepare mode) that spits out the table schema without
 	  inserting any data.
 
-2005-04-06 10:46  strk
+2005-04-06 10:46  Sandro Santilli <strk at keybit.net>
 
-	* Bugfix in -w (hwgeom) handling of ZM shapefiles.
+	* [r1599] loader/shp2pgsql.c: Bugfix in -w (hwgeom) handling of ZM
+	  shapefiles.
 	  Big reorganizzation of code to easy maintainance.
 
-2005-04-06 08:53  strk
+2005-04-06 08:53  Sandro Santilli <strk at keybit.net>
 
-	* force_3dm() bugfix
+	* [r1598] CHANGES: force_3dm() bugfix
 
-2005-04-06 08:53  strk
+2005-04-06 08:53  Sandro Santilli <strk at keybit.net>
 
-	* Augmented memory allocated by force_3dm() - detected cases of
-	  memory shortage
+	* [r1597] lwgeom/lwgeom_functions_basic.c: Augmented memory
+	  allocated by force_3dm() - detected cases of memory shortage
 
-2005-04-05 13:43  mschaber
+2005-04-05 13:43  Markus Schaber <markus at schabi.de>
 
-	* Fix documentation of -D option in shp2pgsql manpage
+	* [r1596] doc/man/shp2pgsql.1: Fix documentation of -D option in
+	  shp2pgsql manpage
 
-2005-04-05 10:18  strk
+2005-04-05 10:18  Sandro Santilli <strk at keybit.net>
 
-	* Added transform() bugfix
+	* [r1595] CHANGES: Added transform() bugfix
 
-2005-04-05 10:18  strk
+2005-04-05 10:18  Sandro Santilli <strk at keybit.net>
 
-	* BUGFIX in transform() releaseing random memory address
+	* [r1594] lwgeom/lwgeom_transform.c: BUGFIX in transform()
+	  releaseing random memory address
 
-2005-04-05 08:00  strk
+2005-04-05 08:00  Sandro Santilli <strk at keybit.net>
 
-	* Documented loader support for 0.x versions
+	* [r1593] CHANGES, doc/man/shp2pgsql.1, doc/postgis.xml: Documented
+	  loader support for 0.x versions
 
-2005-04-04 20:51  strk
+2005-04-04 20:51  Sandro Santilli <strk at keybit.net>
 
-	* Added -w flag to output old (WKT/HWGEOM) sql.
+	* [r1592] loader/shp2pgsql.c: Added -w flag to output old
+	  (WKT/HWGEOM) sql.
 
-2005-04-04 09:48  strk
+2005-04-04 09:48  Sandro Santilli <strk at keybit.net>
 
-	* Added install of loader/dumper manual pages
+	* [r1591] lwgeom/Makefile: Added install of loader/dumper manual
+	  pages
 
-2005-04-01 09:39  strk
+2005-04-01 09:39  Sandro Santilli <strk at keybit.net>
 
-	* Added not about new manual pages
+	* [r1590] CHANGES: Added not about new manual pages
 
-2005-04-01 09:38  strk
+2005-04-01 09:38  Sandro Santilli <strk at keybit.net>
 
-	* Added manual pages provided by Roberto Boati
+	* [r1589] doc/Makefile, doc/man, doc/man/pgsql2shp.1,
+	  doc/man/shp2pgsql.1: Added manual pages provided by Roberto Boati
 	  <roberto.boati at daisyred.com>
 
-2005-03-30 17:25  strk
+2005-03-30 17:25  Sandro Santilli <strk at keybit.net>
 
-	* Updated to replace 'RC' into '-rc' when building package dir (and
-	  tar).
+	* [r1588] make_dist.sh: Updated to replace 'RC' into '-rc' when
+	  building package dir (and tar).
 	  Removed autom4te.cache directory after call to autoconf.
 
-2005-03-30 17:03  strk
+2005-03-30 17:03  Sandro Santilli <strk at keybit.net>
 
-	* Scripts version set to 0.3.0 (minor increment as a scripts
-	  override won't
+	* [r1586] CHANGES, Version.config, doc/postgis.xml: Scripts version
+	  set to 0.3.0 (minor increment as a scripts override won't
 	  suffice to get rid of dropped box2d funx).
 	  Set release date and other versions to RC6
 
-2005-03-30 15:24  mschaber
+2005-03-30 15:24  Markus Schaber <markus at schabi.de>
 
-	* Preliminary change email addres to private one because
-	  schabios at logi-track.com is currently not working.
+	* [r1585] jdbc2/Makefile, jdbc2/jtssrc/examples/JtsTestParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGisWrapper.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsWrapper.java,
+	  jdbc2/src/examples/Test.java,
+	  jdbc2/src/examples/TestAutoregister.java,
+	  jdbc2/src/examples/TestBoxes.java,
+	  jdbc2/src/examples/TestParser.java,
+	  jdbc2/src/examples/TestServer.java,
+	  jdbc2/src/examples/VersionPrinter.java,
+	  jdbc2/src/org/postgis/ComposedGeom.java,
+	  jdbc2/src/org/postgis/DriverWrapper.java,
+	  jdbc2/src/org/postgis/Geometry.java,
+	  jdbc2/src/org/postgis/GeometryCollection.java,
+	  jdbc2/src/org/postgis/LineString.java,
+	  jdbc2/src/org/postgis/LinearRing.java,
+	  jdbc2/src/org/postgis/MultiLineString.java,
+	  jdbc2/src/org/postgis/MultiPoint.java,
+	  jdbc2/src/org/postgis/MultiPolygon.java,
+	  jdbc2/src/org/postgis/PGbox2d.java,
+	  jdbc2/src/org/postgis/PGbox3d.java,
+	  jdbc2/src/org/postgis/PGboxbase.java,
+	  jdbc2/src/org/postgis/PGgeometry.java,
+	  jdbc2/src/org/postgis/Point.java,
+	  jdbc2/src/org/postgis/PointComposedGeom.java,
+	  jdbc2/src/org/postgis/Polygon.java,
+	  jdbc2/src/org/postgis/Version.java,
+	  jdbc2/src/org/postgis/binary/BinaryParser.java,
+	  jdbc2/src/org/postgis/binary/ByteGetter.java,
+	  jdbc2/src/org/postgis/binary/ValueGetter.java,
+	  jdbc2/stubs/org/postgresql/Connection.java,
+	  jdbc2/stubs/org/postgresql/PGConnection.java: Preliminary change
+	  email addres to private one because schabios at logi-track.com is
+	  currently not working.
 
-2005-03-30 11:47  strk
+2005-03-30 11:47  Sandro Santilli <strk at keybit.net>
 
-	* Added RC6 release notes.
+	* [r1584] CHANGES, doc/postgis.xml: Added RC6 release notes.
 
-2005-03-30 11:46  strk
+2005-03-30 11:46  Sandro Santilli <strk at keybit.net>
 
-	* Obsoleted functions set back in, to avoid problems upgrading.
+	* [r1583] lwgeom/lwgeom_box2dfloat4.c: Obsoleted functions set back
+	  in, to avoid problems upgrading.
 
-2005-03-30 11:40  strk
+2005-03-30 11:40  Sandro Santilli <strk at keybit.net>
 
-	* Removed obsoleted box2d functions
+	* [r1582] lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwpostgis.sql.in:
+	  Removed obsoleted box2d functions
 
-2005-03-29 16:34  strk
+2005-03-29 16:34  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_restore.pl bugfix
+	* [r1581] CHANGES: Added postgis_restore.pl bugfix
 
-2005-03-29 16:33  strk
+2005-03-29 16:33  Sandro Santilli <strk at keybit.net>
 
-	* Changed she-bang back the way it was (disabled) - didn't work
-	  like that! Added {x,y}{min,max}(box2d) to list of obsoleted funx.
+	* [r1580] utils/postgis_restore.pl: Changed she-bang back the way
+	  it was (disabled) - didn't work like that! Added
+	  {x,y}{min,max}(box2d) to list of obsoleted funx.
 
-2005-03-29 13:23  mschaber
+2005-03-29 13:23  Markus Schaber <markus at schabi.de>
 
-	* Fix build for win32 using mingw
+	* [r1579] jdbc2/Makefile: Fix build for win32 using mingw
 
-2005-03-28 11:37  strk
+2005-03-28 11:37  Sandro Santilli <strk at keybit.net>
 
-	* Dropped {x,y}{min,max}(box2d) functions
+	* [r1578] CHANGES, Version.config, lwgeom/lwpostgis.sql.in: Dropped
+	  {x,y}{min,max}(box2d) functions
 
-2005-03-28 09:48  strk
+2005-03-28 09:48  Sandro Santilli <strk at keybit.net>
 
-	* Added multi() changes
+	* [r1577] CHANGES: Added multi() changes
 
-2005-03-28 09:47  strk
+2005-03-28 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in multi() leaving SRID in inner geometries.
+	* [r1576] CHANGES, lwgeom/lwgeom_functions_basic.c: Fixed bug in
+	  multi() leaving SRID in inner geometries.
 	  Added early return for already multi() and BBOX'ed geoms.
 
-2005-03-28 09:45  strk
+2005-03-28 09:45  Sandro Santilli <strk at keybit.net>
 
-	* Added regress tests for multi()
+	* [r1575] regress/regress.sql, regress/regress_expected: Added
+	  regress tests for multi()
 
-2005-03-25 18:43  strk
+2005-03-25 18:43  Sandro Santilli <strk at keybit.net>
 
-	* Fixed PQunescapeBytearea argument (might give problems on 64bit
-	  archs)
+	* [r1574] loader/pgsql2shp.c: Fixed PQunescapeBytearea argument
+	  (might give problems on 64bit archs)
 
-2005-03-25 16:38  strk
+2005-03-25 16:38  Sandro Santilli <strk at keybit.net>
 
-	* MICRO_VERSION set to RC5
+	* [r1572] Version.config: MICRO_VERSION set to RC5
 
-2005-03-25 16:38  strk
+2005-03-25 16:38  Sandro Santilli <strk at keybit.net>
 
-	* Added release date and version
+	* [r1571] CHANGES: Added release date and version
 
-2005-03-25 16:37  strk
+2005-03-25 16:37  Sandro Santilli <strk at keybit.net>
 
-	* Added release dates
+	* [r1570] doc/postgis.xml: Added release dates
 
-2005-03-25 16:28  strk
+2005-03-25 16:28  Sandro Santilli <strk at keybit.net>
 
-	* Added a not in performance tips chapter about dimension
-	  constraints.
+	* [r1569] doc/postgis.xml: Added a not in performance tips chapter
+	  about dimension constraints.
 	  Removed part on update_geometry_stats as it should have no
 	  effect.
 
-2005-03-25 14:49  strk
+2005-03-25 14:49  Sandro Santilli <strk at keybit.net>
 
-	* generalized Other changes
+	* [r1568] doc/postgis.xml: generalized Other changes
 
-2005-03-25 14:48  strk
+2005-03-25 14:48  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bogus she-bang
+	* [r1567] utils/postgis_restore.pl: Fixed bogus she-bang
 
-2005-03-25 13:56  strk
+2005-03-25 13:56  Sandro Santilli <strk at keybit.net>
 
-	* Updated release notes section
+	* [r1566] doc/postgis.xml: Updated release notes section
 
-2005-03-25 09:34  strk
+2005-03-25 09:34  Sandro Santilli <strk at keybit.net>
 
-	* code cleanup
+	* [r1565] lwgeom/lwgeom_estimate.c: code cleanup
 
-2005-03-24 18:01  mschaber
+2005-03-24 18:01  Markus Schaber <markus at schabi.de>
 
-	* additional performance tips
+	* [r1564] CHANGES, doc/postgis.xml: additional performance tips
 
-2005-03-24 16:28  strk
+2005-03-24 16:28  Sandro Santilli <strk at keybit.net>
 
-	* Variable declaration set in place in lwgeom_centroid()
+	* [r1563] lwgeom/lwgeom_functions_basic.c: Variable declaration set
+	  in place in lwgeom_centroid()
 
-2005-03-24 16:27  strk
+2005-03-24 16:27  Sandro Santilli <strk at keybit.net>
 
-	* Added estimated_extent() bugfix notice
+	* [r1562] CHANGES: Added estimated_extent() bugfix notice
 
-2005-03-24 16:27  strk
+2005-03-24 16:27  Sandro Santilli <strk at keybit.net>
 
-	* Added comments in estimate_allocation() bugfix point.
+	* [r1561] lwgeom/lwgeom_estimate.c: Added comments in
+	  estimate_allocation() bugfix point.
 
-2005-03-24 15:07  strk
+2005-03-24 15:07  Sandro Santilli <strk at keybit.net>
 
-	* Fixed non-GEOS centroid() function to avoid obsoleted
-	  LWGEOM_EXPLODED funx
+	* [r1560] lwgeom/lwgeom_functions_basic.c: Fixed non-GEOS
+	  centroid() function to avoid obsoleted LWGEOM_EXPLODED funx
 
-2005-03-24 14:45  strk
+2005-03-24 14:45  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in estimated_extent() returning pointer to a memory
-	  allocated in SPI memory context
+	* [r1559] lwgeom/lwgeom_estimate.c: Fixed bug in estimated_extent()
+	  returning pointer to a memory allocated in SPI memory context
 
-2005-03-23 17:10  strk
+2005-03-23 17:10  Sandro Santilli <strk at keybit.net>
 
-	* Removed cr
+	* [r1558] lwgeom/lwgeom_box3d.c: Removed cr
 
-2005-03-23 16:29  strk
+2005-03-23 16:29  Sandro Santilli <strk at keybit.net>
 
-	* Added box3d computation tests
+	* [r1557] regress/regress.sql, regress/regress_expected: Added
+	  box3d computation tests
 
-2005-03-23 16:24  strk
+2005-03-23 16:24  Sandro Santilli <strk at keybit.net>
 
-	* added box3d computation fix
+	* [r1556] CHANGES: added box3d computation fix
 
-2005-03-23 16:23  strk
+2005-03-23 16:23  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in box3d computation.
+	* [r1555] lwgeom/liblwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_box3d.c: Fixed bug in box3d computation.
 	  Dropped obsoleted LWGEOM_EXPLODED structure and associated
 	  functions.
 
-2005-03-21 17:56  strk
+2005-03-21 17:56  Sandro Santilli <strk at keybit.net>
 
-	* grep -v arg quoted..
+	* [r1554] CHANGES: grep -v arg quoted..
 
-2005-03-21 17:52  strk
+2005-03-21 17:52  Sandro Santilli <strk at keybit.net>
 
-	* Quoted grep argument
+	* [r1553] lwgeom/Makefile: Quoted grep argument
 
-2005-03-21 13:43  mschaber
+2005-03-21 13:43  Markus Schaber <markus at schabi.de>
 
-	* handle versioned jars in cvsignore
+	* [r1552] jdbc2, jdbc2/.cvsignore: handle versioned jars in
+	  cvsignore
 
-2005-03-21 12:24  strk
+2005-03-21 12:24  Sandro Santilli <strk at keybit.net>
 
-	* Expanded estimated_extent() paragraph to document differences
-	  between pre
+	* [r1551] doc/postgis.xml: Expanded estimated_extent() paragraph to
+	  document differences between pre
 	  and post pgsql 800.
 
-2005-03-18 21:04  strk
+2005-03-18 21:04  Sandro Santilli <strk at keybit.net>
 
-	* Set release date
+	* [r1549] CHANGES: Set release date
 
-2005-03-18 17:47  strk
+2005-03-18 17:47  Sandro Santilli <strk at keybit.net>
 
-	* postgis_restore.pl improvements
+	* [r1548] CHANGES: postgis_restore.pl improvements
 
-2005-03-18 17:23  strk
+2005-03-18 17:23  Sandro Santilli <strk at keybit.net>
 
-	* Hash used for detecting obsoleted funx in dump
+	* [r1547] utils/postgis_restore.pl: Hash used for detecting
+	  obsoleted funx in dump
 
-2005-03-18 12:43  strk
+2005-03-18 12:43  Sandro Santilli <strk at keybit.net>
 
-	* Fixed missing use of _IMMUTABLE_STRICT define in new
-	  get_proj4_from_srid().
+	* [r1546] lwgeom/Makefile, lwgeom/lwpostgis.sql.in: Fixed missing
+	  use of _IMMUTABLE_STRICT define in new get_proj4_from_srid().
 	  Improvement in Makefile to allow reconstruction of missing
 	  ../lwpostgis.sql
 
-2005-03-18 12:37  strk
+2005-03-18 12:37  Sandro Santilli <strk at keybit.net>
 
-	* added box3d-computation bugfix note
+	* [r1545] CHANGES: added box3d-computation bugfix note
 
-2005-03-18 12:36  strk
+2005-03-18 12:36  Sandro Santilli <strk at keybit.net>
 
-	* Big API cleanup.
+	* [r1544] lwgeom/liblwgeom.c, lwgeom/liblwgeom.h,
+	  lwgeom/lwcollection.c, lwgeom/lwgeom.c, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_pg.c, lwgeom/lwgeom_transform.c, lwgeom/lwline.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c, lwgeom/ptarray.c: Big API
+	  cleanup.
 	  Bug fix in box3d computation for collections containing empty
 	  elements.
 
-2005-03-18 10:47  strk
+2005-03-18 10:47  Sandro Santilli <strk at keybit.net>
 
-	* Added extent(), extent3d() and collect() tests - should really
+	* [r1543] regress/lwgeom_regress.sql,
+	  regress/lwgeom_regress_expected: Added extent(), extent3d() and
+	  collect() tests - should really
 	  give this tests a new layout ...
 
-2005-03-17 18:14  strk
+2005-03-17 18:14  Sandro Santilli <strk at keybit.net>
 
-	* box2d outupt precision increment
+	* [r1542] CHANGES: box2d outupt precision increment
 
-2005-03-17 18:11  strk
+2005-03-17 18:11  Sandro Santilli <strk at keybit.net>
 
-	* BOX2D output reverted to .15g precision
+	* [r1541] lwgeom/lwgeom_box2dfloat4.c: BOX2D output reverted to
+	  .15g precision
 
-2005-03-17 09:39  strk
+2005-03-17 09:39  Sandro Santilli <strk at keybit.net>
 
-	* Early memory releases in lwgeom_translate_recursive
+	* [r1540] lwgeom/lwgeom_functions_basic.c: Early memory releases in
+	  lwgeom_translate_recursive
 
-2005-03-16 15:08  strk
+2005-03-16 15:08  Sandro Santilli <strk at keybit.net>
 
-	* Changed get_proj4_from_srid() implementation from SQL to PLPGSQL
-	  to
+	* [r1539] CHANGES, lwgeom/lwpostgis.sql.in: Changed
+	  get_proj4_from_srid() implementation from SQL to PLPGSQL to
 	  workaround a bug of pgsql8.0.{1,2}
 
-2005-03-16 11:41  strk
+2005-03-16 11:41  Sandro Santilli <strk at keybit.net>
 
-	* Early memory releases on transform_geometry_recursive() and
-	  LWGEOM_asText().
+	* [r1538] lwgeom/liblwgeom.c, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_transform.c: Early memory
+	  releases on transform_geometry_recursive() and LWGEOM_asText().
 	  Code cleanups.
 
-2005-03-15 12:24  strk
+2005-03-15 12:24  Sandro Santilli <strk at keybit.net>
 
-	* hole-in-ring detector made more readable
+	* [r1537] loader/shp2pgsql.c: hole-in-ring detector made more
+	  readable
 
-2005-03-15 09:25  strk
+2005-03-15 09:25  Sandro Santilli <strk at keybit.net>
 
-	* Added loader bug fix
+	* [r1536] CHANGES: Added loader bug fix
 
-2005-03-14 22:02  strk
+2005-03-14 22:02  Sandro Santilli <strk at keybit.net>
 
-	* Fixed holes handling.
+	* [r1535] loader/shp2pgsql.c: Fixed holes handling.
 
-2005-03-14 11:31  strk
+2005-03-14 11:31  Sandro Santilli <strk at keybit.net>
 
-	* Added cleanup of versioned jars
+	* [r1534] jdbc2/Makefile: Added cleanup of versioned jars
 
-2005-03-14 11:14  strk
+2005-03-14 11:14  Sandro Santilli <strk at keybit.net>
 
-	* installdirs/clean rules cleanup suggested by Alex Bodnaru
+	* [r1533] lwgeom/Makefile: installdirs/clean rules cleanup
+	  suggested by Alex Bodnaru
 
-2005-03-11 17:56  strk
+2005-03-11 17:56  Sandro Santilli <strk at keybit.net>
 
-	* Early memory release in transform_geom
+	* [r1532] lwgeom/lwgeom_transform.c: Early memory release in
+	  transform_geom
 
-2005-03-11 17:47  strk
+2005-03-11 17:47  Sandro Santilli <strk at keybit.net>
 
-	* Fixed destructive memory release in LWGEOM_translate()
+	* [r1531] lwgeom/lwgeom_functions_basic.c: Fixed destructive memory
+	  release in LWGEOM_translate()
 
-2005-03-11 17:47  strk
+2005-03-11 17:47  Sandro Santilli <strk at keybit.net>
 
-	* Added test for translate()
+	* [r1530] regress/regress.sql, regress/regress_expected: Added test
+	  for translate()
 
-2005-03-10 21:37  strk
+2005-03-10 21:37  Sandro Santilli <strk at keybit.net>
 
-	* added 64bit bug fix
+	* [r1529] CHANGES: added 64bit bug fix
 
-2005-03-10 19:26  strk
+2005-03-10 19:26  Sandro Santilli <strk at keybit.net>
 
-	* Hopefully fixed bug in int4 and double reader from byte stream
-	  (was not
+	* [r1528] lwgeom/lwgparse.c, lwgeom/wktparse.h: Hopefully fixed bug
+	  in int4 and double reader from byte stream (was not
 	  working on 64bit machines).
 
-2005-03-10 18:19  strk
+2005-03-10 18:19  Sandro Santilli <strk at keybit.net>
 
-	* Made void args explicit to make newer compilers happy
+	* [r1527] lwgeom/lwgparse.c, lwgeom/wktunparse.c: Made void args
+	  explicit to make newer compilers happy
 
-2005-03-10 18:18  strk
+2005-03-10 18:18  Sandro Santilli <strk at keybit.net>
 
-	* changed report_error typedef to allow for lwerror usage w/out
-	  problems
+	* [r1526] lwgeom/wktparse.h: changed report_error typedef to allow
+	  for lwerror usage w/out problems
 
-2005-03-08 18:36  mschaber
+2005-03-08 18:36  Markus Schaber <markus at schabi.de>
 
-	* Additional explanations in README.
+	* [r1525] jdbc2/README: Additional explanations in README.
 
-2005-03-08 18:32  mschaber
+2005-03-08 18:32  Markus Schaber <markus at schabi.de>
 
-	* Fix possible null pointer exception if PostGIS is compiled
-	  without geos / proj support.
+	* [r1524] jdbc2/src/examples/VersionPrinter.java: Fix possible null
+	  pointer exception if PostGIS is compiled without geos / proj
+	  support.
 
-2005-03-08 16:46  strk
+2005-03-08 16:46  Sandro Santilli <strk at keybit.net>
 
-	* More cleanups on 'clean'
+	* [r1523] Makefile, lwgeom/Makefile: More cleanups on 'clean'
 
-2005-03-08 16:41  strk
+2005-03-08 16:41  Sandro Santilli <strk at keybit.net>
 
-	* Simplified clean rule
+	* [r1522] lwgeom/Makefile: Simplified clean rule
 
-2005-03-08 16:39  strk
+2005-03-08 16:39  Sandro Santilli <strk at keybit.net>
 
-	* Added configure script removal in maintainer-clean rule
+	* [r1521] Makefile: Added configure script removal in
+	  maintainer-clean rule
 
-2005-03-08 16:00  strk
+2005-03-08 16:00  Sandro Santilli <strk at keybit.net>
 
-	* Deleted libjts directory... libjts production should happen from
-	  within JTS itself.
+	* [r1520] libjts: Deleted libjts directory... libjts production
+	  should happen from within JTS itself.
 
-2005-03-08 15:44  strk
+2005-03-08 15:44  Sandro Santilli <strk at keybit.net>
 
-	* Changed default JTS includes and lib paths
+	* [r1519] Makefile.config: Changed default JTS includes and lib
+	  paths
 
-2005-03-08 12:39  strk
+2005-03-08 12:39  Sandro Santilli <strk at keybit.net>
 
-	* Added libjts build scripts
+	* [r1518] Makefile.config, libjts, libjts/Makefile, libjts/README:
+	  Added libjts build scripts
 
-2005-03-08 12:21  strk
+2005-03-08 12:21  Sandro Santilli <strk at keybit.net>
 
-	* Added a distclean rule to get rid of autoconf-generated files.
+	* [r1517] Makefile: Added a distclean rule to get rid of
+	  autoconf-generated files.
 	  Had maintainer-clean rule invoke distclean rule.
 
-2005-03-08 12:13  strk
+2005-03-08 12:13  Sandro Santilli <strk at keybit.net>
 
-	* set USE_JTS back to 0 - got set to 1 from previous commit
+	* [r1516] Makefile.config: set USE_JTS back to 0 - got set to 1
+	  from previous commit
 
-2005-03-08 12:11  strk
+2005-03-08 12:11  Sandro Santilli <strk at keybit.net>
 
-	* Added utils rule to set the execute bit on utilities.
+	* [r1515] Makefile, utils/Makefile: Added utils rule to set the
+	  execute bit on utilities.
 
-2005-03-08 12:04  strk
+2005-03-08 12:04  Sandro Santilli <strk at keybit.net>
 
-	* synced makefiles, changed default path of libjts
+	* [r1514] Makefile.config, Makefile.config.in: synced makefiles,
+	  changed default path of libjts
 
-2005-03-08 11:24  strk
+2005-03-08 11:24  Sandro Santilli <strk at keybit.net>
 
-	* Commented out debugging lines
+	* [r1513] lwgeom/lwgeom_jts.c: Commented out debugging lines
 
-2005-03-08 11:24  strk
+2005-03-08 11:24  Sandro Santilli <strk at keybit.net>
 
-	* avoided initializzation of JvNewObjectArray with undefined
-	  pointer
+	* [r1512] lwgeom/lwgeom_jts_wrapper.cpp: avoided initializzation of
+	  JvNewObjectArray with undefined pointer
 
-2005-03-08 11:06  strk
+2005-03-08 11:06  Sandro Santilli <strk at keybit.net>
 
-	* modernized old-style parameter declarations
+	* [r1511] loader/pgsql2shp.c, loader/shp2pgsql.c: modernized
+	  old-style parameter declarations
 
-2005-03-08 09:42  strk
+2005-03-08 09:42  Sandro Santilli <strk at keybit.net>
 
-	* Added estimator changes
+	* [r1510] CHANGES: Added estimator changes
 
-2005-03-08 09:27  strk
+2005-03-08 09:27  Sandro Santilli <strk at keybit.net>
 
-	* RESTRICT selectivity estimator use self->varno instead of
-	  varRelid.
+	* [r1509] lwgeom/lwgeom_estimate.c: RESTRICT selectivity estimator
+	  use self->varno instead of varRelid.
 	  Seems to work for subqueries...
 
-2005-03-08 09:23  strk
+2005-03-08 09:23  Sandro Santilli <strk at keybit.net>
 
-	* Fixed debugging lines.
+	* [r1508] lwgeom/lwgeom_estimate.c: Fixed debugging lines.
 
-2005-03-08 08:38  strk
+2005-03-08 08:38  Sandro Santilli <strk at keybit.net>
 
-	* Discarded environmental variable USE_JTS to avoid unexpected
-	  enabling
+	* [r1507] Makefile.config: Discarded environmental variable USE_JTS
+	  to avoid unexpected enabling
 
-2005-03-07 21:24  strk
+2005-03-07 21:24  Sandro Santilli <strk at keybit.net>
 
-	* Added missing JTSnoop prototype
+	* [r1506] lwgeom/lwgeom_geos.c: Added missing JTSnoop prototype
 
-2005-03-07 21:19  strk
+2005-03-07 21:19  Sandro Santilli <strk at keybit.net>
 
-	* Put optimization flag back to -O2
+	* [r1505] lwgeom/Makefile: Put optimization flag back to -O2
 
-2005-03-07 21:11  strk
+2005-03-07 21:11  Sandro Santilli <strk at keybit.net>
 
-	* Removed stub functions (moved to lwgeom_nojts.c) and added stub
+	* [r1504] lwgeom/lwgeom_geos.c: Removed stub functions (moved to
+	  lwgeom_nojts.c) and added stub
 	  for JTSnoop.
 
-2005-03-07 21:07  strk
+2005-03-07 21:07  Sandro Santilli <strk at keybit.net>
 
-	* Added initial JTS wrapper.
+	* [r1503] lwgeom/lwgeom_jts.c, lwgeom/lwgeom_jts_wrapper.cpp: Added
+	  initial JTS wrapper.
 
-2005-03-07 21:06  strk
+2005-03-07 21:06  Sandro Santilli <strk at keybit.net>
 
-	* Added spatial_ref_sys.sql and README.postgis to scripts install
-	  targets.
+	* [r1502] lwgeom/Makefile: Added spatial_ref_sys.sql and
+	  README.postgis to scripts install targets.
 	  Moved .sql scripts from ...$(datadir) to ...$(datadir)/contrib.
 	  Modified GEOS/JTS stub handling to use separate file when
 	  disabled.
 
-2005-03-07 20:47  strk
+2005-03-07 20:47  Sandro Santilli <strk at keybit.net>
 
-	* Separate stub funx file for builds w/out GEOS or JTS
+	* [r1501] lwgeom/lwgeom_nojts.c: Separate stub funx file for builds
+	  w/out GEOS or JTS
 
-2005-03-07 20:46  strk
+2005-03-07 20:46  Sandro Santilli <strk at keybit.net>
 
-	* sync'd with Makefile.config
+	* [r1500] Makefile.config.in: sync'd with Makefile.config
 
-2005-03-07 20:44  strk
+2005-03-07 20:44  Sandro Santilli <strk at keybit.net>
 
-	* Added JTS support parameter
+	* [r1499] Makefile.config: Added JTS support parameter
 
-2005-03-07 18:36  strk
+2005-03-07 18:36  Sandro Santilli <strk at keybit.net>
 
-	* Sync with Makefile.config
+	* [r1498] Makefile.config.in: Sync with Makefile.config
 
-2005-03-07 16:08  strk
+2005-03-07 16:08  Sandro Santilli <strk at keybit.net>
 
-	* Incremented SCRIPTS_VERSION micro num
+	* [r1497] Version.config: Incremented SCRIPTS_VERSION micro num
 
-2005-03-07 13:58  strk
+2005-03-07 13:58  Sandro Santilli <strk at keybit.net>
 
-	* Added process id to output files. Removed 'clean' rule.
+	* [r1496] regress/Makefile, regress/run_index_regress,
+	  regress/run_lwgeom_regress, regress/run_ogc_regress,
+	  regress/run_regress: Added process id to output files. Removed
+	  'clean' rule.
 
-2005-03-07 13:20  strk
+2005-03-07 13:20  Sandro Santilli <strk at keybit.net>
 
-	* Removed unused lwexploded_dump() function
+	* [r1495] lwgeom/lwgeom_functions_basic.c: Removed unused
+	  lwexploded_dump() function
 
-2005-03-07 11:53  mschaber
+2005-03-07 11:53  Markus Schaber <markus at schabi.de>
 
-	* Fix version.in vs. version.config typo
+	* [r1494] jdbc2/Makefile: Fix version.in vs. version.config typo
 
-2005-03-04 19:34  strk
+2005-03-04 19:34  Sandro Santilli <strk at keybit.net>
 
-	* cleanups - version file source
+	* [r1493] doc/Makefile: cleanups - version file source
 
-2005-03-04 19:31  mleslie
+2005-03-04 19:31  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Cleaned up distance_sphere and updated documentation.
+	* [r1492] CHANGES, doc/postgis.xml, lwgeom/lwgeom_spheroid.c,
+	  lwgeom/lwpostgis.sql.in: Cleaned up distance_sphere and updated
+	  documentation.
 
-2005-03-04 19:25  strk
+2005-03-04 19:25  Sandro Santilli <strk at keybit.net>
 
-	* removed temp files used in docs creation step
+	* [r1491] make_dist.sh: removed temp files used in docs creation
+	  step
 
-2005-03-04 19:18  strk
+2005-03-04 19:18  Sandro Santilli <strk at keybit.net>
 
-	* Expanded "upgrading" chapter to explain postgis_restore.pl
-	  upgrade procedure.
+	* [r1490] doc/postgis.xml: Expanded "upgrading" chapter to explain
+	  postgis_restore.pl upgrade procedure.
 
-2005-03-04 19:18  strk
+2005-03-04 19:18  Sandro Santilli <strk at keybit.net>
 
-	* Made 'html' the default rule
+	* [r1489] doc/Makefile: Made 'html' the default rule
 
-2005-03-04 19:15  strk
+2005-03-04 19:15  Sandro Santilli <strk at keybit.net>
 
-	* Parametrized XSLBASE directory
+	* [r1488] doc/Makefile: Parametrized XSLBASE directory
 
-2005-03-04 16:29  strk
+2005-03-04 16:29  Sandro Santilli <strk at keybit.net>
 
-	* Changed to use Version.config
+	* [r1487] make_dist.sh: Changed to use Version.config
 
-2005-03-04 15:54  strk
+2005-03-04 15:54  Sandro Santilli <strk at keybit.net>
 
-	* Commented out unused variable
+	* [r1486] lwgeom/lwgeom_spheroid.c: Commented out unused variable
 
-2005-03-04 15:25  mschaber
+2005-03-04 15:25  Markus Schaber <markus at schabi.de>
 
-	* added version improvement to changes
+	* [r1485] CHANGES: added version improvement to changes
 
-2005-03-04 15:22  mschaber
+2005-03-04 15:22  Markus Schaber <markus at schabi.de>
 
-	* - Separates the version config variables into the toplevel
-	  Version.config
+	* [r1484] Version.config, jdbc2, jdbc2/.cvsignore, jdbc2/Makefile,
+	  jdbc2/src/org/postgis/Version.java, lwgeom/Makefile: - Separates
+	  the version config variables into the toplevel Version.config
 	  
 	  - Adds new version config variables for jdbc
 	  
@@ -40329,247 +60840,290 @@
 	  initialize its values, so it is always "in sync" with
 	  Version.config
 
-2005-03-04 14:55  strk
+2005-03-04 14:55  Sandro Santilli <strk at keybit.net>
 
-	* Added loader/dumper bug fixes
+	* [r1483] CHANGES: Added loader/dumper bug fixes
 
-2005-03-04 14:54  strk
+2005-03-04 14:54  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in multiline handling.
+	* [r1482] loader/pgsql2shp.c: Fixed bug in multiline handling.
 
-2005-03-04 14:48  strk
+2005-03-04 14:48  Sandro Santilli <strk at keybit.net>
 
-	* Applied patch from Jonne Savolainen fixing multilines handling
+	* [r1481] loader/shp2pgsql.c: Applied patch from Jonne Savolainen
+	  fixing multilines handling
 
-2005-03-04 14:25  strk
+2005-03-04 14:25  Sandro Santilli <strk at keybit.net>
 
-	* Added 'test' and 'maintainer-clean' rules.
+	* [r1480] Makefile: Added 'test' and 'maintainer-clean' rules.
 
-2005-03-04 14:25  strk
+2005-03-04 14:25  Sandro Santilli <strk at keybit.net>
 
-	* Added a maintainer-clean rule.
+	* [r1479] lwgeom/Makefile: Added a maintainer-clean rule.
 
-2005-03-04 14:13  strk
+2005-03-04 14:13  Sandro Santilli <strk at keybit.net>
 
-	* Parametrized test output dir and added Makefile
+	* [r1478] regress/Makefile, regress/run_index_regress,
+	  regress/run_lwgeom_regress, regress/run_ogc_regress,
+	  regress/run_regress: Parametrized test output dir and added
+	  Makefile
 
-2005-03-04 11:03  mschaber
+2005-03-04 11:03  Markus Schaber <markus at schabi.de>
 
-	* another make install fix :-(
+	* [r1477] jdbc2/Makefile: another make install fix :-(
 
-2005-03-04 09:03  strk
+2005-03-04 09:03  Sandro Santilli <strk at keybit.net>
 
-	* PG_LWGEOM_construct() moved from lwgeom_api.c to lwgeom_pg.c.
+	* [r1476] lwgeom/lwgeom_api.c, lwgeom/lwgeom_pg.c:
+	  PG_LWGEOM_construct() moved from lwgeom_api.c to lwgeom_pg.c.
 
-2005-03-04 08:52  strk
+2005-03-04 08:52  Sandro Santilli <strk at keybit.net>
 
-	* Modified upgrade section to show postgis_restore.pl based
-	  procedure.
+	* [r1475] README.postgis: Modified upgrade section to show
+	  postgis_restore.pl based procedure.
 
-2005-03-04 07:51  mschaber
+2005-03-04 07:51  Markus Schaber <markus at schabi.de>
 
-	* another "make install" fix from alex
+	* [r1474] jdbc2/Makefile: another "make install" fix from alex
 
-2005-03-04 07:48  mschaber
+2005-03-04 07:48  Markus Schaber <markus at schabi.de>
 
-	* Adopted Version.java to the official PostGIS scheme.
+	* [r1473] jdbc2/src/org/postgis/Version.java: Adopted Version.java
+	  to the official PostGIS scheme.
 
-2005-03-04 07:36  mschaber
+2005-03-04 07:36  Markus Schaber <markus at schabi.de>
 
-	* Updated VERSION to RC4
+	* [r1472] jdbc2/src/org/postgis/Version.java: Updated VERSION to
+	  RC4
 
-2005-03-04 07:32  mschaber
+2005-03-04 07:32  Markus Schaber <markus at schabi.de>
 
-	* Removed unneccesarry TEMP variable
+	* [r1471] jdbc2/Makefile: Removed unneccesarry TEMP variable
 
-2005-03-03 22:12  mschaber
+2005-03-03 22:12  Markus Schaber <markus at schabi.de>
 
-	* removed obsolete build.xml
+	* [r1470] jdbc2/build.xml: removed obsolete build.xml
 
-2005-03-03 21:55  mschaber
+2005-03-03 21:55  Markus Schaber <markus at schabi.de>
 
-	* Make classpath element separator configurable
+	* [r1469] jdbc2/Makefile: Make classpath element separator
+	  configurable
 
-2005-03-03 20:55  mschaber
+2005-03-03 20:55  Markus Schaber <markus at schabi.de>
 
-	* jdbc2 naming explanation
+	* [r1468] jdbc2/README: jdbc2 naming explanation
 	  Contact info
 	  Copyright notice
 
-2005-03-03 19:08  mschaber
+2005-03-03 19:08  Markus Schaber <markus at schabi.de>
 
-	* add postgis_debug.jar to make install (thx to alex bodnaru)
+	* [r1467] jdbc2/Makefile: add postgis_debug.jar to make install
+	  (thx to alex bodnaru)
 
-2005-03-03 17:20  mleslie
+2005-03-03 17:20  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Rebuilt the distance_sphere function.
+	* [r1466] lwgeom/lwgeom_spheroid.c, lwgeom/lwpostgis.sql.in:
+	  Rebuilt the distance_sphere function.
 
-2005-03-03 16:06  mschaber
+2005-03-03 16:06  Markus Schaber <markus at schabi.de>
 
-	* Fix compile with jikes
+	* [r1465] jdbc2/Makefile: Fix compile with jikes
 
-2005-03-03 10:32  strk
+2005-03-03 10:32  Sandro Santilli <strk at keybit.net>
 
-	* parser additions note
+	* [r1464] CHANGES: parser additions note
 
-2005-03-03 10:31  strk
+2005-03-03 10:31  Sandro Santilli <strk at keybit.net>
 
-	* Removed generated parser files.
+	* [r1463] lwgeom, lwgeom/.cvsignore: Removed generated parser
+	  files.
 
-2005-03-03 10:29  strk
+2005-03-03 10:29  Sandro Santilli <strk at keybit.net>
 
-	* Added generated parsers to avoid FLEX/YACC requirement on
-	  release.
+	* [r1462] lwgeom/Makefile, lwgeom/lex.yy.c, lwgeom/wktparse.tab.c,
+	  lwgeom/wktparse.tab.h: Added generated parsers to avoid FLEX/YACC
+	  requirement on release.
 
-2005-03-02 17:29  strk
+2005-03-02 17:29  Sandro Santilli <strk at keybit.net>
 
-	* Commented out parser generation... requires PGSQL source :(
+	* [r1461] make_dist.sh: Commented out parser generation... requires
+	  PGSQL source :(
 
-2005-03-02 17:26  strk
+2005-03-02 17:26  Sandro Santilli <strk at keybit.net>
 
-	* Added parser generation.
+	* [r1460] make_dist.sh: Added parser generation.
 
-2005-03-02 17:04  strk
+2005-03-02 17:04  Sandro Santilli <strk at keybit.net>
 
-	* added FLEX & YACC fix
+	* [r1459] CHANGES: added FLEX & YACC fix
 
-2005-03-02 13:10  mschaber
+2005-03-02 13:10  Markus Schaber <markus at schabi.de>
 
-	* Additional Regression Test for prepared statement usage
+	* [r1458] jdbc2/src/examples/TestParser.java: Additional Regression
+	  Test for prepared statement usage
 
-2005-03-02 12:06  mschaber
+2005-03-02 12:06  Markus Schaber <markus at schabi.de>
 
-	* Code cleanups, Makefile improvements.
+	* [r1457] CHANGES, jdbc2/Makefile,
+	  jdbc2/src/org/postgis/ComposedGeom.java,
+	  jdbc2/src/org/postgis/Geometry.java,
+	  jdbc2/src/org/postgis/GeometryCollection.java,
+	  jdbc2/src/org/postgis/LineString.java,
+	  jdbc2/src/org/postgis/LinearRing.java,
+	  jdbc2/src/org/postgis/MultiLineString.java,
+	  jdbc2/src/org/postgis/MultiPoint.java,
+	  jdbc2/src/org/postgis/MultiPolygon.java,
+	  jdbc2/src/org/postgis/PGbox2d.java,
+	  jdbc2/src/org/postgis/PGbox3d.java,
+	  jdbc2/src/org/postgis/PGgeometry.java,
+	  jdbc2/src/org/postgis/Point.java,
+	  jdbc2/src/org/postgis/PointComposedGeom.java,
+	  jdbc2/src/org/postgis/Polygon.java: Code cleanups, Makefile
+	  improvements.
 
-2005-03-01 13:22  strk
+2005-03-01 13:22  Sandro Santilli <strk at keybit.net>
 
-	* Renamed lwgeom_to_wkt to lwgeom_to_ewkt, as it doesn't strip out
+	* [r1456] lwgeom/liblwgeom.h, lwgeom/lwgeom.c, lwgeom/test.c:
+	  Renamed lwgeom_to_wkt to lwgeom_to_ewkt, as it doesn't strip out
 	  non-ogc
 	  extensions.
 
-2005-03-01 13:20  strk
+2005-03-01 13:20  Sandro Santilli <strk at keybit.net>
 
-	* Corrected expected results.
+	* [r1455] regress/regress_ogc_expected: Corrected expected results.
 
-2005-03-01 11:41  strk
+2005-03-01 11:41  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOS/JTS provided functions test
+	* [r1454] regress/regress_ogc.sql, regress/regress_ogc_expected,
+	  regress/run_ogc_regress: Added GEOS/JTS provided functions test
 
-2005-03-01 08:43  strk
+2005-03-01 08:43  Sandro Santilli <strk at keybit.net>
 
-	* Fixed install-lwgeom-scripts rule as suggested by Rhys
-	  Ickeringill.
+	* [r1453] lwgeom/Makefile: Fixed install-lwgeom-scripts rule as
+	  suggested by Rhys Ickeringill.
 
-2005-03-01 08:40  strk
+2005-03-01 08:40  Sandro Santilli <strk at keybit.net>
 
-	* FLEX and YACC variables set after PGSQL/Makefile.global has been
-	  sourced
+	* [r1452] Makefile.config: FLEX and YACC variables set after
+	  PGSQL/Makefile.global has been sourced
 	  and only if not therein defined.
 
-2005-03-01 01:17  pramsey
+2005-03-01 01:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix link error.
+	* [r1451] doc/postgis.xml: Fix link error.
 
-2005-02-28 09:57  mschaber
+2005-02-28 09:57  Markus Schaber <markus at schabi.de>
 
-	* Add serialVersionUID for jdk1.5
+	* [r1450] jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java: Add
+	  serialVersionUID for jdk1.5
 	  correctly setType(), needed for jdbc 8.0+
 
-2005-02-28 08:14  mschaber
+2005-02-28 08:14  Markus Schaber <markus at schabi.de>
 
-	* Add serialVersionUID for jdk1.5
+	* [r1449] jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java: Add
+	  serialVersionUID for jdk1.5
 	  correctly setType(), needed for jdbc 8.0+
 
-2005-02-25 13:44  strk
+2005-02-25 13:44  Sandro Santilli <strk at keybit.net>
 
-	* Added geom_accum and SnapToGrid bug fixes
+	* [r1448] CHANGES: Added geom_accum and SnapToGrid bug fixes
 
-2005-02-25 13:42  strk
+2005-02-25 13:42  Sandro Santilli <strk at keybit.net>
 
-	* SnapToGrid: Fixed minor bug in consistency check.
+	* [r1447] lwgeom/lwgeom_functions_analytic.c: SnapToGrid: Fixed
+	  minor bug in consistency check.
 
-2005-02-25 13:28  strk
+2005-02-25 13:28  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bugus free() in LWGEOM_accum.
+	* [r1446] lwgeom/lwgeom_functions_basic.c: Fixed a bugus free() in
+	  LWGEOM_accum.
 
-2005-02-25 09:34  strk
+2005-02-25 09:34  Sandro Santilli <strk at keybit.net>
 
-	* added force_collection early return
+	* [r1445] CHANGES: added force_collection early return
 
-2005-02-25 09:31  strk
+2005-02-25 09:31  Sandro Santilli <strk at keybit.net>
 
-	* Added early return from force_collection when input is already a
-	  collection
+	* [r1444] lwgeom/lwgeom_functions_basic.c: Added early return from
+	  force_collection when input is already a collection
 	  AND has a bbox cache. Suggested by Ron Majer.
 
-2005-02-25 08:57  strk
+2005-02-25 08:57  Sandro Santilli <strk at keybit.net>
 
-	* Added comment on top of TYPE macros
+	* [r1443] lwgeom/liblwgeom.h: Added comment on top of TYPE macros
 
-2005-02-24 14:13  mschaber
+2005-02-24 14:13  Markus Schaber <markus at schabi.de>
 
-	* Fixed makefile to allow compilation via kaffe javac - this
+	* [r1442] jdbc2/Makefile: Fixed makefile to allow compilation via
+	  kaffe javac - this
 	  one does not automatically include non-mentioned source
 	  files that are present in the classpath.
 
-2005-02-24 11:43  mschaber
+2005-02-24 11:43  Markus Schaber <markus at schabi.de>
 
-	* moved trim() call, this avoids calling trim() twice on unchanged
-	  value if we have only (1 2,3 4) rep.
+	* [r1441] jdbc2/src/org/postgis/PGboxbase.java: moved trim() call,
+	  this avoids calling trim() twice on unchanged value if we have
+	  only (1 2,3 4) rep.
 
-2005-02-24 11:20  mschaber
+2005-02-24 11:20  Markus Schaber <markus at schabi.de>
 
-	* Additional regression tests for EWKT and EWKB on PostGIS 1.X
+	* [r1440] jdbc2/src/examples/TestParser.java: Additional regression
+	  tests for EWKT and EWKB on PostGIS 1.X
 
-2005-02-24 08:36  strk
+2005-02-24 08:36  Sandro Santilli <strk at keybit.net>
 
-	* Added missing prototype
+	* [r1438] lwgeom/lwgeom_inout.c: Added missing prototype
 
-2005-02-24 08:32  strk
+2005-02-24 08:32  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in StartPoint and EndPoint functions.
+	* [r1437] lwgeom/lwgeom_ogc.c: Fixed bug in StartPoint and EndPoint
+	  functions.
 
-2005-02-24 08:10  strk
+2005-02-24 08:10  Sandro Santilli <strk at keybit.net>
 
-	* lib version changed to 1.0.0RC3, scripts version to 0.2.0.
+	* [r1436] lwgeom/Makefile: lib version changed to 1.0.0RC3, scripts
+	  version to 0.2.0.
 
-2005-02-24 08:08  strk
+2005-02-24 08:08  Sandro Santilli <strk at keybit.net>
 
-	* Added spatial_ref_sys change and version/release
+	* [r1435] CHANGES: Added spatial_ref_sys change and version/release
 
-2005-02-23 19:17  pramsey
+2005-02-23 19:17  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Hand edit paris central meridian definitions.
+	* [r1434] spatial_ref_sys.sql: Hand edit paris central meridian
+	  definitions.
 	  Danger: other non-Greenwich projections might also have problems.
 
-2005-02-23 13:31  mschaber
+2005-02-23 13:31  Markus Schaber <markus at schabi.de>
 
-	* another fastjar fix
+	* [r1433] jdbc2/Makefile: another fastjar fix
 
-2005-02-23 13:19  mschaber
+2005-02-23 13:19  Markus Schaber <markus at schabi.de>
 
-	* Fixed jikes compiler warning, using super. for static methods is
-	  suboptimal.
+	* [r1432] jdbc2/src/org/postgis/DriverWrapper.java: Fixed jikes
+	  compiler warning, using super. for static methods is suboptimal.
 
-2005-02-23 09:59  strk
+2005-02-23 09:59  Sandro Santilli <strk at keybit.net>
 
-	* GeometryFromText() bug fix
+	* [r1431] CHANGES: GeometryFromText() bug fix
 
-2005-02-23 09:58  strk
+2005-02-23 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Fixed GeometryFromText() to add a bbox cache FOR_COMPLEX_GEOMS
+	* [r1430] lwgeom/BBOXCACHE_BEHAVIOURS, lwgeom/lwgeom_ogc.c: Fixed
+	  GeometryFromText() to add a bbox cache FOR_COMPLEX_GEOMS
 
-2005-02-23 09:44  strk
+2005-02-23 09:44  Sandro Santilli <strk at keybit.net>
 
-	* Added bool::text cast
+	* [r1429] CHANGES: Added bool::text cast
 
-2005-02-23 09:00  strk
+2005-02-23 09:00  Sandro Santilli <strk at keybit.net>
 
-	* Added bool::text cast.
+	* [r1428] lwgeom/lwgeom_inout.c, lwgeom/lwpostgis.sql.in: Added
+	  bool::text cast.
 
-2005-02-22 18:10  mschaber
+2005-02-22 18:10  Markus Schaber <markus at schabi.de>
 
-	* Updated jdbc2/Makefile:
+	* [r1427] CHANGES, jdbc2/Makefile: Updated jdbc2/Makefile:
 	  
 	  - more comments
 	  - all helper binaries are now configurable
@@ -40580,156 +61134,217 @@
 	  directory, this should help catching packaging errors
 	  - small other cleanups
 
-2005-02-22 13:05  mschaber
+2005-02-22 13:05  Markus Schaber <markus at schabi.de>
 
-	* Removed unused import
+	* [r1426] jdbc2/src/examples/TestParser.java: Removed unused import
 
-2005-02-22 13:04  mschaber
+2005-02-22 13:04  Markus Schaber <markus at schabi.de>
 
-	* Some more debian woody fixes.
+	* [r1425] jdbc2/Makefile, jdbc2/src/examples/TestAutoregister.java,
+	  jdbc2/src/examples/VersionPrinter.java: Some more debian woody
+	  fixes.
 
-2005-02-22 13:01  mschaber
+2005-02-22 13:01  Markus Schaber <markus at schabi.de>
 
-	* Remove redundant addDataType() call that slipped in during
+	* [r1424] jdbc2/src/examples/TestParser.java: Remove redundant
+	  addDataType() call that slipped in during
 	  WKT measured geometries work. It also broke pgjdbc7.2
 	  compatibility.
 
-2005-02-22 12:31  mschaber
+2005-02-22 12:31  Markus Schaber <markus at schabi.de>
 
-	* Patches from Alex Bodnaru (debian maintainer)
+	* [r1423] jdbc/Makefile: Patches from Alex Bodnaru (debian
+	  maintainer)
 
-2005-02-22 12:12  strk
+2005-02-22 12:12  Sandro Santilli <strk at keybit.net>
 
-	* Added not about early memory release
+	* [r1422] CHANGES: Added not about early memory release
 
-2005-02-22 10:10  strk
+2005-02-22 10:10  Sandro Santilli <strk at keybit.net>
 
-	* Early release of DETOASTED geoms.
+	* [r1421] lwgeom/lwgeom_geos.c: Early release of DETOASTED geoms.
 
-2005-02-22 09:59  strk
+2005-02-22 09:59  Sandro Santilli <strk at keybit.net>
 
-	* Fixed path to lwpostgis.sql script
+	* [r1420] examples/ogc_test_suite/README: Fixed path to
+	  lwpostgis.sql script
 
-2005-02-22 09:55  strk
+2005-02-22 09:55  Sandro Santilli <strk at keybit.net>
 
-	* Early release of DETOASTED or deserialized geometries, to reduce
-	  memory usage
+	* [r1419] lwgeom/lwgeom_ogc.c: Early release of DETOASTED or
+	  deserialized geometries, to reduce memory usage
 
-2005-02-22 09:39  strk
+2005-02-22 09:39  Sandro Santilli <strk at keybit.net>
 
-	* Forced cleanup of DETOASTED and deserialized geometries for
-	  better memory
+	* [r1418] lwgeom/lwgeom_functions_basic.c: Forced cleanup of
+	  DETOASTED and deserialized geometries for better memory
 	  usage.
 
-2005-02-21 18:28  mschaber
+2005-02-21 18:28  Markus Schaber <markus at schabi.de>
 
-	* *** empty log message ***
+	* [r1417] CHANGES, jdbc2/src/examples/TestParser.java,
+	  jdbc2/src/org/postgis/ComposedGeom.java,
+	  jdbc2/src/org/postgis/Geometry.java,
+	  jdbc2/src/org/postgis/GeometryCollection.java,
+	  jdbc2/src/org/postgis/LineString.java,
+	  jdbc2/src/org/postgis/LinearRing.java,
+	  jdbc2/src/org/postgis/MultiLineString.java,
+	  jdbc2/src/org/postgis/MultiPoint.java,
+	  jdbc2/src/org/postgis/MultiPolygon.java,
+	  jdbc2/src/org/postgis/PGgeometry.java,
+	  jdbc2/src/org/postgis/Point.java,
+	  jdbc2/src/org/postgis/PointComposedGeom.java,
+	  jdbc2/src/org/postgis/Polygon.java, jdbc2/todo.txt: *** empty log
+	  message ***
 
-2005-02-21 16:22  strk
+2005-02-21 16:22  Sandro Santilli <strk at keybit.net>
 
-	* Changed min() max() usage with LW_MIN() LW_MAX()
+	* [r1416] lwgeom/lwgeom_estimate.c: Changed min() max() usage with
+	  LW_MIN() LW_MAX()
 
-2005-02-21 16:16  strk
+2005-02-21 16:16  Sandro Santilli <strk at keybit.net>
 
-	* Changed byte to uchar to avoid clashes with win32 headers.
+	* [r1415] lwgeom/lwgeom.c, lwgeom/lwgparse.c, lwgeom/wktparse.h,
+	  lwgeom/wktunparse.c: Changed byte to uchar to avoid clashes with
+	  win32 headers.
 
-2005-02-21 15:49  mschaber
+2005-02-21 15:49  Markus Schaber <markus at schabi.de>
 
-	* removed ugly () display
+	* [r1414] jdbc2/src/examples/VersionPrinter.java: removed ugly ()
+	  display
 
-2005-02-21 14:59  mschaber
+2005-02-21 14:59  Markus Schaber <markus at schabi.de>
 
-	* Added version printing (for debugging purposes)
+	* [r1413] jdbc2/Makefile, jdbc2/src/examples/VersionPrinter.java,
+	  jdbc2/src/org/postgis/Version.java: Added version printing (for
+	  debugging purposes)
 
-2005-02-21 14:16  mschaber
+2005-02-21 14:16  Markus Schaber <markus at schabi.de>
 
-	* Skip tests that are known to fail when running against older
-	  PostGIS server versions
+	* [r1412] CHANGES, jdbc2/README,
+	  jdbc2/src/examples/TestAutoregister.java,
+	  jdbc2/src/examples/TestBoxes.java,
+	  jdbc2/src/examples/TestParser.java: Skip tests that are known to
+	  fail when running against older PostGIS server versions
 
-2005-02-18 16:01  mschaber
+2005-02-18 16:01  Markus Schaber <markus at schabi.de>
 
-	* Some micro optimizations and cleanups
+	* [r1411] jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  jdbc2/src/examples/TestAutoregister.java,
+	  jdbc2/src/org/postgis/PGboxbase.java,
+	  jdbc2/src/org/postgis/PGgeometry.java: Some micro optimizations
+	  and cleanups
 
-2005-02-18 14:49  mschaber
+2005-02-18 14:49  Markus Schaber <markus at schabi.de>
 
-	* Added Version.class to allow programatically identification of
-	  PostGIS jdbc version
+	* [r1410] jdbc2/Makefile, jdbc2/src/org/postgis/Version.java: Added
+	  Version.class to allow programatically identification of PostGIS
+	  jdbc version
 
-2005-02-18 14:40  mschaber
+2005-02-18 14:40  Markus Schaber <markus at schabi.de>
 
-	* Added beta support for JTS classes
+	* [r1409] CHANGES, jdbc2, jdbc2/.cvsignore, jdbc2/Makefile,
+	  jdbc2/README, jdbc2/jtssrc, jdbc2/jtssrc/examples,
+	  jdbc2/jtssrc/examples/JtsTestParser.java, jdbc2/jtssrc/org,
+	  jdbc2/jtssrc/org/postgis, jdbc2/jtssrc/org/postgis/jts,
+	  jdbc2/jtssrc/org/postgis/jts/JtsBinaryParser.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsGisWrapper.java,
+	  jdbc2/jtssrc/org/postgis/jts/JtsWrapper.java: Added beta support
+	  for JTS classes
 
-2005-02-18 08:43  strk
+2005-02-18 08:43  Sandro Santilli <strk at keybit.net>
 
-	* added memory leak fix
+	* [r1408] CHANGES: added memory leak fix
 
-2005-02-18 08:42  strk
+2005-02-18 08:42  Sandro Santilli <strk at keybit.net>
 
-	* Removed memory leak in geos2postgis polygon conversion.
+	* [r1407] lwgeom/lwgeom_geos.c: Removed memory leak in geos2postgis
+	  polygon conversion.
 
-2005-02-17 16:09  strk
+2005-02-17 16:09  Sandro Santilli <strk at keybit.net>
 
-	* Improved transform() errors verbosity.
+	* [r1406] lwgeom/lwpostgis.sql.in: Improved transform() errors
+	  verbosity.
 
-2005-02-17 15:54  strk
+2005-02-17 15:54  Sandro Santilli <strk at keybit.net>
 
-	* Syntaxes cleanups.
+	* [r1405] lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_wrapper.cpp, lwgeom/lwgeom_ogc.c: Syntaxes
+	  cleanups.
 
-2005-02-17 15:44  mschaber
+2005-02-17 15:44  Markus Schaber <markus at schabi.de>
 
-	* removed verbosity from my last entry
+	* [r1404] CHANGES: removed verbosity from my last entry
 
-2005-02-17 15:42  mschaber
+2005-02-17 15:42  Markus Schaber <markus at schabi.de>
 
-	* fixed postgis_debug.jar
+	* [r1403] jdbc2/Makefile: fixed postgis_debug.jar
 
-2005-02-17 15:39  strk
+2005-02-17 15:39  Sandro Santilli <strk at keybit.net>
 
-	* Fixed some introduced misorderings of func declaration/body.
+	* [r1402] lwgeom/measures.c: Fixed some introduced misorderings of
+	  func declaration/body.
 
-2005-02-17 14:48  mschaber
+2005-02-17 14:48  Markus Schaber <markus at schabi.de>
 
-	* Fixed dependency handling for jars
+	* [r1401] jdbc2/Makefile: Fixed dependency handling for jars
 
-2005-02-17 14:41  mschaber
+2005-02-17 14:41  Markus Schaber <markus at schabi.de>
 
-	* Updated makefile - better dependency management for jars,
+	* [r1400] CHANGES, jdbc2/Makefile: Updated makefile - better
+	  dependency management for jars,
 	  additional targets for debian, more comments.
 
-2005-02-17 09:19  strk
+2005-02-17 09:19  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in pointArray_construct() copying input points
-	  instead
+	* [r1399] lwgeom/lwgeom_api.c: Fixed a bug in
+	  pointArray_construct() copying input points instead
 	  of keeping a pointer to them. This has been introduced *after*
 	  RC2
 	  was released.
 
-2005-02-17 08:36  strk
+2005-02-17 08:36  Sandro Santilli <strk at keybit.net>
 
-	* Added wkb_recv and wkb_send obsoleted functions handling
+	* [r1398] utils/postgis_restore.pl: Added wkb_recv and wkb_send
+	  obsoleted functions handling
 
-2005-02-14 20:49  strk
+2005-02-14 20:49  Sandro Santilli <strk at keybit.net>
 
-	* Added force_collection() bug fix
+	* [r1397] CHANGES: Added force_collection() bug fix
 
-2005-02-14 20:45  strk
+2005-02-14 20:45  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in force_collection() leaving spurious bbox cache and
-	  SRID info
+	* [r1396] lwgeom/lwgeom_functions_basic.c: Fixed bug in
+	  force_collection() leaving spurious bbox cache and SRID info
 	  in inner geometry when applied to single geoms.
 
-2005-02-14 11:49  mschaber
+2005-02-14 11:49  Markus Schaber <markus at schabi.de>
 
-	* Now compiles against 7.2 with some magic trickery instead of
+	* [r1395] jdbc2, jdbc2/.cvsignore, jdbc2/Makefile, jdbc2/README,
+	  jdbc2/src/examples/TestServer.java,
+	  jdbc2/src/org/postgis/DriverWrapper.java, jdbc2/stubs,
+	  jdbc2/stubs/LICENSE, jdbc2/stubs/org, jdbc2/stubs/org/postgresql,
+	  jdbc2/stubs/org/postgresql/Connection.java,
+	  jdbc2/stubs/org/postgresql/PGConnection.java, jdbc2/woody.patch:
+	  Now compiles against 7.2 with some magic trickery instead of
 	  patching.
 
-2005-02-10 17:56  strk
+2005-02-10 17:56  Sandro Santilli <strk at keybit.net>
 
-	* added memory alignment handling
+	* [r1394] CHANGES: added memory alignment handling
 
-2005-02-10 17:41  strk
+2005-02-10 17:41  Sandro Santilli <strk at keybit.net>
 
-	* Dropped getbox2d_internal().
+	* [r1393] lwgeom/liblwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_wrapper.cpp, lwgeom/lwgeom_gml.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_spheroid.c,
+	  lwgeom/lwgeom_svg.c, lwgeom/lwgeom_transform.c, lwgeom/lwline.c,
+	  lwgeom/lwpoint.c, lwgeom/measures.c, lwgeom/ptarray.c: Dropped
+	  getbox2d_internal().
 	  Removed all castings of getPoint() output, which has been renamed
 	  to getPoint_internal() and commented about danger of using it.
 	  Changed SERIALIZED_FORM() macro to use VARDATA() macro.
@@ -40737,3406 +61352,4115 @@
 	  alignment
 	  constraints which might be the cause of recent crash bug reports.
 
-2005-02-10 17:38  strk
+2005-02-10 17:38  Sandro Santilli <strk at keybit.net>
 
-	* Added a couple of distance() tests.
+	* [r1392] regress/regress.sql, regress/regress_expected: Added a
+	  couple of distance() tests.
 
-2005-02-10 16:34  strk
+2005-02-10 16:34  Sandro Santilli <strk at keybit.net>
 
-	* Added -Wall to CFLAGS
+	* [r1391] loader/Makefile: Added -Wall to CFLAGS
 
-2005-02-10 10:52  strk
+2005-02-10 10:52  Sandro Santilli <strk at keybit.net>
 
-	* Changed 'char' to 'uchar' (unsigned char typedef) wherever octet
-	  is actually
+	* [r1390] lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_api.c, lwgeom/lwgeom_chip.c,
+	  lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwline.c,
+	  lwgeom/lwmline.c, lwgeom/lwmpoint.c, lwgeom/lwmpoly.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c, lwgeom/measures.c,
+	  lwgeom/ptarray.c: Changed 'char' to 'uchar' (unsigned char
+	  typedef) wherever octet is actually
 	  meant to be.
 
-2005-02-10 10:03  strk
+2005-02-10 10:03  Sandro Santilli <strk at keybit.net>
 
-	* Added X(), Y() and Z() tests.
+	* [r1389] regress/regress.sql, regress/regress_expected: Added X(),
+	  Y() and Z() tests.
 
-2005-02-09 18:11  mschaber
+2005-02-09 18:11  Markus Schaber <markus at schabi.de>
 
-	* adopt documentation wr/t conflicting driverconfig.properties to
+	* [r1388] jdbc2/README: adopt documentation wr/t conflicting
+	  driverconfig.properties to
 	  reflect what jdbc actually does.
 
-2005-02-09 11:55  strk
+2005-02-09 11:55  Sandro Santilli <strk at keybit.net>
 
-	* documentation update item
+	* [r1387] CHANGES: documentation update item
 
-2005-02-09 11:53  strk
+2005-02-09 11:53  Sandro Santilli <strk at keybit.net>
 
-	* Removed PGSQL7.1 references, clearly stated support starting from
-	  72.
+	* [r1386] doc/postgis.xml: Removed PGSQL7.1 references, clearly
+	  stated support starting from 72.
 	  Renamed all postgis.sql refs to lwpostgis.sql.
 
-2005-02-09 11:48  strk
+2005-02-09 11:48  Sandro Santilli <strk at keybit.net>
 
-	* fixed debugging output
+	* [r1385] lwgeom/lwgeom_inout.c: fixed debugging output
 
-2005-02-08 17:48  mschaber
+2005-02-08 17:48  Markus Schaber <markus at schabi.de>
 
-	* Added patch to enable compilation against pg72jdbc2.jar.
+	* [r1384] CHANGES, jdbc2/Makefile, jdbc2/README, jdbc2/woody.patch:
+	  Added patch to enable compilation against pg72jdbc2.jar.
 
-2005-02-08 14:54  mschaber
+2005-02-08 14:54  Markus Schaber <markus at schabi.de>
 
-	* Added jdbc2 jdk1.3 enabling note.
+	* [r1383] CHANGES: Added jdbc2 jdk1.3 enabling note.
 
-2005-02-08 14:53  mschaber
+2005-02-08 14:53  Markus Schaber <markus at schabi.de>
 
-	* Removed use of jdk1.4 only features to allow jdbc2 to be
+	* [r1382] jdbc2/src/examples/TestAutoregister.java,
+	  jdbc2/src/examples/TestBoxes.java,
+	  jdbc2/src/examples/TestParser.java,
+	  jdbc2/src/org/postgis/PGboxbase.java,
+	  jdbc2/src/org/postgis/PGgeometry.java,
+	  jdbc2/src/org/postgis/Point.java: Removed use of jdk1.4 only
+	  features to allow jdbc2 to be
 	  build with older jdk releases (tested with 1.3)
 
-2005-02-08 08:17  strk
+2005-02-08 08:17  Sandro Santilli <strk at keybit.net>
 
-	* Reduced scope of VACUUM ANALYZE call to the sole spatial_ref_sys
-	  table
+	* [r1381] spatial_ref_sys.sql: Reduced scope of VACUUM ANALYZE call
+	  to the sole spatial_ref_sys table
 	  as suggested by Kevin Neufeld
 
-2005-02-08 07:59  strk
+2005-02-08 07:59  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1380] CHANGES: updated
 
-2005-02-08 07:59  strk
+2005-02-08 07:59  Sandro Santilli <strk at keybit.net>
 
-	* Fixed probe_geometry_columns to work with PG72 (pg_constraint was
-	  pg_relcheck)
+	* [r1379] lwgeom/lwpostgis.sql.in: Fixed probe_geometry_columns to
+	  work with PG72 (pg_constraint was pg_relcheck)
 
-2005-02-08 07:37  strk
+2005-02-08 07:37  Sandro Santilli <strk at keybit.net>
 
-	* Fixed probe_geometry_columns so to work on spatial tables with
-	  multiple
+	* [r1378] lwgeom/lwpostgis.sql.in: Fixed probe_geometry_columns so
+	  to work on spatial tables with multiple
 	  geometry columns.
 
-2005-02-07 14:06  strk
+2005-02-07 14:06  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1377] CHANGES: updated
 
-2005-02-07 14:02  strk
+2005-02-07 14:02  Sandro Santilli <strk at keybit.net>
 
-	* Fixed broken 72 index bindings.
+	* [r1376] lwgeom/lwpostgis.sql.in: Fixed broken 72 index bindings.
 
-2005-02-07 13:42  mschaber
+2005-02-07 13:42  Markus Schaber <markus at schabi.de>
 
-	* Fixed pgjdbc 8.0 autoregistration.
+	* [r1375] CHANGES: Fixed pgjdbc 8.0 autoregistration.
 
-2005-02-07 13:21  strk
+2005-02-07 13:21  Sandro Santilli <strk at keybit.net>
 
-	* Replaced DEBUG* macros with PGIS_DEBUG*, to avoid clashes with
-	  postgresql DEBUG
+	* [r1374] lwgeom/liblwgeom.c, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_box3d.c,
+	  lwgeom/lwgeom_btree.c, lwgeom/lwgeom_debug.c,
+	  lwgeom/lwgeom_dump.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_geos.c, lwgeom/lwgeom_gist.c, lwgeom/lwgeom_gml.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c,
+	  lwgeom/lwline.c, lwgeom/lwmpoly.c, lwgeom/lwpoint.c,
+	  lwgeom/lwpoly.c, lwgeom/measures.c, lwgeom/ptarray.c,
+	  lwgeom/wktunparse.c: Replaced DEBUG* macros with PGIS_DEBUG*, to
+	  avoid clashes with postgresql DEBUG
 
-2005-02-07 12:56  strk
+2005-02-07 12:56  Sandro Santilli <strk at keybit.net>
 
-	* updated CHANGES
+	* [r1373] CHANGES: updated CHANGES
 
-2005-02-07 12:56  strk
+2005-02-07 12:56  Sandro Santilli <strk at keybit.net>
 
-	* More portable date command for BUILDDATE extraction
+	* [r1372] lwgeom/Makefile: More portable date command for BUILDDATE
+	  extraction
 
-2005-02-07 12:32  strk
+2005-02-07 12:32  Sandro Santilli <strk at keybit.net>
 
-	* updated with next release changes
+	* [r1371] CHANGES: updated with next release changes
 
-2005-02-07 12:31  strk
+2005-02-07 12:31  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1370] CHANGES: updated
 
-2005-02-07 11:49  mschaber
+2005-02-07 11:49  Markus Schaber <markus at schabi.de>
 
-	* Fix makefile (broken by driverconfig.properties rename
+	* [r1369] jdbc2/Makefile: Fix makefile (broken by
+	  driverconfig.properties rename
 
-2005-02-07 11:31  mschaber
+2005-02-07 11:31  Markus Schaber <markus at schabi.de>
 
-	* Removed issues that were done, hoping they will not re-emerge :-)
+	* [r1368] jdbc2/todo.txt: Removed issues that were done, hoping
+	  they will not re-emerge :-)
 
-2005-02-07 09:15  mschaber
+2005-02-07 09:15  Markus Schaber <markus at schabi.de>
 
-	* Fixed jdbc8.0 autoregistration, added regression test.
+	* [r1367] jdbc2/Makefile, jdbc2/README,
+	  jdbc2/src/examples/TestAutoregister.java,
+	  jdbc2/src/org/postgresql/driverconfig.properties,
+	  jdbc2/src/org/postgresql/postgresql.properties: Fixed jdbc8.0
+	  autoregistration, added regression test.
 
-2005-02-04 17:08  pramsey
+2005-02-04 17:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed literal && inside the text, replaced with &
+	* [r1366] doc/postgis.xml: Fixed literal && inside the text,
+	  replaced with &
 
-2005-02-04 14:20  strk
+2005-02-04 14:20  Sandro Santilli <strk at keybit.net>
 
-	* missing license
+	* [r1365] jdbc2/COPYING_LGPL: missing license
 
-2005-02-04 10:20  strk
+2005-02-04 10:20  Sandro Santilli <strk at keybit.net>
 
-	* Added Performance Tips chapter
+	* [r1364] doc/postgis.xml: Added Performance Tips chapter
 
-2005-02-04 09:05  strk
+2005-02-04 09:05  Sandro Santilli <strk at keybit.net>
 
-	* Applied Markus Shaber licensing patches.
+	* [r1363] jdbc2/Makefile, jdbc2/README, jdbc2/build.xml,
+	  jdbc2/src/examples/Test.java, jdbc2/src/examples/TestBoxes.java,
+	  jdbc2/src/examples/TestParser.java,
+	  jdbc2/src/examples/TestServer.java,
+	  jdbc2/src/org/postgis/ComposedGeom.java,
+	  jdbc2/src/org/postgis/DriverWrapper.java,
+	  jdbc2/src/org/postgis/Geometry.java,
+	  jdbc2/src/org/postgis/GeometryCollection.java,
+	  jdbc2/src/org/postgis/LineString.java,
+	  jdbc2/src/org/postgis/LinearRing.java,
+	  jdbc2/src/org/postgis/MultiLineString.java,
+	  jdbc2/src/org/postgis/MultiPoint.java,
+	  jdbc2/src/org/postgis/MultiPolygon.java,
+	  jdbc2/src/org/postgis/PGbox2d.java,
+	  jdbc2/src/org/postgis/PGbox3d.java,
+	  jdbc2/src/org/postgis/PGboxbase.java,
+	  jdbc2/src/org/postgis/PGgeometry.java,
+	  jdbc2/src/org/postgis/Point.java,
+	  jdbc2/src/org/postgis/PointComposedGeom.java,
+	  jdbc2/src/org/postgis/Polygon.java,
+	  jdbc2/src/org/postgis/binary/BinaryParser.java,
+	  jdbc2/src/org/postgis/binary/ByteGetter.java,
+	  jdbc2/src/org/postgis/binary/ValueGetter.java: Applied Markus
+	  Shaber licensing patches.
 
-2005-02-01 16:53  strk
+2005-02-01 16:53  Sandro Santilli <strk at keybit.net>
 
-	* Changed performance-sensible functions from STABLE to IMMUTABLE
+	* [r1362] lwgeom/lwpostgis.sql.in: Changed performance-sensible
+	  functions from STABLE to IMMUTABLE
 
-2005-02-01 15:26  strk
+2005-02-01 15:26  Sandro Santilli <strk at keybit.net>
 
-	* Another small patch from Markus
+	* [r1361] jdbc2/src/org/postgis/DriverWrapper.java: Another small
+	  patch from Markus
 
-2005-01-31 22:15  strk
+2005-01-31 22:15  Sandro Santilli <strk at keybit.net>
 
-	* Added maintainer notice, to reduce Jeff-strk mail bounces
+	* [r1360] loader/pgsql2shp.c, loader/shp2pgsql.c: Added maintainer
+	  notice, to reduce Jeff-strk mail bounces
 
-2005-01-31 17:17  strk
+2005-01-31 17:17  Sandro Santilli <strk at keybit.net>
 
-	* Applied Markus Shaber patches.
+	* [r1359] ., .cvsignore, jdbc2/src/org/postgis/DriverWrapper.java,
+	  jdbc2/src/org/postgis/PGgeometry.java: Applied Markus Shaber
+	  patches.
 
-2005-01-31 12:32  strk
+2005-01-31 12:32  Sandro Santilli <strk at keybit.net>
 
-	* Markus Shaber version.
+	* [r1358] jdbc2/README: Markus Shaber version.
 
-2005-01-31 09:24  strk
+2005-01-31 09:24  Sandro Santilli <strk at keybit.net>
 
-	* Used default float precision in BOX2D output
+	* [r1357] lwgeom/lwgeom_box2dfloat4.c: Used default float precision
+	  in BOX2D output
 
-2005-01-31 09:01  strk
+2005-01-31 09:01  Sandro Santilli <strk at keybit.net>
 
-	* More error handlings in transform(geom, int)
+	* [r1356] lwgeom/lwpostgis.sql.in: More error handlings in
+	  transform(geom, int)
 
-2005-01-30 09:48  strk
+2005-01-30 09:48  Sandro Santilli <strk at keybit.net>
 
-	* replaced by PGbox2d.java
+	* [r1355] jdbc2/src/org/postgis/PGbox.java: replaced by
+	  PGbox2d.java
 
-2005-01-30 09:46  strk
+2005-01-30 09:46  Sandro Santilli <strk at keybit.net>
 
-	* Added BOX2D and BOX3D support and tests, by Markus Shaber.
+	* [r1354] jdbc2/Makefile, jdbc2/src/examples/TestBoxes.java,
+	  jdbc2/src/org/postgis/DriverWrapper.java,
+	  jdbc2/src/org/postgis/PGbox2d.java,
+	  jdbc2/src/org/postgis/PGbox3d.java,
+	  jdbc2/src/org/postgis/PGboxbase.java: Added BOX2D and BOX3D
+	  support and tests, by Markus Shaber.
 
-2005-01-30 09:12  strk
+2005-01-30 09:12  Sandro Santilli <strk at keybit.net>
 
-	* Made unparsable proj strings error more verbose and removed a
-	  typo
+	* [r1353] lwgeom/lwgeom_transform.c: Made unparsable proj strings
+	  error more verbose and removed a typo
 	  in transform_geom().
 
-2005-01-28 16:10  strk
+2005-01-28 16:10  Sandro Santilli <strk at keybit.net>
 
-	* Changed --with-geos arg to express GEOS_DIR (is more intuitive).
+	* [r1352] configure.in: Changed --with-geos arg to express GEOS_DIR
+	  (is more intuitive).
 	  Made --help string advertise optionality of args for --with-geos
 	  and --with-proj. Made configure show used variables values
 	  on path checks.
 
-2005-01-28 15:40  strk
+2005-01-28 15:40  Sandro Santilli <strk at keybit.net>
 
-	* LAST_RELEASE_VERSION bumped to 1.0.0
+	* [r1351] doc/Makefile: LAST_RELEASE_VERSION bumped to 1.0.0
 
-2005-01-28 14:50  strk
+2005-01-28 14:50  Sandro Santilli <strk at keybit.net>
 
-	* Applied small patches from Markus Shaber
+	* [r1350] jdbc2/src/org/postgis/Point.java,
+	  jdbc2/src/org/postgis/binary/ValueGetter.java, jdbc2/todo.txt:
+	  Applied small patches from Markus Shaber
 
-2005-01-27 18:06  strk
+2005-01-27 18:06  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in transform() missing to update SRID in output
+	* [r1349] lwgeom/lwgeom_transform.c: Fixed a bug in transform()
+	  missing to update SRID in output
 
-2005-01-27 11:17  strk
+2005-01-27 11:17  Sandro Santilli <strk at keybit.net>
 
-	* Fixed FAQ to use the schema version of AddGeometryColumn
+	* [r1348] doc/postgis.xml: Fixed FAQ to use the schema version of
+	  AddGeometryColumn
 	  (generated confusion for 0.7.5 users)
 
-2005-01-26 08:35  strk
+2005-01-26 08:35  Sandro Santilli <strk at keybit.net>
 
-	* Version bumped to 1.0.0RC2
+	* [r1346] lwgeom/Makefile: Version bumped to 1.0.0RC2
 
-2005-01-26 08:34  strk
+2005-01-26 08:34  Sandro Santilli <strk at keybit.net>
 
-	* Added 1.0.0RC2 section
+	* [r1345] CHANGES: Added 1.0.0RC2 section
 
-2005-01-26 08:18  strk
+2005-01-26 08:18  Sandro Santilli <strk at keybit.net>
 
-	* Added an --enable-autoconf switch to make sure users will known
-	  about
+	* [r1344] configure.in: Added an --enable-autoconf switch to make
+	  sure users will known about
 	  the untested nature of the ./configure script.
 
-2005-01-25 13:52  strk
+2005-01-25 13:52  Sandro Santilli <strk at keybit.net>
 
-	* Removed ?= construct in FLEX/YACC rules
+	* [r1343] Makefile.config.in: Removed ?= construct in FLEX/YACC
+	  rules
 
-2005-01-25 11:29  strk
+2005-01-25 11:29  Sandro Santilli <strk at keybit.net>
 
-	* Made all *FromText() accept only WKT <text>, no more cheating.
+	* [r1342] lwgeom/lwgeom_ogc.c, lwgeom/lwpostgis.sql.in: Made all
+	  *FromText() accept only WKT <text>, no more cheating.
 
-2005-01-25 09:47  strk
+2005-01-25 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in transform() missing to update bbox cache
+	* [r1341] lwgeom/lwgeom_transform.c: Fixed a bug in transform()
+	  missing to update bbox cache
 
-2005-01-25 09:03  strk
+2005-01-25 09:03  Sandro Santilli <strk at keybit.net>
 
-	* Made all OGC TypeFromWKB() functions consistent in taking a bytea
+	* [r1340] lwgeom/lwpostgis.sql.in: Made all OGC TypeFromWKB()
+	  functions consistent in taking a bytea
 
-2005-01-25 08:48  strk
+2005-01-25 08:48  Sandro Santilli <strk at keybit.net>
 
-	* Added autoconf invokation
+	* [r1339] make_dist.sh: Added autoconf invokation
 
-2005-01-24 18:11  strk
+2005-01-24 18:11  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in definition of distance_spheroid.
+	* [r1338] lwgeom/lwgeom_spheroid.c: Fixed bug in definition of
+	  distance_spheroid.
 
-2005-01-24 15:22  strk
+2005-01-24 15:22  Sandro Santilli <strk at keybit.net>
 
-	* Added checks for flex and yacc paths.
+	* [r1337] Makefile.config.in, configure.in: Added checks for flex
+	  and yacc paths.
 
-2005-01-24 15:16  strk
+2005-01-24 15:16  Sandro Santilli <strk at keybit.net>
 
-	* Moved YACC default value set from inner to config Makefile.
+	* [r1336] Makefile.config, lwgeom/Makefile: Moved YACC default
+	  value set from inner to config Makefile.
 
-2005-01-24 15:14  strk
+2005-01-24 15:14  Sandro Santilli <strk at keybit.net>
 
-	* Added default value for FLEX
+	* [r1335] Makefile.config: Added default value for FLEX
 
-2005-01-24 11:23  strk
+2005-01-24 11:23  Sandro Santilli <strk at keybit.net>
 
-	* Removed spaces and '?' signs in Makefile.config.in.
+	* [r1334] Makefile.config.in, configure.in: Removed spaces and '?'
+	  signs in Makefile.config.in.
 	  Added support for geos-config call in configure.
 
-2005-01-24 11:00  strk
+2005-01-24 11:00  Sandro Santilli <strk at keybit.net>
 
-	* Initial autoconf script.
+	* [r1333] Makefile.config.in, configure.in: Initial autoconf
+	  script.
 
-2005-01-19 18:18  strk
+2005-01-19 18:18  Sandro Santilli <strk at keybit.net>
 
-	* removed unused files
+	* [r1332] jdbc2/regression.txt, jdbc2/src/examples/BitTest.java:
+	  removed unused files
 
-2005-01-19 18:15  strk
+2005-01-19 18:15  Sandro Santilli <strk at keybit.net>
 
-	* Added failcount output.
+	* [r1331] jdbc2/src/examples/TestParser.java: Added failcount
+	  output.
 
-2005-01-19 18:05  strk
+2005-01-19 18:05  Sandro Santilli <strk at keybit.net>
 
-	* Fixed ptest rule.
+	* [r1330] jdbc2/Makefile: Fixed ptest rule.
 
-2005-01-19 17:37  strk
+2005-01-19 17:37  Sandro Santilli <strk at keybit.net>
 
-	* Quoted -classpath args, added ptest args in make ptest rule
+	* [r1329] jdbc2/Makefile: Quoted -classpath args, added ptest args
+	  in make ptest rule
 
-2005-01-19 17:00  strk
+2005-01-19 17:00  Sandro Santilli <strk at keybit.net>
 
-	* Added bin/ removal to clean rule
+	* [r1328] jdbc2/Makefile: Added bin/ removal to clean rule
 
-2005-01-19 16:58  strk
+2005-01-19 16:58  Sandro Santilli <strk at keybit.net>
 
-	* Changed postgis_debug.jar rule to be portable
+	* [r1327] jdbc2/Makefile: Changed postgis_debug.jar rule to be
+	  portable
 
-2005-01-19 16:55  strk
+2005-01-19 16:55  Sandro Santilli <strk at keybit.net>
 
-	* Added command line params to jtest rule
+	* [r1326] jdbc2/Makefile: Added command line params to jtest rule
 
-2005-01-19 16:51  strk
+2005-01-19 16:51  Sandro Santilli <strk at keybit.net>
 
-	* Applied Markus patch to accept command line params
+	* [r1325] jdbc2/src/examples/TestParser.java,
+	  jdbc2/src/examples/TestServer.java: Applied Markus patch to
+	  accept command line params
 
-2005-01-19 16:49  strk
+2005-01-19 16:49  Sandro Santilli <strk at keybit.net>
 
-	* Applied Markus patch
+	* [r1324] jdbc2/build.xml: Applied Markus patch
 
-2005-01-19 16:46  strk
+2005-01-19 16:46  Sandro Santilli <strk at keybit.net>
 
-	* Changed postgis.jar creation rule to respect
-	  postgresql.properties path
+	* [r1323] jdbc2/Makefile: Changed postgis.jar creation rule to
+	  respect postgresql.properties path
 
-2005-01-19 12:30  strk
+2005-01-19 12:30  Sandro Santilli <strk at keybit.net>
 
-	* Added jar files
+	* [r1322] jdbc2, jdbc2/.cvsignore: Added jar files
 
-2005-01-19 12:27  strk
+2005-01-19 12:27  Sandro Santilli <strk at keybit.net>
 
-	* Added postgresql.properties and .cvsignore, Modified CP variable
+	* [r1321] jdbc2, jdbc2/.cvsignore, jdbc2/Makefile,
+	  jdbc2/src/org/postgresql,
+	  jdbc2/src/org/postgresql/postgresql.properties: Added
+	  postgresql.properties and .cvsignore, Modified CP variable
 	  assignment to
 	  be quoted.
 
-2005-01-19 09:53  strk
+2005-01-19 09:53  Sandro Santilli <strk at keybit.net>
 
-	* Made output more readable
+	* [r1320] jdbc2/src/examples/Test.java: Made output more readable
 
-2005-01-19 09:47  strk
+2005-01-19 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Changed 'compile' rule to keep track of last compile time and
-	  avoid recompilation
+	* [r1319] jdbc2/Makefile: Changed 'compile' rule to keep track of
+	  last compile time and avoid recompilation
 
-2005-01-19 09:38  strk
+2005-01-19 09:38  Sandro Santilli <strk at keybit.net>
 
-	* fixed jar call for postgis.jar production
+	* [r1318] jdbc2/Makefile: fixed jar call for postgis.jar production
 
-2005-01-19 09:21  strk
+2005-01-19 09:21  Sandro Santilli <strk at keybit.net>
 
-	* user env CLASSPATH honoured
+	* [r1317] jdbc2/Makefile: user env CLASSPATH honoured
 
-2005-01-19 08:54  strk
+2005-01-19 08:54  Sandro Santilli <strk at keybit.net>
 
-	* Imported new jdbc driver source by Markus Schaber
+	* [r1316] jdbc2, jdbc2/Makefile, jdbc2/README, jdbc2/build.xml,
+	  jdbc2/regression.txt, jdbc2/src, jdbc2/src/examples,
+	  jdbc2/src/examples/BitTest.java, jdbc2/src/examples/Test.java,
+	  jdbc2/src/examples/TestParser.java,
+	  jdbc2/src/examples/TestServer.java, jdbc2/src/org,
+	  jdbc2/src/org/postgis, jdbc2/src/org/postgis/ComposedGeom.java,
+	  jdbc2/src/org/postgis/DriverWrapper.java,
+	  jdbc2/src/org/postgis/Geometry.java,
+	  jdbc2/src/org/postgis/GeometryCollection.java,
+	  jdbc2/src/org/postgis/LineString.java,
+	  jdbc2/src/org/postgis/LinearRing.java,
+	  jdbc2/src/org/postgis/MultiLineString.java,
+	  jdbc2/src/org/postgis/MultiPoint.java,
+	  jdbc2/src/org/postgis/MultiPolygon.java,
+	  jdbc2/src/org/postgis/PGbox.java,
+	  jdbc2/src/org/postgis/PGbox3d.java,
+	  jdbc2/src/org/postgis/PGgeometry.java,
+	  jdbc2/src/org/postgis/Point.java,
+	  jdbc2/src/org/postgis/PointComposedGeom.java,
+	  jdbc2/src/org/postgis/Polygon.java, jdbc2/src/org/postgis/binary,
+	  jdbc2/src/org/postgis/binary/BinaryParser.java,
+	  jdbc2/src/org/postgis/binary/ByteGetter.java,
+	  jdbc2/src/org/postgis/binary/ValueGetter.java, jdbc2/todo.txt:
+	  Imported new jdbc driver source by Markus Schaber
 
-2005-01-18 15:39  strk
+2005-01-18 15:39  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in pointarray box3d computation.
+	* [r1315] lwgeom/lwgeom_api.c: Fixed a bug in pointarray box3d
+	  computation.
 
-2005-01-18 13:31  strk
+2005-01-18 13:31  Sandro Santilli <strk at keybit.net>
 
-	* Reintroduced support for '<anygeom> EMPTY' form, for OGC
-	  compliance.
+	* [r1314] lwgeom/wktparse.y: Reintroduced support for '<anygeom>
+	  EMPTY' form, for OGC compliance.
 
-2005-01-18 12:44  strk
+2005-01-18 12:44  Sandro Santilli <strk at keybit.net>
 
-	* Handled GEOS Geometry construction errors as FALSE results in
-	  isvalid(geom).
+	* [r1313] lwgeom/lwgeom_geos.c: Handled GEOS Geometry construction
+	  errors as FALSE results in isvalid(geom).
 
-2005-01-18 10:09  strk
+2005-01-18 10:09  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1312] lwgeom/TODO: updated
 
-2005-01-18 09:32  strk
+2005-01-18 09:32  Sandro Santilli <strk at keybit.net>
 
-	* Changed unparse_WKB interface to take an output size pointer and
-	  an HEXFORM
+	* [r1311] lwgeom/lwgeom.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/wktparse.h, lwgeom/wktunparse.c: Changed unparse_WKB
+	  interface to take an output size pointer and an HEXFORM
 	  specifier. Reworked code in wktunparse to use function pointers.
 
-2005-01-18 09:30  strk
+2005-01-18 09:30  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug introduced supporting GEOMETRYCOLLECTION(EMPTY).
+	* [r1310] lwgeom/wktparse.y: Fixed bug introduced supporting
+	  GEOMETRYCOLLECTION(EMPTY).
 	  Dropped support for all EMPTY goems execept GEOMETRYCOLLECTION.
 
-2005-01-17 12:15  strk
+2005-01-17 12:15  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOMETRYCOLLECTION(EMPTY) support
+	* [r1309] lwgeom/wktparse.y: Added GEOMETRYCOLLECTION(EMPTY)
+	  support
 
-2005-01-17 11:44  strk
+2005-01-17 11:44  Sandro Santilli <strk at keybit.net>
 
-	* Used quote_ident() for spatial columns constraints nams,
-	  suggested by Bernhard Herzog
+	* [r1308] lwgeom/lwpostgis.sql.in: Used quote_ident() for spatial
+	  columns constraints nams, suggested by Bernhard Herzog
 
-2005-01-17 09:21  strk
+2005-01-17 09:21  Sandro Santilli <strk at keybit.net>
 
-	* Added one more bytes for terminating NULL in utf8 encoder
+	* [r1307] loader/shp2pgsql.c: Added one more bytes for terminating
+	  NULL in utf8 encoder
 
-2005-01-16 16:50  strk
+2005-01-16 16:50  Sandro Santilli <strk at keybit.net>
 
-	* String escaping algorithm made simpler and more robust.
+	* [r1306] loader/shp2pgsql.c: String escaping algorithm made
+	  simpler and more robust.
 	  Removed escaped strings leaking.
 	  Fixed UTF8 encoder to allocate enough space for 3bytes chars
 	  strings.
 
-2005-01-14 16:36  strk
+2005-01-14 16:36  Sandro Santilli <strk at keybit.net>
 
-	* Switched to preprocessor driver CREATEFUNCTION attribute
-	  specification
+	* [r1305] lwgeom/lwpostgis.sql.in: Switched to preprocessor driver
+	  CREATEFUNCTION attribute specification
 
-2005-01-13 18:26  strk
+2005-01-13 18:26  Sandro Santilli <strk at keybit.net>
 
-	* estimated_extent() implemented for PG<80
+	* [r1303] lwgeom/lwgeom_estimate.c: estimated_extent() implemented
+	  for PG<80
 
-2005-01-13 17:41  strk
+2005-01-13 17:41  Sandro Santilli <strk at keybit.net>
 
-	* estimated_extent() prepared for future expansion (support of
+	* [r1302] lwgeom/lwgeom_estimate.c, lwgeom/lwpostgis.sql.in:
+	  estimated_extent() prepared for future expansion (support of
 	  pre-800 PGSQL)
 
-2005-01-13 13:37  strk
+2005-01-13 13:37  Sandro Santilli <strk at keybit.net>
 
-	* Updated expected error message on !closed polygon rings to match
-	  current one.
+	* [r1301] regress/regress_expected: Updated expected error message
+	  on !closed polygon rings to match current one.
 
-2005-01-13 13:36  strk
+2005-01-13 13:36  Sandro Santilli <strk at keybit.net>
 
-	* Added closed-ring check for polygon geometry inputs.
+	* [r1300] lwgeom/lwgparse.c: Added closed-ring check for polygon
+	  geometry inputs.
 
-2005-01-13 10:54  strk
+2005-01-13 10:54  Sandro Santilli <strk at keybit.net>
 
-	* changed asText to asEWKT for lossless conversions
+	* [r1299] regress/lwgeom_regress.sql: changed asText to asEWKT for
+	  lossless conversions
 
-2005-01-13 10:45  strk
+2005-01-13 10:45  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOSexception test
+	* [r1298] regress/regress.sql, regress/regress_expected: Added
+	  GEOSexception test
 
-2005-01-13 10:44  strk
+2005-01-13 10:44  Sandro Santilli <strk at keybit.net>
 
-	* Fixed more tests
+	* [r1297] regress/regress.sql, regress/regress_expected: Fixed more
+	  tests
 
-2005-01-13 10:37  strk
+2005-01-13 10:37  Sandro Santilli <strk at keybit.net>
 
-	* Changed astext() calls with asewkt() to mach expected results.
+	* [r1296] regress/regress.sql: Changed astext() calls with asewkt()
+	  to mach expected results.
 
-2005-01-13 09:42  strk
+2005-01-13 09:42  Sandro Santilli <strk at keybit.net>
 
-	* Updated 1.0.0 release date and changed version to 1.0.0RC1
+	* [r1295] CHANGES, README.postgis, TODO, doc/Makefile,
+	  lwgeom/Makefile: Updated 1.0.0 release date and changed version
+	  to 1.0.0RC1
 
-2005-01-13 09:10  strk
+2005-01-13 09:10  Sandro Santilli <strk at keybit.net>
 
-	* Removed initial README, replaced with an updated one.
+	* [r1294] lwgeom/README.initial: Removed initial README, replaced
+	  with an updated one.
 
-2005-01-13 09:10  strk
+2005-01-13 09:10  Sandro Santilli <strk at keybit.net>
 
-	* Added updated README file
+	* [r1293] lwgeom/README: Added updated README file
 
-2005-01-13 08:48  strk
+2005-01-13 08:48  Sandro Santilli <strk at keybit.net>
 
-	* Added note about utils/postgis_restore.pl
+	* [r1292] README.postgis: Added note about utils/postgis_restore.pl
 
-2005-01-13 08:43  strk
+2005-01-13 08:43  Sandro Santilli <strk at keybit.net>
 
-	* Added more New Things
+	* [r1291] CHANGES: Added more New Things
 
-2005-01-13 08:39  strk
+2005-01-13 08:39  Sandro Santilli <strk at keybit.net>
 
-	* Added release notes chapter
+	* [r1290] doc/postgis.xml: Added release notes chapter
 
-2005-01-12 17:03  strk
+2005-01-12 17:03  Sandro Santilli <strk at keybit.net>
 
-	* added USE_ICONV configuration
+	* [r1289] Makefile.config, loader/Makefile: added USE_ICONV
+	  configuration
 
-2005-01-12 17:03  strk
+2005-01-12 17:03  Sandro Santilli <strk at keybit.net>
 
-	* Added optional UTF8 output support as suggested by IIDA Tetsushi
+	* [r1288] loader/shp2pgsql.c: Added optional UTF8 output support as
+	  suggested by IIDA Tetsushi
 
-2005-01-12 09:38  strk
+2005-01-12 09:38  Sandro Santilli <strk at keybit.net>
 
-	* Added not for AUTOCACHE_BBOX setting
+	* [r1287] Makefile.config: Added not for AUTOCACHE_BBOX setting
 
-2005-01-12 09:31  strk
+2005-01-12 09:31  Sandro Santilli <strk at keybit.net>
 
-	* don't drop the regress test
+	* [r1286] make_dist.sh: don't drop the regress test
 
-2005-01-12 09:23  strk
+2005-01-12 09:23  Sandro Santilli <strk at keybit.net>
 
-	* Added a sleep before running make dist
+	* [r1285] make_dist.sh: Added a sleep before running make dist
 
-2005-01-12 08:43  strk
+2005-01-12 08:43  Sandro Santilli <strk at keybit.net>
 
-	* commented notice in LWGEOM_noop()
+	* [r1284] lwgeom/lwgeom_functions_basic.c: commented notice in
+	  LWGEOM_noop()
 
-2005-01-12 08:30  strk
+2005-01-12 08:30  Sandro Santilli <strk at keybit.net>
 
-	* Changed force_*d(geom) and multi(geom) to support AUTOCACHE_BBOX
+	* [r1283] lwgeom/BBOXCACHE_BEHAVIOURS,
+	  lwgeom/lwgeom_functions_basic.c: Changed force_*d(geom) and
+	  multi(geom) to support AUTOCACHE_BBOX
 
-2005-01-12 07:37  strk
+2005-01-12 07:37  Sandro Santilli <strk at keybit.net>
 
-	* setSRID() and force_2d() changed to use PG_LWGEOM_construct()
-	  entry point,
+	* [r1282] lwgeom/BBOXCACHE_BEHAVIOURS,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_ogc.c: setSRID()
+	  and force_2d() changed to use PG_LWGEOM_construct() entry point,
 	  for AUTOCACHE_BBOX support.
 
-2005-01-12 07:27  strk
+2005-01-12 07:27  Sandro Santilli <strk at keybit.net>
 
-	* forceRHR() and reverse() forced to use pglwgeom_serialize() entry
-	  point
+	* [r1281] lwgeom/BBOXCACHE_BEHAVIOURS,
+	  lwgeom/lwgeom_functions_basic.c: forceRHR() and reverse() forced
+	  to use pglwgeom_serialize() entry point
 	  for honouring the AUTOCACHE_BBOX define
 
-2005-01-11 18:05  strk
+2005-01-11 18:05  Sandro Santilli <strk at keybit.net>
 
-	* fixed postgis_gist_joinsel signature for PG72
+	* [r1280] lwgeom/lwpostgis.sql.in: fixed postgis_gist_joinsel
+	  signature for PG72
 
-2005-01-11 18:04  strk
+2005-01-11 18:04  Sandro Santilli <strk at keybit.net>
 
-	* added optional versions specificatoin on command line
+	* [r1279] make_dist.sh: added optional versions specificatoin on
+	  command line
 
-2005-01-11 17:56  strk
+2005-01-11 17:56  Sandro Santilli <strk at keybit.net>
 
-	* dropped special pgsql 7.1 handling
+	* [r1278] lwgeom/lwpostgis.sql.in: dropped special pgsql 7.1
+	  handling
 
-2005-01-11 17:46  strk
+2005-01-11 17:46  Sandro Santilli <strk at keybit.net>
 
-	* added postgis_lib_build_date() and postgis_scripts_build_date()
-	  docs
+	* [r1277] doc/postgis.xml: added postgis_lib_build_date() and
+	  postgis_scripts_build_date() docs
 
-2005-01-11 17:45  strk
+2005-01-11 17:45  Sandro Santilli <strk at keybit.net>
 
-	* Changed builddate format to Y-m-D H:M:S
+	* [r1276] lwgeom/Makefile: Changed builddate format to Y-m-D H:M:S
 
-2005-01-11 17:39  strk
+2005-01-11 17:39  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_lib_build_date() and postgis_scripts_build_date()
-	  provided by Markus Schaber
+	* [r1275] lwgeom/Makefile, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added postgis_lib_build_date() and
+	  postgis_scripts_build_date() provided by Markus Schaber
 
-2005-01-11 16:54  strk
+2005-01-11 16:54  Sandro Santilli <strk at keybit.net>
 
-	* initial revision
+	* [r1274] make_dist.sh: initial revision
 
-2005-01-11 15:40  strk
+2005-01-11 15:40  Sandro Santilli <strk at keybit.net>
 
-	* Comments cleanup.
+	* [r1273] lwgeom/lwgeom_box2dfloat4.c: Comments cleanup.
 
-2005-01-11 15:10  strk
+2005-01-11 15:10  Sandro Santilli <strk at keybit.net>
 
-	* removed obsoleted script
+	* [r1272] lwgeom/lwgeom.sql.in: removed obsoleted script
 
-2005-01-11 15:09  strk
+2005-01-11 15:09  Sandro Santilli <strk at keybit.net>
 
-	* Added SRID checks for all operators.
+	* [r1271] lwgeom/lwgeom_gist.c: Added SRID checks for all
+	  operators.
 
-2005-01-11 14:20  mcayland
+2005-01-11 14:20  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Added new indexable operators <<|, &<|, |&> and |>> to allow
-	  comparisons of bounding box positions in the Y axis
+	* [r1270] doc/postgis.xml, lwgeom/lwgeom.sql.in,
+	  lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_pg.h, lwgeom/lwpostgis.sql.in: Added new indexable
+	  operators <<|, &<|, |&> and |>> to allow comparisons of bounding
+	  box positions in the Y axis
 
-2005-01-11 14:10  strk
+2005-01-11 14:10  Sandro Santilli <strk at keybit.net>
 
-	* Fixed translate() to always use one of the AUTOCACHE_BBOX
-	  honouring
+	* [r1269] lwgeom/BBOXCACHE_BEHAVIOURS,
+	  lwgeom/lwgeom_functions_basic.c: Fixed translate() to always use
+	  one of the AUTOCACHE_BBOX honouring
 	  entry points.
 	  Cleaned up expand(geom).
 
-2005-01-11 08:33  strk
+2005-01-11 08:33  Sandro Santilli <strk at keybit.net>
 
-	* removed link from geometry_dump type ref
+	* [r1268] doc/postgis.xml: removed link from geometry_dump type ref
 
-2005-01-11 08:29  strk
+2005-01-11 08:29  Sandro Santilli <strk at keybit.net>
 
-	* Dropped inherithed rule for static lib build (liblwgeom.a), added
+	* [r1267] lwgeom/Makefile: Dropped inherithed rule for static lib
+	  build (liblwgeom.a), added
 	  a 'tsort' rule to check xdeps status.
 
-2005-01-11 08:12  strk
+2005-01-11 08:12  Sandro Santilli <strk at keybit.net>
 
-	* Fixed memory handling bug in dump(geom)
+	* [r1266] lwgeom/lwgeom_dump.c: Fixed memory handling bug in
+	  dump(geom)
 
-2005-01-10 09:47  strk
+2005-01-10 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Added missing prototypes
+	* [r1265] lwgeom/lwgparse.c, lwgeom/wktparse.h,
+	  lwgeom/wktparse.lex, lwgeom/wktparse.y: Added missing prototypes
 
-2005-01-10 09:28  strk
+2005-01-10 09:28  Sandro Santilli <strk at keybit.net>
 
-	* changed size_t printing lines to use %lu and unsigned long cast
+	* [r1264] lwgeom/lwgeom_functions_basic.c: changed size_t printing
+	  lines to use %lu and unsigned long cast
 
-2005-01-10 09:27  strk
+2005-01-10 09:27  Sandro Santilli <strk at keybit.net>
 
-	* renamed misures.c to measures.c
+	* [r1263] lwgeom/Makefile, lwgeom/measures.c, lwgeom/misures.c:
+	  renamed misures.c to measures.c
 
-2005-01-09 20:28  strk
+2005-01-09 20:28  Sandro Santilli <strk at keybit.net>
 
-	* size_t usage cleanups.
+	* [r1262] lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_functions_basic.c: size_t
+	  usage cleanups.
 
-2005-01-09 18:32  strk
+2005-01-09 18:32  Sandro Santilli <strk at keybit.net>
 
-	* Avoided lwcollection_deserialize call for non collections (was
-	  broken).
+	* [r1261] lwgeom/lwgeom_ogc.c: Avoided lwcollection_deserialize
+	  call for non collections (was broken).
 
-2005-01-07 18:32  strk
+2005-01-07 18:32  Sandro Santilli <strk at keybit.net>
 
-	* Dropped BOX2D operators. They will rely on cast to geometry.
+	* [r1260] lwgeom/lwpostgis.sql.in: Dropped BOX2D operators. They
+	  will rely on cast to geometry.
 
-2005-01-07 16:43  strk
+2005-01-07 16:43  Sandro Santilli <strk at keybit.net>
 
-	* Fixed handling of empty collection in GEOS2POSTGIS converter
+	* [r1259] lwgeom/lwgeom_geos.c: Fixed handling of empty collection
+	  in GEOS2POSTGIS converter
 
-2005-01-07 14:42  strk
+2005-01-07 14:42  Sandro Santilli <strk at keybit.net>
 
-	* Made accum(geometry) compatible with PG73.
+	* [r1258] lwgeom/lwgeom_functions_basic.c: Made accum(geometry)
+	  compatible with PG73.
 
-2005-01-07 14:23  strk
+2005-01-07 14:23  Sandro Santilli <strk at keybit.net>
 
-	* removed unused variable
+	* [r1257] lwgeom/lwgeom_transform.c: removed unused variable
 
-2005-01-07 14:20  strk
+2005-01-07 14:20  Sandro Santilli <strk at keybit.net>
 
-	* Added a geometry type OID extractor and caching function.
+	* [r1256] lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h: Added a geometry
+	  type OID extractor and caching function.
 
-2005-01-07 12:33  strk
+2005-01-07 12:33  Sandro Santilli <strk at keybit.net>
 
-	* Added a note about compatibility of Dump(geometry)
+	* [r1255] doc/postgis.xml: Added a note about compatibility of
+	  Dump(geometry)
 
-2005-01-07 12:28  strk
+2005-01-07 12:28  Sandro Santilli <strk at keybit.net>
 
-	* made accum(geom) compatible with PG72
+	* [r1254] lwgeom/lwgeom_functions_basic.c: made accum(geom)
+	  compatible with PG72
 
-2005-01-07 12:24  strk
+2005-01-07 12:24  Sandro Santilli <strk at keybit.net>
 
-	* dropped dump(geometry) for PGSQL<73 builds
+	* [r1253] lwgeom/lwgeom_dump.c, lwgeom/lwpostgis.sql.in: dropped
+	  dump(geometry) for PGSQL<73 builds
 
-2005-01-07 12:09  strk
+2005-01-07 12:09  Sandro Santilli <strk at keybit.net>
 
-	* fixed var declaration misplacement
+	* [r1252] lwgeom/lwgeom_functions_basic.c: fixed var declaration
+	  misplacement
 
-2005-01-07 12:00  strk
+2005-01-07 12:00  Sandro Santilli <strk at keybit.net>
 
-	* make LWGEOM_{to,from}_bytea available to all pgsql versions
+	* [r1251] lwgeom/lwgeom_inout.c: make LWGEOM_{to,from}_bytea
+	  available to all pgsql versions
 
-2005-01-07 11:57  strk
+2005-01-07 11:57  Sandro Santilli <strk at keybit.net>
 
-	* fixed typo in symdifference function definition
+	* [r1250] lwgeom/lwpostgis.sql.in: fixed typo in symdifference
+	  function definition
 
-2005-01-07 11:55  strk
+2005-01-07 11:55  Sandro Santilli <strk at keybit.net>
 
-	* fixed postgis_gist_joinsel definition for PG73
+	* [r1249] lwgeom/lwpostgis.sql.in: fixed postgis_gist_joinsel
+	  definition for PG73
 
-2005-01-07 11:50  strk
+2005-01-07 11:50  Sandro Santilli <strk at keybit.net>
 
-	* Moved pgsql compatibility code into pgsql_compat.h
+	* [r1248] lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.h,
+	  lwgeom/pgsql_compat.h: Moved pgsql compatibility code into
+	  pgsql_compat.h
 
-2005-01-07 10:26  strk
+2005-01-07 10:26  Sandro Santilli <strk at keybit.net>
 
-	* variable declaration cleanups.
+	* [r1247] lwgeom/lwgeom_functions_analytic.c: variable declaration
+	  cleanups.
 
-2005-01-07 10:25  strk
+2005-01-07 10:25  Sandro Santilli <strk at keybit.net>
 
-	* Added WARNING define for pgsql<73
+	* [r1246] lwgeom/lwgeom_ogc.c: Added WARNING define for pgsql<73
 
-2005-01-07 10:13  strk
+2005-01-07 10:13  Sandro Santilli <strk at keybit.net>
 
-	* fixed misplaced declaration after body start
+	* [r1245] lwgeom/lwgparse.c: fixed misplaced declaration after body
+	  start
 
-2005-01-07 10:10  strk
+2005-01-07 10:10  Sandro Santilli <strk at keybit.net>
 
-	* Dump(geometry) enabled by default.
+	* [r1244] lwgeom/Makefile, lwgeom/lwpostgis.sql.in: Dump(geometry)
+	  enabled by default.
 
-2005-01-07 10:06  strk
+2005-01-07 10:06  Sandro Santilli <strk at keybit.net>
 
-	* Added Dump(geometry) doc
+	* [r1243] doc/postgis.xml: Added Dump(geometry) doc
 
-2005-01-07 10:04  strk
+2005-01-07 10:04  Sandro Santilli <strk at keybit.net>
 
-	* cleanup
+	* [r1242] lwgeom/lwgeom_dump.c: cleanup
 
-2005-01-07 09:56  strk
+2005-01-07 09:56  Sandro Santilli <strk at keybit.net>
 
-	* fixed typo in error message
+	* [r1241] lwgeom/lwcollection.c: fixed typo in error message
 
-2005-01-07 09:56  strk
+2005-01-07 09:56  Sandro Santilli <strk at keybit.net>
 
-	* fixed typo in error message
+	* [r1240] lwgeom/lwcollection.c: fixed typo in error message
 
-2005-01-07 09:52  strk
+2005-01-07 09:52  Sandro Santilli <strk at keybit.net>
 
-	* JOINSEL disabled for builds against pgsql<80
+	* [r1239] lwgeom/lwgeom_estimate.c: JOINSEL disabled for builds
+	  against pgsql<80
 
-2005-01-07 00:58  strk
+2005-01-07 00:58  Sandro Santilli <strk at keybit.net>
 
-	* Initial import
+	* [r1238] lwgeom/lwgeom_dump.c: Initial import
 
-2005-01-06 15:45  strk
+2005-01-06 15:45  Sandro Santilli <strk at keybit.net>
 
-	* Added MakePolygon documentation
+	* [r1237] doc/postgis.xml: Added MakePolygon documentation
 
-2005-01-06 15:34  strk
+2005-01-06 15:34  Sandro Santilli <strk at keybit.net>
 
-	* Added not about possible lost of simplicity() using SnapToGrid(),
-	  added links to the function from there and simplify()
+	* [r1236] doc/postgis.xml: Added not about possible lost of
+	  simplicity() using SnapToGrid(), added links to the function from
+	  there and simplify()
 
-2005-01-06 15:29  strk
+2005-01-06 15:29  Sandro Santilli <strk at keybit.net>
 
-	* Renamed Apply_Grid to SnapToGrid, documented behaviour of
-	  collapsed geoms.
+	* [r1235] doc/postgis.xml, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwpostgis.sql.in: Renamed Apply_Grid to SnapToGrid,
+	  documented behaviour of collapsed geoms.
 
-2005-01-06 13:46  strk
+2005-01-06 13:46  Sandro Santilli <strk at keybit.net>
 
-	* Added makepolygon(geometry, geometry[])
+	* [r1234] lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in:
+	  Added makepolygon(geometry, geometry[])
 
-2005-01-06 13:45  strk
+2005-01-06 13:45  Sandro Santilli <strk at keybit.net>
 
-	* forward declarations for lwpoly_from_lwlines(), ptarray_clone()
-	  and ptarray_isclosed2d()
+	* [r1233] lwgeom/liblwgeom.h: forward declarations for
+	  lwpoly_from_lwlines(), ptarray_clone() and ptarray_isclosed2d()
 
-2005-01-06 13:45  strk
+2005-01-06 13:45  Sandro Santilli <strk at keybit.net>
 
-	* Added lwpoly_from_lwlines()
+	* [r1232] lwgeom/lwpoly.c: Added lwpoly_from_lwlines()
 
-2005-01-06 13:44  strk
+2005-01-06 13:44  Sandro Santilli <strk at keybit.net>
 
-	* Added ptarray_clone() and ptarray_isclosed2d()
+	* [r1231] lwgeom/ptarray.c: Added ptarray_clone() and
+	  ptarray_isclosed2d()
 
-2005-01-06 09:38  strk
+2005-01-06 09:38  Sandro Santilli <strk at keybit.net>
 
-	* Added accum(geom) documentation
+	* [r1230] doc/postgis.xml: Added accum(geom) documentation
 
-2005-01-06 09:36  strk
+2005-01-06 09:36  Sandro Santilli <strk at keybit.net>
 
-	* Added accom(geom) aggregate
+	* [r1229] lwgeom/lwpostgis.sql.in: Added accom(geom) aggregate
 
-2005-01-06 09:08  strk
+2005-01-06 09:08  Sandro Santilli <strk at keybit.net>
 
-	* Added apply_grid wrappers.
+	* [r1228] doc/postgis.xml, lwgeom/lwpostgis.sql.in: Added
+	  apply_grid wrappers.
 
-2005-01-06 08:51  strk
+2005-01-06 08:51  Sandro Santilli <strk at keybit.net>
 
-	* Modified transform() to always use PG_LWGEOM_construct entry
+	* [r1227] lwgeom/BBOXCACHE_BEHAVIOURS, lwgeom/lwgeom_transform.c:
+	  Modified transform() to always use PG_LWGEOM_construct entry
 	  point for
 	  output (to support AUTOCACHE_BBOX).
 
-2005-01-06 01:10  pramsey
+2005-01-06 01:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix spelling error
+	* [r1226] doc/postgis.xml: Fix spelling error
 
-2005-01-05 22:52  strk
+2005-01-05 22:52  Sandro Santilli <strk at keybit.net>
 
-	* updated Polygonize doc
+	* [r1225] doc/postgis.xml: updated Polygonize doc
 
-2005-01-05 22:48  strk
+2005-01-05 22:48  Sandro Santilli <strk at keybit.net>
 
-	* Had translate compute bbox cache translating input one if
-	  present.
+	* [r1224] lwgeom/BBOXCACHE_BEHAVIOURS,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_transform.c: Had
+	  translate compute bbox cache translating input one if present.
 	  Cleanups.
 
-2005-01-05 22:11  strk
+2005-01-05 22:11  Sandro Santilli <strk at keybit.net>
 
-	* Made apply_grid compute output bbox WHEN_SIMPLE (input bbox is
-	  present)
+	* [r1223] lwgeom/BBOXCACHE_BEHAVIOURS,
+	  lwgeom/lwgeom_functions_analytic.c: Made apply_grid compute
+	  output bbox WHEN_SIMPLE (input bbox is present)
 
-2005-01-05 21:59  strk
+2005-01-05 21:59  Sandro Santilli <strk at keybit.net>
 
-	* Simplify reworked to use LWGEOM abstraction (no more flattening
-	  of input collection).
+	* [r1222] lwgeom/BBOXCACHE_BEHAVIOURS,
+	  lwgeom/lwgeom_functions_analytic.c: Simplify reworked to use
+	  LWGEOM abstraction (no more flattening of input collection).
 
-2005-01-05 17:08  strk
+2005-01-05 17:08  Sandro Santilli <strk at keybit.net>
 
-	* Added apply_grid doc
+	* [r1221] doc/postgis.xml: Added apply_grid doc
 
-2005-01-05 17:06  strk
+2005-01-05 17:06  Sandro Santilli <strk at keybit.net>
 
-	* Integrated apply_grid() contributed function.
+	* [r1220] lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwpostgis.sql.in: Integrated apply_grid() contributed
+	  function.
 
-2005-01-05 12:44  strk
+2005-01-05 12:44  Sandro Santilli <strk at keybit.net>
 
-	* Added is_worth_caching_serialized_bbox(). Renamed
-	  lwgeom_setSRID() to
+	* [r1219] lwgeom/BBOXCACHE_BEHAVIOURS, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_btree.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_spheroid.c, lwgeom/lwgeom_transform.c: Added
+	  is_worth_caching_serialized_bbox(). Renamed lwgeom_setSRID() to
 	  pglwgeom_setSRID(). Fixed a bug in PG_LWGEOM_construct support
 	  for
 	  AUTOCACHE_BBOX.
 
-2005-01-05 10:06  strk
+2005-01-05 10:06  Sandro Santilli <strk at keybit.net>
 
-	* Added AUTOCACHE_BBOX support in PG_LWGEOM_construct().
+	* [r1218] lwgeom/BBOXCACHE_BEHAVIOURS, lwgeom/lwgeom_api.c: Added
+	  AUTOCACHE_BBOX support in PG_LWGEOM_construct().
 
-2005-01-05 09:47  strk
+2005-01-05 09:47  Sandro Santilli <strk at keybit.net>
 
-	* collect(geom, geom) and collect_garray(geom[]) use WHEN_SIMPLE
+	* [r1217] lwgeom/BBOXCACHE_BEHAVIOURS,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_pg.c:
+	  collect(geom, geom) and collect_garray(geom[]) use WHEN_SIMPLE
 	  strategy
 	  for bbox computation. pglwgeom_serialize() honour user's
 	  AUTOCACHE_BBOX
 	  define. BBOXCACHE_BEHAVIOURS updated.
 
-2005-01-03 17:51  strk
+2005-01-03 17:51  Sandro Santilli <strk at keybit.net>
 
-	* GEOSpolygonize returns GEOMETRYCOLLECTION instead of MULTIPOLYGON
+	* [r1216] lwgeom/lwgeom_geos_wrapper.cpp: GEOSpolygonize returns
+	  GEOMETRYCOLLECTION instead of MULTIPOLYGON
 
-2005-01-03 15:00  strk
+2005-01-03 15:00  Sandro Santilli <strk at keybit.net>
 
-	* iscacheable patch from Carl Anderson
+	* [r1215] lwgeom/lwpostgis.sql.in: iscacheable patch from Carl
+	  Anderson
 
-2004-12-31 13:11  strk
+2004-12-31 13:11  Sandro Santilli <strk at keybit.net>
 
-	* update ExteriorRing doc
+	* [r1214] doc/postgis.xml: update ExteriorRing doc
 
-2004-12-31 13:10  strk
+2004-12-31 13:10  Sandro Santilli <strk at keybit.net>
 
-	* Made ExteriorRing use LWGEOM.
+	* [r1213] lwgeom/BBOXCACHE_BEHAVIOURS, lwgeom/lwgeom_ogc.c: Made
+	  ExteriorRing use LWGEOM.
 
-2004-12-31 12:46  strk
+2004-12-31 12:46  Sandro Santilli <strk at keybit.net>
 
-	* update InteriorRingN doc
+	* [r1212] doc/postgis.xml: update InteriorRingN doc
 
-2004-12-31 12:44  strk
+2004-12-31 12:44  Sandro Santilli <strk at keybit.net>
 
-	* GeometryN and InteriorRingN changed to use LWGEOM format (and the
+	* [r1211] lwgeom/BBOXCACHE_BEHAVIOURS, lwgeom/lwgeom_ogc.c:
+	  GeometryN and InteriorRingN changed to use LWGEOM format (and the
 	  latter made OGC-strict).
 
-2004-12-31 12:00  strk
+2004-12-31 12:00  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1210] lwgeom/BBOXCACHE_BEHAVIOURS: updated
 
-2004-12-31 11:39  strk
+2004-12-31 11:39  Sandro Santilli <strk at keybit.net>
 
-	* All output geoms serializzations made using pglwgeom_serialize
+	* [r1209] lwgeom/lwgeom_functions_basic.c: All output geoms
+	  serializzations made using pglwgeom_serialize
 
-2004-12-31 11:31  strk
+2004-12-31 11:31  Sandro Santilli <strk at keybit.net>
 
-	* fixed bugs in convexhull, made GEOS2POSTGIS use
-	  pglwgeom_serialize
+	* [r1208] lwgeom/lwgeom_geos.c: fixed bugs in convexhull, made
+	  GEOS2POSTGIS use pglwgeom_serialize
 
-2004-12-31 11:30  strk
+2004-12-31 11:30  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in lwpoint_serialize_size
+	* [r1207] lwgeom/lwpoint.c: Fixed a bug in lwpoint_serialize_size
 
-2004-12-31 11:26  strk
+2004-12-31 11:26  Sandro Santilli <strk at keybit.net>
 
-	* error messages and VARLENA handling cleanups
+	* [r1206] lwgeom/lwgeom_pg.c: error messages and VARLENA handling
+	  cleanups
 
-2004-12-31 10:47  strk
+2004-12-31 10:47  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r1205] lwgeom/BBOXCACHE_BEHAVIOURS: initial import
 
-2004-12-31 10:35  strk
+2004-12-31 10:35  Sandro Santilli <strk at keybit.net>
 
-	* re-introduced G2P conversion profile for convexhull (was missing
-	  from previous patch)
+	* [r1204] lwgeom/lwgeom_geos.c: re-introduced G2P conversion
+	  profile for convexhull (was missing from previous patch)
 
-2004-12-31 10:28  strk
+2004-12-31 10:28  Sandro Santilli <strk at keybit.net>
 
-	* Made convexhull use input bbox cache if any for output geom.
+	* [r1203] lwgeom/lwgeom_geos.c: Made convexhull use input bbox
+	  cache if any for output geom.
 
-2004-12-31 09:04  strk
+2004-12-31 09:04  Sandro Santilli <strk at keybit.net>
 
-	* Varlena handling cleanups
+	* [r1202] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_inout.c: Varlena
+	  handling cleanups
 
-2004-12-30 20:41  strk
+2004-12-30 20:41  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1201] lwgeom/TODO: updated
 
-2004-12-30 20:36  strk
+2004-12-30 20:36  Sandro Santilli <strk at keybit.net>
 
-	* Rewrote GEOSCentroid() to pass exception using an input arg, and
+	* [r1200] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_wrapper.cpp:
+	  Rewrote GEOSCentroid() to pass exception using an input arg, and
 	  return
 	  NULL for EMPTY geom.
 
-2004-12-30 16:08  strk
+2004-12-30 16:08  Sandro Santilli <strk at keybit.net>
 
-	* Made parse_WKT_lwgeom (text::geometry) use AUTOCACHE_BBOX
-	  heuristic, stricter use of PG text type
+	* [r1199] lwgeom/lwgeom_inout.c: Made parse_WKT_lwgeom
+	  (text::geometry) use AUTOCACHE_BBOX heuristic, stricter use of PG
+	  text type
 
-2004-12-30 15:59  strk
+2004-12-30 15:59  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in translate() and transform() leaving result
-	  geometries with
+	* [r1198] lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_transform.c: Fixed a bug in translate() and
+	  transform() leaving result geometries with
 	  the old bounding box cache.
 
-2004-12-30 15:58  strk
+2004-12-30 15:58  Sandro Santilli <strk at keybit.net>
 
-	* Added compute_serialized_bbox_p() to always recomputed a geometry
+	* [r1197] lwgeom/liblwgeom.h, lwgeom/lwgeom_api.c: Added
+	  compute_serialized_bbox_p() to always recomputed a geometry
 	  bounding box
 
-2004-12-30 15:11  strk
+2004-12-30 15:11  Sandro Santilli <strk at keybit.net>
 
-	* Had LineFromMultiPoint make use of input SRID
+	* [r1196] lwgeom/lwgeom_functions_basic.c: Had LineFromMultiPoint
+	  make use of input SRID
 
-2004-12-30 14:44  strk
+2004-12-30 14:44  Sandro Santilli <strk at keybit.net>
 
-	* Added AUTOCACHE_BBOX variable, defaulting to 1.
+	* [r1195] Makefile.config, lwgeom/Makefile, lwgeom/lwgeom_inout.c:
+	  Added AUTOCACHE_BBOX variable, defaulting to 1.
 
-2004-12-30 13:47  strk
+2004-12-30 13:47  Sandro Santilli <strk at keybit.net>
 
-	* Introduced bbox caching worth evaluation functions, honoured in
+	* [r1194] lwgeom/liblwgeom.h, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_inout.c: Introduced bbox caching worth evaluation
+	  functions, honoured in
 	  LWGEOM_in, LWGEOMFromWKB, and GEOS2POSTGIS.
 
-2004-12-30 13:35  strk
+2004-12-30 13:35  Sandro Santilli <strk at keybit.net>
 
-	* Handled NULL returns from getCentroid making it an EMPTY GEOM
+	* [r1193] lwgeom/lwgeom_geos_wrapper.cpp: Handled NULL returns from
+	  getCentroid making it an EMPTY GEOM
 
-2004-12-30 10:27  strk
+2004-12-30 10:27  Sandro Santilli <strk at keybit.net>
 
-	* Applied Carl Anderson patch for LinearRing support.
+	* [r1192] lwgeom/lwgeom_geos_wrapper.cpp: Applied Carl Anderson
+	  patch for LinearRing support.
 
-2004-12-30 10:27  strk
+2004-12-30 10:27  Sandro Santilli <strk at keybit.net>
 
-	* USE_GEOS and USE_PROJ defaults switched to NO, and made
-	  overridable via
+	* [r1191] Makefile.config: USE_GEOS and USE_PROJ defaults switched
+	  to NO, and made overridable via
 	  environment.
 
-2004-12-30 10:24  strk
+2004-12-30 10:24  Sandro Santilli <strk at keybit.net>
 
-	* Added cache_bbox trigger
+	* [r1190] lwgeom/Makefile, lwgeom/lwgeom_triggers.c,
+	  lwgeom/lwpostgis.sql.in: Added cache_bbox trigger
 
-2004-12-30 10:22  strk
+2004-12-30 10:22  Sandro Santilli <strk at keybit.net>
 
-	* moved some BBOX procs signatures from lwgeom_inout.c to
-	  lwgeom_pg.h
+	* [r1189] lwgeom/lwgeom_inout.c, lwgeom/lwgeom_pg.h: moved some
+	  BBOX procs signatures from lwgeom_inout.c to lwgeom_pg.h
 
-2004-12-30 10:21  strk
+2004-12-30 10:21  Sandro Santilli <strk at keybit.net>
 
-	* removed useless memory copies in ndims(geom)
+	* [r1188] lwgeom/lwgeom_functions_basic.c: removed useless memory
+	  copies in ndims(geom)
 
-2004-12-30 10:18  strk
+2004-12-30 10:18  Sandro Santilli <strk at keybit.net>
 
-	* initial revision
+	* [r1187] doc/ZMSgeoms.txt: initial revision
 
-2004-12-28 09:23  strk
+2004-12-28 09:23  Sandro Santilli <strk at keybit.net>
 
-	* specified LineString input requirement for StartPoint and
-	  LastPoint
+	* [r1186] doc/postgis.xml: specified LineString input requirement
+	  for StartPoint and LastPoint
 
-2004-12-27 13:34  strk
+2004-12-27 13:34  Sandro Santilli <strk at keybit.net>
 
-	* Expanded "GIS Objects" chapter adding OGC/PostGIS (E)WKT/B and
-	  canonical forms.
+	* [r1185] doc/postgis.xml: Expanded "GIS Objects" chapter adding
+	  OGC/PostGIS (E)WKT/B and canonical forms.
 
-2004-12-27 12:50  strk
+2004-12-27 12:50  Sandro Santilli <strk at keybit.net>
 
-	* Added HasBBOX() item
+	* [r1184] doc/postgis.xml: Added HasBBOX() item
 
-2004-12-27 09:59  strk
+2004-12-27 09:59  Sandro Santilli <strk at keybit.net>
 
-	* Added bool hasBBOX(geometry). Removed useless input copy in
+	* [r1183] lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in:
+	  Added bool hasBBOX(geometry). Removed useless input copy in
 	  zmflag(geometry).
 
-2004-12-23 14:48  strk
+2004-12-23 14:48  Sandro Santilli <strk at keybit.net>
 
-	* Fixed help string, and added a TODO item
+	* [r1182] utils/test_joinestimation.pl: Fixed help string, and
+	  added a TODO item
 
-2004-12-23 11:02  strk
+2004-12-23 11:02  Sandro Santilli <strk at keybit.net>
 
-	* Updated <GEOM>FromWKB signatures to take bytea instead of text,
+	* [r1181] doc/postgis.xml: Updated <GEOM>FromWKB signatures to take
+	  bytea instead of text,
 	  Removed non-standard GeometryFromText references and substituted
 	  with OGC GeomFromText.
 
-2004-12-23 10:39  strk
+2004-12-23 10:39  Sandro Santilli <strk at keybit.net>
 
-	* Adjusted some function refereces, added another subsection for
-	  Geometry Output functions.
+	* [r1180] doc/postgis.xml: Adjusted some function refereces, added
+	  another subsection for Geometry Output functions.
 
-2004-12-22 17:12  strk
+2004-12-22 17:12  Sandro Santilli <strk at keybit.net>
 
-	* Added Mark Cave-Ayland implementation of JOIN selectivity
-	  estimator.
+	* [r1179] lwgeom/lwgeom_estimate.c: Added Mark Cave-Ayland
+	  implementation of JOIN selectivity estimator.
 
-2004-12-22 17:02  strk
+2004-12-22 17:02  Sandro Santilli <strk at keybit.net>
 
-	* initial revision
+	* [r1178] utils/test_joinestimation.pl: initial revision
 
-2004-12-22 10:32  strk
+2004-12-22 10:32  Sandro Santilli <strk at keybit.net>
 
-	* GeomFromWKB() and GeometryFromText() issue a warning if provided
-	  formats
+	* [r1177] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwpostgis.sql.in: GeomFromWKB() and GeometryFromText()
+	  issue a warning if provided formats
 	  are not OGC-strict. Introduced GeomFromEWKT() and GeomFromEWKB()
 	  for
 	  extended formats.
 
-2004-12-22 10:29  strk
+2004-12-22 10:29  Sandro Santilli <strk at keybit.net>
 
-	* Drop useless SRID from geometry when downloading EWKB format.
+	* [r1176] loader/pgsql2shp.c: Drop useless SRID from geometry when
+	  downloading EWKB format.
 
-2004-12-21 17:46  strk
+2004-12-21 17:46  Sandro Santilli <strk at keybit.net>
 
-	* Made asText and asBinary strict OGC conformant, introduced asEWKT
-	  and asEWKB
+	* [r1175] doc/postgis.xml, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.h,
+	  lwgeom/lwpostgis.sql.in: Made asText and asBinary strict OGC
+	  conformant, introduced asEWKT and asEWKB
 	  for extended version outputs.
 
-2004-12-21 15:19  strk
+2004-12-21 15:19  Sandro Santilli <strk at keybit.net>
 
-	* Canonical binary reverted back to EWKB, now supporting SRID
-	  inclusion.
+	* [r1174] lwgeom/lwgeom_inout.c, lwgeom/lwgparse.c,
+	  lwgeom/wktunparse.c: Canonical binary reverted back to EWKB, now
+	  supporting SRID inclusion.
 
-2004-12-21 15:17  strk
+2004-12-21 15:17  Sandro Santilli <strk at keybit.net>
 
-	* Made setSRID(geom, -1) actually *remove* srid from LWGEOM.
+	* [r1173] lwgeom/lwgeom_api.c: Made setSRID(geom, -1) actually
+	  *remove* srid from LWGEOM.
 
-2004-12-21 12:21  mcayland
+2004-12-21 12:21  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Fixed bug in pass 4 where sample boxes were referred as BOXs and
-	  not BOX2DFLOAT4. Also increased SDFACTOR to 3.25
+	* [r1172] lwgeom/lwgeom_estimate.c: Fixed bug in pass 4 where
+	  sample boxes were referred as BOXs and not BOX2DFLOAT4. Also
+	  increased SDFACTOR to 3.25
 
-2004-12-21 12:04  strk
+2004-12-21 12:04  Sandro Santilli <strk at keybit.net>
 
-	* Updated geom_accum to create *real* geometry arrays, changed
-	  aggregates
+	* [r1171] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_ogc.c: Updated geom_accum to create *real* geometry
+	  arrays, changed aggregates
 	  using it accordingly. Fixed collect output type settings, and
 	  dropped
 	  CR/LF in lwgeom_functions_basic.c
 
-2004-12-21 11:25  strk
+2004-12-21 11:25  Sandro Santilli <strk at keybit.net>
 
-	* allocation for deserialized lwline made after type checking
+	* [r1170] lwgeom/lwline.c: allocation for deserialized lwline made
+	  after type checking
 
-2004-12-20 17:49  strk
+2004-12-20 17:49  Sandro Santilli <strk at keybit.net>
 
-	* Added array element delimiter for type geometry
+	* [r1169] lwgeom/lwpostgis.sql.in: Added array element delimiter
+	  for type geometry
 
-2004-12-20 14:21  strk
+2004-12-20 14:21  Sandro Santilli <strk at keybit.net>
 
-	* SRID is no more skipped from asText output.
+	* [r1168] lwgeom/lwgeom_ogc.c: SRID is no more skipped from asText
+	  output.
 
-2004-12-20 14:11  strk
+2004-12-20 14:11  Sandro Santilli <strk at keybit.net>
 
-	* Created a new 'Geometry Editors' section.
+	* [r1167] doc/postgis.xml: Created a new 'Geometry Editors'
+	  section.
 
-2004-12-20 14:02  strk
+2004-12-20 14:02  Sandro Santilli <strk at keybit.net>
 
-	* Added addBBOX() and dropBBOX() documentation.
+	* [r1166] doc/postgis.xml: Added addBBOX() and dropBBOX()
+	  documentation.
 
-2004-12-20 14:01  strk
+2004-12-20 14:01  Sandro Santilli <strk at keybit.net>
 
-	* Added dropBBOX().
+	* [r1165] lwgeom/lwgeom_inout.c, lwgeom/lwpostgis.sql.in: Added
+	  dropBBOX().
 
-2004-12-17 18:00  strk
+2004-12-17 18:00  Sandro Santilli <strk at keybit.net>
 
-	* LWGEOM_gist_joinsel defined for all PG versions
+	* [r1164] lwgeom/lwgeom_estimate.c: LWGEOM_gist_joinsel defined for
+	  all PG versions
 
-2004-12-17 18:00  strk
+2004-12-17 18:00  Sandro Santilli <strk at keybit.net>
 
-	* Fixed call to geos_version.sh
+	* [r1163] lwgeom/Makefile: Fixed call to geos_version.sh
 
-2004-12-17 11:08  strk
+2004-12-17 11:08  Sandro Santilli <strk at keybit.net>
 
-	* Moved getMachineEndian from parser to liblwgeom.{h,c}.
+	* [r1162] lwgeom/liblwgeom.c, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgparse.c, lwgeom/wktparse.h,
+	  lwgeom/wktunparse.c: Moved getMachineEndian from parser to
+	  liblwgeom.{h,c}.
 	  Added XDR and NDR defines.
 	  Fixed all usage of them.
 
-2004-12-17 11:07  strk
+2004-12-17 11:07  Sandro Santilli <strk at keybit.net>
 
-	* Added missing prototype
+	* [r1161] lwgeom/lwgeom_estimate.c: Added missing prototype
 
-2004-12-17 11:06  strk
+2004-12-17 11:06  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOSnoop stub for non-geos installations
+	* [r1160] lwgeom/lwgeom_geos.c: Added GEOSnoop stub for non-geos
+	  installations
 
-2004-12-17 10:10  strk
+2004-12-17 10:10  Sandro Santilli <strk at keybit.net>
 
-	* Added canonical binary conversions as bytea<->geometry casts and
+	* [r1159] lwgeom/lwgeom_inout.c, lwgeom/lwpostgis.sql.in: Added
+	  canonical binary conversions as bytea<->geometry casts and
 	  explicit _send and _recv for PG>73
 
-2004-12-17 10:10  strk
+2004-12-17 10:10  Sandro Santilli <strk at keybit.net>
 
-	* getMachineEndian exported
+	* [r1158] lwgeom/lwgparse.c, lwgeom/wktparse.h: getMachineEndian
+	  exported
 
-2004-12-17 06:53  pramsey
+2004-12-17 06:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changes in preparation for 1.0.0RC1
+	* [r1157] CHANGES, CREDITS, README.postgis, TODO: Changes in
+	  preparation for 1.0.0RC1
 
-2004-12-16 12:30  strk
+2004-12-16 12:30  Sandro Santilli <strk at keybit.net>
 
-	* Initial skel for geometry_send canonical binary rep.
+	* [r1155] lwgeom/lwgeom_inout.c, lwgeom/lwpostgis.sql.in: Initial
+	  skel for geometry_send canonical binary rep.
 
-2004-12-16 12:07  strk
+2004-12-16 12:07  Sandro Santilli <strk at keybit.net>
 
-	* pg_restore-800 handling
+	* [r1154] utils/postgis_restore.pl: pg_restore-800 handling
 
-2004-12-15 13:10  strk
+2004-12-15 13:10  Sandro Santilli <strk at keybit.net>
 
-	* Added UpdateGeometrySRID documentation
+	* [r1152] doc/postgis.xml: Added UpdateGeometrySRID documentation
 
-2004-12-15 12:59  strk
+2004-12-15 12:59  Sandro Santilli <strk at keybit.net>
 
-	* Enforced schema use in UpdateGeometrySRID
+	* [r1151] lwgeom/lwpostgis.sql.in: Enforced schema use in
+	  UpdateGeometrySRID
 
-2004-12-15 12:54  strk
+2004-12-15 12:54  Sandro Santilli <strk at keybit.net>
 
-	* Added UpdateGeometrySRID
+	* [r1150] lwgeom/lwpostgis.sql.in: Added UpdateGeometrySRID
 
-2004-12-15 09:46  strk
+2004-12-15 09:46  Sandro Santilli <strk at keybit.net>
 
-	* updated TODO
+	* [r1149] lwgeom/TODO: updated TODO
 
-2004-12-15 09:43  strk
+2004-12-15 09:43  Sandro Santilli <strk at keybit.net>
 
-	* Die if target database exists
+	* [r1148] utils/postgis_restore.pl: Die if target database exists
 
-2004-12-15 08:46  strk
+2004-12-15 08:46  Sandro Santilli <strk at keybit.net>
 
-	* Fixed memory leaks depending on input size.
+	* [r1145] loader/pgsql2shp.c: Fixed memory leaks depending on input
+	  size.
 
-2004-12-14 11:41  strk
+2004-12-14 11:41  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in lwgeom_dropBBOX()
+	* [r1144] lwgeom/lwgeom.c: Fixed a bug in lwgeom_dropBBOX()
 
-2004-12-14 11:02  strk
+2004-12-14 11:02  Sandro Santilli <strk at keybit.net>
 
-	* Added geometry::text cast.
+	* [r1143] lwgeom/lwgeom_inout.c, lwgeom/lwpostgis.sql.in: Added
+	  geometry::text cast.
 
-2004-12-14 09:47  strk
+2004-12-14 09:47  Sandro Santilli <strk at keybit.net>
 
-	* Added SRID check in collect_garray();
+	* [r1142] lwgeom/lwgeom_functions_basic.c: Added SRID check in
+	  collect_garray();
 
-2004-12-14 09:37  strk
+2004-12-14 09:37  Sandro Santilli <strk at keybit.net>
 
-	* reduced function calls in lwcollection_serialize_size
+	* [r1141] lwgeom/lwcollection.c: reduced function calls in
+	  lwcollection_serialize_size
 
-2004-12-14 09:29  strk
+2004-12-14 09:29  Sandro Santilli <strk at keybit.net>
 
-	* fixed a typo in polygonize function
+	* [r1140] lwgeom/lwgeom_geos.c: fixed a typo in polygonize function
 
-2004-12-13 14:12  strk
+2004-12-13 14:12  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1139] ., .cvsignore: updated
 
-2004-12-13 14:03  strk
+2004-12-13 14:03  Sandro Santilli <strk at keybit.net>
 
-	* Initial skeleton on join selectivity estimator.
+	* [r1138] lwgeom/lwgeom_estimate.c, lwgeom/lwpostgis.sql.in:
+	  Initial skeleton on join selectivity estimator.
 	  Current estimators application for box2d && box2d operator.
 
-2004-12-13 13:04  strk
+2004-12-13 13:04  Sandro Santilli <strk at keybit.net>
 
-	* lwpostgis.sql copy moved from root to lwgeom/Makefile
+	* [r1137] Makefile, lwgeom/Makefile: lwpostgis.sql copy moved from
+	  root to lwgeom/Makefile
 
-2004-12-13 12:56  strk
+2004-12-13 12:56  Sandro Santilli <strk at keybit.net>
 
-	* Handled more schema specification in 800 pg_restore output.
+	* [r1136] utils/postgis_restore.pl: Handled more schema
+	  specification in 800 pg_restore output.
 
-2004-12-13 12:25  strk
+2004-12-13 12:25  Sandro Santilli <strk at keybit.net>
 
-	* Removed obsoleted function and fixed some warnings.
+	* [r1135] lwgeom/lwgeom_api.c, lwgeom/lwgeom_estimate.c: Removed
+	  obsoleted function and fixed some warnings.
 
-2004-12-10 22:20  strk
+2004-12-10 22:20  Sandro Santilli <strk at keybit.net>
 
-	* Added notice about availability of shorter syntax for
-	  estimated_extent()
+	* [r1131] doc/postgis.xml: Added notice about availability of
+	  shorter syntax for estimated_extent()
 
-2004-12-10 22:16  strk
+2004-12-10 22:16  Sandro Santilli <strk at keybit.net>
 
-	* Added estimated_extent() doc.
+	* [r1130] doc/postgis.xml: Added estimated_extent() doc.
 
-2004-12-10 12:35  strk
+2004-12-10 12:35  Sandro Santilli <strk at keybit.net>
 
-	* implemented estimated_extent() function
+	* [r1129] lwgeom/lwgeom_estimate.c, lwgeom/lwpostgis.sql.in:
+	  implemented estimated_extent() function
 
-2004-12-09 09:42  strk
+2004-12-09 09:42  Sandro Santilli <strk at keybit.net>
 
-	* Adjusted to work with new bytea WKB encoding, only supports
-	  2d/3dz.
+	* [r1128] examples/wkb_reader, examples/wkb_reader/.cvsignore,
+	  examples/wkb_reader/Makefile, examples/wkb_reader/printwkb.c,
+	  examples/wkb_reader/printwkb.inc, examples/wkb_reader/readwkb.c,
+	  examples/wkb_reader/wkbtest.h: Adjusted to work with new bytea
+	  WKB encoding, only supports 2d/3dz.
 
-2004-12-08 14:46  strk
+2004-12-08 14:46  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1127] examples/wkb_reader/README: updated
 
-2004-12-05 11:46  strk
+2004-12-05 11:46  Sandro Santilli <strk at keybit.net>
 
-	* Initial revision
+	* [r1126] examples/ogc_test_suite,
+	  examples/ogc_test_suite/.cvsignore,
+	  examples/ogc_test_suite/Makefile: Initial revision
 
-2004-12-05 11:45  strk
+2004-12-05 11:45  Sandro Santilli <strk at keybit.net>
 
-	* commented out drops of unexistant tables
+	* [r1125] examples/ogc_test_suite/3_cleanup.sql: commented out
+	  drops of unexistant tables
 
-2004-12-05 11:44  strk
+2004-12-05 11:44  Sandro Santilli <strk at keybit.net>
 
-	* Changed AddGeometryColumns to not complain about invalid schema
+	* [r1124] examples/ogc_test_suite/1_schema.sql: Changed
+	  AddGeometryColumns to not complain about invalid schema
 
-2004-11-29 16:37  strk
+2004-11-29 16:37  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in pt_in_ring_2d.
+	* [r1123] lwgeom/misures.c: Fixed a bug in pt_in_ring_2d.
 
-2004-11-29 11:16  strk
+2004-11-29 11:16  Sandro Santilli <strk at keybit.net>
 
-	* Commented out useless CFLAGS override.
+	* [r1122] lwgeom/Makefile: Commented out useless CFLAGS override.
 
-2004-11-29 11:15  strk
+2004-11-29 11:15  Sandro Santilli <strk at keybit.net>
 
-	* Some initializzations to make compiler happy.
+	* [r1121] lwgeom/lwgeom_geos.c: Some initializzations to make
+	  compiler happy.
 
-2004-11-26 17:08  strk
+2004-11-26 17:08  Sandro Santilli <strk at keybit.net>
 
-	* Removed duplicated tests
+	* [r1120] lwgeom/regress: Removed duplicated tests
 
-2004-11-26 17:06  strk
+2004-11-26 17:06  Sandro Santilli <strk at keybit.net>
 
-	* Moved basic LWGEOM parsing tests in mainstream regress dir.
+	* [r1119] lwgeom/regress/lwgeom_regress.sql,
+	  lwgeom/regress/lwgeom_regress2.sql,
+	  lwgeom/regress/lwgeom_regress2_expected,
+	  lwgeom/regress/lwgeom_regress_expected,
+	  lwgeom/regress/run_regress, lwgeom/regress/run_regress2,
+	  regress/lwgeom_regress.sql, regress/lwgeom_regress_expected,
+	  regress/run_lwgeom_regress: Moved basic LWGEOM parsing tests in
+	  mainstream regress dir.
 
-2004-11-26 16:54  strk
+2004-11-26 16:54  Sandro Santilli <strk at keybit.net>
 
-	* First regress test cleaned up.
+	* [r1118] lwgeom/regress/lwgeom_regress.sql,
+	  lwgeom/regress/lwgeom_regress_expected,
+	  lwgeom/regress/run_regress: First regress test cleaned up.
 
-2004-11-26 16:26  strk
+2004-11-26 16:26  Sandro Santilli <strk at keybit.net>
 
-	* Ported index regress test to lwgeom
+	* [r1117] regress/regress_index.sql,
+	  regress/regress_index_expected,
+	  regress/regress_lots_of_points.sql, regress/run_index_regress,
+	  regress/run_regress: Ported index regress test to lwgeom
 
-2004-11-26 15:52  strk
+2004-11-26 15:52  Sandro Santilli <strk at keybit.net>
 
-	* Added regressions test notes
+	* [r1116] regress/README: Added regressions test notes
 
-2004-11-26 15:50  strk
+2004-11-26 15:50  Sandro Santilli <strk at keybit.net>
 
-	* Finished cleanup of main regression test.
+	* [r1115] regress/regress.sql, regress/regress_expected,
+	  regress/regress_index_out, regress/regress_out,
+	  regress/run_regress: Finished cleanup of main regression test.
 
-2004-11-26 15:06  strk
+2004-11-26 15:06  Sandro Santilli <strk at keybit.net>
 
-	* lwcollection_same allows different components ordering to
+	* [r1114] lwgeom/lwcollection.c: lwcollection_same allows different
+	  components ordering to
 	  reflect older behaviour.
 
-2004-11-26 14:56  strk
+2004-11-26 14:56  Sandro Santilli <strk at keybit.net>
 
-	* Cleanup
+	* [r1113] lwgeom/lwcollection.c: Cleanup
 
-2004-11-26 14:55  strk
+2004-11-26 14:55  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in lwcollection_same
+	* [r1112] lwgeom/lwcollection.c: Fixed a bug in lwcollection_same
 
-2004-11-26 13:04  strk
+2004-11-26 13:04  Sandro Santilli <strk at keybit.net>
 
-	* Initial regress tests adaptation for lwgeom
+	* [r1111] regress/regress.sql, regress/regress_expected,
+	  regress/regress_out, regress/run_regress: Initial regress tests
+	  adaptation for lwgeom
 
-2004-11-23 16:16  strk
+2004-11-23 16:16  Sandro Santilli <strk at keybit.net>
 
-	* POSTGIS2GEOS conversion failures handled cleanier
+	* [r1109] lwgeom/lwgeom_geos.c: POSTGIS2GEOS conversion failures
+	  handled cleanier
 
-2004-11-19 17:39  strk
+2004-11-19 17:39  Sandro Santilli <strk at keybit.net>
 
-	* Massaged to work with pg_dump-7.2 and pg_restore-7.2
+	* [r1107] utils/postgis_restore.pl: Massaged to work with
+	  pg_dump-7.2 and pg_restore-7.2
 
-2004-11-19 17:29  strk
+2004-11-19 17:29  Sandro Santilli <strk at keybit.net>
 
-	* precision made of type signed int (for %.*d correct use).
+	* [r1106] lwgeom/lwgeom_gml.c: precision made of type signed int
+	  (for %.*d correct use).
 
-2004-11-19 13:48  strk
+2004-11-19 13:48  Sandro Santilli <strk at keybit.net>
 
-	* Added support for PG<73 in gist support functions
+	* [r1105] lwgeom/lwpostgis.sql.in: Added support for PG<73 in gist
+	  support functions
 	  and modified preprocessor flags to be compatible with older
 	  versions.
 
-2004-11-19 13:32  strk
+2004-11-19 13:32  Sandro Santilli <strk at keybit.net>
 
-	* Fixed IN/OUT representation of types to support < 73 PG versions
+	* [r1104] lwgeom/lwpostgis.sql.in: Fixed IN/OUT representation of
+	  types to support < 73 PG versions
 
-2004-11-18 18:16  strk
+2004-11-18 18:16  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1103] loader/TODO: updated
 
-2004-11-18 18:14  strk
+2004-11-18 18:14  Sandro Santilli <strk at keybit.net>
 
-	* Added a copy of the PQunescapeBytea function found in libpq of
-	  PG>=73
+	* [r1102] loader/Makefile, loader/PQunescapeBytea.c,
+	  loader/compat.h, loader/pgsql2shp.c: Added a copy of the
+	  PQunescapeBytea function found in libpq of PG>=73
 
-2004-11-18 13:47  strk
+2004-11-18 13:47  Sandro Santilli <strk at keybit.net>
 
-	* Substituted isfinite() with finite().
+	* [r1101] lwgeom/lwgeom_geos_wrapper.cpp: Substituted isfinite()
+	  with finite().
 
-2004-11-17 15:28  strk
+2004-11-17 15:28  Sandro Santilli <strk at keybit.net>
 
-	* Yet another GEOSHasZ bug fix
+	* [r1100] lwgeom/lwgeom_geos_wrapper.cpp: Yet another GEOSHasZ bug
+	  fix
 
-2004-11-17 15:18  strk
+2004-11-17 15:18  Sandro Santilli <strk at keybit.net>
 
-	* GEOSHasZ now checks both DoubleNotANumber and isFinite
+	* [r1099] lwgeom/lwgeom_geos_wrapper.cpp: GEOSHasZ now checks both
+	  DoubleNotANumber and isFinite
 
-2004-11-17 09:07  strk
+2004-11-17 09:07  Sandro Santilli <strk at keybit.net>
 
-	* Changes GEOSHasZ to use isfinite()
+	* [r1098] lwgeom/lwgeom_geos_wrapper.cpp: Changes GEOSHasZ to use
+	  isfinite()
 
-2004-11-17 07:57  strk
+2004-11-17 07:57  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a typo in geometry type names.
+	* [r1097] doc/postgis.xml: Fixed a typo in geometry type names.
 
-2004-11-16 13:54  strk
+2004-11-16 13:54  Sandro Santilli <strk at keybit.net>
 
-	* SRID checks and enforce for all GEOS operations.
+	* [r1096] lwgeom/lwgeom_geos.c: SRID checks and enforce for all
+	  GEOS operations.
 	  Z value handled so to show it only when available.
 
-2004-11-16 13:52  strk
+2004-11-16 13:52  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOSHasZ() and GEOSSetSRID()
+	* [r1095] lwgeom/lwgeom_geos_wrapper.cpp: Added GEOSHasZ() and
+	  GEOSSetSRID()
 
-2004-11-15 10:51  strk
+2004-11-15 10:51  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in PIP invocation, added some debugging lines.
+	* [r1094] loader/shp2pgsql.c: Fixed a bug in PIP invocation, added
+	  some debugging lines.
 
-2004-11-13 01:47  pramsey
+2004-11-13 01:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add information about where test was downloaded from.
+	* [r1093] examples/ogc_test_suite/README: Add information about
+	  where test was downloaded from.
 
-2004-11-12 18:13  strk
+2004-11-12 18:13  Sandro Santilli <strk at keybit.net>
 
-	* Deleted entries in spatial_ref_sys and geometry_columns.
+	* [r1092] examples/ogc_test_suite/3_cleanup.sql: Deleted entries in
+	  spatial_ref_sys and geometry_columns.
 
-2004-11-12 17:50  strk
+2004-11-12 17:50  Sandro Santilli <strk at keybit.net>
 
-	* Made PointN, InteriorRingN and GeometryN 1-based as required by
+	* [r1091] lwgeom/lwgeom_ogc.c: Made PointN, InteriorRingN and
+	  GeometryN 1-based as required by
 	  OGC conformance suite.
 
-2004-11-11 21:29  pramsey
+2004-11-11 21:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added grep -v ^# to cpp pipeline for .sql generation. Under OS/X
-	  cpp adds a
+	* [r1090] lwgeom/Makefile: Added grep -v ^# to cpp pipeline for
+	  .sql generation. Under OS/X cpp adds a
 	  header with a # comment field to the start of the output file.
 
-2004-11-11 09:42  strk
+2004-11-11 09:42  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1089] lwgeom/MISSING_OBJECTS: updated
 
-2004-11-08 11:08  strk
+2004-11-08 11:08  Sandro Santilli <strk at keybit.net>
 
-	* Added -fPIC to CFLAGS as suggested by Vincent Schut.
+	* [r1086] lwgeom/Makefile: Added -fPIC to CFLAGS as suggested by
+	  Vincent Schut.
 
-2004-11-05 11:44  strk
+2004-11-05 11:44  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1085] lwgeom/TODO: updated
 
-2004-11-05 11:44  strk
+2004-11-05 11:44  Sandro Santilli <strk at keybit.net>
 
-	* Had isvalid raise a NOTICE with invalidity message.
+	* [r1084] lwgeom/lwgeom_geos_wrapper.cpp: Had isvalid raise a
+	  NOTICE with invalidity message.
 
-2004-11-05 10:04  strk
+2004-11-05 10:04  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1083] lwgeom/TODO: updated
 
-2004-11-05 08:16  strk
+2004-11-05 08:16  Sandro Santilli <strk at keybit.net>
 
-	* Added ndims(geometry) function, used in a 3rd constraint set
+	* [r1082] doc/postgis.xml, lwgeom/TODO,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in: Added
+	  ndims(geometry) function, used in a 3rd constraint set
 	  by AddGeometryColumn, documented.
 
-2004-11-04 11:40  strk
+2004-11-04 11:40  Sandro Santilli <strk at keybit.net>
 
-	* Renamed max/min/avg macros to LW_MAX, LW_MIN, LW_AVG.
+	* [r1081] lwgeom/liblwgeom.h, lwgeom/lwgeom_estimate.c,
+	  lwgeom/misures.c: Renamed max/min/avg macros to LW_MAX, LW_MIN,
+	  LW_AVG.
 
-2004-11-04 09:18  strk
+2004-11-04 09:18  Sandro Santilli <strk at keybit.net>
 
-	* Oops.. my attemt at moving lwpostgis.sql.in one dir up was bogus.
+	* [r1080] Makefile, lwgeom/Makefile, lwgeom/lwpostgis.sql.in,
+	  lwpostgis.sql.in: Oops.. my attemt at moving lwpostgis.sql.in one
+	  dir up was bogus.
 
-2004-11-04 08:56  strk
+2004-11-04 08:56  Sandro Santilli <strk at keybit.net>
 
-	* Moved lwpostgis.sql.in and it's build logic up to root directory.
+	* [r1079] Makefile, lwgeom/Makefile, lwgeom/lwpostgis.sql.in,
+	  lwpostgis.sql.in: Moved lwpostgis.sql.in and it's build logic up
+	  to root directory.
 
-2004-11-02 17:53  strk
+2004-11-02 17:53  Sandro Santilli <strk at keybit.net>
 
-	* Fixed "compat.h" include to be local.
+	* [r1078] lwgeom/liblwgeom.h: Fixed "compat.h" include to be local.
 
-2004-11-02 16:48  strk
+2004-11-02 16:48  Sandro Santilli <strk at keybit.net>
 
-	* Added a copy of GNU vsprintf.c file and compiled in.
+	* [r1077] lwgeom/Makefile, lwgeom/compat.h, lwgeom/liblwgeom.c,
+	  lwgeom/liblwgeom.h, lwgeom/lwgeom_pg.c, lwgeom/vsprintf.c: Added
+	  a copy of GNU vsprintf.c file and compiled in.
 
-2004-11-02 15:59  strk
+2004-11-02 15:59  Sandro Santilli <strk at keybit.net>
 
-	* min/max macro made available regardless of MINGW32 define.
+	* [r1076] lwgeom/liblwgeom.h: min/max macro made available
+	  regardless of MINGW32 define.
 
-2004-11-02 07:50  strk
+2004-11-02 07:50  Sandro Santilli <strk at keybit.net>
 
-	* Updated as suggested by Frank Warmerdam.
+	* [r1074] spatial_ref_sys.sql: Updated as suggested by Frank
+	  Warmerdam.
 
-2004-11-02 07:25  strk
+2004-11-02 07:25  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a typo in probe_geometry_columns() reported by Vinko
-	  Vrsalovic.
+	* [r1073] lwgeom/lwpostgis.sql.in: Fixed a typo in
+	  probe_geometry_columns() reported by Vinko Vrsalovic.
 
-2004-10-29 05:28  strk
+2004-10-29 05:28  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1072] lwgeom/TODO: updated
 
-2004-10-29 05:27  strk
+2004-10-29 05:27  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in AddGeometryColumn refusing to add 4D geoms.
+	* [r1071] lwgeom/lwpostgis.sql.in: Fixed bug in AddGeometryColumn
+	  refusing to add 4D geoms.
 
-2004-10-28 16:48  strk
+2004-10-28 16:48  Sandro Santilli <strk at keybit.net>
 
-	* Initial local TODO
+	* [r1070] loader/TODO: Initial local TODO
 
-2004-10-28 16:28  strk
+2004-10-28 16:28  Sandro Santilli <strk at keybit.net>
 
-	* header inclusion cleanup
+	* [r1069] lwgeom/stringBuffer.c: header inclusion cleanup
 
-2004-10-28 16:25  strk
+2004-10-28 16:25  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in debugguing output
+	* [r1068] lwgeom/lwgeom_inout.c: Fixed bug in debugguing output
 
-2004-10-28 16:24  strk
+2004-10-28 16:24  Sandro Santilli <strk at keybit.net>
 
-	* removed LF
+	* [r1067] lwgeom/lwgeom_inout.c: removed LF
 
-2004-10-28 16:23  strk
+2004-10-28 16:23  Sandro Santilli <strk at keybit.net>
 
-	* More cleanups.
+	* [r1066] lwgeom/Makefile, lwgeom/lwgeom_geos_wrapper.cpp,
+	  lwgeom/lwgeom_gml.c: More cleanups.
 
-2004-10-28 16:13  strk
+2004-10-28 16:13  Sandro Santilli <strk at keybit.net>
 
-	* cleanups.
+	* [r1065] lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_geos.c:
+	  cleanups.
 
-2004-10-28 16:10  strk
+2004-10-28 16:10  Sandro Santilli <strk at keybit.net>
 
-	* Made data structurs old-compilers-friendly.
+	* [r1064] lwgeom/lwgparse.c: Made data structurs
+	  old-compilers-friendly.
 
-2004-10-28 16:10  strk
+2004-10-28 16:10  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in LWGEOM_asGML.
+	* [r1063] lwgeom/lwgeom_gml.c: Fixed a bug in LWGEOM_asGML.
 
-2004-10-28 15:40  strk
+2004-10-28 15:40  Sandro Santilli <strk at keybit.net>
 
-	* Fixed geos-based opPolygonize include.
+	* [r1062] lwgeom/lwgeom_geos_wrapper.cpp: Fixed geos-based
+	  opPolygonize include.
 
-2004-10-28 09:38  strk
+2004-10-28 09:38  Sandro Santilli <strk at keybit.net>
 
-	* Cleanups.
+	* [r1061] lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in:
+	  Cleanups.
 
-2004-10-28 09:29  strk
+2004-10-28 09:29  Sandro Santilli <strk at keybit.net>
 
-	* Added makeline(point, point). Changed LineFromMultiPoint
-	  definition.
+	* [r1060] doc/postgis.xml, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added makeline(point, point). Changed
+	  LineFromMultiPoint definition.
 
-2004-10-28 09:00  strk
+2004-10-28 09:00  Sandro Santilli <strk at keybit.net>
 
-	* Added AddPoint(line, point, [position]) and support API
-	  functions.
+	* [r1059] doc/postgis.xml, lwgeom/liblwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_pg.c,
+	  lwgeom/lwgeom_pg.h, lwgeom/lwline.c, lwgeom/lwpostgis.sql.in,
+	  lwgeom/ptarray.c: Added AddPoint(line, point, [position]) and
+	  support API functions.
 
-2004-10-28 07:56  strk
+2004-10-28 07:56  Sandro Santilli <strk at keybit.net>
 
-	* fixed name of line constructor as documentation reports it.
+	* [r1058] doc/postgis.xml, lwgeom/lwpostgis.sql.in: fixed name of
+	  line constructor as documentation reports it.
 	  LineFromMultiPoint().
 
-2004-10-28 07:45  strk
+2004-10-28 07:45  Sandro Santilli <strk at keybit.net>
 
-	* collect(geometry, geometry) re-introduced. collector() is an
+	* [r1057] lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in:
+	  collect(geometry, geometry) re-introduced. collector() is an
 	  alias for collect().
 
-2004-10-27 15:40  strk
+2004-10-27 15:40  Sandro Santilli <strk at keybit.net>
 
-	* Added MakeBox2D, MakeBox3D implementation and documentation.
+	* [r1056] doc/postgis.xml, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_pg.h,
+	  lwgeom/lwpostgis.sql.in: Added MakeBox2D, MakeBox3D
+	  implementation and documentation.
 
-2004-10-27 15:19  strk
+2004-10-27 15:19  Sandro Santilli <strk at keybit.net>
 
-	* MakePoly renamed to Polygonize
+	* [r1055] doc/postgis.xml, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwpostgis.sql.in: MakePoly renamed to Polygonize
 
-2004-10-27 15:09  strk
+2004-10-27 15:09  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1054] lwgeom/TODO: updated
 
-2004-10-27 14:28  strk
+2004-10-27 14:28  Sandro Santilli <strk at keybit.net>
 
-	* Added constructors docs and intial organizzation for postgis
-	  extension functions.
+	* [r1052] doc/postgis.xml: Added constructors docs and intial
+	  organizzation for postgis extension functions.
 
-2004-10-27 13:35  strk
+2004-10-27 13:35  Sandro Santilli <strk at keybit.net>
 
-	* Unset debug define.
+	* [r1051] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_wrapper.cpp:
+	  Unset debug define.
 
-2004-10-27 12:30  strk
+2004-10-27 12:30  Sandro Santilli <strk at keybit.net>
 
-	* AsSVG returns NULL on GEOMETRY COLLECTION input.
+	* [r1049] lwgeom/lwgeom_svg.c: AsSVG returns NULL on GEOMETRY
+	  COLLECTION input.
 
-2004-10-27 11:06  strk
+2004-10-27 11:06  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1048] lwgeom/TODO: updated
 
-2004-10-27 11:05  strk
+2004-10-27 11:05  Sandro Santilli <strk at keybit.net>
 
-	* Added polygonize interface (makepoly aggregate)
+	* [r1047] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_wrapper.cpp:
+	  Added polygonize interface (makepoly aggregate)
 
-2004-10-27 11:02  strk
+2004-10-27 11:02  Sandro Santilli <strk at keybit.net>
 
-	* Removed another getbox2d() call.
+	* [r1046] lwgeom/lwgeom_estimate.c: Removed another getbox2d()
+	  call.
 
-2004-10-27 10:55  strk
+2004-10-27 10:55  Sandro Santilli <strk at keybit.net>
 
-	* Fixed fix_geometry_columns() to leave correctly linked records
-	  untouched.
+	* [r1045] lwgeom/lwpostgis.sql.in: Fixed fix_geometry_columns() to
+	  leave correctly linked records untouched.
 
-2004-10-26 16:48  strk
+2004-10-26 16:48  Sandro Santilli <strk at keybit.net>
 
-	* Bug fix in GEOS version extractor.
+	* [r1042] geos_version.sh: Bug fix in GEOS version extractor.
 
-2004-10-25 17:07  strk
+2004-10-25 17:07  Sandro Santilli <strk at keybit.net>
 
-	* Obsoleted getbox2d(). Use getbox2d_p() or getbox2d_internal()
-	  instead.
+	* [r1041] lwgeom/liblwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_gist.c: Obsoleted
+	  getbox2d(). Use getbox2d_p() or getbox2d_internal() instead.
 
-2004-10-25 15:31  strk
+2004-10-25 15:31  Sandro Santilli <strk at keybit.net>
 
-	* portable math expressions.
+	* [r1040] geos_version.sh: portable math expressions.
 
-2004-10-25 14:20  strk
+2004-10-25 14:20  Sandro Santilli <strk at keybit.net>
 
-	* Y axis reverse and relative path fixes from Olivier Courtin.
+	* [r1039] lwgeom/lwgeom_svg.c: Y axis reverse and relative path
+	  fixes from Olivier Courtin.
 
-2004-10-25 12:27  strk
+2004-10-25 12:27  Sandro Santilli <strk at keybit.net>
 
-	* Removed useless network type includes,
+	* [r1038] lwgeom/lwgeom_inout.c, lwgeom/wktunparse.c: Removed
+	  useless network type includes,
 	  Added param.h include for BYTE_ORDER defines under win32.
 
-2004-10-21 19:48  strk
+2004-10-21 19:48  Sandro Santilli <strk at keybit.net>
 
-	* Stricter syntax fixes. Reported by S�bastien NICAISE
+	* [r1037] lwgeom/lwgeom.c, lwgeom/wktunparse.c: Stricter syntax
+	  fixes. Reported by S�bastien NICAISE
 	  <snicaise at iciatechnologies.com>
 
-2004-10-21 19:47  strk
+2004-10-21 19:47  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1036] lwgeom/TODO: updated
 
-2004-10-21 19:46  strk
+2004-10-21 19:46  Sandro Santilli <strk at keybit.net>
 
-	* ZMflags check on costituent geometries only performed when there
-	  is
+	* [r1035] lwgeom/lwcollection.c: ZMflags check on costituent
+	  geometries only performed when there is
 	  at least one.
 
-2004-10-21 19:45  strk
+2004-10-21 19:45  Sandro Santilli <strk at keybit.net>
 
-	* Added detect_geos_version in all: rule
+	* [r1034] lwgeom/Makefile: Added detect_geos_version in all: rule
 
-2004-10-18 11:35  strk
+2004-10-18 11:35  Sandro Santilli <strk at keybit.net>
 
-	* Added reverse(geometry) and ForceRHR(geometry) documentation.
+	* [r1033] doc/postgis.xml: Added reverse(geometry) and
+	  ForceRHR(geometry) documentation.
 
-2004-10-18 11:29  strk
+2004-10-18 11:29  Sandro Santilli <strk at keybit.net>
 
-	* makeline_from_multipoint renamed to line_from_multipoint
+	* [r1032] lwgeom/lwpostgis.sql.in: makeline_from_multipoint renamed
+	  to line_from_multipoint
 
-2004-10-18 09:37  strk
+2004-10-18 09:37  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1031] lwgeom/TODO: updated
 
-2004-10-17 13:25  strk
+2004-10-17 13:25  Sandro Santilli <strk at keybit.net>
 
-	* removed USE_WKB partially-used define
+	* [r1030] loader/shp2pgsql.c: removed USE_WKB partially-used define
 
-2004-10-17 13:24  strk
+2004-10-17 13:24  Sandro Santilli <strk at keybit.net>
 
-	* HEXWKB polygon
+	* [r1029] loader/shp2pgsql.c: HEXWKB polygon
 
-2004-10-17 13:01  strk
+2004-10-17 13:01  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1028] lwgeom/TODO: updated
 
-2004-10-17 12:59  strk
+2004-10-17 12:59  Sandro Santilli <strk at keybit.net>
 
-	* HEXWKB multiline output
+	* [r1027] loader/shp2pgsql.c: HEXWKB multiline output
 
-2004-10-17 12:51  strk
+2004-10-17 12:51  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in lwline_serialize_buf preventing dimension override
+	* [r1026] lwgeom/lwline.c: Fixed a bug in lwline_serialize_buf
+	  preventing dimension override
 
-2004-10-17 12:43  strk
+2004-10-17 12:43  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a debugging function output bug
+	* [r1025] lwgeom/lwline.c: Fixed a debugging function output bug
 
-2004-10-17 12:26  strk
+2004-10-17 12:26  Sandro Santilli <strk at keybit.net>
 
-	* Point and MultiPoint loaded using HEXWKB.
+	* [r1024] loader/shp2pgsql.c: Point and MultiPoint loaded using
+	  HEXWKB.
 
-2004-10-17 12:16  strk
+2004-10-17 12:16  Sandro Santilli <strk at keybit.net>
 
-	* fixed prototype for user query table
+	* [r1022] loader/pgsql2shp.c: fixed prototype for user query table
 
-2004-10-17 12:15  strk
+2004-10-17 12:15  Sandro Santilli <strk at keybit.net>
 
-	* Bug fixed in multipoint4D creation
+	* [r1020] loader/pgsql2shp.c: Bug fixed in multipoint4D creation
 
-2004-10-15 22:02  strk
+2004-10-15 22:02  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1019] lwgeom/TODO: updated
 
-2004-10-15 22:01  strk
+2004-10-15 22:01  Sandro Santilli <strk at keybit.net>
 
-	* Initial WKB functionalities
+	* [r1018] loader/shp2pgsql.c: Initial WKB functionalities
 
-2004-10-15 16:21  strk
+2004-10-15 16:21  Sandro Santilli <strk at keybit.net>
 
-	* makeline_from_multipoint() implemented and exposed.
+	* [r1017] lwgeom/TODO, lwgeom/liblwgeom.h, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwline.c,
+	  lwgeom/lwpostgis.sql.in: makeline_from_multipoint() implemented
+	  and exposed.
 
-2004-10-15 15:25  strk
+2004-10-15 15:25  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1016] lwgeom/TODO: updated
 
-2004-10-15 15:21  strk
+2004-10-15 15:21  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in outputput dimension detection for makeline()
+	* [r1015] lwgeom/lwline.c: Fixed a bug in outputput dimension
+	  detection for makeline()
 
-2004-10-15 15:01  strk
+2004-10-15 15:01  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1014] lwgeom/TODO: updated
 
-2004-10-15 15:00  strk
+2004-10-15 15:00  Sandro Santilli <strk at keybit.net>
 
-	* Added debugging lines
+	* [r1013] lwgeom/lwgeom_functions_basic.c: Added debugging lines
 
-2004-10-15 15:00  strk
+2004-10-15 15:00  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in make_lwline
+	* [r1012] lwgeom/lwline.c: Fixed a bug in make_lwline
 
-2004-10-15 11:52  strk
+2004-10-15 11:52  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r1011] TODO, lwgeom/TODO: updated
 
-2004-10-15 11:48  strk
+2004-10-15 11:48  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug making asSVG return a spurious char at the end.
+	* [r1009] lwgeom/lwgeom_svg.c: Fixed a bug making asSVG return a
+	  spurious char at the end.
 
-2004-10-15 11:42  strk
+2004-10-15 11:42  Sandro Santilli <strk at keybit.net>
 
-	* Added makeline() aggregate and make_lwline() API method.
+	* [r1008] lwgeom/liblwgeom.h, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwline.c,
+	  lwgeom/lwpostgis.sql.in, lwgeom/ptarray.c: Added makeline()
+	  aggregate and make_lwline() API method.
 
-2004-10-15 09:44  strk
+2004-10-15 09:44  Sandro Santilli <strk at keybit.net>
 
-	* updated AsSVG doc
+	* [r1007] doc/postgis.xml: updated AsSVG doc
 
-2004-10-15 09:41  strk
+2004-10-15 09:41  Sandro Santilli <strk at keybit.net>
 
-	* changed precision semantic back to number of decimal digits
+	* [r1006] lwgeom/lwgeom_svg.c: changed precision semantic back to
+	  number of decimal digits
 
-2004-10-15 09:41  strk
+2004-10-15 09:41  Sandro Santilli <strk at keybit.net>
 
-	* Added a trailing zeros trimmer
+	* [r1005] lwgeom/liblwgeom.c, lwgeom/liblwgeom.h: Added a trailing
+	  zeros trimmer
 
-2004-10-15 08:26  strk
+2004-10-15 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Fixed handling of mixed dimensioned geometries in source table.
+	* [r1004] loader/pgsql2shp.c: Fixed handling of mixed dimensioned
+	  geometries in source table.
 
-2004-10-15 07:35  strk
+2004-10-15 07:35  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug introduced by me (byteorder skipped for inner geoms
-	  in WKB)
+	* [r1003] lwgeom/wktunparse.c: Fixed a bug introduced by me
+	  (byteorder skipped for inner geoms in WKB)
 
-2004-10-14 10:28  strk
+2004-10-14 10:28  Sandro Santilli <strk at keybit.net>
 
-	* Updated pgsql2shp documentation.
+	* [r1001] doc/postgis.xml: Updated pgsql2shp documentation.
 
-2004-10-14 09:59  strk
+2004-10-14 09:59  Sandro Santilli <strk at keybit.net>
 
-	* Added support for user query (replacing schema.table)
+	* [r999] loader/pgsql2shp.c: Added support for user query
+	  (replacing schema.table)
 
-2004-10-13 19:33  strk
+2004-10-13 19:33  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r998] TODO: updated
 
-2004-10-13 19:32  strk
+2004-10-13 19:32  Sandro Santilli <strk at keybit.net>
 
-	* Added third buffer arg expanation
+	* [r996] doc/postgis.xml: Added third buffer arg expanation
 
-2004-10-13 18:49  strk
+2004-10-13 18:49  Sandro Santilli <strk at keybit.net>
 
-	* fixed arg number in buffer third arg
+	* [r994] lwgeom/lwgeom_geos.c: fixed arg number in buffer third arg
 
-2004-10-13 18:39  strk
+2004-10-13 18:39  Sandro Santilli <strk at keybit.net>
 
-	* Added a third argument to the buffer() function.
+	* [r993] lwgeom/lwgeom_geos.c, lwgeom/lwgeom_geos_wrapper.cpp,
+	  lwgeom/lwpostgis.sql.in: Added a third argument to the buffer()
+	  function.
 
-2004-10-13 17:21  strk
+2004-10-13 17:21  Sandro Santilli <strk at keybit.net>
 
-	* Dropped SRID argument from point constructor.
+	* [r992] lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in:
+	  Dropped SRID argument from point constructor.
 	  Unified procedure name to 'makepoint' for 2d,3dz,4d and
 	  'makepointm' for 3dm.
 
-2004-10-13 15:20  strk
+2004-10-13 15:20  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r991] lwgeom/TODO: updated
 
-2004-10-13 15:19  strk
+2004-10-13 15:19  Sandro Santilli <strk at keybit.net>
 
-	* Added point constructors PG funx.
+	* [r990] lwgeom/liblwgeom.h, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added point constructors PG funx.
 
-2004-10-13 14:26  strk
+2004-10-13 14:26  Sandro Santilli <strk at keybit.net>
 
-	* Added simpler lwpoint constructors.
+	* [r989] lwgeom/liblwgeom.h, lwgeom/lwgeom.h, lwgeom/lwpoint.c,
+	  lwgeom/test.c: Added simpler lwpoint constructors.
 
-2004-10-11 14:36  strk
+2004-10-11 14:36  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r986] lwgeom/TODO: updated
 
-2004-10-11 14:34  strk
+2004-10-11 14:34  Sandro Santilli <strk at keybit.net>
 
-	* Added endiannes specification for postgis-1.0.0+
+	* [r985] loader/pgsql2shp.c: Added endiannes specification for
+	  postgis-1.0.0+
 
-2004-10-11 14:03  strk
+2004-10-11 14:03  Sandro Santilli <strk at keybit.net>
 
-	* Added endiannes specification to unparse_WKB, AsBinary,
-	  lwgeom_to_wkb.
+	* [r984] lwgeom/liblwgeom.h, lwgeom/lwgeom.c, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.h,
+	  lwgeom/lwpostgis.sql.in, lwgeom/test.c, lwgeom/wktparse.h,
+	  lwgeom/wktunparse.c: Added endiannes specification to
+	  unparse_WKB, AsBinary, lwgeom_to_wkb.
 
-2004-10-11 12:23  strk
+2004-10-11 12:23  Sandro Santilli <strk at keybit.net>
 
-	* Added test.o to cleanup list
+	* [r983] lwgeom/Makefile: Added test.o to cleanup list
 
-2004-10-11 12:23  strk
+2004-10-11 12:23  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r982] lwgeom/TODO: updated
 
-2004-10-11 11:53  strk
+2004-10-11 11:53  Sandro Santilli <strk at keybit.net>
 
-	* Moved misuring functions to misures.c (from
+	* [r981] lwgeom/Makefile, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/misures.c: Moved misuring functions to misures.c (from
 	  lwgeom_functions_basic.c).
 	  Added -lm to build line for the API test application.
 
-2004-10-11 11:46  strk
+2004-10-11 11:46  Sandro Santilli <strk at keybit.net>
 
-	* changed description of pgsql2shp -b switch
+	* [r980] doc/postgis.xml: changed description of pgsql2shp -b
+	  switch
 
-2004-10-11 10:31  strk
+2004-10-11 10:31  Sandro Santilli <strk at keybit.net>
 
-	* Changed collect() to return MULTI* if applicabe (all input is
-	  corresponding
+	* [r979] lwgeom/lwgeom_functions_basic.c: Changed collect() to
+	  return MULTI* if applicabe (all input is corresponding
 	  SINGLE type).
 
-2004-10-11 10:30  strk
+2004-10-11 10:30  Sandro Santilli <strk at keybit.net>
 
-	* Added debug strings
+	* [r978] lwgeom/lwgeom.c: Added debug strings
 
-2004-10-11 09:55  strk
+2004-10-11 09:55  Sandro Santilli <strk at keybit.net>
 
-	* collect() always return a collection, with a component for each
-	  input
+	* [r977] lwgeom/lwgeom_functions_basic.c: collect() always return a
+	  collection, with a component for each input
 	  geometry.
 	  memcollect() obsoleted.
 
-2004-10-11 09:46  strk
+2004-10-11 09:46  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug making it unbuildable.
+	* [r976] lwgeom/lwcollection.c: Fixed bug making it unbuildable.
 
-2004-10-11 09:32  strk
+2004-10-11 09:32  Sandro Santilli <strk at keybit.net>
 
-	* Added lwgeom_addBBOX() and lwcollection_construct_empty()
+	* [r975] lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c: Added lwgeom_addBBOX() and
+	  lwcollection_construct_empty()
 
-2004-10-11 07:15  strk
+2004-10-11 07:15  Sandro Santilli <strk at keybit.net>
 
-	* lwgeom_same new implementation
+	* [r974] lwgeom/TODO, lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwline.c, lwgeom/lwpoint.c,
+	  lwgeom/lwpoly.c, lwgeom/ptarray.c: lwgeom_same new implementation
 
-2004-10-11 06:03  strk
+2004-10-11 06:03  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r973] TODO: updated
 
-2004-10-10 20:31  strk
+2004-10-10 20:31  Sandro Santilli <strk at keybit.net>
 
-	* segmentize2d() port and use of new LWGEOM structure.
+	* [r972] lwgeom/TODO, lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwline.c,
+	  lwgeom/lwpoly.c, lwgeom/ptarray.c: segmentize2d() port and use of
+	  new LWGEOM structure.
 
-2004-10-09 15:17  strk
+2004-10-09 15:17  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r971] lwgeom/TODO: updated
 
-2004-10-08 13:26  strk
+2004-10-08 13:26  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r969] lwgeom/TODO: updated
 
-2004-10-08 13:21  strk
+2004-10-08 13:21  Sandro Santilli <strk at keybit.net>
 
-	* Debugging output cleanup.
+	* [r968] lwgeom/lwgeom.c: Debugging output cleanup.
 
-2004-10-08 13:20  strk
+2004-10-08 13:20  Sandro Santilli <strk at keybit.net>
 
-	* Changed LWGEOM structure to point to an actual BOX2DFLOAT4.
+	* [r967] lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_box3d.c,
+	  lwgeom/lwgeom_chip.c, lwgeom/lwgeom_estimate.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_wrapper.cpp, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.h, lwgeom/lwline.c,
+	  lwgeom/lwmline.c, lwgeom/lwmpoint.c, lwgeom/lwmpoly.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c, lwgeom/lwpostgis.sql.in,
+	  lwgeom/ptarray.c: Changed LWGEOM structure to point to an actual
+	  BOX2DFLOAT4.
 	  Renamed most function to reflect a TYPE_method naming convention.
 	  (you'll need a dump/reload for it to work)
 	  Added more manipulation functions.
 
-2004-10-08 13:16  strk
+2004-10-08 13:16  Sandro Santilli <strk at keybit.net>
 
-	* added memory allocation debugging
+	* [r966] lwgeom/liblwgeom.c: added memory allocation debugging
 
-2004-10-08 13:15  strk
+2004-10-08 13:15  Sandro Santilli <strk at keybit.net>
 
-	* Added box2d.o module, reverted SCRIPTS_VERSION to 0.1.0.
+	* [r965] lwgeom/Makefile: Added box2d.o module, reverted
+	  SCRIPTS_VERSION to 0.1.0.
 
-2004-10-08 13:15  strk
+2004-10-08 13:15  Sandro Santilli <strk at keybit.net>
 
-	* Initial revision
+	* [r964] lwgeom/box2d.c: Initial revision
 
-2004-10-08 10:48  strk
+2004-10-08 10:48  Sandro Santilli <strk at keybit.net>
 
-	* Some updates
+	* [r963] doc/postgis.xml: Some updates
 
-2004-10-08 07:01  strk
+2004-10-08 07:01  Sandro Santilli <strk at keybit.net>
 
-	* Dropped HWGEOM from this branch.
+	* [r962] hwgeom: Dropped HWGEOM from this branch.
 
-2004-10-07 22:02  strk
+2004-10-07 22:02  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r959] lwgeom/TODO: updated
 
-2004-10-07 21:52  strk
+2004-10-07 21:52  Sandro Santilli <strk at keybit.net>
 
-	* Lots of rewriting/cleanup. TypeM/TypeZ supports.
+	* [r958] loader/shp2pgsql.c: Lots of rewriting/cleanup. TypeM/TypeZ
+	  supports.
 
-2004-10-07 21:51  strk
+2004-10-07 21:51  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in 4d handling
+	* [r957] loader/pgsql2shp.c: Fixed a bug in 4d handling
 
-2004-10-07 20:39  strk
+2004-10-07 20:39  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bugs in TYPE_ macro usage
+	* [r956] lwgeom/lwgeom_api.c, lwgeom/lwgeom_functions_basic.c:
+	  Fixed bugs in TYPE_ macro usage
 
-2004-10-07 17:18  strk
+2004-10-07 17:18  Sandro Santilli <strk at keybit.net>
 
-	* Changed ptarray2d_construct interface.
+	* [r955] lwgeom/liblwgeom.h, lwgeom/lwgeom.h, lwgeom/ptarray.c,
+	  lwgeom/test.c: Changed ptarray2d_construct interface.
 
-2004-10-07 17:18  strk
+2004-10-07 17:18  Sandro Santilli <strk at keybit.net>
 
-	* Changed geometrytype() to support TYPEM.
+	* [r954] lwgeom/lwgeom_ogc.c: Changed geometrytype() to support
+	  TYPEM.
 
-2004-10-07 17:17  strk
+2004-10-07 17:17  Sandro Santilli <strk at keybit.net>
 
-	* Changed AddGeometryColumn to handle TYPEM.
+	* [r953] lwgeom/Makefile, lwgeom/lwpostgis.sql.in: Changed
+	  AddGeometryColumn to handle TYPEM.
 	  Updated SCRIPTS_VERSION to 1.1.0
 
-2004-10-07 17:15  strk
+2004-10-07 17:15  Sandro Santilli <strk at keybit.net>
 
-	* Fixed TYPEM handling.
+	* [r952] loader/pgsql2shp.c: Fixed TYPEM handling.
 
-2004-10-07 10:03  strk
+2004-10-07 10:03  Sandro Santilli <strk at keybit.net>
 
-	* API cleanup, more steps toward standalone library.
+	* [r951] lwgeom/Makefile, lwgeom/liblwgeom.c, lwgeom/liblwgeom.h,
+	  lwgeom/lwcollection.c, lwgeom/lwgeom.c, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_chip.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_wrapper.cpp, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c,
+	  lwgeom/lwline.c, lwgeom/lwmline.c, lwgeom/lwmpoint.c,
+	  lwgeom/lwmpoly.c, lwgeom/lwpoint.c, lwgeom/lwpoly.c,
+	  lwgeom/ptarray.c, lwgeom/test.c, lwgeom/wktparse.h,
+	  lwgeom/wktunparse.c: API cleanup, more steps toward standalone
+	  library.
 
-2004-10-07 06:54  strk
+2004-10-07 06:54  Sandro Santilli <strk at keybit.net>
 
-	* cleanups
+	* [r950] loader/pgsql2shp.c, loader/shp2pgsql.c: cleanups
 
-2004-10-06 17:04  strk
+2004-10-06 17:04  Sandro Santilli <strk at keybit.net>
 
-	* ZM handling. Log trimmed.
+	* [r949] loader/pgsql2shp.c: ZM handling. Log trimmed.
 
-2004-10-06 10:11  strk
+2004-10-06 10:11  Sandro Santilli <strk at keybit.net>
 
-	* Other separator fixes
+	* [r947] loader/shp2pgsql.c: Other separator fixes
 
-2004-10-06 09:52  strk
+2004-10-06 09:52  Sandro Santilli <strk at keybit.net>
 
-	* Added zmflag(geom) doc
+	* [r946] doc/postgis.xml: Added zmflag(geom) doc
 
-2004-10-06 09:40  strk
+2004-10-06 09:40  Sandro Santilli <strk at keybit.net>
 
-	* Handled 0-DBF-attributes corner case.
+	* [r944] loader/shp2pgsql.c: Handled 0-DBF-attributes corner case.
 
-2004-10-06 08:53  strk
+2004-10-06 08:53  Sandro Santilli <strk at keybit.net>
 
-	* Added zmflag(geom) function.
+	* [r943] lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in:
+	  Added zmflag(geom) function.
 
-2004-10-06 08:17  strk
+2004-10-06 08:17  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r942] TODO: updated
 
-2004-10-06 07:19  strk
+2004-10-06 07:19  Sandro Santilli <strk at keybit.net>
 
-	* Left off a semicolon in previous patch...
+	* [r941] jdbc/org/postgis/Point.java: Left off a semicolon in
+	  previous patch...
 
-2004-10-05 22:46  strk
+2004-10-05 22:46  Sandro Santilli <strk at keybit.net>
 
-	* Removed PGSQLException use as suggested by Kris Jurka
+	* [r939] jdbc/org/postgis/Point.java: Removed PGSQLException use as
+	  suggested by Kris Jurka
 
-2004-10-05 21:59  strk
+2004-10-05 21:59  Sandro Santilli <strk at keybit.net>
 
-	* Flex invocation patch by Kris Jurka.
+	* [r938] lwgeom/Makefile: Flex invocation patch by Kris Jurka.
 
-2004-10-05 21:54  strk
+2004-10-05 21:54  Sandro Santilli <strk at keybit.net>
 
-	* Yes another change in SPI_cursor_open
+	* [r936] lwgeom/lwgeom_estimate.c: Yes another change in
+	  SPI_cursor_open
 
-2004-10-05 21:53  strk
+2004-10-05 21:53  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bugs in Centroid (not GEOS)
+	* [r935] lwgeom/lwgeom_functions_basic.c: Fixed bugs in Centroid
+	  (not GEOS)
 
-2004-10-05 21:42  strk
+2004-10-05 21:42  Sandro Santilli <strk at keybit.net>
 
-	* Cleanups for older compilers and PG verisons.
+	* [r934] lwgeom/lwgeom_api.c, lwgeom/lwgeom_debug.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_spheroid.c: Cleanups for older compilers and PG
+	  verisons.
 
-2004-10-05 21:20  strk
+2004-10-05 21:20  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r933] lwgeom/TODO: updated
 
-2004-10-05 21:08  strk
+2004-10-05 21:08  Sandro Santilli <strk at keybit.net>
 
-	* Added debugging lines, fixed a bug in TYPE_HASSRID and
-	  TYPE_HASBBOX macros.
+	* [r932] lwgeom/liblwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/wktunparse.c: Added
+	  debugging lines, fixed a bug in TYPE_HASSRID and TYPE_HASBBOX
+	  macros.
 
-2004-10-05 21:08  strk
+2004-10-05 21:08  Sandro Santilli <strk at keybit.net>
 
-	* Made clean rule verbose
+	* [r931] lwgeom/Makefile: Made clean rule verbose
 
-2004-10-05 17:15  strk
+2004-10-05 17:15  Sandro Santilli <strk at keybit.net>
 
-	* Bug fix in size computation.
+	* [r930] lwgeom/liblwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwline.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c: Bug fix in size computation.
 
-2004-10-05 16:28  strk
+2004-10-05 16:28  Sandro Santilli <strk at keybit.net>
 
-	* Added ZM dimensions flags knowledge.
+	* [r929] lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_chip.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_gml.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_spheroid.c, lwgeom/lwgparse.c, lwgeom/lwline.c,
+	  lwgeom/lwmline.c, lwgeom/lwmpoint.c, lwgeom/lwmpoly.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c, lwgeom/lwpostgis.sql.in,
+	  lwgeom/wktparse.lex, lwgeom/wktparse.y: Added ZM dimensions flags
+	  knowledge.
 
-2004-10-05 16:07  strk
+2004-10-05 16:07  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r928] lwgeom/TODO: updated
 
-2004-10-05 15:12  strk
+2004-10-05 15:12  Sandro Santilli <strk at keybit.net>
 
-	* Added newlines in standalone reporters
+	* [r927] lwgeom/liblwgeom.c: Added newlines in standalone reporters
 
-2004-10-05 15:11  strk
+2004-10-05 15:11  Sandro Santilli <strk at keybit.net>
 
-	* Added force_3dz, force_3dm docs
+	* [r926] doc/postgis.xml: Added force_3dz, force_3dm docs
 
-2004-10-05 15:11  strk
+2004-10-05 15:11  Sandro Santilli <strk at keybit.net>
 
-	* Changed default variable setting to a more portable syntax
+	* [r925] Makefile.config: Changed default variable setting to a
+	  more portable syntax
 
-2004-10-05 07:53  strk
+2004-10-05 07:53  Sandro Santilli <strk at keybit.net>
 
-	* ZM aware WKT/WKB input/output.
+	* [r924] lwgeom/liblwgeom.h, lwgeom/lwgparse.c,
+	  lwgeom/wktparse.lex, lwgeom/wktparse.y, lwgeom/wktunparse.c: ZM
+	  aware WKT/WKB input/output.
 
-2004-10-04 13:53  strk
+2004-10-04 13:53  Sandro Santilli <strk at keybit.net>
 
-	* Serialized form and WKB prepared to accept ZM flags replacing DD
-	  (dimensions)
+	* [r923] lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_box3d.c,
+	  lwgeom/lwgeom_chip.c, lwgeom/lwgeom_debug.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_wrapper.cpp, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c, lwgeom/lwgparse.c,
+	  lwgeom/lwline.c, lwgeom/lwmline.c, lwgeom/lwmpoint.c,
+	  lwgeom/lwmpoly.c, lwgeom/lwpoint.c, lwgeom/lwpoly.c,
+	  lwgeom/wktunparse.c: Serialized form and WKB prepared to accept
+	  ZM flags replacing DD (dimensions)
 
-2004-10-04 09:25  strk
+2004-10-04 09:25  Sandro Santilli <strk at keybit.net>
 
-	* Added missing prototype
+	* [r922] lwgeom/lwgeom_functions_basic.c: Added missing prototype
 
-2004-10-03 15:57  strk
+2004-10-03 15:57  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r921] lwgeom/TODO: updated
 
-2004-10-03 15:52  strk
+2004-10-03 15:52  Sandro Santilli <strk at keybit.net>
 
-	* Made GEOS<->LWGEOM converters keep geometry structures.
+	* [r920] lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_wrapper.cpp, lwgeom/lwline.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c, lwgeom/lwpostgis.sql.in: Made
+	  GEOS<->LWGEOM converters keep geometry structures.
 	  Fixed bug in serializers.
 	  Added noop(geometry) for deserialize/serialize debugging.
 
-2004-10-01 14:49  strk
+2004-10-01 14:49  Sandro Santilli <strk at keybit.net>
 
-	* Added lwgeom_add(LWGEOM *to, int where, LWGEOM *what).
+	* [r919] lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_api.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_geos_wrapper.cpp, lwgeom/lwline.c,
+	  lwgeom/lwmline.c, lwgeom/lwmpoint.c, lwgeom/lwmpoly.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c: Added lwgeom_add(LWGEOM *to,
+	  int where, LWGEOM *what).
 	  Added LWGEOM2GEOS keeping input geometry structure.
 
-2004-10-01 07:51  strk
+2004-10-01 07:51  Sandro Santilli <strk at keybit.net>
 
-	* initial revision
+	* [r918] lwgeom/lwgeom_debug.c: initial revision
 
-2004-10-01 07:51  strk
+2004-10-01 07:51  Sandro Santilli <strk at keybit.net>
 
-	* Added runtime cast functions.
+	* [r917] lwgeom/liblwgeom.h, lwgeom/lwgeom.c: Added runtime cast
+	  functions.
 
-2004-09-30 16:06  strk
+2004-09-30 16:06  Sandro Santilli <strk at keybit.net>
 
-	* bug fixes
+	* [r916] lwgeom/TODO, lwgeom/liblwgeom.c, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c: bug fixes
 
-2004-09-30 15:42  strk
+2004-09-30 15:42  Sandro Santilli <strk at keybit.net>
 
-	* Added BBOX finders and its support in serializer.
+	* [r915] lwgeom/TODO, lwgeom/liblwgeom.h, lwgeom/lwcollection.c,
+	  lwgeom/lwgeom.c, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_pg.h, lwgeom/lwline.c, lwgeom/lwmline.c,
+	  lwgeom/lwmpoint.c, lwgeom/lwmpoly.c, lwgeom/lwpoint.c,
+	  lwgeom/lwpoly.c: Added BBOX finders and its support in
+	  serializer.
 
-2004-09-30 11:49  strk
+2004-09-30 11:49  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r914] lwgeom/TODO: updated
 
-2004-09-30 11:45  strk
+2004-09-30 11:45  Sandro Santilli <strk at keybit.net>
 
-	* More common flags between LW<type>s.
+	* [r913] lwgeom/Makefile, lwgeom/liblwgeom.c, lwgeom/liblwgeom.h,
+	  lwgeom/lwcollection.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_pg.c, lwgeom/lwline.c, lwgeom/lwmline.c,
+	  lwgeom/lwmpoint.c, lwgeom/lwmpoly.c, lwgeom/lwpoint.c,
+	  lwgeom/lwpoly.c: More common flags between LW<type>s.
 	  LWGEOM_summary output made cleaner and moved to lwgeom_debug.c
 
-2004-09-30 08:18  strk
+2004-09-30 08:18  Sandro Santilli <strk at keybit.net>
 
-	* Added missing liblwgeom.c file.
+	* [r912] lwgeom/liblwgeom.c, lwgeom/liblwgeom.h, lwgeom/lwgeom.c,
+	  lwgeom/lwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwmline.c,
+	  lwgeom/lwmpoint.c, lwgeom/lwmpoly.c: Added missing liblwgeom.c
+	  file.
 	  Made LWMPOINT, LWMLINE, LWMPOLY compatible with LWCOLLECTION.
 	  Fixed reverse() and forcerhr() to maintain geometry structure.
 
-2004-09-30 06:54  strk
-
-	* updated
-
-2004-09-29 15:25  strk
-
-	* Added serialize function for LWGEOM
-
-2004-09-29 10:50  strk
-
-	* Big layout change.
+2004-09-30 06:54  Sandro Santilli <strk at keybit.net>
+
+	* [r911] lwgeom/TODO: updated
+
+2004-09-29 15:25  Sandro Santilli <strk at keybit.net>
+
+	* [r910] lwgeom/Makefile, lwgeom/liblwgeom.h,
+	  lwgeom/lwcollection.c, lwgeom/lwgeom.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwline.c,
+	  lwgeom/lwmline.c, lwgeom/lwmpoint.c, lwgeom/lwmpoly.c,
+	  lwgeom/lwpoint.c, lwgeom/lwpoly.c: Added serialize function for
+	  LWGEOM
+
+2004-09-29 10:50  Sandro Santilli <strk at keybit.net>
+
+	* [r909] lwgeom/Makefile, lwgeom/liblwgeom.h,
+	  lwgeom/lwcollection.c, lwgeom/lwgeom.c, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_box.c,
+	  lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_box3d.c,
+	  lwgeom/lwgeom_btree.c, lwgeom/lwgeom_chip.c,
+	  lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwgeom_gml.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h,
+	  lwgeom/lwgeom_spheroid.c, lwgeom/lwgeom_svg.c,
+	  lwgeom/lwgeom_transform.c, lwgeom/lwline.c, lwgeom/lwmline.c,
+	  lwgeom/lwmpoint.c, lwgeom/lwmpoly.c, lwgeom/lwpoint.c,
+	  lwgeom/lwpoly.c: Big layout change.
 	  lwgeom.h is public API
 	  liblwgeom.h is private header
 	  lwgeom_pg.h is for PG-links
 	  lw<type>.c contains type-specific functions
 
-2004-09-29 06:31  strk
+2004-09-29 06:31  Sandro Santilli <strk at keybit.net>
 
-	* Changed LWGEOM to PG_LWGEOM.
+	* [r908] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwgeom_box3d.c,
+	  lwgeom/lwgeom_btree.c, lwgeom/lwgeom_chip.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_gml.c, lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwgeom_spheroid.c, lwgeom/lwgeom_svg.c,
+	  lwgeom/lwgeom_transform.c: Changed LWGEOM to PG_LWGEOM.
 	  Changed LWGEOM_construct to PG_LWGEOM_construct.
 
-2004-09-28 17:13  strk
+2004-09-28 17:13  Sandro Santilli <strk at keybit.net>
 
-	* Removed ^Ms, added note about flatting nature of LWGEOM_EXPLODED.
+	* [r907] lwgeom/lwgeom.h: Removed ^Ms, added note about flatting
+	  nature of LWGEOM_EXPLODED.
 
-2004-09-28 16:22  strk
+2004-09-28 16:22  Sandro Santilli <strk at keybit.net>
 
-	* Added AsGML function ref
+	* [r906] doc/postgis.xml: Added AsGML function ref
 
-2004-09-28 09:31  strk
+2004-09-28 09:31  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in PostGIS2GEOS_point
+	* [r905] lwgeom/lwgeom_geos_wrapper.cpp: Fixed a bug in
+	  PostGIS2GEOS_point
 
-2004-09-28 09:05  strk
+2004-09-28 09:05  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r904] lwgeom/TODO: updated
 
-2004-09-28 09:01  strk
+2004-09-28 09:01  Sandro Santilli <strk at keybit.net>
 
-	* Added forceRHR() and support functions.
+	* [r903] lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in:
+	  Added forceRHR() and support functions.
 
-2004-09-28 09:00  strk
+2004-09-28 09:00  Sandro Santilli <strk at keybit.net>
 
-	* Added ptarray_isccw(). Added extern modifiers to public
-	  prototypes.
+	* [r902] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: Added
+	  ptarray_isccw(). Added extern modifiers to public prototypes.
 
-2004-09-28 08:28  strk
+2004-09-28 08:28  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r901] lwgeom/TODO: updated
 
-2004-09-28 08:22  strk
+2004-09-28 08:22  Sandro Santilli <strk at keybit.net>
 
-	* Added reverse(geometry) and support functions
+	* [r900] lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in:
+	  Added reverse(geometry) and support functions
 
-2004-09-28 08:21  strk
+2004-09-28 08:21  Sandro Santilli <strk at keybit.net>
 
-	* Added some const modifiers
+	* [r899] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: Added some const
+	  modifiers
 
-2004-09-27 17:27  strk
+2004-09-27 17:27  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r898] lwgeom/TODO: updated
 
-2004-09-27 08:26  strk
+2004-09-27 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Debugging defines set to NODEBUG.
+	* [r897] lwgeom/lwgeom_estimate.c, lwgeom/lwgeom_gist.c,
+	  lwgeom/profile.h: Debugging defines set to NODEBUG.
 
-2004-09-27 08:24  strk
+2004-09-27 08:24  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r896] utils/README: updated
 
-2004-09-27 08:23  strk
+2004-09-27 08:23  Sandro Santilli <strk at keybit.net>
 
-	* Added USE_GIST variable on top of file. Changed true values
-	  report
+	* [r895] utils/profile_intersects.pl: Added USE_GIST variable on
+	  top of file. Changed true values report
 	  as fraction of total rows.
 
-2004-09-24 22:27  strk
+2004-09-24 22:27  Sandro Santilli <strk at keybit.net>
 
-	* Added profile.h deps
+	* [r894] lwgeom/Makefile: Added profile.h deps
 
-2004-09-24 12:20  strk
+2004-09-24 12:20  Sandro Santilli <strk at keybit.net>
 
-	* Added worst and best percentile for both intersects and distance
+	* [r893] utils/profile_intersects.pl: Added worst and best
+	  percentile for both intersects and distance
 
-2004-09-24 11:58  strk
+2004-09-24 11:58  Sandro Santilli <strk at keybit.net>
 
-	* approximated nums to 2 decimal digits
+	* [r892] utils/profile_intersects.pl: approximated nums to 2
+	  decimal digits
 
-2004-09-24 11:35  strk
+2004-09-24 11:35  Sandro Santilli <strk at keybit.net>
 
-	* initial intersects profiler frontend implementation
+	* [r891] utils/profile_intersects.pl: initial intersects profiler
+	  frontend implementation
 
-2004-09-24 09:46  strk
+2004-09-24 09:46  Sandro Santilli <strk at keybit.net>
 
-	* Added box2d->geometry cast.
+	* [r890] lwgeom/lwgeom_box2dfloat4.c, lwgeom/lwpostgis.sql.in:
+	  Added box2d->geometry cast.
 
-2004-09-23 16:14  strk
+2004-09-23 16:14  Sandro Santilli <strk at keybit.net>
 
-	* Added -m / -z switches to control output type: XYM,XYMZ.
+	* [r889] loader/pgsql2shp.c: Added -m / -z switches to control
+	  output type: XYM,XYMZ.
 
-2004-09-23 15:09  strk
+2004-09-23 15:09  Sandro Santilli <strk at keybit.net>
 
-	* Modified GML output as suggested by Martin Daly.
+	* [r888] lwgeom/lwgeom_gml.c, lwgeom/lwpostgis.sql.in: Modified GML
+	  output as suggested by Martin Daly.
 
-2004-09-23 11:12  strk
+2004-09-23 11:12  Sandro Santilli <strk at keybit.net>
 
-	* Initial GML output routines.
+	* [r887] lwgeom/Makefile, lwgeom/lwgeom_gml.c,
+	  lwgeom/lwpostgis.sql.in: Initial GML output routines.
 
-2004-09-23 10:13  strk
+2004-09-23 10:13  Sandro Santilli <strk at keybit.net>
 
-	* Profile output modified again, input geoms points and conversion
-	  times separated
+	* [r886] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/profile.h: Profile output modified again, input geoms
+	  points and conversion times separated
 
-2004-09-22 17:13  strk
+2004-09-22 17:13  Sandro Santilli <strk at keybit.net>
 
-	* indentation fixes
+	* [r885] lwgeom/lwgeom_api.c: indentation fixes
 
-2004-09-22 17:12  strk
+2004-09-22 17:12  Sandro Santilli <strk at keybit.net>
 
-	* indentation and function-call-debugging preparation
+	* [r884] lwgeom/lwgeom_gist.c: indentation and
+	  function-call-debugging preparation
 
-2004-09-22 17:11  strk
+2004-09-22 17:11  Sandro Santilli <strk at keybit.net>
 
-	* removed some compiler warnings
+	* [r883] lwgeom/lwgeom_functions_analytic.c: removed some compiler
+	  warnings
 
-2004-09-22 17:11  strk
+2004-09-22 17:11  Sandro Santilli <strk at keybit.net>
 
-	* Added missing prototype to make compiler happy
+	* [r882] lwgeom/lwgeom_functions_basic.c: Added missing prototype
+	  to make compiler happy
 
-2004-09-22 16:52  strk
+2004-09-22 16:52  Sandro Santilli <strk at keybit.net>
 
-	* Added lwpoint_size, lwline_size, lwpoly_size for computing
+	* [r881] lwgeom/TODO, lwgeom/lwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_basic.c: Added lwpoint_size, lwline_size,
+	  lwpoly_size for computing
 	  serialized size from deserialized objects.
 
-2004-09-22 16:29  strk
+2004-09-22 16:29  Sandro Santilli <strk at keybit.net>
 
-	* Some more source file cleanups.
+	* [r880] lwgeom/lwgeom.h: Some more source file cleanups.
 
-2004-09-22 16:09  strk
+2004-09-22 16:09  Sandro Santilli <strk at keybit.net>
 
-	* Moved size computation functions in module static scope.
+	* [r879] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_basic.c: Moved size computation functions
+	  in module static scope.
 	  Renamed public one to lwgeom_size(char *).
 
-2004-09-22 15:15  strk
+2004-09-22 15:15  Sandro Santilli <strk at keybit.net>
 
-	* lw<type>_findlength function made statics of lwgeom_api.c.
+	* [r878] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: lw<type>_findlength
+	  function made statics of lwgeom_api.c.
 	  public functions with those names should accept LW<TYPE> pointers
 	  instead..
 
-2004-09-22 15:11  strk
+2004-09-22 15:11  Sandro Santilli <strk at keybit.net>
 
-	* LWGEOM TODO moved back to the lwgeom/ dir.
+	* [r877] TODO.lwgeom, lwgeom/TODO: LWGEOM TODO moved back to the
+	  lwgeom/ dir.
 
-2004-09-22 14:57  strk
+2004-09-22 14:57  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r876] lwgeom/MISSING_OBJECTS: updated
 
-2004-09-22 14:57  strk
+2004-09-22 14:57  Sandro Santilli <strk at keybit.net>
 
-	* line_interpolate_point added.
+	* [r875] lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwpostgis.sql.in: line_interpolate_point added.
 
-2004-09-22 14:56  strk
+2004-09-22 14:56  Sandro Santilli <strk at keybit.net>
 
-	* fixed a comment
+	* [r874] lwgeom/lwgeom.h: fixed a comment
 
-2004-09-22 13:45  strk
+2004-09-22 13:45  Sandro Santilli <strk at keybit.net>
 
-	* Added 'label' argument to the profreport macro.
+	* [r873] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/profile.h: Added 'label' argument to the profreport macro.
 
-2004-09-22 11:42  strk
+2004-09-22 11:42  Sandro Santilli <strk at keybit.net>
 
-	* Renamed lwgeom_npoints_recursive to lwgeom_npoints and exposed in
+	* [r872] lwgeom/lwgeom.h, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_geos.c, lwgeom/profile.h: Renamed
+	  lwgeom_npoints_recursive to lwgeom_npoints and exposed in
 	  lwgeom.h.
 	  Changed SERIALIZED_FORM macro to be less LWGEOM structure aware.
 	  Added profiling header file.
 	  Modified profiling calls to include total query time.
 	  Initial profiling support in the mindistance function.
 
-2004-09-22 04:48  pramsey
+2004-09-22 04:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add number nesting to sections. Fix link in postgis.xml
+	* [r871] doc/Makefile, doc/postgis.xml: Add number nesting to
+	  sections. Fix link in postgis.xml
 
-2004-09-21 21:04  strk
+2004-09-21 21:04  Sandro Santilli <strk at keybit.net>
 
-	* slightly changed PROF_SUM output for sort acceptance
+	* [r870] lwgeom/lwgeom_geos.c: slightly changed PROF_SUM output for
+	  sort acceptance
 
-2004-09-21 20:44  strk
+2004-09-21 20:44  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a profiler bug.
+	* [r869] lwgeom/lwgeom_geos.c: Fixed a profiler bug.
 	  Added points count and doubled profiler output.
 
-2004-09-21 19:10  pramsey
+2004-09-21 19:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add section autolabelling to printed output
+	* [r868] doc/Makefile: Add section autolabelling to printed output
 
-2004-09-21 19:09  pramsey
+2004-09-21 19:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add autolabelling to sections in generated HTML.
+	* [r867] doc/Makefile: Add autolabelling to sections in generated
+	  HTML.
 
-2004-09-21 17:50  strk
+2004-09-21 17:50  Sandro Santilli <strk at keybit.net>
 
-	* Added missing profiling report calls in predicates
+	* [r866] lwgeom/lwgeom_geos.c: Added missing profiling report calls
+	  in predicates
 
-2004-09-21 17:36  strk
+2004-09-21 17:36  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOS profiling support.
+	* [r865] lwgeom/lwgeom_geos.c: Added GEOS profiling support.
 
-2004-09-21 16:08  strk
+2004-09-21 16:08  Sandro Santilli <strk at keybit.net>
 
-	* reduced memory copies in GEOS2POSTGIS()
+	* [r864] lwgeom/lwgeom_geos.c: reduced memory copies in
+	  GEOS2POSTGIS()
 
-2004-09-21 16:07  strk
+2004-09-21 16:07  Sandro Santilli <strk at keybit.net>
 
-	* buffer serialized accept NULL as return-size pointer
+	* [r863] lwgeom/lwgeom_api.c: buffer serialized accept NULL as
+	  return-size pointer
 
-2004-09-21 15:44  strk
+2004-09-21 15:44  Sandro Santilli <strk at keybit.net>
 
-	* Added lwgeom_empy_length(), lwgeom_constructempty_buf(),
+	* [r862] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: Added
+	  lwgeom_empy_length(), lwgeom_constructempty_buf(),
 	  lwexploded_serialize_buf()
 
-2004-09-21 10:57  strk
+2004-09-21 10:57  Sandro Santilli <strk at keybit.net>
 
-	* Added lwexploded_findlength
+	* [r861] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: Added
+	  lwexploded_findlength
 
-2004-09-20 21:13  strk
+2004-09-20 21:13  Sandro Santilli <strk at keybit.net>
 
-	* Optimized postgis->geos conversion
+	* [r860] lwgeom/lwgeom_geos_wrapper.cpp: Optimized postgis->geos
+	  conversion
 
-2004-09-20 21:13  strk
+2004-09-20 21:13  Sandro Santilli <strk at keybit.net>
 
-	* commented pfree call in GEOSnoop (seems to generate memory
-	  faults)
+	* [r859] lwgeom/lwgeom_geos.c: commented pfree call in GEOSnoop
+	  (seems to generate memory faults)
 
-2004-09-20 17:14  strk
+2004-09-20 17:14  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r858] TODO.lwgeom: updated
 
-2004-09-20 17:13  strk
+2004-09-20 17:13  Sandro Santilli <strk at keybit.net>
 
-	* changed comments to better show shape type handling
+	* [r857] loader/shp2pgsql.c: changed comments to better show shape
+	  type handling
 
-2004-09-20 17:11  strk
+2004-09-20 17:11  Sandro Santilli <strk at keybit.net>
 
-	* Added -d -d availability notice in help string.
+	* [r856] loader/pgsql2shp.c: Added -d -d availability notice in
+	  help string.
 	  Added user notice about output shape type.
 
-2004-09-20 17:03  strk
+2004-09-20 17:03  Sandro Santilli <strk at keybit.net>
 
-	* Added force_4d(geometry)
+	* [r855] doc/postgis.xml, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in: Added
+	  force_4d(geometry)
 
-2004-09-20 16:33  strk
+2004-09-20 16:33  Sandro Santilli <strk at keybit.net>
 
-	* Added 4d geometries support.
+	* [r854] loader/pgsql2shp.c: Added 4d geometries support.
 	  Changelog section moved at bottom file.
 
-2004-09-20 14:14  strk
+2004-09-20 14:14  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in popbyte. Trapped WKB endiannes errors.
+	* [r852] loader/pgsql2shp.c: Fixed a bug in popbyte. Trapped WKB
+	  endiannes errors.
 
-2004-09-20 13:50  strk
+2004-09-20 13:50  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r851] TODO.lwgeom: updated
 
-2004-09-20 13:49  strk
+2004-09-20 13:49  Sandro Santilli <strk at keybit.net>
 
-	* Postgis-1.x support (LWGEOM) added.
+	* [r850] loader/pgsql2shp.c: Postgis-1.x support (LWGEOM) added.
 	  postgis version detected at runtime.
 	  Endiannes unchecked ... TODO.
 
-2004-09-20 12:07  strk
+2004-09-20 12:07  Sandro Santilli <strk at keybit.net>
 
-	* Changed postgis.sql to lwpostgis.sql
+	* [r849] README.postgis: Changed postgis.sql to lwpostgis.sql
 
-2004-09-20 12:07  strk
+2004-09-20 12:07  Sandro Santilli <strk at keybit.net>
 
-	* Added lwpostgis.sql rule
+	* [r848] Makefile: Added lwpostgis.sql rule
 
-2004-09-20 10:58  strk
+2004-09-20 10:58  Sandro Santilli <strk at keybit.net>
 
-	* updated layout description and configuration instructions
+	* [r847] README.postgis: updated layout description and
+	  configuration instructions
 
-2004-09-20 10:09  strk
+2004-09-20 10:09  Sandro Santilli <strk at keybit.net>
 
-	* Renamed README
+	* [r846] lwgeom/README, lwgeom/README.initial: Renamed README
 
-2004-09-20 10:08  strk
+2004-09-20 10:08  Sandro Santilli <strk at keybit.net>
 
-	* Added missing 'uninstall' rules. Fixed existing install rules.
+	* [r845] Makefile, Makefile.config, loader/Makefile,
+	  lwgeom/Makefile: Added missing 'uninstall' rules. Fixed existing
+	  install rules.
 
-2004-09-20 09:58  strk
+2004-09-20 09:58  Sandro Santilli <strk at keybit.net>
 
-	* Configuration and common Makefile work moved to Makefile.config
+	* [r844] Makefile, Makefile.config, hwgeom/Makefile,
+	  loader/Makefile, lwgeom/Makefile: Configuration and common
+	  Makefile work moved to Makefile.config
 	  Build is possible from each directory and from the root
 	  directory.
 
-2004-09-20 09:29  strk
+2004-09-20 09:29  Sandro Santilli <strk at keybit.net>
 
-	* added missing prototype
+	* [r843] lwgeom/lwgeom_inout.c: added missing prototype
 
-2004-09-20 09:22  strk
+2004-09-20 09:22  Sandro Santilli <strk at keybit.net>
 
-	* Reworked build scripts.
+	* [r842] Makefile, hwgeom/Makefile, lwgeom/Makefile: Reworked build
+	  scripts.
 
-2004-09-20 09:21  strk
+2004-09-20 09:21  Sandro Santilli <strk at keybit.net>
 
-	* fixed bugs in non-GEOS centroid function
+	* [r841] lwgeom/lwgeom_functions_basic.c: fixed bugs in non-GEOS
+	  centroid function
 
-2004-09-20 09:20  strk
+2004-09-20 09:20  Sandro Santilli <strk at keybit.net>
 
-	* cleanups
+	* [r840] lwgeom/lwgeom_api.c: cleanups
 
-2004-09-20 08:53  strk
+2004-09-20 08:53  Sandro Santilli <strk at keybit.net>
 
-	* generalized library ignore line
+	* [r839] lwgeom, lwgeom/.cvsignore: generalized library ignore line
 
-2004-09-20 08:52  strk
+2004-09-20 08:52  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_geos_version.h
+	* [r838] lwgeom, lwgeom/.cvsignore: Added postgis_geos_version.h
 
-2004-09-20 08:52  strk
+2004-09-20 08:52  Sandro Santilli <strk at keybit.net>
 
-	* included local postgis_geos_version.h
+	* [r837] lwgeom/lwgeom_geos_wrapper.cpp: included local
+	  postgis_geos_version.h
 
-2004-09-20 08:51  strk
+2004-09-20 08:51  Sandro Santilli <strk at keybit.net>
 
-	* Added detect_geos_version rule
+	* [r836] lwgeom/Makefile: Added detect_geos_version rule
 
-2004-09-20 08:29  strk
+2004-09-20 08:29  Sandro Santilli <strk at keybit.net>
 
-	* Moved lwgeom TODO in the root
+	* [r835] TODO.lwgeom, lwgeom/TODO: Moved lwgeom TODO in the root
 
-2004-09-20 08:25  strk
+2004-09-20 08:25  Sandro Santilli <strk at keybit.net>
 
-	* HWGEOM functions moved under hwgeom/ directory
+	* [r834] Makefile, postgis.h, postgis.sql.in, postgis_algo.c,
+	  postgis_chip.c, postgis_debug.c, postgis_estimate.c,
+	  postgis_fn.c, postgis_geos.c, postgis_geos_wrapper.cpp,
+	  postgis_gist_71.c, postgis_gist_72.c, postgis_inout.c,
+	  postgis_ops.c, postgis_proj.c, postgis_svg.c,
+	  postgis_transform.c: HWGEOM functions moved under hwgeom/
+	  directory
 
-2004-09-20 08:21  strk
+2004-09-20 08:21  Sandro Santilli <strk at keybit.net>
 
-	* fixed typo
+	* [r833] utils/postgis_restore.pl: fixed typo
 
-2004-09-20 07:50  strk
+2004-09-20 07:50  Sandro Santilli <strk at keybit.net>
 
-	* prepared to contain old internal representation code
+	* [r832] hwgeom, hwgeom/Makefile, hwgeom/postgis.h,
+	  hwgeom/postgis.sql.in, hwgeom/postgis_algo.c,
+	  hwgeom/postgis_chip.c, hwgeom/postgis_debug.c,
+	  hwgeom/postgis_estimate.c, hwgeom/postgis_fn.c,
+	  hwgeom/postgis_geos.c, hwgeom/postgis_geos_wrapper.cpp,
+	  hwgeom/postgis_gist_71.c, hwgeom/postgis_gist_72.c,
+	  hwgeom/postgis_inout.c, hwgeom/postgis_ops.c,
+	  hwgeom/postgis_proj.c, hwgeom/postgis_svg.c,
+	  hwgeom/postgis_transform.c: prepared to contain old internal
+	  representation code
 
-2004-09-18 22:15  strk
+2004-09-18 22:15  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a serius bug in pointArray_construct.
+	* [r831] lwgeom/lwgeom_api.c: Fixed a serius bug in
+	  pointArray_construct.
 	  Added debugging output, optimized some functions, indentation
 	  buties..
 
-2004-09-18 22:13  strk
+2004-09-18 22:13  Sandro Santilli <strk at keybit.net>
 
-	* Added more debugging output
+	* [r830] lwgeom/lwgeom_gist.c: Added more debugging output
 
-2004-09-16 20:36  pramsey
+2004-09-16 20:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reorganize OpenGIS function reference into categories.
+	* [r829] doc/postgis.xml: Reorganize OpenGIS function reference
+	  into categories.
 
-2004-09-16 15:50  mleslie
+2004-09-16 15:50  Mark Leslie <mark.s.leslie at gmail.com>
 
-	* Added the distance_sphere function to calculate the distance
-	  between two points
+	* [r828] CREDITS, postgis.h, postgis.sql.in, postgis_proj.c: Added
+	  the distance_sphere function to calculate the distance between
+	  two points
 	  on an earth-sized sphere using an algorithm implemented by Bruno
 	  Wolff III.
 	  Added the postgresql loader function.
 
-2004-09-16 10:42  strk
+2004-09-16 10:42  Sandro Santilli <strk at keybit.net>
 
-	* Added box3d_to_box2df_p to reduce number of required memcpys
+	* [r827] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: Added
+	  box3d_to_box2df_p to reduce number of required memcpys
 
-2004-09-16 09:06  strk
+2004-09-16 09:06  Sandro Santilli <strk at keybit.net>
 
-	* Changed SPI_cursor_open call changes to be used for USE_VERSION >
-	  80
+	* [r826] lwgeom/lwgeom_estimate.c: Changed SPI_cursor_open call
+	  changes to be used for USE_VERSION > 80
 	  (change seems to be intended for future releases)
 
-2004-09-16 09:05  strk
+2004-09-16 09:05  Sandro Santilli <strk at keybit.net>
 
-	* Added binary predicate short-circuits
+	* [r825] lwgeom/lwgeom_geos.c: Added binary predicate
+	  short-circuits
 
-2004-09-16 09:05  strk
+2004-09-16 09:05  Sandro Santilli <strk at keybit.net>
 
-	* Added getbox2d_internal
+	* [r824] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: Added
+	  getbox2d_internal
 
-2004-09-16 09:04  strk
+2004-09-16 09:04  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r823] lwgeom/TODO: updated
 
-2004-09-14 12:31  strk
+2004-09-14 12:31  Sandro Santilli <strk at keybit.net>
 
-	* CHIP and GEOS types (forgot to add)
+	* [r821] lwgeom/lwgeom_chip.c, lwgeom/lwgeom_geos_wrapper.cpp: CHIP
+	  and GEOS types (forgot to add)
 
-2004-09-14 12:23  strk
+2004-09-14 12:23  Sandro Santilli <strk at keybit.net>
 
-	* Added a note about tweeking random_page_cost
+	* [r819] doc/postgis.xml: Added a note about tweeking
+	  random_page_cost
 
-2004-09-14 08:39  strk
+2004-09-14 08:39  Sandro Santilli <strk at keybit.net>
 
-	* fixed a typo in the geometry_send function definition
+	* [r818] lwgeom/lwpostgis.sql.in: fixed a typo in the geometry_send
+	  function definition
 
-2004-09-14 07:43  strk
+2004-09-14 07:43  Sandro Santilli <strk at keybit.net>
 
-	* Updated call to SPI_cursor_open to 8.0 (beta2) interface.
+	* [r816] lwgeom/lwgeom_estimate.c: Updated call to SPI_cursor_open
+	  to 8.0 (beta2) interface.
 
-2004-09-13 19:04  strk
+2004-09-13 19:04  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r815] lwgeom/TODO: updated
 
-2004-09-13 17:59  strk
+2004-09-13 17:59  Sandro Santilli <strk at keybit.net>
 
-	* removed old files from Attic/
+	* [r813] Attic: removed old files from Attic/
 
-2004-09-13 15:37  pramsey
+2004-09-13 15:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added pdf rule that uses pdfxmltex
+	* [r810] doc/Makefile: Added pdf rule that uses pdfxmltex
 
-2004-09-13 14:26  strk
+2004-09-13 14:26  Sandro Santilli <strk at keybit.net>
 
-	* Added binary input/output function for type geometry.
+	* [r808] lwgeom/lwgeom_inout.c, lwgeom/lwpostgis.sql.in: Added
+	  binary input/output function for type geometry.
 
-2004-09-13 14:26  strk
+2004-09-13 14:26  Sandro Santilli <strk at keybit.net>
 
-	* indentation fix
+	* [r807] postgis_svg.c: indentation fix
 
-2004-09-13 13:35  strk
+2004-09-13 13:35  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r806] lwgeom/MISSING_OBJECTS: updated
 
-2004-09-13 13:32  strk
+2004-09-13 13:32  Sandro Santilli <strk at keybit.net>
 
-	* Added AsSVG().
+	* [r805] lwgeom/Makefile, lwgeom/lwgeom_svg.c,
+	  lwgeom/lwpostgis.sql.in: Added AsSVG().
 
-2004-09-13 08:48  strk
+2004-09-13 08:48  Sandro Santilli <strk at keybit.net>
 
-	* Added POINT rendering info for AsSVG function
+	* [r804] doc/postgis.xml: Added POINT rendering info for AsSVG
+	  function
 
-2004-09-10 18:41  pramsey
+2004-09-10 18:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Bump version numbers to 0.9.0
+	* [r803] Makefile: Bump version numbers to 0.9.0
 
-2004-09-10 16:41  pramsey
+2004-09-10 16:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added 'recommended' to proj/geos flags
+	* [r802] Makefile: Added 'recommended' to proj/geos flags
 
-2004-09-10 16:19  pramsey
+2004-09-10 16:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Note 8.0 support and w32
+	* [r801] CHANGES: Note 8.0 support and w32
 
-2004-09-10 16:16  pramsey
+2004-09-10 16:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added Log tag to header.
+	* [r800] postgis_svg.c: Added Log tag to header.
 
-2004-09-10 15:52  strk
+2004-09-10 15:52  Sandro Santilli <strk at keybit.net>
 
-	* Added asSVG documentation
+	* [r799] doc/postgis.xml: Added asSVG documentation
 
-2004-09-10 13:26  strk
+2004-09-10 13:26  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r798] lwgeom/MISSING_OBJECTS: updated
 
-2004-09-10 13:25  strk
+2004-09-10 13:25  Sandro Santilli <strk at keybit.net>
 
-	* fixed a memory fault
+	* [r797] postgis_svg.c: fixed a memory fault
 
-2004-09-10 12:49  strk
+2004-09-10 12:49  Sandro Santilli <strk at keybit.net>
 
-	* Included SVG output function, modified to have precision
-	  expressed
+	* [r796] Makefile, postgis.sql.in, postgis_svg.c: Included SVG
+	  output function, modified to have precision expressed
 	  in terms of significant digits.
 
-2004-09-10 08:48  strk
+2004-09-10 08:48  Sandro Santilli <strk at keybit.net>
 
-	* Added all ..FromWKB functions, asbinary(geom) and bytea<->geom
-	  casts
+	* [r795] lwgeom/MISSING_OBJECTS, lwgeom/lwpostgis.sql.in: Added all
+	  ..FromWKB functions, asbinary(geom) and bytea<->geom casts
 
-2004-09-10 07:36  strk
+2004-09-10 07:36  Sandro Santilli <strk at keybit.net>
 
-	* asbinary(), geomfromwkb
+	* [r794] lwgeom/lwgeom_inout.c, lwgeom/lwpostgis.sql.in:
+	  asbinary(), geomfromwkb
 
-2004-09-09 22:48  pramsey
+2004-09-09 22:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changes in preparation for 0.9
+	* [r793] CHANGES, CREDITS, README.postgis, TODO: Changes in
+	  preparation for 0.9
 
-2004-09-09 20:51  pramsey
+2004-09-09 20:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix silly entity handling in chunked mode HTML generation
+	* [r792] doc/Makefile: Fix silly entity handling in chunked mode
+	  HTML generation
 
-2004-09-09 19:08  pramsey
+2004-09-09 19:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added FAQ for mapserver section and entries on SQL spatial
-	  queries.
+	* [r791] doc/postgis.xml: Added FAQ for mapserver section and
+	  entries on SQL spatial queries.
 
-2004-09-09 17:38  pramsey
+2004-09-09 17:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added example spatial SQL section.
+	* [r790] doc/Makefile, doc/postgis.xml: Added example spatial SQL
+	  section.
 
-2004-09-09 15:37  pramsey
+2004-09-09 15:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add --output flag to html build rule
+	* [r789] doc/Makefile: Add --output flag to html build rule
 
-2004-09-08 16:34  strk
+2004-09-08 16:34  Sandro Santilli <strk at keybit.net>
 
-	* some bug fixes... geometry_analyze added
+	* [r788] lwgeom/TODO, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwpostgis.sql.in: some bug fixes... geometry_analyze added
 
-2004-09-08 14:30  strk
+2004-09-08 14:30  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in GEOS link reference
+	* [r787] doc/postgis.xml: Fixed bug in GEOS link reference
 
-2004-09-08 14:27  strk
+2004-09-08 14:27  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r786] lwgeom/MISSING_OBJECTS: updated
 
-2004-09-08 14:19  strk
+2004-09-08 14:19  Sandro Santilli <strk at keybit.net>
 
-	* Added segmentize()
+	* [r785] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in: Added
+	  segmentize()
 
-2004-09-08 14:18  strk
+2004-09-08 14:18  Sandro Santilli <strk at keybit.net>
 
-	* Added segmentize(geom,double) documentation
+	* [r784] doc/postgis.xml: Added segmentize(geom,double)
+	  documentation
 
-2004-09-08 10:57  strk
+2004-09-08 10:57  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r783] lwgeom/MISSING_OBJECTS: updated
 
-2004-09-08 10:44  strk
+2004-09-08 10:44  Sandro Santilli <strk at keybit.net>
 
-	* re-introduced 'jw' optional production method
+	* [r782] doc/Makefile: re-introduced 'jw' optional production
+	  method
 
-2004-09-08 10:25  strk
+2004-09-08 10:25  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in the z() function.
+	* [r781] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwpostgis.sql.in: Fixed a bug in the
+	  z() function.
 	  Added ! GEOS implementation of Centroid().
 
-2004-09-08 00:31  pramsey
+2004-09-08 00:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Commit today's edits.
+	* [r780] doc/postgis.xml: Commit today's edits.
 
-2004-09-07 22:40  pramsey
+2004-09-07 22:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make default html output be a single page.
+	* [r779] doc/Makefile: Make default html output be a single page.
 
-2004-09-07 22:35  pramsey
+2004-09-07 22:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change chunking depth to "chapter".
+	* [r778] doc/Makefile: Change chunking depth to "chapter".
 
-2004-09-07 22:28  pramsey
+2004-09-07 22:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More minor editorial changes.
+	* [r777] doc/postgis.xml: More minor editorial changes.
 
-2004-09-07 22:28  pramsey
+2004-09-07 22:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed Docbook processing from DSSSL to XSL.
+	* [r776] doc/Makefile: Changed Docbook processing from DSSSL to
+	  XSL.
 
-2004-09-07 17:04  strk
+2004-09-07 17:04  Sandro Santilli <strk at keybit.net>
 
-	* GEOS support added.
+	* [r775] lwgeom/MISSING_OBJECTS, lwgeom/Makefile, lwgeom/TODO,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_geos.c, lwgeom/lwpostgis.sql.in: GEOS support
+	  added.
 
-2004-09-07 07:47  strk
+2004-09-07 07:47  Sandro Santilli <strk at keybit.net>
 
-	* Added CHIP type and support funx
+	* [r774] lwgeom/MISSING_OBJECTS, lwgeom/Makefile, lwgeom/lwgeom.h,
+	  lwgeom/lwpostgis.sql.in: Added CHIP type and support funx
 
-2004-09-06 16:18  strk
+2004-09-06 16:18  Sandro Santilli <strk at keybit.net>
 
-	* updated some comments
+	* [r773] lwgeom/lwgeom.h: updated some comments
 
-2004-09-06 16:05  strk
+2004-09-06 16:05  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r772] lwgeom/MISSING_OBJECTS, lwgeom/TODO: updated
 
-2004-09-06 16:04  strk
+2004-09-06 16:04  Sandro Santilli <strk at keybit.net>
 
-	* Changed getbox2d_p signature to return 0 for EMPTY geometries.
+	* [r771] lwgeom/MISSING_OBJECTS, lwgeom/TODO, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwpostgis.sql.in: Changed getbox2d_p signature to return 0
+	  for EMPTY geometries.
 	  Ported DP simplifier.
 
-2004-09-06 12:24  strk
+2004-09-06 12:24  Sandro Santilli <strk at keybit.net>
 
-	* Added IsEmpty()
+	* [r770] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwpostgis.sql.in: Added IsEmpty()
 
-2004-09-06 10:37  strk
+2004-09-06 10:37  Sandro Santilli <strk at keybit.net>
 
-	* Finished BOX3D functions porting.
+	* [r769] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Finished BOX3D functions porting.
 	  Added envelope() and extent3d().
 
-2004-09-06 09:32  strk
+2004-09-06 09:32  Sandro Santilli <strk at keybit.net>
 
-	* Added min/max coordinates from box2d and box3d.
+	* [r768] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwpostgis.sql.in: Added min/max
+	  coordinates from box2d and box3d.
 	  Made geometry->box3d cast actually use 'z' value.
 
-2004-09-06 09:13  strk
+2004-09-06 09:13  Sandro Santilli <strk at keybit.net>
 
-	* Added box3d support and expand(geom|box2d|box3d, double)
+	* [r767] lwgeom/MISSING_OBJECTS, lwgeom/Makefile, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_box3d.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added box3d support and
+	  expand(geom|box2d|box3d, double)
 
-2004-09-04 19:58  pramsey
+2004-09-04 19:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More minor edits.
+	* [r766] doc/postgis.xml: More minor edits.
 
-2004-08-28 23:00  pramsey
+2004-08-28 23:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Replace all tabs with spaces.
+	* [r765] doc/postgis.xml: Replace all tabs with spaces.
 
-2004-08-28 22:55  pramsey
+2004-08-28 22:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated street address reference.
+	* [r764] doc/postgis.xml: Updated street address reference.
 
-2004-08-28 22:54  pramsey
+2004-08-28 22:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Removed < sign and replaced with <
+	* [r763] doc/postgis.xml: Removed < sign and replaced with <
 
-2004-08-27 16:01  strk
+2004-08-27 16:01  Sandro Santilli <strk at keybit.net>
 
-	* Added geom_accum(), collect_garray() and collect()
+	* [r762] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added geom_accum(), collect_garray() and
+	  collect()
 
-2004-08-27 15:04  strk
+2004-08-27 15:04  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r761] lwgeom/MISSING_OBJECTS, lwgeom/TODO: updated
 
-2004-08-27 15:03  strk
+2004-08-27 15:03  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in lwgeom_explode allocating less memory then needed.
+	* [r760] lwgeom/lwgeom_api.c, lwgeom/lwgeom_functions_basic.c:
+	  Fixed bug in lwgeom_explode allocating less memory then needed.
 
-2004-08-27 14:35  strk
+2004-08-27 14:35  Sandro Santilli <strk at keybit.net>
 
-	* Added LWGEOM_EXPLODED structure definition and utility funx.
+	* [r759] lwgeom/MISSING_OBJECTS, lwgeom/TODO, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwpostgis.sql.in: Added
+	  LWGEOM_EXPLODED structure definition and utility funx.
 	  Added collector() function and memcollect() aggregate.
 	  Still faulting...
 
-2004-08-27 08:13  strk
+2004-08-27 08:13  Sandro Santilli <strk at keybit.net>
 
-	* Added point_inside_circle() and translate()
+	* [r758] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added point_inside_circle() and
+	  translate()
 
-2004-08-27 08:12  strk
+2004-08-27 08:12  Sandro Santilli <strk at keybit.net>
 
-	* Fixed typo ( mem_collect ==> memcollect )
+	* [r757] doc/postgis.xml: Fixed typo ( mem_collect ==> memcollect )
 
-2004-08-26 16:55  strk
+2004-08-26 16:55  Sandro Santilli <strk at keybit.net>
 
-	* max_distance() raises an 'unimplemented yet' error.
+	* [r756] lwgeom/lwgeom_functions_basic.c, postgis_fn.c:
+	  max_distance() raises an 'unimplemented yet' error.
 
-2004-08-26 16:44  strk
+2004-08-26 16:44  Sandro Santilli <strk at keybit.net>
 
-	* Added nrings(geom), multi(geom) and all of <type>FromText(geom,
-	  [srid])
+	* [r755] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added nrings(geom), multi(geom) and all
+	  of <type>FromText(geom, [srid])
 
-2004-08-26 15:04  strk
+2004-08-26 15:04  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r754] lwgeom/TODO: updated
 
-2004-08-26 15:02  strk
+2004-08-26 15:02  Sandro Santilli <strk at keybit.net>
 
-	* Added (bogus) max_distance(geom,geom)
+	* [r753] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added (bogus) max_distance(geom,geom)
 
-2004-08-26 12:55  strk
+2004-08-26 12:55  Sandro Santilli <strk at keybit.net>
 
-	* Added distance(geometry) and all support functions.
+	* [r752] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwpostgis.sql.in: Added
+	  distance(geometry) and all support functions.
 
-2004-08-26 12:54  strk
+2004-08-26 12:54  Sandro Santilli <strk at keybit.net>
 
-	* Added a note about spheroid computation
+	* [r751] lwgeom/TODO: Added a note about spheroid computation
 
-2004-08-26 08:57  strk
+2004-08-26 08:57  Sandro Santilli <strk at keybit.net>
 
-	* Added spheroid type and functions
+	* [r750] lwgeom/MISSING_OBJECTS, lwgeom/Makefile, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_spheroid.c,
+	  lwgeom/lwpostgis.sql.in: Added spheroid type and functions
 
-2004-08-25 15:28  strk
+2004-08-25 15:28  Sandro Santilli <strk at keybit.net>
 
-	* Added IsClosed() and force_collection()
+	* [r749] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwpostgis.sql.in: Added IsClosed()
+	  and force_collection()
 
-2004-08-25 15:26  strk
+2004-08-25 15:26  Sandro Santilli <strk at keybit.net>
 
-	* Added macros for LWGEOM.type manipulation
+	* [r748] lwgeom/lwgeom.h: Added macros for LWGEOM.type manipulation
 
-2004-08-25 13:41  strk
+2004-08-25 13:41  Sandro Santilli <strk at keybit.net>
 
-	* Added force_3d
+	* [r747] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added force_3d
 
-2004-08-25 12:32  strk
+2004-08-25 12:32  Sandro Santilli <strk at keybit.net>
 
-	* Added perimeter,perimeter2d,perimeter3d.
+	* [r746] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added perimeter,perimeter2d,perimeter3d.
 	  Modified length,length2d,length3d semantic.
 	  Added force_2d.
 
-2004-08-25 12:29  strk
+2004-08-25 12:29  Sandro Santilli <strk at keybit.net>
 
-	* Added serialized functions writing to a pre-allocated buffer.
+	* [r745] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: Added serialized
+	  functions writing to a pre-allocated buffer.
 
-2004-08-25 07:29  strk
+2004-08-25 07:29  Sandro Santilli <strk at keybit.net>
 
-	* Moved some OGC functions from lwgeom_inout.c to lwgeom_ogc.c.
+	* [r744] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwpostgis.sql.in: Moved some OGC functions from
+	  lwgeom_inout.c to lwgeom_ogc.c.
 	  Added area2d (area) to lwgeom_functions_basic.c
 
-2004-08-25 07:28  strk
+2004-08-25 07:28  Sandro Santilli <strk at keybit.net>
 
-	* Added lwgeom_pg to contain PG-specific functions/interfaces.
+	* [r743] lwgeom/Makefile, lwgeom/lwgeom_pg.c, lwgeom/lwgeom_pg.h:
+	  Added lwgeom_pg to contain PG-specific functions/interfaces.
 
-2004-08-24 16:33  strk
+2004-08-24 16:33  Sandro Santilli <strk at keybit.net>
 
-	* Added StartPoint(), EndPoint()
+	* [r742] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwpostgis.sql.in: Added StartPoint(), EndPoint()
 
-2004-08-24 16:20  strk
+2004-08-24 16:20  Sandro Santilli <strk at keybit.net>
 
-	* Added X(), Y() and Z() funx
+	* [r741] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwpostgis.sql.in: Added X(), Y() and Z() funx
 
-2004-08-24 15:50  strk
+2004-08-24 15:50  Sandro Santilli <strk at keybit.net>
 
-	* PointN() ported.
+	* [r740] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwpostgis.sql.in: PointN() ported.
 
-2004-08-24 15:10  strk
+2004-08-24 15:10  Sandro Santilli <strk at keybit.net>
 
-	* fixed a bug preventing ExteriorRing() and InteriorRingN from
-	  setting the
+	* [r739] lwgeom/lwgeom_ogc.c: fixed a bug preventing ExteriorRing()
+	  and InteriorRingN from setting the
 	  correct SRID.
 
-2004-08-24 15:07  strk
+2004-08-24 15:07  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r738] lwgeom/TODO: updated
 
-2004-08-24 15:05  strk
+2004-08-24 15:05  Sandro Santilli <strk at keybit.net>
 
-	* Added NumInteriorRings() and InteriorRingN()
+	* [r737] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwpostgis.sql.in: Added NumInteriorRings() and
+	  InteriorRingN()
 
-2004-08-24 14:48  strk
+2004-08-24 14:48  Sandro Santilli <strk at keybit.net>
 
-	* Added dimension() and exteriorring()
+	* [r736] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_ogc.c,
+	  lwgeom/lwpostgis.sql.in: Added dimension() and exteriorring()
 
-2004-08-24 14:47  strk
+2004-08-24 14:47  Sandro Santilli <strk at keybit.net>
 
-	* Added LWGEOM_construct() function to easy the work of dealing
+	* [r735] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: Added
+	  LWGEOM_construct() function to easy the work of dealing
 	  with SRID/BBOX optional embedding.
 
-2004-08-24 13:45  strk
+2004-08-24 13:45  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in lwgeom_getSRID()
+	* [r734] lwgeom/lwgeom_api.c: Fixed a bug in lwgeom_getSRID()
 
-2004-08-24 13:35  strk
+2004-08-24 13:35  Sandro Santilli <strk at keybit.net>
 
-	* Indentation and debugging output.
+	* [r733] lwgeom/lwgeom_api.c: Indentation and debugging output.
 
-2004-08-24 13:34  strk
+2004-08-24 13:34  Sandro Santilli <strk at keybit.net>
 
-	* fixed a typo in a comment
+	* [r732] lwgeom/lwgeom.h: fixed a typo in a comment
 
-2004-08-24 13:33  strk
+2004-08-24 13:33  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in LWGEOM_addBBOX preventing it to detect missing
-	  BBOX embedding.
+	* [r731] lwgeom/lwgeom_inout.c: Fixed a bug in LWGEOM_addBBOX
+	  preventing it to detect missing BBOX embedding.
 
-2004-08-24 10:01  strk
+2004-08-24 10:01  Sandro Santilli <strk at keybit.net>
 
-	* OGC functions (not implemented by GEOS) moved to lwgeom_ogc.c.
+	* [r730] lwgeom/Makefile, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_ogc.c, lwgeom/lwpostgis.sql.in: OGC functions (not
+	  implemented by GEOS) moved to lwgeom_ogc.c.
 	  Renamed PG-exposed functions to start with LWGEOM
 
-2004-08-24 09:34  strk
+2004-08-24 09:34  Sandro Santilli <strk at keybit.net>
 
-	* Added npoints,numpoints,numgeometries,geometryn
+	* [r729] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwpostgis.sql.in: Added
+	  npoints,numpoints,numgeometries,geometryn
 
-2004-08-24 07:40  strk
+2004-08-24 07:40  Sandro Santilli <strk at keybit.net>
 
-	* transformation work made on an input copy (made by setSRID).
+	* [r728] lwgeom/lwgeom_transform.c: transformation work made on an
+	  input copy (made by setSRID).
 	  previous behaviour was unsafe (scribbling input object).
 
-2004-08-24 07:32  strk
+2004-08-24 07:32  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r727] lwgeom/TODO: initial import
 
-2004-08-24 06:59  strk
+2004-08-24 06:59  Sandro Santilli <strk at keybit.net>
 
-	* added missing prototype
+	* [r726] lwgeom/lwgeom_functions_basic.c: added missing prototype
 
-2004-08-24 06:56  strk
+2004-08-24 06:56  Sandro Santilli <strk at keybit.net>
 
-	* geos version detector and wrapper used from parent directory
+	* [r725] lwgeom/Makefile: geos version detector and wrapper used
+	  from parent directory
 
-2004-08-23 16:05  strk
+2004-08-23 16:05  Sandro Santilli <strk at keybit.net>
 
-	* fixed typo
+	* [r724] lwgeom/lwgeom_api.c: fixed typo
 
-2004-08-23 15:57  strk
+2004-08-23 15:57  Sandro Santilli <strk at keybit.net>
 
-	* versioning functions completed
+	* [r723] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwpostgis.sql.in: versioning functions completed
 
-2004-08-23 15:41  strk
+2004-08-23 15:41  Sandro Santilli <strk at keybit.net>
 
-	* changed install rule to install lwpostgis.sql instead of
-	  lwgeom.sql
+	* [r722] lwgeom/Makefile: changed install rule to install
+	  lwpostgis.sql instead of lwgeom.sql
 
-2004-08-23 15:37  strk
+2004-08-23 15:37  Sandro Santilli <strk at keybit.net>
 
-	* Changed SCRIPTS_VERSION to 0.0.1
+	* [r721] Makefile, lwgeom/MISSING_OBJECTS, lwgeom/Makefile,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwpostgis.sql.in, postgis_geos.c: Changed SCRIPTS_VERSION
+	  to 0.0.1
 
-2004-08-23 13:54  strk
+2004-08-23 13:54  Sandro Santilli <strk at keybit.net>
 
-	* proj support added
+	* [r720] lwgeom/MISSING_OBJECTS, lwgeom/Makefile,
+	  lwgeom/lwgeom_transform.c: proj support added
 
-2004-08-23 13:40  strk
+2004-08-23 13:40  Sandro Santilli <strk at keybit.net>
 
-	* deleted debugging block from summary() fn
+	* [r719] lwgeom/lwgeom_functions_basic.c: deleted debugging block
+	  from summary() fn
 
-2004-08-23 13:38  strk
+2004-08-23 13:38  Sandro Santilli <strk at keybit.net>
 
-	* Added getPoint(POINTARRAY *pts, int ptnum)
+	* [r718] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c: Added
+	  getPoint(POINTARRAY *pts, int ptnum)
 
-2004-08-23 10:49  strk
+2004-08-23 10:49  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in serializedform length computation (for
+	* [r717] lwgeom/lwgeom_api.c, lwgeom/lwgeom_functions_basic.c:
+	  Fixed a bug in serializedform length computation (for
 	  collection).
 
-2004-08-23 08:32  strk
+2004-08-23 08:32  Sandro Santilli <strk at keybit.net>
 
-	* Removed custom allocator from lwgeom_api.
+	* [r716] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_functions_basic.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwpostgis.sql.in: Removed custom
+	  allocator from lwgeom_api.
 	  Added summary(geometry).
 	  Some indentation.
 
-2004-08-20 16:36  strk
+2004-08-20 16:36  Sandro Santilli <strk at keybit.net>
 
-	* transform() support
+	* [r715] lwgeom/lwpostgis.sql.in: transform() support
 
-2004-08-20 16:35  strk
+2004-08-20 16:35  Sandro Santilli <strk at keybit.net>
 
-	* initial skel for transform()
+	* [r714] lwgeom/lwgeom_transform.c: initial skel for transform()
 
-2004-08-20 14:54  strk
+2004-08-20 14:54  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r713] lwgeom/MISSING_OBJECTS: updated
 
-2004-08-20 14:54  strk
+2004-08-20 14:54  Sandro Santilli <strk at keybit.net>
 
-	* gist operators support functions renamed to allow for finer
-	  control by postgis_restore.pl
+	* [r712] lwgeom/lwpostgis.sql.in: gist operators support functions
+	  renamed to allow for finer control by postgis_restore.pl
 
-2004-08-20 14:52  strk
+2004-08-20 14:52  Sandro Santilli <strk at keybit.net>
 
-	* Hardcoded some functions being obsoleted
+	* [r711] utils/postgis_restore.pl: Hardcoded some functions being
+	  obsoleted
 
-2004-08-20 14:08  strk
+2004-08-20 14:08  Sandro Santilli <strk at keybit.net>
 
-	* Added Geom{etry,}FromWkb(<geometry>,[<int4>]) funx.
+	* [r710] lwgeom/MISSING_OBJECTS, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_btree.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwpostgis.sql.in: Added
+	  Geom{etry,}FromWkb(<geometry>,[<int4>]) funx.
 	  Added LWGEOM typedef and SERIALIZED_FORM(LWGEOM) macro.
 	  Made lwgeom_setSRID an API function.
 	  Added LWGEOM_setAllocator().
 
-2004-08-20 10:24  strk
+2004-08-20 10:24  Sandro Santilli <strk at keybit.net>
 
-	* Added lwpostgis.sql
+	* [r709] lwgeom, lwgeom/.cvsignore: Added lwpostgis.sql
 
-2004-08-20 10:23  strk
+2004-08-20 10:23  Sandro Santilli <strk at keybit.net>
 
-	* removed leak from mem_size()
+	* [r708] postgis_debug.c: removed leak from mem_size()
 
-2004-08-20 09:35  strk
+2004-08-20 09:35  Sandro Santilli <strk at keybit.net>
 
-	* lwgeom_mem_size uses int32 cast instead of int
+	* [r707] lwgeom/lwgeom_functions_basic.c: lwgeom_mem_size uses
+	  int32 cast instead of int
 
-2004-08-20 09:31  strk
+2004-08-20 09:31  Sandro Santilli <strk at keybit.net>
 
-	* bug fixed in lwgeom_mem_size
+	* [r706] lwgeom/lwgeom_functions_basic.c: bug fixed in
+	  lwgeom_mem_size
 
-2004-08-20 08:14  strk
+2004-08-20 08:14  Sandro Santilli <strk at keybit.net>
 
-	* Whole output wrapped in transaction blocks.
+	* [r705] loader/shp2pgsql.c: Whole output wrapped in transaction
+	  blocks.
 	  Drops are out of transaction, and multiple transactions are used
 	  for INSERT mode.
 
-2004-08-20 07:57  strk
+2004-08-20 07:57  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in 'append-mode'.
+	* [r704] loader/shp2pgsql.c: Fixed a bug in 'append-mode'.
 	  Added -g switch to specify geometry column.
 	  Added a note about -d mode conceptual bugs.
 
-2004-08-19 14:16  strk
+2004-08-19 14:16  Sandro Santilli <strk at keybit.net>
 
-	* indentation fixes
+	* [r703] lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_inout.c:
+	  indentation fixes
 
-2004-08-19 14:15  strk
+2004-08-19 14:15  Sandro Santilli <strk at keybit.net>
 
-	* added lwpostgis.sql build rule
+	* [r702] lwgeom/Makefile: added lwpostgis.sql build rule
 
-2004-08-19 14:05  strk
+2004-08-19 14:05  Sandro Santilli <strk at keybit.net>
 
-	* Added finite coordinate check.
+	* [r701] lwgeom/lwgeom_gist.c: Added finite coordinate check.
 	  Reduced required bounding box copies.
 
-2004-08-19 13:57  strk
+2004-08-19 13:57  Sandro Santilli <strk at keybit.net>
 
-	* mem_size removed from list
+	* [r700] lwgeom/MISSING_OBJECTS: mem_size removed from list
 
-2004-08-19 13:56  strk
+2004-08-19 13:56  Sandro Santilli <strk at keybit.net>
 
-	* Added mem_size(lwgeom)
+	* [r699] lwgeom/lwgeom_functions_basic.c: Added mem_size(lwgeom)
 
-2004-08-19 13:54  strk
+2004-08-19 13:54  Sandro Santilli <strk at keybit.net>
 
-	* cpp checks updated to use 80 instead of 75 for USE_VERSION
+	* [r698] lwgeom/lwgeom_estimate.c, lwgeom/lwpostgis.sql.in: cpp
+	  checks updated to use 80 instead of 75 for USE_VERSION
 
-2004-08-19 13:49  strk
+2004-08-19 13:49  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r697] lwgeom/lwpostgis.sql.in: initial import
 
-2004-08-19 13:21  strk
+2004-08-19 13:21  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r696] lwgeom/MISSING_OBJECTS: initial import
 
-2004-08-19 13:18  strk
+2004-08-19 13:18  Sandro Santilli <strk at keybit.net>
 
-	* Added selectivity estimation
+	* [r695] lwgeom/lwgeom_estimate.c: Added selectivity estimation
 
-2004-08-19 13:16  strk
+2004-08-19 13:16  Sandro Santilli <strk at keybit.net>
 
-	* some indentation fixes
+	* [r694] lwgeom/lwgeom_api.c, lwgeom/lwgeom_box2dfloat4.c: some
+	  indentation fixes
 
-2004-08-19 13:10  strk
+2004-08-19 13:10  Sandro Santilli <strk at keybit.net>
 
-	* fixed typos
+	* [r693] lwgeom/lwgeom_btree.c: fixed typos
 
-2004-08-19 12:29  strk
+2004-08-19 12:29  Sandro Santilli <strk at keybit.net>
 
-	* added btree index support file
+	* [r692] lwgeom/Makefile: added btree index support file
 
-2004-08-19 12:28  strk
+2004-08-19 12:28  Sandro Santilli <strk at keybit.net>
 
-	* added btree index support
+	* [r691] lwgeom/lwgeom_btree.c: added btree index support
 
-2004-08-19 10:52  strk
+2004-08-19 10:52  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in ascii dump "CREATE OPERATOR" scan
+	* [r690] utils/postgis_restore.pl: Fixed a bug in ascii dump
+	  "CREATE OPERATOR" scan
 
-2004-08-19 09:30  strk
+2004-08-19 09:30  Sandro Santilli <strk at keybit.net>
 
-	* rename_geometry_table_constraints() re-introduced to make
+	* [r689] postgis.sql.in: rename_geometry_table_constraints()
+	  re-introduced to make
 	  constraint names conformant.
 
-2004-08-19 09:28  strk
+2004-08-19 09:28  Sandro Santilli <strk at keybit.net>
 
-	* fixed some of the buch of broken comments
+	* [r688] lwgeom/lwgeom.h: fixed some of the buch of broken comments
 
-2004-08-19 06:15  strk
+2004-08-19 06:15  Sandro Santilli <strk at keybit.net>
 
-	* USE_VERSION gets 80 where it got 75
+	* [r687] Makefile, lwgeom/Makefile, lwgeom/lwgeom_gist.c,
+	  postgis.h, postgis.sql.in, postgis_estimate.c, postgis_gist_72.c:
+	  USE_VERSION gets 80 where it got 75
 
-2004-08-19 05:38  pramsey
+2004-08-19 05:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added some references to Proj4 and GEOS utility and source code
-	  location in the Makefile
+	* [r686] Makefile: Added some references to Proj4 and GEOS utility
+	  and source code location in the Makefile
 	  to add context for new users.
 
-2004-08-18 13:46  strk
+2004-08-18 13:46  Sandro Santilli <strk at keybit.net>
 
-	* Added PG80 (75) patches.
+	* [r685] lwgeom/lwgeom_gist.c: Added PG80 (75) patches.
 
-2004-08-18 13:21  strk
+2004-08-18 13:21  Sandro Santilli <strk at keybit.net>
 
-	* Added skip of postgisgistcostestimate (obsoleted)
+	* [r684] utils/postgis_restore.pl: Added skip of
+	  postgisgistcostestimate (obsoleted)
 
-2004-08-18 08:26  strk
+2004-08-18 08:26  Sandro Santilli <strk at keybit.net>
 
-	* Spatial table constraints names get column name appended.
+	* [r683] postgis.sql.in: Spatial table constraints names get column
+	  name appended.
 	  rename_geometry_table_constraints() obsoleted.
 
-2004-08-17 15:27  strk
+2004-08-17 15:27  Sandro Santilli <strk at keybit.net>
 
-	* added extent(lwgeom) and support functions.
+	* [r682] lwgeom/lwgeom.sql.in, lwgeom/lwgeom_functions_basic.c:
+	  added extent(lwgeom) and support functions.
 
-2004-08-17 14:35  strk
+2004-08-17 14:35  Sandro Santilli <strk at keybit.net>
 
-	* SRID(geometry) changed to SRID(lwgeom)
+	* [r681] lwgeom/lwgeom.sql.in: SRID(geometry) changed to
+	  SRID(lwgeom)
 
-2004-08-17 14:30  strk
+2004-08-17 14:30  Sandro Santilli <strk at keybit.net>
 
-	* Initial support for geometry->lwgeom switch (dump objects defined
-	  for
+	* [r680] utils/postgis_restore.pl: Initial support for
+	  geometry->lwgeom switch (dump objects defined for
 	  'geometry' are considered same of sql object defined for
 	  'oldgeometry')
 
-2004-08-17 14:28  strk
+2004-08-17 14:28  Sandro Santilli <strk at keybit.net>
 
-	* Added SRID(geometry) for backward compatibility
+	* [r679] lwgeom/lwgeom.sql.in: Added SRID(geometry) for backward
+	  compatibility
 
-2004-08-17 14:21  strk
+2004-08-17 14:21  Sandro Santilli <strk at keybit.net>
 
-	* Added geometrytype(LWGEOM)
+	* [r678] lwgeom/lwgeom.sql.in, lwgeom/lwgeom_functions_basic.c:
+	  Added geometrytype(LWGEOM)
 
-2004-08-16 20:38  strk
+2004-08-16 20:38  Sandro Santilli <strk at keybit.net>
 
-	* OPERATOR parsing bug fixed. Schema removal improoved. More test
-	  reports.
+	* [r677] utils/postgis_restore.pl: OPERATOR parsing bug fixed.
+	  Schema removal improoved. More test reports.
 
-2004-08-16 11:03  mcayland
+2004-08-16 11:03  Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
 
-	* Added DLLIMPORT reference to "default_statistics_target" if we
-	  are compiling under Win32. This should make it unnecessary to
-	  apply Romi's patch to the PostgreSQL source tree when compiling
-	  PostgreSQL ready for PostGIS.
+	* [r676] postgis_estimate.c: Added DLLIMPORT reference to
+	  "default_statistics_target" if we are compiling under Win32. This
+	  should make it unnecessary to apply Romi's patch to the
+	  PostgreSQL source tree when compiling PostgreSQL ready for
+	  PostGIS.
 
-2004-08-16 10:46  strk
+2004-08-16 10:46  Sandro Santilli <strk at keybit.net>
 
-	* GEOS version extraction not attempted if USE_GEOS is not set to
-	  1.
+	* [r675] Makefile: GEOS version extraction not attempted if
+	  USE_GEOS is not set to 1.
 
-2004-08-13 12:29  strk
+2004-08-13 12:29  Sandro Santilli <strk at keybit.net>
 
-	* Support dump generated by pg_dump 7.4
+	* [r674] utils/postgis_restore.pl: Support dump generated by
+	  pg_dump 7.4
 
-2004-08-11 17:07  strk
+2004-08-11 17:07  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in non-finite Z check
+	* [r673] postgis_inout.c: Fixed a bug in non-finite Z check
 
-2004-08-10 21:09  strk
+2004-08-10 21:09  Sandro Santilli <strk at keybit.net>
 
-	* changed proj version extractor to support pre 4.4.8 releases
+	* [r672] postgis_transform.c: changed proj version extractor to
+	  support pre 4.4.8 releases
 
-2004-08-08 18:10  strk
+2004-08-08 18:10  Sandro Santilli <strk at keybit.net>
 
-	* reduced psql invocation to a single one.
+	* [r671] utils/postgis_restore.pl: reduced psql invocation to a
+	  single one.
 
-2004-08-08 18:09  strk
+2004-08-08 18:09  Sandro Santilli <strk at keybit.net>
 
-	* lwgeom.sql production follow postgis.sql production rules (cpp
-	  usage)
+	* [r670] lwgeom/Makefile, lwgeom/lwgeom.sql.in: lwgeom.sql
+	  production follow postgis.sql production rules (cpp usage)
 
-2004-08-08 18:09  strk
+2004-08-08 18:09  Sandro Santilli <strk at keybit.net>
 
-	* Added missing required parameter to usage string
+	* [r669] create_undef.pl: Added missing required parameter to usage
+	  string
 
-2004-08-07 12:13  strk
+2004-08-07 12:13  Sandro Santilli <strk at keybit.net>
 
-	* more header comments
+	* [r668] utils/postgis_restore.pl: more header comments
 
-2004-08-06 09:54  strk
+2004-08-06 09:54  Sandro Santilli <strk at keybit.net>
 
-	* added handling of operators and operator classes (skip postgis
-	  defined, keep others)
+	* [r667] utils/postgis_restore.pl: added handling of operators and
+	  operator classes (skip postgis defined, keep others)
 
-2004-08-06 08:08  strk
+2004-08-06 08:08  Sandro Santilli <strk at keybit.net>
 
-	* perl detection and bug fixes.
+	* [r666] utils/postgis_restore.pl: perl detection and bug fixes.
 
-2004-08-05 20:00  strk
+2004-08-05 20:00  Sandro Santilli <strk at keybit.net>
 
-	* Another schema support bug from Mark
+	* [r665] loader/shp2pgsql.c: Another schema support bug from Mark
 
-2004-08-05 19:12  strk
+2004-08-05 19:12  Sandro Santilli <strk at keybit.net>
 
-	* fixed bug in automatic perl invokation
+	* [r664] utils/postgis_restore.pl: fixed bug in automatic perl
+	  invokation
 
-2004-08-05 16:53  strk
+2004-08-05 16:53  Sandro Santilli <strk at keybit.net>
 
-	* schema support patches sent by Mark
+	* [r663] loader/pgsql2shp.c, loader/shp2pgsql.c: schema support
+	  patches sent by Mark
 
-2004-08-03 09:41  strk
+2004-08-03 09:41  Sandro Santilli <strk at keybit.net>
 
-	* geometry_columns and spatial_ref_sys back created from dump
+	* [r662] utils/postgis_restore.pl: geometry_columns and
+	  spatial_ref_sys back created from dump
 
-2004-08-03 09:30  strk
+2004-08-03 09:30  Sandro Santilli <strk at keybit.net>
 
-	* Always added 'public' to search_path, to bypass pg_dump loss of
+	* [r661] utils/postgis_restore.pl: Always added 'public' to
+	  search_path, to bypass pg_dump loss of
 	  constrain functions schema.
 	  Added automatic 'perl' invocation.
 	  Reduced output (set $DEBUG=1 to have it back).
 
-2004-08-03 09:29  strk
+2004-08-03 09:29  Sandro Santilli <strk at keybit.net>
 
-	* updated
+	* [r660] utils/README: updated
 
-2004-08-03 07:58  strk
+2004-08-03 07:58  Sandro Santilli <strk at keybit.net>
 
-	* handling of more cases
+	* [r659] utils/postgis_restore.pl: handling of more cases
 
-2004-08-02 19:03  strk
+2004-08-02 19:03  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r658] utils/postgis_restore.pl: initial import
 
-2004-08-02 16:27  strk
+2004-08-02 16:27  Sandro Santilli <strk at keybit.net>
 
-	* Fixed format bugs (needed for postgis_undef.pl to work)
+	* [r657] postgis.sql.in: Fixed format bugs (needed for
+	  postgis_undef.pl to work)
 
-2004-07-29 14:10  strk
+2004-07-29 14:10  Sandro Santilli <strk at keybit.net>
 
-	* Unability to open a shapefile or dbffile reported more nicely.
+	* [r656] loader/shp2pgsql.c: Unability to open a shapefile or
+	  dbffile reported more nicely.
 
-2004-07-28 17:32  strk
+2004-07-28 17:32  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_full_version(), marked postgis_version() as
-	  deprecated.
+	* [r655] doc/postgis.xml: Added postgis_full_version(), marked
+	  postgis_version() as deprecated.
 
-2004-07-28 16:15  strk
+2004-07-28 16:15  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in postgis_full_version()
+	* [r654] postgis.sql.in: Fixed a bug in postgis_full_version()
 
-2004-07-28 16:10  strk
+2004-07-28 16:10  Sandro Santilli <strk at keybit.net>
 
-	* Changed all version functions to return text.
+	* [r653] doc/postgis.xml, postgis.sql.in, postgis_fn.c,
+	  postgis_geos.c, postgis_transform.c: Changed all version
+	  functions to return text.
 	  Renamed postgis_scripts_version() to postgis_scripts_installed()
 	  Added postgis_scripts_released().
 	  Added postgis_full_version().
 
-2004-07-28 13:37  strk
+2004-07-28 13:37  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_uses_stats and postgis_scripts_version.
+	* [r652] doc/postgis.xml, postgis.h, postgis_fn.c, postgis_geos.c:
+	  Added postgis_uses_stats and postgis_scripts_version.
 	  Experimented with PIP short-circuit in within/contains functions.
 	  Documented new version functions.
 
-2004-07-28 10:52  strk
+2004-07-28 10:52  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_scripts_version
+	* [r651] Makefile, postgis.sql.in: Added postgis_scripts_version
 
-2004-07-27 17:51  strk
+2004-07-27 17:51  Sandro Santilli <strk at keybit.net>
 
-	* short-circuit test for 'contains'
+	* [r650] postgis_geos.c: short-circuit test for 'contains'
 
-2004-07-27 17:49  strk
+2004-07-27 17:49  Sandro Santilli <strk at keybit.net>
 
-	* Added short-circuit test for the within function.
+	* [r649] postgis_geos.c: Added short-circuit test for the within
+	  function.
 
-2004-07-23 21:24  strk
+2004-07-23 21:24  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_proj_version()
+	* [r648] postgis.h, postgis.sql.in, postgis_transform.c: Added
+	  postgis_proj_version()
 
-2004-07-22 16:58  strk
+2004-07-22 16:58  Sandro Santilli <strk at keybit.net>
 
-	* Updated to reflect geos version string split.
+	* [r647] postgis_geos.c, postgis_geos_wrapper.cpp: Updated to
+	  reflect geos version string split.
 
-2004-07-22 16:20  strk
+2004-07-22 16:20  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_lib_version() and postgis_geos_version()
+	* [r646] Makefile, postgis.h, postgis.sql.in, postgis_fn.c,
+	  postgis_geos.c, postgis_geos_wrapper.cpp, postgis_transform.c:
+	  Added postgis_lib_version() and postgis_geos_version()
 
-2004-07-19 16:24  strk
+2004-07-19 16:24  Sandro Santilli <strk at keybit.net>
 
-	* Added -i switch
+	* [r645] loader/shp2pgsql.c: Added -i switch
 
-2004-07-17 09:52  strk
+2004-07-17 09:52  Sandro Santilli <strk at keybit.net>
 
-	* GEOS multi-version support switches implemented with
-	  GEOS_LAST_INTERFACE
+	* [r644] postgis_geos_wrapper.cpp: GEOS multi-version support
+	  switches implemented with GEOS_LAST_INTERFACE
 
-2004-07-17 09:52  strk
+2004-07-17 09:52  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOS_FIRST_INTERFACE, GEOS_LAST_INTERFACE, GEOS_JTS_PORT
-	  detection
+	* [r643] geos_version.sh: Added GEOS_FIRST_INTERFACE,
+	  GEOS_LAST_INTERFACE, GEOS_JTS_PORT detection
 
-2004-07-17 09:51  strk
+2004-07-17 09:51  Sandro Santilli <strk at keybit.net>
 
-	* Modified to always detect geos version (no deps)
+	* [r642] Makefile: Modified to always detect geos version (no deps)
 
-2004-07-08 19:33  strk
+2004-07-08 19:33  Sandro Santilli <strk at keybit.net>
 
-	* Updated to respect CoordinateSequence GEOS interface switch.
+	* [r641] postgis_geos_wrapper.cpp: Updated to respect
+	  CoordinateSequence GEOS interface switch.
 
-2004-07-02 13:33  strk
+2004-07-02 13:33  Sandro Santilli <strk at keybit.net>
 
-	* Changed GEOS header inclusion mechanism to be more polite
+	* [r640] Makefile, postgis_geos_wrapper.cpp: Changed GEOS header
+	  inclusion mechanism to be more polite
 
-2004-07-01 17:02  strk
+2004-07-01 17:02  Sandro Santilli <strk at keybit.net>
 
-	* Updated to support latest GEOS API.
+	* [r639] postgis_geos_wrapper.cpp: Updated to support latest GEOS
+	  API.
 
-2004-07-01 17:02  strk
+2004-07-01 17:02  Sandro Santilli <strk at keybit.net>
 
-	* Updated to support latest GEOS (actually removed all geos-version
-	  related
+	* [r638] postgis_geos.c: Updated to support latest GEOS (actually
+	  removed all geos-version related
 	  switches).
 	  Fixed an access to unallocated memory.
 
-2004-06-22 21:30  pramsey
+2004-06-22 21:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Compile patch from Markus Schaber
+	* [r637] jdbc/examples/TestServer.java: Compile patch from Markus
+	  Schaber
 
-2004-06-22 16:52  strk
+2004-06-22 16:52  Sandro Santilli <strk at keybit.net>
 
-	* Standard deviation factor used in histogram extent computation
-	  made
+	* [r636] postgis_estimate.c: Standard deviation factor used in
+	  histogram extent computation made
 	  a compile-time define.
 
-2004-06-22 11:05  strk
+2004-06-22 11:05  Sandro Santilli <strk at keybit.net>
 
-	* Handled empty strings in numeric fields as '0'es... pg_atoi()
-	  does
+	* [r635] loader/shp2pgsql.c: Handled empty strings in numeric
+	  fields as '0'es... pg_atoi() does
 	  not do this (while atoi() does).
 
-2004-06-18 17:11  strk
+2004-06-18 17:11  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in minor version extractor.
+	* [r634] geos_version.sh: Fixed a bug in minor version extractor.
 	  Wrapped GEOS_VERSION in an #ifndef block.
 	  More runtime checks.
 
-2004-06-16 20:04  strk
+2004-06-16 20:04  Sandro Santilli <strk at keybit.net>
 
-	* added geos_version.sh as dependency of postgis_geos_version.h
-	  rule
+	* [r633] Makefile: added geos_version.sh as dependency of
+	  postgis_geos_version.h rule
 
-2004-06-16 19:59  strk
+2004-06-16 19:59  Sandro Santilli <strk at keybit.net>
 
-	* Changed GEOS_VERSION to POSTGIS_GEOS_VERSION to avoid future
+	* [r632] geos_version.sh, postgis_geos.c, postgis_geos_wrapper.cpp:
+	  Changed GEOS_VERSION to POSTGIS_GEOS_VERSION to avoid future
 	  clashes
 
-2004-06-16 19:37  strk
+2004-06-16 19:37  Sandro Santilli <strk at keybit.net>
 
-	* Added cleanup needed for GEOS > 1.0
+	* [r631] postgis_geos.c, postgis_geos_wrapper.cpp: Added cleanup
+	  needed for GEOS > 1.0
 
-2004-06-16 19:28  strk
+2004-06-16 19:28  Sandro Santilli <strk at keybit.net>
 
-	* fixed a typo in preprocessor define
+	* [r630] geos_version.sh: fixed a typo in preprocessor define
 
-2004-06-16 18:50  strk
+2004-06-16 18:50  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_geos_version.h to .cvsignore and to the list of
-	  files
+	* [r629] ., .cvsignore, Makefile: Added postgis_geos_version.h to
+	  .cvsignore and to the list of files
 	  removed by the clean: rule.
 
-2004-06-16 18:47  strk
+2004-06-16 18:47  Sandro Santilli <strk at keybit.net>
 
-	* Added code to detect geos version.
+	* [r628] Makefile, postgis_geos.c, postgis_geos_wrapper.cpp: Added
+	  code to detect geos version.
 	  Added appropriate includes in geos connectors.
 
-2004-06-16 18:47  strk
+2004-06-16 18:47  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r627] geos_version.sh: initial import
 
-2004-06-16 13:42  strk
+2004-06-16 13:42  Sandro Santilli <strk at keybit.net>
 
-	* Added schema support in getMaxFieldSize.
+	* [r626] loader/pgsql2shp.c: Added schema support in
+	  getMaxFieldSize.
 	  Added direct support for TIMESTAMP field types (thanks to Steffen
 	  Macke).
 
-2004-06-16 13:14  strk
+2004-06-16 13:14  Sandro Santilli <strk at keybit.net>
 
-	* documented statistics gethering operations
+	* [r625] doc/postgis.xml: documented statistics gethering
+	  operations
 
-2004-06-14 08:06  strk
+2004-06-14 08:06  Sandro Santilli <strk at keybit.net>
 
-	* fixed bogus support for PG71
+	* [r624] create_undef.pl: fixed bogus support for PG71
 
-2004-06-14 07:48  strk
+2004-06-14 07:48  Sandro Santilli <strk at keybit.net>
 
-	* Histogram extent redefinition after hard deviant removal fixed to
-	  be
+	* [r623] postgis_estimate.c: Histogram extent redefinition after
+	  hard deviant removal fixed to be
 	  "at most" the standard deviation based computed.
 
-2004-06-11 11:38  strk
+2004-06-11 11:38  Sandro Santilli <strk at keybit.net>
 
-	* Infinite geometries handling.
+	* [r622] postgis_estimate.c: Infinite geometries handling.
 	  Histogram extent re-computation after 'hard deviant' features
 	  removal.
 
-2004-06-10 18:54  strk
+2004-06-10 18:54  Sandro Santilli <strk at keybit.net>
 
-	* histogram grid size refined to use near-square cells.
+	* [r621] postgis_estimate.c: histogram grid size refined to use
+	  near-square cells.
 
-2004-06-10 15:44  strk
+2004-06-10 15:44  Sandro Santilli <strk at keybit.net>
 
-	* Added standard deviation based histogram extent refinement
+	* [r620] postgis_estimate.c: Added standard deviation based
+	  histogram extent refinement
 
-2004-06-10 13:42  strk
+2004-06-10 13:42  Sandro Santilli <strk at keybit.net>
 
-	* Separated the estimator code in an estimate_selectivity()
-	  function.
+	* [r619] postgis_estimate.c: Separated the estimator code in an
+	  estimate_selectivity() function.
 	  Handled complete contaiment and complete miss of histogram by
 	  searc box.
 
-2004-06-09 10:19  strk
+2004-06-09 10:19  Sandro Santilli <strk at keybit.net>
 
-	* Moved changes needed for PG75 inside postgis_gist_72.c using #if
+	* [r618] Makefile, postgis_gist_72.c, postgis_gist_75.c: Moved
+	  changes needed for PG75 inside postgis_gist_72.c using #if
 	  switches.
 
-2004-06-09 10:05  strk
+2004-06-09 10:05  Sandro Santilli <strk at keybit.net>
 
-	* Added switch for GIST_SUPPORT=75
+	* [r617] Makefile: Added switch for GIST_SUPPORT=75
 
-2004-06-09 10:05  strk
+2004-06-09 10:05  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r616] postgis_gist_75.c: initial import
 
-2004-06-09 09:35  strk
+2004-06-09 09:35  Sandro Santilli <strk at keybit.net>
 
-	* Removed partial pgsql List API copy
+	* [r615] postgis_estimate.c: Removed partial pgsql List API copy
 
-2004-06-09 09:08  strk
+2004-06-09 09:08  Sandro Santilli <strk at keybit.net>
 
-	* changed index/rindex to strchr/strrchr
+	* [r614] postgis_inout.c: changed index/rindex to strchr/strrchr
 
-2004-06-09 09:06  strk
+2004-06-09 09:06  Sandro Santilli <strk at keybit.net>
 
-	* Added Romi's Win32 patches.
+	* [r613] postgis.h: Added Romi's Win32 patches.
 
-2004-06-08 17:49  strk
+2004-06-08 17:49  Sandro Santilli <strk at keybit.net>
 
-	* Fixed to build cleanly agains pg75
+	* [r612] postgis_estimate.c: Fixed to build cleanly agains pg75
 
-2004-06-08 17:48  strk
+2004-06-08 17:48  Sandro Santilli <strk at keybit.net>
 
-	* Compression of code terminated.
+	* [r611] postgis.sql.in: Compression of code terminated.
 	  Big blocks switched based on version have been removed.
 
-2004-06-08 17:40  strk
+2004-06-08 17:40  Sandro Santilli <strk at keybit.net>
 
-	* removed user connect command
+	* [r610] lwgeom/regress/lwgeom_regress3_expected,
+	  lwgeom/regress/regress_lots_of_points.sql: removed user connect
+	  command
 
-2004-06-08 15:18  strk
+2004-06-08 15:18  Sandro Santilli <strk at keybit.net>
 
-	* Deleted prototype for isspace() in postgis.h
+	* [r609] postgis.h, postgis_inout.c: Deleted prototype for
+	  isspace() in postgis.h
 	  and included <ctype.h> in postgis_inout.c,
 	  which is the only module calling isspace().
 	  This was needed to compile postgis against PG75(CVS).
 
-2004-06-08 08:42  strk
+2004-06-08 08:42  Sandro Santilli <strk at keybit.net>
 
-	* MODULE_FILENAME path always defaults to $libdir, but is
-	  overridable
+	* [r608] Makefile, lwgeom/Makefile: MODULE_FILENAME path always
+	  defaults to $libdir, but is overridable
 	  using environment variable LPATH. Added comments about it and
 	  cleaned
 	  up code. Made global and lwgeom Makefile conformant about this.
 
-2004-06-08 08:20  strk
+2004-06-08 08:20  Sandro Santilli <strk at keybit.net>
 
-	* added 'static' modifiers for the 'error' function, possibly
-	  clashing with some other declaration
+	* [r607] lwgeom/lwgparse.c: added 'static' modifiers for the
+	  'error' function, possibly clashing with some other declaration
 
-2004-06-07 17:58  strk
+2004-06-07 17:58  Sandro Santilli <strk at keybit.net>
 
-	* reverted change in lwg_parse_yyerror
+	* [r606] lwgeom/lwgparse.c: reverted change in lwg_parse_yyerror
 
-2004-06-07 17:26  strk
+2004-06-07 17:26  Sandro Santilli <strk at keybit.net>
 
-	* Default MODULE_FILENAME uses $libdir unless LPATH is set in the
-	  environment
+	* [r605] Makefile: Default MODULE_FILENAME uses $libdir unless
+	  LPATH is set in the environment
 
-2004-06-07 16:57  strk
+2004-06-07 16:57  Sandro Santilli <strk at keybit.net>
 
-	* Removed obsolete postgisgistcostestimate function creation
+	* [r604] postgis.sql.in: Removed obsolete postgisgistcostestimate
+	  function creation
 
-2004-06-07 16:34  strk
+2004-06-07 16:34  Sandro Santilli <strk at keybit.net>
 
-	* Removed postgis_old.sql from list of default rules
+	* [r603] Makefile: Removed postgis_old.sql from list of default
+	  rules
 
-2004-06-07 16:32  strk
+2004-06-07 16:32  Sandro Santilli <strk at keybit.net>
 
-	* Moved old version-specific sql files under the Attic directory.
+	* [r602] Attic, Attic/postgis_sql_71_end.sql.in,
+	  Attic/postgis_sql_71_start.sql.in,
+	  Attic/postgis_sql_72_end.sql.in,
+	  Attic/postgis_sql_72_start.sql.in,
+	  Attic/postgis_sql_73_end.sql.in,
+	  Attic/postgis_sql_73_start.sql.in,
+	  Attic/postgis_sql_74_end.sql.in,
+	  Attic/postgis_sql_74_start.sql.in,
+	  Attic/postgis_sql_75_end.sql.in,
+	  Attic/postgis_sql_75_start.sql.in,
+	  Attic/postgis_sql_common.sql.in: Moved old version-specific sql
+	  files under the Attic directory.
 
-2004-06-07 16:32  strk
+2004-06-07 16:32  Sandro Santilli <strk at keybit.net>
 
-	* Moved old version-specific sql files under the Attic directory.
+	* [r601] Attic: Moved old version-specific sql files under the
+	  Attic directory.
 
-2004-06-07 16:11  strk
+2004-06-07 16:11  Sandro Santilli <strk at keybit.net>
 
-	* AddGeometryColumns call table constraints 'enforce_srid' and
-	  'enforce_geotype'
+	* [r600] postgis.sql.in: AddGeometryColumns call table constraints
+	  'enforce_srid' and 'enforce_geotype'
 
-2004-06-07 15:32  strk
+2004-06-07 15:32  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug killing the backend - lwg_parse_yyerror never called
-	  custom error handler
+	* [r599] lwgeom/lwgparse.c: Fixed a bug killing the backend -
+	  lwg_parse_yyerror never called custom error handler
 
-2004-06-07 10:07  strk
+2004-06-07 10:07  Sandro Santilli <strk at keybit.net>
 
-	* allowed lower case in wkt
+	* [r598] lwgeom/lwgeom_inout.c: allowed lower case in wkt
 
-2004-06-07 09:16  strk
+2004-06-07 09:16  Sandro Santilli <strk at keybit.net>
 
-	* Added missing prototypes.
+	* [r597] lwgeom/wktparse.lex, lwgeom/wktunparse.c: Added missing
+	  prototypes.
 
-2004-06-04 15:24  strk
+2004-06-04 15:24  Sandro Santilli <strk at keybit.net>
 
-	* Added y.output
+	* [r596] lwgeom, lwgeom/.cvsignore: Added y.output
 
-2004-06-04 15:24  strk
+2004-06-04 15:24  Sandro Santilli <strk at keybit.net>
 
-	* Added more cleanup
+	* [r595] lwgeom/Makefile: Added more cleanup
 
-2004-06-04 15:23  strk
+2004-06-04 15:23  Sandro Santilli <strk at keybit.net>
 
-	* added semicolumns at end of blocks
+	* [r594] lwgeom/wktparse.y: added semicolumns at end of blocks
 
-2004-06-04 15:21  strk
+2004-06-04 15:21  Sandro Santilli <strk at keybit.net>
 
-	* removed, will be created
+	* [r593] lwgeom/lex.yy.c: removed, will be created
 
-2004-06-04 13:39  strk
+2004-06-04 13:39  Sandro Santilli <strk at keybit.net>
 
-	* Removed references to constraint name (unsafe) from
-	  probe_geometry_columns()
+	* [r592] postgis.sql.in: Removed references to constraint name
+	  (unsafe) from probe_geometry_columns()
 	  and fix_geometry_columns(). Added a
 	  rename_geometry_table_constraints()
 	  renaming all geometry constraints to 'enforce_srid' and
 	  'enforce_geotype'
 
-2004-06-04 13:11  strk
+2004-06-04 13:11  Sandro Santilli <strk at keybit.net>
 
-	* probe_geometry_columns() return message extended
+	* [r591] postgis.sql.in: probe_geometry_columns() return message
+	  extended
 
-2004-06-04 12:40  strk
+2004-06-04 12:40  Sandro Santilli <strk at keybit.net>
 
-	* Added comments about fix_geometry_columns() job.
+	* [r590] postgis.sql.in: Added comments about
+	  fix_geometry_columns() job.
 	  SRID and type checks made stricter in fix_geometry_columns().
 
-2004-06-04 12:26  strk
+2004-06-04 12:26  Sandro Santilli <strk at keybit.net>
 
-	* Added probe_geometry_columns().
+	* [r589] postgis.sql.in: Added probe_geometry_columns().
 	  Modified fix_geometry_columns() to prevent fixing of bogus
 	  records for
 	  which a corrected equivalent already exists.
 
-2004-06-04 10:19  strk
+2004-06-04 10:19  Sandro Santilli <strk at keybit.net>
 
-	* Added DropGeometryTable description
+	* [r588] doc/postgis.xml: Added DropGeometryTable description
 
-2004-06-04 10:07  strk
+2004-06-04 10:07  Sandro Santilli <strk at keybit.net>
 
-	* Added DropGeometryColumn function
+	* [r587] postgis.sql.in: Added DropGeometryColumn function
 
-2004-06-04 09:16  strk
+2004-06-04 09:16  Sandro Santilli <strk at keybit.net>
 
-	* first entries
+	* [r586] lwgeom, lwgeom/.cvsignore: first entries
 
-2004-06-04 09:11  strk
+2004-06-04 09:11  Sandro Santilli <strk at keybit.net>
 
-	* Added prototypes
+	* [r585] lwgeom/lwgparse.c, lwgeom/wktparse.lex: Added prototypes
 
-2004-06-04 09:07  strk
+2004-06-04 09:07  Sandro Santilli <strk at keybit.net>
 
-	* Fixed YACC call to rename standardly produced y.tab.c and y.tab.h
+	* [r584] lwgeom/Makefile: Fixed YACC call to rename standardly
+	  produced y.tab.c and y.tab.h
 	  to wktparse.tab.c and wktparse.tab.h
 
-2004-06-04 08:49  strk
+2004-06-04 08:49  Sandro Santilli <strk at keybit.net>
 
-	* Moved all geoemtry_columns cleanup in fix_geometry_columns,
+	* [r583] postgis.sql.in: Moved all geoemtry_columns cleanup in
+	  fix_geometry_columns,
 	  update_geometry_stats(*) and addgeometrycolumn(*) will now
 	  call the former and print out its result text.
 
-2004-06-04 08:31  strk
+2004-06-04 08:31  Sandro Santilli <strk at keybit.net>
 
-	* Lifted AddGeometryColumns result message, including output from
-	  fix_geometry_columns
+	* [r582] postgis.sql.in: Lifted AddGeometryColumns result message,
+	  including output from fix_geometry_columns
 
-2004-06-04 08:25  strk
+2004-06-04 08:25  Sandro Santilli <strk at keybit.net>
 
-	* fix_geometry_columns() makes its best effort to find appropriate
-	  schema.
+	* [r581] postgis.sql.in: fix_geometry_columns() makes its best
+	  effort to find appropriate schema.
 
-2004-06-03 16:44  strk
+2004-06-03 16:44  Sandro Santilli <strk at keybit.net>
 
-	* Added expand_geometry - expand(geometry, int8)
+	* [r580] postgis.h, postgis.sql.in, postgis_fn.c: Added
+	  expand_geometry - expand(geometry, int8)
 
-2004-06-03 13:49  strk
+2004-06-03 13:49  Sandro Santilli <strk at keybit.net>
 
-	* added postgis_old.sql
+	* [r579] ., .cvsignore: added postgis_old.sql
 
-2004-06-03 13:44  strk
+2004-06-03 13:44  Sandro Santilli <strk at keybit.net>
 
-	* Made it functional again.
+	* [r578] create_undef.pl: Made it functional again.
 
-2004-06-03 13:43  strk
+2004-06-03 13:43  Sandro Santilli <strk at keybit.net>
 
-	* compatted CASTS section, commented out bogus cast geometry::chip
-	  referring to missing function
+	* [r577] postgis.sql.in: compatted CASTS section, commented out
+	  bogus cast geometry::chip referring to missing function
 
-2004-06-03 13:20  strk
+2004-06-03 13:20  Sandro Santilli <strk at keybit.net>
 
-	* Skipped attrelid, varattnum linking for PG>=75
+	* [r576] postgis.sql.in: Skipped attrelid, varattnum linking for
+	  PG>=75
 
-2004-06-03 12:48  strk
+2004-06-03 12:48  Sandro Santilli <strk at keybit.net>
 
-	* All type definitions moved at the beginning of the file.
+	* [r575] postgis.sql.in: All type definitions moved at the
+	  beginning of the file.
 	  Left to compat: what was in postgis_sql_end_VER_.
 
-2004-06-03 11:06  strk
+2004-06-03 11:06  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in update_geometry_stats() choking on null attrelids.
+	* [r574] postgis.sql.in: Fixed bug in update_geometry_stats()
+	  choking on null attrelids.
 	  Modified update_geometry_stats(varchar, varchar) to cleanup stale
 	  record(s).
 	  Added a CREATEFUNCTION define to become CREATE OR REPLACE
@@ -44144,68 +65468,77 @@
 	  for PG > 71.
 	  Made update_geometry_stats(*) return meaningful result.
 
-2004-06-03 09:45  strk
+2004-06-03 09:45  Sandro Santilli <strk at keybit.net>
 
-	* infinite geoms handled in WKB parser
+	* [r573] postgis_inout.c: infinite geoms handled in WKB parser
 
-2004-06-03 08:19  strk
+2004-06-03 08:19  Sandro Santilli <strk at keybit.net>
 
-	* yet another Infinite check used: finite() - which checks for
-	  NaN,-Inf,+Inf
+	* [r572] postgis_gist_72.c, postgis_inout.c: yet another Infinite
+	  check used: finite() - which checks for NaN,-Inf,+Inf
 
-2004-06-03 08:13  strk
+2004-06-03 08:13  Sandro Santilli <strk at keybit.net>
 
-	* Simplified INFINITY checks by use of isinf()
+	* [r571] postgis_gist_72.c, postgis_inout.c: Simplified INFINITY
+	  checks by use of isinf()
 
-2004-06-03 07:58  strk
+2004-06-03 07:58  Sandro Santilli <strk at keybit.net>
 
-	* Infinite coordinate geoms omitted from index
+	* [r570] postgis_gist_72.c: Infinite coordinate geoms omitted from
+	  index
 
-2004-06-03 07:57  strk
+2004-06-03 07:57  Sandro Santilli <strk at keybit.net>
 
-	* wkt parser throws an error on Infinite coordinates
+	* [r569] postgis_inout.c: wkt parser throws an error on Infinite
+	  coordinates
 
-2004-06-03 04:51  pramsey
+2004-06-03 04:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Document the expand() function (finally!)
+	* [r568] doc/postgis.xml: Document the expand() function (finally!)
 
-2004-06-02 23:54  strk
+2004-06-02 23:54  Sandro Santilli <strk at keybit.net>
 
-	* Made equality checks the default in picksplit to catch also NaN
-	  results (INF geoms)
+	* [r567] postgis_gist_72.c: Made equality checks the default in
+	  picksplit to catch also NaN results (INF geoms)
 
-2004-06-02 23:29  strk
+2004-06-02 23:29  Sandro Santilli <strk at keybit.net>
 
-	* reverted Inf handling modification (conceptually bogus)
+	* [r566] postgis_gist_72.c: reverted Inf handling modification
+	  (conceptually bogus)
 
-2004-06-02 22:43  strk
+2004-06-02 22:43  Sandro Santilli <strk at keybit.net>
 
-	* handled special case of Inf boxes as GiST keys in picksplit
+	* [r565] postgis_gist_72.c: handled special case of Inf boxes as
+	  GiST keys in picksplit
 
-2004-06-02 17:15  strk
+2004-06-02 17:15  Sandro Santilli <strk at keybit.net>
 
-	* stale locks removal in fix_geometry_columns() and
-	  update_geometry_stats(). Fixed a bug in fix_geometry_columns()
-	  deleting stats.
+	* [r564] postgis.sql.in: stale locks removal in
+	  fix_geometry_columns() and update_geometry_stats(). Fixed a bug
+	  in fix_geometry_columns() deleting stats.
 
-2004-06-02 16:21  strk
+2004-06-02 16:21  Sandro Santilli <strk at keybit.net>
 
-	* build_histogram2d sets 'local' search_path.
+	* [r563] postgis.sql.in: build_histogram2d sets 'local'
+	  search_path.
 	  fix_geometry_columns sets to NULL cached data for unexistant
 	  tables.
 
-2004-06-01 16:56  strk
+2004-06-01 16:56  Sandro Santilli <strk at keybit.net>
 
-	* removed namespace check for PG<73 in update_geometry_stats()
+	* [r562] postgis.sql.in: removed namespace check for PG<73 in
+	  update_geometry_stats()
 
-2004-06-01 16:30  strk
+2004-06-01 16:30  Sandro Santilli <strk at keybit.net>
 
-	* Made AddGeometryColumn delete from geometry_column records which
-	  would be incompatible with the one being added
+	* [r561] postgis.sql.in: Made AddGeometryColumn delete from
+	  geometry_column records which would be incompatible with the one
+	  being added
 
-2004-06-01 16:16  strk
+2004-06-01 16:16  Sandro Santilli <strk at keybit.net>
 
-	* Placed histogram2d type definition in a common place;
+	* [r560] postgis.sql.in: Placed histogram2d type definition in a
+	  common place;
 	  added find_extent(schema, table, column) and
 	  build_histogram2d(histogram,
 	  schema, table, column); modified update_geometry_stats() to make
@@ -44213,318 +65546,376 @@
 	  of available f_table_schema and to set statistical fields to NULL
 	  for stale records. Thanks to Carl Anderson for the ideas.
 
-2004-05-28 03:01  pramsey
+2004-05-28 03:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates in anticipation of 0.8.2 release
+	* [r558] CHANGES, CREDITS, README.postgis: Updates in anticipation
+	  of 0.8.2 release
 
-2004-05-28 02:42  pramsey
+2004-05-28 02:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Document the multi() function.
+	* [r557] doc/postgis.xml: Document the multi() function.
 
-2004-05-24 13:02  strk
+2004-05-24 13:02  Sandro Santilli <strk at keybit.net>
 
-	* compat definition of fix_geometry_columns
+	* [r556] postgis.sql.in: compat definition of fix_geometry_columns
 
-2004-05-20 19:21  pramsey
+2004-05-20 19:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix bug in append mode that filled values into nonexistant gid
-	  column.
+	* [r555] loader/shp2pgsql.c: Fix bug in append mode that filled
+	  values into nonexistant gid column.
 
-2004-05-18 16:56  pramsey
+2004-05-18 16:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix typos and section misreferences in OGC function reference
-	  section
+	* [r554] doc/postgis.xml: Fix typos and section misreferences in
+	  OGC function reference section
 
-2004-05-18 16:52  pramsey
+2004-05-18 16:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add multi() to the new cpp based sql.in file.
+	* [r553] postgis.sql.in: Add multi() to the new cpp based sql.in
+	  file.
 
-2004-05-13 12:24  strk
+2004-05-13 12:24  Sandro Santilli <strk at keybit.net>
 
-	* Transformed NULL numeric values to 0 as it was before the
-	  introduction
+	* [r552] loader/pgsql2shp.c: Transformed NULL numeric values to 0
+	  as it was before the introduction
 	  of bigint bug workaround.
 
-2004-05-13 12:13  strk
+2004-05-13 12:13  Sandro Santilli <strk at keybit.net>
 
-	* Used DBFWriteAttributeDirectly interface for writing attributes.
+	* [r551] loader/pgsql2shp.c: Used DBFWriteAttributeDirectly
+	  interface for writing attributes.
 	  This way we are not affected by shapelib long-integer bug.
 
-2004-05-13 12:07  strk
+2004-05-13 12:07  Sandro Santilli <strk at keybit.net>
 
-	* Other fix in 3d handling - you should now be able to dump as 2d
-	  or 3d any 2d or 3d object
+	* [r550] loader/pgsql2shp.c: Other fix in 3d handling - you should
+	  now be able to dump as 2d or 3d any 2d or 3d object
 
-2004-05-13 11:59  strk
+2004-05-13 11:59  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in 3d features handling.
+	* [r549] loader/pgsql2shp.c: Fixed bug in 3d features handling.
 
-2004-05-13 09:40  strk
+2004-05-13 09:40  Sandro Santilli <strk at keybit.net>
 
-	* Totally reworked code to have a main loop for shapefile objects.
+	* [r548] loader/shp2pgsql.c: Totally reworked code to have a main
+	  loop for shapefile objects.
 	  Much more readable, I belive.
 
-2004-05-13 07:48  strk
+2004-05-13 07:48  Sandro Santilli <strk at keybit.net>
 
-	* Put table creation code in its own function.
+	* [r547] loader/shp2pgsql.c: Put table creation code in its own
+	  function.
 	  Fixed a bug with NULL shape records handling.
 
-2004-05-13 06:38  strk
+2004-05-13 06:38  Sandro Santilli <strk at keybit.net>
 
-	* DBFReadStringValue always used to workaround shapelib bug with
-	  int values.
+	* [r546] loader/shp2pgsql.c: DBFReadStringValue always used to
+	  workaround shapelib bug with int values.
 
-2004-05-04 16:55  strk
+2004-05-04 16:55  Sandro Santilli <strk at keybit.net>
 
-	* Added -fPIC to CXXFLAGS. Reported to be needed on Solaris7 w/
-	  gcc-3.3.2
+	* [r545] Makefile: Added -fPIC to CXXFLAGS. Reported to be needed
+	  on Solaris7 w/ gcc-3.3.2
 	  by Havard Tveite <havard.tveite at nlh.no>.
 
-2004-04-29 21:07  rmason
+2004-04-29 21:07  Ralph Mason <ralph.mason at telogis.com>
 
-	* removed generated file
+	* [r544] lwgeom/wktparse.tab.h: removed generated file
 
-2004-04-29 21:07  rmason
+2004-04-29 21:07  Ralph Mason <ralph.mason at telogis.com>
 
-	* *** empty log message ***
+	* [r543] lwgeom/wktparse.tab.c: *** empty log message ***
 
-2004-04-29 18:44  dblasby
+2004-04-29 18:44  David Blasby <dblasby at gmail.com>
 
-	* Noted diff between inf and Infinity on Solaris/Intel machines
+	* [r542] lwgeom/lwgeom_api.c, lwgeom/lwgeom_box2dfloat4.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/regress/run_regress2: Noted diff between inf and Infinity
+	  on Solaris/Intel machines
 
-2004-04-29 18:41  dblasby
+2004-04-29 18:41  David Blasby <dblasby at gmail.com>
 
-	* updated version
+	* [r541] lwgeom/lex.yy.c: updated version
 
-2004-04-29 18:36  dblasby
+2004-04-29 18:36  David Blasby <dblasby at gmail.com>
 
-	* added sleep so it wouldnt complain on solarias as much
+	* [r540] lwgeom/regress/run_regress, lwgeom/regress/run_regress2,
+	  lwgeom/regress/run_regress3: added sleep so it wouldnt complain
+	  on solarias as much
 
-2004-04-29 18:20  dblasby
+2004-04-29 18:20  David Blasby <dblasby at gmail.com>
 
-	* WKT parser changes required this change
+	* [r539] lwgeom/regress/lwgeom_regress2.sql,
+	  lwgeom/regress/lwgeom_regress2_expected: WKT parser changes
+	  required this change
 
-2004-04-29 18:16  dblasby
+2004-04-29 18:16  David Blasby <dblasby at gmail.com>
 
-	* minor changes
+	* [r538] lwgeom/regress/lwgeom_regress3_expected: minor changes
 
-2004-04-29 18:15  dblasby
+2004-04-29 18:15  David Blasby <dblasby at gmail.com>
 
-	* WKT parser changes to MULTIPOINT required this be updated
+	* [r537] lwgeom/regress/lwgeom_regress_expected: WKT parser changes
+	  to MULTIPOINT required this be updated
 
-2004-04-29 04:35  rmason
+2004-04-29 04:35  Ralph Mason <ralph.mason at telogis.com>
 
-	* clean up of wbk int and double reading code
+	* [r536] lwgeom/lwgparse.c: clean up of wbk int and double reading
+	  code
 
-2004-04-29 03:57  rmason
+2004-04-29 03:57  Ralph Mason <ralph.mason at telogis.com>
 
-	* fix number parsing
+	* [r535] lwgeom/wktparse.lex: fix number parsing
 
-2004-04-29 03:13  rmason
+2004-04-29 03:13  Ralph Mason <ralph.mason at telogis.com>
 
-	* remove extra brackets from multipoints
+	* [r534] lwgeom/wktunparse.c: remove extra brackets from
+	  multipoints
 
-2004-04-28 23:07  pramsey
+2004-04-28 23:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change PGSQL_SRC behavior back to developer-friendly.
+	* [r533] Makefile: Change PGSQL_SRC behavior back to
+	  developer-friendly.
 
-2004-04-28 22:59  dblasby
+2004-04-28 22:59  David Blasby <dblasby at gmail.com>
 
-	* minor changes
+	* [r532] lwgeom/README: minor changes
 
-2004-04-28 22:50  dblasby
+2004-04-28 22:50  David Blasby <dblasby at gmail.com>
 
-	* Inital Version. Hasnt been proofread.
+	* [r531] lwgeom/README: Inital Version. Hasnt been proofread.
 
-2004-04-28 22:40  pramsey
+2004-04-28 22:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added flex/bison lines for parser.
+	* [r530] lwgeom/Makefile: Added flex/bison lines for parser.
 
-2004-04-28 22:26  pramsey
+2004-04-28 22:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed spelling mistake in header text.
+	* [r529] postgis_chip.c, postgis_debug.c, postgis_estimate.c,
+	  postgis_fn.c, postgis_geos.c, postgis_gist_71.c,
+	  postgis_gist_72.c, postgis_inout.c, postgis_ops.c,
+	  postgis_proj.c, postgis_transform.c: Fixed spelling mistake in
+	  header text.
 
-2004-04-28 21:20  dblasby
+2004-04-28 21:20  David Blasby <dblasby at gmail.com>
 
-	* minor changes to ensure its using the index
+	* [r528] lwgeom/regress/lwgeom_regress3.sql: minor changes to
+	  ensure its using the index
 
-2004-04-28 21:08  dblasby
+2004-04-28 21:08  David Blasby <dblasby at gmail.com>
 
-	* updated results
+	* [r527] lwgeom/regress/lwgeom_regress3_expected: updated results
 
-2004-04-28 21:02  dblasby
+2004-04-28 21:02  David Blasby <dblasby at gmail.com>
 
-	* minor change for endianess
+	* [r526] lwgeom/regress/lwgeom_regress3.sql: minor change for
+	  endianess
 
-2004-04-28 21:00  dblasby
+2004-04-28 21:00  David Blasby <dblasby at gmail.com>
 
-	* removed an elog(NOTICE)
+	* [r525] lwgeom/lwgeom_inout.c: removed an elog(NOTICE)
 
-2004-04-28 19:17  dblasby
+2004-04-28 19:17  David Blasby <dblasby at gmail.com>
 
-	* inital version of regression tests
+	* [r524] lwgeom/regress, lwgeom/regress/lwgeom_regress.sql,
+	  lwgeom/regress/lwgeom_regress2.sql,
+	  lwgeom/regress/lwgeom_regress2_expected,
+	  lwgeom/regress/lwgeom_regress3.sql,
+	  lwgeom/regress/lwgeom_regress3_expected,
+	  lwgeom/regress/lwgeom_regress_expected,
+	  lwgeom/regress/regress_lots_of_points.sql,
+	  lwgeom/regress/run_regress, lwgeom/regress/run_regress2,
+	  lwgeom/regress/run_regress3: inital version of regression tests
 
-2004-04-28 18:27  dblasby
+2004-04-28 18:27  David Blasby <dblasby at gmail.com>
 
-	* moved to regress/ directory
+	* [r523] lwgeom/lwgeom_api.c, lwgeom/lwgeom_regress.sql: moved to
+	  regress/ directory
 
-2004-04-28 18:10  dblasby
+2004-04-28 18:10  David Blasby <dblasby at gmail.com>
 
-	* Added automatic endian detection for the WKB parser/unparser.
+	* [r522] lwgeom/lwgeom_regress.sql, lwgeom/lwgparse.c,
+	  lwgeom/wktunparse.c: Added automatic endian detection for the WKB
+	  parser/unparser.
 
-2004-04-28 04:55  pramsey
+2004-04-28 04:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Genericize the Makefile per Dave's request.
+	* [r521] lwgeom/Makefile: Genericize the Makefile per Dave's
+	  request.
 
-2004-04-27 23:47  dblasby
+2004-04-27 23:47  David Blasby <dblasby at gmail.com>
 
-	* minor 3d geometrycollection bug fix
+	* [r520] postgis_inout.c: minor 3d geometrycollection bug fix
 
-2004-04-27 23:33  dblasby
+2004-04-27 23:33  David Blasby <dblasby at gmail.com>
 
-	* initial version
+	* [r519] lwgeom/lwgeom_regress.sql: initial version
 
-2004-04-27 23:12  dblasby
+2004-04-27 23:12  David Blasby <dblasby at gmail.com>
 
-	* minor changes for solaris
+	* [r518] lwgeom/lwgeom_inout.c, lwgeom/wktunparse.c: minor changes
+	  for solaris
 
-2004-04-27 22:13  dblasby
+2004-04-27 22:13  David Blasby <dblasby at gmail.com>
 
-	* fixed some typos for flip_bytes in read_int and read_double
+	* [r517] lwgeom/lwgparse.c: fixed some typos for flip_bytes in
+	  read_int and read_double
 
-2004-04-27 20:53  dblasby
+2004-04-27 20:53  David Blasby <dblasby at gmail.com>
 
-	* minor ordering change
+	* [r516] lwgeom/lwgeom.sql.in: minor ordering change
 
-2004-04-27 20:49  dblasby
+2004-04-27 20:49  David Blasby <dblasby at gmail.com>
 
-	* added float nextafterf_custom(float x, float y) for OSs that do
-	  not have
+	* [r515] lwgeom/lwgeom_api.c: added float nextafterf_custom(float
+	  x, float y) for OSs that do not have
 	  a nextafterf implementation.
 
-2004-04-27 17:46  dblasby
+2004-04-27 17:46  David Blasby <dblasby at gmail.com>
 
-	* bison -vd -p lwg_parse_yy wktparse.y
+	* [r514] lwgeom/wktparse.lex, lwgeom/wktparse.y: bison -vd -p
+	  lwg_parse_yy wktparse.y
 	  flex -Plwg_parse_yy -if -o'lex.yy.c' wktparse.lex
 	  
 	  Initial versions (from Ralph Mason)
 
-2004-04-27 13:50  strk
+2004-04-27 13:50  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bug in simplify() that was using the square of the given
-	  tolerance.
+	* [r513] postgis_algo.c: Fixed bug in simplify() that was using the
+	  square of the given tolerance.
 
-2004-04-27 07:44  strk
+2004-04-27 07:44  Sandro Santilli <strk at keybit.net>
 
-	* Removed use of geometryFactory->toGeometry(), indicated by Martin
-	  Davis
+	* [r512] postgis_geos_wrapper.cpp: Removed use of
+	  geometryFactory->toGeometry(), indicated by Martin Davis
 	  as being intended for internal use only. Created a linear ring
 	  instead
 	  (the function converts a box3d to a geos geometry).
 
-2004-04-26 23:16  dblasby
+2004-04-26 23:16  David Blasby <dblasby at gmail.com>
 
-	* made slightly more generic
+	* [r511] lwgeom/lwgeom.sql.in: made slightly more generic
 
-2004-04-26 23:15  dblasby
+2004-04-26 23:15  David Blasby <dblasby at gmail.com>
 
-	* Minor cleanup
+	* [r510] lwgeom/lwgeom_gist.c: Minor cleanup
 
-2004-04-26 23:12  dblasby
+2004-04-26 23:12  David Blasby <dblasby at gmail.com>
 
-	* inital version
+	* [r509] lwgeom/lwgeom_box2dfloat4.c: inital version
 
-2004-04-26 23:05  dblasby
+2004-04-26 23:05  David Blasby <dblasby at gmail.com>
 
-	* Initial working version - based on Ralph Masons WKT and WKB
-	  parser/writer.
+	* [r508] lwgeom/Makefile, lwgeom/lex.yy.c, lwgeom/lwgeom.h,
+	  lwgeom/lwgeom.sql.in, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_gist.c,
+	  lwgeom/lwgeom_inout.c, lwgeom/lwgparse.c, lwgeom/wktparse.h,
+	  lwgeom/wktparse.tab.c, lwgeom/wktparse.tab.h,
+	  lwgeom/wktunparse.c: Initial working version - based on Ralph
+	  Masons WKT and WKB parser/writer.
 
-2004-04-22 16:05  dblasby
+2004-04-22 16:05  David Blasby <dblasby at gmail.com>
 
-	* fixed minor typos GeomFromWKB not GeometryFromWKB
+	* [r507] doc/postgis.xml: fixed minor typos GeomFromWKB not
+	  GeometryFromWKB
 
-2004-04-21 09:13  strk
+2004-04-21 09:13  Sandro Santilli <strk at keybit.net>
 
-	* Attribute names escaping mechanism added. You should now
+	* [r506] loader/pgsql2shp.c, loader/shp2pgsql.c: Attribute names
+	  escaping mechanism added. You should now
 	  be able to dump a shapefile equal to the one loaded.
 
-2004-04-21 07:38  strk
+2004-04-21 07:38  Sandro Santilli <strk at keybit.net>
 
-	* Memory allocated for main_scan_query was not enough when using
-	  binary cursor. Fixed
+	* [r505] loader/pgsql2shp.c: Memory allocated for main_scan_query
+	  was not enough when using binary cursor. Fixed
 
-2004-04-13 16:49  dblasby
+2004-04-13 16:49  David Blasby <dblasby at gmail.com>
 
-	* GeometryN(...) now correctly says "1" is the 1st geometry (used
-	  to be 0).
+	* [r504] doc/postgis.xml: GeometryN(...) now correctly says "1" is
+	  the 1st geometry (used to be 0).
 
-2004-04-08 17:05  dblasby
+2004-04-08 17:05  David Blasby <dblasby at gmail.com>
 
-	* Somehow the memory leak changes I made got removed - I've
-	  re-added them.
+	* [r503] postgis_gist_72.c: Somehow the memory leak changes I made
+	  got removed - I've re-added them.
 
-2004-04-08 17:00  dblasby
+2004-04-08 17:00  David Blasby <dblasby at gmail.com>
 
-	* Changed ggeometry_consistent to be aware of NULL queries. Ie.
+	* [r502] postgis_gist_72.c: Changed ggeometry_consistent to be
+	  aware of NULL queries. Ie.
 	  select * from <table> where the_geom && null::geometry;
 	  
 	  This tends to happen when you're joining two tables using && and
 	  the table
 	  has NULLs in it.
 
-2004-04-07 23:12  dblasby
+2004-04-07 23:12  David Blasby <dblasby at gmail.com>
 
-	* Added a cstring(lwgeom) function that returns WKT!
+	* [r501] lwgeom/Makefile, lwgeom/lwgeom.sql.in,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/stringBuffer.c, lwgeom/stringBuffer.h: Added a
+	  cstring(lwgeom) function that returns WKT!
 
-2004-04-07 16:23  strk
+2004-04-07 16:23  Sandro Santilli <strk at keybit.net>
 
-	* Made new postgis.sql generation procedure the default
+	* [r500] Makefile: Made new postgis.sql generation procedure the
+	  default
 
-2004-04-06 22:58  dblasby
+2004-04-06 22:58  David Blasby <dblasby at gmail.com>
 
-	* Changes to make it work with all the PostGIS type.
+	* [r499] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_inout.c: Changes to make it work with all the
+	  PostGIS type.
 
-2004-04-02 19:03  dblasby
+2004-04-02 19:03  David Blasby <dblasby at gmail.com>
 
-	* Added support for 4d coordinates
+	* [r498] lwgeom/lwgeom.h, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_inout.c: Added support for 4d coordinates
 
-2004-03-29 10:46  strk
+2004-03-29 10:46  Sandro Santilli <strk at keybit.net>
 
-	* postgis.sql.in is now parsed by both sed and cpp
+	* [r497] Makefile, postgis.sql.in: postgis.sql.in is now parsed by
+	  both sed and cpp
 
-2004-03-29 10:20  strk
+2004-03-29 10:20  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in WKB parsing for Multipoints.
+	* [r496] loader/pgsql2shp.c: Fixed a bug in WKB parsing for
+	  Multipoints.
 	  Fixed a bug in -d handling for WKB.
 	  Added point->multipoint fluffing capabilities.
 
-2004-03-26 01:09  pramsey
+2004-03-26 01:09  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Removed rogue docbook tags
+	* [r495] doc/postgis.xml: Removed rogue docbook tags
 
-2004-03-26 01:07  dblasby
+2004-03-26 01:07  David Blasby <dblasby at gmail.com>
 
-	* changed name of fluffType() to multi().
+	* [r494] Attic/postgis_sql_common.sql.in: changed name of
+	  fluffType() to multi().
 
-2004-03-26 00:54  dblasby
+2004-03-26 00:54  David Blasby <dblasby at gmail.com>
 
-	* added full support for fluffType(<geom>)
+	* [r493] Attic/postgis_sql_common.sql.in, postgis.h, postgis_fn.c:
+	  added full support for fluffType(<geom>)
 	  postgis09=# select fluffType('POINT(0 0)');
 	  flufftype
 	  -------------------------
 	  SRID=-1;MULTIPOINT(0 0)
 
-2004-03-25 00:43  dblasby
+2004-03-25 00:43  David Blasby <dblasby at gmail.com>
 
-	* added function fluffType() that takes POINT LINESTRING or POLYGON
+	* [r492] postgis_fn.c: added function fluffType() that takes POINT
+	  LINESTRING or POLYGON
 	  type and converts it to a multi*.
 	  Needs to be integrated into a proper Postgresql function and
 	  given an
 	  SQL CREATE FUNCTION
 
-2004-03-22 09:39  strk
+2004-03-22 09:39  Sandro Santilli <strk at keybit.net>
 
-	* Moved AddGeometryColumn and DropGeometryColumn from USE_VERSION
+	* [r491] postgis.sql.in: Moved AddGeometryColumn and
+	  DropGeometryColumn from USE_VERSION
 	  blocks to the end of file. Here, differences between versions
 	  are handled on a minimun-diff basis, making it easier to
 	  understand
@@ -44532,347 +65923,393 @@
 	  splitted between pgsql < 73 and >= 73.
 	  Added reduced-parameters wrappers to both functions.
 
-2004-03-22 08:18  strk
+2004-03-22 08:18  Sandro Santilli <strk at keybit.net>
 
-	* postgis_new.sql build by default
+	* [r490] Makefile: postgis_new.sql build by default
 
-2004-03-19 16:35  strk
+2004-03-19 16:35  Sandro Santilli <strk at keybit.net>
 
-	* Updated AddGeometryColumn() and DropGeometryColumn() descriptions
-	  to the schema-aware versions
+	* [r489] doc/postgis.xml: Updated AddGeometryColumn() and
+	  DropGeometryColumn() descriptions to the schema-aware versions
 
-2004-03-15 17:07  strk
+2004-03-15 17:07  Sandro Santilli <strk at keybit.net>
 
-	* Added calls to vacuum_delay_point() to give backend a chance of
+	* [r488] postgis_estimate.c: Added calls to vacuum_delay_point() to
+	  give backend a chance of
 	  interrupting geometry stats computation.
 	  Set default DEBUG_GEOMETRY_STATS to 0.
 
-2004-03-11 01:27  dblasby
+2004-03-11 01:27  David Blasby <dblasby at gmail.com>
 
-	* minor clean and trying to figure out a memory bug. valgrind wasnt
-	  helping, but
+	* [r487] lwgeom/lwgeom.sql.in, lwgeom/lwgeom_api.c,
+	  lwgeom/lwgeom_inout.c: minor clean and trying to figure out a
+	  memory bug. valgrind wasnt helping, but
 	  it went away.
 
-2004-03-11 00:54  dblasby
+2004-03-11 00:54  David Blasby <dblasby at gmail.com>
 
-	* Should be working (with a tonne of notices) for points lines and
-	  polygons (2d
+	* [r486] lwgeom/lwgeom.h, lwgeom/lwgeom.sql.in,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_inout.c: Should be working
+	  (with a tonne of notices) for points lines and polygons (2d
 	  and 3d)
 
-2004-03-10 18:46  strk
+2004-03-10 18:46  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug reducing the output shapes from Multipolygon tables.
+	* [r485] loader/pgsql2shp.c: Fixed a bug reducing the output shapes
+	  from Multipolygon tables.
 
-2004-03-10 17:35  strk
+2004-03-10 17:35  Sandro Santilli <strk at keybit.net>
 
-	* removed just-introduced bug
+	* [r484] loader/shp2pgsql.c: removed just-introduced bug
 
-2004-03-10 17:23  strk
+2004-03-10 17:23  Sandro Santilli <strk at keybit.net>
 
-	* code cleanup, fixed a bug missing to transform 'gid' to 'gid__2'
-	  in shapefile attribute name
+	* [r483] loader/shp2pgsql.c: code cleanup, fixed a bug missing to
+	  transform 'gid' to 'gid__2' in shapefile attribute name
 
-2004-03-10 01:15  dblasby
+2004-03-10 01:15  David Blasby <dblasby at gmail.com>
 
-	* WKB reader and WKB writer (totally untested)
+	* [r482] lwgeom/Makefile, lwgeom/lwgeom.h, lwgeom/lwgeom.sql.in,
+	  lwgeom/lwgeom_api.c, lwgeom/lwgeom_inout.c: WKB reader and WKB
+	  writer (totally untested)
 
-2004-03-09 17:29  dblasby
+2004-03-09 17:29  David Blasby <dblasby at gmail.com>
 
-	* Initial implementation - should compile; not at all tested.
+	* [r481] lwgeom/Makefile, lwgeom/lwgeom.h, lwgeom/lwgeom_api.c:
+	  Initial implementation - should compile; not at all tested.
 
-2004-03-09 00:21  strk
+2004-03-09 00:21  Sandro Santilli <strk at keybit.net>
 
-	* Removed useless code blocks in histogram builder
+	* [r480] postgis_estimate.c: Removed useless code blocks in
+	  histogram builder
 
-2004-03-09 00:09  strk
+2004-03-09 00:09  Sandro Santilli <strk at keybit.net>
 
-	* estimator applies a gain of AOI/cell_area on each cell it
-	  intersects (reverted to previous behaviour)
+	* [r479] postgis_estimate.c: estimator applies a gain of
+	  AOI/cell_area on each cell it intersects (reverted to previous
+	  behaviour)
 
-2004-03-08 17:21  strk
+2004-03-08 17:21  Sandro Santilli <strk at keybit.net>
 
-	* changed error computation code to delta/totrows
+	* [r478] utils/test_estimation.pl: changed error computation code
+	  to delta/totrows
 
-2004-03-08 12:16  strk
+2004-03-08 12:16  Sandro Santilli <strk at keybit.net>
 
-	* Added the RECHECK clause for gist_geometry_ops operator class
-	  operators
+	* [r477] postgis.sql.in: Added the RECHECK clause for
+	  gist_geometry_ops operator class operators
 
-2004-03-06 18:02  strk
+2004-03-06 18:02  Sandro Santilli <strk at keybit.net>
 
-	* Comma-separated bps values accepted
+	* [r476] utils/test_estimation.pl: Comma-separated bps values
+	  accepted
 
-2004-03-06 17:43  strk
+2004-03-06 17:43  Sandro Santilli <strk at keybit.net>
 
-	* Added RCSID string in usage output
+	* [r475] loader/pgsql2shp.c, loader/shp2pgsql.c: Added RCSID string
+	  in usage output
 
-2004-03-06 17:35  strk
+2004-03-06 17:35  Sandro Santilli <strk at keybit.net>
 
-	* Added rcsid string to usage output
+	* [r474] loader/shp2pgsql.c: Added rcsid string to usage output
 
-2004-03-05 21:06  strk
+2004-03-05 21:06  Sandro Santilli <strk at keybit.net>
 
-	* Added -vacuum switch
+	* [r473] utils/test_estimation.pl: Added -vacuum switch
 
-2004-03-05 21:03  strk
+2004-03-05 21:03  Sandro Santilli <strk at keybit.net>
 
-	* Made the -bps switch specify the exact level(s) at which to run
-	  the test
+	* [r472] utils/test_estimation.pl: Made the -bps switch specify the
+	  exact level(s) at which to run the test
 
-2004-03-05 18:25  dblasby
+2004-03-05 18:25  David Blasby <dblasby at gmail.com>
 
-	* Empty files - preparing for writting actual code.
+	* [r471] lwgeom/lwgeom_api.c, lwgeom/lwgeom_estimate.c,
+	  lwgeom/lwgeom_functions_analytic.c,
+	  lwgeom/lwgeom_functions_basic.c, lwgeom/lwgeom_geos.c,
+	  lwgeom/lwgeom_gist.c, lwgeom/lwgeom_inout.c,
+	  lwgeom/lwgeom_transform.c: Empty files - preparing for writting
+	  actual code.
 
-2004-03-05 18:23  dblasby
+2004-03-05 18:23  David Blasby <dblasby at gmail.com>
 
-	* Same as the one in the above directory
+	* [r470] lwgeom, lwgeom/lwgeom.h: Same as the one in the above
+	  directory
 
-2004-03-05 18:23  dblasby
+2004-03-05 18:23  David Blasby <dblasby at gmail.com>
 
-	* moved to lwgeom/ directory
+	* [r469] lwgeom.h: moved to lwgeom/ directory
 
-2004-03-05 18:16  strk
+2004-03-05 18:16  Sandro Santilli <strk at keybit.net>
 
-	* Applied Mark Cave-Ayland patch
+	* [r468] postgis_gist_72.c: Applied Mark Cave-Ayland patch
 
-2004-03-05 16:40  strk
+2004-03-05 16:40  Sandro Santilli <strk at keybit.net>
 
-	* rewritten split_extent to be more datatype-conservative
+	* [r467] utils/test_estimation.pl: rewritten split_extent to be
+	  more datatype-conservative
 
-2004-03-05 16:01  strk
+2004-03-05 16:01  Sandro Santilli <strk at keybit.net>
 
-	* added -bps switch to set maximun query level. reworked command
-	  line parsing
+	* [r466] utils/test_estimation.pl: added -bps switch to set maximun
+	  query level. reworked command line parsing
 
-2004-03-05 15:29  strk
+2004-03-05 15:29  Sandro Santilli <strk at keybit.net>
 
-	* more verbose output
+	* [r465] utils/test_estimation.pl: more verbose output
 
-2004-03-05 11:52  strk
+2004-03-05 11:52  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r464] utils, utils/README, utils/test_estimation.pl: initial
+	  import
 
-2004-03-05 00:38  dblasby
+2004-03-05 00:38  David Blasby <dblasby at gmail.com>
 
-	* Initial version - still under discussion.
+	* [r463] lwgeom.h: Initial version - still under discussion.
 
-2004-03-04 13:50  strk
+2004-03-04 13:50  Sandro Santilli <strk at keybit.net>
 
-	* postgis_gist_sel(): added warnings if search_box goes outside of
-	  histogram grid
+	* [r462] postgis_estimate.c: postgis_gist_sel(): added warnings if
+	  search_box goes outside of histogram grid
 
-2004-03-04 09:44  strk
+2004-03-04 09:44  Sandro Santilli <strk at keybit.net>
 
-	* The selectivity estimator does add the full value of each cell it
-	  overlaps,
+	* [r461] postgis_estimate.c: The selectivity estimator does add the
+	  full value of each cell it overlaps,
 	  regardless of the actual overlapping area. Final gain is not
 	  applied
 	  (formerly 1 / minimun between average feature cells occupation
 	  and
 	  search_box cells occupation)
 
-2004-03-03 21:59  strk
+2004-03-03 21:59  Sandro Santilli <strk at keybit.net>
 
-	* added check to keep selectivity value in the range of validity
-	  (suggested by m.cave)
+	* [r460] postgis_estimate.c: added check to keep selectivity value
+	  in the range of validity (suggested by m.cave)
 
-2004-03-02 11:39  strk
+2004-03-02 11:39  Sandro Santilli <strk at keybit.net>
 
-	* cpp call for postgis_new.sql creation uses shell redirection for
-	  the output file
+	* [r459] Makefile: cpp call for postgis_new.sql creation uses shell
+	  redirection for the output file
 
-2004-03-02 11:37  strk
+2004-03-02 11:37  Sandro Santilli <strk at keybit.net>
 
-	* modified to reflect new statistics building process for PG75
+	* [r458] postgis.sql.in: modified to reflect new statistics
+	  building process for PG75
 
-2004-03-01 16:02  strk
+2004-03-01 16:02  Sandro Santilli <strk at keybit.net>
 
-	* histogram's boxesPerSide computed as a function of the column's
-	  statistic target
+	* [r457] postgis_estimate.c: histogram's boxesPerSide computed as a
+	  function of the column's statistic target
 
-2004-02-29 21:53  strk
+2004-02-29 21:53  Sandro Santilli <strk at keybit.net>
 
-	* bug fix in postgis_gist_sel (for PG75): SysCache is not released
-	  if not acquired
+	* [r456] postgis_estimate.c: bug fix in postgis_gist_sel (for
+	  PG75): SysCache is not released if not acquired
 
-2004-02-28 14:44  strk
+2004-02-28 14:44  Sandro Santilli <strk at keybit.net>
 
-	* Added rule to generate postgis_new.sql from postgis.sql.in using
-	  cpp
+	* [r455] Makefile: Added rule to generate postgis_new.sql from
+	  postgis.sql.in using cpp
 
-2004-02-28 14:43  strk
+2004-02-28 14:43  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r454] postgis.sql.in: initial import
 
-2004-02-26 16:42  strk
+2004-02-26 16:42  Sandro Santilli <strk at keybit.net>
 
-	* Fixed bugs reported by Mark Cave-Ayland
-	  <m.cave-ayland at webbased.co.uk>.
+	* [r453] postgis_estimate.c: Fixed bugs reported by Mark
+	  Cave-Ayland <m.cave-ayland at webbased.co.uk>.
 	  Re-introduced previously removed estimate value incrementation by
 	  the fractional part of each of the cells' value computed as the
 	  fraction
 	  of overlapping area.
 
-2004-02-25 13:17  strk
+2004-02-25 13:17  Sandro Santilli <strk at keybit.net>
 
-	* RTContainedBy and RTOverlap strategries implemented locally with
-	  a pgbox_overlap function
+	* [r452] postgis_gist_72.c: RTContainedBy and RTOverlap strategries
+	  implemented locally with a pgbox_overlap function
 
-2004-02-25 12:00  strk
+2004-02-25 12:00  Sandro Santilli <strk at keybit.net>
 
-	* Added handling for point features in histogram creation (add 1
-	  instead of AOI/cell_area when AOI is 0).
+	* [r451] postgis_estimate.c: Added handling for point features in
+	  histogram creation (add 1 instead of AOI/cell_area when AOI is
+	  0).
 	  Fixed a wrong cast of BOX3D to BOX (called the convertion func).
 	  Added some comments and an implementation on how to change
 	  evaluation
 	  based on the average feature and search box cells occupation.
 
-2004-02-25 00:46  strk
+2004-02-25 00:46  Sandro Santilli <strk at keybit.net>
 
-	* initial version of && selectivity estimation for PG75
+	* [r450] postgis_estimate.c: initial version of && selectivity
+	  estimation for PG75
 
-2004-02-23 21:59  strk
+2004-02-23 21:59  Sandro Santilli <strk at keybit.net>
 
-	* geometry analyzer builds the histogram
+	* [r449] postgis_estimate.c: geometry analyzer builds the histogram
 
-2004-02-23 12:18  strk
+2004-02-23 12:18  Sandro Santilli <strk at keybit.net>
 
-	* added skeleton functions for pg75 stats integration
+	* [r448] Attic/postgis_sql_75_end.sql.in,
+	  Attic/postgis_sql_75_start.sql.in, postgis.h, postgis_estimate.c:
+	  added skeleton functions for pg75 stats integration
 
-2004-02-12 10:34  strk
+2004-02-12 10:34  Sandro Santilli <strk at keybit.net>
 
-	* changed USE_GEOS check from ifdef / ifndef to if / if !
+	* [r447] postgis_fn.c, postgis_geos.c: changed USE_GEOS check from
+	  ifdef / ifndef to if / if !
 
-2004-02-09 18:49  strk
+2004-02-09 18:49  Sandro Santilli <strk at keybit.net>
 
-	* byte endiannes detected empirically
+	* [r446] loader/pgsql2shp.c: byte endiannes detected empirically
 
-2004-02-06 08:26  strk
+2004-02-06 08:26  Sandro Santilli <strk at keybit.net>
 
-	* updated wkb reading funx to reflect changes made by pramsey in
-	  postgis_inout.c to be nicer with solaris
+	* [r445] loader/pgsql2shp.c: updated wkb reading funx to reflect
+	  changes made by pramsey in postgis_inout.c to be nicer with
+	  solaris
 
-2004-02-06 00:42  dblasby
+2004-02-06 00:42  David Blasby <dblasby at gmail.com>
 
-	* moved forward declarations from postgis.h to postgis_proj.c
+	* [r444] postgis_proj.c: moved forward declarations from postgis.h
+	  to postgis_proj.c
 
-2004-02-05 20:31  dblasby
+2004-02-05 20:31  David Blasby <dblasby at gmail.com>
 
-	* Optimized the curvature method (doesnt have to calculate e2)
+	* [r443] postgis_proj.c: Optimized the curvature method (doesnt
+	  have to calculate e2)
 
-2004-02-05 20:21  dblasby
+2004-02-05 20:21  David Blasby <dblasby at gmail.com>
 
-	* Added 'curvature method' for cases where the original algorithm
-	  breaks down.
+	* [r442] postgis_proj.c: Added 'curvature method' for cases where
+	  the original algorithm breaks down.
 
-2004-02-04 22:27  strk
+2004-02-04 22:27  Sandro Santilli <strk at keybit.net>
 
-	* Added pg75 support scripts
+	* [r441] Attic/postgis_sql_75_end.sql.in,
+	  Attic/postgis_sql_75_start.sql.in: Added pg75 support scripts
 
-2004-02-04 22:21  strk
+2004-02-04 22:21  Sandro Santilli <strk at keybit.net>
 
-	* Added detection code for PG75
+	* [r440] Makefile: Added detection code for PG75
 
-2004-02-04 02:53  dblasby
+2004-02-04 02:53  David Blasby <dblasby at gmail.com>
 
-	* applied patricia tozer's patch (distance function was taking acos
-	  of something
+	* [r439] postgis_proj.c: applied patricia tozer's patch (distance
+	  function was taking acos of something
 	  just slightly outside [-1,1]).
 
-2004-02-03 22:19  pramsey
+2004-02-03 22:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Backed default sql file location out of contrib insto share
+	* [r438] Makefile: Backed default sql file location out of contrib
+	  insto share
 
-2004-02-03 22:04  pramsey
+2004-02-03 22:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Real DESTDIR changes this time.
+	* [r437] Makefile: Real DESTDIR changes this time.
 
-2004-02-03 21:51  pramsey
+2004-02-03 21:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ooops, let local configuration slip into cvs version
+	* [r436] Makefile: Ooops, let local configuration slip into cvs
+	  version
 
-2004-02-03 21:42  pramsey
+2004-02-03 21:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed error in -C loader directive
+	* [r435] Makefile: Fixed error in -C loader directive
 
-2004-02-03 21:38  pramsey
+2004-02-03 21:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added DESTDIR to Makefiles to assist in RPM building.
+	* [r434] Makefile, loader/Makefile: Added DESTDIR to Makefiles to
+	  assist in RPM building.
 
-2004-02-03 08:37  strk
+2004-02-03 08:37  Sandro Santilli <strk at keybit.net>
 
-	* schema support added, slightly modified logic used to keep table
-	  and schema names cases (always quoted and forced to lower case if
-	  not asked to keep original case)
+	* [r433] loader/shp2pgsql.c: schema support added, slightly
+	  modified logic used to keep table and schema names cases (always
+	  quoted and forced to lower case if not asked to keep original
+	  case)
 
-2004-01-25 19:33  pramsey
+2004-01-25 19:33  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Test commit on new CVS archive.
+	* [r432] postgis.h: Test commit on new CVS archive.
 
-2004-01-21 19:11  strk
+2004-01-21 19:11  Sandro Santilli <strk at keybit.net>
 
-	* Added line_interpolate_point entry
+	* [r431] doc/postgis.xml: Added line_interpolate_point entry
 
-2004-01-21 19:04  strk
+2004-01-21 19:04  Sandro Santilli <strk at keybit.net>
 
-	* Added line_interpolate_point function by jsunday at rochgrp.com
+	* [r430] Attic/postgis_sql_common.sql.in, postgis.h,
+	  postgis_algo.c: Added line_interpolate_point function by
+	  jsunday at rochgrp.com
 
-2004-01-20 20:14  strk
+2004-01-20 20:14  Sandro Santilli <strk at keybit.net>
 
-	* cleaner comments for DropGeometryColumn
+	* [r429] Attic/postgis_sql_73_end.sql.in,
+	  Attic/postgis_sql_74_end.sql.in: cleaner comments for
+	  DropGeometryColumn
 
-2004-01-20 20:10  strk
+2004-01-20 20:10  Sandro Santilli <strk at keybit.net>
 
-	* removed bogus comment about missed alter table drop column
+	* [r428] Attic/postgis_sql_74_end.sql.in: removed bogus comment
+	  about missed alter table drop column
 
-2004-01-16 20:06  strk
+2004-01-16 20:06  Sandro Santilli <strk at keybit.net>
 
-	* Added FTLogical<->boolean mapping
+	* [r427] loader/shp2pgsql.c: Added FTLogical<->boolean mapping
 
-2004-01-15 09:57  strk
+2004-01-15 09:57  Sandro Santilli <strk at keybit.net>
 
-	* field type array allocates num_fields * sizeof(int) instead of
-	  sizeof(char*)
+	* [r426] loader/shp2pgsql.c: field type array allocates num_fields
+	  * sizeof(int) instead of sizeof(char*)
 
-2004-01-15 00:23  pramsey
+2004-01-15 00:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change absolute classpath reference to relative.
+	* [r425] jdbc/Makefile: Change absolute classpath reference to
+	  relative.
 
-2004-01-14 01:52  pramsey
+2004-01-14 01:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix solaris alignment problem in transformations.
+	* [r424] postgis_transform.c: Fix solaris alignment problem in
+	  transformations.
 
-2004-01-13 22:14  pramsey
+2004-01-13 22:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed getint and getdouble used by WKB so that it plays nice
-	  with
+	* [r423] postgis_inout.c: Changed getint and getdouble used by WKB
+	  so that it plays nice with
 	  memory alignment (solaris issue).
 
-2004-01-13 20:30  strk
+2004-01-13 20:30  Sandro Santilli <strk at keybit.net>
 
-	* Added useless PG_RETURN_NULL() call to make compiler happy
+	* [r422] postgis_debug.c: Added useless PG_RETURN_NULL() call to
+	  make compiler happy
 
-2004-01-12 19:12  pramsey
+2004-01-12 19:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates for 0.8.1 release.
+	* [r420] CHANGES, README.postgis: Updates for 0.8.1 release.
 
-2004-01-02 20:11  strk
+2004-01-02 20:11  Sandro Santilli <strk at keybit.net>
 
-	* always call setval with no schema specification. drop 'database'
-	  argument using the empty string to the AddGeometryColumn call
+	* [r419] loader/shp2pgsql.c: always call setval with no schema
+	  specification. drop 'database' argument using the empty string to
+	  the AddGeometryColumn call
 
-2003-12-30 13:31  strk
+2003-12-30 13:31  Sandro Santilli <strk at keybit.net>
 
-	* made shp2pgsql looser about numeric precisions
+	* [r418] loader/shp2pgsql.c: made shp2pgsql looser about numeric
+	  precisions
 
-2003-12-30 12:37  strk
+2003-12-30 12:37  Sandro Santilli <strk at keybit.net>
 
-	* Fixed segfault bug reported by Randy George, removed explicit
-	  sequence drop
+	* [r417] loader/shp2pgsql.c: Fixed segfault bug reported by Randy
+	  George, removed explicit sequence drop
 
-2003-12-30 10:40  strk
+2003-12-30 10:40  Sandro Santilli <strk at keybit.net>
 
-	* For all versions:
+	* [r416] Attic/postgis_sql_71_end.sql.in,
+	  Attic/postgis_sql_72_end.sql.in, Attic/postgis_sql_73_end.sql.in,
+	  Attic/postgis_sql_74_end.sql.in: For all versions:
 	  Updated fix_geometry_columns to use a more readable format in
 	  queries.
 	  
@@ -44885,508 +66322,561 @@
 	  Updated DropGeometryColumn to actually issue the
 	  ALTER TABLE DROP COLUMN query.
 
-2003-12-27 13:30  strk
+2003-12-27 13:30  Sandro Santilli <strk at keybit.net>
 
-	* Added schema specification support
+	* [r415] loader/pgsql2shp.c: Added schema specification support
 
-2003-12-23 09:00  strk
+2003-12-23 09:00  Sandro Santilli <strk at keybit.net>
 
-	* AddGeometryColumn, DropGeometryColum moved to version-specific
+	* [r414] Attic/postgis_sql_71_end.sql.in,
+	  Attic/postgis_sql_72_end.sql.in, Attic/postgis_sql_73_end.sql.in,
+	  Attic/postgis_sql_74_end.sql.in, Attic/postgis_sql_common.sql.in:
+	  AddGeometryColumn, DropGeometryColum moved to version-specific
 	  scripts.
 	  Schema support enabled for version 73 and 74.
 
-2003-12-19 18:55  strk
+2003-12-19 18:55  Sandro Santilli <strk at keybit.net>
 
-	* substituted setenv() calls with putenv() for Solaris support
+	* [r413] loader/pgsql2shp.c: substituted setenv() calls with
+	  putenv() for Solaris support
 
-2003-12-18 18:07  strk
+2003-12-18 18:07  Sandro Santilli <strk at keybit.net>
 
-	* Changed fix_geometry_columns() for PG >= 73 so to set
+	* [r412] Attic/postgis_sql_71_end.sql.in,
+	  Attic/postgis_sql_72_end.sql.in, Attic/postgis_sql_73_end.sql.in,
+	  Attic/postgis_sql_74_end.sql.in, Attic/postgis_sql_common.sql.in:
+	  Changed fix_geometry_columns() for PG >= 73 so to set
 	  f_table_schema to
 	  the empty string if its value is not a valid pg namespace.
 
-2003-12-16 11:04  strk
+2003-12-16 11:04  Sandro Santilli <strk at keybit.net>
 
-	* added simplify() documentation
+	* [r411] doc/postgis.xml: added simplify() documentation
 
-2003-12-12 18:00  strk
+2003-12-12 18:00  Sandro Santilli <strk at keybit.net>
 
-	* reverted make_line patch, patched size_subobject instead - the
-	  reported bug was caused to their inconsistency
+	* [r410] postgis_inout.c: reverted make_line patch, patched
+	  size_subobject instead - the reported bug was caused to their
+	  inconsistency
 
-2003-12-12 14:39  strk
+2003-12-12 14:39  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a bug in make_line allocating less memory then required
+	* [r409] postgis_inout.c: Fixed a bug in make_line allocating less
+	  memory then required
 
-2003-12-12 13:34  strk
+2003-12-12 13:34  Sandro Santilli <strk at keybit.net>
 
-	* added missing 'const' in prototypes
+	* [r408] postgis_geos_wrapper.cpp: added missing 'const' in
+	  prototypes
 
-2003-12-12 12:03  strk
+2003-12-12 12:03  Sandro Santilli <strk at keybit.net>
 
-	* More debugging output, some code cleanup.
+	* [r407] postgis_geos.c, postgis_geos_wrapper.cpp, postgis_inout.c:
+	  More debugging output, some code cleanup.
 
-2003-12-12 10:28  strk
+2003-12-12 10:28  Sandro Santilli <strk at keybit.net>
 
-	* added GEOSnoop OUTPUT debugging info
+	* [r406] postgis_geos.c: added GEOSnoop OUTPUT debugging info
 
-2003-12-12 10:08  strk
+2003-12-12 10:08  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOSnoop function and some optional debugging output for
+	* [r405] Attic/postgis_sql_common.sql.in, postgis_geos.c: Added
+	  GEOSnoop function and some optional debugging output for
 	  geos<->postgis converter (define DEBUG_CONVERTER at top
 	  postgis_geos.c)
 
-2003-12-09 11:58  strk
+2003-12-09 11:58  Sandro Santilli <strk at keybit.net>
 
-	* Final touch to wkb binary input function
+	* [r404] postgis_inout.c: Final touch to wkb binary input function
 
-2003-12-09 11:13  strk
+2003-12-09 11:13  Sandro Santilli <strk at keybit.net>
 
-	* WKB_recv: set StringInfo cursor to the end of StringInfo buf as
-	  required by postgres backend
+	* [r403] postgis_inout.c: WKB_recv: set StringInfo cursor to the
+	  end of StringInfo buf as required by postgres backend
 
-2003-12-08 17:57  strk
+2003-12-08 17:57  Sandro Santilli <strk at keybit.net>
 
-	* Binary WKB input function built only when USE_VERSION > 73.
-	  Making some modifications based on reported failures
+	* [r402] postgis_inout.c: Binary WKB input function built only when
+	  USE_VERSION > 73. Making some modifications based on reported
+	  failures
 
-2003-12-04 19:12  strk
+2003-12-04 19:12  Sandro Santilli <strk at keybit.net>
 
-	* Removed useless linkages from dumper and loader
+	* [r401] loader/Makefile: Removed useless linkages from dumper and
+	  loader
 
-2003-12-04 19:11  strk
+2003-12-04 19:11  Sandro Santilli <strk at keybit.net>
 
-	* code cleanup (removed useless and leaking malloc calls)
+	* [r400] loader/pgsql2shp.c: code cleanup (removed useless and
+	  leaking malloc calls)
 
-2003-12-04 18:58  dblasby
+2003-12-04 18:58  David Blasby <dblasby at gmail.com>
 
-	* changed david skae to skea
+	* [r399] postgis_proj.c: changed david skae to skea
 
-2003-12-01 20:52  strk
+2003-12-01 20:52  Sandro Santilli <strk at keybit.net>
 
-	* shapelib put in sync with gdal cvs
+	* [r398] loader/dbfopen.c, loader/shapefil.h, loader/shpopen.c:
+	  shapelib put in sync with gdal cvs
 
-2003-12-01 14:27  strk
+2003-12-01 14:27  Sandro Santilli <strk at keybit.net>
 
-	* added simple malloc wrapper
+	* [r397] loader/shp2pgsql.c: added simple malloc wrapper
 
-2003-11-28 11:28  strk
+2003-11-28 11:28  Sandro Santilli <strk at keybit.net>
 
-	* Some more changes, now useless since wkb.h is no more used (just
-	  to get in sync)
+	* [r396] loader/wkb.h: Some more changes, now useless since wkb.h
+	  is no more used (just to get in sync)
 
-2003-11-28 11:25  strk
+2003-11-28 11:25  Sandro Santilli <strk at keybit.net>
 
-	* Added explicit geometry as text cast
+	* [r395] Attic/postgis_sql_73_end.sql.in,
+	  Attic/postgis_sql_74_end.sql.in: Added explicit geometry as text
+	  cast
 
-2003-11-28 11:06  strk
+2003-11-28 11:06  Sandro Santilli <strk at keybit.net>
 
-	* Added WKB_recv function for binary WKB input
+	* [r394] Attic/postgis_sql_74_end.sql.in,
+	  Attic/postgis_sql_74_start.sql.in, postgis.h, postgis_inout.c:
+	  Added WKB_recv function for binary WKB input
 
-2003-11-26 18:54  strk
+2003-11-26 18:54  Sandro Santilli <strk at keybit.net>
 
-	* fixed bug in HexDecoder, made WKB parsing the default
+	* [r393] loader/pgsql2shp.c: fixed bug in HexDecoder, made WKB
+	  parsing the default
 
-2003-11-26 18:14  strk
+2003-11-26 18:14  Sandro Santilli <strk at keybit.net>
 
-	* binary cursor implemented
+	* [r392] loader/pgsql2shp.c: binary cursor implemented
 
-2003-11-26 17:21  strk
+2003-11-26 17:21  Sandro Santilli <strk at keybit.net>
 
-	* Made HEXWKB parsing settable at compile time
+	* [r391] loader/pgsql2shp.c: Made HEXWKB parsing settable at
+	  compile time
 
-2003-11-26 16:40  strk
+2003-11-26 16:40  Sandro Santilli <strk at keybit.net>
 
-	* Handled NULLS in wkb parsing, reduced functions args
+	* [r390] loader/pgsql2shp.c: Handled NULLS in wkb parsing, reduced
+	  functions args
 
-2003-11-26 15:45  strk
+2003-11-26 15:45  Sandro Santilli <strk at keybit.net>
 
-	* wkb support for all geom types
+	* [r389] loader/pgsql2shp.c: wkb support for all geom types
 
-2003-11-26 14:31  strk
+2003-11-26 14:31  Sandro Santilli <strk at keybit.net>
 
-	* WKB start to work
+	* [r388] loader/pgsql2shp.c: WKB start to work
 
-2003-11-25 17:32  strk
+2003-11-25 17:32  Sandro Santilli <strk at keybit.net>
 
-	* first attempt at wkb definitions
+	* [r387] loader/wkb.h: first attempt at wkb definitions
 
-2003-11-25 17:28  strk
+2003-11-25 17:28  Sandro Santilli <strk at keybit.net>
 
-	* hardly trying to get WKB parsing work
+	* [r386] loader/pgsql2shp.c: hardly trying to get WKB parsing work
 
-2003-11-25 03:03  pramsey
+2003-11-25 03:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates for 0.8.0 release.
+	* [r385] CHANGES, CREDITS, README.postgis, TODO: Updates for 0.8.0
+	  release.
 
-2003-11-25 02:38  pramsey
+2003-11-25 02:38  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed syntax error in execution example.
+	* [r384] examples/ogc_test_suite/README: Fixed syntax error in
+	  execution example.
 
-2003-11-24 17:36  strk
+2003-11-24 17:36  Sandro Santilli <strk at keybit.net>
 
-	* Removed useless BYTE_ORDER checks
+	* [r383] loader/pgsql2shp.c: Removed useless BYTE_ORDER checks
 
-2003-11-21 23:51  pramsey
+2003-11-21 23:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added Cygwin endian definition include to fix windows compile.
+	* [r381] loader/pgsql2shp.c: Added Cygwin endian definition include
+	  to fix windows compile.
 
-2003-11-20 18:01  strk
+2003-11-20 18:01  Sandro Santilli <strk at keybit.net>
 
-	* patch from m.spring at gmx.de
+	* [r380] loader/pgsql2shp.c: patch from m.spring at gmx.de
 
-2003-11-20 17:51  strk
+2003-11-20 17:51  Sandro Santilli <strk at keybit.net>
 
-	* Installs for PG>7.1 goes to pkglibdir
+	* [r379] Makefile: Installs for PG>7.1 goes to pkglibdir
 
-2003-11-20 16:46  strk
+2003-11-20 16:46  Sandro Santilli <strk at keybit.net>
 
-	* postgresql linking against libstdc++ reported as possibly needed
-	  for geos support
+	* [r378] doc/postgis.xml: postgresql linking against libstdc++
+	  reported as possibly needed for geos support
 
-2003-11-20 15:54  strk
+2003-11-20 15:54  Sandro Santilli <strk at keybit.net>
 
-	* Updated postgis library path to be referenced with /..
+	* [r377] Makefile: Updated postgis library path to be referenced
+	  with /..
 
-2003-11-20 15:34  strk
+2003-11-20 15:34  Sandro Santilli <strk at keybit.net>
 
-	* expected in-transaction memory release for btree operators
+	* [r376] postgis_ops.c: expected in-transaction memory release for
+	  btree operators
 
-2003-11-20 15:29  strk
+2003-11-20 15:29  Sandro Santilli <strk at keybit.net>
 
-	* Moved MODULE_FILENAME definition where it will be easly
-	  modifiable
+	* [r375] Makefile: Moved MODULE_FILENAME definition where it will
+	  be easly modifiable
 
-2003-11-20 15:27  strk
+2003-11-20 15:27  Sandro Santilli <strk at keybit.net>
 
-	* Removed some useless strdups.
+	* [r374] loader/pgsql2shp.c: Removed some useless strdups.
 	  Removed pgtype 22 (int2vector) from the list of integer DBF field
 	  types.
 	  Added pgtype 1700 (numeric) in DBF doubles list.
 
-2003-11-20 14:46  strk
+2003-11-20 14:46  Sandro Santilli <strk at keybit.net>
 
-	* Set CFLAGS where useless CPPFLAGS were used before
+	* [r373] loader/Makefile: Set CFLAGS where useless CPPFLAGS were
+	  used before
 
-2003-11-19 18:01  strk
+2003-11-19 18:01  Sandro Santilli <strk at keybit.net>
 
-	* CR removed
+	* [r372] postgis_debug.c: CR removed
 
-2003-11-19 17:50  strk
+2003-11-19 17:50  Sandro Santilli <strk at keybit.net>
 
-	* missing function definition added (I forgot - sorry)
+	* [r371] Attic/postgis_sql_common.sql.in: missing function
+	  definition added (I forgot - sorry)
 
-2003-11-19 15:44  strk
+2003-11-19 15:44  Sandro Santilli <strk at keybit.net>
 
-	* added prototypes for geometry_{le,ge,cmp}
+	* [r370] postgis.h: added prototypes for geometry_{le,ge,cmp}
 
-2003-11-19 15:29  strk
+2003-11-19 15:29  Sandro Santilli <strk at keybit.net>
 
-	* Added default btree operator class for PG7.4
+	* [r369] Attic/postgis_sql_74_end.sql.in: Added default btree
+	  operator class for PG7.4
 
-2003-11-19 15:26  strk
+2003-11-19 15:26  Sandro Santilli <strk at keybit.net>
 
-	* Added geometry_le, geometry_ge, geometry_cmp functions,
+	* [r368] postgis_ops.c: Added geometry_le, geometry_ge,
+	  geometry_cmp functions,
 	  modified geometry_lt, geometry_gt, geometry_eq to be consistent.
 
-2003-11-19 15:23  strk
+2003-11-19 15:23  Sandro Santilli <strk at keybit.net>
 
-	* Fixed wrong COMMUTATOR specifications in '<','>','~=','@'
-	  operators,
+	* [r367] Attic/postgis_sql_common.sql.in: Fixed wrong COMMUTATOR
+	  specifications in '<','>','~=','@' operators,
 	  added new '<=', '>=' operators
 
-2003-11-19 10:27  strk
+2003-11-19 10:27  Sandro Santilli <strk at keybit.net>
 
-	* typo fixed (ENABLE_SEQSCAN missing) - PG7.4 support listed in 2.2
+	* [r366] doc/postgis.xml: typo fixed (ENABLE_SEQSCAN missing) -
+	  PG7.4 support listed in 2.2
 
-2003-11-18 14:58  strk
+2003-11-18 14:58  Sandro Santilli <strk at keybit.net>
 
-	* default row buffer lenght set to 100
+	* [r365] loader/pgsql2shp.c: default row buffer lenght set to 100
 
-2003-11-18 14:39  strk
+2003-11-18 14:39  Sandro Santilli <strk at keybit.net>
 
-	* Some more structuring. Initialization routine moved out of main
-	  loop.
+	* [r364] loader/pgsql2shp.c: Some more structuring. Initialization
+	  routine moved out of main loop.
 	  Preparing dumper for WKB parsing.
 
-2003-11-16 00:27  strk
+2003-11-16 00:27  Sandro Santilli <strk at keybit.net>
 
-	* Huge code re-organization. More structured code, more errors
-	  handled,
+	* [r363] loader/pgsql2shp.c: Huge code re-organization. More
+	  structured code, more errors handled,
 	  cursor based iteration, less code lines.
 
-2003-11-14 22:04  strk
+2003-11-14 22:04  Sandro Santilli <strk at keybit.net>
 
-	* Used environment vars to pass libpq connection options (less
-	  error prone,
+	* [r362] loader/pgsql2shp.c: Used environment vars to pass libpq
+	  connection options (less error prone,
 	  easier to read). Printed clearer error message on query error.
 
-2003-11-13 13:14  strk
+2003-11-13 13:14  Sandro Santilli <strk at keybit.net>
 
-	* used quote_ident() calls in AddGeometryColumns as suggested by
-	  Bernhard Herzog
+	* [r361] Attic/postgis_sql_common.sql.in: used quote_ident() calls
+	  in AddGeometryColumns as suggested by Bernhard Herzog
 
-2003-11-12 20:59  strk
+2003-11-12 20:59  Sandro Santilli <strk at keybit.net>
 
-	* more cvsignore
+	* [r360] ., .cvsignore, loader, loader/.cvsignore: more cvsignore
 
-2003-11-12 20:57  strk
+2003-11-12 20:57  Sandro Santilli <strk at keybit.net>
 
-	* first import
+	* [r359] doc, doc/.cvsignore, doc/html, doc/html/.cvsignore: first
+	  import
 
-2003-11-12 20:55  strk
+2003-11-12 20:55  Sandro Santilli <strk at keybit.net>
 
-	* AddGeometryColumn column identifier case respect fix as suggested
-	  by Bernhard Herzog
+	* [r358] Attic/postgis_sql_common.sql.in: AddGeometryColumn column
+	  identifier case respect fix as suggested by Bernhard Herzog
 
-2003-11-12 16:36  strk
+2003-11-12 16:36  Sandro Santilli <strk at keybit.net>
 
-	* delete all caught exceptions after use
+	* [r357] postgis_geos_wrapper.cpp: delete all caught exceptions
+	  after use
 
-2003-11-11 11:28  strk
+2003-11-11 11:28  Sandro Santilli <strk at keybit.net>
 
-	* Added (mem)GeomUnion and (mem_)collect aggregates documentation,
-	  updated Centroid paragraph
+	* [r356] doc/postgis.xml: Added (mem)GeomUnion and (mem_)collect
+	  aggregates documentation, updated Centroid paragraph
 
-2003-11-11 10:58  strk
+2003-11-11 10:58  Sandro Santilli <strk at keybit.net>
 
-	* Fixed a typo in envelope()
+	* [r355] postgis_fn.c: Fixed a typo in envelope()
 
-2003-11-11 10:38  strk
+2003-11-11 10:38  Sandro Santilli <strk at keybit.net>
 
-	* Postgresql 7.4 enabler scripts.
+	* [r354] Attic/postgis_sql_74_end.sql.in,
+	  Attic/postgis_sql_74_start.sql.in: Postgresql 7.4 enabler
+	  scripts.
 
-2003-11-11 10:14  strk
+2003-11-11 10:14  Sandro Santilli <strk at keybit.net>
 
-	* Added support for PG74
+	* [r353] postgis_estimate.c: Added support for PG74
 
-2003-11-05 18:26  strk
+2003-11-05 18:26  Sandro Santilli <strk at keybit.net>
 
-	* Added fast collect() and geomunion() aggregates implementations
+	* [r352] Attic/postgis_sql_common.sql.in: Added fast collect() and
+	  geomunion() aggregates implementations
 
-2003-11-05 18:25  strk
+2003-11-05 18:25  Sandro Santilli <strk at keybit.net>
 
-	* moved #ifdef USE_GEOS below prototypes, added NULL implementation
-	  of unite_garray
+	* [r351] postgis_geos.c: moved #ifdef USE_GEOS below prototypes,
+	  added NULL implementation of unite_garray
 
-2003-11-05 18:02  strk
+2003-11-05 18:02  Sandro Santilli <strk at keybit.net>
 
-	* renamed unite_finalfunc to unite_garray
+	* [r350] postgis_geos.c: renamed unite_finalfunc to unite_garray
 
-2003-11-05 17:48  strk
+2003-11-05 17:48  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOS support tips to installation instructions
+	* [r349] doc/postgis.xml: Added GEOS support tips to installation
+	  instructions
 
-2003-11-05 11:00  strk
+2003-11-05 11:00  Sandro Santilli <strk at keybit.net>
 
-	* postgis.xml put back in place. Makefile modified to generate a
+	* [r348] doc/Makefile, doc/postgis.xml, doc/postgis.xml.in:
+	  postgis.xml put back in place. Makefile modified to generate a
 	  postgis-out.xml from postgis.xml.
 
-2003-11-04 21:54  strk
+2003-11-04 21:54  Sandro Santilli <strk at keybit.net>
 
-	* made last release version a parameter
+	* [r347] doc/postgis.xml.in: made last release version a parameter
 
-2003-11-04 21:52  strk
+2003-11-04 21:52  Sandro Santilli <strk at keybit.net>
 
-	* added 'global' specification to sed command
+	* [r346] doc/Makefile: added 'global' specification to sed command
 
-2003-11-04 19:23  strk
+2003-11-04 19:23  Sandro Santilli <strk at keybit.net>
 
-	* renamed postgis.xml to postgis.xml.in
+	* [r345] doc/postgis.xml, doc/postgis.xml.in: renamed postgis.xml
+	  to postgis.xml.in
 
-2003-11-04 19:20  strk
+2003-11-04 19:20  Sandro Santilli <strk at keybit.net>
 
-	* dropped 'clean' rule (not really a good idea right now)
+	* [r344] doc/Makefile: dropped 'clean' rule (not really a good idea
+	  right now)
 
-2003-11-04 19:07  strk
+2003-11-04 19:07  Sandro Santilli <strk at keybit.net>
 
-	* added doc clean in clean rule
+	* [r343] Makefile: added doc clean in clean rule
 
-2003-11-04 19:06  strk
+2003-11-04 19:06  Sandro Santilli <strk at keybit.net>
 
-	* added missing first geom pfree in unite_finalfunc
+	* [r342] postgis_geos.c: added missing first geom pfree in
+	  unite_finalfunc
 
-2003-11-04 18:56  strk
+2003-11-04 18:56  Sandro Santilli <strk at keybit.net>
 
-	* initial import
+	* [r341] doc/Makefile: initial import
 
-2003-10-29 15:53  strk
+2003-10-29 15:53  Sandro Santilli <strk at keybit.net>
 
-	* geoscentroid() removed. both geos and pgis versions are called
-	  'centroid'.
+	* [r340] postgis_fn.c, postgis_geos.c: geoscentroid() removed. both
+	  geos and pgis versions are called 'centroid'.
 	  only one version will be compiled based on USE_GEOS flag.
 
-2003-10-29 13:59  strk
+2003-10-29 13:59  Sandro Santilli <strk at keybit.net>
 
-	* Added geoscentroid function.
+	* [r339] postgis_geos.c: Added geoscentroid function.
 
-2003-10-29 13:58  strk
+2003-10-29 13:58  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOSGetCentroid() function
+	* [r338] postgis_geos_wrapper.cpp: Added GEOSGetCentroid() function
 
-2003-10-28 16:57  strk
+2003-10-28 16:57  Sandro Santilli <strk at keybit.net>
 
-	* Added collect_garray() function.
+	* [r337] postgis.h, postgis_fn.c: Added collect_garray() function.
 
-2003-10-28 15:16  strk
+2003-10-28 15:16  Sandro Santilli <strk at keybit.net>
 
-	* unite_sfunc() from postgis_geos.c renamed to geom_accum() and
-	  moved in postgis_fn.c
+	* [r336] postgis.h, postgis_fn.c, postgis_geos.c: unite_sfunc()
+	  from postgis_geos.c renamed to geom_accum() and moved in
+	  postgis_fn.c
 
-2003-10-28 11:18  strk
+2003-10-28 11:18  Sandro Santilli <strk at keybit.net>
 
-	* Added Algorithms section and simplify() enabler code
+	* [r335] Attic/postgis_sql_common.sql.in: Added Algorithms section
+	  and simplify() enabler code
 
-2003-10-28 11:16  strk
+2003-10-28 11:16  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_algo.c prototypes
+	* [r334] postgis.h: Added postgis_algo.c prototypes
 
-2003-10-28 11:16  strk
+2003-10-28 11:16  Sandro Santilli <strk at keybit.net>
 
-	* Added postgis_algo.c build support
+	* [r333] Makefile: Added postgis_algo.c build support
 
-2003-10-28 10:59  strk
+2003-10-28 10:59  Sandro Santilli <strk at keybit.net>
 
-	* handled NULL state array in unite_finalfunc, cleaned up some
-	  spurios code
+	* [r332] postgis_geos.c: handled NULL state array in
+	  unite_finalfunc, cleaned up some spurios code
 
-2003-10-27 23:44  strk
+2003-10-27 23:44  Sandro Santilli <strk at keybit.net>
 
-	* unite_sfunc made always copy input array in long lived memory
-	  context.
+	* [r331] postgis_geos.c: unite_sfunc made always copy input array
+	  in long lived memory context.
 	  It should now work with safer memory.
 
-2003-10-27 20:13  strk
+2003-10-27 20:13  Sandro Santilli <strk at keybit.net>
 
-	* Made GeomUnion release memory soon, Added fastunion support
-	  functions
+	* [r330] postgis_geos.c: Made GeomUnion release memory soon, Added
+	  fastunion support functions
 
-2003-10-27 10:21  strk
+2003-10-27 10:21  Sandro Santilli <strk at keybit.net>
 
-	* Initial import.
+	* [r329] postgis_algo.c: Initial import.
 
-2003-10-24 21:52  strk
+2003-10-24 21:52  Sandro Santilli <strk at keybit.net>
 
-	* Modified strcmp-based if-else with switch-case in GEOS2POSTGIS()
+	* [r328] postgis_geos.c: Modified strcmp-based if-else with
+	  switch-case in GEOS2POSTGIS()
 	  using new GEOSGeometryTypeId() interface.
 
-2003-10-24 21:33  strk
+2003-10-24 21:33  Sandro Santilli <strk at keybit.net>
 
-	* Added GEOSGeometryTypeId(Geometry *) wrapper function.
+	* [r327] postgis_geos_wrapper.cpp: Added
+	  GEOSGeometryTypeId(Geometry *) wrapper function.
 	  Added GEOSGetCoordinates_Polygon(Polygon *) as an experimental
 	  optimized
 	  version of GEOSGetCoordinates(Geometry *); More to add ...
 
-2003-10-24 14:29  strk
+2003-10-24 14:29  Sandro Santilli <strk at keybit.net>
 
-	* GEOSGetCoordinates() reverted to getCoordinates() call so to be
-	  compatible
+	* [r326] postgis_geos_wrapper.cpp: GEOSGetCoordinates() reverted to
+	  getCoordinates() call so to be compatible
 	  to all type of geometries (not only LineStrings)
 
-2003-10-24 08:28  strk
+2003-10-24 08:28  Sandro Santilli <strk at keybit.net>
 
-	* Fixed memory leak in GEOSGetCoordinates(), made sure that
-	  GEOS2POSTGIS
+	* [r325] postgis_geos.c, postgis_geos_wrapper.cpp: Fixed memory
+	  leak in GEOSGetCoordinates(), made sure that GEOS2POSTGIS
 	  free type string even in case of collapsed geoms. Made sure that
 	  geomunion
 	  release memory in case of exception thrown by GEOSUnion. Sooner
 	  release
 	  of palloced memory in PolyFromGeometry (pts_per_ring).
 
-2003-10-23 19:52  strk
+2003-10-23 19:52  Sandro Santilli <strk at keybit.net>
 
-	* added memory debugging tips for gcc >= 3.2.2
+	* [r324] Makefile: added memory debugging tips for gcc >= 3.2.2
 
-2003-10-23 09:14  strk
+2003-10-23 09:14  Sandro Santilli <strk at keybit.net>
 
-	* Added default-commented line to disable gcc "smart" memory
-	  caching feature.
+	* [r323] Makefile: Added default-commented line to disable gcc
+	  "smart" memory caching feature.
 
-2003-10-23 08:06  strk
+2003-10-23 08:06  Sandro Santilli <strk at keybit.net>
 
-	* Added 'unite' aggregate.
+	* [r322] Attic/postgis_sql_common.sql.in: Added 'unite' aggregate.
 
-2003-10-22 20:58  pramsey
+2003-10-22 20:58  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More additions to the TODO
+	* [r321] TODO: More additions to the TODO
 
-2003-10-22 18:51  pramsey
+2003-10-22 18:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated TODO list somewhat
+	* [r320] TODO: Updated TODO list somewhat
 
-2003-10-21 07:44  strk
+2003-10-21 07:44  Sandro Santilli <strk at keybit.net>
 
-	* Made GEOS_DIR and PROJ_DIR settable via environment vars
+	* [r319] Makefile: Made GEOS_DIR and PROJ_DIR settable via
+	  environment vars
 
-2003-10-20 19:50  strk
+2003-10-20 19:50  Sandro Santilli <strk at keybit.net>
 
-	* Removed some memory leaks in PostGIS2* converters.
+	* [r318] postgis_geos_wrapper.cpp: Removed some memory leaks in
+	  PostGIS2* converters.
 
-2003-10-17 16:32  pramsey
+2003-10-17 16:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Pass USE_* information to version string, add some 7.4 version
-	  passing
+	* [r317] Makefile: Pass USE_* information to version string, add
+	  some 7.4 version passing
 	  flags to the compile.
 
-2003-10-17 16:12  dblasby
+2003-10-17 16:12  David Blasby <dblasby at gmail.com>
 
-	* Made Envelope() CW instead of CCW.
+	* [r316] postgis_fn.c: Made Envelope() CW instead of CCW.
 
-2003-10-17 16:07  dblasby
+2003-10-17 16:07  David Blasby <dblasby at gmail.com>
 
-	* made isEmpty() return true/false
+	* [r315] Attic/postgis_sql_common.sql.in, postgis_fn.c: made
+	  isEmpty() return true/false
 
-2003-10-17 00:56  pramsey
+2003-10-17 00:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added some more AsText wrappers.
+	* [r314] examples/ogc_test_suite/2_queries.sql: Added some more
+	  AsText wrappers.
 
-2003-10-17 00:55  pramsey
+2003-10-17 00:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added some AsText wrappers to results to make results match
-	  answers.
+	* [r313] examples/ogc_test_suite/2_queries.sql: Added some AsText
+	  wrappers to results to make results match answers.
 
-2003-10-16 20:16  dblasby
+2003-10-16 20:16  David Blasby <dblasby at gmail.com>
 
-	* Added NOTICE_HANDLER function. For some reason this didnt get
-	  properly
+	* [r312] postgis_geos.c: Added NOTICE_HANDLER function. For some
+	  reason this didnt get properly
 	  committed last time.
 
-2003-10-16 16:35  dblasby
+2003-10-16 16:35  David Blasby <dblasby at gmail.com>
 
-	* added #include <sys/types.h> for people using freeBSD
-	  (strk at keybit.net patch)
+	* [r311] postgis.h: added #include <sys/types.h> for people using
+	  freeBSD (strk at keybit.net patch)
 
-2003-10-15 17:04  dblasby
+2003-10-15 17:04  David Blasby <dblasby at gmail.com>
 
-	* added a bunch of catch (GEOSExceptions) blocks to write out more
-	  imformative
+	* [r310] postgis_geos_wrapper.cpp: added a bunch of catch
+	  (GEOSExceptions) blocks to write out more imformative
 	  error messages.
 
-2003-10-14 23:19  dblasby
+2003-10-14 23:19  David Blasby <dblasby at gmail.com>
 
-	* GEOS2POSTGIS - added protection to pfree(NULL) for multi* geoms
+	* [r309] postgis_geos.c: GEOS2POSTGIS - added protection to
+	  pfree(NULL) for multi* geoms
 
-2003-10-14 21:42  pramsey
+2003-10-14 21:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added const declarations to sync with current GEOS cvs.
+	* [r308] postgis_geos_wrapper.cpp: Added const declarations to sync
+	  with current GEOS cvs.
 
-2003-10-06 18:09  dblasby
+2003-10-06 18:09  David Blasby <dblasby at gmail.com>
 
-	* Fixed typo in add_to_geometry(). With very poorly aligned
-	  sub-objects, it
+	* [r307] postgis_inout.c: Fixed typo in add_to_geometry(). With
+	  very poorly aligned sub-objects, it
 	  wouldnt allocate enough memory. Fixed it so its pesimistic and
 	  will allocate
 	  enough memory.
 
-2003-10-03 16:45  dblasby
+2003-10-03 16:45  David Blasby <dblasby at gmail.com>
 
-	* added pointonsurface() as a sub. Some memory management
-	  fixes/tests.
+	* [r306] postgis_geos.c, postgis_geos_wrapper.cpp: added
+	  pointonsurface() as a sub. Some memory management fixes/tests.
 	  removed a few NOTICEs.
 
-2003-09-29 16:15  pramsey
+2003-09-29 16:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Patch from strk:
+	* [r305] loader/shp2pgsql.c: Patch from strk:
 	  - "\t" always preceeded the first value of a dump_format query
 	  if NULL
 	  
@@ -45401,78 +66891,90 @@
 	  of the shapefiles are handled, but previous code did
 	  not check that either ... )
 
-2003-09-19 00:37  jeffloun
+2003-09-19 00:37  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* fixed a bug that actually tests the first 2 point for pip instead
-	  of just thinking I was testing the first two.
+	* [r304] loader/shp2pgsql.c: fixed a bug that actually tests the
+	  first 2 point for pip instead of just thinking I was testing the
+	  first two.
 
-2003-09-16 20:27  dblasby
+2003-09-16 20:27  David Blasby <dblasby at gmail.com>
 
-	* added ability to delete geometries.
+	* [r303] loader/Makefile, postgis_debug.c, postgis_fn.c,
+	  postgis_geos.c, postgis_geos_wrapper.cpp, postgis_transform.c:
+	  added ability to delete geometries.
 
-2003-09-10 22:44  jeffloun
+2003-09-10 22:44  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* got rid of warning...
+	* [r302] loader/pgsql2shp.c: got rid of warning...
 
-2003-09-10 22:40  jeffloun
+2003-09-10 22:40  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* changed it to make the field names in the dbf file capital
-	  letters
+	* [r301] loader/pgsql2shp.c: changed it to make the field names in
+	  the dbf file capital letters
 
-2003-09-10 21:36  jeffloun
+2003-09-10 21:36  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* fixed a bug in is_clockwise...
+	* [r300] loader/pgsql2shp.c: fixed a bug in is_clockwise...
 
-2003-09-04 16:46  dblasby
+2003-09-04 16:46  David Blasby <dblasby at gmail.com>
 
-	* removed truly_inside() doc.
+	* [r299] doc/postgis.xml: removed truly_inside() doc.
 
-2003-09-04 16:19  dblasby
+2003-09-04 16:19  David Blasby <dblasby at gmail.com>
 
-	* removed truly_inside() function.
+	* [r298] Attic/postgis_sql_common.sql.in: removed truly_inside()
+	  function.
 
-2003-08-22 17:40  dblasby
+2003-08-22 17:40  David Blasby <dblasby at gmail.com>
 
-	* fixed geometry_in('SRID=<int>{no ;}').
+	* [r297] postgis_inout.c: fixed geometry_in('SRID=<int>{no ;}').
 
-2003-08-21 16:22  dblasby
+2003-08-21 16:22  David Blasby <dblasby at gmail.com>
 
-	* added patch from strk at freek.keybit.net for PG_NARGS() not being
-	  in 7.2
+	* [r296] postgis_inout.c: added patch from strk at freek.keybit.net
+	  for PG_NARGS() not being in 7.2
 
-2003-08-18 20:19  pramsey
+2003-08-18 20:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add missing </para>
+	* [r295] doc/postgis.xml: Add missing </para>
 
-2003-08-18 20:08  pramsey
+2003-08-18 20:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Removed illegal characters from the file.
+	* [r294] doc/postgis.xml: Removed illegal characters from the file.
 
-2003-08-18 20:00  pramsey
+2003-08-18 20:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More entities
+	* [r293] doc/postgis.xml: More entities
 
-2003-08-18 19:45  pramsey
+2003-08-18 19:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Replace <> with proper entities in Dave's new function entries
+	* [r292] doc/postgis.xml: Replace <> with proper entities in Dave's
+	  new function entries
 
-2003-08-18 16:59  pramsey
+2003-08-18 16:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added info on piping results to output file.
+	* [r291] examples/ogc_test_suite/README: Added info on piping
+	  results to output file.
 
-2003-08-18 16:41  pramsey
+2003-08-18 16:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change include from io.h to geom.h.
+	* [r290] postgis_geos_wrapper.cpp: Change include from io.h to
+	  geom.h.
 
-2003-08-17 19:00  pramsey
+2003-08-17 19:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change sequence handling to respect versions prior to 7.3. Patch
-	  from
+	* [r289] loader/Makefile, loader/shp2pgsql.c: Change sequence
+	  handling to respect versions prior to 7.3. Patch from
 	  strk.
 
-2003-08-08 18:19  dblasby
+2003-08-08 18:19  David Blasby <dblasby at gmail.com>
 
-	* Conformance changes.
+	* [r288] Attic/postgis_sql_common.sql.in, Makefile,
+	  create_undef.pl, doc/postgis.xml,
+	  examples/ogc_test_suite/2_queries.sql, postgis.h,
+	  postgis_debug.c, postgis_fn.c, postgis_geos.c,
+	  postgis_geos_wrapper.cpp, postgis_gist_71.c, postgis_gist_72.c,
+	  postgis_inout.c: Conformance changes.
 	  Removed junk from postgis_debug.c and added the first run of the
 	  long
 	  transaction locking support. (this will change - dont use it)
@@ -45483,71 +66985,88 @@
 	  pointN(<linestring>,1) now returns the first point (used to
 	  return 2nd)
 
-2003-08-07 05:13  pramsey
+2003-08-07 05:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added some information about compiling PostgreSQL with C++
-	  support to
+	* [r287] README.postgis: Added some information about compiling
+	  PostgreSQL with C++ support to
 	  enable proper GEOS behavior.
 
-2003-08-06 19:31  dblasby
+2003-08-06 19:31  David Blasby <dblasby at gmail.com>
 
-	* Added the WKB parser. Added all the functions like
+	* [r286] Attic/postgis_sql_common.sql.in, postgis.h,
+	  postgis_geos.c, postgis_inout.c: Added the WKB parser. Added all
+	  the functions like
 	  PolyFromWKB(<WKB>,[<SRID>]).
 	  
 	  Added all the functions like PolyFromText(<WKT>,[<SRID>])
 	  
 	  Minor problem in GEOS library fixed.
 
-2003-08-05 18:27  dblasby
+2003-08-05 18:27  David Blasby <dblasby at gmail.com>
 
-	* Added null implementations of new GEOS-returning-geometry
-	  functions (ie.
+	* [r285] postgis_geos.c: Added null implementations of new
+	  GEOS-returning-geometry functions (ie.
 	  buffer).
 
-2003-08-05 16:28  jeffloun
+2003-08-05 16:28  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Removed the setval for the sequence if the value was going to be
-	  0.
+	* [r284] loader/shp2pgsql.c: Removed the setval for the sequence if
+	  the value was going to be 0.
 	  This avoids a warning that occirs when you try to set it to 0.
 
-2003-08-01 23:58  dblasby
+2003-08-01 23:58  David Blasby <dblasby at gmail.com>
 
-	* added the functionality to convert GEOS->PostGIS geometries.
-	  Added those geos
+	* [r283] Attic/postgis_sql_common.sql.in, postgis_geos.c,
+	  postgis_geos_wrapper.cpp: added the functionality to convert
+	  GEOS->PostGIS geometries. Added those geos
 	  functions to postgis.
 
-2003-08-01 23:22  jeffloun
+2003-08-01 23:22  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Altered the loader to use a (gid serial) type instead of just a
-	  (gid int4).
+	* [r282] loader/shp2pgsql.c: Altered the loader to use a (gid
+	  serial) type instead of just a (gid int4).
 	  Also the gid is now declared as a primary key.
 
-2003-08-01 17:44  pramsey
+2003-08-01 17:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added BC Albers parameterization (epsg 42102)
+	* [r281] spatial_ref_sys.sql: Added BC Albers parameterization
+	  (epsg 42102)
 
-2003-07-25 17:08  pramsey
+2003-07-25 17:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Moved Cygwin endian define out of source files into postgis.h
-	  common
+	* [r280] postgis.h, postgis_debug.c, postgis_estimate.c,
+	  postgis_fn.c, postgis_inout.c, postgis_ops.c: Moved Cygwin endian
+	  define out of source files into postgis.h common
 	  header file.
 
-2003-07-08 18:35  dblasby
+2003-07-08 18:35  David Blasby <dblasby at gmail.com>
 
-	* changed asbinary_specify() so that it is more aware of TEXT being
+	* [r279] postgis_inout.c: changed asbinary_specify() so that it is
+	  more aware of TEXT being
 	  un-terminated.
 	  
 	  this is a modified patch from David Garnier
 	  <david.garnier at etudier-online.com>.
 
-2003-07-01 18:30  pramsey
-
-	* Added CVS revision headers.
-
-2003-06-18 16:30  pramsey
-
-	* It seems that invalid geometries where in the shapefile (as far
-	  as shapelib
+2003-07-01 18:30  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r278] Attic/postgis_sql_71_end.sql.in,
+	  Attic/postgis_sql_71_start.sql.in,
+	  Attic/postgis_sql_72_end.sql.in,
+	  Attic/postgis_sql_72_start.sql.in,
+	  Attic/postgis_sql_73_end.sql.in,
+	  Attic/postgis_sql_73_start.sql.in,
+	  Attic/postgis_sql_common.sql.in, loader/pgsql2shp.c,
+	  loader/shp2pgsql.c, postgis.h, postgis_chip.c, postgis_debug.c,
+	  postgis_estimate.c, postgis_fn.c, postgis_geos.c,
+	  postgis_gist_71.c, postgis_gist_72.c, postgis_inout.c,
+	  postgis_ops.c, postgis_proj.c, postgis_transform.c: Added CVS
+	  revision headers.
+
+2003-06-18 16:30  Paul Ramsey <pramsey at cleverelephant.ca>
+
+	* [r277] loader/shp2pgsql.c: It seems that invalid geometries where
+	  in the shapefile (as far as shapelib
 	  let shp2pgsql know). LINEZ objects with less then 2 vertices.
 	  I've
 	  patched shp2pgsql to recognized such an inconsistence and use a
@@ -45555,18 +67074,20 @@
 	  geometry for that record printing a warning on stderr.
 	  <strk at freek.keybit.net>
 
-2003-06-12 22:25  pramsey
+2003-06-12 22:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added transaction begin and end.
+	* [r276] regress/isvalid_test, regress/relate_test: Added
+	  transaction begin and end.
 
-2003-05-27 22:35  dblasby
+2003-05-27 22:35  David Blasby <dblasby at gmail.com>
 
-	* New version of the postgis-GEOS connector.
+	* [r275] Makefile, postgis_geos.c, postgis_geos_wrapper.cpp: New
+	  version of the postgis-GEOS connector.
 
-2003-05-13 22:51  dblasby
+2003-05-13 22:51  David Blasby <dblasby at gmail.com>
 
-	* Added a modified version of Carl Anderson
-	  <carl.anderson at vadose.org> patch for
+	* [r274] Attic/postgis_sql_common.sql.in: Added a modified version
+	  of Carl Anderson <carl.anderson at vadose.org> patch for
 	  schema-aware find_srid().
 	  
 	  I have modified your schema-patched find_srid() and commited it
@@ -45580,618 +67101,708 @@
 	  my system
 	  3. throw an error if the the requested geometry couldnt be found.
 
-2003-04-14 18:01  pramsey
+2003-04-14 18:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Patch for optional case sensitivity respect. From strk.
+	* [r273] loader/shp2pgsql.c: Patch for optional case sensitivity
+	  respect. From strk.
 
-2003-04-10 23:35  pramsey
+2003-04-10 23:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More info
+	* [r272] examples/ogc_test_suite/README: More info
 
-2003-04-10 19:17  dblasby
+2003-04-10 19:17  David Blasby <dblasby at gmail.com>
 
-	* added area() as alias for area2d()
+	* [r271] Attic/postgis_sql_common.sql.in: added area() as alias for
+	  area2d()
 
-2003-04-10 19:16  dblasby
+2003-04-10 19:16  David Blasby <dblasby at gmail.com>
 
-	* changes to area()
+	* [r270] postgis_fn.c, postgis_geos.c: changes to area()
 
-2003-04-10 17:45  pramsey
+2003-04-10 17:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More info.
+	* [r269] examples/ogc_test_suite/README: More info.
 
-2003-04-10 17:40  pramsey
+2003-04-10 17:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed within() test to have right order of arguments.
+	* [r268] examples/ogc_test_suite/2_queries.sql: Fixed within() test
+	  to have right order of arguments.
 
-2003-04-10 17:29  pramsey
+2003-04-10 17:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changes to function names to MATCH the specification.
+	* [r267] examples/ogc_test_suite/2_queries.sql: Changes to function
+	  names to MATCH the specification.
 
-2003-04-10 17:19  pramsey
+2003-04-10 17:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More consistency fixes.
+	* [r266] examples/ogc_test_suite/2_queries.sql: More consistency
+	  fixes.
 
-2003-04-10 17:05  pramsey
+2003-04-10 17:05  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixes for consistency (!!!!) of the tests and a first README on
-	  how to run
+	* [r265] examples/ogc_test_suite/1_schema.sql,
+	  examples/ogc_test_suite/2_queries.sql,
+	  examples/ogc_test_suite/3_cleanup.sql,
+	  examples/ogc_test_suite/README: Fixes for consistency (!!!!) of
+	  the tests and a first README on how to run
 	  them.
 
-2003-04-10 16:40  pramsey
+2003-04-10 16:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Extra OGC text constructor functions.
+	* [r264] Attic/postgis_sql_common.sql.in: Extra OGC text
+	  constructor functions.
 
-2003-04-10 16:22  pramsey
+2003-04-10 16:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Hack to supply c++ CXX variable if undefined.
+	* [r263] Makefile: Hack to supply c++ CXX variable if undefined.
 
-2003-04-10 16:20  pramsey
+2003-04-10 16:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Cruft removal
+	* [r262] Makefile: Cruft removal
 
-2003-04-10 05:19  pramsey
+2003-04-10 05:19  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Formatting changes.
+	* [r261] Attic/postgis_sql_common.sql.in: Formatting changes.
 
-2003-04-10 05:16  pramsey
+2003-04-10 05:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Remove old commented out duplicate function.
+	* [r260] Attic/postgis_sql_common.sql.in: Remove old commented out
+	  duplicate function.
 
-2003-04-09 21:53  pramsey
+2003-04-09 21:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Makefile should fully honor USE_GEOS flag now.
+	* [r259] Makefile: Makefile should fully honor USE_GEOS flag now.
 
-2003-04-09 21:35  pramsey
+2003-04-09 21:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Cleaned up makefile and transform warning removed for null case.
+	* [r258] Makefile, postgis_transform.c: Cleaned up makefile and
+	  transform warning removed for null case.
 
-2003-04-09 21:08  pramsey
+2003-04-09 21:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Some reformatting.
+	* [r257] Attic/postgis_sql_common.sql.in: Some reformatting.
 
-2003-04-09 18:34  dblasby
+2003-04-09 18:34  David Blasby <dblasby at gmail.com>
 
-	* GEOS support -first run
+	* [r256] Attic/postgis_sql_common.sql.in, Makefile, postgis_geos.c,
+	  postgis_geos_wrapper.cpp: GEOS support -first run
 
-2003-04-09 18:34  dblasby
+2003-04-09 18:34  David Blasby <dblasby at gmail.com>
 
-	* test data for isvalid()
+	* [r255] regress/isvalid_test: test data for isvalid()
 
-2003-04-09 03:40  pramsey
+2003-04-09 03:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Makefile update
+	* [r254] jdbc/Makefile: Makefile update
 
-2003-04-09 03:40  pramsey
+2003-04-09 03:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates for 0.7.5 release.
+	* [r252] CHANGES, CREDITS, README.postgis: Updates for 0.7.5
+	  release.
 
-2003-04-08 21:41  pramsey
+2003-04-08 21:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Cygwin BE_DLLLIBS fix from nvine/jtishler
+	* [r251] Makefile: Cygwin BE_DLLLIBS fix from nvine/jtishler
 
-2003-04-08 21:23  dblasby
+2003-04-08 21:23  David Blasby <dblasby at gmail.com>
 
-	* simple table to test relate(g1,g2). Taken from JTS/GEOS
-	  regression test.
+	* [r250] regress/relate_test: simple table to test relate(g1,g2).
+	  Taken from JTS/GEOS regression test.
 
-2003-04-01 23:02  jeffloun
+2003-04-01 23:02  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Fixed a bug which dropped the last Z value of each line in 3d
-	  lines.
+	* [r249] loader/shp2pgsql.c: Fixed a bug which dropped the last Z
+	  value of each line in 3d lines.
 
-2003-03-07 16:39  pramsey
+2003-03-07 16:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* M-handling patch and some Z-recognition too.
+	* [r248] loader/shp2pgsql.c: M-handling patch and some
+	  Z-recognition too.
 	  From strk at freek.keybit.net.
 
-2003-03-06 18:57  chodgson
+2003-03-06 18:57  Chris Hodgson <chodgson at refractions.net>
 
-	* swapped '~=' for '=' in the operator class definition for
-	  gist_geometry_ops.
+	* [r247] Attic/postgis_sql_73_end.sql.in: swapped '~=' for '=' in
+	  the operator class definition for gist_geometry_ops.
 
-2003-03-06 18:29  chodgson
+2003-03-06 18:29  Chris Hodgson <chodgson at refractions.net>
 
-	* changed 'geometry' to 'GEOMETRY' two places in the
-	  AddGeometryColumn sql code.
+	* [r246] Attic/postgis_sql_common.sql.in: changed 'geometry' to
+	  'GEOMETRY' two places in the AddGeometryColumn sql code.
 
-2003-03-06 18:10  chodgson
+2003-03-06 18:10  Chris Hodgson <chodgson at refractions.net>
 
-	* Updated the documentation for the '~' operator and added
-	  documentation for the '@' operator (they were backwards).
+	* [r245] doc/postgis.xml: Updated the documentation for the '~'
+	  operator and added documentation for the '@' operator (they were
+	  backwards).
 
-2003-03-06 18:04  dblasby
+2003-03-06 18:04  David Blasby <dblasby at gmail.com>
 
-	* indexing for 7.3: @ and ~ were backwards. Corrected.
+	* [r244] Attic/postgis_sql_73_end.sql.in: indexing for 7.3: @ and ~
+	  were backwards. Corrected.
 
-2003-02-15 00:27  jeffloun
+2003-02-15 00:27  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* added more type checking into the create table statment.
+	* [r243] loader/shp2pgsql.c: added more type checking into the
+	  create table statment.
 	  Now uses int8, and numeric types if the columns definitions are
 	  too big
 
-2003-02-14 20:07  jeffloun
+2003-02-14 20:07  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* changed the PIP function to loop from i=0 to 1<n-1
+	* [r242] loader/shp2pgsql.c: changed the PIP function to loop from
+	  i=0 to 1<n-1
 
-2003-02-13 02:48  pramsey
+2003-02-13 02:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changes in preparation for 0.7.4 release.
+	* [r240] CHANGES, README.postgis, loader/Makefile: Changes in
+	  preparation for 0.7.4 release.
 
-2003-02-12 21:03  pramsey
+2003-02-12 21:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed bug with 7.1 build relating to postgis_estimate.
+	* [r239] Makefile: Fixed bug with 7.1 build relating to
+	  postgis_estimate.
 
-2003-02-04 23:11  pramsey
+2003-02-04 23:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed constraint name for geometry_columns_pk.
+	* [r238] Attic/postgis_sql_common.sql.in: Changed constraint name
+	  for geometry_columns_pk.
 
-2003-02-04 22:57  pramsey
+2003-02-04 22:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix memory management error, array of pointers allocated
-	  insufficient space.
+	* [r237] loader/shp2pgsql.c: Fix memory management error, array of
+	  pointers allocated insufficient space.
 
-2003-02-04 21:39  pramsey
+2003-02-04 21:39  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added CVS substitution strings for logging.
+	* [r236] loader/pgsql2shp.c, loader/shp2pgsql.c: Added CVS
+	  substitution strings for logging.
 
-2003-02-04 06:49  pramsey
+2003-02-04 06:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed stupid case error in 7.2 gist support.
+	* [r235] Attic/postgis_sql_72_end.sql.in: Fixed stupid case error
+	  in 7.2 gist support.
 
-2003-02-03 20:08  pramsey
+2003-02-03 20:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated SRS file with better proj4 definitions and nicer
-	  commented
+	* [r234] spatial_ref_sys.sql: Updated SRS file with better proj4
+	  definitions and nicer commented
 	  description lines.
 
-2003-01-31 17:23  chodgson
+2003-01-31 17:23  Chris Hodgson <chodgson at refractions.net>
 
-	* fixed a small error in an example - road_name -> name
+	* [r233] doc/postgis.xml: fixed a small error in an example -
+	  road_name -> name
 
-2003-01-22 17:07  dblasby
+2003-01-22 17:07  David Blasby <dblasby at gmail.com>
 
-	* applied Mark Cave-Ayland's new patch that is a bit cleaner and
-	  has a
+	* [r232] postgis_estimate.c: applied Mark Cave-Ayland's new patch
+	  that is a bit cleaner and has a
 	  user-defined FETCH limit for creating a histogram.
 
-2003-01-21 17:46  dblasby
+2003-01-21 17:46  David Blasby <dblasby at gmail.com>
 
-	* added patch from Mark Cave-Ayland that saves memory during
-	  histogram
+	* [r231] postgis_estimate.c: added patch from Mark Cave-Ayland that
+	  saves memory during histogram
 	  calculations by using cursors instead of loading all the BOXs at
 	  once.
 
-2003-01-06 18:07  pramsey
+2003-01-06 18:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added USE_STATS fix for index selectivity.
+	* [r230] Makefile: Added USE_STATS fix for index selectivity.
 
-2002-12-17 23:24  dblasby
+2002-12-17 23:24  David Blasby <dblasby at gmail.com>
 
-	* fixed select astext(the_geom)||'dave' from ...; bug
+	* [r229] postgis_inout.c: fixed select astext(the_geom)||'dave'
+	  from ...; bug
 
-2002-12-10 04:45  pramsey
+2002-12-10 04:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Removed old sql.in files.
+	* [r228] postgis.sql.in, postgis_gist_71.sql.in,
+	  postgis_gist_72.sql.in, postgis_gist_73.sql.in: Removed old
+	  sql.in files.
 
-2002-12-10 04:37  pramsey
+2002-12-10 04:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Support for 7.3 undefinition.
+	* [r227] create_undef.pl: Support for 7.3 undefinition.
 
-2002-12-10 04:36  pramsey
+2002-12-10 04:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* New SQL update files, with version dependant start and end
-	  scripts.
+	* [r226] Attic, Attic/postgis_sql_71_end.sql.in,
+	  Attic/postgis_sql_71_start.sql.in,
+	  Attic/postgis_sql_72_end.sql.in,
+	  Attic/postgis_sql_72_start.sql.in,
+	  Attic/postgis_sql_73_end.sql.in,
+	  Attic/postgis_sql_73_start.sql.in,
+	  Attic/postgis_sql_common.sql.in, Makefile: New SQL update files,
+	  with version dependant start and end scripts.
 
-2002-12-06 20:31  pramsey
+2002-12-06 20:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Set USE_PROJ back to default 0.
+	* [r225] Makefile: Set USE_PROJ back to default 0.
 
-2002-12-05 22:12  pramsey
+2002-12-05 22:12  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Returned to 'opaque' as type in creation, since 7.3 will
-	  automatically
+	* [r224] postgis.sql.in: Returned to 'opaque' as type in creation,
+	  since 7.3 will automatically
 	  cast and < 7.3 will fail if I use a different value. This causes
 	  some
 	  warnings in 7.3, but no failures.
 
-2002-12-05 21:49  pramsey
+2002-12-05 21:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates to support 7.3 typecasting conventions. 7.3 support is
-	  now ready
+	* [r223] Makefile, postgis.sql.in, postgis_gist_73.sql.in: Updates
+	  to support 7.3 typecasting conventions. 7.3 support is now ready
 	  for beta testing.
 
-2002-12-05 21:11  pramsey
+2002-12-05 21:11  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* "fixed" pg_opclass so that 7.3 index creation works.
+	* [r222] postgis_gist_73.sql.in: "fixed" pg_opclass so that 7.3
+	  index creation works.
 
-2002-12-05 20:57  pramsey
+2002-12-05 20:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed an opaque to internal (many to go...)
+	* [r221] postgis_gist_73.sql.in: Changed an opaque to internal
+	  (many to go...)
 
-2002-12-05 20:54  pramsey
+2002-12-05 20:54  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Pass USE_VERSION macro into the C compilation process to the
-	  pre-processor can
+	* [r220] Makefile: Pass USE_VERSION macro into the C compilation
+	  process to the pre-processor can
 	  make use of it
 
-2002-12-05 20:48  pramsey
+2002-12-05 20:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed libdir references to LIBPATH and started using the magic
+	* [r219] Makefile: Changed libdir references to LIBPATH and started
+	  using the magic
 	  $libpath entry for default installs.
 
-2002-12-05 20:40  pramsey
+2002-12-05 20:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Formatting change.
+	* [r218] postgis_gist_73.sql.in: Formatting change.
 
-2002-12-05 20:30  pramsey
+2002-12-05 20:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Early support for 7.3. No fixes for typecasting problems yet.
+	* [r217] Makefile, postgis_gist_73.sql.in: Early support for 7.3.
+	  No fixes for typecasting problems yet.
 
-2002-12-05 19:55  pramsey
+2002-12-05 19:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Removed DOS linefeeds from SQL files.
+	* [r216] postgis_gist_72.sql.in, postgis_gist_73.sql.in: Removed
+	  DOS linefeeds from SQL files.
 
-2002-12-05 19:48  pramsey
+2002-12-05 19:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changes to support 7.3 cleanly.
+	* [r215] postgis_gist_71.c, postgis_gist_71.sql.in: Changes to
+	  support 7.3 cleanly.
 
-2002-12-05 19:48  pramsey
+2002-12-05 19:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changes to allow 7.3 support to be easily added.
+	* [r214] Makefile, README.postgis, postgis_gist.c,
+	  postgis_gist.sql.in, postgis_gist_73.sql.in: Changes to allow 7.3
+	  support to be easily added.
 
-2002-12-01 05:59  pramsey
+2002-12-01 05:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Original OpenGIS test suite files. To be edited to conform to
+	* [r213] examples/ogc_test_suite,
+	  examples/ogc_test_suite/1_schema.sql,
+	  examples/ogc_test_suite/2_queries.sql,
+	  examples/ogc_test_suite/3_cleanup.sql: Original OpenGIS test
+	  suite files. To be edited to conform to
 	  PostGIS syntax where legal.
 
-2002-11-26 03:59  pramsey
+2002-11-26 03:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed references to 'make' into macro references to MAKE
+	* [r212] Makefile: Changed references to 'make' into macro
+	  references to MAKE
 
-2002-11-22 21:25  chodgson
+2002-11-22 21:25  Chris Hodgson <chodgson at refractions.net>
 
-	* changed the title of the new section from "Mapserver" to "Using
-	  Mapserver"
+	* [r211] doc/postgis.xml: changed the title of the new section from
+	  "Mapserver" to "Using Mapserver"
 
-2002-11-22 21:22  chodgson
+2002-11-22 21:22  Chris Hodgson <chodgson at refractions.net>
 
-	* added more advanced mapserver documentation, and separated
-	  mapserver into its own section of the documentation
+	* [r210] doc/postgis.xml: added more advanced mapserver
+	  documentation, and separated mapserver into its own section of
+	  the documentation
 
-2002-11-22 17:38  dblasby
+2002-11-22 17:38  David Blasby <dblasby at gmail.com>
 
-	* Non-compiled in transform() returns error instead of nop.
+	* [r209] postgis_transform.c: Non-compiled in transform() returns
+	  error instead of nop.
 
-2002-11-20 21:32  chodgson
+2002-11-20 21:32  Chris Hodgson <chodgson at refractions.net>
 
-	* re-formatted the xml doc and added a bit about complex queries
-	  (still lots more to come on that topic)
+	* [r208] doc/postgis.xml: re-formatted the xml doc and added a bit
+	  about complex queries (still lots more to come on that topic)
 
-2002-11-06 23:55  jeffloun
+2002-11-06 23:55  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* added support for clockwise-ness in shp dumper
+	* [r207] loader/pgsql2shp.c: added support for clockwise-ness in
+	  shp dumper
 
-2002-11-04 21:21  pramsey
+2002-11-04 21:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Removed debugging connstring print.
+	* [r206] loader/pgsql2shp.c: Removed debugging connstring print.
 
-2002-10-25 16:13  dblasby
+2002-10-25 16:13  David Blasby <dblasby at gmail.com>
 
-	* Now accepts both types of multipoint - 'MULTIPOINT(0 0, 1
-	  1)'::geometry and
+	* [r205] postgis_inout.c: Now accepts both types of multipoint -
+	  'MULTIPOINT(0 0, 1 1)'::geometry and
 	  'MULTIPOINT( (0 0), (1 1))'::geometry;
 
-2002-10-24 15:53  pramsey
+2002-10-24 15:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added PGbox3d accessors for LLB and URB. Added PGgeometry update
-	  to
+	* [r204] jdbc/org/postgis/PGbox3d.java,
+	  jdbc/org/postgis/PGgeometry.java: Added PGbox3d accessors for LLB
+	  and URB. Added PGgeometry update to
 	  account for SRIDs when they are present in the WKT. Submitted by
 	  Rueben Schultz.
 
-2002-10-17 17:06  chodgson
+2002-10-17 17:06  Chris Hodgson <chodgson at refractions.net>
 
-	* fixed the last compile warning on solaris/gcc
+	* [r203] loader/dbfopen.c: fixed the last compile warning on
+	  solaris/gcc
 
-2002-10-17 16:45  chodgson
+2002-10-17 16:45  Chris Hodgson <chodgson at refractions.net>
 
-	* - cleaned up all the compiler warnings
+	* [r202] loader/dbfopen.c, loader/getopt.c, loader/shp2pgsql.c,
+	  loader/shpopen.c: - cleaned up all the compiler warnings
 	  - for getopt.c, this involved moving the line:
 	  extern char *getenv(const char *name);
 	  outside of the two nested #ifdefs that it was inside, as it is
 	  always required (the code that calls it isn't inside any #ifdefs)
 	  Perhaps this may break compilation in non-linux/gnu environments?
 
-2002-10-16 23:48  pramsey
+2002-10-16 23:48  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed syntax error in hyperlink to postgis source.
+	* [r201] doc/postgis.xml: Fixed syntax error in hyperlink to
+	  postgis source.
 
-2002-10-16 20:33  dblasby
+2002-10-16 20:33  David Blasby <dblasby at gmail.com>
 
-	* Added support to turn off the postgis_gist_sel() computations
-	  (see Makefile).
+	* [r200] postgis_estimate.c: Added support to turn off the
+	  postgis_gist_sel() computations (see Makefile).
 
-2002-10-16 17:27  pramsey
+2002-10-16 17:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added USE_STATS switch to make the new statistics system
-	  optional.
+	* [r199] Makefile: Added USE_STATS switch to make the new
+	  statistics system optional.
 
-2002-10-16 17:06  chodgson
+2002-10-16 17:06  Chris Hodgson <chodgson at refractions.net>
 
-	* makefile now has both support for auto-determining postgres
-	  version and support for the new histogram2d stuff
+	* [r198] Makefile: makefile now has both support for
+	  auto-determining postgres version and support for the new
+	  histogram2d stuff
 
-2002-10-11 22:52  dblasby
+2002-10-11 22:52  David Blasby <dblasby at gmail.com>
 
-	* New file with original estimation methods.
+	* [r197] postgis_estimate.c: New file with original estimation
+	  methods.
 
-2002-10-11 22:52  dblasby
+2002-10-11 22:52  David Blasby <dblasby at gmail.com>
 
-	* Added support for histogram2d and better statistical analysis.
+	* [r196] Makefile, postgis.h, postgis.sql.in, postgis_gist_72.c,
+	  postgis_gist_72.sql.in, postgis_inout.c: Added support for
+	  histogram2d and better statistical analysis.
 
-2002-10-11 20:22  jeffloun
+2002-10-11 20:22  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* fixed the errors in the error fix i had just committed...
+	* [r195] loader/pgsql2shp.c: fixed the errors in the error fix i
+	  had just committed...
 
-2002-10-11 20:10  jeffloun
+2002-10-11 20:10  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Fixed a bug from adding NULL support to shape dumper
+	* [r194] loader/pgsql2shp.c: Fixed a bug from adding NULL support
+	  to shape dumper
 
-2002-10-10 17:32  jeffloun
+2002-10-10 17:32  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* added support to write out null geometries to polygon,
-	  multipolygon, arc, and multiarcs...
+	* [r193] loader/pgsql2shp.c: added support to write out null
+	  geometries to polygon, multipolygon, arc, and multiarcs...
 
-2002-10-10 17:11  jeffloun
+2002-10-10 17:11  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Added support to write out Null geometries to point and
-	  mulitpoints
+	* [r192] loader/pgsql2shp.c: Added support to write out Null
+	  geometries to point and mulitpoints
 
-2002-10-10 17:00  chodgson
+2002-10-10 17:00  Chris Hodgson <chodgson at refractions.net>
 
-	* - fixed a bug in box3d_overleft which would likely go unnoticed
+	* [r191] README.postgis, doc/postgis.xml, postgis_ops.c: - fixed a
+	  bug in box3d_overleft which would likely go unnoticed
 	  - fixed the docs for &<, &>, <<, and >> which were backwards
 
-2002-09-20 18:05  dblasby
+2002-09-20 18:05  David Blasby <dblasby at gmail.com>
 
-	* Fixed complier complaint reported by Mark Sutton <mes at lazo.ca>.
+	* [r190] postgis_debug.c: Fixed complier complaint reported by Mark
+	  Sutton <mes at lazo.ca>.
 
-2002-09-06 20:29  pramsey
+2002-09-06 20:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Trivial initialization bug, forget to set dimension.
+	* [r188] jdbc/org/postgis/LinearRing.java: Trivial initialization
+	  bug, forget to set dimension.
 
-2002-09-05 16:49  pramsey
+2002-09-05 16:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changes in preparation for 0.7.3 release
+	* [r187] CHANGES, README.postgis: Changes in preparation for 0.7.3
+	  release
 
-2002-09-05 16:39  dblasby
+2002-09-05 16:39  David Blasby <dblasby at gmail.com>
 
-	* Fixed typo in dropgeometrycolumn() - IS null to =null. This was
-	  caused in the
+	* [r186] postgis.sql.in: Fixed typo in dropgeometrycolumn() - IS
+	  null to =null. This was caused in the
 	  last 'fix'.
 
-2002-09-05 00:07  pramsey
+2002-09-05 00:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Make 7.2 index test check for version 7.1 and default to 7.2 if
-	  not
+	* [r185] Makefile: Make 7.2 index test check for version 7.1 and
+	  default to 7.2 if not
 	  This is preparatory to the 7.3 pgsql release which uses the sames
 	  GiST bindings as the 7.2 release.
 
-2002-09-04 16:55  dblasby
+2002-09-04 16:55  David Blasby <dblasby at gmail.com>
 
-	* Applied "Mark Cave-Ayland" <mark.cave-ayland at webbased.co.uk>'s
-	  patch so
+	* [r184] postgis_transform.c: Applied "Mark Cave-Ayland"
+	  <mark.cave-ayland at webbased.co.uk>'s patch so
 	  transform() will correctly tranform BBOX only geometries.
 
-2002-09-03 15:31  pramsey
+2002-09-03 15:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added automatic test for version string and setting of USE_PG72
-	  to
+	* [r183] Makefile: Added automatic test for version string and
+	  setting of USE_PG72 to
 	  appropriate value, as submitted by Greg Stark.
 
-2002-09-01 20:04  pramsey
+2002-09-01 20:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changes in preparation for 0.7.2 release.
+	* [r181] CHANGES, CREDITS, README.postgis: Changes in preparation
+	  for 0.7.2 release.
 
-2002-08-19 16:14  dblasby
+2002-08-19 16:14  David Blasby <dblasby at gmail.com>
 
-	* changed "=NULL" to "is null" for postgresql 7.3 devel issues (as
-	  reported
+	* [r180] postgis.sql.in: changed "=NULL" to "is null" for
+	  postgresql 7.3 devel issues (as reported
 	  by Eric - redmonde at purdue.edu)
 
-2002-08-16 17:58  dblasby
+2002-08-16 17:58  David Blasby <dblasby at gmail.com>
 
-	* Applyed "Mark Cave-Ayland" <mark.cave-ayland at webbased.co.uk>'s
-	  patch
+	* [r179] postgis_fn.c: Applyed "Mark Cave-Ayland"
+	  <mark.cave-ayland at webbased.co.uk>'s patch
 	  to the truly_inside() function. Thanks mark!
 
-2002-08-07 16:31  pramsey
+2002-08-07 16:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Patch to write null geometries as "\N" in the dump file format
-	  case.
+	* [r178] loader/shp2pgsql.c: Patch to write null geometries as "\N"
+	  in the dump file format case.
 	  Submitted by Steffen Macke <sdteffen at web.de>
 
-2002-07-26 16:50  chodgson
+2002-07-26 16:50  Chris Hodgson <chodgson at refractions.net>
 
-	* minor correction
+	* [r177] doc/postgis.xml: minor correction
 
-2002-07-24 20:40  pramsey
+2002-07-24 20:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* fixes the unwanted quotation of NULLs for the sql insert format.
-	  Submitted
+	* [r176] loader/shp2pgsql.c: fixes the unwanted quotation of NULLs
+	  for the sql insert format. Submitted
 	  by Steffen Macke.
 
-2002-07-17 20:10  chodgson
+2002-07-17 20:10  Chris Hodgson <chodgson at refractions.net>
 
-	* fixed some formatting errors from my previous addition
+	* [r175] doc/postgis.xml: fixed some formatting errors from my
+	  previous addition
 
-2002-07-17 18:34  chodgson
+2002-07-17 18:34  Chris Hodgson <chodgson at refractions.net>
 
-	* added a "common problems" sub-section to the "installing postgis"
-	  section
+	* [r174] doc/postgis.xml: added a "common problems" sub-section to
+	  the "installing postgis" section
 
-2002-07-06 17:51  pramsey
+2002-07-06 17:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Reverted USE_PROJ to 0
+	* [r173] Makefile: Reverted USE_PROJ to 0
 
-2002-07-06 15:16  pramsey
+2002-07-06 15:16  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Patch from Steffen Macke, NULL attributes are imported as NULL
-	  now,
+	* [r172] loader/shp2pgsql.c: Patch from Steffen Macke, NULL
+	  attributes are imported as NULL now,
 	  gid field renaming works now (case problem), \ and ' are escaped
 	  and don't break the import
 
-2002-07-04 23:38  dblasby
+2002-07-04 23:38  David Blasby <dblasby at gmail.com>
 
-	* added bytea(wkb)
+	* [r171] Makefile, postgis.h, postgis.sql.in, postgis_inout.c:
+	  added bytea(wkb)
 
-2002-06-26 18:34  pramsey
+2002-06-26 18:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* fixed syntax error in reference to pgsql2shp
+	* [r170] doc/postgis.xml: fixed syntax error in reference to
+	  pgsql2shp
 
-2002-06-26 18:25  pramsey
+2002-06-26 18:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Cygwin fixes to the install target to provide .exe extensions.
+	* [r169] loader/Makefile: Cygwin fixes to the install target to
+	  provide .exe extensions.
 
-2002-06-07 18:16  jeffloun
+2002-06-07 18:16  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* fixed a bug in pgsql2shp which displayed the total DBF rows
-	  written as one less than actually was written.
+	* [r168] loader/pgsql2shp.c: fixed a bug in pgsql2shp which
+	  displayed the total DBF rows written as one less than actually
+	  was written.
 
-2002-05-28 18:01  chodgson
+2002-05-28 18:01  Chris Hodgson <chodgson at refractions.net>
 
-	* - updated the ~ and @ operator definitions in postgis_gist.sql.in
-	  so that ~ is contains and @ is contained (should have been done
-	  in the last update, but I forgot)
+	* [r167] postgis_gist.sql.in: - updated the ~ and @ operator
+	  definitions in postgis_gist.sql.in so that ~ is contains and @ is
+	  contained (should have been done in the last update, but I
+	  forgot)
 
-2002-05-28 17:59  chodgson
+2002-05-28 17:59  Chris Hodgson <chodgson at refractions.net>
 
-	* - updated the ~ and @ operator definitions in
-	  postgis_gist_72.sql.in so that ~ is contains and @ is contained
+	* [r166] postgis_gist_72.sql.in: - updated the ~ and @ operator
+	  definitions in postgis_gist_72.sql.in so that ~ is contains and @
+	  is contained
 
-2002-05-28 17:54  chodgson
+2002-05-28 17:54  Chris Hodgson <chodgson at refractions.net>
 
-	* - updated the translate function in postgis_fn.c to translate the
-	  bounding box as well, as suggested by Robert Burgholzer
+	* [r165] postgis_fn.c: - updated the translate function in
+	  postgis_fn.c to translate the bounding box as well, as suggested
+	  by Robert Burgholzer
 
-2002-05-22 19:29  pramsey
+2002-05-22 19:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed syntax error in GeometryN defn.
+	* [r164] doc/postgis.xml: Fixed syntax error in GeometryN defn.
 
-2002-05-14 20:50  pramsey
+2002-05-14 20:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Set USE_PG72 to 0.
+	* [r162] Makefile: Set USE_PG72 to 0.
 
-2002-05-14 20:47  pramsey
+2002-05-14 20:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Documentation updates for 0.7.1 release.
+	* [r161] CHANGES, Makefile, README.postgis: Documentation updates
+	  for 0.7.1 release.
 
-2002-05-14 20:36  pramsey
+2002-05-14 20:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Stripped DOS carriage returns from all source code files. Should
+	* [r160] postgis.h, postgis.sql.in, postgis_chip.c,
+	  postgis_debug.c, postgis_fn.c, postgis_gist.c,
+	  postgis_gist.sql.in, postgis_gist_72.c, postgis_gist_72.sql.in,
+	  postgis_inout.c, postgis_ops.c, postgis_proj.c,
+	  postgis_transform.c: Stripped DOS carriage returns from all
+	  source code files. Should
 	  fix some compilation problems on some platforms.
 
-2002-05-14 18:28  chodgson
+2002-05-14 18:28  Chris Hodgson <chodgson at refractions.net>
 
-	* - integrated a bugfix for the rtree_picksplit algorithm from
-	  Teodor Sigaev. This fixes the bug which reports "ERROR:
-	  MemoryContextAlloc: invalid request size 0" while building a gist
-	  rtree index (first reported by Andy Turk)
+	* [r159] loader/shp2pgsql.c, postgis.h, postgis.sql.in,
+	  postgis_fn.c, postgis_gist_72.c, postgis_inout.c: - integrated a
+	  bugfix for the rtree_picksplit algorithm from Teodor Sigaev. This
+	  fixes the bug which reports "ERROR: MemoryContextAlloc: invalid
+	  request size 0" while building a gist rtree index (first reported
+	  by Andy Turk)
 	  
 	  - cleaned up some warnings (mostly "possibly unitialized
 	  variables")
 
-2002-05-06 17:35  chodgson
+2002-05-06 17:35  Chris Hodgson <chodgson at refractions.net>
 
-	* - changed add_to_geometry() and collector() so that the sql
-	  collect() aggregate returns the simplest possible geometric type,
-	  ie. a MULTIPOINT instead of a GEOMETRYCOLLECTIONwhen all of the
+	* [r158] Makefile, postgis_fn.c, postgis_inout.c: - changed
+	  add_to_geometry() and collector() so that the sql collect()
+	  aggregate returns the simplest possible geometric type, ie. a
+	  MULTIPOINT instead of a GEOMETRYCOLLECTIONwhen all of the
 	  geometries being collected are of either POINT or MULTIPOINT type
 
-2002-05-04 23:08  pramsey
+2002-05-04 23:08  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed mistake in FAQ example on radius searching.
+	* [r155] doc/postgis.xml: Fixed mistake in FAQ example on radius
+	  searching.
 
-2002-05-04 22:52  pramsey
+2002-05-04 22:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More docbook changes.
+	* [r154] doc/postgis.xml: More docbook changes.
 
-2002-05-04 22:51  pramsey
+2002-05-04 22:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Docbook syntax error changes.
+	* [r153] doc/postgis.xml: Docbook syntax error changes.
 
-2002-05-04 22:47  pramsey
+2002-05-04 22:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added postgis_undef.sql to make clean target.
+	* [r152] Makefile: Added postgis_undef.sql to make clean target.
 
-2002-05-04 22:46  pramsey
+2002-05-04 22:46  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Documentation updates to go with the 0.7 release. All new
-	  functions
+	* [r151] CHANGES, CREDITS, Makefile, README.postgis, TODO,
+	  doc/postgis.xml: Documentation updates to go with the 0.7
+	  release. All new functions
 	  documented, and appropriate changes made to installation and
 	  other
 	  directions. New build process for the PG72 indexes and PROJ4
 	  support
 	  added to Makefile.
 
-2002-05-04 22:44  pramsey
+2002-05-04 22:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Add commenting to indicate the coordinate system of each insert
-	  line in
+	* [r150] spatial_ref_sys.sql: Add commenting to indicate the
+	  coordinate system of each insert line in
 	  a human readable form.
 
-2002-05-04 22:44  pramsey
+2002-05-04 22:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Update shapelib references to 1.2.9.
+	* [r149] loader/README.pgsql2shp, loader/README.shp2pgsql,
+	  loader/dbfopen.c, loader/shapefil.h, loader/shpopen.c: Update
+	  shapelib references to 1.2.9.
 
-2002-05-04 20:30  pramsey
+2002-05-04 20:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added an "install" target which installs shp2pgsql and pgsql2shp
-	  in the
+	* [r148] loader/Makefile: Added an "install" target which installs
+	  shp2pgsql and pgsql2shp in the
 	  default pgsql bin directory.
 
-2002-05-04 20:29  pramsey
+2002-05-04 20:29  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed WANT_PROJECTION flag to USE_PROJ to match other Makefile
-	  defines.
+	* [r147] postgis_transform.c: Changed WANT_PROJECTION flag to
+	  USE_PROJ to match other Makefile defines.
 
-2002-05-04 20:28  pramsey
+2002-05-04 20:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added GeomFromText alias to GeometryFromText since the former is
-	  in the
+	* [r146] postgis.sql.in: Added GeomFromText alias to
+	  GeometryFromText since the former is in the
 	  SFSQL spec and the latter is not.
 
-2002-05-03 03:14  pramsey
+2002-05-03 03:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Start of 0.7 documenation edits.
+	* [r145] doc/postgis.xml: Start of 0.7 documenation edits.
 
-2002-05-02 22:25  dblasby
+2002-05-02 22:25  David Blasby <dblasby at gmail.com>
 
-	* transform_geom() - if it gets and error -38 from PROJ.4 (couldnt
-	  open
+	* [r144] postgis_transform.c: transform_geom() - if it gets and
+	  error -38 from PROJ.4 (couldnt open
 	  grid file) it will try to do the transform without a
 	  a datum conversion. This usually occurs if you ask
 	  for a re-projection for a point outside where you have
 	  grid data for.
 
-2002-04-30 23:37  dblasby
+2002-04-30 23:37  David Blasby <dblasby at gmail.com>
 
-	* Better error reporting.
+	* [r143] Makefile, postgis_transform.c: Better error reporting.
 
-2002-04-30 23:20  dblasby
+2002-04-30 23:20  David Blasby <dblasby at gmail.com>
 
-	* Added some debugging to transform.
+	* [r142] Makefile, postgis_transform.c: Added some debugging to
+	  transform.
 
-2002-04-29 17:23  dblasby
+2002-04-29 17:23  David Blasby <dblasby at gmail.com>
 
-	* Added distance_ellipsiod(point,point,ellipsoid)
+	* [r141] postgis.h, postgis.sql.in, postgis_proj.c: Added
+	  distance_ellipsiod(point,point,ellipsoid)
 	  (called distance_spheroid in SQL)
 
-2002-04-26 22:50  chodgson
+2002-04-26 22:50  Chris Hodgson <chodgson at refractions.net>
 
-	* - cut the gist indexing-related functions out of postgis_ops.c
-	  and put them in postgis_gist.c, then put the new gist indexing
-	  functions for postgres >= 7.2 in the file postgis_gist_72
+	* [r140] Makefile, loader/Makefile, postgis.h, postgis.sql.in,
+	  postgis_fn.c, postgis_gist.c, postgis_gist.sql.in,
+	  postgis_gist_72.c, postgis_gist_72.sql.in, postgis_ops.c: - cut
+	  the gist indexing-related functions out of postgis_ops.c and put
+	  them in postgis_gist.c, then put the new gist indexing functions
+	  for postgres >= 7.2 in the file postgis_gist_72
 	  
 	  - similarly, the sql definitions of the gist functions have been
 	  split into their own new sql.in file, with postgis_gist_72.sql.in
@@ -46217,55 +67828,58 @@
 	  
 	  - also edited the loader/Makefile to clean up properly
 
-2002-04-26 16:13  pramsey
+2002-04-26 16:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Column name length limitation removed. Patch submitted by
-	  Bernhard
+	* [r139] loader/pgsql2shp.c: Column name length limitation removed.
+	  Patch submitted by Bernhard
 	  Reiter <bernhard at intevation.de>
 
-2002-04-23 17:02  pramsey
+2002-04-23 17:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* XML syntax error.
+	* [r138] doc/postgis.xml: XML syntax error.
 
-2002-04-19 18:20  pramsey
+2002-04-19 18:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Removed the CREATE INDEX statement since there is already a
-	  primary
+	* [r137] spatial_ref_sys.sql: Removed the CREATE INDEX statement
+	  since there is already a primary
 	  key index.
 
-2002-04-19 18:15  pramsey
+2002-04-19 18:15  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added PROJ4 entries to all relevant rows, altered the auth_name
-	  to
+	* [r136] spatial_ref_sys.sql: Added PROJ4 entries to all relevant
+	  rows, altered the auth_name to
 	  be EPSG for those IDs which originated from the EPSG.
 
-2002-04-19 15:14  pramsey
+2002-04-19 15:14  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Patches to bring example up to current version in terms of SQL
-	  access
+	* [r135] jdbc/README, jdbc/examples/TestServer.java: Patches to
+	  bring example up to current version in terms of SQL access
 	  and to stop silly bug in missing table case. Submitted by
 	  Steffen Macke <sdteffen at web.de>
 
-2002-04-15 22:38  jeffloun
+2002-04-15 22:38  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* fixed bug that allowed two field names to be the same in
-	  shp2psql, we are now checking for that.
+	* [r134] loader/shp2pgsql.c: fixed bug that allowed two field names
+	  to be the same in shp2psql, we are now checking for that.
 
-2002-03-26 23:46  dblasby
+2002-03-26 23:46  David Blasby <dblasby at gmail.com>
 
-	* changed postgis_Version() to return type text, not type char.
+	* [r133] postgis.sql.in: changed postgis_Version() to return type
+	  text, not type char.
 
-2002-03-25 22:20  pramsey
+2002-03-25 22:20  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor syntax changes in commenting.
+	* [r132] postgis.h: Minor syntax changes in commenting.
 
-2002-03-25 02:04  pramsey
+2002-03-25 02:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Minor syntactical changes to try and allow compilation on IRIX.
+	* [r131] postgis.h, postgis_debug.c: Minor syntactical changes to
+	  try and allow compilation on IRIX.
 
-2002-03-22 18:42  chodgson
+2002-03-22 18:42  Chris Hodgson <chodgson at refractions.net>
 
-	* Added the collect(geometry) function which is an aggregate
+	* [r130] postgis.h, postgis.sql.in, postgis_fn.c, postgis_inout.c:
+	  Added the collect(geometry) function which is an aggregate
 	  function that
 	  takes a group of geometries and turns them into a geometry
 	  collection. For
@@ -46273,317 +67887,346 @@
 	  roadname"
 	  would return one geometrycollection for each unique road name.
 
-2002-03-15 17:10  dblasby
+2002-03-15 17:10  David Blasby <dblasby at gmail.com>
 
-	* ADD xmin(box3d) etc... for box3d's.
+	* [r129] postgis.h, postgis.sql.in, postgis_ops.c: ADD xmin(box3d)
+	  etc... for box3d's.
 
-2002-03-14 19:35  jeffloun
+2002-03-14 19:35  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* added a warning to the shape dumper when there are no fields in
-	  the database.
+	* [r128] loader/pgsql2shp.c: added a warning to the shape dumper
+	  when there are no fields in the database.
 
-2002-03-01 19:32  pramsey
+2002-03-01 19:32  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Alter shp2pgsql in the -d case so that 'DELETE FROM' is used to
-	  clear the
+	* [r127] loader/shp2pgsql.c: Alter shp2pgsql in the -d case so that
+	  'DELETE FROM' is used to clear the
 	  'GEOMETRY_COLUMNS' table during table drop instead of
 	  DropGeometryColumns.
 	  Patch submitted by Steffen Macke <sdteffen at yahoo.com>.
 
-2002-02-27 00:38  dblasby
+2002-02-27 00:38  David Blasby <dblasby at gmail.com>
 
-	* minor bug in geometry_to_text() for BOX3D only types fixed.
+	* [r126] postgis.h, postgis_inout.c: minor bug in
+	  geometry_to_text() for BOX3D only types fixed.
 
-2002-02-27 00:06  dblasby
+2002-02-27 00:06  David Blasby <dblasby at gmail.com>
 
-	* BOX3D only geometries now dump as "SRID=x;BOX3D(...)". They are
-	  now okay to dump/restore.
+	* [r125] postgis_inout.c: BOX3D only geometries now dump as
+	  "SRID=x;BOX3D(...)". They are now okay to dump/restore.
 
-2002-02-26 23:46  dblasby
+2002-02-26 23:46  David Blasby <dblasby at gmail.com>
 
-	* for bbox only geometries, it will dump as "SRID=x;NULL", and on
-	  load, it will be NULL.
+	* [r124] postgis_inout.c: for bbox only geometries, it will dump as
+	  "SRID=x;NULL", and on load, it will be NULL.
 
-2002-02-23 19:04  pramsey
+2002-02-23 19:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Patch to pgsql2shp to allow dumping of tables with more than one
-	  geometry
+	* [r123] loader/README.pgsql2shp, loader/pgsql2shp.c: Patch to
+	  pgsql2shp to allow dumping of tables with more than one geometry
 	  column, and addition of -g option to specific which geometry
 	  column to dump.
 	  Submitted by Steffen Macke <sdteffen at yahoo.com>.
 
-2002-02-19 16:57  pramsey
+2002-02-19 16:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Patch to shp2pgsql.c to properly handle 3D shape files. Submitted
+	* [r122] loader/shp2pgsql.c: Patch to shp2pgsql.c to properly
+	  handle 3D shape files. Submitted
 	  by Steffen Macke <sdteffen at yahoo.com>.
 
-2002-02-18 18:02  dblasby
+2002-02-18 18:02  David Blasby <dblasby at gmail.com>
 
-	* minor bug fix
+	* [r121] postgis_chip.c: minor bug fix
 
-2002-02-18 17:02  dblasby
+2002-02-18 17:02  David Blasby <dblasby at gmail.com>
 
-	* Added TS support function (chip and some non-SFSQL functions)
+	* [r120] Makefile, postgis.h, postgis.sql.in, postgis_chip.c,
+	  postgis_fn.c, postgis_transform.c: Added TS support function
+	  (chip and some non-SFSQL functions)
 
-2002-02-13 16:50  pramsey
+2002-02-13 16:50  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed syntax error in UPDATE statement.
+	* [r119] README.postgis: Fixed syntax error in UPDATE statement.
 
-2002-01-11 16:58  dblasby
+2002-01-11 16:58  David Blasby <dblasby at gmail.com>
 
-	* better "no proj4" support addded
+	* [r118] postgis_transform.c: better "no proj4" support addded
 
-2002-01-08 16:55  pramsey
+2002-01-08 16:55  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed dumb error in POINT syntax example.
+	* [r117] README.postgis: Fixed dumb error in POINT syntax example.
 
-2002-01-07 21:07  dblasby
+2002-01-07 21:07  David Blasby <dblasby at gmail.com>
 
-	* Order changes to avoid conflicts.
+	* [r116] postgis.sql.in: Order changes to avoid conflicts.
 
-2002-01-03 23:31  dblasby
+2002-01-03 23:31  David Blasby <dblasby at gmail.com>
 
-	* Added max_distance(l1,l2) function
+	* [r115] postgis.h, postgis.sql.in, postgis_fn.c: Added
+	  max_distance(l1,l2) function
 
-2001-12-21 23:01  dblasby
+2001-12-21 23:01  David Blasby <dblasby at gmail.com>
 
-	* Coordinate transformation function, transform() added in this
-	  file.
+	* [r114] Makefile, postgis.h, postgis.sql.in, postgis_proj.c,
+	  postgis_transform.c: Coordinate transformation function,
+	  transform() added in this file.
 	  Adds requirement for linking the proj4 library if non-null
 	  version of
 	  function is requested.
 
-2001-12-21 19:44  pramsey
+2001-12-21 19:44  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Doco changes to reflect use of 'createlang' as default language
+	* [r113] README.postgis, doc/postgis.xml, postgis.sql.in: Doco
+	  changes to reflect use of 'createlang' as default language
 	  creator.
 
-2001-12-18 22:28  dblasby
+2001-12-18 22:28  David Blasby <dblasby at gmail.com>
 
-	* Added to achive (no code)
+	* [r112] postgis_transform.c: Added to achive (no code)
 
-2001-12-12 22:21  dblasby
+2001-12-12 22:21  David Blasby <dblasby at gmail.com>
 
-	* changed setSRID(chip and geometry, int) so its cachable
+	* [r111] postgis.sql.in: changed setSRID(chip and geometry, int) so
+	  its cachable
 
-2001-12-12 22:19  dblasby
+2001-12-12 22:19  David Blasby <dblasby at gmail.com>
 
-	* Made setSRID cachable
+	* [r110] postgis.sql.in: Made setSRID cachable
 
-2001-11-21 19:39  dblasby
+2001-11-21 19:39  David Blasby <dblasby at gmail.com>
 
-	* Chip now handles data with different datasizes (datum_size)
+	* [r109] postgis.h, postgis_chip.c: Chip now handles data with
+	  different datasizes (datum_size)
 
-2001-11-19 17:25  pramsey
+2001-11-19 17:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix error in sentence about OGC support.
+	* [r108] doc/postgis.xml: Fix error in sentence about OGC support.
 
-2001-11-07 19:35  pramsey
+2001-11-07 19:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added dates to changelog *yawn*
+	* [r106] CHANGES: Added dates to changelog *yawn*
 
-2001-11-07 17:25  pramsey
+2001-11-07 17:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added 0.6.2 changes.
+	* [r105] CHANGES: Added 0.6.2 changes.
 
-2001-11-06 23:03  jeffloun
+2001-11-06 23:03  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Fixed the 'free memory that didn't exist problem' from newsgroup
-	  feedback
+	* [r104] loader/shp2pgsql.c: Fixed the 'free memory that didn't
+	  exist problem' from newsgroup feedback
 
-2001-11-02 23:04  dblasby
+2001-11-02 23:04  David Blasby <dblasby at gmail.com>
 
-	* New CHIP type
+	* [r103] postgis_chip.c: New CHIP type
 
-2001-11-02 23:00  dblasby
+2001-11-02 23:00  David Blasby <dblasby at gmail.com>
 
-	* Added CHIP info
+	* [r102] Makefile, postgis.h, postgis.sql.in: Added CHIP info
 
-2001-11-02 00:28  pramsey
+2001-11-02 00:28  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added README to files installed by default
+	* [r101] Makefile: Added README to files installed by default
 
-2001-11-01 22:57  pramsey
+2001-11-01 22:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated shapelib files from latest CVS version.
+	* [r100] loader/dbfopen.c, loader/shapefil.h, loader/shpopen.c:
+	  Updated shapelib files from latest CVS version.
 
-2001-10-31 22:18  pramsey
+2001-10-31 22:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added spatial_ref_sys.sql to the installed files for 'make
-	  install'
+	* [r99] Makefile: Added spatial_ref_sys.sql to the installed files
+	  for 'make install'
 
-2001-10-30 19:52  pramsey
+2001-10-30 19:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added some line commenting to make names more readable.
+	* [r98] spatial_ref_sys.sql: Added some line commenting to make
+	  names more readable.
 
-2001-10-30 19:47  pramsey
+2001-10-30 19:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* More spelling fixes, this time with ispell! :)
+	* [r97] doc/postgis.xml: More spelling fixes, this time with
+	  ispell! :)
 
-2001-10-30 19:43  pramsey
+2001-10-30 19:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix spelling mistake.
+	* [r96] doc/postgis.xml: Fix spelling mistake.
 
-2001-10-29 17:52  jeffloun
+2001-10-29 17:52  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* fixed a bug which made the last column value in the dbf file
-	  loading
+	* [r95] loader/shp2pgsql.c: fixed a bug which made the last column
+	  value in the dbf file loading
 	  incorrect if you were using Dump format.
 
-2001-10-26 17:04  pramsey
+2001-10-26 17:04  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added N.Vines changes to Makefile for better compilation under
-	  cygwin.
+	* [r94] loader/Makefile: Added N.Vines changes to Makefile for
+	  better compilation under cygwin.
 
-2001-10-26 16:30  pramsey
+2001-10-26 16:30  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed documentation error with respect to box3d
+	* [r93] doc/postgis.xml: Fixed documentation error with respect to
+	  box3d
 
-2001-10-25 18:22  dblasby
+2001-10-25 18:22  David Blasby <dblasby at gmail.com>
 
-	* Fixed but in WKB out - wkb_multi* didnt set the 'size' return
-	  value.
+	* [r92] postgis_inout.c: Fixed but in WKB out - wkb_multi* didnt
+	  set the 'size' return value.
 
-2001-10-24 20:56  pramsey
+2001-10-24 20:56  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* File with all the ESRI standard ID codes, with corresponding WKT
+	* [r91] spatial_ref_sys.sql: File with all the ESRI standard ID
+	  codes, with corresponding WKT
 	  definitions, for loading into the SPATIAL_REF_SYS table.
 
-2001-10-24 20:42  pramsey
+2001-10-24 20:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Sweet mary, mother of god, getopt.c was a mess! Cleaned out HTML
-	  entities
+	* [r90] loader/Makefile, loader/getopt.c: Sweet mary, mother of
+	  god, getopt.c was a mess! Cleaned out HTML entities
 	  and added stdio.h include. Works better now.
 
-2001-10-23 23:41  jeffloun
+2001-10-23 23:41  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* fixed a bug in shp2pgsqkl that allocated way too much memory in
-	  polygon files.
+	* [r89] loader/shp2pgsql.c: fixed a bug in shp2pgsqkl that
+	  allocated way too much memory in polygon files.
 
-2001-10-22 20:13  jeffloun
+2001-10-22 20:13  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Standard GNU option handling.
+	* [r88] loader/getopt.c, loader/getopt.h: Standard GNU option
+	  handling.
 
-2001-10-22 20:12  jeffloun
+2001-10-22 20:12  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Modified both loader/dumper to use gnu getopt.c instead of
-	  standar one
+	* [r87] loader/pgsql2shp.c, loader/shp2pgsql.c: Modified both
+	  loader/dumper to use gnu getopt.c instead of standar one
 	  since getopt was not the same on solaris and linux.
 
-2001-10-18 17:52  pramsey
+2001-10-18 17:52  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* postgis_undef.sql is now automatically generated from postgis.sql
-	  so
+	* [r86] postgis_undef.sql: postgis_undef.sql is now automatically
+	  generated from postgis.sql so
 	  no longer part of source code distribution
 
-2001-10-18 17:51  pramsey
+2001-10-18 17:51  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added lines to automatically create postgis_undef.sql from
+	* [r85] Makefile, postgis_undef.sql: Added lines to automatically
+	  create postgis_undef.sql from
 	  postgis.sql using create_undef.pl as part of standard build
 	  process.
 
-2001-10-18 16:39  dblasby
+2001-10-18 16:39  David Blasby <dblasby at gmail.com>
 
-	* create_undef.pl changed to reove the 2 meta-info tables
-	  (spatial_ref_sys and geometry_columns).
+	* [r84] create_undef.pl, postgis.sql.in: create_undef.pl changed to
+	  reove the 2 meta-info tables (spatial_ref_sys and
+	  geometry_columns).
 
-2001-10-17 23:13  pramsey
+2001-10-17 23:13  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated style.css to match new website.
+	* [r83] doc/html/style.css: Updated style.css to match new website.
 
-2001-10-15 18:07  pramsey
+2001-10-15 18:07  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* 0.6.1 changes
+	* [r81] CHANGES: 0.6.1 changes
 
-2001-10-15 17:42  pramsey
+2001-10-15 17:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Usage documentation changes.
+	* [r80] loader/pgsql2shp.c: Usage documentation changes.
 
-2001-10-11 18:35  pramsey
+2001-10-11 18:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added line break ot usage.
+	* [r79] loader/shp2pgsql.c: Added line break ot usage.
 
-2001-10-11 18:34  pramsey
+2001-10-11 18:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Made usage line more friendly for 80 column displays.
+	* [r78] loader/shp2pgsql.c: Made usage line more friendly for 80
+	  column displays.
 
-2001-10-11 18:26  pramsey
+2001-10-11 18:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Edited the usage log to by nicer to 80 column displays
+	* [r77] loader/pgsql2shp.c: Edited the usage log to by nicer to 80
+	  column displays
 
-2001-10-11 18:07  jeffloun
+2001-10-11 18:07  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Fixed some errors and warning that caused it not to compile under
-	  linux
+	* [r76] loader/pgsql2shp.c, loader/shp2pgsql.c: Fixed some errors
+	  and warning that caused it not to compile under linux
 
-2001-10-11 17:15  jeffloun
+2001-10-11 17:15  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Modified the .c files slightly to get rid of some warnings.
+	* [r75] loader/shp2pgsql.c: Modified the .c files slightly to get
+	  rid of some warnings.
 
-2001-10-04 18:53  jeffloun
+2001-10-04 18:53  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Modified the pgsql2shp file to use getopt to parse the arguments.
+	* [r74] loader/README.pgsql2shp, loader/pgsql2shp.c: Modified the
+	  pgsql2shp file to use getopt to parse the arguments.
 	  Modified the Readme file accordingly to the new command line
 	  usages.
 	  
 	  automatically CVS: CVS: Committing in . CVS: CVS: Modified Files:
 	  CVS: postgis/loader/README.pgsql2shp postgis/loader/pgsql2shp.c
 
-2001-10-01 19:33  jeffloun
+2001-10-01 19:33  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Modified the program to use getopt topion parsing.
+	* [r73] loader/Makefile, loader/README.shp2pgsql,
+	  loader/shp2pgsql.c: Modified the program to use getopt topion
+	  parsing.
 
-2001-09-20 18:14  jeffloun
+2001-09-20 18:14  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Modified this file to dynamically detemine the name of the
-	  geometry column
+	* [r71] loader/pgsql2shp.c, loader/shp2pgsql.c: Modified this file
+	  to dynamically detemine the name of the geometry column
 	  instead of using the default one the loader assigns.
 
-2001-09-20 16:08  dblasby
+2001-09-20 16:08  David Blasby <dblasby at gmail.com>
 
-	* Removed index-based extent() support functions in postgis_debug.c
-	  due to
+	* [r70] postgis_debug.c: Removed index-based extent() support
+	  functions in postgis_debug.c due to
 	  compile errors reported under cygwin.
 
-2001-09-19 23:03  pramsey
+2001-09-19 23:03  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated to provide usage information for the dumper.
+	* [r69] loader/README.pgsql2shp: Updated to provide usage
+	  information for the dumper.
 
-2001-09-19 22:59  pramsey
+2001-09-19 22:59  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Split the loader README into two readmes, one for loader and one
-	  for
+	* [r68] loader/README, loader/README.pgsql2shp,
+	  loader/README.shp2pgsql: Split the loader README into two
+	  readmes, one for loader and one for
 	  dumper.
 
-2001-09-19 19:01  pramsey
+2001-09-19 19:01  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Makefile changes in preparation for 0.6 release.
+	* [r67] Makefile, doc/postgis.xml: Makefile changes in preparation
+	  for 0.6 release.
 	  Documentation fiddling for final format.
 
-2001-09-19 18:47  pramsey
+2001-09-19 18:47  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changes and additions necessary to include pgsql2shp
+	* [r66] loader/Makefile, loader/pgsql2shp.c: Changes and additions
+	  necessary to include pgsql2shp
 
-2001-09-19 18:00  pramsey
+2001-09-19 18:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Additions for the 0.6 release.
+	* [r65] doc/postgis.xml: Additions for the 0.6 release.
 
-2001-09-18 01:34  pramsey
+2001-09-18 01:34  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates to the documentation (new functions, 0.6 special info,
+	* [r64] CHANGES, Makefile, README.postgis, TODO, doc/postgis.xml:
+	  Updates to the documentation (new functions, 0.6 special info,
 	  mapserver
 	  info). Other release-specific updates in CHANGES, README, TODO to
 	  give
 	  info on the new code.
 
-2001-09-17 21:24  jeffloun
+2001-09-17 21:24  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Fixed a stupid debugging error that would cause all things to be
-	  treated as 3d points.
+	* [r63] loader/shp2pgsql.c: Fixed a stupid debugging error that
+	  would cause all things to be treated as 3d points.
 
-2001-09-17 21:00  jeffloun
+2001-09-17 21:00  Jeff Lounsbury <jeffloun at refractions.net>
 
-	* Makefile changes:
+	* [r62] loader/Makefile, loader/shp2pgsql.c: Makefile changes:
 	  I added an option in the makefile to add debugging information
 	  into the compile.
 	  
@@ -46592,68 +68235,77 @@
 	  version 0.6 , sr_id's etc.
 	  Also added a command line option to specify the sr_id.
 
-2001-09-04 19:41  dblasby
+2001-09-04 19:41  David Blasby <dblasby at gmail.com>
 
-	* Added workaround for PostgreSQL's user defined VARIABLE length
-	  datatype default value bug
+	* [r61] postgis.sql.in: Added workaround for PostgreSQL's user
+	  defined VARIABLE length datatype default value bug
 
-2001-09-04 19:30  dblasby
+2001-09-04 19:30  David Blasby <dblasby at gmail.com>
 
-	* Added support to make WKB a full type.
+	* [r60] postgis.h, postgis.sql.in, postgis_fn.c, postgis_inout.c:
+	  Added support to make WKB a full type.
 
-2001-08-30 22:24  pramsey
+2001-08-30 22:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Typo in SQL example fixed.
+	* [r59] doc/postgis.xml: Typo in SQL example fixed.
 
-2001-08-24 21:11  dblasby
+2001-08-24 21:11  David Blasby <dblasby at gmail.com>
 
-	* geometry(text) function safer with null text fields.
+	* [r58] postgis.h, postgis_inout.c: geometry(text) function safer
+	  with null text fields.
 
-2001-08-24 21:02  dblasby
+2001-08-24 21:02  David Blasby <dblasby at gmail.com>
 
-	* added geometry(text) conversion function
+	* [r57] postgis.sql.in, postgis_debug.c, postgis_inout.c,
+	  postgis_ops.c: added geometry(text) conversion function
 
-2001-08-14 22:15  dblasby
+2001-08-14 22:15  David Blasby <dblasby at gmail.com>
 
-	* Added support for better restrictivity of && searches.
+	* [r56] postgis.h, postgis.sql.in, postgis_ops.c: Added support for
+	  better restrictivity of && searches.
 	  Defaulted to 0.005 (in backend/utils/adt/geo_selfuncs.c) - I've
 	  changed it
 	  to be much smaller. This should work for everything but really
 	  really
 	  large tables.
 
-2001-08-10 02:21  pramsey
+2001-08-10 02:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed type in index description.
+	* [r55] doc/postgis.xml: Fixed type in index description.
 
-2001-08-08 22:10  pramsey
+2001-08-08 22:10  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added a -C option for the shp2pgsql compile
+	* [r54] Makefile: Added a -C option for the shp2pgsql compile
 
-2001-08-08 21:54  dblasby
+2001-08-08 21:54  David Blasby <dblasby at gmail.com>
 
-	* Added new undef.sql file and perl file to generate it.
+	* [r53] create_undef.pl, postgis_undef.sql, undef-funcs.sql: Added
+	  new undef.sql file and perl file to generate it.
 
-2001-08-08 21:49  dblasby
+2001-08-08 21:49  David Blasby <dblasby at gmail.com>
 
-	* Added new perl function to make an undef SQL script.
+	* [r52] postgis.sql.in: Added new perl function to make an undef
+	  SQL script.
 
-2001-08-08 05:25  pramsey
+2001-08-08 05:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Made OGIS type numbers final per request from James MacGill @
-	  Leeds
+	* [r51] jdbc/org/postgis/Geometry.java: Made OGIS type numbers
+	  final per request from James MacGill @ Leeds
 
-2001-08-07 21:36  pramsey
+2001-08-07 21:36  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* This file is superceded by the Makefile.
+	* [r50] examples/wkb_reader/comp: This file is superceded by the
+	  Makefile.
 
-2001-08-07 21:35  pramsey
+2001-08-07 21:35  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* This binary should not have been in CVS.
+	* [r49] examples/wkb_reader/readwkb: This binary should not have
+	  been in CVS.
 
-2001-08-02 16:50  dblasby
+2001-08-02 16:50  David Blasby <dblasby at gmail.com>
 
-	* Added more openGIS functions:
+	* [r48] postgis.h, postgis.sql.in, postgis_fn.c: Added more openGIS
+	  functions:
 	  Length2d() is renamed length()
 	  perimeter2d() is renamed to perimeter()
 	  
@@ -46693,188 +68345,234 @@
 	  sub-linestrings have
 	  startpoint=endpoint.
 
-2001-07-31 19:11  dblasby
+2001-07-31 19:11  David Blasby <dblasby at gmail.com>
 
-	* Added plpgsql functions AddGeometryColumn() and
+	* [r47] postgis.h, postgis.sql.in, postgis_fn.c, postgis_inout.c,
+	  postgis_ops.c: Added plpgsql functions AddGeometryColumn() and
 	  DeleteGeometryColumn().
 
-2001-07-30 17:29  dblasby
+2001-07-30 17:29  David Blasby <dblasby at gmail.com>
 
-	* Starting to integrate all the SRIDs into functions that create
-	  geometries or
+	* [r46] Makefile, loader/Makefile, postgis.h, postgis.sql.in,
+	  postgis_inout.c: Starting to integrate all the SRIDs into
+	  functions that create geometries or
 	  use two geometries. Throws error if try to compare geometries
 	  with different
 	  SRIDs.
 
-2001-07-30 16:41  pramsey
+2001-07-30 16:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Ooops, back to shp2pgsql as the target (dummy target)
+	* [r45] Makefile: Ooops, back to shp2pgsql as the target (dummy
+	  target)
 
-2001-07-30 16:31  pramsey
+2001-07-30 16:31  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Renamed loader target to 'loader'.
+	* [r44] Makefile: Renamed loader target to 'loader'.
 
-2001-07-30 16:27  pramsey
+2001-07-30 16:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added a line to automatically make shp2pgsql with 'all'
+	* [r43] Makefile: Added a line to automatically make shp2pgsql with
+	  'all'
 
-2001-07-29 17:18  pramsey
+2001-07-29 17:18  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added section on upgrading.
+	* [r42] README.postgis: Added section on upgrading.
 
-2001-07-26 17:41  pramsey
+2001-07-26 17:41  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* And one last time, this time for real, fixing the install
-	  location.
+	* [r41] Makefile: And one last time, this time for real, fixing the
+	  install location.
 
-2001-07-26 17:37  pramsey
+2001-07-26 17:37  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed back to libdir for the install path
+	* [r40] Makefile: Changed back to libdir for the install path
 
-2001-07-26 17:22  pramsey
+2001-07-26 17:22  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated minor version number to 5
+	* [r39] Makefile: Updated minor version number to 5
 
-2001-07-24 20:37  dblasby
+2001-07-24 20:37  David Blasby <dblasby at gmail.com>
 
-	* added expand_bbox(bbox,double) for easier searching.
+	* [r38] postgis.h, postgis.sql.in, postgis_fn.c: added
+	  expand_bbox(bbox,double) for easier searching.
 
-2001-07-24 20:18  dblasby
+2001-07-24 20:18  David Blasby <dblasby at gmail.com>
 
-	* minor change to distance(geom,geom) for stability
+	* [r37] postgis_fn.c: minor change to distance(geom,geom) for
+	  stability
 
-2001-07-24 20:12  dblasby
+2001-07-24 20:12  David Blasby <dblasby at gmail.com>
 
-	* added distance(geometry,geometry) and support functions
+	* [r36] postgis.h, postgis.sql.in, postgis_debug.c, postgis_fn.c,
+	  postgis_proj.c: added distance(geometry,geometry) and support
+	  functions
 
-2001-07-23 22:53  pramsey
+2001-07-23 22:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Apply Norman Vine's Cygwin fix for the loader to compile
+	* [r35] loader/shp2pgsql.c: Apply Norman Vine's Cygwin fix for the
+	  loader to compile
 
-2001-07-22 19:00  pramsey
+2001-07-22 19:00  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fix error in shp2pgsql section.
+	* [r34] doc/postgis.xml: Fix error in shp2pgsql section.
 
-2001-07-21 00:43  pramsey
+2001-07-21 00:43  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added lines for 0.2 and 0.5
+	* [r31] CREDITS: Added lines for 0.2 and 0.5
 
-2001-07-21 00:16  dblasby
+2001-07-21 00:16  David Blasby <dblasby at gmail.com>
 
-	* Fixes to single-point-line problem.
+	* [r30] loader/shp2pgsql.c: Fixes to single-point-line problem.
 
-2001-07-21 00:02  pramsey
+2001-07-21 00:02  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updates for 0.5 release.
+	* [r29] README.postgis, TODO: Updates for 0.5 release.
 
-2001-07-20 23:49  pramsey
+2001-07-20 23:49  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Entered 0.5 change list
+	* [r28] CHANGES: Entered 0.5 change list
 
-2001-07-20 23:40  pramsey
+2001-07-20 23:40  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* First version.
+	* [r27] loader/README: First version.
 
-2001-07-20 23:27  pramsey
+2001-07-20 23:27  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Change version numbers
+	* [r26] doc/postgis.xml: Change version numbers
 
-2001-07-20 23:26  pramsey
+2001-07-20 23:26  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Updated to include all new functions and features since release
-	  0.2
+	* [r25] doc/postgis.xml: Updated to include all new functions and
+	  features since release 0.2
 
-2001-07-20 18:48  dblasby
+2001-07-20 18:48  David Blasby <dblasby at gmail.com>
 
-	* Dumper changes.
+	* [r24] loader/shp2pgsql.c: Dumper changes.
 
-2001-07-20 18:24  pramsey
+2001-07-20 18:24  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Spelling error in makefile.
+	* [r23] loader/Makefile: Spelling error in makefile.
 
-2001-07-20 18:23  pramsey
+2001-07-20 18:23  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Fixed dos2unix problem.
+	* [r22] loader/shp2pgsql.c: Fixed dos2unix problem.
 
-2001-07-20 18:21  pramsey
+2001-07-20 18:21  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added newlines after each begin directive.
+	* [r21] loader/shp2pgsql.c: Added newlines after each begin
+	  directive.
 
-2001-07-20 16:10  dblasby
+2001-07-20 16:10  David Blasby <dblasby at gmail.com>
 
-	* Added -dump option to produce pg_dump format output. Minor fixes.
+	* [r20] loader/shp2pgsql.c: Added -dump option to produce pg_dump
+	  format output. Minor fixes.
 
-2001-07-20 15:25  pramsey
+2001-07-20 15:25  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Hopefully fixed PGSQL_SRC environment variable test.
+	* [r19] Makefile: Hopefully fixed PGSQL_SRC environment variable
+	  test.
 
-2001-07-18 22:17  dblasby
+2001-07-18 22:17  David Blasby <dblasby at gmail.com>
 
-	* Added function:
+	* [r18] postgis.h, postgis.sql.in, postgis_fn.c: Added function:
 	  point_inside_circle(geometry, Px, Py, d)
 	  - returns true if there is a point in geometry whose distance to
 	  (Px,Py) is < d
 
-2001-07-18 21:45  pramsey
+2001-07-18 21:45  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Changed loader name to shp2pgsql
+	* [r17] loader/Makefile, loader/pop.c, loader/shp2pgsql.c: Changed
+	  loader name to shp2pgsql
 
-2001-07-18 21:42  pramsey
+2001-07-18 21:42  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Initial add of the data loader code.
+	* [r16] loader, loader/Makefile, loader/README, loader/dbfopen.c,
+	  loader/pop.c, loader/shapefil.h, loader/shpopen.c: Initial add of
+	  the data loader code.
 
-2001-07-16 16:53  pramsey
+2001-07-16 16:53  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Added a 'make clean' directive.
+	* [r15] examples/wkb_reader/Makefile: Added a 'make clean'
+	  directive.
 
-2001-06-29 22:32  dblasby
+2001-06-29 22:32  David Blasby <dblasby at gmail.com>
 
-	* Fixed bug: must ALWAYS copy input data - never modify it in
-	  place. If you
+	* [r14] postgis_fn.c: Fixed bug: must ALWAYS copy input data -
+	  never modify it in place. If you
 	  do, it'll (unexpectly) update the database.
 
-2001-06-29 00:08  dblasby
+2001-06-29 00:08  David Blasby <dblasby at gmail.com>
 
-	* Fix typo in box3d
+	* [r13] postgis.sql.in: Fix typo in box3d
 
-2001-06-28 23:53  dblasby
+2001-06-28 23:53  David Blasby <dblasby at gmail.com>
 
-	* Added force_collection(geometry)
+	* [r12] postgis.h, postgis.sql.in, postgis_fn.c: Added
+	  force_collection(geometry)
 
-2001-06-28 17:52  dblasby
+2001-06-28 17:52  David Blasby <dblasby at gmail.com>
 
-	* converting a GEOMETRYCOLLECTION to wkb had the size of the wkb
-	  off by 9
+	* [r11] examples/wkb_reader/comp, examples/wkb_reader/readwkb,
+	  examples/wkb_reader/readwkb.c, postgis_inout.c: converting a
+	  GEOMETRYCOLLECTION to wkb had the size of the wkb off by 9
 	  bytes (size of the collection header). Fixed.
 
-2001-06-27 21:43  dblasby
+2001-06-27 21:43  David Blasby <dblasby at gmail.com>
 
-	* *** empty log message ***
+	* [r10] Makefile, postgis.h, postgis.sql.in, postgis_proj.c: ***
+	  empty log message ***
 
-2001-06-27 17:28  dblasby
+2001-06-27 17:28  David Blasby <dblasby at gmail.com>
 
-	* Initial version of Projection support (currently limited to
-	  ellipsoids).
+	* [r9] postgis_proj.c: Initial version of Projection support
+	  (currently limited to ellipsoids).
 
-2001-06-26 23:57  pramsey
+2001-06-26 23:57  Paul Ramsey <pramsey at cleverelephant.ca>
 
-	* Building in non-standard location now requires the PGSQL_SRC
-	  environment
+	* [r8] Makefile: Building in non-standard location now requires the
+	  PGSQL_SRC environment
 	  variable to be set and installs in the build location.
 
-2001-06-26 18:33  dblasby
-
-	* Added OGIS support functions and basic constructors.
-
-2001-06-22 18:13  dblasby
-
-	* Altered to point local development library path at right place.
-
-2001-06-22 17:39  cvs
-
-	* Initial revision
-
-2001-06-22 17:39  cvs
-
-	* New repository initialized by cvs2svn.
+2001-06-26 18:33  David Blasby <dblasby at gmail.com>
+
+	* [r7] Makefile, postgis.h, postgis.sql.in, postgis_debug.c,
+	  postgis_fn.c, postgis_inout.c: Added OGIS support functions and
+	  basic constructors.
+
+2001-06-22 18:13  David Blasby <dblasby at gmail.com>
+
+	* [r6] Makefile: Altered to point local development library path at
+	  right place.
+
+2001-06-22 17:39  No Body <no at body.net>
+
+	* [r2] CHANGES, COPYING, CREDITS, Makefile, README.postgis, TODO,
+	  doc, doc/html, doc/html/style.css, doc/postgis.xml, examples,
+	  examples/wkb_reader, examples/wkb_reader/Makefile,
+	  examples/wkb_reader/README, examples/wkb_reader/comp,
+	  examples/wkb_reader/printwkb.inc, examples/wkb_reader/readwkb,
+	  examples/wkb_reader/readwkb.c, jdbc, jdbc/Makefile, jdbc/README,
+	  jdbc/examples, jdbc/examples/Test.java,
+	  jdbc/examples/TestServer.java, jdbc/org, jdbc/org/postgis,
+	  jdbc/org/postgis/Geometry.java,
+	  jdbc/org/postgis/GeometryCollection.java,
+	  jdbc/org/postgis/GeometryFactory.java,
+	  jdbc/org/postgis/LineString.java,
+	  jdbc/org/postgis/LinearRing.java,
+	  jdbc/org/postgis/MultiLineString.java,
+	  jdbc/org/postgis/MultiPoint.java,
+	  jdbc/org/postgis/MultiPolygon.java,
+	  jdbc/org/postgis/PGbox3d.java, jdbc/org/postgis/PGgeometry.java,
+	  jdbc/org/postgis/Point.java, jdbc/org/postgis/Polygon.java,
+	  postgis.h, postgis.sql.in, postgis_debug.c, postgis_fn.c,
+	  postgis_inout.c, postgis_ops.c, regress, regress/regress.sql,
+	  regress/regress_biginsert.sql, regress/regress_expected,
+	  regress/regress_index.sql, regress/regress_index_expected,
+	  regress/regress_index_out, regress/regress_lots_of_points.sql,
+	  regress/regress_out, regress/run_index_regress,
+	  regress/run_regress, undef-funcs.sql: Initial revision
+
+2001-06-22 17:39  No Body <no at body.net>
+
+	* [r1] .: New repository initialized by cvs2svn.
 
diff --git a/GNUmakefile.in b/GNUmakefile.in
index 8fc0c24..b63e289 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -4,8 +4,10 @@
 #
 #-----------------------------------------------------
 
-# todo: add all subdirs
-SUBDIRS = liblwgeom libpgcommon postgis regress @RASTER@ @TOPOLOGY@ loader utils doc @EXTENSIONS@
+SUBDIRS = liblwgeom
+ifeq (@LIBLWGEOM_ONLY@,no)
+SUBDIRS += libpgcommon postgis regress @RASTER@ @TOPOLOGY@ loader utils doc @EXTENSIONS@
+endif
 
 PERL = @PERL@
 
@@ -21,29 +23,35 @@ all install uninstall noop clean distclean check:
 
 all: postgis_svn_revision.h
 
+ifeq (@LIBLWGEOM_ONLY@,no)
 install: all comments-install
+endif
 
 uninstall: docs-uninstall comments-uninstall
 
 clean: docs-clean clean-local
 
 clean-local:
-	rm -f postgis.sql postgis_upgrade.sql
 
 # TODO: drop 'test' target..
 test: check
 
 check: all docs-check
 
-distclean: clean distclean-local
+installcheck:
+	RUNTESTFLAGS="$(RUNTESTFLAGS) --extension" $(MAKE) check
 
-distclean-local: clean
+distclean: distclean-local
+
+distclean-local: clean-local
 	rm -Rf autom4te.cache
 	rm -f GNUmakefile
 	rm -f config.log config.cache config.status 
 	rm -f postgis_config.h
 	rm -f java/jdbc/Makefile
 
+maintainer-clean-local: distclean-local
+
 maintainer-clean: 
 	@echo '------------------------------------------------------'
 	@echo 'This command is intended for maintainers to use; it'
@@ -53,7 +61,7 @@ maintainer-clean:
 	$(MAKE) -C postgis maintainer-clean
 	$(MAKE) -C liblwgeom maintainer-clean
 	$(MAKE) -C java/jdbc maintainer-clean
-	$(MAKE) distclean
+	$(MAKE) maintainer-clean-local
 	rm -f configure
 
 garden:
@@ -114,8 +122,8 @@ configure: configure.in
 config.status: configure
 	./configure
 
-ChangeLog.svn:
-	svn2cl --authors=authors.svn -i -o ChangeLog.svn
+ChangeLog:
+	svn2cl --authors=authors.svn -i -o ChangeLog
 
 raster-post-install-check:
 	$(MAKE) -C raster post-install-check
@@ -138,4 +146,4 @@ svnrebase: authors.git
 postgis_svn_revision.h: 
 	$(PERL) utils/svn_repo_revision.pl
 
-.PHONY: utils liblwgeom ChangeLog.svn raster postgis_svn_revision.h
+.PHONY: utils liblwgeom ChangeLog raster postgis_svn_revision.h
diff --git a/NEWS b/NEWS
index 1ffe3d1..4025a53 100644
--- a/NEWS
+++ b/NEWS
@@ -1,28 +1,154 @@
-PostGIS 2.1.8
-2015/07/07
+PostGIS 2.2.0rc1
+2015/09/24
+
+ * Important / Breaking Changes *
+
+  - PROJ4 4.6 and higher only
+  - #2703, KNN <-> operator now returns the correct distance ordering
+           for all geometry types, not just for points. Code that expects
+           the looser "centroid distance" ordering should be updated.
+  - #3022, ValidateTopology swapped meaning of id1 and id2 for the
+           'edge crosses node' error (now edge_id,node_id)
+  - #2565, ST_SummaryStats(tablename, rastercolumn, ...) uses
+           ST_SummaryStatsAgg()
+  - #2567, ST_Count(tablename, rastercolumn, ...) uses ST_CountAgg()
+  - #2842, raster - Hide unselectable tables from raster_overview 
+        and raster_columns
+  - By default, PostGIS raster disables all GDAL drivers affecting
+    out-db rasters, ST_FromGDALRaster() and ST_AsGDALRaster() variants
+  - #3181, POINT EMPTY is now stored as POINT(NaN NaN) in WKB, instead of as MULTIPOINT EMPTY
+  - Java binding moved to separate repository:
+    https://github.com/postgis/postgis-java
+    
 
- * Bug Fixes *
+ * Deprecated signatures *
 
-  - #3159, do not force a bbox cache on ST_Affine
-  - #3018, GROUP BY geography sometimes returns duplicate rows
-  - #3048, shp2pgsql - illegal number format when specific system locale set
-  - #3094, Malformed GeoJSON inputs crash backend
-  - #3104, st_asgml introduces random characters in ID field
-  - #3155, Remove liblwgeom.h on make uninstall
-  - #3177, gserialized_is_empty cannot handle nested empty cases
-  - Fix crash in ST_LineLocatePoint
+  - #2748, ST_Shift_Longitude renamed to ST_ShiftLongitude,
+           ST_Find_Extent renamed to ST_FindExtent,
+           ST_Combine_BBox renamed to ST_CombineBbox,
+           ST_Length_Spheroid renamed to ST_LengthSpheroid,
+           ST_Distance_Spheroid renamed to ST_DistanceSpheroid,
+           ST_Distance_Sphere renamed to ST_DistanceSphere,
+           ST_3DLength_Spheroid deprecated (use ST_LengthSpheroid)
+  - #2769, ST_Mem_Size renamed to ST_MemSize
+  - #2565, ST_SummaryStats(tablename, rastercolumn, ...)
+  - #2567, ST_Count(tablename, rastercolumn, ...)
+
+ * New Features *
+
+  - Topology API in liblwgeom
+    (Sandro Santilli / Regione Toscana - SITA)
+  - New lwgeom_unaryunion method in liblwgeom
+  - New lwgeom_linemerge method in liblwgeom
+  - New lwgeom_is_simple method in liblwgeom
+  - #3117, Add SFCGAL 1.1 support: add ST_3DDifference, ST_3DUnion,
+           ST_Volume, ST_MakeSolid, ST_IsSolid (Vincent Mora / Oslandia)
+  - #3169, ST_ApproximateMedialAxis (Sandro Santilli)
+  - ST_CPAWithin (Sandro Santilli / Boundless)
+  - Add |=| operator with CPA semantic and KNN support with PgSQL 9.5+
+    (Sandro Santilli / Boundless)
+  - #3131, KNN support for the geography type (Paul Ramsey / CartoDB)
+  - #3023, ST_ClusterIntersecting / ST_ClusterWithin (Dan Baston)
+  - #2703, Exact KNN results for all geometry types, aka "KNN re-check" (Paul Ramsey / CartoDB)
+  - #1137, Allow a tolerance value in ST_RemoveRepeatedPoints (Paul Ramsey / CartoDB)
+  - #3062, Allow passing M factor to ST_Scale (Sandro Santilli / Boundless)
+  - #3139, ST_BoundingDiagonal (Sandro Santilli / Boundless)
+  - #3129, ST_IsValidTrajectory (Sandro Santilli / Boundless)
+  - #3128, ST_ClosestPointOfApproach (Sandro Santilli / Boundless)
+  - #3152, ST_DistanceCPA (Sandro Santilli / Boundless)
+  - Canonical output for index key types
+  - ST_SwapOrdinates (Sandro Santilli / Boundless)
+  - #2918, Use GeographicLib functions for geodetics (Mike Toews)
+  - #3074, ST_Subdivide to break up large geometry (Paul Ramsey / CartoDB)
+  - #3040, KNN GiST index based centroid (<<->>)
+           n-D distance operators (Sandro Santilli / Boundless)
+  - Interruptibility API for liblwgeom (Sandro Santilli / CartoDB)
+  - #2939, ST_ClipByBox2D (Sandro Santilli / CartoDB)
+  - #2247, ST_Retile and ST_CreateOverview: in-db raster overviews creation
+           (Sandro Santilli / Vizzuality)
+  - #899, -m shp2pgsql attribute names mapping -m switch
+           (Regina Obe / Sandro Santilli)
+  - #1678, Added GUC postgis.gdal_datapath to specify GDAL config
+           variable GDAL_DATA
+  - #2843, Support reprojection on raster import
+           (Sandro Santilli / Vizzuality)
+  - #2349, Support for encoded_polyline input/output (Kashif Rasul)
+  - #2159, report libjson version from postgis_full_version()
+  - #2770, ST_MemSize(raster)
+  - Add postgis_noop(raster)
+  - Added missing variants of ST_TPI(), ST_TRI() and ST_Roughness()
+  - Added GUC postgis.gdal_enabled_drivers to specify GDAL config
+    variable GDAL_SKIP
+  - Added GUC postgis.enable_outdb_rasters to enable access to
+    rasters with out-db bands
+  - #2387, address_standardizer extension as part of PostGIS
+           Stephen Woodbridge (imaptools.com), Walter Sinclair, Regina Obe
+  - #2816, address_standardizer_data_us extension 
+           provides reference lex,gaz,rules for address_standardizer
+           Stephen Woodbridge (imaptools.com), Walter Sinclair, Regina Obe
+  - #2341, New mask parameter for ST_MapAlgebra
+  - #2397, read encoding info automatically in shapefile loader
+  - #2430, ST_ForceCurve
+  - #2565, ST_SummaryStatsAgg()
+  - #2567, ST_CountAgg()
+  - #2632, ST_AsGML() support for curved features
+  - #2652, Add --upgrade-path switch to run_test.pl
+  - #2754, sfcgal wrapped as an extension
+  - #2227, Simplification with Visvalingam-Whyatt algorithm
+           ST_SimplifyVW, ST_SetEffectiveArea (Nicklas Avén)
+  - Functions to encode and decode TWKB
+    ST_AsTWKB, ST_GeomFromTWKB (Paul Ramsey / Nicklas Avén / CartoDB)
 
+ * Enhancements *
 
-PostGIS 2.1.7
-2015/03/30
+  - #3223, Add memcmp short-circuit to ST_Equals (Daniel Baston)
+  - #3227, Tiger geocoder upgraded to support Tiger 2015 census
+  - #2278, Make liblwgeom compatible between minor releases
+  - #897, ST_AsX3D support for GeoCoordinates and systems "GD" "WE"
+           ability to flip x/y axis (use option = 2, 3)
+  - ST_Split: allow splitting lines by multilines, multipoints
+              and (multi)polygon boundaries
+  - #3070, Simplify geometry type constraint
+  - #2839, Implement selectivity estimator for functional indexes,
+           speeding up spatial queries on raster tables.
+           (Sandro Santilli / Vizzuality)
+  - #2361, Added spatial_index column to raster_columns view
+  - #2390, Testsuite for pgsql2shp
+  - #2527, Added -k flag to raster2pgsql to skip checking that
+           band is NODATA
+  - #2616, Reduce text casts during topology building and export
+  - #2717, support startpoint, endpoint, pointn, numpoints for compoundcurve
+  - #2747, Add support for GDAL 2.0
+  - #2754, SFCGAL can now be installed with CREATE EXTENSION
+       Vincent Mora (Oslandia)
+  - #2828, Convert ST_Envelope(raster) from SQL to C
+  - #2829, Shortcut ST_Clip(raster) if geometry fully contains the raster
+           and no NODATA specified
+  - #2906, Update tiger geocoder to handle tiger 2014 data
+  - #3048, Speed up geometry simplification (J.Santana @ CartoDB)
+  - #3092, Slow performance of geometry_columns with many tables
 
  * Bug Fixes *
 
+  - #2893, Allow interruptibility of ST_Segmentize(geometry)
+           (Sandro Santilli / CartoDB)
+  - #2540, Change GUC name for GDAL_DATA to postgis.gdal_datapath
+  - #2777, Raster max extent constraint based upon envelope to behave
+           like geometry extent
+  - #2822, Use @ operator instead of ST_CoveredBy() for raster
+           max extent constraint
+  - #3018, GROUP BY geography sometimes returns duplicate rows
+  - #3020, ST_AddBand out-db bug where height using width value
+  - #3048, shp2pgsql - illegal number format when specific system locale set
+  - #3061, Allow duplicate points in JSON, GML, GML ST_GeomFrom* functions
   - #3086, ST_DumpValues() crashes backend on cleanup with invalid
            band indexes
-  - #3088, Do not (re)define strcasestr in a liblwgeom.h
-  - #3094, Malformed GeoJSON inputs crash backend
 
+ * Code refactoring *
+
+  - Split raster/rt_core/rt_api.c and raster/rt_pg/rt_pg.c files into
+    smaller files for ease of long-term maintenance and development
+  - #1220, lwerror and lwnotice function became internal to liblwgeom
 
 PostGIS 2.1.6
 2015/03/20
@@ -47,7 +173,6 @@ PostGIS 2.1.6
   - #3020, ST_AddBand out-db bug where height using width value
   - #3031, Allow restore of Geometry(Point) tables dumped with empties in them
 
-
 PostGIS 2.1.5
 2014/12/18
 
@@ -65,7 +190,6 @@ PostGIS 2.1.5
   - #2953, 2D stats not generated when Z/M values are extreme
   - #3009, Geography cast may effect underlying tuple
 
-
 PostGIS 2.1.4
 2014/09/10
 
@@ -109,7 +233,7 @@ PostGIS 2.1.4
   - #2903, Unable to compile on FreeBSD 
   - #2927  reverse_geocode not filling in direction prefix (tiger geocoder)
            get rid of deprecated ST_Line_Locate_Point called 
-
+		   
 PostGIS 2.1.3
 2014/05/13
 
@@ -126,9 +250,12 @@ PostGIS 2.1.3
   - #2700, Fix dumping of higher-dimension datasets with null rows
   - #2706, ST_DumpPoints of EMPTY geometries crashes server
 
+
 PostGIS 2.1.2
 2014/03/31
 
+ * Important Changes *
+
  * Bug Fixes *
 
   - #2666, Error out at configure time if no SQL preprocessor can be found
@@ -160,8 +287,6 @@ PostGIS 2.1.2
   - #2494, avoid memcopy in GiST index (hayamiz)
   - #2560, soft upgrade: avoid drop/recreate of aggregates that hadn't changed
 
-
-
 PostGIS 2.1.1
 2013/11/08
 
@@ -194,8 +319,7 @@ PostGIS 2.1.1
   - #2478, support for tiger 2013
   - #2527, Added -k flag to raster2pgsql to skip checking that
            band is NODATA
-
-
+    
 PostGIS 2.1.0
 2013/08/17
 
@@ -421,6 +545,43 @@ PostGIS 2.1.0
  * Known Issues *
   - #2111, Raster bands can only reference the first 256 bands of out-db rasters
 
+PostGIS 2.0.6
+2014/05/14
+
+ * Important Changes *
+
+  - Add control of GDAL drivers with the environment variable
+    POSTGIS_GDAL_ENABLED_DRIVERS. By default, all GDAL drivers are disabled
+  - Add ability to disable out-db raster bands with the environment variable
+    POSTGIS_ENABLE_OUTDB_RASTERS. By default, out-db raster bands are disabled
+
+ * Bug Fixes *
+
+  - #2772, fix premature memory free in RASTER_getBandPath (ST_BandPath)
+
+PostGIS 2.0.5
+2014/03/31
+
+ * Important Changes *
+
+  - #2514, Change raster license from GPL v3+ to v2+, allowing 
+           distribution of PostGIS Extension as GPLv2.
+
+ * Bug Fixes *
+  - #2494, avoid memcpy in GIST index
+  - #2502, Fix postgis_topology_scripts_installed() install schema
+  - #2504, Fix segfault on bogus pgsql2shp call 
+  - #2528, Fix memory leak in ST_Split / lwline_split_by_line
+  - #2532, Add missing raster/geometry commutator operators
+  - #2533, Remove duplicated signatures
+  - #2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG
+  - #2555, Fix parsing issue of range arguments of ST_Reclass
+  - #2589, Remove use of unnecessary void pointers
+  - #2607, Cannot open more than 1024 out-db files in process
+  - #2610, Ensure face splitting algorithm uses the edge index 
+  - #2619, Empty ring array in GeoJSON polygon causes crash
+  - #2638, Geography distance on M geometries sometimes wrong
+
 PostGIS 2.0.4
 2013/09/06
 
@@ -461,14 +622,12 @@ PostGIS 2.0.3
 2013/03/01
 
  * Bug Fixes *
-
   - #2134, Fixed handling of SRS strings as they are passed to GDAL functions
 
 PostGIS 2.0.2
 2012/12/03
 
  * Bug Fixes *
-
   - #1287, Drop of "gist_geometry_ops" broke a few clients
            package of legacy_gist.sql for these cases
   - #1391, Errors during upgrade from 1.5
@@ -516,10 +675,11 @@ PostGIS 2.0.2
   - #2117, Ensure ST_PointOnSurface always returns POINT
   - #2129, Fix SRID in ST_Homogenize output with collection input
   - #2130, Fix memory error in MultiPolygon GeoJson parsing 
+
   - Update URL of Maven jar
+  
 
  * Enhancements *
-
   - #1581, ST_Clip(raster, ...) no longer imposes NODATA on a band if the
            corresponding band from the source raster did not have NODATA
   - #1928, Accept array properties in GML input multi-geom input
@@ -630,7 +790,7 @@ PostGIS 2.0.0
   - Topology support improved, documented, testing, bug fixes 
     (Sandro Santilli / Faunalia for RT-SIGTA, Regina Obe, Andrea Peri,
      Jose Carlos Martinez Llari)
-  - 3D relationship support functions (Nicklas Avèn)
+  - 3D relationship support functions (Nicklas Avén)
     ST_3DDistance, ST_3DClosestPoint, ST_3DIntersects, 
     ST_3DShortestLine
   - ST_Split (Sandro Santilli / Faunalia for RT-SIGTA)
@@ -722,7 +882,7 @@ PostGIS 1.5.3
    - #457 ST_CollectionExtract returns non-requested type
     (Nicklas Avén, Paul Ramsey)
    - #441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)
-   - #411 Ability to backup invalid geometries (Sando Santilli)
+   - #411 Ability to backup invalid geometries (Sandro Santilli)
      Reported by Regione Toscana
    - #409 ST_AsSVG - degraded (Olivier Courtin)
      Reported by Sdikiy
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..57596ab
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+[![Build Status](https://secure.travis-ci.org/postgis/postgis.png)]
+(http://travis-ci.org/postgis/postgis)
+
+This file is here to play nicely with modern code repository facilities.
+Actual readme is [here](README.postgis).
+
+Official code repository, issue tracker and wiki:
+https://trac.osgeo.org/postgis/
+
+Project homepage: http://postgis.net/
diff --git a/README.postgis b/README.postgis
index d8964ee..547973e 100644
--- a/README.postgis
+++ b/README.postgis
@@ -1,8 +1,8 @@
 PostGIS - Geographic Information Systems Extensions to PostgreSQL
 =================================================================
 
-:Version: 2.1.8
-:Date: 2015-07-07
+:Version: 2.2.0rc1
+:Date: 2014-09-24
 :Website: http://postgis.net
 
 This distribution contains a module which implements GIS simple features, ties
@@ -13,12 +13,9 @@ Directory structure::
 
   ./            Build scripts and install directions
   ./doc         PostGIS Documentation
-  ./extensions  Support for the PostgreSQL 9.1+ Extensions framework
+  ./extensions  Support for the PostgreSQL Extensions framework
   ./extras      Various pieces that didn't belong to mainstream
                 (package management specfiles, WFS_locks, sample WKB parser)
-  ./java/ejb    EJB Java support
-  ./java/jdbc   Extensions to the PostgreSQL JDBC drivers to support
-                the GIS objects
   ./liblwgeom   LWGEOM geometry library
   ./libpgcommon PostGIS library to bridge LWGEOM to PostgreSQL
   ./loader      A program to convert ESRI Shape files into SQL text suitable
@@ -34,7 +31,7 @@ Directory structure::
 REQUIREMENTS
 ------------
 
-PostGIS is compatible with PostgreSQL 9.0 and above.
+PostGIS is compatible with PostgreSQL 9.1 and above.
 
 You *must* have the full PostgreSQL - including server headers - installed for
 this to work.
@@ -46,7 +43,7 @@ this to work.
 
     http://trac.osgeo.org/proj/
 
-* GEOS (Required, Version 3.3.3 or higher 
+* GEOS (Required, Version 3.3.0 or higher 
   - 3.4+ is strongly recommended and needed for full features):
 
   The GEOS library provides support for exact topological tests such as
@@ -96,6 +93,9 @@ To configure PostGIS, run::
 
   ./configure
 
+If the file is missing you must be using a development version
+of the code. In that case call ./autogen.sh to generate it.
+
 The results of the configuration can be easily seen within the
 ``postgis_config.h`` file.
 
@@ -112,7 +112,7 @@ refuse to proceed. You can specify an alternative ``geos-config`` file using
 the ``--with-geosconfig=/path/to/geos-config`` option.
 
 If GDAL cannot be found, configure will complain and refuse to proceed.
-You can either procede without raster support using ``--without-raster``
+You can either proceed without raster support using ``--without-raster``
 or use ``--with-gdalconfig=/path/to/gdal-config`` option.
 
 By default, both Topology and Raster extensions are enabled in ``./configure``.
@@ -176,106 +176,25 @@ You can change them using ``./configure`` switches. See CONFIGURATION section.
 CREATING NEW SPATIAL DATABASES
 ------------------------------
 
-PostGIS support must be enabled for each database that requires its usage.
-This is done by feeding the ``postgis.sql`` (the enabler script) file to the
-target database.
-
-The enabler script requires the PL/pgSQL procedural language in order to
-operate correctly, you can use the ``createlang`` program from the PostgreSQL
-installation.
-
-(The PostgreSQL Programmer's Guide has details if you want to do this
-manually for some reason.)
-
-So, as postgres run::
-
-  createlang plpgsql <yourdatabase>
-  psql -f postgis/postgis.sql -d <your_database>
-
-Your database should now be spatially enabled.
-
-
-ADDING RASTER SUPPORT TO A SPATIAL DATABASE
--------------------------------------------
-
-To enable raster support you must first load the ``postgis.sql`` file.
-You can then load the ``rtpostgis.sql`` file.
-
-  psql -f postgis/rtpostgis.sql -d <your_database>
+PostGIS support must be enabled for each database that requires its usage. 
+Enabling spatial functionality requires a PostgreSQL super-user.
 
+    CREATE EXTENSION postgis;
+  
 
 UPGRADING EXISTING SPATIAL DATABASES
 ------------------------------------
 
-Upgrading existing spatial databases can be tricky as it requires replacement
-or introduction of new PostGIS object definitions.
-
-Unfortunately not all definitions can be easily replaced in a live database, so
-sometimes your best bet is a dump/reload process.
-
-PostGIS provides a SOFT UPGRADE procedure for minor or bugfix releases, and an
-HARD UPGRADE procedure for major releases.
-
-SOFT UPGRADE
-~~~~~~~~~~~~
-
-Soft upgrade consists of sourcing the ``postgis_upgrade_*.sql`` script in your
-spatial database:
-
- * ``postgis_upgrade_13_to_15.sql``, upgrade a 1.3.x database to 1.5
- * ``postgis_upgrade_15_to_15.sql``, upgrade a 1.4.x database to 1.5
- * ``postgis_upgrade_16_minor.sql``, upgrade a 1.5.x database to the latest
-   minor release
-
-If a soft upgrade is not possible the script will abort and no harm will be
-done. You can then move on to the HARD UPGRADE process. Always try a soft
-upgrade first; they are much simpler.
-
-HARD UPGRADE
-~~~~~~~~~~~~
-
-Hard upgrade is a PostgreSQL dump/restore procedure combined with a filter to
-selectively update PostGIS functions and objects to point to a new library
-version.
-
-Hard upgrades are required when object definitions have changed, aggregates
-have changed or been added, and when the underlying PostgreSQL database itself
-has undergone a major update.
-
-For this purpose, PostGIS provides a utility script to restore a dump in
-"custom" format. The hard upgrade procedure is as follows::
-
-  # [1] Create a "custom-format" dump of the database you want
-  # to upgrade (let's call it "olddb")
-  $ pg_dump -Fc -f olddb.dump olddb
-
-  # [2] Do a fresh install of PostGIS in a new database
-  # (let's call it "newdb").
-  # Refer to CREATING NEW SPATIAL DATABASES for instructions
-
-  # [3] Restore the dump into your new database.
-  $ perl utils/postgis_restore.pl -v olddb.dump \
-      2> restore.log | psql newdb 2> errors.log
-
-The ``spatial_ref_sys`` entries found in your dump will be restored, but they
-will not override existing ones in ``spatial_ref_sys``.  This is to ensure that
-fixes in the official set will be properly propagated to restored databases.
-If for any reason you really want your own overrides of standard entries just
-don't load the ``spatial_ref_sys.sql`` file when creating the new database.
-
-If your database is really old or you know you've been using long deprecated
-functions in your views and functions, you might need to load ``legacy.sql``
-before restoring the dump for all your functions and views etc. to properly
-come back.  Only do this if *really* needed. Consider upgrading your views and
-functions before dumping instead, if possible.  The deprecated functions can be
-later removed by loading ``uninstall_legacy.sql``.
+Upgrade PostGIS using the "ALTER EXTENSION" facility.
 
+  ALTER EXTENSION postgis UPDATE TO '2.2.0';
+  
 
 USAGE
 -----
 
-Try the following example SQL statements to create non-OpenGIS tables and
-geometries::
+Try the following example SQL statements to create tables with
+geometry columns::
 
   CREATE TABLE geom_test ( gid int4, geom geometry, name varchar(25) );
   INSERT INTO geom_test ( gid, geom, name )
@@ -284,39 +203,22 @@ geometries::
     VALUES ( 2, 'LINESTRING(1 1 1,5 5 5,7 7 5)', '3D Line' );
   INSERT INTO geom_test ( gid, geom, name )
     VALUES ( 3, 'MULTIPOINT(3 4,8 9)', '2D Aggregate Point' );
-  SELECT * from geom_test WHERE geom && 'BOX3D(2 2 0,3 3 0)'::box3d;
+  SELECT * from geom_test WHERE ST_Intersects(geom, ST_MakeEnvelope(2,2,3,3));
 
-The following SQL creates proper OpenGIS entries in the ``SPATIAL_REF_SYS``
+The following SQL creates proper full entries in the ``SPATIAL_REF_SYS``
 and ``GEOMETRY_COLUMNS`` tables, and ensures that all geometries are created
 with an SRID::
 
-  INSERT INTO SPATIAL_REF_SYS
-    ( SRID, AUTH_NAME, AUTH_SRID, SRTEXT ) VALUES
-    ( 1, 'EPSG', 4269,
-      'GEOGCS["NAD83",
-        DATUM[
-          "North_American_Datum_1983",
-          SPHEROID[
-          "GRS 1980",
-          6378137,
-          298.257222101
-        ]
-      ],
-      PRIMEM["Greenwich",0],
-      UNIT["degree",0.0174532925199433]]'
-    );
-
   CREATE TABLE geotest (
     id INT4,
-    name VARCHAR(32)
+    name VARCHAR(32),
+    geopoint GEOMETRY(POINT, 4326)
     );
 
-  SELECT AddGeometryColumn('db', 'geotest', 'geopoint', 1, 'POINT', 2);
-
   INSERT INTO geotest (id, name, geopoint)
-    VALUES (1, 'Olympia', ST_GeomFromText('POINT(-122.90 46.97)', 1));
+    VALUES (1, 'Olympia', ST_GeomFromText('POINT(-122.90 46.97)', 4326));
   INSERT INTO geotest (id, name, geopoint)
-    VALUES (2, 'Renton', ST_GeomFromText('POINT(-122.22 47.50)', 1));
+    VALUES (2, 'Renton', ST_GeomFromText('POINT(-122.22 47.50)', 4326));
 
   SELECT name, AsText(geopoint) FROM geotest;
 
diff --git a/TODO b/TODO
index 50a25ac..a2c0be9 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,3 @@
-$Id: TODO 9415 2012-03-07 08:17:41Z strk $
 
 == Simple Projects ==
 
diff --git a/Version.config b/Version.config
index 6324f3f..3cee0a0 100644
--- a/Version.config
+++ b/Version.config
@@ -4,6 +4,6 @@
 # See HOWTO_RELEASE file in SVN for definitions of those three.
 
 POSTGIS_MAJOR_VERSION=2
-POSTGIS_MINOR_VERSION=1
-POSTGIS_MICRO_VERSION=8
+POSTGIS_MINOR_VERSION=2
+POSTGIS_MICRO_VERSION=0rc1
 
diff --git a/astyle.sh b/astyle.sh
index 333dde8..fa44b0d 100755
--- a/astyle.sh
+++ b/astyle.sh
@@ -3,7 +3,7 @@
 # Run astyle on the code base ready for release
 
 # If astyle doesn't exist, exit the script and do nothing
-echo "FOO" | astyle > /dev/null
+which astyle > /dev/null
 RET=$?
 if [ $RET -ne 0 ]; then
 	echo "Could not find astyle - aborting." 
diff --git a/authors.git b/authors.git
index f18b5e6..5c2ffc8 100644
--- a/authors.git
+++ b/authors.git
@@ -1,6 +1,6 @@
 benjubb = Ben Jubb <benjubb at refractions.net>
 chodgson = Chris Hodgson <chodgson at refractions.net>
-colivier = Olivier Courtin <olivier.courtin at camptocamp.com>
+colivier = Olivier Courtin <olivier.courtin at oslandia.com>
 cvs = No Body <no at body.net>
 dblasby = David Blasby <dblasby at gmail.com>
 devrim = Devrim GÜNDÜZ <devrim at gunduz.org>
@@ -10,7 +10,7 @@ jeffloun = Jeff Lounsbury <jeffloun at refractions.net>
 jorgearevalo = Jorge Arévalo <jorge.arevalo at deimos-space.com>
 kneufeld = Kevin Neufeld <kneufeld.ca at gmail.com>
 mcayland = Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
-mleslie = Mark Leslie <mark.leslie at lisasoft.com>
+mleslie = Mark Leslie <mark.s.leslie at gmail.com>
 mloskot = Mateusz Loskot <mateusz at loskot.net>
 mschaber = Markus Schaber <markus at schabi.de>
 nbarker = Norman Barker <nbarker at ittvis.com>
@@ -24,3 +24,5 @@ strk = Sandro Santilli <strk at keybit.net>
 warmerdam = Frank Warmerdam <warmerdam at pobox.com>
 xingkth = Xing Lin <solo.lin at gmail.com>
 yecarrillo = Eduin Carrillo <yecarrillo at yahoo.com>
+bergun = Baris Ergun <barisergun75 at gmail.com>
+woodbri = Stephen Woodbridge <woodbri at swoodbridge.com>
diff --git a/authors.svn b/authors.svn
index 22f72af..a79e21d 100644
--- a/authors.svn
+++ b/authors.svn
@@ -1,16 +1,16 @@
 benjubb:Ben Jubb <benjubb at refractions.net>
 chodgson:Chris Hodgson <chodgson at refractions.net>
-colivier:Olivier Courtin <olivier.courtin at camptocamp.com>
+colivier:Olivier Courtin <olivier.courtin at oslandia.com>
 cvs:No Body <no at body.net>
 dblasby:David Blasby <dblasby at gmail.com>
 devrim:Devrim GÜNDÜZ <devrim at gunduz.org>
-dustymugs:Bborie Park <dustymugs at gmail dot com>
+dustymugs:Bborie Park <bkpark at ucdavis.edu>
 dzwarg:David Zwarg <dzwarg at azavea.com>
 jeffloun:Jeff Lounsbury <jeffloun at refractions.net>
 jorgearevalo:Jorge Arévalo <jorge.arevalo at deimos-space.com>
 kneufeld:Kevin Neufeld <kneufeld.ca at gmail.com>
 mcayland:Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
-mleslie:Mark Leslie <mark.leslie at lisasoft.com>
+mleslie:Mark Leslie <mark.s.leslie at gmail.com>
 mloskot:Mateusz Loskot <mateusz at loskot.net>
 mschaber:Markus Schaber <markus at schabi.de>
 nbarker:Norman Barker <nbarker at ittvis.com>
@@ -24,3 +24,5 @@ strk:Sandro Santilli <strk at keybit.net>
 warmerdam:Frank Warmerdam <warmerdam at pobox.com>
 xingkth:Xing Lin <solo.lin at gmail.com>
 yecarrillo:Eduin Carrillo <yecarrillo at yahoo.com>
+bergun:Baris Ergun <barisergun75 at gmail.com>
+woodbri:Stephen Woodbridge <woodbri at swoodbridge.com>
diff --git a/autogen.sh b/autogen.sh
index 82266c3..6024906 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,6 +1,5 @@
 #!/bin/sh
 #
-# $Id: autogen.sh 9324 2012-02-27 22:08:12Z pramsey $
 #
 # PostGIS Bootstrapping Script
 #
@@ -14,12 +13,32 @@ giveup()
 
 OSTYPE=`uname -s`
 
+#
+# Solaris has GNU versions of utils with a g prefix
+#
+for grep in ggrep grep; do
+    GREP=`which $grep 2>/dev/null`
+    if test -x "${GREP}"; then
+        break;
+    fi
+done
+
+for sed in gsed sed; do
+    SED=`which $sed 2>/dev/null`
+    if test -x "${SED}"; then
+        break;
+    fi
+done
+
+#
+# Find and run Autoconf
+#
 AUTOCONF=`which autoconf 2>/dev/null`
 if [ ! ${AUTOCONF} ]; then
     echo "Missing autoconf!"
     exit
 fi
-AUTOCONF_VER=`${AUTOCONF} --version | grep -E "^.*[0-9]$" | sed 's/^.* //'`
+AUTOCONF_VER=`${AUTOCONF} --version | ${GREP} -E "^.*[0-9]$" | ${SED} 's/^.* //'`
 
 for aclocal in aclocal aclocal-1.10 aclocal-1.9; do
     ACLOCAL=`which $aclocal 2>/dev/null`
@@ -31,9 +50,9 @@ if [ ! ${ACLOCAL} ]; then
     echo "Missing aclocal!"
     exit
 fi
-ACLOCAL_VER=`${ACLOCAL} --version | grep -E "^.*[0-9]$" | sed 's/^.* //'`
+ACLOCAL_VER=`${ACLOCAL} --version | ${GREP} -E "^.*[0-9]$" | ${SED} 's/^.* //'`
 
-for libtoolize in libtoolize glibtoolize; do
+for libtoolize in glibtoolize libtoolize; do
     LIBTOOLIZE=`which $libtoolize 2>/dev/null`
     if test -x "${LIBTOOLIZE}"; then
         break;
@@ -43,7 +62,7 @@ if [ ! ${LIBTOOLIZE} ]; then
     echo "Missing libtoolize!"
     exit
 fi
-LIBTOOLIZE_VER=`${LIBTOOLIZE} --version | grep -E "^.*[0-9]\.[0-9]" | sed 's/^.* //'`
+LIBTOOLIZE_VER=`${LIBTOOLIZE} --version | ${GREP} -E "^.*[0-9]\.[0-9]" | ${SED} 's/^.* //'`
 LIBTOOLIZE_MAJOR_VER=`echo ${LIBTOOLIZE_VER} | cut -f1 -d'.'`
 
 # TODO: Check libtool version and add --install option only for 1.9b+
diff --git a/ci/debbie/postgis_regress.sh b/ci/debbie/postgis_regress.sh
new file mode 100644
index 0000000..00d457b
--- /dev/null
+++ b/ci/debbie/postgis_regress.sh
@@ -0,0 +1,79 @@
+#!/bin/bash
+set -e
+## begin variables passed in by jenkins
+
+# export PG_VER=9.2
+# export PGPORT=8442
+# export OS_BUILD=64
+# export POSTGIS_MAJOR_VERSION=2
+# export POSTGIS_MINOR_VERSION=2
+# export POSTGIS_MICRO_VERSION=0dev
+# export JENKINS_HOME=/var/lib/jenkins/workspace
+# export GEOS_VER=3.6.0dev
+# export GDAL_VER=2.0
+# export MAKE_GARDEN=1
+# export MAKE_EXTENSION=0
+
+## end variables passed in by jenkins
+
+PROJECTS=${JENKINS_HOME}/workspace
+PGPATH=${PROJECTS}/pg/rel/pg${PG_VER}w${OS_BUILD}
+
+export PGUSER=postgres
+export PATH="${PGPATH}/bin:$PATH"
+export LD_LIBRARY_PATH="${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}/lib:${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}/lib:${PGPATH}/lib"
+
+rm -rf ${WORKSPACE}/tmp/${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}
+rm -rf ${WORKSPACE}/tmp/${POSTGIS_MAJOR_VERSION}_${POSTGIS_MINOR_VERSION}_pg${PG_VER}w${OS_BUILD}
+#mkdir ${WORKSPACE}/tmp/
+export PGIS_REG_TMPDIR=${WORKSPACE}/tmp/${POSTGIS_MAJOR_VERSION}_${POSTGIS_MINOR_VERSION}_pg${PG_VER}w${OS_BUILD}
+
+echo $PGPORT
+echo ${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}
+
+## doesn't work for some reason - just hard-code to branches for now
+# if [[ $POSTGIS_MICRO_VERSION  == *SVN* || $POSTGIS_MICRO_VERSION  == *dev*  ]]  
+# then
+# 	export POSTGIS_SRC=${PROJECTS}/postgis/branches/${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}
+# else
+# 	#tagged version -- official release
+# 	export POSTGIS_SRC=${PROJECTS}/postgis/tags/${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}.${POSTGIS_MICRO_VERSION}
+# fi;
+
+export POSTGIS_SRC=${PROJECTS}/postgis/branches/${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}
+
+cd ${POSTGIS_SRC}
+
+if [ -e ./GNUMakefile ]; then
+ make distclean
+fi
+
+./autogen.sh
+
+./configure \
+    --with-pgconfig=${PROJECTS}/pg/rel/pg${PG_VER}w${OS_BUILD}/bin/pg_config \
+    --with-geosconfig=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}/bin/geos-config \
+    --with-gdalconfig=${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}/bin/gdal-config --without-interrupt-tests
+make clean
+## install so we can later test extension upgrade
+make 
+
+if [ "$?" != "0" ]; then
+  exit $?
+fi
+
+make check RUNTESTFLAGS=-v
+
+if [ "$MAKE_EXTENSION" = "1" ]; then
+ echo "Running extension testing"
+ make install
+ make check RUNTESTFLAGS=--extension
+ if [ "$?" != "0" ]; then
+  exit $?
+ fi
+fi
+
+if [ "$MAKE_GARDEN" = "1" ]; then
+ echo "Running garden test"
+ make garden
+fi
diff --git a/ci/winnie/build_postgis.sh b/ci/winnie/build_postgis.sh
new file mode 100644
index 0000000..3a507a6
--- /dev/null
+++ b/ci/winnie/build_postgis.sh
@@ -0,0 +1,143 @@
+#!/bin/bash
+set -e
+#### $Id:build_postgis210.sh 10208 2012-08-30 05:38:22Z robe $
+#all these get passed in by jenkins
+#export OS_BUILD=64 
+#export PG_VER=9.2beta2
+#export PGHOST=localhost
+#export PGPORT=8442
+#export PGUSER=postgres
+#export GEOS_VER=3.4.0dev
+#export GDAL_VER=1.9.1
+#POSTGIS_SVN_REVISION=passed_in_by_buildbot
+#POSTGIS_MAJOR_VERSION=2
+#POSTGIS_MINOR_VERSION=1
+#POSTGIS_MICRO_VERSION=0SVN
+#export GCC_TYPE=gcc48  #for pre-4.8.0 compiles this is blank
+#export JSON_VER=0.9
+#export SFCGAL_VER=1.0.4
+#export PROJ_VER=4.8.0
+
+
+export LIBXML_VER=2.7.8
+
+if [[ "${GCC_TYPE}" == *gcc48* ]] ; then
+	export PROJECTS=/projects
+	export MINGPROJECTS=/projects
+	export PATHOLD=$PATH
+else
+	export PROJECTS=/projects
+	export MINGPROJECTS=/projects
+	export PATHOLD=$PATH
+	#export JSON_VER=0.9
+fi;
+export PATHOLD=$PATH
+
+
+if [ "$OS_BUILD" == "64" ] ; then
+	export MINGHOST=x86_64-w64-mingw32
+else
+	export MINGHOST=i686-w64-mingw32
+fi;
+
+export PATHOLD="/mingw/bin:/mingw/include:/c/Windows/system32:/c/Windows:.:/bin:/include:/usr/local/bin:/c/ming${OS_BUILD}/svn"
+
+export PGWINVER=${PG_VER}edb
+
+echo PATH BEFORE: $PATH
+
+export PGPATH=${PROJECTS}/postgresql/rel/pg${PG_VER}w${OS_BUILD}${GCC_TYPE}
+#export PROJSO=libproj-0.dll
+
+export POSTGIS_VER=${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}
+
+export POSTGIS_MICRO_VER=${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}.${POSTGIS_MICRO_VERSION}
+if [[ "$POSTGIS_MICRO_VERSION"  == *SVN* || "$POSTGIS_MICRO_VERSION"  == *dev* ]] ; then
+	export POSTGIS_SRC=${PROJECTS}/postgis/branches/${POSTGIS_VER}
+else
+	#tagged version -- official release
+	export POSTGIS_SRC=${PROJECTS}/postgis/tags/${POSTGIS_VER}.${POSTGIS_MICRO_VERSION}
+fi;
+
+#export POSTGIS_SRC=${PROJECTS}/postgis/trunk
+export GDAL_DATA="${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/share/gdal"
+# export REL_PGVER=$(echo $PG_VER | tr '.' '') 
+# echo $REL_PGVER
+# export RELDIR=${MINGPROJECTS}/postgis/builds/postgis-21
+# export RELVERDIR=postgis-pg${REL_PGVER}-binaries-${POSTGIS_MICRO_VER}w64
+
+#export PATH="${PATHOLD}:${PGPATH}/bin:${PGPATH}/lib"
+export PATH="${PGPATH}/bin:${PGPATH}/lib:${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include:${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/bin:${MINGPROJECTS}/gtkw${OS_BUILD}${GCC_TYPE}/bin:${MINGPROJECTS}/gtk/bin:${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin:${MINGPROJECTS}/xsltproc:${PATH}"
+echo PATH AFTER: $PATH
+
+cd ${POSTGIS_SRC}
+if [ -e ./GNUMakefile ]; then
+	make distclean
+fi
+echo ${POSTGIS_SRC}
+sh autogen.sh
+
+#hack to get around boolean incompatibility
+#-D__USE_MINGW_ANSI_STDIO=1
+if [ "$JSON_VER" == "0.9" ] ; then
+	cp ${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE}/include/json/json_object.h.for_configure ${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE}/include/json/json_object.h
+fi
+export XSLTPROCFLAGS=
+
+#add  PCRE for address standardizer
+if [ -n "$PCRE_VER" ]; then
+    export PATH="${PROJECTS}/pcre/rel-${PCRE_VER}w${OS_BUILD}${GCC_TYPE}/include:${PROJECTS}/pcre/rel-${PCRE_VER}w${OS_BUILD}${GCC_TYPE}/lib:${PATH}"
+fi
+
+if [ -n "$SFCGAL_VER" ]; then
+	##hard code versions of cgal etc. for now
+	export CGAL_VER=4.2
+	BOOST_VER=1.53.0
+	#BOOST_VER_WU=1_49_0
+	export BOOST_VER_WU=1_53_0
+	export PATH="${PROJECTS}/CGAL/rel-cgal-${CGAL_VER}w${OS_BUILD}${GCC_TYPE}/bin:${PROJECTS}/boost/rel-${BOOST_VER_WU}w${OS_BUILD}${GCC_TYPE}/lib:${PATH}"
+	
+	CPPFLAGS="-I${PGPATH}/include -I${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include" \
+LDFLAGS="-L${PGPATH}/lib -L${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/lib -L${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/lib" ./configure \
+  --host=${MINGHOST} --with-xml2config=${PROJECTS}/libxml/rel-libxml2-${LIBXML_VER}w${OS_BUILD}${GCC_TYPE}/bin/xml2-config \
+  --with-pgconfig=${PGPATH}/bin/pg_config \
+  --with-geosconfig=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin/geos-config \
+  --with-projdir=${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-gdalconfig=${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/gdal-config \
+  --with-jsondir=${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-libiconv=${PROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE} \
+  --with-xsldir=${PROJECTS}/docbook/docbook-xsl-1.76.1 \
+  --with-gui --with-gettext=no --with-sfcgal=${PROJECTS}/CGAL/rel-sfcgal-${SFCGAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/sfcgal-config \
+  --with-pcredir=${PROJECTS}/pcre/rel-${PCRE_VER}w${OS_BUILD}${GCC_TYPE}
+elif [ "$POSTGIS_MAJOR_VERSION" == "2" ] ; then
+CPPFLAGS="-I${PGPATH}/include -I${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include" \
+LDFLAGS="-L${PGPATH}/lib -L${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/lib -L${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/lib" ./configure \
+  --host=${MINGHOST} --with-xml2config=${PROJECTS}/libxml/rel-libxml2-${LIBXML_VER}w${OS_BUILD}${GCC_TYPE}/bin/xml2-config \
+  --with-pgconfig=${PGPATH}/bin/pg_config \
+  --with-geosconfig=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin/geos-config \
+  --with-projdir=${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-gdalconfig=${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/gdal-config \
+  --with-jsondir=${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-libiconv=${PROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE} \
+  --with-xsldir=${PROJECTS}/docbook/docbook-xsl-1.76.1 \
+  --with-gui --with-gettext=no
+else
+CPPFLAGS="-I${PGPATH}/include  -I${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include" \
+    LDFLAGS="-L${PGPATH}/lib -L${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/lib -L${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/lib" ./configure \
+  --host=${MINGHOST} --with-xml2config=${PROJECTS}/libxml/rel-libxml2-${LIBXML_VER}w${OS_BUILD}${GCC_TYPE}/bin/xml2-config \
+  --with-pgconfig=${PGPATH}/bin/pg_config \
+  --with-geosconfig=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin/geos-config \
+  --with-projdir=${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-gdalconfig=${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/gdal-config \
+  --with-jsondir=${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-libiconv=${PROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE} \
+  --with-xsldir=${PROJECTS}/docbook/docbook-xsl-1.76.1 \
+  --with-gettext=no
+fi;
+#make clean
+##hack to get around boolean incompatibility now only needed for 2.0 (no longer for 2.1)
+if [ "$POSTGIS_MINOR_VERSION" == "0" ] ; then
+cp ${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE}/include/json/json_object.h.for_compile ${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE}/include/json/json_object.h
+fi;
+make && make install
+
diff --git a/ci/winnie/package_postgis.sh b/ci/winnie/package_postgis.sh
new file mode 100644
index 0000000..ee0d53e
--- /dev/null
+++ b/ci/winnie/package_postgis.sh
@@ -0,0 +1,203 @@
+#### $Id: package_postgis210.sh 10291 2012-09-15 05:37:23Z robe $
+### this script is used to zip up the compiled binaries
+## PostgreSQL, OS_BUILD denote the last build to be packaged
+## and are passed in by the jenkins job process
+## the scp to postgis website is done using Jenkins scp plugin as a final step
+###
+#export OS_BUILD=64
+#export PGPORT=8442
+#POSTGIS_MAJOR_VERSION=2
+#POSTGIS_MINOR_VERSION=1
+#POSTGIS_MICRO_VERSION=0dev
+#export GEOS_VER=3.4.0dev
+#export GDAL_VER=2.0.0
+#export OS_BUILD=32
+#export PROJ_VER=4.9.1
+#export GCC_TYPE=
+#export SFCGAL_VER=1.1.0
+#export PCRE_VER
+if [[ "${GCC_TYPE}" == *gcc48* ]] ; then
+	export PROJECTS=/projects
+	export MINGPROJECTS=/projects
+	export PATHOLD=$PATH
+else
+	export PROJECTS=/projects
+	export MINGPROJECTS=/projects
+	export PATHOLD=$PATH
+	#export JSON_VER=0.9
+fi;
+
+export PGHOST=localhost
+
+export PGUSER=postgres
+
+export PATHOLD=$PATH
+WEB=/home/www/postgis/htdocs
+DWN=${WEB}/download
+
+export PATHOLD="/mingw/bin:/mingw/include:/c/Windows/system32:/c/Windows:.:/bin:/include:/usr/local/bin:/c/ming${OS_BUILD}/svn"
+#export PG_VER=9.2beta2
+
+echo PATH BEFORE: $PATH
+
+export PGPATH=${PROJECTS}/postgresql/rel/pg${PG_VER}w${OS_BUILD}${GCC_TYPE}
+export PGPATHEDB=${PGPATH}edb
+export PROJSO=libproj-0.dll
+export POSTGIS_MINOR_VER=${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}
+export POSTGIS_MICRO_VER=${POSTGIS_MICRO_VERSION}
+
+if [[ "$POSTGIS_MICRO_VERSION"  == *SVN* || "$POSTGIS_MICRO_VERSION"  == *dev* ]] ; then
+	export POSTGIS_SRC=${PROJECTS}/postgis/branches/${POSTGIS_MINOR_VER}
+	export svnurl="http://svn.osgeo.org/postgis/branches/${POSTGIS_MINOR_VER}"
+else
+	#tagged version -- official release
+	export POSTGIS_SRC=${PROJECTS}/postgis/tags/${POSTGIS_MINOR_VER}.${POSTGIS_MICRO_VERSION}
+	export svnurl="http://svn.osgeo.org/postgis/tags/${POSTGIS_MINOR_VER}.${POSTGIS_MICRO_VERSION}"
+fi;
+
+if [[ "$POSTGIS_MINOR_VER"  == 2.2 ]] ; then
+	export svnurl="http://svn.osgeo.org/postgis/branches/trunk"
+fi;
+#export POSTGIS_SRC=${PROJECTS}/postgis/trunk
+#POSTGIS_SVN_REVISION=will_be_passed_in_by_bot
+export GDAL_DATA="${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/share/gdal"
+
+
+export REL_PGVER=${PG_VER//./} #strip the period
+
+
+export RELDIR=${PROJECTS}/postgis/builds/${POSTGIS_MINOR_VER}
+export RELVERDIR=postgis-pg${REL_PGVER}-binaries-${POSTGIS_MINOR_VER}.${POSTGIS_MICRO_VER}w${OS_BUILD}${GCC_TYPE}
+export PATH="${PATHOLD}:${PGPATH}/bin:${PGPATH}/lib"
+export PCRE_VER=8.33 #PATH="${PGPATH}/bin:${PGPATH}/lib:${MINGPROJECTS}/xsltproc:${MINGPROJECTS}/gtkw${OS_BUILD}${GCC_TYPE}/bin:${PROJECTS}/gtkw${OS_BUILD}/bin:${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin:${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include:${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/bin:${PATH}"
+#echo PATH AFTER: $PATH
+outdir="${RELDIR}/${RELVERDIR}"
+package="${RELDIR}/${RELVERDIR}.zip"
+verfile="${RELDIR}/${RELVERDIR}/version.txt"
+#svnurl="http://svn.osgeo.org/postgis/trunk"
+rm -rf $outdir
+rm $package
+mkdir -p $outdir
+mkdir -p $outdir/share/contrib/postgis-${POSTGIS_MINOR_VER}
+mkdir -p $outdir/share/contrib/postgis-${POSTGIS_MINOR_VER}/proj
+mkdir -p $outdir/share/extension
+mkdir $outdir/bin
+mkdir $outdir/lib
+mkdir $outdir/bin/postgisgui
+mkdir $outdir/bin/postgisgui/share
+mkdir $outdir/bin/postgisgui/lib
+mkdir $outdir/utils
+cp ${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}/bin/*.dll  $outdir/bin/postgisgui
+# it seems 9.2 and 9.3 doesn't come with its own libiconv good grief
+# and trying to use their libiconv2.dll makes shp2pgsql crash
+if [[ "$PG_VER" == *9.2* || "$PG_VER" == *9.3* ]]; then
+	cp ${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/bin/*.dll  $outdir/bin 
+fi;
+cp ${PGPATHEDB}/bin/libpq.dll  $outdir/bin/postgisgui 
+#cp ${PGPATHEDB}/bin/libiconv2.dll  $outdir/bin/postgisgui 
+cp ${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/bin/libicon*.dll $outdir/bin/postgisgui
+cp ${PGPATHEDB}/bin/libintl.dll $outdir/bin/postgisgui 
+cp ${PGPATHEDB}/bin/ssleay32.dll $outdir/bin/postgisgui
+cp ${PGPATHEDB}/bin/libeay32.dll $outdir/bin/postgisgui
+
+cp /c/ming${OS_BUILD}${GCC_TYPE}/mingw${OS_BUILD}/bin/libstdc++-6.dll $outdir/bin
+cp /c/ming${OS_BUILD}${GCC_TYPE}/mingw${OS_BUILD}/bin/libgcc*.dll $outdir/bin
+cp -r ${PROJECTS}/gtkw${OS_BUILD}${GCC_TYPE}/bin/*.dll $outdir/bin/postgisgui
+cp -r ${PROJECTS}/gtkw${OS_BUILD}${GCC_TYPE}/etc $outdir/bin/postgisgui
+cp -r ${PROJECTS}/gtkw${OS_BUILD}${GCC_TYPE}/share/themes $outdir/bin/postgisgui/share
+cp -r ${PROJECTS}/gtkw${OS_BUILD}${GCC_TYPE}/lib/gtk-2.0 $outdir/bin/postgisgui/lib
+cp -r ${PROJECTS}/gtkw${OS_BUILD}${GCC_TYPE}/lib/*.dll $outdir/bin/postgisgui/lib
+cp -r ${PROJECTS}/gtkw${OS_BUILD}${GCC_TYPE}/lib/gdk-pixbuf-2.0 $outdir/bin/postgisgui/lib
+
+cp ${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}${GCC_TYPE}/share/proj/* $outdir/share/contrib/postgis-${POSTGIS_MINOR_VER}/proj
+cp ${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}${GCC_TYPE}/bin/*.dll $outdir/bin
+cp -p ${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin/*.dll $outdir/bin
+
+echo "POSTGIS: ${POSTGIS_MINOR_VER} r${POSTGIS_SVN_REVISION} http://postgis.net/source" > $verfile
+
+if [ "$POSTGIS_MAJOR_VERSION" == "2" ] ; then
+  ## only copy gdal components if 2+.  1.5 doesn't have raster support
+  cp -p ${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/*.dll $outdir/bin
+  cp -rp  ${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/share/gdal $outdir/gdal-data
+  
+  if [ "$POSTGIS_MINOR_VERSION" > "0" ] ; then
+    ## only copy pagc standardizer components for 2.1+
+    cp -p ${PROJECTS}/pcre/rel-${PCRE_VER}w${OS_BUILD}${GCC_TYPE}/bin/libpcre-1*.dll $outdir/bin
+    cp -p ${PGPATH}/lib/address*.dll $outdir/lib
+    # cp -p ${PGPATH}/share/extension/address*.* $outdir/share/extension
+    # cp -p ${PGPATH}/share/extension/us-*.sql $outdir/share/extension
+  fi;
+fi;
+
+if [ -n "$SFCGAL_VER"  ]; then
+	## only copy cgal and sfcgal stuff if sfcgal is packaged
+	export CGAL_VER=4.6.1
+	export BOOST_VER=1.59.0
+	export BOOST_VER_WU=1_59_0
+	export GMP_VER=5.1.2
+	export MPFR_VER=3.1.2
+	echo "CGAL VERSION: ${CGAL_VER} http://www.cgal.org" >> $verfile
+	echo "Boost VERSION: ${BOOST_VER} http://www.boost.org" >> $verfile
+	echo "GMP VERSION: ${GMP_VER} https://gmplib.org" >> $verfile
+	echo "MPFR VERSION: ${MPFR_VER} http://www.mpfr.org" >> $verfile
+	
+	cp -p ${PROJECTS}/CGAL/rel-cgal-${CGAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/*.dll $outdir/bin
+	cp -p ${PROJECTS}/CGAL/rel-sfcgal-${SFCGAL_VER}w${OS_BUILD}${GCC_TYPE}/lib/*.dll $outdir/bin
+fi;
+#cp ${MINGPROJECTS}/libxml/rel-libxml2-2.7.8w${OS_BUILD}/bin/*.dll  $outdir/bin/
+cp ${PGPATHEDB}/bin/libxml2-2.dll   $outdir/bin/
+
+cd ${POSTGIS_SRC}
+strip postgis/postgis-${POSTGIS_MINOR_VER}.dll
+strip raster/rt_pg/rtpostgis-${POSTGIS_MINOR_VER}.dll
+strip liblwgeom/.libs/*.dll
+
+cp postgis/postgis-${POSTGIS_MINOR_VER}.dll ${RELDIR}/${RELVERDIR}/lib
+cp topology/*.dll ${RELDIR}/${RELVERDIR}/lib
+cp raster/rt_pg/rtpostgis-${POSTGIS_MINOR_VER}.dll ${RELDIR}/${RELVERDIR}/lib
+cp doc/*_comments.sql ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}
+cp postgis/*.sql ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}
+cp raster/rt_pg/*.sql ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}
+cp utils/*.pl ${RELDIR}/${RELVERDIR}/utils
+#add extras
+svn export "${svnurl}/extras" ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}/extras
+#cp raster/rt_pg/rtpostgis.sql ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}
+#cp raster/rt_pg/rtpostgis_upgrade_20_minor.sql ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}
+
+cp raster/loader/.libs/raster2pgsql.exe ${RELDIR}/${RELVERDIR}/bin
+cp liblwgeom/.libs/*.dll ${RELDIR}/${RELVERDIR}/bin
+cp loader/.libs/shp2pgsql.exe ${RELDIR}/${RELVERDIR}/bin
+cp loader/.libs/pgsql2shp.exe ${RELDIR}/${RELVERDIR}/bin
+cp loader/.libs/shp2pgsql-gui.exe ${RELDIR}/${RELVERDIR}/bin/postgisgui
+cp liblwgeom/.libs/*.dll ${RELDIR}/${RELVERDIR}/bin/postgisgui
+
+#shp2pgsql-gui now has dependency on geos (though in theory it shouldn't)
+cp -p ${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}/bin/*.dll ${RELDIR}/${RELVERDIR}/bin/postgisgui
+cp spatial_ref_sys.sql ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}
+cp topology/topology.sql ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}
+cp topology/topology_upgrade_*.sql ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}
+#cp topology/README* ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}
+#cp utils/* ${RELDIR}/${RELVERDIR}/utils
+#cp extras/* ${RELDIR}/${RELVERDIR}/share/contrib/postgis-${POSTGIS_MINOR_VER}/extras
+cp -r extensions/*/sql/* ${RELDIR}/${RELVERDIR}/share/extension
+cp -r extensions/*/*.control ${RELDIR}/${RELVERDIR}/share/extension
+#cp extensions/postgis_topology/sql/* ${RELDIR}/${RELVERDIR}/share/extension
+#cp extensions/postgis_topology/*.control ${RELDIR}/${RELVERDIR}/share/extension
+cp -r ${RELDIR}/packaging_notes/* ${RELDIR}/${RELVERDIR}/
+
+
+echo "GEOS VERSION: ${GEOS_VER} http://trac.osgeo.org/geos" >> $verfile
+echo "GDAL VERSION: ${GDAL_VER} http://trac.osgeo.org/gdal" >> $verfile
+echo "PROJ VERSION: ${PROJ_VER} http://trac.osgeo.org/proj" >> $verfile
+
+if [ -n "$SFCGAL_VER"  ]; then
+    echo "CGAL VERSION: ${CGAL_VER} http://www.cgal.org" >> $verfile
+    echo "BOOST VERSION: ${BOOST_VER} http://www.boost.org" >> $verfile
+    echo "SFCGAL VERSION: ${SFCGAL_VER} http://www.sfcgal.org https://github.com/Oslandia/SFCGAL" >> $verfile
+fi;
+#echo "PAGC ADDRESS STANDARDIZER: http://sourceforge.net/p/pagc/code/HEAD/tree/branches/sew-refactor/postgresql " >> $verfile
+cd ${RELDIR}
+zip -r $package ${RELVERDIR}
+#scp $package robe at www.refractions.net:${DWN}/${REL_PGVER}/buildbot/${RELVERDIR}.zip
+cp $package ${PROJECTS}/postgis/win_web/download/windows/pg${REL_PGVER}/buildbot
+cd ${POSTGIS_SRC}
diff --git a/ci/winnie/regress_postgis.sh b/ci/winnie/regress_postgis.sh
new file mode 100644
index 0000000..de0be5e
--- /dev/null
+++ b/ci/winnie/regress_postgis.sh
@@ -0,0 +1,174 @@
+#!/bin/bash
+set -e
+#winnie passed in variables
+#export OS_BUILD=64
+#export GCC_TYPE=gcc48
+#export PG_VER=9.3
+#export PROJ_VER=4.8.0
+#export PROJSO=libproj-0.dll
+#export POSTGIS_MAJOR_VERSION=2
+#export POSTGIS_MINOR_VERSION=2
+#export POSTGIS_MICRO_VERSION=0dev
+
+
+export PROJECTS=/projects
+export MINGPROJECTS=/projects
+export PATHOLD=$PATH
+
+
+if [ "$OS_BUILD" == "64" ] ; then
+	export MINGHOST=x86_64-w64-mingw32
+else
+	export MINGHOST=i686-w64-mingw32
+fi;
+
+export PATHOLD="/mingw/bin:/mingw/include:/mingw/lib:/c/Windows/system32:/c/Windows:.:/bin:/include:/usr/local/bin:/c/ming${OS_BUILD}/svn"
+#export PG_VER=9.2beta2
+export PGWINVER=${PG_VER}edb
+export WORKSPACE=`pwd`
+
+echo PATH BEFORE: $PATH
+
+#export PGHOST=localhost
+#export PGPORT=8442
+export PGUSER=postgres
+#export GEOS_VER=3.4.0dev
+#export GDAL_VER=1.9.1
+export PGPATH=${PROJECTS}/postgresql/rel/pg${PG_VER}w${OS_BUILD}${GCC_TYPE}
+export PGPATHEDB=${PROJECTS}/postgresql/rel/pg${PG_VER}w${OS_BUILD}${GCC_TYPE}edb
+
+export POSTGIS_VER=${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}
+export POSTGIS_MICRO_VER=${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}.${POSTGIS_MICRO_VERSION}
+if [[ "$POSTGIS_MICRO_VERSION"  == *SVN* || "$POSTGIS_MICRO_VERSION"  == *dev* ]] ; then
+	export POSTGIS_SRC=${PROJECTS}/postgis/branches/${POSTGIS_VER}
+else
+	#tagged version -- official release
+	export POSTGIS_SRC=${PROJECTS}/postgis/tags/${POSTGIS_VER}.${POSTGIS_MICRO_VERSION}
+fi;
+export LIBXML_VER=2.7.8
+#export POSTGIS_SRC=${PROJECTS}/postgis/trunk
+export GDAL_DATA="${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/share/gdal"
+
+export RELVERDIR=postgis-pg${REL_PGVER}-binaries-${POSTGIS_MICRO_VER}w${OS_BUILD}
+
+export PATH="${PATHOLD}:${PGPATH}/bin:${PGPATH}/lib"
+#PATH="${MINGPROJECTS}/gettext/rel-gettext-0.18.1/bin:${MINGPROJECTS}/xsltproc:${MINGPROJECTS}/gtk/bin:${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}/bin:${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}/bin:${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}/include:${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}/bin:${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}/bin:${MINGPROJECTS}/libxml/rel-libxml2-${LIBXML_VER}w${OS_BUILD}/bin:${PATH}"
+PATH="${MINGPROJECTS}/xsltproc:${MINGPROJECTS}/gtkw${OS_BUILD}${GCC_TYPE}/bin:${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin:${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/bin:${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/lib:${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include:${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/bin:${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}${GCC_TYPE}/bin:${MINGPROJECTS}/libxml/rel-libxml2-${ [...]
+echo PATH AFTER: $PATH
+
+echo WORKSPACE IS $WORKSPACE
+#mkdir ${PROJECTS}/postgis/tmp
+export PGIS_REG_TMPDIR=${PROJECTS}/postgis/tmp/${POSTGIS_MICRO_VER}_pg${PG_VER}_geos${GEOS_VER}_gdal${GDAL_VER}w${OS_BUILD}
+rm -rf ${PGIS_REG_TMPDIR}
+mkdir ${PGIS_REG_TMPDIR}
+export TMPDIR=${PGIS_REG_TMPDIR}
+
+#rm -rf ${PGIS_REG_TMPDIR}
+#TMPDIR=${PROJECTS}/postgis/tmp/${POSTGIS_VER}_${PG_VER}_${GEOS_VERSION}_${PROJ_VER}
+echo PORT IS $PGPORT
+echo PGIS_REG_TMPDIR IS $PGIS_REG_TMPDIR
+export XSLTPROCFLAGS=
+cd ${POSTGIS_SRC}
+if [ -e ./GNUMakefile ]; then
+	make distclean
+fi
+
+sh autogen.sh
+
+if [ -n "$PCRE_VER" ]; then
+    export PATH="${PROJECTS}/pcre/rel-${PCRE_VER}w${OS_BUILD}${GCC_TYPE}/include:${PROJECTS}/pcre/rel-${PCRE_VER}w${OS_BUILD}${GCC_TYPE}/lib:${PATH}"
+fi
+
+if [ -n "$SFCGAL_VER" ]; then
+	##hard code versions of cgal etc. for now
+	export CGAL_VER=4.6.1
+	BOOST_VER=1.59.0
+	
+	export BOOST_VER_WU=1_59_0
+	export PATH="${PROJECTS}/CGAL/rel-cgal-${CGAL_VER}w${OS_BUILD}${GCC_TYPE}/bin:${PROJECTS}/boost/rel-${BOOST_VER_WU}w${OS_BUILD}${GCC_TYPE}/lib:${PATH}"
+	
+	#this is a major cludge but only building with pcre support if SFCGAL is built - can't figure out how to do this without passing PCRE
+	#TODO: turn back on topology regression testing once topology issues resolved
+	CPPFLAGS="-I${PGPATH}/include -I${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include" \
+LDFLAGS="-L${PGPATH}/lib -L${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/lib -L${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/lib" ./configure \
+  --host=${MINGHOST} --with-xml2config=${PROJECTS}/libxml/rel-libxml2-${LIBXML_VER}w${OS_BUILD}${GCC_TYPE}/bin/xml2-config \
+  --with-pgconfig=${PGPATH}/bin/pg_config \
+  --with-geosconfig=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin/geos-config \
+  --with-projdir=${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-gdalconfig=${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/gdal-config \
+  --with-jsondir=${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-libiconv=${PROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE} \
+  --with-xsldir=${PROJECTS}/docbook/docbook-xsl-1.76.1 \
+  --with-gui --with-gettext=no --with-sfcgal=${PROJECTS}/CGAL/rel-sfcgal-${SFCGAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/sfcgal-config \
+  --with-pcredir=${PROJECTS}/pcre/rel-${PCRE_VER}w${OS_BUILD}${GCC_TYPE}  --without-interrupt-tests
+elif [ "$POSTGIS_MAJOR_VERSION" == "2" ] ; then
+CPPFLAGS="-I${PGPATH}/include -I${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include" \
+LDFLAGS="-L${PGPATH}/lib -L${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/lib -L${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/lib" ./configure \
+  --host=${MINGHOST} --with-xml2config=${PROJECTS}/libxml/rel-libxml2-${LIBXML_VER}w${OS_BUILD}${GCC_TYPE}/bin/xml2-config \
+  --with-pgconfig=${PGPATH}/bin/pg_config \
+  --with-geosconfig=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin/geos-config \
+  --with-projdir=${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-gdalconfig=${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/gdal-config \
+  --with-jsondir=${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-libiconv=${PROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE} \
+  --with-xsldir=${PROJECTS}/docbook/docbook-xsl-1.76.1 \
+  --with-gui --with-gettext=no
+else
+CPPFLAGS="-I${PGPATH}/include  -I${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include" \
+    LDFLAGS="-L${PGPATH}/lib -L${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/lib -L${MINGPROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/lib" ./configure \
+  --host=${MINGHOST} --with-xml2config=${PROJECTS}/libxml/rel-libxml2-${LIBXML_VER}w${OS_BUILD}${GCC_TYPE}/bin/xml2-config \
+  --with-pgconfig=${PGPATH}/bin/pg_config \
+  --with-geosconfig=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GCC_TYPE}/bin/geos-config \
+  --with-projdir=${MINGPROJECTS}/proj/rel-${PROJ_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-gdalconfig=${PROJECTS}/gdal/rel-${GDAL_VER}w${OS_BUILD}${GCC_TYPE}/bin/gdal-config \
+  --with-jsondir=${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE} \
+  --with-libiconv=${PROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE} \
+  --with-xsldir=${PROJECTS}/docbook/docbook-xsl-1.76.1 \
+  --with-gettext=no
+fi;
+
+make clean
+
+##hack to get around boolean incompatibility
+##hack to get around boolean incompatibility now only needed for 2.0 (no longer for 2.1)
+if [ "$POSTGIS_MINOR_VERSION" == "0" ] ; then
+cp ${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE}/include/json/json_object.h.for_compile ${MINGPROJECTS}/json-c/rel-${JSON_VER}w${OS_BUILD}${GCC_TYPE}/include/json/json_object.h
+fi;
+make
+make install
+make check RUNTESTFLAGS=-v
+
+if [ "$MAKE_EXTENSION" == "1" ]; then
+ export PGUSER=postgres
+ #need to copy install files to EDB install (since not done by make install
+ cd ${POSTGIS_SRC}
+ echo "Postgis src dir is ${POSTGIS_SRC}"
+ strip postgis/postgis-*.dll
+ strip raster/rt_pg/rtpostgis-*.dll
+ cp topology/*.dll ${PGPATHEDB}/lib
+ cp postgis/postgis*.dll ${PGPATHEDB}/lib
+ cp raster/rt_pg/rtpostgis-*.dll ${PGPATHEDB}/lib
+ cp -r extensions/*/sql/* ${PGPATHEDB}/share/extension
+ cp -r extensions/*/*.control ${PGPATHEDB}/share/extension
+ cp -r extensions/*/*.dll ${PGPATHEDB}/lib
+ 
+ make check RUNTESTFLAGS=--extension
+ 
+ ##test address standardizer
+ cd ${POSTGIS_SRC}
+ cd extensions/address_standardizer
+ make installcheck
+ 
+ ##test tiger geocoder
+ cd ${POSTGIS_SRC}
+ cd extensions/postgis_tiger_geocoder
+ make installcheck
+ if [ "$?" != "0" ]; then
+  exit $?
+ fi
+fi
+
+if [ "$MAKE_GARDEN" == "1" ]; then
+ export PGUSER=postgres
+ make garden
+fi
\ No newline at end of file
diff --git a/configure b/configure
index 858037a..ac69476 100755
--- a/configure
+++ b/configure
@@ -652,8 +652,15 @@ POSTGIS_RASTER_MINOR_VERSION
 POSTGIS_RASTER_MAJOR_VERSION
 SRID_USR_MAX
 SRID_MAX
+INTERRUPTTESTS
 TOPOLOGY
 SHLIB_LINK
+PCRE_LDFLAGS
+PCRE_CPPFLAGS
+PCRE_VERSION
+ADDRESS_STANDARDIZER
+HAVE_PCRE
+PCRE
 POSTGIS_SCRIPTS_VERSION
 POSTGIS_BUILD_DATE
 POSTGIS_LIB_VERSION
@@ -703,6 +710,7 @@ SFCGAL_OBJS
 SFCGAL_LDFLAGS
 SFCGAL_CPPFLAGS
 SFCGAL_VERSION
+POSTGIS_SFCGAL_VERSION
 SFCGAL_CONFIG
 GEOS_NUMERIC_VERSION
 POSTGIS_GEOS_VERSION
@@ -719,21 +727,21 @@ PGSQL_DOCDIR
 PGSQL_BE_CPPFLAGS
 PGSQL_FE_CPPFLAGS
 PGSQL_FE_LDFLAGS
-PGXSOVERRIDE
 PGXS
 PG_CONFIG
+LIBLWGEOM_ONLY
 ICONV_CFLAGS
 ICONV_LDFLAGS
 CUNIT_LDFLAGS
 CUNIT_CPPFLAGS
 MATHML2_DTD
 XSLBASE
+XMLLINT
 CAN_BUILD_PDF
 CAN_BUILD_COMMENTS
 DBLATEX
-XMLLINT
-XSLTPROC
 IMAGEMAGICK
+XSLTPROC
 PERL
 MINGWBUILD
 YFLAGS
@@ -741,10 +749,14 @@ YACC
 LEXLIB
 LEX_OUTPUT_ROOT
 LEX
+LIBLWGEOM_REV
+LIBLWGEOM_AGE
+LIBLWGEOM_CURRENT
 POSTGIS_MICRO_VERSION
 POSTGIS_MINOR_VERSION
 POSTGIS_MAJOR_VERSION
 EXESUFFIX
+EXCLUDELIBS_LDFLAGS
 NUMERICFLAGS
 WARNFLAGS
 PICFLAGS
@@ -752,10 +764,6 @@ SQLPP
 GPP
 CPPBIN
 ANT
-CXXCPP
-ac_ct_CXX
-CXXFLAGS
-CXX
 CPP
 LT_SYS_LIBRARY_PATH
 OTOOL64
@@ -864,7 +872,10 @@ with_gui
 enable_gtktest
 enable_debug
 enable_profile
+with_address_standardizer
+with_pcredir
 with_topology
+with_interrupt_tests
 with_raster
 with_raster_dblwarning
 with_gdalconfig
@@ -879,10 +890,6 @@ LIBS
 CPPFLAGS
 LT_SYS_LIBRARY_PATH
 CPP
-CXX
-CXXFLAGS
-CCC
-CXXCPP
 YACC
 YFLAGS
 PG_CONFIG'
@@ -1523,7 +1530,8 @@ Optional Packages:
                           stylesheet
   --with-mathmldtd=PATH   specify the dtd path for mathml2.dtd
   --with-libiconv=PATH    specify a path to non-default libiconv installation
-  --with-pgconfig=FILE    specify an alternative pg_config file
+  --with-pgconfig=FILE    specify an alternative pg_config file or disable
+                          postgresql (--without-pgconfig)
   --with-xml2config=FILE  specify an alternative xml2-config file
   --with-geosconfig=FILE  specify an alternative geos-config file
   --with-sfcgal=PATH      Add SFCGAL support. ARG allows to specify an
@@ -1538,7 +1546,12 @@ Optional Packages:
   --without-json          build without json-c support
   --with-jsondir=PATH     specify the json-c installation directory
   --with-gui              compile the data import GUI (requires GTK+2.0)
+  --without-address-standardizer
+                          Disable the address_standardizer extension
+  --with-pcredir=PATH     specify the PCRE installation directory
   --without-topology      Disable the topology extension
+  --without-interrupt-tests
+                          Disable the interrupt tests (for CI servers)
   --without-raster        Disable the raster extension
   --with-raster-dblwarning
                           output double truncation warnings. Only used with
@@ -1557,9 +1570,6 @@ Some influential environment variables:
   LT_SYS_LIBRARY_PATH
               User-defined run-time library search path.
   CPP         C preprocessor
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  CXXCPP      C++ preprocessor
   YACC        The `Yet Another Compiler Compiler' implementation to use.
               Defaults to the first program found out of: `bison -y', `byacc',
               `yacc'.
@@ -1567,7 +1577,7 @@ Some influential environment variables:
               This script will default YFLAGS to the empty string to avoid a
               default value of `-d' given by some make applications.
   PG_CONFIG   PostgreSQL configure command to determine Postgres version to
-              bulid against.
+              build against.
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1910,127 +1920,6 @@ $as_echo "$ac_res" >&6; }
 
 } # ac_fn_c_check_func
 
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
-# ac_fn_cxx_try_cpp LINENO
-# ------------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_cpp
-
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
 # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
 # -------------------------------------------------------
 # Tests whether HEADER exists, giving a warning if it cannot be compiled using
@@ -12127,36 +12016,89 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
   do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+# Extract the first word of "ant", so it can be a program name with args.
+set dummy ant; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
+if ${ac_cv_path_ANT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  case $ANT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ANT="$ANT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    ac_cv_path_ANT="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -12164,43 +12106,41 @@ done
   done
 IFS=$as_save_IFS
 
+  ;;
+esac
 fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
+ANT=$ac_cv_path_ANT
+if test -n "$ANT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ANT" >&5
+$as_echo "$ANT" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
+
+
+# Extract the first word of "cpp", so it can be a program name with args.
+set dummy cpp; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+if ${ac_cv_path_CPPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  case $CPPBIN in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CPPBIN="$CPPBIN" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    ac_cv_path_CPPBIN="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -12208,3673 +12148,50 @@ done
   done
 IFS=$as_save_IFS
 
+  ;;
+esac
 fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
+CPPBIN=$ac_cv_path_CPPBIN
+if test -n "$CPPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPPBIN" >&5
+$as_echo "$CPPBIN" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-  test -n "$ac_ct_CXX" && break
+if test "x$CPPBIN" != "x"; then
+  SQLPP="${CPPBIN} -traditional-cpp -w -P"
+else
+  # Extract the first word of "gpp_", so it can be a program name with args.
+set dummy gpp_; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GPP in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GPP="$GPP" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GPP="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
 done
+  done
+IFS=$as_save_IFS
 
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-func_stripname_cnf ()
-{
-  case $2 in
-  .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;;
-  *)  func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;;
-  esac
-} # func_stripname_cnf
-
-      if test -n "$CXX" && ( test no != "$CXX" &&
-    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
-    (test g++ != "$CXX"))); then
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
-  if ${ac_cv_prog_CXXCPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-else
-  _lt_caught_CXX_error=yes
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-compiler_needs_object_CXX=no
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_direct_absolute_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-inherit_rpath_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-reload_flag_CXX=$reload_flag
-reload_cmds_CXX=$reload_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test yes != "$_lt_caught_CXX_error"; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-  # save warnings/boilerplate of simple test code
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_CFLAGS=$CFLAGS
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  CFLAGS=$CXXFLAGS
-  compiler=$CC
-  compiler_CXX=$CC
-  func_cc_basename $compiler
-cc_basename=$func_cc_basename_result
-
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test yes = "$GXX"; then
-      lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-    else
-      lt_prog_compiler_no_builtin_flag_CXX=
-    fi
-
-    if test yes = "$GXX"; then
-      # Set up default GNU C++ configuration
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test yes = "$GCC"; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return, which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD=$ac_prog
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test yes = "$with_gnu_ld"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS=$lt_save_ifs
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD=$ac_dir/$ac_prog
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test no != "$with_gnu_ld" && break
-	;;
-      *)
-	test yes != "$with_gnu_ld" && break
-	;;
-      esac
-    fi
-  done
-  IFS=$lt_save_ifs
-else
-  lt_cv_path_LD=$LD # Let the user override the test with a path.
-fi
-fi
-
-LD=$lt_cv_path_LD
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test yes = "$with_gnu_ld"; then
-        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-
-        hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
-        export_dynamic_flag_spec_CXX='$wl--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='$wl'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
-        else
-          whole_archive_flag_spec_CXX=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-    ld_shlibs_CXX=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-      aix[4-9]*)
-        if test ia64 = "$host_cpu"; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # have runtime linking enabled, and use it for executables.
-          # For shared libraries, we enable/disable runtime linking
-          # depending on the kind of the shared library created -
-          # when "with_aix_soname,aix_use_runtimelinking" is:
-          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
-          # "aix,yes"  lib.so          shared, rtl:yes, for executables
-          #            lib.a           static archive
-          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
-          #            lib.a(lib.so.V) shared, rtl:no,  for executables
-          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
-          #            lib.a(lib.so.V) shared, rtl:no
-          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
-          #            lib.a           static archive
-          case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
-	      # With aix-soname=svr4, we create the lib.so.V shared archives only,
-	      # so we don't have lib.a shared libs to link our executables.
-	      # We have to force runtime linking in this case.
-	      aix_use_runtimelinking=yes
-	      LDFLAGS="$LDFLAGS -Wl,-brtl"
-	    fi
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        archive_cmds_CXX=''
-        hardcode_direct_CXX=yes
-        hardcode_direct_absolute_CXX=yes
-        hardcode_libdir_separator_CXX=':'
-        link_all_deplibs_CXX=yes
-        file_list_spec_CXX='$wl-f,'
-        case $with_aix_soname,$aix_use_runtimelinking in
-        aix,*) ;;	# no import file
-        svr4,* | *,yes) # use import file
-          # The Import File defines what to hardcode.
-          hardcode_direct_CXX=no
-          hardcode_direct_absolute_CXX=no
-          ;;
-        esac
-
-        if test yes = "$GXX"; then
-          case $host_os in aix4.[012]|aix4.[012].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`$CC -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    hardcode_direct_CXX=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    hardcode_minus_L_CXX=yes
-	    hardcode_libdir_flag_spec_CXX='-L$libdir'
-	    hardcode_libdir_separator_CXX=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test yes = "$aix_use_runtimelinking"; then
-	    shared_flag=$shared_flag' $wl-G'
-	  fi
-	  # Need to ensure runtime linking is disabled for the traditional
-	  # shared library, or the linker may eventually find shared libraries
-	  # /with/ Import File - we do not want to mix them.
-	  shared_flag_aix='-shared'
-	  shared_flag_svr4='-shared $wl-G'
-        else
-          # not using gcc
-          if test ia64 = "$host_cpu"; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test yes = "$aix_use_runtimelinking"; then
-	      shared_flag='$wl-G'
-	    else
-	      shared_flag='$wl-bM:SRE'
-	    fi
-	    shared_flag_aix='$wl-bM:SRE'
-	    shared_flag_svr4='$wl-G'
-          fi
-        fi
-
-        export_dynamic_flag_spec_CXX='$wl-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        always_export_symbols_CXX=yes
-	if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          # The "-G" linker flag allows undefined symbols.
-          no_undefined_flag_CXX='-bernotok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          if test set = "${lt_cv_aix_libpath+set}"; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath__CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX=/usr/lib:/lib
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
-          hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"
-
-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
-        else
-          if test ia64 = "$host_cpu"; then
-	    hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib'
-	    allow_undefined_flag_CXX="-z nodefs"
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    if test set = "${lt_cv_aix_libpath+set}"; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath__CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX=/usr/lib:/lib
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
-	    hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    no_undefined_flag_CXX=' $wl-bernotok'
-	    allow_undefined_flag_CXX=' $wl-berok'
-	    if test yes = "$with_gnu_ld"; then
-	      # We only use this code for GNU lds that support --whole-archive.
-	      whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'
-	    else
-	      # Exported symbols can be pulled into shared objects from archives
-	      whole_archive_flag_spec_CXX='$convenience'
-	    fi
-	    archive_cmds_need_lc_CXX=yes
-	    archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
-	    # -brtl affects multiple linker settings, -berok does not and is overridden later
-	    compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
-	    if test svr4 != "$with_aix_soname"; then
-	      # This is similar to how AIX traditionally builds its shared
-	      # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
-	      archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
-	    fi
-	    if test aix != "$with_aix_soname"; then
-	      archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_sy [...]
-	    else
-	      # used by -dlpreopen to get the symbols
-	      archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
-	    fi
-	    archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  allow_undefined_flag_CXX=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-	case $GXX,$cc_basename in
-	,cl* | no,cl*)
-	  # Native MSVC
-	  # hardcode_libdir_flag_spec is actually meaningless, as there is
-	  # no search path for DLLs.
-	  hardcode_libdir_flag_spec_CXX=' '
-	  allow_undefined_flag_CXX=unsupported
-	  always_export_symbols_CXX=yes
-	  file_list_spec_CXX='@'
-	  # Tell ltmain to make .lib files, not .a files.
-	  libext=lib
-	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=.dll
-	  # FIXME: Setting linknames here is a bad hack.
-	  archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
-	  archive_expsym_cmds_CXX='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
-              cp "$export_symbols" "$output_objdir/$soname.def";
-              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
-            else
-              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
-            fi~
-            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-            linknames='
-	  # The linker will not automatically build a static lib if we build a DLL.
-	  # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
-	  enable_shared_with_static_runtimes_CXX=yes
-	  # Don't use ranlib
-	  old_postinstall_cmds_CXX='chmod 644 $oldlib'
-	  postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
-            lt_tool_outputfile="@TOOL_OUTPUT@"~
-            case $lt_outputfile in
-              *.exe|*.EXE) ;;
-              *)
-                lt_outputfile=$lt_outputfile.exe
-                lt_tool_outputfile=$lt_tool_outputfile.exe
-                ;;
-            esac~
-            func_to_tool_file "$lt_outputfile"~
-            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
-              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-              $RM "$lt_outputfile.manifest";
-            fi'
-	  ;;
-	*)
-	  # g++
-	  # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-	  # as there is no search path for DLLs.
-	  hardcode_libdir_flag_spec_CXX='-L$libdir'
-	  export_dynamic_flag_spec_CXX='$wl--export-all-symbols'
-	  allow_undefined_flag_CXX=unsupported
-	  always_export_symbols_CXX=no
-	  enable_shared_with_static_runtimes_CXX=yes
-
-	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file, use it as
-	    # is; otherwise, prepend EXPORTS...
-	    archive_expsym_cmds_CXX='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
-              cp $export_symbols $output_objdir/$soname.def;
-            else
-              echo EXPORTS > $output_objdir/$soname.def;
-              cat $export_symbols >> $output_objdir/$soname.def;
-            fi~
-            $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	  else
-	    ld_shlibs_CXX=no
-	  fi
-	  ;;
-	esac
-	;;
-      darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc_CXX=no
-  hardcode_direct_CXX=no
-  hardcode_automatic_CXX=yes
-  hardcode_shlibpath_var_CXX=unsupported
-  if test yes = "$lt_cv_ld_force_load"; then
-    whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
-  else
-    whole_archive_flag_spec_CXX=''
-  fi
-  link_all_deplibs_CXX=yes
-  allow_undefined_flag_CXX=$_lt_dar_allow_undefined
-  case $cc_basename in
-     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test yes = "$_lt_dar_can_shared"; then
-    output_verbose_link_cmd=func_echo_all
-    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
-    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
-    archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
-    module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
-       if test yes != "$lt_cv_apple_cc_single_mod"; then
-      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
-      archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
-    fi
-
-  else
-  ld_shlibs_CXX=no
-  fi
-
-	;;
-
-      os2*)
-	hardcode_libdir_flag_spec_CXX='-L$libdir'
-	hardcode_minus_L_CXX=yes
-	allow_undefined_flag_CXX=unsupported
-	shrext_cmds=.dll
-	archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
-	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
-	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
-	  $ECHO EXPORTS >> $output_objdir/$libname.def~
-	  emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
-	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
-	  emximp -o $lib $output_objdir/$libname.def'
-	archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
-	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
-	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
-	  $ECHO EXPORTS >> $output_objdir/$libname.def~
-	  prefix_cmds="$SED"~
-	  if test EXPORTS = "`$SED 1q $export_symbols`"; then
-	    prefix_cmds="$prefix_cmds -e 1d";
-	  fi~
-	  prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
-	  cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
-	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
-	  emximp -o $lib $output_objdir/$libname.def'
-	old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
-	enable_shared_with_static_runtimes_CXX=yes
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      freebsd2.*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        ld_shlibs_CXX=no
-        ;;
-
-      freebsd-elf*)
-        archive_cmds_need_lc_CXX=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        ld_shlibs_CXX=yes
-        ;;
-
-      haiku*)
-        archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-        link_all_deplibs_CXX=yes
-        ;;
-
-      hpux9*)
-        hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'
-        hardcode_libdir_separator_CXX=:
-        export_dynamic_flag_spec_CXX='$wl-E'
-        hardcode_direct_CXX=yes
-        hardcode_minus_L_CXX=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            ld_shlibs_CXX=no
-            ;;
-          aCC*)
-            archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-            ;;
-          *)
-            if test yes = "$GXX"; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              ld_shlibs_CXX=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test no = "$with_gnu_ld"; then
-	  hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'
-	  hardcode_libdir_separator_CXX=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      export_dynamic_flag_spec_CXX='$wl-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            hardcode_direct_CXX=no
-            hardcode_shlibpath_var_CXX=no
-            ;;
-          *)
-            hardcode_direct_CXX=yes
-            hardcode_direct_absolute_CXX=yes
-            hardcode_minus_L_CXX=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-          *)
-	    if test yes = "$GXX"; then
-	      if test no = "$with_gnu_ld"; then
-	        case $host_cpu in
-	          hppa*64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[3-9]*)
-	hardcode_direct_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
-	export_dynamic_flag_spec_CXX='$wl-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test yes = "$GXX"; then
-	      if test no = "$with_gnu_ld"; then
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
-	      else
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
-	      fi
-	    fi
-	    link_all_deplibs_CXX=yes
-	    ;;
-        esac
-        hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
-        hardcode_libdir_separator_CXX=:
-        inherit_rpath_CXX=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
-	    hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    archive_cmds_need_lc_CXX=no
-	    hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
-	    whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
-	      prelink_cmds_CXX='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
-	      old_archive_cmds_CXX='tpldir=Template.dir~
-                rm -rf $tpldir~
-                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-                $RANLIB $oldlib'
-	      archive_cmds_CXX='tpldir=Template.dir~
-                rm -rf $tpldir~
-                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-	      archive_expsym_cmds_CXX='tpldir=Template.dir~
-                rm -rf $tpldir~
-                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 and above use weak symbols
-	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-	      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir'
-	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
-	    whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-	    archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname  -o $lib $wl-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
-	    ;;
-	  xl* | mpixl* | bgxl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
-	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
-	    archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	    if test yes = "$supports_anon_versioning"; then
-	      archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
-                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-                echo "local: *; };" >> $output_objdir/$libname.ver~
-                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      no_undefined_flag_CXX=' -zdefs'
-	      archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
-	      hardcode_libdir_flag_spec_CXX='-R$libdir'
-	      whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
-	      compiler_needs_object_CXX=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='func_echo_all'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  hardcode_libdir_flag_spec_CXX='-R$libdir'
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        ld_shlibs_CXX=yes
-	;;
-
-      openbsd* | bitrig*)
-	if test -f /usr/libexec/ld.so; then
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	  hardcode_direct_absolute_CXX=yes
-	  archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
-	    archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
-	    export_dynamic_flag_spec_CXX='$wl-E'
-	    whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=func_echo_all
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'
-	        archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-	        hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
-		;;
-	      *)
-	        allow_undefined_flag_CXX=' -expect_unresolved \*'
-	        archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-	        archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-                  echo "-hidden">> $lib.exp~
-                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
-                  $RM $lib.exp'
-	        hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-		;;
-	    esac
-
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-	  *)
-	    if test yes,no = "$GXX,$with_gnu_ld"; then
-	      allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'
-	      case $host in
-	        osf3*)
-	          archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
-		  ;;
-	        *)
-	          archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
-	      hardcode_libdir_separator_CXX=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            archive_cmds_need_lc_CXX=yes
-	    no_undefined_flag_CXX=' -zdefs'
-	    archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    hardcode_libdir_flag_spec_CXX='-R$libdir'
-	    hardcode_shlibpath_var_CXX=no
-	    case $host_os in
-	      solaris2.[0-5] | solaris2.[0-5].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands '-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    link_all_deplibs_CXX=yes
-
-	    output_verbose_link_cmd='func_echo_all'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test yes,no = "$GXX,$with_gnu_ld"; then
-	      no_undefined_flag_CXX=' $wl-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
-	        # platform.
-	        archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      fi
-
-	      hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'
-	      case $host_os in
-		solaris2.[0-5] | solaris2.[0-5].*) ;;
-		*)
-		  whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag_CXX='$wl-z,text'
-      archive_cmds_need_lc_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We CANNOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	no_undefined_flag_CXX='$wl-z,text'
-	allow_undefined_flag_CXX='$wl-z,nodefs'
-	archive_cmds_need_lc_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='$wl-R,$libdir'
-	hardcode_libdir_separator_CXX=':'
-	link_all_deplibs_CXX=yes
-	export_dynamic_flag_spec_CXX='$wl-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
-              '"$old_archive_cmds_CXX"
-	    reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
-              '"$reload_cmds_CXX"
-	    ;;
-	  *)
-	    archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-    esac
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-    test no = "$ld_shlibs_CXX" && can_build_shared=no
-
-    GCC_CXX=$GXX
-    LD_CXX=$LD
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    # Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case $prev$p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test x-L = "$p" ||
-          test x-R = "$p"; then
-	 prev=$p
-	 continue
-       fi
-
-       # Expand the sysroot to ease extracting the directories later.
-       if test -z "$prev"; then
-         case $p in
-         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-         esac
-       fi
-       case $p in
-       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-       esac
-       if test no = "$pre_test_object_deps_done"; then
-	 case $prev in
-	 -L | -R)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$compiler_lib_search_path_CXX"; then
-	     compiler_lib_search_path_CXX=$prev$p
-	   else
-	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$postdeps_CXX"; then
-	   postdeps_CXX=$prev$p
-	 else
-	   postdeps_CXX="${postdeps_CXX} $prev$p"
-	 fi
-       fi
-       prev=
-       ;;
-
-    *.lto.$objext) ;; # Ignore GCC LTO objects
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test no = "$pre_test_object_deps_done"; then
-	 if test -z "$predep_objects_CXX"; then
-	   predep_objects_CXX=$p
-	 else
-	   predep_objects_CXX="$predep_objects_CXX $p"
-	 fi
-       else
-	 if test -z "$postdep_objects_CXX"; then
-	   postdep_objects_CXX=$p
-	 else
-	   postdep_objects_CXX="$postdep_objects_CXX $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix[3-9]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  predep_objects_CXX=
-  postdep_objects_CXX=
-  postdeps_CXX=
-  ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
- compiler_lib_search_dirs_CXX=
-if test -n "${compiler_lib_search_path_CXX}"; then
- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'`
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test yes = "$GXX"; then
-    lt_prog_compiler_wl_CXX='-Wl,'
-    lt_prog_compiler_static_CXX='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test ia64 = "$host_cpu"; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_CXX='-Bstatic'
-      fi
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic_CXX='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the '-m68020' flag to GCC prevents building anything better,
-            # like '-m68040'.
-            lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-      case $host_os in
-      os2*)
-	lt_prog_compiler_static_CXX='$wl-static'
-	;;
-      esac
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_CXX='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      lt_prog_compiler_pic_CXX=
-      ;;
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      lt_prog_compiler_static_CXX=
-      ;;
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_CXX=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	lt_prog_compiler_pic_CXX='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic_CXX='-fPIC -shared'
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[4-9]*)
-	# All AIX code is PIC.
-	if test ia64 = "$host_cpu"; then
-	  # AIX 5 now supports IA64 processor
-	  lt_prog_compiler_static_CXX='-Bstatic'
-	else
-	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      mingw* | cygwin* | os2* | pw32* | cegcc*)
-	# This hack is so that the source file can tell whether it is being
-	# built for inclusion in a dll (and should export symbols for example).
-	lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='$wl-a ${wl}archive'
-	    if test ia64 != "$host_cpu"; then
-	      lt_prog_compiler_pic_CXX='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='$wl-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      lt_prog_compiler_pic_CXX='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64, which still supported -KPIC.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fpic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
-	    # IBM XL 8.0, 9.0 on PPC and BlueGene
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-qpic'
-	    lt_prog_compiler_static_CXX='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      lt_prog_compiler_pic_CXX='-KPIC'
-	      lt_prog_compiler_static_CXX='-Bstatic'
-	      lt_prog_compiler_wl_CXX='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    lt_prog_compiler_pic_CXX='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        lt_prog_compiler_pic_CXX='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    lt_prog_compiler_wl_CXX='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    lt_prog_compiler_pic_CXX='-pic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	lt_prog_compiler_can_build_shared_CXX=no
-	;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms that do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_CXX=
-    ;;
-  *)
-    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
-    ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
-lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works_CXX=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"  ## exclude from sc_useless_quotes_in_assignment
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then
-    case $lt_prog_compiler_pic_CXX in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
-     esac
-else
-    lt_prog_compiler_pic_CXX=
-     lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works_CXX=no
-   save_LDFLAGS=$LDFLAGS
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works_CXX=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works_CXX=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS=$save_LDFLAGS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then
-    :
-else
-    lt_prog_compiler_static_CXX=
-fi
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-
-hard_links=nottested
-if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test no = "$hard_links"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-  case $host_os in
-  aix[4-9]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
-    # Without the "-l" option, or with the "-B" option, AIX nm treats
-    # weak defined symbols like other global defined symbols, whereas
-    # GNU nm marks them as "W".
-    # While the 'weak' keyword is ignored in the Export File, we need
-    # it in the Import File for the 'aix-soname' feature, so we have
-    # to replace the "-B" option with "-P" for AIX nm.
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX=$ltdll_cmds
-    ;;
-  cygwin* | mingw* | cegcc*)
-    case $cc_basename in
-    cl*)
-      exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-      ;;
-    *)
-      export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-      exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-      ;;
-    esac
-    ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-    ;;
-  esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test no = "$ld_shlibs_CXX" && can_build_shared=no
-
-with_gnu_ld_CXX=$with_gnu_ld
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_CXX=yes
-
-  if test yes,yes = "$GCC,$enable_shared"; then
-    case $archive_cmds_CXX in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  $RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$lt_prog_compiler_wl_CXX
-	  pic_flag=$lt_prog_compiler_pic_CXX
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-	  allow_undefined_flag_CXX=
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-	  then
-	    lt_cv_archive_cmds_need_lc_CXX=no
-	  else
-	    lt_cv_archive_cmds_need_lc_CXX=yes
-	  fi
-	  allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
-      archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=.so
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-
-
-case $host_os in
-aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='$libname$release$shared_ext$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test ia64 = "$host_cpu"; then
-    # AIX 5 supports IA64
-    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line '#! .'.  This would cause the generated library to
-    # depend on '.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # Using Import Files as archive members, it is possible to support
-    # filename-based versioning of shared library archives on AIX. While
-    # this would work for both with and without runtime linking, it will
-    # prevent static linking of such archives. So we do filename-based
-    # shared library versioning with .so extension only, which is used
-    # when both runtime linking and shared linking is enabled.
-    # Unfortunately, runtime linking may impact performance, so we do
-    # not want this to be the default eventually. Also, we use the
-    # versioned .so libs for executables only if there is the -brtl
-    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
-    # To allow for filename-based versioning support, we need to create
-    # libNAME.so.V as an archive file, containing:
-    # *) an Import File, referring to the versioned filename of the
-    #    archive as well as the shared archive member, telling the
-    #    bitwidth (32 or 64) of that shared object, and providing the
-    #    list of exported symbols of that shared object, eventually
-    #    decorated with the 'weak' keyword
-    # *) the shared object with the F_LOADONLY flag set, to really avoid
-    #    it being seen by the linker.
-    # At run time we better use the real file rather than another symlink,
-    # but for link time we create the symlink libNAME.so -> libNAME.so.V
-
-    case $with_aix_soname,$aix_use_runtimelinking in
-    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    aix,yes) # traditional libtool
-      dynamic_linker='AIX unversionable lib.so'
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-      ;;
-    aix,no) # traditional AIX only
-      dynamic_linker='AIX lib.a(lib.so.V)'
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='$libname$release.a $libname.a'
-      soname_spec='$libname$release$shared_ext$major'
-      ;;
-    svr4,*) # full svr4 only
-      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
-      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
-      # We do not specify a path in Import Files, so LIBPATH fires.
-      shlibpath_overrides_runpath=yes
-      ;;
-    *,yes) # both, prefer svr4
-      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
-      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
-      # unpreferred sharedlib libNAME.a needs extra handling
-      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
-      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
-      # We do not specify a path in Import Files, so LIBPATH fires.
-      shlibpath_overrides_runpath=yes
-      ;;
-    *,no) # both, prefer aix
-      dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
-      library_names_spec='$libname$release.a $libname.a'
-      soname_spec='$libname$release$shared_ext$major'
-      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
-      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
-      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
-      ;;
-    esac
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='$libname$shared_ext'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=.dll
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \$file`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
-
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
-    library_names_spec='$libname.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec=$LIB
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \$file`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
-  soname_spec='$libname$release$major$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[23].*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-      soname_spec='$libname$release$shared_ext$major'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2.*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    soname_spec='$libname$release$shared_ext$major'
-    if test 32 = "$HPUX_IA64_MODE"; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
-    fi
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    soname_spec='$libname$release$shared_ext$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    soname_spec='$libname$release$shared_ext$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[3-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test yes = "$lt_cv_prog_gnu_ld"; then
-		version_type=linux # correct to gnu/linux during the next big refactor
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='$libname$release$shared_ext$major'
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
-  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-linux*android*)
-  version_type=none # Android doesn't support versioned libraries.
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext'
-  soname_spec='$libname$release$shared_ext'
-  finish_cmds=
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  dynamic_linker='Android linker'
-  # Don't embed -rpath directories since the linker doesn't support them.
-  hardcode_libdir_flag_spec_CXX='-L$libdir'
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
-	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-
-fi
-
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Ideally, we could use ldconfig to report *all* directores which are
-  # searched for libraries, however this is still not possible.  Aside from not
-  # being certain /sbin/ldconfig is available, command
-  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
-  # even though it is searched at run-time.  Try to do the best guess by
-  # appending ld.so.conf contents (and includes) to the search path.
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    soname_spec='$libname$release$shared_ext$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd* | bitrig*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec=/usr/lib
-  need_lib_prefix=no
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
-    need_version=no
-  else
-    need_version=yes
-  fi
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-os2*)
-  libname_spec='$name'
-  version_type=windows
-  shrext_cmds=.dll
-  need_version=no
-  need_lib_prefix=no
-  # OS/2 can only load a DLL with a base name of 8 characters or less.
-  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
-    v=$($ECHO $release$versuffix | tr -d .-);
-    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
-    $ECHO $n$v`$shared_ext'
-  library_names_spec='${libname}_dll.$libext'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=BEGINLIBPATH
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-  postinstall_cmds='base_file=`basename \$file`~
-    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
-    dldir=$destdir/`dirname \$dlpath`~
-    test -d \$dldir || mkdir -p \$dldir~
-    $install_prog $dir/$dlname \$dldir/$dlname~
-    chmod a+x \$dldir/$dlname~
-    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-    fi'
-  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
-    dlpath=$dir/\$dldll~
-    $RM \$dlpath'
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='$libname$release$shared_ext$major'
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test yes = "$with_gnu_ld"; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec; then
-    version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
-    soname_spec='$libname$shared_ext.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=sco
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test yes = "$with_gnu_ld"; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test no = "$dynamic_linker" && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test yes = "$GCC"; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
-  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
-fi
-
-if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
-  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
-fi
-
-# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
-configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
-
-# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
-func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
-
-# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
-configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" ||
-   test -n "$runpath_var_CXX" ||
-   test yes = "$hardcode_automatic_CXX"; then
-
-  # We can hardcode non-existent directories.
-  if test no != "$hardcode_direct_CXX" &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" &&
-     test no != "$hardcode_minus_L_CXX"; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_CXX=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_CXX=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_CXX=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-$as_echo "$hardcode_action_CXX" >&6; }
-
-if test relink = "$hardcode_action_CXX" ||
-   test yes = "$inherit_rpath_CXX"; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test yes = "$shlibpath_overrides_runpath" ||
-     test no = "$enable_shared"; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test yes != "$_lt_caught_CXX_error"
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-# Extract the first word of "ant", so it can be a program name with args.
-set dummy ant; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ANT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $ANT in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ANT="$ANT" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ANT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-ANT=$ac_cv_path_ANT
-if test -n "$ANT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ANT" >&5
-$as_echo "$ANT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-# Extract the first word of "cpp", so it can be a program name with args.
-set dummy cpp; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CPPBIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $CPPBIN in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_CPPBIN="$CPPBIN" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_CPPBIN="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-CPPBIN=$ac_cv_path_CPPBIN
-if test -n "$CPPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPPBIN" >&5
-$as_echo "$CPPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-if test "x$CPPBIN" != "x"; then
-  SQLPP="${CPPBIN} -w -traditional-cpp -P"
-else
-  # Extract the first word of "gpp_", so it can be a program name with args.
-set dummy gpp_; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $GPP in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GPP="$GPP" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GPP="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
+  ;;
 esac
 fi
 GPP=$ac_cv_path_GPP
@@ -15890,9 +12207,9 @@ fi
   if test "x$GPP" != "x"; then
     SQLPP="${GPP} -C -s \'"   else
     if test "x${CPP}" != "x"; then
-      SQLPP="${CPP} -w -traditional-cpp"
+      SQLPP="${CPP} -traditional-cpp"
     else
-      as_fn_error $? "Required \"cpp\" command not found" "$LINENO" 5
+		  as_fn_error $? "Required \"cpp\" command not found" "$LINENO" 5
     fi
   fi
 fi
@@ -16039,6 +12356,53 @@ fi
 
 
 
+EXCLUDELIBS_LDFLAGS=""
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports --exclude-libs" >&5
+$as_echo_n "checking if $compiler supports --exclude-libs... " >&6; }
+if ${_cv_exclude_libs+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  _cv_exclude_libs=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-Wl,--exclude-libs,ALL"  ## exclude from sc_useless_quotes_in_assignment
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       _cv_exclude_libs=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_exclude_libs" >&5
+$as_echo "$_cv_exclude_libs" >&6; }
+
+if test yes = "$_cv_exclude_libs"; then
+    EXCLUDELIBS_LDFLAGS="-Wl,--exclude-libs,ALL"
+else
+    :
+fi
+
+
+
 EXESUFFIX="$ac_cv_exeext"
 
 
@@ -16066,6 +12430,14 @@ _ACEOF
 
 
 
+LIBLWGEOM_CURRENT=`expr $POSTGIS_MAJOR_VERSION + $POSTGIS_MINOR_VERSION`
+LIBLWGEOM_AGE=$POSTGIS_MINOR_VERSION
+LIBLWGEOM_REV=`echo $POSTGIS_MICRO_VERSION | perl -p -e 's/(\d+)\w*\d*/$1/g'`
+
+
+
+
+
 
 for ac_prog in flex lex
 do
@@ -16302,21 +12674,15 @@ _ACEOF
 
 ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
 if test "x$ac_cv_func_vasprintf" = xyes; then :
-  HAVE_VASPRINTF=1
-else
-  HAVE_VASPRINTF=0
-fi
+  $as_echo "#define HAVE_VASPRINTF 1" >>confdefs.h
 
-$as_echo "#define HAVE_VASPRINTF 1" >>confdefs.h
+fi
 
 ac_fn_c_check_func "$LINENO" "asprintf" "ac_cv_func_asprintf"
 if test "x$ac_cv_func_asprintf" = xyes; then :
-  HAVE_ASPRINTF=1
-else
-  HAVE_ASPRINTF=0
-fi
+  $as_echo "#define HAVE_ASPRINTF 1" >>confdefs.h
 
-$as_echo "#define HAVE_ASPRINTF 1" >>confdefs.h
+fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
@@ -16466,16 +12832,16 @@ fi
 
 CAN_BUILD_COMMENTS=yes
 
-# Extract the first word of "convert", so it can be a program name with args.
-set dummy convert; ac_word=$2
+# Extract the first word of "xsltproc", so it can be a program name with args.
+set dummy xsltproc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_IMAGEMAGICK+:} false; then :
+if ${ac_cv_path_XSLTPROC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $IMAGEMAGICK in
+  case $XSLTPROC in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_IMAGEMAGICK="$IMAGEMAGICK" # Let the user override the test with a path.
+  ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -16485,7 +12851,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_IMAGEMAGICK="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -16496,32 +12862,34 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-IMAGEMAGICK=$ac_cv_path_IMAGEMAGICK
-if test -n "$IMAGEMAGICK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IMAGEMAGICK" >&5
-$as_echo "$IMAGEMAGICK" >&6; }
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-if test "x$IMAGEMAGICK" = "x"; then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ImageMagick does not seem to be installed. Documentation cannot be built" >&5
-$as_echo "$as_me: WARNING: ImageMagick does not seem to be installed. Documentation cannot be built" >&2;}
+if test "x$XSLTPROC" = "x"; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xsltproc is not installed so documentation cannot be built" >&5
+$as_echo "$as_me: WARNING: xsltproc is not installed so documentation cannot be built" >&2;}
   CAN_BUILD_COMMENTS=no
 fi
 
-# Extract the first word of "xsltproc", so it can be a program name with args.
-set dummy xsltproc; ac_word=$2
+CAN_BUILD_PDF=${CAN_BUILD_COMMENTS}
+
+# Extract the first word of "convert", so it can be a program name with args.
+set dummy convert; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XSLTPROC+:} false; then :
+if ${ac_cv_path_IMAGEMAGICK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $XSLTPROC in
+  case $IMAGEMAGICK in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+  ac_cv_path_IMAGEMAGICK="$IMAGEMAGICK" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -16531,7 +12899,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_IMAGEMAGICK="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -16542,32 +12910,32 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-XSLTPROC=$ac_cv_path_XSLTPROC
-if test -n "$XSLTPROC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
-$as_echo "$XSLTPROC" >&6; }
+IMAGEMAGICK=$ac_cv_path_IMAGEMAGICK
+if test -n "$IMAGEMAGICK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IMAGEMAGICK" >&5
+$as_echo "$IMAGEMAGICK" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-if test "x$XSLTPROC" = "x"; then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xsltproc is not installed so documentation cannot be built" >&5
-$as_echo "$as_me: WARNING: xsltproc is not installed so documentation cannot be built" >&2;}
-  CAN_BUILD_COMMENTS=no
+if test "x$IMAGEMAGICK" = "x"; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ImageMagick does not seem to be installed. Documentation cannot be built" >&5
+$as_echo "$as_me: WARNING: ImageMagick does not seem to be installed. Documentation cannot be built" >&2;}
+  CAN_BUILD_PDF=no
 fi
 
-# Extract the first word of "xmllint", so it can be a program name with args.
-set dummy xmllint; ac_word=$2
+# Extract the first word of "dblatex", so it can be a program name with args.
+set dummy dblatex; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XMLLINT+:} false; then :
+if ${ac_cv_path_DBLATEX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $XMLLINT in
+  case $DBLATEX in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
+  ac_cv_path_DBLATEX="$DBLATEX" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -16577,7 +12945,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_DBLATEX="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -16588,34 +12956,35 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-XMLLINT=$ac_cv_path_XMLLINT
-if test -n "$XMLLINT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
-$as_echo "$XMLLINT" >&6; }
+DBLATEX=$ac_cv_path_DBLATEX
+if test -n "$DBLATEX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBLATEX" >&5
+$as_echo "$DBLATEX" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-if test "x$XMLLINT" = "x"; then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xmllint is not installed so documentation cannot be checked" >&5
-$as_echo "$as_me: WARNING: xmllint is not installed so documentation cannot be checked" >&2;}
-  CAN_BUILD_COMMENTS=no
+if test "x$DBLATEX" = "x"; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dblatex is not installed so PDF documentation cannot be built" >&5
+$as_echo "$as_me: WARNING: dblatex is not installed so PDF documentation cannot be built" >&2;}
+  CAN_BUILD_PDF=no
 fi
 
-CAN_BUILD_PDF=${CAN_BUILD_COMMENTS}
 
-# Extract the first word of "dblatex", so it can be a program name with args.
-set dummy dblatex; ac_word=$2
+
+
+# Extract the first word of "xmllint", so it can be a program name with args.
+set dummy xmllint; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_DBLATEX+:} false; then :
+if ${ac_cv_path_XMLLINT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $DBLATEX in
+  case $XMLLINT in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_DBLATEX="$DBLATEX" # Let the user override the test with a path.
+  ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -16625,7 +12994,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_DBLATEX="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -16636,27 +13005,24 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-DBLATEX=$ac_cv_path_DBLATEX
-if test -n "$DBLATEX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBLATEX" >&5
-$as_echo "$DBLATEX" >&6; }
+XMLLINT=$ac_cv_path_XMLLINT
+if test -n "$XMLLINT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
+$as_echo "$XMLLINT" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-if test "x$DBLATEX" = "x"; then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dblatex is not installed so PDF documentation cannot be built" >&5
-$as_echo "$as_me: WARNING: dblatex is not installed so PDF documentation cannot be built" >&2;}
-  CAN_BUILD_PDF=no
+if test "x$XMLLINT" = "x"; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xmllint is not installed so documentation cannot be checked" >&5
+$as_echo "$as_me: WARNING: xmllint is not installed so documentation cannot be checked" >&2;}
 fi
 
 
 
 
-
-
 # Check whether --with-xsldir was given.
 if test "${with_xsldir+set}" = set; then :
   withval=$with_xsldir; XSLBASE="$withval"
@@ -16982,6 +13348,8 @@ fi
 
 
 
+LIBLWGEOM_ONLY="no"
+
 
 
 
@@ -16993,7 +13361,9 @@ fi
 
 
 if test "x$PG_CONFIG" = "xno"; then
-		as_fn_error $? "Cannot disable pg_config." "$LINENO" 5
+	LIBLWGEOM_ONLY="yes"
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: PostgreSQL support disabled" >&5
+$as_echo "PostgreSQL support disabled" >&6; }
 
 elif test "x$PG_CONFIG" = "x"; then
 		# Extract the first word of "pg_config", so it can be a program name with args.
@@ -17038,7 +13408,7 @@ fi
 
 
 		if test "x$PG_CONFIG" = "x"; then
-		as_fn_error $? "could not find pg_config within the current path. You may need to try re-running configure with a --with-pgconfig parameter." "$LINENO" 5
+		as_fn_error $? "could not find pg_config within the current path. You may need to re-run configure with a --with-pgconfig parameter." "$LINENO" 5
 	fi
 else
 		if test "x$PG_CONFIG" = "xyes"; then
@@ -17053,79 +13423,72 @@ $as_echo "Using user-specified pg_config file: $PG_CONFIG" >&6; }
 	fi
 fi
 
+if test "x$LIBLWGEOM_ONLY" = "xno"; then
 
 
-PGXS=`$PG_CONFIG --pgxs`
-if test ! -f $PGXS; then
-	as_fn_error $? "the PGXS Makefile $PGXS cannot be found. Please install the PostgreSQL server development packages and re-run configure." "$LINENO" 5
-fi
-
+  PGXS=`$PG_CONFIG --pgxs`
+  if test ! -f $PGXS; then
+    as_fn_error $? "the PGXS Makefile $PGXS cannot be found. Please install the PostgreSQL server development packages and re-run configure." "$LINENO" 5
+  fi
 
 
 
-PGSQL_MAJOR_VERSION=`$PG_CONFIG --version | sed 's/[^0-9]*\([0-9]\)\.\([0-9]\).*/\1/'`
-PGSQL_MINOR_VERSION=`$PG_CONFIG --version | sed 's/[^0-9]*\([0-9]\)\.\([0-9]\).*/\2/'`
-PGSQL_FULL_VERSION=`$PG_CONFIG --version`
-POSTGIS_PGSQL_VERSION="$PGSQL_MAJOR_VERSION$PGSQL_MINOR_VERSION"
+        PGSQL_MAJOR_VERSION=`$PG_CONFIG --version | sed 's/[^0-9]*\([0-9]\)\.\([0-9]\).*/\1/'`
+  PGSQL_MINOR_VERSION=`$PG_CONFIG --version | sed 's/[^0-9]*\([0-9]\)\.\([0-9]\).*/\2/'`
+  PGSQL_FULL_VERSION=`$PG_CONFIG --version`
+  POSTGIS_PGSQL_VERSION="$PGSQL_MAJOR_VERSION$PGSQL_MINOR_VERSION"
 
-PGSQL_PKGLIBDIR=`$PG_CONFIG --pkglibdir`
-PGSQL_LIBDIR=`$PG_CONFIG --libdir`
-PGSQL_SHAREDIR=`$PG_CONFIG --sharedir`
+  PGSQL_PKGLIBDIR=`$PG_CONFIG --pkglibdir`
+  PGSQL_LIBDIR=`$PG_CONFIG --libdir`
+  PGSQL_SHAREDIR=`$PG_CONFIG --sharedir`
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: checking PostgreSQL version... $PGSQL_FULL_VERSION" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking PostgreSQL version... $PGSQL_FULL_VERSION" >&5
 $as_echo "checking PostgreSQL version... $PGSQL_FULL_VERSION" >&6; }
-if test ! "$PGSQL_MAJOR_VERSION" -ge 9; then
-	as_fn_error $? "PostGIS requires PostgreSQL >= 9.0" "$LINENO" 5
-fi
-
-PGXSOVERRIDE=0
-if test ! "$PGSQL_MAJOR_VERSION" -ge 9; then
-	PGXSOVERRIDE=1
-fi
-
-
+    if test $POSTGIS_PGSQL_VERSION -lt 91; then
+    as_fn_error $? "PostGIS requires PostgreSQL >= 9.1" "$LINENO" 5
+  fi
 
 
-PGSQL_FE_LDFLAGS=-L`$PG_CONFIG --libdir`" -lpq"
-PGSQL_FE_CPPFLAGS=-I`$PG_CONFIG --includedir`
+    PGSQL_FE_LDFLAGS=-L`$PG_CONFIG --libdir`" -lpq"
+  PGSQL_FE_CPPFLAGS=-I`$PG_CONFIG --includedir`
 
 
 
 
-PGSRV_INC=`$PG_CONFIG --includedir-server`
-PGSQL_BE_CPPFLAGS="-I${PGSRV_INC}"
-case $host in
-	*mingw32*)
-		PGSQL_BE_CPPFLAGS="${PGSQL_BE_CPPFLAGS} -I${PGSRV_INC}/port/win32"
-		;;
-esac
+    PGSRV_INC=`$PG_CONFIG --includedir-server`
+  PGSQL_BE_CPPFLAGS="-I${PGSRV_INC}"
+    case $host in
+    *mingw32*)
+      PGSQL_BE_CPPFLAGS="${PGSQL_BE_CPPFLAGS} -I${PGSRV_INC}/port/win32"
+      ;;
+  esac
 
 
 
-PGSQL_DOCDIR=`$PG_CONFIG --docdir`
-PGSQL_MANDIR=`$PG_CONFIG --mandir`
+    PGSQL_DOCDIR=`$PG_CONFIG --docdir`
+  PGSQL_MANDIR=`$PG_CONFIG --mandir`
 
 
 
 
-PGSQL_LOCALEDIR=`$PG_CONFIG --localedir`
+    PGSQL_LOCALEDIR=`$PG_CONFIG --localedir`
 
 cat >>confdefs.h <<_ACEOF
 #define PGSQL_LOCALEDIR "$PGSQL_LOCALEDIR"
 _ACEOF
 
 
-PGSQL_BINDIR=`$PG_CONFIG --bindir`
+    PGSQL_BINDIR=`$PG_CONFIG --bindir`
 
 
 
-PGSQL_SHAREDIR=`$PG_CONFIG --sharedir`
+    PGSQL_SHAREDIR=`$PG_CONFIG --sharedir`
 
 
 
-CPPFLAGS_SAVE="$CPPFLAGS"
-CPPFLAGS="$PGSQL_FE_CPPFLAGS"
-ac_fn_c_check_header_mongrel "$LINENO" "libpq-fe.h" "ac_cv_header_libpq_fe_h" "$ac_includes_default"
+    CPPFLAGS_SAVE="$CPPFLAGS"
+  CPPFLAGS="$PGSQL_FE_CPPFLAGS"
+  ac_fn_c_check_header_mongrel "$LINENO" "libpq-fe.h" "ac_cv_header_libpq_fe_h" "$ac_includes_default"
 if test "x$ac_cv_header_libpq_fe_h" = xyes; then :
 
 else
@@ -17133,11 +13496,11 @@ else
 fi
 
 
-CPPFLAGS="$CPPFLAGS_SAVE"
+  CPPFLAGS="$CPPFLAGS_SAVE"
 
-LIBS_SAVE="$LIBS"
-LIBS="$PGSQL_FE_LDFLAGS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PQserverVersion in -lpq" >&5
+    LIBS_SAVE="$LIBS"
+  LIBS="$PGSQL_FE_LDFLAGS"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PQserverVersion in -lpq" >&5
 $as_echo_n "checking for PQserverVersion in -lpq... " >&6; }
 if ${ac_cv_lib_pq_PQserverVersion+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -17184,7 +13547,7 @@ else
   as_fn_error $? "could not find libpq" "$LINENO" 5
 fi
 
-LIBS="$LIBS_SAVE"
+  LIBS="$LIBS_SAVE"
 
 
 cat >>confdefs.h <<_ACEOF
@@ -17193,6 +13556,7 @@ _ACEOF
 
 
 
+fi
 
 
 if test "$prefix" != "NONE"; then
@@ -17531,6 +13895,7 @@ _ACEOF
 
 
 
+
 # Check whether --with-sfcgal was given.
 if test "${with_sfcgal+set}" = set; then :
   withval=$with_sfcgal; SFCGAL_CONFIG="$withval"
@@ -17586,6 +13951,16 @@ if test "x$with_sfcgal" != "xno"; then
 		SFCGAL_LDFLAGS=`$SFCGAL_CONFIG --libs`
 		SFCGAL_CPPFLAGS=`$SFCGAL_CONFIG --cflags`" -DHAVE_SFCGAL"
 
+		SFCGAL_MAJOR_VERSION=`echo $SFCGAL_VERSION | cut -d. -f1 | sed 's/[^0-9]//g'`
+		SFCGAL_MINOR_VERSION=`echo $SFCGAL_VERSION | cut -d. -f2 | sed 's/[^0-9]//g'`
+		POSTGIS_SFCGAL_VERSION="$SFCGAL_MAJOR_VERSION$SFCGAL_MINOR_VERSION"
+
+cat >>confdefs.h <<_ACEOF
+#define POSTGIS_SFCGAL_VERSION $POSTGIS_SFCGAL_VERSION
+_ACEOF
+
+
+
 		SFCGAL_STATIC=`$SFCGAL_CONFIG --static`
 		if test "x$SFCGAL_STATIC" = "xON"; then
 			{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The SFCGAL version found is not installed as a dynamic library." >&5
@@ -17594,6 +13969,9 @@ $as_echo "$as_me: WARNING: The SFCGAL version found is not installed as a dynami
         		SFCGAL="sfcgal"
 			HAVE_SFCGAL="yes"
 		fi
+		if test ! "$POSTGIS_SFCGAL_VERSION" -ge 11; then
+			as_fn_error $? "PostGIS requires SFCGAL >= 1.1.0 (found $SFCGAL_VERSION)" "$LINENO" 5
+		fi
 
 	else
 		if test "x$with_sfcgal" != "x"; then
@@ -17610,6 +13988,8 @@ fi
 
 
 
+
+
 GETTEXT_CFLAGS=""
 GETTEXT_LDFLAGS=""
 
@@ -20028,6 +16408,8 @@ fi
 fi
 
 
+
+
 # Check whether --with-gui was given.
 if test "${with_gui+set}" = set; then :
   withval=$with_gui; GUI="yes"
@@ -20431,11 +16813,84 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-CPPFLAGS="$PGSQL_CPPFLAGS $GEOS_CPPFLAGS $PROJ_CPPFLAGS $XML2_CPPFLAGS $SFCGAL_CPPFLAGS $CPPFLAGS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CPPFLAGS: $CPPFLAGS" >&5
-$as_echo "CPPFLAGS: $CPPFLAGS" >&6; }
 
-SHLIB_LINK="$PGSQL_LDFLAGS $GEOS_LDFLAGS $PROJ_LDFLAGS -lgeos_c -lproj $JSON_LDFLAGS $XML2_LDFLAGS $SFCGAL_LDFLAGS"
+# Check whether --with-address-standardizer was given.
+if test "${with_address_standardizer+set}" = set; then :
+  withval=$with_address_standardizer;
+fi
+
+
+if test "x$with_address_standardizer" != "xno"; then
+                LDFLAGS="$LDFLAGS_SAVE"
+    CFLAGS="$CFLAGS_SAVE"
+
+    CHECK_PCRE=yes
+    HAVE_PCRE=no
+    ADDRESS_STANDARDIZER="address_standardizer"
+
+# Check whether --with-pcredir was given.
+if test "${with_pcredir+set}" = set; then :
+  withval=$with_pcredir; PCREDIR="$withval"
+else
+  PCREDIR=""
+fi
+
+
+    if test ! "x$PCREDIR" = "x"; then
+                if test "x$PCREDIR" = "xyes"; then
+            as_fn_error $? "you must specify a parameter to --with-pcredir, e.g. --with-pcredir=/path/to" "$LINENO" 5
+        else
+            if test -d "$PCREDIR"; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using user-specified PCRE directory: $PCREDIR" >&5
+$as_echo "Using user-specified PCRE directory: $PCREDIR" >&6; }
+
+                                PCRE_CPPFLAGS="-I$PCREDIR/include"
+                PCRE_LDFLAGS="-L$PCREDIR/lib"
+            else
+                as_fn_error $? "the --with-pcredir directory \"$PCREDIR\" cannot be found" "$LINENO" 5
+            fi
+        fi
+    fi
+
+
+        CPPFLAGS_SAVE="$CPPFLAGS"
+    CPPFLAGS="$PCRE_CPPFLAGS"
+
+    ac_fn_c_check_header_mongrel "$LINENO" "pcre.h" "ac_cv_header_pcre_h" "$ac_includes_default"
+if test "x$ac_cv_header_pcre_h" = xyes; then :
+  HAVE_PCRE=yes
+else
+  ADDRESS_STANDARDIZER=""
+fi
+
+
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define PCRE_VERSION $PCRE_VERSION
+_ACEOF
+
+
+    CPPFLAGS="$CPPFLAGS_SAVE"
+
+
+
+
+
+
+else
+    ADDRESS_STANDARDIZER=""
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: ADDRESS_STANDARDIZER support: disabled" >&5
+$as_echo "ADDRESS_STANDARDIZER support: disabled" >&6; }
+fi
+
+CPPFLAGS="$PGSQL_CPPFLAGS $GEOS_CPPFLAGS $PROJ_CPPFLAGS $XML2_CPPFLAGS $SFCGAL_CPPFLAGS $JSON_CPPFLAGS $PCRE_CPPFLAGS $CPPFLAGS"
+
+SHLIB_LINK="$PGSQL_LDFLAGS $GEOS_LDFLAGS $PROJ_LDFLAGS -lgeos_c -lproj $JSON_LDFLAGS $XML2_LDFLAGS $SFCGAL_LDFLAGS $PCRE_LDFLAGS $EXCLUDELIBS_LDFLAGS"
 
 
 
@@ -20460,6 +16915,22 @@ fi
 
 
 
+INTERRUPTTESTS="no"
+
+# Check whether --with-interrupt-tests was given.
+if test "${with_interrupt_tests+set}" = set; then :
+  withval=$with_interrupt_tests;
+fi
+
+
+if test "x$with_interrupt_tests" != "xno"; then
+    INTERRUPTTESTS="yes"
+fi
+
+
+
+
+
 
 SRID_MAX=999999
 SRID_USR_MAX=998999
@@ -20899,25 +17370,26 @@ fi
 
 
 
+
+
+
 EXTENSIONS=""
-if test $POSTGIS_PGSQL_VERSION -ge 91; then
-	if test \
-          "x$XSLTPROC" != "x" -o \
-          -e doc/postgis_comments.sql -a \
-          -e doc/raster_comments.sql;
-  then
-		if test "x$RASTER" = "xraster"; then
-				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: enabling PostgreSQL extension support..." >&5
+if test \
+        "x$XSLTPROC" != "x" -o \
+        -e doc/postgis_comments.sql -a \
+        -e doc/raster_comments.sql;
+then
+  if test "x$RASTER" = "xraster"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabling PostgreSQL extension support..." >&5
 $as_echo "enabling PostgreSQL extension support..." >&6; }
-				EXTENSIONS=extensions
+      EXTENSIONS=extensions
 
-		fi
-	fi
+  fi
 fi
 
 
 
-ac_config_files="$ac_config_files GNUmakefile extensions/Makefile extensions/postgis/Makefile extensions/postgis/postgis.control extensions/postgis_topology/Makefile extensions/postgis_topology/postgis_topology.control extensions/postgis_tiger_geocoder/Makefile extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control liblwgeom/Makefile liblwgeom/cunit/Makefile liblwgeom/liblwgeom.h libpgcommon/Makefile libpgcommon/cunit/Makefile postgis/Makefile postgis/sqldefines.h loader/Makefi [...]
+ac_config_files="$ac_config_files GNUmakefile extensions/Makefile extensions/postgis/Makefile extensions/postgis/postgis.control extensions/postgis_sfcgal/Makefile extensions/postgis_sfcgal/postgis_sfcgal.control extensions/postgis_topology/Makefile extensions/postgis_topology/postgis_topology.control extensions/postgis_tiger_geocoder/Makefile extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control extensions/address_standardizer/Makefile extensions/address_standardizer/address_ [...]
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -21754,60 +18226,6 @@ enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_sub
 enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
 old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
 striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
-predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
-postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
-reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
-reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
 
 LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
@@ -21889,38 +18307,7 @@ soname_spec \
 install_override_mode \
 finish_eval \
 old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-reload_flag_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_separator_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
+striplib; do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
       eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
@@ -21951,18 +18338,7 @@ postuninstall_cmds \
 finish_cmds \
 sys_lib_search_path_spec \
 configure_time_dlsearch_path \
-configure_time_lt_sys_library_path \
-reload_cmds_CXX \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX \
-postlink_cmds_CXX; do
+configure_time_lt_sys_library_path; do
     case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
       eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
@@ -21989,8 +18365,6 @@ fi
 
 
 
-
-
 # Capture the value of obsolete ALL_LINGUAS because we need it to compute
     # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
     # from automake < 1.5.
@@ -22015,10 +18389,15 @@ do
     "extensions/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/Makefile" ;;
     "extensions/postgis/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/postgis/Makefile" ;;
     "extensions/postgis/postgis.control") CONFIG_FILES="$CONFIG_FILES extensions/postgis/postgis.control" ;;
+    "extensions/postgis_sfcgal/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/postgis_sfcgal/Makefile" ;;
+    "extensions/postgis_sfcgal/postgis_sfcgal.control") CONFIG_FILES="$CONFIG_FILES extensions/postgis_sfcgal/postgis_sfcgal.control" ;;
     "extensions/postgis_topology/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/postgis_topology/Makefile" ;;
     "extensions/postgis_topology/postgis_topology.control") CONFIG_FILES="$CONFIG_FILES extensions/postgis_topology/postgis_topology.control" ;;
     "extensions/postgis_tiger_geocoder/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/postgis_tiger_geocoder/Makefile" ;;
     "extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control") CONFIG_FILES="$CONFIG_FILES extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control" ;;
+    "extensions/address_standardizer/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/address_standardizer/Makefile" ;;
+    "extensions/address_standardizer/address_standardizer.control") CONFIG_FILES="$CONFIG_FILES extensions/address_standardizer/address_standardizer.control" ;;
+    "extensions/address_standardizer/address_standardizer_data_us.control") CONFIG_FILES="$CONFIG_FILES extensions/address_standardizer/address_standardizer_data_us.control" ;;
     "liblwgeom/Makefile") CONFIG_FILES="$CONFIG_FILES liblwgeom/Makefile" ;;
     "liblwgeom/cunit/Makefile") CONFIG_FILES="$CONFIG_FILES liblwgeom/cunit/Makefile" ;;
     "liblwgeom/liblwgeom.h") CONFIG_FILES="$CONFIG_FILES liblwgeom/liblwgeom.h" ;;
@@ -22035,7 +18414,6 @@ do
     "doc/Makefile.comments") CONFIG_FILES="$CONFIG_FILES doc/Makefile.comments" ;;
     "doc/html/image_src/Makefile") CONFIG_FILES="$CONFIG_FILES doc/html/image_src/Makefile" ;;
     "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
-    "java/jdbc/Makefile") CONFIG_FILES="$CONFIG_FILES java/jdbc/Makefile" ;;
     "$RT_MAKEFILE_LIST") CONFIG_FILES="$CONFIG_FILES $RT_MAKEFILE_LIST" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
@@ -22643,7 +19021,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
 
 # The names of the tagged configurations supported by this script.
-available_tags='CXX '
+available_tags=''
 
 # Configured defaults for sys_lib_dlsearch_path munging.
 : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
@@ -23048,20 +19426,6 @@ file_list_spec=$lt_file_list_spec
 # How to hardcode a shared library path into an executable.
 hardcode_action=$hardcode_action
 
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
 # ### END LIBTOOL CONFIG
 
 _LT_EOF
@@ -23154,159 +19518,6 @@ ltmain=$ac_aux_dir/ltmain.sh
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 
-
-    cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag_CXX
-reload_cmds=$lt_reload_cmds_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \$shlibpath_var if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
  ;;
     "po-directories":C)
     for ac_file in $CONFIG_FILES; do
@@ -23471,8 +19682,6 @@ $as_echo "" >&6; }
 $as_echo " -------------- Compiler Info ------------- " >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result:   C compiler:           ${CC} ${CFLAGS}" >&5
 $as_echo "  C compiler:           ${CC} ${CFLAGS}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   C++ compiler:         ${CXX} ${CXXFLAGS}" >&5
-$as_echo "  C++ compiler:         ${CXX} ${CXXFLAGS}" >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result:   SQL preprocessor:     ${SQLPP}" >&5
 $as_echo "  SQL preprocessor:     ${SQLPP}" >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
@@ -23495,10 +19704,15 @@ $as_echo "  SFCGAL config:        ${SFCGAL_CONFIG}" >&6; }
     { $as_echo "$as_me:${as_lineno-$LINENO}: result:   SFCGAL version:       ${SFCGAL_VERSION}" >&5
 $as_echo "  SFCGAL version:       ${SFCGAL_VERSION}" >&6; }
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   PostgreSQL config:    ${PG_CONFIG}" >&5
+if test "x$LIBLWGEOM_ONLY" = "xno"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result:   PostgreSQL config:    ${PG_CONFIG}" >&5
 $as_echo "  PostgreSQL config:    ${PG_CONFIG}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   PostgreSQL version:   ${PGSQL_FULL_VERSION}" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result:   PostgreSQL version:   ${PGSQL_FULL_VERSION}" >&5
 $as_echo "  PostgreSQL version:   ${PGSQL_FULL_VERSION}" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result:   PostgreSQL support:   DISABLED" >&5
+$as_echo "  PostgreSQL support:   DISABLED" >&6; }
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result:   PROJ4 version:        ${POSTGIS_PROJ_VERSION}" >&5
 $as_echo "  PROJ4 version:        ${POSTGIS_PROJ_VERSION}" >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result:   Libxml2 config:       ${XML2CONFIG}" >&5
@@ -23507,6 +19721,8 @@ $as_echo "  Libxml2 config:       ${XML2CONFIG}" >&6; }
 $as_echo "  Libxml2 version:      ${POSTGIS_LIBXML2_VERSION}" >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result:   JSON-C support:       ${HAVE_JSON}" >&5
 $as_echo "  JSON-C support:       ${HAVE_JSON}" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   PCRE support:         ${HAVE_PCRE}" >&5
+$as_echo "  PCRE support:         ${HAVE_PCRE}" >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result:   PostGIS debug level:  ${POSTGIS_DEBUG_LEVEL}" >&5
 $as_echo "  PostGIS debug level:  ${POSTGIS_DEBUG_LEVEL}" >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result:   Perl:                 ${PERL}" >&5
@@ -23537,6 +19753,14 @@ else
     { $as_echo "$as_me:${as_lineno-$LINENO}: result:   SFCGAL support:       disabled" >&5
 $as_echo "  SFCGAL support:       disabled" >&6; }
 fi
+
+if test "x$ADDRESS_STANDARDIZER" = "xaddress_standardizer"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result:   Address Standardizer support:       enabled" >&5
+$as_echo "  Address Standardizer support:       enabled" >&6; }
+else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result:   Address Standardizer support:       disabled" >&5
+$as_echo "  Address Standardizer support:       disabled" >&6; }
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result:  -------- Documentation Generation -------- " >&5
@@ -23554,22 +19778,22 @@ $as_echo "  mathml2.dtd:          ${MATHML2_DTD}" >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
 
-if test "$GEOS_NUMERIC_VERSION" -lt 30302; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:  --------- GEOS VERSION NOTICE ------------ " >&5
-$as_echo " --------- GEOS VERSION NOTICE ------------ " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   You are building against GEOS ${GEOS_FULL_VERSION} " >&5
-$as_echo "  You are building against GEOS ${GEOS_FULL_VERSION} " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   To take advantage of all the features of " >&5
-$as_echo "  To take advantage of all the features of " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   PostGIS we recommend you build using " >&5
-$as_echo "  PostGIS we recommend you build using " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   GEOS 3.3.2 or higher. You can download " >&5
-$as_echo "  GEOS 3.3.2 or higher. You can download " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   the latest versions from " >&5
-$as_echo "  the latest versions from " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   http://trac.osgeo.org/geos " >&5
-$as_echo "  http://trac.osgeo.org/geos " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
+if test "$GEOS_NUMERIC_VERSION" -lt 30500; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:  --------- GEOS VERSION WARNING ------------ " >&5
+$as_echo "$as_me: WARNING:  --------- GEOS VERSION WARNING ------------ " >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:   You are building against GEOS ${GEOS_FULL_VERSION} " >&5
+$as_echo "$as_me: WARNING:   You are building against GEOS ${GEOS_FULL_VERSION} " >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:   To take advantage of all the features of " >&5
+$as_echo "$as_me: WARNING:   To take advantage of all the features of " >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:   PostGIS we recommend you build using " >&5
+$as_echo "$as_me: WARNING:   PostGIS we recommend you build using " >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:   GEOS 3.5.0 or higher. You can download " >&5
+$as_echo "$as_me: WARNING:   GEOS 3.5.0 or higher. You can download " >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:   the latest versions from " >&5
+$as_echo "$as_me: WARNING:   the latest versions from " >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:   http://trac.osgeo.org/geos " >&5
+$as_echo "$as_me: WARNING:   http://trac.osgeo.org/geos " >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5
+$as_echo "$as_me: WARNING: " >&2;}
 fi
 
diff --git a/configure.ac b/configure.ac
index b15d237..15a5cd1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,4 @@
 dnl **********************************************************************
-dnl * $Id: configure.ac 2797 2008-05-31 09:56:44Z mcayland $
 dnl *
 dnl * PostGIS - Spatial Types for PostgreSQL
 dnl * http://postgis.net
@@ -24,7 +23,6 @@ dnl Compilers
 dnl
 AC_PROG_CC
 AC_PROG_CPP
-AC_PROG_CXX
 AC_PROG_GREP
 AC_PATH_PROG([ANT], [ant], [])
 AC_SUBST([ANT])
@@ -34,16 +32,16 @@ dnl SQL Preprocessor
 dnl
 AC_PATH_PROG([CPPBIN], [cpp], [])
 if test "x$CPPBIN" != "x"; then
-  SQLPP="${CPPBIN} -w -traditional-cpp -P"
+  SQLPP="${CPPBIN} -traditional-cpp -w -P"
 else
   AC_PATH_PROG([GPP], [gpp_], [])
   if test "x$GPP" != "x"; then
     SQLPP="${GPP} -C -s \'" dnl Use better string support
   else
     if test "x${CPP}" != "x"; then
-      SQLPP="${CPP} -w -traditional-cpp"
+      SQLPP="${CPP} -traditional-cpp"
     else
-      AC_MSG_ERROR([Required "cpp" command not found])
+		  AC_MSG_ERROR([Required "cpp" command not found])
     fi
   fi
 fi
@@ -71,6 +69,14 @@ AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -ffloat-store], [dummy_cv_fflo
 AC_SUBST([NUMERICFLAGS])
 
 dnl
+dnl Exporting used library symbols in the module is a source of issues,
+dnl see https://trac.osgeo.org/postgis/ticket/3281
+dnl
+EXCLUDELIBS_LDFLAGS=""
+AC_LIBTOOL_COMPILER_OPTION([if $compiler supports --exclude-libs], [_cv_exclude_libs], [[-Wl,--exclude-libs,ALL]], [], [EXCLUDELIBS_LDFLAGS="-Wl,--exclude-libs,ALL"], [])
+AC_SUBST([EXCLUDELIBS_LDFLAGS])
+
+dnl
 dnl Define executable suffix for use with the loader Makefiles
 dnl
 EXESUFFIX="$ac_cv_exeext"
@@ -92,6 +98,17 @@ AC_SUBST([POSTGIS_MINOR_VERSION])
 AC_SUBST([POSTGIS_MICRO_VERSION])
 
 dnl
+dnl Convert PostGIS version info into liblwgeom libtool-happy numbers
+dnl
+LIBLWGEOM_CURRENT=`expr $POSTGIS_MAJOR_VERSION + $POSTGIS_MINOR_VERSION`
+LIBLWGEOM_AGE=$POSTGIS_MINOR_VERSION
+LIBLWGEOM_REV=`echo $POSTGIS_MICRO_VERSION | perl -p -e 's/(\d+)\w*\d*/$1/g'`
+AC_SUBST([LIBLWGEOM_CURRENT])
+AC_SUBST([LIBLWGEOM_AGE])
+AC_SUBST([LIBLWGEOM_REV])
+
+
+dnl
 dnl Search for flex/bison to build the parser
 dnl
 
@@ -112,20 +129,18 @@ AC_DEFINE_UNQUOTED([HAVE_TERMIOS_H], [$HAVE_TERMIOS_H], [termios.h header])
 dnl
 dnl Check for platform-specific functions
 dnl
-AC_CHECK_FUNC(vasprintf, [HAVE_VASPRINTF=1], [HAVE_VASPRINTF=0])
-AC_DEFINE([HAVE_VASPRINTF])
-AC_CHECK_FUNC(asprintf, [HAVE_ASPRINTF=1], [HAVE_ASPRINTF=0])
-AC_DEFINE([HAVE_ASPRINTF])
+AC_CHECK_FUNC(vasprintf, AC_DEFINE([HAVE_VASPRINTF]))
+AC_CHECK_FUNC(asprintf, AC_DEFINE([HAVE_ASPRINTF]))
 AC_FUNC_FSEEKO()
 
-dnl  
-dnl First see if we have isfinite in basic header 
-dnl then check to see if it's a GNU extension 
 dnl 
-AC_CHECK_DECL(isfinite,  
-  [AC_DEFINE([HAVE_ISFINITE])],  
-  [], 
-  [#include <math.h>]) 
+dnl First see if we have isfinite in basic header
+dnl then check to see if it's a GNU extension
+dnl
+AC_CHECK_DECL(isfinite, 
+  [AC_DEFINE([HAVE_ISFINITE])], 
+  [],
+  [#include <math.h>])
 
 dnl Clear the cache
 unset ac_cv_have_decl_isfinite
@@ -167,26 +182,20 @@ dnl
 
 CAN_BUILD_COMMENTS=yes
 
-AC_PATH_PROG([IMAGEMAGICK], [convert], [])
-if test "x$IMAGEMAGICK" = "x"; then
-	AC_MSG_WARN([ImageMagick does not seem to be installed. Documentation cannot be built])
-  CAN_BUILD_COMMENTS=no
-fi
-
 AC_PATH_PROG([XSLTPROC], [xsltproc], [])
 if test "x$XSLTPROC" = "x"; then
 	AC_MSG_WARN([xsltproc is not installed so documentation cannot be built])
   CAN_BUILD_COMMENTS=no
 fi
 
-AC_PATH_PROG([XMLLINT], [xmllint], [])
-if test "x$XMLLINT" = "x"; then
-	AC_MSG_WARN([xmllint is not installed so documentation cannot be checked])
-  CAN_BUILD_COMMENTS=no
-fi
-
 CAN_BUILD_PDF=${CAN_BUILD_COMMENTS}
 
+AC_PATH_PROG([IMAGEMAGICK], [convert], [])
+if test "x$IMAGEMAGICK" = "x"; then
+	AC_MSG_WARN([ImageMagick does not seem to be installed. Documentation cannot be built])
+  CAN_BUILD_PDF=no
+fi
+
 AC_PATH_PROG([DBLATEX], [dblatex], [])
 if test "x$DBLATEX" = "x"; then
 	AC_MSG_WARN([dblatex is not installed so PDF documentation cannot be built])
@@ -196,6 +205,12 @@ fi
 AC_SUBST(CAN_BUILD_COMMENTS)
 AC_SUBST(CAN_BUILD_PDF)
 
+AC_PATH_PROG([XMLLINT], [xmllint], [])
+if test "x$XMLLINT" = "x"; then
+	AC_MSG_WARN([xmllint is not installed so documentation cannot be checked])
+fi
+
+
 dnl
 dnl Allow the user to specify the location of the html/docbook.xsl stylesheet
 dnl
@@ -360,19 +375,21 @@ fi
 AC_SUBST([ICONV_LDFLAGS])
 AC_SUBST([ICONV_CFLAGS])
 
+LIBLWGEOM_ONLY="no"
+AC_SUBST([LIBLWGEOM_ONLY])
 
 dnl ===========================================================================
-dnl Detect the version of PostgreSQL installed on the system
+dnl Detect the version of PostgreSQL installed on the system, if needed
 dnl ===========================================================================
 
-AC_ARG_VAR(PG_CONFIG, [PostgreSQL configure command to determine Postgres version to bulid against.])
-AC_ARG_WITH([pgconfig], 
-	[AS_HELP_STRING([--with-pgconfig=FILE], [specify an alternative pg_config file])], 
+AC_ARG_VAR(PG_CONFIG, [PostgreSQL configure command to determine Postgres version to build against.])
+AC_ARG_WITH([pgconfig],
+	[AS_HELP_STRING([--with-pgconfig=FILE], [specify an alternative pg_config file or disable postgresql (--without-pgconfig)])],
 	[PG_CONFIG="$withval"], [])
 
 if test "x$PG_CONFIG" = "xno"; then
-	dnl disabling pg_config doesn't make sense
-	AC_MSG_ERROR([Cannot disable pg_config.])
+	LIBLWGEOM_ONLY="yes"
+	AC_MSG_RESULT([PostgreSQL support disabled])
 
 elif test "x$PG_CONFIG" = "x"; then
 	dnl PG_CONFIG was not specified, so search within the current path
@@ -380,7 +397,7 @@ elif test "x$PG_CONFIG" = "x"; then
 
 	dnl If we couldn't find pg_config, display an error
 	if test "x$PG_CONFIG" = "x"; then
-		AC_MSG_ERROR([could not find pg_config within the current path. You may need to try re-running configure with a --with-pgconfig parameter.])
+		AC_MSG_ERROR([could not find pg_config within the current path. You may need to re-run configure with a --with-pgconfig parameter.])
 	fi
 else
 	dnl PG_CONFIG was specified; display a message to the user
@@ -395,108 +412,101 @@ else
 	fi
 fi
 
+if test "x$LIBLWGEOM_ONLY" = "xno"; then
 
-dnl ===========================================================================
-dnl Ensure that $PG_CONFIG --pgxs points to a valid file. This is because some 
-dnl distributions such as Debian also include pg_config as part of libpq-dev 
-dnl packages, but don't install the Makefile it points to unless
-dnl the postgresql-server-dev packages are installed :)
-dnl ===========================================================================
-
-PGXS=`$PG_CONFIG --pgxs`
-if test ! -f $PGXS; then
-	AC_MSG_ERROR([the PGXS Makefile $PGXS cannot be found. Please install the PostgreSQL server development packages and re-run configure.])
-fi
-
-AC_SUBST([PGXS])
+  dnl ===========================================================================
+  dnl Ensure that $PG_CONFIG --pgxs points to a valid file. This is because some 
+  dnl distributions such as Debian also include pg_config as part of libpq-dev 
+  dnl packages, but don't install the Makefile it points to unless
+  dnl the postgresql-server-dev packages are installed :)
+  dnl ===========================================================================
 
+  PGXS=`$PG_CONFIG --pgxs`
+  if test ! -f $PGXS; then
+    AC_MSG_ERROR([the PGXS Makefile $PGXS cannot be found. Please install the PostgreSQL server development packages and re-run configure.])
+  fi
 
-dnl Extract the version information from pg_config
-dnl Note: we extract the major & minor separately, ensure they are numeric, and then combine to give
-dnl the final version. This is to guard against user error... 
-PGSQL_MAJOR_VERSION=`$PG_CONFIG --version | sed 's/[[^0-9]]*\([[0-9]]\)\.\([[0-9]]\).*/\1/'`
-PGSQL_MINOR_VERSION=`$PG_CONFIG --version | sed 's/[[^0-9]]*\([[0-9]]\)\.\([[0-9]]\).*/\2/'`
-PGSQL_FULL_VERSION=`$PG_CONFIG --version`
-POSTGIS_PGSQL_VERSION="$PGSQL_MAJOR_VERSION$PGSQL_MINOR_VERSION"
+  AC_SUBST([PGXS])
 
-PGSQL_PKGLIBDIR=`$PG_CONFIG --pkglibdir`
-PGSQL_LIBDIR=`$PG_CONFIG --libdir`
-PGSQL_SHAREDIR=`$PG_CONFIG --sharedir`
+  dnl Extract the version information from pg_config
+  dnl Note: we extract the major & minor separately, ensure they are numeric, and then combine to give
+  dnl the final version. This is to guard against user error... 
+  PGSQL_MAJOR_VERSION=`$PG_CONFIG --version | sed 's/[[^0-9]]*\([[0-9]]\)\.\([[0-9]]\).*/\1/'`
+  PGSQL_MINOR_VERSION=`$PG_CONFIG --version | sed 's/[[^0-9]]*\([[0-9]]\)\.\([[0-9]]\).*/\2/'`
+  PGSQL_FULL_VERSION=`$PG_CONFIG --version`
+  POSTGIS_PGSQL_VERSION="$PGSQL_MAJOR_VERSION$PGSQL_MINOR_VERSION"
 
-AC_MSG_RESULT([checking PostgreSQL version... $PGSQL_FULL_VERSION])
-dnl Ensure that we are using PostgreSQL >= 9.0
-if test ! "$PGSQL_MAJOR_VERSION" -ge 9; then
-	AC_MSG_ERROR([PostGIS requires PostgreSQL >= 9.0])
-fi	
+  PGSQL_PKGLIBDIR=`$PG_CONFIG --pkglibdir`
+  PGSQL_LIBDIR=`$PG_CONFIG --libdir`
+  PGSQL_SHAREDIR=`$PG_CONFIG --sharedir`
 
-dnl Temporary hack until minimum PostgreSQL version is 9.0:
-dnl If PostgreSQL < 9.0 is detected, trigger the inclusion of the new versioned PGXS targets
-PGXSOVERRIDE=0
-if test ! "$PGSQL_MAJOR_VERSION" -ge 9; then
-	PGXSOVERRIDE=1
-fi
+  AC_MSG_RESULT([checking PostgreSQL version... $PGSQL_FULL_VERSION])
+  dnl Ensure that we are using PostgreSQL >= 9.1
+  if test $POSTGIS_PGSQL_VERSION -lt 91; then
+    AC_MSG_ERROR([PostGIS requires PostgreSQL >= 9.1])
+  fi
 
-AC_SUBST([PGXSOVERRIDE])
+  dnl Note: We don't need the server-side LDFLAGS or CPPFLAGS because we get these from PGXS 
 
-dnl Note: We don't need the server-side LDFLAGS or CPPFLAGS because we get these from PGXS 
+  dnl Extract the linker and include flags for the frontend (for programs that use libpq)
+  PGSQL_FE_LDFLAGS=-L`$PG_CONFIG --libdir`" -lpq"
+  PGSQL_FE_CPPFLAGS=-I`$PG_CONFIG --includedir`
 
-dnl Extract the linker and include flags for the frontend (for programs that use libpq)
-PGSQL_FE_LDFLAGS=-L`$PG_CONFIG --libdir`" -lpq"
-PGSQL_FE_CPPFLAGS=-I`$PG_CONFIG --includedir`
+  AC_SUBST([PGSQL_FE_LDFLAGS])
+  AC_SUBST([PGSQL_FE_CPPFLAGS])
 
-AC_SUBST([PGSQL_FE_LDFLAGS])
-AC_SUBST([PGSQL_FE_CPPFLAGS])
+  dnl Extract the include flags for the backend (libpgcommon)
+  PGSRV_INC=`$PG_CONFIG --includedir-server`
+  PGSQL_BE_CPPFLAGS="-I${PGSRV_INC}"
+  dnl Add $PGSRV_INC/port/win32 to MinGW build to pick up netdb.h
+  case $host in
+    *mingw32*)
+      PGSQL_BE_CPPFLAGS="${PGSQL_BE_CPPFLAGS} -I${PGSRV_INC}/port/win32"
+      ;;
+  esac
 
-dnl Extract the include flags for the backend (libpgcommon)
-PGSRV_INC=`$PG_CONFIG --includedir-server`
-PGSQL_BE_CPPFLAGS="-I${PGSRV_INC}"
-dnl Add $PGSRV_INC/port/win32 to MinGW build to pick up netdb.h
-case $host in
-	*mingw32*)
-		PGSQL_BE_CPPFLAGS="${PGSQL_BE_CPPFLAGS} -I${PGSRV_INC}/port/win32"
-		;;
-esac
+  AC_SUBST([PGSQL_BE_CPPFLAGS])
 
-AC_SUBST([PGSQL_BE_CPPFLAGS])
+  dnl Extract the documentation and man page directories
+  PGSQL_DOCDIR=`$PG_CONFIG --docdir`
+  PGSQL_MANDIR=`$PG_CONFIG --mandir`
 
-dnl Extract the documentation and man page directories
-PGSQL_DOCDIR=`$PG_CONFIG --docdir`
-PGSQL_MANDIR=`$PG_CONFIG --mandir`
+  AC_SUBST([PGSQL_DOCDIR])
+  AC_SUBST([PGSQL_MANDIR])
 
-AC_SUBST([PGSQL_DOCDIR])
-AC_SUBST([PGSQL_MANDIR])
+  dnl Extract the locale directory
+  PGSQL_LOCALEDIR=`$PG_CONFIG --localedir`
+  AC_DEFINE_UNQUOTED([PGSQL_LOCALEDIR], ["$PGSQL_LOCALEDIR"], [Location of PostgreSQL locale directory])
 
-dnl Extract the locale directory
-PGSQL_LOCALEDIR=`$PG_CONFIG --localedir`
-AC_DEFINE_UNQUOTED([PGSQL_LOCALEDIR], ["$PGSQL_LOCALEDIR"], [Location of PostgreSQL locale directory])
+  dnl Extract the executable directory
+  PGSQL_BINDIR=`$PG_CONFIG --bindir`
 
-dnl Extract the executable directory
-PGSQL_BINDIR=`$PG_CONFIG --bindir`
+  AC_SUBST([PGSQL_BINDIR])
 
-AC_SUBST([PGSQL_BINDIR])
+  dnl Extract the share directory
+  PGSQL_SHAREDIR=`$PG_CONFIG --sharedir`
 
-dnl Extract the share directory
-PGSQL_SHAREDIR=`$PG_CONFIG --sharedir`
+  AC_SUBST([PGSQL_SHAREDIR])
 
-AC_SUBST([PGSQL_SHAREDIR])
+  dnl Ensure that we can parse libpq-fe.h
+  CPPFLAGS_SAVE="$CPPFLAGS"
+  CPPFLAGS="$PGSQL_FE_CPPFLAGS"
+  AC_CHECK_HEADER([libpq-fe.h], [], [AC_MSG_ERROR([could not find libpq-fe.h])])
+  CPPFLAGS="$CPPFLAGS_SAVE"
 
-dnl Ensure that we can parse libpq-fe.h
-CPPFLAGS_SAVE="$CPPFLAGS"
-CPPFLAGS="$PGSQL_FE_CPPFLAGS"
-AC_CHECK_HEADER([libpq-fe.h], [], [AC_MSG_ERROR([could not find libpq-fe.h])])
-CPPFLAGS="$CPPFLAGS_SAVE"
+  dnl Ensure we can link against libpq
+  LIBS_SAVE="$LIBS"
+  LIBS="$PGSQL_FE_LDFLAGS"
+  AC_CHECK_LIB([pq], [PQserverVersion],
+    [],
+    [AC_MSG_ERROR([could not find libpq])],
+    [])
+  LIBS="$LIBS_SAVE"
 
-dnl Ensure we can link against libpq
-LIBS_SAVE="$LIBS"
-LIBS="$PGSQL_FE_LDFLAGS"
-AC_CHECK_LIB([pq], [PQserverVersion],
-	[],
-	[AC_MSG_ERROR([could not find libpq])],
-	[])
-LIBS="$LIBS_SAVE"
+  AC_DEFINE_UNQUOTED([POSTGIS_PGSQL_VERSION], [$POSTGIS_PGSQL_VERSION], [PostgreSQL server version])	
+  AC_SUBST([POSTGIS_PGSQL_VERSION])
 
-AC_DEFINE_UNQUOTED([POSTGIS_PGSQL_VERSION], [$POSTGIS_PGSQL_VERSION], [PostgreSQL server version])	
-AC_SUBST([POSTGIS_PGSQL_VERSION])
+fi dnl LIBLWGEOM_ONLY != no
 
 
 dnl ===========================================================================
@@ -646,6 +656,7 @@ AC_DEFINE_UNQUOTED([POSTGIS_GEOS_VERSION], [$POSTGIS_GEOS_VERSION], [GEOS librar
 AC_SUBST([POSTGIS_GEOS_VERSION])
 AC_SUBST([GEOS_NUMERIC_VERSION])
 
+
 dnl ===========================================================================
 dnl SFCGAL library support
 dnl ===========================================================================
@@ -663,6 +674,12 @@ if test "x$with_sfcgal" != "xno"; then
 		SFCGAL_LDFLAGS=`$SFCGAL_CONFIG --libs`
 		SFCGAL_CPPFLAGS=`$SFCGAL_CONFIG --cflags`" -DHAVE_SFCGAL"
 
+		SFCGAL_MAJOR_VERSION=`echo $SFCGAL_VERSION | cut -d. -f1 | sed 's/[[^0-9]]//g'`
+		SFCGAL_MINOR_VERSION=`echo $SFCGAL_VERSION | cut -d. -f2 | sed 's/[[^0-9]]//g'`
+		POSTGIS_SFCGAL_VERSION="$SFCGAL_MAJOR_VERSION$SFCGAL_MINOR_VERSION"
+		AC_DEFINE_UNQUOTED([POSTGIS_SFCGAL_VERSION], [$POSTGIS_SFCGAL_VERSION], [SFCGAL library version at build time])
+		AC_SUBST([POSTGIS_SFCGAL_VERSION])
+
 		SFCGAL_STATIC=`$SFCGAL_CONFIG --static`
 		if test "x$SFCGAL_STATIC" = "xON"; then
 			AC_MSG_WARN([The SFCGAL version found is not installed as a dynamic library.])
@@ -670,6 +687,9 @@ if test "x$with_sfcgal" != "xno"; then
         		SFCGAL="sfcgal"
 			HAVE_SFCGAL="yes"
 		fi
+		if test ! "$POSTGIS_SFCGAL_VERSION" -ge 11; then
+			AC_MSG_ERROR([PostGIS requires SFCGAL >= 1.1.0 (found $SFCGAL_VERSION)])
+		fi
 
 	else
 		if test "x$with_sfcgal" != "x"; then
@@ -685,6 +705,8 @@ AC_SUBST([SFCGAL_OBJS])
 AC_SUBST([SFCGAL])
 AC_SUBST([HAVE_SFCGAL])
 
+
+
 dnl ===========================================================================
 dnl Detect gettext
 dnl ===========================================================================
@@ -812,7 +834,7 @@ CPPFLAGS_SAVE="$CPPFLAGS"
 CPPFLAGS="$JSON_CPPFLAGS"
 AC_CHECK_HEADER([json/json.h], [HAVE_JSON=yes], [
   AC_CHECK_HEADER([json-c/json.h], [HAVE_JSON=yes; HAVE_JSON_C=yes], [])
-])      
+])	
 CPPFLAGS="$CPPFLAGS_SAVE"
 
 dnl Ensure we can link against libjson
@@ -827,7 +849,7 @@ if test "$HAVE_JSON" = "yes"; then
 	AC_DEFINE([HAVE_LIBJSON], 1, [Define to 1 if libjson is present])
 fi
 if test "$HAVE_JSON_C" = "yes"; then
-  AC_DEFINE([HAVE_LIBJSON_C], 1, [Define to 1 if libjson resides in a json-c subdir])
+	AC_DEFINE([HAVE_LIBJSON_C], 1, [Define to 1 if libjson resides in a json-c subdir])
 fi
 
 AC_SUBST([JSON_CPPFLAGS])
@@ -836,6 +858,8 @@ AC_SUBST([HAVE_JSON])
 
 fi dnl }
 
+
+
 dnl ===========================================================================
 dnl Detect GTK+2.0 for GUI
 dnl ===========================================================================
@@ -924,10 +948,75 @@ AC_DEFINE_UNQUOTED([POSTGIS_AUTOCACHE_BBOX], [1], [Enable caching of bounding bo
 dnl Always enable use of ANALYZE statistics by default
 AC_DEFINE_UNQUOTED([POSTGIS_USE_STATS], [1], [Enable use of ANALYZE statistics])
 
-CPPFLAGS="$PGSQL_CPPFLAGS $GEOS_CPPFLAGS $PROJ_CPPFLAGS $XML2_CPPFLAGS $SFCGAL_CPPFLAGS $CPPFLAGS"
-AC_MSG_RESULT([CPPFLAGS: $CPPFLAGS])
+dnl ====================================
+dnl address standardizer stuff
+dnl ====================================
+AC_ARG_WITH([address-standardizer],
+    [AS_HELP_STRING([--without-address-standardizer],
+                    [Disable the address_standardizer extension])],
+    [], [])
+
+if test "x$with_address_standardizer" != "xno"; then
+    dnl ===========================================================================
+    dnl Detect the version of PCRE installed
+    dnl ===========================================================================
+    LDFLAGS="$LDFLAGS_SAVE"
+    CFLAGS="$CFLAGS_SAVE"
+    
+    CHECK_PCRE=yes
+    HAVE_PCRE=no
+    ADDRESS_STANDARDIZER="address_standardizer"
+    AC_ARG_WITH([pcredir], 
+        [AS_HELP_STRING([--with-pcredir=PATH], [specify the PCRE installation directory])], 
+        [PCREDIR="$withval"], [PCREDIR=""])
+    
+    if test ! "x$PCREDIR" = "x"; then
+        dnl Make sure that the directory exists 
+        if test "x$PCREDIR" = "xyes"; then
+            AC_MSG_ERROR([you must specify a parameter to --with-pcredir, e.g. --with-pcredir=/path/to])
+        else
+            if test -d "$PCREDIR"; then
+                AC_MSG_RESULT([Using user-specified PCRE directory: $PCREDIR])
+    
+                dnl Add the include directory to PCRE_CPPFLAGS	
+                PCRE_CPPFLAGS="-I$PCREDIR/include"	
+                PCRE_LDFLAGS="-L$PCREDIR/lib"
+            else
+                AC_MSG_ERROR([the --with-pcredir directory "$PCREDIR" cannot be found]) 
+            fi
+        fi
+    fi
+    
+    
+    dnl Check that we can find the pcre.h header file
+    CPPFLAGS_SAVE="$CPPFLAGS"
+    CPPFLAGS="$PCRE_CPPFLAGS"
+    
+    AC_CHECK_HEADER([pcre.h], [HAVE_PCRE=yes], [ADDRESS_STANDARDIZER=""])	
+    AC_SUBST([PCRE])
+    AC_SUBST([HAVE_PCRE])
+    AC_SUBST([ADDRESS_STANDARDIZER])
+    
+    dnl Return the PCRE version number
+    AC_DEFINE_UNQUOTED([PCRE_VERSION], [$PCRE_VERSION], [PCRE library version])
+    AC_SUBST([PCRE_VERSION])
+    CPPFLAGS="$CPPFLAGS_SAVE"
+    
+    AC_SUBST([PCRE_CPPFLAGS])
+    AC_SUBST([PCRE_LDFLAGS])
+    
+    
 
-SHLIB_LINK="$PGSQL_LDFLAGS $GEOS_LDFLAGS $PROJ_LDFLAGS -lgeos_c -lproj $JSON_LDFLAGS $XML2_LDFLAGS $SFCGAL_LDFLAGS"
+else
+    ADDRESS_STANDARDIZER=""
+    AC_SUBST([ADDRESS_STANDARDIZER])
+    AC_MSG_RESULT([ADDRESS_STANDARDIZER support: disabled])
+fi
+
+CPPFLAGS="$PGSQL_CPPFLAGS $GEOS_CPPFLAGS $PROJ_CPPFLAGS $XML2_CPPFLAGS $SFCGAL_CPPFLAGS $JSON_CPPFLAGS $PCRE_CPPFLAGS $CPPFLAGS"
+dnl AC_MSG_RESULT([CPPFLAGS: $CPPFLAGS])
+
+SHLIB_LINK="$PGSQL_LDFLAGS $GEOS_LDFLAGS $PROJ_LDFLAGS -lgeos_c -lproj $JSON_LDFLAGS $XML2_LDFLAGS $SFCGAL_LDFLAGS $PCRE_LDFLAGS $EXCLUDELIBS_LDFLAGS"
 AC_SUBST([SHLIB_LINK])
 dnl AC_MSG_RESULT([SHLIB_LINK: $SHLIB_LINK])
 
@@ -952,6 +1041,23 @@ fi
 
 AC_SUBST([TOPOLOGY])
 
+dnl ====================================
+dnl interrupt tests
+dnl ====================================
+INTERRUPTTESTS="no"
+AC_ARG_WITH([interrupt-tests],
+    [AS_HELP_STRING([--without-interrupt-tests],
+                    [Disable the interrupt tests (for CI servers)])],
+    [], [])
+
+if test "x$with_interrupt_tests" != "xno"; then
+    INTERRUPTTESTS="yes"
+fi
+
+AC_SUBST([INTERRUPTTESTS])
+
+
+
 dnl ===========================================================================
 dnl SRID stuff
 dnl ===========================================================================
@@ -1163,25 +1269,25 @@ else
 fi
 
 
+
+
+
 dnl ===========================================================================
 dnl See if we have the requirements for building the extensions, namely
-dnl PostgreSQL 9.1 or better and the xlstproc tool for generating the commends
-dnl SQL file.
+dnl the xlstproc tool for generating the comments SQL file.
 dnl ===========================================================================
 
 EXTENSIONS=""
-if test $POSTGIS_PGSQL_VERSION -ge 91; then
-	if test \
-          "x$XSLTPROC" != "x" -o \
-          -e doc/postgis_comments.sql -a \
-          -e doc/raster_comments.sql;
-  then
-		if test "x$RASTER" = "xraster"; then
-				AC_MSG_RESULT([enabling PostgreSQL extension support...])
-				EXTENSIONS=extensions
-				AC_SUBST([EXTENSIONS])
-		fi
-	fi
+if test \
+        "x$XSLTPROC" != "x" -o \
+        -e doc/postgis_comments.sql -a \
+        -e doc/raster_comments.sql;
+then
+  if test "x$RASTER" = "xraster"; then
+      AC_MSG_RESULT([enabling PostgreSQL extension support...])
+      EXTENSIONS=extensions
+      AC_SUBST([EXTENSIONS])
+  fi
 fi
 
 
@@ -1193,10 +1299,15 @@ AC_OUTPUT([GNUmakefile
    extensions/Makefile
    extensions/postgis/Makefile 
    extensions/postgis/postgis.control 
+   extensions/postgis_sfcgal/Makefile 
+   extensions/postgis_sfcgal/postgis_sfcgal.control 
    extensions/postgis_topology/Makefile 
    extensions/postgis_topology/postgis_topology.control 
    extensions/postgis_tiger_geocoder/Makefile 
    extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control 
+   extensions/address_standardizer/Makefile 
+   extensions/address_standardizer/address_standardizer.control
+   extensions/address_standardizer/address_standardizer_data_us.control    
    liblwgeom/Makefile 
    liblwgeom/cunit/Makefile 
    liblwgeom/liblwgeom.h 
@@ -1213,7 +1324,6 @@ AC_OUTPUT([GNUmakefile
    doc/Makefile.comments 
    doc/html/image_src/Makefile 
    utils/Makefile 
-   java/jdbc/Makefile
    $RT_MAKEFILE_LIST])
     
 dnl ===========================================================================
@@ -1225,7 +1335,6 @@ AC_MSG_RESULT([  PostGIS is now configured for ${host}])
 AC_MSG_RESULT()
 AC_MSG_RESULT([ -------------- Compiler Info ------------- ])
 AC_MSG_RESULT([  C compiler:           ${CC} ${CFLAGS}])
-AC_MSG_RESULT([  C++ compiler:         ${CXX} ${CXXFLAGS}])
 AC_MSG_RESULT([  SQL preprocessor:     ${SQLPP}])
 AC_MSG_RESULT()
 AC_MSG_RESULT([ -------------- Dependencies -------------- ])
@@ -1239,12 +1348,17 @@ if test "x$SFCGAL" = "xsfcgal"; then
     AC_MSG_RESULT([  SFCGAL config:        ${SFCGAL_CONFIG}])
     AC_MSG_RESULT([  SFCGAL version:       ${SFCGAL_VERSION}])
 fi
-AC_MSG_RESULT([  PostgreSQL config:    ${PG_CONFIG}])
-AC_MSG_RESULT([  PostgreSQL version:   ${PGSQL_FULL_VERSION}])
+if test "x$LIBLWGEOM_ONLY" = "xno"; then
+  AC_MSG_RESULT([  PostgreSQL config:    ${PG_CONFIG}])
+  AC_MSG_RESULT([  PostgreSQL version:   ${PGSQL_FULL_VERSION}])
+else
+  AC_MSG_RESULT([  PostgreSQL support:   DISABLED])
+fi
 AC_MSG_RESULT([  PROJ4 version:        ${POSTGIS_PROJ_VERSION}])
 AC_MSG_RESULT([  Libxml2 config:       ${XML2CONFIG}])
 AC_MSG_RESULT([  Libxml2 version:      ${POSTGIS_LIBXML2_VERSION}])
 AC_MSG_RESULT([  JSON-C support:       ${HAVE_JSON}])
+AC_MSG_RESULT([  PCRE support:         ${HAVE_PCRE}])
 AC_MSG_RESULT([  PostGIS debug level:  ${POSTGIS_DEBUG_LEVEL}])
 AC_MSG_RESULT([  Perl:                 ${PERL}])
 AC_MSG_RESULT()
@@ -1265,6 +1379,12 @@ if test "x$SFCGAL" = "xsfcgal"; then
 else
     AC_MSG_RESULT([  SFCGAL support:       disabled])
 fi
+
+if test "x$ADDRESS_STANDARDIZER" = "xaddress_standardizer"; then
+    AC_MSG_RESULT([  Address Standardizer support:       enabled])
+else
+    AC_MSG_RESULT([  Address Standardizer support:       disabled])
+fi
 AC_MSG_RESULT()
 AC_MSG_RESULT([ -------- Documentation Generation -------- ])
 AC_MSG_RESULT([  xsltproc:             ${XSLTPROC}])
@@ -1274,14 +1394,14 @@ AC_MSG_RESULT([  convert:              ${IMAGEMAGICK}])
 AC_MSG_RESULT([  mathml2.dtd:          ${MATHML2_DTD}])
 AC_MSG_RESULT()
 
-if test "$GEOS_NUMERIC_VERSION" -lt 30302; then
-AC_MSG_RESULT([ --------- GEOS VERSION NOTICE ------------ ])
-AC_MSG_RESULT([  You are building against GEOS ${GEOS_FULL_VERSION} ])
-AC_MSG_RESULT([  To take advantage of all the features of ])
-AC_MSG_RESULT([  PostGIS we recommend you build using ])
-AC_MSG_RESULT([  GEOS 3.3.2 or higher. You can download ])
-AC_MSG_RESULT([  the latest versions from ])
-AC_MSG_RESULT([  http://trac.osgeo.org/geos ])
-AC_MSG_RESULT()
+if test "$GEOS_NUMERIC_VERSION" -lt 30500; then
+AC_MSG_WARN([ --------- GEOS VERSION WARNING ------------ ])
+AC_MSG_WARN([  You are building against GEOS ${GEOS_FULL_VERSION} ])
+AC_MSG_WARN([  To take advantage of all the features of ])
+AC_MSG_WARN([  PostGIS we recommend you build using ])
+AC_MSG_WARN([  GEOS 3.5.0 or higher. You can download ])
+AC_MSG_WARN([  the latest versions from ])
+AC_MSG_WARN([  http://trac.osgeo.org/geos ])
+AC_MSG_WARN()
 fi
 
diff --git a/doc/.tx/config b/doc/.tx/config
new file mode 100644
index 0000000..fe05eec
--- /dev/null
+++ b/doc/.tx/config
@@ -0,0 +1,168 @@
+[main]
+host = https://www.transifex.com
+
+[postgis.extras_address_standardizerxmlpot]
+file_filter = po/<lang>/extras_address_standardizer.xml.po
+source_file = po/templates/extras_address_standardizer.xml.pot
+source_lang = en
+
+[postgis.extras_historytablexmlpot]
+file_filter = po/<lang>/extras_historytable.xml.po
+source_file = po/templates/extras_historytable.xml.pot
+source_lang = en
+
+[postgis.extras_tigergeocoderxmlpot]
+file_filter = po/<lang>/extras_tigergeocoder.xml.po
+source_file = po/templates/extras_tigergeocoder.xml.pot
+source_lang = en
+
+[postgis.extras_topologyxmlpot]
+file_filter = po/<lang>/extras_topology.xml.po
+source_file = po/templates/extras_topology.xml.pot
+source_lang = en
+
+[postgis.extrasxmlpot]
+file_filter = po/<lang>/extras.xml.po
+source_file = po/templates/extras.xml.pot
+source_lang = en
+
+[postgis.faq_rasterxmlpot]
+file_filter = po/<lang>/faq_raster.xml.po
+source_file = po/templates/faq_raster.xml.pot
+source_lang = en
+
+[postgis.faqxmlpot]
+file_filter = po/<lang>/faq.xml.po
+source_file = po/templates/faq.xml.pot
+source_lang = en
+
+[postgis.installationxmlpot]
+file_filter = po/<lang>/installation.xml.po
+source_file = po/templates/installation.xml.pot
+source_lang = en
+
+[postgis.introductionxmlpot]
+file_filter = po/<lang>/introduction.xml.po
+source_file = po/templates/introduction.xml.pot
+source_lang = en
+
+[postgis.performance_tipsxmlpot]
+file_filter = po/<lang>/performance_tips.xml.po
+source_file = po/templates/performance_tips.xml.pot
+source_lang = en
+
+[postgis.postgisxmlpot]
+file_filter = po/<lang>/postgis.xml.po
+source_file = po/templates/postgis.xml.pot
+source_lang = en
+
+[postgis.reference_accessorxmlpot]
+file_filter = po/<lang>/reference_accessor.xml.po
+source_file = po/templates/reference_accessor.xml.pot
+source_lang = en
+
+[postgis.reference_constructorxmlpot]
+file_filter = po/<lang>/reference_constructor.xml.po
+source_file = po/templates/reference_constructor.xml.pot
+source_lang = en
+
+[postgis.reference_editorxmlpot]
+file_filter = po/<lang>/reference_editor.xml.po
+source_file = po/templates/reference_editor.xml.pot
+source_lang = en
+
+[postgis.reference_exceptionxmlpot]
+file_filter = po/<lang>/reference_exception.xml.po
+source_file = po/templates/reference_exception.xml.pot
+source_lang = en
+
+[postgis.reference_gucxmlpot]
+file_filter = po/<lang>/reference_guc.xml.po
+source_file = po/templates/reference_guc.xml.pot
+source_lang = en
+
+[postgis.reference_lrsxmlpot]
+file_filter = po/<lang>/reference_lrs.xml.po
+source_file = po/templates/reference_lrs.xml.pot
+source_lang = en
+
+[postgis.reference_managementxmlpot]
+file_filter = po/<lang>/reference_management.xml.po
+source_file = po/templates/reference_management.xml.pot
+source_lang = en
+
+[postgis.reference_measurexmlpot]
+file_filter = po/<lang>/reference_measure.xml.po
+source_file = po/templates/reference_measure.xml.pot
+source_lang = en
+
+[postgis.reference_sfcgalxmlpot]
+file_filter = po/<lang>/reference_sfcgal.xml.po
+source_file = po/templates/reference_sfcgal.xml.pot
+source_lang = en
+
+[postgis.reference_miscxmlpot]
+file_filter = po/<lang>/reference_misc.xml.po
+source_file = po/templates/reference_misc.xml.pot
+source_lang = en
+
+[postgis.reference_operatorxmlpot]
+file_filter = po/<lang>/reference_operator.xml.po
+source_file = po/templates/reference_operator.xml.pot
+source_lang = en
+
+[postgis.reference_outputxmlpot]
+file_filter = po/<lang>/reference_output.xml.po
+source_file = po/templates/reference_output.xml.pot
+source_lang = en
+
+[postgis.reference_processingxmlpot]
+file_filter = po/<lang>/reference_processing.xml.po
+source_file = po/templates/reference_processing.xml.pot
+source_lang = en
+
+[postgis.reference_rasterxmlpot]
+file_filter = po/<lang>/reference_raster.xml.po
+source_file = po/templates/reference_raster.xml.pot
+source_lang = en
+
+[postgis.reference_transactionxmlpot]
+file_filter = po/<lang>/reference_transaction.xml.po
+source_file = po/templates/reference_transaction.xml.pot
+source_lang = en
+
+[postgis.reference_typexmlpot]
+file_filter = po/<lang>/reference_type.xml.po
+source_file = po/templates/reference_type.xml.pot
+source_lang = en
+
+[postgis.referencexmlpot]
+file_filter = po/<lang>/reference.xml.po
+source_file = po/templates/reference.xml.pot
+source_lang = en
+
+[postgis.release_notesxmlpot]
+file_filter = po/<lang>/release_notes.xml.po
+source_file = po/templates/release_notes.xml.pot
+source_lang = en
+
+[postgis.reportingxmlpot]
+file_filter = po/<lang>/reporting.xml.po
+source_file = po/templates/reporting.xml.pot
+source_lang = en
+
+[postgis.using_postgis_appxmlpot]
+file_filter = po/<lang>/using_postgis_app.xml.po
+source_file = po/templates/using_postgis_app.xml.pot
+source_lang = en
+
+[postgis.using_postgis_datamanxmlpot]
+file_filter = po/<lang>/using_postgis_dataman.xml.po
+source_file = po/templates/using_postgis_dataman.xml.pot
+source_lang = en
+
+[postgis.using_raster_datamanxmlpot]
+file_filter = po/<lang>/using_raster_dataman.xml.po
+source_file = po/templates/using_raster_dataman.xml.pot
+source_lang = en
+
diff --git a/doc/Makefile.comments.in b/doc/Makefile.comments.in
index dbe3527..ba507b9 100644
--- a/doc/Makefile.comments.in
+++ b/doc/Makefile.comments.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id$
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
@@ -18,25 +17,13 @@ MODULE_doc=postgis- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@
 MODULEDIR=contrib/$(MODULE_doc)
 
 # Files to be copied to the contrib/ directory
-DATA_built=postgis_comments.sql raster_comments.sql topology_comments.sql
+DATA_built=postgis_comments.sql raster_comments.sql topology_comments.sql sfcgal_comments.sql
 
 # PGXS information
 PG_CONFIG = @PG_CONFIG@ 
 PGXS := @PGXS@
 include $(PGXS)
 
-# PGXS override feature. The ability to allow PostGIS to install itself
-# in a versioned directory is only available in PostgreSQL >= 8.5. To
-# do this by default on older PostgreSQL versions, we need to override
-# the existing PGXS targets.
-#
-# Once PostgreSQL 8.5 becomes the minimum supported version, this entire
-# section and its associated Makefile.pgxs should be removed.
-PGXSOVERRIDE = @PGXSOVERRIDE@
-ifeq ($(PGXSOVERRIDE),1)
-	include ../postgis/Makefile.pgxs
-endif
-
 # If REGRESS=1 passed as a parameter, change the default install paths
 # so that no prefix is included. This allows us to relocate to a temporary
 # directory for regression testing.
diff --git a/doc/Makefile.in b/doc/Makefile.in
index bc824b7..2fd49e6 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -21,7 +21,7 @@
 # that we could produce a large number of files (think chunked HTML)
 #
 
-translations = it_IT pt_BR 
+translations = it_IT pt_BR fr es pl ko_KR
 
 POSTGIS_MAJOR_VERSION=@POSTGIS_MAJOR_VERSION@
 POSTGIS_MINOR_VERSION=@POSTGIS_MINOR_VERSION@
@@ -44,7 +44,7 @@ PERL=@PERL@
 
 # To allow network access use:
 #
-# make html XSLTPROCFLAGS=
+# $(MAKE) html XSLTPROCFLAGS=
 #
 ifeq ($(XSLTPROCFLAGS),)
 	XSLTPROCFLAGS=--nonet
@@ -104,6 +104,7 @@ endif
 all: $(BUILD_TARGET)
 
 XML_SOURCES = \
+    extras_address_standardizer.xml \
 	extras_historytable.xml \
 	extras_tigergeocoder.xml \
 	extras_topology.xml \
@@ -118,6 +119,7 @@ XML_SOURCES = \
 	reference_constructor.xml \
 	reference_editor.xml \
 	reference_exception.xml \
+	reference_guc.xml \
 	reference_lrs.xml \
 	reference_management.xml \
 	reference_measure.xml \
@@ -127,6 +129,7 @@ XML_SOURCES = \
 	reference_output.xml \
 	reference_processing.xml \
 	reference_raster.xml \
+	reference_temporal.xml \
 	reference_transaction.xml \
 	reference_type.xml \
 	reference.xml \
@@ -144,8 +147,24 @@ XML_INPUTS = $(XML_SOURCES) $(XML_GENERATED_SOURCES)
 
 XML_INPUTS_POT = $(XML_SOURCES:%.xml=po/templates/%.xml.pot)
 
+.PHONY: $(XML_INPUTS_POT)
 $(XML_INPUTS_POT): po/templates/%.xml.pot: %.xml
-	$(XML2POT) $< > $@
+	@if test -f $@; then \
+	  $(XML2POT) $< > $@.tmp; \
+    changed=`diff $@.tmp $@ | grep -v '^[<>] "POT-Creation-Date:' | wc -l`; \
+    if expr $${changed} \> 3 >/dev/null; then \
+      echo "$@ updated"; \
+      mv $@.tmp $@; \
+    else \
+      echo "$@ unchanged"; \
+      rm $@.tmp; \
+    fi; \
+  else \
+	  $(XML2POT) $< > $@; \
+  fi;
+
+# Update translation templates
+update-pot: $(XML_INPUTS_POT)
 
 # Creates or updates translation files
 update-po: $(XML_INPUTS_POT)
@@ -162,10 +181,28 @@ update-po: $(XML_INPUTS_POT)
     done; \
   done
 
+pull-tx:
+	tx pull --all
+	$(MAKE) update-po
+
+push-tx:
+	tx push -s -t --skip
+
+# Register transifex resources, run when adding a new .xml file
+update-tx:
+	for f in $(XML_INPUTS_POT); do \
+    f=`basename $${f} .pot`; \
+    res=`echo "$${f}" | sed 's/\.//g'`pot; \
+    tx set --auto-local -r postgis.$${res} "po/<lang>/$${f}.po" \
+           --source-lang en --source-file "po/templates/$${f}.pot" \
+           --execute; \
+  done
+
+
 ifeq ($(XSLTPROC),)
 postgis_aggs_mm.xml: requirements_not_met_xsltproc
 else
-postgis_aggs_mm.xml: ./xsl/postgis_aggs_mm.xml.xsl postgis-out.xml Makefile
+postgis_aggs_mm.xml: ./xsl/postgis_aggs_mm.xml.xsl Makefile postgis-out.xml $(XML_SOURCES)
 	$(XSLTPROC) --novalid ./xsl/postgis_aggs_mm.xml.xsl postgis-out.xml > $@
 endif
 
@@ -176,7 +213,7 @@ postgis_cheatsheet.html: ./xsl/postgis_cheatsheet.html.xsl $(XML_INPUTS)
 	$(XSLTPROC) --novalid ./xsl/postgis_cheatsheet.html.xsl postgis-out.xml > $@
 	
 raster_comments.sql: ./xsl/raster_comments.sql.xsl $(XML_INPUTS)
-	$(XSLTPROC) ./xsl/raster_comments.sql.xsl postgis-out.xml > $@
+	$(XSLTPROC) --novalid ./xsl/raster_comments.sql.xsl postgis-out.xml > $@
 	
 raster_cheatsheet.html: ./xsl/raster_cheatsheet.html.xsl $(XML_INPUTS)
 	$(XSLTPROC) --novalid ./xsl/raster_cheatsheet.html.xsl postgis-out.xml > $@
@@ -230,7 +267,7 @@ postgis-${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}.${POSTGIS_MICRO_VERSIO
 	   echo "       try installing dblatex and then re-run configure"; \
 	   false; \
 	else \
-		dblatex -T native -t pdf \
+		$(DBLATEX) -T native -t pdf \
 		   -I "${PWD}/html" \
 		   -P doc.collab.show=0 \
 		   -P figure.note="${PWD}/html/images/note" \
@@ -281,13 +318,15 @@ clean:
 	rm -f *.epub
 	$(MAKE) -C html/image_src clean
 	rm -f $(XML_GENERATED_SOURCES)
+	rm -f postgis_gardentest_${POSTGIS_MAJOR_VERSION}${POSTGIS_MINOR_VERSION}.sql
+	rm -f raster_gardentest_${POSTGIS_MAJOR_VERSION}${POSTGIS_MINOR_VERSION}.sql
 
 distclean: clean
 	$(MAKE) -C html/image_src distclean
 	rm -f Makefile Makefile.comments html/image_src/Makefile
 
 maintainer-clean: clean images-clean
-	rm -f postgis_comments.sql raster_comments.sql topology_comments.sql tiger_geocoder_comments.sql
+	rm -f postgis_comments.sql raster_comments.sql topology_comments.sql tiger_geocoder_comments.sql sfcgal_comments.sql
 
 ifneq ($(CAN_BUILD_COMMENTS),yes)
 comments:
diff --git a/doc/doxygen.cfg.in b/doc/doxygen.cfg.in
index 3f7af28..d455dd6 100644
--- a/doc/doxygen.cfg.in
+++ b/doc/doxygen.cfg.in
@@ -17,7 +17,7 @@
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded
 # by quotes) that should identify the project.
 
-PROJECT_NAME           = "PostGIS 2.1 Doxygen"
+PROJECT_NAME           = "PostGIS Trunk Doxygen"
 
 # The PROJECT_NUMBER tag can be used to enter a project or revision number.
 # This could be handy for archiving the generated documentation or
@@ -459,7 +459,7 @@ WARN_LOGFILE           =
 # directories like "/usr/src/myproject". Separate the files or directories
 # with spaces.
 
-INPUT                  = ../postgis ../liblwgeom ../loader ../raster
+INPUT                  = ../postgis ../liblwgeom ../loader ../raster ../extras/address_standardizer
 
 # If the value of the INPUT tag contains directories, you can use the
 # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
diff --git a/doc/extras.xml b/doc/extras.xml
index 2a99f3c..f54a3d5 100644
--- a/doc/extras.xml
+++ b/doc/extras.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-&extras_topology;
 <chapter id="Extras">
   <title>PostGIS Extras</title>
 
diff --git a/doc/extras_address_standardizer.xml b/doc/extras_address_standardizer.xml
new file mode 100644
index 0000000..9a8d625
--- /dev/null
+++ b/doc/extras_address_standardizer.xml
@@ -0,0 +1,703 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter id="Address_Standardizer">
+	<title>Address Standardizer</title>
+	<para>This is a fork of the <ulink url="http://www.pagcgeo.org/docs/html/pagc-11.html">PAGC standardizer</ulink> (original code for this portion was  <ulink url="http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql">PAGC PostgreSQL Address Standardizer</ulink>). </para>
+	<para>The address standardizer is a single line address parser that takes an input address and normalizes it based on a set of rules stored in a table and helper lex and gaz tables.</para>
+	<para>The code is built into a single postgresql extension library called <code>address_standardizer</code> which can be installed with <code>CREATE EXTENSION address_standardizer;</code>. In addition to the address_standardizer extension, a sample data extension called <code>address_standardizer_data_us</code> extensions is built, which contains gaz, lex, and rules tables for US data.  This extensions can be installed via: <code>CREATE EXTENSION address_standardizer_data_us;</code></para>
+	 <para>The code for this extension can be found in the PostGIS <filename>extensions/address_standardizer</filename> and is currently self-contained.</para>
+	 <para>For installation instructions refer to: <xref linkend="installing_pagc_address_standardizer" />.</para>
+  <sect1 id="Address_Standardizer_Basics"><title>How the Parser Works</title>
+  		<para>The parser works from right to left looking first at the macro elements 
+  			for postcode, state/province, city, and then looks micro elements to determine
+if we are dealing with a house number street or intersection or landmark.
+It currently does not look for a country code or name, but that could be
+introduced in the future.</para>
+			<variablelist>
+				<varlistentry>
+						<term>Country code</term>
+						<listitem><para>Assumed to be US or CA based on: postcode as US or Canada state/province as US or Canada else US</para></listitem>
+				</varlistentry>
+				<varlistentry>
+						<term>Postcode/zipcode</term>
+						<listitem><para>These are recognized using Perl compatible regular expressions.
+These regexs are currently in the parseaddress-api.c and are relatively
+simple to make changes to if needed.</para></listitem>
+				</varlistentry>
+				<varlistentry>
+						<term>State/province</term>
+						<listitem><para>These are recognized using Perl compatible regular expressions.
+These regexs are currently in the parseaddress-api.c but could get moved
+into includes in the future for easier maintenance.</para></listitem>
+				</varlistentry>
+			</variablelist>
+  </sect1>
+  <sect1 id="Address_Standardizer_Types">
+	<sect1info>
+		<abstract>
+			<para>This section lists the PostgreSQL data types installed by Address Standardizer extension.  Note we describe the casting behavior of these which is very 
+				important especially when designing your own functions.  
+			</para>	
+		</abstract>
+	</sect1info>
+	<title>Address Standardizer Types</title>
+	<refentry id="stdaddr">
+		<refnamediv>
+		<refname>stdaddr</refname>
+			<refpurpose>A composite type that consists of the elements of an address.  This is the return type for <varname>standardize_address</varname> function.</refpurpose>
+		</refnamediv>
+		<refsection>
+			<title>Description</title>
+			<para>A composite type that consists of elements of an address.   This is the return type for <xref linkend="standardize_address" /> function. Some descriptions for elements are borrowed from <ulink url="http://www.pagcgeo.org/docs/html/pagc-12.html#ss12.1">PAGC Postal Attributes</ulink>.</para>
+			<para>The token numbers denote the output reference number in the <xref linkend="rulestab" />.</para>
+			<para>&address_standardizer_required;</para>
+				<variablelist>
+					<varlistentry>
+							<term>building</term>
+							<listitem>
+								<para> is text (token number <code>0</code>):  Refers to building number or name. Unparsed building identifiers and types. Generally blank for most addresses.</para>
+							</listitem>
+					</varlistentry>
+					<varlistentry><term>house_num</term> 
+						<listitem>
+							<para>is a text (token number <code>1</code>): This is the street number on a street. Example <emphasis>75</emphasis> in <code>75 State Street</code>.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>predir</term><listitem>
+							<para> is text (token number <code>2</code>): STREET NAME PRE-DIRECTIONAL such as North, South, East, West etc.</para>
+					</listitem></varlistentry>
+					<varlistentry><term>qual</term> 
+						<listitem>
+								<para>is text (token number <code>3</code>): STREET NAME PRE-MODIFIER Example <emphasis>OLD</emphasis> in <code>3715 OLD HIGHWAY 99</code>.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>pretype</term>
+						<listitem>
+								<para> is text (token number <code>4</code>): STREET PREFIX TYPE</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>name</term>
+							<listitem>
+								<para>is text (token number <code>5</code>): STREET NAME</para>
+							</listitem>
+					</varlistentry>
+					<varlistentry><term>suftype</term>
+						<listitem>
+							<para>is text (token number <code>6</code>): STREET POST TYPE e.g. St, Ave, Cir.  A street type following the root street name. Example <emphasis>STREET</emphasis> in <code>75 State Street</code>.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>sufdir</term>
+						<listitem>
+							<para>is text (token number <code>7</code>): STREET POST-DIRECTIONAL A directional modifier that follows the street name.. Example <emphasis>WEST</emphasis> in <code>3715 TENTH AVENUE WEST</code>.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>ruralroute</term>
+						<listitem>
+							<para>is text (token number <code>8</code>): RURAL ROUTE . Example <emphasis>8</emphasis> in <code>RR 7</code>.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>extra</term>
+						<listitem>
+							<para>is text: Extra information like Floor number.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>city</term>
+						<listitem>
+							<para>is text (token number <code>10</code>): Example Boston.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>state</term>
+						<listitem>
+							<para>is text (token number <code>11</code>):  Example <code>MASSACHUSETTS</code></para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>country</term>
+						<listitem>
+							<para>is text (token number <code>12</code>):  Example <code>USA</code></para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>postcode</term>
+						<listitem>
+							<para>is text POSTAL CODE (ZIP CODE) (token number <code>13</code>):  Example <code>02109</code></para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>box</term>
+						<listitem>
+							<para>is text POSTAL BOX NUMBER (token number <code>14 and 15</code>):  Example <code>02109</code></para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>unit</term>
+						<listitem>
+							<para>is text Apartment number or Suite Number (token number <code>17</code>):  Example <emphasis>3B</emphasis> in <code>APT 3B</code>.</para>
+						</listitem>
+					</varlistentry>
+			</variablelist>
+		</refsection>
+	</refentry>
+  </sect1>
+  
+  <sect1 id="Address_Standardizer_Tables">
+  		  <sect1info>
+            <abstract>
+                <para>This section lists the PostgreSQL table formats used by the address_standardizer for normalizing addresses.  Note that these tables do not need to be named the same as what is referenced here.  You can have different lex, gaz, rules tables for each country for example or for your custom geocoder.  The names of these tables get passed into the address standardizer functions.  
+                </para>	
+                <para>The packaged extension <varname>address_standardizer_data_us</varname> contains data for standardizing US addresses.</para>
+            </abstract>
+        </sect1info>
+        <title>Address Standardizer Tables</title>
+        <refentry id="rulestab">
+			<refnamediv>
+			<refname>rules table</refname>
+				<refpurpose>The rules table contains a set of rules that maps address input sequence tokens to standardized output sequence. A rule is defined as a set of input tokens followed by -1 (terminator) followed by set of output tokens followed by -1 followed by number denoting kind of rule followed by ranking of rule.</refpurpose>
+			</refnamediv>
+			<refsection>
+				<title>Description</title>
+				<para>A rules table must have at least the following columns, though you are allowed to add more for your own uses. </para>
+				
+					<variablelist>
+						<varlistentry>
+								<term>id</term>
+								<listitem>
+									<para>Primary key of table</para>
+								</listitem>
+						</varlistentry>
+						<varlistentry><term>rule</term> 
+							<listitem>
+								<para>text field denoting the rule. Details at <ulink url="http://www.pagcgeo.org/docs/html/pagc-12.html#--r-rec--">PAGC Address Standardizer Rule records</ulink>.</para>
+								<para>A rule consists of a set of non-negative integers representing input tokens, terminated by a -1, followed by an equal number of non-negative integers representing postal attributes, terminated by a -1, followed by an integer representing a rule type, followed by an integer representing the rank of the rule. The rules are ranked from 0 (lowest) to 17 (highest).</para>
+								<para>So for example the rule <code>2 0 2 22 3 -1 5 5 6 7 3 -1 2 6</code> maps to sequence of output tokens <emphasis>TYPE NUMBER TYPE DIRECT QUALIF</emphasis> to the output sequence <emphasis>STREET STREET SUFTYP SUFDIR QUALIF</emphasis>. The rule is an ARC_C rule of rank 6. </para>
+								<para>Numbers for corresponding output tokens are listed in <xref linkend="stdaddr" />.</para>
+							</listitem>
+						</varlistentry>
+				</variablelist>
+			</refsection>
+			
+			<refsection id="rule_input_tokens"><title>Input Tokens</title>
+				<para>Each rule starts with a set of input tokens followed by a terminator <code>-1</code>. Valid input tokens excerpted from <ulink url="http://www.pagcgeo.org/docs/html/pagc-12.html#ss12.2">PAGC Input Tokens</ulink> are as follows:</para>
+				<para><emphasis role="bold">Form-Based Input Tokens</emphasis></para>
+				<variablelist>
+						<varlistentry>
+								<term>AMPERS</term>
+								<listitem>
+									<para>(13). The ampersand (&) is frequently used to abbreviate the word "and".</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>DASH</term>
+								<listitem>
+									<para>(9). A punctuation character.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>DOUBLE</term>
+								<listitem>
+									<para>(21). A sequence of two letters. Often used as identifiers.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>FRACT</term>
+								<listitem>
+									<para>(25). Fractions are sometimes used in civic numbers or unit numbers.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+							<term>MIXED</term>
+							<listitem>
+								<para>(23). An alphanumeric string that contains both letters and digits. Used for identifiers.</para>
+							</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+							<term>NUMBER</term>
+							<listitem>
+								<para>(0). A string of digits.</para>
+							</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+							<term>ORD</term>
+							<listitem>
+								<para>(15). Representations such as First or 1st. Often used in street names.</para>
+							</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+							<term>ORD</term>
+							<listitem>
+								<para>(18). A single letter.</para>
+							</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+							<term>WORD</term>
+							<listitem>
+								<para>(1). A word is a string of letters of arbitrary length. A single letter can be both a SINGLE and a WORD.</para>
+							</listitem>
+						</varlistentry>
+				</variablelist>
+				
+				<para><emphasis role="bold">Function-based Input Tokens</emphasis></para>
+				<variablelist>
+						<varlistentry>
+								<term>BOXH</term>
+								<listitem>
+									<para>(14). Words used to denote post office boxes. For example <emphasis>Box</emphasis> or <emphasis>PO Box</emphasis>.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>BUILDH</term>
+								<listitem>
+									<para>(19). Words used to denote buildings or building complexes, usually as a prefix. For example: <emphasis>Tower</emphasis> in <emphasis>Tower 7A</emphasis>.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>BUILDT</term>
+								<listitem>
+									<para>(24). Words and abbreviations used to denote buildings or building complexes, usually as a suffix. For example: <emphasis>Shopping Centre</emphasis>.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>DIRECT</term>
+								<listitem>
+									<para>(22). Words used to denote directions, for example <emphasis>North</emphasis>.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>MILE</term>
+								<listitem>
+									<para>(20). Words used to denote milepost addresses.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>ROAD</term>
+								<listitem>
+									<para>(6). Words and abbreviations used to denote highways and roads. For example: the <emphasis>Interstate</emphasis> in <emphasis>Interstate 5</emphasis></para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>RR</term>
+								<listitem>
+									<para>(8). Words and abbreviations used to denote rural routes. <emphasis>RR</emphasis>.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>TYPE</term>
+								<listitem>
+									<para>(2). Words and abbreviation used to denote street typess. For example: <emphasis>ST</emphasis> or <emphasis>AVE</emphasis>.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>UNITH</term>
+								<listitem>
+									<para>(16). Words and abbreviation used to denote internal subaddresses. For example, <emphasis>APT</emphasis> or <emphasis>UNIT</emphasis>.</para>
+								</listitem>
+						</varlistentry>
+				</variablelist>
+				
+				<para><emphasis role="bold">Postal Type Input Tokens</emphasis></para>
+				<variablelist>
+						<varlistentry>
+								<term>QUINT</term>
+								<listitem>
+									<para>(28). A 5 digit number. Identifies a Zip Code</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>QUAD</term>
+								<listitem>
+									<para>(29). A 4 digit number. Identifies ZIP4.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>PCH</term>
+								<listitem>
+									<para>(27). A 3 character sequence of letter number letter. Identifies an FSA, the first 3 characters of a Canadian postal code.</para>
+								</listitem>
+						</varlistentry>
+						
+						<varlistentry>
+								<term>PCT</term>
+								<listitem>
+									<para>(26). A 3 character sequence of number letter number. Identifies an LDU, the last 3 characters of a Canadian postal code.</para>
+								</listitem>
+						</varlistentry>
+				</variablelist>
+				
+				<para><emphasis role="bold">Stopwords</emphasis></para>
+					<para>STOPWORDS combine with WORDS. In rules a string of multiple WORDs and STOPWORDs will be represented by a single WORD token.</para>
+					<variablelist>
+						<varlistentry>
+								<term>STOPWORD</term>
+								<listitem>
+									<para>(7). A word with low lexical significance, that can be omitted in parsing. For example: <emphasis>THE</emphasis>.</para>
+								</listitem>
+						</varlistentry>
+					</variablelist>
+
+    
+
+			</refsection>
+					
+			<refsection><title>Output Tokens</title>
+				<para>After the first -1 (terminator), follows the output tokens and their order, followed by a terminator <code>-1</code>.  Numbers for corresponding output tokens are listed in <xref linkend="stdaddr" />. What are allowed is dependent on kind of rule.  Output tokens valid for each rule type are listed in <xref linkend="rule_types_rank" />.</para>
+			</refsection>
+				
+			<refsection id="rule_types_rank"><title>Rule Types and Rank</title>
+				<para>The final part of the rule is the rule type which is denoted by one of the following, followed by a rule rank.  The rules are ranked from 0 (lowest) to 17 (highest).</para>
+				
+				<para><emphasis role="bold">MACRO_C</emphasis></para>
+				<para>(token number = "<emphasis role="bold">0</emphasis>"). The class of rules for parsing MACRO clauses such as <emphasis>PLACE STATE ZIP</emphasis></para>
+				<para><emphasis role="bold">MACRO_C output tokens</emphasis> (excerpted from <ulink url="http://www.pagcgeo.org/docs/html/pagc-12.html#--r-typ--">http://www.pagcgeo.org/docs/html/pagc-12.html#--r-typ--</ulink>.</para>
+                <variablelist>
+                    <varlistentry>
+                            <term>CITY</term>
+                            <listitem>
+                                <para>(token number "10"). Example "Albany"</para>
+                            </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                            <term>STATE</term>
+                            <listitem>
+                                <para>(token number "11"). Example "NY"</para>
+                            </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                            <term>NATION</term>
+                            <listitem>
+                                <para>(token number "12").  This attribute is not used in most reference files. Example "USA"</para>
+                            </listitem>
+                    </varlistentry>
+                     <varlistentry>
+                            <term>POSTAL</term>
+                            <listitem>
+                                <para>(token number "13").  (SADS elements "ZIP CODE" , "PLUS 4" ). This attribute is used for both the US Zip and the Canadian Postal Codes.</para>
+                            </listitem>
+                    </varlistentry>
+                </variablelist>
+                
+               <para><emphasis role="bold">MICRO_C</emphasis></para>
+				<para>(token number = "<emphasis role="bold">1</emphasis>"). The class of rules for parsing full MICRO clauses (such as House, street, sufdir, predir, pretyp, suftype, qualif) (ie ARC_C plus CIVIC_C). These rules are not used in the build phase.</para>
+				<para><emphasis role="bold">MICRO_C output tokens</emphasis> (excerpted from <ulink url="http://www.pagcgeo.org/docs/html/pagc-12.html#--r-typ--">http://www.pagcgeo.org/docs/html/pagc-12.html#--r-typ--</ulink>.</para>
+                <variablelist>
+                    <varlistentry><term>HOUSE</term> 
+						<listitem>
+							<para>is a text (token number <code>1</code>): This is the street number on a street. Example <emphasis>75</emphasis> in <code>75 State Street</code>.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>predir</term><listitem>
+							<para> is text (token number <code>2</code>): STREET NAME PRE-DIRECTIONAL such as North, South, East, West etc.</para>
+					</listitem></varlistentry>
+					<varlistentry><term>qual</term> 
+						<listitem>
+								<para>is text (token number <code>3</code>): STREET NAME PRE-MODIFIER Example <emphasis>OLD</emphasis> in <code>3715 OLD HIGHWAY 99</code>.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>pretype</term>
+						<listitem>
+								<para> is text (token number <code>4</code>): STREET PREFIX TYPE</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>street</term>
+							<listitem>
+								<para>is text (token number <code>5</code>): STREET NAME</para>
+							</listitem>
+					</varlistentry>
+					<varlistentry><term>suftype</term>
+						<listitem>
+							<para>is text (token number <code>6</code>): STREET POST TYPE e.g. St, Ave, Cir.  A street type following the root street name. Example <emphasis>STREET</emphasis> in <code>75 State Street</code>.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>sufdir</term>
+						<listitem>
+							<para>is text (token number <code>7</code>): STREET POST-DIRECTIONAL A directional modifier that follows the street name.. Example <emphasis>WEST</emphasis> in <code>3715 TENTH AVENUE WEST</code>.</para>
+						</listitem>
+					</varlistentry>
+                </variablelist>
+				
+				<para><emphasis role="bold">ARC_C</emphasis></para>
+				<para>(token number = "<emphasis role="bold">2</emphasis>"). The class of rules for parsing MICRO clauses, excluding the HOUSE attribute. As such uses same set of output tokens as MICRO_C minus the HOUSE token.</para>
+				
+				<para><emphasis role="bold">CIVIC_C</emphasis></para>
+				<para>(token number = "<emphasis role="bold">3</emphasis>"). The class of rules for parsing the HOUSE attribute.</para>
+
+				<para><emphasis role="bold">EXTRA_C</emphasis></para>
+				<para>(token number = "<emphasis role="bold">4</emphasis>"). The class of rules for parsing EXTRA attributes - attributes excluded from geocoding. These rules are not used in the build phase.</para>
+				
+				<para><emphasis role="bold">EXTRA_C output tokens</emphasis> (excerpted from <ulink url="http://www.pagcgeo.org/docs/html/pagc-12.html#--r-typ--">http://www.pagcgeo.org/docs/html/pagc-12.html#--r-typ--</ulink>.</para>
+                <variablelist>
+                    <varlistentry><term>BLDNG</term> 
+						<listitem>
+							<para>(token number <code>0</code>):  Unparsed building identifiers and types.</para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>BOXH</term> 
+						<listitem>
+							<para>i(token number <code>14</code>): The <emphasis role="bold">BOX</emphasis> in <code>BOX 3B</code></para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>BOXT</term> 
+						<listitem>
+							<para>(token number <code>15</code>): The <emphasis role="bold">3B</emphasis> in <code>BOX 3B</code></para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>RR</term> 
+						<listitem>
+							<para>(token number <code>8</code>): The <emphasis role="bold">RR</emphasis> in <code>RR 7</code></para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>UNITH</term> 
+						<listitem>
+							<para>(token number <code>16</code>): The <emphasis role="bold">APT</emphasis> in <code>APT 3B</code></para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>UNITT</term> 
+						<listitem>
+							<para>(token number <code>17</code>): The <emphasis role="bold">3B</emphasis> in <code>APT 3B</code></para>
+						</listitem>
+					</varlistentry>
+					<varlistentry><term>UNKNWN</term> 
+						<listitem>
+							<para>(token number <code>9</code>): An otherwise unclassified output.</para>
+						</listitem>
+					</varlistentry>
+				</variablelist>
+			</refsection>
+		</refentry>
+				
+		<refentry id="lextab">
+			<refnamediv>
+			<refname>lex table</refname>
+				<refpurpose>A lex table is used to classify alphanumeric input and associate that input with (a) input tokens ( See <xref linkend="rule_input_tokens" />) and (b) standardized representations.</refpurpose>
+			</refnamediv>
+			<refsection>
+				<title>Description</title>
+				<para>A lex (short for lexicon) table is used to classify alphanumeric input and associate that input with  <xref linkend="rule_input_tokens" /> and (b) standardized representations. Things you will find in these tables are <code>ONE</code> mapped to stdword: <code>1</code>.</para>
+				
+				<para>A lex has at least the following columns in the table. You may add</para>
+					<variablelist>
+						<varlistentry>
+								<term>id</term>
+								<listitem>
+									<para>Primary key of table</para>
+								</listitem>
+						</varlistentry>
+						<varlistentry><term>seq</term> 
+							<listitem>
+								<para>integer: definition number?</para>
+							</listitem>
+						</varlistentry>
+		
+						<varlistentry><term>word</term> 
+							<listitem>
+								<para>text: the input word</para>
+							</listitem>
+						</varlistentry>
+						<varlistentry><term>stdword</term> 
+							<listitem>
+								<para>text: the standardized replacement word</para>
+							</listitem>
+						</varlistentry>
+						<varlistentry><term>token</term> 
+							<listitem>
+								<para>integer: the kind of word it is.  Only if it is used in this context will it be replaced. Refer to <ulink url="http://www.pagcgeo.org/docs/html/pagc-12.html#--i-tok--">PAGC Tokens</ulink>.</para>
+							</listitem>
+						</varlistentry>
+				</variablelist>
+			</refsection>
+		</refentry>
+				
+		<refentry id="gaztab">
+			<refnamediv>
+			<refname>gaz table</refname>
+				<refpurpose>A gaz table is used to standardize place names and associate that input with (a) input tokens ( See <xref linkend="rule_input_tokens" />) and (b) standardized representations.</refpurpose>
+			</refnamediv>
+			<refsection>
+				<title>Description</title>
+				<para>A gaz (short for gazeteer) table is used to classify place names and associate that input with <xref linkend="rule_input_tokens" /> and (b) standardized representations. For example if you are in US, you may load these with State Names and associated abbreviations.</para>
+				
+				<para>A gaz table has at least the following columns in the table. You may add more columns if you wish for your own purposes.</para>
+					<variablelist>
+						<varlistentry>
+								<term>id</term>
+								<listitem>
+									<para>Primary key of table</para>
+								</listitem>
+						</varlistentry>
+						<varlistentry><term>seq</term> 
+							<listitem>
+								<para>integer: definition number? - identifer used for that instance of the word</para>
+							</listitem>
+						</varlistentry>
+						<varlistentry><term>word</term> 
+							<listitem>
+								<para>text: the input word</para>
+							</listitem>
+						</varlistentry>
+						<varlistentry><term>stdword</term> 
+							<listitem>
+								<para>text: the standardized replacement word</para>
+							</listitem>
+						</varlistentry>
+						<varlistentry><term>token</term> 
+							<listitem>
+								<para>integer: the kind of word it is.  Only if it is used in this context will it be replaced. Refer to <ulink url="http://www.pagcgeo.org/docs/html/pagc-12.html#--i-tok--">PAGC Tokens</ulink>.</para>
+							</listitem>
+						</varlistentry>
+				</variablelist>
+				
+			
+				
+			</refsection>
+		</refentry>
+  </sect1>
+  
+  <sect1 id="Address_Standardizer_Functions"><title>Address Standardizer Functions</title>
+  		<refentry id="parse_address">
+		<refnamediv>
+			<refname>parse_address</refname>
+	
+			<refpurpose>Takes a 1 line address and breaks into parts</refpurpose>
+		</refnamediv>
+	
+		<refsynopsisdiv>
+			<funcsynopsis>
+				 <funcprototype>
+					<funcdef>record <function>parse_address</function></funcdef>
+					<paramdef><type>text </type> <parameter>address</parameter></paramdef>
+				</funcprototype>
+
+			</funcsynopsis>
+		</refsynopsisdiv>
+	
+		<refsection>
+			<title>Description</title>
+	
+			<para>Returns takes as input an address, and returns a record output consisting of fields <emphasis>num</emphasis>, <emphasis>street</emphasis>, <emphasis>street2</emphasis>,
+			<emphasis>address1</emphasis>, <emphasis>city</emphasis>, <emphasis>state</emphasis>, <emphasis>zip</emphasis>, <emphasis>zipplus</emphasis>, <emphasis>country</emphasis>.</para>
+
+			<!-- use this format if new function -->
+		<para>Availability: 2.2.0</para>
+		<para>&address_standardizer_required;</para>
+		</refsection>
+	
+	
+		<refsection>
+			<title>Examples</title>
+	
+			<programlisting>SELECT num, street, city, zip, zipplus FROM parse_address('1 Devonshire Place, Boston, MA 02109-1234');
+ num |      street      |  city  |  zip  | zipplus
+-----+------------------+--------+-------+---------
+ 1   | Devonshire Place | Boston | 02109 | 1234			
+</programlisting>
+
+		</refsection>
+	
+		<!-- Optionally add a "See Also" section -->
+		<refsection>
+			<title>See Also</title>
+	
+			<para></para>
+		</refsection>
+	</refentry>
+	
+	<refentry id="standardize_address">
+		<refnamediv>
+			<refname>standardize_address</refname>
+	
+			<refpurpose>Returns an stdaddr form of an input address utilizing lex, gaz, and rule tables.</refpurpose>
+		</refnamediv>
+	
+		<refsynopsisdiv>
+			<funcsynopsis>
+				 <funcprototype>
+					<funcdef>stdaddr <function>standardize_address</function></funcdef>
+					<paramdef><type>text </type> <parameter>lextab</parameter></paramdef>
+					<paramdef><type>text </type> <parameter>gaztab</parameter></paramdef>
+					<paramdef><type>text </type> <parameter>rultab</parameter></paramdef>
+					<paramdef><type>text </type> <parameter>address</parameter></paramdef>
+				</funcprototype>
+				
+				<funcprototype>
+					<funcdef>stdaddr <function>standardize_address</function></funcdef>
+					<paramdef><type>text </type> <parameter>lextab</parameter></paramdef>
+					<paramdef><type>text </type> <parameter>gaztab</parameter></paramdef>
+					<paramdef><type>text </type> <parameter>rultab</parameter></paramdef>
+					<paramdef><type>text </type> <parameter>micro</parameter></paramdef>
+					<paramdef><type>text </type> <parameter>macro</parameter></paramdef>
+				</funcprototype>
+			</funcsynopsis>
+		</refsynopsisdiv>
+	
+		<refsection>
+			<title>Description</title>
+	
+			<para>Returns an <xref linkend="stdaddr" /> form of an input address utilizing <xref linkend="lextab" /> table name, <xref linkend="gaztab" />, and <xref linkend="rulestab" /> table names and an address.</para>
+
+			<!-- use this format if new function -->
+		<para>Availability: 2.2.0</para>
+		<para>&address_standardizer_required;</para>
+		</refsection>
+	
+	
+		<refsection>
+			<title>Examples</title>
+			<para>Using address_standardizer_data_us extension</para>
+			<programlisting>CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once
+SELECT house_num, name, suftype, city, country, state, unit  FROM standardize_address('us_lex', 
+			   'us_gaz', 'us_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234');</programlisting>
+			<screen>house_num |    name    | suftype |  city  | country |     state     |      unit
+----------+------------+---------+--------+---------+---------------+-----------------
+1         | DEVONSHIRE | PLACE   | BOSTON | USA     | MASSACHUSETTS | # PENTHOUSE 301</screen>
+      <para>Using tables packaged with tiger geocoder. This example only works if you installed <varname>postgis_tiger_geocoder</varname>.</para>
+      <programlisting>SELECT *  FROM standardize_address('tiger.pagc_lex', 
+         'tiger.pagc_gaz', 'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234');</programlisting>
+         
+      <para>Make easier to read we'll dump output using hstore extension CREATE EXTENSION hstore; you need to install</para>
+      <programlisting>SELECT (each(hstore(p))).*  
+ FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz', 
+   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234') As p;</programlisting>
+       <screen>    key     |      value
+------------+-----------------
+ box        |
+ city       | BOSTON
+ name       | DEVONSHIRE
+ qual       |
+ unit       | # PENTHOUSE 301
+ extra      |
+ state      | MA
+ predir     |
+ sufdir     |
+ country    | USA
+ pretype    |
+ suftype    | PL
+ building   |
+ postcode   | 02109
+ house_num  | 1
+ ruralroute |
+(16 rows)       
+ 			</screen>
+		</refsection>
+	
+		<!-- Optionally add a "See Also" section -->
+		<refsection>
+			<title>See Also</title>
+	
+			<para><xref linkend="stdaddr" />, <xref linkend="rulestab" />, <xref linkend="lextab" />, <xref linkend="gaztab" />, <xref linkend="Pagc_Normalize_Address" /></para>
+		</refsection>
+	</refentry>
+  
+  </sect1>
+</chapter>
diff --git a/doc/extras_tigergeocoder.xml b/doc/extras_tigergeocoder.xml
index 6fbc85a..6d6441f 100644
--- a/doc/extras_tigergeocoder.xml
+++ b/doc/extras_tigergeocoder.xml
@@ -1,85 +1,86 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
   <sect1 id="Tiger_Geocoder">
-	 <sect1info>
-		<abstract>
-			<para>A plpgsql based geocoder written to work with the <ulink url="http://www.census.gov/geo/www/tiger/">TIGER (Topologically Integrated Geographic Encoding and Referencing system ) / Line and Master Address database export</ulink> released by the US Census Bureau.   </para>
-			<para>There are four components to the geocoder: the data loader functions, the address normalizer, the address geocoder, and the reverse geocoder. The latest version updated to use the TIGER 2011 and 2012 census data is located in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder. It defaults to downloading and installing TIGER 2012 files in PostGIS 2.1.0 and TIGER 2013 in PostGIS 2.1.1+.  </para>
-			<para>Although it is designed specifically for the US, a lot of the concepts and functions are applicable and can be adapted to work with other country address and road networks.</para>
-			<para>The script builds a schema called <varname>tiger</varname> to house all the tiger related functions, reusable lookup data such as road type prefixes, suffixes, states, various control tables for managing data load, and skeleton base tables from which all the tiger loaded tables inherit from.</para>
-			<para>Another schema called <varname>tiger_data</varname> is also created which houses all the census data for each state that the loader downloads from Census site and loads into the database. In the current model, each set of state tables is
-			    prefixed with the state code e.g <varname>ma_addr</varname>, <varname>ma_edges</varname> etc with constraints to enforce only that state data.  Each of these tables inherits from the tables <varname>addr</varname>, <varname>faces</varname>, <varname>edges</varname>, etc located in the <varname>tiger schema</varname>. </para>
-			<para>All the geocode functions only reference the base tables, so there is no requirement that the data schema be called <varname>tiger_data</varname> or that data can't be further partitioned into other schemas -- e.g a different schema
-			for each state, as long as all the tables inherit from the tables in the <varname>tiger</varname> schema.
-			
-		
-			  <note><para>
+     <sect1info>
+        <abstract>
+            <para>A plpgsql based geocoder written to work with the <ulink url="http://www.census.gov/geo/www/tiger/">TIGER (Topologically Integrated Geographic Encoding and Referencing system ) / Line and Master Address database export</ulink> released by the US Census Bureau.   </para>
+            <para>There are four components to the geocoder: the data loader functions, the address normalizer, the address geocoder, and the reverse geocoder. The latest version updated to use the TIGER 2011 and 2012 census data is located in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder. It defaults to downloading and installing TIGER 2012 files.  </para>
+            <para>Although it is designed specifically for the US, a lot of the concepts and functions are applicable and can be adapted to work with other country address and road networks.</para>
+            <para>The script builds a schema called <varname>tiger</varname> to house all the tiger related functions, reusable lookup data such as road type prefixes, suffixes, states, various control tables for managing data load, and skeleton base tables from which all the tiger loaded tables inherit from.</para>
+            <para>Another schema called <varname>tiger_data</varname> is also created which houses all the census data for each state that the loader downloads from Census site and loads into the database. In the current model, each set of state tables is
+                prefixed with the state code e.g <varname>ma_addr</varname>, <varname>ma_edges</varname> etc with constraints to enforce only that state data.  Each of these tables inherits from the tables <varname>addr</varname>, <varname>faces</varname>, <varname>edges</varname>, etc located in the <varname>tiger schema</varname>. </para>
+            <para>All the geocode functions only reference the base tables, so there is no requirement that the data schema be called <varname>tiger_data</varname> or that data can't be further partitioned into other schemas -- e.g a different schema
+            for each state, as long as all the tables inherit from the tables in the <varname>tiger</varname> schema.
+            
+        
+              <note><para>
 If you are using tiger geocoder (tiger_2010),
 you can upgrade the scripts using the accompanying upgrade_geocoder.bat
-/ .sh scripts in tiger_2011.  One major change between <varname>tiger_2010</varname> and <varname>tiger_2011/tiger_2012</varname> is that the county and <varname>county</varname> and <varname>state</varname> tables are no longer broken out by state.  We'll be refining the upgrade scripts
-until release.  If you have data from tiger_2010 and want replace with tiger_2012 or tiger_2013 refer to <xref linkend="upgrade_tiger_geocoder" />
-			  </para></note>
-			  
-			  <note><para>New in PostGIS 2.1.0 release is ability to install tiger geocoder with PostgreSQL extension model if you are running PostgreSQL 9.1+. Refer to <xref linkend="install_tiger_geocoder_extension" /> for details.</para></note>
-			  </para>
-			  <para>Also new in PostGIS 2.1.0 is integration with pagc address standardizer PostgreSQL extension which source can be downloaded from <ulink url="http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql">PAGC PostgreSQL address standardizer extension</ulink> and after install and install of the library in your PostGIS database, you can use the <xref linkend="Pagc_Normalize_Address" /> function as a drop in replacement for in-built <xref linkend="Normalize_Addres [...]
-		
-
-
-			<para>Design:</para>
-			<para>The goal of this project is to build a fully functional geocoder that can process an arbitrary 
-			United States address string and using normalized TIGER census data, produce a point geometry and rating reflecting the location of the given address and likeliness of the location. The higher the rating number the worse the result.</para>
-			<para>The <varname>reverse_geocode</varname> function, introduced in PostGIS 2.0.0 is useful for deriving the street address and cross streets of a GPS location.</para>
-			<para>The geocoder should be simple for anyone familiar with PostGIS to install and use, and should be easily installable and usable on all platforms supported by PostGIS.</para>
-			<para>It should be robust enough to function properly despite formatting and spelling errors.</para>
-			<para>It should be extensible enough to be used with future data updates, or alternate data sources with a minimum of coding changes.</para>
-			<para>
-		<note><para>The <varname>tiger</varname> schema must be added to the database search path for the functions to work properly.</para></note>
-			</para>
-		</abstract>
+/ .sh scripts in tiger_2011.  One major change between <varname>tiger_2010</varname> and <varname>tiger_2011+</varname> is that the county and <varname>county</varname> and <varname>state</varname> tables are no longer broken out by state.    If you have data from tiger_2010 and want replace with tiger_2015 refer to <xref linkend="upgrade_tiger_geocoder" />
+              </para></note>
+              
+              <note>
+              <para>New in PostGIS 2.2.0 release is support for Tiger 2015 data and inclusion of Address Standardizer as part of PostGIS.</para>
+              <para>New in PostGIS 2.1.0 release is ability to install tiger geocoder with PostgreSQL extension model if you are running PostgreSQL 9.1+. Refer to <xref linkend="install_tiger_geocoder_extension" /> for details.</para></note>
+              </para>
+              <para>The <xref linkend="Pagc_Normalize_Address" /> function as a drop in replacement for in-built <xref linkend="Normalize_Address" />. Refer to <xref linkend="installing_pagc_address_standardizer" /> for compile and installation instructions.</para> 
+        
+
+
+            <para>Design:</para>
+            <para>The goal of this project is to build a fully functional geocoder that can process an arbitrary 
+            United States address string and using normalized TIGER census data, produce a point geometry and rating reflecting the location of the given address and likeliness of the location. The higher the rating number the worse the result.</para>
+            <para>The <varname>reverse_geocode</varname> function, introduced in PostGIS 2.0.0 is useful for deriving the street address and cross streets of a GPS location.</para>
+            <para>The geocoder should be simple for anyone familiar with PostGIS to install and use, and should be easily installable and usable on all platforms supported by PostGIS.</para>
+            <para>It should be robust enough to function properly despite formatting and spelling errors.</para>
+            <para>It should be extensible enough to be used with future data updates, or alternate data sources with a minimum of coding changes.</para>
+            <para>
+        <note><para>The <varname>tiger</varname> schema must be added to the database search path for the functions to work properly.</para></note>
+            </para>
+        </abstract>
      </sect1info>
-	<title>Tiger Geocoder</title>
+    <title>Tiger Geocoder</title>
      
      <para>There are a couple other open source geocoders for PostGIS, that unlike tiger geocoder have the advantage of multi-country geocoding support</para>
      <itemizedlist>
-     	<listitem><para><ulink url="http://wiki.openstreetmap.org/wiki/Nominatim">Nominatim</ulink>
+         <listitem><para><ulink url="http://wiki.openstreetmap.org/wiki/Nominatim">Nominatim</ulink>
      and uses OpenStreetMap gazeteer formatted data.  It requires osm2pgsql for loading the data, PostgreSQL 8.4+ and PostGIS 1.5+ to function.  It is packaged as a webservice interface and seems designed to be called as a webservice.
      Just like the tiger geocoder, it has both a geocoder and a reverse geocoder component.  From the documentation, it is unclear if it has a pure SQL interface like the tiger geocoder, or if a good deal of the logic is implemented in the web interface.</para></listitem>
-     	<listitem><para><ulink url="http://www.gisgraphy.com/">GIS Graphy</ulink> also utilizes PostGIS and like Nominatim works with OpenStreetMap (OSM) data.  It comes with a loader to load OSM data and similar to Nominatim is capable of geocoding not just US. Much like Nominatim, it runs as a webservice and relies on Java 1.5, Servlet apps, Solr. GisGraphy is cross-platform and also has a reverse geocoder among some other neat features.</para></listitem>
+         <listitem><para><ulink url="http://www.gisgraphy.com/">GIS Graphy</ulink> also utilizes PostGIS and like Nominatim works with OpenStreetMap (OSM) data.  It comes with a loader to load OSM data and similar to Nominatim is capable of geocoding not just US. Much like Nominatim, it runs as a webservice and relies on Java 1.5, Servlet apps, Solr. GisGraphy is cross-platform and also has a reverse geocoder among some other neat features.</para></listitem>
      </itemizedlist>
-	
+    
     <refentry id="Drop_Indexes_Generate_Script">
-	  <refnamediv>
-		<refname>Drop_Indexes_Generate_Script</refname>
+      <refnamediv>
+        <refname>Drop_Indexes_Generate_Script</refname>
 
-		<refpurpose>Generates a script that drops all non-primary key and non-unique indexes on tiger schema and user specified schema.  Defaults schema to <varname>tiger_data</varname> if no schema is specified.</refpurpose>
-	  </refnamediv>
+        <refpurpose>Generates a script that drops all non-primary key and non-unique indexes on tiger schema and user specified schema.  Defaults schema to <varname>tiger_data</varname> if no schema is specified.</refpurpose>
+      </refnamediv>
 
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef>
-				<paramdef choice="opt"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>
-			</funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef>
+                <paramdef choice="opt"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
 
-	  <refsection>
-		<title>Description</title>
+      <refsection>
+        <title>Description</title>
 
-		<para>Generates a script that drops all non-primary key and non-unique indexes on tiger schema and user specified schema.  Defaults schema to <varname>tiger_data</varname> if no schema is specified.</para>
-		<para>This is useful for minimizing index bloat that may confuse the query planner or take up unnecessary space.  Use in combination with <xref linkend="Install_Missing_Indexes"/> to add just the indexes used by the geocoder.</para>
-	
-		
-		<para>Availability: 2.0.0</para>
+        <para>Generates a script that drops all non-primary key and non-unique indexes on tiger schema and user specified schema.  Defaults schema to <varname>tiger_data</varname> if no schema is specified.</para>
+        <para>This is useful for minimizing index bloat that may confuse the query planner or take up unnecessary space.  Use in combination with <xref linkend="Install_Missing_Indexes"/> to add just the indexes used by the geocoder.</para>
+    
+        
+        <para>Availability: 2.0.0</para>
 
 
-	  </refsection>
+      </refsection>
 
 
-	  <refsection>
-		<title>Examples</title>
-		<programlisting>SELECT drop_indexes_generate_script() As actionsql;
+      <refsection>
+        <title>Examples</title>
+        <programlisting>SELECT drop_indexes_generate_script() As actionsql;
 actionsql
 ---------------------------------------------------------
 DROP INDEX tiger.idx_tiger_countysub_lookup_lower_name;
@@ -114,95 +115,95 @@ DROP INDEX tiger_data.idx_tiger_data_ma_county_snd_name;
 :
 :
 </programlisting>
-	
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Install_Missing_Indexes"/>, <xref linkend="Missing_Indexes_Generate_Script"/></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Drop_Nation_Tables_Generate_Script">
-	  <refnamediv>
-		<refname>Drop_Nation_Tables_Generate_Script</refname>
-
-		<refpurpose>Generates a script that drops all tables in the specified schema that start with <varname>county_all</varname>, <varname>state_all</varname> or stae code followed by <varname>county</varname> or <varname>state</varname>.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>text <function>Drop_Nation_Tables_Generate_Script</function></funcdef>
-				<paramdef choice="opt"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>
-			</funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Generates a script that drops all tables in the specified schema that start with <varname>county_all</varname>, <varname>state_all</varname> or stae code followed by <varname>county</varname> or <varname>state</varname>.  This is needed if you are upgrading from <varname>tiger_2010</varname> to <varname>tiger_2011</varname> data.</para>
-	
-		
-		<para>Availability: 2.1.0</para>
-
-
-	  </refsection>
-
-
-	  <refsection>
-		<title>Examples</title>
-		<programlisting>SELECT drop_nation_tables_generate_script();
+    
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Install_Missing_Indexes"/>, <xref linkend="Missing_Indexes_Generate_Script"/></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Drop_Nation_Tables_Generate_Script">
+      <refnamediv>
+        <refname>Drop_Nation_Tables_Generate_Script</refname>
+
+        <refpurpose>Generates a script that drops all tables in the specified schema that start with <varname>county_all</varname>, <varname>state_all</varname> or stae code followed by <varname>county</varname> or <varname>state</varname>.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>text <function>Drop_Nation_Tables_Generate_Script</function></funcdef>
+                <paramdef choice="opt"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Generates a script that drops all tables in the specified schema that start with <varname>county_all</varname>, <varname>state_all</varname> or stae code followed by <varname>county</varname> or <varname>state</varname>.  This is needed if you are upgrading from <varname>tiger_2010</varname> to <varname>tiger_2011</varname> data.</para>
+    
+        
+        <para>Availability: 2.1.0</para>
+
+
+      </refsection>
+
+
+      <refsection>
+        <title>Examples</title>
+        <programlisting>SELECT drop_nation_tables_generate_script();
 DROP TABLE tiger_data.county_all;
 DROP TABLE tiger_data.county_all_lookup;
 DROP TABLE tiger_data.state_all;
 DROP TABLE tiger_data.ma_county;
 DROP TABLE tiger_data.ma_state;</programlisting>
-	
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Loader_Generate_Nation_Script"/></para>
-	  </refsection>
-	</refentry>
-	
+    
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Loader_Generate_Nation_Script"/></para>
+      </refsection>
+    </refentry>
+    
     <refentry id="Drop_State_Tables_Generate_Script">
-	  <refnamediv>
-		<refname>Drop_State_Tables_Generate_Script</refname>
+      <refnamediv>
+        <refname>Drop_State_Tables_Generate_Script</refname>
 
-		<refpurpose>Generates a script that drops all tables in the specified schema that are prefixed with the state abbreviation.  Defaults schema to <varname>tiger_data</varname> if no schema is specified.</refpurpose>
-	  </refnamediv>
+        <refpurpose>Generates a script that drops all tables in the specified schema that are prefixed with the state abbreviation.  Defaults schema to <varname>tiger_data</varname> if no schema is specified.</refpurpose>
+      </refnamediv>
 
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>text <function>Drop_State_Tables_Generate_Script</function></funcdef>
-				<paramdef><type>text </type> <parameter>param_state</parameter></paramdef>
-				<paramdef choice="opt"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>
-			</funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>text <function>Drop_State_Tables_Generate_Script</function></funcdef>
+                <paramdef><type>text </type> <parameter>param_state</parameter></paramdef>
+                <paramdef choice="opt"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
 
-	  <refsection>
-		<title>Description</title>
+      <refsection>
+        <title>Description</title>
 
-		<para>Generates a script that drops all tables in the specified schema that are prefixed with the state abbreviation.  Defaults schema to <varname>tiger_data</varname> if no schema is specified.
-		This function is useful for dropping tables of a state just before you reload a state in case something went wrong during your previous load.</para>
-	
-		
-		<para>Availability: 2.0.0</para>
+        <para>Generates a script that drops all tables in the specified schema that are prefixed with the state abbreviation.  Defaults schema to <varname>tiger_data</varname> if no schema is specified.
+        This function is useful for dropping tables of a state just before you reload a state in case something went wrong during your previous load.</para>
+    
+        
+        <para>Availability: 2.0.0</para>
 
 
-	  </refsection>
+      </refsection>
 
 
-	  <refsection>
-		<title>Examples</title>
-		<programlisting>SELECT drop_state_tables_generate_script('PA');
+      <refsection>
+        <title>Examples</title>
+        <programlisting>SELECT drop_state_tables_generate_script('PA');
 DROP TABLE tiger_data.pa_addr;
 DROP TABLE tiger_data.pa_county;
 DROP TABLE tiger_data.pa_county_lookup;
@@ -215,76 +216,76 @@ DROP TABLE tiger_data.pa_state;
 DROP TABLE tiger_data.pa_zip_lookup_base;
 DROP TABLE tiger_data.pa_zip_state;
 DROP TABLE tiger_data.pa_zip_state_loc;
-		</programlisting>
-	
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Loader_Generate_Script"/></para>
-	  </refsection>
-	</refentry>
-	<refentry id="Geocode">
-	  <refnamediv>
-		<refname>Geocode</refname>
-
-		<refpurpose>Takes in an address as a string (or other normalized address) and outputs a set of possible locations which include a point geometry in NAD 83 long lat, a normalized address for each, and the rating.  The lower the rating the more likely the match.  
-			Results are sorted by lowest rating first. Can optionally pass in maximum results, defaults to 10, and restrict_region (defaults to NULL)</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>setof record <function>geocode</function></funcdef>
-			<paramdef><type>varchar </type> <parameter>address</parameter></paramdef>
-			<paramdef choice="opt"><type>integer </type> <parameter>max_results=10</parameter></paramdef>
-			<paramdef choice="opt"><type>geometry </type> <parameter>restrict_region=NULL</parameter></paramdef>
-			<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef>
-			<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></paramdef>
-			<paramdef><type>integer </type> <parameter>OUT rating</parameter></paramdef>
-		  </funcprototype>
-		  <funcprototype>
-			<funcdef>setof record <function>geocode</function></funcdef>
-			<paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>
-			<paramdef choice="opt"><type>integer </type> <parameter>max_results=10</parameter></paramdef>
-			<paramdef choice="opt"><type>geometry </type> <parameter>restrict_region=NULL</parameter></paramdef>
-			<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef>
-			<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></paramdef>
-			<paramdef><type>integer </type> <parameter>OUT rating</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Takes in an address as a string (or already normalized address) and outputs a set of possible locations which include a point geometry in NAD 83 long lat, a <varname>normalized_address</varname> (addy) for each, and the rating.  The lower the rating the more likely the match.  
-			Results are sorted by lowest rating first.  Uses Tiger data (edges,faces,addr), PostgreSQL fuzzy string matching (soundex,levenshtein) and PostGIS line interpolation functions to interpolate address along the Tiger edges. The higher the rating the less likely the geocode is right.
-			The geocoded point is defaulted to offset 10 meters from center-line off to side (L/R) of street address is located on.</para>
-
-		<para>Enhanced: 2.0.0 to support Tiger 2010 structured data and revised some logic to improve speed, accuracy of geocoding, and to offset point from centerline to side of street address is located on. New parameter max_results useful for specifying ot just return the best result.</para>
-		
-	  </refsection>
-
-
-	  <refsection>
-		<title>Examples: Basic</title>
-		<para>The below examples timings are on a 3.0 GHZ single processor Windows 7 machine with 2GB ram running PostgreSQL 9.1rc1/PostGIS 2.0 loaded with all of MA,MN,CA, RI state Tiger data loaded.</para>
-		<para>Exact matches are faster to compute (61ms)</para>
-		<programlisting>SELECT g.rating, ST_X(g.geomout) As lon, ST_Y(g.geomout) As lat, 
-	(addy).address As stno, (addy).streetname As street, 
-	(addy).streettypeabbrev As styp, (addy).location As city, (addy).stateabbrev As st,(addy).zip 
-	FROM geocode('75 State Street, Boston MA 02109') As g;  
+        </programlisting>
+    
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Loader_Generate_Script"/></para>
+      </refsection>
+    </refentry>
+    <refentry id="Geocode">
+      <refnamediv>
+        <refname>Geocode</refname>
+
+        <refpurpose>Takes in an address as a string (or other normalized address) and outputs a set of possible locations which include a point geometry in NAD 83 long lat, a normalized address for each, and the rating.  The lower the rating the more likely the match.  
+            Results are sorted by lowest rating first. Can optionally pass in maximum results, defaults to 10, and restrict_region (defaults to NULL)</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>setof record <function>geocode</function></funcdef>
+            <paramdef><type>varchar </type> <parameter>address</parameter></paramdef>
+            <paramdef choice="opt"><type>integer </type> <parameter>max_results=10</parameter></paramdef>
+            <paramdef choice="opt"><type>geometry </type> <parameter>restrict_region=NULL</parameter></paramdef>
+            <paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef>
+            <paramdef><type>geometry </type> <parameter>OUT geomout</parameter></paramdef>
+            <paramdef><type>integer </type> <parameter>OUT rating</parameter></paramdef>
+          </funcprototype>
+          <funcprototype>
+            <funcdef>setof record <function>geocode</function></funcdef>
+            <paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>
+            <paramdef choice="opt"><type>integer </type> <parameter>max_results=10</parameter></paramdef>
+            <paramdef choice="opt"><type>geometry </type> <parameter>restrict_region=NULL</parameter></paramdef>
+            <paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef>
+            <paramdef><type>geometry </type> <parameter>OUT geomout</parameter></paramdef>
+            <paramdef><type>integer </type> <parameter>OUT rating</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Takes in an address as a string (or already normalized address) and outputs a set of possible locations which include a point geometry in NAD 83 long lat, a <varname>normalized_address</varname> (addy) for each, and the rating.  The lower the rating the more likely the match.  
+            Results are sorted by lowest rating first.  Uses Tiger data (edges,faces,addr), PostgreSQL fuzzy string matching (soundex,levenshtein) and PostGIS line interpolation functions to interpolate address along the Tiger edges. The higher the rating the less likely the geocode is right.
+            The geocoded point is defaulted to offset 10 meters from center-line off to side (L/R) of street address is located on.</para>
+
+        <para>Enhanced: 2.0.0 to support Tiger 2010 structured data and revised some logic to improve speed, accuracy of geocoding, and to offset point from centerline to side of street address is located on. New parameter max_results useful for specifying ot just return the best result.</para>
+        
+      </refsection>
+
+
+      <refsection>
+        <title>Examples: Basic</title>
+        <para>The below examples timings are on a 3.0 GHZ single processor Windows 7 machine with 2GB ram running PostgreSQL 9.1rc1/PostGIS 2.0 loaded with all of MA,MN,CA, RI state Tiger data loaded.</para>
+        <para>Exact matches are faster to compute (61ms)</para>
+        <programlisting>SELECT g.rating, ST_X(g.geomout) As lon, ST_Y(g.geomout) As lat, 
+    (addy).address As stno, (addy).streetname As street, 
+    (addy).streettypeabbrev As styp, (addy).location As city, (addy).stateabbrev As st,(addy).zip 
+    FROM geocode('75 State Street, Boston MA 02109') As g;  
  rating |        lon        |       lat        | stno | street | styp |  city  | st |  zip  
 --------+-------------------+------------------+------+--------+------+--------+----+-------
       0 | -71.0556722990239 | 42.3589914927049 |   75 | State  | St   | Boston | MA | 02109
 </programlisting>
-		<para>Even if zip is not passed in the geocoder can guess (took about 122-150 ms)</para>
-		<programlisting>SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, 
-	(addy).address As stno, (addy).streetname As street, 
-	(addy).streettypeabbrev As styp, (addy).location As city, (addy).stateabbrev As st,(addy).zip 
-	FROM geocode('226 Hanover Street, Boston, MA',1) As g;  
+        <para>Even if zip is not passed in the geocoder can guess (took about 122-150 ms)</para>
+        <programlisting>SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, 
+    (addy).address As stno, (addy).streetname As street, 
+    (addy).streettypeabbrev As styp, (addy).location As city, (addy).stateabbrev As st,(addy).zip 
+    FROM geocode('226 Hanover Street, Boston, MA',1) As g;  
  rating |         wktlonlat         | stno | street  | styp |  city  | st |  zip  
 --------+---------------------------+------+---------+------+--------+----+-------
       1 | POINT(-71.05528 42.36316) |  226 | Hanover | St   | Boston | MA | 02113
@@ -292,16 +293,16 @@ DROP TABLE tiger_data.pa_zip_state_loc;
 <para>Can handle misspellings and provides more than one possible solution with ratings and takes longer (500ms).</para>
 <programlisting>SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, 
     (addy).address As stno, (addy).streetname As street, 
-	(addy).streettypeabbrev As styp, (addy).location As city, (addy).stateabbrev As st,(addy).zip 
-	FROM geocode('31 - 37 Stewart Street, Boston, MA 02116') As g; 
+    (addy).streettypeabbrev As styp, (addy).location As city, (addy).stateabbrev As st,(addy).zip 
+    FROM geocode('31 - 37 Stewart Street, Boston, MA 02116') As g; 
  rating |         wktlonlat         | stno | street | styp |  city  | st |  zip  
 --------+---------------------------+------+--------+------+--------+----+-------
      70 | POINT(-71.06459 42.35113) |   31 | Stuart | St   | Boston | MA | 02116
-	</programlisting>
+    </programlisting>
 
 <para>Using to do a batch geocode of addresses. Easiest is to set <varname>max_results=1</varname>. Only process those not yet geocoded (have no rating).</para>
 <programlisting>CREATE TABLE addresses_to_geocode(addid serial PRIMARY KEY, address text,
-		lon numeric, lat numeric, new_address text, rating integer);
+        lon numeric, lat numeric, new_address text, rating integer);
 
 INSERT INTO addresses_to_geocode(address)
 VALUES ('529 Main Street, Boston MA, 02129'),
@@ -319,14 +320,14 @@ VALUES ('529 Main Street, Boston MA, 02129'),
 -- to ensure we don't regeocode a bad address 
 UPDATE addresses_to_geocode
   SET  (rating, new_address, lon, lat) 
-	= ( COALESCE((g.geo).rating,-1), pprint_addy((g.geo).addy),
-	   ST_X((g.geo).geomout)::numeric(8,5), ST_Y((g.geo).geomout)::numeric(8,5) )
+    = ( COALESCE((g.geo).rating,-1), pprint_addy((g.geo).addy),
+       ST_X((g.geo).geomout)::numeric(8,5), ST_Y((g.geo).geomout)::numeric(8,5) )
 FROM (SELECT addid 
-	FROM addresses_to_geocode 
-	WHERE rating IS NULL ORDER BY addid LIMIT 3) As a
-	LEFT JOIN (SELECT addid, (geocode(address,1)) As geo
+    FROM addresses_to_geocode 
+    WHERE rating IS NULL ORDER BY addid LIMIT 3) As a
+    LEFT JOIN (SELECT addid, (geocode(address,1)) As geo
     FROM addresses_to_geocode As ag
-	WHERE ag.rating IS NULL ORDER BY addid LIMIT 3) As g ON a.addid = g.addid
+    WHERE ag.rating IS NULL ORDER BY addid LIMIT 3) As g ON a.addid = g.addid
 WHERE a.addid = addresses_to_geocode.addid;
 
 result
@@ -341,275 +342,274 @@ SELECT * FROM addresses_to_geocode WHERE rating is not null;
      2 | 77 Massachusetts Avenue, Cambridge, MA 02139 | -71.09428 | 42.35988 | 77 Massachusetts Ave, Cambridge, MA 02139 |      0
      3 | 25 Wizard of Oz, Walaford, KS 99912323       |           |          |                                           |     -1
 </programlisting>
-	  </refsection>
-	  <refsection>
-	      <title>Examples: Using Geometry filter</title>
-	      <programlisting>
+      </refsection>
+      <refsection>
+          <title>Examples: Using Geometry filter</title>
+          <programlisting>
 SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, 
     (addy).address As stno, (addy).streetname As street, 
-	(addy).streettypeabbrev As styp, 
-	(addy).location As city, (addy).stateabbrev As st,(addy).zip 
+    (addy).streettypeabbrev As styp, 
+    (addy).location As city, (addy).stateabbrev As st,(addy).zip 
   FROM geocode('100 Federal Street, MA',
-		3, 
-		(SELECT ST_Union(the_geom) 
-			FROM place WHERE statefp = '25' AND name = 'Lynn')::geometry
-		) As g;
+        3, 
+        (SELECT ST_Union(the_geom) 
+            FROM place WHERE statefp = '25' AND name = 'Lynn')::geometry
+        ) As g;
 
  rating |        wktlonlat         | stno | street  | styp | city | st |  zip
 --------+--------------------------+------+---------+------+------+----+-------
       8 | POINT(-70.96796 42.4659) |  100 | Federal | St   | Lynn | MA | 01905
 Total query runtime: 245 ms.
-	      </programlisting>
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Normalize_Address" />, <xref linkend="Pprint_Addy" />, <xref linkend="ST_AsText"/>, <xref linkend="ST_SnapToGrid"/>, <xref linkend="ST_X"/>, <xref linkend="ST_Y"/></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Geocode_Intersection">
-	  <refnamediv>
-		<refname>Geocode_Intersection</refname>
-
-		<refpurpose>Takes in 2 streets that intersect and a state, city, zip,  and outputs a set of possible locations on the first cross street that is at the intersection, also includes a point geometry in NAD 83 long lat, a normalized address for each location, and the rating.  The lower the rating the more likely the match.  
-			Results are sorted by lowest rating first. Can optionally pass in maximum results, defaults to 10</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>setof record <function>geocode_intersection</function></funcdef>
-			<paramdef><type>text </type> <parameter> roadway1</parameter></paramdef>
-			<paramdef><type>text </type> <parameter> roadway2</parameter></paramdef>
-			<paramdef><type>text </type> <parameter> in_state</parameter></paramdef>
-			<paramdef choice="opt"><type>text </type> <parameter> in_city</parameter></paramdef>
-			<paramdef choice="opt"><type>text </type> <parameter> in_zip</parameter></paramdef>
-			<paramdef choice="opt"><type>integer </type> <parameter>max_results=10</parameter></paramdef>
-			<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef>
-			<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></paramdef>
-			<paramdef><type>integer </type> <parameter>OUT rating</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Takes in 2 streets that intersect and a state, city, zip,  and outputs a set of possible locations on the first cross street that is at the intersection, also includes a point geometry in NAD 83 long lat, a normalized address for each location, and the rating.  The lower the rating the more likely the match.  
-			Results are sorted by lowest rating first. Can optionally pass in maximum results, defaults to 10.
-			Returns <varname>normalized_address</varname> (addy) for each, geomout as the point location in nad 83 long lat, and the rating.  The lower the rating the more likely the match.  
-			Results are sorted by lowest rating first.  Uses Tiger data (edges,faces,addr), PostgreSQL fuzzy string matching (soundex,levenshtein) </para>
-
-		<para>Availability: 2.0.0</para>
-		
-	  </refsection>
-
-
-	  <refsection>
-		<title>Examples: Basic</title>
-		<para>The below examples timings are on a 3.0 GHZ single processor Windows 7 machine with 2GB ram running PostgreSQL 9.0/PostGIS 1.5 loaded with all of MA state Tiger data loaded. Currently a bit slow (3000 ms)</para>
-		<para>Testing on Windows 2003 64-bit 8GB on PostGIS 2.0 PostgreSQL 64-bit Tiger 2011 data loaded -- (41ms)</para>
-		<programlisting>SELECT pprint_addy(addy), st_astext(geomout),rating 
-			FROM geocode_intersection( 'Haverford St','Germania St', 'MA', 'Boston', '02130',1); 
+          </programlisting>
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Normalize_Address" />, <xref linkend="Pprint_Addy" />, <xref linkend="ST_AsText"/>, <xref linkend="ST_SnapToGrid"/>, <xref linkend="ST_X"/>, <xref linkend="ST_Y"/></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Geocode_Intersection">
+      <refnamediv>
+        <refname>Geocode_Intersection</refname>
+
+        <refpurpose>Takes in 2 streets that intersect and a state, city, zip,  and outputs a set of possible locations on the first cross street that is at the intersection, also includes a point geometry in NAD 83 long lat, a normalized address for each location, and the rating.  The lower the rating the more likely the match.  
+            Results are sorted by lowest rating first. Can optionally pass in maximum results, defaults to 10</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>setof record <function>geocode_intersection</function></funcdef>
+            <paramdef><type>text </type> <parameter> roadway1</parameter></paramdef>
+            <paramdef><type>text </type> <parameter> roadway2</parameter></paramdef>
+            <paramdef><type>text </type> <parameter> in_state</parameter></paramdef>
+            <paramdef choice="opt"><type>text </type> <parameter> in_city</parameter></paramdef>
+            <paramdef choice="opt"><type>text </type> <parameter> in_zip</parameter></paramdef>
+            <paramdef choice="opt"><type>integer </type> <parameter>max_results=10</parameter></paramdef>
+            <paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef>
+            <paramdef><type>geometry </type> <parameter>OUT geomout</parameter></paramdef>
+            <paramdef><type>integer </type> <parameter>OUT rating</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Takes in 2 streets that intersect and a state, city, zip,  and outputs a set of possible locations on the first cross street that is at the intersection, also includes a point geometry in NAD 83 long lat, a normalized address for each location, and the rating.  The lower the rating the more likely the match.  
+            Results are sorted by lowest rating first. Can optionally pass in maximum results, defaults to 10.
+            Returns <varname>normalized_address</varname> (addy) for each, geomout as the point location in nad 83 long lat, and the rating.  The lower the rating the more likely the match.  
+            Results are sorted by lowest rating first.  Uses Tiger data (edges,faces,addr), PostgreSQL fuzzy string matching (soundex,levenshtein) </para>
+
+        <para>Availability: 2.0.0</para>
+        
+      </refsection>
+
+
+      <refsection>
+        <title>Examples: Basic</title>
+        <para>The below examples timings are on a 3.0 GHZ single processor Windows 7 machine with 2GB ram running PostgreSQL 9.0/PostGIS 1.5 loaded with all of MA state Tiger data loaded. Currently a bit slow (3000 ms)</para>
+        <para>Testing on Windows 2003 64-bit 8GB on PostGIS 2.0 PostgreSQL 64-bit Tiger 2011 data loaded -- (41ms)</para>
+        <programlisting>SELECT pprint_addy(addy), st_astext(geomout),rating 
+            FROM geocode_intersection( 'Haverford St','Germania St', 'MA', 'Boston', '02130',1); 
            pprint_addy            |         st_astext          | rating
 ----------------------------------+----------------------------+--------
 98 Haverford St, Boston, MA 02130 | POINT(-71.101375 42.31376) |      0
 </programlisting>
-		<para>Even if zip is not passed in the geocoder can guess (took about 3500 ms on the windows 7 box), on the windows 2003 64-bit 741 ms</para>
-		<programlisting>SELECT pprint_addy(addy), st_astext(geomout),rating 
-				FROM geocode_intersection('Weld', 'School', 'MA', 'Boston');
+        <para>Even if zip is not passed in the geocoder can guess (took about 3500 ms on the windows 7 box), on the windows 2003 64-bit 741 ms</para>
+        <programlisting>SELECT pprint_addy(addy), st_astext(geomout),rating 
+                FROM geocode_intersection('Weld', 'School', 'MA', 'Boston');
           pprint_addy          |        st_astext         | rating
 -------------------------------+--------------------------+--------
  98 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3
  99 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3
 </programlisting>     
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Geocode" />, <xref linkend="Pprint_Addy" />, <xref linkend="ST_AsText"/></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Get_Geocode_Setting">
-	  <refnamediv>
-		<refname>Get_Geocode_Setting</refname>
-
-		<refpurpose>Returns value of specific setting stored in tiger.geocode_settings table.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>text <function>Get_Geocode_Setting</function></funcdef>
-			<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Returns value of specific setting stored in tiger.geocode_settings table.  Settings allow you to toggle debugging of functions.  Later plans will be to control rating with settings. Current list of settings are as follows:</para>
-		<screen>              name              | setting |  unit   | category  |                                                             short_desc
---------------------------------+---------+---------+-----------+------------------------------------------------------------------------------------------------------
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Geocode" />, <xref linkend="Pprint_Addy" />, <xref linkend="ST_AsText"/></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Get_Geocode_Setting">
+      <refnamediv>
+        <refname>Get_Geocode_Setting</refname>
+
+        <refpurpose>Returns value of specific setting stored in tiger.geocode_settings table.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>text <function>Get_Geocode_Setting</function></funcdef>
+            <paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Returns value of specific setting stored in tiger.geocode_settings table.  Settings allow you to toggle debugging of functions.  Later plans will be to control rating with settings. Current list of settings are as follows:</para>
+        <screen>              name              | setting |  unit   | category  |                                                             short_desc
+--------------------------------+---------+---------+-----------+------------------------------------------------------------------------------------------------------------------------------
  debug_geocode_address          | false   | boolean | debug     | outputs debug information in notice log such as queries when geocode_addresss is called if true
  debug_geocode_intersection     | false   | boolean | debug     | outputs debug information in notice log such as queries when geocode_intersection is called if true
- debug_normalize_address        | false   | boolean | debug     | outputs debug information in notice log such as queries 
-                                |         |         |           |   and intermediate expressions when normalize_address is called if true
- debug_reverse_geocode          | false   | boolean | debug     | if true, outputs debug information in notice log such as queries 
-                                                                |  and intermediate expressions when reverse_geocode
- reverse_geocode_numbered_roads | 0       | integer | rating    | For state and county highways, 0 - no preference in name
-                                |         |         |           |  , 1 - prefer the numbered highway name, 2 - prefer local state/county name
- use_pagc_address_parser        | false   | boolean | normalize | If set to true, will try to use the pagc_address normalizer instead of tiger built one	
-</screen>
-
-		<para>Availability: 2.1.0</para>
-		
-	  </refsection>
-
-
-	  <refsection>
-		<title>Example return debugging setting</title>
-		<programlisting>SELECT get_geocode_setting('debug_geocode_address) As result;
+ debug_normalize_address        | false   | boolean | debug     | outputs debug information in notice log such as queries and intermediate expressions when normalize_address is called if true
+ debug_reverse_geocode          | false   | boolean | debug     | if true, outputs debug information in notice log such as queries and intermediate expressions when reverse_geocode
+ reverse_geocode_numbered_roads | 0       | integer | rating    | For state and county highways, 0 - no preference in name, 
+                                                                  1 - prefer the numbered highway name, 2 - prefer local state/county name
+ use_pagc_address_parser        | false   | boolean | normalize | If set to true, will try to use the address_standardizer extension (via pagc_normalize_address) 
+                                                                 instead of tiger normalize_address built one    </screen>
+
+        <para>Changed: 2.2.0 : default settings are now kept in a table called geocode_settings_default. Use customized settingsa re in geocode_settings and only contain those that have been set by user.</para>
+        <para>Availability: 2.1.0</para>
+        
+      </refsection>
+
+
+      <refsection>
+        <title>Example return debugging setting</title>
+        <programlisting>SELECT get_geocode_setting('debug_geocode_address) As result;
 result
 ---------
 false
-		</programlisting>	
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Set_Geocode_Setting" /></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Get_Tract">
-	  <refnamediv>
-		<refname>Get_Tract</refname>
-
-		<refpurpose>Returns census tract or field from tract table of where the geometry is located. Default to returning short name of tract.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>text <function>get_tract</function></funcdef>
-			<paramdef><type>geometry </type> <parameter> loc_geom</parameter></paramdef>
-			<paramdef choice="opt"><type>text </type> <parameter> output_field=name</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Given a geometry will return the census tract location of that geometry. NAD 83 long lat is assumed if no spatial ref sys is specified.</para>
-
-		<para>Availability: 2.0.0</para>
-		
-	  </refsection>
-
-
-	  <refsection>
-		<title>Examples: Basic</title>
-		<programlisting>SELECT get_tract(ST_Point(-71.101375, 42.31376) ) As tract_name;
+        </programlisting>    
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Set_Geocode_Setting" /></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Get_Tract">
+      <refnamediv>
+        <refname>Get_Tract</refname>
+
+        <refpurpose>Returns census tract or field from tract table of where the geometry is located. Default to returning short name of tract.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>text <function>get_tract</function></funcdef>
+            <paramdef><type>geometry </type> <parameter> loc_geom</parameter></paramdef>
+            <paramdef choice="opt"><type>text </type> <parameter> output_field=name</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Given a geometry will return the census tract location of that geometry. NAD 83 long lat is assumed if no spatial ref sys is specified.</para>
+
+        <para>Availability: 2.0.0</para>
+        
+      </refsection>
+
+
+      <refsection>
+        <title>Examples: Basic</title>
+        <programlisting>SELECT get_tract(ST_Point(-71.101375, 42.31376) ) As tract_name;
 tract_name
 ---------
 1203.01
-		</programlisting>
-		<programlisting>--this one returns the tiger geoid
+        </programlisting>
+        <programlisting>--this one returns the tiger geoid
 SELECT get_tract(ST_Point(-71.101375, 42.31376), 'tract_id' ) As tract_id;
 tract_id
 ---------
-25025120301</programlisting>		
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Geocode" />></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Install_Missing_Indexes">
-	  <refnamediv>
-		<refname>Install_Missing_Indexes</refname>
-
-		<refpurpose>Finds all tables with key columns used in geocoder joins and filter conditions that are missing used indexes on those columns and will add them.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>boolean <function>Install_Missing_Indexes</function></funcdef>
-			<paramdef></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Finds all tables in <varname>tiger</varname> and <varname>tiger_data</varname> schemas with key columns used in geocoder joins and filters that are missing indexes on those columns and will output the SQL DDL to
-		    define the index for those tables and then execute the generated script. This is a helper function that adds new indexes needed to make queries faster that may have been missing during the load process.
-		   This function is a companion to <xref linkend="Missing_Indexes_Generate_Script" /> that in addition to generating the create index script, also executes it.
-		   It is called as part of the <filename>update_geocode.sql</filename> upgrade script.</para>
-	
-		
-		<para>Availability: 2.0.0</para>
-
-
-	  </refsection>
-
-
-	  <refsection>
-		<title>Examples</title>
-		<programlisting>SELECT install_missing_indexes();
-		 install_missing_indexes
+25025120301</programlisting>        
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Geocode" />></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Install_Missing_Indexes">
+      <refnamediv>
+        <refname>Install_Missing_Indexes</refname>
+
+        <refpurpose>Finds all tables with key columns used in geocoder joins and filter conditions that are missing used indexes on those columns and will add them.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>boolean <function>Install_Missing_Indexes</function></funcdef>
+            <paramdef></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Finds all tables in <varname>tiger</varname> and <varname>tiger_data</varname> schemas with key columns used in geocoder joins and filters that are missing indexes on those columns and will output the SQL DDL to
+            define the index for those tables and then execute the generated script. This is a helper function that adds new indexes needed to make queries faster that may have been missing during the load process.
+           This function is a companion to <xref linkend="Missing_Indexes_Generate_Script" /> that in addition to generating the create index script, also executes it.
+           It is called as part of the <filename>update_geocode.sql</filename> upgrade script.</para>
+    
+        
+        <para>Availability: 2.0.0</para>
+
+
+      </refsection>
+
+
+      <refsection>
+        <title>Examples</title>
+        <programlisting>SELECT install_missing_indexes();
+         install_missing_indexes
 -------------------------
  t
-		</programlisting>
-	
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Loader_Generate_Script"/>, <xref linkend="Missing_Indexes_Generate_Script"/></para>
-	  </refsection>
-	</refentry>
-
-	<refentry id="Loader_Generate_Census_Script">
-	  <refnamediv>
-		<refname>Loader_Generate_Census_Script</refname>
-
-		<refpurpose>Generates a shell script for the specified platform for the specified states that will download Tiger census state tract, bg, and tabblocks data tables, stage and load into <varname>tiger_data</varname> schema. Each state script is returned as a separate record.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>setof text <function>loader_generate_census_script</function></funcdef>
-			<paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef>
-			<paramdef><type>text</type> <parameter>os</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Generates a shell script for the specified platform for the specified states that will download Tiger data census state <varname>tract</varname>, block groups <varname>bg</varname>, and <varname>tabblocks</varname> data tables, stage and load into <varname>tiger_data</varname> schema.  Each state script is returned as a separate record.</para>
-		<para>It uses unzip on Linux (7-zip on Windows by default) and wget to do the downloading. It uses <xref linkend="shp2pgsql_usage" /> to load in the data. Note the smallest unit it does is a whole state.  It will only
-		process the files in the staging and temp folders.</para>
-		<para>It uses the following control tables to control the process and different OS shell syntax variations.</para>
-
-		<orderedlist>
+        </programlisting>
+    
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Loader_Generate_Script"/>, <xref linkend="Missing_Indexes_Generate_Script"/></para>
+      </refsection>
+    </refentry>
+
+    <refentry id="Loader_Generate_Census_Script">
+      <refnamediv>
+        <refname>Loader_Generate_Census_Script</refname>
+
+        <refpurpose>Generates a shell script for the specified platform for the specified states that will download Tiger census state tract, bg, and tabblocks data tables, stage and load into <varname>tiger_data</varname> schema. Each state script is returned as a separate record.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>setof text <function>loader_generate_census_script</function></funcdef>
+            <paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef>
+            <paramdef><type>text</type> <parameter>os</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Generates a shell script for the specified platform for the specified states that will download Tiger data census state <varname>tract</varname>, block groups <varname>bg</varname>, and <varname>tabblocks</varname> data tables, stage and load into <varname>tiger_data</varname> schema.  Each state script is returned as a separate record.</para>
+        <para>It uses unzip on Linux (7-zip on Windows by default) and wget to do the downloading. It uses <xref linkend="shp2pgsql_usage" /> to load in the data. Note the smallest unit it does is a whole state.  It will only
+        process the files in the staging and temp folders.</para>
+        <para>It uses the following control tables to control the process and different OS shell syntax variations.</para>
+
+        <orderedlist>
           <listitem>
             <para><varname>loader_variables</varname> keeps track of various variables such as census site, year, data and staging schemas</para>
           </listitem>
@@ -620,16 +620,16 @@ tract_id
             <para><varname>loader_lookuptables</varname> each record defines a kind of table (state, county), whether to process records in it and how to load them in.  Defines the steps to import data, stage data, add, removes columns, indexes, and constraints for each.  Each table is prefixed with the state and inherits from a table in the tiger schema. e.g. creates <varname>tiger_data.ma_faces</varname> which inherits from <varname>tiger.faces</varname></para>
           </listitem>
         </orderedlist> 
-		<para>Availability: 2.0.0 </para>
-		<note><para><xref linkend="Loader_Generate_Script" /> includes this logic, but if you installed tiger geocoder prior to PostGIS 2.0.0 alpha5, you'll need to run this on the states you have already done
-			to get these additional tables.</para></note>
-	  </refsection>
+        <para>Availability: 2.0.0 </para>
+        <note><para><xref linkend="Loader_Generate_Script" /> includes this logic, but if you installed tiger geocoder prior to PostGIS 2.0.0 alpha5, you'll need to run this on the states you have already done
+            to get these additional tables.</para></note>
+      </refsection>
 
 
-	  <refsection>
-		<title>Examples</title>
-		<para>Generate script to load up data for select states in Windows shell script format.</para>
-		<programlisting>SELECT loader_generate_census_script(ARRAY['MA'], 'windows');
+      <refsection>
+        <title>Examples</title>
+        <para>Generate script to load up data for select states in Windows shell script format.</para>
+        <programlisting>SELECT loader_generate_census_script(ARRAY['MA'], 'windows');
 -- result --
 set STATEDIR="\gisdata\www2.census.gov\geo\pvs\tiger2010st\25_Massachusetts"
 set TMPDIR=\gisdata\temp\
@@ -651,7 +651,7 @@ del %TMPDIR%\*.* /Q
 %PSQL% -c "CREATE SCHEMA tiger_staging;"
 cd %STATEDIR%
 for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% 
-cd %TMPDIR%	
+cd %TMPDIR%    
 %PSQL% -c "CREATE TABLE tiger_data.MA_tract(CONSTRAINT pk_MA_tract PRIMARY KEY (tract_id) ) INHERITS(tiger.tract); " 
 %SHP2PGSQL% -c -s 4269 -g the_geom   -W "latin1" tl_2010_25_tract10.dbf tiger_staging.ma_tract10 | %PSQL%
 %PSQL% -c "ALTER TABLE tiger_staging.MA_tract10 RENAME geoid10 TO tract_id;  SELECT loader_load_staged_data(lower('MA_tract10'), lower('MA_tract')); "
@@ -683,41 +683,41 @@ for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
 :
 : </programlisting>
 
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Loader_Generate_Script" /></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Loader_Generate_Script">
-	  <refnamediv>
-		<refname>Loader_Generate_Script</refname>
-
-		<refpurpose>Generates a shell script for the specified platform for the specified states that will download Tiger data, stage and load into <varname>tiger_data</varname> schema. Each state script is returned as a separate record. Latest version supports Tiger 2010 structural changes and also loads census tract, block groups, and blocks tables.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>setof text <function>loader_generate_script</function></funcdef>
-			<paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef>
-			<paramdef><type>text</type> <parameter>os</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Generates a shell script for the specified platform for the specified states that will download Tiger data, stage and load into <varname>tiger_data</varname> schema.  Each state script is returned as a separate record.</para>
-		<para>It uses unzip on Linux (7-zip on Windows by default) and wget to do the downloading. It uses <xref linkend="shp2pgsql_usage" /> to load in the data. Note the smallest unit it does is a whole state, but you can overwrite this by downloading the files yourself.  It will only
-		process the files in the staging and temp folders.</para>
-		<para>It uses the following control tables to control the process and different OS shell syntax variations.</para>
-
-		<orderedlist>
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Loader_Generate_Script" /></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Loader_Generate_Script">
+      <refnamediv>
+        <refname>Loader_Generate_Script</refname>
+
+        <refpurpose>Generates a shell script for the specified platform for the specified states that will download Tiger data, stage and load into <varname>tiger_data</varname> schema. Each state script is returned as a separate record. Latest version supports Tiger 2010 structural changes and also loads census tract, block groups, and blocks tables.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>setof text <function>loader_generate_script</function></funcdef>
+            <paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef>
+            <paramdef><type>text</type> <parameter>os</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Generates a shell script for the specified platform for the specified states that will download Tiger data, stage and load into <varname>tiger_data</varname> schema.  Each state script is returned as a separate record.</para>
+        <para>It uses unzip on Linux (7-zip on Windows by default) and wget to do the downloading. It uses <xref linkend="shp2pgsql_usage" /> to load in the data. Note the smallest unit it does is a whole state, but you can overwrite this by downloading the files yourself.  It will only
+        process the files in the staging and temp folders.</para>
+        <para>It uses the following control tables to control the process and different OS shell syntax variations.</para>
+
+        <orderedlist>
           <listitem>
             <para><varname>loader_variables</varname> keeps track of various variables such as census site, year, data and staging schemas</para>
           </listitem>
@@ -728,16 +728,16 @@ for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
             <para><varname>loader_lookuptables</varname> each record defines a kind of table (state, county), whether to process records in it and how to load them in.  Defines the steps to import data, stage data, add, removes columns, indexes, and constraints for each.  Each table is prefixed with the state and inherits from a table in the tiger schema. e.g. creates <varname>tiger_data.ma_faces</varname> which inherits from <varname>tiger.faces</varname></para>
           </listitem>
         </orderedlist> 
-		<para>Availability: 2.0.0 to support Tiger 2010 structured data and load census tract (tract), block groups (bg), and blocks (tabblocks) tables .</para>
+        <para>Availability: 2.0.0 to support Tiger 2010 structured data and load census tract (tract), block groups (bg), and blocks (tabblocks) tables .</para>
 
 
-	  </refsection>
+      </refsection>
 
 
-	  <refsection>
-		<title>Examples</title>
-		<para>Generate script to load up data for 2 states in Windows shell script format.</para>
-		<programlisting>SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;
+      <refsection>
+        <title>Examples</title>
+        <para>Generate script to load up data for 2 states in Windows shell script format.</para>
+        <programlisting>SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;
 -- result --
 set STATEDIR="\gisdata\www2.census.gov\geo\pvs\tiger2010st\44_Rhode_Island"
 set TMPDIR=\gisdata\temp\
@@ -755,8 +755,8 @@ set SHP2PGSQL="%PGBIN%shp2pgsql"
 %WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-parent --relative --recursive --level=2 --accept=zip,txt --mirror --reject=html
 :
 :</programlisting>
-		<para>Generate sh script</para>
-		<programlisting>SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;
+        <para>Generate sh script</para>
+        <programlisting>SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;
 -- result --
 STATEDIR="/gisdata/www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island" 
 TMPDIR="/gisdata/temp/"
@@ -773,39 +773,39 @@ wget http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-parent --r
 :
 :</programlisting>
 
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Loader_Generate_Nation_Script">
-	  <refnamediv>
-		<refname>Loader_Generate_Nation_Script</refname>
-
-		<refpurpose>Generates a shell script for the specified platform that loads in the county and state lookup tables.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>text <function>loader_generate_nation_script</function></funcdef>
-			<paramdef><type>text</type> <parameter>os</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Generates a shell script for the specified platform that loads in the <varname>county_all</varname>, <varname>county_all_lookup</varname>, <varname>state_all</varname> tables into <varname>tiger_data</varname> schema.  These inherit respectively from the <varname>county</varname>, <varname>county_lookup</varname>, <varname>state</varname> tables in <varname>tiger</varname> schema.</para>
-		<para>It uses unzip on Linux (7-zip on Windows by default) and wget to do the downloading. It uses <xref linkend="shp2pgsql_usage" /> to load in the data. </para>
-		<para>It uses the following control tables <varname>tiger.loader_platform</varname>, <varname>tiger.loader_variables</varname>, and <varname>tiger.loader_lookuptables</varname> to control the process and different OS shell syntax variations.</para>
-
-		<orderedlist>
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Loader_Generate_Nation_Script">
+      <refnamediv>
+        <refname>Loader_Generate_Nation_Script</refname>
+
+        <refpurpose>Generates a shell script for the specified platform that loads in the county and state lookup tables.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>text <function>loader_generate_nation_script</function></funcdef>
+            <paramdef><type>text</type> <parameter>os</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Generates a shell script for the specified platform that loads in the <varname>county_all</varname>, <varname>county_all_lookup</varname>, <varname>state_all</varname> tables into <varname>tiger_data</varname> schema.  These inherit respectively from the <varname>county</varname>, <varname>county_lookup</varname>, <varname>state</varname> tables in <varname>tiger</varname> schema.</para>
+        <para>It uses unzip on Linux (7-zip on Windows by default) and wget to do the downloading. It uses <xref linkend="shp2pgsql_usage" /> to load in the data. </para>
+        <para>It uses the following control tables <varname>tiger.loader_platform</varname>, <varname>tiger.loader_variables</varname>, and <varname>tiger.loader_lookuptables</varname> to control the process and different OS shell syntax variations.</para>
+
+        <orderedlist>
           <listitem>
             <para><varname>loader_variables</varname> keeps track of various variables such as census site, year, data and staging schemas</para>
           </listitem>
@@ -816,61 +816,61 @@ wget http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-parent --r
             <para><varname>loader_lookuptables</varname> each record defines a kind of table (state, county), whether to process records in it and how to load them in.  Defines the steps to import data, stage data, add, removes columns, indexes, and constraints for each.  Each table is prefixed with the state and inherits from a table in the tiger schema. e.g. creates <varname>tiger_data.ma_faces</varname> which inherits from <varname>tiger.faces</varname></para>
           </listitem>
         </orderedlist> 
-		<para>Availability: 2.1.0 </para>
-		<note><para>If you were running <varname>tiger_2010</varname> version and you want to reload as state with <varname>tiger_2011</varname>, you'll need to for the very first load generate and run drop statements <xref linkend="Drop_Nation_Tables_Generate_Script" /> before you run this script.</para></note>
-	  </refsection>
-
-
-	  <refsection>
-		<title>Examples</title>
-		<para>Generate script script to load nation data Windows.</para>
-		<programlisting>SELECT loader_generate_nation_script('windows'); </programlisting>
-		<para>Generate script to load up data for Linux/Unix systems.</para>
-		<programlisting>SELECT loader_generate_nation_script('sh'); </programlisting>
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Loader_Generate_Script" /></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Missing_Indexes_Generate_Script">
-	  <refnamediv>
-		<refname>Missing_Indexes_Generate_Script</refname>
-
-		<refpurpose>Finds all tables with key columns used in geocoder joins that are missing indexes on those columns and will output the SQL DDL to
-		    define the index for those tables.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef>
-			<paramdef></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Finds all tables in <varname>tiger</varname> and <varname>tiger_data</varname> schemas with key columns used in geocoder joins that are missing indexes on those columns and will output the SQL DDL to
-		    define the index for those tables. This is a helper function that adds new indexes needed to make queries faster that may have been missing during the load process.
-		    As the geocoder is improved, this function will be updated to accommodate new indexes being used. If this function outputs nothing, it means
-		    all your tables have what we think are the key indexes already in place.</para>
-	
-		
-		<para>Availability: 2.0.0</para>
-
-
-	  </refsection>
-
-
-	  <refsection>
-		<title>Examples</title>
-		<programlisting>SELECT missing_indexes_generate_script();
+        <para>Availability: 2.1.0 </para>
+        <note><para>If you were running <varname>tiger_2010</varname> version and you want to reload as state with <varname>tiger_2011</varname>, you'll need to for the very first load generate and run drop statements <xref linkend="Drop_Nation_Tables_Generate_Script" /> before you run this script.</para></note>
+      </refsection>
+
+
+      <refsection>
+        <title>Examples</title>
+        <para>Generate script script to load nation data Windows.</para>
+        <programlisting>SELECT loader_generate_nation_script('windows'); </programlisting>
+        <para>Generate script to load up data for Linux/Unix systems.</para>
+        <programlisting>SELECT loader_generate_nation_script('sh'); </programlisting>
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Loader_Generate_Script" /></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Missing_Indexes_Generate_Script">
+      <refnamediv>
+        <refname>Missing_Indexes_Generate_Script</refname>
+
+        <refpurpose>Finds all tables with key columns used in geocoder joins that are missing indexes on those columns and will output the SQL DDL to
+            define the index for those tables.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef>
+            <paramdef></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Finds all tables in <varname>tiger</varname> and <varname>tiger_data</varname> schemas with key columns used in geocoder joins that are missing indexes on those columns and will output the SQL DDL to
+            define the index for those tables. This is a helper function that adds new indexes needed to make queries faster that may have been missing during the load process.
+            As the geocoder is improved, this function will be updated to accommodate new indexes being used. If this function outputs nothing, it means
+            all your tables have what we think are the key indexes already in place.</para>
+    
+        
+        <para>Availability: 2.0.0</para>
+
+
+      </refsection>
+
+
+      <refsection>
+        <title>Examples</title>
+        <programlisting>SELECT missing_indexes_generate_script();
 -- output: This was run on a database that was created before many corrections were made to the loading script ---
 CREATE INDEX idx_tiger_county_countyfp ON tiger.county USING btree(countyfp);
 CREATE INDEX idx_tiger_cousub_countyfp ON tiger.cousub USING btree(countyfp);
@@ -881,44 +881,44 @@ CREATE INDEX idx_tiger_data_ma_county_countyfp ON tiger_data.ma_county USING btr
 CREATE INDEX idx_tiger_data_ma_cousub_countyfp ON tiger_data.ma_cousub USING btree(countyfp);
 CREATE INDEX idx_tiger_data_ma_edges_countyfp ON tiger_data.ma_edges USING btree(countyfp);
 CREATE INDEX idx_tiger_data_ma_faces_countyfp ON tiger_data.ma_faces USING btree(countyfp);
-		</programlisting>
-	
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Loader_Generate_Script"/>, <xref linkend="Install_Missing_Indexes" /></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Normalize_Address">
-	  <refnamediv>
-		<refname>Normalize_Address</refname>
-
-		<refpurpose>Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields.  This function 
-		will work with just the lookup data packaged with the tiger_geocoder (no need for tiger census data).</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>norm_addy <function>normalize_address</function></funcdef>
-			<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields.  This is the first step in the geocoding process to 
-		    get all addresses into normalized postal form. No other data is required aside from what is packaged with the geocoder.</para>
-		<para>This function just uses the various direction/state/suffix lookup tables preloaded with the tiger_geocoder and located in the <varname>tiger</varname> schema, so it doesn't need you to download tiger census data or any other additional data to make use of it.
-		 You may find the need to add more abbreviations or alternative namings to the various lookup tables in the  <varname>tiger</varname> schema.</para>
-		<para>It uses various control lookup tables located in <varname>tiger</varname> schema to normalize the input address.</para>
-		<para>Fields in the <varname>norm_addy</varname> type object returned by this function in this order where  () indicates a field required by the geocoder, [] indicates an optional field:</para>
-		<para>(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] [internal] [location] [stateAbbrev] [zip]</para>
+        </programlisting>
+    
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Loader_Generate_Script"/>, <xref linkend="Install_Missing_Indexes" /></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Normalize_Address">
+      <refnamediv>
+        <refname>Normalize_Address</refname>
+
+        <refpurpose>Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields.  This function 
+        will work with just the lookup data packaged with the tiger_geocoder (no need for tiger census data).</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>norm_addy <function>normalize_address</function></funcdef>
+            <paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields.  This is the first step in the geocoding process to 
+            get all addresses into normalized postal form. No other data is required aside from what is packaged with the geocoder.</para>
+        <para>This function just uses the various direction/state/suffix lookup tables preloaded with the tiger_geocoder and located in the <varname>tiger</varname> schema, so it doesn't need you to download tiger census data or any other additional data to make use of it.
+         You may find the need to add more abbreviations or alternative namings to the various lookup tables in the  <varname>tiger</varname> schema.</para>
+        <para>It uses various control lookup tables located in <varname>tiger</varname> schema to normalize the input address.</para>
+        <para>Fields in the <varname>norm_addy</varname> type object returned by this function in this order where  () indicates a field required by the geocoder, [] indicates an optional field:</para>
+        <para>(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] [internal] [location] [stateAbbrev] [zip]</para>
          <orderedlist>
           <listitem>
             <para><varname>address</varname> is an integer:  The street number</para>
@@ -952,13 +952,13 @@ CREATE INDEX idx_tiger_data_ma_faces_countyfp ON tiger_data.ma_faces USING btree
           </listitem>
         </orderedlist>
 
-	  </refsection>
+      </refsection>
 
 
-	  <refsection>
-		<title>Examples</title>
-		<para>Output select fields.  Use <xref linkend="Pprint_Addy" /> if you want a pretty textual output.</para>
-		<programlisting>SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev
+      <refsection>
+        <title>Examples</title>
+        <para>Output select fields.  Use <xref linkend="Pprint_Addy" /> if you want a pretty textual output.</para>
+        <programlisting>SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev
  FROM (SELECT address, normalize_address(address) As na
         FROM addresses_to_geocode) As g;
         
@@ -970,51 +970,52 @@ CREATE INDEX idx_tiger_data_ma_faces_countyfp ON tiger_data.ma_faces USING btree
  529 Main Street, Boston MA, 02129                   | Main          | St
  77 Massachusetts Avenue, Cambridge, MA 02139        | Massachusetts | Ave
  25 Wizard of Oz, Walaford, KS 99912323              | Wizard of Oz  | 
-		</programlisting>
-		
-		
-
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Geocode"/>, <xref linkend="Pprint_Addy"/></para>
-	  </refsection>
-	</refentry>
-	
-		<refentry id="Pagc_Normalize_Address">
-	  <refnamediv>
-		<refname>Pagc_Normalize_Address</refname>
-
-		<refpurpose>Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields.  This function 
-		will work with just the lookup data packaged with the tiger_geocoder (no need for tiger census data). Requires address_standardizer extension.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>norm_addy <function>pagc_normalize_address</function></funcdef>
-			<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields.  This is the first step in the geocoding process to 
-		    get all addresses into normalized postal form. No other data is required aside from what is packaged with the geocoder.</para>
-		<para>This function just uses the various pagc_* lookup tables preloaded with the tiger_geocoder and located in the <varname>tiger</varname> schema, so it doesn't need you to download tiger census data or any other additional data to make use of it.
-		 You may find the need to add more abbreviations or alternative namings to the various lookup tables in the  <varname>tiger</varname> schema.</para>
-		<para>It uses various control lookup tables located in <varname>tiger</varname> schema to normalize the input address.</para>
-		<para>Fields in the <varname>norm_addy</varname> type object returned by this function in this order where  () indicates a field required by the geocoder, [] indicates an optional field:</para>
-		<para>This version uses the PAGC address standardizer C extension which you can download. There are slight variations in casing and formatting and also provides a richer breakout.</para>
-		<para>Availability: 2.1.0</para>
-		<para>(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] [internal] [location] [stateAbbrev] [zip]</para>
-		<para>The native standardaddr of address_standardizer extension is at this time a bit richer than norm_addy since its designed to support international addresses (including country).  standardaddr equivalent fields are:</para>
-		<para>house_num,predir, name, suftype, sufdir, unit, city, state, postcode</para>
-		
+        </programlisting>
+        
+        
+
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Geocode"/>, <xref linkend="Pprint_Addy"/></para>
+      </refsection>
+    </refentry>
+    
+        <refentry id="Pagc_Normalize_Address">
+      <refnamediv>
+        <refname>Pagc_Normalize_Address</refname>
+
+        <refpurpose>Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields.  This function 
+        will work with just the lookup data packaged with the tiger_geocoder (no need for tiger census data). Requires address_standardizer extension.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>norm_addy <function>pagc_normalize_address</function></funcdef>
+            <paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields.  This is the first step in the geocoding process to 
+            get all addresses into normalized postal form. No other data is required aside from what is packaged with the geocoder.</para>
+        <para>This function just uses the various pagc_* lookup tables preloaded with the tiger_geocoder and located in the <varname>tiger</varname> schema, so it doesn't need you to download tiger census data or any other additional data to make use of it.
+         You may find the need to add more abbreviations or alternative namings to the various lookup tables in the  <varname>tiger</varname> schema.</para>
+        <para>It uses various control lookup tables located in <varname>tiger</varname> schema to normalize the input address.</para>
+        <para>Fields in the <varname>norm_addy</varname> type object returned by this function in this order where  () indicates a field required by the geocoder, [] indicates an optional field:</para>
+        <para>There are slight variations in casing and formatting over the <xref linkend="Normalize_Address" />.</para>
+        <para>Availability: 2.1.0</para>
+        <para>&address_standardizer_required;</para>
+        <para>(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] [internal] [location] [stateAbbrev] [zip]</para>
+        <para>The native standardaddr of address_standardizer extension is at this time a bit richer than norm_addy since its designed to support international addresses (including country).  standardaddr equivalent fields are:</para>
+        <para>house_num,predir, name, suftype, sufdir, unit, city, state, postcode</para>
+        
          <orderedlist>
           <listitem>
             <para><varname>address</varname> is an integer:  The street number</para>
@@ -1048,12 +1049,12 @@ CREATE INDEX idx_tiger_data_ma_faces_countyfp ON tiger_data.ma_faces USING btree
           </listitem>
         </orderedlist>
 
-	  </refsection>
+      </refsection>
 
-		<refsection>
-			<title>Examples</title>
-			<para>Single call example</para>
-			<programlisting>
+        <refsection>
+            <title>Examples</title>
+            <para>Single call example</para>
+            <programlisting>
 SELECT addy.*
 FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS addy;
 
@@ -1062,7 +1063,7 @@ FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS addy;
 ---------+--------------+------------+------------------+---------------+-----------+-------------+-------------+-----+--------
     9000 | E            | ROO        | ST               |               | SUITE 999 | SPRINGFIELD | CO          |     | t</programlisting>
     
-    		<para>Batch call.  There are currently speed issues with the way postgis_tiger_geocoder wraps the address_standardizer.  These will hopefully
+            <para>Batch call.  There are currently speed issues with the way postgis_tiger_geocoder wraps the address_standardizer.  These will hopefully
 be resolved in later editions.  To work around them, if you need speed for batch geocoding to call generate a normaddy  in batch mode, you are encouraged
 to directly call the address_standardizer standardize_address function as shown below which is similar exercise to what we did in <xref linkend="Normalize_Address" /> that uses data created in <xref linkend="Geocode" />.</para>
     
@@ -1083,51 +1084,51 @@ SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev
  26 Capen Street, Medford, MA                        | CAPEN         | ST
  124 Mount Auburn St, Cambridge, Massachusetts 02138 | MOUNT AUBURN  | ST
  950 Main Street, Worcester, MA 01610                | MAIN          | ST</programlisting>
-		</refsection>
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Normalize_Address"/>, <xref linkend="Geocode"/></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Pprint_Addy">
-	  <refnamediv>
-		<refname>Pprint_Addy</refname>
-
-		<refpurpose>Given a <varname>norm_addy</varname> composite type object, returns a pretty print representation of it. Usually used in conjunction with normalize_address.</refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>varchar <function>pprint_addy</function></funcdef>
-			<paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Given a <varname>norm_addy</varname> composite type object, returns a pretty print representation of it. No other data is required aside from what is packaged with the geocoder.</para>
-		<para>Usually used in conjunction with <xref linkend="Normalize_Address"/>.</para>
-		
-
-	  </refsection>
-
-
-	  <refsection>
-		<title>Examples</title>
-		<para>Pretty print a single address</para>
-		<programlisting>SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, Nevada 89101')) As pretty_address;
+        </refsection>
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Normalize_Address"/>, <xref linkend="Geocode"/></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Pprint_Addy">
+      <refnamediv>
+        <refname>Pprint_Addy</refname>
+
+        <refpurpose>Given a <varname>norm_addy</varname> composite type object, returns a pretty print representation of it. Usually used in conjunction with normalize_address.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>varchar <function>pprint_addy</function></funcdef>
+            <paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>Given a <varname>norm_addy</varname> composite type object, returns a pretty print representation of it. No other data is required aside from what is packaged with the geocoder.</para>
+        <para>Usually used in conjunction with <xref linkend="Normalize_Address"/>.</para>
+        
+
+      </refsection>
+
+
+      <refsection>
+        <title>Examples</title>
+        <para>Pretty print a single address</para>
+        <programlisting>SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, Nevada 89101')) As pretty_address;
             pretty_address
 ---------------------------------------
  202 E Fremont St, Las Vegas, NV 89101
-		</programlisting>
-		
-		<para>Pretty print address a table of addresses</para>
-		<programlisting>SELECT address As orig, pprint_addy(normalize_address(address)) As pretty_address
+        </programlisting>
+        
+        <para>Pretty print address a table of addresses</para>
+        <programlisting>SELECT address As orig, pprint_addy(normalize_address(address)) As pretty_address
         FROM addresses_to_geocode;
         
                         orig                         |              pretty_address
@@ -1138,16 +1139,16 @@ SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev
  124 Mount Auburn St, Cambridge, Massachusetts 02138 | 124 Mount Auburn St, Cambridge, MA 02138
  950 Main Street, Worcester, MA 01610                | 950 Main St, Worcester, MA 01610</programlisting>
 
-	  </refsection>
+      </refsection>
 
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Normalize_Address"/></para>
-	  </refsection>
-	</refentry>
-	
-	<refentry id="Reverse_Geocode">
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Normalize_Address"/></para>
+      </refsection>
+    </refentry>
+    
+    <refentry id="Reverse_Geocode">
       <refnamediv>
         <refname>Reverse_Geocode</refname>
     
@@ -1186,7 +1187,7 @@ SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev
           </listitem>
           <listitem>
             <para><varname>addy</varname> is an array of norm_addy (normalized addresses):  These are an array of possible addresses that fit the input point.  The first one in the array is most likely.
-            	Generally there should be only one, except in the case when a point is at the corner of 2 or 3 streets, or the point is somewhere on the road and not off to the side.</para>
+                Generally there should be only one, except in the case when a point is at the corner of 2 or 3 streets, or the point is somewhere on the road and not off to the side.</para>
           </listitem>
           <listitem>
             <para><varname>street</varname> an array of varchar:  These are cross streets (or the street) (streets that intersect or are the street the point is projected to be on).</para>
@@ -1203,7 +1204,7 @@ SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev
         <para>Example of a point at the corner of two streets, but closest to one.  This is approximate location of MIT: 77 Massachusetts Ave, Cambridge, MA 02139  
             Note that although we don't have 3 streets, PostgreSQL will just return null for entries above our upper bound so safe to use.  This includes street ranges</para> 
         <programlisting>SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, pprint_addy(r.addy[3]) As st3, 
-        	array_to_string(r.street, ',') As cross_streets 
+            array_to_string(r.street, ',') As cross_streets 
         FROM reverse_geocode(ST_GeomFromText('POINT(-71.093902 42.359446)',4269),true) As r;
        
  result
@@ -1227,7 +1228,7 @@ result
 
 <para>For this one we reuse our geocoded example from <xref linkend="Geocode" /> and we only want the primary address and at most 2 cross streets.</para>
 <programlisting>SELECT actual_addr, lon, lat, pprint_addy((rg).addy[1]) As int_addr1, 
-	(rg).street[1] As cross1, (rg).street[2] As cross2
+    (rg).street[1] As cross1, (rg).street[2] As cross2
 FROM (SELECT address As actual_addr, lon, lat,
     reverse_geocode( ST_SetSRID(ST_Point(lon,lat),4326) ) As rg
     FROM addresses_to_geocode WHERE rating > -1) As foo;
@@ -1255,7 +1256,7 @@ FROM (SELECT address As actual_addr, lon, lat,
         <refname>Topology_Load_Tiger</refname>
     
         <refpurpose>Loads a defined region of tiger data into a PostGIS Topology and transforming the tiger data to spatial reference of the topology
-        	and snapping to the precision tolerance of the topology.</refpurpose>
+            and snapping to the precision tolerance of the topology.</refpurpose>
       </refnamediv>
     
       <refsynopsisdiv>
@@ -1301,7 +1302,7 @@ FROM (SELECT address As actual_addr, lon, lat,
       <refsection>
       <title>Example: Boston, Massachusetts Topology</title>
       <para>Create a topology for Boston, Massachusetts in Mass State Plane Feet (2249) 
-      	with tolerance 0.25 feet and then load in Boston city tiger faces, edges, nodes.</para>
+          with tolerance 0.25 feet and then load in Boston city tiger faces, edges, nodes.</para>
       <programlisting>SELECT topology.CreateTopology('topo_boston', 2249, 0.25);
 createtopology
 --------------
@@ -1330,7 +1331,7 @@ SELECT * FROM
       <refsection>
       <title>Example: Suffolk, Massachusetts Topology</title>
       <para>Create a topology for Suffolk, Massachusetts in Mass State Plane Meters (26986) 
-      	with tolerance 0.25 meters and then load in Suffolk county tiger faces, edges, nodes.</para>
+          with tolerance 0.25 meters and then load in Suffolk county tiger faces, edges, nodes.</para>
       <programlisting>SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);
 -- this took 56,275 ms ~ 1 minute on Windows 7 32-bit with 5 states of tiger loaded
 -- must have been warmed up after loading boston
@@ -1365,46 +1366,46 @@ SELECT * FROM
       </refsection>
    </refentry>
    
-   	<refentry id="Set_Geocode_Setting">
-	  <refnamediv>
-		<refname>Set_Geocode_Setting</refname>
+       <refentry id="Set_Geocode_Setting">
+      <refnamediv>
+        <refname>Set_Geocode_Setting</refname>
 
-		<refpurpose>Sets a setting that affects behavior of geocoder functions.</refpurpose>
-	  </refnamediv>
+        <refpurpose>Sets a setting that affects behavior of geocoder functions.</refpurpose>
+      </refnamediv>
 
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>text <function>Set_Geocode_Setting</function></funcdef>
-			<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>
-			<paramdef><type>text </type> <parameter> setting_value</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>text <function>Set_Geocode_Setting</function></funcdef>
+            <paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>
+            <paramdef><type>text </type> <parameter> setting_value</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
 
-	  <refsection>
-		<title>Description</title>
+      <refsection>
+        <title>Description</title>
 
-		<para>Sets value of specific setting stored in <varname>tiger.geocode_settings</varname> table.  Settings allow you to toggle debugging of functions.  Later plans will be to control rating with settings. Current list of settings are listed in <xref linkend="Get_Geocode_Setting" />.</para>
+        <para>Sets value of specific setting stored in <varname>tiger.geocode_settings</varname> table.  Settings allow you to toggle debugging of functions.  Later plans will be to control rating with settings. Current list of settings are listed in <xref linkend="Get_Geocode_Setting" />.</para>
 
-		<para>Availability: 2.1.0</para>
-		
-	  </refsection>
+        <para>Availability: 2.1.0</para>
+        
+      </refsection>
 
 
-	  <refsection>
-		<title>Example return debugging setting</title>
-		<para>If you run <xref linkend="Geocode" /> when this function is true, the NOTICE log will output timing and queries.</para>
-		<programlisting>SELECT set_geocode_setting('debug_geocode_address', 'true') As result;
+      <refsection>
+        <title>Example return debugging setting</title>
+        <para>If you run <xref linkend="Geocode" /> when this function is true, the NOTICE log will output timing and queries.</para>
+        <programlisting>SELECT set_geocode_setting('debug_geocode_address', 'true') As result;
 result
 ---------
-true</programlisting>	
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-		<para><xref linkend="Get_Geocode_Setting" /></para>
-	  </refsection>
-	</refentry>
+true</programlisting>    
+      </refsection>
+
+      <!-- Optionally add a "See Also" section -->
+      <refsection>
+        <title>See Also</title>
+        <para><xref linkend="Get_Geocode_Setting" /></para>
+      </refsection>
+    </refentry>
   </sect1>
diff --git a/doc/extras_topology.xml b/doc/extras_topology.xml
index e3b2a2c..e405346 100644
--- a/doc/extras_topology.xml
+++ b/doc/extras_topology.xml
@@ -110,6 +110,7 @@
                     <para><varname>id2</varname> is an integer: For errors that involve 2 objects denotes the secondary edge / or node</para>
                   </listitem>
                 </orderedlist>
+                
             </refsection>
 		  <!-- Optionally add a "See Also" section -->
             <refsection>
@@ -132,11 +133,30 @@
 		<refentry id="topoelement">
 		  <refnamediv>
 			<refname>TopoElement</refname>
-			<refpurpose>An array of 2 integers generally used to identify a TopoGeometry component. </refpurpose>
+			<refpurpose>An array of 2 integers generally used to identify a TopoGeometry component.</refpurpose>
 		  </refnamediv>
 		  <refsection>
 			<title>Description</title>
-			<para>An array of 2 integers used to represent the id (first element) and type (second element) of a topology primitive or the id (first element) and layer (second element) of a TopoGeometry. Sets of such pairs are used to define TopoGeometry objects (either simple or hierarchical).</para>
+			<para>
+An array of 2 integers used to represent one component of a simple or
+hierarchical <xref linkend="topogeometry" />.
+			</para>
+			<para>
+In the case of a simple TopoGeometry the first element of the array
+represents the identifier of a topological primitive and the second
+element represents its type (1:node, 2:edge, 3:face). In the case of a
+hierarchical TopoGeometry the first element of the array represents the
+identifier of a child TopoGeometry and the second element represents
+its layer identifier.
+			</para>
+
+<note><para>
+For any given hierarchical TopoGeometry all child TopoGeometry
+elements will come from the same child layer, as specified in
+the topology.layer record for the layer of the TopoGeometry
+being defined.
+</para></note>
+
 		  </refsection>
             <refsection>
                 <title>Examples</title>
@@ -164,7 +184,8 @@ ERROR:  value for domain topology.topoelement violates check constraint "dimensi
                 <title>See Also</title>
                 <para>
                   <xref linkend="GetTopoGeomElements"/>,
-                  <xref linkend="topoelementarray" />
+                  <xref linkend="topoelementarray" />,
+                  <xref linkend="topogeometry" />
                 </para>
             </refsection>
 		</refentry>
@@ -462,16 +483,16 @@ SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', 'LINE');
 			<refsection>
                 <title>Description</title>
             
-                <para>Returns a set of <xref linkend="validatetopology_returntype"/> objects detailing issues with topology. Table below lists possible errors and what the id1 and id2 mean in each case</para>
-        
+                <para>Returns a set of <xref linkend="validatetopology_returntype"/> objects detailing issues with topology. List of possible errors and what the returned ids represent are displayed below:</para>
+                   
                   <informaltable rowsep="1" frame="all">
                     <tgroup cols="3">
                         <thead><row><entry>Error</entry><entry>id1</entry><entry>id2</entry></row></thead>
                         <tbody>
                             <row>
                                     <entry>edge crosses node</entry>
+                                    <entry>edge_id</entry>
                                     <entry>node_id</entry>
-                                    <entry>edge_id # NOTE: should this be swapped?</entry>
                             </row>
                             <row>
                                     <entry>invalid edge</entry>
@@ -526,6 +547,7 @@ SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', 'LINE');
                 <para>Availability: 1.0.0</para>
                 	<!-- use this format if not a new function but functionality enhanced -->
                 <para>Enhanced: 2.0.0 more efficient edge crossing detection and fixes for false positives that were existent in prior versions.</para>
+                <para>Changed: 2.2.0 values for id1 and id2 were swapped for 'edge crosses node' to be consistent with error description.</para>
 			</refsection>
 		
 		
@@ -1110,13 +1132,21 @@ Updates all existing joined edges and relationships accordingly.
                 <title>Description</title>
             
                 <para>
-Add a new edge and, if in doing so it splits a face, modify the original
-face and add a new face. Unless the face being split is the Universal Face, 
-the new face will be on the right side of the newly added edge.
+Add a new edge and, if doing so splits a face, modify the original
+face and add a new one.
+                </para>
+
+<note><para>
+If possible, the new face will be created on left side of the new edge. 
+This will not be possible if the face on the left side will need to
+be the Universe face (unbounded).
+</para></note>
+
+    <para>
 Returns the id of the newly added edge.
 		</para>
 
-                <para>
+    <para>
 Updates all existing joined edges and relationships accordingly.
 		</para>
 
@@ -1710,7 +1740,6 @@ SELECT topology.ST_RemoveIsoNode('ma_topo',  7 ) As result;
             <title>Retrieve the id of an edge that intersects a Point</title>
         
             <para>The function returns an integer (id-edge) given a topology, a POINT and a tolerance. If tolerance = 0 then the point has to intersect the edge.</para>
-            <para>If the point is the location of a node, then an exception is thrown. To avoid this run the GetNodeByPoint function.</para>
             <para>If the point doesn't intersect an edge, returns 0 (zero).</para>
             <para>If use tolerance > 0 and there is more than one edge near the point then an exception is thrown.</para>
         
@@ -1744,7 +1773,11 @@ ERROR:  Two or more edges found</programlisting>
           <refsection>
             <title>See Also</title>
         
-            <para><xref linkend="AddEdge" />, <xref linkend="GetNodeByPoint" /></para>
+<para>
+<xref linkend="AddEdge" />,
+<xref linkend="GetNodeByPoint" />,
+<xref linkend="GetFaceByPoint" />
+</para>
           </refsection>
         </refentry>
         
@@ -1767,7 +1800,6 @@ ERROR:  Two or more edges found</programlisting>
                 <title>Description</title>
 			<para>Retrieve the id of a face that intersects a Point.</para>
 			<para>The function returns an integer (id-face) given a topology, a POINT and a tolerance. If tolerance = 0 then the point has to intersect the face.</para>
-			<para>If the point is the location of a node, then an exception is thrown. To avoid this run the GetNodeByPoint function.</para>
 			<para>If the point doesn't intersect a face, returns 0 (zero).</para>
 			<para>If use tolerance > 0 and there is more than one face near the point then an exception is thrown.</para>
 			
@@ -1796,7 +1828,11 @@ ERROR:  Two or more faces found</programlisting>
 		<!-- Optionally add a "See Also" section -->
 		<refsection>
 			<title>See Also</title>
-			<para><xref linkend="AddFace" />, <xref linkend="GetNodeByPoint" />, <xref linkend="GetEdgeByPoint" /></para>
+<para>
+<xref linkend="AddFace" />,
+<xref linkend="GetNodeByPoint" />,
+<xref linkend="GetEdgeByPoint" />
+</para>
 		</refsection>
 	</refentry>
         
@@ -1857,7 +1893,11 @@ ERROR:  Two or more faces found</programlisting>
           <refsection>
             <title>See Also</title>
         
-            <para><xref linkend="AddEdge" />, <xref linkend="GetEdgeByPoint" /></para>
+<para>
+<xref linkend="AddEdge" />,
+<xref linkend="GetEdgeByPoint" />,
+<xref linkend="GetFaceByPoint" />
+</para>
           </refsection>
         </refentry>
           
@@ -2047,8 +2087,8 @@ SELECT (topology.ST_GetFaceEdges('tt', 1)).*;
 (7 rows)
 </programlisting>
 <programlisting>
--- Returns the sequenc, edge id
--- , and geometry of the edges that bound face 1
+-- Returns the sequence, edge id
+-- and geometry of the edges that bound face 1
 -- If you just need geom and seq, can use ST_GetFaceGeometry
 SELECT t.seq, t.edge, geom
 FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge)
@@ -3246,37 +3286,57 @@ A full TopoJSON document will be need to contain, in addition to the snippets re
 CREATE TEMP TABLE edgemap(arc_id serial, edge_id int unique);
 
 -- header
-SELECT '{ "type": "Topology", "transform": { "scale": [1,1], "translate": [0,0] }, "objects": {';
+SELECT '{ "type": "Topology", "transform": { "scale": [1,1], "translate": [0,0] }, "objects": {'
 
 -- objects
-SELECT '"' || feature_name || '": ' || AsTopoJSON(feature, 'edgemap')
+UNION ALL SELECT '"' || feature_name || '": ' || AsTopoJSON(feature, 'edgemap')
 FROM features.big_parcels WHERE feature_name = 'P3P4';
 
 -- arcs
-SELECT '}, "arcs": ['
-  UNION ALL
-SELECT (regexp_matches(ST_AsGEOJSON(ST_SnapToGrid(e.geom,1)), '\[.*\]'))[1] as t
-FROM edgemap m, city_data.edge e WHERE e.edge_id = m.edge_id;
+WITH edges AS ( 
+  SELECT m.arc_id, e.geom FROM edgemap m, city_data.edge e
+  WHERE e.edge_id = m.edge_id
+), points AS (
+  SELECT arc_id, (st_dumppoints(geom)).* FROM edges
+), compare AS (
+  SELECT p2.arc_id,
+         CASE WHEN p1.path IS NULL THEN p2.geom
+              ELSE ST_Translate(p2.geom, -ST_X(p1.geom), -ST_Y(p1.geom))
+         END AS geom
+  FROM points p2 LEFT OUTER JOIN points p1
+  ON ( p1.arc_id = p2.arc_id AND p2.path[1] = p1.path[1]+1 )
+  ORDER BY arc_id, p2.path
+), arcsdump AS (
+  SELECT arc_id, (regexp_matches( ST_AsGeoJSON(geom), '\[.*\]'))[1] as t
+  FROM compare
+), arcs AS (
+  SELECT arc_id, '[' || array_to_string(array_agg(t), ',') || ']' as a FROM arcsdump
+  GROUP BY arc_id
+  ORDER BY arc_id
+)
+SELECT '}, "arcs": [' UNION ALL
+SELECT array_to_string(array_agg(a), E',\n') from arcs
 
 -- footer
-SELECT ']}'::text as t
+UNION ALL SELECT ']}'::text as t;
 
 -- Result:
 { "type": "Topology", "transform": { "scale": [1,1], "translate": [0,0] }, "objects": {
 "P3P4": { "type": "MultiPolygon", "arcs": [[[-1]],[[6,5,-5,-4,-3,1]]]}
 }, "arcs": [
-[[25,30],[31,30],[31,40],[17,40],[17,30],[25,30]]
-[[35,6],[35,14]]
-[[35,6],[47,6]]
-[[47,6],[47,14]]
-[[47,14],[47,22]]
-[[35,22],[47,22]]
-[[35,14],[35,22]]
-]}
+ [[25,30],[6,0],[0,10],[-14,0],[0,-10],[8,0]],
+ [[35,6],[0,8]],
+ [[35,6],[12,0]],
+ [[47,6],[0,8]],
+ [[47,14],[0,8]],
+ [[35,22],[12,0]],
+ [[35,14],[0,8]]
+ ]}
 </programlisting>
             </refsection>
 	  </refentry>
 </sect1>
+
 <sect1 id="Topology_Relationships">
 	     <sect1info>
             <abstract>
@@ -3311,7 +3371,7 @@ SELECT ']}'::text as t
             <para>This function not supported for topogeometries that are geometry collections.  It also can not compare topogeometries from different topologies.</para>
           </note>
           <!-- use this format if new function -->
-        <para>Availability: 1.? </para>
+        <para>Availability: 1.1.0 </para>
         
        
         <!-- Optionally mention 3d support -->
@@ -3337,13 +3397,16 @@ SELECT ']}'::text as t
         <refnamediv>
           <refname>Intersects</refname>
       
-          <refpurpose>Returns true if two topogeometries are composed of the same topology primitives.</refpurpose>
+          <refpurpose>
+Returns true if any pair of primitives from the
+two topogeometries intersect.
+          </refpurpose>
         </refnamediv>
       
         <refsynopsisdiv>
           <funcsynopsis>
             <funcprototype>
-              <funcdef>boolean <function>Equals</function></funcdef>
+              <funcdef>boolean <function>Intersects</function></funcdef>
               <paramdef><type>topogeometry </type> <parameter>tg1</parameter></paramdef>
               <paramdef><type>topogeometry </type> <parameter>tg2</parameter></paramdef>
             </funcprototype>
@@ -3353,7 +3416,10 @@ SELECT ']}'::text as t
         <refsection>
           <title>Description</title>
       
-          <para>Returns true if two topogeometries share primitives or primitives intersect</para>
+          <para>
+Returns true if any pair of primitives from the
+two topogeometries intersect.
+          </para>
       
           <!-- optionally mention that this function uses indexes if appropriate -->
           <note>
@@ -3361,7 +3427,7 @@ SELECT ']}'::text as t
             Also not currently supported for hierarchichal topogeometries (topogeometries composed of other topogeometries).</para>
           </note>
           <!-- use this format if new function -->
-        <para>Availability: 1.? </para>
+        <para>Availability: 1.1.0 </para>
         
        
         <!-- Optionally mention 3d support -->
diff --git a/doc/faq.xml b/doc/faq.xml
index 097a177..d64010e 100644
--- a/doc/faq.xml
+++ b/doc/faq.xml
@@ -9,7 +9,7 @@
       </question>
 
       <answer>
-        <para>OpenGeo has a step by step tutorial guide workshop <ulink url="http://workshops.opengeo.org/postgis-intro/">Introduction to PostGIS</ulink>.  It includes packaged data as well as intro to working with OpenGeo Suite. It is probably the best tutorial on PostGIS.</para>
+        <para>OpenGeo has a step by step tutorial guide workshop <ulink url="http://workshops.boundlessgeo.com/postgis-intro/">Introduction to PostGIS</ulink>.  It includes packaged data as well as intro to working with OpenGeo Suite. It is probably the best tutorial on PostGIS.</para>
         <para>BostonGIS also has a <ulink url="http://www.bostongis.com/PrinterFriendly.aspx?content_name=postgis_tut01">PostGIS almost idiot's guide on getting started</ulink>. That one is more focused on the windows user.</para>
       </answer>
     </qandaentry>
@@ -51,7 +51,7 @@
       </answer>
     </qandaentry>
 
-    <qandaentry>
+    <qandaentry id="legacy_faq_read_view">
       <question>
         <para>I'm running PostgreSQL 9.0 and I can no longer read/view geometries in OpenJump, Safe FME, and some other tools?</para>
       </question>
@@ -73,7 +73,7 @@
       </answer>
     </qandaentry>
     
-    <qandaentry>
+    <qandaentry id="pgadmin_shows_no_data_in_geom">
       <question>
         <para>I tried to use PgAdmin to view my geometry column and it is blank, what gives?</para>
       </question>
@@ -97,9 +97,14 @@ SELECT MAX(ST_NPoints(geom)) FROM sometable;</programlisting>
       </question>
 
       <answer>
-        <para>You can store Points, Linestrings, Polygons, CircularStrings, CompoundCurves, CurvePolygons, Triangles, PolyhedralSurfaces, TINs, Rasters, and collections of all the above. The most commonly used types used are Points, Linestrings and Polygons, and their collections.</para>
-        <para>Points, Linestrings and Polygons can be stored either as "geometry" or "geography". "Geometry" are cartesian representations of features in a 2D space. The shortest distance between two "geometry" points is a straight line. "Geography" are representations of objects on a spherical surface. The shortest distance between two "geography" points is a great circle.</para>
-        <para>The "raster" type has a distinct set of functions for manipulation and analysis. Refer to <xref linkend="RT_FAQ"/> and <xref linkend="RT_reference" /> for more details.</para>
+        <para>You can store Point, LineString, Polygon, MultiPoint, MultiLineString,
+        MultiPolygon, and GeometryCollection geometries. In PostGIS 2.0 and above you can also store TINS and Polyhedral Surfaces in the basic geometry type.
+        These are specified in the Open
+        GIS Well Known Text Format (with Z, M, and ZM extensions).  There are three data types currently supported.
+		The standard OGC geometry data type which uses a planar coordinate system for measurement, the 
+		geography data type which uses a geodetic coordinate system, with calculations on either a sphere or spheroid.
+		The newest family member of the PostGIS spatial type family is raster for storing and analyzing raster data. Raster has its very own FAQ. Refer to <xref linkend="RT_FAQ"/>
+		and <xref linkend="RT_reference" /> for more details.</para>
       </answer>
     </qandaentry>
 	
@@ -109,9 +114,9 @@ SELECT MAX(ST_NPoints(geom)) FROM sometable;</programlisting>
       </question>
 
       <answer>
-        <para>Short Answer: geography is a new data type that supports long range distances measurements, but most computations on it are currently
+        <para>Short Answer: geography is a newer data type that supports long range distances measurements, but most computations on it are
         slower than they are on geometry.  If
-		 you use geography -- you don't need to learn much about planar coordinate systems. Geography is generally best
+		 you use geography, you don't need to learn much about planar coordinate systems. Geography is generally best
 		 if all you care about is measuring distances and lengths and you have data from all over the world.
 		 Geometry data type is an older data type that has many more functions supporting it, enjoys greater support from third party tools,
 		 and operations on it are generally faster -- sometimes as much as 10 fold faster for larger geometries.
diff --git a/doc/faq_raster.xml b/doc/faq_raster.xml
index 98d65f8..960b577 100644
--- a/doc/faq_raster.xml
+++ b/doc/faq_raster.xml
@@ -15,6 +15,8 @@
       </answer>
     </qandaentry>
     
+     
+    
   	 <qandaentry>
       <question>
         <para>Where can I find out more about the PostGIS Raster Project?</para>
diff --git a/doc/html/image_src/Makefile.in b/doc/html/image_src/Makefile.in
index cb934af..5f39143 100644
--- a/doc/html/image_src/Makefile.in
+++ b/doc/html/image_src/Makefile.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id: Makefile.in
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
@@ -12,6 +11,9 @@
 
 CC=@CC@
 CFLAGS=@CFLAGS@ @WARNFLAGS@ @PROJ_CPPFLAGS@
+top_builddir = @top_builddir@
+SHELL = @SHELL@
+LIBTOOL = @LIBTOOL@
 
 CUNIT_LDFLAGS=@CUNIT_LDFLAGS@
 CUNIT_CPPFLAGS=@CUNIT_CPPFLAGS@ -I../../../liblwgeom
@@ -59,6 +61,8 @@ IMAGES= \
 	../images/st_delaunaytriangles04.png \
 	../images/st_difference01.png \
 	../images/st_dumppoints01.png \
+	../images/st_extrude01.png \
+	../images/st_extrude03.png \
 	../images/st_issimple01.png \
 	../images/st_issimple02.png \
 	../images/st_issimple03.png \
@@ -85,6 +89,10 @@ IMAGES= \
 	../images/st_longestline02.png \
 	../images/st_longestline03.png \
 	../images/st_minimumboundingcircle01.png \
+	../images/st_minkowskisum01.png \
+	../images/st_minkowskisum02.png \
+	../images/st_minkowskisum03.png \
+	../images/st_minkowskisum04.png \
 	../images/st_offsetcurve01.png \
 	../images/st_offsetcurve02.png \
 	../images/st_offsetcurve03.png \
@@ -107,8 +115,14 @@ IMAGES= \
 	../images/st_split02.png \
 	../images/st_split03.png \
 	../images/st_split04.png \
+	../images/st_straightskeleton01.png \
+	../images/st_approximatemedialaxis01.png \
+	../images/st_subdivide01.png \
+	../images/st_subdivide02.png \
 	../images/st_symdifference01.png \
 	../images/st_symdifference02.png \
+	../images/st_tesselate03.png \
+	../images/st_tesselate04.png \
 	../images/st_touches01.png \
 	../images/st_touches02.png \
 	../images/st_touches03.png \
@@ -154,11 +168,12 @@ $(IMAGES_RESIZED): ../images/%.png: %.wkt generator styles.conf
 
 # Build the main executable
 generator: ../../../liblwgeom/.libs/liblwgeom.a $(OBJS)
-	$(CC) -o $@ $(OBJS) ../../../liblwgeom/.libs/liblwgeom.a -lm $(CUNIT_LDFLAGS)
+	$(LIBTOOL) --mode=link \
+	$(CC) -o $@ $(OBJS) ../../../liblwgeom/liblwgeom.la -lm $(CUNIT_LDFLAGS)
 
 # Build liblwgeom
 ../../../liblwgeom/.libs/liblwgeom.a:
-	make -C ../../../liblwgeom liblwgeom.la
+	$(MAKE) -C ../../../liblwgeom liblwgeom.la
 
 # Clean target
 clean:
diff --git a/doc/html/image_src/generator.c b/doc/html/image_src/generator.c
index 909f159..33c8bd3 100644
--- a/doc/html/image_src/generator.c
+++ b/doc/html/image_src/generator.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: generator.c 3967 2009-05-04 16:48:11Z kneufeld $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -33,8 +32,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
+#include <sys/wait.h> /* for WEXITSTATUS */
 
 #include "liblwgeom.h"
+#include "liblwgeom_internal.h" /* for trim_trailing_zeros */
 #include "lwgeom_log.h"
 #include "styles.h"
 
@@ -48,6 +49,15 @@ char *imageSize = "200x200";
 
 int getStyleName(char **styleName, char* line);
 
+static void
+checked_system(const char* cmd)
+{
+  int ret = system(cmd);
+	if ( WEXITSTATUS(ret) != 0 ) {
+		fprintf(stderr, "Failure return code (%d) from command: %s", WEXITSTATUS(ret), cmd);
+	}
+}
+
 /**
  * Writes the coordinates of a POINTARRAY to a char* where ordinates are
  * separated by a comma and coordinates by a space so that the coordinate
@@ -230,7 +240,7 @@ addDropShadow(int layerNumber)
 	    "convert tmp%d.png -gravity center \"(\" +clone -background navy -shadow 100x3+4+4 \")\" +swap -background none -flatten tmp%d.png",
 	    layerNumber, layerNumber);
 	LWDEBUGF(4, "%s", str);
-	system(str);
+	checked_system(str);
 }
 
 /**
@@ -249,7 +259,7 @@ addHighlight(int layerNumber)
 	    "convert tmp%d.png \"(\" +clone -channel A -separate +channel -negate -background black -virtual-pixel background -blur 0x3 -shade 120x55 -contrast-stretch 0%% +sigmoidal-contrast 7x50%% -fill grey50 -colorize 10%% +clone +swap -compose overlay -composite \")\" -compose In -composite tmp%d.png",
 	    layerNumber, layerNumber);
 	LWDEBUGF(4, "%s", str);
-	system(str);
+	checked_system(str);
 }
 
 /**
@@ -265,7 +275,7 @@ optimizeImage(char* filename)
 	str = malloc( (18 + (2*strlen(filename)) + 1) * sizeof(char) );
 	sprintf(str, "convert %s -depth 8 %s", filename, filename);
 	LWDEBUGF(4, "%s", str);
-	system(str);
+	checked_system(str);
 	free(str);
 }
 
@@ -275,12 +285,11 @@ optimizeImage(char* filename)
 static void
 flattenLayers(char* filename)
 {
-	char *str;
-	str = malloc( (48 + strlen(filename) + 1) * sizeof(char) );
+	char *str = malloc( (48 + strlen(filename) + 1) * sizeof(char) );
 	sprintf(str, "convert tmp[0-9].png -background white -flatten %s", filename);
 
 	LWDEBUGF(4, "%s", str);
-	system(str);
+	checked_system(str);
 	// TODO: only remove the tmp files if they exist.
 	remove("tmp0.png");
 	remove("tmp1.png");
@@ -330,7 +339,6 @@ int main( int argc, const char* argv[] )
 	char line [2048];
 	char *filename;
 	int layerCount;
-	int styleNumber;
 	LAYERSTYLE *styles;
 	char *image_path = "../images/";
 
@@ -362,6 +370,7 @@ int main( int argc, const char* argv[] )
 		char output[32768];
 		char *ptr = output;
 		char *styleName;
+		LAYERSTYLE *style;
 		int useDefaultStyle;
 
 		ptr += sprintf( ptr, "convert -size %s xc:none ", imageSize );
@@ -378,15 +387,19 @@ int main( int argc, const char* argv[] )
 			lwgeom = lwgeom_from_wkt( line+strlen(styleName)+1, LW_PARSER_CHECK_NONE );
 		LWDEBUGF( 4, "geom = %s", lwgeom_to_ewkt((LWGEOM*)lwgeom) );
 
-		styleNumber = layerCount % length(styles);
-		ptr += drawGeometry( ptr, lwgeom, getStyle(styles, styleName) );
+		style = getStyle(styles, styleName);
+		if ( ! style ) {
+		  lwerror("Could not find style named %s", styleName);
+		  return -1;
+		}
+		ptr += drawGeometry( ptr, lwgeom, style );
 
 		ptr += sprintf( ptr, "-flip tmp%d.png", layerCount );
 
 		lwfree( lwgeom );
 
 		LWDEBUGF( 4, "%s", output );
-		system(output);
+		checked_system(output);
 
 		addHighlight( layerCount );
 		addDropShadow( layerCount );
diff --git a/doc/html/image_src/st_approximatemedialaxis01.wkt b/doc/html/image_src/st_approximatemedialaxis01.wkt
new file mode 100644
index 0000000..b40222e
--- /dev/null
+++ b/doc/html/image_src/st_approximatemedialaxis01.wkt
@@ -0,0 +1,2 @@
+Style1;POLYGON (( 190 190, 10 190, 10 10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))
+Style2;MULTILINESTRING((184.188611699158 15.8113883008419,158.377223398316 20),(50 20,158.377223398316 20),(50 20,35 35),(35 153.150778481549,35 35),(35 153.150778481549,40.6970772062924 159.302922793708),(164.039879739868 164.039879739868,40.6970772062924 159.302922793708))
diff --git a/doc/html/image_src/st_extrude01.wkt b/doc/html/image_src/st_extrude01.wkt
new file mode 100644
index 0000000..7a1072a
--- /dev/null
+++ b/doc/html/image_src/st_extrude01.wkt
@@ -0,0 +1 @@
+Style2;POLYGON((150 90,135.355339059327 54.6446609406727,100 40,64.6446609406727 54.6446609406725,50 89.9999999999998,64.6446609406725 125.355339059327,99.9999999999998 140,135.355339059327 125.355339059328,150 90))
diff --git a/doc/html/image_src/st_extrude03.wkt b/doc/html/image_src/st_extrude03.wkt
new file mode 100644
index 0000000..7ee5d76
--- /dev/null
+++ b/doc/html/image_src/st_extrude03.wkt
@@ -0,0 +1 @@
+Style2;LINESTRING(50 50, 100 90, 95 150)
diff --git a/doc/html/image_src/st_minkowskisum01.wkt b/doc/html/image_src/st_minkowskisum01.wkt
new file mode 100644
index 0000000..15db51f
--- /dev/null
+++ b/doc/html/image_src/st_minkowskisum01.wkt
@@ -0,0 +1,3 @@
+Style2-thinline;LINESTRING(10 10,100 100)
+Style1;POLYGON((80 50,79.4235584120969 44.1472903395162,77.7163859753386 38.5194970290473,74.9440883690764 33.3328930094119,71.2132034355964 28.7867965644036,66.6671069905881 25.0559116309237,61.4805029709527 22.2836140246614,55.8527096604839 20.5764415879031,50.0000000000001 20,44.1472903395162 20.5764415879031,38.5194970290474 22.2836140246614,33.332893009412 25.0559116309236,28.7867965644036 28.7867965644035,25.0559116309237 33.3328930094119,22.2836140246614 38.5194970290472,20.576441 [...]
+
diff --git a/doc/html/image_src/st_minkowskisum02.wkt b/doc/html/image_src/st_minkowskisum02.wkt
new file mode 100644
index 0000000..4718aca
--- /dev/null
+++ b/doc/html/image_src/st_minkowskisum02.wkt
@@ -0,0 +1,2 @@
+Style1;POLYGON((30 59.9999999999999,30.5764415879031 54.1472903395161,32.2836140246614 48.5194970290472,35.0559116309237 43.3328930094119,38.7867965644036 38.7867965644035,43.332893009412 35.0559116309236,48.5194970290474 32.2836140246614,54.1472903395162 30.5764415879031,60.0000000000001 30,65.8527096604839 30.5764415879031,71.4805029709527 32.2836140246614,76.6671069905881 35.0559116309237,81.2132034355964 38.7867965644036,171.213203435596 128.786796564404,174.944088369076 133.33289300 [...]
+
diff --git a/doc/html/image_src/st_minkowskisum03.wkt b/doc/html/image_src/st_minkowskisum03.wkt
new file mode 100644
index 0000000..795ed05
--- /dev/null
+++ b/doc/html/image_src/st_minkowskisum03.wkt
@@ -0,0 +1,3 @@
+Style2;MULTIPOINT(25 50,70 25)
+Style1;POLYGON((130 150, 20 40, 50 60, 125 100, 130 150))
+
diff --git a/doc/html/image_src/st_minkowskisum04.wkt b/doc/html/image_src/st_minkowskisum04.wkt
new file mode 100644
index 0000000..2d13612
--- /dev/null
+++ b/doc/html/image_src/st_minkowskisum04.wkt
@@ -0,0 +1,5 @@
+Style1;POLYGON((45 90,75 110,150 150,155 200,45 90))
+Style1;POLYGON((90 65,120 85,195 125,200 175,90 65))
+
+
+
diff --git a/doc/html/image_src/st_split01.wkt b/doc/html/image_src/st_split01.wkt
index e163fb9..82a6015 100644
--- a/doc/html/image_src/st_split01.wkt
+++ b/doc/html/image_src/st_split01.wkt
@@ -1,2 +1,2 @@
 Style1;POLYGON((150 90,149.039264020162 80.2454838991936,146.193976625564 70.8658283817455,141.573480615127 62.2214883490199,135.355339059327 54.6446609406727,127.77851165098 48.4265193848728,119.134171618255 43.8060233744357,109.754516100806 40.9607359798385,100 40,90.2454838991937 40.9607359798385,80.8658283817456 43.8060233744356,72.22148834902 48.4265193848727,64.6446609406727 54.6446609406725,58.4265193848728 62.2214883490198,53.8060233744357 70.8658283817454,50.9607359798385 80.245 [...]
-Style2;LINESTRING(10 10,190 190)
+Style2-thinline;LINESTRING(10 10,190 190)
diff --git a/doc/html/image_src/st_split02.wkt b/doc/html/image_src/st_split02.wkt
index 02c72f0..e5b67d5 100644
--- a/doc/html/image_src/st_split02.wkt
+++ b/doc/html/image_src/st_split02.wkt
@@ -1,2 +1 @@
-Style1;POLYGON((150 90,149.039264020162 80.2454838991936,146.193976625564 70.8658283817455,141.573480615127 62.2214883490199,135.355339059327 54.6446609406727,127.77851165098 48.4265193848728,119.134171618255 43.8060233744357,109.754516100806 40.9607359798385,100 40,90.2454838991937 40.9607359798385,80.8658283817456 43.8060233744356,72.22148834902 48.4265193848727,64.6446609406727 54.6446609406725,60.1371179574584 60.1371179574584,129.862882042542 129.862882042542,135.355339059327 125.35 [...]
-Style2;POLYGON((60.1371179574584 60.1371179574584,58.4265193848728 62.2214883490198,53.8060233744357 70.8658283817454,50.9607359798385 80.2454838991934,50 89.9999999999998,50.9607359798384 99.7545161008062,53.8060233744356 109.134171618254,58.4265193848726 117.77851165098,64.6446609406725 125.355339059327,72.2214883490197 131.573480615127,80.8658283817453 136.193976625564,90.2454838991934 139.039264020161,99.9999999999998 140,109.754516100806 139.039264020162,119.134171618254 136.1939766 [...]
+StrokedPoly1;GEOMETRYCOLLECTION(POLYGON((150 90,149.039264020162 80.2454838991936,146.193976625564 70.8658283817455,141.573480615127 62.2214883490199,135.355339059327 54.6446609406727,127.77851165098 48.4265193848728,119.134171618255 43.8060233744357,109.754516100806 40.9607359798385,100 40,90.2454838991937 40.9607359798385,80.8658283817456 43.8060233744356,72.22148834902 48.4265193848727,64.6446609406727 54.6446609406725,60.1371179574584 60.1371179574584,129.862882042542 129.86288204254 [...]
diff --git a/doc/html/image_src/st_straightskeleton01.wkt b/doc/html/image_src/st_straightskeleton01.wkt
new file mode 100644
index 0000000..417be1a
--- /dev/null
+++ b/doc/html/image_src/st_straightskeleton01.wkt
@@ -0,0 +1 @@
+Style1;POLYGON (( 190 190, 10 190, 10 10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))
diff --git a/doc/html/image_src/st_subdivide01.wkt b/doc/html/image_src/st_subdivide01.wkt
new file mode 100644
index 0000000..6b23d56
--- /dev/null
+++ b/doc/html/image_src/st_subdivide01.wkt
@@ -0,0 +1,4 @@
+Style1;POLYGON((22 64,29.3913043478263 98.000000000001,106.000000000001 98.000000000001,106.000000000001 27.5882352941173,85 35,68 29,66 28,49 42,32 56,22 64))
+Style2;POLYGON((29.3913043478263 98.000000000001,32 110,40 119,36 150,57 158,75 171,92 182,106.000000000001 183.272727272727,106.000000000001 98.000000000001,29.3913043478263 98.000000000001))
+Style3;POLYGON((106.000000000001 27.5882352941173,106.000000000001 98.000000000001,189.52380952381 98.000000000001,185 79,186 56,186 52,178 34,168 18,147 13,132 10,119 23,106.000000000001 27.5882352941173))
+Style4;POLYGON((106.000000000001 98.000000000001,106.000000000001 183.272727272727,114 184,132 186,146 178,176 184,179 162,184 141,190 122,190 100,189.52380952381 98.000000000001,106.000000000001 98.000000000001))
diff --git a/doc/html/image_src/st_subdivide02.wkt b/doc/html/image_src/st_subdivide02.wkt
new file mode 100644
index 0000000..7b6ea08
--- /dev/null
+++ b/doc/html/image_src/st_subdivide02.wkt
@@ -0,0 +1,4 @@
+Style1;LINESTRING(0 0,7.07106781186547 7.07106781186547,14.1421356237309 14.1421356237309,21.2132034355964 21.2132034355964,28.2842712474619 28.2842712474619,35.3553390593274 35.3553390593274,37.499999999998 37.499999999998)
+Style2;LINESTRING(37.499999999998 37.499999999998,42.4264068711929 42.4264068711929,49.4974746830583 49.4974746830583,56.5685424949238 56.5685424949238,63.6396103067893 63.6396103067893,70.7106781186548 70.7106781186548,74.999999999998 74.999999999998)
+Style3;LINESTRING(74.999999999998 74.999999999998,77.7817459305202 77.7817459305202,84.8528137423857 84.8528137423857,91.9238815542512 91.9238815542512,98.9949493661167 98.9949493661167,100 100,107.071067811865 107.071067811865,112.499999999998 112.499999999998)
+Style4;LINESTRING(112.499999999998 112.499999999998,114.142135623731 114.142135623731,121.213203435596 121.213203435596,128.284271247462 128.284271247462,135.355339059327 135.355339059327,142.426406871193 142.426406871193,149.497474683058 149.497474683058,149.999999999998 149.999999999998)
diff --git a/doc/html/image_src/st_tesselate03.wkt b/doc/html/image_src/st_tesselate03.wkt
new file mode 100644
index 0000000..d2a1de6
--- /dev/null
+++ b/doc/html/image_src/st_tesselate03.wkt
@@ -0,0 +1 @@
+Style1;POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, 10 190 ))
diff --git a/doc/html/image_src/st_tesselate04.wkt b/doc/html/image_src/st_tesselate04.wkt
new file mode 100644
index 0000000..c654f09
--- /dev/null
+++ b/doc/html/image_src/st_tesselate04.wkt
@@ -0,0 +1,5 @@
+Style1;POLYGON((80 130,50 160,80 70,80 130))
+Style2;POLYGON((50 160,10 190,10 70,50 160))
+Style3;POLYGON((80 70,50 160,10 70,80 70))
+Style4;POLYGON((120 160,120 190,50 160,120 160))
+Style5;POLYGON((120 190,10 190,50 160,120 190))
\ No newline at end of file
diff --git a/doc/html/image_src/styles.c b/doc/html/image_src/styles.c
index 4d97686..35fdfb6 100644
--- a/doc/html/image_src/styles.c
+++ b/doc/html/image_src/styles.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: generator.c 3967 2009-05-04 16:48:11Z kneufeld $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/doc/html/image_src/styles.conf b/doc/html/image_src/styles.conf
index 5d7f11e..412dd6c 100644
--- a/doc/html/image_src/styles.conf
+++ b/doc/html/image_src/styles.conf
@@ -160,3 +160,15 @@ lineColor = orange
 polygonFillColor = orange
 polygonStrokeColor = orange
 polygonStrokeWidth = 0
+
+
+[Style]
+# The bottom layer in the rendered WKT image
+styleName = StrokedPoly1
+pointSize = 6
+pointColor = "#00bfff"
+lineWidth = 7
+lineColor = "#00bfff"
+polygonFillColor = "#00bfff"
+polygonStrokeColor = "#000000"
+polygonStrokeWidth = 1
diff --git a/doc/html/image_src/styles.h b/doc/html/image_src/styles.h
index 2e3dc5c..04c4fc2 100644
--- a/doc/html/image_src/styles.h
+++ b/doc/html/image_src/styles.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: generator.c 3967 2009-05-04 16:48:11Z kneufeld $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/doc/html/images/st_extrude02.png b/doc/html/images/st_extrude02.png
new file mode 100644
index 0000000..cfb1b18
Binary files /dev/null and b/doc/html/images/st_extrude02.png differ
diff --git a/doc/html/images/st_extrude04.png b/doc/html/images/st_extrude04.png
new file mode 100644
index 0000000..58ed0b5
Binary files /dev/null and b/doc/html/images/st_extrude04.png differ
diff --git a/doc/html/images/st_straightskeleton02.png b/doc/html/images/st_straightskeleton02.png
new file mode 100644
index 0000000..9e9a204
Binary files /dev/null and b/doc/html/images/st_straightskeleton02.png differ
diff --git a/doc/html/images/st_tesselate01.png b/doc/html/images/st_tesselate01.png
new file mode 100644
index 0000000..d48a4ef
Binary files /dev/null and b/doc/html/images/st_tesselate01.png differ
diff --git a/doc/html/images/st_tesselate02.png b/doc/html/images/st_tesselate02.png
new file mode 100644
index 0000000..f1a3785
Binary files /dev/null and b/doc/html/images/st_tesselate02.png differ
diff --git a/doc/installation.xml b/doc/installation.xml
index b172db3..155e0a6 100644
--- a/doc/installation.xml
+++ b/doc/installation.xml
@@ -18,12 +18,22 @@ make install</programlisting>
 	<note><para>The raster support is currently optional, but installed by default. For enabling using the PostgreSQL 9.1+ extensions model raster is required. Using the extension enable process is preferred and more user-friendly. To spatially enable your database:</para></note>
 	<programlisting>psql -d yourdatabase -c "CREATE EXTENSION postgis;"
 psql -d yourdatabase -c "CREATE EXTENSION postgis_topology;"
-psql -d yourdatabase -c "CREATE EXTENSION postgis_tiger_geocoder;"</programlisting>
+-- if you built with sfcgal support --
+psql -d yourdatabase -c "CREATE EXTENSION postgis_sfcgal;"
+
+-- if you want to install tiger geocoder --
+psql -d yourdatabase -c "CREATE EXTENSION fuzzystrmatch"
+psql -d yourdatabase -c "CREATE EXTENSION postgis_tiger_geocoder;"
+
+-- if you installed with pcre 
+-- you should have address standardizer extension as well
+psql -d yourdatabase -c "CREATE EXTENSION address_standardizer;"
+</programlisting>
 	
 	
 	<para>Please refer to <xref linkend="make_install_postgis_extensions" /> for more details about querying installed/available extensions and upgrading extensions, or switching from a non-extension install to an extension install.</para>
 	
-	<para>For those running PostgreSQL 9.0 or who decided for some reason not to compile with raster support, or just are old-fashioned, here are longer more painful instructions for you:</para>
+	<para>For those running who decided for some reason not to compile with raster support, or just are old-fashioned, here are longer more painful instructions for you:</para>
 	<para>All the .sql files once installed will be installed in share/contrib/postgis-&last_minor_version; folder
 		of your PostgreSQL install</para>
 
@@ -35,12 +45,17 @@ psql -d yourdatabase -f spatial_ref_sys.sql
 psql -d yourdatabase -f rtpostgis.sql
 psql -d yourdatabase -f raster_comments.sql
 psql -d yourdatabase -f topology.sql
-psql -d yourdatabase -f topology_comments.sql</programlisting>
+psql -d yourdatabase -f topology_comments.sql
+--if you built with sfcgal support --
+psql -d yourdatabase -f sfcgal.sql
+psql -d yourdatabase -f sfcgal_comments.sql
+</programlisting>
 
 	<para>
 	  The rest of this chapter goes into detail each of the above installation
 	  steps.
 	</para>
+	
 	<para>As of PostGIS 2.1.3, out-of-db rasters and all raster drivers are disabled by default. In order to re-enable these, you need to set the following environment variables:
 	<varname>POSTGIS_GDAL_ENABLED_DRIVERS</varname> and <varname>POSTGIS_ENABLE_OUTDB_RASTERS</varname> in the server environment.</para>
 	
@@ -121,9 +136,8 @@ psql -d yourdatabase -f topology_comments.sql</programlisting>
 
 	  <listitem>
 		<para>
-		  GEOS geometry library, version 3.3 or greater, but GEOS 3.4+ is recommended to take full advantage of all the new functions and features.  Without GEOS 3.4,
-			you will be missing some major enhancements such as ST_Triangles and long-running function interruption, and improvements to geometry validation and
-			making geometries valid such as ST_ValidDetail and ST_MakeValid.  GEOS 3.3.2+ is also required for topology support.  GEOS is available for download from
+		  GEOS geometry library, version 3.3 or greater, but GEOS 3.5+ is recommended to take full advantage of all the new functions and features.  Without GEOS 3.5,
+			you will be missing some major enhancements such as <xref linkend="ST_ClipByBox2D" /> and <xref linkend="ST_Subdivide" />. GEOS is available for download from
 		  <ulink url="http://trac.osgeo.org/geos/">
 			http://trac.osgeo.org/geos/
 		  </ulink> and 3.4+ is backward-compatible with older versions so fairly safe to upgrade.
@@ -140,7 +154,7 @@ psql -d yourdatabase -f topology_comments.sql</programlisting>
 		<para>
 		  JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON via the
 		  function ST_GeomFromGeoJson. JSON-C is available for download from
-		  <ulink url="https://github.com/json-c/json-c/releases">https://github.com/json-c/json-c/releases</ulink>.
+		  <ulink url="https://github.com/json-c/json-c/releases">https://github.com/json-c/json-c/releases/</ulink>.
 		</para>
 	  </listitem>
 	  
@@ -162,6 +176,7 @@ psql -d yourdatabase -f topology_comments.sql</programlisting>
 		  GDAL (pseudo optional) only if you don't want raster and don't care about installing with <code>CREATE EXTENSION postgis</code> can you leave it out.
 		  Keep in mind other extensions may have a requires postgis extension which will prevent you from installing them unless you install postgis as an extension. So it is highly recommended you compile with GDAL support.
 		</para>
+		<para>Also make sure to enable the drivers you want to use as described in <xref linkend="install_short_version" />.</para>
 	  </listitem>	
 	  <listitem>
 		<para>
@@ -175,11 +190,18 @@ psql -d yourdatabase -f topology_comments.sql</programlisting>
 	  
 	  <listitem>
 		<para>
-                  SFCGAL, version 0.2 (or higher) could be used to provide additional 2D and 3D advanced analysis functions to PostGIS cf <xref linkend="reference_sfcgal" />. And also allow to use SFCGAL rather than GEOS for some 2D functions provided by both backends (like ST_Intersection or ST_Area, for instance). A PostgreSQL configuration variable <code>postgis.backend</code> allow end user to control which backend he want to use if SFCGAL is installed (GEOS by default). Nota: SFCGAL [...]
+                  SFCGAL, version 1.1 (or higher) could be used to provide additional 2D and 3D advanced analysis functions to PostGIS cf <xref linkend="reference_sfcgal" />. And also allow to use SFCGAL rather than GEOS for some 2D functions provided by both backends (like ST_Intersection or ST_Area, for instance). A PostgreSQL configuration variable <code>postgis.backend</code> allow end user to control which backend he want to use if SFCGAL is installed (GEOS by default). Nota: SFCGAL [...]
 
 		  <ulink url="https://github.com/Oslandia/SFCGAL">https://github.com/Oslandia/SFCGAL</ulink>.
 		</para>
 	  </listitem>
+	  
+	 <listitem>
+			<para>
+				In order to build the <xref linkend="Address_Standardizer" /> you will also need PCRE <ulink url="http://www.pcre.org">http://www.pcre.org</ulink> (which generally is already installed on nix systems).  <code>Regex::Assemble</code> perl CPAN package is only needed if you want to rebuild the data encoded in <filename>parseaddress-stcities.h</filename>.
+				<xref linkend="Address_Standardizer" /> will automatically be built if it detects a PCRE library, or you pass in a valid <varname>--with-pcre-dir=/path/to/pcre</varname> during configure.
+			</para>
+		</listitem>
 
 	  <listitem>
 		<para>
@@ -189,18 +211,6 @@ psql -d yourdatabase -f topology_comments.sql</programlisting>
 	  
 	  <listitem>
 		<para>
-		  Apache Ant (<filename>ant</filename>) is required for building any of
-		  the drivers under the <filename>java</filename> directory. Ant is
-		  available from
-		  <ulink url="http://ant.apache.org">
-			http://ant.apache.org
-		  </ulink>
-		  .
-		</para>
-	  </listitem>
-
-	  <listitem>
-		<para>
 		  DocBook (<filename>xsltproc</filename>) is required for building the
 		  documentation. Docbook is available from
 		  <ulink url="http://www.docbook.org/">
@@ -473,7 +483,19 @@ tar -xvzf postgis-&last_release_version;.tar.gz</programlisting>
 			</para>
 		  </listitem>
 		</varlistentry>
-
+		
+		<varlistentry>
+		  <term><command>--with-pcredir=DIR</command></term>
+		  <listitem>
+			<para>
+			  <ulink url="http://www.pcre.org/">PCRE</ulink> is an BSD-licensed Perl Compatible Regular Expression library required by address_standardizer extension. Use this
+			  parameter (<command>--with-pcredir=/path/to/pcredir</command>) to
+			  manually specify a particular PCRE installation directory that
+			  PostGIS will build against.
+			</para>
+		  </listitem>
+		</varlistentry>
+		
 		<varlistentry>
 		  <term><command>--with-gui</command></term>
 		  <listitem>
@@ -614,6 +636,25 @@ cd postgis_topology
 make clean
 make 
 make install
+cd ..
+cd postgis_sfcgal
+make clean
+make 
+make install
+
+cd ..
+cd address_standardizer
+make clean
+make 
+make install
+make installcheck
+
+cd ..
+cd postgis_tiger_geocoder
+make clean
+make 
+make install
+make installcheck
 	  </programlisting>
 	  <para>The extension files will always be the same for the same version of PostGIS regardless of OS, so it is fine to copy over the extension files from one OS to another as long as you
 	  have the PostGIS binaries already installed on your servers. </para>
@@ -639,11 +680,17 @@ make install
 	 <para>Once you do that, you should see <varname>postgis</varname>, <varname>postgis_topology</varname> as available extensions in PgAdmin -> extensions.</para>
 	 <para>If you are using psql, you can verify that the extensions are installed by running this query:</para>
 	 <programlisting>SELECT name, default_version,installed_version 
-FROM pg_available_extensions WHERE name LIKE 'postgis%' ;
-      name       | default_version | installed_version
------------------+-----------------+-------------------
-postgis          | &last_release_version;     | &last_release_version;
-postgis_topology | &last_release_version;      | </programlisting>
+FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';
+
+             name             | default_version | installed_version
+------------------------------+-----------------+-------------------
+ address_standardizer         | &last_release_version;         | &last_release_version; 
+ address_standardizer_data_us | &last_release_version;         | &last_release_version; 
+ postgis                      | &last_release_version;         | &last_release_version; 
+ postgis_sfcgal               | &last_release_version;         |
+ postgis_tiger_geocoder       | &last_release_version;         | &last_release_version; 
+ postgis_topology             | &last_release_version;         |
+(6 rows)</programlisting>
 
 <para>If you have the extension installed in the database you are querying, you'll see mention in the <varname>installed_version</varname> column.  
 If you get no records back, it means you don't have postgis extensions installed on the server at all.  PgAdmin III 1.14+ will also provide this information
@@ -651,8 +698,13 @@ in the <varname>extensions</varname> section of the database browser tree and wi
 
 <para>If you have the extensions available, you can install postgis extension in your database of choice by either using pgAdmin extension interface or running these sql commands:</para>
 <programlisting>CREATE EXTENSION postgis;
-CREATE EXTENSION postgis_topology;
-CREATE EXTENSION postgis_tiger_geocoder;</programlisting>
+CREATE EXTENSION postgis_sfcgal;
+CREATE EXTENSION fuzzystrmatch; --needed for postgis_tiger_geocoder
+--optional used by postgis_tiger_geocoder, or can be used standalone
+CREATE EXTENSION address_standardizer;
+CREATE EXTENSION address_standardizer_data_us;
+CREATE EXTENSION postgis_tiger_geocoder;
+CREATE EXTENSION postgis_topology;</programlisting>
 
 <para>In psql you can use to see what versions you have installed and also what schema they are installed. </para>
 <programlisting>\connect mygisdb
@@ -684,7 +736,7 @@ be backed up when the respective <varname>postgis</varname> or <varname>postgis_
 As of PostGIS 2.0.1, only srid records not packaged with PostGIS are backed up when the database is backed up so don't go around changing srids we package and expect your changes to be there. Put in a ticket if you find an issue.  The structures of extension tables are never backed up since they are created with <code>CREATE EXTENSION</code>
 and assumed to be the same for a given version of an extension. These behaviors are built into the current PostgreSQL extension model, so nothing we can do about it.</para></warning>
 
-<para>If you installed &last_release_version;, without using our wonderful extension system, you can change it to be extension based by first upgrading to the latest micro version running the upgrade scripts: <filename>postgis_upgrade_21_minor.sql</filename>,<filename>raster_upgrade_21_minor.sql</filename>,<filename>topology_upgrade_21_minor.sql</filename>.</para>
+<para>If you installed &last_release_version;, without using our wonderful extension system, you can change it to be extension based by first upgrading to the latest micro version running the upgrade scripts: <filename>postgis_upgrade_22_minor.sql</filename>,<filename>raster_upgrade_22_minor.sql</filename>,<filename>topology_upgrade_22_minor.sql</filename>.</para>
 <para>If you installed postgis without raster support, you'll need to install raster support first (using the full <filename>rtpostgis.sql</filename></para>
 <para>Then you can run the below commands to package the functions in their respective extension.</para>
 <programlisting>CREATE EXTENSION postgis FROM unpackaged;
@@ -704,7 +756,7 @@ CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;</programlisting>
 	  <para>
 		<command>make check</command>
 	  </para>
-
+	  
 	  <para>
 		The above command will run through various checks and regression tests
 		using the generated library against an actual PostgreSQL database.
@@ -736,195 +788,320 @@ CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;</programlisting>
 		following:
 	  </para>
 
-	  <programlisting>
-     CUnit - A Unit testing framework for C - Version 2.1-0
+	  <programlisting>    CUnit - A unit testing framework for C - Version 2.1-2
      http://cunit.sourceforge.net/
 
 
-Suite: print_suite
-  Test: test_lwprint_default_format ... passed
-  Test: test_lwprint_format_orders ... passed
-  Test: test_lwprint_optional_format ... passed
-  Test: test_lwprint_oddball_formats ... passed
-  Test: test_lwprint_bad_formats ... passed
-Suite: misc
-  Test: test_misc_force_2d ... passed
-  Test: test_misc_simplify ... passed
-  Test: test_misc_count_vertices ... passed
-  Test: test_misc_area ... passed
-  Test: test_misc_wkb ... passed
-Suite: ptarray
-  Test: test_ptarray_append_point ... passed
-  Test: test_ptarray_append_ptarray ... passed
-  Test: test_ptarray_locate_point ... passed
-  Test: test_ptarray_isccw ... passed
-  Test: test_ptarray_signed_area ... passed
-  Test: test_ptarray_desegmentize ... passed
-  Test: test_ptarray_insert_point ... passed
-  Test: test_ptarray_contains_point ... passed
-  Test: test_ptarrayarc_contains_point ... passed
-Suite: PostGIS Computational Geometry Suite
-  Test: test_lw_segment_side ... passed
-  Test: test_lw_segment_intersects ... passed
-  Test: test_lwline_crossing_short_lines ... passed
-  Test: test_lwline_crossing_long_lines ... passed
-  Test: test_lwline_crossing_bugs ... passed
-  Test: test_lwpoint_set_ordinate ... passed
-  Test: test_lwpoint_get_ordinate ... passed
-  Test: test_point_interpolate ... passed
-  Test: test_lwline_clip ... passed
-  Test: test_lwline_clip_big ... passed
-  Test: test_lwmline_clip ... passed
-  Test: test_geohash_point ... passed
-  Test: test_geohash_precision ... passed
-  Test: test_geohash ... passed
-  Test: test_geohash_point_as_int ... passed
-  Test: test_isclosed ... passed
+Suite: computational_geometry
+  Test: test_lw_segment_side ...passed
+  Test: test_lw_segment_intersects ...passed
+  Test: test_lwline_crossing_short_lines ...passed
+  Test: test_lwline_crossing_long_lines ...passed
+  Test: test_lwline_crossing_bugs ...passed
+  Test: test_lwpoint_set_ordinate ...passed
+  Test: test_lwpoint_get_ordinate ...passed
+  Test: test_point_interpolate ...passed
+  Test: test_lwline_clip ...passed
+  Test: test_lwline_clip_big ...passed
+  Test: test_lwmline_clip ...passed
+  Test: test_geohash_point ...passed
+  Test: test_geohash_precision ...passed
+  Test: test_geohash ...passed
+  Test: test_geohash_point_as_int ...passed
+  Test: test_isclosed ...passed
+  Test: test_lwgeom_simplify ...passed
 Suite: buildarea
-  Test: buildarea1 ... passed
-  Test: buildarea2 ... passed
-  Test: buildarea3 ... passed
-  Test: buildarea4 ... passed
-  Test: buildarea4b ... passed
-  Test: buildarea5 ... passed
-  Test: buildarea6 ... passed
-  Test: buildarea7 ... passed
-Suite: clean
-  Test: test_lwgeom_make_valid ... passed
-Suite: PostGIS Measures Suite
-  Test: test_mindistance2d_tolerance ... passed
-  Test: test_rect_tree_contains_point ... passed
-  Test: test_rect_tree_intersects_tree ... passed
-  Test: test_lwgeom_segmentize2d ... passed
-  Test: test_lwgeom_locate_along ... passed
-  Test: test_lw_dist2d_pt_arc ... passed
-  Test: test_lw_dist2d_seg_arc ... passed
-  Test: test_lw_dist2d_arc_arc ... passed
-  Test: test_lw_arc_length ... passed
-  Test: test_lw_dist2d_pt_ptarrayarc ... passed
-  Test: test_lw_dist2d_ptarray_ptarrayarc ... passed
-Suite: node
-  Test: test_lwgeom_node ... passed
-Suite: WKT Out Suite
-  Test: test_wkt_out_point ... passed
-  Test: test_wkt_out_linestring ... passed
-  Test: test_wkt_out_polygon ... passed
-  Test: test_wkt_out_multipoint ... passed
-  Test: test_wkt_out_multilinestring ... passed
-  Test: test_wkt_out_multipolygon ... passed
-  Test: test_wkt_out_collection ... passed
-  Test: test_wkt_out_circularstring ... passed
-  Test: test_wkt_out_compoundcurve ... passed
-  Test: test_wkt_out_curvpolygon ... passed
-  Test: test_wkt_out_multicurve ... passed
-  Test: test_wkt_out_multisurface ... passed
-Suite: WKT In Suite
-  Test: test_wkt_in_point ... passed
-  Test: test_wkt_in_linestring ... passed
-  Test: test_wkt_in_polygon ... passed
-  Test: test_wkt_in_multipoint ... passed
-  Test: test_wkt_in_multilinestring ... passed
-  Test: test_wkt_in_multipolygon ... passed
-  Test: test_wkt_in_collection ... passed
-  Test: test_wkt_in_circularstring ... passed
-  Test: test_wkt_in_compoundcurve ... passed
-  Test: test_wkt_in_curvpolygon ... passed
-  Test: test_wkt_in_multicurve ... passed
-  Test: test_wkt_in_multisurface ... passed
-  Test: test_wkt_in_tin ... passed
-  Test: test_wkt_in_polyhedralsurface ... passed
-  Test: test_wkt_in_errlocation ... passed
-Suite: WKB Out Suite
-  Test: test_wkb_out_point ... passed
-  Test: test_wkb_out_linestring ... passed
-  Test: test_wkb_out_polygon ... passed
-  Test: test_wkb_out_multipoint ... passed
-  Test: test_wkb_out_multilinestring ... passed
-  Test: test_wkb_out_multipolygon ... passed
-  Test: test_wkb_out_collection ... passed
-  Test: test_wkb_out_circularstring ... passed
-  Test: test_wkb_out_compoundcurve ... passed
-  Test: test_wkb_out_curvpolygon ... passed
-  Test: test_wkb_out_multicurve ... passed
-  Test: test_wkb_out_multisurface ... passed
-  Test: test_wkb_out_polyhedralsurface ... passed
-:
-Suite: Geodetic Suite
-  Test: test_sphere_direction ... passed
-  Test: test_sphere_project ... passed
-  Test: test_lwgeom_area_sphere ... passed
-  Test: test_signum ... passed
-  Test: test_gbox_from_spherical_coordinates ... passed
-:
-  Test: test_geos_noop ... passed
-Suite: Internal Spatial Trees
-  Test: test_tree_circ_create ... passed
-  Test: test_tree_circ_pip ... passed
-  Test: test_tree_circ_pip2 ... passed
-  Test: test_tree_circ_distance ... passed
-Suite: triangulate
-  Test: test_lwgeom_delaunay_triangulation ... passed
+  Test: buildarea1 ...passed
+  Test: buildarea2 ...passed
+  Test: buildarea3 ...passed
+  Test: buildarea4 ...passed
+  Test: buildarea4b ...passed
+  Test: buildarea5 ...passed
+  Test: buildarea6 ...passed
+  Test: buildarea7 ...passed
+Suite: geometry_clean
+  Test: test_lwgeom_make_valid ...passed
+Suite: clip_by_rectangle
+  Test: test_lwgeom_clip_by_rect ...passed
+Suite: force_sfs
+  Test: test_sfs_11 ...passed
+  Test: test_sfs_12 ...passed
+  Test: test_sqlmm ...passed
+Suite: geodetic
+  Test: test_sphere_direction ...passed
+  Test: test_sphere_project ...passed
+  Test: test_lwgeom_area_sphere ...passed
+  Test: test_signum ...passed
+  Test: test_gbox_from_spherical_coordinates ...passed
+  Test: test_gserialized_get_gbox_geocentric ...passed
+  Test: test_clairaut ...passed
+  Test: test_edge_intersection ...passed
+  Test: test_edge_intersects ...passed
+  Test: test_edge_distance_to_point ...passed
+  Test: test_edge_distance_to_edge ...passed
+  Test: test_lwgeom_distance_sphere ...passed
+  Test: test_lwgeom_check_geodetic ...passed
+  Test: test_gserialized_from_lwgeom ...passed
+  Test: test_spheroid_distance ...passed
+  Test: test_spheroid_area ...passed
+  Test: test_lwpoly_covers_point2d ...passed
+  Test: test_gbox_utils ...passed
+  Test: test_vector_angle ...passed
+  Test: test_vector_rotate ...passed
+  Test: test_lwgeom_segmentize_sphere ...passed
+  Test: test_ptarray_contains_point_sphere ...passed
+  Test: test_ptarray_contains_point_sphere_iowa ...passed
+Suite: GEOS
+  Test: test_geos_noop ...passed
+  Test: test_geos_subdivide ...passed
+  Test: test_geos_linemerge ...passed
+Suite: Clustering
+  Test: basic_test ...passed
+  Test: nonsequential_test ...passed
+  Test: basic_distance_test ...passed
+  Test: single_input_test ...passed
+  Test: empty_inputs_test ...passed
+Suite: Clustering Union-Find
+  Test: test_unionfind_create ...passed
+  Test: test_unionfind_union ...passed
+  Test: test_unionfind_ordered_by_cluster ...passed
+Suite: homogenize
+  Test: test_coll_point ...passed
+  Test: test_coll_line ...passed
+  Test: test_coll_poly ...passed
+  Test: test_coll_coll ...passed
+  Test: test_geom ...passed
+  Test: test_coll_curve ...passed
+Suite: encoded_polyline_input
+  Test: in_encoded_polyline_test_geoms ...passed
+  Test: in_encoded_polyline_test_precision ...passed
+Suite: geojson_input
+  Test: in_geojson_test_srid ...passed
+  Test: in_geojson_test_bbox ...passed
+  Test: in_geojson_test_geoms ...passed
+Suite: twkb_input
+  Test: test_twkb_in_point ...passed
+  Test: test_twkb_in_linestring ...passed
+  Test: test_twkb_in_polygon ...passed
+  Test: test_twkb_in_multipoint ...passed
+  Test: test_twkb_in_multilinestring ...passed
+  Test: test_twkb_in_multipolygon ...passed
+  Test: test_twkb_in_collection ...passed
+  Test: test_twkb_in_precision ...passed
+Suite: serialization/deserialization
+  Test: test_typmod_macros ...passed
+  Test: test_flags_macros ...passed
+  Test: test_serialized_srid ...passed
+  Test: test_gserialized_from_lwgeom_size ...passed
+  Test: test_gbox_serialized_size ...passed
+  Test: test_lwgeom_from_gserialized ...passed
+  Test: test_lwgeom_count_vertices ...passed
+  Test: test_on_gser_lwgeom_count_vertices ...passed
+  Test: test_geometry_type_from_string ...passed
+  Test: test_lwcollection_extract ...passed
+  Test: test_lwgeom_free ...passed
+  Test: test_lwgeom_flip_coordinates ...passed
+  Test: test_f2d ...passed
+  Test: test_lwgeom_clone ...passed
+  Test: test_lwgeom_force_clockwise ...passed
+  Test: test_lwgeom_calculate_gbox ...passed
+  Test: test_lwgeom_is_empty ...passed
+  Test: test_lwgeom_same ...passed
+  Test: test_lwline_from_lwmpoint ...passed
+  Test: test_lwgeom_as_curve ...passed
+  Test: test_lwgeom_scale ...passed
+  Test: test_gserialized_is_empty ...passed
+  Test: test_gbox_same_2d ...passed
+Suite: measures
+  Test: test_mindistance2d_tolerance ...passed
+  Test: test_rect_tree_contains_point ...passed
+  Test: test_rect_tree_intersects_tree ...passed
+  Test: test_lwgeom_segmentize2d ...passed
+  Test: test_lwgeom_locate_along ...passed
+  Test: test_lw_dist2d_pt_arc ...passed
+  Test: test_lw_dist2d_seg_arc ...passed
+  Test: test_lw_dist2d_arc_arc ...passed
+  Test: test_lw_arc_length ...passed
+  Test: test_lw_dist2d_pt_ptarrayarc ...passed
+  Test: test_lw_dist2d_ptarray_ptarrayarc ...passed
+  Test: test_lwgeom_tcpa ...passed
+  Test: test_lwgeom_is_trajectory ...passed
+Suite: effectivearea
+  Test: do_test_lwgeom_effectivearea_lines ...passed
+  Test: do_test_lwgeom_effectivearea_polys ...passed
+Suite: miscellaneous
+  Test: test_misc_force_2d ...passed
+  Test: test_misc_simplify ...passed
+  Test: test_misc_count_vertices ...passed
+  Test: test_misc_area ...passed
+  Test: test_misc_wkb ...passed
+  Test: test_grid ...passed
+Suite: noding
+  Test: test_lwgeom_node ...passed
+Suite: encoded_polyline_output
+  Test: out_encoded_polyline_test_geoms ...passed
+  Test: out_encoded_polyline_test_srid ...passed
+  Test: out_encoded_polyline_test_precision ...passed
+Suite: geojson_output
+  Test: out_geojson_test_precision ...passed
+  Test: out_geojson_test_dims ...passed
+  Test: out_geojson_test_srid ...passed
+  Test: out_geojson_test_bbox ...passed
+  Test: out_geojson_test_geoms ...passed
+Suite: gml_output
+  Test: out_gml_test_precision ...passed
+  Test: out_gml_test_srid ...passed
+  Test: out_gml_test_dims ...passed
+  Test: out_gml_test_geodetic ...passed
+  Test: out_gml_test_geoms ...passed
+  Test: out_gml_test_geoms_prefix ...passed
+  Test: out_gml_test_geoms_nodims ...passed
+  Test: out_gml2_extent ...passed
+  Test: out_gml3_extent ...passed
+Suite: kml_output
+  Test: out_kml_test_precision ...passed
+  Test: out_kml_test_dims ...passed
+  Test: out_kml_test_geoms ...passed
+  Test: out_kml_test_prefix ...passed
+Suite: svg_output
+  Test: out_svg_test_precision ...passed
+  Test: out_svg_test_dims ...passed
+  Test: out_svg_test_relative ...passed
+  Test: out_svg_test_geoms ...passed
+  Test: out_svg_test_srid ...passed
+Suite: x3d_output
+  Test: out_x3d3_test_precision ...passed
+  Test: out_x3d3_test_geoms ...passed
+  Test: out_x3d3_test_option ...passed
+Suite: ptarray
+  Test: test_ptarray_append_point ...passed
+  Test: test_ptarray_append_ptarray ...passed
+  Test: test_ptarray_locate_point ...passed
+  Test: test_ptarray_isccw ...passed
+  Test: test_ptarray_signed_area ...passed
+  Test: test_ptarray_unstroke ...passed
+  Test: test_ptarray_insert_point ...passed
+  Test: test_ptarray_contains_point ...passed
+  Test: test_ptarrayarc_contains_point ...passed
+  Test: test_ptarray_scale ...passed
+Suite: printing
+  Test: test_lwprint_default_format ...passed
+  Test: test_lwprint_format_orders ...passed
+  Test: test_lwprint_optional_format ...passed
+  Test: test_lwprint_oddball_formats ...passed
+  Test: test_lwprint_bad_formats ...passed
+Suite: SFCGAL
+  Test: test_sfcgal_noop ...passed
+Suite: split
+  Test: test_lwline_split_by_point_to ...passed
+  Test: test_lwgeom_split ...passed
 Suite: stringbuffer
-  Test: test_stringbuffer_append ... passed
-  Test: test_stringbuffer_aprintf ... passed
+  Test: test_stringbuffer_append ...passed
+  Test: test_stringbuffer_aprintf ...passed
 Suite: surface
-  Test: triangle_parse ... passed
-  Test: tin_parse ... passed
-  Test: polyhedralsurface_parse ... passed
-  Test: surface_dimension ... passed
-Suite: homogenize
-  Test: test_coll_point ... passed
-  Test: test_coll_line ... passed
-  Test: test_coll_poly ... passed
-  Test: test_coll_coll ... passed
-  Test: test_geom ... passed
-  Test: test_coll_curve ... passed
-Suite: force_sfs
-  Test: test_sfs_11 ... passed
-  Test: test_sfs_12 ... passed
-  Test: test_sqlmm ... passed
-Suite: out_gml
-  Test: out_gml_test_precision ... passed
-  Test: out_gml_test_srid ... passed
-  Test: out_gml_test_dims ... passed
-  Test: out_gml_test_geodetic ... passed
-  Test: out_gml_test_geoms ... passed
-  Test: out_gml_test_geoms_prefix ... passed
-  Test: out_gml_test_geoms_nodims ... passed
-  Test: out_gml2_extent ... passed
-  Test: out_gml3_extent ... passed
-Suite: KML Out Suite
-  Test: out_kml_test_precision ... passed
-  Test: out_kml_test_dims ... passed
-  Test: out_kml_test_geoms ... passed
-  Test: out_kml_test_prefix ... passed
-Suite: GeoJson Out Suite
-  Test: out_geojson_test_precision ... passed
-  Test: out_geojson_test_dims ... passed
-  Test: out_geojson_test_srid ... passed
-  Test: out_geojson_test_bbox ... passed
-  Test: out_geojson_test_geoms ... passed
-Suite: SVG Out Suite
-  Test: out_svg_test_precision ... passed
-  Test: out_svg_test_dims ... passed
-  Test: out_svg_test_relative ... passed
-  Test: out_svg_test_geoms ... passed
-  Test: out_svg_test_srid ... passed
-Suite: X3D Out Suite
-  Test: out_x3d3_test_precision ... passed
-  Test: out_x3d3_test_geoms ... passed
-
---Run Summary: Type      Total     Ran  Passed  Failed
-               suites       27      27     n/a       0
-               tests       198     198     198       0
-               asserts    1728    1728    1728       0
+  Test: triangle_parse ...passed
+  Test: tin_parse ...passed
+  Test: polyhedralsurface_parse ...passed
+  Test: surface_dimension ...passed
+Suite: Internal Spatial Trees
+  Test: test_tree_circ_create ...passed
+  Test: test_tree_circ_pip ...passed
+  Test: test_tree_circ_pip2 ...passed
+  Test: test_tree_circ_distance ...passed
+  Test: test_tree_circ_distance_threshold ...passed
+Suite: triangulate
+  Test: test_lwgeom_delaunay_triangulation ...passed
+Suite: twkb_output
+  Test: test_twkb_out_point ...passed
+  Test: test_twkb_out_linestring ...passed
+  Test: test_twkb_out_polygon ...passed
+  Test: test_twkb_out_multipoint ...passed
+  Test: test_twkb_out_multilinestring ...passed
+  Test: test_twkb_out_multipolygon ...passed
+  Test: test_twkb_out_collection ...passed
+  Test: test_twkb_out_idlist ...passed
+Suite: varint
+  Test: test_zigzag ...passed
+  Test: test_varint ...passed
+  Test: test_varint_roundtrip ...passed
+Suite: wkb_input
+  Test: test_wkb_in_point ...passed
+  Test: test_wkb_in_linestring ...passed
+  Test: test_wkb_in_polygon ...passed
+  Test: test_wkb_in_multipoint ...passed
+  Test: test_wkb_in_multilinestring ...passed
+  Test: test_wkb_in_multipolygon ...passed
+  Test: test_wkb_in_collection ...passed
+  Test: test_wkb_in_circularstring ...passed
+  Test: test_wkb_in_compoundcurve ...passed
+  Test: test_wkb_in_curvpolygon ...passed
+  Test: test_wkb_in_multicurve ...passed
+  Test: test_wkb_in_multisurface ...passed
+  Test: test_wkb_in_malformed ...passed
+Suite: wkb_output
+  Test: test_wkb_out_point ...passed
+  Test: test_wkb_out_linestring ...passed
+  Test: test_wkb_out_polygon ...passed
+  Test: test_wkb_out_multipoint ...passed
+  Test: test_wkb_out_multilinestring ...passed
+  Test: test_wkb_out_multipolygon ...passed
+  Test: test_wkb_out_collection ...passed
+  Test: test_wkb_out_circularstring ...passed
+  Test: test_wkb_out_compoundcurve ...passed
+  Test: test_wkb_out_curvpolygon ...passed
+  Test: test_wkb_out_multicurve ...passed
+  Test: test_wkb_out_multisurface ...passed
+  Test: test_wkb_out_polyhedralsurface ...passed
+Suite: wkt_input
+  Test: test_wkt_in_point ...passed
+  Test: test_wkt_in_linestring ...passed
+  Test: test_wkt_in_polygon ...passed
+  Test: test_wkt_in_multipoint ...passed
+  Test: test_wkt_in_multilinestring ...passed
+  Test: test_wkt_in_multipolygon ...passed
+  Test: test_wkt_in_collection ...passed
+  Test: test_wkt_in_circularstring ...passed
+  Test: test_wkt_in_compoundcurve ...passed
+  Test: test_wkt_in_curvpolygon ...passed
+  Test: test_wkt_in_multicurve ...passed
+  Test: test_wkt_in_multisurface ...passed
+  Test: test_wkt_in_tin ...passed
+  Test: test_wkt_in_polyhedralsurface ...passed
+  Test: test_wkt_in_errlocation ...passed
+Suite: wkt_output
+  Test: test_wkt_out_point ...passed
+  Test: test_wkt_out_linestring ...passed
+  Test: test_wkt_out_polygon ...passed
+  Test: test_wkt_out_multipoint ...passed
+  Test: test_wkt_out_multilinestring ...passed
+  Test: test_wkt_out_multipolygon ...passed
+  Test: test_wkt_out_collection ...passed
+  Test: test_wkt_out_circularstring ...passed
+  Test: test_wkt_out_compoundcurve ...passed
+  Test: test_wkt_out_curvpolygon ...passed
+  Test: test_wkt_out_multicurve ...passed
+  Test: test_wkt_out_multisurface ...passed
+
+Run Summary:    Type  Total    Ran Passed Failed Inactive
+              suites     38     38    n/a      0        0
+               tests    251    251    251      0        0
+             asserts   2468   2468   2468      0      n/a
+
+Elapsed time =    0.298 seconds
 
 Creating database 'postgis_reg' 
 Loading PostGIS into 'postgis_reg' 
-PostgreSQL 9.3beta1 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.4.5-8) 4.4.5, 64-bit
-  Postgis 2.1.0SVN - r11415 - 2013-05-11 02:48:21
-  GEOS: 3.4.0dev-CAPI-1.8.0 r3797
-  PROJ: Rel. 4.7.1, 23 September 2009
+  /projects/postgis/branches/2.2/regress/00-regress-install/share/contrib/postgis/postgis.sql
+  /projects/postgis/branches/2.2/regress/00-regress-install/share/contrib/postgis/postgis_comments.sql
+Loading SFCGAL into 'postgis_reg'
+  /projects/postgis/branches/2.2/regress/00-regress-install/share/contrib/postgis/sfcgal.sql
+  /projects/postgis/branches/2.2/regress/00-regress-install/share/contrib/postgis/sfcgal_comments.sql
+PostgreSQL 9.4.4, compiled by Visual C++ build 1800, 32-bit
+  Postgis 2.2.0dev - r13980 - 2015-08-23 06:13:07
+  scripts 2.2.0dev r13980
+  GEOS: 3.5.0-CAPI-1.9.0 r4088
+  PROJ: Rel. 4.9.1, 04 March 2015
+  SFCGAL: 1.1.0
 
 Running tests
 
@@ -950,24 +1127,57 @@ Running tests
  loader/ReprojectPts ........ ok 
  loader/ReprojectPtsGeog ........ ok 
  loader/Latin1 .... ok 
+ loader/Latin1-implicit .... ok 
+ loader/mfile .... ok 
+ dumper/literalsrid ....... ok 
+ dumper/realtable ....... ok 
+ affine .. ok 
+ bestsrid .. ok 
  binary .. ok 
+ boundary .. ok 
+ cluster .. ok 
+ concave_hull .. ok 
+ ctors .. ok 
+ dump .. ok 
+ dumppoints .. ok 
+ empty .. ok 
+ forcecurve .. ok 
+ geography .. ok 
+ in_geohash .. ok 
+ in_gml .. ok 
+ in_kml .. ok 
+ in_encodedpolyline .. ok 
+ iscollection .. ok 
+ legacy .. ok 
+ long_xact .. ok 
+ lwgeom_regress .. ok 
+ measures .. ok 
+ operators .. ok 
+ out_geometry .. ok 
+ out_geography .. ok 
+ polygonize .. ok 
+ polyhedralsurface .. ok 
+ postgis_type_name .. ok 
  regress .. ok 
+ regress_bdpoly .. ok 
  regress_index .. ok 
  regress_index_nulls .. ok 
+ regress_management .. ok 
  regress_selectivity .. ok 
- lwgeom_regress .. ok 
  regress_lrs .. ok 
+ regress_ogc .. ok 
+ regress_ogc_cover .. ok 
+ regress_ogc_prep .. ok 
+ regress_proj .. ok 
+ relate .. ok 
+ remove_repeated_points .. ok 
  removepoint .. ok 
  setpoint .. ok 
  simplify .. ok 
+ simplifyvw .. ok 
+ size .. ok 
  snaptogrid .. ok 
- summary .. ok 
- affine .. ok 
- empty .. ok 
- measures .. ok 
- legacy .. ok 
- long_xact .. ok 
- ctors .. ok 
+ split .. ok 
  sql-mm-serialize .. ok 
  sql-mm-circularstring .. ok 
  sql-mm-compoundcurve .. ok 
@@ -975,35 +1185,16 @@ Running tests
  sql-mm-general .. ok 
  sql-mm-multicurve .. ok 
  sql-mm-multisurface .. ok 
- polyhedralsurface .. ok 
- polygonize .. ok 
- postgis_type_name .. ok 
- geography .. ok 
- out_geometry .. ok 
- out_geography .. ok 
- in_geohash .. ok 
- in_gml .. ok 
- in_kml .. ok 
- iscollection .. ok 
- regress_ogc .. ok 
- regress_ogc_cover .. ok 
- regress_ogc_prep .. ok 
- regress_bdpoly .. ok 
- regress_proj .. ok 
- regress_management .. ok 
- dump .. ok 
- dumppoints .. ok 
- boundary .. ok 
- wmsservers .. ok 
- wkt .. ok 
- wkb .. ok 
+ swapordinates .. ok 
+ summary .. ok 
+ temporal .. ok 
  tickets .. ok 
+ twkb .. ok 
  typmod .. ok 
- remove_repeated_points .. ok 
- split .. ok 
- relate .. ok 
- bestsrid .. ok 
- concave_hull .. ok 
+ wkb .. ok 
+ wkt .. ok 
+ wmsservers .. ok 
+ knn .. ok 
  hausdorff .. ok 
  regress_buffer_params .. ok 
  offsetcurve .. ok 
@@ -1016,10 +1207,95 @@ Running tests
  clean .. ok 
  relate_bnr .. ok 
  delaunaytriangles .. ok 
+ clipbybox2d .. ok 
+ subdivide .. ok 
  in_geojson .. ok 
- uninstall .. ok (4112)
+ regress_sfcgal .. ok 
+ sfcgal/empty .. ok 
+ sfcgal/geography .. ok 
+ sfcgal/legacy .. ok 
+ sfcgal/measures .. ok 
+ sfcgal/regress_ogc_prep .. ok 
+ sfcgal/regress_ogc .. ok 
+ sfcgal/regress .. ok 
+ sfcgal/tickets .. ok 
+ sfcgal/concave_hull .. ok 
+ sfcgal/wmsservers .. ok 
+ sfcgal/approximatemedialaxis .. ok 
+ uninstall .  /projects/postgis/branches/2.2/regress/00-regress-install/share/contrib/postgis/uninstall_sfcgal.sql
+  /projects/postgis/branches/2.2/regress/00-regress-install/share/contrib/postgis/uninstall_postgis.sql
+. ok (4336)
+
+Run tests: 118
+Failed: 0
+
+-- if you built --with-gui, you should see this too
+
+     CUnit - A unit testing framework for C - Version 2.1-2
+     http://cunit.sourceforge.net/
+
 
-Run tests: 90</programlisting>
+Suite: Shapefile Loader File shp2pgsql Test
+  Test: test_ShpLoaderCreate() ...passed
+  Test: test_ShpLoaderDestroy() ...passed
+Suite: Shapefile Loader File pgsql2shp Test
+  Test: test_ShpDumperCreate() ...passed
+  Test: test_ShpDumperDestroy() ...passed
+
+Run Summary:    Type  Total    Ran Passed Failed Inactive
+              suites      2      2    n/a      0        0
+               tests      4      4      4      0        0
+             asserts      4      4      4      0      n/a</programlisting>
+
+	  <para>The <varname>postgis_tiger_geocoder</varname> and <varname>address_standardizer</varname> extensions, currenlty only support the standard PostgreSQL installcheck.  To test these use the below.  Note: the make install is not necessary if you already did make install at root of PostGIS code folder.</para>
+	  <para>For address_standardizer:
+	  <programlisting>cd extensions/address_standardizer
+make install
+make installcheck
+	  </programlisting></para>
+	  
+	  <para>Output should look like:
+	  <screen>============== dropping database "contrib_regression" ==============
+DROP DATABASE
+============== creating database "contrib_regression" ==============
+CREATE DATABASE
+ALTER DATABASE
+============== running regression test queries        ==============
+test test-init-extensions     ... ok
+test test-parseaddress        ... ok
+test test-standardize_address_1 ... ok
+test test-standardize_address_2 ... ok
+
+=====================
+ All 4 tests passed.
+=====================</screen></para>
+	  
+	  <para>For tiger geocoder, make sure you have postgis and fuzzystrmatch extensions available in your PostgreSQL instance. The address_standardizer tests will also kick in if you built postgis with address_standardizer support:
+	  <programlisting>cd extensions/postgis_tiger_geocoder
+make install
+make installcheck
+	  </programlisting></para>
+	  <para>output should look like:
+	  <screen>============== dropping database "contrib_regression" ==============
+DROP DATABASE
+============== creating database "contrib_regression" ==============
+CREATE DATABASE
+ALTER DATABASE
+============== installing fuzzystrmatch               ==============
+CREATE EXTENSION
+============== installing postgis                     ==============
+CREATE EXTENSION
+============== installing postgis_tiger_geocoder      ==============
+CREATE EXTENSION
+============== installing address_standardizer        ==============
+CREATE EXTENSION
+============== running regression test queries        ==============
+test test-normalize_address   ... ok
+test test-pagc_normalize_address ... ok
+
+=====================
+All 2 tests passed.
+=====================</screen></para>
 	</sect2>
 
 	<sect2>
@@ -1214,16 +1490,48 @@ Run tests: 90</programlisting>
 	<para>You can later run <filename>uninstall_legacy.sql</filename> to get rid of the deprecated functions after you are done with restoring and cleanup.</para>
   </sect1>
   
+  <sect1 id="installing_pagc_address_standardizer"><title>Installing and Using the address standardizer</title>
+  		<para>The <code>address_standardizer</code> extension used to be a separate package that required separate download. From PostGIS 2.2 on, it is now bundled in.
+  		For more information about the address_standardize, what it does, and how to configure it for your needs, refer to <xref linkend="Address_Standardizer" />.</para>
+  		<para>This standardizer can be used in conjunction with the PostGIS packaged tiger geocoder extension as a replacement for the <xref linkend="Normalize_Address" /> discussed.
+  		To use as replacement refer to  <xref linkend="tiger_pagc_address_standardizing" />.
+  		You can also use it as a building block for your own geocoder or use it to standardize your addresses for easier compare of addresses.</para>
+	
+		<para>The address standardizer relies on PCRE which is usually already installed on many Nix systems, 
+but you can download the latest at: <ulink url="http://www.pcre.org">http://www.pcre.org</ulink>. If during <xref linkend="installation_configuration" />, PCRE is found, then the address standardizer extension will automatically be built.  If you have a custom pcre install you want to use instead, pass to configure <code>--with-pcredir=/path/to/pcre</code> where <filename>/path/to/pcre</filename> is the root folder for your pcre include and lib directories.</para>
+
+		<para>For Windows users, the PostGIS 2.1+ bundle is packaged with the address_standardizer already so no need to compile and can move straight to <code>CREATE EXTENSION</code> step.</para>
+
+
+      <para>Once you have installed, you can connect to your database and run the SQL:</para>
+			<programlisting>CREATE EXTENSION address_standardizer;</programlisting>
+			
+			<para>The following test requires no rules, gaz, or lex tables</para>
+			<programlisting>SELECT num, street, city, state, zip 
+ FROM parse_address('1 Devonshire Place, Boston, MA 02109');</programlisting>
+			<para>Output should be</para>
+			<screen> num |         street         |  city  | state |  zip
+-----+------------------------+--------+-------+-------
+ 1   | Devonshire Place PH301 | Boston | MA    | 02109</screen>
+ 
+        <sect2><title>Installing Regex::Assemble</title>
+            <para>Perl Regex:Assemble is no longer needed for compiling address_standardizer extension since the files it generates are part of the source tree.  However if you need to edit the <filename>usps-st-city-orig.txt</filename> or <filename>usps-st-city-orig.txt usps-st-city-adds.tx</filename>, you need to rebuild <filename>parseaddress-stcities.h</filename> which does require Regex:Assemble.</para>
+            <programlisting>cpan Regexp::Assemble</programlisting>
+            <para>or if you are on Ubuntu / Debian you might need to do</para>
+            <programlisting>sudo perl -MCPAN -e "install Regexp::Assemble"</programlisting>
+        </sect2>
+	</sect1>
+  
   <sect1 id="loading_extras_tiger_geocoder">
   	<title>Installing, Upgrading Tiger Geocoder and loading data</title>
   	
-	<para>Extras like Tiger geocoder may not be packaged in your PostGIS distribution, but will always be available in the postgis-&last_release_version;.tar.gz file. The instructions provided here are also available in the <filename>extras/tiger_geocoder/tiger_2011/README</filename> </para>
+	<para>Extras like Tiger geocoder may not be packaged in your PostGIS distribution, but will always be available in the postgis-&last_release_version;.tar.gz file. The instructions provided here are also available in the <filename>extras/tiger_geocoder/README</filename> </para>
 	<para>If you are on Windows and you don't have tar installed, you can use <ulink url="http://www.7-zip.org/">http://www.7-zip.org/</ulink> to unzip the PostGIS tarball.</para>
 	<sect2 id="install_tiger_geocoder_extension">
 		<title>Tiger Geocoder Enabling your PostGIS database: Using Extension</title>	
-		<para>If you are using PostgreSQL 9.1+ and PostGIS 2.1.0+, you can take advantage of the new extension model for installing tiger geocoder. To do so:</para>
+		<para>If you are using PostgreSQL 9.1+ and PostGIS 2.1+, you can take advantage of the new extension model for installing tiger geocoder. To do so:</para>
 		<orderedlist>
-			<listitem><para>First get binaries for PostGIS 2.1.0 or compile and install as usual.  This should install the necessary extension files as well for tiger geocoder.</para></listitem>
+			<listitem><para>First get binaries for PostGIS 2.1+ or compile and install as usual.  This should install the necessary extension files as well for tiger geocoder.</para></listitem>
 			<listitem><para>Connect to your database via psql or pgAdmin or some other tool and run the following SQL commands.  Note that if you are installing in a database that already has postgis, you don't need to do the first step.  If you have <varname>fuzzystrmatch</varname> extension already installed, you don't need to do the second step either.</para>
 			<para><programlisting>CREATE EXTENSION postgis;		
 CREATE EXTENSION fuzzystrmatch;
@@ -1248,8 +1556,21 @@ SELECT 'debbie', declare_sect, pgbin, wget, unzip_command, psql, path_sep,
 			
 				<para>If you don't edit this  <varname>loader_platform</varname> table, it will just contain common case locations of items and you'll have to edit the generated script after the script is generated.</para>
 			</listitem>
-			<listitem><para>Then run the  <xref linkend="Loader_Generate_Nation_Script" /> and <xref linkend="Loader_Generate_Script" />  SQL functions make sure to use the name of your custom profile.  So for example to do the nation load using our new profile we would:</para>
+			<listitem><para>Then run the  <xref linkend="Loader_Generate_Nation_Script" /> and <xref linkend="Loader_Generate_Script" />  SQL functions make sure to use the name of your custom profile and copy the scripts to a .sh or .bat file.  So for example to do the nation load and one state using our new profile we would:</para>
 					<programlisting>SELECT Loader_Generate_Nation_Script('debbie');</programlisting>
+					<programlisting>SELECT Loader_Generate_Script(ARRAY['MA'], 'debbie');</programlisting>
+			</listitem>
+			<listitem><para>Run the generated scripts.</para></listitem>
+			<listitem><para>After you are done loading all data or at a stopping point, it's a good idea to analyze all the tiger tables to update the stats (include inherited stats)</para>
+			    <programlisting>SELECT install_missing_indexes();
+vacuum analyze verbose tiger.addr;
+vacuum analyze verbose tiger.edges;
+vacuum analyze verbose tiger.faces;
+vacuum analyze verbose tiger.featnames;
+vacuum analyze verbose tiger.place;
+vacuum analyze verbose tiger.cousub;
+vacuum analyze verbose tiger.county;
+vacuum analyze verbose tiger.state;</programlisting>
 			</listitem>
 		</orderedlist>
 		<sect3 id="convert_tiger_geocoder_extension"><title>Converting a Tiger Geocoder Regular Install to Extension Model</title>
@@ -1262,30 +1583,6 @@ SELECT 'debbie', declare_sect, pgbin, wget, unzip_command, psql, path_sep,
 			</orderedlist>
 		</sect3>
 		
-		<sect3 id="installing_pagc_address_standardizer"><title>Using PAGC address standardizer</title>
-			<para>One of the many complaints of folks is the address normalizer function <xref linkend="Normalize_Address" /> function that normalizes an address for prepping before geocoding.  The normalizer is far from perfect and trying to patch its imperfectness takes a vast amount of resources.  As such we have integrated with another
-			project that has a much better address standardizer engine.  This is currently a separate project, which is a subproject of PAGC.  The source code for this PostgreSQL standardizer extension can be downloaded from <ulink url="http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql">PAGC PostgreSQL Address Standardizer</ulink>.  To use this new normalizer, you compile the pagc extension and install as an extension in your database.</para>
-			<para>The PAGC project and standardizer portion in particular, relies on PCRE which is usually already installed on most Nix systems, 
-but you can download the latest at: <ulink url="http://www.pcre.org">http://www.pcre.org</ulink>. It also requires Perl with the <code>Regexp::Assemble</code> installed </para>
-			<para>For Windows users, the PostGIS 2.1+ bundle will come packaged with the address_standardizer already so no need to compile and can move straight to <code>CREATE EXTENSION</code> step.</para>
-			<para>Installing Regex::Assemble</para>
-			<programlisting>cpan Regexp::Assemble</programlisting>
-			<para>or if you are on Ubuntu / Debian you might need to do</para>
-			<programlisting>sudo perl -MCPAN -e "install Regexp::Assemble"</programlisting>
-			<para>Compiling</para>
-			<programlisting>svn co svn://svn.code.sf.net/p/pagc/code/branches/sew-refactor/postgresql address_standardizer
-cd address_standardizer
-make
-#if you have in non-standard location pcre try
-# make SHLIB_LINK="-L/path/pcre/lib -lpostgres -lpgport -lpcre" CPPFLAGS="-I.  -I/path/pcre/include" 
-make install</programlisting>
-
-      <para>Once you have installed, you can connect to your database and run the SQL:</para>
-			<programlisting>CREATE EXTENSION address_standardizer;</programlisting>
-			
-			<para>Once you install this extension in the same database as you have installed <code>postgis_tiger_geocoder</code>, then the <xref linkend="Pagc_Normalize_Address" /> can be used instead of <xref linkend="Normalize_Address" />. The other nice thing about this extension is that its tiger agnostic, so can be used with other data sources such as international addresses.</para>
-
-		</sect3>
 	</sect2>
 	<sect2 id="install_tiger_geocoder">
 		<title>Tiger Geocoder Enabling your PostGIS database: Not Using Extensions</title>
@@ -1302,10 +1599,10 @@ make install</programlisting>
 		</para>
 	
 		<para>
-		  <command>cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011</command>
+		  <command>cd postgis-&last_release_version;/extras/tiger_geocoder</command>
 		</para>
 	
-		<para>Edit the <filename>tiger_loader_2012.sql</filename> to the paths of your executables server etc or alternatively you can update the <varname>loader_platform</varname> table once installed. If you don't edit this file or the <varname>loader_platform</varname> table, it will just contain common case locations of items and you'll have to edit the generated script after the fact when you run the  <xref linkend="Loader_Generate_Nation_Script" /> and <xref linkend="Loader_Generate_Scri [...]
+		<para>Edit the <filename>tiger_loader_2015.sql</filename> (or latest loader file you find, unless you want to load different year) to the paths of your executables server etc or alternatively you can update the <varname>loader_platform</varname> table once installed. If you don't edit this file or the <varname>loader_platform</varname> table, it will just contain common case locations of items and you'll have to edit the generated script after the fact when you run the  <xref linkend=" [...]
 		 </para>
 		<para>If you are installing Tiger geocoder for the first time edit either the <filename>create_geocode.bat</filename> script If you are on windows
 			or the <filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with your PostgreSQL specific settings and run the corresponding script from the commandline. </para>
@@ -1320,6 +1617,12 @@ pretty_address
 			</programlisting>
 		</para>
 	</sect2>
+	<sect2 id="tiger_pagc_address_standardizing"><title>Using Address Standardizer Extension with Tiger geocoder</title>
+			<para>One of the many complaints of folks is the address normalizer function <xref linkend="Normalize_Address" /> function that normalizes an address for prepping before geocoding.  The normalizer is far from perfect and trying to patch its imperfectness takes a vast amount of resources.  As such we have integrated with another
+			project that has a much better address standardizer engine.  To use this new address_standardizer, you compile the extension as described in <xref linkend="installing_pagc_address_standardizer" /> and install as an extension in your database.</para>
+						
+			<para>Once you install this extension in the same database as you have installed <code>postgis_tiger_geocoder</code>, then the <xref linkend="Pagc_Normalize_Address" /> can be used instead of <xref linkend="Normalize_Address" />. This extension is tiger agnostic, so can be used with other data sources such as international addresses. The tiger geocoder extension does come packaged with its own custom versions of <xref linkend="rulestab" /> ( <code>tiger.pagc_rules</code>) , <xref link [...]
+	</sect2>
 	<sect2 id="tiger_geocoder_loading_data">
 		<title>Loading Tiger Data</title>
 		<para>The instructions for loading data are available in a more detailed form  in the <filename>extras/tiger_geocoder/tiger_2011/README</filename>.  This just includes the general steps.</para>	
@@ -1446,12 +1749,10 @@ pretty_address
 	  <para>This section applies only to those who installed PostGIS not using extensions.  If you have extensions and try to upgrade with this approach you'll get messages like:</para>
 	  <programlisting>can't drop ... because postgis extension depends on it</programlisting>
 	  <para>
-		After compiling you should find several <filename>postgis_upgrade*.sql</filename> files.  Install the one
-		for your version of PostGIS.  For example <filename>postgis_upgrade_20_to_21.sql</filename> should be used if you are upgrading 
-		from PostGIS 2.0 to 2.1.  If you are moving from PostGIS 1.* to PostGIS 2.* or from PostGIS 2.* prior to r7409, you need to do a HARD UPGRADE.
+		After compiling and installing (make install) you should find a  <filename>postgis_upgrade.sql</filename> and <filename>rtpostgis_upgrade.sql</filename> in the installation folders. For example <filename>/usr/share/postgresql/9.3/contrib/postgis_upgrade.sql</filename>.  Install the <filename>postgis_upgrade.sql</filename>. If you have raster functionality installed, you will also need to install the <filename>/usr/share/postgresql/9.3/contrib/postgis_upgrade.sql</filename>. If you are  [...]
 	  </para>
 
-	  <programlisting>psql -f postgis_upgrade_21_minor.sql -d your_spatial_database</programlisting>
+	  <programlisting>psql -f postgis_upgrade.sql -d your_spatial_database</programlisting>
 
 	  <para>
 		The same procedure applies to raster and
@@ -1461,8 +1762,8 @@ pretty_address
 		If you need them:
 	  </para>
 
-	  <programlisting>psql -f rtpostgis_upgrade_21_minor.sql -d your_spatial_database</programlisting>
-	  <programlisting>psql -f topology_upgrade_21_minor.sql -d your_spatial_database</programlisting>
+	  <programlisting>psql -f rtpostgis_upgrade.sql -d your_spatial_database</programlisting>
+	  <programlisting>psql -f topology_upgrade.sql -d your_spatial_database</programlisting>
 
 	  <note>
 		<para>
@@ -1702,51 +2003,6 @@ ALTER EXTENSION postgis_topology UPDATE TO "&last_release_version;next";</progra
   </sect1>
 
   <sect1>
-	<title>JDBC</title>
-
-	<para>
-	  The JDBC extensions provide Java objects corresponding to the internal
-	  PostGIS types. These objects can be used to write Java clients which query
-	  the PostGIS database and draw or do calculations on the GIS data in
-	  PostGIS.
-	</para>
-
-	<orderedlist>
-	  <listitem>
-		<para>
-		  Enter the <filename>java/jdbc</filename> sub-directory of the PostGIS
-		  distribution.
-		</para>
-	  </listitem>
-
-	  <listitem>
-		<para>
-		  Run the <filename>ant</filename> command. Copy the
-		  <filename>postgis.jar</filename> file to wherever you keep your java
-		  libraries.
-		</para>
-	  </listitem>
-	</orderedlist>
-
-	<para>
-	  The JDBC extensions require a PostgreSQL JDBC driver to be present in the
-	  current CLASSPATH during the build process. If the PostgreSQL JDBC driver
-	  is located elsewhere, you may pass the location of the JDBC driver JAR
-	  separately using the -D parameter like this:
-	</para>
-
-	<programlisting># ant -Dclasspath=/path/to/postgresql-jdbc.jar</programlisting>
-
-	<para>
-	  PostgreSQL JDBC drivers can be downloaded from
-	  <ulink url="http://jdbc.postgresql.org">
-		http://jdbc.postgresql.org
-	  </ulink>
-	  .
-	</para>
-  </sect1>
-
-  <sect1>
 	<title>Loader/Dumper</title>
 
 	<para>
diff --git a/doc/introduction.xml b/doc/introduction.xml
index fa65056..f211141 100644
--- a/doc/introduction.xml
+++ b/doc/introduction.xml
@@ -94,6 +94,13 @@
 			  <para>Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes.</para>
 			</listitem>
 		</varlistentry>
+		
+		<varlistentry>
+			<term>Mateusz Loskot</term>
+			<listitem>
+			  <para>CMake support for PostGIS, built original raster loader in python and low level raster api functions</para>
+			</listitem>
+		</varlistentry>	
 				
 		<varlistentry>
 			<term>Pierre Racine</term>
@@ -139,13 +146,6 @@
 		</varlistentry>
 		
 		<varlistentry>
-			<term>Mateusz Loskot</term>
-			<listitem>
-			  <para>Raster loader, low level raster api functions</para>
-			</listitem>
-		</varlistentry>	  
-		
-		<varlistentry>
 		<term>Jeff Lounsbury</term>
 		<listitem>
 		  <para>Original development of the Shape file loader/dumper. Current PostGIS Project Owner representative.</para>
@@ -211,6 +211,7 @@ Markus Schaber,
 Maxime Guillaud,
 Maxime van Noppen,
 Michael Fuhr,
+Mike Toews,
 Nathan Wagner,
 Nathaniel Clay,
 Nikita Shulga,
@@ -222,6 +223,7 @@ Silvio Grosso,
 Steffen Macke,
 Stephen Frost,
 Tom van Tilburg,
+Vincent Mora,
 Vincent Picavet
 		  </para>
 		</listitem>
@@ -253,14 +255,14 @@ Logical Tracking & Tracing International AG,
 Michigan Tech Research Institute,
 Natural Resources Canada,
 Norwegian Forest and Landscape Institute,
-OpenGeo,
+Boundless (former OpenGeo),
 OSGeo,
 Oslandia,
 Palantir Technologies,
 Paragon Corporation,
 R3 GIS,
 Refractions Research,
-Regione Toscana-SIGTA,
+Regione Toscana - SITA,
 Safe Software,
 Sirius Corporation plc,
 Stadt Uster,
diff --git a/doc/man/pgsql2shp.1 b/doc/man/pgsql2shp.1
index eda02ad..dda3097 100644
--- a/doc/man/pgsql2shp.1
+++ b/doc/man/pgsql2shp.1
@@ -98,7 +98,7 @@ look like this:
 .SH "AUTHORS"
 .LP
 Originally written by Jeff Lounsbury <jeffloun at refractions.net>.
-Improved and maintained by Sandro Santilli <strk at refractions.net>.
+Improved and maintained by Sandro Santilli <strk at keybit.net>.
 Includes small contributions and improvements by others.
 
 This application uses functionality from shapelib 1.2.9
diff --git a/doc/man/shp2pgsql.1 b/doc/man/shp2pgsql.1
index 83b7445..cd6b0d1 100644
--- a/doc/man/shp2pgsql.1
+++ b/doc/man/shp2pgsql.1
@@ -76,9 +76,20 @@ lat/lon data.  At the moment the only spatial reference supported is 4326.
 Specify the name of the geometry column (mostly useful in append mode).
 .TP 
 \fB\-k\fR
-Keep idendifiers case (column, schema and attributes). Note that attributes 
+Keep identifiers case (column, schema and attributes). Note that attributes 
 in Shapefile are usually all UPPERCASE.
 .TP 
+\fB\-m\fR <\fIfilename\fR>
+Specify a file containing a set of mappings of (long) column names to 10
+character DBF column names. The content of the file is one or more lines 
+of two names separated by white space and no trailing or leading space:
+
+COLUMNNAME DBFFIELD1\\n
+.br
+AVERYLONGCOLUMNNAME DBFFIELD2\\n
+
+etc.
+.TP 
 \fB\-i\fR
 Coerce all integers to standard 32\-bit integers, do not create 64\-bit 
 bigints, even if the DBF header signature appears to warrant it.
@@ -135,7 +146,7 @@ A conversion and upload can be done all in one step using UNIX pipes:
 .SH "AUTHORS"
 .LP
 Originally written by Jeff Lounsbury <jeffloun at refractions.net>.
-Improved and maintained by Sandro Santilli <strk at refractions.net>.
+Improved and maintained by Sandro Santilli <strk at keybit.net>.
 Includes small contributions and improvements by others.
 
 This application uses functionality from shapelib 1.2.9
diff --git a/doc/po/README b/doc/po/README
index 36f6f5f..e0c4950 100644
--- a/doc/po/README
+++ b/doc/po/README
@@ -3,9 +3,37 @@ Translation files for the PostGIS manual.
 Compilation of the files require the ``poxml`` package,
 part of the KDE development kit.
 
-Run ``make`` in language directories to generate the 
-localized manual.
+In language subdirectories, run ``make`` to build localized manual and
+comments, ``make local-pdf`` for the pdf.
 
-Run ``make update-po`` from the parent directory to
-update the translation files to be in sync with the 
-official documentation.
+In parent directory (doc), run ``make update-po`` to update the translation
+files to be in sync with the source code, ``make html-localized`` or
+``make pdf-localized`` to build the localized html or pdf manual for
+all enabled languages
+
+Using transifex
+---------------
+
+Transifex web-ui to translation was setup here:
+https://www.transifex.com/projects/p/postgis
+
+Run ``make update-tx`` from the parent (doc) directory to
+update the transifex command-line tool configuration,
+found in ../.tx/config (only needed when new doc sources
+are added);
+
+Run ``make pull-tx`` to import remotely updated translations
+and ``make push-tx`` to upload the locally update ones, after
+making sure they are well-formed (``make html-localized`` succeeds).
+
+NOTE: the recommended workflow is:
+
+ make pull-tx
+ do:
+  make html-localized || edit
+ until success 
+ if edits:
+  make push-tx
+  make pull-tx
+  commit changes to repo
+ fi
diff --git a/doc/po/es/Makefile b/doc/po/es/Makefile
new file mode 100644
index 0000000..654f17b
--- /dev/null
+++ b/doc/po/es/Makefile
@@ -0,0 +1,2 @@
+DOCSUFFIX=-es
+include ../Makefile.local
diff --git a/doc/po/es/extras.xml.po b/doc/po/es/extras.xml.po
new file mode 100644
index 0000000..5f07f7a
--- /dev/null
+++ b/doc/po/es/extras.xml.po
@@ -0,0 +1,40 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Carlos Barrios <gbarrios at aaa.upv.es>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-10-14 22:34+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: extras.xml:3
+#, no-c-format
+msgid "PostGIS Extras"
+msgstr ""
+
+#. Tag: para
+#: extras.xml:5
+#, no-c-format
+msgid ""
+"This chapter documents features found in the extras folder of the PostGIS "
+"source tarballs and source repository. These are not always packaged with "
+"PostGIS binary releases, but are usually plpgsql based or standard shell "
+"scripts that can be run as is."
+msgstr ""
+
+#. Tag: chapter
+#: extras.xml:6
+#, no-c-format
+msgid "&extras_tigergeocoder;"
+msgstr ""
diff --git a/doc/po/es/extras_address_standardizer.xml.po b/doc/po/es/extras_address_standardizer.xml.po
new file mode 100644
index 0000000..e1cfe8a
--- /dev/null
+++ b/doc/po/es/extras_address_standardizer.xml.po
@@ -0,0 +1,852 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-13 18:05+0000\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: extras_address_standardizer.xml:3
+#, no-c-format
+msgid "Address Standardizer"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:4
+#, no-c-format
+msgid ""
+"This is a fork of the <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-11."
+"html\">PAGC standardizer</ulink> (original code for this portion was <ulink "
+"url=\"http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/"
+"postgresql\">PAGC PostgreSQL Address Standardizer</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:5
+#, no-c-format
+msgid ""
+"The address standardizer is a single line address parser that takes an input "
+"address and normalizes it based on a set of rules stored in a table and "
+"helper lex and gaz tables."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:6
+#, no-c-format
+msgid ""
+"The code is built into a single postgresql extension library called "
+"<code>address_standardizer</code> which can be installed with <code>CREATE "
+"EXTENSION address_standardizer;</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:7
+#, no-c-format
+msgid ""
+"The code for this extension can be found in the PostGIS <filename>extensions/"
+"address_standardizer</filename> and is currently self-contained."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:8
+#, no-c-format
+msgid ""
+"For installation instructions refer to: <xref linkend="
+"\"installing_pagc_address_standardizer\"/>."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:9
+#, no-c-format
+msgid "How the Parser Works"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:10
+#, no-c-format
+msgid ""
+"The parser works from right to left looking first at the macro elements for "
+"postcode, state/province, city, and then looks micro elements to determine "
+"if we are dealing with a house number street or intersection or landmark. It "
+"currently does not look for a country code or name, but that could be "
+"introduced in the future."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:17
+#, no-c-format
+msgid "Country code"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:18
+#, no-c-format
+msgid ""
+"Assumed to be US or CA based on: postcode as US or Canada state/province as "
+"US or Canada else US"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:21
+#, no-c-format
+msgid "Postcode/zipcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:22
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c and are relatively simple to make "
+"changes to if needed."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:27
+#, no-c-format
+msgid "State/province"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:28
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c but could get moved into includes in "
+"the future for easier maintenance."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:37
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by Address "
+"Standardizer extension. Note we describe the casting behavior of these which "
+"is very important especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:42
+#, no-c-format
+msgid "Address Standardizer Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:45
+#, no-c-format
+msgid "stdaddr"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:46
+#, no-c-format
+msgid ""
+"A composite type that consists of the elements of an address. This is the "
+"return type for <varname>standardize_address</varname> function."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:49 extras_address_standardizer.xml:152
+#: extras_address_standardizer.xml:214 extras_address_standardizer.xml:256
+#: extras_address_standardizer.xml:314 extras_address_standardizer.xml:369
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:50
+#, no-c-format
+msgid ""
+"A composite type that consists of elements of an address. This is the return "
+"type for <xref linkend=\"standardize_address\"/> function. Some descriptions "
+"for elements are borrowed from <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#ss12.1\">PAGC Postal Attributes</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:51
+#, no-c-format
+msgid ""
+"The token numbers denote the reference number in the <varname>rules</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:52 extras_address_standardizer.xml:321
+#: extras_address_standardizer.xml:375
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:55
+#, no-c-format
+msgid "building"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:57
+#, no-c-format
+msgid ""
+"is text (token number <code>0</code>): Refers to building number or name. "
+"Unparsed building identifiers and types. Generally blank for most addresses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:60
+#, no-c-format
+msgid "house_num"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:62
+#, no-c-format
+msgid ""
+"is a text (token number <code>1</code>): This is the street number on a "
+"street. Example <emphasis>75</emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:65
+#, no-c-format
+msgid "predir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:66
+#, no-c-format
+msgid ""
+"is text (token number <code>2</code>): STREET NAME PRE-DIRECTIONAL such as "
+"North, South, East, West etc."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:68
+#, no-c-format
+msgid "qual"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:70
+#, no-c-format
+msgid ""
+"is text (token number <code>3</code>): STREET NAME PRE-MODIFIER Example "
+"<emphasis>OLD</emphasis> in <code>3715 OLD HIGHWAY 99</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:73
+#, no-c-format
+msgid "pretype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:75
+#, no-c-format
+msgid "is text (token number <code>4</code>): STREET PREFIX TYPE"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:78
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:80
+#, no-c-format
+msgid "is text (token number <code>5</code>): STREET NAME"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:83
+#, no-c-format
+msgid "suftype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:85
+#, no-c-format
+msgid ""
+"is text (token number <code>6</code>): STREET POST TYPE e.g. St, Ave, Cir. A "
+"street type following the root street name. Example <emphasis>STREET</"
+"emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:88
+#, no-c-format
+msgid "sufdir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:90
+#, no-c-format
+msgid ""
+"is text (token number <code>7</code>): STREET POST-DIRECTIONAL A directional "
+"modifier that follows the street name.. Example <emphasis>WEST</emphasis> in "
+"<code>3715 TENTH AVENUE WEST</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:93
+#, no-c-format
+msgid "ruralroute"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:95
+#, no-c-format
+msgid ""
+"is text (token number <code>8</code>): RURAL ROUTE . Example <emphasis>8</"
+"emphasis> in <code>RR 7</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:98
+#, no-c-format
+msgid "extra"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:100
+#, no-c-format
+msgid "is text: Extra information like Floor number."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:103
+#, no-c-format
+msgid "city"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:105
+#, no-c-format
+msgid "is text (token number <code>10</code>): Example Boston."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:108
+#, no-c-format
+msgid "state"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:110
+#, no-c-format
+msgid ""
+"is text (token number <code>11</code>): Example <code>MASSACHUSETTS</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:113
+#, no-c-format
+msgid "country"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:115
+#, no-c-format
+msgid "is text (token number <code>12</code>): Example <code>USA</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:118
+#, no-c-format
+msgid "postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:120
+#, no-c-format
+msgid ""
+"is text POSTAL CODE (ZIP CODE) (token number <code>13</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:123
+#, no-c-format
+msgid "<term>box</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:125
+#, no-c-format
+msgid ""
+"is text POSTAL BOX NUMBER (token number <code>14 and 15</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:128
+#, no-c-format
+msgid "unit"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:130
+#, no-c-format
+msgid ""
+"is text Apartment number or Suite Number (token number <code>17</code>): "
+"Example <emphasis>3B</emphasis> in <code>APT 3B</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:141
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL table formats used by the "
+"address_standardizer for normalizing addresses. Note that these tables do "
+"not need to be named the same as what is referenced here. You can have "
+"different lex, gaz, rules tables for each country for example or for your "
+"custom geocoder. The names of these tables get passed into the address "
+"standardizer functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:145
+#, no-c-format
+msgid "Address Standardizer Tables"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:148
+#, no-c-format
+msgid "rules table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:149
+#, no-c-format
+msgid ""
+"The rules table contains a set of rules that maps address input sequence "
+"tokens to standardized output sequence"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:153
+#, no-c-format
+msgid ""
+"A rules table must have at least the following columns, though you are "
+"allowed to add more for your own uses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:157 extras_address_standardizer.xml:220
+#: extras_address_standardizer.xml:262
+#, no-c-format
+msgid "<term>id</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:159 extras_address_standardizer.xml:222
+#: extras_address_standardizer.xml:264
+#, no-c-format
+msgid "Primary key of table"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:162
+#, no-c-format
+msgid "rule"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:164
+#, no-c-format
+msgid ""
+"text field denoting the rule. Details at <ulink url=\"http://www.pagcgeo.org/"
+"docs/html/pagc-12.html#--r-rec--\">PAGC Address Standardizer Rule records</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:165
+#, no-c-format
+msgid ""
+"A rule consists of a set of non-negative integers representing input tokens, "
+"terminated by a -1, followed by an equal number of non-negative integers "
+"representing postal attributes, terminated by a -1, followed by an integer "
+"representing a rule type, followed by an integer representing the rank of "
+"the rule. The rules are ranked from 0 (lowest) to 17 (highest)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:166
+#, no-c-format
+msgid ""
+"So for example the rule <code>2 0 2 22 3 -1 5 5 6 7 3 -1 2 6</code> maps to "
+"sequence of tokens <emphasis>TYPE NUMBER TYPE DIRECT QUALIF</emphasis> to "
+"the output sequence <emphasis>STREET STREET SUFTYP SUFDIR QUALIF</emphasis>. "
+"The rule is an ARC_C rule of rank 6."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:171
+#, no-c-format
+msgid "Each rule has a rule type which is denoted by one of following:"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:174
+#, no-c-format
+msgid "MACRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:176
+#, no-c-format
+msgid "(token number = \"0\"). The class of rules for parsing MACRO clauses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:180
+#, no-c-format
+msgid "MICRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:182
+#, no-c-format
+msgid ""
+"(token number = \"1\"). The class of rules for parsing full MICRO clauses "
+"(ie ARC_C plus CIVIC_C). These rules are not used in the build phase."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:186
+#, no-c-format
+msgid "ARC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:188
+#, no-c-format
+msgid ""
+"(token number = \"2\"). The class of rules for parsing MICRO clauses, "
+"excluding the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:192
+#, no-c-format
+msgid "CIVIC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:194
+#, no-c-format
+msgid ""
+"(token number = \"3\"). The class of rules for parsing the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:198
+#, no-c-format
+msgid "EXTRA_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:200
+#, no-c-format
+msgid ""
+"(token number = \"4\"). The class of rules for parsing EXTRA attributes - "
+"attributes excluded from geocoding. These rules are not used in the build "
+"phase."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:210
+#, no-c-format
+msgid "lex table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:211
+#, no-c-format
+msgid ""
+"A lex table is used to classify alphanumeric input and associate that input "
+"with (a) input tokens ( See Input Tokens) and (b) standardized "
+"representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:215
+#, no-c-format
+msgid ""
+"A lex (short for lexicon) table is used to classify alphanumeric input and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. Things you will find in these tables are <code>ONE</code> "
+"mapped to stdworkd: <code>1</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:217
+#, no-c-format
+msgid "A lex has at least the following columns in the table. You may add"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:225 extras_address_standardizer.xml:267
+#, no-c-format
+msgid "<term>seq</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:227 extras_address_standardizer.xml:269
+#, no-c-format
+msgid "integer: definition number?"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:231 extras_address_standardizer.xml:272
+#, no-c-format
+msgid "word"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:233 extras_address_standardizer.xml:274
+#, no-c-format
+msgid "text: the input word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:236 extras_address_standardizer.xml:277
+#, no-c-format
+msgid "stdword"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:238 extras_address_standardizer.xml:279
+#, no-c-format
+msgid "text: the standardized replacement word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:241 extras_address_standardizer.xml:282
+#, no-c-format
+msgid "token"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:243 extras_address_standardizer.xml:284
+#, no-c-format
+msgid ""
+"integer: the kind of word it is. Only if it is used in this context will it "
+"be replaced. Refer to <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12."
+"html#--i-tok--\">PAGC Tokens</ulink>."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:252
+#, no-c-format
+msgid "gaz table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:253
+#, no-c-format
+msgid ""
+"A gaz table is used to standardize place names and associate that input with "
+"(a) input tokens ( See Input Tokens) and (b) standardized representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:257
+#, no-c-format
+msgid ""
+"A gaz (short for gazeteer) table is used to classify place names and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. For example if you are in US, you may load these with State "
+"Names and associated abbreviations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:259
+#, no-c-format
+msgid ""
+"A gaz table has at least the following columns in the table. You may add "
+"more columns if you wish for your own purposes."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:295
+#, no-c-format
+msgid "Address Standardizer Functions"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:298
+#, no-c-format
+msgid "parse_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:300
+#, no-c-format
+msgid "Takes a 1 line address and breaks into parts"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_address_standardizer.xml:305
+#, no-c-format
+msgid ""
+"<funcdef>record <function>parse_address</function></funcdef> "
+"<paramdef><type>text </type> <parameter>address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:316
+#, no-c-format
+msgid ""
+"Returns takes as input an address, and returns a record output consisting of "
+"fields <emphasis>num</emphasis>, <emphasis>street</emphasis>, "
+"<emphasis>street2</emphasis>, <emphasis>address1</emphasis>, <emphasis>city</"
+"emphasis>, <emphasis>state</emphasis>, <emphasis>zip</emphasis>, "
+"<emphasis>zipplus</emphasis>, <emphasis>country</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:320 extras_address_standardizer.xml:374
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:326 extras_address_standardizer.xml:380
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:328
+#, no-c-format
+msgid ""
+"SELECT num, street, city, zip, zipplus FROM parse_address('1 Devonshire "
+"Place, Boston, MA 02109-1234');\n"
+" num |      street      |  city  |  zip  | zipplus\n"
+"-----+------------------+--------+-------+---------\n"
+" 1   | Devonshire Place | Boston | 02109 | 1234"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:334 extras_address_standardizer.xml:391
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:342
+#, no-c-format
+msgid "standardize_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:344
+#, no-c-format
+msgid ""
+"Returns an stdaddr form of an input address utilizing lex, gaz, and rule "
+"tables."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_address_standardizer.xml:348
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>stdaddr <function>standardize_address</function></"
+"funcdef> <paramdef><type>text </type> <parameter>lextab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>gaztab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rultab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>address</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>stdaddr "
+"<function>standardize_address</function></funcdef> <paramdef><type>text </"
+"type> <parameter>lextab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>gaztab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rultab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>micro</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>macro</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:371
+#, no-c-format
+msgid ""
+"Returns an <xref linkend=\"stdaddr\"/> form of an input address utilizing "
+"<xref linkend=\"lextab\"/> table name, <xref linkend=\"gaztab\"/>, and <xref "
+"linkend=\"rulestab\"/> table names and an address."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:382
+#, no-c-format
+msgid ""
+"SELECT *  FROM standardize_address('tiger.pagc_lex', \n"
+"                           'tiger.pagc_gaz', 'tiger.pagc_rules', 'One "
+"Devonshire Place, PH 301, Boston, MA 02109-1234');"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:384
+#, no-c-format
+msgid ""
+"Make easier to read we'll dump output using hstore extension CREATE "
+"EXTENSION hstore; you need to install"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:385
+#, no-c-format
+msgid ""
+"SELECT (each(hstore(p))).*  \n"
+" FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz', \n"
+"   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA "
+"02109-1234') As p;"
+msgstr ""
+
+#. Tag: screen
+#: extras_address_standardizer.xml:386
+#, no-c-format
+msgid ""
+"key     |      value\n"
+"------------+-----------------\n"
+" box        |\n"
+" city       | BOSTON\n"
+" name       | DEVONSHIRE\n"
+" qual       |\n"
+" unit       | # PENTHOUSE 301\n"
+" extra      |\n"
+" state      | MA\n"
+" predir     |\n"
+" sufdir     |\n"
+" country    | USA\n"
+" pretype    |\n"
+" suftype    | PL\n"
+" building   |\n"
+" postcode   | 02109\n"
+" house_num  | 1\n"
+" ruralroute |\n"
+"(16 rows)"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"rulestab\"/>, <xref linkend=\"lextab\"/>, <xref linkend="
+"\"gaztab\"/>, <xref linkend=\"Pagc_Normalize_Address\"/>"
+msgstr ""
diff --git a/doc/po/es/extras_historytable.xml.po b/doc/po/es/extras_historytable.xml.po
new file mode 100644
index 0000000..6f82180
--- /dev/null
+++ b/doc/po/es/extras_historytable.xml.po
@@ -0,0 +1,344 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2014
+# David Mateos <territorio at terrativa.net>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2014-01-08 16:03+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: extras_historytable.xml:3
+#, no-c-format
+msgid "History Tracking"
+msgstr "Seguimiento de historial"
+
+#. Tag: para
+#: extras_historytable.xml:6
+#, no-c-format
+msgid ""
+"Suppose you have a table of data that represents the current state of a "
+"particular geographic feature. A parcels table, or a roads table, or a fruit "
+"trees table, whatever. Generally, GIS tools understand a table as a single "
+"entity into which they can update, insert and delete rows from. How you do "
+"allow common GIS tools to work against your data, while maintaining an audit "
+"trail of what changes have been made, by whom, and what the past state of "
+"the data is?"
+msgstr ""
+"Supón que tienes una tabla de datos que representa el estado actual de un "
+"elemento geográfico concreto. Una tabla de parcelas, de carreteras, de "
+"frutales, lo que sea. Normalmente, las herramientas SIG entienden una tabla "
+"como una sola entidad, dentro de la cual se pueden actualizar, insertar o "
+"borrar filas. ¿Cómo permites a las herramientas SIG comunies trabajar contra "
+"tus datos, mientras se mantiene una pista de auditoría de qué cambios se han "
+"realizado, por quién y cuál es el estado anterior de los datos?"
+
+#. Tag: para
+#: extras_historytable.xml:10
+#, no-c-format
+msgid ""
+"This <varname>history_table</varname> extra module provides some utility "
+"functions for creating and maintaining history."
+msgstr ""
+"Este módulo extra <varname>history_table</varname> proporciona algunas "
+"funciones útiles para crear y mantener historiales."
+
+#. Tag: para
+#: extras_historytable.xml:14
+#, no-c-format
+msgid ""
+"The <varname>history_table</varname> was also packaged in PostGIS 1.5, but "
+"added to the documentation in PostGIS 2.0. This package is written in "
+"plpgsql and located in the <varname>extras/history_table</varname> of "
+"PostGIS source tar balls and source repository."
+msgstr ""
+"La <varname>history_table</varname> estaba tambien incluida en PostGIS 1.5, "
+"pero fue agregada a la documentación recién en PostGIS 2.0. Este paquete "
+"está escrito en plpgsql y ubicado en   <varname>extras/history_table</"
+"varname> de los archivos tar de fuentes de PostGIS y el repositorio de "
+"código fuente."
+
+#. Tag: para
+#: extras_historytable.xml:15
+#, no-c-format
+msgid ""
+"If you have a table 'roads', this module will maintain a 'roads_history' "
+"side table, which contains all the columns of the parent table, and the "
+"following additional columns:"
+msgstr ""
+"Si tienes una tabla 'roads', este módulo mantendrá una tabla a parte llamada "
+"'roads_history', que contendrá todas las columnas de la tabla padre, y las "
+"siguientes columnas adicionales:"
+
+#. Tag: programlisting
+#: extras_historytable.xml:16
+#, no-c-format
+msgid ""
+"history_id      | integer                     | not null default \n"
+" date_added      | timestamp without time zone | not null default now()\n"
+" date_deleted    | timestamp without time zone | \n"
+" last_operation  | character varying(30)       | not null\n"
+" active_user     | character varying(90)       | not null default "
+"\"current_user\"()\n"
+" current_version | text                        | not null"
+msgstr ""
+"history_id      | integer                     | not null default \n"
+" date_added      | timestamp without time zone | not null default now()\n"
+" date_deleted    | timestamp without time zone | \n"
+" last_operation  | character varying(30)       | not null\n"
+" active_user     | character varying(90)       | not null default "
+"\"current_user\"()\n"
+" current_version | text                        | not null"
+
+#. Tag: para
+#: extras_historytable.xml:20
+#, no-c-format
+msgid ""
+"When you insert a new record into 'roads' a record is automatically inserted "
+"into 'roads_history', with the 'date_added' filled in the 'date_deleted' set "
+"to NULL, a unique 'history_id', a 'last_operation' of 'INSERT' and "
+"'active_user' set."
+msgstr ""
+"Cuando se inserta un nuevo registro en 'roads' , se inserta automáticamente "
+"un registro en 'roads_history', con el 'date_added' relleno en el "
+"'date_deleted' marcado como NULL,  un  'history_id' único, un "
+"'last_operation' de 'INSERT' y  'active_user' marcado."
+
+#. Tag: para
+#: extras_historytable.xml:23
+#, no-c-format
+msgid ""
+"When you delete a record in 'roads', the record in the history table is "
+"*not* deleted, but the 'date_deleted' is set to the current date."
+msgstr ""
+"Cuando se elimina un registro en 'roads', el registro en la tabla de "
+"historial *no* se borra, pero 'date_deleted' se actualiza a la fecha actual. "
+
+#. Tag: para
+#: extras_historytable.xml:26
+#, no-c-format
+msgid ""
+"When you update a record in 'roads', the current record has 'date_deleted' "
+"filled in and a new record is created with the 'date_added' set and "
+"'date_deleted' NULL."
+msgstr ""
+"Cuando se actualiza un registro en 'roads', el registro actual se marca como "
+"'date_deleted'  y se crea un nuevo registro con  'date_added'  marcado y  "
+"'date_deleted' NULL."
+
+#. Tag: para
+#: extras_historytable.xml:30
+#, no-c-format
+msgid ""
+"With this information maintained, it is possible to retrieve the history of "
+"any record in the roads table:"
+msgstr ""
+"Manteniendo esta información, es posible recuperarl el historial de "
+"cualquier registro de la tabla 'roads'"
+
+#. Tag: programlisting
+#: extras_historytable.xml:31
+#, no-c-format
+msgid "SELECT * FROM roads_history WHERE roads_pk = 111;"
+msgstr "SELECT * FROM roads_history WHERE roads_pk = 111;"
+
+#. Tag: para
+#: extras_historytable.xml:33
+#, no-c-format
+msgid "Or, to retrieve a view of the roads table at any point in the past:"
+msgstr ""
+"O, para recuperar una vista de la tabla 'roads' en algún momento del pasado:"
+
+#. Tag: programlisting
+#: extras_historytable.xml:34
+#, no-c-format
+msgid ""
+"SELECT * FROM roads_history \n"
+"    WHERE date_added < 'January 1, 2001' AND \n"
+"        ( date_deleted >= 'January 1, 2001' OR date_deleted IS NULL );"
+msgstr ""
+"SELECT * FROM roads_history \n"
+"    WHERE date_added < 'January 1, 2001' AND \n"
+"        ( date_deleted >= 'January 1, 2001' OR date_deleted IS NULL );"
+
+#. Tag: refname
+#: extras_historytable.xml:38
+#, no-c-format
+msgid "Postgis_Install_History"
+msgstr "Postgis_Install_History"
+
+#. Tag: refpurpose
+#: extras_historytable.xml:39
+#, no-c-format
+msgid ""
+"Creates a table that will hold some interesting values for managing history "
+"tables."
+msgstr ""
+"Crea una tabla que contendrá algunos valores útiles para la gestión de "
+"tablas de historial. "
+
+#. Tag: funcprototype
+#: extras_historytable.xml:44
+#, no-c-format
+msgid ""
+"<funcdef>void <function>Postgis_Install_History</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>void <function>Postgis_Install_History</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: title
+#: extras_historytable.xml:52 extras_historytable.xml:92
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: para
+#: extras_historytable.xml:54
+#, no-c-format
+msgid ""
+"Creates a table that will hold some interesting values for managing history "
+"tables. Creates a table called <varname>historic_information</varname>"
+msgstr ""
+"Crea una tabla que contendrá algunos valores útiles para la gestión de "
+"tablas de historial. Crea una tabla llamada <varname>historic_information</"
+"varname> "
+
+#. Tag: para
+#: extras_historytable.xml:58 extras_historytable.xml:100
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr "Disponibilidad: 1.5.0"
+
+#. Tag: title
+#: extras_historytable.xml:63 extras_historytable.xml:105
+#, no-c-format
+msgid "Examples"
+msgstr "Ejemplos"
+
+#. Tag: programlisting
+#: extras_historytable.xml:65
+#, no-c-format
+msgid "SELECT postgis_install_history();"
+msgstr "SELECT postgis_install_history();"
+
+#. Tag: title
+#: extras_historytable.xml:71 extras_historytable.xml:113
+#, no-c-format
+msgid "See Also"
+msgstr "Vea También"
+
+#. Tag: refname
+#: extras_historytable.xml:77
+#, no-c-format
+msgid "Postgis_Enable_History"
+msgstr "Postgis_Enable_History"
+
+#. Tag: refpurpose
+#: extras_historytable.xml:78
+#, no-c-format
+msgid ""
+"Registers a tablein the history_information table for tracking and also adds "
+"in side line history table and insert, update, delete rules on the table."
+msgstr ""
+"Registra una tabla en la tabla history_information para hacer un seguimiento "
+"y también añade en la linea lateral de la tabla de historial las reglas "
+"insertar, actualizar y borrar  de la tabla"
+
+#. Tag: funcprototype
+#: extras_historytable.xml:83
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Postgis_Enable_History</function></funcdef> "
+"<paramdef><type>text </type> <parameter>p_schema</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>p_table</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>Postgis_Enable_History</function></funcdef> "
+"<paramdef><type>text </type> <parameter>p_schema</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>p_table</parameter></paramdef>"
+
+#. Tag: para
+#: extras_historytable.xml:94
+#, no-c-format
+msgid ""
+"Registers a table in the history_information table for tracking and also "
+"adds in side line history table with same name as table but prefixed with "
+"<varname>history</varname> in the same schema as the original table. Puts in "
+"insert, update, delete rules on the table. Any inserts,updates,deletes of "
+"the geometry are recorded in the history table."
+msgstr ""
+"Registra una tabla en la tabla history_information para hacer un seguimiento "
+"u también añade una linea lateral del historial con el nombre de la tabla "
+"pero con el prefijo <varname>history_</varname>en el mismo esquema que la "
+"tabla original. Pone las reglas insertar, actualizar y borrar en la tabla. "
+"Todas las inserciones, actualizaciones o borrados de geometrías se guardan "
+"en la tabla history."
+
+#. Tag: para
+#: extras_historytable.xml:97
+#, no-c-format
+msgid ""
+"This function currently relies on a geometry column being registered in "
+"<varname>geometry_columns</varname> and fails if the geometry column is not "
+"present in <varname>geometry_columns</varname> table."
+msgstr ""
+"Esta función actualmente depende de que una columna de geometría se registre "
+"en <varname>geometry_columns</varname> y falla si la columna de geometría no "
+"está presente en la tabla  <varname>geometry_columns</varname> "
+
+#. Tag: programlisting
+#: extras_historytable.xml:107
+#, no-c-format
+msgid ""
+"CREATE TABLE roads(gid SERIAL PRIMARY KEY, road_name varchar(150));\n"
+"SELECT AddGeometryColumn('roads', 'geom', 26986, 'LINESTRING', 2);\n"
+"                                \n"
+"SELECT postgis_enable_history('public', 'roads', 'geom') As register_table;\n"
+"register_table\n"
+"--------------\n"
+"t\n"
+"\n"
+"INSERT INTO roads(road_name, geom) \n"
+"  VALUES('Test Street', ST_GeomFromText('LINESTRING(231660.5 832170,231647 "
+"832202,231627.5 832250.5)',26986));\n"
+"\n"
+"-- check transaction detail --\n"
+"SELECT date_added, last_operation, current_version \n"
+"FROM roads_history \n"
+"WHERE road_name = 'Test Street' ORDER BY date_added DESC;\n"
+"\n"
+"       date_added       | last_operation | current_version\n"
+"------------------------+----------------+-----------------\n"
+" 2011-02-07 12:44:36.92 | INSERT         | 2"
+msgstr ""
+"CREATE TABLE roads(gid SERIAL PRIMARY KEY, road_name varchar(150));\n"
+"SELECT AddGeometryColumn('roads', 'geom', 26986, 'LINESTRING', 2);\n"
+"                                \n"
+"SELECT postgis_enable_history('public', 'roads', 'geom') As register_table;\n"
+"register_table\n"
+"--------------\n"
+"t\n"
+"\n"
+"INSERT INTO roads(road_name, geom) \n"
+"  VALUES('Test Street', ST_GeomFromText('LINESTRING(231660.5 832170,231647 "
+"832202,231627.5 832250.5)',26986));\n"
+"\n"
+"-- check transaction detail --\n"
+"SELECT date_added, last_operation, current_version \n"
+"FROM roads_history \n"
+"WHERE road_name = 'Test Street' ORDER BY date_added DESC;\n"
+"\n"
+"       date_added       | last_operation | current_version\n"
+"------------------------+----------------+-----------------\n"
+" 2011-02-07 12:44:36.92 | INSERT         | 2"
diff --git a/doc/po/es/extras_tigergeocoder.xml.po b/doc/po/es/extras_tigergeocoder.xml.po
new file mode 100644
index 0000000..e14b93e
--- /dev/null
+++ b/doc/po/es/extras_tigergeocoder.xml.po
@@ -0,0 +1,2419 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# pvernier <admin at datamadre.com>, 2014
+# Carlos Barrios <gbarrios at aaa.upv.es>, 2014
+# David Mateos <territorio at terrativa.net>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-04-29 14:52+0000\n"
+"Last-Translator: Carlos Barrios <gbarrios at aaa.upv.es>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:6
+#, fuzzy, no-c-format
+msgid ""
+"A plpgsql based geocoder written to work with the <ulink url=\"http://www."
+"census.gov/geo/www/tiger/\">TIGER (Topologically Integrated Geographic "
+"Encoding and Referencing system ) / Line and Master Address database export</"
+"ulink> released by the US Census Bureau."
+msgstr ""
+"Un geocodificador basado en plpgsql escrito para trabajar con el   <ulink "
+"url=\"http://www.census.gov/geo/www/tiger/\">TIGER (Topologically Integrated "
+"Geographic Encoding and Referencing system ) / Line and Master Address "
+"database export</ulink>  liberado por el US Census Bureau. En versiones "
+"previas a 2008 los archivos TIGER se liberaban en formato ASCII. El "
+"geocodificador antiguo usado para trabajar con ese formato está disponible "
+"en el código fuente de PostGIS source 1.5 e inferiores en  <varname>extras/"
+"tiger_geocoder/tiger_2006andbefore</varname>."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:7
+#, fuzzy, no-c-format
+msgid ""
+"There are four components to the geocoder: the data loader functions, the "
+"address normalizer, the address geocoder, and the reverse geocoder. The "
+"latest version updated to use the TIGER 2011 and 2012 census data is located "
+"in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder. It "
+"defaults to downloading and installing TIGER 2012 files."
+msgstr ""
+"Hay cuatro componentes del geocoder: las funciones de carga de datos, el "
+"normalizador de direcciones, el geocodificador de direcciones, y el "
+"geocodificador reverso. La última versión está actualizada para usar los "
+"datos del censo de TIGER 2011 está ubicada en el directorio <varname>extras/"
+"tiger_geocoder/tiger_2011</varname>."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:8
+#, no-c-format
+msgid ""
+"Although it is designed specifically for the US, a lot of the concepts and "
+"functions are applicable and can be adapted to work with other country "
+"address and road networks."
+msgstr ""
+"Aunque está diseñada específicamente para los EE.UU., muchos de los "
+"conceptos y funciones son aplicables y se pueden adaptar al trabajo con las "
+"direcciones y redes de carreteras de otros países."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:9
+#, no-c-format
+msgid ""
+"The script builds a schema called <varname>tiger</varname> to house all the "
+"tiger related functions, reusable lookup data such as road type prefixes, "
+"suffixes, states, various control tables for managing data load, and "
+"skeleton base tables from which all the tiger loaded tables inherit from."
+msgstr ""
+"El script crea un esquema llamado <varname>tiger</varname> para alojar todas "
+"las funciones relacionadas de tiger, datos reutilizables de búsqueda como "
+"prefijos de tipos de carreteras, estados, varias tablas de control para "
+"gestionar la carga de datos, y el esqueleto de las tablas base de las que "
+"todas las tablas tiger cargadas descienden."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:10
+#, no-c-format
+msgid ""
+"Another schema called <varname>tiger_data</varname> is also created which "
+"houses all the census data for each state that the loader downloads from "
+"Census site and loads into the database. In the current model, each set of "
+"state tables is prefixed with the state code e.g <varname>ma_addr</varname>, "
+"<varname>ma_edges</varname> etc with constraints to enforce only that state "
+"data. Each of these tables inherits from the tables <varname>addr</varname>, "
+"<varname>faces</varname>, <varname>edges</varname>, etc located in the "
+"<varname>tiger schema</varname>."
+msgstr ""
+"También se crea otro esquema llamado <varname>tiger_data</varname> que aloja "
+"todos los datos del censo para cada estado que el cargador descarga desde el "
+"sitio del Censo y lo carga en la base de datos. En el modelo actual, cada "
+"conjunto de tablas estatales lleva un prefijo con el código de estado, por "
+"ejemplo <varname>ma_addr</varname>,<varname>ma_edges</varname> etc. con "
+"restricciones para reforzar únicamente esos datos del estado. Cada una de "
+"estas tablas descienden de las tablas <varname>addr</varname>,"
+"<varname>faces</varname>,<varname>edges</varname>, etc. que están en el "
+"<varname>esquema tiger</varname>."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:12
+#, no-c-format
+msgid ""
+"All the geocode functions only reference the base tables, so there is no "
+"requirement that the data schema be called <varname>tiger_data</varname> or "
+"that data can't be further partitioned into other schemas -- e.g a different "
+"schema for each state, as long as all the tables inherit from the tables in "
+"the <varname>tiger</varname> schema."
+msgstr ""
+"Todas las funciones de geocodificación hacen referencia sólo a las tablas "
+"base, no hay obligación de que el esquema de datos se llame "
+"<varname>tiger_data</varname> o que los datos del esquema no puedan "
+"particionarse más adelante en otros esquemas --por ejemplo un esquema "
+"diferente para cada estado, mientras que todas las tablas desciendan de las "
+"tablas en el esquema <varname>tiger</varname>."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:16
+#, fuzzy, no-c-format
+msgid ""
+"If you are using tiger geocoder (tiger_2010), you can upgrade the scripts "
+"using the accompanying upgrade_geocoder.bat / .sh scripts in tiger_2011. One "
+"major change between <varname>tiger_2010</varname> and <varname>tiger_2011/"
+"tiger_2012</varname> is that the county and <varname>county</varname> and "
+"<varname>state</varname> tables are no longer broken out by state. We'll be "
+"refining the upgrade scripts until release. If you have data from tiger_2010 "
+"and want replace with tiger_2012 refer to <xref linkend="
+"\"upgrade_tiger_geocoder\"/>"
+msgstr ""
+"Si está usando el geocodificador tiger (tiger_2010), puede actualizar la "
+"versión de los scripts usando los scripts que acompañan al tiger_2011 "
+"upgrade_geocoder.bat/.sh . Un cambio destacable entre <varname>tiger_2010</"
+"varname> y <varname>tiger_2011</varname> es que las tablas <varname>county</"
+"varname> y <varname>state</varname> ya no se parten en razón al estado. "
+"Estaremos refinando los scripts de actualización a nueva versión hasta su "
+"lanzamiento. Si tiene datos de tiger_2010 y quiere reemplazarlos con "
+"tiger_2011 consulte <xref linkend=\"upgrade_tiger_geocoder\"/>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:23
+#, no-c-format
+msgid ""
+"New in PostGIS 2.1.0 release is ability to install tiger geocoder with "
+"PostgreSQL extension model if you are running PostgreSQL 9.1+. Refer to "
+"<xref linkend=\"install_tiger_geocoder_extension\"/> for details."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:25
+#, no-c-format
+msgid ""
+"Also new in PostGIS 2.1.0 is integration with pagc address standardizer "
+"PostgreSQL extension which source can be downloaded from <ulink url=\"http://"
+"sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql\">PAGC "
+"PostgreSQL address standardizer extension</ulink> and after install and "
+"install of the library in your PostGIS database, you can use the <xref "
+"linkend=\"Pagc_Normalize_Address\"/> function as a drop in replacement for "
+"in-built <xref linkend=\"Normalize_Address\"/>. Refer to <xref linkend="
+"\"installing_pagc_address_standardizer\"/> for compile and installation "
+"instructions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:29
+#, no-c-format
+msgid "Design:"
+msgstr "Diseño:"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:30
+#, no-c-format
+msgid ""
+"The goal of this project is to build a fully functional geocoder that can "
+"process an arbitrary United States address string and using normalized TIGER "
+"census data, produce a point geometry and rating reflecting the location of "
+"the given address and likeliness of the location. The higher the rating "
+"number the worse the result."
+msgstr ""
+"El objetivo de este proyecto es construir un geocodificador totalmente "
+"funcional que pueda procesar un texto arbitrario de una dirección de los "
+"Estados Unidos y usando datos del censo TIGER normalizados, producir una "
+"geometría de punto y una puntuación que refleje la localización de la "
+"dirección dada y su concordancia. Cuanto más alta sea la puntuación peor es "
+"el resultado."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:32
+#, no-c-format
+msgid ""
+"The <varname>reverse_geocode</varname> function, introduced in PostGIS 2.0.0 "
+"is useful for deriving the street address and cross streets of a GPS "
+"location."
+msgstr ""
+"La función <varname>reverse_geocode</varname>, introducida en PostGIS 2.0.0 "
+"es útil para deducir la dirección de la calle y cruces de calles de una "
+"localización GPS."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:33
+#, no-c-format
+msgid ""
+"The geocoder should be simple for anyone familiar with PostGIS to install "
+"and use, and should be easily installable and usable on all platforms "
+"supported by PostGIS."
+msgstr ""
+"El geocodificador debería ser sencillo de instalar y usar para cualquiera "
+"familiriarizado con PostGIS, y debería ser fácilmente instalable y "
+"utilizable en todas las plataformas soportadas por PostGIS. "
+
+#. Tag: para
+#: extras_tigergeocoder.xml:34
+#, no-c-format
+msgid ""
+"It should be robust enough to function properly despite formatting and "
+"spelling errors."
+msgstr ""
+"Debería ser suficientemente robusto como para funcionar adecuadamente a "
+"pesar de errores de formato o de escritura."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:35
+#, no-c-format
+msgid ""
+"It should be extensible enough to be used with future data updates, or "
+"alternate data sources with a minimum of coding changes."
+msgstr ""
+"Debería ser lo bastante extensible como para ser usado con futuras "
+"actualizaciones de datos, o alternar orígenes de datos con unos cambios de "
+"código mínimos."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:37
+#, no-c-format
+msgid ""
+"The <varname>tiger</varname> schema must be added to the database search "
+"path for the functions to work properly."
+msgstr ""
+"Para que las funciones trabajen adecuadamente debe agregarse el esquema "
+"<varname>tiger</varname> a la ruta de búsqueda de la base de datos."
+
+#. Tag: title
+#: extras_tigergeocoder.xml:41
+#, no-c-format
+msgid "Tiger Geocoder"
+msgstr "Geocodificador Tiger"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:43
+#, no-c-format
+msgid ""
+"There are a couple other open source geocoders for PostGIS, that unlike "
+"tiger geocoder have the advantage of multi-country geocoding support"
+msgstr ""
+"Hay un par de geocodificadores de software libre para PostGIS, que a "
+"diferencia del geocodificador tiger tienen la ventaja de soporte para "
+"geocodificación multi-país."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:45
+#, no-c-format
+msgid ""
+"<ulink url=\"http://wiki.openstreetmap.org/wiki/Nominatim\">Nominatim</"
+"ulink> and uses OpenStreetMap gazeteer formatted data. It requires osm2pgsql "
+"for loading the data, PostgreSQL 8.4+ and PostGIS 1.5+ to function. It is "
+"packaged as a webservice interface and seems designed to be called as a "
+"webservice. Just like the tiger geocoder, it has both a geocoder and a "
+"reverse geocoder component. From the documentation, it is unclear if it has "
+"a pure SQL interface like the tiger geocoder, or if a good deal of the logic "
+"is implemented in the web interface."
+msgstr ""
+"<ulink url=\"http://wiki.openstreetmap.org/wiki/Nominatim\">Nominatim</"
+"ulink> usa los datos formateados de OpenStreetMap. Requiere osm2pgsql para "
+"cargar los datos, y para funcionar PostgreSQL 8.4+ y PostGIS 1.5+. Está "
+"empaquetado como una interfaz de servicio web y parece diseñado para ser "
+"llamado como tal. Como el geocodificador tiger, tiene ambos componentes, el "
+"geocodificador y el geocodificador inverso. A partir de la documentación, no "
+"está claro si tiene una interfaz pura SQL como el geocodificador tiger, o si "
+"está implementado con una gran cantidad de lógica en la interfaz web."
+
+#. Tag: para
+#: extras_tigergeocoder.xml:48
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.gisgraphy.com/\">GIS Graphy</ulink> also utilizes "
+"PostGIS and like Nominatim works with OpenStreetMap (OSM) data. It comes "
+"with a loader to load OSM data and similar to Nominatim is capable of "
+"geocoding not just US. Much like Nominatim, it runs as a webservice and "
+"relies on Java 1.5, Servlet apps, Solr. GisGraphy is cross-platform and also "
+"has a reverse geocoder among some other neat features."
+msgstr ""
+"<ulink url=\"http://www.gisgraphy.com/\">GIS Graphy</ulink> también utiliza "
+"PostGIS y como Nominatim trabaja con datos de OpenStreetMap (OSM). Viene con "
+"un cargador para cargar datos OSM y, al igual que Nominatim es capaz de "
+"geocodificar no solo USA. Similar a Nominatim, se ejecuta como servicio web "
+"y se apoya en Java 1.5, aplicaciones Servlet, Soir. GisGraphy es "
+"multiplataforma y también tiene un geocodificador inverso entre otras buenas "
+"características."
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:53
+#, no-c-format
+msgid "Drop_Indexes_Generate_Script"
+msgstr "Drop_Indexes_Generate_Script"
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:55
+#, no-c-format
+msgid ""
+"<refpurpose>Generates a script that drops all non-primary key and non-unique "
+"indexes on tiger schema and user specified schema. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:60
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:68 extras_tigergeocoder.xml:110
+#: extras_tigergeocoder.xml:152 extras_tigergeocoder.xml:208
+#: extras_tigergeocoder.xml:270 extras_tigergeocoder.xml:315
+#: extras_tigergeocoder.xml:355 extras_tigergeocoder.xml:394
+#: extras_tigergeocoder.xml:439 extras_tigergeocoder.xml:497
+#: extras_tigergeocoder.xml:554 extras_tigergeocoder.xml:609
+#: extras_tigergeocoder.xml:654 extras_tigergeocoder.xml:733
+#: extras_tigergeocoder.xml:818 extras_tigergeocoder.xml:865
+#: extras_tigergeocoder.xml:937 extras_tigergeocoder.xml:1002
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:70
+#, no-c-format
+msgid ""
+"<para>Generates a script that drops all non-primary key and non-unique "
+"indexes on tiger schema and user specified schema. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:71
+#, no-c-format
+msgid ""
+"This is useful for minimizing index bloat that may confuse the query planner "
+"or take up unnecessary space. Use in combination with <xref linkend="
+"\"Install_Missing_Indexes\"/> to add just the indexes used by the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:74 extras_tigergeocoder.xml:158
+#: extras_tigergeocoder.xml:277 extras_tigergeocoder.xml:359
+#: extras_tigergeocoder.xml:402 extras_tigergeocoder.xml:457
+#: extras_tigergeocoder.xml:617 extras_tigergeocoder.xml:891
+#: extras_tigergeocoder.xml:963
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr "Disponibilidad: 2.0.0"
+
+#. Tag: title
+#: extras_tigergeocoder.xml:81 extras_tigergeocoder.xml:122
+#: extras_tigergeocoder.xml:165 extras_tigergeocoder.xml:409
+#: extras_tigergeocoder.xml:464 extras_tigergeocoder.xml:522
+#: extras_tigergeocoder.xml:577 extras_tigergeocoder.xml:624
+#: extras_tigergeocoder.xml:700 extras_tigergeocoder.xml:784
+#: extras_tigergeocoder.xml:828 extras_tigergeocoder.xml:896
+#, no-c-format
+msgid "Examples"
+msgstr "Ejemplos"
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:82
+#, no-c-format
+msgid ""
+"SELECT drop_indexes_generate_script() As actionsql;\n"
+"actionsql\n"
+"---------------------------------------------------------\n"
+"DROP INDEX tiger.idx_tiger_countysub_lookup_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_edges_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_faces_countyfp;\n"
+"DROP INDEX tiger.tiger_place_the_geom_gist;\n"
+"DROP INDEX tiger.tiger_edges_the_geom_gist;\n"
+"DROP INDEX tiger.tiger_state_the_geom_gist;\n"
+"DROP INDEX tiger.idx_tiger_addr_least_address;\n"
+"DROP INDEX tiger.idx_tiger_addr_tlid;\n"
+"DROP INDEX tiger.idx_tiger_addr_zip;\n"
+"DROP INDEX tiger.idx_tiger_county_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_county_lookup_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_county_lookup_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_county_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_county_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_county_the_geom_gist;\n"
+"DROP INDEX tiger.idx_tiger_countysub_lookup_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_cousub_cousubfp;\n"
+"DROP INDEX tiger.idx_tiger_cousub_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_the_geom_gist;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_least_address;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_tlid;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_zip;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_countyfp;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lookup_lower_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lookup_snd_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lower_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_snd_name;\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:88 extras_tigergeocoder.xml:129
+#: extras_tigergeocoder.xml:172 extras_tigergeocoder.xml:239
+#: extras_tigergeocoder.xml:293 extras_tigergeocoder.xml:332
+#: extras_tigergeocoder.xml:372 extras_tigergeocoder.xml:416
+#: extras_tigergeocoder.xml:474 extras_tigergeocoder.xml:532
+#: extras_tigergeocoder.xml:586 extras_tigergeocoder.xml:631
+#: extras_tigergeocoder.xml:710 extras_tigergeocoder.xml:796
+#: extras_tigergeocoder.xml:839 extras_tigergeocoder.xml:911
+#: extras_tigergeocoder.xml:979 extras_tigergeocoder.xml:1019
+#, no-c-format
+msgid "See Also"
+msgstr "Ver también"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:89 extras_tigergeocoder.xml:417
+#, no-c-format
+msgid ", <xref linkend=\"Missing_Indexes_Generate_Script\"/>"
+msgstr ", <xref linkend=\"Missing_Indexes_Generate_Script\"/>"
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:95
+#, no-c-format
+msgid "Drop_Nation_Tables_Generate_Script"
+msgstr "Drop_Nation_Tables_Generate_Script"
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:97
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that start "
+"with <varname>county_all</varname>, <varname>state_all</varname> or stae "
+"code followed by <varname>county</varname> or <varname>state</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:102
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_Nation_Tables_Generate_Script</function></"
+"funcdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
+"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:112
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that start "
+"with <varname>county_all</varname>, <varname>state_all</varname> or stae "
+"code followed by <varname>county</varname> or <varname>state</varname>. This "
+"is needed if you are upgrading from <varname>tiger_2010</varname> to "
+"<varname>tiger_2011</varname> data."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:115 extras_tigergeocoder.xml:320
+#: extras_tigergeocoder.xml:571 extras_tigergeocoder.xml:742
+#: extras_tigergeocoder.xml:1006
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr "Disponibilidad: 2.1.0"
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:123
+#, no-c-format
+msgid ""
+"SELECT drop_nation_tables_generate_script();\n"
+"DROP TABLE tiger_data.county_all;\n"
+"DROP TABLE tiger_data.county_all_lookup;\n"
+"DROP TABLE tiger_data.state_all;\n"
+"DROP TABLE tiger_data.ma_county;\n"
+"DROP TABLE tiger_data.ma_state;"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:136
+#, no-c-format
+msgid "Drop_State_Tables_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:138
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that are "
+"prefixed with the state abbreviation. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:143
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
+"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
+"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:154
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that are "
+"prefixed with the state abbreviation. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified. This function is "
+"useful for dropping tables of a state just before you reload a state in case "
+"something went wrong during your previous load."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:166
+#, no-c-format
+msgid ""
+"SELECT drop_state_tables_generate_script('PA');\n"
+"DROP TABLE tiger_data.pa_addr;\n"
+"DROP TABLE tiger_data.pa_county;\n"
+"DROP TABLE tiger_data.pa_county_lookup;\n"
+"DROP TABLE tiger_data.pa_cousub;\n"
+"DROP TABLE tiger_data.pa_edges;\n"
+"DROP TABLE tiger_data.pa_faces;\n"
+"DROP TABLE tiger_data.pa_featnames;\n"
+"DROP TABLE tiger_data.pa_place;\n"
+"DROP TABLE tiger_data.pa_state;\n"
+"DROP TABLE tiger_data.pa_zip_lookup_base;\n"
+"DROP TABLE tiger_data.pa_zip_state;\n"
+"DROP TABLE tiger_data.pa_zip_state_loc;"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:178
+#, no-c-format
+msgid "Geocode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:180
+#, no-c-format
+msgid ""
+"Takes in an address as a string (or other normalized address) and outputs a "
+"set of possible locations which include a point geometry in NAD 83 long lat, "
+"a normalized address for each, and the rating. The lower the rating the more "
+"likely the match. Results are sorted by lowest rating first. Can optionally "
+"pass in maximum results, defaults to 10, and restrict_region (defaults to "
+"NULL)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_tigergeocoder.xml:185
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>geocode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>address</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_results=10</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>geocode</function></funcdef> <paramdef><type>norm_addy </type> "
+"<parameter>in_addy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>max_results=10</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:210
+#, no-c-format
+msgid ""
+"Takes in an address as a string (or already normalized address) and outputs "
+"a set of possible locations which include a point geometry in NAD 83 long "
+"lat, a <varname>normalized_address</varname> (addy) for each, and the "
+"rating. The lower the rating the more likely the match. Results are sorted "
+"by lowest rating first. Uses Tiger data (edges,faces,addr), PostgreSQL fuzzy "
+"string matching (soundex,levenshtein) and PostGIS line interpolation "
+"functions to interpolate address along the Tiger edges. The higher the "
+"rating the less likely the geocode is right. The geocoded point is defaulted "
+"to offset 10 meters from center-line off to side (L/R) of street address is "
+"located on."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:214
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 to support Tiger 2010 structured data and revised some logic "
+"to improve speed, accuracy of geocoding, and to offset point from centerline "
+"to side of street address is located on. New parameter max_results useful "
+"for specifying ot just return the best result."
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:220 extras_tigergeocoder.xml:283
+#: extras_tigergeocoder.xml:365
+#, no-c-format
+msgid "Examples: Basic"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:221
+#, no-c-format
+msgid ""
+"The below examples timings are on a 3.0 GHZ single processor Windows 7 "
+"machine with 2GB ram running PostgreSQL 9.1rc1/PostGIS 2.0 loaded with all "
+"of MA,MN,CA, RI state Tiger data loaded."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:222
+#, no-c-format
+msgid "Exact matches are faster to compute (61ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:223
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_X(g.geomout) As lon, ST_Y(g.geomout) As lat, \n"
+"        (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('75 State Street, Boston MA 02109') As g;  \n"
+" rating |        lon        |       lat        | stno | street | styp |  "
+"city  | st |  zip  \n"
+"--------+-------------------+------------------+------+--------+------"
+"+--------+----+-------\n"
+"      0 | -71.0556722990239 | 42.3589914927049 |   75 | State  | St   | "
+"Boston | MA | 02109"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:224
+#, no-c-format
+msgid ""
+"Even if zip is not passed in the geocoder can guess (took about 122-150 ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:225
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"        (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('226 Hanover Street, Boston, MA',1) As g;  \n"
+" rating |         wktlonlat         | stno | street  | styp |  city  | st |  "
+"zip  \n"
+"--------+---------------------------+------+---------+------+--------+----"
+"+-------\n"
+"      1 | POINT(-71.05528 42.36316) |  226 | Hanover | St   | Boston | MA | "
+"02113"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:226
+#, no-c-format
+msgid ""
+"Can handle misspellings and provides more than one possible solution with "
+"ratings and takes longer (500ms)."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:227
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"    (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('31 - 37 Stewart Street, Boston, MA 02116') As g; \n"
+" rating |         wktlonlat         | stno | street | styp |  city  | st |  "
+"zip  \n"
+"--------+---------------------------+------+--------+------+--------+----"
+"+-------\n"
+"     70 | POINT(-71.06459 42.35113) |   31 | Stuart | St   | Boston | MA | "
+"02116"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:229
+#, no-c-format
+msgid ""
+"Using to do a batch geocode of addresses. Easiest is to set "
+"<varname>max_results=1</varname>. Only process those not yet geocoded (have "
+"no rating)."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:230
+#, no-c-format
+msgid ""
+"CREATE TABLE addresses_to_geocode(addid serial PRIMARY KEY, address text,\n"
+"                lon numeric, lat numeric, new_address text, rating "
+"integer);\n"
+"\n"
+"INSERT INTO addresses_to_geocode(address)\n"
+"VALUES ('529 Main Street, Boston MA, 02129'),\n"
+" ('77 Massachusetts Avenue, Cambridge, MA 02139'),\n"
+" ('25 Wizard of Oz, Walaford, KS 99912323'),\n"
+" ('26 Capen Street, Medford, MA'),\n"
+" ('124 Mount Auburn St, Cambridge, Massachusetts 02138'),\n"
+" ('950 Main Street, Worcester, MA 01610');\n"
+" \n"
+"-- only update the first 3 addresses (323-704 ms -  there are caching and "
+"shared memory effects so first geocode you do is always slower) --\n"
+"-- for large numbers of addresses you don't want to update all at once\n"
+"-- since the whole geocode must commit at once \n"
+"-- For this example we rejoin with LEFT JOIN \n"
+"-- and set to rating to -1 rating if no match \n"
+"-- to ensure we don't regeocode a bad address \n"
+"UPDATE addresses_to_geocode\n"
+"  SET  (rating, new_address, lon, lat) \n"
+"        = ( COALESCE((g.geo).rating,-1), pprint_addy((g.geo).addy),\n"
+"           ST_X((g.geo).geomout)::numeric(8,5), ST_Y((g.geo).geomout)::"
+"numeric(8,5) )\n"
+"FROM (SELECT addid \n"
+"        FROM addresses_to_geocode \n"
+"        WHERE rating IS NULL ORDER BY addid LIMIT 3) As a\n"
+"        LEFT JOIN (SELECT addid, (geocode(address,1)) As geo\n"
+"    FROM addresses_to_geocode As ag\n"
+"        WHERE ag.rating IS NULL ORDER BY addid LIMIT 3) As g ON a.addid = g."
+"addid\n"
+"WHERE a.addid = addresses_to_geocode.addid;\n"
+"\n"
+"result\n"
+"-----\n"
+"Query returned successfully: 3 rows affected, 480 ms execution time.\n"
+"\n"
+"SELECT * FROM addresses_to_geocode WHERE rating is not null;\n"
+"\n"
+" addid |                   address                    |    lon    |   lat    "
+"|                new_address                | rating \n"
+"-------+----------------------------------------------+-----------+----------"
+"+-------------------------------------------+--------\n"
+"     1 | 529 Main Street, Boston MA, 02129            | -71.07181 | 42.38359 "
+"| 529 Main St, Boston, MA 02129             |      0\n"
+"     2 | 77 Massachusetts Avenue, Cambridge, MA 02139 | -71.09428 | 42.35988 "
+"| 77 Massachusetts Ave, Cambridge, MA 02139 |      0\n"
+"     3 | 25 Wizard of Oz, Walaford, KS 99912323       |           |          "
+"|                                           |     -1"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:233
+#, no-c-format
+msgid "Examples: Using Geometry filter"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:234
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"    (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, \n"
+"        (addy).location As city, (addy).stateabbrev As st,(addy).zip \n"
+"  FROM geocode('100 Federal Street, MA',\n"
+"                3, \n"
+"                (SELECT ST_Union(the_geom) \n"
+"                        FROM place WHERE statefp = '25' AND name = 'Lynn')::"
+"geometry\n"
+"                ) As g;\n"
+"\n"
+" rating |        wktlonlat         | stno | street  | styp | city | st |  "
+"zip\n"
+"--------+--------------------------+------+---------+------+------+----"
+"+-------\n"
+"      8 | POINT(-70.96796 42.4659) |  100 | Federal | St   | Lynn | MA | "
+"01905\n"
+"Total query runtime: 245 ms."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:240
+#, no-c-format
+msgid ""
+", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_SnapToGrid\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:246
+#, no-c-format
+msgid "Geocode_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:248
+#, no-c-format
+msgid ""
+"Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
+"of possible locations on the first cross street that is at the intersection, "
+"also includes a point geometry in NAD 83 long lat, a normalized address for "
+"each location, and the rating. The lower the rating the more likely the "
+"match. Results are sorted by lowest rating first. Can optionally pass in "
+"maximum results, defaults to 10"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:254
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>geocode_intersection</function></funcdef> "
+"<paramdef><type>text </type> <parameter> roadway1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> roadway2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> in_state</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> in_city</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter> in_zip</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>max_results=10</parameter></paramdef> <paramdef><type>norm_addy </"
+"type> <parameter>OUT addy</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>OUT geomout</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>OUT rating</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:272
+#, no-c-format
+msgid ""
+"Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
+"of possible locations on the first cross street that is at the intersection, "
+"also includes a point geometry in NAD 83 long lat, a normalized address for "
+"each location, and the rating. The lower the rating the more likely the "
+"match. Results are sorted by lowest rating first. Can optionally pass in "
+"maximum results, defaults to 10. Returns <varname>normalized_address</"
+"varname> (addy) for each, geomout as the point location in nad 83 long lat, "
+"and the rating. The lower the rating the more likely the match. Results are "
+"sorted by lowest rating first. Uses Tiger data (edges,faces,addr), "
+"PostgreSQL fuzzy string matching (soundex,levenshtein)"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:284
+#, no-c-format
+msgid ""
+"The below examples timings are on a 3.0 GHZ single processor Windows 7 "
+"machine with 2GB ram running PostgreSQL 9.0/PostGIS 1.5 loaded with all of "
+"MA state Tiger data loaded. Currently a bit slow (3000 ms)"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:285
+#, no-c-format
+msgid ""
+"Testing on Windows 2003 64-bit 8GB on PostGIS 2.0 PostgreSQL 64-bit Tiger "
+"2011 data loaded -- (41ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:286
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(addy), st_astext(geomout),rating \n"
+"                        FROM geocode_intersection( 'Haverford St','Germania "
+"St', 'MA', 'Boston', '02130',1); \n"
+"           pprint_addy            |         st_astext          | rating\n"
+"----------------------------------+----------------------------+--------\n"
+"98 Haverford St, Boston, MA 02130 | POINT(-71.101375 42.31376) |      0"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:287
+#, no-c-format
+msgid ""
+"Even if zip is not passed in the geocoder can guess (took about 3500 ms on "
+"the windows 7 box), on the windows 2003 64-bit 741 ms"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:288
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(addy), st_astext(geomout),rating \n"
+"                                FROM geocode_intersection('Weld', 'School', "
+"'MA', 'Boston');\n"
+"          pprint_addy          |        st_astext         | rating\n"
+"-------------------------------+--------------------------+--------\n"
+" 98 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3\n"
+" 99 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:294
+#, no-c-format
+msgid ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:300
+#, no-c-format
+msgid "Get_Geocode_Setting"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:302
+#, no-c-format
+msgid ""
+"Returns value of specific setting stored in tiger.geocode_settings table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:307
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Get_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:317
+#, no-c-format
+msgid ""
+"Returns value of specific setting stored in tiger.geocode_settings table. "
+"Settings allow you to toggle debugging of functions. Later plans will be to "
+"control rating with settings. Current list of settings are as follows:"
+msgstr ""
+
+#. Tag: screen
+#: extras_tigergeocoder.xml:318
+#, no-c-format
+msgid ""
+"name              | setting |  unit   | category  "
+"|                                                             short_desc\n"
+"--------------------------------+---------+---------+-----------"
+"+------------------------------------------------------------------------------------------------------\n"
+" debug_geocode_address          | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_addresss is "
+"called if true\n"
+" debug_geocode_intersection     | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_intersection is "
+"called if true\n"
+" debug_normalize_address        | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries \n"
+"                                |         |         |           |   and "
+"intermediate expressions when normalize_address is called if true\n"
+" debug_reverse_geocode          | false   | boolean | debug     | if true, "
+"outputs debug information in notice log such as queries \n"
+"                                                                |  and "
+"intermediate expressions when reverse_geocode\n"
+" reverse_geocode_numbered_roads | 0       | integer | rating    | For state "
+"and county highways, 0 - no preference in name\n"
+"                                |         |         |           |  , 1 - "
+"prefer the numbered highway name, 2 - prefer local state/county name\n"
+" use_pagc_address_parser        | false   | boolean | normalize | If set to "
+"true, will try to use the pagc_address normalizer instead of tiger built one"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:326 extras_tigergeocoder.xml:1012
+#, no-c-format
+msgid "Example return debugging setting"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:327
+#, no-c-format
+msgid ""
+"SELECT get_geocode_setting('debug_geocode_address) As result;\n"
+"result\n"
+"---------\n"
+"false"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:339
+#, no-c-format
+msgid "Get_Tract"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:341
+#, no-c-format
+msgid ""
+"Returns census tract or field from tract table of where the geometry is "
+"located. Default to returning short name of tract."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:346
+#, no-c-format
+msgid ""
+"<funcdef>text <function>get_tract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter> loc_geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> output_field=name</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:357
+#, no-c-format
+msgid ""
+"Given a geometry will return the census tract location of that geometry. NAD "
+"83 long lat is assumed if no spatial ref sys is specified."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:366
+#, no-c-format
+msgid ""
+"SELECT get_tract(ST_Point(-71.101375, 42.31376) ) As tract_name;\n"
+"tract_name\n"
+"---------\n"
+"1203.01"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:367
+#, no-c-format
+msgid ""
+"--this one returns the tiger geoid\n"
+"SELECT get_tract(ST_Point(-71.101375, 42.31376), 'tract_id' ) As tract_id;\n"
+"tract_id\n"
+"---------\n"
+"25025120301"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:373
+#, no-c-format
+msgid "<para>></para>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:379
+#, no-c-format
+msgid "Install_Missing_Indexes"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:381
+#, no-c-format
+msgid ""
+"Finds all tables with key columns used in geocoder joins and filter "
+"conditions that are missing used indexes on those columns and will add them."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:386
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Install_Missing_Indexes</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:396
+#, no-c-format
+msgid ""
+"Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
+"varname> schemas with key columns used in geocoder joins and filters that "
+"are missing indexes on those columns and will output the SQL DDL to define "
+"the index for those tables and then execute the generated script. This is a "
+"helper function that adds new indexes needed to make queries faster that may "
+"have been missing during the load process. This function is a companion to "
+"<xref linkend=\"Missing_Indexes_Generate_Script\"/> that in addition to "
+"generating the create index script, also executes it. It is called as part "
+"of the <filename>update_geocode.sql</filename> upgrade script."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:410
+#, no-c-format
+msgid ""
+"SELECT install_missing_indexes();\n"
+"                 install_missing_indexes\n"
+"-------------------------\n"
+" t"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:423
+#, no-c-format
+msgid "Loader_Generate_Census_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:425
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger census state tract, bg, and tabblocks data tables, "
+"stage and load into <varname>tiger_data</varname> schema. Each state script "
+"is returned as a separate record."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:430
+#, no-c-format
+msgid ""
+"<funcdef>setof text <function>loader_generate_census_script</function></"
+"funcdef> <paramdef><type>text[]</type> <parameter>param_states</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:441
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data census state <varname>tract</varname>, block "
+"groups <varname>bg</varname>, and <varname>tabblocks</varname> data tables, "
+"stage and load into <varname>tiger_data</varname> schema. Each state script "
+"is returned as a separate record."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:442
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the "
+"data. Note the smallest unit it does is a whole state. It will only process "
+"the files in the staging and temp folders."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502
+#, no-c-format
+msgid ""
+"It uses the following control tables to control the process and different OS "
+"shell syntax variations."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:448 extras_tigergeocoder.xml:506
+#: extras_tigergeocoder.xml:562
+#, no-c-format
+msgid ""
+"<varname>loader_variables</varname> keeps track of various variables such as "
+"census site, year, data and staging schemas"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:451 extras_tigergeocoder.xml:509
+#, no-c-format
+msgid ""
+"<varname>loader_platform</varname> profiles of various platforms and where "
+"the various executables are located. Comes with windows and linux. More can "
+"be added."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:454 extras_tigergeocoder.xml:512
+#: extras_tigergeocoder.xml:568
+#, no-c-format
+msgid ""
+"<varname>loader_lookuptables</varname> each record defines a kind of table "
+"(state, county), whether to process records in it and how to load them in. "
+"Defines the steps to import data, stage data, add, removes columns, indexes, "
+"and constraints for each. Each table is prefixed with the state and inherits "
+"from a table in the tiger schema. e.g. creates <varname>tiger_data.ma_faces</"
+"varname> which inherits from <varname>tiger.faces</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:458
+#, no-c-format
+msgid ""
+"includes this logic, but if you installed tiger geocoder prior to PostGIS "
+"2.0.0 alpha5, you'll need to run this on the states you have already done to "
+"get these additional tables."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:465
+#, no-c-format
+msgid ""
+"Generate script to load up data for select states in Windows shell script "
+"format."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:466
+#, no-c-format
+msgid ""
+"SELECT loader_generate_census_script(ARRAY['MA'], 'windows');\n"
+"-- result --\n"
+"set STATEDIR=\"\\gisdata\\www2.census.gov\\geo\\pvs\\tiger2010st"
+"\\25_Massachusetts\"\n"
+"set TMPDIR=\\gisdata\\temp\\\n"
+"set UNZIPTOOL=\"C:\\Program Files\\7-Zip\\7z.exe\"\n"
+"set WGETTOOL=\"C:\\wget\\wget.exe\"\n"
+"set PGBIN=C:\\projects\\pg\\pg91win\\bin\\\n"
+"set PGPORT=5432\n"
+"set PGHOST=localhost\n"
+"set PGUSER=postgres\n"
+"set PGPASSWORD=yourpasswordhere\n"
+"set PGDATABASE=tiger_postgis20\n"
+"set PSQL=\"%PGBIN%psql\"\n"
+"set SHP2PGSQL=\"%PGBIN%shp2pgsql\"\n"
+"cd \\gisdata\n"
+"\n"
+"%WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --"
+"no-parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --"
+"mirror --reject=html\n"
+"del %TMPDIR%\\*.* /Q\n"
+"%PSQL% -c \"DROP SCHEMA tiger_staging CASCADE;\"\n"
+"%PSQL% -c \"CREATE SCHEMA tiger_staging;\"\n"
+"cd %STATEDIR%\n"
+"for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% \n"
+"cd %TMPDIR%        \n"
+"%PSQL% -c \"CREATE TABLE tiger_data.MA_tract(CONSTRAINT pk_MA_tract PRIMARY "
+"KEY (tract_id) ) INHERITS(tiger.tract); \" \n"
+"%SHP2PGSQL% -c -s 4269 -g the_geom   -W \"latin1\" tl_2010_25_tract10.dbf "
+"tiger_staging.ma_tract10 | %PSQL%\n"
+"%PSQL% -c \"ALTER TABLE tiger_staging.MA_tract10 RENAME geoid10 TO "
+"tract_id;  SELECT loader_load_staged_data(lower('MA_tract10'), "
+"lower('MA_tract')); \"\n"
+"%PSQL% -c \"CREATE INDEX tiger_data_MA_tract_the_geom_gist ON tiger_data."
+"MA_tract USING gist(the_geom);\"\n"
+"%PSQL% -c \"VACUUM ANALYZE tiger_data.MA_tract;\"\n"
+"%PSQL% -c \"ALTER TABLE tiger_data.MA_tract ADD CONSTRAINT chk_statefp CHECK "
+"(statefp = '25');\"\n"
+":"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:467 extras_tigergeocoder.xml:525
+#, no-c-format
+msgid "Generate sh script"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:468
+#, no-c-format
+msgid ""
+"STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts\" \n"
+"TMPDIR=\"/gisdata/temp/\"\n"
+"UNZIPTOOL=unzip\n"
+"WGETTOOL=\"/usr/bin/wget\"\n"
+"export PGBIN=/usr/pgsql-9.0/bin\n"
+"export PGPORT=5432\n"
+"export PGHOST=localhost\n"
+"export PGUSER=postgres\n"
+"export PGPASSWORD=yourpasswordhere\n"
+"export PGDATABASE=geocoder\n"
+"PSQL=${PGBIN}/psql\n"
+"SHP2PGSQL=${PGBIN}/shp2pgsql\n"
+"cd /gisdata\n"
+"\n"
+"wget http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --no-"
+"parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --mirror --"
+"reject=html\n"
+"rm -f ${TMPDIR}/*.*\n"
+"${PSQL} -c \"DROP SCHEMA tiger_staging CASCADE;\"\n"
+"${PSQL} -c \"CREATE SCHEMA tiger_staging;\"\n"
+"cd $STATEDIR\n"
+"for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:481
+#, no-c-format
+msgid "Loader_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:483
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data, stage and load into <varname>tiger_data</"
+"varname> schema. Each state script is returned as a separate record. Latest "
+"version supports Tiger 2010 structural changes and also loads census tract, "
+"block groups, and blocks tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:488
+#, no-c-format
+msgid ""
+"<funcdef>setof text <function>loader_generate_script</function></funcdef> "
+"<paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:499
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data, stage and load into <varname>tiger_data</"
+"varname> schema. Each state script is returned as a separate record."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:500
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the "
+"data. Note the smallest unit it does is a whole state, but you can overwrite "
+"this by downloading the files yourself. It will only process the files in "
+"the staging and temp folders."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:515
+#, no-c-format
+msgid ""
+"Availability: 2.0.0 to support Tiger 2010 structured data and load census "
+"tract (tract), block groups (bg), and blocks (tabblocks) tables ."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:523
+#, no-c-format
+msgid ""
+"Generate script to load up data for 2 states in Windows shell script format."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:524
+#, no-c-format
+msgid ""
+"SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;\n"
+"-- result --\n"
+"set STATEDIR=\"\\gisdata\\www2.census.gov\\geo\\pvs\\tiger2010st"
+"\\44_Rhode_Island\"\n"
+"set TMPDIR=\\gisdata\\temp\\\n"
+"set UNZIPTOOL=\"C:\\Program Files\\7-Zip\\7z.exe\"\n"
+"set WGETTOOL=\"C:\\wget\\wget.exe\"\n"
+"set PGBIN=C:\\Program Files\\PostgreSQL\\8.4\\bin\\\n"
+"set PGPORT=5432\n"
+"set PGHOST=localhost\n"
+"set PGUSER=postgres\n"
+"set PGPASSWORD=yourpasswordhere\n"
+"set PGDATABASE=geocoder\n"
+"set PSQL=\"%PGBIN%psql\"\n"
+"set SHP2PGSQL=\"%PGBIN%shp2pgsql\"\n"
+"\n"
+"%WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-"
+"parent --relative --recursive --level=2 --accept=zip,txt --mirror --"
+"reject=html\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:526
+#, no-c-format
+msgid ""
+"SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;\n"
+"-- result --\n"
+"STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island\" \n"
+"TMPDIR=\"/gisdata/temp/\"\n"
+"UNZIPTOOL=unzip\n"
+"PGPORT=5432\n"
+"PGHOST=localhost\n"
+"PGUSER=postgres\n"
+"PGPASSWORD=yourpasswordhere\n"
+"PGDATABASE=geocoder\n"
+"PSQL=psql\n"
+"SHP2PGSQ=shp2pgsql\n"
+"\n"
+"wget http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-parent "
+"--relative --recursive --level=2 --accept=zip,txt --mirror --reject=html\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:539
+#, no-c-format
+msgid "Loader_Generate_Nation_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:541
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform that loads in the county "
+"and state lookup tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:546
+#, no-c-format
+msgid ""
+"<funcdef>text <function>loader_generate_nation_script</function></funcdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:556
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform that loads in the "
+"<varname>county_all</varname>, <varname>county_all_lookup</varname>, "
+"<varname>state_all</varname> tables into <varname>tiger_data</varname> "
+"schema. These inherit respectively from the <varname>county</varname>, "
+"<varname>county_lookup</varname>, <varname>state</varname> tables in "
+"<varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:557
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the data."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:558
+#, no-c-format
+msgid ""
+"It uses the following control tables <varname>tiger.loader_platform</"
+"varname>, <varname>tiger.loader_variables</varname>, and <varname>tiger."
+"loader_lookuptables</varname> to control the process and different OS shell "
+"syntax variations."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:565
+#, no-c-format
+msgid ""
+"<varname>loader_platform</varname> profiles of various platforms and where "
+"the various executables are located. Comes with windows and linux/unix. More "
+"can be added."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:572
+#, no-c-format
+msgid ""
+"If you were running <varname>tiger_2010</varname> version and you want to "
+"reload as state with <varname>tiger_2011</varname>, you'll need to for the "
+"very first load generate and run drop statements <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/> before you run this script."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:578
+#, no-c-format
+msgid "Generate script script to load nation data Windows."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:579
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:580
+#, no-c-format
+msgid "Generate script to load up data for Linux/Unix systems."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:581
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:593
+#, no-c-format
+msgid "Missing_Indexes_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:595
+#, no-c-format
+msgid ""
+"Finds all tables with key columns used in geocoder joins that are missing "
+"indexes on those columns and will output the SQL DDL to define the index for "
+"those tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:601
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:611
+#, no-c-format
+msgid ""
+"Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
+"varname> schemas with key columns used in geocoder joins that are missing "
+"indexes on those columns and will output the SQL DDL to define the index for "
+"those tables. This is a helper function that adds new indexes needed to make "
+"queries faster that may have been missing during the load process. As the "
+"geocoder is improved, this function will be updated to accommodate new "
+"indexes being used. If this function outputs nothing, it means all your "
+"tables have what we think are the key indexes already in place."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:625
+#, no-c-format
+msgid ""
+"SELECT missing_indexes_generate_script();\n"
+"-- output: This was run on a database that was created before many "
+"corrections were made to the loading script ---\n"
+"CREATE INDEX idx_tiger_county_countyfp ON tiger.county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_cousub_countyfp ON tiger.cousub USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_edges_tfidr ON tiger.edges USING btree(tfidr);\n"
+"CREATE INDEX idx_tiger_edges_tfidl ON tiger.edges USING btree(tfidl);\n"
+"CREATE INDEX idx_tiger_zip_lookup_all_zip ON tiger.zip_lookup_all USING "
+"btree(zip);\n"
+"CREATE INDEX idx_tiger_data_ma_county_countyfp ON tiger_data.ma_county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_cousub_countyfp ON tiger_data.ma_cousub USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_edges_countyfp ON tiger_data.ma_edges USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_faces_countyfp ON tiger_data.ma_faces USING "
+"btree(countyfp);"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:632
+#, no-c-format
+msgid ", <xref linkend=\"Install_Missing_Indexes\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:638
+#, no-c-format
+msgid "Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:640
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data)."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:646
+#, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:656 extras_tigergeocoder.xml:735
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This is the first step in the "
+"geocoding process to get all addresses into normalized postal form. No other "
+"data is required aside from what is packaged with the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:658
+#, no-c-format
+msgid ""
+"This function just uses the various direction/state/suffix lookup tables "
+"preloaded with the tiger_geocoder and located in the <varname>tiger</"
+"varname> schema, so it doesn't need you to download tiger census data or any "
+"other additional data to make use of it. You may find the need to add more "
+"abbreviations or alternative namings to the various lookup tables in the "
+"<varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:660 extras_tigergeocoder.xml:739
+#, no-c-format
+msgid ""
+"It uses various control lookup tables located in <varname>tiger</varname> "
+"schema to normalize the input address."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:661 extras_tigergeocoder.xml:740
+#, no-c-format
+msgid ""
+"Fields in the <varname>norm_addy</varname> type object returned by this "
+"function in this order where () indicates a field required by the geocoder, "
+"[] indicates an optional field:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:662 extras_tigergeocoder.xml:744
+#, no-c-format
+msgid ""
+"(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] "
+"[internal] [location] [stateAbbrev] [zip]"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:665 extras_tigergeocoder.xml:750
+#, no-c-format
+msgid "<varname>address</varname> is an integer: The street number"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:668 extras_tigergeocoder.xml:753
+#, no-c-format
+msgid ""
+"<varname>predirAbbrev</varname> is varchar: Directional prefix of road such "
+"as N, S, E, W etc. These are controlled using the <varname>direction_lookup</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:671 extras_tigergeocoder.xml:756
+#, no-c-format
+msgid "<varname>streetName</varname> varchar"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:674 extras_tigergeocoder.xml:759
+#, no-c-format
+msgid ""
+"<varname>streetTypeAbbrev</varname> varchar abbreviated version of street "
+"type: e.g. St, Ave, Cir. These are controlled using the "
+"<varname>street_type_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:677 extras_tigergeocoder.xml:762
+#, no-c-format
+msgid ""
+"<varname>postdirAbbrev</varname> varchar abbreviated directional suffice of "
+"road N, S, E, W etc. These are controlled using the "
+"<varname>direction_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:680 extras_tigergeocoder.xml:765
+#, no-c-format
+msgid ""
+"<varname>internal</varname> varchar internal address such as an apartment or "
+"suite number."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:683 extras_tigergeocoder.xml:768
+#, no-c-format
+msgid ""
+"<varname>location</varname> varchar usually a city or governing province."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:686 extras_tigergeocoder.xml:771
+#, no-c-format
+msgid ""
+"<varname>stateAbbrev</varname> varchar two character US State. e.g MA, NY, "
+"MI. These are controlled by the <varname>state_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:689 extras_tigergeocoder.xml:774
+#, no-c-format
+msgid "<varname>zip</varname> varchar 5-digit zipcode. e.g. 02109."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:692 extras_tigergeocoder.xml:777
+#, no-c-format
+msgid ""
+"<varname>parsed</varname> boolean - denotes if addess was formed from "
+"normalize process. The normalize_address function sets this to true before "
+"returning the address."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:701
+#, no-c-format
+msgid ""
+"Output select fields. Use <xref linkend=\"Pprint_Addy\"/> if you want a "
+"pretty textual output."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:702
+#, no-c-format
+msgid ""
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM (SELECT address, normalize_address(address) As na\n"
+"        FROM addresses_to_geocode) As g;\n"
+"        \n"
+"                        orig                         |  streetname   | "
+"streettypeabbrev \n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 28 Capen Street, Medford, MA                        | Capen         | St\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | Mount Auburn  | St\n"
+" 950 Main Street, Worcester, MA 01610                | Main          | St\n"
+" 529 Main Street, Boston MA, 02129                   | Main          | St\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | Massachusetts | Ave\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | Wizard of Oz  |"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:711
+#, no-c-format
+msgid ", <xref linkend=\"Pprint_Addy\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:717
+#, no-c-format
+msgid "Pagc_Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:719
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data). Requires address_standardizer extension."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:725
+#, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>pagc_normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:737
+#, no-c-format
+msgid ""
+"This function just uses the various pagc_* lookup tables preloaded with the "
+"tiger_geocoder and located in the <varname>tiger</varname> schema, so it "
+"doesn't need you to download tiger census data or any other additional data "
+"to make use of it. You may find the need to add more abbreviations or "
+"alternative namings to the various lookup tables in the <varname>tiger</"
+"varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:741
+#, no-c-format
+msgid ""
+"There are slight variations in casing and formatting over the <xref linkend="
+"\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:743
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:745
+#, no-c-format
+msgid ""
+"The native standardaddr of address_standardizer extension is at this time a "
+"bit richer than norm_addy since its designed to support international "
+"addresses (including country). standardaddr equivalent fields are:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:746
+#, no-c-format
+msgid "house_num,predir, name, suftype, sufdir, unit, city, state, postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:785
+#, no-c-format
+msgid "Single call example"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:786
+#, no-c-format
+msgid ""
+"SELECT addy.*\n"
+"FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS "
+"addy;\n"
+"\n"
+"        \n"
+" address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | "
+"internal  |  location   | stateabbrev | zip | parsed\n"
+"---------+--------------+------------+------------------+---------------"
+"+-----------+-------------+-------------+-----+--------\n"
+"    9000 | E            | ROO        | ST               |               | "
+"SUITE 999 | SPRINGFIELD | CO          |     | t"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:788
+#, no-c-format
+msgid ""
+"Batch call. There are currently speed issues with the way "
+"postgis_tiger_geocoder wraps the address_standardizer. These will hopefully "
+"be resolved in later editions. To work around them, if you need speed for "
+"batch geocoding to call generate a normaddy in batch mode, you are "
+"encouraged to directly call the address_standardizer standardize_address "
+"function as shown below which is similar exercise to what we did in <xref "
+"linkend=\"Normalize_Address\"/> that uses data created in <xref linkend="
+"\"Geocode\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:792
+#, no-c-format
+msgid ""
+"WITH g AS (SELECT address, ROW((sa).house_num, (sa).predir, (sa).name\n"
+"  , (sa).suftype, (sa).sufdir, (sa).unit , (sa).city, (sa).state, (sa)."
+"postcode, true)::norm_addy As na\n"
+" FROM (SELECT address, standardize_address('tiger.pagc_lex'\n"
+"       , 'tiger.pagc_gaz'\n"
+"       , 'tiger.pagc_rules', address) As sa\n"
+"        FROM addresses_to_geocode) As g)\n"
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM  g;\n"
+" \n"
+" orig                                                |  streetname   | "
+"streettypeabbrev\n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 529 Main Street, Boston MA, 02129                   | MAIN          | ST\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | MASSACHUSETTS | AVE\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | WIZARD OF     |\n"
+" 26 Capen Street, Medford, MA                        | CAPEN         | ST\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | MOUNT AUBURN  | ST\n"
+" 950 Main Street, Worcester, MA 01610                | MAIN          | ST"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:797 extras_tigergeocoder.xml:913
+#, no-c-format
+msgid ", <xref linkend=\"Geocode\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:803
+#, no-c-format
+msgid "Pprint_Addy"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:805
+#, no-c-format
+msgid ""
+"Given a <varname>norm_addy</varname> composite type object, returns a pretty "
+"print representation of it. Usually used in conjunction with "
+"normalize_address."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:810
+#, no-c-format
+msgid ""
+"<funcdef>varchar <function>pprint_addy</function></funcdef> "
+"<paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:820
+#, no-c-format
+msgid ""
+"Given a <varname>norm_addy</varname> composite type object, returns a pretty "
+"print representation of it. No other data is required aside from what is "
+"packaged with the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:821
+#, no-c-format
+msgid "Usually used in conjunction with <xref linkend=\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:829
+#, no-c-format
+msgid "Pretty print a single address"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:830
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"            pretty_address\n"
+"---------------------------------------\n"
+" 202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:832
+#, no-c-format
+msgid "Pretty print address a table of addresses"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:833
+#, no-c-format
+msgid ""
+"SELECT address As orig, pprint_addy(normalize_address(address)) As "
+"pretty_address\n"
+"        FROM addresses_to_geocode;\n"
+"        \n"
+"                        orig                         |              "
+"pretty_address\n"
+"-----------------------------------------------------"
+"+-------------------------------------------\n"
+" 529 Main Street, Boston MA, 02129                   | 529 Main St, Boston "
+"MA, 02129\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | 77 Massachusetts Ave, "
+"Cambridge, MA 02139\n"
+" 28 Capen Street, Medford, MA                        | 28 Capen St, Medford, "
+"MA\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | 124 Mount Auburn St, "
+"Cambridge, MA 02138\n"
+" 950 Main Street, Worcester, MA 01610                | 950 Main St, "
+"Worcester, MA 01610"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:846
+#, no-c-format
+msgid "Reverse_Geocode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:848
+#, no-c-format
+msgid ""
+"Takes a geometry point in a known spatial ref sys and returns a record "
+"containing an array of theoretically possible addresses and an array of "
+"cross streets. If include_strnum_range = true, includes the street range in "
+"the cross streets."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:853
+#, no-c-format
+msgid ""
+"<funcdef>record <function>Reverse_Geocode</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>include_strnum_range=false</parameter></paramdef> "
+"<paramdef><type>geometry[] </type> <parameter>OUT intpt</parameter></"
+"paramdef> <paramdef><type>norm_addy[] </type> <parameter>OUT addy</"
+"parameter></paramdef> <paramdef><type>varchar[] </type> <parameter>OUT "
+"street</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:867
+#, no-c-format
+msgid ""
+"Takes a geometry point in a known spatial ref and returns a record "
+"containing an array of theoretically possible addresses and an array of "
+"cross streets. If include_strnum_range = true, includes the street range in "
+"the cross streets. include_strnum_range defaults to false if not passed in. "
+"Addresses are sorted according to which road a point is closest to so first "
+"address is most likely the right one."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:870
+#, no-c-format
+msgid ""
+"Why do we say theoretical instead of actual addresses. The Tiger data "
+"doesn't have real addresses, but just street ranges. As such the theoretical "
+"address is an interpolated address based on the street ranges. Like for "
+"example interpolating one of my addresses returns a 26 Court St. and 26 "
+"Court Sq., though there is no such place as 26 Court Sq. This is because a "
+"point may be at a corner of 2 streets and thus the logic interpolates along "
+"both streets. The logic also assumes addresses are equally spaced along a "
+"street, which of course is wrong since you can have a municipal building "
+"taking up a good chunk of the street range and the rest of the buildings are "
+"clustered at the end."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:875
+#, no-c-format
+msgid ""
+"Note: Hmm this function relies on Tiger data. If you have not loaded data "
+"covering the region of this point, then hmm you will get a record filled "
+"with NULLS."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:876
+#, no-c-format
+msgid "Returned elements of the record are as follows:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:879
+#, no-c-format
+msgid ""
+"<varname>intpt</varname> is an array of points: These are the center line "
+"points on the street closest to the input point. There are as many points as "
+"there are addresses."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:882
+#, no-c-format
+msgid ""
+"<varname>addy</varname> is an array of norm_addy (normalized addresses): "
+"These are an array of possible addresses that fit the input point. The first "
+"one in the array is most likely. Generally there should be only one, except "
+"in the case when a point is at the corner of 2 or 3 streets, or the point is "
+"somewhere on the road and not off to the side."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:886
+#, no-c-format
+msgid ""
+"<varname>street</varname> an array of varchar: These are cross streets (or "
+"the street) (streets that intersect or are the street the point is projected "
+"to be on)."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:897
+#, no-c-format
+msgid ""
+"Example of a point at the corner of two streets, but closest to one. This is "
+"approximate location of MIT: 77 Massachusetts Ave, Cambridge, MA 02139 Note "
+"that although we don't have 3 streets, PostgreSQL will just return null for "
+"entries above our upper bound so safe to use. This includes street ranges"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:899
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, "
+"pprint_addy(r.addy[3]) As st3, \n"
+"                array_to_string(r.street, ',') As cross_streets \n"
+"        FROM reverse_geocode(ST_GeomFromText('POINT(-71.093902 "
+"42.359446)',4269),true) As r;\n"
+"       \n"
+" result\n"
+" ------\n"
+"      st1                                  | st2 | st3 |               "
+"cross_streets\n"
+"-------------------------------------------+-----+-----"
+"+----------------------------------------------\n"
+" 67 Massachusetts Ave, Cambridge, MA 02139 |     |     | 67 - 127 "
+"Massachusetts Ave,32 - 88 Vassar St"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:901
+#, no-c-format
+msgid ""
+"Here we choose not to include the address ranges for the cross streets and "
+"picked a location really really close to a corner of 2 streets thus could be "
+"known by two different addresses."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:903
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, \n"
+"pprint_addy(r.addy[3]) As st3, array_to_string(r.street, ',') As cross_str\n"
+"FROM reverse_geocode(ST_GeomFromText('POINT(-71.06941 42.34225)',4269)) As "
+"r;\n"
+"\n"
+"result\n"
+"--------\n"
+"               st1               |               st2               | st3 | "
+"cross_str\n"
+"---------------------------------+---------------------------------+-----"
+"+------------------------\n"
+" 5 Bradford St, Boston, MA 02118 | 49 Waltham St, Boston, MA 02118 |     | "
+"Waltham St"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:905
+#, no-c-format
+msgid ""
+"For this one we reuse our geocoded example from <xref linkend=\"Geocode\"/> "
+"and we only want the primary address and at most 2 cross streets."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:906
+#, no-c-format
+msgid ""
+"SELECT actual_addr, lon, lat, pprint_addy((rg).addy[1]) As int_addr1, \n"
+"        (rg).street[1] As cross1, (rg).street[2] As cross2\n"
+"FROM (SELECT address As actual_addr, lon, lat,\n"
+"    reverse_geocode( ST_SetSRID(ST_Point(lon,lat),4326) ) As rg\n"
+"    FROM addresses_to_geocode WHERE rating > -1) As foo;\n"
+"\n"
+"                     actual_addr                     |    lon    |   lat    "
+"|                 int_addr1                 |     cross1      |   cross2   \n"
+"-----------------------------------------------------+-----------+----------"
+"+-------------------------------------------+-----------------+------------\n"
+" 529 Main Street, Boston MA, 02129                   | -71.07181 | 42.38359 "
+"| 527 Main St, Boston, MA 02129             | Medford St      | \n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | -71.09428 | 42.35988 "
+"| 77 Massachusetts Ave, Cambridge, MA 02139 | Vassar St       | \n"
+" 26 Capen Street, Medford, MA                        | -71.12377 | 42.41101 "
+"| 9 Edison Ave, Medford, MA 02155           | Capen St        | Tesla Ave\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | -71.12304 | 42.37328 "
+"| 3 University Rd, Cambridge, MA 02138      | Mount Auburn St | \n"
+" 950 Main Street, Worcester, MA 01610                | -71.82368 | 42.24956 "
+"| 3 Maywood St, Worcester, MA 01603         | Main St         | Maywood Pl"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:919
+#, no-c-format
+msgid "Topology_Load_Tiger"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:921
+#, no-c-format
+msgid ""
+"Loads a defined region of tiger data into a PostGIS Topology and "
+"transforming the tiger data to spatial reference of the topology and "
+"snapping to the precision tolerance of the topology."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:927
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Topology_Load_Tiger</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topo_name</parameter></paramdef> "
+"<paramdef><type>varchar </type> <parameter>region_type</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>region_id</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:939
+#, no-c-format
+msgid ""
+"Loads a defined region of tiger data into a PostGIS Topology. The faces, "
+"nodes and edges are transformed to the spatial reference system of the "
+"target topology and points are snapped to the tolerance of the target "
+"topology. The created faces, nodes, edges maintain the same ids as the "
+"original Tiger data faces, nodes, edges so that datasets can be in the "
+"future be more easily reconciled with tiger data. Returns summary details "
+"about the process."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:942
+#, no-c-format
+msgid ""
+"This would be useful for example for redistricting data where you require "
+"the newly formed polygons to follow the center lines of streets and for the "
+"resulting polygons not to overlap."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:944
+#, no-c-format
+msgid ""
+"This function relies on Tiger data as well as the installation of the "
+"PostGIS topology module. For more information, refer to <xref linkend="
+"\"Topology\"/> and <xref linkend=\"installation_configuration\"/>. If you "
+"have not loaded data covering the region of interest, then no topology "
+"records will be created. This function will also fail if you have not "
+"created a topology using the topology functions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:946
+#, no-c-format
+msgid ""
+"Most topology validation errors are a result of tolerance issues where after "
+"transformation the edges points don't quite line up or overlap. To remedy "
+"the situation you may want to increase or lower the precision if you get "
+"topology validation failures."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:948
+#, no-c-format
+msgid "Required arguments:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:951
+#, no-c-format
+msgid ""
+"<varname>topo_name</varname> The name of an existing PostGIS topology to "
+"load data into."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:954
+#, no-c-format
+msgid ""
+"<varname>region_type</varname> The type of bounding region. Currently only "
+"<varname>place</varname> and <varname>county</varname> are supported. Plan "
+"is to have several more. This is the table to look into to define the region "
+"bounds. e.g <varname>tiger.place</varname>, <varname>tiger.county</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:957
+#, no-c-format
+msgid ""
+"<varname>region_id</varname> This is what TIGER calls the geoid. It is the "
+"unique identifier of the region in the table. For place it is the "
+"<varname>plcidfp</varname> column in <varname>tiger.place</varname>. For "
+"county it is the <varname>cntyidfp</varname> column in <varname>tiger."
+"county</varname>"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:966
+#, no-c-format
+msgid "Example: Boston, Massachusetts Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:967
+#, no-c-format
+msgid ""
+"Create a topology for Boston, Massachusetts in Mass State Plane Feet (2249) "
+"with tolerance 0.25 feet and then load in Boston city tiger faces, edges, "
+"nodes."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:969
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('topo_boston', 2249, 0.25);\n"
+"createtopology\n"
+"--------------\n"
+"   15\n"
+"-- 60,902 ms ~ 1 minute on windows 7 desktop running 9.1 (with 5 states "
+"tiger data loaded) \n"
+"SELECT tiger.topology_load_tiger('topo_boston', 'place', '2507000'); \n"
+"-- topology_loader_tiger --\n"
+"29722 edges holding in temporary. 11108 faces added. 1875 edges of faces "
+"added.  20576 nodes added.  \n"
+"19962 nodes contained in a face.  0 edge start end corrected.  31597 edges "
+"added. \n"
+" \n"
+"-- 41 ms --\n"
+"SELECT topology.TopologySummary('topo_boston');\n"
+" -- topologysummary--\n"
+"Topology topo_boston (15), SRID 2249, precision 0.25\n"
+"20576 nodes, 31597 edges, 11109 faces, 0 topogeoms in 0 layers\n"
+"\n"
+"-- 28,797 ms to validate yeh returned no errors --\n"
+"SELECT * FROM \n"
+"    topology.ValidateTopology('topo_boston'); \n"
+"    \n"
+"       error       |   id1    |    id2\n"
+"-------------------+----------+-----------"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:973
+#, no-c-format
+msgid "Example: Suffolk, Massachusetts Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:974
+#, no-c-format
+msgid ""
+"Create a topology for Suffolk, Massachusetts in Mass State Plane Meters "
+"(26986) with tolerance 0.25 meters and then load in Suffolk county tiger "
+"faces, edges, nodes."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:976
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);\n"
+"-- this took 56,275 ms ~ 1 minute on Windows 7 32-bit with 5 states of tiger "
+"loaded\n"
+"-- must have been warmed up after loading boston\n"
+"SELECT tiger.topology_load_tiger('topo_suffolk', 'county', '25025');  \n"
+"-- topology_loader_tiger --\n"
+" 36003 edges holding in temporary. 13518 faces added. 2172 edges of faces "
+"added. \n"
+" 24761 nodes added.  24075 nodes contained in a face.  0 edge start end "
+"corrected.  38175 edges added. \n"
+"-- 31 ms --\n"
+"SELECT topology.TopologySummary('topo_suffolk');\n"
+" -- topologysummary--\n"
+" Topology topo_suffolk (14), SRID 26986, precision 0.25\n"
+"24761 nodes, 38175 edges, 13519 faces, 0 topogeoms in 0 layers\n"
+"\n"
+"-- 33,606 ms to validate --\n"
+"SELECT * FROM \n"
+"    topology.ValidateTopology('topo_suffolk'); \n"
+"    \n"
+"       error       |   id1    |    id2\n"
+"-------------------+----------+-----------\n"
+" coincident nodes  | 81045651 |  81064553\n"
+" edge crosses node | 81045651 |  85737793\n"
+" edge crosses node | 81045651 |  85742215\n"
+" edge crosses node | 81045651 | 620628939\n"
+" edge crosses node | 81064553 |  85697815\n"
+" edge crosses node | 81064553 |  85728168\n"
+" edge crosses node | 81064553 |  85733413"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:980
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopoGeom\"/>, <xref linkend=\"TopologySummary\"/>, "
+"<xref linkend=\"ValidateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:986
+#, no-c-format
+msgid "Set_Geocode_Setting"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:988
+#, no-c-format
+msgid "Sets a setting that affects behavior of geocoder functions."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:993
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Set_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> setting_value</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:1004
+#, no-c-format
+msgid ""
+"Sets value of specific setting stored in <varname>tiger.geocode_settings</"
+"varname> table. Settings allow you to toggle debugging of functions. Later "
+"plans will be to control rating with settings. Current list of settings are "
+"listed in <xref linkend=\"Get_Geocode_Setting\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:1013
+#, no-c-format
+msgid ""
+"If you run <xref linkend=\"Geocode\"/> when this function is true, the "
+"NOTICE log will output timing and queries."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:1014
+#, no-c-format
+msgid ""
+"SELECT set_geocode_setting('debug_geocode_address', 'true') As result;\n"
+"result\n"
+"---------\n"
+"true"
+msgstr ""
diff --git a/doc/po/es/extras_topology.xml.po b/doc/po/es/extras_topology.xml.po
new file mode 100644
index 0000000..3973875
--- /dev/null
+++ b/doc/po/es/extras_topology.xml.po
@@ -0,0 +1,4209 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: extras_topology.xml:3
+#, no-c-format
+msgid "Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:4
+#, no-c-format
+msgid ""
+"The PostGIS Topology types and functions are used to manage topological "
+"objects such as faces, edges and nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:5
+#, no-c-format
+msgid ""
+"Sandro Santilli's presentation at PostGIS Day Paris 2011 conference gives a "
+"good synopsis of PostGIS Topology and where it is headed <ulink url=\"http://"
+"strk.keybit.net/projects/postgis/Paris2011_TopologyWithPostGIS_2_0.pdf"
+"\">Topology with PostGIS 2.0 slide deck</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:6
+#, no-c-format
+msgid ""
+"Vincent Picavet provides a good synopsis and overview of what is Topology, "
+"how is it used, and various FOSS4G tools that support it in <ulink url="
+"\"http://2010.foss4g.org/presentations/3555.pdf\">State of the art of FOSS4G "
+"for topology and network analysis</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:7
+#, no-c-format
+msgid ""
+"An example of a topologically based GIS database is the <ulink url=\"http://"
+"www.census.gov/geo/www/tiger/overview.html\">US Census Topologically "
+"Integrated Geographic Encoding and Reference System (TIGER)</ulink> "
+"database. If you want to experiment with PostGIS topology and need some "
+"data, check out <xref linkend=\"Topology_Load_Tiger\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:8
+#, no-c-format
+msgid ""
+"The PostGIS topology module has existed in prior versions of PostGIS but was "
+"never part of the Official PostGIS documentation. In PostGIS 2.0.0 major "
+"cleanup is going on to remove use of all deprecated functions in it, fix "
+"known usability issues, better document the features and functions, add new "
+"functions, and enhance to closer conform to SQL-MM standards."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:10
+#, no-c-format
+msgid ""
+"Details of this project can be found at <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/UsersWikiPostgisTopology\">PostGIS Topology Wiki</ulink>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:11
+#, no-c-format
+msgid ""
+"All functions and tables associated with this module are installed in a "
+"schema called <varname>topology</varname>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:12
+#, no-c-format
+msgid ""
+"Functions that are defined in SQL/MM standard are prefixed with ST_ and "
+"functions specific to PostGIS are not prefixed."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:13
+#, no-c-format
+msgid ""
+"To build PostGIS 2.0 with topology support, compile with the --with-topology "
+"option as described in <xref linkend=\"postgis_installation\"/>. Some "
+"functions depend on GEOS 3.3+ so you should compile with GEOS 3.3+ to fully "
+"utilize the topology support."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:18
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by PostGIS Topology. "
+"Note we describe the casting behavior of these which is very important "
+"especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:23
+#, no-c-format
+msgid "Topology Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:27
+#, no-c-format
+msgid "getfaceedges_returntype"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:28
+#, no-c-format
+msgid ""
+"A composite type that consists of a sequence number and edge number. This is "
+"the return type for <varname>ST_GetFaceEdges</varname>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:31 extras_topology.xml:50 extras_topology.xml:99
+#: extras_topology.xml:138 extras_topology.xml:163 extras_topology.xml:240
+#: extras_topology.xml:287 extras_topology.xml:328 extras_topology.xml:367
+#: extras_topology.xml:404 extras_topology.xml:474 extras_topology.xml:522
+#: extras_topology.xml:570 extras_topology.xml:614 extras_topology.xml:662
+#: extras_topology.xml:708 extras_topology.xml:754 extras_topology.xml:809
+#: extras_topology.xml:855 extras_topology.xml:902 extras_topology.xml:959
+#: extras_topology.xml:1017 extras_topology.xml:1089 extras_topology.xml:1157
+#: extras_topology.xml:1223 extras_topology.xml:1278 extras_topology.xml:1326
+#: extras_topology.xml:1373 extras_topology.xml:1416 extras_topology.xml:1470
+#: extras_topology.xml:1564 extras_topology.xml:1659 extras_topology.xml:1701
+#: extras_topology.xml:1743 extras_topology.xml:1786 extras_topology.xml:1836
+#: extras_topology.xml:1880 extras_topology.xml:1932 extras_topology.xml:1990
+#: extras_topology.xml:2031 extras_topology.xml:2088 extras_topology.xml:2134
+#: extras_topology.xml:2206 extras_topology.xml:2260 extras_topology.xml:2331
+#: extras_topology.xml:2407 extras_topology.xml:2452 extras_topology.xml:2484
+#: extras_topology.xml:2522 extras_topology.xml:2570 extras_topology.xml:2665
+#: extras_topology.xml:2719 extras_topology.xml:2782 extras_topology.xml:2831
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:32
+#, no-c-format
+msgid ""
+"A composite type that consists of a sequence number and edge number. This is "
+"the return type for <varname>ST_GetFaceEdges</varname> function."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:35
+#, no-c-format
+msgid ""
+"<varname>sequence</varname> is an integer: Refers to a topology defined in "
+"the topology.topology table which defines the topology schema and srid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:38
+#, no-c-format
+msgid "<varname>edge</varname> is an integer: The identifier of an edge."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:46
+#, no-c-format
+msgid "TopoGeometry"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:47
+#, no-c-format
+msgid "A composite type representing a topologically defined geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:51
+#, no-c-format
+msgid ""
+"A composite type that refers to a topology geometry in a specific topology "
+"layer, having a specific type and a specific id. The elements of a "
+"TopoGeometry are the properties: topology_id, layer_id, id integer, type "
+"integer."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:54
+#, no-c-format
+msgid ""
+"<varname>topology_id</varname> is an integer: Refers to a topology defined "
+"in the topology.topology table which defines the topology schema and srid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:57
+#, no-c-format
+msgid ""
+"<varname>layer_id</varname> is an integer: The layer_id in the layers table "
+"that the TopoGeometry belongs to. The combination of topology_id, layer_id "
+"provides a unique reference in the topology.layers table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:60
+#, no-c-format
+msgid ""
+"<varname>id</varname> is an integer: The id is the autogenerated sequence "
+"number that uniquely defines the topogeometry in the respective topology "
+"layer."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:63
+#, no-c-format
+msgid ""
+"<varname>type</varname> integer between 1 - 4 that defines the geometry "
+"type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:69
+#, no-c-format
+msgid "Casting Behavior"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:70
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:75
+#, no-c-format
+msgid "Cast To"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:76
+#, no-c-format
+msgid "Behavior"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:79
+#, no-c-format
+msgid "geometry"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:80
+#, no-c-format
+msgid "automatic"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:149
+#: extras_topology.xml:173 extras_topology.xml:265 extras_topology.xml:305
+#: extras_topology.xml:345 extras_topology.xml:382 extras_topology.xml:423
+#: extras_topology.xml:499 extras_topology.xml:548 extras_topology.xml:587
+#: extras_topology.xml:636 extras_topology.xml:677 extras_topology.xml:723
+#: extras_topology.xml:769 extras_topology.xml:830 extras_topology.xml:877
+#: extras_topology.xml:933 extras_topology.xml:990 extras_topology.xml:1062
+#: extras_topology.xml:1130 extras_topology.xml:1197 extras_topology.xml:1246
+#: extras_topology.xml:1295 extras_topology.xml:1345 extras_topology.xml:1393
+#: extras_topology.xml:1442 extras_topology.xml:1488 extras_topology.xml:1542
+#: extras_topology.xml:1586 extras_topology.xml:1636 extras_topology.xml:1674
+#: extras_topology.xml:1716 extras_topology.xml:1758 extras_topology.xml:1809
+#: extras_topology.xml:1854 extras_topology.xml:1904 extras_topology.xml:1957
+#: extras_topology.xml:2006 extras_topology.xml:2065 extras_topology.xml:2108
+#: extras_topology.xml:2183 extras_topology.xml:2218 extras_topology.xml:2290
+#: extras_topology.xml:2380 extras_topology.xml:2421 extras_topology.xml:2471
+#: extras_topology.xml:2541 extras_topology.xml:2588 extras_topology.xml:2697
+#: extras_topology.xml:2746 extras_topology.xml:2807 extras_topology.xml:2857
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:95
+#, no-c-format
+msgid "validatetopology_returntype"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:96
+#, no-c-format
+msgid ""
+"A composite type that consists of an error message and id1 and id2 to denote "
+"location of error. This is the return type for <varname>ValidateTopology</"
+"varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:100
+#, no-c-format
+msgid ""
+"A composite type that consists of an error message and two integers. The "
+"<xref linkend=\"ValidateTopology\"/> function returns a set of these to "
+"denote validation errors and the id1 and id2 to denote the ids of the "
+"topology objects involved in the error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:103
+#, no-c-format
+msgid "<varname>error</varname> is varchar: Denotes type of error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:104
+#, no-c-format
+msgid ""
+"Current error descriptors are: coincident nodes, edge crosses node, edge not "
+"simple, edge end node geometry mis-match, edge start node geometry mismatch, "
+"face overlaps face,face within face,"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:107
+#, no-c-format
+msgid ""
+"<varname>id1</varname> is an integer: Denotes identifier of edge / face / "
+"nodes in error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:110
+#, no-c-format
+msgid ""
+"<varname>id2</varname> is an integer: For errors that involve 2 objects "
+"denotes the secondary edge / or node"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:125
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL domains installed by PostGIS Topology. "
+"Domains can be used like object types as return objects of functions or "
+"table columns. The distinction between a domain and a type is that a domain "
+"is an existing type with a check constraint bound to it."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:130
+#, no-c-format
+msgid "Topology Domains"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:134
+#, no-c-format
+msgid "TopoElement"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:135
+#, no-c-format
+msgid ""
+"An array of 2 integers generally used to identify a TopoGeometry component."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:139
+#, no-c-format
+msgid ""
+"An array of 2 integers used to represent the id (first element) and type "
+"(second element) of a topology primitive or the id (first element) and layer "
+"(second element) of a TopoGeometry. Sets of such pairs are used to define "
+"TopoGeometry objects (either simple or hierarchical)."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:142 extras_topology.xml:167 extras_topology.xml:258
+#: extras_topology.xml:298 extras_topology.xml:339 extras_topology.xml:377
+#: extras_topology.xml:417 extras_topology.xml:488 extras_topology.xml:538
+#: extras_topology.xml:581 extras_topology.xml:630 extras_topology.xml:823
+#: extras_topology.xml:870 extras_topology.xml:926 extras_topology.xml:983
+#: extras_topology.xml:1055 extras_topology.xml:1123 extras_topology.xml:1191
+#: extras_topology.xml:1240 extras_topology.xml:1387 extras_topology.xml:1436
+#: extras_topology.xml:1482 extras_topology.xml:1534 extras_topology.xml:1579
+#: extras_topology.xml:1628 extras_topology.xml:1668 extras_topology.xml:1710
+#: extras_topology.xml:1752 extras_topology.xml:1802 extras_topology.xml:1848
+#: extras_topology.xml:2059 extras_topology.xml:2102 extras_topology.xml:2177
+#: extras_topology.xml:2371 extras_topology.xml:2417 extras_topology.xml:2465
+#: extras_topology.xml:2534 extras_topology.xml:2581 extras_topology.xml:2688
+#: extras_topology.xml:2751 extras_topology.xml:2800 extras_topology.xml:2850
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:143
+#, no-c-format
+msgid ""
+"SELECT te[1] AS id, te[2] AS type FROM\n"
+"( SELECT ARRAY[1,2]::topology.topoelement AS te ) f;\n"
+" id | type\n"
+"----+------\n"
+"  1 |    2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:144
+#, no-c-format
+msgid ""
+"SELECT ARRAY[1,2]::topology.topoelement;\n"
+"  te\n"
+"-------\n"
+" {1,2}"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:145
+#, no-c-format
+msgid ""
+"--Example of what happens when you try to case a 3 element array to "
+"topoelement\n"
+"-- NOTE: topoement has to be a 2 element array so fails dimension check\n"
+"SELECT ARRAY[1,2,3]::topology.topoelement;\n"
+"ERROR:  value for domain topology.topoelement violates check constraint "
+"\"dimensions\""
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:150 extras_topology.xml:2422 extras_topology.xml:2542
+#, no-c-format
+msgid ", <xref linkend=\"topoelementarray\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:159
+#, no-c-format
+msgid "TopoElementArray"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:160
+#, no-c-format
+msgid "An array of TopoElement objects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:164
+#, no-c-format
+msgid ""
+"An array of 1 or more TopoElement objects, generally used to pass around "
+"components of TopoGeometry objects."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:168
+#, no-c-format
+msgid ""
+"SELECT '{{1,2},{4,3}}'::topology.topoelementarray As tea;\n"
+"  tea\n"
+"-------\n"
+"{{1,2},{4,3}}\n"
+"\n"
+"-- more verbose equivalent --\n"
+"SELECT ARRAY[ARRAY[1,2], ARRAY[4,3]]::topology.topoelementarray As tea;\n"
+"\n"
+"  tea\n"
+"-------\n"
+"{{1,2},{4,3}}\n"
+"\n"
+"--using the array agg function packaged with topology --\n"
+"SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
+"  FROM generate_series(1,4) As e CROSS JOIN generate_series(1,3) As t;\n"
+"  tea\n"
+"--------------------------------------------------------------------------\n"
+"{{1,1},{1,2},{1,3},{2,1},{2,2},{2,3},{3,1},{3,2},{3,3},{4,1},{4,2},{4,3}}"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:169
+#, no-c-format
+msgid ""
+"SELECT '{{1,2,4},{3,4,5}}'::topology.topoelementarray As tea;\n"
+"ERROR:  value for domain topology.topoelementarray violates check constraint "
+"\"dimensions\""
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:174
+#, no-c-format
+msgid ""
+", <xref linkend=\"GetTopoGeomElementArray\"/>, <xref linkend="
+"\"TopoElementArray_Agg\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:186
+#, no-c-format
+msgid ""
+"This section lists the Topology functions for building new Topology schemas, "
+"validating topologies, and managing TopoGeometry Columns"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:189
+#, no-c-format
+msgid "Topology and TopoGeometry Management"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:192
+#, no-c-format
+msgid "AddTopoGeometryColumn"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:193
+#, no-c-format
+msgid ""
+"Adds a topogeometry column to an existing table, registers this new column "
+"as a layer in topology.layer and returns the new layer_id."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:197
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>child_layer</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:242
+#, no-c-format
+msgid ""
+"Each TopoGeometry object belongs to a specific Layer of a specific Topology. "
+"Before creating a TopoGeometry object you need to create its TopologyLayer. "
+"A Topology Layer is an association of a feature-table with the topology. It "
+"also contain type and hierarchy information. We create a layer using the "
+"AddTopoGeometryColumn() function:"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:244
+#, no-c-format
+msgid ""
+"This function will both add the requested column to the table and add a "
+"record to the topology.layer table with all the given info."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:245
+#, no-c-format
+msgid ""
+"If you don't specify [child_layer] (or set it to NULL) this layer would "
+"contain Basic TopoGeometries (composed by primitive topology elements). "
+"Otherwise this layer will contain hierarchical TopoGeometries (composed by "
+"TopoGeometries from the child_layer)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:248
+#, no-c-format
+msgid ""
+"Once the layer is created (it's id is returned by the AddTopoGeometryColumn "
+"function) you're ready to construct TopoGeometry objects in it"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:249
+#, no-c-format
+msgid ""
+"Valid <varname>feature_type</varname>s are: POINT, LINE, POLYGON, COLLECTION"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:252 extras_topology.xml:293 extras_topology.xml:334
+#: extras_topology.xml:410 extras_topology.xml:483 extras_topology.xml:575
+#: extras_topology.xml:817 extras_topology.xml:864 extras_topology.xml:1233
+#: extras_topology.xml:1381 extras_topology.xml:1430 extras_topology.xml:1476
+#: extras_topology.xml:1663 extras_topology.xml:1747 extras_topology.xml:1842
+#: extras_topology.xml:2268 extras_topology.xml:2529 extras_topology.xml:2576
+#: extras_topology.xml:2791 extras_topology.xml:2841
+#, no-c-format
+msgid "Availability: 1.?"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:259
+#, no-c-format
+msgid ""
+"-- Note for this example we created our new table in the ma_topo schema \n"
+"-- though we could have created it in a different schema -- in which case "
+"topology_name and schema_name would be different \n"
+"CREATE SCHEMA ma;\n"
+"CREATE TABLE ma.parcels(gid serial, parcel_id varchar(20) PRIMARY KEY, "
+"address text);\n"
+"SELECT topology.AddTopoGeometryColumn('ma_topo', 'ma', 'parcels', 'topo', "
+"'POLYGON');"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:260
+#, no-c-format
+msgid ""
+"CREATE SCHEMA ri;\n"
+"CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);\n"
+"SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', "
+"'LINE');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:267
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopoGeom\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:272
+#, no-c-format
+msgid "DropTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:274
+#, no-c-format
+msgid ""
+"Use with caution: Drops a topology schema and deletes its reference from "
+"topology.topology table and references to tables in that schema from the "
+"geometry_columns table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:279
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>DropTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:289
+#, no-c-format
+msgid ""
+"Drops a topology schema and deletes its reference from topology.topology "
+"table and references to tables in that schema from the geometry_columns "
+"table. This function should be USED WITH CAUTION, as it could destroy data "
+"you care about. If the schema does not exist, it just removes reference "
+"entries the named schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:299
+#, no-c-format
+msgid ""
+"Cascade drops the ma_topo schema and removes all references to it in "
+"topology.topology and geometry_columns."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:300
+#, no-c-format
+msgid "SELECT topology.DropTopology('ma_topo');"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:311
+#, no-c-format
+msgid "DropTopoGeometryColumn"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:313
+#, no-c-format
+msgid ""
+"Drops the topogeometry column from the table named <varname>table_name</"
+"varname> in schema <varname>schema_name</varname> and unregisters the "
+"columns from topology.layer table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:318
+#, no-c-format
+msgid ""
+"<funcdef>text <function>DropTopoGeometryColumn</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:330
+#, no-c-format
+msgid ""
+"Drops the topogeometry column from the table named <varname>table_name</"
+"varname> in schema <varname>schema_name</varname> and unregisters the "
+"columns from topology.layer table. Returns summary of drop status. NOTE: it "
+"first sets all values to NULL before dropping to bypass referential "
+"integrity checks."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:340
+#, no-c-format
+msgid ""
+"SELECT topology.DropTopoGeometryColumn('ma_topo', 'parcel_topo', 'topo');"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:352
+#, no-c-format
+msgid "TopologySummary"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:354
+#, no-c-format
+msgid ""
+"Takes a topology name and provides summary totals of types of objects in "
+"topology"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:359
+#, no-c-format
+msgid ""
+"<funcdef>text <function>TopologySummary</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:369
+#, no-c-format
+msgid ""
+"Takes a topology name and provides summary totals of types of objects in "
+"topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:372 extras_topology.xml:533 extras_topology.xml:671
+#: extras_topology.xml:717 extras_topology.xml:763 extras_topology.xml:1705
+#: extras_topology.xml:2001 extras_topology.xml:2054 extras_topology.xml:2172
+#: extras_topology.xml:2412 extras_topology.xml:2683
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:378
+#, no-c-format
+msgid ""
+"SELECT topology.topologysummary('city_data');\n"
+"                    topologysummary                     \n"
+"--------------------------------------------------------\n"
+" Topology city_data (329), SRID 4326, precision: 0\n"
+" 22 nodes, 24 edges, 10 faces, 29 topogeoms in 5 layers\n"
+" Layer 1, type Polygonal (3), 9 topogeoms\n"
+"  Deploy: features.land_parcels.feature\n"
+" Layer 2, type Puntal (1), 8 topogeoms\n"
+"  Deploy: features.traffic_signs.feature\n"
+" Layer 3, type Lineal (2), 8 topogeoms\n"
+"  Deploy: features.city_streets.feature\n"
+" Layer 4, type Polygonal (3), 3 topogeoms\n"
+"  Hierarchy level 1, child layer 1\n"
+"  Deploy: features.big_parcels.feature\n"
+" Layer 5, type Puntal (1), 1 topogeoms\n"
+"  Hierarchy level 1, child layer 2\n"
+"  Deploy: features.big_signs.feature"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:389
+#, no-c-format
+msgid "ValidateTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:391
+#, no-c-format
+msgid ""
+"Returns a set of validatetopology_returntype objects detailing issues with "
+"topology"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:396
+#, no-c-format
+msgid ""
+"<funcdef>setof validatetopology_returntype <function>ValidateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:406
+#, no-c-format
+msgid ""
+"Returns a set of <xref linkend=\"validatetopology_returntype\"/> objects "
+"detailing issues with topology. Refer to <xref linkend="
+"\"validatetopology_returntype\"/> for listing of possible errors."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:412
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 more efficient edge crossing detection and fixes for false "
+"positives that were existent in prior versions."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:418
+#, no-c-format
+msgid ""
+"SELECT * FROM  topology.ValidateTopology('ma_topo');\n"
+"      error        | id1 | id2\n"
+"-------------------+-----+-----\n"
+"face without edges |   0 |"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:424
+#, no-c-format
+msgid ", <xref linkend=\"Topology_Load_Tiger\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:432
+#, no-c-format
+msgid "This section covers the topology functions for creating new topologies."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:435
+#, no-c-format
+msgid "Topology Constructors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:439
+#, no-c-format
+msgid "CreateTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:440
+#, no-c-format
+msgid ""
+"Creates a new topology schema and registers this new schema in the topology."
+"topology table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:444
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>CreateTopology</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>integer <function>CreateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>hasz</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:476
+#, no-c-format
+msgid ""
+"Creates a new schema with name <varname>topology_name</varname> consisting "
+"of tables (<varname>edge_data</varname>,<varname>face</varname>,"
+"<varname>node</varname>, <varname>relation</varname> and registers this new "
+"topology in the topology.topology table. It returns the id of the topology "
+"in the topology table. The srid is the spatial reference identified as "
+"defined in spatial_ref_sys table for that topology. Topologies must be "
+"uniquely named. The tolerance is measured in the units of the spatial "
+"reference system. If the tolerance is not specified defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:480
+#, no-c-format
+msgid ""
+"This is similar to the SQL/MM <xref linkend=\"ST_InitTopoGeo\"/> but a bit "
+"more functional. <varname>hasz</varname> defaults to false if not specified."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:489
+#, no-c-format
+msgid ""
+"This example creates a new schema called ma_topo that will store edges, "
+"faces, and relations in Massachusetts State Plane meters. The tolerance "
+"represents 1/2 meter since the spatial reference system is a meter based "
+"spatial reference system"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:491
+#, no-c-format
+msgid "SELECT topology.CreateTopology('ma_topo',26986, 0.5);"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:493
+#, no-c-format
+msgid "Create Rhode Island topology in State Plane ft"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:494
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('ri_topo',3438) As topoid;\n"
+"topoid\n"
+"------\n"
+"2"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:501
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_InitTopoGeo\"/>, <xref linkend=\"Topology_Load_Tiger\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:507
+#, no-c-format
+msgid "CopyTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:508
+#, no-c-format
+msgid ""
+"Makes a copy of a topology structure (nodes, edges, faces, layers and "
+"TopoGeometries)."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:513
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>CopyTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>existing_topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>new_name</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:524
+#, no-c-format
+msgid ""
+"Creates a new topology with name <varname>new_topology_name</varname> and "
+"SRID and precision taken from <varname>existing_topology_name</varname>, "
+"copies all nodes, edges and faces in there, copies layers and their "
+"TopoGeometries too."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:528
+#, no-c-format
+msgid ""
+"The new rows in topology.layer will contain synthesized values for "
+"schema_name, table_name and feature_column. This is because the TopoGeometry "
+"will only exist as a definition but won't be available in any user-level "
+"table yet."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:539
+#, no-c-format
+msgid "This example makes a backup of a topology called ma_topo"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:542
+#, no-c-format
+msgid "SELECT topology.CopyTopology('ma_topo', 'ma_topo_bakup');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:550 extras_topology.xml:2066
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:556
+#, no-c-format
+msgid "ST_InitTopoGeo"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:557
+#, no-c-format
+msgid ""
+"Creates a new topology schema and registers this new schema in the topology."
+"topology table and details summary of process."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:562
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_InitTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:572
+#, no-c-format
+msgid ""
+"This is an SQL-MM equivalent of CreateTopology but lacks the spatial "
+"reference and tolerance options of CreateTopology and outputs a text "
+"description of creation instead of topology id."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:576
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.17"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:582
+#, no-c-format
+msgid ""
+"SELECT topology.ST_InitTopoGeo('topo_schema_to_create') AS topocreation;\n"
+"                      astopocreation\n"
+"------------------------------------------------------------\n"
+" Topology-Geometry 'topo_schema_to_create' (id:7) created."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:596
+#, no-c-format
+msgid "ST_CreateTopoGeo"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:598
+#, no-c-format
+msgid ""
+"<refpurpose>Adds a collection of geometries to a given empty topology and "
+"returns a message detailing success.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:605
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_CreateTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acollection</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:616
+#, no-c-format
+msgid ""
+"<para>Adds a collection of geometries to a given empty topology and returns "
+"a message detailing success.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:620
+#, no-c-format
+msgid "Useful for populating an empty topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:624 extras_topology.xml:920 extras_topology.xml:977
+#: extras_topology.xml:1049 extras_topology.xml:1117 extras_topology.xml:1288
+#: extras_topology.xml:1338 extras_topology.xml:1796 extras_topology.xml:1898
+#: extras_topology.xml:1952 extras_topology.xml:2367
+#, no-c-format
+msgid "Availability: 2.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:625
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details -- X.3.18"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:631
+#, no-c-format
+msgid ""
+"-- Populate topology --\n"
+"SELECT topology.ST_CreateTopoGeo('ri_topo', \n"
+" ST_GeomFromText('MULTILINESTRING((384744 236928,384750 236923,384769 "
+"236911,384799 236895,384811 236890,384833 236884,\n"
+"  384844 236882,384866 236881,384879 236883,384954 236898,385087 "
+"236932,385117 236938,\n"
+"  385167 236938,385203 236941,385224 236946,385233 236950,385241 "
+"236956,385254 236971,\n"
+"  385260 236979,385268 236999,385273 237018,385273 237037,385271 "
+"237047,385267 237057,\n"
+"  385225 237125,385210 237144,385192 237161,385167 237192,385162 "
+"237202,385159 237214,\n"
+"  385159 237227,385162 237241,385166 237256,385196 237324,385209 "
+"237345,385234 237375,\n"
+"  385237 237383,385238 237399,385236 237407,385227 237419,385213 "
+"237430,385193 237439,\n"
+"  385174 237451,385170 237455,385169 237460,385171 237475,385181 "
+"237503,385190 237521,\n"
+"  385200 237533,385206 237538,385213 237541,385221 237542,385235 "
+"237540,385242 237541,\n"
+"  385249 237544,385260 237555,385270 237570,385289 237584,385292 "
+"237589,385291 237596,385284 237630))',3438) \n"
+"  );\n"
+"\n"
+"      st_createtopogeo\n"
+"----------------------------\n"
+" Topology ri_topo populated\n"
+" \n"
+" \n"
+"-- create tables and topo geometries --\n"
+"CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);\n"
+"\n"
+"SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', "
+"'LINE');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:637
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:643
+#, no-c-format
+msgid "TopoGeo_AddPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:645
+#, no-c-format
+msgid ""
+"Adds a point to an existing topology using a tolerance and possibly "
+"splitting an existing edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:652
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>TopoGeo_AddPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:664
+#, no-c-format
+msgid ""
+"Adds a point to an existing topology and return its identifier. The given "
+"point will snap to existing nodes or edges within given tolerance. An "
+"existing edge may be split by the snapped point."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:678
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddNode\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:689
+#, no-c-format
+msgid "TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:691
+#, no-c-format
+msgid ""
+"Adds a linestring to an existing topology using a tolerance and possibly "
+"splitting existing edges/faces. Returns edge identifiers"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:698
+#, no-c-format
+msgid ""
+"<funcdef>SETOF integer <function>TopoGeo_AddLineString</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:710
+#, no-c-format
+msgid ""
+"Adds a linestring to an existing topology and return a set of edge "
+"identifiers forming it up. The given line will snap to existing nodes or "
+"edges within given tolerance. Existing edges and faces may be split by the "
+"line."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:724
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddEdge\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:735
+#, no-c-format
+msgid "TopoGeo_AddPolygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:737
+#, no-c-format
+msgid ""
+"Adds a polygon to an existing topology using a tolerance and possibly "
+"splitting existing edges/faces."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:744
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoly</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:756
+#, no-c-format
+msgid ""
+"Adds a polygon to an existing topology and return a set of face identifiers "
+"forming it up. The boundary of the given polygon will snap to existing nodes "
+"or edges within given tolerance. Existing edges and faces may be split by "
+"the boundary of the new polygon."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:770
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddLineString\"/>, <xref linkend=\"AddFace\"/>, "
+"<xref linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:785
+#, no-c-format
+msgid ""
+"This section covers topology functions for adding, moving, deleting, and "
+"splitting edges, faces, and nodes. All of these functions are defined by ISO "
+"SQL/MM."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:788
+#, no-c-format
+msgid "Topology Editors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:792
+#, no-c-format
+msgid "ST_AddIsoNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:794
+#, no-c-format
+msgid ""
+"Adds an isolated node to a face in a topology and returns the nodeid of the "
+"new node. If face is null, the node is still created."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:799
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:811
+#, no-c-format
+msgid ""
+"Adds an isolated node with point location <varname>apoint</varname> to an "
+"existing face with faceid <varname>aface</varname> to a topology "
+"<varname>atopology</varname> and returns the nodeid of the new node."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:812
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology, the <varname>apoint</varname> is not a point geometry, the "
+"point is null, or the point intersects an existing edge (even at the "
+"boundaries) then an exception is thrown. If the point already exists as a "
+"node, an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:814
+#, no-c-format
+msgid ""
+"If <varname>aface</varname> is not null and the <varname>apoint</varname> is "
+"not within the face, then an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:818
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X+1.3.1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:831
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>, "
+"<xref linkend=\"ST_Intersects\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:837
+#, no-c-format
+msgid "ST_AddIsoEdge"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:839
+#, no-c-format
+msgid ""
+"<refpurpose>Adds an isolated edge defined by geometry <varname>alinestring</"
+"varname> to a topology connecting two existing isolated nodes "
+"<varname>anode</varname> and <varname>anothernode</varname> and returns the "
+"edge id of the new edge.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:844
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddIsoEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>alinestring</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:857
+#, no-c-format
+msgid ""
+"<para>Adds an isolated edge defined by geometry <varname>alinestring</"
+"varname> to a topology connecting two existing isolated nodes "
+"<varname>anode</varname> and <varname>anothernode</varname> and returns the "
+"edge id of the new edge.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:858
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the <varname>alinestring</varname> "
+"geometry is not the same as the topology, any of the input arguments are "
+"null, or the nodes are contained in more than one face, or the nodes are "
+"start or end nodes of an existing edge, then an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:860
+#, no-c-format
+msgid ""
+"If the <varname>alinestring</varname> is not within the face of the face the "
+"<varname>anode</varname> and <varname>anothernode</varname> belong to, then "
+"an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:861
+#, no-c-format
+msgid ""
+"If the <varname>anode</varname> and <varname>anothernode</varname> are not "
+"the start and end points of the <varname>alinestring</varname> then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:865
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.4"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:878
+#, no-c-format
+msgid ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:884
+#, no-c-format
+msgid "ST_AddEdgeNewFaces"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:886
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, delete the original "
+"face and replace it with two new faces."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:891
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddEdgeNewFaces</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:904
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, delete the original "
+"face and replace it with two new faces. Returns the id of the newly added "
+"edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:910 extras_topology.xml:968 extras_topology.xml:1031
+#: extras_topology.xml:1099
+#, no-c-format
+msgid "Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:914 extras_topology.xml:972
+#, no-c-format
+msgid ""
+"If any arguments are null, the given nodes are unknown (must already exist "
+"in the <varname>node</varname> table of the topology schema) , the "
+"<varname>acurve</varname> is not a <varname>LINESTRING</varname>, the "
+"<varname>anode</varname> and <varname>anothernode</varname> are not the "
+"start and endpoints of <varname>acurve</varname> then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:917 extras_topology.xml:975 extras_topology.xml:1170
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the <varname>acurve</varname> "
+"geometry is not the same as the topology an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:921
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.12"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:941
+#, no-c-format
+msgid "ST_AddEdgeModFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:943
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, modify the original "
+"face and add a new face."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:948
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:961
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, modify the original "
+"face and add a new face. Unless the face being split is the Universal Face, "
+"the new face will be on the right side of the newly added edge. Returns the "
+"id of the newly added edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:978
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.13"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:998
+#, no-c-format
+msgid "ST_RemEdgeNewFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1000
+#, no-c-format
+msgid ""
+"<refpurpose>Removes an edge and, if the removed edge separated two faces, "
+"delete the original faces and replace them with a new face.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1008
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_RemEdgeNewFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1019
+#, no-c-format
+msgid ""
+"<para>Removes an edge and, if the removed edge separated two faces, delete "
+"the original faces and replace them with a new face.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1024
+#, no-c-format
+msgid ""
+"Returns the id of a newly created face or NULL, if no new face is created. "
+"No new face is created when the removed edge is dangling or isolated or "
+"confined with the universe face (possibly making the universe flood into the "
+"face on the other side)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1035 extras_topology.xml:1103
+#, no-c-format
+msgid ""
+"Refuses to remove an edge partecipating in the definition of an existing "
+"TopoGeometry. Refuses to heal two faces if any TopoGeometry is defined by "
+"only one of them (and not the other)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1042 extras_topology.xml:1110
+#, no-c-format
+msgid ""
+"If any arguments are null, the given edge is unknown (must already exist in "
+"the <varname>edge</varname> table of the topology schema), the topology name "
+"is invalid then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1050
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.14"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1070
+#, no-c-format
+msgid "ST_RemEdgeModFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1072
+#, no-c-format
+msgid ""
+"Removes an edge and, if the removed edge separated two faces, delete one of "
+"the them and modify the other to take the space of both."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1080
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_RemEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1091
+#, no-c-format
+msgid ""
+"Removes an edge and, if the removed edge separated two faces, delete one of "
+"the them and modify the other to take the space of both. Preferentially "
+"keeps the face on the right, to be symmetric with ST_AddEdgeModFace also "
+"keeping it. Returns the id of the face remaining in place of the removed "
+"edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1118
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.15"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1138
+#, no-c-format
+msgid "ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1140
+#, no-c-format
+msgid ""
+"<refpurpose>Changes the shape of an edge without affecting the topology "
+"structure.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1147
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_ChangeEdgeGeom</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acurve</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1159
+#, no-c-format
+msgid ""
+"<para>Changes the shape of an edge without affecting the topology structure."
+"</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1162
+#, no-c-format
+msgid ""
+"If any arguments are null, the given edge does not exist in the "
+"<varname>node</varname> table of the topology schema, the <varname>acurve</"
+"varname> is not a <varname>LINESTRING</varname>, the <varname>anode</"
+"varname> and <varname>anothernode</varname> are not the start and endpoints "
+"of <varname>acurve</varname> or the modification would change the underlying "
+"topology then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1171
+#, no-c-format
+msgid ""
+"If the new <varname>acurve</varname> is not simple, then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1173
+#, no-c-format
+msgid ""
+"If moving the edge from old to new position would hit an obstacle then an "
+"error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1179
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1182
+#, no-c-format
+msgid "Enhanced: 2.0.0 adds topological consistency enforcement"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1186
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details X.3.6"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1192
+#, no-c-format
+msgid ""
+"SELECT topology.ST_ChangeEdgeGeom('ma_topo', 1,  \n"
+"                ST_GeomFromText('LINESTRING(227591.9 893900.4,227622.6 "
+"893844.3,227641.6 893816.6, 227704.5 893778.5)', 26986) );\n"
+" ----\n"
+" Edge 1 changed"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1206
+#, no-c-format
+msgid "ST_ModEdgeSplit"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1208
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, modifying the "
+"original edge and adding a new edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1213
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_ModEdgeSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1225
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, modifying the "
+"original edge and adding a new edge. Updates all existing joined edges and "
+"relationships accordingly. Returns the identifier of the newly added node."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1234
+#, no-c-format
+msgid "Changed: 2.0 - In prior versions, this was misnamed ST_ModEdgesSplit"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1235 extras_topology.xml:1289 extras_topology.xml:1339
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.9"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1241
+#, no-c-format
+msgid ""
+"-- Add an edge --\n"
+" SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227592 "
+"893910, 227600 893910)', 26986) ) As edgeid;\n"
+" \n"
+"-- edgeid-\n"
+"3\n"
+"\n"
+"\n"
+"-- Split the edge  --\n"
+"SELECT topology.ST_ModEdgeSplit('ma_topo',  3, "
+"ST_SetSRID(ST_Point(227594,893910),26986)  ) As node_id;\n"
+"        node_id\n"
+"-------------------------\n"
+"7"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1247
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ModEdgeHeal\"/>, <xref linkend=\"ST_NewEdgeHeal\"/>, "
+"<xref linkend=\"AddEdge\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1258
+#, no-c-format
+msgid "ST_ModEdgeHeal"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1260
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, modifying the first "
+"edge and deleting the second edge. Returns the id of the deleted node."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1268
+#, no-c-format
+msgid ""
+"<funcdef>int <function>ST_ModEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1280
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, modifying the first "
+"edge and deleting the second edge. Returns the id of the deleted node. "
+"Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1305
+#, no-c-format
+msgid "ST_NewEdgeHeal"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1307
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, deleting both edges, "
+"and replacing them with an edge whose direction is the same as the first "
+"edge provided."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1316
+#, no-c-format
+msgid ""
+"<funcdef>int <function>ST_NewEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1328
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, deleting both edges, "
+"and replacing them with an edge whose direction is the same as the first "
+"edge provided. Returns the id of the new edge replacing the healed ones. "
+"Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1356
+#, no-c-format
+msgid "ST_MoveIsoNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1358
+#, no-c-format
+msgid ""
+"Moves an isolated node in a topology from one point to another. If new "
+"<varname>apoint</varname> geometry exists as a node an error is thrown. "
+"REturns description of move."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1363
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_MoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1375
+#, no-c-format
+msgid ""
+"Moves an isolated node in a topology from one point to another. If new "
+"<varname>apoint</varname> geometry exists as a node an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1376
+#, no-c-format
+msgid ""
+"If any arguments are null, the <varname>apoint</varname> is not a point, the "
+"existing node is not isolated (is a start or end point of an existing edge), "
+"new node location intersects an existing edge (even at the end points) then "
+"an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1377
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1382
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1388
+#, no-c-format
+msgid ""
+"-- Add an isolated node with no face  --\n"
+"SELECT topology.ST_AddIsoNode('ma_topo',  NULL, "
+"ST_GeomFromText('POINT(227579 893916)', 26986) ) As nodeid;\n"
+" nodeid\n"
+"--------\n"
+"      7\n"
+"-- Move the new node --\n"
+"SELECT topology.ST_MoveIsoNode('ma_topo', 7,  "
+"ST_GeomFromText('POINT(227579.5 893916.5)', 26986) ) As descrip; \n"
+"                      descrip\n"
+"----------------------------------------------------\n"
+"Isolated Node 7 moved to location 227579.5,893916.5"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1399
+#, no-c-format
+msgid "ST_NewEdgesSplit"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1401
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, deleting the "
+"original edge and replacing it with two new edges. Returns the id of the new "
+"node created that joins the new edges."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1406
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1418
+#, no-c-format
+msgid ""
+"Split an edge with edge id <varname>anedge</varname> by creating a new node "
+"with point location <varname>apoint</varname> along current edge, deleting "
+"the original edge and replacing it with two new edges. Returns the id of the "
+"new node created that joins the new edges. Updates all existing joined edges "
+"and relationships accordingly."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1426
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology, the <varname>apoint</varname> is not a point geometry, the "
+"point is null, the point already exists as a node, the edge does not "
+"correspond to an existing edge or the point is not within the edge then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1431
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.8"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1437
+#, no-c-format
+msgid ""
+"-- Add an edge  --\n"
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575 "
+"893917,227592 893900)', 26986) ) As edgeid;\n"
+"-- result-\n"
+"edgeid\n"
+"------\n"
+"        2\n"
+"-- Split the new edge --\n"
+"SELECT topology.ST_NewEdgesSplit('ma_topo', 2,  "
+"ST_GeomFromText('POINT(227578.5 893913.5)', 26986) ) As newnodeid; \n"
+" newnodeid\n"
+"---------\n"
+"       6"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1454
+#, no-c-format
+msgid "ST_RemoveIsoNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1456
+#, no-c-format
+msgid ""
+"<refpurpose>Removes an isolated node and returns description of action. If "
+"the node is not isolated (is start or end of an edge), then an exception is "
+"thrown.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1461
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1472
+#, no-c-format
+msgid ""
+"<para>Removes an isolated node and returns description of action. If the "
+"node is not isolated (is start or end of an edge), then an exception is "
+"thrown.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1477
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X+1.3.3"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1483
+#, no-c-format
+msgid ""
+"-- Add an isolated node with no face  --\n"
+"SELECT topology.ST_RemoveIsoNode('ma_topo',  7 ) As result;\n"
+"         result\n"
+"-------------------------\n"
+" Isolated node 7 removed"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1495
+#, no-c-format
+msgid "Topology Accessors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1498
+#, no-c-format
+msgid "GetEdgeByPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1500
+#, no-c-format
+msgid "Find the edge-id of an edge that intersects a given point"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1505
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetEdgeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1516
+#, no-c-format
+msgid "Retrieve the id of an edge that intersects a Point"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1518
+#, no-c-format
+msgid ""
+"The function returns an integer (id-edge) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 then the point has to intersect the edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1519 extras_topology.xml:1567
+#, no-c-format
+msgid ""
+"If the point is the location of a node, then an exception is thrown. To "
+"avoid this run the GetNodeByPoint function."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1520
+#, no-c-format
+msgid "If the point doesn't intersect an edge, returns 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1521
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and there is more than one edge near the point then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1526
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function use ST_Intersects otherwise uses ST_DWithin."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1529 extras_topology.xml:1576 extras_topology.xml:1623
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1535 extras_topology.xml:1629
+#, no-c-format
+msgid "These examples use edges we created in <xref linkend=\"AddEdge\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1536
+#, no-c-format
+msgid ""
+"SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology."
+"GetEdgeByPoint('ma_topo',geom,0) As withnotol\n"
+"FROM ST_GeomFromEWKT('SRID=26986;POINT(227622.6 893843)') As geom;\n"
+" with1mtol | withnotol\n"
+"-----------+-----------\n"
+"         2 |         0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1537
+#, no-c-format
+msgid ""
+"SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As nearnode\n"
+"FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+"\n"
+"-- get error --\n"
+"ERROR:  Two or more edges found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1544
+#, no-c-format
+msgid ", <xref linkend=\"GetNodeByPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1550
+#, no-c-format
+msgid "GetFaceByPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1551
+#, no-c-format
+msgid "Find the face-id of a face that intersects a given point"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1555
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetFaceByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1565
+#, no-c-format
+msgid "Retrieve the id of a face that intersects a Point."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1566
+#, no-c-format
+msgid ""
+"The function returns an integer (id-face) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 then the point has to intersect the face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1568
+#, no-c-format
+msgid "If the point doesn't intersect a face, returns 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1569
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and there is more than one face near the point then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1573
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function uses ST_Intersects otherwise uses ST_DWithin."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1580
+#, no-c-format
+msgid "These examples use edges faces created in <xref linkend=\"AddFace\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1581
+#, no-c-format
+msgid ""
+"SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology."
+"GetFaceByPoint('ma_topo',geom,0) As withnotol\n"
+"        FROM ST_GeomFromEWKT('POINT(234604.6 899382.0)') As geom;\n"
+"        \n"
+"         with1mtol | withnotol\n"
+"        -----------+-----------\n"
+"                         1 |         0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1582
+#, no-c-format
+msgid ""
+"SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode\n"
+"        FROM ST_GeomFromEWKT('POINT(227591.9 893900.4)') As geom;\n"
+"        \n"
+"-- get error --\n"
+"ERROR:  Two or more faces found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1587
+#, no-c-format
+msgid ""
+", <xref linkend=\"GetNodeByPoint\"/>, <xref linkend=\"GetEdgeByPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1593
+#, no-c-format
+msgid "GetNodeByPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1595
+#, no-c-format
+msgid "Find the id of a node at a point location"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1600
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetNodeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1611
+#, no-c-format
+msgid "Retrieve the id of a node at a point location"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1613
+#, no-c-format
+msgid ""
+"The function return an integer (id-node) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 mean exactly intersection otherwise retrieve the "
+"node from an interval."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1614
+#, no-c-format
+msgid "If there isn't a node at the point, it return 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1615
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and near the point there are more than one node it "
+"throw an exception."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1620
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function use ST_Intersects otherwise will use "
+"ST_DWithin."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1630
+#, no-c-format
+msgid ""
+"SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode \n"
+" FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+"  nearnode\n"
+"----------\n"
+"        2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1631
+#, no-c-format
+msgid ""
+"SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance\n"
+" FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+" \n"
+" ----get error--\n"
+" ERROR:  Two or more nodes found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1638
+#, no-c-format
+msgid ", <xref linkend=\"GetEdgeByPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1644
+#, no-c-format
+msgid "GetTopologyID"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1646
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the id of a topology in the topology.topology table "
+"given the name of the topology.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1651 extras_topology.xml:1693
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetTopologyID</function></funcdef> "
+"<paramdef><type>varchar</type> <parameter>toponame</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1661
+#, no-c-format
+msgid ""
+"<para>Returns the id of a topology in the topology.topology table given the "
+"name of the topology.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1669
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologyID('ma_topo') As topo_id;\n"
+" topo_id\n"
+"---------\n"
+"       1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1675
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1686
+#, no-c-format
+msgid "GetTopologySRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1688
+#, no-c-format
+msgid ""
+"Returns the SRID of a topology in the topology.topology table given the name "
+"of the topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1703
+#, no-c-format
+msgid ""
+"Returns the spatial reference id of a topology in the topology.topology "
+"table given the name of the topology."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1711
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologySRID('ma_topo') As SRID;\n"
+" SRID\n"
+"-------\n"
+"  4326"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1717
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologyID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1728
+#, no-c-format
+msgid "GetTopologyName"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1730
+#, no-c-format
+msgid "Returns the name of a topology (schema) given the id of the topology."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1735
+#, no-c-format
+msgid ""
+"<funcdef>varchar <function>GetTopologyName</function></funcdef> "
+"<paramdef><type>integer</type> <parameter>topology_id</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1745
+#, no-c-format
+msgid ""
+"Returns the topology name (schema) of a topology from the topology.topology "
+"table given the topology id of the topology."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1753
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologyName(1) As topo_name;\n"
+" topo_name\n"
+"-----------\n"
+" ma_topo"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1759
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyID\"/>, <xref "
+"linkend=\"GetTopologySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1770
+#, no-c-format
+msgid "ST_GetFaceEdges"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1772
+#, no-c-format
+msgid "Returns a set of ordered edges that bound <varname>aface</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1777
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>ST_GetFaceEdges</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>aface</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1788
+#, no-c-format
+msgid ""
+"Returns a set of ordered edges that bound <varname>aface</varname>. Each "
+"output consists of a sequence and edgeid. Sequence numbers start with value "
+"1."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1790
+#, no-c-format
+msgid ""
+"Enumeration of each ring edges start from the edge with smallest identifier. "
+"Order of edges follows a left-hand-rule (bound face is on the left of each "
+"directed edge)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1797
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.5"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1803
+#, no-c-format
+msgid ""
+"-- Returns the edges bounding face 1\n"
+"SELECT (topology.ST_GetFaceEdges('tt', 1)).*;\n"
+"-- result --\n"
+" sequence | edge\n"
+"----------+------\n"
+"        1 |   -4\n"
+"        2 |    5\n"
+"        3 |    7\n"
+"        4 |   -6\n"
+"        5 |    1\n"
+"        6 |    2\n"
+"        7 |    3\n"
+"(7 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1804
+#, no-c-format
+msgid ""
+"-- Returns the sequenc, edge id\n"
+"-- , and geometry of the edges that bound face 1\n"
+"-- If you just need geom and seq, can use ST_GetFaceGeometry\n"
+"SELECT t.seq, t.edge, geom\n"
+"FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge)\n"
+"        INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1810
+#, no-c-format
+msgid ", <xref linkend=\"AddFace\"/>, <xref linkend=\"ST_GetFaceGeometry\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1820
+#, no-c-format
+msgid "ST_GetFaceGeometry"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1822
+#, no-c-format
+msgid "Returns the polygon in the given topology with the specified face id."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1827
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1838
+#, no-c-format
+msgid ""
+"Returns the polygon in the given topology with the specified face id. Builds "
+"the polygon from the edges making up the face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1843
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.16"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1849
+#, no-c-format
+msgid ""
+"-- Returns the wkt of the polygon added with AddFace\n"
+"SELECT ST_AsText(topology.ST_GetFaceGeometry('ma_topo', 1)) As facegeomwkt;\n"
+"-- result --\n"
+"               facegeomwkt\n"
+"\n"
+"--------------------------------------------------------------------------------\n"
+" POLYGON((234776.9 899563.7,234896.5 899456.7,234914 899436.4,234946.6 "
+"899356.9,\n"
+"234872.5 899328.7,234891 899285.4,234992.5 899145,234890.6 899069,\n"
+"234755.2 899255.4,234612.7 899379.4,234776.9 899563.7))"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1861
+#, no-c-format
+msgid "GetRingEdges"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1863
+#, no-c-format
+msgid "Returns an ordered set of edges forming a ring with the given edge ."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1870
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>GetRingEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aring</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_edges=null</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1882
+#, no-c-format
+msgid ""
+"Returns an ordered set of edges forming a ring with the given edge. Each "
+"output consists of a sequence and a signed edge id. Sequence numbers start "
+"with value 1. A negative edge identifier means that the given edge is taken "
+"backward. You can pass a negative edge id to start walking backward."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1890
+#, no-c-format
+msgid ""
+"If <varname>max_edges</varname> is not null no more than those records are "
+"returned by that function. This is meant to be a safety parameter when "
+"dealing with possibly invalid topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1905
+#, no-c-format
+msgid ", <xref linkend=\"GetNodeEdges\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1914
+#, no-c-format
+msgid "GetNodeEdges"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1916
+#, no-c-format
+msgid "Returns an ordered set of edges incident to the given node."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1923
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>GetNodeEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1934
+#, no-c-format
+msgid ""
+"Returns an ordered set of edges incident to the given node. Each output "
+"consists of a sequence and a signed edge id. Sequence numbers start with "
+"value 1. A positive edge starts at the given node. A negative edge ends into "
+"the given node. Closed edges will appear twice (with both signs). Order is "
+"clockwise starting from northbound."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1945
+#, no-c-format
+msgid ""
+"This function computes ordering rather than deriving from metadata and is "
+"thus usable to build edge ring linking."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1958
+#, no-c-format
+msgid ", <xref linkend=\"ST_Azimuth\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1971
+#, no-c-format
+msgid ""
+"This section covers the functions for processing topologies in non-standard "
+"ways."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1974
+#, no-c-format
+msgid "Topology Processing"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1977
+#, no-c-format
+msgid "Polygonize"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1978
+#, no-c-format
+msgid "Find and register all faces defined by topology edges"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1982
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Polygonize</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1992
+#, no-c-format
+msgid "Register all faces that can be built out a topology edge primitives."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1993
+#, no-c-format
+msgid "The target topology is assumed to contain no self-intersecting edges."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1994
+#, no-c-format
+msgid ""
+"Already known faces are recognized, so it is safe to call Polygonize "
+"multiple times on the same topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1995 extras_topology.xml:2148
+#, no-c-format
+msgid ""
+"This function does not use nor set the next_left_edge and next_right_edge "
+"fields of the edge table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2007
+#, no-c-format
+msgid ", <xref linkend=\"ST_Polygonize\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2013
+#, no-c-format
+msgid "AddNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2015
+#, no-c-format
+msgid ""
+"Adds a point node to the node table in the specified topology schema and "
+"returns the nodeid of new node. If point already exists as node, the "
+"existing nodeid is returned."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2020
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allowEdgeSplitting=false</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>computeContainingFace=false</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2033
+#, no-c-format
+msgid ""
+"Adds a point node to the node table in the specified topology schema. The "
+"<xref linkend=\"AddEdge\"/> function automatically adds start and end points "
+"of an edge when called so not necessary to explicitly add nodes of an edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2040
+#, no-c-format
+msgid ""
+"If any edge crossing the node is found either an exception is raised or the "
+"edge is splitted, depending on the <varname>allowEdgeSplitting</varname> "
+"parameter value."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2046
+#, no-c-format
+msgid ""
+"If <varname>computeContainingFace</varname> is true a newly added node would "
+"get the correct containing face computed."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2051
+#, no-c-format
+msgid ""
+"If the <varname>apoint</varname> geometry already exists as a node, the node "
+"is not added but the existing nodeid is returned."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2060
+#, no-c-format
+msgid ""
+"SELECT topology.AddNode('ma_topo', ST_GeomFromText('POINT(227641.6 "
+"893816.5)', 26986) ) As nodeid;\n"
+"-- result --\n"
+"nodeid\n"
+"--------\n"
+" 4"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2072
+#, no-c-format
+msgid "AddEdge"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2074
+#, no-c-format
+msgid ""
+"Adds a linestring edge to the edge table and associated start and end points "
+"to the point nodes table of the specified topology schema using the "
+"specified linestring geometry and returns the edgeid of the new (or "
+"existing) edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2079
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2090
+#, no-c-format
+msgid ""
+"Adds an edge to the edge table and associated nodes to the nodes table of "
+"the specified <varname>toponame</varname> schema using the specified "
+"linestring geometry and returns the edgeid of the new or existing record. "
+"The newly added edge has \"universe\" face on both sides and links to itself."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2092
+#, no-c-format
+msgid ""
+"If the <varname>aline</varname> geometry crosses, overlaps, contains or is "
+"contained by an existing linestring edge, then an error is thrown and the "
+"edge is not added."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2093
+#, no-c-format
+msgid ""
+"The geometry of <varname>aline</varname> must have the same <varname>srid</"
+"varname> as defined for the topology otherwise an invalid spatial reference "
+"sys error will be thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2097
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2103
+#, no-c-format
+msgid ""
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 "
+"893917.2,227591.9 893900.4)', 26986) ) As edgeid;\n"
+"-- result-\n"
+"edgeid\n"
+"--------\n"
+" 1\n"
+"                                \n"
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.9 "
+"893900.4,227622.6 893844.2,227641.6 893816.5,\n"
+" 227704.5 893778.5)', 26986) ) As edgeid;\n"
+"-- result --\n"
+"edgeid\n"
+"--------\n"
+" 2\n"
+" \n"
+" SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.2 "
+"893900, 227591.9 893900.4,\n"
+"  227704.5 893778.5)', 26986) ) As edgeid;\n"
+" -- gives error --\n"
+" ERROR:  Edge intersects (not on endpoints) with existing edge 1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2109
+#, no-c-format
+msgid ", <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2115
+#, no-c-format
+msgid "AddFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2117
+#, no-c-format
+msgid ""
+"<refpurpose>Registers a face primitive to a topology and get it's identifier."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2124
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apolygon</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>force_new=false</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2136
+#, no-c-format
+msgid ""
+"<para>Registers a face primitive to a topology and get it's identifier.</"
+"para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2140
+#, no-c-format
+msgid ""
+"For a newly added face, the edges forming its boundaries and the ones "
+"contained in the face will be updated to have correct values in the "
+"left_face and right_face fields. Isolated nodes contained in the face will "
+"also be updated to have a correct containing_face field value."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2152
+#, no-c-format
+msgid ""
+"The target topology is assumed to be valid (containing no self-intersecting "
+"edges). An exception is raised if: The polygon boundary is not fully defined "
+"by existing edges or the polygon overlaps an existing face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2154
+#, no-c-format
+msgid ""
+"If the <varname>apolygon</varname> geometry already exists as a face, then: "
+"if <varname>force_new</varname> is false (the default) the face id of the "
+"existing face is returned; if <varname>force_new</varname> is true a new id "
+"will be assigned to the newly registered face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2162
+#, no-c-format
+msgid ""
+"When a new registration of an existing face is performed (force_new=true), "
+"no action will be taken to resolve dangling references to the existing face "
+"in the edge, node an relation tables, nor will the MBR field of the existing "
+"face record be updated. It is up to the caller to deal with that."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2169
+#, no-c-format
+msgid ""
+"The <varname>apolygon</varname> geometry must have the same <varname>srid</"
+"varname> as defined for the topology otherwise an invalid spatial reference "
+"sys error will be thrown."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2178
+#, no-c-format
+msgid ""
+"-- first add the edges we use generate_series as an iterator (the below \n"
+"-- will only work for polygons with < 10000 points because of our max in "
+"gs) \n"
+"SELECT topology.AddEdge('ma_topo', ST_MakeLine(ST_PointN(geom,i), "
+"ST_PointN(geom, i + 1) )) As edgeid\n"
+"    FROM (SELECT  ST_NPoints(geom) AS npt, geom\n"
+"            FROM \n"
+"                (SELECT ST_Boundary(ST_GeomFromText('POLYGON((234896.5 "
+"899456.7,234914 899436.4,234946.6 899356.9,234872.5 899328.7,\n"
+"                234891 899285.4,234992.5 899145, 234890.6 899069,234755.2 "
+"899255.4,\n"
+"                234612.7 899379.4,234776.9 899563.7,234896.5 899456.7))', "
+"26986) )  As geom\n"
+"            )  As geoms) As facen CROSS JOIN generate_series(1,10000) As i\n"
+"         WHERE i < npt;\n"
+"-- result --\n"
+" edgeid\n"
+"--------\n"
+"      3\n"
+"      4\n"
+"      5\n"
+"      6\n"
+"      7\n"
+"      8\n"
+"      9\n"
+"     10\n"
+"     11\n"
+"     12\n"
+"(10 rows)\n"
+"-- then add the face -\n"
+"                                \n"
+"SELECT topology.AddFace('ma_topo', \n"
+"    ST_GeomFromText('POLYGON((234896.5 899456.7,234914 899436.4,234946.6 "
+"899356.9,234872.5 899328.7,\n"
+"    234891 899285.4,234992.5 899145, 234890.6 899069,234755.2 899255.4,\n"
+"    234612.7 899379.4,234776.9 899563.7,234896.5 899456.7))', 26986) ) As "
+"faceid;\n"
+"-- result --\n"
+"faceid\n"
+"--------\n"
+" 1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2184
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2190
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2191
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2197
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>TopoGeometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2207
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm on each component edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2210
+#, no-c-format
+msgid "The returned geometry may be non-simple or non-valid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2211
+#, no-c-format
+msgid "Splitting component edges may help retaining simplicity/validity."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2213
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2214 extras_topology.xml:2740
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2219
+#, no-c-format
+msgid ""
+"Geometry <xref linkend=\"ST_Simplify\"/>, <xref linkend=\"ST_IsSimple\"/>, "
+"<xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_ModEdgeSplit\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2229
+#, no-c-format
+msgid ""
+"This section covers the topology functions for creating new topogeometries."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2232
+#, no-c-format
+msgid "TopoGeometry Constructors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2235
+#, no-c-format
+msgid "CreateTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2237
+#, no-c-format
+msgid ""
+"Creates a new topo geometry object from topo element array - tg_type: 1:"
+"[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2241
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>tg_type</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>topoelementarray</type> <parameter>tg_objs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>CreateTopoGeom</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>tg_type</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>layer_id</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2262
+#, no-c-format
+msgid ""
+"Creates a topogeometry object for layer denoted by layer_id and registers it "
+"in the relations table in the <varname>toponame</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2263
+#, no-c-format
+msgid ""
+"tg_type is an integer: 1:[multi]point (punctal), 2:[multi]line (lineal), 3:"
+"[multi]poly (areal), 4:collection. layer_id is the layer id in the topology."
+"layer table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2264
+#, no-c-format
+msgid ""
+"punctal layers are formed from set of nodes, lineal layers are formed from a "
+"set of edges, areal layers are formed from a set of faces, and collections "
+"can be formed from a mixture of nodes, edges, and faces."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2266
+#, no-c-format
+msgid ""
+"Omitting the array of components generates an empty TopoGeometry object."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2273
+#, no-c-format
+msgid "Examples: Form from existing edges"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2274
+#, no-c-format
+msgid ""
+"Create a topogeom in ri_topo schema for layer 2 (our ri_roads), of type (2) "
+"LINE, for the first edge (we loaded in <varname>ST_CreateTopoGeo</varname>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2275
+#, no-c-format
+msgid ""
+"INSERT INTO ri.ri_roads(road_name, topo) VALUES('Unknown', topology."
+"CreateTopoGeom('ri_topo',2,2,'{{1,2}}'::topology.topoelementarray);"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2280
+#, no-c-format
+msgid "Examples: Convert an areal geometry to best guess topogeometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2281
+#, no-c-format
+msgid ""
+"Lets say we have geometries that should be formed from a collection of "
+"faces. We have for example blockgroups table and want to know the topo "
+"geometry of each block group. If our data was perfectly aligned, we could do "
+"this:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2283
+#, no-c-format
+msgid ""
+"-- create our topo geometry column --\n"
+"SELECT topology.AddTopoGeometryColumn(\n"
+"        'topo_boston', \n"
+"        'boston', 'blockgroups', 'topo', 'POLYGON');\n"
+"        \n"
+"-- addtopgeometrycolumn --\n"
+"1\n"
+"        \n"
+"-- update our column assuming \n"
+"-- everything is perfectly aligned with our edges\n"
+"UPDATE boston.blockgroups AS bg\n"
+"        SET topo = topology.CreateTopoGeom('topo_boston'\n"
+"        ,3,1\n"
+"        , foo.bfaces)\n"
+"FROM (SELECT b.gid,  topology.TopoElementArray_Agg(ARRAY[f.face_id,3]) As "
+"bfaces\n"
+"        FROM boston.blockgroups As b\n"
+"            INNER JOIN topo_boston.face As f ON b.geom && f.mbr\n"
+"        WHERE ST_Covers(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"            GROUP BY b.gid) As foo\n"
+"WHERE foo.gid = bg.gid;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2285
+#, no-c-format
+msgid ""
+"--the world is rarely perfect allow for some error\n"
+"--count the face if 50% of it falls \n"
+"-- within what we think is our blockgroup boundary\n"
+"UPDATE boston.blockgroups AS bg\n"
+"        SET topo = topology.CreateTopoGeom('topo_boston'\n"
+"        ,3,1\n"
+"        , foo.bfaces)\n"
+"FROM (SELECT b.gid,  topology.TopoElementArray_Agg(ARRAY[f.face_id,3]) As "
+"bfaces\n"
+"        FROM boston.blockgroups As b\n"
+"            INNER JOIN topo_boston.face As f ON b.geom && f.mbr\n"
+"        WHERE ST_Covers(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"                OR\n"
+" (  ST_Intersects(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"            AND ST_Area(ST_Intersection(b.geom, topology."
+"ST_GetFaceGeometry('topo_boston', f.face_id) ) ) > \n"
+"                ST_Area(topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))*0.5\n"
+"                )\n"
+"            GROUP BY b.gid) As foo\n"
+"WHERE foo.gid = bg.gid; \n"
+"\n"
+"-- and if we wanted to convert our topogeometry back\n"
+"-- to a denomalized geometry aligned with our faces and edges \n"
+"-- cast the topo to a geometry\n"
+"-- The really cool thing is my new geometries\n"
+"-- are now aligned with my tiger street centerlines\n"
+"UPDATE boston.blockgroups SET new_geom = topo::geometry;"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2291
+#, no-c-format
+msgid ""
+", <xref linkend=\"toTopoGeom\"/> <xref linkend=\"ST_CreateTopoGeo\"/>, <xref "
+"linkend=\"ST_GetFaceGeometry\"/>, <xref linkend=\"topoelementarray\"/>, "
+"<xref linkend=\"TopoElementArray_Agg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2304 extras_topology.xml:2480
+#, no-c-format
+msgid "toTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2306
+#, no-c-format
+msgid "Converts a simple Geometry into a topo geometry"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2312
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>topogeometry <function>toTopoGeom</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>toTopoGeom</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>topogeometry </type> "
+"<parameter>topogeom</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>float8</type> <parameter>tolerance</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2333
+#, no-c-format
+msgid "Converts a simple Geometry into a <xref linkend=\"topogeometry\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2337
+#, no-c-format
+msgid ""
+"Topological primitives required to represent the input geometry will be "
+"added to the underlying topology, possibly splitting existing ones, and they "
+"will be associated with the output TopoGeometry in the <varname>relation</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2344
+#, no-c-format
+msgid ""
+"Existing TopoGeometry objects (with the possible exception of "
+"<varname>topogeom</varname>, if given) will retain their shapes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2349
+#, no-c-format
+msgid ""
+"When <varname>tolerance</varname> is given it will be used to snap the input "
+"geometry to existing primitives."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2354
+#, no-c-format
+msgid ""
+"In the first form a new TopoGeometry will be created for the given layer "
+"(<varname>layer_id</varname>) of the given topology (<varname>toponame</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2359
+#, no-c-format
+msgid ""
+"In the second form the primitives resulting from the conversion will be "
+"added to the pre-existing TopoGeometry (<varname>topogeom</varname>), "
+"possibly adding space to its final shape. To have the new shape completely "
+"replace the old one see <xref linkend=\"clearTopoGeom\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2368
+#, no-c-format
+msgid "Enhanced: 2.1.0 adds the version taking an existing TopoGeometry."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2372
+#, no-c-format
+msgid "This is a full self-contained workflow"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2373
+#, no-c-format
+msgid ""
+"-- do this if you don't have a topology setup already\n"
+"-- creates topology not allowing any tolerance\n"
+"SELECT topology.CreateTopology('topo_boston_test', 2249);\n"
+"-- create a new table\n"
+"CREATE TABLE nei_topo(gid serial primary key, nei varchar(30));\n"
+"--add a topogeometry column to it\n"
+"SELECT topology.AddTopoGeometryColumn('topo_boston_test', 'public', "
+"'nei_topo', 'topo', 'MULTIPOLYGON') As new_layer_id;\n"
+"new_layer_id\n"
+"-----------\n"
+"1\n"
+"\n"
+"--use new layer id in populating the new topogeometry column\n"
+"-- we add the topogeoms to the new layer with 0 tolerance\n"
+"INSERT INTO nei_topo(nei, topo)\n"
+"SELECT nei,  topology.toTopoGeom(geom, 'topo_boston_test', 1)\n"
+"FROM neighborhoods\n"
+"WHERE gid BETWEEN 1 and 15;\n"
+"\n"
+"--use to verify what has happened --\n"
+"SELECT * FROM \n"
+"    topology.TopologySummary('topo_boston_test'); \n"
+"    \n"
+"-- summary--\n"
+"Topology topo_boston_test (5), SRID 2249, precision 0\n"
+"61 nodes, 87 edges, 35 faces, 15 topogeoms in 1 layers\n"
+"Layer 1, type Polygonal (3), 15 topogeoms\n"
+" Deploy: public.nei_topo.topo"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2375
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);\n"
+"\n"
+"-- Get the no-one-lands left by the above operation\n"
+"-- I think GRASS calls this \"polygon0 layer\"\n"
+"SELECT ST_GetFaceGeometry('topo_boston_test', f.face_id) \n"
+"  FROM topo_boston_test.face f\n"
+"  WHERE f.face_id > 0 -- don't consider the universe face\n"
+"  AND NOT EXISTS ( -- check that no TopoGeometry references the face\n"
+"    SELECT * FROM topo_boston_test.relation\n"
+"    WHERE layer_id = 1 AND element_id = f.face_id\n"
+"  );"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2381
+#, no-c-format
+msgid ""
+", <xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom"
+"\"/>, <xref linkend=\"TopologySummary\"/>, <xref linkend=\"clearTopoGeom\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2393
+#, no-c-format
+msgid "TopoElementArray_Agg"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2394
+#, no-c-format
+msgid ""
+"Returns a <varname>topoelementarray</varname> for a set of element_id, type "
+"arrays (topoelements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2399
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray <function>TopoElementArray_Agg</function></"
+"funcdef> <paramdef><type>topoelement set</type> <parameter>tefield</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2409
+#, no-c-format
+msgid ""
+"Used to create a <xref linkend=\"topoelementarray\"/> from a set of <xref "
+"linkend=\"topoelement\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2418
+#, no-c-format
+msgid ""
+"SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
+"  FROM generate_series(1,3) As e CROSS JOIN generate_series(1,4) As t;\n"
+"  tea\n"
+"--------------------------------------------------------------------------\n"
+"{{1,1},{1,2},{1,3},{1,4},{2,1},{2,2},{2,3},{2,4},{3,1},{3,2},{3,3},{3,4}}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2430
+#, no-c-format
+msgid ""
+"This section covers the topology functions for editing existing "
+"topogeometries."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2433
+#, no-c-format
+msgid "TopoGeometry Editors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2437
+#, no-c-format
+msgid "clearTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2439
+#, no-c-format
+msgid "Clears the content of a topo geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2444
+#, no-c-format
+msgid ""
+"<funcdef>topogeometry <function>clearTopoGeom</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>topogeom</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2454
+#, no-c-format
+msgid ""
+"Clears the content a <xref linkend=\"topogeometry\"/> turning it into an "
+"empty one. Mostly useful in conjunction with <xref linkend=\"toTopoGeom\"/> "
+"to replace the shape of existing objects and any dependent object in higher "
+"hierarchical levels."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2462
+#, no-c-format
+msgid "Availability: 2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2466
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2481
+#, no-c-format
+msgid "Adds a geometry shape to an existing topo geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2485
+#, no-c-format
+msgid "Refer to <xref linkend=\"toTopoGeom\"/>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2495
+#, no-c-format
+msgid "TopoGeometry Accessors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2499
+#, no-c-format
+msgid "GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2501
+#, no-c-format
+msgid ""
+"Returns a <varname>topoelementarray</varname> (an array of topoelements) "
+"containing the topological elements and type of the given TopoGeometry "
+"(primitive elements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2506
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray <function>GetTopoGeomElementArray</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2514
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray topoelement <function>GetTopoGeomElementArray</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2524
+#, no-c-format
+msgid ""
+"Returns a <xref linkend=\"topoelementarray\"/> containing the topological "
+"elements and type of the given TopoGeometry (primitive elements). This is "
+"similar to GetTopoGeomElements except it returns the elements as an array "
+"rather than as a dataset."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2526 extras_topology.xml:2573
+#, no-c-format
+msgid ""
+"tg_id is the topogeometry id of the topogeometry object in the topology in "
+"the layer denoted by <varname>layer_id</varname> in the topology.layer table."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2547
+#, no-c-format
+msgid "GetTopoGeomElements"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2549
+#, no-c-format
+msgid ""
+"Returns a set of <varname>topoelement</varname> objects containing the "
+"topological element_id,element_type of the given TopoGeometry (primitive "
+"elements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2554
+#, no-c-format
+msgid ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2562
+#, no-c-format
+msgid ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2572
+#, no-c-format
+msgid ""
+"Returns a set of element_id,element_type (topoelements) for a given "
+"topogeometry object in <varname>toponame</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2589
+#, no-c-format
+msgid ", <xref linkend=\"topoelement\"/>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2597
+#, no-c-format
+msgid "TopoGeometry Outputs"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2600
+#, no-c-format
+msgid "AsGML"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2602
+#, no-c-format
+msgid "Returns the GML representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2606
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>AsGML</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>AsGML</function></funcdef> <paramdef><type>topogeometry </type> "
+"<parameter>tg</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>nsprefix_in</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>precision</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>options</parameter></paramdef> <paramdef><type>regclass </"
+"type> <parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nsprefix_in</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>precision</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>idprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>idprefix</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>gmlversion</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2667
+#, no-c-format
+msgid ""
+"Returns the GML representation of a topogeometry in version GML3 format. If "
+"no <varname>nsprefix_in</varname> is specified then <varname>gml</varname> "
+"is used. Pass in an empty string for nsprefix to get a non-qualified name "
+"space. The precision (default: 15) and options (default 1) parameters, if "
+"given, are passed untouched to the underlying call to ST_AsGML."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2669
+#, no-c-format
+msgid ""
+"The <varname>visitedTable</varname> parameter, if given, is used for keeping "
+"track of the visited Node and Edge elements so to use cross-references "
+"(xlink:xref) rather than duplicating definitions. The table is expected to "
+"have (at least) two integer fields: 'element_type' and 'element_id'. The "
+"calling user must have both read and write privileges on the given table. "
+"For best performance, an index should be defined on <varname>element_type</"
+"varname> and <varname>element_id</varname>, in that order. Such index would "
+"be created automatically by adding a unique constraint to the fields. "
+"Example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2675
+#, no-c-format
+msgid ""
+"CREATE TABLE visited (\n"
+"  element_type integer, element_id integer,\n"
+"  unique(element_type, element_id)\n"
+");"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2678
+#, no-c-format
+msgid ""
+"The <varname>idprefix</varname> parameter, if given, will be prepended to "
+"Edge and Node tag identifiers."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2680
+#, no-c-format
+msgid ""
+"The <varname>gmlver</varname> parameter, if given, will be passed to the "
+"underlying ST_AsGML. Defaults to 3."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2689
+#, no-c-format
+msgid ""
+"This uses the topo geometry we created in <xref linkend=\"CreateTopoGeom\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2690
+#, no-c-format
+msgid ""
+"SELECT topology.AsGML(topo) As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<gml:TopoCurve>\n"
+"    <gml:directedEdge>\n"
+"        <gml:Edge gml:id=\"E1\">\n"
+"            <gml:directedNode orientation=\"-\">\n"
+"                <gml:Node gml:id=\"N1\"/>\n"
+"            </gml:directedNode>\n"
+"            <gml:directedNode></gml:directedNode>\n"
+"            <gml:curveProperty>\n"
+"                <gml:Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <gml:segments>\n"
+"                        <gml:LineStringSegment>\n"
+"                            <gml:posList srsDimension=\"2\">384744 236928 "
+"384750 236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</gml:posList>\n"
+"                        </gml:LineStringSegment>\n"
+"                    </gml:segments>\n"
+"                </gml:Curve>\n"
+"            </gml:curveProperty>\n"
+"        </gml:Edge>\n"
+"    </gml:directedEdge>\n"
+"</gml:TopoCurve>]]>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2691
+#, no-c-format
+msgid "Same exercise as previous without namespace"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2692
+#, no-c-format
+msgid ""
+"SELECT topology.AsGML(topo,'') As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<TopoCurve>\n"
+"    <directedEdge>\n"
+"        <Edge id=\"E1\">\n"
+"            <directedNode orientation=\"-\">\n"
+"                <Node id=\"N1\"/>\n"
+"            </directedNode>\n"
+"            <directedNode></directedNode>\n"
+"            <curveProperty>\n"
+"                <Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <segments>\n"
+"                        <LineStringSegment>\n"
+"                            <posList srsDimension=\"2\">384744 236928 384750 "
+"236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</posList>\n"
+"                         </LineStringSegment>\n"
+"                    </segments>\n"
+"                </Curve>\n"
+"            </curveProperty>\n"
+"        </Edge>\n"
+"    </directedEdge>\n"
+"</TopoCurve>]]>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2698
+#, no-c-format
+msgid ", <xref linkend=\"ST_CreateTopoGeo\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2703
+#, no-c-format
+msgid "AsTopoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2705
+#, no-c-format
+msgid "Returns the TopoJSON representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2710
+#, no-c-format
+msgid ""
+"<funcdef>text <function>AsTopoJSON</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>edgeMapTable</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2721
+#, no-c-format
+msgid ""
+"Returns the TopoJSON representation of a topogeometry. If "
+"<varname>edgeMapTable</varname> is not null, it will be used as a lookup/"
+"storage mapping of edge identifiers to arc indices. This is to be able to "
+"allow for a compact \"arcs\" array in the final document."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2724
+#, no-c-format
+msgid ""
+"The table, if given, is expected to have an \"arc_id\" field of type \"serial"
+"\" and an \"edge_id\" of type integer; the code will query the table for "
+"\"edge_id\" so it is recommended to add an index on that field."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2729
+#, no-c-format
+msgid ""
+"Arc indices in the TopoJSONjoutput are 0-based but they are 1-based in the "
+"\"edgeMapTable\" table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2735
+#, no-c-format
+msgid ""
+"A full TopoJSON document will be need to contain, in addition to the "
+"snippets returned by this function, the actual arcs plus some headers. See "
+"the <ulink url=\"http://github.com/mbostock/topojson/wiki/Specification"
+"\">TopoJSON specification</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2752
+#, no-c-format
+msgid ""
+"CREATE TEMP TABLE edgemap(arc_id serial, edge_id int unique);\n"
+"\n"
+"-- header\n"
+"SELECT '{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], "
+"\"translate\": [0,0] }, \"objects\": {'\n"
+"\n"
+"-- objects\n"
+"UNION ALL SELECT '\"' || feature_name || '\": ' || AsTopoJSON(feature, "
+"'edgemap')\n"
+"FROM features.big_parcels WHERE feature_name = 'P3P4';\n"
+"\n"
+"-- arcs\n"
+"WITH edges AS ( \n"
+"  SELECT m.arc_id, e.geom FROM edgemap m, city_data.edge e\n"
+"  WHERE e.edge_id = m.edge_id\n"
+"), points AS (\n"
+"  SELECT arc_id, (st_dumppoints(geom)).* FROM edges\n"
+"), compare AS (\n"
+"  SELECT p2.arc_id,\n"
+"         CASE WHEN p1.path IS NULL THEN p2.geom\n"
+"              ELSE ST_Translate(p2.geom, -ST_X(p1.geom), -ST_Y(p1.geom))\n"
+"         END AS geom\n"
+"  FROM points p2 LEFT OUTER JOIN points p1\n"
+"  ON ( p1.arc_id = p2.arc_id AND p2.path[1] = p1.path[1]+1 )\n"
+"  ORDER BY arc_id, p2.path\n"
+"), arcsdump AS (\n"
+"  SELECT arc_id, (regexp_matches( ST_AsGeoJSON(geom), '\\[.*\\]'))[1] as t\n"
+"  FROM compare\n"
+"), arcs AS (\n"
+"  SELECT arc_id, '[' || array_to_string(array_agg(t), ',') || ']' as a FROM "
+"arcsdump\n"
+"  GROUP BY arc_id\n"
+"  ORDER BY arc_id\n"
+")\n"
+"SELECT '}, \"arcs\": [' UNION ALL\n"
+"SELECT array_to_string(array_agg(a), E',\\n') from arcs\n"
+"\n"
+"-- footer\n"
+"UNION ALL SELECT ']}'::text as t;\n"
+"\n"
+"-- Result:\n"
+"{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], \"translate\": "
+"[0,0] }, \"objects\": {\n"
+"\"P3P4\": { \"type\": \"MultiPolygon\", \"arcs\": [[[-1]],"
+"[[6,5,-5,-4,-3,1]]]}\n"
+"}, \"arcs\": [\n"
+" [[25,30],[6,0],[0,10],[-14,0],[0,-10],[8,0]],\n"
+" [[35,6],[0,8]],\n"
+" [[35,6],[12,0]],\n"
+" [[47,6],[0,8]],\n"
+" [[47,14],[0,8]],\n"
+" [[35,22],[12,0]],\n"
+" [[35,14],[0,8]]\n"
+" ]}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2760
+#, no-c-format
+msgid ""
+"This section lists the Topology functions used to check relationships "
+"between topogeometries and topology primitives"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2763
+#, no-c-format
+msgid "Topology Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2766
+#, no-c-format
+msgid "Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2768 extras_topology.xml:2817
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2773 extras_topology.xml:2822
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Equals</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg1</parameter></paramdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2784
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives: faces, edges, nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2788
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2795 extras_topology.xml:2845
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2802 extras_topology.xml:2852
+#, no-c-format
+msgid "<!--TODO: Need example -->"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2809
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2815
+#, no-c-format
+msgid "Intersects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2833
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries share primitives or primitives intersect"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2837
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies. Also not currently supported for hierarchichal topogeometries "
+"(topogeometries composed of other topogeometries)."
+msgstr ""
diff --git a/doc/po/es/faq.xml.po b/doc/po/es/faq.xml.po
new file mode 100644
index 0000000..62a7647
--- /dev/null
+++ b/doc/po/es/faq.xml.po
@@ -0,0 +1,1026 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-24 08:26+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: faq.xml:3
+#, no-c-format
+msgid "PostGIS Frequently Asked Questions"
+msgstr "Preguntas frecuentes sobre PostGIS"
+
+#. Tag: para
+#: faq.xml:8
+#, no-c-format
+msgid ""
+"Where can I find tutorials, guides and workshops on working with PostGIS"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:12
+#, no-c-format
+msgid ""
+"OpenGeo has a step by step tutorial guide workshop <ulink url=\"http://"
+"workshops.boundlessgeo.com/postgis-intro/\">Introduction to PostGIS</ulink>. "
+"It includes packaged data as well as intro to working with OpenGeo Suite. It "
+"is probably the best tutorial on PostGIS."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:13
+#, no-c-format
+msgid ""
+"BostonGIS also has a <ulink url=\"http://www.bostongis.com/PrinterFriendly."
+"aspx?content_name=postgis_tut01\">PostGIS almost idiot's guide on getting "
+"started</ulink>. That one is more focused on the windows user."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:18
+#, no-c-format
+msgid ""
+"My applications and desktop tools worked with PostGIS 1.5,but they don't "
+"work with PostGIS 2.0. How do I fix this?"
+msgstr ""
+"Mis aplicaciones y herramientas funcionaban con PostGIS 1.5, pero no "
+"funcionan con PostGIS 2.0. ¿Como puedo solucionarlo?"
+
+#. Tag: para
+#: faq.xml:22
+#, no-c-format
+msgid ""
+"A lot of deprecated functions were removed from the PostGIS code base in "
+"PostGIS 2.0. This has affected applications in addition to third-party tools "
+"such as Geoserver, MapServer, QuantumGIS, and OpenJump to name a few. There "
+"are a couple of ways to resolve this. For the third-party apps, you can try "
+"to upgrade to the latest versions of these which have many of these issues "
+"fixed. For your own code, you can change your code to not use the functions "
+"removed. Most of these functions are non ST_ aliases of ST_Union, ST_Length "
+"etc. and as a last resort, install the whole of <varname>legacy.sql</"
+"varname> or just the portions of <varname>legacy.sql</varname> you need."
+msgstr ""
+"Muchas funciones rechazadas se han eliminado del código fuente de PostGIS en "
+"PostGIS 2.0. Esto ha afectado a aplicaciones o herramientas de terceros como "
+"Geoserver, Mapserver, QuanrumGIS y OpenJump por mencionar algunas. Hay "
+"varias formas de resolver esto. Para las aplicaciones de terceros, puedes "
+"intentar actualizar a la ultima version de la aplicación que tiene muchos de "
+"estos errores resueltos. Para tu propio código, puedes cambiar tu código "
+"para que no utilice las funciones eliminadas. Muchas de estas funciones no "
+"son ST_aliases de ST_Union, ST_Length etc. y como ultimo recurso instala el "
+"fichero  <varname>legacy.sql</varname> completo o solo las partes del "
+"fichero <varname>legacy.sql</varname> que necesites."
+
+#. Tag: para
+#: faq.xml:28
+#, no-c-format
+msgid ""
+"The <varname>legacy.sql</varname> file is located in the same folder as "
+"postgis.sql. You can install this file after you have installed postgis.sql "
+"and spatial_ref_sys.sql to get back all the 200 some-odd old functions we "
+"removed."
+msgstr ""
+"El fichero <varname>legacy.sql</varname> esta ubicado en la misma carpeta "
+"que postgis.sql. Puedes instalar este fichero después de haber instalado "
+"postgis.sql y spatial_ref_sys.sql para volver a tener disponibles las mas o "
+"menos 200 funciones que hemos eliminado."
+
+#. Tag: para
+#: faq.xml:35
+#, no-c-format
+msgid ""
+"When I load OpenStreetMap data with osm2pgsql, I'm getting an error failed: "
+"ERROR: operator class \"gist_geometry_ops\" does not exist for access method "
+"\"gist\" Error occurred. This worked fine in PostGIS 1.5."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:40
+#, no-c-format
+msgid ""
+"In PostGIS 2, the default geometry operator class gist_geometry_ops was "
+"changed to gist_geometry_ops_2d and the gist_geometry_ops was completely "
+"removed. This was done because PostGIS 2 also introduced Nd spatial indexes "
+"for 3D support and the old name was deemed confusing and a misnomer."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:41
+#, no-c-format
+msgid ""
+"Some older applications that as part of the process create tables and "
+"indexes, explicitly referenced the operator class name. This was unnecessary "
+"if you want the default 2D index. So if you manage said good, change index "
+"creation from:"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:42
+#, no-c-format
+msgid "BAD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:43
+#, fuzzy, no-c-format
+msgid ""
+"CREATE INDEX idx_my_table_geom ON my_table USING gist(geom "
+"gist_geometry_ops);"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:44
+#, no-c-format
+msgid "To GOOD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:45
+#, fuzzy, no-c-format
+msgid "CREATE INDEX idx_my_table_geom ON my_table USING gist(geom);"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:47
+#, no-c-format
+msgid ""
+"The only case where you WILL need to specify the operator class is if you "
+"want a 3D spatial index as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:48
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_my_super3d_geom ON my_super3d USING gist(geom "
+"gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:50
+#, no-c-format
+msgid ""
+"If you are unfortunate to be stuck with compiled code you can't change that "
+"has the old gist_geometry_ops hard-coded, then you can create the old class "
+"using the <filename>legacy_gist.sql</filename> packaged in PostGIS 2.0.2+. "
+"However if you use this fix, you are advised to at a later point drop the "
+"index and recreate it without the operator class. This will save you grief "
+"in the future when you need to upgrade again."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:56
+#, no-c-format
+msgid ""
+"I'm running PostgreSQL 9.0 and I can no longer read/view geometries in "
+"OpenJump, Safe FME, and some other tools?"
+msgstr ""
+"¿Esto utilizando la version PostgreSQL 9.0 y no puedo leer/escribir "
+"geometrías en OpenJump, Safe FME, y otras herramientas?"
+
+#. Tag: para
+#: faq.xml:60
+#, no-c-format
+msgid ""
+"In PostgreSQL 9.0+, the default encoding for bytea data has been changed to "
+"hex and older JDBC drivers still assume escape format. This has affected "
+"some applications such as Java applications using older JDBC drivers or .NET "
+"applications that use the older npgsql driver that expect the old behavior "
+"of ST_AsBinary. There are two approaches to getting this to work again."
+msgstr ""
+"En PostgreSQL 9.0+, la codificación por defecto ha sido cambiada a hex y "
+"algunos drivers antiguos de JDBC siguen asumiendo el formato espacio. Esto "
+"ha afectado a algunas aplicaciones como aplicaciones Java utilizando viejos "
+"drivers JDBC o aplicaciones .NET que utilizan el driver npgsql antiguo que "
+"espera el comportamiento de ST_AsBinary antiguo. Hay dos soluciones para "
+"corregir esto."
+
+#. Tag: para
+#: faq.xml:64
+#, no-c-format
+msgid ""
+"You can upgrade your JDBC driver to the latest PostgreSQL 9.0 version which "
+"you can get from <ulink url=\"http://jdbc.postgresql.org/download.html"
+"\">http://jdbc.postgresql.org/download.html</ulink>"
+msgstr ""
+"Puedes actualizar el driver JDBC a la  ultima version PostgreSQL 9.0 que "
+"puedes obtener en <ulink url=\"http://jdbc.postgresql.org/download.html"
+"\">http://jdbc.postgresql.org/download.html</ulink>"
+
+#. Tag: para
+#: faq.xml:66
+#, no-c-format
+msgid ""
+"If you are running a .NET app, you can use Npgsql 2.0.11 or higher which you "
+"can download from <ulink url=\"http://pgfoundry.org/frs/?"
+"group_id=1000140\">http://pgfoundry.org/frs/?group_id=1000140</ulink> and as "
+"described on <ulink url=\"http://fxjr.blogspot.com/2010/11/npgsql-2011-"
+"released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released blog entry</"
+"ulink>"
+msgstr ""
+"Si estas utilizando una aplicación en .NET, puedes utilizar Npgsql 2.0.11 o "
+"superior, que puedes descargar desde <ulink url=\"http://pgfoundry.org/frs/?"
+"group_id=1000140\">http://pgfoundry.org/frs/?group_id=1000140</ulink> y se "
+"describe en <ulink url=\"http://fxjr.blogspot.com/2010/11/npgsql-2011-"
+"released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released blog entry</"
+"ulink>"
+
+#. Tag: para
+#: faq.xml:70
+#, no-c-format
+msgid ""
+"If upgrading your PostgreSQL driver is not an option, then you can set the "
+"default back to the old behavior with the following change:"
+msgstr ""
+"Si actualizar tu driver PostgreSQL no es una opción, entonces se puede "
+"establecer el valor predeterminado otra vez al viejo comportamiento con el "
+"siguiente cambio:"
+
+#. Tag: programlisting
+#: faq.xml:71
+#, no-c-format
+msgid "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
+msgstr "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
+
+#. Tag: para
+#: faq.xml:78
+#, no-c-format
+msgid ""
+"I tried to use PgAdmin to view my geometry column and it is blank, what "
+"gives?"
+msgstr ""
+"He intentado utilizar PgAdmin para ver mis columnas de geometría y esta en "
+"blanco, ¿qué ocurre?"
+
+#. Tag: para
+#: faq.xml:82
+#, no-c-format
+msgid ""
+"PgAdmin doesn't show anything for large geometries. The best ways to verify "
+"you do have data in your geometry columns are?"
+msgstr ""
+"PgAdmin no muestra nada en geometrías muy largas. La mejor forma de "
+"verificar tienes datos en tus columnas de geometrías es:"
+
+#. Tag: programlisting
+#: faq.xml:85
+#, no-c-format
+msgid ""
+"-- this should return no records if all your geom fields are filled "
+"in        \n"
+"SELECT somefield FROM mytable WHERE geom IS NULL;"
+msgstr ""
+"-- si todas tus geometrías estas rellenas, esto debería no devolver ningún "
+"registro         \n"
+"SELECT somefield FROM mytable WHERE geom IS NULL;"
+
+#. Tag: programlisting
+#: faq.xml:87
+#, no-c-format
+msgid ""
+"-- To tell just how large your geometry is do a query of the form\n"
+"--which will tell you the most number of points you have in any of your "
+"geometry columns\n"
+"SELECT MAX(ST_NPoints(geom)) FROM sometable;"
+msgstr ""
+"-- Para saber como es de larga tu geometría haz una consulta de forma \n"
+"-- que te de el mayor numero de puntos que tienes en cualquier columna de "
+"geometrías\n"
+"SELECT MAX(ST_NPoints(geom)) FROM sometable;"
+
+#. Tag: para
+#: faq.xml:93
+#, no-c-format
+msgid "What kind of geometric objects can I store?"
+msgstr "¿Qué tipo de objetos geométricos puedo almacenar?"
+
+#. Tag: para
+#: faq.xml:97
+#, no-c-format
+msgid ""
+"You can store point, line, polygon, multipoint, multiline, multipolygon, and "
+"geometrycollections. In PostGIS 2.0 and above you can also store TINS and "
+"Polyhedral Surfaces in the basic geometry type. These are specified in the "
+"Open GIS Well Known Text Format (with XYZ,XYM,XYZM extensions). There are "
+"three data types currently supported. The standard OGC geometry data type "
+"which uses a planar coordinate system for measurement, the geography data "
+"type which uses a geodetic coordinate system (not OGC, but you'll find a "
+"similar type in Microsoft SQL Server 2008+). Only WGS 84 long lat "
+"(SRID:4326) is supported by the geography data type. The newest family "
+"member of the PostGIS spatial type family is raster for storing and "
+"analyzing raster data. Raster has its very own FAQ. Refer to <xref linkend="
+"\"RT_FAQ\"/> and <xref linkend=\"RT_reference\"/> for more details."
+msgstr ""
+"Puedes almacenar puntos, lineas, polígonos, multipuntos, multilineas, "
+"multipoligonos y colecciones de geometrias. En PostGIS 2.0 y posteriores "
+"pueden almacenar también TINs y superficies poliedricas en los tipos básicos "
+"de geometrias. Estos están especificados en Open GIS Well Known Text Format "
+"(con extensiones XYZ, XYM, XYZM). Actualmente hay tres tipos soportados. El "
+"estándar de tipos de datos geométricos del OGC que utiliza un sistema de "
+"coordenadas plano para medidas, el tipo de datos geográficos que utiliza un "
+"sistema de coordenadas geodésico (no OGC, pero pero podrás encontrar un tipo "
+"similar en Microsoft SQL Server 2008+). Solo el sistema geodésico WGS 84 "
+"(SRID:4326) es el soportado por el tipo de datos geográfico. El miembro de "
+"la familia mas nuevo de los tipos espaciales en PostGIS es el raster, para "
+"almacenar y analizar datos de tipo raster. Raster tiene su propio FAQ. Para "
+"mas detalles ve a <xref linkend=\"RT_FAQ\"/> y <xref linkend=\"RT_reference"
+"\"/>."
+
+#. Tag: para
+#: faq.xml:110
+#, no-c-format
+msgid "I'm all confused. Which data store should I use geometry or geography?"
+msgstr ""
+"Estoy confundido. ¿Que tipo de datos debo utilizar?¿geométricos o "
+"geográficos?"
+
+#. Tag: para
+#: faq.xml:114
+#, no-c-format
+msgid ""
+"Short Answer: geography is a new data type that supports long range "
+"distances measurements, but most computations on it are currently slower "
+"than they are on geometry. If you use geography -- you don't need to learn "
+"much about planar coordinate systems. Geography is generally best if all you "
+"care about is measuring distances and lengths and you have data from all "
+"over the world. Geometry data type is an older data type that has many more "
+"functions supporting it, enjoys greater support from third party tools, and "
+"operations on it are generally faster -- sometimes as much as 10 fold faster "
+"for larger geometries. Geometry is best if you are pretty comfortable with "
+"spatial reference systems or you are dealing with localized data where all "
+"your data fits in a single <link linkend=\"spatial_ref_sys\">spatial "
+"reference system (SRID)</link>, or you need to do a lot of spatial "
+"processing. Note: It is fairly easy to do one-off conversions between the "
+"two types to gain the benefits of each. Refer to <xref linkend="
+"\"PostGIS_TypeFunctionMatrix\"/> to see what is currently supported and what "
+"is not."
+msgstr ""
+"Respuesta corta: El tipo geográfico es un nuevo tipo de dato que soporta "
+"medidas de distancia de gran rango, pero la mayoría de cálculos son mas "
+"lentos en este tipo que en el tipo geometría. Si utilizas el tipo geográfico "
+"-- no necesitas aprender demasiado sobre sistemas de coordenadas planos. El "
+"tipo geográfico es generalmente mejor si lo único que te importa es medir "
+"distancias y tienes datos de la totalidad de la tierra. El tipo geométrico "
+"es un tipo antiguo que soporta mayor numero de funciones, tiene soporte de "
+"muchas herramientas de terceros, y los cálculos con este tipo son "
+"normalmente mas rápidos -- a veces mas de 10 veces mas rápido para "
+"geometrías grandes. El tipo geometría es mejor si estas bastante "
+"familiarizado con sistemas de referencia espaciales o  tienes que manejar "
+"datos con datos localizados y todos estos datos tienen un único  <link "
+"linkend=\"spatial_ref_sys\">spatial reference system (SRID)</link>, o "
+"necesitas hacer muchos procesos geoespaciales. Nota: es bastante sencillo "
+"realizar conversiones entre los dos tipos para tener los beneficios de "
+"ambos. Para ver lo que esta o no soportado actualmente por cada tipo ve a "
+"xref linkend=\"PostGIS_TypeFunctionMatrix\"/>."
+
+#. Tag: para
+#: faq.xml:125
+#, no-c-format
+msgid ""
+"Long Answer: Refer to our more lengthy discussion in the <xref linkend="
+"\"PostGIS_GeographyVSGeometry\"/> and <link linkend="
+"\"PostGIS_TypeFunctionMatrix\">function type matrix</link>."
+msgstr ""
+"Respuesta larga: Te invitamos a nuestro largo debate en <xref linkend="
+"\"PostGIS_GeographyVSGeometry\"/> y <link linkend="
+"\"PostGIS_TypeFunctionMatrix\">Matriz funciones tipos</link>."
+
+#. Tag: para
+#: faq.xml:133
+#, no-c-format
+msgid ""
+"I have more intense questions about geography, such as how big of a "
+"geographic region can I stuff in a geography column and still get reasonable "
+"answers. Are there limitations such as poles, everything in the field must "
+"fit in a hemisphere (like SQL Server 2008 has), speed etc?"
+msgstr ""
+"Tengo preguntas mas complejas sobre el typo geógrafo, como por ejemplo, como "
+"de grande es la región que puedo almacenar en una columna geográfica y tener "
+"respuestas razonables. ¿Hay limitaciones como por ejemplo los polos, todo el "
+"contenido del campo debe estar en un hemisferio (como ocurre con con SQL "
+"Server 2008), velocidad etc?"
+
+#. Tag: para
+#: faq.xml:137
+#, no-c-format
+msgid ""
+"Your questions are too deep and complex to be adequately answered in this "
+"section. Please refer to our <xref linkend=\"PostGIS_Geography_AdvancedFAQ\"/"
+">."
+msgstr ""
+"Tu pregunta es demasiado compleja y extensa, para obtener una respuesta en "
+"esta sección. Puedes ver la respuesta en <xref linkend="
+"\"PostGIS_Geography_AdvancedFAQ\"/>."
+
+#. Tag: para
+#: faq.xml:144
+#, no-c-format
+msgid "How do I insert a GIS object into the database?"
+msgstr "¿Como puedo insertar objetos SIG en la base de datos?"
+
+#. Tag: para
+#: faq.xml:148
+#, no-c-format
+msgid ""
+"First, you need to create a table with a column of type \"geometry\" or "
+"\"geography\" to hold your GIS data. Storing geography type data is a little "
+"different than storing geometry. Refer to <xref linkend=\"Geography_Basics\"/"
+"> for details on storing geography."
+msgstr ""
+"Primero, necesitas crear una tabla con una columna de tipo \"geometría\" o "
+"\"geografía\" para almacenar tus datos SIG. Almacenar datos de tipo "
+"geográfico es un poco diferente que almacenar geometrías. Para obtener "
+"detalles de como se almacenan los tipos geográficos ves a <xref linkend="
+"\"Geography_Basics\"/>."
+
+#. Tag: para
+#: faq.xml:152
+#, no-c-format
+msgid ""
+"For geometry: Connect to your database with <filename>psql</filename> and "
+"try the following SQL:"
+msgstr ""
+"Para geometrías: Conéctate a tu base de datos con  <filename>psql</filename> "
+"e intenta ejecutar el siguiente comando SQL:"
+
+#. Tag: programlisting
+#: faq.xml:156
+#, no-c-format
+msgid ""
+"CREATE TABLE gtest ( gid serial primary key, name varchar(20)\n"
+"        , geom geometry(LINESTRING) );"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:158
+#, fuzzy, no-c-format
+msgid ""
+"If the geometry column definition fails, you probably have not loaded the "
+"PostGIS functions and objects into this database or are using a pre-2.0 "
+"version of PostGIS. See the <xref linkend=\"PGInstall\"/>."
+msgstr ""
+"Si la inserción de la columna geometrica falla, probablemente no has cargado "
+"las funciones y objetos PostGIS en tu base de datos. Ve al apartado See the "
+"<xref linkend=\"PGInstall\"/>."
+
+#. Tag: para
+#: faq.xml:162
+#, no-c-format
+msgid ""
+"Then, you can insert a geometry into the table using a SQL insert statement. "
+"The GIS object itself is formatted using the OpenGIS Consortium \"well-known "
+"text\" format:"
+msgstr ""
+"Entonces, podrás insertar geometrías en la tabla utilizando la sentencia SQL "
+"insert. El objeto SIG tiene el formato OpenGIS Consortium \"well-known text"
+"\":"
+
+#. Tag: programlisting
+#: faq.xml:166
+#, fuzzy, no-c-format
+msgid ""
+"INSERT INTO gtest (ID, NAME, GEOM) \n"
+"VALUES (\n"
+"  1, \n"
+"  'First Geometry', \n"
+"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)')\n"
+");"
+msgstr ""
+"INSERT INTO gtest (ID, NAME, GEOM) \n"
+"VALUES (\n"
+"  1, \n"
+"  'First Geometry', \n"
+"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1)\n"
+");"
+
+#. Tag: para
+#: faq.xml:168
+#, no-c-format
+msgid ""
+"For more information about other GIS objects, see the <link linkend="
+"\"RefObject\">object reference</link>."
+msgstr ""
+"Para mas información sobre otros objetos SIG, mira en <link linkend="
+"\"RefObject\">object reference</link>."
+
+#. Tag: para
+#: faq.xml:171
+#, no-c-format
+msgid "To view your GIS data in the table:"
+msgstr "Para ver datos SIG en la tabla:"
+
+#. Tag: programlisting
+#: faq.xml:173
+#, no-c-format
+msgid "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
+msgstr "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
+
+#. Tag: para
+#: faq.xml:175
+#, no-c-format
+msgid "The return value should look something like this:"
+msgstr "El resultado devuelto debería parecerse a algo así:"
+
+#. Tag: programlisting
+#: faq.xml:177
+#, no-c-format
+msgid ""
+"id | name           | geom\n"
+"----+----------------+-----------------------------\n"
+"  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
+"(1 row)"
+msgstr ""
+"id | name           | geom\n"
+"----+----------------+-----------------------------\n"
+"  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
+"(1 row)"
+
+#. Tag: para
+#: faq.xml:183
+#, no-c-format
+msgid "How do I construct a spatial query?"
+msgstr "¿Como puedo construir una consulta espacial?"
+
+#. Tag: para
+#: faq.xml:187
+#, no-c-format
+msgid ""
+"The same way you construct any other database query, as an SQL combination "
+"of return values, functions, and boolean tests."
+msgstr ""
+"De la misma manera que construyes cualquier consulta en la base datos, como "
+"una combinación de valores, funciones y test boleanos a devolver en SQL."
+
+#. Tag: para
+#: faq.xml:190
+#, no-c-format
+msgid ""
+"For spatial queries, there are two issues that are important to keep in mind "
+"while constructing your query: is there a spatial index you can make use of; "
+"and, are you doing expensive calculations on a large number of geometries."
+msgstr ""
+"Para las consultas espaciales, hay dos problemas importantes que hay que "
+"tener en cuenta mientras se construyen las consultas: ¿Hay indices "
+"espaciales que puedo utilizar? y ¿Estoy haciendo cálculos pesados en un gran "
+"numero de geometrias?"
+
+#. Tag: para
+#: faq.xml:195
+#, no-c-format
+msgid ""
+"In general, you will want to use the \"intersects operator\" (&&) "
+"which tests whether the bounding boxes of features intersect. The reason the "
+"&& operator is useful is because if a spatial index is available to "
+"speed up the test, the && operator will make use of this. This can "
+"make queries much much faster."
+msgstr ""
+"En general, querras utilizar el operador \"intersects\" (&&) que "
+"comprueba que los limites de los objetos geograficos intersectan. La razón "
+"por la que el operador && es útil, es por que si un indice espacial "
+"esta disponible para aumentar la velocidad de calculo, el operador &"
+"& lo utilizará. Esto puede hacer las consultas mucho mucho mas rápidas."
+
+#. Tag: para
+#: faq.xml:202
+#, no-c-format
+msgid ""
+"You will also make use of spatial functions, such as Distance(), "
+"ST_Intersects(), ST_Contains() and ST_Within(), among others, to narrow down "
+"the results of your search. Most spatial queries include both an indexed "
+"test and a spatial function test. The index test serves to limit the number "
+"of return tuples to only tuples that <emphasis>might</emphasis> meet the "
+"condition of interest. The spatial functions are then use to test the "
+"condition exactly."
+msgstr ""
+"También puedes utilizar las funciones espaciales, tales como Distance(), "
+"ST_Intersects(), ST_Contains() y ST_Within(), y muchas otras, para obtener "
+"los resultados de tu búsqueda. Muchas de las consultas espaciales, incluyen "
+"tests de indices y funciones espaciales. El test de indices sirve para "
+"limitar el número de tuplas devuelto a las tupas que <emphasis>deben</"
+"emphasis> cumplir las condiciones que nos interesan. Las funciones "
+"espaciales utilizadas para probar la condición exacta."
+
+#. Tag: programlisting
+#: faq.xml:210
+#, no-c-format
+msgid ""
+"SELECT id, the_geom \n"
+"FROM thetable \n"
+"WHERE \n"
+"  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
+msgstr ""
+"SELECT id, the_geom \n"
+"FROM thetable \n"
+"WHERE \n"
+"  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
+
+#. Tag: para
+#: faq.xml:216
+#, no-c-format
+msgid "How do I speed up spatial queries on large tables?"
+msgstr ""
+"¿Como puedo aumentar la velocidad de las consultas espaciales en tagalas "
+"grandes?"
+
+#. Tag: para
+#: faq.xml:220
+#, no-c-format
+msgid ""
+"Fast queries on large tables is the <emphasis>raison d'etre</emphasis> of "
+"spatial databases (along with transaction support) so having a good index is "
+"important."
+msgstr ""
+"Consultas rápidas en tablas grandes es la <emphasis>razón de ser </emphasis> "
+"de las bases de datos espaciales (con soporte de transacciones), así que "
+"tener buenos indices es importante."
+
+#. Tag: para
+#: faq.xml:224
+#, no-c-format
+msgid ""
+"To build a spatial index on a table with a <varname>geometry</varname> "
+"column, use the \"CREATE INDEX\" function as follows:"
+msgstr ""
+"Para construir un indice en una tabla con una columna <varname>geometry</"
+"varname>, utiliza la función \"CREATE INDEX\" como en este ejemplo:"
+
+#. Tag: programlisting
+#: faq.xml:228
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:230
+#, no-c-format
+msgid ""
+"The \"USING GIST\" option tells the server to use a GiST (Generalized Search "
+"Tree) index."
+msgstr ""
+"La opción \"USING GIST\" le dice al servidor que utilice un indice GiST "
+"(Arbol de búsqueda generalizado)."
+
+#. Tag: para
+#: faq.xml:234
+#, no-c-format
+msgid ""
+"GiST indexes are assumed to be lossy. Lossy indexes uses a proxy object (in "
+"the spatial case, a bounding box) for building the index."
+msgstr ""
+"Los indices GiST se supone que son \"lossy\". Los indices \"lossy\" utilizan "
+"un objeto proxy (en el caso espacial, las cajas) para construir el indice."
+
+#. Tag: para
+#: faq.xml:239
+#, no-c-format
+msgid ""
+"You should also ensure that the PostgreSQL query planner has enough "
+"information about your index to make rational decisions about when to use "
+"it. To do this, you have to \"gather statistics\" on your geometry tables."
+msgstr ""
+"También debes estar seguro que el planificador de consultas de PostgreSQL "
+"tiene suficiente información sobre tus indices para tomar una decisión "
+"racional de cuando utilizarlos. Para ello, tienes que \"recopilar las "
+"estadísticas\" de tus tablas geométricas. "
+
+#. Tag: para
+#: faq.xml:244
+#, no-c-format
+msgid ""
+"For PostgreSQL 8.0.x and greater, just run the <command>VACUUM ANALYZE</"
+"command> command."
+msgstr ""
+"Para PostgreSQL 8.0.x o superior, solo tienes que ejecutar el comando "
+"<command>VACUUM ANALYZE</command>."
+
+#. Tag: para
+#: faq.xml:247
+#, no-c-format
+msgid ""
+"For PostgreSQL 7.4.x and below, run the <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command> command."
+msgstr ""
+"Para PostgreSQL 7.4.x o anteriores, ejecuta el comando <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command>."
+
+#. Tag: para
+#: faq.xml:254
+#, no-c-format
+msgid "Why aren't PostgreSQL R-Tree indexes supported?"
+msgstr "¿Por que no están soportados los indices R-Tree de PostgreSQL?"
+
+#. Tag: para
+#: faq.xml:258
+#, no-c-format
+msgid ""
+"Early versions of PostGIS used the PostgreSQL R-Tree indexes. However, "
+"PostgreSQL R-Trees have been completely discarded since version 0.6, and "
+"spatial indexing is provided with an R-Tree-over-GiST scheme."
+msgstr ""
+"En las primeras versiones de PostGIS se utilizaban los indices R-Tree de "
+"PostgreSQL. Sin embargo, desde la version 0.6 han sido descartados los "
+"indices R-Tree de PostgreSQL, y la indexación espacial esta provista de un "
+"esquema R-Tree-over-GiST."
+
+#. Tag: para
+#: faq.xml:263
+#, no-c-format
+msgid ""
+"Our tests have shown search speed for native R-Tree and GiST to be "
+"comparable. Native PostgreSQL R-Trees have two limitations which make them "
+"undesirable for use with GIS features (note that these limitations are due "
+"to the current PostgreSQL native R-Tree implementation, not the R-Tree "
+"concept in general):"
+msgstr ""
+"Nuestros test han demostrado que la velocidad de búsqueda par indices "
+"nativos R-Tree y GiST son comparables. El indice nativo R-Tree de PostgreSQL "
+"tiene dos limitaciones no lo hacen apto para su uso con elementos GIS (estas "
+"limitaciones son debidas a la implementación nativa actual de R-Tree de "
+"PostgreSQL, no del concepto R-Tree en general):"
+
+#. Tag: para
+#: faq.xml:271
+#, no-c-format
+msgid ""
+"R-Tree indexes in PostgreSQL cannot handle features which are larger than 8K "
+"in size. GiST indexes can, using the \"lossy\" trick of substituting the "
+"bounding box for the feature itself."
+msgstr ""
+"Los indices R-Tree en PostgreSQL no pueden manejar elementos mayores de 8K "
+"de tamaño. Los indices GiST pueden, utilizando el truco \"lossy\" para "
+"substituir la caja del elemento en si mismo."
+
+#. Tag: para
+#: faq.xml:278
+#, no-c-format
+msgid ""
+"R-Tree indexes in PostgreSQL are not \"null safe\", so building an index on "
+"a geometry column which contains null geometries will fail."
+msgstr ""
+"Los indices r-Tree de PostgreSQL no son seguros con valores nulos, así que "
+"construir un indice en una columna de geometrías que contiene valores nulos "
+"fallará."
+
+#. Tag: para
+#: faq.xml:288
+#, no-c-format
+msgid ""
+"Why should I use the <varname>AddGeometryColumn()</varname> function and all "
+"the other OpenGIS stuff?"
+msgstr ""
+"¿Por que debería utilizar la función <varname>AddGeometryColumn()</varname> "
+"y todas las herramientas OpenGIS?"
+
+#. Tag: para
+#: faq.xml:293
+#, no-c-format
+msgid ""
+"If you do not want to use the OpenGIS support functions, you do not have to. "
+"Simply create tables as in older versions, defining your geometry columns in "
+"the CREATE statement. All your geometries will have SRIDs of -1, and the "
+"OpenGIS meta-data tables will <emphasis>not</emphasis> be filled in "
+"properly. However, this will cause most applications based on PostGIS to "
+"fail, and it is generally suggested that you do use "
+"<varname>AddGeometryColumn()</varname> to create geometry tables."
+msgstr ""
+"Si no quieres utilizar el soporte de funciones OpenGIS, no tienes por que "
+"hacerlo. Simplemente crea tablas como en versiones anteriores, definiendo "
+"tus columnas de geometrías en el comando CREATE. Todas tus geometrias "
+"tendrán un valor de -1 en el SRID, y las tablas de metadatos OpenGIS "
+"<emphasis>no</emphasis> se cumplimentaran correctamente. De todas cromas, "
+"esto hará que muchas de las aplicaciones basadas en PostGIS fallen, y "
+"generalmente se sugiere que debes utilizar <varname>AddGeometryColumn()</"
+"varname> para crear tablas geométricas."
+
+#. Tag: para
+#: faq.xml:302
+#, no-c-format
+msgid ""
+"MapServer is one application which makes use of the "
+"<varname>geometry_columns</varname> meta-data. Specifically, MapServer can "
+"use the SRID of the geometry column to do on-the-fly reprojection of "
+"features into the correct map projection."
+msgstr ""
+"MapServer es una aplicación que hace uso de los metadatos de la tabla "
+"<varname>geometry_columns</varname>. Especificamente, MapServer puede "
+"utilizar el SRID de la columna de geometrías para hacer reproyecciones al "
+"vuelo de los elementos en la proyección correcta del mapa."
+
+#. Tag: para
+#: faq.xml:311
+#, no-c-format
+msgid ""
+"What is the best way to find all objects within a radius of another object?"
+msgstr ""
+"¿Cual es la mejor manera de encontrar objetos en el radio de otro objeto?"
+
+#. Tag: para
+#: faq.xml:316
+#, no-c-format
+msgid ""
+"To use the database most efficiently, it is best to do radius queries which "
+"combine the radius test with a bounding box test: the bounding box test uses "
+"the spatial index, giving fast access to a subset of data which the radius "
+"test is then applied to."
+msgstr ""
+"Para utilizar la base de datos de la forma mas eficiente, lo mejor para "
+"hacer consultas por radio es combinar los test de radio y el test de cajas: "
+"los test de cajas utilizan los indices espaciales, dando un acceso rápido a "
+"los subconjuntos de datos a los cuales se les aplica los test de radio."
+
+#. Tag: para
+#: faq.xml:321
+#, no-c-format
+msgid ""
+"The <varname>ST_DWithin(geometry, geometry, distance)</varname> function is "
+"a handy way of performing an indexed distance search. It works by creating a "
+"search rectangle large enough to enclose the distance radius, then "
+"performing an exact distance search on the indexed subset of results."
+msgstr ""
+"La función <varname>ST_DWithin(geometry, geometry, distance)</varname> es "
+"una forma practica de hacer consultas de búsqueda de distancia indexada. "
+"Funciona creando un rectángulo de búsqueda lo suficientemente grande para "
+"abarcar el radio de distancia, y después haciendo una búsqueda exacta de "
+"distancia en el indice del subconjunto de resultados."
+
+#. Tag: para
+#: faq.xml:327
+#, no-c-format
+msgid ""
+"For example, to find all objects with 100 meters of POINT(1000 1000) the "
+"following query would work well:"
+msgstr ""
+"Por ejemplo, para encontrar todos los objetos a 100 metros del punto "
+"POINT(1000 1000), la siguiente consulta funcionara correctamente:"
+
+#. Tag: programlisting
+#: faq.xml:330
+#, no-c-format
+msgid ""
+"SELECT * FROM geotable \n"
+"WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
+msgstr ""
+"SELECT * FROM geotable \n"
+"WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
+
+#. Tag: para
+#: faq.xml:336
+#, no-c-format
+msgid "How do I perform a coordinate reprojection as part of a query?"
+msgstr "¿Como puedo realizar una reproyección como parte de una consulta?"
+
+#. Tag: para
+#: faq.xml:341
+#, no-c-format
+msgid ""
+"To perform a reprojection, both the source and destination coordinate "
+"systems must be defined in the SPATIAL_REF_SYS table, and the geometries "
+"being reprojected must already have an SRID set on them. Once that is done, "
+"a reprojection is as simple as referring to the desired destination SRID. "
+"The below projects a geometry to NAD 83 long lat. The below will only work "
+"if the srid of the_geom is not -1 (not undefined spatial ref)"
+msgstr ""
+"Para realizar una reproyección, el sistema de coordenadas de las tablas "
+"origen y destino debe estar definido en la tabla SPATIAL_REF_SYS, y las "
+"geometrías reproyectadas deben tener definido un sistema de coordenadas SRID "
+"en ellas. Una vez hecho esto, una reprojección es tan simple como hacer una "
+"referencia al SRID deseado. La consulta siguen reproyecta una geometría a "
+"NAD 83 long lat. La consulta siguiente solo funcionará si el srid de la "
+"geometría no es -1 (referencia espacial no definida)"
+
+#. Tag: programlisting
+#: faq.xml:348
+#, no-c-format
+msgid "SELECT ST_Transform(the_geom,4269) FROM geotable;"
+msgstr "SELECT ST_Transform(the_geom,4269) FROM geotable;"
+
+#. Tag: para
+#: faq.xml:354
+#, no-c-format
+msgid ""
+"I did an ST_AsEWKT and ST_AsText on my rather large geometry and it returned "
+"blank field. What gives?"
+msgstr ""
+"He hecho un  ST_AsEWKT y un ST_AsText en una geometría bastante grande y me "
+"devuelve un campo en blanco.¿Que a pasado?"
+
+#. Tag: para
+#: faq.xml:358
+#, no-c-format
+msgid ""
+"You are probably using PgAdmin or some other tool that doesn't output large "
+"text. If your geometry is big enough, it will appear blank in these tools. "
+"Use PSQL if you really need to see it or output it in WKT."
+msgstr ""
+"Probablemente estes utilizando PgAdmin o otra herramienta que no es capaz de "
+"mostrar texto largo. Si tu geometría es lo suficientemente grande, aparecerá "
+"en blanco en estas herramientas. Utiliza PSQL si realmente necesitas ver o "
+"extraer la geometría en WKT."
+
+#. Tag: programlisting
+#: faq.xml:361
+#, no-c-format
+msgid ""
+"--To check number of geometries are really blank\n"
+"                                SELECT count(gid) FROM geotable WHERE "
+"the_geom IS NULL;"
+msgstr ""
+"-- Para comprobar el numero de geometrías que están realmente en blanco\n"
+"                                SELECT count(gid) FROM geotable WHERE "
+"the_geom IS NULL;"
+
+#. Tag: para
+#: faq.xml:367
+#, no-c-format
+msgid ""
+"When I do an ST_Intersects, it says my two geometries don't intersect when I "
+"KNOW THEY DO. What gives?"
+msgstr ""
+"Cuando hago un ST_Intersects, me dice que mis dos geometrías no se "
+"intersectan cuando SE QUE SI LO HACEN. ¿Que esta pasando?"
+
+#. Tag: para
+#: faq.xml:371
+#, no-c-format
+msgid ""
+"This generally happens in two common cases. Your geometry is invalid -- "
+"check <xref linkend=\"ST_IsValid\"/> or you are assuming they intersect "
+"because ST_AsText truncates the numbers and you have lots of decimals after "
+"it is not showing you."
+msgstr ""
+"Esto ocurre generalmente en dos casos comunes. Tu geometría no es valida -- "
+"check <xref linkend=\"ST_IsValid\"/> o estas asumiendo que se interceptan "
+"por que ST_AsText recorta el numero de decimales y tienes un montón de "
+"decimales después que no se muestran."
+
+#. Tag: para
+#: faq.xml:379
+#, no-c-format
+msgid ""
+"I am releasing software that uses PostGIS, does that mean my software has to "
+"be licensed using the GPL like PostGIS? Will I have to publish all my code "
+"if I use PostGIS?"
+msgstr ""
+"Estoy desarrollando software que utiliza PostGIS, ¿quiere decir esto que mi "
+"software debe tener licencia GPL como PostGIS?¿Tengo que liberar todo mi "
+"código si utilizo PostGIS?"
+
+#. Tag: para
+#: faq.xml:383
+#, no-c-format
+msgid ""
+"Almost certainly not. As an example, consider Oracle database running on "
+"Linux. Linux is GPL, Oracle is not, does Oracle running on Linux have to be "
+"distributed using the GPL? No. So your software can use a PostgreSQL/PostGIS "
+"database as much as it wants and be under any license you like."
+msgstr ""
+"Seguramente no. Como ejemplo, piensa en una base de datos Oracle "
+"ejecutandose en Linux. Linus tiene licencia GPL, Oracle no, ¿Oracle "
+"ejecutandose en Linux tiene que distribuirse con licencia GPL? No. Así que "
+"tu software puede utilizar bases de datos PostgreSQL/PostGIS tanto como "
+"quiera y tener la licencia que tu quieras."
+
+#. Tag: para
+#: faq.xml:384
+#, no-c-format
+msgid ""
+"The only exception would be if you made changes to the PostGIS source code, "
+"and distributed your changed version of PostGIS. In that case you would have "
+"to share the code of your changed PostGIS (but not the code of applications "
+"running on top of it). Even in this limited case, you would still only have "
+"to distribute source code to people you distributed binaries to. The GPL "
+"does not require that you <emphasis>publish</emphasis> your source code, "
+"only that you share it with people you give binaries to."
+msgstr ""
+"La unica excepción puede ser si realizas cambios en el código fuente de "
+"PostGIS, y distribuyes una version modificada de PostGIS. En este caso "
+"deberás compartir el código de tu version modificada de PostGIS (pero el "
+"código de tu aplicación que se ejecuta sobre el no). Aun así en este caso "
+"limitado, solo tendrías que distribuir el código modificado a la gente que "
+"distribuyes los binarios. La licencia GPL no requiere que "
+"<emphasis>publiques</emphasis> tu código fuente, solo que lo compartas con "
+"la gente a la que entregas los binarios."
+
+#~ msgid ""
+#~ "CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
+#~ "SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
+#~ msgstr ""
+#~ "CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
+#~ "SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
diff --git a/doc/po/es/faq_raster.xml.po b/doc/po/es/faq_raster.xml.po
new file mode 100644
index 0000000..e2df3cc
--- /dev/null
+++ b/doc/po/es/faq_raster.xml.po
@@ -0,0 +1,957 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Carlos Barrios <gbarrios at aaa.upv.es>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-02-15 18:01+0000\n"
+"Last-Translator: Carlos Barrios <gbarrios at aaa.upv.es>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: faq_raster.xml:3
+#, no-c-format
+msgid "PostGIS Raster Frequently Asked Questions"
+msgstr "Preguntas frecuentes sobre PostGIS Raster"
+
+#. Tag: para
+#: faq_raster.xml:9
+#, no-c-format
+msgid "Where can I find out more about the PostGIS Raster Project?"
+msgstr ""
+"¿Dónde puedo encontrar más información sobre el Proyecto Raster PostGIS?"
+
+#. Tag: para
+#: faq_raster.xml:13
+#, no-c-format
+msgid ""
+"Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster"
+"\">PostGIS Raster home page</ulink>."
+msgstr ""
+"Dirigirse a la <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster"
+"\">página inicial de PostGIS Raster</ulink>."
+
+#. Tag: para
+#: faq_raster.xml:19
+#, no-c-format
+msgid ""
+"Are there any books or tutorials to get me started with this wonderful "
+"invention?"
+msgstr ""
+"¿Existen libros o tutoriales para que pueda empezar con esta estupenda "
+"invención?"
+
+#. Tag: para
+#: faq_raster.xml:23
+#, no-c-format
+msgid ""
+"There is a full length beginner tutorial <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/WKTRasterTutorial01\"> Intersecting vector buffers with large "
+"raster coverage using PostGIS Raster</ulink>. Jorge has a series of blog "
+"articles on PostGIS Raster that demonstrate how to load raster data as well "
+"as cross compare to same tasks in Oracle GeoRaster. Check out <ulink url="
+"\"http://gis4free.wordpress.com/category/postgis-raster/\">Jorge's PostGIS "
+"Raster / Oracle GeoRaster Series</ulink>. There is a whole chapter (more "
+"than 35 pages of content) dedicated to PostGIS Raster with free code and "
+"data downloads at <ulink url=\"http://www.postgis.us/chapter_13\">PostGIS in "
+"Action - Raster chapter</ulink>. You can <ulink url=\"http://www.postgis.us/"
+"page_buy_book\">buy PostGIS in Action</ulink> now from Manning in hard-copy "
+"(significant discounts for bulk purchases) or just the E-book format. You "
+"can also buy from Amazon and various other book distributors. All hard-copy "
+"books come with a free coupon to download the E-book version."
+msgstr ""
+"Existe un completo tutorial para principiantes  <ulink url=\"http://trac."
+"osgeo.org/postgis/wiki/WKTRasterTutorial01\"> Realizando intersecciones de "
+"búfers de vectores con grandes coberturas raster usando PostGIS Raster</"
+"ulink>. Jorge tiene en un blog una serie de artículos sobre PostGIS Raster "
+"que muestran cómo cargar datos raster así como una comparativa de las mismas "
+"tareas con Oracle GeoRaster. Consultar <ulink url=\"http://gis4free."
+"wordpress.com/category/postgis-raster/\">Series PostGIS Raster / Oracle "
+"GeoRaster de Jorge</ulink>. Hay un capítulo entero (más de 35 páginas de "
+"contenido) dedicadas a PostGIS Raster con código libre y descargas de datos "
+"en <ulink url=\"http://www.postgis.us/chapter_13\">PostGIS en Acción - "
+"capítulo sobre los Raste</ulink>.  Se puede comprar <ulink url=\"http://www."
+"postgis.us/page_buy_book\">comprar \"PostGIS in Action\"</ulink> a Manning "
+"en copia impresa (importantes descuentos en compras de más de un ejemplar) o "
+"en formato electrónico (E-book). También se puede comprar a Amazon y varias "
+"otras distribuidoras de libros. Todas las copias impresas vienen con un "
+"cupón gratuito para descargarse la versión E-book."
+
+#. Tag: para
+#: faq_raster.xml:30
+#, no-c-format
+msgid ""
+"Here is a review from a PostGIS Raster user <ulink url=\"http://"
+"fuzzytolerance.info/code/postgis-raster-ftw/\">PostGIS raster applied to "
+"land classification urban forestry</ulink>"
+msgstr ""
+"Aquí hay una revisión de un usuario de PostGIS Raster <ulink url=\"http://"
+"fuzzytolerance.info/code/postgis-raster-ftw/\">PostGIS ráster aplicado al "
+"uso del suelo forestal urbano</ulink>"
+
+#. Tag: para
+#: faq_raster.xml:37
+#, no-c-format
+msgid "How do I install Raster support in my PostGIS database?"
+msgstr "¿Cómo instalo la funcionalidad Ráster en mi base de datos PostGIS?"
+
+#. Tag: para
+#: faq_raster.xml:41
+#, no-c-format
+msgid ""
+"The easiest is to download binaries for PostGIS and Raster which are "
+"currently available for windows and latest versions of Mac OSX. First you "
+"need a working PostGIS 2.0.0 or above and be running PostgreSQL 8.4, 9.0, or "
+"9.1. Note in PostGIS 2.0 PostGIS Raster is fully integrated, so it will be "
+"compiled when you compile PostGIS."
+msgstr ""
+"Lo más sencillo es descargar los ejecutables de PostGIS y Ráster que hay "
+"actualmente disponibles para Windows y las últimas versiones de Mac OSX. Se "
+"necesita un PostGIS 2.0.0, o superior, y estar usando PostgreSQL 8.4, 9.0, o "
+"9.1. Tener en cuenta que en PostGIS 2.0 el Ráster está completamente "
+"integrado, así que se compilará cuando compile PostGIS."
+
+#. Tag: para
+#: faq_raster.xml:43
+#, no-c-format
+msgid ""
+"Instructions for installing and running under windows are available at "
+"<ulink url=\"http://gis4free.wordpress.com/2011/03/10/how-to-install-and-"
+"configure-postgis-raster-on-windows/\">How to Install and Configure PostGIS "
+"raster on windows</ulink>"
+msgstr ""
+"Las instrucciones para instalarlo y ejecutarlo desde Windows están "
+"disponibles en <ulink url=\"http://gis4free.wordpress.com/2011/03/10/how-to-"
+"install-and-configure-postgis-raster-on-windows/\">Cómo instalar y "
+"configurar PostGIS Ráster en Windows</ulink>"
+
+#. Tag: para
+#: faq_raster.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"If you are on windows, you can compile yourself, or use the <ulink url="
+"\"http://postgis.net/windows_downloads\">pre-compiled PostGIS Raster windows "
+"binaries</ulink>. If you are on Mac OSX Leopard or Snow Leopard, there are "
+"binaries available at <ulink url=\"http://www.kyngchaos.com/software/postgres"
+"\">Kyng Chaos Mac OSX PostgreSQL/GIS binaries</ulink>."
+msgstr ""
+"Si estamos en Windows, podemos compilarlo nosotros mismos, o usar los <ulink "
+"url=\"http://www.postgis.org/download/windows/experimental.php#wktraster"
+"\">ejecutables pre-compilados de PostGIS Raster</ulink>. Si estamos en Mac "
+"OSX Leopard o Snow Leopard, hay ejecutables disponibles en <ulink url="
+"\"http://www.kyngchaos.com/software/postgres\">ejecutables Kyng Chaos Mac "
+"OSX PostgreSQL/GIS</ulink>."
+
+#. Tag: para
+#: faq_raster.xml:50
+#, no-c-format
+msgid ""
+"Then to enable raster support in your database, run the rtpostgis.sql file "
+"in your database. To upgrade an existing install use "
+"rtpostgis_upgrade_minor..sql instead of rtpostgis.sql"
+msgstr ""
+"A continuación, para habilitar el soporte ráster en nuestra base de datos, "
+"ejecutar el fichero rtpostgis.sql en nuestra base de datos. Para actualizar "
+"una instalación existente usar rtpostgis_upgrade_minor.sql en vez de "
+"rtpostgis.sql."
+
+#. Tag: para
+#: faq_raster.xml:51
+#, no-c-format
+msgid ""
+"For other platforms, you generally need to compile yourself. Dependencies "
+"are PostGIS and GDAL. For more details about compiling from source, please "
+"refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"Documentation01#a2.3-CompilingandInstallingfromSources\">Installing PostGIS "
+"Raster from source (in prior versions of PostGIS)</ulink>"
+msgstr ""
+"Para otras plataformas, generalmente necesitaremos compilarlo nosotros "
+"mismos. Las dependencias son PostGIS y GDAL. Para más información acerca de "
+"como compilarlo nosotros mismos, por favor diríjase a  <ulink url=\"http://"
+"trac.osgeo.org/postgis/wiki/WKTRaster/Documentation01#a2.3-"
+"CompilingandInstallingfromSources\">Instalando PostGIS Raster desde el "
+"código fuente (en versiones anteriores de PostGIS)</ulink>"
+
+#. Tag: para
+#: faq_raster.xml:57
+#, no-c-format
+msgid ""
+"I get error could not load library \"C:/Program Files/PostgreSQL/8.4/lib/"
+"rtpostgis.dll\": The specified module could not be found. or could not load "
+"library on Linux when trying to run rtpostgis.sql"
+msgstr ""
+"Me aparece el error de que no pudo cargar la librería \"C:/Program Files/"
+"PostgreSQL/8.4/lib/rtpostgis.dll\": No se encontró el módulo indicado, o no "
+"se pudo cargar la librería en Linux al intentar ejecutar rtpostgis.sql."
+
+#. Tag: para
+#: faq_raster.xml:62
+#, no-c-format
+msgid ""
+"rtpostgis.so/dll is built with dependency on libgdal.dll/so. Make sure for "
+"Windows you have libgdal-1.dll in the bin folder of your PostgreSQL install. "
+"For Linux libgdal has to be in your path or bin folder."
+msgstr ""
+"rtpostgis.so/dll está construido bajo la dependencia de libgdal.so/dll. "
+"Asegúrese de tener, en Windows, el fichero libgdal-1.dll en la carpeta \"bin"
+"\" de su instalación de PostgreSQL. En Linux, libgdal debe estar en el \"path"
+"\" o la carpeta \"bin\"."
+
+#. Tag: para
+#: faq_raster.xml:64
+#, no-c-format
+msgid ""
+"You may also run into different errors if you don't have PostGIS installed "
+"in your database. Make sure to install PostGIS first in your database before "
+"trying to install the raster support."
+msgstr ""
+"Pueden aparecer también diferentes errores si no tenemos PostGIS instalado "
+"en nuestra base de datos. Asegúrese primero de instalar PostGIS en su base "
+"de datos antes de instalar el soporte para ráster."
+
+#. Tag: para
+#: faq_raster.xml:71
+#, no-c-format
+msgid "How do I load Raster data into PostGIS?"
+msgstr "¿Cómo se cargan datos ráster en PostGIS?"
+
+#. Tag: para
+#: faq_raster.xml:75
+#, no-c-format
+msgid ""
+"The latest version of PostGIS comes packaged with a <varname>raster2pgsql</"
+"varname> raster loader executable capable of loading many kinds of rasters "
+"and also generating lower resolution overviews without any additional "
+"software. Please refer to <xref linkend=\"RT_Raster_Loader\"/> for more "
+"details. Pre-2.0 versions came with a <varname>raster2pgsql.py</varname> "
+"that required python with numpy and GDAL. This is no longer needed."
+msgstr ""
+"La útlima versión de PostGIS viene empaquetada con un <varname>raster2pgsql</"
+"varname> cargador ejecutable para ráster capaz de cargar muchas clases de "
+"ráster y de generar previsualizaciones en baja resolución sin ningún "
+"programa adicional. Consulte <xref linkend=\"RT_Raster_Loader\"/> para tener "
+"más detalles. Versiones anteriores a la 2.0 venían con un "
+"<varname>raster2pgsql.py</varname> que necesitaba tener instalado python, "
+"numpy y GDAL. Esto ya no es necesario."
+
+#. Tag: para
+#: faq_raster.xml:81
+#, no-c-format
+msgid "What kind of raster file formats can I load into my database?"
+msgstr "¿Qué formatos de ficheros ráster puedo cargar en mi base de datos?"
+
+#. Tag: para
+#: faq_raster.xml:85
+#, no-c-format
+msgid ""
+"Any that your GDAL library supports. GDAL supported formats are documented "
+"<ulink url=\"http://www.gdal.org/formats_list.html\">GDAL File Formats</"
+"ulink>."
+msgstr ""
+"Cualquiera de los que soporta la librería GDAL. Los formatos soportados por "
+"GDAL están documentados en <ulink url=\"http://www.gdal.org/formats_list.html"
+"\">GDAL File Formats</ulink>."
+
+#. Tag: para
+#: faq_raster.xml:86
+#, no-c-format
+msgid ""
+"Your particular GDAL install may not support all formats. To verify the ones "
+"supported by your particular GDAL install, you can use"
+msgstr ""
+"Nuestra instalación GDAL concreta puede que no soporte todos los formatos. "
+"Para comprobar los que están soportados en nuestra instalación de GDAL "
+"podemos usar"
+
+#. Tag: programlisting
+#: faq_raster.xml:87
+#, no-c-format
+msgid "raster2pgsql -G"
+msgstr "raster2pgsql -G"
+
+#. Tag: para
+#: faq_raster.xml:93
+#, no-c-format
+msgid "Can I export my PostGIS raster data to other raster formats?"
+msgstr "¿Puedo exportar mis datos ráster en PostGIS a otros formatos ráster?"
+
+#. Tag: para
+#: faq_raster.xml:97
+#, no-c-format
+msgid "<para>Yes</para>"
+msgstr "<para>Sí</para>"
+
+#. Tag: para
+#: faq_raster.xml:98
+#, no-c-format
+msgid ""
+"GDAL 1.7+ has a PostGIS raster driver, but is only compiled in if you choose "
+"to compile with PostgreSQL support."
+msgstr ""
+"GDAL 1.7+ tiene un controlador ráster para PostGIS, pero sólo se agrega a la "
+"compilación si elegimos compilarlo con el soporte de PostgreSQL."
+
+#. Tag: para
+#: faq_raster.xml:99
+#, no-c-format
+msgid ""
+"The driver currently doesn't support irregularly blocked rasters, although "
+"you can store irregularly blocked rasters in PostGIS raster data type."
+msgstr ""
+"El controlador actualmente no soporta rásters con bloqueos irregulares, "
+"aunque éstos se pueden almacenar en PostGIS con el tipo de datos ráster."
+
+#. Tag: para
+#: faq_raster.xml:101
+#, no-c-format
+msgid ""
+"If you are compiling from source, you need to include in your configure "
+"<programlisting>--with-pg=path/to/pg_config</programlisting> to enable the "
+"driver. Refer to <ulink url=\"http://trac.osgeo.org/gdal/wiki/BuildHints"
+"\">GDAL Build Hints</ulink> for tips on building GDAL against in various OS "
+"platforms."
+msgstr ""
+"Si estamos compilando desde los fuentes, necesitamos incluir en nuestra "
+"configuración  <programlisting>--with-pg=path/to/pg_config</programlisting> "
+"para habilitar el controlador. Véase <ulink url=\"http://trac.osgeo.org/gdal/"
+"wiki/BuildHints\">GDAL Build Hints</ulink> para conocer recomendaciones "
+"sobre cómo generar ejecutables de GDAL en varias plataformas."
+
+#. Tag: para
+#: faq_raster.xml:106
+#, no-c-format
+msgid ""
+"If your version of GDAL is compiled with the PostGIS Raster driver you "
+"should see PostGIS Raster in list when you do"
+msgstr ""
+"Si nuestra versión de GDAL está compilada con el controlador ráster para "
+"PostGIS, deberíamos ver PostGIS Raster en la lista cuando hagamos"
+
+#. Tag: programlisting
+#: faq_raster.xml:108
+#, no-c-format
+msgid "gdalinfo --formats"
+msgstr "gdalinfo --formats"
+
+#. Tag: para
+#: faq_raster.xml:110
+#, no-c-format
+msgid "To get a summary about your raster via GDAL use gdalinfo:"
+msgstr ""
+"Para obtener un resumen vía GDAL acerca de nuestro ráster utilizamos "
+"gdalinfo:"
+
+#. Tag: programlisting
+#: faq_raster.xml:111
+#, no-c-format
+msgid ""
+"gdalinfo  \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' "
+"password='whatever' schema='someschema' table=sometable\""
+msgstr ""
+"gdalinfo  \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' "
+"password='whatever' schema='nuestroesquema' table=nuestratabla\""
+
+#. Tag: para
+#: faq_raster.xml:114
+#, no-c-format
+msgid ""
+"To export data to other raster formats, use gdal_translate the below will "
+"export all data from a table to a PNG file at 10% size."
+msgstr ""
+"Para exportar a otros formatos ráster, usaremos gdal_translate. Lo que viene "
+"abajo exportará todos los datos de una tabla a un fichero PNG al 10% de su "
+"tamaño."
+
+#. Tag: para
+#: faq_raster.xml:116
+#, no-c-format
+msgid ""
+"Depending on your pixel band types, some translations may not work if the "
+"export format does not support that Pixel type. For example floating point "
+"band types and 32 bit unsigned ints will not translate easily to JPG or some "
+"others."
+msgstr ""
+"Dependiendo de los tipos de banda de píxel, algunas conversiones puede que "
+"no funcionen si el formato exportado no soporta ese tipo de píxel. Por "
+"ejemplo, tipos de banda en punto flotante y enteros sin signo de 32 bits no "
+"se convertirán fácilmente a JPG o algunos otros."
+
+#. Tag: para
+#: faq_raster.xml:119
+#, no-c-format
+msgid "Here is an example simple translation"
+msgstr "Aquí hay un ejemplo sencillo de conversión"
+
+#. Tag: programlisting
+#: faq_raster.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable\" C:\\somefile.png"
+msgstr ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' "
+"user='postgres' password=whatever' schema='someschema' table=sometable\" C:"
+"\\somefile.png"
+
+#. Tag: para
+#: faq_raster.xml:121
+#, no-c-format
+msgid ""
+"You can also use SQL where clauses in your export using the where=... in "
+"your driver connection string. Below are some using a where clause"
+msgstr ""
+"Podemos también usar las cláusulas WHERE de SQL en nuestra exportación "
+"utilizando los where=... en nuestra cadena de conexión con el controlador. "
+"Abajo hay algunas que usan la cáusula WHERE"
+
+#. Tag: programlisting
+#: faq_raster.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='filename=\\'abcd.sid\\''\" \" C:\\somefile.png"
+msgstr ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' "
+"user='postgres' password=whatever' schema='someschema' table=sometable where="
+"\"owner='jimmy'\" \" C:\\somefile.png"
+
+#. Tag: programlisting
+#: faq_raster.xml:124
+#, fuzzy, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='ST_Intersects(rast, "
+"ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" C:\\intersectregion.png"
+msgstr ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' "
+"user='postgres' password=whatever' schema='someschema' table=sometable "
+"where='ST_Intersects(rast, ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" "
+"C:\\intersectregion.png"
+
+#. Tag: para
+#: faq_raster.xml:125
+#, no-c-format
+msgid ""
+"To see more examples and syntax refer to <ulink url=\"http://trac.osgeo.org/"
+"gdal/wiki/frmts_wtkraster.html#a3.2-Readingrasterdatafromthedatabase"
+"\">Reading Raster Data of PostGIS Raster section</ulink>"
+msgstr ""
+"Para ver más ejemplos y la sintaxis consulte <ulink url=\"http://trac.osgeo."
+"org/gdal/wiki/frmts_wtkraster.html#a3.2-Readingrasterdatafromthedatabase"
+"\">Leyendo datos ráster, sección PostGIS Raster</ulink>"
+
+#. Tag: para
+#: faq_raster.xml:130
+#, no-c-format
+msgid ""
+"Are their binaries of GDAL available already compiled with PostGIS Raster "
+"suppport?"
+msgstr ""
+"¿Están ya compilados con el soporte ráster de PostGIS sus ejecutables GDAL "
+"de los que dispone?"
+
+#. Tag: para
+#: faq_raster.xml:132
+#, no-c-format
+msgid ""
+"Yes. Check out the page <ulink url=\"http://trac.osgeo.org/gdal/wiki/"
+"DownloadingGdalBinaries\">GDAL Binaries</ulink> page. Any compiled with "
+"PostgreSQL support should have PostGIS Raster in them."
+msgstr ""
+"Sí. Compruebe la página <ulink url=\"http://trac.osgeo.org/gdal/wiki/"
+"DownloadingGdalBinaries\">GDAL Binaries</ulink>. Cualquiera que esté "
+"compilado con el soporte PostgreSQL debe incluir PostGIS Raster."
+
+#. Tag: para
+#: faq_raster.xml:134
+#, no-c-format
+msgid ""
+"PostGIS Raster is undergoing many changes. If you want to get the latest "
+"nightly build for Windows -- then check out the Tamas Szekeres nightly "
+"builds built with Visual Studio which contain GDAL trunk, Python Bindings "
+"and MapServer executables and PostGIS Raster driver built-in. Just click the "
+"SDK bat and run your commands from there. <ulink url=\"http://vbkto.dyndns."
+"org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink>. Also available are VS "
+"project files."
+msgstr ""
+"PostGIS está experimentando muchos cambios. Si desea obtener la última "
+"versión para Windows -- consulte los \"nightly builds\" de Tamas Szekeres "
+"generados con Visual Studio que contienen los ejecutables de GDAL, Python "
+"Bindings y MapServer y el controlador para ráster de PostGIS incorporado. "
+"Haga click en el \"bat\" SDK y ejecute los comandos desde allí. <ulink url="
+"\"http://vbkto.dyndns.org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink>. "
+"También hay disponibles ficheros de proyecto de VS."
+
+#. Tag: para
+#: faq_raster.xml:138
+#, no-c-format
+msgid ""
+"<ulink url=\"http://fwtools.maptools.org/\">FWTools latest stable version "
+"for Windows is compiled with Raster support</ulink>."
+msgstr ""
+"<ulink url=\"http://fwtools.maptools.org/\">La última versión estable de "
+"FWTools para Windows está compilada con el soporte para ráster</ulink>."
+
+#. Tag: para
+#: faq_raster.xml:144
+#, no-c-format
+msgid "What tools can I use to view PostGIS raster data?"
+msgstr "¿Qué herramientas puedo usar para ver datos ráster de PostGIS?"
+
+#. Tag: para
+#: faq_raster.xml:148
+#, no-c-format
+msgid ""
+"You can use MapServer compiled with GDAL 1.7+ and PostGIS Raster driver "
+"support to view Raster data. QuantumGIS (QGIS) now supports viewing of "
+"PostGIS Raster if you have PostGIS raster driver installed."
+msgstr ""
+"Podemos usar MapServer compilado con GDAL 1.7+ y soporte ráster de PostGIS "
+"para ver datos ráster. QuantumGIS (QGIS) ahora es capaz de visualizar ráster "
+"de PostGIS si tenemos instalado el controlador ráster de PostGIS."
+
+#. Tag: para
+#: faq_raster.xml:150
+#, no-c-format
+msgid ""
+"In theory any tool that renders data using GDAL can support PostGIS raster "
+"data or support it with fairly minimal effort. Again for Windows, Tamas' "
+"binaries <ulink url=\"http://vbkto.dyndns.org/sdk/\">http://vbkto.dyndns.org/"
+"sdk/</ulink> are a good choice if you don't want the hassle of having to "
+"setup to compile your own."
+msgstr ""
+"En teoría cualquier herramienta que renderice datos usando GDAL puede tener "
+"soporte para ráster de PostGIS o soportarlo con un pequeño esfuerzo. De "
+"nuevo, para Windows, los binarios de Tama <ulink url=\"http://vbkto.dyndns."
+"org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink> son una buena elección si no "
+"desea los inconvenientes de tener nosotros mismos que configurar la "
+"compilación."
+
+#. Tag: para
+#: faq_raster.xml:157
+#, no-c-format
+msgid "How can I add a PostGIS raster layer to my MapServer map?"
+msgstr "¿Cómo puedo añadir una capa ráster de PostGIS a mi mapa de MapServer?"
+
+#. Tag: para
+#: faq_raster.xml:161
+#, no-c-format
+msgid ""
+"First you need GDAL 1.7 or higher compiled with PostGIS raster support. GDAL "
+"1.8 or above is preferred since many issues have been fixed in 1.8 and more "
+"PostGIS raster issues fixed in trunk version."
+msgstr ""
+"Primero necesitamos tener compilado GDAL 1.7 o superior con soporte ráster "
+"de PostGIS. Es preferible GDAL 1.8 o superior ya que muchos problemas han "
+"sido solucionados en la 1.8, y más serán corregidos en la versión troncal."
+
+#. Tag: para
+#: faq_raster.xml:163
+#, no-c-format
+msgid ""
+"You can much like you can with any other raster. Refer to <ulink url="
+"\"http://mapserver.org/input/raster.html\">MapServer Raster processing "
+"options</ulink> for list of various processing functions you can use with "
+"MapServer raster layers."
+msgstr ""
+"Podemos hacer como con cualquier otro ráster. Consulte <ulink url=\"http://"
+"mapserver.org/input/raster.html\">MapServer Raster processing options</"
+"ulink> para una lista de las diferentes funciones que podemos usar para "
+"procesar capas ráster en MapServer."
+
+#. Tag: para
+#: faq_raster.xml:166
+#, no-c-format
+msgid ""
+"What makes PostGIS raster data particularly interesting, is that since each "
+"tile can have various standard database columns, you can segment it in your "
+"data source"
+msgstr ""
+"Lo que hace particularmente interesante a los datos raster PostGIS, es que,  "
+"ya que cada mosaico puede tener varias columnas estándar de la base de "
+"datos, podemos segmentarlos en nuestro origen de datos."
+
+#. Tag: para
+#: faq_raster.xml:168
+#, no-c-format
+msgid ""
+"Below is an example of how you would define a PostGIS raster layer in "
+"MapServer."
+msgstr ""
+"Debajo hay un ejemplo de cómo definiríamos una capa ráster de PostGIS en "
+"MapServer."
+
+#. Tag: para
+#: faq_raster.xml:169
+#, no-c-format
+msgid ""
+"The mode=2 is required for tiled rasters and was added in PostGIS 2.0 and "
+"GDAL 1.8 drivers. This does not exist in GDAL 1.7 drivers."
+msgstr ""
+"Se necesita el \"mode=2\" para rásters en mosaico que fué añadido en PostGIS "
+"2.0 y los controladores de GDAL 1.8. Ésto no está en los controladores GDAL "
+"1.7."
+
+#. Tag: programlisting
+#: faq_raster.xml:170
+#, no-c-format
+msgid ""
+"-- displaying raster with standard raster options\n"
+"LAYER\n"
+"        NAME coolwktraster\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        PROCESSING \"SCALE=AUTO\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"        CLASS\n"
+"                NAME \"boring\"\n"
+"                EXPRESSION ([pixel] < 20)\n"
+"                COLOR 250 250 250\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"mildly interesting\"\n"
+"                EXPRESSION ([pixel] > 20 AND [pixel] < 1000)\n"
+"                COLOR 255 0 0\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"very interesting\"\n"
+"                EXPRESSION ([pixel] >= 1000)\n"
+"                COLOR 0 255 0\n"
+"        END\n"
+"END"
+msgstr ""
+"-- mostrando datos raster con las opciones estándar raster\n"
+"LAYER\n"
+"        NAME coolwktraster\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        PROCESSING \"SCALE=AUTO\"\n"
+"        #... otras funciones estándar para procesar ráster aquí\n"
+"        #... las clases son opcionales, pero útiles para datos de 1 banda\n"
+"        CLASS\n"
+"                NAME \"boring\"\n"
+"                EXPRESSION ([pixel] < 20)\n"
+"                COLOR 250 250 250\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"mildly interesting\"\n"
+"                EXPRESSION ([pixel] > 20 AND [pixel] < 1000)\n"
+"                COLOR 255 0 0\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"very interesting\"\n"
+"                EXPRESSION ([pixel] >= 1000)\n"
+"                COLOR 0 255 0\n"
+"        END\n"
+"END"
+
+#. Tag: programlisting
+#: faq_raster.xml:172
+#, no-c-format
+msgid ""
+"-- displaying raster with standard raster options and a where clause\n"
+"LAYER\n"
+"        NAME soil_survey2009\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' "
+"where='survey_year=2009' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"END"
+msgstr ""
+"-- visualizando raster con las opciones estándar y una cláusula where\n"
+"LAYER\n"
+"        NAME soil_survey2009\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' "
+"where='survey_year=2009' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        #... otras funciones estándar para procesar ráster aquí\n"
+"        #... las clases son opcionales, pero útiles para datos de 1 banda\n"
+"END"
+
+#. Tag: para
+#: faq_raster.xml:180
+#, no-c-format
+msgid "What functions can I currently use with my raster data?"
+msgstr "¿Qué funciones puedo utilizar actualmente con mis datos ráster?"
+
+#. Tag: para
+#: faq_raster.xml:184
+#, no-c-format
+msgid ""
+"Refer to the list of <xref linkend=\"RT_reference\"/>. There are more, but "
+"this is still a work in progress."
+msgstr ""
+"Consulte la relación en <xref linkend=\"RT_reference\"/>. Hay más, pero es "
+"un trabajo en marcha todavía."
+
+#. Tag: para
+#: faq_raster.xml:186
+#, no-c-format
+msgid ""
+"Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"PlanningAndFunding\">PostGIS Raster roadmap page</ulink> for details of what "
+"you can expect in the future."
+msgstr ""
+"Consulte <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"PlanningAndFunding\">PostGIS Raster roadmap page</ulink> para detalles "
+"acerca de qué esperar en el futuro."
+
+#. Tag: para
+#: faq_raster.xml:194
+#, no-c-format
+msgid ""
+"I am getting error ERROR: function st_intersects(raster, unknown) is not "
+"unique or st_union(geometry,text) is not unique. How do I fix?"
+msgstr ""
+"Obtengo el error \"ERROR: function st_intersects(raster, unknown) is not "
+"unique or st_union(geometry,text) is not unique\". ¿Cómo lo soluciono?"
+
+#. Tag: para
+#: faq_raster.xml:198
+#, no-c-format
+msgid ""
+"The function is not unique error happens if one of your arguments is a "
+"textual representation of a geometry instead of a geometry. In these cases, "
+"PostgreSQL marks the textual representation as an unknown type, which means "
+"it can fall into the st_intersects(raster, geometry) or st_intersects(raster,"
+"raster) thus resulting in a non-unique case since both functions can in "
+"theory support your request. To prevent this, you need to cast the geometry "
+"to a geometry."
+msgstr ""
+"El error \"is not unique\" ocurre si uno de nuestros argumentos es una "
+"representación en texto de una geometría en vez de una geometría. En estos "
+"casos, PostgreSQL señala la representación en texto como tipo desconocido, "
+"lo que significa que pueden haber casos no-únicos en los resultados de "
+"st_intersects(raster, geometry) or st_intersects(raster,raster) ya que ambas "
+"funciones pueden en teoría responder a nuestra petición. Para evitar esto, "
+"necesitamos hacer una conversión de tipos (cast) de geometry a un geometry."
+
+#. Tag: para
+#: faq_raster.xml:199
+#, no-c-format
+msgid "For example if your code looks like this:"
+msgstr "Por ejemplo, si nuestro código se parece a éste:"
+
+#. Tag: programlisting
+#: faq_raster.xml:200
+#, no-c-format
+msgid ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
+msgstr ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
+
+#. Tag: para
+#: faq_raster.xml:201
+#, no-c-format
+msgid ""
+"Cast the textual geometry representation to a geometry by changing your code "
+"to this:"
+msgstr ""
+"Haga un moldeado de tipos \"cast\" de la representación en texto de la "
+"geometría a geometría cambiando el código de esta manera:"
+
+#. Tag: programlisting
+#: faq_raster.xml:202
+#, no-c-format
+msgid ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)'::geometry);"
+msgstr ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)'::geometry);"
+
+#. Tag: para
+#: faq_raster.xml:208
+#, no-c-format
+msgid ""
+"How is PostGIS Raster different from Oracle GeoRaster (SDO_GEORASTER) and "
+"SDO_RASTER types?"
+msgstr ""
+"¿En qué se diferencia el PostGIS Raster de los tipos Oracle GeoRaster "
+"(SDO_GEORASTER) y SDO_RASTER?"
+
+#. Tag: para
+#: faq_raster.xml:212
+#, no-c-format
+msgid ""
+"For a more extensive discussion on this topic, check out Jorge Arévalo "
+"<ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-georaster-part-"
+"i/\">Oracle GeoRaster and PostGIS Raster: First impressions </ulink>"
+msgstr ""
+"Para una discusión más extensa sobre este tema, consultar la web de Jorge "
+"Arévalo <ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-"
+"georaster-part-i/\">Oracle GeoRaster and PostGIS Raster: First impressions </"
+"ulink>"
+
+#. Tag: para
+#: faq_raster.xml:213
+#, no-c-format
+msgid ""
+"The major advantage of one-georeference-by-raster over one-georeference-by-"
+"layer is to allow:"
+msgstr ""
+"La mayor ventaja de una-georeferencia-por-raster sobre una-georeferencia-por-"
+"capa es la de permitir:"
+
+#. Tag: para
+#: faq_raster.xml:214
+#, no-c-format
+msgid ""
+"* coverages to be not necessarily rectangular (which is often the case of "
+"raster coverage covering large extents. See the possible raster arrangements "
+"in the documentation)"
+msgstr ""
+"* las coberturas no necesitan ser obligatoriamente rectangulares (como es el "
+"caso, a menudo, de coberturas ráster de gran extensión. Consulte las "
+"posibles disposiciones acerca de los ráster en la documentación)"
+
+#. Tag: para
+#: faq_raster.xml:215
+#, no-c-format
+msgid ""
+"* rasters to overlaps (which is necessary to implement lossless vector to "
+"raster conversion)"
+msgstr ""
+"* solapar rásters (necesario para implementar la conversión de menor pérdida "
+"de vectorial a ráster)."
+
+#. Tag: para
+#: faq_raster.xml:216
+#, no-c-format
+msgid ""
+"These arrangements are possible in Oracle as well, but they imply the "
+"storage of multiple SDO_GEORASTER objects linked to as many SDO_RASTER "
+"tables. A complex coverage can lead to hundreds of tables in the database. "
+"With PostGIS Raster you can store a similar raster arrangement into a unique "
+"table."
+msgstr ""
+"Estas disposiciones son posibles también en Oracle, pero implican el "
+"almacenamiento de múltiples objetos SDO_GEORASTER enlazados a muchas tablas "
+"SDO_RASTER. Una cobertura compleja puede llevar a cientos de tablas en la "
+"base de datos. Con PostGIS Raster podemos almacenar una disposición ráster "
+"similar en una única tabla."
+
+#. Tag: para
+#: faq_raster.xml:221
+#, no-c-format
+msgid ""
+"It's a bit like if PostGIS would force you to store only full rectangular "
+"vector coverage without gaps or overlaps (a perfect rectangular topological "
+"layer). This is very practical in some applications but practice has shown "
+"that it is not realistic or desirable for most geographical coverages. "
+"Vector structures needs the flexibility to store discontinuous and non-"
+"rectangular coverages. We think it is a big advantage that raster structure "
+"should benefit as well."
+msgstr ""
+"Es un poco como si PostGIS nos forzase a almacenar sólo coberturas "
+"vectoriales completas sin vacíos o solapamientos (una capa rectangular "
+"topológicamente perfecta). Esto puede ser muy útil en algunas situaciones "
+"pero la práctica nos dice que no es realista ni deseable para la mayoría de "
+"las coberturas geográficas. Pensamos que es una gran ventaja de la que la "
+"estructura raster debería beneficiarse también."
+
+#. Tag: para
+#: faq_raster.xml:229
+#, no-c-format
+msgid ""
+"raster2pgsql load of large file fails with String of N bytes is too long for "
+"encoding conversion?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:233
+#, no-c-format
+msgid ""
+"raster2pgsql doesn't make any connections to your database when generating "
+"the file to load. If your database has set an explicit client encoding "
+"different from your database encoding, then when loading large raster files "
+"(above 30 MB in size), you may run into a <code>bytes is too long for "
+"encoding conversion</code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:235
+#, no-c-format
+msgid ""
+"This generally happens if for example you have your database in UTF8, but to "
+"support windows apps, you have the client encoding set to <code>WIN1252</"
+"code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:236
+#, no-c-format
+msgid ""
+"To work around this make sure the client encoding is the same as your "
+"database encoding during load. You can do this by explicitly setting the "
+"encoding in your load script. Example, if you are on windows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:237
+#, no-c-format
+msgid "set PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:238
+#, no-c-format
+msgid "If you are on Unix/Linux"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:239
+#, no-c-format
+msgid "export PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:240
+#, no-c-format
+msgid ""
+"Gory details of this issue are detailed in <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/2209\">http://trac.osgeo.org/postgis/ticket/2209</ulink>"
+msgstr ""
+
+#~ msgid ""
+#~ "We know for sure the following windows binaries have PostGIS Raster built "
+#~ "in."
+#~ msgstr ""
+#~ "Sabemos con certeza que los siguientes ejecutables Windows incluyen "
+#~ "PostGIS Raster"
diff --git a/doc/po/es/installation.xml.po b/doc/po/es/installation.xml.po
new file mode 100644
index 0000000..bdad97c
--- /dev/null
+++ b/doc/po/es/installation.xml.po
@@ -0,0 +1,3927 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# pvernier <admin at datamadre.com>, 2013
+# David Martinez Morata, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-17 11:52+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: installation.xml:3
+#, fuzzy, no-c-format
+msgid "PostGIS Installation"
+msgstr "Instalación"
+
+#. Tag: para
+#: installation.xml:5
+#, no-c-format
+msgid "This chapter details the steps required to install PostGIS."
+msgstr ""
+"En este capítulo se detallan los pasos necesarios para instalar PostGIS ."
+
+#. Tag: title
+#: installation.xml:10
+#, no-c-format
+msgid "Short Version"
+msgstr "Versión corta"
+
+#. Tag: para
+#: installation.xml:11
+#, no-c-format
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:12
+#, fuzzy, no-c-format
+msgid ""
+"tar xvfz postgis-&last_release_version;.tar.gz\n"
+"cd postgis-&last_release_version;\n"
+"./configure\n"
+"make\n"
+"make install"
+msgstr ""
+"wget http://www.postgis.org/download/postgis-&last_release_version;.tar.gz\n"
+"tar -xvzf postgis-&last_release_version;.tar.gz"
+
+#. Tag: para
+#: installation.xml:13
+#, no-c-format
+msgid ""
+"Once postgis is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The raster support is currently optional, but installed by default. For "
+"enabling using the PostgreSQL 9.1+ extensions model raster is required. "
+"Using the extension enable process is preferred and more user-friendly. To "
+"spatially enable your database:"
+msgstr ""
+"El soporte raster es actualmente opcional, pero se instala por defecto . "
+"Para instalarlo se requiere el PostgreSQL 9.1 + modelo de extensiones. si "
+"estas usando PostgreSQL 9.1+ ve a  <xref linkend="
+"\"make_install_postgis_extensions\"/>."
+
+#. Tag: programlisting
+#: installation.xml:15
+#, no-c-format
+msgid ""
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_topology;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_tiger_geocoder;\"\n"
+"-- if you built with sfcgal support --\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_sfcgal;\""
+msgstr ""
+
+#. Tag: para
+#: installation.xml:18
+#, no-c-format
+msgid ""
+"Please refer to <xref linkend=\"make_install_postgis_extensions\"/> for more "
+"details about querying installed/available extensions and upgrading "
+"extensions, or switching from a non-extension install to an extension "
+"install."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:20
+#, no-c-format
+msgid ""
+"For those running who decided for some reason not to compile with raster "
+"support, or just are old-fashioned, here are longer more painful "
+"instructions for you:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:21
+#, fuzzy, no-c-format
+msgid ""
+"All the .sql files once installed will be installed in share/contrib/postgis-"
+"&last_minor_version; folder of your PostgreSQL install"
+msgstr ""
+"Todos los archivos SQL, una vez instalados se encuentran en la carpeta share/"
+"contrib/postgis-&last_release_version; de su instalación PostgreSQL."
+
+#. Tag: programlisting
+#: installation.xml:24
+#, fuzzy, no-c-format
+msgid ""
+"createdb yourdatabase\n"
+"createlang plpgsql yourdatabase\n"
+"psql -d yourdatabase -f postgis.sql\n"
+"psql -d yourdatabase -f postgis_comments.sql\n"
+"psql -d yourdatabase -f spatial_ref_sys.sql\n"
+"psql -d yourdatabase -f rtpostgis.sql\n"
+"psql -d yourdatabase -f raster_comments.sql\n"
+"psql -d yourdatabase -f topology.sql\n"
+"psql -d yourdatabase -f topology_comments.sql\n"
+"--if you built with sfcgal support --\n"
+"psql -d yourdatabase -f sfcgal.sql\n"
+"psql -d yourdatabase -f sfcgal_comments.sql"
+msgstr ""
+"tar xvfz postgis-&last_release_version;.tar.gz\n"
+"cd postgis-&last_release_version;\n"
+"./configure --with-raster --with-topology --with-gui\n"
+"make\n"
+"make install\n"
+"createdb tubasededatos\n"
+"createlang plpgsql tubasededatos\n"
+"psql -d tubasededatos -f postgis.sql\n"
+"psql -d tubasededatos -f postgis_comments.sql\n"
+"psql -d tubasededatos -f spatial_ref_sys.sql\n"
+"psql -d tubasededatos -f rtpostgis.sql\n"
+"psql -d tubasededatos -f raster_comments.sql\n"
+"psql -d tubasededatos -f topology/topology.sql\n"
+"psql -d tubasededatos -f doc/topology_comments.sql"
+
+#. Tag: para
+#: installation.xml:26
+#, no-c-format
+msgid ""
+"The rest of this chapter goes into detail each of the above installation "
+"steps."
+msgstr ""
+"El resto del capitulo entra en los detalles de cada uno de los pasos de "
+"instalación anteriores."
+
+#. Tag: title
+#: installation.xml:33
+#, fuzzy, no-c-format
+msgid "Install Requirements"
+msgstr "Requisitos"
+
+#. Tag: para
+#: installation.xml:35
+#, no-c-format
+msgid "PostGIS has the following requirements for building and usage:"
+msgstr "PostGIS tiene los siguientes requisitos para compilarlo y usarlo:"
+
+#. Tag: emphasis
+#: installation.xml:40
+#, no-c-format
+msgid "Required"
+msgstr "Requerido"
+
+#. Tag: para
+#: installation.xml:45
+#, no-c-format
+msgid ""
+"PostgreSQL &min_postgres_version; or higher. A complete installation of "
+"PostgreSQL (including server headers) is required. PostgreSQL is available "
+"from <ulink url=\"http://www.postgresql.org\"> http://www.postgresql.org </"
+"ulink> ."
+msgstr ""
+"PostgreSQL &min_postgres_version; o superior.  Una instalación completa de "
+"PostgreSQL (incluyendo las cabeceras del servidor) es necesaria. PostgreSQL "
+"esta disponible en <ulink url=\"http://www.postgresql.org\"> http://www."
+"postgresql.org </ulink> ."
+
+#. Tag: para
+#: installation.xml:54
+#, no-c-format
+msgid ""
+"For a full PostgreSQL / PostGIS support matrix and PostGIS/GEOS support "
+"matrix refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiPostgreSQLPostGIS\">http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiPostgreSQLPostGIS</ulink>"
+msgstr ""
+"Para conocer las compatibilidades entre versiones de PostgreSQL/PostGIS y "
+"PostGIS/GEOS puede ver una matriz de compatibilidades en <ulink url=\"http://"
+"trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS\">http://trac.osgeo."
+"org/postgis/wiki/UsersWikiPostgreSQLPostGIS</ulink>"
+
+#. Tag: para
+#: installation.xml:60
+#, no-c-format
+msgid ""
+"GNU C compiler (<filename>gcc</filename>). Some other ANSI C compilers can "
+"be used to compile PostGIS, but we find far fewer problems when compiling "
+"with <filename>gcc</filename>."
+msgstr ""
+"compilador GNU C (<filename>gcc</filename>). Otros compiladores ANSI C "
+"pueden utilizarse para compilar PostGIS, pero encontraremos menos problemas "
+"al compilar con <filename>gcc</filename>."
+
+#. Tag: para
+#: installation.xml:68
+#, no-c-format
+msgid ""
+"GNU Make (<filename>gmake</filename> or <filename>make</filename>). For many "
+"systems, GNU <filename>make</filename> is the default version of make. Check "
+"the version by invoking <filename>make -v</filename>. Other versions of "
+"<filename>make</filename> may not process the PostGIS <filename>Makefile</"
+"filename> properly."
+msgstr ""
+"GNU Make (<filename>gmake</filename> or <filename>make</filename>). Para "
+"muchos sistemas , GNU <filename>make</filename> es la versión por defecto de "
+"make. Para verificar la versión de make podemos ejecutar el siguiente "
+"comando <filename>make -v</filename>. Otras versiones de <filename>make</"
+"filename> pueden no procesar el fichero PostGIS <filename>Makefile</"
+"filename> de forma correcta."
+
+#. Tag: para
+#: installation.xml:78
+#, no-c-format
+msgid ""
+"Proj4 reprojection library, version 4.6.0 or greater. The Proj4 library is "
+"used to provide coordinate reprojection support within PostGIS. Proj4 is "
+"available for download from <ulink url=\"http://trac.osgeo.org/proj/\"> "
+"http://trac.osgeo.org/proj/ </ulink> ."
+msgstr ""
+"La librería de reproyección Proj4 , en su versión versión 4.6.0 o superior. "
+"La librería Proj4 es utilizada para dar soporte a la reproyección de "
+"coordenadas en PostGIS. Proj4 esta disponible para descargar en <ulink url="
+"\"http://trac.osgeo.org/proj/\"> http://trac.osgeo.org/proj/ </ulink> ."
+
+#. Tag: para
+#: installation.xml:90
+#, no-c-format
+msgid ""
+"GEOS geometry library, version 3.3 or greater, but GEOS 3.4+ is recommended "
+"to take full advantage of all the new functions and features. Without GEOS "
+"3.4, you will be missing some major enhancements such as ST_Triangles and "
+"long-running function interruption, and improvements to geometry validation "
+"and making geometries valid such as ST_ValidDetail and ST_MakeValid. GEOS "
+"3.3.2+ is also required for topology support. GEOS is available for download "
+"from <ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/ "
+"</ulink> and 3.4+ is backward-compatible with older versions so fairly safe "
+"to upgrade."
+msgstr ""
+"Librería de geometrías GEOS, versión 3.3 o superior, pero GEOS 3.4+ esta "
+"recomendada para obtener todas las ventajas de nuevas características y "
+"funciones. Sin GEOS 3.4, te estarás perdiendo algunas mejoras importantes "
+"como ST_Triangles  o la interrupción de de funciones de ejecución larga, y "
+"algunas mejoras de la validación de geometrías y conversión  a geometrías "
+"validas como ST_ValidDetail y ST_MakeValid. GEOS 3.3.2+ también es necesaria "
+"para dar soporte a las funciones de topología. GEOS esta disponible para su "
+"descarga en <ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo."
+"org/geos/ </ulink> y 3.4+ es compatible con versiones anteriores, así que es "
+"bastante segura la actualización."
+
+#. Tag: para
+#: installation.xml:100
+#, no-c-format
+msgid ""
+"LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports "
+"functions (ST_GeomFromGML and ST_GeomFromKML). LibXML2 is available for "
+"download from <ulink url=\"http://xmlsoft.org/downloads.html\">http://"
+"xmlsoft.org/downloads.html</ulink>."
+msgstr ""
+"LibXML2, versión 2.5.x o superior. LibXML2 se usa actualmente en alguna "
+"funciones para importar (ST_GeomFromGML y ST_GeomFromKML). LibXML2 esta "
+"disponible para su descarga en <ulink url=\"http://xmlsoft.org/downloads.html"
+"\">http://xmlsoft.org/downloads.html</ulink>."
+
+#. Tag: para
+#: installation.xml:107
+#, fuzzy, no-c-format
+msgid ""
+"JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON "
+"via the function ST_GeomFromGeoJson. JSON-C is available for download from "
+"<ulink url=\"https://github.com/json-c/json-c/releases\">https://github.com/"
+"json-c/json-c/releases/</ulink>."
+msgstr ""
+"JSON-C, versión 0.9 o superior. JSON-C se utiliza actualmente para importar "
+"ficheros en formato GeoJSON vía la función ST_GeomFromGeoJson. JSON-C esta "
+"disponible para su descarga en <ulink url=\"http://oss.metaparadigm.com/json-"
+"c/\">http://oss.metaparadigm.com/json-c/</ulink>."
+
+#. Tag: para
+#: installation.xml:115
+#, fuzzy, no-c-format
+msgid ""
+"GDAL, version 1.8 or higher (1.9 or higher is strongly recommended since "
+"some things will not work well or behavior differently with lower versions). "
+"This is required for raster support and to be able to install with "
+"<code>CREATE EXTENSION postgis</code> so highly recommended for those "
+"running 9.1+. <ulink url=\"http://trac.osgeo.org/gdal/wiki/DownloadSource"
+"\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
+msgstr ""
+"GDAL, version 1.8 o superior (1.9 o superior es fuertemente recomendada ya "
+"que algunas cosas no funcionaran bien o pueden tener un comportamiento "
+"diferente entre versiones). Esta librería es necesaria para dar soporte a "
+"las funciones raster. <ulink url=\"http://trac.osgeo.org/gdal/wiki/"
+"DownloadSource\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
+
+#. Tag: emphasis
+#: installation.xml:123
+#, no-c-format
+msgid "Optional"
+msgstr "Opcional"
+
+#. Tag: para
+#: installation.xml:128
+#, no-c-format
+msgid ""
+"GDAL (pseudo optional) only if you don't want raster and don't care about "
+"installing with <code>CREATE EXTENSION postgis</code> can you leave it out. "
+"Keep in mind other extensions may have a requires postgis extension which "
+"will prevent you from installing them unless you install postgis as an "
+"extension. So it is highly recommended you compile with GDAL support."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:134
+#, no-c-format
+msgid ""
+"GTK (requires GTK+2.0, 2.8+) to compile the shp2pgsql-gui shape file loader. "
+"<ulink url=\"http://www.gtk.org/\"> http://www.gtk.org/ </ulink> ."
+msgstr ""
+"GTK (GTK+2.0, 2.8+ requerida) para compilar el cargador de shapefiles "
+"shp2pgsql-gui. <ulink url=\"http://www.gtk.org/\"> http://www.gtk.org/ </"
+"ulink> ."
+
+#. Tag: para
+#: installation.xml:144
+#, no-c-format
+msgid ""
+"SFCGAL, version 1.0 (or higher) could be used to provide additional 2D and "
+"3D advanced analysis functions to PostGIS cf <xref linkend=\"reference_sfcgal"
+"\"/>. And also allow to use SFCGAL rather than GEOS for some 2D functions "
+"provided by both backends (like ST_Intersection or ST_Area, for instance). A "
+"PostgreSQL configuration variable <code>postgis.backend</code> allow end "
+"user to control which backend he want to use if SFCGAL is installed (GEOS by "
+"default). Nota: SFCGAL 1.0 require at least CGAL 4.1 and Boost 1.46 (cf: "
+"<ulink url=\"http://oslandia.github.io/SFCGAL/installation.html\">http://"
+"oslandia.github.io/SFCGAL/installation.html</ulink>) <ulink url=\"https://"
+"github.com/Oslandia/SFCGAL\">https://github.com/Oslandia/SFCGAL</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:152
+#, no-c-format
+msgid ""
+"In order to build the <xref linkend=\"Address_Standardizer\"/> you will also "
+"need PCRE <ulink url=\"http://www.pcre.org\">http://www.pcre.org</ulink> "
+"(which generally is already installed on nix systems). <code>Regex::"
+"Assemble</code> perl CPAN package is only needed if you want to rebuild the "
+"data encoded in <filename>parseaddress-stcities.h</filename>. <xref linkend="
+"\"Address_Standardizer\"/> will automatically be built if it detects a PCRE "
+"library, or you pass in a valid <varname>--with-pcre-dir=/path/to/pcre</"
+"varname> during configure."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:159
+#, no-c-format
+msgid ""
+"CUnit (<filename>CUnit</filename>). This is needed for regression testing. "
+"<ulink url=\"http://cunit.sourceforge.net/\">http://cunit.sourceforge.net/</"
+"ulink>"
+msgstr ""
+"CUnit (<filename>CUnit</filename>). Se necesita para hacer test de "
+"regresión. <ulink url=\"http://cunit.sourceforge.net/\">http://cunit."
+"sourceforge.net/</ulink>"
+
+#. Tag: para
+#: installation.xml:165
+#, no-c-format
+msgid ""
+"Apache Ant (<filename>ant</filename>) is required for building any of the "
+"drivers under the <filename>java</filename> directory. Ant is available from "
+"<ulink url=\"http://ant.apache.org\"> http://ant.apache.org </ulink> ."
+msgstr ""
+"Apache Ant (<filename>ant</filename>) se necesita para compilar cualquier "
+"driver que se encuentre en el directorio <filename>java</filename>. Ant esta "
+"disponible en <ulink url=\"http://ant.apache.org\"> http://ant.apache.org </"
+"ulink> ."
+
+#. Tag: para
+#: installation.xml:177
+#, no-c-format
+msgid ""
+"DocBook (<filename>xsltproc</filename>) is required for building the "
+"documentation. Docbook is available from <ulink url=\"http://www.docbook.org/"
+"\"> http://www.docbook.org/ </ulink> ."
+msgstr ""
+"DocBook (<filename>xsltproc</filename>) es necesario para compilar la "
+"documentación. Docbook esta disponible en <ulink url=\"http://www.docbook."
+"org/\"> http://www.docbook.org/ </ulink> ."
+
+#. Tag: para
+#: installation.xml:188
+#, no-c-format
+msgid ""
+"DBLatex (<filename>dblatex</filename>) is required for building the "
+"documentation in PDF format. DBLatex is available from <ulink url=\"http://"
+"dblatex.sourceforge.net/\"> http://dblatex.sourceforge.net/ </ulink> ."
+msgstr ""
+"DBLatex (<filename>dblatex</filename>) necesario para construir la "
+"documentación en formato PDF. DBLatex esta disponible en <ulink url=\"http://"
+"dblatex.sourceforge.net/\"> http://dblatex.sourceforge.net/ </ulink> ."
+
+#. Tag: para
+#: installation.xml:199
+#, no-c-format
+msgid ""
+"ImageMagick (<filename>convert</filename>) is required to generate the "
+"images used in the documentation. ImageMagick is available from <ulink url="
+"\"http://www.imagemagick.org/\"> http://www.imagemagick.org/ </ulink> ."
+msgstr ""
+"ImageMagick (<filename>convert</filename>) es necesario para generar las "
+"imágenes empleadas en la documentación. ImageMagick esta disponible en<ulink "
+"url=\"http://www.imagemagick.org/\"> http://www.imagemagick.org/ </ulink> ."
+
+#. Tag: title
+#: installation.xml:212
+#, no-c-format
+msgid "Getting the Source"
+msgstr "Obteniendo el código fuente"
+
+#. Tag: para
+#: installation.xml:214
+#, fuzzy, no-c-format
+msgid ""
+"Retrieve the PostGIS source archive from the downloads website <ulink url="
+"\"&postgis_download_url;\"> &postgis_download_url; </ulink>"
+msgstr ""
+"El código fuente se puede obtener del sitio de descargas de PostGIS <ulink "
+"url=\"http://www.postgis.org/download/postgis-&last_release_version;.tar.gz"
+"\"> http://www.postgis.org/download/postgis-&last_release_version;.tar.gz </"
+"ulink>"
+
+#. Tag: programlisting
+#: installation.xml:221
+#, fuzzy, no-c-format
+msgid ""
+"wget &postgis_download_url;\n"
+"tar -xvzf postgis-&last_release_version;.tar.gz"
+msgstr "tar xvfz postgis-&last_release_version;.tar.gz"
+
+#. Tag: para
+#: installation.xml:223
+#, no-c-format
+msgid ""
+"This will create a directory called <varname>postgis-&last_release_version;</"
+"varname> in the current working directory."
+msgstr ""
+"Esto creara un directorio llamado <varname>postgis-&last_release_version;</"
+"varname> en el directorio de trabajo actual."
+
+#. Tag: para
+#: installation.xml:229
+#, no-c-format
+msgid ""
+"Alternatively, checkout the source from the <ulink url=\"http://subversion."
+"apache.org/\"> svn </ulink> repository <ulink url=\"http://svn.osgeo.org/"
+"postgis/trunk/\"> http://svn.osgeo.org/postgis/trunk/ </ulink> ."
+msgstr ""
+"De forma alternativa se puede obtener el código fuente del repositorio "
+"<ulink url=\"http://subversion.apache.org/\"> svn </ulink>  <ulink url="
+"\"http://svn.osgeo.org/postgis/trunk/\"> http://svn.osgeo.org/postgis/trunk/ "
+"</ulink> ."
+
+#. Tag: programlisting
+#: installation.xml:241
+#, no-c-format
+msgid ""
+"svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-"
+"&last_release_version;"
+msgstr ""
+"svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-"
+"&last_release_version;"
+
+#. Tag: para
+#: installation.xml:243
+#, no-c-format
+msgid ""
+"Change into the newly created <varname>postgis-&last_release_version;</"
+"varname> directory to continue the installation."
+msgstr ""
+"Vaya al nuevo directorio <varname>postgis-&last_release_version;</varname> "
+"creado para continuar con la instalación."
+
+#. Tag: title
+#: installation.xml:251
+#, no-c-format
+msgid "Compiling and Install from Source: Detailed"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:254
+#, no-c-format
+msgid ""
+"Many OS systems now include pre-built packages for PostgreSQL/PostGIS. In "
+"many cases compilation is only necessary if you want the most bleeding edge "
+"versions or you are a package maintainer."
+msgstr ""
+"Muchos Sistemas Operativos incluyen ya paquetes precompilados PostgreSQL/"
+"PostGIS. En la mayoría de casos no es necesario compilar salvo si quieres "
+"las ultimas versiones o eres alguien que hace mantenimiento de paquetes."
+
+#. Tag: para
+#: installation.xml:259
+#, no-c-format
+msgid ""
+"This section includes general compilation instructions, if you are compiling "
+"for Windows etc or another OS, you may find additional more detailed help at "
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiInstall\">PostGIS "
+"User contributed compile guides</ulink> and <ulink url=\"http://trac.osgeo."
+"org/postgis/wiki/DevWikiMain\">PostGIS Dev Wiki</ulink>."
+msgstr ""
+"Esta sección incluye las instrucciones generales de compilado, si estas "
+"compilando en Windows o otro Sistema Operativo, puedes encontrar información "
+"adicional detallada en <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiInstall\">PostGIS User contributed compile guides</ulink> y <ulink "
+"url=\"http://trac.osgeo.org/postgis/wiki/DevWikiMain\">PostGIS Dev Wiki</"
+"ulink>."
+
+#. Tag: para
+#: installation.xml:261
+#, no-c-format
+msgid ""
+"Pre-Built Packages for various OS are listed in <ulink url=\"http://trac."
+"osgeo.org/postgis/wiki/UsersWikiPackages\">PostGIS Pre-built Packages</ulink>"
+msgstr ""
+"Algunos paquetes precompilados para varios Sistemas Operativos están en  "
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiPackages\">PostGIS "
+"Pre-built Packages</ulink>"
+
+#. Tag: para
+#: installation.xml:262
+#, no-c-format
+msgid ""
+"If you are a windows user, you can get stable builds via Stackbuilder or "
+"<ulink url=\"http://www.postgis.org/download/windows/\">PostGIS Windows "
+"download site</ulink> We also have <ulink url=\"http://www.postgis.org/"
+"download/windows/experimental.php\">very bleeding-edge windows experimental "
+"builds</ulink> that are built usually once or twice a week or whenever "
+"anything exciting happens. You can use these to experiment with the in "
+"progress releases of PostGIS"
+msgstr ""
+"Si eres usuario de Windows, puedes obtener versiones estables compiladas via "
+"Stackbuilder o <ulink url=\"http://www.postgis.org/download/windows/\"> "
+"sitio de descragas de PostGIS para Windows</ulink> También tenemos <ulink "
+"url=\"http://www.postgis.org/download/windows/experimental.php\">versiones "
+"experimentales para Windows </ulink> que son publicadas normalmente una o "
+"dos veces por semana o cuando algo interesante ocurre. Puedes utilizar estas "
+"para experimentar con las versiones de desarrollo de PostGIS"
+
+#. Tag: para
+#: installation.xml:267
+#, no-c-format
+msgid ""
+"The PostGIS module is an extension to the PostgreSQL backend server. As "
+"such, PostGIS &last_release_version; <emphasis>requires</emphasis> full "
+"PostgreSQL server headers access in order to compile. It can be built "
+"against PostgreSQL versions &min_postgres_version; or higher. Earlier "
+"versions of PostgreSQL are <emphasis>not</emphasis> supported."
+msgstr ""
+"El modulo PostGIS es una extensión del servidor PostgreSQL. Como tal, "
+"PostGIS &last_release_version; <emphasis>requiere</emphasis> PostgreSQL con "
+"acceso completo cabeceras del servidor con el fin de compilar. Puede ser "
+"compilado en PostgreSQL versiones &min_postgres_version;, o superior. Las "
+"versiones anteriores de PostgreSQL <emphasis>no</emphasis> son compatibles."
+
+#. Tag: para
+#: installation.xml:275
+#, no-c-format
+msgid ""
+"Refer to the PostgreSQL installation guides if you haven't already installed "
+"PostgreSQL. <ulink url=\"http://www.postgresql.org\"> http://www.postgresql."
+"org </ulink> ."
+msgstr ""
+"Si todavía no tienes instalado PostgreSQL puedes ir a la guía de instalación "
+"de PostgreSQL en <ulink url=\"http://www.postgresql.org\"> http://www."
+"postgresql.org </ulink> ."
+
+#. Tag: para
+#: installation.xml:285
+#, no-c-format
+msgid ""
+"For GEOS functionality, when you install PostgresSQL you may need to "
+"explicitly link PostgreSQL against the standard C++ library:"
+msgstr ""
+"Para tener compatibilidad con las funcionalidades GEOS, cuando instales "
+"PostgreSQL necesitar hacer un enlace explícito de PostgreSQL con la librería "
+"estándar C++:"
+
+#. Tag: programlisting
+#: installation.xml:290
+#, no-c-format
+msgid "LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE]"
+msgstr "LDFLAGS=-lstdc++ ./configure [PON TUS OPCIONES AQUI]"
+
+#. Tag: para
+#: installation.xml:292
+#, no-c-format
+msgid ""
+"This is a workaround for bogus C++ exceptions interaction with older "
+"development tools. If you experience weird problems (backend unexpectedly "
+"closed or similar things) try this trick. This will require recompiling your "
+"PostgreSQL from scratch, of course."
+msgstr ""
+"Esta es una falsa solución para excepciones de interacción de C++ con "
+"herramientas de desarrollo antiguas. Si experimentas problemas extraños "
+"(backend cerrado inesperadamente o cosas similares) prueba este truco. Para "
+"ello será necesario volver a compilar PostgreSQL desde cero, por supuesto."
+
+#. Tag: para
+#: installation.xml:300
+#, no-c-format
+msgid ""
+"The following steps outline the configuration and compilation of the PostGIS "
+"source. They are written for Linux users and will not work on Windows or Mac."
+msgstr ""
+"Los siguientes pasos describen la configuración y compilación del código "
+"fuente de PostGIS. Están escritas para usuarios Linux y no funcionaran con "
+"Windows o  Mac."
+
+#. Tag: title
+#: installation.xml:307
+#, no-c-format
+msgid "Configuration"
+msgstr "Configuración"
+
+#. Tag: para
+#: installation.xml:309
+#, no-c-format
+msgid ""
+"As with most linux installations, the first step is to generate the Makefile "
+"that will be used to build the source code. This is done by running the "
+"shell script"
+msgstr ""
+"Como en la gran mayoría de instalaciones Linux, el primer paso es generar el "
+"Makefile que se utilizara para compilar el código fuente. Esto se hace "
+"ejecutando el script de shell."
+
+#. Tag: para
+#: installation.xml:319
+#, no-c-format
+msgid ""
+"With no additional parameters, this command will attempt to automatically "
+"locate the required components and libraries needed to build the PostGIS "
+"source code on your system. Although this is the most common usage of "
+"<command>./configure</command>, the script accepts several parameters for "
+"those who have the required libraries and programs in non-standard locations."
+msgstr ""
+"Sin parámetros adicionales, este comando intentara localizar los componentes "
+"y librerías necesarios para construir el código fuente PostGIS de forma "
+"automática en tu sistema. Aunque este es el uso mas común de <command>./"
+"configure</command>, el script acepta varios parámetros para aquellos que "
+"han instalado las librerías y programas en lugares no standard."
+
+#. Tag: para
+#: installation.xml:328
+#, no-c-format
+msgid ""
+"The following list shows only the most commonly used parameters. For a "
+"complete list, use the <command>--help</command> or <command>--help=short</"
+"command> parameters."
+msgstr ""
+"La siguiente lista muestra los parámetros utilizados mas comunes. Para "
+"obtener una lista completa, puedes utilizar los parámetros <command>--help</"
+"command> o <command>--help=short</command>."
+
+#. Tag: para
+#: installation.xml:338
+#, no-c-format
+msgid ""
+"This is the location the PostGIS libraries and SQL scripts will be installed "
+"to. By default, this location is the same as the detected PostgreSQL "
+"installation."
+msgstr ""
+"Esta es la localización donde se instalaran las librerías PostGIS y los "
+"scripts SQL. Por defecto, esta localización es la misma que la detectada "
+"para la instalación PostgreSQL."
+
+#. Tag: para
+#: installation.xml:345
+#, no-c-format
+msgid ""
+"This parameter is currently broken, as the package will only install into "
+"the PostgreSQL installation directory. Visit <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/635\"> http://trac.osgeo.org/postgis/ticket/635 </ulink> "
+"to track this bug."
+msgstr ""
+"Este parámetro está roto actualmente, ya que el paquete sólo se instalará en "
+"el directorio de instalación de PostgreSQL. Para seguir avence de este bug "
+"visita <ulink url=\"http://trac.osgeo.org/postgis/ticket/635\"> http://trac."
+"osgeo.org/postgis/ticket/635 </ulink>"
+
+#. Tag: para
+#: installation.xml:360
+#, no-c-format
+msgid ""
+"PostgreSQL provides a utility called <command>pg_config</command> to enable "
+"extensions like PostGIS to locate the PostgreSQL installation directory. Use "
+"this parameter (<command>--with-pgconfig=/path/to/pg_config</command>) to "
+"manually specify a particular PostgreSQL installation that PostGIS will "
+"build against."
+msgstr ""
+"PostgreSQL tiene una herramienta llamada <command>pg_config</command> para "
+"activar extensiones como PostGIS o para localizar el directorio de "
+"instalación de PostgreSQL. Utiliza este parámetro (<command>--with-pgconfig=/"
+"path/to/pg_config</command>)  para especificar una instalación personalizada "
+"de PostgreSQL de forma manual que PostGIS utilizara para compilar. "
+
+#. Tag: para
+#: installation.xml:374
+#, no-c-format
+msgid ""
+"GDAL, a required library, provides functionality needed for raster support "
+"<command>gdal-config</command> to enable software installations to locate "
+"the GDAL installation directory. Use this parameter (<command>--with-"
+"gdalconfig=/path/to/gdal-config</command>) to manually specify a particular "
+"GDAL installation that PostGIS will build against."
+msgstr ""
+"GDAL, una biblioteca necesaria, proporciona la funcionalidad necesaria para "
+"el soporte de raster <command> gdal-config </command> para activar la "
+"instalación de software para localizar el directorio de instalación de GDAL. "
+"Utilice este parámetro (<command> - with-gdalconfig = / ruta /a/ gdal config-"
+"</command>) para especificar manualmente una instalación de GDAL "
+"personalizada que PostGIS utilizara para compilar."
+
+#. Tag: para
+#: installation.xml:388
+#, no-c-format
+msgid ""
+"GEOS, a required geometry library, provides a utility called <command>geos-"
+"config</command> to enable software installations to locate the GEOS "
+"installation directory. Use this parameter (<command>--with-geosconfig=/path/"
+"to/geos-config</command>) to manually specify a particular GEOS installation "
+"that PostGIS will build against."
+msgstr ""
+"GEOS, libreria de geometrías requerida, tiene una utilidad llamada "
+"<command>geos-config</command> para activar la localización del directorio "
+"de instalación del software GEOS. Utiliza este parametro (<command>--with-"
+"geosconfig=/path/to/geos-config</command>) para especificar de forma manual "
+"una instalación personalizada de GEOS que PostGIS puede utilizar para "
+"compilar."
+
+#. Tag: para
+#: installation.xml:402
+#, no-c-format
+msgid ""
+"LibXML is the library required for doing GeomFromKML/GML processes. It "
+"normally is found if you have libxml installed, but if not or you want a "
+"specific version used, you'll need to point PostGIS at a specific "
+"<filename>xml2-config</filename> confi file to enable software installations "
+"to locate the LibXML installation directory. Use this parameter (<command>>--"
+"with-xml2config=/path/to/xml2-config</command>) to manually specify a "
+"particular LibXML installation that PostGIS will build against."
+msgstr ""
+"LibXML es una libreria necesaria para procesar GeomFromKML/GML. Normalmente "
+"encontrara si tienes instalada la libreria libxml, pero si no esta "
+"instalada, o quieres usar una versión especifica, necesitaras que PostGIS "
+"apunte a un fichero de configuración particular <filename>xml2-config</"
+"filename> para localizar un directorio de instalación LibXML para activar la "
+"instalación del Software. Utiliza el siguiente parámetro (<command>>--with-"
+"xml2config=/path/to/xml2-config</command>) para especificar de forma manual "
+"una instalación personalizada de LibXML con la que compilar PostGIS."
+
+#. Tag: para
+#: installation.xml:420
+#, no-c-format
+msgid ""
+"Proj4 is a reprojection library required by PostGIS. Use this parameter "
+"(<command>--with-projdir=/path/to/projdir</command>) to manually specify a "
+"particular Proj4 installation directory that PostGIS will build against."
+msgstr ""
+"Proj4 es una libreria de reproyecciones necesaria de PostGIS. Utiliza el "
+"siguiente parametro (<command>--with-projdir=/path/to/projdir</command>) "
+"para definir manualmente una instalación personalizada de Proj4 para "
+"compilar PostGIS."
+
+#. Tag: para
+#: installation.xml:432
+#, no-c-format
+msgid "Directory where iconv is installed."
+msgstr "Directorio donde iconv esta instalado."
+
+#. Tag: para
+#: installation.xml:441
+#, no-c-format
+msgid ""
+"<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink> is an MIT-"
+"licensed JSON library required by PostGIS ST_GeomFromJSON support. Use this "
+"parameter (<command>--with-jsondir=/path/to/jsondir</command>) to manually "
+"specify a particular JSON-C installation directory that PostGIS will build "
+"against."
+msgstr ""
+"<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink>es una "
+"libreria con licencia MIT-licensed JSON necesaria para dar soporte a PostGIS "
+"ST_GeomFromJSON. Utiliza este parametro (<command>--with-jsondir=/path/to/"
+"jsondir</command>) para especificar de forma manual el directorio de "
+"instalación personalizado de instalación de JSON-C que PostGIS utilizara "
+"para compilar."
+
+#. Tag: para
+#: installation.xml:453
+#, fuzzy, no-c-format
+msgid ""
+"<ulink url=\"http://www.pcre.org/\">PCRE</ulink> is an BSD-licensed Perl "
+"Compatible Regular Expression library required by address_standardizer "
+"extension. Use this parameter (<command>--with-pcredir=/path/to/pcredir</"
+"command>) to manually specify a particular PCRE installation directory that "
+"PostGIS will build against."
+msgstr ""
+"<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink>es una "
+"libreria con licencia MIT-licensed JSON necesaria para dar soporte a PostGIS "
+"ST_GeomFromJSON. Utiliza este parametro (<command>--with-jsondir=/path/to/"
+"jsondir</command>) para especificar de forma manual el directorio de "
+"instalación personalizado de instalación de JSON-C que PostGIS utilizara "
+"para compilar."
+
+#. Tag: para
+#: installation.xml:465
+#, no-c-format
+msgid ""
+"Compile the data import GUI (requires GTK+2.0). This will create shp2pgsql-"
+"gui graphical interface to shp2pgsql."
+msgstr ""
+"Compilar la GUI de importar datos (necesita GTK+2.0). Esto creara una "
+"interfaz gráfica shp2pgsql-gui para el comando shp2pgsql."
+
+#. Tag: para
+#: installation.xml:474
+#, no-c-format
+msgid ""
+"Compile with raster support. This will build rtpostgis-"
+"&last_release_version; library and rtpostgis.sql file. This may not be "
+"required in final release as plan is to build in raster support by default."
+msgstr ""
+"Compilar con soporte para raster. Esto compilara la libreria rtpostgis-"
+"&last_release_version; y el fichero rtpostgis.sql. Esto puede no ser "
+"necesario en la versión final ya que el plan es dar soporte raster de forma "
+"predeterminada."
+
+#. Tag: para
+#: installation.xml:483
+#, no-c-format
+msgid ""
+"Compile with topology support. This will build the topology.sql file. There "
+"is no corresponding library as all logic needed for topology is in postgis-"
+"&last_release_version; library."
+msgstr ""
+"Compilar con soporte de topología. Esto creara el fichero topology.sql. No "
+"hay librerías dependientes ya que toda la lógica necesaria esta contenida en "
+"la librería postgis-&last_release_version;."
+
+#. Tag: para
+#: installation.xml:492
+#, no-c-format
+msgid ""
+"By default PostGIS will try to detect gettext support and compile with it, "
+"however if you run into incompatibility issues that cause breakage of "
+"loader, you can disable it entirely with this command. Refer to ticket "
+"<ulink url=\"http://trac.osgeo.org/postgis/ticket/748\">http://trac.osgeo."
+"org/postgis/ticket/748</ulink> for an example issue solved by configuring "
+"with this. NOTE: that you aren't missing much by turning this off. This is "
+"used for international help/label support for the GUI loader which is not "
+"yet documented and still experimental."
+msgstr ""
+"PostGIS intentara detectar soporte gettext y compilar con el por defecto, de "
+"todas formas si existen incompatibilidades que causan errores de carga, se "
+"puede desactivar por completo con este comando. Para ver un ejemplo de "
+"resolución de problemas configurando en gettext puedes ver el siguiente "
+"enlace <ulink url=\"http://trac.osgeo.org/postgis/ticket/748\">http://trac."
+"osgeo.org/postgis/ticket/748</ulink>. NOTA: No te pierdes mucho si "
+"desactivas esta opción. Se utiliza principalmente para soporte de ayuda/"
+"etiquetas internacionales en la GUI de carga, que actualmente no esta "
+"documentada y sigue siendo experimental."
+
+#. Tag: para
+#: installation.xml:503
+#, no-c-format
+msgid ""
+"By default PostGIS will not install with sfcgal support without this switch. "
+"<varname>PATH</varname> is an optional argument that allows to specify an "
+"alternate PATH to sfcgal-config."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:511
+#, no-c-format
+msgid ""
+"If you obtained PostGIS from the SVN <ulink url=\"http://svn.osgeo.org/"
+"postgis/trunk/\"> repository </ulink> , the first step is really to run the "
+"script"
+msgstr ""
+"Si has obtenido PostGIS desde el <ulink url=\"http://svn.osgeo.org/postgis/"
+"trunk/\"> repositorio </ulink> SVN, el primer paso es ejecutar el script"
+
+#. Tag: para
+#: installation.xml:523
+#, no-c-format
+msgid ""
+"This script will generate the <command>configure</command> script that in "
+"turn is used to customize the installation of PostGIS."
+msgstr ""
+"Este Script generara el script <command>configure</command> que a su vez se "
+"utiliza para personalizar la instalación de PostGIS."
+
+#. Tag: para
+#: installation.xml:528
+#, no-c-format
+msgid ""
+"If you instead obtained PostGIS as a tarball, running <command>./autogen.sh</"
+"command> is not necessary as <command>configure</command> has already been "
+"generated."
+msgstr ""
+"Si, por el contrario, as obtenido PostGIS como tarball, ejecutar <command>./"
+"autogen.sh</command> no es necesario ya que ya se ha generado "
+"<command>configure</command>."
+
+#. Tag: title
+#: installation.xml:537
+#, no-c-format
+msgid "Building"
+msgstr "Compilando"
+
+#. Tag: para
+#: installation.xml:539
+#, no-c-format
+msgid ""
+"Once the Makefile has been generated, building PostGIS is as simple as "
+"running"
+msgstr ""
+"Una vez generado el Makefile, compilar PostGIS es tan simple como ejecutar"
+
+#. Tag: para
+#: installation.xml:548
+#, no-c-format
+msgid ""
+"The last line of the output should be \"<code>PostGIS was built "
+"successfully. Ready to install.</code>\""
+msgstr ""
+"La ultima linea de salida del terminal debe ser \"<code>PostGIS copilado con "
+"éxito. Listo para instalar.</code>\""
+
+#. Tag: para
+#: installation.xml:553
+#, no-c-format
+msgid ""
+"As of PostGIS v1.4.0, all the functions have comments generated from the "
+"documentation. If you wish to install these comments into your spatial "
+"databases later, run the command which requires docbook. The "
+"postgis_comments.sql and other package comments files raster_comments.sql, "
+"topology_comments.sql are also packaged in the tar.gz distribution in the "
+"doc folder so no need to make comments if installing from the tar ball."
+msgstr ""
+"Como en PostGIS v1.4.0, todas las funciones tienen comentarios generados a "
+"partir de la documentación. Si quieres instalar estos comentarios en tu base "
+"de datos espacial luego, ejecuta el comando que requiere docbook. Los "
+"ficheros de comentarios postgis_comments.sql, raster_comments.sql, "
+"topology_comments.sql también están incluidos en la distribución tar.gz en "
+"la carpeta doc, así que si instalas desde el fichero tar no necesitas "
+"compilar los comentarios"
+
+#. Tag: command
+#: installation.xml:563 installation.xml:587
+#, no-c-format
+msgid "make comments"
+msgstr "make comments"
+
+#. Tag: para
+#: installation.xml:566
+#, no-c-format
+msgid ""
+"Introduced in PostGIS 2.0. This generates html cheat sheets suitable for "
+"quick reference or for student handouts. This requires xsltproc to build and "
+"will generate 4 files in doc folder <filename>topology_cheatsheet.html</"
+"filename>, <filename>tiger_geocoder_cheatsheet.html</filename>, "
+"<filename>raster_cheatsheet.html</filename>, <filename>postgis_cheatsheet."
+"html</filename>"
+msgstr ""
+"Introducido en la version PostGIS 2.0. Esto genera hojas de referencia html "
+"para una referencia rápida o para los folletos. Esto requiere xsltproc para "
+"compilar y generará 4 ficheros en la carpeta doc "
+"<filename>topology_cheatsheet.html</filename>, "
+"<filename>tiger_geocoder_cheatsheet.html</filename>, "
+"<filename>raster_cheatsheet.html</filename>, <filename>postgis_cheatsheet."
+"html</filename>"
+
+#. Tag: para
+#: installation.xml:571
+#, no-c-format
+msgid ""
+"You can download some pre-built ones available in html and pdf from <ulink "
+"url=\"http://www.postgis.us/study_guides\">PostGIS / PostgreSQL Study "
+"Guides</ulink>"
+msgstr ""
+"Puedes descargar algunos ya compilados en formato html o pdf en <ulink url="
+"\"http://www.postgis.us/study_guides\"> Guias de Estudio PostGIS / "
+"PostgreSQL</ulink>"
+
+#. Tag: command
+#: installation.xml:574
+#, no-c-format
+msgid "make cheatsheets"
+msgstr "make cheatsheets"
+
+#. Tag: title
+#: installation.xml:579
+#, no-c-format
+msgid "Building PostGIS Extensions and Deploying them"
+msgstr "Compilando e Instalando Extensiones de PostGIS"
+
+#. Tag: para
+#: installation.xml:581
+#, no-c-format
+msgid ""
+"The PostGIS extensions are built and installed automatically if you are "
+"using PostgreSQL 9.1+."
+msgstr ""
+"Las extensiones de PosGIS son compiladas e instaladas de forma automatica si "
+"estas utilizando la version 9.1+ de PostgreSQL"
+
+#. Tag: para
+#: installation.xml:584
+#, no-c-format
+msgid ""
+"If you are building from source repository, you need to build the function "
+"descriptions first. These get built if you have docbook installed. You can "
+"also manually build with the statement:"
+msgstr ""
+"Si estas compilando desde el repositorio de código fuente, necesitas "
+"compilar primero la función descriptions. Si tienes instaldo docbook ya esta "
+"compilado. También puedes compilarla manualmente con la sentencia:"
+
+#. Tag: para
+#: installation.xml:589
+#, no-c-format
+msgid ""
+"Building the comments is not necessary if you are building from a release "
+"tar ball since these are packaged pre-built with the tar ball already."
+msgstr ""
+"Compilar los comentarios no es necesario si estas compilando desde un tar ya "
+"que están en el paquete pre-compilados con el tar."
+
+#. Tag: para
+#: installation.xml:590
+#, no-c-format
+msgid ""
+"If you are building against PostgreSQL 9.1, the extensions should "
+"automatically build as part of the make install process. You can if needed "
+"build from the extensions folders or copy files if you need them on a "
+"different server."
+msgstr ""
+"Si estas compilando para PostgreSQL 9.1, la extension debería compilarse de "
+"forma automática como parte del proceso del comando make install. Si lo "
+"necesitas, puedes compilar la extensión desde las carpetas de la extensión o "
+"copiar los ficheros en un servidor diferente."
+
+#. Tag: programlisting
+#: installation.xml:592
+#, no-c-format
+msgid ""
+"cd extensions\n"
+"cd postgis\n"
+"make clean\n"
+"make \n"
+"make install\n"
+"cd ..\n"
+"cd postgis_topology\n"
+"make clean\n"
+"make \n"
+"make install"
+msgstr ""
+"cd extensions\n"
+"cd postgis\n"
+"make clean\n"
+"make \n"
+"make install\n"
+"cd ..\n"
+"cd postgis_topology\n"
+"make clean\n"
+"make \n"
+"make install"
+
+#. Tag: para
+#: installation.xml:593
+#, no-c-format
+msgid ""
+"The extension files will always be the same for the same version of PostGIS "
+"regardless of OS, so it is fine to copy over the extension files from one OS "
+"to another as long as you have the PostGIS binaries already installed on "
+"your servers."
+msgstr ""
+"Los ficheros de la extension serán siempre los mismos para la misma versión "
+"de PostgreSQL independientemente del Sistema Operativo, así que se pueden "
+"copiar los ficheros de la extensión de un Sistema Operativo a otro si ya "
+"tienes los binarios de PostGIS ya instalados en tus servidores."
+
+#. Tag: para
+#: installation.xml:595
+#, no-c-format
+msgid ""
+"If you want to install the extensions manually on a separate server "
+"different from your development, You need to copy the following files from "
+"the extensions folder into the <filename>PostgreSQL / share / extension</"
+"filename> folder of your PostgreSQL install as well as the needed binaries "
+"for regular PostGIS if you don't have them already on the server."
+msgstr ""
+"Si quieres instalar la extensión de forma manual en un servidor separado de "
+"tu servidor de desarrollo, necesitas copiar los siguientes archivos de la "
+"carpeta de la extensión en la carpeta <filename>PostgreSQL / share / "
+"extension</filename> de la instalación de PostgreSQL y los binarios normales "
+"para PostGIS si no los tienes instalados en el servidor."
+
+#. Tag: para
+#: installation.xml:602
+#, no-c-format
+msgid ""
+"These are the control files that denote information such as the version of "
+"the extension to install if not specified. <filename>postgis.control, "
+"postgis_topology.control</filename>."
+msgstr ""
+"Estos son los ficheros de control que contienen información como la versión "
+"de la extensión a instalar si no lo has especificado. <filename>postgis."
+"control, postgis_topology.control</filename>."
+
+#. Tag: para
+#: installation.xml:608
+#, no-c-format
+msgid ""
+"All the files in the /sql folder of each extension. Note that these need to "
+"be copied to the root of the PostgreSQL share/extension folder "
+"<filename>extensions/postgis/sql/*.sql</filename>, <filename>extensions/"
+"postgis_topology/sql/*.sql</filename>"
+msgstr ""
+"Todos los ficheros en la carpeta /sql de la extension. Estos ficheros deben "
+"ser copiados en la raiz de PostgreSQL en la carpeta share/extension "
+"<filename>extensions/postgis/sql/*.sql</filename>, <filename>extensions/"
+"postgis_topology/sql/*.sql</filename>"
+
+#. Tag: para
+#: installation.xml:614
+#, no-c-format
+msgid ""
+"Once you do that, you should see <varname>postgis</varname>, "
+"<varname>postgis_topology</varname> as available extensions in PgAdmin -> "
+"extensions."
+msgstr ""
+"Una vez hecho esto deberías ver <varname>postgis</varname>, "
+"<varname>postgis_topology</varname> como extensiones disponibles en PgAdmin -"
+"> extensiones."
+
+#. Tag: para
+#: installation.xml:615
+#, no-c-format
+msgid ""
+"If you are using psql, you can verify that the extensions are installed by "
+"running this query:"
+msgstr ""
+"Si estas utilizando psql, puedes verificar que las extensiones están "
+"instaladas ejecutando la siguiente sentencia:"
+
+#. Tag: programlisting
+#: installation.xml:616
+#, no-c-format
+msgid ""
+"SELECT name, default_version,installed_version \n"
+"FROM pg_available_extensions WHERE name LIKE 'postgis%' ;\n"
+"      name       | default_version | installed_version\n"
+"-----------------+-----------------+-------------------\n"
+"postgis          | &last_release_version;     | &last_release_version;\n"
+"postgis_topology | &last_release_version;      |"
+msgstr ""
+"SELECT name, default_version,installed_version \n"
+"FROM pg_available_extensions WHERE name LIKE 'postgis%' ;\n"
+"      name       | default_version | installed_version\n"
+"-----------------+-----------------+-------------------\n"
+"postgis          | &last_release_version;     | &last_release_version;\n"
+"postgis_topology | &last_release_version;      |"
+
+#. Tag: para
+#: installation.xml:618
+#, no-c-format
+msgid ""
+"If you have the extension installed in the database you are querying, you'll "
+"see mention in the <varname>installed_version</varname> column. If you get "
+"no records back, it means you don't have postgis extensions installed on the "
+"server at all. PgAdmin III 1.14+ will also provide this information in the "
+"<varname>extensions</varname> section of the database browser tree and will "
+"even allow upgrade or uninstall by right-clicking."
+msgstr ""
+"Si tienes instalada una extension en la base de datos que estas consultando, "
+"deberías verla mencionada la columna <varname>installed_version</varname>. "
+"Si la consulta no devuelve ningún registro, significa que no tienes la "
+"extension PostGIS instalada en el servidor. PgAdmin III 1.14+ muestra esta "
+"información en la sección <varname>extensiones</varname> en el navegador de "
+"bases de datos y permite actualizar o instalar haciendo click derecho."
+
+#. Tag: para
+#: installation.xml:622
+#, no-c-format
+msgid ""
+"If you have the extensions available, you can install postgis extension in "
+"your database of choice by either using pgAdmin extension interface or "
+"running these sql commands:"
+msgstr ""
+"Si la extension esta disponible, puedes instalar la extension postgis en la "
+"base de datos de tu elección utilizando la interfaz de extensiones de "
+"pgAdmin o ejecutando la siguiente sentencia:"
+
+#. Tag: programlisting
+#: installation.xml:623
+#, fuzzy, no-c-format
+msgid ""
+"CREATE EXTENSION postgis;\n"
+"CREATE EXTENSION postgis_topology;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
+msgstr ""
+"CREATE EXTENSION postgis;\n"
+"CREATE EXTENSION postgis_topology;"
+
+#. Tag: para
+#: installation.xml:625
+#, no-c-format
+msgid ""
+"In psql you can use to see what versions you have installed and also what "
+"schema they are installed."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:626
+#, no-c-format
+msgid ""
+"\\connect mygisdb\n"
+"\\x \n"
+"\\dx postgis*"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:628
+#, no-c-format
+msgid ""
+"List of installed extensions\n"
+"-[ RECORD 1 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis\n"
+"Version     | &last_release_version;\n"
+"Schema      | public\n"
+"Description | PostGIS geometry, geography, and raster spat..\n"
+"-[ RECORD 2 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_tiger_geocoder\n"
+"Version     | &last_release_version;\n"
+"Schema      | tiger\n"
+"Description | PostGIS tiger geocoder and reverse geocoder\n"
+"-[ RECORD 3 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_topology\n"
+"Version     | &last_release_version;\n"
+"Schema      | topology\n"
+"Description | PostGIS topology spatial types and functions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:630
+#, no-c-format
+msgid ""
+"Extension tables <varname>spatial_ref_sys</varname>, <varname>layer</"
+"varname>, <varname>topology</varname> can not be explicitly backed up. They "
+"can only be backed up when the respective <varname>postgis</varname> or "
+"<varname>postgis_topology</varname> extension is backed up, which only seems "
+"to happen when you backup the whole database. As of PostGIS 2.0.1, only srid "
+"records not packaged with PostGIS are backed up when the database is backed "
+"up so don't go around changing srids we package and expect your changes to "
+"be there. Put in a ticket if you find an issue. The structures of extension "
+"tables are never backed up since they are created with <code>CREATE "
+"EXTENSION</code> and assumed to be the same for a given version of an "
+"extension. These behaviors are built into the current PostgreSQL extension "
+"model, so nothing we can do about it."
+msgstr ""
+"No se pueden hacer copias de seguridad explicitas de las tablas de las "
+"extensiones <varname>spatial_ref_sys</varname>, <varname>layer</varname>, "
+"<varname>topology</varname>. Solo se pueden hacer copias de seguridad "
+"explicitas cuando cuando se hacen copias de seguridad de sus respectivas "
+"extensiones <varname>postgis</varname> or <varname>postgis_topology</"
+"varname>, lo que al parecer ocurre cuando haces una copia de seguridad de la "
+"base de datos completa. Con PostGIS 2.0.1, solo los srid no incluidos en "
+"PostGIS son guardados cuando se hace una copia de seguridad de la base de "
+"datos, así que no esperes que al cambiar alguno de los srid que incluye "
+"PostGIS este en tu copia de seguridad. Envia un ticket si encuentras algún "
+"problema. La estructura de las tabals de extensiones no se guardan en copias "
+"de seguridad si son creadas con <code>CREATE EXTENSION</code> y son la misma "
+"estructura para una version dada de una extension. Estos comportamientos "
+"están incorporados en el modelo de extensiones PostgreSQL actual, así que "
+"nada podemos hacer al respecto."
+
+#. Tag: para
+#: installation.xml:635
+#, fuzzy, no-c-format
+msgid ""
+"If you installed &last_release_version;, without using our wonderful "
+"extension system, you can change it to be extension based by first upgrading "
+"to the latest micro version running the upgrade scripts: "
+"<filename>postgis_upgrade_22_minor.sql</filename>,"
+"<filename>raster_upgrade_22_minor.sql</filename>,"
+"<filename>topology_upgrade_22_minor.sql</filename>."
+msgstr ""
+"Si ha instalado &last_release_version;, sin usar nuestro estupendo sistema "
+"de extensión, puede cambiarlo para que sea basado en las extensiones "
+"haciendo primero una actualización hacia la última versión micro, ejecutando "
+"los scripts de actualización <filename>postgis_upgrade_20_minor.sql</"
+"filename>,<filename>raster_upgrade_20_minor.sql</filename>,"
+"<filename>topology_upgrade_20_minor.sql</filename>.  "
+
+#. Tag: para
+#: installation.xml:636
+#, no-c-format
+msgid ""
+"If you installed postgis without raster support, you'll need to install "
+"raster support first (using the full <filename>rtpostgis.sql</filename>"
+msgstr ""
+"Si ha instalado postgis sin el soporte raster, necesitara instalarlo primero "
+"(usando el archivo <filename>rtpostgis.sql</filename>"
+
+#. Tag: para
+#: installation.xml:637
+#, no-c-format
+msgid ""
+"Then you can run the below commands to package the functions in their "
+"respective extension."
+msgstr ""
+"Entonces podrá ejecutar los siguientes comandos para empaquetar las "
+"funciones en sus extensiones respectivas.\n"
+"\t\n"
+" "
+
+#. Tag: programlisting
+#: installation.xml:638
+#, fuzzy, no-c-format
+msgid ""
+"CREATE EXTENSION postgis FROM unpackaged;\n"
+"CREATE EXTENSION postgis_topology FROM unpackaged;\n"
+"CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+"CREATE EXTENSION postgis FROM unpackaged;\n"
+"CREATE EXTENSION postgis_topology FROM unpackaged;"
+
+#. Tag: title
+#: installation.xml:644
+#, no-c-format
+msgid "Testing"
+msgstr "Tests"
+
+#. Tag: para
+#: installation.xml:646
+#, no-c-format
+msgid "If you wish to test the PostGIS build, run"
+msgstr "Si quieres hacer un test en la compilación de PostGIS, ejecuta"
+
+#. Tag: command
+#: installation.xml:651
+#, no-c-format
+msgid "make check"
+msgstr "make check"
+
+#. Tag: para
+#: installation.xml:654
+#, no-c-format
+msgid ""
+"The above command will run through various checks and regression tests using "
+"the generated library against an actual PostgreSQL database."
+msgstr ""
+"El comando anterior ejecutará varias comprobaciones y tests de regresión "
+"utilizando la librería generada para la version de base de datos PostgreSQL "
+"actual."
+
+#. Tag: para
+#: installation.xml:660
+#, no-c-format
+msgid ""
+"If you configured PostGIS using non-standard PostgreSQL, GEOS, or Proj4 "
+"locations, you may need to add their library locations to the "
+"LD_LIBRARY_PATH environment variable."
+msgstr ""
+"Si has configurado PostGIS con instalaciones de PostgreSQL, GEOS, o Proj4 en "
+"directorios personalizados, necesitaras añadir las localizaciones de las "
+"librerías personalizadas en la variable de entorno LD_LIBRARY_PATH."
+
+#. Tag: para
+#: installation.xml:668
+#, no-c-format
+msgid ""
+"Currently, the <command>make check</command> relies on the <code>PATH</code> "
+"and <code>PGPORT</code> environment variables when performing the checks - "
+"it does <emphasis>not</emphasis> use the PostgreSQL version that may have "
+"been specified using the configuration parameter <command>--with-pgconfig</"
+"command>. So make sure to modify your PATH to match the detected PostgreSQL "
+"installation during configuration or be prepared to deal with the impending "
+"headaches."
+msgstr ""
+"Actualmente, el comando <command>make check</command> une las variables de "
+"entorno <code>PATH</code> y <code>PGPORT</code> cundo ejecuta las "
+"comprobaciones - <emphasis>no</emphasis> utiliza la version de PostgreSQL "
+"especificada utilizando el parametro de configuración <command>--with-"
+"pgconfig</command>. Así que hay que estar seguros de modificar la variable "
+"de entorno PATH para que apunte a la instalación de PostgreSQL detectada "
+"durante la configuración o estar preparado para tener algún que otro dolor "
+"de cabeza."
+
+#. Tag: para
+#: installation.xml:680
+#, no-c-format
+msgid ""
+"If successful, the output of the test should be similar to the following:"
+msgstr ""
+"Si todo ha ido bien, la salida del comando de test debería ser similar a la "
+"siguiente:"
+
+#. Tag: programlisting
+#: installation.xml:685
+#, no-c-format
+msgid ""
+"CUnit - A Unit testing framework for C - Version 2.1-0\n"
+"     http://cunit.sourceforge.net/\n"
+"\n"
+"\n"
+"Suite: print_suite\n"
+"  Test: test_lwprint_default_format ... passed\n"
+"  Test: test_lwprint_format_orders ... passed\n"
+"  Test: test_lwprint_optional_format ... passed\n"
+"  Test: test_lwprint_oddball_formats ... passed\n"
+"  Test: test_lwprint_bad_formats ... passed\n"
+"Suite: misc\n"
+"  Test: test_misc_force_2d ... passed\n"
+"  Test: test_misc_simplify ... passed\n"
+"  Test: test_misc_count_vertices ... passed\n"
+"  Test: test_misc_area ... passed\n"
+"  Test: test_misc_wkb ... passed\n"
+"Suite: ptarray\n"
+"  Test: test_ptarray_append_point ... passed\n"
+"  Test: test_ptarray_append_ptarray ... passed\n"
+"  Test: test_ptarray_locate_point ... passed\n"
+"  Test: test_ptarray_isccw ... passed\n"
+"  Test: test_ptarray_signed_area ... passed\n"
+"  Test: test_ptarray_desegmentize ... passed\n"
+"  Test: test_ptarray_insert_point ... passed\n"
+"  Test: test_ptarray_contains_point ... passed\n"
+"  Test: test_ptarrayarc_contains_point ... passed\n"
+"Suite: PostGIS Computational Geometry Suite\n"
+"  Test: test_lw_segment_side ... passed\n"
+"  Test: test_lw_segment_intersects ... passed\n"
+"  Test: test_lwline_crossing_short_lines ... passed\n"
+"  Test: test_lwline_crossing_long_lines ... passed\n"
+"  Test: test_lwline_crossing_bugs ... passed\n"
+"  Test: test_lwpoint_set_ordinate ... passed\n"
+"  Test: test_lwpoint_get_ordinate ... passed\n"
+"  Test: test_point_interpolate ... passed\n"
+"  Test: test_lwline_clip ... passed\n"
+"  Test: test_lwline_clip_big ... passed\n"
+"  Test: test_lwmline_clip ... passed\n"
+"  Test: test_geohash_point ... passed\n"
+"  Test: test_geohash_precision ... passed\n"
+"  Test: test_geohash ... passed\n"
+"  Test: test_geohash_point_as_int ... passed\n"
+"  Test: test_isclosed ... passed\n"
+"Suite: buildarea\n"
+"  Test: buildarea1 ... passed\n"
+"  Test: buildarea2 ... passed\n"
+"  Test: buildarea3 ... passed\n"
+"  Test: buildarea4 ... passed\n"
+"  Test: buildarea4b ... passed\n"
+"  Test: buildarea5 ... passed\n"
+"  Test: buildarea6 ... passed\n"
+"  Test: buildarea7 ... passed\n"
+"Suite: clean\n"
+"  Test: test_lwgeom_make_valid ... passed\n"
+"Suite: PostGIS Measures Suite\n"
+"  Test: test_mindistance2d_tolerance ... passed\n"
+"  Test: test_rect_tree_contains_point ... passed\n"
+"  Test: test_rect_tree_intersects_tree ... passed\n"
+"  Test: test_lwgeom_segmentize2d ... passed\n"
+"  Test: test_lwgeom_locate_along ... passed\n"
+"  Test: test_lw_dist2d_pt_arc ... passed\n"
+"  Test: test_lw_dist2d_seg_arc ... passed\n"
+"  Test: test_lw_dist2d_arc_arc ... passed\n"
+"  Test: test_lw_arc_length ... passed\n"
+"  Test: test_lw_dist2d_pt_ptarrayarc ... passed\n"
+"  Test: test_lw_dist2d_ptarray_ptarrayarc ... passed\n"
+"Suite: node\n"
+"  Test: test_lwgeom_node ... passed\n"
+"Suite: WKT Out Suite\n"
+"  Test: test_wkt_out_point ... passed\n"
+"  Test: test_wkt_out_linestring ... passed\n"
+"  Test: test_wkt_out_polygon ... passed\n"
+"  Test: test_wkt_out_multipoint ... passed\n"
+"  Test: test_wkt_out_multilinestring ... passed\n"
+"  Test: test_wkt_out_multipolygon ... passed\n"
+"  Test: test_wkt_out_collection ... passed\n"
+"  Test: test_wkt_out_circularstring ... passed\n"
+"  Test: test_wkt_out_compoundcurve ... passed\n"
+"  Test: test_wkt_out_curvpolygon ... passed\n"
+"  Test: test_wkt_out_multicurve ... passed\n"
+"  Test: test_wkt_out_multisurface ... passed\n"
+"Suite: WKT In Suite\n"
+"  Test: test_wkt_in_point ... passed\n"
+"  Test: test_wkt_in_linestring ... passed\n"
+"  Test: test_wkt_in_polygon ... passed\n"
+"  Test: test_wkt_in_multipoint ... passed\n"
+"  Test: test_wkt_in_multilinestring ... passed\n"
+"  Test: test_wkt_in_multipolygon ... passed\n"
+"  Test: test_wkt_in_collection ... passed\n"
+"  Test: test_wkt_in_circularstring ... passed\n"
+"  Test: test_wkt_in_compoundcurve ... passed\n"
+"  Test: test_wkt_in_curvpolygon ... passed\n"
+"  Test: test_wkt_in_multicurve ... passed\n"
+"  Test: test_wkt_in_multisurface ... passed\n"
+"  Test: test_wkt_in_tin ... passed\n"
+"  Test: test_wkt_in_polyhedralsurface ... passed\n"
+"  Test: test_wkt_in_errlocation ... passed\n"
+"Suite: WKB Out Suite\n"
+"  Test: test_wkb_out_point ... passed\n"
+"  Test: test_wkb_out_linestring ... passed\n"
+"  Test: test_wkb_out_polygon ... passed\n"
+"  Test: test_wkb_out_multipoint ... passed\n"
+"  Test: test_wkb_out_multilinestring ... passed\n"
+"  Test: test_wkb_out_multipolygon ... passed\n"
+"  Test: test_wkb_out_collection ... passed\n"
+"  Test: test_wkb_out_circularstring ... passed\n"
+"  Test: test_wkb_out_compoundcurve ... passed\n"
+"  Test: test_wkb_out_curvpolygon ... passed\n"
+"  Test: test_wkb_out_multicurve ... passed\n"
+"  Test: test_wkb_out_multisurface ... passed\n"
+"  Test: test_wkb_out_polyhedralsurface ... passed\n"
+":\n"
+"Suite: Geodetic Suite\n"
+"  Test: test_sphere_direction ... passed\n"
+"  Test: test_sphere_project ... passed\n"
+"  Test: test_lwgeom_area_sphere ... passed\n"
+"  Test: test_signum ... passed\n"
+"  Test: test_gbox_from_spherical_coordinates ... passed\n"
+":\n"
+"  Test: test_geos_noop ... passed\n"
+"Suite: Internal Spatial Trees\n"
+"  Test: test_tree_circ_create ... passed\n"
+"  Test: test_tree_circ_pip ... passed\n"
+"  Test: test_tree_circ_pip2 ... passed\n"
+"  Test: test_tree_circ_distance ... passed\n"
+"Suite: triangulate\n"
+"  Test: test_lwgeom_delaunay_triangulation ... passed\n"
+"Suite: stringbuffer\n"
+"  Test: test_stringbuffer_append ... passed\n"
+"  Test: test_stringbuffer_aprintf ... passed\n"
+"Suite: surface\n"
+"  Test: triangle_parse ... passed\n"
+"  Test: tin_parse ... passed\n"
+"  Test: polyhedralsurface_parse ... passed\n"
+"  Test: surface_dimension ... passed\n"
+"Suite: homogenize\n"
+"  Test: test_coll_point ... passed\n"
+"  Test: test_coll_line ... passed\n"
+"  Test: test_coll_poly ... passed\n"
+"  Test: test_coll_coll ... passed\n"
+"  Test: test_geom ... passed\n"
+"  Test: test_coll_curve ... passed\n"
+"Suite: force_sfs\n"
+"  Test: test_sfs_11 ... passed\n"
+"  Test: test_sfs_12 ... passed\n"
+"  Test: test_sqlmm ... passed\n"
+"Suite: out_gml\n"
+"  Test: out_gml_test_precision ... passed\n"
+"  Test: out_gml_test_srid ... passed\n"
+"  Test: out_gml_test_dims ... passed\n"
+"  Test: out_gml_test_geodetic ... passed\n"
+"  Test: out_gml_test_geoms ... passed\n"
+"  Test: out_gml_test_geoms_prefix ... passed\n"
+"  Test: out_gml_test_geoms_nodims ... passed\n"
+"  Test: out_gml2_extent ... passed\n"
+"  Test: out_gml3_extent ... passed\n"
+"Suite: KML Out Suite\n"
+"  Test: out_kml_test_precision ... passed\n"
+"  Test: out_kml_test_dims ... passed\n"
+"  Test: out_kml_test_geoms ... passed\n"
+"  Test: out_kml_test_prefix ... passed\n"
+"Suite: GeoJson Out Suite\n"
+"  Test: out_geojson_test_precision ... passed\n"
+"  Test: out_geojson_test_dims ... passed\n"
+"  Test: out_geojson_test_srid ... passed\n"
+"  Test: out_geojson_test_bbox ... passed\n"
+"  Test: out_geojson_test_geoms ... passed\n"
+"Suite: SVG Out Suite\n"
+"  Test: out_svg_test_precision ... passed\n"
+"  Test: out_svg_test_dims ... passed\n"
+"  Test: out_svg_test_relative ... passed\n"
+"  Test: out_svg_test_geoms ... passed\n"
+"  Test: out_svg_test_srid ... passed\n"
+"Suite: X3D Out Suite\n"
+"  Test: out_x3d3_test_precision ... passed\n"
+"  Test: out_x3d3_test_geoms ... passed\n"
+"\n"
+"--Run Summary: Type      Total     Ran  Passed  Failed\n"
+"               suites       27      27     n/a       0\n"
+"               tests       198     198     198       0\n"
+"               asserts    1728    1728    1728       0\n"
+"\n"
+"Creating database 'postgis_reg' \n"
+"Loading PostGIS into 'postgis_reg' \n"
+"PostgreSQL 9.3beta1 on x86_64-unknown-linux-gnu, compiled by gcc (Debian "
+"4.4.5-8) 4.4.5, 64-bit\n"
+"  Postgis 2.1.0SVN - r11415 - 2013-05-11 02:48:21\n"
+"  GEOS: 3.4.0dev-CAPI-1.8.0 r3797\n"
+"  PROJ: Rel. 4.7.1, 23 September 2009\n"
+"\n"
+"Running tests\n"
+"\n"
+" loader/Point .............. ok \n"
+" loader/PointM .............. ok \n"
+" loader/PointZ .............. ok \n"
+" loader/MultiPoint .............. ok \n"
+" loader/MultiPointM .............. ok \n"
+" loader/MultiPointZ .............. ok \n"
+" loader/Arc .............. ok \n"
+" loader/ArcM .............. ok \n"
+" loader/ArcZ .............. ok \n"
+" loader/Polygon .............. ok \n"
+" loader/PolygonM .............. ok \n"
+" loader/PolygonZ .............. ok \n"
+" loader/TSTPolygon ......... ok \n"
+" loader/TSIPolygon ......... ok \n"
+" loader/TSTIPolygon ......... ok \n"
+" loader/PointWithSchema ..... ok \n"
+" loader/NoTransPoint ......... ok \n"
+" loader/NotReallyMultiPoint ......... ok \n"
+" loader/MultiToSinglePoint ......... ok \n"
+" loader/ReprojectPts ........ ok \n"
+" loader/ReprojectPtsGeog ........ ok \n"
+" loader/Latin1 .... ok \n"
+" binary .. ok \n"
+" regress .. ok \n"
+" regress_index .. ok \n"
+" regress_index_nulls .. ok \n"
+" regress_selectivity .. ok \n"
+" lwgeom_regress .. ok \n"
+" regress_lrs .. ok \n"
+" removepoint .. ok \n"
+" setpoint .. ok \n"
+" simplify .. ok \n"
+" snaptogrid .. ok \n"
+" summary .. ok \n"
+" affine .. ok \n"
+" empty .. ok \n"
+" measures .. ok \n"
+" legacy .. ok \n"
+" long_xact .. ok \n"
+" ctors .. ok \n"
+" sql-mm-serialize .. ok \n"
+" sql-mm-circularstring .. ok \n"
+" sql-mm-compoundcurve .. ok \n"
+" sql-mm-curvepoly .. ok \n"
+" sql-mm-general .. ok \n"
+" sql-mm-multicurve .. ok \n"
+" sql-mm-multisurface .. ok \n"
+" polyhedralsurface .. ok \n"
+" polygonize .. ok \n"
+" postgis_type_name .. ok \n"
+" geography .. ok \n"
+" out_geometry .. ok \n"
+" out_geography .. ok \n"
+" in_geohash .. ok \n"
+" in_gml .. ok \n"
+" in_kml .. ok \n"
+" iscollection .. ok \n"
+" regress_ogc .. ok \n"
+" regress_ogc_cover .. ok \n"
+" regress_ogc_prep .. ok \n"
+" regress_bdpoly .. ok \n"
+" regress_proj .. ok \n"
+" regress_management .. ok \n"
+" dump .. ok \n"
+" dumppoints .. ok \n"
+" boundary .. ok \n"
+" wmsservers .. ok \n"
+" wkt .. ok \n"
+" wkb .. ok \n"
+" tickets .. ok \n"
+" typmod .. ok \n"
+" remove_repeated_points .. ok \n"
+" split .. ok \n"
+" relate .. ok \n"
+" bestsrid .. ok \n"
+" concave_hull .. ok \n"
+" hausdorff .. ok \n"
+" regress_buffer_params .. ok \n"
+" offsetcurve .. ok \n"
+" relatematch .. ok \n"
+" isvaliddetail .. ok \n"
+" sharedpaths .. ok \n"
+" snap .. ok \n"
+" node .. ok \n"
+" unaryunion .. ok \n"
+" clean .. ok \n"
+" relate_bnr .. ok \n"
+" delaunaytriangles .. ok \n"
+" in_geojson .. ok \n"
+" uninstall .. ok (4112)\n"
+"\n"
+"Run tests: 90"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:689
+#, no-c-format
+msgid "Installation"
+msgstr "Instalación"
+
+#. Tag: para
+#: installation.xml:691
+#, no-c-format
+msgid "To install PostGIS, type"
+msgstr "Para instalar PostGIS entre"
+
+#. Tag: command
+#: installation.xml:696
+#, no-c-format
+msgid "make install"
+msgstr "make install"
+
+#. Tag: para
+#: installation.xml:699
+#, no-c-format
+msgid ""
+"This will copy the PostGIS installation files into their appropriate "
+"subdirectory specified by the <command>--prefix</command> configuration "
+"parameter. In particular:"
+msgstr ""
+"Esto copiará los ficheros de instalación de PostGIS en el subdirectorio "
+"especificado por el parámetro de configuración <command>--prefix</command> "
+"del comando . En particular:"
+
+#. Tag: para
+#: installation.xml:707
+#, no-c-format
+msgid ""
+"The loader and dumper binaries are installed in <filename>[prefix]/bin</"
+"filename>."
+msgstr ""
+"Los archivos binarios de carga y dumper estarán instalados en  "
+"<filename>[prefix]/bin</filename>."
+
+#. Tag: para
+#: installation.xml:714
+#, no-c-format
+msgid ""
+"The SQL files, such as <filename>postgis.sql</filename>, are installed in "
+"<filename>[prefix]/share/contrib</filename>."
+msgstr ""
+"Los archivos SQL, tal como <filename>postgis.sql</filename>, están "
+"instalados en <filename>[prefix]/share/contrib</filename>."
+
+#. Tag: para
+#: installation.xml:721
+#, no-c-format
+msgid ""
+"The PostGIS libraries are installed in <filename>[prefix]/lib</filename>."
+msgstr ""
+"Las librerías de PostGIS estarán instaladas en <filename>[prefix]/lib</"
+"filename>."
+
+#. Tag: para
+#: installation.xml:728
+#, no-c-format
+msgid ""
+"If you previously ran the <command>make comments</command> command to "
+"generate the <filename>postgis_comments.sql</filename>, "
+"<filename>raster_comments.sql</filename> file, install the sql file by "
+"running"
+msgstr ""
+"Si has ejecutado el comando <command>make comments</command> previamente "
+"para generar los ficheros <filename>postgis_comments.sql</filename>, "
+"<filename>raster_comments.sql</filename>, instala los ficheros sql "
+"ejecutando:"
+
+#. Tag: command
+#: installation.xml:735
+#, no-c-format
+msgid "make comments-install"
+msgstr "make comments-install"
+
+#. Tag: para
+#: installation.xml:739
+#, no-c-format
+msgid ""
+"<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</"
+"filename>, <filename>topology_comments.sql</filename> was separated from the "
+"typical build and installation targets since with it comes the extra "
+"dependency of <command>xsltproc</command>."
+msgstr ""
+"<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</"
+"filename>, <filename>topology_comments.sql</filename> han sido separados de "
+"la compilación y de la instalación típicos ya que tienen una dependencia "
+"extra de la librería <command>xsltproc</command>."
+
+#. Tag: title
+#: installation.xml:749
+#, no-c-format
+msgid "Create a spatially-enabled database on PostgreSQL lower than 9.1"
+msgstr ""
+"Crea una base de datos habilitada para operaciones espaciales en PostgreSQL "
+"con versión inferior a 9.1"
+
+#. Tag: para
+#: installation.xml:751
+#, no-c-format
+msgid ""
+"The first step in creating a PostGIS database is to create a simple "
+"PostgreSQL database."
+msgstr ""
+"El primer paso en la creación de una base de datos PostGIS es crear una "
+"simple base de datos PostgreSQL."
+
+#. Tag: command
+#: installation.xml:757 installation.xml:854
+#, no-c-format
+msgid "createdb [yourdatabase]"
+msgstr "createdb [subasededatos]"
+
+#. Tag: para
+#: installation.xml:760
+#, no-c-format
+msgid ""
+"Many of the PostGIS functions are written in the PL/pgSQL procedural "
+"language. As such, the next step to create a PostGIS database is to enable "
+"the PL/pgSQL language in your new database. This is accomplish by the "
+"command below command. For PostgreSQL 8.4+, this is generally already "
+"installed"
+msgstr ""
+"Varias de la funciones PostGIS están escritas en el lenguaje de "
+"procedimientos PL/pgSQL. Como tal, el siguiente paso para crear una base de "
+"datos PostGIS es habilitar el lenguaje PL/pgSQL en nuestra nueva base de "
+"datos. Eso se hace con el comando siguiente. Para PostgreSQL 8.4+ está "
+"normalmente ya instalado."
+
+#. Tag: command
+#: installation.xml:768
+#, no-c-format
+msgid "createlang plpgsql [yourdatabase]"
+msgstr "createlang plpgsql [subasededatos]"
+
+#. Tag: para
+#: installation.xml:771
+#, no-c-format
+msgid ""
+"Now load the PostGIS object and function definitions into your database by "
+"loading the <filename>postgis.sql</filename> definitions file (located in "
+"<filename>[prefix]/share/contrib</filename> as specified during the "
+"configuration step)."
+msgstr ""
+"Ahora carga los objetos y la definición de funciones en tu base de datos "
+"cargando el fichero de definiciones <filename>postgis.sql</filename> (este "
+"fichero se encuentra en <filename>[prefix]/share/contrib</filename> como se "
+"especificó durante la etapa de configuración)."
+
+#. Tag: command
+#: installation.xml:779
+#, no-c-format
+msgid "psql -d [yourdatabase] -f postgis.sql"
+msgstr "psql -d [yourdatabase] -f postgis.sql"
+
+#. Tag: para
+#: installation.xml:782
+#, no-c-format
+msgid ""
+"For a complete set of EPSG coordinate system definition identifiers, you can "
+"also load the <filename>spatial_ref_sys.sql</filename> definitions file and "
+"populate the <varname>spatial_ref_sys</varname> table. This will permit you "
+"to perform ST_Transform() operations on geometries."
+msgstr ""
+"Para tener un juego completo de definiciones de sistemas de coordinas EPSG, "
+"también se puede cargar el fichero de definiciones <filename>spatial_ref_sys."
+"sql</filename> y rellenar tabla <varname>spatial_ref_sys</varname>. Esto te "
+"permitida hacer operaciones de transformación ST_Transform() en las "
+"geometrías."
+
+#. Tag: command
+#: installation.xml:790
+#, no-c-format
+msgid "psql -d [yourdatabase] -f spatial_ref_sys.sql"
+msgstr "psql -d [yourdatabase] -f spatial_ref_sys.sql"
+
+#. Tag: para
+#: installation.xml:793
+#, no-c-format
+msgid ""
+"If you wish to add comments to the PostGIS functions, the final step is to "
+"load the <filename>postgis_comments.sql</filename> into your spatial "
+"database. The comments can be viewed by simply typing <command>\\dd "
+"[function_name]</command> from a <command>psql</command> terminal window."
+msgstr ""
+"Si quieres añadir los comentarios de las funciones PostGIS, el paso final es "
+"cargar el fichero <filename>postgis_comments.sql</filename> en la base de "
+"datos. Para ver los comentarios, simplemente ejecuta el comando <command>"
+"\\dd [function_name]</command> en un terminal psql."
+
+#. Tag: command
+#: installation.xml:801
+#, no-c-format
+msgid "psql -d [yourdatabase] -f postgis_comments.sql"
+msgstr "psql -d [yourdatabase] -f postgis_comments.sql"
+
+#. Tag: para
+#: installation.xml:804
+#, no-c-format
+msgid "Install raster support"
+msgstr "Instalar el soporte raster"
+
+#. Tag: command
+#: installation.xml:809
+#, no-c-format
+msgid "psql -d [yourdatabase] -f rtpostgis.sql"
+msgstr "psql -d [yourdatabase] -f rtpostgis.sql"
+
+#. Tag: para
+#: installation.xml:812
+#, no-c-format
+msgid ""
+"Install raster support comments. This will provide quick help info for each "
+"raster function using psql or PgAdmin or any other PostgreSQL tool that can "
+"show function comments"
+msgstr ""
+"Instala los comentarios de soporte raster. Esto te dará información de ayuda "
+"de forma rápida para cada función raster utilizando psql, pgAdmin o "
+"cualquier otra herramienta PostgreSQL que permita ver los comentarios de las "
+"funciones."
+
+#. Tag: command
+#: installation.xml:818
+#, no-c-format
+msgid "psql -d [yourdatabase] -f raster_comments.sql"
+msgstr "psql -d [yourdatabase] -f raster_comments.sql"
+
+#. Tag: para
+#: installation.xml:820
+#, no-c-format
+msgid "Install topology support"
+msgstr "Instalar el soporte de topología"
+
+#. Tag: command
+#: installation.xml:825
+#, no-c-format
+msgid "psql -d [yourdatabase] -f topology/topology.sql"
+msgstr "psql -d [yourdatabase] -f topology/topology.sql"
+
+#. Tag: para
+#: installation.xml:828
+#, no-c-format
+msgid ""
+"Install topology support comments. This will provide quick help info for "
+"each topology function / type using psql or PgAdmin or any other PostgreSQL "
+"tool that can show function comments"
+msgstr ""
+"Instala los comentarios de soporte de topología. Esto te dará información de "
+"ayuda de forma rápida para cada función red topología utilizando psql, "
+"pgAdmin o cualquier otra herramienta PostgreSQL que permita ver los "
+"comentarios de las funciones."
+
+#. Tag: command
+#: installation.xml:834
+#, no-c-format
+msgid "psql -d [yourdatabase] -f topology/topology_comments.sql"
+msgstr "psql -d [yourdatabase] -f topology/topology_comments.sql"
+
+#. Tag: para
+#: installation.xml:837 installation.xml:874
+#, no-c-format
+msgid ""
+"If you plan to restore an old backup from prior versions in this new db, run:"
+msgstr ""
+"Si estas pensando en restaurar una copia de seguridad de una vieja base de "
+"datos desde una versión anterior en la nueva base de datos, ejecuta:"
+
+#. Tag: command
+#: installation.xml:838 installation.xml:875
+#, no-c-format
+msgid "psql -d [yourdatabase] -f legacy.sql"
+msgstr "psql -d [yourdatabase] -f legacy.sql"
+
+#. Tag: para
+#: installation.xml:839
+#, no-c-format
+msgid ""
+"There is an alternative <filename>legacy_minimal.sql</filename> you can run "
+"instead which will install barebones needed to recover tables and work with "
+"apps like MapServer and GeoServer. If you have views that use things like "
+"distance / length etc, you'll need the full blown <filename>legacy.sql</"
+"filename>"
+msgstr ""
+"Hay una alternativa, se puede ejecutar el fichero <filename>legacy_minimal."
+"sql</filename> que instalará los elementos necesarios para reemplazar tablas "
+"y que permitida trabajar con aplicaciones como MapServer y GeoServer. Si "
+"tienes vistas que utilizan funciones tipo distancia/longitud etc, "
+"necesitaras ejecutar el fichero <filename>legacy.sql</filename> completo."
+
+#. Tag: para
+#: installation.xml:842 installation.xml:877
+#, no-c-format
+msgid ""
+"You can later run <filename>uninstall_legacy.sql</filename> to get rid of "
+"the deprecated functions after you are done with restoring and cleanup."
+msgstr ""
+"Después podrás ejecutar <filename>uninstall_legacy.sql</filename> para "
+"obtener el rid de las funciones obsoletas después de haber restaurado y "
+"limpiado."
+
+#. Tag: title
+#: installation.xml:846
+#, no-c-format
+msgid "Creating a spatial database using EXTENSIONS"
+msgstr "Crear una base de datos espacial utilizando EXTENSIONS"
+
+#. Tag: para
+#: installation.xml:848
+#, no-c-format
+msgid ""
+"If you are using PostgreSQL 9.1+ and have compiled and installed the "
+"extensions/ postgis modules, you can create a spatial database the new way."
+msgstr ""
+"Si estas utilizando PostgreSQL 9.1+ y has compilado e instalado los módulos/"
+"extensión PostGIS, puedes crear una base de datos espacial de otra manera."
+
+#. Tag: para
+#: installation.xml:857
+#, no-c-format
+msgid ""
+"The core postgis extension installs PostGIS geometry, geography, raster, "
+"spatial_ref_sys and all the functions and comments with a simple: "
+"<programlisting>CREATE EXTENSION postgis;</programlisting> command."
+msgstr ""
+"El núcleo de la extensión postgis, instala geometry, geography, raster, "
+"spatial_ref_sys y todos los comentarios de las funciones PostGIS con un "
+"simple comando:<programlisting>CREATE EXTENSION postgis;</programlisting>."
+
+#. Tag: command
+#: installation.xml:863
+#, no-c-format
+msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
+msgstr "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
+
+#. Tag: para
+#: installation.xml:866
+#, no-c-format
+msgid ""
+"Topology is packaged as a separate extension and installable with command:"
+msgstr ""
+"Topology esta compilado como una extensión separada y se puede instalar con "
+"el comando:"
+
+#. Tag: command
+#: installation.xml:871
+#, no-c-format
+msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
+msgstr "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
+
+#. Tag: title
+#: installation.xml:880
+#, no-c-format
+msgid "Installing and Using the address standardizer"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:881
+#, no-c-format
+msgid ""
+"The <code>address_standardizer</code> extension used to be a separate "
+"package that required separate download. From PostGIS 2.2 on, it is now "
+"bundled in. For more information about the address_standardize, what it "
+"does, and how to configure it for your needs, refer to <xref linkend="
+"\"Address_Standardizer\"/>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:883
+#, no-c-format
+msgid ""
+"This standardizer can be used in conjunction with the PostGIS packaged tiger "
+"geocoder extension as a replacement for the <xref linkend=\"Normalize_Address"
+"\"/> discussed. To use as replacement refer to <xref linkend="
+"\"tiger_pagc_address_standardizing\"/>. You can also use it as a building "
+"block for your own geocoder or use it to standardize your addresses for "
+"easier compare of addresses."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:887
+#, no-c-format
+msgid ""
+"The address standardizer relies on PCRE which is usually already installed "
+"on many Nix systems, but you can download the latest at: <ulink url=\"http://"
+"www.pcre.org\">http://www.pcre.org</ulink>. If during <xref linkend="
+"\"installation_configuration\"/>, PCRE is found, then the address "
+"standardizer extension will automatically be built. If you have a custom "
+"pcre install you want to use instead, pass to configure <code>--with-"
+"pcredir=/path/to/pcre</code> where <filename>/path/to/pcre</filename> is the "
+"root folder for your pcre include and lib directories."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:890
+#, no-c-format
+msgid ""
+"For Windows users, the PostGIS 2.1+ bundle is packaged with the "
+"address_standardizer already so no need to compile and can move straight to "
+"<code>CREATE EXTENSION</code> step."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:893
+#, no-c-format
+msgid ""
+"Once you have installed, you can connect to your database and run the SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:894
+#, no-c-format
+msgid "CREATE EXTENSION address_standardizer;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:896
+#, no-c-format
+msgid "The following test requires no rules, gaz, or lex tables"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:897
+#, no-c-format
+msgid ""
+"SELECT num, street, city, state, zip \n"
+" FROM parse_address('1 Devonshire Place, Boston, MA 02109');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:898
+#, no-c-format
+msgid "Output should be"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:899
+#, no-c-format
+msgid ""
+"num |         street         |  city  | state |  zip\n"
+"-----+------------------------+--------+-------+-------\n"
+" 1   | Devonshire Place PH301 | Boston | MA    | 02109"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:901
+#, no-c-format
+msgid "Installing Regex::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:902
+#, no-c-format
+msgid ""
+"Perl Regex:Assemble is no longer needed for compiling address_standardizer "
+"extension since the files it generates are part of the source tree. However "
+"if you need to edit the <filename>usps-st-city-orig.txt</filename> or "
+"<filename>usps-st-city-orig.txt usps-st-city-adds.tx</filename>, you need to "
+"rebuild <filename>parseaddress-stcities.h</filename> which does require "
+"Regex:Assemble."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:903
+#, no-c-format
+msgid "cpan Regexp::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:904
+#, no-c-format
+msgid "or if you are on Ubuntu / Debian you might need to do"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:905
+#, no-c-format
+msgid "sudo perl -MCPAN -e \"install Regexp::Assemble\""
+msgstr ""
+
+#. Tag: title
+#: installation.xml:910
+#, no-c-format
+msgid "Installing, Upgrading Tiger Geocoder and loading data"
+msgstr "Instalar o actualizar el geocodificador Tiger y cargar datos"
+
+#. Tag: para
+#: installation.xml:912
+#, fuzzy, no-c-format
+msgid ""
+"Extras like Tiger geocoder may not be packaged in your PostGIS distribution, "
+"but will always be available in the postgis-&last_release_version;.tar.gz "
+"file. The instructions provided here are also available in the "
+"<filename>extras/tiger_geocoder/tiger_2011/README</filename>"
+msgstr ""
+"El geocodificador Tiger no se instala/actualiza con el script del núcleo de "
+"PostGIS por que es solo de uso regional. De hecho nada del contenido de la "
+"carpeta extras se instala por defecto con La instalación/actualización "
+"standard de PostGIS. Los extras como el geocodificador Tiger no están "
+"compilados en la distribución PostGIS, pero estará siempre disponible en el "
+"fichero &last_release_version;.tar.gz. Las instrucciones aquí descritas, "
+"también están disponibles en el fichero <filename>extras/tiger_geocoder/"
+"tiger_2010/README</filename>"
+
+#. Tag: para
+#: installation.xml:913
+#, no-c-format
+msgid ""
+"If you are on Windows and you don't have tar installed, you can use <ulink "
+"url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink> to unzip the "
+"PostGIS tarball."
+msgstr ""
+"Si estas en Windows y no tienes instalador tar, puedes utilizar <ulink url="
+"\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink> para descomprimir el "
+"tarball de PostGIS."
+
+#. Tag: title
+#: installation.xml:915
+#, fuzzy, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Using Extension"
+msgstr "Activar el geocodificador Tiger en tu base de datos PostGIS"
+
+#. Tag: para
+#: installation.xml:916
+#, no-c-format
+msgid ""
+"If you are using PostgreSQL 9.1+ and PostGIS 2.1.0, you can take advantage "
+"of the new extension model for installing tiger geocoder. To do so:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:918
+#, no-c-format
+msgid ""
+"First get binaries for PostGIS 2.1.0 or compile and install as usual. This "
+"should install the necessary extension files as well for tiger geocoder."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:919
+#, no-c-format
+msgid ""
+"Connect to your database via psql or pgAdmin or some other tool and run the "
+"following SQL commands. Note that if you are installing in a database that "
+"already has postgis, you don't need to do the first step. If you have "
+"<varname>fuzzystrmatch</varname> extension already installed, you don't need "
+"to do the second step either."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:920
+#, fuzzy, no-c-format
+msgid ""
+"CREATE EXTENSION postgis;                \n"
+"CREATE EXTENSION fuzzystrmatch;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
+msgstr ""
+"CREATE EXTENSION postgis;\n"
+"CREATE EXTENSION postgis_topology;"
+
+#. Tag: para
+#: installation.xml:921
+#, no-c-format
+msgid ""
+"To confirm your install is working correctly, run this sql in your database:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:922
+#, no-c-format
+msgid ""
+"SELECT na.address, na.streetname,na.streettypeabbrev, na.zip\n"
+"        FROM normalize_address('1 Devonshire Place, Boston, MA 02109') AS na;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:923
+#, no-c-format
+msgid "Which should output"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:924
+#, no-c-format
+msgid ""
+"address | streetname | streettypeabbrev |  zip\n"
+"---------+------------+------------------+-------\n"
+"           1 | Devonshire | Pl               | 02109"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:926
+#, fuzzy, no-c-format
+msgid ""
+"Create a new record in <varname>tiger.loader_platform</varname> table with "
+"the paths of your executables and server."
+msgstr ""
+"Edita el fichero <filename>tiger_loader.sql</filename> para añadir los "
+"directorios de tu servidor, etc..."
+
+#. Tag: para
+#: installation.xml:927
+#, no-c-format
+msgid ""
+"So for example to create a profile called debbie that follows <code>sh</"
+"code> convention. You would do:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:928
+#, no-c-format
+msgid ""
+"INSERT INTO tiger.loader_platform(os, declare_sect, pgbin, wget, "
+"unzip_command, psql, path_sep, \n"
+"                   loader, environ_set_command, county_process_command)\n"
+"SELECT 'debbie', declare_sect, pgbin, wget, unzip_command, psql, path_sep, \n"
+"           loader, environ_set_command, county_process_command\n"
+"  FROM tiger.loader_platform\n"
+"  WHERE os = 'sh';"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:929
+#, no-c-format
+msgid ""
+"And then edit the paths in the <emphasis>declare_sect</emphasis> column to "
+"those that fit Debbie's pg, unzip,shp2pgsql, psql, etc path locations."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:931
+#, no-c-format
+msgid ""
+"If you don't edit this <varname>loader_platform</varname> table, it will "
+"just contain common case locations of items and you'll have to edit the "
+"generated script after the script is generated."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:933
+#, no-c-format
+msgid ""
+"Then run the <xref linkend=\"Loader_Generate_Nation_Script\"/> and <xref "
+"linkend=\"Loader_Generate_Script\"/> SQL functions make sure to use the name "
+"of your custom profile. So for example to do the nation load using our new "
+"profile we would:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:934
+#, fuzzy, no-c-format
+msgid "SELECT Loader_Generate_Nation_Script('debbie');"
+msgstr "SELECT loader_generate_nation_script('sh');"
+
+#. Tag: title
+#: installation.xml:937
+#, no-c-format
+msgid "Converting a Tiger Geocoder Regular Install to Extension Model"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:938
+#, no-c-format
+msgid ""
+"If you installed the tiger geocoder without using the extension model, you "
+"can convert to the extension model as follows:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:940
+#, no-c-format
+msgid ""
+"Follow instructions in <xref linkend=\"upgrade_tiger_geocoder\"/> for the "
+"non-extension model upgrade."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:941
+#, no-c-format
+msgid ""
+"Connect to your database with psql or pgAdmin and run the following command:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:942
+#, fuzzy, no-c-format
+msgid "CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+"CREATE EXTENSION postgis FROM unpackaged;\n"
+"CREATE EXTENSION postgis_topology FROM unpackaged;"
+
+#. Tag: title
+#: installation.xml:949
+#, fuzzy, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Not Using Extensions"
+msgstr "Activar el geocodificador Tiger en tu base de datos PostGIS"
+
+#. Tag: para
+#: installation.xml:950
+#, no-c-format
+msgid "First install PostGIS using the prior instructions."
+msgstr "Primero debes instalar PostGIS con las instrucciones anteriores."
+
+#. Tag: para
+#: installation.xml:954 installation.xml:1014
+#, fuzzy, no-c-format
+msgid ""
+"If you don't have an extras folder, download <ulink url="
+"\"&postgis_download_url;\">&postgis_download_url;</ulink>"
+msgstr ""
+"Si no tienes la carpeta extras, puedes descargar <ulink url=\"http://www."
+"postgis.org/download/postgis-&last_release_version;.tar.gz\">http://www."
+"postgis.org/download/postgis-&last_release_version;.tar.gz</ulink>"
+
+#. Tag: command
+#: installation.xml:959 installation.xml:1019
+#, no-c-format
+msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgstr "tar xvfz postgis-&last_release_version;.tar.gz"
+
+#. Tag: command
+#: installation.xml:963 installation.xml:1023
+#, no-c-format
+msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgstr "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+
+#. Tag: para
+#: installation.xml:966
+#, no-c-format
+msgid ""
+"Edit the <filename>tiger_loader_2012.sql</filename> to the paths of your "
+"executables server etc or alternatively you can update the "
+"<varname>loader_platform</varname> table once installed. If you don't edit "
+"this file or the <varname>loader_platform</varname> table, it will just "
+"contain common case locations of items and you'll have to edit the generated "
+"script after the fact when you run the <xref linkend="
+"\"Loader_Generate_Nation_Script\"/> and <xref linkend="
+"\"Loader_Generate_Script\"/> SQL functions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:968
+#, fuzzy, no-c-format
+msgid ""
+"If you are installing Tiger geocoder for the first time edit either the "
+"<filename>create_geocode.bat</filename> script If you are on windows or the "
+"<filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with "
+"your PostgreSQL specific settings and run the corresponding script from the "
+"commandline."
+msgstr ""
+"Localiza el script <filename>upgrade_geocoder.bat</filename> si estas en "
+"windows o <filename>upgrade_geocoder.sh</filename> si estas en Linux/Unix/"
+"Mac OSX. Edita el fichero para incluir las credenciales de tu base de datos "
+"postgis y ejecuta el script correspondiente desde la linea de comandos. "
+
+#. Tag: para
+#: installation.xml:972
+#, no-c-format
+msgid ""
+"Verify that you now have a <varname>tiger</varname> schema in your database "
+"and that it is part of your database search_path. If it is not, add it with "
+"a command something along the line of:"
+msgstr ""
+"Verifica que ahora tienes el esquema <varname>tiger</varname> en tu base de "
+"datos y este forma parte de tu variable search_path en la base de datos. Si "
+"no, añádelo con un comando parecido al siguiente:"
+
+#. Tag: programlisting
+#: installation.xml:972
+#, no-c-format
+msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
+msgstr "ALTER DATABASE geocoder SET search_path=public, tiger;"
+
+#. Tag: para
+#: installation.xml:973
+#, no-c-format
+msgid ""
+"The normalizing address functionality works more or less without any data "
+"except for tricky addresses. Run this test and verify things look like this:"
+msgstr ""
+"La funcionalidad de normalización de direcciones funciona sin datos mas o "
+"menos, excepto para direcciones complejas. Ejecuta el siguiente test y "
+"verifica si se parece a esto:"
+
+#. Tag: programlisting
+#: installation.xml:974
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"pretty_address\n"
+"---------------------------------------\n"
+"202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"pretty_address\n"
+"---------------------------------------\n"
+"202 E Fremont St, Las Vegas, NV 89101"
+
+#. Tag: title
+#: installation.xml:977
+#, no-c-format
+msgid "Using Address Standardizer Extension with Tiger geocoder"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:978
+#, no-c-format
+msgid ""
+"One of the many complaints of folks is the address normalizer function <xref "
+"linkend=\"Normalize_Address\"/> function that normalizes an address for "
+"prepping before geocoding. The normalizer is far from perfect and trying to "
+"patch its imperfectness takes a vast amount of resources. As such we have "
+"integrated with another project that has a much better address standardizer "
+"engine. To use this new address_standardizer, you compile the extension as "
+"described in <xref linkend=\"installing_pagc_address_standardizer\"/> and "
+"install as an extension in your database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:981
+#, no-c-format
+msgid ""
+"Once you install this extension in the same database as you have installed "
+"<code>postgis_tiger_geocoder</code>, then the <xref linkend="
+"\"Pagc_Normalize_Address\"/> can be used instead of <xref linkend="
+"\"Normalize_Address\"/>. This extension is tiger agnostic, so can be used "
+"with other data sources such as international addresses. The tiger geocoder "
+"extension does come packaged with its own custom versions of <xref linkend="
+"\"rulestab\"/> ( <code>tiger.pagc_rules</code>) , <xref linkend=\"gaztab\"/> "
+"(<code>tiger.pagc_gaz</code>), and <xref linkend=\"lextab\"/> (<code>tiger."
+"pagc_lex</code>). These you can add and update to improve your standardizing "
+"experience for your own needs."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:984
+#, no-c-format
+msgid "Loading Tiger Data"
+msgstr "Cargando datos Tiger"
+
+#. Tag: para
+#: installation.xml:985
+#, no-c-format
+msgid ""
+"The instructions for loading data are available in a more detailed form in "
+"the <filename>extras/tiger_geocoder/tiger_2011/README</filename>. This just "
+"includes the general steps."
+msgstr ""
+"Las instrucciones de carga de datos están disponibles de forma mas detallada "
+"en <filename>extras/tiger_geocoder/tiger_2011/README</filename>. Esto solo "
+"describe los pasos generales."
+
+#. Tag: para
+#: installation.xml:986
+#, no-c-format
+msgid ""
+"The load process downloads data from the census website for the respective "
+"nation files, states requested, extracts the files, and then loads each "
+"state into its own separate set of state tables. Each state table inherits "
+"from the tables defined in <varname>tiger</varname> schema so that its "
+"sufficient to just query those tables to access all the data and drop a set "
+"of state tables at any time using the <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/> if you need to reload a state or "
+"just don't need a state anymore."
+msgstr ""
+"El proceso de carga, descarga datos desde el sitio web del censo de las "
+"respectivas naciones de los estados pedidos, extrae los ficheros, y carga "
+"cada estado en un conjunto separado por estados en su propia tabla. Cada "
+"tabla de estado hereda el esquema de tablas definido en <varname>tiger</"
+"varname> así que basta con hacer una consulta a estas tablas para acceder a "
+"todos los datos de la tabla de estados en cualquier momento utilizando <xref "
+"linkend=\"Drop_State_Tables_Generate_Script\"/> si necesita volver a cargar "
+"un estado o si ya no lo necesitas mas."
+
+#. Tag: para
+#: installation.xml:988
+#, no-c-format
+msgid "In order to be able to load data you'll need the following tools:"
+msgstr "Para poder cargar los datos necesitarás las siguientes herramientas:"
+
+#. Tag: para
+#: installation.xml:990
+#, no-c-format
+msgid "A tool to unzip the zip files from census website."
+msgstr ""
+"Una herramienta para descomprimir ficheros zip de la pagina web del censo."
+
+#. Tag: para
+#: installation.xml:991
+#, no-c-format
+msgid ""
+"For Unix like systems: <varname>unzip</varname> executable which is usually "
+"already installed on most Unix like platforms."
+msgstr ""
+"Para sistemas Unix: el ejecutable <varname>unzip</varname> que  normalmente "
+"esta instalado en la mayoría de sistemas Unix."
+
+#. Tag: para
+#: installation.xml:992
+#, no-c-format
+msgid ""
+"For Windows, 7-zip which is a free compress/uncompress tool you can download "
+"from <ulink url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink>"
+msgstr ""
+"Para windows, 7-zip es una herramienta libre de compresión/descompresión que "
+"puedes descargar en <ulink url=\"http://www.7-zip.org/\">http://www.7-zip."
+"org/</ulink>"
+
+#. Tag: para
+#: installation.xml:994
+#, no-c-format
+msgid ""
+"<filename>shp2pgsql</filename> commandline which is installed by default "
+"when you install PostGIS."
+msgstr ""
+"El comando <filename>shp2pgsql</filename> que se instala por defecto cuando "
+"instalas PostGIS."
+
+#. Tag: para
+#: installation.xml:995
+#, no-c-format
+msgid ""
+"<filename>wget</filename> which is a web grabber tool usually installed on "
+"most Unix/Linux systems."
+msgstr ""
+"<filename>wget</filename> que es una herramienta de captura web, normalmente "
+"instalado en los sistemas Unix/Linux."
+
+#. Tag: para
+#: installation.xml:996
+#, no-c-format
+msgid ""
+"If you are on windows, you can get pre-compiled binaries from <ulink url="
+"\"http://gnuwin32.sourceforge.net/packages/wget.htm\">http://gnuwin32."
+"sourceforge.net/packages/wget.htm</ulink>"
+msgstr ""
+"Si estas en windows, puedes obtener ejecutables precompilados en <ulink url="
+"\"http://gnuwin32.sourceforge.net/packages/wget.htm\">http://gnuwin32."
+"sourceforge.net/packages/wget.htm</ulink>"
+
+#. Tag: para
+#: installation.xml:999
+#, fuzzy, no-c-format
+msgid ""
+"If you are upgrading from tiger_2010, you'll need to first generate and run "
+"<xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>. Before you load any "
+"state data, you need to load the nation wide data which you do with <xref "
+"linkend=\"Loader_Generate_Nation_Script\"/>. Which will generate a loader "
+"script for you. <xref linkend=\"Loader_Generate_Nation_Script\"/> is a one-"
+"time step that should be done for upgrading (from 2010) and for new installs."
+msgstr ""
+"Si estas actualizando desde la version tiger_2010, necesitaras generar y "
+"ejecutar primero <xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>. "
+"Antes de cargar los datos de cualquier estado, necesitas descargar los datos "
+"de la nación entera con  <xref linkend=\"Loader_Generate_Nation_Script\"/>. "
+"Que generara el script de carga para ti."
+
+#. Tag: para
+#: installation.xml:1001
+#, fuzzy, no-c-format
+msgid ""
+"To load state data refer to <xref linkend=\"Loader_Generate_Script\"/> to "
+"generate a data load script for your platform for the states you desire. "
+"Note that you can install these piecemeal. You don't have to load all the "
+"states you want all at once. You can load them as you need them."
+msgstr ""
+"Para cargar datos ve a <xref linkend=\"Loader_Generate_Script\"/> para "
+"generar un script de carga de datos para tu plataforma, de los estados que "
+"quieras. Ten en cuenta que puedes cargar estos poco a poco. No necesitas "
+"cargar todos los estados de golpe. Puedes cargarlos cuando los necesites."
+
+#. Tag: para
+#: installation.xml:1004
+#, no-c-format
+msgid ""
+"After the states you desire have been loaded, make sure to run the: "
+"<programlisting>SELECT install_missing_indexes();</programlisting> as "
+"described in <xref linkend=\"Install_Missing_Indexes\"/>."
+msgstr ""
+"Una vez que los estados que quieres han sido cargados, asegurare de "
+"ejecutar:  <programlisting>SELECT install_missing_indexes();</"
+"programlisting> como se explica en <xref linkend=\"Install_Missing_Indexes\"/"
+">."
+
+#. Tag: para
+#: installation.xml:1006
+#, no-c-format
+msgid ""
+"To test that things are working as they should, try to run a geocode on an "
+"address in your state using <xref linkend=\"Geocode\"/>"
+msgstr ""
+"Para probar que las cosas han funcionado como deberían, intenta ejecutar una "
+"geocodificacion en una dirección del estado descargado utilizando <xref "
+"linkend=\"Geocode\"/>"
+
+#. Tag: title
+#: installation.xml:1009
+#, no-c-format
+msgid "Upgrading your Tiger Geocoder Install"
+msgstr "Actualizando la instalación del geocodificador Tiger"
+
+#. Tag: para
+#: installation.xml:1010
+#, fuzzy, no-c-format
+msgid ""
+"If you have Tiger Geocoder packaged with 2.0+ already installed, you can "
+"upgrade the functions at any time even from an interim tar ball if there are "
+"fixes you badly need. This will only work for Tiger geocoder not installed "
+"with extensions."
+msgstr ""
+"Si ya tienes instalado el geocodificador Tiger en una versión 2.0+, puedes "
+"actualizar las funciones si existen corrección de errores críticos que "
+"necesitas en cualquier momento, incluso desde un tar."
+
+#. Tag: para
+#: installation.xml:1026
+#, fuzzy, no-c-format
+msgid ""
+"Locate the <filename>upgrade_geocoder.bat</filename> script If you are on "
+"windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/"
+"Unix/Mac OSX. Edit the file to have your postgis database credentials."
+msgstr ""
+"Localiza el script <filename>upgrade_geocoder.bat</filename> si estas en "
+"windows o <filename>upgrade_geocoder.sh</filename> si estas en Linux/Unix/"
+"Mac OSX. Edita el fichero para incluir las credenciales de tu base de datos "
+"postgis y ejecuta el script correspondiente desde la linea de comandos. "
+
+#. Tag: para
+#: installation.xml:1029
+#, no-c-format
+msgid ""
+"If you are upgrading from 2010 or 2011, make sure to unremark out the loader "
+"script line so you get the latest script for loading 2012 data."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1030
+#, no-c-format
+msgid "Then run th corresponding script from the commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1034
+#, no-c-format
+msgid ""
+"Next drop all nation tables and load up the new ones. Generate a drop script "
+"with this SQL statement as detailed in <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/>"
+msgstr ""
+"Después, elimina todas las tabals de naciones y carga las nuevas. Genera un "
+"script drop con esta sentencia SQL como se detalla en <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/>"
+
+#. Tag: programlisting
+#: installation.xml:1035
+#, no-c-format
+msgid "SELECT drop_nation_tables_generate_script();"
+msgstr "SELECT drop_nation_tables_generate_script();"
+
+#. Tag: para
+#: installation.xml:1036
+#, no-c-format
+msgid "Run the generated drop SQL statements."
+msgstr "Ejecuta la sentencia SQL drop"
+
+#. Tag: para
+#: installation.xml:1037
+#, no-c-format
+msgid ""
+"Generate a nation load script with this SELECT statement as detailed in "
+"<xref linkend=\"Loader_Generate_Nation_Script\"/>"
+msgstr ""
+"Genera un script de carga de naciones con esta sentencia SELECT como se "
+"detalla en <xref linkend=\"Loader_Generate_Nation_Script\"/>"
+
+#. Tag: emphasis
+#: installation.xml:1038
+#, no-c-format
+msgid "For windows"
+msgstr "Para windows"
+
+#. Tag: programlisting
+#: installation.xml:1039
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr "SELECT loader_generate_nation_script('windows');"
+
+#. Tag: emphasis
+#: installation.xml:1040
+#, no-c-format
+msgid "For unix/linux"
+msgstr "Para unix/linux"
+
+#. Tag: programlisting
+#: installation.xml:1041
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr "SELECT loader_generate_nation_script('sh');"
+
+#. Tag: para
+#: installation.xml:1042
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on "
+"how to run the generate script. This only needs to be done once."
+msgstr ""
+"Para mas información sobre como ejecutar los scripts generados visita <xref "
+"linkend=\"tiger_geocoder_loading_data\"/>. Esto solo es necesario hacerlo "
+"una vez."
+
+#. Tag: para
+#: installation.xml:1043
+#, no-c-format
+msgid ""
+"You can have a mix of 2010/2011 state tables and can upgrade each state "
+"separately. Before you upgrade a state to 2011, you first need to drop the "
+"2010 tables for that state using <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/>."
+msgstr ""
+"Puedes tener una mezcla de tablas de estados de 2010/2011 y puedes "
+"actualizar cada estado por separado. Antes de actualizar un estado a la "
+"versión de 2011 debes suprimir las tablas de este estado para 2010 "
+"utilizando <xref linkend=\"Drop_State_Tables_Generate_Script\"/>."
+
+#. Tag: title
+#: installation.xml:1049
+#, no-c-format
+msgid "Create a spatially-enabled database from a template"
+msgstr "Crear una base de datos espacial desde una plantilla"
+
+#. Tag: para
+#: installation.xml:1051
+#, no-c-format
+msgid ""
+"Some packaged distributions of PostGIS (in particular the Win32 installers "
+"for PostGIS >= 1.1.5) load the PostGIS functions into a template database "
+"called <varname>template_postgis</varname>. If the "
+"<varname>template_postgis</varname> database exists in your PostgreSQL "
+"installation then it is possible for users and/or applications to create "
+"spatially-enabled databases using a single command. Note that in both cases, "
+"the database user must have been granted the privilege to create new "
+"databases."
+msgstr ""
+"Algunas de las distribuciones precompiladas de PostGIS (en particular los "
+"instaladores de Postgis >= 1.1.5 para sistemas Win32) carga las funciones "
+"de PostGIS en una base de datos plantilla llamada <varname>template_postgis</"
+"varname>. Si la base de datos  <varname>template_postgis</varname> existe ya "
+"en nuestra instalación de PostgreSQL, los usuarios y aplicaciones podrán "
+"crear bases de datos espaciales con un simple comando. En ambos casos, el "
+"usuario de la base de datos debe tener privilegios para crear nuevas bases "
+"de datos"
+
+#. Tag: para
+#: installation.xml:1062
+#, no-c-format
+msgid "From the shell:"
+msgstr "En la linea de comandos:"
+
+#. Tag: programlisting
+#: installation.xml:1066
+#, no-c-format
+msgid "# createdb -T template_postgis my_spatial_db"
+msgstr "# createdb -T template_postgis my_spatial_db"
+
+#. Tag: para
+#: installation.xml:1068
+#, no-c-format
+msgid "From SQL:"
+msgstr "Desde SQL:"
+
+#. Tag: programlisting
+#: installation.xml:1072
+#, no-c-format
+msgid "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
+msgstr "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
+
+#. Tag: title
+#: installation.xml:1076
+#, no-c-format
+msgid "Upgrading"
+msgstr "Actualizando"
+
+#. Tag: para
+#: installation.xml:1078
+#, no-c-format
+msgid ""
+"Upgrading existing spatial databases can be tricky as it requires "
+"replacement or introduction of new PostGIS object definitions."
+msgstr ""
+"Actualizar una base de datos espacial puede ser complejo ya que requiere "
+"reemplazar o introducir nuevas definiciones de objetos PostGIS."
+
+#. Tag: para
+#: installation.xml:1083
+#, no-c-format
+msgid ""
+"Unfortunately not all definitions can be easily replaced in a live database, "
+"so sometimes your best bet is a dump/reload process."
+msgstr ""
+"Desafortunadamente, no todas las definiciones pueden reemplazarse fácilmente "
+"en una base de datos activa, así que algunas veces lo mejor es un proceso "
+"copia de seguridad/recarga."
+
+#. Tag: para
+#: installation.xml:1088
+#, no-c-format
+msgid ""
+"PostGIS provides a SOFT UPGRADE procedure for minor or bugfix releases, and "
+"a HARD UPGRADE procedure for major releases."
+msgstr ""
+"PostGIS incluye una SOFT UPGRADE (actualización ligera)  para "
+"actualizaciones menores o corrección de errores, y una HARD UPGRADE "
+"(Actualización pesada) para versiones mayores."
+
+#. Tag: para
+#: installation.xml:1093
+#, no-c-format
+msgid ""
+"Before attempting to upgrade PostGIS, it is always worth to backup your "
+"data. If you use the -Fc flag to pg_dump you will always be able to restore "
+"the dump with a HARD UPGRADE."
+msgstr ""
+"Antes de realizar una actualización de PostGIS, es recomendable hacer una "
+"copia de seguridad de los datos. Si utilizas la opción -Fc en el comando "
+"pg_dump siempre podrás restaurar la copia realizada con un HARD UPDATE."
+
+#. Tag: title
+#: installation.xml:1100
+#, no-c-format
+msgid "Soft upgrade"
+msgstr "Actualizacion Ligera"
+
+#. Tag: para
+#: installation.xml:1102
+#, no-c-format
+msgid ""
+"If you installed your database using extensions, you'll need to upgrade "
+"using the extension model as well. If you installed using the old sql script "
+"way, then you should upgrade using the sql script way. Please refer to the "
+"appropriate."
+msgstr ""
+"Si instalaste la base de datos utilizando extensiones, necesitaras "
+"actualizar utilizando el modelo de extensiones tambien. Si instalaste "
+"utilizando el antiguo metodo de script sql, necesitaras actualizar el metodo "
+"de script sql. Consulta el metodo adecuado."
+
+#. Tag: title
+#: installation.xml:1105
+#, no-c-format
+msgid "Soft Upgrade Pre 9.1+ or without extensions"
+msgstr ""
+"Actualización ligera anterior a la versión PostgreSQL 9.1+ o sin extensiones"
+
+#. Tag: para
+#: installation.xml:1106
+#, no-c-format
+msgid ""
+"This section applies only to those who installed PostGIS not using "
+"extensions. If you have extensions and try to upgrade with this approach "
+"you'll get messages like:"
+msgstr ""
+"Esta sección describe el método para quienes instalaron PostGIS sin utilizar "
+"extensiones solamente. Si tienes extensiones e intentas actualizar con este "
+"metodo, tendras mensajes como los siguientes:"
+
+#. Tag: programlisting
+#: installation.xml:1107
+#, no-c-format
+msgid "can't drop ... because postgis extension depends on it"
+msgstr "no se puede suprimir ... porque la extensión postgis depende de el"
+
+#. Tag: para
+#: installation.xml:1108
+#, fuzzy, no-c-format
+msgid ""
+"After compiling and installing (make install) you should find a "
+"<filename>postgis_upgrade.sql</filename> and <filename>rtpostgis_upgrade."
+"sql</filename> in the installation folders. For example <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. Install the "
+"<filename>postgis_upgrade.sql</filename>. If you have raster functionality "
+"installed, you will also need to install the <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. If you are moving "
+"from PostGIS 1.* to PostGIS 2.* or from PostGIS 2.* prior to r7409, you need "
+"to do a HARD UPGRADE."
+msgstr ""
+"Después de compilar deberías encontrar algunos fichero como "
+"<filename>postgis_upgrade*.sql</filename>. Instala el que corresponde con tu "
+"version de PostGIS. Por ejemplo el fichero "
+"<filename>postgis_upgrade_13_to_15.sql</filename> debe utilizarse si tienes "
+"que actualizar desde PostGIS 1.3 a 1.5. Si estas actualizando desde PostGIS "
+"1.* a PostGIS 2.* o desde PostGIS 2.* anterior a r7409, necesitas hacer una "
+"actualizacion pesada o HARD UPDATE."
+
+#. Tag: programlisting
+#: installation.xml:1112
+#, fuzzy, no-c-format
+msgid "psql -f postgis_upgrade.sql -d your_spatial_database"
+msgstr "psql -f postgis_upgrade_20_minor.sql -d your_spatial_database"
+
+#. Tag: para
+#: installation.xml:1114
+#, no-c-format
+msgid ""
+"The same procedure applies to raster and topology extensions, with upgrade "
+"files named <filename>rtpostgis_upgrade*.sql</filename> and "
+"<filename>topology_upgrade*.sql</filename> respectively. If you need them:"
+msgstr ""
+"El mimo proceso se emplea para las extensiones raster y topology, con "
+"ficheros de actualizacion llamados <filename>rtpostgis_upgrade*.sql</"
+"filename> y <filename>topology_upgrade*.sql</filename> respectivamente. Si "
+"lo necesitas, entoces:"
+
+#. Tag: programlisting
+#: installation.xml:1122
+#, fuzzy, no-c-format
+msgid "psql -f rtpostgis_upgrade.sql -d your_spatial_database"
+msgstr "psql -f rtpostgis_upgrade_20_minor.sql -d your_spatial_database"
+
+#. Tag: programlisting
+#: installation.xml:1123
+#, fuzzy, no-c-format
+msgid "psql -f topology_upgrade.sql -d your_spatial_database"
+msgstr "psql -f topology_upgrade_20_minor.sql -d your_spatial_database"
+
+#. Tag: para
+#: installation.xml:1126
+#, no-c-format
+msgid ""
+"If you can't find the <filename>postgis_upgrade*.sql</filename> specific for "
+"upgrading your version you are using a version too early for a soft upgrade "
+"and need to do a HARD UPGRADE."
+msgstr ""
+"Si no puedes encontrar el fichero <filename>postgis_upgrade*.sql</filename> "
+"especifico para actualizar tu version, estas utilizando una version previa "
+"para una actualización ligera y necesitas hacer una actualización completa o "
+"HARD UPGRADE."
+
+#. Tag: para
+#: installation.xml:1132
+#, no-c-format
+msgid ""
+"The <xref linkend=\"PostGIS_Full_Version\"/> function should inform you "
+"about the need to run this kind of upgrade using a \"procs need upgrade\" "
+"message."
+msgstr ""
+"La función <xref linkend=\"PostGIS_Full_Version\"/> debe darte la "
+"información sobre la necesidad de ejecutar este tipo de actualización "
+"utilizando el mensaje \"procs need upgrade\"."
+
+#. Tag: title
+#: installation.xml:1139
+#, no-c-format
+msgid "Soft Upgrade 9.1+ using extensions"
+msgstr "Actualizacion ligera 9.1+ utilizando extensiones"
+
+#. Tag: para
+#: installation.xml:1140
+#, no-c-format
+msgid ""
+"If you originally installed PostGIS with extensions, then you need to "
+"upgrade using extensions as well. Doing a minor upgrade with extensions, is "
+"fairly painless."
+msgstr ""
+"Si has instalado originalmente PostGIS con extensiones, entonces necesitas "
+"actualizar utilizando extensiones también. Hacer una actualización menor con "
+"extensiones es bastante sencillo."
+
+#. Tag: programlisting
+#: installation.xml:1141
+#, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;\";"
+msgstr ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;\";"
+
+#. Tag: para
+#: installation.xml:1142
+#, no-c-format
+msgid "If you get an error notice something like:"
+msgstr "Si obtienes un error parecido a:"
+
+#. Tag: programlisting
+#: installation.xml:1143
+#, no-c-format
+msgid "No migration path defined for ... to &last_release_version;"
+msgstr "No migration path defined for ... to &last_release_version;"
+
+#. Tag: para
+#: installation.xml:1144
+#, fuzzy, no-c-format
+msgid ""
+"Then you'll need to backup your database, create a fresh one as described in "
+"<xref linkend=\"create_new_db_extensions\"/> and then restore your backup "
+"ontop of this new database."
+msgstr ""
+"Entonces, necesitas hacer una copia de seguridad de tu base de datos, crear "
+"una nueva según se describe en <xref linkend=\"create_new_db_extensions\"/> "
+"y entonces restaurar tu copia de seguridad en esta nueva base de datos. "
+"Probablemente obtengas un mensaje como que la <code>extension postgis</code> "
+"ya esta instalada, puedes ignorar este mensaje con tranquilidad."
+
+#. Tag: para
+#: installation.xml:1145
+#, fuzzy, no-c-format
+msgid "If you get a notice message like:"
+msgstr "Si obtienes un error parecido a:"
+
+#. Tag: programlisting
+#: installation.xml:1146
+#, no-c-format
+msgid ""
+"Version \"&last_release_version;\" of extension \"postgis\" is already "
+"installed"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1147
+#, no-c-format
+msgid ""
+"Then everything is already up to date and you can safely ignore it. "
+"<emphasis role=\"bold\">UNLESS</emphasis> you're attempting to upgrade from "
+"an SVN version to the next (which doesn't get a new version number); in that "
+"case you can append \"next\" to the version string, and next time you'll "
+"need to drop the \"next\" suffix again:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1153
+#, fuzzy, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;next\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;next\";"
+msgstr ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;\";"
+
+#. Tag: para
+#: installation.xml:1154
+#, fuzzy, no-c-format
+msgid ""
+"If you installed PostGIS originally without a version specified, you can "
+"often skip the reinstallation of postgis extension before restoring since "
+"the backup just has <code>CREATE EXTENSION postgis</code> and thus picks up "
+"the newest latest version during restore."
+msgstr ""
+"Si has instalado PostGIS sin una version especificada, a menudo se puede "
+"omitir la reinstalación de la extensión PostGIS antes de restaurar desde la "
+"copia de seguridad sólo tienes que ejecutar <code> CREATE EXTENSION postgis</"
+"code>  y así recoge la nueva versión más reciente durante la restauración."
+
+#. Tag: title
+#: installation.xml:1161
+#, no-c-format
+msgid "Hard upgrade"
+msgstr "Actualizacion pesada o HARD UPDATE"
+
+#. Tag: para
+#: installation.xml:1163
+#, no-c-format
+msgid ""
+"By HARD UPGRADE we mean full dump/reload of postgis-enabled databases. You "
+"need a HARD UPGRADE when PostGIS objects' internal storage changes or when "
+"SOFT UPGRADE is not possible. The <link linkend=\"release_notes\">Release "
+"Notes</link> appendix reports for each version whether you need a dump/"
+"reload (HARD UPGRADE) to upgrade."
+msgstr ""
+"Por actualización pesada se entiende una copia de seguridad/recarga completa "
+"de datos en la base de datos espacial. Necesitas una actualización pesada "
+"cuando los objetos internos de almacenamiento de PostGIS cambian o cuando "
+"una actualización ligera no es posible. Las notas <link linkend="
+"\"release_notes\">Release Notes</link> del apéndice hay informes de cada "
+"version y de si necesitas hacer una copia de seguridad/recarga de datos "
+"(HARD UPGRADE) para actualizar."
+
+#. Tag: para
+#: installation.xml:1172
+#, no-c-format
+msgid ""
+"The dump/reload process is assisted by the postgis_restore.pl script which "
+"takes care of skipping from the dump all definitions which belong to PostGIS "
+"(including old ones), allowing you to restore your schemas and data into a "
+"database with PostGIS installed without getting duplicate symbol errors or "
+"bringing forward deprecated objects."
+msgstr ""
+"El proceso copia de seguridad/recarga de datos esta asistido por el script "
+"postgis_restore.pl te toma en cuenta ignorar en la copia de seguridad todas "
+"las definiciones que pertenecen a PostGIS (incluyendo las antiguas), "
+"permitiéndote restaurar tus esquemas y datos en una base de datos con "
+"PostGIS instalado sin tener que duplicar errores o trayendo objetos "
+"rechazados."
+
+#. Tag: para
+#: installation.xml:1181
+#, no-c-format
+msgid ""
+"Supplementary instructions for windows users are available at <ulink url="
+"\"http://trac.osgeo.org/postgis/wiki/UsersWikiWinUpgrade\">Windows Hard "
+"upgrade</ulink>."
+msgstr ""
+"Instruciones complementarias para windows están disponibles en <ulink url="
+"\"http://trac.osgeo.org/postgis/wiki/UsersWikiWinUpgrade\">Windows Hard "
+"upgrade</ulink>."
+
+#. Tag: para
+#: installation.xml:1184
+#, no-c-format
+msgid "The Procedure is as follows:"
+msgstr "El procedimiento es como sigue:"
+
+#. Tag: para
+#: installation.xml:1192
+#, no-c-format
+msgid ""
+"Create a \"custom-format\" dump of the database you want to upgrade (let's "
+"call it <varname>olddb</varname>) include binary blobs (-b) and verbose (-v) "
+"output. The user can be the owner of the db, need not be postgres super "
+"account."
+msgstr ""
+"Crea un \"formato personalizado\" de copia de seguridad de la base de datos "
+"que asieres actualizar (llamemosla <varname>olddb</varname>) incluye "
+"binarios bolb (-b) y salida verbose (-v). El usuario puede ser el "
+"propietario de la base de datos, no necesitas una cuenta de superusuario "
+"postgres."
+
+#. Tag: programlisting
+#: installation.xml:1200
+#, no-c-format
+msgid ""
+"pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb."
+"backup\" olddb"
+msgstr ""
+"pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb."
+"backup\" olddb"
+
+#. Tag: para
+#: installation.xml:1206
+#, no-c-format
+msgid ""
+"Do a fresh install of PostGIS in a new database -- we'll refer to this "
+"database as <varname>newdb</varname>. Please refer to <xref linkend="
+"\"create_new_db\"/> and <xref linkend=\"create_new_db_extensions\"/> for "
+"instructions on how to do this."
+msgstr ""
+"Haz una nueva instalación de PsotGIS en una nueva base de datos --la "
+"llamaremos <varname>newdb</varname> en este ejemplo. Puedes obtener "
+"información de como hacer esto en <xref linkend=\"create_new_db\"/> y <xref "
+"linkend=\"create_new_db_extensions\"/>"
+
+#. Tag: para
+#: installation.xml:1213
+#, no-c-format
+msgid ""
+"The spatial_ref_sys entries found in your dump will be restored, but they "
+"will not override existing ones in spatial_ref_sys. This is to ensure that "
+"fixes in the official set will be properly propagated to restored databases. "
+"If for any reason you really want your own overrides of standard entries "
+"just don't load the spatial_ref_sys.sql file when creating the new db."
+msgstr ""
+"Las entradas que se encuentren en tu copia de seguridad de la tabla "
+"spatial_ref_sys serán restauradas, pero pero no reescribiran las existentes "
+"en la nueva tabla spatial_ref_sys. Esto es para asegurar que las soluciones "
+"en el conjunto oficial se propagarán correctamente para las bases de datos "
+"restauradas. Si por algún motivo, realmente quieres que tus entradas "
+"reemplacen las entradas estándar simplemente no cargues el archivo "
+"spatial_ref_sys.sql al crear la nueva db. "
+
+#. Tag: para
+#: installation.xml:1223
+#, no-c-format
+msgid ""
+"If your database is really old or you know you've been using long deprecated "
+"functions in your views and functions, you might need to load "
+"<filename>legacy.sql</filename> for all your functions and views etc. to "
+"properly come back. Only do this if _really_ needed. Consider upgrading your "
+"views and functions before dumping instead, if possible. The deprecated "
+"functions can be later removed by loading <filename>uninstall_legacy.sql</"
+"filename>."
+msgstr ""
+"Si tu base de datos es muy antigua o sabes que has estado utilizando "
+"funciones rechazadas en tus vistas y funciones, necesitaras cargar el "
+"fichero <filename>legacy.sql</filename> para todas tus funciones y vistas "
+"para que funcionen correctamente. Haz esto solamente si es indispensable. "
+"Considera actualizar tus vistas y funciones antes de hacer una copia de "
+"seguridad si es posible. Las funciones rechazadas pueden borrarse cargando "
+"el fichero <filename>uninstall_legacy.sql</filename> después."
+
+#. Tag: para
+#: installation.xml:1239
+#, no-c-format
+msgid ""
+"Restore your backup into your fresh <varname>newdb</varname> database using "
+"postgis_restore.pl. Unexpected errors, if any, will be printed to the "
+"standard error stream by psql. Keep a log of those."
+msgstr ""
+"Restaura tu copia de seguridad en tu nueva base de datos <varname>newdb</"
+"varname> utilizando el script postgis_restore.pl. Si aparecen errores "
+"inesperados, se imprimirán en la consola de psql. Ten un inventario de estos."
+
+#. Tag: programlisting
+#: installation.xml:1247
+#, no-c-format
+msgid ""
+"perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost "
+"-p 5432 -U postgres newdb 2> errors.txt"
+msgstr ""
+"perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost "
+"-p 5432 -U postgres newdb 2> errors.txt"
+
+#. Tag: para
+#: installation.xml:1253
+#, no-c-format
+msgid "Errors may arise in the following cases:"
+msgstr "Los errores se producirán en alguno de estos casos:"
+
+#. Tag: para
+#: installation.xml:1259
+#, no-c-format
+msgid ""
+"Some of your views or functions make use of deprecated PostGIS objects. In "
+"order to fix this you may try loading <filename>legacy.sql</filename> script "
+"prior to restore or you'll have to restore to a version of PostGIS which "
+"still contains those objects and try a migration again after porting your "
+"code. If the <filename>legacy.sql</filename> way works for you, don't forget "
+"to fix your code to stop using deprecated functions and drop them loading "
+"<filename>uninstall_legacy.sql</filename>."
+msgstr ""
+"Alguna de tus vistas o funciones hacen uso de funciones rechazadas de "
+"objetos PostGIS. Para corregir estos deberás intentar cargar el script "
+"<filename>legacy.sql</filename> antes de restaurar o deberás restaurar a una "
+"version de PsotGIS que todavía contenga estos objetos e intentar hacer la "
+"migración otra vez después de migrar tu código. Si el uso del  fichero "
+"<filename>legacy.sql</filename> funciona, no olvides corregir tu código para "
+"dejar de utilizar funciones rechazadas, y elimina el script <filename>legacy."
+"sql</filename> ejecutando <filename>uninstall_legacy.sql</filename>."
+
+#. Tag: para
+#: installation.xml:1271
+#, no-c-format
+msgid ""
+"Some custom records of spatial_ref_sys in dump file have an invalid SRID "
+"value. Valid SRID values are bigger than 0 and smaller than 999000. Values "
+"in the 999000.999999 range are reserved for internal use while values > "
+"999999 can't be used at all. All your custom records with invalid SRIDs will "
+"be retained, with those > 999999 moved into the reserved range, but the "
+"spatial_ref_sys table would loose a check constraint guarding for that "
+"invariant to hold and possibly also its primary key ( when multiple invalid "
+"SRIDS get converted to the same reserved SRID value )."
+msgstr ""
+"Algunos valores personalizados de la copia de la tabla spatial_ref_sys "
+"pueden tener un valor no valido de SRID. Los valores validos deben ser "
+"mayores que 0 y menores que 999000. Valores en el rango 999000.999999 están "
+"reservados para uso interno y valores mayores que 999999 no están permitidos "
+"para nada. Todos los valores personalizados con SRIDs inválidos serán "
+"conservados, con los valores personalizados > 999999 se moverán en el rango "
+"reservado, pero la tabla spatial_ref_sys perderá la restricción check que "
+"guarda para esta constante y probablemente también su clave primaria (cuando "
+"multiples valores personalizados de SRID se conviertan al mismo valor SRID "
+"reservado) "
+
+#. Tag: para
+#: installation.xml:1285
+#, no-c-format
+msgid ""
+"In order to fix this you should copy your custom SRS to a SRID with a valid "
+"value (maybe in the 910000..910999 range), convert all your tables to the "
+"new srid (see <xref linkend=\"UpdateGeometrySRID\"/>), delete the invalid "
+"entry from spatial_ref_sys and re-construct the check(s) with:"
+msgstr ""
+"Para corregir esto deberías copiar tus SRS personalizados en in SRID con un "
+"valor (quizás en el rango de valores  910000..910999),  convertir todas las "
+"tablas al nuevo srid (ver como hacer esto en <xref linkend="
+"\"UpdateGeometrySRID\"/>), borrar las entradas invalidas de la tabla "
+"spatial_ref_sys y reconstruir la o las restricciones chek con:"
+
+#. Tag: programlisting
+#: installation.xml:1292
+#, no-c-format
+msgid ""
+"ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check "
+"(srid > 0 AND srid < 999000 );"
+msgstr ""
+"ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check "
+"(srid > 0 AND srid < 999000 );"
+
+#. Tag: programlisting
+#: installation.xml:1294
+#, no-c-format
+msgid "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
+msgstr "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
+
+#. Tag: title
+#: installation.xml:1305
+#, fuzzy, no-c-format
+msgid "Common Problems during installation"
+msgstr "Problemas comunes"
+
+#. Tag: para
+#: installation.xml:1306
+#, no-c-format
+msgid ""
+"There are several things to check when your installation or upgrade doesn't "
+"go as you expected."
+msgstr ""
+"Hay varias cosas a comprobar cuando la instalación o actualización no han "
+"fusionado como se esperaba."
+
+#. Tag: para
+#: installation.xml:1313
+#, no-c-format
+msgid ""
+"Check that you have installed PostgreSQL &min_postgres_version; or newer, "
+"and that you are compiling against the same version of the PostgreSQL source "
+"as the version of PostgreSQL that is running. Mix-ups can occur when your "
+"(Linux) distribution has already installed PostgreSQL, or you have otherwise "
+"installed PostgreSQL before and forgotten about it. PostGIS will only work "
+"with PostgreSQL &min_postgres_version; or newer, and strange, unexpected "
+"error messages will result if you use an older version. To check the version "
+"of PostgreSQL which is running, connect to the database using psql and run "
+"this query:"
+msgstr ""
+"Comprueba que tienes instalado PostgreSQL &min_postgres_version; o "
+"posterior, y que estas compilando para esta version de PostgreSQL que estas "
+"utilizando. Se pueden producir confusiones cuando tu distribución (Linux)ya "
+"tiene instalada PostgreSQL, o has instalado antes PostgreSQL y lo has "
+"olvidado. PostGIS solo funcionará con PostgreSQL &min_postgres_version; o "
+"superior, y errores inesperados o extraños pueden ocurrir si utilizas una "
+"version mas antigua. Para comprobar la version de PostgreSQL que esta "
+"instalada y ejecutándose, conectare a la base de datos utilizando psql y "
+"ejecuta la siguiente consulta:"
+
+#. Tag: programlisting
+#: installation.xml:1326
+#, no-c-format
+msgid "SELECT version();"
+msgstr "SELECT version();"
+
+#. Tag: para
+#: installation.xml:1328
+#, no-c-format
+msgid ""
+"If you are running an RPM based distribution, you can check for the "
+"existence of pre-installed packages using the <command>rpm</command> command "
+"as follows: <command>rpm -qa | grep postgresql</command>"
+msgstr ""
+"Si estas ejecutando una version basada en una distribución RPM, puedes "
+"comprobar si existen paquetes pre-instalados utilizando el comando "
+"<command>rpm</command> como sigue: <command>rpm -qa | grep postgresql</"
+"command>"
+
+#. Tag: para
+#: installation.xml:1336
+#, no-c-format
+msgid ""
+"If your upgrade fails, make sure you are restoring into a database that "
+"already has PostGIS installed."
+msgstr ""
+"Si tienes errores en la actualización, asegúrate de que estas restaurando tu "
+"base de datos en una que tenga instalada PostGIS."
+
+#. Tag: programlisting
+#: installation.xml:1337
+#, no-c-format
+msgid "SELECT postgis_full_version();"
+msgstr "SELECT postgis_full_version();"
+
+#. Tag: para
+#: installation.xml:1341
+#, no-c-format
+msgid ""
+"Also check that configure has correctly detected the location and version of "
+"PostgreSQL, the Proj4 library and the GEOS library."
+msgstr ""
+"Comprueba que tu configuración detecta la ubicación y la version correctas "
+"de PostgreSQL, la librería Proj4 y la librería GEOS."
+
+#. Tag: para
+#: installation.xml:1348
+#, no-c-format
+msgid ""
+"The output from configure is used to generate the <filename>postgis_config."
+"h</filename> file. Check that the <varname>POSTGIS_PGSQL_VERSION</varname>, "
+"<varname>POSTGIS_PROJ_VERSION</varname> and <varname>POSTGIS_GEOS_VERSION</"
+"varname> variables have been set correctly."
+msgstr ""
+"La salida de configure se utiliza para generar el fichero "
+"<filename>postgis_config.h</filename>. Comprueba que la variables "
+"<varname>POSTGIS_PGSQL_VERSION</varname>, <varname>POSTGIS_PROJ_VERSION</"
+"varname> y <varname>POSTGIS_GEOS_VERSION</varname>, han sido bien "
+"configuradas."
+
+#. Tag: title
+#: installation.xml:1361
+#, no-c-format
+msgid "JDBC"
+msgstr "JDBC"
+
+#. Tag: para
+#: installation.xml:1363
+#, no-c-format
+msgid ""
+"The JDBC extensions provide Java objects corresponding to the internal "
+"PostGIS types. These objects can be used to write Java clients which query "
+"the PostGIS database and draw or do calculations on the GIS data in PostGIS."
+msgstr ""
+"La extension JDBC proporciona objetos Java correspondientes a los tipos "
+"internos de PostGIS. Estos objetos se pueden utilizar para escribir con "
+"clientes Java que interrogan a la base de datos PostGIS y dibujan o calculan "
+"el los datos GIS de PostGIS."
+
+#. Tag: para
+#: installation.xml:1372
+#, no-c-format
+msgid ""
+"Enter the <filename>java/jdbc</filename> sub-directory of the PostGIS "
+"distribution."
+msgstr ""
+"Entra el subdirectorio <filename>java/jdbc</filename> de la distribucion "
+"PostGIS."
+
+#. Tag: para
+#: installation.xml:1379
+#, no-c-format
+msgid ""
+"Run the <filename>ant</filename> command. Copy the <filename>postgis.jar</"
+"filename> file to wherever you keep your java libraries."
+msgstr ""
+"Ejecuta el comando <filename>ant</filename>.  Copia el fichero "
+"<filename>postgis.jar</filename> donde tengas tus librerías java."
+
+#. Tag: para
+#: installation.xml:1387
+#, no-c-format
+msgid ""
+"The JDBC extensions require a PostgreSQL JDBC driver to be present in the "
+"current CLASSPATH during the build process. If the PostgreSQL JDBC driver is "
+"located elsewhere, you may pass the location of the JDBC driver JAR "
+"separately using the -D parameter like this:"
+msgstr ""
+"La extension JDBC requiere que el driver PostgreSQL JDBC este presente en la "
+"variable de entorno CLASSPATH durante el proceso de compilación. Si el "
+"driver PostgreSQL JDBC esta ubicado en otro lugar, puedes pasar como "
+"parámetro la ubicación del driver JDBC separadamente utilizando el parámetro "
+"-D como sigue:"
+
+#. Tag: programlisting
+#: installation.xml:1394
+#, no-c-format
+msgid "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
+msgstr "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
+
+#. Tag: para
+#: installation.xml:1396
+#, no-c-format
+msgid ""
+"PostgreSQL JDBC drivers can be downloaded from <ulink url=\"http://jdbc."
+"postgresql.org\"> http://jdbc.postgresql.org </ulink> ."
+msgstr ""
+"Los drivers JDBC pueden descargares desde <ulink url=\"http://jdbc."
+"postgresql.org\"> http://jdbc.postgresql.org </ulink> ."
+
+#. Tag: title
+#: installation.xml:1406
+#, no-c-format
+msgid "Loader/Dumper"
+msgstr "Cargador/Dumper"
+
+#. Tag: para
+#: installation.xml:1408
+#, no-c-format
+msgid ""
+"The data loader and dumper are built and installed automatically as part of "
+"the PostGIS build. To build and install them manually:"
+msgstr ""
+"El cargador y dumper de datos se compila e instala de forma automática como "
+"parte de la distribución de PostGIS. Para compilar e instalar de forma "
+"manual puedes ejecutar:"
+
+#. Tag: programlisting
+#: installation.xml:1413
+#, no-c-format
+msgid ""
+"# cd postgis-&last_release_version;/loader\n"
+"# make\n"
+"# make install"
+msgstr ""
+"# cd postgis-&last_release_version;/loader\n"
+"# make\n"
+"# make install"
+
+#. Tag: para
+#: installation.xml:1415
+#, no-c-format
+msgid ""
+"The loader is called <filename>shp2pgsql</filename> and converts ESRI Shape "
+"files into SQL suitable for loading in PostGIS/PostgreSQL. The dumper is "
+"called <filename>pgsql2shp</filename> and converts PostGIS tables (or "
+"queries) into ESRI Shape files. For more verbose documentation, see the "
+"online help, and the manual pages."
+msgstr ""
+"El cargador se llama <filename>shp2pgsql</filename> y convierte ficheros "
+"Shape de ESRI en sentencias SQL necesarias para cargarlo en PostGIS/"
+"PostgreSQL. El dumper se llama <filename>pgsql2shp</filename> y convierte "
+"tablas PostGIS (o sentencias) en ficheros Shape de ESRI. Para mayor "
+"información, puedes ver la información en linea y las pagnas del manual."
+
+#~ msgid ""
+#~ "The <varname>postgis_comments.sql</varname>, <varname>raster_comments."
+#~ "sql</varname>, <varname>topology_comments.sql</varname> generate quick "
+#~ "help tips for each function that can be accessed via pgAdmin III or psql. "
+#~ "In psql with a command of the form e.g.<varname>\\dd ST_SetPoint</varname>"
+#~ msgstr ""
+#~ "Los ficheros <varname>postgis_comments.sql</varname>, "
+#~ "<varname>raster_comments.sql</varname>, <varname>topology_comments.sql</"
+#~ "varname> generan comentarios de ayuda para cada funcion acesible desde "
+#~ "pgAdmin III o psql. Un ejemplo de comando psql para obtener esta ayuda "
+#~ "es<varname>\\dd ST_SetPoint</varname>"
+
+#~ msgid ""
+#~ "<filename>topology_comments.sql</filename> since its an optional feature "
+#~ "is not installed by <command>make install</command> or <command>make "
+#~ "comments-install</command>. However if you do a <command>make comments</"
+#~ "command> or <command>make topology_comments.sql</command>, it will be "
+#~ "generated in the docs folder"
+#~ msgstr ""
+#~ "Debido a que es una característica opcional, <filename>topology_comments."
+#~ "sql</filename> no se instala con  <command>make install</command> o "
+#~ "<command>make comments-install</command>. De todas formas si escribimos "
+#~ "el comando<command>make comments</command> o <command>make "
+#~ "topology_comments.sql</command>, se generaran los comentarios en la "
+#~ "carpeta docs."
+
+#~ msgid ""
+#~ "CUnit - A Unit testing framework for C - Version 2.1-0\n"
+#~ "         http://cunit.sourceforge.net/\n"
+#~ "\n"
+#~ "\n"
+#~ "Suite: print_suite\n"
+#~ "  Test: test_lwprint_default_format ... passed\n"
+#~ "  Test: test_lwprint_format_orders ... passed\n"
+#~ "  Test: test_lwprint_optional_format ... passed\n"
+#~ "  Test: test_lwprint_oddball_formats ... passed\n"
+#~ "  Test: test_lwprint_bad_formats ... passed\n"
+#~ "Suite: Misc Suite\n"
+#~ "  Test: test_misc_force_2d ... passed\n"
+#~ "  Test: test_misc_simplify ... passed\n"
+#~ "  Test: test_misc_count_vertices ... passed\n"
+#~ "  Test: test_misc_area ... passed\n"
+#~ "  Test: test_misc_wkb ... passed\n"
+#~ "Suite: PointArray Suite\n"
+#~ "  Test: test_ptarray_append_point ... passed\n"
+#~ "  Test: test_ptarray_append_ptarray ... passed\n"
+#~ "Suite: PostGIS Computational Geometry Suite\n"
+#~ "  Test: test_lw_segment_side ... passed\n"
+#~ "  Test: test_lw_segment_intersects ... passed\n"
+#~ "  Test: test_lwline_crossing_short_lines ... passed\n"
+#~ "  Test: test_lwline_crossing_long_lines ... passed\n"
+#~ "  Test: test_lwline_crossing_bugs ... passed\n"
+#~ "  Test: test_lwpoint_set_ordinate ... passed\n"
+#~ "  Test: test_lwpoint_get_ordinate ... passed\n"
+#~ "  Test: test_point_interpolate ... passed\n"
+#~ "  Test: test_lwline_clip ... passed\n"
+#~ "  Test: test_lwline_clip_big ... passed\n"
+#~ "  Test: test_lwmline_clip ... passed\n"
+#~ "  Test: test_geohash_point ... passed\n"
+#~ "  Test: test_geohash_precision ... passed\n"
+#~ "  Test: test_geohash ... passed\n"
+#~ "  Test: test_isclosed ... passed\n"
+#~ "Suite: PostGIS Measures Suite\n"
+#~ "  Test: test_mindistance2d_tolerance ... passed\n"
+#~ "  Test: test_rect_tree_contains_point ... passed\n"
+#~ "  Test: test_rect_tree_intersects_tree ... passed\n"
+#~ "  Test: test_lwgeom_segmentize2d ... passed\n"
+#~ "Suite: WKT Out Suite\n"
+#~ "  Test: test_wkt_out_point ... passed\n"
+#~ "  Test: test_wkt_out_linestring ... passed\n"
+#~ "  Test: test_wkt_out_polygon ... passed\n"
+#~ "  Test: test_wkt_out_multipoint ... passed\n"
+#~ "  Test: test_wkt_out_multilinestring ... passed\n"
+#~ ":\n"
+#~ ":\n"
+#~ "--Run Summary: Type      Total     Ran  Passed  Failed\n"
+#~ "               suites       17      17     n/a       0\n"
+#~ "               tests       143     143     143       0\n"
+#~ "               asserts    1228    1228    1228       0\n"
+#~ "\n"
+#~ "\n"
+#~ "Creating spatial db postgis_reg\n"
+#~ " Postgis 2.0.0SVN - 2011-01-11 15:33:37\n"
+#~ "   GEOS: 3.3.0-CAPI-1.7.0\n"
+#~ "   PROJ: Rel. 4.6.1, 21 August 2008\n"
+#~ "\n"
+#~ "Running tests\n"
+#~ "\n"
+#~ " loader/Point.............. ok\n"
+#~ " loader/PointM.............. ok\n"
+#~ " loader/PointZ.............. ok\n"
+#~ " loader/MultiPoint.............. ok\n"
+#~ " loader/MultiPointM.............. ok\n"
+#~ " loader/MultiPointZ.............. ok\n"
+#~ " loader/Arc.............. ok\n"
+#~ " loader/ArcM.............. ok\n"
+#~ " loader/ArcZ.......... ok\n"
+#~ " loader/Polygon.............. ok\n"
+#~ " loader/PolygonM.............. ok\n"
+#~ " loader/PolygonZ.............. ok\n"
+#~ " regress. ok\n"
+#~ " regress_index. ok\n"
+#~ " regress_index_nulls. ok\n"
+#~ " lwgeom_regress. ok\n"
+#~ " regress_lrs. ok\n"
+#~ " removepoint. ok\n"
+#~ " setpoint. ok\n"
+#~ " simplify. ok\n"
+#~ " snaptogrid. ok\n"
+#~ " affine. ok\n"
+#~ " measures. ok\n"
+#~ " long_xact. ok\n"
+#~ " ctors. ok\n"
+#~ " sql-mm-serialize. ok\n"
+#~ " sql-mm-circularstring. ok\n"
+#~ " sql-mm-compoundcurve. ok\n"
+#~ " sql-mm-curvepoly. ok\n"
+#~ " sql-mm-general. ok\n"
+#~ " sql-mm-multicurve. ok\n"
+#~ " sql-mm-multisurface. ok\n"
+#~ " polyhedralsurface. ok\n"
+#~ " out_geometry. ok\n"
+#~ " out_geography. ok\n"
+#~ " in_gml. ok\n"
+#~ " in_kml. ok\n"
+#~ " iscollection. ok\n"
+#~ " regress_ogc. ok\n"
+#~ " regress_ogc_cover. ok\n"
+#~ " regress_ogc_prep. ok\n"
+#~ " regress_bdpoly. ok\n"
+#~ " regress_proj. ok\n"
+#~ " dump. ok\n"
+#~ " dumppoints. ok\n"
+#~ " wmsservers_new. ok\n"
+#~ " tickets. ok\n"
+#~ " remove_repeated_points. ok\n"
+#~ " split. ok\n"
+#~ " relatematch. ok\n"
+#~ " regress_buffer_params. ok\n"
+#~ " hausdorff. ok\n"
+#~ " clean. ok\n"
+#~ " sharedpaths. ok\n"
+#~ " snap. ok\n"
+#~ "\n"
+#~ "Run tests: 55\n"
+#~ "Failed: 0"
+#~ msgstr ""
+#~ "CUnit - A Unit testing framework for C - Version 2.1-0\n"
+#~ "         http://cunit.sourceforge.net/\n"
+#~ "\n"
+#~ "\n"
+#~ "Suite: print_suite\n"
+#~ "  Test: test_lwprint_default_format ... passed\n"
+#~ "  Test: test_lwprint_format_orders ... passed\n"
+#~ "  Test: test_lwprint_optional_format ... passed\n"
+#~ "  Test: test_lwprint_oddball_formats ... passed\n"
+#~ "  Test: test_lwprint_bad_formats ... passed\n"
+#~ "Suite: Misc Suite\n"
+#~ "  Test: test_misc_force_2d ... passed\n"
+#~ "  Test: test_misc_simplify ... passed\n"
+#~ "  Test: test_misc_count_vertices ... passed\n"
+#~ "  Test: test_misc_area ... passed\n"
+#~ "  Test: test_misc_wkb ... passed\n"
+#~ "Suite: PointArray Suite\n"
+#~ "  Test: test_ptarray_append_point ... passed\n"
+#~ "  Test: test_ptarray_append_ptarray ... passed\n"
+#~ "Suite: PostGIS Computational Geometry Suite\n"
+#~ "  Test: test_lw_segment_side ... passed\n"
+#~ "  Test: test_lw_segment_intersects ... passed\n"
+#~ "  Test: test_lwline_crossing_short_lines ... passed\n"
+#~ "  Test: test_lwline_crossing_long_lines ... passed\n"
+#~ "  Test: test_lwline_crossing_bugs ... passed\n"
+#~ "  Test: test_lwpoint_set_ordinate ... passed\n"
+#~ "  Test: test_lwpoint_get_ordinate ... passed\n"
+#~ "  Test: test_point_interpolate ... passed\n"
+#~ "  Test: test_lwline_clip ... passed\n"
+#~ "  Test: test_lwline_clip_big ... passed\n"
+#~ "  Test: test_lwmline_clip ... passed\n"
+#~ "  Test: test_geohash_point ... passed\n"
+#~ "  Test: test_geohash_precision ... passed\n"
+#~ "  Test: test_geohash ... passed\n"
+#~ "  Test: test_isclosed ... passed\n"
+#~ "Suite: PostGIS Measures Suite\n"
+#~ "  Test: test_mindistance2d_tolerance ... passed\n"
+#~ "  Test: test_rect_tree_contains_point ... passed\n"
+#~ "  Test: test_rect_tree_intersects_tree ... passed\n"
+#~ "  Test: test_lwgeom_segmentize2d ... passed\n"
+#~ "Suite: WKT Out Suite\n"
+#~ "  Test: test_wkt_out_point ... passed\n"
+#~ "  Test: test_wkt_out_linestring ... passed\n"
+#~ "  Test: test_wkt_out_polygon ... passed\n"
+#~ "  Test: test_wkt_out_multipoint ... passed\n"
+#~ "  Test: test_wkt_out_multilinestring ... passed\n"
+#~ ":\n"
+#~ ":\n"
+#~ "--Run Summary: Type      Total     Ran  Passed  Failed\n"
+#~ "               suites       17      17     n/a       0\n"
+#~ "               tests       143     143     143       0\n"
+#~ "               asserts    1228    1228    1228       0\n"
+#~ "\n"
+#~ "\n"
+#~ "Creating spatial db postgis_reg\n"
+#~ " Postgis 2.0.0SVN - 2011-01-11 15:33:37\n"
+#~ "   GEOS: 3.3.0-CAPI-1.7.0\n"
+#~ "   PROJ: Rel. 4.6.1, 21 August 2008\n"
+#~ "\n"
+#~ "Running tests\n"
+#~ "\n"
+#~ " loader/Point.............. ok\n"
+#~ " loader/PointM.............. ok\n"
+#~ " loader/PointZ.............. ok\n"
+#~ " loader/MultiPoint.............. ok\n"
+#~ " loader/MultiPointM.............. ok\n"
+#~ " loader/MultiPointZ.............. ok\n"
+#~ " loader/Arc.............. ok\n"
+#~ " loader/ArcM.............. ok\n"
+#~ " loader/ArcZ.......... ok\n"
+#~ " loader/Polygon.............. ok\n"
+#~ " loader/PolygonM.............. ok\n"
+#~ " loader/PolygonZ.............. ok\n"
+#~ " regress. ok\n"
+#~ " regress_index. ok\n"
+#~ " regress_index_nulls. ok\n"
+#~ " lwgeom_regress. ok\n"
+#~ " regress_lrs. ok\n"
+#~ " removepoint. ok\n"
+#~ " setpoint. ok\n"
+#~ " simplify. ok\n"
+#~ " snaptogrid. ok\n"
+#~ " affine. ok\n"
+#~ " measures. ok\n"
+#~ " long_xact. ok\n"
+#~ " ctors. ok\n"
+#~ " sql-mm-serialize. ok\n"
+#~ " sql-mm-circularstring. ok\n"
+#~ " sql-mm-compoundcurve. ok\n"
+#~ " sql-mm-curvepoly. ok\n"
+#~ " sql-mm-general. ok\n"
+#~ " sql-mm-multicurve. ok\n"
+#~ " sql-mm-multisurface. ok\n"
+#~ " polyhedralsurface. ok\n"
+#~ " out_geometry. ok\n"
+#~ " out_geography. ok\n"
+#~ " in_gml. ok\n"
+#~ " in_kml. ok\n"
+#~ " iscollection. ok\n"
+#~ " regress_ogc. ok\n"
+#~ " regress_ogc_cover. ok\n"
+#~ " regress_ogc_prep. ok\n"
+#~ " regress_bdpoly. ok\n"
+#~ " regress_proj. ok\n"
+#~ " dump. ok\n"
+#~ " dumppoints. ok\n"
+#~ " wmsservers_new. ok\n"
+#~ " tickets. ok\n"
+#~ " remove_repeated_points. ok\n"
+#~ " split. ok\n"
+#~ " relatematch. ok\n"
+#~ " regress_buffer_params. ok\n"
+#~ " hausdorff. ok\n"
+#~ " clean. ok\n"
+#~ " sharedpaths. ok\n"
+#~ " snap. ok\n"
+#~ "\n"
+#~ "Run tests: 55\n"
+#~ "Failed: 0"
+
+#~ msgid ""
+#~ "If you are installing Tiger geocoder for the first time edit either the "
+#~ "<filename>create_geocode.bat</filename> script If you are on windows or "
+#~ "the <filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac "
+#~ "OSX with your PostgreSQL specific settings and run the corresponding "
+#~ "script from the commandline. If you don't edit this file, it will just "
+#~ "contain common case locations of items. You can edit the generated script "
+#~ "after the fact when you run the <xref linkend=\"Loader_Generate_Script\"/"
+#~ "> command."
+#~ msgstr ""
+#~ "Si es la primera vez que instalas en geocodificador Tiger, edita el "
+#~ "script <filename>create_geocode.bat</filename> si estas en windows o "
+#~ "<filename>create_geocode.sh</filename> si estas en Linux/Unix/Mac OSX con "
+#~ "las propiedades de tu instalación PostgreSQL y ejecuta el script "
+#~ "correspondiente el tu linea de comandos. Si no editas este fichero, "
+#~ "contendrá los emplazamientos por defecto. Puedes editar el script "
+#~ "generado después, cuando ejecutas el comando <xref linkend="
+#~ "\"Loader_Generate_Script\"/>"
diff --git a/doc/po/es/introduction.xml.po b/doc/po/es/introduction.xml.po
new file mode 100644
index 0000000..d83be90
--- /dev/null
+++ b/doc/po/es/introduction.xml.po
@@ -0,0 +1,676 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-28 08:33+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: introduction.xml:3
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: introduction.xml:5
+#, no-c-format
+msgid ""
+"PostGIS was developed by Refractions Research Inc, as a spatial database "
+"technology research project. Refractions is a GIS and database consulting "
+"company in Victoria, British Columbia, Canada, specializing in data "
+"integration and custom software development. We plan on supporting and "
+"developing PostGIS to support a range of important GIS functionality, "
+"including full OpenGIS support, advanced topological constructs (coverages, "
+"surfaces, networks), desktop user interface tools for viewing and editing "
+"GIS data, and web-based access tools."
+msgstr ""
+"PostGIS fue desarrollado por Refraction Research Inc, como un  proyecto de "
+"investigación en tecnología de bases de datos espaciales. Refractions es una "
+"compañía de consultoría en SIG y Bases de Datos ubicada en Victoria, "
+"Columbia Británica, Canada, especializada integración de datos y desarrollo "
+"personalizado de Software. Planeamos seguir dando soporte y desarrollando "
+"PostGIS para dar soporte a una gran variedad de funcionalidad SIG, incluido "
+"soporte completo a OpenGIS, constructores de topología avanzados(coberturas, "
+"superficies, redes), herramientas de escritorio para visualizar y editar "
+"datos SIG, y herramientas de acceso web."
+
+#. Tag: para
+#: introduction.xml:15
+#, no-c-format
+msgid ""
+"PostGIS is an incubation project of the OSGeo Foundation. PostGIS is being "
+"continually improved and funded by many FOSS4G Developers as well as "
+"corporations all over the world that gain great benefit from its "
+"functionality and versatility."
+msgstr ""
+"PostGIS es un proyecto en incubación de la fundación OSGeo. PostGIS esta "
+"siendo mejorado y financiado constantemente por muchos desarrolladores de "
+"FOSS4G, así como por compañías de todo el mundo que hacen beneficios gracias "
+"a sus funcionalidad y versatilidad."
+
+#. Tag: title
+#: introduction.xml:21
+#, no-c-format
+msgid "Project Steering Committee"
+msgstr "Comité de Dirección del Proyecto (Project Steering Committee)"
+
+#. Tag: para
+#: introduction.xml:22
+#, no-c-format
+msgid ""
+"The PostGIS Project Steering Committee (PSC) coordinates the general "
+"direction, release cycles, documentation, and outreach efforts for the "
+"PostGIS project. In addition the PSC provides general user support, accepts "
+"and approves patches from the general PostGIS community and votes on "
+"miscellaneous issues involving PostGIS such as developer commit access, new "
+"PSC members or significant API changes."
+msgstr ""
+"El Comité de Dirección del Proyecto PostGIS (PSC por sus siglas en Ingles, "
+"Project Steering Committee) coordina la dirección general, ciclos de "
+"publicación,documentación, y el alcance de los esfuerzos para el proyecto "
+"PostGIS. Ademas el PSC da soporte general a usuarios, acepta y aprueba los "
+"parches de la comunidad general de PostGIS y vota sobre diversos asuntos "
+"relacionados con PostGIS como el acceso de nuevos desarrolladores, los "
+"nuevos miembros del PSC o cambios importantes en el API."
+
+#. Tag: term
+#: introduction.xml:31
+#, no-c-format
+msgid "Mark Cave-Ayland"
+msgstr "Mark Cave-Ayland"
+
+#. Tag: para
+#: introduction.xml:33
+#, no-c-format
+msgid ""
+"Coordinates bug fixing and maintenance effort, alignment of PostGIS with "
+"PostgreSQL releases, spatial index selectivity and binding, loader/dumper, "
+"and Shapefile GUI Loader, integration of new and new function enhancements."
+msgstr ""
+"Coordina la corrección de errores y esfuerzo de mantenimiento, el "
+"alineamiento de PostGIS con liberación de versiones de PostgreSQL, "
+"selecciona y obliga a cumplir con indices espaciales, carga/dumper, y la GUI "
+"de carga de Shapefiles, integración de nuevas funciones y sus mejoras."
+
+#. Tag: term
+#: introduction.xml:40
+#, no-c-format
+msgid "Regina Obe"
+msgstr "Regina Obe"
+
+#. Tag: para
+#: introduction.xml:42
+#, no-c-format
+msgid ""
+"Buildbot Maintenance, windows production and experimental builds, "
+"Documentation, general user support on PostGIS newsgroup, X3D support, Tiger "
+"Geocoder Support, management functions, and smoke testing new functionality "
+"or major code changes."
+msgstr ""
+"Mantenimiento Buildbot, paquetes Windows de producción y experimentales, "
+"documentación, apoyo a los usuarios en general y al grupo de noticias "
+"PostGIS, soporte X3D,soporte de Tiger Geocoder, funciones de gestión, y el "
+"testado de una nueva funcionalidad o grandes cambios en el código."
+
+#. Tag: term
+#: introduction.xml:49
+#, no-c-format
+msgid "Bborie Park"
+msgstr "Bborie Park"
+
+#. Tag: para
+#: introduction.xml:51
+#, no-c-format
+msgid ""
+"Raster development, integration with GDAL, raster loader, user support, "
+"general bug fixing, testing on various OS (Slackware, Mac, Windows, and more)"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:56
+#, no-c-format
+msgid "Paul Ramsey (Chair)"
+msgstr "Paul Ramsey (Chair)"
+
+#. Tag: para
+#: introduction.xml:58
+#, fuzzy, no-c-format
+msgid ""
+"Co-founder of PostGIS project. General bug fixing, geography support, "
+"geography and geometry index support (2D, 3D, nD index and anything spatial "
+"index), underlying geometry internal structures, PointCloud (in "
+"development), GEOS functionality integration and alignment with GEOS "
+"releases, loader/dumper, and Shapefile GUI loader."
+msgstr ""
+"Cofundador del proyecto PostGIS. Fijado de errores general, soporte al tipo "
+"geography, soporte de indices geográficos y geométricos (2D, 3D, nD y "
+"cualquier indice espacial), estructuras internas geometría subyacente, "
+"integración de funcionalidad GEOS y la alineación con la librería GEOS, "
+"cargador / descargador, y el cargador de Shapefile GUI ."
+
+#. Tag: term
+#: introduction.xml:64
+#, no-c-format
+msgid "Sandro Santilli"
+msgstr "Sandro Santilli"
+
+#. Tag: para
+#: introduction.xml:67
+#, no-c-format
+msgid ""
+"Bug fixes and maintenance and integration of new GEOS functionality and "
+"alignment with GEOS releases, Topology support, and Raster framework and low "
+"level api functions."
+msgstr ""
+"Correccion de errores y mantenimiento e integración de nuevas funcionalidad "
+"GEOS y alineamiento con nuevas versiones GEOS, soporte del modulo Topology, "
+"y el framework Raster y funciones API de bajo nivel"
+
+#. Tag: title
+#: introduction.xml:74
+#, fuzzy, no-c-format
+msgid "Core Contributors Present"
+msgstr "Colaboradores Pasados y Presentes"
+
+#. Tag: term
+#: introduction.xml:77
+#, no-c-format
+msgid "Jorge Arévalo"
+msgstr "Jorge Arévalo"
+
+#. Tag: para
+#: introduction.xml:79
+#, no-c-format
+msgid "Raster development, GDAL driver support, loader"
+msgstr "Desarrollo raster, soporte del driver GDAL, cargador"
+
+#. Tag: term
+#: introduction.xml:84
+#, no-c-format
+msgid "Nicklas Avén"
+msgstr "Nicklas Avén"
+
+#. Tag: para
+#: introduction.xml:87
+#, fuzzy, no-c-format
+msgid ""
+"Distance function enhancements (including 3D distance and relationship "
+"functions) and additions, Tiny WKB output format (TWKB) (in development) and "
+"general user support"
+msgstr ""
+"Mejoras de las funciones de Distancia (incluyendo distancia 3D y funciones "
+"relacionadas) y otras adiciones, test en Windows, y soporte a usuarios en "
+"general."
+
+#. Tag: term
+#: introduction.xml:92
+#, no-c-format
+msgid "Olivier Courtin"
+msgstr "Olivier Courtin"
+
+#. Tag: para
+#: introduction.xml:94
+#, no-c-format
+msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
+msgstr ""
+"Entrada y salida XML (KML,GML)/Funciones GeoJSON, soporte 3D y corrección de "
+"errores."
+
+#. Tag: term
+#: introduction.xml:99
+#, no-c-format
+msgid "Mateusz Loskot"
+msgstr "Mateusz Loskot"
+
+#. Tag: para
+#: introduction.xml:101
+#, no-c-format
+msgid ""
+"CMake support for PostGIS, built original raster loader in python and low "
+"level raster api functions"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:106
+#, no-c-format
+msgid "Pierre Racine"
+msgstr "Pierre Racine"
+
+#. Tag: para
+#: introduction.xml:108
+#, no-c-format
+msgid "Raster overall architecture, prototyping, programming support"
+msgstr "Arquitectura, prototipo y soporte en la programación Raster."
+
+#. Tag: term
+#: introduction.xml:113
+#, no-c-format
+msgid "David Zwarg"
+msgstr "David Zwarg"
+
+#. Tag: para
+#: introduction.xml:115
+#, no-c-format
+msgid "Raster development (mostly map algebra analytic functions)"
+msgstr ""
+
+#. Tag: title
+#: introduction.xml:121
+#, fuzzy, no-c-format
+msgid "Core Contributors Past"
+msgstr "Colaboradores Pasados y Presentes"
+
+#. Tag: term
+#: introduction.xml:125
+#, no-c-format
+msgid "Chris Hodgson"
+msgstr "Chris Hodgson"
+
+#. Tag: para
+#: introduction.xml:127
+#, no-c-format
+msgid ""
+"Prior PSC Member. General development, site and buildbot maintenance, OSGeo "
+"incubation management"
+msgstr ""
+"Anterior miembro del PSC. Desarrollo en general, mantenimiento del sitio web "
+"y buildbot, gestor de la incubación en el OSGeo"
+
+#. Tag: term
+#: introduction.xml:131
+#, no-c-format
+msgid "Kevin Neufeld"
+msgstr "Kevin Neufeld"
+
+#. Tag: para
+#: introduction.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"Prior PSC Member. Documentation and documentation support tools, buildbot "
+"maintenance, advanced user support on PostGIS newsgroup, and PostGIS "
+"maintenance function enhancements."
+msgstr ""
+"Anterior miembro del PSC. Documentación y soporte de herramientas de "
+"documentación, soporte en el grupo de noticias PostGIS para usuarios "
+"avanzados y mejoras en las funciones de mantenimiento de PostGIS."
+
+#. Tag: term
+#: introduction.xml:139
+#, no-c-format
+msgid "Dave Blasby"
+msgstr "Dave Blasby"
+
+#. Tag: para
+#: introduction.xml:142
+#, no-c-format
+msgid ""
+"The original developer/Co-founder of PostGIS. Dave wrote the server side "
+"objects, index bindings, and many of the server side analytical functions."
+msgstr ""
+"El desarrollado/Cofundador de PostGIS original. Dave escribió el código de "
+"los objetos del lado del servidor, enlaces de los indices y muchas otras "
+"funciones analíticas del lado del servidor."
+
+#. Tag: term
+#: introduction.xml:149
+#, no-c-format
+msgid "Jeff Lounsbury"
+msgstr "Jeff Lounsbury"
+
+#. Tag: para
+#: introduction.xml:151
+#, no-c-format
+msgid ""
+"Original development of the Shape file loader/dumper. Current PostGIS "
+"Project Owner representative."
+msgstr ""
+"Desarrollo original del cargador/descargador de ficheros Shape. Es el "
+"propietario representativo actual del proyecto PostGIS."
+
+#. Tag: term
+#: introduction.xml:157
+#, no-c-format
+msgid "Mark Leslie"
+msgstr "Mark Leslie"
+
+#. Tag: para
+#: introduction.xml:159
+#, no-c-format
+msgid ""
+"Ongoing maintenance and development of core functions. Enhanced curve "
+"support. Shapefile GUI loader."
+msgstr ""
+"Mantenimiento y desarrollo de funciones básicas. Soporte de la curva de "
+"mejora. Cargador de Shapefiles."
+
+#. Tag: title
+#: introduction.xml:165
+#, fuzzy, no-c-format
+msgid "Other Contributors"
+msgstr "Otras contribuciones: Individuales"
+
+#. Tag: term
+#: introduction.xml:168
+#, no-c-format
+msgid "Individual Contributors"
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:171
+#, fuzzy, no-c-format
+msgid ""
+"In alphabetical order: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas "
+"Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, "
+"Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. "
+"Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David "
+"Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald "
+"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, "
+"Jason Smith, Jeff Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus "
+"Foerster, Kris Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de "
+"Reyna, Mark Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, "
+"Michael Fuhr, Nathan Wagner, Nathaniel Clay, Nikita Shulga, Norman Vine, "
+"Rafal Magda, Ralph Mason, Richard Greenwood, Silvio Grosso, Steffen Macke, "
+"Stephen Frost, Tom van Tilburg, Vincent Mora, Vincent Picavet"
+msgstr ""
+"En orden alfabético: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas Forø "
+"Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, "
+"Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. "
+"Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David "
+"Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald "
+"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, Jeff "
+"Adams, Jose Carlos Martinez Llario, Kashif Rasul, Klaus Foerster, Kris "
+"Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de Reyna, Mark "
+"Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, Michael Fuhr, "
+"Nikita Shulga, Norman Vine, Rafal Magda, Ralph Mason, Richard Greenwood, "
+"Silvio Grosso, Steffen Macke, Stephen Frost, Tom van Tilburg, Vincent Picavet"
+
+#. Tag: term
+#: introduction.xml:232
+#, fuzzy, no-c-format
+msgid "Corporate Sponsors"
+msgstr "Otras contribuciones: Compañías Patrocinadoras"
+
+#. Tag: para
+#: introduction.xml:235
+#, no-c-format
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the PostGIS project"
+msgstr ""
+"Estas son compañías que han contribuido con tiempo de desarrollo, "
+"alojamiento o con aportes de capital económico al proyecto PostGIS"
+
+#. Tag: para
+#: introduction.xml:236
+#, fuzzy, no-c-format
+msgid ""
+"In alphabetical order: Arrival 3D, Associazione Italiana per l'Informazione "
+"Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, "
+"City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos "
+"Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala "
+"Consulting Engineers, LisaSoft, Logical Tracking & Tracing International "
+"AG, Michigan Tech Research Institute, Natural Resources Canada, Norwegian "
+"Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Palantir "
+"Technologies, Paragon Corporation, R3 GIS, Refractions Research, Regione "
+"Toscana-SIGTA, Safe Software, Sirius Corporation plc, Stadt Uster, UC Davis "
+"Center for Vectorborne Diseases, University of Laval, U.S Department of "
+"State (HIU), Vizzuality, Zonar Systems"
+msgstr ""
+"Por orden alfabético: Arrival 3D, Associazione Italiana per l'Informazione "
+"Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, "
+"City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos "
+"Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala "
+"Consulting Engineers, LisaSoft, Logical Tracking & Tracing International "
+"AG, Michigan Tech Research Institute, Norwegian Forest and Landscape "
+"Institute, OpenGeo, OSGeo, Oslandia, Paragon Corporation, R3 GIS, "
+"Refractions Research, Regione Toscana-SIGTA, Safe Software, Sirius "
+"Corporation plc, Stadt Uster, UC Davis Center for Vectorborne Diseases, "
+"University of Laval, U.S Department of State (HIU), Vizzuality, Zonar Systems"
+
+#. Tag: term
+#: introduction.xml:277
+#, no-c-format
+msgid "Crowd Funding Campaigns"
+msgstr "Campañas de Crowd Funding"
+
+#. Tag: para
+#: introduction.xml:280
+#, fuzzy, no-c-format
+msgid ""
+"Crowd funding campaigns are campaigns we run to get badly wanted features "
+"funded that can service a large number of people. Each campaign is "
+"specifically focused on a particular feature or set of features. Each "
+"sponsor chips in a small fraction of the needed funding and with enough "
+"people/organizations contributing, we have the funds to pay for the work "
+"that will help many. If you have an idea for a feature you think many others "
+"would be willing to co-fund, please post to the <ulink url=\"http://postgis."
+"net/mailman/listinfo/postgis-users\">PostGIS newsgroup</ulink> your thoughts "
+"and together we can make it happen."
+msgstr ""
+"Las campañas de Crowd Founding son campañas que realizamos para obtener "
+"fondos para tener algunas características mal financiadas y que puedan "
+"servir al mayor numero de gente. Cada una de estas campañas esta centrada en "
+"una característica o características en particular. Cada uno de los "
+"patrocinadores participa con una pequeña donación del total necesitado y con "
+"suficientes patrocinadores (particulares y/o empresas) participando, "
+"obtenemos los fondos necesarios para pagar por el trabajo que ayudará a "
+"muchos. Si tienes una idea de alguna característica que piensas que otros "
+"querrán cofinanciar, ponla en el <ulink url=\"http://www.postgis.org/mailman/"
+"listinfo/postgis-users\"> grupo de noticias PostGIS</ulink> y juntos podemos "
+"hacerlo posible."
+
+#. Tag: para
+#: introduction.xml:281
+#, no-c-format
+msgid ""
+"PostGIS 2.0.0 was the first release we tried this strategy. We used <ulink "
+"url=\"http://www.pledgebank.com\">PledgeBank</ulink> and we got two "
+"successful campaigns out of it."
+msgstr ""
+"PostGIS 2.0.0 fue la primer version en la que utilizamos esta estrategia. "
+"Utilizamos <ulink url=\"http://www.pledgebank.com\">PledgeBank</ulink> y "
+"hemos tenido dos campañas con éxito para realizarlas."
+
+#. Tag: para
+#: introduction.xml:282
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink> - 10 plus sponsors each "
+"contributed $250 USD to build toTopoGeometry function and beef up topology "
+"support in 2.0.0. It happened."
+msgstr ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink> - 10 patrocinadores "
+"contribuyeron con $ 250 USD cada uno para construir la función "
+"toTopoGeometry y con este apoyo,  topología 2.0.0. Sucedió."
+
+#. Tag: para
+#: introduction.xml:283
+#, fuzzy, no-c-format
+msgid ""
+"<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
+"\"bold\">postgis64windows</emphasis></ulink> - 20 someodd sponsors each "
+"contributed $100 USD to pay for the work needed to work out PostGIS 64-bit "
+"issues on windows. It happened. We now have a 64-bit release for PostGIS "
+"2.0.1 available on PostgreSQL stack builder."
+msgstr ""
+"<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
+"\"bold\">postgis64windows</emphasis></ulink> - 20 patrocinadores "
+"contribuyeron con USD $ 100  cada uno para pagar el trabajo necesario para "
+"elaborar PostGIS 64 bits en Windows. Sucedió. Ahora tenemos una versión beta "
+"de 64 bits para PostGIS 2.0.0 y otra final planificada para el lanzamiento "
+"que estará disponible en PostgreSQL stack builder."
+
+#. Tag: term
+#: introduction.xml:288
+#, no-c-format
+msgid "Important Support Libraries"
+msgstr "Librerías de soporte importantes"
+
+#. Tag: para
+#: introduction.xml:291
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink> geometry "
+"operations library, and the algorithmic work of Martin Davis in making it "
+"all work, ongoing maintenance and support of Mateusz Loskot, Sandro Santilli "
+"(strk), Paul Ramsey and others."
+msgstr ""
+"La libreria de operaciones geométricas <ulink url=\"http://trac.osgeo.org/"
+"geos/\">GEOS</ulink>, y el trabajo en los algoritmos de Martin Davis "
+"haciendo que funcione, mantenimiento y soporte continuos de Mateusz Loskot, "
+"Sandro Santilli (strk), Paul Ramsey y otros."
+
+#. Tag: para
+#: introduction.xml:296
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> Geospatial Data "
+"Abstraction Library, by Frank Warmerdam and others is used to power much of "
+"the raster functionality introduced in PostGIS 2.0.0. In kind, improvements "
+"needed in GDAL to support PostGIS are contributed back to the GDAL project."
+msgstr ""
+"La libreria Geospatial Data Abstraction <ulink url=\"http://trac.osgeo.org/"
+"gdal/\">GDAL</ulink>, de Frank Warmerdam y otros, se usa para las "
+"funcionalidades raster introducidas en la version PostGIS 2.0.0. De este "
+"modo, las mejoras necesarias en GDAL para dar soporte a PostGIS son "
+"introducidas en el proyecto GDAL."
+
+#. Tag: para
+#: introduction.xml:301
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> cartographic "
+"projection library, and the work of Gerald Evenden and Frank Warmerdam in "
+"creating and maintaining it."
+msgstr ""
+"La libreria de proyecciones cartográficas <ulink url=\"http://trac.osgeo.org/"
+"proj/\">Proj4</ulink>, y el trabajo de Gerald Evenden y Frank Warmerdam en "
+"la creación y mantenimiento de la misma."
+
+#. Tag: para
+#: introduction.xml:305
+#, no-c-format
+msgid ""
+"Last but not least, the <ulink url=\"http://www.postgresql.org\">PostgreSQL "
+"DBMS</ulink>, The giant that PostGIS stands on. Much of the speed and "
+"flexibility of PostGIS would not be possible without the extensibility, "
+"great query planner, GIST index, and plethora of SQL features provided by "
+"PostgreSQL."
+msgstr ""
+"Por ultimo pero no menos importante, <ulink url=\"http://www.postgresql.org"
+"\">PostgreSQL DBMS</ulink>, El Gigante sobre el que se apoya PostGIS. Gran "
+"parte de la velocidad y la flexibilidad de PostGIS no sería viable sin la "
+"extensibilidad, gran planeador de consultas, el índice de GIST, y gran "
+"cantidad de funciones SQL que ofrece PostgreSQL."
+
+#. Tag: title
+#: introduction.xml:314
+#, no-c-format
+msgid "More Information"
+msgstr "Mas información"
+
+#. Tag: para
+#: introduction.xml:318
+#, fuzzy, no-c-format
+msgid ""
+"The latest software, documentation and news items are available at the "
+"PostGIS web site, <ulink url=\"http://postgis.net\">http://postgis.net</"
+"ulink>."
+msgstr ""
+"La ultima version de software, documentación y noticias, están disponibles "
+"en el sitio web de PostGIS, <ulink url=\"http://www.postgis.org\">http://www."
+"postgis.org</ulink>."
+
+#. Tag: para
+#: introduction.xml:324
+#, no-c-format
+msgid ""
+"More information about the GEOS geometry operations library is available "
+"at<ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/</"
+"ulink>."
+msgstr ""
+"Mas información sobre la libreria de operaciones espaciales GEOS esta "
+"disponible en <ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo."
+"org/geos/</ulink>."
+
+#. Tag: para
+#: introduction.xml:330
+#, no-c-format
+msgid ""
+"More information about the Proj4 reprojection library is available at <ulink "
+"url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
+msgstr ""
+"Mas información sobre la librería de reproyección Proj4 se encuentra "
+"disponible en <ulink url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo."
+"org/proj/</ulink>."
+
+#. Tag: para
+#: introduction.xml:336
+#, no-c-format
+msgid ""
+"More information about the PostgreSQL database server is available at the "
+"PostgreSQL main site <ulink url=\"http://www.postgresql.org\">http://www."
+"postgresql.org</ulink>."
+msgstr ""
+"Mas información sobre el servidor de bases de datos PostgreSQL esta "
+"disponible en el sitio web de PostgreSQL <ulink url=\"http://www.postgresql."
+"org\">http://www.postgresql.org</ulink>."
+
+#. Tag: para
+#: introduction.xml:342
+#, no-c-format
+msgid ""
+"More information about GiST indexing is available at the PostgreSQL GiST "
+"development site, <ulink url=\"http://www.sai.msu.su/~megera/postgres/gist/"
+"\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
+msgstr ""
+"Mas información sobre el indexado GiST disponible en el sitio web de "
+"desarrollo de PostgreSQL GiST, <ulink url=\"http://www.sai.msu.su/~megera/"
+"postgres/gist/\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
+
+#. Tag: para
+#: introduction.xml:348
+#, no-c-format
+msgid ""
+"More information about MapServer internet map server is available at <ulink "
+"url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
+msgstr ""
+"Mas information sobre el servidor de mapas MapServer esta disponible en "
+"<ulink url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
+
+#. Tag: para
+#: introduction.xml:354
+#, no-c-format
+msgid ""
+"The "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple "
+"Features for Specification for SQL</ulink>" is available at the OpenGIS "
+"Consortium web site: <ulink url=\"http://www.opengeospatial.org/\">http://"
+"www.opengeospatial.org/</ulink>."
+msgstr ""
+"La especificación "<ulink url=\"http://www.opengeospatial.org/standards/"
+"sfs\">Simple Features for Specification for SQL</ulink>" esta "
+"disponible en el sitio web del OpenGIS Consortium: <ulink url=\"http://www."
+"opengeospatial.org/\">http://www.opengeospatial.org/</ulink>."
+
+#~ msgid "Raster development, raster loader"
+#~ msgstr "Desarrollo raster, cargador de raster"
+
+#~ msgid "Raster loader, low level raster api functions"
+#~ msgstr "Cargador de raster, funciones API de bajo nivel"
+
+#~ msgid "Raster development"
+#~ msgstr "Desarrollo raster"
diff --git a/doc/po/es/performance_tips.xml.po b/doc/po/es/performance_tips.xml.po
new file mode 100644
index 0000000..ef5c86c
--- /dev/null
+++ b/doc/po/es/performance_tips.xml.po
@@ -0,0 +1,605 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-02-17 16:29+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: performance_tips.xml:3
+#, no-c-format
+msgid "Performance tips"
+msgstr "Consejos de rendimiento"
+
+#. Tag: title
+#: performance_tips.xml:6
+#, no-c-format
+msgid "Small tables of large geometries"
+msgstr "Tablas pequeñas de geometrías grandes"
+
+#. Tag: title
+#: performance_tips.xml:9
+#, no-c-format
+msgid "Problem description"
+msgstr "Descripcion del problema"
+
+#. Tag: para
+#: performance_tips.xml:11
+#, no-c-format
+msgid ""
+"Current PostgreSQL versions (including 8.0) suffer from a query optimizer "
+"weakness regarding TOAST tables. TOAST tables are a kind of \"extension room"
+"\" used to store large (in the sense of data size) values that do not fit "
+"into normal data pages (like long texts, images or complex geometries with "
+"lots of vertices), see <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/storage-toast.html\">the PostgreSQL Documentation for TOAST</ulink> "
+"for more information)."
+msgstr ""
+"Versiones actuales de PostgreSQL (incluyendo la 8.0) tienen algunas "
+"debilidades en la optimización de consultas respecto a tablas TOAST. Las "
+"tablas TOAST son una especie de \"cámara de extensiones\" utilizadas para "
+"almacenar valores grandes (en sentido de tamaño de datos) que no se pueden "
+"mostrar en paginas de datos (como textos largos, imágenes o geometrías "
+"complejas con muchos vértices). Para mas información visita <ulink url="
+"\"http://www.postgresql.org/docs/current/static/storage-toast.html\">the "
+"PostgreSQL Documentation for TOAST</ulink>"
+
+#. Tag: para
+#: performance_tips.xml:19
+#, no-c-format
+msgid ""
+"The problem appears if you happen to have a table with rather large "
+"geometries, but not too much rows of them (like a table containing the "
+"boundaries of all European countries in high resolution). Then the table "
+"itself is small, but it uses lots of TOAST space. In our example case, the "
+"table itself had about 80 rows and used only 3 data pages, but the TOAST "
+"table used 8225 pages."
+msgstr ""
+"El problema aparece si ocurre que tienes una tabla con geometrías bastante "
+"grandes, pero no demasiadas filas de ellas (como una tabla que contiene los "
+"límites de todos los países europeos en alta resolución). A continuación, la "
+"tabla en sí es pequeña, pero utiliza una gran cantidad de espacio TOAST. En "
+"nuestro caso de ejemplo, la tabla en sí tenía alrededor de 80 filas y se "
+"utiliza sólo 3 páginas de datos, pero la tabla TOAST utiliza 8225 páginas."
+
+#. Tag: para
+#: performance_tips.xml:26
+#, no-c-format
+msgid ""
+"Now issue a query where you use the geometry operator && to search "
+"for a bounding box that matches only very few of those rows. Now the query "
+"optimizer sees that the table has only 3 pages and 80 rows. He estimates "
+"that a sequential scan on such a small table is much faster than using an "
+"index. And so he decides to ignore the GIST index. Usually, this estimation "
+"is correct. But in our case, the && operator has to fetch every "
+"geometry from disk to compare the bounding boxes, thus reading all TOAST "
+"pages, too."
+msgstr ""
+"Ahora al emitir una consulta en la que utilizas el operador geométrico &"
+"&  para buscar un límite que coincide sólo unas pocas de esas filas, el "
+"optimizador de consultas ve que la tabla sólo tiene 3 páginas y 80 filas. Se "
+"estima que un escaseo secuencial en una tabla pequeña de este tipo es mucho "
+"más rápida que usando un índice. Y por lo que decide ignorar el índice de "
+"GIST. Por lo general, esta estimación es correcta. Pero en nuestro caso, el "
+"operador && tiene que buscar en cada geometría del disco la "
+"comparación de los limites, y leer todas las páginas TOAST también."
+
+#. Tag: para
+#: performance_tips.xml:35
+#, no-c-format
+msgid ""
+"To see whether your suffer from this bug, use the \"EXPLAIN ANALYZE\" "
+"postgresql command. For more information and the technical details, you can "
+"read the thread on the postgres performance mailing list: http://archives."
+"postgresql.org/pgsql-performance/2005-02/msg00030.php"
+msgstr ""
+"Para comprobar si padeces de este error, utiliza el comando \"EXPLAIN ANALYZE"
+"\" postgresql. Para obtener más información y los detalles técnicos, puedes "
+"leer el hilo en la lista de correo de rendimiento postgres: http://archives."
+"postgresql.org/pgsql-performance/2005-02/msg00030.php"
+
+#. Tag: title
+#: performance_tips.xml:43
+#, no-c-format
+msgid "Workarounds"
+msgstr "Soluciones provisionales"
+
+#. Tag: para
+#: performance_tips.xml:45
+#, no-c-format
+msgid ""
+"The PostgreSQL people are trying to solve this issue by making the query "
+"estimation TOAST-aware. For now, here are two workarounds:"
+msgstr ""
+"La gente de PostgreSQL esta intentando resolver este problema haciendo la "
+"estimación de la consulta compatible con TOAST. Por el momento, aquí van dos "
+"soluciones provisionales:"
+
+#. Tag: para
+#: performance_tips.xml:48
+#, no-c-format
+msgid ""
+"The first workaround is to force the query planner to use the index. Send "
+"\"SET enable_seqscan TO off;\" to the server before issuing the query. This "
+"basically forces the query planner to avoid sequential scans whenever "
+"possible. So it uses the GIST index as usual. But this flag has to be set on "
+"every connection, and it causes the query planner to make misestimations in "
+"other cases, so you should \"SET enable_seqscan TO on;\" after the query."
+msgstr ""
+"La primera consiste en forzar la consulta a utilizar indices. Envia \"SET "
+"enable_seqscan TO off;\" al servidor antes de ejecutar la consulta. Esto, "
+"básicamente fuerza al planificador de consultas a  evitar exploraciones "
+"secuenciales siempre que sea posible. Por lo tanto, utiliza el índice GIST "
+"como de costumbre. Pero este comando debe ser establecido en cada conexión, "
+"y hace que el planeador de consultas cometa errores de estimación en otros "
+"casos, por lo que debes enviar al servidor \"SET enable_seqscan TO on;\" "
+"después de la consulta."
+
+#. Tag: para
+#: performance_tips.xml:56
+#, no-c-format
+msgid ""
+"The second workaround is to make the sequential scan as fast as the query "
+"planner thinks. This can be achieved by creating an additional column that "
+"\"caches\" the bbox, and matching against this. In our example, the commands "
+"are like:"
+msgstr ""
+"La segunda solución es hacer el escaseo secuencia tan rápido como el "
+"planificador de consultas  cree. Esto, se puede lograr creando una consulta "
+"que \"cachee\" los limites o bbox, y hacer coincidir en contra de esta. En "
+"nuestro ejemplo, los comandos son:"
+
+#. Tag: programlisting
+#: performance_tips.xml:61
+#, fuzzy, no-c-format
+msgid ""
+"SELECT "
+"AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
+"UPDATE mytable SET bbox = ST_Envelope(ST_Force2D(the_geom));"
+msgstr ""
+"SELECT "
+"AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
+"UPDATE mytable SET bbox = ST_Envelope(ST_Force_2d(the_geom));"
+
+#. Tag: para
+#: performance_tips.xml:63
+#, no-c-format
+msgid ""
+"Now change your query to use the && operator against bbox instead of "
+"geom_column, like:"
+msgstr ""
+"Ahora cambia tu consulta para utilizar el operador espacial && con "
+"bbox en vez de geom_column, así:"
+
+#. Tag: programlisting
+#: performance_tips.xml:66
+#, no-c-format
+msgid ""
+"SELECT geom_column \n"
+"FROM mytable \n"
+"WHERE bbox && ST_SetSRID('BOX3D(0 0,1 1)'::box3d,4326);"
+msgstr ""
+"SELECT geom_column \n"
+"FROM mytable \n"
+"WHERE bbox && ST_SetSRID('BOX3D(0 0,1 1)'::box3d,4326);"
+
+#. Tag: para
+#: performance_tips.xml:68
+#, no-c-format
+msgid ""
+"Of course, if you change or add rows to mytable, you have to keep the bbox "
+"\"in sync\". The most transparent way to do this would be triggers, but you "
+"also can modify your application to keep the bbox column current or run the "
+"UPDATE query above after every modification."
+msgstr ""
+"Por supuesto, si añades o cambias filas de \"mutable\", tienes que mantener "
+"el campo bbox sincronizado. La forma mas transparente de hacerlo son los "
+"triggers o funciones disparadoras, pero también puedes modificar tu "
+"aplicación para mantener la columna bbox o ejecutar la consulta UPDATE "
+"siguiente después de cada modificación."
+
+#. Tag: title
+#: performance_tips.xml:77
+#, no-c-format
+msgid "CLUSTERing on geometry indices"
+msgstr "CLUSTERing o indices geométricos"
+
+#. Tag: para
+#: performance_tips.xml:79
+#, no-c-format
+msgid ""
+"For tables that are mostly read-only, and where a single index is used for "
+"the majority of queries, PostgreSQL offers the CLUSTER command. This command "
+"physically reorders all the data rows in the same order as the index "
+"criteria, yielding two performance advantages: First, for index range scans, "
+"the number of seeks on the data table is drastically reduced. Second, if "
+"your working set concentrates to some small intervals on the indices, you "
+"have a more efficient caching because the data rows are spread along fewer "
+"data pages. (Feel invited to read the CLUSTER command documentation from the "
+"PostgreSQL manual at this point.)"
+msgstr ""
+"Para las tablas que en su mayoría son de sólo lectura, y donde se utiliza un "
+"índice único para la mayoría de las consultas, PostgreSQL ofrece el comando "
+"CLUSTER. Este comando reordena físicamente todas las filas de datos en el "
+"mismo orden que los criterios de índice, dando dos ventajas de rendimiento: "
+"En primer lugar, para los recorridos de intervalo del índice, el número de "
+"búsquedas en la tabla de datos se reduce drásticamente. En segundo lugar, si "
+"el conjunto de trabajo se concentra en algunos intervalos pequeños en los "
+"índices, tienes un caché más eficiente porque las filas de datos se "
+"distribuyen a lo largo de un menor número de páginas de datos. (Te invitamos "
+"a leer la documentación de comandos CLUSTER del manual de PostgreSQL sobre "
+"este tema.)"
+
+#. Tag: para
+#: performance_tips.xml:89
+#, no-c-format
+msgid ""
+"However, currently PostgreSQL does not allow clustering on PostGIS GIST "
+"indices because GIST indices simply ignores NULL values, you get an error "
+"message like:"
+msgstr ""
+"De todas formas, PostgreSQL no permite el \"clustering\" en indices GiST de "
+"PostGIS por que los indices GiST simplemente ignoran los valores NULL, "
+"tendrás el siguiente mensaje de error:"
+
+#. Tag: programlisting
+#: performance_tips.xml:93
+#, no-c-format
+msgid ""
+"lwgeom=# CLUSTER my_geom_index ON my_table; \n"
+"ERROR: cannot cluster when index access method does not handle null values\n"
+"HINT: You may be able to work around this by marking column \"the_geom\" NOT "
+"NULL."
+msgstr ""
+"lwgeom=# CLUSTER my_geom_index ON my_table; \n"
+"ERROR: cannot cluster when index access method does not handle null values\n"
+"HINT: You may be able to work around this by marking column \"the_geom\" NOT "
+"NULL."
+
+#. Tag: para
+#: performance_tips.xml:95
+#, no-c-format
+msgid ""
+"As the HINT message tells you, one can work around this deficiency by adding "
+"a \"not null\" constraint to the table:"
+msgstr ""
+"Como sugiere el mensaje de ayuda, podemos evitar esta deficiencia añadiendo "
+"una restricción \"not null\" a la tabla:"
+
+#. Tag: programlisting
+#: performance_tips.xml:98
+#, no-c-format
+msgid ""
+"lwgeom=# ALTER TABLE my_table ALTER COLUMN the_geom SET not null; \n"
+"ALTER TABLE"
+msgstr ""
+"lwgeom=# ALTER TABLE my_table ALTER COLUMN the_geom SET not null; \n"
+"ALTER TABLE"
+
+#. Tag: para
+#: performance_tips.xml:100
+#, no-c-format
+msgid ""
+"Of course, this will not work if you in fact need NULL values in your "
+"geometry column. Additionally, you must use the above method to add the "
+"constraint, using a CHECK constraint like \"ALTER TABLE blubb ADD CHECK "
+"(geometry is not null);\" will not work."
+msgstr ""
+"Por supuesto, esto no funcionará si necesitas valores NULL en tu columna de "
+"geometrías. Adicionalmente, debes utilizar el método anterior para añadir la "
+"restricción, utilizando restricciones CHEK como  \"ALTER TABLE blubb ADD "
+"CHECK (geómetra is not nulo);\" no funcionara."
+
+#. Tag: title
+#: performance_tips.xml:107
+#, no-c-format
+msgid "Avoiding dimension conversion"
+msgstr "Evitar la conversión de dimensión"
+
+#. Tag: para
+#: performance_tips.xml:109
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes, you happen to have 3D or 4D data in your table, but always access "
+"it using OpenGIS compliant ST_AsText() or ST_AsBinary() functions that only "
+"output 2D geometries. They do this by internally calling the ST_Force2D() "
+"function, which introduces a significant overhead for large geometries. To "
+"avoid this overhead, it may be feasible to pre-drop those additional "
+"dimensions once and forever:"
+msgstr ""
+"A veces, sucede que tienes datos en 3D o 4D en tus tablas pero siempre, al "
+"acceder a ella utilizando funciones conformes con OpenGIS como ST_AsText () "
+"o ST_AsBinary (), sólo devuelven geometrías 2D de salida. Esto ocurre por "
+"que lo hacen llamando internamente a la función ST_Force_2d (), que "
+"introduce una sobrecarga significativa para geometrías grandes . Para evitar "
+"esta sobrecarga, puede ser factible comprobar la validez de suprimir esas "
+"dimensiones adicionales de una vez por todas:"
+
+#. Tag: programlisting
+#: performance_tips.xml:116
+#, fuzzy, no-c-format
+msgid ""
+"UPDATE mytable SET the_geom = ST_Force2D(the_geom); \n"
+"VACUUM FULL ANALYZE mytable;"
+msgstr ""
+"UPDATE mytable SET the_geom = ST_Force_2d(the_geom); \n"
+"VACUUM FULL ANALYZE mytable;"
+
+#. Tag: para
+#: performance_tips.xml:118
+#, no-c-format
+msgid ""
+"Note that if you added your geometry column using AddGeometryColumn() "
+"there'll be a constraint on geometry dimension. To bypass it you will need "
+"to drop the constraint. Remember to update the entry in the geometry_columns "
+"table and recreate the constraint afterwards."
+msgstr ""
+"Ten en cuenta que si las has añadido a tu columna de geometría utilizando "
+"addGeometryColumn () habrá una restricción en la dimensión de la geometría. "
+"Para pasar la restricción por alto tendrás que quitarla. Recuerda actualizar "
+"la entrada en la tabla geometry_columns y volver a crear la restricción "
+"después."
+
+#. Tag: para
+#: performance_tips.xml:124
+#, no-c-format
+msgid ""
+"In case of large tables, it may be wise to divide this UPDATE into smaller "
+"portions by constraining the UPDATE to a part of the table via a WHERE "
+"clause and your primary key or another feasible criteria, and running a "
+"simple \"VACUUM;\" between your UPDATEs. This drastically reduces the need "
+"for temporary disk space. Additionally, if you have mixed dimension "
+"geometries, restricting the UPDATE by \"WHERE dimension(the_geom)>2\" "
+"skips re-writing of geometries that already are in 2D."
+msgstr ""
+"En el caso de tablas de gran tamaño, puede ser conveniente dividir este "
+"UPDATE en porciones más pequeñas, restringiendo la actualización de una "
+"parte de la tabla a través de una cláusula WHERE y su clave primaria o de "
+"otros criterios, y la ejecución de un simple \"VACUUM\"; entre los UPDATE. "
+"Esto reduce drásticamente la necesidad de espacio de disco temporal. Además, "
+"si has mezclado dimensiones de geometrías, que restringen el UPDATE con "
+"\"WHERE dimension(the_geom)>2\" salta la reescritura de geometrías que ya "
+"están en 2D."
+
+#. Tag: title
+#: performance_tips.xml:136
+#, no-c-format
+msgid "Tuning your configuration"
+msgstr "Ajusta tu configuración"
+
+#. Tag: para
+#: performance_tips.xml:138
+#, no-c-format
+msgid ""
+"These tips are taken from Kevin Neufeld's presentation \"Tips for the "
+"PostGIS Power User\" at the FOSS4G 2007 conference. Depending on your use of "
+"PostGIS (for example, static data and complex analysis vs frequently updated "
+"data and lots of users) these changes can provide significant speedups to "
+"your queries."
+msgstr ""
+"Estos consejos han sido tomados de la presentación de Kevin Neufeld \"Tips "
+"for the PostGIS Power User\" en la conferencia FOSS4G 2007. Dependiendo de "
+"tu uso de PostGIS (por ejemplo, datos estáticos y análisis complejo frente "
+"a  un montón de actualizaciones frecuentes de datos de los usuarios), estos "
+"cambios pueden proporcionar aceleraciones significativas a tus consultas."
+
+#. Tag: para
+#: performance_tips.xml:144
+#, no-c-format
+msgid ""
+"For a more tips (and better formatting), the original presentation is at "
+"<ulink url=\"http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117\"> http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117</ulink>."
+msgstr ""
+"Para más consejos (y mejoras de formato), la presentación original se "
+"encuentra en <ulink url=\"http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117\"> http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117</ulink>."
+
+#. Tag: title
+#: performance_tips.xml:151
+#, no-c-format
+msgid "Startup"
+msgstr "Puesta en marcha"
+
+#. Tag: para
+#: performance_tips.xml:153
+#, no-c-format
+msgid "These settings are configured in postgresql.conf:"
+msgstr "Estas opciones se configuran en postgresql.conf:"
+
+#. Tag: ulink
+#: performance_tips.xml:158
+#, no-c-format
+msgid "checkpoint_segments"
+msgstr "checkpoint_segments"
+
+#. Tag: para
+#: performance_tips.xml:163
+#, no-c-format
+msgid ""
+"Maximum number of log file segments between automatic WAL checkpoints (each "
+"segment is normally 16MB); default is 3"
+msgstr ""
+"Numero máximo de segmentos del fichero log entre puntos de control WAL "
+"automáticos (cada segmento tiene normalmente 16MB); el valor por defecto es 3"
+
+#. Tag: para
+#: performance_tips.xml:169
+#, no-c-format
+msgid ""
+"Set to at least 10 or 30 for databases with heavy write activity, or more "
+"for large database loads. Another article on the topic worth reading <ulink "
+"url=\"http://www.westnet.com/~gsmith/content/postgresql/chkp-bgw-83.htm"
+"\">Greg Smith: Checkpoint and Background writer</ulink>"
+msgstr ""
+"Se establece en al menos entre 10 o 30 para las bases de datos con la "
+"actividad de escritura pesada, o más para las grandes cargas de bases de "
+"datos. Otro artículo sobre el tema que vale la pena leer  <ulink url="
+"\"http://www.westnet.com/~gsmith/content/postgresql/chkp-bgw-83.htm\">Greg "
+"Smith: Checkpoint and Background writer</ulink>"
+
+#. Tag: para
+#: performance_tips.xml:175
+#, no-c-format
+msgid "Possibly store the xlog on a separate disk device"
+msgstr ""
+"Posibilidad de almacenar el xlog en un dispositivo de disco independiente"
+
+#. Tag: ulink
+#: performance_tips.xml:182
+#, no-c-format
+msgid "constraint_exclusion"
+msgstr "constraint_exclusion"
+
+#. Tag: para
+#: performance_tips.xml:187
+#, no-c-format
+msgid ""
+"Default: off (prior to PostgreSQL 8.4 and for PostgreSQL 8.4+ is set to "
+"partition)"
+msgstr ""
+"Por defecto:off (anterior a PostgreSQL 8.4 y para PostgreSQL 8.4+ esta "
+"seleccionado como partición)"
+
+#. Tag: para
+#: performance_tips.xml:192
+#, no-c-format
+msgid ""
+"This is generally used for table partitioning. If you are running PostgreSQL "
+"versions below 8.4, set to \"on\" to ensure the query planner will optimize "
+"as desired. As of PostgreSQL 8.4, the default for this is set to \"partition"
+"\" which is ideal for PostgreSQL 8.4 and above since it will force the "
+"planner to only analyze tables for constraint consideration if they are in "
+"an inherited hierarchy and not pay the planner penalty otherwise."
+msgstr ""
+"Esto se utiliza generalmente para la partición de tablas. Si estás "
+"ejecutando versiones anteriores a PostgreSQL 8.4 , se establece en \"on\" "
+"para garantizar que el planeador de consultas optimizará. A partir de "
+"PostgreSQL 8.4, el valor predeterminado para este está ajustado a \"partición"
+"\", que es ideal para PostgreSQL 8.4 y superiores, ya que obligará al "
+"planificador a analizar sólo las tablas para considerar las restricciones si "
+"están en una jerarquía hereditaria y no penalizar al planificador de otra "
+"manera ."
+
+#. Tag: ulink
+#: performance_tips.xml:202
+#, no-c-format
+msgid "shared_buffers"
+msgstr "shared_buffers"
+
+#. Tag: para
+#: performance_tips.xml:207
+#, no-c-format
+msgid "Default: ~32MB"
+msgstr "Por defecto: ~32MB"
+
+#. Tag: para
+#: performance_tips.xml:212
+#, no-c-format
+msgid "Set to about 1/3 to 3/4 of available RAM"
+msgstr "Cambialo a un valor entre 1/3 a 3/4 de la memoria RAM disponible."
+
+#. Tag: title
+#: performance_tips.xml:220
+#, no-c-format
+msgid "Runtime"
+msgstr "Runtime"
+
+#. Tag: para
+#: performance_tips.xml:222
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-WORK-MEM\">work_mem</ulink> (the memory used for sort "
+"operations and complex queries)"
+msgstr ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-WORK-MEM\">work_mem</ulink> (memoria utilizada para "
+"operaciones cortas y consultas complejas)"
+
+#. Tag: para
+#: performance_tips.xml:228
+#, no-c-format
+msgid "Default: 1MB"
+msgstr "Por defecto: 1MB"
+
+#. Tag: para
+#: performance_tips.xml:233
+#, no-c-format
+msgid "Adjust up for large dbs, complex queries, lots of RAM"
+msgstr "Ajuste para bases de datos grandes, consultas complejas, mucha RAM"
+
+#. Tag: para
+#: performance_tips.xml:238
+#, no-c-format
+msgid "Adjust down for many concurrent users or low RAM."
+msgstr "Ajuste para muchos usuarios concurrentes o menos RAM"
+
+#. Tag: para
+#: performance_tips.xml:243
+#, no-c-format
+msgid "If you have lots of RAM and few developers:"
+msgstr "Si tienes mucha RAM y algunos desarrolladores:"
+
+#. Tag: programlisting
+#: performance_tips.xml:245
+#, no-c-format
+msgid "SET work_mem TO 1200000;"
+msgstr "SET work_mem TO 1200000;"
+
+#. Tag: para
+#: performance_tips.xml:250
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</ulink> (used "
+"for VACUUM, CREATE INDEX, etc.)"
+msgstr ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</ulink> "
+"(utilizado en operaciones de VACUUM, CREATE INDEX, etc.)"
+
+#. Tag: para
+#: performance_tips.xml:256
+#, no-c-format
+msgid "Default: 16MB"
+msgstr "Por defecto: 16MB"
+
+#. Tag: para
+#: performance_tips.xml:261
+#, no-c-format
+msgid "Generally too low - ties up I/O, locks objects while swapping memory"
+msgstr ""
+"Generalmente muy bajo - cierra I/O, bloquea objetos en la memoria de "
+"intercambio"
+
+#. Tag: para
+#: performance_tips.xml:266
+#, no-c-format
+msgid ""
+"Recommend 32MB to 256MB on production servers w/lots of RAM, but depends on "
+"the # of concurrent users. If you have lots of RAM and few developers:"
+msgstr ""
+"Se recomienda de 32MB a 256MB en servidores de producción con mucha RAM, "
+"pero depende del numero de usuarios simultáneos. Si tienes mucha memoria RAM "
+"y algunos desarrolladores:"
+
+#. Tag: programlisting
+#: performance_tips.xml:269
+#, no-c-format
+msgid "SET maintainence_work_mem TO 1200000;"
+msgstr "SET maintainence_work_mem TO 1200000;"
diff --git a/doc/po/es/postgis.xml.po b/doc/po/es/postgis.xml.po
new file mode 100644
index 0000000..c49328a
--- /dev/null
+++ b/doc/po/es/postgis.xml.po
@@ -0,0 +1,75 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2013-2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-10-14 22:36+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: postgis.xml:127
+#, no-c-format
+msgid "PostGIS &last_release_version; Manual"
+msgstr "Manual PostGIS &last_release_version; "
+
+#. Tag: corpauthor
+#: postgis.xml:131
+#, no-c-format
+msgid "The PostGIS Development Group"
+msgstr ""
+
+#. Tag: affiliation
+#: postgis.xml:137
+#, no-c-format
+msgid ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>British Columbia</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
+msgstr ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>Columbia Britanica</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
+
+#. Tag: para
+#: postgis.xml:151
+#, no-c-format
+msgid ""
+"PostGIS is an extension to the PostgreSQL object-relational database system "
+"which allows GIS (Geographic Information Systems) objects to be stored in "
+"the database. PostGIS includes support for GiST-based R-Tree spatial "
+"indexes, and functions for analysis and processing of GIS objects."
+msgstr ""
+"PostGIS es una extension del sistema de base de datos relacional PostgreSQL "
+"que permite almacenar objetos SIG (Sistemas de Información Geografica) en la "
+"base de datos. PostGIS incluye soporte de indices de tipos basados en GiST R-"
+"Tree, y funciones de análisis y procesado de objetos SIG."
+
+#. Tag: para
+#: postgis.xml:160
+#, no-c-format
+msgid "This is the manual for version &last_release_version;"
+msgstr "Este es el manual de la version &last_release_version;"
+
+#. Tag: para
+#: postgis.xml:161
+#, no-c-format
+msgid ""
+"This work is licensed under a <ulink url=\"http://creativecommons.org/"
+"licenses/by-sa/3.0/\">Creative Commons Attribution-Share Alike 3.0 License</"
+"ulink>. Feel free to use this material any way you like, but we ask that you "
+"attribute credit to the PostGIS Project and wherever possible, a link back "
+"to <ulink url=\"http://postgis.net\">http://postgis.net</ulink>."
+msgstr ""
diff --git a/doc/po/es/reference.xml.po b/doc/po/es/reference.xml.po
new file mode 100644
index 0000000..6d01533
--- /dev/null
+++ b/doc/po/es/reference.xml.po
@@ -0,0 +1,73 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-02-14 12:45+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference.xml:3
+#, no-c-format
+msgid "PostGIS Reference"
+msgstr "Manual de Referencia PostGIS"
+
+#. Tag: para
+#: reference.xml:5
+#, no-c-format
+msgid ""
+"The functions given below are the ones which a user of PostGIS is likely to "
+"need. There are other functions which are required support functions to the "
+"PostGIS objects which are not of use to a general user."
+msgstr ""
+"Las siguientes funciones son las que probablemente necesite un usuario "
+"PortGIS . Existen otras funciones de soporte necesarias para los objetos "
+"PostGIS que no se usan por la mayoría de usuarios."
+
+#. Tag: para
+#: reference.xml:11
+#, no-c-format
+msgid ""
+"PostGIS has begun a transition from the existing naming convention to an SQL-"
+"MM-centric convention. As a result, most of the functions that you know and "
+"love have been renamed using the standard spatial type (ST) prefix. Previous "
+"functions are still available, though are not listed in this document where "
+"updated functions are equivalent. The non ST_ functions not listed in this "
+"documentation are deprecated and will be removed in a future release so STOP "
+"USING THEM."
+msgstr ""
+"PostGIS ha comenzado una transición de la convención de nomenclatura "
+"existente, a una convención SQL-MM-céntrica. Como resultado, la mayoría de "
+"las funciones que conoces y adoras han sido renombradas usando el prefijo "
+"espacial estándar (ST). Funciones anteriores están todavía disponibles, "
+"aunque no se enumeran en este documento donde las funciones actualizadas son "
+"equivalentes. Las funciones no st_ no mencionadas en esta documentación "
+"están en desuso y se eliminarán en una versión futura de modo que DEJA DE "
+"UTILIZARLAS."
+
+#. Tag: chapter
+#: reference.xml:16
+#, fuzzy, no-c-format
+msgid ""
+"&reference_type; &reference_guc; &reference_management; "
+"&reference_constructor; &reference_accessor; &reference_editor; "
+"&reference_output; &reference_operator; &reference_measure; "
+"&reference_sfcgal; &reference_processing; &reference_lrs; "
+"&reference_transaction; &reference_misc; &reference_exception;"
+msgstr ""
+"&reference_type; &reference_management; &reference_constructor; "
+"&reference_accessor; &reference_editor; &reference_output; "
+"&reference_operator; &reference_measure; &reference_processing; "
+"&reference_lrs; &reference_transaction; &reference_misc; "
+"&reference_exception;"
diff --git a/doc/po/es/reference_accessor.xml.po b/doc/po/es/reference_accessor.xml.po
new file mode 100644
index 0000000..02524ca
--- /dev/null
+++ b/doc/po/es/reference_accessor.xml.po
@@ -0,0 +1,4200 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-06-10 18:13+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_accessor.xml:4
+#, no-c-format
+msgid "Geometry Accessors"
+msgstr "Métodos de Acceso a Geometrías"
+
+#. Tag: refname
+#: reference_accessor.xml:8
+#, no-c-format
+msgid "GeometryType"
+msgstr "GeometryType"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:10
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the type of the geometry as a string. Eg: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve el tipo de geometría como una cadena de texto. Ej: "
+"'LINESTRING', 'POLYGON', 'MULTIPOINT', etc.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:16
+#, no-c-format
+msgid ""
+"<funcdef>text <function>GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: title
+#: reference_accessor.xml:24 reference_accessor.xml:81
+#: reference_accessor.xml:129 reference_accessor.xml:177
+#: reference_accessor.xml:225 reference_accessor.xml:276
+#: reference_accessor.xml:328 reference_accessor.xml:377
+#: reference_accessor.xml:438 reference_accessor.xml:489
+#: reference_accessor.xml:548 reference_accessor.xml:607
+#: reference_accessor.xml:662 reference_accessor.xml:706
+#: reference_accessor.xml:757 reference_accessor.xml:814
+#: reference_accessor.xml:879 reference_accessor.xml:931
+#: reference_accessor.xml:990 reference_accessor.xml:1036
+#: reference_accessor.xml:1071 reference_accessor.xml:1110
+#: reference_accessor.xml:1150 reference_accessor.xml:1194
+#: reference_accessor.xml:1256 reference_accessor.xml:1297
+#: reference_accessor.xml:1341 reference_accessor.xml:1398
+#: reference_accessor.xml:1454 reference_accessor.xml:1497
+#: reference_accessor.xml:1550 reference_accessor.xml:1617
+#: reference_accessor.xml:1660 reference_accessor.xml:1705
+#: reference_accessor.xml:1751 reference_accessor.xml:1793
+#: reference_accessor.xml:1838 reference_accessor.xml:1884
+#: reference_accessor.xml:1926 reference_accessor.xml:1972
+#: reference_accessor.xml:2013
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: para
+#: reference_accessor.xml:26
+#, no-c-format
+msgid ""
+"<para>Returns the type of the geometry as a string. Eg: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</para>"
+msgstr ""
+"<para>Devuelve el tipo de geometría como una cadena de texto. Ej: "
+"'LINESTRING', 'POLYGON', 'MULTIPOINT', etc.</para>"
+
+#. Tag: para
+#: reference_accessor.xml:29
+#, no-c-format
+msgid ""
+"OGC SPEC s2.1.1.1 - Returns the name of the instantiable subtype of Geometry "
+"of which this Geometry instance is a member. The name of the instantiable "
+"subtype of Geometry is returned as a string."
+msgstr ""
+"OGC SPEC s2.1.1.1 - Devuelve el nombre del subtipo de la instancia de la "
+"geometría de la cual la instancia de la geometría es miembro. El nombre del "
+"subtipo de geometría de la instancia se devuelve en forma de cadena de texto."
+
+#. Tag: para
+#: reference_accessor.xml:35
+#, no-c-format
+msgid ""
+"This function also indicates if the geometry is measured, by returning a "
+"string of the form 'POINTM'."
+msgstr ""
+"Esta función también indica si la geometría tiene valores de medida, "
+"devolviendo una cadena de tipo 'POINTM'."
+
+#. Tag: para
+#: reference_accessor.xml:38 reference_accessor.xml:391
+#: reference_accessor.xml:1155
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+"Mejorado: 2.0.0 se introdujo soporte para superficies poliédricas, "
+"Triangulos y TIN."
+
+#. Tag: para
+#: reference_accessor.xml:39 reference_accessor.xml:135
+#: reference_accessor.xml:393 reference_accessor.xml:500
+#: reference_accessor.xml:553 reference_accessor.xml:833
+#: reference_accessor.xml:999 reference_accessor.xml:1263
+#: reference_accessor.xml:1305 reference_accessor.xml:1414
+#: reference_accessor.xml:1756
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr "&sfs_compliant;"
+
+#. Tag: para
+#: reference_accessor.xml:40 reference_accessor.xml:137
+#: reference_accessor.xml:234 reference_accessor.xml:396
+#: reference_accessor.xml:562 reference_accessor.xml:627
+#: reference_accessor.xml:673 reference_accessor.xml:1077
+#: reference_accessor.xml:1115 reference_accessor.xml:1417
+#: reference_accessor.xml:1462 reference_accessor.xml:1506
+#: reference_accessor.xml:1670 reference_accessor.xml:1715
+#: reference_accessor.xml:1803 reference_accessor.xml:1848
+#: reference_accessor.xml:1936 reference_accessor.xml:1978
+#: reference_accessor.xml:2023
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: para
+#: reference_accessor.xml:41 reference_accessor.xml:96
+#: reference_accessor.xml:138 reference_accessor.xml:232
+#: reference_accessor.xml:337 reference_accessor.xml:395
+#: reference_accessor.xml:444 reference_accessor.xml:502
+#: reference_accessor.xml:561 reference_accessor.xml:626
+#: reference_accessor.xml:771 reference_accessor.xml:1001
+#: reference_accessor.xml:1041 reference_accessor.xml:1076
+#: reference_accessor.xml:1114 reference_accessor.xml:1159
+#: reference_accessor.xml:1262 reference_accessor.xml:1358
+#: reference_accessor.xml:1416 reference_accessor.xml:1504
+#: reference_accessor.xml:1625 reference_accessor.xml:1669
+#: reference_accessor.xml:1714 reference_accessor.xml:1758
+#: reference_accessor.xml:1802 reference_accessor.xml:1847
+#: reference_accessor.xml:1892 reference_accessor.xml:1935
+#: reference_accessor.xml:1977 reference_accessor.xml:2022
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_accessor.xml:42 reference_accessor.xml:139
+#: reference_accessor.xml:190 reference_accessor.xml:397
+#: reference_accessor.xml:445 reference_accessor.xml:565
+#: reference_accessor.xml:1078 reference_accessor.xml:1160
+#: reference_accessor.xml:1265 reference_accessor.xml:1359
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_accessor.xml:43 reference_accessor.xml:140
+#: reference_accessor.xml:191 reference_accessor.xml:398
+#: reference_accessor.xml:1161
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: title
+#: reference_accessor.xml:49 reference_accessor.xml:101
+#: reference_accessor.xml:145 reference_accessor.xml:195
+#: reference_accessor.xml:244 reference_accessor.xml:298
+#: reference_accessor.xml:342 reference_accessor.xml:450
+#: reference_accessor.xml:508 reference_accessor.xml:632
+#: reference_accessor.xml:680 reference_accessor.xml:725
+#: reference_accessor.xml:776 reference_accessor.xml:840
+#: reference_accessor.xml:896 reference_accessor.xml:956
+#: reference_accessor.xml:1007 reference_accessor.xml:1045
+#: reference_accessor.xml:1083 reference_accessor.xml:1120
+#: reference_accessor.xml:1166 reference_accessor.xml:1206
+#: reference_accessor.xml:1269 reference_accessor.xml:1310
+#: reference_accessor.xml:1365 reference_accessor.xml:1426
+#: reference_accessor.xml:1467 reference_accessor.xml:1516
+#: reference_accessor.xml:1573 reference_accessor.xml:1631
+#: reference_accessor.xml:1675 reference_accessor.xml:1720
+#: reference_accessor.xml:1764 reference_accessor.xml:1808
+#: reference_accessor.xml:1853 reference_accessor.xml:1897
+#: reference_accessor.xml:1941 reference_accessor.xml:1983
+#: reference_accessor.xml:2028
+#, no-c-format
+msgid "Examples"
+msgstr "Ejemplos"
+
+#. Tag: programlisting
+#: reference_accessor.xml:51
+#, no-c-format
+msgid ""
+"SELECT GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+" geometrytype\n"
+"--------------\n"
+" LINESTRING"
+msgstr ""
+"SELECT GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+" geometrytype\n"
+"--------------\n"
+" LINESTRING"
+
+#. Tag: programlisting
+#: reference_accessor.xml:52
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        POLYHEDRALSURFACE"
+msgstr ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --resultado\n"
+"                        POLYHEDRALSURFACE"
+
+#. Tag: programlisting
+#: reference_accessor.xml:53
+#, no-c-format
+msgid ""
+"SELECT GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" TIN"
+msgstr ""
+"SELECT GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" TIN"
+
+#. Tag: title
+#: reference_accessor.xml:58 reference_accessor.xml:106
+#: reference_accessor.xml:152 reference_accessor.xml:200
+#: reference_accessor.xml:250 reference_accessor.xml:303
+#: reference_accessor.xml:347 reference_accessor.xml:417
+#: reference_accessor.xml:461 reference_accessor.xml:515
+#: reference_accessor.xml:582 reference_accessor.xml:638
+#: reference_accessor.xml:731 reference_accessor.xml:782
+#: reference_accessor.xml:846 reference_accessor.xml:903
+#: reference_accessor.xml:963 reference_accessor.xml:1013
+#: reference_accessor.xml:1050 reference_accessor.xml:1088
+#: reference_accessor.xml:1127 reference_accessor.xml:1171
+#: reference_accessor.xml:1211 reference_accessor.xml:1234
+#: reference_accessor.xml:1274 reference_accessor.xml:1315
+#: reference_accessor.xml:1372 reference_accessor.xml:1432
+#: reference_accessor.xml:1472 reference_accessor.xml:1522
+#: reference_accessor.xml:1579 reference_accessor.xml:1637
+#: reference_accessor.xml:1682 reference_accessor.xml:1727
+#: reference_accessor.xml:1770 reference_accessor.xml:1815
+#: reference_accessor.xml:1860 reference_accessor.xml:1903
+#: reference_accessor.xml:1948 reference_accessor.xml:1990
+#: reference_accessor.xml:2035
+#, no-c-format
+msgid "See Also"
+msgstr "Ver también"
+
+#. Tag: refname
+#: reference_accessor.xml:64
+#, no-c-format
+msgid "ST_Boundary"
+msgstr "ST_Boundary"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:66
+#, no-c-format
+msgid "Returns the closure of the combinatorial boundary of this Geometry."
+msgstr "Devuelve el cierre del limite combinatorio de esta geometría."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:72
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Boundary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Boundary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:83
+#, no-c-format
+msgid ""
+"Returns the closure of the combinatorial boundary of this Geometry. The "
+"combinatorial boundary is defined as described in section 3.12.3.2 of the "
+"OGC SPEC. Because the result of this function is a closure, and hence "
+"topologically closed, the resulting boundary can be represented using "
+"representational geometry primitives as discussed in the OGC SPEC, section "
+"3.12.2."
+msgstr ""
+"Devuelve el cierre del limite combinatorio de esta geometría. El limite "
+"combinatorio esta definido como se describe en la sección 3.12.3.2 de la "
+"especificación OGC. Ya que el resultado de esta función es un cerco, y por "
+"lo tanto topológicamente cerrado, el límite  resultante puede ser "
+"representado utilizando geometrías primitivas como se discute en la "
+"especificación OGC en la sección 3.12.2."
+
+#. Tag: para
+#: reference_accessor.xml:90
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr "Realizado por el módulo de GEOS"
+
+#. Tag: para
+#: reference_accessor.xml:92
+#, no-c-format
+msgid ""
+"Prior to 2.0.0, this function throws an exception if used with "
+"<varname>GEOMETRYCOLLECTION</varname>. From 2.0.0 up it will return NULL "
+"instead (unsupported input)."
+msgstr ""
+"Anterior a la version 2.0.0, esta función lanza una excepción si se utiliza "
+"con <varname>GEOMETRYCOLLECTION</varname>. Desde la version 2.0.0 y "
+"superiores devolverá NULL en lugar de la excepción (entrada no soportada)."
+
+#. Tag: para
+#: reference_accessor.xml:94
+#, no-c-format
+msgid "&sfs_compliant; OGC SPEC s2.1.1.1"
+msgstr "&sfs_compliant; OGC SPEC s2.1.1.1"
+
+#. Tag: para
+#: reference_accessor.xml:95
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.14"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.14"
+
+#. Tag: para
+#: reference_accessor.xml:97
+#, fuzzy, no-c-format
+msgid "Enhanced: 2.1.0 support for Triangle was introduced"
+msgstr "Mejora: 2.0.0 se introdujo soporte de superficies poliédricas."
+
+#. Tag: programlisting
+#: reference_accessor.xml:103
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 "
+"1)')));\n"
+"st_astext\n"
+"-----------\n"
+"MULTIPOINT(1 1,-1 1)\n"
+"\n"
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 "
+"1))')));\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(1 1,0 0,-1 1,1 1)\n"
+"\n"
+"--Using a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, "
+"1 1 1))')));\n"
+"\n"
+"st_asewkt\n"
+"-----------------------------------\n"
+"LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)\n"
+"\n"
+"--Using a 3d multilinestring\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('MULTILINESTRING((1 1 1,0 0 "
+"0.5, -1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"MULTIPOINT(-1 1 1,1 1 0.75)"
+msgstr ""
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 "
+"1)')));\n"
+"st_astext\n"
+"-----------\n"
+"MULTIPOINT(1 1,-1 1)\n"
+"\n"
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 "
+"1))')));\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(1 1,0 0,-1 1,1 1)\n"
+"\n"
+"--Utilizando un poligono 3d\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, "
+"1 1 1))')));\n"
+"\n"
+"st_asewkt\n"
+"-----------------------------------\n"
+"LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)\n"
+"\n"
+"--Utilizando una multilinestring 3d\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('MULTILINESTRING((1 1 1,0 0 "
+"0.5, -1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"MULTIPOINT(-1 1 1,1 1 0.75)"
+
+#. Tag: para
+#: reference_accessor.xml:108
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakePolygon\"/>"
+msgstr ", <xref linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:114
+#, no-c-format
+msgid "ST_CoordDim"
+msgstr "ST_CoordDim"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:116
+#, no-c-format
+msgid ""
+"<refpurpose>Return the coordinate dimension of the ST_Geometry value.</"
+"refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve la dimensión de las coordenadas del valor de "
+"ST_Geometry.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:121
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_CoordDim</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_CoordDim</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:131
+#, no-c-format
+msgid "<para>Return the coordinate dimension of the ST_Geometry value.</para>"
+msgstr ""
+"<para>Devuelve la dimensión de las coordenadas del valor de ST_Geometry.</"
+"para>"
+
+#. Tag: para
+#: reference_accessor.xml:133
+#, no-c-format
+msgid "This is the MM compliant alias name for <xref linkend=\"ST_NDims\"/>"
+msgstr "Es el alias de <xref linkend=\"ST_NDims\"/> conforme a MM"
+
+#. Tag: para
+#: reference_accessor.xml:136
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.3"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.3"
+
+#. Tag: programlisting
+#: reference_accessor.xml:147
+#, no-c-format
+msgid ""
+"SELECT ST_CoordDim('CIRCULARSTRING(1 2 3, 1 3 4, 5 6 7, 8 9 10, 11 12 "
+"13)');\n"
+"                        ---result--\n"
+"                                3\n"
+"\n"
+"                                SELECT ST_CoordDim(ST_Point(1,2));\n"
+"                        --result--\n"
+"                                2"
+msgstr ""
+"SELECT ST_CoordDim('CIRCULARSTRING(1 2 3, 1 3 4, 5 6 7, 8 9 10, 11 12 "
+"13)');\n"
+"                        ---resultado--\n"
+"                                3\n"
+"\n"
+"                                SELECT ST_CoordDim(ST_Point(1,2));\n"
+"                        --resultado--\n"
+"                                2"
+
+#. Tag: refname
+#: reference_accessor.xml:160
+#, no-c-format
+msgid "ST_Dimension"
+msgstr "ST_Dimension"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:162
+#, no-c-format
+msgid ""
+"The inherent dimension of this Geometry object, which must be less than or "
+"equal to the coordinate dimension."
+msgstr ""
+"La dimensión inherente del objeto Geometry, la cual debe ser menor o igual a "
+"la dimensión de coordenadas."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:168
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Dimension</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_Dimension</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:179
+#, no-c-format
+msgid ""
+"The inherent dimension of this Geometry object, which must be less than or "
+"equal to the coordinate dimension. OGC SPEC s2.1.1.1 - returns 0 for "
+"<varname>POINT</varname>, 1 for <varname>LINESTRING</varname>, 2 for "
+"<varname>POLYGON</varname>, and the largest dimension of the components of a "
+"<varname>GEOMETRYCOLLECTION</varname>. If unknown (empty geometry) null is "
+"returned."
+msgstr ""
+"La dimensión inherente del objeto Geometry, la cual debe ser menor o igual a "
+"la dimensión de coordenadas. En la Especificación OGC s2.1.1.1 - devuelve 0 "
+"para un <varname>POINT</varname>, 1 para una <varname>LINESTRING</varname>, "
+"2 para un <varname>POLYGON</varname>, y la dimensión mayor de los "
+"componentes de una  <varname>GEOMETRYCOLLECTION</varname>. Si es desconocida "
+"(geometría vacía) se devuelve null."
+
+#. Tag: para
+#: reference_accessor.xml:187
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.2"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.2"
+
+#. Tag: para
+#: reference_accessor.xml:188
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces and TINs was introduced. No "
+"longer throws an exception if given empty geometry."
+msgstr ""
+"Mejora: 2.0.0 se introdujeron soporte de superficies poliédricas y TIN. No "
+"lanza una excepción si se envia una geometría vacía."
+
+#. Tag: para
+#: reference_accessor.xml:189
+#, no-c-format
+msgid ""
+"Prior to 2.0.0, this function throws an exception if used with empty "
+"geometry."
+msgstr ""
+"Anterior a la versión 2.0.0, esta función lanzaba una excepción si se "
+"enviaba una geometría vacía."
+
+#. Tag: programlisting
+#: reference_accessor.xml:197
+#, no-c-format
+msgid ""
+"SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))');\n"
+"ST_Dimension\n"
+"-----------\n"
+"1"
+msgstr ""
+"SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))');\n"
+"ST_Dimension\n"
+"-----------\n"
+"1"
+
+#. Tag: refname
+#: reference_accessor.xml:208
+#, no-c-format
+msgid "ST_EndPoint"
+msgstr "ST_EndPoint"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:210
+#, fuzzy, no-c-format
+msgid ""
+"Returns the last point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname>."
+msgstr ""
+"Devuelve el último punto de una geometría <varname>LINESTRING</varname> como "
+"<varname>POINT</varname>."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:216
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_EndPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_EndPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:227
+#, no-c-format
+msgid ""
+"Returns the last point of a <varname>LINESTRING</varname> geometry as a "
+"<varname>POINT</varname> or <varname>NULL</varname> if the input parameter "
+"is not a <varname>LINESTRING</varname>."
+msgstr ""
+"Devuelve el último punto de una geometría <varname>LINESTRING</varname> como "
+"<varname>POINT</varname> o <varname>NULL</varname> si el parametro de "
+"entrada no es una <varname>LINESTRING</varname>."
+
+#. Tag: para
+#: reference_accessor.xml:231
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.1.4"
+
+#. Tag: para
+#: reference_accessor.xml:235 reference_accessor.xml:1507
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring. The older behavior was an "
+"undocumented feature, but people who assumed they had their data stored as "
+"LINESTRING may experience these returning NULL in 2.0 now."
+msgstr ""
+"Cambiado: 2.0.0 ya no funciona con multilinestrings de geometrías simples. "
+"En versiones anteriores de PostGIS -- una linea simple multilinestring "
+"funciona sin problemas con esta función y devuelve el punto inicial. En la "
+"version 2.0.0 simplemente devuelve NULL como con cualquier multilinestring. "
+"La antigua version era una función sin documentar, pero la gente que asumía "
+"que tenia sus datos almacenados en LINESTRING pueden experimentar este "
+"comportamiento ahora de resultado NULL en la version 2.0."
+
+#. Tag: programlisting
+#: reference_accessor.xml:246
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::"
+"geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(3 3)\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_EndPoint('POINT(1 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--3d endpoint\n"
+"SELECT ST_AsEWKT(ST_EndPoint('LINESTRING(1 1 2, 1 2 3, 0 0 5)'));\n"
+"  st_asewkt\n"
+"--------------\n"
+" POINT(0 0 5)\n"
+"(1 row)"
+msgstr ""
+"postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::"
+"geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(3 3)\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_EndPoint('POINT(1 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--punto final 3d\n"
+"SELECT ST_AsEWKT(ST_EndPoint('LINESTRING(1 1 2, 1 2 3, 0 0 5)'));\n"
+"  st_asewkt\n"
+"--------------\n"
+" POINT(0 0 5)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:252
+#, no-c-format
+msgid ", <xref linkend=\"ST_StartPoint\"/>"
+msgstr ", <xref linkend=\"ST_StartPoint\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:259
+#, no-c-format
+msgid "ST_Envelope"
+msgstr "ST_Envelope"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:261
+#, no-c-format
+msgid ""
+"Returns a geometry representing the double precision (float8) bounding box "
+"of the supplied geometry."
+msgstr ""
+"Devuelve una geometría que representa la caja en doble precisión (float8) de "
+"la geometría dada."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:267
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:278
+#, no-c-format
+msgid ""
+"Returns the float8 minimum bounding box for the supplied geometry, as a "
+"geometry. The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>)). (PostGIS will add a "
+"<varname>ZMIN</varname>/<varname>ZMAX</varname> coordinate as well)."
+msgstr ""
+"Devuelve una geometría que representa la caja mínima en doble precisión "
+"(float8) de la geometría dada. El polígono definido por las esquinas de la "
+"caja  ((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>)). (PostGIS añadirá las "
+"coordenadas <varname>ZMIN</varname>/<varname>ZMAX</varname> también)."
+
+#. Tag: para
+#: reference_accessor.xml:288
+#, no-c-format
+msgid ""
+"Degenerate cases (vertical lines, points) will return a geometry of lower "
+"dimension than <varname>POLYGON</varname>, ie. <varname>POINT</varname> or "
+"<varname>LINESTRING</varname>."
+msgstr ""
+"Algunos casos particulares(lineas verticales, puntos) devolverán una "
+"geometría de dimension menor que <varname>POLYGON</varname>, por ejemplo "
+"<varname>POINT</varname> o <varname>LINESTRING</varname>."
+
+#. Tag: para
+#: reference_accessor.xml:292
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 behavior changed to output double precision instead of "
+"float4"
+msgstr ""
+"Disponibilidad: 1.5.0 comportamiento modificado para devolver doble "
+"precisión en vez de float4."
+
+#. Tag: para
+#: reference_accessor.xml:293 reference_accessor.xml:671
+#: reference_accessor.xml:769 reference_accessor.xml:1460
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.1"
+msgstr "&sfs_compliant; s2.1.1.1"
+
+#. Tag: para
+#: reference_accessor.xml:294
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.15"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.15"
+
+#. Tag: programlisting
+#: reference_accessor.xml:300
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(1 3)\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('LINESTRING(0 0, 1 3)'::geometry));\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 3,1 3,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000001 1, 1.0000001 0, 0 "
+"0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000000001 1, "
+"1.0000000001 0, 0 0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"        \n"
+"SELECT Box3D(geom), Box2D(geom), ST_AsText(ST_Envelope(geom)) As "
+"envelopewkt\n"
+"        FROM (SELECT 'POLYGON((0 0, 0 1000012333334.34545678, 1.0000001 1, "
+"1.0000001 0, 0 0))'::geometry As geom) As foo;\n"
+"\n"
+"<!-- TODO: Fix examples to reflect new behavior -->"
+msgstr ""
+"SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(1 3)\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('LINESTRING(0 0, 1 3)'::geometry));\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 3,1 3,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000001 1, 1.0000001 0, 0 "
+"0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000000001 1, "
+"1.0000000001 0, 0 0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"        \n"
+"SELECT Box3D(geom), Box2D(geom), ST_AsText(ST_Envelope(geom)) As "
+"envelopewkt\n"
+"        FROM (SELECT 'POLYGON((0 0, 0 1000012333334.34545678, 1.0000001 1, "
+"1.0000001 0, 0 0))'::geometry As geom) As foo;\n"
+"\n"
+"<!-- TODO: Fijar ejemplos para reflejar el comportamiento -->"
+
+#. Tag: para
+#: reference_accessor.xml:305
+#, no-c-format
+msgid ", <xref linkend=\"Box3D\"/>"
+msgstr ", <xref linkend=\"Box3D\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:311
+#, no-c-format
+msgid "ST_ExteriorRing"
+msgstr "ST_ExteriorRing"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:313
+#, no-c-format
+msgid ""
+"Returns a line string representing the exterior ring of the "
+"<varname>POLYGON</varname> geometry. Return NULL if the geometry is not a "
+"polygon. Will not work with MULTIPOLYGON"
+msgstr ""
+"Devuelve una linestring representando el anillo exterior de una geometria "
+"tipo <varname>POLYGON</varname>. Devuelve NULL si la geometria no es un "
+"poligono. No funcionará con MULTIPOLYGON"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:319
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ExteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ExteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:330
+#, no-c-format
+msgid ""
+"Returns a line string representing the exterior ring of the "
+"<varname>POLYGON</varname> geometry. Return NULL if the geometry is not a "
+"polygon."
+msgstr ""
+"Devuelve una linestring representando el anillo exterior de una geometria "
+"tipo <varname>POLYGON</varname>. Devuelve NULL si la geometria no es un "
+"poligono. No funcionará con MULTIPOLYGON"
+
+#. Tag: para
+#: reference_accessor.xml:333
+#, no-c-format
+msgid "Only works with POLYGON geometry types"
+msgstr "Solo funciona con geometrias de tipo POLYGON"
+
+#. Tag: para
+#: reference_accessor.xml:335 reference_accessor.xml:715
+#, no-c-format
+msgid "&sfs_compliant; 2.1.5.1"
+msgstr "&sfs_compliant; 2.1.5.1"
+
+#. Tag: para
+#: reference_accessor.xml:336
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.3, 8.3.3"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.2.3, 8.3.3"
+
+#. Tag: programlisting
+#: reference_accessor.xml:343
+#, no-c-format
+msgid ""
+"--If you have a table of polygons\n"
+"SELECT gid, ST_ExteriorRing(the_geom) AS ering\n"
+"FROM sometable;\n"
+"\n"
+"--If you have a table of MULTIPOLYGONs\n"
+"--and want to return a MULTILINESTRING composed of the exterior rings of "
+"each polygon\n"
+"SELECT gid, ST_Collect(ST_ExteriorRing(the_geom)) AS erings\n"
+"        FROM (SELECT gid, (ST_Dump(the_geom)).geom As the_geom\n"
+"                        FROM sometable) As foo\n"
+"GROUP BY gid;\n"
+"\n"
+"--3d Example\n"
+"SELECT ST_AsEWKT(\n"
+"        ST_ExteriorRing(\n"
+"        ST_GeomFromEWKT('POLYGON((0 0 1, 1 1 1, 1 2 1, 1 1 1, 0 0 1))')\n"
+"        )\n"
+");\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"LINESTRING(0 0 1,1 1 1,1 2 1,1 1 1,0 0 1)"
+msgstr ""
+"--Si tienes una tabla de poligonos\n"
+"SELECT gid, ST_ExteriorRing(the_geom) AS ering\n"
+"FROM sometable;\n"
+"\n"
+"--Si tienes una tbla de MULTIPOLYGONos\n"
+"--y quieres que te devuelva una MULTILINESTRING compuesta por los anillos "
+"exteriores de cada poligono\n"
+"SELECT gid, ST_Collect(ST_ExteriorRing(the_geom)) AS erings\n"
+"        FROM (SELECT gid, (ST_Dump(the_geom)).geom As the_geom\n"
+"                        FROM sometable) As foo\n"
+"GROUP BY gid;\n"
+"\n"
+"--Ejemplo 3d\n"
+"SELECT ST_AsEWKT(\n"
+"        ST_ExteriorRing(\n"
+"        ST_GeomFromEWKT('POLYGON((0 0 1, 1 1 1, 1 2 1, 1 1 1, 0 0 1))')\n"
+"        )\n"
+");\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"LINESTRING(0 0 1,1 1 1,1 2 1,1 1 1,0 0 1)"
+
+#. Tag: para
+#: reference_accessor.xml:349
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_NumInteriorRings\"/>"
+msgstr ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_NumInteriorRings\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:359
+#, no-c-format
+msgid "ST_GeometryN"
+msgstr "ST_GeometryN"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:361
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
+"(MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, "
+"POLYHEDRALSURFACE Otherwise, return NULL."
+msgstr ""
+"Devuelve la geometría en la cual se basa si la geometría es una "
+"GEOMETRYCOLLECTION, un (MULTI)POINT, una (MULTI)LINESTRING, una MULTICURVE o "
+"un (MULTI)POLYGON, una POLYHEDRALSURFACE si no devuelve NULL."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:368
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeometryN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeometryN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:379
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
+"(MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, "
+"POLYHEDRALSURFACE Otherwise, return NULL"
+msgstr ""
+"Devuelve la geometría en la cual se basa si la geometría es una "
+"GEOMETRYCOLLECTION, un (MULTI)POINT, una (MULTI)LINESTRING, una MULTICURVE o "
+"un (MULTI)POLYGON, una POLYHEDRALSURFACE si no devuelve NULL."
+
+#. Tag: para
+#: reference_accessor.xml:384 reference_accessor.xml:1405
+#, no-c-format
+msgid ""
+"Index is 1-based as for OGC specs since version 0.8.0. Previous versions "
+"implemented this as 0-based instead."
+msgstr ""
+"El indice es 1-based en la especificación OGC desde la version 0.8.0. "
+"Versiones anteriormente implementadas era de tipo 0-based."
+
+#. Tag: para
+#: reference_accessor.xml:389
+#, no-c-format
+msgid ""
+"If you want to extract all geometries, of a geometry, ST_Dump is more "
+"efficient and will also work for singular geoms."
+msgstr ""
+"Si quieres extraer todas las geometrías de una geometría, ST_Dump es mas "
+"eficiente y funcionará con geometrías simples."
+
+#. Tag: para
+#: reference_accessor.xml:392
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Prior versions would return NULL for singular geometries. "
+"This was changed to return the geometry for ST_GeometryN(..,1) case."
+msgstr ""
+"Cambiado: 2.0.0 Versiones anteriores devuelven NULL para geometrias simples. "
+"Esto ha sido cambiado para devolver la geometría en el caso de "
+"ST_GeometryN(..,1) ."
+
+#. Tag: para
+#: reference_accessor.xml:394
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.1.5"
+msgstr "&sqlmm_compliant; SQL-MM 3: 9.1.5"
+
+#. Tag: title
+#: reference_accessor.xml:404
+#, no-c-format
+msgid "Standard Examples"
+msgstr "Ejemplos Estándar"
+
+#. Tag: programlisting
+#: reference_accessor.xml:406
+#, no-c-format
+msgid ""
+"--Extracting a subset of points from a 3d multipoint\n"
+"SELECT n, ST_AsEWKT(ST_GeometryN(the_geom, n)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('MULTIPOINT(1 2 7, 3 4 7, 5 6 7, 8 9 10)') ),\n"
+"( ST_GeomFromEWKT('MULTICURVE(CIRCULARSTRING(2.5 2.5,4.5 2.5, 3.5 3.5), (10 "
+"11, 12 11))') )\n"
+"        )As foo(the_geom)\n"
+"        CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);\n"
+"\n"
+" n |               geomewkt\n"
+"---+-----------------------------------------\n"
+" 1 | POINT(1 2 7)\n"
+" 2 | POINT(3 4 7)\n"
+" 3 | POINT(5 6 7)\n"
+" 4 | POINT(8 9 10)\n"
+" 1 | CIRCULARSTRING(2.5 2.5,4.5 2.5,3.5 3.5)\n"
+" 2 | LINESTRING(10 11,12 11)\n"
+"\n"
+"\n"
+"--Extracting all geometries (useful when you want to assign an id)\n"
+"SELECT gid, n, ST_GeometryN(the_geom, n)\n"
+"FROM sometable CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);"
+msgstr ""
+"--Extrayendo un conjunto de puntos desde una geometría 3d multipoint\n"
+"SELECT n, ST_AsEWKT(ST_GeometryN(the_geom, n)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('MULTIPOINT(1 2 7, 3 4 7, 5 6 7, 8 9 10)') ),\n"
+"( ST_GeomFromEWKT('MULTICURVE(CIRCULARSTRING(2.5 2.5,4.5 2.5, 3.5 3.5), (10 "
+"11, 12 11))') )\n"
+"        )As foo(the_geom)\n"
+"        CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);\n"
+"\n"
+" n |               geomewkt\n"
+"---+-----------------------------------------\n"
+" 1 | POINT(1 2 7)\n"
+" 2 | POINT(3 4 7)\n"
+" 3 | POINT(5 6 7)\n"
+" 4 | POINT(8 9 10)\n"
+" 1 | CIRCULARSTRING(2.5 2.5,4.5 2.5,3.5 3.5)\n"
+" 2 | LINESTRING(10 11,12 11)\n"
+"\n"
+"\n"
+"--Extracción de todas las geometrías (tip cuando quieres asignar un id)\n"
+"SELECT gid, n, ST_GeometryN(the_geom, n)\n"
+"FROM sometable CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);"
+
+#. Tag: title
+#: reference_accessor.xml:409
+#, no-c-format
+msgid "Polyhedral Surfaces, TIN and Triangle Examples"
+msgstr "Ejemplos de superficies poliedricas, MDT y triángulos"
+
+#. Tag: programlisting
+#: reference_accessor.xml:410
+#, no-c-format
+msgid ""
+"-- Polyhedral surface example\n"
+"-- Break a Polyhedral surface into its faces\n"
+"SELECT ST_AsEWKT(ST_GeometryN(p_geom,3)) As geom_ewkt\n"
+"  FROM (SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")')  AS p_geom )  AS a;\n"
+"\n"
+"                geom_ewkt\n"
+"------------------------------------------\n"
+" POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))"
+msgstr ""
+"-- Ejemplo de superficie poliedrica\n"
+"-- Descompone una superficie poliedrica en caras\n"
+"SELECT ST_AsEWKT(ST_GeometryN(p_geom,3)) As geom_ewkt\n"
+"  FROM (SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")')  AS p_geom )  AS a;\n"
+"\n"
+"                geom_ewkt\n"
+"------------------------------------------\n"
+" POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))"
+
+#. Tag: programlisting
+#: reference_accessor.xml:412
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT ST_AsEWKT(ST_GeometryN(geom,2)) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+"-- result --\n"
+"                 wkt\n"
+"-------------------------------------\n"
+" TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+msgstr ""
+"-- MDT --                \n"
+"SELECT ST_AsEWKT(ST_GeometryN(geom,2)) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+"-- result --\n"
+"                 wkt\n"
+"-------------------------------------\n"
+" TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+
+#. Tag: para
+#: reference_accessor.xml:419 reference_accessor.xml:1276
+#, no-c-format
+msgid ", <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ", <xref linkend=\"ST_NumGeometries\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:425
+#, no-c-format
+msgid "ST_GeometryType"
+msgstr "ST_GeometryType"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:426
+#, no-c-format
+msgid "Return the geometry type of the ST_Geometry value."
+msgstr "Devuelve el tipo de geometría del valor de ST_Geometry."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:431
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:440
+#, no-c-format
+msgid ""
+"Returns the type of the geometry as a string. EG: 'ST_Linestring', "
+"'ST_Polygon','ST_MultiPolygon' etc. This function differs from "
+"GeometryType(geometry) in the case of the string and ST in front that is "
+"returned, as well as the fact that it will not indicate whether the geometry "
+"is measured."
+msgstr ""
+"Devuelve el tipo de geometría como una cadena de texto. Por Ejemplo: "
+"'ST_Linestring', 'ST_Polygon','ST_MultiPolygon' etc. Esta función difiere de "
+"GeometryType(geometría) en este caso se devuelve la cadena de texto y ST "
+"delante, como el hecho de que no indicará como se mide la geometría."
+
+#. Tag: para
+#: reference_accessor.xml:442 reference_accessor.xml:563
+#: reference_accessor.xml:1074
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr "Mejora: 2.0.0 se introdujo soporte de superficies poliédricas."
+
+#. Tag: para
+#: reference_accessor.xml:443
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.4"
+
+#. Tag: programlisting
+#: reference_accessor.xml:452
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                        --result\n"
+"                        ST_LineString"
+msgstr ""
+"SELECT ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                        --resultado\n"
+"                        ST_LineString"
+
+#. Tag: programlisting
+#: reference_accessor.xml:454 reference_accessor.xml:456
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        ST_PolyhedralSurface"
+msgstr ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --resultado\n"
+"                        ST_PolyhedralSurface"
+
+#. Tag: programlisting
+#: reference_accessor.xml:458
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" ST_Tin"
+msgstr ""
+"SELECT ST_GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" ST_Tin"
+
+#. Tag: refname
+#: reference_accessor.xml:471
+#, no-c-format
+msgid "ST_InteriorRingN"
+msgstr "ST_InteriorRingN"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:473
+#, no-c-format
+msgid ""
+"Return the Nth interior linestring ring of the polygon geometry. Return NULL "
+"if the geometry is not a polygon or the given N is out of range."
+msgstr ""
+"Devuelve la cadena de texto del anillo interior N del poligono. Devuelve "
+"NULL si la geometría no es un polígono o el indice N dado esta fuera de "
+"rango."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:480
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_InteriorRingN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_InteriorRingN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:491
+#, no-c-format
+msgid ""
+"Return the Nth interior linestring ring of the polygon geometry. Return NULL "
+"if the geometry is not a polygon or the given N is out of range. index "
+"starts at 1."
+msgstr ""
+"Devuelve la cadena de texto del anillo interior N del poligono. Devuelve "
+"NULL si la geometría no es un polígono o el indice N dado esta fuera de "
+"rango. El indice empieza en 1."
+
+#. Tag: para
+#: reference_accessor.xml:497
+#, no-c-format
+msgid ""
+"This will not work for MULTIPOLYGONs. Use in conjunction with ST_Dump for "
+"MULTIPOLYGONS"
+msgstr ""
+"Esto no funcionara con MULTIPOLYGONs. Para MULTIPOLYGONs utilizaba junto a "
+"ST_Dump."
+
+#. Tag: para
+#: reference_accessor.xml:501
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.6, 8.3.5"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.2.6, 8.3.5"
+
+#. Tag: programlisting
+#: reference_accessor.xml:510
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_InteriorRingN(the_geom, 1)) As the_geom\n"
+"FROM (SELECT ST_BuildArea(\n"
+"                ST_Collect(ST_Buffer(ST_Point(1,2), 20,3),\n"
+"                        ST_Buffer(ST_Point(1, 2), 10,3))) As the_geom\n"
+"                )  as foo"
+msgstr ""
+"SELECT ST_AsText(ST_InteriorRingN(the_geom, 1)) As the_geom\n"
+"FROM (SELECT ST_BuildArea(\n"
+"                ST_Collect(ST_Buffer(ST_Point(1,2), 20,3),\n"
+"                        ST_Buffer(ST_Point(1, 2), 10,3))) As the_geom\n"
+"                )  as foo"
+
+#. Tag: para
+#: reference_accessor.xml:517
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend="
+"\"ST_NumInteriorRing\"/>,"
+msgstr ""
+", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend="
+"\"ST_NumInteriorRing\"/>,"
+
+#. Tag: refname
+#: reference_accessor.xml:530
+#, no-c-format
+msgid "ST_IsClosed"
+msgstr "ST_IsClosed"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:532
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
+"and end points are coincident. For Polyhedral surface is closed (volumetric)."
+msgstr ""
+"Devuelve <varname>TRUE</varname> si los puntos de inicio y final de una "
+"<varname>LINESTRING</varname>son coincidentes. Para superficies poliedricas "
+"si son cerradas (volumetricas)."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:539
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsClosed</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsClosed</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:550
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
+"and end points are coincident. For Polyhedral Surfaces, it tells you if the "
+"surface is areal (open) or volumetric (closed)."
+msgstr ""
+"Devuelve <varname>TRUE</varname> si los puntos de inicio y final de una "
+"<varname>LINESTRING</varname>son coincidentes. Para superficies "
+"poliédricas , te dice si las superficies son áreas (abiertas) o si son "
+"volumétricas (cerradas)."
+
+#. Tag: para
+#: reference_accessor.xml:554
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.5, 9.3.3"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.1.5, 9.3.3"
+
+#. Tag: para
+#: reference_accessor.xml:556
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of <function>ST_IsClosed(<varname>NULL</varname>)</"
+"function> to be 0, while PostGIS returns <varname>NULL</varname>."
+msgstr ""
+"SQL-MM define que el resultado de <function>ST_IsClosed(<varname>NULL</"
+"varname>)</function> debe ser 0, mientras que PostGIS devuelve "
+"<varname>NULL</varname>."
+
+#. Tag: title
+#: reference_accessor.xml:570
+#, no-c-format
+msgid "Line String and Point Examples"
+msgstr "Ejemplos con lineas y puntos"
+
+#. Tag: programlisting
+#: reference_accessor.xml:572
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 0 1, 1 1, 0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTILINESTRING((0 0, 0 1, 1 1, 0 0),(0 0, 1 "
+"1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('POINT(0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTIPOINT((0 0), (1 1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 0 1, 1 1, 0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTILINESTRING((0 0, 0 1, 1 1, 0 0),(0 0, 1 "
+"1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('POINT(0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTIPOINT((0 0), (1 1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+
+#. Tag: title
+#: reference_accessor.xml:576
+#, no-c-format
+msgid "Polyhedral Surface Examples"
+msgstr "Ejemplos con superficies Poliédricas"
+
+#. Tag: programlisting
+#: reference_accessor.xml:578
+#, no-c-format
+msgid ""
+"-- A cube --\n"
+"                SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 "
+"0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"\n"
+"\n"
+" -- Same as cube but missing a side --\n"
+" SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" f"
+msgstr ""
+"-- A cube --\n"
+"                SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 "
+"0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"\n"
+"\n"
+" -- Same as cube but missing a side --\n"
+" SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" f"
+
+#. Tag: refname
+#: reference_accessor.xml:590
+#, no-c-format
+msgid "ST_IsCollection"
+msgstr "ST_IsCollection"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:592
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the argument is a collection "
+"(<varname>MULTI*</varname>, <varname>GEOMETRYCOLLECTION</varname>, ...)"
+msgstr ""
+"Devuelve <varname>TRUE</varname> si el argumento es una colección "
+"(<varname>MULTI*</varname>, <varname>GEOMETRYCOLLECTION</varname>, ...)"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:599
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:609
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the geometry type of the argument is "
+"either:"
+msgstr "Devuelve <varname>TRUE</varname> si la geometría del argumento es:"
+
+#. Tag: para
+#: reference_accessor.xml:612
+#, no-c-format
+msgid "GEOMETRYCOLLECTION"
+msgstr "GEOMETRYCOLLECTION"
+
+#. Tag: para
+#: reference_accessor.xml:613
+#, no-c-format
+msgid "MULTI{POINT,POLYGON,LINESTRING,CURVE,SURFACE}"
+msgstr "MULTI{POINT,POLYGON,LINESTRING,CURVE,SURFACE}"
+
+#. Tag: para
+#: reference_accessor.xml:614
+#, no-c-format
+msgid "COMPOUNDCURVE"
+msgstr "COMPOUNDCURVE"
+
+#. Tag: para
+#: reference_accessor.xml:619
+#, no-c-format
+msgid ""
+"This function analyzes the type of the geometry. This means that it will "
+"return <varname>TRUE</varname> on collections that are empty or that contain "
+"a single element."
+msgstr ""
+"Esta función analiza el tipo de geometría. Esto significa que devolverá "
+"<varname>TRUE</varname> en colecciones que estén vacías o que contengan un "
+"único elemento."
+
+#. Tag: programlisting
+#: reference_accessor.xml:634
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_IsCollection('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT EMPTY'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0), (42 42))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('GEOMETRYCOLLECTION(POINT(0 0))'::"
+"geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+"postgis=# SELECT ST_IsCollection('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT EMPTY'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0), (42 42))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('GEOMETRYCOLLECTION(POINT(0 0))'::"
+"geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_accessor.xml:646
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr "ST_IsEmpty"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:648
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is an empty geometrycollection, polygon, point "
+"etc."
+msgstr ""
+"Devuelve True si la Geometría es una colección vacía, polígono vacio, punto "
+"vacío etc."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:654
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:664
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is an empty geometry. If true, then this "
+"Geometry represents an empty geometry collection, polygon, point etc."
+msgstr ""
+"Devuelve True si la Geometría es una geometría vacía. Si es cierto, entonces "
+"esta Geometría representa una colección de geometrías vacías, polígonos "
+"vacíos, puntos vacíos, etc."
+
+#. Tag: para
+#: reference_accessor.xml:667
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsEmpty(NULL) to be 0, while PostGIS returns "
+"NULL."
+msgstr ""
+"SQL-MM define que el resultado de ST_IsEmpty(NULL) debe ser 0, mientras que "
+"PostGIS devuelve <varname>NULL</varname>."
+
+#. Tag: para
+#: reference_accessor.xml:672
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.7"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.7"
+
+#. Tag: para
+#: reference_accessor.xml:674
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards"
+msgstr ""
+"Cambiado: 2.0.0 En las versiones anteriores de PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') estaba permitido. Esto no esta "
+"permitido ahora en PostGIS 2.0.0 para ajustarse mejor a las normas SQL/MM. "
+
+#. Tag: programlisting
+#: reference_accessor.xml:682
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+"\n"
+" st_isempty\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))')) = "
+"false;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('CIRCULARSTRING EMPTY'));\n"
+"  st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_IsEmpty(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+"\n"
+" st_isempty\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))')) = "
+"false;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('CIRCULARSTRING EMPTY'));\n"
+"  st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_accessor.xml:689
+#, no-c-format
+msgid "ST_IsRing"
+msgstr "ST_IsRing"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:691
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
+"both closed and simple."
+msgstr ""
+"Devuelve <varname>TRUE</varname> si esta <varname>LINESTRING</varname> es "
+"simple y cerrada."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:697
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:708
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
+"both <xref linkend=\"ST_IsClosed\"/> (<function>ST_StartPoint(<parameter>g</"
+"parameter>)</function> <function>~=</function> "
+"<function>ST_Endpoint(<parameter>g</parameter>)</function>) and <xref "
+"linkend=\"ST_IsSimple\"/> (does not self intersect)."
+msgstr ""
+"Devuelve <varname>TRUE</varname> si esta <varname>LINESTRING</varname> es "
+"<xref linkend=\"ST_IsClosed\"/> (<function>ST_StartPoint(<parameter>g</"
+"parameter>)</function> <function>~=</function> "
+"<function>ST_Endpoint(<parameter>g</parameter>)</function>) y <xref linkend="
+"\"ST_IsSimple\"/> (no se intersecta con ella misma)."
+
+#. Tag: para
+#: reference_accessor.xml:716
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.6"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.1.6"
+
+#. Tag: para
+#: reference_accessor.xml:718
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of <function>ST_IsRing(<varname>NULL</varname>)</"
+"function> to be 0, while PostGIS returns <varname>NULL</varname>."
+msgstr ""
+"SQL-MM define que el resultado de <function>ST_IsRing(<varname>NULL</"
+"varname>)</function> debe ser 0, mientras que PostGIS devuelve "
+"<varname>NULL</varname>."
+
+#. Tag: programlisting
+#: reference_accessor.xml:727
+#, no-c-format
+msgid ""
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 1, 1 0, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" t         | t           | t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 0, 1 1, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" f         | t           | f\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 1, 1 0, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" t         | t           | t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 0, 1 1, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" f         | t           | f\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:733
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_StartPoint\"/>, <xref "
+"linkend=\"ST_EndPoint\"/>"
+msgstr ""
+", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_StartPoint\"/>, <xref "
+"linkend=\"ST_EndPoint\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:741
+#, no-c-format
+msgid "ST_IsSimple"
+msgstr "ST_IsSimple"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:743
+#, no-c-format
+msgid ""
+"Returns (TRUE) if this Geometry has no anomalous geometric points, such as "
+"self intersection or self tangency."
+msgstr ""
+"Devuelve (TRUE) si la geometría no tiene puntos geométricos anómalos, como "
+"auto intersecciones o tangencias."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:749
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsSimple</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsSimple</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:759
+#, no-c-format
+msgid ""
+"Returns true if this Geometry has no anomalous geometric points, such as "
+"self intersection or self tangency. For more information on the OGC's "
+"definition of geometry simplicity and validity, refer to <link linkend="
+"\"OGC_Validity\">\"Ensuring OpenGIS compliancy of geometries\"</link>"
+msgstr ""
+"Devuelve TRUE si la geometría no tiene puntos geométricos anómalos, como "
+"auto intersecciones o tangencias. Para mas información sobre la definición "
+"del OGC de simplicidad y validez geométrica, visita el enlace <link linkend="
+"\"OGC_Validity\">\"Ensuring OpenGIS compliancy of geometries\"</link>"
+
+#. Tag: para
+#: reference_accessor.xml:765
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsSimple(NULL) to be 0, while PostGIS "
+"returns NULL."
+msgstr ""
+"SQL-MM define que el resultado de ST_IsSimple(NULL) debe ser 0, mientras que "
+"PostGIS devuelve NULL."
+
+#. Tag: para
+#: reference_accessor.xml:770
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.8"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.8"
+
+#. Tag: programlisting
+#: reference_accessor.xml:778
+#, no-c-format
+msgid ""
+"SELECT ST_IsSimple(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+" st_issimple\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsSimple(ST_GeomFromText('LINESTRING(1 1,2 2,2 3.5,1 3,1 2,2 "
+"1)'));\n"
+" st_issimple\n"
+"-------------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_IsSimple(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+" st_issimple\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsSimple(ST_GeomFromText('LINESTRING(1 1,2 2,2 3.5,1 3,1 2,2 "
+"1)'));\n"
+" st_issimple\n"
+"-------------\n"
+" f\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_accessor.xml:790
+#, no-c-format
+msgid "ST_IsValid"
+msgstr "ST_IsValid"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:792
+#, no-c-format
+msgid ""
+"Returns <varname>true</varname> if the <varname>ST_Geometry</varname> is "
+"well formed."
+msgstr ""
+"Devuelve <varname>true</varname> si la <varname>ST_Geometry</varname> esta "
+"bien formada."
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:798
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_IsValid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>flags</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_IsValid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>flags</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_accessor.xml:816
+#, no-c-format
+msgid ""
+"Test if an ST_Geometry value is well formed. For geometries that are "
+"invalid, the PostgreSQL NOTICE will provide details of why it is not valid. "
+"For more information on the OGC's definition of geometry simplicity and "
+"validity, refer to <link linkend=\"OGC_Validity\">\"Ensuring OpenGIS "
+"compliancy of geometries\"</link>"
+msgstr ""
+"Prueba si el valor de una ST_Geometry esta bien formado. Para las geometrías "
+"que no son validas, PostgreSQL NOTICE nos dará detalles del porque no es "
+"valida. Para mas información sobre la definición de simplicidad y validez de "
+"geometrías del OGC, visita el enlace <link linkend=\"OGC_Validity\">"
+"\"Ensuring OpenGIS compliancy of geometries\"</link>"
+
+#. Tag: para
+#: reference_accessor.xml:822
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsValid(NULL) to be 0, while PostGIS returns "
+"NULL."
+msgstr ""
+"SQL-MM define que el resultado de ST_IsValid(NULL) debe ser 0, mientras que "
+"PostGIS devuelve NULL."
+
+#. Tag: para
+#: reference_accessor.xml:826
+#, no-c-format
+msgid ""
+"The version accepting flags is available starting with 2.0.0 and requires "
+"GEOS >= 3.3.0. Such version does not print a NOTICE explaining the "
+"invalidity. Allowed <varname>flags</varname> are documented in <xref linkend="
+"\"ST_IsValidDetail\"/>."
+msgstr ""
+"La versión que acepta parámetros esta disponible desde la 2.0.0 y requiere "
+"GEOS >= 3.3.0. Dicha versión no imprime un aviso explicando la invalidez. "
+"Los parámetros permitidos están documentados en <xref linkend="
+"\"ST_IsValidDetail\"/>."
+
+#. Tag: para
+#: reference_accessor.xml:834
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.9"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.9"
+
+#. Tag: programlisting
+#: reference_accessor.xml:842
+#, no-c-format
+msgid ""
+"SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,\n"
+"        ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As "
+"bad_poly\n"
+"--results\n"
+"NOTICE:  Self-intersection at or near point 0 0\n"
+" good_line | bad_poly\n"
+"-----------+----------\n"
+" t         | f"
+msgstr ""
+"SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,\n"
+"        ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As "
+"bad_poly\n"
+"--resultados\n"
+"NOTICE:  Self-intersection at or near point 0 0\n"
+" good_line | bad_poly\n"
+"-----------+----------\n"
+" t         | f"
+
+#. Tag: para
+#: reference_accessor.xml:848
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/"
+">, <xref linkend=\"ST_Summary\"/>"
+msgstr ""
+", <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/"
+">, <xref linkend=\"ST_Summary\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:859
+#, no-c-format
+msgid "ST_IsValidReason"
+msgstr "ST_IsValidReason"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:861
+#, no-c-format
+msgid ""
+"Returns text stating if a geometry is valid or not and if not valid, a "
+"reason why."
+msgstr ""
+"Devuelve un texto indicando si una geometría es valida o no, y el porque."
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:865
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_IsValidReason</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_IsValidReason</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>flags</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_IsValidReason</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_IsValidReason</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>flags</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_accessor.xml:881
+#, no-c-format
+msgid ""
+"Returns text stating if a geometry is valid or not an if not valid, a reason "
+"why."
+msgstr ""
+"Devuelve un texto indicando si una geometría es valida o no, y el porque."
+
+#. Tag: para
+#: reference_accessor.xml:883
+#, no-c-format
+msgid ""
+"Useful in combination with ST_IsValid to generate a detailed report of "
+"invalid geometries and reasons."
+msgstr ""
+"Util en combinación con ST_IsValid para generar un informe detallado de "
+"geometrías invalidas y el porque."
+
+#. Tag: para
+#: reference_accessor.xml:885
+#, no-c-format
+msgid ""
+"Allowed <varname>flags</varname> are documented in <xref linkend="
+"\"ST_IsValidDetail\"/>."
+msgstr ""
+"Los <varname>parametros</varname> permitidos están documentados en <xref "
+"linkend=\"ST_IsValidDetail\"/>."
+
+#. Tag: para
+#: reference_accessor.xml:889
+#, no-c-format
+msgid "Availability: 1.4 - requires GEOS >= 3.1.0."
+msgstr "Disponibilidad: 1.4 - necesita GEOS >=3.1.0."
+
+#. Tag: para
+#: reference_accessor.xml:890
+#, no-c-format
+msgid ""
+"Availability: 2.0 - requires GEOS >= 3.3.0 for the version taking flags."
+msgstr ""
+"Disponibilidad: 2.0 - necesita GEOS >= 3.3.0 para la version que toma "
+"parámetros."
+
+#. Tag: programlisting
+#: reference_accessor.xml:898
+#, no-c-format
+msgid ""
+"--First 3 Rejects from a successful quintuplet experiment\n"
+"SELECT gid, ST_IsValidReason(the_geom) as validity_info\n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      validity_info\n"
+"------+--------------------------\n"
+" 5330 | Self-intersection [32 5]\n"
+" 5340 | Self-intersection [42 5]\n"
+" 5350 | Self-intersection [52 5]\n"
+"\n"
+" --simple example\n"
+"SELECT ST_IsValidReason('LINESTRING(220227 150406,2220227 150407,222020 "
+"150410)');\n"
+"\n"
+" st_isvalidreason\n"
+"------------------\n"
+" Valid Geometry"
+msgstr ""
+"--Primeros 3 rechazados de un quinteto de prueba\n"
+"SELECT gid, ST_IsValidReason(the_geom) as validity_info\n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      validity_info\n"
+"------+--------------------------\n"
+" 5330 | Self-intersection [32 5]\n"
+" 5340 | Self-intersection [42 5]\n"
+" 5350 | Self-intersection [52 5]\n"
+"\n"
+" -- ejemplo simple\n"
+"SELECT ST_IsValidReason('LINESTRING(220227 150406,2220227 150407,222020 "
+"150410)');\n"
+"\n"
+" st_isvalidreason\n"
+"------------------\n"
+" Valid Geometry"
+
+#. Tag: para
+#: reference_accessor.xml:905
+#, no-c-format
+msgid ", <xref linkend=\"ST_Summary\"/>"
+msgstr ", <xref linkend=\"ST_Summary\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:911
+#, no-c-format
+msgid "ST_IsValidDetail"
+msgstr "ST_IsValidDetail"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:913
+#, no-c-format
+msgid ""
+"Returns a valid_detail (valid,reason,location) row stating if a geometry is "
+"valid or not and if not valid, a reason why and a location where."
+msgstr ""
+"Devuelve una fila de estado valid_detail (validez,razón ,lugar) si una "
+"geometría es valida o no y si no lo es , una razón del porque y el lugar "
+"donde no lo es."
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:917
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>valid_detail "
+"<function>ST_IsValidDetail</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>flags</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>valid_detail "
+"<function>ST_IsValidDetail</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>flags</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_accessor.xml:933
+#, no-c-format
+msgid ""
+"Returns a valid_detail row, formed by a boolean (valid) stating if a "
+"geometry is valid, a varchar (reason) stating a reason why it is invalid and "
+"a geometry (location) pointing out where it is invalid."
+msgstr ""
+"Devuelve una fila valid_detail, formada por un valor boleano (valido) de "
+"estado si la geometría es valida, un texto (razón) explicando la razón por "
+"la cual es valida y una geometría (lugar) señalando donde no es valida la "
+"geometría."
+
+#. Tag: para
+#: reference_accessor.xml:935
+#, no-c-format
+msgid ""
+"Useful to substitute and improve the combination of ST_IsValid and "
+"ST_IsValidReason to generate a detailed report of invalid geometries."
+msgstr ""
+"Util para sustituir y mejorar la combinación de ST_IsValid y "
+"ST_IsValidReason para generar un informe detallado de geometrías no validas."
+
+#. Tag: para
+#: reference_accessor.xml:937
+#, no-c-format
+msgid "The 'flags' argument is a bitfield. It can have the following values:"
+msgstr ""
+"Los argumentos 'parámetro' son un campo de bits. Pueden tener los siguientes "
+"valores:"
+
+#. Tag: para
+#: reference_accessor.xml:941
+#, no-c-format
+msgid ""
+"1: Consider self-intersecting rings forming holes as valid. This is also "
+"know as \"the ESRI flag\". Note that this is against the OGC model."
+msgstr ""
+"1: Considera anillos que se auto intersectan como validos. Esto también es "
+"conocido como \"the ESRI flag\". Observa que esto es contrario al modelo OGC."
+
+#. Tag: para
+#: reference_accessor.xml:950
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr "Disponibilidad: 2.0.0 - requiere GEOS >= 3.3.0."
+
+#. Tag: programlisting
+#: reference_accessor.xml:958
+#, no-c-format
+msgid ""
+"--First 3 Rejects from a successful quintuplet experiment\n"
+"SELECT gid, reason(ST_IsValidDetail(the_geom)), "
+"ST_AsText(location(ST_IsValidDetail(the_geom))) as location \n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      reason       |  location\n"
+"------+-------------------+-------------\n"
+" 5330 | Self-intersection | POINT(32 5)\n"
+" 5340 | Self-intersection | POINT(42 5)\n"
+" 5350 | Self-intersection | POINT(52 5)\n"
+"\n"
+" --simple example\n"
+"SELECT * FROM ST_IsValidDetail('LINESTRING(220227 150406,2220227 "
+"150407,222020 150410)');\n"
+"\n"
+" valid | reason | location\n"
+"-------+--------+----------\n"
+" t     |        |"
+msgstr ""
+"---Primeros 3 rechazados de un quinteto de prueba\n"
+"SELECT gid, reason(ST_IsValidDetail(the_geom)), "
+"ST_AsText(location(ST_IsValidDetail(the_geom))) as location \n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      reason       |  location\n"
+"------+-------------------+-------------\n"
+" 5330 | Self-intersection | POINT(32 5)\n"
+" 5340 | Self-intersection | POINT(42 5)\n"
+" 5350 | Self-intersection | POINT(52 5)\n"
+"\n"
+" --ejemplo simple\n"
+"SELECT * FROM ST_IsValidDetail('LINESTRING(220227 150406,2220227 "
+"150407,222020 150410)');\n"
+"\n"
+" valid | reason | location\n"
+"-------+--------+----------\n"
+" t     |        |"
+
+#. Tag: para
+#: reference_accessor.xml:965
+#, no-c-format
+msgid ", <xref linkend=\"ST_IsValidReason\"/>"
+msgstr ", <xref linkend=\"ST_IsValidReason\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:974
+#, no-c-format
+msgid "ST_M"
+msgstr "ST_M"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:976
+#, no-c-format
+msgid ""
+"<refpurpose>Return the M coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve la coordenada M del punto, o NULL si no seta "
+"disponible. La entrada debe ser un punto.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:982
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_M</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_M</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:992
+#, no-c-format
+msgid ""
+"<para>Return the M coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+"<para>Devuelve la coordenada M del punto, o NULL si no seta disponible. La "
+"entrada debe ser un punto.</para>"
+
+#. Tag: para
+#: reference_accessor.xml:996
+#, no-c-format
+msgid ""
+"This is not (yet) part of the OGC spec, but is listed here to complete the "
+"point coordinate extractor function list."
+msgstr ""
+"Esto no es (todavía) parte de la especificación OGC, pero esta incluida aquí "
+"para completar la lista de extracción de coordenadas de un punto."
+
+#. Tag: para
+#: reference_accessor.xml:1000 reference_accessor.xml:1891
+#, no-c-format
+msgid "&sqlmm_compliant;"
+msgstr "&sqlmm_compliant;"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1008
+#, no-c-format
+msgid ""
+"SELECT ST_M(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_m\n"
+"------\n"
+"        4\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_M(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_m\n"
+"------\n"
+"        4\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:1015
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/"
+">"
+msgstr ""
+", <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/"
+">"
+
+#. Tag: refname
+#: reference_accessor.xml:1021
+#, no-c-format
+msgid "ST_NDims"
+msgstr "ST_NDims"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1022
+#, no-c-format
+msgid ""
+"Returns coordinate dimension of the geometry as a small int. Values are: 2,3 "
+"or 4."
+msgstr ""
+"Devuelve la dimension de las coordenadas de la geometría como un entero "
+"\"small int\". Los valores son: 2,3 o 4."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1028
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NDims</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NDims</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1038
+#, no-c-format
+msgid ""
+"Returns the coordinate dimension of the geometry. PostGIS supports 2 - (x,"
+"y) , 3 - (x,y,z) or 2D with measure - x,y,m, and 4 - 3D with measure space x,"
+"y,z,m"
+msgstr ""
+"Devuelve la dimension de las coordenadas de la geometría. PostGIS soporta 2 "
+"- (x,y), 3 - (x,y,z) o 2D con medidas - x,y,m y 4 -3D con mediadas en el "
+"espacio x,y,z,m."
+
+#. Tag: programlisting
+#: reference_accessor.xml:1047
+#, no-c-format
+msgid ""
+"SELECT ST_NDims(ST_GeomFromText('POINT(1 1)')) As d2point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINT(1 1 2)')) As d3point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINTM(1 1 0.5)')) As d2pointm;\n"
+"\n"
+"         d2point | d3point | d2pointm\n"
+"---------+---------+----------\n"
+"           2 |       3 |        3"
+msgstr ""
+"SELECT ST_NDims(ST_GeomFromText('POINT(1 1)')) As d2point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINT(1 1 2)')) As d3point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINTM(1 1 0.5)')) As d2pointm;\n"
+"\n"
+"         d2point | d3point | d2pointm\n"
+"---------+---------+----------\n"
+"           2 |       3 |        3"
+
+#. Tag: para
+#: reference_accessor.xml:1051
+#, no-c-format
+msgid ", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1057
+#, no-c-format
+msgid "ST_NPoints"
+msgstr "ST_NPoints"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1058
+#, no-c-format
+msgid "Return the number of points (vertexes) in a geometry."
+msgstr "Devuelve el numero de puntos (vértices) en la geometría."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1063
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1073
+#, no-c-format
+msgid "Return the number of points in a geometry. Works for all geometries."
+msgstr ""
+"Devuelve el numero de puntos en la geometría. Funciona con todas las "
+"geometrías."
+
+#. Tag: para
+#: reference_accessor.xml:1075
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+"Anterior a 1.3.4, esta función daba errores si se utilizaba con geometrias "
+"que contenían CURVES. Esto se corrigió en 1.3.4+"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1085
+#, no-c-format
+msgid ""
+"SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 "
+"29.31,77.29 29.07)'));\n"
+"--result\n"
+"4\n"
+"\n"
+"--Polygon in 3D space\n"
+"SELECT ST_NPoints(ST_GeomFromEWKT('LINESTRING(77.29 29.07 1,77.42 29.26 "
+"0,77.27 29.31 -1,77.29 29.07 3)'))\n"
+"--result\n"
+"4"
+msgstr ""
+"SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 "
+"29.31,77.29 29.07)'));\n"
+"--resultado\n"
+"4\n"
+"\n"
+"--Polígono en espacio 3D\n"
+"SELECT ST_NPoints(ST_GeomFromEWKT('LINESTRING(77.29 29.07 1,77.42 29.26 "
+"0,77.27 29.31 -1,77.29 29.07 3)'))\n"
+"--resultado\n"
+"4"
+
+#. Tag: refname
+#: reference_accessor.xml:1096
+#, no-c-format
+msgid "ST_NRings"
+msgstr "ST_NRings"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1097
+#, no-c-format
+msgid ""
+"If the geometry is a polygon or multi-polygon returns the number of rings."
+msgstr ""
+"Si la geometria es un polígono o un multi-polígono devuelve el numero de "
+"anillos."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1102
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1112
+#, no-c-format
+msgid ""
+"If the geometry is a polygon or multi-polygon returns the number of rings. "
+"Unlike NumInteriorRings, it counts the outer rings as well."
+msgstr ""
+"Si la geometria es un polígono o un multi-polígono devuelve el numero de "
+"anillos. Al contrario que NumInteriorRings, cuenta el anille exterior "
+"tambien."
+
+#. Tag: programlisting
+#: reference_accessor.xml:1122
+#, no-c-format
+msgid ""
+"SELECT ST_NRings(the_geom) As Nrings, ST_NumInteriorRings(the_geom) As "
+"ninterrings\n"
+"                                        FROM (SELECT "
+"ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))') As the_geom) As foo;\n"
+"         nrings | ninterrings\n"
+"--------+-------------\n"
+"          1 |           0\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_NRings(the_geom) As Nrings, ST_NumInteriorRings(the_geom) As "
+"ninterrings\n"
+"                                        FROM (SELECT "
+"ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))') As the_geom) As foo;\n"
+"         nrings | ninterrings\n"
+"--------+-------------\n"
+"          1 |           0\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_accessor.xml:1135
+#, no-c-format
+msgid "ST_NumGeometries"
+msgstr "ST_NumGeometries"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1136
+#, no-c-format
+msgid ""
+"If geometry is a GEOMETRYCOLLECTION (or MULTI*) return the number of "
+"geometries, for single geometries will return 1, otherwise return NULL."
+msgstr ""
+"Si la geometría es una GEOMETRYCOLLECTION (o MULTI*) devuelve el numero de "
+"geometrías, para geometrias simples devuelve 1, si no devuelve NULL."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1142
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumGeometries</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NumGeometries</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1152
+#, no-c-format
+msgid ""
+"Returns the number of Geometries. If geometry is a GEOMETRYCOLLECTION (or "
+"MULTI*) return the number of geometries, for single geometries will return "
+"1, otherwise return NULL."
+msgstr ""
+"Devuelve el numero de geometrías. Si la geometría es una GEOMETRYCOLLECTION "
+"(o MULTI*) devuelve el numero de geometrías, para geometrias simples "
+"devuelve 1, si no devuelve NULL."
+
+#. Tag: para
+#: reference_accessor.xml:1156
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this would return NULL if the geometry was "
+"not a collection/MULTI type. 2.0.0+ now returns 1 for single geometries e.g "
+"POLYGON, LINESTRING, POINT."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1158
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.1.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1168
+#, no-c-format
+msgid ""
+"--Prior versions would have returned NULL for this -- in 2.0.0 this returns "
+"1\n"
+"SELECT ST_NumGeometries(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"--result\n"
+"1\n"
+"\n"
+"--Geometry Collection Example - multis count as one geom in a collection\n"
+"SELECT ST_NumGeometries(ST_GeomFromEWKT('GEOMETRYCOLLECTION(MULTIPOINT(-2 "
+"3 , -2 2),\n"
+"LINESTRING(5 5 ,10 10),\n"
+"POLYGON((-7 4.2,-7.1 5,-7.1 4.3,-7 4.2)))'));\n"
+"--result\n"
+"3"
+msgstr ""
+"--En versiones anteriores esto habría devuelto NULL\n"
+"-- en 2.0.0 devuelve 1\n"
+"SELECT ST_NumGeometries(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"--resultado\n"
+"1\n"
+"\n"
+"--Ejemplo de Colección de geometrías - al contar las geometrías múltiples "
+"cuentan como 1 en una colección\n"
+"SELECT ST_NumGeometries(ST_GeomFromEWKT('GEOMETRYCOLLECTION(MULTIPOINT(-2 "
+"3 , -2 2),\n"
+"LINESTRING(5 5 ,10 10),\n"
+"POLYGON((-7 4.2,-7.1 5,-7.1 4.3,-7 4.2)))'));\n"
+"--resultado\n"
+"3"
+
+#. Tag: para
+#: reference_accessor.xml:1173
+#, no-c-format
+msgid ", <xref linkend=\"ST_Multi\"/>"
+msgstr ", <xref linkend=\"ST_Multi\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1179
+#, no-c-format
+msgid "ST_NumInteriorRings"
+msgstr "ST_NumInteriorRings"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1180
+#, no-c-format
+msgid ""
+"Return the number of interior rings of the a polygon in the geometry. This "
+"will work with POLYGON and return NULL for a MULTIPOLYGON type or any other "
+"type"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1186
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumInteriorRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1196
+#, no-c-format
+msgid ""
+"Return the number of interior rings of the first polygon in the geometry. "
+"This will work with both POLYGON and MULTIPOLYGON types but only looks at "
+"the first polygon. Return NULL if there is no polygon in the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1201
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.5"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.2.5"
+
+#. Tag: para
+#: reference_accessor.xml:1202
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions it would return the number of interior "
+"rings for the first POLYGON in a MULTIPOLYGON."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1208
+#, no-c-format
+msgid ""
+"--If you have a regular polygon\n"
+"SELECT gid, field1, field2, ST_NumInteriorRings(the_geom) AS numholes\n"
+"FROM sometable;\n"
+"\n"
+"--If you have multipolygons\n"
+"--And you want to know the total number of interior rings in the "
+"MULTIPOLYGON\n"
+"SELECT gid, field1, field2, SUM(ST_NumInteriorRings(the_geom)) AS numholes\n"
+"FROM (SELECT gid, field1, field2, (ST_Dump(the_geom)).geom As the_geom\n"
+"        FROM sometable) As foo\n"
+"GROUP BY gid, field1,field2;"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1219
+#, no-c-format
+msgid "ST_NumInteriorRing"
+msgstr "ST_NumInteriorRing"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1220
+#, fuzzy, no-c-format
+msgid ""
+"Return the number of interior rings of a polygon in the geometry. Synonym "
+"for ST_NumInteriorRings."
+msgstr ""
+"Devuelve el numero de puntos en la geometría. Funciona con todas las "
+"geometrías."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1226
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumInteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1242
+#, no-c-format
+msgid "ST_NumPatches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1243
+#, no-c-format
+msgid ""
+"Return the number of faces on a Polyhedral Surface. Will return null for non-"
+"polyhedral geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1248
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumPatches</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1258
+#, no-c-format
+msgid ""
+"Return the number of faces on a Polyhedral Surface. Will return null for non-"
+"polyhedral geometries. This is an alias for ST_NumGeometries to support MM "
+"naming. Faster to use ST_NumGeometries if you don't care about MM convention."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1261 reference_accessor.xml:1356
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1264 reference_accessor.xml:1357
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: ?"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1271
+#, no-c-format
+msgid ""
+"SELECT ST_NumPatches(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                --result\n"
+"                6"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1282
+#, no-c-format
+msgid "ST_NumPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1283
+#, no-c-format
+msgid ""
+"Return the number of points in an ST_LineString or ST_CircularString value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1289
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1299
+#, no-c-format
+msgid ""
+"Return the number of points in an ST_LineString or ST_CircularString value. "
+"Prior to 1.4 only works with Linestrings as the specs state. From 1.4 "
+"forward this is an alias for ST_NPoints which returns number of vertexes for "
+"not just line strings. Consider using ST_NPoints instead which is multi-"
+"purpose and works with many geometry types."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1306
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1312
+#, no-c-format
+msgid ""
+"SELECT ST_NumPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                --result\n"
+"                4"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1323
+#, no-c-format
+msgid "ST_PatchN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1325
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry (face) if the geometry is a "
+"POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1332
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PatchN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1343
+#, no-c-format
+msgid ""
+">Return the 1-based Nth geometry (face) if the geometry is a "
+"POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL. This returns "
+"the same answer as ST_GeometryN for Polyhedral Surfaces. Using ST_GemoetryN "
+"is faster."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1349
+#, no-c-format
+msgid "Index is 1-based."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1353
+#, no-c-format
+msgid ""
+"If you want to extract all geometries, of a geometry, ST_Dump is more "
+"efficient."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1367
+#, no-c-format
+msgid ""
+"--Extract the 2nd face of the polyhedral surface\n"
+"SELECT ST_AsEWKT(ST_PatchN(geom, 2)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )')) ) As foo(geom);\n"
+"\n"
+"              geomewkt\n"
+"---+-----------------------------------------\n"
+" POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1374
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
+"linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1380
+#, no-c-format
+msgid "ST_PointN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1382
+#, fuzzy, no-c-format
+msgid ""
+"Return the Nth point in the first linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
+msgstr ""
+"Devuelve la cadena de texto del anillo interior N del poligono. Devuelve "
+"NULL si la geometría no es un polígono o el indice N dado esta fuera de "
+"rango."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1389
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PointN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1400
+#, fuzzy, no-c-format
+msgid ""
+"Return the Nth point in a single linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
+msgstr ""
+"Devuelve la cadena de texto del anillo interior N del poligono. Devuelve "
+"NULL si la geometría no es un polígono o el indice N dado esta fuera de "
+"rango."
+
+#. Tag: para
+#: reference_accessor.xml:1410
+#, no-c-format
+msgid ""
+"If you want to get the nth point of each line string in a multilinestring, "
+"use in conjunction with ST_Dump"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1415
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.5, 7.3.5"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1418
+#, fuzzy, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring."
+msgstr ""
+"Cambiado: 2.0.0 ya no funciona con multilinestrings de geometrías simples. "
+"En versiones anteriores de PostGIS -- una linea simple multilinestring "
+"funciona sin problemas con esta función y devuelve el punto inicial. En la "
+"version 2.0.0 simplemente devuelve NULL como con cualquier multilinestring. "
+"La antigua version era una función sin documentar, pero la gente que asumía "
+"que tenia sus datos almacenados en LINESTRING pueden experimentar este "
+"comportamiento ahora de resultado NULL en la version 2.0."
+
+#. Tag: programlisting
+#: reference_accessor.xml:1428
+#, no-c-format
+msgid ""
+"-- Extract all POINTs from a LINESTRING\n"
+"SELECT ST_AsText(\n"
+"   ST_PointN(\n"
+"          column1,\n"
+"          generate_series(1, ST_NPoints(column1))\n"
+"   ))\n"
+"FROM ( VALUES ('LINESTRING(0 0, 1 1, 2 2)'::geometry) ) AS foo;\n"
+"\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 0)\n"
+" POINT(1 1)\n"
+" POINT(2 2)\n"
+"(3 rows)\n"
+"\n"
+"--Example circular string\n"
+"SELECT ST_AsText(ST_PointN(ST_GeomFromText('CIRCULARSTRING(1 2, 3 2, 1 "
+"2)'),2));\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"POINT(3 2)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1440
+#, no-c-format
+msgid "ST_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1441
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier for the ST_Geometry as defined in "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1446
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1456
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier for the ST_Geometry as defined in "
+"spatial_ref_sys table. <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1457
+#, no-c-format
+msgid ""
+"spatial_ref_sys table is a table that catalogs all spatial reference systems "
+"known to PostGIS and is used for transformations from one spatial reference "
+"system to another. So verifying you have the right spatial reference system "
+"identifier is important if you plan to ever transform your geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1461
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1469
+#, no-c-format
+msgid ""
+"SELECT ST_SRID(ST_GeomFromText('POINT(-71.1043 42.315)',4326));\n"
+"                --result\n"
+"                4326"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1474
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1480
+#, no-c-format
+msgid "ST_StartPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1482
+#, no-c-format
+msgid ""
+"Returns the first point of a <varname>LINESTRING</varname> geometry as a "
+"<varname>POINT</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1488
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_StartPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1499
+#, fuzzy, no-c-format
+msgid ""
+"Returns the first point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname> "
+"or <varname>NULL</varname> if the input parameter is not a "
+"<varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname>."
+msgstr ""
+"Devuelve el último punto de una geometría <varname>LINESTRING</varname> como "
+"<varname>POINT</varname> o <varname>NULL</varname> si el parametro de "
+"entrada no es una <varname>LINESTRING</varname>."
+
+#. Tag: para
+#: reference_accessor.xml:1503
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1518
+#, fuzzy, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_StartPoint('LINESTRING(0 1, 0 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 1)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_StartPoint('POINT(0 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--3d line\n"
+"SELECT ST_AsEWKT(ST_StartPoint('LINESTRING(0 1 1, 0 2 2)'::geometry));\n"
+" st_asewkt\n"
+"------------\n"
+" POINT(0 1 1)\n"
+"(1 row)\n"
+"\n"
+"-- circular linestring --\n"
+"SELECT ST_AsText(ST_StartPoint('CIRCULARSTRING(5 2,-3 1.999999, -2 1, -4 2, "
+"5 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(5 2)"
+msgstr ""
+"postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::"
+"geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(3 3)\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_EndPoint('POINT(1 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--punto final 3d\n"
+"SELECT ST_AsEWKT(ST_EndPoint('LINESTRING(1 1 2, 1 2 3, 0 0 5)'));\n"
+"  st_asewkt\n"
+"--------------\n"
+" POINT(0 0 5)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:1524
+#, no-c-format
+msgid ", <xref linkend=\"ST_PointN\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1529
+#, no-c-format
+msgid "ST_Summary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1531
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:1537
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_Summary</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1552
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1554
+#, no-c-format
+msgid ""
+"Flags shown square brackets after the geometry type have the following "
+"meaning:"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1558
+#, no-c-format
+msgid "M: has M ordinate"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1559
+#, no-c-format
+msgid "Z: has Z ordinate"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1560
+#, no-c-format
+msgid "B: has a cached bounding box"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1561
+#, no-c-format
+msgid "G: is geodetic (geography)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1562
+#, no-c-format
+msgid "S: has spatial reference system"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1566
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1567
+#, no-c-format
+msgid "Enhanced: 2.0.0 added support for geography"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1568
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 S flag to denote if has a known spatial reference system"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1575
+#, no-c-format
+msgid ""
+"=# SELECT ST_Summary(ST_GeomFromText('LINESTRING(0 0, 1 1)')) as geom,\n"
+"        ST_Summary(ST_GeogFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) "
+"geog;\n"
+"            geom             |          geog    \n"
+"-----------------------------+--------------------------\n"
+" LineString[B] with 2 points | Polygon[BGS] with 1 rings\n"
+"                             | ring 0 has 5 points\n"
+"                             :\n"
+"(1 row)\n"
+"\n"
+"\n"
+"=# SELECT ST_Summary(ST_GeogFromText('LINESTRING(0 0 1, 1 1 1)')) As "
+"geog_line,\n"
+"        ST_Summary(ST_GeomFromText('SRID=4326;POLYGON((0 0 1, 1 1 2, 1 2 3, "
+"1 1 1, 0 0 1))')) As geom_poly;\n"
+";\n"
+"           geog_line             |        geom_poly\n"
+"-------------------------------- +--------------------------\n"
+" LineString[ZBGS] with 2 points | Polygon[ZBS] with 1 rings\n"
+"                                :    ring 0 has 5 points\n"
+"                                :\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1581
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_AddBBox\"/>, <xref linkend=\"ST_Force_3DM\"/>, "
+"<xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force2D\"/>, <xref "
+"linkend=\"geography\"/>"
+msgstr ""
+", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend="
+"\"ST_NumInteriorRing\"/>,"
+
+#. Tag: para
+#: reference_accessor.xml:1590
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_IsValidReason\"/>, "
+"<xref linkend=\"ST_IsValidDetail\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1601
+#, no-c-format
+msgid "ST_X"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1603
+#, no-c-format
+msgid ""
+"<refpurpose>Return the X coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1609
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_X</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1619
+#, no-c-format
+msgid ""
+"<para>Return the X coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1622
+#, no-c-format
+msgid ""
+"If you want to get the max min x values of any geometry look at ST_XMin, "
+"ST_XMax functions."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1624
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1632
+#, no-c-format
+msgid ""
+"SELECT ST_X(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_x\n"
+"------\n"
+"        1\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+" st_y\n"
+"------\n"
+"  1.5\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1639
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_Z\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1645
+#, no-c-format
+msgid "ST_XMax"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1647
+#, no-c-format
+msgid ""
+"<refpurpose>Returns X maxima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1652
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_XMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1662
+#, no-c-format
+msgid "<para>Returns X maxima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1665 reference_accessor.xml:1710
+#: reference_accessor.xml:1798 reference_accessor.xml:1843
+#: reference_accessor.xml:1931 reference_accessor.xml:2018
+#, no-c-format
+msgid ""
+"Although this function is only defined for box3d, it will work for box2d and "
+"geometry because of the auto-casting behavior defined for geometries and "
+"box2d. However you can not feed it a geometry or box2d text representation, "
+"since that will not auto-cast."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1677
+#, no-c-format
+msgid ""
+"SELECT ST_XMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmax\n"
+"-------\n"
+"4\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmax\n"
+"-------\n"
+"5\n"
+"\n"
+"SELECT ST_XMax(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmax\n"
+"-------\n"
+"3\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_XMax('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmax\n"
+"--------\n"
+"220288.248780547"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1684 reference_accessor.xml:1729
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1690
+#, no-c-format
+msgid "ST_XMin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1692
+#, no-c-format
+msgid ""
+"<refpurpose>Returns X minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1697
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_XMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1707
+#, no-c-format
+msgid "<para>Returns X minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1722
+#, no-c-format
+msgid ""
+"SELECT ST_XMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmin\n"
+"-------\n"
+"-3\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_XMin('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmin\n"
+"--------\n"
+"220186.995121892"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1735
+#, no-c-format
+msgid "ST_Y"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1737
+#, no-c-format
+msgid ""
+"<refpurpose>Return the Y coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1743
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Y</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1753
+#, no-c-format
+msgid ""
+"<para>Return the Y coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1757
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_Y(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_y\n"
+"------\n"
+"        2\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+" st_y\n"
+"------\n"
+"  1.5\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1772
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_X\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/"
+">, <xref linkend=\"ST_Z\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1778
+#, no-c-format
+msgid "ST_YMax"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1780
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Y maxima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1785
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_YMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1795
+#, no-c-format
+msgid "<para>Returns Y maxima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1810
+#, no-c-format
+msgid ""
+"SELECT ST_YMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_ymax\n"
+"-------\n"
+"5\n"
+"\n"
+"SELECT ST_YMax(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_ymax\n"
+"-------\n"
+"6\n"
+"\n"
+"SELECT ST_YMax(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_ymax\n"
+"-------\n"
+"4\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_YMax('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_YMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_ymax\n"
+"--------\n"
+"150506.126829327"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1817
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1823
+#, no-c-format
+msgid "ST_YMin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1825
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Y minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1830
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_YMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1840
+#, no-c-format
+msgid "<para>Returns Y minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1855
+#, no-c-format
+msgid ""
+"SELECT ST_YMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_ymin\n"
+"-------\n"
+"2\n"
+"\n"
+"SELECT ST_YMin(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_ymin\n"
+"-------\n"
+"3\n"
+"\n"
+"SELECT ST_YMin(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_ymin\n"
+"-------\n"
+"2\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_YMin('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_YMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_ymin\n"
+"--------\n"
+"150406"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1862
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1868
+#, no-c-format
+msgid "ST_Z"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1870
+#, no-c-format
+msgid ""
+"<refpurpose>Return the Z coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1876
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Z</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1886
+#, no-c-format
+msgid ""
+"<para>Return the Z coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1898
+#, no-c-format
+msgid ""
+"SELECT ST_Z(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_z\n"
+"------\n"
+"        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1905
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1911
+#, no-c-format
+msgid "ST_ZMax"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1913 reference_accessor.xml:2000
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Z minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1918
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_ZMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1928
+#, no-c-format
+msgid "Returns Z maxima of a bounding box 2d or 3d or a geometry."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1943
+#, no-c-format
+msgid ""
+"SELECT ST_ZMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_zmax\n"
+"-------\n"
+"6\n"
+"\n"
+"SELECT ST_ZMax(ST_GeomFromEWKT('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_zmax\n"
+"-------\n"
+"7\n"
+"\n"
+"SELECT ST_ZMax('BOX3D(-3 2 1, 3 4 1)' );\n"
+"st_zmax\n"
+"-------\n"
+"1\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_ZMax('LINESTRING(1 3 4, 5 6 7)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_ZMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_zmax\n"
+"--------\n"
+"3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1950
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_ZMax\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1956
+#, no-c-format
+msgid "ST_Zmflag"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1958
+#, no-c-format
+msgid ""
+"<refpurpose>Returns ZM (dimension semantic) flag of the geometries as a "
+"small int. Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1964
+#, no-c-format
+msgid ""
+"<funcdef>smallint <function>ST_Zmflag</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1974
+#, no-c-format
+msgid ""
+"<para>Returns ZM (dimension semantic) flag of the geometries as a small int. "
+"Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1985
+#, no-c-format
+msgid ""
+"SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRING(1 2, 3 4)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 0\n"
+"\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRINGM(1 2 3, 3 4 3)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 1\n"
+"\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('CIRCULARSTRING(1 2 3, 3 4 3, 5 6 3)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 2\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1992
+#, no-c-format
+msgid ", <xref linkend=\"ST_NDims\"/>, <xref linkend=\"ST_Dimension\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1998
+#, no-c-format
+msgid "ST_ZMin"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:2005
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_ZMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:2015
+#, no-c-format
+msgid "<para>Returns Z minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:2030
+#, no-c-format
+msgid ""
+"SELECT ST_ZMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_zmin\n"
+"-------\n"
+"3\n"
+"\n"
+"SELECT ST_ZMin(ST_GeomFromEWKT('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_zmin\n"
+"-------\n"
+"4\n"
+"\n"
+"SELECT ST_ZMin('BOX3D(-3 2 1, 3 4 1)' );\n"
+"st_zmin\n"
+"-------\n"
+"1\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_ZMin('LINESTRING(1 3 4, 5 6 7)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_ZMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_zmin\n"
+"--------\n"
+"1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:2037
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_XMin\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin"
+"\"/>, <xref linkend=\"ST_ZMax\"/>"
+msgstr ""
diff --git a/doc/po/es/reference_constructor.xml.po b/doc/po/es/reference_constructor.xml.po
new file mode 100644
index 0000000..4bffd27
--- /dev/null
+++ b/doc/po/es/reference_constructor.xml.po
@@ -0,0 +1,4345 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-03-03 11:33+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_constructor.xml:3
+#, no-c-format
+msgid "Geometry Constructors"
+msgstr "Contructores Geométricos"
+
+#. Tag: refname
+#: reference_constructor.xml:6
+#, no-c-format
+msgid "ST_BdPolyFromText"
+msgstr "ST_BdPolyFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:8
+#, no-c-format
+msgid ""
+"<refpurpose>Construct a Polygon given an arbitrary collection of closed "
+"linestrings as a MultiLineString Well-Known text representation.</refpurpose>"
+msgstr ""
+"<refpurpose>Construye un polígono dando una colección arbitraria de cadenas "
+"de líneas cerradas como representación \"MultiLineString\" de texto  \"Well-"
+"Known\".</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: title
+#: reference_constructor.xml:23 reference_constructor.xml:72
+#: reference_constructor.xml:123 reference_constructor.xml:159
+#: reference_constructor.xml:188 reference_constructor.xml:215
+#: reference_constructor.xml:267 reference_constructor.xml:318
+#: reference_constructor.xml:366 reference_constructor.xml:409
+#: reference_constructor.xml:438 reference_constructor.xml:481
+#: reference_constructor.xml:555 reference_constructor.xml:594
+#: reference_constructor.xml:645 reference_constructor.xml:677
+#: reference_constructor.xml:730 reference_constructor.xml:777
+#: reference_constructor.xml:822 reference_constructor.xml:860
+#: reference_constructor.xml:905 reference_constructor.xml:964
+#: reference_constructor.xml:1032 reference_constructor.xml:1092
+#: reference_constructor.xml:1131 reference_constructor.xml:1188
+#: reference_constructor.xml:1259 reference_constructor.xml:1304
+#: reference_constructor.xml:1385 reference_constructor.xml:1428
+#: reference_constructor.xml:1470 reference_constructor.xml:1531
+#: reference_constructor.xml:1592 reference_constructor.xml:1646
+#: reference_constructor.xml:1697 reference_constructor.xml:1740
+#: reference_constructor.xml:1796 reference_constructor.xml:1845
+#: reference_constructor.xml:1899 reference_constructor.xml:1942
+#: reference_constructor.xml:1965
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: para
+#: reference_constructor.xml:25
+#, no-c-format
+msgid ""
+"<para>Construct a Polygon given an arbitrary collection of closed "
+"linestrings as a MultiLineString Well-Known text representation.</para>"
+msgstr ""
+"<para>Construye un polígono dando una colección arbitraria de cadenas de "
+"líneas cerradas como representación \"MultiLineString\" de texto  \"Well-"
+"Known\".</para>"
+
+#. Tag: para
+#: reference_constructor.xml:30
+#, no-c-format
+msgid ""
+"Throws an error if WKT is not a MULTILINESTRING. Throws an error if output "
+"is a MULTIPOLYGON; use ST_BdMPolyFromText in that case, or see "
+"ST_BuildArea() for a postgis-specific approach."
+msgstr ""
+"Envia un error si la cadena WKT no representa una MULTILINESTRING. Envía un "
+"error si la salida es un MULTIPOLYGON; en este caso puedes utilizar "
+"ST_BdMPolyFromText, o mira ST_BuildArea() para un enfoque mas especifico de "
+"postgis."
+
+#. Tag: para
+#: reference_constructor.xml:36 reference_constructor.xml:88
+#: reference_constructor.xml:281 reference_constructor.xml:921
+#: reference_constructor.xml:989 reference_constructor.xml:1055
+#: reference_constructor.xml:1486 reference_constructor.xml:1608
+#: reference_constructor.xml:1910
+#, no-c-format
+msgid "&sfs_compliant; s3.2.6.2"
+msgstr "&sfs_compliant; s3.2.6.2"
+
+#. Tag: para
+#: reference_constructor.xml:38 reference_constructor.xml:90
+#, no-c-format
+msgid "Availability: 1.1.0 - requires GEOS >= 2.1.0."
+msgstr "Disponibilidad: 1.1.0 - requiere GEOS >= 2.1.0."
+
+#. Tag: title
+#: reference_constructor.xml:42 reference_constructor.xml:94
+#: reference_constructor.xml:135 reference_constructor.xml:165
+#: reference_constructor.xml:230 reference_constructor.xml:288
+#: reference_constructor.xml:332 reference_constructor.xml:380
+#: reference_constructor.xml:450 reference_constructor.xml:566
+#: reference_constructor.xml:698 reference_constructor.xml:746
+#: reference_constructor.xml:791 reference_constructor.xml:830
+#: reference_constructor.xml:868 reference_constructor.xml:928
+#: reference_constructor.xml:996 reference_constructor.xml:1060
+#: reference_constructor.xml:1100 reference_constructor.xml:1147
+#: reference_constructor.xml:1400 reference_constructor.xml:1435
+#: reference_constructor.xml:1493 reference_constructor.xml:1554
+#: reference_constructor.xml:1615 reference_constructor.xml:1709
+#: reference_constructor.xml:1764 reference_constructor.xml:1814
+#: reference_constructor.xml:1863 reference_constructor.xml:1915
+#, no-c-format
+msgid "Examples"
+msgstr "Ejemplos"
+
+#. Tag: programlisting
+#: reference_constructor.xml:44 reference_constructor.xml:96
+#, no-c-format
+msgid "Forthcoming"
+msgstr "Proximamente"
+
+#. Tag: title
+#: reference_constructor.xml:48 reference_constructor.xml:100
+#: reference_constructor.xml:139 reference_constructor.xml:169
+#: reference_constructor.xml:193 reference_constructor.xml:235
+#: reference_constructor.xml:295 reference_constructor.xml:345
+#: reference_constructor.xml:386 reference_constructor.xml:414
+#: reference_constructor.xml:454 reference_constructor.xml:534
+#: reference_constructor.xml:573 reference_constructor.xml:621
+#: reference_constructor.xml:652 reference_constructor.xml:702
+#: reference_constructor.xml:753 reference_constructor.xml:798
+#: reference_constructor.xml:837 reference_constructor.xml:875
+#: reference_constructor.xml:935 reference_constructor.xml:1003
+#: reference_constructor.xml:1067 reference_constructor.xml:1107
+#: reference_constructor.xml:1154 reference_constructor.xml:1231
+#: reference_constructor.xml:1274 reference_constructor.xml:1338
+#: reference_constructor.xml:1404 reference_constructor.xml:1441
+#: reference_constructor.xml:1500 reference_constructor.xml:1561
+#: reference_constructor.xml:1622 reference_constructor.xml:1673
+#: reference_constructor.xml:1713 reference_constructor.xml:1768
+#: reference_constructor.xml:1821 reference_constructor.xml:1870
+#: reference_constructor.xml:1922 reference_constructor.xml:1946
+#: reference_constructor.xml:1969
+#, no-c-format
+msgid "See Also"
+msgstr "Ver también"
+
+#. Tag: para
+#: reference_constructor.xml:49
+#, no-c-format
+msgid ", <xref linkend=\"ST_BdMPolyFromText\"/>"
+msgstr ", <xref linkend=\"ST_BdMPolyFromText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:55
+#, no-c-format
+msgid "ST_BdMPolyFromText"
+msgstr "ST_BdMPolyFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:56
+#, no-c-format
+msgid ""
+"Construct a MultiPolygon given an arbitrary collection of closed linestrings "
+"as a MultiLineString text representation Well-Known text representation."
+msgstr ""
+"Construye un multipolígono dando una colección arbitraria de cadenas de "
+"líneas cerradas como representación \"MultiLineString\" de texto  \"Well-"
+"Known\"."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:63
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BdMPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdMPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:74
+#, no-c-format
+msgid ""
+"Construct a Polygon given an arbitrary collection of closed linestrings, "
+"polygons, MultiLineStrings as Well-Known text representation."
+msgstr ""
+"Construye un Polígono dando una colección arbitraria de cadenas de líneas "
+"cerradas, polígonos, \"MultiLineString\" en formato de texto  \"Well-Known\"."
+
+#. Tag: para
+#: reference_constructor.xml:79
+#, no-c-format
+msgid ""
+"Throws an error if WKT is not a MULTILINESTRING. Forces MULTIPOLYGON output "
+"even when result is really only composed by a single POLYGON; use <link "
+"linkend=\"ST_BdPolyFromText\">ST_BdPolyFromText</link> if you're sure a "
+"single POLYGON will result from operation, or see <link linkend="
+"\"ST_BuildArea\">ST_BuildArea()</link> for a postgis-specific approach."
+msgstr ""
+"Envia un error si el WKT no es una MULTILINESTRING. Fuerza  una salida "
+"MULTIPOLYGON aunque el resultado este compuesto por un único POLYGON; puedes "
+"utilizar <link linkend=\"ST_BdPolyFromText\">ST_BdPolyFromText</link> si "
+"estas seguro que un único POLYGON será el resultado de la operación, o ver "
+"<link linkend=\"ST_BuildArea\">ST_BuildArea()</link> para un enfoque mas "
+"especifico de postgis."
+
+#. Tag: para
+#: reference_constructor.xml:101
+#, no-c-format
+msgid ", <xref linkend=\"ST_BdPolyFromText\"/>"
+msgstr ", <xref linkend=\"ST_BdPolyFromText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:107
+#, no-c-format
+msgid "ST_Box2dFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:109
+#, fuzzy, no-c-format
+msgid "<refpurpose>Return a BOX2D from a GeoHash string.</refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve un polygon construido desde un linestring  especifico y "
+"un SRID.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Box2dFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:125
+#, fuzzy, no-c-format
+msgid "<para>Return a BOX2D from a GeoHash string.</para>"
+msgstr ""
+"<para>Devuelve un polygon construido desde un linestring  especifico y un "
+"SRID.</para>"
+
+#. Tag: para
+#: reference_constructor.xml:127
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_Box2dFromGeoHash "
+"returns a BOX2D based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:129
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_Box2dFromGeoHash will use "
+"that many characters from the GeoHash to create the BOX2D. Lower precision "
+"values results in larger BOX2Ds and larger values increase the precision."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:131 reference_constructor.xml:446
+#: reference_constructor.xml:1705
+#, fuzzy, no-c-format
+msgid "Availability: 2.1.0"
+msgstr "Disponibilidad: 1.5"
+
+#. Tag: programlisting
+#: reference_constructor.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0');\n"
+"\n"
+"                st_geomfromgeohash\n"
+"--------------------------------------------------\n"
+" BOX(-115.172816 36.114646,-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 0);\n"
+"\n"
+" st_box2dfromgeohash\n"
+"----------------------\n"
+" BOX(-180 -90,180 90)\n"
+"\n"
+" SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10);\n"
+"                            st_box2dfromgeohash\n"
+"---------------------------------------------------------------------------\n"
+" BOX(-115.17282128334 36.1146408319473,-115.172810554504 36.1146461963654)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:141
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:147
+#, no-c-format
+msgid "ST_GeogFromText"
+msgstr "ST_GeogFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:148 reference_constructor.xml:177
+#, no-c-format
+msgid ""
+"Return a specified geography value from Well-Known Text representation or "
+"extended (WKT)."
+msgstr ""
+"Devuelve un valor especifico \"geography\" desde una representación \"Well-"
+"Known Text\" (WKT) o extendida."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:152
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeogFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geography <function>ST_GeogFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:160
+#, no-c-format
+msgid ""
+"Returns a geography object from the well-known text or extended well-known "
+"representation. SRID 4326 is assumed. This is an alias for "
+"ST_GeographyFromText. Points are always expressed in long lat form."
+msgstr ""
+"Devuelve un objeto \"geography\" desde una representación \"Well-Known Text"
+"\" (WKT) o \"Extended Well-Known Text\" (EWKT). Se asume un SRID de 4326. Es "
+"un alias de ST_GeographyFromText. Los puntos se expresan siempre en formato "
+"long lat."
+
+#. Tag: programlisting
+#: reference_constructor.xml:166
+#, no-c-format
+msgid ""
+"--- converting lon lat coords to geography\n"
+"ALTER TABLE sometable ADD COLUMN geog geography(POINT,4326);\n"
+"UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' "
+"|| lat || ')');"
+msgstr ""
+"--- convierte coordenadas lon lat en geography\n"
+"ALTER TABLE sometable ADD COLUMN geog geography(POINT,4326);\n"
+"UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' "
+"|| lat || ')');"
+
+#. Tag: para
+#: reference_constructor.xml:170
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeographyFromText\"/>"
+msgstr ", <xref linkend=\"ST_GeographyFromText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:176
+#, no-c-format
+msgid "ST_GeographyFromText"
+msgstr "ST_GeographyFromText"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:181
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeographyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geography <function>ST_GeographyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:189
+#, no-c-format
+msgid ""
+"Returns a geography object from the well-known text representation. SRID "
+"4326 is assumed."
+msgstr ""
+"Devuelve un objeto \"geography\" desde una representación \"Well-Known Text"
+"\" (WKT). Se asume un SRID igual a 4326."
+
+#. Tag: para
+#: reference_constructor.xml:194
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>"
+msgstr ", <xref linkend=\"ST_AsText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:200
+#, no-c-format
+msgid "ST_GeogFromWKB"
+msgstr "ST_GeogFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:201
+#, no-c-format
+msgid ""
+"Creates a geography instance from a Well-Known Binary geometry "
+"representation (WKB) or extended Well Known Binary (EWKB)."
+msgstr ""
+"Crea una instancia \"geography\" desde la representación de una geometría en "
+"\"Well-Known Binary\" (WKB) o \"Extended Well-Known Binary\" (EWKB)."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:207
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:217
+#, no-c-format
+msgid ""
+"The <varname>ST_GeogFromWKB</varname> function, takes a well-known binary "
+"representation (WKB) of a geometry or PostGIS Extended WKB and creates an "
+"instance of the appropriate geography type. This function plays the role of "
+"the Geometry Factory in SQL."
+msgstr ""
+"La función <varname>ST_GeogFromWKB</varname> , toma una representación de "
+"una geometría en \"Well-Known Binary\" (WKB) o la versión extendida de "
+"PostGIS y crea la instancia apropiada de tipo \"geography\". Esta función "
+"juega el rol de \"Geometry Factory\" en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:222
+#, no-c-format
+msgid "If SRID is not specified, it defaults to 4326 (WGS 84 long lat)."
+msgstr "Si no se define un SRID, por defecto es 4326 (WGS 84 long lat)."
+
+#. Tag: para
+#: reference_constructor.xml:224 reference_constructor.xml:326
+#: reference_constructor.xml:374 reference_constructor.xml:691
+#: reference_constructor.xml:741 reference_constructor.xml:1810
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:232
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table\n"
+"SELECT ST_AsText(\n"
+"ST_GeogFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@')\n"
+");\n"
+"                                          st_astext\n"
+"------------------------------------------------------\n"
+" LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)"
+msgstr ""
+"--Aunque bytes rep contiene solo \\, esto se necesita para escapar "
+"caracteres cuando se e insertan en una tabla\n"
+"SELECT ST_AsText(\n"
+"ST_GeogFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@')\n"
+");\n"
+"                                          st_astext\n"
+"------------------------------------------------------\n"
+" LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_constructor.xml:237
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsBinary\"/>"
+msgstr ", <xref linkend=\"ST_AsBinary\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:244
+#, no-c-format
+msgid "ST_GeomCollFromText"
+msgstr "ST_GeomCollFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:246
+#, fuzzy, no-c-format
+msgid ""
+"Makes a collection Geometry from collection WKT with the given SRID. If SRID "
+"is not give, it defaults to 0."
+msgstr ""
+"Crea una colección de Geometrías desde una colección WKT con el SRID dado. "
+"Si no se especifica el SRID, por defecto se usará -1."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:251
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomCollFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomCollFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:269
+#, fuzzy, no-c-format
+msgid ""
+"Makes a collection Geometry from the Well-Known-Text (WKT) representation "
+"with the given SRID. If SRID is not give, it defaults to 0."
+msgstr ""
+"Crea una colección de Geometrías desde una crepresentación \"Well-Known-Text"
+"\" (WKT) con el SRID dado. Si no se especifica el SRID, por defecto se usará "
+"-1."
+
+#. Tag: para
+#: reference_constructor.xml:272 reference_constructor.xml:1475
+#: reference_constructor.xml:1536 reference_constructor.xml:1597
+#: reference_constructor.xml:1905
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite"
+msgstr "OGC SPEC 3.2.6.2 -  La opción SRID es del paquete de conformidad"
+
+#. Tag: para
+#: reference_constructor.xml:274
+#, no-c-format
+msgid "Returns null if the WKT is not a GEOMETRYCOLLECTION"
+msgstr "Devuelve null si el WKT no es una GEOMETRYCOLLECTION"
+
+#. Tag: para
+#: reference_constructor.xml:276
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are collections, don't "
+"use this function. It is slower than ST_GeomFromText since it adds an "
+"additional validation step."
+msgstr ""
+"Si estas completamente seguro que todas tus geometrias WKT son colecciones, "
+"no utilices esta función. Es mas lenta que ST_GeomFromText  ya que añade "
+"pasos de validación adicionales."
+
+#. Tag: para
+#: reference_constructor.xml:282
+#, no-c-format
+msgid "&sqlmm_compliant;"
+msgstr "&sqlmm_compliant;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:290
+#, no-c-format
+msgid ""
+"SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 "
+"4))');"
+msgstr ""
+"SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 "
+"4))');"
+
+#. Tag: para
+#: reference_constructor.xml:297 reference_constructor.xml:1624
+#, no-c-format
+msgid ", <xref linkend=\"ST_SRID\"/>"
+msgstr ", <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:304
+#, no-c-format
+msgid "ST_GeomFromEWKB"
+msgstr "ST_GeomFromEWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:305
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Extended Well-Known Binary "
+"representation (EWKB)."
+msgstr ""
+"Devuelve un valor especifico de ST_Geometry desde una representación \" "
+"Extended Well-Known Binary\" (EWKB)."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:310
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:319
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
+"binary (EWKT) representation."
+msgstr ""
+"Construye un objeto ST_Geometry de PostGIS desde un formato OGC \"Extended "
+"Well-Known Binary\" (EWKB)."
+
+#. Tag: para
+#: reference_constructor.xml:321
+#, no-c-format
+msgid ""
+"The EWKB format is not an OGC standard, but a PostGIS specific format that "
+"includes the spatial reference system (SRID) identifier"
+msgstr ""
+"El formato EWKB no es un estándar del OGC, sino un formato especifico de "
+"PostGIS que incluye el identificador del sistema de referencia espacial "
+"(SRID)"
+
+#. Tag: para
+#: reference_constructor.xml:324 reference_constructor.xml:372
+#: reference_constructor.xml:501 reference_constructor.xml:648
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
+msgstr ""
+"Mejora: 2.0.0 se introdujeron soporte de superficies poliédricas y TIN."
+
+#. Tag: para
+#: reference_constructor.xml:325 reference_constructor.xml:373
+#: reference_constructor.xml:503 reference_constructor.xml:562
+#: reference_constructor.xml:608 reference_constructor.xml:863
+#: reference_constructor.xml:1199 reference_constructor.xml:1316
+#: reference_constructor.xml:1395 reference_constructor.xml:1809
+#: reference_constructor.xml:1857
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_constructor.xml:327 reference_constructor.xml:375
+#: reference_constructor.xml:504
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_constructor.xml:328 reference_constructor.xml:376
+#: reference_constructor.xml:505
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: para
+#: reference_constructor.xml:333
+#, no-c-format
+msgid ""
+"line string binary rep 0f LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932) in NAD 83 long lat (4269)."
+msgstr ""
+"Representación binaria de LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932) en NAD 83 long lat (4269)."
+
+#. Tag: para
+#: reference_constructor.xml:335
+#, no-c-format
+msgid ""
+"NOTE: Even though byte arrays are delimited with \\ and may have ', we need "
+"to escape both out with \\ and '' if standard_conforming_strings is off. So "
+"it does not look exactly like its AsEWKB representation."
+msgstr ""
+"Nota: Aunque los arrays de bits están delimitados por \\ y deben tener ', "
+"necesitaremos escapar ambos con \\ y '' si el valor de "
+"standard_conforming_strings es off. Asi que esto puede no ser exactamente "
+"como la representación AsEWKB."
+
+#. Tag: programlisting
+#: reference_constructor.xml:337
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\"
+"\\000\\\\003\\\\000\\\\000\\\\000\\\\344J=\n"
+"\\\\013B\\\\312Q\\\\300n\\\\303(\\\\010\\\\036!E@''\\\\277E''K\n"
+"\\\\312Q\\\\300\\\\366{b\\\\235*!E@\\\\225|\\\\354.P\\\\312Q\n"
+"\\\\300p\\\\231\\\\323e1!E@');"
+msgstr ""
+"SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\"
+"\\000\\\\003\\\\000\\\\000\\\\000\\\\344J=\n"
+"\\\\013B\\\\312Q\\\\300n\\\\303(\\\\010\\\\036!E@''\\\\277E''K\n"
+"\\\\312Q\\\\300\\\\366{b\\\\235*!E@\\\\225|\\\\354.P\\\\312Q\n"
+"\\\\300p\\\\231\\\\323e1!E@');"
+
+#. Tag: para
+#: reference_constructor.xml:339
+#, no-c-format
+msgid ""
+"In PostgreSQL 9.1+ - standard_conforming_strings is set to on by default, "
+"where as in past versions it was set to on. You can change defaults as "
+"needed for a single query or at the database or server level. Below is how "
+"you would do it with standard_conforming_strings = on. In this case we "
+"escape the ' with standard ansi ', but slashes are not escaped"
+msgstr ""
+"En PostgreSQL 9.1 + standard_conforming_strings esta activado por defecto, "
+"mientras que en versiones anteriores estaba seleccionado como on. Puedes "
+"cambiarlo según tus necesidades para una consulta simple o a nivel de una "
+"base de datos o del servidor. A continuación se muestra la forma de hacerlo "
+"con standard_conforming_strings = on. En este caso escapamos el 'con "
+"estándar ansi \", pero las barras no son escapadas"
+
+#. Tag: programlisting
+#: reference_constructor.xml:342
+#, no-c-format
+msgid ""
+"set standard_conforming_strings = on;\n"
+"SELECT ST_GeomFromEWKB('\\001\\002\\000\\000 "
+"\\255\\020\\000\\000\\003\\000\\000\\000\\344J=\\012\\013B\n"
+"    \\312Q\\300n\\303(\\010\\036!E@''\\277E''K\\012\\312Q\\300\\366{b\\235*!"
+"E@\\225|\\354.P\\312Q\\012\\300p\\231\\323e1')"
+msgstr ""
+"set standard_conforming_strings = on;\n"
+"SELECT ST_GeomFromEWKB('\\001\\002\\000\\000 "
+"\\255\\020\\000\\000\\003\\000\\000\\000\\344J=\\012\\013B\n"
+"    \\312Q\\300n\\303(\\010\\036!E@''\\277E''K\\012\\312Q\\300\\366{b\\235*!"
+"E@\\225|\\354.P\\312Q\\012\\300p\\231\\323e1')"
+
+#. Tag: para
+#: reference_constructor.xml:346
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
+msgstr ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:352
+#, no-c-format
+msgid "ST_GeomFromEWKT"
+msgstr "ST_GeomFromEWKT"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:353
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Extended Well-Known Text "
+"representation (EWKT)."
+msgstr ""
+"Devuelve un valor especificado ST_Geometry desde una representación "
+"\"Extended Well-Known Text\" (EWKT)."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:358
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:367
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
+"text (EWKT) representation."
+msgstr ""
+"Construye un objeto PostGIS ST_Geometry desde una representación OGC "
+"\"Extended Well-Known text\" (EWKT)."
+
+#. Tag: para
+#: reference_constructor.xml:369
+#, no-c-format
+msgid ""
+"The EWKT format is not an OGC standard, but an PostGIS specific format that "
+"includes the spatial reference system (SRID) identifier"
+msgstr ""
+"El formato EWKT no es un estándar  OGC, sino un formato especifico PostGIS "
+"que incluye el identificador del sistema de referencia espacial (SRID)."
+
+#. Tag: programlisting
+#: reference_constructor.xml:381
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTILINESTRING((-71.160281 "
+"42.258729,-71.160837 42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTIPOLYGON(((-71.1031880899493 "
+"42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))');"
+msgstr ""
+"SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTILINESTRING((-71.160281 "
+"42.258729,-71.160837 42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTIPOLYGON(((-71.1031880899493 "
+"42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))');"
+
+#. Tag: programlisting
+#: reference_constructor.xml:382
+#, no-c-format
+msgid ""
+"--3d circular string\n"
+"SELECT ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)');"
+msgstr ""
+"-- Cadena circular 3d\n"
+"SELECT ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)');"
+
+#. Tag: programlisting
+#: reference_constructor.xml:383
+#, no-c-format
+msgid ""
+"--Polyhedral Surface example\n"
+"SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"        ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"        ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"        ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")');"
+msgstr ""
+"-- Ejemplo de superficie polihedrica\n"
+"SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"        ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"        ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"        ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")');"
+
+#. Tag: para
+#: reference_constructor.xml:387
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:392
+#, no-c-format
+msgid "ST_GeometryFromText"
+msgstr "ST_GeometryFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:393 reference_constructor.xml:1954
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Text representation "
+"(WKT). This is an alias name for ST_GeomFromText"
+msgstr ""
+"Devuelve un valor especifico de ST_Geometry desde una representación \"Well-"
+"Known Text\" (WKT). Es un alias para ST_GeomFromText"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:396
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeometryFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeometryFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:410 reference_constructor.xml:1855
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr "&sfs_compliant;"
+
+#. Tag: para
+#: reference_constructor.xml:411 reference_constructor.xml:690
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.40"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.40"
+
+#. Tag: refname
+#: reference_constructor.xml:422
+#, fuzzy, no-c-format
+msgid "ST_GeomFromGeoHash"
+msgstr "ST_GeomFromGeoJSON"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:424
+#, no-c-format
+msgid "Return a geometry from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:429
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:440
+#, no-c-format
+msgid ""
+"Return a geometry from a GeoHash string. The geometry will be a polygon "
+"representing the GeoHash bounds."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:442
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_GeomFromGeoHash "
+"returns a polygon based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:444
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_GeomFromGeoHash will use "
+"that many characters from the GeoHash to create the polygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:451
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"                                                        st_astext\n"
+"--------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.172816 36.114646,-115.172816 36.114646,-115.172816 "
+"36.114646,-115.172816 36.114646,-115.172816 36.114646))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"                                                          st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.3125 36.03515625,-115.3125 36.2109375,-114.9609375 "
+"36.2109375,-114.9609375 36.03515625,-115.3125 36.03515625))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                                                                                       st_astext\n"
+"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.17282128334 36.1146408319473,-115.17282128334 "
+"36.1146461963654,-115.172810554504 36.1146461963654,-115.172810554504 "
+"36.1146408319473,-115.17282128334 36.1146408319473))\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:456
+#, fuzzy, no-c-format
+msgid ""
+",<xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:462
+#, no-c-format
+msgid "ST_GeomFromGML"
+msgstr "ST_GeomFromGML"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:463
+#, no-c-format
+msgid ""
+"Takes as input GML representation of geometry and outputs a PostGIS geometry "
+"object"
+msgstr ""
+"Toma una representación GML como entrada de una geometría y extrae un objeto "
+"geométrico PostGIS"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:467
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></"
+"funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromGML</function></funcdef> <paramdef><type>text </type> "
+"<parameter>geomgml</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></"
+"funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromGML</function></funcdef> <paramdef><type>text </type> "
+"<parameter>geomgml</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:482
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC GML representation."
+msgstr ""
+"Construye un objeto ST_Geometry de PostGIS desde una representación OGC GML."
+
+#. Tag: para
+#: reference_constructor.xml:483
+#, no-c-format
+msgid ""
+"ST_GeomFromGML works only for GML Geometry fragments. It throws an error if "
+"you try to use it on a whole GML document."
+msgstr ""
+"ST_GeomFromGML funciona solamente para fragmentos geométricos GML. Lanza un "
+"error si intentas utilizar un documento GML completo."
+
+#. Tag: para
+#: reference_constructor.xml:484
+#, no-c-format
+msgid ""
+"OGC GML versions supported: <itemizedlist> <listitem> <para>GML 3.2.1 "
+"Namespace</para> </listitem> <listitem> <para>GML 3.1.1 Simple Features "
+"profile SF-2 (with GML 3.1.0 and 3.0.0 backward compatibility)</para> </"
+"listitem> <listitem> <para>GML 2.1.2</para> </listitem> </itemizedlist> OGC "
+"GML standards, cf: <ulink url=\"http://www.opengeospatial.org/standards/gml"
+"\">http://www.opengeospatial.org/standards/gml</ulink>:"
+msgstr ""
+"Versiones OGC GML soportadas: <itemizedlist> <listitem> <para>GML 3.2.1 "
+"Namespace</para> </listitem> <listitem> <para>GML 3.1.1 Simple Features "
+"profile SF-2 (con GML 3.1.0 y 3.0.0 compatibilidad para versiones "
+"anteriores)</para> </listitem> <listitem> <para>GML 2.1.2</para> </listitem> "
+"</itemizedlist> OGC GML standards, cf: <ulink url=\"http://www."
+"opengeospatial.org/standards/gml\">http://www.opengeospatial.org/standards/"
+"gml</ulink>:"
+
+#. Tag: para
+#: reference_constructor.xml:500 reference_constructor.xml:647
+#, no-c-format
+msgid "Availability: 1.5, requires libxml2 1.6+"
+msgstr "Disponibilidad: 1.5, requiere libxml2 1.6+"
+
+#. Tag: para
+#: reference_constructor.xml:502 reference_constructor.xml:649
+#, no-c-format
+msgid "Enhanced: 2.0.0 default srid optional parameter added."
+msgstr "Mejorada: 2.0.0 se agregó el parámetro por defecto opcional srid."
+
+#. Tag: para
+#: reference_constructor.xml:506
+#, no-c-format
+msgid ""
+"GML allow mixed dimensions (2D and 3D inside the same MultiGeometry for "
+"instance). As PostGIS geometries don't, ST_GeomFromGML convert the whole "
+"geometry to 2D if a missing Z dimension is found once."
+msgstr ""
+"GML permite dimensiones mixtas (2D y 3D dentro de la misma MultiGeometry, "
+"por ejemplo). Como las geometrías PostGIS no lo hacen, ST_GeomFromGML "
+"convierte todas las geometrías a 2D si se encuentra una dimensión Z que "
+"falta."
+
+#. Tag: para
+#: reference_constructor.xml:508
+#, no-c-format
+msgid ""
+"GML support mixed SRS inside the same MultiGeometry. As PostGIS geometries "
+"don't, ST_GeomFromGML, in this case, reproject all subgeometries to the SRS "
+"root node. If no srsName attribute available for the GML root node, the "
+"function throw an error."
+msgstr ""
+"GML soporta SRS diferentes en la misma MultiGeometry. Como las geometrías de "
+"PostGIS no lo hacen, ST_GeomFromGML, en este caso, reproyecta todas las "
+"subgeometrías al SRS del nodo padre. Si no esta disponible el atributo "
+"srsName en el nodo padre del GML, la función lanza un error."
+
+#. Tag: para
+#: reference_constructor.xml:510
+#, no-c-format
+msgid ""
+"ST_GeomFromGML function is not pedantic about an explicit GML namespace. You "
+"could avoid to mention it explicitly for common usages. But you need it if "
+"you want to use XLink feature inside GML."
+msgstr ""
+"La función ST_GeomFromGML no es muy estricta con los namespaces explícitos "
+"de un GML. Puedes evitar mencionarlos explícitamente para usos comunes. Pero "
+"lo necesitas si deseas utilizar la función XLink dentro del GML."
+
+#. Tag: para
+#: reference_constructor.xml:512
+#, no-c-format
+msgid "ST_GeomFromGML function not support SQL/MM curves geometries."
+msgstr "La función ST_GeomFromGML no soporta geometrias curvas SQL/MM."
+
+#. Tag: title
+#: reference_constructor.xml:518 reference_constructor.xml:616
+#, no-c-format
+msgid "Examples - A single geometry with srsName"
+msgstr "Ejemplos - Una geometría simple con srsName"
+
+#. Tag: programlisting
+#: reference_constructor.xml:519
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromGML('<![CDATA[\n"
+"                <gml:LineString srsName=\"EPSG:4269\">\n"
+"                        <gml:coordinates>\n"
+"                                -71.16028,42.258729 -71.160837,42.259112 "
+"-71.161143,42.25932\n"
+"                        </gml:coordinates>\n"
+"                </gml:LineString>']]>);"
+msgstr ""
+"SELECT ST_GeomFromGML('<![CDATA[\n"
+"                <gml:LineString srsName=\"EPSG:4269\">\n"
+"                        <gml:coordinates>\n"
+"                                -71.16028,42.258729 -71.160837,42.259112 "
+"-71.161143,42.25932\n"
+"                        </gml:coordinates>\n"
+"                </gml:LineString>']]>);"
+
+#. Tag: title
+#: reference_constructor.xml:523
+#, no-c-format
+msgid "Examples - XLink usage"
+msgstr "Ejemplos - uso de XLink"
+
+#. Tag: programlisting
+#: reference_constructor.xml:524
+#, no-c-format
+msgid ""
+"SELECT <![CDATA[ST_GeomFromGML('\n"
+"                <gml:LineString xmlns:gml=\"http://www.opengis.net/gml\" \n"
+"                                xmlns:xlink=\"http://www.w3.org/1999/xlink"
+"\"\n"
+"                                srsName=\"urn:ogc:def:crs:EPSG::4269\">\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point gml:id=\"p1\"><gml:pos>42.258729 "
+"-71.16028</gml:pos></gml:Point>\n"
+"                        </gml:pointProperty>\n"
+"                        <gml:pos>42.259112 -71.160837</gml:pos>\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point xlink:type=\"simple\" xlink:href="
+"\"#p1\"/>\n"
+"                        </gml:pointProperty>\n"
+"                </gml:LineString>');]]>);"
+msgstr ""
+"SELECT <![CDATA[ST_GeomFromGML('\n"
+"                <gml:LineString xmlns:gml=\"http://www.opengis.net/gml\" \n"
+"                                xmlns:xlink=\"http://www.w3.org/1999/xlink"
+"\"\n"
+"                                srsName=\"urn:ogc:def:crs:EPSG::4269\">\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point gml:id=\"p1\"><gml:pos>42.258729 "
+"-71.16028</gml:pos></gml:Point>\n"
+"                        </gml:pointProperty>\n"
+"                        <gml:pos>42.259112 -71.160837</gml:pos>\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point xlink:type=\"simple\" xlink:href="
+"\"#p1\"/>\n"
+"                        </gml:pointProperty>\n"
+"                </gml:LineString>');]]>);"
+
+#. Tag: title
+#: reference_constructor.xml:528
+#, no-c-format
+msgid "Examples - Polyhedral Surface"
+msgstr "Ejemplos - Superficie polihédrica"
+
+#. Tag: programlisting
+#: reference_constructor.xml:529
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(<![CDATA[ST_GeomFromGML('\n"
+"<gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"      <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 0 1 0 1 1 0 1 "
+"0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 1 0 1 1 "
+"0 1 0 0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 1 0 0 1 0 "
+"1 0 0 1 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">1 1 0 1 1 1 1 0 "
+"1 1 0 0 1 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 1 0 0 1 1 1 1 "
+"1 1 1 0 0 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 1 1 0 1 1 1 "
+"1 0 1 1 0 0 1</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>']]>));\n"
+"\n"
+"-- result --\n"
+" POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))"
+msgstr ""
+"SELECT ST_AsEWKT(<![CDATA[ST_GeomFromGML('\n"
+"<gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"      <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 0 1 0 1 1 0 1 "
+"0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 1 0 1 1 "
+"0 1 0 0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 1 0 0 1 0 "
+"1 0 0 1 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">1 1 0 1 1 1 1 0 "
+"1 1 0 0 1 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 1 0 0 1 1 1 1 "
+"1 1 1 0 0 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 1 1 0 1 1 1 "
+"1 0 1 1 0 0 1</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>']]>));\n"
+"\n"
+"-- resultado --\n"
+" POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))"
+
+#. Tag: para
+#: reference_constructor.xml:535
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
+msgstr ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:541
+#, no-c-format
+msgid "ST_GeomFromGeoJSON"
+msgstr "ST_GeomFromGeoJSON"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:542
+#, no-c-format
+msgid ""
+"Takes as input a geojson representation of a geometry and outputs a PostGIS "
+"geometry object"
+msgstr ""
+"Toma como entrada una representación geojson de una geometría y devuelve un "
+"objeto geométrico PostGIS"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:547
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomjson</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomjson</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:556
+#, no-c-format
+msgid "Constructs a PostGIS geometry object from the GeoJSON representation."
+msgstr ""
+"Construye un objeto geométrico PostGIS desde una representación GeoJSON."
+
+#. Tag: para
+#: reference_constructor.xml:557
+#, no-c-format
+msgid ""
+"ST_GeomFromGeoJSON works only for JSON Geometry fragments. It throws an "
+"error if you try to use it on a whole JSON document."
+msgstr ""
+"ST_GeomFromGeoJSON solo funciona con fragmentos geométricos JSON. Devolverá "
+"un error si intentas utilizar un documento JSON completo."
+
+#. Tag: para
+#: reference_constructor.xml:559
+#, no-c-format
+msgid "Availability: 2.0.0 requires - JSON-C >= 0.9"
+msgstr "Disponibilidad: 2.0.0 necesita de - JSON-C >= 0.9"
+
+#. Tag: para
+#: reference_constructor.xml:560
+#, no-c-format
+msgid ""
+"If you do not have JSON-C enabled, support you will get an error notice "
+"instead of seeing an output. To enable JSON-C, run configure --with-jsondir=/"
+"path/to/json-c. See <xref linkend=\"installation_configuration\"/> for "
+"details."
+msgstr ""
+"Si no tienes activado el soporte de JSON-C, tendrás un mensaje error en vez "
+"de ver la salida. Para activar el soporte JSON-C, ejecuta configure --with-"
+"jsondir=/path/to/json-c. Para mas detalles ve a <xref linkend="
+"\"installation_configuration\"/>."
+
+#. Tag: programlisting
+#: reference_constructor.xml:567
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":"
+"[-48.23456,20.12345]}')) As wkt;\n"
+"wkt\n"
+"------\n"
+"POINT(-48.23456 20.12345)"
+msgstr ""
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":"
+"[-48.23456,20.12345]}')) As wkt;\n"
+"wkt\n"
+"------\n"
+"POINT(-48.23456 20.12345)"
+
+#. Tag: programlisting
+#: reference_constructor.xml:568
+#, no-c-format
+msgid ""
+"-- a 3D linestring\n"
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"LineString\",\"coordinates"
+"\":[[1,2,3],[4,5,6],[7,8,9]]}')) As wkt;\n"
+"\n"
+"wkt\n"
+"-------------------\n"
+"LINESTRING(1 2,4 5,7 8)"
+msgstr ""
+"-- un linestring 3D\n"
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"LineString\",\"coordinates"
+"\":[[1,2,3],[4,5,6],[7,8,9]]}')) As wkt;\n"
+"\n"
+"wkt\n"
+"-------------------\n"
+"LINESTRING(1 2,4 5,7 8)"
+
+#. Tag: para
+#: reference_constructor.xml:574
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend="
+"\"installation_configuration\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend="
+"\"installation_configuration\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:580
+#, no-c-format
+msgid "ST_GeomFromKML"
+msgstr "ST_GeomFromKML"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:581
+#, no-c-format
+msgid ""
+"Takes as input KML representation of geometry and outputs a PostGIS geometry "
+"object"
+msgstr ""
+"Toma una representación de una geometría KML de entrada y devuelve un objeto "
+"geométrico PostGIS "
+
+#. Tag: funcprototype
+#: reference_constructor.xml:586
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomkml</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomkml</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:595
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC KML representation."
+msgstr ""
+"Construye un objeto ST_Geometry de PostGIS desde una representación OGC KML."
+
+#. Tag: para
+#: reference_constructor.xml:596
+#, no-c-format
+msgid ""
+"ST_GeomFromKML works only for KML Geometry fragments. It throws an error if "
+"you try to use it on a whole KML document."
+msgstr ""
+"ST_GeomFromKML solo funciona con fragmentos geométricos KML. Devuelve un "
+"error si intentas utilizar un documento KML completo."
+
+#. Tag: para
+#: reference_constructor.xml:597
+#, no-c-format
+msgid ""
+"OGC KML versions supported: <itemizedlist> <listitem> <para>KML 2.2.0 "
+"Namespace</para> </listitem> </itemizedlist> OGC KML standards, cf: <ulink "
+"url=\"http://www.opengeospatial.org/standards/kml\">http://www."
+"opengeospatial.org/standards/kml</ulink>:"
+msgstr ""
+"Versiones soportadas OGC KML: <itemizedlist> <listitem> <para>KML 2.2.0 "
+"Namespace</para> </listitem> </itemizedlist> OGC KML standards, cf: <ulink "
+"url=\"http://www.opengeospatial.org/standards/kml\">http://www."
+"opengeospatial.org/standards/kml</ulink>:"
+
+#. Tag: para
+#: reference_constructor.xml:607
+#, no-c-format
+msgid "Availability: 1.5,libxml2 2.6+"
+msgstr "Disponibilidad: 1.5, libxml2 2.6+"
+
+#. Tag: para
+#: reference_constructor.xml:610
+#, no-c-format
+msgid "ST_GeomFromKML function not support SQL/MM curves geometries."
+msgstr "ST_GeomFromKML no soporta geometrías curvas SQL/MM."
+
+#. Tag: programlisting
+#: reference_constructor.xml:617
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromKML('<![CDATA[\n"
+"                <LineString>\n"
+"                        <coordinates>-71.1663,42.2614 \n"
+"                                -71.1667,42.2616</coordinates>\n"
+"                </LineString>']]>);"
+msgstr ""
+"SELECT ST_GeomFromKML('<![CDATA[\n"
+"                <LineString>\n"
+"                        <coordinates>-71.1663,42.2614 \n"
+"                                -71.1667,42.2616</coordinates>\n"
+"                </LineString>']]>);"
+
+#. Tag: para
+#: reference_constructor.xml:622
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsKML\"/>"
+msgstr ", <xref linkend=\"ST_AsKML\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:628
+#, no-c-format
+msgid "ST_GMLToSQL"
+msgstr "ST_GMLToSQL"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:629
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from GML representation. This is an "
+"alias name for ST_GeomFromGML"
+msgstr ""
+"Devuelve un valor especifico ST_Geometry desde una representación GML. Esto "
+"es un alias de ST_GeomFromGML"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:632
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_GMLToSQL</"
+"function></funcdef> <paramdef><type>text </type> <parameter>geomgml</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_GMLToSQL</"
+"function></funcdef> <paramdef><type>text </type> <parameter>geomgml</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:646
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.50 (except for curves support)."
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.50 (excepto para soporte de curvas)."
+
+#. Tag: para
+#: reference_constructor.xml:653
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
+msgstr ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:659
+#, no-c-format
+msgid "ST_GeomFromText"
+msgstr "ST_GeomFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:660
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Text representation "
+"(WKT)."
+msgstr ""
+"Devuelve un valor especifico de ST_Geometry desde una representación "
+"\"Extended Well-Known Binary\" (EWKB)."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:663
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:679
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Well-Known text "
+"representation."
+msgstr ""
+"Construye un objeto ST_Geometry de PostGIS desde una representación OGC "
+"\"Well-Known Text\" (WKT)."
+
+#. Tag: para
+#: reference_constructor.xml:683
+#, no-c-format
+msgid ""
+"There are 2 variants of ST_GeomFromText function, the first takes no SRID "
+"and returns a geometry with no defined spatial reference system. The second "
+"takes a spatial reference id as the second argument and returns an "
+"ST_Geometry that includes this srid as part of its meta-data. The srid must "
+"be defined in the spatial_ref_sys table."
+msgstr ""
+"Hay 2 variantes de la función ST_GeomFromText, la primera no toma SRID y "
+"devuelve una geometría sin sistema de referencia espacial definido. La "
+"segunda toma un id de un sistema de referencia como segundo argumento y "
+"devuelve una ST_Geometry que incluye este srid como parte de sus metadatos. "
+"El srid debe estar definido en la tabla spatial_ref_sys."
+
+#. Tag: para
+#: reference_constructor.xml:689 reference_constructor.xml:1759
+#, no-c-format
+msgid "&sfs_compliant; s3.2.6.2 - option SRID is from the conformance suite."
+msgstr ""
+"&sfs_compliant; s3.2.6.2 - la opción SRID es de la suite de conformidad."
+
+#. Tag: para
+#: reference_constructor.xml:692
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards. This "
+"should now be written as ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
+msgstr ""
+"Cambiado: 2.0.0 En las versiones anteriores de PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') estaba permitido. Esto no esta "
+"permitido ahora en PostGIS 2.0.0 para ajustarse mejor a las normas SQL/MM. "
+"Esto debería ser escrito como ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
+
+#. Tag: programlisting
+#: reference_constructor.xml:699
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)',4269);\n"
+"\n"
+"SELECT ST_GeomFromText('MULTILINESTRING((-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromText('POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromText('MULTIPOLYGON(((-71.1031880899493 42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))',4326);\n"
+"\n"
+"SELECT ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406)');"
+msgstr ""
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)',4269);\n"
+"\n"
+"SELECT ST_GeomFromText('MULTILINESTRING((-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromText('POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromText('MULTIPOLYGON(((-71.1031880899493 42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))',4326);\n"
+"\n"
+"SELECT ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406)');"
+
+#. Tag: para
+#: reference_constructor.xml:703
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:709
+#, no-c-format
+msgid "ST_GeomFromWKB"
+msgstr "ST_GeomFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:710
+#, no-c-format
+msgid ""
+"Creates a geometry instance from a Well-Known Binary geometry representation "
+"(WKB) and optional SRID."
+msgstr ""
+"Crea una instancia de geometría desde la representación de una geometría en "
+"\"Well-Known Binary\" (WKB) y un SRID opcional."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:715 reference_constructor.xml:1781
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromWKB</function></funcdef> <paramdef><type>bytea </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromWKB</function></funcdef> <paramdef><type>bytea </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:732
+#, no-c-format
+msgid ""
+"The <varname>ST_GeomFromWKB</varname> function, takes a well-known binary "
+"representation of a geometry and a Spatial Reference System ID "
+"(<varname>SRID</varname>) and creates an instance of the appropriate "
+"geometry type. This function plays the role of the Geometry Factory in SQL. "
+"This is an alternate name for ST_WKBToSQL."
+msgstr ""
+"La función <varname>ST_GeomFromWKB</varname>, toma una representación "
+"binaria \"well-known\" de una geometría y un ID de un Sistema de Referencia "
+"Espacial (<varname>SRID</varname>) y crea una instancia del tipo de "
+"geometría adecuado. Esta función juega un rol de \"Geometry Factory\" en "
+"SQL. Es un nombre alternativo para ST_WKBToSQL."
+
+#. Tag: para
+#: reference_constructor.xml:738
+#, fuzzy, no-c-format
+msgid "If SRID is not specified, it defaults to 0 (Unknown)."
+msgstr "Si no se define un SRID, por defecto es -1 (Desconocido)."
+
+#. Tag: para
+#: reference_constructor.xml:739
+#, no-c-format
+msgid ""
+"&sfs_compliant; s3.2.7.2 - the optional SRID is from the conformance suite"
+msgstr ""
+"&sfs_compliant; s3.2.7.2 - El SRID opcional es para el paquete de conformidad"
+
+#. Tag: para
+#: reference_constructor.xml:740
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.41"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.41"
+
+#. Tag: programlisting
+#: reference_constructor.xml:748
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@',4326)\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+" SRID=4326;LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+"----Aunque bytes rep contiene solo \\, esto se necesita para escapar "
+"caracteres cuando se e insertan en una tabla \n"
+"                --a menos que standard_conforming_strings este selccionado "
+"como on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@',4326)\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+" SRID=4326;LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_constructor.xml:755
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
+msgstr ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:762
+#, fuzzy, no-c-format
+msgid "ST_GeomFromTWKB"
+msgstr "ST_GeomFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:763
+#, fuzzy, no-c-format
+msgid ""
+"Creates a geometry instance from a Tiny Well-Known Binary geometry "
+"representation (TWKB)."
+msgstr ""
+"Crea una instancia de geometría desde la representación de una geometría en "
+"\"Well-Known Binary\" (WKB) y un SRID opcional."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:769
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromTWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:779
+#, fuzzy, no-c-format
+msgid ""
+"The <varname>ST_GeomFromTWKB</varname> function, takes a tiny well-known "
+"binary representation of a geometry and creates an instance of the "
+"appropriate geometry type."
+msgstr ""
+"La función <varname>ST_GeogFromWKB</varname> , toma una representación de "
+"una geometría en \"Well-Known Binary\" (WKB) o la versión extendida de "
+"PostGIS y crea la instancia apropiada de tipo \"geography\". Esta función "
+"juega el rol de \"Geometry Factory\" en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:783
+#, fuzzy, no-c-format
+msgid "SRID always defaults to 0 (Unknown)."
+msgstr "Si no se define un SRID, por defecto es -1 (Desconocido)."
+
+#. Tag: para
+#: reference_constructor.xml:785
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So a 3D geoemtry in TWKB will "
+"always be a GeometryZ, like PointZ when converted to PostGIS geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:793
+#, fuzzy, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromTWKB(E'\\\\x304202f7f40dbce4040105')\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+"LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromTWKB(\n"
+"          ST_AsTWKB('POINT(2 5)'::geometry,0)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+"----Aunque bytes rep contiene solo \\, esto se necesita para escapar "
+"caracteres cuando se e insertan en una tabla \n"
+"                --a menos que standard_conforming_strings este selccionado "
+"como on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@',4326)\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+" SRID=4326;LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_constructor.xml:800
+#, fuzzy, no-c-format
+msgid ""
+",<xref linkend=\"ST_AsTWKB\"/>,<xref linkend=\"ST_AsTWKBAgg\"/>,<xref "
+"linkend=\"ST_WKBToSQL\"/>, <xref linkend=\"ST_AsBinary\"/>, <xref linkend="
+"\"ST_GeomFromEWKB\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:806
+#, fuzzy, no-c-format
+msgid "ST_LineFromEncodedPolyline"
+msgstr "ST_LineFromMultiPoint"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:808
+#, fuzzy, no-c-format
+msgid "Creates a LineString from an Encoded Polyline."
+msgstr "Crea una Linestring a partir de geometrías de puntos o lineas."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:813
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromEncodedPolyline</function></funcdef> "
+"<paramdef><type>text </type> <parameter>polyline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:824
+#, fuzzy, no-c-format
+msgid "Creates a LineString from an Encoded Polyline string."
+msgstr "Crea una Linestring a partir de geometrías de puntos o lineas."
+
+#. Tag: para
+#: reference_constructor.xml:825
+#, no-c-format
+msgid ""
+"See http://developers.google.com/maps/documentation/utilities/"
+"polylinealgorithm"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:832
+#, fuzzy, no-c-format
+msgid ""
+"--Create a line string from a polyline\n"
+"SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|"
+"U_ulLnnqC_mqNvxq`@'));\n"
+"--result--\n"
+"LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)"
+msgstr ""
+"--Crea una linea 3d desde un multipunto 3d\n"
+"SELECT ST_AsEWKT(ST_LineFromMultiPoint(ST_GeomFromEWKT('MULTIPOINT(1 2 3, 4 "
+"5 6, 7 8 9)')));\n"
+"--resultado--\n"
+"LINESTRING(1 2 3,4 5 6,7 8 9)"
+
+#. Tag: refname
+#: reference_constructor.xml:845
+#, no-c-format
+msgid "ST_LineFromMultiPoint"
+msgstr "ST_LineFromMultiPoint"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:847
+#, no-c-format
+msgid ""
+"<refpurpose>Creates a LineString from a MultiPoint geometry.</refpurpose>"
+msgstr ""
+"<refpurpose>Crea una LineString desde una geometría MultiPoint.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:852
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aMultiPoint</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aMultiPoint</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:862
+#, no-c-format
+msgid "<para>Creates a LineString from a MultiPoint geometry.</para>"
+msgstr "<para>Crea una LineString desde una geometría MultiPoint.</para>"
+
+#. Tag: programlisting
+#: reference_constructor.xml:870
+#, no-c-format
+msgid ""
+"--Create a 3d line string from a 3d multipoint\n"
+"SELECT ST_AsEWKT(ST_LineFromMultiPoint(ST_GeomFromEWKT('MULTIPOINT(1 2 3, 4 "
+"5 6, 7 8 9)')));\n"
+"--result--\n"
+"LINESTRING(1 2 3,4 5 6,7 8 9)"
+msgstr ""
+"--Crea una linea 3d desde un multipunto 3d\n"
+"SELECT ST_AsEWKT(ST_LineFromMultiPoint(ST_GeomFromEWKT('MULTIPOINT(1 2 3, 4 "
+"5 6, 7 8 9)')));\n"
+"--resultado--\n"
+"LINESTRING(1 2 3,4 5 6,7 8 9)"
+
+#. Tag: para
+#: reference_constructor.xml:877
+#, no-c-format
+msgid ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
+msgstr ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:883
+#, no-c-format
+msgid "ST_LineFromText"
+msgstr "ST_LineFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:885
+#, fuzzy, no-c-format
+msgid ""
+"Makes a Geometry from WKT representation with the given SRID. If SRID is not "
+"given, it defaults to 0."
+msgstr ""
+"Crea una Geometría desde una crepresentación \"Well-Known-Text\" (WKT) con "
+"el SRID dado. Si no se especifica el SRID, por defecto se usará -1."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:890
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LineFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LineFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:907
+#, fuzzy, no-c-format
+msgid ""
+"Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0. If WKT passed in is not a LINESTRING, then null is returned."
+msgstr ""
+"Crea una Geometría desde un WKT con el SRID dado. Si no se especifica el "
+"SRID, por defecto se usará -1. Si el WKT no es un LINESTRING, entonces se "
+"devolverá null."
+
+#. Tag: para
+#: reference_constructor.xml:911 reference_constructor.xml:977
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite."
+msgstr "OGC SPEC 3.2.6.2 -  La opción SRID es del paquete de conformidad"
+
+#. Tag: para
+#: reference_constructor.xml:916
+#, no-c-format
+msgid ""
+"If you know all your geometries are LINESTRINGS, its more efficient to just "
+"use ST_GeomFromText. This just calls ST_GeomFromText and adds additional "
+"validation that it returns a linestring."
+msgstr ""
+"Si sabes que todas tus geometrías son LINESTRING, es mas eficiente el uso de "
+"ST_GeomFromText. Esto llama únicamente a ST_GeomFromText y añade "
+"validaciones adicionales que devuelven un linestring."
+
+#. Tag: para
+#: reference_constructor.xml:922
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.8"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.2.8"
+
+#. Tag: programlisting
+#: reference_constructor.xml:930
+#, no-c-format
+msgid ""
+"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, "
+"ST_LineFromText('POINT(1 2)') AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, "
+"ST_LineFromText('POINT(1 2)') AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+
+#. Tag: refname
+#: reference_constructor.xml:943
+#, no-c-format
+msgid "ST_LineFromWKB"
+msgstr "ST_LineFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:945
+#, no-c-format
+msgid "Makes a <varname>LINESTRING</varname> from WKB with the given SRID"
+msgstr "Crea un <varname>LINESTRING</varname> desde un WKB con el SRID dado"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:949
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_LineFromWKB</"
+"function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_LineFromWKB</"
+"function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:966
+#, no-c-format
+msgid ""
+"The <varname>ST_LineFromWKB</varname> function, takes a well-known binary "
+"representation of geometry and a Spatial Reference System ID (<varname>SRID</"
+"varname>) and creates an instance of the appropriate geometry type - in this "
+"case, a <varname>LINESTRING</varname> geometry. This function plays the role "
+"of the Geometry Factory in SQL."
+msgstr ""
+"La función <varname>ST_GeomFromWKB</varname>, toma una representación "
+"binaria \"well-known\" de una geometría y un ID de un Sistema de Referencia "
+"Espacial (<varname>SRID</varname>) y crea una instancia del tipo de "
+"geometría adecuado - en este caso una geometría <varname>LINESTRING</"
+"varname>. Esta función juega un rol de \"Geometry Factory\" en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:972
+#, fuzzy, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>LINESTRING</varname>."
+msgstr ""
+"Si no se especifica un SRID, por defecto se usará -1.Se devuelve "
+"<varname>NULL</varname> si la entrada  <varname>bytea</varname> no "
+"representa un <varname>LINESTRING</varname>."
+
+#. Tag: para
+#: reference_constructor.xml:982
+#, no-c-format
+msgid ""
+"If you know all your geometries are <varname>LINESTRING</varname>s, its more "
+"efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function just "
+"calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation that "
+"it returns a linestring."
+msgstr ""
+"Si sabes que todas tus geometrías son <varname>LINESTRING</varname>, es mas "
+"eficiente el uso de <xref linkend=\"ST_GeomFromWKB\"/>. Esta función "
+"simplemente llama a <xref linkend=\"ST_GeomFromWKB\"/> y añade validaciones "
+"adicionales y devuelve una linestring."
+
+#. Tag: para
+#: reference_constructor.xml:990 reference_constructor.xml:1056
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.9"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.2.9"
+
+#. Tag: programlisting
+#: reference_constructor.xml:998
+#, no-c-format
+msgid ""
+"SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) "
+"AS aline,\n"
+"                ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)'))) "
+"IS NULL AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+"SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) "
+"AS aline,\n"
+"                ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)'))) "
+"IS NULL AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+
+#. Tag: para
+#: reference_constructor.xml:1005
+#, no-c-format
+msgid ", <xref linkend=\"ST_LinestringFromWKB\"/>"
+msgstr ", <xref linkend=\"ST_LinestringFromWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1011
+#, no-c-format
+msgid "ST_LinestringFromWKB"
+msgstr "ST_LinestringFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1013
+#, no-c-format
+msgid "Makes a geometry from WKB with the given SRID."
+msgstr "Crea una geometría desde un WKB con el SRID dado."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1017
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LinestringFromWKB</function></funcdef> <paramdef><type>bytea </"
+"type> <parameter>WKB</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LinestringFromWKB</function></funcdef> <paramdef><type>bytea </"
+"type> <parameter>WKB</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1034
+#, no-c-format
+msgid ""
+"The <varname>ST_LinestringFromWKB</varname> function, takes a well-known "
+"binary representation of geometry and a Spatial Reference System ID "
+"(<varname>SRID</varname>) and creates an instance of the appropriate "
+"geometry type - in this case, a <varname>LINESTRING</varname> geometry. This "
+"function plays the role of the Geometry Factory in SQL."
+msgstr ""
+"La función <varname>ST_LinestringFromWKB</varname>, toma una representación "
+"de una geometría en \"well-known binary\" y un ID de un Sistema de "
+"Referencia Espacial (<varname>SRID</varname>) y crea una instancia del tipo "
+"apropiado de geometría - en este caso, una geometría <varname>LINESTRING</"
+"varname>. Esta función juega un rol de \"Geometry Factory\" en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:1040
+#, fuzzy, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>LINESTRING</varname> geometry. This an alias for <xref linkend="
+"\"ST_LineFromWKB\"/>."
+msgstr ""
+"Si no se especifica un SRID, por defecto se usará -1. Se devuelve "
+"<varname>NULL</varname> si la entrada  <varname>bytea</varname> no "
+"representa un <varname>LINESTRING</varname>. Esto es un alias para <xref "
+"linkend=\"ST_LineFromWKB\"/>."
+
+#. Tag: para
+#: reference_constructor.xml:1045
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - optional SRID is from the conformance suite."
+msgstr "OGC SPEC 3.2.6.2 -  La opción SRID es del paquete de conformidad"
+
+#. Tag: para
+#: reference_constructor.xml:1049
+#, no-c-format
+msgid ""
+"If you know all your geometries are <varname>LINESTRING</varname>s, it's "
+"more efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function "
+"just calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation "
+"that it returns a <varname>LINESTRING</varname>."
+msgstr ""
+"Si sabes que todas tus geometrías son <varname>LINESTRING</varname>, es mas "
+"eficiente el uso de <xref linkend=\"ST_GeomFromWKB\"/>. Esta función "
+"simplemente llama a <xref linkend=\"ST_GeomFromWKB\"/> y añade validaciones "
+"adicionales y devuelve una <varname>LINESTRING</varname>."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1062
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_LineStringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"  ) AS aline,\n"
+"  ST_LinestringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('POINT(1 2)'))\n"
+"  ) IS NULL AS null_return;\n"
+"   aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+"SELECT\n"
+"  ST_LineStringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"  ) AS aline,\n"
+"  ST_LinestringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('POINT(1 2)'))\n"
+"  ) IS NULL AS null_return;\n"
+"   aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+
+#. Tag: para
+#: reference_constructor.xml:1069 reference_constructor.xml:1823
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineFromWKB\"/>"
+msgstr ", <xref linkend=\"ST_LineFromWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1075
+#, no-c-format
+msgid "ST_MakeBox2D"
+msgstr "ST_MakeBox2D"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1077
+#, no-c-format
+msgid "Creates a BOX2D defined by the given point geometries."
+msgstr "Crea una BOX2D definida por los puntos de la geometría dada."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1083
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pointLowLeft</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pointUpRight</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pointLowLeft</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pointUpRight</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1094
+#, no-c-format
+msgid ""
+"Creates a BOX2D defined by the given point geometries. This is useful for "
+"doing range queries"
+msgstr ""
+"Crea una BOX2D definida por los puntos de la geometría dada. Esto es útil "
+"para hacer consultas de rango"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1102
+#, no-c-format
+msgid ""
+"--Return all features that fall reside or partly reside in a US national "
+"atlas coordinate bounding box\n"
+"--It is assumed here that the geometries are stored with SRID = 2163 (US "
+"National atlas equal area)\n"
+"SELECT feature_id, feature_name, the_geom\n"
+"FROM features\n"
+"WHERE the_geom && ST_SetSRID(ST_MakeBox2D(ST_Point(-989502.1875, "
+"528439.5625),\n"
+"        ST_Point(-987121.375 ,529933.1875)),2163)"
+msgstr ""
+"--Devuelve todos los registros que residen por completo o solo una parte en "
+"la bounding box de un atlas nacional de USA\n"
+"--Se asume que las geometrias estan guardadas con SRID = 2163 (US National "
+"atlas equal area)\n"
+"SELECT feature_id, feature_name, the_geom\n"
+"FROM features\n"
+"WHERE the_geom && ST_SetSRID(ST_MakeBox2D(ST_Point(-989502.1875, "
+"528439.5625),\n"
+"        ST_Point(-987121.375 ,529933.1875)),2163)"
+
+#. Tag: para
+#: reference_constructor.xml:1109
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1115
+#, no-c-format
+msgid "ST_3DMakeBox"
+msgstr "ST_3DMakeBox"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1117
+#, no-c-format
+msgid "Creates a BOX3D defined by the given 3d point geometries."
+msgstr "Crea una BOX3D definida por las geometrías puntuales 3D."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1122
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>point3DLowLeftBottom</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>point3DUpRightTop</parameter></paramdef>"
+msgstr ""
+"<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>point3DLowLeftBottom</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>point3DUpRightTop</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1133
+#, no-c-format
+msgid "Creates a BOX3D defined by the given 2 3D point geometries."
+msgstr "Crea una BOX3D definida por las geometrías puntuales 2 3D dadas."
+
+#. Tag: para
+#: reference_constructor.xml:1140
+#, no-c-format
+msgid "This function supports 3d and will not drop the z-index."
+msgstr "Esta función soporta 3D y no suprime el indice z."
+
+#. Tag: para
+#: reference_constructor.xml:1142
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_MakeBox3D"
+msgstr "Cambiado: 2.0.0 En versiones anteriores se solía llamar  ST_MakeBox3D"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1149
+#, no-c-format
+msgid ""
+"SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
+"        ST_MakePoint(-987121.375 ,529933.1875, 10)) As abb3d\n"
+"\n"
+"--bb3d--\n"
+"--------\n"
+"BOX3D(-989502.1875 528439.5625 10,-987121.375 529933.1875 10)"
+msgstr ""
+"SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
+"        ST_MakePoint(-987121.375 ,529933.1875, 10)) As abb3d\n"
+"\n"
+"--bb3d--\n"
+"--------\n"
+"BOX3D(-989502.1875 528439.5625 10,-987121.375 529933.1875 10)"
+
+#. Tag: para
+#: reference_constructor.xml:1156
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1162
+#, no-c-format
+msgid "ST_MakeLine"
+msgstr "ST_MakeLine"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1164
+#, no-c-format
+msgid "Creates a Linestring from point or line geometries."
+msgstr "Crea una Linestring a partir de geometrías de puntos o lineas."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1168
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geoms</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_MakeLine</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</"
+"parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MakeLine</function></funcdef> <paramdef><type>geometry[]</type> "
+"<parameter>geoms_array</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geoms</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_MakeLine</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</"
+"parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MakeLine</function></funcdef> <paramdef><type>geometry[]</type> "
+"<parameter>geoms_array</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1190
+#, no-c-format
+msgid ""
+"ST_MakeLine comes in 3 forms: a spatial aggregate that takes rows of point-"
+"or-line geometries and returns a line string, a function that takes an array "
+"of point-or-lines, and a regular function that takes two point-or-line "
+"geometries. You might want to use a subselect to order points before feeding "
+"them to the aggregate version of this function."
+msgstr ""
+"ST_MakeLine viene en 3 formas: como un agregado espacial que toma filas de "
+"geometrías puntuales o lineales y devuelve una cadena de línea,como una "
+"función que toma una matriz de puntos-o-líneas, y como una función regular "
+"que toma dos puntos-o-lineas geometrías. Es posible que desees utilizar una "
+"subselección para ordenar los puntos antes de alimentar la versión global de "
+"esta función."
+
+#. Tag: para
+#: reference_constructor.xml:1195
+#, no-c-format
+msgid "When adding line components a common node is removed from the output."
+msgstr ""
+"Cuando se añaden componentes lineales, el nodo en común es suprimido de la "
+"salida."
+
+#. Tag: para
+#: reference_constructor.xml:1200
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_MakeLine(geomarray) was introduced. ST_MakeLine "
+"aggregate functions was enhanced to handle more points faster."
+msgstr ""
+"Disponibilidad: 1.4.0 - ST_MakeLine (geomarray) fue introducido. Las "
+"Funciones agregadas ST_MakeLine se mejoraron para manejar más puntos más "
+"rápido."
+
+#. Tag: para
+#: reference_constructor.xml:1201
+#, no-c-format
+msgid ""
+"Availability: 2.0.0 - Support for linestring input elements was introduced"
+msgstr ""
+"Disponibilidad: 2.0.0 - Se introdujo el soporte de una cadena lineal como "
+"elemento de entrada"
+
+#. Tag: title
+#: reference_constructor.xml:1205
+#, no-c-format
+msgid "Examples: Spatial Aggregate version"
+msgstr "Ejemplos: Version Agregado Espacial"
+
+#. Tag: para
+#: reference_constructor.xml:1206
+#, no-c-format
+msgid ""
+"This example takes a sequence of GPS points and creates one record for each "
+"gps travel where the geometry field is a line string composed of the gps "
+"points in the order of the travel."
+msgstr ""
+"Este ejemplo toma una secuencia de puntos GPS y crea un registro para cada "
+"trayecto GPS donde el campo geómetra es una cadena lineal compuesta de los "
+"puntos GPS en el orden del trayecto."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1210
+#, no-c-format
+msgid ""
+"-- For pre-PostgreSQL 9.0 - this usually works, \n"
+"-- but the planner may on occasion choose not to respect the order of the "
+"subquery\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom) As newgeom\n"
+"        FROM (SELECT gps_track,gps_time, the_geom\n"
+"                        FROM gps_points ORDER BY gps_track, gps_time) As "
+"gps\n"
+"        GROUP BY gps.gps_track;"
+msgstr ""
+"-- Para versiones anteriores a PostgreSQL 9.0 - esto normalmente funciona, \n"
+"-- pero en ocasiones el planificador elige no respetar el orden de la "
+"subconsulta\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom) As newgeom\n"
+"        FROM (SELECT gps_track,gps_time, the_geom\n"
+"                        FROM gps_points ORDER BY gps_track, gps_time) As "
+"gps\n"
+"        GROUP BY gps.gps_track;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1212
+#, no-c-format
+msgid ""
+"-- If you are using PostgreSQL 9.0+ \n"
+"-- (you can use the new ORDER BY support for aggregates)\n"
+"-- this is a guaranteed way to get a correctly ordered linestring\n"
+"-- Your order by part can order by more than one column if needed\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom ORDER BY gps_time) As "
+"newgeom\n"
+"        FROM gps_points As gps\n"
+"        GROUP BY gps.gps_track;"
+msgstr ""
+"-- Si estas utilizando PostgreSQL 9.0+ \n"
+"-- (puedes utilizar el soporte de ORDER BY para los agregados)\n"
+"-- esta es una forma garantizada para tener el orden correcto en la cadena "
+"de la linea\n"
+"-- Tu parte \"order by\" puede ordenar por varias columnas si es necesario\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom ORDER BY gps_time) As "
+"newgeom\n"
+"        FROM gps_points As gps\n"
+"        GROUP BY gps.gps_track;"
+
+#. Tag: title
+#: reference_constructor.xml:1215
+#, no-c-format
+msgid "Examples: Non-Spatial Aggregate version"
+msgstr "Ejemplos: Version Agregado No-Espacial"
+
+#. Tag: para
+#: reference_constructor.xml:1217
+#, no-c-format
+msgid ""
+"First example is a simple one off line string composed of 2 points. The "
+"second formulates line strings from 2 points a user draws. The third is a "
+"one-off that joins 2 3d points to create a line in 3d space."
+msgstr ""
+"El primer ejemplo es un ejemplo simple de una cadena lineal compuesta por 2 "
+"puntos. El segundo formula una cadena lineal a partir de dos puntos "
+"dibujados por el usuario. El tercero es un hecho aislado que une 2 puntos 3D "
+"para crear una línea en el espacio 3D."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1219
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(1 2,3 4)\n"
+"\n"
+"SELECT userpoints.id, ST_MakeLine(startpoint, endpoint) As drawn_line\n"
+"        FROM userpoints ;\n"
+"\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ST_MakePoint(1,2,3), ST_MakePoint(3,4,5)));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" LINESTRING(1 2 3,3 4 5)"
+msgstr ""
+"SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(1 2,3 4)\n"
+"\n"
+"SELECT userpoints.id, ST_MakeLine(startpoint, endpoint) As drawn_line\n"
+"        FROM userpoints ;\n"
+"\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ST_MakePoint(1,2,3), ST_MakePoint(3,4,5)));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" LINESTRING(1 2 3,3 4 5)"
+
+#. Tag: title
+#: reference_constructor.xml:1223
+#, no-c-format
+msgid "Examples: Using Array version"
+msgstr "Ejemplos: Utilizando la versión Array"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1225
+#, no-c-format
+msgid ""
+"SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations "
+"ORDER BY visit_time));\n"
+"\n"
+"--Making a 3d line with 3 3-d points\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),\n"
+"                                ST_MakePoint(3,4,5), "
+"ST_MakePoint(6,6,6)]));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+"LINESTRING(1 2 3,3 4 5,6 6 6)"
+msgstr ""
+"SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations "
+"ORDER BY visit_time));\n"
+"\n"
+"-- Haciendo una linea 3d com 3 puntos 3-d\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),\n"
+"                                ST_MakePoint(3,4,5), "
+"ST_MakePoint(6,6,6)]));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+"LINESTRING(1 2 3,3 4 5,6 6 6)"
+
+#. Tag: para
+#: reference_constructor.xml:1232
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_MakePoint\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_MakePoint\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1239
+#, no-c-format
+msgid "ST_MakeEnvelope"
+msgstr "ST_MakeEnvelope"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1241
+#, no-c-format
+msgid ""
+"Creates a rectangular Polygon formed from the given minimums and maximums. "
+"Input values must be in SRS specified by the SRID."
+msgstr ""
+"Crea un polígono rectangular formado a partir de los mínimos y máximos "
+"especificados. Los valores de entrada deben estar en el SRS especificado en "
+"el SRID."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1247
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>xmin</parameter></"
+"paramdef> <paramdef><type>double precision</type> <parameter>ymin</"
+"parameter></paramdef> <paramdef><type>double precision</type> "
+"<parameter>xmax</parameter></paramdef> <paramdef><type>double precision</"
+"type> <parameter>ymax</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>xmin</parameter></"
+"paramdef> <paramdef><type>double precision</type> <parameter>ymin</"
+"parameter></paramdef> <paramdef><type>double precision</type> "
+"<parameter>xmax</parameter></paramdef> <paramdef><type>double precision</"
+"type> <parameter>ymax</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1261
+#, no-c-format
+msgid ""
+"Creates a rectangular Polygon formed from the minima and maxima. by the "
+"given shell. Input values must be in SRS specified by the SRID. If no SRID "
+"is specified the unknown spatial reference system is assumed"
+msgstr ""
+"Crea un polígono rectangular formado a partir de los mínimos y máximos de la "
+"caja dada. Los valores de entrada deben estar en el SRS especificado por el "
+"SRID. Si no se especifica SRID se supone que el sistema de referencia "
+"espacial es desconocido."
+
+#. Tag: para
+#: reference_constructor.xml:1264
+#, no-c-format
+msgid "Availability: 1.5"
+msgstr "Disponibilidad: 1.5"
+
+#. Tag: para
+#: reference_constructor.xml:1265
+#, no-c-format
+msgid ""
+"Enhanced: 2.0: Ability to specify an envelope without specifying an SRID was "
+"introduced."
+msgstr ""
+"Mejorado: 2.0: Se introdujo capacidad de especificar una caja sin "
+"especificar un SRID."
+
+#. Tag: title
+#: reference_constructor.xml:1270
+#, no-c-format
+msgid "Example: Building a bounding box polygon"
+msgstr "Ejemplo: Contruir un poligono correspondiente a la bounding box"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1271
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((10 10, 10 11, 11 11, 11 10, 10 10))"
+msgstr ""
+"SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((10 10, 10 11, 11 11, 11 10, 10 10))"
+
+#. Tag: para
+#: reference_constructor.xml:1275
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
+msgstr ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1281
+#, no-c-format
+msgid "ST_MakePolygon"
+msgstr "ST_MakePolygon"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1283
+#, no-c-format
+msgid ""
+"Creates a Polygon formed by the given shell. Input geometries must be closed "
+"LINESTRINGS."
+msgstr ""
+"Crea un polígono formado por el contorno dado. Las geometrías de entrada "
+"deben ser LINESTRINGS cerradas."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1289
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1295
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>outerlinestring</parameter></"
+"paramdef> <paramdef><type>geometry[]</type> <parameter>interiorlinestrings</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>outerlinestring</parameter></"
+"paramdef> <paramdef><type>geometry[]</type> <parameter>interiorlinestrings</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1306
+#, no-c-format
+msgid ""
+"Creates a Polygon formed by the given shell. Input geometries must be closed "
+"LINESTRINGS. Comes in 2 variants."
+msgstr ""
+"Crea un polígono formado por el contorno dado. Las geometrias de entrada "
+"deben ser LINESTRINGS cerradas. Viene en 2 variantes."
+
+#. Tag: para
+#: reference_constructor.xml:1308
+#, no-c-format
+msgid "Variant 1: takes one closed linestring."
+msgstr "Variante 1: toma una linestring cerrada."
+
+#. Tag: para
+#: reference_constructor.xml:1309
+#, no-c-format
+msgid ""
+"Variant 2: Creates a Polygon formed by the given shell and array of holes. "
+"You can construct a geometry array using ST_Accum or the PostgreSQL ARRAY[] "
+"and ARRAY() constructs. Input geometries must be closed LINESTRINGS."
+msgstr ""
+"Variante 2: Crea un Poligono formado por el contorno dado y un array con "
+"huecos. Puedes construir un array de geometría utilizando ST_Accum o los "
+"constructores  ARRAY[] y ARRAY() de PostgreSQL. Las geometrías de entrada "
+"deben ser LINESTRINGS cerradas."
+
+#. Tag: para
+#: reference_constructor.xml:1313
+#, no-c-format
+msgid ""
+"This function will not accept a MULTILINESTRING. Use <xref linkend="
+"\"ST_LineMerge\"/> or <xref linkend=\"ST_Dump\"/> to generate line strings."
+msgstr ""
+"Esta función no acepta una MULTILINESTRING. Utiliza <xref linkend="
+"\"ST_LineMerge\"/> o <xref linkend=\"ST_Dump\"/> para generar una linestring."
+
+#. Tag: title
+#: reference_constructor.xml:1320
+#, no-c-format
+msgid "Examples: Single closed LINESTRING"
+msgstr "Ejemplos: LINESTRING única y cerrada"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1321
+#, no-c-format
+msgid ""
+"--2d line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 "
+"29.5, 75.15 29.53)'));\n"
+"--If linestring is not closed\n"
+"--you can add the start point to close it\n"
+"SELECT ST_MakePolygon(ST_AddPoint(foo.open_line, ST_StartPoint(foo."
+"open_line)))\n"
+"FROM (\n"
+"SELECT ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5)') As "
+"open_line) As foo;\n"
+"\n"
+"--3d closed line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53 1,77 29 1,77.6 "
+"29.5 1, 75.15 29.53 1)'));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))\n"
+"\n"
+"--measured line --\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRINGM(75.15 29.53 1,77 29 "
+"1,77.6 29.5 2, 75.15 29.53 2)'));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"POLYGONM((75.15 29.53 1,77 29 1,77.6 29.5 2,75.15 29.53 2))"
+msgstr ""
+"--linea 2d\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 "
+"29.5, 75.15 29.53)'));\n"
+"--Si la cadena lineal no es cerrada\n"
+"--puedes añadir el punto de inicio para cerrarla\n"
+"SELECT ST_MakePolygon(ST_AddPoint(foo.open_line, ST_StartPoint(foo."
+"open_line)))\n"
+"FROM (\n"
+"SELECT ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5)') As "
+"open_line) As foo;\n"
+"\n"
+"--linea cerrada 3d\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53 1,77 29 1,77.6 "
+"29.5 1, 75.15 29.53 1)'));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))\n"
+"\n"
+"--linea medida --\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRINGM(75.15 29.53 1,77 29 "
+"1,77.6 29.5 2, 75.15 29.53 2)'));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"POLYGONM((75.15 29.53 1,77 29 1,77.6 29.5 2,75.15 29.53 2))"
+
+#. Tag: title
+#: reference_constructor.xml:1324
+#, no-c-format
+msgid "Examples: Outter shell with inner shells"
+msgstr "Ejemplos: Contorno externo con anillos internos"
+
+#. Tag: para
+#: reference_constructor.xml:1326
+#, no-c-format
+msgid "Build a donut with an ant hole"
+msgstr "Contruye un donut con un agujero de hormiga"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1327
+#, no-c-format
+msgid ""
+"SELECT ST_MakePolygon(\n"
+"                ST_ExteriorRing(ST_Buffer(foo.line,10)),\n"
+"        ARRAY[ST_Translate(foo.line,1,1),\n"
+"                ST_ExteriorRing(ST_Buffer(ST_MakePoint(20,20),1)) ]\n"
+"        )\n"
+"FROM\n"
+"        (SELECT ST_ExteriorRing(ST_Buffer(ST_MakePoint(10,10),10,10))\n"
+"                As line )\n"
+"                As foo;"
+msgstr ""
+"SELECT ST_MakePolygon(\n"
+"                ST_ExteriorRing(ST_Buffer(foo.line,10)),\n"
+"        ARRAY[ST_Translate(foo.line,1,1),\n"
+"                ST_ExteriorRing(ST_Buffer(ST_MakePoint(20,20),1)) ]\n"
+"        )\n"
+"FROM\n"
+"        (SELECT ST_ExteriorRing(ST_Buffer(ST_MakePoint(10,10),10,10))\n"
+"                As line )\n"
+"                As foo;"
+
+#. Tag: para
+#: reference_constructor.xml:1328
+#, no-c-format
+msgid ""
+"Build province boundaries with holes representing lakes in the province from "
+"a set of province polygons/multipolygons and water line strings this is an "
+"example of using PostGIS ST_Accum"
+msgstr ""
+"Construye limites de provincia con agujeros representando lagos en la "
+"provincia y selecciona polígonos/multipolígonos y lineas de agua, este es un "
+"ejemplo utilizando ST_Accum de PostGIS"
+
+#. Tag: para
+#: reference_constructor.xml:1332
+#, no-c-format
+msgid ""
+"The use of CASE because feeding a null array into ST_MakePolygon results in "
+"NULL"
+msgstr ""
+"El uso de CASE es por que estamos alimentando ST_MakePolygon con un array "
+"nulo y el resultado es NULL"
+
+#. Tag: para
+#: reference_constructor.xml:1334
+#, no-c-format
+msgid ""
+"the use of left join to guarantee we get all provinces back even if they "
+"have no lakes"
+msgstr ""
+"El uso de \"left join\" es para garantizar que devuelve todas las provincias "
+"aunque no tengan ningún lago."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1335
+#, no-c-format
+msgid ""
+"SELECT p.gid, p.province_name,\n"
+"                CASE WHEN\n"
+"                        ST_Accum(w.the_geom) IS NULL THEN p.the_geom\n"
+"                ELSE  ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)), "
+"ST_Accum(w.the_geom)) END\n"
+"        FROM\n"
+"                provinces p LEFT JOIN waterlines w\n"
+"                        ON (ST_Within(w.the_geom, p.the_geom) AND "
+"ST_IsClosed(w.the_geom))\n"
+"        GROUP BY p.gid, p.province_name, p.the_geom;\n"
+"\n"
+"        --Same example above but utilizing a correlated subquery\n"
+"        --and PostgreSQL built-in ARRAY() function that converts a row set "
+"to an array\n"
+"\n"
+"        SELECT p.gid,  p.province_name, CASE WHEN\n"
+"                EXISTS(SELECT w.the_geom\n"
+"                        FROM waterlines w\n"
+"                        WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                        AND ST_IsClosed(w.the_geom))\n"
+"                THEN\n"
+"                ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)),\n"
+"                        ARRAY(SELECT w.the_geom\n"
+"                                FROM waterlines w\n"
+"                                WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                                AND ST_IsClosed(w.the_geom)))\n"
+"                ELSE p.the_geom END As the_geom\n"
+"        FROM\n"
+"                provinces p;"
+msgstr ""
+"SELECT p.gid, p.province_name,\n"
+"                CASE WHEN\n"
+"                        ST_Accum(w.the_geom) IS NULL THEN p.the_geom\n"
+"                ELSE  ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)), "
+"ST_Accum(w.the_geom)) END\n"
+"        FROM\n"
+"                provinces p LEFT JOIN waterlines w\n"
+"                        ON (ST_Within(w.the_geom, p.the_geom) AND "
+"ST_IsClosed(w.the_geom))\n"
+"        GROUP BY p.gid, p.province_name, p.the_geom;\n"
+"\n"
+"        -- El mismo ejemplo que antes pero utilizando una subconsulta "
+"correlada\n"
+"        -- y la función ARRAY() de PostgreSQL, que convierte todo el "
+"conjunto de filas en una array\n"
+"\n"
+"        SELECT p.gid,  p.province_name, CASE WHEN\n"
+"                EXISTS(SELECT w.the_geom\n"
+"                        FROM waterlines w\n"
+"                        WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                        AND ST_IsClosed(w.the_geom))\n"
+"                THEN\n"
+"                ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)),\n"
+"                        ARRAY(SELECT w.the_geom\n"
+"                                FROM waterlines w\n"
+"                                WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                                AND ST_IsClosed(w.the_geom)))\n"
+"                ELSE p.the_geom END As the_geom\n"
+"        FROM\n"
+"                provinces p;"
+
+#. Tag: para
+#: reference_constructor.xml:1339
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, "
+"<xref linkend=\"ST_IsClosed\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_BuildArea\"/>"
+msgstr ""
+", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, "
+"<xref linkend=\"ST_IsClosed\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_BuildArea\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1352
+#, no-c-format
+msgid "ST_MakePoint"
+msgstr "ST_MakePoint"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1354
+#, no-c-format
+msgid "Creates a 2D,3DZ or 4D point geometry."
+msgstr "Crea una geometria puntual 2D,3DZ o 4D."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1359
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1366
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1374
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>m</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>m</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1387
+#, no-c-format
+msgid ""
+"Creates a 2D,3DZ or 4D point geometry (geometry with measure). "
+"<varname>ST_MakePoint</varname> while not being OGC compliant is generally "
+"faster and more precise than <xref linkend=\"ST_GeomFromText\"/> and <xref "
+"linkend=\"ST_PointFromText\"/>. It is also easier to use if you have raw "
+"coordinates rather than WKT."
+msgstr ""
+"Crea una geometría puntual 2D,3DZ o 4D (geometría con un valor de medida)."
+"Aunque no es conforme con el OGC <varname>ST_MakePoint</varname> "
+"generalmente es mas rápida y precisa que <xref linkend=\"ST_GeomFromText\"/> "
+"y <xref linkend=\"ST_PointFromText\"/>. También es mas fácil de usar si "
+"tienes registros con coordenadas en lugar de un WKT."
+
+#. Tag: para
+#: reference_constructor.xml:1393
+#, no-c-format
+msgid "Note x is longitude and y is latitude"
+msgstr "Nota que x es la longitud e y es la latitud"
+
+#. Tag: para
+#: reference_constructor.xml:1394
+#, no-c-format
+msgid ""
+"Use <xref linkend=\"ST_MakePointM\"/> if you need to make a point with x,y,m."
+msgstr ""
+"Si necesitas crear un punto con x,y,m utiliza <xref linkend=\"ST_MakePointM"
+"\"/>."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1401
+#, no-c-format
+msgid ""
+"--Return point with unknown SRID\n"
+"SELECT ST_MakePoint(-71.1043443253471, 42.3150676015829);\n"
+"\n"
+"--Return point marked as WGS 84 long lat\n"
+"SELECT ST_SetSRID(ST_MakePoint(-71.1043443253471, 42.3150676015829),4326);\n"
+"\n"
+"--Return a 3D point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get z of point\n"
+"SELECT ST_Z(ST_MakePoint(1, 2,1.5));\n"
+"result\n"
+"-------\n"
+"1.5"
+msgstr ""
+"--Devuelve un punto con un SRID desconocido\n"
+"SELECT ST_MakePoint(-71.1043443253471, 42.3150676015829);\n"
+"\n"
+"--Devuelve un punto como WGS 84 long lat\n"
+"SELECT ST_SetSRID(ST_MakePoint(-71.1043443253471, 42.3150676015829),4326);\n"
+"\n"
+"--Devuelve un punto 3D (por ejemplo, tiene altitud)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Obtiene z del punto\n"
+"SELECT ST_Z(ST_MakePoint(1, 2,1.5));\n"
+"result\n"
+"-------\n"
+"1.5"
+
+#. Tag: para
+#: reference_constructor.xml:1405
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_MakePointM\"/>"
+msgstr ""
+", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_MakePointM\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1411
+#, no-c-format
+msgid "ST_MakePointM"
+msgstr "ST_MakePointM"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1413
+#, no-c-format
+msgid "Creates a point geometry with an x y and m coordinate."
+msgstr "Crea una geometria puntual con coordenadas x, y y m."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1418
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePointM</function></funcdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>m</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePointM</function></funcdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>m</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1430
+#, no-c-format
+msgid "Creates a point with x, y and measure coordinates."
+msgstr "Crea un punto con coordenadas x, y y un valor de medida."
+
+#. Tag: para
+#: reference_constructor.xml:1431
+#, no-c-format
+msgid "Note x is longitude and y is latitude."
+msgstr "Nota que x es la longitud e y es la latitud"
+
+#. Tag: para
+#: reference_constructor.xml:1436
+#, no-c-format
+msgid ""
+"We use ST_AsEWKT in these examples to show the text representation instead "
+"of ST_AsText because ST_AsText does not support returning M."
+msgstr ""
+"Utilizaremos ST_AsEWKT en el ejemplo para mostrar la representación como "
+"texto en lugar de ST_AsText, ya que ST_AsText no soporta devolver el valor M."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1438
+#, no-c-format
+msgid ""
+"--Return EWKT representation of point with unknown SRID\n"
+"SELECT ST_AsEWKT(ST_MakePointM(-71.1043443253471, 42.3150676015829, 10));\n"
+"\n"
+"--result\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return EWKT representation of point with measure marked as WGS 84 long "
+"lat\n"
+"SELECT ST_AsEWKT(ST_SetSRID(ST_MakePointM(-71.1043443253471, "
+"42.3150676015829,10),4326));\n"
+"\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+"SRID=4326;POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return a 3d point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get m of point\n"
+"SELECT ST_M(ST_MakePointM(-71.1043443253471, 42.3150676015829,10));\n"
+"result\n"
+"-------\n"
+"10"
+msgstr ""
+"--Devuelve la representación EWKT del punto con un SRID desconocido\n"
+"SELECT ST_AsEWKT(ST_MakePointM(-71.1043443253471, 42.3150676015829, 10));\n"
+"\n"
+"--result\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Devuelve la representación EWKT del punto con medida como WGS 84 long lat\n"
+"SELECT ST_AsEWKT(ST_SetSRID(ST_MakePointM(-71.1043443253471, "
+"42.3150676015829,10),4326));\n"
+"\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+"SRID=4326;POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Devuelve un punto 3D (por ejemplo, tiene altitud)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Obtiene el valor m del punto\n"
+"SELECT ST_M(ST_MakePointM(-71.1043443253471, 42.3150676015829,10));\n"
+"result\n"
+"-------\n"
+"10"
+
+#. Tag: para
+#: reference_constructor.xml:1442
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
+msgstr ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1448
+#, no-c-format
+msgid "ST_MLineFromText"
+msgstr "ST_MLineFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1450
+#, no-c-format
+msgid "Return a specified ST_MultiLineString value from WKT representation."
+msgstr ""
+"Devuelve un valor especificado ST_MultiLineString desde una representación "
+"WKT."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1454
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MLineFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MLineFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1472
+#, fuzzy, no-c-format
+msgid ""
+"Makes a Geometry from Well-Known-Text (WKT) with the given SRID. If SRID is "
+"not give, it defaults to 0."
+msgstr ""
+"Crea una geometría a partir de un Well-Known-Text (WKT) con el SRID dado. Si "
+"no se proporciona ningún SRID, por defecto será -1."
+
+#. Tag: para
+#: reference_constructor.xml:1478
+#, no-c-format
+msgid "Returns null if the WKT is not a MULTILINESTRING"
+msgstr "Devuelve NULL si el WKT no es un MULTILINESTRING"
+
+#. Tag: para
+#: reference_constructor.xml:1481 reference_constructor.xml:1542
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are points, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step."
+msgstr ""
+"Si estas completamente seguro que todas tus geometrias WKT son puntos, no "
+"utilices esta función. Es mas lenta que ST_GeomFromText ya que añade algunos "
+"pasos de validación."
+
+#. Tag: para
+#: reference_constructor.xml:1487
+#, no-c-format
+msgid "&sqlmm_compliant;SQL-MM 3: 9.4.4"
+msgstr "&sqlmm_compliant;SQL-MM 3: 9.4.4"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1495
+#, no-c-format
+msgid "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
+msgstr "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
+
+#. Tag: refname
+#: reference_constructor.xml:1508
+#, no-c-format
+msgid "ST_MPointFromText"
+msgstr "ST_MPointFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1510 reference_constructor.xml:1880
+#, fuzzy, no-c-format
+msgid ""
+"<refpurpose>Makes a Geometry from WKT with the given SRID. If SRID is not "
+"give, it defaults to 0.</refpurpose>"
+msgstr ""
+"<refpurpose>Crea una colección de Geometrías desde una colección WKT con el "
+"SRID dado. Si no se especifica el SRID, por defecto se usará -1.</refpurpose>"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1515
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MPointFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MPointFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1533
+#, fuzzy, no-c-format
+msgid ""
+"<para>Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0.</para>"
+msgstr ""
+"<para>Crea una Geometría desde un WKT con el SRID dado. Si no se especifica "
+"el SRID, por defecto se usará -1.</para>"
+
+#. Tag: para
+#: reference_constructor.xml:1539
+#, no-c-format
+msgid "Returns null if the WKT is not a MULTIPOINT"
+msgstr "Devuelve NULL si el WKT no es un MULTIPUNTO"
+
+#. Tag: para
+#: reference_constructor.xml:1547
+#, no-c-format
+msgid "&sfs_compliant; 3.2.6.2"
+msgstr "&sfs_compliant; 3.2.6.2"
+
+#. Tag: para
+#: reference_constructor.xml:1548
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.2.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 9.2.4"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1556
+#, no-c-format
+msgid ""
+"SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
+"SELECT ST_MPointFromText('MULTIPOINT(-70.9590 42.1180, -70.9611 42.1223)', "
+"4326);"
+msgstr ""
+"SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
+"SELECT ST_MPointFromText('MULTIPOINT(-70.9590 42.1180, -70.9611 42.1223)', "
+"4326);"
+
+#. Tag: refname
+#: reference_constructor.xml:1569
+#, no-c-format
+msgid "ST_MPolyFromText"
+msgstr "ST_MPolyFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1571
+#, fuzzy, no-c-format
+msgid ""
+"Makes a MultiPolygon Geometry from WKT with the given SRID. If SRID is not "
+"give, it defaults to 0."
+msgstr ""
+"Crea una geometría MultiPolygon desde un WKT con el SRID dado. Si no se "
+"especifica el SRID  por defecto será -1."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1576
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MPolyFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MPolyFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1594
+#, fuzzy, no-c-format
+msgid ""
+"Makes a MultiPolygon from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0."
+msgstr ""
+"Crea un MultiPolygon desde un WKT con el SRID dado. Si no se especifica el "
+"SRID  por defecto será -1."
+
+#. Tag: para
+#: reference_constructor.xml:1600
+#, no-c-format
+msgid "Throws an error if the WKT is not a MULTIPOLYGON"
+msgstr "Devuelve un error si el WKT no es un MULTIPOLYGON"
+
+#. Tag: para
+#: reference_constructor.xml:1603
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are multipolygons, don't "
+"use this function. It is slower than ST_GeomFromText since it adds an "
+"additional validation step."
+msgstr ""
+"Si estas completamente seguro que todas tus geometrías WKT son multipolygon, "
+"no utilices esta función. Es mas lenta que ST_GeomFromText ya que añade "
+"algunos pasos de validación adicionales."
+
+#. Tag: para
+#: reference_constructor.xml:1609
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.6.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 9.6.4"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1617
+#, no-c-format
+msgid ""
+"SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),"
+"(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))');\n"
+"SELECt ST_MPolyFromText('MULTIPOLYGON(((-70.916 42.1002,-70.9468 "
+"42.0946,-70.9765 42.0872,-70.9754 42.0875,-70.9749 42.0879,-70.9752 "
+"42.0881,-70.9754 42.0891,-70.9758 42.0894,-70.9759 42.0897,-70.9759 "
+"42.0899,-70.9754 42.0902,-70.9756 42.0906,-70.9753 42.0907,-70.9753 "
+"42.0917,-70.9757 42.0924,-70.9755 42.0928,-70.9755 42.0942,-70.9751 "
+"42.0948,-70.9755 42.0953,-70.9751 42.0958,-70.9751 42.0962,-70.9759 "
+"42.0983,-70.9767 42.0987,-70.9768 42.0991,-70.9771 42.0997,-70.9771 "
+"42.1003,-70.9768 42.1005,-70.977 42.1011,-70.9766 42.1019,-70.9768 "
+"42.1026,-70.9769 42.1033,-70.9775 42.1042,-70.9773 42.1043,-70.9776 "
+"42.1043,-70.9778 42.1048,-70.9773 42.1058,-70.9774 42.1061,-70.9779 "
+"42.1065,-70.9782 42.1078,-70.9788 42.1085,-70.9798 42.1087,-70.9806 "
+"42.109,-70.9807 42.1093,-70.9806 42.1099,-70.9809 42.1109,-70.9808 "
+"42.1112,-70.9798 42.1116,-70.9792 42.1127,-70.979 42.1129,-70.9787 "
+"42.1134,-70.979 42.1139,-70.9791 42.1141,-70.9987 42.1116,-71.0022 42.1273,\n"
+"        -70.9408 42.1513,-70.9315 42.1165,-70.916 42.1002)))',4326);"
+msgstr ""
+"SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),"
+"(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))');\n"
+"SELECt ST_MPolyFromText('MULTIPOLYGON(((-70.916 42.1002,-70.9468 "
+"42.0946,-70.9765 42.0872,-70.9754 42.0875,-70.9749 42.0879,-70.9752 "
+"42.0881,-70.9754 42.0891,-70.9758 42.0894,-70.9759 42.0897,-70.9759 "
+"42.0899,-70.9754 42.0902,-70.9756 42.0906,-70.9753 42.0907,-70.9753 "
+"42.0917,-70.9757 42.0924,-70.9755 42.0928,-70.9755 42.0942,-70.9751 "
+"42.0948,-70.9755 42.0953,-70.9751 42.0958,-70.9751 42.0962,-70.9759 "
+"42.0983,-70.9767 42.0987,-70.9768 42.0991,-70.9771 42.0997,-70.9771 "
+"42.1003,-70.9768 42.1005,-70.977 42.1011,-70.9766 42.1019,-70.9768 "
+"42.1026,-70.9769 42.1033,-70.9775 42.1042,-70.9773 42.1043,-70.9776 "
+"42.1043,-70.9778 42.1048,-70.9773 42.1058,-70.9774 42.1061,-70.9779 "
+"42.1065,-70.9782 42.1078,-70.9788 42.1085,-70.9798 42.1087,-70.9806 "
+"42.109,-70.9807 42.1093,-70.9806 42.1099,-70.9809 42.1109,-70.9808 "
+"42.1112,-70.9798 42.1116,-70.9792 42.1127,-70.979 42.1129,-70.9787 "
+"42.1134,-70.979 42.1139,-70.9791 42.1141,-70.9987 42.1116,-71.0022 42.1273,\n"
+"        -70.9408 42.1513,-70.9315 42.1165,-70.916 42.1002)))',4326);"
+
+#. Tag: refname
+#: reference_constructor.xml:1630
+#, no-c-format
+msgid "ST_Point"
+msgstr "ST_Point"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1632
+#, no-c-format
+msgid ""
+"Returns an ST_Point with the given coordinate values. OGC alias for "
+"ST_MakePoint."
+msgstr ""
+"Devuelve un ST_Point con el valor de coordenadas dado. Es un alias de "
+"ST_MakePoint del OGC."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1637
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Point</function></funcdef> "
+"<paramdef><type>float </type> <parameter>x_lon</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>y_lat</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Point</function></funcdef> "
+"<paramdef><type>float </type> <parameter>x_lon</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>y_lat</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1648
+#, no-c-format
+msgid ""
+"Returns an ST_Point with the given coordinate values. MM compliant alias for "
+"ST_MakePoint that takes just an x and y."
+msgstr ""
+"Devuelve un ST_Point con el valor de coordenadas dado. Conforme con el alias "
+"MM para ST_MakePoint que toma únicamente una x y una y."
+
+#. Tag: para
+#: reference_constructor.xml:1651
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.2"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.2"
+
+#. Tag: title
+#: reference_constructor.xml:1657
+#, no-c-format
+msgid "Examples: Geometry"
+msgstr "Ejemplos: Geometry"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1659
+#, no-c-format
+msgid "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
+msgstr "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
+
+#. Tag: title
+#: reference_constructor.xml:1663
+#, no-c-format
+msgid "Examples: Geography"
+msgstr "Ejemplos: Geography"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1665
+#, no-c-format
+msgid ""
+"SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) "
+"As geography);"
+msgstr ""
+"SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) "
+"As geography);"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1666
+#, no-c-format
+msgid ""
+"-- the :: is PostgreSQL short-hand for casting.\n"
+"SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)::"
+"geography;"
+msgstr ""
+"-- el :: es el alias de PostgreSQL para conversiones cast.\n"
+"SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)::"
+"geography;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1668
+#, no-c-format
+msgid ""
+"--If your point coordinates are in a different spatial reference from WGS-84 "
+"long lat, then you need to transform before casting\n"
+"-- This example we convert a point in Pennsylvania State Plane feet to WGS "
+"84 and then geography\n"
+"SELECT ST_Transform(ST_SetSRID(ST_Point(3637510, 3014852),2273),4326)::"
+"geography;"
+msgstr ""
+"--Si las coordenadas de tus puntos están en sistemas de reference espaciales "
+"diferentes que WGS-84 long lat, tendras que transformarlos antes de hacer "
+"una conversión de tipo cast\n"
+"-- En este ejemplo convertimos un punto desde coordenadas planas en pies del "
+"estado de Pennsylvania en WGS 84 y después transformamos el tipo a  "
+"geography\n"
+"SELECT ST_Transform(ST_SetSRID(ST_Point(3637510, 3014852),2273),4326)::"
+"geography;"
+
+#. Tag: para
+#: reference_constructor.xml:1675
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1681
+#, fuzzy, no-c-format
+msgid "ST_PointFromGeoHash"
+msgstr "ST_PointFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1683
+#, no-c-format
+msgid "Return a point from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1688
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>point <function>ST_PointFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1699
+#, no-c-format
+msgid ""
+"Return a point from a GeoHash string. The point represents the center point "
+"of the GeoHash."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1701
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_PointFromGeoHash "
+"returns a point based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1703
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_PointFromGeoHash will use "
+"that many characters from the GeoHash to create the point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1710
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"          st_astext\n"
+"------------------------------\n"
+" POINT(-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"             st_astext\n"
+"-----------------------------------\n"
+" POINT(-115.13671875 36.123046875)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                 st_astext\n"
+"-------------------------------------------\n"
+" POINT(-115.172815918922 36.1146435141563)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1715
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_GeomFromGeoHash"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1721
+#, no-c-format
+msgid "ST_PointFromText"
+msgstr "ST_PointFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1722
+#, no-c-format
+msgid ""
+"Makes a point Geometry from WKT with the given SRID. If SRID is not given, "
+"it defaults to unknown."
+msgstr ""
+"Crea una geometría puntual desde un WKT con el SRID dado. Si no se "
+"especifica el SRID  por defecto será unknown."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1726
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PointFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PointFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1742
+#, fuzzy, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry point object from the OGC Well-Known text "
+"representation. If SRID is not give, it defaults to unknown (currently 0). "
+"If geometry is not a WKT point representation, returns null. If completely "
+"invalid WKT, then throws an error."
+msgstr ""
+"Construye un objeto puntual ST_Geometry de PostGIS  a partir de una "
+"representación OGC Well-Known text. Si no se proporciona ningún SRID, Por "
+"defecto será unknown ( actualmente -1). Si la geometría no es una "
+"representación WKT puntual, devuelve nulo, y lanza un error."
+
+#. Tag: para
+#: reference_constructor.xml:1748
+#, no-c-format
+msgid ""
+"There are 2 variants of ST_PointFromText function, the first takes no SRID "
+"and returns a geometry with no defined spatial reference system. The second "
+"takes a spatial reference id as the second argument and returns an "
+"ST_Geometry that includes this srid as part of its meta-data. The srid must "
+"be defined in the spatial_ref_sys table."
+msgstr ""
+"Hay 2 variantes de la función ST_PointFromText, la primera no toma SRID y "
+"devuelve una geometría sin sistema de referencia espacial definido. La "
+"segunda toma un id de un sistema de referencia como segundo argumento y "
+"devuelve una ST_Geometry que incluye este srid como parte de sus metadatos. "
+"El srid debe estar definido en la tabla spatial_ref_sys."
+
+#. Tag: para
+#: reference_constructor.xml:1755
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are points, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step. If you are building points from long lat coordinates and "
+"care more about performance and accuracy than OGC compliance, use <xref "
+"linkend=\"ST_MakePoint\"/> or OGC compliant alias <xref linkend=\"ST_Point\"/"
+">."
+msgstr ""
+"Si estas completamente seguro que todas tus geometrias WKT son puntos, no "
+"utilices esta función. Es mas lenta que ST_GeomFromText ya que añade algunos "
+"pasos de validación. Si estas construyendo puntos desde coordenadas long lat "
+"y te interesan mas el rendimiento y la precisión que la conformidad con OGC, "
+"utiliza <xref linkend=\"ST_MakePoint\"/> o el alias conforme al OGC<xref "
+"linkend=\"ST_Point\"/>."
+
+#. Tag: para
+#: reference_constructor.xml:1760
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.8"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.8"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)', 4326);"
+msgstr ""
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)', 4326);"
+
+#. Tag: para
+#: reference_constructor.xml:1769
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1775
+#, no-c-format
+msgid "ST_PointFromWKB"
+msgstr "ST_PointFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1777
+#, no-c-format
+msgid "Makes a geometry from WKB with the given SRID"
+msgstr "Crea una geometría desde un WKB con el SRID dado."
+
+#. Tag: para
+#: reference_constructor.xml:1798
+#, no-c-format
+msgid ""
+"The <varname>ST_PointFromWKB</varname> function, takes a well-known binary "
+"representation of geometry and a Spatial Reference System ID (<varname>SRID</"
+"varname>) and creates an instance of the appropriate geometry type - in this "
+"case, a <varname>POINT</varname> geometry. This function plays the role of "
+"the Geometry Factory in SQL."
+msgstr ""
+"La función <varname>ST_PointFromWKB</varname>, toma una representación "
+"binaria \"well-known\" de una geometría y un ID de un Sistema de Referencia "
+"Espacial (<varname>SRID</varname>) y crea una instancia del tipo de "
+"geometría adecuado - en este caso una geometría <varname>POINT</varname>. "
+"Esta función juega un rol de \"Geometry Factory\" en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:1804
+#, fuzzy, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>POINT</varname> geometry."
+msgstr ""
+"Si no se especifica un SRID, por defecto se usará -1.Se devuelve "
+"<varname>NULL</varname> si la entrada  <varname>bytea</varname> no "
+"representa una geometráa <varname>POINT</varname>."
+
+#. Tag: para
+#: reference_constructor.xml:1807
+#, no-c-format
+msgid "&sfs_compliant; s3.2.7.2"
+msgstr "&sfs_compliant; s3.2.7.2"
+
+#. Tag: para
+#: reference_constructor.xml:1808
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.9"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.9"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1816
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('LINESTRING(2 5, 2 6)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"-----------\n"
+"\n"
+"(1 row)"
+msgstr ""
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('LINESTRING(2 5, 2 6)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"-----------\n"
+"\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_constructor.xml:1829
+#, no-c-format
+msgid "ST_Polygon"
+msgstr "ST_Polygon"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1831
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a polygon built from the specified linestring and SRID.</"
+"refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve un polygon construido desde un linestring  especifico y "
+"un SRID.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1836
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aLineString</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aLineString</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1847
+#, no-c-format
+msgid ""
+"<para>Returns a polygon built from the specified linestring and SRID.</para>"
+msgstr ""
+"<para>Devuelve un polygon construido desde un linestring  especifico y un "
+"SRID.</para>"
+
+#. Tag: para
+#: reference_constructor.xml:1851
+#, no-c-format
+msgid ""
+"ST_Polygon is similar to first version oST_MakePolygon except it also sets "
+"the spatial ref sys (SRID) of the polygon. Will not work with "
+"MULTILINESTRINGS so use LineMerge to merge multilines. Also does not create "
+"polygons with holes. Use ST_MakePolygon for that."
+msgstr ""
+"ST_Polygon es similar a la primera version ST_MakePolygon excepto que "
+"siempre selecciona un Sistema de Referencia Espacial (SRID) para el "
+"polígono. No funcionará con MULTILINESTRINGS así que utiliza LineMerge para "
+"unir las lineas multiples. Tampoco creará polígonos con huecos. Utiliza "
+"ST_MakePolygon para esto."
+
+#. Tag: para
+#: reference_constructor.xml:1856
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.3.2"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.3.2"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1865
+#, no-c-format
+msgid ""
+"--a 2d polygon\n"
+"SELECT ST_Polygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5, "
+"75.15 29.53)'), 4326);\n"
+"\n"
+"--result--\n"
+"POLYGON((75.15 29.53,77 29,77.6 29.5,75.15 29.53))\n"
+"--a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Polygon(ST_GeomFromEWKT('LINESTRING(75.15 29.53 1,77 29 "
+"1,77.6 29.5 1, 75.15 29.53 1)'), 4326));\n"
+"\n"
+"result\n"
+"------\n"
+"SRID=4326;POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))"
+msgstr ""
+"--un poligono 2d\n"
+"SELECT ST_Polygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5, "
+"75.15 29.53)'), 4326);\n"
+"\n"
+"--resultado--\n"
+"POLYGON((75.15 29.53,77 29,77.6 29.5,75.15 29.53))\n"
+"--un poligono 3d\n"
+"SELECT ST_AsEWKT(ST_Polygon(ST_GeomFromEWKT('LINESTRING(75.15 29.53 1,77 29 "
+"1,77.6 29.5 1, 75.15 29.53 1)'), 4326));\n"
+"\n"
+"result\n"
+"------\n"
+"SRID=4326;POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))"
+
+#. Tag: para
+#: reference_constructor.xml:1872
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1878
+#, no-c-format
+msgid "ST_PolygonFromText"
+msgstr "ST_PolygonFromText"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1885
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PolygonFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PolygonFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1901
+#, fuzzy, no-c-format
+msgid ""
+"Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0. Returns null if WKT is not a polygon."
+msgstr ""
+"Crea una geometría desde un WKT con el SRID dado. Si no se especifica el "
+"SRID  por defecto será -1. Devuelve NULL si el WKT no es un polígono."
+
+#. Tag: para
+#: reference_constructor.xml:1908
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are polygons, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step."
+msgstr ""
+"Si estas completamente seguro que todas tus geometrías WKT son poligonos, no "
+"utilices esta función. Es mas lenta que ST_GeomFromText ya que añade algunos "
+"pasos de validación adicionales."
+
+#. Tag: para
+#: reference_constructor.xml:1911
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.3.6"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.3.6"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1917
+#, no-c-format
+msgid ""
+"SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"st_polygonfromtext\n"
+"------------------\n"
+"010300000001000000050000006...\n"
+"\n"
+"\n"
+"SELECT ST_PolygonFromText('POINT(1 2)') IS NULL as point_is_notpoly;\n"
+"\n"
+"point_is_not_poly\n"
+"----------\n"
+"t"
+msgstr ""
+"SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"st_polygonfromtext\n"
+"------------------\n"
+"010300000001000000050000006...\n"
+"\n"
+"\n"
+"SELECT ST_PolygonFromText('POINT(1 2)') IS NULL as point_is_notpoly;\n"
+"\n"
+"point_is_not_poly\n"
+"----------\n"
+"t"
+
+#. Tag: refname
+#: reference_constructor.xml:1930
+#, no-c-format
+msgid "ST_WKBToSQL"
+msgstr "ST_WKBToSQL"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1931
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Binary representation "
+"(WKB). This is an alias name for ST_GeomFromWKB that takes no srid"
+msgstr ""
+"Devuelve un valor especifico de ST_Geometry desde una representación \"Well-"
+"Known Binary\" (WKB). Es un alias para ST_GeomFromWKB que no toma srid"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1935
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1943
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.36"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.36"
+
+#. Tag: refname
+#: reference_constructor.xml:1953
+#, no-c-format
+msgid "ST_WKTToSQL"
+msgstr "ST_WKTToSQL"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1958
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1966
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.34"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.34"
diff --git a/doc/po/es/reference_editor.xml.po b/doc/po/es/reference_editor.xml.po
new file mode 100644
index 0000000..41fbbd8
--- /dev/null
+++ b/doc/po/es/reference_editor.xml.po
@@ -0,0 +1,2547 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_editor.xml:3
+#, no-c-format
+msgid "Geometry Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:7
+#, no-c-format
+msgid "ST_AddPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:8
+#, no-c-format
+msgid ""
+"Adds a point to a LineString before point <position> (0-based index)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:13
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:20
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>position</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:30 reference_editor.xml:89 reference_editor.xml:148
+#: reference_editor.xml:194 reference_editor.xml:237 reference_editor.xml:280
+#: reference_editor.xml:321 reference_editor.xml:362 reference_editor.xml:416
+#: reference_editor.xml:445 reference_editor.xml:491 reference_editor.xml:536
+#: reference_editor.xml:578 reference_editor.xml:629 reference_editor.xml:672
+#: reference_editor.xml:706 reference_editor.xml:739 reference_editor.xml:783
+#: reference_editor.xml:832 reference_editor.xml:879 reference_editor.xml:928
+#: reference_editor.xml:992 reference_editor.xml:1052
+#: reference_editor.xml:1094 reference_editor.xml:1137
+#: reference_editor.xml:1214 reference_editor.xml:1292
+#: reference_editor.xml:1428 reference_editor.xml:1511
+#: reference_editor.xml:1565
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:32
+#, no-c-format
+msgid ""
+"Adds a point to a LineString before point <position> (0-based index). "
+"Third parameter can be omitted or set to -1 for appending."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:35 reference_editor.xml:543 reference_editor.xml:709
+#: reference_editor.xml:1099
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:159
+#: reference_editor.xml:202 reference_editor.xml:244 reference_editor.xml:326
+#: reference_editor.xml:372 reference_editor.xml:421 reference_editor.xml:454
+#: reference_editor.xml:500 reference_editor.xml:710 reference_editor.xml:792
+#: reference_editor.xml:842 reference_editor.xml:890 reference_editor.xml:941
+#: reference_editor.xml:1007 reference_editor.xml:1101
+#: reference_editor.xml:1245 reference_editor.xml:1519
+#: reference_editor.xml:1578
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:164
+#: reference_editor.xml:207 reference_editor.xml:250 reference_editor.xml:291
+#: reference_editor.xml:332 reference_editor.xml:378 reference_editor.xml:459
+#: reference_editor.xml:506 reference_editor.xml:548 reference_editor.xml:600
+#: reference_editor.xml:644 reference_editor.xml:680 reference_editor.xml:714
+#: reference_editor.xml:745 reference_editor.xml:801 reference_editor.xml:848
+#: reference_editor.xml:897 reference_editor.xml:949 reference_editor.xml:1014
+#: reference_editor.xml:1066 reference_editor.xml:1105
+#: reference_editor.xml:1153 reference_editor.xml:1250
+#: reference_editor.xml:1326 reference_editor.xml:1456
+#: reference_editor.xml:1524 reference_editor.xml:1584
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:41
+#, no-c-format
+msgid ""
+"--guarantee all linestrings in a table are closed\n"
+"                --by adding the start point of each linestring to the end of "
+"the line string\n"
+"                --only for those that are not closed\n"
+"                UPDATE sometable\n"
+"                SET the_geom = ST_AddPoint(the_geom, "
+"ST_StartPoint(the_geom))\n"
+"                FROM sometable\n"
+"                WHERE ST_IsClosed(the_geom) = false;\n"
+"\n"
+"                --Adding point to a 3-d line\n"
+"                SELECT ST_AsEWKT(ST_AddPoint(ST_GeomFromEWKT('LINESTRING(0 0 "
+"1, 1 1 1)'), ST_MakePoint(1, 2, 3)));\n"
+"\n"
+"                --result\n"
+"                st_asewkt\n"
+"                ----------\n"
+"                LINESTRING(0 0 1,1 1 1,1 2 3)"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:171
+#: reference_editor.xml:214 reference_editor.xml:257 reference_editor.xml:298
+#: reference_editor.xml:339 reference_editor.xml:387 reference_editor.xml:465
+#: reference_editor.xml:512 reference_editor.xml:553 reference_editor.xml:605
+#: reference_editor.xml:649 reference_editor.xml:685 reference_editor.xml:718
+#: reference_editor.xml:808 reference_editor.xml:855 reference_editor.xml:904
+#: reference_editor.xml:956 reference_editor.xml:1021
+#: reference_editor.xml:1071 reference_editor.xml:1109
+#: reference_editor.xml:1161 reference_editor.xml:1257
+#: reference_editor.xml:1401 reference_editor.xml:1478
+#: reference_editor.xml:1537 reference_editor.xml:1591
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:45
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:51
+#, no-c-format
+msgid "ST_Affine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:53
+#, no-c-format
+msgid ""
+"<refpurpose>Applies a 3d affine transformation to the geometry to do things "
+"like translate, rotate, scale in one step.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:57
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Affine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>a</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>b</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>c</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>d</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>e</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>f</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>g</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>h</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>i</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>xoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>yoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>zoff</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Affine</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>a</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>b</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>d</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>e</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>xoff</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>yoff</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:91
+#, no-c-format
+msgid ""
+"<para>Applies a 3d affine transformation to the geometry to do things like "
+"translate, rotate, scale in one step.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:92
+#, no-c-format
+msgid ""
+"Version 1: The call <programlisting>ST_Affine(geom, a, b, c, d, e, f, g, h, "
+"i, xoff, yoff, zoff) </programlisting> represents the transformation matrix "
+"<programlisting>/ a  b  c  xoff \\\n"
+"| d  e  f  yoff |\n"
+"| g  h  i  zoff |\n"
+"\\ 0  0  0     1 /</programlisting> and the vertices are transformed as "
+"follows: <programlisting>x' = a*x + b*y + c*z + xoff\n"
+"y' = d*x + e*y + f*z + yoff\n"
+"z' = g*x + h*y + i*z + zoff</programlisting> All of the translate / scale "
+"functions below are expressed via such an affine transformation."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:99
+#, no-c-format
+msgid ""
+"Version 2: Applies a 2d affine transformation to the geometry. The call "
+"<programlisting>ST_Affine(geom, a, b, d, e, xoff, yoff)</programlisting> "
+"represents the transformation matrix <programlisting>/  a  b  0  xoff  "
+"\\       /  a  b  xoff  \\\n"
+"|  d  e  0  yoff  | rsp.  |  d  e  yoff  |\n"
+"|  0  0  1     0  |       \\  0  0     1  /\n"
+"\\  0  0  0     1  /</programlisting> and the vertices are transformed as "
+"follows: <programlisting>x' = a*x + b*y + xoff\n"
+"y' = d*x + e*y + yoff\n"
+"z' = z </programlisting> This method is a subcase of the 3D method above."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:105 reference_editor.xml:789 reference_editor.xml:839
+#: reference_editor.xml:887 reference_editor.xml:936 reference_editor.xml:1005
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:106
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from Affine to ST_Affine in 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:107 reference_editor.xml:939 reference_editor.xml:1001
+#: reference_editor.xml:1446 reference_editor.xml:1516
+#: reference_editor.xml:1574
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:109 reference_editor.xml:158 reference_editor.xml:200
+#: reference_editor.xml:243 reference_editor.xml:371 reference_editor.xml:418
+#: reference_editor.xml:455 reference_editor.xml:794 reference_editor.xml:841
+#: reference_editor.xml:889 reference_editor.xml:943 reference_editor.xml:1006
+#: reference_editor.xml:1451
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:110 reference_editor.xml:419 reference_editor.xml:795
+#: reference_editor.xml:843 reference_editor.xml:891 reference_editor.xml:944
+#: reference_editor.xml:1009
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:112 reference_editor.xml:157 reference_editor.xml:201
+#: reference_editor.xml:245 reference_editor.xml:286 reference_editor.xml:327
+#: reference_editor.xml:373 reference_editor.xml:420 reference_editor.xml:502
+#: reference_editor.xml:793 reference_editor.xml:942 reference_editor.xml:1008
+#: reference_editor.xml:1149 reference_editor.xml:1450
+#: reference_editor.xml:1520 reference_editor.xml:1579
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:119
+#, no-c-format
+msgid ""
+"--Rotate a 3d line 180 degrees about the z axis.  Note this is long-hand for "
+"doing ST_Rotate();\n"
+" SELECT ST_AsEWKT(ST_Affine(the_geom,  cos(pi()), -sin(pi()), 0,  sin(pi()), "
+"cos(pi()), 0,  0, 0, 1,  0, 0, 0)) As using_affine,\n"
+"         ST_AsEWKT(ST_Rotate(the_geom, pi())) As using_rotate\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
+"the_geom) As foo;\n"
+"        using_affine         |        using_rotate\n"
+"-----------------------------+-----------------------------\n"
+" LINESTRING(-1 -2 3,-1 -4 3) | LINESTRING(-1 -2 3,-1 -4 3)\n"
+"(1 row)\n"
+"\n"
+"--Rotate a 3d line 180 degrees in both the x and z axis\n"
+"SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), "
+"cos(pi()), -sin(pi()), 0, sin(pi()), cos(pi()), 0, 0, 0))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
+"the_geom) As foo;\n"
+"           st_asewkt\n"
+"-------------------------------\n"
+" LINESTRING(-1 -2 -3,-1 -4 -3)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:126
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Scale\"/>, <xref linkend=\"ST_Translate\"/>, <xref "
+"linkend=\"ST_TransScale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:132
+#, no-c-format
+msgid "ST_Force2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:134
+#, no-c-format
+msgid ""
+"Forces the geometries into a \"2-dimensional mode\" so that all output "
+"representations will only have the X and Y coordinates."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:140
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:150
+#, no-c-format
+msgid ""
+"Forces the geometries into a \"2-dimensional mode\" so that all output "
+"representations will only have the X and Y coordinates. This is useful for "
+"force OGC-compliant output (since OGC only specifies 2-D geometries)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:155 reference_editor.xml:198 reference_editor.xml:241
+#: reference_editor.xml:367 reference_editor.xml:453 reference_editor.xml:1448
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:156
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_2D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:166
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Force2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                st_asewkt\n"
+"-------------------------------------\n"
+"CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"2,1 3 2,1 1 2))'));\n"
+"\n"
+"                                  st_asewkt\n"
+"----------------------------------------------\n"
+" POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:179
+#, no-c-format
+msgid "ST_Force3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:181
+#, no-c-format
+msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force3DZ."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:186
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:196
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:199
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:209
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"                SELECT "
+"ST_AsEWKT(ST_Force3D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 "
+"7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"1))'));\n"
+"\n"
+"                                                 st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:216
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3DZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:222
+#, no-c-format
+msgid "ST_Force3DZ"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:224
+#, no-c-format
+msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force3D."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:229
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3DZ</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:239
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZ mode. This is a synonym for ST_Force3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:242
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DZ."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:252
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"1))'));\n"
+"\n"
+"                                                 st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:259 reference_editor.xml:341
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:265
+#, no-c-format
+msgid "ST_Force3DM"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:267
+#, no-c-format
+msgid "Forces the geometries into XYM mode."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:272
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3DM</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:282
+#, no-c-format
+msgid ""
+"Forces the geometries into XYM mode. If a geometry has no M component, then "
+"a 0 M coordinate is tacked on. If it has a Z component, then Z is removed"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:285
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DM."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:293
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"------------------------------------------------\n"
+" CIRCULARSTRINGM(1 1 0,2 3 0,4 5 0,6 7 0,5 6 0)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 "
+"1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                  st_asewkt\n"
+"---------------------------------------------------------------\n"
+" POLYGONM((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:300 reference_editor.xml:389
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:306
+#, no-c-format
+msgid "ST_Force4D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:308
+#, no-c-format
+msgid "Forces the geometries into XYZM mode."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:313
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force4D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:323
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZM mode. 0 is tacked on for missing Z and M "
+"dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:325
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_4D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:334
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+" CIRCULARSTRING(1 1 2 0,2 3 2 0,4 5 2 0,6 7 2 0,5 6 2 0)\n"
+"\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 "
+"1 1,3 1 1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                                          st_asewkt\n"
+"--------------------------------------------------------------------------------------\n"
+" MULTILINESTRING((0 0 0 1,0 5 0 2,5 0 0 3,0 0 0 4),(1 1 0 1,3 1 0 1,1 3 0 "
+"1,1 1 0 1))"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:347
+#, no-c-format
+msgid "ST_ForceCollection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:349
+#, no-c-format
+msgid "Converts the geometry into a GEOMETRYCOLLECTION."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:354
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:364
+#, no-c-format
+msgid ""
+"Converts the geometry into a GEOMETRYCOLLECTION. This is useful for "
+"simplifying the WKB representation."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:368
+#, no-c-format
+msgid ""
+"Availability: 1.2.2, prior to 1.3.4 this function will crash with Curves. "
+"This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:369
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_Collection."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:380
+#, no-c-format
+msgid ""
+"SELECT  ST_AsEWKT(ST_ForceCollection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 "
+"1,3 1 1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                                   st_asewkt\n"
+"----------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1 3 1,1 1 "
+"1)))\n"
+"\n"
+"\n"
+"  SELECT ST_AsText(ST_ForceCollection('CIRCULARSTRING(220227 150406,2220227 "
+"150407,220227 150406)'));\n"
+"                                                                   st_astext\n"
+"--------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CIRCULARSTRING(220227 150406,2220227 150407,220227 "
+"150406))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:382
+#, no-c-format
+msgid ""
+"-- POLYHEDRAL example --\n"
+"SELECT ST_AsEWKT(ST_ForceCollection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 "
+"1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))'))\n"
+"\n"
+"                                                                   st_asewkt\n"
+"----------------------------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(\n"
+"  POLYGON((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+"  POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+"  POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+"  POLYGON((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+"  POLYGON((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+"  POLYGON((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))\n"
+")"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:396
+#, no-c-format
+msgid "ST_ForceSFS"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:398
+#, no-c-format
+msgid "Forces the geometries to use SFS 1.1 geometry types only."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:402
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_ForceSFS</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_ForceSFS</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>version</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:428
+#, no-c-format
+msgid "ST_ForceRHR"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:430
+#, no-c-format
+msgid ""
+"Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
+"Rule."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:436
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_ForceRHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:447
+#, no-c-format
+msgid ""
+"Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
+"Rule. In GIS terminology, this means that the area that is bounded by the "
+"polygon is to the right of the boundary. In particular, the exterior ring is "
+"orientated in a clockwise direction and the interior rings in a counter-"
+"clockwise direction."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:461
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(\n"
+"  ST_ForceRHR(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'\n"
+"  )\n"
+");\n"
+"                                                  st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 2,1 3 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:467
+#, no-c-format
+msgid ", <xref linkend=\"ST_Polygonize\"/>, <xref linkend=\"ST_Reverse\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:475
+#, no-c-format
+msgid "ST_ForceCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:477
+#, no-c-format
+msgid "Upcasts a geometry into its curved type, if applicable."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:482
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCurve</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:493
+#, no-c-format
+msgid ""
+"Turns a geometry into its curved representation, if applicable: lines become "
+"compoundcurves, multilines become multicurves polygons become curvepolygons "
+"multipolygons become multisurfaces. If the geometry input is already a "
+"curved representation returns back same as input."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:499
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:508
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_ForceCurve(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'::geometry\n"
+"  )\n"
+");\n"
+"                              st_astext\n"
+"----------------------------------------------------------------------\n"
+" CURVEPOLYGON Z ((0 0 2,5 0 2,0 5 2,0 0 2),(1 1 2,1 3 2,3 1 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:520
+#, no-c-format
+msgid "ST_LineMerge"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:522
+#, no-c-format
+msgid ""
+"Returns a (set of) LineString(s) formed by sewing together a MULTILINESTRING."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:528
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineMerge</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>amultilinestring</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:538
+#, no-c-format
+msgid ""
+"Returns a (set of) LineString(s) formed by sewing together the constituent "
+"line work of a MULTILINESTRING."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:540
+#, no-c-format
+msgid ""
+"Only use with MULTILINESTRING/LINESTRINGs. If you feed a polygon or geometry "
+"collection into this function, it will return an empty GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:544
+#, no-c-format
+msgid "requires GEOS >= 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:550
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LineMerge(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 "
+"-33,-46 -32))')\n"
+"                )\n"
+");\n"
+"st_astext\n"
+"--------------------------------------------------------------------------------------------------\n"
+"LINESTRING(-29 -27,-30 -29.7,-36 -31,-45 -33,-46 -32)\n"
+"(1 row)\n"
+"\n"
+"--If can't be merged - original MULTILINESTRING is returned\n"
+"SELECT ST_AsText(ST_LineMerge(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 "
+"-33.2,-46 -32))')\n"
+")\n"
+");\n"
+"st_astext\n"
+"----------------\n"
+"MULTILINESTRING((-45.2 -33.2,-46 -32),(-29 -27,-30 -29.7,-36 -31,-45 -33))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:554
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineSubstring\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:560
+#, no-c-format
+msgid "ST_CollectionExtract"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:562
+#, no-c-format
+msgid ""
+"Given a (multi)geometry, returns a (multi)geometry consisting only of "
+"elements of the specified type."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:569
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_CollectionExtract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>type</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:580
+#, no-c-format
+msgid ""
+"Given a (multi)geometry, returns a (multi)geometry consisting only of "
+"elements of the specified type. Sub-geometries that are not the specified "
+"type are ignored. If there are no sub-geometries of the right type, an EMPTY "
+"geometry will be returned. Only points, lines and polygons are supported. "
+"Type numbers are 1 == POINT, 2 == LINESTRING, 3 == POLYGON."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:586
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:588
+#, no-c-format
+msgid ""
+"Prior to 1.5.3 this function returned non-collection inputs untouched, no "
+"matter type. In 1.5.3 non-matching single geometries result in a NULL "
+"return. In of 2.0.0 every case of missing match results in a typed EMPTY "
+"return."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:594 reference_editor.xml:635
+#, no-c-format
+msgid ""
+"When specifying 3 == POLYGON a multipolygon is returned even when the edges "
+"are shared. This results in an invalid multipolygon for many cases such as "
+"applying this function on an <xref linkend=\"ST_Split\"/> result."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:602
+#, no-c-format
+msgid ""
+"-- Constants: 1 == POINT, 2 == LINESTRING, 3 == POLYGON\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 "
+"0)))'),1));\n"
+"st_astext\n"
+"---------------\n"
+"MULTIPOINT(0 0)\n"
+"(1 row)\n"
+"\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(LINESTRING(0 "
+"0, 1 1)),LINESTRING(2 2, 3 3))'),2));\n"
+"st_astext\n"
+"---------------\n"
+"MULTILINESTRING((0 0, 1 1), (2 2, 3 3))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:606
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_CollectionHomogenize\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:612
+#, no-c-format
+msgid "ST_CollectionHomogenize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:614
+#, no-c-format
+msgid ""
+"Given a geometry collection, returns the \"simplest\" representation of the "
+"contents."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:621
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_CollectionHomogenize</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:631
+#, no-c-format
+msgid ""
+"Given a geometry collection, returns the \"simplest\" representation of the "
+"contents. Singletons will be returned as singletons. Collections that are "
+"homogeneous will be returned as the appropriate multi-type."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:639
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:646
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 "
+"0))'));        \n"
+"\n"
+"        st_astext\n"
+"        ------------\n"
+"         POINT(0 0)\n"
+"        (1 row)\n"
+"\n"
+"  SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0),"
+"POINT(1 1))'));        \n"
+"\n"
+"        st_astext\n"
+"        ---------------------\n"
+"         MULTIPOINT(0 0,1 1)\n"
+"        (1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:650
+#, no-c-format
+msgid ", <xref linkend=\"ST_CollectionExtract\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:656
+#, no-c-format
+msgid "ST_Multi"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:658
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the geometry as a MULTI* geometry. If the geometry is "
+"already a MULTI*, it is returned unchanged.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:664
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Multi</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:674
+#, no-c-format
+msgid ""
+"<para>Returns the geometry as a MULTI* geometry. If the geometry is already "
+"a MULTI*, it is returned unchanged.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:682
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Multi(ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))')));\n"
+"                        st_astext\n"
+"                        --------------------------------------------------------------------------------------------------\n"
+"                        MULTIPOLYGON(((743238 2967416,743238 2967450,743265 "
+"2967450,743265.625 2967416,\n"
+"                        743238 2967416)))\n"
+"                        (1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:692
+#, no-c-format
+msgid "ST_RemovePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:693
+#, no-c-format
+msgid "Removes point from a linestring. Offset is 0-based."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:697
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RemovePoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>offset</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:708
+#, no-c-format
+msgid ""
+"Removes point from a linestring. Useful for turning a closed ring into an "
+"open line string"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:715
+#, no-c-format
+msgid ""
+"--guarantee no LINESTRINGS are closed\n"
+"--by removing the end point.  The below assumes the_geom is of type "
+"LINESTRING\n"
+"UPDATE sometable\n"
+"        SET the_geom = ST_RemovePoint(the_geom, ST_NPoints(the_geom) - 1)\n"
+"        FROM sometable\n"
+"        WHERE ST_IsClosed(the_geom) = true;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:719
+#, no-c-format
+msgid ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:725
+#, no-c-format
+msgid "ST_Reverse"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:726
+#, no-c-format
+msgid "Returns the geometry with vertex order reversed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:731
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Reverse</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:741
+#, no-c-format
+msgid "Can be used on any geometry and reverses the order of the vertexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:746
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom) as line, ST_AsText(ST_Reverse(the_geom)) As "
+"reverseline\n"
+"FROM\n"
+"(SELECT ST_MakeLine(ST_MakePoint(1,2),\n"
+"                ST_MakePoint(1,10)) As the_geom) as foo;\n"
+"--result\n"
+"                line         |     reverseline\n"
+"---------------------+----------------------\n"
+"LINESTRING(1 2,1 10) | LINESTRING(1 10,1 2)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:752
+#, no-c-format
+msgid "ST_Rotate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:754
+#, no-c-format
+msgid "Rotate a geometry rotRadians counter-clockwise about an origin."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:758
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Rotate</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>x0</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>y0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Rotate</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>rotRadians</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>pointOrigin</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:785
+#, no-c-format
+msgid ""
+"Rotates geometry rotRadians counter-clockwise about the origin. The rotation "
+"origin can be specified either as a POINT geometry, or as x and y "
+"coordinates. If the origin is not specified, the geometry is rotated about "
+"POINT(0 0)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:790
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 additional parameters for specifying the origin of rotation "
+"were added."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:791
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from Rotate to ST_Rotate in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:803
+#, no-c-format
+msgid ""
+"--Rotate 180 degrees\n"
+"SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()));\n"
+"               st_asewkt\n"
+"---------------------------------------\n"
+" LINESTRING(-50 -160,-50 -50,-100 -50)\n"
+"(1 row)\n"
+"\n"
+"--Rotate 30 degrees counter-clockwise at x=50, y=160\n"
+"SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()/6, 50, "
+"160));\n"
+"                                 st_asewkt\n"
+"---------------------------------------------------------------------------\n"
+" LINESTRING(50 160,105 64.7372055837117,148.301270189222 89.7372055837117)\n"
+"(1 row)\n"
+"\n"
+"--Rotate 60 degrees clockwise from centroid\n"
+"SELECT ST_AsEWKT(ST_Rotate(geom, -pi()/3, ST_Centroid(geom)))\n"
+"FROM (SELECT 'LINESTRING (50 160, 50 50, 100 50)'::geometry AS geom) AS "
+"foo;\n"
+"                           st_asewkt\n"
+"--------------------------------------------------------------\n"
+" LINESTRING(116.4225 130.6721,21.1597 75.6721,46.1597 32.3708)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:810
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>, <xref "
+"linkend=\"ST_RotateZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:816
+#, no-c-format
+msgid "ST_RotateX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:818
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the X axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:823
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateX</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:834
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the X axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:836
+#, no-c-format
+msgid ""
+"<code>ST_RotateX(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, "
+"sin(rotRadians), cos(rotRadians), 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:840
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateX to ST_RotateX in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:850
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along x-axis\n"
+"SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(1 -3 2,1 -1 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:857
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:863
+#, no-c-format
+msgid "ST_RotateY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:865
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the Y axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:870
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateY</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:881
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the y axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:883
+#, no-c-format
+msgid ""
+"<code>ST_RotateY(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -"
+"sin(rotRadians), 0, cos(rotRadians), 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:886
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateY to ST_RotateY in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:899
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along y-axis\n"
+" SELECT ST_AsEWKT(ST_RotateY(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(3 2 -1,1 1 -1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:906
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:912
+#, no-c-format
+msgid "ST_RotateZ"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:914
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the Z axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:919
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateZ</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:930
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the Z axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:932
+#, no-c-format
+msgid "This is a synonym for ST_Rotate"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:933
+#, no-c-format
+msgid ""
+"<code>ST_RotateZ(geomA, rotRadians)</code> is short-hand for <code>SELECT "
+"ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), "
+"cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:938
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateZ to ST_RotateZ in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:951
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along z-axis\n"
+"SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(-2 1 3,-1 1 1)\n"
+"\n"
+" --Rotate a curved circle around z-axis\n"
+"SELECT ST_AsEWKT(ST_RotateZ(the_geom, pi()/2))\n"
+"FROM (SELECT ST_LineToCurve(ST_Buffer(ST_GeomFromText('POINT(234 567)'), 3)) "
+"As the_geom) As foo;\n"
+"\n"
+"                                                                                                           st_asewkt\n"
+"----------------------------------------------------------------------------------------------------------------------------\n"
+" CURVEPOLYGON(CIRCULARSTRING(-567 237,-564.87867965644 236.12132034356,-564 "
+"234,-569.12132034356 231.87867965644,-567 237))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:958
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:964
+#, no-c-format
+msgid "ST_Scale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:966
+#, no-c-format
+msgid ""
+"<refpurpose>Scales the geometry to a new size by multiplying the ordinates "
+"with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:973
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>ZFactor</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Scale</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>XFactor</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>YFactor</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:994
+#, no-c-format
+msgid ""
+"<para>Scales the geometry to a new size by multiplying the ordinates with "
+"the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:998
+#, no-c-format
+msgid ""
+"<code>ST_Scale(geomA, XFactor, YFactor, ZFactor)</code> is short-hand for "
+"<code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, "
+"0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1004 reference_editor.xml:1577
+#, no-c-format
+msgid "Availability: 1.1.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1016
+#, no-c-format
+msgid ""
+"--Version 1: scale X, Y, Z\n"
+"SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, "
+"0.75, 0.8));\n"
+"                          st_asewkt\n"
+"--------------------------------------\n"
+" LINESTRING(0.5 1.5 2.4,0.5 0.75 0.8)\n"
+"\n"
+"--Version 2: Scale X Y\n"
+" SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, "
+"0.75));\n"
+"                        st_asewkt\n"
+"----------------------------------\n"
+" LINESTRING(0.5 1.5 3,0.5 0.75 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1023
+#, no-c-format
+msgid ", <xref linkend=\"ST_TransScale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1029
+#, no-c-format
+msgid "ST_Segmentize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1031
+#, no-c-format
+msgid ""
+"Return a modified geometry/geography having no segment longer than the given "
+"distance. Distance computation is performed in 2d only. For geometry, length "
+"units are in units of spatial reference. For geography, units are in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1037
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geography "
+"<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
+"type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1054
+#, no-c-format
+msgid ""
+"Returns a modified geometry having no segment longer than the given "
+"<varname>max_segment_length</varname>. Distance computation is performed in "
+"2d only. For geometry, length units are in units of spatial reference. For "
+"geography, units are in meters."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1057 reference_editor.xml:1518
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1058
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1059
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 As a result of the introduction of geography support: The "
+"construct <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</code> "
+"will result in ambiguous function error. You need to have properly typed "
+"object e.g. a geometry/geography column, use ST_GeomFromText, "
+"ST_GeogFromText or <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)'::"
+"geometry,0.5);</code>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1061
+#, no-c-format
+msgid ""
+"This will only increase segments. It will not lengthen segments shorter than "
+"max length"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1068
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Segmentize(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 "
+"-33,-46 -32))')\n"
+"                ,5)\n"
+");\n"
+"st_astext\n"
+"--------------------------------------------------------------------------------------------------\n"
+"MULTILINESTRING((-29 -27,-30 -29.7,-34.886615700134 -30.758766735029,-36 "
+"-31,\n"
+"-40.8809353009198 -32.0846522890933,-45 -33),\n"
+"(-45 -33,-46 -32))\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_Segmentize(ST_GeomFromText('POLYGON((-29 28, -30 40, -29 "
+"28))'),10));\n"
+"st_astext\n"
+"-----------------------\n"
+"POLYGON((-29 28,-29.8304547985374 37.9654575824488,-30 40,-29.1695452014626 "
+"30.0345424175512,-29 28))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1078
+#, no-c-format
+msgid "ST_SetPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1079
+#, no-c-format
+msgid "Replace point N of linestring with given point. Index is 0-based."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1084
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SetPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>zerobasedposition</parameter></"
+"paramdef> <paramdef><type>geometry</type> <parameter>point</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1096
+#, no-c-format
+msgid ""
+"Replace point N of linestring with given point. Index is 0-based. This is "
+"especially useful in triggers when trying to maintain relationship of joints "
+"when one vertex moves."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1106
+#, no-c-format
+msgid ""
+"--Change first point in line string from -1 3 to -1 1\n"
+"SELECT ST_AsText(ST_SetPoint('LINESTRING(-1 2,-1 3)', 0, 'POINT(-1 1)'));\n"
+"           st_astext\n"
+"-----------------------\n"
+" LINESTRING(-1 1,-1 3)\n"
+"\n"
+"---Change last point in a line string (lets play with 3d linestring this "
+"time)\n"
+"SELECT ST_AsEWKT(ST_SetPoint(foo.the_geom, ST_NumPoints(foo.the_geom) - 1, "
+"ST_GeomFromEWKT('POINT(-1 1 3)')))\n"
+"FROM (SELECT ST_GeomFromEWKT('LINESTRING(-1 2 3,-1 3 4, 5 6 7)') As "
+"the_geom) As foo;\n"
+"           st_asewkt\n"
+"-----------------------\n"
+"LINESTRING(-1 2 3,-1 3 4,-1 1 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1110
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>, <xref "
+"linkend=\"ST_PointN\"/>, <xref linkend=\"ST_RemovePoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1116
+#, no-c-format
+msgid "ST_SetSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1118
+#, no-c-format
+msgid "Sets the SRID on a geometry to a particular integer value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1124
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1139
+#, no-c-format
+msgid ""
+"Sets the SRID on a geometry to a particular integer value. Useful in "
+"constructing bounding boxes for queries."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1143
+#, no-c-format
+msgid ""
+"This function does not transform the geometry coordinates in any way - it "
+"simply sets the meta data defining the spatial reference system the geometry "
+"is assumed to be in. Use <xref linkend=\"ST_Transform\"/> if you want to "
+"transform the geometry into a new projection."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1148
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1154
+#, no-c-format
+msgid "-- Mark a point as WGS 84 long lat --"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1155
+#, no-c-format
+msgid ""
+"SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) As wgs84long_lat;\n"
+"-- the ewkt representation (wrap with ST_AsEWKT) -\n"
+"SRID=4326;POINT(-123.365556 48.428611)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1156
+#, no-c-format
+msgid ""
+"-- Mark a point as WGS 84 long lat and then transform to web mercator "
+"(Spherical Mercator) --"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1157
+#, no-c-format
+msgid ""
+"SELECT ST_Transform(ST_SetSRID(ST_Point(-123.365556, 48.428611),4326),3785) "
+"As spere_merc;\n"
+"-- the ewkt representation (wrap with ST_AsEWKT) -\n"
+"SRID=3785;POINT(-13732990.8753491 6178458.96425423)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1163
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_SRID\"/>, <xref linkend=\"ST_Transform\"/>, <xref linkend="
+"\"UpdateGeometrySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1170
+#, no-c-format
+msgid "ST_SnapToGrid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1172
+#, no-c-format
+msgid "Snap all points of the input geometry to a regular grid."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1178
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_SnapToGrid</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originY</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeY</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>size</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_SnapToGrid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>pointOrigin</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeZ</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeM</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1216
+#, no-c-format
+msgid ""
+"Variant 1,2,3: Snap all points of the input geometry to the grid defined by "
+"its origin and cell size. Remove consecutive points falling on the same "
+"cell, eventually returning NULL if output points are not enough to define a "
+"geometry of the given type. Collapsed geometries in a collection are "
+"stripped from it. Useful for reducing precision."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1224
+#, no-c-format
+msgid ""
+"Variant 4: Introduced 1.1.0 - Snap all points of the input geometry to the "
+"grid defined by its origin (the second argument, must be a point) and cell "
+"sizes. Specify 0 as size for any dimension you don't want to snap to a grid."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1230
+#, no-c-format
+msgid ""
+"The returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1235
+#, no-c-format
+msgid ""
+"Before release 1.1.0 this function always returned a 2d geometry. Starting "
+"at 1.1.0 the returned geometry will have same dimensionality as the input "
+"one with higher dimension values untouched. Use the version taking a second "
+"geometry argument to define all grid dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1242
+#, no-c-format
+msgid "Availability: 1.0.0RC1"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1243
+#, no-c-format
+msgid "Availability: 1.1.0 - Z and M support"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1252
+#, no-c-format
+msgid ""
+"--Snap your geometries to a precision grid of 10^-3\n"
+"UPDATE mytable\n"
+"   SET the_geom = ST_SnapToGrid(the_geom, 0.001);\n"
+"\n"
+"SELECT ST_AsText(ST_SnapToGrid(\n"
+"                        ST_GeomFromText('LINESTRING(1.1115678 2.123, "
+"4.111111 3.2374897, 4.11112 3.23748667)'),\n"
+"                        0.001)\n"
+"                );\n"
+"                          st_astext\n"
+"-------------------------------------\n"
+" LINESTRING(1.112 2.123,4.111 3.237)\n"
+" --Snap a 4d geometry\n"
+"SELECT ST_AsEWKT(ST_SnapToGrid(\n"
+"        ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 2.3456 1.11111,\n"
+"                4.111111 3.2374897 3.1234 1.1111, -1.11111112 2.123 2.3456 "
+"1.1111112)'),\n"
+" ST_GeomFromEWKT('POINT(1.12 2.22 3.2 4.4444)'),\n"
+" 0.1, 0.1, 0.1, 0.01) );\n"
+"                                                                  st_asewkt\n"
+"------------------------------------------------------------------------------\n"
+" LINESTRING(-1.08 2.12 2.3 1.1144,4.12 3.22 3.1 1.1144,-1.08 2.12 2.3 "
+"1.1144)\n"
+"\n"
+"\n"
+"--With a 4d geometry - the ST_SnapToGrid(geom,size) only touches x and y "
+"coords but keeps m and z the same\n"
+"SELECT ST_AsEWKT(ST_SnapToGrid(ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 "
+"3 2.3456,\n"
+"                4.111111 3.2374897 3.1234 1.1111)'),\n"
+"           0.01)      );\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+" LINESTRING(-1.11 2.12 3 2.3456,4.11 3.24 3.1234 1.1111)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1259
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_Simplify\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1272
+#, no-c-format
+msgid "ST_Snap"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1274
+#, no-c-format
+msgid ""
+"Snap segments and vertices of input geometry to vertices of a reference "
+"geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1282
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Snap</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>reference</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1294
+#, no-c-format
+msgid ""
+"Snaps the vertices and segments of a geometry another Geometry's vertices. A "
+"snap distance tolerance is used to control where snapping is performed."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1299
+#, no-c-format
+msgid ""
+"Snapping one geometry to another can improve robustness for overlay "
+"operations by eliminating nearly-coincident edges (which cause problems "
+"during noding and intersection calculation)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1306
+#, no-c-format
+msgid ""
+"Too much snapping can result in invalid topology being created, so the "
+"number and location of snapped vertices is decided using heuristics to "
+"determine when it is safe to snap. This can result in some potential snaps "
+"being omitted, however."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1315
+#, no-c-format
+msgid ""
+"The returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>) and validity (see <xref linkend=\"ST_IsValid\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1322
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1339
+#, no-c-format
+msgid "A multipolygon shown with a linestring (before any snapping)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1350
+#, no-c-format
+msgid ""
+"A multipolygon snapped to linestring to tolerance: 1.01 of distance. The new "
+"multipolygon is shown with reference linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1354
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Snap(poly,line, ST_Distance(poly,line)*1.01)) AS "
+"polysnapped\n"
+"FROM (SELECT \n"
+"   ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )), \n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+" MULTIPOLYGON(((26 125,26 200,126 200,126 125,101 100,26 125),\n"
+" (51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1361
+#, no-c-format
+msgid ""
+"A multipolygon snapped to linestring to tolerance: 1.25 of distance. The new "
+"multipolygon is shown with reference linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1365
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"    ST_Snap(poly,line, ST_Distance(poly,line)*1.25)\n"
+"  ) AS polysnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"    (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )),\n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+"MULTIPOLYGON(((5 107,26 200,126 200,126 125,101 100,54 84,5 107),\n"
+"(51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1374
+#, no-c-format
+msgid ""
+"The linestring snapped to the original multipolygon at tolerance 1.01 of "
+"distance. The new linestring is shown with reference multipolygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1378
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"   ST_Snap(line, poly, ST_Distance(poly,line)*1.01)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100)))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"        ) As foo;\n"
+"\n"
+"              linesnapped\n"
+"----------------------------------------\n"
+" LINESTRING(5 107,26 125,54 84,101 100)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1386
+#, no-c-format
+msgid ""
+"The linestring snapped to the original multipolygon at tolerance 1.25 of "
+"distance. The new linestring is shown with reference multipolygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1390
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+" ST_Snap(line, poly, ST_Distance(poly,line)*1.25)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As "
+"line        \n"
+"        ) As foo;\n"
+"              linesnapped\n"
+"---------------------------------------\n"
+"LINESTRING(26 125,54 84,101 100)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1411
+#, no-c-format
+msgid "ST_Transform"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1413
+#, no-c-format
+msgid ""
+"Returns a new geometry with its coordinates transformed to the SRID "
+"referenced by the integer parameter."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1419
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Transform</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1430
+#, no-c-format
+msgid ""
+"Returns a new geometry with its coordinates transformed to spatial reference "
+"system referenced by the SRID integer parameter. The destination SRID must "
+"exist in the <varname>SPATIAL_REF_SYS</varname> table."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1433
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a geometry from one spatial reference system to "
+"another, while ST_SetSRID() simply changes the SRID identifier of the "
+"geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1438
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with Proj support. Use <xref linkend="
+"\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1442
+#, no-c-format
+msgid ""
+"If using more than one transformation, it is useful to have a functional "
+"index on the commonly used transformations to take advantage of index usage."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1449
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.6"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1457
+#, no-c-format
+msgid "Change Mass state plane US feet geometry to WGS 84 long lat"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1458
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Transform(ST_GeomFromText('POLYGON((743238 "
+"2967416,743238 2967450,\n"
+"        743265 2967450,743265.625 2967416,743238 2967416))',2249),4326)) As "
+"wgs_geom;\n"
+"\n"
+" wgs_geom\n"
+"---------------------------\n"
+" POLYGON((-71.1776848522251 42.3902896512902,-71.1776843766326 "
+"42.3903829478009,\n"
+"-71.1775844305465 42.3903826677917,-71.1775825927231 "
+"42.3902893647987,-71.177684\n"
+"8522251 42.3902896512902));\n"
+"(1 row)\n"
+"\n"
+"--3D Circular String example\n"
+"SELECT ST_AsEWKT(ST_Transform(ST_GeomFromEWKT('SRID=2249;"
+"CIRCULARSTRING(743238 2967416 1,743238 2967450 2,743265 2967450 3,743265.625 "
+"2967416 3,743238 2967416 4)'),4326));\n"
+"\n"
+"                                 st_asewkt\n"
+"--------------------------------------------------------------------------------------\n"
+" SRID=4326;CIRCULARSTRING(-71.1776848522251 42.3902896512902 "
+"1,-71.1776843766326 42.3903829478009 2,\n"
+" -71.1775844305465 42.3903826677917 3,\n"
+" -71.1775825927231 42.3902893647987 3,-71.1776848522251 42.3902896512902 4)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1459
+#, no-c-format
+msgid ""
+"Example of creating a partial functional index. For tables where you are not "
+"sure all the geometries will be filled in, its best to use a partial index "
+"that leaves out null geometries which will both conserve space and make your "
+"index smaller and more efficient."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1461
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_the_geom_26986_parcels\n"
+"  ON parcels\n"
+"  USING gist\n"
+"  (ST_Transform(the_geom, 26986))\n"
+"  WHERE the_geom IS NOT NULL;"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:1465
+#, no-c-format
+msgid "Configuring transformation behaviour"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1466
+#, no-c-format
+msgid ""
+"Sometimes coordinate transformation involving a grid-shift can fail, for "
+"example if PROJ.4 has not been built with grid-shift files or the coordinate "
+"does not lie within the range for which the grid shift is defined. By "
+"default, PostGIS will throw an error if a grid shift file is not present, "
+"but this behaviour can be configured on a per-SRID basis by altering the "
+"proj4text value within the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1467
+#, no-c-format
+msgid ""
+"For example, the proj4text parameter +datum=NAD87 is a shorthand form for "
+"the following +nadgrids parameter:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1468
+#, no-c-format
+msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1469
+#, no-c-format
+msgid ""
+"The @ prefix means no error is reported if the files are not present, but if "
+"the end of the list is reached with no file having been appropriate (ie. "
+"found and overlapping) then an error is issued."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1470
+#, no-c-format
+msgid ""
+"If, conversely, you wanted to ensure that at least the standard files were "
+"present, but that if all files were scanned without a hit a null "
+"transformation is applied you could use:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1471
+#, no-c-format
+msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1472
+#, no-c-format
+msgid ""
+"The null grid shift file is a valid grid shift file covering the whole world "
+"and applying no shift. So for a complete example, if you wanted to alter "
+"PostGIS so that transformations to SRID 4267 that didn't lie within the "
+"correct range did not throw an ERROR, you would use the following:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1473
+#, no-c-format
+msgid ""
+"UPDATE spatial_ref_sys SET proj4text = '+proj=longlat +ellps=clrk66 "
+"+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null +no_defs' WHERE srid "
+"= 4267;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1480
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"UpdateGeometrySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1486
+#, no-c-format
+msgid "ST_Translate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1488
+#, no-c-format
+msgid ""
+"Translates the geometry to a new location using the numeric parameters as "
+"offsets. Ie: ST_Translate(geom, X, Y) or ST_Translate(geom, X, Y,Z)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1493
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Translate</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltax</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltay</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Translate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltax</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltay</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltaz</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1513
+#, no-c-format
+msgid ""
+"Returns a new geometry whose coordinates are translated delta x,delta y,"
+"delta z units. Units are based on the units defined in spatial reference "
+"(SRID) for this geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1525
+#, no-c-format
+msgid "Move a point 1 degree longitude"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1526
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 "
+"42.37)',4326),1,0)) As wgs_transgeomtxt;\n"
+"\n"
+"        wgs_transgeomtxt\n"
+"        ---------------------\n"
+"        POINT(-70.01 42.37)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1527
+#, no-c-format
+msgid "Move a linestring 1 degree longitude and 1/2 degree latitude"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1528
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 "
+"42.37,-71.11 42.38)',4326),1,0.5)) As wgs_transgeomtxt;\n"
+"                   wgs_transgeomtxt\n"
+"        ---------------------------------------\n"
+"        LINESTRING(-70.01 42.87,-70.11 42.88)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1529
+#, no-c-format
+msgid "Move a 3d point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1530
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' As geometry), 5, 12,3));\n"
+"        st_asewkt\n"
+"        ---------\n"
+"        POINT(5 12 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1531
+#, no-c-format
+msgid "Move a curve and a point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1532
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_Collect('CURVEPOLYGON(CIRCULARSTRING(4 "
+"3,3.12 0.878,1 0,-1.121 5.1213,6 7, 8 9,4 3))','POINT(1 3)'),1,2));\n"
+"                                                                                                                 st_astext\n"
+"------------------------------------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CURVEPOLYGON(CIRCULARSTRING(5 5,4.12 2.878,2 2,-0.121 "
+"7.1213,7 9,9 11,5 5)),POINT(2 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1538
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1544
+#, no-c-format
+msgid "ST_TransScale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1546
+#, no-c-format
+msgid ""
+"<refpurpose>Translates the geometry using the deltaX and deltaY args, then "
+"scales it using the XFactor, YFactor args, working in 2D only.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1553
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_TransScale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaX</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaY</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1567
+#, no-c-format
+msgid ""
+"<para>Translates the geometry using the deltaX and deltaY args, then scales "
+"it using the XFactor, YFactor args, working in 2D only.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1570
+#, no-c-format
+msgid ""
+"<code>ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor)</code> is short-"
+"hand for <code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, "
+"deltaX*XFactor, deltaY*YFactor, 0)</code>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1586
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_TransScale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"0.5, 1, 1, 2));\n"
+"                  st_asewkt\n"
+"-----------------------------\n"
+" LINESTRING(1.5 6 3,1.5 4 1)\n"
+"\n"
+"\n"
+"--Buffer a point to get an approximation of a circle, convert to curve and "
+"then translate 1,2 and scale it 3,4\n"
+"  SELECT ST_AsText(ST_Transscale(ST_LineToCurve(ST_Buffer('POINT(234 567)', "
+"3)),1,2,3,4));\n"
+"                                                                                                                  st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" CURVEPOLYGON(CIRCULARSTRING(714 2276,711.363961030679 2267.51471862576,705 "
+"2264,698.636038969321 2284.48528137424,714 2276))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1593
+#, no-c-format
+msgid ", <xref linkend=\"ST_Translate\"/>"
+msgstr ""
diff --git a/doc/po/es/reference_exception.xml.po b/doc/po/es/reference_exception.xml.po
new file mode 100644
index 0000000..bc9e183
--- /dev/null
+++ b/doc/po/es/reference_exception.xml.po
@@ -0,0 +1,225 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_exception.xml:3
+#, no-c-format
+msgid "Exceptional Functions"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:4
+#, no-c-format
+msgid ""
+"These functions are rarely used functions that should only be used if your "
+"data is corrupted in someway. They are used for troubleshooting corruption "
+"and also fixing things that should under normal circumstances, never happen."
+msgstr ""
+
+#. Tag: refname
+#: reference_exception.xml:9
+#, no-c-format
+msgid "PostGIS_AddBBox"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_exception.xml:11
+#, no-c-format
+msgid "Add bounding box to the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_exception.xml:16
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>PostGIS_AddBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_exception.xml:24 reference_exception.xml:70
+#: reference_exception.xml:119
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:26
+#, no-c-format
+msgid ""
+"Add bounding box to the geometry. This would make bounding box based queries "
+"faster, but will increase the size of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:31
+#, no-c-format
+msgid ""
+"Bounding boxes are automatically added to geometries so in general this is "
+"not needed unless the generated bounding box somehow becomes corrupted or "
+"you have an old install that is lacking bounding boxes. Then you need to "
+"drop the old and readd."
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:35 reference_exception.xml:83
+#: reference_exception.xml:124
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_exception.xml:40 reference_exception.xml:88
+#: reference_exception.xml:129
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_exception.xml:42
+#, no-c-format
+msgid ""
+"UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE PostGIS_HasBBox(the_geom) = false;"
+msgstr ""
+
+#. Tag: title
+#: reference_exception.xml:47 reference_exception.xml:95
+#: reference_exception.xml:136
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:49
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_HasBBox\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_exception.xml:55
+#, no-c-format
+msgid "PostGIS_DropBBox"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_exception.xml:57
+#, no-c-format
+msgid "Drop the bounding box cache from the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_exception.xml:62
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>PostGIS_DropBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:72
+#, no-c-format
+msgid ""
+"Drop the bounding box cache from the geometry. This reduces geometry size, "
+"but makes bounding-box based queries slower. It is also used to drop a "
+"corrupt bounding box. A tale-tell sign of a corrupt cached bounding box is "
+"when your ST_Intersects and other relation queries leave out geometries that "
+"rightfully should return true."
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:77
+#, no-c-format
+msgid ""
+"Bounding boxes are automatically added to geometries and improve speed of "
+"queries so in general this is not needed unless the generated bounding box "
+"somehow becomes corrupted or you have an old install that is lacking "
+"bounding boxes. Then you need to drop the old and readd. This kind of "
+"corruption has been observed in 8.3-8.3.6 series whereby cached bboxes were "
+"not always recalculated when a geometry changed and upgrading to a newer "
+"version without a dump reload will not correct already corrupted boxes. So "
+"one can manually correct using below and readd the bbox or do a dump reload."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_exception.xml:90
+#, no-c-format
+msgid ""
+"--This example drops bounding boxes where the cached box is not correct\n"
+"                        --The force to ST_AsBinary before applying Box2D "
+"forces a recalculation of the box, and Box2D applied to the table geometry "
+"always\n"
+"                        -- returns the cached bounding box.\n"
+"                        UPDATE sometable\n"
+" SET the_geom =  PostGIS_DropBBox(the_geom)\n"
+" WHERE Not (Box2D(ST_AsBinary(the_geom)) = Box2D(the_geom));\n"
+"\n"
+"        UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE Not PostGIS_HasBBOX(the_geom);"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:97
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_HasBBox\"/>, <xref linkend=\"Box2D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_exception.xml:104
+#, no-c-format
+msgid "PostGIS_HasBBox"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_exception.xml:106
+#, no-c-format
+msgid "Returns TRUE if the bbox of this geometry is cached, FALSE otherwise."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_exception.xml:111
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>PostGIS_HasBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:121
+#, no-c-format
+msgid ""
+"Returns TRUE if the bbox of this geometry is cached, FALSE otherwise. Use "
+"<xref linkend=\"PostGIS_AddBBox\"/> and <xref linkend=\"PostGIS_DropBBox\"/> "
+"to control caching."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_exception.xml:131
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM sometable WHERE PostGIS_HasBBox(the_geom) = false;"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:138
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_DropBBox\"/>"
+msgstr ""
diff --git a/doc/po/es/reference_guc.xml.po b/doc/po/es/reference_guc.xml.po
new file mode 100644
index 0000000..ba32a2c
--- /dev/null
+++ b/doc/po/es/reference_guc.xml.po
@@ -0,0 +1,408 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-13 17:58+0000\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: para
+#: reference_guc.xml:5
+#, no-c-format
+msgid ""
+"This section lists custom PostGIS Grand Unified Custom Variables(GUC). These "
+"can be set globally, by database, by session or by transaction. Best set at "
+"global or database level."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:8
+#, no-c-format
+msgid "PostGIS Grand Unified Custom Variables (GUCs)"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:12
+#, no-c-format
+msgid "postgis.backend"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:13
+#, no-c-format
+msgid ""
+"The backend to service a function where GEOS and SFCGAL overlap. Options: "
+"geos or sfcgal. Defaults to geos."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:17 reference_guc.xml:45 reference_guc.xml:95
+#: reference_guc.xml:180
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:18
+#, no-c-format
+msgid ""
+"This GUC is only relevant if you compiled PostGIS with sfcgal support. By "
+"default <varname>geos</varname> backend is used for functions where both "
+"GEOS and SFCGAL have the same named function. This variable allows you to "
+"override and make sfcgal the backend to service the request."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:19
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:23 reference_guc.xml:69 reference_guc.xml:146
+#: reference_guc.xml:206
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:24
+#, no-c-format
+msgid "Sets backend just for life of connection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:25
+#, no-c-format
+msgid "set postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:27
+#, no-c-format
+msgid "Sets backend for new connections to database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:28
+#, no-c-format
+msgid "ALTER DATABASE mygisdb SET postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:31 reference_guc.xml:79 reference_guc.xml:159
+#: reference_guc.xml:213
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:38
+#, no-c-format
+msgid "postgis.gdal_datapath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:39
+#, no-c-format
+msgid ""
+"A configuration option to assign the value of GDAL's GDAL_DATA option. If "
+"not set, the environmentally set GDAL_DATA variable is used."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:46
+#, no-c-format
+msgid ""
+"A PostgreSQL GUC variable for setting the value of GDAL's GDAL_DATA option. "
+"The <varname>postgis.gdal_datapath</varname> value should be the complete "
+"physical path to GDAL's data files."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:49
+#, no-c-format
+msgid ""
+"This configuration option is of most use for Windows platforms where GDAL's "
+"data files path is not hard-coded. This option should also be set when "
+"GDAL's data files are not located in GDAL's expected path."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:54
+#, no-c-format
+msgid ""
+"This option can be set in PostgreSQL's configuration file postgresql.conf. "
+"It can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:58 reference_guc.xml:141 reference_guc.xml:201
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:61
+#, no-c-format
+msgid ""
+"Additional information about GDAL_DATA is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:70
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_datapath</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:72
+#, no-c-format
+msgid ""
+"SET postgis.gdal_datapath TO '/usr/local/share/gdal.hidden';\n"
+"SET postgis.gdal_datapath TO default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:74
+#, no-c-format
+msgid "Setting on windows for a particular database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:75
+#, no-c-format
+msgid ""
+"ALTER DATABASE gisdb\n"
+"SET postgis.gdal_datapath = 'C:/Program Files/PostgreSQL/9.3/gdal-data';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:80
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:88
+#, no-c-format
+msgid "postgis.gdal_enabled_drivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:89
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:96
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP. This option "
+"can be set in PostgreSQL's configuration file: postgresql.conf. It can also "
+"be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:100
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.gdal_enabled_drivers</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_GDAL_ENABLED_DRIVERS</varname> with the list of enabled "
+"drivers to the process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:104
+#, no-c-format
+msgid ""
+"Enabled GDAL specified drivers can be specified by the driver's short-name "
+"or code. Driver short-names or codes can be found at <ulink url=\"http://www."
+"gdal.org/formats_list.html\">GDAL Raster Formats</ulink>. Multiple drivers "
+"can be specified by putting a space between each driver."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:109
+#, no-c-format
+msgid ""
+"There are three special codes available for <varname>postgis."
+"gdal_enabled_drivers</varname>. The codes are case-sensitive."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:114
+#, no-c-format
+msgid ""
+"<varname>DISABLE_ALL</varname> disables all GDAL drivers. If present, "
+"<varname>DISABLE_ALL</varname> overrides all other values in "
+"<varname>postgis.gdal_enabled_drivers</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:117
+#, no-c-format
+msgid "<varname>ENABLE_ALL</varname> enables all GDAL drivers."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:120
+#, no-c-format
+msgid ""
+"<varname>VSICURL</varname> enables GDAL's <varname>/vsicurl/</varname> "
+"virtual file system."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:124
+#, no-c-format
+msgid ""
+"When <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL, "
+"attempts to use out-db rasters, ST_FromGDALRaster(), ST_AsGDALRaster(), "
+"ST_AsTIFF(), ST_AsJPEG() and ST_AsPNG() will result in error messages."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:130
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.gdal_enabled_drivers</"
+"varname> is set to DISABLE_ALL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:136
+#, no-c-format
+msgid ""
+"Additional information about GDAL_SKIP is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:147
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_enabled_drivers</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:149
+#, no-c-format
+msgid ""
+"SET postgis.gdal_enabled_drivers TO 'GTiff PNG JPEG';\n"
+"SET postgis.gdal_enabled_drivers = default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:151
+#, no-c-format
+msgid "Enable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:152
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:154
+#, no-c-format
+msgid "Disable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:155
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'DISABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:160
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>, "
+"<xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsJPEG\"/>, <xref "
+"linkend=\"postgis_enable_outdb_rasters\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:173
+#, no-c-format
+msgid "postgis.enable_outdb_rasters"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:174
+#, no-c-format
+msgid "A boolean configuration option to enable access to out-db raster bands."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:181
+#, no-c-format
+msgid ""
+"A boolean configuration option to enable access to out-db raster bands. This "
+"option can be set in PostgreSQL's configuration file: postgresql.conf. It "
+"can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:185
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.enable_outdb_rasters</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_ENABLE_OUTDB_RASTERS</varname> with a non-zero value to the "
+"process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:190
+#, no-c-format
+msgid ""
+"Even if <varname>postgis.enable_outdb_rasters</varname> is True, the GUC "
+"<varname>postgis.enable_outdb_rasters</varname> determines the accessible "
+"raster formats."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:196
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.enable_outdb_rasters</"
+"varname> is set to False."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:207
+#, no-c-format
+msgid "Set and reset <varname>postgis.enable_outdb_rasters</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:209
+#, no-c-format
+msgid ""
+"SET postgis.enable_outdb_rasters TO True;\n"
+"SET postgis.enable_outdb_rasters = default;\n"
+"SET postgis.enable_outdb_rasters = True;\n"
+"SET postgis.enable_outdb_rasters = False;"
+msgstr ""
diff --git a/doc/po/es/reference_lrs.xml.po b/doc/po/es/reference_lrs.xml.po
new file mode 100644
index 0000000..322d31e
--- /dev/null
+++ b/doc/po/es/reference_lrs.xml.po
@@ -0,0 +1,797 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_lrs.xml:3
+#, no-c-format
+msgid "Linear Referencing"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:7
+#, no-c-format
+msgid "ST_LineInterpolatePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:9
+#, no-c-format
+msgid ""
+"Returns a point interpolated along a line. Second argument is a float8 "
+"between 0 and 1 representing fraction of total length of linestring the "
+"point has to be located."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:15
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineInterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_lrs.xml:24 reference_lrs.xml:86 reference_lrs.xml:138
+#: reference_lrs.xml:205 reference_lrs.xml:263 reference_lrs.xml:314
+#: reference_lrs.xml:359 reference_lrs.xml:403
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:26
+#, no-c-format
+msgid ""
+"Returns a point interpolated along a line. First argument must be a "
+"LINESTRING. Second argument is a float8 between 0 and 1 representing "
+"fraction of total linestring length the point has to be located."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:30 reference_lrs.xml:149
+#, no-c-format
+msgid ""
+"See <xref linkend=\"ST_LineLocatePoint\"/> for computing the line location "
+"nearest to a Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:34
+#, no-c-format
+msgid ""
+"Since release 1.1.1 this function also interpolates M and Z values (when "
+"present), while prior releases set them to 0.0."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:38
+#, no-c-format
+msgid "Availability: 0.8.2, Z and M supported added in 1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:39
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Interpolate_Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:40 reference_lrs.xml:160 reference_lrs.xml:322
+#: reference_lrs.xml:365 reference_lrs.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_lrs.xml:45 reference_lrs.xml:103 reference_lrs.xml:164
+#: reference_lrs.xml:228 reference_lrs.xml:279 reference_lrs.xml:326
+#: reference_lrs.xml:369 reference_lrs.xml:413
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:51
+#, no-c-format
+msgid "A linestring with the interpolated point at 20% position (0.20)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:54
+#, no-c-format
+msgid ""
+"--Return point 20% along 2d line\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.20))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(25 50, 100 125, 150 190)') "
+"as the_line) As foo;\n"
+"   st_asewkt\n"
+"----------------\n"
+" POINT(51.5974135047432 76.5974135047432)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:55
+#, no-c-format
+msgid ""
+"--Return point mid-way of 3d line\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.5))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6, 6 7 8)') as "
+"the_line) As foo;\n"
+"\n"
+"        st_asewkt\n"
+"--------------------\n"
+" POINT(3.5 4.5 5.5)\n"
+"\n"
+"\n"
+"--find closest point on a line to a point or other geometry\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+"FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
+"foo;\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(3 4)"
+msgstr ""
+
+#. Tag: title
+#: reference_lrs.xml:60 reference_lrs.xml:110 reference_lrs.xml:178
+#: reference_lrs.xml:234 reference_lrs.xml:286 reference_lrs.xml:333
+#: reference_lrs.xml:375
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:62
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref "
+"linkend=\"ST_LineLocatePoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:68
+#, no-c-format
+msgid "ST_LineLocatePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:70
+#, no-c-format
+msgid ""
+"Returns a float between 0 and 1 representing the location of the closest "
+"point on LineString to the given Point, as a fraction of total 2d line "
+"length."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:77
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_LineLocatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:88
+#, no-c-format
+msgid ""
+"Returns a float between 0 and 1 representing the location of the closest "
+"point on LineString to the given Point, as a fraction of total <link linkend="
+"\"ST_Length2D\">2d line</link> length."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:92
+#, no-c-format
+msgid ""
+"You can use the returned location to extract a Point (<xref linkend="
+"\"ST_LineInterpolatePoint\"/>) or a substring (<xref linkend="
+"\"ST_LineSubstring\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:95
+#, no-c-format
+msgid "This is useful for approximating numbers of addresses"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:97
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:98
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Locate_Point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:105
+#, no-c-format
+msgid ""
+"--Rough approximation of finding the street number of a point along the "
+"street\n"
+"--Note the whole foo thing is just to generate dummy data that looks\n"
+"--like house centroids and street\n"
+"--We use ST_DWithin to exclude\n"
+"--houses too far away from the street to be considered on the street\n"
+"SELECT ST_AsText(house_loc) As as_text_house_loc,\n"
+"        startstreet_num +\n"
+"                CAST( (endstreet_num - startstreet_num)\n"
+"                        * ST_LineLocatePoint(street_line, house_loc) As "
+"integer) As street_num\n"
+"FROM\n"
+"(SELECT ST_GeomFromText('LINESTRING(1 2, 3 4)') As street_line,\n"
+"        ST_MakePoint(x*1.01,y*1.03) As house_loc, 10 As startstreet_num,\n"
+"                20 As endstreet_num\n"
+"FROM generate_series(1,3) x CROSS JOIN generate_series(2,4) As y)\n"
+"As foo\n"
+"WHERE ST_DWithin(street_line, house_loc, 0.2);\n"
+"\n"
+" as_text_house_loc | street_num\n"
+"-------------------+------------\n"
+" POINT(1.01 2.06)  |         10\n"
+" POINT(2.02 3.09)  |         15\n"
+" POINT(3.03 4.12)  |         20\n"
+"\n"
+" --find closest point on a line to a point or other geometry\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+"FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
+"foo;\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(3 4)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:112
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_LineInterpolatePoint\"/"
+">, <xref linkend=\"ST_LineSubstring\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:118
+#, no-c-format
+msgid "ST_LineSubstring"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:120
+#, no-c-format
+msgid ""
+"Return a linestring being a substring of the input one starting and ending "
+"at the given fractions of total 2d length. Second and third arguments are "
+"float8 values between 0 and 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:128
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineSubstring</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>startfraction</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:140
+#, no-c-format
+msgid ""
+"Return a linestring being a substring of the input one starting and ending "
+"at the given fractions of total 2d length. Second and third arguments are "
+"float8 values between 0 and 1. This only works with LINESTRINGs. To use with "
+"contiguous MULTILINESTRINGs use in conjunction with <xref linkend="
+"\"ST_LineMerge\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:146
+#, no-c-format
+msgid ""
+"If 'start' and 'end' have the same value this is equivalent to <xref linkend="
+"\"ST_LineInterpolatePoint\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:153
+#, no-c-format
+msgid ""
+"Since release 1.1.1 this function also interpolates M and Z values (when "
+"present), while prior releases set them to unspecified values."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:158
+#, no-c-format
+msgid "Availability: 1.1.0, Z and M supported added in 1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:159
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Substring."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:170
+#, no-c-format
+msgid "A linestring seen with 1/3 midrange overlaid (0.333, 0.666)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:173
+#, no-c-format
+msgid ""
+"--Return the approximate 1/3 mid-range part of a linestring\n"
+"SELECT ST_AsText(ST_Line_SubString(ST_GeomFromText('LINESTRING(25 50, 100 "
+"125, 150 190)'), 0.333, 0.666));\n"
+"\n"
+"                                                                                   st_astext\n"
+"------------------------------------------------------------------------------------------------\n"
+"LINESTRING(69.2846934853974 94.2846934853974,100 125,111.700356260683 "
+"140.210463138888)\n"
+"\n"
+"--The below example simulates a while loop in\n"
+"--SQL using PostgreSQL generate_series() to cut all\n"
+"--linestrings in a table to 100 unit segments\n"
+"-- of which no segment is longer than 100 units\n"
+"-- units are measured in the SRID units of measurement\n"
+"-- It also assumes all geometries are LINESTRING or contiguous "
+"MULTILINESTRING\n"
+"--and no geometry is longer than 100 units*10000\n"
+"--for better performance you can reduce the 10000\n"
+"--to match max number of segments you expect\n"
+"\n"
+"SELECT field1, field2, ST_LineSubstring(the_geom, 100.00*n/length,\n"
+"  CASE\n"
+"        WHEN 100.00*(n+1) < length THEN 100.00*(n+1)/length\n"
+"        ELSE 1\n"
+"  END) As the_geom\n"
+"FROM\n"
+"  (SELECT sometable.field1, sometable.field2,\n"
+"  ST_LineMerge(sometable.the_geom) AS the_geom,\n"
+"  ST_Length(sometable.the_geom) As length\n"
+"  FROM sometable\n"
+"  ) AS t\n"
+"CROSS JOIN generate_series(0,10000) AS n\n"
+"WHERE n*100.00/length < 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:180
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_LineInterpolatePoint\"/>, <xref linkend=\"ST_LineMerge"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:186
+#, no-c-format
+msgid "ST_LocateAlong"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:188
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry collection value with elements that "
+"match the specified measure. Polygonal elements are not supported.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:195
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateAlong</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>ageom_with_measure</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_measure</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:207
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry collection value with elements that match "
+"the specified measure. Polygonal elements are not supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:211
+#, no-c-format
+msgid ""
+"If an offset is provided, the resultant will be offset to the left or right "
+"of the input line by the specified number of units. A positive offset will "
+"be to the left, and a negative one to the right."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:216 reference_lrs.xml:269
+#, no-c-format
+msgid ""
+"Semantic is specified by: ISO/IEC CD 13249-3:200x(E) - Text for Continuation "
+"CD Editing Meeting"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:219
+#, no-c-format
+msgid "Availability: 1.1.0 by old name ST_Locate_Along_Measure."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:220
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 in prior versions this used to be called "
+"ST_Locate_Along_Measure. The old name has been deprecated and will be "
+"removed in the future but is still available."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:221
+#, no-c-format
+msgid "Use this function only for geometries with an M component"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:223 reference_lrs.xml:275
+#, no-c-format
+msgid "&M_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:229
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"                (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"                                                 st_asewkt\n"
+"-----------------------------------------------------------\n"
+" MULTIPOINT M (1 2 3)\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsText((ST_Dump(the_geom)).geom)\n"
+"        FROM\n"
+"        (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"        (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"   st_asewkt\n"
+"---------------\n"
+" POINTM(1 2 3)\n"
+" POINTM(9 4 3)\n"
+" POINTM(1 2 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:236
+#, no-c-format
+msgid ", <xref linkend=\"ST_LocateBetween\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:242
+#, no-c-format
+msgid "ST_LocateBetween"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:244
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry collection value with elements that "
+"match the specified range of measures inclusively. Polygonal elements are "
+"not supported.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:251
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateBetween</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>measure_start</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_end</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:265
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry collection value with elements that match "
+"the specified range of measures inclusively. Polygonal elements are not "
+"supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:272
+#, no-c-format
+msgid "Availability: 1.1.0 by old name ST_Locate_Between_Measures."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:273
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions this used to be called "
+"ST_Locate_Between_Measures. The old name has been deprecated and will be "
+"removed in the future but is still available for backward compatibility."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:281
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetween(\n"
+"                        ST_GeomFromText('MULTILINESTRING M ((1 2 3, 3 4 2, 9 "
+"4 3),\n"
+"                (1 2 3, 5 4 5))'),1.5, 3) As the_geom) As foo;\n"
+"\n"
+"                                                         st_asewkt\n"
+"------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION M (LINESTRING M (1 2 3,3 4 2,9 4 3),POINT M (1 2 3))\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsText((ST_Dump(the_geom)).geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetween(\n"
+"                        ST_GeomFromText('MULTILINESTRING M ((1 2 3, 3 4 2, 9 "
+"4 3),\n"
+"                (1 2 3, 5 4 5))'),1.5, 3) As the_geom) As foo;\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+" LINESTRING M (1 2 3,3 4 2,9 4 3)\n"
+" POINT M (1 2 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:288
+#, no-c-format
+msgid ", <xref linkend=\"ST_LocateAlong\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:294
+#, no-c-format
+msgid "ST_LocateBetweenElevations"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:296
+#, no-c-format
+msgid ""
+"Return a derived geometry (collection) value with elements that intersect "
+"the specified range of elevations inclusively. Only 3D, 4D LINESTRINGS and "
+"MULTILINESTRINGS are supported."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:303
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>elevation_start</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>elevation_end</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:316
+#, no-c-format
+msgid ""
+"Return a derived geometry (collection) value with elements that intersect "
+"the specified range of elevations inclusively. Only 3D, 3DM LINESTRINGS and "
+"MULTILINESTRINGS are supported."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:320
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:328
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6)'),2,4)) As "
+"ewelev;\n"
+"                                                                   ewelev\n"
+"----------------------------------------------------------------\n"
+"        MULTILINESTRING((1 2 3,2 3 4))\n"
+"\n"
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9)) As ewelev;\n"
+"\n"
+"                                ewelev\n"
+"----------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(POINT(1 2 6),LINESTRING(6.1 7.1 6,7 8 9))\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsEWKT((ST_Dump(the_geom)).geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9) As the_geom) As foo;\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"POINT(1 2 6)\n"
+"LINESTRING(6.1 7.1 6,7 8 9)"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:342
+#, no-c-format
+msgid "ST_InterpolatePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:344
+#, no-c-format
+msgid ""
+"<refpurpose>Return the value of the measure dimension of a geometry at the "
+"point closed to the provided point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:349
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_InterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:361
+#, no-c-format
+msgid ""
+"<para>Return the value of the measure dimension of a geometry at the point "
+"closed to the provided point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:363
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:371
+#, no-c-format
+msgid ""
+"SELECT ST_InterpolatePoint('LINESTRING M (0 0 0, 10 0 20)', 'POINT(5 5)');\n"
+" st_interpolatepoint \n"
+" ---------------------\n"
+"                                    10"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:377
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_LocateAlong\"/>, <xref linkend=\"ST_LocateBetween\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:385
+#, no-c-format
+msgid "ST_AddMeasure"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:387
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry with measure elements linearly "
+"interpolated between the start and end points. If the geometry has no "
+"measure dimension, one is added. If the geometry has a measure dimension, it "
+"is over-written with new values. Only LINESTRINGS and MULTILINESTRINGS are "
+"supported.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:392
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddMeasure</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_start</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>measure_end</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:405
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry with measure elements linearly interpolated "
+"between the start and end points. If the geometry has no measure dimension, "
+"one is added. If the geometry has a measure dimension, it is over-written "
+"with new values. Only LINESTRINGS and MULTILINESTRINGS are supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:407
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:415
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0, 2 0, 4 0)'),1,4)) As ewelev;\n"
+"           ewelev             \n"
+"--------------------------------\n"
+" LINESTRINGM(1 0 1,2 0 2,4 0 4)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRING(1 0 4 10,2 0 4 20,4 0 4 40)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRINGM(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRINGM(1 0 10,2 0 20,4 0 40)\n"
+" \n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('MULTILINESTRINGM((1 0 4, 2 0 4, 4 0 4),(1 0 4, 2 0 4, 4 0 "
+"4))'),10,70)) As ewelev;\n"
+"                             ewelev                              \n"
+"-----------------------------------------------------------------\n"
+" MULTILINESTRINGM((1 0 10,2 0 20,4 0 40),(1 0 40,2 0 50,4 0 70))"
+msgstr ""
diff --git a/doc/po/es/reference_management.xml.po b/doc/po/es/reference_management.xml.po
new file mode 100644
index 0000000..121f89c
--- /dev/null
+++ b/doc/po/es/reference_management.xml.po
@@ -0,0 +1,1650 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-02-18 13:51+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_management.xml:3
+#, no-c-format
+msgid "Management Functions"
+msgstr "Funciones de Gestión"
+
+#. Tag: refname
+#: reference_management.xml:7
+#, no-c-format
+msgid "AddGeometryColumn"
+msgstr "AddGeometryColumn"
+
+#. Tag: refpurpose
+#: reference_management.xml:9
+#, no-c-format
+msgid ""
+"Adds a geometry column to an existing table of attributes. By default uses "
+"type modifier to define rather than constraints. Pass in false for "
+"use_typmod to get old check constraint based behavior"
+msgstr ""
+"Añade una columna de geometrías a una tabla de atributos existente. Por "
+"defecto utiliza el modificador de tipo en vez de restricciones. Si se cambia "
+"a falso use_typmode se utilizará el metido antiguo basado en restricciones"
+
+#. Tag: funcsynopsis
+#: reference_management.xml:15
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>type</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>dimension</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>use_typmod=true</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>type</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>dimension</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>use_typmod=true</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: title
+#: reference_management.xml:92 reference_management.xml:188
+#: reference_management.xml:254 reference_management.xml:298
+#: reference_management.xml:344 reference_management.xml:386
+#: reference_management.xml:427 reference_management.xml:458
+#: reference_management.xml:499 reference_management.xml:540
+#: reference_management.xml:583 reference_management.xml:631
+#: reference_management.xml:677 reference_management.xml:726
+#: reference_management.xml:863
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: para
+#: reference_management.xml:94
+#, no-c-format
+msgid ""
+"Adds a geometry column to an existing table of attributes. The "
+"<varname>schema_name</varname> is the name of the table schema. The "
+"<varname>srid</varname> must be an integer value reference to an entry in "
+"the SPATIAL_REF_SYS table. The <varname>type</varname> must be a string "
+"corresponding to the geometry type, eg, 'POLYGON' or 'MULTILINESTRING' . An "
+"error is thrown if the schemaname doesn't exist (or not visible in the "
+"current search_path) or the specified SRID, geometry type, or dimension is "
+"invalid."
+msgstr ""
+"Añade una columna de geometría a una tabla existente de atributos. "
+"<varname>schema_name</varname> es el nombre del esquema de la tabla. "
+"<varname>srid</varname> debe ser una referencia de valor entero a una "
+"entrada en la tabla SPATIAL_REF_SYS. <varname>type</varname> debe ser una "
+"cadena que corresponde al tipo de geometría, por ejemplo, 'POLYGON' or "
+"'MULTILINESTRING'. Se lanza un error si no existe el schemaname (o no esta "
+"visible en el search_path actual) o el SRID, el tipo de geometría, o la "
+"dimensión no son validos."
+
+#. Tag: para
+#: reference_management.xml:104
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function no longer updates geometry_columns since "
+"geometry_columns is a view that reads from system catalogs. It by default "
+"also does not create constraints, but instead uses the built in type "
+"modifier behavior of PostgreSQL. So for example building a wgs84 POINT "
+"column with this function is now equivalent to: <code>ALTER TABLE some_table "
+"ADD COLUMN geom geometry(Point,4326);</code>"
+msgstr ""
+"Cambiado: 2.0.0 Esta función ya no se actualiza desde geometry_columns ya "
+"que geometry_columns es una vista que se lee dede los catálogos del sistema. "
+"Por defecto tampoco crea las restricciones, sino que utiliza el modificador "
+"de tipo de PostgreSQL. Así que para la construcción de una columna de tipo  "
+"POINT en wgs84 con esta función ejemplo que hoy es equivalente a: "
+"<code>ALTER TABLE some_table ADD COLUMN geom geometry(Point,4326);</code>"
+
+#. Tag: para
+#: reference_management.xml:107
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 If you require the old behavior of constraints use the "
+"default <varname>use_typmod</varname>, but set it to false."
+msgstr ""
+"Cambiado: 2.0.0 Si necesitas el comportamiento antiguo de restricciones, "
+"utiliza el valor predeterminado <varname>use_typmod</varname>, pero cambiala "
+"a false."
+
+#. Tag: para
+#: reference_management.xml:111
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Views can no longer be manually registered in "
+"geometry_columns, however views built against geometry typmod tables "
+"geometries and used without wrapper functions will register themselves "
+"correctly because they inherit the typmod behavior of their parent table "
+"column. Views that use geometry functions that output other geometries will "
+"need to be cast to typmod geometries for these view geometry columns to be "
+"registered correctly in geometry_columns. Refer to <xref linkend="
+"\"Manual_Register_Spatial_Column\"/>."
+msgstr ""
+"Cambiado: 2.0.0 Las Vistas ya no pueden ser registradas manualmente en "
+"geometry_columns, no obstante las vistas se que construyan a partir de "
+"geometrías typmod de las tablas de geometrías y sean utilizadas ​​sin "
+"funciones wrapper se registraran correctamente porque heredan el "
+"comportamiento typmod de su columna de la tabla padre. Las vistas que "
+"utilizan funciones de geometría que devuelvan geometrías necesitarán de "
+"transformación cast a geometrías typmod para esta columnas de geometrías de "
+"la vista y que se registren correctamente en geometry_columns. Consulta "
+"<xref linkend=\"Manual_Register_Spatial_Column\"/>."
+
+#. Tag: para
+#: reference_management.xml:117 reference_management.xml:194
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr "&sfs_compliant;"
+
+#. Tag: para
+#: reference_management.xml:118 reference_management.xml:195
+#: reference_management.xml:869
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_management.xml:119 reference_management.xml:196
+#: reference_management.xml:870
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: para
+#: reference_management.xml:120
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 use_typmod argument introduced. Defaults to creating typmod "
+"geometry column instead of constraint-based."
+msgstr ""
+"Mejorada: 2.0.0 introducción del argumento use_typmod. El valor "
+"predeterminado es crearcolumnas de geometrías basadas en typmod en lugar de "
+"las basadas en restricciones."
+
+#. Tag: title
+#: reference_management.xml:124 reference_management.xml:203
+#: reference_management.xml:267 reference_management.xml:306
+#: reference_management.xml:351 reference_management.xml:393
+#: reference_management.xml:433 reference_management.xml:464
+#: reference_management.xml:506 reference_management.xml:548
+#: reference_management.xml:600 reference_management.xml:646
+#: reference_management.xml:683 reference_management.xml:784
+#: reference_management.xml:873
+#, no-c-format
+msgid "Examples"
+msgstr "Ejemplos"
+
+#. Tag: programlisting
+#: reference_management.xml:126
+#, no-c-format
+msgid ""
+"-- Create schema to hold data\n"
+"CREATE SCHEMA my_schema;\n"
+"-- Create a new simple PostgreSQL table\n"
+"CREATE TABLE my_schema.my_spatial_table (id serial);\n"
+"\n"
+"-- Describing the table shows a simple table with a single \"id\" column.\n"
+"postgis=# \\d my_schema.my_spatial_table\n"
+"                                                         Table \"my_schema."
+"my_spatial_table\"\n"
+" Column |  Type   |                                Modifiers\n"
+"--------+---------"
+"+-------------------------------------------------------------------------\n"
+" id     | integer | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+"\n"
+"-- Add a spatial column to the table\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom',4326,'POINT',2);\n"
+"\n"
+"-- Add a point using the old constraint based behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);\n"
+"\n"
+"--Add a curvepolygon using old constraint behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geomcp_c',4326,'CURVEPOLYGON',2, false);\n"
+"\n"
+"-- Describe the table again reveals the addition of a new geometry columns.\n"
+"\\d my_schema.my_spatial_table\n"
+"                            addgeometrycolumn                            \n"
+"-------------------------------------------------------------------------\n"
+" my_schema.my_spatial_table.geomcp_c SRID:4326 TYPE:CURVEPOLYGON DIMS:2 \n"
+"(1 row)\n"
+"\n"
+"                                    Table \"my_schema.my_spatial_table\"\n"
+"  Column  |         Type         |                                "
+"Modifiers                                \n"
+"----------+----------------------"
+"+-------------------------------------------------------------------------\n"
+" id       | integer              | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+" geom     | geometry(Point,4326) | \n"
+" geom_c   | geometry             | \n"
+" geomcp_c | geometry             | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_c\" CHECK (st_ndims(geom_c) = 2)\n"
+"    \"enforce_dims_geomcp_c\" CHECK (st_ndims(geomcp_c) = 2)\n"
+"    \"enforce_geotype_geom_c\" CHECK (geometrytype(geom_c) = 'POINT'::text "
+"OR geom_c IS NULL)\n"
+"    \"enforce_geotype_geomcp_c\" CHECK (geometrytype(geomcp_c) = "
+"'CURVEPOLYGON'::text OR geomcp_c IS NULL)\n"
+"    \"enforce_srid_geom_c\" CHECK (st_srid(geom_c) = 4326)\n"
+"    \"enforce_srid_geomcp_c\" CHECK (st_srid(geomcp_c) = 4326)\n"
+"    \n"
+"-- geometry_columns view also registers the new columns --\n"
+"SELECT f_geometry_column As col_name, type, srid, coord_dimension As ndims \n"
+"    FROM geometry_columns\n"
+"    WHERE f_table_name = 'my_spatial_table' AND f_table_schema = "
+"'my_schema';\n"
+"\n"
+" col_name |     type     | srid | ndims \n"
+"----------+--------------+------+-------\n"
+" geom     | Point        | 4326 |     2\n"
+" geom_c   | Point        | 4326 |     2\n"
+" geomcp_c | CurvePolygon | 4326 |     2"
+msgstr ""
+"-- Crea un  schema para albergar los datos\n"
+"CREATE SCHEMA my_schema;\n"
+"-- Crea una tbla simple de PostgreSQL\n"
+"CREATE TABLE my_schema.my_spatial_table (id serial);\n"
+"\n"
+"-- Descripcion de la tabla que muestra una unica tabla con una unica columna "
+"\"id\".\n"
+"postgis=# \\d my_schema.my_spatial_table\n"
+"                                                         Table \"my_schema."
+"my_spatial_table\"\n"
+" Column |  Type   |                                Modifiers\n"
+"--------+---------"
+"+-------------------------------------------------------------------------\n"
+" id     | integer | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+"\n"
+"-- Añadde una columna espacial a la tabla\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom',4326,'POINT',2);\n"
+"\n"
+"-- Añade un punto utilizando la antigua forma basada en restricciones\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);\n"
+"\n"
+"--Añade un polygon curvo utilizando la antigua forma basada en "
+"restricciones\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geomcp_c',4326,'CURVEPOLYGON',2, false);\n"
+"\n"
+"-- Describimos de nuevo la tabla para ver la columna de geometrias añadida\n"
+"\\d my_schema.my_spatial_table\n"
+"                            addgeometrycolumn                            \n"
+"-------------------------------------------------------------------------\n"
+" my_schema.my_spatial_table.geomcp_c SRID:4326 TYPE:CURVEPOLYGON DIMS:2 \n"
+"(1 row)\n"
+"\n"
+"                                    Table \"my_schema.my_spatial_table\"\n"
+"  Column  |         Type         |                                "
+"Modifiers                                \n"
+"----------+----------------------"
+"+-------------------------------------------------------------------------\n"
+" id       | integer              | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+" geom     | geometry(Point,4326) | \n"
+" geom_c   | geometry             | \n"
+" geomcp_c | geometry             | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_c\" CHECK (st_ndims(geom_c) = 2)\n"
+"    \"enforce_dims_geomcp_c\" CHECK (st_ndims(geomcp_c) = 2)\n"
+"    \"enforce_geotype_geom_c\" CHECK (geometrytype(geom_c) = 'POINT'::text "
+"OR geom_c IS NULL)\n"
+"    \"enforce_geotype_geomcp_c\" CHECK (geometrytype(geomcp_c) = "
+"'CURVEPOLYGON'::text OR geomcp_c IS NULL)\n"
+"    \"enforce_srid_geom_c\" CHECK (st_srid(geom_c) = 4326)\n"
+"    \"enforce_srid_geomcp_c\" CHECK (st_srid(geomcp_c) = 4326)\n"
+"    \n"
+"--La vista geometry_columns  también registra las columnas nuevas--\n"
+"SELECT f_geometry_column As col_name, type, srid, coord_dimension As ndims \n"
+"    FROM geometry_columns\n"
+"    WHERE f_table_name = 'my_spatial_table' AND f_table_schema = "
+"'my_schema';\n"
+"\n"
+" col_name |     type     | srid | ndims \n"
+"----------+--------------+------+-------\n"
+" geom     | Point        | 4326 |     2\n"
+" geom_c   | Point        | 4326 |     2\n"
+" geomcp_c | CurvePolygon | 4326 |     2"
+
+#. Tag: title
+#: reference_management.xml:130 reference_management.xml:208
+#: reference_management.xml:272 reference_management.xml:312
+#: reference_management.xml:357 reference_management.xml:399
+#: reference_management.xml:470 reference_management.xml:512
+#: reference_management.xml:554 reference_management.xml:606
+#: reference_management.xml:652 reference_management.xml:689
+#: reference_management.xml:886
+#, no-c-format
+msgid "See Also"
+msgstr "También puedes ver"
+
+#. Tag: para
+#: reference_management.xml:132
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/"
+">, <xref linkend=\"Manual_Register_Spatial_Column\"/>"
+msgstr ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/"
+">, <xref linkend=\"Manual_Register_Spatial_Column\"/>"
+
+#. Tag: refname
+#: reference_management.xml:138
+#, no-c-format
+msgid "DropGeometryColumn"
+msgstr "DropGeometryColumn"
+
+#. Tag: refpurpose
+#: reference_management.xml:140
+#, no-c-format
+msgid "Removes a geometry column from a spatial table."
+msgstr "Suprime una columna de geometrías de una tabla espacial."
+
+#. Tag: funcsynopsis
+#: reference_management.xml:145
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>DropGeometryColumn</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>DropGeometryColumn</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:190
+#, no-c-format
+msgid ""
+"Removes a geometry column from a spatial table. Note that schema_name will "
+"need to match the f_table_schema field of the table's row in the "
+"geometry_columns table."
+msgstr ""
+"Suprime una columna de geometrías de una tabla espacial. Observa que "
+"schema_name debe apuntar al campo f_table_schema del registro de la tabla "
+"geometry_columns."
+
+#. Tag: para
+#: reference_management.xml:198
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function is provided for backward compatibility. Now "
+"that since geometry_columns is now a view against the system catalogs, you "
+"can drop a geometry column like any other table column using <code>ALTER "
+"TABLE</code>"
+msgstr ""
+"Cambiado: 2.0.0 Se proporciona esta función para la compatibilidad con "
+"versiones anteriores. Ahora que geometry_columns es una vista y no un "
+"catálogo del sistema, se puede eliminar una columna de geometría como "
+"cualquier otra columna de la tabla utilizando <code>ALTER TABLE</code>"
+
+#. Tag: programlisting
+#: reference_management.xml:205
+#, no-c-format
+msgid ""
+"SELECT DropGeometryColumn ('my_schema','my_spatial_table','geom');\n"
+"                        ----RESULT output ---\n"
+"                                          dropgeometrycolumn\n"
+"------------------------------------------------------\n"
+" my_schema.my_spatial_table.geom effectively removed.\n"
+" \n"
+"-- In PostGIS 2.0+ the above is also equivalent to the standard\n"
+"-- the standard alter table.  Both will deregister from geometry_columns\n"
+"ALTER TABLE my_schema.my_spatial_table DROP column geom;"
+msgstr ""
+"SELECT DropGeometryColumn ('my_schema','my_spatial_table','geom');\n"
+"                        ----RESULT output ---\n"
+"                                          dropgeometrycolumn\n"
+"------------------------------------------------------\n"
+" my_schema.my_spatial_table.geom effectively removed.\n"
+" \n"
+"-- En PostGIS 2.0+ lo anterior es equivalente a alter table standar.\n"
+"-- Ambos quitaran el registro de la tabla geometry_columns\n"
+"ALTER TABLE my_schema.my_spatial_table DROP column geom;"
+
+#. Tag: para
+#: reference_management.xml:210
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/>"
+msgstr ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/>"
+
+#. Tag: refname
+#: reference_management.xml:216
+#, no-c-format
+msgid "DropGeometryTable"
+msgstr "DropGeometryTable"
+
+#. Tag: refpurpose
+#: reference_management.xml:218
+#, no-c-format
+msgid "Drops a table and all its references in geometry_columns."
+msgstr "Borra una tabla y todas sus referencias en la tabla geómetra_columns."
+
+#. Tag: funcsynopsis
+#: reference_management.xml:223
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropGeometryTable</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropGeometryTable</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:256
+#, no-c-format
+msgid ""
+"Drops a table and all its references in geometry_columns. Note: uses "
+"current_schema() on schema-aware pgsql installations if schema is not "
+"provided."
+msgstr ""
+"Borra la tabla y todas sus referencias en la tabla geómetra_column. Nota: "
+"utiliza el esquema current_schema() de una instalación pgsql si el esquema "
+"no se especifica."
+
+#. Tag: para
+#: reference_management.xml:261
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function is provided for backward compatibility. Now "
+"that since geometry_columns is now a view against the system catalogs, you "
+"can drop a table with geometry columns like any other table using <code>DROP "
+"TABLE</code>"
+msgstr ""
+"Cambiado: 2.0.0 Se proporciona esta función para la compatibilidad con "
+"versiones anteriores. Ahora que  geometry_columns es una vista y no un "
+"catálogo del sistema, se puede borrar una tabla con columnas de geometría "
+"como cualquier otra tabla utilizando <code>DROP TABLE</code>"
+
+#. Tag: programlisting
+#: reference_management.xml:269
+#, no-c-format
+msgid ""
+"SELECT DropGeometryTable ('my_schema','my_spatial_table');\n"
+"----RESULT output ---\n"
+"my_schema.my_spatial_table dropped.\n"
+"                        \n"
+"-- The above is now equivalent to --\n"
+"DROP TABLE my_schema.my_spatial_table;"
+msgstr ""
+"SELECT DropGeometryTable ('my_schema','my_spatial_table');\n"
+"----RESULT output ---\n"
+"my_schema.my_spatial_table dropped.\n"
+"                        \n"
+"-- El comando anterior es equivalente a --\n"
+"DROP TABLE my_schema.my_spatial_table;"
+
+#. Tag: para
+#: reference_management.xml:274
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryColumn\"/>, <xref linkend=\"geometry_columns\"/"
+">"
+msgstr ""
+", <xref linkend=\"DropGeometryColumn\"/>, <xref linkend=\"geometry_columns\"/"
+">"
+
+#. Tag: refname
+#: reference_management.xml:281
+#, no-c-format
+msgid "PostGIS_Full_Version"
+msgstr "PostGIS_Full_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:283
+#, no-c-format
+msgid "Reports full postgis version and build configuration infos."
+msgstr ""
+"Devuelve la versión completa e informaciones de compilación de postgis."
+
+#. Tag: funcprototype
+#: reference_management.xml:289
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Full_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Full_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:300
+#, no-c-format
+msgid ""
+"Reports full postgis version and build configuration infos. Also informs "
+"about synchronization between libraries and scripts suggesting upgrades as "
+"needed."
+msgstr ""
+"Devuelve la versión completa e informaciones de compilación de postgis. "
+"También informa sobre la sincronización entre librerías y scripts, y además "
+"sugiere si son necesarias actualizaciones."
+
+#. Tag: programlisting
+#: reference_management.xml:308
+#, fuzzy, no-c-format
+msgid ""
+"SELECT PostGIS_Full_Version();\n"
+"                                                           postgis_full_version\n"
+"----------------------------------------------------------------------------------\n"
+"POSTGIS=\"2.2.0dev r12699\" GEOS=\"3.5.0dev-CAPI-1.9.0 r3989\" SFCGAL="
+"\"1.0.4\" PROJ=\"Rel. 4.8.0, 6 March 2012\" \n"
+"GDAL=\"GDAL 1.11.0, released 2014/04/16\" LIBXML=\"2.7.8\" LIBJSON=\"0.12\" "
+"RASTER\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Full_Version();\n"
+"                                                           postgis_full_version\n"
+"----------------------------------------------------------------------------------\n"
+" POSTGIS=\"1.3.3\" GEOS=\"3.1.0-CAPI-1.5.0\" PROJ=\"Rel. 4.4.9, 29 Oct "
+"2004\" USE_STATS\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:314
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:327
+#, no-c-format
+msgid "PostGIS_GEOS_Version"
+msgstr "PostGIS_GEOS_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:329
+#, no-c-format
+msgid "Returns the version number of the GEOS library."
+msgstr "Devuelve el numero de versión de la libreria GEOS."
+
+#. Tag: funcprototype
+#: reference_management.xml:335
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GEOS_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_GEOS_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:346
+#, no-c-format
+msgid ""
+"Returns the version number of the GEOS library, or <varname>NULL</varname> "
+"if GEOS support is not enabled."
+msgstr ""
+"Devuelve el numero de versión de la libreria GEOS, o <varname>NULL</varname> "
+"si el soporte de GEOS no esta activo."
+
+#. Tag: programlisting
+#: reference_management.xml:353
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GEOS_Version();\n"
+" postgis_geos_version\n"
+"----------------------\n"
+" 3.1.0-CAPI-1.5.0\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_GEOS_Version();\n"
+" postgis_geos_version\n"
+"----------------------\n"
+" 3.1.0-CAPI-1.5.0\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:359
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:369
+#, no-c-format
+msgid "PostGIS_LibXML_Version"
+msgstr "PostGIS_LibXML_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:371
+#, no-c-format
+msgid "Returns the version number of the libxml2 library."
+msgstr "Devuelve el numero de la versión de la libreria libxml2."
+
+#. Tag: funcprototype
+#: reference_management.xml:377
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_LibXML_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_LibXML_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:388
+#, no-c-format
+msgid "Returns the version number of the LibXML2 library."
+msgstr "Devuelve el numero de la versión de la libreria LibXML2."
+
+#. Tag: para
+#: reference_management.xml:389
+#, no-c-format
+msgid "Availability: 1.5"
+msgstr "Disponibilidad: 1.5"
+
+#. Tag: programlisting
+#: reference_management.xml:395
+#, no-c-format
+msgid ""
+"SELECT PostGIS_LibXML_Version();\n"
+" postgis_libxml_version\n"
+"----------------------\n"
+" 2.7.6\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_LibXML_Version();\n"
+" postgis_libxml_version\n"
+"----------------------\n"
+" 2.7.6\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:401
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:411
+#, no-c-format
+msgid "PostGIS_Lib_Build_Date"
+msgstr "PostGIS_Lib_Build_Date"
+
+#. Tag: refpurpose
+#: reference_management.xml:413
+#, no-c-format
+msgid "<refpurpose>Returns build date of the PostGIS library.</refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve la fecha de compilación de la librería PostGIS.</"
+"refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:418
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:429
+#, no-c-format
+msgid "<para>Returns build date of the PostGIS library.</para>"
+msgstr "<para> Devuelve la fecha de compilación de la librería PostGIS.</para>"
+
+#. Tag: programlisting
+#: reference_management.xml:435
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Lib_Build_Date();\n"
+" postgis_lib_build_date\n"
+"------------------------\n"
+" 2008-06-21 17:53:21\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Lib_Build_Date();\n"
+" postgis_lib_build_date\n"
+"------------------------\n"
+" 2008-06-21 17:53:21\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_management.xml:441
+#, no-c-format
+msgid "PostGIS_Lib_Version"
+msgstr "PostGIS_Lib_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:443
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the version number of the PostGIS library.</refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve el numero de versión de la librería PostGIS.</"
+"refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:449
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Lib_Version</function></funcdef> <paramdef></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Lib_Version</function></funcdef> <paramdef></"
+"paramdef>"
+
+#. Tag: para
+#: reference_management.xml:460
+#, no-c-format
+msgid "<para>Returns the version number of the PostGIS library.</para>"
+msgstr "<para>Devuelve el numero de versión de la librería PostGIS.</para>"
+
+#. Tag: programlisting
+#: reference_management.xml:466
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Lib_Version();\n"
+" postgis_lib_version\n"
+"---------------------\n"
+" 1.3.3\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Lib_Version();\n"
+" postgis_lib_version\n"
+"---------------------\n"
+" 1.3.3\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:472
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:482
+#, no-c-format
+msgid "PostGIS_PROJ_Version"
+msgstr "PostGIS_PROJ_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:484
+#, no-c-format
+msgid "Returns the version number of the PROJ4 library."
+msgstr "Devuelve el numero de versión de la librería PROJ4"
+
+#. Tag: funcprototype
+#: reference_management.xml:490
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_PROJ_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_PROJ_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:501
+#, no-c-format
+msgid ""
+"Returns the version number of the PROJ4 library, or <varname>NULL</varname> "
+"if PROJ4 support is not enabled."
+msgstr ""
+"Devuelve el numero de versión de la librería PROJ4, o <varname>NULL</"
+"varname> si el soporte de PROJ4 no esta activado."
+
+#. Tag: programlisting
+#: reference_management.xml:508
+#, no-c-format
+msgid ""
+"SELECT PostGIS_PROJ_Version();\n"
+"  postgis_proj_version\n"
+"-------------------------\n"
+" Rel. 4.4.9, 29 Oct 2004\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_PROJ_Version();\n"
+"  postgis_proj_version\n"
+"-------------------------\n"
+" Rel. 4.4.9, 29 Oct 2004\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:514 reference_management.xml:556
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:524
+#, no-c-format
+msgid "PostGIS_Scripts_Build_Date"
+msgstr "PostGIS_Scripts_Build_Date"
+
+#. Tag: refpurpose
+#: reference_management.xml:526
+#, no-c-format
+msgid "<refpurpose>Returns build date of the PostGIS scripts.</refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve la fecha de compilación del script PostGIS.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:531
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:542
+#, no-c-format
+msgid "<para>Returns build date of the PostGIS scripts.</para>"
+msgstr "<para>Devuelve la fecha de compilación del script PostGIS.</para>"
+
+#. Tag: para
+#: reference_management.xml:544
+#, no-c-format
+msgid "Availability: 1.0.0RC1"
+msgstr "Disponibilidad: 1.0.0RC1"
+
+#. Tag: programlisting
+#: reference_management.xml:550
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Build_Date();\n"
+"  postgis_scripts_build_date\n"
+"-------------------------\n"
+" 2007-08-18 09:09:26\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Scripts_Build_Date();\n"
+"  postgis_scripts_build_date\n"
+"-------------------------\n"
+" 2007-08-18 09:09:26\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_management.xml:566
+#, no-c-format
+msgid "PostGIS_Scripts_Installed"
+msgstr "PostGIS_Scripts_Installed"
+
+#. Tag: refpurpose
+#: reference_management.xml:568
+#, no-c-format
+msgid ""
+"<refpurpose>Returns version of the postgis scripts installed in this "
+"database.</refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve la versión del script postgis instalado en la base de "
+"datos.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:574
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Installed</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Installed</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:585
+#, no-c-format
+msgid ""
+"<para>Returns version of the postgis scripts installed in this database.</"
+"para>"
+msgstr ""
+"<para>Devuelve la versión del script postgis instalado en la base de datos.</"
+"para>"
+
+#. Tag: para
+#: reference_management.xml:589
+#, no-c-format
+msgid ""
+"If the output of this function doesn't match the output of <xref linkend="
+"\"PostGIS_Scripts_Released\"/> you probably missed to properly upgrade an "
+"existing database. See the <link linkend=\"upgrading\">Upgrading</link> "
+"section for more info."
+msgstr ""
+"Si la salida de esta función no se corresponde con la de <xref linkend="
+"\"PostGIS_Scripts_Released\"/> probablemente no has actualizado "
+"correctamente la base de datos existente. Ve a la sección <link linkend="
+"\"upgrading\">Actualización</link> para mas información."
+
+#. Tag: para
+#: reference_management.xml:596 reference_management.xml:642
+#, no-c-format
+msgid "Availability: 0.9.0"
+msgstr "Disponibilidad: 0.9.0"
+
+#. Tag: programlisting
+#: reference_management.xml:602
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Installed();\n"
+"  postgis_scripts_installed\n"
+"-------------------------\n"
+" 1.5.0SVN\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Scripts_Installed();\n"
+"  postgis_scripts_installed\n"
+"-------------------------\n"
+" 1.5.0SVN\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:608
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:614
+#, no-c-format
+msgid "PostGIS_Scripts_Released"
+msgstr "PostGIS_Scripts_Released"
+
+#. Tag: refpurpose
+#: reference_management.xml:616
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the version number of the postgis.sql script released "
+"with the installed postgis lib.</refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve el numero de versión del script postgis.sql liberado "
+"con la libreria instalada postgis.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:622
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Released</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Released</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:633
+#, no-c-format
+msgid ""
+"<para>Returns the version number of the postgis.sql script released with the "
+"installed postgis lib.</para>"
+msgstr ""
+"<para>Devuelve el numero de versión del script postgis.sql liberado con la "
+"libreria instalada postgis.</para>"
+
+#. Tag: para
+#: reference_management.xml:637
+#, no-c-format
+msgid ""
+"Starting with version 1.1.0 this function returns the same value of <xref "
+"linkend=\"PostGIS_Lib_Version\"/>. Kept for backward compatibility."
+msgstr ""
+"Desde la versión 1.1.0 esta función devuelve el mismo valor que <xref "
+"linkend=\"PostGIS_Lib_Version\"/>. Mantenido por compatibilidad con "
+"versiones anteriores."
+
+#. Tag: programlisting
+#: reference_management.xml:648
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Released();\n"
+"  postgis_scripts_released\n"
+"-------------------------\n"
+" 1.3.4SVN\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Scripts_Released();\n"
+"  postgis_scripts_released\n"
+"-------------------------\n"
+" 1.3.4SVN\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:654
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Scripts_Installed\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Installed\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:660
+#, no-c-format
+msgid "PostGIS_Version"
+msgstr "PostGIS_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:662
+#, no-c-format
+msgid ""
+"<refpurpose>Returns PostGIS version number and compile-time options.</"
+"refpurpose>"
+msgstr ""
+"<refpurpose>Devuelve el numero de versión e información sobre su compilación "
+"de PostGIS.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:668
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Version</function></funcdef> <paramdef></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Version</function></funcdef> <paramdef></"
+"paramdef>"
+
+#. Tag: para
+#: reference_management.xml:679
+#, no-c-format
+msgid "<para>Returns PostGIS version number and compile-time options.</para>"
+msgstr ""
+"<para>Devuelve el numero de versión e información sobre su compilación de "
+"PostGIS.</para>"
+
+#. Tag: programlisting
+#: reference_management.xml:685
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Version();\n"
+"                        postgis_version\n"
+"---------------------------------------\n"
+" 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Version();\n"
+"                        postgis_version\n"
+"---------------------------------------\n"
+" 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:691
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:701
+#, no-c-format
+msgid "Populate_Geometry_Columns"
+msgstr "Populate_Geometry_Columns"
+
+#. Tag: refpurpose
+#: reference_management.xml:703
+#, no-c-format
+msgid ""
+"Ensures geometry columns are defined with type modifiers or have appropriate "
+"spatial constraints This ensures they will be registered correctly in "
+"<varname>geometry_columns</varname> view. By default will convert all "
+"geometry columns with no type modifier to ones with type modifiers. To get "
+"old behavior set <varname>use_typmod=false</varname>"
+msgstr ""
+"Asegura que las columnas de geometría se define con modificadores de tipo o "
+"tienen restricciones espaciales apropiadas Esto asegura que se registrarán "
+"correctamente en la vista <varname>geometry_columns</varname>. Por defecto "
+"se convertirán todas las columnas de geometría sin modificador de tipo a "
+"modificadores de tipo. Para conseguir el comportamiento del sistema antiguo "
+"selecciona <varname>use_typmod = false</varname>"
+
+#. Tag: funcsynopsis
+#: reference_management.xml:709
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>Populate_Geometry_Columns</"
+"function></funcdef> <paramdef><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>int <function>Populate_Geometry_Columns</function></"
+"funcdef> <paramdef><type>oid</type> <parameter>relation_oid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>use_typmod=true</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>Populate_Geometry_Columns</"
+"function></funcdef> <paramdef><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>int <function>Populate_Geometry_Columns</function></"
+"funcdef> <paramdef><type>oid</type> <parameter>relation_oid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>use_typmod=true</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:728
+#, no-c-format
+msgid ""
+"Ensures geometry columns have appropriate type modifiers or spatial "
+"constraints to ensure they are registered correctly in "
+"<varname>geometry_columns</varname> table."
+msgstr ""
+"Asegura que las columnas de geometría se define con modificadores de tipo o "
+"tienen restricciones espaciales apropiadas Esto asegura que se registrarán "
+"correctamente en la vista <varname>geometry_columns</varname>."
+
+#. Tag: para
+#: reference_management.xml:730
+#, no-c-format
+msgid ""
+"For backwards compatibility and for spatial needs such as tble inheritance "
+"where each child table may have different geometry type, the old check "
+"constraint behavior is still supported. If you need the old behavior, you "
+"need to pass in the new optional argument as false "
+"<varname>use_typmod=false</varname>. When this is done geometry columns will "
+"be created with no type modifiers but will have 3 constraints defined. In "
+"particular, this means that every geometry column belonging to a table has "
+"at least three constraints:"
+msgstr ""
+"Para tener compatibilidad con versiones anteriores o por necesidades "
+"espaciales como herencia de tablas donde cada tabla hija debe tener "
+"diferentes tipos de geometría, el soporte de la antigua funcionalidad por "
+"restricciones continua disponible. Si necesitas las funcionalidades antiguas "
+"de restricciones, deberás cambiar el valor del argumento "
+"<varname>use_typmod=false</varname> a falso. Una vez hecho esto, las "
+"columnas de geometría se crearan sin modificadores de tipo pero tendremos 3 "
+"restricciones definidas. En particular, esto significa que cada columna de "
+"geometrías perteneciente a una tabla tendrá al menos tres restricciones:"
+
+#. Tag: para
+#: reference_management.xml:738
+#, no-c-format
+msgid ""
+"<varname>enforce_dims_the_geom</varname> - ensures every geometry has the "
+"same dimension (see <xref linkend=\"ST_NDims\"/>)"
+msgstr ""
+"<varname>enforce_dims_the_geom</varname> - asegura que cada geometría posee "
+"la misma dimensión (mira en <xref linkend=\"ST_NDims\"/>)"
+
+#. Tag: para
+#: reference_management.xml:744
+#, no-c-format
+msgid ""
+"<varname>enforce_geotype_the_geom</varname> - ensures every geometry is of "
+"the same type (see <xref linkend=\"GeometryType\"/>)"
+msgstr ""
+"<varname>enforce_geotype_the_geom</varname> - asegura que cada geometría es "
+"del mismo tipo (mira en <xref linkend=\"GeometryType\"/>)"
+
+#. Tag: para
+#: reference_management.xml:750
+#, no-c-format
+msgid ""
+"<varname>enforce_srid_the_geom</varname> - ensures every geometry is in the "
+"same projection (see <xref linkend=\"ST_SRID\"/>)"
+msgstr ""
+"<varname>enforce_srid_the_geom</varname> - asegura que cada geometría tiene "
+"la misma proyección (mira en <xref linkend=\"ST_SRID\"/>)"
+
+#. Tag: para
+#: reference_management.xml:756
+#, no-c-format
+msgid ""
+"If a table <varname>oid</varname> is provided, this function tries to "
+"determine the srid, dimension, and geometry type of all geometry columns in "
+"the table, adding constraints as necessary. If successful, an appropriate "
+"row is inserted into the geometry_columns table, otherwise, the exception is "
+"caught and an error notice is raised describing the problem."
+msgstr ""
+"Si se da una tabla <varname>oid</varname>, esta función trata de determinar "
+"el srid, la dimensión, y el tipo de geometría de todas las columnas de "
+"geometrías en la tabla, añadiendo las restricciones si es necesario. Si no "
+"hay errores, una fila apropiada se insertará en la tabla geometry_columns, "
+"si hay errores, se captura la excepción y se envía un mensaje de error con "
+"la descripción del problema."
+
+#. Tag: para
+#: reference_management.xml:763
+#, no-c-format
+msgid ""
+"If the <varname>oid</varname> of a view is provided, as with a table oid, "
+"this function tries to determine the srid, dimension, and type of all the "
+"geometries in the view, inserting appropriate entries into the "
+"<varname>geometry_columns</varname> table, but nothing is done to enforce "
+"constraints."
+msgstr ""
+"Si se da una vista <varname>oíd</varname>, como en el caso de una tabla oíd, "
+"esta función trata de determinar el srid, la dimensión, y el tipo de "
+"geometría de todas las columnas de geometrías en la tabla, añadiendo las "
+"filas apropiadas tabla <varname>geometry_columns</varname>, pero no se "
+"ejecuta nada para hacer cumplir las restricciones."
+
+#. Tag: para
+#: reference_management.xml:769
+#, no-c-format
+msgid ""
+"The parameterless variant is a simple wrapper for the parameterized variant "
+"that first truncates and repopulates the geometry_columns table for every "
+"spatial table and view in the database, adding spatial constraints to tables "
+"where appropriate. It returns a summary of the number of geometry columns "
+"detected in the database and the number that were inserted into the "
+"<varname>geometry_columns</varname> table. The parameterized version simply "
+"returns the number of rows inserted into the <varname>geometry_columns</"
+"varname> table."
+msgstr ""
+"La variante sin parámetros es un simple wrapper de la variante con "
+"parámetros que trunca y rellena la tabla geometry_columns para cada tabla y "
+"vista espacial de la base de datos, añadiendo restricciones espaciales "
+"apropiadas a cada tabla. Devuelve un sumario de los numero de columnas de "
+"geometrías detectadas en la base de datos y el numeroque se insertaron en la "
+"tabla <varname>geometry_columns</varname>. La versión con parámetros "
+"simplemente devuelve el numero de filas insertado en la tabla "
+"<varname>geometry_columns</varname>."
+
+#. Tag: para
+#: reference_management.xml:777
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr "Disponibilidad: 1.4.0"
+
+#. Tag: para
+#: reference_management.xml:778
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 By default, now uses type modifiers instead of check "
+"constraints to constrain geometry types. You can still use check constraint "
+"behavior instead by using the new <varname>use_typmod</varname> and setting "
+"it to false."
+msgstr ""
+"Cambiado: 2.0.0 Por defecto, ahora utiliza modificadores de tipo en lugar de "
+"restricciones de tipo check para limitar los tipos de geometría. Puedes "
+"seguir utilizando el comportamiento de las restricciones check con el uso de "
+"la nueva variable <varname>use_typmod</varname> y estableciéndolo a false."
+
+#. Tag: para
+#: reference_management.xml:780
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 <varname>use_typmod</varname> optional argument was "
+"introduced that allows controlling if columns are created with typmodifiers "
+"or with check constraints."
+msgstr ""
+"Mejorado: 2.0.0 el argumento opcional <varname>use_typmod</varname> fue "
+"introducido y permite controlar si las columnas se crean con modificadores "
+"de tipo o con restricciones de tipo check."
+
+#. Tag: programlisting
+#: reference_management.xml:786
+#, no-c-format
+msgid ""
+"CREATE TABLE public.myspatial_table(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 "
+"4)',4326) );\n"
+"-- This will now use typ modifiers.  For this to work, there must exist "
+"data\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table'::regclass);\n"
+"\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"                        \n"
+"                        \n"
+"\\d myspatial_table\n"
+"\n"
+"                                   Table \"public.myspatial_table\"\n"
+" Column |           Type            |                           "
+"Modifiers                           \n"
+"--------+---------------------------"
+"+---------------------------------------------------------------\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
+" geom   | geometry(LineString,4326) |"
+msgstr ""
+"CREATE TABLE public.myspatial_table(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 "
+"4)',4326) );\n"
+"-- Esto utilizara modificadores de tipo. Para que esto funcione deben "
+"existir datos\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table'::regclass);\n"
+"\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"                        \n"
+"                        \n"
+"\\d myspatial_table\n"
+"\n"
+"                                   Table \"public.myspatial_table\"\n"
+" Column |           Type            |                           "
+"Modifiers                           \n"
+"--------+---------------------------"
+"+---------------------------------------------------------------\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
+" geom   | geometry(LineString,4326) |"
+
+#. Tag: programlisting
+#: reference_management.xml:788
+#, no-c-format
+msgid ""
+"-- This will change the geometry columns to use constraints if they are not "
+"typmod or have constraints already.  \n"
+"--For this to work, there must exist data\n"
+"CREATE TABLE public.myspatial_table_cs(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table_cs(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, "
+"3 4)',4326) );\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table_cs'::regclass, "
+"false);\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"\\d myspatial_table_cs\n"
+"\n"
+"                          Table \"public.myspatial_table_cs\"\n"
+" Column |   Type   |                            "
+"Modifiers                             \n"
+"--------+----------"
+"+------------------------------------------------------------------\n"
+" gid    | integer  | not null default nextval('myspatial_table_cs_gid_seq'::"
+"regclass)\n"
+" geom   | geometry | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom\" CHECK (st_ndims(geom) = 2)\n"
+"    \"enforce_geotype_geom\" CHECK (geometrytype(geom) = 'LINESTRING'::text "
+"OR geom IS NULL)\n"
+"    \"enforce_srid_geom\" CHECK (st_srid(geom) = 4326)"
+msgstr ""
+"-- Esto cambiara las columnas de geometría a utilizar restricciones si no "
+"son  typmod o ya tienen restrciciones.\n"
+"-- Para que esto funcione deben existir datos\n"
+"CREATE TABLE public.myspatial_table_cs(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table_cs(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, "
+"3 4)',4326) );\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table_cs'::regclass, "
+"false);\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"\\d myspatial_table_cs\n"
+"\n"
+"                          Table \"public.myspatial_table_cs\"\n"
+" Column |   Type   |                            "
+"Modifiers                             \n"
+"--------+----------"
+"+------------------------------------------------------------------\n"
+" gid    | integer  | not null default nextval('myspatial_table_cs_gid_seq'::"
+"regclass)\n"
+" geom   | geometry | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom\" CHECK (st_ndims(geom) = 2)\n"
+"    \"enforce_geotype_geom\" CHECK (geometrytype(geom) = 'LINESTRING'::text "
+"OR geom IS NULL)\n"
+"    \"enforce_srid_geom\" CHECK (st_srid(geom) = 4326)"
+
+#. Tag: refname
+#: reference_management.xml:803
+#, no-c-format
+msgid "UpdateGeometrySRID"
+msgstr "UpdateGeometrySRID"
+
+#. Tag: refpurpose
+#: reference_management.xml:805
+#, no-c-format
+msgid ""
+"Updates the SRID of all features in a geometry column, geometry_columns "
+"metadata and srid. If it was enforced with constraints, the constraints will "
+"be updated with new srid constraint. If the old was enforced by type "
+"definition, the type definition will be changed."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_management.xml:811
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>UpdateGeometrySRID</"
+"function></funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>UpdateGeometrySRID</"
+"function></funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:865
+#, no-c-format
+msgid ""
+"Updates the SRID of all features in a geometry column, updating constraints "
+"and reference in geometry_columns. Note: uses current_schema() on schema-"
+"aware pgsql installations if schema is not provided."
+msgstr ""
+"Actualiza el SRID de todos los registros de una columna de geometrías, "
+"actualizando las restricciones y referencias en geometry_columns. Nota: "
+"utiliza current_schema() en instalaciones pgsql que aceptan esquemas, si no "
+"se pasa ningún esquema."
+
+#. Tag: para
+#: reference_management.xml:874
+#, no-c-format
+msgid ""
+"This will change the srid of the roads table to 4326 from whatever it was "
+"before"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:875
+#, no-c-format
+msgid "SELECT UpdateGeometrySRID('roads','geom',4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:877
+#, no-c-format
+msgid "The prior example is equivalent to this DDL statement"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:878
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+"  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) \n"
+"    USING ST_SetSRID(geom,4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:880
+#, no-c-format
+msgid ""
+"If you got the projection wrong (or brought it in as unknown) in load and "
+"you wanted to transform to web mercator all in one shot You can do this with "
+"DDL but there is no equivalent PostGIS management function to do so in one "
+"go."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:883
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+" ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857) USING "
+"ST_Transform(ST_SetSRID(geom,4326),3857) ;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:888
+#, fuzzy, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+
+#~ msgid ""
+#~ "Updates the SRID of all features in a geometry column, geometry_columns "
+#~ "metadata and srid table constraint"
+#~ msgstr ""
+#~ "Actualiza el SRID de todos los registros de una columna de geometrías, "
+#~ "los metadatos de geometry_columns y las restricciones srid de la tabla"
diff --git a/doc/po/es/reference_measure.xml.po b/doc/po/es/reference_measure.xml.po
new file mode 100644
index 0000000..241b521
--- /dev/null
+++ b/doc/po/es/reference_measure.xml.po
@@ -0,0 +1,5034 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_measure.xml:3
+#, no-c-format
+msgid "Spatial Relationships and Measurements"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:6
+#, no-c-format
+msgid "ST_3DClosestPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:8
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional point on g1 that is closest to g2. This is the "
+"first point of the 3D shortest line."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:144
+#: reference_measure.xml:196 reference_measure.xml:253
+#: reference_measure.xml:303 reference_measure.xml:372
+#: reference_measure.xml:418 reference_measure.xml:490
+#: reference_measure.xml:549 reference_measure.xml:620
+#: reference_measure.xml:738 reference_measure.xml:811
+#: reference_measure.xml:963 reference_measure.xml:1044
+#: reference_measure.xml:1126 reference_measure.xml:1186
+#: reference_measure.xml:1352 reference_measure.xml:1487
+#: reference_measure.xml:1565 reference_measure.xml:1635
+#: reference_measure.xml:1690 reference_measure.xml:1736
+#: reference_measure.xml:1785 reference_measure.xml:1838
+#: reference_measure.xml:1920 reference_measure.xml:1984
+#: reference_measure.xml:2033 reference_measure.xml:2093
+#: reference_measure.xml:2159 reference_measure.xml:2210
+#: reference_measure.xml:2243 reference_measure.xml:2288
+#: reference_measure.xml:2340 reference_measure.xml:2391
+#: reference_measure.xml:2443 reference_measure.xml:2531
+#: reference_measure.xml:2574 reference_measure.xml:2665
+#: reference_measure.xml:2714 reference_measure.xml:2751
+#: reference_measure.xml:2793 reference_measure.xml:2840
+#: reference_measure.xml:2906 reference_measure.xml:2972
+#: reference_measure.xml:3015 reference_measure.xml:3094
+#: reference_measure.xml:3242
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:29
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional point on g1 that is closest to g2. This is the "
+"first point of the 3D shortest line. The 3D length of the 3D shortest line "
+"is the 3D distance."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:149
+#: reference_measure.xml:211 reference_measure.xml:266
+#: reference_measure.xml:312 reference_measure.xml:377
+#: reference_measure.xml:431 reference_measure.xml:2038
+#: reference_measure.xml:2247 reference_measure.xml:2302
+#: reference_measure.xml:2399 reference_measure.xml:2755
+#: reference_measure.xml:2801
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:151
+#: reference_measure.xml:213 reference_measure.xml:268
+#: reference_measure.xml:314 reference_measure.xml:379
+#: reference_measure.xml:433 reference_measure.xml:500
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:35 reference_measure.xml:103
+#: reference_measure.xml:154 reference_measure.xml:210
+#: reference_measure.xml:260 reference_measure.xml:311
+#: reference_measure.xml:381 reference_measure.xml:430
+#: reference_measure.xml:2847
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:39 reference_measure.xml:107
+#: reference_measure.xml:158 reference_measure.xml:218
+#: reference_measure.xml:318 reference_measure.xml:385
+#: reference_measure.xml:437 reference_measure.xml:507
+#: reference_measure.xml:564 reference_measure.xml:646
+#: reference_measure.xml:748 reference_measure.xml:849
+#: reference_measure.xml:1002 reference_measure.xml:1080
+#: reference_measure.xml:1155 reference_measure.xml:1252
+#: reference_measure.xml:1387 reference_measure.xml:1510
+#: reference_measure.xml:1660 reference_measure.xml:1702
+#: reference_measure.xml:1751 reference_measure.xml:1799
+#: reference_measure.xml:1856 reference_measure.xml:1954
+#: reference_measure.xml:2003 reference_measure.xml:2044
+#: reference_measure.xml:2253 reference_measure.xml:2307
+#: reference_measure.xml:2359 reference_measure.xml:2405
+#: reference_measure.xml:2453 reference_measure.xml:2546
+#: reference_measure.xml:2596 reference_measure.xml:2761
+#: reference_measure.xml:2805 reference_measure.xml:2942
+#: reference_measure.xml:2982 reference_measure.xml:3031
+#: reference_measure.xml:3144 reference_measure.xml:3274
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:44
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:45
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" cp3d_line_pt                                                                        "
+"|               cp2d_line_pt\n"
+"-----------------------------------------------------------"
+"+------------------------------------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | "
+"POINT(73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:49
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:50
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       cp3d_line_pt                        | cp2d_line_pt\n"
+"-----------------------------------------------------------+--------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | POINT(50 75)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:54
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:55
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(poly, mline)) As cp3d,\n"
+"    ST_AsEWKT(ST_ClosestPoint(poly, mline)) As cp2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   cp3d                    |     cp2d\n"
+"-------------------------------------------+--------------\n"
+" POINT(39.993580415989 54.1889925532825 5) | POINT(20 40)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:65 reference_measure.xml:114
+#: reference_measure.xml:164 reference_measure.xml:223
+#: reference_measure.xml:276 reference_measure.xml:344
+#: reference_measure.xml:391 reference_measure.xml:463
+#: reference_measure.xml:523 reference_measure.xml:595
+#: reference_measure.xml:709 reference_measure.xml:783
+#: reference_measure.xml:936 reference_measure.xml:1007
+#: reference_measure.xml:1088 reference_measure.xml:1160
+#: reference_measure.xml:1457 reference_measure.xml:1516
+#: reference_measure.xml:1594 reference_measure.xml:1710
+#: reference_measure.xml:1758 reference_measure.xml:1806
+#: reference_measure.xml:1861 reference_measure.xml:1959
+#: reference_measure.xml:2009 reference_measure.xml:2051
+#: reference_measure.xml:2135 reference_measure.xml:2187
+#: reference_measure.xml:2219 reference_measure.xml:2262
+#: reference_measure.xml:2314 reference_measure.xml:2366
+#: reference_measure.xml:2412 reference_measure.xml:2506
+#: reference_measure.xml:2551 reference_measure.xml:2638
+#: reference_measure.xml:2691 reference_measure.xml:2727
+#: reference_measure.xml:2768 reference_measure.xml:2811
+#: reference_measure.xml:2864 reference_measure.xml:2948
+#: reference_measure.xml:2988 reference_measure.xml:3065
+#: reference_measure.xml:3285
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:67
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ClosestPoint\"/>, <xref linkend=\"ST_3DDistance\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:72
+#, no-c-format
+msgid "ST_3DDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:74
+#, no-c-format
+msgid ""
+"For geometry type Returns the 3-dimensional cartesian minimum distance "
+"(based on spatial ref) between two geometries in projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:79
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:94
+#, no-c-format
+msgid ""
+"For geometry type returns the 3-dimensional minimum cartesian distance "
+"between two geometries in projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:100 reference_measure.xml:152
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM ?"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:101 reference_measure.xml:503
+#: reference_measure.xml:1574 reference_measure.xml:2124
+#: reference_measure.xml:2172
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:109
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_3d,\n"
+"                ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),2163),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),2163)\n"
+"                ) As dist_2d;\n"
+"\n"
+"     dist_3d      |     dist_2d\n"
+"------------------+-----------------\n"
+" 127.295059324629 | 126.66425605671"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:110
+#, no-c-format
+msgid ""
+"-- Multilinestring and polygon both 3d and 2d distance\n"
+"-- Same example as 3D closest point example\n"
+"SELECT ST_3DDistance(poly, mline) As dist3d,\n"
+"    ST_Distance(poly, mline) As dist2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"      dist3d       | dist2d\n"
+"-------------------+--------\n"
+" 0.716635696066337 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:116
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DClosestPoint\"/>, <xref linkend=\"ST_3DDWithin\"/>, "
+"<xref linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_3DShortestLine\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:122
+#, no-c-format
+msgid "ST_3DDWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:124
+#, no-c-format
+msgid ""
+"For 3d (z) geometry type Returns true if two geometries 3d distance is "
+"within number of units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:128
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DDWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:146
+#, no-c-format
+msgid ""
+"For geometry type returns true if the 3d distance between two objects is "
+"within distance_of_srid specified projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:160
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DDWithin(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        126.8\n"
+"                ) As within_dist_3d,\n"
+"ST_DWithin(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        126.8\n"
+"                ) As within_dist_2d;\n"
+"\n"
+" within_dist_3d | within_dist_2d\n"
+"----------------+----------------\n"
+" f              | t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:166
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:172
+#, no-c-format
+msgid "ST_3DDFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:174
+#, no-c-format
+msgid ""
+"Returns true if all of the 3D geometries are within the specified distance "
+"of one another."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:180
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DDFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:198
+#, no-c-format
+msgid ""
+"Returns true if the 3D geometries are fully within the specified distance of "
+"one another. The distance is specified in units defined by the spatial "
+"reference system of the geometries. For this function to make sense, the "
+"source geometries must both be of the same coordinate projection, having the "
+"same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:205 reference_measure.xml:262
+#: reference_measure.xml:1242 reference_measure.xml:1847
+#: reference_measure.xml:1933 reference_measure.xml:2108
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:219
+#, no-c-format
+msgid ""
+"-- This compares the difference between fully within and distance within as "
+"well\n"
+"                -- as the distance fully within for the 2D footprint of the "
+"line/point vs. the 3d fully within\n"
+"                SELECT ST_3DDFullyWithin(geom_a, geom_b, 10) as "
+"D3DFullyWithin10, ST_3DDWithin(geom_a, geom_b, 10) as D3DWithin10, \n"
+"        ST_DFullyWithin(geom_a, geom_b, 20) as D2DFullyWithin20, \n"
+"        ST_3DDFullyWithin(geom_a, geom_b, 20) as D3DFullyWithin20 from \n"
+"                (select ST_GeomFromEWKT('POINT(1 1 2)') as geom_a,\n"
+"                ST_GeomFromEWKT('LINESTRING(1 5 2, 2 7 20, 1 9 100, 14 12 "
+"3)') as geom_b) t1;\n"
+" d3dfullywithin10 | d3dwithin10 | d2dfullywithin20 | d3dfullywithin20\n"
+"------------------+-------------+------------------+------------------\n"
+" f                | t           | t                | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:225
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:231
+#, no-c-format
+msgid "ST_3DIntersects"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:233
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries \"spatially intersect\" in 3d - only for "
+"points and linestrings"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:239
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DIntersects</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>geomA</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>geomB</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:254 reference_measure.xml:2096
+#, no-c-format
+msgid ""
+"Overlaps, Touches, Within all imply spatial intersection. If any of the "
+"aforementioned returns true, then the geometries also spatially intersect. "
+"Disjoint implies false for spatial intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:269
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: ?"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:272 reference_measure.xml:2127
+#: reference_measure.xml:2176
+#, no-c-format
+msgid "Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:273
+#, no-c-format
+msgid ""
+"SELECT ST_3DIntersects(pt, line), ST_Intersects(pt,line) \n"
+"        FROM (SELECT 'POINT(0 0 2)'::geometry As pt, \n"
+"                'LINESTRING (0 0 1, 0 2 3 )'::geometry As line) As foo;\n"
+" st_3dintersects | st_intersects\n"
+"-----------------+---------------\n"
+" f               | t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:283
+#, no-c-format
+msgid "ST_3DLongestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:285
+#, no-c-format
+msgid "Returns the 3-dimensional longest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:290
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DLongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:305
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional longest line between two geometries. The function "
+"will only return the first longest line if more than one. The line returned "
+"will always start in g1 and end in g2. The 3D length of the line this "
+"function returns will always be the same as <xref linkend=\"ST_3DMaxDistance"
+"\"/> returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:323
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:324
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"           lol3d_line_pt           |       lol2d_line_pt\n"
+"-----------------------------------+----------------------------\n"
+" LINESTRING(50 75 1000,100 100 30) | LINESTRING(98 190,100 100)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:328
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:329
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"          lol3d_line_pt          |      lol2d_line_pt\n"
+"---------------------------------+--------------------------\n"
+" LINESTRING(98 190 1,50 74 1000) | LINESTRING(98 190,50 74)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:333
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:334
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(poly, mline)) As lol3d,\n"
+"    ST_AsEWKT(ST_LongestLine(poly, mline)) As lol2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"            lol3d             |          lol2d\n"
+"------------------------------+--------------------------\n"
+" LINESTRING(175 150 5,1 10 2) | LINESTRING(175 150,1 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:346
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:352
+#, no-c-format
+msgid "ST_3DMaxDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:354
+#, no-c-format
+msgid ""
+"For geometry type Returns the 3-dimensional cartesian maximum distance "
+"(based on spatial ref) between two geometries in projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:359
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DMaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:374
+#, no-c-format
+msgid ""
+"For geometry type returns the 3-dimensional maximum cartesian distance "
+"between two geometries in projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:387
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DMaxDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_3d,\n"
+"                ST_MaxDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_2d;\n"
+"\n"
+"     dist_3d      |     dist_2d\n"
+"------------------+------------------\n"
+" 24383.7467488441 | 22247.8472107251"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:398
+#, no-c-format
+msgid "ST_3DShortestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:400
+#, no-c-format
+msgid "Returns the 3-dimensional shortest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:405
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DShortestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:420
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional shortest line between two geometries. The function "
+"will only return the first shortest line if more than one, that the function "
+"finds. If g1 and g2 intersects in just one point the function will return a "
+"line with both start and end in that intersection-point. If g1 and g2 are "
+"intersecting with more than one point the function will return a line with "
+"start and end in the same point but it can be any of the intersecting "
+"points. The line returned will always start in g1 and end in g2. The 3D "
+"length of the line this function returns will always be the same as <xref "
+"linkend=\"ST_3DDistance\"/> returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:442
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:443
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" shl3d_line_pt                                                                                         "
+"|               shl2d_line_pt\n"
+"----------------------------------------------------------------------------"
+"+------------------------------------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30)  "
+"| LINESTRING(73.0769230769231 115.384615384615,100 100)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:447
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:448
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       shl3d_line_pt                                       | "
+"shl2d_line_pt\n"
+"---------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30) | "
+"LINESTRING(50 75,50 74)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:452
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:453
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(poly, mline)) As shl3d,\n"
+"    ST_AsEWKT(ST_ShortestLine(poly, mline)) As shl2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   shl3d                                                                           "
+"|     shl2d\n"
+"---------------------------------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(39.993580415989 54.1889925532825 5,40.4078575708294 "
+"53.6052383805529 5.03423778139177) | LINESTRING(20 40,20 40)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:465
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:470
+#, no-c-format
+msgid "ST_Area"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:472
+#, no-c-format
+msgid ""
+"Returns the area of the surface if it is a polygon or multi-polygon. For "
+"\"geometry\" type area is in SRID units. For \"geography\" area is in square "
+"meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:476
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Area</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Area</function></"
+"funcdef> <paramdef><type>geography </type><parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:492
+#, no-c-format
+msgid ""
+"Returns the area of the geometry if it is a polygon or multi-polygon. Return "
+"the area measurement of an ST_Surface or ST_MultiSurface value. For geometry "
+"Area is in the units of the srid. For geography area is in square meters and "
+"defaults to measuring about the spheroid of the geography (currently only "
+"WGS84). To measure around the faster but less accurate sphere -- "
+"ST_Area(geog,false)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:497
+#, no-c-format
+msgid "Enhanced: 2.0.0 - support for 2D polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:498 reference_measure.xml:641
+#: reference_measure.xml:1571 reference_measure.xml:1947
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:499
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.2, 9.5.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:501
+#, no-c-format
+msgid ""
+"For polyhedral surfaces, only supports 2D polyhedral surfaces (not 2.5D). "
+"For 2.5D, may give a non-zero answer, but only for the faces that sit "
+"completely in XY plane."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:508
+#, no-c-format
+msgid ""
+"Return area in square feet for a plot of Massachusetts land and multiply by "
+"conversion to get square meters. Note this is in square feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:511
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |     sqm\n"
+"---------+-------------\n"
+" 928.625 | 86.27208552"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:512
+#, no-c-format
+msgid ""
+"Return area square feet and transform to Massachusetts state plane meters "
+"(26986) to get square meters. Note this is in square feet because 2249 is "
+"Mass State Plane Feet and transformed area is in square meters since 26986 "
+"is state plane mass meters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:515
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As "
+"sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |       sqm\n"
+"---------+------------------\n"
+" 928.625 | 86.2724304199219"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:517
+#, no-c-format
+msgid ""
+"Return area square feet and square meters using Geography data type. Note "
+"that we transform to our geometry to geography (before you can do that make "
+"sure your geometry is in WGS 84 long lat 4326). Geography always measures in "
+"meters. This is just for demonstration to compare. Normally your table will "
+"be stored in geography data type already."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:520
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,"
+"false)/POWER(0.3048,2) As sqft_sphere, ST_Area(the_geog) As sqm_spheroid\n"
+"                FROM (SELECT\n"
+"                geography(\n"
+"                ST_Transform(\n"
+"                        ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,743265.625 2967416,743238 2967416))',\n"
+"                                2249\n"
+"                                ) ,4326\n"
+"                        )\n"
+"                )\n"
+"        ) As foo(the_geog);\n"
+" sqft_spheroid   |   sqft_sphere    |   sqm_spheroid\n"
+"-----------------+------------------+------------------\n"
+"928.684405217197 | 927.186481558724 | 86.2776044452694\n"
+"\n"
+" --if your data is in geography already\n"
+" SELECT ST_Area(the_geog)/POWER(0.3048,2) As  sqft, ST_Area(the_geog) As "
+"sqm\n"
+"        FROM somegeogtable;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:524
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeographyFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:530
+#, no-c-format
+msgid "ST_Azimuth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:532
+#, no-c-format
+msgid ""
+"Returns the north-based azimuth as the angle in radians measured clockwise "
+"from the vertical on pointA to pointB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:535
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Azimuth</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>pointA</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>pointB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Azimuth</"
+"function></funcdef> <paramdef><type>geography </type><parameter>pointA</"
+"parameter></paramdef> <paramdef><type>geography </type><parameter>pointB</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:551
+#, no-c-format
+msgid ""
+"Returns the azimuth in radians of the segment defined by the given point-"
+"geometries, or NULL if the two points are coincident. The azimuth is north-"
+"based and is measured clockwise: North = 0; East = PI/2; South = PI; West = "
+"3PI/2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:554
+#, no-c-format
+msgid ""
+"The Azimuth is mathematical concept defined as the angle, in this case "
+"measured in radian, between a reference plane and a point."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:557
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:558
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:559
+#, no-c-format
+msgid ""
+"Azimuth is especially useful in conjunction with ST_Translate for shifting "
+"an object along its perpendicular axis. See upgis_lineshift <ulink url="
+"\"http://trac.osgeo.org/postgis/wiki/UsersWikiplpgsqlfunctions"
+"\">Plpgsqlfunctions PostGIS wiki section</ulink> for example of this."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:565
+#, no-c-format
+msgid "Geometry Azimuth in degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:566
+#, no-c-format
+msgid ""
+"SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as "
+"degA_B,\n"
+"        ST_Azimuth(ST_Point(75,100), ST_Point(25,45))/(2*pi())*360 As "
+"degB_A;\n"
+"        \n"
+"-- NOTE easier to remember syntax using PostgreSQL built-in degrees function "
+"--\n"
+"-- Both yield same answer --\n"
+"SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degA_B,\n"
+"        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As degB_A;\n"
+"\n"
+"      dega_b       |     degb_a\n"
+"------------------+------------------\n"
+" 42.2736890060937 | 222.273689006094"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:576
+#, no-c-format
+msgid ""
+"Green: the start Point(25,45) with its vertical. Yellow: degA_B as the path "
+"to travel (azimuth)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:585
+#, no-c-format
+msgid ""
+"Green: the start Point(75,100) with its vertical. Yellow: degB_A as the path "
+"to travel (azimuth)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:596
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Translate\"/>, <xref linkend=\"ST_Project\"/>, <ulink "
+"url=\"http://www.postgresql.org/docs/current/interactive/functions-math.html"
+"\">PostgreSQL Math Functions</ulink>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:603
+#, no-c-format
+msgid "ST_Centroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:605
+#, no-c-format
+msgid "Returns the geometric center of a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:610
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Centroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:622
+#, no-c-format
+msgid ""
+"Computes the geometric center of a geometry, or equivalently, the center of "
+"mass of the geometry as a <varname>POINT</varname>. For [<varname>MULTI</"
+"varname>]<varname>POINT</varname>s, this is computed as the arithmetic mean "
+"of the input coordinates. For [<varname>MULTI</varname>]<varname>LINESTRING</"
+"varname>s, this is computed as the weighted length of each line segment. For "
+"[<varname>MULTI</varname>]<varname>POLYGON</varname>s, \"weight\" is thought "
+"in terms of area. If an empty geometry is supplied, an empty "
+"<varname>GEOMETRYCOLLECTION</varname> is returned. If <varname>NULL</"
+"varname> is supplied, <varname>NULL</varname> is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:634
+#, no-c-format
+msgid ""
+"The centroid is equal to the centroid of the set of component Geometries of "
+"highest dimension (since the lower-dimension geometries contribute zero "
+"\"weight\" to the centroid)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:638
+#, no-c-format
+msgid ""
+"Computation will be more accurate if performed by the GEOS module (enabled "
+"at compile time)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:642
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.4, 9.5.5"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:648
+#, no-c-format
+msgid ""
+"In each of the following illustrations, the blue dot represents the centroid "
+"of the source geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:661
+#, no-c-format
+msgid "Centroid of a <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:672
+#, no-c-format
+msgid "Centroid of a <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:685
+#, no-c-format
+msgid "Centroid of a <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:696
+#, no-c-format
+msgid "Centroid of a <varname>GEOMETRYCOLLECTION</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:705
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 "
+"1, 0 3, 1 1, 2 0, 6 0, 7 8, 9 8, 10 6 )'));\n"
+"                                st_astext\n"
+"------------------------------------------\n"
+" POINT(2.30769230769231 3.30769230769231)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:717
+#, no-c-format
+msgid "ST_ClosestPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:719
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the 2-dimensional point on g1 that is closest to g2. "
+"This is the first point of the shortest line.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:725
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:740
+#, no-c-format
+msgid ""
+"<para>Returns the 2-dimensional point on g1 that is closest to g2. This is "
+"the first point of the shortest line.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:743
+#, no-c-format
+msgid ""
+"If you have a 3D Geometry, you may prefer to use <xref linkend="
+"\"ST_3DClosestPoint\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:744 reference_measure.xml:1699
+#: reference_measure.xml:1852 reference_measure.xml:2448
+#: reference_measure.xml:3027
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:758
+#, no-c-format
+msgid ""
+"Closest between point and linestring is the point itself, but closest point "
+"between a linestring and point is the point on line string that is closest."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:762
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_ClosestPoint(pt,line)) AS cp_pt_line, \n"
+"        ST_AsText(ST_ClosestPoint(line,pt)) As cp_line_pt\n"
+"FROM (SELECT 'POINT(100 100)'::geometry As pt, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry As "
+"line\n"
+"        ) As foo;\n"
+"\n"
+"        \n"
+"   cp_pt_line   |                cp_line_pt\n"
+"----------------+------------------------------------------\n"
+" POINT(100 100) | POINT(73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:770
+#, no-c-format
+msgid "closest point on polygon A to polygon B"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:773
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"                ST_ClosestPoint(\n"
+"                        ST_GeomFromText('POLYGON((175 150, 20 40, 50 60, 125 "
+"100, 175 150))'),\n"
+"                        ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                        ) \n"
+"                ) As ptwkt;\n"
+"                \n"
+"                  ptwkt\n"
+"------------------------------------------\n"
+" POINT(140.752120669087 125.695053378061)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:785
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
+"linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_MaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:791
+#, no-c-format
+msgid "ST_Contains"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:793
+#, no-c-format
+msgid ""
+"Returns true if and only if no points of B lie in the exterior of A, and at "
+"least one point of the interior of B lies in the interior of A."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:798
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:813
+#, no-c-format
+msgid ""
+"Geometry A contains Geometry B if and only if no points of B lie in the "
+"exterior of A, and at least one point of the interior of B lies in the "
+"interior of A. An important subtlety of this definition is that A does not "
+"contain its boundary, but A does contain itself. Contrast that to <xref "
+"linkend=\"ST_ContainsProperly\"/> where geometry A does not Contain Properly "
+"itself."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:817
+#, no-c-format
+msgid ""
+"Returns TRUE if geometry B is completely inside geometry A. For this "
+"function to make sense, the source geometries must both be of the same "
+"coordinate projection, having the same SRID. ST_Contains is the inverse of "
+"ST_Within. So ST_Contains(A,B) implies ST_Within(B,A) except in the case of "
+"invalid geometries where the result is always false regardless or not "
+"defined."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:822 reference_measure.xml:1049
+#: reference_measure.xml:1131 reference_measure.xml:1496
+#: reference_measure.xml:2579 reference_measure.xml:2932
+#: reference_measure.xml:3249
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:825 reference_measure.xml:987
+#: reference_measure.xml:1052 reference_measure.xml:1134
+#: reference_measure.xml:1238 reference_measure.xml:1493
+#: reference_measure.xml:3130 reference_measure.xml:3252
+#, no-c-format
+msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:829 reference_measure.xml:991
+#: reference_measure.xml:1060 reference_measure.xml:1138
+#: reference_measure.xml:3256
+#, no-c-format
+msgid ""
+"Do not use this function with invalid geometries. You will get unexpected "
+"results."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:832
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Contains."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:837 reference_measure.xml:1071
+#: reference_measure.xml:1146 reference_measure.xml:1502
+#: reference_measure.xml:2117 reference_measure.xml:2588
+#: reference_measure.xml:3264
+#, no-c-format
+msgid ""
+"NOTE: this is the \"allowable\" version that returns a boolean, not an "
+"integer."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:840
+#, no-c-format
+msgid ""
+"&sfs_compliant; s2.1.1.2 // s2.1.13.3 - same as within(geometry B, geometry "
+"A)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:842
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.31"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:844 reference_measure.xml:1075
+#: reference_measure.xml:1150
+#, no-c-format
+msgid ""
+"There are certain subtleties to ST_Contains and ST_Within that are not "
+"intuitively obvious. For details check out <ulink url=\"http://lin-ear-th-"
+"inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html"
+"\">Subtleties of OGC Covers, Contains, Within</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:851
+#, no-c-format
+msgid ""
+"The <function>ST_Contains</function> predicate returns <varname>TRUE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:863
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:873 reference_measure.xml:3208
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>POINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:884 reference_measure.xml:924
+#: reference_measure.xml:3177
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:894 reference_measure.xml:2625
+#: reference_measure.xml:3157 reference_measure.xml:3167
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:902
+#, no-c-format
+msgid ""
+"The <function>ST_Contains</function> predicate returns <varname>FALSE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:914
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:932
+#, no-c-format
+msgid ""
+"-- A circle within a circle\n"
+"SELECT ST_Contains(smallc, bigc) As smallcontainsbig,\n"
+"           ST_Contains(bigc,smallc) As bigcontainssmall,\n"
+"           ST_Contains(bigc, ST_Union(smallc, bigc)) as bigcontainsunion,\n"
+"           ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion,\n"
+"           ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"           ST_Contains(bigc, ST_ExteriorRing(bigc)) As bigcontainsexterior\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"                         ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As "
+"bigc) As foo;\n"
+"\n"
+"-- Result\n"
+"  smallcontainsbig | bigcontainssmall | bigcontainsunion | bigisunion | "
+"bigcoversexterior | bigcontainsexterior\n"
+"------------------+------------------+------------------+------------"
+"+-------------------+---------------------\n"
+" f                | t                | t                | t          | "
+"t        | f\n"
+"\n"
+"-- Example demonstrating difference between contains and contains properly\n"
+"SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
+"acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
+"   ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+"FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
+"                         ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
+"                         ( ST_Point(1,1) )\n"
+"          ) As foo(geomA);\n"
+"\n"
+"  geomtype    | acontainsa | acontainspropa | acontainsba | acontainspropba\n"
+"--------------+------------+----------------+-------------"
+"+-----------------\n"
+"ST_Polygon    | t          | f              | f           | f\n"
+"ST_LineString | t          | f              | f           | f\n"
+"ST_Point      | t          | t              | f           | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:937
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ContainsProperly\"/>, <xref linkend=\"ST_Covers\"/>, "
+"<xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Equals\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:943
+#, no-c-format
+msgid "ST_ContainsProperly"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:945
+#, no-c-format
+msgid ""
+"Returns true if B intersects the interior of A but not the boundary (or "
+"exterior). A does not contain properly itself, but does contain itself."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:950
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_ContainsProperly</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:965
+#, no-c-format
+msgid ""
+"Returns true if B intersects the interior of A but not the boundary (or "
+"exterior)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:967
+#, no-c-format
+msgid "A does not contain properly itself, but does contain itself."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:968
+#, no-c-format
+msgid ""
+"Every point of the other geometry is a point of this geometry's interior. "
+"The DE-9IM Intersection Matrix for the two geometries matches [T**FF*FF*] "
+"used in <xref linkend=\"ST_Relate\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:972
+#, no-c-format
+msgid ""
+"From JTS docs slightly reworded: The advantage to using this predicate over "
+"<xref linkend=\"ST_Contains\"/> and <xref linkend=\"ST_Intersects\"/> is "
+"that it can be computed efficiently, with no need to compute topology at "
+"individual points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:974
+#, no-c-format
+msgid ""
+"An example use case for this predicate is computing the intersections of a "
+"set of geometries with a large polygonal geometry. Since intersection is a "
+"fairly slow operation, it can be more efficient to use containsProperly to "
+"filter out test geometries which lie wholly inside the area. In these cases "
+"the intersection is known a priori to be exactly the original test geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:984
+#, no-c-format
+msgid "Availability: 1.4.0 - requires GEOS >= 3.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:994
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_ContainsProperly."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1003
+#, no-c-format
+msgid ""
+"--a circle within a circle\n"
+"        SELECT ST_ContainsProperly(smallc, bigc) As smallcontainspropbig,\n"
+"        ST_ContainsProperly(bigc,smallc) As bigcontainspropsmall,\n"
+"        ST_ContainsProperly(bigc, ST_Union(smallc, bigc)) as "
+"bigcontainspropunion,\n"
+"        ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion,\n"
+"        ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"        ST_ContainsProperly(bigc, ST_ExteriorRing(bigc)) As "
+"bigcontainsexterior\n"
+"        FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As "
+"smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+"  smallcontainspropbig | bigcontainspropsmall | bigcontainspropunion | "
+"bigisunion | bigcoversexterior | bigcontainsexterior\n"
+"------------------+------------------+------------------+------------"
+"+-------------------+---------------------\n"
+" f                     | t                    | f                    | "
+"t          | t                 | f\n"
+"\n"
+" --example demonstrating difference between contains and contains properly\n"
+" SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
+"acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
+" ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+" FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
+"                  ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
+"                  ( ST_Point(1,1) )\n"
+"        ) As foo(geomA);\n"
+"\n"
+"  geomtype    | acontainsa | acontainspropa | acontainsba | acontainspropba\n"
+"--------------+------------+----------------+-------------"
+"+-----------------\n"
+"ST_Polygon    | t          | f              | f           | f\n"
+"ST_LineString | t          | f              | f           | f\n"
+"ST_Point      | t          | t              | f           | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1008
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_Contains\"/>, <xref "
+"linkend=\"ST_Covers\"/>, <xref linkend=\"ST_CoveredBy\"/>, <xref linkend="
+"\"ST_Equals\"/>, <xref linkend=\"ST_Relate\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1014
+#, no-c-format
+msgid "ST_Covers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1016
+#, no-c-format
+msgid "Returns 1 (TRUE) if no point in Geometry B is outside Geometry A"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1021
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogpolyA</"
+"parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>geogpointB</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1046
+#, no-c-format
+msgid ""
+"Returns 1 (TRUE) if no point in Geometry/Geography B is outside Geometry/"
+"Geography A"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1056
+#, no-c-format
+msgid "For geography only Polygon covers point is supported."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1063
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Covers."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1068 reference_measure.xml:1140
+#, no-c-format
+msgid "Availability: 1.2.2 - requires GEOS >= 3.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1069
+#, no-c-format
+msgid "Availability: 1.5 - support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1074 reference_measure.xml:1149
+#, no-c-format
+msgid "Not an OGC standard, but Oracle has it too."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1081
+#, no-c-format
+msgid "Geometry example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1082
+#, no-c-format
+msgid ""
+"--a circle covering a circle\n"
+"SELECT ST_Covers(smallc,smallc) As smallinsmall,\n"
+"        ST_Covers(smallc, bigc) As smallcoversbig,\n"
+"        ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"        ST_Contains(bigc, ST_ExteriorRing(bigc)) As bigcontainsexterior\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+" smallinsmall | smallcoversbig | bigcoversexterior | bigcontainsexterior\n"
+"--------------+----------------+-------------------+---------------------\n"
+" t            | f              | t                 | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1083
+#, no-c-format
+msgid "Geeography Example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1084
+#, no-c-format
+msgid ""
+"-- a point with a 300 meter buffer compared to a point, a point and its 10 "
+"meter buffer\n"
+"SELECT ST_Covers(geog_poly, geog_pt) As poly_covers_pt, \n"
+"        ST_Covers(ST_Buffer(geog_pt,10), geog_pt) As buff_10m_covers_cent\n"
+"        FROM (SELECT ST_Buffer(ST_GeogFromText('SRID=4326;POINT(-99.327 "
+"31.4821)'), 300) As geog_poly,\n"
+"                                ST_GeogFromText('SRID=4326;POINT(-99.33 "
+"31.483)') As geog_pt ) As foo;\n"
+"                                \n"
+" poly_covers_pt | buff_10m_covers_cent\n"
+"----------------+------------------\n"
+" f              | t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1089
+#, no-c-format
+msgid ", <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1095
+#, no-c-format
+msgid "ST_CoveredBy"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1097
+#, no-c-format
+msgid ""
+"<refpurpose>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
+"Geometry/Geography B</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1102
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogA</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geogB</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1128
+#, no-c-format
+msgid ""
+"<para>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
+"Geometry/Geography B</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1141
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_CoveredBy."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1156
+#, no-c-format
+msgid ""
+"--a circle coveredby a circle\n"
+"SELECT ST_CoveredBy(smallc,smallc) As smallinsmall,\n"
+"        ST_CoveredBy(smallc, bigc) As smallcoveredbybig,\n"
+"        ST_CoveredBy(ST_ExteriorRing(bigc), bigc) As exteriorcoveredbybig,\n"
+"        ST_Within(ST_ExteriorRing(bigc),bigc) As exeriorwithinbig\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+" smallinsmall | smallcoveredbybig | exteriorcoveredbybig | exeriorwithinbig\n"
+"--------------+-------------------+----------------------"
+"+------------------\n"
+" t            | t                 | t                    | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1161
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1167
+#, no-c-format
+msgid "ST_Crosses"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1169
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the supplied geometries have some, but "
+"not all, interior points in common."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1175
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Crosses</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1188
+#, no-c-format
+msgid ""
+"<function>ST_Crosses</function> takes two geometry objects and returns "
+"<varname>TRUE</varname> if their intersection \"spatially cross\", that is, "
+"the geometries have some, but not all interior points in common. The "
+"intersection of the interiors of the geometries must not be the empty set "
+"and must have a dimensionality less than the the maximum dimension of the "
+"two input geometries. Additionally, the intersection of the two geometries "
+"must not equal either of the source geometries. Otherwise, it returns "
+"<varname>FALSE</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1197
+#, no-c-format
+msgid "In mathematical terms, this is expressed as:"
+msgstr ""
+
+#. Tag: remark
+#: reference_measure.xml:1199
+#, no-c-format
+msgid ""
+"TODO: Insert appropriate MathML markup here or use a gif. Simple HTML markup "
+"does not work well in both IE and Firefox."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1210
+#, no-c-format
+msgid "The DE-9IM Intersection Matrix for the two geometries is:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1214
+#, no-c-format
+msgid ""
+"<markup>T*T******</markup> (for Point/Line, Point/Area, and Line/Area "
+"situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1219
+#, no-c-format
+msgid ""
+"<markup>T*****T**</markup> (for Line/Point, Area/Point, and Area/Line "
+"situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1224
+#, no-c-format
+msgid "<markup>0********</markup> (for Line/Line situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1228
+#, no-c-format
+msgid "For any other combination of dimensions this predicate returns false."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1231
+#, no-c-format
+msgid ""
+"The OpenGIS Simple Features Specification defines this predicate only for "
+"Point/Line, Point/Area, Line/Line, and Line/Area situations. JTS / GEOS "
+"extends the definition to apply to Line/Point, Area/Point and Area/Line "
+"situations as well. This makes the relation symmetric."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1247
+#, no-c-format
+msgid "&sfs_compliant; s2.1.13.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1248
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.29"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1254 reference_measure.xml:2597
+#, no-c-format
+msgid "The following illustrations all return <varname>TRUE</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1266
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1276
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1288
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1298 reference_measure.xml:2617
+#: reference_measure.xml:3188 reference_measure.xml:3198
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1306
+#, no-c-format
+msgid ""
+"Consider a situation where a user has two tables: a table of roads and a "
+"table of highways."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1314
+#, no-c-format
+msgid ""
+"CREATE TABLE roads (\n"
+"  id serial NOT NULL,\n"
+"  the_geom geometry,\n"
+"  CONSTRAINT roads_pkey PRIMARY KEY (road_id)\n"
+");"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1318
+#, no-c-format
+msgid ""
+"CREATE TABLE highways (\n"
+"  id serial NOT NULL,\n"
+"  the_gem geometry,\n"
+"  CONSTRAINT roads_pkey PRIMARY KEY (road_id)\n"
+");"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1325
+#, no-c-format
+msgid ""
+"To determine a list of roads that cross a highway, use a query similiar to:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1329
+#, no-c-format
+msgid ""
+"SELECT roads.id\n"
+"FROM roads, highways\n"
+"WHERE ST_Crosses(roads.the_geom, highways.the_geom);"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1336
+#, no-c-format
+msgid "ST_LineCrossingDirection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1338
+#, no-c-format
+msgid ""
+"Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
+"crossing behavior. 0 is no crossing."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1343
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_LineCrossingDirection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>linestringA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>linestringB</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1354
+#, no-c-format
+msgid ""
+"Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
+"crossing behavior. 0 is no crossing. This is only supported for "
+"<varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1355
+#, no-c-format
+msgid "Definition of integer constants is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1358
+#, no-c-format
+msgid "0: LINE NO CROSS"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1361
+#, no-c-format
+msgid "-1: LINE CROSS LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1364
+#, no-c-format
+msgid "1: LINE CROSS RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1367
+#, no-c-format
+msgid "-2: LINE MULTICROSS END LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1370
+#, no-c-format
+msgid "2: LINE MULTICROSS END RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1373
+#, no-c-format
+msgid "-3: LINE MULTICROSS END SAME FIRST LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1376
+#, no-c-format
+msgid "3: LINE MULTICROSS END SAME FIRST RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1380
+#, no-c-format
+msgid "Availability: 1.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1398
+#, no-c-format
+msgid ""
+"Line 1 (green), Line 2 ball is start point, triangle are end points. Query "
+"below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1402
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+"SELECT\n"
+" ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+" ST_GeomFromText('LINESTRING(171 154,20 140,71 74,161 53)') As line2\n"
+"        ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"           3 |          -3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1412 reference_measure.xml:1426
+#: reference_measure.xml:1440
+#, no-c-format
+msgid ""
+"Line 1 (green), Line 2 (blue) ball is start point, triangle are end points. "
+"Query below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1416
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+" SELECT\n"
+"  ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"  ST_GeomFromText('LINESTRING (171 154, 20 140, 71 74, 2.99 90.16)') As "
+"line2\n"
+") As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"           2 |          -2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1430
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"        ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+" SELECT\n"
+"  ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"  ST_GeomFromText('LINESTRING (20 140, 71 74, 161 53)') As line2\n"
+"  ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"          -1 |          1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1444
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (SELECT\n"
+"        ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"        ST_GeomFromText('LINESTRING(2.99 90.16,71 74,20 140,171 154)') As "
+"line2\n"
+"        ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"          -2 |          2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1452
+#, no-c-format
+msgid ""
+"SELECT s1.gid, s2.gid, ST_LineCrossingDirection(s1.the_geom, s2.the_geom)\n"
+"        FROM streets s1 CROSS JOIN streets s2 ON (s1.gid != s2.gid AND s1."
+"the_geom && s2.the_geom )\n"
+"WHERE ST_CrossingDirection(s1.the_geom, s2.the_geom) > 0;"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1465
+#, no-c-format
+msgid "ST_Disjoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1467
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries do not \"spatially intersect\" - if they do "
+"not share any space together."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1473
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1488
+#, no-c-format
+msgid ""
+"Overlaps, Touches, Within all imply geometries are not spatially disjoint. "
+"If any of the aforementioned returns true, then the geometries are not "
+"spatially disjoint. Disjoint implies false for spatial intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1498
+#, no-c-format
+msgid "This function call does not use indexes"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1505
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - a.Relate(b, 'FF*FF****')"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1507
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.26"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1512
+#, no-c-format
+msgid ""
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" t\n"
+"(1 row)\n"
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1517
+#, no-c-format
+msgid "<para>ST_Intersects</para>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1523
+#, no-c-format
+msgid "ST_Distance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1525
+#, no-c-format
+msgid ""
+"For geometry type Returns the 2-dimensional cartesian minimum distance "
+"(based on spatial ref) between two geometries in projected units. For "
+"geography type defaults to return spheroidal minimum distance between two "
+"geographies in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1529
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Distance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Distance</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>gg1</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>gg2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Distance</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1567
+#, no-c-format
+msgid ""
+"For geometry type returns the 2-dimensional minimum cartesian distance "
+"between two geometries in projected units (spatial ref units). For geography "
+"type defaults to return the minimum distance around WGS 84 spheroid between "
+"two geographies in meters. Pass in false to return answer in sphere instead "
+"of spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1572
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.23"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1573 reference_measure.xml:2039
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1576
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 geography support was introduced in 1.5. Speed "
+"improvements for planar to better handle large or many vertex geometries"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1577 reference_measure.xml:1949
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 improved speed for geography. See <ulink url=\"http://blog."
+"opengeo.org/2012/07/12/making-geography-faster/\">Making Geography faster</"
+"ulink> for details."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1578
+#, no-c-format
+msgid "Enhanced: 2.1.0 - support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1582
+#, no-c-format
+msgid "Basic Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1584
+#, no-c-format
+msgid ""
+"--Geometry example - units in planar degrees 4326 is WGS 84 long lat "
+"unit=degrees\n"
+"SELECT ST_Distance(\n"
+"                ST_GeomFromText('POINT(-72.1235 42.3521)',4326),\n"
+"                ST_GeomFromText('LINESTRING(-72.1260 42.45, -72.123 "
+"42.1546)', 4326)\n"
+"        );\n"
+"st_distance\n"
+"-----------------\n"
+"0.00150567726382282\n"
+"\n"
+"-- Geometry example - units in meters (SRID: 26986 Massachusetts state plane "
+"meters) (most accurate for Massachusetts)\n"
+"SELECT ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),26986),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),26986)\n"
+"                );\n"
+"st_distance\n"
+"-----------------\n"
+"123.797937878454\n"
+"\n"
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (least accurate)\n"
+"SELECT ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),2163),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),2163)\n"
+"                );\n"
+"\n"
+"st_distance\n"
+"------------------\n"
+"126.664256056812"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1587 reference_measure.xml:2131
+#: reference_measure.xml:2182
+#, no-c-format
+msgid "Geography Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1588
+#, no-c-format
+msgid ""
+"-- same as geometry example but note units in meters - use sphere for "
+"slightly faster less accurate\n"
+"SELECT ST_Distance(gg1, gg2) As spheroid_dist, ST_Distance(gg1, gg2, false) "
+"As sphere_dist \n"
+"FROM (SELECT\n"
+"        ST_GeographyFromText('SRID=4326;POINT(-72.1235 42.3521)') As gg1,\n"
+"        ST_GeographyFromText('SRID=4326;LINESTRING(-72.1260 42.45, -72.123 "
+"42.1546)') As gg2\n"
+"        ) As foo  ;\n"
+"\n"
+"  spheroid_dist   |   sphere_dist\n"
+"------------------+------------------\n"
+" 123.802076746848 | 123.475736916397"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1596
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_Distance_Sphere\"/>, "
+"<xref linkend=\"ST_Distance_Spheroid\"/>, <xref linkend=\"ST_MaxDistance\"/"
+">, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1602
+#, no-c-format
+msgid "ST_HausdorffDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1604
+#, no-c-format
+msgid ""
+"Returns the Hausdorff distance between two geometries. Basically a measure "
+"of how similar or dissimilar 2 geometries are. Units are in the units of the "
+"spatial reference system of the geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1609
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_HausdorffDistance</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_HausdorffDistance</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>g2</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>densifyFrac</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1637
+#, no-c-format
+msgid ""
+"Implements algorithm for computing a distance metric which can be thought of "
+"as the \"Discrete Hausdorff Distance\". This is the Hausdorff distance "
+"restricted to discrete points for one of the geometries. <ulink url=\"http://"
+"en.wikipedia.org/wiki/Hausdorff_distance\">Wikipedia article on Hausdorff "
+"distance</ulink> <ulink url=\"http://lin-ear-th-inking.blogspot.com/2009/01/"
+"computing-geometric-similarity.html\">Martin Davis note on how Hausdorff "
+"Distance calculation was used to prove correctness of the "
+"CascadePolygonUnion approach.</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1640
+#, no-c-format
+msgid ""
+"When densifyFrac is specified, this function performs a segment "
+"densification before computing the discrete hausdorff distance. The "
+"densifyFrac parameter sets the fraction by which to densify each segment. "
+"Each segment will be split into a number of equal-length subsegments, whose "
+"fraction of the total length is closest to the given fraction."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1645
+#, no-c-format
+msgid ""
+"The current implementation supports only vertices as the discrete locations. "
+"This could be extended to allow an arbitrary density of points to be used."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1650
+#, no-c-format
+msgid ""
+"This algorithm is NOT equivalent to the standard Hausdorff distance. "
+"However, it computes an approximation that is correct for a large subset of "
+"useful cases. One important part of this subset is Linestrings that are "
+"roughly parallel to each other, and roughly equal in length. This is a "
+"useful metric for line matching."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1655
+#, no-c-format
+msgid "Availability: 1.5.0 - requires GEOS >= 3.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1661
+#, no-c-format
+msgid ""
+"For each building, find the parcel that best represents it. First we require "
+"the parcel intersect with the geometry. DISTINCT ON guarantees we get each "
+"building listed only once, the ORDER BY .. ST_HausdorffDistance gives us a "
+"preference of parcel that is most similar to the building."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1663
+#, no-c-format
+msgid ""
+"SELECT DISTINCT ON(buildings.gid) buildings.gid, parcels.parcel_id \n"
+"   FROM buildings INNER JOIN parcels ON ST_Intersects(buildings.geom,parcels."
+"geom) \n"
+"     ORDER BY buildings.gid, ST_HausdorffDistance(buildings.geom, parcels."
+"geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1665
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_HausdorffDistance(\n"
+"                                'LINESTRING (0 0, 2 0)'::geometry,\n"
+"                                'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                         1\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1666
+#, no-c-format
+msgid ""
+"postgis=# SELECT st_hausdorffdistance('LINESTRING (130 0, 0 0, 0 150)'::"
+"geometry, 'LINESTRING (10 10, 10 150, 130 10)'::geometry, 0.5);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                        70\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1673
+#, no-c-format
+msgid "ST_MaxDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1675
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional largest distance between two geometries in "
+"projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1681
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_MaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1694
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional maximum distance between two geometries in "
+"projected units. If g1 and g2 is the same geometry the function will return "
+"the distance between the two vertices most far from each other in that "
+"geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1704
+#, no-c-format
+msgid "Basic furthest distance the point is to any part of the line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1705
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 "
+"2 )'::geometry);\n"
+"   st_maxdistance\n"
+"-----------------\n"
+" 2\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 2, 2 "
+"2 )'::geometry);\n"
+"  st_maxdistance  \n"
+"------------------\n"
+" 2.82842712474619\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1711
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1717
+#, no-c-format
+msgid "ST_Distance_Sphere"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1719
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat geometries. Uses a "
+"spherical earth and radius of 6370986 meters. Faster than "
+"ST_Distance_Spheroid <xref linkend=\"ST_Distance_Spheroid\"/>, but less "
+"accurate. PostGIS versions prior to 1.5 only implemented for points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1727
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Distance_Sphere</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1738
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat points. Uses a "
+"spherical earth and radius of 6370986 meters. Faster than <xref linkend="
+"\"ST_Distance_Spheroid\"/>, but less accurate. PostGIS Versions prior to 1.5 "
+"only implemented for points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1743
+#, no-c-format
+msgid ""
+"This function currently does not look at the SRID of a geometry and will "
+"always assume its in WGS 84 long lat. Prior versions of this function only "
+"support points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1746 reference_measure.xml:1794
+#, no-c-format
+msgid ""
+"Availability: 1.5 - support for other geometry types besides points was "
+"introduced. Prior versions only work with points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1753
+#, no-c-format
+msgid ""
+"SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,\n"
+"round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As dist_utm11_meters,\n"
+"round(CAST(ST_Distance(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 "
+"38)', 4326)) As numeric),5) As dist_degrees,\n"
+"round(CAST(ST_Distance(ST_Transform(the_geom,32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As min_dist_line_point_meters\n"
+"FROM\n"
+"        (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', "
+"4326) As the_geom) as foo;\n"
+"         dist_meters | dist_utm11_meters | dist_degrees | "
+"min_dist_line_point_meters\n"
+"        -------------+-------------------+--------------"
+"+----------------------------\n"
+"                70424.47 |          70438.00 |      0.72900 "
+"|                   65871.18"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1760
+#, no-c-format
+msgid ", <xref linkend=\"ST_Distance_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1766
+#, no-c-format
+msgid "ST_Distance_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1768
+#, no-c-format
+msgid ""
+"Returns the minimum distance between two lon/lat geometries given a "
+"particular spheroid. PostGIS versions prior to 1.5 only support points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1775
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Distance_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</"
+"parameter></paramdef> <paramdef><type>spheroid </type> "
+"<parameter>measurement_spheroid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1787
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat geometries given a "
+"particular spheroid. See the explanation of spheroids given for <xref "
+"linkend=\"ST_Length_Spheroid\"/>. PostGIS version prior to 1.5 only support "
+"points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1791
+#, no-c-format
+msgid ""
+"This function currently does not look at the SRID of a geometry and will "
+"always assume its represented in the coordinates of the passed in spheroid. "
+"Prior versions of this function only support points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1801
+#, no-c-format
+msgid ""
+"SELECT round(CAST(\n"
+"                ST_Distance_Spheroid(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326), 'SPHEROID[\"WGS "
+"84\",6378137,298.257223563]')\n"
+"                        As numeric),2) As dist_meters_spheroid,\n"
+"                round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As "
+"dist_meters_sphere,\n"
+"round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As dist_utm11_meters\n"
+"FROM\n"
+"        (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', "
+"4326) As the_geom) as foo;\n"
+" dist_meters_spheroid | dist_meters_sphere | dist_utm11_meters\n"
+"----------------------+--------------------+-------------------\n"
+"                         70454.92 |           70424.47 |          70438.00"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1808
+#, no-c-format
+msgid ", <xref linkend=\"ST_Distance_Sphere\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1814
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1816
+#, no-c-format
+msgid ""
+"Returns true if all of the geometries are within the specified distance of "
+"one another"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1822
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_DFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1840
+#, no-c-format
+msgid ""
+"Returns true if the geometries is fully within the specified distance of one "
+"another. The distance is specified in units defined by the spatial reference "
+"system of the geometries. For this function to make sense, the source "
+"geometries must both be of the same coordinate projection, having the same "
+"SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1857
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_DFullyWithin(geom_a, geom_b, 10) as DFullyWithin10, "
+"ST_DWithin(geom_a, geom_b, 10) as DWithin10, ST_DFullyWithin(geom_a, geom_b, "
+"20) as DFullyWithin20 from \n"
+"                (select ST_GeomFromText('POINT(1 1)') as geom_a,"
+"ST_GeomFromText('LINESTRING(1 5, 2 7, 1 9, 14 12)') as geom_b) t1;\n"
+"   \n"
+"-----------------\n"
+" DFullyWithin10 | DWithin10 | DFullyWithin20 |\n"
+"---------------+----------+---------------+\n"
+" f             | t        | t             |"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1863
+#, no-c-format
+msgid ", <xref linkend=\"ST_DWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1869
+#, no-c-format
+msgid "ST_DWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1871
+#, no-c-format
+msgid ""
+"Returns true if the geometries are within the specified distance of one "
+"another. For geometry units are in those of spatial reference and For "
+"geography units are in meters and measurement is defaulted to "
+"use_spheroid=true (measure around spheroid), for faster check, "
+"use_spheroid=false to measure along sphere."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1877
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>distance_meters</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>gg1</parameter></paramdef> "
+"<paramdef><type>geography </type> <parameter>gg2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_meters</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1922
+#, no-c-format
+msgid ""
+"Returns true if the geometries are within the specified distance of one "
+"another."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1924
+#, no-c-format
+msgid ""
+"For Geometries: The distance is specified in units defined by the spatial "
+"reference system of the geometries. For this function to make sense, the "
+"source geometries must both be of the same coordinate projection, having the "
+"same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1929
+#, no-c-format
+msgid ""
+"For geography units are in meters and measurement is defaulted to "
+"use_spheroid=true (measure around WGS 84 spheroid), for faster check, "
+"use_spheroid=false to measure along sphere."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1939
+#, no-c-format
+msgid ""
+"Prior to 1.3, ST_Expand was commonly used in conjunction with && and "
+"ST_Distance to achieve the same effect and in pre-1.3.4 this function was "
+"basically short-hand for that construct. From 1.3.4, ST_DWithin uses a more "
+"short-circuit distance function which should make it more efficient than "
+"prior versions for larger buffer regions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1945
+#, no-c-format
+msgid "Use ST_3DDWithin if you have 3D geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1948
+#, no-c-format
+msgid "Availability: 1.5.0 support for geography was introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1950
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1955
+#, no-c-format
+msgid ""
+"--Find the nearest hospital to each school\n"
+"--that is within 3000 units of the school.\n"
+"-- We do an ST_DWithin search to utilize indexes to limit our search list\n"
+"-- that the non-indexable ST_Distance needs to process\n"
+"--If the units of the spatial reference is meters then units would be "
+"meters\n"
+"SELECT DISTINCT ON (s.gid) s.gid, s.school_name, s.the_geom, h."
+"hospital_name\n"
+"        FROM schools s\n"
+"                LEFT JOIN hospitals h ON ST_DWithin(s.the_geom, h.the_geom, "
+"3000)\n"
+"        ORDER BY s.gid, ST_Distance(s.the_geom, h.the_geom);\n"
+"\n"
+"--The schools with no close hospitals\n"
+"--Find all schools with no hospital within 3000 units\n"
+"--away from the school.  Units is in units of spatial ref (e.g. meters, "
+"feet, degrees)\n"
+"SELECT s.gid, s.school_name\n"
+"        FROM schools s\n"
+"                LEFT JOIN hospitals h ON ST_DWithin(s.the_geom, h.the_geom, "
+"3000)\n"
+"        WHERE h.gid IS NULL;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1961
+#, no-c-format
+msgid ", <xref linkend=\"ST_Expand\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1967
+#, no-c-format
+msgid "ST_Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1969
+#, no-c-format
+msgid ""
+"Returns true if the given geometries represent the same geometry. "
+"Directionality is ignored."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1975
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Equals</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1986
+#, no-c-format
+msgid ""
+"Returns TRUE if the given Geometries are \"spatially equal\". Use this for a "
+"'better' answer than '='. Note by spatially equal we mean ST_Within(A,B) = "
+"true and ST_Within(B,A) = true and also mean ordering of points can be "
+"different but represent the same geometry structure. To verify the order of "
+"points is consistent, use ST_OrderingEquals (it must be noted "
+"ST_OrderingEquals is a little more stringent than simply verifying order of "
+"points are the same)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1995
+#, no-c-format
+msgid ""
+"This function will return false if either geometry is invalid even if they "
+"are binary equal."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1998
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1999
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.24"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2005
+#, no-c-format
+msgid ""
+"SELECT ST_Equals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_equals\n"
+"-----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Equals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 10)')),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_equals\n"
+"-----------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2011
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Reverse\"/>, "
+"<xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2018
+#, no-c-format
+msgid "ST_HasArc"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2020
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if a geometry or geometry collection contains a "
+"circular string</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2025
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_HasArc</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2035
+#, no-c-format
+msgid ""
+"<para>Returns true if a geometry or geometry collection contains a circular "
+"string</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2037
+#, no-c-format
+msgid "Availability: 1.2.3?"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2046
+#, no-c-format
+msgid ""
+"SELECT ST_HasArc(ST_Collect('LINESTRING(1 2, 3 4, 5 6)', 'CIRCULARSTRING(1 "
+"1, 2 3, 4 5, 6 7, 5 6)'));\n"
+"                st_hasarc\n"
+"                --------\n"
+"                t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2053
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineToCurve\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2059
+#, no-c-format
+msgid "<refname>ST_Intersects</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2061
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries/Geography \"spatially intersect in 2D\" - "
+"(share any portion of space) and FALSE if they don't (they are Disjoint). "
+"For geography -- tolerance is 0.00001 meters (so any points that close are "
+"considered to intersect)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2067
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2094
+#, no-c-format
+msgid ""
+"If a geometry or geography shares any portion of space then they intersect. "
+"For geography -- tolerance is 0.00001 meters (so any points that are close "
+"are considered to intersect)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2101
+#, no-c-format
+msgid ""
+"Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument for "
+"geometry version. The geography version supports GEOMETRYCOLLECTION since "
+"its a thin wrapper around distance implementation."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2105
+#, no-c-format
+msgid "Performed by the GEOS module (for geometry), geography is native"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2106
+#, no-c-format
+msgid "Availability: 1.5 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2113
+#, no-c-format
+msgid ""
+"For geography, this function has a distance tolerance of about 0.00001 "
+"meters and uses the sphere rather than spheroid calculation."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2120
+#, no-c-format
+msgid ""
+"&sfs_compliant; s2.1.1.2 //s2.1.13.3 - ST_Intersects(g1, g2 ) --> Not "
+"(ST_Disjoint(g1, g2 ))"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2123
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.27"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2128
+#, no-c-format
+msgid ""
+"SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
+"geometry);\n"
+" st_intersects\n"
+"---------------\n"
+" f\n"
+"(1 row)\n"
+"SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::"
+"geometry);\n"
+" st_intersects\n"
+"---------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2132
+#, no-c-format
+msgid ""
+"SELECT ST_Intersects(\n"
+"                ST_GeographyFromText('SRID=4326;LINESTRING(-43.23456 "
+"72.4567,-43.23456 72.4568)'),\n"
+"                ST_GeographyFromText('SRID=4326;POINT(-43.23456 "
+"72.4567772)')\n"
+"                );\n"
+"\n"
+" st_intersects\n"
+"---------------\n"
+"t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2136
+#, no-c-format
+msgid ", <xref linkend=\"ST_Disjoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2141
+#, no-c-format
+msgid "ST_Length"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2143
+#, no-c-format
+msgid ""
+"Returns the 2d length of the geometry if it is a linestring or "
+"multilinestring. geometry are in units of spatial reference and geography "
+"are in meters (default spheroid)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2146
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Length</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>a_2dlinestring</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Length</function></funcdef> <paramdef><type>geography </"
+"type><parameter>geog</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type><parameter>use_spheroid=true</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2161
+#, no-c-format
+msgid ""
+"For geometry: Returns the cartesian 2D length of the geometry if it is a "
+"linestring, multilinestring, ST_Curve, ST_MultiCurve. 0 is returned for "
+"areal geometries. For areal geometries use ST_Perimeter. Geometry: "
+"Measurements are in the units of the spatial reference system of the "
+"geometry. Geography: Units are in meters and also acts as a Perimeter "
+"function for areal geogs."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2165
+#, no-c-format
+msgid ""
+"Currently for geometry this is an alias for ST_Length2D, but this may change "
+"to support higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2166
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Breaking change -- in prior versions applying this to a MULTI/"
+"POLYGON of type geography would give you the perimeter of the POLYGON/"
+"MULTIPOLYGON. In 2.0.0 this was changed to return 0 to be in line with "
+"geometry behavior. Please use ST_Perimeter if you want the perimeter of a "
+"polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2168
+#, no-c-format
+msgid ""
+"For geography measurement defaults spheroid measurement. To use the faster "
+"less accurate sphere use ST_Length(gg,false);"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2169 reference_measure.xml:2674
+#, no-c-format
+msgid "&sfs_compliant; s2.1.5.1"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2170
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.2, 9.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2171
+#, no-c-format
+msgid "Availability: 1.5.0 geography support was introduced in 1.5."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2177
+#, no-c-format
+msgid ""
+"Return length in feet for line string. Note this is in feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2179
+#, no-c-format
+msgid ""
+"SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 "
+"2967450,743265 2967450,\n"
+"743265.625 2967416,743238 2967416)',2249));\n"
+"st_length\n"
+"---------\n"
+" 122.630744000095\n"
+"\n"
+"\n"
+"--Transforming WGS 84 linestring to Massachusetts state plane meters\n"
+"SELECT ST_Length(\n"
+"        ST_Transform(\n"
+"                ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45, "
+"-72.1240 42.45666, -72.123 42.1546)'),\n"
+"                26986\n"
+"        )\n"
+");\n"
+"st_length\n"
+"---------\n"
+"34309.4563576191"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2183
+#, no-c-format
+msgid "Return length of WGS 84 geography line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2184
+#, no-c-format
+msgid ""
+"-- default calculation is using a sphere rather than spheroid\n"
+"SELECT ST_Length(the_geog) As length_spheroid,  ST_Length(the_geog,false) As "
+"length_sphere\n"
+"FROM (SELECT ST_GeographyFromText(\n"
+"'SRID=4326;LINESTRING(-72.1260 42.45, -72.1240 42.45666, -72.123 42.1546)') "
+"As the_geog)\n"
+" As foo;\n"
+" length_spheroid  |  length_sphere\n"
+"------------------+------------------\n"
+" 34310.5703627305 | 34346.2060960742\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2188
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Length_Spheroid\"/"
+">, <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2194
+#, no-c-format
+msgid "ST_Length2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2196
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring. This is an alias for <varname>ST_Length</"
+"varname></refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2202
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_2dlinestring</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2212
+#, no-c-format
+msgid ""
+"<para>Returns the 2-dimensional length of the geometry if it is a linestring "
+"or multi-linestring. This is an alias for <varname>ST_Length</varname></para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2221
+#, no-c-format
+msgid ", <xref linkend=\"ST_3DLength\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2227
+#, no-c-format
+msgid "ST_3DLength"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2229
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2235
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DLength</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_3dlinestring</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2245
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring. For 2-d lines it will just return the 2-d "
+"length (same as ST_Length and ST_Length2D)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2248
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Length3D"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2255
+#, no-c-format
+msgid ""
+"Return length in feet for a 3D cable. Note this is in feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2257
+#, no-c-format
+msgid ""
+"SELECT ST_3DLength(ST_GeomFromText('LINESTRING(743238 2967416 1,743238 "
+"2967450 1,743265 2967450 3,\n"
+"743265.625 2967416 3,743238 2967416 3)',2249));\n"
+"ST_3DLength\n"
+"-----------\n"
+"122.704716741457"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2264
+#, no-c-format
+msgid ", <xref linkend=\"ST_Length2D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2270
+#, no-c-format
+msgid "ST_Length_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2272
+#, no-c-format
+msgid ""
+"Calculates the 2D or 3D length of a linestring/multilinestring on an "
+"ellipsoid. This is useful if the coordinates of the geometry are in "
+"longitude/latitude and a length is desired without reprojection."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2279
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2290
+#, no-c-format
+msgid ""
+"Calculates the length of a geometry on an ellipsoid. This is useful if the "
+"coordinates of the geometry are in longitude/latitude and a length is "
+"desired without reprojection. The ellipsoid is a separate database type and "
+"can be constructed as follows:"
+msgstr ""
+
+#. Tag: literallayout
+#: reference_measure.xml:2296 reference_measure.xml:2348
+#, no-c-format
+msgid ""
+"SPHEROID[<NAME>,<SEMI-MAJOR\n"
+"                  AXIS>,<INVERSE FLATTENING>]"
+msgstr ""
+
+#. Tag: literallayout
+#: reference_measure.xml:2299 reference_measure.xml:2351
+#, no-c-format
+msgid "SPHEROID[\"GRS_1980\",6378137,298.257222101]"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2300 reference_measure.xml:2352
+#, no-c-format
+msgid "Will return 0 for anything that is not a MULTILINESTRING or LINESTRING"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2309
+#, no-c-format
+msgid ""
+"SELECT ST_Length_Spheroid( geometry_column,\n"
+"                          'SPHEROID[\"GRS_1980\",6378137,298.257222101]' )\n"
+"                          FROM geometry_table;\n"
+"\n"
+"SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
+"        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646\n"
+"\n"
+" --3D\n"
+"SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
+"        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"\n"
+"         tot_len      |    len_line1    |    len_line2\n"
+"------------------+-----------------+------------------\n"
+" 85204.5259107402 | 13986.876097711 | 71217.6498130292"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2316
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_3DLength_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2322
+#, no-c-format
+msgid "ST_Length2D_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2324
+#, no-c-format
+msgid ""
+"Calculates the 2D length of a linestring/multilinestring on an ellipsoid. "
+"This is useful if the coordinates of the geometry are in longitude/latitude "
+"and a length is desired without reprojection."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2331
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length2D_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2342
+#, no-c-format
+msgid ""
+"Calculates the 2D length of a geometry on an ellipsoid. This is useful if "
+"the coordinates of the geometry are in longitude/latitude and a length is "
+"desired without reprojection. The ellipsoid is a separate database type and "
+"can be constructed as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2353
+#, no-c-format
+msgid ""
+"This is much like <xref linkend=\"ST_Length_Spheroid\"/> and <xref linkend="
+"\"ST_3DLength_Spheroid\"/> except it will throw away the Z coordinate in "
+"calculations."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2361
+#, no-c-format
+msgid ""
+"SELECT ST_Length2D_Spheroid( geometry_column,\n"
+"                          'SPHEROID[\"GRS_1980\",6378137,298.257222101]' )\n"
+"                          FROM geometry_table;\n"
+"\n"
+"SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
+"        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646\n"
+"\n"
+" --3D Observe same answer\n"
+"SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
+"        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2368
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length_Spheroid\"/>, <xref linkend="
+"\"ST_3DLength_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2374
+#, no-c-format
+msgid "ST_3DLength_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2376
+#, no-c-format
+msgid ""
+"<refpurpose>Calculates the length of a geometry on an ellipsoid, taking the "
+"elevation into account. This is just an alias for ST_Length_Spheroid.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2382
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DLength_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2393
+#, no-c-format
+msgid ""
+"<para>Calculates the length of a geometry on an ellipsoid, taking the "
+"elevation into account. This is just an alias for ST_Length_Spheroid.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2397
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this used to return 0 for anything that is "
+"not a MULTILINESTRING or LINESTRING and in 2.0.0 on returns the perimeter of "
+"if given a polgon."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2398
+#, no-c-format
+msgid "This function is just an alias for ST_Length_Spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2400
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this used to be called ST_Length3d_Spheroid"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2407
+#, no-c-format
+msgid "See ST_Length_Spheroid"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2414
+#, no-c-format
+msgid ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_Length_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2420
+#, no-c-format
+msgid "ST_LongestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2422
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional longest line points of two geometries. The "
+"function will only return the first longest line if more than one, that the "
+"function finds. The line returned will always start in g1 and end in g2. The "
+"length of the line this function returns will always be the same as "
+"st_maxdistance returns for g1 and g2."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2430
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2445
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional longest line between the points of two geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2463
+#, no-c-format
+msgid "Longest line between point and line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2466
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine('POINT(100 100)'::geometry, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry)\n"
+"        ) As lline;\n"
+"\n"
+"        \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(100 100,98 190)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2474
+#, no-c-format
+msgid "longest line between polygon and polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2477
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine(\n"
+"                ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ) \n"
+"        ) As llinewkt;\n"
+"                \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(20 40,121.111404660392 186.629392246051)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2493
+#, no-c-format
+msgid ""
+"longest straight distance to travel from one part of an elegant city to the "
+"other Note the max distance = to the length of the line."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2497
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LongestLine(c.the_geom, c.the_geom)) As llinewkt, \n"
+"        ST_MaxDistance(c.the_geom,c.the_geom) As max_dist, \n"
+"        ST_Length(ST_LongestLine(c.the_geom, c.the_geom)) As lenll \n"
+"FROM (SELECT ST_BuildArea(ST_Collect(the_geom)) As the_geom\n"
+"        FROM (SELECT ST_Translate(ST_SnapToGrid(ST_Buffer(ST_Point(50 ,"
+"generate_series(50,190, 50) \n"
+"                        ),40, 'quad_segs=2'),1), x, 0)  As the_geom \n"
+"                        FROM generate_series(1,100,50) As x)  AS foo\n"
+") As c;\n"
+"                \n"
+"          llinewkt          |     max_dist     |      lenll\n"
+"---------------------------+------------------+------------------\n"
+" LINESTRING(23 22,129 178) | 188.605408193933 | 188.605408193933"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2508
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_LongestLine\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2514
+#, no-c-format
+msgid "ST_OrderingEquals"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2516
+#, no-c-format
+msgid ""
+"Returns true if the given geometries represent the same geometry and points "
+"are in the same directional order."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2522
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_OrderingEquals</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2533
+#, no-c-format
+msgid ""
+"ST_OrderingEquals compares two geometries and returns t (TRUE) if the "
+"geometries are equal and the coordinates are in the same order; otherwise it "
+"returns f (FALSE)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2538
+#, no-c-format
+msgid ""
+"This function is implemented as per the ArcSDE SQL specification rather than "
+"SQL-MM. http://edndoc.esri.com/arcsde/9.1/sql_api/sqlapi3."
+"htm#ST_OrderingEquals"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2542
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.43"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2548
+#, no-c-format
+msgid ""
+"SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 0 0, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_OrderingEquals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 "
+"10)')),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 0 0, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2552
+#, no-c-format
+msgid ", <xref linkend=\"ST_Reverse\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2558
+#, no-c-format
+msgid "ST_Overlaps"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2560
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries share space, are of the same dimension, but "
+"are not completely contained by each other."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2565
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2576
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries \"spatially overlap\". By that we mean they "
+"intersect, but one does not completely contain another."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2581 reference_measure.xml:2914
+#: reference_measure.xml:2928
+#, no-c-format
+msgid "Do not call with a GeometryCollection as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2583
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Overlaps."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2591 reference_measure.xml:2934
+#: reference_measure.xml:3139
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2592
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.32"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2608
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2632
+#, no-c-format
+msgid ""
+"--a point on a line is contained by the line and is of a lower dimension, "
+"and therefore does not overlap the line\n"
+"                        nor crosses\n"
+"\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b,\n"
+"        ST_Crosses(a,b) As a_crosses_b,\n"
+"                ST_Intersects(a, b) As a_intersects_b, ST_Contains(b,a) As "
+"b_contains_a\n"
+"FROM (SELECT ST_GeomFromText('POINT(1 0.5)') As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"        As foo\n"
+"\n"
+"a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a\n"
+"------------+-------------+----------------+--------------\n"
+"f           | f           | t              | t\n"
+"\n"
+"--a line that is partly contained by circle, but not fully is defined as "
+"intersecting and crossing,\n"
+"-- but since of different dimension it does not overlap\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b,\n"
+"        ST_Intersects(a, b) As a_intersects_b,\n"
+"        ST_Contains(a,b) As a_contains_b\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"        As foo;\n"
+"\n"
+" a_overlap_b | a_crosses_b | a_intersects_b | a_contains_b\n"
+"-------------+-------------+----------------+--------------\n"
+" f           | t           | t              | f\n"
+"\n"
+" -- a 2-dimensional bent hot dog (aka buffered line string) that intersects "
+"a circle,\n"
+" --        but is not fully contained by the circle is defined as "
+"overlapping since they are of the same dimension,\n"
+"--        but it does not cross, because the intersection of the 2 is of the "
+"same dimension\n"
+"--        as the maximum dimension of the 2\n"
+"\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b, "
+"ST_Intersects(a, b) As a_intersects_b,\n"
+"ST_Contains(b,a) As b_contains_a,\n"
+"ST_Dimension(a) As dim_a, ST_Dimension(b) as dim_b, "
+"ST_Dimension(ST_Intersection(a,b)) As dima_intersection_b\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a,\n"
+"        ST_Buffer(ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)'),0.5)  As b)\n"
+"        As foo;\n"
+"\n"
+" a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a | dim_a | dim_b | "
+"dima_intersection_b\n"
+"-------------+-------------+----------------+--------------+-------+-------"
+"+---------------------\n"
+" t           | f           | t              | f            |     2 |     2 "
+"|              2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2640
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Crosses\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Intersects\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2645
+#, no-c-format
+msgid "ST_Perimeter"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2647
+#, no-c-format
+msgid ""
+"Return the length measurement of the boundary of an ST_Surface or "
+"ST_MultiSurface geometry or geography. (Polygon, Multipolygon). geometry "
+"measurement is in units of spatial reference and geography is in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2651
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Perimeter</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Perimeter</"
+"function></funcdef> <paramdef><type>geography </type><parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2667
+#, no-c-format
+msgid ""
+"Returns the 2D perimeter of the geometry/geography if it is a ST_Surface, "
+"ST_MultiSurface (Polygon, Multipolygon). 0 is returned for non-areal "
+"geometries. For linestrings use ST_Length. Measurements for geometry are in "
+"the units of the spatial reference system of the geometry. Measurements for "
+"geography are in meters. If <varname>use_spheroid</varname> is set to false, "
+"then will model earth as a sphere instead of a spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2672
+#, no-c-format
+msgid ""
+"Currently this is an alias for ST_Perimeter2D, but this may change to "
+"support higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2675
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.3, 9.5.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2676
+#, no-c-format
+msgid "Availability 2.0.0: Support for geography was introduced"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2680
+#, no-c-format
+msgid "Examples: Geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2681
+#, no-c-format
+msgid ""
+"Return perimeter in feet for polygon and multipolygon. Note this is in feet "
+"because 2249 is Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2683
+#, no-c-format
+msgid ""
+"SELECT ST_Perimeter(ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,\n"
+"743265.625 2967416,743238 2967416))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 122.630744000095\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((763104.471273676 "
+"2949418.44119003,\n"
+"763104.477769673 2949418.42538203,\n"
+"763104.189609677 2949418.22343004,763104.471273676 2949418.44119003)),\n"
+"((763104.471273676 2949418.44119003,763095.804579742 2949436.33850239,\n"
+"763086.132105649 2949451.46730207,763078.452329651 2949462.11549407,\n"
+"763075.354136904 2949466.17407812,763064.362142565 2949477.64291974,\n"
+"763059.953961626 2949481.28983009,762994.637609571 2949532.04103014,\n"
+"762990.568508415 2949535.06640477,762986.710889563 2949539.61421415,\n"
+"763117.237897679 2949709.50493431,763235.236617789 2949617.95619822,\n"
+"763287.718121842 2949562.20592617,763111.553321674 2949423.91664605,\n"
+"763104.471273676 2949418.44119003)))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 845.227713366825\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2686
+#, no-c-format
+msgid "Examples: Geography"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2687
+#, no-c-format
+msgid ""
+"Return perimeter in meters and feet for polygon and multipolygon. Note this "
+"is geography (WGS 84 long lat)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2688
+#, no-c-format
+msgid ""
+"SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog)/0.3048 As "
+"per_ft \n"
+"FROM ST_GeogFromText('POLYGON((-71.1776848522251 "
+"42.3902896512902,-71.1776843766326 42.3903829478009,\n"
+"-71.1775844305465 42.3903826677917,-71.1775825927231 "
+"42.3902893647987,-71.1776848522251 42.3902896512902))') As geog;\n"
+"\n"
+"   per_meters    |      per_ft\n"
+"-----------------+------------------\n"
+"37.3790462565251 | 122.634666195949\n"
+"\n"
+"\n"
+"-- Multipolygon example --\n"
+"SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog,false) As "
+"per_sphere_meters,  ST_Perimeter(geog)/0.3048 As per_ft \n"
+"FROM ST_GeogFromText('MULTIPOLYGON(((-71.1044543107478 "
+"42.340674480411,-71.1044542869917 42.3406744369506,\n"
+"-71.1044553562977 42.340673886454,-71.1044543107478 42.340674480411)),\n"
+"((-71.1044543107478 42.340674480411,-71.1044860600303 "
+"42.3407237015564,-71.1045215770124 42.3407653385914,\n"
+"-71.1045498002983 42.3407946553165,-71.1045611902745 "
+"42.3408058316308,-71.1046016507427 42.340837442371,\n"
+"-71.104617893173 42.3408475056957,-71.1048586153981 "
+"42.3409875993595,-71.1048736143677 42.3409959528211,\n"
+"-71.1048878050242 42.3410084812078,-71.1044020965803 42.3414730072048,\n"
+"-71.1039672113619 42.3412202916693,-71.1037740497748 42.3410666421308,\n"
+"-71.1044280218456 42.3406894151355,-71.1044543107478 42.340674480411)))') As "
+"geog;\n"
+"\n"
+"    per_meters    | per_sphere_meters |      per_ft\n"
+"------------------+-------------------+------------------\n"
+" 257.634283683311 |  257.412311446337 | 845.256836231335"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2692
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_Length\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2698
+#, no-c-format
+msgid "ST_Perimeter2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2700
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon. This is currently an alias for ST_Perimeter."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2706
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Perimeter2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2716
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2721
+#, no-c-format
+msgid ""
+"This is currently an alias for ST_Perimeter. In future versions ST_Perimeter "
+"may return the highest dimension perimeter for a geometry. This is still "
+"under consideration"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2735
+#, no-c-format
+msgid "ST_3DPerimeter"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2737
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2743
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DPerimeter</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2753
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon. If the geometry is 2-dimensional, then the 2-dimensional "
+"perimeter is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2756
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Perimeter3D"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2762
+#, no-c-format
+msgid ""
+"Perimeter of a slightly elevated polygon in the air in Massachusetts state "
+"plane feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2763
+#, no-c-format
+msgid ""
+"SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), "
+"ST_Perimeter(the_geom) FROM\n"
+"                        (SELECT ST_GeomFromEWKT('SRID=2249;POLYGON((743238 "
+"2967416 2,743238 2967450 1,\n"
+"743265.625 2967416 1,743238 2967416 2))') As the_geom) As foo;\n"
+"\n"
+"  ST_3DPerimeter  |  st_perimeter2d  |   st_perimeter\n"
+"------------------+------------------+------------------\n"
+" 105.465793597674 | 105.432997272188 | 105.432997272188"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2770
+#, no-c-format
+msgid ", <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Perimeter2D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2776
+#, no-c-format
+msgid "ST_PointOnSurface"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2778
+#, no-c-format
+msgid "Returns a <varname>POINT</varname> guaranteed to lie on the surface."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2783
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PointOnSurface</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2795
+#, no-c-format
+msgid "Returns a <varname>POINT</varname> guaranteed to intersect a surface."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2797
+#, no-c-format
+msgid "&sfs_compliant; s3.2.14.2 // s3.2.18.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2798
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3: 8.1.5, 9.5.6. According to the specs, "
+"ST_PointOnSurface works for surface geometries (POLYGONs, MULTIPOLYGONS, "
+"CURVED POLYGONS). So PostGIS seems to be extending what the spec allows "
+"here. Most databases Oracle,DB II, ESRI SDE seem to only support this "
+"function for surfaces. SQL Server 2008 like PostGIS supports for all common "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2807
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PointOnSurface('POINT(0 5)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_PointOnSurface('LINESTRING(0 5, 0 10)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_PointOnSurface('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'::"
+"geometry));\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(2.5 2.5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, "
+"0 10 2)')));\n"
+"   st_asewkt\n"
+"----------------\n"
+" POINT(0 0 1)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2813
+#, no-c-format
+msgid ", <xref linkend=\"ST_Point_Inside_Circle\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2819
+#, no-c-format
+msgid "ST_Project"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2821
+#, no-c-format
+msgid ""
+"Returns a <varname>POINT</varname> projected from a start point using a "
+"distance in meters and bearing (azimuth) in radians."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2826
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_Project</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>distance</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>azimuth</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2842
+#, no-c-format
+msgid ""
+"Returns a <varname>POINT</varname> projected from a start point using an "
+"azimuth (bearing) measured in radians and distance measured in meters."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2843
+#, no-c-format
+msgid ""
+"Distance, azimuth and projection are all aspects of the same operation, "
+"describing (or in the case of projection, constructing) the relationship "
+"between two points on the world."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2844
+#, no-c-format
+msgid ""
+"The azimuth is sometimes called the heading or the bearing in navigation. It "
+"is measured relative to true north (azimuth zero). East is azimuth 90 "
+"(<varname>pi/2</varname>), south is azimuth 180 (<varname>pi</varname>), "
+"west is azimuth 270 (<varname>pi*1.5</varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2845
+#, no-c-format
+msgid "The distance is given in meters."
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2852
+#, no-c-format
+msgid ""
+"Example: Using degrees - projected point 100,000 meters and bearing 45 "
+"degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2854
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, "
+"radians(45.0)));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2858
+#, no-c-format
+msgid ""
+"Example: Using radians - projected point 100,000 meters and bearing pi/4 (45 "
+"degrees)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2860
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, pi()/4));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2866
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <ulink url=\"http://www.postgresql.org/"
+"docs/current/interactive/functions-math.html\">PostgreSQL Math Functions</"
+"ulink>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2872
+#, no-c-format
+msgid "ST_Relate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2874
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is spatially related to anotherGeometry, by "
+"testing for intersections between the Interior, Boundary and Exterior of the "
+"two geometries as specified by the values in the intersectionMatrixPattern. "
+"If no intersectionMatrixPattern is passed in, then returns the maximum "
+"intersectionMatrixPattern that relates the 2 geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2882
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Relate</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>intersectionMatrixPattern</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_Relate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geomB</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>text <function>ST_Relate</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>BoundaryNodeRule</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2908
+#, no-c-format
+msgid ""
+"Version 1: Takes geomA, geomB, intersectionMatrix and Returns 1 (TRUE) if "
+"this Geometry is spatially related to anotherGeometry, by testing for "
+"intersections between the Interior, Boundary and Exterior of the two "
+"geometries as specified by the values in the <ulink url=\"http://en."
+"wikipedia.org/wiki/DE-9IM\">DE-9IM matrix pattern</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2913
+#, no-c-format
+msgid ""
+"This is especially useful for testing compound checks of intersection, "
+"crosses, etc in one step."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2916
+#, no-c-format
+msgid ""
+"This is the \"allowable\" version that returns a boolean, not an integer. "
+"This is defined in OGC spec"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2919
+#, no-c-format
+msgid ""
+"This DOES NOT automagically include an index call. The reason for that is "
+"some relationships are anti e.g. Disjoint. If you are using a relationship "
+"pattern that requires intersection, then include the && index call."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2924
+#, no-c-format
+msgid ""
+"Version 2: Takes geomA and geomB and returns the <xref linkend=\"DE-9IM\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2926
+#, no-c-format
+msgid ""
+"Version 3: same as version 2 bu allows to specify a boundary node rule (1:"
+"OGC/MOD2, 2:Endpoint, 3:MultivalentEndpoint, 4:MonovalentEndpoint)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2930
+#, no-c-format
+msgid "not in OGC spec, but implied. see s2.1.13.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2935
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2936
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 - added support for specifying boundary node rule (requires "
+"GEOS >= 3.0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2943
+#, no-c-format
+msgid ""
+"--Find all compounds that intersect and not touch a poly (interior "
+"intersects)\n"
+"SELECT l.* , b.name As poly_name\n"
+"        FROM polys As b\n"
+"INNER JOIN compounds As l\n"
+"ON (p.the_geom && b.the_geom\n"
+"AND ST_Relate(l.the_geom, b.the_geom,'T********'));\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2));\n"
+"st_relate\n"
+"-----------\n"
+"0FFFFF212\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('LINESTRING(1 2, 3 4)'), "
+"ST_GeometryFromText('LINESTRING(5 6, 7 8)'));\n"
+"st_relate\n"
+"-----------\n"
+"FF1FF0102\n"
+"\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '0FFFFF212');\n"
+"st_relate\n"
+"-----------\n"
+"t\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '*FF*FF212');\n"
+"st_relate\n"
+"-----------\n"
+"t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2950
+#, no-c-format
+msgid ""
+", <xref linkend=\"DE-9IM\"/>, <xref linkend=\"ST_Disjoint\"/>, <xref linkend="
+"\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2956
+#, no-c-format
+msgid "ST_RelateMatch"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2958
+#, no-c-format
+msgid ""
+"Returns true if intersectionMattrixPattern1 implies "
+"intersectionMatrixPattern2"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2963
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_RelateMatch</function></funcdef> "
+"<paramdef><type>text </type> <parameter>intersectionMatrix</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>intersectionMatrixPattern</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2974
+#, no-c-format
+msgid ""
+"Takes intersectionMatrix and intersectionMatrixPattern and Returns true if "
+"the intersectionMatrix satisfies the intersectionMatrixPattern. For more "
+"information refer to <xref linkend=\"DE-9IM\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2977
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2983
+#, no-c-format
+msgid ""
+"SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ;\n"
+"-- result --\n"
+"t\n"
+"--example of common intersection matrix patterns and example matrices\n"
+"-- comparing relationships of involving one invalid geometry and ( a line "
+"and polygon that intersect at interior and boundary)\n"
+"SELECT mat.name, pat.name, ST_RelateMatch(mat.val, pat.val) As satisfied\n"
+"    FROM \n"
+"        ( VALUES ('Equality', 'T1FF1FFF1'),\n"
+"                ('Overlaps', 'T*T***T**'),\n"
+"                ('Within', 'T*F**F***'),\n"
+"                ('Disjoint', 'FF*FF****') As pat(name,val)\n"
+"        CROSS JOIN \n"
+"            (        VALUES ('Self intersections (invalid)', '111111111'),\n"
+"                    ('IE2_BI1_BB0_BE1_EI1_EE2', 'FF2101102'),\n"
+"                    ('IB1_IE1_BB0_BE0_EI2_EI1_EE2', 'F11F00212')\n"
+"            ) As mat(name,val);"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2989
+#, no-c-format
+msgid ", <xref linkend=\"ST_Relate\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2995
+#, no-c-format
+msgid "ST_ShortestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2997
+#, no-c-format
+msgid "Returns the 2-dimensional shortest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3002
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ShortestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3017
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional shortest line between two geometries. The function "
+"will only return the first shortest line if more than one, that the function "
+"finds. If g1 and g2 intersects in just one point the function will return a "
+"line with both start and end in that intersection-point. If g1 and g2 are "
+"intersecting with more than one point the function will return a line with "
+"start and end in the same point but it can be any of the intersecting "
+"points. The line returned will always start in g1 and end in g2. The length "
+"of the line this function returns will always be the same as st_distance "
+"returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3041
+#, no-c-format
+msgid "Shortest line between point and linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3044
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_ShortestLine('POINT(100 100)'::geometry, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry)\n"
+"        ) As sline;\n"
+"\n"
+"        \n"
+"   sline\n"
+"-----------------\n"
+"LINESTRING(100 100,73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3052
+#, no-c-format
+msgid "shortest line between polygon and polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3055
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"                ST_ShortestLine(\n"
+"                        ST_GeomFromText('POLYGON((175 150, 20 40, 50 60, 125 "
+"100, 175 150))'),\n"
+"                        ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                        ) \n"
+"                ) As slinewkt;\n"
+"                \n"
+" LINESTRING(140.752120669087 125.695053378061,121.111404660392 "
+"153.370607753949)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3067
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
+"linkend=\"ST_MaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:3073
+#, no-c-format
+msgid "ST_Touches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:3075
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the geometries have at least one point in "
+"common, but their interiors do not intersect."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3081
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Touches</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3096
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the only points in common between "
+"<parameter>g1</parameter> and <parameter>g2</parameter> lie in the union of "
+"the boundaries of <parameter>g1</parameter> and <parameter>g2</parameter>. "
+"The <function>ST_Touches</function> relation applies to all Area/Area, Line/"
+"Line, Line/Area, Point/Area and Point/Line pairs of relationships, but "
+"<emphasis>not</emphasis> to the Point/Point pair."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3103
+#, no-c-format
+msgid "In mathematical terms, this predicate is expressed as:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3113
+#, no-c-format
+msgid "The allowable DE-9IM Intersection Matrices for the two geometries are:"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3117
+#, no-c-format
+msgid "FT*******"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3121
+#, no-c-format
+msgid "F**T*****"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3125
+#, no-c-format
+msgid "F***T****"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3134
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"using an index, use <function>_ST_Touches</function> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3140
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.28"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3146
+#, no-c-format
+msgid ""
+"The <function>ST_Touches</function> predicate returns <varname>TRUE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3216
+#, no-c-format
+msgid ""
+"SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(1 1)'::"
+"geometry);\n"
+" st_touches\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(0 2)'::"
+"geometry);\n"
+" st_touches\n"
+"------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:3222
+#, no-c-format
+msgid "ST_Within"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:3224
+#, no-c-format
+msgid "Returns true if the geometry A is completely inside geometry B"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3229
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Within</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3244
+#, no-c-format
+msgid ""
+"Returns TRUE if geometry A is completely inside geometry B. For this "
+"function to make sense, the source geometries must both be of the same "
+"coordinate projection, having the same SRID. It is a given that if "
+"ST_Within(A,B) is true and ST_Within(B,A) is true, then the two geometries "
+"are considered spatially equal."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3259
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Within."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3267
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - a.Relate(b, 'T*F**F***')"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3270
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.30"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3275
+#, no-c-format
+msgid ""
+"--a circle within a circle\n"
+"SELECT ST_Within(smallc,smallc) As smallinsmall,\n"
+"        ST_Within(smallc, bigc) As smallinbig,\n"
+"        ST_Within(bigc,smallc) As biginsmall,\n"
+"        ST_Within(ST_Union(smallc, bigc), bigc) as unioninbig,\n"
+"        ST_Within(bigc, ST_Union(smallc, bigc)) as biginunion,\n"
+"        ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion\n"
+"FROM\n"
+"(\n"
+"SELECT ST_Buffer(ST_GeomFromText('POINT(50 50)'), 20) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(50 50)'), 40) As bigc) As foo;\n"
+"--Result\n"
+" smallinsmall | smallinbig | biginsmall | unioninbig | biginunion | "
+"bigisunion\n"
+"--------------+------------+------------+------------+------------"
+"+------------\n"
+" t            | t          | f          | t          | t          | t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3286
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>, <xref linkend=\"ST_IsValid\"/>"
+msgstr ""
diff --git a/doc/po/es/reference_misc.xml.po b/doc/po/es/reference_misc.xml.po
new file mode 100644
index 0000000..942c94d
--- /dev/null
+++ b/doc/po/es/reference_misc.xml.po
@@ -0,0 +1,866 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_misc.xml:3
+#, no-c-format
+msgid "Miscellaneous Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:7
+#, no-c-format
+msgid "ST_Accum"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:9
+#, no-c-format
+msgid "<refpurpose>Aggregate. Constructs an array of geometries.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry[] <function>ST_Accum</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:22 reference_misc.xml:64 reference_misc.xml:106
+#: reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:285
+#: reference_misc.xml:339 reference_misc.xml:392 reference_misc.xml:434
+#: reference_misc.xml:486
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:24
+#, no-c-format
+msgid "<para>Aggregate. Constructs an array of geometries.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:25 reference_misc.xml:68 reference_misc.xml:109
+#: reference_misc.xml:251 reference_misc.xml:305 reference_misc.xml:351
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:353
+#: reference_misc.xml:444
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:27 reference_misc.xml:69 reference_misc.xml:110
+#: reference_misc.xml:183 reference_misc.xml:354 reference_misc.xml:445
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:28 reference_misc.xml:70 reference_misc.xml:111
+#: reference_misc.xml:252 reference_misc.xml:306 reference_misc.xml:355
+#: reference_misc.xml:446
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:29 reference_misc.xml:71 reference_misc.xml:112
+#: reference_misc.xml:253 reference_misc.xml:307 reference_misc.xml:356
+#: reference_misc.xml:447
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:34 reference_misc.xml:76 reference_misc.xml:118
+#: reference_misc.xml:188 reference_misc.xml:258 reference_misc.xml:312
+#: reference_misc.xml:360 reference_misc.xml:404 reference_misc.xml:453
+#: reference_misc.xml:497
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:36
+#, no-c-format
+msgid ""
+"SELECT (ST_Accum(the_geom)) As all_em, ST_AsText((ST_Accum(the_geom))[1]) As "
+"grabone,\n"
+"(ST_Accum(the_geom))[2:4] as grab_rest\n"
+"                        FROM (SELECT ST_MakePoint(a*CAST(random()*10 As "
+"integer), a*CAST(random()*10 As integer), a*CAST(random()*10 As integer)) As "
+"the_geom\n"
+"                                FROM generate_series(1,4) a) As foo;\n"
+"\n"
+"all_em|grabone   | grab_rest\n"
+"\n"
+"-------------------------------------------------------------------------------"
+"+\n"
+"\n"
+" {0101000080000000000000144000000000000024400000000000001040:\n"
+" 0101000080000000000\n"
+"00018400000000000002C400000000000003040:\n"
+"0101000080000000000000354000000000000038400000000000001840:\n"
+"010100008000000000000040400000000000003C400000000000003040} |\n"
+" POINT(5 10) | {010100008000000000000018400000000000002C400000000000003040:\n"
+" 0101000080000000000000354000000000000038400000000000001840:\n"
+" 010100008000000000000040400000000000003C400000000000003040}\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:41 reference_misc.xml:83 reference_misc.xml:125
+#: reference_misc.xml:195 reference_misc.xml:264 reference_misc.xml:318
+#: reference_misc.xml:365 reference_misc.xml:411 reference_misc.xml:460
+#: reference_misc.xml:504
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:49
+#, no-c-format
+msgid "Box2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:51
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a BOX2D representing the maximum extents of the geometry."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:56
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>Box2D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:66
+#, no-c-format
+msgid ""
+"<para>Returns a BOX2D representing the maximum extents of the geometry.</"
+"para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:78
+#, no-c-format
+msgid ""
+"SELECT Box2D(ST_GeomFromText('LINESTRING(1 2, 3 4, 5 6)'));\n"
+"        box2d\n"
+"        ---------\n"
+"        BOX(1 2,5 6)\n"
+"\n"
+"        SELECT Box2D(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"150505,220227 150406)'));\n"
+"        box2d\n"
+"        --------\n"
+"        BOX(220186.984375 150406,220288.25 150506.140625)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:85
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:91
+#, no-c-format
+msgid "Box3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:93
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a BOX3D representing the maximum extents of the geometry."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:98
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:108
+#, no-c-format
+msgid ""
+"<para>Returns a BOX3D representing the maximum extents of the geometry.</"
+"para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:120
+#, no-c-format
+msgid ""
+"SELECT Box3D(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 5, 5 6 5)'));\n"
+"        Box3d\n"
+"        ---------\n"
+"        BOX3D(1 2 3,5 6 5)\n"
+"\n"
+"        SELECT Box3D(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 "
+"150505 1,220227 150406 1)'));\n"
+"        Box3d\n"
+"        --------\n"
+"        BOX3D(220227 150406 1,220268 150415 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:127
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:133
+#, no-c-format
+msgid "ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:135
+#, no-c-format
+msgid ""
+"<refpurpose>Return the 'estimated' extent of the given spatial table. The "
+"estimated is taken from the geometry column's statistics. The current schema "
+"will be used if not specified.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_misc.xml:141
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>box2d <function>ST_EstimatedExtent</function></"
+"funcdef> <paramdef><type>text </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>geocolumn_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_EstimatedExtent</function></funcdef> <paramdef><type>text </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>geocolumn_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:160
+#, no-c-format
+msgid ""
+"<para>Return the 'estimated' extent of the given spatial table. The "
+"estimated is taken from the geometry column's statistics. The current schema "
+"will be used if not specified.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:164
+#, no-c-format
+msgid ""
+"For PostgreSQL>=8.0.0 statistics are gathered by VACUUM ANALYZE and "
+"resulting extent will be about 95% of the real one."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:169
+#, no-c-format
+msgid ""
+"In absence of statistics (empty table or no ANALYZE called) this function "
+"returns NULL. Prior to version 1.5.4 an exception was thrown instead."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:177
+#, no-c-format
+msgid ""
+"For PostgreSQL<8.0.0 statistics are gathered by update_geometry_stats() "
+"and resulting extent will be exact."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:180
+#, no-c-format
+msgid "Availability: 1.0.0"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:181
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Estimated_Extent."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:190
+#, no-c-format
+msgid ""
+"SELECT ST_EstimatedExtent('ny', 'edges', 'the_geom');\n"
+"--result--\n"
+"BOX(-8877653 4912316,-8010225.5 5589284)\n"
+"\n"
+"SELECT ST_EstimatedExtent('feature_poly', 'the_geom');\n"
+"--result--\n"
+"BOX(-124.659652709961 24.6830825805664,-67.7798080444336 49.0012092590332)"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:202
+#, no-c-format
+msgid "ST_Expand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:203
+#, no-c-format
+msgid ""
+"Returns bounding box expanded in all directions from the bounding box of the "
+"input geometry. Uses double-precision"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_misc.xml:207
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Expand</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_Expand</function></funcdef> <paramdef><type>box2d </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>units_to_expand</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>box3d <function>ST_Expand</function></funcdef> "
+"<paramdef><type>box3d </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:231
+#, no-c-format
+msgid ""
+"This function returns a bounding box expanded in all directions from the "
+"bounding box of the input geometry, by an amount specified in the second "
+"argument. Uses double-precision. Very useful for distance() queries, or "
+"bounding box queries to add an index filter to the query."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:235
+#, no-c-format
+msgid ""
+"There are 3 variants of this. The one that takes a geometry will return a "
+"POLYGON geometry representation of the bounding box and is the most commonly "
+"used variant."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:237
+#, no-c-format
+msgid ""
+"ST_Expand is similar in concept to ST_Buffer except while buffer expands the "
+"geometry in all directions, ST_Expand expands the bounding box an x,y,z unit "
+"amount."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:239
+#, no-c-format
+msgid ""
+"Units are in the units of the spatial reference system in use denoted by the "
+"SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:242
+#, no-c-format
+msgid ""
+"Pre 1.3, ST_Expand was used in conjunction with distance to do indexable "
+"queries. Something of the form <code>the_geom && ST_Expand('POINT(10 "
+"20)', 10) AND ST_Distance(the_geom, 'POINT(10 20)') < 10</code> Post 1.2, "
+"this was replaced with the easier ST_DWithin construct."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:248
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 behavior changed to output double precision instead of "
+"float4 coordinates."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:259
+#, no-c-format
+msgid ""
+"Examples below use US National Atlas Equal Area (SRID=2163) which is a meter "
+"projection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:260
+#, no-c-format
+msgid ""
+"<!-- TODO: fix results of documentation to reflect new behavior -->\n"
+"--10 meter expanded box around bbox of a linestring\n"
+"SELECT CAST(ST_Expand(ST_GeomFromText('LINESTRING(2312980 110676,2312923 "
+"110701,2312892 110714)', 2163),10) As box2d);\n"
+"                                         st_expand\n"
+"------------------------------------\n"
+" BOX(2312882 110666,2312990 110724)\n"
+"\n"
+"--10 meter expanded 3d box of a 3d box\n"
+"SELECT ST_Expand(CAST('BOX3D(778783 2951741 1,794875 2970042.61545891 10)' "
+"As box3d),10)\n"
+"                                                          st_expand\n"
+"-----------------------------------------------------\n"
+" BOX3D(778773 2951731 -9,794885 2970052.61545891 20)\n"
+"\n"
+" --10 meter geometry astext rep of a expand box around a point geometry\n"
+" SELECT ST_AsEWKT(ST_Expand(ST_GeomFromEWKT('SRID=2163;POINT(2312980 "
+"110676)'),10));\n"
+"                                                                                        st_asewkt\n"
+"-------------------------------------------------------------------------------------------------\n"
+" SRID=2163;POLYGON((2312970 110666,2312970 110686,2312990 110686,2312990 "
+"110666,2312970 110666))"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:265
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:271
+#, no-c-format
+msgid "ST_Extent"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:272
+#, no-c-format
+msgid ""
+"an aggregate function that returns the bounding box that bounds rows of "
+"geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:277
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Extent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:287
+#, no-c-format
+msgid ""
+"ST_Extent returns a bounding box that encloses a set of geometries. The "
+"ST_Extent function is an \"aggregate\" function in the terminology of SQL. "
+"That means that it operates on lists of data, in the same way the SUM() and "
+"AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:290 reference_misc.xml:344
+#, no-c-format
+msgid ""
+"Since it returns a bounding box, the spatial Units are in the units of the "
+"spatial reference system in use denoted by the SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:291
+#, no-c-format
+msgid ""
+"ST_Extent is similar in concept to Oracle Spatial/Locator's SDO_AGGR_MBR"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:293
+#, no-c-format
+msgid ""
+"Since ST_Extent returns a bounding box, the SRID meta-data is lost. Use "
+"ST_SetSRID to force it back into a geometry with SRID meta data. The "
+"coordinates are in the units of the spatial ref of the orginal geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:298
+#, no-c-format
+msgid ""
+"ST_Extent will return boxes with only an x and y component even with (x,y,z) "
+"coordinate geometries. To maintain x,y,z use ST_3DExtent instead."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:302
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:313
+#, no-c-format
+msgid "Examples below use Massachusetts State Plane ft (SRID=2249)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:314
+#, no-c-format
+msgid ""
+"SELECT ST_Extent(the_geom) as bextent FROM sometable;\n"
+"                                         st_bextent\n"
+"------------------------------------\n"
+"BOX(739651.875 2908247.25,794875.8125 2970042.75)\n"
+"\n"
+"\n"
+"--Return extent of each category of geometries\n"
+"SELECT ST_Extent(the_geom) as bextent\n"
+"FROM sometable\n"
+"GROUP BY category ORDER BY category;\n"
+"\n"
+"                                          bextent                       "
+"|         name\n"
+"----------------------------------------------------+----------------\n"
+" BOX(778783.5625 2951741.25,794875.8125 2970042.75) | A\n"
+" BOX(751315.8125 2919164.75,765202.6875 2935417.25) | B\n"
+" BOX(739651.875 2917394.75,756688.375 2935866)      | C\n"
+"\n"
+" --Force back into a geometry\n"
+" -- and render the extended text representation of that geometry\n"
+"SELECT ST_SetSRID(ST_Extent(the_geom),2249) as bextent FROM sometable;\n"
+"\n"
+"                                bextent\n"
+"--------------------------------------------------------------------------------\n"
+" SRID=2249;POLYGON((739651.875 2908247.25,739651.875 2970042.75,794875.8125 "
+"2970042.75,\n"
+" 794875.8125 2908247.25,739651.875 2908247.25))"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:319
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DExtent\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:325
+#, no-c-format
+msgid "ST_3DExtent"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:326
+#, no-c-format
+msgid ""
+"an aggregate function that returns the box3D bounding box that bounds rows "
+"of geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:331
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>ST_3DExtent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:341
+#, no-c-format
+msgid ""
+"ST_3DExtent returns a box3d (includes Z coordinate) bounding box that "
+"encloses a set of geometries. The ST_3DExtent function is an \"aggregate\" "
+"function in the terminology of SQL. That means that it operates on lists of "
+"data, in the same way the SUM() and AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:347
+#, no-c-format
+msgid ""
+"Since ST_3DExtent returns a bounding box, the SRID meta-data is lost. Use "
+"ST_SetSRID to force it back into a geometry with SRID meta data. The "
+"coordinates are in the units of the spatial ref of the orginal geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:352
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Extent3D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:361
+#, no-c-format
+msgid ""
+"SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
+"FROM (SELECT ST_MakePoint(x,y,z) As the_geom\n"
+"        FROM generate_series(1,3) As x\n"
+"                CROSS JOIN generate_series(1,2) As y\n"
+"                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
+"          b3extent\n"
+"--------------------\n"
+" BOX3D(1 1 0,3 2 2)\n"
+"\n"
+"--Get the extent of various elevated circular strings\n"
+"SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
+"FROM (SELECT "
+"ST_Translate(ST_Force_3DZ(ST_LineToCurve(ST_Buffer(ST_MakePoint(x,"
+"y),1))),0,0,z) As the_geom\n"
+"        FROM generate_series(1,3) As x\n"
+"                CROSS JOIN generate_series(1,2) As y\n"
+"                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
+"\n"
+"        b3extent\n"
+"--------------------\n"
+" BOX3D(1 0 0,4 2 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:366
+#, no-c-format
+msgid ", <xref linkend=\"ST_Force_3DZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:373
+#, no-c-format
+msgid "Find_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:375
+#, no-c-format
+msgid ""
+"The syntax is find_srid(a_db_schema, a_table, a_column) and the function "
+"returns the integer SRID of the specified column by searching through the "
+"GEOMETRY_COLUMNS table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:382
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>Find_SRID</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>a_schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>a_geomfield_name</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:394
+#, no-c-format
+msgid ""
+"The syntax is find_srid(<db/schema>, <table>, <column>) "
+"and the function returns the integer SRID of the specified column by "
+"searching through the GEOMETRY_COLUMNS table. If the geometry column has not "
+"been properly added with the AddGeometryColumns() function, this function "
+"will not work either."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:406
+#, no-c-format
+msgid ""
+"SELECT Find_SRID('public', 'tiger_us_state_2007', 'the_geom_4269');\n"
+"find_srid\n"
+"----------\n"
+"4269"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:419
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:421
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the geometry takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:426
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:436
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the geometry takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:437
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:438
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:440
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:441
+#, no-c-format
+msgid ""
+"pg_column_size returns how much space a geometry would take in a column "
+"considering compression, so may be lower than ST_MemSize"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:448
+#, no-c-format
+msgid ""
+"Changed: 2.2.0 name changed to ST_MemSize to follow naming convention. In "
+"prior versions this function was called ST_Mem_Size, old name deprecated "
+"though still available."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:455
+#, no-c-format
+msgid ""
+"--Return how much byte space Boston takes up  in our Mass data set\n"
+"SELECT pg_size_pretty(SUM(ST_MemSize(the_geom))) as totgeomsum,\n"
+"pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE "
+"0 END)) As bossum,\n"
+"CAST(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 "
+"END)*1.00 /\n"
+"                SUM(ST_MemSize(the_geom))*100 As numeric(10,2)) As perbos\n"
+"FROM towns;\n"
+"\n"
+"totgeomsum        bossum        perbos\n"
+"----------        ------        ------\n"
+"1522 kB                30 kB        1.99\n"
+"\n"
+"\n"
+"SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"150505,220227 150406)'));\n"
+"\n"
+"---\n"
+"73\n"
+"\n"
+"--What percentage of our table is taken up by just the geometry\n"
+"SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, "
+"sum(ST_MemSize(the_geom)) As geomsize,\n"
+"sum(ST_MemSize(the_geom))*1.00/pg_total_relation_size('public."
+"neighborhoods')*100 As pergeom\n"
+"FROM neighborhoods;\n"
+"fulltable_size geomsize  pergeom\n"
+"------------------------------------------------\n"
+"262144         96238         36.71188354492187500000"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:468
+#, no-c-format
+msgid "ST_Point_Inside_Circle"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:470
+#, no-c-format
+msgid ""
+"Is the point geometry insert circle defined by center_x, center_y, radius"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:475
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Point_Inside_Circle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_x</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_y</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:488
+#, no-c-format
+msgid ""
+"The syntax for this functions is point_inside_circle(<geometry>,<"
+"circle_center_x>,<circle_center_y>,<radius>). Returns the "
+"true if the geometry is a point and is inside the circle. Returns false "
+"otherwise."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:492
+#, no-c-format
+msgid "This only works for points as the name suggests"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:499
+#, no-c-format
+msgid ""
+"SELECT ST_Point_Inside_Circle(ST_Point(1,2), 0.5, 2, 3);\n"
+" st_point_inside_circle\n"
+"------------------------\n"
+" t"
+msgstr ""
diff --git a/doc/po/es/reference_operator.xml.po b/doc/po/es/reference_operator.xml.po
new file mode 100644
index 0000000..ffdf6ca
--- /dev/null
+++ b/doc/po/es/reference_operator.xml.po
@@ -0,0 +1,1317 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_operator.xml:3
+#, no-c-format
+msgid "Operators"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:6
+#, no-c-format
+msgid "&&"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:8
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's 2D bounding box intersects B's 2D "
+"bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_operator.xml:12
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>geography </type> <parameter>A</"
+"parameter> </paramdef> <paramdef> <type>geography </type> <parameter>B</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:50 reference_operator.xml:111
+#: reference_operator.xml:176 reference_operator.xml:234
+#: reference_operator.xml:295 reference_operator.xml:353
+#: reference_operator.xml:406 reference_operator.xml:475
+#: reference_operator.xml:546 reference_operator.xml:599
+#: reference_operator.xml:654 reference_operator.xml:712
+#: reference_operator.xml:765 reference_operator.xml:818
+#: reference_operator.xml:883 reference_operator.xml:950
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:52
+#, no-c-format
+msgid ""
+"The <varname>&&</varname> operator returns <varname>TRUE</varname> "
+"if the 2D bounding box of geometry A intersects the 2D bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:54 reference_operator.xml:115
+#: reference_operator.xml:182 reference_operator.xml:243
+#: reference_operator.xml:301 reference_operator.xml:358
+#: reference_operator.xml:411 reference_operator.xml:551
+#: reference_operator.xml:605 reference_operator.xml:660
+#: reference_operator.xml:717 reference_operator.xml:770
+#: reference_operator.xml:823
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:57
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:58
+#, no-c-format
+msgid "Availability: 1.5.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:59 reference_operator.xml:119
+#: reference_operator.xml:240 reference_operator.xml:492
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:60 reference_operator.xml:120
+#: reference_operator.xml:241 reference_operator.xml:493
+#: reference_operator.xml:827
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:64 reference_operator.xml:187
+#: reference_operator.xml:248 reference_operator.xml:306
+#: reference_operator.xml:363 reference_operator.xml:416
+#: reference_operator.xml:502 reference_operator.xml:556
+#: reference_operator.xml:611 reference_operator.xml:665
+#: reference_operator.xml:722 reference_operator.xml:775
+#: reference_operator.xml:843 reference_operator.xml:900
+#: reference_operator.xml:964
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:66
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 && tbl2.column2 AS "
+"overlaps\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (2, 'LINESTRING(0 1, 0 5)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps\n"
+"---------+---------+----------\n"
+"           1 |       3 | t\n"
+"           2 |       3 | f\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:71 reference_operator.xml:139
+#: reference_operator.xml:193 reference_operator.xml:254
+#: reference_operator.xml:312 reference_operator.xml:369
+#: reference_operator.xml:422 reference_operator.xml:508
+#: reference_operator.xml:562 reference_operator.xml:617
+#: reference_operator.xml:671 reference_operator.xml:728
+#: reference_operator.xml:781 reference_operator.xml:848
+#: reference_operator.xml:916 reference_operator.xml:968
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:73
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>, <xref "
+"linkend=\"ST_Geometry_Contain\"/>, <xref linkend=\"ST_Geometry_Contained\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:85
+#, no-c-format
+msgid "&&&"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:87
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's 3D bounding box intersects B's 3D "
+"bounding box."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:92
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&&&</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:113
+#, no-c-format
+msgid ""
+"The <varname>&&&</varname> operator returns <varname>TRUE</"
+"varname> if the n-D bounding box of geometry A intersects the n-D bounding "
+"box of geometry B."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:118
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:121
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:122
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:126
+#, no-c-format
+msgid "Examples: 3D LineStrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:128
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3d, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING Z(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING Z(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING Z(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3d | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:132
+#, no-c-format
+msgid "Examples: 3M LineStrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:134
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3zm, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING M(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING M(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING M(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3zm | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:147
+#, no-c-format
+msgid "&<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:149
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is to the "
+"left of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:154
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:178
+#, no-c-format
+msgid ""
+"The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A overlaps or is to the left of the bounding "
+"box of geometry B, or more accurately, overlaps or is NOT to the right of "
+"the bounding box of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:189
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &< tbl2.column2 AS "
+"overleft\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overleft\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:195
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overbelow\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:205
+#, no-c-format
+msgid "&<|"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:207
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is below B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:212
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:236
+#, no-c-format
+msgid ""
+"The <varname>&<|</varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of geometry A overlaps or is below of the bounding box "
+"of geometry B, or more accurately, overlaps or is NOT above the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:250
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &<| tbl2.column2 AS "
+"overbelow\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overbelow\n"
+"---------+---------+-----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:256
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:266
+#, no-c-format
+msgid "&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:268
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A' bounding box overlaps or is to the "
+"right of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:273
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:297
+#, no-c-format
+msgid ""
+"The <varname>&></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A overlaps or is to the right of the bounding "
+"box of geometry B, or more accurately, overlaps or is NOT to the left of the "
+"bounding box of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:308
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &> tbl2.column2 AS "
+"overright\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overright\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | t\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:314
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:324
+#, no-c-format
+msgid "<<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:326
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly to the left "
+"of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:331
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function><<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:355
+#, no-c-format
+msgid ""
+"The <varname><<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the left of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:365
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 << tbl2.column2 AS "
+"left\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 2, 1 5)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 3)'::geometry),\n"
+"        (3, 'LINESTRING (6 0, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 2, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | left\n"
+"---------+---------+------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:371 reference_operator.xml:564
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Above\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:377
+#, no-c-format
+msgid "<<|"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:379
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly below B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:384
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function><<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:408
+#, no-c-format
+msgid ""
+"The <varname><<|</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly below the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:418
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 <<| tbl2.column2 AS "
+"below\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | below\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:424
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Above\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:430
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:432
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_operator.xml:436
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>=</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>=</function></"
+"funcdef> <paramdef> <type>geography </type> <parameter>A</parameter> </"
+"paramdef> <paramdef> <type>geography </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:477
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry/geography A is the same as the bounding box of "
+"geometry/geography B. PostgreSQL uses the =, <, and > operators "
+"defined for geometries to perform internal orderings and comparison of "
+"geometries (ie. in a GROUP BY or ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:482
+#, no-c-format
+msgid ""
+"This is cause for a lot of confusion. When you compare geometryA = geometryB "
+"it will return true even when the geometries are clearly different IF their "
+"bounding boxes are the same. To check for true equality use <xref linkend="
+"\"ST_OrderingEquals\"/> or <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:489
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:494
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 , the bounding box of geometries was changed to use double "
+"precision instead of float4 precision of prior. The side effect of this is "
+"that in particular points in prior versions that were a little different may "
+"have returned true in prior versions and false in 2.0+ since their float4 "
+"boxes would be the same but there float8 (double precision), would be "
+"different."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:504
+#, no-c-format
+msgid ""
+"SELECT 'LINESTRING(0 0, 0 1, 1 0)'::geometry = 'LINESTRING(1 1, 0 0)'::"
+"geometry;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(column1)\n"
+"FROM ( VALUES\n"
+"        ('LINESTRING(0 0, 1 1)'::geometry),\n"
+"        ('LINESTRING(1 1, 0 0)'::geometry)) AS foo;\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(0 0,1 1)\n"
+" LINESTRING(1 1,0 0)\n"
+"(2 rows)\n"
+"\n"
+"-- Note: the GROUP BY uses the \"=\" to compare for geometry equivalency.\n"
+"SELECT ST_AsText(column1)\n"
+"FROM ( VALUES\n"
+"        ('LINESTRING(0 0, 1 1)'::geometry),\n"
+"        ('LINESTRING(1 1, 0 0)'::geometry)) AS foo\n"
+"GROUP BY column1;\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(0 0,1 1)\n"
+"(1 row)\n"
+"\n"
+"-- In versions prior to 2.0, this used to return true --\n"
+" SELECT ST_GeomFromText('POINT(1707296.37 4820536.77)') =\n"
+"        ST_GeomFromText('POINT(1707296.27 4820536.87)') As pt_intersect;\n"
+"        \n"
+"--pt_intersect --\n"
+"f"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:510
+#, no-c-format
+msgid ", <xref linkend=\"ST_OrderingEquals\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:517
+#, no-c-format
+msgid ">>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:519
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly to the right "
+"of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:524
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:548
+#, no-c-format
+msgid ""
+"The <varname>>></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the right of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:558
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 >> tbl2.column2 AS "
+"right\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | right\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:570
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:572
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:577
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>@</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:601
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry A is completely contained by the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:613
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 @ tbl2.column2 AS contained\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (2 2, 4 4)'::geometry),\n"
+"        (4, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contained\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:619 reference_operator.xml:783
+#, no-c-format
+msgid ", <xref linkend=\"geometry_overlaps\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:625
+#, no-c-format
+msgid "|&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:627
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is above B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:632
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>|&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:656
+#, no-c-format
+msgid ""
+"The <varname>|&></varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of geometry A overlaps or is above the bounding box of "
+"geometry B, or more accurately, overlaps or is NOT below the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:667
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |&> tbl2.column2 AS "
+"overabove\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overabove\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:673
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:683
+#, no-c-format
+msgid "|>>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:685
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly above B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:690
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>|>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:714
+#, no-c-format
+msgid ""
+"The <varname>|>></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the right of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:724
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |>> tbl2.column2 AS "
+"above\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 4, 1 7)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 2)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | above\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:730
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:736
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:738
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box contains B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:743
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:767
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry A completely contains the bounding box of geometry "
+"B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:777
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 ~ tbl2.column2 AS contains\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (1 1, 2 2)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contains\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:789
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:791
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:796
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:820
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry/geography A is the same as the bounding box of "
+"geometry/geography B."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:826
+#, no-c-format
+msgid "Availability: 1.5.0 changed behavior"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:830
+#, no-c-format
+msgid ""
+"This operator has changed behavior in PostGIS 1.5 from testing for actual "
+"geometric equality to only checking for bounding box equality. To complicate "
+"things it also depends on if you have done a hard or soft upgrade which "
+"behavior your database has. To find out which behavior your database has you "
+"can run the query below. To check for true equality use <xref linkend="
+"\"ST_OrderingEquals\"/> or <xref linkend=\"ST_Equals\"/> and to check for "
+"bounding box equality <xref linkend=\"ST_Geometry_EQ\"/>; operator is a "
+"safer option."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:844
+#, no-c-format
+msgid ""
+"select 'LINESTRING(0 0, 1 1)'::geometry ~= 'LINESTRING(0 1, 1 0)'::geometry "
+"as equality;\n"
+" equality   |\n"
+"-----------------+\n"
+"          t    |"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:845
+#, no-c-format
+msgid ""
+"The above can be used to test if you have the new or old behavior of ~= "
+"operator."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:849
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Geometry_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:855
+#, no-c-format
+msgid "<->"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:857
+#, no-c-format
+msgid ""
+"Returns the distance between two points. For point / point checks it uses "
+"floating point accuracy (as opposed to the double precision accuracy of the "
+"underlying point geometry). For other geometry types the distance between "
+"the floating point bounding box centroids is returned. Useful for doing "
+"distance ordering and nearest neighbor limits using KNN gist functionality."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:864
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function><-></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:885
+#, no-c-format
+msgid ""
+"The <varname><-></varname> operator returns distance between two "
+"points read from the spatial index for points (float precision). For other "
+"geometries it returns the distance from centroid of bounding box of "
+"geometries. Useful for doing nearest neighbor <emphasis role=\"strong"
+"\">approximate</emphasis> distance ordering."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:888 reference_operator.xml:954
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries. It is different from other operators that use spatial indexes in "
+"that the spatial index is only used when the operator is in the ORDER BY "
+"clause."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:891
+#, no-c-format
+msgid ""
+"Index only kicks in if one of the geometries is a constant (not in a "
+"subquery/cte). e.g. 'SRID=3005;POINT(1011102 450541)'::geometry instead of a."
+"geom"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:892
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://workshops.opengeo.org/postgis-intro/knn.html"
+"\">OpenGeo workshop: Nearest-Neighbour Searching</ulink> for real live "
+"example."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:894 reference_operator.xml:959
+#, no-c-format
+msgid "Availability: 2.0.0 only available for PostgreSQL 9.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:901
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
+"geometry) as d,edabbr, vaabbr \n"
+"FROM va2005 \n"
+"ORDER BY d limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 5579.67450712005 | ALQ    | 001\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  7691.2205404848 | ALQ    | 003\n"
+" 7900.75451037313 | ALQ    | 122\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  12089.665931705 | ALQ    | 127\n"
+" 18472.5531479404 | ALQ    | 002\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:902
+#, no-c-format
+msgid "Then the KNN raw answer:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:905
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT st_distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
+"geometry) as d,edabbr, vaabbr \n"
+"FROM va2005 \n"
+"ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5579.67450712005 | ALQ    | 001\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  12089.665931705 | ALQ    | 127\n"
+"  24795.264503022 | ALQ    | 124\n"
+" 24587.6584922302 | ALQ    | 123\n"
+" 26764.2555463114 | ALQ    | 125\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:906
+#, no-c-format
+msgid ""
+"Note the misordering in the actual distances and the different entries that "
+"actually show up in the top 10."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:910
+#, no-c-format
+msgid "Finally the hybrid:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:913
+#, no-c-format
+msgid ""
+"<![CDATA[WITH index_query AS (\n"
+"  SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,"
+"edabbr, vaabbr\n"
+"          FROM va2005\n"
+"  ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry LIMIT 100) \n"
+"  SELECT * \n"
+"          FROM index_query \n"
+"  ORDER BY d limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 5579.67450712005 | ALQ    | 001\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  7691.2205404848 | ALQ    | 003\n"
+" 7900.75451037313 | ALQ    | 122\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  12089.665931705 | ALQ    | 127\n"
+" 18472.5531479404 | ALQ    | 002\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:917
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_box\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:923
+#, no-c-format
+msgid "<#>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:925
+#, no-c-format
+msgid ""
+"Returns the distance between bounding box of 2 geometries. For point / point "
+"checks it's almost the same as distance (though may be different since the "
+"bounding box is at floating point accuracy and geometries are double "
+"precision). Useful for doing distance ordering and nearest neighbor limits "
+"using KNN gist functionality."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:931
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function><#></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:952
+#, no-c-format
+msgid ""
+"The <varname><#></varname> KNN GIST operator returns distance between "
+"two floating point bounding boxes read from the spatial index if available. "
+"Useful for doing nearest neighbor <emphasis role=\"strong\">approximate</"
+"emphasis> distance ordering."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:957
+#, no-c-format
+msgid ""
+"Index only kicks in if one of the geometries is a constant e.g. ORDER BY "
+"(ST_GeomFromText('POINT(1 2)') <#> geom) instead of g1.geom <#>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:965
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT *\n"
+"FROM (\n"
+"SELECT b.tlid, b.mtfcc, \n"
+"        b.geom <#> ST_GeomFromText('LINESTRING(746149 2948672,745954 "
+"2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249) As b_dist, \n"
+"                ST_Distance(b.geom, ST_GeomFromText('LINESTRING(746149 "
+"2948672,745954 2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249)) As act_dist\n"
+"    FROM bos_roads As b \n"
+"    ORDER BY b_dist, b.tlid\n"
+"    LIMIT 100) As foo\n"
+"    ORDER BY act_dist, tlid LIMIT 10;]]>\n"
+"\n"
+"   tlid    | mtfcc |      b_dist      |     act_dist\n"
+"-----------+-------+------------------+------------------\n"
+"  85732027 | S1400 |                0 |                0\n"
+"  85732029 | S1400 |                0 |                0\n"
+"  85732031 | S1400 |                0 |                0\n"
+"  85734335 | S1400 |                0 |                0\n"
+"  85736037 | S1400 |                0 |                0\n"
+" 624683742 | S1400 |                0 | 128.528874268666\n"
+"  85719343 | S1400 | 260.839270432962 | 260.839270432962\n"
+"  85741826 | S1400 | 164.759294123275 | 260.839270432962\n"
+"  85732032 | S1400 |           277.75 | 311.830282365264\n"
+"  85735592 | S1400 |           222.25 | 311.830282365264\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:969
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_centroid"
+"\"/>"
+msgstr ""
diff --git a/doc/po/es/reference_output.xml.po b/doc/po/es/reference_output.xml.po
new file mode 100644
index 0000000..68955a1
--- /dev/null
+++ b/doc/po/es/reference_output.xml.po
@@ -0,0 +1,2080 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 21:54+0000\n"
+"PO-Revision-Date: 2014-10-14 22:36+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_output.xml:4
+#, no-c-format
+msgid "Geometry Outputs"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:7
+#, no-c-format
+msgid "ST_AsBinary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:8
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the geometry/geography "
+"without SRID meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:12
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsBinary</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsBinary</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type><parameter>NDR_or_XDR</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:35 reference_output.xml:109 reference_output.xml:162
+#: reference_output.xml:238 reference_output.xml:339 reference_output.xml:440
+#: reference_output.xml:496 reference_output.xml:561 reference_output.xml:604
+#: reference_output.xml:707 reference_output.xml:755 reference_output.xml:813
+#: reference_output.xml:879 reference_output.xml:944 reference_output.xml:988
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:37
+#, no-c-format
+msgid ""
+"Returns the Well-Known Binary representation of the geometry. There are 2 "
+"variants of the function. The first variant takes no endian encoding "
+"parameter and defaults to server machine endian. The second variant takes a "
+"second argument denoting the encoding - using little-endian ('NDR') or big-"
+"endian ('XDR') encoding."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:40 reference_output.xml:113
+#, no-c-format
+msgid ""
+"This is useful in binary cursors to pull data out of the database without "
+"converting it to a string representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:44
+#, no-c-format
+msgid ""
+"The WKB spec does not include the SRID. To get the WKB with SRID format use "
+"ST_AsEWKB"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:47
+#, no-c-format
+msgid ""
+"ST_AsBinary is the reverse of <xref linkend=\"ST_GeomFromWKB\"/> for "
+"geometry. Use <xref linkend=\"ST_GeomFromWKB\"/> to convert to a postgis "
+"geometry from ST_AsBinary representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:51
+#, no-c-format
+msgid ""
+"The default behavior in PostgreSQL 9.0 has been changed to output bytea in "
+"hex encoding. ST_AsBinary is the reverse of <xref linkend=\"ST_GeomFromWKB\"/"
+"> for geometry. If your GUI tools require the old behavior, then SET "
+"bytea_output='escape' in your database."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:55 reference_output.xml:121
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:56
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for higher coordinate dimensions was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:57
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for specifying endian with geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:58 reference_output.xml:279 reference_output.xml:383
+#, no-c-format
+msgid "Availability: 1.5.0 geography support was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:59
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Inputs to this function can not be unknown -- must be "
+"geometry. Constructs such as <code>ST_AsBinary('POINT(1 2)')</code> are no "
+"longer valid and you will get an <code>n st_asbinary(unknown) is not unique "
+"error</code>. Code like that needs to be changed to "
+"<code>ST_AsBinary('POINT(1 2)'::geometry);</code>. If that is not possible, "
+"then install <filename>legacy.sql</filename>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:61 reference_output.xml:771
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:62
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.37"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:63 reference_output.xml:123 reference_output.xml:177
+#: reference_output.xml:449 reference_output.xml:721 reference_output.xml:773
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:64 reference_output.xml:124 reference_output.xml:178
+#: reference_output.xml:390 reference_output.xml:664
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:65 reference_output.xml:125 reference_output.xml:179
+#: reference_output.xml:391 reference_output.xml:667
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:66 reference_output.xml:122 reference_output.xml:176
+#: reference_output.xml:281 reference_output.xml:389 reference_output.xml:448
+#: reference_output.xml:523 reference_output.xml:662
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:71 reference_output.xml:130 reference_output.xml:184
+#: reference_output.xml:285 reference_output.xml:453 reference_output.xml:527
+#: reference_output.xml:580 reference_output.xml:725 reference_output.xml:778
+#: reference_output.xml:842 reference_output.xml:896 reference_output.xml:961
+#: reference_output.xml:997
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:73
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\001\\003\\000\\000\\000\\001\\000\\000\\000\\005\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\360?\\000\\000\\000\\000\\000\\000\n"
+"\\360?\\000\\000\\000\\000\\000\\000\\360?\\000\\000\n"
+"\\000\\000\\000\\000\\360?\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:74
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\000\\000\\000\\000\\003\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\n"
+"\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:79 reference_output.xml:138 reference_output.xml:191
+#: reference_output.xml:409 reference_output.xml:531 reference_output.xml:729
+#: reference_output.xml:785 reference_output.xml:901 reference_output.xml:966
+#: reference_output.xml:1002
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:80
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsTWKB\"/>, <xref "
+"linkend=\"ST_AsText\"/>,"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:90
+#, no-c-format
+msgid "ST_AsEWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:91
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the geometry with SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:95
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:110
+#, no-c-format
+msgid ""
+"Returns the Well-Known Binary representation of the geometry with SRID "
+"metadata. There are 2 variants of the function. The first variant takes no "
+"endian encoding parameter and defaults to little endian. The second variant "
+"takes a second argument denoting the encoding - using little-endian ('NDR') "
+"or big-endian ('XDR') encoding."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:116
+#, no-c-format
+msgid ""
+"The WKB spec does not include the SRID. To get the OGC WKB format use "
+"ST_AsBinary"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:119
+#, no-c-format
+msgid ""
+"ST_AsEWKB is the reverse of ST_GeomFromEWKB. Use ST_GeomFromEWKB to convert "
+"to a postgis geometry from ST_AsEWKB representation."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:132
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                   st_asewkb\n"
+"--------------------------------\n"
+"\\001\\003\\000\\000 \\346\\020\\000\\000\\001\\000\n"
+"\\000\\000\\005\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\360?\\000\\000\\000\\000\\000\\000\\360?\n"
+"\\000\\000\\000\\000\\000\\000\\360?\\000\\000\\000\\000\\000\n"
+"\\000\\360?\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:133
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asewkb\n"
+"--------------------------------\n"
+"\\000 "
+"\\000\\000\\003\\000\\000\\020\\346\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\\n"
+"000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000?\n"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\n"
+"\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:139
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:144
+#, no-c-format
+msgid "ST_AsEWKT"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:145
+#, no-c-format
+msgid ""
+"Return the Well-Known Text (WKT) representation of the geometry with SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:149
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsEWKT</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsEWKT</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:164
+#, no-c-format
+msgid ""
+"Returns the Well-Known Text representation of the geometry prefixed with the "
+"SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:167
+#, no-c-format
+msgid ""
+"The WKT spec does not include the SRID. To get the OGC WKT format use "
+"ST_AsText"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:169 reference_output.xml:763
+#, no-c-format
+msgid ""
+"WKT format does not maintain precision so to prevent floating truncation, "
+"use ST_AsBinary or ST_AsEWKB format for transport."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:173
+#, no-c-format
+msgid ""
+"ST_AsEWKT is the reverse of <xref linkend=\"ST_GeomFromEWKT\"/>. Use <xref "
+"linkend=\"ST_GeomFromEWKT\"/> to convert to a postgis geometry from "
+"ST_AsEWKT representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:175
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Geography, Polyhedral surfaces, Triangles and "
+"TIN was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:186
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT('0103000020E61000000100000005000000000000\n"
+"                        000000000000000000000000000000000000000000000000000000\n"
+"                        F03F000000000000F03F000000000000F03F000000000000F03\n"
+"                        F000000000000000000000000000000000000000000000000'::"
+"geometry);\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"SELECT "
+"ST_AsEWKT('0108000080030000000000000060E30A4100000000785C0241000000000000F03F0000000018\n"
+"E20A4100000000485F024100000000000000400000000018\n"
+"E20A4100000000305C02410000000000000840')\n"
+"\n"
+"--st_asewkt---\n"
+"CIRCULARSTRING(220268 150415 1,220227 150505 2,220227 150406 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:192
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:201
+#, no-c-format
+msgid "ST_AsGeoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:203
+#, no-c-format
+msgid "Return the geometry as a GeoJSON element."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:207
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsGeoJSON</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:240
+#, no-c-format
+msgid ""
+"Return the geometry as a Geometry Javascript Object Notation (GeoJSON) "
+"element. (Cf <ulink url=\"http://geojson.org/geojson-spec.html\">GeoJSON "
+"specifications 1.0</ulink>). 2D and 3D Geometries are both supported. "
+"GeoJSON only support SFS 1.1 geometry type (no curve support for example)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:246
+#, no-c-format
+msgid ""
+"The gj_version parameter is the major version of the GeoJSON spec. If "
+"specified, must be 1. This represents the spec version of GeoJSON."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:248
+#, no-c-format
+msgid ""
+"The third argument may be used to reduce the maximum number of decimal "
+"places used in output (defaults to 15)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:251
+#, no-c-format
+msgid ""
+"The last 'options' argument could be used to add Bbox or Crs in GeoJSON "
+"output:"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:255
+#, no-c-format
+msgid "0: means no option (default value)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:259
+#, no-c-format
+msgid "1: GeoJSON Bbox"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:263
+#, no-c-format
+msgid "2: GeoJSON Short CRS (e.g EPSG:4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:267
+#, no-c-format
+msgid "4: GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:271
+#, no-c-format
+msgid "Version 1: ST_AsGeoJSON(geom) / precision=15 version=1 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:272
+#, no-c-format
+msgid "Version 2: ST_AsGeoJSON(geom, precision) / version=1 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:273
+#, no-c-format
+msgid "Version 3: ST_AsGeoJSON(geom, precision, options) / version=1"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:274
+#, no-c-format
+msgid "Version 4: ST_AsGeoJSON(gj_version, geom) / precision=15 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:275
+#, no-c-format
+msgid "Version 5: ST_AsGeoJSON(gj_version, geom, precision) /options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:276
+#, no-c-format
+msgid "Version 6: ST_AsGeoJSON(gj_version, geom, precision,options)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:278
+#, no-c-format
+msgid "Availability: 1.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:280
+#, no-c-format
+msgid "Changed: 2.0.0 support default args and named args."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:286
+#, no-c-format
+msgid ""
+"GeoJSON format is generally more efficient than other formats for use in "
+"ajax mapping. One popular javascript client that supports this is Open "
+"Layers. Example of its use is <ulink url=\"http://openlayers.org/dev/"
+"examples/vector-formats.html\">OpenLayers GeoJSON Example</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:291
+#, no-c-format
+msgid ""
+"SELECT ST_AsGeoJSON(the_geom) from fe_edges limit 1;\n"
+"                                           st_asgeojson\n"
+"-----------------------------------------------------------------------------------------------------------\n"
+"\n"
+"{\"type\":\"MultiLineString\",\"coordinates\":"
+"[[[-89.734634999999997,31.492072000000000],\n"
+"[-89.734955999999997,31.492237999999997]]]}\n"
+"(1 row)\n"
+"--3d point\n"
+"SELECT ST_AsGeoJSON('LINESTRING(1 2 3, 4 5 6)');\n"
+"\n"
+"st_asgeojson\n"
+"-----------------------------------------------------------------------------------------\n"
+" {\"type\":\"LineString\",\"coordinates\":[[1,2,3],[4,5,6]]}"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:296
+#, no-c-format
+msgid "ST_AsGML"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:297
+#, no-c-format
+msgid "Return the geometry as a GML version 2 or 3 element."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:301
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsGML</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>id=null</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>text <function>ST_AsGML</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>id=null</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:341
+#, no-c-format
+msgid ""
+"Return the geometry as a Geography Markup Language (GML) element. The "
+"version parameter, if specified, may be either 2 or 3. If no version "
+"parameter is specified then the default is assumed to be 2. The precision "
+"argument may be used to reduce the maximum number of decimal places "
+"(<varname>maxdecimaldigits</varname>) used in output (defaults to 15)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:346
+#, no-c-format
+msgid "GML 2 refer to 2.1.2 version, GML 3 to 3.1.1 version"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:347
+#, no-c-format
+msgid ""
+"The 'options' argument is a bitfield. It could be used to define CRS output "
+"type in GML output, and to declare data as lat/lon:"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:351
+#, no-c-format
+msgid "0: GML Short CRS (e.g EPSG:4326), default value"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:355
+#, no-c-format
+msgid "1: GML Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:359
+#, no-c-format
+msgid "2: For GML 3 only, remove srsDimension attribute from output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:363
+#, no-c-format
+msgid ""
+"4: For GML 3 only, use <LineString> rather than <Curve> tag for "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:367
+#, no-c-format
+msgid ""
+"16: Declare that datas are lat/lon (e.g srid=4326). Default is to assume "
+"that data are planars. This option is useful for GML 3.1.1 output only, "
+"related to axis order. So if you set it, it will swap the coordinates so "
+"order is lat lon instead of database lon lat."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:373
+#, no-c-format
+msgid "32: Output the box of the geometry (envelope)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:378
+#, no-c-format
+msgid ""
+"The 'namespace prefix' argument may be used to specify a custom namespace "
+"prefix or no prefix (if empty). If null or omitted 'gml' prefix is used"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:382
+#, no-c-format
+msgid "Availability: 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:384
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 prefix support was introduced. Option 4 for GML3 was "
+"introduced to allow using LineString instead of Curve tag for lines. GML3 "
+"Support for Polyhedral surfaces and TINS was introduced. Option 32 was "
+"introduced to output the box."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:385
+#, no-c-format
+msgid "Changed: 2.0.0 use default named args"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:386
+#, no-c-format
+msgid "Enhanced: 2.1.0 id support was introduced, for GML 3."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:388
+#, no-c-format
+msgid "Only version 3+ of ST_AsGML supports Polyhedral Surfaces and TINS."
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:395
+#, no-c-format
+msgid "Examples: Version 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:396
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsGML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"                st_asgml\n"
+"                --------\n"
+"                <gml:Polygon srsName=\"EPSG:4326\"><gml:outerBoundaryIs><gml:"
+"LinearRing><gml:coordinates>0,0 0,1 1,1 1,0 0,0</gml:coordinates></gml:"
+"LinearRing></gml:outerBoundaryIs></gml:Polygon>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:399
+#, no-c-format
+msgid "Examples: Version 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:400
+#, no-c-format
+msgid ""
+"-- Flip coordinates and output extended EPSG (16 | 1)--\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('POINT(5.234234233242 "
+"6.34534534534)',4326), 5, 17);\n"
+"                        st_asgml\n"
+"                        --------\n"
+"                <gml:Point srsName=\"urn:ogc:def:crs:EPSG::4326\"><gml:"
+"pos>6.34535 5.23423</gml:pos></gml:Point>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:401
+#, no-c-format
+msgid ""
+"-- Output the envelope (32) --\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('LINESTRING(1 2, 3 4, 10 "
+"20)',4326), 5, 32);\n"
+"                st_asgml\n"
+"                --------\n"
+"        <gml:Envelope srsName=\"EPSG:4326\">\n"
+"                <gml:lowerCorner>1 2</gml:lowerCorner>\n"
+"                <gml:upperCorner>10 20</gml:upperCorner>\n"
+"        </gml:Envelope>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:403
+#, no-c-format
+msgid ""
+"-- Output the envelope (32) , reverse (lat lon instead of lon lat) (16), "
+"long srs (1)= 32 | 16 | 1 = 49 --\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('LINESTRING(1 2, 3 4, 10 "
+"20)',4326), 5, 49);\n"
+"        st_asgml\n"
+"        --------\n"
+"<gml:Envelope srsName=\"urn:ogc:def:crs:EPSG::4326\">\n"
+"        <gml:lowerCorner>2 1</gml:lowerCorner>\n"
+"        <gml:upperCorner>20 10</gml:upperCorner>\n"
+"</gml:Envelope>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:405
+#, no-c-format
+msgid ""
+"-- Polyhedral Example --\n"
+"SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )'));\n"
+"        st_asgml\n"
+"        --------\n"
+"<![CDATA[ <gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 0 0 "
+"1 0 1 1 0 1 0 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 0 1 "
+"0 1 1 0 1 0 0 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 1 0 "
+"0 1 0 1 0 0 1 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">1 1 0 1 1 "
+"1 1 0 1 1 0 0 1 1 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 1 0 0 1 "
+"1 1 1 1 1 1 0 0 1 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 1 1 0 "
+"1 1 1 1 0 1 1 0 0 1</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:418
+#, no-c-format
+msgid "ST_AsHEXEWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:420
+#, no-c-format
+msgid ""
+"Returns a Geometry in HEXEWKB format (as text) using either little-endian "
+"(NDR) or big-endian (XDR) encoding."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:425
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsHEXEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>NDRorXDR</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsHEXEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:442
+#, no-c-format
+msgid ""
+"Returns a Geometry in HEXEWKB format (as text) using either little-endian "
+"(NDR) or big-endian (XDR) encoding. If no encoding is specified, then NDR is "
+"used."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:446
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:454
+#, no-c-format
+msgid ""
+"SELECT ST_AsHEXEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"                which gives same answer as\n"
+"\n"
+"                SELECT ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326)::text;\n"
+"\n"
+"                st_ashexewkb\n"
+"                --------\n"
+"                0103000020E6100000010000000500\n"
+"                00000000000000000000000000000000\n"
+"                00000000000000000000000000000000F03F\n"
+"                000000000000F03F000000000000F03F000000000000F03\n"
+"                F000000000000000000000000000000000000000000000000"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:460
+#, no-c-format
+msgid "ST_AsKML"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:462
+#, no-c-format
+msgid ""
+"Return the geometry as a KML element. Several variants. Default version=2, "
+"default precision=15"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:466
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsKML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:498
+#, no-c-format
+msgid ""
+"Return the geometry as a Keyhole Markup Language (KML) element. There are "
+"several variants of this function. maximum number of decimal places used in "
+"output (defaults to 15), version default to 2 and default namespace is no "
+"prefix."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:502
+#, no-c-format
+msgid ""
+"Version 1: ST_AsKML(geom_or_geog, maxdecimaldigits) / version=2 / "
+"maxdecimaldigits=15"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:503
+#, no-c-format
+msgid ""
+"Version 2: ST_AsKML(version, geom_or_geog, maxdecimaldigits, nprefix) "
+"maxdecimaldigits=15 / nprefix=NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:506
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with Proj support. Use <xref linkend="
+"\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:510
+#, no-c-format
+msgid ""
+"Availability: 1.2.2 - later variants that include version param came in 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:513
+#, no-c-format
+msgid "Enhanced: 2.0.0 - Add prefix namespace. Default is no prefix"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:516
+#, no-c-format
+msgid "Changed: 2.0.0 - uses default args and supports named args"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:520
+#, no-c-format
+msgid "AsKML output will not work with geometries that do not have an SRID"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:528
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsKML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"\n"
+"                st_askml\n"
+"                --------\n"
+"                <Polygon><outerBoundaryIs><LinearRing><coordinates>0,0 0,1 "
+"1,1 1,0 0,0</coordinates></LinearRing></outerBoundaryIs></Polygon>\n"
+"\n"
+"                --3d linestring\n"
+"                SELECT ST_AsKML('SRID=4326;LINESTRING(1 2 3, 4 5 6)');\n"
+"                <LineString><coordinates>1,2,3 4,5,6</coordinates></"
+"LineString>\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:533
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsGML\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:538
+#, no-c-format
+msgid "ST_AsSVG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:540
+#, no-c-format
+msgid ""
+"Returns a Geometry in SVG path data given a geometry or geography object."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:544
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:563
+#, no-c-format
+msgid ""
+"Return the geometry as Scalar Vector Graphics (SVG) path data. Use 1 as "
+"second argument to have the path data implemented in terms of relative "
+"moves, the default (or 0) uses absolute moves. Third argument may be used to "
+"reduce the maximum number of decimal digits used in output (defaults to 15). "
+"Point geometries will be rendered as cx/cy when 'rel' arg is 0, x/y when "
+"'rel' is 1. Multipoint geometries are delimited by commas (\",\"), "
+"GeometryCollection geometries are delimited by semicolons (\";\")."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:573
+#, no-c-format
+msgid ""
+"Availability: 1.2.2. Availability: 1.4.0 Changed in PostGIS 1.4.0 to include "
+"L command in absolute path to conform to <ulink url=\"http://www.w3.org/TR/"
+"SVG/paths.html#PathDataBNF\">http://www.w3.org/TR/SVG/paths."
+"html#PathDataBNF</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:576
+#, no-c-format
+msgid "Changed: 2.0.0 to use default args and support named args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:581
+#, no-c-format
+msgid ""
+"SELECT ST_AsSVG(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                st_assvg\n"
+"                --------\n"
+"                M 0 0 L 0 -1 1 -1 1 0 Z"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:587
+#, no-c-format
+msgid "ST_AsX3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:589
+#, no-c-format
+msgid ""
+"Returns a Geometry in X3D xml node element format: ISO-IEC-19776-1.2-"
+"X3DEncodings-XML"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:594
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsX3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:606
+#, no-c-format
+msgid ""
+"Returns a geometry as an X3D xml formatted node element <ulink url=\"http://"
+"www.web3d.org/standards/number/19776-1\">http://www.web3d.org/standards/"
+"number/19776-1</ulink>. If <varname>maxdecimaldigits</varname> (precision) "
+"is not specified then defaults to 15."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:608
+#, no-c-format
+msgid ""
+"There are various options for translating PostGIS geometries to X3D since "
+"X3D geometry types don't map directly to PostGIS geometry types and some "
+"newer X3D types that might be better mappings we ahve avoided since most "
+"rendering tools don't currently support them. These are the mappings we have "
+"settled on. Feel free to post a bug ticket if you have thoughts on the idea "
+"or ways we can allow people to denote their preferred mappings."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:610
+#, no-c-format
+msgid "Below is how we currently map PostGIS 2D/3D types to X3D types"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:617
+#, no-c-format
+msgid "PostGIS Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:618
+#, no-c-format
+msgid "2D X3D Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:619
+#, no-c-format
+msgid "3D X3D Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:624
+#, no-c-format
+msgid "LINESTRING"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:625 reference_output.xml:630
+#, no-c-format
+msgid "not yet implemented - will be PolyLine2D"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:626
+#, no-c-format
+msgid "LineSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:629
+#, no-c-format
+msgid "MULTILINESTRING"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:631
+#, no-c-format
+msgid "IndexedLineSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:634
+#, no-c-format
+msgid "MULTIPOINT"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:635
+#, no-c-format
+msgid "Polypoint2D"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:636
+#, no-c-format
+msgid "PointSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:639
+#, no-c-format
+msgid "POINT"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:640 reference_output.xml:641
+#, no-c-format
+msgid "outputs the space delimited coordinates"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:644
+#, no-c-format
+msgid "(MULTI) POLYGON, POLYHEDRALSURFACE"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:645
+#, no-c-format
+msgid "Invalid X3D markup"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:646
+#, no-c-format
+msgid "IndexedFaceSet (inner rings currently output as another faceset)"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:649
+#, no-c-format
+msgid "<entry>TIN</entry>"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:650
+#, no-c-format
+msgid "TriangleSet2D (Not Yet Implemented)"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:651
+#, no-c-format
+msgid "IndexedTriangleSet"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:656
+#, no-c-format
+msgid ""
+"2D geometry support not yet complete. Inner rings currently just drawn as "
+"separate polygons. We are working on these."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:657
+#, no-c-format
+msgid ""
+"Lots of advancements happening in 3D space particularly with <ulink url="
+"\"http://www.web3d.org/x3d/wiki/index.php/X3D_and_HTML5#Goals:"
+"_X3D_and_HTML5\">X3D Integration with HTML5</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:658
+#, no-c-format
+msgid ""
+"There is also a nice open source X3D viewer you can use to view rendered "
+"geometries. Free Wrl <ulink url=\"http://freewrl.sourceforge.net/\">http://"
+"freewrl.sourceforge.net/</ulink> binaries available for Mac, Linux, and "
+"Windows. Use the FreeWRL_Launcher packaged to view the geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:659
+#, no-c-format
+msgid ""
+"Also check out <ulink url=\"https://github.com/robe2/postgis_x3d_viewer"
+"\">PostGIS minimalist X3D viewer</ulink> that utilizes this function and "
+"<ulink url=\"http://www.x3dom.org/\">x3dDom html/js open source toolkit</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:660
+#, no-c-format
+msgid "Availability: 2.0.0: ISO-IEC-19776-1.2-X3DEncodings-XML"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:672
+#, no-c-format
+msgid ""
+"Example: Create a fully functional X3D document - This will generate a cube "
+"that is viewable in FreeWrl and other X3D viewers."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:673
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/"
+"specifications/x3d-3.0.dtd\">\n"
+"<X3D>\n"
+"  <Scene>\n"
+"    <Transform>\n"
+"      <Shape>\n"
+"       <Appearance>\n"
+"            <Material emissiveColor=''0 0 1''/>   \n"
+"       </Appearance> ' || \n"
+"       ST_AsX3D( ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )')) ||\n"
+"      '</Shape>\n"
+"    </Transform>\n"
+"  </Scene>\n"
+"</X3D>' As x3ddoc;]]>\n"
+"\n"
+"                x3ddoc\n"
+"                --------\n"
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/"
+"specifications/x3d-3.0.dtd\">\n"
+"<X3D>\n"
+"  <Scene>\n"
+"    <Transform>\n"
+"      <Shape>\n"
+"       <Appearance>\n"
+"            <Material emissiveColor='0 0 1'/>   \n"
+"       </Appearance> \n"
+"       <IndexedFaceSet  coordIndex='0 1 2 3 -1 4 5 6 7 -1 8 9 10 11 -1 12 13 "
+"14 15 -1 16 17 18 19 -1 20 21 22 23'>\n"
+"            <Coordinate point='0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 "
+"0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 "
+"0 1 1 0 1 1 1 1 0 1 1' />\n"
+"      </IndexedFaceSet>\n"
+"      </Shape>\n"
+"    </Transform>\n"
+"  </Scene>\n"
+"</X3D>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:676
+#, no-c-format
+msgid "Example: An Octagon elevated 3 Units and decimal precision of 6"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:677
+#, no-c-format
+msgid ""
+"SELECT ST_AsX3D(\n"
+"ST_Translate(\n"
+"    ST_Force_3d(\n"
+"        ST_Buffer(ST_Point(10,10),5, 'quad_segs=2')), 0,0,\n"
+"    3)\n"
+"  ,6) As x3dfrag;\n"
+"\n"
+"x3dfrag\n"
+"--------\n"
+"<![CDATA[<IndexedFaceSet coordIndex=\"0 1 2 3 4 5 6 7\">\n"
+"    <Coordinate point=\"15 10 3 13.535534 6.464466 3 10 5 3 6.464466 "
+"6.464466 3 5 10 3 6.464466 13.535534 3 10 15 3 13.535534 13.535534 3 \" />\n"
+"</IndexedFaceSet>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:680
+#, no-c-format
+msgid "Example: TIN"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:681
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsX3D(ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')) As x3dfrag;]]>\n"
+"\n"
+"                x3dfrag\n"
+"                --------\n"
+"<![CDATA[<IndexedTriangleSet  index='0 1 2 3 4 5'><Coordinate point='0 0 0 0 "
+"0 1 0 1 0 0 0 0 0 1 0 1 1 0'/></IndexedTriangleSet>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:684
+#, no-c-format
+msgid "Example: Closed multilinestring (the boundary of a polygon with holes)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:685
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsX3D(\n"
+"                    ST_GeomFromEWKT('MULTILINESTRING((20 0 10,16 -12 10,0 "
+"-16 10,-12 -12 10,-20 0 10,-12 16 10,0 24 10,16 16 10,20 0 10),\n"
+"  (12 0 10,8 8 10,0 12 10,-8 8 10,-8 0 10,-8 -4 10,0 -8 10,8 -4 10,12 0 "
+"10))') \n"
+") As x3dfrag;]]>\n"
+"\n"
+"                x3dfrag\n"
+"                --------\n"
+"<![CDATA[<IndexedLineSet  coordIndex='0 1 2 3 4 5 6 7 0 -1 8 9 10 11 12 13 "
+"14 15 8'>\n"
+"    <Coordinate point='20 0 10 16 -12 10 0 -16 10 -12 -12 10 -20 0 10 -12 16 "
+"10 0 24 10 16 16 10 12 0 10 8 8 10 0 12 10 -8 8 10 -8 0 10 -8 -4 10 0 -8 10 "
+"8 -4 10 ' />\n"
+" </IndexedLineSet>]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:691
+#, no-c-format
+msgid "ST_GeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:693
+#, no-c-format
+msgid "Return a GeoHash representation of the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:698
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoHash</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxchars=full_precision_of_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:709
+#, no-c-format
+msgid ""
+"Return a GeoHash representation (<ulink url=\"http://en.wikipedia.org/wiki/"
+"Geohash\">http://en.wikipedia.org/wiki/Geohash</ulink>) of the geometry. A "
+"GeoHash encodes a point into a text form that is sortable and searchable "
+"based on prefixing. A shorter GeoHash is a less precise representation of a "
+"point. It can also be thought of as a box, that contains the actual point."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:711
+#, no-c-format
+msgid ""
+"If no <varname>maxchars</varname> is specficified ST_GeoHash returns a "
+"GeoHash based on full precision of the input geometry type. Points return a "
+"GeoHash with 20 characters of precision (about enough to hold the full "
+"double precision of the input). Other types return a GeoHash with a variable "
+"amount of precision, based on the size of the feature. Larger features are "
+"represented with less precision, smaller features with more precision. The "
+"idea is that the box implied by the GeoHash will always contain the input "
+"feature."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:713
+#, no-c-format
+msgid ""
+"If <varname>maxchars</varname> is specified ST_GeoHash returns a GeoHash "
+"with at most that many characters so a possibly lower precision "
+"representation of the input geometry. For non-points, the starting point of "
+"the calculation is the center of the bounding box of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:715
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:718
+#, no-c-format
+msgid ""
+"ST_GeoHash will not work with geometries that are not in geographic (lon/"
+"lat) coordinates."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:726
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326));\n"
+"\n"
+"         st_geohash\n"
+"----------------------\n"
+" c0w3hf1s70w3hf1s70w3\n"
+"\n"
+"SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326),5);\n"
+"\n"
+" st_geohash\n"
+"------------\n"
+" c0w3h\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:737
+#, no-c-format
+msgid "ST_AsText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:738
+#, no-c-format
+msgid ""
+"Return the Well-Known Text (WKT) representation of the geometry/geography "
+"without SRID metadata."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:742
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsText</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:757
+#, no-c-format
+msgid "Returns the Well-Known Text representation of the geometry/geography."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:760
+#, no-c-format
+msgid ""
+"The WKT spec does not include the SRID. To get the SRID as part of the data, "
+"use the non-standard PostGIS <xref linkend=\"ST_AsEWKT\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:767
+#, no-c-format
+msgid ""
+"ST_AsText is the reverse of <xref linkend=\"ST_GeomFromText\"/>. Use <xref "
+"linkend=\"ST_GeomFromText\"/> to convert to a postgis geometry from "
+"ST_AsText representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:770
+#, no-c-format
+msgid "Availability: 1.5 - support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:772
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:780
+#, no-c-format
+msgid ""
+"SELECT ST_AsText('01030000000100000005000000000000000000\n"
+"000000000000000000000000000000000000000000000000\n"
+"F03F000000000000F03F000000000000F03F000000000000F03\n"
+"F000000000000000000000000000000000000000000000000');\n"
+"\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:787
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:794
+#, no-c-format
+msgid "ST_AsLatLonText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:795
+#, no-c-format
+msgid "Return the Degrees, Minutes, Seconds representation of the given point."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:799
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsLatLonText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsLatLonText</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>format</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:815
+#, no-c-format
+msgid "Returns the Degrees, Minutes, Seconds representation of the point."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:818
+#, no-c-format
+msgid ""
+"It is assumed the point is in a lat/lon projection. The X (lon) and Y (lat) "
+"coordinates are normalized in the output to the \"normal\" range (-180 to "
+"+180 for lon, -90 to +90 for lat)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:821
+#, no-c-format
+msgid ""
+"The text parameter is a format string containing the format for the "
+"resulting text, similar to a date format string. Valid tokens are \"D\" for "
+"degrees, \"M\" for minutes, \"S\" for seconds, and \"C\" for cardinal "
+"direction (NSEW). DMS tokens may be repeated to indicate desired width and "
+"precision (\"SSS.SSSS\" means \" 1.0023\")."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:826
+#, no-c-format
+msgid ""
+"\"M\", \"S\", and \"C\" are optional. If \"C\" is omitted, degrees are shown "
+"with a \"-\" sign if south or west. If \"S\" is omitted, minutes will be "
+"shown as decimal with as many digits of precision as you specify. If \"M\" "
+"is also omitted, degrees are shown as decimal with as many digits precision "
+"as you specify."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:831
+#, no-c-format
+msgid ""
+"If the format string is omitted (or zero-length) a default format will be "
+"used."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:837
+#, no-c-format
+msgid "Availability: 2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:843
+#, no-c-format
+msgid "Default format."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:844
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:845
+#, no-c-format
+msgid "Providing a format (same as the default)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:846
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"C'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:847
+#, no-c-format
+msgid "Characters other than D, M, S, C and . are just passed through."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:848
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D degrees, M "
+"minutes, S seconds to the C'));\n"
+"                                   st_aslatlontext                                    \n"
+"--------------------------------------------------------------------------------------\n"
+" 2 degrees, 19 minutes, 30 seconds to the S 3 degrees, 14 minutes, 3 seconds "
+"to the W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:849
+#, no-c-format
+msgid "Signed degrees instead of cardinal directions."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:850
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" -2°19'29.928\" -3°14'3.243\""
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:851
+#, no-c-format
+msgid "Decimal degrees."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:852
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees "
+"C'));\n"
+"          st_aslatlontext          \n"
+"-----------------------------------\n"
+" 2.3250 degrees S 3.2342 degrees W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:853
+#, no-c-format
+msgid "Excessively large values are normalized."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:854
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));\n"
+"        st_aslatlontext        \n"
+"-------------------------------\n"
+" 72°19'29.928\"S 57°45'56.757\"E"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:862
+#, no-c-format
+msgid "ST_AsTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:863
+#, no-c-format
+msgid "Returns the geometry as TWKB, Tiny WKB"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:868
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsTWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID=null</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>include "
+"sizes=false</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include bounding boxes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:880 reference_output.xml:946
+#, no-c-format
+msgid ""
+"Returns the geometry in TWKB format. TWKB is a new compressed binary format."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:881 reference_output.xml:948
+#, no-c-format
+msgid ""
+"The second parameter is an integer used to define the number of coordinate "
+"decimals in the output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:882 reference_output.xml:949
+#, no-c-format
+msgid ""
+"The third parameter is optional. It is used to give each TWKB-geometry an "
+"unique ID"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:883 reference_output.xml:950
+#, no-c-format
+msgid ""
+"The fourth parameter is optional. If it is set to true, the size of the "
+"geometry is included"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:885
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/TWKB/Specification\">https://github.com/TWKB/Specification</"
+"ulink> , and code for building a client can be found <ulink url=\"https://"
+"github.com/TWKB/twkb.js\">https://github.com/TWKB/twkb.js</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:888
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So PointM and PointZ will give "
+"the same twkb representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:891 reference_output.xml:956 reference_output.xml:993
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:897
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKB('LINESTRING(1 1,5 5)'::geometry,0,1);\n"
+"                 st_astwkb                  \n"
+"--------------------------------------------\n"
+"\\x0142020202020808"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:902 reference_output.xml:967
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_AsEWKB\"/>, <xref "
+"linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:908
+#, no-c-format
+msgid "ST_AsTWKBAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:909
+#, no-c-format
+msgid "Aggregates the geometries and returns as TWKB"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:913
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>include sizes</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include sizes</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>include bounding boxes</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:947
+#, no-c-format
+msgid ""
+"This is the aggregate version of ST_AsTWKB. It aggregates and returns the "
+"geometry in TWKB-format. In the resulting TWKB-geometry each individual ID "
+"of the input geometries is stored."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:952
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/nicklasaven/TWKB\">https://github.com/nicklasaven/TWKB</ulink> , "
+"and code for building a client can be found <ulink url=\"https://github.com/"
+"nicklasaven/twkb_web\">https://github.com/nicklasaven/twkb_web</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:962
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKBAgg(geom,0,id) FROM\n"
+"(SELECT 'LINESTRING(1 1,5 5)'::geometry geom, 1 AS id\n"
+"UNION ALL\n"
+"SELECT 'LINESTRING(6 5, 1 7)'::geometry AS geom, 2 AS id) foo;\n"
+"                               st_astwkbagg                                \n"
+"----------------------------------------------------------------------------\n"
+"\\x015602020202020808040202000904"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:973
+#, no-c-format
+msgid "ST_AsEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:974
+#, no-c-format
+msgid "Returns an Encoded Polyline from a LineString geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:979
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsEncodedPolyline</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:990
+#, no-c-format
+msgid "Returns the geometry as an Encoded Polyline."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:998
+#, no-c-format
+msgid ""
+"ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 "
+"40.7,-126.453 43.252)'));\n"
+"--result--\n"
+"|_p~iF~ps|U_ulLnnqC_mqNvxq`@"
+msgstr ""
diff --git a/doc/po/es/reference_processing.xml.po b/doc/po/es/reference_processing.xml.po
new file mode 100644
index 0000000..185279e
--- /dev/null
+++ b/doc/po/es/reference_processing.xml.po
@@ -0,0 +1,3988 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_processing.xml:3
+#, no-c-format
+msgid "Geometry Processing"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:6
+#, no-c-format
+msgid "ST_Buffer"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:8
+#, no-c-format
+msgid ""
+"(T) For geometry: Returns a geometry that represents all points whose "
+"distance from this Geometry is less than or equal to distance. Calculations "
+"are in the Spatial Reference System of this Geometry. For geography: Uses a "
+"planar transform wrapper. Introduced in 1.5 support for different end cap "
+"and mitre settings to control shape. buffer_style options: quad_segs=#,"
+"endcap=round|flat|square,join=round|mitre|bevel,mitre_limit=#.#"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:16
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Buffer</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius_of_buffer</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Buffer</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>num_seg_quarter_circle</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>buffer_style_parameters</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geography <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer_in_meters</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:47 reference_processing.xml:221
+#: reference_processing.xml:300 reference_processing.xml:355
+#: reference_processing.xml:421 reference_processing.xml:570
+#: reference_processing.xml:638 reference_processing.xml:686
+#: reference_processing.xml:785 reference_processing.xml:865
+#: reference_processing.xml:923 reference_processing.xml:992
+#: reference_processing.xml:1039 reference_processing.xml:1091
+#: reference_processing.xml:1156 reference_processing.xml:1198
+#: reference_processing.xml:1257 reference_processing.xml:1304
+#: reference_processing.xml:1363 reference_processing.xml:1415
+#: reference_processing.xml:1469 reference_processing.xml:1622
+#: reference_processing.xml:1658 reference_processing.xml:1735
+#: reference_processing.xml:1785 reference_processing.xml:1830
+#: reference_processing.xml:1872 reference_processing.xml:1984
+#: reference_processing.xml:2077 reference_processing.xml:2146
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:49
+#, no-c-format
+msgid ""
+"Returns a geometry/geography that represents all points whose distance from "
+"this Geometry/geography is less than or equal to distance."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:51
+#, no-c-format
+msgid ""
+"Geometry: Calculations are in the Spatial Reference System of the geometry. "
+"Introduced in 1.5 support for different end cap and mitre settings to "
+"control shape."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:54
+#, no-c-format
+msgid ""
+"Negative radii: For polygons, a negative radius can be used, which will "
+"shrink the polygon rather than expanding it."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:55
+#, no-c-format
+msgid ""
+"Geography: For geography this is really a thin wrapper around the geometry "
+"implementation. It first determines the best SRID that fits the bounding box "
+"of the geography object (favoring UTM, Lambert Azimuthal Equal Area (LAEA) "
+"north/south pole, and falling back on mercator in worst case scenario) and "
+"then buffers in that planar spatial ref and retransforms back to WGS84 "
+"geography."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:57
+#, no-c-format
+msgid ""
+"For geography this may not behave as expected if object is sufficiently "
+"large that it falls between two UTM zones or crosses the dateline"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:59
+#, no-c-format
+msgid ""
+"Availability: 1.5 - ST_Buffer was enhanced to support different endcaps and "
+"join types. These are useful for example to convert road linestrings into "
+"polygon roads with flat or square edges instead of rounded edges. Thin "
+"wrapper for geography was added. - requires GEOS >= 3.2 to take advantage "
+"of advanced geometry functionality."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:62
+#, no-c-format
+msgid ""
+"The optional third parameter (currently only applies to geometry) can either "
+"specify number of segments used to approximate a quarter circle (integer "
+"case, defaults to 8) or a list of blank-separated key=value pairs (string "
+"case) to tweak operations as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:66 reference_processing.xml:1492
+#, no-c-format
+msgid ""
+"'quad_segs=#' : number of segments used to approximate a quarter circle "
+"(defaults to 8)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:69
+#, no-c-format
+msgid ""
+"'endcap=round|flat|square' : endcap style (defaults to \"round\", needs "
+"GEOS-3.2 or higher for a different value). 'butt' is also accepted as a "
+"synonym for 'flat'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:72
+#, no-c-format
+msgid ""
+"'join=round|mitre|bevel' : join style (defaults to \"round\", needs GEOS-3.2 "
+"or higher for a different value). 'miter' is also accepted as a synonym for "
+"'mitre'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:75
+#, no-c-format
+msgid ""
+"'mitre_limit=#.#' : mitre ratio limit (only affects mitered join style). "
+"'miter_limit' is also accepted as a synonym for 'mitre_limit'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:80
+#, no-c-format
+msgid "Units of radius are measured in units of the spatial reference system."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:81
+#, no-c-format
+msgid ""
+"The inputs can be POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
+"POLYGONS, MULTIPOLYGONS, and GeometryCollections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:82
+#, no-c-format
+msgid ""
+"This function ignores the third dimension (z) and will always give a 2-d "
+"buffer even when presented with a 3d-geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:84 reference_processing.xml:309
+#: reference_processing.xml:1509 reference_processing.xml:1839
+#: reference_processing.xml:2097
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:85 reference_processing.xml:589
+#: reference_processing.xml:796 reference_processing.xml:1116
+#: reference_processing.xml:1995 reference_processing.xml:2106
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:86
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.17"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:88
+#, no-c-format
+msgid ""
+"People often make the mistake of using this function to try to do radius "
+"searches. Creating a buffer to to a radius search is slow and pointless. Use "
+"<xref linkend=\"ST_DWithin\"/> instead."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:93 reference_processing.xml:238
+#: reference_processing.xml:317 reference_processing.xml:391
+#: reference_processing.xml:459 reference_processing.xml:595
+#: reference_processing.xml:652 reference_processing.xml:803
+#: reference_processing.xml:1007 reference_processing.xml:1120
+#: reference_processing.xml:1273 reference_processing.xml:1321
+#: reference_processing.xml:1432 reference_processing.xml:1518
+#: reference_processing.xml:1755 reference_processing.xml:1801
+#: reference_processing.xml:1845 reference_processing.xml:1888
+#: reference_processing.xml:2003 reference_processing.xml:2113
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:104
+#, no-c-format
+msgid "quad_segs=8 (default)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:107
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=8');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:115
+#, no-c-format
+msgid "quad_segs=2 (lame)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:127
+#, no-c-format
+msgid "endcap=round join=round (default)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:130
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=round join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:138
+#, no-c-format
+msgid "endcap=square"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:141
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=square join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:149
+#, no-c-format
+msgid "endcap=flat"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:152
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=flat join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:161
+#, no-c-format
+msgid "join=bevel"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:164
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=bevel');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:172
+#, no-c-format
+msgid "join=mitre mitre_limit=5.0 (default mitre limit)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:175
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=mitre mitre_limit=5.0');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:183
+#, no-c-format
+msgid "join=mitre mitre_limit=1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:186
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=mitre mitre_limit=1.0');"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:193
+#, no-c-format
+msgid ""
+"--A buffered point approximates a circle\n"
+"-- A buffered point forcing approximation of (see diagram)\n"
+"-- 2 points per circle is poly with 8 sides (see diagram)\n"
+"SELECT ST_NPoints(ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50)) As "
+"promisingcircle_pcount,\n"
+"ST_NPoints(ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50, 2)) As "
+"lamecircle_pcount;\n"
+"\n"
+"promisingcircle_pcount | lamecircle_pcount\n"
+"------------------------+-------------------\n"
+"                         33 |                9\n"
+"\n"
+"--A lighter but lamer circle\n"
+"-- only 2 points per quarter circle is an octagon\n"
+"--Below is a 100 meter octagon\n"
+"-- Note coordinates are in NAD 83 long lat which we transform\n"
+"to Mass state plane meter and then buffer to get measurements in meters;\n"
+"SELECT ST_AsText(ST_Buffer(\n"
+"ST_Transform(\n"
+"ST_SetSRID(ST_MakePoint(-71.063526, 42.35785),4269), 26986)\n"
+",100,2)) As octagon;\n"
+"----------------------\n"
+"POLYGON((236057.59057465 900908.759918696,236028.301252769 "
+"900838.049240578,235\n"
+"957.59057465 900808.759918696,235886.879896532 "
+"900838.049240578,235857.59057465\n"
+"900908.759918696,235886.879896532 900979.470596815,235957.59057465 "
+"901008.759918\n"
+"696,236028.301252769 900979.470596815,236057.59057465 900908.759918696))"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:197 reference_processing.xml:272
+#: reference_processing.xml:321 reference_processing.xml:398
+#: reference_processing.xml:548 reference_processing.xml:611
+#: reference_processing.xml:659 reference_processing.xml:760
+#: reference_processing.xml:843 reference_processing.xml:902
+#: reference_processing.xml:970 reference_processing.xml:1014
+#: reference_processing.xml:1134 reference_processing.xml:1176
+#: reference_processing.xml:1230 reference_processing.xml:1280
+#: reference_processing.xml:1334 reference_processing.xml:1387
+#: reference_processing.xml:1438 reference_processing.xml:1600
+#: reference_processing.xml:1636 reference_processing.xml:1706
+#: reference_processing.xml:1762 reference_processing.xml:1806
+#: reference_processing.xml:1850 reference_processing.xml:1959
+#: reference_processing.xml:2044 reference_processing.xml:2120
+#: reference_processing.xml:2174
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:199
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:205
+#, no-c-format
+msgid "ST_BuildArea"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:207
+#, no-c-format
+msgid ""
+"Creates an areal geometry formed by the constituent linework of given "
+"geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:213
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BuildArea</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:223
+#, no-c-format
+msgid ""
+"Creates an areal geometry formed by the constituent linework of given "
+"geometry. The return type can be a Polygon or MultiPolygon, depending on "
+"input. If the input lineworks do not form polygons NULL is returned. The "
+"inputs can be LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS, and "
+"GeometryCollections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:228
+#, no-c-format
+msgid "This function will assume all inner geometries represent holes"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:231 reference_processing.xml:1375
+#, no-c-format
+msgid ""
+"Input linework must be correctly noded for this function to work properly"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:234
+#, no-c-format
+msgid "Availability: 1.1.0 - requires GEOS >= 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:248
+#, no-c-format
+msgid "This will create a donut"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:251
+#, no-c-format
+msgid ""
+"SELECT ST_BuildArea(ST_Collect(smallc,bigc))\n"
+"FROM (SELECT\n"
+"        ST_Buffer(\n"
+"          ST_GeomFromText('POINT(100 90)'), 25) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As bigc) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:260
+#, no-c-format
+msgid ""
+"This will create a gaping hole inside the circle with prongs sticking out"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:263
+#, no-c-format
+msgid ""
+"SELECT ST_BuildArea(ST_Collect(line,circle))\n"
+"FROM (SELECT\n"
+"        ST_Buffer(\n"
+"                ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)),\n"
+"                                5)  As line,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"\n"
+"--this creates the same gaping hole\n"
+"--but using linestrings instead of polygons\n"
+"SELECT ST_BuildArea(\n"
+"        ST_Collect(ST_ExteriorRing(line),ST_ExteriorRing(circle))\n"
+"        )\n"
+"FROM (SELECT ST_Buffer(\n"
+"        ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190))\n"
+"                ,5)  As line,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:274
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePolygon\"/>, <xref linkend=\"ST_BdPolyFromText\"/>, "
+"<xref linkend=\"ST_BdMPolyFromText\"/>wrappers to this function with "
+"standard OGC interface"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:285
+#, no-c-format
+msgid "ST_ClipByBox2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:286
+#, no-c-format
+msgid "Returns the portion of a geometry falling within a rectangle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:291
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClipByBox2D</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>box2d</type> <parameter>box</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:302
+#, no-c-format
+msgid ""
+"Clips a geometry by a 2D box in a fast but possibly dirty way. The output "
+"geometry is not guaranteed to be valid (self-intersections for a polygon may "
+"be introduced). Topologically invalid input geometries do not result in "
+"exceptions being thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:310
+#, no-c-format
+msgid "Requires GEOS 3.5.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:312
+#, no-c-format
+msgid "Availability: 2.2.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:318
+#, no-c-format
+msgid ""
+"-- Rely on implicit cast from geometry to box2d for the second parameter\n"
+"SELECT ST_ClipByBox2D(the_geom, ST_MakeEnvelope(0,0,10,10)) FROM mytab;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:322
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeBox2D\"/>, <xref linkend=\"ST_MakeEnvelope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:332
+#, no-c-format
+msgid "ST_Collect"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:333
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from a collection of other geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:337
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Collect</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:356
+#, no-c-format
+msgid ""
+"Output type can be a MULTI* or a GEOMETRYCOLLECTION. Comes in 2 variants. "
+"Variant 1 collects 2 geometries. Variant 2 is an aggregate function that "
+"takes a set of geometries and collects them into a single ST_Geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:360
+#, no-c-format
+msgid ""
+"Aggregate version: This function returns a GEOMETRYCOLLECTION or a MULTI "
+"object from a set of geometries. The ST_Collect() function is an \"aggregate"
+"\" function in the terminology of PostgreSQL. That means that it operates on "
+"rows of data, in the same way the SUM() and AVG() functions do. For example, "
+"\"SELECT ST_Collect(GEOM) FROM GEOMTABLE GROUP BY ATTRCOLUMN\" will return a "
+"separate GEOMETRYCOLLECTION for each distinct value of ATTRCOLUMN."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:368
+#, no-c-format
+msgid ""
+"Non-Aggregate version: This function returns a geometry being a collection "
+"of two input geometries. Output type can be a MULTI* or a GEOMETRYCOLLECTION."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:372
+#, no-c-format
+msgid ""
+"ST_Collect and ST_Union are often interchangeable. ST_Collect is in general "
+"orders of magnitude faster than ST_Union because it does not try to dissolve "
+"boundaries or validate that a constructed MultiPolgon doesn't have "
+"overlapping regions. It merely rolls up single geometries into MULTI and "
+"MULTI or mixed geometry types into Geometry Collections. Unfortunately "
+"geometry collections are not well-supported by GIS tools. To prevent "
+"ST_Collect from returning a Geometry Collection when collecting MULTI "
+"geometries, one can use the below trick that utilizes <xref linkend=\"ST_Dump"
+"\"/> to expand the MULTIs out to singles and then regroup them."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:383
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_Collect(geomarray) was introduced. ST_Collect was "
+"enhanced to handle more geometries faster."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:384 reference_processing.xml:591
+#: reference_processing.xml:646 reference_processing.xml:698
+#: reference_processing.xml:889 reference_processing.xml:944
+#: reference_processing.xml:1002 reference_processing.xml:1042
+#: reference_processing.xml:1161 reference_processing.xml:1225
+#: reference_processing.xml:1268 reference_processing.xml:1422
+#: reference_processing.xml:1632 reference_processing.xml:1747
+#: reference_processing.xml:2166
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:385
+#, no-c-format
+msgid ""
+"&curve_support; This method supports Circular Strings and Curves, but will "
+"never return a MULTICURVE or MULTI as one would expect and PostGIS does not "
+"currently support those."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:392
+#, no-c-format
+msgid ""
+"Aggregate example (<ulink url=\"http://postgis.refractions.net/pipermail/"
+"postgis-users/2008-June/020331.html\">http://postgis.refractions.net/"
+"pipermail/postgis-users/2008-June/020331.html</ulink>)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:393
+#, no-c-format
+msgid ""
+"SELECT stusps,\n"
+"           ST_Multi(ST_Collect(f.the_geom)) as singlegeom\n"
+"         FROM (SELECT stusps, (ST_Dump(the_geom)).geom As the_geom\n"
+"                                FROM\n"
+"                                somestatetable ) As f\n"
+"GROUP BY stusps"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:394 reference_processing.xml:2116
+#, no-c-format
+msgid "Non-Aggregate example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:395
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
+"        ST_GeomFromText('POINT(-2 3)') ));\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(1 2,-2 3)\n"
+"\n"
+"--Collect 2 d points\n"
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
+"                ST_GeomFromText('POINT(1 2)') ) );\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(1 2,1 2)\n"
+"\n"
+"--Collect 3d points\n"
+"SELECT ST_AsEWKT(ST_Collect(ST_GeomFromEWKT('POINT(1 2 3)'),\n"
+"                ST_GeomFromEWKT('POINT(1 2 4)') ) );\n"
+"\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" MULTIPOINT(1 2 3,1 2 4)\n"
+"\n"
+" --Example with curves\n"
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)'),\n"
+"ST_GeomFromText('CIRCULARSTRING(220227 150406,2220227 150407,220227 "
+"150406)')));\n"
+"                                                                                                                                st_astext\n"
+"------------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406),\n"
+" CIRCULARSTRING(220227 150406,2220227 150407,220227 150406))\n"
+"\n"
+"--New ST_Collect array construct\n"
+"SELECT ST_Collect(ARRAY(SELECT the_geom FROM sometable));\n"
+"\n"
+"SELECT ST_AsText(ST_Collect(ARRAY[ST_GeomFromText('LINESTRING(1 2, 3 4)'),\n"
+"                        ST_GeomFromText('LINESTRING(3 4, 4 5)')])) As "
+"wktcollect;\n"
+"\n"
+"--wkt collect --\n"
+"MULTILINESTRING((1 2,3 4),(3 4,4 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:399
+#, no-c-format
+msgid ", <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:404
+#, no-c-format
+msgid "ST_ConcaveHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:405
+#, no-c-format
+msgid ""
+"The concave hull of a geometry represents a possibly concave geometry that "
+"encloses all geometries within the set. You can think of it as shrink "
+"wrapping."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:411
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConcaveHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>target_percent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allow_holes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:422
+#, no-c-format
+msgid ""
+"The concave hull of a geometry represents a possibly concave geometry that "
+"encloses all geometries within the set. Defaults to false for allowing "
+"polygons with holes. The result is never higher than a single polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:426
+#, no-c-format
+msgid ""
+"The target_percent is the target percent of area of convex hull the PostGIS "
+"solution will try to approach before giving up or exiting. One can think of "
+"the concave hull as the geometry you get by vacuum sealing a set of "
+"geometries. The target_percent of 1 will give you the same answer as the "
+"convex hull. A target_percent between 0 and 0.99 will give you something "
+"that should have a smaller area than the convex hull. This is different from "
+"a convex hull which is more like wrapping a rubber band around the set of "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:431
+#, no-c-format
+msgid ""
+"It is usually used with MULTI and Geometry Collections. Although it is not "
+"an aggregate - you can use it in conjunction with ST_Collect or ST_Union to "
+"get the concave hull of a set of points/linestring/polygons "
+"ST_ConcaveHull(ST_Collect(somepointfield), 0.80)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:436
+#, no-c-format
+msgid ""
+"It is much slower to compute than convex hull but encloses the geometry "
+"better and is also useful for image recognition."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:439 reference_processing.xml:587
+#: reference_processing.xml:792 reference_processing.xml:1111
+#: reference_processing.xml:1991
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:440
+#, no-c-format
+msgid ""
+"Note - If you are using with points, linestrings, or geometry collections "
+"use ST_Collect. If you are using with polygons, use ST_Union since it may "
+"fail with invalid geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:443
+#, no-c-format
+msgid ""
+"Note - The smaller you make the target percent, the longer it takes to "
+"process the concave hull and more likely to run into topological exceptions. "
+"Also the more floating points and number of points you accrue. First try a "
+"0.99 which does a first hop, is usually very fast, sometimes as fast as "
+"computing the convex hull, and usually gives much better than 99% of shrink "
+"since it almost always overshoots. Second hope of 0.98 it slower, others get "
+"slower usually quadratically. To reduce precision and float points, use "
+"<xref linkend=\"ST_SimplifyPreserveTopology\"/> or <xref linkend="
+"\"ST_SnapToGrid\"/> after ST_ConcaveHull. ST_SnapToGrid is a bit faster, but "
+"could result in invalid geometries where as ST_SimplifyPreserveTopology "
+"almost always preserves the validity of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:448
+#, no-c-format
+msgid ""
+"More real world examples and brief explanation of the technique are shown "
+"<ulink url=\"http://www.bostongis.com/postgis_concavehull.snippet\">http://"
+"www.bostongis.com/postgis_concavehull.snippet</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:451
+#, no-c-format
+msgid ""
+"Also check out Simon Greener's article on demonstrating ConcaveHull "
+"introduced in Oracle 11G R2. <ulink url=\"http://www.spatialdbadvisor.com/"
+"oracle_spatial_tips_tricks/172/concave-hull-geometries-in-"
+"oracle-11gr2\">http://www.spatialdbadvisor.com/"
+"oracle_spatial_tips_tricks/172/concave-hull-geometries-in-oracle-11gr2</"
+"ulink>. The solution we get at 0.75 target percent of convex hull is similar "
+"to the shape Simon gets with Oracle SDO_CONCAVEHULL_BOUNDARY."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:455 reference_processing.xml:1044
+#: reference_processing.xml:1630 reference_processing.xml:1883
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:460
+#, no-c-format
+msgid ""
+"--Get estimate of infected area based on point observations\n"
+"SELECT d.disease_type,\n"
+"        ST_ConcaveHull(ST_Collect(d.pnt_geom), 0.99) As geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:470
+#, no-c-format
+msgid "ST_ConcaveHull of 2 polygons encased in target 100% shrink concave hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:473
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull \n"
+"-- at target 100% shrink (this is the same as convex hull - since no "
+"shrink)\n"
+"SELECT \n"
+"        ST_ConcaveHull(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ), 1)  \n"
+"         As convexhull;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:480
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull at target 90% of convex hull area"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:484
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull at target 90% shrink\n"
+"SELECT \n"
+"        ST_ConcaveHull(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ), 0.9)  \n"
+"         As target_90;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:493
+#, no-c-format
+msgid "L Shape points overlaid with convex hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:496
+#, no-c-format
+msgid ""
+"-- this produces a table of 42 points that form an L shape\n"
+"SELECT (ST_DumpPoints(ST_GeomFromText(\n"
+"'MULTIPOINT(14 14,34 14,54 14,74 14,94 14,114 14,134 14,\n"
+"150 14,154 14,154 6,134 6,114 6,94 6,74 6,54 6,34 6,\n"
+"14 6,10 6,8 6,7 7,6 8,6 10,6 30,6 50,6 70,6 90,6 110,6 130,\n"
+"6 150,6 170,6 190,6 194,14 194,14 174,14 154,14 134,14 114,\n"
+"14 94,14 74,14 54,14 34,14 14)'))).geom \n"
+"        INTO TABLE l_shape;\n"
+"\n"
+"SELECT ST_ConvexHull(ST_Collect(geom))\n"
+"FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:503
+#, no-c-format
+msgid "ST_ConcaveHull of L points at target 99% of convex hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:506
+#, no-c-format
+msgid ""
+"SELECT ST_ConcaveHull(ST_Collect(geom), 0.99)\n"
+"        FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:515
+#, no-c-format
+msgid "Concave Hull of L points at target 80% convex hull area"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:518
+#, no-c-format
+msgid ""
+"-- Concave Hull L shape points\n"
+"        -- at target 80% of convexhull\n"
+"        SELECT ST_ConcaveHull(ST_Collect(geom), 0.80)\n"
+"        FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:527
+#, no-c-format
+msgid "multilinestring overlaid with Convex hull"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:535
+#, no-c-format
+msgid ""
+"multilinestring with overlaid with Concave hull of linestrings at 99% target "
+"-- first hop"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:539
+#, no-c-format
+msgid ""
+"SELECT ST_ConcaveHull(ST_GeomFromText('MULTILINESTRING((106 164,30 112,74 "
+"70,82 112,130 94,\n"
+"        130 62,122 40,156 32,162 76,172 88),\n"
+"(132 178,134 148,128 136,96 128,132 108,150 130,\n"
+"170 142,174 110,156 96,158 90,158 88),\n"
+"(22 64,66 28,94 38,94 68,114 76,112 30,\n"
+"132 10,168 18,178 34,186 52,184 74,190 100,\n"
+"190 122,182 148,178 170,176 184,156 164,146 178,\n"
+"132 186,92 182,56 158,36 150,62 150,76 128,88 118))'),0.99)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:549
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend="
+"\"ST_SimplifyPreserveTopology\"/>, <xref linkend=\"ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:555
+#, no-c-format
+msgid "ST_ConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:556
+#, no-c-format
+msgid ""
+"<refpurpose>The convex hull of a geometry represents the minimum convex "
+"geometry that encloses all geometries within the set.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:562
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:571
+#, no-c-format
+msgid ""
+"<para>The convex hull of a geometry represents the minimum convex geometry "
+"that encloses all geometries within the set.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:574
+#, no-c-format
+msgid ""
+"One can think of the convex hull as the geometry you get by wrapping an "
+"elastic band around a set of geometries. This is different from a concave "
+"hull which is analogous to shrink-wrapping your geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:578
+#, no-c-format
+msgid ""
+"It is usually used with MULTI and Geometry Collections. Although it is not "
+"an aggregate - you can use it in conjunction with ST_Collect to get the "
+"convex hull of a set of points. ST_ConvexHull(ST_Collect(somepointfield))."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:583
+#, no-c-format
+msgid ""
+"It is often used to determine an affected area based on a set of point "
+"observations."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:590
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.16"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:596
+#, no-c-format
+msgid ""
+"--Get estimate of infected area based on point observations\n"
+"SELECT d.disease_type,\n"
+"        ST_ConvexHull(ST_Collect(d.the_geom)) As the_geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:604
+#, no-c-format
+msgid ""
+"Convex Hull of a MultiLinestring and a MultiPoint seen together with the "
+"MultiLinestring and MultiPoint"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:607
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_ConvexHull(\n"
+"        ST_Collect(\n"
+"                ST_GeomFromText('MULTILINESTRING((100 190,10 8),(150 10, 20 "
+"30))'),\n"
+"                        ST_GeomFromText('MULTIPOINT(50 5, 150 30, 50 10, 10 "
+"10)')\n"
+"                        )) );\n"
+"---st_astext--\n"
+"POLYGON((50 5,10 8,10 10,100 190,150 30,150 10,50 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:612
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ConcaveHull\"/>, <xref linkend="
+"\"ST_MinimumBoundingCircle\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:618
+#, no-c-format
+msgid "ST_CurveToLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:620
+#, no-c-format
+msgid "Converts a CIRCULARSTRING/CURVEDPOLYGON to a LINESTRING/POLYGON"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:624
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_CurveToLine</function></"
+"funcdef> <paramdef><type>geometry</type> <parameter>curveGeom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_CurveToLine</function></funcdef> <paramdef><type>geometry</"
+"type> <parameter>curveGeom</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>segments_per_qtr_circle</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:640
+#, no-c-format
+msgid ""
+"Converst a CIRCULAR STRING to regular LINESTRING or CURVEPOLYGON to POLYGON. "
+"Useful for outputting to devices that can't support CIRCULARSTRING geometry "
+"types"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:641
+#, no-c-format
+msgid ""
+"Converts a given geometry to a linear geometry. Each curved geometry or "
+"segment is converted into a linear approximation using the default value of "
+"32 segments per quarter circle"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:643 reference_processing.xml:1160
+#, no-c-format
+msgid "Availability: 1.2.2?"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:644
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:645
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.7"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:647 reference_processing.xml:886
+#: reference_processing.xml:941 reference_processing.xml:1041
+#: reference_processing.xml:1162
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:654
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)')));\n"
+"\n"
+"--Result --\n"
+" LINESTRING(220268 150415,220269.95064912 150416.539364228,220271.823415575 "
+"150418.17258804,220273.613787707 150419.895736857,\n"
+" 220275.317452352 150421.704659462,220276.930305234 "
+"150423.594998003,220278.448460847 150425.562198489,\n"
+" 220279.868261823 150427.60152176,220281.186287736 "
+"150429.708054909,220282.399363347 150431.876723113,\n"
+" 220283.50456625 150434.10230186,220284.499233914 "
+"150436.379429536,220285.380970099 150438.702620341,220286.147650624 "
+"150441.066277505,\n"
+" 220286.797428488 150443.464706771,220287.328738321 "
+"150445.892130112,220287.740300149 150448.342699654,\n"
+" 220288.031122486 150450.810511759,220288.200504713 "
+"150453.289621251,220288.248038775 150455.77405574,\n"
+" 220288.173610157 150458.257830005,220287.977398166 "
+"150460.734960415,220287.659875492 150463.199479347,\n"
+" 220287.221807076 150465.64544956,220286.664248262 "
+"150468.066978495,220285.988542259 150470.458232479,220285.196316903 "
+"150472.81345077,\n"
+" 220284.289480732 150475.126959442,220283.270218395 "
+"150477.39318505,220282.140985384 150479.606668057,\n"
+" 220280.90450212 150481.762075989,220279.5637474 "
+"150483.85421628,220278.12195122 150485.87804878,\n"
+" 220276.582586992 150487.828697901,220274.949363179 "
+"150489.701464356,220273.226214362 150491.491836488,\n"
+" 220271.417291757 150493.195501133,220269.526953216 "
+"150494.808354014,220267.559752731 150496.326509628,\n"
+" 220265.520429459 150497.746310603,220263.41389631 "
+"150499.064336517,220261.245228106 150500.277412127,\n"
+" 220259.019649359 150501.38261503,220256.742521683 "
+"150502.377282695,220254.419330878 150503.259018879,\n"
+" 220252.055673714 150504.025699404,220249.657244448 "
+"150504.675477269,220247.229821107 150505.206787101,\n"
+" 220244.779251566 150505.61834893,220242.311439461 "
+"150505.909171266,220239.832329968 150506.078553494,\n"
+" 220237.347895479 150506.126087555,220234.864121215 "
+"150506.051658938,220232.386990804 150505.855446946,\n"
+" 220229.922471872 150505.537924272,220227.47650166 "
+"150505.099855856,220225.054972724 150504.542297043,\n"
+" 220222.663718741 150503.86659104,220220.308500449 150503.074365683,\n"
+" 220217.994991777 150502.167529512,220215.72876617 150501.148267175,\n"
+" 220213.515283163 150500.019034164,220211.35987523 150498.7825509,\n"
+" 220209.267734939 150497.441796181,220207.243902439 150496,\n"
+" 220205.293253319 150494.460635772,220203.420486864 "
+"150492.82741196,220201.630114732 150491.104263143,\n"
+" 220199.926450087 150489.295340538,220198.313597205 "
+"150487.405001997,220196.795441592 150485.437801511,\n"
+" 220195.375640616 150483.39847824,220194.057614703 "
+"150481.291945091,220192.844539092 150479.123276887,220191.739336189 "
+"150476.89769814,\n"
+" 220190.744668525 150474.620570464,220189.86293234 "
+"150472.297379659,220189.096251815 150469.933722495,\n"
+" 220188.446473951 150467.535293229,220187.915164118 "
+"150465.107869888,220187.50360229 150462.657300346,\n"
+" 220187.212779953 150460.189488241,220187.043397726 "
+"150457.710378749,220186.995863664 150455.22594426,\n"
+" 220187.070292282 150452.742169995,220187.266504273 "
+"150450.265039585,220187.584026947 150447.800520653,\n"
+" 220188.022095363 150445.35455044,220188.579654177 "
+"150442.933021505,220189.25536018 150440.541767521,\n"
+" 220190.047585536 150438.18654923,220190.954421707 "
+"150435.873040558,220191.973684044 150433.60681495,\n"
+" 220193.102917055 150431.393331943,220194.339400319 "
+"150429.237924011,220195.680155039 150427.14578372,220197.12195122 "
+"150425.12195122,\n"
+" 220198.661315447 150423.171302099,220200.29453926 "
+"150421.298535644,220202.017688077 150419.508163512,220203.826610682 "
+"150417.804498867,\n"
+" 220205.716949223 150416.191645986,220207.684149708 "
+"150414.673490372,220209.72347298 150413.253689397,220211.830006129 "
+"150411.935663483,\n"
+" 220213.998674333 150410.722587873,220216.22425308 "
+"150409.61738497,220218.501380756 150408.622717305,220220.824571561 "
+"150407.740981121,\n"
+" 220223.188228725 150406.974300596,220225.586657991 150406.324522731,220227 "
+"150406)\n"
+"\n"
+"--3d example\n"
+"SELECT ST_AsEWKT(ST_CurveToLine(ST_GeomFromEWKT('CIRCULARSTRING(220268 "
+"150415 1,220227 150505 2,220227 150406 3)')));\n"
+"Output\n"
+"------\n"
+" LINESTRING(220268 150415 1,220269.95064912 150416.539364228 "
+"1.0181172856673,\n"
+" 220271.823415575 150418.17258804 1.03623457133459,220273.613787707 "
+"150419.895736857 1.05435185700189,....AD INFINITUM ....\n"
+"        220225.586657991 150406.324522731 1.32611114201132,220227 150406 3)\n"
+"\n"
+"--use only 2 segments to approximate quarter circle\n"
+"SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)'),2));\n"
+"st_astext\n"
+"------------------------------\n"
+" LINESTRING(220268 150415,220287.740300149 150448.342699654,220278.12195122 "
+"150485.87804878,\n"
+" 220244.779251566 150505.61834893,220207.243902439 150496,220187.50360229 "
+"150462.657300346,\n"
+" 220197.12195122 150425.12195122,220227 150406)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:667
+#, no-c-format
+msgid "ST_DelaunayTriangles"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:669
+#, no-c-format
+msgid "Return a Delaunay triangulation around the given input points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:676
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_DelaunayTriangles</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef> "
+"<paramdef><type>int4 </type> <parameter>flags</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:688
+#, no-c-format
+msgid ""
+"Return a <ulink url=\"http://en.wikipedia.org/wiki/Delaunay_triangulation"
+"\">Delaunay triangulation</ulink> around the vertices of the input geometry. "
+"Output is a COLLECTION of polygons (for flags=0) or a MULTILINESTRING (for "
+"flags=1) or TIN (for flags=2). The tolerance, if any, is used to snap input "
+"vertices togheter."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:697
+#, no-c-format
+msgid "Availability: 2.1.0 - requires GEOS >= 3.4.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:699 reference_processing.xml:888
+#: reference_processing.xml:943 reference_processing.xml:1046
+#: reference_processing.xml:1750
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:703
+#, no-c-format
+msgid "2D Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:712
+#, no-c-format
+msgid "Original polygons"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:715
+#, no-c-format
+msgid ""
+"-- our original geometry --\n"
+"        ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                )"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:723
+#, no-c-format
+msgid ""
+"ST_DelaunayTriangles of 2 polygons: delaunay triangle polygons each triangle "
+"themed in different color"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:726
+#, no-c-format
+msgid ""
+"-- geometries overlaid multilinestring triangles\n"
+"SELECT \n"
+"        ST_DelaunayTriangles(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                )) \n"
+"         As  dtriag;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:733
+#, no-c-format
+msgid "-- delaunay triangles as multilinestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:736
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_DelaunayTriangles(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ),0.001,1) \n"
+"         As  dtriag;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:744
+#, no-c-format
+msgid "-- delaunay triangles of 45 points as 55 triangle polygons"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:747
+#, no-c-format
+msgid ""
+"-- this produces a table of 42 points that form an L shape\n"
+"SELECT (ST_DumpPoints(ST_GeomFromText(\n"
+"'MULTIPOINT(14 14,34 14,54 14,74 14,94 14,114 14,134 14,\n"
+"150 14,154 14,154 6,134 6,114 6,94 6,74 6,54 6,34 6,\n"
+"14 6,10 6,8 6,7 7,6 8,6 10,6 30,6 50,6 70,6 90,6 110,6 130,\n"
+"6 150,6 170,6 190,6 194,14 194,14 174,14 154,14 134,14 114,\n"
+"14 94,14 74,14 54,14 34,14 14)'))).geom \n"
+"        INTO TABLE l_shape;\n"
+"-- output as individual polygon triangles\n"
+"SELECT ST_AsText((ST_Dump(geom)).geom) As wkt\n"
+"FROM ( SELECT ST_DelaunayTriangles(ST_Collect(geom)) As geom\n"
+"FROM l_shape) As foo;\n"
+"\n"
+"---wkt ---\n"
+"POLYGON((6 194,6 190,14 194,6 194))\n"
+"POLYGON((14 194,6 190,14 174,14 194))\n"
+"POLYGON((14 194,14 174,154 14,14 194))\n"
+"POLYGON((154 14,14 174,14 154,154 14))\n"
+"POLYGON((154 14,14 154,150 14,154 14))\n"
+"POLYGON((154 14,150 14,154 6,154 14))\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:756
+#, no-c-format
+msgid "3D Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:757
+#, no-c-format
+msgid ""
+"-- 3D multipoint --\n"
+"SELECT ST_AsText(ST_DelaunayTriangles(ST_GeomFromText(\n"
+"'MULTIPOINT Z(14 14 10,\n"
+"150 14 100,34 6 25, 20 10 150)'))) As wkt;\n"
+"\n"
+"-----wkt----\n"
+"GEOMETRYCOLLECTION Z (POLYGON Z ((14 14 10,20 10 150,34 6 25,14 14 10))\n"
+" ,POLYGON Z ((14 14 10,34 6 25,150 14 100,14 14 10)))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:761 reference_processing.xml:1388
+#, no-c-format
+msgid ", <xref linkend=\"ST_Dump\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:768
+#, no-c-format
+msgid "ST_Difference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:770
+#, no-c-format
+msgid ""
+"Returns a geometry that represents that part of geometry A that does not "
+"intersect with geometry B."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:776
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Difference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:787
+#, no-c-format
+msgid ""
+"Returns a geometry that represents that part of geometry A that does not "
+"intersect with geometry B. One can think of this as GeometryA - "
+"ST_Intersection(A,B). If A is completely contained in B then an empty "
+"geometry collection is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:790
+#, no-c-format
+msgid "Note - order matters. B - A will always return a portion of B"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:794 reference_processing.xml:1993
+#, no-c-format
+msgid "Do not call with a GeometryCollection as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:797
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.20"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:798 reference_processing.xml:1997
+#, no-c-format
+msgid ""
+"&Z_support; However it seems to only consider x y when doing the difference "
+"and tacks back on the Z-Index"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:815
+#, no-c-format
+msgid "The original linestrings shown together."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:827
+#, no-c-format
+msgid "The difference of the two linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:836
+#, no-c-format
+msgid ""
+"--Safe for 2d. This is same geometries as what is shown for "
+"st_symdifference\n"
+"SELECT ST_AsText(\n"
+"        ST_Difference(\n"
+"                        ST_GeomFromText('LINESTRING(50 100, 50 200)'),\n"
+"                        ST_GeomFromText('LINESTRING(50 50, 50 150)')\n"
+"                )\n"
+"        );\n"
+"\n"
+"st_astext\n"
+"---------\n"
+"LINESTRING(50 150,50 200)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:838
+#, no-c-format
+msgid ""
+"--When used in 3d doesn't quite do the right thing\n"
+"SELECT ST_AsEWKT(ST_Difference(ST_GeomFromEWKT('MULTIPOINT(-118.58 38.38 "
+"5,-118.60 38.329 6,-118.614 38.281 7)'), ST_GeomFromEWKT('POINT(-118.614 "
+"38.281 5)')));\n"
+"st_asewkt\n"
+"---------\n"
+"MULTIPOINT(-118.6 38.329 6,-118.58 38.38 5)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:851
+#, no-c-format
+msgid "ST_Dump"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:852
+#, no-c-format
+msgid ""
+"Returns a set of geometry_dump (geom,path) rows, that make up a geometry g1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:857
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[] <function>ST_Dump</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:866
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of geometry_dump "
+"rows, formed by a geometry (geom) and an array of integers (path). When the "
+"input geometry is a simple type (POINT,LINESTRING,POLYGON) a single record "
+"will be returned with an empty path array and the input geometry as geom. "
+"When the input geometry is a collection or multi it will return a record for "
+"each of the collection components, and the path will express the position of "
+"the component inside the collection."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:875
+#, no-c-format
+msgid ""
+"ST_Dump is useful for expanding geometries. It is the reverse of a GROUP BY "
+"in that it creates new rows. For example it can be use to expand "
+"MULTIPOLYGONS into POLYGONS."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:879 reference_processing.xml:939
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:880
+#, no-c-format
+msgid "Availability: PostGIS 1.0.0RC1. Requires PostgreSQL 7.3 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:882
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:887 reference_processing.xml:942
+#: reference_processing.xml:1045 reference_processing.xml:1631
+#: reference_processing.xml:1749
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:893
+#, no-c-format
+msgid "Standard Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:894
+#, no-c-format
+msgid ""
+"SELECT sometable.field1, sometable.field1,\n"
+"      (ST_Dump(sometable.the_geom)).geom AS the_geom\n"
+"FROM sometable;\n"
+"\n"
+"-- Break a compound curve into its constituent linestrings and "
+"circularstrings\n"
+"SELECT ST_AsEWKT(a.geom), ST_HasArc(a.geom)\n"
+"  FROM ( SELECT (ST_Dump(p_geom)).geom AS geom\n"
+"         FROM (SELECT ST_GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 "
+"1, 1 0),(1 0, 0 1))') AS p_geom) AS b\n"
+"        ) AS a;\n"
+"          st_asewkt          | st_hasarc\n"
+"-----------------------------+----------\n"
+" CIRCULARSTRING(0 0,1 1,1 0) | t\n"
+" LINESTRING(1 0,0 1)         | f\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:896 reference_processing.xml:964
+#, no-c-format
+msgid "Polyhedral Surfaces, TIN and Triangle Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:897
+#, no-c-format
+msgid ""
+"-- Polyhedral surface example\n"
+"-- Break a Polyhedral surface into its faces\n"
+"SELECT (a.p_geom).path[1] As path, ST_AsEWKT((a.p_geom).geom) As geom_ewkt\n"
+"  FROM (SELECT ST_Dump(ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)),  ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) \n"
+")') ) AS p_geom )  AS a;\n"
+"\n"
+" path |                geom_ewkt\n"
+"------+------------------------------------------\n"
+"    1 | POLYGON((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0))\n"
+"    2 | POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))\n"
+"    3 | POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))\n"
+"    4 | POLYGON((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0))\n"
+"    5 | POLYGON((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0))\n"
+"    6 | POLYGON((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:899
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_Dump( ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+" path |                 wkt\n"
+"------+-------------------------------------\n"
+" {1}  | TRIANGLE((0 0 0,0 0 1,0 1 0,0 0 0))\n"
+" {2}  | TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:903
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend="
+"\"ST_Collect\"/>, <xref linkend=\"ST_Collect\"/>, <xref linkend="
+"\"ST_GeometryN\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:909
+#, no-c-format
+msgid "ST_DumpPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:910
+#, no-c-format
+msgid ""
+"Returns a set of geometry_dump (geom,path) rows of all points that make up a "
+"geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:915
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[]<function>ST_DumpPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:924
+#, no-c-format
+msgid ""
+"This set-returning function (SRF) returns a set of <varname>geometry_dump</"
+"varname> rows formed by a geometry (<varname>geom</varname>) and an array of "
+"integers (<varname>path</varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:927
+#, no-c-format
+msgid ""
+"The <parameter>geom</parameter> component of <varname>geometry_dump</"
+"varname> are all the <varname>POINT</varname>s that make up the supplied "
+"geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:930
+#, no-c-format
+msgid ""
+"The <parameter>path</parameter> component of <varname>geometry_dump</"
+"varname> (an <varname>integer[]</varname>) is an index reference enumerating "
+"the <varname>POINT</varname>s of the supplied geometry. For example, if a "
+"<varname>LINESTRING</varname> is supplied, a path of <varname>{i}</varname> "
+"is returned where <varname>i</varname> is the <varname>nth</varname> "
+"coordinate in the <varname>LINESTRING</varname>. If a <varname>POLYGON</"
+"varname> is supplied, a path of <varname>{i,j}</varname> is returned where "
+"<varname>i</varname> is the ring number (1 is outer; inner rings follow) and "
+"<varname>j</varname> enumerates the <varname>POINT</varname>s (again 1-based "
+"index)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:938
+#, no-c-format
+msgid "Enhanced: 2.1.0 Faster speed. Reimplemented as native-C."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:940
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:947
+#, no-c-format
+msgid "Classic Explode a Table of LineStrings into nodes"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:948
+#, no-c-format
+msgid ""
+"SELECT edge_id, (dp).path[1] As index, ST_AsText((dp).geom) As wktnode\n"
+"FROM (SELECT 1 As edge_id\n"
+"        , ST_DumpPoints(ST_GeomFromText('LINESTRING(1 2, 3 4, 10 10)')) AS "
+"dp\n"
+"     UNION ALL\n"
+"     SELECT 2 As edge_id\n"
+"        , ST_DumpPoints(ST_GeomFromText('LINESTRING(3 5, 5 6, 9 10)')) AS "
+"dp\n"
+"   ) As foo;\n"
+" edge_id | index |    wktnode\n"
+"---------+-------+--------------\n"
+"       1 |     1 | POINT(1 2)\n"
+"       1 |     2 | POINT(3 4)\n"
+"       1 |     3 | POINT(10 10)\n"
+"       2 |     1 | POINT(3 5)\n"
+"       2 |     2 | POINT(5 6)\n"
+"       2 |     3 | POINT(9 10)"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:951
+#, no-c-format
+msgid "Standard Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:961
+#, no-c-format
+msgid ""
+"SELECT path, ST_AsText(geom) \n"
+"FROM (\n"
+"  SELECT (ST_DumpPoints(g.geom)).* \n"
+"  FROM\n"
+"    (SELECT \n"
+"       'GEOMETRYCOLLECTION(\n"
+"          POINT ( 0 1 ), \n"
+"          LINESTRING ( 0 3, 3 4 ),\n"
+"          POLYGON (( 2 0, 2 3, 0 2, 2 0 )),\n"
+"          POLYGON (( 3 0, 3 3, 6 3, 6 0, 3 0 ), \n"
+"                   ( 5 1, 4 2, 5 2, 5 1 )),\n"
+"          MULTIPOLYGON (\n"
+"                  (( 0 5, 0 8, 4 8, 4 5, 0 5 ), \n"
+"                   ( 1 6, 3 6, 2 7, 1 6 )), \n"
+"                  (( 5 4, 5 8, 6 7, 5 4 ))\n"
+"          )\n"
+"        )'::geometry AS geom\n"
+"    ) AS g\n"
+"  ) j;\n"
+"  \n"
+"   path    | st_astext  \n"
+"-----------+------------\n"
+" {1,1}     | POINT(0 1)\n"
+" {2,1}     | POINT(0 3)\n"
+" {2,2}     | POINT(3 4)\n"
+" {3,1,1}   | POINT(2 0)\n"
+" {3,1,2}   | POINT(2 3)\n"
+" {3,1,3}   | POINT(0 2)\n"
+" {3,1,4}   | POINT(2 0)\n"
+" {4,1,1}   | POINT(3 0)\n"
+" {4,1,2}   | POINT(3 3)\n"
+" {4,1,3}   | POINT(6 3)\n"
+" {4,1,4}   | POINT(6 0)\n"
+" {4,1,5}   | POINT(3 0)\n"
+" {4,2,1}   | POINT(5 1)\n"
+" {4,2,2}   | POINT(4 2)\n"
+" {4,2,3}   | POINT(5 2)\n"
+" {4,2,4}   | POINT(5 1)\n"
+" {5,1,1,1} | POINT(0 5)\n"
+" {5,1,1,2} | POINT(0 8)\n"
+" {5,1,1,3} | POINT(4 8)\n"
+" {5,1,1,4} | POINT(4 5)\n"
+" {5,1,1,5} | POINT(0 5)\n"
+" {5,1,2,1} | POINT(1 6)\n"
+" {5,1,2,2} | POINT(3 6)\n"
+" {5,1,2,3} | POINT(2 7)\n"
+" {5,1,2,4} | POINT(1 6)\n"
+" {5,2,1,1} | POINT(5 4)\n"
+" {5,2,1,2} | POINT(5 8)\n"
+" {5,2,1,3} | POINT(6 7)\n"
+" {5,2,1,4} | POINT(5 4)\n"
+"(29 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:965
+#, no-c-format
+msgid ""
+"-- Polyhedral surface cube --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+"  path   |     wkt\n"
+"---------+--------------\n"
+" {1,1,1} | POINT(0 0 0)\n"
+" {1,1,2} | POINT(0 0 1)\n"
+" {1,1,3} | POINT(0 1 1)\n"
+" {1,1,4} | POINT(0 1 0)\n"
+" {1,1,5} | POINT(0 0 0)\n"
+" {2,1,1} | POINT(0 0 0)\n"
+" {2,1,2} | POINT(0 1 0)\n"
+" {2,1,3} | POINT(1 1 0)\n"
+" {2,1,4} | POINT(1 0 0)\n"
+" {2,1,5} | POINT(0 0 0)\n"
+" {3,1,1} | POINT(0 0 0)\n"
+" {3,1,2} | POINT(1 0 0)\n"
+" {3,1,3} | POINT(1 0 1)\n"
+" {3,1,4} | POINT(0 0 1)\n"
+" {3,1,5} | POINT(0 0 0)\n"
+" {4,1,1} | POINT(1 1 0)\n"
+" {4,1,2} | POINT(1 1 1)\n"
+" {4,1,3} | POINT(1 0 1)\n"
+" {4,1,4} | POINT(1 0 0)\n"
+" {4,1,5} | POINT(1 1 0)\n"
+" {5,1,1} | POINT(0 1 0)\n"
+" {5,1,2} | POINT(0 1 1)\n"
+" {5,1,3} | POINT(1 1 1)\n"
+" {5,1,4} | POINT(1 1 0)\n"
+" {5,1,5} | POINT(0 1 0)\n"
+" {6,1,1} | POINT(0 0 1)\n"
+" {6,1,2} | POINT(1 0 1)\n"
+" {6,1,3} | POINT(1 1 1)\n"
+" {6,1,4} | POINT(0 1 1)\n"
+" {6,1,5} | POINT(0 0 1)\n"
+"(30 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:966
+#, no-c-format
+msgid ""
+"-- Triangle --                \n"
+"SELECT (g.gdump).path, ST_AsText((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints( ST_GeomFromEWKT('TRIANGLE ((\n"
+"                0 0, \n"
+"                0 9, \n"
+"                9 0, \n"
+"                0 0\n"
+"            ))') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+" path |    wkt\n"
+"------+------------\n"
+" {1}  | POINT(0 0)\n"
+" {2}  | POINT(0 9)\n"
+" {3}  | POINT(9 0)\n"
+" {4}  | POINT(0 0)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:967
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints( ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+"  path   |     wkt\n"
+"---------+--------------\n"
+" {1,1,1} | POINT(0 0 0)\n"
+" {1,1,2} | POINT(0 0 1)\n"
+" {1,1,3} | POINT(0 1 0)\n"
+" {1,1,4} | POINT(0 0 0)\n"
+" {2,1,1} | POINT(0 0 0)\n"
+" {2,1,2} | POINT(0 1 0)\n"
+" {2,1,3} | POINT(1 1 0)\n"
+" {2,1,4} | POINT(0 0 0)\n"
+"(8 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:971
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
+"\"/>, <xref linkend=\"ST_DumpRings\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:976
+#, no-c-format
+msgid "ST_DumpRings"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:978
+#, no-c-format
+msgid ""
+"Returns a set of <varname>geometry_dump</varname> rows, representing the "
+"exterior and interior rings of a polygon."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:984
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[] <function>ST_DumpRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:994
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of "
+"<varname>geometry_dump</varname> rows, defined as an <varname>integer[]</"
+"varname> and a <varname>geometry</varname>, aliased \"path\" and \"geom\" "
+"respectively. The \"path\" field holds the polygon ring index containing a "
+"single integer: 0 for the shell, >0 for holes. The \"geom\" field contains "
+"the corresponding ring as a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1000
+#, no-c-format
+msgid "Availability: PostGIS 1.1.3. Requires PostgreSQL 7.3 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1001
+#, no-c-format
+msgid ""
+"This only works for POLYGON geometries. It will not work for MULTIPOLYGONS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1009
+#, no-c-format
+msgid ""
+"SELECT sometable.field1, sometable.field1,\n"
+"          (ST_DumpRings(sometable.the_geom)).geom As the_geom\n"
+"FROM sometableOfpolys;\n"
+"\n"
+"SELECT ST_AsEWKT(geom) As the_geom, path\n"
+"        FROM ST_DumpRings(\n"
+"                ST_GeomFromEWKT('POLYGON((-8149064 5133092 1,-8149064 "
+"5132986 1,-8148996 5132839 1,-8148972 5132767 1,-8148958 5132508 1,-8148941 "
+"5132466 1,-8148924 5132394 1,\n"
+"                -8148903 5132210 1,-8148930 5131967 1,-8148992 5131978 "
+"1,-8149237 5132093 1,-8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 "
+"1,\n"
+"                -8150305 5132788 1,-8149064 5133092 1),\n"
+"                (-8149362 5132394 1,-8149446 5132501 1,-8149548 5132597 "
+"1,-8149695 5132675 1,-8149362 5132394 1))')\n"
+"                )  as foo;\n"
+" path |                                            the_geom\n"
+"----------------------------------------------------------------------------------------------------------------\n"
+"  {0} | POLYGON((-8149064 5133092 1,-8149064 5132986 1,-8148996 5132839 "
+"1,-8148972 5132767 1,-8148958 5132508 1,\n"
+"          |          -8148941 5132466 1,-8148924 5132394 1,\n"
+"          |          -8148903 5132210 1,-8148930 5131967 1,\n"
+"          |          -8148992 5131978 1,-8149237 5132093 1,\n"
+"          |          -8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 "
+"1,-8150305 5132788 1,-8149064 5133092 1))\n"
+"  {1} | POLYGON((-8149362 5132394 1,-8149446 5132501 1,\n"
+"          |          -8149548 5132597 1,-8149695 5132675 1,-8149362 5132394 "
+"1))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1016
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
+"\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref linkend=\"ST_InteriorRingN"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1022
+#, no-c-format
+msgid "ST_FlipCoordinates"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1023
+#, no-c-format
+msgid ""
+"Returns a version of the given geometry with X and Y axis flipped. Useful "
+"for people who have built latitude/longitude features and need to fix them."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1031
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_FlipCoordinates</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1040
+#, no-c-format
+msgid "Returns a version of the given geometry with X and Y axis flipped."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1043
+#, no-c-format
+msgid "&M_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1050
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1051
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"SELECT ST_AsEWKT(ST_FlipCoordinates(GeomFromEWKT('POINT(1 2)')));\n"
+" st_asewkt  \n"
+"------------\n"
+"POINT(2 1)\n"
+"                 ]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1058
+#, no-c-format
+msgid "ST_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1060
+#, no-c-format
+msgid ""
+"(T) Returns a geometry that represents the shared portion of geomA and "
+"geomB. The geography implementation does a transform to geometry to do the "
+"intersection and then transform back to WGS84."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:1065
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Intersection</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geography "
+"<function>ST_Intersection</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1092
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the point set intersection of the "
+"Geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1095
+#, no-c-format
+msgid ""
+"In other words - that portion of geometry A and geometry B that is shared "
+"between the two geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1098
+#, no-c-format
+msgid ""
+"If the geometries do not share any space (are disjoint), then an empty "
+"geometry collection is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1100
+#, no-c-format
+msgid ""
+"ST_Intersection in conjunction with ST_Intersects is very useful for "
+"clipping geometries such as in bounding box, buffer, region queries where "
+"you only want to return that portion of a geometry that sits in a country or "
+"region of interest."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1103
+#, no-c-format
+msgid ""
+"Geography: For geography this is really a thin wrapper around the geometry "
+"implementation. It first determines the best SRID that fits the bounding box "
+"of the 2 geography objects (if geography objects are within one half zone "
+"UTM but not same UTM will pick one of those) (favoring UTM or Lambert "
+"Azimuthal Equal Area (LAEA) north/south pole, and falling back on mercator "
+"in worst case scenario) and then intersection in that best fit planar "
+"spatial ref and retransforms back to WGS84 geography."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1106
+#, no-c-format
+msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1109
+#, no-c-format
+msgid ""
+"If working with 3D geometries, you may want to use SFGCAL based <xref "
+"linkend=\"ST_3DIntersection\"/> which does a proper 3D intersection for 3D "
+"geometries. Although this function works with Z-coordinate, it does an "
+"averaging of Z-Coordinate values when <code>postgis.backend=geos</code>. "
+"<code>postgis.backend=sfcgal</code>, it will return a 2D geometry regardless "
+"ignoring the Z-Coordinate. Refer to <xref linkend=\"postgis_backend\"/> for "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1112
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1114
+#, no-c-format
+msgid "Availability: 1.5 support for geography data type was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1117
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.18"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1121
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, "
+"0 2 )'::geometry));\n"
+" st_astext\n"
+"---------------\n"
+"GEOMETRYCOLLECTION EMPTY\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, "
+"0 2 )'::geometry));\n"
+" st_astext\n"
+"---------------\n"
+"POINT(0 0)\n"
+"(1 row)\n"
+"\n"
+"---Clip all lines (trails) by country (here we assume country geom are "
+"POLYGON or MULTIPOLYGONS)\n"
+"-- NOTE: we are only keeping intersections that result in a LINESTRING or "
+"MULTILINESTRING because we don't\n"
+"-- care about trails that just share a point\n"
+"-- the dump is needed to expand a geometry collection into individual single "
+"MULT* parts\n"
+"-- the below is fairly generic and will work for polys, etc. by just "
+"changing the where clause\n"
+"SELECT clipped.gid, clipped.f_name, clipped_geom\n"
+"FROM (SELECT trails.gid, trails.f_name, (ST_Dump(ST_Intersection(country."
+"the_geom, trails.the_geom))).geom As clipped_geom\n"
+"FROM country\n"
+"        INNER JOIN trails\n"
+"        ON ST_Intersects(country.the_geom, trails.the_geom))  As clipped\n"
+"        WHERE ST_Dimension(clipped.clipped_geom) = 1 ;\n"
+"\n"
+"--For polys e.g. polygon landmarks, you can also use the sometimes faster "
+"hack that buffering anything by 0.0\n"
+"-- except a polygon results in an empty geometry collection\n"
+"--(so a geometry collection containing polys, lines and points)\n"
+"-- buffered by 0.0 would only leave the polygons and dissolve the collection "
+"shell\n"
+"SELECT poly.gid,  ST_Multi(ST_Buffer(\n"
+"                                ST_Intersection(country.the_geom, poly."
+"the_geom),\n"
+"                                0.0)\n"
+"                                ) As clipped_geom\n"
+"FROM country\n"
+"        INNER JOIN poly\n"
+"        ON ST_Intersects(country.the_geom, poly.the_geom)\n"
+"        WHERE Not ST_IsEmpty(ST_Buffer(ST_Intersection(country.the_geom, "
+"poly.the_geom),0.0));"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1125
+#, no-c-format
+msgid "Examples: 2.5Dish"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1126
+#, no-c-format
+msgid ""
+"Geos is the default backend if not set. Note this is not a true "
+"intersection, compare to the same example using <xref linkend="
+"\"ST_3DIntersection\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1127
+#, no-c-format
+msgid ""
+"set postgis.backend=geos; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"               st_astext\n"
+"---------------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8,0 0 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1129
+#, no-c-format
+msgid ""
+"If your PostGIS is compiled with sfcgal support, have option of using "
+"sfcgal, but note if basically cases down both geometries to 2D before doing "
+"intersection and returns the ST_Force2D equivalent result which is a 2D "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1131
+#, no-c-format
+msgid ""
+"set postgis.backend=sfcgal; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"                     wkt\n"
+"----------------------------------------------\n"
+" MULTILINESTRING((0.5 0.5,0 0),(1 1,0.5 0.5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1135
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Difference\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Dump\"/>, <xref linkend=\"ST_Force2D\"/>, <xref linkend="
+"\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Multi\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1141
+#, no-c-format
+msgid "ST_LineToCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1143
+#, no-c-format
+msgid "Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1148
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineToCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomANoncircular</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1158
+#, no-c-format
+msgid ""
+"Converts plain LINESTRING/POLYGONS to CIRCULAR STRINGs and Curved Polygons. "
+"Note much fewer points are needed to describe the curved equivalent."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1167
+#, no-c-format
+msgid "Examples: 2D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1169
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LineToCurve(foo.the_geom)) As curvedastext,ST_AsText(foo."
+"the_geom) As non_curvedastext\n"
+"        FROM (SELECT ST_Buffer('POINT(1 3)'::geometry, 3) As the_geom) As "
+"foo;\n"
+"\n"
+"curvedatext                                                            "
+"non_curvedastext\n"
+"--------------------------------------------------------------------|-----------------------------------------------------------------\n"
+"CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359, | "
+"POLYGON((4 3,3.94235584120969 2.41472903395162,3.77163859753386 "
+"1.85194970290473,\n"
+"1 0,-1.12132034355965 5.12132034355963,4 3))                        |  "
+"3.49440883690764 1.33328930094119,3.12132034355964 0.878679656440359,\n"
+"                                                                    |  "
+"2.66671069905881 0.505591163092366,2.14805029709527 0.228361402466141,\n"
+"                                                                    |  "
+"1.58527096604839 0.0576441587903094,1 0,\n"
+"                                                                    |  "
+"0.414729033951621 0.0576441587903077,-0.148050297095264 0.228361402466137,\n"
+"                                                                    |  "
+"-0.666710699058802 0.505591163092361,-1.12132034355964 0.878679656440353,\n"
+"                                                                    |  "
+"-1.49440883690763 1.33328930094119,-1.77163859753386 1.85194970290472\n"
+"                                                                    |  --"
+"ETC-- ,3.94235584120969 3.58527096604839,4 3))\n"
+"--3D example\n"
+"SELECT ST_AsEWKT(ST_LineToCurve(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 8, 5 "
+"6 4, 7 8 4, 9 10 4)')));\n"
+"\n"
+"                         st_asewkt\n"
+"------------------------------------\n"
+" CIRCULARSTRING(1 2 3,5 6 4,9 10 4)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1184
+#, no-c-format
+msgid "ST_MakeValid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1185
+#, no-c-format
+msgid "Attempts to make an invalid geometry valid without losing vertices."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1190
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakeValid</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1199
+#, no-c-format
+msgid ""
+"The function attempts to create a valid representation of a given invalid "
+"geometry without losing any of the input vertices. Already-valid geometries "
+"are returned without further intervention."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1205
+#, no-c-format
+msgid ""
+"Supported inputs are: POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
+"POLYGONS, MULTIPOLYGONS and GEOMETRYCOLLECTIONS containing any mix of them."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1211
+#, no-c-format
+msgid ""
+"In case of full or partial dimensional collapses, the output geometry may be "
+"a collection of lower-to-equal dimension geometries or a geometry of lower "
+"dimension."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1217
+#, no-c-format
+msgid ""
+"Single polygons may become multi-geometries in case of self-intersections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1221
+#, no-c-format
+msgid "Availability: 2.0.0, requires GEOS-3.3.0"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1222
+#, no-c-format
+msgid "Enhanced: 2.0.1, speed improvements requires GEOS-3.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1223
+#, no-c-format
+msgid "Enhanced: 2.1.0 added support for GEOMETRYCOLLECTION and MULTIPOINT."
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1240
+#, no-c-format
+msgid "ST_MemUnion"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1242
+#, no-c-format
+msgid ""
+"Same as ST_Union, only memory-friendly (uses less memory and more processor "
+"time)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1248
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MemUnion</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1259
+#, no-c-format
+msgid "Some useful description here."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1263
+#, no-c-format
+msgid ""
+"Same as ST_Union, only memory-friendly (uses less memory and more processor "
+"time). This aggregate function works by unioning the geometries one at a "
+"time to previous result as opposed to ST_Union aggregate which first creates "
+"an array and then unions"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1275
+#, no-c-format
+msgid "See ST_Union"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1288
+#, no-c-format
+msgid "ST_MinimumBoundingCircle"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1289
+#, no-c-format
+msgid ""
+"Returns the smallest circle polygon that can fully contain a geometry. "
+"Default uses 48 segments per quarter circle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1295
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinimumBoundingCircle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>num_segs_per_qt_circ=48</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1305
+#, no-c-format
+msgid "Returns the smallest circle polygon that can fully contain a geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1306
+#, no-c-format
+msgid ""
+"The circle is approximated by a polygon with a default of 48 segments per "
+"quarter circle. This number can be increased with little performance penalty "
+"to obtain a more accurate result."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1308
+#, no-c-format
+msgid ""
+"It is often used with MULTI and Geometry Collections. Although it is not an "
+"aggregate - you can use it in conjunction with ST_Collect to get the minimum "
+"bounding circle of a set of geometries. "
+"ST_MinimumBoundingCircle(ST_Collect(somepointfield))."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1313
+#, no-c-format
+msgid ""
+"The ratio of the area of a polygon divided by the area of its Minimum "
+"Bounding Circle is often referred to as the Roeck test."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1315
+#, no-c-format
+msgid "Availability: 1.4.0 - requires GEOS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1322
+#, no-c-format
+msgid ""
+"SELECT d.disease_type,\n"
+"        ST_MinimumBoundingCircle(ST_Collect(d.the_geom)) As the_geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1328
+#, no-c-format
+msgid ""
+"Minimum bounding circle of a point and linestring. Using 8 segs to "
+"approximate a quarter circle"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1331
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MinimumBoundingCircle(\n"
+"                ST_Collect(\n"
+"                        ST_GeomFromEWKT('LINESTRING(55 75,125 150)'),\n"
+"                                ST_Point(20, 80)), 8\n"
+"                                )) As wktmbc;\n"
+"wktmbc\n"
+"-----------\n"
+"POLYGON((135.59714732062 115,134.384753327498 "
+"102.690357210921,130.79416296937 90.8537670908995,124.963360620072 "
+"79.9451031602111,117.116420743937 70.3835792560632,107.554896839789 "
+"62.5366393799277,96.6462329091006 56.70583703063,84.8096427890789 "
+"53.115246672502,72.5000000000001 51.9028526793802,60.1903572109213 "
+"53.1152466725019,48.3537670908996 56.7058370306299,37.4451031602112 "
+"62.5366393799276,27.8835792560632 70.383579256063,20.0366393799278 "
+"79.9451031602109,14.20583703063 90.8537670908993,10.615246672502 "
+"102.690357210921,9.40285267938019 115,10.6152466725019 "
+"127.309642789079,14.2058370306299 139.1462329091,20.0366393799275 "
+"150.054896839789,27.883579256063 159.616420743937,\n"
+"37.4451031602108 167.463360620072,48.3537670908992 "
+"173.29416296937,60.190357210921 176.884753327498,\n"
+"72.4999999999998 178.09714732062,84.8096427890786 "
+"176.884753327498,96.6462329091003 173.29416296937,107.554896839789 "
+"167.463360620072,\n"
+"117.116420743937 159.616420743937,124.963360620072 "
+"150.054896839789,130.79416296937 139.146232909101,134.384753327498 "
+"127.309642789079,135.59714732062 115))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1335
+#, no-c-format
+msgid ", <xref linkend=\"ST_ConvexHull\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1341
+#, no-c-format
+msgid "ST_Polygonize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1343
+#, no-c-format
+msgid ""
+"Aggregate. Creates a GeometryCollection containing possible polygons formed "
+"from the constituent linework of a set of geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:1349
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Polygonize</function></"
+"funcdef> <paramdef><type>geometry set</type> <parameter>geomfield</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Polygonize</function></funcdef> <paramdef><type>geometry[]</"
+"type> <parameter>geom_array</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1365
+#, no-c-format
+msgid ""
+"Creates a GeometryCollection containing possible polygons formed from the "
+"constituent linework of a set of geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1370
+#, no-c-format
+msgid ""
+"Geometry Collections are often difficult to deal with with third party "
+"tools, so use ST_Polygonize in conjunction with <xref linkend=\"ST_Dump\"/> "
+"to dump the polygons out into individual polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1378
+#, no-c-format
+msgid "Availability: 1.0.0RC1 - requires GEOS >= 2.1.0."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1382
+#, no-c-format
+msgid "Examples: Polygonizing single linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1383
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Polygonize(the_geom_4269)) As geomtextrep\n"
+"FROM (SELECT the_geom_4269 FROM ma.suffolk_edges ORDER BY tlid LIMIT 45) As "
+"foo;\n"
+"\n"
+"geomtextrep\n"
+"-------------------------------------\n"
+" SRID=4269;GEOMETRYCOLLECTION(POLYGON((-71.040878 42.285678,-71.040943 "
+"42.2856,-71.04096 42.285752,-71.040878 42.285678)),\n"
+" POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 "
+"42.354358,-71.171794 42.354971,-71.170511 42.354855,\n"
+" -71.17112 42.354238,-71.17166 42.353675)))\n"
+"(1 row)\n"
+"\n"
+"--Use ST_Dump to dump out the polygonize geoms into individual polygons\n"
+"SELECT ST_AsEWKT((ST_Dump(foofoo.polycoll)).geom) As geomtextrep\n"
+"FROM (SELECT ST_Polygonize(the_geom_4269) As polycoll\n"
+"        FROM (SELECT the_geom_4269 FROM ma.suffolk_edges\n"
+"                ORDER BY tlid LIMIT 45) As foo) As foofoo;\n"
+"\n"
+"geomtextrep\n"
+"------------------------\n"
+" SRID=4269;POLYGON((-71.040878 42.285678,-71.040943 42.2856,-71.04096 "
+"42.285752,\n"
+"-71.040878 42.285678))\n"
+" SRID=4269;POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 "
+"42.354358\n"
+",-71.171794 42.354971,-71.170511 42.354855,-71.17112 42.354238,-71.17166 "
+"42.353675))\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1397
+#, no-c-format
+msgid "ST_Node"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1399
+#, no-c-format
+msgid "Node a set of linestrings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1406
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Node</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1417
+#, no-c-format
+msgid ""
+"Fully node a set of linestrings using the least possible number of nodes "
+"while preserving all of the input ones."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1424 reference_processing.xml:2168
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1426
+#, no-c-format
+msgid ""
+"Due to a bug in GEOS up to 3.3.1 this function fails to node self-"
+"intersecting lines. This is fixed with GEOS 3.3.2 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1433
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(\n"
+"                ST_Node('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'::"
+"geometry)\n"
+"        ) As  output;\n"
+"output\n"
+"-----------\n"
+"MULTILINESTRING((0 0 0,5 5 4.5),(5 5 4.5,10 10 10,0 10 5,5 5 4.5),(5 5 "
+"4.5,10 0 3))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1448
+#, no-c-format
+msgid "ST_OffsetCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1450
+#, no-c-format
+msgid ""
+"Return an offset line at a given distance and side from an input line. "
+"Useful for computing parallel lines about a center line"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1458
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_OffsetCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>signed_distance</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>style_parameters=''</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1471
+#, no-c-format
+msgid ""
+"Return an offset line at a given distance and side from an input line. All "
+"points of the returned geometries are not further than the given distance "
+"from the input geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1477
+#, no-c-format
+msgid ""
+"For positive distance the offset will be at the left side of the input line "
+"and retain the same direction. For a negative distance it'll be at the right "
+"side and in the opposite direction."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1483
+#, no-c-format
+msgid ""
+"Availability: 2.0 - requires GEOS >= 3.2, improved with GEOS >= 3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1487
+#, no-c-format
+msgid ""
+"The optional third parameter allows specifying a list of blank-separated "
+"key=value pairs to tweak operations as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1495
+#, no-c-format
+msgid ""
+"'join=round|mitre|bevel' : join style (defaults to \"round\"). 'miter' is "
+"also accepted as a synonym for 'mitre'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1498
+#, no-c-format
+msgid ""
+"'mitre_limit=#.#' : mitre ratio limit (only affects mitred join style). "
+"'miter_limit' is also accepted as a synonym for 'mitre_limit'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1503
+#, no-c-format
+msgid ""
+"Units of distance are measured in units of the spatial reference system."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1507
+#, no-c-format
+msgid "The inputs can only be LINESTRINGS."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1511
+#, no-c-format
+msgid ""
+"This function ignores the third dimension (z) and will always give a 2-d "
+"result even when presented with a 3d-geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1519
+#, no-c-format
+msgid "Compute an open buffer around roads"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1520
+#, no-c-format
+msgid ""
+"SELECT ST_Union(\n"
+" ST_OffsetCurve(f.the_geom,  f.width/2, 'quad_segs=4 join=round'),\n"
+" ST_OffsetCurve(f.the_geom, -f.width/2, 'quad_segs=4 join=round')\n"
+") as track\n"
+"FROM someroadstable;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1530
+#, no-c-format
+msgid "15, 'quad_segs=4 join=round' original line and its offset 15 units."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1534
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)'),\n"
+"        15, 'quad_segs=4 join=round'));\n"
+"--output --\n"
+"LINESTRING(164 1,18 1,12.2597485145237 2.1418070123307,\n"
+"        7.39339828220179 5.39339828220179,\n"
+"        5.39339828220179 7.39339828220179,\n"
+"        2.14180701233067 12.2597485145237,1 18,1 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1541
+#, no-c-format
+msgid "-15, 'quad_segs=4 join=round' original line and its offset -15 units"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1545
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(geom,\n"
+"        -15, 'quad_segs=4 join=round')) As notsocurvy\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- notsocurvy --\n"
+"LINESTRING(31 195,31 31,164 31)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1554
+#, no-c-format
+msgid ""
+"double-offset to get more curvy, note the first reverses direction, so -30 + "
+"15 = -15"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1557
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_OffsetCurve(geom,\n"
+"        -30, 'quad_segs=4 join=round'), -15, 'quad_segs=4 join=round')) As "
+"morecurvy\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- morecurvy --\n"
+"LINESTRING(164 31,46 31,40.2597485145236 32.1418070123307,\n"
+"35.3933982822018 35.3933982822018,\n"
+"32.1418070123307 40.2597485145237,31 46,31 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1564
+#, no-c-format
+msgid ""
+"double-offset to get more curvy,combined with regular offset 15 to get "
+"parallel lines. Overlaid with original."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1567
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(\n"
+"        ST_OffsetCurve(geom, 15, 'quad_segs=4 join=round'), \n"
+"        ST_OffsetCurve(ST_OffsetCurve(geom,\n"
+"        -30, 'quad_segs=4 join=round'), -15, 'quad_segs=4 join=round')\n"
+"        )\n"
+") As parallel_curves\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- parallel curves  --\n"
+"MULTILINESTRING((164 1,18 1,12.2597485145237 2.1418070123307,\n"
+"7.39339828220179 5.39339828220179,5.39339828220179 7.39339828220179,\n"
+"2.14180701233067 12.2597485145237,1 18,1 195),\n"
+"(164 31,46 31,40.2597485145236 32.1418070123307,35.3933982822018 "
+"35.3933982822018,\n"
+"32.1418070123307 40.2597485145237,31 46,31 195))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1576
+#, no-c-format
+msgid "15, 'quad_segs=4 join=bevel' shown with original line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1579
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)'), \n"
+"                15, 'quad_segs=4 join=bevel'));\n"
+"-- output --\n"
+"LINESTRING(164 1,18 1,7.39339828220179 5.39339828220179,\n"
+"        5.39339828220179 7.39339828220179,1 18,1 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1587
+#, no-c-format
+msgid "15,-15 collected, join=mitre mitre_limit=2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1590
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(\n"
+"        ST_OffsetCurve(geom, 15, 'quad_segs=4 join=mitre mitre_limit=2.2'),\n"
+"        ST_OffsetCurve(geom, -15, 'quad_segs=4 join=mitre mitre_limit=2.2')\n"
+"        ) )\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- output --\n"
+"MULTILINESTRING((164 1,11.7867965644036 1,1 11.7867965644036,1 195),\n"
+"        (31 195,31 31,164 31))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1607
+#, no-c-format
+msgid "ST_RemoveRepeatedPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1608
+#, no-c-format
+msgid "Returns a version of the given geometry with duplicated points removed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1614
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RemoveRepeatedPoints</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1623
+#, no-c-format
+msgid ""
+"Returns a version of the given geometry with duplicated points removed. Will "
+"actually do something only with (multi)lines, (multi)polygons and "
+"multipoints but you can safely call it with any kind of geometry. Since "
+"simplification occurs on a object-by-object basis you can also feed a "
+"GeometryCollection to this function."
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1643
+#, no-c-format
+msgid "ST_SharedPaths"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1644
+#, no-c-format
+msgid ""
+"Returns a collection containing paths shared by the two input linestrings/"
+"multilinestrings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1649
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SharedPaths</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>lineal1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>lineal2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1659
+#, no-c-format
+msgid ""
+"Returns a collection containing paths shared by the two input geometries. "
+"Those going in the same direction are in the first element of the "
+"collection, those going in the opposite direction are in the second element. "
+"The paths themselves are given in the direction of the first geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1664
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1667
+#, no-c-format
+msgid "Examples: Finding shared paths"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1677
+#, no-c-format
+msgid "A multilinestring and a linestring"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1688
+#, no-c-format
+msgid ""
+"The shared path of multilinestring and linestring overlaid with original "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1691
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_SharedPaths(\n"
+"    ST_GeomFromText('MULTILINESTRING((26 125,26 200,126 200,126 125,26 "
+"125),\n"
+"            (51 150,101 150,76 175,51 150))'),\n"
+"         ST_GeomFromText('LINESTRING(151 100,126 156.25,126 125,90 161, 76 "
+"175)')\n"
+"         )\n"
+"  ) As wkt\n"
+"\n"
+"                                wkt\n"
+"-------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(MULTILINESTRING((126 156.25,126 125),\n"
+" (101 150,90 161),(90 161,76 175)),MULTILINESTRING EMPTY)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1697
+#, no-c-format
+msgid ""
+"-- same example but linestring orientation flipped\n"
+"SELECT ST_AsText(\n"
+"  ST_SharedPaths(\n"
+"   ST_GeomFromText('LINESTRING(76 175,90 161,126 125,126 156.25,151 100)'),\n"
+"   ST_GeomFromText('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),\n"
+"            (51 150,101 150,76 175,51 150))')\n"
+"         )\n"
+"  ) As wkt\n"
+"\n"
+"                                wkt\n"
+"-------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(MULTILINESTRING EMPTY,\n"
+"MULTILINESTRING((76 175,90 161),(90 161,101 150),(126 125,126 156.25)))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1707
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1717
+#, no-c-format
+msgid "ST_Shift_Longitude"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1719
+#, no-c-format
+msgid ""
+"<refpurpose>Reads every point/vertex in every component of every feature in "
+"a geometry, and if the longitude coordinate is <0, adds 360 to it. The "
+"result would be a 0-360 version of the data to be plotted in a 180 centric "
+"map</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1727
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Shift_Longitude</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1737
+#, no-c-format
+msgid ""
+"<para>Reads every point/vertex in every component of every feature in a "
+"geometry, and if the longitude coordinate is <0, adds 360 to it. The "
+"result would be a 0-360 version of the data to be plotted in a 180 centric "
+"map</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1741
+#, no-c-format
+msgid "This is only useful for data in long lat e.g. 4326 (WGS 84 long lat)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1743
+#, no-c-format
+msgid ""
+"Pre-1.3.4 bug prevented this from working for MULTIPOINT. 1.3.4+ works with "
+"MULTIPOINT as well."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1748
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1757
+#, no-c-format
+msgid ""
+"--3d points\n"
+"SELECT ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(-118.58 "
+"38.38 10)'))) As geomA,\n"
+"        ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(241.42 "
+"38.38 10)'))) As geomb\n"
+"geomA                                                          geomB\n"
+"----------                                                  -----------\n"
+"SRID=4326;POINT(241.42 38.38 10) SRID=4326;POINT(-118.58 38.38 10)\n"
+"\n"
+"--regular line string\n"
+"SELECT ST_AsText(ST_Shift_Longitude(ST_GeomFromText('LINESTRING(-118.58 "
+"38.38, -118.20 38.45)')))\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(241.42 38.38,241.8 38.45)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1763
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_AsEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1769
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1770
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1776
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1786
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will actually do something only with (multi)lines and "
+"(multi)polygons but you can safely call it with any kind of geometry. Since "
+"simplification occurs on a object-by-object basis you can also feed a "
+"GeometryCollection to this function."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1793
+#, no-c-format
+msgid ""
+"Note that returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1795
+#, no-c-format
+msgid ""
+"Note topology may not be preserved and may result in invalid geometries. Use "
+"(see <xref linkend=\"ST_SimplifyPreserveTopology\"/>) to preserve topology."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1797
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1802
+#, no-c-format
+msgid "A circle simplified too much becomes a triangle, medium an octagon,"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1803
+#, no-c-format
+msgid ""
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_Simplify(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_Simplify(the_geom,0.5)) As np05_notquitecircle,\n"
+"ST_NPoints(ST_Simplify(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_Simplify(the_geom,10)) As np10_triangle,\n"
+"(ST_Simplify(the_geom,100) is null) As  np100_geometrygoesaway\n"
+"FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
+"-result\n"
+" np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | "
+"np10_triangle | np100_geometrygoesaway\n"
+"-----------+-------------------+---------------------+-------------"
+"+---------------+------------------------\n"
+"                49 |                33 |                  17 |           9 "
+"|             4 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1807
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_SimplifyPreserveTopology\"/>, Topology <xref linkend="
+"\"TP_ST_Simplify\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1813
+#, no-c-format
+msgid "ST_SimplifyPreserveTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1814
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will avoid creating derived geometries (polygons in "
+"particular) that are invalid."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1821
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SimplifyPreserveTopology</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1831
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will avoid creating derived geometries (polygons in "
+"particular) that are invalid. Will actually do something only with "
+"(multi)lines and (multi)polygons but you can safely call it with any kind of "
+"geometry. Since simplification occurs on a object-by-object basis you can "
+"also feed a GeometryCollection to this function."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1840
+#, no-c-format
+msgid "Requires GEOS 3.0.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1841
+#, no-c-format
+msgid "Availability: 1.3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1846
+#, no-c-format
+msgid ""
+"Same example as Simplify, but we see Preserve Topology prevents "
+"oversimplification. The circle can at most become a square."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1847
+#, no-c-format
+msgid ""
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.5)) As "
+"np05_notquitecircle,\n"
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,10)) As np10_square,\n"
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,100)) As  np100_stillsquare\n"
+"FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
+"\n"
+"--result--\n"
+" np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | "
+"np10_square | np100_stillsquare\n"
+"-----------+-------------------+---------------------+-------------"
+"+---------------+-------------------\n"
+"                49 |                33 |                  17 |           9 "
+"|             5 |                 5"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1857
+#, no-c-format
+msgid "ST_Split"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1858
+#, no-c-format
+msgid "Returns a collection of geometries resulting by splitting a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1863
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Split</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>blade</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1873
+#, no-c-format
+msgid ""
+"The function supports splitting a line by point, a line by line, a polygon "
+"by line. The returned geometry is always a collection."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1877
+#, no-c-format
+msgid ""
+"Think of this function as the opposite of ST_Union. Theoretically applying "
+"ST_Union to the elements of the returned collection should always yield the "
+"original geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1884
+#, no-c-format
+msgid ""
+"To improve the robustness of ST_Split it may be convenient to <xref linkend="
+"\"ST_Snap\"/> the input to the blade in advance using a very low tolerance. "
+"Otherwise the internally used coordinate grid may cause tolerance problems, "
+"where coordinates of input and blade do not fall onto each other and the "
+"input is not being split correctly (see <ulink url=\"http://trac.osgeo.org/"
+"postgis/ticket/2192\">#2192</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1889
+#, no-c-format
+msgid "Polygon Cut by Line"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1901 reference_processing.xml:1935
+#, no-c-format
+msgid "Before Split"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1913 reference_processing.xml:1947
+#, no-c-format
+msgid "After split"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1922
+#, no-c-format
+msgid ""
+"-- this creates a geometry collection consisting of the 2 halves of the "
+"polygon\n"
+"-- this is similar to the example we demonstrated in ST_BuildArea\n"
+"SELECT ST_Split(circle, line)\n"
+"FROM (SELECT \n"
+"    ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)) As line,\n"
+"    ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"    \n"
+"-- result --\n"
+" GEOMETRYCOLLECTION(POLYGON((150 90,149.039264020162 "
+"80.2454838991936,146.193976625564 70.8658283817455,..), POLYGON(..)))\n"
+" \n"
+"-- To convert to individual polygons, you can use ST_Dump or ST_GeometryN\n"
+"SELECT ST_AsText((ST_Dump(ST_Split(circle, line))).geom) As wkt\n"
+"FROM (SELECT \n"
+"    ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)) As line,\n"
+"    ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"    \n"
+"-- result --\n"
+"wkt\n"
+"---------------\n"
+"POLYGON((150 90,149.039264020162 80.2454838991936,..))\n"
+"POLYGON((60.1371179574584 60.1371179574584,58.4265193848728 "
+"62.2214883490198,53.8060233744357 ..))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1923
+#, no-c-format
+msgid "Multilinestring Cut by point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1956
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Split(mline, pt)) As wktcut\n"
+"        FROM (SELECT \n"
+"    ST_GeomFromText('MULTILINESTRING((10 10, 190 190), (15 15, 30 30, 100 "
+"90))') As mline,\n"
+"    ST_Point(30,30) As pt) As foo;\n"
+"    \n"
+"wktcut\n"
+"------\n"
+"GEOMETRYCOLLECTION(\n"
+"    LINESTRING(10 10,30 30),\n"
+"    LINESTRING(30 30,190 190),\n"
+"    LINESTRING(15 15,30 30),\n"
+"    LINESTRING(30 30,100 90)\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1960
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_BuildArea\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
+"linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1966
+#, no-c-format
+msgid "ST_SymDifference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1968
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the portions of A and B that do not "
+"intersect. It is called a symmetric difference because ST_SymDifference(A,B) "
+"= ST_SymDifference(B,A)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1975
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SymDifference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1986
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the portions of A and B that do not "
+"intersect. It is called a symmetric difference because ST_SymDifference(A,B) "
+"= ST_SymDifference(B,A). One can think of this as ST_Union(geomA,geomB) - "
+"ST_Intersection(A,B)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1996
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.21"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2016
+#, no-c-format
+msgid "The original linestrings shown together"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2028
+#, no-c-format
+msgid "The symmetric difference of the two linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2037
+#, no-c-format
+msgid ""
+"--Safe for 2d - symmetric difference of 2 linestrings\n"
+"SELECT ST_AsText(\n"
+"        ST_SymDifference(\n"
+"                ST_GeomFromText('LINESTRING(50 100, 50 200)'),\n"
+"                ST_GeomFromText('LINESTRING(50 50, 50 150)')\n"
+"        )\n"
+");\n"
+"\n"
+"st_astext\n"
+"---------\n"
+"MULTILINESTRING((50 150,50 200),(50 50,50 100))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2039
+#, no-c-format
+msgid ""
+"--When used in 3d doesn't quite do the right thing\n"
+"SELECT ST_AsEWKT(ST_SymDifference(ST_GeomFromEWKT('LINESTRING(1 2 1, 1 4 "
+"2)'),\n"
+"        ST_GeomFromEWKT('LINESTRING(1 1 3, 1 3 4)')))\n"
+"\n"
+"st_astext\n"
+"------------\n"
+"MULTILINESTRING((1 3 2.75,1 4 2),(1 1 3,1 2 2.25))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2046
+#, no-c-format
+msgid ", <xref linkend=\"ST_Intersection\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:2053
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:2054
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the point set union of the Geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:2059
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Union</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2078
+#, no-c-format
+msgid ""
+"Output type can be a MULTI*, single geometry, or Geometry Collection. Comes "
+"in 2 variants. Variant 1 unions 2 geometries resulting in a new geometry "
+"with no intersecting regions. Variant 2 is an aggregate function that takes "
+"a set of geometries and unions them into a single ST_Geometry resulting in "
+"no intersecting regions."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2082
+#, no-c-format
+msgid ""
+"Aggregate version: This function returns a MULTI geometry or NON-MULTI "
+"geometry from a set of geometries. The ST_Union() function is an \"aggregate"
+"\" function in the terminology of PostgreSQL. That means that it operates on "
+"rows of data, in the same way the SUM() and AVG() functions do and like most "
+"aggregates, it also ignores NULL geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2088
+#, no-c-format
+msgid ""
+"Non-Aggregate version: This function returns a geometry being a union of two "
+"input geometries. Output type can be a MULTI*, NON-MULTI or "
+"GEOMETRYCOLLECTION. If any are NULL, then NULL is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2092
+#, no-c-format
+msgid ""
+"ST_Collect and ST_Union are often interchangeable. ST_Union is in general "
+"orders of magnitude slower than ST_Collect because it tries to dissolve "
+"boundaries and reorder geometries to ensure that a constructed Multi* "
+"doesn't have intersecting regions."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2098
+#, no-c-format
+msgid ""
+"NOTE: this function was formerly called GeomUnion(), which was renamed from "
+"\"Union\" because UNION is an SQL reserved word."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2101
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_Union was enhanced. ST_Union(geomarray) was "
+"introduced and also faster aggregate collection in PostgreSQL. If you are "
+"using GEOS 3.1.0+ ST_Union will use the faster Cascaded Union algorithm "
+"described in <ulink url=\"http://blog.cleverelephant.ca/2009/01/must-faster-"
+"unions-in-postgis-14.html\">http://blog.cleverelephant.ca/2009/01/must-"
+"faster-unions-in-postgis-14.html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2107
+#, no-c-format
+msgid "Aggregate version is not explicitly defined in OGC SPEC."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2108
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3: 5.1.19 the z-index (elevation) when polygons are "
+"involved."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2114
+#, no-c-format
+msgid "Aggregate example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2115
+#, no-c-format
+msgid ""
+"SELECT stusps,\n"
+"           ST_Multi(ST_Union(f.the_geom)) as singlegeom\n"
+"         FROM sometable As f\n"
+"GROUP BY stusps"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2117
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
+"        ST_GeomFromText('POINT(-2 3)') ) )\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(-2 3,1 2)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
+"                ST_GeomFromText('POINT(1 2)') ) );\n"
+"st_astext\n"
+"----------\n"
+"POINT(1 2)\n"
+"\n"
+"--3d example - sort of supports 3d (and with mixed dimensions!)\n"
+"SELECT ST_AsEWKT(st_union(the_geom))\n"
+"FROM\n"
+"(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2,-7.1 4.2,-7.1 4.3,\n"
+"-7 4.2))') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom\n"
+"UNION ALL\n"
+"        SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 "
+"5,-7.1 4.2 5,-7.1 4.3 5,-7 4.2 5)));\n"
+"\n"
+"--3d example not mixing dimensions\n"
+"SELECT ST_AsEWKT(st_union(the_geom))\n"
+"FROM\n"
+"(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2 2,-7.1 4.2 3,-7.1 4.3 2,\n"
+"-7 4.2 2))') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom\n"
+"UNION ALL\n"
+"        SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 "
+"2,-7.1 4.2 3,-7.1 4.3 2,-7 4.2 2)))\n"
+"\n"
+"--Examples using new Array construct\n"
+"SELECT ST_Union(ARRAY(SELECT the_geom FROM sometable));\n"
+"\n"
+"SELECT ST_AsText(ST_Union(ARRAY[ST_GeomFromText('LINESTRING(1 2, 3 4)'),\n"
+"                        ST_GeomFromText('LINESTRING(3 4, 4 5)')])) As "
+"wktunion;\n"
+"\n"
+"--wktunion---\n"
+"MULTILINESTRING((3 4,4 5),(1 2,3 4))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:2130
+#, no-c-format
+msgid "ST_UnaryUnion"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:2132
+#, no-c-format
+msgid "Like ST_Union, but working at the geometry component level."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:2137
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_UnaryUnion</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2148
+#, no-c-format
+msgid ""
+"Unlike ST_Union, ST_UnaryUnion does dissolve boundaries between components "
+"of a multipolygon (invalid) and does perform union between the components of "
+"a geometrycollection. Each components of the input geometry is assumed to be "
+"valid, so you won't get a valid multipolygon out of a bow-tie polygon "
+"(invalid)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2158
+#, no-c-format
+msgid ""
+"You may use this function to node a set of linestrings. You may mix "
+"ST_UnaryUnion with ST_Collect to fine-tune how many geometries at once you "
+"want to dissolve to be nice on both memory size and CPU time, finding the "
+"balance between ST_Union and ST_MemUnion."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2176
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MemUnion\"/>, <xref linkend=\"ST_Collect\"/>, <xref "
+"linkend=\"ST_Node\"/>"
+msgstr ""
diff --git a/doc/po/es/reference_raster.xml.po b/doc/po/es/reference_raster.xml.po
new file mode 100644
index 0000000..2639f54
--- /dev/null
+++ b/doc/po/es/reference_raster.xml.po
@@ -0,0 +1,16703 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_raster.xml:3
+#, no-c-format
+msgid "Raster Reference"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5
+#, no-c-format
+msgid ""
+"The functions given below are the ones which a user of PostGIS Raster is "
+"likely to need and which are currently available in PostGIS Raster. There "
+"are other functions which are required support functions to the raster "
+"objects which are not of use to a general user."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9
+#, no-c-format
+msgid ""
+"<varname>raster</varname> is a new PostGIS type for storing and analyzing "
+"raster data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10
+#, no-c-format
+msgid ""
+"For loading rasters from raster files please refer to <xref linkend="
+"\"RT_Loading_Rasters\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:12
+#, no-c-format
+msgid ""
+"For the examples in this reference we will be using a raster table of dummy "
+"rasters - Formed with the following code"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:13
+#, no-c-format
+msgid ""
+"CREATE TABLE dummy_rast(rid integer, rast raster);\n"
+"INSERT INTO dummy_rast(rid, rast)\n"
+"VALUES (1,\n"
+"('01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0000' -- nBands (uint16 0)\n"
+"||\n"
+"'0000000000000040' -- scaleX (float64 2)\n"
+"||\n"
+"'0000000000000840' -- scaleY (float64 3)\n"
+"||\n"
+"'000000000000E03F' -- ipX (float64 0.5)\n"
+"||\n"
+"'000000000000E03F' -- ipY (float64 0.5)\n"
+"||\n"
+"'0000000000000000' -- skewX (float64 0)\n"
+"||\n"
+"'0000000000000000' -- skewY (float64 0)\n"
+"||\n"
+"'00000000' -- SRID (int32 0)\n"
+"||\n"
+"'0A00' -- width (uint16 10)\n"
+"||\n"
+"'1400' -- height (uint16 20)\n"
+")::raster\n"
+"),\n"
+"-- Raster: 5 x 5 pixels, 3 bands, PT_8BUI pixel type, NODATA = 0\n"
+"(2,  ('01000003009A9999999999A93F9A9999999999A9BF000000E02B274A' ||\n"
+"'41000000007719564100000000000000000000000000000000FFFFFFFF050005000400FDFEFDFEFEFDFEFEFDF9FAFEF' "
+"||\n"
+"'EFCF9FBFDFEFEFDFCFAFEFEFE04004E627AADD16076B4F9FE6370A9F5FE59637AB0E54F58617087040046566487A1506CA2E3FA5A6CAFFBFE4D566DA4CB3E454C5665')::"
+"raster);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:17
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types specifically created to support "
+"raster functionality."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:20
+#, no-c-format
+msgid "Raster Support Data types"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:24
+#, no-c-format
+msgid "geomval"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:25
+#, no-c-format
+msgid ""
+"A spatial datatype with two fields - geom (holding a geometry object) and "
+"val (holding a double precision pixel value from a raster band)."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:30 reference_raster.xml:49 reference_raster.xml:121
+#: reference_raster.xml:171 reference_raster.xml:211 reference_raster.xml:257
+#: reference_raster.xml:354 reference_raster.xml:536 reference_raster.xml:710
+#: reference_raster.xml:777 reference_raster.xml:846 reference_raster.xml:889
+#: reference_raster.xml:924 reference_raster.xml:961 reference_raster.xml:1002
+#: reference_raster.xml:1058 reference_raster.xml:1103
+#: reference_raster.xml:1209 reference_raster.xml:1418
+#: reference_raster.xml:1505 reference_raster.xml:1601
+#: reference_raster.xml:1668 reference_raster.xml:1733
+#: reference_raster.xml:1775 reference_raster.xml:1825
+#: reference_raster.xml:1864 reference_raster.xml:1898
+#: reference_raster.xml:1935 reference_raster.xml:1978
+#: reference_raster.xml:2013 reference_raster.xml:2047
+#: reference_raster.xml:2097 reference_raster.xml:2151
+#: reference_raster.xml:2188 reference_raster.xml:2228
+#: reference_raster.xml:2283 reference_raster.xml:2338
+#: reference_raster.xml:2384 reference_raster.xml:2419
+#: reference_raster.xml:2455 reference_raster.xml:2491
+#: reference_raster.xml:2526 reference_raster.xml:2565
+#: reference_raster.xml:2599 reference_raster.xml:2633
+#: reference_raster.xml:2677 reference_raster.xml:2739
+#: reference_raster.xml:2794 reference_raster.xml:2835
+#: reference_raster.xml:2882 reference_raster.xml:2924
+#: reference_raster.xml:2975 reference_raster.xml:3010
+#: reference_raster.xml:3085 reference_raster.xml:3128
+#: reference_raster.xml:3174 reference_raster.xml:3232
+#: reference_raster.xml:3275 reference_raster.xml:3326
+#: reference_raster.xml:3369 reference_raster.xml:3441
+#: reference_raster.xml:3528 reference_raster.xml:3615
+#: reference_raster.xml:3703 reference_raster.xml:3788
+#: reference_raster.xml:3914 reference_raster.xml:4010
+#: reference_raster.xml:4062 reference_raster.xml:4110
+#: reference_raster.xml:4153 reference_raster.xml:4200
+#: reference_raster.xml:4244 reference_raster.xml:4282
+#: reference_raster.xml:4357 reference_raster.xml:4426
+#: reference_raster.xml:4494 reference_raster.xml:4571
+#: reference_raster.xml:4643 reference_raster.xml:4722
+#: reference_raster.xml:4830 reference_raster.xml:4865
+#: reference_raster.xml:4932 reference_raster.xml:4997
+#: reference_raster.xml:5110 reference_raster.xml:5231
+#: reference_raster.xml:5297 reference_raster.xml:5376
+#: reference_raster.xml:5522 reference_raster.xml:5565
+#: reference_raster.xml:5611 reference_raster.xml:5696
+#: reference_raster.xml:5787 reference_raster.xml:5875
+#: reference_raster.xml:5986 reference_raster.xml:6179
+#: reference_raster.xml:6455 reference_raster.xml:6599
+#: reference_raster.xml:6836 reference_raster.xml:7042
+#: reference_raster.xml:7166 reference_raster.xml:7492
+#: reference_raster.xml:7610 reference_raster.xml:7723
+#: reference_raster.xml:7865 reference_raster.xml:7951
+#: reference_raster.xml:8023 reference_raster.xml:8087
+#: reference_raster.xml:8158 reference_raster.xml:8233
+#: reference_raster.xml:8316 reference_raster.xml:8387
+#: reference_raster.xml:8443 reference_raster.xml:8518
+#: reference_raster.xml:8589 reference_raster.xml:8673
+#: reference_raster.xml:8765 reference_raster.xml:8847
+#: reference_raster.xml:8901 reference_raster.xml:8975
+#: reference_raster.xml:9023 reference_raster.xml:9075
+#: reference_raster.xml:9117 reference_raster.xml:9165
+#: reference_raster.xml:9216 reference_raster.xml:9264
+#: reference_raster.xml:9306 reference_raster.xml:9380
+#: reference_raster.xml:9425 reference_raster.xml:9470
+#: reference_raster.xml:9515 reference_raster.xml:9584
+#: reference_raster.xml:9631 reference_raster.xml:9704
+#: reference_raster.xml:9772 reference_raster.xml:9861
+#: reference_raster.xml:9946 reference_raster.xml:10027
+#: reference_raster.xml:10108 reference_raster.xml:10237
+#: reference_raster.xml:10321 reference_raster.xml:10401
+#: reference_raster.xml:10520 reference_raster.xml:10567
+#: reference_raster.xml:10639 reference_raster.xml:10736
+#: reference_raster.xml:10829
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:31
+#, no-c-format
+msgid ""
+"geomval is a compound data type consisting of a geometry object referenced "
+"by the .geom field and val, a double precision value that represents the "
+"pixel value at a particular geometric location in a raster band. It is used "
+"by the ST_DumpAsPolygon and Raster intersection family of functions as an "
+"output type to explode a raster band into geometry polygons."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:37 reference_raster.xml:107 reference_raster.xml:157
+#: reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:340
+#: reference_raster.xml:389 reference_raster.xml:584 reference_raster.xml:725
+#: reference_raster.xml:803 reference_raster.xml:863 reference_raster.xml:899
+#: reference_raster.xml:936 reference_raster.xml:974 reference_raster.xml:1022
+#: reference_raster.xml:1073 reference_raster.xml:1123
+#: reference_raster.xml:1253 reference_raster.xml:1470
+#: reference_raster.xml:1560 reference_raster.xml:1621
+#: reference_raster.xml:1697 reference_raster.xml:1748
+#: reference_raster.xml:1796 reference_raster.xml:1843
+#: reference_raster.xml:1877 reference_raster.xml:1913
+#: reference_raster.xml:1956 reference_raster.xml:1992
+#: reference_raster.xml:2026 reference_raster.xml:2070
+#: reference_raster.xml:2130 reference_raster.xml:2167
+#: reference_raster.xml:2205 reference_raster.xml:2250
+#: reference_raster.xml:2309 reference_raster.xml:2363
+#: reference_raster.xml:2398 reference_raster.xml:2434
+#: reference_raster.xml:2470 reference_raster.xml:2505
+#: reference_raster.xml:2539 reference_raster.xml:2578
+#: reference_raster.xml:2612 reference_raster.xml:2647
+#: reference_raster.xml:2697 reference_raster.xml:2754
+#: reference_raster.xml:2809 reference_raster.xml:2860
+#: reference_raster.xml:2895 reference_raster.xml:2950
+#: reference_raster.xml:2988 reference_raster.xml:3063
+#: reference_raster.xml:3100 reference_raster.xml:3142
+#: reference_raster.xml:3200 reference_raster.xml:3243
+#: reference_raster.xml:3294 reference_raster.xml:3337
+#: reference_raster.xml:3388 reference_raster.xml:3463
+#: reference_raster.xml:3553 reference_raster.xml:3647
+#: reference_raster.xml:3718 reference_raster.xml:3867
+#: reference_raster.xml:3932 reference_raster.xml:4088
+#: reference_raster.xml:4123 reference_raster.xml:4172
+#: reference_raster.xml:4217 reference_raster.xml:4257
+#: reference_raster.xml:4295 reference_raster.xml:4387
+#: reference_raster.xml:4452 reference_raster.xml:4521
+#: reference_raster.xml:4599 reference_raster.xml:4673
+#: reference_raster.xml:4795 reference_raster.xml:4843
+#: reference_raster.xml:4884 reference_raster.xml:4953
+#: reference_raster.xml:5014 reference_raster.xml:5145
+#: reference_raster.xml:5246 reference_raster.xml:5333
+#: reference_raster.xml:5393 reference_raster.xml:5540
+#: reference_raster.xml:5650 reference_raster.xml:5741
+#: reference_raster.xml:5832 reference_raster.xml:5912
+#: reference_raster.xml:6142 reference_raster.xml:6376
+#: reference_raster.xml:6520 reference_raster.xml:6767
+#: reference_raster.xml:7003 reference_raster.xml:7116
+#: reference_raster.xml:7408 reference_raster.xml:7567
+#: reference_raster.xml:7690 reference_raster.xml:7823
+#: reference_raster.xml:7894 reference_raster.xml:7982
+#: reference_raster.xml:8055 reference_raster.xml:8125
+#: reference_raster.xml:8194 reference_raster.xml:8276
+#: reference_raster.xml:8355 reference_raster.xml:8410
+#: reference_raster.xml:8479 reference_raster.xml:8550
+#: reference_raster.xml:8625 reference_raster.xml:8718
+#: reference_raster.xml:8815 reference_raster.xml:8858
+#: reference_raster.xml:8943 reference_raster.xml:8991
+#: reference_raster.xml:9042 reference_raster.xml:9092
+#: reference_raster.xml:9137 reference_raster.xml:9190
+#: reference_raster.xml:9236 reference_raster.xml:9279
+#: reference_raster.xml:9318 reference_raster.xml:9529
+#: reference_raster.xml:9597 reference_raster.xml:9650
+#: reference_raster.xml:9716 reference_raster.xml:9807
+#: reference_raster.xml:9892 reference_raster.xml:9973
+#: reference_raster.xml:10054 reference_raster.xml:10138
+#: reference_raster.xml:10267 reference_raster.xml:10348
+#: reference_raster.xml:10428 reference_raster.xml:10541
+#: reference_raster.xml:10585 reference_raster.xml:10672
+#: reference_raster.xml:10767 reference_raster.xml:10860
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:44
+#, no-c-format
+msgid "addbandarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:45
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_AddBand function "
+"defining the attributes and initial value of the new band.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:50
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_AddBand function defining "
+"the attributes and initial value of the new band.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:55
+#, no-c-format
+msgid "<parameter>index </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:60
+#, no-c-format
+msgid ""
+"1-based value indicating the position where the new band will be added "
+"amongst the raster's bands. If NULL, the new band will be added at the end "
+"of the raster's bands."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:67
+#, no-c-format
+msgid "<parameter>pixeltype </parameter> <type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:72
+#, no-c-format
+msgid ""
+"Pixel type of the new band. One of defined pixel types as described in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:79
+#, no-c-format
+msgid "<parameter>initialvalue </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:84
+#, no-c-format
+msgid "Initial value that all pixels of new band will be set to."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:91
+#, no-c-format
+msgid "<parameter>nodataval </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:96
+#, no-c-format
+msgid ""
+"NODATA value of the new band. If NULL, the new band will not have a NODATA "
+"value assigned."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:116
+#, no-c-format
+msgid "rastbandarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:117
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type for use when needing to express a raster and a "
+"band index of that raster.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:122
+#, no-c-format
+msgid ""
+"<para>A composite type for use when needing to express a raster and a band "
+"index of that raster.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:128
+#, no-c-format
+msgid "<parameter>rast </parameter> <type>raster</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:133
+#, no-c-format
+msgid "The raster in question/"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:140 reference_raster.xml:360
+#, no-c-format
+msgid "<parameter>nband </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:145
+#, no-c-format
+msgid "1-based value indicating the band of raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:166
+#, no-c-format
+msgid "raster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:167
+#, no-c-format
+msgid "raster spatial data type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:172
+#, no-c-format
+msgid ""
+"raster is a spatial data type used to represent raster data such as those "
+"imported from jpegs, tiffs, pngs, digital elevation models. Each raster has "
+"1 or more bands each having a set of pixel values. Rasters can be "
+"georeferenced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:175
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with GDAL support. Currently rasters can be "
+"implicitly converted to geometry type, but the conversion returns the <xref "
+"linkend=\"RT_ST_ConvexHull\"/> of the raster. This auto casting may be "
+"removed in the near future so don't rely on it."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:181
+#, no-c-format
+msgid "Casting Behavior"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:182
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:187
+#, no-c-format
+msgid "Cast To"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:188
+#, no-c-format
+msgid "Behavior"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:191
+#, no-c-format
+msgid "geometry"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:192
+#, no-c-format
+msgid "automatic"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:207
+#, no-c-format
+msgid "reclassarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:208
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_Reclass function "
+"defining the behavior of reclassification.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:212
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_Reclass function defining "
+"the behavior of reclassification.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:215
+#, no-c-format
+msgid "<parameter>nband </parameter><type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:216
+#, no-c-format
+msgid "The band number of band to reclassify."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:219
+#, no-c-format
+msgid "<parameter>reclassexpr </parameter><type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:220
+#, no-c-format
+msgid ""
+"range expression consisting of comma delimited range:map_range mappings. : "
+"to define mapping that defines how to map old band values to new band "
+"values. ( means >, ) means less than, ] < or equal, [ means > or "
+"equal"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:221
+#, no-c-format
+msgid ""
+"1. [a-b] = a <= x <= b\n"
+"\n"
+"2. (a-b] = a < x <= b\n"
+"\n"
+"3. [a-b) = a <= x < b\n"
+"\n"
+"4. (a-b) = a < x < b"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:222
+#, no-c-format
+msgid "( notation is optional so a-b means the same as (a-b)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:227
+#, no-c-format
+msgid "<parameter>pixeltype </parameter><type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:228
+#, no-c-format
+msgid ""
+"One of defined pixel types as described in <xref linkend="
+"\"RT_ST_BandPixelType\"/>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:231
+#, no-c-format
+msgid "<parameter>nodataval </parameter><type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:232
+#, no-c-format
+msgid ""
+"Value to treat as no data. For image outputs that support transparency, "
+"these will be blank."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:237
+#, no-c-format
+msgid "Example: Reclassify band 2 as an 8BUI where 255 is nodata value"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:238
+#, no-c-format
+msgid ""
+"SELECT ROW(2, '0-100:1-10, 101-500:11-150,501 - 10000: 151-254', '8BUI', "
+"255)::reclassarg;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:241
+#, no-c-format
+msgid "Example: Reclassify band 1 as an 1BB and no nodata value defined"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:242
+#, no-c-format
+msgid "SELECT ROW(1, '0-100]:0, (100-255:1', '1BB', NULL)::reclassarg;"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:252
+#, no-c-format
+msgid "summarystats"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:253
+#, no-c-format
+msgid ""
+"A composite type returned by the ST_SummaryStats and ST_SummaryStatsAgg "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:258
+#, no-c-format
+msgid ""
+"A composite type returned by the <xref linkend=\"RT_ST_SummaryStats\"/> and "
+"<xref linkend=\"RT_ST_SummaryStatsAgg\"/> functions."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:263
+#, no-c-format
+msgid "<parameter>count </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:268
+#, no-c-format
+msgid "Number of pixels counted for the summary statistics."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:275
+#, no-c-format
+msgid "<parameter>sum </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:280
+#, no-c-format
+msgid "Sum of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:287
+#, no-c-format
+msgid "<parameter>mean </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:292
+#, no-c-format
+msgid "Arithmetic mean of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:299
+#, no-c-format
+msgid "<parameter>stddev </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:304
+#, no-c-format
+msgid "Standard deviation of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:311
+#, no-c-format
+msgid "<parameter>min </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:316
+#, no-c-format
+msgid "Minimum value of counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:323
+#, no-c-format
+msgid "<parameter>max </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:328
+#, no-c-format
+msgid "Maximum value of counted pixel values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:341
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:349
+#, no-c-format
+msgid "unionarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:350
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_Union function "
+"defining the bands to be processed and behavior of the UNION operation.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:355
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_Union function defining the "
+"bands to be processed and behavior of the UNION operation.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:365
+#, no-c-format
+msgid "1-based value indicating the band of each input raster to be processed."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:372
+#, no-c-format
+msgid "<parameter>uniontype </parameter> <type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:377
+#, no-c-format
+msgid ""
+"Type of UNION operation. One of defined types as described in <xref linkend="
+"\"RT_ST_Union\"/>."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:399
+#, no-c-format
+msgid "Raster Management"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:402
+#, no-c-format
+msgid "AddRasterConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:404
+#, no-c-format
+msgid ""
+"Adds raster constraints to a loaded raster table for a specific column that "
+"constrains spatial ref, scaling, blocksize, alignment, bands, band type and "
+"a flag to denote if raster column is regularly blocked. The table must be "
+"loaded with data for the constraints to be inferred. Returns true of the "
+"constraint setting was accomplished and if issues a notice."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:408
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>scale_x=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:538
+#, no-c-format
+msgid ""
+"Generates constraints on a raster column that are used to display "
+"information in the <varname>raster_columns</varname> raster catalog. The "
+"<varname>rastschema</varname> is the name of the table schema the table "
+"resides in. The <varname>srid</varname> must be an integer value reference "
+"to an entry in the SPATIAL_REF_SYS table."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:543
+#, no-c-format
+msgid ""
+"<varname>raster2pgsql</varname> loader uses this function to register raster "
+"tables"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:544
+#, no-c-format
+msgid ""
+"Valid constraint names to pass in: refer to <xref linkend=\"RT_Raster_Columns"
+"\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:546
+#, no-c-format
+msgid "<varname>blocksize</varname> sets both X and Y blocksize"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:547
+#, no-c-format
+msgid ""
+"<varname>blocksize_x</varname> sets X tile (width in pixels of each tile)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:548
+#, no-c-format
+msgid ""
+"<varname>blocksize_y</varname> sets Y tile (height in pixels of each tile)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:549
+#, no-c-format
+msgid ""
+"<varname>extent</varname> computes extent of whole table and applys "
+"constraint all rasters must be within that extent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:551
+#, no-c-format
+msgid "<varname>num_bands</varname> number of bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:552
+#, no-c-format
+msgid ""
+"<varname>pixel_types</varname> reads array of pixel types for each band "
+"ensure all band n have same pixel type"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:553
+#, no-c-format
+msgid ""
+"<varname>regular_blocking</varname> sets spatially unique (no two rasters "
+"can be spatially the same) and coverage tile (raster is aligned to a "
+"coverage) constraints"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:554
+#, no-c-format
+msgid ""
+"<varname>same_alignment</varname> ensures they all have same alignment "
+"meaning any two tiles you compare will return true for. Refer to"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:555
+#, no-c-format
+msgid "<varname>srid</varname> ensures all have same srid"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:556
+#, no-c-format
+msgid "More -- any listed as inputs into the above functions"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:559
+#, no-c-format
+msgid ""
+"This function infers the constraints from the data already present in the "
+"table. As such for it to work, you must create the raster column first and "
+"then load it with data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:564
+#, no-c-format
+msgid ""
+"If you need to load more data in your tables after you have already applied "
+"constraints, you may want to run the DropRasterConstraints if the extent of "
+"your data has changed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:568 reference_raster.xml:717 reference_raster.xml:793
+#: reference_raster.xml:859 reference_raster.xml:1511
+#: reference_raster.xml:1902 reference_raster.xml:2932
+#: reference_raster.xml:3089 reference_raster.xml:3132
+#: reference_raster.xml:3189 reference_raster.xml:4873
+#: reference_raster.xml:4936 reference_raster.xml:5131
+#: reference_raster.xml:5235 reference_raster.xml:5305
+#: reference_raster.xml:5527 reference_raster.xml:6000
+#: reference_raster.xml:7062 reference_raster.xml:7261
+#: reference_raster.xml:7525 reference_raster.xml:7644
+#: reference_raster.xml:7773 reference_raster.xml:7871
+#: reference_raster.xml:7959 reference_raster.xml:8043
+#: reference_raster.xml:8182 reference_raster.xml:8257
+#: reference_raster.xml:8344 reference_raster.xml:8467
+#: reference_raster.xml:8538 reference_raster.xml:8613
+#: reference_raster.xml:8699 reference_raster.xml:8795
+#: reference_raster.xml:8923 reference_raster.xml:9387
+#: reference_raster.xml:9639 reference_raster.xml:9711
+#: reference_raster.xml:10530
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:572
+#, no-c-format
+msgid "Examples: Apply all possible constraints on column based on data"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:574
+#, no-c-format
+msgid ""
+"CREATE TABLE myrasters(rid SERIAL primary key, rast raster);\n"
+"INSERT INTO myrasters(rast)\n"
+"SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, "
+"0,4326), 1, '8BSI'::text, -129, NULL);\n"
+"\n"
+"SELECT AddRasterConstraints('myrasters'::name, 'rast'::name);\n"
+"\n"
+"\n"
+"-- verify if registered correctly in the raster_columns view --\n"
+"SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, "
+"pixel_types, nodata_values\n"
+"        FROM raster_columns\n"
+"        WHERE r_table_name = 'myrasters';\n"
+"        \n"
+" srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | "
+"pixel_types| nodata_values\n"
+"------+---------+---------+-------------+-------------+-----------"
+"+-------------+---------------\n"
+" 4326 |       2 |       2 |        1000 |        1000 |         1 | "
+"{8BSI}      | {0}"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:578
+#, no-c-format
+msgid "Examples: Apply single constraint"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:580
+#, no-c-format
+msgid ""
+"CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);\n"
+"INSERT INTO myrasters2(rast)\n"
+"SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, "
+"0,4326), 1, '8BSI'::text, -129, NULL);\n"
+"\n"
+"SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::"
+"name,'regular_blocking', 'blocksize');\n"
+"-- get notice--\n"
+"NOTICE:  Adding regular blocking constraint\n"
+"NOTICE:  Adding blocksize-X constraint\n"
+"NOTICE:  Adding blocksize-Y constraint"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:586
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/"
+">, <xref linkend=\"RT_DropRasterConstraints\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:592
+#, no-c-format
+msgid "DropRasterConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:594
+#, no-c-format
+msgid ""
+"Drops PostGIS raster constraints that refer to a raster table column. Useful "
+"if you need to reload data or update your raster column data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:598
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>scale_x=true</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>constraints</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:711
+#, no-c-format
+msgid ""
+"Drops PostGIS raster constraints that refer to a raster table column that "
+"were added by <xref linkend=\"RT_AddRasterConstraints\"/>. Useful if you "
+"need to load more data or update your raster column data. You do not need to "
+"do this if you want to get rid of a raster table or a raster column."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:713
+#, no-c-format
+msgid "To drop a raster table use the standard"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:713
+#, no-c-format
+msgid "DROP TABLE mytable"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:714
+#, no-c-format
+msgid ""
+"To drop just a raster column and leave the rest of the table, use standard "
+"SQL"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:714
+#, no-c-format
+msgid "ALTER TABLE mytable DROP COLUMN rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:715
+#, no-c-format
+msgid ""
+"the table will disappear from the <varname>raster_columns</varname> catalog "
+"if the column or table is dropped. However if only the constraints are "
+"dropped, the raster column will still be listed in the "
+"<varname>raster_columns</varname> catalog, but there will be no other "
+"information about it aside from the column name and table."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:720 reference_raster.xml:797 reference_raster.xml:894
+#: reference_raster.xml:930 reference_raster.xml:968 reference_raster.xml:1515
+#: reference_raster.xml:1614 reference_raster.xml:1688
+#: reference_raster.xml:1789 reference_raster.xml:1837
+#: reference_raster.xml:1870 reference_raster.xml:1906
+#: reference_raster.xml:1949 reference_raster.xml:1985
+#: reference_raster.xml:2019 reference_raster.xml:2159
+#: reference_raster.xml:2197 reference_raster.xml:2240
+#: reference_raster.xml:2299 reference_raster.xml:2353
+#: reference_raster.xml:2391 reference_raster.xml:2426
+#: reference_raster.xml:2462 reference_raster.xml:2498
+#: reference_raster.xml:2534 reference_raster.xml:2571
+#: reference_raster.xml:2605 reference_raster.xml:2639
+#: reference_raster.xml:2690 reference_raster.xml:2747
+#: reference_raster.xml:2802 reference_raster.xml:2853
+#: reference_raster.xml:2888 reference_raster.xml:2943
+#: reference_raster.xml:2981 reference_raster.xml:3056
+#: reference_raster.xml:3093 reference_raster.xml:3137
+#: reference_raster.xml:3195 reference_raster.xml:3238
+#: reference_raster.xml:3289 reference_raster.xml:3332
+#: reference_raster.xml:3383 reference_raster.xml:3450
+#: reference_raster.xml:3544 reference_raster.xml:3636
+#: reference_raster.xml:3711 reference_raster.xml:3924
+#: reference_raster.xml:4019 reference_raster.xml:4082
+#: reference_raster.xml:4116 reference_raster.xml:4164
+#: reference_raster.xml:4207 reference_raster.xml:4288
+#: reference_raster.xml:4381 reference_raster.xml:4445
+#: reference_raster.xml:4513 reference_raster.xml:4591
+#: reference_raster.xml:4668 reference_raster.xml:4747
+#: reference_raster.xml:4836 reference_raster.xml:4877
+#: reference_raster.xml:4947 reference_raster.xml:5009
+#: reference_raster.xml:5239 reference_raster.xml:5388
+#: reference_raster.xml:5531 reference_raster.xml:5584
+#: reference_raster.xml:5824 reference_raster.xml:6265
+#: reference_raster.xml:7066 reference_raster.xml:7529
+#: reference_raster.xml:7777 reference_raster.xml:8048
+#: reference_raster.xml:8120 reference_raster.xml:8187
+#: reference_raster.xml:8349 reference_raster.xml:8405
+#: reference_raster.xml:8472 reference_raster.xml:8543
+#: reference_raster.xml:8618 reference_raster.xml:8853
+#: reference_raster.xml:8986 reference_raster.xml:9037
+#: reference_raster.xml:9086 reference_raster.xml:9129
+#: reference_raster.xml:9185 reference_raster.xml:9230
+#: reference_raster.xml:9274 reference_raster.xml:9313
+#: reference_raster.xml:9391 reference_raster.xml:9436
+#: reference_raster.xml:9481 reference_raster.xml:9644
+#: reference_raster.xml:9800 reference_raster.xml:9887
+#: reference_raster.xml:9968 reference_raster.xml:10049
+#: reference_raster.xml:10130 reference_raster.xml:10262
+#: reference_raster.xml:10343 reference_raster.xml:10423
+#: reference_raster.xml:10580 reference_raster.xml:10667
+#: reference_raster.xml:10762 reference_raster.xml:10855
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:722
+#, no-c-format
+msgid ""
+"SELECT DropRasterConstraints ('myrasters','rast');\n"
+"----RESULT output ---\n"
+"t\n"
+"\n"
+"-- verify change in raster_columns --\n"
+"SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, "
+"pixel_types, nodata_values\n"
+"        FROM raster_columns\n"
+"        WHERE r_table_name = 'myrasters';\n"
+"        \n"
+" srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | "
+"pixel_types| nodata_values\n"
+"------+---------+---------+-------------+-------------+-----------"
+"+-------------+---------------\n"
+"    0 |         |         |             |             |           "
+"|             |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:733
+#, no-c-format
+msgid "AddOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:735
+#, no-c-format
+msgid "Tag a raster column as being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:739
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>reftable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refcolumn</"
+"parameter></paramdef> <paramdef><type>int </type> <parameter>ovfactor</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddOverviewConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>ovcolumn</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>reftable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>refcolumn</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>ovfactor</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:779
+#, no-c-format
+msgid ""
+"Adds constraints on a raster column that are used to display information in "
+"the <varname>raster_overviews</varname> raster catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:783
+#, no-c-format
+msgid ""
+"The <varname>ovfactor</varname> parameter represents the scale multiplier in "
+"the overview column: higher overview factors have lower resolution."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:787
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> and <varname>refschema</varname> "
+"parameters are omitted, the first table found scanning the "
+"<varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:799
+#, no-c-format
+msgid ""
+"CREATE TABLE res1 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r1;\n"
+"\n"
+"CREATE TABLE res2 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(500, 500, 0, 0, 4),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r2;\n"
+"\n"
+"SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);\n"
+"\n"
+"-- verify if registered correctly in the raster_overviews view --\n"
+"SELECT o_table_name ot, o_raster_column oc,\n"
+"       r_table_name rt, r_raster_column rc,\n"
+"       overview_factor f\n"
+"FROM raster_overviews WHERE o_table_name = 'res2';\n"
+"  ot  | oc |  rt  | rc | f\n"
+"------+----+------+----+---\n"
+" res2 | r2 | res1 | r1 | 2\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:805
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_DropOverviewConstraints\"/>, <xref linkend="
+"\"RT_CreateOverview\"/>, <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:816
+#, no-c-format
+msgid "DropOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:818
+#, no-c-format
+msgid "Untag a raster column from being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:822
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropOverviewConstraints</function></funcdef> <paramdef><type>name "
+"</type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>ovcolumn</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:848
+#, no-c-format
+msgid ""
+"Remove from a raster column the constraints used to show it as being an "
+"overview of another in the <varname>raster_overviews</varname> raster "
+"catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:853
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> parameter is omitted, the first table "
+"found scanning the <varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:865
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_DropRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:875
+#, no-c-format
+msgid "PostGIS_GDAL_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:876
+#, no-c-format
+msgid "Reports the version of the GDAL library in use by PostGIS."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:881
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GDAL_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:890
+#, no-c-format
+msgid ""
+"Reports the version of the GDAL library in use by PostGIS. Will also check "
+"and report if GDAL can find its data files."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:895
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GDAL_Version();\n"
+"       postgis_gdal_version        \n"
+"-----------------------------------\n"
+" GDAL 1.11dev, released 2013/04/13"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:908
+#, no-c-format
+msgid "PostGIS_Raster_Lib_Build_Date"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:910
+#, no-c-format
+msgid "Reports full raster library build date."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:915
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:926
+#, no-c-format
+msgid "Reports raster build date"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:932
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Raster_Lib_Build_Date();\n"
+"postgis_raster_lib_build_date\n"
+"-----------------------------\n"
+"2010-04-28 21:15:10"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:944
+#, no-c-format
+msgid "PostGIS_Raster_Lib_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:946
+#, no-c-format
+msgid ""
+"<refpurpose>Reports full raster version and build configuration infos.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:952
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:963
+#, no-c-format
+msgid "<para>Reports full raster version and build configuration infos.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:970
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Raster_Lib_Version();\n"
+"postgis_raster_lib_version\n"
+"-----------------------------\n"
+" 2.0.0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:984
+#, no-c-format
+msgid "ST_GDALDrivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:986
+#, no-c-format
+msgid ""
+"Returns a list of raster formats supported by your lib gdal. These are the "
+"formats you can output your raster using ST_AsGDALRaster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:991
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>ST_GDALDrivers</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>OUT idx</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>OUT short_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT long_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT create_options</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1004
+#, no-c-format
+msgid ""
+"Returns a list of raster formats short_name,long_name and creator options of "
+"each format supported by your lib gdal. Use the short_name as input in the "
+"<varname>format</varname> parameter of <xref linkend=\"RT_ST_AsGDALRaster\"/"
+">. Options vary depending on what drivers your libgdal was compiled with. "
+"<varname>create_options</varname> returns an xml formatted set of "
+"CreationOptionList/Option consisting of name and optional <varname>type</"
+"varname>, <varname>description</varname> and set of <varname>VALUE</varname> "
+"for each creator option for the specific driver."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1007 reference_raster.xml:1438
+#: reference_raster.xml:5631 reference_raster.xml:5729
+#: reference_raster.xml:5820 reference_raster.xml:5900
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GDAL >= 1.6.0."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1011
+#, no-c-format
+msgid "Examples: List of Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1013
+#, no-c-format
+msgid ""
+"SELECT short_name, long_name\n"
+"FROM st_gdaldrivers()\n"
+"ORDER BY short_name;\n"
+"  short_name    |              long_name\n"
+"----------------+--------------------------------------\n"
+"AAIGrid         | Arc/Info ASCII Grid\n"
+"DTED            | DTED Elevation Raster\n"
+"EHdr            | ESRI .hdr Labelled\n"
+"FIT             | FIT Image\n"
+"GIF             | Graphics Interchange Format (.gif)\n"
+"GSAG            | Golden Software ASCII Grid (.grd)\n"
+"GSBG            | Golden Software Binary Grid (.grd)\n"
+"GTiff           | GeoTIFF\n"
+"HF2             | HF2/HFZ heightfield raster\n"
+"HFA             | Erdas Imagine Images (.img)\n"
+"ILWIS           | ILWIS Raster Map\n"
+"INGR            | Intergraph Raster\n"
+"JPEG            | JPEG JFIF\n"
+"KMLSUPEROVERLAY | Kml Super Overlay\n"
+"NITF            | National Imagery Transmission Format\n"
+"PNG             | Portable Network Graphics\n"
+"R               | R Object Data Store\n"
+"SAGA            | SAGA GIS Binary Grid (.sdat)\n"
+"SRTMHGT         | SRTMHGT File Format\n"
+"USGSDEM         | USGS Optional ASCII DEM (and CDED)\n"
+"VRT             | Virtual Raster\n"
+"XPM             | X11 PixMap Format"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1015
+#, no-c-format
+msgid "Example: List of options for each driver"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1016
+#, no-c-format
+msgid ""
+"-- Output the create options XML column of JPEG as a table  --\n"
+"-- Note you can use these creator options in ST_AsGDALRaster options "
+"argument\n"
+"SELECT (xpath('@name', g.opt))[1]::text As oname,\n"
+"       (xpath('@type', g.opt))[1]::text As otype,\n"
+"       (xpath('@description', g.opt))[1]::text As descrip\n"
+"FROM (SELECT unnest(xpath('/CreationOptionList/Option', create_options::"
+"xml)) As opt\n"
+"FROM  st_gdaldrivers()\n"
+"WHERE short_name = 'JPEG') As g;\n"
+"\n"
+"    oname    |  otype  |           descrip\n"
+"-------------+---------+-----------------------------\n"
+" PROGRESSIVE | boolean |\n"
+" QUALITY     | int     | good=100, bad=0, default=75\n"
+" WORLDFILE   | boolean |"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1018
+#, no-c-format
+msgid ""
+"-- raw xml output for creator options for GeoTiff --\n"
+"SELECT create_options\n"
+"FROM st_gdaldrivers()\n"
+"WHERE short_name = 'GTiff';\n"
+"\n"
+"<![CDATA[<CreationOptionList>\n"
+"    <Option name=\"COMPRESS\" type=\"string-select\">\n"
+"        <Value>NONE</Value>\n"
+"        <Value>LZW</Value>\n"
+"        <Value>PACKBITS</Value>\n"
+"        <Value>JPEG</Value>\n"
+"        <Value>CCITTRLE</Value>\n"
+"        <Value>CCITTFAX3</Value>\n"
+"        <Value>CCITTFAX4</Value>\n"
+"        <Value>DEFLATE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"PREDICTOR\" type=\"int\" description=\"Predictor Type\"/"
+">\n"
+"    <Option name=\"JPEG_QUALITY\" type=\"int\" description=\"JPEG quality "
+"1-100\" default=\"75\"/>\n"
+"    <Option name=\"ZLEVEL\" type=\"int\" description=\"DEFLATE compression "
+"level 1-9\" default=\"6\"/>\n"
+"    <Option name=\"NBITS\" type=\"int\" description=\"BITS for sub-byte "
+"files (1-7), sub-uint16 (9-15), sub-uint32 (17-31)\"/>\n"
+"    <Option name=\"INTERLEAVE\" type=\"string-select\" default=\"PIXEL\">\n"
+"        <Value>BAND</Value>\n"
+"        <Value>PIXEL</Value>\n"
+"    </Option>\n"
+"    <Option name=\"TILED\" type=\"boolean\" description=\"Switch to tiled "
+"format\"/>\n"
+"    <Option name=\"TFW\" type=\"boolean\" description=\"Write out world file"
+"\"/>\n"
+"    <Option name=\"RPB\" type=\"boolean\" description=\"Write out .RPB (RPC) "
+"file\"/>\n"
+"    <Option name=\"BLOCKXSIZE\" type=\"int\" description=\"Tile Width\"/>\n"
+"    <Option name=\"BLOCKYSIZE\" type=\"int\" description=\"Tile/Strip Height"
+"\"/>\n"
+"    <Option name=\"PHOTOMETRIC\" type=\"string-select\">\n"
+"        <Value>MINISBLACK</Value>\n"
+"        <Value>MINISWHITE</Value>\n"
+"        <Value>PALETTE</Value>\n"
+"        <Value>RGB</Value>\n"
+"        <Value>CMYK</Value>\n"
+"        <Value>YCBCR</Value>\n"
+"        <Value>CIELAB</Value>\n"
+"        <Value>ICCLAB</Value>\n"
+"        <Value>ITULAB</Value>\n"
+"    </Option>\n"
+"    <Option name=\"SPARSE_OK\" type=\"boolean\" description=\"Can newly "
+"created files have missing blocks?\" default=\"FALSE\"/>\n"
+"    <Option name=\"ALPHA\" type=\"boolean\" description=\"Mark first "
+"extrasample as being alpha\"/>\n"
+"    <Option name=\"PROFILE\" type=\"string-select\" default=\"GDALGeoTIFF"
+"\">\n"
+"        <Value>GDALGeoTIFF</Value>\n"
+"        <Value>GeoTIFF</Value>\n"
+"        <Value>BASELINE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"PIXELTYPE\" type=\"string-select\">\n"
+"        <Value>DEFAULT</Value>\n"
+"        <Value>SIGNEDBYTE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"BIGTIFF\" type=\"string-select\" description=\"Force "
+"creation of BigTIFF file\">\n"
+"        <Value>YES</Value>\n"
+"        <Value>NO</Value>\n"
+"        <Value>IF_NEEDED</Value>\n"
+"        <Value>IF_SAFER</Value>\n"
+"    </Option>\n"
+"    <Option name=\"ENDIANNESS\" type=\"string-select\" default=\"NATIVE\" "
+"description=\"Force endianness of created file. For DEBUG purpose mostly\">\n"
+"        <Value>NATIVE</Value>\n"
+"        <Value>INVERTED</Value>\n"
+"        <Value>LITTLE</Value>\n"
+"        <Value>BIG</Value>\n"
+"    </Option>\n"
+"    <Option name=\"COPY_SRC_OVERVIEWS\" type=\"boolean\" default=\"NO\" "
+"description=\"Force copy of overviews of source dataset (CreateCopy())\"/>\n"
+"</CreationOptionList>]]>\n"
+"\n"
+"-- Output the create options XML column for GTiff as a table  --\n"
+"SELECT (xpath('@name', g.opt))[1]::text As oname,\n"
+"       (xpath('@type', g.opt))[1]::text As otype,\n"
+"       (xpath('@description', g.opt))[1]::text As descrip,\n"
+"       array_to_string(xpath('Value/text()', g.opt),', ') As vals \n"
+"FROM (SELECT unnest(xpath('/CreationOptionList/Option', create_options::"
+"xml)) As opt\n"
+"FROM  st_gdaldrivers()\n"
+"WHERE short_name = 'GTiff') As g;\n"
+"\n"
+"       oname        |     otype     |                               "
+"descrip                                |                                   "
+"vals                                    \n"
+"--------------------+---------------"
+"+----------------------------------------------------------------------"
+"+---------------------------------------------------------------------------\n"
+" COMPRESS           | string-select "
+"|                                                                      | "
+"NONE, LZW, PACKBITS, JPEG, CCITTRLE, CCITTFAX3, CCITTFAX4, DEFLATE\n"
+" PREDICTOR          | int           | Predictor "
+"Type                                                       | \n"
+" JPEG_QUALITY       | int           | JPEG quality "
+"1-100                                                   | \n"
+" ZLEVEL             | int           | DEFLATE compression level "
+"1-9                                        | \n"
+" NBITS              | int           | BITS for sub-byte files (1-7), sub-"
+"uint16 (9-15), sub-uint32 (17-31) | \n"
+" INTERLEAVE         | string-select "
+"|                                                                      | "
+"BAND, PIXEL\n"
+" TILED              | boolean       | Switch to tiled "
+"format                                               | \n"
+" TFW                | boolean       | Write out world "
+"file                                                 | \n"
+" RPB                | boolean       | Write out .RPB (RPC) "
+"file                                            | \n"
+" BLOCKXSIZE         | int           | Tile "
+"Width                                                           | \n"
+" BLOCKYSIZE         | int           | Tile/Strip "
+"Height                                                    | \n"
+" PHOTOMETRIC        | string-select "
+"|                                                                      | "
+"MINISBLACK, MINISWHITE, PALETTE, RGB, CMYK, YCBCR, CIELAB, ICCLAB, ITULAB\n"
+" SPARSE_OK          | boolean       | Can newly created files have missing "
+"blocks?                         | \n"
+" ALPHA              | boolean       | Mark first extrasample as being "
+"alpha                                | \n"
+" PROFILE            | string-select "
+"|                                                                      | "
+"GDALGeoTIFF, GeoTIFF, BASELINE\n"
+" PIXELTYPE          | string-select "
+"|                                                                      | "
+"DEFAULT, SIGNEDBYTE\n"
+" BIGTIFF            | string-select | Force creation of BigTIFF "
+"file                                       | YES, NO, IF_NEEDED, IF_SAFER\n"
+" ENDIANNESS         | string-select | Force endianness of created file. For "
+"DEBUG purpose mostly           | NATIVE, INVERTED, LITTLE, BIG\n"
+" COPY_SRC_OVERVIEWS | boolean       | Force copy of overviews of source "
+"dataset (CreateCopy())             | \n"
+"(19 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1024 reference_raster.xml:2506
+#, no-c-format
+msgid ", <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1030
+#, no-c-format
+msgid "UpdateRasterSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1031
+#, no-c-format
+msgid "Change the SRID of all rasters in the user-specified column and table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1037
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>UpdateRasterSRID</function></"
+"funcdef> <paramdef><type>name </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>column_name</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>new_srid</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>UpdateRasterSRID</function></funcdef> <paramdef><type>name </type> "
+"<parameter>table_name</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>column_name</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>new_srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1060
+#, no-c-format
+msgid ""
+"Change the SRID of all rasters in the user-specified column and table. The "
+"function will drop all appropriate column constraints (extent, alignment and "
+"SRID) before changing the SRID of the specified column's rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1065
+#, no-c-format
+msgid ""
+"The data (band pixel values) of the rasters are not touched by this "
+"function. Only the raster's metadata is changed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1070 reference_raster.xml:1684
+#: reference_raster.xml:1785 reference_raster.xml:2235
+#: reference_raster.xml:2530 reference_raster.xml:2685
+#: reference_raster.xml:3234 reference_raster.xml:3284
+#: reference_raster.xml:3328 reference_raster.xml:3378
+#: reference_raster.xml:3535 reference_raster.xml:3632
+#: reference_raster.xml:3817 reference_raster.xml:3920
+#: reference_raster.xml:4016 reference_raster.xml:6261
+#: reference_raster.xml:6725 reference_raster.xml:6842
+#: reference_raster.xml:8116 reference_raster.xml:8401
+#: reference_raster.xml:8849 reference_raster.xml:8982
+#: reference_raster.xml:9033 reference_raster.xml:9270
+#: reference_raster.xml:9524 reference_raster.xml:9796
+#: reference_raster.xml:9883 reference_raster.xml:9964
+#: reference_raster.xml:10045 reference_raster.xml:10126
+#: reference_raster.xml:10339 reference_raster.xml:10419
+#: reference_raster.xml:10576 reference_raster.xml:10663
+#: reference_raster.xml:10758 reference_raster.xml:10851
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1082
+#, no-c-format
+msgid "ST_CreateOverview"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1083
+#, no-c-format
+msgid "Create an reduced resolution version of a given raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1091
+#, no-c-format
+msgid ""
+"<funcdef>regclass <function>ST_CreateOverview</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>factor</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algo='NearestNeighbor'</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1105
+#, no-c-format
+msgid ""
+"Create an overview table with resampled tiles from the source table. Output "
+"tiles will have the same size of input tiles and cover the same spatial "
+"extent with a lower resolution (pixel size will be 1/<varname>factor</"
+"varname> of the original in both directions)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1112
+#, no-c-format
+msgid ""
+"The overview table will be made available in the <varname>raster_overviews</"
+"varname> catalog and will have raster constraints enforced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1118 reference_raster.xml:1743
+#: reference_raster.xml:4726
+#, no-c-format
+msgid ""
+"Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', "
+"'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/"
+"gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1120 reference_raster.xml:1745
+#: reference_raster.xml:1944 reference_raster.xml:5005
+#: reference_raster.xml:5384
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_AddRasterConstraints\"/>, <xref linkend=\"RT_Raster_Overviews\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1135
+#, no-c-format
+msgid "Raster Constructors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1139
+#, no-c-format
+msgid "ST_AddBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1140
+#, no-c-format
+msgid ""
+"Returns a raster with the new band(s) of given type added with given initial "
+"value in the given index location. If no index is specified, the band is "
+"added to the end."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1146
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>(1) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>addbandarg[] </type> <parameter>addbandargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>(2) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(3) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(4) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(5) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>torast</parameter></"
+"paramdef> <paramdef><type>raster[] </type> <parameter>fromrasts</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>fromband=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>torastindex=at_end</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(6) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(7) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>index=at_end</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1211
+#, no-c-format
+msgid ""
+"Returns a raster with a new band added in given position (index), of given "
+"type, of given initial value, and of given nodata value. If no index is "
+"specified, the band is added to the end. If no <varname>fromband</varname> "
+"is specified, band 1 is assumed. Pixel type is a string representation of "
+"one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. "
+"If an existing index is specified all subsequent bands >= that index are "
+"incremented by 1. If an initial value greater than the max of the pixel type "
+"is specified, then the initial value is set to the highest value allowed by "
+"the pixel type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1215
+#, no-c-format
+msgid ""
+"For the variant that takes an array of <xref linkend=\"addbandarg\"/> "
+"(Variant 1), a specific addbandarg's index value is relative to the raster "
+"at the time when the band described by that addbandarg is being added to the "
+"raster. See the Multiple New Bands example below."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1219
+#, no-c-format
+msgid ""
+"For the variant that takes an array of rasters (Variant 5), if "
+"<varname>torast</varname> is NULL then the <varname>fromband</varname> band "
+"of each raster in the array is accumulated into a new raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1223
+#, no-c-format
+msgid ""
+"For the variants that take <varname>outdbfile</varname> (Variants 6 and 7), "
+"the value must include the full path to the raster file. The file must also "
+"be accessible to the postgres server process."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1227
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for addbandarg added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1228
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for new out-db bands added."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1232
+#, no-c-format
+msgid "Examples: Single New Band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1234
+#, no-c-format
+msgid ""
+"-- Add another band of type 8 bit unsigned integer with pixels initialized "
+"to 200\n"
+"UPDATE dummy_rast\n"
+"    SET rast = ST_AddBand(rast,'8BUI'::text,200)  \n"
+"WHERE rid = 1;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1236
+#, no-c-format
+msgid ""
+"-- Create an empty raster 100x100 units, with upper left  right at 0, add 2 "
+"bands (band 1 is 0/1 boolean bit switch, band2 allows values 0-15)\n"
+"-- uses addbandargs\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"    VALUES(10, ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 1, -1, 0, 0, "
+"0), \n"
+"        ARRAY[\n"
+"                ROW(1, '1BB'::text, 0, NULL),\n"
+"                ROW(2, '4BUI'::text, 0, NULL)\n"
+"                        ]::addbandarg[]\n"
+"     )\n"
+"    );\n"
+"    \n"
+"-- output meta data of raster bands to verify all is right --\n"
+"SELECT  (bmd).*\n"
+"FROM (SELECT ST_BandMetaData(rast,generate_series(1,2)) As bmd \n"
+"    FROM dummy_rast WHERE rid = 10) AS foo;\n"
+" --result --   \n"
+" pixeltype | nodatavalue | isoutdb | path\n"
+"-----------+----------------+-------------+---------+------\n"
+" 1BB       |             | f       |\n"
+" 4BUI      |             | f       |\n"
+" \n"
+" \n"
+"-- output meta data of raster -\n"
+"SELECT  (rmd).width, (rmd).height, (rmd).numbands\n"
+"FROM (SELECT ST_MetaData(rast) As rmd \n"
+"    FROM dummy_rast WHERE rid = 10) AS foo;\n"
+"-- result --\n"
+" upperleftx | upperlefty | width | height | scalex | scaley | skewx | skewy "
+"| srid | numbands\n"
+"------------+------------+-------+--------+------------+------------+-------"
+"+-------+------+----------\n"
+"          0 |          0 |   100 |    100 |      1 |     -1 |     0 |     0 "
+"|   0 |        2"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1240
+#, no-c-format
+msgid "Examples: Multiple New Bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1242
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                ARRAY[\n"
+"                        ROW(NULL, '8BUI', 255, 0),\n"
+"                        ROW(NULL, '16BUI', 1, 2),\n"
+"                        ROW(2, '32BUI', 100, 12),\n"
+"                        ROW(2, '32BF', 3.14, -1)\n"
+"                ]::addbandarg[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |           0 | f       | \n"
+"       2 | 32BF      |          -1 | f       | \n"
+"       3 | 32BUI     |          12 | f       | \n"
+"       4 | 16BUI     |           2 | f       |"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1244
+#, no-c-format
+msgid ""
+"-- Aggregate the 1st band of a table of like rasters into a single raster \n"
+"-- with as many bands as there are test_types and as many rows (new rasters) "
+"as there are mice\n"
+"-- NOTE: The ORDER BY test_type is only supported in PostgreSQL 9.0+\n"
+"-- for 8.4 and below it usually works to order your data in a subselect (but "
+"not guaranteed)\n"
+"-- The resulting raster will have a band for each test_type alphabetical by "
+"test_type\n"
+"-- For mouse lovers: No mice were harmed in this exercise\n"
+"SELECT\n"
+"        mouse,\n"
+"        ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1) As rast \n"
+"FROM mice_studies\n"
+"GROUP BY mouse;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1248
+#, no-c-format
+msgid "Examples: New Out-db band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1249
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                '/home/raster/mytestraster.tif'::text, NULL::int[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       2 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       3 | 8BUI      |             | t       | /home/raster/mytestraster.tif"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1254
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"RT_ST_MetaData\"/>, <xref "
+"linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1267
+#, no-c-format
+msgid "ST_AsRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1268
+#, no-c-format
+msgid "Converts a PostGIS geometry to a PostGIS raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1272
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>touched=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_AsRaster</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>ref</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>pixeltype=ARRAY['8BUI']</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>touched=false</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>value=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>gridx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridy=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>upperleftx=NULL</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>upperlefty=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>value=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef><type>double precision[] </type> "
+"<parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1420
+#, no-c-format
+msgid ""
+"Converts a PostGIS geometry to a PostGIS raster. The many variants offers "
+"three groups of possibilities for setting the alignment and pixelsize of the "
+"resulting raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1422
+#, no-c-format
+msgid ""
+"The first group, composed of the two first variants, produce a raster having "
+"the same alignment (<varname>scalex</varname>, <varname>scaley</varname>, "
+"<varname>gridx</varname> and <varname>gridy</varname>), pixel type and "
+"nodata value as the provided reference raster. You generally pass this "
+"reference raster by joining the table containing the geometry with the table "
+"containing the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1424
+#, no-c-format
+msgid ""
+"The second group, composed of four variants, let you set the dimensions of "
+"the raster by providing the parameters of a pixel size (<varname>scalex</"
+"varname> & <varname>scaley</varname> and <varname>skewx</varname> & "
+"<varname>skewy</varname>). The <varname>width</varname> & "
+"<varname>height</varname> of the resulting raster will be adjusted to fit "
+"the extent of the geometry. In most cases, you must cast integer "
+"<varname>scalex</varname> & <varname>scaley</varname> arguments to "
+"double precision so that PostgreSQL choose the right variant."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1426
+#, no-c-format
+msgid ""
+"The third group, composed of four variants, let you fix the dimensions of "
+"the raster by providing the dimensions of the raster (<varname>width</"
+"varname> & <varname>height</varname>). The parameters of the pixel size "
+"(<varname>scalex</varname> & <varname>scaley</varname> and "
+"<varname>skewx</varname> & <varname>skewy</varname>) of the resulting "
+"raster will be adjusted to fit the extent of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1428
+#, no-c-format
+msgid ""
+"The two first variants of each of those two last groups let you specify the "
+"alignment with an arbitrary corner of the alignment grid (<varname>gridx</"
+"varname> & <varname>gridy</varname>) and the two last variants takes the "
+"upper left corner (<varname>upperleftx</varname> & <varname>upperlefty</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1430
+#, no-c-format
+msgid ""
+"Each group of variant allows producing a one band raster or a multiple bands "
+"raster. To produce a multiple bands raster, you must provide an array of "
+"pixel types (<varname>pixeltype[]</varname>), an array of initial values "
+"(<varname>value</varname>) and an array of nodata values "
+"(<varname>nodataval</varname>). If not provided pixeltyped defaults to 8BUI, "
+"values to 1 and nodataval to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1432
+#, no-c-format
+msgid ""
+"The output raster will be in the same spatial reference as the source "
+"geometry. The only exception is for variants with a reference raster. In "
+"this case the resulting raster will get the same SRID as the reference "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1434
+#, no-c-format
+msgid ""
+"The optional <varname>touched</varname> parameter defaults to false and maps "
+"to the GDAL ALL_TOUCHED rasterization option, which determines if pixels "
+"touched by lines or polygons will be burned. Not just those on the line "
+"render path, or whose center point is within the polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1436
+#, no-c-format
+msgid ""
+"This is particularly useful for rendering jpegs and pngs of geometries "
+"directly from the database when using in combination with <xref linkend="
+"\"RT_ST_AsPNG\"/> and other <xref linkend=\"RT_ST_AsGDALRaster\"/> family of "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1440
+#, no-c-format
+msgid ""
+"Not yet capable of rendering complex geometry types such as curves, TINS, "
+"and PolyhedralSurfaces, but should be able too once GDAL can."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1445
+#, no-c-format
+msgid "Examples: Output geometries as PNG files"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1451
+#, no-c-format
+msgid "black circle"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1454
+#, no-c-format
+msgid ""
+"-- this will output a black circle taking up 150 x 150 pixels --\n"
+"SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10),150, 150, '2BUI'));"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1461
+#, no-c-format
+msgid "example from buffer rendered with just PostGIS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1465
+#, no-c-format
+msgid ""
+"-- the bands map to RGB bands - the value (118,154,118) - teal  --\n"
+"SELECT ST_AsPNG(\n"
+"        ST_AsRaster(\n"
+"                ST_Buffer(\n"
+"                        ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), "
+"10,'join=bevel'), \n"
+"                        200,200,ARRAY['8BUI', '8BUI', '8BUI'], "
+"ARRAY[118,154,118], ARRAY[0,0,0]));"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1471
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, "
+"<xref linkend=\"RT_ST_AsJPEG\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1477
+#, no-c-format
+msgid "ST_Band"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1478
+#, no-c-format
+msgid ""
+"Returns one or more bands of an existing raster as a new raster. Useful for "
+"building new rasters from existing rasters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1482
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = "
+"ARRAY[1]</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Band</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nbands</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>character </type> "
+"<parameter>delimiter=,</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1507
+#, no-c-format
+msgid ""
+"Returns one or more bands of an existing raster as a new raster. Useful for "
+"building new rasters from existing rasters or export of only selected bands "
+"of a raster or rearranging the order of bands in a raster. If no band is "
+"specified, band 1 is assumed. Used as a helper function in various functions "
+"such as for deleting a band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1509
+#, no-c-format
+msgid ""
+"For the <code>nbands</code> as text variant of function, the default "
+"delimiter is <code>,</code> which means you can ask for <code>'1,2,3'</code> "
+"and if you wanted to use a different delimeter you would do "
+"<code>ST_Band(rast, '1 at 2@3', '@')</code>. For asking for multiple bands, we "
+"strongly suggest you use the array form of this function e.g. "
+"<code>ST_Band(rast, '{1,2,3}'::int[]);</code> since the <code>text</code> "
+"list of bands form may be removed in future versions of PostGIS."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1517
+#, no-c-format
+msgid ""
+"-- Make 2 new rasters: 1 containing band 1 of dummy, second containing band "
+"2 of dummy and then reclassified as a 2BUI\n"
+"SELECT ST_NumBands(rast1) As numb1, ST_BandPixelType(rast1) As pix1, \n"
+" ST_NumBands(rast2) As numb2,  ST_BandPixelType(rast2) As pix2\n"
+"FROM (\n"
+"    SELECT ST_Band(rast) As rast1, ST_Reclass(ST_Band(rast,3), '100-200):1, "
+"[200-254:2', '2BUI') As rast2\n"
+"        FROM dummy_rast\n"
+"        WHERE rid = 2) As foo;\n"
+"        \n"
+" numb1 | pix1 | numb2 | pix2\n"
+"-------+------+-------+------\n"
+"     1 | 8BUI |     1 | 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1519
+#, no-c-format
+msgid ""
+"-- Return bands 2 and 3. Using array cast syntax\n"
+"SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"num_bands\n"
+"----------\n"
+"2\n"
+"    \n"
+"-- Return bands 2 and 3. Use array to define bands\n"
+"SELECT ST_NumBands(ST_Band(rast, ARRAY[2,3])) As num_bands\n"
+"    FROM dummy_rast \n"
+"WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1529
+#, no-c-format
+msgid "original (column rast)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1538
+#, no-c-format
+msgid "dupe_band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1547
+#, no-c-format
+msgid "sing_band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1555
+#, no-c-format
+msgid ""
+"--Make a new raster with 2nd band of original and 1st band repeated twice,\n"
+"and another with just the third band\n"
+"SELECT rast, ST_Band(rast, ARRAY[2,1,1]) As dupe_band,  \n"
+"        ST_Band(rast, 3) As sing_band \n"
+"FROM samples.than_chunked \n"
+"WHERE rid=35;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1561
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, "
+"<xref linkend=\"RT_reference\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1567
+#, no-c-format
+msgid "ST_MakeEmptyRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1568
+#, no-c-format
+msgid ""
+"Returns an empty raster (having no bands) of given dimensions (width & "
+"height), upperleft X and Y, pixel size and rotation (scalex, scaley, skewx "
+"& skewy) and reference system (srid). If a raster is passed in, returns "
+"a new raster with the same size, alignment and SRID. If srid is left out, "
+"the spatial ref is set to unknown (0)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1572
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MakeEmptyRaster</function></funcdef> <paramdef><type>integer </"
+"type> <parameter>width</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>height</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperleftx</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperlefty</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>float8 </type> "
+"<parameter>skewy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>width</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>height</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperlefty</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>pixelsize</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1602
+#, no-c-format
+msgid ""
+"Returns an empty raster (having no band) of given dimensions (width & "
+"height) and georeferenced in spatial (or world) coordinates with upper left "
+"X (upperleftx), upper left Y (upperlefty), pixel size and rotation (scalex, "
+"scaley, skewx & skewy) and reference system (srid)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1605
+#, no-c-format
+msgid ""
+"The last version use a single parameter to specify the pixel size "
+"(pixelsize). scalex is set to this argument and scaley is set to the "
+"negative value of this argument. skewx and skewy are set to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1607
+#, no-c-format
+msgid ""
+"If an existing raster is passed in, it returns a new raster with the same "
+"meta data settings (without the bands)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1609
+#, no-c-format
+msgid ""
+"If no srid is specified it defaults to 0. After you create an empty raster "
+"you probably want to add bands to it and maybe edit it. Refer to <xref "
+"linkend=\"RT_ST_AddBand\"/> to define bands and <xref linkend="
+"\"RT_ST_SetValue\"/> to set initial pixel values."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1616
+#, no-c-format
+msgid ""
+"INSERT INTO dummy_rast(rid,rast)\n"
+"VALUES(3, ST_MakeEmptyRaster( 100, 100, 0.0005, 0.0005, 1, 1, 0, 0, "
+"4326) );\n"
+"\n"
+"--use an existing raster as template for new raster\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"SELECT 4, ST_MakeEmptyRaster(rast)\n"
+"FROM dummy_rast WHERE rid = 3;\n"
+"\n"
+"-- output meta data of rasters we just added\n"
+"SELECT rid, (md).*\n"
+"FROM (SELECT rid, ST_MetaData(rast) As md \n"
+"        FROM dummy_rast\n"
+"        WHERE rid IN(3,4)) As foo;\n"
+"        \n"
+"-- output --\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands\n"
+"-----+------------+------------+-------+--------+------------+------------"
+"+-------+-------+------+----------\n"
+"   3 |     0.0005 |     0.0005 |   100 |    100 |          1 |          1 "
+"|    0  |     0 | 4326 |        0\n"
+"   4 |     0.0005 |     0.0005 |   100 |    100 |          1 |          1 "
+"|    0  |     0 | 4326 |        0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1622
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MetaData\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, "
+"<xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_SetValue\"/>, <xref "
+"linkend=\"RT_ST_SkewX\"/>, , <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1629
+#, no-c-format
+msgid "ST_Tile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1630
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a set of rasters resulting from the split of the input "
+"raster based upon the desired dimensions of the output rasters.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1634
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>int[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof raster "
+"<function>ST_Tile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>padwithnodata=FALSE</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1670
+#, no-c-format
+msgid ""
+"<para>Returns a set of rasters resulting from the split of the input raster "
+"based upon the desired dimensions of the output rasters.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1674
+#, no-c-format
+msgid ""
+"If <varname>padwithnodata</varname> = FALSE, edge tiles on the right and "
+"bottom sides of the raster may have different dimensions than the rest of "
+"the tiles. If <varname>padwithnodata</varname> = TRUE, all tiles will have "
+"the same dimensions with the possibilty that edge tiles being padded with "
+"NODATA values. If raster band(s) do not have NODATA value(s) specified, one "
+"can be specified by setting <varname>nodataval</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1679
+#, no-c-format
+msgid ""
+"If a specified band of the input raster is out-of-db, the corresponding band "
+"in the output rasters will also be out-of-db."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1690
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{1,1,1},{1,1,1},{1,1,1}}\")\n"
+" (2,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{2,2,2},{2,2,2},{2,2,2}}\")\n"
+" (2,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{3,3,3},{3,3,3},{3,3,3}}\")\n"
+" (2,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{4,4,4},{4,4,4},{4,4,4}}\")\n"
+" (2,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{5,5,5},{5,5,5},{5,5,5}}\")\n"
+" (2,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{6,6,6},{6,6,6},{6,6,6}}\")\n"
+" (2,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{7,7,7},{7,7,7},{7,7,7}}\")\n"
+" (2,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{8,8,8},{8,8,8},{8,8,8}}\")\n"
+" (2,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{9,9,9},{9,9,9},{9,9,9}}\")\n"
+" (2,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(18 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1692
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, 2) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(9 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1698
+#, no-c-format
+msgid ", <xref linkend=\"RT_Retile\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1708
+#, no-c-format
+msgid "ST_Retile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1709
+#, no-c-format
+msgid ""
+"Return a set of configured tiles from an arbitrarily tiled raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1717
+#, no-c-format
+msgid ""
+"<funcdef>SETOF raster <function>ST_Retile</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>ext</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfx</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfy</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>tw</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>th</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algo='NearestNeighbor'</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1735
+#, no-c-format
+msgid ""
+"Return a set of tiles having the specified scale (<varname>sfx</varname>, "
+"<varname>sfy</varname>) and max size (<varname>tw</varname>, <varname>th</"
+"varname>) and covering the specified extent (<varname>ext</varname>) with "
+"data coming from the specified raster coverage (<varname>tab</varname>, "
+"<varname>col</varname>)."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1759
+#, no-c-format
+msgid "ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1760
+#, no-c-format
+msgid "Returns a raster from a supported GDAL raster file."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1765
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_FromGDALRaster</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>gdaldata</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=NULL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1777
+#, no-c-format
+msgid ""
+"Returns a raster from a supported GDAL raster file. <varname>gdaldata</"
+"varname> is of type bytea and should be the contents of the GDAL raster file."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1781
+#, no-c-format
+msgid ""
+"If <varname>srid</varname> is NULL, the function will try to autmatically "
+"assign the SRID from the GDAL raster. If <varname>srid</varname> is "
+"provided, the value provided will override any automatically assigned SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT "
+"ST_AsPNG(ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, "
+"0.1, -0.1, 0, 0, 4326), 1, '8BUI', 1, 0), 2, '8BUI', 2, 0), 3, '8BUI', 3, "
+"0)) AS png\n"
+"),\n"
+"bar AS (\n"
+"        SELECT 1 AS rid, ST_FromGDALRaster(png) AS rast FROM foo\n"
+"        UNION ALL\n"
+"        SELECT 2 AS rid, ST_FromGDALRaster(png, 3310) AS rast FROM foo\n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        ST_Metadata(rast) AS metadata,\n"
+"        ST_SummaryStats(rast, 1) AS stats1,\n"
+"        ST_SummaryStats(rast, 2) AS stats2,\n"
+"        ST_SummaryStats(rast, 3) AS stats3\n"
+"FROM bar\n"
+"ORDER BY rid;\n"
+"\n"
+" rid |         metadata          |    stats1     |    stats2     |     "
+"stats3     \n"
+"-----+---------------------------+---------------+---------------"
+"+----------------\n"
+"   1 | (0,0,2,2,1,-1,0,0,0,3)    | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"   2 | (0,0,2,2,1,-1,0,0,3310,3) | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1806
+#, no-c-format
+msgid "Raster Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1810
+#, no-c-format
+msgid "ST_GeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1811
+#, no-c-format
+msgid ""
+"Returns the georeference meta data in GDAL or ESRI format as commonly seen "
+"in a world file. Default is GDAL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1816
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoReference</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1827
+#, no-c-format
+msgid ""
+"Returns the georeference meta data including carriage return in GDAL or ESRI "
+"format as commonly seen in a <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">world file</ulink>. Default is GDAL if no type specified. type "
+"is string 'GDAL' or 'ESRI'."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1829 reference_raster.xml:4065
+#, no-c-format
+msgid "Difference between format representations is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1830 reference_raster.xml:4066
+#, no-c-format
+msgid "<varname>GDAL</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1831
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx\n"
+"upperlefty"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1832 reference_raster.xml:4068
+#, no-c-format
+msgid "<varname>ESRI</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1833
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx + scalex*0.5\n"
+"upperlefty + scaley*0.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1839
+#, no-c-format
+msgid ""
+"SELECT ST_GeoReference(rast, 'ESRI') As esri_ref, ST_GeoReference(rast, "
+"'GDAL') As gdal_ref\n"
+" FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"   esri_ref   |   gdal_ref\n"
+"--------------+--------------\n"
+" 2.0000000000 | 2.0000000000\n"
+" 0.0000000000 : 0.0000000000\n"
+" 0.0000000000 : 0.0000000000\n"
+" 3.0000000000 : 3.0000000000\n"
+" 1.5000000000 : 0.5000000000\n"
+" 2.0000000000 : 0.5000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1844
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1850
+#, no-c-format
+msgid "ST_Height"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1851
+#, no-c-format
+msgid "Returns the height of the raster in pixels."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1856
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Height</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1866
+#, no-c-format
+msgid "Returns the height of the raster."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1872
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Height(rast) As rastheight\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastheight\n"
+"-----+------------\n"
+"   1 |         20\n"
+"   2 |          5"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1884
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1885
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1890
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1900
+#, no-c-format
+msgid ""
+"<para>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1908
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"f          |\n"
+"                       \n"
+"                        \n"
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"t          |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1920
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1922
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the raster takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1927
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1937
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the raster takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1938
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1939
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables. "
+"pg_column_size might return lower because it returns the compressed size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1941
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1951
+#, no-c-format
+msgid ""
+"SELECT ST_MemSize(ST_AsRaster(ST_Buffer(ST_Point(1,5),10,1000),150, 150, "
+"'8BUI')) As rast_mem;\n"
+"                \n"
+"                rast_mem\n"
+"                --------\n"
+"                22568"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1964
+#, no-c-format
+msgid "ST_MetaData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1965
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster object such as pixel size, rotation "
+"(skew), upper, lower left, etc."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1970
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_MetaData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1980
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster object such as pixel size, rotation "
+"(skew), upper, lower left, etc. Columns returned: upperleftx | upperlefty | "
+"width | height | scalex | scaley | skewx | skewy | srid | numbands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1987
+#, no-c-format
+msgid ""
+"SELECT rid, (foo.md).*  \n"
+" FROM (SELECT rid, ST_MetaData(rast) As md\n"
+"FROM dummy_rast) As foo;\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands\n"
+" ----+------------+------------+-------+--------+--------+-----------+-------"
+"+-------+------+-------\n"
+"   1 |        0.5 |        0.5 |    10 |     20 |      2 |      3 "
+"|                0 |     0 |    0 |        0\n"
+"   2 | 3427927.75 |    5793244 |     5 |      5 |   0.05 |  -0.05 "
+"|                0 |     0 |    0 |        3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1993 reference_raster.xml:4844
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_NumBands\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1999
+#, no-c-format
+msgid "ST_NumBands"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2000
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the number of bands in the raster object.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2005
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumBands</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2015
+#, no-c-format
+msgid "<para>Returns the number of bands in the raster object.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2021
+#, no-c-format
+msgid ""
+"SELECT rid, ST_NumBands(rast) As numbands\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid | numbands\n"
+"----+----------\n"
+"  1 |        0\n"
+"  2 |        3"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2033
+#, no-c-format
+msgid "ST_PixelHeight"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2034
+#, no-c-format
+msgid ""
+"Returns the pixel height in geometric units of the spatial reference system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2039
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_PixelHeight</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2049
+#, no-c-format
+msgid ""
+"Returns the height of a pixel in geometric units of the spatial reference "
+"system. In the common case where there is no skew, the pixel height is just "
+"the scale ratio between geometric coordinates and raster pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2051
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"RT_ST_PixelWidth\"/> for a diagrammatic "
+"visualization of the relationship."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2055 reference_raster.xml:2115
+#, no-c-format
+msgid "Examples: Rasters with no skew"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2057
+#, no-c-format
+msgid ""
+"SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
+" ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) As "
+"skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"FROM dummy_rast;\n"
+"\n"
+" rastheight | pixheight | scalex | scaley | skewx | skewy\n"
+"------------+-----------+--------+--------+-------+----------\n"
+"         20 |         3 |      2 |      3 |     0 |        0\n"
+"          5 |      0.05 |   0.05 |  -0.05 |     0 |        0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2062 reference_raster.xml:2122
+#, no-c-format
+msgid "Examples: Rasters with skew different than 0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2064
+#, no-c-format
+msgid ""
+"SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
+" ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) As "
+"skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"FROM (SELECT ST_SetSKew(rast,0.5,0.5) As rast\n"
+"        FROM dummy_rast) As skewed;\n"
+"\n"
+"rastheight |     pixheight     | scalex | scaley | skewx | skewy\n"
+"-----------+-------------------+--------+--------+-------+----------\n"
+"        20 |  3.04138126514911 |      2 |      3 |   0.5 |      0.5\n"
+"         5 | 0.502493781056044 |   0.05 |  -0.05 |   0.5 |      0.5"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2071 reference_raster.xml:2131
+#: reference_raster.xml:4124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2083
+#, no-c-format
+msgid "ST_PixelWidth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2084
+#, no-c-format
+msgid ""
+"Returns the pixel width in geometric units of the spatial reference system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2089
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_PixelWidth</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2099
+#, no-c-format
+msgid ""
+"Returns the width of a pixel in geometric units of the spatial reference "
+"system. In the common case where there is no skew, the pixel width is just "
+"the scale ratio between geometric coordinates and raster pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2101
+#, no-c-format
+msgid "The following diagram demonstrates the relationship:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2108
+#, no-c-format
+msgid "Pixel Width: Pixel size in the i direction"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2108
+#, no-c-format
+msgid "Pixel Height: Pixel size in the j direction"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2117
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
+"        ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) "
+"As skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"        FROM dummy_rast;\n"
+"        \n"
+"        rastwidth | pixwidth | scalex | scaley | skewx | skewy\n"
+"        -----------+----------+--------+--------+-------+----------\n"
+"        10 |        2 |      2 |      3 |     0 |        0\n"
+"         5 |     0.05 |   0.05 |  -0.05 |     0 |        0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2124
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
+"        ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) "
+"As skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"        FROM (SELECT ST_SetSkew(rast,0.5,0.5) As rast\n"
+"        FROM dummy_rast) As skewed;\n"
+"        \n"
+"        rastwidth |     pixwidth      | scalex | scaley | skewx | skewy\n"
+"        -----------+-------------------+--------+--------+-------"
+"+----------\n"
+"        10 |  2.06155281280883 |      2 |      3 |   0.5 |      0.5\n"
+"         5 | 0.502493781056044 |   0.05 |  -0.05 |   0.5 |      0.5"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2137
+#, no-c-format
+msgid "ST_ScaleX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2138
+#, no-c-format
+msgid ""
+"Returns the X component of the pixel width in units of coordinate reference "
+"system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2143
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_ScaleX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2153
+#, no-c-format
+msgid ""
+"Returns the X component of the pixel width in units of coordinate reference "
+"system. Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file"
+"\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2155
+#, no-c-format
+msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeX."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2161
+#, no-c-format
+msgid ""
+"SELECT rid, ST_ScaleX(rast) As rastpixwidth\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastpixwidth\n"
+"-----+--------------\n"
+"   1 |            2\n"
+"   2 |         0.05"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2174
+#, no-c-format
+msgid "ST_ScaleY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2175
+#, no-c-format
+msgid ""
+"Returns the Y component of the pixel height in units of coordinate reference "
+"system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2180
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_ScaleY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2190
+#, no-c-format
+msgid ""
+"Returns the Y component of the pixel height in units of coordinate reference "
+"system. May be negative. Refer to <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2193
+#, no-c-format
+msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeY."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2199
+#, no-c-format
+msgid ""
+"SELECT rid, ST_ScaleY(rast) As rastpixheight\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastpixheight\n"
+"-----+---------------\n"
+"   1 |             3\n"
+"   2 |         -0.05"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2212
+#, no-c-format
+msgid "ST_RasterToWorldCoord"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2213
+#, no-c-format
+msgid ""
+"Returns the raster's upper left corner as geometric X and Y (longitude and "
+"latitude) given a column and row. Column and row starts at 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2218
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_RasterToWorldCoord</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>yrow</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2230
+#, no-c-format
+msgid ""
+"Returns the upper left corner as geometric X and Y (longitude and latitude) "
+"given a column and row. Returned X and Y are in geometric units of the "
+"georeferenced raster. Numbering of column and row starts at 1 but if either "
+"parameter is passed a zero, a negative number or a number greater than the "
+"respective dimension of the raster, it will return coordinates outside of "
+"the raster assuming the raster's grid is applicable outside the raster's "
+"bounds."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2242
+#, no-c-format
+msgid ""
+"-- non-skewed raster\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_RasterToWorldCoord(rast,1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast,2, 2)).*\n"
+"FROM dummy_rast\n"
+"\n"
+" rid | longitude  | latitude | longitude |  latitude  \n"
+"-----+------------+----------+-----------+------------\n"
+"   1 |        0.5 |      0.5 |       2.5 |        3.5\n"
+"   2 | 3427927.75 |  5793244 | 3427927.8 | 5793243.95"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2244
+#, no-c-format
+msgid ""
+"-- skewed raster\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_RasterToWorldCoord(rast, 1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast, 2, 3)).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                rid,\n"
+"                ST_SetSkew(rast, 100.5, 0) As rast\n"
+"        FROM dummy_rast\n"
+") As foo\n"
+"\n"
+" rid | longitude  | latitude | longitude | latitude  \n"
+"-----+------------+----------+-----------+-----------\n"
+"   1 |        0.5 |      0.5 |     203.5 |       6.5\n"
+"   2 | 3427927.75 |  5793244 | 3428128.8 | 5793243.9"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2251
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2261
+#, no-c-format
+msgid "ST_RasterToWorldCoordX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2262
+#, no-c-format
+msgid ""
+"Returns the geometric X coordinate upper left of a raster, column and row. "
+"Numbering of columns and rows starts at 1."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2267
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordX</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_RasterToWorldCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2285
+#, no-c-format
+msgid ""
+"Returns the upper left X coordinate of a raster column row in geometric "
+"units of the georeferenced raster. Numbering of columns and rows starts at 1 "
+"but if you pass in a negative number or number higher than number of columns "
+"in raster, it will give you coordinates outside of the raster file to left "
+"or right with the assumption that the skew and pixel sizes are same as "
+"selected raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2290
+#, no-c-format
+msgid ""
+"For non-skewed rasters, providing the X column is sufficient. For skewed "
+"rasters, the georeferenced coordinate is a function of the ST_ScaleX and "
+"ST_SkewX and row and column. An error will be raised if you give just the X "
+"column for a skewed raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2294
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordX"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2301
+#, no-c-format
+msgid ""
+"-- non-skewed raster providing column is "
+"sufficient                                        \n"
+"SELECT rid, ST_RasterToWorldCoordX(rast,1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast,2) As x2coord,\n"
+"        ST_ScaleX(rast) As pixelx\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |  x1coord   |  x2coord  | pixelx\n"
+"-----+------------+-----------+--------\n"
+"   1 |        0.5 |       2.5 |      2\n"
+"   2 | 3427927.75 | 3427927.8 |   0.05"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2303
+#, no-c-format
+msgid ""
+"-- for fun lets skew it                                \n"
+"SELECT rid, ST_RasterToWorldCoordX(rast, 1, 1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast, 2, 3) As x2coord,\n"
+"        ST_ScaleX(rast) As pixelx\n"
+"FROM (SELECT rid, ST_SetSkew(rast, 100.5, 0) As rast FROM dummy_rast) As "
+"foo;\n"
+"\n"
+" rid |  x1coord   |  x2coord  | pixelx\n"
+"-----+------------+-----------+--------\n"
+"   1 |        0.5 |     203.5 |      2\n"
+"   2 | 3427927.75 | 3428128.8 |   0.05"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2310
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2316
+#, no-c-format
+msgid "ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2317
+#, no-c-format
+msgid ""
+"Returns the geometric Y coordinate upper left corner of a raster, column and "
+"row. Numbering of columns and rows starts at 1."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2322
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_RasterToWorldCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2340
+#, no-c-format
+msgid ""
+"Returns the upper left Y coordinate of a raster column row in geometric "
+"units of the georeferenced raster. Numbering of columns and rows starts at 1 "
+"but if you pass in a negative number or number higher than number of columns/"
+"rows in raster, it will give you coordinates outside of the raster file to "
+"left or right with the assumption that the skew and pixel sizes are same as "
+"selected raster tile."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2345
+#, no-c-format
+msgid ""
+"For non-skewed rasters, providing the Y column is sufficient. For skewed "
+"rasters, the georeferenced coordinate is a function of the ST_ScaleY and "
+"ST_SkewY and row and column. An error will be raised if you give just the Y "
+"row for a skewed raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2349
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordY"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2355
+#, no-c-format
+msgid ""
+"-- non-skewed raster providing row is "
+"sufficient                                        \n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,3) As y2coord,\n"
+"        ST_ScaleY(rast) As pixely\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | y1coord |  y2coord  | pixely\n"
+"-----+---------+-----------+--------\n"
+"   1 |     0.5 |       6.5 |      3\n"
+"   2 | 5793244 | 5793243.9 |  -0.05"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2357
+#, no-c-format
+msgid ""
+"-- for fun lets skew it                                \n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,2,3) As y2coord,\n"
+"        ST_ScaleY(rast) As pixely\n"
+"FROM (SELECT rid, ST_SetSkew(rast,0,100.5) As rast FROM dummy_rast) As foo;\n"
+"\n"
+" rid | y1coord |  y2coord  | pixely\n"
+"-----+---------+-----------+--------\n"
+"   1 |     0.5 |       107 |      3\n"
+"   2 | 5793244 | 5793344.4 |  -0.05"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2364
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2370
+#, no-c-format
+msgid "ST_Rotation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2371
+#, no-c-format
+msgid "Returns the rotation of the raster in radian."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2376
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_Rotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2386
+#, no-c-format
+msgid ""
+"Returns the uniform rotation of the raster in radian. If a raster does not "
+"have uniform rotation, NaN is returned. Refer to <ulink url=\"http://en."
+"wikipedia.org/wiki/World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2393
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Rotation(ST_SetScale(ST_SetSkew(rast, sqrt(2)), sqrt(2))) as "
+"rot FROM dummy_rast;\n"
+"\n"
+" rid |        rot \n"
+"-----+-------------------\n"
+"   1 | 0.785398163397448\n"
+"   2 | 0.785398163397448"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2399
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetScale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2405
+#, no-c-format
+msgid "ST_SkewX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2406
+#, no-c-format
+msgid "Returns the georeference X skew (or rotation parameter)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2411
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SkewX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2421
+#, no-c-format
+msgid ""
+"Returns the georeference X skew (or rotation parameter). Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2428 reference_raster.xml:2464
+#, no-c-format
+msgid ""
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | skewx | skewy |       georef\n"
+"-----+-------+-------+--------------------\n"
+"   1 |     0 |     0 | 2.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 3.0000000000\n"
+"                     : 0.5000000000\n"
+"                     : 0.5000000000\n"
+"                     :\n"
+"   2 |     0 |     0 | 0.0500000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : -0.0500000000\n"
+"                     : 3427927.7500000000\n"
+"                     : 5793244.0000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2435
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2441
+#, no-c-format
+msgid "ST_SkewY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2442
+#, no-c-format
+msgid "Returns the georeference Y skew (or rotation parameter)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2447
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SkewY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2457
+#, no-c-format
+msgid ""
+"Returns the georeference Y skew (or rotation parameter). Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2471
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2477
+#, no-c-format
+msgid "ST_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2478
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier of the raster as defined in "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2483
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2493
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier of the raster object as defined in "
+"the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2494
+#, no-c-format
+msgid ""
+"From PostGIS 2.0+ the srid of a non-georeferenced raster/geometry is 0 "
+"instead of the prior -1."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2500
+#, no-c-format
+msgid ""
+"SELECT ST_SRID(rast) As srid\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"srid\n"
+"----------------\n"
+"0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2512
+#, no-c-format
+msgid "ST_Summary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2513
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the raster.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2518
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2528
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the raster.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2535
+#, no-c-format
+msgid ""
+"SELECT ST_Summary(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, "
+"0, 0)\n"
+"                                , 1, '8BUI', 1, 0\n"
+"                        )\n"
+"                        , 2, '32BF', 0, -9999\n"
+"                )\n"
+"                , 3, '16BSI', 0, NULL\n"
+"        )\n"
+");\n"
+"\n"
+"                            st_summary                            \n"
+"------------------------------------------------------------------\n"
+" Raster of 10x10 pixels has 3 bands and extent of BOX(0 -10,10 0)+\n"
+"     band 1 of pixtype 8BUI is in-db with NODATA value of 0      +\n"
+"     band 2 of pixtype 32BF is in-db with NODATA value of -9999  +\n"
+"     band 3 of pixtype 16BSI is in-db with no NODATA value\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2540
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandMetaData\"/>, <xref linkend=\"ST_Summary\"/> "
+"<xref linkend=\"ST_Extent\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2551
+#, no-c-format
+msgid "ST_UpperLeftX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2552
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the upper left X coordinate of raster in projected "
+"spatial ref.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2557
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_UpperLeftX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2567
+#, no-c-format
+msgid ""
+"<para>Returns the upper left X coordinate of raster in projected spatial ref."
+"</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2573
+#, no-c-format
+msgid ""
+"SELECt rid, ST_UpperLeftX(rast) As ulx\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |    ulx\n"
+"-----+------------\n"
+"   1 |        0.5\n"
+"   2 | 3427927.75"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2579 reference_raster.xml:2613
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2585
+#, no-c-format
+msgid "ST_UpperLeftY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2586
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the upper left Y coordinate of raster in projected "
+"spatial ref.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2591
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_UpperLeftY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2601
+#, no-c-format
+msgid ""
+"<para>Returns the upper left Y coordinate of raster in projected spatial ref."
+"</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2607
+#, no-c-format
+msgid ""
+"SELECT rid, ST_UpperLeftY(rast) As uly\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |   uly\n"
+"-----+---------\n"
+"   1 |     0.5\n"
+"   2 | 5793244"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2619
+#, no-c-format
+msgid "ST_Width"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2620
+#, no-c-format
+msgid "<refpurpose>Returns the width of the raster in pixels.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2625
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Width</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2635
+#, no-c-format
+msgid "<para>Returns the width of the raster in pixels.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2641
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"rastwidth\n"
+"----------------\n"
+"10"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2655
+#, no-c-format
+msgid "ST_WorldToRasterCoord"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2656
+#, no-c-format
+msgid ""
+"Returns the upper left corner as column and row given geometric X and Y "
+"(longitude and latitude) or a point geometry expressed in the spatial "
+"reference coordinate system of the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2660
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>record <function>ST_WorldToRasterCoord</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>record "
+"<function>ST_WorldToRasterCoord</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>longitude</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>latitude</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2679
+#, no-c-format
+msgid ""
+"Returns the upper left corner as column and row given geometric X and Y "
+"(longitude and latitude) or a point geometry. This function works regardless "
+"of whether or not the geometric X and Y or point geometry is outside the "
+"extent of the raster. Geometric X and Y must be expressed in the spatial "
+"reference coordinate system of the raster."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2692
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        rid,\n"
+"        (ST_WorldToRasterCoord(rast,3427927.8,20.5)).*,\n"
+"        (ST_WorldToRasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',"
+"ST_SRID(rast)))).*\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | columnx |   rowy    | columnx |   rowy    \n"
+"-----+---------+-----------+---------+-----------\n"
+"   1 | 1713964 |         7 | 1713964 |         7\n"
+"   2 |       2 | 115864471 |       2 | 115864471"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2698
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_WorldToRasterCoordY\"/>, <xref linkend="
+"\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend=\"RT_ST_RasterToWorldCoordY\"/"
+">, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2710
+#, no-c-format
+msgid "ST_WorldToRasterCoordX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2711
+#, no-c-format
+msgid ""
+"Returns the column in the raster of the point geometry (pt) or a X and Y "
+"world coordinate (xw, yw) represented in world spatial reference system of "
+"raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2716
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2741
+#, no-c-format
+msgid ""
+"Returns the column in the raster of the point geometry (pt) or a X and Y "
+"world coordinate (xw, yw). A point, or (both xw and yw world coordinates are "
+"required if a raster is skewed). If a raster is not skewed then xw is "
+"sufficient. World coordinates are in the spatial reference coordinate system "
+"of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2743
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordX"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2749
+#, no-c-format
+msgid ""
+"SELECT rid, ST_WorldToRasterCoordX(rast,3427927.8) As xcoord, \n"
+"                ST_WorldToRasterCoordX(rast,3427927.8,20.5) As "
+"xcoord_xwyw, \n"
+"                ST_WorldToRasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 "
+"20.5)',ST_SRID(rast))) As ptxcoord\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | xcoord  |  xcoord_xwyw   | ptxcoord\n"
+"-----+---------+---------+----------\n"
+"   1 | 1713964 | 1713964 |  1713964\n"
+"   2 |       1 |       1 |        1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2755 reference_raster.xml:2810
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SRID"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2765
+#, no-c-format
+msgid "ST_WorldToRasterCoordY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2766
+#, no-c-format
+msgid ""
+"Returns the row in the raster of the point geometry (pt) or a X and Y world "
+"coordinate (xw, yw) represented in world spatial reference system of raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2771
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2796
+#, no-c-format
+msgid ""
+"Returns the row in the raster of the point geometry (pt) or a X and Y world "
+"coordinate (xw, yw). A point, or (both xw and yw world coordinates are "
+"required if a raster is skewed). If a raster is not skewed then xw is "
+"sufficient. World coordinates are in the spatial reference coordinate system "
+"of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2798
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordY"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2804
+#, no-c-format
+msgid ""
+"SELECT rid, ST_WorldToRasterCoordY(rast,20.5) As ycoord, \n"
+"                ST_WorldToRasterCoordY(rast,3427927.8,20.5) As "
+"ycoord_xwyw, \n"
+"                ST_WorldToRasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 "
+"20.5)',ST_SRID(rast))) As ptycoord\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |  ycoord   | ycoord_xwyw | ptycoord\n"
+"-----+-----------+-------------+-----------\n"
+"   1 |         7 |           7 |         7\n"
+"   2 | 115864471 |   115864471 | 115864471"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2817
+#, no-c-format
+msgid "Raster Band Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2820
+#, no-c-format
+msgid "ST_BandMetaData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2821
+#, no-c-format
+msgid ""
+"Returns basic meta data for a specific raster band. band num 1 is assumed if "
+"none-specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2826
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_BandMetaData</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type><parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2837
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster band. Columns returned pixeltype | "
+"nodatavalue | isoutdb | path."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2841
+#, no-c-format
+msgid "If raster contains no bands then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2846
+#, no-c-format
+msgid "If band has no NODATA value, nodatavalue will be NULL."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2855
+#, no-c-format
+msgid ""
+"SELECT rid, (foo.md).*  \n"
+" FROM (SELECT rid, ST_BandMetaData(rast,1) As md\n"
+"FROM dummy_rast WHERE rid=2) As foo;\n"
+"\n"
+" rid | pixeltype | nodatavalue | isoutdb | path\n"
+"-----+-----------+----------------+-------------+---------+------\n"
+"   2 | 8BUI      |           0 | f       |"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2861
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2867
+#, no-c-format
+msgid "ST_BandNoDataValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2868
+#, no-c-format
+msgid ""
+"Returns the value in a given band that represents no data. If no band num 1 "
+"is assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2873
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_BandNoDataValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2884 reference_raster.xml:3012
+#, no-c-format
+msgid "Returns the value that represents no data for the band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2890
+#, no-c-format
+msgid ""
+"SELECT ST_BandNoDataValue(rast,1) As bnval1, \n"
+"    ST_BandNoDataValue(rast,2) As bnval2, ST_BandNoDataValue(rast,3) As "
+"bnval3\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" bnval1 | bnval2 | bnval3\n"
+"--------+--------+--------\n"
+"      0 |      0 |      0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2903
+#, no-c-format
+msgid "ST_BandIsNoData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2904
+#, no-c-format
+msgid "Returns true if the band is filled with only nodata values."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2908
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2925
+#, no-c-format
+msgid ""
+"Returns true if the band is filled with only nodata values. Band 1 is "
+"assumed if not specified. If the last argument is TRUE, the entire band is "
+"checked pixel by pixel. Otherwise, the function simply returns the value of "
+"the isnodata flag for the band. The default value for this parameter is "
+"FALSE, if not specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2935
+#, no-c-format
+msgid ""
+"If the flag is dirty (this is, the result is different using TRUE as last "
+"parameter and not using it) you should update the raster to set this flag to "
+"true, by using ST_SetBandIsNodata(), or ST_SetBandNodataValue() with TRUE as "
+"last argument. See <xref linkend=\"RT_ST_SetBandIsNoData\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2945
+#, no-c-format
+msgid ""
+"-- Create dummy table with one raster column\n"
+"create table dummy_rast (rid integer, rast raster);\n"
+"\n"
+"-- Add raster with two bands, one pixel/band. In the first band, nodatavalue "
+"= pixel value = 3.\n"
+"-- In the second band, nodatavalue = 13, pixel value = 4\n"
+"insert into dummy_rast values(1,\n"
+"(\n"
+"'01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0200' -- nBands (uint16 0)\n"
+"||\n"
+"'17263529ED684A3F' -- scaleX (float64 0.000805965234044584)\n"
+"||\n"
+"'F9253529ED684ABF' -- scaleY (float64 -0.00080596523404458)\n"
+"||\n"
+"'1C9F33CE69E352C0' -- ipX (float64 -75.5533328537098)\n"
+"||\n"
+"'718F0E9A27A44840' -- ipY (float64 49.2824585505576)\n"
+"||\n"
+"'ED50EB853EC32B3F' -- skewX (float64 0.000211812383858707)\n"
+"||\n"
+"'7550EB853EC32B3F' -- skewY (float64 0.000211812383858704)\n"
+"||\n"
+"'E6100000' -- SRID (int32 4326)\n"
+"||\n"
+"'0100' -- width (uint16 1)\n"
+"||\n"
+"'0100' -- height (uint16 1)\n"
+"||\n"
+"'6' -- hasnodatavalue and isnodata value set to true.\n"
+"||\n"
+"'2' -- first band type (4BUI) \n"
+"||\n"
+"'03' -- novalue==3\n"
+"||\n"
+"'03' -- pixel(0,0)==3 (same that nodata)\n"
+"||\n"
+"'0' -- hasnodatavalue set to false\n"
+"||\n"
+"'5' -- second band type (16BSI)\n"
+"||\n"
+"'0D00' -- novalue==13\n"
+"||\n"
+"'0400' -- pixel(0,0)==4\n"
+")::raster\n"
+");\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"true\n"
+"select st_bandisnodata(rast, 2) from dummy_rast where rid = 1; -- Expected "
+"false"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2951
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_SetBandIsNoData\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2960
+#, no-c-format
+msgid "ST_BandPath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2961
+#, no-c-format
+msgid ""
+"Returns system file path to a band stored in file system. If no bandnum "
+"specified, 1 is assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2966
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_BandPath</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2977
+#, no-c-format
+msgid ""
+"Returns system file path to a band. Throws an error if called with an in db "
+"band."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2983
+#, no-c-format
+msgid "<!-- TODO: -->"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2995
+#, no-c-format
+msgid "ST_BandPixelType"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2996
+#, no-c-format
+msgid ""
+"Returns the type of pixel for given band. If no bandnum specified, 1 is "
+"assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3001
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_BandPixelType</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3013
+#, no-c-format
+msgid "There are 11 pixel types. Pixel Types supported are as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3016
+#, no-c-format
+msgid "1BB - 1-bit boolean"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3020
+#, no-c-format
+msgid "2BUI - 2-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3024
+#, no-c-format
+msgid "4BUI - 4-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3028
+#, no-c-format
+msgid "8BSI - 8-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3031
+#, no-c-format
+msgid "8BUI - 8-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3034
+#, no-c-format
+msgid "16BSI - 16-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3037
+#, no-c-format
+msgid "16BUI - 16-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3040
+#, no-c-format
+msgid "32BSI - 32-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3043
+#, no-c-format
+msgid "32BUI - 32-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3046
+#, no-c-format
+msgid "32BF - 32-bit float"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3049
+#, no-c-format
+msgid "64BF - 64-bit float"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3058
+#, no-c-format
+msgid ""
+"SELECT ST_BandPixelType(rast,1) As btype1, \n"
+"    ST_BandPixelType(rast,2) As btype2, ST_BandPixelType(rast,3) As btype3\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" btype1 | btype2 | btype3\n"
+"--------+--------+--------\n"
+" 8BUI   | 8BUI   | 8BUI"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3070
+#, no-c-format
+msgid "ST_HasNoBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3071
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if there is no band with given band number. If no "
+"band number is specified, then band number 1 is assumed.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3076
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_HasNoBand</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum=1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3087
+#, no-c-format
+msgid ""
+"<para>Returns true if there is no band with given band number. If no band "
+"number is specified, then band number 1 is assumed.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3095
+#, no-c-format
+msgid ""
+"SELECT rid, ST_HasNoBand(rast) As hb1, ST_HasNoBand(rast,2) as hb2, \n"
+"ST_HasNoBand(rast,4) as hb4, ST_NumBands(rast) As numbands \n"
+"FROM dummy_rast;\n"
+"\n"
+"rid | hb1 | hb2 | hb4 | numbands\n"
+"-----+-----+-----+-----+----------\n"
+"1 | t   | t   | t   |        0\n"
+"2 | f   | f   | t   |        3"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3108
+#, no-c-format
+msgid "Raster Pixel Accessors and Setters"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3112
+#, no-c-format
+msgid "ST_PixelAsPolygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3113
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the polygon geometry that bounds the pixel for a "
+"particular row and column.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3118
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPolygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3130
+#, no-c-format
+msgid ""
+"<para>Returns the polygon geometry that bounds the pixel for a particular "
+"row and column.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3138
+#, no-c-format
+msgid ""
+"-- get raster pixel polygon\n"
+"SELECT i,j, ST_AsText(ST_PixelAsPolygon(foo.rast, i,j)) As b1pgeom\n"
+"FROM dummy_rast As foo \n"
+"        CROSS JOIN generate_series(1,2) As i \n"
+"        CROSS JOIN generate_series(1,1) As j\n"
+"WHERE rid=2;\n"
+"\n"
+" i | j |                                                    b1pgeom\n"
+"---+---"
+"+-----------------------------------------------------------------------------\n"
+" 1 | 1 | POLYGON((3427927.75 5793244,3427927.8 5793244,3427927.8 "
+"5793243.95,...\n"
+" 2 | 1 | POLYGON((3427927.8 5793244,3427927.85 5793244,3427927.85 "
+"5793243.95, .."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3143
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend="
+"\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>, <xref linkend=\"RT_ST_Intersection\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3158
+#, no-c-format
+msgid "ST_PixelAsPolygons"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3159
+#, no-c-format
+msgid ""
+"Returns the polygon geometry that bounds every pixel of a raster band along "
+"with the value, the X and the Y raster coordinates of each pixel."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3164
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>ST_PixelAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3176
+#, no-c-format
+msgid ""
+"Returns the polygon geometry that bounds every pixel of a raster band along "
+"with the value (double precision), the X and the Y raster coordinates "
+"(integers) of each pixel."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3179
+#, no-c-format
+msgid ""
+"ST_PixelAsPolygons returns one polygon geometry for every pixel. This is "
+"different than ST_DumpAsPolygons where each geometry represents one or more "
+"pixels with the same pixel value."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3184
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3190
+#, no-c-format
+msgid "Enhanced: 2.1.0 exclude_nodata_value optional argument was added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3191 reference_raster.xml:3285
+#: reference_raster.xml:3379
+#, no-c-format
+msgid "Changed: 2.1.1 Changed behavior of exclude_nodata_value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3196
+#, no-c-format
+msgid ""
+"-- get raster pixel polygon\n"
+"SELECT (gv).x, (gv).y, (gv).val, ST_AsText((gv).geom) geom\n"
+"FROM (SELECT ST_PixelAsPolygons(\n"
+"                 ST_SetValue(ST_SetValue(ST_AddBand(ST_MakeEmptyRaster(2, 2, "
+"0, 0, 0.001, -0.001, 0.001, 0.001, 4269), \n"
+"                                                    '8BUI'::text, 1, 0), \n"
+"                                         2, 2, 10), \n"
+"                             1, 1, NULL)\n"
+") gv \n"
+") foo;\n"
+"\n"
+" x | y | val |                geom\n"
+"---+---"
+"+-----------------------------------------------------------------------------\n"
+" 1 | 1 |     | POLYGON((0 0,0.001 0.001,0.002 0,0.001 -0.001,0 0))\n"
+" 1 | 2 |   1 | POLYGON((0.001 -0.001,0.002 0,0.003 -0.001,0.002 -0.002,0.001 "
+"-0.001))\n"
+" 2 | 1 |   1 | POLYGON((0.001 0.001,0.002 0.002,0.003 0.001,0.002 0,0.001 "
+"0.001))\n"
+" 2 | 2 |  10 | POLYGON((0.002 0,0.003 0.001,0.004 0,0.003 -0.001,0.002 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3201
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3215
+#, no-c-format
+msgid "ST_PixelAsPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3216
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a point geometry of the pixel's upper-left corner.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3222
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPoint</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3233
+#, no-c-format
+msgid "<para>Returns a point geometry of the pixel's upper-left corner.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3239
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PixelAsPoint(rast, 1, 1)) FROM dummy_rast WHERE rid = "
+"1;\n"
+"\n"
+"   st_astext    \n"
+"----------------\n"
+" POINT(0.5 0.5)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3244
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3258
+#, no-c-format
+msgid "ST_PixelAsPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3259
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a point geometry for each pixel of a raster band along "
+"with the value, the X and the Y raster coordinates of each pixel. The "
+"coordinates of the point geometry are of the pixel's upper-left corner.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3265
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPoints</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3276
+#, no-c-format
+msgid ""
+"<para>Returns a point geometry for each pixel of a raster band along with "
+"the value, the X and the Y raster coordinates of each pixel. The coordinates "
+"of the point geometry are of the pixel's upper-left corner.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3280 reference_raster.xml:3374
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3290
+#, no-c-format
+msgid ""
+"SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsPoints(rast, 1)).* "
+"FROM dummy_rast WHERE rid = 2) foo;\n"
+"\n"
+" x | y | val |          st_astext           \n"
+"---+---+-----+------------------------------\n"
+" 1 | 1 | 253 | POINT(3427927.75 5793244)\n"
+" 2 | 1 | 254 | POINT(3427927.8 5793244)\n"
+" 3 | 1 | 253 | POINT(3427927.85 5793244)\n"
+" 4 | 1 | 254 | POINT(3427927.9 5793244)\n"
+" 5 | 1 | 254 | POINT(3427927.95 5793244)\n"
+" 1 | 2 | 253 | POINT(3427927.75 5793243.95)\n"
+" 2 | 2 | 254 | POINT(3427927.8 5793243.95)\n"
+" 3 | 2 | 254 | POINT(3427927.85 5793243.95)\n"
+" 4 | 2 | 253 | POINT(3427927.9 5793243.95)\n"
+" 5 | 2 | 249 | POINT(3427927.95 5793243.95)\n"
+" 1 | 3 | 250 | POINT(3427927.75 5793243.9)\n"
+" 2 | 3 | 254 | POINT(3427927.8 5793243.9)\n"
+" 3 | 3 | 254 | POINT(3427927.85 5793243.9)\n"
+" 4 | 3 | 252 | POINT(3427927.9 5793243.9)\n"
+" 5 | 3 | 249 | POINT(3427927.95 5793243.9)\n"
+" 1 | 4 | 251 | POINT(3427927.75 5793243.85)\n"
+" 2 | 4 | 253 | POINT(3427927.8 5793243.85)\n"
+" 3 | 4 | 254 | POINT(3427927.85 5793243.85)\n"
+" 4 | 4 | 254 | POINT(3427927.9 5793243.85)\n"
+" 5 | 4 | 253 | POINT(3427927.95 5793243.85)\n"
+" 1 | 5 | 252 | POINT(3427927.75 5793243.8)\n"
+" 2 | 5 | 250 | POINT(3427927.8 5793243.8)\n"
+" 3 | 5 | 254 | POINT(3427927.85 5793243.8)\n"
+" 4 | 5 | 254 | POINT(3427927.9 5793243.8)\n"
+" 5 | 5 | 254 | POINT(3427927.95 5793243.8)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3295
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3309
+#, no-c-format
+msgid "ST_PixelAsCentroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3310
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the centroid (point geometry) of the area represented by "
+"a pixel.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3316
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsCentroid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3327
+#, no-c-format
+msgid ""
+"<para>Returns the centroid (point geometry) of the area represented by a "
+"pixel.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3333
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PixelAsCentroid(rast, 1, 1)) FROM dummy_rast WHERE rid = "
+"1;\n"
+"\n"
+"  st_astext   \n"
+"--------------\n"
+" POINT(1.5 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3338
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroids\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3352
+#, no-c-format
+msgid "ST_PixelAsCentroids"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3353
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the centroid (point geometry) for each pixel of a raster "
+"band along with the value, the X and the Y raster coordinates of each pixel. "
+"The point geometry is the centroid of the area represented by a pixel.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3359
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsCentroids</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3370
+#, no-c-format
+msgid ""
+"<para>Returns the centroid (point geometry) for each pixel of a raster band "
+"along with the value, the X and the Y raster coordinates of each pixel. The "
+"point geometry is the centroid of the area represented by a pixel.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3384
+#, no-c-format
+msgid ""
+"SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsCentroids(rast, "
+"1)).* FROM dummy_rast WHERE rid = 2) foo;\n"
+" x | y | val |           st_astext            \n"
+"---+---+-----+--------------------------------\n"
+" 1 | 1 | 253 | POINT(3427927.775 5793243.975)\n"
+" 2 | 1 | 254 | POINT(3427927.825 5793243.975)\n"
+" 3 | 1 | 253 | POINT(3427927.875 5793243.975)\n"
+" 4 | 1 | 254 | POINT(3427927.925 5793243.975)\n"
+" 5 | 1 | 254 | POINT(3427927.975 5793243.975)\n"
+" 1 | 2 | 253 | POINT(3427927.775 5793243.925)\n"
+" 2 | 2 | 254 | POINT(3427927.825 5793243.925)\n"
+" 3 | 2 | 254 | POINT(3427927.875 5793243.925)\n"
+" 4 | 2 | 253 | POINT(3427927.925 5793243.925)\n"
+" 5 | 2 | 249 | POINT(3427927.975 5793243.925)\n"
+" 1 | 3 | 250 | POINT(3427927.775 5793243.875)\n"
+" 2 | 3 | 254 | POINT(3427927.825 5793243.875)\n"
+" 3 | 3 | 254 | POINT(3427927.875 5793243.875)\n"
+" 4 | 3 | 252 | POINT(3427927.925 5793243.875)\n"
+" 5 | 3 | 249 | POINT(3427927.975 5793243.875)\n"
+" 1 | 4 | 251 | POINT(3427927.775 5793243.825)\n"
+" 2 | 4 | 253 | POINT(3427927.825 5793243.825)\n"
+" 3 | 4 | 254 | POINT(3427927.875 5793243.825)\n"
+" 4 | 4 | 254 | POINT(3427927.925 5793243.825)\n"
+" 5 | 4 | 253 | POINT(3427927.975 5793243.825)\n"
+" 1 | 5 | 252 | POINT(3427927.775 5793243.775)\n"
+" 2 | 5 | 250 | POINT(3427927.825 5793243.775)\n"
+" 3 | 5 | 254 | POINT(3427927.875 5793243.775)\n"
+" 4 | 5 | 254 | POINT(3427927.925 5793243.775)\n"
+" 5 | 5 | 254 | POINT(3427927.975 5793243.775)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3389
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3403
+#, no-c-format
+msgid "ST_Value"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3404
+#, no-c-format
+msgid ""
+"Returns the value of a given band in a given columnx, rowy pixel or at a "
+"particular geometric point. Band numbers start at 1 and assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to false, "
+"then all pixels include <varname>nodata</varname> pixels are considered to "
+"intersect and return value. If <varname>exclude_nodata_value</varname> is "
+"not passed in then reads it from metadata of raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3408
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3443
+#, no-c-format
+msgid ""
+"Returns the value of a given band in a given columnx, rowy pixel or at a "
+"given geometry point. Band numbers start at 1 and band is assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to true, "
+"then only non <varname>nodata</varname> pixels are considered. If "
+"<varname>exclude_nodata_value</varname> is set to false, then all pixels are "
+"considered."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3446
+#, no-c-format
+msgid "Enhanced: 2.0.0 exclude_nodata_value optional argument was added."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3451
+#, no-c-format
+msgid ""
+"-- get raster values at particular postgis geometry points\n"
+"-- the srid of your geometry should be same as for your raster\n"
+"SELECT rid, ST_Value(rast, foo.pt_geom) As b1pval, ST_Value(rast, 2, foo."
+"pt_geom) As b2pval\n"
+"FROM dummy_rast CROSS JOIN (SELECT ST_SetSRID(ST_Point(3427927.77, "
+"5793243.76), 0) As pt_geom) As foo\n"
+"WHERE rid=2;\n"
+"\n"
+" rid | b1pval | b2pval\n"
+"-----+--------+--------\n"
+"   2 |    252 |     79\n"
+"   \n"
+"   \n"
+"-- general fictitious example using a real table\n"
+"SELECT rid, ST_Value(rast, 3, sometable.geom) As b3pval\n"
+"FROM sometable\n"
+"WHERE ST_Intersects(rast,sometable.geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3452
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Value(rast, 1, 1, 1) As b1pval, \n"
+"    ST_Value(rast, 2, 1, 1) As b2pval, ST_Value(rast, 3, 1, 1) As b3pval\n"
+"FROM dummy_rast\n"
+"WHERE rid=2;\n"
+"\n"
+" rid | b1pval | b2pval | b3pval\n"
+"-----+--------+--------+--------\n"
+"   2 |    253 |     78 |     70"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3454
+#, no-c-format
+msgid ""
+"--- Get all values in bands 1,2,3 of each pixel --\n"
+"SELECT x, y, ST_Value(rast, 1, x, y) As b1val, \n"
+"        ST_Value(rast, 2, x, y) As b2val, ST_Value(rast, 3, x, y) As b3val\n"
+"FROM dummy_rast CROSS JOIN\n"
+"generate_series(1, 1000) As x CROSS JOIN generate_series(1, 1000) As y\n"
+"WHERE rid =  2 AND x <= ST_Width(rast) AND y <= ST_Height(rast);\n"
+"\n"
+" x | y | b1val | b2val | b3val\n"
+"---+---+-------+-------+-------\n"
+" 1 | 1 |   253 |    78 |    70\n"
+" 1 | 2 |   253 |    96 |    80\n"
+" 1 | 3 |   250 |    99 |    90\n"
+" 1 | 4 |   251 |    89 |    77\n"
+" 1 | 5 |   252 |    79 |    62\n"
+" 2 | 1 |   254 |    98 |    86\n"
+" 2 | 2 |   254 |   118 |   108\n"
+" :\n"
+" :"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3456
+#, no-c-format
+msgid ""
+"--- Get all values in bands 1,2,3 of each pixel same as above but returning "
+"the upper left point point of each pixel --\n"
+"SELECT ST_AsText(ST_SetSRID(\n"
+"        ST_Point(ST_UpperLeftX(rast) + ST_ScaleX(rast)*x, \n"
+"                ST_UpperLeftY(rast) + ST_ScaleY(rast)*y), \n"
+"                ST_SRID(rast))) As uplpt\n"
+"    , ST_Value(rast, 1, x, y) As b1val, \n"
+"        ST_Value(rast, 2, x, y) As b2val, ST_Value(rast, 3, x, y) As b3val\n"
+"FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000) As x CROSS JOIN generate_series(1,1000) As y\n"
+"WHERE rid =  2 AND x <= ST_Width(rast) AND y <= ST_Height(rast);\n"
+"\n"
+"            uplpt            | b1val | b2val | b3val\n"
+"-----------------------------+-------+-------+-------\n"
+" POINT(3427929.25 5793245.5) |   253 |    78 |    70\n"
+" POINT(3427929.25 5793247)   |   253 |    96 |    80\n"
+" POINT(3427929.25 5793248.5) |   250 |    99 |    90\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3457
+#, no-c-format
+msgid ""
+"--- Get a polygon formed by union of all pixels \n"
+"        that fall in a particular value range and intersect particular "
+"polygon --\n"
+"SELECT ST_AsText(ST_Union(pixpolyg)) As shadow\n"
+"FROM (SELECT ST_Translate(ST_MakeEnvelope(\n"
+"                ST_UpperLeftX(rast), ST_UpperLeftY(rast), \n"
+"                        ST_UpperLeftX(rast) + ST_ScaleX(rast),\n"
+"                        ST_UpperLeftY(rast) + ST_ScaleY(rast), 0\n"
+"                        ), ST_ScaleX(rast)*x, ST_ScaleY(rast)*y\n"
+"                ) As pixpolyg, ST_Value(rast, 2, x, y) As b2val\n"
+"        FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000) As x CROSS JOIN generate_series(1,1000) As y\n"
+"WHERE rid =  2 \n"
+"        AND x <= ST_Width(rast) AND y <= ST_Height(rast)) As foo\n"
+"WHERE  \n"
+"        ST_Intersects(\n"
+"                pixpolyg, \n"
+"                ST_GeomFromText('POLYGON((3427928 5793244,3427927.75 "
+"5793243.75,3427928 5793243.75,3427928 5793244))',0)\n"
+"                ) AND b2val != 254;\n"
+"\n"
+"\n"
+"                shadow\n"
+"------------------------------------------------------------------------------------\n"
+" MULTIPOLYGON(((3427928 5793243.9,3427928 5793243.85,3427927.95 "
+"5793243.85,3427927.95 5793243.9,\n"
+" 3427927.95 5793243.95,3427928 5793243.95,3427928.05 5793243.95,3427928.05 "
+"5793243.9,3427928 5793243.9)),((3427927.95 5793243.9,3427927.95 579324\n"
+"3.85,3427927.9 5793243.85,3427927.85 5793243.85,3427927.85 "
+"5793243.9,3427927.9 5793243.9,3427927.9 5793243.95,\n"
+"3427927.95 5793243.95,3427927.95 5793243.9)),((3427927.85 "
+"5793243.75,3427927.85 5793243.7,3427927.8 5793243.7,3427927.8 5793243.75\n"
+",3427927.8 5793243.8,3427927.8 5793243.85,3427927.85 5793243.85,3427927.85 "
+"5793243.8,3427927.85 5793243.75)),\n"
+"((3427928.05 5793243.75,3427928.05 5793243.7,3427928 5793243.7,3427927.95 "
+"5793243.7,3427927.95 5793243.75,3427927.95 5793243.8,3427\n"
+"927.95 5793243.85,3427928 5793243.85,3427928 5793243.8,3427928.05 "
+"5793243.8,\n"
+"3427928.05 5793243.75)),((3427927.95 5793243.75,3427927.95 "
+"5793243.7,3427927.9 5793243.7,3427927.85 5793243.7,\n"
+"3427927.85 5793243.75,3427927.85 5793243.8,3427927.85 5793243.85,3427927.9 "
+"5793243.85,\n"
+"3427927.95 5793243.85,3427927.95 5793243.8,3427927.95 5793243.75)))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3459
+#, no-c-format
+msgid ""
+"--- Checking all the pixels of a large raster tile can take a long time.\n"
+"--- You can dramatically improve speed at some lose of precision by orders "
+"of magnitude \n"
+"--  by sampling pixels using the step optional parameter of "
+"generate_series.  \n"
+"--  This next example does the same as previous but by checking 1 for every "
+"4 (2x2) pixels and putting in the last checked\n"
+"--  putting in the checked pixel as the value for subsequent 4\n"
+"        \n"
+"SELECT ST_AsText(ST_Union(pixpolyg)) As shadow\n"
+"FROM (SELECT ST_Translate(ST_MakeEnvelope(\n"
+"                ST_UpperLeftX(rast), ST_UpperLeftY(rast), \n"
+"                        ST_UpperLeftX(rast) + ST_ScaleX(rast)*2,\n"
+"                        ST_UpperLeftY(rast) + ST_ScaleY(rast)*2, 0\n"
+"                        ), ST_ScaleX(rast)*x, ST_ScaleY(rast)*y\n"
+"                ) As pixpolyg, ST_Value(rast, 2, x, y) As b2val\n"
+"        FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000,2) As x CROSS JOIN generate_series(1,1000,2) As y\n"
+"WHERE rid =  2 \n"
+"        AND x <= ST_Width(rast)  AND y <= ST_Height(rast)  ) As foo\n"
+"WHERE  \n"
+"        ST_Intersects(\n"
+"                pixpolyg, \n"
+"                ST_GeomFromText('POLYGON((3427928 5793244,3427927.75 "
+"5793243.75,3427928 5793243.75,3427928 5793244))',0)\n"
+"                ) AND b2val != 254;\n"
+"\n"
+"                shadow\n"
+"------------------------------------------------------------------------------------\n"
+" MULTIPOLYGON(((3427927.9 5793243.85,3427927.8 5793243.85,3427927.8 "
+"5793243.95,\n"
+" 3427927.9 5793243.95,3427928 5793243.95,3427928.1 5793243.95,3427928.1 "
+"5793243.85,3427928 5793243.85,3427927.9 5793243.85)),\n"
+" ((3427927.9 5793243.65,3427927.8 5793243.65,3427927.8 5793243.75,3427927.8 "
+"5793243.85,3427927.9 5793243.85,\n"
+" 3427928 5793243.85,3427928 5793243.75,3427928.1 5793243.75,3427928.1 "
+"5793243.65,3427928 5793243.65,3427927.9 5793243.65)))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3464
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_DumpAsPolygons\"/>, <xref linkend=\"RT_ST_NumBands\"/"
+">, <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_ScaleX\"/"
+">, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>, <xref linkend=\"RT_ST_SRID\"/>, <xref "
+"linkend=\"ST_AsText\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_MakeEnvelope\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Intersection\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3485
+#, no-c-format
+msgid "ST_NearestValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3486
+#, no-c-format
+msgid ""
+"Returns the nearest non-<varname>NODATA</varname> value of a given band's "
+"pixel specified by a columnx and rowy or a geometric point expressed in the "
+"same spatial reference coordinate system as the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3492
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3529
+#, no-c-format
+msgid ""
+"Returns the nearest non-<varname>NODATA</varname> value of a given band in a "
+"given columnx, rowy pixel or at a specific geometric point. If the columnx, "
+"rowy pixel or the pixel at the specified geometric point is <varname>NODATA</"
+"varname>, the function will find the nearest pixel to the columnx, rowy "
+"pixel or geometric point whose value is not <varname>NODATA</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3532 reference_raster.xml:3619
+#, no-c-format
+msgid ""
+"Band numbers start at 1 and <varname>bandnum</varname> is assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to false, "
+"then all pixels include <varname>nodata</varname> pixels are considered to "
+"intersect and return value. If <varname>exclude_nodata_value</varname> is "
+"not passed in then reads it from metadata of raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3537
+#, no-c-format
+msgid "ST_NearestValue is a drop-in replacement for ST_Value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3546
+#, no-c-format
+msgid ""
+"-- pixel 2x2 has value\n"
+"SELECT\n"
+"        ST_Value(rast, 2, 2) AS value,\n"
+"        ST_NearestValue(rast, 2, 2) AS nearestvalue\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_AddBand(\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                '8BUI'::"
+"text, 1, 0\n"
+"                                                        ),\n"
+"                                                        1, 1, 0.\n"
+"                                                ),\n"
+"                                                2, 3, 0.\n"
+"                                        ),\n"
+"                                        3, 5, 0.\n"
+"                                ),\n"
+"                                4, 2, 0.\n"
+"                        ),\n"
+"                        5, 4, 0.\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+" value | nearestvalue \n"
+"-------+--------------\n"
+"     1 |            1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3548
+#, no-c-format
+msgid ""
+"-- pixel 2x3 is NODATA\n"
+"SELECT\n"
+"        ST_Value(rast, 2, 3) AS value,\n"
+"        ST_NearestValue(rast, 2, 3) AS nearestvalue\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_AddBand(\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                '8BUI'::"
+"text, 1, 0\n"
+"                                                        ),\n"
+"                                                        1, 1, 0.\n"
+"                                                ),\n"
+"                                                2, 3, 0.\n"
+"                                        ),\n"
+"                                        3, 5, 0.\n"
+"                                ),\n"
+"                                4, 2, 0.\n"
+"                        ),\n"
+"                        5, 4, 0.\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+" value | nearestvalue \n"
+"-------+--------------\n"
+"       |            1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3554
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3564
+#, no-c-format
+msgid "ST_Neighborhood"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3565
+#, no-c-format
+msgid ""
+"Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
+"values around a given band's pixel specified by either a columnX and rowY or "
+"a geometric point expressed in the same spatial reference coordinate system "
+"as the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3571
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3616
+#, no-c-format
+msgid ""
+"Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
+"values around a given band's pixel specified by either a columnX and rowY or "
+"a geometric point expressed in the same spatial reference coordinate system "
+"as the raster. The <varname>distanceX</varname> and <varname>distanceY</"
+"varname> parameters define the number of pixels around the specified pixel "
+"in the X and Y axes, e.g. I want all values within 3 pixel distance along "
+"the X axis and 2 pixel distance along the Y axis around my pixel of "
+"interest. The center value of the 2-D array will be the value at the pixel "
+"specified by the columnX and rowY or the geometric point."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3623
+#, no-c-format
+msgid ""
+"The number of elements along each axis of the returning 2-D array is 2 * "
+"(<varname>distanceX</varname>|<varname>distanceY</varname>) + 1. So for a "
+"<varname>distanceX</varname> and <varname>distanceY</varname> of 1, the "
+"returning array will be 3x3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3628
+#, no-c-format
+msgid ""
+"The 2-D array output can be passed to any of the raster processing builtin "
+"functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3638
+#, no-c-format
+msgid ""
+"-- pixel 2x2 has value\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 2, 2, 1, 1)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"         st_neighborhood         \n"
+"---------------------------------\n"
+" {{NULL,1,1},{1,1,NULL},{1,1,1}}"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3640
+#, no-c-format
+msgid ""
+"-- pixel 2x3 is NODATA\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 2, 3, 1, 1)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"       st_neighborhood        \n"
+"------------------------------\n"
+" {{1,1,1},{1,NULL,1},{1,1,1}}"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3642
+#, no-c-format
+msgid ""
+"-- pixel 3x3 has value\n"
+"-- exclude_nodata_value = FALSE\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 3, 3, 1, 1, false)\n"
+"FROM (\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"      st_neighborhood      \n"
+"---------------------------\n"
+" {{1,0,1},{1,1,1},{0,1,1}}"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3648
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
+"linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend="
+"\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref linkend="
+"\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3665
+#, no-c-format
+msgid "ST_SetValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3666
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the value of a given band in "
+"a given columnx, rowy pixel or the pixels that intersect a particular "
+"geometry. Band numbers start at 1 and assumed to be 1 if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3670
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3704
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the specified pixels' values "
+"to new value for the designed band given the raster's row and column or a "
+"geometry. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3707
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Geometry variant of ST_SetValue() now supports any geometry "
+"type, not just point. The geometry variant is a wrapper around the geomval[] "
+"variant of ST_SetValues()"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3713
+#, no-c-format
+msgid ""
+"-- Geometry example\n"
+"SELECT (foo.geomval).val, ST_AsText(ST_Union((foo.geomval).geom))\n"
+"FROM (SELECT ST_DumpAsPolygons(\n"
+"                ST_SetValue(rast,1,\n"
+"                                ST_Point(3427927.75, 5793243.95),\n"
+"                                50)\n"
+"                        ) As geomval\n"
+"FROM dummy_rast\n"
+"where rid = 2) As foo\n"
+"WHERE (foo.geomval).val < 250\n"
+"GROUP BY (foo.geomval).val;\n"
+"\n"
+" val |                                                     st_astext\n"
+"-----+-------------------------------------------------------------------\n"
+"  50 | POLYGON((3427927.75 5793244,3427927.75 5793243.95,3427927.8 "
+"579324 ...\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 57932 ..."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3715
+#, no-c-format
+msgid ""
+"-- Store the changed raster --\n"
+"        UPDATE dummy_rast SET rast = ST_SetValue(rast,1, "
+"ST_Point(3427927.75, 5793243.95),100)\n"
+"                WHERE rid = 2   ;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3719 reference_raster.xml:9319
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DumpAsPolygons\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3725
+#, no-c-format
+msgid "ST_SetValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3726
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the values of a given band."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3730
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>boolean[][] </type> "
+"<parameter>noset=NULL</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>nosetvalue</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValues</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geomval[] </type> <parameter>geomvalset</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3789
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting specified pixels to new "
+"value(s) for the designated band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3793
+#, no-c-format
+msgid ""
+"If <varname>keepnodata</varname> is TRUE, those pixels whose values are "
+"NODATA will not be set with the corresponding value in <varname>newvalueset</"
+"varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3797
+#, no-c-format
+msgid ""
+"For Variant 1, the specific pixels to be set are determined by the "
+"<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates and "
+"the dimensions of the <varname>newvalueset</varname> array. <varname>noset</"
+"varname> can be used to prevent pixels with values present in "
+"<varname>newvalueset</varname> from being set (due to PostgreSQL not "
+"permitting ragged/jagged arrays). See example Variant 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3801
+#, no-c-format
+msgid ""
+"Variant 2 is like Variant 1 but with a simple double precision "
+"<varname>nosetvalue</varname> instead of a boolean <varname>noset</varname> "
+"array. Elements in <varname>newvalueset</varname> with the "
+"<varname>nosetvalue</varname> value with be skipped. See example Variant 2."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3805
+#, no-c-format
+msgid ""
+"For Variant 3, the specific pixels to be set are determined by the "
+"<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates, "
+"<varname>width</varname> and <varname>height</varname>. See example Variant "
+"3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3809
+#, no-c-format
+msgid ""
+"Variant 4 is the same as Variant 3 with the exception that it assumes that "
+"the first band's pixels of <varname>rast</varname> will be set."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3813
+#, no-c-format
+msgid ""
+"For Variant 5, an array of <xref linkend=\"geomval\"/> is used to determine "
+"the specific pixels to be set. If all the geometries in the array are of "
+"type POINT or MULTIPOINT, the function uses a shortcut where the longitude "
+"and latitude of each point is used to set a pixel directly. Otherwise, the "
+"geometries are converted to rasters and then iterated through in one pass. "
+"See example Variant 5."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3822 reference_raster.xml:6730
+#: reference_raster.xml:8262 reference_raster.xml:8705
+#: reference_raster.xml:8802 reference_raster.xml:8930
+#, no-c-format
+msgid "Examples: Variant 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3824
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 2, 2, ARRAY[[9, 9], [9, 9]]::double precision[]"
+"[]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3826
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 9 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   9\n"
+" 1 | 2 |   9\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3828
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1,\n"
+"                                ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][],\n"
+"                                ARRAY[[false], [true]]::boolean[][]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   9\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3830
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"|   | 1 | 1 |          |   | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_SetValue(\n"
+"                                ST_AddBand(\n"
+"                                        ST_MakeEmptyRaster(3, 3, 0, 0, 1, "
+"-1, 0, 0, 0),\n"
+"                                        1, '8BUI', 1, 0\n"
+"                                ),\n"
+"                                1, 1, 1, NULL\n"
+"                        ),\n"
+"                        1, 1, 1,\n"
+"                                ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][],\n"
+"                                ARRAY[[false], [true]]::boolean[][],\n"
+"                                TRUE\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   \n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3835 reference_raster.xml:8269
+#: reference_raster.xml:8710 reference_raster.xml:8807
+#: reference_raster.xml:8935
+#, no-c-format
+msgid "Examples: Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3837
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[-1, -1, -1], [-1, 9, 9], [-1, 9, "
+"9]]::double precision[][], -1\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3839
+#, no-c-format
+msgid ""
+"/*\n"
+"This example is like the previous one.  Instead of nosetvalue = -1, "
+"nosetvalue = NULL\n"
+"\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[NULL, NULL, NULL], [NULL, 9, 9], "
+"[NULL, 9, 9]]::double precision[][], NULL::double precision\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3844 reference_raster.xml:4788
+#, no-c-format
+msgid "Examples: Variant 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3846
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 2, 2, 2, 2, 9\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3848
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 |   | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_SetValue(\n"
+"                                ST_AddBand(\n"
+"                                        ST_MakeEmptyRaster(3, 3, 0, 0, 1, "
+"-1, 0, 0, 0),\n"
+"                                        1, '8BUI', 1, 0\n"
+"                                ),\n"
+"                                1, 2, 2, NULL\n"
+"                        ),\n"
+"                        1, 2, 2, 2, 2, 9, TRUE\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3853
+#, no-c-format
+msgid "Examples: Variant 5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3855
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        rid, gid, ST_DumpValues(ST_SetValue(rast, 1, geom, gid))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"ORDER BY rid, gid;\n"
+"\n"
+" rid | gid |                                                                "
+"st_dumpvalues                                                                \n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,NULL,1,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,"
+"NULL}}\")\n"
+"   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,"
+"NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   3 | (1,\"{{3,3,3,3,3},{3,NULL,NULL,NULL,NULL},{3,NULL,NULL,NULL,"
+"NULL},{3,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   4 | (1,\"{{4,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,"
+"NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,4}}\")\n"
+"(4 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3857
+#, no-c-format
+msgid ""
+"The following shows that geomvals later in the array can overwrite prior "
+"geomvals"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3858
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 1\n"
+"        AND t3.gid = 2\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3860
+#, no-c-format
+msgid "This example is the opposite of the prior example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3861
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 2\n"
+"        AND t3.gid = 1\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   2 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,1,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3868
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_PixelAsPolygons"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3878
+#, no-c-format
+msgid "ST_DumpValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3879
+#, no-c-format
+msgid "Get the values of the specified band as a 2-dimension array."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3885
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_DumpValues</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer[] </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision[][] "
+"<function>ST_DumpValues</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rast</parameter> </paramdef> <paramdef> <type>integer </type> "
+"<parameter>nband</parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3916
+#, no-c-format
+msgid ""
+"Get the values of the specified band as a 2-dimension array. If "
+"<varname>nband</varname> is NULL or not provided, all raster bands are "
+"processed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3926
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast)).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"     2 | {{3,3,3},{3,3,3},{3,3,3}}\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3928
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast, ARRAY[3, 1])).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3933
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_SetValues\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3944
+#, no-c-format
+msgid "ST_PixelOfValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3945
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3951
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>double precision[] </type> <parameter>search</"
+"parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </"
+"type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4012
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4021
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        (pixels).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_PixelOfValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_SetValue(\n"
+"                                                                ST_AddBand(\n"
+"                                                                        ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                        '8BUI'::"
+"text, 1, 0\n"
+"                                                                ),\n"
+"                                                                1, 1, 0\n"
+"                                                        ),\n"
+"                                                        2, 3, 0\n"
+"                                                ),\n"
+"                                                3, 5, 0\n"
+"                                        ),\n"
+"                                        4, 2, 0\n"
+"                                ),\n"
+"                                5, 4, 255\n"
+"                        )\n"
+"                , 1, ARRAY[1, 255]) AS pixels\n"
+") AS foo\n"
+"\n"
+" val | x | y \n"
+"-----+---+---\n"
+"   1 | 1 | 2\n"
+"   1 | 1 | 3\n"
+"   1 | 1 | 4\n"
+"   1 | 1 | 5\n"
+"   1 | 2 | 1\n"
+"   1 | 2 | 2\n"
+"   1 | 2 | 4\n"
+"   1 | 2 | 5\n"
+"   1 | 3 | 1\n"
+"   1 | 3 | 2\n"
+"   1 | 3 | 3\n"
+"   1 | 3 | 4\n"
+"   1 | 4 | 1\n"
+"   1 | 4 | 3\n"
+"   1 | 4 | 4\n"
+"   1 | 4 | 5\n"
+"   1 | 5 | 1\n"
+"   1 | 5 | 2\n"
+"   1 | 5 | 3\n"
+" 255 | 5 | 4\n"
+"   1 | 5 | 5"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4029
+#, no-c-format
+msgid "Raster Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4033
+#, no-c-format
+msgid "ST_SetGeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4034
+#, no-c-format
+msgid ""
+"Set Georeference 6 georeference parameters in a single call. Numbers should "
+"be separated by white space. Accepts inputs in GDAL or ESRI format. Default "
+"is GDAL."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4038
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>georefcoords</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>format=GDAL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>upperlefty</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scalex</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scaley</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>skewy</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4064
+#, no-c-format
+msgid ""
+"Set Georeference 6 georeference parameters in a single call. Accepts inputs "
+"in 'GDAL' or 'ESRI' format. Default is GDAL. If 6 coordinates are not "
+"provided will return null."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4067
+#, no-c-format
+msgid "scalex skewy skewx scaley upperleftx upperlefty"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4069
+#, no-c-format
+msgid ""
+"scalex skewy skewx scaley upperleftx + scalex*0.5 upperlefty + scaley*0.5"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4072
+#, no-c-format
+msgid ""
+"If the raster has out-db bands, changing the georeference may result in "
+"incorrect access of the band's externally stored data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4077
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Addition of ST_SetGeoReference(raster, double "
+"precision, ...) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4084
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        0 AS rid, (ST_Metadata(rast)).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        1, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 0.1 0.1', "
+"'GDAL'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 5.1 -4.9', "
+"'ESRI'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3, (ST_Metadata(ST_SetGeoReference(rast, 1, 1, 10, -10, 0.001, "
+"0.001))).*\n"
+"FROM foo\n"
+"\n"
+" rid |     upperleftx     |     upperlefty     | width | height | scalex | "
+"scaley | skewx | skewy | srid | numbands \n"
+"-----+--------------------+--------------------+-------+--------+--------"
+"+--------+-------+-------+------+----------\n"
+"   0 |                  0 |                  0 |     5 |      5 |      1 "
+"|     -1 |     0 |     0 |    0 |        0\n"
+"   1 |                0.1 |                0.1 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   2 | 0.0999999999999996 | 0.0999999999999996 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   3 |                  1 |                  1 |     5 |      5 |     10 "
+"|    -10 | 0.001 | 0.001 |    0 |        0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4089
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4095
+#, no-c-format
+msgid "ST_SetRotation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4096
+#, no-c-format
+msgid "Set the rotation of the raster in radian."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4101
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SetRotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8</type> <parameter>rotation</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4112
+#, no-c-format
+msgid ""
+"Uniformly rotate the raster. Rotation is in radian. Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4118
+#, no-c-format
+msgid ""
+"SELECT \n"
+"  ST_ScaleX(rast1), ST_ScaleY(rast1), ST_SkewX(rast1), ST_SkewY(rast1),\n"
+"  ST_ScaleX(rast2), ST_ScaleY(rast2), ST_SkewX(rast2), ST_SkewY(rast2) \n"
+"FROM (\n"
+"  SELECT ST_SetRotation(rast, 15) AS rast1, rast as rast2 FROM dummy_rast\n"
+") AS foo;\n"
+"      st_scalex      |      st_scaley      |      st_skewx      |      "
+"st_skewy      | st_scalex | st_scaley | st_skewx | st_skewy\n"
+"---------------------+---------------------+--------------------"
+"+--------------------+-----------+-----------+----------+----------\n"
+"   -1.51937582571764 |   -2.27906373857646 |   1.95086352047135 |   "
+"1.30057568031423 |         2 |         3 |        0 |        0\n"
+" -0.0379843956429411 | -0.0379843956429411 | 0.0325143920078558 | "
+"0.0325143920078558 |      0.05 |     -0.05 |        0 |        0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4131
+#, no-c-format
+msgid "ST_SetScale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4132
+#, no-c-format
+msgid ""
+"Sets the X and Y size of pixels in units of coordinate reference system. "
+"Number units/pixel width/height."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4136
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>xy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetScale</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>x</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>y</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4155
+#, no-c-format
+msgid ""
+"Sets the X and Y size of pixels in units of coordinate reference system. "
+"Number units/pixel width/height. If only one unit passed in, assumed X and Y "
+"are the same number."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4158
+#, no-c-format
+msgid ""
+"ST_SetScale is different from <xref linkend=\"RT_ST_Rescale\"/> in that "
+"ST_SetScale do not resample the raster to match the raster extent. It only "
+"changes the metadata (or georeference) of the raster to correct an "
+"originally mis-specified scaling. ST_Rescale results in a raster having "
+"different width and height computed to fit the geographic extent of the "
+"input raster. ST_SetScale do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4160
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In WKTRaster versions this was called ST_SetPixelSize. This "
+"was changed in 2.0.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4166
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetScale(rast, 1.5)\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT ST_ScaleX(rast) As pixx, ST_ScaleY(rast) As pixy, Box3D(rast) As "
+"newbox\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" pixx | pixy |                    newbox\n"
+"------+------+----------------------------------------------\n"
+"  1.5 |  1.5 | BOX(3427927.75 5793244 0, 3427935.25 5793251.5 0)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4167
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetScale(rast, 1.5, 0.55)\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT ST_ScaleX(rast) As pixx, ST_ScaleY(rast) As pixy, Box3D(rast) As "
+"newbox\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" pixx | pixy |                   newbox\n"
+"------+------+--------------------------------------------\n"
+"  1.5 | 0.55 | BOX(3427927.75 5793244 0,3427935.25 5793247 0)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4173
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4179
+#, no-c-format
+msgid "ST_SetSkew"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4180
+#, no-c-format
+msgid ""
+"Sets the georeference X and Y skew (or rotation parameter). If only one is "
+"passed in, sets X and Y to the same value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4184
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>skewxy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetSkew</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewy</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4202
+#, no-c-format
+msgid ""
+"Sets the georeference X and Y skew (or rotation parameter). If only one is "
+"passed in, sets X and Y to the same value. Refer to <ulink url=\"http://en."
+"wikipedia.org/wiki/World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4209
+#, no-c-format
+msgid ""
+"-- Example 1                    \n"
+"UPDATE dummy_rast SET rast = ST_SetSkew(rast,1,2) WHERE rid = 1;\n"
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast WHERE rid = 1;\n"
+"\n"
+"rid | skewx | skewy |    georef\n"
+"----+-------+-------+--------------\n"
+"  1 |     1 |     2 | 2.0000000000\n"
+"                    : 2.0000000000\n"
+"                    : 1.0000000000\n"
+"                    : 3.0000000000\n"
+"                    : 0.5000000000\n"
+"                    : 0.5000000000"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4211
+#, no-c-format
+msgid ""
+"-- Example 2 set both to same number:\n"
+"UPDATE dummy_rast SET rast = ST_SetSkew(rast,0) WHERE rid = 1;\n"
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast WHERE rid = 1;\n"
+"                        \n"
+" rid | skewx | skewy |    georef\n"
+"-----+-------+-------+--------------\n"
+"   1 |     0 |     0 | 2.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 3.0000000000\n"
+"                     : 0.5000000000\n"
+"                     : 0.5000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4218
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetGeoReference\"/>, <xref linkend=\"RT_ST_SkewX\"/"
+">, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4224
+#, no-c-format
+msgid "ST_SetSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4226
+#, no-c-format
+msgid ""
+"Sets the SRID of a raster to a particular integer srid defined in the "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4231
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4246
+#, no-c-format
+msgid "Sets the SRID on a raster to a particular integer value."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4249
+#, no-c-format
+msgid ""
+"This function does not transform the raster in any way - it simply sets meta "
+"data defining the spatial ref of the coordinate reference system that it's "
+"currently in. Useful for transformations later."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4259
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4266
+#, no-c-format
+msgid "ST_SetUpperLeft"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4267
+#, no-c-format
+msgid ""
+"Sets the value of the upper left corner of the pixel to projected X and Y "
+"coordinates."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4272
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetUpperLeft</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>y</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4284
+#, no-c-format
+msgid ""
+"Set the value of the upper left corner of raster to the projected X "
+"coordinates"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4290
+#, no-c-format
+msgid ""
+"SELECT ST_SetUpperLeft(rast,-71.01,42.37)  \n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4296
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4302
+#, no-c-format
+msgid "ST_Resample"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4303
+#, no-c-format
+msgid ""
+"Resample a raster using a specified resampling algorithm, new dimensions, an "
+"arbitrary grid corner and a set of raster georeferencing attributes defined "
+"or borrowed from another raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4309
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>double "
+"precision </type> <parameter>scalex=0</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>scaley=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>ref</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
+"type> <parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>usescale=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>usescale</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4359
+#, no-c-format
+msgid ""
+"Resample a raster using a specified resampling algorithm, new dimensions "
+"(width & height), a grid corner (gridx & gridy) and a set of raster "
+"georeferencing attributes (scalex, scaley, skewx & skewy) defined or "
+"borrowed from another raster. If using a reference raster, the two rasters "
+"must have the same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4363
+#, no-c-format
+msgid ""
+"New pixel values are computed using the NearestNeighbor (English or American "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor which is the fastest but produce the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4367 reference_raster.xml:4434
+#, no-c-format
+msgid ""
+"A maxerror percent of 0.125 is used if no <varname>maxerr</varname> is "
+"specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4372 reference_raster.xml:4436
+#: reference_raster.xml:4504 reference_raster.xml:4582
+#, no-c-format
+msgid ""
+"Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp "
+"resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4376 reference_raster.xml:4440
+#: reference_raster.xml:4508 reference_raster.xml:4586
+#: reference_raster.xml:4742
+#, no-c-format
+msgid "Availability: 2.0.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4377
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 Parameter srid removed. Variants with a reference raster no "
+"longer applies the reference raster's SRID. Use ST_Transform() to reproject "
+"raster. Works on rasters with no SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4383
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_Width(orig) AS orig_width,\n"
+"        ST_Width(reduce_100) AS new_width\n"
+"FROM (\n"
+"        SELECT\n"
+"                rast AS orig,\n"
+"                ST_Resample(rast,100,100) AS reduce_100\n"
+"        FROM aerials.boston \n"
+"        WHERE ST_Intersects(rast,\n"
+"                ST_Transform(\n"
+"                        ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, "
+"4326),26986)\n"
+"        )\n"
+"        LIMIT 1\n"
+") AS foo;\n"
+"\n"
+" orig_width | new_width\n"
+"------------+-------------\n"
+"        200 |         100"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4388
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Resize\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4398
+#, no-c-format
+msgid "ST_Rescale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4399
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its scale (or pixel size). New pixel "
+"values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4404
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Rescale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Rescale</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4428
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its scale (or pixel size). New pixel "
+"values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4430
+#, no-c-format
+msgid ""
+"<varname>scalex</varname> and <varname>scaley</varname> define the new pixel "
+"size. scaley must often be negative to get well oriented raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4432
+#, no-c-format
+msgid ""
+"When the new scalex or scaley is not a divisor of the raster width or "
+"height, the extent of the resulting raster is expanded to encompass the "
+"extent of the provided raster. If you want to be sure to retain exact input "
+"extent see <xref linkend=\"RT_ST_Resize\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4438
+#, no-c-format
+msgid ""
+"ST_Rescale is different from <xref linkend=\"RT_ST_SetScale\"/> in that "
+"ST_SetScale do not resample the raster to match the raster extent. "
+"ST_SetScale only changes the metadata (or georeference) of the raster to "
+"correct an originally mis-specified scaling. ST_Rescale results in a raster "
+"having different width and height computed to fit the geographic extent of "
+"the input raster. ST_SetScale do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4441 reference_raster.xml:4509
+#: reference_raster.xml:4587
+#, no-c-format
+msgid "Changed: 2.1.0 Works on rasters with no SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4446
+#, no-c-format
+msgid ""
+"A simple example rescaling a raster from a pixel size of 0.001 degree to a "
+"pixel size of 0.0015 degree."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4448
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_PixelWidth(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0)) width\n"
+"\n"
+"   width\n"
+"----------\n"
+"0.001\n"
+"\n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_PixelWidth(ST_Rescale(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, "
+"0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015)) width\n"
+"\n"
+"   width\n"
+"----------\n"
+"0.0015"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4453
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_SetScale\"/>, "
+"<xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4466
+#, no-c-format
+msgid "ST_Reskew"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4467
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its skew (or rotation parameters). New "
+"pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4472
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reskew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>skewxy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reskew</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>skewy</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4496
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its skew (or rotation parameters). New "
+"pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4498
+#, no-c-format
+msgid ""
+"<varname>skewx</varname> and <varname>skewy</varname> define the new skew."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4500 reference_raster.xml:4578
+#, no-c-format
+msgid ""
+"The extent of the new raster will encompass the extent of the provided "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4502 reference_raster.xml:4580
+#, no-c-format
+msgid ""
+"A maxerror percent of 0.125 if no <varname>maxerr</varname> is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4506
+#, no-c-format
+msgid ""
+"ST_Reskew is different from <xref linkend=\"RT_ST_SetSkew\"/> in that "
+"ST_SetSkew do not resample the raster to match the raster extent. ST_SetSkew "
+"only changes the metadata (or georeference) of the raster to correct an "
+"originally mis-specified skew. ST_Reskew results in a raster having "
+"different width and height computed to fit the geographic extent of the "
+"input raster. ST_SetSkew do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4514
+#, no-c-format
+msgid ""
+"A simple example reskewing a raster from a skew of 0.0 to a skew of 0.0015."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4516
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_Rotation(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0))\n"
+"                                        \n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_Rotation(ST_Reskew(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, "
+"0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4522
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, "
+"<xref linkend=\"RT_ST_SetRotation\"/>, <xref linkend=\"RT_ST_SkewX\"/>, "
+"<xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4528
+#, no-c-format
+msgid "ST_SnapToGrid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4529
+#, no-c-format
+msgid ""
+"Resample a raster by snapping it to a grid. New pixel values are computed "
+"using the NearestNeighbor (english or american spelling), Bilinear, Cubic, "
+"CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4534
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex=DEFAULT 0</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>scaley=DEFAULT 0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4573
+#, no-c-format
+msgid ""
+"Resample a raster by snapping it to a grid defined by an arbitrary pixel "
+"corner (gridx & gridy) and optionally a pixel size (scalex & "
+"scaley). New pixel values are computed using the NearestNeighbor (english or "
+"american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling "
+"algorithm. The default is NearestNeighbor which is the fastest but results "
+"in the worst interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4575
+#, no-c-format
+msgid ""
+"<varname>gridx</varname> and <varname>gridy</varname> define any arbitrary "
+"pixel corner of the new grid. This is not necessarily the upper left corner "
+"of the new raster and it does not have to be inside or on the edge of the "
+"new raster extent."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4577
+#, no-c-format
+msgid ""
+"You can optionnal define the pixel size of the new grid with "
+"<varname>scalex</varname> and <varname>scaley</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4584
+#, no-c-format
+msgid ""
+"Use <xref linkend=\"RT_ST_Resample\"/> if you need more control over the "
+"grid parameters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4592
+#, no-c-format
+msgid "A simple example snapping a raster to a slightly different grid."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4594
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_UpperLeftX(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0))\n"
+"                                        \n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_UpperLeftX(ST_SnapToGrid(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, "
+"0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0002, 0.0002))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4600
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4606
+#, no-c-format
+msgid "ST_Resize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4607
+#, no-c-format
+msgid "Resize a raster to a new width/height"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4611
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resize</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>percentwidth</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>percentheight</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbor</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4645
+#, no-c-format
+msgid ""
+"Resize a raster to a new width/height. The new width/height can be specified "
+"in exact number of pixels or a percentage of the raster's width/height. The "
+"extent of the the new raster will be the same as the extent of the provided "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4649
+#, no-c-format
+msgid ""
+"New pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4653
+#, no-c-format
+msgid "Variant 1 expects the actual width/height of the output raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4657
+#, no-c-format
+msgid ""
+"Variant 2 expects decimal values between zero (0) and one (1) indicating the "
+"percentage of the input raster's width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4661
+#, no-c-format
+msgid ""
+"Variant 3 takes either the actual width/height of the output raster or a "
+"textual percentage (\"20%\") indicating the percentage of the input raster's "
+"width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4665
+#, no-c-format
+msgid "Availability: 2.1.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4669
+#, no-c-format
+msgid ""
+"WITH foo AS(\n"
+"SELECT\n"
+"        1 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , '50%', '500') AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 500, 100) AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 0.25, 0.9) AS rast\n"
+"), bar AS (\n"
+"        SELECT rid, ST_Metadata(rast) AS meta, rast FROM foo\n"
+")\n"
+"SELECT rid, (meta).* FROM bar\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands \n"
+"-----+------------+------------+-------+--------+--------+--------+-------"
+"+-------+------+----------\n"
+"   1 |          0 |          0 |   500 |    500 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   2 |          0 |          0 |   500 |    100 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   3 |          0 |          0 |   250 |    900 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4674
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_Reskew\"/>, <xref "
+"linkend=\"RT_ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4685
+#, no-c-format
+msgid "ST_Transform"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4686
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified resampling algorithm. Options are "
+"NearestNeighbor, Bilinear, Cubic, CubicSpline, Lanczos defaulting to "
+"NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4690
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Transform</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>algorithm=NearestNeighbor</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>alignto</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4724
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified pixel warping algorithm. Uses "
+"'NearestNeighbor' if no algorithm is specified and maxerror percent of 0.125 "
+"if no maxerr is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4728
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a raster (and resamples the pixel values) from "
+"one spatial reference system to another, while ST_SetSRID() simply changes "
+"the SRID identifier of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4732
+#, no-c-format
+msgid ""
+"Unlike the other variants, Variant 3 requires a reference raster as "
+"<varname>alignto</varname>. The transformed raster will be transformed to "
+"the spatial reference system (SRID) of the reference raster and be aligned "
+"(ST_SameAlignment = TRUE) to the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4737
+#, no-c-format
+msgid ""
+"If you find your transformation support is not working right, you may need "
+"to set the environment variable PROJSO to the .so or .dll projection library "
+"your PostGIS is using. This just needs to have the name of the file. So for "
+"example on windows, you would in Control Panel -> System -> Environment "
+"Variables add a system variable called <varname>PROJSO</varname> and set it "
+"to <varname>libproj.dll</varname> (if you are using proj 4.6.1). You'll have "
+"to restart your PostgreSQL service/daemon after this change."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4743
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of ST_Transform(rast, alignto) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4749
+#, no-c-format
+msgid ""
+"SELECT ST_Width(mass_stm) As w_before, ST_Width(wgs_84) As w_after,\n"
+"  ST_Height(mass_stm) As h_before, ST_Height(wgs_84) As h_after\n"
+"        FROM \n"
+"        ( SELECT rast As mass_stm, ST_Transform(rast,4326) As wgs_84\n"
+"  ,  ST_Transform(rast,4326, 'Bilinear') AS wgs_84_bilin\n"
+"                FROM aerials.o_2_boston \n"
+"                        WHERE ST_Intersects(rast,\n"
+"                                ST_Transform(ST_MakeEnvelope(-71.128, "
+"42.2392,-71.1277, 42.2397, 4326),26986) )\n"
+"                LIMIT 1) As foo;\n"
+"                                                \n"
+" w_before | w_after | h_before | h_after\n"
+"----------+---------+----------+---------\n"
+"      200 |     228 |      200 |     170"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4759
+#, no-c-format
+msgid "original mass state plane meters (mass_stm)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4768
+#, no-c-format
+msgid "After transform to wgs 84 long lat (wgs_84)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4777
+#, no-c-format
+msgid ""
+"After transform to wgs 84 long lat with bilinear algorithm instead of NN "
+"default (wgs_84_bilin)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4790
+#, no-c-format
+msgid ""
+"The following shows the difference between using ST_Transform(raster, srid) "
+"and ST_Transform(raster, alignto)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, "
+"600000, 100, -100, 0, 0, 2163), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 300, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                ST_Transform(rast, 4269) AS alignto\n"
+"        FROM foo\n"
+"        LIMIT 1\n"
+"), baz AS (\n"
+"        SELECT\n"
+"                rid,\n"
+"                rast,\n"
+"                ST_Transform(rast, 4269) AS not_aligned,\n"
+"                ST_Transform(rast, alignto) AS aligned\n"
+"        FROM foo\n"
+"        CROSS JOIN bar\n"
+")\n"
+"SELECT\n"
+"        ST_SameAlignment(rast) AS rast,\n"
+"        ST_SameAlignment(not_aligned) AS not_aligned,\n"
+"        ST_SameAlignment(aligned) AS aligned\n"
+"FROM baz\n"
+"\n"
+" rast | not_aligned | aligned \n"
+"------+-------------+---------\n"
+" t    | f           | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4796
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetSRID\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4802
+#, no-c-format
+msgid "Raster Band Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4806
+#, no-c-format
+msgid "ST_SetBandNoDataValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4807
+#, no-c-format
+msgid ""
+"Sets the value for the given band that represents no data. Band 1 is assumed "
+"if no band is specified. To mark a band as having no nodata value, set the "
+"nodata value = NULL."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4811
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetBandNoDataValue</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodatavalue</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetBandNoDataValue</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>nodatavalue</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>forcechecking=false</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4832
+#, no-c-format
+msgid ""
+"Sets the value that represents no data for the band. Band 1 is assumed if "
+"not specified. This will affect results from <xref linkend=\"RT_ST_Polygon\"/"
+">, <xref linkend=\"RT_ST_DumpAsPolygons\"/>, and the ST_PixelAs...() "
+"functions."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4838
+#, no-c-format
+msgid ""
+"-- change just first band no data value\n"
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetBandNoDataValue(rast,1, 254)  \n"
+"WHERE rid = 2;\n"
+"\n"
+"-- change no data band value of bands 1,2,3\n"
+"UPDATE dummy_rast \n"
+"        SET rast = \n"
+"                ST_SetBandNoDataValue(\n"
+"                        ST_SetBandNoDataValue(\n"
+"                                ST_SetBandNoDataValue(\n"
+"                                        rast,1, 254)\n"
+"                                ,2,99),\n"
+"                                3,108)  \n"
+"                WHERE rid = 2;\n"
+"                \n"
+"-- wipe out the nodata value this will ensure all pixels are considered for "
+"all processing functions\n"
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetBandNoDataValue(rast,1, NULL)  \n"
+"WHERE rid = 2;"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4850
+#, no-c-format
+msgid "ST_SetBandIsNoData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4851
+#, no-c-format
+msgid "Sets the isnodata flag of the band to TRUE."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4856
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetBandIsNoData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4867
+#, no-c-format
+msgid ""
+"Sets the isnodata flag for the band to true. Band 1 is assumed if not "
+"specified. This function should be called only when the flag is considered "
+"dirty. That is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/"
+"> is different using TRUE as last argument and without using it"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4879
+#, no-c-format
+msgid ""
+"-- Create dummy table with one raster column\n"
+"create table dummy_rast (rid integer, rast raster);\n"
+"\n"
+"-- Add raster with two bands, one pixel/band. In the first band, nodatavalue "
+"= pixel value = 3.\n"
+"-- In the second band, nodatavalue = 13, pixel value = 4\n"
+"insert into dummy_rast values(1,\n"
+"(\n"
+"'01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0200' -- nBands (uint16 0)\n"
+"||\n"
+"'17263529ED684A3F' -- scaleX (float64 0.000805965234044584)\n"
+"||\n"
+"'F9253529ED684ABF' -- scaleY (float64 -0.00080596523404458)\n"
+"||\n"
+"'1C9F33CE69E352C0' -- ipX (float64 -75.5533328537098)\n"
+"||\n"
+"'718F0E9A27A44840' -- ipY (float64 49.2824585505576)\n"
+"||\n"
+"'ED50EB853EC32B3F' -- skewX (float64 0.000211812383858707)\n"
+"||\n"
+"'7550EB853EC32B3F' -- skewY (float64 0.000211812383858704)\n"
+"||\n"
+"'E6100000' -- SRID (int32 4326)\n"
+"||\n"
+"'0100' -- width (uint16 1)\n"
+"||\n"
+"'0100' -- height (uint16 1)\n"
+"||\n"
+"'4' -- hasnodatavalue set to true, isnodata value set to false (when it "
+"should be true)\n"
+"||\n"
+"'2' -- first band type (4BUI) \n"
+"||\n"
+"'03' -- novalue==3\n"
+"||\n"
+"'03' -- pixel(0,0)==3 (same that nodata)\n"
+"||\n"
+"'0' -- hasnodatavalue set to false\n"
+"||\n"
+"'5' -- second band type (16BSI)\n"
+"||\n"
+"'0D00' -- novalue==13\n"
+"||\n"
+"'0400' -- pixel(0,0)==4\n"
+")::raster\n"
+");\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"false\n"
+"select st_bandisnodata(rast, 1, TRUE) from dummy_rast where rid = 1; -- "
+"Expected true\n"
+"\n"
+"-- The isnodata flag is dirty. We are going to set it to true\n"
+"update dummy_rast set rast = st_setbandisnodata(rast, 1) where rid = 1;\n"
+"\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"true"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4885
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_BandIsNoData\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4894
+#, no-c-format
+msgid "Raster Band Statistics and Analytics"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4898
+#, no-c-format
+msgid "ST_Count"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4899
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a raster or raster coverage. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the nodata value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4903
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4934
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a raster or raster coverage. "
+"If no band is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4935
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>nodata</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4939
+#, no-c-format
+msgid ""
+"The ST_Count(rastertable, rastercolumn, ...) variants are deprecated as of "
+"2.2.0. Use <xref linkend=\"RT_ST_CountAgg\"/> instead."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4949
+#, no-c-format
+msgid ""
+"--example will count all pixels not 249 and one will count all pixels.  --\n"
+"SELECT rid, ST_Count(ST_SetBandNoDataValue(rast,249)) As exclude_nodata, \n"
+"        ST_Count(ST_SetBandNoDataValue(rast,249),false) As include_nodata\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"                                    \n"
+"rid | exclude_nodata | include_nodata\n"
+"-----+----------------+----------------\n"
+"   2 |             23 |             25"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4954 reference_raster.xml:5015
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4964
+#, no-c-format
+msgid "ST_CountAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4965
+#, no-c-format
+msgid ""
+"Aggregate. Returns the number of pixels in a given band of a set of rasters. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the NODATA value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4971
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>double precision </type> "
+"<parameter>sample_percent</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_CountAgg</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4999
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a set of rasters. If no band "
+"is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5000
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>NODATA</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5003
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between zero (0) and one (1)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5010
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        ST_CountAgg(rast, 1, TRUE)\n"
+"FROM foo;\n"
+"\n"
+" st_countagg \n"
+"-------------\n"
+"          20\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5025
+#, no-c-format
+msgid "ST_Histogram"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5026
+#, no-c-format
+msgid ""
+"Returns a set of record summarizing a raster or raster coverage data "
+"distribution separate bin ranges. Number of bins are autocomputed if not "
+"specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5030
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>integer </type> <parameter>bins=autocomputed</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bins</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>right</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>right</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>bins</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>right</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_Histogram</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bins</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>right</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>bins=autocomputed</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>width=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>right=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5112
+#, no-c-format
+msgid ""
+"Returns set of records consisting of min, max, count, percent for a given "
+"raster band for each bin. If no band is specified <varname>nband</varname> "
+"defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5113
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>nodata</"
+"varname> value . Set <varname>exclude_nodata_value</varname> to false to get "
+"count all pixels."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5117
+#, no-c-format
+msgid "<parameter>width </parameter><type>double precision[]</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5118
+#, no-c-format
+msgid ""
+"width: an array indicating the width of each category/bin. If the number of "
+"bins is greater than the number of widths, the widths are repeated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5119
+#, no-c-format
+msgid ""
+"Example: 9 bins, widths are [a, b, c] will have the output be [a, b, c, a, "
+"b, c, a, b, c]"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5122
+#, no-c-format
+msgid "<parameter>bins </parameter><type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5123
+#, no-c-format
+msgid ""
+"Number of breakouts -- this is the number of records you'll get back from "
+"the function if specified. If not specified then the number of breakouts is "
+"autocomputed."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5127
+#, no-c-format
+msgid "<parameter>right </parameter><type>boolean</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5128
+#, no-c-format
+msgid ""
+"compute the histogram from the right rather than from the left (default). "
+"This changes the criteria for evaluating a value x from [a, b) to (a, b]"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5135
+#, no-c-format
+msgid ""
+"Example: Single raster tile - compute histograms for bands 1, 2, 3 and "
+"autocompute bins"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5136
+#, no-c-format
+msgid ""
+"SELECT band, (stats).*\n"
+"FROM (SELECT rid, band, ST_Histogram(rast, band) As stats\n"
+"    FROM dummy_rast CROSS JOIN generate_series(1,3) As band\n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+" band |  min  |  max  | count | percent\n"
+"------+-------+-------+-------+---------\n"
+"    1 |   249 |   250 |     2 |    0.08\n"
+"    1 |   250 |   251 |     2 |    0.08\n"
+"    1 |   251 |   252 |     1 |    0.04\n"
+"    1 |   252 |   253 |     2 |    0.08\n"
+"    1 |   253 |   254 |    18 |    0.72\n"
+"    2 |    78 | 113.2 |    11 |    0.44\n"
+"    2 | 113.2 | 148.4 |     4 |    0.16\n"
+"    2 | 148.4 | 183.6 |     4 |    0.16\n"
+"    2 | 183.6 | 218.8 |     1 |    0.04\n"
+"    2 | 218.8 |   254 |     5 |     0.2\n"
+"    3 |    62 | 100.4 |    11 |    0.44\n"
+"    3 | 100.4 | 138.8 |     5 |     0.2\n"
+"    3 | 138.8 | 177.2 |     4 |    0.16\n"
+"    3 | 177.2 | 215.6 |     1 |    0.04\n"
+"    3 | 215.6 |   254 |     4 |    0.16"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5140
+#, no-c-format
+msgid "Example: Just band 2 but for 6 bins"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5141
+#, no-c-format
+msgid ""
+"SELECT (stats).*\n"
+"FROM (SELECT rid, ST_Histogram(rast, 2,6) As stats\n"
+"    FROM dummy_rast \n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+"    min     |    max     | count | percent\n"
+"------------+------------+-------+---------\n"
+"         78 | 107.333333 |     9 |    0.36\n"
+" 107.333333 | 136.666667 |     6 |    0.24\n"
+" 136.666667 |        166 |     0 |       0\n"
+"        166 | 195.333333 |     4 |    0.16\n"
+" 195.333333 | 224.666667 |     1 |    0.04\n"
+" 224.666667 |        254 |     5 |     0.2\n"
+"(6 rows)\n"
+"    \n"
+"-- Same as previous but we explicitly control the pixel value range of each "
+"bin.  \n"
+"SELECT (stats).*\n"
+"FROM (SELECT rid, ST_Histogram(rast, 2,6,ARRAY[0.5,1,4,100,5]) As stats\n"
+"    FROM dummy_rast \n"
+"     WHERE rid=2) As foo;\n"
+"     \n"
+"  min  |  max  | count | percent\n"
+"-------+-------+-------+----------\n"
+"    78 |  78.5 |     1 |     0.08\n"
+"  78.5 |  79.5 |     1 |     0.04\n"
+"  79.5 |  83.5 |     0 |        0\n"
+"  83.5 | 183.5 |    17 |   0.0068\n"
+" 183.5 | 188.5 |     0 |        0\n"
+" 188.5 |   254 |     6 | 0.003664\n"
+"(6 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5146
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5156
+#, no-c-format
+msgid "ST_Quantile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5157
+#, no-c-format
+msgid ""
+"<refpurpose>Compute quantiles for a raster or raster table coverage in the "
+"context of the sample or population. Thus, a value could be examined to be "
+"at the raster's 25%, 50%, 75% percentile.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5161
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>quantiles=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>quantiles</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Quantile</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>quantile</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>quantile=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>quantile</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>quantile</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>double precision <function>ST_Quantile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>quantile</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>quantiles=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5233
+#, no-c-format
+msgid ""
+"<para>Compute quantiles for a raster or raster table coverage in the context "
+"of the sample or population. Thus, a value could be examined to be at the "
+"raster's 25%, 50%, 75% percentile.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5234 reference_raster.xml:5526
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to false, will also count "
+"pixels with no data."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5241
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
+"--Example will consider only pixels of band 1 that are not 249 and in named "
+"quantiles --\n"
+"\n"
+"SELECT (pvq).*\n"
+"FROM (SELECT ST_Quantile(rast, ARRAY[0.25,0.75]) As pvq\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvq).quantile;\n"
+"                                                                \n"
+" quantile | value\n"
+"----------+-------\n"
+"     0.25 |   253\n"
+"     0.75 |   254\n"
+"   \n"
+"SELECT ST_Quantile(rast, 0.75) As value\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"value\n"
+"------\n"
+"  254"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5242
+#, no-c-format
+msgid ""
+"--real live example.  Quantile of all pixels in band 2 intersecting a "
+"geometry\n"
+"SELECT rid, (ST_Quantile(rast,2)).* As pvc\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"            )\n"
+"ORDER BY value, quantile,rid\n"
+";\n"
+"                                \n"
+"    \n"
+" rid | quantile | value\n"
+"-----+----------+-------\n"
+"   1 |        0 |     0\n"
+"   2 |        0 |     0\n"
+"  14 |        0 |     1\n"
+"  15 |        0 |     2\n"
+"  14 |     0.25 |    37\n"
+"   1 |     0.25 |    42\n"
+"  15 |     0.25 |    47\n"
+"   2 |     0.25 |    50\n"
+"  14 |      0.5 |    56\n"
+"   1 |      0.5 |    64\n"
+"  15 |      0.5 |    66\n"
+"   2 |      0.5 |    77\n"
+"  14 |     0.75 |    81\n"
+"  15 |     0.75 |    87\n"
+"   1 |     0.75 |    94\n"
+"   2 |     0.75 |   106\n"
+"  14 |        1 |   199\n"
+"   1 |        1 |   244\n"
+"   2 |        1 |   255\n"
+"  15 |        1 |   255"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5247
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5258
+#, no-c-format
+msgid "ST_SummaryStats"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5259
+#, no-c-format
+msgid ""
+"Returns summarystats consisting of count, sum, mean, stddev, min, max for a "
+"given raster band of a raster or raster coverage. Band 1 is assumed is no "
+"band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5263
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5299 reference_raster.xml:5378
+#, no-c-format
+msgid ""
+"Returns <xref linkend=\"summarystats\"/> consisting of count, sum, mean, "
+"stddev, min, max for a given raster band of a raster or raster coverage. If "
+"no band is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5301
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>nodata</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to false to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5303
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to lower than 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5308
+#, no-c-format
+msgid ""
+"The ST_SummaryStats(rastertable, rastercolumn, ...) variants are deprecated "
+"as of 2.2.0. Use <xref linkend=\"RT_ST_SummaryStatsAgg\"/> instead."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5316
+#, no-c-format
+msgid "Example: Single raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5317
+#, no-c-format
+msgid ""
+"SELECT rid, band, (stats).*\n"
+"FROM (SELECT rid, band, ST_SummaryStats(rast, band) As stats\n"
+"    FROM dummy_rast CROSS JOIN generate_series(1,3) As band\n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+" rid | band | count | sum  |    mean    |  stddev   | min | max\n"
+"-----+------+-------+------+------------+-----------+-----+-----\n"
+"   2 |    1 |    23 | 5821 | 253.086957 |  1.248061 | 250 | 254\n"
+"   2 |    2 |    25 | 3682 |     147.28 | 59.862188 |  78 | 254\n"
+"   2 |    3 |    25 | 3290 |      131.6 | 61.647384 |  62 | 254"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5321
+#, no-c-format
+msgid "Example: Summarize pixels that intersect buildings of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5322
+#, no-c-format
+msgid ""
+"This example took 574ms on PostGIS windows 64-bit with all of Boston "
+"Buildings and aerial Tiles (tiles each 150x150 pixels ~ 134,000 tiles), "
+"~102,000 building records"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5324
+#, no-c-format
+msgid ""
+"WITH \n"
+"-- our features of interest\n"
+"   feat AS (SELECT gid As building_id, geom_26986 As geom FROM buildings AS "
+"b \n"
+"    WHERE gid IN(100, 103,150)\n"
+"   ),\n"
+"-- clip band 2 of raster tiles to boundaries of builds\n"
+"-- then get stats for these clipped regions\n"
+"   b_stats AS\n"
+"        (SELECT  building_id, (stats).*\n"
+"FROM (SELECT building_id, ST_SummaryStats(ST_Clip(rast,2,geom)) As stats\n"
+"    FROM aerials.boston\n"
+"                INNER JOIN feat\n"
+"        ON ST_Intersects(feat.geom,rast) \n"
+" ) As foo\n"
+" )\n"
+"-- finally summarize stats\n"
+"SELECT building_id, SUM(count) As num_pixels\n"
+"  , MIN(min) As min_pval\n"
+"  ,  MAX(max) As max_pval\n"
+"  , SUM(mean*count)/SUM(count) As avg_pval\n"
+"        FROM b_stats\n"
+" WHERE count > 0\n"
+"        GROUP BY building_id\n"
+"        ORDER BY building_id;\n"
+" building_id | num_pixels | min_pval | max_pval |     avg_pval\n"
+"-------------+------------+----------+----------+------------------\n"
+"         100 |       1090 |        1 |      255 | 61.0697247706422\n"
+"         103 |        655 |        7 |      182 | 70.5038167938931\n"
+"         150 |        895 |        2 |      252 | 185.642458100559"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5328
+#, no-c-format
+msgid "Example: Raster coverage"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5329
+#, no-c-format
+msgid ""
+"-- stats for each band --\n"
+"SELECT band, (stats).*\n"
+"FROM (SELECT band, ST_SummaryStats('o_4_boston','rast', band) As stats\n"
+"    FROM generate_series(1,3) As band) As foo;\n"
+"                                    \n"
+" band |  count  |  sum   |       mean       |      stddev      | min | max\n"
+"------+---------+--------+------------------+------------------+-----+-----\n"
+"    1 | 8450000 | 725799 | 82.7064349112426 | 45.6800222638537 |   0 | 255\n"
+"    2 | 8450000 | 700487 | 81.4197705325444 | 44.2161184161765 |   0 | 255\n"
+"    3 | 8450000 | 575943 |  74.682739408284 | 44.2143885481407 |   0 | 255\n"
+"    \n"
+"-- For a table -- will get better speed if set sampling to less than 100%\n"
+"-- Here we set to 25% and get a much faster answer\n"
+"SELECT band, (stats).*\n"
+"FROM (SELECT band, ST_SummaryStats('o_4_boston','rast', band,true,0.25) As "
+"stats\n"
+"    FROM generate_series(1,3) As band) As foo;\n"
+"                                    \n"
+" band |  count  |  sum   |       mean       |      stddev      | min | max\n"
+"------+---------+--------+------------------+------------------+-----+-----\n"
+"    1 | 2112500 | 180686 | 82.6890480473373 | 45.6961043857248 |   0 | 255\n"
+"    2 | 2112500 | 174571 |  81.448503668639 | 44.2252623171821 |   0 | 255\n"
+"    3 | 2112500 | 144364 | 74.6765884023669 | 44.2014869384578 |   0 | 255"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5334
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_Count\"/"
+">, <xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5345
+#, no-c-format
+msgid "ST_SummaryStatsAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5346
+#, no-c-format
+msgid ""
+"Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, "
+"max for a given raster band of a set of raster. Band 1 is assumed is no band "
+"is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5350
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStatsAgg</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5380
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>NODATA</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to False to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5382
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between 0 and 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5389
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        (stats).count,\n"
+"        round((stats).sum::numeric, 3),\n"
+"        round((stats).mean::numeric, 3),\n"
+"        round((stats).stddev::numeric, 3),\n"
+"        round((stats).min::numeric, 3),\n"
+"        round((stats).max::numeric, 3)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats\n"
+"        FROM foo\n"
+") bar;\n"
+"\n"
+" count |  round  | round  | round |  round  | round \n"
+"-------+---------+--------+-------+---------+-------\n"
+"    20 | -68.584 | -3.429 | 6.571 | -10.000 | 3.142\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5394
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_Count\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5405
+#, no-c-format
+msgid "ST_ValueCount"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5406
+#, no-c-format
+msgid ""
+"Returns a set of records containing a pixel band value and count of the "
+"number of pixels in a given band of a raster (or a raster coverage) that "
+"have a given set of values. If no band is specified defaults to band 1. By "
+"default nodata value pixels are not counted. and all other values in the "
+"pixel are output and pixel band values are rounded to the nearest integer."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5411
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>searchvalue</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>searchvalues</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>roundto=0</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>OUT value</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>OUT count</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>searchvalues</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>bigint<function>ST_ValueCount</"
+"function></funcdef> <paramdef><type>text </type> <parameter>rastertable</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>rastercolumn</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5524
+#, no-c-format
+msgid ""
+"Returns a set of records with columns <varname>value</varname> "
+"<varname>count</varname> which contain the pixel band value and count of "
+"pixels in the raster tile or raster coverage of selected band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5525
+#, no-c-format
+msgid ""
+"If no band is specified <varname>nband</varname> defaults to 1. If no "
+"<varname>searchvalues</varname> are specified, will return all pixel values "
+"found in the raster or raster coverage. If one searchvalue is given, will "
+"return an integer instead of records denoting the count of pixels having "
+"that pixel band value"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5533
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
+"--Example will count only pixels of band 1 that are not 249. --\n"
+"\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+"                                                                \n"
+" value | count\n"
+"-------+-------\n"
+"   250 |     2\n"
+"   251 |     1\n"
+"   252 |     2\n"
+"   253 |     6\n"
+"   254 |    12\n"
+"   \n"
+"-- Example will coount all pixels of band 1 including 249 --\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast,1,false) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+"                                    \n"
+" value | count\n"
+"-------+-------\n"
+"   249 |     2\n"
+"   250 |     2\n"
+"   251 |     1\n"
+"   252 |     2\n"
+"   253 |     6\n"
+"   254 |    12\n"
+"   \n"
+"-- Example will count only non-nodata value pixels of band 2\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast,2) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+" value | count\n"
+"-------+-------\n"
+"    78 |     1\n"
+"    79 |     1\n"
+"    88 |     1\n"
+"    89 |     1\n"
+"    96 |     1\n"
+"    97 |     1\n"
+"    98 |     1\n"
+"    99 |     2\n"
+"   112 |     2\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5534
+#, no-c-format
+msgid ""
+"--real live example.  Count all the pixels in an aerial raster tile band 2 "
+"intersecting a geometry \n"
+"-- and return only the pixel band values that have a count > 500\n"
+"SELECT (pvc).value, SUM((pvc).count) As total\n"
+"FROM (SELECT ST_ValueCount(rast,2) As pvc\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"             ) \n"
+"        ) As foo\n"
+"    GROUP BY (pvc).value\n"
+"    HAVING SUM((pvc).count) > 500\n"
+"    ORDER BY (pvc).value;\n"
+"    \n"
+" value | total\n"
+"-------+-----\n"
+"    51 | 502\n"
+"    54 | 521"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5536
+#, no-c-format
+msgid ""
+"-- Just return count of pixels in each raster tile that have value of 100 of "
+"tiles that intersect  a specific geometry --\n"
+"SELECT rid, ST_ValueCount(rast,2,100) As count\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"             ) ;\n"
+"\n"
+" rid | count\n"
+"-----+-------\n"
+"   1 |    56\n"
+"   2 |    95\n"
+"  14 |    37\n"
+"  15 |    64"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5541
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5547
+#, no-c-format
+msgid "Raster Outputs"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5550
+#, no-c-format
+msgid "ST_AsBinary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5551
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the raster without SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:5556
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>outasin=FALSE</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5567
+#, no-c-format
+msgid ""
+"Returns the Binary representation of the raster. If <varname>outasin</"
+"varname> is TRUE, out-db bands are treated as in-db."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5571
+#, no-c-format
+msgid ""
+"This is useful in binary cursors to pull data out of the database without "
+"converting it to a string representation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5576
+#, no-c-format
+msgid ""
+"By default, WKB output contains the external file path for out-db bands. If "
+"the client does not have access to the raster file underlying an out-db "
+"band, set <varname>outasin</varname> to TRUE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5580
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of <varname>outasin</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5586
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(rast) As rastbin FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                                         rastbin\n"
+"---------------------------------------------------------------------------------\n"
+"\\001\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000@"
+"\\000\\000\\000\\000\\000\\000\\010@\\\n"
+"000\\000\\000\\000\\000\\000\\340?\\000\\000\\000\\000\\000\\000\\340?"
+"\\000\\000\\000\\000\\000\\00\n"
+"0\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\012\\000\\000\\000\\012\\000\\024\\000"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5593
+#, no-c-format
+msgid "ST_AsGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5594
+#, no-c-format
+msgid ""
+"Return the raster tile in the designated GDAL Raster format. Raster formats "
+"are one of those supported by your compiled library. Use ST_GDALRasters() to "
+"get a list of formats supported by your library."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:5599
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5613
+#, no-c-format
+msgid ""
+"Returns the raster tile in the designated format. Arguments are itemized "
+"below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5616
+#, no-c-format
+msgid ""
+"<varname>format</varname> format to output. This is dependent on the drivers "
+"compiled in your libgdal library. Generally available are 'JPEG', 'GTIff', "
+"'PNG'. Use <xref linkend=\"RT_ST_GDALDrivers\"/> to get a list of formats "
+"supported by your library."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5621
+#, no-c-format
+msgid ""
+"<varname>options</varname> text array of GDAL options. Valid options are "
+"dependent on the format. Refer to <ulink url=\"http://www.gdal.org/"
+"frmt_various.html\">GDAL Raster format options</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5626
+#, no-c-format
+msgid ""
+"<varname>srs</varname> The proj4text or srtext (from spatial_ref_sys) to "
+"embed in the image"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5635
+#, no-c-format
+msgid "JPEG Output Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5637
+#, no-c-format
+msgid ""
+"SELECT ST_AsGDALRaster(rast, 'JPEG') As rastjpg\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY['QUALITY=50']) As rastjpg\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5642
+#, no-c-format
+msgid "GTIFF Output Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5644
+#, no-c-format
+msgid ""
+"SELECT ST_AsGDALRaster(rast, 'GTiff') As rastjpg\n"
+"FROM dummy_rast WHERE rid=2;\n"
+"\n"
+"-- Out GeoTiff with jpeg compression, 90% quality\n"
+"SELECT ST_AsGDALRaster(rast, 'GTiff',  \n"
+"  ARRAY['COMPRESS=JPEG', 'JPEG_QUALITY=90'], \n"
+"  4269) As rasttiff\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5651
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5657
+#, no-c-format
+msgid "ST_AsJPEG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5658
+#, no-c-format
+msgid ""
+"Return the raster tile selected bands as a single Joint Photographic Exports "
+"Group (JPEG) image (byte array). If no band is specified and 1 or more than "
+"3 bands, then only the first band is used. If only 3 bands then all 3 bands "
+"are used and mapped to RGB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5662
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>quality</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsJPEG</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer[] </type> <parameter>nbands</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>quality</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5698
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Joint Photographic "
+"Exports Group Image (JPEG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if "
+"you need to export as less common raster types. If no band is specified and "
+"1 or more than 3 bands, then only the first band is used. If 3 bands then "
+"all 3 bands are used. There are many variants of the function with many "
+"options. These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5701 reference_raster.xml:5792
+#, no-c-format
+msgid "<varname>nband</varname> is for single band exports."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5706
+#, no-c-format
+msgid ""
+"<varname>nbands</varname> is an array of bands to export (note that max is 3 "
+"for JPEG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band "
+"3 to Red, band 2 to green and band 1 to blue"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5711
+#, no-c-format
+msgid ""
+"<varname>quality</varname> number from 0 to 100. The higher the number the "
+"crisper the image."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5716
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL options as defined for JPEG "
+"(look at create_options for JPEG <xref linkend=\"RT_ST_GDALDrivers\"/>). For "
+"JPEG valid ones are <varname>PROGRESSIVE</varname> ON or OFF and "
+"<varname>QUALITY</varname> a range from 0 to 100 and default to 75. Refer to "
+"<ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL Raster format "
+"options</ulink> for more details."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5733
+#, no-c-format
+msgid "Examples: Output"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5735
+#, no-c-format
+msgid ""
+"-- output first 3 bands 75% quality\n"
+"SELECT ST_AsJPEG(rast) As rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"-- output only first band as 90% quality\n"
+"SELECT ST_AsJPEG(rast,1,90) As rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"-- output first 3 bands (but make band 2 Red, band 1 green, and band 3 blue, "
+"progressive and 90% quality\n"
+"SELECT ST_AsJPEG(rast,ARRAY[2,1,3],ARRAY['QUALITY=90','PROGRESSIVE=ON']) As "
+"rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5742
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_AsGDALRaster"
+"\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5748
+#, no-c-format
+msgid "ST_AsPNG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5749
+#, no-c-format
+msgid ""
+"Return the raster tile selected bands as a single portable network graphics "
+"(PNG) image (byte array). If 1, 3, or 4 bands in raster and no bands are "
+"specified, then all bands are used. If more 2 or more than 4 bands and no "
+"bands specified, then only band 1 is used. Bands are mapped to RGB or RGBA "
+"space."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5753
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5789
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Portable Network "
+"Graphics Image (PNG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if you need "
+"to export as less common raster types. If no band is specified, then the "
+"first 3 bands are exported. There are many variants of the function with "
+"many options. If no <varname>srid</varname> is specified then then srid of "
+"the raster is used. These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5797 reference_raster.xml:5880
+#, no-c-format
+msgid ""
+"<varname>nbands</varname> is an array of bands to export (note that max is 3 "
+"for PNG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band "
+"3 to Red, band 2 to green and band 1 to blue"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5802
+#, no-c-format
+msgid ""
+"<varname>compression</varname> number from 1 to 9. The higher the number the "
+"greater the compression."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5807
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL options as defined for PNG "
+"(look at create_options for PNG of <xref linkend=\"RT_ST_GDALDrivers\"/>). "
+"For PNG valid one is only ZLEVEL (amount of time to spend on compression -- "
+"default 6) e.g. ARRAY['ZLEVEL=9']. WORLDFILE is not allowed since the "
+"function would have to output two outputs. Refer to <ulink url=\"http://www."
+"gdal.org/frmt_various.html\">GDAL Raster format options</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5826
+#, no-c-format
+msgid ""
+"SELECT ST_AsPNG(rast) As rastpng\n"
+"FROM dummy_rast WHERE rid=2;\n"
+"\n"
+"-- export the first 3 bands and map band 3 to Red, band 1 to Green, band 2 "
+"to blue\n"
+"SELECT ST_AsPNG(rast, ARRAY[3,1,2]) As rastpng\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5833
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ColorMap\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_Raster_Applications\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5839
+#, no-c-format
+msgid "ST_AsTIFF"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5840
+#, no-c-format
+msgid ""
+"Return the raster selected bands as a single TIFF image (byte array). If no "
+"band is specified, then will try to use all bands."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5844
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=''</"
+"parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid=sameassource</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5877
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Tagged Image File "
+"Format (TIFF). If no band is specified, will try to use all bands. This is a "
+"wrapper around <xref linkend=\"RT_ST_AsGDALRaster\"/>. Use <xref linkend="
+"\"RT_ST_AsGDALRaster\"/> if you need to export as less common raster types. "
+"There are many variants of the function with many options. If no spatial "
+"reference SRS text is present, the spatial reference of the raster is used. "
+"These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5885
+#, no-c-format
+msgid ""
+"<varname>compression</varname> Compression expression -- JPEG90 (or some "
+"other percent), LZW, JPEG, DEFLATE9."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5890
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL create options as defined for "
+"GTiff (look at create_options for GTiff of <xref linkend=\"RT_ST_GDALDrivers"
+"\"/>). or refer to <ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL "
+"Raster format options</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5895
+#, no-c-format
+msgid ""
+"<varname>srid</varname> srid of spatial_ref_sys of the raster. This is used "
+"to populate the georeference information"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5904
+#, no-c-format
+msgid "Examples: Use jpeg compression 90%"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5906
+#, no-c-format
+msgid ""
+"SELECT ST_AsTIFF(rast, 'JPEG90') As rasttiff\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5913
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5919
+#, no-c-format
+msgid "Raster Processing"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5922
+#, no-c-format
+msgid "Map Algebra"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5926
+#, no-c-format
+msgid "ST_Clip"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5927
+#, no-c-format
+msgid ""
+"Returns the raster clipped by the input geometry. If band number not is "
+"specified, all bands are processed. If <varname>crop</varname> is not "
+"specified or TRUE, the output raster is cropped."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5931
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5988
+#, no-c-format
+msgid ""
+"Returns a raster that is clipped by the input geometry <varname>geom</"
+"varname>. If band index is not specified, all bands are processed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5992
+#, no-c-format
+msgid ""
+"Rasters resulting from ST_Clip must have a nodata value assigned for areas "
+"clipped, one for each band. If none are provided and the input raster do not "
+"have a nodata value defined, nodata values of the resulting raster are set "
+"to ST_MinPossibleValue(ST_BandPixelType(rast, band)). When the number of "
+"nodata value in the array is smaller than the number of band, the last one "
+"in the array is used for the remaining bands. If the number of nodata value "
+"is greater than the number of band, the extra nodata values are ignored. All "
+"variants accepting an array of nodata values also accept a single value "
+"which will be assigned to each band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5996
+#, no-c-format
+msgid ""
+"If <varname>crop</varname> is not specified, true is assumed meaning the "
+"output raster is cropped to the intersection of the <varname>geom</"
+"varname>and <varname>rast</varname> extents. If <varname>crop</varname> is "
+"set to false, the new raster gets the same extent as <varname>rast</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6002
+#, no-c-format
+msgid "Enhanced: 2.1.0 Rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6004
+#, no-c-format
+msgid ""
+"Examples here use Massachusetts aerial data available on MassGIS site <ulink "
+"url=\"http://www.mass.gov/mgis/colororthos2008.htm\">MassGIS Aerial Orthos</"
+"ulink>. Coordinates are in Massachusetts State Plane Meters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6010
+#, no-c-format
+msgid "Examples: 1 band clipping"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6012
+#, no-c-format
+msgid ""
+"-- Clip the first band of an aerial tile by a 20 meter buffer.\n"
+"SELECT ST_Clip(rast, 1,\n"
+"                ST_Buffer(ST_Centroid(ST_Envelope(rast)),20)\n"
+"        ) from aerials.boston\n"
+"WHERE rid = 4;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6014
+#, no-c-format
+msgid ""
+"-- Demonstrate effect of crop on final dimensions of raster\n"
+"-- Note how final extent is clipped to that of the geometry\n"
+"-- if crop = true\n"
+"SELECT ST_XMax(ST_Envelope(ST_Clip(rast, 1, clipper, true))) As "
+"xmax_w_trim,\n"
+"        ST_XMax(clipper) As xmax_clipper,\n"
+"        ST_XMax(ST_Envelope(ST_Clip(rast, 1, clipper, false))) As "
+"xmax_wo_trim,\n"
+"        ST_XMax(ST_Envelope(rast)) As xmax_rast_orig\n"
+"FROM (SELECT rast, ST_Buffer(ST_Centroid(ST_Envelope(rast)),6) As clipper\n"
+"        FROM aerials.boston\n"
+"WHERE rid = 6) As foo;\n"
+"\n"
+"   xmax_w_trim    |   xmax_clipper   |   xmax_wo_trim   |  xmax_rast_orig\n"
+"------------------+------------------+------------------+------------------\n"
+" 230657.436173996 | 230657.436173996 | 230666.436173996 | 230666.436173996"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6028 reference_raster.xml:6071
+#: reference_raster.xml:6114
+#, no-c-format
+msgid "Full raster tile before clipping"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6042 reference_raster.xml:6128
+#, no-c-format
+msgid "After Clipping"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6055
+#, no-c-format
+msgid ""
+"Examples: 1 band clipping with no crop and add back other bands unchanged"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6057
+#, no-c-format
+msgid ""
+"-- Same example as before, but we need to set crop to false to be able to "
+"use ST_AddBand\n"
+"-- because ST_AddBand requires all bands be the same Width and height\n"
+"SELECT ST_AddBand(ST_Clip(rast, 1,\n"
+"                ST_Buffer(ST_Centroid(ST_Envelope(rast)),20),false\n"
+"        ), ARRAY[ST_Band(rast,2),ST_Band(rast,3)] ) from aerials.boston\n"
+"WHERE rid = 6;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6085
+#, no-c-format
+msgid "After Clipping - surreal"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6098
+#, no-c-format
+msgid "Examples: Clip all bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6100
+#, no-c-format
+msgid ""
+"-- Clip all bands of an aerial tile by a 20 meter buffer.\n"
+"-- Only difference is we don't specify a specific band to clip\n"
+"-- so all bands are clipped\n"
+"SELECT ST_Clip(rast,\n"
+"          ST_Buffer(ST_Centroid(ST_Envelope(rast)), 20), \n"
+"          false\n"
+"        ) from aerials.boston\n"
+"WHERE rid = 4;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6143
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Intersection\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6153
+#, no-c-format
+msgid "ST_ColorMap"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6154
+#, no-c-format
+msgid ""
+"Creates a new raster of up to four 8BUI bands (grayscale, RGB, RGBA) from "
+"the source raster and a specified band. Band 1 is assumed if not specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:6159
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>colormap=grayscale</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>method=INTERPOLATE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:6169
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>colormap</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>method=INTERPOLATE</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6181
+#, no-c-format
+msgid ""
+"Apply a <varname>colormap</varname> to the band at <varname>nband</varname> "
+"of <varname>rast</varname> resulting a new raster comprised of up to four "
+"8BUI bands. The number of 8BUI bands in the new raster is determined by the "
+"number of color components defined in <varname>colormap</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6185
+#, no-c-format
+msgid "If <varname>nband</varname> is not specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6187
+#, no-c-format
+msgid ""
+"<varname>colormap</varname> can be a keyword of a pre-defined colormap or a "
+"set of lines defining the value and the color components."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6191
+#, no-c-format
+msgid "Valid pre-defined <varname>colormap</varname> keyword:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6197
+#, no-c-format
+msgid ""
+"<varname>grayscale</varname> or <varname>greyscale</varname> for a one 8BUI "
+"band raster of shades of gray."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6202
+#, no-c-format
+msgid ""
+"<varname>pseudocolor</varname> for a four 8BUI (RGBA) band raster with "
+"colors going from blue to green to red."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6207
+#, no-c-format
+msgid ""
+"<varname>fire</varname> for a four 8BUI (RGBA) band raster with colors going "
+"from black to red to pale yellow."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6212
+#, no-c-format
+msgid ""
+"<varname>bluered</varname> for a four 8BUI (RGBA) band raster with colors "
+"going from blue to pale white to red."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6218
+#, no-c-format
+msgid ""
+"Users can pass a set of entries (one per line) to <varname>colormap</"
+"varname> to specify custom colormaps. Each entry generally consists of five "
+"values: the pixel value and corresponding Red, Green, Blue, Alpha components "
+"(color components between 0 and 255). Percent values can be used instead of "
+"pixel values where 0% and 100% are the minimum and maximum values found in "
+"the raster band. Values can be separated with commas (','), tabs, colons "
+"(':') and/or spaces. The pixel value can be set to <emphasis>nv</emphasis>, "
+"<emphasis>null</emphasis> or <emphasis>nodata</emphasis> for the NODATA "
+"value. An example is provided below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6222
+#, no-c-format
+msgid ""
+"5 0 0 0 255\n"
+"4 100:50 55 255\n"
+"1 150,100 150 255\n"
+"0% 255 255 255 255\n"
+"nv 0 0 0 0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6224
+#, no-c-format
+msgid ""
+"The syntax of <varname>colormap</varname> is similar to that of the color-"
+"relief mode of GDAL <ulink url=\"http://www.gdal.org/gdaldem."
+"html#gdaldem_color_relief\">gdaldem</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6228
+#, no-c-format
+msgid "Valid keywords for <varname>method</varname>:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6234
+#, no-c-format
+msgid ""
+"<varname>INTERPOLATE</varname> to use linear interpolation to smoothly blend "
+"the colors between the given pixel values"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6239
+#, no-c-format
+msgid ""
+"<varname>EXACT</varname> to strictly match only those pixels values found in "
+"the colormap. Pixels whose value does not match a colormap entry will be set "
+"to 0 0 0 0 (RGBA)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6244
+#, no-c-format
+msgid ""
+"<varname>NEAREST</varname> to use the colormap entry whose value is closest "
+"to the pixel value"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6251
+#, no-c-format
+msgid ""
+"A great reference for colormaps is <ulink url=\"http://www.colorbrewer2.org"
+"\">ColorBrewer</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6256
+#, no-c-format
+msgid ""
+"The resulting bands of new raster will have no NODATA value set. Use <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/> to set a NODATA value if one is "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6266
+#, no-c-format
+msgid "This is a junk table to play with"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6268
+#, no-c-format
+msgid ""
+"-- setup test raster table --\n"
+"DROP TABLE IF EXISTS funky_shapes;\n"
+"CREATE TABLE funky_shapes(rast raster);\n"
+"\n"
+"INSERT INTO funky_shapes(rast)\n"
+"WITH ref AS (\n"
+"        SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_Union(rast)\n"
+"FROM (\n"
+"        SELECT \n"
+"                ST_AsRaster(\n"
+"                        ST_Rotate(\n"
+"                                ST_Buffer(\n"
+"                                        ST_GeomFromText('LINESTRING(0 2,50 "
+"50,150 150,125 50)'),\n"
+"                                        i*2\n"
+"                                ),\n"
+"                                pi() * i * 0.125, ST_Point(50,50)\n"
+"                        ),\n"
+"                        ref.rast, '8BUI'::text, i * 5\n"
+"                ) AS rast\n"
+"        FROM ref\n"
+"        CROSS JOIN generate_series(1, 10, 3) AS i\n"
+") AS shapes;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6270
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_NumBands(rast) As n_orig,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'greyscale')) As ngrey,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'pseudocolor')) As npseudo,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'fire')) As nfire,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'bluered')) As nbluered,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As nred\n"
+"FROM funky_shapes;"
+msgstr ""
+
+#. Tag: screen
+#: reference_raster.xml:6272
+#, no-c-format
+msgid ""
+"n_orig | ngrey | npseudo | nfire | nbluered | nred\n"
+"--------+-------+---------+-------+----------+------\n"
+"      1 |     1 |       4 |     4 |        4 |    3"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6276
+#, no-c-format
+msgid "Examples: Compare different color map looks using ST_AsPNG"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6277
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_AsPNG(rast) As orig_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1,'greyscale')) As grey_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'pseudocolor')) As pseudo_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'nfire')) As fire_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'bluered')) As bluered_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As red_png\n"
+"FROM funky_shapes;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6291
+#, no-c-format
+msgid "orig_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6305
+#, no-c-format
+msgid "grey_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6319
+#, no-c-format
+msgid "pseudo_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6335
+#, no-c-format
+msgid "fire_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6349
+#, no-c-format
+msgid "bluered_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6363
+#, no-c-format
+msgid "red_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6377
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsRaster\"/> <xref linkend=\"RT_ST_MapAlgebra\"/>, "
+"<xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6391
+#, no-c-format
+msgid "ST_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6392
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a raster or a set of geometry-pixelvalue pairs "
+"representing the shared portion of two rasters or the geometrical "
+"intersection of a vectorization of the raster and a geometry.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6396
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>band_num=1</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof geomval "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band_num</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Intersection</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>nodataval</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef choice=\"opt\"><type>text "
+"</type> <parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>nodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num1</parameter></paramdef> <paramdef><type>raster </"
+"type> <parameter>rast2</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num2</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>nodataval</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Intersection</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num1</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>rast2</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num2</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6456
+#, no-c-format
+msgid ""
+"<para>Returns a raster or a set of geometry-pixelvalue pairs representing "
+"the shared portion of two rasters or the geometrical intersection of a "
+"vectorization of the raster and a geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6460
+#, no-c-format
+msgid ""
+"The first three variants, returning a setof geomval, works in vector space. "
+"The raster is first vectorized (using ST_DumpAsPolygon) into a set of "
+"geomval rows and those rows are then intersected with the geometry using the "
+"ST_Intersection(geometry, geometry) PostGIS function. Geometries "
+"intersecting only with a nodata value area of a raster returns an empty "
+"geometry. They are normally excluded from the results by the proper usage of "
+"ST_Intersect in the WHERE clause."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6464
+#, no-c-format
+msgid ""
+"You can access the geometry and the value parts of the resulting set of "
+"geomval by surrounding them with parenthesis and adding '.geom' or '.val' at "
+"the end of the expression. e.g. (ST_Intersection(rast, geom)).geom"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6468
+#, no-c-format
+msgid ""
+"The other variants, returning a raster, works in raster space. They are "
+"using the two rasters version of ST_MapAlgebraExpr to perform the "
+"intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6472
+#, no-c-format
+msgid ""
+"The extent of the resulting raster corresponds to the geometrical "
+"intersection of the two raster extents. The resulting raster includes "
+"'BAND1', 'BAND2' or 'BOTH' bands, following what is passed as the "
+"<varname>returnband</varname> parameter. Nodata value areas present in any "
+"band results in nodata value areas in every bands of the result. In other "
+"words, any pixel intersecting with a nodata value pixel becomes a nodata "
+"value pixel in the result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6476
+#, no-c-format
+msgid ""
+"Rasters resulting from ST_Intersection must have a nodata value assigned for "
+"areas not intersecting. You can define or replace the nodata value for any "
+"resulting band by providing a <varname>nodataval[]</varname> array of one or "
+"two nodata values depending if you request 'BAND1', 'BAND2' or 'BOTH' bands. "
+"The first value in the array replace the nodata value in the first band and "
+"the second value replace the nodata value in the second band. If one input "
+"band do not have a nodata value defined and none are provided as an array, "
+"one is chosen using the ST_MinPossibleValue function. All variant accepting "
+"an array of nodata value can also accept a single value which will be "
+"assigned to each requested band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6480
+#, no-c-format
+msgid "In all variants, if no band number is specified band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6485
+#, no-c-format
+msgid ""
+"To get more control on the resulting extent or on what to return when "
+"encountering a nodata value, use the two rasters version of <xref linkend="
+"\"RT_ST_MapAlgebraExpr2\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6491
+#, no-c-format
+msgid ""
+"To compute the intersection of a raster band with a geometry in raster "
+"space, use <xref linkend=\"RT_ST_Clip\"/>. ST_Clip works on multiple bands "
+"rasters and does not return a band corresponding to the rasterized geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6497
+#, no-c-format
+msgid ""
+"ST_Intersection should be used in conjunction with ST_Intersects and an "
+"index on the raster column and/or the geometry column."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6502
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 - Intersection in the raster space was introduced. In "
+"earlier pre-2.0.0 versions, only intersection performed in vector space were "
+"supported."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6508
+#, no-c-format
+msgid "Examples: Geometry, Raster -- resulting in geometry vals"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6510
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        foo.rid,\n"
+"        foo.gid,\n"
+"        ST_AsText((foo.geomval).geom) As geomwkt,\n"
+"        (foo.geomval).val\n"
+"FROM (\n"
+"        SELECT\n"
+"                A.rid,\n"
+"                g.gid,\n"
+"                ST_Intersection(A.rast, g.geom) As geomval\n"
+"        FROM dummy_rast AS A\n"
+"        CROSS JOIN (\n"
+"                VALUES\n"
+"                        (1, ST_Point(3427928, 5793243.85) ),\n"
+"                        (2, ST_GeomFromText('LINESTRING(3427927.85 "
+"5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)')),\n"
+"                        (3, ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"        ) As g(gid,geom)\n"
+"        WHERE A.rid = 2\n"
+") As foo;\n"
+"\n"
+" rid | gid |      "
+"geomwkt                                                                                                "
+"| val\n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------\n"
+"   2 |   1 | POINT(3427928 "
+"5793243.85)                                                                        "
+"| 249\n"
+"   2 |   1 | POINT(3427928 "
+"5793243.85)                                                                        "
+"| 253\n"
+"   2 |   2 | POINT(3427927.85 "
+"5793243.75)                                                                | "
+"254\n"
+"   2 |   2 | POINT(3427927.8 "
+"5793243.8)                                                                        "
+"| 251\n"
+"   2 |   2 | POINT(3427927.8 "
+"5793243.8)                                                                        "
+"| 253\n"
+"   2 |   2 | LINESTRING(3427927.8 5793243.75,3427927.8 5793243.8)           "
+"| 252\n"
+"   2 |   2 | MULTILINESTRING((3427927.8 5793243.8,3427927.8 5793243.75),...) "
+"| 250\n"
+"   2 |   3 | GEOMETRYCOLLECTION EMPTY"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6514
+#, no-c-format
+msgid "Example: Raster, Geometry -- resulting is a raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6515
+#, no-c-format
+msgid "Examples coming soon"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6521
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Intersects\"/>, <xref linkend="
+"\"RT_ST_MapAlgebraExpr2\"/>, <xref linkend=\"RT_ST_Clip\"/>, <xref linkend="
+"\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6533 reference_raster.xml:6780
+#, no-c-format
+msgid "ST_MapAlgebra"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6534
+#, no-c-format
+msgid ""
+"Callback function version - Returns a one-band raster given one or more "
+"input rasters, band indexes and one user-specified callback function."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6540
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>rastbandarg[] </type> <parameter>rastbandargset</parameter></"
+"paramdef> <paramdef><type>regprocedure </type> <parameter>callbackfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6601
+#, no-c-format
+msgid ""
+"Returns a one-band raster given one or more input rasters, band indexes and "
+"one user-specified callback function."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6607
+#, no-c-format
+msgid "rast,rast1,rast2, rastbandargset"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6609
+#, no-c-format
+msgid "Rasters on which the map algebra process is evaluated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6610
+#, no-c-format
+msgid ""
+"<varname>rastbandargset</varname> allows the use of a map algebra operation "
+"on many rasters and/or many bands. See example Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6615
+#, no-c-format
+msgid "nband, nband1, nband2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6617
+#, no-c-format
+msgid ""
+"Band numbers of the raster to be evaluated. nband can be an integer or "
+"integer[] denoting the bands. nband1 is band on rast1 and nband2 is band on "
+"rast2 for hte 2 raster/2band case."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6623
+#, no-c-format
+msgid "callbackfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6625
+#, no-c-format
+msgid ""
+"The <varname>callbackfunc</varname> parameter must be the name and signature "
+"of an SQL or PL/pgSQL function, cast to a regprocedure. An example PL/pgSQL "
+"function example is: <programlisting>\n"
+"CREATE OR REPLACE FUNCTION sample_callbackfunc(value double precision[][][], "
+"position integer[][], VARIADIC userargs text[])\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        BEGIN\n"
+"                RETURN 0;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE;\n"
+"                                                                        </"
+"programlisting> The <varname>callbackfunc</varname> must have three "
+"arguments: a 3-dimension double precision array, a 2-dimension integer array "
+"and a variadic 1-dimension text array. The first argument <varname>value</"
+"varname> is the set of values (as double precision) from all input rasters. "
+"The three dimensions (where indexes are 1-based) are: raster #, row y, "
+"column x. The second argument <varname>position</varname> is the set of "
+"pixel positions from the output raster and input rasters. The outer "
+"dimension (where indexes are 0-based) is the raster #. The position at outer "
+"dimension index 0 is the output raster's pixel position. For each outer "
+"dimension, there are two elements in the inner dimension for X and Y. The "
+"third argument <varname>userargs</varname> is for passing through any user-"
+"specified arguments."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6632
+#, no-c-format
+msgid ""
+"Passing a <type>regprocedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is: <programlisting>\n"
+"'sample_callbackfunc(double precision[], integer[], text[])'::regprocedure\n"
+"                                                                        </"
+"programlisting> Note that the argument contains the name of the function, "
+"the types of the function arguments, quotes around the name and argument "
+"types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6644 reference_raster.xml:6894
+#: reference_raster.xml:7189 reference_raster.xml:7743
+#, no-c-format
+msgid "pixeltype"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6646
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, the one band of the new raster "
+"will be of that pixeltype. If pixeltype is passed NULL or left out, the new "
+"raster band will have the same pixeltype as the specified band of the first "
+"raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the "
+"specified band of the appropriate raster (for extent types: SECOND, LAST). "
+"If in doubt, always specify <varname>pixeltype</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6649
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6656 reference_raster.xml:6902
+#: reference_raster.xml:7198
+#, no-c-format
+msgid "extenttype"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6658
+#, no-c-format
+msgid ""
+"Possible values are INTERSECTION (default), UNION, FIRST (default for one "
+"raster variants), SECOND, LAST, CUSTOM."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6665
+#, no-c-format
+msgid "customextent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6667
+#, no-c-format
+msgid ""
+"If <varname>extentype</varname> is CUSTOM, a raster must be provided for "
+"<varname>customextent</varname>. See example 4 of Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6674
+#, no-c-format
+msgid "distancex"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6676
+#, no-c-format
+msgid ""
+"The distance in pixels from the reference cell. So width of resulting matrix "
+"would be <code>2*distancex + 1</code>.If not specified only the reference "
+"cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6683
+#, no-c-format
+msgid "distancey"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6685
+#, no-c-format
+msgid ""
+"The distance in pixels from reference cell in y direction. Height of "
+"resulting matrix would be <code>2*distancey + 1</code> .If not specified "
+"only the reference cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6692
+#, no-c-format
+msgid "userargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6694
+#, no-c-format
+msgid ""
+"The third argument to the <varname>callbackfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments are passed "
+"through to the specified <varname>callbackfunc</varname>, and are contained "
+"in the <varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6702 reference_raster.xml:7518
+#: reference_raster.xml:7637
+#, no-c-format
+msgid ""
+"For more information about the VARIADIC keyword, please refer to the "
+"PostgreSQL documentation and the \"SQL Functions with Variable Numbers of "
+"Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6708
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>callbackfunc</varname> is "
+"required, regardless of whether you choose to pass any arguments to the "
+"callback function for processing or not."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6713
+#, no-c-format
+msgid ""
+"Variant 1 accepts an array of <varname>rastbandarg</varname> allowing the "
+"use of a map algebra operation on many rasters and/or many bands. See "
+"example Variant 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6717
+#, no-c-format
+msgid ""
+"Variants 2 and 3 operate upon one or more bands of one raster. See example "
+"Variant 2 and 3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6721
+#, no-c-format
+msgid ""
+"Variant 4 operate upon two rasters with one band per raster. See example "
+"Variant 4."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6732 reference_raster.xml:6754
+#, no-c-format
+msgid "One raster, one band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6733
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(rast, 1)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6735 reference_raster.xml:6751
+#, no-c-format
+msgid "One raster, several bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6736
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(rast, 3), ROW(rast, 1), ROW(rast, 3), ROW(rast, "
+"2)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6738
+#, no-c-format
+msgid "Several rasters, several bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6739
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(t1.rast, 3), ROW(t2.rast, 1), ROW(t2.rast, 3), "
+"ROW(t1.rast, 2)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6741
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage with neighborhood. This query only "
+"works with PostgreSQL 9.1 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6742
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rid,\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(ST_Union(t2.rast), 1)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure,\n"
+"                '32BUI',\n"
+"                'CUSTOM', t1.rast,\n"
+"                1, 1\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 4\n"
+"        AND t2.rid BETWEEN 0 AND 8\n"
+"        AND ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rid, t1.rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6744
+#, no-c-format
+msgid ""
+"Example like the prior one for tiles of a coverage with neighborhood but "
+"works with PostgreSQL 9.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6745
+#, no-c-format
+msgid ""
+"WITH src AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"WITH foo AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_Union(t2.rast) AS rast\n"
+"        FROM src t1\n"
+"        JOIN src t2\n"
+"                ON ST_Intersects(t1.rast, t2.rast)\n"
+"                AND t2.rid BETWEEN 0 AND 8\n"
+"        WHERE t1.rid = 4\n"
+"        GROUP BY t1.rid\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_MapAlgebra(\n"
+"                        ARRAY[ROW(t2.rast, 1)]::rastbandarg[],\n"
+"                        'raster_nmapalgebra_test(double precision[], int[], "
+"text[])'::regprocedure,\n"
+"                        '32BUI',\n"
+"                        'CUSTOM', t1.rast,\n"
+"                        1, 1\n"
+"                ) AS rast\n"
+"        FROM src t1\n"
+"        JOIN foo t2\n"
+"                ON t1.rid = t2.rid \n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_Metadata(rast)),\n"
+"        (ST_BandMetadata(rast, 1)),\n"
+"        ST_Value(rast, 1, 1, 1)\n"
+"FROM bar;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6749
+#, no-c-format
+msgid "Examples: Variants 2 and 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6752
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                rast, ARRAY[3, 1, 3, 2]::integer[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6755
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                rast, 2,\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6759
+#, no-c-format
+msgid "Examples: Variant 4"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6761
+#, no-c-format
+msgid "Two rasters, two bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6762
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6769
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra_expr\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6781
+#, no-c-format
+msgid ""
+"<refpurpose>Expression version - Returns a one-band raster given one or two "
+"input rasters, band indexes and one or more user-specified SQL expressions.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6787
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebra</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>expression</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6838
+#, no-c-format
+msgid ""
+"<para>Expression version - Returns a one-band raster given one or two input "
+"rasters, band indexes and one or more user-specified SQL expressions.</para>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6846
+#, no-c-format
+msgid "Description: Variants 1 and 2 (one raster)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6848
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If <varname>nband</varname> is not "
+"provided, band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6852 reference_raster.xml:7054
+#: reference_raster.xml:7502
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL, then the new raster "
+"band will have the same pixeltype as the input <varname>rast</varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6857
+#, no-c-format
+msgid "Keywords permitted for <varname>expression</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6860
+#, no-c-format
+msgid "<varname>[rast]</varname> - Pixel value of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6863
+#, no-c-format
+msgid "<varname>[rast.val]</varname> - Pixel value of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6866
+#, no-c-format
+msgid ""
+"<varname>[rast.x]</varname> - 1-based pixel column of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6869
+#, no-c-format
+msgid ""
+"<varname>[rast.y]</varname> - 1-based pixel row of the pixel of interest"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6878
+#, no-c-format
+msgid "Description: Variants 3 and 4 (two raster)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6880 reference_raster.xml:7174
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation to the two bands defined by the <varname>expression</"
+"varname> on the two input raster bands <varname>rast1</varname>, "
+"(<varname>rast2</varname>). If no <varname>band1</varname>, <varname>band2</"
+"varname> is specified band 1 is assumed. The resulting raster will be "
+"aligned (scale, skew and pixel corners) on the grid defined by the first "
+"raster. The resulting raster will have the extent defined by the "
+"<varname>extenttype</varname> parameter."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6886 reference_raster.xml:7180
+#, no-c-format
+msgid "expression"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6888 reference_raster.xml:7182
+#, no-c-format
+msgid ""
+"A PostgreSQL algebraic expression involving the two rasters and PostgreSQL "
+"defined functions/operators that will define the pixel value when pixels "
+"intersect. e.g. (([rast1] + [rast2])/2.0)::integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6896 reference_raster.xml:7191
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, left out or set to NULL. If not passed in "
+"or set to NULL, will default to the pixeltype of the first raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6904 reference_raster.xml:7200
+#, no-c-format
+msgid "Controls the extent of resulting raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6910 reference_raster.xml:7203
+#, no-c-format
+msgid ""
+"<varname>INTERSECTION</varname> - The extent of the new raster is the "
+"intersection of the two rasters. This is the default."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6915 reference_raster.xml:7208
+#, no-c-format
+msgid ""
+"<varname>UNION</varname> - The extent of the new raster is the union of the "
+"two rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6920 reference_raster.xml:7213
+#, no-c-format
+msgid ""
+"<varname>FIRST</varname> - The extent of the new raster is the same as the "
+"one of the first raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6925 reference_raster.xml:7218
+#, no-c-format
+msgid ""
+"<varname>SECOND</varname> - The extent of the new raster is the same as the "
+"one of the second raster."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6933 reference_raster.xml:7227
+#, no-c-format
+msgid "nodata1expr"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6935 reference_raster.xml:7229
+#, no-c-format
+msgid ""
+"An algebraic expression involving only <varname>rast2</varname> or a "
+"constant that defines what to return when pixels of <varname>rast1</varname> "
+"are nodata values and spatially corresponding rast2 pixels have values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6941 reference_raster.xml:7236
+#, no-c-format
+msgid "nodata2expr"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6943 reference_raster.xml:7238
+#, no-c-format
+msgid ""
+"An algebraic expression involving only <varname>rast1</varname> or a "
+"constant that defines what to return when pixels of <varname>rast2</varname> "
+"are nodata values and spatially corresponding rast1 pixels have values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6949 reference_raster.xml:7245
+#, no-c-format
+msgid "nodatanodataval"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6951 reference_raster.xml:7247
+#, no-c-format
+msgid ""
+"A numeric constant to return when spatially corresponding rast1 and rast2 "
+"pixels are both nodata values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6959
+#, no-c-format
+msgid ""
+"Keywords permitted in <varname>expression</varname>, <varname>nodata1expr</"
+"varname> and <varname>nodata2expr</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6962
+#, no-c-format
+msgid ""
+"<varname>[rast1]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6965
+#, no-c-format
+msgid ""
+"<varname>[rast1.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6968
+#, no-c-format
+msgid ""
+"<varname>[rast1.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6971
+#, no-c-format
+msgid ""
+"<varname>[rast1.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6974
+#, no-c-format
+msgid ""
+"<varname>[rast2]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6977
+#, no-c-format
+msgid ""
+"<varname>[rast2.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6980
+#, no-c-format
+msgid ""
+"<varname>[rast2.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6983
+#, no-c-format
+msgid ""
+"<varname>[rast2.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6991
+#, no-c-format
+msgid "Examples: Variants 1 and 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6993
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 1, 1, 0, 0, 0), "
+"'32BF', 1, -1) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(rast, 1, NULL, 'ceil([rast]*[rast.x]/[rast.y]+[rast."
+"val])')\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6997
+#, no-c-format
+msgid "Examples: Variant 3 and 4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6999
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                '([rast2] + [rast1.val]) / 2'\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7005
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7015 reference_raster.xml:7129
+#, no-c-format
+msgid "ST_MapAlgebraExpr"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7016
+#, no-c-format
+msgid ""
+"1 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the input raster band and of "
+"pixeltype provided. Band 1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7020
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7045 reference_raster.xml:7169
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra_expr\"/> "
+"instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7050
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If no <varname>band</varname> is "
+"specified band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7058
+#, no-c-format
+msgid ""
+"In the expression you can use the term <varname>[rast]</varname> to refer to "
+"the pixel value of the original band, <varname>[rast.x]</varname> to refer "
+"to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to "
+"the 1-based pixel row index."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7068 reference_raster.xml:7267
+#: reference_raster.xml:7531
+#, no-c-format
+msgid ""
+"Create a new 1 band raster from our original that is a function of modulo 2 "
+"of the original raster band."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7069
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,"
+"NULL,'mod([rast],2)') WHERE rid = 2;\n"
+"\n"
+"SELECT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 3) AS i\n"
+"CROSS JOIN generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7071
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to be 0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7072
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"UPDATE dummy_rast SET\n"
+"        map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN [rast] BETWEEN "
+"100 and 250 THEN 1 WHEN [rast] = 252 THEN 2 WHEN [rast] BETWEEN 253 and 254 "
+"THEN 3 ELSE 0 END', '0')\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast2, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 5) AS i\n"
+"CROSS JOIN generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT\n"
+"        ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7086 reference_raster.xml:7546
+#, no-c-format
+msgid "original (column rast-view)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7100 reference_raster.xml:7554
+#, no-c-format
+msgid "rast_view_ma"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7111 reference_raster.xml:7562
+#, no-c-format
+msgid ""
+"Create a new 3 band raster same pixel type from our original 3 band raster "
+"with first band altered by map algebra and remaining 2 bands unaltered."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7112
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(rast_view),\n"
+"                                ST_MapAlgebraExpr(rast_view,1,"
+"NULL,'tan([rast])*[rast]')\n"
+"                        ), \n"
+"                        ST_Band(rast_view,2)\n"
+"                ),\n"
+"                ST_Band(rast_view, 3) As rast_view_ma\n"
+"        )\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7117
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref "
+"linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7130
+#, no-c-format
+msgid ""
+"2 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the two input raster bands and of "
+"pixeltype provided. band 1 of each raster is assumed if no band numbers are "
+"specified. The resulting raster will be aligned (scale, skew and pixel "
+"corners) on the grid defined by the first raster and have its extent defined "
+"by the \"extenttype\" parameter. Values for \"extenttype\" can be: "
+"INTERSECTION, UNION, FIRST, SECOND."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7136
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7254
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or no pixel type "
+"specified, then the new raster band will have the same pixeltype as the "
+"input <varname>rast1</varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7257
+#, no-c-format
+msgid ""
+"Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> "
+"to refer to the pixel value of the original raster bands and <varname>[rast1."
+"x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row "
+"positions of the pixels."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7265
+#, no-c-format
+msgid "Example: 2 Band Intersection and Union"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7268
+#, no-c-format
+msgid ""
+"--Create a cool set of rasters --\n"
+"DROP TABLE IF EXISTS fun_shapes; \n"
+"CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast "
+"raster);\n"
+"\n"
+"-- Insert some cool shapes around Boston in Massachusetts state plane meters "
+"--\n"
+"INSERT INTO fun_shapes(fun_name, rast)\n"
+"VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, "
+"901930,26986),200,200,'8BUI',0,0));\n"
+"\n"
+"INSERT INTO fun_shapes(fun_name,rast)\n"
+"WITH ref(rast) AS (SELECT rast FROM fun_shapes WHERE fun_name = 'ref' ) \n"
+"SELECT 'area' AS fun_name, ST_AsRaster(ST_Buffer(ST_SetSRID(ST_Point(236229, "
+"900930),26986), 1000), \n"
+"                        ref.rast,'8BUI', 10, 0) As rast\n"
+"FROM ref\n"
+"UNION ALL\n"
+"SELECT 'rand bubbles', \n"
+"                         ST_AsRaster( \n"
+"                         (SELECT ST_Collect(geom)\n"
+"        FROM (SELECT ST_Buffer(ST_SetSRID(ST_Point(236229 + i*random()*100, "
+"900930 + j*random()*100),26986), random()*20) As geom\n"
+"                        FROM generate_series(1,10) As i, "
+"generate_series(1,10) As j\n"
+"                        ) As foo ), ref.rast,'8BUI', 200, 0) \n"
+"FROM ref;\n"
+"\n"
+"--map them -\n"
+"SELECT  ST_MapAlgebraExpr(\n"
+"                area.rast, bub.rast, '[rast2.val]', '8BUI', 'INTERSECTION', "
+"'[rast2.val]', '[rast1.val]') As interrast,\n"
+"                ST_MapAlgebraExpr(\n"
+"                        area.rast, bub.rast, '[rast2.val]', '8BUI', 'UNION', "
+"'[rast2.val]', '[rast1.val]') As unionrast\n"
+"FROM \n"
+"  (SELECT rast FROM fun_shapes WHERE\n"
+" fun_name = 'area') As area\n"
+"CROSS JOIN  (SELECT rast \n"
+"FROM fun_shapes WHERE\n"
+" fun_name = 'rand bubbles') As bub"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7282
+#, no-c-format
+msgid "mapalgebra intersection"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7296
+#, no-c-format
+msgid "map algebra union"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7309 reference_raster.xml:7648
+#, no-c-format
+msgid "Example: Overlaying rasters on a canvas as separate bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7310
+#, no-c-format
+msgid ""
+"-- we use ST_AsPNG to render the image so all single band ones look grey --\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(1,5),10) As geom\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 10,'join=bevel') As geom\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 150,150 "
+"50)'), 5,'join=bevel') As geom\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS (SELECT ST_AddBand(ST_MakeEmptyRaster(200, \n"
+"        200, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            ),\n"
+"   rbands AS (SELECT ARRAY(SELECT ST_MapAlgebraExpr(canvas.rast, "
+"ST_AsRaster(m.geom, canvas.rast, '8BUI', 100),\n"
+"                 '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1."
+"val]') As rast\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"                ORDER BY m.bnum) As rasts\n"
+"                )\n"
+"          SELECT rasts[1] As rast1 , rasts[2] As rast2, rasts[3] As rast3, "
+"ST_AddBand(\n"
+"                    ST_AddBand(rasts[1],rasts[2]), rasts[3]) As final_rast\n"
+"            FROM rbands;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7323
+#, no-c-format
+msgid "rast1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7336
+#, no-c-format
+msgid "rast2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7352
+#, no-c-format
+msgid "rast3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7366
+#, no-c-format
+msgid "final_rast"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7379
+#, no-c-format
+msgid ""
+"Example: Overlay 2 meter boundary of select parcels over an aerial imagery"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7381
+#, no-c-format
+msgid ""
+"-- Create new 3 band raster composed of first 2 clipped bands, and overlay "
+"of 3rd band with our geometry\n"
+"-- This query took 3.6 seconds on PostGIS windows 64-bit install\n"
+"WITH pr AS\n"
+"-- Note the order of operation: we clip all the rasters to dimensions of our "
+"region\n"
+"(SELECT ST_Clip(rast,ST_Expand(geom,50) ) As rast, g.geom\n"
+"        FROM aerials.o_2_boston AS r INNER JOIN\n"
+"-- union our parcels of interest so they form a single geometry we can later "
+"intersect with\n"
+"                (SELECT ST_Union(ST_Transform(the_geom,26986)) AS geom \n"
+"                  FROM landparcels WHERE pid IN('0303890000', '0303900000')) "
+"As g\n"
+"                ON ST_Intersects(rast::geometry, ST_Expand(g.geom,50))\n"
+"),\n"
+"-- we then union the raster shards together\n"
+"-- ST_Union on raster is kinda of slow but much faster the smaller you can "
+"get the rasters\n"
+"-- therefore we want to clip first and then union\n"
+"prunion AS\n"
+"(SELECT ST_AddBand(NULL, ARRAY[ST_Union(rast,1),ST_Union(rast,2),"
+"ST_Union(rast,3)] ) As clipped,geom\n"
+"FROM pr\n"
+"GROUP BY geom)\n"
+"-- return our final raster which is the unioned shard with \n"
+"-- with the overlay of our parcel boundaries\n"
+"-- add first 2 bands, then mapalgebra of 3rd band + geometry\n"
+"SELECT ST_AddBand(ST_Band(clipped,ARRAY[1,2])\n"
+"        , ST_MapAlgebraExpr(ST_Band(clipped,3), "
+"ST_AsRaster(ST_Buffer(ST_Boundary(geom),2),clipped, '8BUI',250),\n"
+"         '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1.val]') ) As "
+"rast\n"
+"FROM prunion;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7395
+#, no-c-format
+msgid "The blue lines are the boundaries of select parcels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7409
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref "
+"linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Union\"/>, <xref "
+"linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7426 reference_raster.xml:7579
+#, no-c-format
+msgid "ST_MapAlgebraFct"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7427
+#, no-c-format
+msgid ""
+"1 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the input raster band and of pixeltype prodived. Band "
+"1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7431
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7495 reference_raster.xml:7613
+#: reference_raster.xml:7726
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra\"/> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7500
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>onerasteruserfunc</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified, band "
+"1 is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7504
+#, no-c-format
+msgid ""
+"The <varname>onerasteruserfunc</varname> parameter must be the name and "
+"signature of a SQL or PL/pgSQL function, cast to a regprocedure. A very "
+"simple and quite useless PL/pgSQL function example is: "
+"<programlisting>CREATE OR REPLACE FUNCTION simple_function(pixel FLOAT, pos "
+"INTEGER[], VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>userfunction</varname> may accept two or three arguments: a float "
+"value, an optional integer array, and a variadic text array. The first "
+"argument is the value of an individual raster cell (regardless of the raster "
+"datatype). The second argument is the position of the current processing "
+"cell in the form '{x,y}'. The third argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct\"/> shall be passed "
+"through to the <varname>userfunction</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7509
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(float,integer[],"
+"text[])'::regprocedure</programlisting>Note that the argument contains the "
+"name of the function, the types of the function arguments, quotes around the "
+"name and argument types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7513
+#, no-c-format
+msgid ""
+"The third argument to the <varname>userfunction</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct\"/> call are passed through to the specified "
+"<varname>userfunction</varname>, and are contained in the <varname>args</"
+"varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7522
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>userfunction</varname> is "
+"required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7532
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"CREATE FUNCTION mod_fct(pixel float, pos integer[], variadic args text[])\n"
+"RETURNS float\n"
+"AS $$\n"
+"BEGIN\n"
+"    RETURN pixel::integer % 2;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE;\n"
+"\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraFct(rast,NULL,'mod_fct(float,"
+"integer[],text[])'::regprocedure) WHERE rid = 2;\n"
+"\n"
+"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
+"mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7534
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to a passed parameter to the user "
+"function (0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7535
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"CREATE FUNCTION classify_fct(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"DECLARE\n"
+"    nodata float := 0;\n"
+"BEGIN\n"
+"    IF NOT args[1] IS NULL THEN\n"
+"        nodata := args[1];\n"
+"    END IF;\n"
+"    IF pixel < 251 THEN\n"
+"        RETURN 1;\n"
+"    ELSIF pixel = 252 THEN\n"
+"        RETURN 2;\n"
+"    ELSIF pixel > 252 THEN\n"
+"        RETURN 3;\n"
+"    ELSE\n"
+"        RETURN nodata;\n"
+"    END IF;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"UPDATE dummy_rast SET map_rast2 = "
+"ST_MapAlgebraFct(rast,'2BUI','classify_fct(float,integer[],text[])'::"
+"regprocedure, '0') WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
+"j) As mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
+"generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7563
+#, no-c-format
+msgid ""
+"CREATE FUNCTION rast_plus_tan(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"BEGIN\n"
+"        RETURN tan(pixel) * pixel;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"\n"
+"SELECT ST_AddBand(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(rast_view),\n"
+"                        ST_MapAlgebraFct(rast_view,1,"
+"NULL,'rast_plus_tan(float,integer[],text[])'::regprocedure)\n"
+"                ), \n"
+"                ST_Band(rast_view,2)\n"
+"        ),\n"
+"        ST_Band(rast_view, 3) As rast_view_ma\n"
+")\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7568 reference_raster.xml:7691
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference"
+"\"/>, <xref linkend=\"RT_ST_SetValue\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7580
+#, no-c-format
+msgid ""
+"2 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the 2 input raster bands and of pixeltype prodived. "
+"Band 1 is assumed if no band is specified. Extent type defaults to "
+"INTERSECTION if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7584
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band1</parameter></paramdef> <paramdef><type>raster</type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band2</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7618
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>tworastuserfunc</varname> on the input raster "
+"<varname>rast1</varname>, <varname>rast2</varname>. If no <varname>band1</"
+"varname> or <varname>band2</varname> is specified, band 1 is assumed. The "
+"new raster will have the same georeference, width, and height as the "
+"original rasters but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7621
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or left out, then the "
+"new raster band will have the same pixeltype as the input <varname>rast1</"
+"varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7624
+#, no-c-format
+msgid ""
+"The <varname>tworastuserfunc</varname> parameter must be the name and "
+"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
+"PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION "
+"simple_function_for_two_rasters(pixel1 FLOAT, pixel2 FLOAT, pos INTEGER[], "
+"VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>tworastuserfunc</varname> may accept three or four arguments: a "
+"double precision value, a double precision value, an optional integer array, "
+"and a variadic text array. The first argument is the value of an individual "
+"raster cell in <varname>rast1</varname> (regardless of the raster datatype). "
+"The second argument is an individual raster cell value in <varname>rast2</"
+"varname>. The third argument is the position of the current processing cell "
+"in the form '{x,y}'. The fourth argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct2\"/> shall be passed "
+"through to the <varname>tworastuserfunc</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7630
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(double precision, "
+"double precision, integer[], text[])'::regprocedure</programlisting>Note "
+"that the argument contains the name of the function, the types of the "
+"function arguments, quotes around the name and argument types, and a cast to "
+"a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7633
+#, no-c-format
+msgid ""
+"The third argument to the <varname>tworastuserfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct2\"/> call are passed through to the specified "
+"<varname>tworastuserfunc</varname>, and are contained in the "
+"<varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7641
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>tworastuserfunc</varname> "
+"is required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7649
+#, no-c-format
+msgid ""
+"-- define our user defined function --\n"
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_union(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN ((rast1 + rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN NULL;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN rast2;\n"
+"                        ELSE\n"
+"                                RETURN rast1;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"\n"
+"-- prep our test table of rasters\n"
+"DROP TABLE IF EXISTS map_shapes;\n"
+"CREATE TABLE map_shapes(rid serial PRIMARY KEY, rast raster, bnum integer, "
+"descrip text);\n"
+"INSERT INTO map_shapes(rast,bnum, descrip)\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(90,90),30) As geom, 'circle' "
+"As descrip\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 15) As geom, 'big road' As descrip\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Translate(ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 "
+"150,150 50)'), 8,'join=bevel'), 10,-6) As geom, 'small road' As descrip\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS ( SELECT ST_AddBand(ST_MakeEmptyRaster(250, \n"
+"        250, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0 ) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            )\n"
+"-- return our rasters aligned with our canvas\n"
+"SELECT ST_AsRaster(m.geom, canvas.rast, '8BUI', 240) As rast, bnum, descrip\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"UNION ALL \n"
+"SELECT canvas.rast, 4, 'canvas'\n"
+"FROM canvas;\n"
+"\n"
+"-- Map algebra on single band rasters and then collect with ST_AddBand\n"
+"INSERT INTO map_shapes(rast,bnum,descrip)\n"
+"SELECT ST_AddBand(ST_AddBand(rasts[1], rasts[2]),rasts[3]), 4, 'map bands "
+"overlay fct union (canvas)'\n"
+"        FROM (SELECT ARRAY(SELECT ST_MapAlgebraFct(m1.rast, m2.rast, \n"
+"                        'raster_mapalgebra_union(double precision, double "
+"precision, integer[], text[])'::regprocedure, '8BUI', 'FIRST')\n"
+"                FROM map_shapes As m1 CROSS JOIN map_shapes As m2\n"
+"                        WHERE m1.descrip = 'canvas' AND m2.descrip <> "
+"'canvas' ORDER BY m2.bnum) As rasts) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7662
+#, no-c-format
+msgid "map bands overlay (canvas) (R: small road, G: circle, B: big road)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7674
+#, no-c-format
+msgid "User Defined function that takes extra args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7675
+#, no-c-format
+msgid ""
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_userargs(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN least(userargs[1]::integer,(rast1 + "
+"rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN userargs[2]::integer;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN greatest(rast2,random()*userargs[3]::"
+"integer)::integer;\n"
+"                        ELSE\n"
+"                                RETURN greatest(rast1, random()*userargs[4]::"
+"integer)::integer;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' VOLATILE COST 1000;\n"
+"        \n"
+"SELECT ST_MapAlgebraFct(m1.rast, 1, m1.rast, 3,\n"
+"                        'raster_mapalgebra_userargs(double precision, double "
+"precision, integer[], text[])'::regprocedure,\n"
+"                                '8BUI', 'INTERSECT', "
+"'100','200','200','0') \n"
+"                FROM map_shapes As m1\n"
+"                        WHERE m1.descrip = 'map bands overlay fct union "
+"(canvas)';"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7683
+#, no-c-format
+msgid "user defined with extra args and different bands from same raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7702
+#, no-c-format
+msgid "ST_MapAlgebraFctNgb"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7703
+#, no-c-format
+msgid ""
+"1-band version: Map Algebra Nearest Neighbor using user-defined PostgreSQL "
+"function. Return a raster which values are the result of a PLPGSQL user "
+"function involving a neighborhood of values from the input raster band."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7708
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
+"args</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7731
+#, no-c-format
+msgid ""
+"(one raster version) Return a raster which values are the result of a "
+"PLPGSQL user function involving a neighborhood of values from the input "
+"raster band. The user function takes the neighborhood of pixel values as an "
+"array of numbers, for each pixel, returns the result from the user function, "
+"replacing pixel value of currently inspected pixel with the function result."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7735
+#, no-c-format
+msgid "rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7736
+#, no-c-format
+msgid "Raster on which the user function is evaluated."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7739
+#, no-c-format
+msgid "band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7740
+#, no-c-format
+msgid "Band number of the raster to be evaluated. Default to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7744
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL. If not passed "
+"in or set to NULL, will default to the pixeltype of the <varname>rast</"
+"varname>. Results are truncated if they are larger than what is allowed for "
+"the pixeltype."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7747
+#, no-c-format
+msgid "ngbwidth"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7748
+#, no-c-format
+msgid "The width of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7751
+#, no-c-format
+msgid "ngbheight"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7752
+#, no-c-format
+msgid "The height of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7755
+#, no-c-format
+msgid "onerastngbuserfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7756
+#, no-c-format
+msgid ""
+"PLPGSQL/psql user function to apply to neighborhood pixels of a single band "
+"of a raster. The first element is a 2-dimensional array of numbers "
+"representing the rectangular pixel neighborhood"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7759
+#, no-c-format
+msgid "nodatamode"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7761
+#, no-c-format
+msgid ""
+"Defines what value to pass to the function for a neighborhood pixel that is "
+"nodata or NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7762
+#, no-c-format
+msgid ""
+"'ignore': any NODATA values encountered in the neighborhood are ignored by "
+"the computation -- this flag must be sent to the user callback function, and "
+"the user function decides how to ignore it."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7763
+#, no-c-format
+msgid ""
+"'NULL': any NODATA values encountered in the neighborhood will cause the "
+"resulting pixel to be NULL -- the user callback function is skipped in this "
+"case."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7764
+#, no-c-format
+msgid ""
+"'value': any NODATA values encountered in the neighborhood are replaced by "
+"the reference pixel (the one in the center of the neighborhood). Note that "
+"if this value is NODATA, the behavior is the same as 'NULL' (for the "
+"affected neighborhood)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7768
+#, no-c-format
+msgid "args"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7769
+#, no-c-format
+msgid "Arguments to pass into the user function."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7779
+#, no-c-format
+msgid ""
+"Examples utilize the katrina raster loaded as a single tile described in "
+"<ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">http://"
+"trac.osgeo.org/gdal/wiki/frmts_wtkraster.html</ulink> and then prepared in "
+"the <xref linkend=\"RT_ST_Rescale\"/> examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7781
+#, no-c-format
+msgid ""
+"--\n"
+"-- A simple 'callback' user function that averages up all the values in a "
+"neighborhood.\n"
+"--\n"
+"CREATE OR REPLACE FUNCTION rast_avg(matrix float[][], nodatamode text, "
+"variadic args text[])\n"
+"    RETURNS float AS\n"
+"    $$\n"
+"    DECLARE\n"
+"                _matrix float[][];\n"
+"        x1 integer;\n"
+"        x2 integer;\n"
+"        y1 integer;\n"
+"        y2 integer;\n"
+"        sum float;\n"
+"    BEGIN\n"
+"                _matrix := matrix;\n"
+"        sum := 0;\n"
+"        FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP\n"
+"            FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP\n"
+"                sum := sum + _matrix[x][y];\n"
+"            END LOOP;\n"
+"        END LOOP;\n"
+"        RETURN (sum*1.0/(array_upper(matrix,1)*array_upper(matrix,2) ))::"
+"integer ;\n"
+"    END;\n"
+"    $$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"    \n"
+"-- now we apply to our raster averaging pixels within 2 pixels of each other "
+"in X and Y direction --\n"
+"SELECT ST_MapAlgebraFctNgb(rast, 1,  '8BUI', 4,4,\n"
+"                'rast_avg(float[][], text, text[])'::regprocedure, 'NULL', "
+"NULL) As nn_with_border\n"
+"        FROM katrinas_rescaled \n"
+"        limit 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7795
+#, no-c-format
+msgid "First band of our raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7809
+#, no-c-format
+msgid "new raster after averaging pixels withing 4x4 pixels of each other"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7824
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraExpr\"/>, <xref linkend=\"RT_ST_Rescale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7834
+#, no-c-format
+msgid "ST_Reclass"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7835
+#, no-c-format
+msgid ""
+"Creates a new raster composed of band types reclassified from original. The "
+"nband is the band to be changed. If nband is not specified assumed to be 1. "
+"All other bands are returned unchanged. Use case: convert a 16BUI band to a "
+"8BUI and so forth for simpler rendering as viewable formats."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7839
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>reclassarg[] </type> <parameter>VARIADIC reclassargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7867
+#, no-c-format
+msgid ""
+"Creates a new raster formed by applying a valid PostgreSQL algebraic "
+"operation defined by the <varname>reclassexpr</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified band 1 "
+"is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster. Bands not designated will come back "
+"unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid "
+"reclassification expressions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7869
+#, no-c-format
+msgid ""
+"The bands of the new raster will have pixel type of <varname>pixeltype</"
+"varname>. If <varname>reclassargset</varname> is passed in then each "
+"reclassarg defines behavior of each band generated."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7875
+#, no-c-format
+msgid "Examples Basic"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7876
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 2 is converted from 8BUI to "
+"4BUI and all values from 101-254 are set to nodata value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7877
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN reclass_rast raster;\n"
+"UPDATE dummy_rast SET reclass_rast = ST_Reclass(rast,2,'0-87:1-10, "
+"88-100:11-15, 101-254:0-0', '4BUI',0) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row, ST_Value(rast,2,i,j) As origval, \n"
+"    ST_Value(reclass_rast, 2, i, j) As reclassval, \n"
+"    ST_Value(reclass_rast, 2, i, j, false) As reclassval_include_nodata\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" col | row | origval | reclassval | reclassval_include_nodata\n"
+"-----+-----+---------+------------+---------------------------\n"
+"   1 |   1 |      78 |          9 |                         9\n"
+"   2 |   1 |      98 |         14 |                        14\n"
+"   3 |   1 |     122 |            |                         0\n"
+"   1 |   2 |      96 |         14 |                        14\n"
+"   2 |   2 |     118 |            |                         0\n"
+"   3 |   2 |     180 |            |                         0\n"
+"   1 |   3 |      99 |         15 |                        15\n"
+"   2 |   3 |     112 |            |                         0\n"
+"   3 |   3 |     169 |            |                         0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7881
+#, no-c-format
+msgid "Example: Advanced using multiple reclassargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7883
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 1,2,3 is converted to "
+"1BB,4BUI, 4BUI respectively and reclassified. Note this uses the variadic "
+"<varname>reclassarg</varname> argument which can take as input an indefinite "
+"number of reclassargs (theoretically as many bands as you have)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7884
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET reclass_rast = \n"
+"    ST_Reclass(rast,\n"
+"        ROW(2,'0-87]:1-10, (87-100]:11-15, (101-254]:0-0', '4BUI',NULL)::"
+"reclassarg,\n"
+"        ROW(1,'0-253]:1, 254:0', '1BB', NULL)::reclassarg,\n"
+"        ROW(3,'0-70]:1, (70-86:2, [86-150):3, [150-255:4', '4BUI', NULL)::"
+"reclassarg\n"
+"        ) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row,ST_Value(rast,1,i,j) As ov1,  "
+"ST_Value(reclass_rast, 1, i, j) As rv1, \n"
+"    ST_Value(rast,2,i,j) As ov2, ST_Value(reclass_rast, 2, i, j) As rv2, \n"
+"    ST_Value(rast,3,i,j) As ov3, ST_Value(reclass_rast, 3, i, j) As rv3\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+"col | row | ov1 | rv1 | ov2 | rv2 | ov3 | rv3\n"
+"----+-----+-----+-----+-----+-----+-----+-----\n"
+"  1 |   1 | 253 |   1 |  78 |   9 |  70 |   1\n"
+"  2 |   1 | 254 |   0 |  98 |  14 |  86 |   3\n"
+"  3 |   1 | 253 |   1 | 122 |   0 | 100 |   3\n"
+"  1 |   2 | 253 |   1 |  96 |  14 |  80 |   2\n"
+"  2 |   2 | 254 |   0 | 118 |   0 | 108 |   3\n"
+"  3 |   2 | 254 |   0 | 180 |   0 | 162 |   4\n"
+"  1 |   3 | 250 |   1 |  99 |  15 |  90 |   3\n"
+"  2 |   3 | 254 |   0 | 112 |   0 | 108 |   3\n"
+"  3 |   3 | 254 |   0 | 169 |   0 | 175 |   4"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7888
+#, no-c-format
+msgid ""
+"Example: Advanced Map a single band 32BF raster to multiple viewable bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7889
+#, no-c-format
+msgid ""
+"Create a new 3 band (8BUI,8BUI,8BUI viewable raster) from a raster that has "
+"only one 32bf band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7890
+#, no-c-format
+msgid ""
+"ALTER TABLE wind ADD COLUMN rast_view raster;\n"
+"UPDATE wind \n"
+"        set rast_view = ST_AddBand( NULL,\n"
+"        ARRAY[\n"
+"                ST_Reclass(rast, 1,'0.1-10]:1-10,9-10]:11,(11-33:0'::text, "
+"'8BUI'::text,0),\n"
+"                ST_Reclass(rast,1, '11-33):0-255,[0-32:0,(34-1000:0'::text, "
+"'8BUI'::text,0),  \n"
+"                ST_Reclass(rast,1,'0-32]:0,(32-100:100-255'::text, '8BUI'::"
+"text,0)\n"
+"                ]\n"
+"                );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7895
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Band\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, "
+"<xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"reclassarg\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7908
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7909
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"1 or more bands."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7914
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7920
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7927
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7934
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7941
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7953
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"at least one band. The resulting raster's extent is the extent of the whole "
+"set. In the case of intersection, the resulting value is defined by "
+"<varname>uniontype</varname> which is one of the following: LAST (default), "
+"FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7956
+#, no-c-format
+msgid ""
+"In order for rasters to be unioned, they most all have the same alignment. "
+"Use <xref linkend=\"RT_ST_SameAlignment\"/> and <xref linkend="
+"\"RT_ST_NotSameAlignmentReason\"/> for more details and help. One way to fix "
+"alignment issues is to use <xref linkend=\"RT_ST_Resample\"/> and use the "
+"same reference raster for alignment."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7960
+#, no-c-format
+msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7961
+#, no-c-format
+msgid "Availability: 2.1.0 ST_Union(rast, unionarg) variant was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7962
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast) (variant 1) unions all bands of all input "
+"rasters. Prior versions of PostGIS assumed the first band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7963
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast, uniontype) (variant 4) unions all bands of "
+"all input rasters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7966
+#, no-c-format
+msgid "Examples: Reconstitute a single band chunked raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7967
+#, no-c-format
+msgid ""
+"-- this creates a single band from first band of raster tiles\n"
+"-- that form the original file system tile\n"
+"SELECT filename, ST_Union(rast,1) As file_rast\n"
+"FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7971 reference_raster.xml:7975
+#, no-c-format
+msgid ""
+"Examples: Return a multi-band raster that is the union of tiles intersecting "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7972
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"-- Note: In 2.0, this would have just returned a single band raster\n"
+"-- , new union works on all bands by default\n"
+"-- this is equivalent to unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), "
+"ROW(3, 'LAST')]::unionarg[]\n"
+"SELECT ST_Union(rast)\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7976
+#, no-c-format
+msgid ""
+"Here we use the longer syntax if we only wanted a subset of bands or we want "
+"to change order of bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7977
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"SELECT ST_Union(rast,ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::"
+"unionarg[])\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7983
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7996
+#, no-c-format
+msgid "Built-in Map Algebra Callback Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8000
+#, no-c-format
+msgid "ST_Distinct4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8001
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the number of unique pixel values "
+"in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8005
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Distinct4ma</function></"
+"funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Distinct4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][] </type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8025
+#, no-c-format
+msgid ""
+"Calculate the number of unique pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8028 reference_raster.xml:8167
+#: reference_raster.xml:8242 reference_raster.xml:8327
+#: reference_raster.xml:8452 reference_raster.xml:8523
+#: reference_raster.xml:8598
+#, no-c-format
+msgid ""
+"Variant 1 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8032 reference_raster.xml:8171
+#: reference_raster.xml:8246 reference_raster.xml:8333
+#: reference_raster.xml:8456 reference_raster.xml:8527
+#: reference_raster.xml:8602
+#, no-c-format
+msgid ""
+"Variant 2 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8038 reference_raster.xml:8177
+#: reference_raster.xml:8252 reference_raster.xml:8339
+#: reference_raster.xml:8462 reference_raster.xml:8533
+#: reference_raster.xml:8608
+#, no-c-format
+msgid ""
+"Use of Variant 1 is discouraged since <xref linkend=\"RT_ST_MapAlgebraFctNgb"
+"\"/> has been deprecated as of 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8044 reference_raster.xml:8183
+#: reference_raster.xml:8258 reference_raster.xml:8345
+#: reference_raster.xml:8468 reference_raster.xml:8539
+#: reference_raster.xml:8614
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8050
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8056 reference_raster.xml:8480
+#: reference_raster.xml:8551
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8071
+#, no-c-format
+msgid "ST_InvDistWeight4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8072
+#, no-c-format
+msgid ""
+"Raster processing function that interpolates a pixel's value from the "
+"pixel's neighborhood."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8077
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8089
+#, no-c-format
+msgid ""
+"Calculate an interpolated value for a pixel using the Inverse Distance "
+"Weighted method."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8091
+#, no-c-format
+msgid ""
+"There are two optional parameters that can be passed through "
+"<varname>userargs</varname>. The first parameter is the power factor "
+"(variable k in the equation below) between 0 and 1 used in the Inverse "
+"Distance Weighted equation. If not specified, default value is 1. The second "
+"parameter is the weight percentage applied only when the value of the pixel "
+"of interest is included with the interpolated value from the neighborhood. "
+"If not specified and the pixel of interest has a value, that value is "
+"returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8095
+#, no-c-format
+msgid "The basic inverse distance weight equation is:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8104
+#, no-c-format
+msgid "k = power factor, a real number between 0 and 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8113 reference_raster.xml:8398
+#, no-c-format
+msgid ""
+"This function is a specialized callback function for use as a callback "
+"parameter to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8121 reference_raster.xml:8406
+#, no-c-format
+msgid "-- NEEDS EXAMPLE"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8126
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8135
+#, no-c-format
+msgid "ST_Max4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8136
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the maximum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8140
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Max4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Max4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8160
+#, no-c-format
+msgid "Calculate the maximum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8162 reference_raster.xml:8237
+#: reference_raster.xml:8322 reference_raster.xml:8447
+#: reference_raster.xml:8593
+#, no-c-format
+msgid ""
+"For Variant 2, a substitution value for NODATA pixels can be specified by "
+"passing that value to userargs."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8189
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      254\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8195
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8210
+#, no-c-format
+msgid "ST_Mean4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8211
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the mean pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8215
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Mean4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8235
+#, no-c-format
+msgid "Calculate the mean pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8264
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_mean4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8271
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"              ST_MapAlgebra(rast, 1, 'st_mean4ma(double precision[][][], "
+"integer[][], text[])'::regprocedure,'32BF', 'FIRST', NULL, 1, 1)\n"
+"       ,  2, 2)\n"
+"  FROM dummy_rast \n"
+"   WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8277
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8291
+#, no-c-format
+msgid "ST_Min4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8292
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the minimum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8298
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Min4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Min4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8318
+#, no-c-format
+msgid "Calculate the minimum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8351
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      250\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8356
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8371
+#, no-c-format
+msgid "ST_MinDist4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8372
+#, no-c-format
+msgid ""
+"Raster processing function that returns the minimum distance (in number of "
+"pixels) between the pixel of interest and a neighboring pixel with value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8377
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8389
+#, no-c-format
+msgid ""
+"Return the shortest distance (in number of pixels) between the pixel of "
+"interest and the closest pixel with value in the neighborhood."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8392
+#, no-c-format
+msgid ""
+"The intent of this function is to provide an informative data point that "
+"helps infer the usefulness of the pixel of interest's interpolated value "
+"from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is "
+"particularly useful when the neighborhood is sparsely populated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8411
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8420
+#, no-c-format
+msgid "ST_Range4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8421
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the range of pixel values in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8425
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Range4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Range4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8445
+#, no-c-format
+msgid "Calculate the range of pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8474
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        4\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8495
+#, no-c-format
+msgid "ST_StdDev4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8496
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the standard deviation of pixel "
+"values in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8500
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_StdDev4ma</function></funcdef> <paramdef><type>double "
+"precision[][][]</type> <parameter>value</parameter></paramdef> "
+"<paramdef><type>integer[][] </type> <parameter>pos</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8520
+#, no-c-format
+msgid ""
+"Calculate the standard deviation of pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8545
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_stddev4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 1.30170822143555\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8566
+#, no-c-format
+msgid "ST_Sum4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8567
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the sum of all pixel values in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8571
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Sum4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8591
+#, no-c-format
+msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8620
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |     2279\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8626
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:8642
+#, no-c-format
+msgid "DEM (Elevation)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8646
+#, no-c-format
+msgid "ST_Aspect"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8647
+#, no-c-format
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8650
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8675
+#, no-c-format
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the aspect equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8677
+#, no-c-format
+msgid ""
+"<varname>units</varname> indicates the units of the aspect. Possible values "
+"are: RADIANS, DEGREES (default)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8681
+#, no-c-format
+msgid ""
+"When <varname>units</varname> = RADIANS, values are between 0 and 2 * pi "
+"radians measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8685
+#, no-c-format
+msgid ""
+"When <varname>units</varname> = DEGREES, values are between 0 and 360 "
+"degrees measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8689
+#, no-c-format
+msgid "If slope of pixel is zero, aspect of pixel is -1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8694
+#, no-c-format
+msgid ""
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Aspect_Images.html"
+"\">ERDAS Field Guide - Aspect Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8700 reference_raster.xml:8796
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional "
+"<varname>interpolate_nodata</varname> function parameter"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8701 reference_raster.xml:8925
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, return values were in radians. Now, return "
+"values default to degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8706
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Aspect(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                    st_dumpvalues                                                                   \n"
+"                                  \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"----------------------------------\n"
+" (1,\"{{315,341.565063476562,0,18.4349479675293,45},"
+"{288.434936523438,315,0,45,71.5650482177734},{270,270,-1,90,90},"
+"{251.565048217773,225,180,135,108.434951782227},{225,198.43495178\n"
+"2227,180,161.565048217773,135}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8712 reference_raster.xml:8809
+#: reference_raster.xml:8937
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage. This query only works with "
+"PostgreSQL 9.1 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8714
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Aspect(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8719
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8732
+#, no-c-format
+msgid "ST_HillShade"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8733
+#, no-c-format
+msgid ""
+"Returns the hypothetical illumination of an elevation raster band using "
+"provided azimuth, altitude, brightness and scale inputs."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8736
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_HillShade</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>azimuth=315</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>altitude=45</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>max_bright=255</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_HillShade</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>azimuth=315</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>altitude=45</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>max_bright=255</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scale=1.0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8767
+#, no-c-format
+msgid ""
+"Returns the hypothetical illumination of an elevation raster band using the "
+"azimuth, altitude, brightness, and scale inputs. Utilizes map algebra and "
+"applies the hill shade equation to neighboring pixels. Return pixel values "
+"are between 0 and 255."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8769
+#, no-c-format
+msgid ""
+"<varname>azimuth</varname> is a value between 0 and 360 degrees measured "
+"clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8773
+#, no-c-format
+msgid ""
+"<varname>altitude</varname> is a value between 0 and 90 degrees where 0 "
+"degrees is at the horizon and 90 degrees is directly overhead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8777
+#, no-c-format
+msgid ""
+"<varname>max_bright</varname> is a value between 0 and 255 with 0 as no "
+"brightness and 255 as max brightness."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8781 reference_raster.xml:8909
+#, no-c-format
+msgid ""
+"<varname>scale</varname> is the ratio of vertical units to horizontal. For "
+"Feet:LatLon use scale=370400, for Meters:LatLon use scale=111120."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8785
+#, no-c-format
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the hillshade illumination."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8790
+#, no-c-format
+msgid ""
+"For more information about Hillshade, please refer to <ulink url=\"http://"
+"webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How%20Hillshade"
+"%20works\">How hillshade works</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8797
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, azimuth and altitude were expressed in "
+"radians. Now, azimuth and altitude are expressed in degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8803
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Hillshade(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                                       st_dumpvalues                                                \n"
+"                                                                       \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"-----------------------------------------------------------------------\n"
+" (1,\"{{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,251.32763671875,220.749786376953,147.224319458008,NULL},"
+"{NULL,220.749786376953,180.312225341797,67.7497863769531,NULL},"
+"{NULL,147.224319458008\n"
+",67.7497863769531,43.1210060119629,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8811
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Hillshade(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8816
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_Aspect\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8829
+#, no-c-format
+msgid "ST_Roughness"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8830
+#, no-c-format
+msgid "Returns a raster with the calculated \"roughness\" of a DEM."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8835
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Roughness</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype="
+"\"32BF\"</parameter> </paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type> <parameter> interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8848
+#, no-c-format
+msgid ""
+"Calculates the \"roughness\" of a DEM, by subtracting the maximum from the "
+"minimum for a given area."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8854 reference_raster.xml:8987
+#: reference_raster.xml:9038
+#, no-c-format
+msgid "-- needs examples"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8859
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8872
+#, no-c-format
+msgid "ST_Slope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8873
+#, no-c-format
+msgid ""
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8876
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Slope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Slope</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>units=DEGREES</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8903
+#, no-c-format
+msgid ""
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the slope equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8905
+#, no-c-format
+msgid ""
+"<varname>units</varname> indicates the units of the slope. Possible values "
+"are: RADIANS, DEGREES (default), PERCENT."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8913
+#, no-c-format
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the surface slope."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8918
+#, no-c-format
+msgid ""
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Slope_Images.html\">ERDAS "
+"Field Guide - Slope Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8924
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional <varname>units</"
+"varname>, <varname>scale</varname>, <varname>interpolate_nodata</varname> "
+"function parameters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8931
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Slope(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                            st_dumpvalues                                                                                                                                           \n"
+"                                                                     \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"---------------------------------------------------------------------\n"
+" (1,"
+"\"{{10.0249881744385,21.5681285858154,26.5650520324707,21.5681285858154,10.0249881744385},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},\n"
+"{26.5650520324707,36.8698959350586,0,36.8698959350586,26.5650520324707},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},"
+"{10.0249881744385,21.\n"
+"5681285858154,26.5650520324707,21.5681285858154,10.0249881744385}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8939
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Slope(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8944
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8957
+#, no-c-format
+msgid "ST_TPI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8958
+#, no-c-format
+msgid "Returns a raster with the calculated Topographic Position Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8963
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_TPI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8977
+#, no-c-format
+msgid ""
+"Calculates the Topographic Position Index, which is defined as the folcal "
+"mean with radius of one minus the center cell."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8980 reference_raster.xml:9030
+#, no-c-format
+msgid "This function only supports a focalmean radius of one."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8992
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9005
+#, no-c-format
+msgid "ST_TRI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9006
+#, no-c-format
+msgid "Returns a raster with the calculated Terrain Ruggedness Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9011
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_TRI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9025
+#, no-c-format
+msgid ""
+"Terrain Ruggedness Index is calculated by comparing a central pixel with its "
+"neighbors, taking the absolute values of the differences, and averaging the "
+"result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9043
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9057
+#, no-c-format
+msgid "Raster to Geometry"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9061
+#, no-c-format
+msgid "Box3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9062
+#, no-c-format
+msgid "Returns the box 3d representation of the enclosing box of the raster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9067
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9077
+#, no-c-format
+msgid "Returns the box representing the extent of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9078
+#, no-c-format
+msgid ""
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</"
+"varname>, <varname>MAXY</varname>))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9082
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of "
+"box3d. Since box2d is a deprecated type, this was changed to box3d."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9088
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        rid,\n"
+"        Box3D(rast) AS rastbox\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid |        rastbox\n"
+"----+-------------------------------------------------\n"
+"1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
+"2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9101
+#, no-c-format
+msgid "ST_ConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9102
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster including pixel values equal "
+"to BandNoDataValue. For regular shaped and non-skewed rasters, this gives "
+"the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9109
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9119
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster including the NoDataBandValue "
+"band pixels. For regular shaped and non-skewed rasters, this gives more or "
+"less the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9123
+#, no-c-format
+msgid ""
+"ST_Envelope floors the coordinates and hence add a little buffer around the "
+"raster so the answer is subtly different from ST_ConvexHull which does not "
+"floor."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9130
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram "
+"of this."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9131
+#, no-c-format
+msgid ""
+"-- Note envelope and convexhull are more or less the same\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 "
+"0,20 60,0 60,0 0))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9132
+#, no-c-format
+msgid ""
+"-- now we skew the raster \n"
+"-- note how the convex hull and envelope are now different\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
+"        FROM dummy_rast WHERE rid=1) As foo;\n"
+"        \n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 "
+"0,22 61,0 61,0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9138
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MinConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/"
+">, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9149
+#, no-c-format
+msgid "ST_DumpAsPolygons"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9150
+#, no-c-format
+msgid ""
+"Returns a set of geomval (geom,val) rows, from a given raster band. If no "
+"band number is specified, band num defaults to 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9155
+#, no-c-format
+msgid ""
+"<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9166
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of geomval rows, "
+"formed by a geometry (geom) and a pixel band value (val). Each polygon is "
+"the union of all pixels for that band that have the same pixel value denoted "
+"by val."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9170
+#, no-c-format
+msgid ""
+"ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a "
+"GROUP BY in that it creates new rows. For example it can be used to expand a "
+"single raster into multiple POLYGONS/MULTIPOLYGONS."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9174
+#, no-c-format
+msgid "Availability: Requires GDAL 1.7 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9175
+#, no-c-format
+msgid ""
+"If there is a no data value set for a band, pixels with that value will not "
+"be returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9176
+#, no-c-format
+msgid ""
+"If you only care about count of pixels with a given value in a raster, it is "
+"faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9178
+#, no-c-format
+msgid ""
+"This is different than ST_PixelAsPolygons where one geometry is returned for "
+"each pixel regardless of pixel value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9186
+#, no-c-format
+msgid ""
+"SELECT val, ST_AsText(geom) As geomwkt\n"
+"FROM (\n"
+"SELECT (ST_DumpAsPolygons(rast)).*\n"
+"FROM dummy_rast \n"
+"WHERE rid = 2\n"
+") As foo\n"
+"WHERE val BETWEEN 249 and 251\n"
+"ORDER BY val;\n"
+"\n"
+" val |                                                       geomwkt\n"
+"-----"
+"+--------------------------------------------------------------------------\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 "
+"5793243.85,\n"
+"                 3427928 5793243.95,3427927.95 5793243.95))\n"
+" 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 "
+"5793243.85,\n"
+"                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
+" 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 "
+"5793243.75,\n"
+"                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
+" 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 "
+"5793243.8,\n"
+"                 3427927.8 5793243.85,3427927.75 5793243.85))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9191
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref "
+"linkend=\"RT_ST_ValueCount\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9202
+#, no-c-format
+msgid "ST_Envelope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9203
+#, no-c-format
+msgid "Returns the polygon representation of the extent of the raster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9208
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9218
+#, no-c-format
+msgid ""
+"Returns the polygon representation of the extent of the raster in spatial "
+"coordinate units defined by srid. It is a float8 minimum bounding box "
+"represented as a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9220
+#, no-c-format
+msgid ""
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9232
+#, no-c-format
+msgid ""
+"SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |                                         envgeomwkt\n"
+"-----+--------------------------------------------------------------------\n"
+"   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
+"   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
+"                   3427928 5793244,3427927 5793244, 3427927 5793243))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9237
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9247
+#, no-c-format
+msgid "ST_MinConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9248
+#, no-c-format
+msgid "Return the convex hull geometry of the raster excluding NODATA pixels."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9255
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=NULL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9266
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster excluding NODATA pixels. If "
+"<varname>nband</varname> is NULL, all bands of the raster are considered."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9275
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_SetValues(\n"
+"                                ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(9, "
+"9, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0), 2, '8BUI', 1, 0),\n"
+"                                1, 1, 1,\n"
+"                                ARRAY[\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 1],\n"
+"                                        [0, 0, 0, 1, 1, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0]\n"
+"                                ]::double precision[][]\n"
+"                        ),\n"
+"                        2, 1, 1,\n"
+"                        ARRAY[\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [1, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 1, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 1, 0, 0, 0, 0, 0, 0]\n"
+"                        ]::double precision[][]\n"
+"                ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_AsText(ST_ConvexHull(rast)) AS hull,\n"
+"        ST_AsText(ST_MinConvexHull(rast)) AS mhull,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 1)) AS mhull_1,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 2)) AS mhull_2\n"
+"FROM foo\n"
+"\n"
+"               hull               |                mhull                "
+"|               mhull_1               |               "
+"mhull_2               \n"
+"----------------------------------+-------------------------------------"
+"+-------------------------------------"
+"+-------------------------------------\n"
+" POLYGON((0 0,9 0,9 -9,0 -9,0 0)) | POLYGON((0 -3,9 -3,9 -9,0 -9,0 -3)) | "
+"POLYGON((3 -3,9 -3,9 -6,3 -6,3 -3)) | POLYGON((0 -3,6 -3,6 -9,0 -9,0 -3))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9280
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/>, "
+"<xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9291
+#, no-c-format
+msgid "ST_Polygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9292
+#, no-c-format
+msgid ""
+"Returns a multipolygon geometry formed by the union of pixels that have a "
+"pixel value that is not no data value. If no band number is specified, band "
+"num defaults to 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9297
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9307
+#, no-c-format
+msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9308
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning "
+"multipolygon is ensured to be valid."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9309
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions would sometimes return a polygon, changed "
+"to always return multipolygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9314
+#, no-c-format
+msgid ""
+"-- by default no data band value is 0 or not set, so polygon will return a "
+"square polygon        \n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"--------------------------------------------\n"
+"MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 "
+"5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
+"                 \n"
+"                 \n"
+"-- now we change the no data value of first band\n"
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
+"WHERE rid = 2;\n"
+"SELECt rid, ST_BandNoDataValue(rast)\n"
+"from dummy_rast where rid = 2;\n"
+"\n"
+"-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------------------------------\n"
+"MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 "
+"5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 "
+"5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 "
+"5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 "
+"5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),"
+"((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 "
+"5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 "
+"5793244,3427927.8 5793243.9,3427927.8 5793243.85,3427927.85 "
+"5793243.85,3427927.85 5793243.8,3427927.85 5793243.75,3427927.8 "
+"5793243.75)))\n"
+"\n"
+"-- Or if you want the no data value different for just one time\n"
+"\n"
+"SELECT ST_AsText(\n"
+"        ST_Polygon(\n"
+"                ST_SetBandNoDataValue(rast,1,252)\n"
+"                )\n"
+"        ) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid =2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------\n"
+"MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 "
+"5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 "
+"5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 "
+"5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 "
+"5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 "
+"5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 "
+"5793243.9,3427927.9 5793243.9)))"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9331
+#, no-c-format
+msgid "Raster Operators"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9334
+#, no-c-format
+msgid "&&"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9336
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding "
+"box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9340
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> "
+"</paramdef> <paramdef> <type>geometry </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>&"
+"&</function></funcdef> <paramdef> <type>geometry </type> <parameter>B</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>A</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9382
+#, no-c-format
+msgid ""
+"The <varname>&&</varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of raster/geometr A intersects the bounding box of "
+"raster/geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9384 reference_raster.xml:9636
+#: reference_raster.xml:10646 reference_raster.xml:10747
+#: reference_raster.xml:10840
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"rasters."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9393
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As "
+"intersect\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B LIMIT 3;\n"
+"\n"
+" a_rid | b_rid | intersect\n"
+"-------+-------+---------\n"
+"     2 |     2 | t\n"
+"     2 |     3 | f\n"
+"     2 |     1 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9399
+#, no-c-format
+msgid "&<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9401
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is to the left of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9406
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9427
+#, no-c-format
+msgid ""
+"The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of raster A overlaps or is to the left of the bounding box "
+"of raster B, or more accurately, overlaps or is NOT to the right of the "
+"bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9431 reference_raster.xml:9476
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9438
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast &< B.rast As overleft\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+"a_rid | b_rid | overleft\n"
+"------+-------+----------\n"
+"    2 |     2 | t\n"
+"    2 |     3 | f\n"
+"    2 |     1 | f\n"
+"    3 |     2 | t\n"
+"    3 |     3 | t\n"
+"    3 |     1 | f\n"
+"    1 |     2 | t\n"
+"    1 |     3 | t\n"
+"    1 |     1 | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9444
+#, no-c-format
+msgid "&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9446
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is to the right of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9451
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9472
+#, no-c-format
+msgid ""
+"The <varname>&></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of raster A overlaps or is to the right of the bounding box "
+"of raster B, or more accurately, overlaps or is NOT to the left of the "
+"bounding box of raster B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9483
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast &> B.rast As overright\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+" a_rid | b_rid | overright\n"
+"-------+-------+----------\n"
+"     2 |     2 | t\n"
+"     2 |     3 | t\n"
+"     2 |     1 | t\n"
+"     3 |     2 | f\n"
+"     3 |     3 | t\n"
+"     3 |     1 | f\n"
+"     1 |     2 | f\n"
+"     1 |     3 | t\n"
+"     1 |     1 | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9489
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9491
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9496
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>=</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9517
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B. "
+"PostgreSQL uses the =, <, and > operators defined for rasters to "
+"perform internal orderings and comparison of rasters (ie. in a GROUP BY or "
+"ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9521
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"rasters. Use <xref linkend=\"RT_Raster_Same\"/> instead. This operator "
+"exists mostly so one can group by the raster column."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9537
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9539
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's. "
+"Uses double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9543
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9586
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contained by bounding box of raster/"
+"geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9589 reference_raster.xml:9709
+#, no-c-format
+msgid "This operand will use spatial indexes on the rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9591
+#, no-c-format
+msgid "Availability: 2.0.0 raster @ raster, raster @ geometry introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9592
+#, no-c-format
+msgid "Availability: 2.0.5 geometry @ raster introduced"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9605
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9607
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9612
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9633
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9645
+#, no-c-format
+msgid ""
+"Very useful usecase is for taking two sets of single band rasters that are "
+"of the same chunk but represent different themes and creating a multi-band "
+"raster"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9646
+#, no-c-format
+msgid ""
+"SELECT ST_AddBand(prec.rast, alt.rast) As new_rast\n"
+"    FROM prec INNER JOIN alt ON (prec.rast ~= alt.rast);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9651
+#, no-c-format
+msgid ", <xref linkend=\"RT_Raster_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9657
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9659
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contains B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9663
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9706
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contains bounding box of raster/geometr "
+"B."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9724
+#, no-c-format
+msgid "Raster and Raster Band Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9728
+#, no-c-format
+msgid "ST_Contains"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9729
+#, no-c-format
+msgid ""
+"Return true if no points of raster rastB lie in the exterior of raster rastA "
+"and at least one point of the interior of rastB lies in the interior of "
+"rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9735
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Contains</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9774
+#, no-c-format
+msgid ""
+"Raster rastA contains rastB if and only if no points of rastB lie in the "
+"exterior of rastA and at least one point of the interior of rastB lies in "
+"the interior of rastA. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9779 reference_raster.xml:9872
+#: reference_raster.xml:9953 reference_raster.xml:10034
+#: reference_raster.xml:10244 reference_raster.xml:10328
+#: reference_raster.xml:10408
+#, no-c-format
+msgid ""
+"This function will make use of any indexes that may be available on the "
+"rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9785
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Contains(ST_Polygon(raster), geometry) or "
+"ST_Contains(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9791
+#, no-c-format
+msgid ""
+"ST_Contains() is the inverse of ST_Within(). So, ST_Contains(rastA, rastB) "
+"implies ST_Within(rastB, rastA)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9802
+#, no-c-format
+msgid ""
+"-- specified band numbers\n"
+"SELECT r1.rid, r2.rid, ST_Contains(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;\n"
+"\n"
+"NOTICE:  The first raster provided has no bands\n"
+" rid | rid | st_contains \n"
+"-----+-----+-------------\n"
+"   1 |   1 | \n"
+"   1 |   2 | f"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9804
+#, no-c-format
+msgid ""
+"-- no band numbers specified\n"
+"SELECT r1.rid, r2.rid, ST_Contains(r1.rast, r2.rast) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;\n"
+" rid | rid | st_contains \n"
+"-----+-----+-------------\n"
+"   1 |   1 | t\n"
+"   1 |   2 | f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9808
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9817
+#, no-c-format
+msgid "ST_ContainsProperly"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9818
+#, no-c-format
+msgid ""
+"Return true if rastB intersects the interior of rastA but not the boundary "
+"or exterior of rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9824
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_ContainsProperly</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_ContainsProperly</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </"
+"type> <parameter>rastB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9863
+#, no-c-format
+msgid ""
+"Raster rastA contains properly rastB if rastB intersects the interior of "
+"rastA but not the boundary or exterior of rastA. If the band number is not "
+"provided (or set to NULL), only the convex hull of the raster is considered "
+"in the test. If the band number is provided, only those pixels with value "
+"(not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9867
+#, no-c-format
+msgid "Raster rastA does not contain properly itself but does contain itself."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9878
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_ContainsProperly(ST_Polygon(raster), geometry) or "
+"ST_ContainsProperly(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9889
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_ContainsProperly(r1.rast, 1, r2.rast, 1) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_containsproperly \n"
+"-----+-----+---------------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9893
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Contains\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9902
+#, no-c-format
+msgid "ST_Covers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9903
+#, no-c-format
+msgid "Return true if no points of raster rastB lie outside raster rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9909
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9948
+#, no-c-format
+msgid ""
+"Raster rastA covers rastB if and only if no points of rastB lie in the "
+"exterior of rastA. If the band number is not provided (or set to NULL), only "
+"the convex hull of the raster is considered in the test. If the band number "
+"is provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9959
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Covers(ST_Polygon(raster), geometry) or "
+"ST_Covers(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9970
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Covers(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_covers \n"
+"-----+-----+-----------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9974
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_CoveredBy\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9983
+#, no-c-format
+msgid "ST_CoveredBy"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9984
+#, no-c-format
+msgid "Return true if no points of raster rastA lie outside raster rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9990
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10029
+#, no-c-format
+msgid ""
+"Raster rastA is covered by rastB if and only if no points of rastA lie in "
+"the exterior of rastB. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10040
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_CoveredBy(ST_Polygon(raster), geometry) or "
+"ST_CoveredBy(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10051
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_CoveredBy(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_coveredby \n"
+"-----+-----+--------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10055
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Covers\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10064
+#, no-c-format
+msgid "ST_Disjoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10065
+#, no-c-format
+msgid "Return true if raster rastA does not spatially intersect rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10071
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Disjoint</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Disjoint</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10110
+#, no-c-format
+msgid ""
+"Raster rastA and rastB are disjointed if they do not share any space "
+"together. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10115
+#, no-c-format
+msgid "This function does NOT use any indexes."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10121
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Disjoint(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10132
+#, no-c-format
+msgid ""
+"-- rid = 1 has no bands, hence the NOTICE and the NULL value for "
+"st_disjoint\n"
+"SELECT r1.rid, r2.rid, ST_Disjoint(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+"NOTICE:  The second raster provided has no bands\n"
+" rid | rid | st_disjoint \n"
+"-----+-----+-------------\n"
+"   2 |   1 | \n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10134
+#, no-c-format
+msgid ""
+"-- this time, without specifying band numbers\n"
+"SELECT r1.rid, r2.rid, ST_Disjoint(r1.rast, r2.rast) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_disjoint \n"
+"-----+-----+-------------\n"
+"   2 |   1 | t\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10147
+#, no-c-format
+msgid "ST_Intersects"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10148
+#, no-c-format
+msgid "Return true if raster rastA spatially intersects raster rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10152
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> </funcprototype> <funcprototype> "
+"<funcdef>boolean <function>ST_Intersects</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>rast</parameter> </paramdef> <paramdef> "
+"<type>integer </type> <parameter>nband</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>geommin</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Intersects</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rast</"
+"parameter> </paramdef> <paramdef> <type>geometry </type> <parameter>geommin</"
+"parameter> </paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry </type> <parameter>geommin</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10239
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially intersects raster rastB. If the band "
+"number is not provided (or set to NULL), only the convex hull of the raster "
+"is considered in the test. If the band number is provided, only those pixels "
+"with value (not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10249
+#, no-c-format
+msgid "Enhanced: 2.0.0 support raster/raster intersects was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10254
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 The behavior of the ST_Intersects(raster, geometry) variants "
+"changed to match that of ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10263
+#, no-c-format
+msgid ""
+"-- different bands of same raster\n"
+"SELECT ST_Intersects(rast, 2, rast, 3) FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" st_intersects \n"
+"---------------\n"
+" t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10268
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Disjoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10277
+#, no-c-format
+msgid "ST_Overlaps"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10278
+#, no-c-format
+msgid ""
+"Return true if raster rastA and rastB intersect but one does not completely "
+"contain the other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10284
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Overlaps</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10323
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially overlaps raster rastB. This means that "
+"rastA and rastB intersect but one does not completely contain the other. If "
+"the band number is not provided (or set to NULL), only the convex hull of "
+"the raster is considered in the test. If the band number is provided, only "
+"those pixels with value (not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10334
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Overlaps(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10345
+#, no-c-format
+msgid ""
+"-- comparing different bands of same raster\n"
+"SELECT ST_Overlaps(rast, 1, rast, 2) FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" st_overlaps \n"
+"-------------\n"
+" f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10357
+#, no-c-format
+msgid "ST_Touches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10358
+#, no-c-format
+msgid ""
+"Return true if raster rastA and rastB have at least one point in common but "
+"their interiors do not intersect."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10364
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Touches</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Touches</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10403
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially touches raster rastB. This means that "
+"rastA and rastB have at least one point in common but their interiors do not "
+"intersect. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10414
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Touches(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10425
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Touches(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_touches \n"
+"-----+-----+------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10437
+#, no-c-format
+msgid "ST_SameAlignment"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10439
+#, no-c-format
+msgid ""
+"Returns true if rasters have same skew, scale, spatial ref, and offset "
+"(pixels can be put on same grid without cutting into pixels) and false if "
+"they don't with notice detailing issue."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10443
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_SameAlignment</function></funcdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx1</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly1</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex1</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley1</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx1</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy1</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx2</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly2</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex2</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley2</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx2</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy2</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster set </type> <parameter>rastfield</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10522
+#, no-c-format
+msgid ""
+"Non-Aggregate version (Variants 1 and 2): Returns true if the two rasters "
+"(either provided directly or made using the values for upperleft, scale, "
+"skew and srid) have the same scale, skew, srid and at least one of any of "
+"the four corners of any pixel of one raster falls on any corner of the grid "
+"of the other raster. Returns false if they don't and a NOTICE detailing the "
+"alignment issue."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10526
+#, no-c-format
+msgid ""
+"Aggregate version (Variant 3): From a set of rasters, returns true if all "
+"rasters in the set are aligned. The ST_SameAlignment() function is an "
+"\"aggregate\" function in the terminology of PostgreSQL. That means that it "
+"operates on rows of data, in the same way the SUM() and AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10531
+#, no-c-format
+msgid "Enhanced: 2.1.0 addition of Aggegrate variant"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:10535
+#, no-c-format
+msgid "Examples: Rasters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10537
+#, no-c-format
+msgid ""
+"SELECT ST_SameAlignment(\n"
+"        ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"        ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0)\n"
+") as sm;\n"
+"\n"
+"sm\n"
+"----\n"
+"t"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10538
+#, no-c-format
+msgid ""
+"SELECT ST_SameAlignment(A.rast,b.rast)\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+" NOTICE:  The two rasters provided have different SRIDs\n"
+"NOTICE:  The two rasters provided have different SRIDs\n"
+" st_samealignment\n"
+"------------------\n"
+" t\n"
+" f\n"
+" f\n"
+" f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10542
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NotSameAlignmentReason\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10552
+#, no-c-format
+msgid "ST_NotSameAlignmentReason"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10553
+#, no-c-format
+msgid ""
+"<refpurpose>Returns text stating if rasters are aligned and if not aligned, "
+"a reason why.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:10558
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_NotSameAlignmentReason</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rastA</parameter></paramdef> "
+"<paramdef><type>raster </type><parameter>rastB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10568
+#, no-c-format
+msgid ""
+"<para>Returns text stating if rasters are aligned and if not aligned, a "
+"reason why.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10571
+#, no-c-format
+msgid ""
+"If there are several reasons why the rasters are not aligned, only one "
+"reason (the first test to fail) will be returned."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10581
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_SameAlignment(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        ),\n"
+"        ST_NotSameAlignmentReason(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        )\n"
+";\n"
+"\n"
+" st_samealignment |            st_notsamealignmentreason            \n"
+"------------------+-------------------------------------------------\n"
+" f                | The rasters have different scales on the X axis\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10586
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SameAlignment\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10595
+#, no-c-format
+msgid "ST_Within"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10596
+#, no-c-format
+msgid ""
+"Return true if no points of raster rastA lie in the exterior of raster rastB "
+"and at least one point of the interior of rastA lies in the interior of "
+"rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10602
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Within</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Within</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10641
+#, no-c-format
+msgid ""
+"Raster rastA is within rastB if and only if no points of rastA lie in the "
+"exterior of rastB and at least one point of the interior of rastA lies in "
+"the interior of rastB. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10652
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Within(ST_Polygon(raster), geometry) or "
+"ST_Within(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10658
+#, no-c-format
+msgid ""
+"ST_Within() is the inverse of ST_Contains(). So, ST_Within(rastA, rastB) "
+"implies ST_Contains(rastB, rastA)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10669
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Within(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_within \n"
+"-----+-----+-----------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10673
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Contains\"/>, <xref linkend=\"RT_ST_DWithin\"/>, "
+"<xref linkend=\"RT_ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10684
+#, no-c-format
+msgid "ST_DWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10685
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are within the specified distance of "
+"each other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10691
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>distance_of_srid</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> <paramdef> <type>double precision </"
+"type> <parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10738
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are within the specified distance of "
+"each other. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10742 reference_raster.xml:10835
+#, no-c-format
+msgid ""
+"The distance is specified in units defined by the spatial reference system "
+"of the rasters. For this function to make sense, the source rasters must "
+"both be of the same coordinate projection, having the same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10753
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_DWithin(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10764
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_DWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_dwithin \n"
+"-----+-----+------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10768
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10777
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10778
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are fully within the specified "
+"distance of each other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10784
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10831
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are fully within the specified "
+"distance of each other. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10846
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_DFullyWithin(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10857
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_DFullyWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_dfullywithin \n"
+"-----+-----+-----------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10861
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DWithin\"/>"
+msgstr ""
diff --git a/doc/po/es/reference_sfcgal.xml.po b/doc/po/es/reference_sfcgal.xml.po
new file mode 100644
index 0000000..747207f
--- /dev/null
+++ b/doc/po/es/reference_sfcgal.xml.po
@@ -0,0 +1,620 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: para
+#: reference_sfcgal.xml:5
+#, no-c-format
+msgid ""
+"SFCGAL is a C++ wrapper library around CGAL that provides advanced 2D and 3D "
+"functions. For robustness, geometry coordinates have an exact rational "
+"number representation."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:9
+#, no-c-format
+msgid ""
+"Installation instructions of the library can be found on SFCGAL home page "
+"<ulink url=\"http://www.sfcgal.org\">http://www.sfcgal.org</ulink>. To load "
+"the functions execute postgis/sfcgal.sql"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:15
+#, no-c-format
+msgid "SFCGAL Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:18
+#, no-c-format
+msgid "postgis_sfcgal_version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:20
+#, no-c-format
+msgid "Returns the version of SFCGAL in use"
+msgstr ""
+
+#. Tag: funcdef
+#: reference_sfcgal.xml:26
+#, no-c-format
+msgid "text <function>postgis_sfcgal_version</function>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:33 reference_sfcgal.xml:65 reference_sfcgal.xml:158
+#: reference_sfcgal.xml:218 reference_sfcgal.xml:247 reference_sfcgal.xml:276
+#: reference_sfcgal.xml:305 reference_sfcgal.xml:335 reference_sfcgal.xml:377
+#: reference_sfcgal.xml:405
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:35 reference_sfcgal.xml:67 reference_sfcgal.xml:160
+#: reference_sfcgal.xml:249 reference_sfcgal.xml:278 reference_sfcgal.xml:310
+#: reference_sfcgal.xml:337 reference_sfcgal.xml:379 reference_sfcgal.xml:407
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:36 reference_sfcgal.xml:68 reference_sfcgal.xml:161
+#: reference_sfcgal.xml:221 reference_sfcgal.xml:250 reference_sfcgal.xml:279
+#: reference_sfcgal.xml:311 reference_sfcgal.xml:338 reference_sfcgal.xml:380
+#: reference_sfcgal.xml:408
+#, no-c-format
+msgid "&sfcgal_required;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:37 reference_sfcgal.xml:69 reference_sfcgal.xml:162
+#: reference_sfcgal.xml:222 reference_sfcgal.xml:251 reference_sfcgal.xml:280
+#: reference_sfcgal.xml:312 reference_sfcgal.xml:339 reference_sfcgal.xml:381
+#: reference_sfcgal.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:38 reference_sfcgal.xml:70 reference_sfcgal.xml:163
+#: reference_sfcgal.xml:223 reference_sfcgal.xml:252 reference_sfcgal.xml:281
+#: reference_sfcgal.xml:340 reference_sfcgal.xml:382 reference_sfcgal.xml:410
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:39 reference_sfcgal.xml:71 reference_sfcgal.xml:164
+#: reference_sfcgal.xml:224 reference_sfcgal.xml:253 reference_sfcgal.xml:282
+#: reference_sfcgal.xml:341 reference_sfcgal.xml:383 reference_sfcgal.xml:411
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:47
+#, no-c-format
+msgid "ST_Extrude"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:49
+#, no-c-format
+msgid "Extrude a surface to a related volume"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:54
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Extrude</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>z</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:74 reference_sfcgal.xml:167 reference_sfcgal.xml:414
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:75
+#, no-c-format
+msgid ""
+"3D images were generated using the PostGIS <xref linkend=\"ST_AsX3D\"/> and "
+"rendering in HTML using <ulink url=\"http://www.x3dom.org\">X3Dom HTML "
+"Javascript redering library</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:82
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+"  50, 'quad_segs=2'),0,0,30);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:88
+#, no-c-format
+msgid "Original octagon formed from buffering point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:93
+#, no-c-format
+msgid ""
+"ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2'),0,0,30);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:99
+#, no-c-format
+msgid "Hexagon extruded 30 units along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:107
+#, no-c-format
+msgid "SELECT ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)')"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:113
+#, no-c-format
+msgid "Original linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Extrude(\n"
+" ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)'),0,0,10));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:124
+#, no-c-format
+msgid "LineString Extruded along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:134
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:143
+#, no-c-format
+msgid "ST_StraightSkeleton"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:145
+#, no-c-format
+msgid "Compute a straight skeleton from a geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:150
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:168
+#, no-c-format
+msgid ""
+"SELECT ST_StraightSkeleton(ST_GeomFromText('POLYGON (( 190 190, 10 190, 10 "
+"10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:179 reference_sfcgal.xml:453
+#, no-c-format
+msgid "Original polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:188
+#, no-c-format
+msgid "Straight Skeleton of polygon"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:203
+#, no-c-format
+msgid "ST_IsPlanar"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:205
+#, no-c-format
+msgid "Check if a surface is or not planar"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:210
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsPlanar</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:220
+#, no-c-format
+msgid ""
+"Availability: 2.2.0: This was documented in 2.1.0 but got accidentally left "
+"out in 2.1 release."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:232
+#, no-c-format
+msgid "ST_Orientation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:234
+#, no-c-format
+msgid "Determine surface orientation"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:239
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Orientation</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:261
+#, no-c-format
+msgid "ST_ForceLHR"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:263
+#, no-c-format
+msgid "Force LHR orientation"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:268
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:289
+#, no-c-format
+msgid "ST_MinkowskiSum"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:291
+#, no-c-format
+msgid "Performs Minkowski sum"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:296
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinkowskiSum</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:307
+#, no-c-format
+msgid ""
+"This function performs a 2D minkowski sum of a point, line or polygon with a "
+"polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:308
+#, no-c-format
+msgid ""
+"The first parameter can be any 2D geometry (point, linestring, polygon). If "
+"a 3D geometry is passed, it will be converted to 2D by forcing Z to 0, "
+"leading to possible cases of invalidity. The second parameter must be a 2D "
+"polygon."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:319
+#, no-c-format
+msgid "ST_3DIntersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:321
+#, no-c-format
+msgid "Perform 3D intersection"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:326
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DIntersection</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:345
+#, no-c-format
+msgid "Examples: 3D linestring and Polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:346
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(linestring, polygon)) As wkt\n"
+"FROM  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"              wkt\n"
+"--------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8)"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:348
+#, no-c-format
+msgid "Cube (closed Polyhedral Surface) and Polygon Z"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:349
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(\n"
+"                ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'), \n"
+"        'POLYGON Z ((0 0 0, 0 0 0.5, 0 0.5 0.5, 0 0.5 0, 0 0 0))'::geometry))"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:350
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),((0 0.5 0,0 0 0,0 0.5 0.5,0 0.5 0)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:352
+#, no-c-format
+msgid ""
+"Intersection of 2 solids that result in volumetric intersection is also a "
+"solid (ST_Dimension returns 3)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:353
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection( ST_Extrude(ST_Buffer('POINT(10 20)'::"
+"geometry,10,1),0,0,30),\n"
+" ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),2,0,10) ));"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:354
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE Z (((13.3333333333333 13.3333333333333 10,20 20 0,20 20 "
+"10,13.3333333333333 13.3333333333333 10)),\n"
+"         ((20 20 10,16.6666666666667 23.3333333333333 10,13.3333333333333 "
+"13.3333333333333 10,20 20 10)),\n"
+"         ((20 20 0,16.6666666666667 23.3333333333333 10,20 20 10,20 20 0)),\n"
+"         ((13.3333333333333 13.3333333333333 10,10 10 0,20 20 "
+"0,13.3333333333333 13.3333333333333 10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,12 28 10,13.3333333333333 "
+"13.3333333333333 10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((20 20 0,9.99999999999995 30 0,16.6666666666667 23.3333333333333 "
+"10,20 20 0)),\n"
+"         ((10 10 0,9.99999999999995 30 0,20 20 0,10 10 0)),"
+"((13.3333333333333 13.3333333333333 10,12 12 10,10 10 0,13.3333333333333 "
+"13.3333333333333 10)),\n"
+"         ((12 28 10,12 12 10,13.3333333333333 13.3333333333333 10,12 28 "
+"10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,9.99999999999995 30 0,12 28 "
+"10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((10 10 0,0 20 0,9.99999999999995 30 0,10 10 0)),\n"
+"         ((12 12 10,11 11 10,10 10 0,12 12 10)),((12 28 10,11 11 10,12 12 "
+"10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,11 29 10,12 28 10,9.99999999999995 30 0)),"
+"((0 20 0,2 20 10,9.99999999999995 30 0,0 20 0)),\n"
+"         ((10 10 0,2 20 10,0 20 0,10 10 0)),((11 11 10,2 20 10,10 10 0,11 11 "
+"10)),((12 28 10,11 29 10,11 11 10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,2 20 10,11 29 10,9.99999999999995 30 0)),"
+"((11 11 10,11 29 10,2 20 10,11 11 10)))"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:362
+#, no-c-format
+msgid "ST_3DArea"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:364
+#, no-c-format
+msgid "Computes area of 3D geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:369
+#, no-c-format
+msgid ""
+"<funcdef>float<function>ST_3DArea</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:390
+#, no-c-format
+msgid "ST_Tesselate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:392
+#, no-c-format
+msgid ""
+"Perform surface Tesselation of a polygon or polyhedralsurface and returns as "
+"a TIN or collection of TINS"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:397
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Tesselate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:406
+#, no-c-format
+msgid ""
+"Takes as input a surface such a MULTI(POLYGON) or POLYHEDRALSURFACE and "
+"returns a TIN representation via the process of tesselation using triangles."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:420
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )');"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:426
+#, no-c-format
+msgid "Original Cube"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:431
+#, no-c-format
+msgid ""
+"SELECT ST_Tesselate(ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:432
+#, no-c-format
+msgid "ST_AsText output:"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:433
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 1,0 1 1,0 0 0)),((0 1 0,0 0 0,0 1 1,0 1 0)),\n"
+"        ((0 0 0,0 1 0,1 1 0,0 0 0)),\n"
+"        ((1 0 0,0 0 0,1 1 0,1 0 0)),((0 0 1,1 0 0,1 0 1,0 0 1)),\n"
+"        ((0 0 1,0 0 0,1 0 0,0 0 1)),\n"
+"        ((1 1 0,1 1 1,1 0 1,1 1 0)),((1 0 0,1 1 0,1 0 1,1 0 0)),\n"
+"        ((0 1 0,0 1 1,1 1 1,0 1 0)),((1 1 0,0 1 0,1 1 1,1 1 0)),\n"
+"        ((0 1 1,1 0 1,1 1 1,0 1 1)),((0 1 1,0 0 1,1 0 1,0 1 1)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:439
+#, no-c-format
+msgid "Tesselated Cube with triangles colored"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:447
+#, no-c-format
+msgid ""
+"SELECT 'POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, "
+"10 190 ))'::geometry;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:458
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_Tesselate('POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 "
+"160, 120 190, 10 190 ))'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:460
+#, no-c-format
+msgid "ST_AsText output"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:461
+#, no-c-format
+msgid ""
+"TIN(((80 130,50 160,80 70,80 130)),((50 160,10 190,10 70,50 160)),\n"
+"         ((80 70,50 160,10 70,80 70)),((120 160,120 190,50 160,120 160)),\n"
+" ((120 190,10 190,50 160,120 190)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:467
+#, no-c-format
+msgid "Tesselated Polygon"
+msgstr ""
diff --git a/doc/po/es/reference_transaction.xml.po b/doc/po/es/reference_transaction.xml.po
new file mode 100644
index 0000000..2b9e2e9
--- /dev/null
+++ b/doc/po/es/reference_transaction.xml.po
@@ -0,0 +1,517 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Carlos Barrios <gbarrios at aaa.upv.es>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2014-04-29 12:16+0000\n"
+"Last-Translator: Carlos Barrios <gbarrios at aaa.upv.es>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reference_transaction.xml:3
+#, no-c-format
+msgid "Long Transactions Support"
+msgstr "Soporte para transacciones grandes"
+
+#. Tag: para
+#: reference_transaction.xml:5
+#, no-c-format
+msgid ""
+"This module and associated pl/pgsql functions have been implemented to "
+"provide long locking support required by <ulink url=\"http://www."
+"opengeospatial.org/standards/wfs\">Web Feature Service</ulink> specification."
+msgstr ""
+"Este módulo y las funciones asociadas pl/pgsql se han implementado para "
+"proporcionar soporte a bloqueos extensos que son requeridos por la "
+"especificación <ulink url=\"http://www.opengeospatial.org/standards/wfs"
+"\">Web Feature Service</ulink>"
+
+#. Tag: para
+#: reference_transaction.xml:10
+#, no-c-format
+msgid ""
+"Users must use <ulink url=\"http://www.postgresql.org/docs/current/static/"
+"transaction-iso.html\">serializable transaction level</ulink> otherwise "
+"locking mechanism would break."
+msgstr ""
+"Los usuarios deben usar <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/transaction-iso.html\">el nivel de transacción en serie</ulink> sino "
+"se rompería el mecanismo de bloqueo."
+
+#. Tag: refname
+#: reference_transaction.xml:18
+#, no-c-format
+msgid "AddAuth"
+msgstr "AddAuth"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:20
+#, no-c-format
+msgid ""
+"<refpurpose>Add an authorization token to be used in current transaction.</"
+"refpurpose>"
+msgstr ""
+"<refpurpose>Agrega un testigo de autorización para usarlo en la transacción "
+"actual.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_transaction.xml:25
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>AddAuth</function></funcdef> <paramdef><type>text "
+"</type> <parameter>auth_token</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>AddAuth</function></funcdef> <paramdef><type>text "
+"</type> <parameter>auth_token</parameter></paramdef>"
+
+#. Tag: title
+#: reference_transaction.xml:33 reference_transaction.xml:83
+#: reference_transaction.xml:130 reference_transaction.xml:177
+#: reference_transaction.xml:241 reference_transaction.xml:284
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: para
+#: reference_transaction.xml:35
+#, no-c-format
+msgid ""
+"<para>Add an authorization token to be used in current transaction.</para>"
+msgstr ""
+"<para>Agrega un testigo de autorización para usarlo en la transacción actual."
+"</para>"
+
+#. Tag: para
+#: reference_transaction.xml:37
+#, no-c-format
+msgid ""
+"Creates/adds to a temp table called temp_lock_have_table the current "
+"transaction identifier and authorization token key."
+msgstr ""
+"Crea/agrega a una tabla temporal llamada temp_lock_have_table el "
+"identificador de la transacción actual y la clave del testigo de "
+"autorización."
+
+#. Tag: para
+#: reference_transaction.xml:40 reference_transaction.xml:92
+#: reference_transaction.xml:138 reference_transaction.xml:185
+#: reference_transaction.xml:248 reference_transaction.xml:289
+#, no-c-format
+msgid "Availability: 1.1.3"
+msgstr "Disponibilidad: 1.1.3"
+
+#. Tag: title
+#: reference_transaction.xml:45 reference_transaction.xml:98
+#: reference_transaction.xml:144 reference_transaction.xml:191
+#: reference_transaction.xml:253 reference_transaction.xml:294
+#, no-c-format
+msgid "Examples"
+msgstr "Ejemplos"
+
+#. Tag: programlisting
+#: reference_transaction.xml:47
+#, no-c-format
+msgid ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                BEGIN TRANSACTION;\n"
+"                        SELECT AddAuth('joey');\n"
+"                        UPDATE towns SET the_geom = "
+"ST_Translate(the_geom,2,2) WHERE gid = 353;\n"
+"                COMMIT;\n"
+"\n"
+"\n"
+"                ---Error--\n"
+"                ERROR:  UPDATE where \"gid\" = '353' requires authorization "
+"'priscilla'"
+msgstr ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                BEGIN TRANSACTION;\n"
+"                        SELECT AddAuth('joey');\n"
+"                        UPDATE towns SET the_geom = "
+"ST_Translate(the_geom,2,2) WHERE gid = 353;\n"
+"                COMMIT;\n"
+"\n"
+"\n"
+"                ---Error--\n"
+"                ERROR:  UPDATE where \"gid\" = '353' requiere la "
+"autorización 'priscilla'"
+
+#. Tag: title
+#: reference_transaction.xml:52 reference_transaction.xml:105
+#: reference_transaction.xml:151 reference_transaction.xml:198
+#: reference_transaction.xml:260 reference_transaction.xml:301
+#, no-c-format
+msgid "See Also"
+msgstr "Ver también"
+
+#. Tag: refname
+#: reference_transaction.xml:60
+#, no-c-format
+msgid "CheckAuth"
+msgstr "CheckAuth"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:62
+#, no-c-format
+msgid ""
+"Creates trigger on a table to prevent/allow updates and deletes of rows "
+"based on authorization token."
+msgstr ""
+"Crea un disparador sobre una tabla para prevenir/permitir actualizaciones y "
+"borrados de filas basados en el testigo de autorización."
+
+#. Tag: funcsynopsis
+#: reference_transaction.xml:66
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>CheckAuth</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_key_column_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CheckAuth</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_key_column_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>integer <function>CheckAuth</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_key_column_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CheckAuth</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_key_column_name</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_transaction.xml:85
+#, no-c-format
+msgid ""
+"Creates trigger on a table to prevent/allow updates and deletes of rows "
+"based on authorization token. Identify rows using <rowid_col> column."
+msgstr ""
+"Crea un disparador sobre una tabla para prevenir/permitir actualizaciones y "
+"borrado de filas basado en el testigo de autorizaciones. Identifica filas "
+"usando la columna <rowid_col> ."
+
+#. Tag: para
+#: reference_transaction.xml:87
+#, no-c-format
+msgid ""
+"If a_schema_name is not passed in, then searches for table in current schema."
+msgstr ""
+"Si no se le pasa un nombre de esquema, a_schema_name, busca la tabla en el "
+"esquema actual."
+
+#. Tag: para
+#: reference_transaction.xml:88
+#, no-c-format
+msgid ""
+"If an authorization trigger already exists on this table function errors."
+msgstr ""
+"Si ya existe un disparador de autorización sobre esta tabla la función da "
+"error."
+
+#. Tag: para
+#: reference_transaction.xml:89
+#, no-c-format
+msgid "If Transaction support is not enabled, function throws an exception."
+msgstr ""
+"Si no está habilitado el soporte de transacciones, la función lanza una "
+"excepción."
+
+#. Tag: programlisting
+#: reference_transaction.xml:100
+#, no-c-format
+msgid ""
+"SELECT CheckAuth('public', 'towns', 'gid');\n"
+"                        result\n"
+"                        ------\n"
+"                        0"
+msgstr ""
+"SELECT CheckAuth('public', 'towns', 'gid');\n"
+"                        result\n"
+"                        ------\n"
+"                        0"
+
+#. Tag: refname
+#: reference_transaction.xml:113
+#, no-c-format
+msgid "DisableLongTransactions"
+msgstr "DisableLongTransactions"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:115
+#, no-c-format
+msgid ""
+"<refpurpose>Disable long transaction support. This function removes the long "
+"transaction support metadata tables, and drops all triggers attached to lock-"
+"checked tables.</refpurpose>"
+msgstr ""
+"<refpurpose>Deshabilita el soporte de transacciones grandes. Esta función "
+"elimina las tablas de metadatos para soporte de transacciones grandes, y "
+"borra todos los disparadores vinculados a las tablas de comprobación de "
+"bloqueos.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_transaction.xml:122
+#, no-c-format
+msgid ""
+"<funcdef>text <function>DisableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>DisableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_transaction.xml:132
+#, no-c-format
+msgid ""
+"<para>Disable long transaction support. This function removes the long "
+"transaction support metadata tables, and drops all triggers attached to lock-"
+"checked tables.</para>"
+msgstr ""
+"<para>Deshabilita el soporte de transacciones grandes. Esta función elimina "
+"las tablas de metadatos para soporte de transacciones grandes, y borra todos "
+"los disparadores vinculados a las tablas de comprobación de bloqueos.</para>"
+
+#. Tag: para
+#: reference_transaction.xml:135
+#, no-c-format
+msgid ""
+"Drops meta table called <varname>authorization_table</varname> and a view "
+"called <varname>authorized_tables</varname> and all triggers called "
+"<varname>checkauthtrigger</varname>"
+msgstr ""
+"Elimina la meta tabla llamada <varname>authorization_table</varname> y una "
+"vista llamada <varname>authorized_tables</varname> y todos los disparadores "
+"llamados <varname>checkauthtrigger</varname>"
+
+#. Tag: programlisting
+#: reference_transaction.xml:146
+#, no-c-format
+msgid ""
+"SELECT DisableLongTransactions();\n"
+"--result--\n"
+"Long transactions support disabled"
+msgstr ""
+"SELECT DisableLongTransactions();\n"
+"--result--\n"
+"Soporte de transacciones grandes deshabilitado"
+
+#. Tag: refname
+#: reference_transaction.xml:159
+#, no-c-format
+msgid "EnableLongTransactions"
+msgstr "EnableLongTransactions"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:161
+#, no-c-format
+msgid ""
+"<refpurpose>Enable long transaction support. This function creates the "
+"required metadata tables, needs to be called once before using the other "
+"functions in this section. Calling it twice is harmless.</refpurpose>"
+msgstr ""
+"<refpurpose>Habilita el soporte de transacciones grandes. Esta función crea "
+"las tablas de metadatos requeridas, necesita ser llamada una vez antes de "
+"usar las otras funciones en esta sección. Llamarla más de una vez no produce "
+"problemas.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_transaction.xml:169
+#, no-c-format
+msgid ""
+"<funcdef>text <function>EnableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>EnableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_transaction.xml:179
+#, no-c-format
+msgid ""
+"<para>Enable long transaction support. This function creates the required "
+"metadata tables, needs to be called once before using the other functions in "
+"this section. Calling it twice is harmless.</para>"
+msgstr ""
+"<para>Habilita el soporte de transacciones grandes. Esta función crea las "
+"tablas de metadatos requeridas, necesita ser llamada una vez antes de usar "
+"las otras funciones en esta sección. Llamarla más de una vez no produce "
+"problemas.</para>"
+
+#. Tag: para
+#: reference_transaction.xml:183
+#, no-c-format
+msgid ""
+"Creates a meta table called <varname>authorization_table</varname> and a "
+"view called <varname>authorized_tables</varname>"
+msgstr ""
+"Crea una meta tabla llamada <varname>authorization_table</varname> y una "
+"vista llamada <varname>authorized_tables</varname>"
+
+#. Tag: programlisting
+#: reference_transaction.xml:193
+#, no-c-format
+msgid ""
+"SELECT EnableLongTransactions();\n"
+"--result--\n"
+"Long transactions support enabled"
+msgstr ""
+"SELECT EnableLongTransactions();\n"
+"--result--\n"
+"Soporte para transacciones grandes habilitado"
+
+#. Tag: refname
+#: reference_transaction.xml:206
+#, no-c-format
+msgid "LockRow"
+msgstr "LockRow"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:208
+#, no-c-format
+msgid "Set lock/authorization for specific row in table"
+msgstr "Configura el bloqueo/autorización para una fila específica de la tabla"
+
+#. Tag: funcsynopsis
+#: reference_transaction.xml:212
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>LockRow</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_row_key</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>an_auth_token</parameter></paramdef> "
+"<paramdef><type>timestamp</type> <parameter>expire_dt</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>integer <function>LockRow</"
+"function></funcdef> <paramdef><type>text </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>a_row_key</"
+"parameter></paramdef> <paramdef><type>text</type> <parameter>an_auth_token</"
+"parameter></paramdef> <paramdef><type>timestamp</type> <parameter>expire_dt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>LockRow</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_row_key</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>an_auth_token</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>integer <function>LockRow</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_row_key</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>an_auth_token</parameter></paramdef> "
+"<paramdef><type>timestamp</type> <parameter>expire_dt</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>integer <function>LockRow</"
+"function></funcdef> <paramdef><type>text </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>a_row_key</"
+"parameter></paramdef> <paramdef><type>text</type> <parameter>an_auth_token</"
+"parameter></paramdef> <paramdef><type>timestamp</type> <parameter>expire_dt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>LockRow</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_row_key</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>an_auth_token</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_transaction.xml:243
+#, no-c-format
+msgid ""
+"Set lock/authorization for specific row in table <authid> is a text "
+"value, <expires> is a timestamp defaulting to now()+1hour. Returns 1 "
+"if lock has been assigned, 0 otherwise (already locked by other auth)"
+msgstr ""
+"Configura el bloqueo/autorización para una fila específica de la tabla <"
+"authid> es un valor de texto, <expires> es un valor de tiempo que "
+"por defecto es now()+1hora. Devuelve 1 si se asignó el bloqueo, 0 en otro "
+"caso (ya bloqueado por otra autorización)"
+
+#. Tag: programlisting
+#: reference_transaction.xml:255
+#, no-c-format
+msgid ""
+"SELECT LockRow('public', 'towns', '2', 'joey');\n"
+"LockRow\n"
+"-------\n"
+"1\n"
+"\n"
+"--Joey has already locked the record and Priscilla is out of luck\n"
+"SELECT LockRow('public', 'towns', '2', 'priscilla');\n"
+"LockRow\n"
+"-------\n"
+"0"
+msgstr ""
+"SELECT LockRow('public', 'towns', '2', 'joey');\n"
+"LockRow\n"
+"-------\n"
+"1\n"
+"\n"
+"--Joey ya ha bloqueado el registro y Priscilla no tiene suerte\n"
+"SELECT LockRow('public', 'towns', '2', 'priscilla');\n"
+"LockRow\n"
+"-------\n"
+"0"
+
+#. Tag: refname
+#: reference_transaction.xml:268
+#, no-c-format
+msgid "UnlockRows"
+msgstr "UnlockRows"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:270
+#, no-c-format
+msgid ""
+"<refpurpose>Remove all locks held by specified authorization id. Returns the "
+"number of locks released.</refpurpose>"
+msgstr ""
+"<refpurpose>Retira todos los bloqueos mantenidos por el id de la "
+"autorización especificada. Devuelve el número de bloqueos liberados.</"
+"refpurpose>"
+
+#. Tag: funcprototype
+#: reference_transaction.xml:276
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>UnlockRows</function></funcdef> "
+"<paramdef><type>text </type> <parameter>auth_token</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>UnlockRows</function></funcdef> "
+"<paramdef><type>text </type> <parameter>auth_token</parameter></paramdef>"
+
+#. Tag: para
+#: reference_transaction.xml:286
+#, no-c-format
+msgid ""
+"<para>Remove all locks held by specified authorization id. Returns the "
+"number of locks released.</para>"
+msgstr ""
+"<para>Retira todos los bloqueos mantenidos por el id de la autorización "
+"especificada. Devuelve el número de bloqueos liberados.</para>"
+
+#. Tag: programlisting
+#: reference_transaction.xml:296
+#, no-c-format
+msgid ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                SELECT LockRow('towns', '2', 'priscilla');\n"
+"                SELECT UnLockRows('priscilla');\n"
+"                UnLockRows\n"
+"                ------------\n"
+"                2"
+msgstr ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                SELECT LockRow('towns', '2', 'priscilla');\n"
+"                SELECT UnLockRows('priscilla');\n"
+"                UnLockRows\n"
+"                ------------\n"
+"                2"
diff --git a/doc/po/es/reference_type.xml.po b/doc/po/es/reference_type.xml.po
new file mode 100644
index 0000000..0907520
--- /dev/null
+++ b/doc/po/es/reference_type.xml.po
@@ -0,0 +1,327 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# rveciana <rveciana at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 21:04+0000\n"
+"PO-Revision-Date: 2013-12-27 11:14+0000\n"
+"Last-Translator: rveciana <rveciana at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: para
+#: reference_type.xml:5
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by PostGIS. Note we "
+"describe the casting behavior of these which is very important especially "
+"when designing your own functions."
+msgstr ""
+"Esta sección detalla los tipos de dato de PostgreSQL instalados por PostGIS. "
+"Note que describimos el comportamiento de la conversión de tipos en los "
+"casos en los que es muy importante, especialmente cuando se diseñe sis "
+"propias funciones."
+
+#. Tag: para
+#: reference_type.xml:8
+#, no-c-format
+msgid ""
+"A Cast is when one type is coerced into another type. PostgreSQL is unique "
+"from most databases in that it allows you to define casting behavior for "
+"custom types and the functions used for casting. A cast can be specified as "
+"automatic in which case, you do not have to do a CAST(myfoo As otherfootype) "
+"or myfoo::otherfootype if you are feeding it to a function that only works "
+"with otherfootype and there is an automatic cast in place for it."
+msgstr ""
+"Cast es la conversión forzada de un tipo a otro. PostgreSQL se diferencia de "
+"la mayoría de base de datos em que permite defnir el comportamiento de la "
+"conversión de tipos de datos i las funciones usadas para ello. Un cast se "
+"puede especificar como automático, caso en el que no hace falta llamar "
+"CAST(myfoo as otherfootype) o myfoo::otherfootype si se está pasando a una "
+"función que solo  acepta otherfootype como parámetro, en el caso en que haya "
+"un cast automático para hacerlo."
+
+#. Tag: para
+#: reference_type.xml:13
+#, no-c-format
+msgid ""
+"The danger of relying on automatic cast behavior is when you have an "
+"overloaded function say one that takes a box2d and one that takes a box3d "
+"but no geometry. What happens is that both functions are equally good to use "
+"with geometry since geometry has an autocast for both -- so you end up with "
+"an ambiguous function error. To force PostgreSQL to choose, you do a "
+"CAST(mygeom As box3d) or mygeom::box3d."
+msgstr ""
+"El peligro de confiar en la conversión de tipo automática es cuando hay una "
+"función que usa sobrecarga que coja, por ejemplo, un box2d en un caso y un "
+"box3d sin geometría en otro. Lo que pasa en este caso es que las dos "
+"funciones son igualmente buenas para usar con un tipo geometry, ya que "
+"geometry tiene autocast para los dos, por lo que se devuelve un error de "
+"función ambigua. Para forzar PostgreSQL a escoger, hay que llamar "
+"CAST(mygeom As box3d) o mygeom::box3d."
+
+#. Tag: para
+#: reference_type.xml:17
+#, no-c-format
+msgid ""
+"<emphasis>At least as of PostgreSQL 8.3</emphasis> - Everything can be CAST "
+"to text (presumably because of the magical unknown type), so no defined "
+"CASTS for that need to be present for you to CAST an object to text."
+msgstr ""
+"<emphasis>Desde la versión PostgreSQL 8.3</emphasis> - Todo puede ser "
+"convertido a texto (presumiblemente debido al tipo mágico unknown), por lo "
+"que no hay necesidad de un CAST definido para convertir un objeto a texto."
+
+#. Tag: title
+#: reference_type.xml:20
+#, no-c-format
+msgid "PostgreSQL PostGIS Geometry/Geography/Box Types"
+msgstr "Tipos Geometry/Geography/Box en PostgreSQL PostGIS"
+
+#. Tag: refname
+#: reference_type.xml:24
+#, no-c-format
+msgid "<refname>box2d</refname>"
+msgstr "<refname>box2d</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:25
+#, no-c-format
+msgid ""
+"A box composed of x min, ymin, xmax, ymax. Often used to return the 2d "
+"enclosing box of a geometry."
+msgstr ""
+"Una caja compuesta por xmin, ymin, xmax, ymax. Usada a menudo para devolver "
+"la caja 2d que contiene una geometría."
+
+#. Tag: title
+#: reference_type.xml:29 reference_type.xml:40 reference_type.xml:79
+#: reference_type.xml:136 reference_type.xml:155
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: para
+#: reference_type.xml:30
+#, no-c-format
+msgid ""
+"box2d is a spatial data type used to represent the enclosing box of a "
+"geometry or set of geometries. ST_Extent in earlier versions prior to "
+"PostGIS 1.4 would return a box2d."
+msgstr ""
+"box2d es un tipo de dato espacial usado para representar la caja que "
+"contiene una geometría o un grupo de geometrías. En versiones anteriores a "
+"PostGIS 1.4, ST_Extent devolvía un objeto box2d."
+
+#. Tag: refname
+#: reference_type.xml:35
+#, no-c-format
+msgid "<refname>box3d</refname>"
+msgstr "<refname>box3d</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:36
+#, no-c-format
+msgid ""
+"A box composed of x min, ymin, zmin, xmax, ymax, zmax. Often used to return "
+"the 3d extent of a geometry or collection of geometries."
+msgstr ""
+"Una caja compuesta por xmin, ymin, zmin, xmax, ymax, zmax. Usada "
+"habitualmente para devolver la extensión 3d de una geometría o grupo de "
+"geometrías."
+
+#. Tag: para
+#: reference_type.xml:41
+#, no-c-format
+msgid ""
+"box3d is a postgis spatial data type used to represent the enclosing box of "
+"a geometry or set of geometries. ST_3DExtent returns a box3d object."
+msgstr ""
+"box3d es un tipo de dato espacial usado para representar la caja que "
+"contiene una geometría o un grupo de geometrías. ST_3DExtent devuelve un "
+"objecto box3d."
+
+#. Tag: title
+#: reference_type.xml:45 reference_type.xml:84 reference_type.xml:160
+#, no-c-format
+msgid "Casting Behavior"
+msgstr "Comportamiento de la conversión de tipo de dato"
+
+#. Tag: para
+#: reference_type.xml:46 reference_type.xml:85 reference_type.xml:161
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+"Esta sección detalla los cambios de tipo automáticos y explícitos permitidos "
+"para este tipo de dato"
+
+#. Tag: entry
+#: reference_type.xml:51 reference_type.xml:90 reference_type.xml:166
+#, no-c-format
+msgid "Cast To"
+msgstr "Convertir a"
+
+#. Tag: entry
+#: reference_type.xml:52 reference_type.xml:91 reference_type.xml:167
+#, no-c-format
+msgid "Behavior"
+msgstr "Comportamiento"
+
+#. Tag: entry
+#: reference_type.xml:55 reference_type.xml:94
+#, no-c-format
+msgid "<entry>box</entry>"
+msgstr "<entry>box</entry>"
+
+#. Tag: entry
+#: reference_type.xml:56 reference_type.xml:60 reference_type.xml:64
+#: reference_type.xml:95 reference_type.xml:99 reference_type.xml:103
+#: reference_type.xml:107 reference_type.xml:111 reference_type.xml:115
+#, no-c-format
+msgid "automatic"
+msgstr "automatic"
+
+#. Tag: entry
+#: reference_type.xml:59 reference_type.xml:98
+#, no-c-format
+msgid "<entry>box2d</entry>"
+msgstr "<entry>box2d</entry>"
+
+#. Tag: entry
+#: reference_type.xml:63 reference_type.xml:170
+#, no-c-format
+msgid "<entry>geometry</entry>"
+msgstr "<entry>geometry</entry>"
+
+#. Tag: refname
+#: reference_type.xml:74
+#, no-c-format
+msgid "<refname>geometry</refname>"
+msgstr "<refname>geometry</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:75
+#, no-c-format
+msgid "Planar spatial data type."
+msgstr "Tipo de dato espacial planar"
+
+#. Tag: para
+#: reference_type.xml:80
+#, no-c-format
+msgid ""
+"geometry is a fundamental postgis spatial data type used to represent a "
+"feature in the Euclidean coordinate system."
+msgstr ""
+"geometry es un tipo de datos postgis fundamental, usado para representar una "
+"feature en un sistema de coordenadas euclidiano."
+
+#. Tag: entry
+#: reference_type.xml:102
+#, no-c-format
+msgid "<entry>box3d</entry>"
+msgstr "<entry>box3d</entry>"
+
+#. Tag: entry
+#: reference_type.xml:106
+#, no-c-format
+msgid "bytea"
+msgstr "bytea"
+
+#. Tag: entry
+#: reference_type.xml:110
+#, no-c-format
+msgid "<entry>geography</entry>"
+msgstr "<entry>geography</entry>"
+
+#. Tag: entry
+#: reference_type.xml:114
+#, no-c-format
+msgid "text"
+msgstr "text"
+
+#. Tag: title
+#: reference_type.xml:123 reference_type.xml:143 reference_type.xml:179
+#, no-c-format
+msgid "See Also"
+msgstr "Vea también"
+
+#. Tag: refname
+#: reference_type.xml:130
+#, no-c-format
+msgid "geometry_dump"
+msgstr "geometry_dump"
+
+#. Tag: refpurpose
+#: reference_type.xml:131
+#, no-c-format
+msgid ""
+"A spatial datatype with two fields - geom (holding a geometry object) and "
+"path[] (a 1-d array holding the position of the geometry within the dumped "
+"object.)"
+msgstr ""
+"Un tipo de datos espacial con dos campos: geom (que contiene el objeto "
+"geometry) y path[] (un array 1-d que contiene la posición de la geometría "
+"dentro el objeto volcado)."
+
+#. Tag: para
+#: reference_type.xml:137
+#, no-c-format
+msgid ""
+"geometry_dump is a compound data type consisting of a geometry object "
+"referenced by the .geom field and path[] a 1-dimensional integer array "
+"(starting at 1 e.g. path[1] to get first element) array that defines the "
+"navigation path within the dumped geometry to find this element. It is used "
+"by the ST_Dump* family of functions as an output type to explode a more "
+"complex geometry into its constituent parts and location of parts."
+msgstr ""
+"geometry_dump es un tipo de datos compuesto, que consiste en un objeto "
+"geometry referenciado por el campo .geom y path[], un array 1-dimensional de "
+"integers (que empeza por el elemento 1. path[1] contiene el primer "
+"elemento). Este array define el camino de navegación en la geometría volcada "
+"para encontrar el elemento. Es usado por la familia de funciones ST_Dump* "
+"como tipo de salida para separar un tipo de geometría complejo en las partes "
+"que la componen y su localización."
+
+#. Tag: refname
+#: reference_type.xml:150
+#, no-c-format
+msgid "<refname>geography</refname>"
+msgstr "<refname>geography</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:151
+#, no-c-format
+msgid "Ellipsoidal spatial data type."
+msgstr "Tipo de dato espacial elipsoidal"
+
+#. Tag: para
+#: reference_type.xml:156
+#, no-c-format
+msgid ""
+"geography is a spatial data type used to represent a feature in the round-"
+"earth coordinate system."
+msgstr ""
+"geography es un tipo de dato espacial usado para representar una feature en "
+"un sistema de coordenadas de Tierra esférica."
+
+#. Tag: entry
+#: reference_type.xml:171
+#, no-c-format
+msgid "explicit"
+msgstr "explicit"
+
+#. Tag: para
+#: reference_type.xml:180
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_Geography\"/>"
+msgstr ", <xref linkend=\"PostGIS_Geography\"/>"
diff --git a/doc/po/es/release_notes.xml.po b/doc/po/es/release_notes.xml.po
new file mode 100644
index 0000000..a896f60
--- /dev/null
+++ b/doc/po/es/release_notes.xml.po
@@ -0,0 +1,6523 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 13:48+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: release_notes.xml:3
+#, no-c-format
+msgid "Appendix"
+msgstr ""
+
+#. Tag: subtitle
+#: release_notes.xml:4
+#, no-c-format
+msgid "Release Notes"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:6
+#, no-c-format
+msgid "Release 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:7
+#, no-c-format
+msgid "Release date: YYYY/MM/DD"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:11
+#, no-c-format
+msgid "Release 2.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:12
+#, no-c-format
+msgid "Release date: 2014-09-10"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:13
+#, no-c-format
+msgid "This is a bug fix and performance improvement release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:15 release_notes.xml:124 release_notes.xml:152
+#: release_notes.xml:271 release_notes.xml:449 release_notes.xml:477
+#: release_notes.xml:536 release_notes.xml:598 release_notes.xml:688
+#: release_notes.xml:889 release_notes.xml:944
+#, no-c-format
+msgid "Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:16
+#, no-c-format
+msgid "#2745, Speedup ST_Simplify calls against points"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:17
+#, no-c-format
+msgid "#2747, Support for GDAL 2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:18
+#, no-c-format
+msgid "#2749, Make rtpostgis_upgrade_20_21.sql ACID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:19
+#, no-c-format
+msgid "#2811, Do not specify index names when loading shapefiles/rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:20
+#, no-c-format
+msgid ""
+"#2829, Shortcut ST_Clip(raster) if geometry fully contains the raster and no "
+"NODATA specified"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:22
+#, no-c-format
+msgid ""
+"#2895, Raise cost of ST_ConvexHull(raster) to 300 for better query plans"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:26 release_notes.xml:87 release_notes.xml:98
+#: release_notes.xml:139 release_notes.xml:395 release_notes.xml:421
+#: release_notes.xml:463 release_notes.xml:487 release_notes.xml:550
+#: release_notes.xml:705 release_notes.xml:719 release_notes.xml:757
+#: release_notes.xml:795 release_notes.xml:826
+#, no-c-format
+msgid "Bug Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:27
+#, no-c-format
+msgid "#2605, armel: _ST_Covers() returns true for point in hole"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:28
+#, no-c-format
+msgid ""
+"#2911, Fix output scale on ST_Rescale/ST_Resample/ST_Resize of rasters with "
+"scale 1/-1 and offset 0/0."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:30
+#, no-c-format
+msgid "Fix crash in ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:31
+#, no-c-format
+msgid ""
+"#2704, ST_GeomFromGML() does not work properly with array of gml:pos (Even "
+"Roualt)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:33
+#, no-c-format
+msgid ""
+"#2708, updategeometrysrid doesn't update srid check when schema not "
+"specified. Patch from Marc Jansen"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:35
+#, no-c-format
+msgid "#2720, lwpoly_add_ring should update maxrings after realloc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:36
+#, no-c-format
+msgid ""
+"#2759, Fix postgis_restore.pl handling of multiline object comments "
+"embedding sql comments"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:38
+#, no-c-format
+msgid ""
+"#2774, fix undefined behavior in ptarray_calculate_gbox_geodetic - Fix "
+"potential memory fault in ST_MakeValid"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:40
+#, no-c-format
+msgid "#2784, Fix handling of bogus argument to --with-sfcgal"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:41
+#, no-c-format
+msgid "#2772, Premature memory free in RASTER_getBandPath (ST_BandPath)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:42
+#, no-c-format
+msgid "#2755, Fix regressions tests against all versions of SFCGAL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:43
+#, no-c-format
+msgid "#2775, lwline_from_lwmpoint leaks memory"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:44
+#, no-c-format
+msgid "#2802, ST_MapAlgebra checks for valid callback function return value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:45
+#, no-c-format
+msgid "#2803, ST_MapAlgebra handles no userarg and STRICT callback function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:46
+#, no-c-format
+msgid "#2834, ST_Estimated_Extent and mixedCase table names (regression bug)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:47
+#, no-c-format
+msgid "#2845, Bad geometry created from ST_AddPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:48
+#, no-c-format
+msgid ""
+"#2870, Binary insert into geography column results geometry being inserted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:49
+#, no-c-format
+msgid "#2872, make install builds documentation (Greg Troxell)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:50
+#, no-c-format
+msgid "#2819, find isfinite or replacement on Centos5 / Solaris"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:51
+#, no-c-format
+msgid "#2899, geocode limit 1 not returning best answer (tiger geocoder)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:52
+#, no-c-format
+msgid "#2903, Unable to compile on FreeBSD"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:53
+#, no-c-format
+msgid ""
+"#2927 reverse_geocode not filling in direction prefix (tiger geocoder) get "
+"rid of deprecated ST_Line_Locate_Point called"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:59
+#, no-c-format
+msgid "Release 2.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:60
+#, no-c-format
+msgid "Release date: 2014/05/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:61
+#, no-c-format
+msgid "This is a bug fix and security release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:63
+#, no-c-format
+msgid "Important changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:64
+#, no-c-format
+msgid ""
+"Starting with this version offline raster access and use of GDAL drivers are "
+"disabled by default."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:69
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling specific GDAL "
+"drivers: POSTGIS_GDAL_ENABLED_DRIVERS. By default, all GDAL drivers are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:75
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling out-db raster "
+"bands: POSTGIS_ENABLE_OUTDB_RASTERS. By default, out-db raster bands are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:81
+#, no-c-format
+msgid ""
+"The environment variables must be set for the PostgreSQL process, and "
+"determines the behavior of the whole cluster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:88
+#, no-c-format
+msgid "#2697, invalid GeoJSON Polygon input crashes server process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:89
+#, no-c-format
+msgid "#2700, Fix dumping of higher-dimension datasets with null rows"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:90
+#, no-c-format
+msgid "#2706, ST_DumpPoints of EMPTY geometries crashes server"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:94
+#, no-c-format
+msgid "Release 2.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:95 release_notes.xml:392
+#, no-c-format
+msgid "Release date: 2014/03/31"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:96
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:99
+#, no-c-format
+msgid "#2666, Error out at configure time if no SQL preprocessor can be found"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:100
+#, no-c-format
+msgid "#2534, st_distance returning incorrect results for large geographies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:101
+#, no-c-format
+msgid "#2539, Check for json-c/json.h presence/usability before json/json.h"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:102
+#, no-c-format
+msgid "#2543, invalid join selectivity error from simple query"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:103
+#, no-c-format
+msgid "#2546, GeoJSON with string coordinates parses incorrectly"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:104
+#, no-c-format
+msgid "#2547, Fix ST_Simplify(TopoGeometry) for hierarchical topogeoms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:105 release_notes.xml:402
+#, no-c-format
+msgid "#2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:107 release_notes.xml:403
+#, no-c-format
+msgid "#2555, Fix parsing issue of range arguments of ST_Reclass"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:108
+#, no-c-format
+msgid "#2556, geography ST_Intersects results depending on insert order"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:109
+#, no-c-format
+msgid "#2580, Do not allow installing postgis twice in the same database"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:110 release_notes.xml:404
+#, no-c-format
+msgid "#2589, Remove use of unnecessary void pointers"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:111
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in one process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:112 release_notes.xml:406
+#, no-c-format
+msgid "#2610, Ensure face splitting algorithm uses the edge index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:113
+#, no-c-format
+msgid ""
+"#2615, EstimatedExtent (and hence, underlying stats) gathering wrong bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:114
+#, no-c-format
+msgid "#2619, Empty rings array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:115
+#, no-c-format
+msgid "#2634, regression in sphere distance code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:116 release_notes.xml:408
+#, no-c-format
+msgid "#2638, Geography distance on M geometries sometimes wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:117
+#, no-c-format
+msgid ""
+"#2648, #2653, Fix topology functions when \"topology\" is not in search_path"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:118
+#, no-c-format
+msgid "#2654, Drop deprecated calls from topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:119
+#, no-c-format
+msgid ""
+"#2655, Let users without topology privileges call postgis_full_version()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:120
+#, no-c-format
+msgid "#2674, Fix missing operator = and hash_raster_ops opclass on raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:121
+#, no-c-format
+msgid ""
+"#2675, #2534, #2636, #2634, #2638, Geography distance issues with tree "
+"optimization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:125
+#, no-c-format
+msgid "#2494, avoid memcopy in GiST index (hayamiz)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:126
+#, no-c-format
+msgid ""
+"#2560, soft upgrade: avoid drop/recreate of aggregates that hadn't changed"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:131
+#, no-c-format
+msgid "Release 2.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:132
+#, no-c-format
+msgid "Release date: 2013/11/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:133
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.0 release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:135 release_notes.xml:411
+#, no-c-format
+msgid "Important Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:136
+#, no-c-format
+msgid ""
+"#2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:140
+#, no-c-format
+msgid "#2396, Make regression tests more endian-agnostic"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:141
+#, no-c-format
+msgid "#2434, Fix ST_Intersection(geog,geog) regression in rare cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:142
+#, no-c-format
+msgid ""
+"#2454, Fix behavior of ST_PixelAsXXX functions regarding "
+"exclude_nodata_value parameter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:143
+#, no-c-format
+msgid "#2489, Fix upgrades from 2.0 leaving stale function signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:144
+#, no-c-format
+msgid "#2525, Fix handling of SRID in nested collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:145
+#, no-c-format
+msgid "#2449, Fix potential infinite loop in index building"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:146
+#, no-c-format
+msgid "#2493, Fix behavior of ST_DumpValues when passed an empty raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:147 release_notes.xml:397
+#, no-c-format
+msgid "#2502, Fix postgis_topology_scripts_installed() install schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:148 release_notes.xml:398
+#, no-c-format
+msgid "#2504, Fix segfault on bogus pgsql2shp call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:149
+#, no-c-format
+msgid ""
+"#2512, Support for foreign tables and materialized views in raster_columns "
+"and raster_overviews"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:153
+#, no-c-format
+msgid "#2478, support for tiger 2013"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:154
+#, no-c-format
+msgid "#2463, support for exact length calculations on arc geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:160
+#, no-c-format
+msgid "Release 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:161
+#, no-c-format
+msgid "Release date: 2013/08/17"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:162
+#, no-c-format
+msgid ""
+"This is a minor release addressing both bug fixes and performance and "
+"functionality enhancements addressing issues since 2.0.3 release. If you are "
+"upgrading from 2.0+, only a soft upgrade is required. If you are upgrading "
+"from 1.5 or earlier, a hard upgrade is required."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:165 release_notes.xml:634
+#, no-c-format
+msgid "Important / Breaking Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:166
+#, no-c-format
+msgid ""
+"#1653, Removed srid parameter from ST_Resample(raster) and variants with "
+"reference raster no longer apply reference raster's SRID."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:168
+#, no-c-format
+msgid ""
+"#1962 ST_Segmentize - As a result of the introduction of geography support, "
+"The construct: <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</"
+"code> will result in ambiguous function error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:172
+#, no-c-format
+msgid "#2026, ST_Union(raster) now unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:173
+#, no-c-format
+msgid "#2089, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:174
+#, no-c-format
+msgid ""
+"#2150, regular_blocking is no longer a constraint. column of same name in "
+"raster_columns now checks for existance of spatially_unique and "
+"coverage_tile constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:177
+#, no-c-format
+msgid ""
+"ST_Intersects(raster, geometry) behaves in the same manner as "
+"ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:179
+#, no-c-format
+msgid ""
+"point variant of ST_SetValue(raster) previously did not check SRID of input "
+"geometry and raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:181
+#, no-c-format
+msgid ""
+"ST_Hillshade parameters azimuth and altitude are now in degrees instead of "
+"radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:183
+#, no-c-format
+msgid ""
+"ST_Slope and ST_Aspect return pixel values in degrees instead of radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:184
+#, no-c-format
+msgid ""
+"#2104, ST_World2RasterCoord, ST_World2RasterCoordX and ST_World2RasterCoordY "
+"renamed to ST_WorldToRasterCoord, ST_WorldToRasterCoordX and "
+"ST_WorldToRasterCoordY. ST_Raster2WorldCoord, ST_Raster2WorldCoordX and "
+"ST_Raster2WorldCoordY renamed to ST_RasterToWorldCoord, "
+"ST_RasterToWorldCoordX and ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:190
+#, no-c-format
+msgid "ST_Estimated_Extent renamed to ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:191
+#, no-c-format
+msgid "ST_Line_Interpolate_Point renamed to ST_LineInterpolatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:192
+#, no-c-format
+msgid "ST_Line_Substring renamed to ST_LineSubstring"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:193
+#, no-c-format
+msgid "ST_Line_Locate_Point renamed to ST_LineLocatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:194
+#, no-c-format
+msgid "ST_Force_XXX renamed to ST_ForceXXX"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:195
+#, no-c-format
+msgid ""
+"ST_MapAlgebraFctNgb and 1 and 2 raster variants of ST_MapAlgebraFct. Use "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:197
+#, no-c-format
+msgid ""
+"1 and 2 raster variants of ST_MapAlgebraExpr. Use expression variants of "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:202 release_notes.xml:661 release_notes.xml:861
+#: release_notes.xml:925 release_notes.xml:1222
+#, no-c-format
+msgid "New Features"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:203
+#, no-c-format
+msgid ""
+"- Refer to http://postgis.net/docs/manual-2.1/"
+"PostGIS_Special_Functions_Index.html#NewFunctions_2_1 for complete list of "
+"new functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:205
+#, no-c-format
+msgid ""
+"#310, ST_DumpPoints converted to a C function (Nathan Wagner) and much faster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:206
+#, no-c-format
+msgid "#739, UpdateRasterSRID()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:207
+#, no-c-format
+msgid ""
+"#945, improved join selectivity, N-D selectivity calculations, user "
+"accessible selectivity and stats reader functions for testing (Paul Ramsey / "
+"OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:210
+#, no-c-format
+msgid "toTopoGeom with TopoGeometry sink (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:211
+#, no-c-format
+msgid "clearTopoGeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:212
+#, no-c-format
+msgid "ST_Segmentize(geography) (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:213
+#, no-c-format
+msgid "ST_DelaunayTriangles (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:214
+#, no-c-format
+msgid "ST_NearestValue, ST_Neighborhood (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:215
+#, no-c-format
+msgid "ST_PixelAsPoint, ST_PixelAsPoints (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:216
+#, no-c-format
+msgid "ST_PixelAsCentroid, ST_PixelAsCentroids (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:217
+#, no-c-format
+msgid "ST_Raster2WorldCoord, ST_World2RasterCoord (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:218
+#, no-c-format
+msgid ""
+"Additional raster/raster spatial relationship functions (ST_Contains, "
+"ST_ContainsProperly, ST_Covers, ST_CoveredBy, ST_Disjoint, ST_Overlaps, "
+"ST_Touches, ST_Within, ST_DWithin, ST_DFullyWithin) (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:222
+#, no-c-format
+msgid ""
+"Added array variants of ST_SetValues() to set many pixel values of a band in "
+"one call (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:224
+#, no-c-format
+msgid "#1293, ST_Resize(raster) to resize rasters based upon width/height"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:225
+#, no-c-format
+msgid "#1627, package tiger_geocoder as a PostgreSQL extension"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:226
+#, no-c-format
+msgid ""
+"#1643, #2076, Upgrade tiger geocoder to support loading tiger 2011 and 2012 "
+"(Regina Obe / Paragon Corporation) Funded by Hunter Systems Group"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:228
+#, no-c-format
+msgid ""
+"GEOMETRYCOLLECTION support for ST_MakeValid (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:229
+#, no-c-format
+msgid "#1709, ST_NotSameAlignmentReason(raster, raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:230
+#, no-c-format
+msgid "#1818, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:231
+#, no-c-format
+msgid "#1856, reverse geocoder rating setting for prefer numbered highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:232
+#, no-c-format
+msgid "ST_PixelOfValue (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:233
+#, no-c-format
+msgid "Casts to/from PostgreSQL geotypes (point/path/polygon)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:234
+#, no-c-format
+msgid ""
+"Added geomval array variant of ST_SetValues() to set many pixel values of a "
+"band using a set of geometries and corresponding values in one call (Bborie "
+"Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:237
+#, no-c-format
+msgid ""
+"ST_Tile(raster) to break up a raster into tiles (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:238
+#, no-c-format
+msgid "#1895, new r-tree node splitting algorithm (Alex Korotkov)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:239
+#, no-c-format
+msgid "#2011, ST_DumpValues to output raster as array (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:240
+#, no-c-format
+msgid ""
+"#2018, ST_Distance support for CircularString, CurvePolygon, MultiCurve, "
+"MultiSurface, CompoundCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:242
+#, no-c-format
+msgid "#2030, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:243
+#, no-c-format
+msgid ""
+"#2193, Utilize PAGC parser as drop in replacement for tiger normalizer "
+"(Steve Woodbridge, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:245
+#, no-c-format
+msgid "#2210, ST_MinConvexHull(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:246
+#, no-c-format
+msgid "lwgeom_from_geojson in liblwgeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:247
+#, no-c-format
+msgid "#1687, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:248
+#, no-c-format
+msgid "#2228, TopoJSON output for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:249
+#, no-c-format
+msgid "#2123, ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:250
+#, no-c-format
+msgid "#613, ST_SetGeoReference with numerical parameters instead of text"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:251
+#, no-c-format
+msgid "#2276, ST_AddBand(raster) variant for out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:252
+#, no-c-format
+msgid "#2280, ST_Summary(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:253
+#, no-c-format
+msgid "#2163, ST_TPI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:254
+#, no-c-format
+msgid "#2164, ST_TRI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:255
+#, no-c-format
+msgid "#2302, ST_Roughness for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:256
+#, no-c-format
+msgid "#2290, ST_ColorMap(raster) to generate RGBA bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:257
+#, no-c-format
+msgid ""
+"#2254, Add SFCGAL backend support. (Backend selection throught postgis."
+"backend var) Functions available both throught GEOS or SFCGAL: "
+"ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, ST_Distance, "
+"ST_3DDistance New functions available only with SFCGAL backend: "
+"ST_3DIntersection, ST_Tesselate, ST_3DArea, ST_Extrude, ST_ForceLHR "
+"ST_Orientation, ST_Minkowski, ST_StraightSkeleton postgis_sfcgal_version New "
+"function available in PostGIS: ST_ForceSFS (Olivier Courtin and Hugo "
+"Mercier / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:272
+#, no-c-format
+msgid ""
+"For detail of new functions and function improvements, please refer to <xref "
+"linkend=\"NewFunctions_2_1\"/>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:273
+#, no-c-format
+msgid ""
+"Much faster raster ST_Union, ST_Clip and many more function additions "
+"operations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:274
+#, no-c-format
+msgid ""
+"For geometry/geography better planner selectivity and a lot more functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:276
+#, no-c-format
+msgid ""
+"#823, tiger geocoder: Make loader_generate_script download portion less "
+"greedy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:278
+#, no-c-format
+msgid ""
+"#826, raster2pgsql no longer defaults to padding tiles. Flag -P can be used "
+"to pad tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:280
+#, no-c-format
+msgid "#1363, ST_AddBand(raster, ...) array version rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:281
+#, no-c-format
+msgid "#1364, ST_Union(raster, ...) aggregate function rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:282
+#, no-c-format
+msgid "#1655, Additional default values for parameters of ST_Slope"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:283
+#, no-c-format
+msgid "#1661, Add aggregate variant of ST_SameAlignment"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:284
+#, no-c-format
+msgid "#1719, Add support for Point and GeometryCollection ST_MakeValid inputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:285
+#, no-c-format
+msgid "#1780, support ST_GeoHash for geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:286
+#, no-c-format
+msgid "#1796, Big performance boost for distance calculations in geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:287
+#, no-c-format
+msgid "#1802, improved function interruptibility."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:288
+#, no-c-format
+msgid ""
+"#1823, add parameter in ST_AsGML to use id column for GML 3 output (become "
+"mandatory since GML 3.2.1)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:290
+#, no-c-format
+msgid ""
+"#1856, tiger geocoder: reverse geocoder rating setting for prefer numbered "
+"highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:292
+#, no-c-format
+msgid "#1938, Refactor basic ST_AddBand to add multiple new bands in one call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:293
+#, no-c-format
+msgid ""
+"#1978, wrong answer when calculating length of a closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:295 release_notes.xml:505
+#, no-c-format
+msgid ""
+"#1989, Preprocess input geometry to just intersection with raster to be "
+"clipped"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:297
+#, no-c-format
+msgid ""
+"#2021, Added multi-band support to ST_Union(raster, ...) aggregate function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:298
+#, no-c-format
+msgid "#2006, better support of ST_Area(geography) over poles and dateline"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:299
+#, no-c-format
+msgid "#2065, ST_Clip(raster, ...) now a C function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:300
+#, no-c-format
+msgid "#2069, Added parameters to ST_Tile(raster) to control padding of tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:301
+#, no-c-format
+msgid ""
+"#2078, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide "
+"solution to handling tiles in a coverage"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:303
+#, no-c-format
+msgid "#2097, Added RANGE uniontype option for ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:304
+#, no-c-format
+msgid ""
+"#2105, Added ST_Transform(raster) variant for aligning output to reference "
+"raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:306
+#, no-c-format
+msgid ""
+"#2119, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(), and "
+"ST_SnapToGrid() no longer require an SRID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:308 release_notes.xml:478
+#, no-c-format
+msgid ""
+"#2141, More verbose output when constraints fail to be added to a raster "
+"column"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:310
+#, no-c-format
+msgid "#2143, Changed blocksize constraint of raster to allow multiple values"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:311
+#, no-c-format
+msgid "#2148, Addition of coverage_tile constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:312
+#, no-c-format
+msgid "#2149, Addition of spatially_unique constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:313
+#, no-c-format
+msgid ""
+"TopologySummary output now includes unregistered layers and a count of "
+"missing TopoGeometry objects from their natural layer."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:315
+#, no-c-format
+msgid ""
+"ST_HillShade(), ST_Aspect() and ST_Slope() have one new optional parameter "
+"to interpolate NODATA pixels before running the operation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:318
+#, no-c-format
+msgid ""
+"Point variant of ST_SetValue(raster) is now a wrapper around geomval variant "
+"of ST_SetValues(rast)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:320
+#, no-c-format
+msgid "Proper support for raster band's isnodata flag in core API and loader."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:321
+#, no-c-format
+msgid "Additional default values for parameters of ST_Aspect and ST_HillShade"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:322
+#, no-c-format
+msgid ""
+"#2178, ST_Summary now advertises presence of known srid with an [S] flag"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:323
+#, no-c-format
+msgid "#2202, Make libjson-c optional (--without-json configure switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:324
+#, no-c-format
+msgid "#2213, Add support libjson-c 0.10+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:325
+#, no-c-format
+msgid "#2231, raster2pgsql supports user naming of filename column with -n"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:326
+#, no-c-format
+msgid "#2200, ST_Union(raster, uniontype) unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:327
+#, no-c-format
+msgid ""
+"#2264, postgis_restore.pl support for restoring into databases with postgis "
+"in a custom schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:329
+#, no-c-format
+msgid ""
+"#2244, emit warning when changing raster's georeference if raster has out-db "
+"bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:331
+#, no-c-format
+msgid ""
+"#2222, add parameter OutAsIn to flag whether ST_AsBinary should return out-"
+"db bands as in-db bands"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:335
+#, no-c-format
+msgid "Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:336 release_notes.xml:580
+#, no-c-format
+msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:337 release_notes.xml:581
+#, no-c-format
+msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:338
+#, no-c-format
+msgid "#1870, align the docs and actual behavior of raster's ST_Intersects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:339 release_notes.xml:587
+#, no-c-format
+msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:340 release_notes.xml:590
+#, no-c-format
+msgid ""
+"#1875, ST_SummaryStats returns NULL for all parameters except count when "
+"count is zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:342
+#, no-c-format
+msgid "#1932, fix raster2pgsql of syntax for index tablespaces"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:343 release_notes.xml:498
+#, no-c-format
+msgid "#1936, ST_GeomFromGML on CurvePolygon causes server crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:344
+#, no-c-format
+msgid ""
+"#1939, remove custom data types: summarystats, histogram, quantile, "
+"valuecount"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:346
+#, no-c-format
+msgid "#1951, remove crash on zero-length linestrings"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:347 release_notes.xml:500
+#, no-c-format
+msgid "#1957, ST_Distance to a one-point LineString returns NULL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:348 release_notes.xml:501
+#, no-c-format
+msgid "#1976, Geography point-in-ring code overhauled for more reliability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:349
+#, no-c-format
+msgid "#1981, cleanup of unused variables causing warnings with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:350 release_notes.xml:508
+#, no-c-format
+msgid "#1996, support POINT EMPTY in GeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:351
+#, no-c-format
+msgid "#2062, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:352 release_notes.xml:519
+#, no-c-format
+msgid "#2057, Fixed linking issue for raster2psql to libpq"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:353
+#, no-c-format
+msgid "#2077, Fixed incorrect values returning from ST_Hillshade()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:354 release_notes.xml:512
+#, no-c-format
+msgid "#2019, ST_FlipCoordinates does not update bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:355
+#, no-c-format
+msgid "#2100, ST_AsRaster may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:356 release_notes.xml:464
+#, no-c-format
+msgid "#2126, Better handling of empty rasters from ST_ConvexHull()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:357 release_notes.xml:425
+#, no-c-format
+msgid "#2165, ST_NumPoints regression failure with CircularString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:358 release_notes.xml:426
+#, no-c-format
+msgid "#2168, ST_Distance is not always commutative"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:359
+#, no-c-format
+msgid "#2182, Fix issue with outdb rasters with no SRID and ST_Resize"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:360 release_notes.xml:472
+#, no-c-format
+msgid ""
+"#2188, Fix function parameter value overflow that caused problems when "
+"copying data from a GDAL dataset"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:362
+#, no-c-format
+msgid ""
+"#2198, Fix incorrect dimensions used when generating bands of out-db rasters "
+"in ST_Tile()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:364 release_notes.xml:428
+#, no-c-format
+msgid "#2201, ST_GeoHash wrong on boundaries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:365
+#, no-c-format
+msgid ""
+"#2203, Changed how rasters with unknown SRID and default geotransform are "
+"handled when passing to GDAL Warp API"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:367
+#, no-c-format
+msgid ""
+"#2215, Fixed raster exclusion constraint for conflicting name of implicit "
+"index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:369
+#, no-c-format
+msgid ""
+"#2251, Fix bad dimensions when rescaling rasters with default geotransform "
+"matrix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:371
+#, no-c-format
+msgid ""
+"#2133, Fix performance regression in expression variant of ST_MapAlgebra"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:372 release_notes.xml:429
+#, no-c-format
+msgid ""
+"#2257, GBOX variables not initialized when testing with empty geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:373 release_notes.xml:430
+#, no-c-format
+msgid "#2271, Prevent parallel make of raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:374
+#, no-c-format
+msgid "#2282, Fix call to undefined function nd_stats_to_grid() in debug mode"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:375 release_notes.xml:433
+#, no-c-format
+msgid "#2307, ST_MakeValid outputs invalid geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:376
+#, no-c-format
+msgid "#2309, Remove confusing INFO message when trying to get SRS info"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:377
+#, no-c-format
+msgid "#2336, FIPS 20 (KS) causes wildcard expansion to wget all files"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:378
+#, no-c-format
+msgid "#2348, Provide raster upgrade path for 2.0 to 2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:379 release_notes.xml:434
+#, no-c-format
+msgid "#2351, st_distance between geographies wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:380
+#, no-c-format
+msgid "#2359, Fix handling of schema name when adding overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:381 release_notes.xml:436
+#, no-c-format
+msgid "#2371, Support GEOS versions with more than 1 digit in micro"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:382
+#, no-c-format
+msgid "#2383, Remove unsafe use of \\' from raster warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:383
+#, no-c-format
+msgid "#2384, Incorrect variable datatypes for ST_Neighborhood"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:385 release_notes.xml:453
+#, no-c-format
+msgid "Known Issues"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:386 release_notes.xml:454
+#, no-c-format
+msgid ""
+"#2111, Raster bands can only reference the first 256 bands of out-db rasters"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:391
+#, no-c-format
+msgid "Release 2.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:393
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.4 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:396
+#, no-c-format
+msgid "#2494, avoid memcpy in GIST index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:399
+#, no-c-format
+msgid "#2528, Fix memory leak in ST_Split / lwline_split_by_line"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:400
+#, no-c-format
+msgid "#2532, Add missing raster/geometry commutator operators"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:401
+#, no-c-format
+msgid "#2533, Remove duplicated signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:405
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:407
+#, no-c-format
+msgid "#2619, Empty ring array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:412
+#, no-c-format
+msgid ""
+"##2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:417
+#, no-c-format
+msgid "Release 2.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:418
+#, no-c-format
+msgid "Release date: 2013/09/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:419
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.3 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:422
+#, no-c-format
+msgid "#2110, Equality operator between EMPTY and point on origin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:423
+#, no-c-format
+msgid "Allow adding points at precision distance with TopoGeo_addPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:424
+#, no-c-format
+msgid "#1968, Fix missing edge from toTopoGeom return"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:427
+#, no-c-format
+msgid "#2186, gui progress bar updates too frequent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:431
+#, no-c-format
+msgid "#2267, Server crash from analyze table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:432
+#, no-c-format
+msgid "#2277, potential segfault removed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:435
+#, no-c-format
+msgid "#2359, Incorrect handling of schema for overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:437
+#, no-c-format
+msgid "#2372, Cannot parse space-padded KML coordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:438
+#, no-c-format
+msgid "Fix build with systemwide liblwgeom installed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:439
+#, no-c-format
+msgid "#2383, Fix unsafe use of \\' in warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:440
+#, no-c-format
+msgid "#2410, Fix segmentize of collinear curve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:441
+#, no-c-format
+msgid "#2412, ST_LineToCurve support for lines with less than 4 vertices"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:442
+#, no-c-format
+msgid "#2415, ST_Multi support for COMPOUNDCURVE and CURVEPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:443
+#, no-c-format
+msgid "#2420, ST_LineToCurve: require at least 8 edges to define a full circle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:444
+#, no-c-format
+msgid "#2423, ST_LineToCurve: require all arc edges to form the same angle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:445
+#, no-c-format
+msgid "#2424, ST_CurveToLine: add support for COMPOUNDCURVE in MULTICURVE"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:446
+#, no-c-format
+msgid "#2427, Make sure to retain first point of curves on ST_CurveToLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:450
+#, no-c-format
+msgid "#2269, Avoid uselessly detoasting full geometries on ANALYZE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:459
+#, no-c-format
+msgid "Release 2.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:460
+#, no-c-format
+msgid "Release date: 2013/03/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:461
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.2 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:465
+#, no-c-format
+msgid "#2134, Make sure to process SRS before passing it off to GDAL functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:466
+#, no-c-format
+msgid "Fix various memory leaks in liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:467
+#, no-c-format
+msgid ""
+"#2173, Fix robustness issue in splitting a line with own vertex also "
+"affecting topology building (#2172)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:468
+#, no-c-format
+msgid "#2174, Fix usage of wrong function lwpoly_free()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:469
+#, no-c-format
+msgid "#2176, Fix robustness issue with ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:470
+#, no-c-format
+msgid "#2184, Properly copy topologies with Z value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:471
+#, no-c-format
+msgid "postgis_restore.pl support for mixed case geometry column name in dumps"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:473
+#, no-c-format
+msgid "#2216, More memory errors in MultiPolygon GeoJSON parsing (with holes)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:474
+#, no-c-format
+msgid "Fix Memory leak in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:479
+#, no-c-format
+msgid "Speedup ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:483
+#, no-c-format
+msgid "Release 2.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:484
+#, no-c-format
+msgid "Release date: 2012/12/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:485
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:488
+#, no-c-format
+msgid ""
+"#1287, Drop of \"gist_geometry_ops\" broke a few clients package of "
+"legacy_gist.sql for these cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:490
+#, no-c-format
+msgid "#1391, Errors during upgrade from 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:491
+#, no-c-format
+msgid "#1828, Poor selectivity estimate on ST_DWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:492
+#, no-c-format
+msgid "#1838, error importing tiger/line data"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:493
+#, no-c-format
+msgid ""
+"#1869, ST_AsBinary is not unique added to legacy_minor/legacy.sql scripts"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:494
+#, no-c-format
+msgid "#1885, Missing field from tabblock table in tiger2010 census_loader.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:495
+#, no-c-format
+msgid "#1891, Use LDFLAGS environment when building liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:496
+#, no-c-format
+msgid "#1900, Fix pgsql2shp for big-endian systems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:497
+#, no-c-format
+msgid "#1932, Fix raster2pgsql for invalid syntax for setting index tablespace"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:499
+#, no-c-format
+msgid "#1955, ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:502
+#, no-c-format
+msgid "#1978, wrong answer calculating length of closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:503
+#, no-c-format
+msgid "#1981, Remove unused but set variables as found with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:504
+#, no-c-format
+msgid "#1987, Restore 1.5.x behaviour of ST_Simplify"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:507
+#, no-c-format
+msgid "#1991, geocode really slow on PostgreSQL 9.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:509
+#, no-c-format
+msgid "#1998, Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:510
+#, no-c-format
+msgid ""
+"#2001, ST_CurveToLine has no effect if the geometry doesn't actually contain "
+"an arc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:511
+#, no-c-format
+msgid "#2015, ST_IsEmpty('POLYGON(EMPTY)') returns False"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:513
+#, no-c-format
+msgid "#2025, Fix side location conflict at TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:514
+#, no-c-format
+msgid "#2026, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:515
+#, no-c-format
+msgid "#2033, Fix adding a splitting point into a 2.5d topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:516
+#, no-c-format
+msgid "#2051, Fix excess of precision in ST_AsGeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:517
+#, no-c-format
+msgid "#2052, Fix buffer overflow in lwgeom_to_geojson"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:518
+#, no-c-format
+msgid "#2056, Fixed lack of SRID check of raster and geometry in ST_SetValue()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:520
+#, no-c-format
+msgid "#2060, Fix \"dimension\" check violation by GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:521
+#, no-c-format
+msgid ""
+"#2072, Removed outdated checks preventing ST_Intersects(raster) from working "
+"on out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:523
+#, no-c-format
+msgid "#2077, Fixed incorrect answers from ST_Hillshade(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:524
+#, no-c-format
+msgid ""
+"#2092, Namespace issue with ST_GeomFromKML,ST_GeomFromGML for libxml 2.8+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:525
+#, no-c-format
+msgid "#2099, Fix double free on exception in ST_OffsetCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:526
+#, no-c-format
+msgid "#2100, ST_AsRaster() may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:527
+#, no-c-format
+msgid "#2108, Ensure ST_Line_Interpolate_Point always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:528
+#, no-c-format
+msgid "#2109, Ensure ST_Centroid always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:529
+#, no-c-format
+msgid "#2117, Ensure ST_PointOnSurface always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:530
+#, no-c-format
+msgid "#2129, Fix SRID in ST_Homogenize output with collection input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:531
+#, no-c-format
+msgid "#2130, Fix memory error in MultiPolygon GeoJson parsing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:533
+#, no-c-format
+msgid "Update URL of Maven jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:537
+#, no-c-format
+msgid ""
+"#1581, ST_Clip(raster, ...) no longer imposes NODATA on a band if the "
+"corresponding band from the source raster did not have NODATA"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:539
+#, no-c-format
+msgid ""
+"#1928, Accept array properties in GML input multi-geom input (Kashif Rasul "
+"and Shoaib Burq / SpacialDB)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:541
+#, no-c-format
+msgid "#2082, Add indices on start_node and end_node of topology edge tables"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:542
+#, no-c-format
+msgid "#2087, Speedup topology.GetRingEdges using a recursive CTE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:546
+#, no-c-format
+msgid "Release 2.0.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:547
+#, no-c-format
+msgid "Release date: 2012/06/22"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:548
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.0 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:551
+#, no-c-format
+msgid "#1264, fix st_dwithin(geog, geog, 0)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:552
+#, no-c-format
+msgid "#1468 shp2pgsql-gui table column schema get shifted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:553
+#, no-c-format
+msgid "#1694, fix building with clang. (vince)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:554
+#, no-c-format
+msgid "#1708, improve restore of pre-PostGIS 2.0 backups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:555
+#, no-c-format
+msgid "#1714, more robust handling of high topology tolerance."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:556
+#, no-c-format
+msgid "#1755, ST_GeographyFromText support for higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:557
+#, no-c-format
+msgid "#1759, loading transformed shapefiles in raster enabled db."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:558
+#, no-c-format
+msgid ""
+"#1761, handling of subdatasets in NetCDF, HDF4 and HDF5 in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:559
+#, no-c-format
+msgid "#1763, topology.toTopoGeom use with custom search_path."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:560
+#, no-c-format
+msgid "#1766, don't let ST_RemEdge* destroy peripheral TopoGeometry objects."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:561
+#, no-c-format
+msgid "#1774, Clearer error on setting an edge geometry to an invalid one."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:562
+#, no-c-format
+msgid "#1775, ST_ChangeEdgeGeom collision detection with 2-vertex target."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:563
+#, no-c-format
+msgid "#1776, fix ST_SymDifference(empty, geom) to return geom."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:564
+#, no-c-format
+msgid "#1779, install SQL comment files."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:565
+#, no-c-format
+msgid "#1782, fix spatial reference string handling in raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:566
+#, no-c-format
+msgid "#1789, fix false edge-node crossing report in ValidateTopology."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:567
+#, no-c-format
+msgid "#1790, fix toTopoGeom handling of duplicated primitives."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:568
+#, no-c-format
+msgid "#1791, fix ST_Azimuth with very close but distinct points."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:569
+#, no-c-format
+msgid "#1797, fix (ValidateTopology(xxx)).* syntax calls."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:570
+#, no-c-format
+msgid "#1805, put back the 900913 SRID entry."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:571
+#, no-c-format
+msgid "#1813, Only show readable relations in metadata tables."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:572
+#, no-c-format
+msgid ""
+"#1819, fix floating point issues with ST_World2RasterCoord and "
+"ST_Raster2WorldCoord variants."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:574
+#, no-c-format
+msgid "#1820 compilation on 9.2beta1."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:575
+#, no-c-format
+msgid "#1822, topology load on PostgreSQL 9.2beta1."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:576
+#, no-c-format
+msgid "#1825, fix prepared geometry cache lookup"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:577
+#, no-c-format
+msgid "#1829, fix uninitialized read in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:578
+#, no-c-format
+msgid ""
+"#1834, revise postgis extension to only backup user specified spatial_ref_sys"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:582
+#, no-c-format
+msgid "#1851, fix spatial_ref_system parameters for EPSG:3844"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:583
+#, no-c-format
+msgid "#1857, fix failure to detect endpoint mismatch in ST_AddEdge*Face*"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:584
+#, no-c-format
+msgid ""
+"#1865, data loss in postgis_restore.pl when data rows have leading dashes."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:586
+#, no-c-format
+msgid "#1867, catch invalid topology name passed to topogeo_add*"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:588
+#, no-c-format
+msgid ""
+"#1873, fix ptarray_locate_point to return interpolated Z/M values for on-the-"
+"line case"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:592
+#, no-c-format
+msgid "#1881, shp2pgsql-gui -- editing a field sometimes triggers removing row"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:594
+#, no-c-format
+msgid ""
+"#1883, Geocoder install fails trying to run create_census_base_tables() "
+"(Brian Panulla)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:599
+#, no-c-format
+msgid "More detailed exception message from topology editing functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:600
+#, no-c-format
+msgid "#1786, improved build dependencies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:601
+#, no-c-format
+msgid "#1806, speedup of ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:602
+#, no-c-format
+msgid "#1812, Add lwgeom_normalize in LIBLWGEOM for more stable testing."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:606
+#, no-c-format
+msgid "Release 2.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:607
+#, no-c-format
+msgid "Release date: 2012/04/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:608
+#, no-c-format
+msgid ""
+"This is a major release. A hard upgrade is required. Yes this means a full "
+"dump reload and some special preparations if you are using obsolete "
+"functions. Refer to <xref linkend=\"hard_upgrade\"/> for details on "
+"upgrading. Refer to <xref linkend=\"NewFunctions_2_0\"/> for more details "
+"and changed/new functions."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:612
+#, no-c-format
+msgid "Testers - Our unsung heroes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:613
+#, no-c-format
+msgid ""
+"We are most indebted to the numerous members in the PostGIS community who "
+"were brave enough to test out the new features in this release. No major "
+"release can be successful without these folk."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:616
+#, no-c-format
+msgid ""
+"Below are those who have been most valiant, provided very detailed and "
+"thorough bug reports, and detailed analysis."
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:620
+#, no-c-format
+msgid "Andrea Peri - Lots of testing on topology, checking for correctness"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:621
+#, no-c-format
+msgid "Andreas Forø Tollefsen - raster testing"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:622
+#, no-c-format
+msgid "Chris English - topology stress testing loader functions"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:623
+#, no-c-format
+msgid "Salvatore Larosa - topology robustness testing"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:624
+#, no-c-format
+msgid ""
+"Brian Hamlin - Benchmarking (also experimental experimental branches before "
+"they are folded into core) , general testing of various pieces including "
+"Tiger and Topology. Testing on various server VMs"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:629
+#, no-c-format
+msgid "Mike Pease - Tiger geocoder testing - very detailed reports of issues"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:630
+#, no-c-format
+msgid "Tom van Tilburg - raster testing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:635
+#, no-c-format
+msgid ""
+"#722, #302, Most deprecated functions removed (over 250 functions) (Regina "
+"Obe, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:636
+#, no-c-format
+msgid "Unknown SRID changed from -1 to 0. (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:637
+#, no-c-format
+msgid ""
+"-- (most deprecated in 1.2) removed non-ST variants buffer, length, "
+"intersects (and internal functions renamed) etc."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:639
+#, no-c-format
+msgid ""
+"-- If you have been using deprecated functions CHANGE your apps or suffer "
+"the consequences. If you don't see a function documented -- it ain't "
+"supported or it is an internal function. Some constraints in older tables "
+"were built with deprecated functions. If you restore you may need to rebuild "
+"table constraints with populate_geometry_columns(). If you have applications "
+"or tools that rely on deprecated functions, please refer to <xref linkend="
+"\"legacy_faq\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:644
+#, no-c-format
+msgid ""
+"#944 geometry_columns is now a view instead of a table (Paul Ramsey, Regina "
+"Obe) for tables created the old way reads (srid, type, dims) constraints for "
+"geometry columns created with type modifiers reads rom column definition"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:649
+#, no-c-format
+msgid ""
+"#1081, #1082, #1084, #1088 - Mangement functions support typmod geometry "
+"column creation functions now default to typmod creation (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:652
+#, no-c-format
+msgid ""
+"#1083 probe_geometry_columns(), rename_geometry_table_constraints(), "
+"fix_geometry_columns(); removed - now obsolete with geometry_column view "
+"(Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:656
+#, no-c-format
+msgid "#817 Renaming old 3D functions to the convention ST_3D (Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:657
+#, no-c-format
+msgid ""
+"#548 (sorta), ST_NumGeometries,ST_GeometryN now returns 1 (or the geometry) "
+"instead of null for single geometries (Sandro Santilli, Maxime van Noppen)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:662
+#, no-c-format
+msgid ""
+"KNN Gist index based centroid (<->) and box (<#>) distance "
+"operators (Paul Ramsey / funded by Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:663
+#, no-c-format
+msgid ""
+"Support for TIN and PolyHedralSurface and enhancement of many functions to "
+"support 3D (Olivier Courtin / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:664
+#, no-c-format
+msgid ""
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/PlanningAndFunding"
+"\">Raster support integrated and documented</ulink> (Pierre Racine, Jorge "
+"Arévalo, Mateusz Loskot, Sandro Santilli, David Zwarg, Regina Obe, Bborie "
+"Park) (Company developer and funding: University Laval, Deimos Space, "
+"CadCorp, Michigan Tech Research Institute, Azavea, Paragon Corporation, UC "
+"Davis Center for Vectorborne Diseases)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:667
+#, no-c-format
+msgid ""
+"Making spatial indexes 3D aware - in progress (Paul Ramsey, Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:668
+#, no-c-format
+msgid ""
+"Topology support improved (more functions), documented, testing (Sandro "
+"Santilli / Faunalia for RT-SIGTA), Andrea Peri, Regina Obe, Jose Carlos "
+"Martinez Llari"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:669
+#, no-c-format
+msgid "3D relationship and measurement support functions (Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:670
+#, no-c-format
+msgid ""
+"ST_3DDistance, ST_3DClosestPoint, ST_3DIntersects, ST_3DShortestLine and "
+"more..."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:671
+#, no-c-format
+msgid "N-Dimensional spatial indexes (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:672
+#, no-c-format
+msgid "ST_Split (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:673
+#, no-c-format
+msgid "ST_IsValidDetail (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:674
+#, no-c-format
+msgid "ST_MakeValid (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:675
+#, no-c-format
+msgid "ST_RemoveRepeatedPoints (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:676
+#, no-c-format
+msgid ""
+"ST_GeometryN and ST_NumGeometries support for non-collections (Sandro "
+"Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:677
+#, no-c-format
+msgid "ST_IsCollection (Sandro Santilli, Maxime van Noppen)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:678
+#, no-c-format
+msgid "ST_SharedPaths (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:679
+#, no-c-format
+msgid "ST_Snap (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:680
+#, no-c-format
+msgid "ST_RelateMatch (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:681
+#, no-c-format
+msgid "ST_ConcaveHull (Regina Obe and Leo Hsu / Paragon Corporation)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:682
+#, no-c-format
+msgid "ST_UnaryUnion (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:683
+#, no-c-format
+msgid "ST_AsX3D (Regina Obe / Arrival 3D funding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:684
+#, no-c-format
+msgid "ST_OffsetCurve (Sandro Santilli, Rafal Magda)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:685
+#, no-c-format
+msgid "ST_GeomFromGeoJSON (Kashif Rasul, Paul Ramsey / Vizzuality funding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:689
+#, no-c-format
+msgid ""
+"Made shape file loader tolerant of truncated multibyte values found in some "
+"free worldwide shapefiles (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:690
+#, no-c-format
+msgid ""
+"Lots of bug fixes and enhancements to shp2pgsql Beefing up regression tests "
+"for loaders Reproject support for both geometry and geography during import "
+"(Jeff Adams / Azavea, Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:694
+#, no-c-format
+msgid ""
+"pgsql2shp conversion from predefined list (Loic Dachary / Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:696
+#, no-c-format
+msgid ""
+"Shp-pgsql GUI loader - support loading multiple files at a time. (Mark "
+"Leslie)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:697
+#, no-c-format
+msgid ""
+"Extras - upgraded tiger_geocoder from using old TIGER format to use new "
+"TIGER shp and file structure format (Stephen Frost)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:698
+#, no-c-format
+msgid ""
+"Extras - revised tiger_geocoder to work with TIGER census 2010 data, "
+"addition of reverse geocoder function, various bug fixes, accuracy "
+"enhancements, limit max result return, speed improvements, loading routines. "
+"(Regina Obe, Leo Hsu / Paragon Corporation / funding provided by Hunter "
+"Systems Group)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:701
+#, no-c-format
+msgid "Overall Documentation proofreading and corrections. (Kasif Rasul)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:702
+#, no-c-format
+msgid ""
+"Cleanup PostGIS JDBC classes, revise to use Maven build. (Maria Arias de "
+"Reyna, Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:706
+#, no-c-format
+msgid "#1335 ST_AddPoint returns incorrect result on Linux (Even Rouault)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:709
+#, no-c-format
+msgid "Release specific credits"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:710
+#, no-c-format
+msgid ""
+"We thank <ulink url=\"http://blog.opengeo.org/2012/02/01/it-goes-up-to-2-0/"
+"\">U.S Department of State Human Information Unit (HIU)</ulink> and <ulink "
+"url=\"http://blog.cartodb.com/post/17318840209/postgis-core-committer-sandro-"
+"santilli-joins-cartodb\">Vizzuality</ulink> for general monetary support to "
+"get PostGIS 2.0 out the door."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:715
+#, no-c-format
+msgid "Release 1.5.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:716
+#, no-c-format
+msgid "Release date: 2012/05/07"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:717
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.3 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:720
+#, no-c-format
+msgid "#547, ST_Contains memory problems (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:721
+#, no-c-format
+msgid "#621, Problem finding intersections with geography (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:722
+#, no-c-format
+msgid "#627, PostGIS/PostgreSQL process die on invalid geometry (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:723
+#, no-c-format
+msgid "#810, Increase accuracy of area calculation (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:724
+#, no-c-format
+msgid ""
+"#852, improve spatial predicates robustness (Sandro Santilli, Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:725
+#, no-c-format
+msgid ""
+"#877, ST_Estimated_Extent returns NULL on empty tables (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:726
+#, no-c-format
+msgid "#1028, ST_AsSVG kills whole postgres server when fails (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:727
+#, no-c-format
+msgid "#1056, Fix boxes of arcs and circle stroking code (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:728
+#, no-c-format
+msgid ""
+"#1121, populate_geometry_columns using deprecated functions (Regin Obe, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:729
+#, no-c-format
+msgid "#1135, improve testsuite predictability (Andreas 'ads' Scherbaum)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:730
+#, no-c-format
+msgid "#1146, images generator crashes (bronaugh)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:731
+#, no-c-format
+msgid "#1170, North Pole intersection fails (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:732
+#, no-c-format
+msgid "#1179, ST_AsText crash with bad value (kjurka)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:733
+#, no-c-format
+msgid "#1184, honour DESTDIR in documentation Makefile (Bryce L Nordgren)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:734
+#, no-c-format
+msgid "#1227, server crash on invalid GML"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:735
+#, no-c-format
+msgid "#1252, SRID appearing in WKT (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:736
+#, no-c-format
+msgid "#1264, st_dwithin(g, g, 0) doesn't work (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:737
+#, no-c-format
+msgid "#1344, allow exporting tables with invalid geometries (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:738
+#, no-c-format
+msgid "#1389, wrong proj4text for SRID 31300 and 31370 (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:739
+#, no-c-format
+msgid "#1406, shp2pgsql crashes when loading into geography (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:740
+#, no-c-format
+msgid "#1595, fixed SRID redundancy in ST_Line_SubString (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:741
+#, no-c-format
+msgid "#1596, check SRID in UpdateGeometrySRID (Mike Toews, Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:742
+#, no-c-format
+msgid "#1602, fix ST_Polygonize to retain Z (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:743
+#, no-c-format
+msgid "#1697, fix crash with EMPTY entries in GiST index (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:744
+#, no-c-format
+msgid "#1772, fix ST_Line_Locate_Point with collapsed input (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:745
+#, no-c-format
+msgid "#1799, Protect ST_Segmentize from max_length=0 (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:746
+#, no-c-format
+msgid "Alter parameter order in 900913 (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:747
+#, no-c-format
+msgid "Support builds with \"gmake\" (Greg Troxel)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:752
+#, no-c-format
+msgid "Release 1.5.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:753
+#, no-c-format
+msgid "Release date: 2011/06/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:754
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.2 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:758
+#, no-c-format
+msgid ""
+"#1056, produce correct bboxes for arc geometries, fixes index errors (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:760
+#, no-c-format
+msgid ""
+"#1007, ST_IsValid crash fix requires GEOS 3.3.0+ or 3.2.3+ (Sandro Santilli, "
+"reported by Birgit Laggner)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:762
+#, no-c-format
+msgid ""
+"#940, support for PostgreSQL 9.1 beta 1 (Regina Obe, Paul Ramsey, patch "
+"submitted by stl)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:764
+#, no-c-format
+msgid ""
+"#845, ST_Intersects precision error (Sandro Santilli, Nicklas Avén) Reported "
+"by cdestigter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:766
+#, no-c-format
+msgid "#884, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:767
+#, no-c-format
+msgid "#779, shp2pgsql -S option seems to fail on points (Jeff Adams)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:768
+#, no-c-format
+msgid "#666, ST_DumpPoints is not null safe (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:769
+#, no-c-format
+msgid "#631, Update NZ projections for grid transformation support (jpalmer)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:770
+#, no-c-format
+msgid ""
+"#630, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson) "
+"Reported by David Bitner"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:772
+#, no-c-format
+msgid "#624, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:773
+#, no-c-format
+msgid ""
+"#609, Bad source code in manual section 5.2 Java Clients (simoc, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:774
+#, no-c-format
+msgid "#604, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:775
+#, no-c-format
+msgid ""
+"#573 ST_Union fails on a group of linestrings Not a PostGIS bug, fixed in "
+"GEOS 3.3.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:777
+#, no-c-format
+msgid ""
+"#457 ST_CollectionExtract returns non-requested type (Nicklas Avén, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:779
+#, no-c-format
+msgid "#441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:780
+#, no-c-format
+msgid ""
+"#411 Ability to backup invalid geometries (Sando Santilli) Reported by "
+"Regione Toscana"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:782
+#, no-c-format
+msgid "#409 ST_AsSVG - degraded (Olivier Courtin) Reported by Sdikiy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:784
+#, no-c-format
+msgid ""
+"#373 Documentation syntax error in hard upgrade (Paul Ramsey) Reported by "
+"psvensso"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:790
+#, no-c-format
+msgid "Release 1.5.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:791
+#, no-c-format
+msgid "Release date: 2010/09/27"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:792
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:796
+#, no-c-format
+msgid ""
+"Loader: fix handling of empty (0-verticed) geometries in shapefiles. (Sandro "
+"Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:797
+#, no-c-format
+msgid ""
+"#536, Geography ST_Intersects, ST_Covers, ST_CoveredBy and Geometry "
+"ST_Equals not using spatial index (Regina Obe, Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:798
+#, no-c-format
+msgid "#573, Improvement to ST_Contains geography (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:799
+#, no-c-format
+msgid ""
+"Loader: Add support for command-q shutdown in Mac GTK build (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:800
+#, no-c-format
+msgid ""
+"#393, Loader: Add temporary patch for large DBF files (Maxime Guillaud, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:801
+#, no-c-format
+msgid "#507, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:802
+#, no-c-format
+msgid ""
+"spatial_ref_sys.sql Add datum conversion for projection SRID 3021 (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:803
+#, no-c-format
+msgid ""
+"Geography - remove crash for case when all geographies are out of the "
+"estimate (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:804
+#, no-c-format
+msgid "#469, Fix for array_aggregation error (Greg Stark, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:805
+#, no-c-format
+msgid ""
+"#532, Temporary geography tables showing up in other user sessions (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:806
+#, no-c-format
+msgid "#562, ST_Dwithin errors for large geographies (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:807
+#, no-c-format
+msgid ""
+"#513, shape loading GUI tries to make spatial index when loading DBF only "
+"mode (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:808
+#, no-c-format
+msgid ""
+"#527, shape loading GUI should always append log messages (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:809
+#, no-c-format
+msgid "#504, shp2pgsql should rename xmin/xmax fields (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:810
+#, no-c-format
+msgid ""
+"#458, postgis_comments being installed in contrib instead of version folder "
+"(Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:811
+#, no-c-format
+msgid ""
+"#474, Analyzing a table with geography column crashes server (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:812
+#, no-c-format
+msgid "#581, LWGEOM-expand produces inconsistent results (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:813
+#, no-c-format
+msgid ""
+"#513, Add dbf filter to shp2pgsql-gui and allow uploading dbf only (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:814
+#, no-c-format
+msgid "Fix further build issues against PostgreSQL 9.0 (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:815
+#, no-c-format
+msgid "#572, Password whitespace for Shape File (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:816
+#, no-c-format
+msgid ""
+"#603, shp2pgsql: \"-w\" produces invalid WKT for MULTI* objects. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:821
+#, no-c-format
+msgid "Release 1.5.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:822
+#, no-c-format
+msgid "Release date: 2010/03/11"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:823
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.4.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:827
+#, no-c-format
+msgid ""
+"#410, update embedded bbox when applying ST_SetPoint, ST_AddPoint "
+"ST_RemovePoint to a linestring (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:828
+#, no-c-format
+msgid ""
+"#411, allow dumping tables with invalid geometries (Sandro Santilli, for "
+"Regione Toscana-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:829
+#, no-c-format
+msgid ""
+"#414, include geography_columns view when running upgrade scripts (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:830
+#, no-c-format
+msgid ""
+"#419, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, "
+"for Lidwala Consulting Engineers)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:831
+#, no-c-format
+msgid "#421, fix computed string length in ST_AsGML() (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:832
+#, no-c-format
+msgid ""
+"#441, fix GML generation with heterogeneous collections (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:833
+#, no-c-format
+msgid ""
+"#443, incorrect coordinate reversal in GML 3 generation (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:834
+#, no-c-format
+msgid ""
+"#450, #451, wrong area calculation for geography features that cross the "
+"date line (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:835
+#, no-c-format
+msgid "Ensure support for upcoming 9.0 PgSQL release (Paul Ramsey)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:840
+#, no-c-format
+msgid "Release 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:841
+#, no-c-format
+msgid "Release date: 2010/02/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:842
+#, no-c-format
+msgid ""
+"This release provides support for geographic coordinates (lat/lon) via a new "
+"GEOGRAPHY type. Also performance enhancements, new input format support (GML,"
+"KML) and general upkeep."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:845 release_notes.xml:912
+#, no-c-format
+msgid "API Stability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:846
+#, no-c-format
+msgid ""
+"The public API of PostGIS will not change during minor (0.0.X) releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:847
+#, no-c-format
+msgid ""
+"The definition of the =~ operator has changed from an exact geometric "
+"equality check to a bounding box equality check."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:851 release_notes.xml:917
+#, no-c-format
+msgid "Compatibility"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:852
+#, no-c-format
+msgid "GEOS, Proj4, and LibXML2 are now mandatory dependencies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:853
+#, no-c-format
+msgid "The library versions below are the minimum requirements for PostGIS 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:854
+#, no-c-format
+msgid "PostgreSQL 8.3 and higher on all platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:855
+#, no-c-format
+msgid "GEOS 3.1 and higher only (GEOS 3.2+ to take advantage of all features)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:856
+#, no-c-format
+msgid "LibXML2 2.5+ related to new ST_GeomFromGML/KML functionality"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:857
+#, no-c-format
+msgid "Proj4 4.5 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:863
+#, no-c-format
+msgid "Added Hausdorff distance calculations (#209) (Vincent Picavet)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:864
+#, no-c-format
+msgid ""
+"Added parameters argument to ST_Buffer operation to support one-sided "
+"buffering and other buffering styles (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:865
+#, no-c-format
+msgid ""
+"Addition of other Distance related visualization and analysis functions "
+"(Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:867
+#, no-c-format
+msgid "ST_ClosestPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:868
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:869
+#, no-c-format
+msgid "ST_LongestLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:870
+#, no-c-format
+msgid "ST_MaxDistance"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:871
+#, no-c-format
+msgid "ST_ShortestLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:873
+#, no-c-format
+msgid "ST_DumpPoints (Maxime van Noppen)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:874
+#, no-c-format
+msgid "KML, GML input via ST_GeomFromGML and ST_GeomFromKML (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:875
+#, no-c-format
+msgid "Extract homogeneous collection with ST_CollectionExtract (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:876
+#, no-c-format
+msgid ""
+"Add measure values to an existing linestring with ST_AddMeasure (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:877
+#, no-c-format
+msgid "History table implementation in utils (George Silva)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:878
+#, no-c-format
+msgid "Geography type and supporting functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:880
+#, no-c-format
+msgid "Spherical algorithms (Dave Skea)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:881
+#, no-c-format
+msgid "Object/index implementation (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:882
+#, no-c-format
+msgid "Selectivity implementation (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:883
+#, no-c-format
+msgid "Serializations to KML, GML and JSON (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:884
+#, no-c-format
+msgid ""
+"ST_Area, ST_Distance, ST_DWithin, ST_GeogFromText, ST_GeogFromWKB, "
+"ST_Intersects, ST_Covers, ST_Buffer (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:890
+#, no-c-format
+msgid "Performance improvements to ST_Distance (Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:891
+#, no-c-format
+msgid "Documentation updates and improvements (Regina Obe, Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:892
+#, no-c-format
+msgid "Testing and quality control (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:893
+#, no-c-format
+msgid "PostGIS 1.5 support PostgreSQL 8.5 trunk (Guillaume Lelarge)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:894
+#, no-c-format
+msgid "Win32 support and improvement of core shp2pgsql-gui (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:895
+#, no-c-format
+msgid "In place 'make check' support (Paul Ramsey)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:899 release_notes.xml:965 release_notes.xml:1150
+#: release_notes.xml:1201 release_notes.xml:1252 release_notes.xml:1386
+#: release_notes.xml:1452 release_notes.xml:1562 release_notes.xml:1669
+#: release_notes.xml:1789 release_notes.xml:1854 release_notes.xml:1901
+#, no-c-format
+msgid "Bug fixes"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:900
+#, no-c-format
+msgid ""
+"http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
+"+1.5.0&order=priority"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:905
+#, no-c-format
+msgid "Release 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:906
+#, no-c-format
+msgid "Release date: 2009/07/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:907
+#, no-c-format
+msgid ""
+"This release provides performance enhancements, improved internal structures "
+"and testing, new features, and upgraded documentation. If you are running "
+"PostGIS 1.1+, a soft upgrade is sufficient otherwise a hard upgrade is "
+"recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:913
+#, no-c-format
+msgid ""
+"As of the 1.4 release series, the public API of PostGIS will not change "
+"during minor releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:918
+#, no-c-format
+msgid "The versions below are the *minimum* requirements for PostGIS 1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:919
+#, no-c-format
+msgid "PostgreSQL 8.2 and higher on all platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:920
+#, no-c-format
+msgid "GEOS 3.0 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:921
+#, no-c-format
+msgid "PROJ4 4.5 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:926
+#, no-c-format
+msgid ""
+"ST_Union() uses high-speed cascaded union when compiled against GEOS 3.1+ "
+"(Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:928
+#, no-c-format
+msgid "ST_ContainsProperly() requires GEOS 3.1+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:929
+#, no-c-format
+msgid ""
+"ST_Intersects(), ST_Contains(), ST_Within() use high-speed cached prepared "
+"geometry against GEOS 3.1+ (Paul Ramsey / funded by Zonar Systems)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:930
+#, no-c-format
+msgid ""
+"Vastly improved documentation and reference manual (Regina Obe & Kevin "
+"Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:931
+#, no-c-format
+msgid "Figures and diagram examples in the reference manual (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:932
+#, no-c-format
+msgid ""
+"ST_IsValidReason() returns readable explanations for validity failures (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:933
+#, no-c-format
+msgid ""
+"ST_GeoHash() returns a geohash.org signature for geometries (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:934
+#, no-c-format
+msgid "GTK+ multi-platform GUI for shape file loading (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:935
+#, no-c-format
+msgid "ST_LineCrossingDirection() returns crossing directions (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:936
+#, no-c-format
+msgid ""
+"ST_LocateBetweenElevations() returns sub-string based on Z-ordinate. (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:937
+#, no-c-format
+msgid ""
+"Geometry parser returns explicit error message about location of syntax "
+"errors (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:938
+#, no-c-format
+msgid "ST_AsGeoJSON() return JSON formatted geometry (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:939
+#, no-c-format
+msgid ""
+"Populate_Geometry_Columns() -- automatically add records to geometry_columns "
+"for TABLES and VIEWS (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:940
+#, no-c-format
+msgid ""
+"ST_MinimumBoundingCircle() -- returns the smallest circle polygon that can "
+"encompass a geometry (Bruce Rindahl)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:945
+#, no-c-format
+msgid ""
+"Core geometry system moved into independent library, liblwgeom. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:946
+#, no-c-format
+msgid ""
+"New build system uses PostgreSQL \"pgxs\" build bootstrapper. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:947
+#, no-c-format
+msgid "Debugging framework formalized and simplified. (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:948
+#, no-c-format
+msgid ""
+"All build-time #defines generated at configure time and placed in headers "
+"for easier cross-platform support (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:949
+#, no-c-format
+msgid "Logging framework formalized and simplified (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:950
+#, no-c-format
+msgid ""
+"Expanded and more stable support for CIRCULARSTRING, COMPOUNDCURVE and "
+"CURVEPOLYGON, better parsing, wider support in functions (Mark Leslie & "
+"Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:951
+#, no-c-format
+msgid "Improved support for OpenSolaris builds (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:952
+#, no-c-format
+msgid "Improved support for MSVC builds (Mateusz Loskot)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:953
+#, no-c-format
+msgid "Updated KML support (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:954
+#, no-c-format
+msgid "Unit testing framework for liblwgeom (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:955
+#, no-c-format
+msgid ""
+"New testing framework to comprehensively exercise every PostGIS function "
+"(Regine Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:956
+#, no-c-format
+msgid ""
+"Performance improvements to all geometry aggregate functions (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:957
+#, no-c-format
+msgid ""
+"Support for the upcoming PostgreSQL 8.4 (Mark Cave-Ayland, Talha Bin Rizwan)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:958
+#, no-c-format
+msgid ""
+"Shp2pgsql and pgsql2shp re-worked to depend on the common parsing/unparsing "
+"code in liblwgeom (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:959
+#, no-c-format
+msgid ""
+"Use of PDF DbLatex to build PDF docs and preliminary instructions for build "
+"(Jean David Techer)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:960
+#, no-c-format
+msgid ""
+"Automated User documentation build (PDF and HTML) and Developer Doxygen "
+"Documentation (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:961
+#, no-c-format
+msgid ""
+"Automated build of document images using ImageMagick from WKT geometry text "
+"files (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:962
+#, no-c-format
+msgid "More attractive CSS for HTML documentation (Dane Springmeyer)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:966
+#, no-c-format
+msgid ""
+"http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
+"+1.4.0&order=priority"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:971
+#, no-c-format
+msgid "Release 1.3.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:972
+#, no-c-format
+msgid "Release date: 2009/05/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:973
+#, no-c-format
+msgid ""
+"If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
+"hard upgrade is recommended. This release adds support for PostgreSQL 8.4, "
+"exporting prj files from the database with shape data, some crash fixes for "
+"shp2pgsql, and several small bug fixes in the handling of \"curve\" types, "
+"logical error importing dbf only files, improved error handling of "
+"AddGeometryColumns."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:980
+#, no-c-format
+msgid "Release 1.3.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:981
+#, no-c-format
+msgid "Release date: 2008/12/15"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:982
+#, no-c-format
+msgid ""
+"If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
+"hard upgrade is recommended. This release is a bug fix release to address a "
+"failure in ST_Force_Collection and related functions that critically affects "
+"using MapServer with LINE layers."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:989
+#, no-c-format
+msgid "Release 1.3.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:990
+#, no-c-format
+msgid "Release date: 2008/11/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:991
+#, no-c-format
+msgid ""
+"This release adds support for GeoJSON output, building with PostgreSQL 8.4, "
+"improves documentation quality and output aesthetics, adds function-level "
+"SQL documentation, and improves performance for some spatial predicates "
+"(point-in-polygon tests)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:996
+#, no-c-format
+msgid ""
+"Bug fixes include removal of crashers in handling circular strings for many "
+"functions, some memory leaks removed, a linear referencing failure for "
+"measures on vertices, and more. See the NEWS file for details."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1003
+#, no-c-format
+msgid "Release 1.3.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1005
+#, no-c-format
+msgid "Release date: 2008/04/12"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1007
+#, no-c-format
+msgid ""
+"This release fixes bugs shp2pgsql, adds enhancements to SVG and KML support, "
+"adds a ST_SimplifyPreserveTopology function, makes the build more sensitive "
+"to GEOS versions, and fixes a handful of severe but rare failure cases."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1014
+#, no-c-format
+msgid "Release 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1016
+#, no-c-format
+msgid "Release date: 2007/12/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1018
+#, no-c-format
+msgid ""
+"This release fixes bugs in ST_EndPoint() and ST_Envelope, improves support "
+"for JDBC building and OS/X, and adds better support for GML output with "
+"ST_AsGML(), including GML3 output."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1024
+#, no-c-format
+msgid "Release 1.3.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1026
+#, no-c-format
+msgid "Release date: 2007/08/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1028
+#, no-c-format
+msgid ""
+"This release fixes some oversights in the previous release around version "
+"numbering, documentation, and tagging."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1033
+#, no-c-format
+msgid "Release 1.3.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1035
+#, no-c-format
+msgid "Release date: 2007/08/09"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1037
+#, no-c-format
+msgid ""
+"This release provides performance enhancements to the relational functions, "
+"adds new relational functions and begins the migration of our function names "
+"to the SQL-MM convention, using the spatial type (SP) prefix."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1043
+#, no-c-format
+msgid "Added Functionality"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1045
+#, no-c-format
+msgid "JDBC: Added Hibernate Dialect (thanks to Norman Barker)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1047
+#, no-c-format
+msgid ""
+"Added ST_Covers and ST_CoveredBy relational functions. Description and "
+"justification of these functions can be found at <ulink url=\"http://lin-ear-"
+"th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html"
+"\">http://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-"
+"spatial.html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1051
+#, no-c-format
+msgid "Added ST_DWithin relational function."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1055
+#, no-c-format
+msgid "Performance Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1057
+#, no-c-format
+msgid ""
+"Added cached and indexed point-in-polygon short-circuits for the functions "
+"ST_Contains, ST_Intersects, ST_Within and ST_Disjoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1060
+#, no-c-format
+msgid ""
+"Added inline index support for relational functions (except ST_Disjoint)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1065
+#, no-c-format
+msgid "Other Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1067
+#, no-c-format
+msgid ""
+"Extended curved geometry support into the geometry accessor and some "
+"processing functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1070
+#, no-c-format
+msgid ""
+"Began migration of functions to the SQL-MM naming convention; using a "
+"spatial type (ST) prefix."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1073
+#, no-c-format
+msgid "Added initial support for PostgreSQL 8.3"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1078
+#, no-c-format
+msgid "Release 1.2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1080
+#, no-c-format
+msgid "Release date: 2007/01/11"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1082
+#, no-c-format
+msgid ""
+"This release provides bug fixes in PostgreSQL 8.2 support and some small "
+"performance enhancements."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1086 release_notes.xml:1114 release_notes.xml:2336
+#, no-c-format
+msgid "Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1088
+#, no-c-format
+msgid "Fixed point-in-polygon shortcut bug in Within()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1090
+#, no-c-format
+msgid "Fixed PostgreSQL 8.2 NULL handling for indexes."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1092
+#, no-c-format
+msgid "Updated RPM spec files."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1094
+#, no-c-format
+msgid "Added short-circuit for Transform() in no-op case."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1096
+#, no-c-format
+msgid ""
+"JDBC: Fixed JTS handling for multi-dimensional geometries (thanks to Thomas "
+"Marti for hint and partial patch). Additionally, now JavaDoc is compiled and "
+"packaged. Fixed classpath problems with GCJ. Fixed pgjdbc 8.2 compatibility, "
+"losing support for jdk 1.3 and older."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1105
+#, no-c-format
+msgid "Release 1.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1107
+#, no-c-format
+msgid "Release date: 2006/12/08"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1109
+#, no-c-format
+msgid ""
+"This release provides type definitions along with serialization/"
+"deserialization capabilities for SQL-MM defined curved geometries, as well "
+"as performance enhancements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1116
+#, no-c-format
+msgid "Added curved geometry type support for serialization/deserialization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1119
+#, no-c-format
+msgid ""
+"Added point-in-polygon shortcircuit to the Contains and Within functions to "
+"improve performance for these cases."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1125
+#, no-c-format
+msgid "Release 1.1.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1127
+#, no-c-format
+msgid "Release date: 2006/11/02"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1129
+#, no-c-format
+msgid ""
+"This is a bugfix release, in particular fixing a critical error with GEOS "
+"interface in 64bit systems. Includes an updated of the SRS parameters and an "
+"improvement in reprojections (take Z in consideration). Upgrade is "
+"<emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1135 release_notes.xml:1186 release_notes.xml:1237
+#: release_notes.xml:1292 release_notes.xml:1371 release_notes.xml:1437
+#: release_notes.xml:1510 release_notes.xml:1654 release_notes.xml:1711
+#: release_notes.xml:1774 release_notes.xml:1832 release_notes.xml:1890
+#: release_notes.xml:1930 release_notes.xml:1982 release_notes.xml:2034
+#: release_notes.xml:2073 release_notes.xml:2110 release_notes.xml:2177
+#: release_notes.xml:2274 release_notes.xml:2328
+#, no-c-format
+msgid "Upgrading"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1137 release_notes.xml:1188 release_notes.xml:1239
+#: release_notes.xml:1294 release_notes.xml:1373 release_notes.xml:1439
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later follow the <link linkend="
+"\"soft_upgrade\">soft upgrade</link> procedure."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1140 release_notes.xml:1191 release_notes.xml:1242
+#: release_notes.xml:1297 release_notes.xml:1376 release_notes.xml:1442
+#: release_notes.xml:1518 release_notes.xml:1659 release_notes.xml:1716
+#: release_notes.xml:1779
+#, no-c-format
+msgid ""
+"If you are upgrading from a release <emphasis>between 1.0.0RC6 and 1.0.2</"
+"emphasis> (inclusive) and really want a live upgrade read the <link linkend="
+"\"rel_1.0.3_upgrading\">upgrade section</link> of the 1.0.3 release notes "
+"chapter."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1145 release_notes.xml:1196 release_notes.xml:1247
+#: release_notes.xml:1302 release_notes.xml:1381 release_notes.xml:1447
+#: release_notes.xml:1523 release_notes.xml:1664 release_notes.xml:1721
+#: release_notes.xml:1784
+#, no-c-format
+msgid ""
+"Upgrade from any release prior to 1.0.0RC6 requires an <link linkend="
+"\"hard_upgrade\">hard upgrade</link>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1152
+#, no-c-format
+msgid "fixed CAPI change that broke 64-bit platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1154
+#, no-c-format
+msgid "loader/dumper: fixed regression tests and usage output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1156
+#, no-c-format
+msgid "Fixed setSRID() bug in JDBC, thanks to Thomas Marti"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1160 release_notes.xml:1344 release_notes.xml:1415
+#: release_notes.xml:1629 release_notes.xml:1755 release_notes.xml:2056
+#: release_notes.xml:2093 release_notes.xml:2145 release_notes.xml:2247
+#: release_notes.xml:2310
+#, no-c-format
+msgid "Other changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1162
+#, no-c-format
+msgid "use Z ordinate in reprojections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1164
+#, no-c-format
+msgid "spatial_ref_sys.sql updated to EPSG 6.11.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1166
+#, no-c-format
+msgid ""
+"Simplified Version.config infrastructure to use a single pack of version "
+"variables for everything."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1169
+#, no-c-format
+msgid "Include the Version.config in loader/dumper USAGE messages"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1172
+#, no-c-format
+msgid "Replace hand-made, fragile JDBC version parser with Properties"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1178
+#, no-c-format
+msgid "Release 1.1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1180
+#, no-c-format
+msgid "Release date: 2006/10/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1182
+#, no-c-format
+msgid ""
+"This is an bugfix release, including a critical segfault on win32. Upgrade "
+"is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1203
+#, no-c-format
+msgid ""
+"Fixed MingW link error that was causing pgsql2shp to segfault on Win32 when "
+"compiled for PostgreSQL 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1206
+#, no-c-format
+msgid "fixed nullpointer Exception in Geometry.equals() method in Java"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1209
+#, no-c-format
+msgid ""
+"Added EJB3Spatial.odt to fulfill the GPL requirement of distributing the "
+"\"preferred form of modification\""
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1212
+#, no-c-format
+msgid "Removed obsolete synchronization from JDBC Jts code."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1214
+#, no-c-format
+msgid ""
+"Updated heavily outdated README files for shp2pgsql/pgsql2shp by merging "
+"them with the manpages."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1217
+#, no-c-format
+msgid ""
+"Fixed version tag in jdbc code that still said \"1.1.3\" in the \"1.1.4\" "
+"release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1224
+#, no-c-format
+msgid "Added -S option for non-multi geometries to shp2pgsql"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1229
+#, no-c-format
+msgid "Release 1.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1231
+#, no-c-format
+msgid "Release date: 2006/09/27"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1233
+#, no-c-format
+msgid ""
+"This is an bugfix release including some improvements in the Java interface. "
+"Upgrade is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1254
+#, no-c-format
+msgid "Fixed support for PostgreSQL 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1256
+#, no-c-format
+msgid "Fixed bug in collect() function discarding SRID of input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1258
+#, no-c-format
+msgid "Added SRID match check in MakeBox2d and MakeBox3d"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1260
+#, no-c-format
+msgid "Fixed regress tests to pass with GEOS-3.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1262
+#, no-c-format
+msgid "Improved pgsql2shp run concurrency."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1266
+#, no-c-format
+msgid "Java changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1268
+#, no-c-format
+msgid ""
+"reworked JTS support to reflect new upstream JTS developers' attitude to "
+"SRID handling. Simplifies code and drops build depend on GNU trove."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1272
+#, no-c-format
+msgid ""
+"Added EJB2 support generously donated by the \"Geodetix s.r.l. Company\" "
+"<ulink url=\"http://www.geodetix.it/\">http://www.geodetix.it/</ulink>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1275
+#, no-c-format
+msgid ""
+"Added EJB3 tutorial / examples donated by Norman Barker <nbarker at ittvis."
+"com>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1278
+#, no-c-format
+msgid "Reorganized java directory layout a little."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1283
+#, no-c-format
+msgid "Release 1.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1285
+#, no-c-format
+msgid "Release date: 2006/06/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1287
+#, no-c-format
+msgid ""
+"This is an bugfix release including also some new functionalities (most "
+"notably long transaction support) and portability enhancements. Upgrade is "
+"<emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1307
+#, no-c-format
+msgid "Bug fixes / correctness"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1309
+#, no-c-format
+msgid "BUGFIX in distance(poly,poly) giving wrong results."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1311
+#, no-c-format
+msgid "BUGFIX in pgsql2shp successful return code."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1313
+#, no-c-format
+msgid "BUGFIX in shp2pgsql handling of MultiLine WKT."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1315
+#, no-c-format
+msgid "BUGFIX in affine() failing to update bounding box."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1317
+#, no-c-format
+msgid ""
+"WKT parser: forbidden construction of multigeometries with EMPTY elements "
+"(still supported for GEOMETRYCOLLECTION)."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1322 release_notes.xml:1398 release_notes.xml:1471
+#, no-c-format
+msgid "New functionalities"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1324
+#, no-c-format
+msgid "NEW Long Transactions support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1326
+#, no-c-format
+msgid "NEW DumpRings() function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1328
+#, no-c-format
+msgid "NEW AsHEXEWKB(geom, XDR|NDR) function."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1332 release_notes.xml:2223
+#, no-c-format
+msgid "JDBC changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1334
+#, no-c-format
+msgid "Improved regression tests: MultiPoint and scientific ordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1337
+#, no-c-format
+msgid "Fixed some minor bugs in jdbc code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1339
+#, no-c-format
+msgid ""
+"Added proper accessor functions for all fields in preparation of making "
+"those fields private later"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1346
+#, no-c-format
+msgid "NEW regress test support for loader/dumper."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1348
+#, no-c-format
+msgid "Added --with-proj-libdir and --with-geos-libdir configure switches."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1351
+#, no-c-format
+msgid "Support for build Tru64 build."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1353
+#, no-c-format
+msgid "Use Jade for generating documentation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1355
+#, no-c-format
+msgid "Don't link pgsql2shp to more libs then required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1357
+#, no-c-format
+msgid "Initial support for PostgreSQL 8.2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1362
+#, no-c-format
+msgid "Release 1.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1364
+#, no-c-format
+msgid "Release date: 2006/03/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1366
+#, no-c-format
+msgid ""
+"This is an bugfix release including some new functions and portability "
+"enhancements. Upgrade is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1388
+#, no-c-format
+msgid "BUGFIX in SnapToGrid() computation of output bounding box"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1390
+#, no-c-format
+msgid "BUGFIX in EnforceRHR()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1392
+#, no-c-format
+msgid "jdbc2 SRID handling fixes in JTS code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1394
+#, no-c-format
+msgid "Fixed support for 64bit archs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1400
+#, no-c-format
+msgid "Regress tests can now be run *before* postgis installation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1403
+#, no-c-format
+msgid "New affine() matrix transformation functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1405
+#, no-c-format
+msgid "New rotate{,X,Y,Z}() function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1407
+#, no-c-format
+msgid "Old translating and scaling functions now use affine() internally"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1410
+#, no-c-format
+msgid ""
+"Embedded access control in estimated_extent() for builds against pgsql >= "
+"8.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1417
+#, no-c-format
+msgid "More portable ./configure script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1419
+#, no-c-format
+msgid "Changed ./run_test script to have more sane default behaviour"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1425
+#, no-c-format
+msgid "Release 1.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1427
+#, no-c-format
+msgid "Release date: 2006/01/23"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1429
+#, no-c-format
+msgid ""
+"This is an important Bugfix release, upgrade is <emphasis>highly "
+"recommended</emphasis>. Previous version contained a bug in postgis_restore."
+"pl preventing <link linkend=\"hard_upgrade\">hard upgrade</link> procedure "
+"to complete and a bug in GEOS-2.2+ connector preventing GeometryCollection "
+"objects to be used in topological operations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1454
+#, no-c-format
+msgid "Fixed a premature exit in postgis_restore.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1456
+#, no-c-format
+msgid "BUGFIX in geometrycollection handling of GEOS-CAPI connector"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1459
+#, no-c-format
+msgid "Solaris 2.7 and MingW support improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1461
+#, no-c-format
+msgid "BUGFIX in line_locate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1463
+#, no-c-format
+msgid "Fixed handling of postgresql paths"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1465
+#, no-c-format
+msgid "BUGFIX in line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1467
+#, no-c-format
+msgid "Added support for localized cluster in regress tester"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1473
+#, no-c-format
+msgid "New Z and M interpolation in line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1475
+#, no-c-format
+msgid "New Z and M interpolation in line_interpolate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1477
+#, no-c-format
+msgid "added NumInteriorRing() alias due to OpenGIS ambiguity"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1482
+#, no-c-format
+msgid "Release 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1484
+#, no-c-format
+msgid "Release date: 2005/12/21"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1486
+#, no-c-format
+msgid ""
+"This is a Minor release, containing many improvements and new things. Most "
+"notably: build procedure greatly simplified; transform() performance "
+"drastically improved; more stable GEOS connectivity (CAPI support); lots of "
+"new functions; draft topology support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1491
+#, no-c-format
+msgid ""
+"It is <emphasis>highly recommended</emphasis> that you upgrade to GEOS-2.2.x "
+"before installing PostGIS, this will ensure future GEOS upgrades won't "
+"require a rebuild of the PostGIS library."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1496
+#, no-c-format
+msgid "Credits"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1498
+#, no-c-format
+msgid ""
+"This release includes code from Mark Cave Ayland for caching of proj4 "
+"objects. Markus Schaber added many improvements in his JDBC2 code. Alex "
+"Bodnaru helped with PostgreSQL source dependency relief and provided Debian "
+"specfiles. Michael Fuhr tested new things on Solaris arch. David Techer and "
+"Gerald Fenoy helped testing GEOS C-API connector. Hartmut Tschauner provided "
+"code for the azimuth() function. Devrim GUNDUZ provided RPM specfiles. Carl "
+"Anderson helped with the new area building functions. See the <link linkend="
+"\"credits_other_contributors\">credits</link> section for more names."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1512
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
+"emphasis> need a dump/reload. Simply sourcing the new lwpostgis_upgrade.sql "
+"script in all your existing databases will work. See the <link linkend="
+"\"soft_upgrade\">soft upgrade</link> chapter for more information."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1528
+#, no-c-format
+msgid "New functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1530
+#, no-c-format
+msgid "scale() and transscale() companion methods to translate()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1532
+#, no-c-format
+msgid "line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1534
+#, no-c-format
+msgid "line_locate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1536
+#, no-c-format
+msgid "M(point)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1538
+#, no-c-format
+msgid "LineMerge(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1540
+#, no-c-format
+msgid "shift_longitude(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1542
+#, no-c-format
+msgid "azimuth(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1544
+#, no-c-format
+msgid "locate_along_measure(geometry, float8)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1546
+#, no-c-format
+msgid "locate_between_measures(geometry, float8, float8)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1548
+#, no-c-format
+msgid "SnapToGrid by point offset (up to 4d support)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1550
+#, no-c-format
+msgid "BuildArea(any_geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1552
+#, no-c-format
+msgid "OGC BdPolyFromText(linestring_wkt, srid)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1554
+#, no-c-format
+msgid "OGC BdMPolyFromText(linestring_wkt, srid)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1556
+#, no-c-format
+msgid "RemovePoint(linestring, offset)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1558
+#, no-c-format
+msgid "ReplacePoint(linestring, offset, point)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1564
+#, no-c-format
+msgid "Fixed memory leak in polygonize()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1566
+#, no-c-format
+msgid "Fixed bug in lwgeom_as_anytype cast functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1568
+#, no-c-format
+msgid ""
+"Fixed USE_GEOS, USE_PROJ and USE_STATS elements of postgis_version() output "
+"to always reflect library state."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1573
+#, no-c-format
+msgid "Function semantic changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1575
+#, no-c-format
+msgid "SnapToGrid doesn't discard higher dimensions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1577
+#, no-c-format
+msgid ""
+"Changed Z() function to return NULL if requested dimension is not available"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1582
+#, no-c-format
+msgid "Performance improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1584
+#, no-c-format
+msgid "Much faster transform() function, caching proj4 objects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1586
+#, no-c-format
+msgid ""
+"Removed automatic call to fix_geometry_columns() in AddGeometryColumns() and "
+"update_geometry_stats()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1591
+#, no-c-format
+msgid "JDBC2 works"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1593
+#, no-c-format
+msgid "Makefile improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1595 release_notes.xml:1631
+#, no-c-format
+msgid "JTS support improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1597
+#, no-c-format
+msgid "Improved regression test system"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1599
+#, no-c-format
+msgid "Basic consistency check method for geometry collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1601
+#, no-c-format
+msgid "Support for (Hex)(E)wkb"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1603
+#, no-c-format
+msgid "Autoprobing DriverWrapper for HexWKB / EWKT switching"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1605
+#, no-c-format
+msgid "fix compile problems in ValueSetter for ancient jdk releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1608
+#, no-c-format
+msgid "fix EWKT constructors to accept SRID=4711; representation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1610
+#, no-c-format
+msgid "added preliminary read-only support for java2d geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1614
+#, no-c-format
+msgid "Other new things"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1616
+#, no-c-format
+msgid ""
+"Full autoconf-based configuration, with PostgreSQL source dependency relief"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1619
+#, no-c-format
+msgid "GEOS C-API support (2.2.0 and higher)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1621
+#, no-c-format
+msgid "Initial support for topology modelling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1623
+#, no-c-format
+msgid "Debian and RPM specfiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1625
+#, no-c-format
+msgid "New lwpostgis_upgrade.sql script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1633
+#, no-c-format
+msgid "Stricter mapping between DBF and SQL integer and string attributes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1636
+#, no-c-format
+msgid "Wider and cleaner regression test suite"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1638
+#, no-c-format
+msgid "old jdbc code removed from release"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1640
+#, no-c-format
+msgid "obsoleted direct use of postgis_proc_upgrade.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1642
+#, no-c-format
+msgid "scripts version unified with release version"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1647
+#, no-c-format
+msgid "Release 1.0.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1649
+#, no-c-format
+msgid "Release date: 2005/12/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1651 release_notes.xml:1887
+#, no-c-format
+msgid "Contains a few bug fixes and improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1656 release_notes.xml:1713
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
+"emphasis> need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1671
+#, no-c-format
+msgid ""
+"Fixed palloc(0) call in collection deserializer (only gives problem with --"
+"enable-cassert)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1674
+#, no-c-format
+msgid "Fixed bbox cache handling bugs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1676
+#, no-c-format
+msgid "Fixed geom_accum(NULL, NULL) segfault"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1678
+#, no-c-format
+msgid "Fixed segfault in addPoint()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1680
+#, no-c-format
+msgid "Fixed short-allocation in lwcollection_clone()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1682
+#, no-c-format
+msgid "Fixed bug in segmentize()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1684
+#, no-c-format
+msgid "Fixed bbox computation of SnapToGrid output"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1688 release_notes.xml:1806 release_notes.xml:1868
+#: release_notes.xml:1914
+#, no-c-format
+msgid "Improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1690
+#, no-c-format
+msgid "Initial support for postgresql 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1692
+#, no-c-format
+msgid "Added missing SRID mismatch checks in GEOS ops"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1697
+#, no-c-format
+msgid "Release 1.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1699
+#, no-c-format
+msgid "Release date: 2005/11/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1701
+#, no-c-format
+msgid ""
+"Contains memory-alignment fixes in the library, a segfault fix in loader's "
+"handling of UTF8 attributes and a few improvements and cleanups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1706
+#, no-c-format
+msgid ""
+"Return code of shp2pgsql changed from previous releases to conform to unix "
+"standards (return 0 on success)."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1726 release_notes.xml:1941 release_notes.xml:1993
+#: release_notes.xml:2042 release_notes.xml:2084 release_notes.xml:2118
+#: release_notes.xml:2185 release_notes.xml:2282
+#, no-c-format
+msgid "Library changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1728
+#, no-c-format
+msgid "Fixed memory alignment problems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1730
+#, no-c-format
+msgid "Fixed computation of null values fraction in analyzer"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1732
+#, no-c-format
+msgid "Fixed a small bug in the getPoint4d_p() low-level function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1735
+#, no-c-format
+msgid "Speedup of serializer functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1737
+#, no-c-format
+msgid "Fixed a bug in force_3dm(), force_3dz() and force_4d()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1741
+#, no-c-format
+msgid "Loader changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1743
+#, no-c-format
+msgid "Fixed return code of shp2pgsql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1745
+#, no-c-format
+msgid "Fixed back-compatibility issue in loader (load of null shapefiles)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1748
+#, no-c-format
+msgid "Fixed handling of trailing dots in dbf numerical attributes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1751
+#, no-c-format
+msgid "Segfault fix in shp2pgsql (utf8 encoding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1757
+#, no-c-format
+msgid "Schema aware postgis_proc_upgrade.pl, support for pgsql 7.2+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1760
+#, no-c-format
+msgid "New \"Reporting Bugs\" chapter in manual"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1765
+#, no-c-format
+msgid "Release 1.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1767
+#, no-c-format
+msgid "Release date: 2005/09/09"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1769
+#, no-c-format
+msgid ""
+"Contains important bug fixes and a few improvements. In particular, it fixes "
+"a memory leak preventing successful build of GiST indexes for large spatial "
+"tables."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1776
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 you <emphasis>DO NOT</emphasis> need "
+"a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1791
+#, no-c-format
+msgid "Memory leak plugged in GiST indexing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1793
+#, no-c-format
+msgid "Segfault fix in transform() handling of proj4 errors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1795
+#, no-c-format
+msgid "Fixed some proj4 texts in spatial_ref_sys (missing +proj)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1797
+#, no-c-format
+msgid ""
+"Loader: fixed string functions usage, reworked NULL objects check, fixed "
+"segfault on MULTILINESTRING input."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1800
+#, no-c-format
+msgid "Fixed bug in MakeLine dimension handling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1802
+#, no-c-format
+msgid "Fixed bug in translate() corrupting output bounding box"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1808
+#, no-c-format
+msgid "Documentation improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1810
+#, no-c-format
+msgid "More robust selectivity estimator"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1812
+#, no-c-format
+msgid "Minor speedup in distance()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1814
+#, no-c-format
+msgid "Minor cleanups"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1816
+#, no-c-format
+msgid "GiST indexing cleanup"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1818
+#, no-c-format
+msgid "Looser syntax acceptance in box3d parser"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1823
+#, no-c-format
+msgid "Release 1.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1825
+#, no-c-format
+msgid "Release date: 2005/08/08"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1827
+#, no-c-format
+msgid ""
+"Contains some bug fixes - <emphasis>including a severe one affecting "
+"correctness of stored geometries</emphasis> - and a few improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1834
+#, no-c-format
+msgid ""
+"Due to a bug in a bounding box computation routine, the upgrade procedure "
+"requires special attention, as bounding boxes cached in the database could "
+"be incorrect."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1838
+#, no-c-format
+msgid ""
+"An <link linkend=\"hard_upgrade\">hard upgrade</link> procedure (dump/"
+"reload) will force recomputation of all bounding boxes (not included in "
+"dumps). This is <emphasis>required</emphasis> if upgrading from releases "
+"prior to 1.0.0RC6."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1843
+#, no-c-format
+msgid ""
+"If you are upgrading from versions 1.0.0RC6 or up, this release includes a "
+"perl script (utils/rebuild_bbox_caches.pl) to force recomputation of "
+"geometries' bounding boxes and invoke all operations required to propagate "
+"eventual changes in them (geometry statistics update, reindexing). Invoke "
+"the script after a make install (run with no args for syntax help). "
+"Optionally run utils/postgis_proc_upgrade.pl to refresh postgis procedures "
+"and functions signatures (see <link linkend=\"soft_upgrade\">Soft upgrade</"
+"link>)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1856
+#, no-c-format
+msgid "Severe bugfix in lwgeom's 2d bounding box computation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1858
+#, no-c-format
+msgid "Bugfix in WKT (-w) POINT handling in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1860
+#, no-c-format
+msgid "Bugfix in dumper on 64bit machines"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1862
+#, no-c-format
+msgid "Bugfix in dumper handling of user-defined queries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1864
+#, no-c-format
+msgid "Bugfix in create_undef.pl script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1870
+#, no-c-format
+msgid "Small performance improvement in canonical input function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1872
+#, no-c-format
+msgid "Minor cleanups in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1874
+#, no-c-format
+msgid "Support for multibyte field names in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1876
+#, no-c-format
+msgid "Improvement in the postgis_restore.pl script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1878
+#, no-c-format
+msgid "New rebuild_bbox_caches.pl util script"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1883
+#, no-c-format
+msgid "Release 1.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1885
+#, no-c-format
+msgid "Release date: 2005/07/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1892 release_notes.xml:1932
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC6 or up you <emphasis>DO NOT</"
+"emphasis> need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1895 release_notes.xml:1935
+#, no-c-format
+msgid ""
+"Upgrading from older releases requires a dump/reload. See the <link linkend="
+"\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1903
+#, no-c-format
+msgid "Fault tolerant btree ops"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1905
+#, no-c-format
+msgid "Memory leak plugged in pg_error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1907
+#, no-c-format
+msgid "Rtree index fix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1909
+#, no-c-format
+msgid "Cleaner build scripts (avoided mix of CFLAGS and CXXFLAGS)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1916
+#, no-c-format
+msgid "New index creation capabilities in loader (-I switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1918
+#, no-c-format
+msgid "Initial support for postgresql 8.1dev"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1923
+#, no-c-format
+msgid "Release 1.0.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1925
+#, no-c-format
+msgid "Release date: 2005/05/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1927
+#, no-c-format
+msgid "Contains a few bug fixes and some improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1943
+#, no-c-format
+msgid "BUGFIX in 3d computation of length_spheroid()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1945
+#, no-c-format
+msgid "BUGFIX in join selectivity estimator"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1949 release_notes.xml:2005
+#, no-c-format
+msgid "Other changes/additions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1951
+#, no-c-format
+msgid "BUGFIX in shp2pgsql escape functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1953
+#, no-c-format
+msgid "better support for concurrent postgis in multiple schemas"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1955
+#, no-c-format
+msgid "documentation fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1957
+#, no-c-format
+msgid "jdbc2: compile with \"-target 1.2 -source 1.2\" by default"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1959
+#, no-c-format
+msgid "NEW -k switch for pgsql2shp"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1961
+#, no-c-format
+msgid "NEW support for custom createdb options in postgis_restore.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1964
+#, no-c-format
+msgid "BUGFIX in pgsql2shp attribute names unicity enforcement"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1966
+#, no-c-format
+msgid "BUGFIX in Paris projections definitions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1968
+#, no-c-format
+msgid "postgis_restore.pl cleanups"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1973
+#, no-c-format
+msgid "Release 1.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1975
+#, no-c-format
+msgid "Release date: 2005/04/19"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1977
+#, no-c-format
+msgid ""
+"Final 1.0.0 release. Contains a few bug fixes, some improvements in the "
+"loader (most notably support for older postgis versions), and more docs."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1984
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC6 you <emphasis>DO NOT</emphasis> "
+"need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1987 release_notes.xml:2078
+#, no-c-format
+msgid ""
+"Upgrading from any other precedent release requires a dump/reload. See the "
+"<link linkend=\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1995
+#, no-c-format
+msgid "BUGFIX in transform() releasing random memory address"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1997
+#, no-c-format
+msgid "BUGFIX in force_3dm() allocating less memory then required"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2000
+#, no-c-format
+msgid "BUGFIX in join selectivity estimator (defaults, leaks, tuplecount, sd)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2007
+#, no-c-format
+msgid "BUGFIX in shp2pgsql escape of values starting with tab or single-quote"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2010
+#, no-c-format
+msgid "NEW manual pages for loader/dumper"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2012
+#, no-c-format
+msgid "NEW shp2pgsql support for old (HWGEOM) postgis versions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2014
+#, no-c-format
+msgid "NEW -p (prepare) flag for shp2pgsql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2016
+#, no-c-format
+msgid "NEW manual chapter about OGC compliancy enforcement"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2018
+#, no-c-format
+msgid "NEW autoconf support for JTS lib"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2020
+#, no-c-format
+msgid "BUGFIX in estimator testers (support for LWGEOM and schema parsing)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2026
+#, no-c-format
+msgid "Release 1.0.0RC6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2028
+#, no-c-format
+msgid "Release date: 2005/03/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2030
+#, no-c-format
+msgid ""
+"Sixth release candidate for 1.0.0. Contains a few bug fixes and cleanups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2036 release_notes.xml:2112 release_notes.xml:2179
+#: release_notes.xml:2276 release_notes.xml:2330
+#, no-c-format
+msgid ""
+"You need a dump/reload to upgrade from precedent releases. See the <link "
+"linkend=\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2044
+#, no-c-format
+msgid "BUGFIX in multi()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2046
+#, no-c-format
+msgid "early return [when noop] from multi()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2050 release_notes.xml:2136 release_notes.xml:2209
+#: release_notes.xml:2301
+#, no-c-format
+msgid "Scripts changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2052
+#, no-c-format
+msgid "dropped {x,y}{min,max}(box2d) functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2058
+#, no-c-format
+msgid "BUGFIX in postgis_restore.pl scrip"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2060
+#, no-c-format
+msgid "BUGFIX in dumper's 64bit support"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2065
+#, no-c-format
+msgid "Release 1.0.0RC5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2067
+#, no-c-format
+msgid "Release date: 2005/03/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2069
+#, no-c-format
+msgid ""
+"Fifth release candidate for 1.0.0. Contains a few bug fixes and a "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2075
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC4 you <emphasis>DO NOT</emphasis> "
+"need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2086
+#, no-c-format
+msgid "BUGFIX (segfaulting) in box3d computation (yes, another!)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2089
+#, no-c-format
+msgid "BUGFIX (segfaulting) in estimated_extent()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2095
+#, no-c-format
+msgid "Small build scripts and utilities refinements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2097
+#, no-c-format
+msgid "Additional performance tips documented."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2102
+#, no-c-format
+msgid "Release 1.0.0RC4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2104
+#, no-c-format
+msgid "Release date: 2005/03/18"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2106
+#, no-c-format
+msgid ""
+"Fourth release candidate for 1.0.0. Contains bug fixes and a few "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2120
+#, no-c-format
+msgid "BUGFIX (segfaulting) in geom_accum()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2122
+#, no-c-format
+msgid "BUGFIX in 64bit architectures support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2124
+#, no-c-format
+msgid "BUGFIX in box3d computation function with collections."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2126
+#, no-c-format
+msgid "NEW subselects support in selectivity estimator."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2128
+#, no-c-format
+msgid "Early return from force_collection."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2130
+#, no-c-format
+msgid "Consistency check fix in SnapToGrid()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2132
+#, no-c-format
+msgid "Box2d output changed back to 15 significant digits."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2138
+#, no-c-format
+msgid "NEW distance_sphere() function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2140
+#, no-c-format
+msgid ""
+"Changed get_proj4_from_srid implementation to use PL/PGSQL instead of SQL."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2147
+#, no-c-format
+msgid "BUGFIX in loader and dumper handling of MultiLine shapes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2149
+#, no-c-format
+msgid "BUGFIX in loader, skipping all but first hole of polygons."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2152
+#, no-c-format
+msgid "jdbc2: code cleanups, Makefile improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2154
+#, no-c-format
+msgid ""
+"FLEX and YACC variables set *after* pgsql Makefile.global is included and "
+"only if the pgsql *stripped* version evaluates to the empty string"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2158
+#, no-c-format
+msgid "Added already generated parser in release"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2160
+#, no-c-format
+msgid "Build scripts refinements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2162
+#, no-c-format
+msgid "improved version handling, central Version.config"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2164
+#, no-c-format
+msgid "improvements in postgis_restore.pl"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2169
+#, no-c-format
+msgid "Release 1.0.0RC3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2171
+#, no-c-format
+msgid "Release date: 2005/02/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2173
+#, no-c-format
+msgid ""
+"Third release candidate for 1.0.0. Contains many bug fixes and improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2187
+#, no-c-format
+msgid "BUGFIX in transform(): missing SRID, better error handling."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2190
+#, no-c-format
+msgid "BUGFIX in memory alignment handling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2192
+#, no-c-format
+msgid ""
+"BUGFIX in force_collection() causing mapserver connector failures on simple "
+"(single) geometry types."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2195
+#, no-c-format
+msgid "BUGFIX in GeometryFromText() missing to add a bbox cache."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2197
+#, no-c-format
+msgid "reduced precision of box2d output."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2199
+#, no-c-format
+msgid "prefixed DEBUG macros with PGIS_ to avoid clash with pgsql one"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2202
+#, no-c-format
+msgid "plugged a leak in GEOS2POSTGIS converter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2204
+#, no-c-format
+msgid "Reduced memory usage by early releasing query-context palloced one."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2211
+#, no-c-format
+msgid "BUGFIX in 72 index bindings."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2213
+#, no-c-format
+msgid ""
+"BUGFIX in probe_geometry_columns() to work with PG72 and support multiple "
+"geometry columns in a single table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2216
+#, no-c-format
+msgid "NEW bool::text cast"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2218
+#, no-c-format
+msgid "Some functions made IMMUTABLE from STABLE, for performance improvement."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2225
+#, no-c-format
+msgid "jdbc2: small patches, box2d/3d tests, revised docs and license."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2228
+#, no-c-format
+msgid "jdbc2: bug fix and testcase in for pgjdbc 8.0 type autoregistration"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2231
+#, no-c-format
+msgid ""
+"jdbc2: Removed use of jdk1.4 only features to enable build with older jdk "
+"releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2234
+#, no-c-format
+msgid "jdbc2: Added support for building against pg72jdbc2.jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2236
+#, no-c-format
+msgid "jdbc2: updated and cleaned makefile"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2238
+#, no-c-format
+msgid "jdbc2: added BETA support for jts geometry classes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2240
+#, no-c-format
+msgid "jdbc2: Skip known-to-fail tests against older PostGIS servers."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2243
+#, no-c-format
+msgid "jdbc2: Fixed handling of measured geometries in EWKT."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2249
+#, no-c-format
+msgid "new performance tips chapter in manual"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2251
+#, no-c-format
+msgid "documentation updates: pgsql72 requirement, lwpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2253
+#, no-c-format
+msgid "few changes in autoconf"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2255
+#, no-c-format
+msgid "BUILDDATE extraction made more portable"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2257
+#, no-c-format
+msgid "fixed spatial_ref_sys.sql to avoid vacuuming the whole database."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2260
+#, no-c-format
+msgid ""
+"spatial_ref_sys: changed Paris entries to match the ones distributed with 0."
+"x."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2266
+#, no-c-format
+msgid "Release 1.0.0RC2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2268
+#, no-c-format
+msgid "Release date: 2005/01/26"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2270
+#, no-c-format
+msgid ""
+"Second release candidate for 1.0.0 containing bug fixes and a few "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2284
+#, no-c-format
+msgid "BUGFIX in pointarray box3d computation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2286
+#, no-c-format
+msgid "BUGFIX in distance_spheroid definition"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2288
+#, no-c-format
+msgid "BUGFIX in transform() missing to update bbox cache"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2290
+#, no-c-format
+msgid "NEW jdbc driver (jdbc2)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2292
+#, no-c-format
+msgid "GEOMETRYCOLLECTION(EMPTY) syntax support for backward compatibility"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2295
+#, no-c-format
+msgid "Faster binary outputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2297
+#, no-c-format
+msgid "Stricter OGC WKB/WKT constructors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2303
+#, no-c-format
+msgid "More correct STABLE, IMMUTABLE, STRICT uses in lwpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2306
+#, no-c-format
+msgid "stricter OGC WKB/WKT constructors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2312
+#, no-c-format
+msgid "Faster and more robust loader (both i18n and not)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2314
+#, no-c-format
+msgid "Initial autoconf script"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2319
+#, no-c-format
+msgid "Release 1.0.0RC1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2321
+#, no-c-format
+msgid "Release date: 2005/01/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2323
+#, no-c-format
+msgid ""
+"This is the first candidate of a major postgis release, with internal "
+"storage of postgis types redesigned to be smaller and faster on indexed "
+"queries."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2338
+#, no-c-format
+msgid "Faster canonical input parsing."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2340
+#, no-c-format
+msgid "Lossless canonical output."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2342
+#, no-c-format
+msgid "EWKB Canonical binary IO with PG>73."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2344
+#, no-c-format
+msgid ""
+"Support for up to 4d coordinates, providing lossless shapefile->postgis-"
+">shapefile conversion."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2347
+#, no-c-format
+msgid ""
+"New function: UpdateGeometrySRID(), AsGML(), SnapToGrid(), ForceRHR(), "
+"estimated_extent(), accum()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2350
+#, no-c-format
+msgid "Vertical positioning indexed operators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2352
+#, no-c-format
+msgid "JOIN selectivity function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2354
+#, no-c-format
+msgid "More geometry constructors / editors."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2356
+#, no-c-format
+msgid "PostGIS extension API."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2358
+#, no-c-format
+msgid "UTF8 support in loader."
+msgstr ""
diff --git a/doc/po/es/reporting.xml.po b/doc/po/es/reporting.xml.po
new file mode 100644
index 0000000..7b28df5
--- /dev/null
+++ b/doc/po/es/reporting.xml.po
@@ -0,0 +1,210 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Carlos Barrios <gbarrios at aaa.upv.es>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2014-04-29 11:11+0000\n"
+"Last-Translator: Carlos Barrios <gbarrios at aaa.upv.es>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: reporting.xml:3
+#, no-c-format
+msgid "Reporting Problems"
+msgstr "Informar de problemas"
+
+#. Tag: title
+#: reporting.xml:6
+#, no-c-format
+msgid "Reporting Software Bugs"
+msgstr "Informar sobre errores de software"
+
+#. Tag: para
+#: reporting.xml:8
+#, no-c-format
+msgid ""
+"Reporting bugs effectively is a fundamental way to help PostGIS development. "
+"The most effective bug report is that enabling PostGIS developers to "
+"reproduce it, so it would ideally contain a script triggering it and every "
+"information regarding the environment in which it was detected. Good enough "
+"info can be extracted running <code>SELECT postgis_full_version()</code> "
+"[for postgis] and <code>SELECT version()</code> [for postgresql]."
+msgstr ""
+"Informar sobre errores efectivamente es una manera fundamental de ayudar en "
+"el desarrollo de PostGIS. El informe de errores más efectivo es el que "
+"permite a los desarrolladores de PostGIS reproducirlo, así que lo ideal "
+"sería que contenga un trozo de código que lo genere y toda la información "
+"posible del entorno en el que fue detectado. Una información bastante buena "
+"se puede obtener ejecutando <code>SELECT postgis_full_version()</code> [para "
+"postgis] y <code>SELECT version()</code> [para postgresql]."
+
+#. Tag: para
+#: reporting.xml:16
+#, no-c-format
+msgid ""
+"If you aren't using the latest release, it's worth taking a look at its "
+"<ulink url=\"http://svn.osgeo.org/postgis/trunk/NEWS\">release changelog</"
+"ulink> first, to find out if your bug has already been fixed."
+msgstr ""
+"Si no está usando la última versión, vale la pena echar un vistazo a su "
+"<ulink url=\"http://svn.osgeo.org/postgis/trunk/NEWS\">lista de cambios en "
+"la versión</ulink> primero, para ver si el error ya se ha solucionado."
+
+#. Tag: para
+#: reporting.xml:21
+#, no-c-format
+msgid ""
+"Using the <ulink url=\"http://trac.osgeo.org/postgis/\">PostGIS bug tracker</"
+"ulink> will ensure your reports are not discarded, and will keep you "
+"informed on its handling process. Before reporting a new bug please query "
+"the database to see if it is a known one, and if it is please add any new "
+"information you have about it."
+msgstr ""
+"Usar el <ulink url=\"http://trac.osgeo.org/postgis/\">seguimiento de errores "
+"de PostGIS</ulink> servirá para asegurarnos de que nuestros informes no son "
+"descartados, y nos mantendrá informados de como progresa su gestión. Antes "
+"de informar acerca de un nuevo error por favor consulte la base de datos "
+"para ver si es uno ya conocido, y si lo es, por favor, agregue la nueva "
+"información que tenga sobre él."
+
+#. Tag: para
+#: reporting.xml:28
+#, no-c-format
+msgid ""
+"You might want to read Simon Tatham's paper about <ulink url=\"http://www."
+"chiark.greenend.org.uk/~sgtatham/bugs.html\">How to Report Bugs Effectively</"
+"ulink> before filing a new report."
+msgstr ""
+"Puede leer la documentación de Simon Tatham acerca de <ulink url=\"http://"
+"www.chiark.greenend.org.uk/~sgtatham/bugs.html\">Cómo informar de errores de "
+"manera eficiente</ulink> antes de rellenar un nuevo informe."
+
+#. Tag: title
+#: reporting.xml:34
+#, no-c-format
+msgid "Reporting Documentation Issues"
+msgstr "Informando sobre problemas de documentación"
+
+#. Tag: para
+#: reporting.xml:36
+#, no-c-format
+msgid ""
+"The documentation should accurately reflect the features and behavior of the "
+"software. If it doesn't, it could be because of a software bug or because "
+"the documentation is in error or deficient."
+msgstr ""
+"La documentación debería reflejar con precisión las características y "
+"comportamiento del software. Si no es así, podría deberse a un error del "
+"software, o porque la documentación es deficiente o errónea."
+
+#. Tag: para
+#: reporting.xml:40
+#, no-c-format
+msgid ""
+"Documentation issues can also be reported to the <ulink url=\"http://trac."
+"osgeo.org/postgis\">PostGIS bug tracker</ulink>."
+msgstr ""
+"Los problemas con la documentación se pueden enviar también al <ulink url="
+"\"http://trac.osgeo.org/postgis\">Seguimiento de errores de PostGIS</ulink>."
+
+#. Tag: para
+#: reporting.xml:44
+#, no-c-format
+msgid ""
+"If your revision is trivial, just describe it in a new bug tracker issue, "
+"being specific about its location in the documentation."
+msgstr ""
+"Si su revisión es de poca importancia, tan sólo descríbala en un nuevo "
+"asunto de la lista de seguimiento, y sea específico acerca de en que parte "
+"de la documentación se encuentra."
+
+#. Tag: para
+#: reporting.xml:47
+#, no-c-format
+msgid ""
+"If your changes are more extensive, a Subversion patch is definitely "
+"preferred. This is a four step process on Unix (assuming you already have "
+"<ulink url=\"http://subversion.apache.org/\">Subversion</ulink> installed):"
+msgstr ""
+"Si sus cambios son más extensos, es preferible un envío por Subversion. Este "
+"es un proceso en cuatro pasos en Unix (suponiendo que tiene instalado ya "
+"<ulink url=\"http://subversion.apache.org/\">Subversion</ulink>):"
+
+#. Tag: para
+#: reporting.xml:54
+#, no-c-format
+msgid "Check out a copy of PostGIS' Subversion trunk. On Unix, type:"
+msgstr ""
+"Consiga una copia de la rama de PostGIS en Subversion. En Unix, teclee:"
+
+#. Tag: command
+#: reporting.xml:57
+#, no-c-format
+msgid "svn checkout http://svn.osgeo.org/postgis/trunk/"
+msgstr "svn checkout http://svn.osgeo.org/postgis/trunk/"
+
+#. Tag: para
+#: reporting.xml:60
+#, no-c-format
+msgid "This will be stored in the directory ./trunk"
+msgstr "Ésta se almacenará en la carpeta ./trunk"
+
+#. Tag: para
+#: reporting.xml:64
+#, no-c-format
+msgid ""
+"Make your changes to the documentation with your favorite text editor. On "
+"Unix, type (for example):"
+msgstr ""
+"Haga los cambios a la documentación con su editor favorito. En Unix, teclee "
+"(por ejemplo):"
+
+#. Tag: command
+#: reporting.xml:67
+#, no-c-format
+msgid "vim trunk/doc/postgis.xml"
+msgstr "vim trunk/doc/postgis.xml"
+
+#. Tag: para
+#: reporting.xml:69
+#, no-c-format
+msgid ""
+"Note that the documentation is written in DocBook XML rather than HTML, so "
+"if you are not familiar with it please follow the example of the rest of the "
+"documentation."
+msgstr ""
+"Tenga en cuenta que la documentación está escrita en DocBook XML y no en "
+"HTML, así que si no está familiarizado con este formato por favor siga el "
+"ejemplo del resto de la documentación."
+
+#. Tag: para
+#: reporting.xml:75
+#, no-c-format
+msgid ""
+"Make a patch file containing the differences from the master copy of the "
+"documentation. On Unix, type:"
+msgstr ""
+"Haga un fichero para solucionarlo que contenga las diferencias desde la "
+"copia maestra de la documentación. En Unix, teclee:"
+
+#. Tag: command
+#: reporting.xml:78
+#, no-c-format
+msgid "svn diff trunk/doc/postgis.xml > doc.patch"
+msgstr "svn diff trunk/doc/postgis.xml > doc.patch"
+
+#. Tag: para
+#: reporting.xml:83
+#, no-c-format
+msgid "Attach the patch to a new issue in bug tracker."
+msgstr "Adjunte la solución a un nuevo tema en el seguimiento de errores."
diff --git a/doc/po/es/using_postgis_app.xml.po b/doc/po/es/using_postgis_app.xml.po
new file mode 100644
index 0000000..ff587ff
--- /dev/null
+++ b/doc/po/es/using_postgis_app.xml.po
@@ -0,0 +1,1123 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Carlos Barrios <gbarrios at aaa.upv.es>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2014-02-08 23:56+0000\n"
+"Last-Translator: Carlos Barrios <gbarrios at aaa.upv.es>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: using_postgis_app.xml:3
+#, no-c-format
+msgid "Using PostGIS Geometry: Building Applications"
+msgstr "Usando PostGIS Geometry: Construyendo Aplicaciones"
+
+#. Tag: title
+#: using_postgis_app.xml:5
+#, no-c-format
+msgid "Using MapServer"
+msgstr "Usando Mapserver"
+
+#. Tag: para
+#: using_postgis_app.xml:7
+#, no-c-format
+msgid ""
+"The Minnesota MapServer is an internet web-mapping server which conforms to "
+"the OpenGIS Web Mapping Server specification."
+msgstr ""
+"El Minnesota MapServer es un servidor web de mapas para internet que cumple "
+"la especificación OpenGIS  Web Mapping Server 'Servidor de Mapas Web'."
+
+#. Tag: para
+#: using_postgis_app.xml:12
+#, no-c-format
+msgid ""
+"The MapServer homepage is at <ulink url=\"http://mapserver.org\">http://"
+"mapserver.org</ulink>."
+msgstr ""
+"La página principal de MapServer está en <ulink url=\"http://mapserver.org"
+"\">http://mapserver.org</ulink>."
+
+#. Tag: para
+#: using_postgis_app.xml:17
+#, no-c-format
+msgid ""
+"The OpenGIS Web Map Specification is at <ulink url=\"http://www."
+"opengeospatial.org/standards/wms\">http://www.opengeospatial.org/standards/"
+"wms</ulink>."
+msgstr ""
+"La Especificación de OpenGIS para Mapas Web está en <ulink url=\"http://www."
+"opengeospatial.org/standards/wms\">http://www.opengeospatial.org/standards/"
+"wms</ulink>."
+
+#. Tag: title
+#: using_postgis_app.xml:23
+#, no-c-format
+msgid "Basic Usage"
+msgstr "Uso Básico"
+
+#. Tag: para
+#: using_postgis_app.xml:25
+#, no-c-format
+msgid ""
+"To use PostGIS with MapServer, you will need to know about how to configure "
+"MapServer, which is beyond the scope of this documentation. This section "
+"will cover specific PostGIS issues and configuration details."
+msgstr ""
+"Para utilizar PostGIS con MapServer necesitará saber como configurar "
+"MapServer, lo cual está fuera del alcance de esta documentación. Esta "
+"sección cubrirá cuestiones específicas de PostGIS y detalles de su "
+"configuración."
+
+#. Tag: para
+#: using_postgis_app.xml:30
+#, no-c-format
+msgid "To use PostGIS with MapServer, you will need:"
+msgstr "Para usar PostGIS con MapServer, necesitará:"
+
+#. Tag: para
+#: using_postgis_app.xml:34
+#, no-c-format
+msgid "Version 0.6 or newer of PostGIS."
+msgstr "La versión 0.6 o posterior de PostGIS."
+
+#. Tag: para
+#: using_postgis_app.xml:38
+#, no-c-format
+msgid "Version 3.5 or newer of MapServer."
+msgstr "La versión 3.5 o posterior de MapServer."
+
+#. Tag: para
+#: using_postgis_app.xml:42
+#, no-c-format
+msgid ""
+"MapServer accesses PostGIS/PostgreSQL data like any other PostgreSQL client "
+"-- using the <filename>libpq</filename> interface. This means that MapServer "
+"can be installed on any machine with network access to the PostGIS server, "
+"and use PostGIS as a source of data. The faster the connection between the "
+"systems, the better."
+msgstr ""
+"MapServer accede a los datos de PostGIS/PostgreSQL como cualquier otro "
+"cliente de PostgreSQL -- usando la interfaz <filename>libpq</filename>. Esto "
+"significa que MapServer puede instalarse en cualquier máquina con acceso de "
+"red al servidor PostGIS, y usar PostGIS como una fuente de datos. La "
+"conexión entre los sistemas será mejor cuanto más rápida sea ésta."
+
+#. Tag: para
+#: using_postgis_app.xml:50
+#, no-c-format
+msgid ""
+"Compile and install MapServer, with whatever options you desire, including "
+"the \"--with-postgis\" configuration option."
+msgstr ""
+"Compile e instale MapServer con las opciones que desee, incluyendo la opción "
+"de configuración \"--with-postgis\"."
+
+#. Tag: para
+#: using_postgis_app.xml:55
+#, no-c-format
+msgid "In your MapServer map file, add a PostGIS layer. For example:"
+msgstr ""
+"En el fichero de mapas de MapServer agregue una capa PostGIS. Por ejemplo:"
+
+#. Tag: programlisting
+#: using_postgis_app.xml:58
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"widehighways\" \n"
+"  # Connect to a remote spatial database\n"
+"  CONNECTION \"user=dbuser dbname=gisdatabase host=bigserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  # Get the lines from the 'geom' column of the 'roads' table \n"
+"  DATA \"geom from roads using srid=4326 using unique gid\" \n"
+"  STATUS ON\n"
+"  TYPE LINE \n"
+"  # Of the lines in the extents, only render the wide highways \n"
+"  FILTER \"type = 'highway' and numlanes >= 4\" \n"
+"  CLASS \n"
+"    # Make the superhighways brighter and 2 pixels wide\n"
+"    EXPRESSION ([numlanes] >= 6) \n"
+"    STYLE\n"
+"      COLOR 255 22 22 \n"
+"      WIDTH 2 \n"
+"    END\n"
+"  END \n"
+"  CLASS \n"
+"    # All the rest are darker and only 1 pixel wide \n"
+"    EXPRESSION ([numlanes] < 6) \n"
+"    STYLE\n"
+"      COLOR 205 92 82\n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"widehighways\" \n"
+"  # Conectar a una base de datos espacial remota\n"
+"  CONNECTION \"user=dbuser dbname=gisdatabase host=bigserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  # Obtener las filas de la columna 'geom' de la tabla 'roads' \n"
+"  DATA \"geom from roads using srid=4326 using unique gid\" \n"
+"  STATUS ON\n"
+"  TYPE LINE \n"
+"  # De las filas, sólo dibujar las autopistas de 4 o más carriles \n"
+"  FILTER \"type = 'highway' and numlanes >= 4\" \n"
+"  CLASS \n"
+"    # Hacer que las superautopistas sean más brillantes y de 2 pixels de "
+"grososr\n"
+"    EXPRESSION ([numlanes] >= 6) \n"
+"    STYLE\n"
+"      COLOR 255 22 22 \n"
+"      WIDTH 2 \n"
+"    END\n"
+"  END \n"
+"  CLASS \n"
+"    # El resto son más oscuras y de sólo 1 pixel de grososr \n"
+"    EXPRESSION ([numlanes] < 6) \n"
+"    STYLE\n"
+"      COLOR 205 92 82\n"
+"    END\n"
+"  END \n"
+"END"
+
+#. Tag: para
+#: using_postgis_app.xml:60
+#, no-c-format
+msgid "In the example above, the PostGIS-specific directives are as follows:"
+msgstr "En el ejemplo de arriba, las directivas específicas de PostGIS son:"
+
+#. Tag: term
+#: using_postgis_app.xml:65
+#, no-c-format
+msgid "CONNECTIONTYPE"
+msgstr "CONNECTIONTYPE"
+
+#. Tag: para
+#: using_postgis_app.xml:68
+#, no-c-format
+msgid "For PostGIS layers, this is always \"postgis\"."
+msgstr "Para las capas PostGIS, es siempre \"postgis\"."
+
+#. Tag: term
+#: using_postgis_app.xml:73
+#, no-c-format
+msgid "CONNECTION"
+msgstr "CONNECTION"
+
+#. Tag: para
+#: using_postgis_app.xml:76
+#, no-c-format
+msgid ""
+"The database connection is governed by the a 'connection string' which is a "
+"standard set of keys and values like this (with the default values in <"
+">):"
+msgstr ""
+"La conexión a la base de datos se rige por una 'cadena de conexión' que se "
+"compone de un conjunto estándar de claves y valores como  (con los valores "
+"por defecto en <>):"
+
+#. Tag: para
+#: using_postgis_app.xml:80
+#, no-c-format
+msgid ""
+"user=<username> password=<password> dbname=<username> "
+"hostname=<server> port=<5432>"
+msgstr ""
+"user=<username> password=<password> dbname=<username> "
+"hostname=<server> port=<5432>"
+
+#. Tag: para
+#: using_postgis_app.xml:84
+#, no-c-format
+msgid ""
+"An empty connection string is still valid, and any of the key/value pairs "
+"can be omitted. At a minimum you will generally supply the database name and "
+"username to connect with."
+msgstr ""
+"Cualquier par clave/valor puede omitirse, incluso es válida una cadena de "
+"conexión vacía. Como mínimo generalmente se proporcionará el nombre de la "
+"base de datos y el del usuario con el que conectarse."
+
+#. Tag: term
+#: using_postgis_app.xml:92
+#, no-c-format
+msgid "DATA"
+msgstr "DATA"
+
+#. Tag: para
+#: using_postgis_app.xml:95
+#, no-c-format
+msgid ""
+"The form of this parameter is \"<geocolumn> from <tablename> "
+"using srid=<srid> using unique <primary key>\" where the column "
+"is the spatial column to be rendered to the map, the SRID is SRID used by "
+"the column and the primary key is the table primary key (or any other "
+"uniquely-valued column with an index)."
+msgstr ""
+"Este parámetro toma la forma \"<geocolumn> from <tablename> "
+"using srid=<srid> using unique <primary key>\" donde 'geocolumn' "
+"es la columna espacial a representar en el mapa, el 'srid' es el "
+"identificador del sistema de referencia utilizado por dicha columna y la "
+"'primary key' es la clave primaria de la tabla (o cualquier otra columna con "
+"valores únicos y un índice)."
+
+#. Tag: para
+#: using_postgis_app.xml:99
+#, no-c-format
+msgid ""
+"You can omit the \"using srid\" and \"using unique\" clauses and MapServer "
+"will automatically determine the correct values if possible, but at the cost "
+"of running a few extra queries on the server for each map draw."
+msgstr ""
+"Se pueden omitir las cláusulas \"using srid\" y \"using unique\" y MapServer "
+"determinará automáticamente los valores correctos si ello es posible, pero "
+"al precio de ejecutar unas pocas consultas extra al servidor cada vez que se "
+"dibuje el mapa."
+
+#. Tag: term
+#: using_postgis_app.xml:106
+#, no-c-format
+msgid "PROCESSING"
+msgstr "PROCESSING"
+
+#. Tag: para
+#: using_postgis_app.xml:109
+#, no-c-format
+msgid ""
+"Putting in a CLOSE_CONNECTION=DEFER if you have multiple layers reuses "
+"existing connections instead of closing them. This improves speed. Refer to "
+"for <ulink url=\"http://blog.cleverelephant.ca/2008/10/mapserverpostgis-"
+"performance-tips.html\">MapServer PostGIS Performance Tips</ulink> for a "
+"more detailed explanation."
+msgstr ""
+"Si tenemos múltiples capas, el poner CLOSE_CONNECTION=DEFER hace que se "
+"reutilicen conexiones existentes en vez de cerrarlas. Esto mejora la "
+"velocidad. Para una explicación más detallada se puede consultar <ulink url="
+"\"http://blog.cleverelephant.ca/2008/10/mapserverpostgis-performance-tips."
+"html\">MapServer PostGIS Performance Tips</ulink>."
+
+#. Tag: term
+#: using_postgis_app.xml:115
+#, no-c-format
+msgid "FILTER"
+msgstr "FILTER"
+
+#. Tag: para
+#: using_postgis_app.xml:118
+#, no-c-format
+msgid ""
+"The filter must be a valid SQL string corresponding to the logic normally "
+"following the \"WHERE\" keyword in a SQL query. So, for example, to render "
+"only roads with 6 or more lanes, use a filter of \"num_lanes >= 6\"."
+msgstr ""
+"El filtro debe ser una cadena SQL correcta que corresponda a lo que sigue "
+"habitualmente a la palabra clave \"WHERE\" en una consulta SQL. Así que, por "
+"ejemplo, para representar solamente carreteras con 6 o más carriles usaremos "
+"un filtro con \"num_lanes >= 6\"."
+
+#. Tag: para
+#: using_postgis_app.xml:128
+#, no-c-format
+msgid ""
+"In your spatial database, ensure you have spatial (GiST) indexes built for "
+"any the layers you will be drawing."
+msgstr ""
+"Asegúrese de haber generado índices espaciales (GIST) en su base de datos "
+"espacial para cualquiera de las capas a ser dibujadas."
+
+#. Tag: programlisting
+#: using_postgis_app.xml:131
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+msgstr ""
+"CREATE INDEX [nombreindice] ON [nombretabla] USING GIST "
+"( [columnageometria] );"
+
+#. Tag: para
+#: using_postgis_app.xml:135
+#, no-c-format
+msgid ""
+"If you will be querying your layers using MapServer you will also need to "
+"use the \"using unique\" clause in your DATA statement."
+msgstr ""
+"Si va a hacer consultas de las capas usando MapServer necesitará también "
+"usar la cláusula \"using unique\" en el enunciado DATA."
+
+#. Tag: para
+#: using_postgis_app.xml:138
+#, no-c-format
+msgid ""
+"MapServer requires unique identifiers for each spatial record when doing "
+"queries, and the PostGIS module of MapServer uses the unique value you "
+"specify in order to provide these unique identifiers. Using the table "
+"primary key is the best practice."
+msgstr ""
+"MapServer requiere identificadores únicos para cada registro espacial cuando "
+"realiza las consultas, y el módulo PostGIS de MapServer utiliza el valor "
+"único especificado para proporcionar esos identificadores únicos. La mejor "
+"práctica es el uso de la clave primaria."
+
+#. Tag: title
+#: using_postgis_app.xml:147
+#, no-c-format
+msgid "Frequently Asked Questions"
+msgstr "Preguntas frecuentes"
+
+#. Tag: para
+#: using_postgis_app.xml:152
+#, no-c-format
+msgid ""
+"When I use an <varname>EXPRESSION</varname> in my map file, the condition "
+"never returns as true, even though I know the values exist in my table."
+msgstr ""
+"Cuando uso una <varname>EXPRESSION</varname> en mi fichero de mapas, la "
+"condición nunca se devuelve como verdadera, aunque sé que los valores "
+"existen en mi tabla."
+
+#. Tag: para
+#: using_postgis_app.xml:158
+#, no-c-format
+msgid ""
+"Unlike shape files, PostGIS field names have to be referenced in EXPRESSIONS "
+"using <emphasis>lower case</emphasis>."
+msgstr ""
+"A diferencia de los ficheros 'shape' los nombres de campo en PostGIS tienen "
+"que estar referenciados en EXPRESSIONS utilizando  <emphasis>minúsculas</"
+"emphasis>."
+
+#. Tag: programlisting
+#: using_postgis_app.xml:162
+#, no-c-format
+msgid "EXPRESSION ([numlanes] >= 6)"
+msgstr "EXPRESSION ([numlanes] >= 6)"
+
+#. Tag: para
+#: using_postgis_app.xml:168
+#, no-c-format
+msgid ""
+"The FILTER I use for my Shape files is not working for my PostGIS table of "
+"the same data."
+msgstr ""
+"El filtro que uso para mis ficheros 'shape' no funciona con mi tabla PostGIS "
+"para los mismos datos."
+
+#. Tag: para
+#: using_postgis_app.xml:173
+#, no-c-format
+msgid ""
+"Unlike shape files, filters for PostGIS layers use SQL syntax (they are "
+"appended to the SQL statement the PostGIS connector generates for drawing "
+"layers in MapServer)."
+msgstr ""
+"A diferencia de los ficheros 'shape', los filtros de capas PostGIS usan la "
+"sintaxis SQL (se añaden a la instrucción SQL que el conector PostGIS genera "
+"para dibujar las capas en MapServer)."
+
+#. Tag: programlisting
+#: using_postgis_app.xml:177
+#, no-c-format
+msgid "FILTER \"type = 'highway' and numlanes >= 4\""
+msgstr "FILTER \"type = 'highway' and numlanes >= 4\""
+
+#. Tag: para
+#: using_postgis_app.xml:183
+#, no-c-format
+msgid ""
+"My PostGIS layer draws much slower than my Shape file layer, is this normal?"
+msgstr ""
+"Mi capa PostGIS tarda mucho más en dibujarse que mi capa del fichero "
+"'shape'. ¿Es normal?"
+
+#. Tag: para
+#: using_postgis_app.xml:188
+#, no-c-format
+msgid ""
+"In general, the more features you are drawing into a given map, the more "
+"likely it is that PostGIS will be slower than Shape files. For maps with "
+"relatively few features (100s), PostGIS will often be faster. For maps with "
+"high feature density (1000s), PostGIS will always be slower."
+msgstr ""
+"En general, cuantos más elementos haya que dibujar en un mapa dado, más "
+"probable es que PostGIS sea más lento que los ficheros 'shape'. Para mapas "
+"con relativamente pocos elementos (100 ...cientos), PostGIS será seguramente "
+"más rápido. Para mapas con una alta densidad de elementos (1000 ...miles), "
+"PostGIS será siempre más lento."
+
+#. Tag: para
+#: using_postgis_app.xml:194
+#, no-c-format
+msgid ""
+"If you are finding substantial draw performance problems, it is possible "
+"that you have not built a spatial index on your table."
+msgstr ""
+"Si está experimentando sustanciales problemas de ejecución, es posible que "
+"no haya generado un índice espacial en su tabla."
+
+#. Tag: programlisting
+#: using_postgis_app.xml:198
+#, no-c-format
+msgid ""
+"postgis# CREATE INDEX geotable_gix ON geotable USING GIST ( geocolumn ); \n"
+"postgis# VACUUM ANALYZE;"
+msgstr ""
+"postgis# CREATE INDEX geotable_gix ON geotable USING GIST ( geocolumn ); \n"
+"postgis# VACUUM ANALYZE;"
+
+#. Tag: para
+#: using_postgis_app.xml:204
+#, no-c-format
+msgid ""
+"My PostGIS layer draws fine, but queries are really slow. What is wrong?"
+msgstr ""
+"Mi capa PostGIS se dibuja bien, pero las consultas son realmente lentas. "
+"¿Cuál es el problema?"
+
+#. Tag: para
+#: using_postgis_app.xml:209
+#, no-c-format
+msgid ""
+"For queries to be fast, you must have a unique key for your spatial table "
+"and you must have an index on that unique key."
+msgstr ""
+"Para que las consultas sean rápidas, debe tener una clave única para su "
+"tabla espacial y un índice sobre esa clave única."
+
+#. Tag: para
+#: using_postgis_app.xml:213
+#, no-c-format
+msgid ""
+"You can specify what unique key for mapserver to use with the <varname>USING "
+"UNIQUE</varname> clause in your <varname>DATA</varname> line:"
+msgstr ""
+"Puede especificar qué clave única debe usar MapServer con la cláusula "
+"<varname>USING UNIQUE</varname> en la línea <varname>DATA</varname>:"
+
+#. Tag: programlisting
+#: using_postgis_app.xml:217
+#, no-c-format
+msgid "DATA \"geom FROM geotable USING UNIQUE gid\""
+msgstr "DATA \"geom FROM geotable USING UNIQUE gid\""
+
+#. Tag: para
+#: using_postgis_app.xml:224
+#, no-c-format
+msgid ""
+"Can I use \"geography\" columns (new in PostGIS 1.5) as a source for "
+"MapServer layers?"
+msgstr ""
+"¿Puedo utilizar las columnas \"geography\" (nuevas en PostGIS 1.5) como "
+"fuente para las capas de MapServer?"
+
+#. Tag: para
+#: using_postgis_app.xml:229
+#, no-c-format
+msgid ""
+"Yes! MapServer understands geography columns as being the same as geometry "
+"columns, but always using an SRID of 4326. Just make sure to include a "
+"\"using srid=4326\" clause in your <varname>DATA</varname> statement. "
+"Everything else works exactly the same as with geometry."
+msgstr ""
+"¡Sí! MapServer acepta las columnas 'geography' como si fueran columnas "
+"'geometry', pero si se usa el SRID número 4326. Asegúrese de incluir una "
+"cláusula \"using srid=4326\" en su instrucción <varname>DATA</varname> . "
+"Todo funciona igual que con 'geometry'."
+
+#. Tag: programlisting
+#: using_postgis_app.xml:234
+#, no-c-format
+msgid "DATA \"geog FROM geogtable USING SRID=4326 USING UNIQUE gid\""
+msgstr "DATA \"geog FROM geogtable USING SRID=4326 USING UNIQUE gid\""
+
+#. Tag: title
+#: using_postgis_app.xml:244
+#, no-c-format
+msgid "Advanced Usage"
+msgstr "Uso avanzado"
+
+#. Tag: para
+#: using_postgis_app.xml:246
+#, no-c-format
+msgid ""
+"The <varname>USING</varname> pseudo-SQL clause is used to add some "
+"information to help mapserver understand the results of more complex "
+"queries. More specifically, when either a view or a subselect is used as the "
+"source table (the thing to the right of \"FROM\" in a <varname>DATA</"
+"varname> definition) it is more difficult for mapserver to automatically "
+"determine a unique identifier for each row and also the SRID for the table. "
+"The <varname>USING</varname> clause can provide mapserver with these two "
+"pieces of information as follows:"
+msgstr ""
+"Se usa la cláusula pseudo-SQL <varname>USING</varname> para añadir alguna "
+"información que ayude a MapServer a comprender los resultados de consultas "
+"más complejas. Más específicamente, cuando se usa bien una vista o una "
+"subselección como la tabla origen (lo que está a la derecha de \"FROM\" en "
+"una definición <varname>DATA</varname>) es más difícil para MapServer "
+"determinar automáticamente un identificador único para cada fila y también "
+"el SRID para la tabla. La cláusula <varname>USING</varname> puede "
+"proporcionar a MapServer estas dos piezas de información de la siguiente "
+"manera:"
+
+#. Tag: programlisting
+#: using_postgis_app.xml:255
+#, no-c-format
+msgid ""
+"DATA \"geom FROM (\n"
+"  SELECT \n"
+"    table1.geom AS geom, \n"
+"    table1.gid AS gid, \n"
+"    table2.data AS data \n"
+"  FROM table1 \n"
+"  LEFT JOIN table2 \n"
+"  ON table1.id = table2.id\n"
+") AS new_table USING UNIQUE gid USING SRID=4326\""
+msgstr ""
+"DATA \"geom FROM (\n"
+"  SELECT \n"
+"    table1.geom AS geom, \n"
+"    table1.gid AS gid, \n"
+"    table2.data AS data \n"
+"  FROM table1 \n"
+"  LEFT JOIN table2 \n"
+"  ON table1.id = table2.id\n"
+") AS new_table USING UNIQUE gid USING SRID=4326\""
+
+#. Tag: term
+#: using_postgis_app.xml:259
+#, no-c-format
+msgid "USING UNIQUE <uniqueid>"
+msgstr "USING UNIQUE <uniqueid>"
+
+#. Tag: para
+#: using_postgis_app.xml:262
+#, no-c-format
+msgid ""
+"MapServer requires a unique id for each row in order to identify the row "
+"when doing map queries. Normally it identifies the primary key from the "
+"system tables. However, views and subselects don't automatically have an "
+"known unique column. If you want to use MapServer's query functionality, you "
+"need to ensure your view or subselect includes a uniquely valued column, and "
+"declare it with <varname>USING UNIQUE</varname>. For example, you could "
+"explicitly select nee of the table's primary key values for this purpose, or "
+"any other column which is guaranteed to be unique for the result set."
+msgstr ""
+"MapServer requiere un identificador único para poder identificar la fila "
+"cuando se hacen consultas al mapa. Normalmente identifica la clave primaria "
+"de las tablas del sistema. Sin embargo, vistas y subconsultas no tienen "
+"automáticamente una columna única conocida. Si quiere usar la funcionalidad "
+"de consultas de MapServer debe asegurarse de que la vista o subconsulta "
+"incluye una columna de valores únicos, y declararla con <varname>USING "
+"UNIQUE</varname>. Por ejemplo, podría seleccionar explícitamente valores de "
+"la clave primaria de la tabla para este propósito, o cualquier otra columna "
+"que garantice ser única para el conjunto de resultados."
+
+#. Tag: para
+#: using_postgis_app.xml:273
+#, no-c-format
+msgid ""
+"\"Querying a Map\" is the action of clicking on a map to ask for information "
+"about the map features in that location. Don't confuse \"map queries\" with "
+"the SQL query in a <varname>DATA</varname> definition."
+msgstr ""
+"\"Consultar un mapa\" es la acción de hacer click sobre un mapa para obtener "
+"información acerca de los elementos del mapa en esa posición. No confundir "
+"con \"consultas al mapa\" con la petición SQL en una definición "
+"<varname>DATA</varname>."
+
+#. Tag: term
+#: using_postgis_app.xml:282
+#, no-c-format
+msgid "USING SRID=<srid>"
+msgstr "USING SRID=<srid>"
+
+#. Tag: para
+#: using_postgis_app.xml:285
+#, no-c-format
+msgid ""
+"PostGIS needs to know which spatial referencing system is being used by the "
+"geometries in order to return the correct data back to MapServer. Normally "
+"it is possible to find this information in the \"geometry_columns\" table in "
+"the PostGIS database, however, this is not possible for tables which are "
+"created on the fly such as subselects and views. So the <varname>USING "
+"SRID=</varname> option allows the correct SRID to be specified in the "
+"<varname>DATA</varname> definition."
+msgstr ""
+"PostGIS necesita saber qué sistema de referencia espacial están usando las "
+"geometrías para poder devolver los datos correctos a MapServer. Normalmente "
+"es posible encontrar esta información en la tabla 'geometry_columns' de la "
+"base de datos PostGIS, sin embargo esto no es posible con tablas que se "
+"crean al vuelo tal como subconsultas y vistas. Así que la opción "
+"<varname>USING SRID=</varname> permite indicar el SRID correcto en la "
+"definición <varname>DATA</varname>."
+
+#. Tag: title
+#: using_postgis_app.xml:300
+#, no-c-format
+msgid "Examples"
+msgstr "Ejemplos"
+
+#. Tag: para
+#: using_postgis_app.xml:302
+#, no-c-format
+msgid ""
+"Lets start with a simple example and work our way up. Consider the following "
+"MapServer layer definition:"
+msgstr ""
+"Comencemos con un ejemplo sencillo. Consideremos la siguiente definición de "
+"capa en MapServer:"
+
+#. Tag: programlisting
+#: using_postgis_app.xml:305
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"roads\"\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom from roads\" \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  CLASS \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"roads\"\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom from roads\" \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  CLASS \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+
+#. Tag: para
+#: using_postgis_app.xml:307
+#, no-c-format
+msgid ""
+"This layer will display all the road geometries in the roads table as black "
+"lines."
+msgstr ""
+"Esta capa visualizará todas las geometrías de carreteras de la tabla "
+"carreteras 'roads' como líneas negras."
+
+#. Tag: para
+#: using_postgis_app.xml:310
+#, no-c-format
+msgid ""
+"Now lets say we want to show only the highways until we get zoomed in to at "
+"least a 1:100000 scale - the next two layers will achieve this effect:"
+msgstr ""
+"Ahora, digamos que queremos mostrar sólo las autopistas cuando hagamos un "
+"zoom al menos de una escala 1:100000. Las siguientes dos capas conseguirán "
+"este efecto:"
+
+#. Tag: programlisting
+#: using_postgis_app.xml:314
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\"\n"
+"  MINSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  FILTER \"road_type = 'highway'\" \n"
+"  CLASS \n"
+"    COLOR 0 0 0 \n"
+"  END \n"
+"END \n"
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\" \n"
+"  MAXSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE\n"
+"  CLASSITEM road_type \n"
+"  CLASS \n"
+"    EXPRESSION \"highway\" \n"
+"    STYLE\n"
+"      WIDTH 2 \n"
+"      COLOR 255 0 0  \n"
+"    END\n"
+"  END \n"
+"  CLASS  \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\"\n"
+"  MINSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  FILTER \"road_type = 'highway'\" \n"
+"  CLASS \n"
+"    COLOR 0 0 0 \n"
+"  END \n"
+"END \n"
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\" \n"
+"  MAXSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE\n"
+"  CLASSITEM road_type \n"
+"  CLASS \n"
+"    EXPRESSION \"highway\" \n"
+"    STYLE\n"
+"      WIDTH 2 \n"
+"      COLOR 255 0 0  \n"
+"    END\n"
+"  END \n"
+"  CLASS  \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+
+#. Tag: para
+#: using_postgis_app.xml:316
+#, no-c-format
+msgid ""
+"The first layer is used when the scale is greater than 1:100000, and "
+"displays only the roads of type \"highway\" as black lines. The "
+"<varname>FILTER</varname> option causes only roads of type \"highway\" to be "
+"displayed."
+msgstr ""
+"La primera capa se usa cuando la escala es superior a 1:100000 y muestra "
+"sólo las carreteras de tipo \"highway\" como líneas negras. La opción "
+"<varname>FILTER</varname> hace que sólo se visualicen las carreteras de tipo "
+"\"highway\"."
+
+#. Tag: para
+#: using_postgis_app.xml:321
+#, no-c-format
+msgid ""
+"The second layer is used when the scale is less than 1:100000, and will "
+"display highways as double-thick red lines, and other roads as regular black "
+"lines."
+msgstr ""
+"La segunda capa se usa cuando la escala es menor de 1:100000 y mostrará las "
+"autopistas como líneas rojas de doble grueso, y las otras carreteras como "
+"líneas negras de grosor normal."
+
+#. Tag: para
+#: using_postgis_app.xml:325
+#, no-c-format
+msgid ""
+"So, we have done a couple of interesting things using only MapServer "
+"functionality, but our <varname>DATA</varname> SQL statement has remained "
+"simple. Suppose that the name of the road is stored in another table (for "
+"whatever reason) and we need to do a join to get it and label our roads."
+msgstr ""
+"Así que, hemos hecho un par de cosas interesantes usando sólo la "
+"funcionalidad de MapServer, pero nuestra sentencia SQL <varname>DATA</"
+"varname> ha seguido siendo sencilla. Supongamos que el nombre de las "
+"carreteras está almacenado en otra tabla (por la razón que sea) y "
+"necesitamos hacer una unión (join) para obtenerlo y etiquetar nuestras "
+"carreteras."
+
+#. Tag: programlisting
+#: using_postgis_app.xml:331
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom FROM (SELECT roads.gid AS gid, roads.geom AS geom, \n"
+"        road_names.name as name FROM roads LEFT JOIN road_names ON \n"
+"        roads.road_name_id = road_names.road_name_id) \n"
+"        AS named_roads USING UNIQUE gid USING SRID=4326\" \n"
+"  MAXSCALE 20000 \n"
+"  STATUS ON \n"
+"  TYPE ANNOTATION \n"
+"  LABELITEM name\n"
+"  CLASS \n"
+"    LABEL \n"
+"      ANGLE auto \n"
+"      SIZE 8 \n"
+"      COLOR 0 192 0 \n"
+"      TYPE truetype \n"
+"      FONT arial\n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom FROM (SELECT roads.gid AS gid, roads.geom AS geom, \n"
+"        road_names.name as name FROM roads LEFT JOIN road_names ON \n"
+"        roads.road_name_id = road_names.road_name_id) \n"
+"        AS named_roads USING UNIQUE gid USING SRID=4326\" \n"
+"  MAXSCALE 20000 \n"
+"  STATUS ON \n"
+"  TYPE ANNOTATION \n"
+"  LABELITEM name\n"
+"  CLASS \n"
+"    LABEL \n"
+"      ANGLE auto \n"
+"      SIZE 8 \n"
+"      COLOR 0 192 0 \n"
+"      TYPE truetype \n"
+"      FONT arial\n"
+"    END\n"
+"  END \n"
+"END"
+
+#. Tag: para
+#: using_postgis_app.xml:333
+#, no-c-format
+msgid ""
+"This annotation layer adds green labels to all the roads when the scale gets "
+"down to 1:20000 or less. It also demonstrates how to use an SQL join in a "
+"<varname>DATA</varname> definition."
+msgstr ""
+"Esta capa de anotaciones añade etiquetas verdes a todas las carreteras "
+"cuando la escala baje a 1:20000 o menos. También demuestra como usar una "
+"unión (join) SQL en una definición  <varname>DATA</varname>."
+
+#. Tag: title
+#: using_postgis_app.xml:340
+#, no-c-format
+msgid "Java Clients (JDBC)"
+msgstr "Clientes Java (JDBC)"
+
+#. Tag: para
+#: using_postgis_app.xml:342
+#, no-c-format
+msgid ""
+"Java clients can access PostGIS \"geometry\" objects in the PostgreSQL "
+"database either directly as text representations or using the JDBC extension "
+"objects bundled with PostGIS. In order to use the extension objects, the "
+"\"postgis.jar\" file must be in your CLASSPATH along with the \"postgresql."
+"jar\" JDBC driver package."
+msgstr ""
+"Los clientes java pueden acceder a los objetos 'geometry' de PostGIS en la "
+"base de datos PostgreSQL bien directamente como representaciones en texto o "
+"usando los objetos de extensión JDBC incluídos con PostGIS. Para poder usar "
+"los objetos de extensión, el fichero \"postgis.jar\" debe estar en su "
+"CLASSPATH así como el paquete controlador JDBC \"postgresql.jar\"."
+
+#. Tag: programlisting
+#: using_postgis_app.xml:348
+#, no-c-format
+msgid ""
+"import java.sql.*; \n"
+"import java.util.*; \n"
+"import java.lang.*; \n"
+"import org.postgis.*; \n"
+"\n"
+"public class JavaGIS { \n"
+"\n"
+"public static void main(String[] args) { \n"
+"\n"
+"  java.sql.Connection conn; \n"
+"\n"
+"  try { \n"
+"    /* \n"
+"    * Load the JDBC driver and establish a connection. \n"
+"    */\n"
+"    Class.forName(\"org.postgresql.Driver\"); \n"
+"    String url = \"jdbc:postgresql://localhost:5432/database\"; \n"
+"    conn = DriverManager.getConnection(url, \"postgres\", \"\"); \n"
+"    /* \n"
+"    * Add the geometry types to the connection. Note that you \n"
+"    * must cast the connection to the pgsql-specific connection \n"
+"    * implementation before calling the addDataType() method. \n"
+"    */\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"geometry\",Class."
+"forName(\"org.postgis.PGgeometry\"));\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"box3d\",Class."
+"forName(\"org.postgis.PGbox3d\"));\n"
+"    /* \n"
+"    * Create a statement and execute a select query. \n"
+"    */ \n"
+"    Statement s = conn.createStatement(); \n"
+"    ResultSet r = s.executeQuery(\"select geom,id from geomtable\"); \n"
+"    while( r.next() ) { \n"
+"      /* \n"
+"      * Retrieve the geometry as an object then cast it to the geometry "
+"type. \n"
+"      * Print things out. \n"
+"      */ \n"
+"      PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"      int id = r.getInt(2); \n"
+"      System.out.println(\"Row \" + id + \":\");\n"
+"      System.out.println(geom.toString()); \n"
+"    } \n"
+"    s.close(); \n"
+"    conn.close(); \n"
+"  } \n"
+"catch( Exception e ) { \n"
+"  e.printStackTrace(); \n"
+"  } \n"
+"} \n"
+"}"
+msgstr ""
+"import java.sql.*; \n"
+"import java.util.*; \n"
+"import java.lang.*; \n"
+"import org.postgis.*; \n"
+"\n"
+"public class JavaGIS { \n"
+"\n"
+"public static void main(String[] args) { \n"
+"\n"
+"  java.sql.Connection conn; \n"
+"\n"
+"  try { \n"
+"    /* \n"
+"    * Cargar el controlador JDBC y establecer la conexión. \n"
+"    */\n"
+"    Class.forName(\"org.postgresql.Driver\"); \n"
+"    String url = \"jdbc:postgresql://localhost:5432/database\"; \n"
+"    conn = DriverManager.getConnection(url, \"postgres\", \"\"); \n"
+"    /* \n"
+"    * Agregar los tipos 'geometry' a la conexión. Tenga en cuenta que\n"
+"    * debe adaptar la conexión a la implementación de la conexión \n"
+"    *  específica pgsql antes de llamar al método addDataType(). \n"
+"    */\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"geometry\",Class."
+"forName(\"org.postgis.PGgeometry\"));\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"box3d\",Class."
+"forName(\"org.postgis.PGbox3d\"));\n"
+"    /* \n"
+"    * Crear una sentencia y ejecutar una consulta 'select'. \n"
+"    */ \n"
+"    Statement s = conn.createStatement(); \n"
+"    ResultSet r = s.executeQuery(\"select geom,id from geomtable\"); \n"
+"    while( r.next() ) { \n"
+"      /* \n"
+"      * Recuperar la geometría como un objeto, luego convertirlo al tipo "
+"geometry. \n"
+"      * Imprimir resultados. \n"
+"      */ \n"
+"      PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"      int id = r.getInt(2); \n"
+"      System.out.println(\"Row \" + id + \":\");\n"
+"      System.out.println(geom.toString()); \n"
+"    } \n"
+"    s.close(); \n"
+"    conn.close(); \n"
+"  } \n"
+"catch( Exception e ) { \n"
+"  e.printStackTrace(); \n"
+"  } \n"
+"} \n"
+"}"
+
+#. Tag: para
+#: using_postgis_app.xml:350
+#, no-c-format
+msgid ""
+"The \"PGgeometry\" object is a wrapper object which contains a specific "
+"topological geometry object (subclasses of the abstract class \"Geometry\") "
+"depending on the type: Point, LineString, Polygon, MultiPoint, "
+"MultiLineString, MultiPolygon."
+msgstr ""
+"El objeto \"PGeometry\" es un objeto envoltorio que contiene un objeto "
+"geométrico de topología específica (subclase de la clase abstracta \"Geometry"
+"\") dependiendo del tipo: Point, LineString, Polygon, MultiPoint, "
+"MultiLineString, MultiPolygon."
+
+#. Tag: programlisting
+#: using_postgis_app.xml:355
+#, no-c-format
+msgid ""
+"PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"if( geom.getType() == Geometry.POLYGON ) { \n"
+"  Polygon pl = (Polygon)geom.getGeometry(); \n"
+"  for( int r = 0; r < pl.numRings(); r++) { \n"
+"    LinearRing rng = pl.getRing(r); \n"
+"    System.out.println(\"Ring: \" + r); \n"
+"    for( int p = 0; p < rng.numPoints(); p++ ) { \n"
+"      Point pt = rng.getPoint(p); \n"
+"      System.out.println(\"Point: \" + p);\n"
+"      System.out.println(pt.toString()); \n"
+"    } \n"
+"  } \n"
+"}"
+msgstr ""
+"PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"if( geom.getType() == Geometry.POLYGON ) { \n"
+"  Polygon pl = (Polygon)geom.getGeometry(); \n"
+"  for( int r = 0; r < pl.numRings(); r++) { \n"
+"    LinearRing rng = pl.getRing(r); \n"
+"    System.out.println(\"Ring: \" + r); \n"
+"    for( int p = 0; p < rng.numPoints(); p++ ) { \n"
+"      Point pt = rng.getPoint(p); \n"
+"      System.out.println(\"Point: \" + p);\n"
+"      System.out.println(pt.toString()); \n"
+"    } \n"
+"  } \n"
+"}"
+
+#. Tag: para
+#: using_postgis_app.xml:357
+#, no-c-format
+msgid ""
+"The JavaDoc for the extension objects provides a reference for the various "
+"data accessor functions in the geometric objects."
+msgstr ""
+"JavaDoc proporciona una referencia para los objetos extensión para las "
+"diferentes funciones de acceso a datos en los objetos geométricos."
+
+#. Tag: title
+#: using_postgis_app.xml:362
+#, no-c-format
+msgid "C Clients (libpq)"
+msgstr "Clientes C (libpq)"
+
+#. Tag: para
+#: using_postgis_app.xml:364 using_postgis_app.xml:369
+#: using_postgis_app.xml:375
+#, no-c-format
+msgid "<para>...</para>"
+msgstr "<para>...</para>"
+
+#. Tag: title
+#: using_postgis_app.xml:367
+#, no-c-format
+msgid "Text Cursors"
+msgstr "Cursores de Texto"
+
+#. Tag: title
+#: using_postgis_app.xml:373
+#, no-c-format
+msgid "Binary Cursors"
+msgstr "Cursores Binarios"
diff --git a/doc/po/es/using_postgis_dataman.xml.po b/doc/po/es/using_postgis_dataman.xml.po
new file mode 100644
index 0000000..4848231
--- /dev/null
+++ b/doc/po/es/using_postgis_dataman.xml.po
@@ -0,0 +1,5200 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2013-2014
+# David Mateos <territorio at terrativa.net>, 2014
+# David Mateos <territorio at terrativa.net>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-15 16:44+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: using_postgis_dataman.xml:3
+#, no-c-format
+msgid "Using PostGIS: Data Management and Queries"
+msgstr "Utilizando PostGIS: Gestión de Datos y Consultas"
+
+#. Tag: title
+#: using_postgis_dataman.xml:6
+#, no-c-format
+msgid "GIS Objects"
+msgstr "Objetos SIG"
+
+#. Tag: para
+#: using_postgis_dataman.xml:8
+#, no-c-format
+msgid ""
+"The GIS objects supported by PostGIS are a superset of the \"Simple Features"
+"\" defined by the OpenGIS Consortium (OGC). As of version 0.9, PostGIS "
+"supports all the objects and functions specified in the OGC \"Simple "
+"Features for SQL\" specification."
+msgstr ""
+"Los objetos SIG soportados por PostGIS son una colección de \"Simple Features"
+"\" definidas por el OpenGIS Consortium (OGC). A partir de la versión 0.9, "
+"PostGIS soporta todos los objetos y funciones de la especificación \"Simple "
+"Features for SQL\" del OGC."
+
+#. Tag: para
+#: using_postgis_dataman.xml:13
+#, no-c-format
+msgid ""
+"PostGIS extends the standard with support for 3DZ,3DM and 4D coordinates."
+msgstr ""
+"PostGIS extiende el estándar con soporte para coordenadas  3DZ,3DM y 4D."
+
+#. Tag: title
+#: using_postgis_dataman.xml:17
+#, no-c-format
+msgid "OpenGIS WKB and WKT"
+msgstr "OpenGIS WKB y WKT"
+
+#. Tag: para
+#: using_postgis_dataman.xml:19
+#, no-c-format
+msgid ""
+"The OpenGIS specification defines two standard ways of expressing spatial "
+"objects: the Well-Known Text (WKT) form and the Well-Known Binary (WKB) "
+"form. Both WKT and WKB include information about the type of the object and "
+"the coordinates which form the object."
+msgstr ""
+"La especificación OpenGIS define dos formas estándar de expresar objetos "
+"espaciales: la forma Well-Known Text (WKT) y la forma Well-Known Binary "
+"(WKB). Ambas WKT y WKB, incluyen información sobre el tipo de objeto y el "
+"sistema de coordenadas del objeto."
+
+#. Tag: para
+#: using_postgis_dataman.xml:24
+#, no-c-format
+msgid ""
+"Examples of the text representations (WKT) of the spatial objects of the "
+"features are as follows:"
+msgstr ""
+"Algunos ejemplos de representaciones (WKT) de objetos espaciales de objetos "
+"geográficos son de la siguiente manera:"
+
+#. Tag: para
+#: using_postgis_dataman.xml:29
+#, no-c-format
+msgid "POINT(0 0)"
+msgstr "POINT(0 0)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:33
+#, no-c-format
+msgid "LINESTRING(0 0,1 1,1 2)"
+msgstr "LINESTRING(0 0,1 1,1 2)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:37
+#, no-c-format
+msgid "POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))"
+msgstr "POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:41
+#, fuzzy, no-c-format
+msgid "MULTIPOINT((0 0),(1 2))"
+msgstr "MULTIPOINT(0 0,1 2)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:45
+#, no-c-format
+msgid "MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))"
+msgstr "MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:49
+#, no-c-format
+msgid ""
+"MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 "
+"-2,-2 -1,-1 -1)))"
+msgstr ""
+"MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 "
+"-2,-2 -1,-1 -1)))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:54
+#, no-c-format
+msgid "GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))"
+msgstr "GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:58
+#, no-c-format
+msgid ""
+"The OpenGIS specification also requires that the internal storage format of "
+"spatial objects include a spatial referencing system identifier (SRID). The "
+"SRID is required when creating spatial objects for insertion into the "
+"database."
+msgstr ""
+"La especificación OpenGIS también requiere que el almacenamiento interno de "
+"objetos espaciales incluya el sistema de referencia espacial (SRID). El SRID "
+"es necesario al crear objetos espaciales para añadirlos a la base de datos."
+
+#. Tag: para
+#: using_postgis_dataman.xml:63 using_postgis_dataman.xml:151
+#, no-c-format
+msgid ""
+"Input/Output of these formats are available using the following interfaces:"
+msgstr ""
+"La Entrada/Salida de estos formatos están disponibles utilizando las "
+"interfaces siguientes:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:66
+#, no-c-format
+msgid ""
+"bytea WKB = ST_AsBinary(geometry);\n"
+"text WKT = ST_AsText(geometry);\n"
+"geometry = ST_GeomFromWKB(bytea WKB, SRID);\n"
+"geometry = ST_GeometryFromText(text WKT, SRID);"
+msgstr ""
+"bytea WKB = ST_AsBinary(geometry);\n"
+"text WKT = ST_AsText(geometry);\n"
+"geometry = ST_GeomFromWKB(bytea WKB, SRID);\n"
+"geometry = ST_GeometryFromText(text WKT, SRID);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:68
+#, no-c-format
+msgid ""
+"For example, a valid insert statement to create and insert an OGC spatial "
+"object would be:"
+msgstr ""
+"Por ejemplo un comando valido de inserción para crear e insertar un objeto "
+"espacial OGC podría ser:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:71
+#, no-c-format
+msgid ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromText('POINT(-126.4 45.32)', 312), 'A Place');"
+msgstr ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromText('POINT(-126.4 45.32)', 312), 'A Place');"
+
+#. Tag: title
+#: using_postgis_dataman.xml:75
+#, no-c-format
+msgid "PostGIS EWKB, EWKT and Canonical Forms"
+msgstr "En PostGIS EWKB, EWKT y foma Canonica"
+
+#. Tag: para
+#: using_postgis_dataman.xml:77
+#, no-c-format
+msgid ""
+"OGC formats only support 2d geometries, and the associated SRID is *never* "
+"embedded in the input/output representations."
+msgstr ""
+"Los formatos OGC solo soportan geometrías 2D, y los SRID asociados nunca son "
+"embebidos en las representaciones de entrada/salida."
+
+#. Tag: para
+#: using_postgis_dataman.xml:80
+#, no-c-format
+msgid ""
+"PostGIS extended formats are currently superset of OGC one (every valid WKB/"
+"WKT is a valid EWKB/EWKT) but this might vary in the future, specifically if "
+"OGC comes out with a new format conflicting with our extensions. Thus you "
+"SHOULD NOT rely on this feature!"
+msgstr ""
+"Los formatos extendidos de PostGIS son un superconjunto de los OGC "
+"actualmente (todo WKB/WKT valido es un EWKB/EWKT valido) pero esto puede "
+"variar en el futuro, especialmente si el OGC saca un nuevo formato que crea "
+"conflictos con nuestras extensiones. ¡Por lo tanto NO DEBERIAS confiar en "
+"esta característica!"
+
+#. Tag: para
+#: using_postgis_dataman.xml:85
+#, no-c-format
+msgid ""
+"PostGIS EWKB/EWKT add 3dm,3dz,4d coordinates support and embedded SRID "
+"information."
+msgstr ""
+"PostGIS EWKB/EWKT añade soporte a coordenadas 3dm, 3dz y 4d y a información "
+"embebida del SRID."
+
+#. Tag: para
+#: using_postgis_dataman.xml:88
+#, no-c-format
+msgid ""
+"Examples of the text representations (EWKT) of the extended spatial objects "
+"of the features are as follows. The * ones are new in this version of "
+"PostGIS:"
+msgstr ""
+"Aquí tienes algunos ejemplos de representaciones de texto (EWKT) de objetos "
+"espaciales extendidos. Los que llevan * son nuevos en esta version de "
+"PostGIS."
+
+#. Tag: para
+#: using_postgis_dataman.xml:93
+#, no-c-format
+msgid "POINT(0 0 0) -- XYZ"
+msgstr "POINT(0 0 0) -- XYZ"
+
+#. Tag: para
+#: using_postgis_dataman.xml:97
+#, no-c-format
+msgid "SRID=32632;POINT(0 0) -- XY with SRID"
+msgstr "SRID=32632;POINT(0 0) -- XY with SRID"
+
+#. Tag: para
+#: using_postgis_dataman.xml:101
+#, no-c-format
+msgid "POINTM(0 0 0) -- XYM"
+msgstr "POINTM(0 0 0) -- XYM"
+
+#. Tag: para
+#: using_postgis_dataman.xml:105
+#, no-c-format
+msgid "POINT(0 0 0 0) -- XYZM"
+msgstr "POINT(0 0 0 0) -- XYZM"
+
+#. Tag: para
+#: using_postgis_dataman.xml:109
+#, no-c-format
+msgid "SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID"
+msgstr "SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID"
+
+#. Tag: para
+#: using_postgis_dataman.xml:113
+#, no-c-format
+msgid "MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))"
+msgstr "MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:118
+#, no-c-format
+msgid ""
+"POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))"
+msgstr ""
+"POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:123
+#, no-c-format
+msgid ""
+"MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 "
+"0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))"
+msgstr ""
+"MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 "
+"0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:128
+#, no-c-format
+msgid "GEOMETRYCOLLECTIONM( POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4 5) )"
+msgstr "GEOMETRYCOLLECTIONM( POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4 5) )"
+
+#. Tag: para
+#: using_postgis_dataman.xml:132
+#, no-c-format
+msgid "MULTICURVE( (0 0, 5 5), CIRCULARSTRING(4 0, 4 4, 8 4) )"
+msgstr "MULTICURVE( (0 0, 5 5), CIRCULARSTRING(4 0, 4 4, 8 4) )"
+
+#. Tag: para
+#: using_postgis_dataman.xml:136
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 "
+"1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, "
+"1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 "
+"1, 1 1 1, 0 1 1, 0 0 1)) )"
+msgstr ""
+"POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 "
+"1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, "
+"1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 "
+"1, 1 1 1, 0 1 1, 0 0 1)) )"
+
+#. Tag: para
+#: using_postgis_dataman.xml:142
+#, no-c-format
+msgid "TRIANGLE ((0 0, 0 9, 9 0, 0 0))"
+msgstr "TRIANGLE ((0 0, 0 9, 9 0, 0 0))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:146
+#, no-c-format
+msgid "TIN( ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)) )"
+msgstr "TIN( ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)) )"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:154
+#, no-c-format
+msgid ""
+"bytea EWKB = ST_AsEWKB(geometry);\n"
+"text EWKT = ST_AsEWKT(geometry);\n"
+"geometry = ST_GeomFromEWKB(bytea EWKB);\n"
+"geometry = ST_GeomFromEWKT(text EWKT);"
+msgstr ""
+"bytea EWKB = ST_AsEWKB(geometry);\n"
+"text EWKT = ST_AsEWKT(geometry);\n"
+"geometry = ST_GeomFromEWKB(bytea EWKB);\n"
+"geometry = ST_GeomFromEWKT(text EWKT);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:156
+#, no-c-format
+msgid ""
+"For example, a valid insert statement to create and insert a PostGIS spatial "
+"object would be:"
+msgstr ""
+"Por ejemplo, una consulta \"insert\" valida para crear e insertas un objeto "
+"espacial PostGIS debería ser: "
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:159
+#, no-c-format
+msgid ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromEWKT('SRID=312;POINTM(-126.4 45.32 15)'), 'A Place' )"
+msgstr ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromEWKT('SRID=312;POINTM(-126.4 45.32 15)'), 'A Place' )"
+
+#. Tag: para
+#: using_postgis_dataman.xml:161
+#, no-c-format
+msgid ""
+"The \"canonical forms\" of a PostgreSQL type are the representations you get "
+"with a simple query (without any function call) and the one which is "
+"guaranteed to be accepted with a simple insert, update or copy. For the "
+"postgis 'geometry' type these are:"
+msgstr ""
+"Las formas \"canónicas\" de un tipo PostgreSQL son las representaciones que "
+"obtienes con una consulta simple (sin ninguna llamada a funciones) y la "
+"única que esta garantizada en ser aceptada con un simple \"insert\", \"update"
+"\" o \"copy\". para los tipos 'geómetra' de PostGIS son:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:164
+#, no-c-format
+msgid ""
+"- Output\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB (EWKB in hex form)\n"
+"- Input\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB|EWKT"
+msgstr ""
+"- Output\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB (EWKB in hex form)\n"
+"- Input\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB|EWKT"
+
+#. Tag: para
+#: using_postgis_dataman.xml:166
+#, no-c-format
+msgid ""
+"For example this statement reads EWKT and returns HEXEWKB in the process of "
+"canonical ascii input/output:"
+msgstr ""
+"Por ejemplo, esta consulta lee EWKT y devuelve HEXEWKB en el proceso de "
+"entrada/salida ascii canónico."
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:169
+#, no-c-format
+msgid ""
+"=# SELECT 'SRID=4;POINT(0 0)'::geometry;\n"
+"\n"
+"geometry\n"
+"----------------------------------------------------\n"
+"01010000200400000000000000000000000000000000000000\n"
+"(1 row)"
+msgstr ""
+"=# SELECT 'SRID=4;POINT(0 0)'::geometry;\n"
+"\n"
+"geometry\n"
+"----------------------------------------------------\n"
+"01010000200400000000000000000000000000000000000000\n"
+"(1 row)"
+
+#. Tag: title
+#: using_postgis_dataman.xml:172
+#, no-c-format
+msgid "SQL-MM Part 3"
+msgstr "SQL-MM Parte 3"
+
+#. Tag: para
+#: using_postgis_dataman.xml:174
+#, no-c-format
+msgid ""
+"The SQL Multimedia Applications Spatial specification extends the simple "
+"features for SQL spec by defining a number of circularly interpolated curves."
+msgstr ""
+"La especificación SQL Multimedia Applications Spatial extiende los objetos "
+"simples para la especificación SQL definiendo un numero de curvas "
+"interpoladas. "
+
+#. Tag: para
+#: using_postgis_dataman.xml:178
+#, no-c-format
+msgid ""
+"The SQL-MM definitions include 3dm, 3dz and 4d coordinates, but do not allow "
+"the embedding of SRID information."
+msgstr ""
+"Las definiciones SQL-MM incluyen coordenadas 3dm, 3dz y 4d, pero no permiten "
+"integrar la información SRID."
+
+#. Tag: para
+#: using_postgis_dataman.xml:181
+#, no-c-format
+msgid ""
+"The well-known text extensions are not yet fully supported. Examples of some "
+"simple curved geometries are shown below:"
+msgstr ""
+"Las extensiones de well-know text no están aún completamente soportadas. A "
+"continuación se muestran ejemplos de algunas geometrías simples curvadas:"
+
+#. Tag: para
+#: using_postgis_dataman.xml:186
+#, no-c-format
+msgid "CIRCULARSTRING(0 0, 1 1, 1 0)"
+msgstr "CIRCULARSTRING(0 0, 1 1, 1 0)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:187
+#, no-c-format
+msgid "CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0)"
+msgstr "CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:188
+#, no-c-format
+msgid ""
+"The CIRCULARSTRING is the basic curve type, similar to a LINESTRING in the "
+"linear world. A single segment required three points, the start and end "
+"points (first and third) and any other point on the arc. The exception to "
+"this is for a closed circle, where the start and end points are the same. In "
+"this case the second point MUST be the center of the arc, ie the opposite "
+"side of the circle. To chain arcs together, the last point of the previous "
+"arc becomes the first point of the next arc, just like in LINESTRING. This "
+"means that a valid circular string must have an odd number of points greated "
+"than 1."
+msgstr ""
+"CIRCULARSTRING es el tipo básico de curva, similar a LINESTRING en el mundo "
+"lineal. Un segmento simple necesita tres puntos, los puntos de inicio y fin "
+"(primero y tercero) y cualquier otro punto del arco. La excepción a esto es "
+"para un círculo cerrado, donde el punto de inicio y fin son el mismo. En "
+"este caso, el segundo punto DEBE ser el centro del arco, esto es el lado "
+"opuesto del círculo. Para encadenar arcos juntos, el último punto del arco "
+"previo, se convierte en el primero del siguiente, como ocurre con "
+"LINESTRING. Esto quiere decir que una cadena circular válida debe tener un "
+"número impar de puntos mayor que 1."
+
+#. Tag: para
+#: using_postgis_dataman.xml:201
+#, no-c-format
+msgid "COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))"
+msgstr "COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:202
+#, no-c-format
+msgid ""
+"A compound curve is a single, continuous curve that has both curved "
+"(circular) segments and linear segments. That means that in addition to "
+"having well-formed components, the end point of every component (except the "
+"last) must be coincident with the start point of the following component."
+msgstr ""
+"Una curva compuesta es una curva simple y continua, que tiene segmentos "
+"curvos (circular) y segmentos lineales. Esto significa que ademas de tener "
+"componentes bien formados, el punto final de cada componente (excepto el "
+"ultimo) debe coincidir con el punto inicial del componente siguiente."
+
+#. Tag: para
+#: using_postgis_dataman.xml:210
+#, no-c-format
+msgid ""
+"CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))"
+msgstr ""
+"CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:212
+#, no-c-format
+msgid ""
+"Example compound curve in a curve polygon: "
+"CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, "
+"1 4, 0 0)), CIRCULARSTRING(1.7 1, 1.4 0.4, 1.6 0.4, 1.6 0.5, 1.7 1) )"
+msgstr ""
+"Ejemplo de curva compuesta en un polígono curvo: "
+"CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, "
+"1 4, 0 0)), CIRCULARSTRING(1.7 1, 1.4 0.4, 1.6 0.4, 1.6 0.5, 1.7 1) )"
+
+#. Tag: para
+#: using_postgis_dataman.xml:216
+#, no-c-format
+msgid ""
+"A CURVEPOLYGON is just like a polygon, with an outer ring and zero or more "
+"inner rings. The difference is that a ring can take the form of a circular "
+"string, linear string or compound string."
+msgstr ""
+"Un CURVEPOLYGON es como un poligono, con un anillo externo y cero o mas "
+"anillos internos. La diferencia es que que este anillo puede tomar la forma "
+"de una cadena circular, cadena lineal o una cadena de curva compuesta."
+
+#. Tag: para
+#: using_postgis_dataman.xml:220
+#, no-c-format
+msgid "As of PostGIS 1.4 PostGIS supports compound curves in a curve polygon."
+msgstr ""
+"A partir de PostGIS 1.4, PostGIS soporta curvas compuestas en un polígono "
+"curvo."
+
+#. Tag: para
+#: using_postgis_dataman.xml:224
+#, no-c-format
+msgid "MULTICURVE((0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4))"
+msgstr "MULTICURVE((0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:225
+#, no-c-format
+msgid ""
+"The MULTICURVE is a collection of curves, which can include linear strings, "
+"circular strings or compound strings."
+msgstr ""
+"Una MULTICURVE es una colección de curvas, que puede incluir cadenas "
+"lineales, cadenas curvas o curvas compuestas."
+
+#. Tag: para
+#: using_postgis_dataman.xml:230
+#, no-c-format
+msgid ""
+"MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, "
+"3 1, 1 1)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11)))"
+msgstr ""
+"MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, "
+"3 1, 1 1)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11)))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:233
+#, no-c-format
+msgid ""
+"This is a collection of surfaces, which can be (linear) polygons or curve "
+"polygons."
+msgstr ""
+"Esto es una colección de superficies, que pueden ser polígonos (lineales) o "
+"polígonos curvos."
+
+#. Tag: para
+#: using_postgis_dataman.xml:239
+#, no-c-format
+msgid ""
+"PostGIS prior to 1.4 does not support compound curves in a curve polygon, "
+"but PostGIS 1.4 and above do support the use of Compound Curves in a Curve "
+"Polygon."
+msgstr ""
+"Versiones anteriores a la 1.4 de PostGIS no soportan curvas compuestas en un "
+"polígono curvo, pero PortGIS 1.4 y superiores soportan el uso de Curvas "
+"Compuestas en Poligonos Curvos."
+
+#. Tag: para
+#: using_postgis_dataman.xml:245
+#, no-c-format
+msgid ""
+"All floating point comparisons within the SQL-MM implementation are "
+"performed to a specified tolerance, currently 1E-8."
+msgstr ""
+"Todas las comparaciones de coma flotante en la implementación SQL-MM se "
+"desarrollan para una tolerancia específica, normalmente 1E-8."
+
+#. Tag: title
+#: using_postgis_dataman.xml:251
+#, no-c-format
+msgid "PostGIS Geography Type"
+msgstr "Tipo Geography en PostGIS"
+
+#. Tag: para
+#: using_postgis_dataman.xml:253
+#, no-c-format
+msgid ""
+"The geography type provides native support for spatial features represented "
+"on \"geographic\" coordinates (sometimes called \"geodetic\" coordinates, or "
+"\"lat/lon\", or \"lon/lat\"). Geographic coordinates are spherical "
+"coordinates expressed in angular units (degrees)."
+msgstr ""
+"El tipo \"geography\" proporciona soporte nativo para objetos espaciales "
+"representados por coordenadas geográficas ( a veces llamadas coordenadas "
+"geodésicas, o \"lat/lon\", o \"lob/lat\"). Las coordenadas geográficas son "
+"coordenadas esféricas expresadas en unidades angulares (grados)."
+
+#. Tag: para
+#: using_postgis_dataman.xml:255
+#, no-c-format
+msgid ""
+"The basis for the PostGIS geometry type is a plane. The shortest path "
+"between two points on the plane is a straight line. That means calculations "
+"on geometries (areas, distances, lengths, intersections, etc) can be "
+"calculated using cartesian mathematics and straight line vectors."
+msgstr ""
+"La base del tipo \"geometry\" de PostGIS es un plano. El camino mas corto "
+"entre dos puntos en un plano es una linea recta. Esto significa que los "
+"cálculos en geometrías (áreas, distancias, longitudes, intersecciones, etc) "
+"pueden calcularse utilizando matemáticas cartesiana y vectores lineales."
+
+#. Tag: para
+#: using_postgis_dataman.xml:257
+#, no-c-format
+msgid ""
+"The basis for the PostGIS geographic type is a sphere. The shortest path "
+"between two points on the sphere is a great circle arc. That means that "
+"calculations on geographies (areas, distances, lengths, intersections, etc) "
+"must be calculated on the sphere, using more complicated mathematics. For "
+"more accurate measurements, the calculations must take the actual spheroidal "
+"shape of the world into account, and the mathematics becomes very "
+"complicated indeed."
+msgstr ""
+"La base del tipo geografico de PostGIS es una esfera. El camino mas corto "
+"entre dos puntos en la esfera es el arco de circunferencia mas corto que une "
+"los dos puntos. esto significa que los cálculos geográficos (áreas, "
+"distancias, longitudes, intersecciones, etc) deben calcularse en la esfera, "
+"utilizando matemáticas mas complejas. Para medidas mas precisas, los "
+"cálculos deben tomar la forma esferoidal actual del mundo en cuenta, y las "
+"matemáticas se vuelven aun mas complejas."
+
+#. Tag: para
+#: using_postgis_dataman.xml:259
+#, no-c-format
+msgid ""
+"Because the underlying mathematics is much more complicated, there are fewer "
+"functions defined for the geography type than for the geometry type. Over "
+"time, as new algorithms are added, the capabilities of the geography type "
+"will expand."
+msgstr ""
+"Debido a que las matemáticas subyacentes son mas complejas, hay varias "
+"funciones definidas para el tipo geográfico y no para el tipo geométrico. "
+"Con el tiempo, conforme se añadan nuevos algoritmos, las capacidades del "
+"tipo geográfico se irán expandiendo."
+
+#. Tag: para
+#: using_postgis_dataman.xml:262
+#, no-c-format
+msgid ""
+"One restriction is that it only supports WGS 84 long lat (SRID:4326). It "
+"uses a new data type called geography. None of the GEOS functions support "
+"this new type. As a workaround one can convert back and forth between "
+"geometry and geography types."
+msgstr ""
+"Una restricción es que sólo soporta longitud y latitud en WGS84 (SRID:4326). "
+"Utiliza un nuevo tipo llamado \"geography\". Ninguna de las funciones de "
+"GEOS soporta este nuevo tipo. Para solucionar este problema se puede "
+"convertir entre los tipos de \"geometry\" y \"geography\"."
+
+#. Tag: para
+#: using_postgis_dataman.xml:266
+#, no-c-format
+msgid ""
+"The new geography type uses the PostgreSQL 8.3+ typmod definition format so "
+"that a table with a geography field can be added in a single step. All the "
+"standard OGC formats except for curves are supported."
+msgstr ""
+"El nuevo tipo \"geography\" utiliza el formato de definición typmod de "
+"PostgreSQL 8.3+ así se puede añadir una tabla con un campo geográfico de "
+"forma sencilla. Todos los formatos OGC excepto la curva están soportados."
+
+#. Tag: title
+#: using_postgis_dataman.xml:270
+#, no-c-format
+msgid "Geography Basics"
+msgstr "Bases del tipo \"Geography\""
+
+#. Tag: para
+#: using_postgis_dataman.xml:271
+#, no-c-format
+msgid ""
+"The geography type only supports the simplest of simple features. Standard "
+"geometry type data will autocast to geography if it is of SRID 4326. You can "
+"also use the EWKT and EWKB conventions to insert data."
+msgstr ""
+"El tipo \"geography\" solo soporta el mas simple de los objetos simples. "
+"Datos del tipo de geometría estándar serán moldeados al tipo \"geography\" "
+"si esta en SRID 4326. También puedes emplear las convenciones EWKT y EWKB "
+"para añadir datos."
+
+#. Tag: para
+#: using_postgis_dataman.xml:276
+#, no-c-format
+msgid "POINT: Creating a table with 2d point geometry:"
+msgstr "PUNTO: Creando una tabla con una geometría puntual 2D:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:277
+#, no-c-format
+msgid ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINT,4326) );"
+msgstr ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINT,4326) );"
+
+#. Tag: para
+#: using_postgis_dataman.xml:278
+#, no-c-format
+msgid "Creating a table with z coordinate point"
+msgstr "Creando una tabla con un punto con coordenada z"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:279
+#, no-c-format
+msgid ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINTZ,4326) );"
+msgstr ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINTZ,4326) );"
+
+#. Tag: para
+#: using_postgis_dataman.xml:282
+#, no-c-format
+msgid "LINESTRING"
+msgstr "LINESTRING"
+
+#. Tag: para
+#: using_postgis_dataman.xml:285
+#, no-c-format
+msgid "POLYGON"
+msgstr "POLYGON"
+
+#. Tag: para
+#: using_postgis_dataman.xml:288
+#, no-c-format
+msgid "MULTIPOINT"
+msgstr "MULTIPOINT"
+
+#. Tag: para
+#: using_postgis_dataman.xml:291
+#, no-c-format
+msgid "MULTILINESTRING"
+msgstr "MULTILINESTRING"
+
+#. Tag: para
+#: using_postgis_dataman.xml:294
+#, no-c-format
+msgid "MULTIPOLYGON"
+msgstr "MULTIPOLYGON"
+
+#. Tag: para
+#: using_postgis_dataman.xml:297
+#, no-c-format
+msgid "GEOMETRYCOLLECTION"
+msgstr "GEOMETRYCOLLECTION"
+
+#. Tag: para
+#: using_postgis_dataman.xml:301
+#, no-c-format
+msgid ""
+"The new geography fields don't get registered in the "
+"<varname>geometry_columns</varname>. They get registered in a new view "
+"called geography_columns which is a view against the system catalogs so is "
+"always automatically kept up to date without need for an AddGeom... like "
+"function."
+msgstr ""
+"Los nuevos campos geográficos no estarán registrados en "
+"<varname>geometry_columns</varname>. Estarán registrados en una nueva vista "
+"llamada geography_columns que es una vista contra los catálogos del sistema, "
+"así que siempre actualizara de forma automática sin necesidad de ninguna "
+"función de tipo AddGeom..."
+
+#. Tag: para
+#: using_postgis_dataman.xml:305
+#, no-c-format
+msgid ""
+"Now, check the \"geography_columns\" view and see that your table is listed."
+msgstr ""
+"Ahora, comprueba la vista  \"geography_columns\"  y mira si tu tabla está "
+"listada"
+
+#. Tag: para
+#: using_postgis_dataman.xml:307
+#, no-c-format
+msgid ""
+"You can create a new table with a GEOGRAPHY column using the CREATE TABLE "
+"syntax. Unlike GEOMETRY, there is no need to run a separate "
+"AddGeometryColumns() process to register the column in metadata."
+msgstr ""
+"Puedes crear una nueva tabla con una columna GEOGRAPHY usando la sintaxis de "
+"CREATE TABLE. A diferencia de GEOMETRY, no hay necesidad de ejecutar un "
+"proceso separado de AddGeometryColumns() para registrar la columna en los "
+"metadatos."
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:311
+#, no-c-format
+msgid ""
+"CREATE TABLE global_points ( \n"
+"    id SERIAL PRIMARY KEY,\n"
+"    name VARCHAR(64),\n"
+"    location GEOGRAPHY(POINT,4326)\n"
+"  );"
+msgstr ""
+"CREATE TABLE global_points ( \n"
+"    id SERIAL PRIMARY KEY,\n"
+"    name VARCHAR(64),\n"
+"    location GEOGRAPHY(POINT,4326)\n"
+"  );"
+
+#. Tag: para
+#: using_postgis_dataman.xml:314
+#, no-c-format
+msgid ""
+"Note that the location column has type GEOGRAPHY and that geography type "
+"supports two optional modifier: a type modifier that restricts the kind of "
+"shapes and dimensions allowed in the column; an SRID modifier that restricts "
+"the coordinate reference identifier to a particular number."
+msgstr ""
+"Se puede notar que la columna de localización es de tipo GEOGRAPHY y este "
+"tipo geográfico soporta dos modificadores opcionales: un modificador de tipo "
+"que restringe la clase de formas y dimensiones permitidas en la columna; y "
+"un modificador SRID que restringe el identificador de las coordenadas de "
+"referencia a un número particular."
+
+#. Tag: para
+#: using_postgis_dataman.xml:315
+#, no-c-format
+msgid ""
+"Allowable values for the type modifier are: POINT, LINESTRING, POLYGON, "
+"MULTIPOINT, MULTILINESTRING, MULTIPOLYGON. The modifier also supports "
+"dimensionality restrictions through suffixes: Z, M and ZM. So, for example a "
+"modifier of 'LINESTRINGM' would only allow line strings with three "
+"dimensions in, and would treat the third dimension as a measure. Similarly, "
+"'POINTZM' would expect four dimensional data."
+msgstr ""
+"Valores permitdos para el modificador de tipo son: POINT, LINESTRING, "
+"POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON. El modificador también "
+"acepta restricciones dimensionales a través de sufijos: Z, M Y ZM. Así, por "
+"ejemplo, un modificador de  'LINESTRINGM'  permitirá sólo líneas con tres "
+"dimensiones, y trataría la tercera dimensión como una medida. De forma "
+"similar, 'POINTZM' esperará datos de cuatro dimensiones."
+
+#. Tag: para
+#: using_postgis_dataman.xml:317
+#, no-c-format
+msgid ""
+"The SRID modifier is currently of limited use: only 4326 (WGS84) is allowed "
+"as a value. If you do not specify an SRID, the a value 0 (undefined "
+"spheroid) will be used, and all calculations will proceed using WGS84 "
+"anyways."
+msgstr ""
+"El modificador SRID tiene un uso limitado actualmente: solo esta permitido "
+"el valor 4326 (WGS84). Si no especificas un SRID, se utilizara el valor 0 "
+"(esferoide indefinido), y todos los cálculos se harán utilizando el "
+"esferoide WGS84 de todas formas."
+
+#. Tag: para
+#: using_postgis_dataman.xml:318
+#, no-c-format
+msgid ""
+"In the future, alternate SRIDs will allow calculations on spheroids other "
+"than WGS84."
+msgstr ""
+"En el futuro, SRID diferentes permitirán cálculos en esferoides diferentes "
+"al WGS84."
+
+#. Tag: para
+#: using_postgis_dataman.xml:319
+#, no-c-format
+msgid ""
+"Once you have created your table, you can see it in the GEOGRAPHY_COLUMNS "
+"table:"
+msgstr ""
+"Una vez hayas creado tu tabla, podras verla en en la tabla GEOGRAPHY_COLUMNS:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:320
+#, no-c-format
+msgid ""
+"-- See the contents of the metadata view\n"
+"SELECT * FROM geography_columns;"
+msgstr ""
+"-- Ver el contenido de la vista de metadatos\n"
+"SELECT * FROM geography_columns;"
+
+#. Tag: para
+#: using_postgis_dataman.xml:322
+#, no-c-format
+msgid ""
+"You can insert data into the table the same as you would if it was using a "
+"GEOMETRY column:"
+msgstr ""
+"Puedes añadir datos en la tabla de la misma forma que si fuera una columna "
+"GEOMETRY:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:324
+#, no-c-format
+msgid ""
+"-- Add some data into the test table\n"
+"INSERT INTO global_points (name, location) VALUES ('Town', "
+"ST_GeographyFromText('SRID=4326;POINT(-110 30)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('Forest', "
+"ST_GeographyFromText('SRID=4326;POINT(-109 29)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('London', "
+"ST_GeographyFromText('SRID=4326;POINT(0 49)') );"
+msgstr ""
+"-- Añade algunos datos en la tabla de test\n"
+"INSERT INTO global_points (name, location) VALUES ('Town', "
+"ST_GeographyFromText('SRID=4326;POINT(-110 30)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('Forest', "
+"ST_GeographyFromText('SRID=4326;POINT(-109 29)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('London', "
+"ST_GeographyFromText('SRID=4326;POINT(0 49)') );"
+
+#. Tag: para
+#: using_postgis_dataman.xml:326
+#, no-c-format
+msgid ""
+"Creating an index works the same as GEOMETRY. PostGIS will note that the "
+"column type is GEOGRAPHY and create an appropriate sphere-based index "
+"instead of the usual planar index used for GEOMETRY."
+msgstr ""
+"Crear un indice es igual que para GEOMETRY. PostGIS detectará que el tipo de "
+"columna es GEOGRAPHY y creara un indice basado en una esfera apropiado en "
+"vez de el indice usual basado en plano utilizado para columnas GEOMETRY"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:329
+#, no-c-format
+msgid ""
+"-- Index the test table with a spherical index\n"
+"  CREATE INDEX global_points_gix ON global_points USING GIST ( location );"
+msgstr ""
+"-- Crea un indice en la tabla de test con un indice esferico\n"
+"  CREATE INDEX global_points_gix ON global_points USING GIST ( location );"
+
+#. Tag: para
+#: using_postgis_dataman.xml:332
+#, no-c-format
+msgid ""
+"Query and measurement functions use units of meters. So distance parameters "
+"should be expressed in meters, and return values should be expected in "
+"meters (or square meters for areas)."
+msgstr ""
+"Las consultas y las funciones de medidas utilizan metros cho unidad. Asi que "
+"los parámetros de distancia deben estar expresados en metros, y los valores "
+"devueltos deben estar expresados en metros (o metros cuadrados para áreas)"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:334
+#, no-c-format
+msgid ""
+"-- Show a distance query and note, London is outside the 1000km tolerance\n"
+"  SELECT name FROM global_points WHERE ST_DWithin(location, "
+"ST_GeographyFromText('SRID=4326;POINT(-110 29)'), 1000000);"
+msgstr ""
+"-- Muestra una consulta de distancia y observa que , Londres esta fuera de "
+"la tolerancia de 1000km\n"
+"  SELECT name FROM global_points WHERE ST_DWithin(location, "
+"ST_GeographyFromText('SRID=4326;POINT(-110 29)'), 1000000);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:337
+#, no-c-format
+msgid ""
+"You can see the power of GEOGRAPHY in action by calculating the how close a "
+"plane flying from Seattle to London (LINESTRING(-122.33 47.606, 0.0 51.5)) "
+"comes to Reykjavik (POINT(-21.96 64.15))."
+msgstr ""
+"Puedes observar la potencia de GEOGRAPHY en directo calculando como de "
+"próximo, un avión volando de Seattle a Londres (LINESTRING(-122.33 47.606, "
+"0.0 51.5)) viene a Reykjavik (POINT(-21.96 64.15))."
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:339
+#, no-c-format
+msgid ""
+"-- Distance calculation using GEOGRAPHY (122.2km)\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geography, "
+"'POINT(-21.96 64.15)':: geography);"
+msgstr ""
+"-- Calculo de distancia utilizando GEOGRAPHY (122.2km)\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geography, "
+"'POINT(-21.96 64.15)':: geography);"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:342
+#, no-c-format
+msgid ""
+"-- Distance calculation using GEOMETRY (13.3 \"degrees\")\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, "
+"'POINT(-21.96 64.15)':: geometry);"
+msgstr ""
+"-- Calculo de distancia utilizando GEOMETRY (13.3 \"degrees\")\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, "
+"'POINT(-21.96 64.15)':: geometry);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:345
+#, no-c-format
+msgid ""
+"The GEOGRAPHY type calculates the true shortest distance over the sphere "
+"between Reykjavik and the great circle flight path between Seattle and "
+"London."
+msgstr ""
+"El tipo GEOGRAPHY calcula la distancia real mas corta sobre la esfera entre "
+"Reykjavik y el camino circular mayor de vuelo entre Seattle y London."
+
+#. Tag: para
+#: using_postgis_dataman.xml:347
+#, no-c-format
+msgid ""
+"<ulink url=\"http://gc.kls2.com/cgi-bin/gc?PATH=SEA-LHR\">Great Circle "
+"mapper</ulink> The GEOMETRY type calculates a meaningless cartesian distance "
+"between Reykjavik and the straight line path from Seattle to London plotted "
+"on a flat map of the world. The nominal units of the result might be called "
+"\"degrees\", but the result doesn't correspond to any true angular "
+"difference between the points, so even calling them \"degrees\" is "
+"inaccurate."
+msgstr ""
+"<ulink url=\"http://gc.kls2.com/cgi-bin/gc?PATH=SEA-LHR\">Great Circle "
+"mapper</ulink> El tipo GEOMETRY calcula una distancia cartesiana sin sentido "
+"entre Reykjavik y el camino recto desde Seattle a Londres dibujado en un "
+"mapa plano del mundo. Las unidades nominales del resultado debe llamarse "
+"\"grados\", pero el resultado no corresponde con ninguna diferencia angular "
+"entre los puntos, así que incluso llamándolo \"grados\" es inexacta."
+
+#. Tag: title
+#: using_postgis_dataman.xml:351
+#, no-c-format
+msgid "When to use Geography Data type over Geometry data type"
+msgstr "¿Cuando utilizar el tipo Geografico en vez de Geometrico?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:352
+#, no-c-format
+msgid ""
+"The new GEOGRAPHY type allows you to store data in longitude/latitude "
+"coordinates, but at a cost: there are fewer functions defined on GEOGRAPHY "
+"than there are on GEOMETRY; those functions that are defined take more CPU "
+"time to execute."
+msgstr ""
+"El nuevo tipo GEOGRAPHY te permite almacenar datos en coordenadas longitud/"
+"latitud, pero con un coste: hay algunas funciones definidas en GEOGRAPHY que "
+"están en GEOMETRY; estas funciones que están definidas toman mas tiempo en "
+"la CPU a ejecutarse"
+
+#. Tag: para
+#: using_postgis_dataman.xml:353
+#, no-c-format
+msgid ""
+"The type you choose should be conditioned on the expected working area of "
+"the application you are building. Will your data span the globe or a large "
+"continental area, or is it local to a state, county or municipality?"
+msgstr ""
+"El tipo que elijas debe estar condicionado por la extension del área de "
+"trabajo de la aplicación que estas construyendo. ¿Tus datos se extienden por "
+"el globo o una zona continental grande? ¿O es un estado, región o municipio?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:355
+#, no-c-format
+msgid ""
+"If your data is contained in a small area, you might find that choosing an "
+"appropriate projection and using GEOMETRY is the best solution, in terms of "
+"performance and functionality available."
+msgstr ""
+"Si tus datos están un área pequeña, la mejor solución seria elegir una "
+"proyección adecuada y utilizando GEOMETRY, en términos de rendimiento y "
+"funcionalidades disponibles."
+
+#. Tag: para
+#: using_postgis_dataman.xml:356
+#, no-c-format
+msgid ""
+"If your data is global or covers a continental region, you may find that "
+"GEOGRAPHY allows you to build a system without having to worry about "
+"projection details. You store your data in longitude/latitude, and use the "
+"functions that have been defined on GEOGRAPHY."
+msgstr ""
+"Si tus datos son globales o cubren una región continental, veras que "
+"GEOGRAPHY te permite construir un sistema sin tener que preocuparte sobre "
+"detalles de proyección. Almacenas tus datos en longitud/latitud, y utilizas "
+"las funciones definidas en GEOGRAPHY."
+
+#. Tag: para
+#: using_postgis_dataman.xml:358
+#, no-c-format
+msgid ""
+"If you don't understand projections, and you don't want to learn about them, "
+"and you're prepared to accept the limitations in functionality available in "
+"GEOGRAPHY, then it might be easier for you to use GEOGRAPHY than GEOMETRY. "
+"Simply load your data up as longitude/latitude and go from there."
+msgstr ""
+"Si no entiendes las proyecciones, y no quieres aprender sobre ellas, y estas "
+"preparado a aceptar las funcionalidades limitadas disponibles en GEOGRAPHY, "
+"entonces sera mas fácil para ti, utilizar GEOGRAPHY en lugar de GEOMETRY. "
+"Simplemente carga tus datos como longitud/latitud y continua desde allí."
+
+#. Tag: para
+#: using_postgis_dataman.xml:361
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"PostGIS_TypeFunctionMatrix\"/> for compare between "
+"what is supported for Geography vs. Geometry. For a brief listing and "
+"description of Geography functions, refer to <xref linkend="
+"\"PostGIS_GeographyFunctions\"/>"
+msgstr ""
+"Para tener una comparación entre lo que esta soportado entre Geography y "
+"Geometry ve a  <xref linkend=\"PostGIS_TypeFunctionMatrix\"/>. Para obtener "
+"una lista con la descripción de las funciones Geography ve a <xref linkend="
+"\"PostGIS_GeographyFunctions\"/>"
+
+#. Tag: title
+#: using_postgis_dataman.xml:367
+#, no-c-format
+msgid "Geography Advanced FAQ"
+msgstr "Preguntas frecuentes Avanzadas de Geography"
+
+#. Tag: para
+#: using_postgis_dataman.xml:371
+#, no-c-format
+msgid "Do you calculate on the sphere or the spheroid?"
+msgstr "¿Se calcula en la esfera o en el esferoide?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:375
+#, no-c-format
+msgid ""
+"By default, all distance and area calculations are done on the spheroid. You "
+"should find that the results of calculations in local areas match up will "
+"with local planar results in good local projections. Over larger areas, the "
+"spheroidal calculations will be more accurate than any calculation done on a "
+"projected plane."
+msgstr ""
+"Por defecto, todos los cálculos de distancia y área están hechos sobre el "
+"esferoide. Deberías ver que los resultados de los cálculos en áreas locales "
+"deberán coincidir con los resultados en coordenadas locales planas con "
+"proyecciones locales correctas. En grandes áreas, los cálculos esferoidales "
+"serán mas precisas que cualquier calculo realizado en planas."
+
+#. Tag: para
+#: using_postgis_dataman.xml:378
+#, no-c-format
+msgid ""
+"All the geography functions have the option of using a sphere calculation, "
+"by setting a final boolean parameter to 'FALSE'. This will somewhat speed up "
+"calculations, particularly for cases where the geometries are very simple."
+msgstr ""
+"Todas las funciones \"geography\" tienen la opción de utilizar el calculo "
+"sobre la esfera, seleccionando el parámetro final boleano a 'FALSE'. Esto "
+"puede acelerar los cálculos, particularmente en casos donde las geometrias "
+"son muy simples."
+
+#. Tag: para
+#: using_postgis_dataman.xml:384
+#, no-c-format
+msgid "What about the date-line and the poles?"
+msgstr "¿Que ocurre con los husos horarios y los polos?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:388
+#, no-c-format
+msgid ""
+"All the calculations have no conception of date-line or poles, the "
+"coordinates are spherical (longitude/latitude) so a shape that crosses the "
+"dateline is, from a calculation point of view, no different from any other "
+"shape."
+msgstr ""
+"Todos los cálculos no tienen nociones de husos horarios o polos, las "
+"coordenadas son esféricas(longitud/latitud) así que una forma que atraviesa "
+"husos horarios no es, desde un punto de vista de los cálculos, a cualquier "
+"otra forma."
+
+#. Tag: para
+#: using_postgis_dataman.xml:396
+#, no-c-format
+msgid "What is the longest arc you can process?"
+msgstr "¿Cual es el arco mas largo que se pude procesar?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:400
+#, no-c-format
+msgid ""
+"We use great circle arcs as the \"interpolation line\" between two points. "
+"That means any two points are actually joined up two ways, depending on "
+"which direction you travel along the great circle. All our code assumes that "
+"the points are joined by the *shorter* of the two paths along the great "
+"circle. As a consequence, shapes that have arcs of more than 180 degrees "
+"will not be correctly modelled."
+msgstr ""
+"Utilizamos grandes arcos de circulo como la \"linea de interpolación\" entre "
+"dos puntos. Esto significa que actualmente, dos puntos se unen de dos "
+"formas, dependiendo de la dirección del viaje sobre el arco. Todo nuestro "
+"código asume que los puntos están unidos por el *mas corto* de los dos "
+"caminos a traves del arco de circunferencia. Como consecuencia, las formas "
+"que tienen arcos mayores de 180 grados no serán modeladas correctamente."
+
+#. Tag: para
+#: using_postgis_dataman.xml:407
+#, no-c-format
+msgid ""
+"Why is it so slow to calculate the area of Europe / Russia / insert big "
+"geographic region here ?"
+msgstr ""
+"¿ Por que es tan lento el calculo del area de Europa / Rusia / añade una "
+"región geográfica grande aquí?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:411
+#, no-c-format
+msgid ""
+"Because the polygon is so darned huge! Big areas are bad for two reasons: "
+"their bounds are huge, so the index tends to pull the feature no matter what "
+"query you run; the number of vertices is huge, and tests (distance, "
+"containment) have to traverse the vertex list at least once and sometimes N "
+"times (with N being the number of vertices in the other candidate feature)."
+msgstr ""
+"¡Por que el poligono es condenadamente grande! Las grandes áreas son malas "
+"por dos razones: Sus limites son grandes, así que el indice tiende a tirar "
+"de la función sin importar la consulta que estes ejecutando; el numero de "
+"vértices es grande, y los tests (distancia, de contención) tiene que "
+"recorrer la lista de vértices al menos una vez y a veces N veces ( con N "
+"igual al numero de vértices en el otro objeto candidato)."
+
+#. Tag: para
+#: using_postgis_dataman.xml:416
+#, no-c-format
+msgid ""
+"As with GEOMETRY, we recommend that when you have very large polygons, but "
+"are doing queries in small areas, you \"denormalize\" your geometric data "
+"into smaller chunks so that the index can effectively subquery parts of the "
+"object and so queries don't have to pull out the whole object every time. "
+"Just because you *can* store all of Europe in one polygon doesn't mean you "
+"*should*."
+msgstr ""
+"Como con GEOMETRY, recomendamos que cuando tengas polígonos muy grandes, "
+"pero haces consultas en áreas pequeñas, deberías \"desnormalizar\" tus datos "
+"geométricos en trozos pequeños así el indice puede hacer subconsultas "
+"eficientes del objeto y las consultas no tienen que utilizar el objeto "
+"entero cada vez. Solo por que *puedas* almacenar toda Europa en un polígono "
+"no significa que *debas*."
+
+#. Tag: title
+#: using_postgis_dataman.xml:425
+#, no-c-format
+msgid "Using OpenGIS Standards"
+msgstr "Utilizando estandares OpenGIS"
+
+#. Tag: para
+#: using_postgis_dataman.xml:427
+#, no-c-format
+msgid ""
+"The OpenGIS \"Simple Features Specification for SQL\" defines standard GIS "
+"object types, the functions required to manipulate them, and a set of meta-"
+"data tables. In order to ensure that meta-data remain consistent, operations "
+"such as creating and removing a spatial column are carried out through "
+"special procedures defined by OpenGIS."
+msgstr ""
+"La especificación \"Simple Features Specification for SQL\"del OpenGIS, "
+"define estándares del tipo de objetos GIS, las funciones necesarias para "
+"manipularlos, y un conjunto de tablas de metadatos. Para asegurar que los "
+"metadatos permanecen consistentes, operaciones como crear o borrar una "
+"columna espacial están llevados a cabo a través de procedimientos especiales "
+"definidos por el OpenGIS."
+
+#. Tag: para
+#: using_postgis_dataman.xml:433
+#, no-c-format
+msgid ""
+"There are two OpenGIS meta-data tables: <varname>SPATIAL_REF_SYS</varname> "
+"and <varname>GEOMETRY_COLUMNS</varname>. The <varname>SPATIAL_REF_SYS</"
+"varname> table holds the numeric IDs and textual descriptions of coordinate "
+"systems used in the spatial database."
+msgstr ""
+"Hay dos tablas de metadatos definidas por el OpenGIS: "
+"<varname>SPATIAL_REF_SYS</varname> y <varname>GEOMETRY_COLUMNS</varname>. La "
+"tabla <varname>SPATIAL_REF_SYS</varname> almacena los IDs numéricos y las "
+"descripciones textuales de los sistemas de coordenadas utilizados en la base "
+"de datos espaciales."
+
+#. Tag: title
+#: using_postgis_dataman.xml:440
+#, no-c-format
+msgid "The SPATIAL_REF_SYS Table and Spatial Reference Systems"
+msgstr "La tabla SPATIAL_REF_SYS y los Sistemas de Referencia Espacial"
+
+#. Tag: para
+#: using_postgis_dataman.xml:442
+#, no-c-format
+msgid ""
+"The spatial_ref_sys table is a PostGIS included and OGC compliant database "
+"table that lists over 3000 known <ulink url=\"http://www.sharpgis.net/"
+"post/2007/05/Spatial-references2c-coordinate-systems2c-projections2c-"
+"datums2c-ellipsoids-e28093-confusing.aspx\">spatial reference systems</"
+"ulink> and details needed to transform/reproject between them."
+msgstr ""
+"La tabla spatial_ref_sys es una tabla incluida en PostGIS y cumple con el "
+"estafar OGC, que contiene una lista de unos 3000 <ulink url=\"http://www."
+"sharpgis.net/post/2007/05/Spatial-references2c-coordinate-systems2c-"
+"projections2c-datums2c-ellipsoids-e28093-confusing.aspx\">sistemas de "
+"referencia espaciales</ulink>  conocidos y los detalles necesarios para "
+"transformar/reproyectar entre ellos."
+
+#. Tag: para
+#: using_postgis_dataman.xml:446
+#, no-c-format
+msgid ""
+"Although the PostGIS spatial_ref_sys table contains over 3000 of the more "
+"commonly used spatial reference system definitions that can be handled by "
+"the proj library, it does not contain all known to man and you can even "
+"define your own custom projection if you are familiar with proj4 constructs. "
+"Keep in mind that most spatial reference systems are regional and have no "
+"meaning when used outside of the bounds they were intended for."
+msgstr ""
+"Aunque la tabla spatial_ref_sys de PostGIS contiene unas 3000 definiciones "
+"de sistemas de referencia espaciales mas comunes, esto puede ser manejado "
+"con la librería proj, no contiene todos los sistemas conocidos y puedes "
+"definir tus propias proyecciones si estas familiarizado con el constructor "
+"de proj4. Piensa que la mayoría de sistemas de referencia son regionales y "
+"no tiene sentido utilizarlos fuera de los limites para los cuales fueron "
+"definidos."
+
+#. Tag: para
+#: using_postgis_dataman.xml:449
+#, no-c-format
+msgid ""
+"An excellent resource for finding spatial reference systems not defined in "
+"the core set is <ulink url=\"http://spatialreference.org/\">http://"
+"spatialreference.org/</ulink>"
+msgstr ""
+"Un recurso muy bueno para encontrar sistemas de referencia espaciales no "
+"definidos en el núcleo de la librería es <ulink url=\"http://"
+"spatialreference.org/\">http://spatialreference.org/</ulink>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:451
+#, no-c-format
+msgid ""
+"Some of the more commonly used spatial reference systems are: <ulink url="
+"\"http://spatialreference.org/ref/epsg/4326/\">4326 - WGS 84 Long Lat</"
+"ulink>, <ulink url=\"http://spatialreference.org/ref/epsg/4269/\">4269 - NAD "
+"83 Long Lat</ulink>, <ulink url=\"http://spatialreference.org/ref/epsg/3395/"
+"\">3395 - WGS 84 World Mercator</ulink>, <ulink url=\"http://"
+"spatialreference.org/ref/epsg/2163/\">2163 - US National Atlas Equal Area</"
+"ulink>, Spatial reference systems for each NAD 83, WGS 84 UTM zone - UTM "
+"zones are one of the most ideal for measurement, but only cover 6-degree "
+"regions."
+msgstr ""
+"Algunos de los sistemas de referencia espaciales mas comunes en Estados "
+"Unidos son: <ulink url=\"http://spatialreference.org/ref/epsg/4326/\">4326 - "
+"WGS 84 Long Lat </ulink>, <ulink url=\"http://spatialreference.org/ref/"
+"epsg/4269/\">4269 - NAD 83 Long Lat (en Norte America )</ulink>, <ulink url="
+"\"http://spatialreference.org/ref/epsg/3395/\">3395 - WGS 84 World Mercator</"
+"ulink>, <ulink url=\"http://spatialreference.org/ref/epsg/2163/\">2163 - US "
+"National Atlas Equal Area (en Estados Unidos )</ulink>,Sistemas de "
+"referencia espaciales para cada zona, NAD 83, WGS 84 UTM y UTM son de los "
+"mas idóneos para medidas, pero solo cubren regiones de 6 grados."
+
+#. Tag: para
+#: using_postgis_dataman.xml:457
+#, no-c-format
+msgid ""
+"Various US state plane spatial reference systems (meter or feet based) - "
+"usually one or 2 exists per US state. Most of the meter ones are in the core "
+"set, but many of the feet based ones or ESRI created ones you will need to "
+"pull from <ulink url=\"http://spatialreference.org\">spatialreference.org</"
+"ulink>."
+msgstr ""
+"Algunos sistemas de referencia espaciales planos de Estados Unidos (basados "
+"en metros o pies) - normalmente existen uno o 2 por Estado de Estados "
+"Unidos. La mayoría de los basados en metros están en el núcleo de "
+"definiciones, pero algunos de los basados en pies o los creados por ESRI "
+"deberás crearlos desde <ulink url=\"http://spatialreference.org"
+"\">spatialreference.org</ulink>."
+
+#. Tag: para
+#: using_postgis_dataman.xml:461
+#, no-c-format
+msgid ""
+"For details on determining which UTM zone to use for your area of interest, "
+"check out the <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiplpgsqlfunctionsDistance\">utmzone PostGIS plpgsql helper function</"
+"ulink>."
+msgstr ""
+"Para saber detalles sobre como determinar la zona UTM a utilizar en tu área "
+"de interés, echalé un vistazo a la <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/UsersWikiplpgsqlfunctionsDistance\">función de ayuda utmzone "
+"PostGIS plpgsql </ulink>."
+
+#. Tag: para
+#: using_postgis_dataman.xml:465
+#, no-c-format
+msgid "The <varname>SPATIAL_REF_SYS</varname> table definition is as follows:"
+msgstr ""
+"La definición de la tabla <varname>SPATIAL_REF_SYS</varname> es la siguiente:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:468
+#, no-c-format
+msgid ""
+"CREATE TABLE spatial_ref_sys (\n"
+"  srid       INTEGER NOT NULL PRIMARY KEY,\n"
+"  auth_name  VARCHAR(256),\n"
+"  auth_srid  INTEGER,\n"
+"  srtext     VARCHAR(2048),\n"
+"  proj4text  VARCHAR(2048)\n"
+")"
+msgstr ""
+"CREATE TABLE spatial_ref_sys (\n"
+"  srid       INTEGER NOT NULL PRIMARY KEY,\n"
+"  auth_name  VARCHAR(256),\n"
+"  auth_srid  INTEGER,\n"
+"  srtext     VARCHAR(2048),\n"
+"  proj4text  VARCHAR(2048)\n"
+")"
+
+#. Tag: para
+#: using_postgis_dataman.xml:470
+#, no-c-format
+msgid "The <varname>SPATIAL_REF_SYS</varname> columns are as follows:"
+msgstr "Las columnas <varname>SPATIAL_REF_SYS</varname> son como sigue:"
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:475
+#, no-c-format
+msgid "<ulink url=\"http://en.wikipedia.org/wiki/SRID\">SRID</ulink>"
+msgstr "<ulink url=\"http://en.wikipedia.org/wiki/SRID\">SRID</ulink>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:478
+#, no-c-format
+msgid ""
+"An integer value that uniquely identifies the Spatial Referencing System "
+"(SRS) within the database."
+msgstr ""
+"Un valor entero único que identifica el Sistema de Referencia Espacial (SRS "
+"de sus siglas en ingles) con la base de datos. "
+
+#. Tag: term
+#: using_postgis_dataman.xml:484
+#, no-c-format
+msgid "AUTH_NAME"
+msgstr "AUTH_NAME"
+
+#. Tag: para
+#: using_postgis_dataman.xml:487
+#, no-c-format
+msgid ""
+"The name of the standard or standards body that is being cited for this "
+"reference system. For example, \"EPSG\" would be a valid <varname>AUTH_NAME</"
+"varname>."
+msgstr ""
+"El nombre del estándar o estándares que es citado para este sistema de "
+"referencia. Por ejemplo, \"EPSG\" seria un <varname>AUTH_NAME</varname> "
+"valido."
+
+#. Tag: term
+#: using_postgis_dataman.xml:494
+#, no-c-format
+msgid "AUTH_SRID"
+msgstr "AUTH_SRID"
+
+#. Tag: para
+#: using_postgis_dataman.xml:497
+#, no-c-format
+msgid ""
+"The ID of the Spatial Reference System as defined by the Authority cited in "
+"the <varname>AUTH_NAME</varname>. In the case of EPSG, this is where the "
+"EPSG projection code would go."
+msgstr ""
+"El ID del Sistema de Referencia Espacial definido por el Autor citado en "
+"<varname>AUTH_NAME</varname>. En el caso de EPSG, este es lugar donde deberá "
+"ir el código de la proyección EPSG."
+
+#. Tag: term
+#: using_postgis_dataman.xml:504
+#, no-c-format
+msgid "SRTEXT"
+msgstr "SRTEXT"
+
+#. Tag: para
+#: using_postgis_dataman.xml:507
+#, no-c-format
+msgid ""
+"The Well-Known Text representation of the Spatial Reference System. An "
+"example of a WKT SRS representation is:"
+msgstr ""
+"La representación Well-Known Text del Sistema de Referencia Espacial (SRS). "
+"Un ejemplo de representación WKT SRS es:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:510
+#, no-c-format
+msgid ""
+"PROJCS[\"NAD83 / UTM Zone 10N\",\n"
+"  GEOGCS[\"NAD83\",\n"
+"        DATUM[\"North_American_Datum_1983\",\n"
+"          SPHEROID[\"GRS 1980\",6378137,298.257222101]\n"
+"        ],\n"
+"        PRIMEM[\"Greenwich\",0],\n"
+"        UNIT[\"degree\",0.0174532925199433]\n"
+"  ],\n"
+"  PROJECTION[\"Transverse_Mercator\"],\n"
+"  PARAMETER[\"latitude_of_origin\",0],\n"
+"  PARAMETER[\"central_meridian\",-123],\n"
+"  PARAMETER[\"scale_factor\",0.9996],\n"
+"  PARAMETER[\"false_easting\",500000],\n"
+"  PARAMETER[\"false_northing\",0],\n"
+"  UNIT[\"metre\",1]\n"
+"]"
+msgstr ""
+"PROJCS[\"NAD83 / UTM Zone 10N\",\n"
+"  GEOGCS[\"NAD83\",\n"
+"        DATUM[\"North_American_Datum_1983\",\n"
+"          SPHEROID[\"GRS 1980\",6378137,298.257222101]\n"
+"        ],\n"
+"        PRIMEM[\"Greenwich\",0],\n"
+"        UNIT[\"degree\",0.0174532925199433]\n"
+"  ],\n"
+"  PROJECTION[\"Transverse_Mercator\"],\n"
+"  PARAMETER[\"latitude_of_origin\",0],\n"
+"  PARAMETER[\"central_meridian\",-123],\n"
+"  PARAMETER[\"scale_factor\",0.9996],\n"
+"  PARAMETER[\"false_easting\",500000],\n"
+"  PARAMETER[\"false_northing\",0],\n"
+"  UNIT[\"metre\",1]\n"
+"]"
+
+#. Tag: para
+#: using_postgis_dataman.xml:512
+#, no-c-format
+msgid ""
+"For a listing of EPSG projection codes and their corresponding WKT "
+"representations, see <ulink url=\"http://www.opengeospatial.org/\">http://"
+"www.opengeospatial.org/</ulink>. For a discussion of WKT in general, see the "
+"OpenGIS \"Coordinate Transformation Services Implementation Specification\" "
+"at <ulink url=\"http://www.opengeospatial.org/standards\">http://www."
+"opengeospatial.org/standards</ulink>. For information on the European "
+"Petroleum Survey Group (EPSG) and their database of spatial reference "
+"systems, see <ulink url=\"http://www.epsg.org/\">http://www.epsg.org</ulink>."
+msgstr ""
+"Para obtener una lista de los códigos EPSG y sus correspondientes "
+"representaciones WKT, visita <ulink url=\"http://www.opengeospatial.org/"
+"\">http://www.opengeospatial.org/</ulink>. Para obtener  información general "
+"sobre WKT, visita el OpenGIS \"Coordinate Transformation Services "
+"Implementation Specification\" en <ulink url=\"http://www.opengeospatial.org/"
+"standards\">http://www.opengeospatial.org/standards</ulink>. Para obtener "
+"información del European Petroleum Survey Group (EPSG) y su base de datos de "
+"sistemas de referencia espacial, visita <ulink url=\"http://www.epsg.org/"
+"\">http://www.epsg.org</ulink>."
+
+#. Tag: term
+#: using_postgis_dataman.xml:525
+#, no-c-format
+msgid "PROJ4TEXT"
+msgstr "PROJ4TEXT"
+
+#. Tag: para
+#: using_postgis_dataman.xml:528
+#, no-c-format
+msgid ""
+"PostGIS uses the Proj4 library to provide coordinate transformation "
+"capabilities. The <varname>PROJ4TEXT</varname> column contains the Proj4 "
+"coordinate definition string for a particular SRID. For example:"
+msgstr ""
+"PostGIS utiliza la libreria Proj4 para ejecutar transformaciones de "
+"coordenadas. La columna <varname>PROJ4TEXT</varname> contiene la cadena de "
+"definición de coordenadas Proj4 para un SRID particular. Por ejemplo:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:533
+#, no-c-format
+msgid "+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m"
+msgstr "+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m"
+
+#. Tag: para
+#: using_postgis_dataman.xml:535
+#, no-c-format
+msgid ""
+"For more information about, see the Proj4 web site at <ulink url=\"http://"
+"trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>. The "
+"<filename>spatial_ref_sys.sql</filename> file contains both <varname>SRTEXT</"
+"varname> and <varname>PROJ4TEXT</varname> definitions for all EPSG "
+"projections."
+msgstr ""
+"Para obtener mas información, puedes visitar el sitio web de Proj4 en <ulink "
+"url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>. El "
+"fichero <filename>spatial_ref_sys.sql</filename> contiene ambas definiciones "
+"<varname>SRTEXT</varname> y <varname>PROJ4TEXT</varname> para todas las "
+"proyecciones EPSG."
+
+#. Tag: title
+#: using_postgis_dataman.xml:546
+#, no-c-format
+msgid "The GEOMETRY_COLUMNS VIEW"
+msgstr "La VISTA GEOMETRY_COLUMNS"
+
+#. Tag: para
+#: using_postgis_dataman.xml:548
+#, no-c-format
+msgid ""
+"In versions of PostGIS prior to 2.0.0, geometry_columns was a table that "
+"could be directly edited, and sometimes got out of synch with the actual "
+"definition of the geometry columns. In PostGIS 2.0.0, "
+"<varname>GEOMETRY_COLUMNS</varname> became a view with the same front-facing "
+"structure as prior versions, but reading from database system catalogs Its "
+"structure is as follows:"
+msgstr ""
+"En versiones anteriores a PostGIS 2.0.0, geometry_column era una tabla que "
+"podía ser editada directamente, y a veces no estaba sincronizada con la "
+"definición actual de las columnas geométricas. En PostGIS 2.0.0,"
+"<varname>GEOMETRY_COLUMNS</varname> se transforma en una vista con la misma "
+"extructura  que versiones anteriores, pero leyendo desde el catalogo del "
+"sistema de la base de datos, su estructura es la siguiente:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:552
+#, no-c-format
+msgid "\\d geometry_columns"
+msgstr "\\d geometry_columns"
+
+#. Tag: screen
+#: using_postgis_dataman.xml:553
+#, no-c-format
+msgid ""
+"View \"public.geometry_columns\"\n"
+"      Column       |          Type          | Modifiers\n"
+"-------------------+------------------------+-----------\n"
+" f_table_catalog   | character varying(256) |\n"
+" f_table_schema    | character varying(256) |\n"
+" f_table_name      | character varying(256) |\n"
+" f_geometry_column | character varying(256) |\n"
+" coord_dimension   | integer                |\n"
+" srid              | integer                |\n"
+" type              | character varying(30)  |"
+msgstr ""
+"View \"public.geometry_columns\"\n"
+"      Column       |          Type          | Modifiers\n"
+"-------------------+------------------------+-----------\n"
+" f_table_catalog   | character varying(256) |\n"
+" f_table_schema    | character varying(256) |\n"
+" f_table_name      | character varying(256) |\n"
+" f_geometry_column | character varying(256) |\n"
+" coord_dimension   | integer                |\n"
+" srid              | integer                |\n"
+" type              | character varying(30)  |"
+
+#. Tag: para
+#: using_postgis_dataman.xml:555
+#, no-c-format
+msgid "The column meanings have not changed from prior versions and are:"
+msgstr ""
+"El significado de las columnas no ha cambiado desde versiones anteriores y "
+"es: "
+
+#. Tag: term
+#: using_postgis_dataman.xml:559
+#, no-c-format
+msgid "F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME"
+msgstr "F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME"
+
+#. Tag: para
+#: using_postgis_dataman.xml:562
+#, no-c-format
+msgid ""
+"The fully qualified name of the feature table containing the geometry "
+"column. Note that the terms \"catalog\" and \"schema\" are Oracle-ish. There "
+"is not PostgreSQL analogue of \"catalog\" so that column is left blank -- "
+"for \"schema\" the PostgreSQL schema name is used (<varname>public</varname> "
+"is the default)."
+msgstr ""
+"El nombre completo de la tabla de entidad que contiene la columna de "
+"geometría. Observa que los términos \"catalog\" y \"schema\" son como en "
+"Oracle. No hay analogía en PostgreSQL para \"catalogo\" así que esta columna "
+"esta en blanco -- para \"schema\" se usa el nombre de esquema de PostgreSQL  "
+"(<varname>public</varname> es por defecto)."
+
+#. Tag: term
+#: using_postgis_dataman.xml:571
+#, no-c-format
+msgid "F_GEOMETRY_COLUMN"
+msgstr "F_GEOMETRY_COLUMN"
+
+#. Tag: para
+#: using_postgis_dataman.xml:574
+#, no-c-format
+msgid "The name of the geometry column in the feature table."
+msgstr ""
+"El nombre de la columna de geometrías de la tabla de objetos espaciales."
+
+#. Tag: term
+#: using_postgis_dataman.xml:579
+#, no-c-format
+msgid "COORD_DIMENSION"
+msgstr "COORD_DIMENSION"
+
+#. Tag: para
+#: using_postgis_dataman.xml:582
+#, no-c-format
+msgid "The spatial dimension (2, 3 or 4 dimensional) of the column."
+msgstr "Dimension espacial (2, 3 o 4 dimensiones) de la columna."
+
+#. Tag: term
+#: using_postgis_dataman.xml:588
+#, no-c-format
+msgid "<term>SRID</term>"
+msgstr "<term>SRID</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:591
+#, no-c-format
+msgid ""
+"The ID of the spatial reference system used for the coordinate geometry in "
+"this table. It is a foreign key reference to the <varname>SPATIAL_REF_SYS</"
+"varname>."
+msgstr ""
+"El ID del sistema de referencia espacial utilizado para las coordenadas de "
+"las geometrías en la tabla. Es una clave foránea con referencia a la tabla "
+"<varname>SPATIAL_REF_SYS</varname>."
+
+#. Tag: term
+#: using_postgis_dataman.xml:598
+#, no-c-format
+msgid "TYPE"
+msgstr "TYPE"
+
+#. Tag: para
+#: using_postgis_dataman.xml:601
+#, no-c-format
+msgid ""
+"The type of the spatial object. To restrict the spatial column to a single "
+"type, use one of: POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, "
+"MULTIPOLYGON, GEOMETRYCOLLECTION or corresponding XYM versions POINTM, "
+"LINESTRINGM, POLYGONM, MULTIPOINTM, MULTILINESTRINGM, MULTIPOLYGONM, "
+"GEOMETRYCOLLECTIONM. For heterogeneous (mixed-type) collections, you can use "
+"\"GEOMETRY\" as the type."
+msgstr ""
+"El tipo de objeto espacial. Para restringir la columna espacial a un tipo "
+"unico, utiliza uno de: POINT, LINESTRING, POLYGON, MULTIPOINT, "
+"MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION o su version "
+"correspondiente de XYM POINTM, LINESTRINGM, POLYGONM, MULTIPOINTM, "
+"MULTILINESTRINGM, MULTIPOLYGONM, GEOMETRYCOLLECTIONM. Para colecciones "
+"heterogéneas (tipos mixtos), puedes utilizar \"GEOMETRY\" como tipo."
+
+#. Tag: para
+#: using_postgis_dataman.xml:610
+#, no-c-format
+msgid ""
+"This attribute is (probably) not part of the OpenGIS specification, but is "
+"required for ensuring type homogeneity."
+msgstr ""
+"Este no es (probablemente) parte de la especificación OpenGIS, pero es "
+"necesario para asegurar la homogeneidad de tipos. "
+
+#. Tag: title
+#: using_postgis_dataman.xml:620
+#, no-c-format
+msgid "Creating a Spatial Table"
+msgstr "Crear una tabla espacial"
+
+#. Tag: para
+#: using_postgis_dataman.xml:622
+#, no-c-format
+msgid ""
+"Creating a table with spatial data, can be done in one step. As shown in the "
+"following example which creates a roads table with a 2D linestring geometry "
+"column in WGS84 long lat"
+msgstr ""
+"Crear una tabla con datos espaciales se puede hacer en un solo paso. Como se "
+"muestra en el siguiente ejemplo que crea una tabla de carreteras con una "
+"columna de tipo lineal de 2D en WGS84 long lat."
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:624
+#, no-c-format
+msgid ""
+"CREATE TABLE ROADS ( ID int4\n"
+"                  , ROAD_NAME varchar(25), geom geometry(LINESTRING,4326) );"
+msgstr ""
+"CREATE TABLE ROADS ( ID int4\n"
+"                  , ROAD_NAME varchar(25), geom geometry(LINESTRING,4326) );"
+
+#. Tag: para
+#: using_postgis_dataman.xml:626
+#, no-c-format
+msgid ""
+"We can add additional columns using standard ALTER TABLE command as we do in "
+"this next example where we add a 3-D linestring."
+msgstr ""
+"Podemos añadir columnas adicionales utilizando el comando estándar ALTER "
+"TABLE como se muestra en el siguiente ejemplo donde añadimos una columna de "
+"lineas en 3D."
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:627
+#, no-c-format
+msgid "ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326);"
+msgstr "ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:629
+#, no-c-format
+msgid ""
+"For backwards compability, you can still create a spatial table in two "
+"stages using the management functions."
+msgstr ""
+"Por compatibilidad con versiones anteriores, puedes crear tablas espaciales  "
+"en dos pasos utilizando las funciones de gestión."
+
+#. Tag: para
+#: using_postgis_dataman.xml:633
+#, no-c-format
+msgid "Create a normal non-spatial table."
+msgstr "Crear una tabla normal, no espacial."
+
+#. Tag: para
+#: using_postgis_dataman.xml:635
+#, no-c-format
+msgid ""
+"For example: <command>CREATE TABLE ROADS ( ID int4, ROAD_NAME varchar(25) )</"
+"command>"
+msgstr ""
+"Por ejemplo: <command>CREATE TABLE ROADS ( ID int4, ROAD_NAME varchar(25) )</"
+"command>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:640
+#, no-c-format
+msgid ""
+"Add a spatial column to the table using the OpenGIS \"AddGeometryColumn\" "
+"function. Refer to <xref linkend=\"AddGeometryColumn\"/> for more details."
+msgstr ""
+"Añadir una columna espacial a la tabla utilizando la función "
+"\"AddGeometryColumn\". Para mas detallis ve a <xref linkend="
+"\"AddGeometryColumn\"/>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:643
+#, no-c-format
+msgid ""
+"The syntax is: <programlisting>AddGeometryColumn(\n"
+"  <schema_name>,\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")</programlisting> Or, using current schema:"
+msgstr ""
+"La sintaxis es: <programlisting>AddGeometryColumn(\n"
+"  <schema_name>,\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")</programlisting> O, utilizando el esquema actual:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:643
+#, no-c-format
+msgid ""
+"AddGeometryColumn(\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")"
+msgstr ""
+"AddGeometryColumn(\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")"
+
+#. Tag: para
+#: using_postgis_dataman.xml:645
+#, no-c-format
+msgid ""
+"Example1: <command>SELECT AddGeometryColumn('public', 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+msgstr ""
+"Ejemplo 1: <command>SELECT AddGeometryColumn('public', 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:648
+#, no-c-format
+msgid ""
+"Example2: <command>SELECT AddGeometryColumn( 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+msgstr ""
+"Ejemplo 2: <command>SELECT AddGeometryColumn( 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:653
+#, no-c-format
+msgid ""
+"Here is an example of SQL used to create a table and add a spatial column "
+"(assuming that an SRID of 128 exists already):"
+msgstr ""
+"Aqui tienes un ejemplo del comando SQL utilizado para crear una tabla y "
+"añadirle una columna espacial (asumiendo que un SRID de 128 existe ya):"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:656
+#, no-c-format
+msgid ""
+"CREATE TABLE parks (\n"
+"  park_id    INTEGER,\n"
+"  park_name  VARCHAR,\n"
+"  park_date  DATE,\n"
+"  park_type  VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn('parks', 'park_geom', 128, 'MULTIPOLYGON', 2 );"
+msgstr ""
+"CREATE TABLE parks (\n"
+"  park_id    INTEGER,\n"
+"  park_name  VARCHAR,\n"
+"  park_date  DATE,\n"
+"  park_type  VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn('parks', 'park_geom', 128, 'MULTIPOLYGON', 2 );"
+
+#. Tag: para
+#: using_postgis_dataman.xml:658
+#, no-c-format
+msgid ""
+"Here is another example, using the generic \"geometry\" type and the "
+"undefined SRID value of 0:"
+msgstr ""
+"Aqui tienes otro ejemplo, utilizando el tipo genérico \"geometry\" y el "
+"valor indefinido de SRID 0:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:661
+#, no-c-format
+msgid ""
+"CREATE TABLE roads (\n"
+"  road_id INTEGER,\n"
+"  road_name VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn( 'roads', 'roads_geom', 0, 'GEOMETRY', 3 );"
+msgstr ""
+"CREATE TABLE roads (\n"
+"  road_id INTEGER,\n"
+"  road_name VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn( 'roads', 'roads_geom', 0, 'GEOMETRY', 3 );"
+
+#. Tag: title
+#: using_postgis_dataman.xml:665
+#, no-c-format
+msgid "Manually Registering Geometry Columns in geometry_columns"
+msgstr ""
+"Registrando la columna de geometrias de forma manual en la tabla "
+"geometry_columns"
+
+#. Tag: para
+#: using_postgis_dataman.xml:666
+#, fuzzy, no-c-format
+msgid ""
+"The AddGeometryColumn() approach creates a geometry column and also "
+"registers the new column in the geometry_columns table. If your software "
+"utilizes geometry_columns, then any geometry columns you need to query by "
+"must be registered in this view. Starting with PostGIS 2.0, geometry_columns "
+"is no longer editable and all geometry columns are autoregistered."
+msgstr ""
+"El enfoque de AddGeometryColumn() crea una columna de geometria y además "
+"registra la nueva columna en la tabla geometry_columns. Si tu software "
+"utiliza geometry_columns, entonces cualquier columna de geometrías que "
+"necesites interrogar, debe estar registrada en esta vista. Desde la version "
+"PostGIS 2.0, geometry_columns no se puede editar y todas las columnas "
+"geométricas se registran de forma automática."
+
+#. Tag: para
+#: using_postgis_dataman.xml:670
+#, no-c-format
+msgid ""
+"However they may be registered as a generic geometry column if the column "
+"was not defined as a specific type during creation."
+msgstr ""
+"Sin embargo, pueden ser registradas como una columna de geometría genérica "
+"si la columna no se define como un tipo específico durante la creación."
+
+#. Tag: para
+#: using_postgis_dataman.xml:672
+#, no-c-format
+msgid ""
+"Two of the cases where this may happen, but you can't use AddGeometryColumn, "
+"is in the case of SQL Views and bulk inserts. For these cases, you can "
+"correct the registration in the geometry_columns table by constraining the "
+"column. Note in PostGIS 2.0+ if your column is typmod based, the creation "
+"process would register it correctly, so no need to do anything."
+msgstr ""
+"Dos de los casos en lo que esto ocurre, pero no puedes utilizar "
+"AddGeometryColumn, es el caso de vistas SQL e inserciones masivas. Para esto "
+"casos, puedes corregir el registro en la tabla geometry_columns creando una "
+"restricción en la columna. A saber que en PostGIS 2.0+, si tu columna esta "
+"basada en typmod, el proceso de creación lo registrará correctamente, así "
+"que no necesitas hacer nada."
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:677
+#, no-c-format
+msgid ""
+"--Lets say you have a view created like this\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395) As geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- For it to register correctly in PostGIS 2.0+ \n"
+"-- You need to cast the geometry\n"
+"--\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Geometry, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- If you know the geometry type for sure is a 2D POLYGON then you could do\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Polygon, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;"
+msgstr ""
+"--Imaginemos que tienes una vista creada de la siguiente manera\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395) As geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- Para registrarla de forma correcta en  PostGIS 2.0+ \n"
+"-- Necesitas hacer una conversión de tipos cast\n"
+"--\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Geometry, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- Si sabes que el tipo de geometria de forma segura es 2D POLYGON entonces "
+"puedes hacer\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Polygon, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:678
+#, no-c-format
+msgid ""
+"--Lets say you created a derivative table by doing a bulk insert\n"
+"SELECT poi.gid, poi.geom, citybounds.city_name\n"
+"INTO myschema.my_special_pois\n"
+"FROM poi INNER JOIN citybounds ON ST_Intersects(citybounds.geom, poi.geom);\n"
+"\n"
+"--Create 2d index on new table\n"
+"CREATE INDEX idx_myschema_myspecialpois_geom_gist\n"
+"  ON myschema.my_special_pois USING gist(geom);\n"
+"  \n"
+"-- If your points are 3D points or 3M points, \n"
+"-- then you might want to create an nd index instead of a 2d index\n"
+"-- like so\n"
+"CREATE INDEX my_special_pois_geom_gist_nd \n"
+"        ON my_special_pois USING gist(geom gist_geometry_ops_nd);\n"
+"\n"
+"--To manually register this new table's geometry column in geometry_columns\n"
+"-- Note that this approach will work for both PostGIS 2.0+ and PostGIS 1.4+\n"
+"-- For PostGIS 2.0 it will also change the underlying structure of the table "
+"to\n"
+"-- to make the column typmod based.\n"
+"-- For PostGIS prior to 2.0, this technique can also be used to register "
+"views\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass); \n"
+"\n"
+"--If you are using PostGIS 2.0 and for whatever reason, you\n"
+"-- you need the old constraint based definition behavior \n"
+"-- (such as case of inherited tables where all children do not have the same "
+"type and srid)\n"
+"-- set new optional  use_typmod argument to false\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass, "
+"false);"
+msgstr ""
+"--Supongamos que has creado una tabla derivada al hacer una inserción "
+"masiva\n"
+"SELECT poi.gid, poi.geom, citybounds.city_name\n"
+"INTO myschema.my_special_pois\n"
+"FROM poi INNER JOIN citybounds ON ST_Intersects(citybounds.geom, poi.geom);\n"
+"\n"
+"--Creamos un indice 2d en la tabla nueva\n"
+"CREATE INDEX idx_myschema_myspecialpois_geom_gist\n"
+"  ON myschema.my_special_pois USING gist(geom);\n"
+"  \n"
+"-- Si tus puntos son 3D o 3M, \n"
+"-- Entonces querrás crear un indice nd en vez de un indice 2d\n"
+"-- de la siguiente manera\n"
+"CREATE INDEX my_special_pois_geom_gist_nd \n"
+"        ON my_special_pois USING gist(geom gist_geometry_ops_nd);\n"
+"\n"
+"--Para registrar de forma manual la columna geometrica de la nueva tabla en "
+"tu tabla geometry_columns\n"
+"-- Fijate que este método funcionara en ambas versiones PostGIS 2.0+ y "
+"PostGIS 1.4+\n"
+"-- Para PostGIS 2.0 también cambiará  la estructura subyacente de la tabla "
+"para\n"
+"-- hacer la columna basada en typmod.\n"
+"-- Para PostGIS anterior a 2.0, también se puede utilizar para registrar "
+"vistas\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass); \n"
+"\n"
+"--Si esta utilizando PostGIS 2.0 y por cualquier razón,\n"
+"-- necesitas la definición basada en las antiguas restricciones \n"
+"-- (como el caso de tablas heredadas donde todas las tablas dependientes no "
+"tienen el mismo tipo y srid)\n"
+"-- selecciona el nuevo argumento opcional  use_typmod como false\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass, "
+"false);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:680
+#, no-c-format
+msgid ""
+"Although the old-constraint based method is still supported, a constraint-"
+"based geomentry column used directly in a view, will not register correctly "
+"in geometry_columns, as will a typmod one. In this example we define a "
+"column using typmod and another using constraints."
+msgstr ""
+"Aunque el método antiguo basado en restricciones aún se puede utilizar, una "
+"columna geométrica basada en el uso de restricciones utilizada directamente "
+"en la vista, no se registrará correctamente en geometry_columns, al igual "
+"que una typmod. En este ejemplo se define una columna utilizando typmod y "
+"otro mediante restricciones."
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:683
+#, no-c-format
+msgid ""
+"CREATE TABLE pois_ny(gid SERIAL PRIMARY KEY\n"
+"   , poi_name text, cat varchar(20)\n"
+"   , geom geometry(POINT,4326) );\n"
+"SELECT AddGeometryColumn('pois_ny', 'geom_2160', 2160, 'POINT', 2, false);"
+msgstr ""
+"CREATE TABLE pois_ny(gid SERIAL PRIMARY KEY\n"
+"   , poi_name text, cat varchar(20)\n"
+"   , geom geometry(POINT,4326) );\n"
+"SELECT AddGeometryColumn('pois_ny', 'geom_2160', 2160, 'POINT', 2, false);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:684
+#, no-c-format
+msgid "If we run in psql"
+msgstr "Si ejecutamos en psql"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:685
+#, no-c-format
+msgid "\\d pois_ny;"
+msgstr "\\d pois_ny;"
+
+#. Tag: para
+#: using_postgis_dataman.xml:686
+#, no-c-format
+msgid ""
+"We observe they are defined differently -- one is typmod, one is constraint"
+msgstr ""
+"Vemos que están definidas de forma diferente -- una es typmod, la otra por "
+"restricciones."
+
+#. Tag: screen
+#: using_postgis_dataman.xml:687
+#, no-c-format
+msgid ""
+"Table \"public.pois_ny\"\n"
+"  Column   |         Type          |                       Modifiers\n"
+"\n"
+"-----------+-----------------------"
+"+------------------------------------------------------\n"
+" gid       | integer               | not null default "
+"nextval('pois_ny_gid_seq'::regclass)\n"
+" poi_name  | text                  |\n"
+" cat       | character varying(20) |\n"
+" geom      | geometry(Point,4326)  |\n"
+" geom_2160 | geometry              |\n"
+"Indexes:\n"
+"    \"pois_ny_pkey\" PRIMARY KEY, btree (gid)\n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_2160\" CHECK (st_ndims(geom_2160) = 2)\n"
+"    \"enforce_geotype_geom_2160\" CHECK (geometrytype(geom_2160) = 'POINT'::"
+"text \n"
+"        OR geom_2160 IS NULL)\n"
+"    \"enforce_srid_geom_2160\" CHECK (st_srid(geom_2160) = 2160)"
+msgstr ""
+"Table \"public.pois_ny\"\n"
+"  Column   |         Type          |                       Modifiers\n"
+"\n"
+"-----------+-----------------------"
+"+------------------------------------------------------\n"
+" gid       | integer               | not null default "
+"nextval('pois_ny_gid_seq'::regclass)\n"
+" poi_name  | text                  |\n"
+" cat       | character varying(20) |\n"
+" geom      | geometry(Point,4326)  |\n"
+" geom_2160 | geometry              |\n"
+"Indexes:\n"
+"    \"pois_ny_pkey\" PRIMARY KEY, btree (gid)\n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_2160\" CHECK (st_ndims(geom_2160) = 2)\n"
+"    \"enforce_geotype_geom_2160\" CHECK (geometrytype(geom_2160) = 'POINT'::"
+"text \n"
+"        OR geom_2160 IS NULL)\n"
+"    \"enforce_srid_geom_2160\" CHECK (st_srid(geom_2160) = 2160)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:688
+#, no-c-format
+msgid "In geometry_columns, they both register correctly"
+msgstr "En geometry_columns, ambas se registran de forma correcta"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:689
+#, no-c-format
+msgid ""
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'pois_ny';"
+msgstr ""
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'pois_ny';"
+
+#. Tag: screen
+#: using_postgis_dataman.xml:690
+#, no-c-format
+msgid ""
+"f_table_name | f_geometry_column | srid | type\n"
+"-------------+-------------------+------+-------\n"
+"pois_ny      | geom              | 4326 | POINT\n"
+"pois_ny      | geom_2160         | 2160 | POINT"
+msgstr ""
+"f_table_name | f_geometry_column | srid | type\n"
+"-------------+-------------------+------+-------\n"
+"pois_ny      | geom              | 4326 | POINT\n"
+"pois_ny      | geom_2160         | 2160 | POINT"
+
+#. Tag: para
+#: using_postgis_dataman.xml:691
+#, no-c-format
+msgid "However -- if we were to create a view like this"
+msgstr "De todas formas -- si queremos crear una vista de la siguiente forma"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:692
+#, no-c-format
+msgid ""
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT * \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"  \n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+msgstr ""
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT * \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"  \n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+
+#. Tag: para
+#: using_postgis_dataman.xml:693
+#, no-c-format
+msgid ""
+"The typmod based geom view column registers correctly, but the constraint "
+"based one does not."
+msgstr ""
+"La columna de la vista basada en typmos se registra de forma correcta, pero "
+"la basada en restricciones no."
+
+#. Tag: screen
+#: using_postgis_dataman.xml:695
+#, no-c-format
+msgid ""
+"f_table_name   | f_geometry_column | srid |   type\n"
+"------------------+-------------------+------+----------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         |    0 | GEOMETRY"
+msgstr ""
+"f_table_name   | f_geometry_column | srid |   type\n"
+"------------------+-------------------+------+----------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         |    0 | GEOMETRY"
+
+#. Tag: para
+#: using_postgis_dataman.xml:697
+#, no-c-format
+msgid ""
+"This may change in future versions of PostGIS, but for now To force the "
+"constraint based view column to register correctly, we need to do this:"
+msgstr ""
+"Esto puede cambiar en versiones futuras de PostGIS, pero por el momento, "
+"para forzar a las vistas basadas en restricciones a registrarse de forma "
+"correcta, debemos hacer lo siguiente:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:699
+#, no-c-format
+msgid ""
+"DROP VIEW vw_pois_ny_parks;\n"
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT gid, poi_name, cat\n"
+"  , geom\n"
+"  , geom_2160::geometry(POINT,2160) As geom_2160 \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+msgstr ""
+"DROP VIEW vw_pois_ny_parks;\n"
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT gid, poi_name, cat\n"
+"  , geom\n"
+"  , geom_2160::geometry(POINT,2160) As geom_2160 \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+
+#. Tag: screen
+#: using_postgis_dataman.xml:700
+#, no-c-format
+msgid ""
+"f_table_name   | f_geometry_column | srid | type\n"
+"------------------+-------------------+------+-------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         | 2160 | POINT"
+msgstr ""
+"f_table_name   | f_geometry_column | srid | type\n"
+"------------------+-------------------+------+-------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         | 2160 | POINT"
+
+#. Tag: title
+#: using_postgis_dataman.xml:704
+#, no-c-format
+msgid "Ensuring OpenGIS compliancy of geometries"
+msgstr "Asegurando la compatibilidad de geometrias con OpenGIS"
+
+#. Tag: para
+#: using_postgis_dataman.xml:706
+#, no-c-format
+msgid ""
+"PostGIS is compliant with the Open Geospatial Consortium’s (OGC) OpenGIS "
+"Specifications. As such, many PostGIS methods require, or more accurately, "
+"assume that geometries that are operated on are both simple and valid. For "
+"example, it does not make sense to calculate the area of a polygon that has "
+"a hole defined outside of the polygon, or to construct a polygon from a non-"
+"simple boundary line."
+msgstr ""
+"PostGIS es compatible con la especificación Open Geospatial Consortium’s "
+"(OGC) OpenGIS Specifications. Como tal, muchos métodos PostGIS requieren, o "
+"más exactamente, asume que las geometrías con las que se opera son a la vez "
+"simples y válidas. Por ejemplo, no tiene sentido calcular el área de un "
+"polígono que tiene un agujero definido fuera del polígono, o para la "
+"construcción de un polígono a partir de una línea de límite no simple."
+
+#. Tag: para
+#: using_postgis_dataman.xml:713
+#, no-c-format
+msgid ""
+"According to the OGC Specifications, a <emphasis>simple</emphasis> geometry "
+"is one that has no anomalous geometric points, such as self intersection or "
+"self tangency and primarily refers to 0 or 1-dimensional geometries (i.e. "
+"<varname>[MULTI]POINT, [MULTI]LINESTRING</varname>). Geometry validity, on "
+"the other hand, primarily refers to 2-dimensional geometries (i.e. "
+"<varname>[MULTI]POLYGON)</varname> and defines the set of assertions that "
+"characterizes a valid polygon. The description of each geometric class "
+"includes specific conditions that further detail geometric simplicity and "
+"validity."
+msgstr ""
+"Según las especificaciones OGC, una geometría <emphasis>simple</emphasis>, "
+"es aquella que no tiene puntos geométricos anómalos, con autointersección o "
+"auto tangencia y principalmente se refiere a geometrías de 0 o 1 dimensiones "
+"(i.e. <varname>[MULTI]POINT, [MULTI]LINESTRING</varname>). La validez de "
+"geometrias, por otro lado, se refiere a geometrias de dimension 2 (i.e. "
+"<varname>[MULTI]POLYGON)</varname> y define el conjunto afirmaciones que "
+"caracterizan un polígono valido. La descripción de cada clase de geometría "
+"incluye condiciones especificas que simplemente detalles de simplicidad y "
+"validez geométricas."
+
+#. Tag: para
+#: using_postgis_dataman.xml:723
+#, no-c-format
+msgid ""
+"A <varname>POINT</varname> is inheritably <emphasis>simple</emphasis> as a 0-"
+"dimensional geometry object."
+msgstr ""
+"Un <varname>POINT</varname> es hereditariamente <emphasis>simple</emphasis> "
+"como un objeto de geometría 0-dimensional."
+
+#. Tag: para
+#: using_postgis_dataman.xml:726
+#, no-c-format
+msgid ""
+"<varname>MULTIPOINT</varname>s are <emphasis>simple</emphasis> if no two "
+"coordinates (<varname>POINT</varname>s) are equal (have identical coordinate "
+"values)."
+msgstr ""
+"<varname>MULTIPOINT</varname>s son simples <emphasis>simple</emphasis> si "
+"dos coordenadas (<varname>POINT</varname>s) no son iguales (tienen valores "
+"de coordenadas identicos)."
+
+#. Tag: para
+#: using_postgis_dataman.xml:730
+#, no-c-format
+msgid ""
+"A <varname>LINESTRING</varname> is <emphasis>simple</emphasis> if it does "
+"not pass through the same <varname>POINT</varname> twice (except for the "
+"endpoints, in which case it is referred to as a linear ring and additionally "
+"considered closed)."
+msgstr ""
+"Una <varname>LINESTRING</varname> es <emphasis>simple</emphasis> si no pasa "
+"dos veces por el mismo <varname>POINT</varname> (excepto para puntos "
+"finales, en cuyo caso nos referimos como linear ring y considerado como "
+"cerrado)."
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:745
+#, no-c-format
+msgid "<emphasis>(a)</emphasis>"
+msgstr "<emphasis>(a)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:755
+#, no-c-format
+msgid "<emphasis>(b)</emphasis>"
+msgstr "<emphasis>(b)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:767
+#, no-c-format
+msgid "<emphasis>(c)</emphasis>"
+msgstr "<emphasis>(c)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:777
+#, no-c-format
+msgid "<emphasis>(d)</emphasis>"
+msgstr "<emphasis>(d)</emphasis>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:787
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(a)</emphasis> and <emphasis role=\"bold\">(c)</"
+"emphasis> are simple <varname>LINESTRING</varname>s, <emphasis role=\"bold"
+"\">(b)</emphasis> and <emphasis role=\"bold\">(d)</emphasis> are not."
+msgstr ""
+"<emphasis role=\"bold\">(a)</emphasis> y <emphasis role=\"bold\">(c)</"
+"emphasis>son <varname>LINESTRING</varname>s simples, <emphasis role=\"bold"
+"\">(b)</emphasis> y <emphasis role=\"bold\">(d)</emphasis> no lo son."
+
+#. Tag: para
+#: using_postgis_dataman.xml:796
+#, no-c-format
+msgid ""
+"A <varname>MULTILINESTRING</varname> is <emphasis>simple</emphasis> only if "
+"all of its elements are simple and the only intersection between any two "
+"elements occurs at <varname>POINT</varname>s that are on the boundaries of "
+"both elements."
+msgstr ""
+"Una <varname>MULTILINESTRING</varname> es <emphasis>simple</emphasis> solo "
+"si todos sus elementos son simples y las únicas intersecciones entre "
+"cualquiera de sus elementos, se produce en <varname>POINT</varname>s que "
+"están en los limites de ambos elementos."
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:811
+#, no-c-format
+msgid "<emphasis>(e)</emphasis>"
+msgstr "<emphasis>(e)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:821
+#, no-c-format
+msgid "<emphasis>(f)</emphasis>"
+msgstr "<emphasis>(f)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:831
+#, no-c-format
+msgid "<emphasis>(g)</emphasis>"
+msgstr "<emphasis>(g)</emphasis>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:841
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(e)</emphasis> and <emphasis role=\"bold\">(f)</"
+"emphasis> are simple <varname>MULTILINESTRING</varname>s, <emphasis role="
+"\"bold\">(g)</emphasis> is not."
+msgstr ""
+"<emphasis role=\"bold\">(e)</emphasis> y <emphasis role=\"bold\">(f)</"
+"emphasis> son <varname>MULTILINESTRING</varname>s simples, <emphasis role="
+"\"bold\">(g)</emphasis> no lo es."
+
+#. Tag: para
+#: using_postgis_dataman.xml:850
+#, no-c-format
+msgid ""
+"By definition, a <varname>POLYGON</varname> is always <emphasis>simple</"
+"emphasis>. It is <emphasis>valid</emphasis> if no two rings in the boundary "
+"(made up of an exterior ring and interior rings) cross. The boundary of a "
+"<varname>POLYGON</varname> may intersect at a <varname>POINT</varname> but "
+"only as a tangent (i.e. not on a line). A <varname>POLYGON</varname> may not "
+"have cut lines or spikes and the interior rings must be contained entirely "
+"within the exterior ring."
+msgstr ""
+"Por definición, un <varname>POLYGON</varname> siempre será <emphasis>simple</"
+"emphasis>. Es <emphasis>valido</emphasis> si dos anillos del borde (formado "
+"por un anillo exterior y los anillos interiores) no se cruzan. El borde de "
+"un <varname>POLYGON</varname> debe intersectarse en un <varname>POINT</"
+"varname> pero solo como tangente (i.e. no en una linea). Un "
+"<varname>POLYGON</varname>no debe tener lineas de corte  o picos y los "
+"anillos interiores deben estar contenidos por entero por el anillo exterior."
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:868
+#, no-c-format
+msgid "<emphasis>(h)</emphasis>"
+msgstr "<emphasis>(h)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:878
+#, no-c-format
+msgid "<emphasis>(i)</emphasis>"
+msgstr "<emphasis>(i)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:888
+#, no-c-format
+msgid "<emphasis>(j)</emphasis>"
+msgstr "<emphasis>(j)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:900
+#, no-c-format
+msgid "<emphasis>(k)</emphasis>"
+msgstr "<emphasis>(k)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:910
+#, no-c-format
+msgid "<emphasis>(l)</emphasis>"
+msgstr "<emphasis>(l)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:920
+#, no-c-format
+msgid "<emphasis>(m)</emphasis>"
+msgstr "<emphasis>(m)</emphasis>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:929
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(h)</emphasis> and <emphasis role=\"bold\">(i)</"
+"emphasis> are valid <varname>POLYGON</varname>s, <emphasis role=\"bold\">(j-"
+"m)</emphasis> cannot be represented as single <varname>POLYGON</varname>s, "
+"but <emphasis role=\"bold\">(j)</emphasis> and <emphasis role=\"bold\">(m)</"
+"emphasis> could be represented as a valid <varname>MULTIPOLYGON</varname>."
+msgstr ""
+"<emphasis role=\"bold\">(h)</emphasis> y <emphasis role=\"bold\">(i)</"
+"emphasis> son <varname>POLYGON</varname>s validos, <emphasis role=\"bold"
+"\">(j-m)</emphasis> no se pueden representar como <varname>POLYGON</"
+"varname>s simples, pero <emphasis role=\"bold\">(j)</emphasis> y <emphasis "
+"role=\"bold\">(m)</emphasis> pueden representarse como un "
+"<varname>MULTIPOLYGON</varname> valido."
+
+#. Tag: para
+#: using_postgis_dataman.xml:941
+#, no-c-format
+msgid ""
+"A <varname>MULTIPOLYGON</varname> is <emphasis>valid</emphasis> if and only "
+"if all of its elements are valid and the interiors of no two elements "
+"intersect. The boundaries of any two elements may touch, but only at a "
+"finite number of <varname>POINT</varname>s."
+msgstr ""
+"Un <varname>MULTIPOLYGON</varname> es <emphasis>válido</emphasis> si y sólo "
+"si todos sus elementos son válidos y no se producen intersecciones entre los "
+"interiores de ningún par de elementos. Los límietes de cualquiera de los dos "
+"elementos pueden tocarse, pero sólo en un número finito de <varname>POINT</"
+"varname>s."
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:956
+#, no-c-format
+msgid "<emphasis>(n)</emphasis>"
+msgstr "<emphasis>(n)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:966
+#, no-c-format
+msgid "<emphasis>(o)</emphasis>"
+msgstr "<emphasis>(o)</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:976
+#, no-c-format
+msgid "<emphasis>(p)</emphasis>"
+msgstr "<emphasis>(p)</emphasis>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:985
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(n)</emphasis> and <emphasis role=\"bold\">(o)</"
+"emphasis> are not valid <varname>MULTIPOLYGON</varname>s. <emphasis role="
+"\"bold\">(p)</emphasis>, however, is valid."
+msgstr ""
+"<emphasis role=\"bold\">(n)</emphasis> y <emphasis role=\"bold\">(o)</"
+"emphasis> no son  <varname>MULTIPOLYGON</varname>s validos. <emphasis role="
+"\"bold\">(p)</emphasis>, sin embargo, es valido."
+
+#. Tag: para
+#: using_postgis_dataman.xml:994
+#, no-c-format
+msgid ""
+"Most of the functions implemented by the GEOS library rely on the assumption "
+"that your geometries are valid as specified by the OpenGIS Simple Feature "
+"Specification. To check simplicity or validity of geometries you can use the "
+"<link linkend=\"ST_IsSimple\">ST_IsSimple()</link> and <link linkend="
+"\"ST_IsValid\">ST_IsValid()</link>"
+msgstr ""
+"La mayoría de las funciones implementadas por la biblioteca GEOS dependen de "
+"la asunción de que las geometrías son válidad según lo especificado en la "
+"OpenGIS Simple Feature Specification. Para comprobar la simplicidad o "
+"validez de geometrías se puede usar <link linkend=\"ST_IsSimple"
+"\">ST_IsSimple()</link> and <link linkend=\"ST_IsValid\">ST_IsValid()</link>"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1000
+#, no-c-format
+msgid ""
+"-- Typically, it doesn't make sense to check\n"
+"-- for validity on linear features since it will always return TRUE.\n"
+"-- But in this example, PostGIS extends the definition of the OGC IsValid\n"
+"-- by returning false if a LineString has less than 2 *distinct* vertices.\n"
+"gisdb=# SELECT\n"
+"   ST_IsValid('LINESTRING(0 0, 1 1)'),\n"
+"   ST_IsValid('LINESTRING(0 0, 0 0, 0 0)');\n"
+"\n"
+" st_isvalid | st_isvalid\n"
+"------------+-----------\n"
+"      t     |     f"
+msgstr ""
+"--Normalmente, no tiene sentido hacer la comprobación\n"
+"-- de validez o elementos lineales, ya que siempre devolverá TRUE.\n"
+"-- Pero en este ejemplo, PostGIS extiende la deficinción del IsValid de OGC\n"
+"--devolviendo FALSE si una LineString tiene menos de 2 vértices "
+"*distintos*.\n"
+"gisdb=# SELECT\n"
+"ST_IsValid('LINESTRING(0 0, 1 1)'),\n"
+"ST_IsValid('LINESTRING(0 0, 0 0, 0 0)');\n"
+"\n"
+"st_isvalid | st_isvalid\n"
+"------------+-----------\n"
+"t | f"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1002
+#, no-c-format
+msgid ""
+"By default, PostGIS does not apply this validity check on geometry input, "
+"because testing for validity needs lots of CPU time for complex geometries, "
+"especially polygons. If you do not trust your data sources, you can manually "
+"enforce such a check to your tables by adding a check constraint:"
+msgstr ""
+"Por defecto, PostGIS no comprueba la validez en las geometrías entrantes, "
+"porque los test de validez necesitan gran cantidad de tiempo de CPU para "
+"geometrías complejas, en especial polígonos. Si no se está seguro de la "
+"fuente de datos se puede forzar manualmente a realizar la comprobación de "
+"las tablas añadiendo una restricción de comprobación: "
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1008
+#, no-c-format
+msgid ""
+"ALTER TABLE mytable\n"
+"  ADD CONSTRAINT geometry_valid_check\n"
+"        CHECK (ST_IsValid(the_geom));"
+msgstr ""
+"ALTER TABLE mytable\n"
+"ADD CONSTRAINT geometry_valid_check\n"
+"CHECK (ST_IsValid(the_geom));"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1010
+#, no-c-format
+msgid ""
+"If you encounter any strange error messages such as \"GEOS Intersection() "
+"threw an error!\" or \"JTS Intersection() threw an error!\" when calling "
+"PostGIS functions with valid input geometries, you likely found an error in "
+"either PostGIS or one of the libraries it uses, and you should contact the "
+"PostGIS developers. The same is true if a PostGIS function returns an "
+"invalid geometry for valid input."
+msgstr ""
+"Si eincuentras algún mensaje de error extraño como  \"GEOS Intersection() "
+"threw an error!\" o \"JTS Intersection() threw an error!\" al llamar a las "
+"funciones de  PostGIS con geometrías de entrada válidas, seguramente se deba "
+"a algún error bien en  PostGIS o en una de las bibliotecas que usa, y "
+"deberías contactar con el equipo de desarrollo de PostGIS. Lo mismo es "
+"aplicable si una función de PostGIS devuelve una geometría inválida a partir "
+"de una entrada válida. "
+
+#. Tag: para
+#: using_postgis_dataman.xml:1018
+#, no-c-format
+msgid ""
+"Strictly compliant OGC geometries cannot have Z or M values. The <link "
+"linkend=\"ST_IsValid\">ST_IsValid()</link> function won't consider higher "
+"dimensioned geometries invalid! Invocations of <link linkend="
+"\"AddGeometryColumn\">AddGeometryColumn()</link> will add a constraint "
+"checking geometry dimensions, so it is enough to specify 2 there."
+msgstr ""
+"Geometrías estrictamente compatibles con OGC no pueden tener valores Z o M."
+"¡La función <link linkend=\"ST_IsValid\">ST_IsValid()</link> no considerará "
+"invalidas las geometrías con mas dimensiones! Llamadas a <link linkend="
+"\"AddGeometryColumn\">AddGeometryColumn()</link> añadirá restricciones al "
+"comprobar las dimensiones de las geometrías, así que es suficiente con "
+"especificar 2."
+
+#. Tag: title
+#: using_postgis_dataman.xml:1028
+#, no-c-format
+msgid "Dimensionally Extended 9 Intersection Model (DE-9IM)"
+msgstr "Modelo de intersección 9 dimensionalmente extendido(DE-9IM)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1030
+#, no-c-format
+msgid ""
+"It is sometimes the case that the typical spatial predicates (<xref linkend="
+"\"ST_Contains\"/>, <xref linkend=\"ST_Crosses\"/>, <xref linkend="
+"\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>, ...) are insufficient "
+"in and of themselves to adequately provide that desired spatial filter."
+msgstr ""
+"A veces se da el caso que los predicados espaciales típicos (<xref linkend="
+"\"ST_Contains\"/>, <xref linkend=\"ST_Crosses\"/>, <xref linkend="
+"\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>, ...) son insuficientes "
+"en si mismos para proveer el filtro espacial deseado."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1042
+#, no-c-format
+msgid ""
+"For example, consider a linear dataset representing a road network. It may "
+"be the task of a GIS analyst to identify all road segments that cross each "
+"other, not at a point, but on a line, perhaps invalidating some business "
+"rule. In this case, <xref linkend=\"ST_Crosses\"/> does not adequately "
+"provide the necessary spatial filter since, for linear features, it returns "
+"<varname>true</varname> only where they cross at a point."
+msgstr ""
+"Por ejemplo, considera un conjunto de datos lineales representando una red "
+"de transportes. Es tarea del analista SIG identificar todos los segmentos de "
+"carreteras que se intersectan con otros, no en un punto, pero en una linea, "
+"quizás invalidando algunas reglas. En este caso,  <xref linkend=\"ST_Crosses"
+"\"/> no nos proporcionara el filtro espacial adecuado ya que , para "
+"elementos lineales, devolverá <varname>true</varname> solo en el caso de "
+"intersección en un punto."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1049
+#, no-c-format
+msgid ""
+"One two-step solution might be to first perform the actual intersection "
+"(<xref linkend=\"ST_Intersection\"/>) of pairs of road segments that "
+"spatially intersect (<xref linkend=\"ST_Intersects\"/>), and then compare "
+"the intersection's <xref linkend=\"ST_GeometryType\"/> with "
+"'<varname>LINESTRING</varname>' (properly dealing with cases that return "
+"<varname>GEOMETRYCOLLECTION</varname>s of <varname>[MULTI]POINT</varname>s, "
+"<varname>[MULTI]LINESTRING</varname>s, etc.)."
+msgstr ""
+"Una solución en dos pasos podría ser, primero hacer una consulta de las "
+"intersecciones (<xref linkend=\"ST_Intersection\"/>) de los pares de vías de "
+"comunicación que se intersectan espacialmente (<xref linkend=\"ST_Intersects"
+"\"/>), y entonces comparar las intersecciones <xref linkend=\"ST_GeometryType"
+"\"/> con '<varname>LINESTRING</varname>' (gestionando correctamente los "
+"casos que devuelvan <varname>GEOMETRYCOLLECTION</varname> de "
+"<varname>[MULTI]POINT</varname>s, <varname>[MULTI]LINESTRING</varname>s, "
+"etc.)."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1057
+#, no-c-format
+msgid "A more elegant / faster solution may indeed be desirable."
+msgstr "Una solución mas elegante/rápida  de hecho puede ser deseable."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1071
+#, no-c-format
+msgid ""
+"A second [theoretical] example may be that of a GIS analyst trying to locate "
+"all wharfs or docks that intersect a lake's boundary on a line and where "
+"only one end of the wharf is up on shore. In other words, where a wharf is "
+"within, but not completely within a lake, intersecting the boundary of a "
+"lake on a line, and where the wharf's endpoints are both completely within "
+"and on the boundary of the lake. The analyst may need to use a combination "
+"of spatial predicates to isolate the sought after features:"
+msgstr ""
+"Un [teórico] segundo ejemplo puede ser el de un analista SIG intentando "
+"localizar todos los muelles que intersectan los limites de un lago en una "
+"linea y donde solo un extremo del muelle este en la orilla. En otras "
+"palabras, cuando el muelle este contenido , pero no completamente en el "
+"lago, intersectando el borde del lago en una linea, y donde los puntos "
+"finales del muelle estén completamente en el borde del lago. El analista "
+"necesitará utilizar una combinación de predicados espaciales para aislar el "
+"problema:"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1082
+#, no-c-format
+msgid "(lake, wharf) = TRUE"
+msgstr "(lake, wharf) = TRUE"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1086
+#, no-c-format
+msgid "(lake, wharf) = FALSE"
+msgstr "(lake, wharf) = FALSE"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1090
+#, no-c-format
+msgid "(<xref linkend=\"ST_Intersection\"/>(wharf, lake)) = 'LINESTRING'"
+msgstr "(<xref linkend=\"ST_Intersection\"/>(wharf, lake)) = 'LINESTRING'"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1095
+#, no-c-format
+msgid ""
+"(<xref linkend=\"ST_Multi\"/>(<xref linkend=\"ST_Intersection\"/>(<xref "
+"linkend=\"ST_Boundary\"/>(wharf), <xref linkend=\"ST_Boundary\"/>(lake)))) = "
+"1"
+msgstr ""
+"(<xref linkend=\"ST_Multi\"/>(<xref linkend=\"ST_Intersection\"/>(<xref "
+"linkend=\"ST_Boundary\"/>(wharf), <xref linkend=\"ST_Boundary\"/>(lake)))) = "
+"1"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1098
+#, no-c-format
+msgid "... (needless to say, this could get quite complicated)"
+msgstr "... (ni que decir tiene que esto podría llegar a ser muy complicado)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1107
+#, no-c-format
+msgid ""
+"So enters the Dimensionally Extended 9 Intersection Model, or DE-9IM for "
+"short."
+msgstr ""
+"Así que introducimos el Modelo de Intersección 9 Dimensionalmente Extendido, "
+"o DE-9IM para abreviar."
+
+#. Tag: title
+#: using_postgis_dataman.xml:1111
+#, no-c-format
+msgid "Theory"
+msgstr "Teoria"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1113
+#, no-c-format
+msgid ""
+"According to the <ulink url=\"http://www.opengeospatial.org/standards/sfs"
+"\">OpenGIS Simple Features Implementation Specification for SQL</ulink>, "
+"\"the basic approach to comparing two geometries is to make pair-wise tests "
+"of the intersections between the Interiors, Boundaries and Exteriors of the "
+"two geometries and to classify the relationship between the two geometries "
+"based on the entries in the resulting 'intersection' matrix.\""
+msgstr ""
+"Según la especificación <ulink url=\"http://www.opengeospatial.org/standards/"
+"sfs\">OpenGIS Simple Features Implementation Specification for SQL</ulink>, "
+"\"El enfoque básico para comparar dos geometrías es hacer un test por pares "
+"de la intersección entre los interiores, bordes y exteriores de las dos "
+"geometrías y clasificar las relaciones entre las dos geometrías basandose en "
+"las entradas de la 'matriz de intersección' resultante.\""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1124
+#, no-c-format
+msgid "<glossterm>Boundary</glossterm>"
+msgstr "<glossterm>Borde</glossterm>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1127
+#, no-c-format
+msgid ""
+"The boundary of a geometry is the set of geometries of the next lower "
+"dimension. For <varname>POINT</varname>s, which have a dimension of 0, the "
+"boundary is the empty set. The boundary of a <varname>LINESTRING</varname> "
+"are the two endpoints. For <varname>POLYGON</varname>s, the boundary is the "
+"linework that make up the exterior and interior rings."
+msgstr ""
+"El borde de una geometría es el conjunto de geometrias de la dimension menor "
+"siguiente. Para <varname>POINT</varname>s, que tienen dimension 0, el borde "
+"es un conjunto vacío. El borde para un <varname>LINESTRING</varname> son los "
+"dos puntos de los extremos. Para <varname>POLYGON</varname>s, el borde son "
+"las lineas que delimitan los anillos exteriores e interiores."
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1138
+#, no-c-format
+msgid "<glossterm>Interior</glossterm>"
+msgstr "<glossterm>Interior</glossterm>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1141
+#, no-c-format
+msgid ""
+"The interior of a geometry are those points of a geometry that are left when "
+"the boundary is removed. For <varname>POINT</varname>s, the interior is the "
+"<varname>POINT</varname> itself. The interior of a <varname>LINESTRING</"
+"varname> are the set of real points between the endpoints. For "
+"<varname>POLYGON</varname>s, the interior is the areal surface inside the "
+"polygon."
+msgstr ""
+"El interior de una geometría son los puntos de la geometría que quedan "
+"cuando el borde es eliminado. Para <varname>POINT</varname>s, el interior es "
+"el propio <varname>POINT</varname>. El interior de una <varname>LINESTRING</"
+"varname> es el conjunto de puntos reales entre los puntos de los extremos. "
+"Para <varname>POLYGON</varname>s, el interior es una superficie real dentro "
+"del polígono. "
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1152
+#, no-c-format
+msgid "<glossterm>Exterior</glossterm>"
+msgstr "<glossterm>Exterior</glossterm>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1155
+#, no-c-format
+msgid ""
+"The exterior of a geometry is the universe, an areal surface, not on the "
+"interior or boundary of the geometry."
+msgstr ""
+"El Exterior de una geometría es el universo, una superficie real, que no se "
+"encuentra en el interior o en el borde de la geometría."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1162
+#, no-c-format
+msgid ""
+"Given geometry <emphasis>a</emphasis>, where the <emphasis>I(a)</emphasis>, "
+"<emphasis>B(a)</emphasis>, and <emphasis>E(a)</emphasis> are the "
+"<emphasis>Interior</emphasis>, <emphasis>Boundary</emphasis>, and "
+"<emphasis>Exterior</emphasis> of a, the mathematical representation of the "
+"matrix is:"
+msgstr ""
+"Dada una geometria <emphasis>a</emphasis>, donde <emphasis>I(a)</emphasis>, "
+"<emphasis>B(a)</emphasis>, y <emphasis>E(a)</emphasis> son el "
+"<emphasis>Interior</emphasis>, <emphasis>Borde</emphasis>, y "
+"<emphasis>Exterior</emphasis> de a, la representación matemática de la "
+"matriz es:"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1174 using_postgis_dataman.xml:1184
+#: using_postgis_dataman.xml:1268 using_postgis_dataman.xml:1281
+#, no-c-format
+msgid "<emphasis role=\"bold\">Interior</emphasis>"
+msgstr "<emphasis role=\"bold\">Interior</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1190
+#: using_postgis_dataman.xml:1271 using_postgis_dataman.xml:1304
+#, no-c-format
+msgid "<emphasis role=\"bold\">Boundary</emphasis>"
+msgstr "<emphasis role=\"bold\">Borde</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1196
+#: using_postgis_dataman.xml:1274 using_postgis_dataman.xml:1327
+#, no-c-format
+msgid "<emphasis role=\"bold\">Exterior</emphasis>"
+msgstr "<emphasis role=\"bold\">Exterior</emphasis>"
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1185
+#, no-c-format
+msgid "dim( I(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1186
+#, no-c-format
+msgid "dim( I(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1187
+#, no-c-format
+msgid "dim( I(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1191
+#, no-c-format
+msgid "dim( B(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1192
+#, no-c-format
+msgid "dim( B(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1193
+#, no-c-format
+msgid "dim( B(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1197
+#, no-c-format
+msgid "dim( E(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1198
+#, no-c-format
+msgid "dim( E(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1199
+#, no-c-format
+msgid "dim( E(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1206
+#, no-c-format
+msgid ""
+"Where <emphasis>dim(a)</emphasis> is the dimension of <emphasis>a</emphasis> "
+"as specified by <xref linkend=\"ST_Dimension\"/> but has the domain of "
+"<literal>{0,1,2,T,F,*}</literal>"
+msgstr ""
+"Donde <emphasis>dim(a)</emphasis> representa la dimensión de  <emphasis>a</"
+"emphasis> como se especifica en  <xref linkend=\"ST_Dimension\"/> pero tiene "
+"un dominio de <literal>{0,1,2,T,F,*}</literal>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1213
+#, no-c-format
+msgid "<literal>0</literal> => point"
+msgstr "<literal>0</literal> => punto"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1217
+#, no-c-format
+msgid "<literal>1</literal> => line"
+msgstr "<literal>1</literal> => linea"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1221
+#, no-c-format
+msgid "<literal>2</literal> => area"
+msgstr "<literal>2</literal> => area"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1225
+#, no-c-format
+msgid "<literal>T</literal> => <literal>{0,1,2}</literal>"
+msgstr "<literal>T</literal> => <literal>{0,1,2}</literal>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1230
+#, no-c-format
+msgid "<literal>F</literal> => empty set"
+msgstr "<literal>F</literal> => empty set"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1234
+#, no-c-format
+msgid "<literal>*</literal> => don't care"
+msgstr "<literal>*</literal> => no importa que valor"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1238
+#, no-c-format
+msgid "Visually, for two overlapping polygonal geometries, this looks like:"
+msgstr ""
+"Visualmente, para dos geometriías que se superponen, debera parecerse a:"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1285 using_postgis_dataman.xml:1297
+#: using_postgis_dataman.xml:1331 using_postgis_dataman.xml:1343
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">2</emphasis>"
+msgstr "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">2</emphasis>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1291 using_postgis_dataman.xml:1308
+#: using_postgis_dataman.xml:1320 using_postgis_dataman.xml:1337
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">1</emphasis>"
+msgstr "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">1</emphasis>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1314
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">0</emphasis>"
+msgstr "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">0</emphasis>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1355
+#, no-c-format
+msgid ""
+"Read from left to right and from top to bottom, the dimensional matrix is "
+"represented, '<emphasis role=\"bold\">212101212</emphasis>'."
+msgstr ""
+"Si leemos la matriz de izquierda a derecha y de arriba a bajo, la matriz "
+"dimensional esta representada por, '<emphasis role=\"bold\">212101212</"
+"emphasis>'."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1358
+#, no-c-format
+msgid ""
+"A relate matrix that would therefore represent our first example of two "
+"lines that intersect on a line would be: '<emphasis role=\"bold\">1*1***1**</"
+"emphasis>'"
+msgstr ""
+"Una matriz que representaría el ejemplo anterior de las dos lineas que se "
+"interceptan en una linea seria: '<emphasis role=\"bold\">1*1***1**</"
+"emphasis>'"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1362
+#, no-c-format
+msgid ""
+"-- Identify road segments that cross on a line\n"
+"SELECT a.id\n"
+"FROM roads a, roads b\n"
+"WHERE a.id != b.id \n"
+"AND a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '1*1***1**');"
+msgstr ""
+"-- Identificar los segmentos de lineas que se cruzan en una linea\n"
+"SELECT a.id\n"
+"FROM roads a, roads b\n"
+"WHERE a.id != b.id \n"
+"AND a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '1*1***1**');"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1364
+#, no-c-format
+msgid ""
+"A relate matrix that represents the second example of wharfs partly on the "
+"lake's shoreline would be '<emphasis role=\"bold\">102101FF2</emphasis>'"
+msgstr ""
+"La matriz que representaría el segundo ejemplo de los muelles en los lagos "
+"seria: '<emphasis role=\"bold\">102101FF2</emphasis>'"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1368
+#, no-c-format
+msgid ""
+"-- Identify wharfs partly on a lake's shoreline\n"
+"SELECT a.lake_id, b.wharf_id\n"
+"FROM lakes a, wharfs b\n"
+"WHERE a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '102101FF2');"
+msgstr ""
+"-- Identificar los muelles que están parcialmente en la orilla del lago\n"
+"SELECT a.lake_id, b.wharf_id\n"
+"FROM lakes a, wharfs b\n"
+"WHERE a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '102101FF2');"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1370
+#, no-c-format
+msgid "For more information or reading, see:"
+msgstr "Para mas información o documentación, visita:"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1374
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.opengeospatial.org/standards/sfs\">OpenGIS Simple "
+"Features Implementation Specification for SQL</ulink> (version 1.1, section "
+"2.1.13.2)"
+msgstr ""
+"<ulink url=\"http://www.opengeospatial.org/standards/sfs\">OpenGIS Simple "
+"Features Implementation Specification for SQL</ulink> (versión 1.1, sección "
+"2.1.13.2)"
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:1379
+#, no-c-format
+msgid ""
+"Dimensionally Extended Nine-Intersection Model (DE-9IM) by Christian Strobl"
+msgstr ""
+"Dimensionally Extended Nine-Intersection Model (DE-9IM) por Christian Strobl"
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:1383
+#, no-c-format
+msgid "GeoTools: Point Set Theory and the DE-9IM Matrix"
+msgstr "GeoTools: Point Set Theory and the DE-9IM Matrix"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1386
+#, no-c-format
+msgid "<emphasis>Encyclopedia of GIS</emphasis> By Hui Xiong"
+msgstr "<emphasis>Encyclopedia of GIS</emphasis> por Hui Xiong"
+
+#. Tag: title
+#: using_postgis_dataman.xml:1396
+#, fuzzy, no-c-format
+msgid "Loading GIS (Vector) Data"
+msgstr "Cargando Datos SIG"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1398
+#, no-c-format
+msgid ""
+"Once you have created a spatial table, you are ready to upload GIS data to "
+"the database. Currently, there are two ways to get data into a PostGIS/"
+"PostgreSQL database: using formatted SQL statements or using the Shape file "
+"loader/dumper."
+msgstr ""
+"Una vez creada la tabla espacial, estas listo para cargar datos SIG en la "
+"base de datos. Actualmente, existen dos formas de poner los datos en una "
+"base de datos PostGIS/PostgreSQL: utilizando sentencias SQL formateadas, o "
+"utilizando el cargador de ficheros Shape."
+
+#. Tag: title
+#: using_postgis_dataman.xml:1404
+#, fuzzy, no-c-format
+msgid "Loading Data Using SQL"
+msgstr "Cargando Datos SIG"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1406
+#, no-c-format
+msgid ""
+"If you can convert your data to a text representation, then using formatted "
+"SQL might be the easiest way to get your data into PostGIS. As with Oracle "
+"and other SQL databases, data can be bulk loaded by piping a large text file "
+"full of SQL \"INSERT\" statements into the SQL terminal monitor."
+msgstr ""
+"Si puedes convertir tus datos en una representación de texto, entonces "
+"utilizar SQL formateado debería ser la forma mas sencilla de cargar tus "
+"datos en PostGIS. Asi como en Oracle o otras bases de datos SQL, los datos "
+"pueden ser cargados en masa mediante la canalización de un fichero de texto "
+"grande, lleno de sentencias SQL \"INSERT\" en el terminal SQL."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1412
+#, no-c-format
+msgid ""
+"A data upload file (<filename>roads.sql</filename> for example) might look "
+"like this:"
+msgstr ""
+"Un fichero de carga (<filename>roads.sql</filename> por ejemplo) debería "
+"parecerse a esto:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1415
+#, no-c-format
+msgid ""
+"BEGIN;\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (1,ST_GeomFromText('LINESTRING(191232 243118,191108 "
+"243242)',-1),'Jeff Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (2,ST_GeomFromText('LINESTRING(189141 244158,189265 "
+"244817)',-1),'Geordie Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (3,ST_GeomFromText('LINESTRING(192783 228138,192612 "
+"229814)',-1),'Paul St');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (4,ST_GeomFromText('LINESTRING(189412 252431,189631 "
+"259122)',-1),'Graeme Ave');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (5,ST_GeomFromText('LINESTRING(190131 224148,190871 "
+"228134)',-1),'Phil Tce');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (6,ST_GeomFromText('LINESTRING(198231 263418,198213 "
+"268322)',-1),'Dave Cres');\n"
+"COMMIT;"
+msgstr ""
+"BEGIN;\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (1,ST_GeomFromText('LINESTRING(191232 243118,191108 "
+"243242)',-1),'Jeff Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (2,ST_GeomFromText('LINESTRING(189141 244158,189265 "
+"244817)',-1),'Geordie Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (3,ST_GeomFromText('LINESTRING(192783 228138,192612 "
+"229814)',-1),'Paul St');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (4,ST_GeomFromText('LINESTRING(189412 252431,189631 "
+"259122)',-1),'Graeme Ave');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (5,ST_GeomFromText('LINESTRING(190131 224148,190871 "
+"228134)',-1),'Phil Tce');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (6,ST_GeomFromText('LINESTRING(198231 263418,198213 "
+"268322)',-1),'Dave Cres');\n"
+"COMMIT;"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1417
+#, no-c-format
+msgid ""
+"The data file can be piped into PostgreSQL very easily using the \"psql\" "
+"SQL terminal monitor:"
+msgstr ""
+"El fichero de datos puede canalizarse en PostgreSQL de manera sencilla con "
+"el terminar de comandos SQL \"psql\":"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1420
+#, no-c-format
+msgid "psql -d [database] -f roads.sql"
+msgstr "psql -d [database] -f roads.sql"
+
+#. Tag: title
+#: using_postgis_dataman.xml:1424
+#, no-c-format
+msgid "shp2pgsql: Using the ESRI Shapefile Loader"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1426
+#, no-c-format
+msgid ""
+"The <filename>shp2pgsql</filename> data loader converts ESRI Shape files "
+"into SQL suitable for insertion into a PostGIS/PostgreSQL database either in "
+"geometry or geography format. The loader has several operating modes "
+"distinguished by command line flags:"
+msgstr ""
+"El cargador de datos Shape <filename>shp2pgsql</filename> convierte fichero "
+"Shape de ESRI en comandos SQL para la inserción en bases de datos PostGIS/"
+"PostgreSQL en formatos geometry o geography. El cargador tiene diferentes "
+"modos de operar según las opciones escritas en el comando:"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1431
+#, no-c-format
+msgid ""
+"In addition to the shp2pgsql command-line loader, there is an "
+"<filename>shp2pgsql-gui</filename> graphical interface with most of the "
+"options as the command-line loader, but may be easier to use for one-off non-"
+"scripted loading or if you are new to PostGIS. It can also be configured as "
+"a plugin to PgAdminIII."
+msgstr ""
+"Ademas del cargador por linea de comandos shp2pgsql, existe una interfaz "
+"gráfica llamada <filename>shp2pgsql-gui</filename>, con la mayoría de las "
+"opciones del cargador por linea de comandos, pero puede ser mas sencillo de "
+"utilizar para aquellas que no estén en scripts o ficheros único o si eres "
+"nuevo en PostGIS. También se puede configurara como un plugin de PgAdminIII."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1438
+#, no-c-format
+msgid "(c|a|d|p) These are mutually exclusive options:"
+msgstr "(c|a|d|p) Estas opciones son exclusivas entre ellas:"
+
+#. Tag: term
+#: using_postgis_dataman.xml:1443
+#, no-c-format
+msgid "<term>-c</term>"
+msgstr "<term>-c</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1445
+#, no-c-format
+msgid ""
+"Creates a new table and populates it from the shapefile. <emphasis>This is "
+"the default mode.</emphasis>"
+msgstr ""
+"Crea una nueva tabla y la rellena desde el shapefile. <emphasis>Esta es la "
+"opción por defecto.</emphasis>"
+
+#. Tag: term
+#: using_postgis_dataman.xml:1453
+#, no-c-format
+msgid "<term>-a</term>"
+msgstr "<term>-a</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1455
+#, no-c-format
+msgid ""
+"Appends data from the Shape file into the database table. Note that to use "
+"this option to load multiple files, the files must have the same attributes "
+"and same data types."
+msgstr ""
+"Añade los datos del shapefile en la tabla de la base de datos. Observa que "
+"para utilizar esta opción para cargar varios ficheros, los ficheros deben "
+"tener los mismos atributos y los mismos tipos de datos."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1464 using_postgis_dataman.xml:1853
+#, no-c-format
+msgid "<term>-d</term>"
+msgstr "<term>-d</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1466
+#, no-c-format
+msgid ""
+"Drops the database table before creating a new table with the data in the "
+"Shape file."
+msgstr ""
+"Borra la tabla de la base de datos antes de crear una nueva tabla con los "
+"datos del shapefile en su interior."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1474
+#, no-c-format
+msgid "<term>-p</term>"
+msgstr "<term>-p</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1476
+#, no-c-format
+msgid ""
+"Only produces the table creation SQL code, without adding any actual data. "
+"This can be used if you need to completely separate the table creation and "
+"data loading steps."
+msgstr ""
+"Solo produce el código del comando SQL de creación de la tabla, sin añadir "
+"ningún dato. Esto puede utilizarse si necesitas separar completamente los "
+"pasos de creación de la tabla y de carga de datos"
+
+#. Tag: term
+#: using_postgis_dataman.xml:1489
+#, no-c-format
+msgid "<term>-?</term>"
+msgstr "<term>-?</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1491
+#, no-c-format
+msgid "Display help screen."
+msgstr "Muestra la ayuda en pantalla."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1498
+#, no-c-format
+msgid "<term>-D</term>"
+msgstr "<term>-D</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1500
+#, no-c-format
+msgid ""
+"Use the PostgreSQL \"dump\" format for the output data. This can be combined "
+"with -a, -c and -d. It is much faster to load than the default \"insert\" "
+"SQL format. Use this for very large data sets."
+msgstr ""
+"Utiliza el formato \"dump\" de PostgreSQL en la salida de datos. Esto puede "
+"combinarse con -a, -c, y -d. Es mucho mas rápido cargar este fichero \"dump"
+"\" que utilizando en comando SQL \"INSERT\" por defecto. Utiliza esto ara "
+"grandes conjuntos de datos."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1509
+#, no-c-format
+msgid "-s [<FROM_SRID%gt;:]<SRID>"
+msgstr "-s [<FROM_SRID%gt;:]<SRID>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1511
+#, no-c-format
+msgid ""
+"Creates and populates the geometry tables with the specified SRID. "
+"Optionally specifies that the input shapefile uses the given FROM_SRID, in "
+"which case the geometries will be reprojected to the target SRID. FROM_SRID "
+"cannot be specified with -D."
+msgstr ""
+"Crea y rellena las tablas geométricas con el SRID especificado. "
+"Opcionalmente especifica que el fichero shapefile utiliza el dado en "
+"FROM_SRID, en tal caso las geometrías se reproyectarán  al SRID destino. "
+"FROM_SRID no puede espeficarse con -D "
+
+#. Tag: term
+#: using_postgis_dataman.xml:1522
+#, no-c-format
+msgid "<term>-k</term>"
+msgstr "<term>-k</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1524
+#, no-c-format
+msgid ""
+"Keep identifiers' case (column, schema and attributes). Note that attributes "
+"in Shapefile are all UPPERCASE."
+msgstr ""
+"Mantiene las mayúsculas en los identificadores (columnas, esquemas y "
+"atributos). Observa que los atributos en los shapefiles están siempre en "
+"MAYÚSCULAS."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1532
+#, no-c-format
+msgid "<term>-i</term>"
+msgstr "<term>-i</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1534
+#, no-c-format
+msgid ""
+"Coerce all integers to standard 32-bit integers, do not create 64-bit "
+"bigints, even if the DBF header signature appears to warrant it."
+msgstr ""
+"Fuerza la creación de enteros a enteros estándar de 32-bits, no crea enteros "
+"bigint de 64-bits, aunque la firma de la cabecera del DBF parezca que lo "
+"garantiza."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1542
+#, no-c-format
+msgid "<term>-I</term>"
+msgstr "<term>-I</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1544
+#, no-c-format
+msgid "Create a GiST index on the geometry column."
+msgstr "Crea un indice GiST de la columna de geometrias."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1551
+#, fuzzy, no-c-format
+msgid "<term>-m</term>"
+msgstr "<term>-c</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1553
+#, no-c-format
+msgid ""
+"-m <filename>a_file_name</filename> Specify a file containing a set of "
+"mappings of (long) column names to 10 character DBF column names. The "
+"content of the file is one or more lines of two names separated by white "
+"space and no trailing or leading space. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1558
+#, no-c-format
+msgid ""
+"COLUMNNAME DBFFIELD1\n"
+"AVERYLONGCOLUMNNAME DBFFIELD2"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1564
+#, no-c-format
+msgid "<term>-S</term>"
+msgstr "<term>-S</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1566
+#, no-c-format
+msgid ""
+"Generate simple geometries instead of MULTI geometries. Will only succeed if "
+"all the geometries are actually single (I.E. a MULTIPOLYGON with a single "
+"shell, or or a MULTIPOINT with a single vertex)."
+msgstr ""
+"Genera geometrías simples en lugar de MULTI geometrías. Solo funcionará si "
+"todas las geometrias son actualmente simples (I.E. un MULTIPOLYGON con una "
+"única capa, o un MULTIPOINT con un único vértice). "
+
+#. Tag: term
+#: using_postgis_dataman.xml:1575
+#, no-c-format
+msgid "-t <dimensionality>"
+msgstr "-t <dimensionality>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1577
+#, no-c-format
+msgid ""
+"Force the output geometry to have the specified dimensionality. Use the "
+"following strings to indicate the dimensionality: 2D, 3DZ, 3DM, 4D."
+msgstr ""
+"Fuerza a que la geometría de salida tenga la dimensión especificada. Utiliza "
+"las siguientes cadenas para indicar la dimensión: 2D, 3DZ, 3DM, 4D."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1581
+#, no-c-format
+msgid ""
+"If the input has fewer dimensions that specified, the output will have those "
+"dimensions filled in with zeroes. If the input has more dimensions that "
+"specified, the unwanted dimensions will be stripped."
+msgstr ""
+"Si la entrada tiene menos dimensiones de las especificadas, la salida tendrá "
+"estas dimensiones rellenas con ceros. Si la entrada tiene mas dimensiones de "
+"las especificadas, las dimensiones no deseadas se eliminarán."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1590
+#, no-c-format
+msgid "<term>-w</term>"
+msgstr "<term>-w</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1592
+#, no-c-format
+msgid ""
+"Output WKT format, instead of WKB. Note that this can introduce coordinate "
+"drifts due to loss of precision."
+msgstr ""
+"Salida en formato WKT, en vez de WKB. Observa que esto puede introducir "
+"derivas en las coordenadas debido a la perdida de precisión."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1600
+#, no-c-format
+msgid "<term>-e</term>"
+msgstr "<term>-e</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1602
+#, no-c-format
+msgid ""
+"Execute each statement on its own, without using a transaction. This allows "
+"loading of the majority of good data when there are some bad geometries that "
+"generate errors. Note that this cannot be used with the -D flag as the \"dump"
+"\" format always uses a transaction."
+msgstr ""
+"Ejecuta cada sentencia una por una, sin utilizar una transacción. Esto "
+"permite cargar la mayoría de datos correctos cuando existen algunas "
+"geometrías no validas que generan errores. Observa que esta opción no se "
+"puede utilizar con -D ya que el formato \"dump\" siempre utiliza "
+"transacciones."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1612
+#, no-c-format
+msgid "-W <encoding>"
+msgstr "-W <encoding>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1614
+#, no-c-format
+msgid ""
+"Specify encoding of the input data (dbf file). When used, all attributes of "
+"the dbf are converted from the specified encoding to UTF8. The resulting SQL "
+"output will contain a <code>SET CLIENT_ENCODING to UTF8</code> command, so "
+"that the backend will be able to reconvert from UTF8 to whatever encoding "
+"the database is configured to use internally."
+msgstr ""
+"Especifica la codificación de los datos de entrada (fichero dbf). Cuando se "
+"utiliza, todos los atributos del fichero dbf son convertidos desde la "
+"codificación especificada a UTF8. La salida SQL resultante contendrá un "
+"comando <code>SET CLIENT_ENCODING to UTF8</code>, así que el backend sera "
+"capaz de reconvertir desde UTF8 a cualquier codificación que este "
+"configurada en la base de datos para uso interno."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1624
+#, no-c-format
+msgid "-N <policy>"
+msgstr "-N <policy>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1626
+#, no-c-format
+msgid "NULL geometries handling policy (insert*,skip,abort)"
+msgstr "Políticas de gestión de geometrías NULL (insert*, skip, abort)"
+
+#. Tag: term
+#: using_postgis_dataman.xml:1632
+#, no-c-format
+msgid "<term>-n</term>"
+msgstr "<term>-n</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1634
+#, no-c-format
+msgid ""
+"-n Only import DBF file. If your data has no corresponding shapefile, it "
+"will automatically switch to this mode and load just the dbf. So setting "
+"this flag is only needed if you have a full shapefile set, and you only want "
+"the attribute data and no geometry."
+msgstr ""
+"-n solo importa los ficheros dbf. Si tus datos no tienen shapefiles "
+"correspondientes, se cambiara de forma automática a este modo y se cargara "
+"únicamente el dbf. Así que esta opción solo se necesita si lo unifico que "
+"quieres cargar son los atributos y no las geometrías."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1642
+#, no-c-format
+msgid "<term>-G</term>"
+msgstr "<term>-G</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1644
+#, no-c-format
+msgid ""
+"Use geography type instead of geometry (requires lon/lat data) in WGS84 long "
+"lat (SRID=4326)"
+msgstr ""
+"Utiliza el tipo \"geography\" en lugar del tipo \"geometry\" (requiere datos "
+"en lon/lat) en WGS84 long lat (SRID=4326)"
+
+#. Tag: term
+#: using_postgis_dataman.xml:1650
+#, no-c-format
+msgid "-T <tablespace>"
+msgstr "-T <tablespace>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1652
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table. Indexes will still use the default "
+"tablespace unless the -X parameter is also used. The PostgreSQL "
+"documentation has a good description on when to use custom tablespaces."
+msgstr ""
+"Especifica el \"tablespace\" para la nueva tabla.Los indices seguirán "
+"utilizando el \"tablespace\" por defecto a menos que el parámetro -X este en "
+"uso. La documentación de PostgreSQL tiene una buena descripción de los "
+"\"tablespaces\" personalizados."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1660
+#, no-c-format
+msgid "-X <tablespace>"
+msgstr "-X <tablespace>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1662
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table's indexes. This applies to the "
+"primary key index, and the GIST spatial index if -I is also used."
+msgstr ""
+"Especifica el \"tablespace\" para los indices de la nueva tabla. Esto se "
+"aplica a los indices de clave primaria y a los indices espaciales GiST si se "
+"usa también la opción -l."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1670
+#, no-c-format
+msgid ""
+"An example session using the loader to create an input file and uploading it "
+"might look like this:"
+msgstr ""
+"Un ejemplo de sesión utilizando el cargador para crear un fichero de entrada "
+"y cargarlo debe parecerse a esto:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1675
+#, no-c-format
+msgid ""
+"# shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > "
+"roads.sql\n"
+"# psql -d roadsdb -f roads.sql"
+msgstr ""
+"# shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > "
+"roads.sql\n"
+"# psql -d roadsdb -f roads.sql"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1677
+#, no-c-format
+msgid "A conversion and upload can be done all in one step using UNIX pipes:"
+msgstr ""
+"Una conversion y carga puede hacerse en un solo paso utilizando el símbolo "
+"tubería en sistemas UNIX:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1681
+#, no-c-format
+msgid "# shp2pgsql shaperoads.shp myschema.roadstable | psql -d roadsdb"
+msgstr "# shp2pgsql shaperoads.shp myschema.roadstable | psql -d roadsdb"
+
+#. Tag: title
+#: using_postgis_dataman.xml:1686
+#, no-c-format
+msgid "Retrieving GIS Data"
+msgstr "Recuperando datos SIG"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1688
+#, no-c-format
+msgid ""
+"Data can be extracted from the database using either SQL or the Shape file "
+"loader/dumper. In the section on SQL we will discuss some of the operators "
+"available to do comparisons and queries on spatial tables."
+msgstr ""
+"Los datos se pueden extraer de la base de datos utilizando SQL o el cargador/"
+"dumper de ficheros Shape. En la sección SQL hablaremos de algunos de los "
+"operadores disponibles para hacer comparaciones y consultas en tablas "
+"espaciales."
+
+#. Tag: title
+#: using_postgis_dataman.xml:1694
+#, no-c-format
+msgid "Using SQL to Retrieve Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1696
+#, no-c-format
+msgid ""
+"The most straightforward means of pulling data out of the database is to use "
+"a SQL select query to reduce the number of RECORDS and COLUMNS returned and "
+"dump the resulting columns into a parsable text file:"
+msgstr ""
+"El medio más directo para hacer una extracción de datos de la base de datos "
+"es utilizar una consulta de selección SQL para reducir el número de "
+"registros y columnas devueltas y volcar las columnas resultantes en un "
+"archivo de texto analizable:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1701
+#, no-c-format
+msgid ""
+"db=# SELECT road_id, ST_AsText(road_geom) AS geom, road_name FROM roads;\n"
+"\n"
+"road_id | geom                                    | road_name\n"
+"--------+-----------------------------------------+-----------\n"
+"          1 | LINESTRING(191232 243118,191108 243242) | Jeff Rd\n"
+"          2 | LINESTRING(189141 244158,189265 244817) | Geordie Rd\n"
+"          3 | LINESTRING(192783 228138,192612 229814) | Paul St\n"
+"          4 | LINESTRING(189412 252431,189631 259122) | Graeme Ave\n"
+"          5 | LINESTRING(190131 224148,190871 228134) | Phil Tce\n"
+"          6 | LINESTRING(198231 263418,198213 268322) | Dave Cres\n"
+"          7 | LINESTRING(218421 284121,224123 241231) | Chris Way\n"
+"(6 rows)"
+msgstr ""
+"db=# SELECT road_id, ST_AsText(road_geom) AS geom, road_name FROM roads;\n"
+"\n"
+"road_id | geom                                    | road_name\n"
+"--------+-----------------------------------------+-----------\n"
+"          1 | LINESTRING(191232 243118,191108 243242) | Jeff Rd\n"
+"          2 | LINESTRING(189141 244158,189265 244817) | Geordie Rd\n"
+"          3 | LINESTRING(192783 228138,192612 229814) | Paul St\n"
+"          4 | LINESTRING(189412 252431,189631 259122) | Graeme Ave\n"
+"          5 | LINESTRING(190131 224148,190871 228134) | Phil Tce\n"
+"          6 | LINESTRING(198231 263418,198213 268322) | Dave Cres\n"
+"          7 | LINESTRING(218421 284121,224123 241231) | Chris Way\n"
+"(6 rows)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1703
+#, no-c-format
+msgid ""
+"However, there will be times when some kind of restriction is necessary to "
+"cut down the number of fields returned. In the case of attribute-based "
+"restrictions, just use the same SQL syntax as normal with a non-spatial "
+"table. In the case of spatial restrictions, the following operators are "
+"available/useful:"
+msgstr ""
+"Sin embargo, habrá ocasiones que debido a algún tipo de restricción será "
+"necesario reducir el número de campos que se devuelven . En el caso de "
+"restricciones basadas en los atributos, sólo tienes que utilizar la misma "
+"sintaxis SQL de forma normal como con una tabla no espacial. En el caso de "
+"restricciones espaciales, están disponibles los siguientes operadores:"
+
+#. Tag: term
+#: using_postgis_dataman.xml:1711
+#, no-c-format
+msgid "&&"
+msgstr "&&"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1714
+#, no-c-format
+msgid ""
+"This operator tells whether the bounding box of one geometry intersects the "
+"bounding box of another."
+msgstr ""
+"Este operador indica si el límite de una geometría forma intersección con el "
+"límite de otra."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1720
+#, no-c-format
+msgid "ST_OrderingEquals"
+msgstr "ST_OrderingEquals"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1723
+#, no-c-format
+msgid ""
+"This tests whether two geometries are geometrically identical. For example, "
+"if 'POLYGON((0 0,1 1,1 0,0 0))' is the same as 'POLYGON((0 0,1 1,1 0,0 "
+"0))' (it is)."
+msgstr ""
+"Este test comprueba si dos geometrías son geométricamente idénticas. Por "
+"ejemplo, si 'POLYGON((0 0,1 1,1 0,0 0))' es la misma que 'POLYGON((0 0,1 1,1 "
+"0,0 0))' (si que lo es)."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1730
+#, no-c-format
+msgid "<term>=</term>"
+msgstr "<term>=</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1733
+#, no-c-format
+msgid ""
+"This operator is a little more naive, it only tests whether the bounding "
+"boxes of two geometries are the same."
+msgstr ""
+"Este operador es un poco mas \"inocente\", solo comprueba si los límites "
+"(bounding boxes) de dos geometrías son los mismos."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1739
+#, no-c-format
+msgid ""
+"Next, you can use these operators in queries. Note that when specifying "
+"geometries and boxes on the SQL command line, you must explicitly turn the "
+"string representations into geometries by using the \"ST_GeomFromText()\" "
+"function. The 312 is a fictitious spatial reference system that matches our "
+"data. So, for example:"
+msgstr ""
+"A continuación, puedes utilizar estos operadores en las consultas. Ten en "
+"cuenta que al especificar geometrías y cajas en la línea de comandos SQL, "
+"debes activar de forma explícita las representaciones de cadena en "
+"geometrías utilizando la función \"ST_GeomFromText ()\". El 312 es un "
+"sistema de referencia espacial ficticio que coincide con nuestros datos. Así "
+"que, por ejemplo:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1745
+#, no-c-format
+msgid ""
+"SELECT road_id, road_name\n"
+"  FROM roads\n"
+"  WHERE ST_OrderingEquals(roads_geom , ST_GeomFromText('LINESTRING(191232 "
+"243118,191108 243242)',312) ) ;"
+msgstr ""
+"SELECT road_id, road_name\n"
+"  FROM roads\n"
+"  WHERE ST_OrderingEquals(roads_geom , ST_GeomFromText('LINESTRING(191232 "
+"243118,191108 243242)',312) ) ;"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1747
+#, no-c-format
+msgid ""
+"The above query would return the single record from the \"ROADS_GEOM\" table "
+"in which the geometry was equal to that value."
+msgstr ""
+"La consulta anterior deberá devolver el único registro de la tabla "
+"\"ROADS_GEOM\" cuya geometría era igual a este valor."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1750
+#, no-c-format
+msgid ""
+"When using the \"&&\" operator, you can specify either a BOX3D as "
+"the comparison feature or a GEOMETRY. When you specify a GEOMETRY, however, "
+"its bounding box will be used for the comparison."
+msgstr ""
+"Cuando utilizamos el operador \"&&\", puedes especificar ya sea un "
+"BOX3D como la función de comparación o una GEOMETRY. Cuando se especifica "
+"una geometría, sin embargo, se utiliza para la comparación su cuadro "
+"delimitador (bounding box)."
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1755
+#, no-c-format
+msgid ""
+"SELECT road_id, road_name\n"
+"FROM roads\n"
+"WHERE roads_geom && ST_GeomFromText('POLYGON((...))',312);"
+msgstr ""
+"SELECT road_id, road_name\n"
+"FROM roads\n"
+"WHERE roads_geom && ST_GeomFromText('POLYGON((...))',312);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1757
+#, no-c-format
+msgid ""
+"The above query will use the bounding box of the polygon for comparison "
+"purposes."
+msgstr ""
+"La consulta anterior utiliza los limites (bounding box) del polígono para la "
+"comparación."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1760
+#, no-c-format
+msgid ""
+"The most common spatial query will probably be a \"frame-based\" query, used "
+"by client software, like data browsers and web mappers, to grab a \"map frame"
+"\" worth of data for display. Using a \"BOX3D\" object for the frame, such a "
+"query looks like this:"
+msgstr ""
+"La consulta espacial más común probablemente será una consulta \"basada en "
+"cuadros\", utilizada por el software cliente, como navegadores de datos o "
+"aplicaciones webmapping, para tomar un valor del \"marco del mapa \" de los "
+"datos para su visualización. La consulta para el uso de un objeto \"BOX3D\" "
+"para el marco, se parece a esto:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(roads_geom) AS geom\n"
+"FROM roads\n"
+"WHERE\n"
+"  roads_geom && ST_MakeEnvelope(191232, 243117,191232, 243119,312);"
+msgstr ""
+"SELECT ST_AsText(roads_geom) AS geom\n"
+"FROM roads\n"
+"WHERE\n"
+"  roads_geom && ST_MakeEnvelope(191232, 243117,191232, 243119,312);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1767
+#, no-c-format
+msgid ""
+"Note the use of the SRID 312, to specify the projection of the envelope."
+msgstr ""
+"Observa el uso del SRID 123, para espeficar la proyección de la envolvente."
+
+#. Tag: title
+#: using_postgis_dataman.xml:1771
+#, no-c-format
+msgid "Using the Dumper"
+msgstr "Uso del Dumper"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1773
+#, no-c-format
+msgid ""
+"The <filename>pgsql2shp</filename> table dumper connects directly to the "
+"database and converts a table (possibly defined by a query) into a shape "
+"file. The basic syntax is:"
+msgstr ""
+"El comando dump de las tablas <filename>pgsql2shp</filename> conecta "
+"directamente con la base de datos y convierte la tabla (posiblemente "
+"definido por una consulta) en un fichero shape. La sintaxis básica es:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1777
+#, no-c-format
+msgid ""
+"pgsql2shp [<options>] <database> [<schema>.]<table>"
+msgstr ""
+"pgsql2shp [<options>] <database> [<schema>.]<table>"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1779
+#, no-c-format
+msgid "pgsql2shp [<options>] <database> <query>"
+msgstr "pgsql2shp [<options>] <database> <query>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1781
+#, no-c-format
+msgid "The commandline options are:"
+msgstr "Las opciones del comando son:"
+
+#. Tag: term
+#: using_postgis_dataman.xml:1785
+#, no-c-format
+msgid "-f <filename>"
+msgstr "-f <filename>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1788
+#, no-c-format
+msgid "Write the output to a particular filename."
+msgstr "Escribe la salida en un fichero con un nombre particular"
+
+#. Tag: term
+#: using_postgis_dataman.xml:1793
+#, no-c-format
+msgid "-h <host>"
+msgstr "-h <host>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1796
+#, no-c-format
+msgid "The database host to connect to."
+msgstr "Especifica el servidor al que conectarse."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1801
+#, no-c-format
+msgid "-p <port>"
+msgstr "-p <port>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1804
+#, no-c-format
+msgid "The port to connect to on the database host."
+msgstr ""
+"Especifica el puerto del servidor de la base de datos al que conectarse."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1809
+#, no-c-format
+msgid "-P <password>"
+msgstr "-P <password>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1812
+#, no-c-format
+msgid "The password to use when connecting to the database."
+msgstr "La contraseña a utilizar en la conexión de la base de datos."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1817
+#, no-c-format
+msgid "-u <user>"
+msgstr "-u <user>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1820
+#, no-c-format
+msgid "The username to use when connecting to the database."
+msgstr "El nombre del usuario a utilizar en la conexión a la base de datos."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1825
+#, no-c-format
+msgid "-g <geometry column>"
+msgstr "-g <geometry column>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1828
+#, no-c-format
+msgid ""
+"In the case of tables with multiple geometry columns, the geometry column to "
+"use when writing the shape file."
+msgstr ""
+"En el caso que las tablas tengan varias columnas de geometrías, la columna "
+"de geometrías a utilizar cuando se escriba el fichero shape."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1834
+#, no-c-format
+msgid "<term>-b</term>"
+msgstr "<term>-b</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1837
+#, no-c-format
+msgid ""
+"Use a binary cursor. This will make the operation faster, but will not work "
+"if any NON-geometry attribute in the table lacks a cast to text."
+msgstr ""
+"Utiliza un cursor binario. Esto hada las operaciones mas rápido, pero no "
+"funcionará si algún atributo NO-geométrico de la tabla carece de conversion "
+"a texto."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1844
+#, no-c-format
+msgid "<term>-r</term>"
+msgstr "<term>-r</term>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1847
+#, no-c-format
+msgid ""
+"Raw mode. Do not drop the <varname>gid</varname> field, or escape column "
+"names."
+msgstr ""
+"Modo Raw. No suprime el campo <varname>gid</varname>, o omite los nombres de "
+"las columnas."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1856
+#, no-c-format
+msgid ""
+"For backward compatibility: write a 3-dimensional shape file when dumping "
+"from old (pre-1.0.0) postgis databases (the default is to write a 2-"
+"dimensional shape file in that case). Starting from postgis-1.0.0+, "
+"dimensions are fully encoded."
+msgstr ""
+"Por compatibilidad con versiones anteriores: escribir un archivo shape de 3 "
+"dimensiones cuando consultamos desde bases de datos PostGIS antiguas "
+"(pre-1.0.0) (el valor por defecto es el de escribir un archivo de formas de "
+"2 dimensiones en ese caso). A partir de postgis-1.0.0 +, dimensiones están "
+"completamente codificados."
+
+#. Tag: term
+#: using_postgis_dataman.xml:1864
+#, no-c-format
+msgid "-m <varname>filename</varname>"
+msgstr "-m <varname>filename</varname>"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1866
+#, no-c-format
+msgid ""
+"Remap identifiers to ten character names. The content of the file is lines "
+"of two symbols separated by a single white space and no trailing or leading "
+"space: VERYLONGSYMBOL SHORTONE ANOTHERVERYLONGSYMBOL SHORTER etc."
+msgstr ""
+"Reasignar los identificadores de diez nombres de los personajes. El "
+"contenido del archivo son líneas de dos símbolos separados por un único "
+"espacio en blanco y sin espacios al final, o al inicio: VERYLONGSYMBOL "
+"SHORTONE ANOTHERVERYLONGSYMBOL SHORTER etc."
+
+#. Tag: title
+#: using_postgis_dataman.xml:1879
+#, no-c-format
+msgid "Building Indexes"
+msgstr "Contruir Indices"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1881
+#, no-c-format
+msgid ""
+"Indexes are what make using a spatial database for large data sets possible. "
+"Without indexing, any search for a feature would require a \"sequential scan"
+"\" of every record in the database. Indexing speeds up searching by "
+"organizing the data into a search tree which can be quickly traversed to "
+"find a particular record. PostgreSQL supports three kinds of indexes by "
+"default: B-Tree indexes, R-Tree indexes, and GiST indexes."
+msgstr ""
+"Los índices son los que hacen posible el uso de una base de datos espacial "
+"para conjuntos de datos muy grandes. Sin indexación, cualquier búsqueda de "
+"una característica requeriría un \"recorrido secuencial\" de cada registro "
+"en la base de datos. La Indexación acelera la búsqueda mediante la "
+"organización de los datos en un árbol de búsqueda que puede ser recorrido "
+"con rapidez para encontrar un registro en particular. PostgreSQL soporta "
+"tres tipos de índices por defecto: índices B-Tree, índices R-Tree, e índices "
+"GIST."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1891
+#, no-c-format
+msgid ""
+"B-Trees are used for data which can be sorted along one axis; for example, "
+"numbers, letters, dates. GIS data cannot be rationally sorted along one axis "
+"(which is greater, (0,0) or (0,1) or (1,0)?) so B-Tree indexing is of no use "
+"for us."
+msgstr ""
+"B-Trees se utiliza para datos que pueden ser ordenados a lo largo de un eje, "
+"por ejemplo, números, letras, fechas.Los datos SIG no pueden ser "
+"racionalmente ordenados a lo largo de un eje (¿cual es mayor? ¿(0,0) o (0,1) "
+"o (1,0)?) así que los indices B-Tree no son de ninguna utilidad para "
+"nosotros."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1898
+#, no-c-format
+msgid ""
+"R-Trees break up data into rectangles, and sub-rectangles, and sub-sub "
+"rectangles, etc. R-Trees are used by some spatial databases to index GIS "
+"data, but the PostgreSQL R-Tree implementation is not as robust as the GiST "
+"implementation."
+msgstr ""
+"R-Trees divide los datos en rectángulos y sub-rectángulos, y sub-sub "
+"rectángulos, etc R-Tree se utiliza en algunas bases de datos espaciales para "
+"indexar datos GIS, pero la implementación PostgreSQL R-Tree no es tan "
+"robusta como la de GiST."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1905
+#, no-c-format
+msgid ""
+"GiST (Generalized Search Trees) indexes break up data into \"things to one "
+"side\", \"things which overlap\", \"things which are inside\" and can be "
+"used on a wide range of data-types, including GIS data. PostGIS uses an R-"
+"Tree index implemented on top of GiST to index GIS data."
+msgstr ""
+"Los indices GiST (Generalized Search Trees o Arbol de búsquedas "
+"generalizado) dividen los datos en \"cosas a un lado\", \"cosas que se "
+"solapan\", \"cosas que están dentro\" y se pueden utilizar en una amplia "
+"gama de tipos de datos, incluyendo los datos SIG. PostGIS utiliza un índice "
+"R-Tree implementado sobre GiST para indexar datos GIS."
+
+#. Tag: title
+#: using_postgis_dataman.xml:1914
+#, no-c-format
+msgid "GiST Indexes"
+msgstr "Indices GiST"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1916
+#, no-c-format
+msgid ""
+"GiST stands for \"Generalized Search Tree\" and is a generic form of "
+"indexing. In addition to GIS indexing, GiST is used to speed up searches on "
+"all kinds of irregular data structures (integer arrays, spectral data, etc) "
+"which are not amenable to normal B-Tree indexing."
+msgstr ""
+"GiST significa \"Generalized Search Tree\" de sus siglas en inglés o \"Arbol "
+"de Búsqueda Generalizado\" y es una forma genérica de indexación. Además de "
+"la indexación de datos SIG, GiST se utiliza para acelerar las búsquedas en "
+"todo tipo de estructuras irregulares de datos (arrays de enteros, datos "
+"espectrales, etc) que no son susceptibles de indexación por árbol normal."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1921
+#, no-c-format
+msgid ""
+"Once a GIS data table exceeds a few thousand rows, you will want to build an "
+"index to speed up spatial searches of the data (unless all your searches are "
+"based on attributes, in which case you'll want to build a normal index on "
+"the attribute fields)."
+msgstr ""
+"Una vez que una tabla de datos GIS supera unos pocos miles de filas, tendrás "
+"que construir un índice para acelerar las búsquedas espaciales de los datos "
+"(a menos que todas las búsquedas se basen en atributos, en cuyo caso querrás "
+"construir un índice normal en los campos de atributo)."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1926
+#, no-c-format
+msgid ""
+"The syntax for building a GiST index on a \"geometry\" column is as follows:"
+msgstr ""
+"La sintaxis para la creación de un indice GiST en una columna \"geometry\" "
+"es como sigue:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1929
+#, no-c-format
+msgid "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1930
+#, no-c-format
+msgid ""
+"The above syntax will always build a 2D-index. To get the an n-dimensional "
+"index supported in PostGIS 2.0+ for the geometry type, you can create one "
+"using this syntax"
+msgstr ""
+"La sintaxis anterior siempre construirá un índice 2D. Para obtener el índice "
+"de dimensión n soportado en PostGIS 2.0 + para el tipo geometría, puedes "
+"crearlo utilizando esta sintaxis"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1931
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield] "
+"gist_geometry_ops_nd);"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield] "
+"gist_geometry_ops_nd);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1933
+#, no-c-format
+msgid ""
+"Building a spatial index is a computationally intensive exercise: on tables "
+"of around 1 million rows, on a 300MHz Solaris machine, we have found "
+"building a GiST index takes about 1 hour. After building an index, it is "
+"important to force PostgreSQL to collect table statistics, which are used to "
+"optimize query plans:"
+msgstr ""
+"La construcción de un índice espacial es un ejercicio de cálculo intensivo: "
+"en tablas de alrededor de 1 millón de filas, en una máquina de 300 MHz "
+"Solaris, hemos encontrado que la construcción de un índice de GiST dura "
+"aproximadamente 1 hora. Después de la construcción de un índice, es "
+"importante obligar a PostgreSQL recopilar las estadísticas de tabla que se "
+"utilizan para optimizar los planes de consulta:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1939
+#, no-c-format
+msgid ""
+"VACUUM ANALYZE [table_name] [(column_name)];\n"
+"-- This is only needed for PostgreSQL 7.4 installations and below\n"
+"SELECT UPDATE_GEOMETRY_STATS([table_name], [column_name]);"
+msgstr ""
+"VACUUM ANALYZE [table_name] [(column_name)];\n"
+"-- This is only needed for PostgreSQL 7.4 installations and below\n"
+"SELECT UPDATE_GEOMETRY_STATS([table_name], [column_name]);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1941
+#, no-c-format
+msgid ""
+"GiST indexes have two advantages over R-Tree indexes in PostgreSQL. Firstly, "
+"GiST indexes are \"null safe\", meaning they can index columns which include "
+"null values. Secondly, GiST indexes support the concept of \"lossiness\" "
+"which is important when dealing with GIS objects larger than the PostgreSQL "
+"8K page size. Lossiness allows PostgreSQL to store only the \"important\" "
+"part of an object in an index -- in the case of GIS objects, just the "
+"bounding box. GIS objects larger than 8K will cause R-Tree indexes to fail "
+"in the process of being built."
+msgstr ""
+"Los índices GiST tienen dos ventajas respecto a los índices R-Tree en "
+"PostgreSQL. En primer lugar, los índices GiST son \"null safe\", lo que "
+"significa que puede indexar columnas que incluyen valores nulos. En segundo "
+"lugar, los índices GiST apoyan el concepto de \"capacidad de disipación\", "
+"que es importante cuando se trata de objetos GIS más grandes que el tamaño "
+"de página de 8K PostgreSQL. La capacidad de disipación permite a PostgreSQL "
+"almacenar sólo la parte \"importante\" de un objeto en un índice - en el "
+"caso de objetos SIG, sólo el cuadro delimitador (bounding box). Los objetos "
+"GIS mayores de 8 KB provocaran fallos en los índices R-Tree en el proceso de "
+"construcción."
+
+#. Tag: title
+#: using_postgis_dataman.xml:1953
+#, no-c-format
+msgid "Using Indexes"
+msgstr "Utilizando Indices"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1955
+#, no-c-format
+msgid ""
+"Ordinarily, indexes invisibly speed up data access: once the index is built, "
+"the query planner transparently decides when to use index information to "
+"speed up a query plan. Unfortunately, the PostgreSQL query planner does not "
+"optimize the use of GiST indexes well, so sometimes searches which should "
+"use a spatial index instead default to a sequence scan of the whole table."
+msgstr ""
+"Por lo general, los índices aceleran el acceso de datos de forma invisible: "
+"una vez construido el índice, el optimizador de consultas decide de manera "
+"transparente cuándo utilizar la información del índice para acelerar un plan "
+"de consulta. Por desgracia, el planeador de consultas de PostgreSQL no "
+"optimiza el uso de índices GiST bien, así que a veces las búsquedas que "
+"deben utilizar un índice espacial en lugar del indice por defecto, explora "
+"toda la tabla de forma secuencia."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1962
+#, no-c-format
+msgid ""
+"If you find your spatial indexes are not being used (or your attribute "
+"indexes, for that matter) there are a couple things you can do:"
+msgstr ""
+"Si observas que los indices espaciales no se están utilizando (o tus indices "
+"de atributos, en su defecto) hay un par de cosas que puedes hacer:"
+
+#. Tag: para
+#: using_postgis_dataman.xml:1968
+#, no-c-format
+msgid ""
+"Firstly, make sure statistics are gathered about the number and "
+"distributions of values in a table, to provide the query planner with better "
+"information to make decisions around index usage. For PostgreSQL 7.4 "
+"installations and below this is done by running "
+"<command>update_geometry_stats([table_name, column_name])</command> (compute "
+"distribution) and <command>VACUUM ANALYZE [table_name] [column_name]</"
+"command> (compute number of values). Starting with PostgreSQL 8.0 running "
+"<command>VACUUM ANALYZE</command> will do both operations. You should "
+"regularly vacuum your databases anyways -- many PostgreSQL DBAs have "
+"<command>VACUUM</command> run as an off-peak cron job on a regular basis."
+msgstr ""
+"En primer lugar, asegurate de que se recopilan estadísticas sobre el número "
+"y distribución de los valores de una tabla, para proporcionar al planeador "
+"de consultas una mejor información para tomar decisiones en torno a la "
+"utilización de índices. Para instalaciones de PostgreSQL 7.4 y menores, esto "
+"se hace ejecutando <command> update_geometry_stats \n"
+" ([table_name, column_name]) </command> (distribución de cálculo) y "
+"<command>VACUUM ANALYZE [table_name] [column_name]</command> (número de "
+"cómputo de valores). A partir de PostgreSQL 8.0, ejecutando el combado  "
+"<command> VACUUM ANALYZE </command> se ejecutaran ambas operaciones. Debes "
+"ejecutar el comando vacuum regularmente  en tus bases de datos de todos "
+"modos - muchos PostgreSQL DBAs  tienen  la opción de ejecutar "
+"<command>VACUUM </command> como una tarea de cron de menor actividad sobre "
+"una base regular."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1982
+#, no-c-format
+msgid ""
+"If vacuuming does not work, you can force the planner to use the index "
+"information by using the <command>SET ENABLE_SEQSCAN=OFF</command> command. "
+"You should only use this command sparingly, and only on spatially indexed "
+"queries: generally speaking, the planner knows better than you do about when "
+"to use normal B-Tree indexes. Once you have run your query, you should "
+"consider setting <varname>ENABLE_SEQSCAN</varname> back on, so that other "
+"queries will utilize the planner as normal."
+msgstr ""
+"Si ejecutando vacuum no funciona, se puede forzar al planificador para "
+"utilizar la información de índice utilizando el comando <command>SET "
+"ENABLE_SEQSCAN=OFF</command>. Debes utilizar este comando con moderación y "
+"sólo en consultas sobre datos indexados espacialmente: en términos "
+"generales, el planificador sabe más que tu acerca de cuándo utilizar los "
+"índices de B-Tree normales. Una vez que hayas ejecutado la consulta, debes "
+"considerar el restablecimiento de la variable <varname>ENABLE_SEQSCAN</"
+"varname> de nuevo, de manera que las demás consultas utilizarán el "
+"planificador de la forma habitual."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1992
+#, no-c-format
+msgid ""
+"As of version 0.6, it should not be necessary to force the planner to use "
+"the index with <varname>ENABLE_SEQSCAN</varname>."
+msgstr ""
+"Desde la versión 0.6, no debería ser necesario forzar el planificador a "
+"utilizar el índice con <varname>ENABLE_SEQSCAN</varname>."
+
+#. Tag: para
+#: using_postgis_dataman.xml:1999
+#, no-c-format
+msgid ""
+"If you find the planner wrong about the cost of sequential vs index scans "
+"try reducing the value of random_page_cost in postgresql.conf or using SET "
+"random_page_cost=#. Default value for the parameter is 4, try setting it to "
+"1 or 2. Decrementing the value makes the planner more inclined of using "
+"Index scans."
+msgstr ""
+"Si ves que el planificador se equivoca sobre el costo de exploraciones "
+"secuenciales vs índices, intenta reducir el valor de random_page_cost en "
+"postgresql.conf o usando SET random_page_cost = #. El valor por defecto para "
+"el parámetro es de 4, prueba a ajustarlo a 1 o 2. Disminuyendo el valor, "
+"haces que el planificador se incline mas por utilizar exploraciones con "
+"índice."
+
+#. Tag: title
+#: using_postgis_dataman.xml:2010
+#, no-c-format
+msgid "Complex Queries"
+msgstr "Consultas Complejas"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2012
+#, no-c-format
+msgid ""
+"The <emphasis>raison d'etre</emphasis> of spatial database functionality is "
+"performing queries inside the database which would ordinarily require "
+"desktop GIS functionality. Using PostGIS effectively requires knowing what "
+"spatial functions are available, and ensuring that appropriate indexes are "
+"in place to provide good performance. The SRID of 312 used in these examples "
+"is purely for demonstration. You should be using a REAL SRID listed in the "
+"the spatial_ref_sys table and one that matches the projection of your data. "
+"If your data has no spatial reference system specified, you should be "
+"THINKING very thoughtfully why it doesn't and maybe it should. If your "
+"reason is because you are modeling something that doesn't have a geographic "
+"spatial reference system defined such as the internals of a molecule or a "
+"good location on Mars to transport the human race in the event of a nuclear "
+"holocaust, then simply leave out the SRID or make one up and insert it in "
+"the <varname>spatial_ref_sys</varname> table."
+msgstr ""
+"La <emphasis> razón de ser </emphasis > de la funcionalidad de base de datos "
+"espaciales es la de realizar consultas dentro de la base de datos que "
+"normalmente requieren la funcionalidad GIS de escritorio. Usando PostGIS de "
+"forma eficiente requiere saber que funciones espaciales están disponibles, y "
+"asegurar que los índices adecuados estén en su lugar para proporcionar un "
+"buen rendimiento. El SRID 312 utilizado en estos ejemplos es únicamente para "
+"la demostración . Debes estar utilizando un SRID VERDADERO de los enumerados "
+"en la tabla spatial_ref_sys y uno que coincida con la proyección de tus "
+"datos. Si los datos no tiene ningún sistema de referencia espacial "
+"especificado, debes pensar muy cuidadosamente por qué no lo hace y tal vez "
+"debería. Si el motivo se debe a que estás modelando algo que no tiene un "
+"sistema de referencia espacial geográfico definido,  como la parte interna "
+"de una molécula o una buena ubicación en Marte para el transporte de la raza "
+"humana en caso de un holocausto nuclear, entonces simplemente deja de lado "
+"el SRID o inventa uno e insertarlo en la tabla <varname>spatial_ref_sys</"
+"varname >."
+
+#. Tag: title
+#: using_postgis_dataman.xml:2026
+#, no-c-format
+msgid "Taking Advantage of Indexes"
+msgstr "Aprovechando los Indices"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2028
+#, no-c-format
+msgid ""
+"When constructing a query it is important to remember that only the bounding-"
+"box-based operators such as && can take advantage of the GiST "
+"spatial index. Functions such as <varname>ST_Distance()</varname> cannot use "
+"the index to optimize their operation. For example, the following query "
+"would be quite slow on a large table:"
+msgstr ""
+"Conuando construyes una consulta, es importante recordar que solo los "
+"operadores basados en cajas (bounding box) como && pueden aprovechar "
+"los indices espaciales GiST. funciones como <varname>ST_Distance()</varname> "
+"no pueden utilizar el indice para optimizar las operaciones. Por ejemplo, la "
+"consulta siguiente sera algo lenta en una tabla grande:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2035
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_Distance(the_geom, ST_GeomFromText('POINT(100000 200000)', 312)) "
+"< 100"
+msgstr ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_Distance(the_geom, ST_GeomFromText('POINT(100000 200000)', 312)) "
+"< 100"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2037
+#, no-c-format
+msgid ""
+"This query is selecting all the geometries in geom_table which are within "
+"100 units of the point (100000, 200000). It will be slow because it is "
+"calculating the distance between each point in the table and our specified "
+"point, ie. one <varname>ST_Distance()</varname> calculation for each row in "
+"the table. We can avoid this by using the && operator to reduce the "
+"number of distance calculations required:"
+msgstr ""
+"Esta consulta es la selección de todas las geometrías en geom_table que "
+"están a menos de 100 unidades del punto (100000, 200000). La consulta será "
+"lenta porque está calculando la distancia entre cada punto en la tabla y "
+"nuestro punto especificado, es decir, un cálculo <varname> ST_Distance() </"
+"varname> para cada fila de la tabla. Podemos evitar esto mediante el "
+"operador && para reducir el número de cálculos de distancia "
+"requeridos:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2044
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_DWithin(the_geom,  ST_MakeEnvelope(90900, 190900, 100100, "
+"200100,312), 100)"
+msgstr ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_DWithin(the_geom,  ST_MakeEnvelope(90900, 190900, 100100, "
+"200100,312), 100)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2046
+#, no-c-format
+msgid ""
+"This query selects the same geometries, but it does it in a more efficient "
+"way. Assuming there is a GiST index on the_geom, the query planner will "
+"recognize that it can use the index to reduce the number of rows before "
+"calculating the result of the <varname>ST_distance()</varname> function. "
+"Notice that the <varname>ST_MakeEnvelope</varname> geometry which is used in "
+"the && operation is a 200 unit square box centered on the original "
+"point - this is our \"query box\". The && operator uses the index to "
+"quickly reduce the result set down to only those geometries which have "
+"bounding boxes that overlap the \"query box\". Assuming that our query box "
+"is much smaller than the extents of the entire geometry table, this will "
+"drastically reduce the number of distance calculations that need to be done."
+msgstr ""
+"Esta consulta selecciona las mismas geometrías, pero lo hace de una manera "
+"más eficiente. Suponiendo que hay un índice GiST en the_geom, el "
+"planificador de consultas reconocerá que se puede utilizar el índice para "
+"reducir el número de filas antes de calcular el resultado de la función "
+"<varname>ST_Distance()</varname>. Fijate como la geometría de "
+"<varname>ST_MakeEnvelope</varname> que se utiliza en la operación &"
+"&, es una caja cuadrada de 200 unidades centrada en el punto de origen - "
+"esta es nuestra \"caja de búsqueda\" o \"query box\". El operador && "
+"utiliza el índice para reducir rápidamente el conjunto de resultados a sólo "
+"aquellas geometrías que tienen su caja o \"bounding box\" que se superponen "
+"a la \"caja de búsqueda\". Suponiendo que nuestra caja de consulta es mucho "
+"más pequeña que la extensión de toda la tabla de geometría, esto reducirá "
+"drásticamente el número de cálculos de distancia que hay que hacer."
+
+#. Tag: title
+#: using_postgis_dataman.xml:2060
+#, no-c-format
+msgid "Change in Behavior"
+msgstr "Cambio en el Comportamiento"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2062
+#, no-c-format
+msgid ""
+"As of PostGIS 1.3.0, most of the Geometry Relationship Functions, with the "
+"notable exceptions of ST_Disjoint and ST_Relate, include implicit bounding "
+"box overlap operators."
+msgstr ""
+"A partir de PostGIS 1.3.0, la mayoría de las funciones de relaciones entre "
+"Geometría, con las notables excepciones de ST_Disjoint y ST_Relate, incluyen "
+"operadores de superposición de cajas delimitadoras o \"bounding boxes\" "
+"implícitas."
+
+#. Tag: title
+#: using_postgis_dataman.xml:2069
+#, no-c-format
+msgid "Examples of Spatial SQL"
+msgstr "Ejemplos de consultas espaciales SQL"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2071
+#, no-c-format
+msgid ""
+"The examples in this section will make use of two tables, a table of linear "
+"roads, and a table of polygonal municipality boundaries. The table "
+"definitions for the <varname>bc_roads</varname> table is:"
+msgstr ""
+"Los ejemplos en esta sección utilizan dos tablas, una tabla de vías de "
+"comunicación lineales, y una tabla de polígonos con limites municipales. La "
+"definición de la tabla <varname>bc_roads</varname> es:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2075
+#, no-c-format
+msgid ""
+"Column      | Type              | Description\n"
+"------------+-------------------+-------------------\n"
+"gid         | integer           | Unique ID\n"
+"name        | character varying | Road Name\n"
+"the_geom    | geometry          | Location Geometry (Linestring)"
+msgstr ""
+"Column      | Type              | Description\n"
+"------------+-------------------+-------------------\n"
+"gid         | integer           | Unique ID\n"
+"name        | character varying | Road Name\n"
+"the_geom    | geometry          | Location Geometry (Linestring)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2077
+#, no-c-format
+msgid ""
+"The table definition for the <varname>bc_municipality</varname> table is:"
+msgstr "La definición de la tabla <varname>bc_municipality</varname> es:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2080
+#, no-c-format
+msgid ""
+"Column     | Type              | Description\n"
+"-----------+-------------------+-------------------\n"
+"gid        | integer           | Unique ID\n"
+"code       | integer           | Unique ID\n"
+"name       | character varying | City / Town Name\n"
+"the_geom   | geometry          | Location Geometry (Polygon)"
+msgstr ""
+"Column     | Type              | Description\n"
+"-----------+-------------------+-------------------\n"
+"gid        | integer           | Unique ID\n"
+"code       | integer           | Unique ID\n"
+"name       | character varying | City / Town Name\n"
+"the_geom   | geometry          | Location Geometry (Polygon)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2085
+#, no-c-format
+msgid "What is the total length of all roads, expressed in kilometers?"
+msgstr ""
+"¿Cual es la longitud total de todas las carreteras expresadas en kilómetros?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2090
+#, no-c-format
+msgid "You can answer this question with a very simple piece of SQL:"
+msgstr "Puedes contestar a esta pregunta con una consulta SQL muy simple:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2093
+#, no-c-format
+msgid ""
+"SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM bc_roads;\n"
+"\n"
+"km_roads\n"
+"------------------\n"
+"70842.1243039643\n"
+"(1 row)"
+msgstr ""
+"SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM bc_roads;\n"
+"\n"
+"km_roads\n"
+"------------------\n"
+"70842.1243039643\n"
+"(1 row)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2099
+#, no-c-format
+msgid "How large is the city of Prince George, in hectares?"
+msgstr "¿Cual es la superficie de la ciudad Prince George en hectáreas?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2103
+#, no-c-format
+msgid ""
+"This query combines an attribute condition (on the municipality name) with a "
+"spatial calculation (of the area):"
+msgstr ""
+"Esta consulta combina una condición de atributo (en el nombre del municipio) "
+"con un calculo espacial (del area):"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2107
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM bc_municipality\n"
+"WHERE name = 'PRINCE GEORGE';\n"
+"\n"
+"hectares\n"
+"------------------\n"
+"32657.9103824927\n"
+"(1 row)"
+msgstr ""
+"SELECT\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM bc_municipality\n"
+"WHERE name = 'PRINCE GEORGE';\n"
+"\n"
+"hectares\n"
+"------------------\n"
+"32657.9103824927\n"
+"(1 row)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2113
+#, no-c-format
+msgid "What is the largest municipality in the province, by area?"
+msgstr "¿Cual es el municipio con mayor superficie de la provincia?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2118
+#, no-c-format
+msgid ""
+"This query brings a spatial measurement into the query condition. There are "
+"several ways of approaching this problem, but the most efficient is below:"
+msgstr ""
+"Esta consulta incluye un calculo espacial en la condición de la consulta. "
+"Hay varias formas de plantear el problema, pero la mas eficiente es la "
+"siguiente:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2122
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  name,\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM\n"
+"  bc_municipality\n"
+"ORDER BY hectares DESC\n"
+"LIMIT 1;\n"
+"\n"
+"name           | hectares\n"
+"---------------+-----------------\n"
+"TUMBLER RIDGE  | 155020.02556131\n"
+"(1 row)"
+msgstr ""
+"SELECT\n"
+"  name,\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM\n"
+"  bc_municipality\n"
+"ORDER BY hectares DESC\n"
+"LIMIT 1;\n"
+"\n"
+"name           | hectares\n"
+"---------------+-----------------\n"
+"TUMBLER RIDGE  | 155020.02556131\n"
+"(1 row)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2124
+#, no-c-format
+msgid ""
+"Note that in order to answer this query we have to calculate the area of "
+"every polygon. If we were doing this a lot it would make sense to add an "
+"area column to the table that we could separately index for performance. By "
+"ordering the results in a descending direction, and them using the "
+"PostgreSQL \"LIMIT\" command we can easily pick off the largest value "
+"without using an aggregate function like max()."
+msgstr ""
+"Observa que para responder a esta consulta debemos calcular el area de todos "
+"los polígonos. Si estuviéramos haciendo esto mucho tendría sentido crear una "
+"columna de area en la tabla que podríamos indexar por motivos de "
+"rendimiento. Ordenar el resultado de forma descendente, y utilizando el "
+"comando \"LIMIT\" de PostgreSQL podemos extraer el valor mas grande de forma "
+"sencilla sin utilizar una función agregada como max()."
+
+#. Tag: para
+#: using_postgis_dataman.xml:2136
+#, no-c-format
+msgid "What is the length of roads fully contained within each municipality?"
+msgstr ""
+"¿Cuál es la longitud de las carreteras contenidas por completo dentro de "
+"cada municipio?"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2141
+#, no-c-format
+msgid ""
+"This is an example of a \"spatial join\", because we are bringing together "
+"data from two tables (doing a join) but using a spatial interaction "
+"condition (\"contained\") as the join condition rather than the usual "
+"relational approach of joining on a common key:"
+msgstr ""
+"Este es un ejemplo de \"unión espacial\", ya que estamos utilizando datos de "
+"dos tablas (haciendo una unión) pero utilizando una condición de interacción "
+"espacial (\"contained\") como la condición de unión en lugar del enfoque "
+"relacional habitual de unión de  la clave primaria:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2147
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  m.name,\n"
+"  sum(ST_Length(r.the_geom))/1000 as roads_km\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE\n"
+"  ST_Contains(m.the_geom,r.the_geom)\n"
+"GROUP BY m.name\n"
+"ORDER BY roads_km;\n"
+"\n"
+"name                        | roads_km\n"
+"----------------------------+------------------\n"
+"SURREY                      | 1539.47553551242\n"
+"VANCOUVER                   | 1450.33093486576\n"
+"LANGLEY DISTRICT            | 833.793392535662\n"
+"BURNABY                     | 773.769091404338\n"
+"PRINCE GEORGE               | 694.37554369147\n"
+"..."
+msgstr ""
+"SELECT\n"
+"  m.name,\n"
+"  sum(ST_Length(r.the_geom))/1000 as roads_km\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE\n"
+"  ST_Contains(m.the_geom,r.the_geom)\n"
+"GROUP BY m.name\n"
+"ORDER BY roads_km;\n"
+"\n"
+"name                        | roads_km\n"
+"----------------------------+------------------\n"
+"SURREY                      | 1539.47553551242\n"
+"VANCOUVER                   | 1450.33093486576\n"
+"LANGLEY DISTRICT            | 833.793392535662\n"
+"BURNABY                     | 773.769091404338\n"
+"PRINCE GEORGE               | 694.37554369147\n"
+"..."
+
+#. Tag: para
+#: using_postgis_dataman.xml:2149
+#, no-c-format
+msgid ""
+"This query takes a while, because every road in the table is summarized into "
+"the final result (about 250K roads for our particular example table). For "
+"smaller overlays (several thousand records on several hundred) the response "
+"can be very fast."
+msgstr ""
+"Esta consulta toma un tiempo, ya que todas las carreteras de la tabla se "
+"resume en el resultado final (unas 250k carreteras para nuestra tabla del "
+"ejemplo). Para superposiciones mas pequeñas (de algunos cientos o miles de "
+"registros) la respuesta puede ser muy rápida."
+
+#. Tag: para
+#: using_postgis_dataman.xml:2158
+#, no-c-format
+msgid "Create a new table with all the roads within the city of Prince George."
+msgstr "Crear una tabla con todas las carreteras de la ciudad Prince George."
+
+#. Tag: para
+#: using_postgis_dataman.xml:2163
+#, no-c-format
+msgid ""
+"This is an example of an \"overlay\", which takes in two tables and outputs "
+"a new table that consists of spatially clipped or cut resultants. Unlike the "
+"\"spatial join\" demonstrated above, this query actually creates new "
+"geometries. An overlay is like a turbo-charged spatial join, and is useful "
+"for more exact analysis work:"
+msgstr ""
+"Este es un ejemplo de \"superposición\", que tomo dos tablas y extrae una "
+"tabla nueva que contiene un resultado de un recorte espacial. A diferencia "
+"de la \"Unión espacial\" del ejemplo anterior, esta consulta en realidad "
+"crea nuevas geometrías. Una superposición es como una unión espacial \"turbo-"
+"cargada\", y es útil para un trabajo de análisis mas exacto:"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2170
+#, no-c-format
+msgid ""
+"CREATE TABLE pg_roads as\n"
+"SELECT\n"
+"  ST_Intersection(r.the_geom, m.the_geom) AS intersection_geom,\n"
+"  ST_Length(r.the_geom) AS rd_orig_length,\n"
+"  r.*\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE  m.name = 'PRINCE GEORGE' AND ST_Intersects(r.the_geom, m.the_geom);"
+msgstr ""
+"CREATE TABLE pg_roads as\n"
+"SELECT\n"
+"  ST_Intersection(r.the_geom, m.the_geom) AS intersection_geom,\n"
+"  ST_Length(r.the_geom) AS rd_orig_length,\n"
+"  r.*\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE  m.name = 'PRINCE GEORGE' AND ST_Intersects(r.the_geom, m.the_geom);"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2176
+#, no-c-format
+msgid "What is the length in kilometers of \"Douglas St\" in Victoria?"
+msgstr "¿Cual es la longitud en kilómetros de \"Douglas St\" en Victoria?"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2181
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  sum(ST_Length(r.the_geom))/1000 AS kilometers\n"
+"FROM\n"
+"  bc_roads r,\n"
+"  bc_municipality m\n"
+"WHERE  r.name = 'Douglas St' AND m.name = 'VICTORIA'\n"
+"        AND ST_Contains(m.the_geom, r.the_geom) ;\n"
+"\n"
+"kilometers\n"
+"------------------\n"
+"4.89151904172838\n"
+"(1 row)"
+msgstr ""
+"SELECT\n"
+"  sum(ST_Length(r.the_geom))/1000 AS kilometers\n"
+"FROM\n"
+"  bc_roads r,\n"
+"  bc_municipality m\n"
+"WHERE  r.name = 'Douglas St' AND m.name = 'VICTORIA'\n"
+"        AND ST_Contains(m.the_geom, r.the_geom) ;\n"
+"\n"
+"kilometers\n"
+"------------------\n"
+"4.89151904172838\n"
+"(1 row)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:2187
+#, no-c-format
+msgid "What is the largest municipality polygon that has a hole?"
+msgstr "¿Cual es el polígono de municipios mas grande que tiene un agujero?"
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2192
+#, no-c-format
+msgid ""
+"SELECT gid, name, ST_Area(the_geom) AS area\n"
+"FROM bc_municipality\n"
+"WHERE ST_NRings(the_geom) > 1\n"
+"ORDER BY area DESC LIMIT 1;\n"
+"\n"
+"gid  | name         | area\n"
+"-----+--------------+------------------\n"
+"12   | SPALLUMCHEEN | 257374619.430216\n"
+"(1 row)"
+msgstr ""
+"SELECT gid, name, ST_Area(the_geom) AS area\n"
+"FROM bc_municipality\n"
+"WHERE ST_NRings(the_geom) > 1\n"
+"ORDER BY area DESC LIMIT 1;\n"
+"\n"
+"gid  | name         | area\n"
+"-----+--------------+------------------\n"
+"12   | SPALLUMCHEEN | 257374619.430216\n"
+"(1 row)"
+
+#~ msgid ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+#~ msgstr ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+
+#~ msgid ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+#~ msgstr ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+
+#~ msgid ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+#~ msgstr ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+
+#~ msgid ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+#~ msgstr ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+
+#~ msgid ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+#~ msgstr ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+
+#~ msgid ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+#~ msgstr ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+
+#~ msgid ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+#~ msgstr ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+
+#~ msgid ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+#~ msgstr ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+
+#~ msgid ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+#~ msgstr ""
+#~ "<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:"
+#~ "mo> <mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+
+#~ msgid "Using SQL"
+#~ msgstr "Utilizando SQL"
+
+#~ msgid "Using the Loader"
+#~ msgstr "Utilizando el cargador de ficheros Shape"
diff --git a/doc/po/es/using_raster_dataman.xml.po b/doc/po/es/using_raster_dataman.xml.po
new file mode 100644
index 0000000..efc2b01
--- /dev/null
+++ b/doc/po/es/using_raster_dataman.xml.po
@@ -0,0 +1,2235 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# David Martinez Morata, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-02-14 12:37+0000\n"
+"Last-Translator: David Martinez Morata\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/postgis-1/"
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Tag: title
+#: using_raster_dataman.xml:3
+#, no-c-format
+msgid "Raster Data Management, Queries, and Applications"
+msgstr "Gestión, Consulta y Aplicaciones de Datos Raster "
+
+#. Tag: title
+#: using_raster_dataman.xml:5
+#, no-c-format
+msgid "Loading and Creating Rasters"
+msgstr "Cargando y Creando Rasters"
+
+#. Tag: para
+#: using_raster_dataman.xml:6
+#, no-c-format
+msgid ""
+"For most use cases, you will create PostGIS rasters by loading existing "
+"raster files using the packaged <varname>raster2pgsql</varname> raster "
+"loader."
+msgstr ""
+"En la mayoría de casos, crearás rasters PostGIS cargando un fichero raster "
+"utilizando el paquete de carga raster <varname>raster2pgsql</varname>."
+
+#. Tag: title
+#: using_raster_dataman.xml:9
+#, no-c-format
+msgid "Using raster2pgsql to load rasters"
+msgstr "Utilizar el paquete raster2pgsql para cargar rasters"
+
+#. Tag: para
+#: using_raster_dataman.xml:10
+#, no-c-format
+msgid ""
+"The <varname>raster2pgsql</varname> is a raster loader executable that loads "
+"GDAL supported raster formats into sql suitable for loading into a PostGIS "
+"raster table. It is capable of loading folders of raster files as well as "
+"creating overviews of rasters."
+msgstr ""
+"El ejecutable <varname>raster2pgsql</varname> es un cargador de datos raster "
+"que carga formatos raster soportados por GDAL en una consulta sql para "
+"ejecutarla en una tabla PostGIS. Es capaz de cargar carpetas de ficheros "
+"raster y crear previsualizaciones de los rater."
+
+#. Tag: para
+#: using_raster_dataman.xml:13
+#, no-c-format
+msgid ""
+"Since the raster2pgsql is compiled as part of PostGIS most often (unless you "
+"compile your own GDAL library), the raster types supported by the executable "
+"will be the same as those compiled in the GDAL dependency library. To get a "
+"list of raster types your particular raster2pgsql supports use the <varname>-"
+"G</varname> switch. These should be the same as those provided by your "
+"PostGIS install documented here <xref linkend=\"RT_ST_GDALDrivers\"/> if you "
+"are using the same gdal library for both."
+msgstr ""
+"Como raster2pgsql se compila como parte de PostGIS, a menudo (a menos que "
+"compiles tu propia librería GDAL), los tipos de raster que admite el "
+"ejecutable serán los mismos que los compilados en la librería de "
+"dependencias de GDAL. Para obtener una lista de tipos de raster que tu "
+"comando raster2pgsql soporta, utiliza el valor <varname>-G </varname>. Estos "
+"deben ser los mismos que los previstos por tu instalación de  PostGIS, "
+"documentado aquí <xref linkend=\"RT_ST_GDALDrivers\"/> si utilizas la misma "
+"librería GDAL en ambos casos."
+
+#. Tag: para
+#: using_raster_dataman.xml:16
+#, no-c-format
+msgid ""
+"The older version of this tool was a python script. The executable has "
+"replaced the python script. If you still find the need for the Python script "
+"Examples of the python one can be found at <ulink url=\"http://trac.osgeo."
+"org/gdal/wiki/frmts_wtkraster.html\">GDAL PostGIS Raster Driver Usage</"
+"ulink>. Please note that the raster2pgsql python script may not work with "
+"future versions of PostGIS raster and is no longer supported."
+msgstr ""
+"La versión mas antigua de esta herramienta era un script python. El "
+"ejecutable ha reemplazado el script python. Si todavía necesitas Ejemplos "
+"del Script Python del ejecutable en python los puedes encontrar en <ulink "
+"url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">GDAL PostGIS "
+"Raster Driver Usage</ulink>. Fijate que el script python raster2pgsql no "
+"funcionará en versiones futuras de PostGIS raster y no sera soportado."
+
+#. Tag: para
+#: using_raster_dataman.xml:21
+#, no-c-format
+msgid ""
+"When creating overviews of a specific factor from a set of rasters that are "
+"aligned, it is possible for the overviews to not align. Visit <ulink url="
+"\"http://trac.osgeo.org/postgis/ticket/1764\">http://trac.osgeo.org/postgis/"
+"ticket/1764</ulink> for an example where the overviews do not align."
+msgstr ""
+"Cuando creamos previsualizaciones de un factor específico de un conjunto de "
+"rasters que están alineados, es posible que las previsualizaciones no estén "
+"alineadas. Visita <ulink url=\"http://trac.osgeo.org/postgis/ticket/1764\"> "
+"http://trac.osgeo.org/postgis/ticket/1764 </ulink> para un ejemplo donde las "
+"previsualizaciones no se alinean."
+
+#. Tag: para
+#: using_raster_dataman.xml:23
+#, no-c-format
+msgid "EXAMPLE USAGE:"
+msgstr "EJEMPLO DE USO:"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:24
+#, no-c-format
+msgid ""
+"raster2pgsql <varname>raster_options_go_here</varname> <varname>raster_file</"
+"varname> <varname>someschema</varname>.<varname>sometable</varname> > out."
+"sql"
+msgstr ""
+"raster2pgsql <varname>aquí_van_opciones_raster</varname> "
+"<varname>fichero_raster</varname> <varname>nombre_esquema</varname>."
+"<varname>nombre_tabla</varname> > salida.sql"
+
+#. Tag: term
+#: using_raster_dataman.xml:28
+#, no-c-format
+msgid "<term>-?</term>"
+msgstr "<term>-?</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:30
+#, no-c-format
+msgid ""
+"Display help screen. Help will also display if you don't pass in any "
+"arguments."
+msgstr ""
+"Muestra la pantalla de ayuda. También se mostrará la ayuda si no incluyes "
+"ningún argumento."
+
+#. Tag: term
+#: using_raster_dataman.xml:37
+#, no-c-format
+msgid "<term>-G</term>"
+msgstr "<term>-G</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:39
+#, no-c-format
+msgid "Print the supported raster formats."
+msgstr "Imprime los formatos raster soportados."
+
+#. Tag: term
+#: using_raster_dataman.xml:46
+#, no-c-format
+msgid "(c|a|d|p) These are mutually exclusive options:"
+msgstr "(c|a|d|p) Estas opciones son exclusivas de forma mutua:"
+
+#. Tag: term
+#: using_raster_dataman.xml:51
+#, no-c-format
+msgid "<term>-c</term>"
+msgstr "<term>-c</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:53
+#, no-c-format
+msgid ""
+"Create new table and populate it with raster(s), <emphasis>this is the "
+"default mode</emphasis>"
+msgstr ""
+"Crea una nueva tabla y la rellena con el raster(s). <emphasis>Esta es la "
+"opción por defecto.</emphasis>"
+
+#. Tag: term
+#: using_raster_dataman.xml:60
+#, no-c-format
+msgid "<term>-a</term>"
+msgstr "<term>-a</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:62
+#, no-c-format
+msgid "Append raster(s) to an existing table."
+msgstr "Añade el/los raster/s a una tabla existente."
+
+#. Tag: term
+#: using_raster_dataman.xml:69
+#, no-c-format
+msgid "<term>-d</term>"
+msgstr "<term>-d</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:71
+#, no-c-format
+msgid "Drop table, create new one and populate it with raster(s)"
+msgstr "Borra la tabla, crea una nueva y la rellena con el/los raster(s)"
+
+#. Tag: term
+#: using_raster_dataman.xml:78
+#, no-c-format
+msgid "<term>-p</term>"
+msgstr "<term>-p</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:80
+#, no-c-format
+msgid "Prepare mode, only create the table."
+msgstr "Modo preparación, solo crea la tabla."
+
+#. Tag: term
+#: using_raster_dataman.xml:91
+#, no-c-format
+msgid ""
+"Raster processing: Applying constraints for proper registering in raster "
+"catalogs"
+msgstr ""
+"Procesamiento Raster: Añade condiciones para registrar de forma limpia en el "
+"catalogo raster"
+
+#. Tag: term
+#: using_raster_dataman.xml:96
+#, no-c-format
+msgid "<term>-C</term>"
+msgstr "<term>-C</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:98
+#, no-c-format
+msgid ""
+"Apply raster constraints -- srid, pixelsize etc. to ensure raster is "
+"properly registered in <varname>raster_columns</varname> view."
+msgstr ""
+"Añade restricciones raster --srid, tamaño del pixel, etc. para asegurar que "
+"el raster es registrado de forma correcta en la vista "
+"<varname>raster_columns</varname>."
+
+#. Tag: term
+#: using_raster_dataman.xml:104
+#, no-c-format
+msgid "<term>-x</term>"
+msgstr "<term>-x</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:106
+#, no-c-format
+msgid ""
+"Disable setting the max extent constraint. Only applied if -C flag is also "
+"used."
+msgstr ""
+"Desactiva la opción de restricción de maxima extensión. Solo se aplica si la "
+"opción -C esta en uso."
+
+#. Tag: term
+#: using_raster_dataman.xml:112
+#, no-c-format
+msgid "<term>-r</term>"
+msgstr "<term>-r</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Set the constraints (spatially unique and coverage tile) for regular "
+"blocking. Only applied if -C flag is also used."
+msgstr ""
+"Selecciona la restricción de bloque regular. Solo se aplica si la opción -C "
+"esta en uso."
+
+#. Tag: term
+#: using_raster_dataman.xml:125
+#, no-c-format
+msgid ""
+"Raster processing: Optional parameters used to manipulate input raster "
+"dataset"
+msgstr ""
+"Procesado Raster: Parámetros opcionales utilizados para manipular la entrada "
+"de datos raster"
+
+#. Tag: term
+#: using_raster_dataman.xml:130
+#, no-c-format
+msgid "-s <SRID>"
+msgstr "-s <SRID>"
+
+#. Tag: para
+#: using_raster_dataman.xml:132
+#, no-c-format
+msgid ""
+"Assign output raster with specified SRID. If not provided or is zero, "
+"raster's metadata will be checked to determine an appropriate SRID."
+msgstr ""
+"Asigna un SRID especifico al raster de salida. Si no se especifica o es "
+"igual a 0, se comprueban los metadatos del raster para determinar un SRID "
+"apropiado. "
+
+#. Tag: term
+#: using_raster_dataman.xml:139
+#, no-c-format
+msgid "-b BAND"
+msgstr "-b BAND"
+
+#. Tag: para
+#: using_raster_dataman.xml:141
+#, no-c-format
+msgid ""
+"Index (1-based) of band to extract from raster. For more than one band "
+"index, separate with comma (,). If unspecified, all bands of raster will be "
+"extracted."
+msgstr ""
+"Indice (en base 1) de la banda para extraer del raster. Para indices de mas "
+"de una banda, separalo con comas(,). Si no se especifica, se extraerán todas "
+"las bandas del raster."
+
+#. Tag: term
+#: using_raster_dataman.xml:149
+#, no-c-format
+msgid "-t TILE_SIZE"
+msgstr "-t TILE_SIZE"
+
+#. Tag: para
+#: using_raster_dataman.xml:151
+#, fuzzy, no-c-format
+msgid ""
+"Cut raster into tiles to be inserted one per table row. <varname>TILE_SIZE</"
+"varname> is expressed as WIDTHxHEIGHT or set to the value \"auto\" to allow "
+"the loader to compute an appropriate tile size using the first raster and "
+"applied to all rasters."
+msgstr ""
+"Corta el raster en teselas para insertar una por columna en la tabla. "
+"<varname>TILE_SIZE</varname> se expresa como  ANCHOxALTO."
+
+#. Tag: term
+#: using_raster_dataman.xml:158
+#, no-c-format
+msgid "-R, --register"
+msgstr "-R, --register"
+
+#. Tag: para
+#: using_raster_dataman.xml:160
+#, no-c-format
+msgid "Register the raster as a filesystem (out-db) raster."
+msgstr "Registra el raster como un fichero de sistema (out-db) raster."
+
+#. Tag: para
+#: using_raster_dataman.xml:161
+#, no-c-format
+msgid ""
+"Only the metadata of the raster and path location to the raster is stored in "
+"the database (not the pixels)."
+msgstr ""
+"Solo los metadatos del raster y el camino de acceso al raster se almacenan "
+"en la base de datos (no los pixeles)."
+
+#. Tag: term
+#: using_raster_dataman.xml:166
+#, no-c-format
+msgid "-l <varname>OVERVIEW_FACTOR</varname>"
+msgstr "-l <varname>OVERVIEW_FACTOR</varname>"
+
+#. Tag: para
+#: using_raster_dataman.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"Create overview of the raster. For more than one factor, separate with "
+"comma(,). Overview table name follows the pattern o_<varname>overview "
+"factor</varname>_<varname>table</varname>, where <varname>overview factor</"
+"varname> is a placeholder for numerical overview factor and <varname>table</"
+"varname> is replaced with the base table name. Created overview is stored in "
+"the database and is not affected by -R. Note that your generated sql file "
+"will contain both the main table and overview tables."
+msgstr ""
+"Crea previsualizaciones del raster. Para mas de un factor, separamos con "
+"comas(,). El nombre de la tabla de previsualizaciones sigue el siguiente "
+"patrón o_<varname>factor de previsualización</varname>_<varname>tabla</"
+"varname>. Las previsualizaciones se almacenan en la base de datos no les "
+"afecta el uso de -R. Observa que tu fichero sql generado, contendrá la tabla "
+"principal y las tablas de previsualizaciones."
+
+#. Tag: term
+#: using_raster_dataman.xml:175
+#, no-c-format
+msgid "-N <varname>NODATA</varname>"
+msgstr "-N <varname>NODATA</varname>"
+
+#. Tag: para
+#: using_raster_dataman.xml:177
+#, no-c-format
+msgid "NODATA value to use on bands without a NODATA value."
+msgstr "Valor NODATA para utilizar en bandas con valores NODATA."
+
+#. Tag: term
+#: using_raster_dataman.xml:189
+#, no-c-format
+msgid "Optional parameters used to manipulate database objects"
+msgstr "Parametros opcionales para manipular objetos de la base de datos"
+
+#. Tag: term
+#: using_raster_dataman.xml:194
+#, no-c-format
+msgid "<term>-q</term>"
+msgstr "<term>-q</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:196
+#, no-c-format
+msgid "Wrap PostgreSQL identifiers in quotes"
+msgstr "Identificadores Wrap de PostgreSQL entre comillas"
+
+#. Tag: term
+#: using_raster_dataman.xml:201
+#, no-c-format
+msgid "-f COLUMN"
+msgstr "-f COLUMN"
+
+#. Tag: para
+#: using_raster_dataman.xml:203
+#, no-c-format
+msgid "Specify name of destination raster column, default is 'rast'"
+msgstr ""
+"Especifica el nombre de la columna raster de destino , por defecto es 'rast'"
+
+#. Tag: term
+#: using_raster_dataman.xml:209
+#, no-c-format
+msgid "<term>-F</term>"
+msgstr "<term>-F</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:211
+#, no-c-format
+msgid "Add a column with the name of the file"
+msgstr "Añade una columna con el nombre del fichero"
+
+#. Tag: term
+#: using_raster_dataman.xml:216
+#, no-c-format
+msgid "<term>-I</term>"
+msgstr "<term>-I</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:218
+#, no-c-format
+msgid "Create a GiST index on the raster column."
+msgstr "Crea un indice GiST de la columna raster."
+
+#. Tag: term
+#: using_raster_dataman.xml:225
+#, no-c-format
+msgid "<term>-M</term>"
+msgstr "<term>-M</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:227
+#, no-c-format
+msgid "Vacuum analyze the raster table."
+msgstr "Ejecuta Vacuum analyze en la tabla raster."
+
+#. Tag: term
+#: using_raster_dataman.xml:234
+#, no-c-format
+msgid "-T <varname>tablespace</varname>"
+msgstr "-T <varname>tablespace</varname>"
+
+#. Tag: para
+#: using_raster_dataman.xml:236
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table. Note that indices (including the "
+"primary key) will still use the default tablespace unless the -X flag is "
+"also used."
+msgstr ""
+"Especifica el \"tablespace\" de la nueva tabla. Observa que los indices "
+"(incluyendo el de clave primaria) seguirá utilizando en \"tablespace\" a "
+"menos que se utilice también la opción -X."
+
+#. Tag: term
+#: using_raster_dataman.xml:245
+#, no-c-format
+msgid "-X <varname>tablespace</varname>"
+msgstr "-X <varname>tablespace</varname>"
+
+#. Tag: para
+#: using_raster_dataman.xml:247
+#, no-c-format
+msgid ""
+"Specify the tablespace for the table's new index. This applies to the "
+"primary key and the spatial index if the -I flag is used."
+msgstr ""
+"Especifica el \"tablespace\" para el nuevo indice de la tabla. Esto se "
+"aplica a los indices de claves primarias y indices espaciales si la opción -"
+"I se esta usando."
+
+#. Tag: term
+#: using_raster_dataman.xml:256
+#, no-c-format
+msgid "<term>-Y</term>"
+msgstr "<term>-Y</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:258
+#, no-c-format
+msgid "Use copy statements instead of insert statements."
+msgstr "Utiliza el comando copia en lugar del comando insertar."
+
+#. Tag: term
+#: using_raster_dataman.xml:269
+#, no-c-format
+msgid "<term>-e</term>"
+msgstr "<term>-e</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:270
+#, no-c-format
+msgid "Execute each statement individually, do not use a transaction."
+msgstr "Ejecuta cada comando de forma individual, no utiliza transacciones."
+
+#. Tag: term
+#: using_raster_dataman.xml:274
+#, no-c-format
+msgid "-E ENDIAN"
+msgstr "-E ENDIAN"
+
+#. Tag: para
+#: using_raster_dataman.xml:275
+#, no-c-format
+msgid ""
+"Control endianness of generated binary output of raster; specify 0 for XDR "
+"and 1 for NDR (default); only NDR output is supported now"
+msgstr ""
+"Controla el formato en el que se almacenan los datos de más de un byte "
+"(endianness) de la salida binaria generada del raster; especifica 0 para XDR "
+"y 1 para NDR(por defecto); solo las salidas NDR están soportadas actualmente."
+
+#. Tag: term
+#: using_raster_dataman.xml:279
+#, no-c-format
+msgid "-V <varname>version</varname>"
+msgstr "-V <varname>versión</varname>"
+
+#. Tag: para
+#: using_raster_dataman.xml:280
+#, no-c-format
+msgid ""
+"Specify version of output format. Default is 0. Only 0 is supported at this "
+"time."
+msgstr ""
+"Especifica la version del formato de salida. Por defecto es 0. Solo 0 esta "
+"soportado actualmente."
+
+#. Tag: para
+#: using_raster_dataman.xml:283
+#, no-c-format
+msgid ""
+"An example session using the loader to create an input file and uploading it "
+"chunked in 100x100 tiles might look like this:"
+msgstr ""
+"Un ejemplo de sesión utilizando el cargador para crear un fichero de entrada "
+"y cargarlo cortado en teselas de 100x100 debería parecerse a:"
+
+#. Tag: para
+#: using_raster_dataman.xml:284
+#, no-c-format
+msgid ""
+"You can leave the schema name out e.g <varname>demelevation</varname> "
+"instead of <varname>public.demelevation</varname> and the raster table will "
+"be created in the default schema of the database or user"
+msgstr ""
+"Puedes omitir el nombre del esquema, por ejemplo  <varname>demelevation</"
+"varname> en vez de <varname>public.demelevation</varname> creará la tabla "
+"raster en el esquema por defecto de la base de datos del usuario."
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:286
+#, fuzzy, no-c-format
+msgid ""
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
+"sql\n"
+"psql -d gisdb -f elev.sql"
+msgstr ""
+"raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
+"sql\n"
+"psql -d gisdb -f elev.sql"
+
+#. Tag: para
+#: using_raster_dataman.xml:288
+#, no-c-format
+msgid "A conversion and upload can be done all in one step using UNIX pipes:"
+msgstr ""
+"Se puede hacer una conversion y carga en un solo paso con el caracter \"|\" "
+"en sistemas UNIX:"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:290
+#, fuzzy, no-c-format
+msgid ""
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
+"-d gisdb"
+msgstr ""
+"raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
+"-d gisdb"
+
+#. Tag: para
+#: using_raster_dataman.xml:292
+#, no-c-format
+msgid ""
+"Load rasters Massachusetts state plane meters aerial tiles into a schema "
+"called <varname>aerial</varname> and create a full view, 2 and 4 level "
+"overview tables, use copy mode for inserting (no intermediary file just "
+"straight to db), and -e don't force everything in a transaction (good if you "
+"want to see data in tables right away without waiting). Break up the rasters "
+"into 128x128 pixel tiles and apply raster constraints. Use copy mode instead "
+"of table insert. (-F) Include a field called filename to hold the name of "
+"the file the tiles were cut from."
+msgstr ""
+"Carga las teselas planas métricas aéreas de los Raster del estado "
+"Massachusetts  en un esquema denominado <varname>aerial</varname> y crear "
+"una vista completa, y previsualizaciones de niveles 2 y 4, utiliza el modo "
+"de copia para insertar (sin archivo intermedio sólo directamente a db), y -e "
+"no fuerces todo en una transacción (bueno si quieres ver datos en tablas de "
+"inmediato sin tener que esperar). Divide los raster en teselas de 128x128 "
+"píxeles y aplica las restricciones de raster. Utiliza el modo copia en lugar "
+"de insertar en la tabla.(-F) Incluye un campo llamado nombre de archivo para "
+"contener el nombre del archivo de las teselas de donde proceden los cortes."
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:294
+#, no-c-format
+msgid ""
+"raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128  -l 2,4 bostonaerials2008/*."
+"jpg aerials.boston | psql -U postgres -d gisdb -h localhost -p 5432"
+msgstr ""
+"raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128  -l 2,4 bostonaerials2008/*."
+"jpg aerials.boston | psql -U postgres -d gisdb -h localhost -p 5432"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:296
+#, no-c-format
+msgid ""
+"--get a list of raster types supported:\n"
+"raster2pgsql -G"
+msgstr ""
+"-- obtener una lista de los tipos de raster soportados:\n"
+"raster2pgsql -G"
+
+#. Tag: para
+#: using_raster_dataman.xml:298
+#, no-c-format
+msgid "The -G commands outputs a list something like"
+msgstr "El comando -G extrae una lista similar a esta:"
+
+#. Tag: screen
+#: using_raster_dataman.xml:299
+#, no-c-format
+msgid ""
+"Available GDAL raster formats:\n"
+"  Virtual Raster\n"
+"  GeoTIFF\n"
+"  National Imagery Transmission Format\n"
+"  Raster Product Format TOC format\n"
+"  ECRG TOC format\n"
+"  Erdas Imagine Images (.img)\n"
+"  CEOS SAR Image\n"
+"  CEOS Image\n"
+"  JAXA PALSAR Product Reader (Level 1.1/1.5)\n"
+"  Ground-based SAR Applications Testbed File Format (.gff)\n"
+"  ELAS\n"
+"  Arc/Info Binary Grid\n"
+"  Arc/Info ASCII Grid\n"
+"  GRASS ASCII Grid\n"
+"  SDTS Raster\n"
+"  DTED Elevation Raster\n"
+"  Portable Network Graphics\n"
+"  JPEG JFIF\n"
+"  In Memory Raster\n"
+"  Japanese DEM (.mem)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Envisat Image Format\n"
+"  Maptech BSB Nautical Charts\n"
+"  X11 PixMap Format\n"
+"  MS Windows Device Independent Bitmap\n"
+"  SPOT DIMAP\n"
+"  AirSAR Polarimetric Image\n"
+"  RadarSat 2 XML Product\n"
+"  PCIDSK Database File\n"
+"  PCRaster Raster File\n"
+"  ILWIS Raster Map\n"
+"  SGI Image File Format 1.0\n"
+"  SRTMHGT File Format\n"
+"  Leveller heightfield\n"
+"  Terragen heightfield\n"
+"  USGS Astrogeology ISIS cube (Version 3)\n"
+"  USGS Astrogeology ISIS cube (Version 2)\n"
+"  NASA Planetary Data System\n"
+"  EarthWatch .TIL\n"
+"  ERMapper .ers Labelled\n"
+"  NOAA Polar Orbiter Level 1b Data Set\n"
+"  FIT Image\n"
+"  GRIdded Binary (.grb)\n"
+"  Raster Matrix Format\n"
+"  EUMETSAT Archive native (.nat)\n"
+"  Idrisi Raster A.1\n"
+"  Intergraph Raster\n"
+"  Golden Software ASCII Grid (.grd)\n"
+"  Golden Software Binary Grid (.grd)\n"
+"  Golden Software 7 Binary Grid (.grd)\n"
+"  COSAR Annotated Binary Matrix (TerraSAR-X)\n"
+"  TerraSAR-X Product\n"
+"  DRDC COASP SAR Processor Raster\n"
+"  R Object Data Store\n"
+"  Portable Pixmap Format (netpbm)\n"
+"  USGS DOQ (Old Style)\n"
+"  USGS DOQ (New Style)\n"
+"  ENVI .hdr Labelled\n"
+"  ESRI .hdr Labelled\n"
+"  Generic Binary (.hdr Labelled)\n"
+"  PCI .aux Labelled\n"
+"  Vexcel MFF Raster\n"
+"  Vexcel MFF2 (HKV) Raster\n"
+"  Fuji BAS Scanner Image\n"
+"  GSC Geogrid\n"
+"  EOSAT FAST Format\n"
+"  VTP .bt (Binary Terrain) 1.3 Format\n"
+"  Erdas .LAN/.GIS\n"
+"  Convair PolGASP\n"
+"  Image Data and Analysis\n"
+"  NLAPS Data Format\n"
+"  Erdas Imagine Raw\n"
+"  DIPEx\n"
+"  FARSITE v.4 Landscape File (.lcp)\n"
+"  NOAA Vertical Datum .GTX\n"
+"  NADCON .los/.las Datum Grid Shift\n"
+"  NTv2 Datum Grid Shift\n"
+"  ACE2\n"
+"  Snow Data Assimilation System\n"
+"  Swedish Grid RIK (.rik)\n"
+"  USGS Optional ASCII DEM (and CDED)\n"
+"  GeoSoft Grid Exchange Format\n"
+"  Northwood Numeric Grid Format .grd/.tab\n"
+"  Northwood Classified Grid Format .grc/.tab\n"
+"  ARC Digitized Raster Graphics\n"
+"  Standard Raster Product (ASRP/USRP)\n"
+"  Magellan topo (.blx)\n"
+"  SAGA GIS Binary Grid (.sdat)\n"
+"  Kml Super Overlay\n"
+"  ASCII Gridded XYZ\n"
+"  HF2/HFZ heightfield raster\n"
+"  OziExplorer Image File\n"
+"  USGS LULC Composite Theme Grid\n"
+"  Arc/Info Export E00 GRID\n"
+"  ZMap Plus Grid\n"
+"  NOAA NGS Geoid Height Grids"
+msgstr ""
+"Available GDAL raster formats:\n"
+"  Virtual Raster\n"
+"  GeoTIFF\n"
+"  National Imagery Transmission Format\n"
+"  Raster Product Format TOC format\n"
+"  ECRG TOC format\n"
+"  Erdas Imagine Images (.img)\n"
+"  CEOS SAR Image\n"
+"  CEOS Image\n"
+"  JAXA PALSAR Product Reader (Level 1.1/1.5)\n"
+"  Ground-based SAR Applications Testbed File Format (.gff)\n"
+"  ELAS\n"
+"  Arc/Info Binary Grid\n"
+"  Arc/Info ASCII Grid\n"
+"  GRASS ASCII Grid\n"
+"  SDTS Raster\n"
+"  DTED Elevation Raster\n"
+"  Portable Network Graphics\n"
+"  JPEG JFIF\n"
+"  In Memory Raster\n"
+"  Japanese DEM (.mem)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Envisat Image Format\n"
+"  Maptech BSB Nautical Charts\n"
+"  X11 PixMap Format\n"
+"  MS Windows Device Independent Bitmap\n"
+"  SPOT DIMAP\n"
+"  AirSAR Polarimetric Image\n"
+"  RadarSat 2 XML Product\n"
+"  PCIDSK Database File\n"
+"  PCRaster Raster File\n"
+"  ILWIS Raster Map\n"
+"  SGI Image File Format 1.0\n"
+"  SRTMHGT File Format\n"
+"  Leveller heightfield\n"
+"  Terragen heightfield\n"
+"  USGS Astrogeology ISIS cube (Version 3)\n"
+"  USGS Astrogeology ISIS cube (Version 2)\n"
+"  NASA Planetary Data System\n"
+"  EarthWatch .TIL\n"
+"  ERMapper .ers Labelled\n"
+"  NOAA Polar Orbiter Level 1b Data Set\n"
+"  FIT Image\n"
+"  GRIdded Binary (.grb)\n"
+"  Raster Matrix Format\n"
+"  EUMETSAT Archive native (.nat)\n"
+"  Idrisi Raster A.1\n"
+"  Intergraph Raster\n"
+"  Golden Software ASCII Grid (.grd)\n"
+"  Golden Software Binary Grid (.grd)\n"
+"  Golden Software 7 Binary Grid (.grd)\n"
+"  COSAR Annotated Binary Matrix (TerraSAR-X)\n"
+"  TerraSAR-X Product\n"
+"  DRDC COASP SAR Processor Raster\n"
+"  R Object Data Store\n"
+"  Portable Pixmap Format (netpbm)\n"
+"  USGS DOQ (Old Style)\n"
+"  USGS DOQ (New Style)\n"
+"  ENVI .hdr Labelled\n"
+"  ESRI .hdr Labelled\n"
+"  Generic Binary (.hdr Labelled)\n"
+"  PCI .aux Labelled\n"
+"  Vexcel MFF Raster\n"
+"  Vexcel MFF2 (HKV) Raster\n"
+"  Fuji BAS Scanner Image\n"
+"  GSC Geogrid\n"
+"  EOSAT FAST Format\n"
+"  VTP .bt (Binary Terrain) 1.3 Format\n"
+"  Erdas .LAN/.GIS\n"
+"  Convair PolGASP\n"
+"  Image Data and Analysis\n"
+"  NLAPS Data Format\n"
+"  Erdas Imagine Raw\n"
+"  DIPEx\n"
+"  FARSITE v.4 Landscape File (.lcp)\n"
+"  NOAA Vertical Datum .GTX\n"
+"  NADCON .los/.las Datum Grid Shift\n"
+"  NTv2 Datum Grid Shift\n"
+"  ACE2\n"
+"  Snow Data Assimilation System\n"
+"  Swedish Grid RIK (.rik)\n"
+"  USGS Optional ASCII DEM (and CDED)\n"
+"  GeoSoft Grid Exchange Format\n"
+"  Northwood Numeric Grid Format .grd/.tab\n"
+"  Northwood Classified Grid Format .grc/.tab\n"
+"  ARC Digitized Raster Graphics\n"
+"  Standard Raster Product (ASRP/USRP)\n"
+"  Magellan topo (.blx)\n"
+"  SAGA GIS Binary Grid (.sdat)\n"
+"  Kml Super Overlay\n"
+"  ASCII Gridded XYZ\n"
+"  HF2/HFZ heightfield raster\n"
+"  OziExplorer Image File\n"
+"  USGS LULC Composite Theme Grid\n"
+"  Arc/Info Export E00 GRID\n"
+"  ZMap Plus Grid\n"
+"  NOAA NGS Geoid Height Grids"
+
+#. Tag: title
+#: using_raster_dataman.xml:302
+#, no-c-format
+msgid "Creating rasters using PostGIS raster functions"
+msgstr "Crear rastrees utilizando las funciones raster de PostGIS"
+
+#. Tag: para
+#: using_raster_dataman.xml:303
+#, no-c-format
+msgid ""
+"On many occasions, you'll want to create rasters and raster tables right in "
+"the database. There are a plethora of functions to do that. The general "
+"steps to follow."
+msgstr ""
+"En muchas ocasiones, querrás crear tablas raster en la base de datos. "
+"Existen una gran cantidad de funciones para hacerlo. Los pasos generales a "
+"seguir."
+
+#. Tag: para
+#: using_raster_dataman.xml:305
+#, no-c-format
+msgid ""
+"Create a table with a raster column to hold the new raster records which can "
+"be accomplished with:"
+msgstr ""
+"Crear una tabla con una columna raster para almacenar los nuevos registros "
+"raster se puede hacer de la siguiente manera:"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:306
+#, no-c-format
+msgid "CREATE TABLE myrasters(rid serial primary key, rast raster);"
+msgstr "CREATE TABLE myrasters(rid serial primary key, rast raster);"
+
+#. Tag: para
+#: using_raster_dataman.xml:309
+#, no-c-format
+msgid ""
+"There are many functions to help with that goal. If you are creating rasters "
+"not as a derivative of other rasters, you will want to start with: <xref "
+"linkend=\"RT_ST_MakeEmptyRaster\"/>, followed by <xref linkend="
+"\"RT_ST_AddBand\"/>"
+msgstr ""
+"Existen muchas funciones de ayuda. Si no estas creando rasters con derivados "
+"de otro raster, entonces deberías comenzar con: <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>, seguido de <xref linkend=\"RT_ST_AddBand\"/>"
+
+#. Tag: para
+#: using_raster_dataman.xml:311
+#, no-c-format
+msgid ""
+"You can also create rasters from geometries. To achieve that you'll want to "
+"use <xref linkend=\"RT_ST_AsRaster\"/> perhaps accompanied with other "
+"functions such as <xref linkend=\"RT_ST_Union\"/> or <xref linkend="
+"\"RT_ST_MapAlgebraFct2\"/> or any of the family of other map algebra "
+"functions."
+msgstr ""
+"También puedes crear rasters a partir de geometrias. Para conseguir esto "
+"deberás utilizar <xref linkend=\"RT_ST_AsRaster\"/> quizás acompañado de "
+"otras funciones como <xref linkend=\"RT_ST_Union\"/> o <xref linkend="
+"\"RT_ST_MapAlgebraFct2\"/> o cualquier otra de la familia de funciones de "
+"álgebra de mapas."
+
+#. Tag: para
+#: using_raster_dataman.xml:313
+#, no-c-format
+msgid ""
+"There are even many more options for creating new raster tables from "
+"existing tables. For example you can create a raster table in a different "
+"projection from an existing one using <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+"Incluso hay muchas más opciones para crear nuevas tablas raster a partir de "
+"las tablas existentes. Por ejemplo, puede crear una tabla raster en una "
+"proyección diferente de una existente utilizando <xref linkend="
+"\"RT_ST_Transform\"/>"
+
+#. Tag: para
+#: using_raster_dataman.xml:315
+#, no-c-format
+msgid ""
+"Once you are done populating your table initially, you'll want to create a "
+"spatial index on the raster column with something like:"
+msgstr ""
+"Una vez que hayas terminado de llenar la tabla, tendrás que crear un índice "
+"espacial en la columna raster con algo similar a:"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:316
+#, no-c-format
+msgid ""
+"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING "
+"gist( ST_ConvexHull(rast) );"
+msgstr ""
+"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING "
+"gist( ST_ConvexHull(rast) );"
+
+#. Tag: para
+#: using_raster_dataman.xml:317
+#, no-c-format
+msgid ""
+"Note the use of <xref linkend=\"RT_ST_ConvexHull\"/> since most raster "
+"operators are based on the convex hull of the rasters."
+msgstr ""
+"Observa que utilizamos <xref linkend=\"RT_ST_ConvexHull\"/> ya que muchas de "
+"las operaciones raster se basan en la envolvente convexa del raster."
+
+#. Tag: para
+#: using_raster_dataman.xml:318
+#, no-c-format
+msgid ""
+"Pre-2.0 versions of PostGIS raster were based on the envelop rather than the "
+"convex hull. For the spatial indexes to work properly you'll need to drop "
+"those and replace with convex hull based index."
+msgstr ""
+"En versiones anteriores a PostGIS 2.0 los raster se basaban en la envolvente "
+"y no en la envolvente convexa. Para que los indices espaciales funcionen "
+"correctamente necesitaras borrarlos y reemplazarlos por los indices basados "
+"en la envolvente convexa."
+
+#. Tag: para
+#: using_raster_dataman.xml:319
+#, no-c-format
+msgid ""
+"Apply raster constraints using <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+"Aplica las restricciones raster con <xref linkend=\"RT_AddRasterConstraints"
+"\"/>"
+
+#. Tag: title
+#: using_raster_dataman.xml:324
+#, no-c-format
+msgid "Raster Catalogs"
+msgstr "Catalogos raster"
+
+#. Tag: para
+#: using_raster_dataman.xml:325
+#, no-c-format
+msgid ""
+"There are two raster catalog views that come packaged with PostGIS. Both "
+"views utilize information embedded in the constraints of the raster tables. "
+"As a result the catalog views are always consistent with the raster data in "
+"the tables since the constraints are enforced."
+msgstr ""
+"Existen dos vistas de catalogo raster que vienen en el paquete PostGIS. "
+"Ambas vistas utilizan información de las restricciones de las tablas raster. "
+"Como resultado, las vistas de catálogo tienen siempre consistencia con los "
+"datos raster de las tablas mientras que las restricciones son reforzadas."
+
+#. Tag: para
+#: using_raster_dataman.xml:329
+#, no-c-format
+msgid ""
+"<varname>raster_columns</varname> this view catalogs all the raster table "
+"columns in your database."
+msgstr ""
+"La vista <varname>raster_columns</varname> cataloga todas las columnas "
+"raster  de todas las tablas de la base de datos."
+
+#. Tag: para
+#: using_raster_dataman.xml:332
+#, no-c-format
+msgid ""
+"<varname>raster_overviews</varname> this view catalogs all the raster table "
+"columns in your database that serve as overviews for a finer grained table. "
+"Tables of this type are generated when you use the <varname>-l</varname> "
+"switch during load."
+msgstr ""
+"La vista <varname>raster_overviews</varname> cataloga todas las columnas "
+"raster de las tablas de la base de datos que sirven como previsualizaciones "
+"de tablas de grano más fino. Las tablas de este tipo se generan cuando "
+"utilizas la opción <varname>-l</varname> durante la carga."
+
+#. Tag: title
+#: using_raster_dataman.xml:336
+#, no-c-format
+msgid "Raster Columns Catalog"
+msgstr "Catalogo de columnas raster"
+
+#. Tag: para
+#: using_raster_dataman.xml:337
+#, no-c-format
+msgid ""
+"The <varname>raster_columns</varname> is a catalog of all raster table "
+"columns in your database that are of type raster. It is a view utilizing the "
+"constraints on the tables so the information is always consistent even if "
+"you restore one raster table from a backup of another database. The "
+"following columns exist in the <varname>raster_columns</varname> catalog."
+msgstr ""
+"El catálogo <varname>raster_columns</varname> es un catálogo de todas las "
+"columnas de la tablas raster en la base de datos que son de tipo raster. Es "
+"una vista que utiliza las restricciones de las tablas por lo que la "
+"información es siempre consistente, incluso si se restaura una tabla raster "
+"de una copia de seguridad de otra base de datos. Existen las siguientes "
+"columnas en el catálogo <varname>raster_columns</varname>."
+
+#. Tag: para
+#: using_raster_dataman.xml:339
+#, no-c-format
+msgid ""
+"If you created your tables not with the loader or forgot to specify the "
+"<varname>-C</varname> flag during load, you can enforce the constraints "
+"after the fact using <xref linkend=\"RT_AddRasterConstraints\"/> so that the "
+"<varname>raster_columns</varname> catalog registers the common information "
+"about your raster tiles."
+msgstr ""
+"Si has creado tus tablas sin el cargador o has olvidado especificar la "
+"variable <varname>-C</varname> del comando de carga durante la carga, puedes "
+"hacer cumplir las restricciones por defecto utilizando <xref linkend="
+"\"RT_AddRasterConstraints\"/>, de este modo el catálogo "
+"<varname>raster_columns</varname> guardará la información mas común de tus "
+"teselas raster."
+
+#. Tag: para
+#: using_raster_dataman.xml:344
+#, no-c-format
+msgid ""
+"<varname>r_table_catalog</varname> The database the table is in. This will "
+"always read the current database."
+msgstr ""
+"<varname>r_table_catalog</varname> Contienen la tabla de la base de datos. "
+"Esto siempre leerá la base de datos actual."
+
+#. Tag: para
+#: using_raster_dataman.xml:347
+#, no-c-format
+msgid ""
+"<varname>r_table_schema</varname> The database schema the raster table "
+"belongs to."
+msgstr "<varname>r_table_schema</varname> Esquema al que pertenece la tabla."
+
+#. Tag: para
+#: using_raster_dataman.xml:350
+#, no-c-format
+msgid "<varname>r_table_name</varname> raster table"
+msgstr "<varname>r_table_name</varname> tabla raster"
+
+#. Tag: para
+#: using_raster_dataman.xml:353
+#, no-c-format
+msgid ""
+"<varname>r_raster_column</varname> the column in the <varname>r_table_name</"
+"varname> table that is of type raster. There is nothing in PostGIS "
+"preventing you from having multiple raster columns per table so its possible "
+"to have a raster table listed multiple times with a different raster column "
+"for each."
+msgstr ""
+"<varname>r_raster_column</varname> Columna de la tabla "
+"<varname>r_table_name</varname> que es de tipo raster. No hay nada en "
+"PostGIS que impida tener múltiples columnas raster por tabla así que es "
+"posible tener varias veces la misma tabla raster en la lista con diferentes "
+"columnas cada vez."
+
+#. Tag: para
+#: using_raster_dataman.xml:356
+#, no-c-format
+msgid ""
+"<varname>srid</varname> The spatial reference identifier of the raster. "
+"Should be an entry in the <xref linkend=\"spatial_ref_sys\"/>."
+msgstr ""
+"<varname>srid</varname> El identificador del sistema de referencia espacial "
+"del raster. Debe ser una de las entradas de la tabla  <xref linkend="
+"\"spatial_ref_sys\"/>."
+
+#. Tag: para
+#: using_raster_dataman.xml:359
+#, no-c-format
+msgid ""
+"<varname>scale_x</varname> The scaling between geometric spatial coordinates "
+"and pixel. This is only available if all tiles in the raster column have the "
+"same <varname>scale_x</varname> and this constraint is applied. Refer to "
+"<xref linkend=\"RT_ST_ScaleX\"/> for more details."
+msgstr ""
+"<varname>scale_x</varname> Escala entre las coordenadas espaciales "
+"geométricas y el pixel. Esto esta disponible únicamente si todas las teselas "
+"de la columna raster tienen el mismo valor <varname>scale_x</varname> y se "
+"aplica la restricción. Para mas detalles visita <xref linkend=\"RT_ST_ScaleX"
+"\"/> ."
+
+#. Tag: para
+#: using_raster_dataman.xml:362
+#, no-c-format
+msgid ""
+"<varname>scale_y</varname> The scaling between geometric spatial coordinates "
+"and pixel. This is only available if all tiles in the raster column have the "
+"same <varname>scale_y</varname> and the <varname>scale_y</varname> "
+"constraint is applied. Refer to <xref linkend=\"RT_ST_ScaleY\"/> for more "
+"details."
+msgstr ""
+"<varname>scale_y</varname> Escala entre las coordenadas espaciales "
+"geométricas y el pixel. Esto esta disponible únicamente si todas las teselas "
+"de la columna raster tienen el mismo valor <varname>scale_y</varname> y se "
+"aplica la restricción  <varname>scale_y</varname>. Para mas detalles visita "
+"<xref linkend=\"RT_ST_ScaleY\"/> ."
+
+#. Tag: para
+#: using_raster_dataman.xml:365
+#, no-c-format
+msgid ""
+"<varname>blocksize_x</varname> The width (number of pixels across) of each "
+"raster tile . Refer to <xref linkend=\"RT_ST_Width\"/> for more details."
+msgstr ""
+"<varname>blocksize_x</varname> Es el ancho (numero de pixeles en horizontal) "
+"de cada tesela raster.Para mas detalles visita <xref linkend=\"RT_ST_Width\"/"
+">."
+
+#. Tag: para
+#: using_raster_dataman.xml:368
+#, no-c-format
+msgid ""
+"<varname>blocksize_y</varname> The width (number of pixels down) of each "
+"raster tile . Refer to <xref linkend=\"RT_ST_Height\"/> for more details."
+msgstr ""
+"<varname>blocksize_y</varname> Es el ancho (numero de pixeles en vertical "
+"hacia abajo) de cada tesela raster.Para mas detalles visita <xref linkend="
+"\"RT_ST_Height\"/>."
+
+#. Tag: para
+#: using_raster_dataman.xml:371
+#, no-c-format
+msgid ""
+"<varname>same_alignment</varname> A boolean that is true if all the raster "
+"tiles have the same alignment . Refer to <xref linkend=\"RT_ST_SameAlignment"
+"\"/> for more details."
+msgstr ""
+"<varname>same_alignment</varname> Valor booleano que valdrá \"True\" si "
+"todas las teselas raster tienen el mismo alineamiento. Visita <xref linkend="
+"\"RT_ST_SameAlignment\"/> para más información."
+
+#. Tag: para
+#: using_raster_dataman.xml:374
+#, no-c-format
+msgid ""
+"<varname>regular_blocking</varname> If the raster column has the spatially "
+"unique and coverage tile constraints, the value with be TRUE. Otherwise, it "
+"will be FALSE."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:377
+#, no-c-format
+msgid ""
+"<varname>num_bands</varname> The number of bands in each tile of your raster "
+"set. This is the same information as what is provided by"
+msgstr ""
+"<varname>num_bands</varname> Numero de bandas por tesela del conjunto de "
+"rasters. Es la misma información que la devuelta por "
+
+#. Tag: para
+#: using_raster_dataman.xml:380
+#, no-c-format
+msgid ""
+"<varname>pixel_types</varname> An array defining the pixel type for each "
+"band. You will have the same number of elements in this array as you have "
+"number of bands. The pixel_types are one of the following defined in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>."
+msgstr ""
+"<varname>pixel_types</varname> Un array definiendo el tipo de pixel de cada "
+"banda. Tendrás el mismo numero de elementos en este array que el numero de "
+"bandas. Los pixel_types son uno de los definidos en <xref linkend="
+"\"RT_ST_BandPixelType\"/>."
+
+#. Tag: para
+#: using_raster_dataman.xml:383
+#, no-c-format
+msgid ""
+"<varname>nodata_values</varname> An array of double precision numbers "
+"denoting the <varname>nodata_value</varname> for each band. You will have "
+"the same number of elements in this array as you have number of bands. These "
+"numbers define the pixel value for each band that should be ignored for most "
+"operations. This is similar information provided by <xref linkend="
+"\"RT_ST_BandNoDataValue\"/>."
+msgstr ""
+"<varname>nodata_values</varname> Un array de números de doble precisión que "
+"define el valor <varname>nodata_value</varname> de cada banda. En este array "
+"deberás tener el mismo numero de elementos que el numero de bandas. Este "
+"numero define el valor de los pixeles de cada banda que deben ignorarse para "
+"la mayoría de operaciones.  Esta información es similar a la proporcionada "
+"por <xref linkend=\"RT_ST_BandNoDataValue\"/>."
+
+#. Tag: para
+#: using_raster_dataman.xml:386
+#, fuzzy, no-c-format
+msgid ""
+"<varname>out_db</varname> An array of boolean flags indicating if the raster "
+"bands data is maintained outside the database. You will have the same number "
+"of elements in this array as you have number of bands."
+msgstr ""
+"<varname>pixel_types</varname> Un array definiendo el tipo de pixel de cada "
+"banda. Tendrás el mismo numero de elementos en este array que el numero de "
+"bandas. Los pixel_types son uno de los definidos en <xref linkend="
+"\"RT_ST_BandPixelType\"/>."
+
+#. Tag: para
+#: using_raster_dataman.xml:389
+#, no-c-format
+msgid ""
+"<varname>extent</varname> This is the extent of all the raster rows in your "
+"raster set. If you plan to load more data that will change the extent of the "
+"set, you'll want to run the <xref linkend=\"RT_DropRasterConstraints\"/> "
+"function before load and then reapply constraints with <xref linkend="
+"\"RT_AddRasterConstraints\"/> after load."
+msgstr ""
+"<varname>extent</varname> Esta es la extensión de todas las columnas raster "
+"en tu conjunto raster. Si planeas cargar mas datos que cambiarán la "
+"extensión del conjunto, deberás ejecutar la función <xref linkend="
+"\"RT_DropRasterConstraints\"/> antes de la carga y después de la carga "
+"restablecer las restricciones con <xref linkend=\"RT_AddRasterConstraints\"/"
+">."
+
+#. Tag: para
+#: using_raster_dataman.xml:392
+#, no-c-format
+msgid ""
+"<varname>spatial_index</varname> A boolean that is true if raster column has "
+"a spatial index."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:397
+#, no-c-format
+msgid "Raster Overviews"
+msgstr "Previsualizaciones raster"
+
+#. Tag: para
+#: using_raster_dataman.xml:398
+#, fuzzy, no-c-format
+msgid ""
+"<varname>raster_overviews</varname> catalogs information about raster table "
+"columns used for overviews and additional information about them that is "
+"useful to know when utilizing overviews. Overview tables are cataloged in "
+"both <varname>raster_columns</varname> and <varname>raster_overviews</"
+"varname> because they are rasters in their own right but also serve an "
+"additional special purpose of being a lower resolution caricature of a "
+"higher resolution table. These are generated along-side the main raster "
+"table when you use the <varname>-l</varname> switch in raster loading or can "
+"be generated manually using <xref linkend=\"RT_AddOverviewConstraints\"/>."
+msgstr ""
+"<varname> raster_overviews </varname> hace un catálogo de información sobre "
+"las columnas de la tabla de rasters utilizados para previsualizaciones y la "
+"información adicional sobre ellas, que es útil para saber cuándo utilizar "
+"las. Las tablas de previsualizaciones se catalogan tanto "
+"<varname>raster_columns</varname> como en <varname>raster_overviews</"
+"varname> porque son rasters por derecho propio, pero también sirven a un "
+"propósito especial adicional de ser simplificación de resolución inferior de "
+"una tabla de mayor resolución. Estas se generan a lo largo de la creación de "
+"la tabla raster principal cuando se utiliza la opción <varname>-l</varname> "
+"en el comando de carga."
+
+#. Tag: para
+#: using_raster_dataman.xml:399
+#, no-c-format
+msgid ""
+"Overview tables contain the same constraints as other raster tables as well "
+"as additional informational only constraints specific to overviews."
+msgstr ""
+"Las tablas de previsualización contienen las mismas restricciones que "
+"cualquier tabla raster además de restricciones adicionales especificas a las "
+"previsualizaciones."
+
+#. Tag: para
+#: using_raster_dataman.xml:400
+#, no-c-format
+msgid ""
+"The information in <varname>raster_overviews</varname> does not duplicate "
+"the information in <varname>raster_columns</varname>. If you need the "
+"information about an overview table present in <varname>raster_columns</"
+"varname> you can join the <varname>raster_overviews</varname> and "
+"<varname>raster_columns</varname> together to get the full set of "
+"information you need."
+msgstr ""
+"La información de la tabla <varname>raster_overviews</varname> no duplica la "
+"información de <varname>raster_columns</varname>. Si necesitas información "
+"sobre una tabla de previsualizaciones pobremente en <varname>raster_columns</"
+"varname> puedes unir la tabla <varname>raster_overviews</varname> a  "
+"<varname>raster_columns</varname> para obtener toda la información que "
+"necesitas."
+
+#. Tag: para
+#: using_raster_dataman.xml:401
+#, no-c-format
+msgid "Two main reasons for overviews are:"
+msgstr "Las dos principales razones de crear previsualizaciones son:"
+
+#. Tag: para
+#: using_raster_dataman.xml:403
+#, no-c-format
+msgid ""
+"Low resolution representation of the core tables commonly used for fast "
+"mapping zoom-out."
+msgstr ""
+"Tener una representación de baja resolución de las tablas principales para "
+"tener una respuesta rápida en operaciones de zoom-out."
+
+#. Tag: para
+#: using_raster_dataman.xml:404
+#, no-c-format
+msgid ""
+"Computations are generally faster to do on them than their higher resolution "
+"parents because there are fewer records and each pixel covers more "
+"territory. Though the computations are not as accurate as the high-res "
+"tables they support, they can be sufficient in many rule-of-thumb "
+"computations."
+msgstr ""
+"Los cálculos son generalmente más rápidos en las previsualizaciones que en "
+"las imágenes de mayor resolución porque hay menos registros y cada pixel "
+"cubre más territorio. Aunque los cálculos no son tan precisos como en las "
+"tablas de alta resolución de las que provienen, pueden ser suficientes en "
+"muchos cálculos empíricos."
+
+#. Tag: para
+#: using_raster_dataman.xml:407
+#, no-c-format
+msgid ""
+"The <varname>raster_overviews</varname> catalog contains the following "
+"columns of information."
+msgstr ""
+"El catálogo <varname>raster_overviews</varname> contiene las siguientes "
+"columnas de información."
+
+#. Tag: para
+#: using_raster_dataman.xml:410
+#, no-c-format
+msgid ""
+"<varname>o_table_catalog</varname> The database the overview table is in. "
+"This will always read the current database."
+msgstr ""
+"<varname>o_table_catalog</varname> La base de datos a la cual pertenece la "
+"tabla de previsualizaciones. Esto siempre leerá la base de datos actual."
+
+#. Tag: para
+#: using_raster_dataman.xml:413
+#, no-c-format
+msgid ""
+"<varname>o_table_schema</varname> The database schema the overview raster "
+"table belongs to."
+msgstr ""
+"<varname>o_table_schema</varname>  El esquema de la base de datos al cual "
+"pertenece la tabla de previsualizaciones."
+
+#. Tag: para
+#: using_raster_dataman.xml:416
+#, no-c-format
+msgid "<varname>o_table_name</varname> raster overview table name"
+msgstr ""
+"<varname>o_table_name</varname> El nombre de la tala de previsualizaciones."
+
+#. Tag: para
+#: using_raster_dataman.xml:419
+#, no-c-format
+msgid ""
+"<varname>o_raster_column</varname> the raster column in the overview table."
+msgstr ""
+"<varname>o_raster_column</varname> La columna raster de la tabla de "
+"previsualizaciones."
+
+#. Tag: para
+#: using_raster_dataman.xml:423
+#, no-c-format
+msgid ""
+"<varname>r_table_catalog</varname> The database the raster table that this "
+"overview services is in. This will always read the current database."
+msgstr ""
+"<varname>r_table_catalog</varname> La base de datos de la tabla raster para "
+"la cual esta previsualización sirve. Esto siempre va a leer la base de datos "
+"actual."
+
+#. Tag: para
+#: using_raster_dataman.xml:426
+#, no-c-format
+msgid ""
+"<varname>r_table_schema</varname> The database schema the raster table that "
+"this overview services belongs to."
+msgstr ""
+"<varname>r_table_schema</varname> El esquema de la base de datos de la tabla "
+"ráster al cual pertenecen estas previsualizaciones."
+
+#. Tag: para
+#: using_raster_dataman.xml:429
+#, no-c-format
+msgid ""
+"<varname>r_table_name</varname> raster table that this overview services."
+msgstr ""
+"<varname>r_table_name</varname> tabla raster para la cual sirven las "
+"previsualizaciones."
+
+#. Tag: para
+#: using_raster_dataman.xml:432
+#, no-c-format
+msgid ""
+"<varname>r_raster_column</varname> the raster column that this overview "
+"column services."
+msgstr ""
+"<varname>r_raster_column</varname> la columna raster para la cual sirven "
+"estas previsualizaciones."
+
+#. Tag: para
+#: using_raster_dataman.xml:435
+#, no-c-format
+msgid ""
+"<varname>overview_factor</varname> - this is the pyramid level of the "
+"overview table. The higher the number the lower the resolution of the table. "
+"raster2pgsql if given a folder of images, will compute overview of each "
+"image file and load separately. Level 1 is assumed and always the original "
+"file. Level 2 is will have each tile represent 4 of the original. So for "
+"example if you have a folder of 5000x5000 pixel image files that you chose "
+"to chunk 125x125, for each image file your base table will have (5000*5000)/"
+"(125*125) records = 1600, your (l=2) <varname>o_2</varname> table will have "
+"ceiling(1600/Power(2,2)) = 400 rows, your (l=3) <varname>o_3</varname> will "
+"have ceiling(1600/Power(2,3) ) = 200 rows. If your pixels aren't divisible "
+"by the size of your tiles, you'll get some scrap tiles (tiles not completely "
+"filled). Note that each overview tile generated by raster2pgsql has the same "
+"number of pixels as its parent, but is of a lower resolution where each "
+"pixel of it represents (Power(2,overview_factor) pixels of the original)."
+msgstr ""
+"<varname>overview_factor</varname> - este es el nivel de pirámide de la "
+"tabla de previsualizaciones . Cuanto más alto sea el número, más baja es la "
+"resolución de la tabla. Si se le da una carpeta de imágenes  al comando "
+"raster2pgsql, se calcularán previsualizaciones  de cada archivo de imagen y "
+"se cargarán por separado. El Nivel 1 supone siempre el archivo original. "
+"Nivel 2 tendrá cada tesela representada por 4 de la original. Por ejemplo, "
+"si tienes una carpeta de archivos de imagen de 5000x5000 pixeles que "
+"decidiste dividir en imágenes de 125x125 , para presentar cada imagen tu "
+"tabla base tendrá (5000*5000)/(125*125)=1.600 registros , tu tabla (l=2) "
+"<varname>o_2</varname> tendrá un tope de (1600/Potencia (2,2))=400 filas , "
+"tu (l=3) <varname>o_3</varname> tendrá un tope de (1600/Potencia (2,3)) = "
+"200 filas. Si los píxeles no son divisibles por el tamaño de tus teselas , "
+"obtendrás algunas de relleno (teselas no completamente llenas ) . Ten en "
+"cuenta que cada tesela de previsualización generada por el comando "
+"raster2pgsql tiene el mismo número de pixeles que la tesela de origen , pero "
+"es de  menor resolución que cada pixel de la que representa (Potencia(2,"
+"factor_de_previsualizacion) pixeles del original) ."
+
+#. Tag: title
+#: using_raster_dataman.xml:447
+#, no-c-format
+msgid "Building Custom Applications with PostGIS Raster"
+msgstr "Contruyendo aplicaciones personalizadas con PostGIS Raster"
+
+#. Tag: para
+#: using_raster_dataman.xml:448
+#, no-c-format
+msgid ""
+"The fact that PostGIS raster provides you with SQL functions to render "
+"rasters in known image formats gives you a lot of optoins for rendering "
+"them. For example you can use OpenOffice / LibreOffice for rendering as "
+"demonstrated in <ulink url=\"http://www.postgresonline.com/journal/"
+"archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports."
+"html\">Rendering PostGIS Raster graphics with LibreOffice Base Reports</"
+"ulink>. In addition you can use a wide variety of languages as demonstrated "
+"in this section."
+msgstr ""
+"El hecho de que PostGIS raster te proporcione las funciones de SQL para "
+"crear rasters en formatos de imagen conocidos te da un montón de opciones "
+"para crearlas. Por ejemplo, puedes usar OpenOffice / LibreOffice para una "
+"representación como se demuestra en <ulink url=\"http://www.postgresonline."
+"com/journal/archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-"
+"Base-Reports.html\">Renderizar Gráficos PostGIS Raster con LibreOffice</"
+"ulink>. Además se puede utilizar una amplia variedad de lenguajes de "
+"programación como se demuestra en esta sección."
+
+#. Tag: title
+#: using_raster_dataman.xml:451
+#, no-c-format
+msgid ""
+"PHP Example Outputting using ST_AsPNG in concert with other raster functions"
+msgstr ""
+"Ejemplo de salida utilizando ST_AsPNG junto con otras opciones raster en PHP"
+
+#. Tag: para
+#: using_raster_dataman.xml:452
+#, no-c-format
+msgid ""
+"In this section, we'll demonstrate how to use the PHP PostgreSQL driver and "
+"the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output "
+"band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
+"an img src html tag."
+msgstr ""
+"En esta sección, mostraremos como utilizar el driver PHP PostgreSQL y la "
+"familia de funciones <xref linkend=\"RT_ST_AsGDALRaster\"/> para extraer las "
+"nadas 1,2,3 de un raster a una consulta PHP que puede incluirse como una "
+"marca html img src."
+
+#. Tag: para
+#: using_raster_dataman.xml:455 using_raster_dataman.xml:467
+#, no-c-format
+msgid ""
+"The sample query demonstrates how to combine a whole bunch of raster "
+"functions together to grab all tiles that intersect a particular wgs 84 "
+"bounding box and then unions with <xref linkend=\"RT_ST_Union\"/> the "
+"intersecting tiles together returning all bands, transforms to user "
+"specified projection using <xref linkend=\"RT_ST_Transform\"/>, and then "
+"outputs the results as a png using <xref linkend=\"RT_ST_AsPNG\"/>."
+msgstr ""
+"La consulta de ejemplo muestra cómo combinar un montón de funciones de mapa "
+"de bits juntos para obtener todas las teselas que se cruzan con un cuadro "
+"delimitador en wgs84 en particular y luego unimos las teselas que  "
+"intersectan con <xref linkend=\"RT_ST_Union\"/> devolviendo todas las "
+"bandas, transformadas al sistema de proyección especifico del usuario con  "
+"<xref linkend=\"RT_ST_Transform\"/>, y luego enviamos el resultado como un "
+"png con <xref linkend=\"RT_ST_AsPNG\"/>."
+
+#. Tag: para
+#: using_raster_dataman.xml:458
+#, no-c-format
+msgid ""
+"You would call the below using <programlisting>http://mywebserver/"
+"test_raster.php?srid=2249</programlisting> to get the raster image in "
+"Massachusetts state plane feet."
+msgstr ""
+"Se podría llamar a la continuación utilizando <programlisting>http://"
+"mywebserver/test_raster.php?srid=2249</programlisting> para obtener la "
+"imagen raster en pies del estado de Massachusetts."
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:459
+#, no-c-format
+msgid ""
+"<![CDATA[<?php\n"
+"/** contents of test_raster.php **/\n"
+"$conn_str ='dbname=mydb host=localhost port=5432 user=myuser "
+"password=mypwd';\n"
+"$dbconn = pg_connect($conn_str);\n"
+"header('Content-Type: image/png');  \n"
+"/**If a particular projection was requested use it otherwise use mass state "
+"plane meters **/\n"
+"if (!empty( $_REQUEST['srid'] ) && is_numeric( $_REQUEST['srid']) ){\n"
+"                $input_srid = intval($_REQUEST['srid']);\n"
+"}\n"
+"else { $input_srid = 26986; }\n"
+"/** The set bytea_output may be needed for PostgreSQL 9.0+, but not for 8.4 "
+"**/\n"
+"$sql = \"set bytea_output='escape';\n"
+"SELECT ST_AsPNG(ST_Transform(\n"
+"                        ST_AddBand(ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                ,$input_srid) ) As new_rast\n"
+" FROM aerials.boston \n"
+"        WHERE \n"
+"         ST_Intersects(rast, ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, "
+"-71.1210, 42.218,4326),26986) )\"; \n"
+"$result = pg_query($sql);\n"
+"$row = pg_fetch_row($result);\n"
+"pg_free_result($result);\n"
+"if ($row === false) return;\n"
+"echo pg_unescape_bytea($row[0]);\n"
+"?>]]>"
+msgstr ""
+"<![CDATA[<?php\n"
+"/** contents of test_raster.php **/\n"
+"$conn_str ='dbname=mydb host=localhost port=5432 user=myuser "
+"password=mypwd';\n"
+"$dbconn = pg_connect($conn_str);\n"
+"header('Content-Type: image/png');  \n"
+"/**If a particular projection was requested use it otherwise use mass state "
+"plane meters **/\n"
+"if (!empty( $_REQUEST['srid'] ) && is_numeric( $_REQUEST['srid']) ){\n"
+"                $input_srid = intval($_REQUEST['srid']);\n"
+"}\n"
+"else { $input_srid = 26986; }\n"
+"/** The set bytea_output may be needed for PostgreSQL 9.0+, but not for 8.4 "
+"**/\n"
+"$sql = \"set bytea_output='escape';\n"
+"SELECT ST_AsPNG(ST_Transform(\n"
+"                        ST_AddBand(ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                ,$input_srid) ) As new_rast\n"
+" FROM aerials.boston \n"
+"        WHERE \n"
+"         ST_Intersects(rast, ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, "
+"-71.1210, 42.218,4326),26986) )\"; \n"
+"$result = pg_query($sql);\n"
+"$row = pg_fetch_row($result);\n"
+"pg_free_result($result);\n"
+"if ($row === false) return;\n"
+"echo pg_unescape_bytea($row[0]);\n"
+"?>]]>"
+
+#. Tag: title
+#: using_raster_dataman.xml:462
+#, no-c-format
+msgid ""
+"ASP.NET C# Example Outputting using ST_AsPNG in concert with other raster "
+"functions"
+msgstr ""
+"Ejemplo de salida utilizando ST_AsPNG junto con otras opciones raster en ASP."
+"NET C#"
+
+#. Tag: para
+#: using_raster_dataman.xml:463
+#, no-c-format
+msgid ""
+"In this section, we'll demonstrate how to use Npgsql PostgreSQL .NET driver "
+"and the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output "
+"band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
+"an img src html tag."
+msgstr ""
+"En esta sección, mostraremos como utilizar el driver Npgsql PostgreSQL .NET "
+"y la familia de funciones <xref linkend=\"RT_ST_AsGDALRaster\"/> para "
+"extraer las nadas 1,2,3 de un raster a una consulta PHP que puede incluirse "
+"como una marca html imv src."
+
+#. Tag: para
+#: using_raster_dataman.xml:466
+#, no-c-format
+msgid ""
+"You will need the npgsql .NET PostgreSQL driver for this exercise which you "
+"can get the latest of from <ulink url=\"http://npgsql.projects.postgresql."
+"org/\">http://npgsql.projects.postgresql.org/</ulink>. Just download the "
+"latest and drop into your ASP.NET bin folder and you'll be good to go."
+msgstr ""
+"Necesitarás el driver  npgsql .NET PostgreSQL para este ejercicio que puedes "
+"obtener en <ulink url=\"http://npgsql.projects.postgresql.org/\">http://"
+"npgsql.projects.postgresql.org/</ulink> en su ultima versión. Simplemente "
+"descarga la última versión y copialo en tu carpeta bin de ASP.NET y ya "
+"estarás listo para seguir."
+
+#. Tag: para
+#: using_raster_dataman.xml:470
+#, no-c-format
+msgid ""
+"This is same example as <xref linkend=\"RT_PHP_Output\"/> except implemented "
+"in C#."
+msgstr ""
+"Este ejemplo es el mismo que el ejemplo <xref linkend=\"RT_PHP_Output\"/> "
+"salvo que este esta implementado en C#."
+
+#. Tag: para
+#: using_raster_dataman.xml:471
+#, no-c-format
+msgid ""
+"You would call the below using <programlisting>http://mywebserver/TestRaster."
+"ashx?srid=2249</programlisting> to get the raster image in Massachusetts "
+"state plane feet."
+msgstr ""
+"Puedes llamar a este método utilizando <programlisting>http://mywebserver/"
+"TestRaster.ashx?srid=2249</programlisting> para obtener la imagen raster en "
+"coordenadas planas en pies del estado de Massachusetts."
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:472
+#, no-c-format
+msgid ""
+"-- web.config connection string section --\n"
+"<![CDATA[<connectionStrings>\n"
+"    <add name=\"DSN\" \n"
+"        connectionString=\"server=localhost;database=mydb;Port=5432;User "
+"Id=myuser;password=mypwd\"/>\n"
+"</connectionStrings>]]>"
+msgstr ""
+"-- web.config sección de string de conexion --\n"
+"<![CDATA[<connectionStrings>\n"
+"    <add name=\"DSN\" \n"
+"        connectionString=\"server=localhost;database=mydb;Port=5432;User "
+"Id=myuser;password=mypwd\"/>\n"
+"</connectionStrings>]]>"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:473
+#, no-c-format
+msgid ""
+"// Code for TestRaster.ashx\n"
+"<![CDATA[<%@ WebHandler Language=\"C#\" Class=\"TestRaster\" %>\n"
+"using System;\n"
+"using System.Data;\n"
+"using System.Web;\n"
+"using Npgsql;\n"
+"\n"
+"public class TestRaster : IHttpHandler\n"
+"{\n"
+"        public void ProcessRequest(HttpContext context)\n"
+"        {\n"
+"                \n"
+"                context.Response.ContentType = \"image/png\";\n"
+"                context.Response.BinaryWrite(GetResults(context));\n"
+"                \n"
+"        }\n"
+"\n"
+"        public bool IsReusable {\n"
+"                get { return false; }\n"
+"        }\n"
+"\n"
+"        public byte[] GetResults(HttpContext context)\n"
+"        {\n"
+"                byte[] result = null;\n"
+"                NpgsqlCommand command;\n"
+"                string sql = null;\n"
+"                int input_srid = 26986;\n"
+"        try {\n"
+"                    using (NpgsqlConnection conn = new "
+"NpgsqlConnection(System.Configuration.ConfigurationManager."
+"ConnectionStrings[\"DSN\"].ConnectionString)) {\n"
+"                            conn.Open();\n"
+"\n"
+"                if (context.Request[\"srid\"] != null)\n"
+"                {\n"
+"                    input_srid = Convert.ToInt32(context.Request[\"srid"
+"\"]);  \n"
+"                }\n"
+"                sql = @\"SELECT ST_AsPNG(\n"
+"                            ST_Transform(\n"
+"                                        ST_AddBand(\n"
+"                                ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                                    ,:input_srid) ) As "
+"new_rast \n"
+"                        FROM aerials.boston \n"
+"                                WHERE \n"
+"                                    ST_Intersects(rast, \n"
+"                                    ST_Transform(ST_MakeEnvelope(-71.1217, "
+"42.227, -71.1210, 42.218,4326),26986) )\";\n"
+"                            command = new NpgsqlCommand(sql, conn);\n"
+"                command.Parameters.Add(new NpgsqlParameter(\"input_srid\", "
+"input_srid));\n"
+"           \n"
+"                        \n"
+"                            result = (byte[]) command.ExecuteScalar();\n"
+"                conn.Close();\n"
+"                        }\n"
+"\n"
+"                }\n"
+"        catch (Exception ex)\n"
+"        {\n"
+"            result = null;\n"
+"            context.Response.Write(ex.Message.Trim());\n"
+"        }\n"
+"                return result;\n"
+"        }\n"
+"}]]>"
+msgstr ""
+"// Codigo para  TestRaster.ashx\n"
+"<![CDATA[<%@ WebHandler Language=\"C#\" Class=\"TestRaster\" %>\n"
+"using System;\n"
+"using System.Data;\n"
+"using System.Web;\n"
+"using Npgsql;\n"
+"\n"
+"public class TestRaster : IHttpHandler\n"
+"{\n"
+"        public void ProcessRequest(HttpContext context)\n"
+"        {\n"
+"                \n"
+"                context.Response.ContentType = \"image/png\";\n"
+"                context.Response.BinaryWrite(GetResults(context));\n"
+"                \n"
+"        }\n"
+"\n"
+"        public bool IsReusable {\n"
+"                get { return false; }\n"
+"        }\n"
+"\n"
+"        public byte[] GetResults(HttpContext context)\n"
+"        {\n"
+"                byte[] result = null;\n"
+"                NpgsqlCommand command;\n"
+"                string sql = null;\n"
+"                int input_srid = 26986;\n"
+"        try {\n"
+"                    using (NpgsqlConnection conn = new "
+"NpgsqlConnection(System.Configuration.ConfigurationManager."
+"ConnectionStrings[\"DSN\"].ConnectionString)) {\n"
+"                            conn.Open();\n"
+"\n"
+"                if (context.Request[\"srid\"] != null)\n"
+"                {\n"
+"                    input_srid = Convert.ToInt32(context.Request[\"srid"
+"\"]);  \n"
+"                }\n"
+"                sql = @\"SELECT ST_AsPNG(\n"
+"                            ST_Transform(\n"
+"                                        ST_AddBand(\n"
+"                                ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                                    ,:input_srid) ) As "
+"new_rast \n"
+"                        FROM aerials.boston \n"
+"                                WHERE \n"
+"                                    ST_Intersects(rast, \n"
+"                                    ST_Transform(ST_MakeEnvelope(-71.1217, "
+"42.227, -71.1210, 42.218,4326),26986) )\";\n"
+"                            command = new NpgsqlCommand(sql, conn);\n"
+"                command.Parameters.Add(new NpgsqlParameter(\"input_srid\", "
+"input_srid));\n"
+"           \n"
+"                        \n"
+"                            result = (byte[]) command.ExecuteScalar();\n"
+"                conn.Close();\n"
+"                        }\n"
+"\n"
+"                }\n"
+"        catch (Exception ex)\n"
+"        {\n"
+"            result = null;\n"
+"            context.Response.Write(ex.Message.Trim());\n"
+"        }\n"
+"                return result;\n"
+"        }\n"
+"}]]>"
+
+#. Tag: title
+#: using_raster_dataman.xml:476
+#, no-c-format
+msgid "Java console app that outputs raster query as Image file"
+msgstr ""
+"Aplicación de consola Java que extrae un raster como un fichero de imagen"
+
+#. Tag: para
+#: using_raster_dataman.xml:477
+#, no-c-format
+msgid ""
+"This is a simple java console app that takes a query that returns one image "
+"and outputs to specified file."
+msgstr ""
+"Esta es una aplicación simple de la consola java que toma una consulta y "
+"devuelve una imagen y la extrae a un fichero especificado."
+
+#. Tag: para
+#: using_raster_dataman.xml:478
+#, no-c-format
+msgid ""
+"You can download the latest PostgreSQL JDBC drivers from <ulink url=\"http://"
+"jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/download."
+"html</ulink>"
+msgstr ""
+"Puedes descargar el último driver PostgreSQL JDBC desde <ulink url=\"http://"
+"jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/download."
+"html</ulink>"
+
+#. Tag: para
+#: using_raster_dataman.xml:479
+#, no-c-format
+msgid "You can compile the following code using a command something like:"
+msgstr ""
+"Puedes compilar el siguiente código utilizando un comando similar a este:"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:480
+#, no-c-format
+msgid ""
+"set env CLASSPATH .:..\\postgresql-9.0-801.jdbc4.jar\n"
+"javac SaveQueryImage.java\n"
+"jar cfm SaveQueryImage.jar Manifest.txt *.class"
+msgstr ""
+"set env CLASSPATH .:..\\postgresql-9.0-801.jdbc4.jar\n"
+"javac SaveQueryImage.java\n"
+"jar cfm SaveQueryImage.jar Manifest.txt *.class"
+
+#. Tag: para
+#: using_raster_dataman.xml:481
+#, no-c-format
+msgid "And call it from the command-line with something like"
+msgstr "Y llamarlo desde la linea de comandos de forma similar a:"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:482
+#, no-c-format
+msgid ""
+"java -jar SaveQueryImage.jar \"SELECT "
+"ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10, 'quad_segs=2'),150, 150, "
+"'8BUI',100));\" \"test.png\""
+msgstr ""
+"java -jar SaveQueryImage.jar \"SELECT "
+"ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10, 'quad_segs=2'),150, 150, "
+"'8BUI',100));\" \"test.png\""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:483
+#, no-c-format
+msgid ""
+"-- Manifest.txt --\n"
+"<![CDATA[Class-Path: postgresql-9.0-801.jdbc4.jar\n"
+"Main-Class: SaveQueryImage]]>"
+msgstr ""
+"-- Manifest.txt --\n"
+"<![CDATA[Class-Path: postgresql-9.0-801.jdbc4.jar\n"
+"Main-Class: SaveQueryImage]]>"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:484
+#, no-c-format
+msgid ""
+"// Code for SaveQueryImage.java\n"
+"<![CDATA[import java.sql.Connection;\n"
+"import java.sql.SQLException;\n"
+"import java.sql.PreparedStatement;\n"
+"import java.sql.ResultSet;\n"
+"import java.io.*;\n"
+"\n"
+"public class SaveQueryImage {\n"
+"  public static void main(String[] argv) {\n"
+"      System.out.println(\"Checking if Driver is registered with "
+"DriverManager.\");\n"
+"      \n"
+"      try {\n"
+"        //java.sql.DriverManager.registerDriver (new org.postgresql."
+"Driver());\n"
+"        Class.forName(\"org.postgresql.Driver\");\n"
+"      } \n"
+"      catch (ClassNotFoundException cnfe) {\n"
+"        System.out.println(\"Couldn't find the driver!\");\n"
+"        cnfe.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }\n"
+"      \n"
+"      Connection conn = null;\n"
+"      \n"
+"      try {\n"
+"        conn = DriverManager.getConnection(\"jdbc:postgresql://"
+"localhost:5432/mydb\",\"myuser\", \"mypwd\");\n"
+"        conn.setAutoCommit(false);\n"
+"\n"
+"        PreparedStatement sGetImg = conn.prepareStatement(argv[0]);\n"
+"                \n"
+"        ResultSet rs = sGetImg.executeQuery();\n"
+"                \n"
+"                FileOutputStream fout;\n"
+"                try\n"
+"                {\n"
+"                        rs.next();\n"
+"                        /** Output to file name requested by user **/\n"
+"                        fout = new FileOutputStream(new File(argv[1]) );\n"
+"                        fout.write(rs.getBytes(1));\n"
+"                        fout.close();\n"
+"                }\n"
+"                catch(Exception e)\n"
+"                {\n"
+"                        System.out.println(\"Can't create file\");\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"                \n"
+"        rs.close();\n"
+"                sGetImg.close();\n"
+"        conn.close();\n"
+"      } \n"
+"      catch (SQLException se) {\n"
+"        System.out.println(\"Couldn't connect: print out a stack trace and "
+"exit.\");\n"
+"        se.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }   \n"
+"  }\n"
+"}]]>"
+msgstr ""
+"// Codigo para SaveQueryImage.java\n"
+"<![CDATA[import java.sql.Connection;\n"
+"import java.sql.SQLException;\n"
+"import java.sql.PreparedStatement;\n"
+"import java.sql.ResultSet;\n"
+"import java.io.*;\n"
+"\n"
+"public class SaveQueryImage {\n"
+"  public static void main(String[] argv) {\n"
+"      System.out.println(\"Checking if Driver is registered with "
+"DriverManager.\");\n"
+"      \n"
+"      try {\n"
+"        //java.sql.DriverManager.registerDriver (new org.postgresql."
+"Driver());\n"
+"        Class.forName(\"org.postgresql.Driver\");\n"
+"      } \n"
+"      catch (ClassNotFoundException cnfe) {\n"
+"        System.out.println(\"Couldn't find the driver!\");\n"
+"        cnfe.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }\n"
+"      \n"
+"      Connection conn = null;\n"
+"      \n"
+"      try {\n"
+"        conn = DriverManager.getConnection(\"jdbc:postgresql://"
+"localhost:5432/mydb\",\"myuser\", \"mypwd\");\n"
+"        conn.setAutoCommit(false);\n"
+"\n"
+"        PreparedStatement sGetImg = conn.prepareStatement(argv[0]);\n"
+"                \n"
+"        ResultSet rs = sGetImg.executeQuery();\n"
+"                \n"
+"                FileOutputStream fout;\n"
+"                try\n"
+"                {\n"
+"                        rs.next();\n"
+"                        /** Output to file name requested by user **/\n"
+"                        fout = new FileOutputStream(new File(argv[1]) );\n"
+"                        fout.write(rs.getBytes(1));\n"
+"                        fout.close();\n"
+"                }\n"
+"                catch(Exception e)\n"
+"                {\n"
+"                        System.out.println(\"Can't create file\");\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"                \n"
+"        rs.close();\n"
+"                sGetImg.close();\n"
+"        conn.close();\n"
+"      } \n"
+"      catch (SQLException se) {\n"
+"        System.out.println(\"Couldn't connect: print out a stack trace and "
+"exit.\");\n"
+"        se.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }   \n"
+"  }\n"
+"}]]>"
+
+#. Tag: title
+#: using_raster_dataman.xml:488
+#, no-c-format
+msgid "Use PLPython to dump out images via SQL"
+msgstr "Utilizar PLPython para extraer imágenes vía SQL"
+
+#. Tag: para
+#: using_raster_dataman.xml:489
+#, fuzzy, no-c-format
+msgid ""
+"This is a plpython stored function that creates a file in the server "
+"directory for each record. Requires you have plpython installed. Should work "
+"fine with both plpythonu and plpython3u."
+msgstr ""
+"Esta es una función plpython guardada que crea un archivo en el directorio "
+"del servidor  para cada registro."
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:491
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, "
+"param_filepath text)\n"
+"RETURNS text\n"
+"AS $$\n"
+"f = open(param_filepath, 'wb+')\n"
+"f.write(param_bytes)\n"
+"return param_filepath\n"
+"$$ LANGUAGE plpythonu;]]>"
+msgstr ""
+"//procedimiento guardado plpython postgresql . Necesitas tener instalado "
+"plpython\n"
+"<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, "
+"param_filepath text)\n"
+"RETURNS text\n"
+"AS $$\n"
+"f = open(param_filepath, 'wb+')\n"
+"f.write(param_bytes)\n"
+"return param_filepath\n"
+"$$ LANGUAGE plpythonu;]]>"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:492
+#, no-c-format
+msgid ""
+"--write out 5 images to the PostgreSQL server in varying sizes\n"
+"-- note the postgresql daemon account needs to have write access to folder\n"
+"-- this echos back the file names created;\n"
+" SELECT write_file(ST_AsPNG(\n"
+"        ST_AsRaster(ST_Buffer(ST_Point(1,5),j*5, 'quad_segs=2'),150*j, "
+"150*j, '8BUI',100)),\n"
+"         'C:/temp/slices'|| j || '.png')\n"
+"         FROM generate_series(1,5) As j;\n"
+"         \n"
+"     write_file\n"
+"---------------------\n"
+" C:/temp/slices1.png\n"
+" C:/temp/slices2.png\n"
+" C:/temp/slices3.png\n"
+" C:/temp/slices4.png\n"
+" C:/temp/slices5.png"
+msgstr ""
+"-- escribe 5 imágenes en el servidor PostgreSQL cambiando los tamaños\n"
+"-- observa que la cuenta del daemon postgresql necesita permisos de "
+"escritura en la carpeta\n"
+"-- esto devuelve echo en los nombres de los ficheros creados\n"
+" SELECT write_file(ST_AsPNG(\n"
+"        ST_AsRaster(ST_Buffer(ST_Point(1,5),j*5, 'quad_segs=2'),150*j, "
+"150*j, '8BUI',100)),\n"
+"         'C:/temp/slices'|| j || '.png')\n"
+"         FROM generate_series(1,5) As j;\n"
+"         \n"
+"     write_file\n"
+"---------------------\n"
+" C:/temp/slices1.png\n"
+" C:/temp/slices2.png\n"
+" C:/temp/slices3.png\n"
+" C:/temp/slices4.png\n"
+" C:/temp/slices5.png"
+
+#. Tag: title
+#: using_raster_dataman.xml:495
+#, no-c-format
+msgid "Outputting Rasters with PSQL"
+msgstr "Extraer un raster con PSQL"
+
+#. Tag: para
+#: using_raster_dataman.xml:496
+#, no-c-format
+msgid ""
+"Sadly PSQL doesn't have easy to use built-in functionality for outputting "
+"binaries. This is a bit of a hack and based on one of the suggestions "
+"outlined in <ulink url=\"http://people.planetpostgresql.org/andrew/index."
+"php?/archives/196-Clever-trick-challenge.html\">Clever Trick Challenge -- "
+"Outputting bytea with psql</ulink> that piggy backs on PostgreSQL somewhat "
+"legacy large object support. To use first launch your psql commandline "
+"connected to your database."
+msgstr ""
+"PSQL no tiene un uso fácil de la funcionalidad integrada para la salida de "
+"binarios. Esto es un pequeño truco y se basa en una de las propuestas que "
+"contiene el <ulink url=\"http://people.planetpostgresql.org/andrew/index."
+"php?/archives/196-Clever-trick-challenge.html\">Clever Trick Challenge -- "
+"Outputting bytes with psql</ulink> que respalda en PostgreSQL algo del "
+"legado de soporte de objetos. Para utilizarlo, primero lanza la línea de "
+"comandos psql conectando a tu base de datos."
+
+#. Tag: para
+#: using_raster_dataman.xml:499
+#, no-c-format
+msgid ""
+"Unlike the python approach, this approach creates the file on your local "
+"computer."
+msgstr ""
+"A diferencia del enfoque de python, este, crea el fichero en tu equipo local."
+
+#. Tag: screen
+#: using_raster_dataman.xml:500
+#, no-c-format
+msgid ""
+"SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes\n"
+" FROM \n"
+" ( VALUES (lo_create(0), \n"
+"   ST_AsPNG( (SELECT rast FROM aerials.boston WHERE rid=1) ) \n"
+"  ) ) As v(oid,png);\n"
+"-- you'll get an output something like --\n"
+"   oid   | num_bytes\n"
+"---------+-----------\n"
+" 2630819 |     74860\n"
+" \n"
+"-- next note the oid and do this replacing the c:/test.png to file path "
+"location\n"
+"-- on your local computer\n"
+" \\lo_export 2630819 'C:/temp/aerial_samp.png'\n"
+" \n"
+"-- this deletes the file from large object storage on db\n"
+"SELECT lo_unlink(2630819);"
+msgstr ""
+"SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes\n"
+" FROM \n"
+" ( VALUES (lo_create(0), \n"
+"   ST_AsPNG( (SELECT rast FROM aerials.boston WHERE rid=1) ) \n"
+"  ) ) As v(oid,png);\n"
+"-- obtendras una salida similar a la siguiente --\n"
+"   oid   | num_bytes\n"
+"---------+-----------\n"
+" 2630819 |     74860\n"
+" \n"
+"-- obten el oid y hazlo reemplazando c:/test.png por el directorio\n"
+"-- de tu equipo local\n"
+" \\lo_export 2630819 'C:/temp/aerial_samp.png'\n"
+" \n"
+"-- Esto borra el fichero de almacenamiento de objetos grandes en la db\n"
+"SELECT lo_unlink(2630819);"
+
+#~ msgid ""
+#~ "<varname>regular_blocking</varname> This is a true/false constraint flag "
+#~ "set on the table to denote that the tiles do not overlap, are of the same "
+#~ "alignment, pixel size, srid etc. It is not really validated but just "
+#~ "taken as a given so should be used for informational. In the future we "
+#~ "plan to properly constrain this so that this inforamtion is guaranteed to "
+#~ "be right when it returns <varname>true</varname>"
+#~ msgstr ""
+#~ "<varname>regular_blocking</varname> Es una restricción true/false que se "
+#~ "selecciona en la tabla para definir que las teselas no deben solaparse, "
+#~ "están alineados, tamaño del pixel, srid, etc. No se valida realmente pero "
+#~ "debe darse por hecho que tiene un valor informativo. En el futuro se "
+#~ "planea restringir esto de forma limpia, de modo que se garantice que la "
+#~ "información sea correcta cuando devuelva <varname>true</varname>"
diff --git a/doc/po/fr/Makefile b/doc/po/fr/Makefile
new file mode 100644
index 0000000..ad05643
--- /dev/null
+++ b/doc/po/fr/Makefile
@@ -0,0 +1,2 @@
+DOCSUFFIX=-fr
+include ../Makefile.local
diff --git a/doc/po/fr/extras.xml.po b/doc/po/fr/extras.xml.po
new file mode 100644
index 0000000..106a601
--- /dev/null
+++ b/doc/po/fr/extras.xml.po
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Arnaud Vandecasteele <arnaud.sig at gmail.com>, 2013
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-10-14 22:34+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: extras.xml:3
+#, no-c-format
+msgid "PostGIS Extras"
+msgstr ""
+
+#. Tag: para
+#: extras.xml:5
+#, no-c-format
+msgid ""
+"This chapter documents features found in the extras folder of the PostGIS "
+"source tarballs and source repository. These are not always packaged with "
+"PostGIS binary releases, but are usually plpgsql based or standard shell "
+"scripts that can be run as is."
+msgstr ""
+
+#. Tag: chapter
+#: extras.xml:6
+#, no-c-format
+msgid "&extras_tigergeocoder;"
+msgstr ""
diff --git a/doc/po/fr/extras_address_standardizer.xml.po b/doc/po/fr/extras_address_standardizer.xml.po
new file mode 100644
index 0000000..211dd5d
--- /dev/null
+++ b/doc/po/fr/extras_address_standardizer.xml.po
@@ -0,0 +1,852 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-13 18:05+0000\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: extras_address_standardizer.xml:3
+#, no-c-format
+msgid "Address Standardizer"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:4
+#, no-c-format
+msgid ""
+"This is a fork of the <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-11."
+"html\">PAGC standardizer</ulink> (original code for this portion was <ulink "
+"url=\"http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/"
+"postgresql\">PAGC PostgreSQL Address Standardizer</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:5
+#, no-c-format
+msgid ""
+"The address standardizer is a single line address parser that takes an input "
+"address and normalizes it based on a set of rules stored in a table and "
+"helper lex and gaz tables."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:6
+#, no-c-format
+msgid ""
+"The code is built into a single postgresql extension library called "
+"<code>address_standardizer</code> which can be installed with <code>CREATE "
+"EXTENSION address_standardizer;</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:7
+#, no-c-format
+msgid ""
+"The code for this extension can be found in the PostGIS <filename>extensions/"
+"address_standardizer</filename> and is currently self-contained."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:8
+#, no-c-format
+msgid ""
+"For installation instructions refer to: <xref linkend="
+"\"installing_pagc_address_standardizer\"/>."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:9
+#, no-c-format
+msgid "How the Parser Works"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:10
+#, no-c-format
+msgid ""
+"The parser works from right to left looking first at the macro elements for "
+"postcode, state/province, city, and then looks micro elements to determine "
+"if we are dealing with a house number street or intersection or landmark. It "
+"currently does not look for a country code or name, but that could be "
+"introduced in the future."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:17
+#, no-c-format
+msgid "Country code"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:18
+#, no-c-format
+msgid ""
+"Assumed to be US or CA based on: postcode as US or Canada state/province as "
+"US or Canada else US"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:21
+#, no-c-format
+msgid "Postcode/zipcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:22
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c and are relatively simple to make "
+"changes to if needed."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:27
+#, no-c-format
+msgid "State/province"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:28
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c but could get moved into includes in "
+"the future for easier maintenance."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:37
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by Address "
+"Standardizer extension. Note we describe the casting behavior of these which "
+"is very important especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:42
+#, no-c-format
+msgid "Address Standardizer Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:45
+#, no-c-format
+msgid "stdaddr"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:46
+#, no-c-format
+msgid ""
+"A composite type that consists of the elements of an address. This is the "
+"return type for <varname>standardize_address</varname> function."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:49 extras_address_standardizer.xml:152
+#: extras_address_standardizer.xml:214 extras_address_standardizer.xml:256
+#: extras_address_standardizer.xml:314 extras_address_standardizer.xml:369
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:50
+#, no-c-format
+msgid ""
+"A composite type that consists of elements of an address. This is the return "
+"type for <xref linkend=\"standardize_address\"/> function. Some descriptions "
+"for elements are borrowed from <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#ss12.1\">PAGC Postal Attributes</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:51
+#, no-c-format
+msgid ""
+"The token numbers denote the reference number in the <varname>rules</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:52 extras_address_standardizer.xml:321
+#: extras_address_standardizer.xml:375
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:55
+#, no-c-format
+msgid "building"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:57
+#, no-c-format
+msgid ""
+"is text (token number <code>0</code>): Refers to building number or name. "
+"Unparsed building identifiers and types. Generally blank for most addresses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:60
+#, no-c-format
+msgid "house_num"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:62
+#, no-c-format
+msgid ""
+"is a text (token number <code>1</code>): This is the street number on a "
+"street. Example <emphasis>75</emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:65
+#, no-c-format
+msgid "predir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:66
+#, no-c-format
+msgid ""
+"is text (token number <code>2</code>): STREET NAME PRE-DIRECTIONAL such as "
+"North, South, East, West etc."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:68
+#, no-c-format
+msgid "qual"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:70
+#, no-c-format
+msgid ""
+"is text (token number <code>3</code>): STREET NAME PRE-MODIFIER Example "
+"<emphasis>OLD</emphasis> in <code>3715 OLD HIGHWAY 99</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:73
+#, no-c-format
+msgid "pretype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:75
+#, no-c-format
+msgid "is text (token number <code>4</code>): STREET PREFIX TYPE"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:78
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:80
+#, no-c-format
+msgid "is text (token number <code>5</code>): STREET NAME"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:83
+#, no-c-format
+msgid "suftype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:85
+#, no-c-format
+msgid ""
+"is text (token number <code>6</code>): STREET POST TYPE e.g. St, Ave, Cir. A "
+"street type following the root street name. Example <emphasis>STREET</"
+"emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:88
+#, no-c-format
+msgid "sufdir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:90
+#, no-c-format
+msgid ""
+"is text (token number <code>7</code>): STREET POST-DIRECTIONAL A directional "
+"modifier that follows the street name.. Example <emphasis>WEST</emphasis> in "
+"<code>3715 TENTH AVENUE WEST</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:93
+#, no-c-format
+msgid "ruralroute"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:95
+#, no-c-format
+msgid ""
+"is text (token number <code>8</code>): RURAL ROUTE . Example <emphasis>8</"
+"emphasis> in <code>RR 7</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:98
+#, no-c-format
+msgid "extra"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:100
+#, no-c-format
+msgid "is text: Extra information like Floor number."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:103
+#, no-c-format
+msgid "city"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:105
+#, no-c-format
+msgid "is text (token number <code>10</code>): Example Boston."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:108
+#, no-c-format
+msgid "state"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:110
+#, no-c-format
+msgid ""
+"is text (token number <code>11</code>): Example <code>MASSACHUSETTS</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:113
+#, no-c-format
+msgid "country"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:115
+#, no-c-format
+msgid "is text (token number <code>12</code>): Example <code>USA</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:118
+#, no-c-format
+msgid "postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:120
+#, no-c-format
+msgid ""
+"is text POSTAL CODE (ZIP CODE) (token number <code>13</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:123
+#, no-c-format
+msgid "<term>box</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:125
+#, no-c-format
+msgid ""
+"is text POSTAL BOX NUMBER (token number <code>14 and 15</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:128
+#, no-c-format
+msgid "unit"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:130
+#, no-c-format
+msgid ""
+"is text Apartment number or Suite Number (token number <code>17</code>): "
+"Example <emphasis>3B</emphasis> in <code>APT 3B</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:141
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL table formats used by the "
+"address_standardizer for normalizing addresses. Note that these tables do "
+"not need to be named the same as what is referenced here. You can have "
+"different lex, gaz, rules tables for each country for example or for your "
+"custom geocoder. The names of these tables get passed into the address "
+"standardizer functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:145
+#, no-c-format
+msgid "Address Standardizer Tables"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:148
+#, no-c-format
+msgid "rules table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:149
+#, no-c-format
+msgid ""
+"The rules table contains a set of rules that maps address input sequence "
+"tokens to standardized output sequence"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:153
+#, no-c-format
+msgid ""
+"A rules table must have at least the following columns, though you are "
+"allowed to add more for your own uses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:157 extras_address_standardizer.xml:220
+#: extras_address_standardizer.xml:262
+#, no-c-format
+msgid "<term>id</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:159 extras_address_standardizer.xml:222
+#: extras_address_standardizer.xml:264
+#, no-c-format
+msgid "Primary key of table"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:162
+#, no-c-format
+msgid "rule"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:164
+#, no-c-format
+msgid ""
+"text field denoting the rule. Details at <ulink url=\"http://www.pagcgeo.org/"
+"docs/html/pagc-12.html#--r-rec--\">PAGC Address Standardizer Rule records</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:165
+#, no-c-format
+msgid ""
+"A rule consists of a set of non-negative integers representing input tokens, "
+"terminated by a -1, followed by an equal number of non-negative integers "
+"representing postal attributes, terminated by a -1, followed by an integer "
+"representing a rule type, followed by an integer representing the rank of "
+"the rule. The rules are ranked from 0 (lowest) to 17 (highest)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:166
+#, no-c-format
+msgid ""
+"So for example the rule <code>2 0 2 22 3 -1 5 5 6 7 3 -1 2 6</code> maps to "
+"sequence of tokens <emphasis>TYPE NUMBER TYPE DIRECT QUALIF</emphasis> to "
+"the output sequence <emphasis>STREET STREET SUFTYP SUFDIR QUALIF</emphasis>. "
+"The rule is an ARC_C rule of rank 6."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:171
+#, no-c-format
+msgid "Each rule has a rule type which is denoted by one of following:"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:174
+#, no-c-format
+msgid "MACRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:176
+#, no-c-format
+msgid "(token number = \"0\"). The class of rules for parsing MACRO clauses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:180
+#, no-c-format
+msgid "MICRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:182
+#, no-c-format
+msgid ""
+"(token number = \"1\"). The class of rules for parsing full MICRO clauses "
+"(ie ARC_C plus CIVIC_C). These rules are not used in the build phase."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:186
+#, no-c-format
+msgid "ARC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:188
+#, no-c-format
+msgid ""
+"(token number = \"2\"). The class of rules for parsing MICRO clauses, "
+"excluding the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:192
+#, no-c-format
+msgid "CIVIC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:194
+#, no-c-format
+msgid ""
+"(token number = \"3\"). The class of rules for parsing the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:198
+#, no-c-format
+msgid "EXTRA_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:200
+#, no-c-format
+msgid ""
+"(token number = \"4\"). The class of rules for parsing EXTRA attributes - "
+"attributes excluded from geocoding. These rules are not used in the build "
+"phase."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:210
+#, no-c-format
+msgid "lex table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:211
+#, no-c-format
+msgid ""
+"A lex table is used to classify alphanumeric input and associate that input "
+"with (a) input tokens ( See Input Tokens) and (b) standardized "
+"representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:215
+#, no-c-format
+msgid ""
+"A lex (short for lexicon) table is used to classify alphanumeric input and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. Things you will find in these tables are <code>ONE</code> "
+"mapped to stdworkd: <code>1</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:217
+#, no-c-format
+msgid "A lex has at least the following columns in the table. You may add"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:225 extras_address_standardizer.xml:267
+#, no-c-format
+msgid "<term>seq</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:227 extras_address_standardizer.xml:269
+#, no-c-format
+msgid "integer: definition number?"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:231 extras_address_standardizer.xml:272
+#, no-c-format
+msgid "word"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:233 extras_address_standardizer.xml:274
+#, no-c-format
+msgid "text: the input word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:236 extras_address_standardizer.xml:277
+#, no-c-format
+msgid "stdword"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:238 extras_address_standardizer.xml:279
+#, no-c-format
+msgid "text: the standardized replacement word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:241 extras_address_standardizer.xml:282
+#, no-c-format
+msgid "token"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:243 extras_address_standardizer.xml:284
+#, no-c-format
+msgid ""
+"integer: the kind of word it is. Only if it is used in this context will it "
+"be replaced. Refer to <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12."
+"html#--i-tok--\">PAGC Tokens</ulink>."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:252
+#, no-c-format
+msgid "gaz table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:253
+#, no-c-format
+msgid ""
+"A gaz table is used to standardize place names and associate that input with "
+"(a) input tokens ( See Input Tokens) and (b) standardized representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:257
+#, no-c-format
+msgid ""
+"A gaz (short for gazeteer) table is used to classify place names and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. For example if you are in US, you may load these with State "
+"Names and associated abbreviations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:259
+#, no-c-format
+msgid ""
+"A gaz table has at least the following columns in the table. You may add "
+"more columns if you wish for your own purposes."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:295
+#, no-c-format
+msgid "Address Standardizer Functions"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:298
+#, no-c-format
+msgid "parse_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:300
+#, no-c-format
+msgid "Takes a 1 line address and breaks into parts"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_address_standardizer.xml:305
+#, no-c-format
+msgid ""
+"<funcdef>record <function>parse_address</function></funcdef> "
+"<paramdef><type>text </type> <parameter>address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:316
+#, no-c-format
+msgid ""
+"Returns takes as input an address, and returns a record output consisting of "
+"fields <emphasis>num</emphasis>, <emphasis>street</emphasis>, "
+"<emphasis>street2</emphasis>, <emphasis>address1</emphasis>, <emphasis>city</"
+"emphasis>, <emphasis>state</emphasis>, <emphasis>zip</emphasis>, "
+"<emphasis>zipplus</emphasis>, <emphasis>country</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:320 extras_address_standardizer.xml:374
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:326 extras_address_standardizer.xml:380
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:328
+#, no-c-format
+msgid ""
+"SELECT num, street, city, zip, zipplus FROM parse_address('1 Devonshire "
+"Place, Boston, MA 02109-1234');\n"
+" num |      street      |  city  |  zip  | zipplus\n"
+"-----+------------------+--------+-------+---------\n"
+" 1   | Devonshire Place | Boston | 02109 | 1234"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:334 extras_address_standardizer.xml:391
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:342
+#, no-c-format
+msgid "standardize_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:344
+#, no-c-format
+msgid ""
+"Returns an stdaddr form of an input address utilizing lex, gaz, and rule "
+"tables."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_address_standardizer.xml:348
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>stdaddr <function>standardize_address</function></"
+"funcdef> <paramdef><type>text </type> <parameter>lextab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>gaztab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rultab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>address</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>stdaddr "
+"<function>standardize_address</function></funcdef> <paramdef><type>text </"
+"type> <parameter>lextab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>gaztab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rultab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>micro</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>macro</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:371
+#, no-c-format
+msgid ""
+"Returns an <xref linkend=\"stdaddr\"/> form of an input address utilizing "
+"<xref linkend=\"lextab\"/> table name, <xref linkend=\"gaztab\"/>, and <xref "
+"linkend=\"rulestab\"/> table names and an address."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:382
+#, no-c-format
+msgid ""
+"SELECT *  FROM standardize_address('tiger.pagc_lex', \n"
+"                           'tiger.pagc_gaz', 'tiger.pagc_rules', 'One "
+"Devonshire Place, PH 301, Boston, MA 02109-1234');"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:384
+#, no-c-format
+msgid ""
+"Make easier to read we'll dump output using hstore extension CREATE "
+"EXTENSION hstore; you need to install"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:385
+#, no-c-format
+msgid ""
+"SELECT (each(hstore(p))).*  \n"
+" FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz', \n"
+"   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA "
+"02109-1234') As p;"
+msgstr ""
+
+#. Tag: screen
+#: extras_address_standardizer.xml:386
+#, no-c-format
+msgid ""
+"key     |      value\n"
+"------------+-----------------\n"
+" box        |\n"
+" city       | BOSTON\n"
+" name       | DEVONSHIRE\n"
+" qual       |\n"
+" unit       | # PENTHOUSE 301\n"
+" extra      |\n"
+" state      | MA\n"
+" predir     |\n"
+" sufdir     |\n"
+" country    | USA\n"
+" pretype    |\n"
+" suftype    | PL\n"
+" building   |\n"
+" postcode   | 02109\n"
+" house_num  | 1\n"
+" ruralroute |\n"
+"(16 rows)"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"rulestab\"/>, <xref linkend=\"lextab\"/>, <xref linkend="
+"\"gaztab\"/>, <xref linkend=\"Pagc_Normalize_Address\"/>"
+msgstr ""
diff --git a/doc/po/fr/extras_historytable.xml.po b/doc/po/fr/extras_historytable.xml.po
new file mode 100644
index 0000000..e96e2e2
--- /dev/null
+++ b/doc/po/fr/extras_historytable.xml.po
@@ -0,0 +1,303 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Rodolphe Quiédeville <rodolphe at quiedeville.org>, 2013
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-27 23:39+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: extras_historytable.xml:3
+#, no-c-format
+msgid "History Tracking"
+msgstr "Suivi d'historique"
+
+#. Tag: para
+#: extras_historytable.xml:6
+#, no-c-format
+msgid ""
+"Suppose you have a table of data that represents the current state of a "
+"particular geographic feature. A parcels table, or a roads table, or a fruit "
+"trees table, whatever. Generally, GIS tools understand a table as a single "
+"entity into which they can update, insert and delete rows from. How you do "
+"allow common GIS tools to work against your data, while maintaining an audit "
+"trail of what changes have been made, by whom, and what the past state of "
+"the data is?"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:10
+#, no-c-format
+msgid ""
+"This <varname>history_table</varname> extra module provides some utility "
+"functions for creating and maintaining history."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:14
+#, no-c-format
+msgid ""
+"The <varname>history_table</varname> was also packaged in PostGIS 1.5, but "
+"added to the documentation in PostGIS 2.0. This package is written in "
+"plpgsql and located in the <varname>extras/history_table</varname> of "
+"PostGIS source tar balls and source repository."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:15
+#, no-c-format
+msgid ""
+"If you have a table 'roads', this module will maintain a 'roads_history' "
+"side table, which contains all the columns of the parent table, and the "
+"following additional columns:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:16
+#, no-c-format
+msgid ""
+"history_id      | integer                     | not null default \n"
+" date_added      | timestamp without time zone | not null default now()\n"
+" date_deleted    | timestamp without time zone | \n"
+" last_operation  | character varying(30)       | not null\n"
+" active_user     | character varying(90)       | not null default "
+"\"current_user\"()\n"
+" current_version | text                        | not null"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:20
+#, no-c-format
+msgid ""
+"When you insert a new record into 'roads' a record is automatically inserted "
+"into 'roads_history', with the 'date_added' filled in the 'date_deleted' set "
+"to NULL, a unique 'history_id', a 'last_operation' of 'INSERT' and "
+"'active_user' set."
+msgstr ""
+"Lors de l'insertion d'un enregistrement dans la table 'roads' un "
+"enregistrement est automatiquement créé dans la table 'roads_history' avec "
+"'date_added' renseigné, 'date_deleted' défini à NULL, 'history_id' avec une "
+"valeur unique, 'last_operation' défini à 'INSERT' et 'active_user' également "
+"défini."
+
+#. Tag: para
+#: extras_historytable.xml:23
+#, no-c-format
+msgid ""
+"When you delete a record in 'roads', the record in the history table is "
+"*not* deleted, but the 'date_deleted' is set to the current date."
+msgstr ""
+"Lors de la suppression d'un enregistrement de la table 'roads' "
+"l'enregistrement correspondant dans la table d'historique n'est *pas* "
+"supprimé mais le champ 'date_deleted' est définit avec la date courante."
+
+#. Tag: para
+#: extras_historytable.xml:26
+#, no-c-format
+msgid ""
+"When you update a record in 'roads', the current record has 'date_deleted' "
+"filled in and a new record is created with the 'date_added' set and "
+"'date_deleted' NULL."
+msgstr ""
+"Lors de la mise à jour d'un enregistrement de la table 'roads', "
+"l'enregistrement courant est mis à jour avec le champ 'date_deleted' définit "
+"et un nouvel enregistrement est créé avec 'date_added' définit et "
+"'date_deleted' définit à NULL."
+
+#. Tag: para
+#: extras_historytable.xml:30
+#, no-c-format
+msgid ""
+"With this information maintained, it is possible to retrieve the history of "
+"any record in the roads table:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:31
+#, no-c-format
+msgid "SELECT * FROM roads_history WHERE roads_pk = 111;"
+msgstr "SELECT * FROM roads_history WHERE roads_pk = 111;"
+
+#. Tag: para
+#: extras_historytable.xml:33
+#, no-c-format
+msgid "Or, to retrieve a view of the roads table at any point in the past:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:34
+#, no-c-format
+msgid ""
+"SELECT * FROM roads_history \n"
+"    WHERE date_added < 'January 1, 2001' AND \n"
+"        ( date_deleted >= 'January 1, 2001' OR date_deleted IS NULL );"
+msgstr ""
+"SELECT * FROM roads_history \n"
+"    WHERE date_added < 'January 1, 2001' AND \n"
+"        ( date_deleted >= 'January 1, 2001' OR date_deleted IS NULL );"
+
+#. Tag: refname
+#: extras_historytable.xml:38
+#, no-c-format
+msgid "Postgis_Install_History"
+msgstr "Postgis_Install_History"
+
+#. Tag: refpurpose
+#: extras_historytable.xml:39
+#, no-c-format
+msgid ""
+"Creates a table that will hold some interesting values for managing history "
+"tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_historytable.xml:44
+#, no-c-format
+msgid ""
+"<funcdef>void <function>Postgis_Install_History</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>void <function>Postgis_Install_History</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: title
+#: extras_historytable.xml:52 extras_historytable.xml:92
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: extras_historytable.xml:54
+#, no-c-format
+msgid ""
+"Creates a table that will hold some interesting values for managing history "
+"tables. Creates a table called <varname>historic_information</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:58 extras_historytable.xml:100
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: title
+#: extras_historytable.xml:63 extras_historytable.xml:105
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:65
+#, no-c-format
+msgid "SELECT postgis_install_history();"
+msgstr "SELECT postgis_install_history();"
+
+#. Tag: title
+#: extras_historytable.xml:71 extras_historytable.xml:113
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: refname
+#: extras_historytable.xml:77
+#, no-c-format
+msgid "Postgis_Enable_History"
+msgstr "Postgis_Enable_History"
+
+#. Tag: refpurpose
+#: extras_historytable.xml:78
+#, no-c-format
+msgid ""
+"Registers a tablein the history_information table for tracking and also adds "
+"in side line history table and insert, update, delete rules on the table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_historytable.xml:83
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Postgis_Enable_History</function></funcdef> "
+"<paramdef><type>text </type> <parameter>p_schema</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>p_table</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>Postgis_Enable_History</function></funcdef> "
+"<paramdef><type>text </type> <parameter>p_schema</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>p_table</parameter></paramdef>"
+
+#. Tag: para
+#: extras_historytable.xml:94
+#, no-c-format
+msgid ""
+"Registers a table in the history_information table for tracking and also "
+"adds in side line history table with same name as table but prefixed with "
+"<varname>history</varname> in the same schema as the original table. Puts in "
+"insert, update, delete rules on the table. Any inserts,updates,deletes of "
+"the geometry are recorded in the history table."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:97
+#, no-c-format
+msgid ""
+"This function currently relies on a geometry column being registered in "
+"<varname>geometry_columns</varname> and fails if the geometry column is not "
+"present in <varname>geometry_columns</varname> table."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:107
+#, no-c-format
+msgid ""
+"CREATE TABLE roads(gid SERIAL PRIMARY KEY, road_name varchar(150));\n"
+"SELECT AddGeometryColumn('roads', 'geom', 26986, 'LINESTRING', 2);\n"
+"                                \n"
+"SELECT postgis_enable_history('public', 'roads', 'geom') As register_table;\n"
+"register_table\n"
+"--------------\n"
+"t\n"
+"\n"
+"INSERT INTO roads(road_name, geom) \n"
+"  VALUES('Test Street', ST_GeomFromText('LINESTRING(231660.5 832170,231647 "
+"832202,231627.5 832250.5)',26986));\n"
+"\n"
+"-- check transaction detail --\n"
+"SELECT date_added, last_operation, current_version \n"
+"FROM roads_history \n"
+"WHERE road_name = 'Test Street' ORDER BY date_added DESC;\n"
+"\n"
+"       date_added       | last_operation | current_version\n"
+"------------------------+----------------+-----------------\n"
+" 2011-02-07 12:44:36.92 | INSERT         | 2"
+msgstr ""
+"CREATE TABLE roads(gid SERIAL PRIMARY KEY, road_name varchar(150));\n"
+"SELECT AddGeometryColumn('roads', 'geom', 26986, 'LINESTRING', 2);\n"
+"                                \n"
+"SELECT postgis_enable_history('public', 'roads', 'geom') As register_table;\n"
+"register_table\n"
+"--------------\n"
+"t\n"
+"\n"
+"INSERT INTO roads(road_name, geom) \n"
+"  VALUES('Test Street', ST_GeomFromText('LINESTRING(231660.5 832170,231647 "
+"832202,231627.5 832250.5)',26986));\n"
+"\n"
+"-- check transaction detail --\n"
+"SELECT date_added, last_operation, current_version \n"
+"FROM roads_history \n"
+"WHERE road_name = 'Test Street' ORDER BY date_added DESC;\n"
+"\n"
+"       date_added       | last_operation | current_version\n"
+"------------------------+----------------+-----------------\n"
+" 2011-02-07 12:44:36.92 | INSERT         | 2"
diff --git a/doc/po/fr/extras_tigergeocoder.xml.po b/doc/po/fr/extras_tigergeocoder.xml.po
new file mode 100644
index 0000000..5935cf3
--- /dev/null
+++ b/doc/po/fr/extras_tigergeocoder.xml.po
@@ -0,0 +1,2407 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-17 19:35+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:6
+#, no-c-format
+msgid ""
+"A plpgsql based geocoder written to work with the <ulink url=\"http://www."
+"census.gov/geo/www/tiger/\">TIGER (Topologically Integrated Geographic "
+"Encoding and Referencing system ) / Line and Master Address database export</"
+"ulink> released by the US Census Bureau."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:7
+#, no-c-format
+msgid ""
+"There are four components to the geocoder: the data loader functions, the "
+"address normalizer, the address geocoder, and the reverse geocoder. The "
+"latest version updated to use the TIGER 2011 and 2012 census data is located "
+"in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder. It "
+"defaults to downloading and installing TIGER 2012 files."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:8
+#, no-c-format
+msgid ""
+"Although it is designed specifically for the US, a lot of the concepts and "
+"functions are applicable and can be adapted to work with other country "
+"address and road networks."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:9
+#, no-c-format
+msgid ""
+"The script builds a schema called <varname>tiger</varname> to house all the "
+"tiger related functions, reusable lookup data such as road type prefixes, "
+"suffixes, states, various control tables for managing data load, and "
+"skeleton base tables from which all the tiger loaded tables inherit from."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:10
+#, no-c-format
+msgid ""
+"Another schema called <varname>tiger_data</varname> is also created which "
+"houses all the census data for each state that the loader downloads from "
+"Census site and loads into the database. In the current model, each set of "
+"state tables is prefixed with the state code e.g <varname>ma_addr</varname>, "
+"<varname>ma_edges</varname> etc with constraints to enforce only that state "
+"data. Each of these tables inherits from the tables <varname>addr</varname>, "
+"<varname>faces</varname>, <varname>edges</varname>, etc located in the "
+"<varname>tiger schema</varname>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:12
+#, no-c-format
+msgid ""
+"All the geocode functions only reference the base tables, so there is no "
+"requirement that the data schema be called <varname>tiger_data</varname> or "
+"that data can't be further partitioned into other schemas -- e.g a different "
+"schema for each state, as long as all the tables inherit from the tables in "
+"the <varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:16
+#, no-c-format
+msgid ""
+"If you are using tiger geocoder (tiger_2010), you can upgrade the scripts "
+"using the accompanying upgrade_geocoder.bat / .sh scripts in tiger_2011. One "
+"major change between <varname>tiger_2010</varname> and <varname>tiger_2011/"
+"tiger_2012</varname> is that the county and <varname>county</varname> and "
+"<varname>state</varname> tables are no longer broken out by state. We'll be "
+"refining the upgrade scripts until release. If you have data from tiger_2010 "
+"and want replace with tiger_2012 refer to <xref linkend="
+"\"upgrade_tiger_geocoder\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:23
+#, no-c-format
+msgid ""
+"New in PostGIS 2.1.0 release is ability to install tiger geocoder with "
+"PostgreSQL extension model if you are running PostgreSQL 9.1+. Refer to "
+"<xref linkend=\"install_tiger_geocoder_extension\"/> for details."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:25
+#, no-c-format
+msgid ""
+"Also new in PostGIS 2.1.0 is integration with pagc address standardizer "
+"PostgreSQL extension which source can be downloaded from <ulink url=\"http://"
+"sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql\">PAGC "
+"PostgreSQL address standardizer extension</ulink> and after install and "
+"install of the library in your PostGIS database, you can use the <xref "
+"linkend=\"Pagc_Normalize_Address\"/> function as a drop in replacement for "
+"in-built <xref linkend=\"Normalize_Address\"/>. Refer to <xref linkend="
+"\"installing_pagc_address_standardizer\"/> for compile and installation "
+"instructions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:29
+#, no-c-format
+msgid "Design:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:30
+#, no-c-format
+msgid ""
+"The goal of this project is to build a fully functional geocoder that can "
+"process an arbitrary United States address string and using normalized TIGER "
+"census data, produce a point geometry and rating reflecting the location of "
+"the given address and likeliness of the location. The higher the rating "
+"number the worse the result."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:32
+#, no-c-format
+msgid ""
+"The <varname>reverse_geocode</varname> function, introduced in PostGIS 2.0.0 "
+"is useful for deriving the street address and cross streets of a GPS "
+"location."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:33
+#, no-c-format
+msgid ""
+"The geocoder should be simple for anyone familiar with PostGIS to install "
+"and use, and should be easily installable and usable on all platforms "
+"supported by PostGIS."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:34
+#, no-c-format
+msgid ""
+"It should be robust enough to function properly despite formatting and "
+"spelling errors."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:35
+#, no-c-format
+msgid ""
+"It should be extensible enough to be used with future data updates, or "
+"alternate data sources with a minimum of coding changes."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:37
+#, no-c-format
+msgid ""
+"The <varname>tiger</varname> schema must be added to the database search "
+"path for the functions to work properly."
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:41
+#, no-c-format
+msgid "Tiger Geocoder"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:43
+#, no-c-format
+msgid ""
+"There are a couple other open source geocoders for PostGIS, that unlike "
+"tiger geocoder have the advantage of multi-country geocoding support"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:45
+#, no-c-format
+msgid ""
+"<ulink url=\"http://wiki.openstreetmap.org/wiki/Nominatim\">Nominatim</"
+"ulink> and uses OpenStreetMap gazeteer formatted data. It requires osm2pgsql "
+"for loading the data, PostgreSQL 8.4+ and PostGIS 1.5+ to function. It is "
+"packaged as a webservice interface and seems designed to be called as a "
+"webservice. Just like the tiger geocoder, it has both a geocoder and a "
+"reverse geocoder component. From the documentation, it is unclear if it has "
+"a pure SQL interface like the tiger geocoder, or if a good deal of the logic "
+"is implemented in the web interface."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:48
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.gisgraphy.com/\">GIS Graphy</ulink> also utilizes "
+"PostGIS and like Nominatim works with OpenStreetMap (OSM) data. It comes "
+"with a loader to load OSM data and similar to Nominatim is capable of "
+"geocoding not just US. Much like Nominatim, it runs as a webservice and "
+"relies on Java 1.5, Servlet apps, Solr. GisGraphy is cross-platform and also "
+"has a reverse geocoder among some other neat features."
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:53
+#, no-c-format
+msgid "Drop_Indexes_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:55
+#, no-c-format
+msgid ""
+"<refpurpose>Generates a script that drops all non-primary key and non-unique "
+"indexes on tiger schema and user specified schema. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:60
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+
+#. Tag: title
+#: extras_tigergeocoder.xml:68 extras_tigergeocoder.xml:110
+#: extras_tigergeocoder.xml:152 extras_tigergeocoder.xml:208
+#: extras_tigergeocoder.xml:270 extras_tigergeocoder.xml:315
+#: extras_tigergeocoder.xml:355 extras_tigergeocoder.xml:394
+#: extras_tigergeocoder.xml:439 extras_tigergeocoder.xml:497
+#: extras_tigergeocoder.xml:554 extras_tigergeocoder.xml:609
+#: extras_tigergeocoder.xml:654 extras_tigergeocoder.xml:733
+#: extras_tigergeocoder.xml:818 extras_tigergeocoder.xml:865
+#: extras_tigergeocoder.xml:937 extras_tigergeocoder.xml:1002
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:70
+#, no-c-format
+msgid ""
+"<para>Generates a script that drops all non-primary key and non-unique "
+"indexes on tiger schema and user specified schema. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:71
+#, no-c-format
+msgid ""
+"This is useful for minimizing index bloat that may confuse the query planner "
+"or take up unnecessary space. Use in combination with <xref linkend="
+"\"Install_Missing_Indexes\"/> to add just the indexes used by the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:74 extras_tigergeocoder.xml:158
+#: extras_tigergeocoder.xml:277 extras_tigergeocoder.xml:359
+#: extras_tigergeocoder.xml:402 extras_tigergeocoder.xml:457
+#: extras_tigergeocoder.xml:617 extras_tigergeocoder.xml:891
+#: extras_tigergeocoder.xml:963
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:81 extras_tigergeocoder.xml:122
+#: extras_tigergeocoder.xml:165 extras_tigergeocoder.xml:409
+#: extras_tigergeocoder.xml:464 extras_tigergeocoder.xml:522
+#: extras_tigergeocoder.xml:577 extras_tigergeocoder.xml:624
+#: extras_tigergeocoder.xml:700 extras_tigergeocoder.xml:784
+#: extras_tigergeocoder.xml:828 extras_tigergeocoder.xml:896
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:82
+#, no-c-format
+msgid ""
+"SELECT drop_indexes_generate_script() As actionsql;\n"
+"actionsql\n"
+"---------------------------------------------------------\n"
+"DROP INDEX tiger.idx_tiger_countysub_lookup_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_edges_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_faces_countyfp;\n"
+"DROP INDEX tiger.tiger_place_the_geom_gist;\n"
+"DROP INDEX tiger.tiger_edges_the_geom_gist;\n"
+"DROP INDEX tiger.tiger_state_the_geom_gist;\n"
+"DROP INDEX tiger.idx_tiger_addr_least_address;\n"
+"DROP INDEX tiger.idx_tiger_addr_tlid;\n"
+"DROP INDEX tiger.idx_tiger_addr_zip;\n"
+"DROP INDEX tiger.idx_tiger_county_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_county_lookup_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_county_lookup_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_county_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_county_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_county_the_geom_gist;\n"
+"DROP INDEX tiger.idx_tiger_countysub_lookup_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_cousub_cousubfp;\n"
+"DROP INDEX tiger.idx_tiger_cousub_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_the_geom_gist;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_least_address;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_tlid;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_zip;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_countyfp;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lookup_lower_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lookup_snd_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lower_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_snd_name;\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:88 extras_tigergeocoder.xml:129
+#: extras_tigergeocoder.xml:172 extras_tigergeocoder.xml:239
+#: extras_tigergeocoder.xml:293 extras_tigergeocoder.xml:332
+#: extras_tigergeocoder.xml:372 extras_tigergeocoder.xml:416
+#: extras_tigergeocoder.xml:474 extras_tigergeocoder.xml:532
+#: extras_tigergeocoder.xml:586 extras_tigergeocoder.xml:631
+#: extras_tigergeocoder.xml:710 extras_tigergeocoder.xml:796
+#: extras_tigergeocoder.xml:839 extras_tigergeocoder.xml:911
+#: extras_tigergeocoder.xml:979 extras_tigergeocoder.xml:1019
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:89 extras_tigergeocoder.xml:417
+#, no-c-format
+msgid ", <xref linkend=\"Missing_Indexes_Generate_Script\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:95
+#, no-c-format
+msgid "Drop_Nation_Tables_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:97
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that start "
+"with <varname>county_all</varname>, <varname>state_all</varname> or stae "
+"code followed by <varname>county</varname> or <varname>state</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:102
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_Nation_Tables_Generate_Script</function></"
+"funcdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:112
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that start "
+"with <varname>county_all</varname>, <varname>state_all</varname> or stae "
+"code followed by <varname>county</varname> or <varname>state</varname>. This "
+"is needed if you are upgrading from <varname>tiger_2010</varname> to "
+"<varname>tiger_2011</varname> data."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:115 extras_tigergeocoder.xml:320
+#: extras_tigergeocoder.xml:571 extras_tigergeocoder.xml:742
+#: extras_tigergeocoder.xml:1006
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:123
+#, no-c-format
+msgid ""
+"SELECT drop_nation_tables_generate_script();\n"
+"DROP TABLE tiger_data.county_all;\n"
+"DROP TABLE tiger_data.county_all_lookup;\n"
+"DROP TABLE tiger_data.state_all;\n"
+"DROP TABLE tiger_data.ma_county;\n"
+"DROP TABLE tiger_data.ma_state;"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:136
+#, no-c-format
+msgid "Drop_State_Tables_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:138
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that are "
+"prefixed with the state abbreviation. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:143
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
+"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
+"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:154
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that are "
+"prefixed with the state abbreviation. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified. This function is "
+"useful for dropping tables of a state just before you reload a state in case "
+"something went wrong during your previous load."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:166
+#, no-c-format
+msgid ""
+"SELECT drop_state_tables_generate_script('PA');\n"
+"DROP TABLE tiger_data.pa_addr;\n"
+"DROP TABLE tiger_data.pa_county;\n"
+"DROP TABLE tiger_data.pa_county_lookup;\n"
+"DROP TABLE tiger_data.pa_cousub;\n"
+"DROP TABLE tiger_data.pa_edges;\n"
+"DROP TABLE tiger_data.pa_faces;\n"
+"DROP TABLE tiger_data.pa_featnames;\n"
+"DROP TABLE tiger_data.pa_place;\n"
+"DROP TABLE tiger_data.pa_state;\n"
+"DROP TABLE tiger_data.pa_zip_lookup_base;\n"
+"DROP TABLE tiger_data.pa_zip_state;\n"
+"DROP TABLE tiger_data.pa_zip_state_loc;"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:178
+#, no-c-format
+msgid "Geocode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:180
+#, no-c-format
+msgid ""
+"Takes in an address as a string (or other normalized address) and outputs a "
+"set of possible locations which include a point geometry in NAD 83 long lat, "
+"a normalized address for each, and the rating. The lower the rating the more "
+"likely the match. Results are sorted by lowest rating first. Can optionally "
+"pass in maximum results, defaults to 10, and restrict_region (defaults to "
+"NULL)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_tigergeocoder.xml:185
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>geocode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>address</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_results=10</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>geocode</function></funcdef> <paramdef><type>norm_addy </type> "
+"<parameter>in_addy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>max_results=10</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>setof record <function>geocode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>address</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_results=10</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>geocode</function></funcdef> <paramdef><type>norm_addy </type> "
+"<parameter>in_addy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>max_results=10</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:210
+#, no-c-format
+msgid ""
+"Takes in an address as a string (or already normalized address) and outputs "
+"a set of possible locations which include a point geometry in NAD 83 long "
+"lat, a <varname>normalized_address</varname> (addy) for each, and the "
+"rating. The lower the rating the more likely the match. Results are sorted "
+"by lowest rating first. Uses Tiger data (edges,faces,addr), PostgreSQL fuzzy "
+"string matching (soundex,levenshtein) and PostGIS line interpolation "
+"functions to interpolate address along the Tiger edges. The higher the "
+"rating the less likely the geocode is right. The geocoded point is defaulted "
+"to offset 10 meters from center-line off to side (L/R) of street address is "
+"located on."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:214
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 to support Tiger 2010 structured data and revised some logic "
+"to improve speed, accuracy of geocoding, and to offset point from centerline "
+"to side of street address is located on. New parameter max_results useful "
+"for specifying ot just return the best result."
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:220 extras_tigergeocoder.xml:283
+#: extras_tigergeocoder.xml:365
+#, no-c-format
+msgid "Examples: Basic"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:221
+#, no-c-format
+msgid ""
+"The below examples timings are on a 3.0 GHZ single processor Windows 7 "
+"machine with 2GB ram running PostgreSQL 9.1rc1/PostGIS 2.0 loaded with all "
+"of MA,MN,CA, RI state Tiger data loaded."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:222
+#, no-c-format
+msgid "Exact matches are faster to compute (61ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:223
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_X(g.geomout) As lon, ST_Y(g.geomout) As lat, \n"
+"        (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('75 State Street, Boston MA 02109') As g;  \n"
+" rating |        lon        |       lat        | stno | street | styp |  "
+"city  | st |  zip  \n"
+"--------+-------------------+------------------+------+--------+------"
+"+--------+----+-------\n"
+"      0 | -71.0556722990239 | 42.3589914927049 |   75 | State  | St   | "
+"Boston | MA | 02109"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:224
+#, no-c-format
+msgid ""
+"Even if zip is not passed in the geocoder can guess (took about 122-150 ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:225
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"        (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('226 Hanover Street, Boston, MA',1) As g;  \n"
+" rating |         wktlonlat         | stno | street  | styp |  city  | st |  "
+"zip  \n"
+"--------+---------------------------+------+---------+------+--------+----"
+"+-------\n"
+"      1 | POINT(-71.05528 42.36316) |  226 | Hanover | St   | Boston | MA | "
+"02113"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:226
+#, no-c-format
+msgid ""
+"Can handle misspellings and provides more than one possible solution with "
+"ratings and takes longer (500ms)."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:227
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"    (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('31 - 37 Stewart Street, Boston, MA 02116') As g; \n"
+" rating |         wktlonlat         | stno | street | styp |  city  | st |  "
+"zip  \n"
+"--------+---------------------------+------+--------+------+--------+----"
+"+-------\n"
+"     70 | POINT(-71.06459 42.35113) |   31 | Stuart | St   | Boston | MA | "
+"02116"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:229
+#, no-c-format
+msgid ""
+"Using to do a batch geocode of addresses. Easiest is to set "
+"<varname>max_results=1</varname>. Only process those not yet geocoded (have "
+"no rating)."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:230
+#, no-c-format
+msgid ""
+"CREATE TABLE addresses_to_geocode(addid serial PRIMARY KEY, address text,\n"
+"                lon numeric, lat numeric, new_address text, rating "
+"integer);\n"
+"\n"
+"INSERT INTO addresses_to_geocode(address)\n"
+"VALUES ('529 Main Street, Boston MA, 02129'),\n"
+" ('77 Massachusetts Avenue, Cambridge, MA 02139'),\n"
+" ('25 Wizard of Oz, Walaford, KS 99912323'),\n"
+" ('26 Capen Street, Medford, MA'),\n"
+" ('124 Mount Auburn St, Cambridge, Massachusetts 02138'),\n"
+" ('950 Main Street, Worcester, MA 01610');\n"
+" \n"
+"-- only update the first 3 addresses (323-704 ms -  there are caching and "
+"shared memory effects so first geocode you do is always slower) --\n"
+"-- for large numbers of addresses you don't want to update all at once\n"
+"-- since the whole geocode must commit at once \n"
+"-- For this example we rejoin with LEFT JOIN \n"
+"-- and set to rating to -1 rating if no match \n"
+"-- to ensure we don't regeocode a bad address \n"
+"UPDATE addresses_to_geocode\n"
+"  SET  (rating, new_address, lon, lat) \n"
+"        = ( COALESCE((g.geo).rating,-1), pprint_addy((g.geo).addy),\n"
+"           ST_X((g.geo).geomout)::numeric(8,5), ST_Y((g.geo).geomout)::"
+"numeric(8,5) )\n"
+"FROM (SELECT addid \n"
+"        FROM addresses_to_geocode \n"
+"        WHERE rating IS NULL ORDER BY addid LIMIT 3) As a\n"
+"        LEFT JOIN (SELECT addid, (geocode(address,1)) As geo\n"
+"    FROM addresses_to_geocode As ag\n"
+"        WHERE ag.rating IS NULL ORDER BY addid LIMIT 3) As g ON a.addid = g."
+"addid\n"
+"WHERE a.addid = addresses_to_geocode.addid;\n"
+"\n"
+"result\n"
+"-----\n"
+"Query returned successfully: 3 rows affected, 480 ms execution time.\n"
+"\n"
+"SELECT * FROM addresses_to_geocode WHERE rating is not null;\n"
+"\n"
+" addid |                   address                    |    lon    |   lat    "
+"|                new_address                | rating \n"
+"-------+----------------------------------------------+-----------+----------"
+"+-------------------------------------------+--------\n"
+"     1 | 529 Main Street, Boston MA, 02129            | -71.07181 | 42.38359 "
+"| 529 Main St, Boston, MA 02129             |      0\n"
+"     2 | 77 Massachusetts Avenue, Cambridge, MA 02139 | -71.09428 | 42.35988 "
+"| 77 Massachusetts Ave, Cambridge, MA 02139 |      0\n"
+"     3 | 25 Wizard of Oz, Walaford, KS 99912323       |           |          "
+"|                                           |     -1"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:233
+#, no-c-format
+msgid "Examples: Using Geometry filter"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:234
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"    (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, \n"
+"        (addy).location As city, (addy).stateabbrev As st,(addy).zip \n"
+"  FROM geocode('100 Federal Street, MA',\n"
+"                3, \n"
+"                (SELECT ST_Union(the_geom) \n"
+"                        FROM place WHERE statefp = '25' AND name = 'Lynn')::"
+"geometry\n"
+"                ) As g;\n"
+"\n"
+" rating |        wktlonlat         | stno | street  | styp | city | st |  "
+"zip\n"
+"--------+--------------------------+------+---------+------+------+----"
+"+-------\n"
+"      8 | POINT(-70.96796 42.4659) |  100 | Federal | St   | Lynn | MA | "
+"01905\n"
+"Total query runtime: 245 ms."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:240
+#, no-c-format
+msgid ""
+", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_SnapToGrid\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:246
+#, no-c-format
+msgid "Geocode_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:248
+#, no-c-format
+msgid ""
+"Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
+"of possible locations on the first cross street that is at the intersection, "
+"also includes a point geometry in NAD 83 long lat, a normalized address for "
+"each location, and the rating. The lower the rating the more likely the "
+"match. Results are sorted by lowest rating first. Can optionally pass in "
+"maximum results, defaults to 10"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:254
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>geocode_intersection</function></funcdef> "
+"<paramdef><type>text </type> <parameter> roadway1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> roadway2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> in_state</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> in_city</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter> in_zip</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>max_results=10</parameter></paramdef> <paramdef><type>norm_addy </"
+"type> <parameter>OUT addy</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>OUT geomout</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>OUT rating</parameter></paramdef>"
+msgstr ""
+"<funcdef>setof record <function>geocode_intersection</function></funcdef> "
+"<paramdef><type>text </type> <parameter> roadway1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> roadway2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> in_state</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> in_city</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter> in_zip</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>max_results=10</parameter></paramdef> <paramdef><type>norm_addy </"
+"type> <parameter>OUT addy</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>OUT geomout</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>OUT rating</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:272
+#, no-c-format
+msgid ""
+"Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
+"of possible locations on the first cross street that is at the intersection, "
+"also includes a point geometry in NAD 83 long lat, a normalized address for "
+"each location, and the rating. The lower the rating the more likely the "
+"match. Results are sorted by lowest rating first. Can optionally pass in "
+"maximum results, defaults to 10. Returns <varname>normalized_address</"
+"varname> (addy) for each, geomout as the point location in nad 83 long lat, "
+"and the rating. The lower the rating the more likely the match. Results are "
+"sorted by lowest rating first. Uses Tiger data (edges,faces,addr), "
+"PostgreSQL fuzzy string matching (soundex,levenshtein)"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:284
+#, no-c-format
+msgid ""
+"The below examples timings are on a 3.0 GHZ single processor Windows 7 "
+"machine with 2GB ram running PostgreSQL 9.0/PostGIS 1.5 loaded with all of "
+"MA state Tiger data loaded. Currently a bit slow (3000 ms)"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:285
+#, no-c-format
+msgid ""
+"Testing on Windows 2003 64-bit 8GB on PostGIS 2.0 PostgreSQL 64-bit Tiger "
+"2011 data loaded -- (41ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:286
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(addy), st_astext(geomout),rating \n"
+"                        FROM geocode_intersection( 'Haverford St','Germania "
+"St', 'MA', 'Boston', '02130',1); \n"
+"           pprint_addy            |         st_astext          | rating\n"
+"----------------------------------+----------------------------+--------\n"
+"98 Haverford St, Boston, MA 02130 | POINT(-71.101375 42.31376) |      0"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:287
+#, no-c-format
+msgid ""
+"Even if zip is not passed in the geocoder can guess (took about 3500 ms on "
+"the windows 7 box), on the windows 2003 64-bit 741 ms"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:288
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(addy), st_astext(geomout),rating \n"
+"                                FROM geocode_intersection('Weld', 'School', "
+"'MA', 'Boston');\n"
+"          pprint_addy          |        st_astext         | rating\n"
+"-------------------------------+--------------------------+--------\n"
+" 98 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3\n"
+" 99 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:294
+#, no-c-format
+msgid ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:300
+#, no-c-format
+msgid "Get_Geocode_Setting"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:302
+#, no-c-format
+msgid ""
+"Returns value of specific setting stored in tiger.geocode_settings table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:307
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Get_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>Get_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:317
+#, no-c-format
+msgid ""
+"Returns value of specific setting stored in tiger.geocode_settings table. "
+"Settings allow you to toggle debugging of functions. Later plans will be to "
+"control rating with settings. Current list of settings are as follows:"
+msgstr ""
+
+#. Tag: screen
+#: extras_tigergeocoder.xml:318
+#, no-c-format
+msgid ""
+"name              | setting |  unit   | category  "
+"|                                                             short_desc\n"
+"--------------------------------+---------+---------+-----------"
+"+------------------------------------------------------------------------------------------------------\n"
+" debug_geocode_address          | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_addresss is "
+"called if true\n"
+" debug_geocode_intersection     | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_intersection is "
+"called if true\n"
+" debug_normalize_address        | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries \n"
+"                                |         |         |           |   and "
+"intermediate expressions when normalize_address is called if true\n"
+" debug_reverse_geocode          | false   | boolean | debug     | if true, "
+"outputs debug information in notice log such as queries \n"
+"                                                                |  and "
+"intermediate expressions when reverse_geocode\n"
+" reverse_geocode_numbered_roads | 0       | integer | rating    | For state "
+"and county highways, 0 - no preference in name\n"
+"                                |         |         |           |  , 1 - "
+"prefer the numbered highway name, 2 - prefer local state/county name\n"
+" use_pagc_address_parser        | false   | boolean | normalize | If set to "
+"true, will try to use the pagc_address normalizer instead of tiger built one"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:326 extras_tigergeocoder.xml:1012
+#, no-c-format
+msgid "Example return debugging setting"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:327
+#, no-c-format
+msgid ""
+"SELECT get_geocode_setting('debug_geocode_address) As result;\n"
+"result\n"
+"---------\n"
+"false"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:339
+#, no-c-format
+msgid "Get_Tract"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:341
+#, no-c-format
+msgid ""
+"Returns census tract or field from tract table of where the geometry is "
+"located. Default to returning short name of tract."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:346
+#, no-c-format
+msgid ""
+"<funcdef>text <function>get_tract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter> loc_geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> output_field=name</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>get_tract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter> loc_geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> output_field=name</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:357
+#, no-c-format
+msgid ""
+"Given a geometry will return the census tract location of that geometry. NAD "
+"83 long lat is assumed if no spatial ref sys is specified."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:366
+#, no-c-format
+msgid ""
+"SELECT get_tract(ST_Point(-71.101375, 42.31376) ) As tract_name;\n"
+"tract_name\n"
+"---------\n"
+"1203.01"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:367
+#, no-c-format
+msgid ""
+"--this one returns the tiger geoid\n"
+"SELECT get_tract(ST_Point(-71.101375, 42.31376), 'tract_id' ) As tract_id;\n"
+"tract_id\n"
+"---------\n"
+"25025120301"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:373
+#, no-c-format
+msgid "<para>></para>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:379
+#, no-c-format
+msgid "Install_Missing_Indexes"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:381
+#, no-c-format
+msgid ""
+"Finds all tables with key columns used in geocoder joins and filter "
+"conditions that are missing used indexes on those columns and will add them."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:386
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Install_Missing_Indexes</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>Install_Missing_Indexes</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:396
+#, no-c-format
+msgid ""
+"Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
+"varname> schemas with key columns used in geocoder joins and filters that "
+"are missing indexes on those columns and will output the SQL DDL to define "
+"the index for those tables and then execute the generated script. This is a "
+"helper function that adds new indexes needed to make queries faster that may "
+"have been missing during the load process. This function is a companion to "
+"<xref linkend=\"Missing_Indexes_Generate_Script\"/> that in addition to "
+"generating the create index script, also executes it. It is called as part "
+"of the <filename>update_geocode.sql</filename> upgrade script."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:410
+#, no-c-format
+msgid ""
+"SELECT install_missing_indexes();\n"
+"                 install_missing_indexes\n"
+"-------------------------\n"
+" t"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:423
+#, no-c-format
+msgid "Loader_Generate_Census_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:425
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger census state tract, bg, and tabblocks data tables, "
+"stage and load into <varname>tiger_data</varname> schema. Each state script "
+"is returned as a separate record."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:430
+#, no-c-format
+msgid ""
+"<funcdef>setof text <function>loader_generate_census_script</function></"
+"funcdef> <paramdef><type>text[]</type> <parameter>param_states</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+"<funcdef>setof text <function>loader_generate_census_script</function></"
+"funcdef> <paramdef><type>text[]</type> <parameter>param_states</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:441
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data census state <varname>tract</varname>, block "
+"groups <varname>bg</varname>, and <varname>tabblocks</varname> data tables, "
+"stage and load into <varname>tiger_data</varname> schema. Each state script "
+"is returned as a separate record."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:442
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the "
+"data. Note the smallest unit it does is a whole state. It will only process "
+"the files in the staging and temp folders."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502
+#, no-c-format
+msgid ""
+"It uses the following control tables to control the process and different OS "
+"shell syntax variations."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:448 extras_tigergeocoder.xml:506
+#: extras_tigergeocoder.xml:562
+#, no-c-format
+msgid ""
+"<varname>loader_variables</varname> keeps track of various variables such as "
+"census site, year, data and staging schemas"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:451 extras_tigergeocoder.xml:509
+#, no-c-format
+msgid ""
+"<varname>loader_platform</varname> profiles of various platforms and where "
+"the various executables are located. Comes with windows and linux. More can "
+"be added."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:454 extras_tigergeocoder.xml:512
+#: extras_tigergeocoder.xml:568
+#, no-c-format
+msgid ""
+"<varname>loader_lookuptables</varname> each record defines a kind of table "
+"(state, county), whether to process records in it and how to load them in. "
+"Defines the steps to import data, stage data, add, removes columns, indexes, "
+"and constraints for each. Each table is prefixed with the state and inherits "
+"from a table in the tiger schema. e.g. creates <varname>tiger_data.ma_faces</"
+"varname> which inherits from <varname>tiger.faces</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:458
+#, no-c-format
+msgid ""
+"includes this logic, but if you installed tiger geocoder prior to PostGIS "
+"2.0.0 alpha5, you'll need to run this on the states you have already done to "
+"get these additional tables."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:465
+#, no-c-format
+msgid ""
+"Generate script to load up data for select states in Windows shell script "
+"format."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:466
+#, no-c-format
+msgid ""
+"SELECT loader_generate_census_script(ARRAY['MA'], 'windows');\n"
+"-- result --\n"
+"set STATEDIR=\"\\gisdata\\www2.census.gov\\geo\\pvs\\tiger2010st"
+"\\25_Massachusetts\"\n"
+"set TMPDIR=\\gisdata\\temp\\\n"
+"set UNZIPTOOL=\"C:\\Program Files\\7-Zip\\7z.exe\"\n"
+"set WGETTOOL=\"C:\\wget\\wget.exe\"\n"
+"set PGBIN=C:\\projects\\pg\\pg91win\\bin\\\n"
+"set PGPORT=5432\n"
+"set PGHOST=localhost\n"
+"set PGUSER=postgres\n"
+"set PGPASSWORD=yourpasswordhere\n"
+"set PGDATABASE=tiger_postgis20\n"
+"set PSQL=\"%PGBIN%psql\"\n"
+"set SHP2PGSQL=\"%PGBIN%shp2pgsql\"\n"
+"cd \\gisdata\n"
+"\n"
+"%WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --"
+"no-parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --"
+"mirror --reject=html\n"
+"del %TMPDIR%\\*.* /Q\n"
+"%PSQL% -c \"DROP SCHEMA tiger_staging CASCADE;\"\n"
+"%PSQL% -c \"CREATE SCHEMA tiger_staging;\"\n"
+"cd %STATEDIR%\n"
+"for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% \n"
+"cd %TMPDIR%        \n"
+"%PSQL% -c \"CREATE TABLE tiger_data.MA_tract(CONSTRAINT pk_MA_tract PRIMARY "
+"KEY (tract_id) ) INHERITS(tiger.tract); \" \n"
+"%SHP2PGSQL% -c -s 4269 -g the_geom   -W \"latin1\" tl_2010_25_tract10.dbf "
+"tiger_staging.ma_tract10 | %PSQL%\n"
+"%PSQL% -c \"ALTER TABLE tiger_staging.MA_tract10 RENAME geoid10 TO "
+"tract_id;  SELECT loader_load_staged_data(lower('MA_tract10'), "
+"lower('MA_tract')); \"\n"
+"%PSQL% -c \"CREATE INDEX tiger_data_MA_tract_the_geom_gist ON tiger_data."
+"MA_tract USING gist(the_geom);\"\n"
+"%PSQL% -c \"VACUUM ANALYZE tiger_data.MA_tract;\"\n"
+"%PSQL% -c \"ALTER TABLE tiger_data.MA_tract ADD CONSTRAINT chk_statefp CHECK "
+"(statefp = '25');\"\n"
+":"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:467 extras_tigergeocoder.xml:525
+#, no-c-format
+msgid "Generate sh script"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:468
+#, no-c-format
+msgid ""
+"STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts\" \n"
+"TMPDIR=\"/gisdata/temp/\"\n"
+"UNZIPTOOL=unzip\n"
+"WGETTOOL=\"/usr/bin/wget\"\n"
+"export PGBIN=/usr/pgsql-9.0/bin\n"
+"export PGPORT=5432\n"
+"export PGHOST=localhost\n"
+"export PGUSER=postgres\n"
+"export PGPASSWORD=yourpasswordhere\n"
+"export PGDATABASE=geocoder\n"
+"PSQL=${PGBIN}/psql\n"
+"SHP2PGSQL=${PGBIN}/shp2pgsql\n"
+"cd /gisdata\n"
+"\n"
+"wget http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --no-"
+"parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --mirror --"
+"reject=html\n"
+"rm -f ${TMPDIR}/*.*\n"
+"${PSQL} -c \"DROP SCHEMA tiger_staging CASCADE;\"\n"
+"${PSQL} -c \"CREATE SCHEMA tiger_staging;\"\n"
+"cd $STATEDIR\n"
+"for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:481
+#, no-c-format
+msgid "Loader_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:483
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data, stage and load into <varname>tiger_data</"
+"varname> schema. Each state script is returned as a separate record. Latest "
+"version supports Tiger 2010 structural changes and also loads census tract, "
+"block groups, and blocks tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:488
+#, no-c-format
+msgid ""
+"<funcdef>setof text <function>loader_generate_script</function></funcdef> "
+"<paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+"<funcdef>setof text <function>loader_generate_script</function></funcdef> "
+"<paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:499
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data, stage and load into <varname>tiger_data</"
+"varname> schema. Each state script is returned as a separate record."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:500
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the "
+"data. Note the smallest unit it does is a whole state, but you can overwrite "
+"this by downloading the files yourself. It will only process the files in "
+"the staging and temp folders."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:515
+#, no-c-format
+msgid ""
+"Availability: 2.0.0 to support Tiger 2010 structured data and load census "
+"tract (tract), block groups (bg), and blocks (tabblocks) tables ."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:523
+#, no-c-format
+msgid ""
+"Generate script to load up data for 2 states in Windows shell script format."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:524
+#, no-c-format
+msgid ""
+"SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;\n"
+"-- result --\n"
+"set STATEDIR=\"\\gisdata\\www2.census.gov\\geo\\pvs\\tiger2010st"
+"\\44_Rhode_Island\"\n"
+"set TMPDIR=\\gisdata\\temp\\\n"
+"set UNZIPTOOL=\"C:\\Program Files\\7-Zip\\7z.exe\"\n"
+"set WGETTOOL=\"C:\\wget\\wget.exe\"\n"
+"set PGBIN=C:\\Program Files\\PostgreSQL\\8.4\\bin\\\n"
+"set PGPORT=5432\n"
+"set PGHOST=localhost\n"
+"set PGUSER=postgres\n"
+"set PGPASSWORD=yourpasswordhere\n"
+"set PGDATABASE=geocoder\n"
+"set PSQL=\"%PGBIN%psql\"\n"
+"set SHP2PGSQL=\"%PGBIN%shp2pgsql\"\n"
+"\n"
+"%WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-"
+"parent --relative --recursive --level=2 --accept=zip,txt --mirror --"
+"reject=html\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:526
+#, no-c-format
+msgid ""
+"SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;\n"
+"-- result --\n"
+"STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island\" \n"
+"TMPDIR=\"/gisdata/temp/\"\n"
+"UNZIPTOOL=unzip\n"
+"PGPORT=5432\n"
+"PGHOST=localhost\n"
+"PGUSER=postgres\n"
+"PGPASSWORD=yourpasswordhere\n"
+"PGDATABASE=geocoder\n"
+"PSQL=psql\n"
+"SHP2PGSQ=shp2pgsql\n"
+"\n"
+"wget http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-parent "
+"--relative --recursive --level=2 --accept=zip,txt --mirror --reject=html\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:539
+#, no-c-format
+msgid "Loader_Generate_Nation_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:541
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform that loads in the county "
+"and state lookup tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:546
+#, no-c-format
+msgid ""
+"<funcdef>text <function>loader_generate_nation_script</function></funcdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>loader_generate_nation_script</function></funcdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:556
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform that loads in the "
+"<varname>county_all</varname>, <varname>county_all_lookup</varname>, "
+"<varname>state_all</varname> tables into <varname>tiger_data</varname> "
+"schema. These inherit respectively from the <varname>county</varname>, "
+"<varname>county_lookup</varname>, <varname>state</varname> tables in "
+"<varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:557
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the data."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:558
+#, no-c-format
+msgid ""
+"It uses the following control tables <varname>tiger.loader_platform</"
+"varname>, <varname>tiger.loader_variables</varname>, and <varname>tiger."
+"loader_lookuptables</varname> to control the process and different OS shell "
+"syntax variations."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:565
+#, no-c-format
+msgid ""
+"<varname>loader_platform</varname> profiles of various platforms and where "
+"the various executables are located. Comes with windows and linux/unix. More "
+"can be added."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:572
+#, no-c-format
+msgid ""
+"If you were running <varname>tiger_2010</varname> version and you want to "
+"reload as state with <varname>tiger_2011</varname>, you'll need to for the "
+"very first load generate and run drop statements <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/> before you run this script."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:578
+#, no-c-format
+msgid "Generate script script to load nation data Windows."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:579
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:580
+#, no-c-format
+msgid "Generate script to load up data for Linux/Unix systems."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:581
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:593
+#, no-c-format
+msgid "Missing_Indexes_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:595
+#, no-c-format
+msgid ""
+"Finds all tables with key columns used in geocoder joins that are missing "
+"indexes on those columns and will output the SQL DDL to define the index for "
+"those tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:601
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:611
+#, no-c-format
+msgid ""
+"Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
+"varname> schemas with key columns used in geocoder joins that are missing "
+"indexes on those columns and will output the SQL DDL to define the index for "
+"those tables. This is a helper function that adds new indexes needed to make "
+"queries faster that may have been missing during the load process. As the "
+"geocoder is improved, this function will be updated to accommodate new "
+"indexes being used. If this function outputs nothing, it means all your "
+"tables have what we think are the key indexes already in place."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:625
+#, no-c-format
+msgid ""
+"SELECT missing_indexes_generate_script();\n"
+"-- output: This was run on a database that was created before many "
+"corrections were made to the loading script ---\n"
+"CREATE INDEX idx_tiger_county_countyfp ON tiger.county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_cousub_countyfp ON tiger.cousub USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_edges_tfidr ON tiger.edges USING btree(tfidr);\n"
+"CREATE INDEX idx_tiger_edges_tfidl ON tiger.edges USING btree(tfidl);\n"
+"CREATE INDEX idx_tiger_zip_lookup_all_zip ON tiger.zip_lookup_all USING "
+"btree(zip);\n"
+"CREATE INDEX idx_tiger_data_ma_county_countyfp ON tiger_data.ma_county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_cousub_countyfp ON tiger_data.ma_cousub USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_edges_countyfp ON tiger_data.ma_edges USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_faces_countyfp ON tiger_data.ma_faces USING "
+"btree(countyfp);"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:632
+#, no-c-format
+msgid ", <xref linkend=\"Install_Missing_Indexes\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:638
+#, no-c-format
+msgid "Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:640
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data)."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:646
+#, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+"<funcdef>norm_addy <function>normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:656 extras_tigergeocoder.xml:735
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This is the first step in the "
+"geocoding process to get all addresses into normalized postal form. No other "
+"data is required aside from what is packaged with the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:658
+#, no-c-format
+msgid ""
+"This function just uses the various direction/state/suffix lookup tables "
+"preloaded with the tiger_geocoder and located in the <varname>tiger</"
+"varname> schema, so it doesn't need you to download tiger census data or any "
+"other additional data to make use of it. You may find the need to add more "
+"abbreviations or alternative namings to the various lookup tables in the "
+"<varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:660 extras_tigergeocoder.xml:739
+#, no-c-format
+msgid ""
+"It uses various control lookup tables located in <varname>tiger</varname> "
+"schema to normalize the input address."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:661 extras_tigergeocoder.xml:740
+#, no-c-format
+msgid ""
+"Fields in the <varname>norm_addy</varname> type object returned by this "
+"function in this order where () indicates a field required by the geocoder, "
+"[] indicates an optional field:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:662 extras_tigergeocoder.xml:744
+#, no-c-format
+msgid ""
+"(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] "
+"[internal] [location] [stateAbbrev] [zip]"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:665 extras_tigergeocoder.xml:750
+#, no-c-format
+msgid "<varname>address</varname> is an integer: The street number"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:668 extras_tigergeocoder.xml:753
+#, no-c-format
+msgid ""
+"<varname>predirAbbrev</varname> is varchar: Directional prefix of road such "
+"as N, S, E, W etc. These are controlled using the <varname>direction_lookup</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:671 extras_tigergeocoder.xml:756
+#, no-c-format
+msgid "<varname>streetName</varname> varchar"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:674 extras_tigergeocoder.xml:759
+#, no-c-format
+msgid ""
+"<varname>streetTypeAbbrev</varname> varchar abbreviated version of street "
+"type: e.g. St, Ave, Cir. These are controlled using the "
+"<varname>street_type_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:677 extras_tigergeocoder.xml:762
+#, no-c-format
+msgid ""
+"<varname>postdirAbbrev</varname> varchar abbreviated directional suffice of "
+"road N, S, E, W etc. These are controlled using the "
+"<varname>direction_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:680 extras_tigergeocoder.xml:765
+#, no-c-format
+msgid ""
+"<varname>internal</varname> varchar internal address such as an apartment or "
+"suite number."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:683 extras_tigergeocoder.xml:768
+#, no-c-format
+msgid ""
+"<varname>location</varname> varchar usually a city or governing province."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:686 extras_tigergeocoder.xml:771
+#, no-c-format
+msgid ""
+"<varname>stateAbbrev</varname> varchar two character US State. e.g MA, NY, "
+"MI. These are controlled by the <varname>state_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:689 extras_tigergeocoder.xml:774
+#, no-c-format
+msgid "<varname>zip</varname> varchar 5-digit zipcode. e.g. 02109."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:692 extras_tigergeocoder.xml:777
+#, no-c-format
+msgid ""
+"<varname>parsed</varname> boolean - denotes if addess was formed from "
+"normalize process. The normalize_address function sets this to true before "
+"returning the address."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:701
+#, no-c-format
+msgid ""
+"Output select fields. Use <xref linkend=\"Pprint_Addy\"/> if you want a "
+"pretty textual output."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:702
+#, no-c-format
+msgid ""
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM (SELECT address, normalize_address(address) As na\n"
+"        FROM addresses_to_geocode) As g;\n"
+"        \n"
+"                        orig                         |  streetname   | "
+"streettypeabbrev \n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 28 Capen Street, Medford, MA                        | Capen         | St\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | Mount Auburn  | St\n"
+" 950 Main Street, Worcester, MA 01610                | Main          | St\n"
+" 529 Main Street, Boston MA, 02129                   | Main          | St\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | Massachusetts | Ave\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | Wizard of Oz  |"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:711
+#, no-c-format
+msgid ", <xref linkend=\"Pprint_Addy\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:717
+#, no-c-format
+msgid "Pagc_Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:719
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data). Requires address_standardizer extension."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:725
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>pagc_normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+"<funcdef>norm_addy <function>normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:737
+#, no-c-format
+msgid ""
+"This function just uses the various pagc_* lookup tables preloaded with the "
+"tiger_geocoder and located in the <varname>tiger</varname> schema, so it "
+"doesn't need you to download tiger census data or any other additional data "
+"to make use of it. You may find the need to add more abbreviations or "
+"alternative namings to the various lookup tables in the <varname>tiger</"
+"varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:741
+#, no-c-format
+msgid ""
+"There are slight variations in casing and formatting over the <xref linkend="
+"\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:743
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:745
+#, no-c-format
+msgid ""
+"The native standardaddr of address_standardizer extension is at this time a "
+"bit richer than norm_addy since its designed to support international "
+"addresses (including country). standardaddr equivalent fields are:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:746
+#, no-c-format
+msgid "house_num,predir, name, suftype, sufdir, unit, city, state, postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:785
+#, no-c-format
+msgid "Single call example"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:786
+#, no-c-format
+msgid ""
+"SELECT addy.*\n"
+"FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS "
+"addy;\n"
+"\n"
+"        \n"
+" address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | "
+"internal  |  location   | stateabbrev | zip | parsed\n"
+"---------+--------------+------------+------------------+---------------"
+"+-----------+-------------+-------------+-----+--------\n"
+"    9000 | E            | ROO        | ST               |               | "
+"SUITE 999 | SPRINGFIELD | CO          |     | t"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:788
+#, no-c-format
+msgid ""
+"Batch call. There are currently speed issues with the way "
+"postgis_tiger_geocoder wraps the address_standardizer. These will hopefully "
+"be resolved in later editions. To work around them, if you need speed for "
+"batch geocoding to call generate a normaddy in batch mode, you are "
+"encouraged to directly call the address_standardizer standardize_address "
+"function as shown below which is similar exercise to what we did in <xref "
+"linkend=\"Normalize_Address\"/> that uses data created in <xref linkend="
+"\"Geocode\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:792
+#, no-c-format
+msgid ""
+"WITH g AS (SELECT address, ROW((sa).house_num, (sa).predir, (sa).name\n"
+"  , (sa).suftype, (sa).sufdir, (sa).unit , (sa).city, (sa).state, (sa)."
+"postcode, true)::norm_addy As na\n"
+" FROM (SELECT address, standardize_address('tiger.pagc_lex'\n"
+"       , 'tiger.pagc_gaz'\n"
+"       , 'tiger.pagc_rules', address) As sa\n"
+"        FROM addresses_to_geocode) As g)\n"
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM  g;\n"
+" \n"
+" orig                                                |  streetname   | "
+"streettypeabbrev\n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 529 Main Street, Boston MA, 02129                   | MAIN          | ST\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | MASSACHUSETTS | AVE\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | WIZARD OF     |\n"
+" 26 Capen Street, Medford, MA                        | CAPEN         | ST\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | MOUNT AUBURN  | ST\n"
+" 950 Main Street, Worcester, MA 01610                | MAIN          | ST"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:797 extras_tigergeocoder.xml:913
+#, no-c-format
+msgid ", <xref linkend=\"Geocode\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:803
+#, no-c-format
+msgid "Pprint_Addy"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:805
+#, no-c-format
+msgid ""
+"Given a <varname>norm_addy</varname> composite type object, returns a pretty "
+"print representation of it. Usually used in conjunction with "
+"normalize_address."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:810
+#, no-c-format
+msgid ""
+"<funcdef>varchar <function>pprint_addy</function></funcdef> "
+"<paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>"
+msgstr ""
+"<funcdef>varchar <function>pprint_addy</function></funcdef> "
+"<paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:820
+#, no-c-format
+msgid ""
+"Given a <varname>norm_addy</varname> composite type object, returns a pretty "
+"print representation of it. No other data is required aside from what is "
+"packaged with the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:821
+#, no-c-format
+msgid "Usually used in conjunction with <xref linkend=\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:829
+#, no-c-format
+msgid "Pretty print a single address"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:830
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"            pretty_address\n"
+"---------------------------------------\n"
+" 202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:832
+#, no-c-format
+msgid "Pretty print address a table of addresses"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:833
+#, no-c-format
+msgid ""
+"SELECT address As orig, pprint_addy(normalize_address(address)) As "
+"pretty_address\n"
+"        FROM addresses_to_geocode;\n"
+"        \n"
+"                        orig                         |              "
+"pretty_address\n"
+"-----------------------------------------------------"
+"+-------------------------------------------\n"
+" 529 Main Street, Boston MA, 02129                   | 529 Main St, Boston "
+"MA, 02129\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | 77 Massachusetts Ave, "
+"Cambridge, MA 02139\n"
+" 28 Capen Street, Medford, MA                        | 28 Capen St, Medford, "
+"MA\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | 124 Mount Auburn St, "
+"Cambridge, MA 02138\n"
+" 950 Main Street, Worcester, MA 01610                | 950 Main St, "
+"Worcester, MA 01610"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:846
+#, no-c-format
+msgid "Reverse_Geocode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:848
+#, no-c-format
+msgid ""
+"Takes a geometry point in a known spatial ref sys and returns a record "
+"containing an array of theoretically possible addresses and an array of "
+"cross streets. If include_strnum_range = true, includes the street range in "
+"the cross streets."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:853
+#, no-c-format
+msgid ""
+"<funcdef>record <function>Reverse_Geocode</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>include_strnum_range=false</parameter></paramdef> "
+"<paramdef><type>geometry[] </type> <parameter>OUT intpt</parameter></"
+"paramdef> <paramdef><type>norm_addy[] </type> <parameter>OUT addy</"
+"parameter></paramdef> <paramdef><type>varchar[] </type> <parameter>OUT "
+"street</parameter></paramdef>"
+msgstr ""
+"<funcdef>record <function>Reverse_Geocode</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>include_strnum_range=false</parameter></paramdef> "
+"<paramdef><type>geometry[] </type> <parameter>OUT intpt</parameter></"
+"paramdef> <paramdef><type>norm_addy[] </type> <parameter>OUT addy</"
+"parameter></paramdef> <paramdef><type>varchar[] </type> <parameter>OUT "
+"street</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:867
+#, no-c-format
+msgid ""
+"Takes a geometry point in a known spatial ref and returns a record "
+"containing an array of theoretically possible addresses and an array of "
+"cross streets. If include_strnum_range = true, includes the street range in "
+"the cross streets. include_strnum_range defaults to false if not passed in. "
+"Addresses are sorted according to which road a point is closest to so first "
+"address is most likely the right one."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:870
+#, no-c-format
+msgid ""
+"Why do we say theoretical instead of actual addresses. The Tiger data "
+"doesn't have real addresses, but just street ranges. As such the theoretical "
+"address is an interpolated address based on the street ranges. Like for "
+"example interpolating one of my addresses returns a 26 Court St. and 26 "
+"Court Sq., though there is no such place as 26 Court Sq. This is because a "
+"point may be at a corner of 2 streets and thus the logic interpolates along "
+"both streets. The logic also assumes addresses are equally spaced along a "
+"street, which of course is wrong since you can have a municipal building "
+"taking up a good chunk of the street range and the rest of the buildings are "
+"clustered at the end."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:875
+#, no-c-format
+msgid ""
+"Note: Hmm this function relies on Tiger data. If you have not loaded data "
+"covering the region of this point, then hmm you will get a record filled "
+"with NULLS."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:876
+#, no-c-format
+msgid "Returned elements of the record are as follows:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:879
+#, no-c-format
+msgid ""
+"<varname>intpt</varname> is an array of points: These are the center line "
+"points on the street closest to the input point. There are as many points as "
+"there are addresses."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:882
+#, no-c-format
+msgid ""
+"<varname>addy</varname> is an array of norm_addy (normalized addresses): "
+"These are an array of possible addresses that fit the input point. The first "
+"one in the array is most likely. Generally there should be only one, except "
+"in the case when a point is at the corner of 2 or 3 streets, or the point is "
+"somewhere on the road and not off to the side."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:886
+#, no-c-format
+msgid ""
+"<varname>street</varname> an array of varchar: These are cross streets (or "
+"the street) (streets that intersect or are the street the point is projected "
+"to be on)."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:897
+#, no-c-format
+msgid ""
+"Example of a point at the corner of two streets, but closest to one. This is "
+"approximate location of MIT: 77 Massachusetts Ave, Cambridge, MA 02139 Note "
+"that although we don't have 3 streets, PostgreSQL will just return null for "
+"entries above our upper bound so safe to use. This includes street ranges"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:899
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, "
+"pprint_addy(r.addy[3]) As st3, \n"
+"                array_to_string(r.street, ',') As cross_streets \n"
+"        FROM reverse_geocode(ST_GeomFromText('POINT(-71.093902 "
+"42.359446)',4269),true) As r;\n"
+"       \n"
+" result\n"
+" ------\n"
+"      st1                                  | st2 | st3 |               "
+"cross_streets\n"
+"-------------------------------------------+-----+-----"
+"+----------------------------------------------\n"
+" 67 Massachusetts Ave, Cambridge, MA 02139 |     |     | 67 - 127 "
+"Massachusetts Ave,32 - 88 Vassar St"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:901
+#, no-c-format
+msgid ""
+"Here we choose not to include the address ranges for the cross streets and "
+"picked a location really really close to a corner of 2 streets thus could be "
+"known by two different addresses."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:903
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, \n"
+"pprint_addy(r.addy[3]) As st3, array_to_string(r.street, ',') As cross_str\n"
+"FROM reverse_geocode(ST_GeomFromText('POINT(-71.06941 42.34225)',4269)) As "
+"r;\n"
+"\n"
+"result\n"
+"--------\n"
+"               st1               |               st2               | st3 | "
+"cross_str\n"
+"---------------------------------+---------------------------------+-----"
+"+------------------------\n"
+" 5 Bradford St, Boston, MA 02118 | 49 Waltham St, Boston, MA 02118 |     | "
+"Waltham St"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:905
+#, no-c-format
+msgid ""
+"For this one we reuse our geocoded example from <xref linkend=\"Geocode\"/> "
+"and we only want the primary address and at most 2 cross streets."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:906
+#, no-c-format
+msgid ""
+"SELECT actual_addr, lon, lat, pprint_addy((rg).addy[1]) As int_addr1, \n"
+"        (rg).street[1] As cross1, (rg).street[2] As cross2\n"
+"FROM (SELECT address As actual_addr, lon, lat,\n"
+"    reverse_geocode( ST_SetSRID(ST_Point(lon,lat),4326) ) As rg\n"
+"    FROM addresses_to_geocode WHERE rating > -1) As foo;\n"
+"\n"
+"                     actual_addr                     |    lon    |   lat    "
+"|                 int_addr1                 |     cross1      |   cross2   \n"
+"-----------------------------------------------------+-----------+----------"
+"+-------------------------------------------+-----------------+------------\n"
+" 529 Main Street, Boston MA, 02129                   | -71.07181 | 42.38359 "
+"| 527 Main St, Boston, MA 02129             | Medford St      | \n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | -71.09428 | 42.35988 "
+"| 77 Massachusetts Ave, Cambridge, MA 02139 | Vassar St       | \n"
+" 26 Capen Street, Medford, MA                        | -71.12377 | 42.41101 "
+"| 9 Edison Ave, Medford, MA 02155           | Capen St        | Tesla Ave\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | -71.12304 | 42.37328 "
+"| 3 University Rd, Cambridge, MA 02138      | Mount Auburn St | \n"
+" 950 Main Street, Worcester, MA 01610                | -71.82368 | 42.24956 "
+"| 3 Maywood St, Worcester, MA 01603         | Main St         | Maywood Pl"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:919
+#, no-c-format
+msgid "Topology_Load_Tiger"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:921
+#, no-c-format
+msgid ""
+"Loads a defined region of tiger data into a PostGIS Topology and "
+"transforming the tiger data to spatial reference of the topology and "
+"snapping to the precision tolerance of the topology."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:927
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Topology_Load_Tiger</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topo_name</parameter></paramdef> "
+"<paramdef><type>varchar </type> <parameter>region_type</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>region_id</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>Topology_Load_Tiger</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topo_name</parameter></paramdef> "
+"<paramdef><type>varchar </type> <parameter>region_type</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>region_id</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:939
+#, no-c-format
+msgid ""
+"Loads a defined region of tiger data into a PostGIS Topology. The faces, "
+"nodes and edges are transformed to the spatial reference system of the "
+"target topology and points are snapped to the tolerance of the target "
+"topology. The created faces, nodes, edges maintain the same ids as the "
+"original Tiger data faces, nodes, edges so that datasets can be in the "
+"future be more easily reconciled with tiger data. Returns summary details "
+"about the process."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:942
+#, no-c-format
+msgid ""
+"This would be useful for example for redistricting data where you require "
+"the newly formed polygons to follow the center lines of streets and for the "
+"resulting polygons not to overlap."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:944
+#, no-c-format
+msgid ""
+"This function relies on Tiger data as well as the installation of the "
+"PostGIS topology module. For more information, refer to <xref linkend="
+"\"Topology\"/> and <xref linkend=\"installation_configuration\"/>. If you "
+"have not loaded data covering the region of interest, then no topology "
+"records will be created. This function will also fail if you have not "
+"created a topology using the topology functions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:946
+#, no-c-format
+msgid ""
+"Most topology validation errors are a result of tolerance issues where after "
+"transformation the edges points don't quite line up or overlap. To remedy "
+"the situation you may want to increase or lower the precision if you get "
+"topology validation failures."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:948
+#, no-c-format
+msgid "Required arguments:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:951
+#, no-c-format
+msgid ""
+"<varname>topo_name</varname> The name of an existing PostGIS topology to "
+"load data into."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:954
+#, no-c-format
+msgid ""
+"<varname>region_type</varname> The type of bounding region. Currently only "
+"<varname>place</varname> and <varname>county</varname> are supported. Plan "
+"is to have several more. This is the table to look into to define the region "
+"bounds. e.g <varname>tiger.place</varname>, <varname>tiger.county</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:957
+#, no-c-format
+msgid ""
+"<varname>region_id</varname> This is what TIGER calls the geoid. It is the "
+"unique identifier of the region in the table. For place it is the "
+"<varname>plcidfp</varname> column in <varname>tiger.place</varname>. For "
+"county it is the <varname>cntyidfp</varname> column in <varname>tiger."
+"county</varname>"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:966
+#, no-c-format
+msgid "Example: Boston, Massachusetts Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:967
+#, no-c-format
+msgid ""
+"Create a topology for Boston, Massachusetts in Mass State Plane Feet (2249) "
+"with tolerance 0.25 feet and then load in Boston city tiger faces, edges, "
+"nodes."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:969
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('topo_boston', 2249, 0.25);\n"
+"createtopology\n"
+"--------------\n"
+"   15\n"
+"-- 60,902 ms ~ 1 minute on windows 7 desktop running 9.1 (with 5 states "
+"tiger data loaded) \n"
+"SELECT tiger.topology_load_tiger('topo_boston', 'place', '2507000'); \n"
+"-- topology_loader_tiger --\n"
+"29722 edges holding in temporary. 11108 faces added. 1875 edges of faces "
+"added.  20576 nodes added.  \n"
+"19962 nodes contained in a face.  0 edge start end corrected.  31597 edges "
+"added. \n"
+" \n"
+"-- 41 ms --\n"
+"SELECT topology.TopologySummary('topo_boston');\n"
+" -- topologysummary--\n"
+"Topology topo_boston (15), SRID 2249, precision 0.25\n"
+"20576 nodes, 31597 edges, 11109 faces, 0 topogeoms in 0 layers\n"
+"\n"
+"-- 28,797 ms to validate yeh returned no errors --\n"
+"SELECT * FROM \n"
+"    topology.ValidateTopology('topo_boston'); \n"
+"    \n"
+"       error       |   id1    |    id2\n"
+"-------------------+----------+-----------"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:973
+#, no-c-format
+msgid "Example: Suffolk, Massachusetts Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:974
+#, no-c-format
+msgid ""
+"Create a topology for Suffolk, Massachusetts in Mass State Plane Meters "
+"(26986) with tolerance 0.25 meters and then load in Suffolk county tiger "
+"faces, edges, nodes."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:976
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);\n"
+"-- this took 56,275 ms ~ 1 minute on Windows 7 32-bit with 5 states of tiger "
+"loaded\n"
+"-- must have been warmed up after loading boston\n"
+"SELECT tiger.topology_load_tiger('topo_suffolk', 'county', '25025');  \n"
+"-- topology_loader_tiger --\n"
+" 36003 edges holding in temporary. 13518 faces added. 2172 edges of faces "
+"added. \n"
+" 24761 nodes added.  24075 nodes contained in a face.  0 edge start end "
+"corrected.  38175 edges added. \n"
+"-- 31 ms --\n"
+"SELECT topology.TopologySummary('topo_suffolk');\n"
+" -- topologysummary--\n"
+" Topology topo_suffolk (14), SRID 26986, precision 0.25\n"
+"24761 nodes, 38175 edges, 13519 faces, 0 topogeoms in 0 layers\n"
+"\n"
+"-- 33,606 ms to validate --\n"
+"SELECT * FROM \n"
+"    topology.ValidateTopology('topo_suffolk'); \n"
+"    \n"
+"       error       |   id1    |    id2\n"
+"-------------------+----------+-----------\n"
+" coincident nodes  | 81045651 |  81064553\n"
+" edge crosses node | 81045651 |  85737793\n"
+" edge crosses node | 81045651 |  85742215\n"
+" edge crosses node | 81045651 | 620628939\n"
+" edge crosses node | 81064553 |  85697815\n"
+" edge crosses node | 81064553 |  85728168\n"
+" edge crosses node | 81064553 |  85733413"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:980
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopoGeom\"/>, <xref linkend=\"TopologySummary\"/>, "
+"<xref linkend=\"ValidateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:986
+#, no-c-format
+msgid "Set_Geocode_Setting"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:988
+#, no-c-format
+msgid "Sets a setting that affects behavior of geocoder functions."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:993
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Set_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> setting_value</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>Set_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> setting_value</parameter></paramdef>"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:1004
+#, no-c-format
+msgid ""
+"Sets value of specific setting stored in <varname>tiger.geocode_settings</"
+"varname> table. Settings allow you to toggle debugging of functions. Later "
+"plans will be to control rating with settings. Current list of settings are "
+"listed in <xref linkend=\"Get_Geocode_Setting\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:1013
+#, no-c-format
+msgid ""
+"If you run <xref linkend=\"Geocode\"/> when this function is true, the "
+"NOTICE log will output timing and queries."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:1014
+#, no-c-format
+msgid ""
+"SELECT set_geocode_setting('debug_geocode_address', 'true') As result;\n"
+"result\n"
+"---------\n"
+"true"
+msgstr ""
diff --git a/doc/po/fr/extras_topology.xml.po b/doc/po/fr/extras_topology.xml.po
new file mode 100644
index 0000000..c2280aa
--- /dev/null
+++ b/doc/po/fr/extras_topology.xml.po
@@ -0,0 +1,4588 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# eric_desjardin <eric.desjardin at univ-reims.fr>, 2014
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-05-05 18:00+0000\n"
+"Last-Translator: eric_desjardin <eric.desjardin at univ-reims.fr>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: extras_topology.xml:3
+#, no-c-format
+msgid "Topology"
+msgstr "Topologie"
+
+#. Tag: para
+#: extras_topology.xml:4
+#, no-c-format
+msgid ""
+"The PostGIS Topology types and functions are used to manage topological "
+"objects such as faces, edges and nodes."
+msgstr ""
+"Les types et fonctions topologiques de PostGIS sont utilisés pour gérer les "
+"objets topologiques tels que les faces, les arêtes et les des noeuds. "
+
+#. Tag: para
+#: extras_topology.xml:5
+#, no-c-format
+msgid ""
+"Sandro Santilli's presentation at PostGIS Day Paris 2011 conference gives a "
+"good synopsis of PostGIS Topology and where it is headed <ulink url=\"http://"
+"strk.keybit.net/projects/postgis/Paris2011_TopologyWithPostGIS_2_0.pdf"
+"\">Topology with PostGIS 2.0 slide deck</ulink>."
+msgstr ""
+"La présentation de Sandro Santilli à la conférence \"PostGIS Day Paris "
+"2011\" donne une bonne synthèse de la topologie de PostGIS et de ces "
+"objectifs <ulink url=\"http://strk.keybit.net/projects/postgis/"
+"Paris2011_TopologyWithPostGIS_2_0.pdf\">Diaporama sur la topologie avec "
+"PostGIS 2.0</ulink> "
+
+#. Tag: para
+#: extras_topology.xml:6
+#, no-c-format
+msgid ""
+"Vincent Picavet provides a good synopsis and overview of what is Topology, "
+"how is it used, and various FOSS4G tools that support it in <ulink url="
+"\"http://2010.foss4g.org/presentations/3555.pdf\">State of the art of FOSS4G "
+"for topology and network analysis</ulink>."
+msgstr ""
+"Vincent Picavet fournit une bonne synthèse et un aperçu de ce qu'est la "
+"\"Topology\", comment il est utilisé, et divers outils de FOSS4G qui le "
+"supporte dans <ulink url=\"http://2010.foss4g.org/presentations/3555.pdf"
+"\">State of the art of FOSS4G for topology and network analysis</ulink>"
+
+#. Tag: para
+#: extras_topology.xml:7
+#, no-c-format
+msgid ""
+"An example of a topologically based GIS database is the <ulink url=\"http://"
+"www.census.gov/geo/www/tiger/overview.html\">US Census Topologically "
+"Integrated Geographic Encoding and Reference System (TIGER)</ulink> "
+"database. If you want to experiment with PostGIS topology and need some "
+"data, check out <xref linkend=\"Topology_Load_Tiger\"/>."
+msgstr ""
+"Un exemple de base de données SIG basée sur la topologie est celle de <ulink "
+"url=\"http://www.census.gov/geo/www/tiger/overview.html\">US Census "
+"Topologically Integrated Geographic Encoding and Reference System (TIGER)</"
+"ulink>. Si vous souhaitez expérimenter la topologie de PostGIS et avez "
+"besoin de données, suivez le lien <xref linkend=\"Topology_Load_Tiger\"/>."
+
+#. Tag: para
+#: extras_topology.xml:8
+#, no-c-format
+msgid ""
+"The PostGIS topology module has existed in prior versions of PostGIS but was "
+"never part of the Official PostGIS documentation. In PostGIS 2.0.0 major "
+"cleanup is going on to remove use of all deprecated functions in it, fix "
+"known usability issues, better document the features and functions, add new "
+"functions, and enhance to closer conform to SQL-MM standards."
+msgstr ""
+"Le module sur la topologie de PostGIS existe dans les versions précédentes "
+"de PostGIS mais n'a jamais fait partie de la documentation officielle de "
+"PostGIS. Dans la version 2.0.0 de PostGIS, un grand nettoyage est en cours "
+"pour en éliminer l'utilisation de toutes les fonctions obsolètes, résoudre "
+"les problèmes d'utilisabilité connus, mieux documenter les caractéristiques "
+"et les fonctions, ajouter de nouvelles fonctions, et l'améliorer afin de "
+"mieux se conformer aux normes SQL-MM."
+
+#. Tag: para
+#: extras_topology.xml:10
+#, no-c-format
+msgid ""
+"Details of this project can be found at <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/UsersWikiPostgisTopology\">PostGIS Topology Wiki</ulink>"
+msgstr ""
+"Les détails sur ce projet peuvent être trouvés à <ulink url=\"http://trac."
+"osgeo.org/postgis/wiki/UsersWikiPostgisTopology\">PostGIS Topology Wiki</"
+"ulink>"
+
+#. Tag: para
+#: extras_topology.xml:11
+#, no-c-format
+msgid ""
+"All functions and tables associated with this module are installed in a "
+"schema called <varname>topology</varname>."
+msgstr ""
+"Toutes les fonctions et toutes les tables associées à ce module sont "
+"installées dans un schéma appelé <varname>topology</varname>."
+
+#. Tag: para
+#: extras_topology.xml:12
+#, no-c-format
+msgid ""
+"Functions that are defined in SQL/MM standard are prefixed with ST_ and "
+"functions specific to PostGIS are not prefixed."
+msgstr ""
+"Les fonctions qui sont définies dans le standard SQL/MM sont préfixées par "
+"ST_ et les fonctions spécifiques à PostGIS ne sont pas préfixées."
+
+#. Tag: para
+#: extras_topology.xml:13
+#, no-c-format
+msgid ""
+"To build PostGIS 2.0 with topology support, compile with the --with-topology "
+"option as described in <xref linkend=\"postgis_installation\"/>. Some "
+"functions depend on GEOS 3.3+ so you should compile with GEOS 3.3+ to fully "
+"utilize the topology support."
+msgstr ""
+"Pour construire PostGIS 2.0 avec le support de la topologie, il faut "
+"compiler avec l'option --with-topology comme décrit dans <xref linkend="
+"\"postgis_installation\"/>. Quelques fonctions dépendent de GEOS 3.3+ aussi "
+"vous devez compiler avec GEOS 3.3+ pour pouvoir utiliser pleinement le "
+"support de la topologie."
+
+#. Tag: para
+#: extras_topology.xml:18
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by PostGIS Topology. "
+"Note we describe the casting behavior of these which is very important "
+"especially when designing your own functions."
+msgstr ""
+"Cette section liste les types de données de PostgreSQL installés par "
+"\"PostGIS Topology\". Notez que nous décrivons leurs comportements de "
+"transtypage, ce qui est très important en particulièrement lorsque l'on "
+"définit ses propres fonctions. "
+
+#. Tag: title
+#: extras_topology.xml:23
+#, no-c-format
+msgid "Topology Types"
+msgstr "Les types associés à \"Topology\""
+
+#. Tag: refname
+#: extras_topology.xml:27
+#, no-c-format
+msgid "getfaceedges_returntype"
+msgstr "getfaceedges_returntype"
+
+#. Tag: refpurpose
+#: extras_topology.xml:28
+#, no-c-format
+msgid ""
+"A composite type that consists of a sequence number and edge number. This is "
+"the return type for <varname>ST_GetFaceEdges</varname>"
+msgstr ""
+"Un type composé qui consiste en un numéro de séquence et un numéro d'arête. "
+"C'est le type renvoyé par <varname>ST_GetFaceEdges</varname>"
+
+#. Tag: title
+#: extras_topology.xml:31 extras_topology.xml:50 extras_topology.xml:99
+#: extras_topology.xml:138 extras_topology.xml:163 extras_topology.xml:240
+#: extras_topology.xml:287 extras_topology.xml:328 extras_topology.xml:367
+#: extras_topology.xml:404 extras_topology.xml:474 extras_topology.xml:522
+#: extras_topology.xml:570 extras_topology.xml:614 extras_topology.xml:662
+#: extras_topology.xml:708 extras_topology.xml:754 extras_topology.xml:809
+#: extras_topology.xml:855 extras_topology.xml:902 extras_topology.xml:959
+#: extras_topology.xml:1017 extras_topology.xml:1089 extras_topology.xml:1157
+#: extras_topology.xml:1223 extras_topology.xml:1278 extras_topology.xml:1326
+#: extras_topology.xml:1373 extras_topology.xml:1416 extras_topology.xml:1470
+#: extras_topology.xml:1564 extras_topology.xml:1659 extras_topology.xml:1701
+#: extras_topology.xml:1743 extras_topology.xml:1786 extras_topology.xml:1836
+#: extras_topology.xml:1880 extras_topology.xml:1932 extras_topology.xml:1990
+#: extras_topology.xml:2031 extras_topology.xml:2088 extras_topology.xml:2134
+#: extras_topology.xml:2206 extras_topology.xml:2260 extras_topology.xml:2331
+#: extras_topology.xml:2407 extras_topology.xml:2452 extras_topology.xml:2484
+#: extras_topology.xml:2522 extras_topology.xml:2570 extras_topology.xml:2665
+#: extras_topology.xml:2719 extras_topology.xml:2782 extras_topology.xml:2831
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: extras_topology.xml:32
+#, no-c-format
+msgid ""
+"A composite type that consists of a sequence number and edge number. This is "
+"the return type for <varname>ST_GetFaceEdges</varname> function."
+msgstr ""
+"Un type composé qui consiste en un numéro de séquence et un numéro d'arête. "
+"C'est le type renvoyé par la fonction <varname>ST_GetFaceEdges</varname>"
+
+#. Tag: para
+#: extras_topology.xml:35
+#, no-c-format
+msgid ""
+"<varname>sequence</varname> is an integer: Refers to a topology defined in "
+"the topology.topology table which defines the topology schema and srid."
+msgstr ""
+"<varname>sequence</varname> est un entier. Il fait référence à un élément "
+"topologique défini dans la table topology.topology qui définit le schéma de "
+"la topologie et le srid."
+
+#. Tag: para
+#: extras_topology.xml:38
+#, no-c-format
+msgid "<varname>edge</varname> is an integer: The identifier of an edge."
+msgstr ""
+"<varname>edge</varname> est un entier : c'est l'identifiant d'une arête."
+
+#. Tag: refname
+#: extras_topology.xml:46
+#, fuzzy, no-c-format
+msgid "TopoGeometry"
+msgstr "topogéométrie"
+
+#. Tag: refpurpose
+#: extras_topology.xml:47
+#, no-c-format
+msgid "A composite type representing a topologically defined geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:51
+#, fuzzy, no-c-format
+msgid ""
+"A composite type that refers to a topology geometry in a specific topology "
+"layer, having a specific type and a specific id. The elements of a "
+"TopoGeometry are the properties: topology_id, layer_id, id integer, type "
+"integer."
+msgstr ""
+"Un type composé qui fait référence à la géométrie d'un élément topologique "
+"dans une topologie spécifique, couche, ayant un type spécifique avec un id "
+"spécifique. Les éléments constituant la topogéométrie sont les propriétés : "
+"topology_id,layer_id,id integer,type integer."
+
+#. Tag: para
+#: extras_topology.xml:54
+#, no-c-format
+msgid ""
+"<varname>topology_id</varname> is an integer: Refers to a topology defined "
+"in the topology.topology table which defines the topology schema and srid."
+msgstr ""
+"<varname>topology_id</varname> est un entier : il fait référence à un "
+"élément topologique défini dans la table topology.topology qui définit le "
+"schéma de la topologie et le srid."
+
+#. Tag: para
+#: extras_topology.xml:57
+#, fuzzy, no-c-format
+msgid ""
+"<varname>layer_id</varname> is an integer: The layer_id in the layers table "
+"that the TopoGeometry belongs to. The combination of topology_id, layer_id "
+"provides a unique reference in the topology.layers table."
+msgstr ""
+"<varname>layer_id</varname> est un entier : le layer_id dans la table des "
+"couches \"layers\" à laquelle la topogéométrie appartient. La combinaison de "
+"topology_id, layer_id fournit une référence unique dans la table topology."
+"layers."
+
+#. Tag: para
+#: extras_topology.xml:60
+#, fuzzy, no-c-format
+msgid ""
+"<varname>id</varname> is an integer: The id is the autogenerated sequence "
+"number that uniquely defines the topogeometry in the respective topology "
+"layer."
+msgstr ""
+"<varname>id</varname> est un entier : le id est le numéro de séquence généré "
+"automatiquement qui définit d'une manière unique la topogéométrie dans la "
+"topologie correspondante."
+
+#. Tag: para
+#: extras_topology.xml:63
+#, no-c-format
+msgid ""
+"<varname>type</varname> integer between 1 - 4 that defines the geometry "
+"type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+msgstr ""
+"<varname>type</varname> un entier entre 1 et 4 qui définit le type de la "
+"géométrie :  1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+
+#. Tag: title
+#: extras_topology.xml:69
+#, no-c-format
+msgid "Casting Behavior"
+msgstr "Comportement du transtypage"
+
+#. Tag: para
+#: extras_topology.xml:70
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+"Cette section liste les transtypages autorisés pour ce type de donnée, "
+"qu'ils soient automatiques ou bien explicites ."
+
+#. Tag: entry
+#: extras_topology.xml:75
+#, no-c-format
+msgid "Cast To"
+msgstr "Transtypage vers"
+
+#. Tag: entry
+#: extras_topology.xml:76
+#, no-c-format
+msgid "Behavior"
+msgstr "Comportement"
+
+#. Tag: entry
+#: extras_topology.xml:79
+#, no-c-format
+msgid "geometry"
+msgstr "géométrie"
+
+#. Tag: entry
+#: extras_topology.xml:80
+#, no-c-format
+msgid "automatic"
+msgstr "automatique"
+
+#. Tag: title
+#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:149
+#: extras_topology.xml:173 extras_topology.xml:265 extras_topology.xml:305
+#: extras_topology.xml:345 extras_topology.xml:382 extras_topology.xml:423
+#: extras_topology.xml:499 extras_topology.xml:548 extras_topology.xml:587
+#: extras_topology.xml:636 extras_topology.xml:677 extras_topology.xml:723
+#: extras_topology.xml:769 extras_topology.xml:830 extras_topology.xml:877
+#: extras_topology.xml:933 extras_topology.xml:990 extras_topology.xml:1062
+#: extras_topology.xml:1130 extras_topology.xml:1197 extras_topology.xml:1246
+#: extras_topology.xml:1295 extras_topology.xml:1345 extras_topology.xml:1393
+#: extras_topology.xml:1442 extras_topology.xml:1488 extras_topology.xml:1542
+#: extras_topology.xml:1586 extras_topology.xml:1636 extras_topology.xml:1674
+#: extras_topology.xml:1716 extras_topology.xml:1758 extras_topology.xml:1809
+#: extras_topology.xml:1854 extras_topology.xml:1904 extras_topology.xml:1957
+#: extras_topology.xml:2006 extras_topology.xml:2065 extras_topology.xml:2108
+#: extras_topology.xml:2183 extras_topology.xml:2218 extras_topology.xml:2290
+#: extras_topology.xml:2380 extras_topology.xml:2421 extras_topology.xml:2471
+#: extras_topology.xml:2541 extras_topology.xml:2588 extras_topology.xml:2697
+#: extras_topology.xml:2746 extras_topology.xml:2807 extras_topology.xml:2857
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: refname
+#: extras_topology.xml:95
+#, no-c-format
+msgid "validatetopology_returntype"
+msgstr "validatetopology_returntype"
+
+#. Tag: refpurpose
+#: extras_topology.xml:96
+#, no-c-format
+msgid ""
+"A composite type that consists of an error message and id1 and id2 to denote "
+"location of error. This is the return type for <varname>ValidateTopology</"
+"varname>"
+msgstr ""
+"Un type composé qui consiste en un message d'erreur ainsi que id1 et id2 "
+"pour décrire la localisation de l'erreur. C'est le type renvoyé pour "
+"<varname>ValidateTopology</varname>"
+
+#. Tag: para
+#: extras_topology.xml:100
+#, no-c-format
+msgid ""
+"A composite type that consists of an error message and two integers. The "
+"<xref linkend=\"ValidateTopology\"/> function returns a set of these to "
+"denote validation errors and the id1 and id2 to denote the ids of the "
+"topology objects involved in the error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:103
+#, no-c-format
+msgid "<varname>error</varname> is varchar: Denotes type of error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:104
+#, no-c-format
+msgid ""
+"Current error descriptors are: coincident nodes, edge crosses node, edge not "
+"simple, edge end node geometry mis-match, edge start node geometry mismatch, "
+"face overlaps face,face within face,"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:107
+#, no-c-format
+msgid ""
+"<varname>id1</varname> is an integer: Denotes identifier of edge / face / "
+"nodes in error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:110
+#, no-c-format
+msgid ""
+"<varname>id2</varname> is an integer: For errors that involve 2 objects "
+"denotes the secondary edge / or node"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:125
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL domains installed by PostGIS Topology. "
+"Domains can be used like object types as return objects of functions or "
+"table columns. The distinction between a domain and a type is that a domain "
+"is an existing type with a check constraint bound to it."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:130
+#, no-c-format
+msgid "Topology Domains"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:134
+#, no-c-format
+msgid "TopoElement"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:135
+#, no-c-format
+msgid ""
+"An array of 2 integers generally used to identify a TopoGeometry component."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:139
+#, no-c-format
+msgid ""
+"An array of 2 integers used to represent the id (first element) and type "
+"(second element) of a topology primitive or the id (first element) and layer "
+"(second element) of a TopoGeometry. Sets of such pairs are used to define "
+"TopoGeometry objects (either simple or hierarchical)."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:142 extras_topology.xml:167 extras_topology.xml:258
+#: extras_topology.xml:298 extras_topology.xml:339 extras_topology.xml:377
+#: extras_topology.xml:417 extras_topology.xml:488 extras_topology.xml:538
+#: extras_topology.xml:581 extras_topology.xml:630 extras_topology.xml:823
+#: extras_topology.xml:870 extras_topology.xml:926 extras_topology.xml:983
+#: extras_topology.xml:1055 extras_topology.xml:1123 extras_topology.xml:1191
+#: extras_topology.xml:1240 extras_topology.xml:1387 extras_topology.xml:1436
+#: extras_topology.xml:1482 extras_topology.xml:1534 extras_topology.xml:1579
+#: extras_topology.xml:1628 extras_topology.xml:1668 extras_topology.xml:1710
+#: extras_topology.xml:1752 extras_topology.xml:1802 extras_topology.xml:1848
+#: extras_topology.xml:2059 extras_topology.xml:2102 extras_topology.xml:2177
+#: extras_topology.xml:2371 extras_topology.xml:2417 extras_topology.xml:2465
+#: extras_topology.xml:2534 extras_topology.xml:2581 extras_topology.xml:2688
+#: extras_topology.xml:2751 extras_topology.xml:2800 extras_topology.xml:2850
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:143
+#, no-c-format
+msgid ""
+"SELECT te[1] AS id, te[2] AS type FROM\n"
+"( SELECT ARRAY[1,2]::topology.topoelement AS te ) f;\n"
+" id | type\n"
+"----+------\n"
+"  1 |    2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:144
+#, no-c-format
+msgid ""
+"SELECT ARRAY[1,2]::topology.topoelement;\n"
+"  te\n"
+"-------\n"
+" {1,2}"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:145
+#, no-c-format
+msgid ""
+"--Example of what happens when you try to case a 3 element array to "
+"topoelement\n"
+"-- NOTE: topoement has to be a 2 element array so fails dimension check\n"
+"SELECT ARRAY[1,2,3]::topology.topoelement;\n"
+"ERROR:  value for domain topology.topoelement violates check constraint "
+"\"dimensions\""
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:150 extras_topology.xml:2422 extras_topology.xml:2542
+#, no-c-format
+msgid ", <xref linkend=\"topoelementarray\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:159
+#, no-c-format
+msgid "TopoElementArray"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:160
+#, no-c-format
+msgid "An array of TopoElement objects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:164
+#, no-c-format
+msgid ""
+"An array of 1 or more TopoElement objects, generally used to pass around "
+"components of TopoGeometry objects."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:168
+#, no-c-format
+msgid ""
+"SELECT '{{1,2},{4,3}}'::topology.topoelementarray As tea;\n"
+"  tea\n"
+"-------\n"
+"{{1,2},{4,3}}\n"
+"\n"
+"-- more verbose equivalent --\n"
+"SELECT ARRAY[ARRAY[1,2], ARRAY[4,3]]::topology.topoelementarray As tea;\n"
+"\n"
+"  tea\n"
+"-------\n"
+"{{1,2},{4,3}}\n"
+"\n"
+"--using the array agg function packaged with topology --\n"
+"SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
+"  FROM generate_series(1,4) As e CROSS JOIN generate_series(1,3) As t;\n"
+"  tea\n"
+"--------------------------------------------------------------------------\n"
+"{{1,1},{1,2},{1,3},{2,1},{2,2},{2,3},{3,1},{3,2},{3,3},{4,1},{4,2},{4,3}}"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:169
+#, no-c-format
+msgid ""
+"SELECT '{{1,2,4},{3,4,5}}'::topology.topoelementarray As tea;\n"
+"ERROR:  value for domain topology.topoelementarray violates check constraint "
+"\"dimensions\""
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:174
+#, no-c-format
+msgid ""
+", <xref linkend=\"GetTopoGeomElementArray\"/>, <xref linkend="
+"\"TopoElementArray_Agg\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:186
+#, no-c-format
+msgid ""
+"This section lists the Topology functions for building new Topology schemas, "
+"validating topologies, and managing TopoGeometry Columns"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:189
+#, no-c-format
+msgid "Topology and TopoGeometry Management"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:192
+#, no-c-format
+msgid "AddTopoGeometryColumn"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:193
+#, no-c-format
+msgid ""
+"Adds a topogeometry column to an existing table, registers this new column "
+"as a layer in topology.layer and returns the new layer_id."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:197
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>child_layer</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>child_layer</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:242
+#, no-c-format
+msgid ""
+"Each TopoGeometry object belongs to a specific Layer of a specific Topology. "
+"Before creating a TopoGeometry object you need to create its TopologyLayer. "
+"A Topology Layer is an association of a feature-table with the topology. It "
+"also contain type and hierarchy information. We create a layer using the "
+"AddTopoGeometryColumn() function:"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:244
+#, no-c-format
+msgid ""
+"This function will both add the requested column to the table and add a "
+"record to the topology.layer table with all the given info."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:245
+#, no-c-format
+msgid ""
+"If you don't specify [child_layer] (or set it to NULL) this layer would "
+"contain Basic TopoGeometries (composed by primitive topology elements). "
+"Otherwise this layer will contain hierarchical TopoGeometries (composed by "
+"TopoGeometries from the child_layer)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:248
+#, no-c-format
+msgid ""
+"Once the layer is created (it's id is returned by the AddTopoGeometryColumn "
+"function) you're ready to construct TopoGeometry objects in it"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:249
+#, no-c-format
+msgid ""
+"Valid <varname>feature_type</varname>s are: POINT, LINE, POLYGON, COLLECTION"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:252 extras_topology.xml:293 extras_topology.xml:334
+#: extras_topology.xml:410 extras_topology.xml:483 extras_topology.xml:575
+#: extras_topology.xml:817 extras_topology.xml:864 extras_topology.xml:1233
+#: extras_topology.xml:1381 extras_topology.xml:1430 extras_topology.xml:1476
+#: extras_topology.xml:1663 extras_topology.xml:1747 extras_topology.xml:1842
+#: extras_topology.xml:2268 extras_topology.xml:2529 extras_topology.xml:2576
+#: extras_topology.xml:2791 extras_topology.xml:2841
+#, no-c-format
+msgid "Availability: 1.?"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:259
+#, no-c-format
+msgid ""
+"-- Note for this example we created our new table in the ma_topo schema \n"
+"-- though we could have created it in a different schema -- in which case "
+"topology_name and schema_name would be different \n"
+"CREATE SCHEMA ma;\n"
+"CREATE TABLE ma.parcels(gid serial, parcel_id varchar(20) PRIMARY KEY, "
+"address text);\n"
+"SELECT topology.AddTopoGeometryColumn('ma_topo', 'ma', 'parcels', 'topo', "
+"'POLYGON');"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:260
+#, no-c-format
+msgid ""
+"CREATE SCHEMA ri;\n"
+"CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);\n"
+"SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', "
+"'LINE');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:267
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopoGeom\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:272
+#, no-c-format
+msgid "DropTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:274
+#, no-c-format
+msgid ""
+"Use with caution: Drops a topology schema and deletes its reference from "
+"topology.topology table and references to tables in that schema from the "
+"geometry_columns table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:279
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>DropTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>integer <function>DropTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:289
+#, no-c-format
+msgid ""
+"Drops a topology schema and deletes its reference from topology.topology "
+"table and references to tables in that schema from the geometry_columns "
+"table. This function should be USED WITH CAUTION, as it could destroy data "
+"you care about. If the schema does not exist, it just removes reference "
+"entries the named schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:299
+#, no-c-format
+msgid ""
+"Cascade drops the ma_topo schema and removes all references to it in "
+"topology.topology and geometry_columns."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:300
+#, no-c-format
+msgid "SELECT topology.DropTopology('ma_topo');"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:311
+#, no-c-format
+msgid "DropTopoGeometryColumn"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:313
+#, no-c-format
+msgid ""
+"Drops the topogeometry column from the table named <varname>table_name</"
+"varname> in schema <varname>schema_name</varname> and unregisters the "
+"columns from topology.layer table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:318
+#, no-c-format
+msgid ""
+"<funcdef>text <function>DropTopoGeometryColumn</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>DropTopoGeometryColumn</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:330
+#, no-c-format
+msgid ""
+"Drops the topogeometry column from the table named <varname>table_name</"
+"varname> in schema <varname>schema_name</varname> and unregisters the "
+"columns from topology.layer table. Returns summary of drop status. NOTE: it "
+"first sets all values to NULL before dropping to bypass referential "
+"integrity checks."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:340
+#, no-c-format
+msgid ""
+"SELECT topology.DropTopoGeometryColumn('ma_topo', 'parcel_topo', 'topo');"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:352
+#, no-c-format
+msgid "TopologySummary"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:354
+#, no-c-format
+msgid ""
+"Takes a topology name and provides summary totals of types of objects in "
+"topology"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:359
+#, no-c-format
+msgid ""
+"<funcdef>text <function>TopologySummary</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>TopologySummary</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:369
+#, no-c-format
+msgid ""
+"Takes a topology name and provides summary totals of types of objects in "
+"topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:372 extras_topology.xml:533 extras_topology.xml:671
+#: extras_topology.xml:717 extras_topology.xml:763 extras_topology.xml:1705
+#: extras_topology.xml:2001 extras_topology.xml:2054 extras_topology.xml:2172
+#: extras_topology.xml:2412 extras_topology.xml:2683
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:378
+#, no-c-format
+msgid ""
+"SELECT topology.topologysummary('city_data');\n"
+"                    topologysummary                     \n"
+"--------------------------------------------------------\n"
+" Topology city_data (329), SRID 4326, precision: 0\n"
+" 22 nodes, 24 edges, 10 faces, 29 topogeoms in 5 layers\n"
+" Layer 1, type Polygonal (3), 9 topogeoms\n"
+"  Deploy: features.land_parcels.feature\n"
+" Layer 2, type Puntal (1), 8 topogeoms\n"
+"  Deploy: features.traffic_signs.feature\n"
+" Layer 3, type Lineal (2), 8 topogeoms\n"
+"  Deploy: features.city_streets.feature\n"
+" Layer 4, type Polygonal (3), 3 topogeoms\n"
+"  Hierarchy level 1, child layer 1\n"
+"  Deploy: features.big_parcels.feature\n"
+" Layer 5, type Puntal (1), 1 topogeoms\n"
+"  Hierarchy level 1, child layer 2\n"
+"  Deploy: features.big_signs.feature"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:389
+#, no-c-format
+msgid "ValidateTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:391
+#, no-c-format
+msgid ""
+"Returns a set of validatetopology_returntype objects detailing issues with "
+"topology"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:396
+#, no-c-format
+msgid ""
+"<funcdef>setof validatetopology_returntype <function>ValidateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef>"
+msgstr ""
+"<funcdef>setof validatetopology_returntype <function>ValidateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:406
+#, no-c-format
+msgid ""
+"Returns a set of <xref linkend=\"validatetopology_returntype\"/> objects "
+"detailing issues with topology. Refer to <xref linkend="
+"\"validatetopology_returntype\"/> for listing of possible errors."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:412
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 more efficient edge crossing detection and fixes for false "
+"positives that were existent in prior versions."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:418
+#, no-c-format
+msgid ""
+"SELECT * FROM  topology.ValidateTopology('ma_topo');\n"
+"      error        | id1 | id2\n"
+"-------------------+-----+-----\n"
+"face without edges |   0 |"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:424
+#, no-c-format
+msgid ", <xref linkend=\"Topology_Load_Tiger\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:432
+#, no-c-format
+msgid "This section covers the topology functions for creating new topologies."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:435
+#, no-c-format
+msgid "Topology Constructors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:439
+#, no-c-format
+msgid "CreateTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:440
+#, no-c-format
+msgid ""
+"Creates a new topology schema and registers this new schema in the topology."
+"topology table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:444
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>CreateTopology</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>integer <function>CreateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>hasz</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>integer <function>CreateTopology</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>integer <function>CreateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>hasz</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:476
+#, no-c-format
+msgid ""
+"Creates a new schema with name <varname>topology_name</varname> consisting "
+"of tables (<varname>edge_data</varname>,<varname>face</varname>,"
+"<varname>node</varname>, <varname>relation</varname> and registers this new "
+"topology in the topology.topology table. It returns the id of the topology "
+"in the topology table. The srid is the spatial reference identified as "
+"defined in spatial_ref_sys table for that topology. Topologies must be "
+"uniquely named. The tolerance is measured in the units of the spatial "
+"reference system. If the tolerance is not specified defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:480
+#, no-c-format
+msgid ""
+"This is similar to the SQL/MM <xref linkend=\"ST_InitTopoGeo\"/> but a bit "
+"more functional. <varname>hasz</varname> defaults to false if not specified."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:489
+#, no-c-format
+msgid ""
+"This example creates a new schema called ma_topo that will store edges, "
+"faces, and relations in Massachusetts State Plane meters. The tolerance "
+"represents 1/2 meter since the spatial reference system is a meter based "
+"spatial reference system"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:491
+#, no-c-format
+msgid "SELECT topology.CreateTopology('ma_topo',26986, 0.5);"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:493
+#, no-c-format
+msgid "Create Rhode Island topology in State Plane ft"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:494
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('ri_topo',3438) As topoid;\n"
+"topoid\n"
+"------\n"
+"2"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:501
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_InitTopoGeo\"/>, <xref linkend=\"Topology_Load_Tiger\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:507
+#, no-c-format
+msgid "CopyTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:508
+#, no-c-format
+msgid ""
+"Makes a copy of a topology structure (nodes, edges, faces, layers and "
+"TopoGeometries)."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:513
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>CopyTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>existing_topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>new_name</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>CopyTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>existing_topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>new_name</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:524
+#, no-c-format
+msgid ""
+"Creates a new topology with name <varname>new_topology_name</varname> and "
+"SRID and precision taken from <varname>existing_topology_name</varname>, "
+"copies all nodes, edges and faces in there, copies layers and their "
+"TopoGeometries too."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:528
+#, no-c-format
+msgid ""
+"The new rows in topology.layer will contain synthesized values for "
+"schema_name, table_name and feature_column. This is because the TopoGeometry "
+"will only exist as a definition but won't be available in any user-level "
+"table yet."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:539
+#, no-c-format
+msgid "This example makes a backup of a topology called ma_topo"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:542
+#, no-c-format
+msgid "SELECT topology.CopyTopology('ma_topo', 'ma_topo_bakup');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:550 extras_topology.xml:2066
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:556
+#, no-c-format
+msgid "ST_InitTopoGeo"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:557
+#, no-c-format
+msgid ""
+"Creates a new topology schema and registers this new schema in the topology."
+"topology table and details summary of process."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:562
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_InitTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_InitTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:572
+#, no-c-format
+msgid ""
+"This is an SQL-MM equivalent of CreateTopology but lacks the spatial "
+"reference and tolerance options of CreateTopology and outputs a text "
+"description of creation instead of topology id."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:576
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.17"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:582
+#, no-c-format
+msgid ""
+"SELECT topology.ST_InitTopoGeo('topo_schema_to_create') AS topocreation;\n"
+"                      astopocreation\n"
+"------------------------------------------------------------\n"
+" Topology-Geometry 'topo_schema_to_create' (id:7) created."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:596
+#, no-c-format
+msgid "ST_CreateTopoGeo"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:598
+#, no-c-format
+msgid ""
+"<refpurpose>Adds a collection of geometries to a given empty topology and "
+"returns a message detailing success.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:605
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_CreateTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acollection</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_CreateTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acollection</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:616
+#, no-c-format
+msgid ""
+"<para>Adds a collection of geometries to a given empty topology and returns "
+"a message detailing success.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:620
+#, no-c-format
+msgid "Useful for populating an empty topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:624 extras_topology.xml:920 extras_topology.xml:977
+#: extras_topology.xml:1049 extras_topology.xml:1117 extras_topology.xml:1288
+#: extras_topology.xml:1338 extras_topology.xml:1796 extras_topology.xml:1898
+#: extras_topology.xml:1952 extras_topology.xml:2367
+#, no-c-format
+msgid "Availability: 2.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:625
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details -- X.3.18"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:631
+#, no-c-format
+msgid ""
+"-- Populate topology --\n"
+"SELECT topology.ST_CreateTopoGeo('ri_topo', \n"
+" ST_GeomFromText('MULTILINESTRING((384744 236928,384750 236923,384769 "
+"236911,384799 236895,384811 236890,384833 236884,\n"
+"  384844 236882,384866 236881,384879 236883,384954 236898,385087 "
+"236932,385117 236938,\n"
+"  385167 236938,385203 236941,385224 236946,385233 236950,385241 "
+"236956,385254 236971,\n"
+"  385260 236979,385268 236999,385273 237018,385273 237037,385271 "
+"237047,385267 237057,\n"
+"  385225 237125,385210 237144,385192 237161,385167 237192,385162 "
+"237202,385159 237214,\n"
+"  385159 237227,385162 237241,385166 237256,385196 237324,385209 "
+"237345,385234 237375,\n"
+"  385237 237383,385238 237399,385236 237407,385227 237419,385213 "
+"237430,385193 237439,\n"
+"  385174 237451,385170 237455,385169 237460,385171 237475,385181 "
+"237503,385190 237521,\n"
+"  385200 237533,385206 237538,385213 237541,385221 237542,385235 "
+"237540,385242 237541,\n"
+"  385249 237544,385260 237555,385270 237570,385289 237584,385292 "
+"237589,385291 237596,385284 237630))',3438) \n"
+"  );\n"
+"\n"
+"      st_createtopogeo\n"
+"----------------------------\n"
+" Topology ri_topo populated\n"
+" \n"
+" \n"
+"-- create tables and topo geometries --\n"
+"CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);\n"
+"\n"
+"SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', "
+"'LINE');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:637
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:643
+#, no-c-format
+msgid "TopoGeo_AddPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:645
+#, no-c-format
+msgid ""
+"Adds a point to an existing topology using a tolerance and possibly "
+"splitting an existing edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:652
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>TopoGeo_AddPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>TopoGeo_AddPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:664
+#, no-c-format
+msgid ""
+"Adds a point to an existing topology and return its identifier. The given "
+"point will snap to existing nodes or edges within given tolerance. An "
+"existing edge may be split by the snapped point."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:678
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddNode\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:689
+#, no-c-format
+msgid "TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:691
+#, no-c-format
+msgid ""
+"Adds a linestring to an existing topology using a tolerance and possibly "
+"splitting existing edges/faces. Returns edge identifiers"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:698
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>SETOF integer <function>TopoGeo_AddLineString</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>TopoGeo_AddLineString</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:710
+#, no-c-format
+msgid ""
+"Adds a linestring to an existing topology and return a set of edge "
+"identifiers forming it up. The given line will snap to existing nodes or "
+"edges within given tolerance. Existing edges and faces may be split by the "
+"line."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:724
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddEdge\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:735
+#, no-c-format
+msgid "TopoGeo_AddPolygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:737
+#, no-c-format
+msgid ""
+"Adds a polygon to an existing topology using a tolerance and possibly "
+"splitting existing edges/faces."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:744
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoly</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:756
+#, no-c-format
+msgid ""
+"Adds a polygon to an existing topology and return a set of face identifiers "
+"forming it up. The boundary of the given polygon will snap to existing nodes "
+"or edges within given tolerance. Existing edges and faces may be split by "
+"the boundary of the new polygon."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:770
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddLineString\"/>, <xref linkend=\"AddFace\"/>, "
+"<xref linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:785
+#, no-c-format
+msgid ""
+"This section covers topology functions for adding, moving, deleting, and "
+"splitting edges, faces, and nodes. All of these functions are defined by ISO "
+"SQL/MM."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:788
+#, no-c-format
+msgid "Topology Editors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:792
+#, no-c-format
+msgid "ST_AddIsoNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:794
+#, no-c-format
+msgid ""
+"Adds an isolated node to a face in a topology and returns the nodeid of the "
+"new node. If face is null, the node is still created."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:799
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_AddIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:811
+#, no-c-format
+msgid ""
+"Adds an isolated node with point location <varname>apoint</varname> to an "
+"existing face with faceid <varname>aface</varname> to a topology "
+"<varname>atopology</varname> and returns the nodeid of the new node."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:812
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology, the <varname>apoint</varname> is not a point geometry, the "
+"point is null, or the point intersects an existing edge (even at the "
+"boundaries) then an exception is thrown. If the point already exists as a "
+"node, an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:814
+#, no-c-format
+msgid ""
+"If <varname>aface</varname> is not null and the <varname>apoint</varname> is "
+"not within the face, then an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:818
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X+1.3.1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:831
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>, "
+"<xref linkend=\"ST_Intersects\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:837
+#, no-c-format
+msgid "ST_AddIsoEdge"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:839
+#, no-c-format
+msgid ""
+"<refpurpose>Adds an isolated edge defined by geometry <varname>alinestring</"
+"varname> to a topology connecting two existing isolated nodes "
+"<varname>anode</varname> and <varname>anothernode</varname> and returns the "
+"edge id of the new edge.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:844
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddIsoEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>alinestring</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_AddIsoEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>alinestring</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:857
+#, no-c-format
+msgid ""
+"<para>Adds an isolated edge defined by geometry <varname>alinestring</"
+"varname> to a topology connecting two existing isolated nodes "
+"<varname>anode</varname> and <varname>anothernode</varname> and returns the "
+"edge id of the new edge.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:858
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the <varname>alinestring</varname> "
+"geometry is not the same as the topology, any of the input arguments are "
+"null, or the nodes are contained in more than one face, or the nodes are "
+"start or end nodes of an existing edge, then an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:860
+#, no-c-format
+msgid ""
+"If the <varname>alinestring</varname> is not within the face of the face the "
+"<varname>anode</varname> and <varname>anothernode</varname> belong to, then "
+"an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:861
+#, no-c-format
+msgid ""
+"If the <varname>anode</varname> and <varname>anothernode</varname> are not "
+"the start and end points of the <varname>alinestring</varname> then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:865
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.4"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:878
+#, no-c-format
+msgid ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:884
+#, no-c-format
+msgid "ST_AddEdgeNewFaces"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:886
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, delete the original "
+"face and replace it with two new faces."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:891
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddEdgeNewFaces</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_AddEdgeNewFaces</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:904
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, delete the original "
+"face and replace it with two new faces. Returns the id of the newly added "
+"edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:910 extras_topology.xml:968 extras_topology.xml:1031
+#: extras_topology.xml:1099
+#, no-c-format
+msgid "Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:914 extras_topology.xml:972
+#, no-c-format
+msgid ""
+"If any arguments are null, the given nodes are unknown (must already exist "
+"in the <varname>node</varname> table of the topology schema) , the "
+"<varname>acurve</varname> is not a <varname>LINESTRING</varname>, the "
+"<varname>anode</varname> and <varname>anothernode</varname> are not the "
+"start and endpoints of <varname>acurve</varname> then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:917 extras_topology.xml:975 extras_topology.xml:1170
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the <varname>acurve</varname> "
+"geometry is not the same as the topology an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:921
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.12"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:941
+#, no-c-format
+msgid "ST_AddEdgeModFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:943
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, modify the original "
+"face and add a new face."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:948
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_AddEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:961
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, modify the original "
+"face and add a new face. Unless the face being split is the Universal Face, "
+"the new face will be on the right side of the newly added edge. Returns the "
+"id of the newly added edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:978
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.13"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:998
+#, no-c-format
+msgid "ST_RemEdgeNewFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1000
+#, no-c-format
+msgid ""
+"<refpurpose>Removes an edge and, if the removed edge separated two faces, "
+"delete the original faces and replace them with a new face.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1008
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_RemEdgeNewFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_RemEdgeNewFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1019
+#, no-c-format
+msgid ""
+"<para>Removes an edge and, if the removed edge separated two faces, delete "
+"the original faces and replace them with a new face.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1024
+#, no-c-format
+msgid ""
+"Returns the id of a newly created face or NULL, if no new face is created. "
+"No new face is created when the removed edge is dangling or isolated or "
+"confined with the universe face (possibly making the universe flood into the "
+"face on the other side)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1035 extras_topology.xml:1103
+#, no-c-format
+msgid ""
+"Refuses to remove an edge partecipating in the definition of an existing "
+"TopoGeometry. Refuses to heal two faces if any TopoGeometry is defined by "
+"only one of them (and not the other)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1042 extras_topology.xml:1110
+#, no-c-format
+msgid ""
+"If any arguments are null, the given edge is unknown (must already exist in "
+"the <varname>edge</varname> table of the topology schema), the topology name "
+"is invalid then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1050
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.14"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1070
+#, no-c-format
+msgid "ST_RemEdgeModFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1072
+#, no-c-format
+msgid ""
+"Removes an edge and, if the removed edge separated two faces, delete one of "
+"the them and modify the other to take the space of both."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1080
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_RemEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_RemEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1091
+#, no-c-format
+msgid ""
+"Removes an edge and, if the removed edge separated two faces, delete one of "
+"the them and modify the other to take the space of both. Preferentially "
+"keeps the face on the right, to be symmetric with ST_AddEdgeModFace also "
+"keeping it. Returns the id of the face remaining in place of the removed "
+"edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1118
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.15"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1138
+#, no-c-format
+msgid "ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1140
+#, no-c-format
+msgid ""
+"<refpurpose>Changes the shape of an edge without affecting the topology "
+"structure.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1147
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_ChangeEdgeGeom</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acurve</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_ChangeEdgeGeom</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acurve</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1159
+#, no-c-format
+msgid ""
+"<para>Changes the shape of an edge without affecting the topology structure."
+"</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1162
+#, no-c-format
+msgid ""
+"If any arguments are null, the given edge does not exist in the "
+"<varname>node</varname> table of the topology schema, the <varname>acurve</"
+"varname> is not a <varname>LINESTRING</varname>, the <varname>anode</"
+"varname> and <varname>anothernode</varname> are not the start and endpoints "
+"of <varname>acurve</varname> or the modification would change the underlying "
+"topology then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1171
+#, no-c-format
+msgid ""
+"If the new <varname>acurve</varname> is not simple, then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1173
+#, no-c-format
+msgid ""
+"If moving the edge from old to new position would hit an obstacle then an "
+"error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1179
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1182
+#, no-c-format
+msgid "Enhanced: 2.0.0 adds topological consistency enforcement"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1186
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details X.3.6"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1192
+#, no-c-format
+msgid ""
+"SELECT topology.ST_ChangeEdgeGeom('ma_topo', 1,  \n"
+"                ST_GeomFromText('LINESTRING(227591.9 893900.4,227622.6 "
+"893844.3,227641.6 893816.6, 227704.5 893778.5)', 26986) );\n"
+" ----\n"
+" Edge 1 changed"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1206
+#, no-c-format
+msgid "ST_ModEdgeSplit"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1208
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, modifying the "
+"original edge and adding a new edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1213
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_ModEdgeSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1225
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, modifying the "
+"original edge and adding a new edge. Updates all existing joined edges and "
+"relationships accordingly. Returns the identifier of the newly added node."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1234
+#, no-c-format
+msgid "Changed: 2.0 - In prior versions, this was misnamed ST_ModEdgesSplit"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1235 extras_topology.xml:1289 extras_topology.xml:1339
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.9"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1241
+#, no-c-format
+msgid ""
+"-- Add an edge --\n"
+" SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227592 "
+"893910, 227600 893910)', 26986) ) As edgeid;\n"
+" \n"
+"-- edgeid-\n"
+"3\n"
+"\n"
+"\n"
+"-- Split the edge  --\n"
+"SELECT topology.ST_ModEdgeSplit('ma_topo',  3, "
+"ST_SetSRID(ST_Point(227594,893910),26986)  ) As node_id;\n"
+"        node_id\n"
+"-------------------------\n"
+"7"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1247
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ModEdgeHeal\"/>, <xref linkend=\"ST_NewEdgeHeal\"/>, "
+"<xref linkend=\"AddEdge\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1258
+#, no-c-format
+msgid "ST_ModEdgeHeal"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1260
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, modifying the first "
+"edge and deleting the second edge. Returns the id of the deleted node."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1268
+#, no-c-format
+msgid ""
+"<funcdef>int <function>ST_ModEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+msgstr ""
+"<funcdef>int <function>ST_ModEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1280
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, modifying the first "
+"edge and deleting the second edge. Returns the id of the deleted node. "
+"Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1305
+#, no-c-format
+msgid "ST_NewEdgeHeal"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1307
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, deleting both edges, "
+"and replacing them with an edge whose direction is the same as the first "
+"edge provided."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1316
+#, no-c-format
+msgid ""
+"<funcdef>int <function>ST_NewEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+msgstr ""
+"<funcdef>int <function>ST_NewEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1328
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, deleting both edges, "
+"and replacing them with an edge whose direction is the same as the first "
+"edge provided. Returns the id of the new edge replacing the healed ones. "
+"Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1356
+#, no-c-format
+msgid "ST_MoveIsoNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1358
+#, no-c-format
+msgid ""
+"Moves an isolated node in a topology from one point to another. If new "
+"<varname>apoint</varname> geometry exists as a node an error is thrown. "
+"REturns description of move."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1363
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_MoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_MoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1375
+#, no-c-format
+msgid ""
+"Moves an isolated node in a topology from one point to another. If new "
+"<varname>apoint</varname> geometry exists as a node an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1376
+#, no-c-format
+msgid ""
+"If any arguments are null, the <varname>apoint</varname> is not a point, the "
+"existing node is not isolated (is a start or end point of an existing edge), "
+"new node location intersects an existing edge (even at the end points) then "
+"an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1377
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1382
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1388
+#, no-c-format
+msgid ""
+"-- Add an isolated node with no face  --\n"
+"SELECT topology.ST_AddIsoNode('ma_topo',  NULL, "
+"ST_GeomFromText('POINT(227579 893916)', 26986) ) As nodeid;\n"
+" nodeid\n"
+"--------\n"
+"      7\n"
+"-- Move the new node --\n"
+"SELECT topology.ST_MoveIsoNode('ma_topo', 7,  "
+"ST_GeomFromText('POINT(227579.5 893916.5)', 26986) ) As descrip; \n"
+"                      descrip\n"
+"----------------------------------------------------\n"
+"Isolated Node 7 moved to location 227579.5,893916.5"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1399
+#, no-c-format
+msgid "ST_NewEdgesSplit"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1401
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, deleting the "
+"original edge and replacing it with two new edges. Returns the id of the new "
+"node created that joins the new edges."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1406
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1418
+#, no-c-format
+msgid ""
+"Split an edge with edge id <varname>anedge</varname> by creating a new node "
+"with point location <varname>apoint</varname> along current edge, deleting "
+"the original edge and replacing it with two new edges. Returns the id of the "
+"new node created that joins the new edges. Updates all existing joined edges "
+"and relationships accordingly."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1426
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology, the <varname>apoint</varname> is not a point geometry, the "
+"point is null, the point already exists as a node, the edge does not "
+"correspond to an existing edge or the point is not within the edge then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1431
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.8"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1437
+#, no-c-format
+msgid ""
+"-- Add an edge  --\n"
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575 "
+"893917,227592 893900)', 26986) ) As edgeid;\n"
+"-- result-\n"
+"edgeid\n"
+"------\n"
+"        2\n"
+"-- Split the new edge --\n"
+"SELECT topology.ST_NewEdgesSplit('ma_topo', 2,  "
+"ST_GeomFromText('POINT(227578.5 893913.5)', 26986) ) As newnodeid; \n"
+" newnodeid\n"
+"---------\n"
+"       6"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1454
+#, no-c-format
+msgid "ST_RemoveIsoNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1456
+#, no-c-format
+msgid ""
+"<refpurpose>Removes an isolated node and returns description of action. If "
+"the node is not isolated (is start or end of an edge), then an exception is "
+"thrown.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1461
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1472
+#, no-c-format
+msgid ""
+"<para>Removes an isolated node and returns description of action. If the "
+"node is not isolated (is start or end of an edge), then an exception is "
+"thrown.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1477
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X+1.3.3"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1483
+#, no-c-format
+msgid ""
+"-- Add an isolated node with no face  --\n"
+"SELECT topology.ST_RemoveIsoNode('ma_topo',  7 ) As result;\n"
+"         result\n"
+"-------------------------\n"
+" Isolated node 7 removed"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1495
+#, no-c-format
+msgid "Topology Accessors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1498
+#, no-c-format
+msgid "GetEdgeByPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1500
+#, no-c-format
+msgid "Find the edge-id of an edge that intersects a given point"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1505
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetEdgeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>GetEdgeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+
+#. Tag: title
+#: extras_topology.xml:1516
+#, no-c-format
+msgid "Retrieve the id of an edge that intersects a Point"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1518
+#, no-c-format
+msgid ""
+"The function returns an integer (id-edge) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 then the point has to intersect the edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1519 extras_topology.xml:1567
+#, no-c-format
+msgid ""
+"If the point is the location of a node, then an exception is thrown. To "
+"avoid this run the GetNodeByPoint function."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1520
+#, no-c-format
+msgid "If the point doesn't intersect an edge, returns 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1521
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and there is more than one edge near the point then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1526
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function use ST_Intersects otherwise uses ST_DWithin."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1529 extras_topology.xml:1576 extras_topology.xml:1623
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1535 extras_topology.xml:1629
+#, no-c-format
+msgid "These examples use edges we created in <xref linkend=\"AddEdge\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1536
+#, no-c-format
+msgid ""
+"SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology."
+"GetEdgeByPoint('ma_topo',geom,0) As withnotol\n"
+"FROM ST_GeomFromEWKT('SRID=26986;POINT(227622.6 893843)') As geom;\n"
+" with1mtol | withnotol\n"
+"-----------+-----------\n"
+"         2 |         0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1537
+#, no-c-format
+msgid ""
+"SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As nearnode\n"
+"FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+"\n"
+"-- get error --\n"
+"ERROR:  Two or more edges found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1544
+#, no-c-format
+msgid ", <xref linkend=\"GetNodeByPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1550
+#, no-c-format
+msgid "GetFaceByPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1551
+#, no-c-format
+msgid "Find the face-id of a face that intersects a given point"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1555
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetFaceByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>GetFaceByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1565
+#, no-c-format
+msgid "Retrieve the id of a face that intersects a Point."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1566
+#, no-c-format
+msgid ""
+"The function returns an integer (id-face) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 then the point has to intersect the face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1568
+#, no-c-format
+msgid "If the point doesn't intersect a face, returns 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1569
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and there is more than one face near the point then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1573
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function uses ST_Intersects otherwise uses ST_DWithin."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1580
+#, no-c-format
+msgid "These examples use edges faces created in <xref linkend=\"AddFace\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1581
+#, no-c-format
+msgid ""
+"SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology."
+"GetFaceByPoint('ma_topo',geom,0) As withnotol\n"
+"        FROM ST_GeomFromEWKT('POINT(234604.6 899382.0)') As geom;\n"
+"        \n"
+"         with1mtol | withnotol\n"
+"        -----------+-----------\n"
+"                         1 |         0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1582
+#, no-c-format
+msgid ""
+"SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode\n"
+"        FROM ST_GeomFromEWKT('POINT(227591.9 893900.4)') As geom;\n"
+"        \n"
+"-- get error --\n"
+"ERROR:  Two or more faces found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1587
+#, no-c-format
+msgid ""
+", <xref linkend=\"GetNodeByPoint\"/>, <xref linkend=\"GetEdgeByPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1593
+#, no-c-format
+msgid "GetNodeByPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1595
+#, no-c-format
+msgid "Find the id of a node at a point location"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1600
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetNodeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>GetNodeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+
+#. Tag: title
+#: extras_topology.xml:1611
+#, no-c-format
+msgid "Retrieve the id of a node at a point location"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1613
+#, no-c-format
+msgid ""
+"The function return an integer (id-node) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 mean exactly intersection otherwise retrieve the "
+"node from an interval."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1614
+#, no-c-format
+msgid "If there isn't a node at the point, it return 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1615
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and near the point there are more than one node it "
+"throw an exception."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1620
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function use ST_Intersects otherwise will use "
+"ST_DWithin."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1630
+#, no-c-format
+msgid ""
+"SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode \n"
+" FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+"  nearnode\n"
+"----------\n"
+"        2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1631
+#, no-c-format
+msgid ""
+"SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance\n"
+" FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+" \n"
+" ----get error--\n"
+" ERROR:  Two or more nodes found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1638
+#, no-c-format
+msgid ", <xref linkend=\"GetEdgeByPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1644
+#, no-c-format
+msgid "GetTopologyID"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1646
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the id of a topology in the topology.topology table "
+"given the name of the topology.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1651 extras_topology.xml:1693
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetTopologyID</function></funcdef> "
+"<paramdef><type>varchar</type> <parameter>toponame</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>GetTopologyID</function></funcdef> "
+"<paramdef><type>varchar</type> <parameter>toponame</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1661
+#, no-c-format
+msgid ""
+"<para>Returns the id of a topology in the topology.topology table given the "
+"name of the topology.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1669
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologyID('ma_topo') As topo_id;\n"
+" topo_id\n"
+"---------\n"
+"       1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1675
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1686
+#, no-c-format
+msgid "GetTopologySRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1688
+#, no-c-format
+msgid ""
+"Returns the SRID of a topology in the topology.topology table given the name "
+"of the topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1703
+#, no-c-format
+msgid ""
+"Returns the spatial reference id of a topology in the topology.topology "
+"table given the name of the topology."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1711
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologySRID('ma_topo') As SRID;\n"
+" SRID\n"
+"-------\n"
+"  4326"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1717
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologyID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1728
+#, no-c-format
+msgid "GetTopologyName"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1730
+#, no-c-format
+msgid "Returns the name of a topology (schema) given the id of the topology."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1735
+#, no-c-format
+msgid ""
+"<funcdef>varchar <function>GetTopologyName</function></funcdef> "
+"<paramdef><type>integer</type> <parameter>topology_id</parameter></paramdef>"
+msgstr ""
+"<funcdef>varchar <function>GetTopologyName</function></funcdef> "
+"<paramdef><type>integer</type> <parameter>topology_id</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1745
+#, no-c-format
+msgid ""
+"Returns the topology name (schema) of a topology from the topology.topology "
+"table given the topology id of the topology."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1753
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologyName(1) As topo_name;\n"
+" topo_name\n"
+"-----------\n"
+" ma_topo"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1759
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyID\"/>, <xref "
+"linkend=\"GetTopologySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1770
+#, no-c-format
+msgid "ST_GetFaceEdges"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1772
+#, no-c-format
+msgid "Returns a set of ordered edges that bound <varname>aface</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1777
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>ST_GetFaceEdges</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>aface</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>getfaceedges_returntype <function>ST_GetFaceEdges</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>aface</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1788
+#, no-c-format
+msgid ""
+"Returns a set of ordered edges that bound <varname>aface</varname>. Each "
+"output consists of a sequence and edgeid. Sequence numbers start with value "
+"1."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1790
+#, no-c-format
+msgid ""
+"Enumeration of each ring edges start from the edge with smallest identifier. "
+"Order of edges follows a left-hand-rule (bound face is on the left of each "
+"directed edge)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1797
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.5"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1803
+#, no-c-format
+msgid ""
+"-- Returns the edges bounding face 1\n"
+"SELECT (topology.ST_GetFaceEdges('tt', 1)).*;\n"
+"-- result --\n"
+" sequence | edge\n"
+"----------+------\n"
+"        1 |   -4\n"
+"        2 |    5\n"
+"        3 |    7\n"
+"        4 |   -6\n"
+"        5 |    1\n"
+"        6 |    2\n"
+"        7 |    3\n"
+"(7 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1804
+#, no-c-format
+msgid ""
+"-- Returns the sequenc, edge id\n"
+"-- , and geometry of the edges that bound face 1\n"
+"-- If you just need geom and seq, can use ST_GetFaceGeometry\n"
+"SELECT t.seq, t.edge, geom\n"
+"FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge)\n"
+"        INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1810
+#, no-c-format
+msgid ", <xref linkend=\"AddFace\"/>, <xref linkend=\"ST_GetFaceGeometry\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1820
+#, no-c-format
+msgid "ST_GetFaceGeometry"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1822
+#, no-c-format
+msgid "Returns the polygon in the given topology with the specified face id."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1827
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1838
+#, no-c-format
+msgid ""
+"Returns the polygon in the given topology with the specified face id. Builds "
+"the polygon from the edges making up the face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1843
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.16"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1849
+#, no-c-format
+msgid ""
+"-- Returns the wkt of the polygon added with AddFace\n"
+"SELECT ST_AsText(topology.ST_GetFaceGeometry('ma_topo', 1)) As facegeomwkt;\n"
+"-- result --\n"
+"               facegeomwkt\n"
+"\n"
+"--------------------------------------------------------------------------------\n"
+" POLYGON((234776.9 899563.7,234896.5 899456.7,234914 899436.4,234946.6 "
+"899356.9,\n"
+"234872.5 899328.7,234891 899285.4,234992.5 899145,234890.6 899069,\n"
+"234755.2 899255.4,234612.7 899379.4,234776.9 899563.7))"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1861
+#, no-c-format
+msgid "GetRingEdges"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1863
+#, no-c-format
+msgid "Returns an ordered set of edges forming a ring with the given edge ."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1870
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>GetRingEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aring</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_edges=null</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>getfaceedges_returntype <function>GetRingEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aring</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_edges=null</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1882
+#, no-c-format
+msgid ""
+"Returns an ordered set of edges forming a ring with the given edge. Each "
+"output consists of a sequence and a signed edge id. Sequence numbers start "
+"with value 1. A negative edge identifier means that the given edge is taken "
+"backward. You can pass a negative edge id to start walking backward."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1890
+#, no-c-format
+msgid ""
+"If <varname>max_edges</varname> is not null no more than those records are "
+"returned by that function. This is meant to be a safety parameter when "
+"dealing with possibly invalid topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1905
+#, no-c-format
+msgid ", <xref linkend=\"GetNodeEdges\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1914
+#, no-c-format
+msgid "GetNodeEdges"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1916
+#, no-c-format
+msgid "Returns an ordered set of edges incident to the given node."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1923
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>GetNodeEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+msgstr ""
+"<funcdef>getfaceedges_returntype <function>GetNodeEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1934
+#, no-c-format
+msgid ""
+"Returns an ordered set of edges incident to the given node. Each output "
+"consists of a sequence and a signed edge id. Sequence numbers start with "
+"value 1. A positive edge starts at the given node. A negative edge ends into "
+"the given node. Closed edges will appear twice (with both signs). Order is "
+"clockwise starting from northbound."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1945
+#, no-c-format
+msgid ""
+"This function computes ordering rather than deriving from metadata and is "
+"thus usable to build edge ring linking."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1958
+#, no-c-format
+msgid ", <xref linkend=\"ST_Azimuth\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1971
+#, no-c-format
+msgid ""
+"This section covers the functions for processing topologies in non-standard "
+"ways."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1974
+#, no-c-format
+msgid "Topology Processing"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1977
+#, no-c-format
+msgid "Polygonize"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1978
+#, no-c-format
+msgid "Find and register all faces defined by topology edges"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1982
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Polygonize</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>Polygonize</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1992
+#, no-c-format
+msgid "Register all faces that can be built out a topology edge primitives."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1993
+#, no-c-format
+msgid "The target topology is assumed to contain no self-intersecting edges."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1994
+#, no-c-format
+msgid ""
+"Already known faces are recognized, so it is safe to call Polygonize "
+"multiple times on the same topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1995 extras_topology.xml:2148
+#, no-c-format
+msgid ""
+"This function does not use nor set the next_left_edge and next_right_edge "
+"fields of the edge table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2007
+#, no-c-format
+msgid ", <xref linkend=\"ST_Polygonize\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2013
+#, no-c-format
+msgid "AddNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2015
+#, no-c-format
+msgid ""
+"Adds a point node to the node table in the specified topology schema and "
+"returns the nodeid of new node. If point already exists as node, the "
+"existing nodeid is returned."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2020
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allowEdgeSplitting=false</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>computeContainingFace=false</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>AddNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allowEdgeSplitting=false</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>computeContainingFace=false</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2033
+#, no-c-format
+msgid ""
+"Adds a point node to the node table in the specified topology schema. The "
+"<xref linkend=\"AddEdge\"/> function automatically adds start and end points "
+"of an edge when called so not necessary to explicitly add nodes of an edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2040
+#, no-c-format
+msgid ""
+"If any edge crossing the node is found either an exception is raised or the "
+"edge is splitted, depending on the <varname>allowEdgeSplitting</varname> "
+"parameter value."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2046
+#, no-c-format
+msgid ""
+"If <varname>computeContainingFace</varname> is true a newly added node would "
+"get the correct containing face computed."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2051
+#, no-c-format
+msgid ""
+"If the <varname>apoint</varname> geometry already exists as a node, the node "
+"is not added but the existing nodeid is returned."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2060
+#, no-c-format
+msgid ""
+"SELECT topology.AddNode('ma_topo', ST_GeomFromText('POINT(227641.6 "
+"893816.5)', 26986) ) As nodeid;\n"
+"-- result --\n"
+"nodeid\n"
+"--------\n"
+" 4"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2072
+#, no-c-format
+msgid "AddEdge"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2074
+#, no-c-format
+msgid ""
+"Adds a linestring edge to the edge table and associated start and end points "
+"to the point nodes table of the specified topology schema using the "
+"specified linestring geometry and returns the edgeid of the new (or "
+"existing) edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2079
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>AddEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2090
+#, no-c-format
+msgid ""
+"Adds an edge to the edge table and associated nodes to the nodes table of "
+"the specified <varname>toponame</varname> schema using the specified "
+"linestring geometry and returns the edgeid of the new or existing record. "
+"The newly added edge has \"universe\" face on both sides and links to itself."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2092
+#, no-c-format
+msgid ""
+"If the <varname>aline</varname> geometry crosses, overlaps, contains or is "
+"contained by an existing linestring edge, then an error is thrown and the "
+"edge is not added."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2093
+#, no-c-format
+msgid ""
+"The geometry of <varname>aline</varname> must have the same <varname>srid</"
+"varname> as defined for the topology otherwise an invalid spatial reference "
+"sys error will be thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2097
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2103
+#, no-c-format
+msgid ""
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 "
+"893917.2,227591.9 893900.4)', 26986) ) As edgeid;\n"
+"-- result-\n"
+"edgeid\n"
+"--------\n"
+" 1\n"
+"                                \n"
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.9 "
+"893900.4,227622.6 893844.2,227641.6 893816.5,\n"
+" 227704.5 893778.5)', 26986) ) As edgeid;\n"
+"-- result --\n"
+"edgeid\n"
+"--------\n"
+" 2\n"
+" \n"
+" SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.2 "
+"893900, 227591.9 893900.4,\n"
+"  227704.5 893778.5)', 26986) ) As edgeid;\n"
+" -- gives error --\n"
+" ERROR:  Edge intersects (not on endpoints) with existing edge 1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2109
+#, no-c-format
+msgid ", <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2115
+#, no-c-format
+msgid "AddFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2117
+#, no-c-format
+msgid ""
+"<refpurpose>Registers a face primitive to a topology and get it's identifier."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2124
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apolygon</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>force_new=false</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>AddFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apolygon</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>force_new=false</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2136
+#, no-c-format
+msgid ""
+"<para>Registers a face primitive to a topology and get it's identifier.</"
+"para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2140
+#, no-c-format
+msgid ""
+"For a newly added face, the edges forming its boundaries and the ones "
+"contained in the face will be updated to have correct values in the "
+"left_face and right_face fields. Isolated nodes contained in the face will "
+"also be updated to have a correct containing_face field value."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2152
+#, no-c-format
+msgid ""
+"The target topology is assumed to be valid (containing no self-intersecting "
+"edges). An exception is raised if: The polygon boundary is not fully defined "
+"by existing edges or the polygon overlaps an existing face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2154
+#, no-c-format
+msgid ""
+"If the <varname>apolygon</varname> geometry already exists as a face, then: "
+"if <varname>force_new</varname> is false (the default) the face id of the "
+"existing face is returned; if <varname>force_new</varname> is true a new id "
+"will be assigned to the newly registered face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2162
+#, no-c-format
+msgid ""
+"When a new registration of an existing face is performed (force_new=true), "
+"no action will be taken to resolve dangling references to the existing face "
+"in the edge, node an relation tables, nor will the MBR field of the existing "
+"face record be updated. It is up to the caller to deal with that."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2169
+#, no-c-format
+msgid ""
+"The <varname>apolygon</varname> geometry must have the same <varname>srid</"
+"varname> as defined for the topology otherwise an invalid spatial reference "
+"sys error will be thrown."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2178
+#, no-c-format
+msgid ""
+"-- first add the edges we use generate_series as an iterator (the below \n"
+"-- will only work for polygons with < 10000 points because of our max in "
+"gs) \n"
+"SELECT topology.AddEdge('ma_topo', ST_MakeLine(ST_PointN(geom,i), "
+"ST_PointN(geom, i + 1) )) As edgeid\n"
+"    FROM (SELECT  ST_NPoints(geom) AS npt, geom\n"
+"            FROM \n"
+"                (SELECT ST_Boundary(ST_GeomFromText('POLYGON((234896.5 "
+"899456.7,234914 899436.4,234946.6 899356.9,234872.5 899328.7,\n"
+"                234891 899285.4,234992.5 899145, 234890.6 899069,234755.2 "
+"899255.4,\n"
+"                234612.7 899379.4,234776.9 899563.7,234896.5 899456.7))', "
+"26986) )  As geom\n"
+"            )  As geoms) As facen CROSS JOIN generate_series(1,10000) As i\n"
+"         WHERE i < npt;\n"
+"-- result --\n"
+" edgeid\n"
+"--------\n"
+"      3\n"
+"      4\n"
+"      5\n"
+"      6\n"
+"      7\n"
+"      8\n"
+"      9\n"
+"     10\n"
+"     11\n"
+"     12\n"
+"(10 rows)\n"
+"-- then add the face -\n"
+"                                \n"
+"SELECT topology.AddFace('ma_topo', \n"
+"    ST_GeomFromText('POLYGON((234896.5 899456.7,234914 899436.4,234946.6 "
+"899356.9,234872.5 899328.7,\n"
+"    234891 899285.4,234992.5 899145, 234890.6 899069,234755.2 899255.4,\n"
+"    234612.7 899379.4,234776.9 899563.7,234896.5 899456.7))', 26986) ) As "
+"faceid;\n"
+"-- result --\n"
+"faceid\n"
+"--------\n"
+" 1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2184
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2190
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2191
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2197
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>TopoGeometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2207
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm on each component edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2210
+#, no-c-format
+msgid "The returned geometry may be non-simple or non-valid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2211
+#, no-c-format
+msgid "Splitting component edges may help retaining simplicity/validity."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2213
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2214 extras_topology.xml:2740
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2219
+#, no-c-format
+msgid ""
+"Geometry <xref linkend=\"ST_Simplify\"/>, <xref linkend=\"ST_IsSimple\"/>, "
+"<xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_ModEdgeSplit\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2229
+#, no-c-format
+msgid ""
+"This section covers the topology functions for creating new topogeometries."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2232
+#, no-c-format
+msgid "TopoGeometry Constructors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2235
+#, no-c-format
+msgid "CreateTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2237
+#, no-c-format
+msgid ""
+"Creates a new topo geometry object from topo element array - tg_type: 1:"
+"[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2241
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>tg_type</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>topoelementarray</type> <parameter>tg_objs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>CreateTopoGeom</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>tg_type</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>layer_id</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>tg_type</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>topoelementarray</type> <parameter>tg_objs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>CreateTopoGeom</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>tg_type</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>layer_id</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:2262
+#, no-c-format
+msgid ""
+"Creates a topogeometry object for layer denoted by layer_id and registers it "
+"in the relations table in the <varname>toponame</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2263
+#, no-c-format
+msgid ""
+"tg_type is an integer: 1:[multi]point (punctal), 2:[multi]line (lineal), 3:"
+"[multi]poly (areal), 4:collection. layer_id is the layer id in the topology."
+"layer table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2264
+#, no-c-format
+msgid ""
+"punctal layers are formed from set of nodes, lineal layers are formed from a "
+"set of edges, areal layers are formed from a set of faces, and collections "
+"can be formed from a mixture of nodes, edges, and faces."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2266
+#, no-c-format
+msgid ""
+"Omitting the array of components generates an empty TopoGeometry object."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2273
+#, no-c-format
+msgid "Examples: Form from existing edges"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2274
+#, no-c-format
+msgid ""
+"Create a topogeom in ri_topo schema for layer 2 (our ri_roads), of type (2) "
+"LINE, for the first edge (we loaded in <varname>ST_CreateTopoGeo</varname>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2275
+#, no-c-format
+msgid ""
+"INSERT INTO ri.ri_roads(road_name, topo) VALUES('Unknown', topology."
+"CreateTopoGeom('ri_topo',2,2,'{{1,2}}'::topology.topoelementarray);"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2280
+#, no-c-format
+msgid "Examples: Convert an areal geometry to best guess topogeometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2281
+#, no-c-format
+msgid ""
+"Lets say we have geometries that should be formed from a collection of "
+"faces. We have for example blockgroups table and want to know the topo "
+"geometry of each block group. If our data was perfectly aligned, we could do "
+"this:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2283
+#, no-c-format
+msgid ""
+"-- create our topo geometry column --\n"
+"SELECT topology.AddTopoGeometryColumn(\n"
+"        'topo_boston', \n"
+"        'boston', 'blockgroups', 'topo', 'POLYGON');\n"
+"        \n"
+"-- addtopgeometrycolumn --\n"
+"1\n"
+"        \n"
+"-- update our column assuming \n"
+"-- everything is perfectly aligned with our edges\n"
+"UPDATE boston.blockgroups AS bg\n"
+"        SET topo = topology.CreateTopoGeom('topo_boston'\n"
+"        ,3,1\n"
+"        , foo.bfaces)\n"
+"FROM (SELECT b.gid,  topology.TopoElementArray_Agg(ARRAY[f.face_id,3]) As "
+"bfaces\n"
+"        FROM boston.blockgroups As b\n"
+"            INNER JOIN topo_boston.face As f ON b.geom && f.mbr\n"
+"        WHERE ST_Covers(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"            GROUP BY b.gid) As foo\n"
+"WHERE foo.gid = bg.gid;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2285
+#, no-c-format
+msgid ""
+"--the world is rarely perfect allow for some error\n"
+"--count the face if 50% of it falls \n"
+"-- within what we think is our blockgroup boundary\n"
+"UPDATE boston.blockgroups AS bg\n"
+"        SET topo = topology.CreateTopoGeom('topo_boston'\n"
+"        ,3,1\n"
+"        , foo.bfaces)\n"
+"FROM (SELECT b.gid,  topology.TopoElementArray_Agg(ARRAY[f.face_id,3]) As "
+"bfaces\n"
+"        FROM boston.blockgroups As b\n"
+"            INNER JOIN topo_boston.face As f ON b.geom && f.mbr\n"
+"        WHERE ST_Covers(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"                OR\n"
+" (  ST_Intersects(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"            AND ST_Area(ST_Intersection(b.geom, topology."
+"ST_GetFaceGeometry('topo_boston', f.face_id) ) ) > \n"
+"                ST_Area(topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))*0.5\n"
+"                )\n"
+"            GROUP BY b.gid) As foo\n"
+"WHERE foo.gid = bg.gid; \n"
+"\n"
+"-- and if we wanted to convert our topogeometry back\n"
+"-- to a denomalized geometry aligned with our faces and edges \n"
+"-- cast the topo to a geometry\n"
+"-- The really cool thing is my new geometries\n"
+"-- are now aligned with my tiger street centerlines\n"
+"UPDATE boston.blockgroups SET new_geom = topo::geometry;"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2291
+#, no-c-format
+msgid ""
+", <xref linkend=\"toTopoGeom\"/> <xref linkend=\"ST_CreateTopoGeo\"/>, <xref "
+"linkend=\"ST_GetFaceGeometry\"/>, <xref linkend=\"topoelementarray\"/>, "
+"<xref linkend=\"TopoElementArray_Agg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2304 extras_topology.xml:2480
+#, no-c-format
+msgid "toTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2306
+#, no-c-format
+msgid "Converts a simple Geometry into a topo geometry"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2312
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>topogeometry <function>toTopoGeom</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>toTopoGeom</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>topogeometry </type> "
+"<parameter>topogeom</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>float8</type> <parameter>tolerance</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>tg_type</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>topoelementarray</type> <parameter>tg_objs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>CreateTopoGeom</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>tg_type</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>layer_id</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:2333
+#, no-c-format
+msgid "Converts a simple Geometry into a <xref linkend=\"topogeometry\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2337
+#, no-c-format
+msgid ""
+"Topological primitives required to represent the input geometry will be "
+"added to the underlying topology, possibly splitting existing ones, and they "
+"will be associated with the output TopoGeometry in the <varname>relation</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2344
+#, no-c-format
+msgid ""
+"Existing TopoGeometry objects (with the possible exception of "
+"<varname>topogeom</varname>, if given) will retain their shapes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2349
+#, no-c-format
+msgid ""
+"When <varname>tolerance</varname> is given it will be used to snap the input "
+"geometry to existing primitives."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2354
+#, no-c-format
+msgid ""
+"In the first form a new TopoGeometry will be created for the given layer "
+"(<varname>layer_id</varname>) of the given topology (<varname>toponame</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2359
+#, no-c-format
+msgid ""
+"In the second form the primitives resulting from the conversion will be "
+"added to the pre-existing TopoGeometry (<varname>topogeom</varname>), "
+"possibly adding space to its final shape. To have the new shape completely "
+"replace the old one see <xref linkend=\"clearTopoGeom\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2368
+#, no-c-format
+msgid "Enhanced: 2.1.0 adds the version taking an existing TopoGeometry."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2372
+#, no-c-format
+msgid "This is a full self-contained workflow"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2373
+#, no-c-format
+msgid ""
+"-- do this if you don't have a topology setup already\n"
+"-- creates topology not allowing any tolerance\n"
+"SELECT topology.CreateTopology('topo_boston_test', 2249);\n"
+"-- create a new table\n"
+"CREATE TABLE nei_topo(gid serial primary key, nei varchar(30));\n"
+"--add a topogeometry column to it\n"
+"SELECT topology.AddTopoGeometryColumn('topo_boston_test', 'public', "
+"'nei_topo', 'topo', 'MULTIPOLYGON') As new_layer_id;\n"
+"new_layer_id\n"
+"-----------\n"
+"1\n"
+"\n"
+"--use new layer id in populating the new topogeometry column\n"
+"-- we add the topogeoms to the new layer with 0 tolerance\n"
+"INSERT INTO nei_topo(nei, topo)\n"
+"SELECT nei,  topology.toTopoGeom(geom, 'topo_boston_test', 1)\n"
+"FROM neighborhoods\n"
+"WHERE gid BETWEEN 1 and 15;\n"
+"\n"
+"--use to verify what has happened --\n"
+"SELECT * FROM \n"
+"    topology.TopologySummary('topo_boston_test'); \n"
+"    \n"
+"-- summary--\n"
+"Topology topo_boston_test (5), SRID 2249, precision 0\n"
+"61 nodes, 87 edges, 35 faces, 15 topogeoms in 1 layers\n"
+"Layer 1, type Polygonal (3), 15 topogeoms\n"
+" Deploy: public.nei_topo.topo"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2375
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);\n"
+"\n"
+"-- Get the no-one-lands left by the above operation\n"
+"-- I think GRASS calls this \"polygon0 layer\"\n"
+"SELECT ST_GetFaceGeometry('topo_boston_test', f.face_id) \n"
+"  FROM topo_boston_test.face f\n"
+"  WHERE f.face_id > 0 -- don't consider the universe face\n"
+"  AND NOT EXISTS ( -- check that no TopoGeometry references the face\n"
+"    SELECT * FROM topo_boston_test.relation\n"
+"    WHERE layer_id = 1 AND element_id = f.face_id\n"
+"  );"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2381
+#, no-c-format
+msgid ""
+", <xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom"
+"\"/>, <xref linkend=\"TopologySummary\"/>, <xref linkend=\"clearTopoGeom\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2393
+#, no-c-format
+msgid "TopoElementArray_Agg"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2394
+#, no-c-format
+msgid ""
+"Returns a <varname>topoelementarray</varname> for a set of element_id, type "
+"arrays (topoelements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2399
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray <function>TopoElementArray_Agg</function></"
+"funcdef> <paramdef><type>topoelement set</type> <parameter>tefield</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>topoelementarray <function>TopoElementArray_Agg</function></"
+"funcdef> <paramdef><type>topoelement set</type> <parameter>tefield</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2409
+#, no-c-format
+msgid ""
+"Used to create a <xref linkend=\"topoelementarray\"/> from a set of <xref "
+"linkend=\"topoelement\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2418
+#, no-c-format
+msgid ""
+"SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
+"  FROM generate_series(1,3) As e CROSS JOIN generate_series(1,4) As t;\n"
+"  tea\n"
+"--------------------------------------------------------------------------\n"
+"{{1,1},{1,2},{1,3},{1,4},{2,1},{2,2},{2,3},{2,4},{3,1},{3,2},{3,3},{3,4}}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2430
+#, no-c-format
+msgid ""
+"This section covers the topology functions for editing existing "
+"topogeometries."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2433
+#, fuzzy, no-c-format
+msgid "TopoGeometry Editors"
+msgstr "topogéométrie"
+
+#. Tag: refname
+#: extras_topology.xml:2437
+#, no-c-format
+msgid "clearTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2439
+#, no-c-format
+msgid "Clears the content of a topo geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2444
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>topogeometry <function>clearTopoGeom</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>topogeom</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2454
+#, no-c-format
+msgid ""
+"Clears the content a <xref linkend=\"topogeometry\"/> turning it into an "
+"empty one. Mostly useful in conjunction with <xref linkend=\"toTopoGeom\"/> "
+"to replace the shape of existing objects and any dependent object in higher "
+"hierarchical levels."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2462
+#, no-c-format
+msgid "Availability: 2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2466
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2481
+#, no-c-format
+msgid "Adds a geometry shape to an existing topo geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2485
+#, no-c-format
+msgid "Refer to <xref linkend=\"toTopoGeom\"/>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2495
+#, no-c-format
+msgid "TopoGeometry Accessors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2499
+#, no-c-format
+msgid "GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2501
+#, no-c-format
+msgid ""
+"Returns a <varname>topoelementarray</varname> (an array of topoelements) "
+"containing the topological elements and type of the given TopoGeometry "
+"(primitive elements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2506
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray <function>GetTopoGeomElementArray</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>topoelementarray <function>GetTopoGeomElementArray</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+
+#. Tag: funcprototype
+#: extras_topology.xml:2514
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray topoelement <function>GetTopoGeomElementArray</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>topoelementarray topoelement <function>GetTopoGeomElementArray</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2524
+#, no-c-format
+msgid ""
+"Returns a <xref linkend=\"topoelementarray\"/> containing the topological "
+"elements and type of the given TopoGeometry (primitive elements). This is "
+"similar to GetTopoGeomElements except it returns the elements as an array "
+"rather than as a dataset."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2526 extras_topology.xml:2573
+#, no-c-format
+msgid ""
+"tg_id is the topogeometry id of the topogeometry object in the topology in "
+"the layer denoted by <varname>layer_id</varname> in the topology.layer table."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2547
+#, no-c-format
+msgid "GetTopoGeomElements"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2549
+#, no-c-format
+msgid ""
+"Returns a set of <varname>topoelement</varname> objects containing the "
+"topological element_id,element_type of the given TopoGeometry (primitive "
+"elements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2554
+#, no-c-format
+msgid ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+
+#. Tag: funcprototype
+#: extras_topology.xml:2562
+#, no-c-format
+msgid ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2572
+#, no-c-format
+msgid ""
+"Returns a set of element_id,element_type (topoelements) for a given "
+"topogeometry object in <varname>toponame</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2589
+#, no-c-format
+msgid ", <xref linkend=\"topoelement\"/>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2597
+#, no-c-format
+msgid "TopoGeometry Outputs"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2600
+#, no-c-format
+msgid "AsGML"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2602
+#, no-c-format
+msgid "Returns the GML representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2606
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>AsGML</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>AsGML</function></funcdef> <paramdef><type>topogeometry </type> "
+"<parameter>tg</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>nsprefix_in</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>precision</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>options</parameter></paramdef> <paramdef><type>regclass </"
+"type> <parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nsprefix_in</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>precision</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>idprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>idprefix</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>gmlversion</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>AsGML</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>AsGML</function></funcdef> <paramdef><type>topogeometry </type> "
+"<parameter>tg</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>nsprefix_in</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>precision</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>options</parameter></paramdef> <paramdef><type>regclass </"
+"type> <parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nsprefix_in</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>precision</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>idprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>idprefix</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>gmlversion</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:2667
+#, no-c-format
+msgid ""
+"Returns the GML representation of a topogeometry in version GML3 format. If "
+"no <varname>nsprefix_in</varname> is specified then <varname>gml</varname> "
+"is used. Pass in an empty string for nsprefix to get a non-qualified name "
+"space. The precision (default: 15) and options (default 1) parameters, if "
+"given, are passed untouched to the underlying call to ST_AsGML."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2669
+#, no-c-format
+msgid ""
+"The <varname>visitedTable</varname> parameter, if given, is used for keeping "
+"track of the visited Node and Edge elements so to use cross-references "
+"(xlink:xref) rather than duplicating definitions. The table is expected to "
+"have (at least) two integer fields: 'element_type' and 'element_id'. The "
+"calling user must have both read and write privileges on the given table. "
+"For best performance, an index should be defined on <varname>element_type</"
+"varname> and <varname>element_id</varname>, in that order. Such index would "
+"be created automatically by adding a unique constraint to the fields. "
+"Example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2675
+#, no-c-format
+msgid ""
+"CREATE TABLE visited (\n"
+"  element_type integer, element_id integer,\n"
+"  unique(element_type, element_id)\n"
+");"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2678
+#, no-c-format
+msgid ""
+"The <varname>idprefix</varname> parameter, if given, will be prepended to "
+"Edge and Node tag identifiers."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2680
+#, no-c-format
+msgid ""
+"The <varname>gmlver</varname> parameter, if given, will be passed to the "
+"underlying ST_AsGML. Defaults to 3."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2689
+#, no-c-format
+msgid ""
+"This uses the topo geometry we created in <xref linkend=\"CreateTopoGeom\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2690
+#, no-c-format
+msgid ""
+"SELECT topology.AsGML(topo) As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<gml:TopoCurve>\n"
+"    <gml:directedEdge>\n"
+"        <gml:Edge gml:id=\"E1\">\n"
+"            <gml:directedNode orientation=\"-\">\n"
+"                <gml:Node gml:id=\"N1\"/>\n"
+"            </gml:directedNode>\n"
+"            <gml:directedNode></gml:directedNode>\n"
+"            <gml:curveProperty>\n"
+"                <gml:Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <gml:segments>\n"
+"                        <gml:LineStringSegment>\n"
+"                            <gml:posList srsDimension=\"2\">384744 236928 "
+"384750 236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</gml:posList>\n"
+"                        </gml:LineStringSegment>\n"
+"                    </gml:segments>\n"
+"                </gml:Curve>\n"
+"            </gml:curveProperty>\n"
+"        </gml:Edge>\n"
+"    </gml:directedEdge>\n"
+"</gml:TopoCurve>]]>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2691
+#, no-c-format
+msgid "Same exercise as previous without namespace"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2692
+#, no-c-format
+msgid ""
+"SELECT topology.AsGML(topo,'') As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<TopoCurve>\n"
+"    <directedEdge>\n"
+"        <Edge id=\"E1\">\n"
+"            <directedNode orientation=\"-\">\n"
+"                <Node id=\"N1\"/>\n"
+"            </directedNode>\n"
+"            <directedNode></directedNode>\n"
+"            <curveProperty>\n"
+"                <Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <segments>\n"
+"                        <LineStringSegment>\n"
+"                            <posList srsDimension=\"2\">384744 236928 384750 "
+"236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</posList>\n"
+"                         </LineStringSegment>\n"
+"                    </segments>\n"
+"                </Curve>\n"
+"            </curveProperty>\n"
+"        </Edge>\n"
+"    </directedEdge>\n"
+"</TopoCurve>]]>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2698
+#, no-c-format
+msgid ", <xref linkend=\"ST_CreateTopoGeo\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2703
+#, no-c-format
+msgid "AsTopoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2705
+#, no-c-format
+msgid "Returns the TopoJSON representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2710
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>text <function>AsTopoJSON</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>edgeMapTable</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2721
+#, no-c-format
+msgid ""
+"Returns the TopoJSON representation of a topogeometry. If "
+"<varname>edgeMapTable</varname> is not null, it will be used as a lookup/"
+"storage mapping of edge identifiers to arc indices. This is to be able to "
+"allow for a compact \"arcs\" array in the final document."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2724
+#, no-c-format
+msgid ""
+"The table, if given, is expected to have an \"arc_id\" field of type \"serial"
+"\" and an \"edge_id\" of type integer; the code will query the table for "
+"\"edge_id\" so it is recommended to add an index on that field."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2729
+#, no-c-format
+msgid ""
+"Arc indices in the TopoJSONjoutput are 0-based but they are 1-based in the "
+"\"edgeMapTable\" table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2735
+#, no-c-format
+msgid ""
+"A full TopoJSON document will be need to contain, in addition to the "
+"snippets returned by this function, the actual arcs plus some headers. See "
+"the <ulink url=\"http://github.com/mbostock/topojson/wiki/Specification"
+"\">TopoJSON specification</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2752
+#, no-c-format
+msgid ""
+"CREATE TEMP TABLE edgemap(arc_id serial, edge_id int unique);\n"
+"\n"
+"-- header\n"
+"SELECT '{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], "
+"\"translate\": [0,0] }, \"objects\": {'\n"
+"\n"
+"-- objects\n"
+"UNION ALL SELECT '\"' || feature_name || '\": ' || AsTopoJSON(feature, "
+"'edgemap')\n"
+"FROM features.big_parcels WHERE feature_name = 'P3P4';\n"
+"\n"
+"-- arcs\n"
+"WITH edges AS ( \n"
+"  SELECT m.arc_id, e.geom FROM edgemap m, city_data.edge e\n"
+"  WHERE e.edge_id = m.edge_id\n"
+"), points AS (\n"
+"  SELECT arc_id, (st_dumppoints(geom)).* FROM edges\n"
+"), compare AS (\n"
+"  SELECT p2.arc_id,\n"
+"         CASE WHEN p1.path IS NULL THEN p2.geom\n"
+"              ELSE ST_Translate(p2.geom, -ST_X(p1.geom), -ST_Y(p1.geom))\n"
+"         END AS geom\n"
+"  FROM points p2 LEFT OUTER JOIN points p1\n"
+"  ON ( p1.arc_id = p2.arc_id AND p2.path[1] = p1.path[1]+1 )\n"
+"  ORDER BY arc_id, p2.path\n"
+"), arcsdump AS (\n"
+"  SELECT arc_id, (regexp_matches( ST_AsGeoJSON(geom), '\\[.*\\]'))[1] as t\n"
+"  FROM compare\n"
+"), arcs AS (\n"
+"  SELECT arc_id, '[' || array_to_string(array_agg(t), ',') || ']' as a FROM "
+"arcsdump\n"
+"  GROUP BY arc_id\n"
+"  ORDER BY arc_id\n"
+")\n"
+"SELECT '}, \"arcs\": [' UNION ALL\n"
+"SELECT array_to_string(array_agg(a), E',\\n') from arcs\n"
+"\n"
+"-- footer\n"
+"UNION ALL SELECT ']}'::text as t;\n"
+"\n"
+"-- Result:\n"
+"{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], \"translate\": "
+"[0,0] }, \"objects\": {\n"
+"\"P3P4\": { \"type\": \"MultiPolygon\", \"arcs\": [[[-1]],"
+"[[6,5,-5,-4,-3,1]]]}\n"
+"}, \"arcs\": [\n"
+" [[25,30],[6,0],[0,10],[-14,0],[0,-10],[8,0]],\n"
+" [[35,6],[0,8]],\n"
+" [[35,6],[12,0]],\n"
+" [[47,6],[0,8]],\n"
+" [[47,14],[0,8]],\n"
+" [[35,22],[12,0]],\n"
+" [[35,14],[0,8]]\n"
+" ]}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2760
+#, no-c-format
+msgid ""
+"This section lists the Topology functions used to check relationships "
+"between topogeometries and topology primitives"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2763
+#, no-c-format
+msgid "Topology Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2766
+#, no-c-format
+msgid "Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2768 extras_topology.xml:2817
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2773 extras_topology.xml:2822
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>boolean <function>Equals</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg1</parameter></paramdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg2</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>AddEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2784
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives: faces, edges, nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2788
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2795 extras_topology.xml:2845
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2802 extras_topology.xml:2852
+#, no-c-format
+msgid "<!--TODO: Need example -->"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2809
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2815
+#, no-c-format
+msgid "Intersects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2833
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries share primitives or primitives intersect"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2837
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies. Also not currently supported for hierarchichal topogeometries "
+"(topogeometries composed of other topogeometries)."
+msgstr ""
+
+#~ msgid ""
+#~ "A composite type that refers to a topology geometry in a specific "
+#~ "topology, layer, having specific type (1:[multi]point, 2:[multi]line, 3:"
+#~ "[multi]poly, 4:collection) with specific identifier id in the topology. "
+#~ "The id uniquely defines the topogeometry in the topology."
+#~ msgstr ""
+#~ "Un type composé qui fait référence à la géométrie d'un élément "
+#~ "topologique, une couche, ayant un type spécifique (1:[multi]point, 2:"
+#~ "[multi]line, 3:[multi]poly, 4:collection) avec un identidiant id "
+#~ "spécifique dans la topologie. Cet id définit d'une manière unique la "
+#~ "topogéométrie dans la topologie."
+
+#~ msgid ""
+#~ "<funcdef>text <function>ST_ModEdgeSplit</function></funcdef> "
+#~ "<paramdef><type>varchar </type> <parameter>atopology</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></"
+#~ "paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></"
+#~ "paramdef>"
+#~ msgstr ""
+#~ "<funcdef>text <function>ST_ModEdgeSplit</function></funcdef> "
+#~ "<paramdef><type>varchar </type> <parameter>atopology</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></"
+#~ "paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></"
+#~ "paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>topogeometry <function>toTopoGeom</function></funcdef> "
+#~ "<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+#~ "<paramdef><type>varchar </type> <parameter>toponame</parameter></"
+#~ "paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+#~ "paramdef> <paramdef choice=\"opt\"><type>float8</type> "
+#~ "<parameter>tolerance</parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>topogeometry <function>toTopoGeom</function></funcdef> "
+#~ "<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+#~ "<paramdef><type>varchar </type> <parameter>toponame</parameter></"
+#~ "paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+#~ "paramdef> <paramdef choice=\"opt\"><type>float8</type> "
+#~ "<parameter>tolerance</parameter></paramdef>"
diff --git a/doc/po/fr/faq.xml.po b/doc/po/fr/faq.xml.po
new file mode 100644
index 0000000..1e7a684
--- /dev/null
+++ b/doc/po/fr/faq.xml.po
@@ -0,0 +1,1019 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Arnaud Vandecasteele <arnaud.sig at gmail.com>, 2013-2014
+# FPH <fabrice at phung.fr>, 2013
+# etrimaille <gustrimaille at yahoo.fr>, 2013
+# Jacolin <yjacolin at free.fr>, 2014
+# vpicavet <vincent.ml at oslandia.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-05-05 16:21+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: faq.xml:3
+#, no-c-format
+msgid "PostGIS Frequently Asked Questions"
+msgstr "Foire Aux Questions PostGIS"
+
+#. Tag: para
+#: faq.xml:8
+#, no-c-format
+msgid ""
+"Where can I find tutorials, guides and workshops on working with PostGIS"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:12
+#, no-c-format
+msgid ""
+"OpenGeo has a step by step tutorial guide workshop <ulink url=\"http://"
+"workshops.boundlessgeo.com/postgis-intro/\">Introduction to PostGIS</ulink>. "
+"It includes packaged data as well as intro to working with OpenGeo Suite. It "
+"is probably the best tutorial on PostGIS."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:13
+#, no-c-format
+msgid ""
+"BostonGIS also has a <ulink url=\"http://www.bostongis.com/PrinterFriendly."
+"aspx?content_name=postgis_tut01\">PostGIS almost idiot's guide on getting "
+"started</ulink>. That one is more focused on the windows user."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:18
+#, no-c-format
+msgid ""
+"My applications and desktop tools worked with PostGIS 1.5,but they don't "
+"work with PostGIS 2.0. How do I fix this?"
+msgstr ""
+"Mon application et mes outils fonctionnaient avec PostGIS 1.5, cependant ils "
+"ne marchent plus avec PostGIS 2.0. Comment réparer cela ?"
+
+#. Tag: para
+#: faq.xml:22
+#, no-c-format
+msgid ""
+"A lot of deprecated functions were removed from the PostGIS code base in "
+"PostGIS 2.0. This has affected applications in addition to third-party tools "
+"such as Geoserver, MapServer, QuantumGIS, and OpenJump to name a few. There "
+"are a couple of ways to resolve this. For the third-party apps, you can try "
+"to upgrade to the latest versions of these which have many of these issues "
+"fixed. For your own code, you can change your code to not use the functions "
+"removed. Most of these functions are non ST_ aliases of ST_Union, ST_Length "
+"etc. and as a last resort, install the whole of <varname>legacy.sql</"
+"varname> or just the portions of <varname>legacy.sql</varname> you need."
+msgstr ""
+"Beaucoup de fonctions obsolètes ont été supprimées du code de PostGIS dans "
+"PostGIS 2.0. Cela a affecté des applications en sus d'outils tiers comme "
+"GeoServer, MapServer, QuantumGIS et OpenJump pour n'en citer que quelques "
+"uns. Il y a plusieurs façons de résoudre ceci. Pour les applications "
+"tierces, vous pouvez essayer de passer aux dernières versions de celles qui "
+"ont vu beaucoup de ces problèmes résolus. Pour votre propre code, vous "
+"pouvez le modifier pour ne pas utiliser les fonctions supprimées. La plupart "
+"de ces fonctions ne sont pas des alias ST_ de ST_Union, ST_Length etc. et en "
+"dernier recours, installez la totalité de <varname>legacy.sql</varname> ou "
+"juste les parties de <varname>legacy.sql</varname> dont vous avez besoin."
+
+#. Tag: para
+#: faq.xml:28
+#, no-c-format
+msgid ""
+"The <varname>legacy.sql</varname> file is located in the same folder as "
+"postgis.sql. You can install this file after you have installed postgis.sql "
+"and spatial_ref_sys.sql to get back all the 200 some-odd old functions we "
+"removed."
+msgstr ""
+"Le fichier <varname>legacy.sql</varname> est situé dans le même répertoire "
+"que postgis.sql. Vous pouvez installer ce fichier après avoir installé "
+"postgis.sql et spatial_ref_sys.sql pour retrouver toutes les 200 et quelques "
+"anciennes fonctions que nous avons supprimées."
+
+#. Tag: para
+#: faq.xml:35
+#, no-c-format
+msgid ""
+"When I load OpenStreetMap data with osm2pgsql, I'm getting an error failed: "
+"ERROR: operator class \"gist_geometry_ops\" does not exist for access method "
+"\"gist\" Error occurred. This worked fine in PostGIS 1.5."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:40
+#, no-c-format
+msgid ""
+"In PostGIS 2, the default geometry operator class gist_geometry_ops was "
+"changed to gist_geometry_ops_2d and the gist_geometry_ops was completely "
+"removed. This was done because PostGIS 2 also introduced Nd spatial indexes "
+"for 3D support and the old name was deemed confusing and a misnomer."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:41
+#, no-c-format
+msgid ""
+"Some older applications that as part of the process create tables and "
+"indexes, explicitly referenced the operator class name. This was unnecessary "
+"if you want the default 2D index. So if you manage said good, change index "
+"creation from:"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:42
+#, no-c-format
+msgid "BAD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:43
+#, fuzzy, no-c-format
+msgid ""
+"CREATE INDEX idx_my_table_geom ON my_table USING gist(geom "
+"gist_geometry_ops);"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:44
+#, no-c-format
+msgid "To GOOD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:45
+#, fuzzy, no-c-format
+msgid "CREATE INDEX idx_my_table_geom ON my_table USING gist(geom);"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:47
+#, no-c-format
+msgid ""
+"The only case where you WILL need to specify the operator class is if you "
+"want a 3D spatial index as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:48
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_my_super3d_geom ON my_super3d USING gist(geom "
+"gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:50
+#, no-c-format
+msgid ""
+"If you are unfortunate to be stuck with compiled code you can't change that "
+"has the old gist_geometry_ops hard-coded, then you can create the old class "
+"using the <filename>legacy_gist.sql</filename> packaged in PostGIS 2.0.2+. "
+"However if you use this fix, you are advised to at a later point drop the "
+"index and recreate it without the operator class. This will save you grief "
+"in the future when you need to upgrade again."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:56
+#, no-c-format
+msgid ""
+"I'm running PostgreSQL 9.0 and I can no longer read/view geometries in "
+"OpenJump, Safe FME, and some other tools?"
+msgstr ""
+"J'utilise PostgreSQL 9.0 et je ne peux plus accéder à la géométries de mes "
+"objets dans OpenJump, Safe FME ou tout autre logiciel"
+
+#. Tag: para
+#: faq.xml:60
+#, no-c-format
+msgid ""
+"In PostgreSQL 9.0+, the default encoding for bytea data has been changed to "
+"hex and older JDBC drivers still assume escape format. This has affected "
+"some applications such as Java applications using older JDBC drivers or .NET "
+"applications that use the older npgsql driver that expect the old behavior "
+"of ST_AsBinary. There are two approaches to getting this to work again."
+msgstr ""
+"Dans PostgreSQL 9.0+, l'encodage par défaut pour la donnée bytea a été "
+"changé vers l'hexadécimal et les anciens pilotes JDBC assument toujours "
+"l'ancien format avec échappement. Cela affecte certaines applications telles "
+"que les applications Java utilisant des anciens pilotes JDBC, ou des "
+"applications .NET qui utilisent le vieux pilote npgsql, qui attend l'ancien "
+"comportement de ST_AsBinary. Il y a deux approches pour rétablir un bon "
+"fonctionnement dans cette situation."
+
+#. Tag: para
+#: faq.xml:64
+#, no-c-format
+msgid ""
+"You can upgrade your JDBC driver to the latest PostgreSQL 9.0 version which "
+"you can get from <ulink url=\"http://jdbc.postgresql.org/download.html"
+"\">http://jdbc.postgresql.org/download.html</ulink>"
+msgstr ""
+"Vous pouvez mettre à jour votre pilote JDBC vers sa version PostgreSQL 9.0 "
+"que vous pouvez obtenir depuis <ulink url=\"http://jdbc.postgresql.org/"
+"download.html\">http://jdbc.postgresql.org/download.html</ulink>"
+
+#. Tag: para
+#: faq.xml:66
+#, no-c-format
+msgid ""
+"If you are running a .NET app, you can use Npgsql 2.0.11 or higher which you "
+"can download from <ulink url=\"http://pgfoundry.org/frs/?"
+"group_id=1000140\">http://pgfoundry.org/frs/?group_id=1000140</ulink> and as "
+"described on <ulink url=\"http://fxjr.blogspot.com/2010/11/npgsql-2011-"
+"released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released blog entry</"
+"ulink>"
+msgstr ""
+"Si vous faites tourner une application .NET, vous pouvez utiliser Npgsql "
+"2.0.11 ou supérieure, que vous pouvez télécharger de <ulink url=\"http://"
+"pgfoundry.org/frs/?group_id=1000140\">http://pgfoundry.org/frs/?"
+"group_id=1000140</ulink>, et voir la description donnée sur l'entrée de blog "
+"de <ulink url=\"http://fxjr.blogspot.com/2010/11/npgsql-2011-released.html"
+"\">Francisco Figueiredo sur NpgSQL 2.0.11</ulink>"
+
+#. Tag: para
+#: faq.xml:70
+#, no-c-format
+msgid ""
+"If upgrading your PostgreSQL driver is not an option, then you can set the "
+"default back to the old behavior with the following change:"
+msgstr ""
+"Si mettre à jour votre pilote PostgreSQL n'est pas une option, alors vous "
+"pouvez définir la valeur par défaut à l'ancien comportement avec la "
+"modification suivante :"
+
+#. Tag: programlisting
+#: faq.xml:71
+#, no-c-format
+msgid "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
+msgstr "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
+
+#. Tag: para
+#: faq.xml:78
+#, no-c-format
+msgid ""
+"I tried to use PgAdmin to view my geometry column and it is blank, what "
+"gives?"
+msgstr ""
+"J'ai essayé d'utiliser PgAdmin pour visualiser mon champ géométrique mais "
+"elle est vide, qu'arrive-t-il ?"
+
+#. Tag: para
+#: faq.xml:82
+#, no-c-format
+msgid ""
+"PgAdmin doesn't show anything for large geometries. The best ways to verify "
+"you do have data in your geometry columns are?"
+msgstr ""
+"PgAdmin ne montre rien concernant les grandes géométries. Quelles sont les "
+"meilleurs solutions pour vérifier que mes champs géométriques contiennent "
+"des données ?"
+
+#. Tag: programlisting
+#: faq.xml:85
+#, no-c-format
+msgid ""
+"-- this should return no records if all your geom fields are filled "
+"in        \n"
+"SELECT somefield FROM mytable WHERE geom IS NULL;"
+msgstr ""
+"-- cela ne doit pas retourner d'enregistrements si tous les champs "
+"géométriques sont remplis\n"
+"SELECT somefield FROM mytable WHERE geom IS NULL;"
+
+#. Tag: programlisting
+#: faq.xml:87
+#, no-c-format
+msgid ""
+"-- To tell just how large your geometry is do a query of the form\n"
+"--which will tell you the most number of points you have in any of your "
+"geometry columns\n"
+"SELECT MAX(ST_NPoints(geom)) FROM sometable;"
+msgstr ""
+"-- Pour connaître la taille de votre géométrie faîtes une requête de ce "
+"type\n"
+"-- qui vous indiquera le plus grand nombre de points vous avez dans vos "
+"géométries\n"
+"SELECT MAX(ST_NPoints(geom)) FROM sometable;"
+
+#. Tag: para
+#: faq.xml:93
+#, no-c-format
+msgid "What kind of geometric objects can I store?"
+msgstr "Quelles sont les objets géométriques que je peux sauvegarder ?"
+
+#. Tag: para
+#: faq.xml:97
+#, no-c-format
+msgid ""
+"You can store point, line, polygon, multipoint, multiline, multipolygon, and "
+"geometrycollections. In PostGIS 2.0 and above you can also store TINS and "
+"Polyhedral Surfaces in the basic geometry type. These are specified in the "
+"Open GIS Well Known Text Format (with XYZ,XYM,XYZM extensions). There are "
+"three data types currently supported. The standard OGC geometry data type "
+"which uses a planar coordinate system for measurement, the geography data "
+"type which uses a geodetic coordinate system (not OGC, but you'll find a "
+"similar type in Microsoft SQL Server 2008+). Only WGS 84 long lat "
+"(SRID:4326) is supported by the geography data type. The newest family "
+"member of the PostGIS spatial type family is raster for storing and "
+"analyzing raster data. Raster has its very own FAQ. Refer to <xref linkend="
+"\"RT_FAQ\"/> and <xref linkend=\"RT_reference\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:110
+#, no-c-format
+msgid "I'm all confused. Which data store should I use geometry or geography?"
+msgstr ""
+"Je suis perdu. Dois-je utiliser un champs de type \"geometry\" ou \"geography"
+"\" ?"
+
+#. Tag: para
+#: faq.xml:114
+#, no-c-format
+msgid ""
+"Short Answer: geography is a new data type that supports long range "
+"distances measurements, but most computations on it are currently slower "
+"than they are on geometry. If you use geography -- you don't need to learn "
+"much about planar coordinate systems. Geography is generally best if all you "
+"care about is measuring distances and lengths and you have data from all "
+"over the world. Geometry data type is an older data type that has many more "
+"functions supporting it, enjoys greater support from third party tools, and "
+"operations on it are generally faster -- sometimes as much as 10 fold faster "
+"for larger geometries. Geometry is best if you are pretty comfortable with "
+"spatial reference systems or you are dealing with localized data where all "
+"your data fits in a single <link linkend=\"spatial_ref_sys\">spatial "
+"reference system (SRID)</link>, or you need to do a lot of spatial "
+"processing. Note: It is fairly easy to do one-off conversions between the "
+"two types to gain the benefits of each. Refer to <xref linkend="
+"\"PostGIS_TypeFunctionMatrix\"/> to see what is currently supported and what "
+"is not."
+msgstr ""
+"Réponse courte: geography est un nouveau type de donnée qui supporte la "
+"mesure de distances à longue portée, mais la plupart des calculs sont "
+"actuellement plus lents qu'avec geometry. Si vous utilisez geography -- vous "
+"n'avez pas besoin d'en apprendre davantage à propos des systèmes de "
+"coordonnées planes. Geography est en général le meilleur si vous avez "
+"surtout besoin de mesurer des distances et des longueurs et si vous avez des "
+"données provenant du monde entier. Geometry est un type de donnée plus vieux "
+"qui est encore supporté par beaucoup plus de fonctions, qui bénéficie d'un "
+"meilleur support par les outils tierce partie, et avec lequel les opérations "
+"sont en général plus rapides -- parfois plus rapides d'un facteur 10 pour "
+"les grosses géométries. Geometry est meilleur si vous êtes habitué aux "
+"systèmes de référence spatiaux ou si vous travaillez avec des données "
+"localisées avec toutes vos données tenant dans un seul <link linkend="
+"\"spatial_ref_sys\">système de référence spatiale (SRID)</link>, ou si vous "
+"avez besoin de faire beaucoup de calcul spatial. Note: il est assez facile "
+"de faire des conversions entre les deux types pour avoir les bénéfices de "
+"chacun d'entre eux. Se référer à <xref linkend=\"PostGIS_TypeFunctionMatrix"
+"\"/> pour voir ce qui est actuellement supporté ou pas."
+
+#. Tag: para
+#: faq.xml:125
+#, no-c-format
+msgid ""
+"Long Answer: Refer to our more lengthy discussion in the <xref linkend="
+"\"PostGIS_GeographyVSGeometry\"/> and <link linkend="
+"\"PostGIS_TypeFunctionMatrix\">function type matrix</link>."
+msgstr ""
+"Réponse plus longue ; référez vous à notre longue discussion sur  <xref "
+"linkend=\"PostGIS_GeographyVSGeometry\"/> et <link linkend="
+"\"PostGIS_TypeFunctionMatrix\">matrice de type de fonction</link>."
+
+#. Tag: para
+#: faq.xml:133
+#, no-c-format
+msgid ""
+"I have more intense questions about geography, such as how big of a "
+"geographic region can I stuff in a geography column and still get reasonable "
+"answers. Are there limitations such as poles, everything in the field must "
+"fit in a hemisphere (like SQL Server 2008 has), speed etc?"
+msgstr ""
+"J'ai d'autres questions plus avancées sur le type geography, comme la taille "
+"d'une région géographique que je peux mettre dans une colonne geography pour "
+"continuer à avoir des requêtes performantes. Ou bien s'il y a des "
+"limitations, comme aux pôles, ou si toutes les données doivent tenir dans un "
+"hémisphère (comme dans SQL server 2008), ou bien sur la vitesse d'exécution, "
+"etc."
+
+#. Tag: para
+#: faq.xml:137
+#, no-c-format
+msgid ""
+"Your questions are too deep and complex to be adequately answered in this "
+"section. Please refer to our <xref linkend=\"PostGIS_Geography_AdvancedFAQ\"/"
+">."
+msgstr ""
+"Vos questions sont trop complexes et trop importantes pour être suffisamment "
+"détaillées ici. Référez vous à notre <xref linkend="
+"\"PostGIS_Geography_AdvancedFAQ\"/>."
+
+#. Tag: para
+#: faq.xml:144
+#, no-c-format
+msgid "How do I insert a GIS object into the database?"
+msgstr "Comment est-ce que j'insère un objet SIG dans une base de données ?"
+
+#. Tag: para
+#: faq.xml:148
+#, no-c-format
+msgid ""
+"First, you need to create a table with a column of type \"geometry\" or "
+"\"geography\" to hold your GIS data. Storing geography type data is a little "
+"different than storing geometry. Refer to <xref linkend=\"Geography_Basics\"/"
+"> for details on storing geography."
+msgstr ""
+"D'abords, vous devez créer une table avec une colonne de type \"geometry\" "
+"ou \"geography\" pour stocker vos données SIG. Stocker des données de type "
+"géographique est un petit différent que stocker des géométries. Référez vous "
+"à la page <xref linkend=\"Geography_Basics\"/> pour les détails sur le "
+"stockage géographique."
+
+#. Tag: para
+#: faq.xml:152
+#, no-c-format
+msgid ""
+"For geometry: Connect to your database with <filename>psql</filename> and "
+"try the following SQL:"
+msgstr ""
+"Pour les géométries : connectez vous à votre base de données avec "
+"<filename>psql</filename> et tentez la commande SQL suivante :"
+
+#. Tag: programlisting
+#: faq.xml:156
+#, no-c-format
+msgid ""
+"CREATE TABLE gtest ( gid serial primary key, name varchar(20)\n"
+"        , geom geometry(LINESTRING) );"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:158
+#, fuzzy, no-c-format
+msgid ""
+"If the geometry column definition fails, you probably have not loaded the "
+"PostGIS functions and objects into this database or are using a pre-2.0 "
+"version of PostGIS. See the <xref linkend=\"PGInstall\"/>."
+msgstr ""
+"Si l'ajout de la colonne géométrique plante, vous n'avez probablement pas "
+"charger les fonctions et objets PostGIS dans la base. Lisez le chapitre "
+"<xref linkend=\"PGInstall\"/>."
+
+#. Tag: para
+#: faq.xml:162
+#, no-c-format
+msgid ""
+"Then, you can insert a geometry into the table using a SQL insert statement. "
+"The GIS object itself is formatted using the OpenGIS Consortium \"well-known "
+"text\" format:"
+msgstr ""
+"Puis, vous pouvez insérer une géométrie dans la table en utilisant une "
+"requête SQL insert. L'objet SIG lui même est formaté en utilisant le format "
+"\"well-known text\" de l'OpenGIS Consortium."
+
+#. Tag: programlisting
+#: faq.xml:166
+#, fuzzy, no-c-format
+msgid ""
+"INSERT INTO gtest (ID, NAME, GEOM) \n"
+"VALUES (\n"
+"  1, \n"
+"  'First Geometry', \n"
+"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)')\n"
+");"
+msgstr ""
+"INSERT INTO gtest (ID, NAME, GEOM) \n"
+"VALUES (\n"
+"  1, \n"
+"  'First Geometry', \n"
+"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1)\n"
+");"
+
+#. Tag: para
+#: faq.xml:168
+#, no-c-format
+msgid ""
+"For more information about other GIS objects, see the <link linkend="
+"\"RefObject\">object reference</link>."
+msgstr ""
+"Pour plus d'information sur les objets SIG, lisez le chapitre <link linkend="
+"\"RefObject\">object reference</link>."
+
+#. Tag: para
+#: faq.xml:171
+#, no-c-format
+msgid "To view your GIS data in the table:"
+msgstr "Pour voir vos données SIG dans la table :"
+
+#. Tag: programlisting
+#: faq.xml:173
+#, no-c-format
+msgid "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
+msgstr "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
+
+#. Tag: para
+#: faq.xml:175
+#, no-c-format
+msgid "The return value should look something like this:"
+msgstr "La valeur retournée doit ressembler à çà :"
+
+#. Tag: programlisting
+#: faq.xml:177
+#, no-c-format
+msgid ""
+"id | name           | geom\n"
+"----+----------------+-----------------------------\n"
+"  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
+"(1 row)"
+msgstr ""
+"id | name           | geom\n"
+"----+----------------+-----------------------------\n"
+"  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
+"(1 row)"
+
+#. Tag: para
+#: faq.xml:183
+#, no-c-format
+msgid "How do I construct a spatial query?"
+msgstr "Comment est-ce que je construis une requête spatiale ?"
+
+#. Tag: para
+#: faq.xml:187
+#, no-c-format
+msgid ""
+"The same way you construct any other database query, as an SQL combination "
+"of return values, functions, and boolean tests."
+msgstr ""
+"De la même manière vous construisez n'importe quelle requête de base de "
+"données, comme une combinaison SQL de valeurs retournées, fonctions et tests "
+"booléens."
+
+#. Tag: para
+#: faq.xml:190
+#, no-c-format
+msgid ""
+"For spatial queries, there are two issues that are important to keep in mind "
+"while constructing your query: is there a spatial index you can make use of; "
+"and, are you doing expensive calculations on a large number of geometries."
+msgstr ""
+"Pour les requêtes spatiales, il y a deux problèmes qui sont important à "
+"garder à l'esprit lors de la construction de vos requêtes : y a t'il un "
+"index spatial que vous pouvez utiliser et faîtes vous des calculs couteux "
+"sur un grand nombre de géométries. "
+
+#. Tag: para
+#: faq.xml:195
+#, no-c-format
+msgid ""
+"In general, you will want to use the \"intersects operator\" (&&) "
+"which tests whether the bounding boxes of features intersect. The reason the "
+"&& operator is useful is because if a spatial index is available to "
+"speed up the test, the && operator will make use of this. This can "
+"make queries much much faster."
+msgstr ""
+"En général, vous voulez utiliser l'\"opérateur intersects\" (&&) qui "
+"test si la boîte englobante de l'entité intersecte. La raison de l'utilité "
+"de l'opérateur && est que si un index spatial est disponible pour "
+"accélérer le test, l'opérateur && l'utilisera. Cela rend les "
+"requêtes beaucoup plus rapide."
+
+#. Tag: para
+#: faq.xml:202
+#, no-c-format
+msgid ""
+"You will also make use of spatial functions, such as Distance(), "
+"ST_Intersects(), ST_Contains() and ST_Within(), among others, to narrow down "
+"the results of your search. Most spatial queries include both an indexed "
+"test and a spatial function test. The index test serves to limit the number "
+"of return tuples to only tuples that <emphasis>might</emphasis> meet the "
+"condition of interest. The spatial functions are then use to test the "
+"condition exactly."
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:210
+#, no-c-format
+msgid ""
+"SELECT id, the_geom \n"
+"FROM thetable \n"
+"WHERE \n"
+"  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
+msgstr ""
+"SELECT id, the_geom \n"
+"FROM thetable \n"
+"WHERE \n"
+"  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
+
+#. Tag: para
+#: faq.xml:216
+#, no-c-format
+msgid "How do I speed up spatial queries on large tables?"
+msgstr ""
+"Comment est-ce que je peux accélérer les requêtes spatiales sur des grandes "
+"tables ?"
+
+#. Tag: para
+#: faq.xml:220
+#, no-c-format
+msgid ""
+"Fast queries on large tables is the <emphasis>raison d'etre</emphasis> of "
+"spatial databases (along with transaction support) so having a good index is "
+"important."
+msgstr ""
+"Les requêtes rapides sur de grosse table est la <emphasis>raison d'etre</"
+"emphasis> des bases de donnes spatiales (avec la gestion des transactions) "
+"donc avoir un bon index est important."
+
+#. Tag: para
+#: faq.xml:224
+#, no-c-format
+msgid ""
+"To build a spatial index on a table with a <varname>geometry</varname> "
+"column, use the \"CREATE INDEX\" function as follows:"
+msgstr ""
+"Pour créer un index spatial sur une table avec un champ <varname>geometry</"
+"varname>, utilisez la fonction \"CREATE INDEX\" comme ci-après :"
+
+#. Tag: programlisting
+#: faq.xml:228
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:230
+#, no-c-format
+msgid ""
+"The \"USING GIST\" option tells the server to use a GiST (Generalized Search "
+"Tree) index."
+msgstr ""
+"L'option \"USING GIST\" dit au serveur d'utiliser un index GiST (Generalized "
+"Search Tree)."
+
+#. Tag: para
+#: faq.xml:234
+#, no-c-format
+msgid ""
+"GiST indexes are assumed to be lossy. Lossy indexes uses a proxy object (in "
+"the spatial case, a bounding box) for building the index."
+msgstr ""
+"Les indexes GiST sont supposés sans perte. Les indexes avec pertes utilisent "
+"un objet proxy (dans le cas du spatial, une boîte englobante) pour "
+"construire l'index."
+
+#. Tag: para
+#: faq.xml:239
+#, no-c-format
+msgid ""
+"You should also ensure that the PostgreSQL query planner has enough "
+"information about your index to make rational decisions about when to use "
+"it. To do this, you have to \"gather statistics\" on your geometry tables."
+msgstr ""
+"Vous devriez vous assurer également que le planificateur PostgreSQL possède "
+"suffisamment d'information sur votre index pour prendre des décisions "
+"rationnelles sur son utilisation. Pour cela, il faudra \"calculer les "
+"statistiques\" sur vos tables géométriques."
+
+#. Tag: para
+#: faq.xml:244
+#, no-c-format
+msgid ""
+"For PostgreSQL 8.0.x and greater, just run the <command>VACUUM ANALYZE</"
+"command> command."
+msgstr ""
+"Pour les versions de PostgreSQL 8.0.x et les versions supérieures, lancez "
+"simplement la commande <command>VACUUM ANALYZE</command>."
+
+#. Tag: para
+#: faq.xml:247
+#, no-c-format
+msgid ""
+"For PostgreSQL 7.4.x and below, run the <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command> command."
+msgstr ""
+"Pour PostgreSQL 7.4.x et antérieur, lancez la commande <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command>"
+
+#. Tag: para
+#: faq.xml:254
+#, no-c-format
+msgid "Why aren't PostgreSQL R-Tree indexes supported?"
+msgstr ""
+"Pourquoi est-ce que les indexes R-Tree PostgreSQL ne sont pas supportés ?"
+
+#. Tag: para
+#: faq.xml:258
+#, no-c-format
+msgid ""
+"Early versions of PostGIS used the PostgreSQL R-Tree indexes. However, "
+"PostgreSQL R-Trees have been completely discarded since version 0.6, and "
+"spatial indexing is provided with an R-Tree-over-GiST scheme."
+msgstr ""
+"Les versions précédentes de PostGIS utilisaient des index de type R-Tree. "
+"Néanmoins, ces index R-Trees ont été supprimés depuis la version 0.6 et "
+"l'indexation spatiale est maintenant réalisée par un R-Tree-over-GiST."
+
+#. Tag: para
+#: faq.xml:263
+#, no-c-format
+msgid ""
+"Our tests have shown search speed for native R-Tree and GiST to be "
+"comparable. Native PostgreSQL R-Trees have two limitations which make them "
+"undesirable for use with GIS features (note that these limitations are due "
+"to the current PostgreSQL native R-Tree implementation, not the R-Tree "
+"concept in general):"
+msgstr ""
+"Nos tests ont montré que la vitesse de recherche des indexes R-Tree et GiST "
+"est comparable. Les R-Tree PostgreSQL ont deux limitations qui les rendent "
+"inintéressants pour une utilisation avec des objets SIG (notez que ces "
+"limitations sont dues à l'implémentation native des R-Tree dans PostgreSQL, "
+"pas au concept de R-Tree en général):"
+
+#. Tag: para
+#: faq.xml:271
+#, no-c-format
+msgid ""
+"R-Tree indexes in PostgreSQL cannot handle features which are larger than 8K "
+"in size. GiST indexes can, using the \"lossy\" trick of substituting the "
+"bounding box for the feature itself."
+msgstr ""
+"Dans PostgreSQL, les index R-Tree ne peuvent pas gérer des objets qui sont "
+"plus grands que 8K en taille. Les index GiST le peuvent, en utilisant le "
+"truc \"approximatif\" de substituer la boîte d'encombrement à l'objet lui-"
+"même."
+
+#. Tag: para
+#: faq.xml:278
+#, no-c-format
+msgid ""
+"R-Tree indexes in PostgreSQL are not \"null safe\", so building an index on "
+"a geometry column which contains null geometries will fail."
+msgstr ""
+"Dans PostgreSQL, les index R-Tree ne sont pas \"null safe\", donc construire "
+"un index sur une colonne geometry qui contient des géométries nulles "
+"échouera."
+
+#. Tag: para
+#: faq.xml:288
+#, no-c-format
+msgid ""
+"Why should I use the <varname>AddGeometryColumn()</varname> function and all "
+"the other OpenGIS stuff?"
+msgstr ""
+"Pourquoi est-il mieux d'utiliser la fonction <varname>AddGeometryColumn()</"
+"varname> et toutes les autres fonctionnalités de PostGIS ?"
+
+#. Tag: para
+#: faq.xml:293
+#, no-c-format
+msgid ""
+"If you do not want to use the OpenGIS support functions, you do not have to. "
+"Simply create tables as in older versions, defining your geometry columns in "
+"the CREATE statement. All your geometries will have SRIDs of -1, and the "
+"OpenGIS meta-data tables will <emphasis>not</emphasis> be filled in "
+"properly. However, this will cause most applications based on PostGIS to "
+"fail, and it is generally suggested that you do use "
+"<varname>AddGeometryColumn()</varname> to create geometry tables."
+msgstr ""
+"SI vous ne souhaitez pas utiliser les fonctions de l'OpenGIS, vous n'avez "
+"pas à le faire. Dans ce cas, créez simplement vos tables comme cela se "
+"faisait auparavant en spécifiant votre colonne géométrique lors du processus "
+"de création (CREATE). Toutes vos géométries auront alors -1 pour SRID  et la "
+"table de métadonnées OpenGIS <emphasis>ne sera pas</emphasis> remplie "
+"correctement. Néanmoins, cela entraînera des erreurs pour la plupart des "
+"applications utilisant PostGIS et il est généralement conseillé d'utiliser "
+"<varname>AddGeometryColumn()</varname> pour créer votre table géométrique."
+
+#. Tag: para
+#: faq.xml:302
+#, no-c-format
+msgid ""
+"MapServer is one application which makes use of the "
+"<varname>geometry_columns</varname> meta-data. Specifically, MapServer can "
+"use the SRID of the geometry column to do on-the-fly reprojection of "
+"features into the correct map projection."
+msgstr ""
+"MapServer est l'une des applications qui utilise les métadonnées de la table "
+"<varname>geometry_columns</varname>. Plus spécifiquement, MapServer peut "
+"utiliser le SRID spécifié dans la table géométrique afin d'effectuer des "
+"reprojections à la volée conforme à la projection de la carte."
+
+#. Tag: para
+#: faq.xml:311
+#, no-c-format
+msgid ""
+"What is the best way to find all objects within a radius of another object?"
+msgstr ""
+"Quelle est la meilleure méthode pour trouver les objets qui sont dans un "
+"certains rayons d'un autre objet ?"
+
+#. Tag: para
+#: faq.xml:316
+#, no-c-format
+msgid ""
+"To use the database most efficiently, it is best to do radius queries which "
+"combine the radius test with a bounding box test: the bounding box test uses "
+"the spatial index, giving fast access to a subset of data which the radius "
+"test is then applied to."
+msgstr ""
+"Pour utiliser la base de données de la manière la plus efficace possible, il "
+"est préférable de faire des requêtes de plus proches voisins qui combinent "
+"le test de distance et un test sur une étendue (\"bounding box\") : la "
+"bounding box utilise l'indexation spatiale, donnant accès rapide à un sous-"
+"ensemble de données sur lequel le test de distance est ensuite appliqué."
+
+#. Tag: para
+#: faq.xml:321
+#, no-c-format
+msgid ""
+"The <varname>ST_DWithin(geometry, geometry, distance)</varname> function is "
+"a handy way of performing an indexed distance search. It works by creating a "
+"search rectangle large enough to enclose the distance radius, then "
+"performing an exact distance search on the indexed subset of results."
+msgstr ""
+"La fonction <varname>ST_DWithin(geometry, geometry, distance)</varname> est "
+"un moyen pratique pour effectuer un recherche indexée sur une distance. Cela "
+"fonctionne en créant une recherche rectangulaire suffisamment large pour "
+"contenir le rayon de distance, pour ensuite effectuer une recherche par "
+"distance exacte portant sur un sous-ensemble de résultats indexés."
+
+#. Tag: para
+#: faq.xml:327
+#, no-c-format
+msgid ""
+"For example, to find all objects with 100 meters of POINT(1000 1000) the "
+"following query would work well:"
+msgstr ""
+"Par exemple, pour trouver tous les objets qui sont dans les 100 mètres du "
+"POINT(1000 1000), la requête suivante fonctionne très bien :"
+
+#. Tag: programlisting
+#: faq.xml:330
+#, no-c-format
+msgid ""
+"SELECT * FROM geotable \n"
+"WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
+msgstr ""
+"SELECT * FROM geotable \n"
+"WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
+
+#. Tag: para
+#: faq.xml:336
+#, no-c-format
+msgid "How do I perform a coordinate reprojection as part of a query?"
+msgstr ""
+"Comment procéder à de la reprojection de coordonnées dans une requête ?"
+
+#. Tag: para
+#: faq.xml:341
+#, no-c-format
+msgid ""
+"To perform a reprojection, both the source and destination coordinate "
+"systems must be defined in the SPATIAL_REF_SYS table, and the geometries "
+"being reprojected must already have an SRID set on them. Once that is done, "
+"a reprojection is as simple as referring to the desired destination SRID. "
+"The below projects a geometry to NAD 83 long lat. The below will only work "
+"if the srid of the_geom is not -1 (not undefined spatial ref)"
+msgstr ""
+"Pour procéder à une reprojection, les systèmes de coordonnée source et "
+"destination doivent être définis dans la table SPATIAL_REF_SYS, et les "
+"géométries reprojetées doivent déjà posséder un SRID. Une fois ceci fait, "
+"une reprojection est aussi simple que de se référer au SRID de destination "
+"désiré. Ci-dessous on projette une géométrie vers long lat NAD 83. Ceci ne "
+"fonctionne que si le srid de the_geom n'est pas -1 (référence spatiale non "
+"définie)"
+
+#. Tag: programlisting
+#: faq.xml:348
+#, no-c-format
+msgid "SELECT ST_Transform(the_geom,4269) FROM geotable;"
+msgstr "SELECT ST_Transform(the_geom,4269) FROM geotable;"
+
+#. Tag: para
+#: faq.xml:354
+#, no-c-format
+msgid ""
+"I did an ST_AsEWKT and ST_AsText on my rather large geometry and it returned "
+"blank field. What gives?"
+msgstr ""
+"J'ai fait un ST_AsEWKT et un ST_AsText sur de grandes géométries et j'ai "
+"obtenu une réponse vide. Qu'est-il arrivé ?"
+
+#. Tag: para
+#: faq.xml:358
+#, no-c-format
+msgid ""
+"You are probably using PgAdmin or some other tool that doesn't output large "
+"text. If your geometry is big enough, it will appear blank in these tools. "
+"Use PSQL if you really need to see it or output it in WKT."
+msgstr ""
+"Vous utilisez probablement PgAdmin ou un autre outils qui ne supportent pas "
+"les réponses longues. Si votre géométrie est très grosse, elle ne "
+"s'affichera pas dans ces outils. Utilisez PSQL si vous devez la visualiser "
+"ou exporter la en WKT."
+
+#. Tag: programlisting
+#: faq.xml:361
+#, no-c-format
+msgid ""
+"--To check number of geometries are really blank\n"
+"                                SELECT count(gid) FROM geotable WHERE "
+"the_geom IS NULL;"
+msgstr ""
+"--Pour vérifier le nombre de géométries qui sont réellement vides\n"
+"SELECT count(gid) FROM geotable WHERE the_geom IS NULL;"
+
+#. Tag: para
+#: faq.xml:367
+#, no-c-format
+msgid ""
+"When I do an ST_Intersects, it says my two geometries don't intersect when I "
+"KNOW THEY DO. What gives?"
+msgstr ""
+"Quand je fais un ST_Intersects, il me répond que mes deux géométries ne "
+"s'intersectent pas alors que JE SAIS QUE C'EST LE CAS. Qu'arrive-t-il ?"
+
+#. Tag: para
+#: faq.xml:371
+#, no-c-format
+msgid ""
+"This generally happens in two common cases. Your geometry is invalid -- "
+"check <xref linkend=\"ST_IsValid\"/> or you are assuming they intersect "
+"because ST_AsText truncates the numbers and you have lots of decimals after "
+"it is not showing you."
+msgstr ""
+"Cela arrive généralement dans deux configurations. Votre géométrie est "
+"invalide -- vérifier avec <xref linkend=\"ST_IsValid\"/> ou vous pensez que "
+"vos géométries s'intersectent du fait que ST_AsText tronque les chiffres et "
+"vous avez après de nombreuses décimales qui ne sont pas affichées. "
+
+#. Tag: para
+#: faq.xml:379
+#, no-c-format
+msgid ""
+"I am releasing software that uses PostGIS, does that mean my software has to "
+"be licensed using the GPL like PostGIS? Will I have to publish all my code "
+"if I use PostGIS?"
+msgstr ""
+"Je vais sortir un logiciel qui utilise PostGIS, est-ce que cela veut dire "
+"que mon logiciel doit être sous licence GPL tel que PostGIS ? Vais-je devoir "
+"publier tout mon code source si j'utilise PostGIS ?"
+
+#. Tag: para
+#: faq.xml:383
+#, no-c-format
+msgid ""
+"Almost certainly not. As an example, consider Oracle database running on "
+"Linux. Linux is GPL, Oracle is not, does Oracle running on Linux have to be "
+"distributed using the GPL? No. So your software can use a PostgreSQL/PostGIS "
+"database as much as it wants and be under any license you like."
+msgstr ""
+"Bien sur que non. Comme exemple, prenons une base de données Oracle tournant "
+"sur Linux. Linux est sous licence GPL, Oracle non. Est-ce qu'Oracle tournant "
+"sous Linux doit être distribué sous GPL ? Non. Donc votre programme peut "
+"utiliser une base de données PostgreSQL/PostGIS autant que vous voulez et "
+"être sous la licence que vous souhaitez."
+
+#. Tag: para
+#: faq.xml:384
+#, no-c-format
+msgid ""
+"The only exception would be if you made changes to the PostGIS source code, "
+"and distributed your changed version of PostGIS. In that case you would have "
+"to share the code of your changed PostGIS (but not the code of applications "
+"running on top of it). Even in this limited case, you would still only have "
+"to distribute source code to people you distributed binaries to. The GPL "
+"does not require that you <emphasis>publish</emphasis> your source code, "
+"only that you share it with people you give binaries to."
+msgstr ""
+"La seule exception est si vous faites des modifications au code source de "
+"PostGIS, et que vous distribuez cette version modifiée de PostGIS. Dans ce "
+"cas vous devrez partager le code source de votre PostGIS modifié (mais pas "
+"le code des applications l'utilisant). Même dans ce cas limité, vous "
+"n'auriez à distribuer le code source qu'aux gens à qui vous distribuez des "
+"binaires. La GPL n'oblige pas à <emphasis>publier</emphasis> votre code "
+"source, mais uniquement à le partager avec les personnes à qui vous donnez "
+"des binaires."
+
+#~ msgid ""
+#~ "CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
+#~ "SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
+#~ msgstr ""
+#~ "CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
+#~ "SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
diff --git a/doc/po/fr/faq_raster.xml.po b/doc/po/fr/faq_raster.xml.po
new file mode 100644
index 0000000..80bd2df
--- /dev/null
+++ b/doc/po/fr/faq_raster.xml.po
@@ -0,0 +1,833 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Arnaud Vandecasteele <arnaud.sig at gmail.com>, 2013
+# juliep <julie.pierson at cnrs.fr>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-03 17:05+0000\n"
+"Last-Translator: Arnaud Vandecasteele <arnaud.sig at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: faq_raster.xml:3
+#, no-c-format
+msgid "PostGIS Raster Frequently Asked Questions"
+msgstr "Foire Aux Questions PostGIS Raster"
+
+#. Tag: para
+#: faq_raster.xml:9
+#, no-c-format
+msgid "Where can I find out more about the PostGIS Raster Project?"
+msgstr "Où puis-je en apprendre d'avantage sur le Projet PostGis Raster?"
+
+#. Tag: para
+#: faq_raster.xml:13
+#, no-c-format
+msgid ""
+"Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster"
+"\">PostGIS Raster home page</ulink>."
+msgstr ""
+"Rendez-vous sur la <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster"
+"\">page d'accueil de PostGIS Raster</ulink>."
+
+#. Tag: para
+#: faq_raster.xml:19
+#, no-c-format
+msgid ""
+"Are there any books or tutorials to get me started with this wonderful "
+"invention?"
+msgstr ""
+"Existe-t-il des livres ou tutoriels pour débuter avec cette merveilleuse "
+"invention?"
+
+#. Tag: para
+#: faq_raster.xml:23
+#, no-c-format
+msgid ""
+"There is a full length beginner tutorial <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/WKTRasterTutorial01\"> Intersecting vector buffers with large "
+"raster coverage using PostGIS Raster</ulink>. Jorge has a series of blog "
+"articles on PostGIS Raster that demonstrate how to load raster data as well "
+"as cross compare to same tasks in Oracle GeoRaster. Check out <ulink url="
+"\"http://gis4free.wordpress.com/category/postgis-raster/\">Jorge's PostGIS "
+"Raster / Oracle GeoRaster Series</ulink>. There is a whole chapter (more "
+"than 35 pages of content) dedicated to PostGIS Raster with free code and "
+"data downloads at <ulink url=\"http://www.postgis.us/chapter_13\">PostGIS in "
+"Action - Raster chapter</ulink>. You can <ulink url=\"http://www.postgis.us/"
+"page_buy_book\">buy PostGIS in Action</ulink> now from Manning in hard-copy "
+"(significant discounts for bulk purchases) or just the E-book format. You "
+"can also buy from Amazon and various other book distributors. All hard-copy "
+"books come with a free coupon to download the E-book version."
+msgstr ""
+"Il existe un tutoriel détaillé pour débutant <ulink url=\"http://trac.osgeo."
+"org/postgis/wiki/WKTRasterTutorial01\"> Intersecter des polygones vecteur "
+"avec une grande couverture raster à l'aide de PostGIS Raster</ulink>. Jorge "
+"a une série d'articles de blog expliquant comment charger des données raster "
+"et faisant la comparaison avec les mêmes tâches sous Oracle GeoRaster. "
+"Rendez-vous sur <ulink url=\"http://gis4free.wordpress.com/category/postgis-"
+"raster/\">la série PostGIS Raster / Oracle GeoRaster de Jorge</ulink>. Il "
+"existe un chapitre entier (plus de 35 pages de contenu) dédié à PostGIS "
+"Raster avec du code libre et des données à télécharger sur <ulink url="
+"\"http://www.postgis.us/chapter_13\">PostGIS in Action - Chapitre raster</"
+"ulink>. Vous pouvez <ulink url=\"http://www.postgis.us/page_buy_book"
+"\">acheter PostGIS in Action</ulink> dès maintenant chez Manning en version "
+"papier (réduction importante pour les achats groupés) ou juste au format E-"
+"book. Vous pouvez aussi l'acheter chez Amazon ou d'autres distributeurs de "
+"livres. Toutes les version papier sont livrées avec un coupon gratuit pour "
+"télécharger la version E-book."
+
+#. Tag: para
+#: faq_raster.xml:30
+#, no-c-format
+msgid ""
+"Here is a review from a PostGIS Raster user <ulink url=\"http://"
+"fuzzytolerance.info/code/postgis-raster-ftw/\">PostGIS raster applied to "
+"land classification urban forestry</ulink>"
+msgstr ""
+"Voici une compte-rendu d'un utilisateur de PostGIS Raster  <ulink url="
+"\"http://fuzzytolerance.info/code/postgis-raster-ftw/\">PostGIS raster "
+"appliqué à la classification des terrains en foresterie urbaine</ulink>"
+
+#. Tag: para
+#: faq_raster.xml:37
+#, no-c-format
+msgid "How do I install Raster support in my PostGIS database?"
+msgstr "Comment installer le support Raster dans ma base de données PostGIS?"
+
+#. Tag: para
+#: faq_raster.xml:41
+#, no-c-format
+msgid ""
+"The easiest is to download binaries for PostGIS and Raster which are "
+"currently available for windows and latest versions of Mac OSX. First you "
+"need a working PostGIS 2.0.0 or above and be running PostgreSQL 8.4, 9.0, or "
+"9.1. Note in PostGIS 2.0 PostGIS Raster is fully integrated, so it will be "
+"compiled when you compile PostGIS."
+msgstr ""
+"Le plus facile est de télécharger les binaires pour PostGIS Raster qui sont "
+"actuellement disponibles pour windows et pour les les dernières versions de "
+"Mac OSX. Il vous faudra tout d'abord une version fonctionnelle de PostGIS "
+"2.0.0 ou plus récent, et utiliser PostgreSQL 8.4, 9.0 ou 9.1. Notez que "
+"PostGIS Raster est complètement intégré dans PostGIS 2.0 et sera compilé "
+"quand vous compilerez PostGIS."
+
+#. Tag: para
+#: faq_raster.xml:43
+#, no-c-format
+msgid ""
+"Instructions for installing and running under windows are available at "
+"<ulink url=\"http://gis4free.wordpress.com/2011/03/10/how-to-install-and-"
+"configure-postgis-raster-on-windows/\">How to Install and Configure PostGIS "
+"raster on windows</ulink>"
+msgstr ""
+"Des instructions pour l'installation et la configuration sous windows sont "
+"disponibles ici <ulink url=\"http://gis4free.wordpress.com/2011/03/10/how-to-"
+"install-and-configure-postgis-raster-on-windows/\">How to Install and "
+"Configure PostGIS raster on windows</ulink>"
+
+#. Tag: para
+#: faq_raster.xml:44
+#, fuzzy, no-c-format
+msgid ""
+"If you are on windows, you can compile yourself, or use the <ulink url="
+"\"http://postgis.net/windows_downloads\">pre-compiled PostGIS Raster windows "
+"binaries</ulink>. If you are on Mac OSX Leopard or Snow Leopard, there are "
+"binaries available at <ulink url=\"http://www.kyngchaos.com/software/postgres"
+"\">Kyng Chaos Mac OSX PostgreSQL/GIS binaries</ulink>."
+msgstr ""
+"Si vous êtes sous windows, vous pouvez compiler vous-même, ou bien utiliser "
+"les <ulink url=\"http://www.postgis.org/download/windows/experimental."
+"php#wktraster\">binaires pour PostGIS Raster pré-compilés pour windows</"
+"ulink>. Si vous êtes sous Mac OSX Leopard ou Snow Leopard, il existe des "
+"binaires disponibles ici : <ulink url=\"http://www.kyngchaos.com/software/"
+"postgres\">Kyng Chaos Mac OSX PostgreSQL/GIS binaries</ulink>."
+
+#. Tag: para
+#: faq_raster.xml:50
+#, no-c-format
+msgid ""
+"Then to enable raster support in your database, run the rtpostgis.sql file "
+"in your database. To upgrade an existing install use "
+"rtpostgis_upgrade_minor..sql instead of rtpostgis.sql"
+msgstr ""
+"Ensuite, pour activer le support raster dans votre base de données, exécutez "
+"le fichier rtpostgis.sql dans votre base de données. Pour mettre à niveau "
+"une installation déjà existante utilisez rtpostgis_upgrade_minor.sql au lieu "
+"de rtpostgis.sql"
+
+#. Tag: para
+#: faq_raster.xml:51
+#, no-c-format
+msgid ""
+"For other platforms, you generally need to compile yourself. Dependencies "
+"are PostGIS and GDAL. For more details about compiling from source, please "
+"refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"Documentation01#a2.3-CompilingandInstallingfromSources\">Installing PostGIS "
+"Raster from source (in prior versions of PostGIS)</ulink>"
+msgstr ""
+"Pour les autres plateformes, vous devrez généralement compiler PostGIS "
+"Raster par vous même. Les dépendances requises sont PostGIS et GDAL. Pour "
+"plus d'informations concernant le processus de compilation à partir des "
+"sources de PostGIS Raster, veuillez-vous référer à <ulink url=\"http://trac."
+"osgeo.org/postgis/wiki/WKTRaster/Documentation01#a2.3-"
+"CompilingandInstallingfromSources\">Installer PostGIS Raster à partir des "
+"sources (uniquement pour les versions antérieures de PostGIS)</ulink>"
+
+#. Tag: para
+#: faq_raster.xml:57
+#, no-c-format
+msgid ""
+"I get error could not load library \"C:/Program Files/PostgreSQL/8.4/lib/"
+"rtpostgis.dll\": The specified module could not be found. or could not load "
+"library on Linux when trying to run rtpostgis.sql"
+msgstr ""
+"J'obtiens sous Windows l'erreur suivante  \"C:/Program Files/PostgreSQL/8.4/"
+"lib/rtpostgis.dll\": le module spécifié n'a pas été trouvée. Ou sous Linux "
+"un message m'indiquant que la bibliothèque n'a pu être trouvée lors de "
+"l'exécution de rtpostgis.sql"
+
+#. Tag: para
+#: faq_raster.xml:62
+#, no-c-format
+msgid ""
+"rtpostgis.so/dll is built with dependency on libgdal.dll/so. Make sure for "
+"Windows you have libgdal-1.dll in the bin folder of your PostgreSQL install. "
+"For Linux libgdal has to be in your path or bin folder."
+msgstr ""
+"rtpostgis.so/dll a pour dépendance la bibliothèque libgdal.dll/so. De ce "
+"fait, assurez-vous d'avoir sous Windows la bibliothèque libgdal-1.dll dans "
+"le dossier bin de votre répertoire d'installation de PostgreSQL. Pour Linux, "
+"il est nécessaire que libgdal soit dans votre variable d'environnement path "
+"ou dans le répertoire bin. "
+
+#. Tag: para
+#: faq_raster.xml:64
+#, no-c-format
+msgid ""
+"You may also run into different errors if you don't have PostGIS installed "
+"in your database. Make sure to install PostGIS first in your database before "
+"trying to install the raster support."
+msgstr ""
+"Si PostGIS n'est pas installé, vous obtiendrez certainement un certain "
+"nombre d'erreurs. Assurez-vous d'installer au préalable PostGIS avant de "
+"procéder à l'installation du support raster."
+
+#. Tag: para
+#: faq_raster.xml:71
+#, no-c-format
+msgid "How do I load Raster data into PostGIS?"
+msgstr "Comment faire pour charger des données raster dans ma base PostGIS ?"
+
+#. Tag: para
+#: faq_raster.xml:75
+#, no-c-format
+msgid ""
+"The latest version of PostGIS comes packaged with a <varname>raster2pgsql</"
+"varname> raster loader executable capable of loading many kinds of rasters "
+"and also generating lower resolution overviews without any additional "
+"software. Please refer to <xref linkend=\"RT_Raster_Loader\"/> for more "
+"details. Pre-2.0 versions came with a <varname>raster2pgsql.py</varname> "
+"that required python with numpy and GDAL. This is no longer needed."
+msgstr ""
+"La dernière version de PostGIS contient directement l'exécutable "
+"<varname>raster2pgsql</varname> permettant de charger différents types de "
+"raster mais aussi de générer des vues intermédiaires de plus faibles "
+"résolutions et cela sans aucun logiciel supplémentaire. Veuillez-vous "
+"référer à <xref linkend=\"RT_Raster_Loader\"/> pour plus d'informations. "
+"Pour, les versions antérieures à la -2.0 un exécutable python "
+"python<varname>raster2pgsql.py</varname> est disponible mais celui-ci "
+"nécessite d'avoir python d'installé ainsi que les modules python numpy et "
+"GDAL."
+
+#. Tag: para
+#: faq_raster.xml:81
+#, no-c-format
+msgid "What kind of raster file formats can I load into my database?"
+msgstr "Quel format de données raster puis-je charger dans ma base ?"
+
+#. Tag: para
+#: faq_raster.xml:85
+#, no-c-format
+msgid ""
+"Any that your GDAL library supports. GDAL supported formats are documented "
+"<ulink url=\"http://www.gdal.org/formats_list.html\">GDAL File Formats</"
+"ulink>."
+msgstr ""
+"Tous les formats supportés par la bibliothèque GDAL. Ces formats sont "
+"décrits sur la page <ulink url=\"http://www.gdal.org/formats_list.html"
+"\">GDAL File Formats</ulink>"
+
+#. Tag: para
+#: faq_raster.xml:86
+#, no-c-format
+msgid ""
+"Your particular GDAL install may not support all formats. To verify the ones "
+"supported by your particular GDAL install, you can use"
+msgstr ""
+"Il se peut que votre installation de GDAL ne supporte pas tous les formats. "
+"Pour vérifier les formats supportés par votre installation, vous pouvez "
+"utiliser "
+
+#. Tag: programlisting
+#: faq_raster.xml:87
+#, no-c-format
+msgid "raster2pgsql -G"
+msgstr "raster2pgsql -G"
+
+#. Tag: para
+#: faq_raster.xml:93
+#, no-c-format
+msgid "Can I export my PostGIS raster data to other raster formats?"
+msgstr "Puis-je exporter mes donénes PostGIS raster vers d'autres formats ?"
+
+#. Tag: para
+#: faq_raster.xml:97
+#, no-c-format
+msgid "<para>Yes</para>"
+msgstr "<para>Oui</para>"
+
+#. Tag: para
+#: faq_raster.xml:98
+#, no-c-format
+msgid ""
+"GDAL 1.7+ has a PostGIS raster driver, but is only compiled in if you choose "
+"to compile with PostgreSQL support."
+msgstr ""
+"GDAL 1.7+ possède un driver PostGIS raster, mais il n'est compilé que si "
+"vous compilez également le support PostgreSQL "
+
+#. Tag: para
+#: faq_raster.xml:99
+#, no-c-format
+msgid ""
+"The driver currently doesn't support irregularly blocked rasters, although "
+"you can store irregularly blocked rasters in PostGIS raster data type."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:101
+#, no-c-format
+msgid ""
+"If you are compiling from source, you need to include in your configure "
+"<programlisting>--with-pg=path/to/pg_config</programlisting> to enable the "
+"driver. Refer to <ulink url=\"http://trac.osgeo.org/gdal/wiki/BuildHints"
+"\">GDAL Build Hints</ulink> for tips on building GDAL against in various OS "
+"platforms."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:106
+#, no-c-format
+msgid ""
+"If your version of GDAL is compiled with the PostGIS Raster driver you "
+"should see PostGIS Raster in list when you do"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:108
+#, no-c-format
+msgid "gdalinfo --formats"
+msgstr "gdalinfo --formats"
+
+#. Tag: para
+#: faq_raster.xml:110
+#, no-c-format
+msgid "To get a summary about your raster via GDAL use gdalinfo:"
+msgstr ""
+"Afin d'obtenir un résumé de votre raster avec GDAL, vous pouvez utiliser la "
+"commande gdalinfo:"
+
+#. Tag: programlisting
+#: faq_raster.xml:111
+#, no-c-format
+msgid ""
+"gdalinfo  \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' "
+"password='whatever' schema='someschema' table=sometable\""
+msgstr ""
+"gdalinfo \"PG:host=localhost port=5432 dbname='maBaseDeDonnees' "
+"user='postgres' password='monPassword' schema='monSchema' table=maTable\""
+
+#. Tag: para
+#: faq_raster.xml:114
+#, no-c-format
+msgid ""
+"To export data to other raster formats, use gdal_translate the below will "
+"export all data from a table to a PNG file at 10% size."
+msgstr ""
+"Pour exporter des données d'un format à un autre, utilisez la commande "
+"gdal_translate. L'exemple ci-dessous transforme toutes les données d'une "
+"table en une image au format PNG et dont la taille sera de 10% par rapport à "
+"l'originale.   "
+
+#. Tag: para
+#: faq_raster.xml:116
+#, no-c-format
+msgid ""
+"Depending on your pixel band types, some translations may not work if the "
+"export format does not support that Pixel type. For example floating point "
+"band types and 32 bit unsigned ints will not translate easily to JPG or some "
+"others."
+msgstr ""
+"En fonction du type de bande et le type de pixel du format d'export "
+"certaines transformations pourraient ne pas fonctionner . Par exemple, les "
+"band de type chiffre à virgule et les entiers 32 bits non signés seront "
+"difficilement transformables en JPG ou autres. "
+
+#. Tag: para
+#: faq_raster.xml:119
+#, no-c-format
+msgid "Here is an example simple translation"
+msgstr "Voici un exemple de transformation "
+
+#. Tag: programlisting
+#: faq_raster.xml:120
+#, fuzzy, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable\" C:\\somefile.png"
+msgstr ""
+"gdalinfo \"PG:host=localhost port=5432 dbname='maBaseDeDonnees' "
+"user='postgres' password='monPassword' schema='monSchema' table=maTable\""
+
+#. Tag: para
+#: faq_raster.xml:121
+#, no-c-format
+msgid ""
+"You can also use SQL where clauses in your export using the where=... in "
+"your driver connection string. Below are some using a where clause"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:123
+#, fuzzy, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='filename=\\'abcd.sid\\''\" \" C:\\somefile.png"
+msgstr ""
+"gdalinfo \"PG:host=localhost port=5432 dbname='maBaseDeDonnees' "
+"user='postgres' password='monPassword' schema='monSchema' table=maTable\""
+
+#. Tag: programlisting
+#: faq_raster.xml:124
+#, fuzzy, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='ST_Intersects(rast, "
+"ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" C:\\intersectregion.png"
+msgstr ""
+"gdalinfo \"PG:host=localhost port=5432 dbname='maBaseDeDonnees' "
+"user='postgres' password='monPassword' schema='monSchema' table=maTable\""
+
+#. Tag: para
+#: faq_raster.xml:125
+#, no-c-format
+msgid ""
+"To see more examples and syntax refer to <ulink url=\"http://trac.osgeo.org/"
+"gdal/wiki/frmts_wtkraster.html#a3.2-Readingrasterdatafromthedatabase"
+"\">Reading Raster Data of PostGIS Raster section</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:130
+#, no-c-format
+msgid ""
+"Are their binaries of GDAL available already compiled with PostGIS Raster "
+"suppport?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:132
+#, no-c-format
+msgid ""
+"Yes. Check out the page <ulink url=\"http://trac.osgeo.org/gdal/wiki/"
+"DownloadingGdalBinaries\">GDAL Binaries</ulink> page. Any compiled with "
+"PostgreSQL support should have PostGIS Raster in them."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:134
+#, no-c-format
+msgid ""
+"PostGIS Raster is undergoing many changes. If you want to get the latest "
+"nightly build for Windows -- then check out the Tamas Szekeres nightly "
+"builds built with Visual Studio which contain GDAL trunk, Python Bindings "
+"and MapServer executables and PostGIS Raster driver built-in. Just click the "
+"SDK bat and run your commands from there. <ulink url=\"http://vbkto.dyndns."
+"org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink>. Also available are VS "
+"project files."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:138
+#, no-c-format
+msgid ""
+"<ulink url=\"http://fwtools.maptools.org/\">FWTools latest stable version "
+"for Windows is compiled with Raster support</ulink>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:144
+#, no-c-format
+msgid "What tools can I use to view PostGIS raster data?"
+msgstr ""
+"Quels logiciels puis je utiliser pour visualiser les données raster de "
+"Postgis ?"
+
+#. Tag: para
+#: faq_raster.xml:148
+#, no-c-format
+msgid ""
+"You can use MapServer compiled with GDAL 1.7+ and PostGIS Raster driver "
+"support to view Raster data. QuantumGIS (QGIS) now supports viewing of "
+"PostGIS Raster if you have PostGIS raster driver installed."
+msgstr ""
+"Vous pouvez utiliser MapServer compilé avec la version 1.7+ de GDAL et le "
+"support du driver PostGIS raster. QuantumGIS (QGIS) supporte maintenant la "
+"visualisation de données raster provenant de PostGIS si vous avez le driver "
+"PostGIS raster installé."
+
+#. Tag: para
+#: faq_raster.xml:150
+#, no-c-format
+msgid ""
+"In theory any tool that renders data using GDAL can support PostGIS raster "
+"data or support it with fairly minimal effort. Again for Windows, Tamas' "
+"binaries <ulink url=\"http://vbkto.dyndns.org/sdk/\">http://vbkto.dyndns.org/"
+"sdk/</ulink> are a good choice if you don't want the hassle of having to "
+"setup to compile your own."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:157
+#, no-c-format
+msgid "How can I add a PostGIS raster layer to my MapServer map?"
+msgstr ""
+"Comment puis-je ajouter une couche raster provenant de PostGIS à mon fichier "
+"map de MapServer ?"
+
+#. Tag: para
+#: faq_raster.xml:161
+#, no-c-format
+msgid ""
+"First you need GDAL 1.7 or higher compiled with PostGIS raster support. GDAL "
+"1.8 or above is preferred since many issues have been fixed in 1.8 and more "
+"PostGIS raster issues fixed in trunk version."
+msgstr ""
+"Tout d'abord vous devrez disposer de la version 1.7 ou supérieure de GDAL "
+"compilée avec le support raster de PostGIS. Néanmoins, il est préférable "
+"d'utiliser la version 1.8 de GDAL car différentes limitations, à la fois de "
+"GDAL et de PostGIS raster, ont été corrigées."
+
+#. Tag: para
+#: faq_raster.xml:163
+#, no-c-format
+msgid ""
+"You can much like you can with any other raster. Refer to <ulink url="
+"\"http://mapserver.org/input/raster.html\">MapServer Raster processing "
+"options</ulink> for list of various processing functions you can use with "
+"MapServer raster layers."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:166
+#, no-c-format
+msgid ""
+"What makes PostGIS raster data particularly interesting, is that since each "
+"tile can have various standard database columns, you can segment it in your "
+"data source"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:168
+#, no-c-format
+msgid ""
+"Below is an example of how you would define a PostGIS raster layer in "
+"MapServer."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:169
+#, no-c-format
+msgid ""
+"The mode=2 is required for tiled rasters and was added in PostGIS 2.0 and "
+"GDAL 1.8 drivers. This does not exist in GDAL 1.7 drivers."
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:170
+#, no-c-format
+msgid ""
+"-- displaying raster with standard raster options\n"
+"LAYER\n"
+"        NAME coolwktraster\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        PROCESSING \"SCALE=AUTO\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"        CLASS\n"
+"                NAME \"boring\"\n"
+"                EXPRESSION ([pixel] < 20)\n"
+"                COLOR 250 250 250\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"mildly interesting\"\n"
+"                EXPRESSION ([pixel] > 20 AND [pixel] < 1000)\n"
+"                COLOR 255 0 0\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"very interesting\"\n"
+"                EXPRESSION ([pixel] >= 1000)\n"
+"                COLOR 0 255 0\n"
+"        END\n"
+"END"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:172
+#, no-c-format
+msgid ""
+"-- displaying raster with standard raster options and a where clause\n"
+"LAYER\n"
+"        NAME soil_survey2009\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' "
+"where='survey_year=2009' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:180
+#, no-c-format
+msgid "What functions can I currently use with my raster data?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:184
+#, no-c-format
+msgid ""
+"Refer to the list of <xref linkend=\"RT_reference\"/>. There are more, but "
+"this is still a work in progress."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:186
+#, no-c-format
+msgid ""
+"Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"PlanningAndFunding\">PostGIS Raster roadmap page</ulink> for details of what "
+"you can expect in the future."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:194
+#, no-c-format
+msgid ""
+"I am getting error ERROR: function st_intersects(raster, unknown) is not "
+"unique or st_union(geometry,text) is not unique. How do I fix?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:198
+#, no-c-format
+msgid ""
+"The function is not unique error happens if one of your arguments is a "
+"textual representation of a geometry instead of a geometry. In these cases, "
+"PostgreSQL marks the textual representation as an unknown type, which means "
+"it can fall into the st_intersects(raster, geometry) or st_intersects(raster,"
+"raster) thus resulting in a non-unique case since both functions can in "
+"theory support your request. To prevent this, you need to cast the geometry "
+"to a geometry."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:199
+#, no-c-format
+msgid "For example if your code looks like this:"
+msgstr "Par exemple, si votre code ressemble à ceci :"
+
+#. Tag: programlisting
+#: faq_raster.xml:200
+#, no-c-format
+msgid ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
+msgstr ""
+"SELECT rast\n"
+"FROM my_raster\n"
+"WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
+
+#. Tag: para
+#: faq_raster.xml:201
+#, no-c-format
+msgid ""
+"Cast the textual geometry representation to a geometry by changing your code "
+"to this:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:202
+#, no-c-format
+msgid ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:208
+#, no-c-format
+msgid ""
+"How is PostGIS Raster different from Oracle GeoRaster (SDO_GEORASTER) and "
+"SDO_RASTER types?"
+msgstr ""
+"En quoi PostGIS Raster se différencie d'Oracle GeoRaster (SDO_GEORASTER) et "
+"du type SDO_RASTER ?"
+
+#. Tag: para
+#: faq_raster.xml:212
+#, no-c-format
+msgid ""
+"For a more extensive discussion on this topic, check out Jorge Arévalo "
+"<ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-georaster-part-"
+"i/\">Oracle GeoRaster and PostGIS Raster: First impressions </ulink>"
+msgstr ""
+"Pour une discussion plus approfondie à ce sujet, vous pouvez consulter "
+"<ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-georaster-part-"
+"i/\">Oracle GeoRaster and PostGIS Raster: First impressions </ulink>"
+
+#. Tag: para
+#: faq_raster.xml:213
+#, no-c-format
+msgid ""
+"The major advantage of one-georeference-by-raster over one-georeference-by-"
+"layer is to allow:"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:214
+#, no-c-format
+msgid ""
+"* coverages to be not necessarily rectangular (which is often the case of "
+"raster coverage covering large extents. See the possible raster arrangements "
+"in the documentation)"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:215
+#, no-c-format
+msgid ""
+"* rasters to overlaps (which is necessary to implement lossless vector to "
+"raster conversion)"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:216
+#, no-c-format
+msgid ""
+"These arrangements are possible in Oracle as well, but they imply the "
+"storage of multiple SDO_GEORASTER objects linked to as many SDO_RASTER "
+"tables. A complex coverage can lead to hundreds of tables in the database. "
+"With PostGIS Raster you can store a similar raster arrangement into a unique "
+"table."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:221
+#, no-c-format
+msgid ""
+"It's a bit like if PostGIS would force you to store only full rectangular "
+"vector coverage without gaps or overlaps (a perfect rectangular topological "
+"layer). This is very practical in some applications but practice has shown "
+"that it is not realistic or desirable for most geographical coverages. "
+"Vector structures needs the flexibility to store discontinuous and non-"
+"rectangular coverages. We think it is a big advantage that raster structure "
+"should benefit as well."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:229
+#, no-c-format
+msgid ""
+"raster2pgsql load of large file fails with String of N bytes is too long for "
+"encoding conversion?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:233
+#, no-c-format
+msgid ""
+"raster2pgsql doesn't make any connections to your database when generating "
+"the file to load. If your database has set an explicit client encoding "
+"different from your database encoding, then when loading large raster files "
+"(above 30 MB in size), you may run into a <code>bytes is too long for "
+"encoding conversion</code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:235
+#, no-c-format
+msgid ""
+"This generally happens if for example you have your database in UTF8, but to "
+"support windows apps, you have the client encoding set to <code>WIN1252</"
+"code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:236
+#, no-c-format
+msgid ""
+"To work around this make sure the client encoding is the same as your "
+"database encoding during load. You can do this by explicitly setting the "
+"encoding in your load script. Example, if you are on windows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:237
+#, no-c-format
+msgid "set PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:238
+#, no-c-format
+msgid "If you are on Unix/Linux"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:239
+#, no-c-format
+msgid "export PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:240
+#, no-c-format
+msgid ""
+"Gory details of this issue are detailed in <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/2209\">http://trac.osgeo.org/postgis/ticket/2209</ulink>"
+msgstr ""
diff --git a/doc/po/fr/installation.xml.po b/doc/po/fr/installation.xml.po
new file mode 100644
index 0000000..9a8deed
--- /dev/null
+++ b/doc/po/fr/installation.xml.po
@@ -0,0 +1,3924 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Arnaud Vandecasteele <arnaud.sig at gmail.com>, 2013-2014
+# Jacolin <yjacolin at free.fr>, 2013-2014
+# Nicolas Ribot <nicolas.ribot at gmail.com>, 2013
+# Rodolphe Quiédeville <rodolphe at quiedeville.org>, 2013
+# Thomas Gratier <thomas_gratier at yahoo.fr>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-03-26 13:10+0000\n"
+"Last-Translator: Jacolin <yjacolin at free.fr>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: installation.xml:3
+#, fuzzy, no-c-format
+msgid "PostGIS Installation"
+msgstr "Installation"
+
+#. Tag: para
+#: installation.xml:5
+#, no-c-format
+msgid "This chapter details the steps required to install PostGIS."
+msgstr "Ce chapitre décrit les étapes nécessaires pour installer PostGIS"
+
+#. Tag: title
+#: installation.xml:10
+#, no-c-format
+msgid "Short Version"
+msgstr "Version courte"
+
+#. Tag: para
+#: installation.xml:11
+#, no-c-format
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:12
+#, fuzzy, no-c-format
+msgid ""
+"tar xvfz postgis-&last_release_version;.tar.gz\n"
+"cd postgis-&last_release_version;\n"
+"./configure\n"
+"make\n"
+"make install"
+msgstr ""
+"wget http://www.postgis.org/download/postgis-&last_release_version;.tar.gz\n"
+"tar -xvzf postgis-&last_release_version;.tar.gz"
+
+#. Tag: para
+#: installation.xml:13
+#, no-c-format
+msgid ""
+"Once postgis is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:14
+#, fuzzy, no-c-format
+msgid ""
+"The raster support is currently optional, but installed by default. For "
+"enabling using the PostgreSQL 9.1+ extensions model raster is required. "
+"Using the extension enable process is preferred and more user-friendly. To "
+"spatially enable your database:"
+msgstr ""
+"Le support des rasters est actuellement optionnel, mais installé par défaut. "
+"Pour l'installation, une version du modèle de gestion des extensions "
+"PostgreSQL supérieure à 9.1 est requise. Merci de consulter <xref linkend="
+"\"make_install_postgis_extensions\"/> si vous utilisez PostgreSQL 9.1+"
+
+#. Tag: programlisting
+#: installation.xml:15
+#, no-c-format
+msgid ""
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_topology;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_tiger_geocoder;\"\n"
+"-- if you built with sfcgal support --\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_sfcgal;\""
+msgstr ""
+
+#. Tag: para
+#: installation.xml:18
+#, no-c-format
+msgid ""
+"Please refer to <xref linkend=\"make_install_postgis_extensions\"/> for more "
+"details about querying installed/available extensions and upgrading "
+"extensions, or switching from a non-extension install to an extension "
+"install."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:20
+#, no-c-format
+msgid ""
+"For those running who decided for some reason not to compile with raster "
+"support, or just are old-fashioned, here are longer more painful "
+"instructions for you:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:21
+#, fuzzy, no-c-format
+msgid ""
+"All the .sql files once installed will be installed in share/contrib/postgis-"
+"&last_minor_version; folder of your PostgreSQL install"
+msgstr ""
+"Tous les fichiers .sql seront installés dans le répertoire share/contrib/"
+"postgis-&last_release_version; de votre installation PostgreSQL"
+
+#. Tag: programlisting
+#: installation.xml:24
+#, fuzzy, no-c-format
+msgid ""
+"createdb yourdatabase\n"
+"createlang plpgsql yourdatabase\n"
+"psql -d yourdatabase -f postgis.sql\n"
+"psql -d yourdatabase -f postgis_comments.sql\n"
+"psql -d yourdatabase -f spatial_ref_sys.sql\n"
+"psql -d yourdatabase -f rtpostgis.sql\n"
+"psql -d yourdatabase -f raster_comments.sql\n"
+"psql -d yourdatabase -f topology.sql\n"
+"psql -d yourdatabase -f topology_comments.sql\n"
+"--if you built with sfcgal support --\n"
+"psql -d yourdatabase -f sfcgal.sql\n"
+"psql -d yourdatabase -f sfcgal_comments.sql"
+msgstr ""
+"tar xvfz postgis-&last_release_version;.tar.gz\n"
+"cd postgis-&last_release_version;\n"
+"./configure --with-raster --with-topology --with-gui\n"
+"make\n"
+"make install\n"
+"createdb yourdatabase\n"
+"createlang plpgsql yourdatabase\n"
+"psql -d yourdatabase -f postgis.sql\n"
+"psql -d yourdatabase -f postgis_comments.sql\n"
+"psql -d yourdatabase -f spatial_ref_sys.sql\n"
+"psql -d yourdatabase -f rtpostgis.sql\n"
+"psql -d yourdatabase -f raster_comments.sql\n"
+"psql -d yourdatabase -f topology/topology.sql\n"
+"psql -d yourdatabase -f doc/topology_comments.sql"
+
+#. Tag: para
+#: installation.xml:26
+#, no-c-format
+msgid ""
+"The rest of this chapter goes into detail each of the above installation "
+"steps."
+msgstr ""
+"La suite de ce chapitre détaille chacune des étapes d'installation "
+"présentées ci-avant"
+
+#. Tag: title
+#: installation.xml:33
+#, fuzzy, no-c-format
+msgid "Install Requirements"
+msgstr "Pré requis"
+
+#. Tag: para
+#: installation.xml:35
+#, no-c-format
+msgid "PostGIS has the following requirements for building and usage:"
+msgstr ""
+"La compilation et la manipulation de PostGIS requièrent les éléments suivant:"
+
+#. Tag: emphasis
+#: installation.xml:40
+#, no-c-format
+msgid "Required"
+msgstr "Obligatoire"
+
+#. Tag: para
+#: installation.xml:45
+#, no-c-format
+msgid ""
+"PostgreSQL &min_postgres_version; or higher. A complete installation of "
+"PostgreSQL (including server headers) is required. PostgreSQL is available "
+"from <ulink url=\"http://www.postgresql.org\"> http://www.postgresql.org </"
+"ulink> ."
+msgstr ""
+"PostgreSQL &min_postgres_version; ou supérieure. Une installation complete "
+"de PostgreSQL (incluant les fichiers header du serveur) nécessaire. "
+"PostgreSQL est disponible depuis le site <ulink url=\"http://www.postgresql."
+"org\"> http://www.postgresql.org </ulink> ."
+
+#. Tag: para
+#: installation.xml:54
+#, no-c-format
+msgid ""
+"For a full PostgreSQL / PostGIS support matrix and PostGIS/GEOS support "
+"matrix refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiPostgreSQLPostGIS\">http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiPostgreSQLPostGIS</ulink>"
+msgstr ""
+"Pour la liste complète des exigences concernant PostgreSQL / PostGIS et "
+"PostGIS/GEOS, veuillez vous référer à <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/UsersWikiPostgreSQLPostGIS\">http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiPostgreSQLPostGIS</ulink>"
+
+#. Tag: para
+#: installation.xml:60
+#, no-c-format
+msgid ""
+"GNU C compiler (<filename>gcc</filename>). Some other ANSI C compilers can "
+"be used to compile PostGIS, but we find far fewer problems when compiling "
+"with <filename>gcc</filename>."
+msgstr ""
+"Un compilateur GNUC C (<filename>gcc</filename>). D'autres compilateurs ANSI "
+"C peuvent être utilisés, mais la compilation avec <filename>gcc</filename> "
+"est source de moins de problèmes"
+
+#. Tag: para
+#: installation.xml:68
+#, no-c-format
+msgid ""
+"GNU Make (<filename>gmake</filename> or <filename>make</filename>). For many "
+"systems, GNU <filename>make</filename> is the default version of make. Check "
+"the version by invoking <filename>make -v</filename>. Other versions of "
+"<filename>make</filename> may not process the PostGIS <filename>Makefile</"
+"filename> properly."
+msgstr ""
+"GNU Make (<filename>gmake</filename> ou <filename>make</filename>). Sur "
+"beaucoup de systemes, GNU <filename>make</filename> est la version par "
+"défaut de make. Vous pouvez vérifier la version de make avec la commande "
+"<filename>make -v</filename>. D'autres versions de <filename>make</filename> "
+"peuvent ne pas être compatibles avec le <filename>Makefile</filename> de "
+"PostGIS."
+
+#. Tag: para
+#: installation.xml:78
+#, no-c-format
+msgid ""
+"Proj4 reprojection library, version 4.6.0 or greater. The Proj4 library is "
+"used to provide coordinate reprojection support within PostGIS. Proj4 is "
+"available for download from <ulink url=\"http://trac.osgeo.org/proj/\"> "
+"http://trac.osgeo.org/proj/ </ulink> ."
+msgstr ""
+"La bibliothèque de reprojection Proj4, version 4.6.0 ou supérieure. La "
+"bibliothèque Proj4 est utilisée pour le support des projections dans "
+"PostGIS. Pro4 est disponible depuis le site <ulink url=\"http://trac.osgeo."
+"org/proj/\"> http://trac.osgeo.org/proj/ </ulink>"
+
+#. Tag: para
+#: installation.xml:90
+#, no-c-format
+msgid ""
+"GEOS geometry library, version 3.3 or greater, but GEOS 3.4+ is recommended "
+"to take full advantage of all the new functions and features. Without GEOS "
+"3.4, you will be missing some major enhancements such as ST_Triangles and "
+"long-running function interruption, and improvements to geometry validation "
+"and making geometries valid such as ST_ValidDetail and ST_MakeValid. GEOS "
+"3.3.2+ is also required for topology support. GEOS is available for download "
+"from <ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/ "
+"</ulink> and 3.4+ is backward-compatible with older versions so fairly safe "
+"to upgrade."
+msgstr ""
+"La bibliothèque GEOS, version 3.3 ou supérieure. Cependant, une version de "
+"GEOS supérieure à 3.4 est recommandée pour tirer partie des nouvelles "
+"fonctionnalités. Sans GEOS 3.4, les fonctionnalités telles que ST_Triangles, "
+"l'interruption des requêtes longues, les fonctions de validation de "
+"géométrie comme ST_ValidDetail et ST_MakeValid ne seront pas disponibles. "
+"GEOS 3.3.2 ou supérieure est également nécessaire pour le support de la "
+"topologie. GEOS est disponible depuis le site  <ulink url=\"http://trac."
+"osgeo.org/geos/\">http://trac.osgeo.org/geos/ </ulink> et les versions 3.4 "
+"et supérieures étant rétro-compatibles avec les anciennes versions, la mise "
+"à jour peut se faire sans danger."
+
+#. Tag: para
+#: installation.xml:100
+#, no-c-format
+msgid ""
+"LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports "
+"functions (ST_GeomFromGML and ST_GeomFromKML). LibXML2 is available for "
+"download from <ulink url=\"http://xmlsoft.org/downloads.html\">http://"
+"xmlsoft.org/downloads.html</ulink>."
+msgstr ""
+"LibXML2, version 2.5.x ou supérieure. LibXML2 est utilisée dans certaines "
+"fonctions d'import (ST_GeomFromGML and ST_GeomFromKML). LibXML2 est "
+"disponible depuis <ulink url=\"http://xmlsoft.org/downloads.html\">http://"
+"xmlsoft.org/downloads.html</ulink>."
+
+#. Tag: para
+#: installation.xml:107
+#, fuzzy, no-c-format
+msgid ""
+"JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON "
+"via the function ST_GeomFromGeoJson. JSON-C is available for download from "
+"<ulink url=\"https://github.com/json-c/json-c/releases\">https://github.com/"
+"json-c/json-c/releases/</ulink>."
+msgstr ""
+"JSON-C, version 0.9 ou supérieure. JSON-C est utilisé pour l'import GeoJSON "
+"avec la fonction ST_GeomFromGeoJson. JSON-C est disponible depuis <ulink url="
+"\"http://oss.metaparadigm.com/json-c/\">http://oss.metaparadigm.com/json-c/</"
+"ulink>."
+
+#. Tag: para
+#: installation.xml:115
+#, fuzzy, no-c-format
+msgid ""
+"GDAL, version 1.8 or higher (1.9 or higher is strongly recommended since "
+"some things will not work well or behavior differently with lower versions). "
+"This is required for raster support and to be able to install with "
+"<code>CREATE EXTENSION postgis</code> so highly recommended for those "
+"running 9.1+. <ulink url=\"http://trac.osgeo.org/gdal/wiki/DownloadSource"
+"\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
+msgstr ""
+"GDAL, version 1.8 ou supérieure (la version 1.9 est fortement recommandée "
+"car les versions antérieures peuvent ne pas fonctionner). GDAL est requis "
+"pour le support des rasters et est disponible depuis <ulink url=\"http://"
+"trac.osgeo.org/gdal/wiki/DownloadSource\">http://trac.osgeo.org/gdal/wiki/"
+"DownloadSource</ulink>. "
+
+#. Tag: emphasis
+#: installation.xml:123
+#, no-c-format
+msgid "Optional"
+msgstr "Optionnel"
+
+#. Tag: para
+#: installation.xml:128
+#, no-c-format
+msgid ""
+"GDAL (pseudo optional) only if you don't want raster and don't care about "
+"installing with <code>CREATE EXTENSION postgis</code> can you leave it out. "
+"Keep in mind other extensions may have a requires postgis extension which "
+"will prevent you from installing them unless you install postgis as an "
+"extension. So it is highly recommended you compile with GDAL support."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:134
+#, no-c-format
+msgid ""
+"GTK (requires GTK+2.0, 2.8+) to compile the shp2pgsql-gui shape file loader. "
+"<ulink url=\"http://www.gtk.org/\"> http://www.gtk.org/ </ulink> ."
+msgstr ""
+"GTK (GTK+2.0, 2.8+) pour compiler le chargeur de shape file shp2pgsql-gui. "
+"<ulink url=\"http://www.gtk.org/\"> http://www.gtk.org/ </ulink> ."
+
+#. Tag: para
+#: installation.xml:144
+#, no-c-format
+msgid ""
+"SFCGAL, version 1.0 (or higher) could be used to provide additional 2D and "
+"3D advanced analysis functions to PostGIS cf <xref linkend=\"reference_sfcgal"
+"\"/>. And also allow to use SFCGAL rather than GEOS for some 2D functions "
+"provided by both backends (like ST_Intersection or ST_Area, for instance). A "
+"PostgreSQL configuration variable <code>postgis.backend</code> allow end "
+"user to control which backend he want to use if SFCGAL is installed (GEOS by "
+"default). Nota: SFCGAL 1.0 require at least CGAL 4.1 and Boost 1.46 (cf: "
+"<ulink url=\"http://oslandia.github.io/SFCGAL/installation.html\">http://"
+"oslandia.github.io/SFCGAL/installation.html</ulink>) <ulink url=\"https://"
+"github.com/Oslandia/SFCGAL\">https://github.com/Oslandia/SFCGAL</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:152
+#, no-c-format
+msgid ""
+"In order to build the <xref linkend=\"Address_Standardizer\"/> you will also "
+"need PCRE <ulink url=\"http://www.pcre.org\">http://www.pcre.org</ulink> "
+"(which generally is already installed on nix systems). <code>Regex::"
+"Assemble</code> perl CPAN package is only needed if you want to rebuild the "
+"data encoded in <filename>parseaddress-stcities.h</filename>. <xref linkend="
+"\"Address_Standardizer\"/> will automatically be built if it detects a PCRE "
+"library, or you pass in a valid <varname>--with-pcre-dir=/path/to/pcre</"
+"varname> during configure."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:159
+#, no-c-format
+msgid ""
+"CUnit (<filename>CUnit</filename>). This is needed for regression testing. "
+"<ulink url=\"http://cunit.sourceforge.net/\">http://cunit.sourceforge.net/</"
+"ulink>"
+msgstr ""
+"CUnit (<filename>CUnit</filename>). Nécessaire pour les tests de régression. "
+"<ulink url=\"http://cunit.sourceforge.net/\">http://cunit.sourceforge.net/</"
+"ulink>"
+
+#. Tag: para
+#: installation.xml:165
+#, no-c-format
+msgid ""
+"Apache Ant (<filename>ant</filename>) is required for building any of the "
+"drivers under the <filename>java</filename> directory. Ant is available from "
+"<ulink url=\"http://ant.apache.org\"> http://ant.apache.org </ulink> ."
+msgstr ""
+"Apache Ant (<filename>ant</filename>) est nécessaire pour compiler les "
+"pilotes présents dans le répertoire <filename>java</filename>. Ant est "
+"disponible depuis <ulink url=\"http://ant.apache.org\"> http://ant.apache."
+"org </ulink> ."
+
+#. Tag: para
+#: installation.xml:177
+#, no-c-format
+msgid ""
+"DocBook (<filename>xsltproc</filename>) is required for building the "
+"documentation. Docbook is available from <ulink url=\"http://www.docbook.org/"
+"\"> http://www.docbook.org/ </ulink> ."
+msgstr ""
+"DocBook (<filename>xsltproc</filename>) est nécessaire pour générer la "
+"documentation. Docbook est disponible depuis le site <ulink url=\"http://www."
+"docbook.org/\"> http://www.docbook.org/ </ulink> ."
+
+#. Tag: para
+#: installation.xml:188
+#, no-c-format
+msgid ""
+"DBLatex (<filename>dblatex</filename>) is required for building the "
+"documentation in PDF format. DBLatex is available from <ulink url=\"http://"
+"dblatex.sourceforge.net/\"> http://dblatex.sourceforge.net/ </ulink> ."
+msgstr ""
+"DBLatex (<filename>dblatex</filename>) est nécessaire pour générer la "
+"documentation au format PDF. DBLatex est disponible depuis <ulink url="
+"\"http://dblatex.sourceforge.net/\"> http://dblatex.sourceforge.net/ </"
+"ulink> ."
+
+#. Tag: para
+#: installation.xml:199
+#, no-c-format
+msgid ""
+"ImageMagick (<filename>convert</filename>) is required to generate the "
+"images used in the documentation. ImageMagick is available from <ulink url="
+"\"http://www.imagemagick.org/\"> http://www.imagemagick.org/ </ulink> ."
+msgstr ""
+"ImageMagick (<filename>convert</filename>) est nécessaire pour générer les "
+"images de la documentation. ImageMagick is available from <ulink url="
+"\"http://www.imagemagick.org/\"> http://www.imagemagick.org/ </ulink> ."
+
+#. Tag: title
+#: installation.xml:212
+#, no-c-format
+msgid "Getting the Source"
+msgstr "Obtenir les Sources"
+
+#. Tag: para
+#: installation.xml:214
+#, fuzzy, no-c-format
+msgid ""
+"Retrieve the PostGIS source archive from the downloads website <ulink url="
+"\"&postgis_download_url;\"> &postgis_download_url; </ulink>"
+msgstr ""
+"Les sources de PostGIS sont disponible depuis  <ulink url=\"http://www."
+"postgis.org/download/postgis-&last_release_version;.tar.gz\"> http://www."
+"postgis.org/download/postgis-&last_release_version;.tar.gz </ulink>"
+
+#. Tag: programlisting
+#: installation.xml:221
+#, fuzzy, no-c-format
+msgid ""
+"wget &postgis_download_url;\n"
+"tar -xvzf postgis-&last_release_version;.tar.gz"
+msgstr "tar xvfz postgis-&last_release_version;.tar.gz"
+
+#. Tag: para
+#: installation.xml:223
+#, no-c-format
+msgid ""
+"This will create a directory called <varname>postgis-&last_release_version;</"
+"varname> in the current working directory."
+msgstr ""
+"Un répertoire appelé <varname>postgis-&last_release_version;</varname> sera "
+"créé dans le répertoire courant"
+
+#. Tag: para
+#: installation.xml:229
+#, no-c-format
+msgid ""
+"Alternatively, checkout the source from the <ulink url=\"http://subversion."
+"apache.org/\"> svn </ulink> repository <ulink url=\"http://svn.osgeo.org/"
+"postgis/trunk/\"> http://svn.osgeo.org/postgis/trunk/ </ulink> ."
+msgstr ""
+"Les sources peuvent également être obtenues depuis le dépôt <ulink url="
+"\"http://subversion.apache.org/\"> svn </ulink> <ulink url=\"http://svn."
+"osgeo.org/postgis/trunk/\"> http://svn.osgeo.org/postgis/trunk/ </ulink> ."
+
+#. Tag: programlisting
+#: installation.xml:241
+#, no-c-format
+msgid ""
+"svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-"
+"&last_release_version;"
+msgstr ""
+"svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-"
+"&last_release_version;"
+
+#. Tag: para
+#: installation.xml:243
+#, no-c-format
+msgid ""
+"Change into the newly created <varname>postgis-&last_release_version;</"
+"varname> directory to continue the installation."
+msgstr ""
+"Se placer dans le nouveau répertoire créé <varname>postgis-"
+"&last_release_version;</varname> pour poursuivre l'installation"
+
+#. Tag: title
+#: installation.xml:251
+#, no-c-format
+msgid "Compiling and Install from Source: Detailed"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:254
+#, no-c-format
+msgid ""
+"Many OS systems now include pre-built packages for PostgreSQL/PostGIS. In "
+"many cases compilation is only necessary if you want the most bleeding edge "
+"versions or you are a package maintainer."
+msgstr ""
+"La plupart des systèmes d'exploitation dispose de paquets pré-compilés de "
+"PostgreSQL/PostGIS. La compilation est réellement nécessaire uniquement pour "
+"disposer des toutes dernières fonctionnalités ou pour les responsables de "
+"paquets PostGIS "
+
+#. Tag: para
+#: installation.xml:259
+#, no-c-format
+msgid ""
+"This section includes general compilation instructions, if you are compiling "
+"for Windows etc or another OS, you may find additional more detailed help at "
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiInstall\">PostGIS "
+"User contributed compile guides</ulink> and <ulink url=\"http://trac.osgeo."
+"org/postgis/wiki/DevWikiMain\">PostGIS Dev Wiki</ulink>."
+msgstr ""
+"Cette section présente les instructions générales pour compiler PostGIS. Si "
+"la compilation s'effectue sous Windows ou un autre système d'exploitation, "
+"des informations complémentaires sont disponibles depuis <ulink url=\"http://"
+"trac.osgeo.org/postgis/wiki/UsersWikiInstall\">PostGIS User contributed "
+"compile guides</ulink> and <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"DevWikiMain\">PostGIS Dev Wiki</ulink>."
+
+#. Tag: para
+#: installation.xml:261
+#, no-c-format
+msgid ""
+"Pre-Built Packages for various OS are listed in <ulink url=\"http://trac."
+"osgeo.org/postgis/wiki/UsersWikiPackages\">PostGIS Pre-built Packages</ulink>"
+msgstr ""
+"Les paquets pré compilés pour différents systèmes d'exploitation sont listés "
+"dans <ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiPackages"
+"\">PostGIS Pre-built Packages</ulink>"
+
+#. Tag: para
+#: installation.xml:262
+#, no-c-format
+msgid ""
+"If you are a windows user, you can get stable builds via Stackbuilder or "
+"<ulink url=\"http://www.postgis.org/download/windows/\">PostGIS Windows "
+"download site</ulink> We also have <ulink url=\"http://www.postgis.org/"
+"download/windows/experimental.php\">very bleeding-edge windows experimental "
+"builds</ulink> that are built usually once or twice a week or whenever "
+"anything exciting happens. You can use these to experiment with the in "
+"progress releases of PostGIS"
+msgstr ""
+"Pour les utilisateurs Windows, des versions stables sont disponibles par "
+"Stackbuilder ou <ulink url=\"http://www.postgis.org/download/windows/"
+"\">PostGIS Windows download site</ulink>. Des compilations expérimentales "
+"incluant les dernières fonctionnalités sont disponibles depuis <ulink url="
+"\"http://www.postgis.org/download/windows/experimental.php\">very bleeding-"
+"edge windows experimental builds</ulink>. Ces compilations sont "
+"généralements mises à jour toutes les unes ou deux semaines, ou chaque fois "
+"qu'une nouvelle fonctionnalité intéressante est ajoutée. Vous pouvez les "
+"utiliser pour suivre l'avancée des versions de PostGIS"
+
+#. Tag: para
+#: installation.xml:267
+#, no-c-format
+msgid ""
+"The PostGIS module is an extension to the PostgreSQL backend server. As "
+"such, PostGIS &last_release_version; <emphasis>requires</emphasis> full "
+"PostgreSQL server headers access in order to compile. It can be built "
+"against PostgreSQL versions &min_postgres_version; or higher. Earlier "
+"versions of PostgreSQL are <emphasis>not</emphasis> supported."
+msgstr ""
+"Le module PostGIS est une extension du serveur PostgreSQL. A ce titre, "
+"PostGIS &last_release_version; <emphasis>nécessite</emphasis> l'accès "
+"complet aux en-têtes du serveur PostgreSQL afin de pouvoir compiler. Il peut "
+"être compilé à partir de la version versions &min_postgres_version; de "
+"PostgreSQL ou supérieure. Les versions plus anciennes de PostgreSQL "
+"<emphasis>ne</emphasis> sont pas supportées."
+
+#. Tag: para
+#: installation.xml:275
+#, no-c-format
+msgid ""
+"Refer to the PostgreSQL installation guides if you haven't already installed "
+"PostgreSQL. <ulink url=\"http://www.postgresql.org\"> http://www.postgresql."
+"org </ulink> ."
+msgstr ""
+"Référez-vous aux guides d'installation de PostgreSQL si vous n'avez pas déjà "
+"installé PostgreSQL. <ulink url=\"http://www.postgresql.org\"> http://www."
+"postgresql.org </ulink> ."
+
+#. Tag: para
+#: installation.xml:285
+#, no-c-format
+msgid ""
+"For GEOS functionality, when you install PostgresSQL you may need to "
+"explicitly link PostgreSQL against the standard C++ library:"
+msgstr ""
+"Pour les fonctionnalités de de GEOS, quand vous installez PostgreSQL, vous "
+"aurez peut-être besoin de lier explicitement PostgreSQL avec la bibliothèque "
+"standard C++: "
+
+#. Tag: programlisting
+#: installation.xml:290
+#, no-c-format
+msgid "LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE]"
+msgstr "LDFLAGS=-lstdc++ ./configure [Vos options à la suite]"
+
+#. Tag: para
+#: installation.xml:292
+#, no-c-format
+msgid ""
+"This is a workaround for bogus C++ exceptions interaction with older "
+"development tools. If you experience weird problems (backend unexpectedly "
+"closed or similar things) try this trick. This will require recompiling your "
+"PostgreSQL from scratch, of course."
+msgstr ""
+"Ceci est une solution de contournement d'exceptions C++ d'interactions "
+"bugués dans des outils de développements plus ancien. Si vous tombez sur ce "
+"genre de problèmes (backend soudainement fermé ou des choses similaires) "
+"essayez cette astuce. Cela nécessite de recompiler votre PostgreSQL du "
+"début, bien sur."
+
+#. Tag: para
+#: installation.xml:300
+#, no-c-format
+msgid ""
+"The following steps outline the configuration and compilation of the PostGIS "
+"source. They are written for Linux users and will not work on Windows or Mac."
+msgstr ""
+"Les étapes suivantes résument la configuration et la compilation des sources "
+"PostGIS. Elles ont été rédigées pour les utilisateurs sous Linux et ne "
+"fonctionneront pas pour Windows et Mac."
+
+#. Tag: title
+#: installation.xml:307
+#, no-c-format
+msgid "Configuration"
+msgstr "Configuration"
+
+#. Tag: para
+#: installation.xml:309
+#, no-c-format
+msgid ""
+"As with most linux installations, the first step is to generate the Makefile "
+"that will be used to build the source code. This is done by running the "
+"shell script"
+msgstr ""
+"Comme pour la plupart des installations linux, la première étape est de "
+"générer le Makefile qui sera utilisé pour compiler le code source. Ceci est "
+"réalisée en lançant le script shell"
+
+#. Tag: para
+#: installation.xml:319
+#, no-c-format
+msgid ""
+"With no additional parameters, this command will attempt to automatically "
+"locate the required components and libraries needed to build the PostGIS "
+"source code on your system. Although this is the most common usage of "
+"<command>./configure</command>, the script accepts several parameters for "
+"those who have the required libraries and programs in non-standard locations."
+msgstr ""
+"Sans paramètre supplémentaire, cette commande tentera de localiser "
+"automatiquement les composants requis et les bibliothèques nécessaires à la "
+"compilation de PostGIS. Bien que cela soit l'utilisation la plus commune de "
+"la commande <command>./configure</command>, vous pouvez également ajouter "
+"différents paramètres à ce script. Par exemple, vous pouvez définir "
+"l'emplacement de bibliothèques ou de programmes si ceux-ci ne sont pas "
+"localisés à un emplacement standard. "
+
+#. Tag: para
+#: installation.xml:328
+#, no-c-format
+msgid ""
+"The following list shows only the most commonly used parameters. For a "
+"complete list, use the <command>--help</command> or <command>--help=short</"
+"command> parameters."
+msgstr ""
+"La liste suivante présente les options les plus courantes. Pour consulter la "
+"liste complète utilisez l'option <command>--help</command> ou <command>--"
+"help=short</command>. "
+
+#. Tag: para
+#: installation.xml:338
+#, no-c-format
+msgid ""
+"This is the location the PostGIS libraries and SQL scripts will be installed "
+"to. By default, this location is the same as the detected PostgreSQL "
+"installation."
+msgstr ""
+"Cela correspond à l'emplacement où les bibliothèques et les scripts SQL de "
+"PostGIS seront installés. Par défaut, cet emplacement est le même que celui "
+"de l'installation de PostgreSQL."
+
+#. Tag: para
+#: installation.xml:345
+#, no-c-format
+msgid ""
+"This parameter is currently broken, as the package will only install into "
+"the PostgreSQL installation directory. Visit <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/635\"> http://trac.osgeo.org/postgis/ticket/635 </ulink> "
+"to track this bug."
+msgstr ""
+"Ce paramètre est actuellement défectueux: le paquet s'installe uniquement "
+"dans le répertoire d'installation de PostgreSQL. Le suivu de ce bug est "
+"disponible depuis  <ulink url=\"http://trac.osgeo.org/postgis/ticket/635\"> "
+"http://trac.osgeo.org/postgis/ticket/635 </ulink>"
+
+#. Tag: para
+#: installation.xml:360
+#, no-c-format
+msgid ""
+"PostgreSQL provides a utility called <command>pg_config</command> to enable "
+"extensions like PostGIS to locate the PostgreSQL installation directory. Use "
+"this parameter (<command>--with-pgconfig=/path/to/pg_config</command>) to "
+"manually specify a particular PostgreSQL installation that PostGIS will "
+"build against."
+msgstr ""
+"PostgreSQL fournit l'utilitaire <command>pg_config</command> permettant aux "
+"extensions comme PostGIS de localiser le répertoire d'installation de "
+"PostgreSQL. Utiliser ce paramètre (<command>--with-pgconfig=/path/to/"
+"pg_config</command>) pour spécifier une installation particulière de "
+"PostgreSQL pour laquelle PostGIS doit être compilée."
+
+#. Tag: para
+#: installation.xml:374
+#, no-c-format
+msgid ""
+"GDAL, a required library, provides functionality needed for raster support "
+"<command>gdal-config</command> to enable software installations to locate "
+"the GDAL installation directory. Use this parameter (<command>--with-"
+"gdalconfig=/path/to/gdal-config</command>) to manually specify a particular "
+"GDAL installation that PostGIS will build against."
+msgstr ""
+"GDAL, une des bibliothèques requises pour le support des rasters. "
+"<command>gdal-config</command> pour permettre au logiciel de localiser le "
+"répertoire d'installation de GDAL. Utiliser ce paramètre (<command>--with-"
+"gdalconfig=/path/to/gdal-config</command>) pour spécifier un répertoire "
+"d'installation particulier de GDAL qui sera utilisé pour compiler PostGIS."
+
+#. Tag: para
+#: installation.xml:388
+#, no-c-format
+msgid ""
+"GEOS, a required geometry library, provides a utility called <command>geos-"
+"config</command> to enable software installations to locate the GEOS "
+"installation directory. Use this parameter (<command>--with-geosconfig=/path/"
+"to/geos-config</command>) to manually specify a particular GEOS installation "
+"that PostGIS will build against."
+msgstr ""
+"GEOS, une des bibliothèques requises, fournit un utilitaire appelé "
+"<command>geos-config</command> permettant aux logiciels de localiser le "
+"répertoire d'installation de GEOS. Utiliser ce paramètre (<command>--with-"
+"geosconfig=/path/to/geos-config</command>) pour spécifier le repertoire de "
+"GEOS qui sera utilisé pour la compilation de PostGIS."
+
+#. Tag: para
+#: installation.xml:402
+#, no-c-format
+msgid ""
+"LibXML is the library required for doing GeomFromKML/GML processes. It "
+"normally is found if you have libxml installed, but if not or you want a "
+"specific version used, you'll need to point PostGIS at a specific "
+"<filename>xml2-config</filename> confi file to enable software installations "
+"to locate the LibXML installation directory. Use this parameter (<command>>--"
+"with-xml2config=/path/to/xml2-config</command>) to manually specify a "
+"particular LibXML installation that PostGIS will build against."
+msgstr ""
+"LibXML est la bibliothèque requise pour les traitements GML/KML. Elle est "
+"normalement auto détectée en cas d'installation normale. Utiliser ce "
+"paramètre (<command>>--with-xml2config=/path/to/xml2-config</command>) pour "
+"spécifier le repertoire de LibXML qui sera utilisé pour la compilation de "
+"PostGIS."
+
+#. Tag: para
+#: installation.xml:420
+#, no-c-format
+msgid ""
+"Proj4 is a reprojection library required by PostGIS. Use this parameter "
+"(<command>--with-projdir=/path/to/projdir</command>) to manually specify a "
+"particular Proj4 installation directory that PostGIS will build against."
+msgstr ""
+"Proj4 est la bibliothèque de reprojection nécessaire à PostGIS. Utiliser ce "
+"paramètre (<command>--with-projdir=/path/to/projdir</command>) pour "
+"spécifier le repertoire de LibXML qui sera utilisé pour la compilation de "
+"PostGIS."
+
+#. Tag: para
+#: installation.xml:432
+#, no-c-format
+msgid "Directory where iconv is installed."
+msgstr "Répertoire d'installation d'iconv"
+
+#. Tag: para
+#: installation.xml:441
+#, no-c-format
+msgid ""
+"<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink> is an MIT-"
+"licensed JSON library required by PostGIS ST_GeomFromJSON support. Use this "
+"parameter (<command>--with-jsondir=/path/to/jsondir</command>) to manually "
+"specify a particular JSON-C installation directory that PostGIS will build "
+"against."
+msgstr ""
+"<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink> est une "
+"bibliothèque sous licence MIT utilisée par PostGIS pour les traitements JSON "
+"(ST_GeomFromJSON par exemple). Utiliser ce paramètre (<command>--with-"
+"jsondir=/path/to/jsondir</command>) pour spécifier le répertoire de JSON-C "
+"qui sera utilisé pour la compilation de PostGIS."
+
+#. Tag: para
+#: installation.xml:453
+#, fuzzy, no-c-format
+msgid ""
+"<ulink url=\"http://www.pcre.org/\">PCRE</ulink> is an BSD-licensed Perl "
+"Compatible Regular Expression library required by address_standardizer "
+"extension. Use this parameter (<command>--with-pcredir=/path/to/pcredir</"
+"command>) to manually specify a particular PCRE installation directory that "
+"PostGIS will build against."
+msgstr ""
+"<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink> est une "
+"bibliothèque sous licence MIT utilisée par PostGIS pour les traitements JSON "
+"(ST_GeomFromJSON par exemple). Utiliser ce paramètre (<command>--with-"
+"jsondir=/path/to/jsondir</command>) pour spécifier le répertoire de JSON-C "
+"qui sera utilisé pour la compilation de PostGIS."
+
+#. Tag: para
+#: installation.xml:465
+#, no-c-format
+msgid ""
+"Compile the data import GUI (requires GTK+2.0). This will create shp2pgsql-"
+"gui graphical interface to shp2pgsql."
+msgstr ""
+"Compile l'interface graphique d'import de données (nécessite GTK+2.0). Ceci "
+"créé l'interface graphique shp2pgsql-gui à shp2pgsql."
+
+#. Tag: para
+#: installation.xml:474
+#, no-c-format
+msgid ""
+"Compile with raster support. This will build rtpostgis-"
+"&last_release_version; library and rtpostgis.sql file. This may not be "
+"required in final release as plan is to build in raster support by default."
+msgstr ""
+"Compilation avec support des raster. Produit la bibliothèque rtpostgis-"
+"&last_release_version; et le fichier rtpostgis.sql. Les versions futures "
+"doivent à terme inclure le support des rasters par défaut."
+
+#. Tag: para
+#: installation.xml:483
+#, no-c-format
+msgid ""
+"Compile with topology support. This will build the topology.sql file. There "
+"is no corresponding library as all logic needed for topology is in postgis-"
+"&last_release_version; library."
+msgstr ""
+"Compilation avec support de la topologie. Produit le fichier topology.sql. "
+"Il n'y a pas de bibliothèque correspondante: toute la logique nécessaire à "
+"la topologie est incluse dans la bibliothèque postgis-&last_release_version;"
+
+#. Tag: para
+#: installation.xml:492
+#, no-c-format
+msgid ""
+"By default PostGIS will try to detect gettext support and compile with it, "
+"however if you run into incompatibility issues that cause breakage of "
+"loader, you can disable it entirely with this command. Refer to ticket "
+"<ulink url=\"http://trac.osgeo.org/postgis/ticket/748\">http://trac.osgeo."
+"org/postgis/ticket/748</ulink> for an example issue solved by configuring "
+"with this. NOTE: that you aren't missing much by turning this off. This is "
+"used for international help/label support for the GUI loader which is not "
+"yet documented and still experimental."
+msgstr ""
+"Par défaut PostGIS tentera de détecter la gestion de gettext et de reposer "
+"dessus pour la compilation, cependant si vous tombez sur des problèmes "
+"d'incompatibilités qui cause la cassure du chargeur, vous pouvez le "
+"désactiver entièrement avec cette commande. Référez vous au ticket <ulink "
+"url=\"http://trac.osgeo.org/postgis/ticket/748\">http://trac.osgeo.org/"
+"postgis/ticket/748</ulink> pour un exemple de problème résolu par cette "
+"configuration. NOTE : que vous perdez beaucoup de chose en le désactivant. "
+"Cela est utilisé pour la gestion de l'aide et des labels internationaux dans "
+"le chargeur graphique qui n'est pas documenté et encore expérimental."
+
+#. Tag: para
+#: installation.xml:503
+#, no-c-format
+msgid ""
+"By default PostGIS will not install with sfcgal support without this switch. "
+"<varname>PATH</varname> is an optional argument that allows to specify an "
+"alternate PATH to sfcgal-config."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:511
+#, no-c-format
+msgid ""
+"If you obtained PostGIS from the SVN <ulink url=\"http://svn.osgeo.org/"
+"postgis/trunk/\"> repository </ulink> , the first step is really to run the "
+"script"
+msgstr ""
+"Si vous avez téléchargé PostGIS depuis le <ulink url=\"http://svn.osgeo.org/"
+"postgis/trunk/\"> dépôt SVN </ulink>, la première étape est d'exécuter le "
+"script."
+
+#. Tag: para
+#: installation.xml:523
+#, no-c-format
+msgid ""
+"This script will generate the <command>configure</command> script that in "
+"turn is used to customize the installation of PostGIS."
+msgstr ""
+"Ce script générera le script <command>configure</command> qui est utilisé "
+"pour personnaliser votre installation de PostGIS."
+
+#. Tag: para
+#: installation.xml:528
+#, no-c-format
+msgid ""
+"If you instead obtained PostGIS as a tarball, running <command>./autogen.sh</"
+"command> is not necessary as <command>configure</command> has already been "
+"generated."
+msgstr ""
+"Si vous avez obtenu PostGIS comme archive, lancer la commande <command>./"
+"autogen.sh</command> n'est pas nécessaire puisque <command>configure</"
+"command> a déjà été généré."
+
+#. Tag: title
+#: installation.xml:537
+#, no-c-format
+msgid "Building"
+msgstr "Compiler"
+
+#. Tag: para
+#: installation.xml:539
+#, no-c-format
+msgid ""
+"Once the Makefile has been generated, building PostGIS is as simple as "
+"running"
+msgstr ""
+"Une fois le Makefile généré, compiler PostGIS est aussi simple que lancer"
+
+#. Tag: para
+#: installation.xml:548
+#, no-c-format
+msgid ""
+"The last line of the output should be \"<code>PostGIS was built "
+"successfully. Ready to install.</code>\""
+msgstr ""
+"La dernière ligne de la sortie doit être \"<code>PostGIS was built "
+"successfully. Ready to install.</code>\""
+
+#. Tag: para
+#: installation.xml:553
+#, no-c-format
+msgid ""
+"As of PostGIS v1.4.0, all the functions have comments generated from the "
+"documentation. If you wish to install these comments into your spatial "
+"databases later, run the command which requires docbook. The "
+"postgis_comments.sql and other package comments files raster_comments.sql, "
+"topology_comments.sql are also packaged in the tar.gz distribution in the "
+"doc folder so no need to make comments if installing from the tar ball."
+msgstr ""
+"À partir de PostGIS v1.4.0, toutes les fonctions ont des commentaires "
+"générés à partir de la documentation. Si vous désirez installer ces "
+"commentaires dans votre base de données spatiales plus tard, lancez la "
+"commande qui nécessite docbook. Le fichier postgis_comments.sql et les "
+"autres groupes de fichiers de commentaires raster_comments.sql, "
+"topology_comments.sql sont aussi packagés dans la distribution tar.gz dans "
+"le répertoire doc par conséquent pas besoin de créer les commentaires si "
+"vous installez à partir des archives."
+
+#. Tag: command
+#: installation.xml:563 installation.xml:587
+#, no-c-format
+msgid "make comments"
+msgstr "make comments"
+
+#. Tag: para
+#: installation.xml:566
+#, no-c-format
+msgid ""
+"Introduced in PostGIS 2.0. This generates html cheat sheets suitable for "
+"quick reference or for student handouts. This requires xsltproc to build and "
+"will generate 4 files in doc folder <filename>topology_cheatsheet.html</"
+"filename>, <filename>tiger_geocoder_cheatsheet.html</filename>, "
+"<filename>raster_cheatsheet.html</filename>, <filename>postgis_cheatsheet."
+"html</filename>"
+msgstr ""
+"Introduit dans PostGIS 2.0. Cela génère un mémo en html disponible pour une "
+"référence rapide ou pour les étudiants. La compilation nécessite xsltproc et "
+"génèrera 4 fichiers dans le répertoire doc <filename>topology_cheatsheet."
+"html</filename>, <filename>tiger_geocoder_cheatsheet.html</filename>, "
+"<filename>raster_cheatsheet.html</filename>, <filename>postgis_cheatsheet."
+"html</filename>"
+
+#. Tag: para
+#: installation.xml:571
+#, no-c-format
+msgid ""
+"You can download some pre-built ones available in html and pdf from <ulink "
+"url=\"http://www.postgis.us/study_guides\">PostGIS / PostgreSQL Study "
+"Guides</ulink>"
+msgstr ""
+"Vous pouvez télécharger des pré-compilations disponibles en HTML et PDF à "
+"partir de <ulink url=\"http://www.postgis.us/study_guides\">PostGIS / "
+"PostgreSQL Study Guides</ulink>"
+
+#. Tag: command
+#: installation.xml:574
+#, no-c-format
+msgid "make cheatsheets"
+msgstr "make cheatsheets"
+
+#. Tag: title
+#: installation.xml:579
+#, no-c-format
+msgid "Building PostGIS Extensions and Deploying them"
+msgstr "Compiler les Extensions PostGIS et les déployer"
+
+#. Tag: para
+#: installation.xml:581
+#, no-c-format
+msgid ""
+"The PostGIS extensions are built and installed automatically if you are "
+"using PostgreSQL 9.1+."
+msgstr ""
+"Les extensions PostGIS sont compilées et installées automatiquement si vous "
+"utilisez PostgreSQL 9.1+"
+
+#. Tag: para
+#: installation.xml:584
+#, no-c-format
+msgid ""
+"If you are building from source repository, you need to build the function "
+"descriptions first. These get built if you have docbook installed. You can "
+"also manually build with the statement:"
+msgstr ""
+"Si vous compilez à partir des dépôts des sources, vous devez compiler les "
+"descriptions de fonction d'abord. Ceci est compilé si vous avez docbook "
+"installé. Vous pouvez également compiler manuellement avec cette commande :"
+
+#. Tag: para
+#: installation.xml:589
+#, no-c-format
+msgid ""
+"Building the comments is not necessary if you are building from a release "
+"tar ball since these are packaged pre-built with the tar ball already."
+msgstr ""
+"Compiler les commentaires n'est pas nécessaire si vous avez compilé à partir "
+"d'une release d'archive puisque ceux-ci sont des pré-compilations packagés "
+"avec le tar ball."
+
+#. Tag: para
+#: installation.xml:590
+#, no-c-format
+msgid ""
+"If you are building against PostgreSQL 9.1, the extensions should "
+"automatically build as part of the make install process. You can if needed "
+"build from the extensions folders or copy files if you need them on a "
+"different server."
+msgstr ""
+"Si vous compilez avec PostgreSQL 9.1, les extensions doivent être "
+"automatiquement compilées comme part du processus make install. Vous pouvez, "
+"si nécessaire, compilé à partir des répertoires d'extensions ou copier les "
+"fichiers si vous en avez besoin sur un serveur différent."
+
+#. Tag: programlisting
+#: installation.xml:592
+#, no-c-format
+msgid ""
+"cd extensions\n"
+"cd postgis\n"
+"make clean\n"
+"make \n"
+"make install\n"
+"cd ..\n"
+"cd postgis_topology\n"
+"make clean\n"
+"make \n"
+"make install"
+msgstr ""
+"cd extensions\n"
+"cd postgis\n"
+"make clean\n"
+"make \n"
+"make install\n"
+"cd ..\n"
+"cd postgis_topology\n"
+"make clean\n"
+"make \n"
+"make install"
+
+#. Tag: para
+#: installation.xml:593
+#, no-c-format
+msgid ""
+"The extension files will always be the same for the same version of PostGIS "
+"regardless of OS, so it is fine to copy over the extension files from one OS "
+"to another as long as you have the PostGIS binaries already installed on "
+"your servers."
+msgstr ""
+"Les fichiers extensions seront toujours les mêmes pour les mêmes version de "
+"PostGIS indépendamment de l'OS, par conséquent il n'y a pas de problème à "
+"copier les fichiers extensions d'un OS à un autre du moment que vous avez "
+"les binaires PostGIS déjà installés sur vos serveurs."
+
+#. Tag: para
+#: installation.xml:595
+#, no-c-format
+msgid ""
+"If you want to install the extensions manually on a separate server "
+"different from your development, You need to copy the following files from "
+"the extensions folder into the <filename>PostgreSQL / share / extension</"
+"filename> folder of your PostgreSQL install as well as the needed binaries "
+"for regular PostGIS if you don't have them already on the server."
+msgstr ""
+"Si vous voulez installer les extensions manuellement sur un serveur "
+"différent séparé de votre développement, vous devez copier les fichiers "
+"suivants à partir du répertoire extension dans le répertoire "
+"<filename>PostgreSQL / share / extension</filename> de votre installation "
+"PostgreSQL ainsi que les binaires nécessaires pour une version correcte de "
+"PostGIS si vous ne les avez pas déjà sur le serveur."
+
+#. Tag: para
+#: installation.xml:602
+#, no-c-format
+msgid ""
+"These are the control files that denote information such as the version of "
+"the extension to install if not specified. <filename>postgis.control, "
+"postgis_topology.control</filename>."
+msgstr ""
+"Ceux-ci sont les fichiers de contrôle qui renvoie les informations telles "
+"que la version de l'extension à installer si non spécifié. <filename>postgis."
+"control, postgis_topology.control</filename>."
+
+#. Tag: para
+#: installation.xml:608
+#, no-c-format
+msgid ""
+"All the files in the /sql folder of each extension. Note that these need to "
+"be copied to the root of the PostgreSQL share/extension folder "
+"<filename>extensions/postgis/sql/*.sql</filename>, <filename>extensions/"
+"postgis_topology/sql/*.sql</filename>"
+msgstr ""
+"Tous les fichiers dans le répertoire /sql de chaque extension. Notez que "
+"ceux-ci nécessitent d'être copiées à la racine du répertoire share/extension "
+"de PostgreSQL "
+
+#. Tag: para
+#: installation.xml:614
+#, no-c-format
+msgid ""
+"Once you do that, you should see <varname>postgis</varname>, "
+"<varname>postgis_topology</varname> as available extensions in PgAdmin -> "
+"extensions."
+msgstr ""
+"Une fois fait, vous devez voir  <varname>postgis</varname>, "
+"<varname>postgis_topology</varname> comme extensions disponibles dans "
+"PgAdmin -> extensions."
+
+#. Tag: para
+#: installation.xml:615
+#, no-c-format
+msgid ""
+"If you are using psql, you can verify that the extensions are installed by "
+"running this query:"
+msgstr ""
+"Si vous utilisez psql, vous pouvez vérifier que les extensions sont "
+"installées en lançant cette requête :"
+
+#. Tag: programlisting
+#: installation.xml:616
+#, no-c-format
+msgid ""
+"SELECT name, default_version,installed_version \n"
+"FROM pg_available_extensions WHERE name LIKE 'postgis%' ;\n"
+"      name       | default_version | installed_version\n"
+"-----------------+-----------------+-------------------\n"
+"postgis          | &last_release_version;     | &last_release_version;\n"
+"postgis_topology | &last_release_version;      |"
+msgstr ""
+"SELECT name, default_version,installed_version \n"
+"FROM pg_available_extensions WHERE name LIKE 'postgis%' ;\n"
+"      name       | default_version | installed_version\n"
+"-----------------+-----------------+-------------------\n"
+"postgis          | &last_release_version;     | &last_release_version;\n"
+"postgis_topology | &last_release_version;      |"
+
+#. Tag: para
+#: installation.xml:618
+#, no-c-format
+msgid ""
+"If you have the extension installed in the database you are querying, you'll "
+"see mention in the <varname>installed_version</varname> column. If you get "
+"no records back, it means you don't have postgis extensions installed on the "
+"server at all. PgAdmin III 1.14+ will also provide this information in the "
+"<varname>extensions</varname> section of the database browser tree and will "
+"even allow upgrade or uninstall by right-clicking."
+msgstr ""
+"Si vous avez l'extension installée dans la base de données que vous "
+"interrogez, vous verrez la mention  dans la colonne "
+"<varname>installed_version</varname>. Si vous n'obtenez aucun "
+"enregistrement , cela signifie que vous n'avez pas d'extension postgis "
+"installés sur le serveur. PgAdmin III 1.14+ fournira aussi cette information "
+"dans la section <varname>extensions</varname> dans l'arbre de l'explorateur "
+"de la base de données et autorisera même la mise à jour ou la "
+"désinstallation par clic-droit."
+
+#. Tag: para
+#: installation.xml:622
+#, no-c-format
+msgid ""
+"If you have the extensions available, you can install postgis extension in "
+"your database of choice by either using pgAdmin extension interface or "
+"running these sql commands:"
+msgstr ""
+"Si vous avez les extensions disponibles, vous pouvez installer les "
+"extensions postgis dans votre base de données de votre choix soit en "
+"utilisant l'interface d'extension de PgAdmin ou lançant ces commandes SQL :"
+
+#. Tag: programlisting
+#: installation.xml:623
+#, fuzzy, no-c-format
+msgid ""
+"CREATE EXTENSION postgis;\n"
+"CREATE EXTENSION postgis_topology;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
+msgstr ""
+"CREATE EXTENSION postgis;\n"
+"CREATE EXTENSION postgis_topology;"
+
+#. Tag: para
+#: installation.xml:625
+#, no-c-format
+msgid ""
+"In psql you can use to see what versions you have installed and also what "
+"schema they are installed."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:626
+#, no-c-format
+msgid ""
+"\\connect mygisdb\n"
+"\\x \n"
+"\\dx postgis*"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:628
+#, no-c-format
+msgid ""
+"List of installed extensions\n"
+"-[ RECORD 1 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis\n"
+"Version     | &last_release_version;\n"
+"Schema      | public\n"
+"Description | PostGIS geometry, geography, and raster spat..\n"
+"-[ RECORD 2 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_tiger_geocoder\n"
+"Version     | &last_release_version;\n"
+"Schema      | tiger\n"
+"Description | PostGIS tiger geocoder and reverse geocoder\n"
+"-[ RECORD 3 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_topology\n"
+"Version     | &last_release_version;\n"
+"Schema      | topology\n"
+"Description | PostGIS topology spatial types and functions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:630
+#, no-c-format
+msgid ""
+"Extension tables <varname>spatial_ref_sys</varname>, <varname>layer</"
+"varname>, <varname>topology</varname> can not be explicitly backed up. They "
+"can only be backed up when the respective <varname>postgis</varname> or "
+"<varname>postgis_topology</varname> extension is backed up, which only seems "
+"to happen when you backup the whole database. As of PostGIS 2.0.1, only srid "
+"records not packaged with PostGIS are backed up when the database is backed "
+"up so don't go around changing srids we package and expect your changes to "
+"be there. Put in a ticket if you find an issue. The structures of extension "
+"tables are never backed up since they are created with <code>CREATE "
+"EXTENSION</code> and assumed to be the same for a given version of an "
+"extension. These behaviors are built into the current PostgreSQL extension "
+"model, so nothing we can do about it."
+msgstr ""
+"Les tables d'extension <varname>spatial_ref_sys</varname>, <varname>layer</"
+"varname>, <varname>topology</varname> ne peuvent pas être explicitement "
+"sauvegardé. Elles peuvent être uniquement sauvegardées quand les extensions "
+"respectives <varname>postgis</varname> ou <varname>postgis_topology</"
+"varname> sont sauvegardées, ce qui semblent seulement arrivé quand vous "
+"sauvegardez l'ensemble de la base. À partir de PostGIS 2.0.1, seulement les "
+"enregistrements des srid non packagés avec PostGIS sont sauvegardés quand la "
+"base de données est sauvegardé par conséquent ne changez pas les srids que "
+"nous fournissons et attendre que vos modifications seront encore là. Créez "
+"un ticket si vous trouvez un problème. Les structures de la table "
+"d'extension ne sont jamais sauvegardées puisque créée avec  <code>CREATE "
+"EXTENSION</code> et supposées être identique pour la même version de "
+"l'extension. Ce comportement fait partie du modèle actuel d'extensions de "
+"PostgreSQL, nous pouvons donc rien faire à ce sujet."
+
+#. Tag: para
+#: installation.xml:635
+#, fuzzy, no-c-format
+msgid ""
+"If you installed &last_release_version;, without using our wonderful "
+"extension system, you can change it to be extension based by first upgrading "
+"to the latest micro version running the upgrade scripts: "
+"<filename>postgis_upgrade_22_minor.sql</filename>,"
+"<filename>raster_upgrade_22_minor.sql</filename>,"
+"<filename>topology_upgrade_22_minor.sql</filename>."
+msgstr ""
+"Si vous installez &last_release_version;, sans utiliser notre merveilleux "
+"système d'extension, vous pouvez modifier cela pour que cela soit basée sur "
+"l'extension en mettant à jour d'abord vers la plus petite version en lançant "
+"les scripts de mise à jour : <filename>postgis_upgrade_20_minor.sql</"
+"filename>,<filename>raster_upgrade_20_minor.sql</filename>,"
+"<filename>topology_upgrade_20_minor.sql</filename>."
+
+#. Tag: para
+#: installation.xml:636
+#, no-c-format
+msgid ""
+"If you installed postgis without raster support, you'll need to install "
+"raster support first (using the full <filename>rtpostgis.sql</filename>"
+msgstr ""
+"Si vous installez postgis sans la gestion du raster, vous aurez besoin "
+"d'installer la gestion du raster (en utilisant le script <filename>rtpostgis."
+"sql</filename> complet"
+
+#. Tag: para
+#: installation.xml:637
+#, no-c-format
+msgid ""
+"Then you can run the below commands to package the functions in their "
+"respective extension."
+msgstr ""
+"Puis vous pouvez lancer les commandes ci-dessous pour packager les fonctions "
+"dans leur extension respective."
+
+#. Tag: programlisting
+#: installation.xml:638
+#, fuzzy, no-c-format
+msgid ""
+"CREATE EXTENSION postgis FROM unpackaged;\n"
+"CREATE EXTENSION postgis_topology FROM unpackaged;\n"
+"CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+"CREATE EXTENSION postgis FROM unpackaged;\n"
+"CREATE EXTENSION postgis_topology FROM unpackaged;"
+
+#. Tag: title
+#: installation.xml:644
+#, no-c-format
+msgid "Testing"
+msgstr "Tests"
+
+#. Tag: para
+#: installation.xml:646
+#, no-c-format
+msgid "If you wish to test the PostGIS build, run"
+msgstr "Si vous désirez tester la compilation de PostGIS, lancez "
+
+#. Tag: command
+#: installation.xml:651
+#, no-c-format
+msgid "make check"
+msgstr "make check"
+
+#. Tag: para
+#: installation.xml:654
+#, no-c-format
+msgid ""
+"The above command will run through various checks and regression tests using "
+"the generated library against an actual PostgreSQL database."
+msgstr ""
+"La commande ci-dessus fonctionnera pour différentes tests de vérification et "
+"de régression en utilisant la bibliothèque générée selon la base de données "
+"actuelle."
+
+#. Tag: para
+#: installation.xml:660
+#, no-c-format
+msgid ""
+"If you configured PostGIS using non-standard PostgreSQL, GEOS, or Proj4 "
+"locations, you may need to add their library locations to the "
+"LD_LIBRARY_PATH environment variable."
+msgstr ""
+"Si vous configurez PostGIS en utilisant une localisation non standard de "
+"PostgreSQL, GEOS, ou Proj4, vous pourrez avoir besoin d'ajouter la "
+"localisation des bibliothèques à la variable d'environnement LD_LIBRARY_PATH."
+
+#. Tag: para
+#: installation.xml:668
+#, no-c-format
+msgid ""
+"Currently, the <command>make check</command> relies on the <code>PATH</code> "
+"and <code>PGPORT</code> environment variables when performing the checks - "
+"it does <emphasis>not</emphasis> use the PostgreSQL version that may have "
+"been specified using the configuration parameter <command>--with-pgconfig</"
+"command>. So make sure to modify your PATH to match the detected PostgreSQL "
+"installation during configuration or be prepared to deal with the impending "
+"headaches."
+msgstr ""
+"Pour le moment, <command>make check</command> repose sur les variables "
+"d'environnement <code>PATH</code> et <code>PGPORT</code> lors de la "
+"réalisation des vérifications - il n'utilise <emphasis>pas</emphasis> la "
+"version de PostgreSQL qui a pu être définie  en utilisant la paramètre "
+"configuration <command>--with-pgconfig</command>. Assurez vous donc de "
+"modifier votre PATH pour correspondre l'installation de PostgreSQL détectée "
+"durant la configuration ou préparez vous à gérer des maux de tête inhérent."
+
+#. Tag: para
+#: installation.xml:680
+#, no-c-format
+msgid ""
+"If successful, the output of the test should be similar to the following:"
+msgstr "Si fructueux; la sortie du test doit être similaire à ceci :"
+
+#. Tag: programlisting
+#: installation.xml:685
+#, no-c-format
+msgid ""
+"CUnit - A Unit testing framework for C - Version 2.1-0\n"
+"     http://cunit.sourceforge.net/\n"
+"\n"
+"\n"
+"Suite: print_suite\n"
+"  Test: test_lwprint_default_format ... passed\n"
+"  Test: test_lwprint_format_orders ... passed\n"
+"  Test: test_lwprint_optional_format ... passed\n"
+"  Test: test_lwprint_oddball_formats ... passed\n"
+"  Test: test_lwprint_bad_formats ... passed\n"
+"Suite: misc\n"
+"  Test: test_misc_force_2d ... passed\n"
+"  Test: test_misc_simplify ... passed\n"
+"  Test: test_misc_count_vertices ... passed\n"
+"  Test: test_misc_area ... passed\n"
+"  Test: test_misc_wkb ... passed\n"
+"Suite: ptarray\n"
+"  Test: test_ptarray_append_point ... passed\n"
+"  Test: test_ptarray_append_ptarray ... passed\n"
+"  Test: test_ptarray_locate_point ... passed\n"
+"  Test: test_ptarray_isccw ... passed\n"
+"  Test: test_ptarray_signed_area ... passed\n"
+"  Test: test_ptarray_desegmentize ... passed\n"
+"  Test: test_ptarray_insert_point ... passed\n"
+"  Test: test_ptarray_contains_point ... passed\n"
+"  Test: test_ptarrayarc_contains_point ... passed\n"
+"Suite: PostGIS Computational Geometry Suite\n"
+"  Test: test_lw_segment_side ... passed\n"
+"  Test: test_lw_segment_intersects ... passed\n"
+"  Test: test_lwline_crossing_short_lines ... passed\n"
+"  Test: test_lwline_crossing_long_lines ... passed\n"
+"  Test: test_lwline_crossing_bugs ... passed\n"
+"  Test: test_lwpoint_set_ordinate ... passed\n"
+"  Test: test_lwpoint_get_ordinate ... passed\n"
+"  Test: test_point_interpolate ... passed\n"
+"  Test: test_lwline_clip ... passed\n"
+"  Test: test_lwline_clip_big ... passed\n"
+"  Test: test_lwmline_clip ... passed\n"
+"  Test: test_geohash_point ... passed\n"
+"  Test: test_geohash_precision ... passed\n"
+"  Test: test_geohash ... passed\n"
+"  Test: test_geohash_point_as_int ... passed\n"
+"  Test: test_isclosed ... passed\n"
+"Suite: buildarea\n"
+"  Test: buildarea1 ... passed\n"
+"  Test: buildarea2 ... passed\n"
+"  Test: buildarea3 ... passed\n"
+"  Test: buildarea4 ... passed\n"
+"  Test: buildarea4b ... passed\n"
+"  Test: buildarea5 ... passed\n"
+"  Test: buildarea6 ... passed\n"
+"  Test: buildarea7 ... passed\n"
+"Suite: clean\n"
+"  Test: test_lwgeom_make_valid ... passed\n"
+"Suite: PostGIS Measures Suite\n"
+"  Test: test_mindistance2d_tolerance ... passed\n"
+"  Test: test_rect_tree_contains_point ... passed\n"
+"  Test: test_rect_tree_intersects_tree ... passed\n"
+"  Test: test_lwgeom_segmentize2d ... passed\n"
+"  Test: test_lwgeom_locate_along ... passed\n"
+"  Test: test_lw_dist2d_pt_arc ... passed\n"
+"  Test: test_lw_dist2d_seg_arc ... passed\n"
+"  Test: test_lw_dist2d_arc_arc ... passed\n"
+"  Test: test_lw_arc_length ... passed\n"
+"  Test: test_lw_dist2d_pt_ptarrayarc ... passed\n"
+"  Test: test_lw_dist2d_ptarray_ptarrayarc ... passed\n"
+"Suite: node\n"
+"  Test: test_lwgeom_node ... passed\n"
+"Suite: WKT Out Suite\n"
+"  Test: test_wkt_out_point ... passed\n"
+"  Test: test_wkt_out_linestring ... passed\n"
+"  Test: test_wkt_out_polygon ... passed\n"
+"  Test: test_wkt_out_multipoint ... passed\n"
+"  Test: test_wkt_out_multilinestring ... passed\n"
+"  Test: test_wkt_out_multipolygon ... passed\n"
+"  Test: test_wkt_out_collection ... passed\n"
+"  Test: test_wkt_out_circularstring ... passed\n"
+"  Test: test_wkt_out_compoundcurve ... passed\n"
+"  Test: test_wkt_out_curvpolygon ... passed\n"
+"  Test: test_wkt_out_multicurve ... passed\n"
+"  Test: test_wkt_out_multisurface ... passed\n"
+"Suite: WKT In Suite\n"
+"  Test: test_wkt_in_point ... passed\n"
+"  Test: test_wkt_in_linestring ... passed\n"
+"  Test: test_wkt_in_polygon ... passed\n"
+"  Test: test_wkt_in_multipoint ... passed\n"
+"  Test: test_wkt_in_multilinestring ... passed\n"
+"  Test: test_wkt_in_multipolygon ... passed\n"
+"  Test: test_wkt_in_collection ... passed\n"
+"  Test: test_wkt_in_circularstring ... passed\n"
+"  Test: test_wkt_in_compoundcurve ... passed\n"
+"  Test: test_wkt_in_curvpolygon ... passed\n"
+"  Test: test_wkt_in_multicurve ... passed\n"
+"  Test: test_wkt_in_multisurface ... passed\n"
+"  Test: test_wkt_in_tin ... passed\n"
+"  Test: test_wkt_in_polyhedralsurface ... passed\n"
+"  Test: test_wkt_in_errlocation ... passed\n"
+"Suite: WKB Out Suite\n"
+"  Test: test_wkb_out_point ... passed\n"
+"  Test: test_wkb_out_linestring ... passed\n"
+"  Test: test_wkb_out_polygon ... passed\n"
+"  Test: test_wkb_out_multipoint ... passed\n"
+"  Test: test_wkb_out_multilinestring ... passed\n"
+"  Test: test_wkb_out_multipolygon ... passed\n"
+"  Test: test_wkb_out_collection ... passed\n"
+"  Test: test_wkb_out_circularstring ... passed\n"
+"  Test: test_wkb_out_compoundcurve ... passed\n"
+"  Test: test_wkb_out_curvpolygon ... passed\n"
+"  Test: test_wkb_out_multicurve ... passed\n"
+"  Test: test_wkb_out_multisurface ... passed\n"
+"  Test: test_wkb_out_polyhedralsurface ... passed\n"
+":\n"
+"Suite: Geodetic Suite\n"
+"  Test: test_sphere_direction ... passed\n"
+"  Test: test_sphere_project ... passed\n"
+"  Test: test_lwgeom_area_sphere ... passed\n"
+"  Test: test_signum ... passed\n"
+"  Test: test_gbox_from_spherical_coordinates ... passed\n"
+":\n"
+"  Test: test_geos_noop ... passed\n"
+"Suite: Internal Spatial Trees\n"
+"  Test: test_tree_circ_create ... passed\n"
+"  Test: test_tree_circ_pip ... passed\n"
+"  Test: test_tree_circ_pip2 ... passed\n"
+"  Test: test_tree_circ_distance ... passed\n"
+"Suite: triangulate\n"
+"  Test: test_lwgeom_delaunay_triangulation ... passed\n"
+"Suite: stringbuffer\n"
+"  Test: test_stringbuffer_append ... passed\n"
+"  Test: test_stringbuffer_aprintf ... passed\n"
+"Suite: surface\n"
+"  Test: triangle_parse ... passed\n"
+"  Test: tin_parse ... passed\n"
+"  Test: polyhedralsurface_parse ... passed\n"
+"  Test: surface_dimension ... passed\n"
+"Suite: homogenize\n"
+"  Test: test_coll_point ... passed\n"
+"  Test: test_coll_line ... passed\n"
+"  Test: test_coll_poly ... passed\n"
+"  Test: test_coll_coll ... passed\n"
+"  Test: test_geom ... passed\n"
+"  Test: test_coll_curve ... passed\n"
+"Suite: force_sfs\n"
+"  Test: test_sfs_11 ... passed\n"
+"  Test: test_sfs_12 ... passed\n"
+"  Test: test_sqlmm ... passed\n"
+"Suite: out_gml\n"
+"  Test: out_gml_test_precision ... passed\n"
+"  Test: out_gml_test_srid ... passed\n"
+"  Test: out_gml_test_dims ... passed\n"
+"  Test: out_gml_test_geodetic ... passed\n"
+"  Test: out_gml_test_geoms ... passed\n"
+"  Test: out_gml_test_geoms_prefix ... passed\n"
+"  Test: out_gml_test_geoms_nodims ... passed\n"
+"  Test: out_gml2_extent ... passed\n"
+"  Test: out_gml3_extent ... passed\n"
+"Suite: KML Out Suite\n"
+"  Test: out_kml_test_precision ... passed\n"
+"  Test: out_kml_test_dims ... passed\n"
+"  Test: out_kml_test_geoms ... passed\n"
+"  Test: out_kml_test_prefix ... passed\n"
+"Suite: GeoJson Out Suite\n"
+"  Test: out_geojson_test_precision ... passed\n"
+"  Test: out_geojson_test_dims ... passed\n"
+"  Test: out_geojson_test_srid ... passed\n"
+"  Test: out_geojson_test_bbox ... passed\n"
+"  Test: out_geojson_test_geoms ... passed\n"
+"Suite: SVG Out Suite\n"
+"  Test: out_svg_test_precision ... passed\n"
+"  Test: out_svg_test_dims ... passed\n"
+"  Test: out_svg_test_relative ... passed\n"
+"  Test: out_svg_test_geoms ... passed\n"
+"  Test: out_svg_test_srid ... passed\n"
+"Suite: X3D Out Suite\n"
+"  Test: out_x3d3_test_precision ... passed\n"
+"  Test: out_x3d3_test_geoms ... passed\n"
+"\n"
+"--Run Summary: Type      Total     Ran  Passed  Failed\n"
+"               suites       27      27     n/a       0\n"
+"               tests       198     198     198       0\n"
+"               asserts    1728    1728    1728       0\n"
+"\n"
+"Creating database 'postgis_reg' \n"
+"Loading PostGIS into 'postgis_reg' \n"
+"PostgreSQL 9.3beta1 on x86_64-unknown-linux-gnu, compiled by gcc (Debian "
+"4.4.5-8) 4.4.5, 64-bit\n"
+"  Postgis 2.1.0SVN - r11415 - 2013-05-11 02:48:21\n"
+"  GEOS: 3.4.0dev-CAPI-1.8.0 r3797\n"
+"  PROJ: Rel. 4.7.1, 23 September 2009\n"
+"\n"
+"Running tests\n"
+"\n"
+" loader/Point .............. ok \n"
+" loader/PointM .............. ok \n"
+" loader/PointZ .............. ok \n"
+" loader/MultiPoint .............. ok \n"
+" loader/MultiPointM .............. ok \n"
+" loader/MultiPointZ .............. ok \n"
+" loader/Arc .............. ok \n"
+" loader/ArcM .............. ok \n"
+" loader/ArcZ .............. ok \n"
+" loader/Polygon .............. ok \n"
+" loader/PolygonM .............. ok \n"
+" loader/PolygonZ .............. ok \n"
+" loader/TSTPolygon ......... ok \n"
+" loader/TSIPolygon ......... ok \n"
+" loader/TSTIPolygon ......... ok \n"
+" loader/PointWithSchema ..... ok \n"
+" loader/NoTransPoint ......... ok \n"
+" loader/NotReallyMultiPoint ......... ok \n"
+" loader/MultiToSinglePoint ......... ok \n"
+" loader/ReprojectPts ........ ok \n"
+" loader/ReprojectPtsGeog ........ ok \n"
+" loader/Latin1 .... ok \n"
+" binary .. ok \n"
+" regress .. ok \n"
+" regress_index .. ok \n"
+" regress_index_nulls .. ok \n"
+" regress_selectivity .. ok \n"
+" lwgeom_regress .. ok \n"
+" regress_lrs .. ok \n"
+" removepoint .. ok \n"
+" setpoint .. ok \n"
+" simplify .. ok \n"
+" snaptogrid .. ok \n"
+" summary .. ok \n"
+" affine .. ok \n"
+" empty .. ok \n"
+" measures .. ok \n"
+" legacy .. ok \n"
+" long_xact .. ok \n"
+" ctors .. ok \n"
+" sql-mm-serialize .. ok \n"
+" sql-mm-circularstring .. ok \n"
+" sql-mm-compoundcurve .. ok \n"
+" sql-mm-curvepoly .. ok \n"
+" sql-mm-general .. ok \n"
+" sql-mm-multicurve .. ok \n"
+" sql-mm-multisurface .. ok \n"
+" polyhedralsurface .. ok \n"
+" polygonize .. ok \n"
+" postgis_type_name .. ok \n"
+" geography .. ok \n"
+" out_geometry .. ok \n"
+" out_geography .. ok \n"
+" in_geohash .. ok \n"
+" in_gml .. ok \n"
+" in_kml .. ok \n"
+" iscollection .. ok \n"
+" regress_ogc .. ok \n"
+" regress_ogc_cover .. ok \n"
+" regress_ogc_prep .. ok \n"
+" regress_bdpoly .. ok \n"
+" regress_proj .. ok \n"
+" regress_management .. ok \n"
+" dump .. ok \n"
+" dumppoints .. ok \n"
+" boundary .. ok \n"
+" wmsservers .. ok \n"
+" wkt .. ok \n"
+" wkb .. ok \n"
+" tickets .. ok \n"
+" typmod .. ok \n"
+" remove_repeated_points .. ok \n"
+" split .. ok \n"
+" relate .. ok \n"
+" bestsrid .. ok \n"
+" concave_hull .. ok \n"
+" hausdorff .. ok \n"
+" regress_buffer_params .. ok \n"
+" offsetcurve .. ok \n"
+" relatematch .. ok \n"
+" isvaliddetail .. ok \n"
+" sharedpaths .. ok \n"
+" snap .. ok \n"
+" node .. ok \n"
+" unaryunion .. ok \n"
+" clean .. ok \n"
+" relate_bnr .. ok \n"
+" delaunaytriangles .. ok \n"
+" in_geojson .. ok \n"
+" uninstall .. ok (4112)\n"
+"\n"
+"Run tests: 90"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:689
+#, no-c-format
+msgid "Installation"
+msgstr "Installation"
+
+#. Tag: para
+#: installation.xml:691
+#, no-c-format
+msgid "To install PostGIS, type"
+msgstr "Pour installer PostGIS, entrez"
+
+#. Tag: command
+#: installation.xml:696
+#, no-c-format
+msgid "make install"
+msgstr "make install"
+
+#. Tag: para
+#: installation.xml:699
+#, no-c-format
+msgid ""
+"This will copy the PostGIS installation files into their appropriate "
+"subdirectory specified by the <command>--prefix</command> configuration "
+"parameter. In particular:"
+msgstr ""
+"Ceci copiera les fichiers d'installation de PostGIS dans leur sous-"
+"répertoires appropriés  définie par le paramètre de configuration  "
+"<command>--prefix</command>. En particulier :"
+
+#. Tag: para
+#: installation.xml:707
+#, no-c-format
+msgid ""
+"The loader and dumper binaries are installed in <filename>[prefix]/bin</"
+"filename>."
+msgstr ""
+"Les binaires du chargeur et du dumper sont installés dans <filename>[prefix]/"
+"bin</filename>."
+
+#. Tag: para
+#: installation.xml:714
+#, no-c-format
+msgid ""
+"The SQL files, such as <filename>postgis.sql</filename>, are installed in "
+"<filename>[prefix]/share/contrib</filename>."
+msgstr ""
+"Les fichiers SQL, tel que <filename>postgis.sql</filename>, sont installé "
+"dans <filename>[prefix]/share/contrib</filename>."
+
+#. Tag: para
+#: installation.xml:721
+#, no-c-format
+msgid ""
+"The PostGIS libraries are installed in <filename>[prefix]/lib</filename>."
+msgstr ""
+"Les bibliothèques PostGIS sont installées dans <filename>[prefix]/lib</"
+"filename>."
+
+#. Tag: para
+#: installation.xml:728
+#, no-c-format
+msgid ""
+"If you previously ran the <command>make comments</command> command to "
+"generate the <filename>postgis_comments.sql</filename>, "
+"<filename>raster_comments.sql</filename> file, install the sql file by "
+"running"
+msgstr ""
+"Si vous avez déjà lancé la commande <command>make comments</command> pour "
+"générer les fichiers <filename>postgis_comments.sql</filename>, "
+"<filename>raster_comments.sql</filename>, installer le fichier sql en lançant"
+
+#. Tag: command
+#: installation.xml:735
+#, no-c-format
+msgid "make comments-install"
+msgstr "make comments-install"
+
+#. Tag: para
+#: installation.xml:739
+#, no-c-format
+msgid ""
+"<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</"
+"filename>, <filename>topology_comments.sql</filename> was separated from the "
+"typical build and installation targets since with it comes the extra "
+"dependency of <command>xsltproc</command>."
+msgstr ""
+"<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</"
+"filename>, <filename>topology_comments.sql</filename> ont été séparés de la "
+"compilation initiale et des cibles de l'installation depuis qu'ils sont "
+"dépendant de <command>xsltproc</command>."
+
+#. Tag: title
+#: installation.xml:749
+#, no-c-format
+msgid "Create a spatially-enabled database on PostgreSQL lower than 9.1"
+msgstr "Créer une base de données spatiale sur PostgreSQL inférieure à 9.1"
+
+#. Tag: para
+#: installation.xml:751
+#, no-c-format
+msgid ""
+"The first step in creating a PostGIS database is to create a simple "
+"PostgreSQL database."
+msgstr ""
+"La première étape dans la création d'une base de données PostGIS est de "
+"créer la base PostgreSQL."
+
+#. Tag: command
+#: installation.xml:757 installation.xml:854
+#, no-c-format
+msgid "createdb [yourdatabase]"
+msgstr "createdb [yourdatabase]"
+
+#. Tag: para
+#: installation.xml:760
+#, no-c-format
+msgid ""
+"Many of the PostGIS functions are written in the PL/pgSQL procedural "
+"language. As such, the next step to create a PostGIS database is to enable "
+"the PL/pgSQL language in your new database. This is accomplish by the "
+"command below command. For PostgreSQL 8.4+, this is generally already "
+"installed"
+msgstr ""
+"Plusieurs fonctions PostGIS sont écrites en langage procédural PL/pgSQL. Par "
+"conséquent, l'étape suivante pour créer une base de données PostGIS est "
+"d'activer la langue PL/pgSQL dans votre base de données. Cela est réalisée "
+"par la commande ci-dessous. Pour les versions 8.4 et supérieure de "
+"PostgreSQL, celle-ci est généralement déjà installée."
+
+#. Tag: command
+#: installation.xml:768
+#, no-c-format
+msgid "createlang plpgsql [yourdatabase]"
+msgstr "createlang plpgsql [yourdatabase]"
+
+#. Tag: para
+#: installation.xml:771
+#, no-c-format
+msgid ""
+"Now load the PostGIS object and function definitions into your database by "
+"loading the <filename>postgis.sql</filename> definitions file (located in "
+"<filename>[prefix]/share/contrib</filename> as specified during the "
+"configuration step)."
+msgstr ""
+"Maintenant chargez les définitions d'objet et de fonction PostGIS dans votre "
+"base de données en chargeant le fichier de définition <filename>postgis.sql</"
+"filename> (localisé dans <filename>[prefix]/share/contrib</filename> comme "
+"définie dans l'étape de configuration)."
+
+#. Tag: command
+#: installation.xml:779
+#, no-c-format
+msgid "psql -d [yourdatabase] -f postgis.sql"
+msgstr "psql -d [yourdatabase] -f postgis.sql"
+
+#. Tag: para
+#: installation.xml:782
+#, no-c-format
+msgid ""
+"For a complete set of EPSG coordinate system definition identifiers, you can "
+"also load the <filename>spatial_ref_sys.sql</filename> definitions file and "
+"populate the <varname>spatial_ref_sys</varname> table. This will permit you "
+"to perform ST_Transform() operations on geometries."
+msgstr ""
+"Pour un ensemble complet d'identifiant de définition de système de "
+"coordonnées EPSG, vous pouvez également lancer le fichier de définitions  "
+"<filename>spatial_ref_sys.sql</filename> et remplir la table  "
+"<varname>spatial_ref_sys</varname>. Cela vous permet de réaliser des "
+"opérations ST_Transform() sur les géométries."
+
+#. Tag: command
+#: installation.xml:790
+#, no-c-format
+msgid "psql -d [yourdatabase] -f spatial_ref_sys.sql"
+msgstr "psql -d [yourdatabase] -f spatial_ref_sys.sql"
+
+#. Tag: para
+#: installation.xml:793
+#, no-c-format
+msgid ""
+"If you wish to add comments to the PostGIS functions, the final step is to "
+"load the <filename>postgis_comments.sql</filename> into your spatial "
+"database. The comments can be viewed by simply typing <command>\\dd "
+"[function_name]</command> from a <command>psql</command> terminal window."
+msgstr ""
+"Si vous désirez ajouter des commentaires aux fonctions PostGIS, l'étape "
+"finale est de charger <filename>postgis_comments.sql</filename> dans votre "
+"base spatiale. Les commentaires peuvent être vus en tapant simplement "
+"<command>\\dd [function_name]</command> dans la console <command>psql</"
+"command>."
+
+#. Tag: command
+#: installation.xml:801
+#, no-c-format
+msgid "psql -d [yourdatabase] -f postgis_comments.sql"
+msgstr "psql -d [yourdatabase] -f postgis_comments.sql"
+
+#. Tag: para
+#: installation.xml:804
+#, no-c-format
+msgid "Install raster support"
+msgstr "Installation de la gestion des raster"
+
+#. Tag: command
+#: installation.xml:809
+#, no-c-format
+msgid "psql -d [yourdatabase] -f rtpostgis.sql"
+msgstr "psql -d [yourdatabase] -f rtpostgis.sql"
+
+#. Tag: para
+#: installation.xml:812
+#, no-c-format
+msgid ""
+"Install raster support comments. This will provide quick help info for each "
+"raster function using psql or PgAdmin or any other PostgreSQL tool that can "
+"show function comments"
+msgstr ""
+"Installation des commentaires dans la gestion des raster. Cela fournira une "
+"aide rapide pour chaque fonction raster en utilisant psql ou PgAdmin ou "
+"n'importe quel outil PostgreSQL qui peut montrer les commentaires des "
+"fonctions."
+
+#. Tag: command
+#: installation.xml:818
+#, no-c-format
+msgid "psql -d [yourdatabase] -f raster_comments.sql"
+msgstr "psql -d [yourdatabase] -f raster_comments.sql"
+
+#. Tag: para
+#: installation.xml:820
+#, no-c-format
+msgid "Install topology support"
+msgstr "Installer la gestion de la topologie"
+
+#. Tag: command
+#: installation.xml:825
+#, no-c-format
+msgid "psql -d [yourdatabase] -f topology/topology.sql"
+msgstr "psql -d [yourdatabase] -f topology/topology.sql"
+
+#. Tag: para
+#: installation.xml:828
+#, no-c-format
+msgid ""
+"Install topology support comments. This will provide quick help info for "
+"each topology function / type using psql or PgAdmin or any other PostgreSQL "
+"tool that can show function comments"
+msgstr ""
+"Installation des commentaires dans la gestion de la topologie. Cela fournira "
+"une aide rapide pour chaque fonction topologique en utilisant psql ou "
+"PgAdmin ou n'importe quel outil PostgreSQL qui peut montrer les commentaires "
+"des fonctions."
+
+#. Tag: command
+#: installation.xml:834
+#, no-c-format
+msgid "psql -d [yourdatabase] -f topology/topology_comments.sql"
+msgstr "psql -d [yourdatabase] -f topology/topology_comments.sql"
+
+#. Tag: para
+#: installation.xml:837 installation.xml:874
+#, no-c-format
+msgid ""
+"If you plan to restore an old backup from prior versions in this new db, run:"
+msgstr ""
+"Si vous prévoyez de restaurer une vielle sauvegarde à partir d'une version "
+"antérieure dans la nouvelle base, lancez :"
+
+#. Tag: command
+#: installation.xml:838 installation.xml:875
+#, no-c-format
+msgid "psql -d [yourdatabase] -f legacy.sql"
+msgstr "psql -d [yourdatabase] -f legacy.sql"
+
+#. Tag: para
+#: installation.xml:839
+#, no-c-format
+msgid ""
+"There is an alternative <filename>legacy_minimal.sql</filename> you can run "
+"instead which will install barebones needed to recover tables and work with "
+"apps like MapServer and GeoServer. If you have views that use things like "
+"distance / length etc, you'll need the full blown <filename>legacy.sql</"
+"filename>"
+msgstr ""
+"Il y a l'alternatif <filename>legacy_minimal.sql</filename> que vous pouvez "
+"lancer à la place et qui va installer les primitives nécessaires pour "
+"récupérer les tables et travailler avec des applications comme MapServer et "
+"GeoServer. Si vous avez des vues qui utilisent des choses comme distance / "
+"length etc, vous aurez besoin du fichier <filename>legacy.sql</filename> "
+"complet."
+
+#. Tag: para
+#: installation.xml:842 installation.xml:877
+#, no-c-format
+msgid ""
+"You can later run <filename>uninstall_legacy.sql</filename> to get rid of "
+"the deprecated functions after you are done with restoring and cleanup."
+msgstr ""
+"Vous pouvez lancer <filename>uninstall_legacy.sql</filename> pour supprimer "
+"les fonctions dépréciées après avoir fait les opérations de restauration et "
+"de nettoyage."
+
+#. Tag: title
+#: installation.xml:846
+#, no-c-format
+msgid "Creating a spatial database using EXTENSIONS"
+msgstr "Créer une base de données spatiale en utilisant EXTENSIONS"
+
+#. Tag: para
+#: installation.xml:848
+#, no-c-format
+msgid ""
+"If you are using PostgreSQL 9.1+ and have compiled and installed the "
+"extensions/ postgis modules, you can create a spatial database the new way."
+msgstr ""
+"Si vous utilisez PostgreSQL 9.1 et supérieur puis avez compilé et installé "
+"les modules extensions/ postgis, vous pouvez créer une base de données "
+"spatiales par la nouvelle manière."
+
+#. Tag: para
+#: installation.xml:857
+#, no-c-format
+msgid ""
+"The core postgis extension installs PostGIS geometry, geography, raster, "
+"spatial_ref_sys and all the functions and comments with a simple: "
+"<programlisting>CREATE EXTENSION postgis;</programlisting> command."
+msgstr ""
+"L'extension du coeur de PostGIS installe geometry, geography, raster, "
+"spatial_ref_sys et toutes les fonctions et commentaires avec une simple "
+"commande : <programlisting>CREATE EXTENSION postgis;</programlisting>."
+
+#. Tag: command
+#: installation.xml:863
+#, no-c-format
+msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
+msgstr "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
+
+#. Tag: para
+#: installation.xml:866
+#, no-c-format
+msgid ""
+"Topology is packaged as a separate extension and installable with command:"
+msgstr ""
+"La topologie est fournie comme extension séparée et installable avec la "
+"commande :"
+
+#. Tag: command
+#: installation.xml:871
+#, no-c-format
+msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
+msgstr "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
+
+#. Tag: title
+#: installation.xml:880
+#, no-c-format
+msgid "Installing and Using the address standardizer"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:881
+#, no-c-format
+msgid ""
+"The <code>address_standardizer</code> extension used to be a separate "
+"package that required separate download. From PostGIS 2.2 on, it is now "
+"bundled in. For more information about the address_standardize, what it "
+"does, and how to configure it for your needs, refer to <xref linkend="
+"\"Address_Standardizer\"/>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:883
+#, no-c-format
+msgid ""
+"This standardizer can be used in conjunction with the PostGIS packaged tiger "
+"geocoder extension as a replacement for the <xref linkend=\"Normalize_Address"
+"\"/> discussed. To use as replacement refer to <xref linkend="
+"\"tiger_pagc_address_standardizing\"/>. You can also use it as a building "
+"block for your own geocoder or use it to standardize your addresses for "
+"easier compare of addresses."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:887
+#, no-c-format
+msgid ""
+"The address standardizer relies on PCRE which is usually already installed "
+"on many Nix systems, but you can download the latest at: <ulink url=\"http://"
+"www.pcre.org\">http://www.pcre.org</ulink>. If during <xref linkend="
+"\"installation_configuration\"/>, PCRE is found, then the address "
+"standardizer extension will automatically be built. If you have a custom "
+"pcre install you want to use instead, pass to configure <code>--with-"
+"pcredir=/path/to/pcre</code> where <filename>/path/to/pcre</filename> is the "
+"root folder for your pcre include and lib directories."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:890
+#, no-c-format
+msgid ""
+"For Windows users, the PostGIS 2.1+ bundle is packaged with the "
+"address_standardizer already so no need to compile and can move straight to "
+"<code>CREATE EXTENSION</code> step."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:893
+#, no-c-format
+msgid ""
+"Once you have installed, you can connect to your database and run the SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:894
+#, no-c-format
+msgid "CREATE EXTENSION address_standardizer;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:896
+#, no-c-format
+msgid "The following test requires no rules, gaz, or lex tables"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:897
+#, no-c-format
+msgid ""
+"SELECT num, street, city, state, zip \n"
+" FROM parse_address('1 Devonshire Place, Boston, MA 02109');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:898
+#, no-c-format
+msgid "Output should be"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:899
+#, no-c-format
+msgid ""
+"num |         street         |  city  | state |  zip\n"
+"-----+------------------------+--------+-------+-------\n"
+" 1   | Devonshire Place PH301 | Boston | MA    | 02109"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:901
+#, no-c-format
+msgid "Installing Regex::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:902
+#, no-c-format
+msgid ""
+"Perl Regex:Assemble is no longer needed for compiling address_standardizer "
+"extension since the files it generates are part of the source tree. However "
+"if you need to edit the <filename>usps-st-city-orig.txt</filename> or "
+"<filename>usps-st-city-orig.txt usps-st-city-adds.tx</filename>, you need to "
+"rebuild <filename>parseaddress-stcities.h</filename> which does require "
+"Regex:Assemble."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:903
+#, no-c-format
+msgid "cpan Regexp::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:904
+#, no-c-format
+msgid "or if you are on Ubuntu / Debian you might need to do"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:905
+#, no-c-format
+msgid "sudo perl -MCPAN -e \"install Regexp::Assemble\""
+msgstr ""
+
+#. Tag: title
+#: installation.xml:910
+#, no-c-format
+msgid "Installing, Upgrading Tiger Geocoder and loading data"
+msgstr "Installer, mettre à jour le Géocodeur Tiger et charger des données"
+
+#. Tag: para
+#: installation.xml:912
+#, fuzzy, no-c-format
+msgid ""
+"Extras like Tiger geocoder may not be packaged in your PostGIS distribution, "
+"but will always be available in the postgis-&last_release_version;.tar.gz "
+"file. The instructions provided here are also available in the "
+"<filename>extras/tiger_geocoder/tiger_2011/README</filename>"
+msgstr ""
+"Le géocoder Tiger ne s'installe pas ni se met à jour avec le script du coeur "
+"de PostGIS parce qu'il n'est que d'intérêt régional. En fait, tout ce qui "
+"est dans extras n'est installé par défaut avec l'installation et la mise à "
+"jour normale de PostGIS. Les extras comme le géocoder Tiger peut aussi ne "
+"pas être packagés dans votre distribution PostGIS, mais sera toujours "
+"disponible dans le fichier  postgis-&last_release_version;.tar.gz. Les "
+"instructions fournies ici sont également disponible dans le fichier "
+"<filename>extras/tiger_geocoder/tiger_2010/README</filename>"
+
+#. Tag: para
+#: installation.xml:913
+#, no-c-format
+msgid ""
+"If you are on Windows and you don't have tar installed, you can use <ulink "
+"url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink> to unzip the "
+"PostGIS tarball."
+msgstr ""
+"Si vous êtes sous Windows et que vous n'avez pas tar installé, vous pouvez "
+"utiliser <ulink url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink> "
+"pour décompresser le tarball PostGIS."
+
+#. Tag: title
+#: installation.xml:915
+#, fuzzy, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Using Extension"
+msgstr "Activation du Géocodeur TIger dans votre base de données PostGIS"
+
+#. Tag: para
+#: installation.xml:916
+#, no-c-format
+msgid ""
+"If you are using PostgreSQL 9.1+ and PostGIS 2.1.0, you can take advantage "
+"of the new extension model for installing tiger geocoder. To do so:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:918
+#, no-c-format
+msgid ""
+"First get binaries for PostGIS 2.1.0 or compile and install as usual. This "
+"should install the necessary extension files as well for tiger geocoder."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:919
+#, no-c-format
+msgid ""
+"Connect to your database via psql or pgAdmin or some other tool and run the "
+"following SQL commands. Note that if you are installing in a database that "
+"already has postgis, you don't need to do the first step. If you have "
+"<varname>fuzzystrmatch</varname> extension already installed, you don't need "
+"to do the second step either."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:920
+#, fuzzy, no-c-format
+msgid ""
+"CREATE EXTENSION postgis;                \n"
+"CREATE EXTENSION fuzzystrmatch;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
+msgstr ""
+"CREATE EXTENSION postgis;\n"
+"CREATE EXTENSION postgis_topology;"
+
+#. Tag: para
+#: installation.xml:921
+#, no-c-format
+msgid ""
+"To confirm your install is working correctly, run this sql in your database:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:922
+#, no-c-format
+msgid ""
+"SELECT na.address, na.streetname,na.streettypeabbrev, na.zip\n"
+"        FROM normalize_address('1 Devonshire Place, Boston, MA 02109') AS na;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:923
+#, no-c-format
+msgid "Which should output"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:924
+#, no-c-format
+msgid ""
+"address | streetname | streettypeabbrev |  zip\n"
+"---------+------------+------------------+-------\n"
+"           1 | Devonshire | Pl               | 02109"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:926
+#, fuzzy, no-c-format
+msgid ""
+"Create a new record in <varname>tiger.loader_platform</varname> table with "
+"the paths of your executables and server."
+msgstr ""
+"Éditez le fichier <filename>tiger_loader.sql</filename> vers les chemins de "
+"votre exécutable du serveur, etc."
+
+#. Tag: para
+#: installation.xml:927
+#, no-c-format
+msgid ""
+"So for example to create a profile called debbie that follows <code>sh</"
+"code> convention. You would do:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:928
+#, no-c-format
+msgid ""
+"INSERT INTO tiger.loader_platform(os, declare_sect, pgbin, wget, "
+"unzip_command, psql, path_sep, \n"
+"                   loader, environ_set_command, county_process_command)\n"
+"SELECT 'debbie', declare_sect, pgbin, wget, unzip_command, psql, path_sep, \n"
+"           loader, environ_set_command, county_process_command\n"
+"  FROM tiger.loader_platform\n"
+"  WHERE os = 'sh';"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:929
+#, no-c-format
+msgid ""
+"And then edit the paths in the <emphasis>declare_sect</emphasis> column to "
+"those that fit Debbie's pg, unzip,shp2pgsql, psql, etc path locations."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:931
+#, no-c-format
+msgid ""
+"If you don't edit this <varname>loader_platform</varname> table, it will "
+"just contain common case locations of items and you'll have to edit the "
+"generated script after the script is generated."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:933
+#, no-c-format
+msgid ""
+"Then run the <xref linkend=\"Loader_Generate_Nation_Script\"/> and <xref "
+"linkend=\"Loader_Generate_Script\"/> SQL functions make sure to use the name "
+"of your custom profile. So for example to do the nation load using our new "
+"profile we would:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:934
+#, fuzzy, no-c-format
+msgid "SELECT Loader_Generate_Nation_Script('debbie');"
+msgstr "SELECT loader_generate_nation_script('sh');"
+
+#. Tag: title
+#: installation.xml:937
+#, no-c-format
+msgid "Converting a Tiger Geocoder Regular Install to Extension Model"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:938
+#, no-c-format
+msgid ""
+"If you installed the tiger geocoder without using the extension model, you "
+"can convert to the extension model as follows:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:940
+#, no-c-format
+msgid ""
+"Follow instructions in <xref linkend=\"upgrade_tiger_geocoder\"/> for the "
+"non-extension model upgrade."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:941
+#, no-c-format
+msgid ""
+"Connect to your database with psql or pgAdmin and run the following command:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:942
+#, fuzzy, no-c-format
+msgid "CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+"CREATE EXTENSION postgis FROM unpackaged;\n"
+"CREATE EXTENSION postgis_topology FROM unpackaged;"
+
+#. Tag: title
+#: installation.xml:949
+#, fuzzy, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Not Using Extensions"
+msgstr "Activation du Géocodeur TIger dans votre base de données PostGIS"
+
+#. Tag: para
+#: installation.xml:950
+#, no-c-format
+msgid "First install PostGIS using the prior instructions."
+msgstr "D'abord installez PostGIS en utilisant les instructions précédentes."
+
+#. Tag: para
+#: installation.xml:954 installation.xml:1014
+#, fuzzy, no-c-format
+msgid ""
+"If you don't have an extras folder, download <ulink url="
+"\"&postgis_download_url;\">&postgis_download_url;</ulink>"
+msgstr ""
+"Si vous n'avez pas de répertoire extras, télécharger <ulink url=\"http://www."
+"postgis.org/download/postgis-&last_release_version;.tar.gz\">http://www."
+"postgis.org/download/postgis-&last_release_version;.tar.gz</ulink>"
+
+#. Tag: command
+#: installation.xml:959 installation.xml:1019
+#, no-c-format
+msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgstr "tar xvfz postgis-&last_release_version;.tar.gz"
+
+#. Tag: command
+#: installation.xml:963 installation.xml:1023
+#, no-c-format
+msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgstr "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+
+#. Tag: para
+#: installation.xml:966
+#, no-c-format
+msgid ""
+"Edit the <filename>tiger_loader_2012.sql</filename> to the paths of your "
+"executables server etc or alternatively you can update the "
+"<varname>loader_platform</varname> table once installed. If you don't edit "
+"this file or the <varname>loader_platform</varname> table, it will just "
+"contain common case locations of items and you'll have to edit the generated "
+"script after the fact when you run the <xref linkend="
+"\"Loader_Generate_Nation_Script\"/> and <xref linkend="
+"\"Loader_Generate_Script\"/> SQL functions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:968
+#, fuzzy, no-c-format
+msgid ""
+"If you are installing Tiger geocoder for the first time edit either the "
+"<filename>create_geocode.bat</filename> script If you are on windows or the "
+"<filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with "
+"your PostgreSQL specific settings and run the corresponding script from the "
+"commandline."
+msgstr ""
+"Localisez le script <filename>upgrade_geocoder.bat</filename> si vous êtes "
+"sous windows ou  <filename>upgrade_geocoder.sh</filename> si vous êtes sous "
+"Linux/Unix/Mac OSX. Éditez le fichier pour avoir vos droits d'accès à la "
+"base de données postgis et lancez alors le script correspondant à partir de "
+"la ligne de commande."
+
+#. Tag: para
+#: installation.xml:972
+#, no-c-format
+msgid ""
+"Verify that you now have a <varname>tiger</varname> schema in your database "
+"and that it is part of your database search_path. If it is not, add it with "
+"a command something along the line of:"
+msgstr ""
+"Vérifiez que vous avez maintenant un schéma <varname>tiger</varname>  dans "
+"votre base de données et qu'il fait partie de votre search_path. Si ce n'est "
+"pas le cas, ajoutez le avec une commande qui s'apparente à celle-ci :"
+
+#. Tag: programlisting
+#: installation.xml:972
+#, no-c-format
+msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
+msgstr "ALTER DATABASE geocoder SET search_path=public, tiger;"
+
+#. Tag: para
+#: installation.xml:973
+#, no-c-format
+msgid ""
+"The normalizing address functionality works more or less without any data "
+"except for tricky addresses. Run this test and verify things look like this:"
+msgstr ""
+"La fonctionnalité de normalisation des adresses fonctionne plus ou moins "
+"sans données, sauf les adresses un peu complexe. Lancez ce test et vérifiez "
+"que les choses ressemblent à cela :"
+
+#. Tag: programlisting
+#: installation.xml:974
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"pretty_address\n"
+"---------------------------------------\n"
+"202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"pretty_address\n"
+"---------------------------------------\n"
+"202 E Fremont St, Las Vegas, NV 89101"
+
+#. Tag: title
+#: installation.xml:977
+#, no-c-format
+msgid "Using Address Standardizer Extension with Tiger geocoder"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:978
+#, no-c-format
+msgid ""
+"One of the many complaints of folks is the address normalizer function <xref "
+"linkend=\"Normalize_Address\"/> function that normalizes an address for "
+"prepping before geocoding. The normalizer is far from perfect and trying to "
+"patch its imperfectness takes a vast amount of resources. As such we have "
+"integrated with another project that has a much better address standardizer "
+"engine. To use this new address_standardizer, you compile the extension as "
+"described in <xref linkend=\"installing_pagc_address_standardizer\"/> and "
+"install as an extension in your database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:981
+#, no-c-format
+msgid ""
+"Once you install this extension in the same database as you have installed "
+"<code>postgis_tiger_geocoder</code>, then the <xref linkend="
+"\"Pagc_Normalize_Address\"/> can be used instead of <xref linkend="
+"\"Normalize_Address\"/>. This extension is tiger agnostic, so can be used "
+"with other data sources such as international addresses. The tiger geocoder "
+"extension does come packaged with its own custom versions of <xref linkend="
+"\"rulestab\"/> ( <code>tiger.pagc_rules</code>) , <xref linkend=\"gaztab\"/> "
+"(<code>tiger.pagc_gaz</code>), and <xref linkend=\"lextab\"/> (<code>tiger."
+"pagc_lex</code>). These you can add and update to improve your standardizing "
+"experience for your own needs."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:984
+#, no-c-format
+msgid "Loading Tiger Data"
+msgstr "Chargement des données Tiger"
+
+#. Tag: para
+#: installation.xml:985
+#, no-c-format
+msgid ""
+"The instructions for loading data are available in a more detailed form in "
+"the <filename>extras/tiger_geocoder/tiger_2011/README</filename>. This just "
+"includes the general steps."
+msgstr ""
+"Les instructions pour charger les données sont disponibles sous forme plus "
+"détaillée dans <filename>extras/tiger_geocoder/tiger_2011/README</filename>. "
+"Ce chapitre indique juste les étapes générales."
+
+#. Tag: para
+#: installation.xml:986
+#, no-c-format
+msgid ""
+"The load process downloads data from the census website for the respective "
+"nation files, states requested, extracts the files, and then loads each "
+"state into its own separate set of state tables. Each state table inherits "
+"from the tables defined in <varname>tiger</varname> schema so that its "
+"sufficient to just query those tables to access all the data and drop a set "
+"of state tables at any time using the <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/> if you need to reload a state or "
+"just don't need a state anymore."
+msgstr ""
+"Le processus de chargement télécharge les données du site web census pour "
+"respectivement les fichiers nation, état demandé, extrait les fichiers, puis "
+"charge chaque état dans son ensemble de tables état. Chaque table state "
+"hérite de la table définie dans le schéma <varname>tiger</varname>, il est "
+"suffisant d'interroger ces tables pour accéder à toutes les données et "
+"supprimer un ensemble de table state n'importe quand en utilisant <xref "
+"linkend=\"Drop_State_Tables_Generate_Script\"/> si vous devez recharger un "
+"état ou si vous en avez plus besoin."
+
+#. Tag: para
+#: installation.xml:988
+#, no-c-format
+msgid "In order to be able to load data you'll need the following tools:"
+msgstr ""
+"Dans l'objectif de charger des données vous avez besoin des outils suivants :"
+
+#. Tag: para
+#: installation.xml:990
+#, no-c-format
+msgid "A tool to unzip the zip files from census website."
+msgstr "Un outils pour décompresser les fichiers zip du site web census."
+
+#. Tag: para
+#: installation.xml:991
+#, no-c-format
+msgid ""
+"For Unix like systems: <varname>unzip</varname> executable which is usually "
+"already installed on most Unix like platforms."
+msgstr ""
+"Pour les systèmes Unix-like : un exécutable <varname>unzip</varname> qui est "
+"habituellement installé sur la plupart des plateformes Unix-like."
+
+#. Tag: para
+#: installation.xml:992
+#, no-c-format
+msgid ""
+"For Windows, 7-zip which is a free compress/uncompress tool you can download "
+"from <ulink url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink>"
+msgstr ""
+"Pour Windows, 7-zip qui est un outils de compression/décompression libre, "
+"vous pouvez le récupérer à partir de <ulink url=\"http://www.7-zip.org/"
+"\">http://www.7-zip.org/</ulink>"
+
+#. Tag: para
+#: installation.xml:994
+#, no-c-format
+msgid ""
+"<filename>shp2pgsql</filename> commandline which is installed by default "
+"when you install PostGIS."
+msgstr ""
+"La commande <filename>shp2pgsql</filename> qui est installé par défaut quand "
+"vous installez PostGIS."
+
+#. Tag: para
+#: installation.xml:995
+#, no-c-format
+msgid ""
+"<filename>wget</filename> which is a web grabber tool usually installed on "
+"most Unix/Linux systems."
+msgstr ""
+"<filename>wget</filename> qui est un outil de récupération de lien "
+"habituellement installé sur les systèmes Unix/Linux."
+
+#. Tag: para
+#: installation.xml:996
+#, no-c-format
+msgid ""
+"If you are on windows, you can get pre-compiled binaries from <ulink url="
+"\"http://gnuwin32.sourceforge.net/packages/wget.htm\">http://gnuwin32."
+"sourceforge.net/packages/wget.htm</ulink>"
+msgstr ""
+"Si vous êtes sous Windows, vous pouvez obtenir des binaires pré-compilés à "
+"partir de <ulink url=\"http://gnuwin32.sourceforge.net/packages/wget.htm"
+"\">http://gnuwin32.sourceforge.net/packages/wget.htm</ulink>"
+
+#. Tag: para
+#: installation.xml:999
+#, fuzzy, no-c-format
+msgid ""
+"If you are upgrading from tiger_2010, you'll need to first generate and run "
+"<xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>. Before you load any "
+"state data, you need to load the nation wide data which you do with <xref "
+"linkend=\"Loader_Generate_Nation_Script\"/>. Which will generate a loader "
+"script for you. <xref linkend=\"Loader_Generate_Nation_Script\"/> is a one-"
+"time step that should be done for upgrading (from 2010) and for new installs."
+msgstr ""
+"Si vous mettez à jour à partir de tiger_2010, vous aurez besoin d'abord de "
+"générer et lancer <xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>.  "
+"Avant de charger des données state, vous devez charger les données des états "
+"ce qui est fait avec <xref linkend=\"Loader_Generate_Nation_Script\"/>. Ce "
+"qui générera un script de chargement pour vous."
+
+#. Tag: para
+#: installation.xml:1001
+#, fuzzy, no-c-format
+msgid ""
+"To load state data refer to <xref linkend=\"Loader_Generate_Script\"/> to "
+"generate a data load script for your platform for the states you desire. "
+"Note that you can install these piecemeal. You don't have to load all the "
+"states you want all at once. You can load them as you need them."
+msgstr ""
+"Pour charger des données référez vous à <xref linkend="
+"\"Loader_Generate_Script\"/> pour générer un script de chargement de données "
+"pour votre plateforme pour les états que vous désirez. Notez que vous pouvez "
+"installer ceci au coup par coup. Vous n'avez pas besoin de charger tous les "
+"états que vous désirez en une fois. Vous pouvez les charger quand vous en "
+"avez besoin."
+
+#. Tag: para
+#: installation.xml:1004
+#, no-c-format
+msgid ""
+"After the states you desire have been loaded, make sure to run the: "
+"<programlisting>SELECT install_missing_indexes();</programlisting> as "
+"described in <xref linkend=\"Install_Missing_Indexes\"/>."
+msgstr ""
+"Après que les états que vous désirez aient été chargé, assurez vous de "
+"lancer la commande : <programlisting>SELECT install_missing_indexes();</"
+"programlisting> comme décrit dans <xref linkend=\"Install_Missing_Indexes\"/"
+">."
+
+#. Tag: para
+#: installation.xml:1006
+#, no-c-format
+msgid ""
+"To test that things are working as they should, try to run a geocode on an "
+"address in your state using <xref linkend=\"Geocode\"/>"
+msgstr ""
+"Pour tester que les choses fonctionnent comme elles le devraient, essayez de "
+"lancer un géocodage sur une adresse de votre état en utilisant <xref linkend="
+"\"Geocode\"/>"
+
+#. Tag: title
+#: installation.xml:1009
+#, no-c-format
+msgid "Upgrading your Tiger Geocoder Install"
+msgstr "Mise à jour de l'installation du Géocodeur Tiger"
+
+#. Tag: para
+#: installation.xml:1010
+#, fuzzy, no-c-format
+msgid ""
+"If you have Tiger Geocoder packaged with 2.0+ already installed, you can "
+"upgrade the functions at any time even from an interim tar ball if there are "
+"fixes you badly need. This will only work for Tiger geocoder not installed "
+"with extensions."
+msgstr ""
+"Si vous avez déjà le package Géocodeur Tiger dans PostGIS 2.0 et supérieur "
+"déjà installé, vous pouvez mettre à jour les fonctions à n'importe quel "
+"moment même d'un tar ball intermédiaire s'il y a des corrections nécessaires."
+
+#. Tag: para
+#: installation.xml:1026
+#, fuzzy, no-c-format
+msgid ""
+"Locate the <filename>upgrade_geocoder.bat</filename> script If you are on "
+"windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/"
+"Unix/Mac OSX. Edit the file to have your postgis database credentials."
+msgstr ""
+"Localisez le script <filename>upgrade_geocoder.bat</filename> si vous êtes "
+"sous windows ou  <filename>upgrade_geocoder.sh</filename> si vous êtes sous "
+"Linux/Unix/Mac OSX. Éditez le fichier pour avoir vos droits d'accès à la "
+"base de données postgis et lancez alors le script correspondant à partir de "
+"la ligne de commande."
+
+#. Tag: para
+#: installation.xml:1029
+#, no-c-format
+msgid ""
+"If you are upgrading from 2010 or 2011, make sure to unremark out the loader "
+"script line so you get the latest script for loading 2012 data."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1030
+#, no-c-format
+msgid "Then run th corresponding script from the commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1034
+#, no-c-format
+msgid ""
+"Next drop all nation tables and load up the new ones. Generate a drop script "
+"with this SQL statement as detailed in <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/>"
+msgstr ""
+"Puis supprimez toutes les tables nation et chargez les nouvelles. Générez un "
+"script de suppression avec la requête SQL comme détaillée dans <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/>"
+
+#. Tag: programlisting
+#: installation.xml:1035
+#, no-c-format
+msgid "SELECT drop_nation_tables_generate_script();"
+msgstr "SELECT drop_nation_tables_generate_script();"
+
+#. Tag: para
+#: installation.xml:1036
+#, no-c-format
+msgid "Run the generated drop SQL statements."
+msgstr "Lancement des requêtes SQL de suppression générées."
+
+#. Tag: para
+#: installation.xml:1037
+#, no-c-format
+msgid ""
+"Generate a nation load script with this SELECT statement as detailed in "
+"<xref linkend=\"Loader_Generate_Nation_Script\"/>"
+msgstr ""
+"Générez un script de chargement des pays avec la requête SELECT comme "
+"détaillé dans <xref linkend=\"Loader_Generate_Nation_Script\"/>"
+
+#. Tag: emphasis
+#: installation.xml:1038
+#, no-c-format
+msgid "For windows"
+msgstr "Pour windows"
+
+#. Tag: programlisting
+#: installation.xml:1039
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr "SELECT loader_generate_nation_script('windows');"
+
+#. Tag: emphasis
+#: installation.xml:1040
+#, no-c-format
+msgid "For unix/linux"
+msgstr "Pour unix/linux"
+
+#. Tag: programlisting
+#: installation.xml:1041
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr "SELECT loader_generate_nation_script('sh');"
+
+#. Tag: para
+#: installation.xml:1042
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on "
+"how to run the generate script. This only needs to be done once."
+msgstr ""
+"Référez vous à <xref linkend=\"tiger_geocoder_loading_data\"/> pour les "
+"instructions sur la manière de lancer le script généré. Cela doit être fait "
+"qu'une fois."
+
+#. Tag: para
+#: installation.xml:1043
+#, no-c-format
+msgid ""
+"You can have a mix of 2010/2011 state tables and can upgrade each state "
+"separately. Before you upgrade a state to 2011, you first need to drop the "
+"2010 tables for that state using <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/>."
+msgstr ""
+"Vous pouvez avoir un mélange de tables d'état 2010/2011 et vous pouvez "
+"mettre à jour chaque état séparément. Avant la mise à jour d'un état vers "
+"2011, vous devez d'abord supprimer les tables 2010 pour chaque état avec "
+"<xref linkend=\"Drop_State_Tables_Generate_Script\"/>."
+
+#. Tag: title
+#: installation.xml:1049
+#, no-c-format
+msgid "Create a spatially-enabled database from a template"
+msgstr "Créer une base de données spatiale à partir d'un modèle"
+
+#. Tag: para
+#: installation.xml:1051
+#, no-c-format
+msgid ""
+"Some packaged distributions of PostGIS (in particular the Win32 installers "
+"for PostGIS >= 1.1.5) load the PostGIS functions into a template database "
+"called <varname>template_postgis</varname>. If the "
+"<varname>template_postgis</varname> database exists in your PostgreSQL "
+"installation then it is possible for users and/or applications to create "
+"spatially-enabled databases using a single command. Note that in both cases, "
+"the database user must have been granted the privilege to create new "
+"databases."
+msgstr ""
+"Certaines distributions packagées de PostGIS (en particulier les installeurs "
+"Wins32 pour PostGIS >= 1.1.5) charge les fonctions PostGIS dans une base "
+"modèle appelée <varname>template_postgis</varname>. Si la base "
+"<varname>template_postgis</varname>  existe dans votre installation "
+"PostgreSQL alors il est possible que les utilisateurs et les applications de "
+"créer des bases de données spatiales en utilisant une simple commande. Notez "
+"que dans les deux cas, l'utilisateur de la base de données doit avoir des "
+"privilèges de création de nouvelles bases."
+
+#. Tag: para
+#: installation.xml:1062
+#, no-c-format
+msgid "From the shell:"
+msgstr "À partir de la console :"
+
+#. Tag: programlisting
+#: installation.xml:1066
+#, no-c-format
+msgid "# createdb -T template_postgis my_spatial_db"
+msgstr "# createdb -T template_postgis my_spatial_db"
+
+#. Tag: para
+#: installation.xml:1068
+#, no-c-format
+msgid "From SQL:"
+msgstr "À partir du SQL :"
+
+#. Tag: programlisting
+#: installation.xml:1072
+#, no-c-format
+msgid "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
+msgstr "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
+
+#. Tag: title
+#: installation.xml:1076
+#, no-c-format
+msgid "Upgrading"
+msgstr "Mise à jour"
+
+#. Tag: para
+#: installation.xml:1078
+#, no-c-format
+msgid ""
+"Upgrading existing spatial databases can be tricky as it requires "
+"replacement or introduction of new PostGIS object definitions."
+msgstr ""
+"La mise à jour de bases de données spatiales existant peut être complexe "
+"puisqu'elle nécessite le remplacement ou l'introduction de nouvelles "
+"définitions d'objet PostGIS."
+
+#. Tag: para
+#: installation.xml:1083
+#, no-c-format
+msgid ""
+"Unfortunately not all definitions can be easily replaced in a live database, "
+"so sometimes your best bet is a dump/reload process."
+msgstr ""
+"Malheureusement seules certaines définitions peuvent être remplacées dans "
+"une base en cours d'utilisation, parfois votre meilleure stratégie est la "
+"procédure d'export/import."
+
+#. Tag: para
+#: installation.xml:1088
+#, no-c-format
+msgid ""
+"PostGIS provides a SOFT UPGRADE procedure for minor or bugfix releases, and "
+"a HARD UPGRADE procedure for major releases."
+msgstr ""
+"PostGIS fourni une procédure de mise à jour mineure pour les releases "
+"mineures ou de correction de bug et une procédure de mise à jour majeure "
+"pour les releases mpajeures."
+
+#. Tag: para
+#: installation.xml:1093
+#, no-c-format
+msgid ""
+"Before attempting to upgrade PostGIS, it is always worth to backup your "
+"data. If you use the -Fc flag to pg_dump you will always be able to restore "
+"the dump with a HARD UPGRADE."
+msgstr ""
+"Avant de tenter la mise à jour de PostGIS, cela vaut toujours le coup de "
+"sauvegarder vos données. Si vous utilisez l'option -Fc à pg_dump vous aurez "
+"toujours la possibilité de restaurer le dump avec une mise à jour majeure."
+
+#. Tag: title
+#: installation.xml:1100
+#, no-c-format
+msgid "Soft upgrade"
+msgstr "Mise à jour mineure"
+
+#. Tag: para
+#: installation.xml:1102
+#, no-c-format
+msgid ""
+"If you installed your database using extensions, you'll need to upgrade "
+"using the extension model as well. If you installed using the old sql script "
+"way, then you should upgrade using the sql script way. Please refer to the "
+"appropriate."
+msgstr ""
+"Si vous avez installé votre base de données en utilisant les extensions, "
+"vous devrez mettre à jour le modèle d'extension également. Si vous l'avez "
+"installé en utilisant l'ancienne méthode du script, alors vous devez mettre "
+"à jour en utilisant la méthode du script. Référez vous à la méthode "
+"appropriée."
+
+#. Tag: title
+#: installation.xml:1105
+#, no-c-format
+msgid "Soft Upgrade Pre 9.1+ or without extensions"
+msgstr "Mise à jour mineure avant la 9.1 ou sans les extensions"
+
+#. Tag: para
+#: installation.xml:1106
+#, no-c-format
+msgid ""
+"This section applies only to those who installed PostGIS not using "
+"extensions. If you have extensions and try to upgrade with this approach "
+"you'll get messages like:"
+msgstr ""
+"Cette section s'applique seulement à ceux qui ont installé PostGIS sans "
+"utiliser les extensions. Si vous avez les extensions et tentez de mettre à "
+"jour avec cette approche vous obtiendrez des messages comme :"
+
+#. Tag: programlisting
+#: installation.xml:1107
+#, no-c-format
+msgid "can't drop ... because postgis extension depends on it"
+msgstr "can't drop ... because postgis extension depends on it"
+
+#. Tag: para
+#: installation.xml:1108
+#, fuzzy, no-c-format
+msgid ""
+"After compiling and installing (make install) you should find a "
+"<filename>postgis_upgrade.sql</filename> and <filename>rtpostgis_upgrade."
+"sql</filename> in the installation folders. For example <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. Install the "
+"<filename>postgis_upgrade.sql</filename>. If you have raster functionality "
+"installed, you will also need to install the <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. If you are moving "
+"from PostGIS 1.* to PostGIS 2.* or from PostGIS 2.* prior to r7409, you need "
+"to do a HARD UPGRADE."
+msgstr ""
+"Après l'avoir compilé vous devrez trouvez plusieurs fichiers "
+"<filename>postgis_upgrade*.sql</filename>. installer celui pour votre "
+"version de PostGIS. Par exemple <filename>postgis_upgrade_13_to_15.sql</"
+"filename>  doit être utilisé si vous mettez à jour à partir de la 1.3 vers "
+"la 1.5. Si vous migrez de PostGIS 1.* vers PostGIS 2.* avant la révision "
+"r7409, vous devez faire une mise à jour majeure."
+
+#. Tag: programlisting
+#: installation.xml:1112
+#, fuzzy, no-c-format
+msgid "psql -f postgis_upgrade.sql -d your_spatial_database"
+msgstr "psql -f postgis_upgrade_20_minor.sql -d your_spatial_database"
+
+#. Tag: para
+#: installation.xml:1114
+#, no-c-format
+msgid ""
+"The same procedure applies to raster and topology extensions, with upgrade "
+"files named <filename>rtpostgis_upgrade*.sql</filename> and "
+"<filename>topology_upgrade*.sql</filename> respectively. If you need them:"
+msgstr ""
+"La même procédure s'applique aux extensions raster et topologie avec les "
+"fichiers de mises à jour nommés respectivement : "
+"<filename>rtpostgis_upgrade*.sql</filename> et <filename>topology_upgrade*."
+"sql</filename>. Si vous en avez besoin :"
+
+#. Tag: programlisting
+#: installation.xml:1122
+#, fuzzy, no-c-format
+msgid "psql -f rtpostgis_upgrade.sql -d your_spatial_database"
+msgstr "psql -f rtpostgis_upgrade_20_minor.sql -d your_spatial_database"
+
+#. Tag: programlisting
+#: installation.xml:1123
+#, fuzzy, no-c-format
+msgid "psql -f topology_upgrade.sql -d your_spatial_database"
+msgstr "psql -f topology_upgrade_20_minor.sql -d your_spatial_database"
+
+#. Tag: para
+#: installation.xml:1126
+#, no-c-format
+msgid ""
+"If you can't find the <filename>postgis_upgrade*.sql</filename> specific for "
+"upgrading your version you are using a version too early for a soft upgrade "
+"and need to do a HARD UPGRADE."
+msgstr ""
+"Si vous ne pouvez pas trouver de version spécifique de "
+"<filename>postgis_upgrade*.sql</filename> pour mettre à jour votre version, "
+"vous utilisez une version trop vielle pour une mise à jour mineure et devez "
+"faire une mise à jour majeure."
+
+#. Tag: para
+#: installation.xml:1132
+#, no-c-format
+msgid ""
+"The <xref linkend=\"PostGIS_Full_Version\"/> function should inform you "
+"about the need to run this kind of upgrade using a \"procs need upgrade\" "
+"message."
+msgstr ""
+"La fonction <xref linkend=\"PostGIS_Full_Version\"/> doit vous informer sur "
+"le besoin de faire ce genre de mise à jour  en utilisant le message \"procs "
+"need upgrade\"."
+
+#. Tag: title
+#: installation.xml:1139
+#, no-c-format
+msgid "Soft Upgrade 9.1+ using extensions"
+msgstr "Mise à jour mineure 9.1 et supérieure en utilisant les extensions"
+
+#. Tag: para
+#: installation.xml:1140
+#, no-c-format
+msgid ""
+"If you originally installed PostGIS with extensions, then you need to "
+"upgrade using extensions as well. Doing a minor upgrade with extensions, is "
+"fairly painless."
+msgstr ""
+"Si vous avez à l'origine installé PostGIS avec les extensions, alors vous "
+"devez faire la mise à jour en utilisant les extensions également. Réaliser "
+"une mise à jour mineure avec les extensions est sans difficulté."
+
+#. Tag: programlisting
+#: installation.xml:1141
+#, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;\";"
+msgstr ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;\";"
+
+#. Tag: para
+#: installation.xml:1142
+#, no-c-format
+msgid "If you get an error notice something like:"
+msgstr "Si vous obtenez un rapport d'erreur similaire à celui-ci: "
+
+#. Tag: programlisting
+#: installation.xml:1143
+#, no-c-format
+msgid "No migration path defined for ... to &last_release_version;"
+msgstr "No migration path defined for ... to &last_release_version;"
+
+#. Tag: para
+#: installation.xml:1144
+#, fuzzy, no-c-format
+msgid ""
+"Then you'll need to backup your database, create a fresh one as described in "
+"<xref linkend=\"create_new_db_extensions\"/> and then restore your backup "
+"ontop of this new database."
+msgstr ""
+"Puis vous devez sauvegarder votre base de données, créer une nouvelle comme "
+"décrit dans <xref linkend=\"create_new_db_extensions\"/> puis restaurer "
+"votre sauvegarde dans cette nouvelle base. Vous pouvez obtenir un message "
+"qui vous informe que <code>postgis extension</code> est déjà installé ce qui "
+"peut être ignoré sans problème."
+
+#. Tag: para
+#: installation.xml:1145
+#, fuzzy, no-c-format
+msgid "If you get a notice message like:"
+msgstr "Si vous obtenez un rapport d'erreur similaire à celui-ci: "
+
+#. Tag: programlisting
+#: installation.xml:1146
+#, no-c-format
+msgid ""
+"Version \"&last_release_version;\" of extension \"postgis\" is already "
+"installed"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1147
+#, no-c-format
+msgid ""
+"Then everything is already up to date and you can safely ignore it. "
+"<emphasis role=\"bold\">UNLESS</emphasis> you're attempting to upgrade from "
+"an SVN version to the next (which doesn't get a new version number); in that "
+"case you can append \"next\" to the version string, and next time you'll "
+"need to drop the \"next\" suffix again:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1153
+#, fuzzy, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;next\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;next\";"
+msgstr ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;\";"
+
+#. Tag: para
+#: installation.xml:1154
+#, fuzzy, no-c-format
+msgid ""
+"If you installed PostGIS originally without a version specified, you can "
+"often skip the reinstallation of postgis extension before restoring since "
+"the backup just has <code>CREATE EXTENSION postgis</code> and thus picks up "
+"the newest latest version during restore."
+msgstr ""
+"Si vous avez à l'origine installé PostGIS sans spécifié de version, vous "
+"pouvez souvent sauter la réinstallation de l'extension de PostGIS  avant la "
+"restauration puisque la sauvegarde a déjà la requête <code>CREATE EXTENSION "
+"postgis</code> et donc récupérera la dernière version durant la restauration."
+
+#. Tag: title
+#: installation.xml:1161
+#, no-c-format
+msgid "Hard upgrade"
+msgstr "Mise à jour majeure"
+
+#. Tag: para
+#: installation.xml:1163
+#, no-c-format
+msgid ""
+"By HARD UPGRADE we mean full dump/reload of postgis-enabled databases. You "
+"need a HARD UPGRADE when PostGIS objects' internal storage changes or when "
+"SOFT UPGRADE is not possible. The <link linkend=\"release_notes\">Release "
+"Notes</link> appendix reports for each version whether you need a dump/"
+"reload (HARD UPGRADE) to upgrade."
+msgstr ""
+"Par mise à jour majeure nous voulons dire export/import complet des bases "
+"PostGIS. Vous devez faire une mise à jour majeure lorsque le stockage "
+"interne des objets PostGIS change ou quand la mise à jour mineure n'est pas "
+"possible. L'annexe des <link linkend=\"release_notes\">Release Notes</link> "
+"pour chaque version indique si vous avez besoin d'un export/import (mise à "
+"jour majeure) pour la mise à jour."
+
+#. Tag: para
+#: installation.xml:1172
+#, no-c-format
+msgid ""
+"The dump/reload process is assisted by the postgis_restore.pl script which "
+"takes care of skipping from the dump all definitions which belong to PostGIS "
+"(including old ones), allowing you to restore your schemas and data into a "
+"database with PostGIS installed without getting duplicate symbol errors or "
+"bringing forward deprecated objects."
+msgstr ""
+"Le processus d'export/import est assisté par le script postgis_restore.pl "
+"qui s'assure de sauter dans le dump toutes les définitions qui appartiennent "
+"à PostGIS (dont les anciennes) vous permettant de restaurer vos schémas et "
+"données dans une base avec PostGIS installé sans avoir des erreurs de "
+"symboles dupliquées ou rapporter des objets dépréciés."
+
+#. Tag: para
+#: installation.xml:1181
+#, no-c-format
+msgid ""
+"Supplementary instructions for windows users are available at <ulink url="
+"\"http://trac.osgeo.org/postgis/wiki/UsersWikiWinUpgrade\">Windows Hard "
+"upgrade</ulink>."
+msgstr ""
+"Des instructions supplémentaires pour les utilisateurs de Windows sont "
+"disponibles sur <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiWinUpgrade\">Mise à jour majeure pour Windows</ulink>."
+
+#. Tag: para
+#: installation.xml:1184
+#, no-c-format
+msgid "The Procedure is as follows:"
+msgstr "La procédure est la suivante :"
+
+#. Tag: para
+#: installation.xml:1192
+#, no-c-format
+msgid ""
+"Create a \"custom-format\" dump of the database you want to upgrade (let's "
+"call it <varname>olddb</varname>) include binary blobs (-b) and verbose (-v) "
+"output. The user can be the owner of the db, need not be postgres super "
+"account."
+msgstr ""
+"Créer un dump au format personnalisé de la base que vous voulez mettre à "
+"jour (appelons la <varname>olddb</varname>) en incluant les blobs binaire (-"
+"b) et une sortie verbeuse (-v). L'utilisateur peut être le propriétaire de "
+"la base, pas besoin d'être le super-utilisateur postgres."
+
+#. Tag: programlisting
+#: installation.xml:1200
+#, no-c-format
+msgid ""
+"pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb."
+"backup\" olddb"
+msgstr ""
+"pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb."
+"backup\" olddb"
+
+#. Tag: para
+#: installation.xml:1206
+#, no-c-format
+msgid ""
+"Do a fresh install of PostGIS in a new database -- we'll refer to this "
+"database as <varname>newdb</varname>. Please refer to <xref linkend="
+"\"create_new_db\"/> and <xref linkend=\"create_new_db_extensions\"/> for "
+"instructions on how to do this."
+msgstr ""
+"Faîtes une installation fraîche de PostGIS dans une nouvelle base de données "
+"-- nous nous référons à cette base comme <varname>newdb</varname>. Référez "
+"vous s'il vous plaît aux instructions <xref linkend=\"create_new_db\"/> et "
+"<xref linkend=\"create_new_db_extensions\"/> sur comment faire cela."
+
+#. Tag: para
+#: installation.xml:1213
+#, no-c-format
+msgid ""
+"The spatial_ref_sys entries found in your dump will be restored, but they "
+"will not override existing ones in spatial_ref_sys. This is to ensure that "
+"fixes in the official set will be properly propagated to restored databases. "
+"If for any reason you really want your own overrides of standard entries "
+"just don't load the spatial_ref_sys.sql file when creating the new db."
+msgstr ""
+"Les entrées de spatial_ref_sys trouvé dans le dump seront restaurées, mais "
+"ils n'écraseront pas ceux existant dans la table spatial_ref_sys. Cela pour "
+"s'assurer que les corrections dans l'ensemble officiel seront propagées "
+"correctement aux bases restaurées. Si pour une raison ou une autre vous "
+"souhaitez réellement que les vôtres écrasent les entrées standards ne "
+"chargez pas le fichier spatial_ref_sys.sql lors de la création de la "
+"nouvelle base."
+
+#. Tag: para
+#: installation.xml:1223
+#, no-c-format
+msgid ""
+"If your database is really old or you know you've been using long deprecated "
+"functions in your views and functions, you might need to load "
+"<filename>legacy.sql</filename> for all your functions and views etc. to "
+"properly come back. Only do this if _really_ needed. Consider upgrading your "
+"views and functions before dumping instead, if possible. The deprecated "
+"functions can be later removed by loading <filename>uninstall_legacy.sql</"
+"filename>."
+msgstr ""
+"Si votre base de données est vraiment ancienne ou que vous avez utilisé des "
+"fonctions longtemps dépréciées dans vos vues et fonctions, vous pourrez "
+"avoir besoin de charger <filename>legacy.sql</filename> pour que toutes vos "
+"vues et fonctions, etc fonctionnent proprement. Faîtes cela uniquement si "
+"c'est _réellement_ nécessaire. Les fonctions dépréciées peuvent être "
+"supprimé plus tard en chargeant le script "
+
+#. Tag: para
+#: installation.xml:1239
+#, no-c-format
+msgid ""
+"Restore your backup into your fresh <varname>newdb</varname> database using "
+"postgis_restore.pl. Unexpected errors, if any, will be printed to the "
+"standard error stream by psql. Keep a log of those."
+msgstr ""
+"Restaurez votre sauvegarde dans votre nouvelle base de données "
+"<varname>newdb</varname> en utilisant le script postgis_restore.pl. Des "
+"erreurs inattendues seront éventuellement affichées dans le flux standards "
+"d'erreur par psql. Gardez un log de ceux-ci."
+
+#. Tag: programlisting
+#: installation.xml:1247
+#, no-c-format
+msgid ""
+"perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost "
+"-p 5432 -U postgres newdb 2> errors.txt"
+msgstr ""
+"perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost "
+"-p 5432 -U postgres newdb 2> errors.txt"
+
+#. Tag: para
+#: installation.xml:1253
+#, no-c-format
+msgid "Errors may arise in the following cases:"
+msgstr "Des erreurs peuvent arriver dans les cas suivants :"
+
+#. Tag: para
+#: installation.xml:1259
+#, no-c-format
+msgid ""
+"Some of your views or functions make use of deprecated PostGIS objects. In "
+"order to fix this you may try loading <filename>legacy.sql</filename> script "
+"prior to restore or you'll have to restore to a version of PostGIS which "
+"still contains those objects and try a migration again after porting your "
+"code. If the <filename>legacy.sql</filename> way works for you, don't forget "
+"to fix your code to stop using deprecated functions and drop them loading "
+"<filename>uninstall_legacy.sql</filename>."
+msgstr ""
+"Certaines de vos vues ou fonctions utilisent des objets dépréciés de "
+"PostGIS. Dans le but de corriger cela vous pouvez essayer de charger le "
+"script <filename>legacy.sql</filename> avant de restaurer ou de restaurer "
+"une version de PostGIS qui contient toujours ces objets et tenter une "
+"migration après avoir modifié votre code. Si le fichier <filename>legacy."
+"sql</filename> peut fonctionner pour vous, n'oubliez pas de corriger votre "
+"code pour arrêter d'utiliser des fonctions dépréciées et supprimer les en "
+"chargeant le script "
+
+#. Tag: para
+#: installation.xml:1271
+#, no-c-format
+msgid ""
+"Some custom records of spatial_ref_sys in dump file have an invalid SRID "
+"value. Valid SRID values are bigger than 0 and smaller than 999000. Values "
+"in the 999000.999999 range are reserved for internal use while values > "
+"999999 can't be used at all. All your custom records with invalid SRIDs will "
+"be retained, with those > 999999 moved into the reserved range, but the "
+"spatial_ref_sys table would loose a check constraint guarding for that "
+"invariant to hold and possibly also its primary key ( when multiple invalid "
+"SRIDS get converted to the same reserved SRID value )."
+msgstr ""
+"Certains enregistrement de spatial_ref_sys dans le fichier dump ont des "
+"valeurs de SRID invalides. Les valeurs de SRID valides sont supérieures à 0 "
+"et plus petites que 999000. Les valeurs dans le domaine 999000.999999 sont "
+"réservés pour un usage interne tandis que les valeurs > 999999 ne peut pas "
+"être utilisé du tout. Tous vos enregistrements personnalisés avec des SRID "
+"invalides seront gardés, ceux qui sont > 999999 déplacé dans le domaine "
+"réservé, mais la table spatial_ref_sys perdra une contrainte de vérification "
+"pour garder cela cohérent et probablement sa clé primaire (lorsque plusieurs "
+"SRID invalides sont converties à la même valeur réservé pour le SRID)."
+
+#. Tag: para
+#: installation.xml:1285
+#, no-c-format
+msgid ""
+"In order to fix this you should copy your custom SRS to a SRID with a valid "
+"value (maybe in the 910000..910999 range), convert all your tables to the "
+"new srid (see <xref linkend=\"UpdateGeometrySRID\"/>), delete the invalid "
+"entry from spatial_ref_sys and re-construct the check(s) with:"
+msgstr ""
+"Afin de corriger cela, vous pouvez copier vos SRS personnalisés vers un SRID "
+"avec une valeur valide (probablement dans le domaine 910000..910999), "
+"convertissez toutes vos tables vers le nouveau srid (lisez <xref linkend="
+"\"UpdateGeometrySRID\"/>), supprimez les entrées invalides de la table "
+"spatial_ref_sys et reconstruisez la ou les vérification(s) avec :"
+
+#. Tag: programlisting
+#: installation.xml:1292
+#, no-c-format
+msgid ""
+"ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check "
+"(srid > 0 AND srid < 999000 );"
+msgstr ""
+"ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check "
+"(srid > 0 AND srid < 999000 );"
+
+#. Tag: programlisting
+#: installation.xml:1294
+#, no-c-format
+msgid "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
+msgstr "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
+
+#. Tag: title
+#: installation.xml:1305
+#, fuzzy, no-c-format
+msgid "Common Problems during installation"
+msgstr "Problèmes fréquents"
+
+#. Tag: para
+#: installation.xml:1306
+#, no-c-format
+msgid ""
+"There are several things to check when your installation or upgrade doesn't "
+"go as you expected."
+msgstr ""
+"Il y a plusieurs choses à vérifier quand votre installation ou mise à jour "
+"ne va pas dans la direction souhaitée."
+
+#. Tag: para
+#: installation.xml:1313
+#, no-c-format
+msgid ""
+"Check that you have installed PostgreSQL &min_postgres_version; or newer, "
+"and that you are compiling against the same version of the PostgreSQL source "
+"as the version of PostgreSQL that is running. Mix-ups can occur when your "
+"(Linux) distribution has already installed PostgreSQL, or you have otherwise "
+"installed PostgreSQL before and forgotten about it. PostGIS will only work "
+"with PostgreSQL &min_postgres_version; or newer, and strange, unexpected "
+"error messages will result if you use an older version. To check the version "
+"of PostgreSQL which is running, connect to the database using psql and run "
+"this query:"
+msgstr ""
+"Vérifiez que vous avez installé PostgreSQL &min_postgres_version; ou plus "
+"récent et que vous êtes en train de compiler avec la même version du code "
+"source de PostgreSQL que la version qui fonctionne. Un mélange peut arriver "
+"lorsque votre distribution (Linux) a déjà une version de PostgreSQL "
+"installée ou que vous avez oublié que vous avez déjà installée une version. "
+"PostGIS fonctionnera uniquement avec PostgreSQL &min_postgres_version; ou "
+"plus récent, et des messages d'erreurs étranges et inhabituelles en "
+"résultera si vous utilisez une version plus ancienne. Pour vérifier la "
+"version de PostgreSQL qui fonctionne, connectez vous à la base en utilisant "
+"psql et lancez la requête :"
+
+#. Tag: programlisting
+#: installation.xml:1326
+#, no-c-format
+msgid "SELECT version();"
+msgstr "SELECT version();"
+
+#. Tag: para
+#: installation.xml:1328
+#, no-c-format
+msgid ""
+"If you are running an RPM based distribution, you can check for the "
+"existence of pre-installed packages using the <command>rpm</command> command "
+"as follows: <command>rpm -qa | grep postgresql</command>"
+msgstr ""
+"Si vous utilisez une distribution basé sur les RPM, vous pouvez vérifier "
+"l'existence de paquets pré-installés en utilisant la commande <command>rpm</"
+"command> comme suit : <command>rpm -qa | grep postgresql</command>"
+
+#. Tag: para
+#: installation.xml:1336
+#, no-c-format
+msgid ""
+"If your upgrade fails, make sure you are restoring into a database that "
+"already has PostGIS installed."
+msgstr ""
+"Si votre mise à jour plante, assurez vous de la présence de PostGIS dans la "
+"nouvelle base de données."
+
+#. Tag: programlisting
+#: installation.xml:1337
+#, no-c-format
+msgid "SELECT postgis_full_version();"
+msgstr "SELECT postgis_full_version();"
+
+#. Tag: para
+#: installation.xml:1341
+#, no-c-format
+msgid ""
+"Also check that configure has correctly detected the location and version of "
+"PostgreSQL, the Proj4 library and the GEOS library."
+msgstr ""
+"Vérifiez également que le script configure a correctement détecté la "
+"localisation et la version de PostgreSQL, la bibliothèque Proj.4 et GEOS."
+
+#. Tag: para
+#: installation.xml:1348
+#, no-c-format
+msgid ""
+"The output from configure is used to generate the <filename>postgis_config."
+"h</filename> file. Check that the <varname>POSTGIS_PGSQL_VERSION</varname>, "
+"<varname>POSTGIS_PROJ_VERSION</varname> and <varname>POSTGIS_GEOS_VERSION</"
+"varname> variables have been set correctly."
+msgstr ""
+"La sortie du configure est utilisée pour générer le fichier "
+"<filename>postgis_config.h</filename>. Vérifiez que les variables "
+"<varname>POSTGIS_PGSQL_VERSION</varname>, <varname>POSTGIS_PROJ_VERSION</"
+"varname> et <varname>POSTGIS_GEOS_VERSION</varname> ont été définies "
+"correctement."
+
+#. Tag: title
+#: installation.xml:1361
+#, no-c-format
+msgid "JDBC"
+msgstr "JDBC"
+
+#. Tag: para
+#: installation.xml:1363
+#, no-c-format
+msgid ""
+"The JDBC extensions provide Java objects corresponding to the internal "
+"PostGIS types. These objects can be used to write Java clients which query "
+"the PostGIS database and draw or do calculations on the GIS data in PostGIS."
+msgstr ""
+"L'extension JDBC permet de disposer d'objets Java correspondants aux types "
+"de données PostGIS. Ces objets peuvent être utilisés pour créer des "
+"applications Java interrogeant une base de données PostGIS ou effectuer des "
+"calculs à partir des des données SIG."
+
+#. Tag: para
+#: installation.xml:1372
+#, no-c-format
+msgid ""
+"Enter the <filename>java/jdbc</filename> sub-directory of the PostGIS "
+"distribution."
+msgstr ""
+"Entrez le <filename>java/jdbc</filename> sous-répertoire de votre "
+"distribution PostGIS."
+
+#. Tag: para
+#: installation.xml:1379
+#, no-c-format
+msgid ""
+"Run the <filename>ant</filename> command. Copy the <filename>postgis.jar</"
+"filename> file to wherever you keep your java libraries."
+msgstr ""
+"Lancez la commande <filename>ant</filename>. Copiez le fichier "
+"<filename>postgis.jar</filename> là où vous gardez vos bibliothèques java."
+
+#. Tag: para
+#: installation.xml:1387
+#, no-c-format
+msgid ""
+"The JDBC extensions require a PostgreSQL JDBC driver to be present in the "
+"current CLASSPATH during the build process. If the PostgreSQL JDBC driver is "
+"located elsewhere, you may pass the location of the JDBC driver JAR "
+"separately using the -D parameter like this:"
+msgstr ""
+"Les extensions jdbc nécessite la présence d'un pilote JDBC de PostgreSQL "
+"dans le CLASSPATH en cours pendant la phase de compilation. Si le pilote "
+"JDBC de PostgreSQL est localisé autre part vous pouvez passer la "
+"localisation du JAR du pilote JDBC séparément en utilisant le paramètre -D "
+"comme :"
+
+#. Tag: programlisting
+#: installation.xml:1394
+#, no-c-format
+msgid "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
+msgstr "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
+
+#. Tag: para
+#: installation.xml:1396
+#, no-c-format
+msgid ""
+"PostgreSQL JDBC drivers can be downloaded from <ulink url=\"http://jdbc."
+"postgresql.org\"> http://jdbc.postgresql.org </ulink> ."
+msgstr "Les pilotes JDBC de PostgreSQL peuvent être téléchargé à partir de "
+
+#. Tag: title
+#: installation.xml:1406
+#, no-c-format
+msgid "Loader/Dumper"
+msgstr "Chargeur/Dumper"
+
+#. Tag: para
+#: installation.xml:1408
+#, no-c-format
+msgid ""
+"The data loader and dumper are built and installed automatically as part of "
+"the PostGIS build. To build and install them manually:"
+msgstr ""
+"Les outils d'import et d'export de données sont compilés et installés "
+"automatiquement dans le processus de compilation de PostGIS. Pour les "
+"compiler et les installer manuellement :"
+
+#. Tag: programlisting
+#: installation.xml:1413
+#, no-c-format
+msgid ""
+"# cd postgis-&last_release_version;/loader\n"
+"# make\n"
+"# make install"
+msgstr ""
+"# cd postgis-&last_release_version;/loader\n"
+"# make\n"
+"# make install"
+
+#. Tag: para
+#: installation.xml:1415
+#, no-c-format
+msgid ""
+"The loader is called <filename>shp2pgsql</filename> and converts ESRI Shape "
+"files into SQL suitable for loading in PostGIS/PostgreSQL. The dumper is "
+"called <filename>pgsql2shp</filename> and converts PostGIS tables (or "
+"queries) into ESRI Shape files. For more verbose documentation, see the "
+"online help, and the manual pages."
+msgstr ""
+"L'outil d'import est appelé <filename>shp2pgsql</filename> et converti des "
+"fichiers ESRI Shape en SQL compatible pour être chargé dans PostGIS/"
+"PostgreSQL. L'outil d'export est appelé <filename>pgsql2shp</filename> et "
+"converti les tables PostGIS (ou des requêtes) en fichier ESRI Shape. Pour "
+"une documentation plus complète, lisez l'aide en ligne et les pages de "
+"manuel."
+
+#~ msgid ""
+#~ "The <varname>postgis_comments.sql</varname>, <varname>raster_comments."
+#~ "sql</varname>, <varname>topology_comments.sql</varname> generate quick "
+#~ "help tips for each function that can be accessed via pgAdmin III or psql. "
+#~ "In psql with a command of the form e.g.<varname>\\dd ST_SetPoint</varname>"
+#~ msgstr ""
+#~ "Les fichiers <varname>postgis_comments.sql</varname>, "
+#~ "<varname>raster_comments.sql</varname>, <varname>topology_comments.sql</"
+#~ "varname> permettent de générer une aide pour chaque fonction, accessible "
+#~ "via PgAdmin III ou psql. Avec psql, cette aide est disponible avec la "
+#~ "commande suivante, par exemple: <varname>\\dd ST_SetPoint</varname>"
+
+#~ msgid ""
+#~ "<filename>topology_comments.sql</filename> since its an optional feature "
+#~ "is not installed by <command>make install</command> or <command>make "
+#~ "comments-install</command>. However if you do a <command>make comments</"
+#~ "command> or <command>make topology_comments.sql</command>, it will be "
+#~ "generated in the docs folder"
+#~ msgstr ""
+#~ "Le fichier <filename>topology_comments.sql</filename>, optionnel, n'est "
+#~ "pas installé par les commandes <command>make install</command> ou  "
+#~ "<command>make comments-install</command>. Toutefois, les commandes "
+#~ "<command>make comments</command> or <command>make topology_comments.sql</"
+#~ "command> permettent de générer la documentation dans le répertoire docs"
+
+#~ msgid ""
+#~ "CUnit - A Unit testing framework for C - Version 2.1-0\n"
+#~ "         http://cunit.sourceforge.net/\n"
+#~ "\n"
+#~ "\n"
+#~ "Suite: print_suite\n"
+#~ "  Test: test_lwprint_default_format ... passed\n"
+#~ "  Test: test_lwprint_format_orders ... passed\n"
+#~ "  Test: test_lwprint_optional_format ... passed\n"
+#~ "  Test: test_lwprint_oddball_formats ... passed\n"
+#~ "  Test: test_lwprint_bad_formats ... passed\n"
+#~ "Suite: Misc Suite\n"
+#~ "  Test: test_misc_force_2d ... passed\n"
+#~ "  Test: test_misc_simplify ... passed\n"
+#~ "  Test: test_misc_count_vertices ... passed\n"
+#~ "  Test: test_misc_area ... passed\n"
+#~ "  Test: test_misc_wkb ... passed\n"
+#~ "Suite: PointArray Suite\n"
+#~ "  Test: test_ptarray_append_point ... passed\n"
+#~ "  Test: test_ptarray_append_ptarray ... passed\n"
+#~ "Suite: PostGIS Computational Geometry Suite\n"
+#~ "  Test: test_lw_segment_side ... passed\n"
+#~ "  Test: test_lw_segment_intersects ... passed\n"
+#~ "  Test: test_lwline_crossing_short_lines ... passed\n"
+#~ "  Test: test_lwline_crossing_long_lines ... passed\n"
+#~ "  Test: test_lwline_crossing_bugs ... passed\n"
+#~ "  Test: test_lwpoint_set_ordinate ... passed\n"
+#~ "  Test: test_lwpoint_get_ordinate ... passed\n"
+#~ "  Test: test_point_interpolate ... passed\n"
+#~ "  Test: test_lwline_clip ... passed\n"
+#~ "  Test: test_lwline_clip_big ... passed\n"
+#~ "  Test: test_lwmline_clip ... passed\n"
+#~ "  Test: test_geohash_point ... passed\n"
+#~ "  Test: test_geohash_precision ... passed\n"
+#~ "  Test: test_geohash ... passed\n"
+#~ "  Test: test_isclosed ... passed\n"
+#~ "Suite: PostGIS Measures Suite\n"
+#~ "  Test: test_mindistance2d_tolerance ... passed\n"
+#~ "  Test: test_rect_tree_contains_point ... passed\n"
+#~ "  Test: test_rect_tree_intersects_tree ... passed\n"
+#~ "  Test: test_lwgeom_segmentize2d ... passed\n"
+#~ "Suite: WKT Out Suite\n"
+#~ "  Test: test_wkt_out_point ... passed\n"
+#~ "  Test: test_wkt_out_linestring ... passed\n"
+#~ "  Test: test_wkt_out_polygon ... passed\n"
+#~ "  Test: test_wkt_out_multipoint ... passed\n"
+#~ "  Test: test_wkt_out_multilinestring ... passed\n"
+#~ ":\n"
+#~ ":\n"
+#~ "--Run Summary: Type      Total     Ran  Passed  Failed\n"
+#~ "               suites       17      17     n/a       0\n"
+#~ "               tests       143     143     143       0\n"
+#~ "               asserts    1228    1228    1228       0\n"
+#~ "\n"
+#~ "\n"
+#~ "Creating spatial db postgis_reg\n"
+#~ " Postgis 2.0.0SVN - 2011-01-11 15:33:37\n"
+#~ "   GEOS: 3.3.0-CAPI-1.7.0\n"
+#~ "   PROJ: Rel. 4.6.1, 21 August 2008\n"
+#~ "\n"
+#~ "Running tests\n"
+#~ "\n"
+#~ " loader/Point.............. ok\n"
+#~ " loader/PointM.............. ok\n"
+#~ " loader/PointZ.............. ok\n"
+#~ " loader/MultiPoint.............. ok\n"
+#~ " loader/MultiPointM.............. ok\n"
+#~ " loader/MultiPointZ.............. ok\n"
+#~ " loader/Arc.............. ok\n"
+#~ " loader/ArcM.............. ok\n"
+#~ " loader/ArcZ.......... ok\n"
+#~ " loader/Polygon.............. ok\n"
+#~ " loader/PolygonM.............. ok\n"
+#~ " loader/PolygonZ.............. ok\n"
+#~ " regress. ok\n"
+#~ " regress_index. ok\n"
+#~ " regress_index_nulls. ok\n"
+#~ " lwgeom_regress. ok\n"
+#~ " regress_lrs. ok\n"
+#~ " removepoint. ok\n"
+#~ " setpoint. ok\n"
+#~ " simplify. ok\n"
+#~ " snaptogrid. ok\n"
+#~ " affine. ok\n"
+#~ " measures. ok\n"
+#~ " long_xact. ok\n"
+#~ " ctors. ok\n"
+#~ " sql-mm-serialize. ok\n"
+#~ " sql-mm-circularstring. ok\n"
+#~ " sql-mm-compoundcurve. ok\n"
+#~ " sql-mm-curvepoly. ok\n"
+#~ " sql-mm-general. ok\n"
+#~ " sql-mm-multicurve. ok\n"
+#~ " sql-mm-multisurface. ok\n"
+#~ " polyhedralsurface. ok\n"
+#~ " out_geometry. ok\n"
+#~ " out_geography. ok\n"
+#~ " in_gml. ok\n"
+#~ " in_kml. ok\n"
+#~ " iscollection. ok\n"
+#~ " regress_ogc. ok\n"
+#~ " regress_ogc_cover. ok\n"
+#~ " regress_ogc_prep. ok\n"
+#~ " regress_bdpoly. ok\n"
+#~ " regress_proj. ok\n"
+#~ " dump. ok\n"
+#~ " dumppoints. ok\n"
+#~ " wmsservers_new. ok\n"
+#~ " tickets. ok\n"
+#~ " remove_repeated_points. ok\n"
+#~ " split. ok\n"
+#~ " relatematch. ok\n"
+#~ " regress_buffer_params. ok\n"
+#~ " hausdorff. ok\n"
+#~ " clean. ok\n"
+#~ " sharedpaths. ok\n"
+#~ " snap. ok\n"
+#~ "\n"
+#~ "Run tests: 55\n"
+#~ "Failed: 0"
+#~ msgstr ""
+#~ "CUnit - A Unit testing framework for C - Version 2.1-0\n"
+#~ "         http://cunit.sourceforge.net/\n"
+#~ "\n"
+#~ "\n"
+#~ "Suite: print_suite\n"
+#~ "  Test: test_lwprint_default_format ... passed\n"
+#~ "  Test: test_lwprint_format_orders ... passed\n"
+#~ "  Test: test_lwprint_optional_format ... passed\n"
+#~ "  Test: test_lwprint_oddball_formats ... passed\n"
+#~ "  Test: test_lwprint_bad_formats ... passed\n"
+#~ "Suite: Misc Suite\n"
+#~ "  Test: test_misc_force_2d ... passed\n"
+#~ "  Test: test_misc_simplify ... passed\n"
+#~ "  Test: test_misc_count_vertices ... passed\n"
+#~ "  Test: test_misc_area ... passed\n"
+#~ "  Test: test_misc_wkb ... passed\n"
+#~ "Suite: PointArray Suite\n"
+#~ "  Test: test_ptarray_append_point ... passed\n"
+#~ "  Test: test_ptarray_append_ptarray ... passed\n"
+#~ "Suite: PostGIS Computational Geometry Suite\n"
+#~ "  Test: test_lw_segment_side ... passed\n"
+#~ "  Test: test_lw_segment_intersects ... passed\n"
+#~ "  Test: test_lwline_crossing_short_lines ... passed\n"
+#~ "  Test: test_lwline_crossing_long_lines ... passed\n"
+#~ "  Test: test_lwline_crossing_bugs ... passed\n"
+#~ "  Test: test_lwpoint_set_ordinate ... passed\n"
+#~ "  Test: test_lwpoint_get_ordinate ... passed\n"
+#~ "  Test: test_point_interpolate ... passed\n"
+#~ "  Test: test_lwline_clip ... passed\n"
+#~ "  Test: test_lwline_clip_big ... passed\n"
+#~ "  Test: test_lwmline_clip ... passed\n"
+#~ "  Test: test_geohash_point ... passed\n"
+#~ "  Test: test_geohash_precision ... passed\n"
+#~ "  Test: test_geohash ... passed\n"
+#~ "  Test: test_isclosed ... passed\n"
+#~ "Suite: PostGIS Measures Suite\n"
+#~ "  Test: test_mindistance2d_tolerance ... passed\n"
+#~ "  Test: test_rect_tree_contains_point ... passed\n"
+#~ "  Test: test_rect_tree_intersects_tree ... passed\n"
+#~ "  Test: test_lwgeom_segmentize2d ... passed\n"
+#~ "Suite: WKT Out Suite\n"
+#~ "  Test: test_wkt_out_point ... passed\n"
+#~ "  Test: test_wkt_out_linestring ... passed\n"
+#~ "  Test: test_wkt_out_polygon ... passed\n"
+#~ "  Test: test_wkt_out_multipoint ... passed\n"
+#~ "  Test: test_wkt_out_multilinestring ... passed\n"
+#~ ":\n"
+#~ ":\n"
+#~ "--Run Summary: Type      Total     Ran  Passed  Failed\n"
+#~ "               suites       17      17     n/a       0\n"
+#~ "               tests       143     143     143       0\n"
+#~ "               asserts    1228    1228    1228       0\n"
+#~ "\n"
+#~ "\n"
+#~ "Creating spatial db postgis_reg\n"
+#~ " Postgis 2.0.0SVN - 2011-01-11 15:33:37\n"
+#~ "   GEOS: 3.3.0-CAPI-1.7.0\n"
+#~ "   PROJ: Rel. 4.6.1, 21 August 2008\n"
+#~ "\n"
+#~ "Running tests\n"
+#~ "\n"
+#~ " loader/Point.............. ok\n"
+#~ " loader/PointM.............. ok\n"
+#~ " loader/PointZ.............. ok\n"
+#~ " loader/MultiPoint.............. ok\n"
+#~ " loader/MultiPointM.............. ok\n"
+#~ " loader/MultiPointZ.............. ok\n"
+#~ " loader/Arc.............. ok\n"
+#~ " loader/ArcM.............. ok\n"
+#~ " loader/ArcZ.......... ok\n"
+#~ " loader/Polygon.............. ok\n"
+#~ " loader/PolygonM.............. ok\n"
+#~ " loader/PolygonZ.............. ok\n"
+#~ " regress. ok\n"
+#~ " regress_index. ok\n"
+#~ " regress_index_nulls. ok\n"
+#~ " lwgeom_regress. ok\n"
+#~ " regress_lrs. ok\n"
+#~ " removepoint. ok\n"
+#~ " setpoint. ok\n"
+#~ " simplify. ok\n"
+#~ " snaptogrid. ok\n"
+#~ " affine. ok\n"
+#~ " measures. ok\n"
+#~ " long_xact. ok\n"
+#~ " ctors. ok\n"
+#~ " sql-mm-serialize. ok\n"
+#~ " sql-mm-circularstring. ok\n"
+#~ " sql-mm-compoundcurve. ok\n"
+#~ " sql-mm-curvepoly. ok\n"
+#~ " sql-mm-general. ok\n"
+#~ " sql-mm-multicurve. ok\n"
+#~ " sql-mm-multisurface. ok\n"
+#~ " polyhedralsurface. ok\n"
+#~ " out_geometry. ok\n"
+#~ " out_geography. ok\n"
+#~ " in_gml. ok\n"
+#~ " in_kml. ok\n"
+#~ " iscollection. ok\n"
+#~ " regress_ogc. ok\n"
+#~ " regress_ogc_cover. ok\n"
+#~ " regress_ogc_prep. ok\n"
+#~ " regress_bdpoly. ok\n"
+#~ " regress_proj. ok\n"
+#~ " dump. ok\n"
+#~ " dumppoints. ok\n"
+#~ " wmsservers_new. ok\n"
+#~ " tickets. ok\n"
+#~ " remove_repeated_points. ok\n"
+#~ " split. ok\n"
+#~ " relatematch. ok\n"
+#~ " regress_buffer_params. ok\n"
+#~ " hausdorff. ok\n"
+#~ " clean. ok\n"
+#~ " sharedpaths. ok\n"
+#~ " snap. ok\n"
+#~ "\n"
+#~ "Run tests: 55\n"
+#~ "Failed: 0"
+
+#~ msgid ""
+#~ "If you are installing Tiger geocoder for the first time edit either the "
+#~ "<filename>create_geocode.bat</filename> script If you are on windows or "
+#~ "the <filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac "
+#~ "OSX with your PostgreSQL specific settings and run the corresponding "
+#~ "script from the commandline. If you don't edit this file, it will just "
+#~ "contain common case locations of items. You can edit the generated script "
+#~ "after the fact when you run the <xref linkend=\"Loader_Generate_Script\"/"
+#~ "> command."
+#~ msgstr ""
+#~ "Si vous installer le Géocodeur Tiger pour la première fois éditez soit le "
+#~ "script <filename>create_geocode.bat</filename> si vous êtes sous windows "
+#~ "ou <filename>create_geocode.sh</filename> si vous êtes sous Linux/Unix/"
+#~ "Mac OSX avec vos paramètrages spécifique à PostgreSQL et lancez le script "
+#~ "correspondant à partir de la ligne de commande. Si vous n'éditez pas ce "
+#~ "fichier, il contiendra juste les chemins par défaut des items. Vous "
+#~ "pouvez éditer le script généré après avoir lancer la commande  <xref "
+#~ "linkend=\"Loader_Generate_Script\"/>."
diff --git a/doc/po/fr/introduction.xml.po b/doc/po/fr/introduction.xml.po
new file mode 100644
index 0000000..a373d3a
--- /dev/null
+++ b/doc/po/fr/introduction.xml.po
@@ -0,0 +1,684 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Rodolphe Quiédeville <rodolphe at quiedeville.org>, 2013
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 11:27+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: introduction.xml:3
+#, no-c-format
+msgid "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: introduction.xml:5
+#, no-c-format
+msgid ""
+"PostGIS was developed by Refractions Research Inc, as a spatial database "
+"technology research project. Refractions is a GIS and database consulting "
+"company in Victoria, British Columbia, Canada, specializing in data "
+"integration and custom software development. We plan on supporting and "
+"developing PostGIS to support a range of important GIS functionality, "
+"including full OpenGIS support, advanced topological constructs (coverages, "
+"surfaces, networks), desktop user interface tools for viewing and editing "
+"GIS data, and web-based access tools."
+msgstr ""
+"PostGIS a été développé par Refractions Research Inc, en tant que projet de "
+"recherche sur les technologies de bases de données spatiales. Refractions "
+"est une entreprise de conseil en SIG et bases de données à Victoria, "
+"Colombie Britannique, Canada. Elle est spécialisée en intégration de données "
+"et développement de logiciels spécifiques. Nous prévoyons de supporter et "
+"développer PostGIS pour satisfaire une large gamme de fonctionnalités SIG, "
+"tels que le support complet d'OpenGIS, des constructions topologiques "
+"avancées (couvertures, surfaces, réseaux), des outils bureautiques pour "
+"visualiser et éditer des données SIG, et des outils d'accès web."
+
+#. Tag: para
+#: introduction.xml:15
+#, no-c-format
+msgid ""
+"PostGIS is an incubation project of the OSGeo Foundation. PostGIS is being "
+"continually improved and funded by many FOSS4G Developers as well as "
+"corporations all over the world that gain great benefit from its "
+"functionality and versatility."
+msgstr ""
+"PostGIS est un projet officiel de la fondation OSGeo. PostGIS est "
+"continuellement amélioré et financé par de nombreux développeurs de "
+"logiciels SIG libres, ainsi que par des organisations tout autour du monde "
+"qui profite largement de ses fonctionnalités et de sa souplesse "
+"d'utilisation."
+
+#. Tag: title
+#: introduction.xml:21
+#, no-c-format
+msgid "Project Steering Committee"
+msgstr "Comité de direction du projet (Project Steering Committee)"
+
+#. Tag: para
+#: introduction.xml:22
+#, no-c-format
+msgid ""
+"The PostGIS Project Steering Committee (PSC) coordinates the general "
+"direction, release cycles, documentation, and outreach efforts for the "
+"PostGIS project. In addition the PSC provides general user support, accepts "
+"and approves patches from the general PostGIS community and votes on "
+"miscellaneous issues involving PostGIS such as developer commit access, new "
+"PSC members or significant API changes."
+msgstr ""
+"Le comité de direction du projet (PSC) coordonne la direction générale, les "
+"cycles de publication, la documentation et les efforts spécifiques pour le "
+"projet PostGIS. De plus, le PSC fournit un support général aux utilisateurs, "
+"accepte et approuve les patches de la communauté PostGIS et vote sur divers "
+"points concernant PostGIS, tels que les accès commit pour les développeurs, "
+"les nouveaux membres du PSC ou les changements majeurs d'API."
+
+#. Tag: term
+#: introduction.xml:31
+#, no-c-format
+msgid "Mark Cave-Ayland"
+msgstr "Mark Cave-Ayland"
+
+#. Tag: para
+#: introduction.xml:33
+#, no-c-format
+msgid ""
+"Coordinates bug fixing and maintenance effort, alignment of PostGIS with "
+"PostgreSQL releases, spatial index selectivity and binding, loader/dumper, "
+"and Shapefile GUI Loader, integration of new and new function enhancements."
+msgstr ""
+"Coordination de la correction des bugs et de l'effort de maintenance, "
+"alignement des sorties de PostGIS avec celles de PostgreSQL, sélectivité et "
+"liaisons des index spatiaux, outil de chargement/export, interface de "
+"chargement de shapefiles, intégration de nouvelles fonctions et "
+"améliorations de fonctions existantes."
+
+#. Tag: term
+#: introduction.xml:40
+#, no-c-format
+msgid "Regina Obe"
+msgstr "Regina Obe"
+
+#. Tag: para
+#: introduction.xml:42
+#, no-c-format
+msgid ""
+"Buildbot Maintenance, windows production and experimental builds, "
+"Documentation, general user support on PostGIS newsgroup, X3D support, Tiger "
+"Geocoder Support, management functions, and smoke testing new functionality "
+"or major code changes."
+msgstr ""
+"Maintenance des robots de build, création des builds expérimentaux et "
+"stables pour windows, documentation, support général aux utilisateurs sur "
+"les newsgroups PostGIS, support X3D, support du géocodeur Tiger, fonctions "
+"de gestion, tests des nouvelles fonctionnalités et des changements majeurs "
+"du code."
+
+#. Tag: term
+#: introduction.xml:49
+#, no-c-format
+msgid "Bborie Park"
+msgstr "Bborie Park"
+
+#. Tag: para
+#: introduction.xml:51
+#, no-c-format
+msgid ""
+"Raster development, integration with GDAL, raster loader, user support, "
+"general bug fixing, testing on various OS (Slackware, Mac, Windows, and more)"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:56
+#, no-c-format
+msgid "Paul Ramsey (Chair)"
+msgstr "Paul Ramsey (Directeur)"
+
+#. Tag: para
+#: introduction.xml:58
+#, fuzzy, no-c-format
+msgid ""
+"Co-founder of PostGIS project. General bug fixing, geography support, "
+"geography and geometry index support (2D, 3D, nD index and anything spatial "
+"index), underlying geometry internal structures, PointCloud (in "
+"development), GEOS functionality integration and alignment with GEOS "
+"releases, loader/dumper, and Shapefile GUI loader."
+msgstr ""
+"Co-fondateur du projet PostGIS, corrections de bugs, support du type "
+"geography, support des index pour geography et geometry (2D, 3D, nD et "
+"autres index spatiaux), structures internes de géométries, intégration de "
+"fonctionnalités de GEOS et alignement des publications avec GEOS, outil de "
+"chargement/export, interface graphique de chargement de shapefiles."
+
+#. Tag: term
+#: introduction.xml:64
+#, no-c-format
+msgid "Sandro Santilli"
+msgstr "Sandro Santilli"
+
+#. Tag: para
+#: introduction.xml:67
+#, no-c-format
+msgid ""
+"Bug fixes and maintenance and integration of new GEOS functionality and "
+"alignment with GEOS releases, Topology support, and Raster framework and low "
+"level api functions."
+msgstr ""
+"Correction de bugs, mantenance et intégration de nouvelles fonctionnalités "
+"de GEOS et alignement de la publication avec les sorties de GEOS, support de "
+"la topologie, framework Raster et fonctions bas niveau de l'API."
+
+#. Tag: title
+#: introduction.xml:74
+#, fuzzy, no-c-format
+msgid "Core Contributors Present"
+msgstr "Contributeurs passé et présent"
+
+#. Tag: term
+#: introduction.xml:77
+#, no-c-format
+msgid "Jorge Arévalo"
+msgstr "Jorge Arévalo"
+
+#. Tag: para
+#: introduction.xml:79
+#, no-c-format
+msgid "Raster development, GDAL driver support, loader"
+msgstr "Développement Raster, support du driver GDAL, outil de chargement."
+
+#. Tag: term
+#: introduction.xml:84
+#, no-c-format
+msgid "Nicklas Avén"
+msgstr "Nicklas Avén"
+
+#. Tag: para
+#: introduction.xml:87
+#, fuzzy, no-c-format
+msgid ""
+"Distance function enhancements (including 3D distance and relationship "
+"functions) and additions, Tiny WKB output format (TWKB) (in development) and "
+"general user support"
+msgstr ""
+"Amélioration des fonctions de distance (dont la distance 3D et les fonctions "
+"de relations) et nouvelles fonctions. Tests Windows et support général aux "
+"utilisateurs."
+
+#. Tag: term
+#: introduction.xml:92
+#, no-c-format
+msgid "Olivier Courtin"
+msgstr "Olivier Courtin"
+
+#. Tag: para
+#: introduction.xml:94
+#, no-c-format
+msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
+msgstr ""
+"Fonctions d'entrée/sortie XML (KML,GML) et fonctions GeoJSON, support 3D et "
+"correction de bugs."
+
+#. Tag: term
+#: introduction.xml:99
+#, no-c-format
+msgid "Mateusz Loskot"
+msgstr "Mateusz Loskot"
+
+#. Tag: para
+#: introduction.xml:101
+#, no-c-format
+msgid ""
+"CMake support for PostGIS, built original raster loader in python and low "
+"level raster api functions"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:106
+#, no-c-format
+msgid "Pierre Racine"
+msgstr "Pierre Racine"
+
+#. Tag: para
+#: introduction.xml:108
+#, no-c-format
+msgid "Raster overall architecture, prototyping, programming support"
+msgstr ""
+"Architecture générale des raster, prototypage, support à la programmation."
+
+#. Tag: term
+#: introduction.xml:113
+#, no-c-format
+msgid "David Zwarg"
+msgstr "David Zwarg"
+
+#. Tag: para
+#: introduction.xml:115
+#, no-c-format
+msgid "Raster development (mostly map algebra analytic functions)"
+msgstr ""
+
+#. Tag: title
+#: introduction.xml:121
+#, fuzzy, no-c-format
+msgid "Core Contributors Past"
+msgstr "Contributeurs passé et présent"
+
+#. Tag: term
+#: introduction.xml:125
+#, no-c-format
+msgid "Chris Hodgson"
+msgstr "Chris Hodgson"
+
+#. Tag: para
+#: introduction.xml:127
+#, no-c-format
+msgid ""
+"Prior PSC Member. General development, site and buildbot maintenance, OSGeo "
+"incubation management"
+msgstr ""
+"Ancien membre du PSC. Développement général, maintenance du site et du robot "
+"de build, gestion de l'incubation OSGeo."
+
+#. Tag: term
+#: introduction.xml:131
+#, no-c-format
+msgid "Kevin Neufeld"
+msgstr "Kevin Neufeld"
+
+#. Tag: para
+#: introduction.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"Prior PSC Member. Documentation and documentation support tools, buildbot "
+"maintenance, advanced user support on PostGIS newsgroup, and PostGIS "
+"maintenance function enhancements."
+msgstr ""
+"Ancien membre du PSC. Documentation et outils de support de la "
+"documentation, support avancé aux utilisateurs sur les newsgroup PostGIS, et "
+"amélioration des fonctions de maintenance de PostGIS."
+
+#. Tag: term
+#: introduction.xml:139
+#, no-c-format
+msgid "Dave Blasby"
+msgstr "Dave Blasby"
+
+#. Tag: para
+#: introduction.xml:142
+#, no-c-format
+msgid ""
+"The original developer/Co-founder of PostGIS. Dave wrote the server side "
+"objects, index bindings, and many of the server side analytical functions."
+msgstr ""
+"Développeur original et co-fondateur de PostGIS. Dave a écrit les objets "
+"côté serveur, les liaisons des index, et de nombreuses fonctions d'analyse "
+"côté serveur."
+
+#. Tag: term
+#: introduction.xml:149
+#, no-c-format
+msgid "Jeff Lounsbury"
+msgstr "Jeff Lounsbury"
+
+#. Tag: para
+#: introduction.xml:151
+#, no-c-format
+msgid ""
+"Original development of the Shape file loader/dumper. Current PostGIS "
+"Project Owner representative."
+msgstr ""
+"Développement originel de l'outil de chargement/export de shapefiles. Actuel "
+"représentant du projet PostGIS."
+
+#. Tag: term
+#: introduction.xml:157
+#, no-c-format
+msgid "Mark Leslie"
+msgstr "Mark Leslie"
+
+#. Tag: para
+#: introduction.xml:159
+#, no-c-format
+msgid ""
+"Ongoing maintenance and development of core functions. Enhanced curve "
+"support. Shapefile GUI loader."
+msgstr ""
+"Maintenance générale et développement de fonctions du noyau PostGIS. "
+"Amélioration du support des courbes. Interface graphique de chargement des "
+"shapefiles."
+
+#. Tag: title
+#: introduction.xml:165
+#, fuzzy, no-c-format
+msgid "Other Contributors"
+msgstr "Autres contributeurs : individus"
+
+#. Tag: term
+#: introduction.xml:168
+#, no-c-format
+msgid "Individual Contributors"
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:171
+#, fuzzy, no-c-format
+msgid ""
+"In alphabetical order: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas "
+"Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, "
+"Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. "
+"Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David "
+"Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald "
+"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, "
+"Jason Smith, Jeff Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus "
+"Foerster, Kris Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de "
+"Reyna, Mark Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, "
+"Michael Fuhr, Nathan Wagner, Nathaniel Clay, Nikita Shulga, Norman Vine, "
+"Rafal Magda, Ralph Mason, Richard Greenwood, Silvio Grosso, Steffen Macke, "
+"Stephen Frost, Tom van Tilburg, Vincent Mora, Vincent Picavet"
+msgstr ""
+"Dans l'ordre alphabétique : Alex Bodnaru, Alex Mayrhofer, Andrea Peri, "
+"Andreas Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben "
+"Jubb, Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce "
+"L. Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, "
+"David Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, "
+"Gerald Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild "
+"Nystuen, Jeff Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus "
+"Foerster, Kris Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de "
+"Reyna, Mark Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, "
+"Michael Fuhr, Nikita Shulga, Norman Vine, Rafal Magda, Ralph Mason, Richard "
+"Greenwood, Silvio Grosso, Steffen Macke, Stephen Frost, Tom van Tilburg, "
+"Vincent Picavet"
+
+#. Tag: term
+#: introduction.xml:232
+#, fuzzy, no-c-format
+msgid "Corporate Sponsors"
+msgstr "Autres contributeurs : Organisations sponsors"
+
+#. Tag: para
+#: introduction.xml:235
+#, no-c-format
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the PostGIS project"
+msgstr ""
+"Certaines organisations ont contribué du temps de développeur, de "
+"l'hébergement, ou du financement direct pour le projet PostGIS."
+
+#. Tag: para
+#: introduction.xml:236
+#, fuzzy, no-c-format
+msgid ""
+"In alphabetical order: Arrival 3D, Associazione Italiana per l'Informazione "
+"Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, "
+"City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos "
+"Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala "
+"Consulting Engineers, LisaSoft, Logical Tracking & Tracing International "
+"AG, Michigan Tech Research Institute, Natural Resources Canada, Norwegian "
+"Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Palantir "
+"Technologies, Paragon Corporation, R3 GIS, Refractions Research, Regione "
+"Toscana-SIGTA, Safe Software, Sirius Corporation plc, Stadt Uster, UC Davis "
+"Center for Vectorborne Diseases, University of Laval, U.S Department of "
+"State (HIU), Vizzuality, Zonar Systems"
+msgstr ""
+"Dans l'ordre alphabétique : Arrival 3D, Associazione Italiana per "
+"l'Informazione Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, "
+"Cadcorp, CampToCamp, City of Boston (DND), Clever Elephant Solutions, "
+"Cooperativa Alveo, Deimos Space, Faunalia, Geographic Data BC, Hunter "
+"Systems Group, Lidwala Consulting Engineers, LisaSoft, Logical Tracking "
+"& Tracing International AG, Michigan Tech Research Institute, Norwegian "
+"Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Paragon "
+"Corporation, R3 GIS,, Refractions Research, Regione Toscana-SIGTA, Safe "
+"Software, Sirius Corporation plc, Stadt Uster, UC Davis Center for "
+"Vectorborne Diseases, University of Laval, U.S Department of State (HIU), "
+"Vizzuality, Zonar Systems"
+
+#. Tag: term
+#: introduction.xml:277
+#, no-c-format
+msgid "Crowd Funding Campaigns"
+msgstr "Campagnes de financement participatif"
+
+#. Tag: para
+#: introduction.xml:280
+#, fuzzy, no-c-format
+msgid ""
+"Crowd funding campaigns are campaigns we run to get badly wanted features "
+"funded that can service a large number of people. Each campaign is "
+"specifically focused on a particular feature or set of features. Each "
+"sponsor chips in a small fraction of the needed funding and with enough "
+"people/organizations contributing, we have the funds to pay for the work "
+"that will help many. If you have an idea for a feature you think many others "
+"would be willing to co-fund, please post to the <ulink url=\"http://postgis."
+"net/mailman/listinfo/postgis-users\">PostGIS newsgroup</ulink> your thoughts "
+"and together we can make it happen."
+msgstr ""
+"Les campagnes de financement participatif sont menées pour financer les "
+"fonctionnalités fortement demandées qui peuvent être utiles à un large "
+"nombre de personnes. Chaque campagne est concentrée spécifiquement sur une "
+"fonctionnalité ou un jeu de fonctionnalités particulière. Chaque sponsor "
+"envoie une petite fraction du financement nécessaire et avec suffisamment de "
+"personnes ou d'organisations participant, on peut réunir les fonds pour "
+"payer un travail qui aide de nombreuses personnes. Si vous avez une idée de "
+"fonctionnalité pour laquelle vous pensez que d'autres seraient prêts à "
+"payer, envoyez un message à la  <ulink url=\"http://www.postgis.org/mailman/"
+"listinfo/postgis-users\">liste PostGIS</ulink> avec votre idée, et ensemble "
+"nous pourrons la réaliser."
+
+#. Tag: para
+#: introduction.xml:281
+#, no-c-format
+msgid ""
+"PostGIS 2.0.0 was the first release we tried this strategy. We used <ulink "
+"url=\"http://www.pledgebank.com\">PledgeBank</ulink> and we got two "
+"successful campaigns out of it."
+msgstr ""
+"PostGIS 2.0.0 a été la première version où cette stratégie a été testée. "
+"Nous avons utilisé <ulink url=\"http://www.pledgebank.com\">PledgeBank</"
+"ulink> et avons eu deux campagnes de financement réussies."
+
+#. Tag: para
+#: introduction.xml:282
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink> - 10 plus sponsors each "
+"contributed $250 USD to build toTopoGeometry function and beef up topology "
+"support in 2.0.0. It happened."
+msgstr ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink> - Plus de 10 sponsors ont "
+"contribué chacun 250USD pour créer la function toTopoGeometry et sortir le "
+"support de la topologie dans la version 2.0.0. Ce fut une réussite."
+
+#. Tag: para
+#: introduction.xml:283
+#, fuzzy, no-c-format
+msgid ""
+"<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
+"\"bold\">postgis64windows</emphasis></ulink> - 20 someodd sponsors each "
+"contributed $100 USD to pay for the work needed to work out PostGIS 64-bit "
+"issues on windows. It happened. We now have a 64-bit release for PostGIS "
+"2.0.1 available on PostgreSQL stack builder."
+msgstr ""
+"<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
+"\"bold\">postgis64windows</emphasis></ulink> - Environ 20 sponsors ont "
+"contribué chacun 100USD pour payer le travail nécessaire afin de régler les "
+"problèmes avec PostGIS 64 bits sous Windows. Ce fut une réussite. Nous avons "
+"désormais une version 64 bit de PostGIS 2.0.0 disponible dans l'installeur "
+"PostgreSQL Stack Builder."
+
+#. Tag: term
+#: introduction.xml:288
+#, no-c-format
+msgid "Important Support Libraries"
+msgstr "Bibliothèques de base importantes"
+
+#. Tag: para
+#: introduction.xml:291
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink> geometry "
+"operations library, and the algorithmic work of Martin Davis in making it "
+"all work, ongoing maintenance and support of Mateusz Loskot, Sandro Santilli "
+"(strk), Paul Ramsey and others."
+msgstr ""
+"La bibliothèque d'opérations géométriques <ulink url=\"http://trac.osgeo.org/"
+"geos/\">GEOS</ulink>, et le travail algorithmique de Martin Davis pour faire "
+"fonctionner tout cela, la maintenance et le support de Mateusz Loskot, "
+"Sandro Santilli (strk), Paul Ramsey et d'autres."
+
+#. Tag: para
+#: introduction.xml:296
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> Geospatial Data "
+"Abstraction Library, by Frank Warmerdam and others is used to power much of "
+"the raster functionality introduced in PostGIS 2.0.0. In kind, improvements "
+"needed in GDAL to support PostGIS are contributed back to the GDAL project."
+msgstr ""
+"La bibliothèque <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> "
+"Geospatial Data Abstraction Library, par Frank Warmerdam et d'autres, est "
+"utilisée pour supporter nombre de fonctionnalités raster introduites dans "
+"PostGIS 2.0.0. Des améliorations nécessaires dans GDAL pour supporter "
+"PostGIS sont aussi remontées en retour dans le projet GDAL."
+
+#. Tag: para
+#: introduction.xml:301
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> cartographic "
+"projection library, and the work of Gerald Evenden and Frank Warmerdam in "
+"creating and maintaining it."
+msgstr ""
+"La bibliothèque <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> de "
+"gestion de projections cartographiques, travail de  Gerald Evenden et Frank "
+"Warmerdam pour la créer et la maintenir."
+
+#. Tag: para
+#: introduction.xml:305
+#, no-c-format
+msgid ""
+"Last but not least, the <ulink url=\"http://www.postgresql.org\">PostgreSQL "
+"DBMS</ulink>, The giant that PostGIS stands on. Much of the speed and "
+"flexibility of PostGIS would not be possible without the extensibility, "
+"great query planner, GIST index, and plethora of SQL features provided by "
+"PostgreSQL."
+msgstr ""
+"Enfin, mais non des moindres, le projet de SGBD <ulink url=\"http://www."
+"postgresql.org\">PostgreSQL</ulink>, géant sur les épaules duquel PostGIS "
+"s'appuie. La rapidité et flexibilité de PostGIS serait impossible sans "
+"l'extensibilité, le plannificateur de requêtes, les index GiST et les "
+"nombreuses fonctionnalités SQL que fournit PostgreSQL."
+
+#. Tag: title
+#: introduction.xml:314
+#, no-c-format
+msgid "More Information"
+msgstr "Plus d'information"
+
+#. Tag: para
+#: introduction.xml:318
+#, fuzzy, no-c-format
+msgid ""
+"The latest software, documentation and news items are available at the "
+"PostGIS web site, <ulink url=\"http://postgis.net\">http://postgis.net</"
+"ulink>."
+msgstr ""
+"Les dernieres versions du logiciel, documentation, et nouvelles sont "
+"disponibles sur le site de PostGIS, <ulink url=\"http://www.postgis.org"
+"\">http://www.postgis.org</ulink>."
+
+#. Tag: para
+#: introduction.xml:324
+#, no-c-format
+msgid ""
+"More information about the GEOS geometry operations library is available "
+"at<ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/</"
+"ulink>."
+msgstr ""
+"Plus d'information sur la bibliothèque d'opérations géométriques GEOS sont "
+"disponibles à <ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo."
+"org/geos/</ulink>."
+
+#. Tag: para
+#: introduction.xml:330
+#, no-c-format
+msgid ""
+"More information about the Proj4 reprojection library is available at <ulink "
+"url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
+msgstr ""
+"Plus d'informations sur la bibliothèque de gestion de projections Proj4 sont "
+"disponibles à <ulink url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo."
+"org/proj/</ulink>."
+
+#. Tag: para
+#: introduction.xml:336
+#, no-c-format
+msgid ""
+"More information about the PostgreSQL database server is available at the "
+"PostgreSQL main site <ulink url=\"http://www.postgresql.org\">http://www."
+"postgresql.org</ulink>."
+msgstr ""
+"Plus d'informations sur le SGBD PostgreSQL sont disponibles sur le site "
+"principal de PostgreSQL :  <ulink url=\"http://www.postgresql.org\">http://"
+"www.postgresql.org</ulink>."
+
+#. Tag: para
+#: introduction.xml:342
+#, no-c-format
+msgid ""
+"More information about GiST indexing is available at the PostgreSQL GiST "
+"development site, <ulink url=\"http://www.sai.msu.su/~megera/postgres/gist/"
+"\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
+msgstr ""
+"Plus d'informations sur l'indexation GiST est disponible sur le site de "
+"développement de PostgreSQL GiST,  <ulink url=\"http://www.sai.msu.su/"
+"~megera/postgres/gist/\">http://www.sai.msu.su/~megera/postgres/gist/</"
+"ulink>."
+
+#. Tag: para
+#: introduction.xml:348
+#, no-c-format
+msgid ""
+"More information about MapServer internet map server is available at <ulink "
+"url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
+msgstr ""
+"Plus d'information sur le serveur cartographique MapServer est disponible à  "
+"<ulink url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
+
+#. Tag: para
+#: introduction.xml:354
+#, no-c-format
+msgid ""
+"The "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple "
+"Features for Specification for SQL</ulink>" is available at the OpenGIS "
+"Consortium web site: <ulink url=\"http://www.opengeospatial.org/\">http://"
+"www.opengeospatial.org/</ulink>."
+msgstr ""
+"Les "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple "
+"Features for SQL Specifications</ulink>" sont disponibles sur le site "
+"du consortium OpenGIS : <ulink url=\"http://www.opengeospatial.org/\">http://"
+"www.opengeospatial.org/</ulink>."
+
+#~ msgid "Raster development, raster loader"
+#~ msgstr "Développement Raster, outil de chargement raster."
+
+#~ msgid "Raster loader, low level raster api functions"
+#~ msgstr "Outil de chargement raster, fonctions bas niveau de l'API raster."
+
+#~ msgid "Raster development"
+#~ msgstr "Développement Raster."
diff --git a/doc/po/fr/performance_tips.xml.po b/doc/po/fr/performance_tips.xml.po
new file mode 100644
index 0000000..f2b987a
--- /dev/null
+++ b/doc/po/fr/performance_tips.xml.po
@@ -0,0 +1,606 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# geojs, 2014
+# Guy BARA <bara.guy at gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-20 15:58+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis/language/"
+"fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: performance_tips.xml:3
+#, no-c-format
+msgid "Performance tips"
+msgstr "Astuces de performances"
+
+#. Tag: title
+#: performance_tips.xml:6
+#, no-c-format
+msgid "Small tables of large geometries"
+msgstr "Petites tables de grandes géométries"
+
+#. Tag: title
+#: performance_tips.xml:9
+#, no-c-format
+msgid "Problem description"
+msgstr "Description du problème"
+
+#. Tag: para
+#: performance_tips.xml:11
+#, no-c-format
+msgid ""
+"Current PostgreSQL versions (including 8.0) suffer from a query optimizer "
+"weakness regarding TOAST tables. TOAST tables are a kind of \"extension room"
+"\" used to store large (in the sense of data size) values that do not fit "
+"into normal data pages (like long texts, images or complex geometries with "
+"lots of vertices), see <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/storage-toast.html\">the PostgreSQL Documentation for TOAST</ulink> "
+"for more information)."
+msgstr ""
+"Les versions de PostgreSQL actuelles (y compris 8.0) souffrent d'une "
+"faiblesse optimiseur de requête relative les tables TOAST. Tables TOAST sont "
+"une sorte de «salle de l'extension\" utilisé pour stocker de grandes valeurs "
+"(dans le sens de la taille des données) qui ne rentrent pas dans les pages "
+"de données normales (comme de longs textes, images ou des géométries "
+"complexes avec beaucoup de sommets), voir <ulink url=\"http://www.postgresql."
+"org/docs/current/static/storage-toast.html\"> Documentation PostgreSQL pour "
+"TOAST </ulink> pour plus d'informations)."
+
+#. Tag: para
+#: performance_tips.xml:19
+#, no-c-format
+msgid ""
+"The problem appears if you happen to have a table with rather large "
+"geometries, but not too much rows of them (like a table containing the "
+"boundaries of all European countries in high resolution). Then the table "
+"itself is small, but it uses lots of TOAST space. In our example case, the "
+"table itself had about 80 rows and used only 3 data pages, but the TOAST "
+"table used 8225 pages."
+msgstr ""
+"Le problème apparaît s'il vous arrive d'avoir une table avec d'assez grandes "
+"géométries, mais pas beaucoup de lignes d'entre elles (comme un tableau "
+"contenant les frontières de tous les pays européens en haute résolution). "
+"Ensuite, le tableau lui-même est petit, mais il utilise beaucoup d'espace "
+"TOAST. Dans notre exemple, le cas, la table elle-même avait environ 80 "
+"lignes et seulement 3 pages de données utilisées, mais la table TOAST 8225 "
+"pages utilisé."
+
+#. Tag: para
+#: performance_tips.xml:26
+#, no-c-format
+msgid ""
+"Now issue a query where you use the geometry operator && to search "
+"for a bounding box that matches only very few of those rows. Now the query "
+"optimizer sees that the table has only 3 pages and 80 rows. He estimates "
+"that a sequential scan on such a small table is much faster than using an "
+"index. And so he decides to ignore the GIST index. Usually, this estimation "
+"is correct. But in our case, the && operator has to fetch every "
+"geometry from disk to compare the bounding boxes, thus reading all TOAST "
+"pages, too."
+msgstr ""
+"Maintenant émettre une requête en utilisant l'opérateur de géométrie &"
+"& pour rechercher une boîte englobante qui correspond que très peu de "
+"ces lignes. Maintenant l'optimiseur de requêtes voit que la table n'a que 3 "
+"pages et 80 lignes. Il estime qu'une analyse séquentielle sur une telle "
+"petite table est beaucoup plus rapide que d'utiliser un index. Et alors il "
+"décide d'ignorer l'index GIST. Habituellement, cette estimation est "
+"correcte. Mais dans notre cas, l'opérateur && doit aller chercher "
+"chaque géométrie à partir du disque pour comparer les boîtes englobantes, et "
+"par conséquent la lecture de toutes les pages TOAST également."
+
+#. Tag: para
+#: performance_tips.xml:35
+#, no-c-format
+msgid ""
+"To see whether your suffer from this bug, use the \"EXPLAIN ANALYZE\" "
+"postgresql command. For more information and the technical details, you can "
+"read the thread on the postgres performance mailing list: http://archives."
+"postgresql.org/pgsql-performance/2005-02/msg00030.php"
+msgstr ""
+"Pour voir si votre souffrent de ce bogue, utilisez la commande \"EXPLAIN "
+"ANALYZE\" de postgresql. Pour plus d'informations et détails techniques, "
+"vous pouvez lire le fil sur la liste de diffusion des performances de "
+"postgres: http://archives.postgresql.org/pgsql-performance/2005-02/msg00030."
+"php"
+
+#. Tag: title
+#: performance_tips.xml:43
+#, no-c-format
+msgid "Workarounds"
+msgstr "Solutions de contournement"
+
+#. Tag: para
+#: performance_tips.xml:45
+#, no-c-format
+msgid ""
+"The PostgreSQL people are trying to solve this issue by making the query "
+"estimation TOAST-aware. For now, here are two workarounds:"
+msgstr ""
+"Les personnes de PostgreSQL essayent de résoudre ce problème en faisant "
+"l'estimation de la requête TOAST-courant. Pour l'instant, voici deux "
+"solutions:"
+
+#. Tag: para
+#: performance_tips.xml:48
+#, no-c-format
+msgid ""
+"The first workaround is to force the query planner to use the index. Send "
+"\"SET enable_seqscan TO off;\" to the server before issuing the query. This "
+"basically forces the query planner to avoid sequential scans whenever "
+"possible. So it uses the GIST index as usual. But this flag has to be set on "
+"every connection, and it causes the query planner to make misestimations in "
+"other cases, so you should \"SET enable_seqscan TO on;\" after the query."
+msgstr ""
+"La première solution consiste à forcer le planificateur de requêtes à "
+"utiliser l'index. Envoyer \"SET enable_seqscan TO off;\" au serveur avant "
+"d'émettre la requête. Cela force le planificateur de requêtes à éviter "
+"balayages séquentiels lorsque cela est possible. Donc, il utilise l'index "
+"GIST comme d'habitude. Mais cet indicateur doit être fixé à chaque "
+"connexion, et il provoque le planificateur de requêtes à faire des erreurs "
+"d'estimation dans les autres cas, vous devrez donc faire \"SET POUR "
+"enable_seqscan sur;\" après la requête."
+
+#. Tag: para
+#: performance_tips.xml:56
+#, no-c-format
+msgid ""
+"The second workaround is to make the sequential scan as fast as the query "
+"planner thinks. This can be achieved by creating an additional column that "
+"\"caches\" the bbox, and matching against this. In our example, the commands "
+"are like:"
+msgstr ""
+"La deuxième solution consiste à faire le balayage séquentielle aussi vite "
+"que le planificateur de requêtes pense. Ceci peut être réalisé en créant une "
+"colonne supplémentaire qui \"cache\" la bbox, et contre cette "
+"correspondance. Dans notre exemple, les commandes sont comme:"
+
+#. Tag: programlisting
+#: performance_tips.xml:61
+#, no-c-format
+msgid ""
+"SELECT "
+"AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
+"UPDATE mytable SET bbox = ST_Envelope(ST_Force2D(the_geom));"
+msgstr ""
+"SELECT "
+"AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
+"UPDATE mytable SET bbox = ST_Envelope(ST_Force2D(the_geom));"
+
+#. Tag: para
+#: performance_tips.xml:63
+#, no-c-format
+msgid ""
+"Now change your query to use the && operator against bbox instead of "
+"geom_column, like:"
+msgstr ""
+"Maintenant changez votre requête pour utiliser l'opérateur && \n"
+"face à la bbox au lieu de la geom_column, comme:"
+
+#. Tag: programlisting
+#: performance_tips.xml:66
+#, no-c-format
+msgid ""
+"SELECT geom_column \n"
+"FROM mytable \n"
+"WHERE bbox && ST_SetSRID('BOX3D(0 0,1 1)'::box3d,4326);"
+msgstr ""
+"SELECT geom_column \n"
+"FROM mytable \n"
+"WHERE bbox && ST_SetSRID('BOX3D(0 0,1 1)'::box3d,4326);"
+
+#. Tag: para
+#: performance_tips.xml:68
+#, no-c-format
+msgid ""
+"Of course, if you change or add rows to mytable, you have to keep the bbox "
+"\"in sync\". The most transparent way to do this would be triggers, but you "
+"also can modify your application to keep the bbox column current or run the "
+"UPDATE query above after every modification."
+msgstr ""
+"Bien sûr, si vous changez ou ajoutez des lignes à mytable, vous devez garder "
+"la bbox \"synchro\". La façon la plus transparente pour ce faire serait des "
+"déclencheurs, mais vous pouvez également modifier votre application afin de "
+"maintenir la colonne bbox courante ou exécuter la requête UPDATE ci-dessus "
+"après chaque modification."
+
+#. Tag: title
+#: performance_tips.xml:77
+#, no-c-format
+msgid "CLUSTERing on geometry indices"
+msgstr "CLUSTER d'index  géométriques"
+
+#. Tag: para
+#: performance_tips.xml:79
+#, no-c-format
+msgid ""
+"For tables that are mostly read-only, and where a single index is used for "
+"the majority of queries, PostgreSQL offers the CLUSTER command. This command "
+"physically reorders all the data rows in the same order as the index "
+"criteria, yielding two performance advantages: First, for index range scans, "
+"the number of seeks on the data table is drastically reduced. Second, if "
+"your working set concentrates to some small intervals on the indices, you "
+"have a more efficient caching because the data rows are spread along fewer "
+"data pages. (Feel invited to read the CLUSTER command documentation from the "
+"PostgreSQL manual at this point.)"
+msgstr ""
+"Pour les tables qui sont pour la plupart en lecture seule, et où un seul "
+"index est utilisé pour la majorité des requêtes, PostgreSQL offre la "
+"commande CLUSTER. Cette commande réorganise physiquement toutes les lignes "
+"de données dans le même ordre que les critères de l'index, ce qui donne deux "
+"avantages de performance: d'abord, pour des analyses d'intervalle de "
+"l'index, le nombre de recherche sur la table de données est considérablement "
+"réduit. Deuxièmement, si votre jeu de travail se concentre à quelques petits "
+"intervalles sur les index, vous avez une mise en cache plus efficace parce "
+"que les lignes de données sont dispersées sur moins de pages de données. "
+"(N'hésitez pas à lire la documentation de la commande CLUSTER du manuel "
+"PostgreSQL à ce stade)"
+
+#. Tag: para
+#: performance_tips.xml:89
+#, no-c-format
+msgid ""
+"However, currently PostgreSQL does not allow clustering on PostGIS GIST "
+"indices because GIST indices simply ignores NULL values, you get an error "
+"message like:"
+msgstr ""
+"Cependant, PostgreSQL ne permet actuellement pas le clustering sur les index "
+"GIST de PostGIS car les indices GIST ignorent les valeurs NULL, vous obtenez "
+"un message d'erreur comme:"
+
+#. Tag: programlisting
+#: performance_tips.xml:93
+#, no-c-format
+msgid ""
+"lwgeom=# CLUSTER my_geom_index ON my_table; \n"
+"ERROR: cannot cluster when index access method does not handle null values\n"
+"HINT: You may be able to work around this by marking column \"the_geom\" NOT "
+"NULL."
+msgstr ""
+"lwgeom=# CLUSTER my_geom_index ON my_table; \n"
+"ERROR: cannot cluster when index access method does not handle null values\n"
+"HINT: You may be able to work around this by marking column \"the_geom\" NOT "
+"NULL."
+
+#. Tag: para
+#: performance_tips.xml:95
+#, no-c-format
+msgid ""
+"As the HINT message tells you, one can work around this deficiency by adding "
+"a \"not null\" constraint to the table:"
+msgstr ""
+"Comme le message d'ASTUCES vous le dit, on peut contourner cette lacune en "
+"ajoutant une contrainte \"not null\" à la table:"
+
+#. Tag: programlisting
+#: performance_tips.xml:98
+#, no-c-format
+msgid ""
+"lwgeom=# ALTER TABLE my_table ALTER COLUMN the_geom SET not null; \n"
+"ALTER TABLE"
+msgstr ""
+"lwgeom=# ALTER TABLE my_table ALTER COLUMN the_geom SET not null; \n"
+"ALTER TABLE"
+
+#. Tag: para
+#: performance_tips.xml:100
+#, no-c-format
+msgid ""
+"Of course, this will not work if you in fact need NULL values in your "
+"geometry column. Additionally, you must use the above method to add the "
+"constraint, using a CHECK constraint like \"ALTER TABLE blubb ADD CHECK "
+"(geometry is not null);\" will not work."
+msgstr ""
+"Bien sûr, cela ne fonctionnera pas si vous avez besoin, dans les faits, de "
+"valeurs NULL dans la colonne de géométrie. En outre, vous devez utiliser la "
+"méthode ci-dessus pour ajouter la contrainte, en utilisant une contrainte "
+"CHECK comme \"ALTER TABLE blubb ADD CHECK (geometry is not null)\" ne "
+"fonctionnera pas."
+
+#. Tag: title
+#: performance_tips.xml:107
+#, no-c-format
+msgid "Avoiding dimension conversion"
+msgstr "Eviter les conversions de dimension"
+
+#. Tag: para
+#: performance_tips.xml:109
+#, no-c-format
+msgid ""
+"Sometimes, you happen to have 3D or 4D data in your table, but always access "
+"it using OpenGIS compliant ST_AsText() or ST_AsBinary() functions that only "
+"output 2D geometries. They do this by internally calling the ST_Force2D() "
+"function, which introduces a significant overhead for large geometries. To "
+"avoid this overhead, it may be feasible to pre-drop those additional "
+"dimensions once and forever:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:116
+#, no-c-format
+msgid ""
+"UPDATE mytable SET the_geom = ST_Force2D(the_geom); \n"
+"VACUUM FULL ANALYZE mytable;"
+msgstr ""
+"UPDATE mytable SET the_geom = ST_Force2D(the_geom); \n"
+"VACUUM FULL ANALYZE mytable;"
+
+#. Tag: para
+#: performance_tips.xml:118
+#, no-c-format
+msgid ""
+"Note that if you added your geometry column using AddGeometryColumn() "
+"there'll be a constraint on geometry dimension. To bypass it you will need "
+"to drop the constraint. Remember to update the entry in the geometry_columns "
+"table and recreate the constraint afterwards."
+msgstr ""
+"Notez que si vous avez ajouté votre colonne de géométrie à l'aide "
+"AddGeometryColumn (), il y aura une contrainte sur la dimension de la "
+"géométrie. Pour contourner vous devrez supprimer la contrainte. N'oubliez "
+"pas de mettre à jour l'entrée dans la table geometry_columns et recréer la "
+"contrainte par la suite."
+
+#. Tag: para
+#: performance_tips.xml:124
+#, no-c-format
+msgid ""
+"In case of large tables, it may be wise to divide this UPDATE into smaller "
+"portions by constraining the UPDATE to a part of the table via a WHERE "
+"clause and your primary key or another feasible criteria, and running a "
+"simple \"VACUUM;\" between your UPDATEs. This drastically reduces the need "
+"for temporary disk space. Additionally, if you have mixed dimension "
+"geometries, restricting the UPDATE by \"WHERE dimension(the_geom)>2\" "
+"skips re-writing of geometries that already are in 2D."
+msgstr ""
+"En cas de grandes tables, il peut être judicieux de diviser cette mise à "
+"jour en petites portions en restreignant l'UPDATE à une partie de la table "
+"via une clause WHERE et votre clé primaire ou d'un autre critère, et "
+"exécutant un simple «VACUUM»; entre votre mises à jour. Cela réduit "
+"considérablement le besoin d'espace disque temporaire. En outre, si vous "
+"avez des données géométriques de dimension mixte, restreindre la mise à jour "
+"en \"WHERE dimension(the_geom)>2\" saute la ré-écriture des géométries "
+"qui sont déjà en 2D."
+
+#. Tag: title
+#: performance_tips.xml:136
+#, no-c-format
+msgid "Tuning your configuration"
+msgstr "Réglage de votre configuration"
+
+#. Tag: para
+#: performance_tips.xml:138
+#, no-c-format
+msgid ""
+"These tips are taken from Kevin Neufeld's presentation \"Tips for the "
+"PostGIS Power User\" at the FOSS4G 2007 conference. Depending on your use of "
+"PostGIS (for example, static data and complex analysis vs frequently updated "
+"data and lots of users) these changes can provide significant speedups to "
+"your queries."
+msgstr ""
+"Ces conseils sont tirés de la présentation de Kevin Neufeld \"Conseils pour "
+"l'utilisateur PostGIS \" lors de la conférence FOSS4G 2007. En fonction de "
+"votre utilisation de PostGIS (par exemple, les données statiques et des "
+"analyses complexes contre données fréquemment mises à jour et beaucoup "
+"d'utilisateurs), ces changements peuvent fournir des accélérations "
+"significatives à vos requêtes.."
+
+#. Tag: para
+#: performance_tips.xml:144
+#, no-c-format
+msgid ""
+"For a more tips (and better formatting), the original presentation is at "
+"<ulink url=\"http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117\"> http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117</ulink>."
+msgstr ""
+"Pour plus d'astuces (et un meilleur format), la présentation original est "
+"ici <ulink url=\"http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117\"> http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117</ulink>."
+
+#. Tag: title
+#: performance_tips.xml:151
+#, no-c-format
+msgid "Startup"
+msgstr "Commencement "
+
+#. Tag: para
+#: performance_tips.xml:153
+#, no-c-format
+msgid "These settings are configured in postgresql.conf:"
+msgstr "Ces réglages sont configurés dans postgresql.conf:"
+
+#. Tag: ulink
+#: performance_tips.xml:158
+#, no-c-format
+msgid "checkpoint_segments"
+msgstr "checkpoint_segments"
+
+#. Tag: para
+#: performance_tips.xml:163
+#, no-c-format
+msgid ""
+"Maximum number of log file segments between automatic WAL checkpoints (each "
+"segment is normally 16MB); default is 3"
+msgstr ""
+"Le nombre maximum de secteurs du fichier journal entre les points de "
+"contrôle automatiques WAL (chaque secteur est normalement à 16MB); par "
+"défaut : 3"
+
+#. Tag: para
+#: performance_tips.xml:169
+#, no-c-format
+msgid ""
+"Set to at least 10 or 30 for databases with heavy write activity, or more "
+"for large database loads. Another article on the topic worth reading <ulink "
+"url=\"http://www.westnet.com/~gsmith/content/postgresql/chkp-bgw-83.htm"
+"\">Greg Smith: Checkpoint and Background writer</ulink>"
+msgstr ""
+"Régler à au moins 10 ou 30 pour des bases de données ayant une activité "
+"d'écriture lourde, ou plus pour les bases de données à grosses charges. Un "
+"autre article sur le sujet mérite d'être lu <ulink url=\"http://www.westnet."
+"com/~gsmith/content/postgresql/chkp-bgw-83.htm\">Greg Smith: Checkpoint and "
+"Background writer</ulink>"
+
+#. Tag: para
+#: performance_tips.xml:175
+#, no-c-format
+msgid "Possibly store the xlog on a separate disk device"
+msgstr "Il est possible de stocker le xlog sur une disque dur externe"
+
+#. Tag: ulink
+#: performance_tips.xml:182
+#, no-c-format
+msgid "constraint_exclusion"
+msgstr "constraint_exclusion"
+
+#. Tag: para
+#: performance_tips.xml:187
+#, no-c-format
+msgid ""
+"Default: off (prior to PostgreSQL 8.4 and for PostgreSQL 8.4+ is set to "
+"partition)"
+msgstr ""
+"Par défaut: off (avant PostgreSQL 8.4 et PostgreSQL 8.4 + est réglé sur "
+"partition)"
+
+#. Tag: para
+#: performance_tips.xml:192
+#, no-c-format
+msgid ""
+"This is generally used for table partitioning. If you are running PostgreSQL "
+"versions below 8.4, set to \"on\" to ensure the query planner will optimize "
+"as desired. As of PostgreSQL 8.4, the default for this is set to \"partition"
+"\" which is ideal for PostgreSQL 8.4 and above since it will force the "
+"planner to only analyze tables for constraint consideration if they are in "
+"an inherited hierarchy and not pay the planner penalty otherwise."
+msgstr ""
+"Ceci est généralement utilisé pour le partitionnement de table. Si vous "
+"utilisez des versions de PostgreSQL inférieur à 8.4 , régler sur \"on\" pour "
+"s'assurer que le planificateur de requêtes optimisera comme désiré. Pour "
+"PostgreSQL 8.4, la valeur par défaut pour ce paramètre est réglé à "
+"\"partition\" qui est idéal pour PostgreSQL 8.4 et au-dessus, car il va "
+"forcer le planificateur à analyser uniquement les tables pour les "
+"contraintes, si elles sont dans une hiérarchie héritée et si elles ne vont "
+"pas pénaliser le planificateur d'un autre coté."
+
+#. Tag: ulink
+#: performance_tips.xml:202
+#, no-c-format
+msgid "shared_buffers"
+msgstr "shared_buffers"
+
+#. Tag: para
+#: performance_tips.xml:207
+#, no-c-format
+msgid "Default: ~32MB"
+msgstr "Par défaut : ~32MB"
+
+#. Tag: para
+#: performance_tips.xml:212
+#, no-c-format
+msgid "Set to about 1/3 to 3/4 of available RAM"
+msgstr "Régler à environ 1/3 jusqu'à 3/4 de la RAM disponible"
+
+#. Tag: title
+#: performance_tips.xml:220
+#, no-c-format
+msgid "Runtime"
+msgstr "Runtime"
+
+#. Tag: para
+#: performance_tips.xml:222
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-WORK-MEM\">work_mem</ulink> (the memory used for sort "
+"operations and complex queries)"
+msgstr ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-WORK-MEM\">work_mem</ulink> (la mémoire utilisé pour les "
+"opérations de tri et les requêtes complexes)"
+
+#. Tag: para
+#: performance_tips.xml:228
+#, no-c-format
+msgid "Default: 1MB"
+msgstr "Par défaut : 1MB"
+
+#. Tag: para
+#: performance_tips.xml:233
+#, no-c-format
+msgid "Adjust up for large dbs, complex queries, lots of RAM"
+msgstr ""
+"Ajuster vers le haut pour de grandes bases de données, des requêtes "
+"complexes, beaucoup de RAM"
+
+#. Tag: para
+#: performance_tips.xml:238
+#, no-c-format
+msgid "Adjust down for many concurrent users or low RAM."
+msgstr "Ajuster vers le bas pour beaucoup d'accès concurrents ou peu de RAM"
+
+#. Tag: para
+#: performance_tips.xml:243
+#, no-c-format
+msgid "If you have lots of RAM and few developers:"
+msgstr "Si vous avez beaucoup de RAM et peu de développeurs: "
+
+#. Tag: programlisting
+#: performance_tips.xml:245
+#, no-c-format
+msgid "SET work_mem TO 1200000;"
+msgstr "SET work_mem TO 1200000;"
+
+#. Tag: para
+#: performance_tips.xml:250
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</ulink> (used "
+"for VACUUM, CREATE INDEX, etc.)"
+msgstr ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</ulink> "
+"(Utilisé pour VACUUM, CREATE INDEX, etc.)"
+
+#. Tag: para
+#: performance_tips.xml:256
+#, no-c-format
+msgid "Default: 16MB"
+msgstr "Par défaut : 16MB"
+
+#. Tag: para
+#: performance_tips.xml:261
+#, no-c-format
+msgid "Generally too low - ties up I/O, locks objects while swapping memory"
+msgstr ""
+"Généralement trop faible en I/O, objets verrouillés pendant les permutations "
+"de mémoire"
+
+#. Tag: para
+#: performance_tips.xml:266
+#, no-c-format
+msgid ""
+"Recommend 32MB to 256MB on production servers w/lots of RAM, but depends on "
+"the # of concurrent users. If you have lots of RAM and few developers:"
+msgstr ""
+"32MB à 256MB sont recommandé sur des serveur de production avec beaucoup de "
+"RAM, but cela dépend du nombre d'accès concurrents. Si vous avez beaucoup de "
+"RAM et peu de développeurs:"
+
+#. Tag: programlisting
+#: performance_tips.xml:269
+#, no-c-format
+msgid "SET maintainence_work_mem TO 1200000;"
+msgstr "SET maintenance_work_mem TO 1200000;"
diff --git a/doc/po/fr/postgis.xml.po b/doc/po/fr/postgis.xml.po
new file mode 100644
index 0000000..86af5a1
--- /dev/null
+++ b/doc/po/fr/postgis.xml.po
@@ -0,0 +1,76 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Rodolphe Quiédeville <rodolphe at quiedeville.org>, 2013
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-10-14 22:36+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: postgis.xml:127
+#, no-c-format
+msgid "PostGIS &last_release_version; Manual"
+msgstr "Manuel PostGIS &last_release_version;"
+
+#. Tag: corpauthor
+#: postgis.xml:131
+#, no-c-format
+msgid "The PostGIS Development Group"
+msgstr ""
+
+#. Tag: affiliation
+#: postgis.xml:137
+#, no-c-format
+msgid ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>British Columbia</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
+msgstr ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>British Columbia</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
+
+#. Tag: para
+#: postgis.xml:151
+#, no-c-format
+msgid ""
+"PostGIS is an extension to the PostgreSQL object-relational database system "
+"which allows GIS (Geographic Information Systems) objects to be stored in "
+"the database. PostGIS includes support for GiST-based R-Tree spatial "
+"indexes, and functions for analysis and processing of GIS objects."
+msgstr ""
+"PostGIS est une extension du système de base de données relationnel-objet "
+"qui permet de stocker des objets SIG (Système d'Information Géographique) "
+"dans la base. PostGIS comporte un support des index spatiaux R-Tree basé sur "
+"GiST et des fonctions d'analyse et de traitement des objets SIG."
+
+#. Tag: para
+#: postgis.xml:160
+#, no-c-format
+msgid "This is the manual for version &last_release_version;"
+msgstr "Manuel de la version &last_release_version;"
+
+#. Tag: para
+#: postgis.xml:161
+#, no-c-format
+msgid ""
+"This work is licensed under a <ulink url=\"http://creativecommons.org/"
+"licenses/by-sa/3.0/\">Creative Commons Attribution-Share Alike 3.0 License</"
+"ulink>. Feel free to use this material any way you like, but we ask that you "
+"attribute credit to the PostGIS Project and wherever possible, a link back "
+"to <ulink url=\"http://postgis.net\">http://postgis.net</ulink>."
+msgstr ""
diff --git a/doc/po/fr/reference.xml.po b/doc/po/fr/reference.xml.po
new file mode 100644
index 0000000..76a2592
--- /dev/null
+++ b/doc/po/fr/reference.xml.po
@@ -0,0 +1,74 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Nicolas Ribot <nicolas.ribot at gmail.com>, 2013
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 23:40+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference.xml:3
+#, no-c-format
+msgid "PostGIS Reference"
+msgstr "Référence PostGIS"
+
+#. Tag: para
+#: reference.xml:5
+#, no-c-format
+msgid ""
+"The functions given below are the ones which a user of PostGIS is likely to "
+"need. There are other functions which are required support functions to the "
+"PostGIS objects which are not of use to a general user."
+msgstr ""
+"Les fonctions suivantes sont celles dont un utilisateur normal de PostGIS "
+"peut avoir besoin. Il existe d'autres fonctions nécessaires au "
+"fonctionnement de PostGIS. Elles ne sont normalement pas destinées à un "
+"utilisateur standard."
+
+#. Tag: para
+#: reference.xml:11
+#, no-c-format
+msgid ""
+"PostGIS has begun a transition from the existing naming convention to an SQL-"
+"MM-centric convention. As a result, most of the functions that you know and "
+"love have been renamed using the standard spatial type (ST) prefix. Previous "
+"functions are still available, though are not listed in this document where "
+"updated functions are equivalent. The non ST_ functions not listed in this "
+"documentation are deprecated and will be removed in a future release so STOP "
+"USING THEM."
+msgstr ""
+"PostGIS a entamé une phase de transition concernant le nom des fonctions "
+"pour les faire correspondre à la norme SQL-MM. La plupart des fonctions ont "
+"été renommées en utilisant le préfixe des types spatiaux (ST, pour Spatial "
+"Type). Les anciennes fonctions, toujours disponibles, ne sont pas listées ci-"
+"après si leur équivalent est disponible. Les fonctions non préfixées par ST, "
+"qui ne sont pas listées dans cette documentation sont dépréciées et seront "
+"supprimées des prochaines version de PostGIS. IL NE FAUT PLUS LES UTILISER. "
+
+#. Tag: chapter
+#: reference.xml:16
+#, fuzzy, no-c-format
+msgid ""
+"&reference_type; &reference_guc; &reference_management; "
+"&reference_constructor; &reference_accessor; &reference_editor; "
+"&reference_output; &reference_operator; &reference_measure; "
+"&reference_sfcgal; &reference_processing; &reference_lrs; "
+"&reference_transaction; &reference_misc; &reference_exception;"
+msgstr ""
+"&reference_type; &reference_management; &reference_constructor; "
+"&reference_accessor; &reference_editor; &reference_output; "
+"&reference_operator; &reference_measure; &reference_processing; "
+"&reference_lrs; &reference_transaction; &reference_misc; "
+"&reference_exception;"
diff --git a/doc/po/fr/reference_accessor.xml.po b/doc/po/fr/reference_accessor.xml.po
new file mode 100644
index 0000000..0b6e637
--- /dev/null
+++ b/doc/po/fr/reference_accessor.xml.po
@@ -0,0 +1,4235 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Arnaud Vandecasteele <arnaud.sig at gmail.com>, 2014
+# Jacolin <yjacolin at free.fr>, 2013-2014
+# max g. <max at mapsnapps.com>, 2014
+# Nicolas Ribot <nicolas.ribot at gmail.com>, 2013
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-08-21 12:03+0000\n"
+"Last-Translator: max g. <max at mapsnapps.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_accessor.xml:4
+#, no-c-format
+msgid "Geometry Accessors"
+msgstr "Fonctions d'accès aux géométries"
+
+#. Tag: refname
+#: reference_accessor.xml:8
+#, no-c-format
+msgid "GeometryType"
+msgstr "GeometryType"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:10
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the type of the geometry as a string. Eg: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</refpurpose>"
+msgstr ""
+"<refpurpose>Retourne le type de la géométrie, par exemple: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:16
+#, no-c-format
+msgid ""
+"<funcdef>text <function>GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: title
+#: reference_accessor.xml:24 reference_accessor.xml:81
+#: reference_accessor.xml:129 reference_accessor.xml:177
+#: reference_accessor.xml:225 reference_accessor.xml:276
+#: reference_accessor.xml:328 reference_accessor.xml:377
+#: reference_accessor.xml:438 reference_accessor.xml:489
+#: reference_accessor.xml:548 reference_accessor.xml:607
+#: reference_accessor.xml:662 reference_accessor.xml:706
+#: reference_accessor.xml:757 reference_accessor.xml:814
+#: reference_accessor.xml:879 reference_accessor.xml:931
+#: reference_accessor.xml:990 reference_accessor.xml:1036
+#: reference_accessor.xml:1071 reference_accessor.xml:1110
+#: reference_accessor.xml:1150 reference_accessor.xml:1194
+#: reference_accessor.xml:1256 reference_accessor.xml:1297
+#: reference_accessor.xml:1341 reference_accessor.xml:1398
+#: reference_accessor.xml:1454 reference_accessor.xml:1497
+#: reference_accessor.xml:1550 reference_accessor.xml:1617
+#: reference_accessor.xml:1660 reference_accessor.xml:1705
+#: reference_accessor.xml:1751 reference_accessor.xml:1793
+#: reference_accessor.xml:1838 reference_accessor.xml:1884
+#: reference_accessor.xml:1926 reference_accessor.xml:1972
+#: reference_accessor.xml:2013
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_accessor.xml:26
+#, no-c-format
+msgid ""
+"<para>Returns the type of the geometry as a string. Eg: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</para>"
+msgstr ""
+"<para>Retourne le type de la géométrie, par exemple: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</para>"
+
+#. Tag: para
+#: reference_accessor.xml:29
+#, no-c-format
+msgid ""
+"OGC SPEC s2.1.1.1 - Returns the name of the instantiable subtype of Geometry "
+"of which this Geometry instance is a member. The name of the instantiable "
+"subtype of Geometry is returned as a string."
+msgstr ""
+"OGC SPEC s2.1.1.1 - Retourne le nom du sous type instanciable de la "
+"géométrie. Le nom est retourné sous forme de texte."
+
+#. Tag: para
+#: reference_accessor.xml:35
+#, no-c-format
+msgid ""
+"This function also indicates if the geometry is measured, by returning a "
+"string of the form 'POINTM'."
+msgstr ""
+"Cette fonction indique si la géométrie comporte une dimension de type "
+"mesure, en retournant un texte de de la forme 'POINTM'."
+
+#. Tag: para
+#: reference_accessor.xml:38 reference_accessor.xml:391
+#: reference_accessor.xml:1155
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+"Amélioration: 2.0.0 introduction du support TIN, Triangles et surfaces "
+"polyhédriques. "
+
+#. Tag: para
+#: reference_accessor.xml:39 reference_accessor.xml:135
+#: reference_accessor.xml:393 reference_accessor.xml:500
+#: reference_accessor.xml:553 reference_accessor.xml:833
+#: reference_accessor.xml:999 reference_accessor.xml:1263
+#: reference_accessor.xml:1305 reference_accessor.xml:1414
+#: reference_accessor.xml:1756
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr "&sfs_compliant;"
+
+#. Tag: para
+#: reference_accessor.xml:40 reference_accessor.xml:137
+#: reference_accessor.xml:234 reference_accessor.xml:396
+#: reference_accessor.xml:562 reference_accessor.xml:627
+#: reference_accessor.xml:673 reference_accessor.xml:1077
+#: reference_accessor.xml:1115 reference_accessor.xml:1417
+#: reference_accessor.xml:1462 reference_accessor.xml:1506
+#: reference_accessor.xml:1670 reference_accessor.xml:1715
+#: reference_accessor.xml:1803 reference_accessor.xml:1848
+#: reference_accessor.xml:1936 reference_accessor.xml:1978
+#: reference_accessor.xml:2023
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: para
+#: reference_accessor.xml:41 reference_accessor.xml:96
+#: reference_accessor.xml:138 reference_accessor.xml:232
+#: reference_accessor.xml:337 reference_accessor.xml:395
+#: reference_accessor.xml:444 reference_accessor.xml:502
+#: reference_accessor.xml:561 reference_accessor.xml:626
+#: reference_accessor.xml:771 reference_accessor.xml:1001
+#: reference_accessor.xml:1041 reference_accessor.xml:1076
+#: reference_accessor.xml:1114 reference_accessor.xml:1159
+#: reference_accessor.xml:1262 reference_accessor.xml:1358
+#: reference_accessor.xml:1416 reference_accessor.xml:1504
+#: reference_accessor.xml:1625 reference_accessor.xml:1669
+#: reference_accessor.xml:1714 reference_accessor.xml:1758
+#: reference_accessor.xml:1802 reference_accessor.xml:1847
+#: reference_accessor.xml:1892 reference_accessor.xml:1935
+#: reference_accessor.xml:1977 reference_accessor.xml:2022
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_accessor.xml:42 reference_accessor.xml:139
+#: reference_accessor.xml:190 reference_accessor.xml:397
+#: reference_accessor.xml:445 reference_accessor.xml:565
+#: reference_accessor.xml:1078 reference_accessor.xml:1160
+#: reference_accessor.xml:1265 reference_accessor.xml:1359
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_accessor.xml:43 reference_accessor.xml:140
+#: reference_accessor.xml:191 reference_accessor.xml:398
+#: reference_accessor.xml:1161
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: title
+#: reference_accessor.xml:49 reference_accessor.xml:101
+#: reference_accessor.xml:145 reference_accessor.xml:195
+#: reference_accessor.xml:244 reference_accessor.xml:298
+#: reference_accessor.xml:342 reference_accessor.xml:450
+#: reference_accessor.xml:508 reference_accessor.xml:632
+#: reference_accessor.xml:680 reference_accessor.xml:725
+#: reference_accessor.xml:776 reference_accessor.xml:840
+#: reference_accessor.xml:896 reference_accessor.xml:956
+#: reference_accessor.xml:1007 reference_accessor.xml:1045
+#: reference_accessor.xml:1083 reference_accessor.xml:1120
+#: reference_accessor.xml:1166 reference_accessor.xml:1206
+#: reference_accessor.xml:1269 reference_accessor.xml:1310
+#: reference_accessor.xml:1365 reference_accessor.xml:1426
+#: reference_accessor.xml:1467 reference_accessor.xml:1516
+#: reference_accessor.xml:1573 reference_accessor.xml:1631
+#: reference_accessor.xml:1675 reference_accessor.xml:1720
+#: reference_accessor.xml:1764 reference_accessor.xml:1808
+#: reference_accessor.xml:1853 reference_accessor.xml:1897
+#: reference_accessor.xml:1941 reference_accessor.xml:1983
+#: reference_accessor.xml:2028
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples"
+
+#. Tag: programlisting
+#: reference_accessor.xml:51
+#, no-c-format
+msgid ""
+"SELECT GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+" geometrytype\n"
+"--------------\n"
+" LINESTRING"
+msgstr ""
+"SELECT GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+" geometrytype\n"
+"--------------\n"
+" LINESTRING"
+
+#. Tag: programlisting
+#: reference_accessor.xml:52
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        POLYHEDRALSURFACE"
+msgstr ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        POLYHEDRALSURFACE"
+
+#. Tag: programlisting
+#: reference_accessor.xml:53
+#, no-c-format
+msgid ""
+"SELECT GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" TIN"
+msgstr ""
+"SELECT GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" TIN"
+
+#. Tag: title
+#: reference_accessor.xml:58 reference_accessor.xml:106
+#: reference_accessor.xml:152 reference_accessor.xml:200
+#: reference_accessor.xml:250 reference_accessor.xml:303
+#: reference_accessor.xml:347 reference_accessor.xml:417
+#: reference_accessor.xml:461 reference_accessor.xml:515
+#: reference_accessor.xml:582 reference_accessor.xml:638
+#: reference_accessor.xml:731 reference_accessor.xml:782
+#: reference_accessor.xml:846 reference_accessor.xml:903
+#: reference_accessor.xml:963 reference_accessor.xml:1013
+#: reference_accessor.xml:1050 reference_accessor.xml:1088
+#: reference_accessor.xml:1127 reference_accessor.xml:1171
+#: reference_accessor.xml:1211 reference_accessor.xml:1234
+#: reference_accessor.xml:1274 reference_accessor.xml:1315
+#: reference_accessor.xml:1372 reference_accessor.xml:1432
+#: reference_accessor.xml:1472 reference_accessor.xml:1522
+#: reference_accessor.xml:1579 reference_accessor.xml:1637
+#: reference_accessor.xml:1682 reference_accessor.xml:1727
+#: reference_accessor.xml:1770 reference_accessor.xml:1815
+#: reference_accessor.xml:1860 reference_accessor.xml:1903
+#: reference_accessor.xml:1948 reference_accessor.xml:1990
+#: reference_accessor.xml:2035
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: refname
+#: reference_accessor.xml:64
+#, no-c-format
+msgid "ST_Boundary"
+msgstr "ST_Boundary"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:66
+#, no-c-format
+msgid "Returns the closure of the combinatorial boundary of this Geometry."
+msgstr "Renvoie l'ensemble formant la frontière finie de cette géométrie."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:72
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Boundary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Boundary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:83
+#, no-c-format
+msgid ""
+"Returns the closure of the combinatorial boundary of this Geometry. The "
+"combinatorial boundary is defined as described in section 3.12.3.2 of the "
+"OGC SPEC. Because the result of this function is a closure, and hence "
+"topologically closed, the resulting boundary can be represented using "
+"representational geometry primitives as discussed in the OGC SPEC, section "
+"3.12.2."
+msgstr ""
+"Renvoie l'ensemble formant la frontière finie de cette géométrie. La notion "
+"de frontière est définie dans la section 3.12.3.2 des spécifications OGC. Le "
+"résultat de cette fonction est un ensemble topologiquement fermé, "
+"représentable avec les types de base, comme décrit dans la section 3.12.2 "
+"des spécifications OGC."
+
+#. Tag: para
+#: reference_accessor.xml:90
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr "Réalisé par le module GEOS"
+
+#. Tag: para
+#: reference_accessor.xml:92
+#, no-c-format
+msgid ""
+"Prior to 2.0.0, this function throws an exception if used with "
+"<varname>GEOMETRYCOLLECTION</varname>. From 2.0.0 up it will return NULL "
+"instead (unsupported input)."
+msgstr ""
+"Avant la version 2.0.0, cette fonction renvoie une exception si une "
+"<varname>GEOMETRYCOLLECTION</varname> est passée en paramètre. A partir de "
+"la 2.0.0, la fonction renvoie null (paramètre non supporté)."
+
+#. Tag: para
+#: reference_accessor.xml:94
+#, no-c-format
+msgid "&sfs_compliant; OGC SPEC s2.1.1.1"
+msgstr "&sfs_compliant; OGC SPEC s2.1.1.1"
+
+#. Tag: para
+#: reference_accessor.xml:95
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.14"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.14"
+
+#. Tag: para
+#: reference_accessor.xml:97
+#, fuzzy, no-c-format
+msgid "Enhanced: 2.1.0 support for Triangle was introduced"
+msgstr ""
+"Amélioration: 2.0.0 introduction du support des surfaces polyhédriques."
+
+#. Tag: programlisting
+#: reference_accessor.xml:103
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 "
+"1)')));\n"
+"st_astext\n"
+"-----------\n"
+"MULTIPOINT(1 1,-1 1)\n"
+"\n"
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 "
+"1))')));\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(1 1,0 0,-1 1,1 1)\n"
+"\n"
+"--Using a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, "
+"1 1 1))')));\n"
+"\n"
+"st_asewkt\n"
+"-----------------------------------\n"
+"LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)\n"
+"\n"
+"--Using a 3d multilinestring\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('MULTILINESTRING((1 1 1,0 0 "
+"0.5, -1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"MULTIPOINT(-1 1 1,1 1 0.75)"
+msgstr ""
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 "
+"1)')));\n"
+"st_astext\n"
+"-----------\n"
+"MULTIPOINT(1 1,-1 1)\n"
+"\n"
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 "
+"1))')));\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(1 1,0 0,-1 1,1 1)\n"
+"\n"
+"--Using a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, "
+"1 1 1))')));\n"
+"\n"
+"st_asewkt\n"
+"-----------------------------------\n"
+"LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)\n"
+"\n"
+"--Using a 3d multilinestring\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('MULTILINESTRING((1 1 1,0 0 "
+"0.5, -1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"MULTIPOINT(-1 1 1,1 1 0.75)"
+
+#. Tag: para
+#: reference_accessor.xml:108
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakePolygon\"/>"
+msgstr ", <xref linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:114
+#, no-c-format
+msgid "ST_CoordDim"
+msgstr "ST_CoordDim"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:116
+#, no-c-format
+msgid ""
+"<refpurpose>Return the coordinate dimension of the ST_Geometry value.</"
+"refpurpose>"
+msgstr ""
+"<refpurpose>Retourne la dimension des coordonnées de la ST_Geometry.</"
+"refpurpose>"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:121
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_CoordDim</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_CoordDim</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:131
+#, no-c-format
+msgid "<para>Return the coordinate dimension of the ST_Geometry value.</para>"
+msgstr ""
+"< para >Retourne la dimension des coordonnées d'une valeur ST_Geometry.</"
+"para >"
+
+#. Tag: para
+#: reference_accessor.xml:133
+#, no-c-format
+msgid "This is the MM compliant alias name for <xref linkend=\"ST_NDims\"/>"
+msgstr "Alias SQL/MM pour la fonction <xref linkend=\"ST_NDims\"/>"
+
+#. Tag: para
+#: reference_accessor.xml:136
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.3"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.3"
+
+#. Tag: programlisting
+#: reference_accessor.xml:147
+#, no-c-format
+msgid ""
+"SELECT ST_CoordDim('CIRCULARSTRING(1 2 3, 1 3 4, 5 6 7, 8 9 10, 11 12 "
+"13)');\n"
+"                        ---result--\n"
+"                                3\n"
+"\n"
+"                                SELECT ST_CoordDim(ST_Point(1,2));\n"
+"                        --result--\n"
+"                                2"
+msgstr ""
+"SELECT ST_CoordDim('CIRCULARSTRING(1 2 3, 1 3 4, 5 6 7, 8 9 10, 11 12 "
+"13)');\n"
+"                        ---result--\n"
+"                                3\n"
+"\n"
+"                                SELECT ST_CoordDim(ST_Point(1,2));\n"
+"                        --result--\n"
+"                                2"
+
+#. Tag: refname
+#: reference_accessor.xml:160
+#, no-c-format
+msgid "ST_Dimension"
+msgstr "ST_Dimension"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:162
+#, no-c-format
+msgid ""
+"The inherent dimension of this Geometry object, which must be less than or "
+"equal to the coordinate dimension."
+msgstr ""
+"La dimension intrinsèque de l'objet Geometry, inférieure ou égale à la "
+"dimension des coordonnées"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:168
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Dimension</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_Dimension</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:179
+#, no-c-format
+msgid ""
+"The inherent dimension of this Geometry object, which must be less than or "
+"equal to the coordinate dimension. OGC SPEC s2.1.1.1 - returns 0 for "
+"<varname>POINT</varname>, 1 for <varname>LINESTRING</varname>, 2 for "
+"<varname>POLYGON</varname>, and the largest dimension of the components of a "
+"<varname>GEOMETRYCOLLECTION</varname>. If unknown (empty geometry) null is "
+"returned."
+msgstr ""
+"La dimension intrinsèque de l'objet Geometry, inférieure ou égale à la "
+"dimension des coordonnées. Section 2.1.1.1 des spécifications OGC. Retourne "
+"0 pour un <varname>POINT</varname>, 1 pour une <varname>LINESTRING</"
+"varname>, 2 pour un  <varname>POLYGON</varname>, et la dimesion maximale des "
+"éléments d'une <varname>GEOMETRYCOLLECTION</varname>. Renvoie NULL pour les "
+"géométries vides  (GEOMETRY EMPTY)."
+
+#. Tag: para
+#: reference_accessor.xml:187
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.2"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.2"
+
+#. Tag: para
+#: reference_accessor.xml:188
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces and TINs was introduced. No "
+"longer throws an exception if given empty geometry."
+msgstr ""
+"Amélioration: 2.0.0 introduction du support TIN et surfaces polyhédriques. "
+"Ne renvoie plus une exception si une GEOMETRY EMPTY est passée. "
+
+#. Tag: para
+#: reference_accessor.xml:189
+#, no-c-format
+msgid ""
+"Prior to 2.0.0, this function throws an exception if used with empty "
+"geometry."
+msgstr ""
+"Avant la version 2.0.0, cette fonction renvoie une exception si une "
+"<varname>GEOMETRY  EMPT</varname> est passée en paramètre."
+
+#. Tag: programlisting
+#: reference_accessor.xml:197
+#, no-c-format
+msgid ""
+"SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))');\n"
+"ST_Dimension\n"
+"-----------\n"
+"1"
+msgstr ""
+"SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))');\n"
+"ST_Dimension\n"
+"-----------\n"
+"1"
+
+#. Tag: refname
+#: reference_accessor.xml:208
+#, no-c-format
+msgid "ST_EndPoint"
+msgstr "ST_EndPoint"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:210
+#, fuzzy, no-c-format
+msgid ""
+"Returns the last point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname>."
+msgstr ""
+"Retourne le dernier point d'une <varname>LINESTRING</varname> sous la forme "
+"d'un <varname>POINT</varname>."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:216
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_EndPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_EndPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:227
+#, no-c-format
+msgid ""
+"Returns the last point of a <varname>LINESTRING</varname> geometry as a "
+"<varname>POINT</varname> or <varname>NULL</varname> if the input parameter "
+"is not a <varname>LINESTRING</varname>."
+msgstr ""
+"Retourne le dernier point d'une <varname>LINESTRING</varname> sous la forme "
+"d'un <varname>POINT</varname>, ou NULL si le paramètre n'est pas une "
+"<varname>LINESTRING</varname>."
+
+#. Tag: para
+#: reference_accessor.xml:231
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.1.4"
+
+#. Tag: para
+#: reference_accessor.xml:235 reference_accessor.xml:1507
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring. The older behavior was an "
+"undocumented feature, but people who assumed they had their data stored as "
+"LINESTRING may experience these returning NULL in 2.0 now."
+msgstr ""
+"Changement: 2.0.0: ne supporte plus les géométries multilinestring avec un "
+"seul élément. Dans les anciennes version de PostGIS, une multilinestring ne "
+"contenant qu'une ligne renvoyait le point d'origine de la ligne. A partir de "
+"la version 2.0.0, la fonction renvoie NULL comme avec toute autre "
+"multilinestring. L'ancien comportement n'était pas documenté. Le nouveau "
+"comportement peut renvoyer null si l'on considère que la table contient des "
+"LINESTRING (multilinestring avec un seul élément) "
+
+#. Tag: programlisting
+#: reference_accessor.xml:246
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::"
+"geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(3 3)\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_EndPoint('POINT(1 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--3d endpoint\n"
+"SELECT ST_AsEWKT(ST_EndPoint('LINESTRING(1 1 2, 1 2 3, 0 0 5)'));\n"
+"  st_asewkt\n"
+"--------------\n"
+" POINT(0 0 5)\n"
+"(1 row)"
+msgstr ""
+"postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::"
+"geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(3 3)\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_EndPoint('POINT(1 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--3d endpoint\n"
+"SELECT ST_AsEWKT(ST_EndPoint('LINESTRING(1 1 2, 1 2 3, 0 0 5)'));\n"
+"  st_asewkt\n"
+"--------------\n"
+" POINT(0 0 5)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:252
+#, no-c-format
+msgid ", <xref linkend=\"ST_StartPoint\"/>"
+msgstr ", <xref linkend=\"ST_StartPoint\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:259
+#, no-c-format
+msgid "ST_Envelope"
+msgstr "ST_Envelope"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:261
+#, no-c-format
+msgid ""
+"Returns a geometry representing the double precision (float8) bounding box "
+"of the supplied geometry."
+msgstr ""
+"Renvoie une géométrie représentant la boite englobante de la géométrie "
+"donnée, sous forme de double precision (float8)."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:267
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:278
+#, no-c-format
+msgid ""
+"Returns the float8 minimum bounding box for the supplied geometry, as a "
+"geometry. The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>)). (PostGIS will add a "
+"<varname>ZMIN</varname>/<varname>ZMAX</varname> coordinate as well)."
+msgstr ""
+"Renvoie une géométrie représentant la boite englobante de la géométrie "
+"donnée, sous forme de float8. Le polygone est défini par les coins de la "
+"boite englobante ((<varname>MINX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MAXY</varname>), (<varname>MAXX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MINY</"
+"varname>), (<varname>MINX</varname>, <varname>MINY</varname>)). (PostGIS "
+"ajoute également les coordonnées <varname>ZMIN</varname>/<varname>ZMAX</"
+"varname>)."
+
+#. Tag: para
+#: reference_accessor.xml:288
+#, no-c-format
+msgid ""
+"Degenerate cases (vertical lines, points) will return a geometry of lower "
+"dimension than <varname>POLYGON</varname>, ie. <varname>POINT</varname> or "
+"<varname>LINESTRING</varname>."
+msgstr ""
+"Les cas dégénérés (lignes verticales, points) renvoient une géométrie de "
+"dimension inférieure à celle d'un <varname>POLYGON</varname>, par exemple "
+"<varname>POINT</varname> ou  <varname>LINESTRING</varname>."
+
+#. Tag: para
+#: reference_accessor.xml:292
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 behavior changed to output double precision instead of "
+"float4"
+msgstr ""
+"Disponibilité: 1.5.0 changement pour renvoyer un type double précision à la "
+"place de float4"
+
+#. Tag: para
+#: reference_accessor.xml:293 reference_accessor.xml:671
+#: reference_accessor.xml:769 reference_accessor.xml:1460
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.1"
+msgstr "&sfs_compliant; s2.1.1.1"
+
+#. Tag: para
+#: reference_accessor.xml:294
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.15"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.15"
+
+#. Tag: programlisting
+#: reference_accessor.xml:300
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(1 3)\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('LINESTRING(0 0, 1 3)'::geometry));\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 3,1 3,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000001 1, 1.0000001 0, 0 "
+"0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000000001 1, "
+"1.0000000001 0, 0 0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"        \n"
+"SELECT Box3D(geom), Box2D(geom), ST_AsText(ST_Envelope(geom)) As "
+"envelopewkt\n"
+"        FROM (SELECT 'POLYGON((0 0, 0 1000012333334.34545678, 1.0000001 1, "
+"1.0000001 0, 0 0))'::geometry As geom) As foo;\n"
+"\n"
+"<!-- TODO: Fix examples to reflect new behavior -->"
+msgstr ""
+"SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(1 3)\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('LINESTRING(0 0, 1 3)'::geometry));\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 3,1 3,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000001 1, 1.0000001 0, 0 "
+"0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000000001 1, "
+"1.0000000001 0, 0 0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"        \n"
+"SELECT Box3D(geom), Box2D(geom), ST_AsText(ST_Envelope(geom)) As "
+"envelopewkt\n"
+"        FROM (SELECT 'POLYGON((0 0, 0 1000012333334.34545678, 1.0000001 1, "
+"1.0000001 0, 0 0))'::geometry As geom) As foo;\n"
+"\n"
+"<!-- TODO: Fix examples to reflect new behavior -->"
+
+#. Tag: para
+#: reference_accessor.xml:305
+#, no-c-format
+msgid ", <xref linkend=\"Box3D\"/>"
+msgstr ", <xref linkend=\"Box3D\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:311
+#, no-c-format
+msgid "ST_ExteriorRing"
+msgstr "ST_ExteriorRing"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:313
+#, no-c-format
+msgid ""
+"Returns a line string representing the exterior ring of the "
+"<varname>POLYGON</varname> geometry. Return NULL if the geometry is not a "
+"polygon. Will not work with MULTIPOLYGON"
+msgstr ""
+"Retourne une ligne représentant l'envelope extérieure du <varname>POLYGON</"
+"varname>. Renvoie NULL si la géométrie n'est pas un polygone. Ne marche pas "
+"avec un objet MULTIPOLYGON"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:319
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ExteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ExteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:330
+#, no-c-format
+msgid ""
+"Returns a line string representing the exterior ring of the "
+"<varname>POLYGON</varname> geometry. Return NULL if the geometry is not a "
+"polygon."
+msgstr ""
+"Retourne une ligne représentant l'envelope extérieure du <varname>POLYGON</"
+"varname>. Renvoie NULL si la géométrie n'est pas un polygone."
+
+#. Tag: para
+#: reference_accessor.xml:333
+#, no-c-format
+msgid "Only works with POLYGON geometry types"
+msgstr "Ne fonctionne qu'avec des géométries POLYGON"
+
+#. Tag: para
+#: reference_accessor.xml:335 reference_accessor.xml:715
+#, no-c-format
+msgid "&sfs_compliant; 2.1.5.1"
+msgstr "&sfs_compliant; 2.1.5.1"
+
+#. Tag: para
+#: reference_accessor.xml:336
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.3, 8.3.3"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.2.3, 8.3.3"
+
+#. Tag: programlisting
+#: reference_accessor.xml:343
+#, no-c-format
+msgid ""
+"--If you have a table of polygons\n"
+"SELECT gid, ST_ExteriorRing(the_geom) AS ering\n"
+"FROM sometable;\n"
+"\n"
+"--If you have a table of MULTIPOLYGONs\n"
+"--and want to return a MULTILINESTRING composed of the exterior rings of "
+"each polygon\n"
+"SELECT gid, ST_Collect(ST_ExteriorRing(the_geom)) AS erings\n"
+"        FROM (SELECT gid, (ST_Dump(the_geom)).geom As the_geom\n"
+"                        FROM sometable) As foo\n"
+"GROUP BY gid;\n"
+"\n"
+"--3d Example\n"
+"SELECT ST_AsEWKT(\n"
+"        ST_ExteriorRing(\n"
+"        ST_GeomFromEWKT('POLYGON((0 0 1, 1 1 1, 1 2 1, 1 1 1, 0 0 1))')\n"
+"        )\n"
+");\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"LINESTRING(0 0 1,1 1 1,1 2 1,1 1 1,0 0 1)"
+msgstr ""
+"--If you have a table of polygons\n"
+"SELECT gid, ST_ExteriorRing(the_geom) AS ering\n"
+"FROM sometable;\n"
+"\n"
+"--If you have a table of MULTIPOLYGONs\n"
+"--and want to return a MULTILINESTRING composed of the exterior rings of "
+"each polygon\n"
+"SELECT gid, ST_Collect(ST_ExteriorRing(the_geom)) AS erings\n"
+"        FROM (SELECT gid, (ST_Dump(the_geom)).geom As the_geom\n"
+"                        FROM sometable) As foo\n"
+"GROUP BY gid;\n"
+"\n"
+"--3d Example\n"
+"SELECT ST_AsEWKT(\n"
+"        ST_ExteriorRing(\n"
+"        ST_GeomFromEWKT('POLYGON((0 0 1, 1 1 1, 1 2 1, 1 1 1, 0 0 1))')\n"
+"        )\n"
+");\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"LINESTRING(0 0 1,1 1 1,1 2 1,1 1 1,0 0 1)"
+
+#. Tag: para
+#: reference_accessor.xml:349
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_NumInteriorRings\"/>"
+msgstr ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_NumInteriorRings\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:359
+#, no-c-format
+msgid "ST_GeometryN"
+msgstr "ST_GeometryN"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:361
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
+"(MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, "
+"POLYHEDRALSURFACE Otherwise, return NULL."
+msgstr ""
+"Retourne la nième géométrie, n commençant à 1, si la géométrie passée en "
+"paramètre est de type GEOMETRYCOLLECTION, (MULTI)POINT, (MULTI)LINESTRING, "
+"MULTICURVE ou (MULTI)POLYGON, POLYHEDRALSURFACE. Renvoie NULL dans les "
+"autres cas."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:368
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeometryN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeometryN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:379
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
+"(MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, "
+"POLYHEDRALSURFACE Otherwise, return NULL"
+msgstr ""
+"Retourne la nième géométrie, n commençant à 1, si la géométrie passée en "
+"paramètre est de type GEOMETRYCOLLECTION, (MULTI)POINT, (MULTI)LINESTRING, "
+"MULTICURVE ou (MULTI)POLYGON, POLYHEDRALSURFACE. Renvoie NULL dans les "
+"autres cas."
+
+#. Tag: para
+#: reference_accessor.xml:384 reference_accessor.xml:1405
+#, no-c-format
+msgid ""
+"Index is 1-based as for OGC specs since version 0.8.0. Previous versions "
+"implemented this as 0-based instead."
+msgstr ""
+"L'index commence à 1 pour respecter les spécificarions OGC depuis la version "
+"0.8.0. Dans les versions antérieures, l'index commençait à 0."
+
+#. Tag: para
+#: reference_accessor.xml:389
+#, no-c-format
+msgid ""
+"If you want to extract all geometries, of a geometry, ST_Dump is more "
+"efficient and will also work for singular geoms."
+msgstr ""
+"Si toutes les géométries composant une géométrie doivent être extraites, il "
+"faut mieux utiliser la fonction ST_Dump, qui est plus efficace et accepte "
+"les types simples en paramètre."
+
+#. Tag: para
+#: reference_accessor.xml:392
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Prior versions would return NULL for singular geometries. "
+"This was changed to return the geometry for ST_GeometryN(..,1) case."
+msgstr ""
+"Changement: 2.0.0. Les versions antérieures renvoient NULL pour les "
+"géometries simples (un seul objet). Renvoie désormais la géométrie pour le "
+"cas ST_GeometryN(..,1)."
+
+#. Tag: para
+#: reference_accessor.xml:394
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.1.5"
+msgstr "&sqlmm_compliant; SQL-MM 3: 9.1.5"
+
+#. Tag: title
+#: reference_accessor.xml:404
+#, no-c-format
+msgid "Standard Examples"
+msgstr "Exemples"
+
+#. Tag: programlisting
+#: reference_accessor.xml:406
+#, no-c-format
+msgid ""
+"--Extracting a subset of points from a 3d multipoint\n"
+"SELECT n, ST_AsEWKT(ST_GeometryN(the_geom, n)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('MULTIPOINT(1 2 7, 3 4 7, 5 6 7, 8 9 10)') ),\n"
+"( ST_GeomFromEWKT('MULTICURVE(CIRCULARSTRING(2.5 2.5,4.5 2.5, 3.5 3.5), (10 "
+"11, 12 11))') )\n"
+"        )As foo(the_geom)\n"
+"        CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);\n"
+"\n"
+" n |               geomewkt\n"
+"---+-----------------------------------------\n"
+" 1 | POINT(1 2 7)\n"
+" 2 | POINT(3 4 7)\n"
+" 3 | POINT(5 6 7)\n"
+" 4 | POINT(8 9 10)\n"
+" 1 | CIRCULARSTRING(2.5 2.5,4.5 2.5,3.5 3.5)\n"
+" 2 | LINESTRING(10 11,12 11)\n"
+"\n"
+"\n"
+"--Extracting all geometries (useful when you want to assign an id)\n"
+"SELECT gid, n, ST_GeometryN(the_geom, n)\n"
+"FROM sometable CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);"
+msgstr ""
+"--Extracting a subset of points from a 3d multipoint\n"
+"SELECT n, ST_AsEWKT(ST_GeometryN(the_geom, n)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('MULTIPOINT(1 2 7, 3 4 7, 5 6 7, 8 9 10)') ),\n"
+"( ST_GeomFromEWKT('MULTICURVE(CIRCULARSTRING(2.5 2.5,4.5 2.5, 3.5 3.5), (10 "
+"11, 12 11))') )\n"
+"        )As foo(the_geom)\n"
+"        CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);\n"
+"\n"
+" n |               geomewkt\n"
+"---+-----------------------------------------\n"
+" 1 | POINT(1 2 7)\n"
+" 2 | POINT(3 4 7)\n"
+" 3 | POINT(5 6 7)\n"
+" 4 | POINT(8 9 10)\n"
+" 1 | CIRCULARSTRING(2.5 2.5,4.5 2.5,3.5 3.5)\n"
+" 2 | LINESTRING(10 11,12 11)\n"
+"\n"
+"\n"
+"--Extracting all geometries (useful when you want to assign an id)\n"
+"SELECT gid, n, ST_GeometryN(the_geom, n)\n"
+"FROM sometable CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);"
+
+#. Tag: title
+#: reference_accessor.xml:409
+#, no-c-format
+msgid "Polyhedral Surfaces, TIN and Triangle Examples"
+msgstr "Exemples TIN, Triangle et Surfaces Polyhédriques"
+
+#. Tag: programlisting
+#: reference_accessor.xml:410
+#, no-c-format
+msgid ""
+"-- Polyhedral surface example\n"
+"-- Break a Polyhedral surface into its faces\n"
+"SELECT ST_AsEWKT(ST_GeometryN(p_geom,3)) As geom_ewkt\n"
+"  FROM (SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")')  AS p_geom )  AS a;\n"
+"\n"
+"                geom_ewkt\n"
+"------------------------------------------\n"
+" POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))"
+msgstr ""
+"-- Polyhedral surface example\n"
+"-- Break a Polyhedral surface into its faces\n"
+"SELECT ST_AsEWKT(ST_GeometryN(p_geom,3)) As geom_ewkt\n"
+"  FROM (SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")')  AS p_geom )  AS a;\n"
+"\n"
+"                geom_ewkt\n"
+"------------------------------------------\n"
+" POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))"
+
+#. Tag: programlisting
+#: reference_accessor.xml:412
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT ST_AsEWKT(ST_GeometryN(geom,2)) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+"-- result --\n"
+"                 wkt\n"
+"-------------------------------------\n"
+" TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+msgstr ""
+"-- TIN --                \n"
+"SELECT ST_AsEWKT(ST_GeometryN(geom,2)) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+"-- result --\n"
+"                 wkt\n"
+"-------------------------------------\n"
+" TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+
+#. Tag: para
+#: reference_accessor.xml:419 reference_accessor.xml:1276
+#, no-c-format
+msgid ", <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ", <xref linkend=\"ST_NumGeometries\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:425
+#, no-c-format
+msgid "ST_GeometryType"
+msgstr "ST_GeometryType"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:426
+#, no-c-format
+msgid "Return the geometry type of the ST_Geometry value."
+msgstr "Renvoie le type de la géométrie passée en paramètre."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:431
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:440
+#, no-c-format
+msgid ""
+"Returns the type of the geometry as a string. EG: 'ST_Linestring', "
+"'ST_Polygon','ST_MultiPolygon' etc. This function differs from "
+"GeometryType(geometry) in the case of the string and ST in front that is "
+"returned, as well as the fact that it will not indicate whether the geometry "
+"is measured."
+msgstr ""
+"Renvoie le type de la géométrie sous forme de texte, par exemple: "
+"'ST_Linestring', 'ST_Polygon','ST_MultiPolygon' etc. Cette fonction diffère "
+"de GeometryType(geometry) par la casse du texte renvoyé et par le préfixe "
+"ST_ en début de texte. N'indique pas si la géométrie comporte une dimension "
+"MESURE."
+
+#. Tag: para
+#: reference_accessor.xml:442 reference_accessor.xml:563
+#: reference_accessor.xml:1074
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+"Amélioration: 2.0.0 introduction du support des surfaces polyhédriques."
+
+#. Tag: para
+#: reference_accessor.xml:443
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.4"
+
+#. Tag: programlisting
+#: reference_accessor.xml:452
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                        --result\n"
+"                        ST_LineString"
+msgstr ""
+"SELECT ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                        --result\n"
+"                        ST_LineString"
+
+#. Tag: programlisting
+#: reference_accessor.xml:454 reference_accessor.xml:456
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        ST_PolyhedralSurface"
+msgstr ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        ST_PolyhedralSurface"
+
+#. Tag: programlisting
+#: reference_accessor.xml:458
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" ST_Tin"
+msgstr ""
+"SELECT ST_GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" ST_Tin"
+
+#. Tag: refname
+#: reference_accessor.xml:471
+#, no-c-format
+msgid "ST_InteriorRingN"
+msgstr "ST_InteriorRingN"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:473
+#, no-c-format
+msgid ""
+"Return the Nth interior linestring ring of the polygon geometry. Return NULL "
+"if the geometry is not a polygon or the given N is out of range."
+msgstr ""
+"Retourne la nième ligne intérieure du polygone passé en paramètre. Renvoie "
+"NULL si la géométrie n'est pas un polygone ou si l'index ne correspond pas à "
+"un intérieur."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:480
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_InteriorRingN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_InteriorRingN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:491
+#, no-c-format
+msgid ""
+"Return the Nth interior linestring ring of the polygon geometry. Return NULL "
+"if the geometry is not a polygon or the given N is out of range. index "
+"starts at 1."
+msgstr ""
+"Retourne la nième ligne intérieure du polygone passé en paramètre. Renvoie "
+"NULL si la géométrie n'est pas un polygone ou si l'index ne correspond pas à "
+"un intérieur. L'index démarre à 1."
+
+#. Tag: para
+#: reference_accessor.xml:497
+#, no-c-format
+msgid ""
+"This will not work for MULTIPOLYGONs. Use in conjunction with ST_Dump for "
+"MULTIPOLYGONS"
+msgstr ""
+"Ne support pas les MULTIPOLYGON. Utiliser en association avec ST_Dump pour "
+"les MULTIPOLYGON"
+
+#. Tag: para
+#: reference_accessor.xml:501
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.6, 8.3.5"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.2.6, 8.3.5"
+
+#. Tag: programlisting
+#: reference_accessor.xml:510
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_InteriorRingN(the_geom, 1)) As the_geom\n"
+"FROM (SELECT ST_BuildArea(\n"
+"                ST_Collect(ST_Buffer(ST_Point(1,2), 20,3),\n"
+"                        ST_Buffer(ST_Point(1, 2), 10,3))) As the_geom\n"
+"                )  as foo"
+msgstr ""
+"SELECT ST_AsText(ST_InteriorRingN(the_geom, 1)) As the_geom\n"
+"FROM (SELECT ST_BuildArea(\n"
+"                ST_Collect(ST_Buffer(ST_Point(1,2), 20,3),\n"
+"                        ST_Buffer(ST_Point(1, 2), 10,3))) As the_geom\n"
+"                )  as foo"
+
+#. Tag: para
+#: reference_accessor.xml:517
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend="
+"\"ST_NumInteriorRing\"/>,"
+msgstr ""
+", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend="
+"\"ST_NumInteriorRing\"/>,"
+
+#. Tag: refname
+#: reference_accessor.xml:530
+#, no-c-format
+msgid "ST_IsClosed"
+msgstr "ST_IsClosed"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:532
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
+"and end points are coincident. For Polyhedral surface is closed (volumetric)."
+msgstr ""
+"Renvoie <varname>TRUE</varname> si les premier et dernier points de la  "
+"<varname>LINESTRING</varname> sont identiques. Pour les surface "
+"polyhédriques, indique si la surface est surfacique (ouverte) ou "
+"volumétrique (fermée)."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:539
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsClosed</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsClosed</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:550
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
+"and end points are coincident. For Polyhedral Surfaces, it tells you if the "
+"surface is areal (open) or volumetric (closed)."
+msgstr ""
+"Renvoie <varname>TRUE</varname> si les premier et dernier points de la  "
+"<varname>LINESTRING</varname> sont identiques. Pour les surface "
+"polyhédriques, indique si la surface est surfacique (ouverte) ou "
+"volumétrique (fermée)."
+
+#. Tag: para
+#: reference_accessor.xml:554
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.5, 9.3.3"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.1.5, 9.3.3"
+
+#. Tag: para
+#: reference_accessor.xml:556
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of <function>ST_IsClosed(<varname>NULL</varname>)</"
+"function> to be 0, while PostGIS returns <varname>NULL</varname>."
+msgstr ""
+"La norme SQL-MM indique que le résultat de la fonction "
+"<function>ST_IsClosed(<varname>NULL</varname>)</function> doit être 0 ; "
+"PostGIS renvoie <varname>NULL</varname>."
+
+#. Tag: title
+#: reference_accessor.xml:570
+#, no-c-format
+msgid "Line String and Point Examples"
+msgstr "Exemples: points et lignes"
+
+#. Tag: programlisting
+#: reference_accessor.xml:572
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 0 1, 1 1, 0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTILINESTRING((0 0, 0 1, 1 1, 0 0),(0 0, 1 "
+"1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('POINT(0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTIPOINT((0 0), (1 1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 0 1, 1 1, 0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTILINESTRING((0 0, 0 1, 1 1, 0 0),(0 0, 1 "
+"1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('POINT(0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTIPOINT((0 0), (1 1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+
+#. Tag: title
+#: reference_accessor.xml:576
+#, no-c-format
+msgid "Polyhedral Surface Examples"
+msgstr "Exemples: surfaces polyhédriques"
+
+#. Tag: programlisting
+#: reference_accessor.xml:578
+#, no-c-format
+msgid ""
+"-- A cube --\n"
+"                SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 "
+"0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"\n"
+"\n"
+" -- Same as cube but missing a side --\n"
+" SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" f"
+msgstr ""
+"-- A cube --\n"
+"                SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 "
+"0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"\n"
+"\n"
+" -- Same as cube but missing a side --\n"
+" SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" f"
+
+#. Tag: refname
+#: reference_accessor.xml:590
+#, no-c-format
+msgid "ST_IsCollection"
+msgstr "ST_IsCollection"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:592
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the argument is a collection "
+"(<varname>MULTI*</varname>, <varname>GEOMETRYCOLLECTION</varname>, ...)"
+msgstr ""
+"Renvoie <varname>TRUE</varname> si le paramètre est une collection "
+"(<varname>MULTI*</varname>, <varname>GEOMETRYCOLLECTION</varname>, ...)"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:599
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:609
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the geometry type of the argument is "
+"either:"
+msgstr "Renvoie <varname>TRUE</varname> le type de la géométrie est soit:"
+
+#. Tag: para
+#: reference_accessor.xml:612
+#, no-c-format
+msgid "GEOMETRYCOLLECTION"
+msgstr "GEOMETRYCOLLECTION"
+
+#. Tag: para
+#: reference_accessor.xml:613
+#, no-c-format
+msgid "MULTI{POINT,POLYGON,LINESTRING,CURVE,SURFACE}"
+msgstr "MULTI{POINT,POLYGON,LINESTRING,CURVE,SURFACE}"
+
+#. Tag: para
+#: reference_accessor.xml:614
+#, no-c-format
+msgid "COMPOUNDCURVE"
+msgstr "COMPOUNDCURVE"
+
+#. Tag: para
+#: reference_accessor.xml:619
+#, no-c-format
+msgid ""
+"This function analyzes the type of the geometry. This means that it will "
+"return <varname>TRUE</varname> on collections that are empty or that contain "
+"a single element."
+msgstr ""
+"Cette fonction analyse le type de la géométrie. Renvoie <varname>TRUE</"
+"varname> pour les collections vides ou ne contenant q'un seul élément."
+
+#. Tag: programlisting
+#: reference_accessor.xml:634
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_IsCollection('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT EMPTY'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0), (42 42))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('GEOMETRYCOLLECTION(POINT(0 0))'::"
+"geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+"postgis=# SELECT ST_IsCollection('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT EMPTY'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0), (42 42))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('GEOMETRYCOLLECTION(POINT(0 0))'::"
+"geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_accessor.xml:646
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr "ST_IsEmpty"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:648
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is an empty geometrycollection, polygon, point "
+"etc."
+msgstr ""
+"Renvoie vrai si la géométrie est une  geometrycollection vide, un polygon, "
+"un point etc. "
+
+#. Tag: funcprototype
+#: reference_accessor.xml:654
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:664
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is an empty geometry. If true, then this "
+"Geometry represents an empty geometry collection, polygon, point etc."
+msgstr ""
+"Renvoie vrai si la géométrie est une  géométrie vide. Si le résultat est "
+"vrai alors cette géométrie représente une geometrycollection vide, un "
+"polygon, un point etc. "
+
+#. Tag: para
+#: reference_accessor.xml:667
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsEmpty(NULL) to be 0, while PostGIS returns "
+"NULL."
+msgstr ""
+"La norme SQL-MM stipule que ST_IsEmpty(NULL) doit renvoyer 0. PostGIS "
+"renvoie NULL."
+
+#. Tag: para
+#: reference_accessor.xml:672
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.7"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.7"
+
+#. Tag: para
+#: reference_accessor.xml:674
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards"
+msgstr ""
+"Changement: 2.0.0 dans les version précédentes de PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') etait autorisé. C'est désormais "
+"interdit dans PostGIS 2.0.0 pour respecter la norme SQL/MM."
+
+#. Tag: programlisting
+#: reference_accessor.xml:682
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+"\n"
+" st_isempty\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))')) = "
+"false;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('CIRCULARSTRING EMPTY'));\n"
+"  st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_IsEmpty(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+"\n"
+" st_isempty\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))')) = "
+"false;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('CIRCULARSTRING EMPTY'));\n"
+"  st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_accessor.xml:689
+#, no-c-format
+msgid "ST_IsRing"
+msgstr "ST_IsRing"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:691
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
+"both closed and simple."
+msgstr ""
+"Renvoie <varname>TRUE</varname> si la  <varname>LINESTRING</varname> est à "
+"la fois fermée et simple."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:697
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:708
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
+"both <xref linkend=\"ST_IsClosed\"/> (<function>ST_StartPoint(<parameter>g</"
+"parameter>)</function> <function>~=</function> "
+"<function>ST_Endpoint(<parameter>g</parameter>)</function>) and <xref "
+"linkend=\"ST_IsSimple\"/> (does not self intersect)."
+msgstr ""
+"Renvoie <varname>TRUE</varname> si cette <varname>LINESTRING</varname> est à "
+"la fois <xref linkend=\"ST_IsClosed\"/> "
+"(<function>ST_StartPoint(<parameter>g</parameter>)</function> <function>~=</"
+"function> <function>ST_Endpoint(<parameter>g</parameter>)</function>) et "
+"<xref linkend=\"ST_IsSimple\"/> (pas d'auto intersection)."
+
+#. Tag: para
+#: reference_accessor.xml:716
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.6"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.1.6"
+
+#. Tag: para
+#: reference_accessor.xml:718
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of <function>ST_IsRing(<varname>NULL</varname>)</"
+"function> to be 0, while PostGIS returns <varname>NULL</varname>."
+msgstr ""
+"La norme SQL-MM stipule que <function>ST_IsRing(<varname>NULL</varname>)</"
+"function> doit renvoyer 0. PostGIS renvoie <varname>NULL</varname>."
+
+#. Tag: programlisting
+#: reference_accessor.xml:727
+#, no-c-format
+msgid ""
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 1, 1 0, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" t         | t           | t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 0, 1 1, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" f         | t           | f\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 1, 1 0, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" t         | t           | t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 0, 1 1, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" f         | t           | f\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:733
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_StartPoint\"/>, <xref "
+"linkend=\"ST_EndPoint\"/>"
+msgstr ""
+", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_StartPoint\"/>, <xref "
+"linkend=\"ST_EndPoint\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:741
+#, no-c-format
+msgid "ST_IsSimple"
+msgstr "ST_IsSimple"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:743
+#, no-c-format
+msgid ""
+"Returns (TRUE) if this Geometry has no anomalous geometric points, such as "
+"self intersection or self tangency."
+msgstr ""
+"Renvoie (TRUE) si cette géométrie ne présente pas d'anomalie comme une auto "
+"intersection ou des segments tangentiels."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:749
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsSimple</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsSimple</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:759
+#, no-c-format
+msgid ""
+"Returns true if this Geometry has no anomalous geometric points, such as "
+"self intersection or self tangency. For more information on the OGC's "
+"definition of geometry simplicity and validity, refer to <link linkend="
+"\"OGC_Validity\">\"Ensuring OpenGIS compliancy of geometries\"</link>"
+msgstr ""
+"Renvoie TRUE si cette géométrie ne présente pas d'anomalie comme une auto "
+"intersection ou des segments tangentiels. Pour plus d'information sur les "
+"notions OGC de simplicité et de validité, se référer à  <link linkend="
+"\"OGC_Validity\">\"Ensuring OpenGIS compliancy of geometries\"</link>"
+
+#. Tag: para
+#: reference_accessor.xml:765
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsSimple(NULL) to be 0, while PostGIS "
+"returns NULL."
+msgstr ""
+"La norme SQL-MM indique que le résultat de la fonction <function> "
+"ST_IsSimple(<varname>NULL</varname>)</function> doit être 0 ; PostGIS "
+"renvoie <varname>NULL</varname>."
+
+#. Tag: para
+#: reference_accessor.xml:770
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.8"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.8"
+
+#. Tag: programlisting
+#: reference_accessor.xml:778
+#, no-c-format
+msgid ""
+"SELECT ST_IsSimple(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+" st_issimple\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsSimple(ST_GeomFromText('LINESTRING(1 1,2 2,2 3.5,1 3,1 2,2 "
+"1)'));\n"
+" st_issimple\n"
+"-------------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_IsSimple(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+" st_issimple\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsSimple(ST_GeomFromText('LINESTRING(1 1,2 2,2 3.5,1 3,1 2,2 "
+"1)'));\n"
+" st_issimple\n"
+"-------------\n"
+" f\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_accessor.xml:790
+#, no-c-format
+msgid "ST_IsValid"
+msgstr "ST_IsValid"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:792
+#, no-c-format
+msgid ""
+"Returns <varname>true</varname> if the <varname>ST_Geometry</varname> is "
+"well formed."
+msgstr ""
+"Renvoie <varname>true</varname> si la  <varname>ST_Geometry</varname> est "
+"correctement constituée."
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:798
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_IsValid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>flags</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_IsValid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>flags</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_accessor.xml:816
+#, no-c-format
+msgid ""
+"Test if an ST_Geometry value is well formed. For geometries that are "
+"invalid, the PostgreSQL NOTICE will provide details of why it is not valid. "
+"For more information on the OGC's definition of geometry simplicity and "
+"validity, refer to <link linkend=\"OGC_Validity\">\"Ensuring OpenGIS "
+"compliancy of geometries\"</link>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:822
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsValid(NULL) to be 0, while PostGIS returns "
+"NULL."
+msgstr ""
+"SQL-MM définit le résultat de ST_IsValid(NULL) comme 0, pendant que PostGIS "
+"retourne NULL."
+
+#. Tag: para
+#: reference_accessor.xml:826
+#, no-c-format
+msgid ""
+"The version accepting flags is available starting with 2.0.0 and requires "
+"GEOS >= 3.3.0. Such version does not print a NOTICE explaining the "
+"invalidity. Allowed <varname>flags</varname> are documented in <xref linkend="
+"\"ST_IsValidDetail\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:834
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.9"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.9"
+
+#. Tag: programlisting
+#: reference_accessor.xml:842
+#, no-c-format
+msgid ""
+"SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,\n"
+"        ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As "
+"bad_poly\n"
+"--results\n"
+"NOTICE:  Self-intersection at or near point 0 0\n"
+" good_line | bad_poly\n"
+"-----------+----------\n"
+" t         | f"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:848
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/"
+">, <xref linkend=\"ST_Summary\"/>"
+msgstr ""
+", <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/"
+">, <xref linkend=\"ST_Summary\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:859
+#, no-c-format
+msgid "ST_IsValidReason"
+msgstr "ST_IsValidReason"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:861
+#, no-c-format
+msgid ""
+"Returns text stating if a geometry is valid or not and if not valid, a "
+"reason why."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:865
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_IsValidReason</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_IsValidReason</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>flags</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_IsValidReason</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_IsValidReason</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>flags</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_accessor.xml:881
+#, no-c-format
+msgid ""
+"Returns text stating if a geometry is valid or not an if not valid, a reason "
+"why."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:883
+#, no-c-format
+msgid ""
+"Useful in combination with ST_IsValid to generate a detailed report of "
+"invalid geometries and reasons."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:885
+#, no-c-format
+msgid ""
+"Allowed <varname>flags</varname> are documented in <xref linkend="
+"\"ST_IsValidDetail\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:889
+#, no-c-format
+msgid "Availability: 1.4 - requires GEOS >= 3.1.0."
+msgstr "Disponibilité: 1.4 - nécessite GEOS >= 3.1.0."
+
+#. Tag: para
+#: reference_accessor.xml:890
+#, no-c-format
+msgid ""
+"Availability: 2.0 - requires GEOS >= 3.3.0 for the version taking flags."
+msgstr "Disponibilité: 2.0 - nécessite GEOS >=  >= 3.3.0"
+
+#. Tag: programlisting
+#: reference_accessor.xml:898
+#, no-c-format
+msgid ""
+"--First 3 Rejects from a successful quintuplet experiment\n"
+"SELECT gid, ST_IsValidReason(the_geom) as validity_info\n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      validity_info\n"
+"------+--------------------------\n"
+" 5330 | Self-intersection [32 5]\n"
+" 5340 | Self-intersection [42 5]\n"
+" 5350 | Self-intersection [52 5]\n"
+"\n"
+" --simple example\n"
+"SELECT ST_IsValidReason('LINESTRING(220227 150406,2220227 150407,222020 "
+"150410)');\n"
+"\n"
+" st_isvalidreason\n"
+"------------------\n"
+" Valid Geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:905
+#, no-c-format
+msgid ", <xref linkend=\"ST_Summary\"/>"
+msgstr ", <xref linkend=\"ST_Summary\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:911
+#, no-c-format
+msgid "ST_IsValidDetail"
+msgstr "ST_IsValidDetail"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:913
+#, no-c-format
+msgid ""
+"Returns a valid_detail (valid,reason,location) row stating if a geometry is "
+"valid or not and if not valid, a reason why and a location where."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:917
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>valid_detail "
+"<function>ST_IsValidDetail</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>flags</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>valid_detail "
+"<function>ST_IsValidDetail</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>flags</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_accessor.xml:933
+#, no-c-format
+msgid ""
+"Returns a valid_detail row, formed by a boolean (valid) stating if a "
+"geometry is valid, a varchar (reason) stating a reason why it is invalid and "
+"a geometry (location) pointing out where it is invalid."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:935
+#, no-c-format
+msgid ""
+"Useful to substitute and improve the combination of ST_IsValid and "
+"ST_IsValidReason to generate a detailed report of invalid geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:937
+#, no-c-format
+msgid "The 'flags' argument is a bitfield. It can have the following values:"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:941
+#, no-c-format
+msgid ""
+"1: Consider self-intersecting rings forming holes as valid. This is also "
+"know as \"the ESRI flag\". Note that this is against the OGC model."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:950
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr "Disponibilité: 2.0.0 - nécessite GEOS >= 3.3.0."
+
+#. Tag: programlisting
+#: reference_accessor.xml:958
+#, no-c-format
+msgid ""
+"--First 3 Rejects from a successful quintuplet experiment\n"
+"SELECT gid, reason(ST_IsValidDetail(the_geom)), "
+"ST_AsText(location(ST_IsValidDetail(the_geom))) as location \n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      reason       |  location\n"
+"------+-------------------+-------------\n"
+" 5330 | Self-intersection | POINT(32 5)\n"
+" 5340 | Self-intersection | POINT(42 5)\n"
+" 5350 | Self-intersection | POINT(52 5)\n"
+"\n"
+" --simple example\n"
+"SELECT * FROM ST_IsValidDetail('LINESTRING(220227 150406,2220227 "
+"150407,222020 150410)');\n"
+"\n"
+" valid | reason | location\n"
+"-------+--------+----------\n"
+" t     |        |"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:965
+#, no-c-format
+msgid ", <xref linkend=\"ST_IsValidReason\"/>"
+msgstr ", <xref linkend=\"ST_IsValidReason\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:974
+#, no-c-format
+msgid "ST_M"
+msgstr "ST_M"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:976
+#, no-c-format
+msgid ""
+"<refpurpose>Return the M coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+"<refpurpose> Retourne les coordonnées M d'un point, ou NULL si non "
+"disponible. L'entrée doit être un point. <refpurpose>"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:982
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_M</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_M</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:992
+#, no-c-format
+msgid ""
+"<para>Return the M coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:996
+#, no-c-format
+msgid ""
+"This is not (yet) part of the OGC spec, but is listed here to complete the "
+"point coordinate extractor function list."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1000 reference_accessor.xml:1891
+#, no-c-format
+msgid "&sqlmm_compliant;"
+msgstr "&sqlmm_compliant;"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1008
+#, no-c-format
+msgid ""
+"SELECT ST_M(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_m\n"
+"------\n"
+"        4\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_M(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+"st_m\n"
+"------\n"
+"4\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:1015
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/"
+">"
+msgstr ""
+", <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/"
+">"
+
+#. Tag: refname
+#: reference_accessor.xml:1021
+#, no-c-format
+msgid "ST_NDims"
+msgstr "ST_NDims"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1022
+#, no-c-format
+msgid ""
+"Returns coordinate dimension of the geometry as a small int. Values are: 2,3 "
+"or 4."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1028
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NDims</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NDims</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1038
+#, no-c-format
+msgid ""
+"Returns the coordinate dimension of the geometry. PostGIS supports 2 - (x,"
+"y) , 3 - (x,y,z) or 2D with measure - x,y,m, and 4 - 3D with measure space x,"
+"y,z,m"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1047
+#, no-c-format
+msgid ""
+"SELECT ST_NDims(ST_GeomFromText('POINT(1 1)')) As d2point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINT(1 1 2)')) As d3point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINTM(1 1 0.5)')) As d2pointm;\n"
+"\n"
+"         d2point | d3point | d2pointm\n"
+"---------+---------+----------\n"
+"           2 |       3 |        3"
+msgstr ""
+"SELECT ST_NDims(ST_GeomFromText('POINT(1 1)')) As d2point,\n"
+"ST_NDims(ST_GeomFromEWKT('POINT(1 1 2)')) As d3point,\n"
+"ST_NDims(ST_GeomFromEWKT('POINTM(1 1 0.5)')) As d2pointm;\n"
+"\n"
+"d2point | d3point | d2pointm\n"
+"---------+---------+----------\n"
+"2 | 3 | 3"
+
+#. Tag: para
+#: reference_accessor.xml:1051
+#, no-c-format
+msgid ", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1057
+#, no-c-format
+msgid "ST_NPoints"
+msgstr "ST_NPoints"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1058
+#, no-c-format
+msgid "Return the number of points (vertexes) in a geometry."
+msgstr "Retourne le nombre de points (vertex) d'un objet géométrique."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1063
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1073
+#, no-c-format
+msgid "Return the number of points in a geometry. Works for all geometries."
+msgstr ""
+"Retourne le nombre de points d'un objet géométrique. Cela fonctionne pour "
+"tous les types de géométrie. "
+
+#. Tag: para
+#: reference_accessor.xml:1075
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1085
+#, no-c-format
+msgid ""
+"SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 "
+"29.31,77.29 29.07)'));\n"
+"--result\n"
+"4\n"
+"\n"
+"--Polygon in 3D space\n"
+"SELECT ST_NPoints(ST_GeomFromEWKT('LINESTRING(77.29 29.07 1,77.42 29.26 "
+"0,77.27 29.31 -1,77.29 29.07 3)'))\n"
+"--result\n"
+"4"
+msgstr ""
+"SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 "
+"29.31,77.29 29.07)'));\n"
+"--result\n"
+"4\n"
+"\n"
+"--Polygon dans un espace en 3 Dimension\n"
+"SELECT ST_NPoints(ST_GeomFromEWKT('LINESTRING(77.29 29.07 1,77.42 29.26 "
+"0,77.27 29.31 -1,77.29 29.07 3)'))\n"
+"--result\n"
+"4"
+
+#. Tag: refname
+#: reference_accessor.xml:1096
+#, no-c-format
+msgid "ST_NRings"
+msgstr "ST_NRings"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1097
+#, no-c-format
+msgid ""
+"If the geometry is a polygon or multi-polygon returns the number of rings."
+msgstr ""
+"Si la géométrie est un polygone ou un multi-polygone renvoi le nombre "
+"d'anneaux."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1102
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1112
+#, no-c-format
+msgid ""
+"If the geometry is a polygon or multi-polygon returns the number of rings. "
+"Unlike NumInteriorRings, it counts the outer rings as well."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1122
+#, no-c-format
+msgid ""
+"SELECT ST_NRings(the_geom) As Nrings, ST_NumInteriorRings(the_geom) As "
+"ninterrings\n"
+"                                        FROM (SELECT "
+"ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))') As the_geom) As foo;\n"
+"         nrings | ninterrings\n"
+"--------+-------------\n"
+"          1 |           0\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1135
+#, no-c-format
+msgid "ST_NumGeometries"
+msgstr "ST_NumGeometries"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1136
+#, no-c-format
+msgid ""
+"If geometry is a GEOMETRYCOLLECTION (or MULTI*) return the number of "
+"geometries, for single geometries will return 1, otherwise return NULL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1142
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumGeometries</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NumGeometries</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1152
+#, no-c-format
+msgid ""
+"Returns the number of Geometries. If geometry is a GEOMETRYCOLLECTION (or "
+"MULTI*) return the number of geometries, for single geometries will return "
+"1, otherwise return NULL."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1156
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this would return NULL if the geometry was "
+"not a collection/MULTI type. 2.0.0+ now returns 1 for single geometries e.g "
+"POLYGON, LINESTRING, POINT."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1158
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.1.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 9.1.4"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1168
+#, no-c-format
+msgid ""
+"--Prior versions would have returned NULL for this -- in 2.0.0 this returns "
+"1\n"
+"SELECT ST_NumGeometries(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"--result\n"
+"1\n"
+"\n"
+"--Geometry Collection Example - multis count as one geom in a collection\n"
+"SELECT ST_NumGeometries(ST_GeomFromEWKT('GEOMETRYCOLLECTION(MULTIPOINT(-2 "
+"3 , -2 2),\n"
+"LINESTRING(5 5 ,10 10),\n"
+"POLYGON((-7 4.2,-7.1 5,-7.1 4.3,-7 4.2)))'));\n"
+"--result\n"
+"3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1173
+#, no-c-format
+msgid ", <xref linkend=\"ST_Multi\"/>"
+msgstr ", <xref linkend=\"ST_Multi\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1179
+#, no-c-format
+msgid "ST_NumInteriorRings"
+msgstr "ST_NumInteriorRings"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1180
+#, no-c-format
+msgid ""
+"Return the number of interior rings of the a polygon in the geometry. This "
+"will work with POLYGON and return NULL for a MULTIPOLYGON type or any other "
+"type"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1186
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumInteriorRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NumInteriorRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1196
+#, no-c-format
+msgid ""
+"Return the number of interior rings of the first polygon in the geometry. "
+"This will work with both POLYGON and MULTIPOLYGON types but only looks at "
+"the first polygon. Return NULL if there is no polygon in the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1201
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.5"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.2.5"
+
+#. Tag: para
+#: reference_accessor.xml:1202
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions it would return the number of interior "
+"rings for the first POLYGON in a MULTIPOLYGON."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1208
+#, no-c-format
+msgid ""
+"--If you have a regular polygon\n"
+"SELECT gid, field1, field2, ST_NumInteriorRings(the_geom) AS numholes\n"
+"FROM sometable;\n"
+"\n"
+"--If you have multipolygons\n"
+"--And you want to know the total number of interior rings in the "
+"MULTIPOLYGON\n"
+"SELECT gid, field1, field2, SUM(ST_NumInteriorRings(the_geom)) AS numholes\n"
+"FROM (SELECT gid, field1, field2, (ST_Dump(the_geom)).geom As the_geom\n"
+"        FROM sometable) As foo\n"
+"GROUP BY gid, field1,field2;"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1219
+#, no-c-format
+msgid "ST_NumInteriorRing"
+msgstr "ST_NumInteriorRing"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1220
+#, fuzzy, no-c-format
+msgid ""
+"Return the number of interior rings of a polygon in the geometry. Synonym "
+"for ST_NumInteriorRings."
+msgstr ""
+"Retourne le nombre de points d'un objet géométrique. Cela fonctionne pour "
+"tous les types de géométrie. "
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1226
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumInteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NumInteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+
+#. Tag: refname
+#: reference_accessor.xml:1242
+#, no-c-format
+msgid "ST_NumPatches"
+msgstr "ST_NumPatches"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1243
+#, no-c-format
+msgid ""
+"Return the number of faces on a Polyhedral Surface. Will return null for non-"
+"polyhedral geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1248
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumPatches</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NumPatches</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1258
+#, no-c-format
+msgid ""
+"Return the number of faces on a Polyhedral Surface. Will return null for non-"
+"polyhedral geometries. This is an alias for ST_NumGeometries to support MM "
+"naming. Faster to use ST_NumGeometries if you don't care about MM convention."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1261 reference_accessor.xml:1356
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr "Disponibilité : 2.0.0"
+
+#. Tag: para
+#: reference_accessor.xml:1264 reference_accessor.xml:1357
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: ?"
+msgstr "&sqlmm_compliant; SQL-MM 3: ?"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1271
+#, no-c-format
+msgid ""
+"SELECT ST_NumPatches(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                --result\n"
+"                6"
+msgstr ""
+"SELECT ST_NumPatches(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                --result\n"
+"                6"
+
+#. Tag: refname
+#: reference_accessor.xml:1282
+#, no-c-format
+msgid "ST_NumPoints"
+msgstr "ST_NumPoints"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1283
+#, no-c-format
+msgid ""
+"Return the number of points in an ST_LineString or ST_CircularString value."
+msgstr ""
+"Retourne le nombre de points d'un objet géométrique dans une valeur "
+"ST_LineString ou ST_CircularString."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1289
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NumPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1299
+#, no-c-format
+msgid ""
+"Return the number of points in an ST_LineString or ST_CircularString value. "
+"Prior to 1.4 only works with Linestrings as the specs state. From 1.4 "
+"forward this is an alias for ST_NPoints which returns number of vertexes for "
+"not just line strings. Consider using ST_NPoints instead which is multi-"
+"purpose and works with many geometry types."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1306
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.2.4"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1312
+#, no-c-format
+msgid ""
+"SELECT ST_NumPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                --result\n"
+"                4"
+msgstr ""
+"SELECT ST_NumPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"--result\n"
+"4"
+
+#. Tag: refname
+#: reference_accessor.xml:1323
+#, no-c-format
+msgid "ST_PatchN"
+msgstr "ST_PatchN"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1325
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry (face) if the geometry is a "
+"POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1332
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PatchN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_PatchN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1343
+#, no-c-format
+msgid ""
+">Return the 1-based Nth geometry (face) if the geometry is a "
+"POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL. This returns "
+"the same answer as ST_GeometryN for Polyhedral Surfaces. Using ST_GemoetryN "
+"is faster."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1349
+#, no-c-format
+msgid "Index is 1-based."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1353
+#, no-c-format
+msgid ""
+"If you want to extract all geometries, of a geometry, ST_Dump is more "
+"efficient."
+msgstr ""
+"Si toutes les géométries composant une géométrie doivent être extraites, "
+"ST_Dump sera plus efficace."
+
+#. Tag: programlisting
+#: reference_accessor.xml:1367
+#, no-c-format
+msgid ""
+"--Extract the 2nd face of the polyhedral surface\n"
+"SELECT ST_AsEWKT(ST_PatchN(geom, 2)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )')) ) As foo(geom);\n"
+"\n"
+"              geomewkt\n"
+"---+-----------------------------------------\n"
+" POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1374
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
+"linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
+"linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1380
+#, no-c-format
+msgid "ST_PointN"
+msgstr "ST_PointN"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1382
+#, fuzzy, no-c-format
+msgid ""
+"Return the Nth point in the first linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
+msgstr ""
+"Retourne la nième ligne intérieure du polygone passé en paramètre. Renvoie "
+"NULL si la géométrie n'est pas un polygone ou si l'index ne correspond pas à "
+"un intérieur."
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1389
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PointN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_PointN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1400
+#, fuzzy, no-c-format
+msgid ""
+"Return the Nth point in a single linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
+msgstr ""
+"Retourne la nième ligne intérieure du polygone passé en paramètre. Renvoie "
+"NULL si la géométrie n'est pas un polygone ou si l'index ne correspond pas à "
+"un intérieur."
+
+#. Tag: para
+#: reference_accessor.xml:1410
+#, no-c-format
+msgid ""
+"If you want to get the nth point of each line string in a multilinestring, "
+"use in conjunction with ST_Dump"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1415
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.5, 7.3.5"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.2.5, 7.3.5"
+
+#. Tag: para
+#: reference_accessor.xml:1418
+#, fuzzy, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring."
+msgstr ""
+"Changement: 2.0.0: ne supporte plus les géométries multilinestring avec un "
+"seul élément. Dans les anciennes version de PostGIS, une multilinestring ne "
+"contenant qu'une ligne renvoyait le point d'origine de la ligne. A partir de "
+"la version 2.0.0, la fonction renvoie NULL comme avec toute autre "
+"multilinestring. L'ancien comportement n'était pas documenté. Le nouveau "
+"comportement peut renvoyer null si l'on considère que la table contient des "
+"LINESTRING (multilinestring avec un seul élément) "
+
+#. Tag: programlisting
+#: reference_accessor.xml:1428
+#, no-c-format
+msgid ""
+"-- Extract all POINTs from a LINESTRING\n"
+"SELECT ST_AsText(\n"
+"   ST_PointN(\n"
+"          column1,\n"
+"          generate_series(1, ST_NPoints(column1))\n"
+"   ))\n"
+"FROM ( VALUES ('LINESTRING(0 0, 1 1, 2 2)'::geometry) ) AS foo;\n"
+"\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 0)\n"
+" POINT(1 1)\n"
+" POINT(2 2)\n"
+"(3 rows)\n"
+"\n"
+"--Example circular string\n"
+"SELECT ST_AsText(ST_PointN(ST_GeomFromText('CIRCULARSTRING(1 2, 3 2, 1 "
+"2)'),2));\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"POINT(3 2)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1440
+#, no-c-format
+msgid "ST_SRID"
+msgstr "ST_SRID"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1441
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier for the ST_Geometry as defined in "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1446
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1456
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier for the ST_Geometry as defined in "
+"spatial_ref_sys table. <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1457
+#, no-c-format
+msgid ""
+"spatial_ref_sys table is a table that catalogs all spatial reference systems "
+"known to PostGIS and is used for transformations from one spatial reference "
+"system to another. So verifying you have the right spatial reference system "
+"identifier is important if you plan to ever transform your geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1461
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.5"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.5"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1469
+#, no-c-format
+msgid ""
+"SELECT ST_SRID(ST_GeomFromText('POINT(-71.1043 42.315)',4326));\n"
+"                --result\n"
+"                4326"
+msgstr ""
+"SELECT ST_SRID(ST_GeomFromText('POINT(-71.1043 42.315)',4326));\n"
+"                --result\n"
+"                4326"
+
+#. Tag: para
+#: reference_accessor.xml:1474
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1480
+#, no-c-format
+msgid "ST_StartPoint"
+msgstr "ST_StartPoint"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1482
+#, no-c-format
+msgid ""
+"Returns the first point of a <varname>LINESTRING</varname> geometry as a "
+"<varname>POINT</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1488
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_StartPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_StartPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1499
+#, fuzzy, no-c-format
+msgid ""
+"Returns the first point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname> "
+"or <varname>NULL</varname> if the input parameter is not a "
+"<varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname>."
+msgstr ""
+"Retourne le dernier point d'une <varname>LINESTRING</varname> sous la forme "
+"d'un <varname>POINT</varname>, ou NULL si le paramètre n'est pas une "
+"<varname>LINESTRING</varname>."
+
+#. Tag: para
+#: reference_accessor.xml:1503
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.3"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.1.3"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1518
+#, fuzzy, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_StartPoint('LINESTRING(0 1, 0 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 1)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_StartPoint('POINT(0 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--3d line\n"
+"SELECT ST_AsEWKT(ST_StartPoint('LINESTRING(0 1 1, 0 2 2)'::geometry));\n"
+" st_asewkt\n"
+"------------\n"
+" POINT(0 1 1)\n"
+"(1 row)\n"
+"\n"
+"-- circular linestring --\n"
+"SELECT ST_AsText(ST_StartPoint('CIRCULARSTRING(5 2,-3 1.999999, -2 1, -4 2, "
+"5 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(5 2)"
+msgstr ""
+"SELECT ST_AsText(ST_StartPoint('LINESTRING(0 1, 0 2)'::geometry));\n"
+"st_astext\n"
+"------------\n"
+"POINT(0 1)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_StartPoint('POINT(0 1)'::geometry) IS NULL AS is_null;\n"
+"is_null\n"
+"----------\n"
+"t\n"
+"(1 row)\n"
+"\n"
+"--3d line\n"
+"SELECT ST_AsEWKT(ST_StartPoint('LINESTRING(0 1 1, 0 2 2)'::geometry));\n"
+"st_asewkt\n"
+"------------\n"
+"POINT(0 1 1)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:1524
+#, no-c-format
+msgid ", <xref linkend=\"ST_PointN\"/>"
+msgstr ", <xref linkend=\"ST_PointN\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1529
+#, no-c-format
+msgid "ST_Summary"
+msgstr "ST_Summary"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1531
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:1537
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_Summary</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_Summary</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_accessor.xml:1552
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1554
+#, no-c-format
+msgid ""
+"Flags shown square brackets after the geometry type have the following "
+"meaning:"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1558
+#, no-c-format
+msgid "M: has M ordinate"
+msgstr "M : possède une ordonnée M"
+
+#. Tag: para
+#: reference_accessor.xml:1559
+#, no-c-format
+msgid "Z: has Z ordinate"
+msgstr "Z : possède une coordonnée Z"
+
+#. Tag: para
+#: reference_accessor.xml:1560
+#, no-c-format
+msgid "B: has a cached bounding box"
+msgstr "B : possède une bounding box en cache"
+
+#. Tag: para
+#: reference_accessor.xml:1561
+#, no-c-format
+msgid "G: is geodetic (geography)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1562
+#, no-c-format
+msgid "S: has spatial reference system"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1566
+#, fuzzy, no-c-format
+msgid "Availability: 1.2.2"
+msgstr "Disponibilité : 2.0.0"
+
+#. Tag: para
+#: reference_accessor.xml:1567
+#, fuzzy, no-c-format
+msgid "Enhanced: 2.0.0 added support for geography"
+msgstr ""
+"Disponibilité: 1.2.2 - 2.0.0 ajout du support pour le type géographique"
+
+#. Tag: para
+#: reference_accessor.xml:1568
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 S flag to denote if has a known spatial reference system"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1575
+#, fuzzy, no-c-format
+msgid ""
+"=# SELECT ST_Summary(ST_GeomFromText('LINESTRING(0 0, 1 1)')) as geom,\n"
+"        ST_Summary(ST_GeogFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) "
+"geog;\n"
+"            geom             |          geog    \n"
+"-----------------------------+--------------------------\n"
+" LineString[B] with 2 points | Polygon[BGS] with 1 rings\n"
+"                             | ring 0 has 5 points\n"
+"                             :\n"
+"(1 row)\n"
+"\n"
+"\n"
+"=# SELECT ST_Summary(ST_GeogFromText('LINESTRING(0 0 1, 1 1 1)')) As "
+"geog_line,\n"
+"        ST_Summary(ST_GeomFromText('SRID=4326;POLYGON((0 0 1, 1 1 2, 1 2 3, "
+"1 1 1, 0 0 1))')) As geom_poly;\n"
+";\n"
+"           geog_line             |        geom_poly\n"
+"-------------------------------- +--------------------------\n"
+" LineString[ZBGS] with 2 points | Polygon[ZBS] with 1 rings\n"
+"                                :    ring 0 has 5 points\n"
+"                                :\n"
+"(1 row)"
+msgstr ""
+"=# SELECT ST_Summary(ST_GeomFromText('LINESTRING(0 0, 1 1)')) as geom,\n"
+"ST_Summary(ST_GeogFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) geog;\n"
+"geom | geog \n"
+"-----------------------------+--------------------------\n"
+"LineString[B] with 2 points | Polygon[BG] with 1 rings\n"
+": ring 0 has 5 points\n"
+":\n"
+"(1 row)\n"
+"\n"
+"\n"
+"=# SELECT ST_Summary(ST_GeogFromText('LINESTRING(0 0 1, 1 1 1)')) As "
+"geog_line,\n"
+"ST_Summary(ST_GeomFromText('POLYGON((0 0 1, 1 1 2, 1 2 3, 1 1 1, 0 0 1))')) "
+"As geom_poly;\n"
+";\n"
+"geog_line | geom_poly\n"
+"-------------------------------+--------------------------\n"
+"LineString[ZBG] with 2 points | Polygon[ZB] with 1 rings\n"
+": ring 0 has 5 points\n"
+":\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:1581
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_AddBBox\"/>, <xref linkend=\"ST_Force_3DM\"/>, "
+"<xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force2D\"/>, <xref "
+"linkend=\"geography\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_AddBBox\"/>, <xref linkend=\"ST_Force_3DM\"/>, "
+"<xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force_2D\"/>, <xref "
+"linkend=\"geography\"/>"
+
+#. Tag: para
+#: reference_accessor.xml:1590
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_IsValidReason\"/>, "
+"<xref linkend=\"ST_IsValidDetail\"/>"
+msgstr ""
+", <xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_IsValidReason\"/>, "
+"<xref linkend=\"ST_IsValidDetail\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1601
+#, no-c-format
+msgid "ST_X"
+msgstr "ST_X"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1603
+#, no-c-format
+msgid ""
+"<refpurpose>Return the X coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1609
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_X</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_X</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1619
+#, no-c-format
+msgid ""
+"<para>Return the X coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1622
+#, no-c-format
+msgid ""
+"If you want to get the max min x values of any geometry look at ST_XMin, "
+"ST_XMax functions."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1624
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.3"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.3"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1632
+#, no-c-format
+msgid ""
+"SELECT ST_X(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_x\n"
+"------\n"
+"        1\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+" st_y\n"
+"------\n"
+"  1.5\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_X(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_x\n"
+"------\n"
+"        1\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+" st_y\n"
+"------\n"
+"  1.5\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:1639
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_Z\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_Z\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1645
+#, no-c-format
+msgid "ST_XMax"
+msgstr "ST_XMax"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1647
+#, no-c-format
+msgid ""
+"<refpurpose>Returns X maxima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1652
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_XMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_XMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1662
+#, no-c-format
+msgid "<para>Returns X maxima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1665 reference_accessor.xml:1710
+#: reference_accessor.xml:1798 reference_accessor.xml:1843
+#: reference_accessor.xml:1931 reference_accessor.xml:2018
+#, no-c-format
+msgid ""
+"Although this function is only defined for box3d, it will work for box2d and "
+"geometry because of the auto-casting behavior defined for geometries and "
+"box2d. However you can not feed it a geometry or box2d text representation, "
+"since that will not auto-cast."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1677
+#, no-c-format
+msgid ""
+"SELECT ST_XMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmax\n"
+"-------\n"
+"4\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmax\n"
+"-------\n"
+"5\n"
+"\n"
+"SELECT ST_XMax(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmax\n"
+"-------\n"
+"3\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_XMax('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmax\n"
+"--------\n"
+"220288.248780547"
+msgstr ""
+"SELECT ST_XMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmax\n"
+"-------\n"
+"4\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmax\n"
+"-------\n"
+"5\n"
+"\n"
+"SELECT ST_XMax(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmax\n"
+"-------\n"
+"3\n"
+"--Observe CELA NE FONCTIONNE PAS par ce qu'il tentera de caster la "
+"représentation de la chaîne vers BOX3D\n"
+"SELECT ST_XMax('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERREUR :  BOX3D parser - ne démarre pas avec BOX3D(\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmax\n"
+"--------\n"
+"220288.248780547"
+
+#. Tag: para
+#: reference_accessor.xml:1684 reference_accessor.xml:1729
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+", <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1690
+#, no-c-format
+msgid "ST_XMin"
+msgstr "ST_XMin"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1692
+#, no-c-format
+msgid ""
+"<refpurpose>Returns X minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1697
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_XMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_XMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1707
+#, no-c-format
+msgid "<para>Returns X minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1722
+#, no-c-format
+msgid ""
+"SELECT ST_XMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmin\n"
+"-------\n"
+"-3\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_XMin('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmin\n"
+"--------\n"
+"220186.995121892"
+msgstr ""
+"SELECT ST_XMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmin\n"
+"-------\n"
+"-3\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_XMin('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR: BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmin\n"
+"--------\n"
+"220186.995121892"
+
+#. Tag: refname
+#: reference_accessor.xml:1735
+#, no-c-format
+msgid "ST_Y"
+msgstr "ST_Y"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1737
+#, no-c-format
+msgid ""
+"<refpurpose>Return the Y coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1743
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Y</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_Y</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1753
+#, no-c-format
+msgid ""
+"<para>Return the Y coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1757
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.4"
+
+#. Tag: programlisting
+#: reference_accessor.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_Y(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_y\n"
+"------\n"
+"        2\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+" st_y\n"
+"------\n"
+"  1.5\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_Y(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+"st_y\n"
+"------\n"
+"2\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+"st_y\n"
+"------\n"
+"1.5\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_accessor.xml:1772
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_X\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/"
+">, <xref linkend=\"ST_Z\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_X\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/"
+">, <xref linkend=\"ST_Z\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1778
+#, no-c-format
+msgid "ST_YMax"
+msgstr "ST_YMax"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1780
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Y maxima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1785
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_YMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_YMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1795
+#, no-c-format
+msgid "<para>Returns Y maxima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1810
+#, no-c-format
+msgid ""
+"SELECT ST_YMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_ymax\n"
+"-------\n"
+"5\n"
+"\n"
+"SELECT ST_YMax(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_ymax\n"
+"-------\n"
+"6\n"
+"\n"
+"SELECT ST_YMax(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_ymax\n"
+"-------\n"
+"4\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_YMax('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_YMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_ymax\n"
+"--------\n"
+"150506.126829327"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1817
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+", <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1823
+#, no-c-format
+msgid "ST_YMin"
+msgstr "ST_YMin"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1825
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Y minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1830
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_YMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_YMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1840
+#, no-c-format
+msgid "<para>Returns Y minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1855
+#, no-c-format
+msgid ""
+"SELECT ST_YMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_ymin\n"
+"-------\n"
+"2\n"
+"\n"
+"SELECT ST_YMin(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_ymin\n"
+"-------\n"
+"3\n"
+"\n"
+"SELECT ST_YMin(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_ymin\n"
+"-------\n"
+"2\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_YMin('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_YMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_ymin\n"
+"--------\n"
+"150406"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1862
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1868
+#, no-c-format
+msgid "ST_Z"
+msgstr "ST_Z"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1870
+#, no-c-format
+msgid ""
+"<refpurpose>Return the Z coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1876
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Z</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_Z</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1886
+#, no-c-format
+msgid ""
+"<para>Return the Z coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1898
+#, no-c-format
+msgid ""
+"SELECT ST_Z(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_z\n"
+"------\n"
+"        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1905
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+", <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1911
+#, no-c-format
+msgid "ST_ZMax"
+msgstr "ST_ZMax"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1913 reference_accessor.xml:2000
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Z minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1918
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_ZMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_ZMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1928
+#, no-c-format
+msgid "Returns Z maxima of a bounding box 2d or 3d or a geometry."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1943
+#, no-c-format
+msgid ""
+"SELECT ST_ZMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_zmax\n"
+"-------\n"
+"6\n"
+"\n"
+"SELECT ST_ZMax(ST_GeomFromEWKT('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_zmax\n"
+"-------\n"
+"7\n"
+"\n"
+"SELECT ST_ZMax('BOX3D(-3 2 1, 3 4 1)' );\n"
+"st_zmax\n"
+"-------\n"
+"1\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_ZMax('LINESTRING(1 3 4, 5 6 7)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_ZMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_zmax\n"
+"--------\n"
+"3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1950
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_ZMax\"/>"
+msgstr ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_ZMax\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1956
+#, no-c-format
+msgid "ST_Zmflag"
+msgstr "ST_Zmflag"
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1958
+#, no-c-format
+msgid ""
+"<refpurpose>Returns ZM (dimension semantic) flag of the geometries as a "
+"small int. Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1964
+#, no-c-format
+msgid ""
+"<funcdef>smallint <function>ST_Zmflag</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>smallint <function>ST_Zmflag</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:1974
+#, no-c-format
+msgid ""
+"<para>Returns ZM (dimension semantic) flag of the geometries as a small int. "
+"Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1985
+#, no-c-format
+msgid ""
+"SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRING(1 2, 3 4)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 0\n"
+"\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRINGM(1 2 3, 3 4 3)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 1\n"
+"\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('CIRCULARSTRING(1 2 3, 3 4 3, 5 6 3)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 2\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1992
+#, no-c-format
+msgid ", <xref linkend=\"ST_NDims\"/>, <xref linkend=\"ST_Dimension\"/>"
+msgstr ", <xref linkend=\"ST_NDims\"/>, <xref linkend=\"ST_Dimension\"/>"
+
+#. Tag: refname
+#: reference_accessor.xml:1998
+#, no-c-format
+msgid "ST_ZMin"
+msgstr "ST_ZMin"
+
+#. Tag: funcprototype
+#: reference_accessor.xml:2005
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_ZMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_ZMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+
+#. Tag: para
+#: reference_accessor.xml:2015
+#, no-c-format
+msgid "<para>Returns Z minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:2030
+#, no-c-format
+msgid ""
+"SELECT ST_ZMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_zmin\n"
+"-------\n"
+"3\n"
+"\n"
+"SELECT ST_ZMin(ST_GeomFromEWKT('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_zmin\n"
+"-------\n"
+"4\n"
+"\n"
+"SELECT ST_ZMin('BOX3D(-3 2 1, 3 4 1)' );\n"
+"st_zmin\n"
+"-------\n"
+"1\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_ZMin('LINESTRING(1 3 4, 5 6 7)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_ZMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_zmin\n"
+"--------\n"
+"1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:2037
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_XMin\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin"
+"\"/>, <xref linkend=\"ST_ZMax\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_XMin\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin"
+"\"/>, <xref linkend=\"ST_ZMax\"/>"
diff --git a/doc/po/fr/reference_constructor.xml.po b/doc/po/fr/reference_constructor.xml.po
new file mode 100644
index 0000000..fc1cf29
--- /dev/null
+++ b/doc/po/fr/reference_constructor.xml.po
@@ -0,0 +1,4349 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Nicolas Ribot <nicolas.ribot at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-01 13:46+0000\n"
+"Last-Translator: Nicolas Ribot <nicolas.ribot at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_constructor.xml:3
+#, no-c-format
+msgid "Geometry Constructors"
+msgstr "Constructeurs de géométries"
+
+#. Tag: refname
+#: reference_constructor.xml:6
+#, no-c-format
+msgid "ST_BdPolyFromText"
+msgstr "ST_BdPolyFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:8
+#, no-c-format
+msgid ""
+"<refpurpose>Construct a Polygon given an arbitrary collection of closed "
+"linestrings as a MultiLineString Well-Known text representation.</refpurpose>"
+msgstr ""
+"<refpurpose>Construit un Polygon à partir d'une collection de lignes "
+"fermées, exprimées sous forme de MultiLineString en représentation Well-"
+"Known text.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: title
+#: reference_constructor.xml:23 reference_constructor.xml:72
+#: reference_constructor.xml:123 reference_constructor.xml:159
+#: reference_constructor.xml:188 reference_constructor.xml:215
+#: reference_constructor.xml:267 reference_constructor.xml:318
+#: reference_constructor.xml:366 reference_constructor.xml:409
+#: reference_constructor.xml:438 reference_constructor.xml:481
+#: reference_constructor.xml:555 reference_constructor.xml:594
+#: reference_constructor.xml:645 reference_constructor.xml:677
+#: reference_constructor.xml:730 reference_constructor.xml:777
+#: reference_constructor.xml:822 reference_constructor.xml:860
+#: reference_constructor.xml:905 reference_constructor.xml:964
+#: reference_constructor.xml:1032 reference_constructor.xml:1092
+#: reference_constructor.xml:1131 reference_constructor.xml:1188
+#: reference_constructor.xml:1259 reference_constructor.xml:1304
+#: reference_constructor.xml:1385 reference_constructor.xml:1428
+#: reference_constructor.xml:1470 reference_constructor.xml:1531
+#: reference_constructor.xml:1592 reference_constructor.xml:1646
+#: reference_constructor.xml:1697 reference_constructor.xml:1740
+#: reference_constructor.xml:1796 reference_constructor.xml:1845
+#: reference_constructor.xml:1899 reference_constructor.xml:1942
+#: reference_constructor.xml:1965
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_constructor.xml:25
+#, no-c-format
+msgid ""
+"<para>Construct a Polygon given an arbitrary collection of closed "
+"linestrings as a MultiLineString Well-Known text representation.</para>"
+msgstr ""
+"<para>Construit un Polygon à partir d'une collection de lignes fermées, "
+"exprimées sous forme de MultiLineString en représentation Well-Known text.</"
+"para>"
+
+#. Tag: para
+#: reference_constructor.xml:30
+#, no-c-format
+msgid ""
+"Throws an error if WKT is not a MULTILINESTRING. Throws an error if output "
+"is a MULTIPOLYGON; use ST_BdMPolyFromText in that case, or see "
+"ST_BuildArea() for a postgis-specific approach."
+msgstr ""
+"Renvoie une erreur si le WKT n'est pas une MULTILINESTRING. Renvoie une "
+"erreur si le résultat est un MULTIPOLYGON. Utiliser ST_BdMPolyFromText dans "
+"ce cas, ou voir ST_BuildArea()  pour une approche basée sur une fonction "
+"spécifique."
+
+#. Tag: para
+#: reference_constructor.xml:36 reference_constructor.xml:88
+#: reference_constructor.xml:281 reference_constructor.xml:921
+#: reference_constructor.xml:989 reference_constructor.xml:1055
+#: reference_constructor.xml:1486 reference_constructor.xml:1608
+#: reference_constructor.xml:1910
+#, no-c-format
+msgid "&sfs_compliant; s3.2.6.2"
+msgstr "&sfs_compliant; s3.2.6.2"
+
+#. Tag: para
+#: reference_constructor.xml:38 reference_constructor.xml:90
+#, no-c-format
+msgid "Availability: 1.1.0 - requires GEOS >= 2.1.0."
+msgstr "Disponibilité: 1.1.0 - nécessite GEOS >= 2.1.0."
+
+#. Tag: title
+#: reference_constructor.xml:42 reference_constructor.xml:94
+#: reference_constructor.xml:135 reference_constructor.xml:165
+#: reference_constructor.xml:230 reference_constructor.xml:288
+#: reference_constructor.xml:332 reference_constructor.xml:380
+#: reference_constructor.xml:450 reference_constructor.xml:566
+#: reference_constructor.xml:698 reference_constructor.xml:746
+#: reference_constructor.xml:791 reference_constructor.xml:830
+#: reference_constructor.xml:868 reference_constructor.xml:928
+#: reference_constructor.xml:996 reference_constructor.xml:1060
+#: reference_constructor.xml:1100 reference_constructor.xml:1147
+#: reference_constructor.xml:1400 reference_constructor.xml:1435
+#: reference_constructor.xml:1493 reference_constructor.xml:1554
+#: reference_constructor.xml:1615 reference_constructor.xml:1709
+#: reference_constructor.xml:1764 reference_constructor.xml:1814
+#: reference_constructor.xml:1863 reference_constructor.xml:1915
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples"
+
+#. Tag: programlisting
+#: reference_constructor.xml:44 reference_constructor.xml:96
+#, no-c-format
+msgid "Forthcoming"
+msgstr "A venir"
+
+#. Tag: title
+#: reference_constructor.xml:48 reference_constructor.xml:100
+#: reference_constructor.xml:139 reference_constructor.xml:169
+#: reference_constructor.xml:193 reference_constructor.xml:235
+#: reference_constructor.xml:295 reference_constructor.xml:345
+#: reference_constructor.xml:386 reference_constructor.xml:414
+#: reference_constructor.xml:454 reference_constructor.xml:534
+#: reference_constructor.xml:573 reference_constructor.xml:621
+#: reference_constructor.xml:652 reference_constructor.xml:702
+#: reference_constructor.xml:753 reference_constructor.xml:798
+#: reference_constructor.xml:837 reference_constructor.xml:875
+#: reference_constructor.xml:935 reference_constructor.xml:1003
+#: reference_constructor.xml:1067 reference_constructor.xml:1107
+#: reference_constructor.xml:1154 reference_constructor.xml:1231
+#: reference_constructor.xml:1274 reference_constructor.xml:1338
+#: reference_constructor.xml:1404 reference_constructor.xml:1441
+#: reference_constructor.xml:1500 reference_constructor.xml:1561
+#: reference_constructor.xml:1622 reference_constructor.xml:1673
+#: reference_constructor.xml:1713 reference_constructor.xml:1768
+#: reference_constructor.xml:1821 reference_constructor.xml:1870
+#: reference_constructor.xml:1922 reference_constructor.xml:1946
+#: reference_constructor.xml:1969
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: para
+#: reference_constructor.xml:49
+#, no-c-format
+msgid ", <xref linkend=\"ST_BdMPolyFromText\"/>"
+msgstr ", <xref linkend=\"ST_BdMPolyFromText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:55
+#, no-c-format
+msgid "ST_BdMPolyFromText"
+msgstr "ST_BdMPolyFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:56
+#, no-c-format
+msgid ""
+"Construct a MultiPolygon given an arbitrary collection of closed linestrings "
+"as a MultiLineString text representation Well-Known text representation."
+msgstr ""
+"Construit un MultiPolygon à partir d'une collection de lignes fermées, "
+"exprimées sous forme de MultiLineString en représentation Well-Known text."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:63
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BdMPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdMPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:74
+#, no-c-format
+msgid ""
+"Construct a Polygon given an arbitrary collection of closed linestrings, "
+"polygons, MultiLineStrings as Well-Known text representation."
+msgstr ""
+"Construit un Polygon à partir d'une collection de lignes fermées, de "
+"polygones ou de MultiLineStrings exprimés en représentation Well-Known text."
+
+#. Tag: para
+#: reference_constructor.xml:79
+#, no-c-format
+msgid ""
+"Throws an error if WKT is not a MULTILINESTRING. Forces MULTIPOLYGON output "
+"even when result is really only composed by a single POLYGON; use <link "
+"linkend=\"ST_BdPolyFromText\">ST_BdPolyFromText</link> if you're sure a "
+"single POLYGON will result from operation, or see <link linkend="
+"\"ST_BuildArea\">ST_BuildArea()</link> for a postgis-specific approach."
+msgstr ""
+"Renvoie une erreur si le WKT n'est pas une MULTILINESTRING. Force le type de "
+"retour en MULTIPOLYGON même si le résultat est en fait composé d'un seul "
+"POLYGON. Utiliser <link linkend=\"ST_BdPolyFromText\">ST_BdPolyFromText</"
+"link> si l'on est sûr que le résultat produit des Polygon, ou voir la "
+"fonction spécifique PostGIS <link linkend=\"ST_BuildArea\">ST_BuildArea()</"
+"link>."
+
+#. Tag: para
+#: reference_constructor.xml:101
+#, no-c-format
+msgid ", <xref linkend=\"ST_BdPolyFromText\"/>"
+msgstr ", <xref linkend=\"ST_BdPolyFromText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:107
+#, no-c-format
+msgid "ST_Box2dFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:109
+#, fuzzy, no-c-format
+msgid "<refpurpose>Return a BOX2D from a GeoHash string.</refpurpose>"
+msgstr ""
+"<refpurpose>Retourne un polygone contruit à partir de la ligne et du SRID "
+"donnés.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Box2dFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:125
+#, fuzzy, no-c-format
+msgid "<para>Return a BOX2D from a GeoHash string.</para>"
+msgstr ""
+"<para>Retourne un polygone construit à partir de la ligne et du SRID donnés."
+"</para>"
+
+#. Tag: para
+#: reference_constructor.xml:127
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_Box2dFromGeoHash "
+"returns a BOX2D based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:129
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_Box2dFromGeoHash will use "
+"that many characters from the GeoHash to create the BOX2D. Lower precision "
+"values results in larger BOX2Ds and larger values increase the precision."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:131 reference_constructor.xml:446
+#: reference_constructor.xml:1705
+#, fuzzy, no-c-format
+msgid "Availability: 2.1.0"
+msgstr "Disponibilité: 1.5"
+
+#. Tag: programlisting
+#: reference_constructor.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0');\n"
+"\n"
+"                st_geomfromgeohash\n"
+"--------------------------------------------------\n"
+" BOX(-115.172816 36.114646,-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 0);\n"
+"\n"
+" st_box2dfromgeohash\n"
+"----------------------\n"
+" BOX(-180 -90,180 90)\n"
+"\n"
+" SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10);\n"
+"                            st_box2dfromgeohash\n"
+"---------------------------------------------------------------------------\n"
+" BOX(-115.17282128334 36.1146408319473,-115.172810554504 36.1146461963654)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:141
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:147
+#, no-c-format
+msgid "ST_GeogFromText"
+msgstr "ST_GeogFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:148 reference_constructor.xml:177
+#, no-c-format
+msgid ""
+"Return a specified geography value from Well-Known Text representation or "
+"extended (WKT)."
+msgstr ""
+"Retourne un objet de type geography à partir de sa représentation Well-Know "
+"Text (WKT ou EWKT)."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:152
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeogFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geography <function>ST_GeogFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:160
+#, no-c-format
+msgid ""
+"Returns a geography object from the well-known text or extended well-known "
+"representation. SRID 4326 is assumed. This is an alias for "
+"ST_GeographyFromText. Points are always expressed in long lat form."
+msgstr ""
+"Retourne un objet de type geography à partir de sa représentation Well-Know "
+"Text (WKT ou EWKT). Le SRID 4326 est pris par défaut. Ceci est un alias pour "
+"ST_GeographyFromText. Les coordonnées des points sont exprimées en longitude "
+"latitude."
+
+#. Tag: programlisting
+#: reference_constructor.xml:166
+#, no-c-format
+msgid ""
+"--- converting lon lat coords to geography\n"
+"ALTER TABLE sometable ADD COLUMN geog geography(POINT,4326);\n"
+"UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' "
+"|| lat || ')');"
+msgstr ""
+"--- converting lon lat coords to geography\n"
+"ALTER TABLE sometable ADD COLUMN geog geography(POINT,4326);\n"
+"UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' "
+"|| lat || ')');"
+
+#. Tag: para
+#: reference_constructor.xml:170
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeographyFromText\"/>"
+msgstr ", <xref linkend=\"ST_GeographyFromText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:176
+#, no-c-format
+msgid "ST_GeographyFromText"
+msgstr "ST_GeographyFromText"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:181
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeographyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geography <function>ST_GeographyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:189
+#, no-c-format
+msgid ""
+"Returns a geography object from the well-known text representation. SRID "
+"4326 is assumed."
+msgstr ""
+"Retourne un objet de type geography à partir de sa représentation Well-Know "
+"Text (WKT ou EWKT). SRID 4326 par défaut."
+
+#. Tag: para
+#: reference_constructor.xml:194
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>"
+msgstr ", <xref linkend=\"ST_AsText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:200
+#, no-c-format
+msgid "ST_GeogFromWKB"
+msgstr "ST_GeogFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:201
+#, no-c-format
+msgid ""
+"Creates a geography instance from a Well-Known Binary geometry "
+"representation (WKB) or extended Well Known Binary (EWKB)."
+msgstr ""
+"Retourne un objet de type geography à partir de sa représentation binaire "
+"Well-Know Binary (WKB ou EWKB)."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:207
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:217
+#, no-c-format
+msgid ""
+"The <varname>ST_GeogFromWKB</varname> function, takes a well-known binary "
+"representation (WKB) of a geometry or PostGIS Extended WKB and creates an "
+"instance of the appropriate geography type. This function plays the role of "
+"the Geometry Factory in SQL."
+msgstr ""
+"<varname>ST_GeogFromWKB</varname> prend en paramètre une représentation "
+"binaire d'une géométrie (WKB ou EWKB) et crée une instance de type "
+"geography. Cette fonction assure le rôle de Geometry Factory en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:222
+#, no-c-format
+msgid "If SRID is not specified, it defaults to 4326 (WGS 84 long lat)."
+msgstr ""
+"Si le SRID n'est pas spécifié, la valeur 4326 est prise (WGS 84 long lat)."
+
+#. Tag: para
+#: reference_constructor.xml:224 reference_constructor.xml:326
+#: reference_constructor.xml:374 reference_constructor.xml:691
+#: reference_constructor.xml:741 reference_constructor.xml:1810
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:232
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table\n"
+"SELECT ST_AsText(\n"
+"ST_GeogFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@')\n"
+");\n"
+"                                          st_astext\n"
+"------------------------------------------------------\n"
+" LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)"
+msgstr ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table\n"
+"SELECT ST_AsText(\n"
+"ST_GeogFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@')\n"
+");\n"
+"                                          st_astext\n"
+"------------------------------------------------------\n"
+" LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_constructor.xml:237
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsBinary\"/>"
+msgstr ", <xref linkend=\"ST_AsBinary\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:244
+#, no-c-format
+msgid "ST_GeomCollFromText"
+msgstr "ST_GeomCollFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:246
+#, fuzzy, no-c-format
+msgid ""
+"Makes a collection Geometry from collection WKT with the given SRID. If SRID "
+"is not give, it defaults to 0."
+msgstr ""
+"Construit une collection de geometry à partir d'une collection de géométries "
+"exprimée en texte WKT et du SRID donnée. Si aucun SRID n'est donné, la "
+"valeur par défaut est -1."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:251
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomCollFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomCollFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:269
+#, fuzzy, no-c-format
+msgid ""
+"Makes a collection Geometry from the Well-Known-Text (WKT) representation "
+"with the given SRID. If SRID is not give, it defaults to 0."
+msgstr ""
+"Construit une collection de geometry à partir d'une collection de géométries "
+"exprimée en texte WKT et du SRID donnée. Si aucun SRID n'est donné, la "
+"valeur par défaut est -1."
+
+#. Tag: para
+#: reference_constructor.xml:272 reference_constructor.xml:1475
+#: reference_constructor.xml:1536 reference_constructor.xml:1597
+#: reference_constructor.xml:1905
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite"
+msgstr "OGC SPEC 3.2.6.2 - l'option SRID est issue des tests de conformité"
+
+#. Tag: para
+#: reference_constructor.xml:274
+#, no-c-format
+msgid "Returns null if the WKT is not a GEOMETRYCOLLECTION"
+msgstr "Retourne null si le WKT n'est pas une GEOMETRYCOLLECTION"
+
+#. Tag: para
+#: reference_constructor.xml:276
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are collections, don't "
+"use this function. It is slower than ST_GeomFromText since it adds an "
+"additional validation step."
+msgstr ""
+"Si vous êtes absolument sûrs que toutes les géométries WKT sont des "
+"collections, ne pas utiliser cette fonction. Elle est plus lente que "
+"ST_GeomFromText à cause d'une étape de validation supplémentaire."
+
+#. Tag: para
+#: reference_constructor.xml:282
+#, no-c-format
+msgid "&sqlmm_compliant;"
+msgstr "&sqlmm_compliant;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:290
+#, no-c-format
+msgid ""
+"SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 "
+"4))');"
+msgstr ""
+"SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 "
+"4))');"
+
+#. Tag: para
+#: reference_constructor.xml:297 reference_constructor.xml:1624
+#, no-c-format
+msgid ", <xref linkend=\"ST_SRID\"/>"
+msgstr ", <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:304
+#, no-c-format
+msgid "ST_GeomFromEWKB"
+msgstr "ST_GeomFromEWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:305
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Extended Well-Known Binary "
+"representation (EWKB)."
+msgstr ""
+"Retourne un objet ST_Geometry à partir de sa représentation binaire étendue "
+"(Extended Well-Known Binary representation, EWKB)."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:310
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:319
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
+"binary (EWKT) representation."
+msgstr ""
+"Retourne un objet ST_Geometry à partir de sa représentation textuelle "
+"étendue OGC (Extended Well-Known Text representation, EWKT)."
+
+#. Tag: para
+#: reference_constructor.xml:321
+#, no-c-format
+msgid ""
+"The EWKB format is not an OGC standard, but a PostGIS specific format that "
+"includes the spatial reference system (SRID) identifier"
+msgstr ""
+"Le format EWKB n'est pas une norme OGC, mais un format spécifique à PostGIS "
+"incluant l'identifiant du système de référence des coordonnées (SRID)"
+
+#. Tag: para
+#: reference_constructor.xml:324 reference_constructor.xml:372
+#: reference_constructor.xml:501 reference_constructor.xml:648
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
+msgstr ""
+"Amélioration: 2.0.0 introduction du support TIN et surfaces polyhédriques "
+
+#. Tag: para
+#: reference_constructor.xml:325 reference_constructor.xml:373
+#: reference_constructor.xml:503 reference_constructor.xml:562
+#: reference_constructor.xml:608 reference_constructor.xml:863
+#: reference_constructor.xml:1199 reference_constructor.xml:1316
+#: reference_constructor.xml:1395 reference_constructor.xml:1809
+#: reference_constructor.xml:1857
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_constructor.xml:327 reference_constructor.xml:375
+#: reference_constructor.xml:504
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_constructor.xml:328 reference_constructor.xml:376
+#: reference_constructor.xml:505
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: para
+#: reference_constructor.xml:333
+#, no-c-format
+msgid ""
+"line string binary rep 0f LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932) in NAD 83 long lat (4269)."
+msgstr ""
+"line string binary rep 0f LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932) in NAD 83 long lat (4269)."
+
+#. Tag: para
+#: reference_constructor.xml:335
+#, no-c-format
+msgid ""
+"NOTE: Even though byte arrays are delimited with \\ and may have ', we need "
+"to escape both out with \\ and '' if standard_conforming_strings is off. So "
+"it does not look exactly like its AsEWKB representation."
+msgstr ""
+"NOTE: Si le paramètre standard_conforming_strings est à la valeur off, il "
+"est nécessaire d'échapper les caractères \\ et ' avec \\ et \". Ceci diffère "
+"de la représentation AsEWKB."
+
+#. Tag: programlisting
+#: reference_constructor.xml:337
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\"
+"\\000\\\\003\\\\000\\\\000\\\\000\\\\344J=\n"
+"\\\\013B\\\\312Q\\\\300n\\\\303(\\\\010\\\\036!E@''\\\\277E''K\n"
+"\\\\312Q\\\\300\\\\366{b\\\\235*!E@\\\\225|\\\\354.P\\\\312Q\n"
+"\\\\300p\\\\231\\\\323e1!E@');"
+msgstr ""
+"SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\"
+"\\000\\\\003\\\\000\\\\000\\\\000\\\\344J=\n"
+"\\\\013B\\\\312Q\\\\300n\\\\303(\\\\010\\\\036!E@''\\\\277E''K\n"
+"\\\\312Q\\\\300\\\\366{b\\\\235*!E@\\\\225|\\\\354.P\\\\312Q\n"
+"\\\\300p\\\\231\\\\323e1!E@');"
+
+#. Tag: para
+#: reference_constructor.xml:339
+#, no-c-format
+msgid ""
+"In PostgreSQL 9.1+ - standard_conforming_strings is set to on by default, "
+"where as in past versions it was set to on. You can change defaults as "
+"needed for a single query or at the database or server level. Below is how "
+"you would do it with standard_conforming_strings = on. In this case we "
+"escape the ' with standard ansi ', but slashes are not escaped"
+msgstr ""
+"Dans les versions 9.1 et supérieures de PostgreSQL, le paramètre "
+"standard_conforming_strings est à on par défaut. Il était à off dans les "
+"anciennes versions. La valeur par défaut peut être changée au niveau de la "
+"requête ou au niveau de la base de données. Ci-dessous, un exemple "
+"d'utilisation avec le paramètre standard_conforming_strings = on. Dans ce "
+"cas, le caractère ' est échappé avec le caractère ansi ', mais les slahs ne "
+"sont pas échappés."
+
+#. Tag: programlisting
+#: reference_constructor.xml:342
+#, no-c-format
+msgid ""
+"set standard_conforming_strings = on;\n"
+"SELECT ST_GeomFromEWKB('\\001\\002\\000\\000 "
+"\\255\\020\\000\\000\\003\\000\\000\\000\\344J=\\012\\013B\n"
+"    \\312Q\\300n\\303(\\010\\036!E@''\\277E''K\\012\\312Q\\300\\366{b\\235*!"
+"E@\\225|\\354.P\\312Q\\012\\300p\\231\\323e1')"
+msgstr ""
+"set standard_conforming_strings = on;\n"
+"SELECT ST_GeomFromEWKB('\\001\\002\\000\\000 "
+"\\255\\020\\000\\000\\003\\000\\000\\000\\344J=\\012\\013B\n"
+"    \\312Q\\300n\\303(\\010\\036!E@''\\277E''K\\012\\312Q\\300\\366{b\\235*!"
+"E@\\225|\\354.P\\312Q\\012\\300p\\231\\323e1')"
+
+#. Tag: para
+#: reference_constructor.xml:346
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
+msgstr ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:352
+#, no-c-format
+msgid "ST_GeomFromEWKT"
+msgstr "ST_GeomFromEWKT"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:353
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Extended Well-Known Text "
+"representation (EWKT)."
+msgstr ""
+"Retourne un objet ST_Geometry à partir de sa représentation textuelle "
+"étendue (Extended Well-Known Text representation, EWKT)."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:358
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:367
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
+"text (EWKT) representation."
+msgstr ""
+"Retourne un objet ST_Geometry à partir de sa représentation textuelle "
+"étendue OGC (Extended Well-Known Text representation, EWKT)."
+
+#. Tag: para
+#: reference_constructor.xml:369
+#, no-c-format
+msgid ""
+"The EWKT format is not an OGC standard, but an PostGIS specific format that "
+"includes the spatial reference system (SRID) identifier"
+msgstr ""
+"Le format EWKT n'est pas une norme OGC, mais un format spécifique à PostGIS "
+"incluant l'identifiant du système de référence des coordonnées (SRID)"
+
+#. Tag: programlisting
+#: reference_constructor.xml:381
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTILINESTRING((-71.160281 "
+"42.258729,-71.160837 42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTIPOLYGON(((-71.1031880899493 "
+"42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))');"
+msgstr ""
+"SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTILINESTRING((-71.160281 "
+"42.258729,-71.160837 42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTIPOLYGON(((-71.1031880899493 "
+"42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))');"
+
+#. Tag: programlisting
+#: reference_constructor.xml:382
+#, no-c-format
+msgid ""
+"--3d circular string\n"
+"SELECT ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)');"
+msgstr ""
+"--3d circular string\n"
+"SELECT ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)');"
+
+#. Tag: programlisting
+#: reference_constructor.xml:383
+#, no-c-format
+msgid ""
+"--Polyhedral Surface example\n"
+"SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"        ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"        ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"        ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")');"
+msgstr ""
+"--Polyhedral Surface example\n"
+"SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"        ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"        ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"        ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")');"
+
+#. Tag: para
+#: reference_constructor.xml:387
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:392
+#, no-c-format
+msgid "ST_GeometryFromText"
+msgstr "ST_GeometryFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:393 reference_constructor.xml:1954
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Text representation "
+"(WKT). This is an alias name for ST_GeomFromText"
+msgstr ""
+"Retourne un objet ST_Geometry à partir de sa représentation textuelle Well-"
+"Known Text (WKT). Alias pour ST_GeomFromText"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:396
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeometryFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeometryFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:410 reference_constructor.xml:1855
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr "&sfs_compliant;"
+
+#. Tag: para
+#: reference_constructor.xml:411 reference_constructor.xml:690
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.40"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.40"
+
+#. Tag: refname
+#: reference_constructor.xml:422
+#, fuzzy, no-c-format
+msgid "ST_GeomFromGeoHash"
+msgstr "ST_GeomFromGeoJSON"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:424
+#, no-c-format
+msgid "Return a geometry from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:429
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:440
+#, no-c-format
+msgid ""
+"Return a geometry from a GeoHash string. The geometry will be a polygon "
+"representing the GeoHash bounds."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:442
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_GeomFromGeoHash "
+"returns a polygon based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:444
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_GeomFromGeoHash will use "
+"that many characters from the GeoHash to create the polygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:451
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"                                                        st_astext\n"
+"--------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.172816 36.114646,-115.172816 36.114646,-115.172816 "
+"36.114646,-115.172816 36.114646,-115.172816 36.114646))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"                                                          st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.3125 36.03515625,-115.3125 36.2109375,-114.9609375 "
+"36.2109375,-114.9609375 36.03515625,-115.3125 36.03515625))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                                                                                       st_astext\n"
+"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.17282128334 36.1146408319473,-115.17282128334 "
+"36.1146461963654,-115.172810554504 36.1146461963654,-115.172810554504 "
+"36.1146408319473,-115.17282128334 36.1146408319473))\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:456
+#, fuzzy, no-c-format
+msgid ""
+",<xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:462
+#, no-c-format
+msgid "ST_GeomFromGML"
+msgstr "ST_GeomFromGML"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:463
+#, no-c-format
+msgid ""
+"Takes as input GML representation of geometry and outputs a PostGIS geometry "
+"object"
+msgstr ""
+"Prend en paramètre une représentation GML d'une géométrie et renvoie un "
+"objet PostGIS de type geometry."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:467
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></"
+"funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromGML</function></funcdef> <paramdef><type>text </type> "
+"<parameter>geomgml</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></"
+"funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromGML</function></funcdef> <paramdef><type>text </type> "
+"<parameter>geomgml</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:482
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC GML representation."
+msgstr ""
+"Construit un objet PostGIS ST_Geometry à partir d'une représentation GML OGC."
+
+#. Tag: para
+#: reference_constructor.xml:483
+#, no-c-format
+msgid ""
+"ST_GeomFromGML works only for GML Geometry fragments. It throws an error if "
+"you try to use it on a whole GML document."
+msgstr ""
+"La fonction ST_GeomFromGML fonctionne uniquement avec le fragment GML "
+"représentant la géométrie. Elle renvoie une error si un document GML complet "
+"est utilisé."
+
+#. Tag: para
+#: reference_constructor.xml:484
+#, no-c-format
+msgid ""
+"OGC GML versions supported: <itemizedlist> <listitem> <para>GML 3.2.1 "
+"Namespace</para> </listitem> <listitem> <para>GML 3.1.1 Simple Features "
+"profile SF-2 (with GML 3.1.0 and 3.0.0 backward compatibility)</para> </"
+"listitem> <listitem> <para>GML 2.1.2</para> </listitem> </itemizedlist> OGC "
+"GML standards, cf: <ulink url=\"http://www.opengeospatial.org/standards/gml"
+"\">http://www.opengeospatial.org/standards/gml</ulink>:"
+msgstr ""
+"version OGC GML supportée: <itemizedlist> <listitem> <para>GML 3.2.1 "
+"Namespace</para> </listitem> <listitem> <para>GML 3.1.1 Simple Features "
+"profile SF-2 (with GML 3.1.0 and 3.0.0 backward compatibility)</para> </"
+"listitem> <listitem> <para>GML 2.1.2</para> </listitem> </itemizedlist> OGC "
+"GML standards, cf: <ulink url=\"http://www.opengeospatial.org/standards/gml"
+"\">http://www.opengeospatial.org/standards/gml</ulink>:"
+
+#. Tag: para
+#: reference_constructor.xml:500 reference_constructor.xml:647
+#, no-c-format
+msgid "Availability: 1.5, requires libxml2 1.6+"
+msgstr "Disponibilité: 1.5, nécessite libxml2 1.6+"
+
+#. Tag: para
+#: reference_constructor.xml:502 reference_constructor.xml:649
+#, no-c-format
+msgid "Enhanced: 2.0.0 default srid optional parameter added."
+msgstr "Amélioration: 2.0.0 paramètre optionnel de srid par défaut ajouté. "
+
+#. Tag: para
+#: reference_constructor.xml:506
+#, no-c-format
+msgid ""
+"GML allow mixed dimensions (2D and 3D inside the same MultiGeometry for "
+"instance). As PostGIS geometries don't, ST_GeomFromGML convert the whole "
+"geometry to 2D if a missing Z dimension is found once."
+msgstr ""
+"Le format GML supporte des objets de dimensions différentes (2D et 3D dans "
+"la même MultiGeometry par exemple). PostGIS ne supportant pas cela, la "
+"fonction convertit toute la géometrie en 2D si une seule coordonnée Z manque."
+
+#. Tag: para
+#: reference_constructor.xml:508
+#, no-c-format
+msgid ""
+"GML support mixed SRS inside the same MultiGeometry. As PostGIS geometries "
+"don't, ST_GeomFromGML, in this case, reproject all subgeometries to the SRS "
+"root node. If no srsName attribute available for the GML root node, the "
+"function throw an error."
+msgstr ""
+"Le format GML supporte des objets ayant des SRID différents dans la même "
+"MultiGeometry. PostGIS ne supportant pas cela, ST_GeomFromGML reprojète "
+"toutes les sous géométries dans le SRS du noeud racine. Si aucun attribut "
+"srsName n'est disponible pour le noeud racine GML, la fonction renvoie une "
+"erreur."
+
+#. Tag: para
+#: reference_constructor.xml:510
+#, no-c-format
+msgid ""
+"ST_GeomFromGML function is not pedantic about an explicit GML namespace. You "
+"could avoid to mention it explicitly for common usages. But you need it if "
+"you want to use XLink feature inside GML."
+msgstr ""
+"La fonction ST_GeomFromGML n'impose pas d'utiliser un espace de noms GML "
+"explicite. Pour les usages courants, il peut être ignoré. Il est en revanche "
+"nécessaire en cas d'utilisation de la fonctionnalité XLink dans le GML."
+
+#. Tag: para
+#: reference_constructor.xml:512
+#, no-c-format
+msgid "ST_GeomFromGML function not support SQL/MM curves geometries."
+msgstr ""
+"La fonction ST_GeomFromGML ne supporte pas les géométries de type SQL/MM "
+"courbes."
+
+#. Tag: title
+#: reference_constructor.xml:518 reference_constructor.xml:616
+#, no-c-format
+msgid "Examples - A single geometry with srsName"
+msgstr "Exemple: une géométrie unique avec srsName"
+
+#. Tag: programlisting
+#: reference_constructor.xml:519
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromGML('<![CDATA[\n"
+"                <gml:LineString srsName=\"EPSG:4269\">\n"
+"                        <gml:coordinates>\n"
+"                                -71.16028,42.258729 -71.160837,42.259112 "
+"-71.161143,42.25932\n"
+"                        </gml:coordinates>\n"
+"                </gml:LineString>']]>);"
+msgstr ""
+"SELECT ST_GeomFromGML('<![CDATA[\n"
+"                <gml:LineString srsName=\"EPSG:4269\">\n"
+"                        <gml:coordinates>\n"
+"                                -71.16028,42.258729 -71.160837,42.259112 "
+"-71.161143,42.25932\n"
+"                        </gml:coordinates>\n"
+"                </gml:LineString>']]>);"
+
+#. Tag: title
+#: reference_constructor.xml:523
+#, no-c-format
+msgid "Examples - XLink usage"
+msgstr "Exemple - utilisation de XLink"
+
+#. Tag: programlisting
+#: reference_constructor.xml:524
+#, no-c-format
+msgid ""
+"SELECT <![CDATA[ST_GeomFromGML('\n"
+"                <gml:LineString xmlns:gml=\"http://www.opengis.net/gml\" \n"
+"                                xmlns:xlink=\"http://www.w3.org/1999/xlink"
+"\"\n"
+"                                srsName=\"urn:ogc:def:crs:EPSG::4269\">\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point gml:id=\"p1\"><gml:pos>42.258729 "
+"-71.16028</gml:pos></gml:Point>\n"
+"                        </gml:pointProperty>\n"
+"                        <gml:pos>42.259112 -71.160837</gml:pos>\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point xlink:type=\"simple\" xlink:href="
+"\"#p1\"/>\n"
+"                        </gml:pointProperty>\n"
+"                </gml:LineString>');]]>);"
+msgstr ""
+"SELECT <![CDATA[ST_GeomFromGML('\n"
+"                <gml:LineString xmlns:gml=\"http://www.opengis.net/gml\" \n"
+"                                xmlns:xlink=\"http://www.w3.org/1999/xlink"
+"\"\n"
+"                                srsName=\"urn:ogc:def:crs:EPSG::4269\">\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point gml:id=\"p1\"><gml:pos>42.258729 "
+"-71.16028</gml:pos></gml:Point>\n"
+"                        </gml:pointProperty>\n"
+"                        <gml:pos>42.259112 -71.160837</gml:pos>\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point xlink:type=\"simple\" xlink:href="
+"\"#p1\"/>\n"
+"                        </gml:pointProperty>\n"
+"                </gml:LineString>');]]>);"
+
+#. Tag: title
+#: reference_constructor.xml:528
+#, no-c-format
+msgid "Examples - Polyhedral Surface"
+msgstr "Exemple - Surface Polyhédrique"
+
+#. Tag: programlisting
+#: reference_constructor.xml:529
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(<![CDATA[ST_GeomFromGML('\n"
+"<gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"      <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 0 1 0 1 1 0 1 "
+"0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 1 0 1 1 "
+"0 1 0 0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 1 0 0 1 0 "
+"1 0 0 1 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">1 1 0 1 1 1 1 0 "
+"1 1 0 0 1 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 1 0 0 1 1 1 1 "
+"1 1 1 0 0 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 1 1 0 1 1 1 "
+"1 0 1 1 0 0 1</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>']]>));\n"
+"\n"
+"-- result --\n"
+" POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))"
+msgstr ""
+"SELECT ST_AsEWKT(<![CDATA[ST_GeomFromGML('\n"
+"<gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"      <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 0 1 0 1 1 0 1 "
+"0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 1 0 1 1 "
+"0 1 0 0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 1 0 0 1 0 "
+"1 0 0 1 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">1 1 0 1 1 1 1 0 "
+"1 1 0 0 1 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 1 0 0 1 1 1 1 "
+"1 1 1 0 0 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 1 1 0 1 1 1 "
+"1 0 1 1 0 0 1</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>']]>));\n"
+"\n"
+"-- result --\n"
+" POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))"
+
+#. Tag: para
+#: reference_constructor.xml:535
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
+msgstr ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:541
+#, no-c-format
+msgid "ST_GeomFromGeoJSON"
+msgstr "ST_GeomFromGeoJSON"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:542
+#, no-c-format
+msgid ""
+"Takes as input a geojson representation of a geometry and outputs a PostGIS "
+"geometry object"
+msgstr ""
+"Prend en entrée une géométrie au format geojson et renvoie un objet Postgis "
+"de type geometry."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:547
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomjson</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomjson</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:556
+#, no-c-format
+msgid "Constructs a PostGIS geometry object from the GeoJSON representation."
+msgstr ""
+"Construit un objet Postgis de type geometry à partir d'une représentation "
+"GeoJSON."
+
+#. Tag: para
+#: reference_constructor.xml:557
+#, no-c-format
+msgid ""
+"ST_GeomFromGeoJSON works only for JSON Geometry fragments. It throws an "
+"error if you try to use it on a whole JSON document."
+msgstr ""
+"La fonction ST_GeomFromGeoJSON fonctionne uniquement avec le fragment JSON "
+"représentant la géométrie. Elle renvoie une erreur si un document JSON "
+"complet est utilisé."
+
+#. Tag: para
+#: reference_constructor.xml:559
+#, no-c-format
+msgid "Availability: 2.0.0 requires - JSON-C >= 0.9"
+msgstr "Disponibilité: 2.0.0 nécessite JSON-C >= 0.9"
+
+#. Tag: para
+#: reference_constructor.xml:560
+#, no-c-format
+msgid ""
+"If you do not have JSON-C enabled, support you will get an error notice "
+"instead of seeing an output. To enable JSON-C, run configure --with-jsondir=/"
+"path/to/json-c. See <xref linkend=\"installation_configuration\"/> for "
+"details."
+msgstr ""
+"Si JSON-C  n'est pas disponible sur le système, une erreur est renvoyée. "
+"Pour activer JSON-C, lancer configure --with-jsondir=/path/to/json-c. Cf. "
+"<xref linkend=\"installation_configuration\"/> pour plus de détails."
+
+#. Tag: programlisting
+#: reference_constructor.xml:567
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":"
+"[-48.23456,20.12345]}')) As wkt;\n"
+"wkt\n"
+"------\n"
+"POINT(-48.23456 20.12345)"
+msgstr ""
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":"
+"[-48.23456,20.12345]}')) As wkt;\n"
+"wkt\n"
+"------\n"
+"POINT(-48.23456 20.12345)"
+
+#. Tag: programlisting
+#: reference_constructor.xml:568
+#, no-c-format
+msgid ""
+"-- a 3D linestring\n"
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"LineString\",\"coordinates"
+"\":[[1,2,3],[4,5,6],[7,8,9]]}')) As wkt;\n"
+"\n"
+"wkt\n"
+"-------------------\n"
+"LINESTRING(1 2,4 5,7 8)"
+msgstr ""
+"-- a 3D linestring\n"
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"LineString\",\"coordinates"
+"\":[[1,2,3],[4,5,6],[7,8,9]]}')) As wkt;\n"
+"\n"
+"wkt\n"
+"-------------------\n"
+"LINESTRING(1 2,4 5,7 8)"
+
+#. Tag: para
+#: reference_constructor.xml:574
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend="
+"\"installation_configuration\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend="
+"\"installation_configuration\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:580
+#, no-c-format
+msgid "ST_GeomFromKML"
+msgstr "ST_GeomFromKML"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:581
+#, no-c-format
+msgid ""
+"Takes as input KML representation of geometry and outputs a PostGIS geometry "
+"object"
+msgstr ""
+"Prend en entrée une géométrie au format KML et renvoie un objet Postgis de "
+"type geometry."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:586
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomkml</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomkml</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:595
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC KML representation."
+msgstr ""
+"Construit un objet Postgis de type geometry à partir d'une représentation "
+"OGC KML."
+
+#. Tag: para
+#: reference_constructor.xml:596
+#, no-c-format
+msgid ""
+"ST_GeomFromKML works only for KML Geometry fragments. It throws an error if "
+"you try to use it on a whole KML document."
+msgstr ""
+"La fonction ST_GeomFromKML fonctionne uniquement avec le fragment KML "
+"représentant la géométrie. Elle renvoie une erreur si un document  KML "
+"complet est utilisé."
+
+#. Tag: para
+#: reference_constructor.xml:597
+#, no-c-format
+msgid ""
+"OGC KML versions supported: <itemizedlist> <listitem> <para>KML 2.2.0 "
+"Namespace</para> </listitem> </itemizedlist> OGC KML standards, cf: <ulink "
+"url=\"http://www.opengeospatial.org/standards/kml\">http://www."
+"opengeospatial.org/standards/kml</ulink>:"
+msgstr ""
+"versions OGC KML supportées: <itemizedlist> <listitem> <para>KML 2.2.0 "
+"Namespace</para> </listitem> </itemizedlist> OGC KML standards, cf: <ulink "
+"url=\"http://www.opengeospatial.org/standards/kml\">http://www."
+"opengeospatial.org/standards/kml</ulink>:"
+
+#. Tag: para
+#: reference_constructor.xml:607
+#, no-c-format
+msgid "Availability: 1.5,libxml2 2.6+"
+msgstr "Disponibilité: 1.5, ,libxml2 2.6+"
+
+#. Tag: para
+#: reference_constructor.xml:610
+#, no-c-format
+msgid "ST_GeomFromKML function not support SQL/MM curves geometries."
+msgstr ""
+"La fonction ST_GeomFromGML ne supporte pas les géométries de type SQL/MM "
+"courbes."
+
+#. Tag: programlisting
+#: reference_constructor.xml:617
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromKML('<![CDATA[\n"
+"                <LineString>\n"
+"                        <coordinates>-71.1663,42.2614 \n"
+"                                -71.1667,42.2616</coordinates>\n"
+"                </LineString>']]>);"
+msgstr ""
+"SELECT ST_GeomFromKML('<![CDATA[\n"
+"                <LineString>\n"
+"                        <coordinates>-71.1663,42.2614 \n"
+"                                -71.1667,42.2616</coordinates>\n"
+"                </LineString>']]>);"
+
+#. Tag: para
+#: reference_constructor.xml:622
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsKML\"/>"
+msgstr ", <xref linkend=\"ST_AsKML\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:628
+#, no-c-format
+msgid "ST_GMLToSQL"
+msgstr "ST_GMLToSQL"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:629
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from GML representation. This is an "
+"alias name for ST_GeomFromGML"
+msgstr ""
+"Retourne un objet de type ST_Geometry à partir de sa représentation GML. "
+"Alias pour ST_GeomFromGML"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:632
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_GMLToSQL</"
+"function></funcdef> <paramdef><type>text </type> <parameter>geomgml</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_GMLToSQL</"
+"function></funcdef> <paramdef><type>text </type> <parameter>geomgml</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:646
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.50 (except for curves support)."
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.50 (sauf pour le support des courbes)."
+
+#. Tag: para
+#: reference_constructor.xml:653
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
+msgstr ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:659
+#, no-c-format
+msgid "ST_GeomFromText"
+msgstr "ST_GeomFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:660
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Text representation "
+"(WKT)."
+msgstr ""
+"Retourne un objet ST_Geometry à partir de sa représentation textuelle Well-"
+"Known Text (WKT)."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:663
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:679
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Well-Known text "
+"representation."
+msgstr ""
+"Construit un objet Postgis de type geometry à partir d'une représentation "
+"OGC Well-Known Text WKT."
+
+#. Tag: para
+#: reference_constructor.xml:683
+#, no-c-format
+msgid ""
+"There are 2 variants of ST_GeomFromText function, the first takes no SRID "
+"and returns a geometry with no defined spatial reference system. The second "
+"takes a spatial reference id as the second argument and returns an "
+"ST_Geometry that includes this srid as part of its meta-data. The srid must "
+"be defined in the spatial_ref_sys table."
+msgstr ""
+"Il existe 2 versions de la fonction ST_GeomFromText: la première ne prend "
+"pas de SRID en paramètre et retourne une geometry sans système de "
+"coordonnées. La seconde prend un SRID en second paramètre et retourne une "
+"ST_Geometry incluant un SRID dans ses métadonnées. Ce srid doit "
+"obligatoirement exister dans la table spatial_ref_sys."
+
+#. Tag: para
+#: reference_constructor.xml:689 reference_constructor.xml:1759
+#, no-c-format
+msgid "&sfs_compliant; s3.2.6.2 - option SRID is from the conformance suite."
+msgstr ""
+"&sfs_compliant; s3.2.6.2 - l'option SRID est issue des tests de conformité."
+
+#. Tag: para
+#: reference_constructor.xml:692
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards. This "
+"should now be written as ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
+msgstr ""
+"Changement: 2.0.0 dans les version précédentes de PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') etait autorisé. C'est désormais "
+"interdit dans PostGIS 2.0.0 pour respecter la norme SQL/MM. La forme "
+"privilégiée désormais est:  ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
+
+#. Tag: programlisting
+#: reference_constructor.xml:699
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)',4269);\n"
+"\n"
+"SELECT ST_GeomFromText('MULTILINESTRING((-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromText('POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromText('MULTIPOLYGON(((-71.1031880899493 42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))',4326);\n"
+"\n"
+"SELECT ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406)');"
+msgstr ""
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)',4269);\n"
+"\n"
+"SELECT ST_GeomFromText('MULTILINESTRING((-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromText('POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromText('MULTIPOLYGON(((-71.1031880899493 42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))',4326);\n"
+"\n"
+"SELECT ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406)');"
+
+#. Tag: para
+#: reference_constructor.xml:703
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:709
+#, no-c-format
+msgid "ST_GeomFromWKB"
+msgstr "ST_GeomFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:710
+#, no-c-format
+msgid ""
+"Creates a geometry instance from a Well-Known Binary geometry representation "
+"(WKB) and optional SRID."
+msgstr ""
+"Retourne un objet de type geometry à partir de sa représentation binaire "
+"Well-Know Binary (WKB) et d'un SRID optionnel."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:715 reference_constructor.xml:1781
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromWKB</function></funcdef> <paramdef><type>bytea </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromWKB</function></funcdef> <paramdef><type>bytea </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:732
+#, no-c-format
+msgid ""
+"The <varname>ST_GeomFromWKB</varname> function, takes a well-known binary "
+"representation of a geometry and a Spatial Reference System ID "
+"(<varname>SRID</varname>) and creates an instance of the appropriate "
+"geometry type. This function plays the role of the Geometry Factory in SQL. "
+"This is an alternate name for ST_WKBToSQL."
+msgstr ""
+"<varname> ST_GeomFromWKB </varname> prend en paramètre une représentation "
+"binaire d'une géométrie (WKB ou EWKB) et un SRID optionnel (<varname>SRID</"
+"varname>) et crée une instance de type  geometry. Cette fonction assure le "
+"rôle de Geometry Factory en SQL. Alias pour ST_WKBToSQL."
+
+#. Tag: para
+#: reference_constructor.xml:738
+#, fuzzy, no-c-format
+msgid "If SRID is not specified, it defaults to 0 (Unknown)."
+msgstr ""
+"Si le SRID n'est pas précisé, la valeur -1 (indéfini) est prise par défaut."
+
+#. Tag: para
+#: reference_constructor.xml:739
+#, no-c-format
+msgid ""
+"&sfs_compliant; s3.2.7.2 - the optional SRID is from the conformance suite"
+msgstr ""
+"&sfs_compliant; s3.2.7.2 - le paramètre optionnel est issu des tests de "
+"conformité."
+
+#. Tag: para
+#: reference_constructor.xml:740
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.41"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.41"
+
+#. Tag: programlisting
+#: reference_constructor.xml:748
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@',4326)\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+" SRID=4326;LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@',4326)\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+" SRID=4326;LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_constructor.xml:755
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
+msgstr ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:762
+#, fuzzy, no-c-format
+msgid "ST_GeomFromTWKB"
+msgstr "ST_GeomFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:763
+#, fuzzy, no-c-format
+msgid ""
+"Creates a geometry instance from a Tiny Well-Known Binary geometry "
+"representation (TWKB)."
+msgstr ""
+"Retourne un objet de type geometry à partir de sa représentation binaire "
+"Well-Know Binary (WKB) et d'un SRID optionnel."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:769
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromTWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:779
+#, fuzzy, no-c-format
+msgid ""
+"The <varname>ST_GeomFromTWKB</varname> function, takes a tiny well-known "
+"binary representation of a geometry and creates an instance of the "
+"appropriate geometry type."
+msgstr ""
+"<varname>ST_GeogFromWKB</varname> prend en paramètre une représentation "
+"binaire d'une géométrie (WKB ou EWKB) et crée une instance de type "
+"geography. Cette fonction assure le rôle de Geometry Factory en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:783
+#, fuzzy, no-c-format
+msgid "SRID always defaults to 0 (Unknown)."
+msgstr ""
+"Si le SRID n'est pas précisé, la valeur -1 (indéfini) est prise par défaut."
+
+#. Tag: para
+#: reference_constructor.xml:785
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So a 3D geoemtry in TWKB will "
+"always be a GeometryZ, like PointZ when converted to PostGIS geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:793
+#, fuzzy, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromTWKB(E'\\\\x304202f7f40dbce4040105')\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+"LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromTWKB(\n"
+"          ST_AsTWKB('POINT(2 5)'::geometry,0)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@',4326)\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+" SRID=4326;LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_constructor.xml:800
+#, fuzzy, no-c-format
+msgid ""
+",<xref linkend=\"ST_AsTWKB\"/>,<xref linkend=\"ST_AsTWKBAgg\"/>,<xref "
+"linkend=\"ST_WKBToSQL\"/>, <xref linkend=\"ST_AsBinary\"/>, <xref linkend="
+"\"ST_GeomFromEWKB\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:806
+#, fuzzy, no-c-format
+msgid "ST_LineFromEncodedPolyline"
+msgstr "ST_LineFromMultiPoint"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:808
+#, fuzzy, no-c-format
+msgid "Creates a LineString from an Encoded Polyline."
+msgstr "Crée une linestring à partir de géométries ponctuelles ou linéaires."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:813
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromEncodedPolyline</function></funcdef> "
+"<paramdef><type>text </type> <parameter>polyline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:824
+#, fuzzy, no-c-format
+msgid "Creates a LineString from an Encoded Polyline string."
+msgstr "Crée une linestring à partir de géométries ponctuelles ou linéaires."
+
+#. Tag: para
+#: reference_constructor.xml:825
+#, no-c-format
+msgid ""
+"See http://developers.google.com/maps/documentation/utilities/"
+"polylinealgorithm"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:832
+#, fuzzy, no-c-format
+msgid ""
+"--Create a line string from a polyline\n"
+"SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|"
+"U_ulLnnqC_mqNvxq`@'));\n"
+"--result--\n"
+"LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)"
+msgstr ""
+"--Create a 3d line string from a 3d multipoint\n"
+"SELECT ST_AsEWKT(ST_LineFromMultiPoint(ST_GeomFromEWKT('MULTIPOINT(1 2 3, 4 "
+"5 6, 7 8 9)')));\n"
+"--result--\n"
+"LINESTRING(1 2 3,4 5 6,7 8 9)"
+
+#. Tag: refname
+#: reference_constructor.xml:845
+#, no-c-format
+msgid "ST_LineFromMultiPoint"
+msgstr "ST_LineFromMultiPoint"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:847
+#, no-c-format
+msgid ""
+"<refpurpose>Creates a LineString from a MultiPoint geometry.</refpurpose>"
+msgstr ""
+"<refpurpose>Crée une LineString à partir d'une géométrie MultiPoint.</"
+"refpurpose>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:852
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aMultiPoint</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aMultiPoint</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:862
+#, no-c-format
+msgid "<para>Creates a LineString from a MultiPoint geometry.</para>"
+msgstr "<para>Crée une LineString à partir d'une géométrie MultiPoint.</para>"
+
+#. Tag: programlisting
+#: reference_constructor.xml:870
+#, no-c-format
+msgid ""
+"--Create a 3d line string from a 3d multipoint\n"
+"SELECT ST_AsEWKT(ST_LineFromMultiPoint(ST_GeomFromEWKT('MULTIPOINT(1 2 3, 4 "
+"5 6, 7 8 9)')));\n"
+"--result--\n"
+"LINESTRING(1 2 3,4 5 6,7 8 9)"
+msgstr ""
+"--Create a 3d line string from a 3d multipoint\n"
+"SELECT ST_AsEWKT(ST_LineFromMultiPoint(ST_GeomFromEWKT('MULTIPOINT(1 2 3, 4 "
+"5 6, 7 8 9)')));\n"
+"--result--\n"
+"LINESTRING(1 2 3,4 5 6,7 8 9)"
+
+#. Tag: para
+#: reference_constructor.xml:877
+#, no-c-format
+msgid ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
+msgstr ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:883
+#, no-c-format
+msgid "ST_LineFromText"
+msgstr "ST_LineFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:885
+#, fuzzy, no-c-format
+msgid ""
+"Makes a Geometry from WKT representation with the given SRID. If SRID is not "
+"given, it defaults to 0."
+msgstr ""
+"Construit une géométrie à partir d'une représentation WKT avec le SRID "
+"donné. Si aucun SRID n'est donné, la valeur par défaut est -1."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:890
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LineFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LineFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:907
+#, fuzzy, no-c-format
+msgid ""
+"Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0. If WKT passed in is not a LINESTRING, then null is returned."
+msgstr ""
+"Construit une géométrie à partir d'une représentation WKT avec le SRID "
+"donné. Si aucun SRID n'est donné, la valeur par défaut est -1. Si le WKT ne "
+"représente pas une LINESTRING, la fonction retourne null."
+
+#. Tag: para
+#: reference_constructor.xml:911 reference_constructor.xml:977
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite."
+msgstr "OGC SPEC 3.2.6.2 - option SRID issue des tests de conformité."
+
+#. Tag: para
+#: reference_constructor.xml:916
+#, no-c-format
+msgid ""
+"If you know all your geometries are LINESTRINGS, its more efficient to just "
+"use ST_GeomFromText. This just calls ST_GeomFromText and adds additional "
+"validation that it returns a linestring."
+msgstr ""
+"Si vous êtes sûrs que toutes les géométries WKT sont des LINESTRINGS, la "
+"fonction ST_GeomFromText est plus efficace car elle ne contrôle pas le type "
+"de la géométrie renvoyée."
+
+#. Tag: para
+#: reference_constructor.xml:922
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.8"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.2.8"
+
+#. Tag: programlisting
+#: reference_constructor.xml:930
+#, no-c-format
+msgid ""
+"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, "
+"ST_LineFromText('POINT(1 2)') AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, "
+"ST_LineFromText('POINT(1 2)') AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+
+#. Tag: refname
+#: reference_constructor.xml:943
+#, no-c-format
+msgid "ST_LineFromWKB"
+msgstr "ST_LineFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:945
+#, no-c-format
+msgid "Makes a <varname>LINESTRING</varname> from WKB with the given SRID"
+msgstr ""
+"Construit une <varname>LINESTRING</varname> depuis la représentation binaire "
+"WKB et le srid donné."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:949
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_LineFromWKB</"
+"function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_LineFromWKB</"
+"function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:966
+#, no-c-format
+msgid ""
+"The <varname>ST_LineFromWKB</varname> function, takes a well-known binary "
+"representation of geometry and a Spatial Reference System ID (<varname>SRID</"
+"varname>) and creates an instance of the appropriate geometry type - in this "
+"case, a <varname>LINESTRING</varname> geometry. This function plays the role "
+"of the Geometry Factory in SQL."
+msgstr ""
+"<varname> ST_LineFromWKB </varname> prend en paramètre une représentation "
+"binaire d'une géométrie (WKB ou EWKB) et un SRID  (<varname>SRID</varname>) "
+"et crée une instance du bon type géométrique, en l'occurence une "
+"<varname>LINESTRING</varname>. Cette fonction assure le rôle de Geometry "
+"Factory en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:972
+#, fuzzy, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>LINESTRING</varname>."
+msgstr ""
+"Si le SRID n'est pas précisé, la valeur -1 est prise par défaut.  "
+"<varname>NULL</varname> est retourné si le paramètre <varname>bytea</"
+"varname> donné ne représente pas une  <varname>LINESTRING</varname>."
+
+#. Tag: para
+#: reference_constructor.xml:982
+#, no-c-format
+msgid ""
+"If you know all your geometries are <varname>LINESTRING</varname>s, its more "
+"efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function just "
+"calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation that "
+"it returns a linestring."
+msgstr ""
+"Si vous êtes sûrs que toutes les géométries WKT sont des "
+"<varname>LINESTRING</varname>s, la fonction <xref linkend=\"ST_GeomFromWKB\"/"
+"> est plus efficace car elle ne contrôle pas le type de la géométrie "
+"renvoyée."
+
+#. Tag: para
+#: reference_constructor.xml:990 reference_constructor.xml:1056
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.9"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.2.9"
+
+#. Tag: programlisting
+#: reference_constructor.xml:998
+#, no-c-format
+msgid ""
+"SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) "
+"AS aline,\n"
+"                ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)'))) "
+"IS NULL AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+"SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) "
+"AS aline,\n"
+"                ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)'))) "
+"IS NULL AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+
+#. Tag: para
+#: reference_constructor.xml:1005
+#, no-c-format
+msgid ", <xref linkend=\"ST_LinestringFromWKB\"/>"
+msgstr ", <xref linkend=\"ST_LinestringFromWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1011
+#, no-c-format
+msgid "ST_LinestringFromWKB"
+msgstr "ST_LinestringFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1013
+#, no-c-format
+msgid "Makes a geometry from WKB with the given SRID."
+msgstr ""
+"Construit une géométrie depuis la représentation binaire WKB et le SRID "
+"donné."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1017
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LinestringFromWKB</function></funcdef> <paramdef><type>bytea </"
+"type> <parameter>WKB</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LinestringFromWKB</function></funcdef> <paramdef><type>bytea </"
+"type> <parameter>WKB</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1034
+#, no-c-format
+msgid ""
+"The <varname>ST_LinestringFromWKB</varname> function, takes a well-known "
+"binary representation of geometry and a Spatial Reference System ID "
+"(<varname>SRID</varname>) and creates an instance of the appropriate "
+"geometry type - in this case, a <varname>LINESTRING</varname> geometry. This "
+"function plays the role of the Geometry Factory in SQL."
+msgstr ""
+"La fonction <varname> ST_LinestringFromWKB </varname> prend en paramètre une "
+"représentation binaire d'une géométrie (WKB ou EWKB) et un SRID  "
+"(<varname>SRID</varname>) et crée une instance du bon type géométrique, en "
+"l'occurence une <varname>LINESTRING</varname>. Cette fonction assure le rôle "
+"de Geometry Factory en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:1040
+#, fuzzy, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>LINESTRING</varname> geometry. This an alias for <xref linkend="
+"\"ST_LineFromWKB\"/>."
+msgstr ""
+"Si le SRID n'est pas précisé, la valeur -1 est prise par défaut.  "
+"<varname>NULL</varname> est retourné si le paramètre <varname>bytea</"
+"varname> donné ne représente pas une  <varname>LINESTRING</varname>. Alias "
+"pour <xref linkend=\"ST_LineFromWKB\"/>."
+
+#. Tag: para
+#: reference_constructor.xml:1045
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - optional SRID is from the conformance suite."
+msgstr "OGC SPEC 3.2.6.2 - SRID optionnel issu des tests de conformité."
+
+#. Tag: para
+#: reference_constructor.xml:1049
+#, no-c-format
+msgid ""
+"If you know all your geometries are <varname>LINESTRING</varname>s, it's "
+"more efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function "
+"just calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation "
+"that it returns a <varname>LINESTRING</varname>."
+msgstr ""
+"Si vous êtes sûrs que toutes les géométries WKT sont des "
+"<varname>LINESTRING</varname>s, la fonction <xref linkend=\"ST_GeomFromWKB\"/"
+"> est plus efficace car elle ne contrôle pas le type de la géométrie "
+"renvoyée."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1062
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_LineStringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"  ) AS aline,\n"
+"  ST_LinestringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('POINT(1 2)'))\n"
+"  ) IS NULL AS null_return;\n"
+"   aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+"SELECT\n"
+"  ST_LineStringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"  ) AS aline,\n"
+"  ST_LinestringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('POINT(1 2)'))\n"
+"  ) IS NULL AS null_return;\n"
+"   aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+
+#. Tag: para
+#: reference_constructor.xml:1069 reference_constructor.xml:1823
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineFromWKB\"/>"
+msgstr ", <xref linkend=\"ST_LineFromWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1075
+#, no-c-format
+msgid "ST_MakeBox2D"
+msgstr "ST_MakeBox2D"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1077
+#, no-c-format
+msgid "Creates a BOX2D defined by the given point geometries."
+msgstr "Construit un objet BOX2D à partir des géométries POINT données"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1083
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pointLowLeft</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pointUpRight</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pointLowLeft</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pointUpRight</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1094
+#, no-c-format
+msgid ""
+"Creates a BOX2D defined by the given point geometries. This is useful for "
+"doing range queries"
+msgstr ""
+"Construit un objet BOX2D à partir des géométries POINT données. Utile lors "
+"de requêtes sur des intervals."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1102
+#, no-c-format
+msgid ""
+"--Return all features that fall reside or partly reside in a US national "
+"atlas coordinate bounding box\n"
+"--It is assumed here that the geometries are stored with SRID = 2163 (US "
+"National atlas equal area)\n"
+"SELECT feature_id, feature_name, the_geom\n"
+"FROM features\n"
+"WHERE the_geom && ST_SetSRID(ST_MakeBox2D(ST_Point(-989502.1875, "
+"528439.5625),\n"
+"        ST_Point(-987121.375 ,529933.1875)),2163)"
+msgstr ""
+"--Return all features that fall reside or partly reside in a US national "
+"atlas coordinate bounding box\n"
+"--It is assumed here that the geometries are stored with SRID = 2163 (US "
+"National atlas equal area)\n"
+"SELECT feature_id, feature_name, the_geom\n"
+"FROM features\n"
+"WHERE the_geom && ST_SetSRID(ST_MakeBox2D(ST_Point(-989502.1875, "
+"528439.5625),\n"
+"        ST_Point(-987121.375 ,529933.1875)),2163)"
+
+#. Tag: para
+#: reference_constructor.xml:1109
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1115
+#, no-c-format
+msgid "ST_3DMakeBox"
+msgstr "ST_3DMakeBox"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1117
+#, no-c-format
+msgid "Creates a BOX3D defined by the given 3d point geometries."
+msgstr "Construit un objet BOX3D à partir des géométries 3D POINT données. "
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1122
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>point3DLowLeftBottom</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>point3DUpRightTop</parameter></paramdef>"
+msgstr ""
+"<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>point3DLowLeftBottom</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>point3DUpRightTop</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1133
+#, no-c-format
+msgid "Creates a BOX3D defined by the given 2 3D point geometries."
+msgstr "Construit un objet BOX3D à partir des géométries 3D POINT données."
+
+#. Tag: para
+#: reference_constructor.xml:1140
+#, no-c-format
+msgid "This function supports 3d and will not drop the z-index."
+msgstr "Cette fonction supporte la 3d et ne supprime pas la coordonnées Z."
+
+#. Tag: para
+#: reference_constructor.xml:1142
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_MakeBox3D"
+msgstr ""
+"Changement: 2.0.0 dans les versions antérieures, le nom était ST_MakeBox3D"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1149
+#, no-c-format
+msgid ""
+"SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
+"        ST_MakePoint(-987121.375 ,529933.1875, 10)) As abb3d\n"
+"\n"
+"--bb3d--\n"
+"--------\n"
+"BOX3D(-989502.1875 528439.5625 10,-987121.375 529933.1875 10)"
+msgstr ""
+"SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
+"        ST_MakePoint(-987121.375 ,529933.1875, 10)) As abb3d\n"
+"\n"
+"--bb3d--\n"
+"--------\n"
+"BOX3D(-989502.1875 528439.5625 10,-987121.375 529933.1875 10)"
+
+#. Tag: para
+#: reference_constructor.xml:1156
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1162
+#, no-c-format
+msgid "ST_MakeLine"
+msgstr "ST_MakeLine"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1164
+#, no-c-format
+msgid "Creates a Linestring from point or line geometries."
+msgstr "Crée une linestring à partir de géométries ponctuelles ou linéaires."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1168
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geoms</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_MakeLine</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</"
+"parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MakeLine</function></funcdef> <paramdef><type>geometry[]</type> "
+"<parameter>geoms_array</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geoms</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_MakeLine</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</"
+"parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MakeLine</function></funcdef> <paramdef><type>geometry[]</type> "
+"<parameter>geoms_array</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1190
+#, no-c-format
+msgid ""
+"ST_MakeLine comes in 3 forms: a spatial aggregate that takes rows of point-"
+"or-line geometries and returns a line string, a function that takes an array "
+"of point-or-lines, and a regular function that takes two point-or-line "
+"geometries. You might want to use a subselect to order points before feeding "
+"them to the aggregate version of this function."
+msgstr ""
+"La fonction ST_MakeLine a 3 variantes: une fonction d'agrégat spatial qui "
+"prend un ensemble de points ou de lignes et retourne une linestring, une "
+"fonction qui prend un tableau de point ou de lignes et une fonction normale "
+"qui prend deux points ou deux lignes. Un sub-select peut être utile pour "
+"ordonner les points avant d'appeler la version d'agrégat spatial."
+
+#. Tag: para
+#: reference_constructor.xml:1195
+#, no-c-format
+msgid "When adding line components a common node is removed from the output."
+msgstr ""
+"Lors de l'ajout de lignes, un noeud commun est supprimé dans l'objet "
+"retourné."
+
+#. Tag: para
+#: reference_constructor.xml:1200
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_MakeLine(geomarray) was introduced. ST_MakeLine "
+"aggregate functions was enhanced to handle more points faster."
+msgstr ""
+"Disponibilité: 1.4.0 - création de ST_MakeLine(geomarray). L'agrégat spatial "
+"ST_MakeLine amélioré pour supporter plus de points plus rapidement."
+
+#. Tag: para
+#: reference_constructor.xml:1201
+#, no-c-format
+msgid ""
+"Availability: 2.0.0 - Support for linestring input elements was introduced"
+msgstr "Disponibilité: 2.0.0 - Support pour les paramètres de type linestring."
+
+#. Tag: title
+#: reference_constructor.xml:1205
+#, no-c-format
+msgid "Examples: Spatial Aggregate version"
+msgstr "Exemple: version utilisant l'Agrégat Spatial"
+
+#. Tag: para
+#: reference_constructor.xml:1206
+#, no-c-format
+msgid ""
+"This example takes a sequence of GPS points and creates one record for each "
+"gps travel where the geometry field is a line string composed of the gps "
+"points in the order of the travel."
+msgstr ""
+"Dans cet exemple, une série de points GPS est utilisée pour créer une "
+"géométrie pour chaque trace GPS, la géométrie étant une linestring des "
+"points GPS ordonnées par le temps."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1210
+#, no-c-format
+msgid ""
+"-- For pre-PostgreSQL 9.0 - this usually works, \n"
+"-- but the planner may on occasion choose not to respect the order of the "
+"subquery\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom) As newgeom\n"
+"        FROM (SELECT gps_track,gps_time, the_geom\n"
+"                        FROM gps_points ORDER BY gps_track, gps_time) As "
+"gps\n"
+"        GROUP BY gps.gps_track;"
+msgstr ""
+"-- For pre-PostgreSQL 9.0 - this usually works, \n"
+"-- but the planner may on occasion choose not to respect the order of the "
+"subquery\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom) As newgeom\n"
+"        FROM (SELECT gps_track,gps_time, the_geom\n"
+"                        FROM gps_points ORDER BY gps_track, gps_time) As "
+"gps\n"
+"        GROUP BY gps.gps_track;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1212
+#, no-c-format
+msgid ""
+"-- If you are using PostgreSQL 9.0+ \n"
+"-- (you can use the new ORDER BY support for aggregates)\n"
+"-- this is a guaranteed way to get a correctly ordered linestring\n"
+"-- Your order by part can order by more than one column if needed\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom ORDER BY gps_time) As "
+"newgeom\n"
+"        FROM gps_points As gps\n"
+"        GROUP BY gps.gps_track;"
+msgstr ""
+"-- If you are using PostgreSQL 9.0+ \n"
+"-- (you can use the new ORDER BY support for aggregates)\n"
+"-- this is a guaranteed way to get a correctly ordered linestring\n"
+"-- Your order by part can order by more than one column if needed\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom ORDER BY gps_time) As "
+"newgeom\n"
+"        FROM gps_points As gps\n"
+"        GROUP BY gps.gps_track;"
+
+#. Tag: title
+#: reference_constructor.xml:1215
+#, no-c-format
+msgid "Examples: Non-Spatial Aggregate version"
+msgstr "Exemples: Utilisation de la fonction normale"
+
+#. Tag: para
+#: reference_constructor.xml:1217
+#, no-c-format
+msgid ""
+"First example is a simple one off line string composed of 2 points. The "
+"second formulates line strings from 2 points a user draws. The third is a "
+"one-off that joins 2 3d points to create a line in 3d space."
+msgstr ""
+"Le premier example est une simple ligne composée de deux points. Le deuxième "
+"construit une ligne à partir de deux points dessinés par un utilisateur. Le "
+"troisième créé une ligne 3D à partir de deux points 3D."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1219
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(1 2,3 4)\n"
+"\n"
+"SELECT userpoints.id, ST_MakeLine(startpoint, endpoint) As drawn_line\n"
+"        FROM userpoints ;\n"
+"\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ST_MakePoint(1,2,3), ST_MakePoint(3,4,5)));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" LINESTRING(1 2 3,3 4 5)"
+msgstr ""
+"SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(1 2,3 4)\n"
+"\n"
+"SELECT userpoints.id, ST_MakeLine(startpoint, endpoint) As drawn_line\n"
+"        FROM userpoints ;\n"
+"\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ST_MakePoint(1,2,3), ST_MakePoint(3,4,5)));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" LINESTRING(1 2 3,3 4 5)"
+
+#. Tag: title
+#: reference_constructor.xml:1223
+#, no-c-format
+msgid "Examples: Using Array version"
+msgstr "Exemple: version utilisant un Tableau"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1225
+#, no-c-format
+msgid ""
+"SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations "
+"ORDER BY visit_time));\n"
+"\n"
+"--Making a 3d line with 3 3-d points\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),\n"
+"                                ST_MakePoint(3,4,5), "
+"ST_MakePoint(6,6,6)]));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+"LINESTRING(1 2 3,3 4 5,6 6 6)"
+msgstr ""
+"SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations "
+"ORDER BY visit_time));\n"
+"\n"
+"--Making a 3d line with 3 3-d points\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),\n"
+"                                ST_MakePoint(3,4,5), "
+"ST_MakePoint(6,6,6)]));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+"LINESTRING(1 2 3,3 4 5,6 6 6)"
+
+#. Tag: para
+#: reference_constructor.xml:1232
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_MakePoint\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_MakePoint\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1239
+#, no-c-format
+msgid "ST_MakeEnvelope"
+msgstr "ST_MakeEnvelope"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1241
+#, no-c-format
+msgid ""
+"Creates a rectangular Polygon formed from the given minimums and maximums. "
+"Input values must be in SRS specified by the SRID."
+msgstr ""
+"Crée un polygone rectangulaire à partir des valeurs minimales et maximales "
+"données. Les coordonnées doivent être dans le SRS défini par le SRID."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1247
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>xmin</parameter></"
+"paramdef> <paramdef><type>double precision</type> <parameter>ymin</"
+"parameter></paramdef> <paramdef><type>double precision</type> "
+"<parameter>xmax</parameter></paramdef> <paramdef><type>double precision</"
+"type> <parameter>ymax</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>xmin</parameter></"
+"paramdef> <paramdef><type>double precision</type> <parameter>ymin</"
+"parameter></paramdef> <paramdef><type>double precision</type> "
+"<parameter>xmax</parameter></paramdef> <paramdef><type>double precision</"
+"type> <parameter>ymax</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1261
+#, no-c-format
+msgid ""
+"Creates a rectangular Polygon formed from the minima and maxima. by the "
+"given shell. Input values must be in SRS specified by the SRID. If no SRID "
+"is specified the unknown spatial reference system is assumed"
+msgstr ""
+"Crée un polygone rectangulaire à partir des valeurs minimales et maximales "
+"données. Les coordonnées doivent être dans le SRS défini par le SRID. Si "
+"aucun SRID n'est passé, la valeur 0 est prise."
+
+#. Tag: para
+#: reference_constructor.xml:1264
+#, no-c-format
+msgid "Availability: 1.5"
+msgstr "Disponibilité: 1.5"
+
+#. Tag: para
+#: reference_constructor.xml:1265
+#, no-c-format
+msgid ""
+"Enhanced: 2.0: Ability to specify an envelope without specifying an SRID was "
+"introduced."
+msgstr "Amélioration: 2.0: paramètre SRID devenu optionnel."
+
+#. Tag: title
+#: reference_constructor.xml:1270
+#, no-c-format
+msgid "Example: Building a bounding box polygon"
+msgstr "Exemple: Construire un polygone englobant"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1271
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((10 10, 10 11, 11 11, 11 10, 10 10))"
+msgstr ""
+"SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((10 10, 10 11, 11 11, 11 10, 10 10))"
+
+#. Tag: para
+#: reference_constructor.xml:1275
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
+msgstr ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1281
+#, no-c-format
+msgid "ST_MakePolygon"
+msgstr "ST_MakePolygon"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1283
+#, no-c-format
+msgid ""
+"Creates a Polygon formed by the given shell. Input geometries must be closed "
+"LINESTRINGS."
+msgstr ""
+"Crée un Polygon à partir du contour donné. Les géométries en entrées doivent "
+"être des LINESTRING fermées."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1289
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1295
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>outerlinestring</parameter></"
+"paramdef> <paramdef><type>geometry[]</type> <parameter>interiorlinestrings</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>outerlinestring</parameter></"
+"paramdef> <paramdef><type>geometry[]</type> <parameter>interiorlinestrings</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1306
+#, no-c-format
+msgid ""
+"Creates a Polygon formed by the given shell. Input geometries must be closed "
+"LINESTRINGS. Comes in 2 variants."
+msgstr ""
+"Crée un Polygon à partir du contour donné. Les géométries en entrées doivent "
+"être des LINESTRING fermées. Existe en 2 versions."
+
+#. Tag: para
+#: reference_constructor.xml:1308
+#, no-c-format
+msgid "Variant 1: takes one closed linestring."
+msgstr "Version 1: prend en paramètre une linestring fermée."
+
+#. Tag: para
+#: reference_constructor.xml:1309
+#, no-c-format
+msgid ""
+"Variant 2: Creates a Polygon formed by the given shell and array of holes. "
+"You can construct a geometry array using ST_Accum or the PostgreSQL ARRAY[] "
+"and ARRAY() constructs. Input geometries must be closed LINESTRINGS."
+msgstr ""
+"Version 2: Crée un polygone constitué par le contour et un tableau des trous "
+"passés en paramètre. Le tableau de géométrie peut être construit avec la "
+"fonction ST_Accum ou avec les constructions PostgreSQL ARRAY[] et ARRAY(). "
+"Les géométries en paramètre doivent être fermées."
+
+#. Tag: para
+#: reference_constructor.xml:1313
+#, no-c-format
+msgid ""
+"This function will not accept a MULTILINESTRING. Use <xref linkend="
+"\"ST_LineMerge\"/> or <xref linkend=\"ST_Dump\"/> to generate line strings."
+msgstr ""
+"Cette fonction n'accepte pas de MULTILINESTRING. Utiliser <xref linkend="
+"\"ST_LineMerge\"/> or <xref linkend=\"ST_Dump\"/> pour générer des "
+"LINESTRING."
+
+#. Tag: title
+#: reference_constructor.xml:1320
+#, no-c-format
+msgid "Examples: Single closed LINESTRING"
+msgstr "Exemples: LINESTRING fermée"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1321
+#, no-c-format
+msgid ""
+"--2d line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 "
+"29.5, 75.15 29.53)'));\n"
+"--If linestring is not closed\n"
+"--you can add the start point to close it\n"
+"SELECT ST_MakePolygon(ST_AddPoint(foo.open_line, ST_StartPoint(foo."
+"open_line)))\n"
+"FROM (\n"
+"SELECT ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5)') As "
+"open_line) As foo;\n"
+"\n"
+"--3d closed line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53 1,77 29 1,77.6 "
+"29.5 1, 75.15 29.53 1)'));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))\n"
+"\n"
+"--measured line --\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRINGM(75.15 29.53 1,77 29 "
+"1,77.6 29.5 2, 75.15 29.53 2)'));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"POLYGONM((75.15 29.53 1,77 29 1,77.6 29.5 2,75.15 29.53 2))"
+msgstr ""
+"--2d line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 "
+"29.5, 75.15 29.53)'));\n"
+"--If linestring is not closed\n"
+"--you can add the start point to close it\n"
+"SELECT ST_MakePolygon(ST_AddPoint(foo.open_line, ST_StartPoint(foo."
+"open_line)))\n"
+"FROM (\n"
+"SELECT ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5)') As "
+"open_line) As foo;\n"
+"\n"
+"--3d closed line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53 1,77 29 1,77.6 "
+"29.5 1, 75.15 29.53 1)'));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))\n"
+"\n"
+"--measured line --\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRINGM(75.15 29.53 1,77 29 "
+"1,77.6 29.5 2, 75.15 29.53 2)'));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"POLYGONM((75.15 29.53 1,77 29 1,77.6 29.5 2,75.15 29.53 2))"
+
+#. Tag: title
+#: reference_constructor.xml:1324
+#, no-c-format
+msgid "Examples: Outter shell with inner shells"
+msgstr "Exemples: Contour extérieur avec contours intérieurs"
+
+#. Tag: para
+#: reference_constructor.xml:1326
+#, no-c-format
+msgid "Build a donut with an ant hole"
+msgstr "Construction d'un anneaux avec un trou"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1327
+#, no-c-format
+msgid ""
+"SELECT ST_MakePolygon(\n"
+"                ST_ExteriorRing(ST_Buffer(foo.line,10)),\n"
+"        ARRAY[ST_Translate(foo.line,1,1),\n"
+"                ST_ExteriorRing(ST_Buffer(ST_MakePoint(20,20),1)) ]\n"
+"        )\n"
+"FROM\n"
+"        (SELECT ST_ExteriorRing(ST_Buffer(ST_MakePoint(10,10),10,10))\n"
+"                As line )\n"
+"                As foo;"
+msgstr ""
+"SELECT ST_MakePolygon(\n"
+"                ST_ExteriorRing(ST_Buffer(foo.line,10)),\n"
+"        ARRAY[ST_Translate(foo.line,1,1),\n"
+"                ST_ExteriorRing(ST_Buffer(ST_MakePoint(20,20),1)) ]\n"
+"        )\n"
+"FROM\n"
+"        (SELECT ST_ExteriorRing(ST_Buffer(ST_MakePoint(10,10),10,10))\n"
+"                As line )\n"
+"                As foo;"
+
+#. Tag: para
+#: reference_constructor.xml:1328
+#, no-c-format
+msgid ""
+"Build province boundaries with holes representing lakes in the province from "
+"a set of province polygons/multipolygons and water line strings this is an "
+"example of using PostGIS ST_Accum"
+msgstr ""
+"Construit les contours de provinces avec des trous constitués par les lacs "
+"contenus dans ces provinces. Cette exemple utilise la fonction PostGIS "
+"ST_Accum à partir des polygones des provinces et des lignes des lacs."
+
+#. Tag: para
+#: reference_constructor.xml:1332
+#, no-c-format
+msgid ""
+"The use of CASE because feeding a null array into ST_MakePolygon results in "
+"NULL"
+msgstr ""
+"L'utlisation de CASE permet de filtrer les valeurs nulles, qui ne sont pas "
+"supportées par ST_MakePolygon."
+
+#. Tag: para
+#: reference_constructor.xml:1334
+#, no-c-format
+msgid ""
+"the use of left join to guarantee we get all provinces back even if they "
+"have no lakes"
+msgstr ""
+"L'utilisation du LEFT JOIN garantit d'obtenir tous les polygones des "
+"provinces même si elles ne contiennent pas de lac."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1335
+#, no-c-format
+msgid ""
+"SELECT p.gid, p.province_name,\n"
+"                CASE WHEN\n"
+"                        ST_Accum(w.the_geom) IS NULL THEN p.the_geom\n"
+"                ELSE  ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)), "
+"ST_Accum(w.the_geom)) END\n"
+"        FROM\n"
+"                provinces p LEFT JOIN waterlines w\n"
+"                        ON (ST_Within(w.the_geom, p.the_geom) AND "
+"ST_IsClosed(w.the_geom))\n"
+"        GROUP BY p.gid, p.province_name, p.the_geom;\n"
+"\n"
+"        --Same example above but utilizing a correlated subquery\n"
+"        --and PostgreSQL built-in ARRAY() function that converts a row set "
+"to an array\n"
+"\n"
+"        SELECT p.gid,  p.province_name, CASE WHEN\n"
+"                EXISTS(SELECT w.the_geom\n"
+"                        FROM waterlines w\n"
+"                        WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                        AND ST_IsClosed(w.the_geom))\n"
+"                THEN\n"
+"                ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)),\n"
+"                        ARRAY(SELECT w.the_geom\n"
+"                                FROM waterlines w\n"
+"                                WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                                AND ST_IsClosed(w.the_geom)))\n"
+"                ELSE p.the_geom END As the_geom\n"
+"        FROM\n"
+"                provinces p;"
+msgstr ""
+"SELECT p.gid, p.province_name,\n"
+"                CASE WHEN\n"
+"                        ST_Accum(w.the_geom) IS NULL THEN p.the_geom\n"
+"                ELSE  ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)), "
+"ST_Accum(w.the_geom)) END\n"
+"        FROM\n"
+"                provinces p LEFT JOIN waterlines w\n"
+"                        ON (ST_Within(w.the_geom, p.the_geom) AND "
+"ST_IsClosed(w.the_geom))\n"
+"        GROUP BY p.gid, p.province_name, p.the_geom;\n"
+"\n"
+"        --Same example above but utilizing a correlated subquery\n"
+"        --and PostgreSQL built-in ARRAY() function that converts a row set "
+"to an array\n"
+"\n"
+"        SELECT p.gid,  p.province_name, CASE WHEN\n"
+"                EXISTS(SELECT w.the_geom\n"
+"                        FROM waterlines w\n"
+"                        WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                        AND ST_IsClosed(w.the_geom))\n"
+"                THEN\n"
+"                ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)),\n"
+"                        ARRAY(SELECT w.the_geom\n"
+"                                FROM waterlines w\n"
+"                                WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                                AND ST_IsClosed(w.the_geom)))\n"
+"                ELSE p.the_geom END As the_geom\n"
+"        FROM\n"
+"                provinces p;"
+
+#. Tag: para
+#: reference_constructor.xml:1339
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, "
+"<xref linkend=\"ST_IsClosed\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_BuildArea\"/>"
+msgstr ""
+", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, "
+"<xref linkend=\"ST_IsClosed\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_BuildArea\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1352
+#, no-c-format
+msgid "ST_MakePoint"
+msgstr "ST_MakePoint"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1354
+#, no-c-format
+msgid "Creates a 2D,3DZ or 4D point geometry."
+msgstr "Construit une géométrie de type point en 2D, 3DZ ou 4D."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1359
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1366
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1374
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>m</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>m</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1387
+#, no-c-format
+msgid ""
+"Creates a 2D,3DZ or 4D point geometry (geometry with measure). "
+"<varname>ST_MakePoint</varname> while not being OGC compliant is generally "
+"faster and more precise than <xref linkend=\"ST_GeomFromText\"/> and <xref "
+"linkend=\"ST_PointFromText\"/>. It is also easier to use if you have raw "
+"coordinates rather than WKT."
+msgstr ""
+"Construit une géométrie de type point en 2D, 3DZ ou 4D (géométrie avec "
+"mesure). <varname>ST_MakePoint</varname>, non définie par l'OGC est "
+"généralement plus rapide et plus précise que <xref linkend=\"ST_GeomFromText"
+"\"/> and <xref linkend=\"ST_PointFromText\"/>. \n"
+"Utile si on dispose de coordonnées numériques et non textuelles WKT."
+
+#. Tag: para
+#: reference_constructor.xml:1393
+#, no-c-format
+msgid "Note x is longitude and y is latitude"
+msgstr "Note: x: longitude, y: latitude"
+
+#. Tag: para
+#: reference_constructor.xml:1394
+#, no-c-format
+msgid ""
+"Use <xref linkend=\"ST_MakePointM\"/> if you need to make a point with x,y,m."
+msgstr ""
+"Utiliser <xref linkend=\"ST_MakePointM\"/> pour construire un point x,y,m."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1401
+#, no-c-format
+msgid ""
+"--Return point with unknown SRID\n"
+"SELECT ST_MakePoint(-71.1043443253471, 42.3150676015829);\n"
+"\n"
+"--Return point marked as WGS 84 long lat\n"
+"SELECT ST_SetSRID(ST_MakePoint(-71.1043443253471, 42.3150676015829),4326);\n"
+"\n"
+"--Return a 3D point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get z of point\n"
+"SELECT ST_Z(ST_MakePoint(1, 2,1.5));\n"
+"result\n"
+"-------\n"
+"1.5"
+msgstr ""
+"--Return point with unknown SRID\n"
+"SELECT ST_MakePoint(-71.1043443253471, 42.3150676015829);\n"
+"\n"
+"--Return point marked as WGS 84 long lat\n"
+"SELECT ST_SetSRID(ST_MakePoint(-71.1043443253471, 42.3150676015829),4326);\n"
+"\n"
+"--Return a 3D point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get z of point\n"
+"SELECT ST_Z(ST_MakePoint(1, 2,1.5));\n"
+"result\n"
+"-------\n"
+"1.5"
+
+#. Tag: para
+#: reference_constructor.xml:1405
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_MakePointM\"/>"
+msgstr ""
+", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_MakePointM\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1411
+#, no-c-format
+msgid "ST_MakePointM"
+msgstr "ST_MakePointM"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1413
+#, no-c-format
+msgid "Creates a point geometry with an x y and m coordinate."
+msgstr "Crée un point à partir de coordonnées x, y et m."
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1418
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePointM</function></funcdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>m</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePointM</function></funcdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>m</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1430
+#, no-c-format
+msgid "Creates a point with x, y and measure coordinates."
+msgstr "Crée un point à partir de coordonnées x et y."
+
+#. Tag: para
+#: reference_constructor.xml:1431
+#, no-c-format
+msgid "Note x is longitude and y is latitude."
+msgstr "Note: x: longitude, y: latitude"
+
+#. Tag: para
+#: reference_constructor.xml:1436
+#, no-c-format
+msgid ""
+"We use ST_AsEWKT in these examples to show the text representation instead "
+"of ST_AsText because ST_AsText does not support returning M."
+msgstr ""
+"Utilisation de ST_AsEWKT à la place de ST_AsText pour représenter les "
+"géométries sous forme textuelle car ST_AsText  ne support pas la coordonnée "
+"M."
+
+#. Tag: programlisting
+#: reference_constructor.xml:1438
+#, no-c-format
+msgid ""
+"--Return EWKT representation of point with unknown SRID\n"
+"SELECT ST_AsEWKT(ST_MakePointM(-71.1043443253471, 42.3150676015829, 10));\n"
+"\n"
+"--result\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return EWKT representation of point with measure marked as WGS 84 long "
+"lat\n"
+"SELECT ST_AsEWKT(ST_SetSRID(ST_MakePointM(-71.1043443253471, "
+"42.3150676015829,10),4326));\n"
+"\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+"SRID=4326;POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return a 3d point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get m of point\n"
+"SELECT ST_M(ST_MakePointM(-71.1043443253471, 42.3150676015829,10));\n"
+"result\n"
+"-------\n"
+"10"
+msgstr ""
+"--Return EWKT representation of point with unknown SRID\n"
+"SELECT ST_AsEWKT(ST_MakePointM(-71.1043443253471, 42.3150676015829, 10));\n"
+"\n"
+"--result\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return EWKT representation of point with measure marked as WGS 84 long "
+"lat\n"
+"SELECT ST_AsEWKT(ST_SetSRID(ST_MakePointM(-71.1043443253471, "
+"42.3150676015829,10),4326));\n"
+"\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+"SRID=4326;POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return a 3d point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get m of point\n"
+"SELECT ST_M(ST_MakePointM(-71.1043443253471, 42.3150676015829,10));\n"
+"result\n"
+"-------\n"
+"10"
+
+#. Tag: para
+#: reference_constructor.xml:1442
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
+msgstr ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1448
+#, no-c-format
+msgid "ST_MLineFromText"
+msgstr "ST_MLineFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1450
+#, no-c-format
+msgid "Return a specified ST_MultiLineString value from WKT representation."
+msgstr ""
+"Retourne un objet de type ST_MultiLineString à partir de sa représentation "
+"WKT."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1454
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MLineFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MLineFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1472
+#, fuzzy, no-c-format
+msgid ""
+"Makes a Geometry from Well-Known-Text (WKT) with the given SRID. If SRID is "
+"not give, it defaults to 0."
+msgstr ""
+"Construit une géométrie depuis une représentation Well-Known-Text (WKT), "
+"avec le SRID spécifié. Si aucun SRID n'est donné, la valeur par défaut est "
+"-1  "
+
+#. Tag: para
+#: reference_constructor.xml:1478
+#, no-c-format
+msgid "Returns null if the WKT is not a MULTILINESTRING"
+msgstr "Retourne NULL si le WKT n'est pas une MULTILINESTRING"
+
+#. Tag: para
+#: reference_constructor.xml:1481 reference_constructor.xml:1542
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are points, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step."
+msgstr ""
+"Si vous êtes absolument sûrs que toutes les géométries WKT sont des points, "
+"ne pas utiliser cette fonction. Elle est plus lente que ST_GeomFromText à "
+"cause d'une étape de validation supplémentaire."
+
+#. Tag: para
+#: reference_constructor.xml:1487
+#, no-c-format
+msgid "&sqlmm_compliant;SQL-MM 3: 9.4.4"
+msgstr "&sqlmm_compliant;SQL-MM 3: 9.4.4"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1495
+#, no-c-format
+msgid "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
+msgstr "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
+
+#. Tag: refname
+#: reference_constructor.xml:1508
+#, no-c-format
+msgid "ST_MPointFromText"
+msgstr "ST_MPointFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1510 reference_constructor.xml:1880
+#, fuzzy, no-c-format
+msgid ""
+"<refpurpose>Makes a Geometry from WKT with the given SRID. If SRID is not "
+"give, it defaults to 0.</refpurpose>"
+msgstr ""
+"<refpurpose>Construit une géométrie à partir d'une représentation WKT avec "
+"le SRID donné. Si aucun SRID n'est donné, la valeur par défaut est -1.</"
+"refpurpose>"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1515
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MPointFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MPointFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1533
+#, fuzzy, no-c-format
+msgid ""
+"<para>Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0.</para>"
+msgstr ""
+"<para>Construit une géométrie à partir d'une représentation WKT avec le SRID "
+"donné. Si aucun SRID n'est donné, la valeur par défaut est -1.</para>"
+
+#. Tag: para
+#: reference_constructor.xml:1539
+#, no-c-format
+msgid "Returns null if the WKT is not a MULTIPOINT"
+msgstr "Retourne NULL si le WKT n'est pas une MULTIPOINT"
+
+#. Tag: para
+#: reference_constructor.xml:1547
+#, no-c-format
+msgid "&sfs_compliant; 3.2.6.2"
+msgstr "&sfs_compliant; 3.2.6.2"
+
+#. Tag: para
+#: reference_constructor.xml:1548
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.2.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 9.2.4"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1556
+#, no-c-format
+msgid ""
+"SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
+"SELECT ST_MPointFromText('MULTIPOINT(-70.9590 42.1180, -70.9611 42.1223)', "
+"4326);"
+msgstr ""
+"SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
+"SELECT ST_MPointFromText('MULTIPOINT(-70.9590 42.1180, -70.9611 42.1223)', "
+"4326);"
+
+#. Tag: refname
+#: reference_constructor.xml:1569
+#, no-c-format
+msgid "ST_MPolyFromText"
+msgstr "ST_MPolyFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1571
+#, fuzzy, no-c-format
+msgid ""
+"Makes a MultiPolygon Geometry from WKT with the given SRID. If SRID is not "
+"give, it defaults to 0."
+msgstr ""
+"Construit une géométrie MultiPolygon à partir d'une représentation WKT et le "
+"SRID donné. Si aucun SRID n'est donné, la valeur par défaut est -1."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1576
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MPolyFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MPolyFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1594
+#, fuzzy, no-c-format
+msgid ""
+"Makes a MultiPolygon from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0."
+msgstr ""
+"Construit une géométrie MultiPolygon à partir d'une représentation WKT avec "
+"le SRID donné. Si aucun SRID n'est donné, la valeur par défaut est -1."
+
+#. Tag: para
+#: reference_constructor.xml:1600
+#, no-c-format
+msgid "Throws an error if the WKT is not a MULTIPOLYGON"
+msgstr "Retourne une erreur si le WKT n'est pas un MULTIPOLYGON"
+
+#. Tag: para
+#: reference_constructor.xml:1603
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are multipolygons, don't "
+"use this function. It is slower than ST_GeomFromText since it adds an "
+"additional validation step."
+msgstr ""
+"Si vous êtes absolument sûrs que toutes les géométries WKT sont des "
+"multipolygones, ne pas utiliser cette fonction. Elle est plus lente que "
+"ST_GeomFromText à cause d'une étape de validation supplémentaire."
+
+#. Tag: para
+#: reference_constructor.xml:1609
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.6.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 9.6.4"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1617
+#, no-c-format
+msgid ""
+"SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),"
+"(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))');\n"
+"SELECt ST_MPolyFromText('MULTIPOLYGON(((-70.916 42.1002,-70.9468 "
+"42.0946,-70.9765 42.0872,-70.9754 42.0875,-70.9749 42.0879,-70.9752 "
+"42.0881,-70.9754 42.0891,-70.9758 42.0894,-70.9759 42.0897,-70.9759 "
+"42.0899,-70.9754 42.0902,-70.9756 42.0906,-70.9753 42.0907,-70.9753 "
+"42.0917,-70.9757 42.0924,-70.9755 42.0928,-70.9755 42.0942,-70.9751 "
+"42.0948,-70.9755 42.0953,-70.9751 42.0958,-70.9751 42.0962,-70.9759 "
+"42.0983,-70.9767 42.0987,-70.9768 42.0991,-70.9771 42.0997,-70.9771 "
+"42.1003,-70.9768 42.1005,-70.977 42.1011,-70.9766 42.1019,-70.9768 "
+"42.1026,-70.9769 42.1033,-70.9775 42.1042,-70.9773 42.1043,-70.9776 "
+"42.1043,-70.9778 42.1048,-70.9773 42.1058,-70.9774 42.1061,-70.9779 "
+"42.1065,-70.9782 42.1078,-70.9788 42.1085,-70.9798 42.1087,-70.9806 "
+"42.109,-70.9807 42.1093,-70.9806 42.1099,-70.9809 42.1109,-70.9808 "
+"42.1112,-70.9798 42.1116,-70.9792 42.1127,-70.979 42.1129,-70.9787 "
+"42.1134,-70.979 42.1139,-70.9791 42.1141,-70.9987 42.1116,-71.0022 42.1273,\n"
+"        -70.9408 42.1513,-70.9315 42.1165,-70.916 42.1002)))',4326);"
+msgstr ""
+"SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),"
+"(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))');\n"
+"SELECt ST_MPolyFromText('MULTIPOLYGON(((-70.916 42.1002,-70.9468 "
+"42.0946,-70.9765 42.0872,-70.9754 42.0875,-70.9749 42.0879,-70.9752 "
+"42.0881,-70.9754 42.0891,-70.9758 42.0894,-70.9759 42.0897,-70.9759 "
+"42.0899,-70.9754 42.0902,-70.9756 42.0906,-70.9753 42.0907,-70.9753 "
+"42.0917,-70.9757 42.0924,-70.9755 42.0928,-70.9755 42.0942,-70.9751 "
+"42.0948,-70.9755 42.0953,-70.9751 42.0958,-70.9751 42.0962,-70.9759 "
+"42.0983,-70.9767 42.0987,-70.9768 42.0991,-70.9771 42.0997,-70.9771 "
+"42.1003,-70.9768 42.1005,-70.977 42.1011,-70.9766 42.1019,-70.9768 "
+"42.1026,-70.9769 42.1033,-70.9775 42.1042,-70.9773 42.1043,-70.9776 "
+"42.1043,-70.9778 42.1048,-70.9773 42.1058,-70.9774 42.1061,-70.9779 "
+"42.1065,-70.9782 42.1078,-70.9788 42.1085,-70.9798 42.1087,-70.9806 "
+"42.109,-70.9807 42.1093,-70.9806 42.1099,-70.9809 42.1109,-70.9808 "
+"42.1112,-70.9798 42.1116,-70.9792 42.1127,-70.979 42.1129,-70.9787 "
+"42.1134,-70.979 42.1139,-70.9791 42.1141,-70.9987 42.1116,-71.0022 42.1273,\n"
+"        -70.9408 42.1513,-70.9315 42.1165,-70.916 42.1002)))',4326);"
+
+#. Tag: refname
+#: reference_constructor.xml:1630
+#, no-c-format
+msgid "ST_Point"
+msgstr "ST_Point"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1632
+#, no-c-format
+msgid ""
+"Returns an ST_Point with the given coordinate values. OGC alias for "
+"ST_MakePoint."
+msgstr ""
+"Retourne un point à partir des coordonnées données. Alias OGC de la fonction "
+"ST_MakePoint"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1637
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Point</function></funcdef> "
+"<paramdef><type>float </type> <parameter>x_lon</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>y_lat</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Point</function></funcdef> "
+"<paramdef><type>float </type> <parameter>x_lon</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>y_lat</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1648
+#, no-c-format
+msgid ""
+"Returns an ST_Point with the given coordinate values. MM compliant alias for "
+"ST_MakePoint that takes just an x and y."
+msgstr ""
+"Retourne un point à partir des coordonnées données. Alias SQL/MM de la "
+"fonction ST_MakePoint avec coordonnées x et y."
+
+#. Tag: para
+#: reference_constructor.xml:1651
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.2"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.2"
+
+#. Tag: title
+#: reference_constructor.xml:1657
+#, no-c-format
+msgid "Examples: Geometry"
+msgstr "Exemple: Géométrie"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1659
+#, no-c-format
+msgid "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
+msgstr "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
+
+#. Tag: title
+#: reference_constructor.xml:1663
+#, no-c-format
+msgid "Examples: Geography"
+msgstr "Exemples: Géographie"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1665
+#, no-c-format
+msgid ""
+"SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) "
+"As geography);"
+msgstr ""
+"SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) "
+"As geography);"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1666
+#, no-c-format
+msgid ""
+"-- the :: is PostgreSQL short-hand for casting.\n"
+"SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)::"
+"geography;"
+msgstr ""
+"-- the :: is PostgreSQL short-hand for casting.\n"
+"SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)::"
+"geography;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1668
+#, no-c-format
+msgid ""
+"--If your point coordinates are in a different spatial reference from WGS-84 "
+"long lat, then you need to transform before casting\n"
+"-- This example we convert a point in Pennsylvania State Plane feet to WGS "
+"84 and then geography\n"
+"SELECT ST_Transform(ST_SetSRID(ST_Point(3637510, 3014852),2273),4326)::"
+"geography;"
+msgstr ""
+"--If your point coordinates are in a different spatial reference from WGS-84 "
+"long lat, then you need to transform before casting\n"
+"-- This example we convert a point in Pennsylvania State Plane feet to WGS "
+"84 and then geography\n"
+"SELECT ST_Transform(ST_SetSRID(ST_Point(3637510, 3014852),2273),4326)::"
+"geography;"
+
+#. Tag: para
+#: reference_constructor.xml:1675
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1681
+#, fuzzy, no-c-format
+msgid "ST_PointFromGeoHash"
+msgstr "ST_PointFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1683
+#, no-c-format
+msgid "Return a point from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1688
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>point <function>ST_PointFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1699
+#, no-c-format
+msgid ""
+"Return a point from a GeoHash string. The point represents the center point "
+"of the GeoHash."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1701
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_PointFromGeoHash "
+"returns a point based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1703
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_PointFromGeoHash will use "
+"that many characters from the GeoHash to create the point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1710
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"          st_astext\n"
+"------------------------------\n"
+" POINT(-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"             st_astext\n"
+"-----------------------------------\n"
+" POINT(-115.13671875 36.123046875)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                 st_astext\n"
+"-------------------------------------------\n"
+" POINT(-115.172815918922 36.1146435141563)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1715
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_GeomFromGeoHash"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1721
+#, no-c-format
+msgid "ST_PointFromText"
+msgstr "ST_PointFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1722
+#, no-c-format
+msgid ""
+"Makes a point Geometry from WKT with the given SRID. If SRID is not given, "
+"it defaults to unknown."
+msgstr ""
+"Construit une géométrie point à partir d'une représentation WKT et le SRID "
+"donné. Si aucun SRID n'est donné, la valeur par défaut est 0."
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1726
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PointFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PointFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1742
+#, fuzzy, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry point object from the OGC Well-Known text "
+"representation. If SRID is not give, it defaults to unknown (currently 0). "
+"If geometry is not a WKT point representation, returns null. If completely "
+"invalid WKT, then throws an error."
+msgstr ""
+"Construit une géométrie point à partir d'une représentation WKT et le SRID "
+"donné. Si aucun SRID n'est donné, la valeur par défaut est -1 (inconnu). "
+"Retourne NULL si le WKT donné ne représente pas un point. Retourne une "
+"erreur si le WKT est invalide."
+
+#. Tag: para
+#: reference_constructor.xml:1748
+#, no-c-format
+msgid ""
+"There are 2 variants of ST_PointFromText function, the first takes no SRID "
+"and returns a geometry with no defined spatial reference system. The second "
+"takes a spatial reference id as the second argument and returns an "
+"ST_Geometry that includes this srid as part of its meta-data. The srid must "
+"be defined in the spatial_ref_sys table."
+msgstr ""
+"Il existe 2 versions de la fonction ST_PointFromText: la première ne prend "
+"pas de SRID en paramètre et retourne une geometry sans système de "
+"coordonnées. La seconde prend un SRID en second paramètre et retourne une "
+"ST_Geometry incluant un SRID dans ses métadonnées. Ce SRID doit "
+"obligatoirement exister dans la table spatial_ref_sys."
+
+#. Tag: para
+#: reference_constructor.xml:1755
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are points, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step. If you are building points from long lat coordinates and "
+"care more about performance and accuracy than OGC compliance, use <xref "
+"linkend=\"ST_MakePoint\"/> or OGC compliant alias <xref linkend=\"ST_Point\"/"
+">."
+msgstr ""
+"Si vous êtes absolument sûrs que toutes les géométries WKT sont des points, "
+"ne pas utiliser cette fonction. Elle est plus lente que ST_GeomFromText à "
+"cause d'une étape de validation supplémentaire. Si le point doit être "
+"construit à partir de coordonnées latitude longitude et que la performance "
+"est recherchée, utiliser la fonction <xref linkend=\"ST_MakePoint\"/> ou son "
+"équivalent OGC <xref linkend=\"ST_Point\"/>."
+
+#. Tag: para
+#: reference_constructor.xml:1760
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.8"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.8"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)', 4326);"
+msgstr ""
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)', 4326);"
+
+#. Tag: para
+#: reference_constructor.xml:1769
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1775
+#, no-c-format
+msgid "ST_PointFromWKB"
+msgstr "ST_PointFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1777
+#, no-c-format
+msgid "Makes a geometry from WKB with the given SRID"
+msgstr ""
+"Construit une géométrie depuis la représentation binaire WKB et le SRID "
+"donné."
+
+#. Tag: para
+#: reference_constructor.xml:1798
+#, no-c-format
+msgid ""
+"The <varname>ST_PointFromWKB</varname> function, takes a well-known binary "
+"representation of geometry and a Spatial Reference System ID (<varname>SRID</"
+"varname>) and creates an instance of the appropriate geometry type - in this "
+"case, a <varname>POINT</varname> geometry. This function plays the role of "
+"the Geometry Factory in SQL."
+msgstr ""
+"<varname> ST_PointFromWKB </varname> prend en paramètre une représentation "
+"binaire d'une géométrie et un SRID (<varname>SRID</varname>) et crée une "
+"instance du bon type géométrique, en l'occurence une <varname> POINT </"
+"varname>. Cette fonction assure le rôle de Geometry Factory en SQL."
+
+#. Tag: para
+#: reference_constructor.xml:1804
+#, fuzzy, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>POINT</varname> geometry."
+msgstr ""
+"Si le SRID n'est pas précisé, la valeur -1 est prise par défaut. "
+"<varname>NULL</varname> est retourné si le paramètre <varname>bytea</"
+"varname> donné ne représente pas un <varname> POINT </varname>."
+
+#. Tag: para
+#: reference_constructor.xml:1807
+#, no-c-format
+msgid "&sfs_compliant; s3.2.7.2"
+msgstr "&sfs_compliant; s3.2.7.2"
+
+#. Tag: para
+#: reference_constructor.xml:1808
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.9"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.9"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1816
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('LINESTRING(2 5, 2 6)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"-----------\n"
+"\n"
+"(1 row)"
+msgstr ""
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('LINESTRING(2 5, 2 6)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"-----------\n"
+"\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_constructor.xml:1829
+#, no-c-format
+msgid "ST_Polygon"
+msgstr "ST_Polygon"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1831
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a polygon built from the specified linestring and SRID.</"
+"refpurpose>"
+msgstr ""
+"<refpurpose>Retourne un polygone contruit à partir de la ligne et du SRID "
+"donnés.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1836
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aLineString</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aLineString</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1847
+#, no-c-format
+msgid ""
+"<para>Returns a polygon built from the specified linestring and SRID.</para>"
+msgstr ""
+"<para>Retourne un polygone construit à partir de la ligne et du SRID donnés."
+"</para>"
+
+#. Tag: para
+#: reference_constructor.xml:1851
+#, no-c-format
+msgid ""
+"ST_Polygon is similar to first version oST_MakePolygon except it also sets "
+"the spatial ref sys (SRID) of the polygon. Will not work with "
+"MULTILINESTRINGS so use LineMerge to merge multilines. Also does not create "
+"polygons with holes. Use ST_MakePolygon for that."
+msgstr ""
+"La fonction ST_Polygon ressemble à ST_MakePolygon mais permet de préciser le "
+"système de coordonnées (SRID) du polygone. Ne supporte pas les "
+"MULTILINESTRINGS. Utiliser ST_LineMerge pour fusionner les MULTILINESTRINGS. "
+"Ne support pas la création de trous dans le polygone. Utiliser "
+"ST_MakePolygon pour cela."
+
+#. Tag: para
+#: reference_constructor.xml:1856
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.3.2"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.3.2"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1865
+#, no-c-format
+msgid ""
+"--a 2d polygon\n"
+"SELECT ST_Polygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5, "
+"75.15 29.53)'), 4326);\n"
+"\n"
+"--result--\n"
+"POLYGON((75.15 29.53,77 29,77.6 29.5,75.15 29.53))\n"
+"--a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Polygon(ST_GeomFromEWKT('LINESTRING(75.15 29.53 1,77 29 "
+"1,77.6 29.5 1, 75.15 29.53 1)'), 4326));\n"
+"\n"
+"result\n"
+"------\n"
+"SRID=4326;POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))"
+msgstr ""
+"--a 2d polygon\n"
+"SELECT ST_Polygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5, "
+"75.15 29.53)'), 4326);\n"
+"\n"
+"--result--\n"
+"POLYGON((75.15 29.53,77 29,77.6 29.5,75.15 29.53))\n"
+"--a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Polygon(ST_GeomFromEWKT('LINESTRING(75.15 29.53 1,77 29 "
+"1,77.6 29.5 1, 75.15 29.53 1)'), 4326));\n"
+"\n"
+"result\n"
+"------\n"
+"SRID=4326;POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))"
+
+#. Tag: para
+#: reference_constructor.xml:1872
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1878
+#, no-c-format
+msgid "ST_PolygonFromText"
+msgstr "ST_PolygonFromText"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1885
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PolygonFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PolygonFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1901
+#, fuzzy, no-c-format
+msgid ""
+"Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0. Returns null if WKT is not a polygon."
+msgstr ""
+"Construit une géométrie polygone à partir d'une représentation WKT et le "
+"SRID donné. Si aucun SRID n'est donné, la valeur par défaut est -1. Retourne "
+"NULL si le WKT ne représente pas un polygone."
+
+#. Tag: para
+#: reference_constructor.xml:1908
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are polygons, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step."
+msgstr ""
+"Si vous êtes absolument sûrs que toutes les géométries WKT sont des "
+"polygones, ne pas utiliser cette fonction. Elle est plus lente que "
+"ST_GeomFromText à cause d'une étape de validation supplémentaire."
+
+#. Tag: para
+#: reference_constructor.xml:1911
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.3.6"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.3.6"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1917
+#, no-c-format
+msgid ""
+"SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"st_polygonfromtext\n"
+"------------------\n"
+"010300000001000000050000006...\n"
+"\n"
+"\n"
+"SELECT ST_PolygonFromText('POINT(1 2)') IS NULL as point_is_notpoly;\n"
+"\n"
+"point_is_not_poly\n"
+"----------\n"
+"t"
+msgstr ""
+"SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"st_polygonfromtext\n"
+"------------------\n"
+"010300000001000000050000006...\n"
+"\n"
+"\n"
+"SELECT ST_PolygonFromText('POINT(1 2)') IS NULL as point_is_notpoly;\n"
+"\n"
+"point_is_not_poly\n"
+"----------\n"
+"t"
+
+#. Tag: refname
+#: reference_constructor.xml:1930
+#, no-c-format
+msgid "ST_WKBToSQL"
+msgstr "ST_WKBToSQL"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1931
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Binary representation "
+"(WKB). This is an alias name for ST_GeomFromWKB that takes no srid"
+msgstr ""
+"Retourne un objet ST_Geometry à partir de sa représentation textuelle Well-"
+"Known Binary (WKB). Alias pour ST_GeomFromWKB sans SRID"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1935
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1943
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.36"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.36"
+
+#. Tag: refname
+#: reference_constructor.xml:1953
+#, no-c-format
+msgid "ST_WKTToSQL"
+msgstr "ST_WKTToSQL"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1958
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1966
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.34"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.34"
diff --git a/doc/po/fr/reference_editor.xml.po b/doc/po/fr/reference_editor.xml.po
new file mode 100644
index 0000000..2eee088
--- /dev/null
+++ b/doc/po/fr/reference_editor.xml.po
@@ -0,0 +1,2724 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Thomas Gratier <thomas_gratier at yahoo.fr>, 2014
+# vpicavet <vincent.ml at oslandia.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-07-17 23:38+0000\n"
+"Last-Translator: Thomas Gratier <thomas_gratier at yahoo.fr>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_editor.xml:3
+#, no-c-format
+msgid "Geometry Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:7
+#, no-c-format
+msgid "ST_AddPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:8
+#, no-c-format
+msgid ""
+"Adds a point to a LineString before point <position> (0-based index)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:13
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_editor.xml:20
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>position</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>position</parameter></paramdef>"
+
+#. Tag: title
+#: reference_editor.xml:30 reference_editor.xml:89 reference_editor.xml:148
+#: reference_editor.xml:194 reference_editor.xml:237 reference_editor.xml:280
+#: reference_editor.xml:321 reference_editor.xml:362 reference_editor.xml:416
+#: reference_editor.xml:445 reference_editor.xml:491 reference_editor.xml:536
+#: reference_editor.xml:578 reference_editor.xml:629 reference_editor.xml:672
+#: reference_editor.xml:706 reference_editor.xml:739 reference_editor.xml:783
+#: reference_editor.xml:832 reference_editor.xml:879 reference_editor.xml:928
+#: reference_editor.xml:992 reference_editor.xml:1052
+#: reference_editor.xml:1094 reference_editor.xml:1137
+#: reference_editor.xml:1214 reference_editor.xml:1292
+#: reference_editor.xml:1428 reference_editor.xml:1511
+#: reference_editor.xml:1565
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_editor.xml:32
+#, no-c-format
+msgid ""
+"Adds a point to a LineString before point <position> (0-based index). "
+"Third parameter can be omitted or set to -1 for appending."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:35 reference_editor.xml:543 reference_editor.xml:709
+#: reference_editor.xml:1099
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr "Disponibilité: 1.1.0"
+
+#. Tag: para
+#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:159
+#: reference_editor.xml:202 reference_editor.xml:244 reference_editor.xml:326
+#: reference_editor.xml:372 reference_editor.xml:421 reference_editor.xml:454
+#: reference_editor.xml:500 reference_editor.xml:710 reference_editor.xml:792
+#: reference_editor.xml:842 reference_editor.xml:890 reference_editor.xml:941
+#: reference_editor.xml:1007 reference_editor.xml:1101
+#: reference_editor.xml:1245 reference_editor.xml:1519
+#: reference_editor.xml:1578
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: title
+#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:164
+#: reference_editor.xml:207 reference_editor.xml:250 reference_editor.xml:291
+#: reference_editor.xml:332 reference_editor.xml:378 reference_editor.xml:459
+#: reference_editor.xml:506 reference_editor.xml:548 reference_editor.xml:600
+#: reference_editor.xml:644 reference_editor.xml:680 reference_editor.xml:714
+#: reference_editor.xml:745 reference_editor.xml:801 reference_editor.xml:848
+#: reference_editor.xml:897 reference_editor.xml:949 reference_editor.xml:1014
+#: reference_editor.xml:1066 reference_editor.xml:1105
+#: reference_editor.xml:1153 reference_editor.xml:1250
+#: reference_editor.xml:1326 reference_editor.xml:1456
+#: reference_editor.xml:1524 reference_editor.xml:1584
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples"
+
+#. Tag: programlisting
+#: reference_editor.xml:41
+#, no-c-format
+msgid ""
+"--guarantee all linestrings in a table are closed\n"
+"                --by adding the start point of each linestring to the end of "
+"the line string\n"
+"                --only for those that are not closed\n"
+"                UPDATE sometable\n"
+"                SET the_geom = ST_AddPoint(the_geom, "
+"ST_StartPoint(the_geom))\n"
+"                FROM sometable\n"
+"                WHERE ST_IsClosed(the_geom) = false;\n"
+"\n"
+"                --Adding point to a 3-d line\n"
+"                SELECT ST_AsEWKT(ST_AddPoint(ST_GeomFromEWKT('LINESTRING(0 0 "
+"1, 1 1 1)'), ST_MakePoint(1, 2, 3)));\n"
+"\n"
+"                --result\n"
+"                st_asewkt\n"
+"                ----------\n"
+"                LINESTRING(0 0 1,1 1 1,1 2 3)"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:171
+#: reference_editor.xml:214 reference_editor.xml:257 reference_editor.xml:298
+#: reference_editor.xml:339 reference_editor.xml:387 reference_editor.xml:465
+#: reference_editor.xml:512 reference_editor.xml:553 reference_editor.xml:605
+#: reference_editor.xml:649 reference_editor.xml:685 reference_editor.xml:718
+#: reference_editor.xml:808 reference_editor.xml:855 reference_editor.xml:904
+#: reference_editor.xml:956 reference_editor.xml:1021
+#: reference_editor.xml:1071 reference_editor.xml:1109
+#: reference_editor.xml:1161 reference_editor.xml:1257
+#: reference_editor.xml:1401 reference_editor.xml:1478
+#: reference_editor.xml:1537 reference_editor.xml:1591
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: para
+#: reference_editor.xml:45
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetPoint\"/>"
+msgstr ", <xref linkend=\"ST_SetPoint\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:51
+#, no-c-format
+msgid "ST_Affine"
+msgstr "ST_Affine"
+
+#. Tag: refpurpose
+#: reference_editor.xml:53
+#, no-c-format
+msgid ""
+"<refpurpose>Applies a 3d affine transformation to the geometry to do things "
+"like translate, rotate, scale in one step.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:57
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Affine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>a</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>b</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>c</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>d</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>e</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>f</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>g</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>h</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>i</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>xoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>yoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>zoff</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Affine</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>a</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>b</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>d</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>e</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>xoff</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>yoff</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Affine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>a</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>b</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>c</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>d</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>e</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>f</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>g</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>h</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>i</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>xoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>yoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>zoff</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Affine</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>a</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>b</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>d</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>e</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>xoff</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>yoff</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:91
+#, no-c-format
+msgid ""
+"<para>Applies a 3d affine transformation to the geometry to do things like "
+"translate, rotate, scale in one step.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:92
+#, no-c-format
+msgid ""
+"Version 1: The call <programlisting>ST_Affine(geom, a, b, c, d, e, f, g, h, "
+"i, xoff, yoff, zoff) </programlisting> represents the transformation matrix "
+"<programlisting>/ a  b  c  xoff \\\n"
+"| d  e  f  yoff |\n"
+"| g  h  i  zoff |\n"
+"\\ 0  0  0     1 /</programlisting> and the vertices are transformed as "
+"follows: <programlisting>x' = a*x + b*y + c*z + xoff\n"
+"y' = d*x + e*y + f*z + yoff\n"
+"z' = g*x + h*y + i*z + zoff</programlisting> All of the translate / scale "
+"functions below are expressed via such an affine transformation."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:99
+#, no-c-format
+msgid ""
+"Version 2: Applies a 2d affine transformation to the geometry. The call "
+"<programlisting>ST_Affine(geom, a, b, d, e, xoff, yoff)</programlisting> "
+"represents the transformation matrix <programlisting>/  a  b  0  xoff  "
+"\\       /  a  b  xoff  \\\n"
+"|  d  e  0  yoff  | rsp.  |  d  e  yoff  |\n"
+"|  0  0  1     0  |       \\  0  0     1  /\n"
+"\\  0  0  0     1  /</programlisting> and the vertices are transformed as "
+"follows: <programlisting>x' = a*x + b*y + xoff\n"
+"y' = d*x + e*y + yoff\n"
+"z' = z </programlisting> This method is a subcase of the 3D method above."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:105 reference_editor.xml:789 reference_editor.xml:839
+#: reference_editor.xml:887 reference_editor.xml:936 reference_editor.xml:1005
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:106
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from Affine to ST_Affine in 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:107 reference_editor.xml:939 reference_editor.xml:1001
+#: reference_editor.xml:1446 reference_editor.xml:1516
+#: reference_editor.xml:1574
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:109 reference_editor.xml:158 reference_editor.xml:200
+#: reference_editor.xml:243 reference_editor.xml:371 reference_editor.xml:418
+#: reference_editor.xml:455 reference_editor.xml:794 reference_editor.xml:841
+#: reference_editor.xml:889 reference_editor.xml:943 reference_editor.xml:1006
+#: reference_editor.xml:1451
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_editor.xml:110 reference_editor.xml:419 reference_editor.xml:795
+#: reference_editor.xml:843 reference_editor.xml:891 reference_editor.xml:944
+#: reference_editor.xml:1009
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: para
+#: reference_editor.xml:112 reference_editor.xml:157 reference_editor.xml:201
+#: reference_editor.xml:245 reference_editor.xml:286 reference_editor.xml:327
+#: reference_editor.xml:373 reference_editor.xml:420 reference_editor.xml:502
+#: reference_editor.xml:793 reference_editor.xml:942 reference_editor.xml:1008
+#: reference_editor.xml:1149 reference_editor.xml:1450
+#: reference_editor.xml:1520 reference_editor.xml:1579
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: programlisting
+#: reference_editor.xml:119
+#, no-c-format
+msgid ""
+"--Rotate a 3d line 180 degrees about the z axis.  Note this is long-hand for "
+"doing ST_Rotate();\n"
+" SELECT ST_AsEWKT(ST_Affine(the_geom,  cos(pi()), -sin(pi()), 0,  sin(pi()), "
+"cos(pi()), 0,  0, 0, 1,  0, 0, 0)) As using_affine,\n"
+"         ST_AsEWKT(ST_Rotate(the_geom, pi())) As using_rotate\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
+"the_geom) As foo;\n"
+"        using_affine         |        using_rotate\n"
+"-----------------------------+-----------------------------\n"
+" LINESTRING(-1 -2 3,-1 -4 3) | LINESTRING(-1 -2 3,-1 -4 3)\n"
+"(1 row)\n"
+"\n"
+"--Rotate a 3d line 180 degrees in both the x and z axis\n"
+"SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), "
+"cos(pi()), -sin(pi()), 0, sin(pi()), cos(pi()), 0, 0, 0))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
+"the_geom) As foo;\n"
+"           st_asewkt\n"
+"-------------------------------\n"
+" LINESTRING(-1 -2 -3,-1 -4 -3)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:126
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Scale\"/>, <xref linkend=\"ST_Translate\"/>, <xref "
+"linkend=\"ST_TransScale\"/>"
+msgstr ""
+", <xref linkend=\"ST_Scale\"/>, <xref linkend=\"ST_Translate\"/>, <xref "
+"linkend=\"ST_TransScale\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:132
+#, fuzzy, no-c-format
+msgid "ST_Force2D"
+msgstr "ST_Force_2D"
+
+#. Tag: refpurpose
+#: reference_editor.xml:134
+#, no-c-format
+msgid ""
+"Forces the geometries into a \"2-dimensional mode\" so that all output "
+"representations will only have the X and Y coordinates."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:140
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:150
+#, no-c-format
+msgid ""
+"Forces the geometries into a \"2-dimensional mode\" so that all output "
+"representations will only have the X and Y coordinates. This is useful for "
+"force OGC-compliant output (since OGC only specifies 2-D geometries)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:155 reference_editor.xml:198 reference_editor.xml:241
+#: reference_editor.xml:367 reference_editor.xml:453 reference_editor.xml:1448
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:156
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_2D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:166
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Force2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                st_asewkt\n"
+"-------------------------------------\n"
+"CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"2,1 3 2,1 1 2))'));\n"
+"\n"
+"                                  st_asewkt\n"
+"----------------------------------------------\n"
+" POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:179
+#, fuzzy, no-c-format
+msgid "ST_Force3D"
+msgstr "ST_Force_3DZ"
+
+#. Tag: refpurpose
+#: reference_editor.xml:181
+#, fuzzy, no-c-format
+msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force3DZ."
+msgstr ""
+"Force les géométries à utiliser le mode XYZ. C'est un synonyme pour "
+"ST_Force_3D."
+
+#. Tag: funcprototype
+#: reference_editor.xml:186
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:196
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:199
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:209
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"                SELECT "
+"ST_AsEWKT(ST_Force3D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 "
+"7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"1))'));\n"
+"\n"
+"                                                 st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:216
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3DZ\"/>"
+msgstr ""
+", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:222
+#, fuzzy, no-c-format
+msgid "ST_Force3DZ"
+msgstr "ST_Force_3DZ"
+
+#. Tag: refpurpose
+#: reference_editor.xml:224
+#, fuzzy, no-c-format
+msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force3D."
+msgstr ""
+"Force les géométries à utiliser le mode XYZ. C'est un synonyme pour "
+"ST_Force_3D."
+
+#. Tag: funcprototype
+#: reference_editor.xml:229
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3DZ</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_3DZ</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:239
+#, fuzzy, no-c-format
+msgid ""
+"Forces the geometries into XYZ mode. This is a synonym for ST_Force3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+"Force les géométries à utiliser le mode XYZ. C'est un synonyme pour "
+"ST_Force_3D."
+
+#. Tag: para
+#: reference_editor.xml:242
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DZ."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:252
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"1))'));\n"
+"\n"
+"                                                 st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:259 reference_editor.xml:341
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>"
+msgstr ""
+", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:265
+#, fuzzy, no-c-format
+msgid "ST_Force3DM"
+msgstr "ST_Force_3DM"
+
+#. Tag: refpurpose
+#: reference_editor.xml:267
+#, no-c-format
+msgid "Forces the geometries into XYM mode."
+msgstr "Force les géométries à utiliser le mode XYM."
+
+#. Tag: funcprototype
+#: reference_editor.xml:272
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3DM</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_3DM</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:282
+#, no-c-format
+msgid ""
+"Forces the geometries into XYM mode. If a geometry has no M component, then "
+"a 0 M coordinate is tacked on. If it has a Z component, then Z is removed"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:285
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DM."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:293
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"------------------------------------------------\n"
+" CIRCULARSTRINGM(1 1 0,2 3 0,4 5 0,6 7 0,5 6 0)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 "
+"1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                  st_asewkt\n"
+"---------------------------------------------------------------\n"
+" POLYGONM((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:300 reference_editor.xml:389
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:306
+#, fuzzy, no-c-format
+msgid "ST_Force4D"
+msgstr "ST_Force_2D"
+
+#. Tag: refpurpose
+#: reference_editor.xml:308
+#, no-c-format
+msgid "Forces the geometries into XYZM mode."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:313
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force4D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_4D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:323
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZM mode. 0 is tacked on for missing Z and M "
+"dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:325
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_4D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:334
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+" CIRCULARSTRING(1 1 2 0,2 3 2 0,4 5 2 0,6 7 2 0,5 6 2 0)\n"
+"\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 "
+"1 1,3 1 1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                                          st_asewkt\n"
+"--------------------------------------------------------------------------------------\n"
+" MULTILINESTRING((0 0 0 1,0 5 0 2,5 0 0 3,0 0 0 4),(1 1 0 1,3 1 0 1,1 3 0 "
+"1,1 1 0 1))"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:347
+#, no-c-format
+msgid "ST_ForceCollection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:349
+#, no-c-format
+msgid "Converts the geometry into a GEOMETRYCOLLECTION."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:354
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_Collection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:364
+#, no-c-format
+msgid ""
+"Converts the geometry into a GEOMETRYCOLLECTION. This is useful for "
+"simplifying the WKB representation."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:368
+#, no-c-format
+msgid ""
+"Availability: 1.2.2, prior to 1.3.4 this function will crash with Curves. "
+"This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:369
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_Collection."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:380
+#, no-c-format
+msgid ""
+"SELECT  ST_AsEWKT(ST_ForceCollection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 "
+"1,3 1 1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                                   st_asewkt\n"
+"----------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1 3 1,1 1 "
+"1)))\n"
+"\n"
+"\n"
+"  SELECT ST_AsText(ST_ForceCollection('CIRCULARSTRING(220227 150406,2220227 "
+"150407,220227 150406)'));\n"
+"                                                                   st_astext\n"
+"--------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CIRCULARSTRING(220227 150406,2220227 150407,220227 "
+"150406))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:382
+#, no-c-format
+msgid ""
+"-- POLYHEDRAL example --\n"
+"SELECT ST_AsEWKT(ST_ForceCollection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 "
+"1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))'))\n"
+"\n"
+"                                                                   st_asewkt\n"
+"----------------------------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(\n"
+"  POLYGON((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+"  POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+"  POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+"  POLYGON((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+"  POLYGON((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+"  POLYGON((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))\n"
+")"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:396
+#, fuzzy, no-c-format
+msgid "ST_ForceSFS"
+msgstr "ST_Force_2D"
+
+#. Tag: refpurpose
+#: reference_editor.xml:398
+#, fuzzy, no-c-format
+msgid "Forces the geometries to use SFS 1.1 geometry types only."
+msgstr "Force les géométries à utiliser le mode XYM."
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:402
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_ForceSFS</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_ForceSFS</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>version</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
+"type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
+
+#. Tag: refname
+#: reference_editor.xml:428
+#, no-c-format
+msgid "ST_ForceRHR"
+msgstr "ST_ForceRHR"
+
+#. Tag: refpurpose
+#: reference_editor.xml:430
+#, no-c-format
+msgid ""
+"Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
+"Rule."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:436
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_ForceRHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_ForceRHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:447
+#, no-c-format
+msgid ""
+"Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
+"Rule. In GIS terminology, this means that the area that is bounded by the "
+"polygon is to the right of the boundary. In particular, the exterior ring is "
+"orientated in a clockwise direction and the interior rings in a counter-"
+"clockwise direction."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:461
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(\n"
+"  ST_ForceRHR(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'\n"
+"  )\n"
+");\n"
+"                                                  st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 2,1 3 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:467
+#, no-c-format
+msgid ", <xref linkend=\"ST_Polygonize\"/>, <xref linkend=\"ST_Reverse\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:475
+#, fuzzy, no-c-format
+msgid "ST_ForceCurve"
+msgstr "ST_Force_2D"
+
+#. Tag: refpurpose
+#: reference_editor.xml:477
+#, no-c-format
+msgid "Upcasts a geometry into its curved type, if applicable."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:482
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCurve</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:493
+#, no-c-format
+msgid ""
+"Turns a geometry into its curved representation, if applicable: lines become "
+"compoundcurves, multilines become multicurves polygons become curvepolygons "
+"multipolygons become multisurfaces. If the geometry input is already a "
+"curved representation returns back same as input."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:499
+#, fuzzy, no-c-format
+msgid "Availability: 2.2.0"
+msgstr "Disponibilité: 1.1.0"
+
+#. Tag: programlisting
+#: reference_editor.xml:508
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_ForceCurve(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'::geometry\n"
+"  )\n"
+");\n"
+"                              st_astext\n"
+"----------------------------------------------------------------------\n"
+" CURVEPOLYGON Z ((0 0 2,5 0 2,0 5 2,0 0 2),(1 1 2,1 3 2,3 1 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:520
+#, no-c-format
+msgid "ST_LineMerge"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:522
+#, no-c-format
+msgid ""
+"Returns a (set of) LineString(s) formed by sewing together a MULTILINESTRING."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:528
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineMerge</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>amultilinestring</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LineMerge</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>amultilinestring</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:538
+#, no-c-format
+msgid ""
+"Returns a (set of) LineString(s) formed by sewing together the constituent "
+"line work of a MULTILINESTRING."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:540
+#, no-c-format
+msgid ""
+"Only use with MULTILINESTRING/LINESTRINGs. If you feed a polygon or geometry "
+"collection into this function, it will return an empty GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:544
+#, no-c-format
+msgid "requires GEOS >= 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:550
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LineMerge(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 "
+"-33,-46 -32))')\n"
+"                )\n"
+");\n"
+"st_astext\n"
+"--------------------------------------------------------------------------------------------------\n"
+"LINESTRING(-29 -27,-30 -29.7,-36 -31,-45 -33,-46 -32)\n"
+"(1 row)\n"
+"\n"
+"--If can't be merged - original MULTILINESTRING is returned\n"
+"SELECT ST_AsText(ST_LineMerge(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 "
+"-33.2,-46 -32))')\n"
+")\n"
+");\n"
+"st_astext\n"
+"----------------\n"
+"MULTILINESTRING((-45.2 -33.2,-46 -32),(-29 -27,-30 -29.7,-36 -31,-45 -33))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:554
+#, fuzzy, no-c-format
+msgid ", <xref linkend=\"ST_LineSubstring\"/>"
+msgstr ", <xref linkend=\"ST_SetPoint\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:560
+#, no-c-format
+msgid "ST_CollectionExtract"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:562
+#, no-c-format
+msgid ""
+"Given a (multi)geometry, returns a (multi)geometry consisting only of "
+"elements of the specified type."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:569
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_CollectionExtract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>type</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_CollectionExtract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>type</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:580
+#, no-c-format
+msgid ""
+"Given a (multi)geometry, returns a (multi)geometry consisting only of "
+"elements of the specified type. Sub-geometries that are not the specified "
+"type are ignored. If there are no sub-geometries of the right type, an EMPTY "
+"geometry will be returned. Only points, lines and polygons are supported. "
+"Type numbers are 1 == POINT, 2 == LINESTRING, 3 == POLYGON."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:586
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:588
+#, no-c-format
+msgid ""
+"Prior to 1.5.3 this function returned non-collection inputs untouched, no "
+"matter type. In 1.5.3 non-matching single geometries result in a NULL "
+"return. In of 2.0.0 every case of missing match results in a typed EMPTY "
+"return."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:594 reference_editor.xml:635
+#, no-c-format
+msgid ""
+"When specifying 3 == POLYGON a multipolygon is returned even when the edges "
+"are shared. This results in an invalid multipolygon for many cases such as "
+"applying this function on an <xref linkend=\"ST_Split\"/> result."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:602
+#, no-c-format
+msgid ""
+"-- Constants: 1 == POINT, 2 == LINESTRING, 3 == POLYGON\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 "
+"0)))'),1));\n"
+"st_astext\n"
+"---------------\n"
+"MULTIPOINT(0 0)\n"
+"(1 row)\n"
+"\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(LINESTRING(0 "
+"0, 1 1)),LINESTRING(2 2, 3 3))'),2));\n"
+"st_astext\n"
+"---------------\n"
+"MULTILINESTRING((0 0, 1 1), (2 2, 3 3))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:606
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_CollectionHomogenize\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:612
+#, no-c-format
+msgid "ST_CollectionHomogenize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:614
+#, no-c-format
+msgid ""
+"Given a geometry collection, returns the \"simplest\" representation of the "
+"contents."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:621
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_CollectionHomogenize</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_CollectionHomogenize</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:631
+#, no-c-format
+msgid ""
+"Given a geometry collection, returns the \"simplest\" representation of the "
+"contents. Singletons will be returned as singletons. Collections that are "
+"homogeneous will be returned as the appropriate multi-type."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:639
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:646
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 "
+"0))'));        \n"
+"\n"
+"        st_astext\n"
+"        ------------\n"
+"         POINT(0 0)\n"
+"        (1 row)\n"
+"\n"
+"  SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0),"
+"POINT(1 1))'));        \n"
+"\n"
+"        st_astext\n"
+"        ---------------------\n"
+"         MULTIPOINT(0 0,1 1)\n"
+"        (1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:650
+#, no-c-format
+msgid ", <xref linkend=\"ST_CollectionExtract\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:656
+#, no-c-format
+msgid "ST_Multi"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:658
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the geometry as a MULTI* geometry. If the geometry is "
+"already a MULTI*, it is returned unchanged.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:664
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Multi</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Multi</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:674
+#, no-c-format
+msgid ""
+"<para>Returns the geometry as a MULTI* geometry. If the geometry is already "
+"a MULTI*, it is returned unchanged.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:682
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Multi(ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))')));\n"
+"                        st_astext\n"
+"                        --------------------------------------------------------------------------------------------------\n"
+"                        MULTIPOLYGON(((743238 2967416,743238 2967450,743265 "
+"2967450,743265.625 2967416,\n"
+"                        743238 2967416)))\n"
+"                        (1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:692
+#, no-c-format
+msgid "ST_RemovePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:693
+#, no-c-format
+msgid "Removes point from a linestring. Offset is 0-based."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:697
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RemovePoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>offset</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_RemovePoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>offset</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:708
+#, no-c-format
+msgid ""
+"Removes point from a linestring. Useful for turning a closed ring into an "
+"open line string"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:715
+#, no-c-format
+msgid ""
+"--guarantee no LINESTRINGS are closed\n"
+"--by removing the end point.  The below assumes the_geom is of type "
+"LINESTRING\n"
+"UPDATE sometable\n"
+"        SET the_geom = ST_RemovePoint(the_geom, ST_NPoints(the_geom) - 1)\n"
+"        FROM sometable\n"
+"        WHERE ST_IsClosed(the_geom) = true;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:719
+#, no-c-format
+msgid ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:725
+#, no-c-format
+msgid "ST_Reverse"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:726
+#, no-c-format
+msgid "Returns the geometry with vertex order reversed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:731
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Reverse</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Reverse</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:741
+#, no-c-format
+msgid "Can be used on any geometry and reverses the order of the vertexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:746
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom) as line, ST_AsText(ST_Reverse(the_geom)) As "
+"reverseline\n"
+"FROM\n"
+"(SELECT ST_MakeLine(ST_MakePoint(1,2),\n"
+"                ST_MakePoint(1,10)) As the_geom) as foo;\n"
+"--result\n"
+"                line         |     reverseline\n"
+"---------------------+----------------------\n"
+"LINESTRING(1 2,1 10) | LINESTRING(1 10,1 2)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:752
+#, no-c-format
+msgid "ST_Rotate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:754
+#, no-c-format
+msgid "Rotate a geometry rotRadians counter-clockwise about an origin."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:758
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Rotate</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>x0</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>y0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Rotate</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>rotRadians</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>pointOrigin</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Rotate</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>x0</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>y0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Rotate</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>rotRadians</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>pointOrigin</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:785
+#, no-c-format
+msgid ""
+"Rotates geometry rotRadians counter-clockwise about the origin. The rotation "
+"origin can be specified either as a POINT geometry, or as x and y "
+"coordinates. If the origin is not specified, the geometry is rotated about "
+"POINT(0 0)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:790
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 additional parameters for specifying the origin of rotation "
+"were added."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:791
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from Rotate to ST_Rotate in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:803
+#, no-c-format
+msgid ""
+"--Rotate 180 degrees\n"
+"SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()));\n"
+"               st_asewkt\n"
+"---------------------------------------\n"
+" LINESTRING(-50 -160,-50 -50,-100 -50)\n"
+"(1 row)\n"
+"\n"
+"--Rotate 30 degrees counter-clockwise at x=50, y=160\n"
+"SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()/6, 50, "
+"160));\n"
+"                                 st_asewkt\n"
+"---------------------------------------------------------------------------\n"
+" LINESTRING(50 160,105 64.7372055837117,148.301270189222 89.7372055837117)\n"
+"(1 row)\n"
+"\n"
+"--Rotate 60 degrees clockwise from centroid\n"
+"SELECT ST_AsEWKT(ST_Rotate(geom, -pi()/3, ST_Centroid(geom)))\n"
+"FROM (SELECT 'LINESTRING (50 160, 50 50, 100 50)'::geometry AS geom) AS "
+"foo;\n"
+"                           st_asewkt\n"
+"--------------------------------------------------------------\n"
+" LINESTRING(116.4225 130.6721,21.1597 75.6721,46.1597 32.3708)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:810
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>, <xref "
+"linkend=\"ST_RotateZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:816
+#, no-c-format
+msgid "ST_RotateX"
+msgstr "ST_RotateX"
+
+#. Tag: refpurpose
+#: reference_editor.xml:818
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the X axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:823
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateX</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_RotateX</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:834
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the X axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:836
+#, no-c-format
+msgid ""
+"<code>ST_RotateX(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, "
+"sin(rotRadians), cos(rotRadians), 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:840
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateX to ST_RotateX in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:850
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along x-axis\n"
+"SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(1 -3 2,1 -1 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:857
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
+msgstr ", <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:863
+#, no-c-format
+msgid "ST_RotateY"
+msgstr "ST_RotateY"
+
+#. Tag: refpurpose
+#: reference_editor.xml:865
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the Y axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:870
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateY</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_RotateY</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:881
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the y axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:883
+#, no-c-format
+msgid ""
+"<code>ST_RotateY(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -"
+"sin(rotRadians), 0, cos(rotRadians), 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:886
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateY to ST_RotateY in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:899
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along y-axis\n"
+" SELECT ST_AsEWKT(ST_RotateY(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(3 2 -1,1 1 -1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:906
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateZ\"/>"
+msgstr ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateZ\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:912
+#, no-c-format
+msgid "ST_RotateZ"
+msgstr "ST_RotateZ"
+
+#. Tag: refpurpose
+#: reference_editor.xml:914
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the Z axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:919
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateZ</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_RotateZ</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:930
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the Z axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:932
+#, no-c-format
+msgid "This is a synonym for ST_Rotate"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:933
+#, no-c-format
+msgid ""
+"<code>ST_RotateZ(geomA, rotRadians)</code> is short-hand for <code>SELECT "
+"ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), "
+"cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:938
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateZ to ST_RotateZ in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:951
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along z-axis\n"
+"SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(-2 1 3,-1 1 1)\n"
+"\n"
+" --Rotate a curved circle around z-axis\n"
+"SELECT ST_AsEWKT(ST_RotateZ(the_geom, pi()/2))\n"
+"FROM (SELECT ST_LineToCurve(ST_Buffer(ST_GeomFromText('POINT(234 567)'), 3)) "
+"As the_geom) As foo;\n"
+"\n"
+"                                                                                                           st_asewkt\n"
+"----------------------------------------------------------------------------------------------------------------------------\n"
+" CURVEPOLYGON(CIRCULARSTRING(-567 237,-564.87867965644 236.12132034356,-564 "
+"234,-569.12132034356 231.87867965644,-567 237))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:958
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>"
+msgstr ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:964
+#, no-c-format
+msgid "ST_Scale"
+msgstr "ST_Scale"
+
+#. Tag: refpurpose
+#: reference_editor.xml:966
+#, no-c-format
+msgid ""
+"<refpurpose>Scales the geometry to a new size by multiplying the ordinates "
+"with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:973
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>ZFactor</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Scale</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>XFactor</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>YFactor</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>ZFactor</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Scale</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>XFactor</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>YFactor</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:994
+#, no-c-format
+msgid ""
+"<para>Scales the geometry to a new size by multiplying the ordinates with "
+"the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:998
+#, no-c-format
+msgid ""
+"<code>ST_Scale(geomA, XFactor, YFactor, ZFactor)</code> is short-hand for "
+"<code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, "
+"0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1004 reference_editor.xml:1577
+#, no-c-format
+msgid "Availability: 1.1.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1016
+#, no-c-format
+msgid ""
+"--Version 1: scale X, Y, Z\n"
+"SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, "
+"0.75, 0.8));\n"
+"                          st_asewkt\n"
+"--------------------------------------\n"
+" LINESTRING(0.5 1.5 2.4,0.5 0.75 0.8)\n"
+"\n"
+"--Version 2: Scale X Y\n"
+" SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, "
+"0.75));\n"
+"                        st_asewkt\n"
+"----------------------------------\n"
+" LINESTRING(0.5 1.5 3,0.5 0.75 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1023
+#, no-c-format
+msgid ", <xref linkend=\"ST_TransScale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1029
+#, no-c-format
+msgid "ST_Segmentize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1031
+#, no-c-format
+msgid ""
+"Return a modified geometry/geography having no segment longer than the given "
+"distance. Distance computation is performed in 2d only. For geometry, length "
+"units are in units of spatial reference. For geography, units are in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1037
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geography "
+"<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
+"type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
+"type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:1054
+#, no-c-format
+msgid ""
+"Returns a modified geometry having no segment longer than the given "
+"<varname>max_segment_length</varname>. Distance computation is performed in "
+"2d only. For geometry, length units are in units of spatial reference. For "
+"geography, units are in meters."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1057 reference_editor.xml:1518
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1058
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1059
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 As a result of the introduction of geography support: The "
+"construct <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</code> "
+"will result in ambiguous function error. You need to have properly typed "
+"object e.g. a geometry/geography column, use ST_GeomFromText, "
+"ST_GeogFromText or <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)'::"
+"geometry,0.5);</code>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1061
+#, no-c-format
+msgid ""
+"This will only increase segments. It will not lengthen segments shorter than "
+"max length"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1068
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Segmentize(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 "
+"-33,-46 -32))')\n"
+"                ,5)\n"
+");\n"
+"st_astext\n"
+"--------------------------------------------------------------------------------------------------\n"
+"MULTILINESTRING((-29 -27,-30 -29.7,-34.886615700134 -30.758766735029,-36 "
+"-31,\n"
+"-40.8809353009198 -32.0846522890933,-45 -33),\n"
+"(-45 -33,-46 -32))\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_Segmentize(ST_GeomFromText('POLYGON((-29 28, -30 40, -29 "
+"28))'),10));\n"
+"st_astext\n"
+"-----------------------\n"
+"POLYGON((-29 28,-29.8304547985374 37.9654575824488,-30 40,-29.1695452014626 "
+"30.0345424175512,-29 28))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1078
+#, no-c-format
+msgid "ST_SetPoint"
+msgstr "ST_SetPoint"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1079
+#, no-c-format
+msgid "Replace point N of linestring with given point. Index is 0-based."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1084
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SetPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>zerobasedposition</parameter></"
+"paramdef> <paramdef><type>geometry</type> <parameter>point</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_SetPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>zerobasedposition</parameter></"
+"paramdef> <paramdef><type>geometry</type> <parameter>point</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1096
+#, no-c-format
+msgid ""
+"Replace point N of linestring with given point. Index is 0-based. This is "
+"especially useful in triggers when trying to maintain relationship of joints "
+"when one vertex moves."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1106
+#, no-c-format
+msgid ""
+"--Change first point in line string from -1 3 to -1 1\n"
+"SELECT ST_AsText(ST_SetPoint('LINESTRING(-1 2,-1 3)', 0, 'POINT(-1 1)'));\n"
+"           st_astext\n"
+"-----------------------\n"
+" LINESTRING(-1 1,-1 3)\n"
+"\n"
+"---Change last point in a line string (lets play with 3d linestring this "
+"time)\n"
+"SELECT ST_AsEWKT(ST_SetPoint(foo.the_geom, ST_NumPoints(foo.the_geom) - 1, "
+"ST_GeomFromEWKT('POINT(-1 1 3)')))\n"
+"FROM (SELECT ST_GeomFromEWKT('LINESTRING(-1 2 3,-1 3 4, 5 6 7)') As "
+"the_geom) As foo;\n"
+"           st_asewkt\n"
+"-----------------------\n"
+"LINESTRING(-1 2 3,-1 3 4,-1 1 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1110
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>, <xref "
+"linkend=\"ST_PointN\"/>, <xref linkend=\"ST_RemovePoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1116
+#, no-c-format
+msgid "ST_SetSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1118
+#, no-c-format
+msgid "Sets the SRID on a geometry to a particular integer value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1124
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1139
+#, no-c-format
+msgid ""
+"Sets the SRID on a geometry to a particular integer value. Useful in "
+"constructing bounding boxes for queries."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1143
+#, no-c-format
+msgid ""
+"This function does not transform the geometry coordinates in any way - it "
+"simply sets the meta data defining the spatial reference system the geometry "
+"is assumed to be in. Use <xref linkend=\"ST_Transform\"/> if you want to "
+"transform the geometry into a new projection."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1148
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1154
+#, no-c-format
+msgid "-- Mark a point as WGS 84 long lat --"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1155
+#, no-c-format
+msgid ""
+"SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) As wgs84long_lat;\n"
+"-- the ewkt representation (wrap with ST_AsEWKT) -\n"
+"SRID=4326;POINT(-123.365556 48.428611)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1156
+#, no-c-format
+msgid ""
+"-- Mark a point as WGS 84 long lat and then transform to web mercator "
+"(Spherical Mercator) --"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1157
+#, no-c-format
+msgid ""
+"SELECT ST_Transform(ST_SetSRID(ST_Point(-123.365556, 48.428611),4326),3785) "
+"As spere_merc;\n"
+"-- the ewkt representation (wrap with ST_AsEWKT) -\n"
+"SRID=3785;POINT(-13732990.8753491 6178458.96425423)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1163
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_SRID\"/>, <xref linkend=\"ST_Transform\"/>, <xref linkend="
+"\"UpdateGeometrySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1170
+#, no-c-format
+msgid "ST_SnapToGrid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1172
+#, no-c-format
+msgid "Snap all points of the input geometry to a regular grid."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1178
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_SnapToGrid</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originY</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeY</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>size</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_SnapToGrid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>pointOrigin</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeZ</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeM</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_SnapToGrid</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originY</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeY</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>size</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_SnapToGrid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>pointOrigin</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeZ</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeM</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:1216
+#, no-c-format
+msgid ""
+"Variant 1,2,3: Snap all points of the input geometry to the grid defined by "
+"its origin and cell size. Remove consecutive points falling on the same "
+"cell, eventually returning NULL if output points are not enough to define a "
+"geometry of the given type. Collapsed geometries in a collection are "
+"stripped from it. Useful for reducing precision."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1224
+#, no-c-format
+msgid ""
+"Variant 4: Introduced 1.1.0 - Snap all points of the input geometry to the "
+"grid defined by its origin (the second argument, must be a point) and cell "
+"sizes. Specify 0 as size for any dimension you don't want to snap to a grid."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1230
+#, no-c-format
+msgid ""
+"The returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1235
+#, no-c-format
+msgid ""
+"Before release 1.1.0 this function always returned a 2d geometry. Starting "
+"at 1.1.0 the returned geometry will have same dimensionality as the input "
+"one with higher dimension values untouched. Use the version taking a second "
+"geometry argument to define all grid dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1242
+#, no-c-format
+msgid "Availability: 1.0.0RC1"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1243
+#, no-c-format
+msgid "Availability: 1.1.0 - Z and M support"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1252
+#, no-c-format
+msgid ""
+"--Snap your geometries to a precision grid of 10^-3\n"
+"UPDATE mytable\n"
+"   SET the_geom = ST_SnapToGrid(the_geom, 0.001);\n"
+"\n"
+"SELECT ST_AsText(ST_SnapToGrid(\n"
+"                        ST_GeomFromText('LINESTRING(1.1115678 2.123, "
+"4.111111 3.2374897, 4.11112 3.23748667)'),\n"
+"                        0.001)\n"
+"                );\n"
+"                          st_astext\n"
+"-------------------------------------\n"
+" LINESTRING(1.112 2.123,4.111 3.237)\n"
+" --Snap a 4d geometry\n"
+"SELECT ST_AsEWKT(ST_SnapToGrid(\n"
+"        ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 2.3456 1.11111,\n"
+"                4.111111 3.2374897 3.1234 1.1111, -1.11111112 2.123 2.3456 "
+"1.1111112)'),\n"
+" ST_GeomFromEWKT('POINT(1.12 2.22 3.2 4.4444)'),\n"
+" 0.1, 0.1, 0.1, 0.01) );\n"
+"                                                                  st_asewkt\n"
+"------------------------------------------------------------------------------\n"
+" LINESTRING(-1.08 2.12 2.3 1.1144,4.12 3.22 3.1 1.1144,-1.08 2.12 2.3 "
+"1.1144)\n"
+"\n"
+"\n"
+"--With a 4d geometry - the ST_SnapToGrid(geom,size) only touches x and y "
+"coords but keeps m and z the same\n"
+"SELECT ST_AsEWKT(ST_SnapToGrid(ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 "
+"3 2.3456,\n"
+"                4.111111 3.2374897 3.1234 1.1111)'),\n"
+"           0.01)      );\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+" LINESTRING(-1.11 2.12 3 2.3456,4.11 3.24 3.1234 1.1111)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1259
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_Simplify\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1272
+#, no-c-format
+msgid "ST_Snap"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1274
+#, no-c-format
+msgid ""
+"Snap segments and vertices of input geometry to vertices of a reference "
+"geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1282
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Snap</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>reference</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Snap</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>reference</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1294
+#, no-c-format
+msgid ""
+"Snaps the vertices and segments of a geometry another Geometry's vertices. A "
+"snap distance tolerance is used to control where snapping is performed."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1299
+#, no-c-format
+msgid ""
+"Snapping one geometry to another can improve robustness for overlay "
+"operations by eliminating nearly-coincident edges (which cause problems "
+"during noding and intersection calculation)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1306
+#, no-c-format
+msgid ""
+"Too much snapping can result in invalid topology being created, so the "
+"number and location of snapped vertices is decided using heuristics to "
+"determine when it is safe to snap. This can result in some potential snaps "
+"being omitted, however."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1315
+#, no-c-format
+msgid ""
+"The returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>) and validity (see <xref linkend=\"ST_IsValid\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1322
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1339
+#, no-c-format
+msgid "A multipolygon shown with a linestring (before any snapping)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1350
+#, no-c-format
+msgid ""
+"A multipolygon snapped to linestring to tolerance: 1.01 of distance. The new "
+"multipolygon is shown with reference linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1354
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Snap(poly,line, ST_Distance(poly,line)*1.01)) AS "
+"polysnapped\n"
+"FROM (SELECT \n"
+"   ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )), \n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+" MULTIPOLYGON(((26 125,26 200,126 200,126 125,101 100,26 125),\n"
+" (51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1361
+#, no-c-format
+msgid ""
+"A multipolygon snapped to linestring to tolerance: 1.25 of distance. The new "
+"multipolygon is shown with reference linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1365
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"    ST_Snap(poly,line, ST_Distance(poly,line)*1.25)\n"
+"  ) AS polysnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"    (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )),\n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+"MULTIPOLYGON(((5 107,26 200,126 200,126 125,101 100,54 84,5 107),\n"
+"(51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1374
+#, no-c-format
+msgid ""
+"The linestring snapped to the original multipolygon at tolerance 1.01 of "
+"distance. The new linestring is shown with reference multipolygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1378
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"   ST_Snap(line, poly, ST_Distance(poly,line)*1.01)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100)))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"        ) As foo;\n"
+"\n"
+"              linesnapped\n"
+"----------------------------------------\n"
+" LINESTRING(5 107,26 125,54 84,101 100)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1386
+#, no-c-format
+msgid ""
+"The linestring snapped to the original multipolygon at tolerance 1.25 of "
+"distance. The new linestring is shown with reference multipolygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1390
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+" ST_Snap(line, poly, ST_Distance(poly,line)*1.25)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As "
+"line        \n"
+"        ) As foo;\n"
+"              linesnapped\n"
+"---------------------------------------\n"
+"LINESTRING(26 125,54 84,101 100)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1411
+#, no-c-format
+msgid "ST_Transform"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1413
+#, no-c-format
+msgid ""
+"Returns a new geometry with its coordinates transformed to the SRID "
+"referenced by the integer parameter."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1419
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Transform</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Transform</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1430
+#, no-c-format
+msgid ""
+"Returns a new geometry with its coordinates transformed to spatial reference "
+"system referenced by the SRID integer parameter. The destination SRID must "
+"exist in the <varname>SPATIAL_REF_SYS</varname> table."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1433
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a geometry from one spatial reference system to "
+"another, while ST_SetSRID() simply changes the SRID identifier of the "
+"geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1438
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with Proj support. Use <xref linkend="
+"\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1442
+#, no-c-format
+msgid ""
+"If using more than one transformation, it is useful to have a functional "
+"index on the commonly used transformations to take advantage of index usage."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1449
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.6"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1457
+#, no-c-format
+msgid "Change Mass state plane US feet geometry to WGS 84 long lat"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1458
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Transform(ST_GeomFromText('POLYGON((743238 "
+"2967416,743238 2967450,\n"
+"        743265 2967450,743265.625 2967416,743238 2967416))',2249),4326)) As "
+"wgs_geom;\n"
+"\n"
+" wgs_geom\n"
+"---------------------------\n"
+" POLYGON((-71.1776848522251 42.3902896512902,-71.1776843766326 "
+"42.3903829478009,\n"
+"-71.1775844305465 42.3903826677917,-71.1775825927231 "
+"42.3902893647987,-71.177684\n"
+"8522251 42.3902896512902));\n"
+"(1 row)\n"
+"\n"
+"--3D Circular String example\n"
+"SELECT ST_AsEWKT(ST_Transform(ST_GeomFromEWKT('SRID=2249;"
+"CIRCULARSTRING(743238 2967416 1,743238 2967450 2,743265 2967450 3,743265.625 "
+"2967416 3,743238 2967416 4)'),4326));\n"
+"\n"
+"                                 st_asewkt\n"
+"--------------------------------------------------------------------------------------\n"
+" SRID=4326;CIRCULARSTRING(-71.1776848522251 42.3902896512902 "
+"1,-71.1776843766326 42.3903829478009 2,\n"
+" -71.1775844305465 42.3903826677917 3,\n"
+" -71.1775825927231 42.3902893647987 3,-71.1776848522251 42.3902896512902 4)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1459
+#, no-c-format
+msgid ""
+"Example of creating a partial functional index. For tables where you are not "
+"sure all the geometries will be filled in, its best to use a partial index "
+"that leaves out null geometries which will both conserve space and make your "
+"index smaller and more efficient."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1461
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_the_geom_26986_parcels\n"
+"  ON parcels\n"
+"  USING gist\n"
+"  (ST_Transform(the_geom, 26986))\n"
+"  WHERE the_geom IS NOT NULL;"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:1465
+#, no-c-format
+msgid "Configuring transformation behaviour"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1466
+#, no-c-format
+msgid ""
+"Sometimes coordinate transformation involving a grid-shift can fail, for "
+"example if PROJ.4 has not been built with grid-shift files or the coordinate "
+"does not lie within the range for which the grid shift is defined. By "
+"default, PostGIS will throw an error if a grid shift file is not present, "
+"but this behaviour can be configured on a per-SRID basis by altering the "
+"proj4text value within the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1467
+#, no-c-format
+msgid ""
+"For example, the proj4text parameter +datum=NAD87 is a shorthand form for "
+"the following +nadgrids parameter:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1468
+#, no-c-format
+msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1469
+#, no-c-format
+msgid ""
+"The @ prefix means no error is reported if the files are not present, but if "
+"the end of the list is reached with no file having been appropriate (ie. "
+"found and overlapping) then an error is issued."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1470
+#, no-c-format
+msgid ""
+"If, conversely, you wanted to ensure that at least the standard files were "
+"present, but that if all files were scanned without a hit a null "
+"transformation is applied you could use:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1471
+#, no-c-format
+msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1472
+#, no-c-format
+msgid ""
+"The null grid shift file is a valid grid shift file covering the whole world "
+"and applying no shift. So for a complete example, if you wanted to alter "
+"PostGIS so that transformations to SRID 4267 that didn't lie within the "
+"correct range did not throw an ERROR, you would use the following:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1473
+#, no-c-format
+msgid ""
+"UPDATE spatial_ref_sys SET proj4text = '+proj=longlat +ellps=clrk66 "
+"+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null +no_defs' WHERE srid "
+"= 4267;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1480
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"UpdateGeometrySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1486
+#, no-c-format
+msgid "ST_Translate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1488
+#, no-c-format
+msgid ""
+"Translates the geometry to a new location using the numeric parameters as "
+"offsets. Ie: ST_Translate(geom, X, Y) or ST_Translate(geom, X, Y,Z)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1493
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Translate</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltax</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltay</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Translate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltax</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltay</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltaz</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Translate</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltax</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltay</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Translate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltax</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltay</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltaz</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:1513
+#, no-c-format
+msgid ""
+"Returns a new geometry whose coordinates are translated delta x,delta y,"
+"delta z units. Units are based on the units defined in spatial reference "
+"(SRID) for this geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1525
+#, no-c-format
+msgid "Move a point 1 degree longitude"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1526
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 "
+"42.37)',4326),1,0)) As wgs_transgeomtxt;\n"
+"\n"
+"        wgs_transgeomtxt\n"
+"        ---------------------\n"
+"        POINT(-70.01 42.37)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1527
+#, no-c-format
+msgid "Move a linestring 1 degree longitude and 1/2 degree latitude"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1528
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 "
+"42.37,-71.11 42.38)',4326),1,0.5)) As wgs_transgeomtxt;\n"
+"                   wgs_transgeomtxt\n"
+"        ---------------------------------------\n"
+"        LINESTRING(-70.01 42.87,-70.11 42.88)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1529
+#, no-c-format
+msgid "Move a 3d point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1530
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' As geometry), 5, 12,3));\n"
+"        st_asewkt\n"
+"        ---------\n"
+"        POINT(5 12 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1531
+#, no-c-format
+msgid "Move a curve and a point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1532
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_Collect('CURVEPOLYGON(CIRCULARSTRING(4 "
+"3,3.12 0.878,1 0,-1.121 5.1213,6 7, 8 9,4 3))','POINT(1 3)'),1,2));\n"
+"                                                                                                                 st_astext\n"
+"------------------------------------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CURVEPOLYGON(CIRCULARSTRING(5 5,4.12 2.878,2 2,-0.121 "
+"7.1213,7 9,9 11,5 5)),POINT(2 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1538
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:1544
+#, no-c-format
+msgid "ST_TransScale"
+msgstr "ST_TransScale"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1546
+#, no-c-format
+msgid ""
+"<refpurpose>Translates the geometry using the deltaX and deltaY args, then "
+"scales it using the XFactor, YFactor args, working in 2D only.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1553
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_TransScale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaX</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaY</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_TransScale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaX</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaY</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1567
+#, no-c-format
+msgid ""
+"<para>Translates the geometry using the deltaX and deltaY args, then scales "
+"it using the XFactor, YFactor args, working in 2D only.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1570
+#, no-c-format
+msgid ""
+"<code>ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor)</code> is short-"
+"hand for <code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, "
+"deltaX*XFactor, deltaY*YFactor, 0)</code>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1586
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_TransScale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"0.5, 1, 1, 2));\n"
+"                  st_asewkt\n"
+"-----------------------------\n"
+" LINESTRING(1.5 6 3,1.5 4 1)\n"
+"\n"
+"\n"
+"--Buffer a point to get an approximation of a circle, convert to curve and "
+"then translate 1,2 and scale it 3,4\n"
+"  SELECT ST_AsText(ST_Transscale(ST_LineToCurve(ST_Buffer('POINT(234 567)', "
+"3)),1,2,3,4));\n"
+"                                                                                                                  st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" CURVEPOLYGON(CIRCULARSTRING(714 2276,711.363961030679 2267.51471862576,705 "
+"2264,698.636038969321 2284.48528137424,714 2276))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1593
+#, no-c-format
+msgid ", <xref linkend=\"ST_Translate\"/>"
+msgstr ", <xref linkend=\"ST_Translate\"/>"
diff --git a/doc/po/fr/reference_exception.xml.po b/doc/po/fr/reference_exception.xml.po
new file mode 100644
index 0000000..c707778
--- /dev/null
+++ b/doc/po/fr/reference_exception.xml.po
@@ -0,0 +1,282 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# vpicavet <vincent.ml at oslandia.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2014-03-25 13:52+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_exception.xml:3
+#, no-c-format
+msgid "Exceptional Functions"
+msgstr "Fonctions particulières"
+
+#. Tag: para
+#: reference_exception.xml:4
+#, no-c-format
+msgid ""
+"These functions are rarely used functions that should only be used if your "
+"data is corrupted in someway. They are used for troubleshooting corruption "
+"and also fixing things that should under normal circumstances, never happen."
+msgstr ""
+"Ces fonctions sont rarement utilisées et ne devraient être employées que si "
+"vos données sont corrompues d'une manière ou d'une autre. Elles sont "
+"utilisées pour vérifier les corruptions de données et réparer des choses qui "
+"ne devraient jamais arriver dans des circonstances normales."
+
+#. Tag: refname
+#: reference_exception.xml:9
+#, no-c-format
+msgid "PostGIS_AddBBox"
+msgstr "PostGIS_AddBBox"
+
+#. Tag: refpurpose
+#: reference_exception.xml:11
+#, no-c-format
+msgid "Add bounding box to the geometry."
+msgstr "Ajoute une bounding box à la géométrie"
+
+#. Tag: funcprototype
+#: reference_exception.xml:16
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>PostGIS_AddBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>PostGIS_AddBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: title
+#: reference_exception.xml:24 reference_exception.xml:70
+#: reference_exception.xml:119
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_exception.xml:26
+#, no-c-format
+msgid ""
+"Add bounding box to the geometry. This would make bounding box based queries "
+"faster, but will increase the size of the geometry."
+msgstr ""
+"Ajoute une bounding box (boîte englobante) à la géométrie. Cela accélère les "
+"requêtes basées sur les bounding box, mais augmente également la taille de "
+"la géométrie."
+
+#. Tag: para
+#: reference_exception.xml:31
+#, no-c-format
+msgid ""
+"Bounding boxes are automatically added to geometries so in general this is "
+"not needed unless the generated bounding box somehow becomes corrupted or "
+"you have an old install that is lacking bounding boxes. Then you need to "
+"drop the old and readd."
+msgstr ""
+"Les bounding boxes sont automatiquement ajoutées aux géométries, donc en "
+"général cette fonction n'est pas nécessaire sauf si la bounding box générée "
+"devient corrompue, ou si vous avez une vieille installation qui n'a pas de "
+"bounding boxes. Alors vous aurez besoin de supprimer l'ancienne et de la "
+"remettre."
+
+#. Tag: para
+#: reference_exception.xml:35 reference_exception.xml:83
+#: reference_exception.xml:124
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: title
+#: reference_exception.xml:40 reference_exception.xml:88
+#: reference_exception.xml:129
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples"
+
+#. Tag: programlisting
+#: reference_exception.xml:42
+#, no-c-format
+msgid ""
+"UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE PostGIS_HasBBox(the_geom) = false;"
+msgstr ""
+"UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE PostGIS_HasBBox(the_geom) = false;"
+
+#. Tag: title
+#: reference_exception.xml:47 reference_exception.xml:95
+#: reference_exception.xml:136
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: para
+#: reference_exception.xml:49
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_HasBBox\"/>"
+msgstr ", <xref linkend=\"PostGIS_HasBBox\"/>"
+
+#. Tag: refname
+#: reference_exception.xml:55
+#, no-c-format
+msgid "PostGIS_DropBBox"
+msgstr "PostGIS_DropBBox"
+
+#. Tag: refpurpose
+#: reference_exception.xml:57
+#, no-c-format
+msgid "Drop the bounding box cache from the geometry."
+msgstr "Supprime le cache de bounding box de la géométrie."
+
+#. Tag: funcprototype
+#: reference_exception.xml:62
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>PostGIS_DropBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>PostGIS_DropBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_exception.xml:72
+#, no-c-format
+msgid ""
+"Drop the bounding box cache from the geometry. This reduces geometry size, "
+"but makes bounding-box based queries slower. It is also used to drop a "
+"corrupt bounding box. A tale-tell sign of a corrupt cached bounding box is "
+"when your ST_Intersects and other relation queries leave out geometries that "
+"rightfully should return true."
+msgstr ""
+"Supprime le cache de la bounding box de la géométrie. Cela réduit la taille "
+"de la géométrie, mais ralentit les requêtes basées sur les bounding boxes. "
+"C'est aussi utilisé pour supprimer une bounding box corrompue. Un signe "
+"révélateur d'un cache de bounding box corrompu est lorsque la fonction "
+"ST_Intersects ou d'autre requêtes de relations laisse de côté des géométries "
+"qui devraient théoriquement être prise en compte."
+
+#. Tag: para
+#: reference_exception.xml:77
+#, no-c-format
+msgid ""
+"Bounding boxes are automatically added to geometries and improve speed of "
+"queries so in general this is not needed unless the generated bounding box "
+"somehow becomes corrupted or you have an old install that is lacking "
+"bounding boxes. Then you need to drop the old and readd. This kind of "
+"corruption has been observed in 8.3-8.3.6 series whereby cached bboxes were "
+"not always recalculated when a geometry changed and upgrading to a newer "
+"version without a dump reload will not correct already corrupted boxes. So "
+"one can manually correct using below and readd the bbox or do a dump reload."
+msgstr ""
+"Les bounding boxes sont automatiquement ajoutées aux géométries et "
+"améliorent la vitesse des requêtes donc en général ce n'est pas nécessaire, "
+"sauf si la bounding box générée devient corrompue ou si vous avez une "
+"vieille installation qui ne possède pas de bounding boxes. Alors vous devrez "
+"supprimer l'ancienne et la ré-ajouter. Ce type de corruption a été observé "
+"dans les séries 8.3-8.3.6 où les bboxes cachées n'étaient pas toujours "
+"recalculées lorsqu'une géométrie était changée, et une mise à jour vers une "
+"nouvelle version sans une sauvegarde et restauration ne corrigeait pas les "
+"bounding boxes corrompues. En conséquence, on peut corriger la situation en "
+"utilisant cette fonction et en ré-ajoutant la bbox ou en faisant une "
+"sauvegarde-restauration."
+
+#. Tag: programlisting
+#: reference_exception.xml:90
+#, no-c-format
+msgid ""
+"--This example drops bounding boxes where the cached box is not correct\n"
+"                        --The force to ST_AsBinary before applying Box2D "
+"forces a recalculation of the box, and Box2D applied to the table geometry "
+"always\n"
+"                        -- returns the cached bounding box.\n"
+"                        UPDATE sometable\n"
+" SET the_geom =  PostGIS_DropBBox(the_geom)\n"
+" WHERE Not (Box2D(ST_AsBinary(the_geom)) = Box2D(the_geom));\n"
+"\n"
+"        UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE Not PostGIS_HasBBOX(the_geom);"
+msgstr ""
+"-- Cet exemple supprime les bounding boxes là où la boîte cachée est "
+"incorrecte\n"
+"-- Le fait de forcer ST_AsBinary avant d'appliquer Box2D provoque un "
+"recalcul de la boîte, et \n"
+"-- Box2D appliquée à la géométrie de la table renvoie toujours la boîte mise "
+"en cache.\n"
+"UPDATE sometable\n"
+" SET the_geom =  PostGIS_DropBBox(the_geom)\n"
+" WHERE Not (Box2D(ST_AsBinary(the_geom)) = Box2D(the_geom));\n"
+"\n"
+" UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE Not PostGIS_HasBBOX(the_geom);"
+
+#. Tag: para
+#: reference_exception.xml:97
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_HasBBox\"/>, <xref linkend=\"Box2D\"/>"
+msgstr ", <xref linkend=\"PostGIS_HasBBox\"/>, <xref linkend=\"Box2D\"/>"
+
+#. Tag: refname
+#: reference_exception.xml:104
+#, no-c-format
+msgid "PostGIS_HasBBox"
+msgstr "PostGIS_HasBBox"
+
+#. Tag: refpurpose
+#: reference_exception.xml:106
+#, no-c-format
+msgid "Returns TRUE if the bbox of this geometry is cached, FALSE otherwise."
+msgstr "Renvoie TRUE si la bbox de cette géométrie est en cache, sinon FALSE "
+
+#. Tag: funcprototype
+#: reference_exception.xml:111
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>PostGIS_HasBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>PostGIS_HasBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_exception.xml:121
+#, no-c-format
+msgid ""
+"Returns TRUE if the bbox of this geometry is cached, FALSE otherwise. Use "
+"<xref linkend=\"PostGIS_AddBBox\"/> and <xref linkend=\"PostGIS_DropBBox\"/> "
+"to control caching."
+msgstr ""
+"Renvoie TRUE si la bbox de cette géométrie est en cache, FALSE sinon. "
+"Utiliser <xref linkend=\"PostGIS_AddBBox\"/> et <xref linkend="
+"\"PostGIS_DropBBox\"/> pour contrôler la mise en cache."
+
+#. Tag: programlisting
+#: reference_exception.xml:131
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM sometable WHERE PostGIS_HasBBox(the_geom) = false;"
+msgstr ""
+"SELECT the_geom\n"
+"FROM sometable WHERE PostGIS_HasBBox(the_geom) = false;"
+
+#. Tag: para
+#: reference_exception.xml:138
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_DropBBox\"/>"
+msgstr ", <xref linkend=\"PostGIS_DropBBox\"/>"
diff --git a/doc/po/fr/reference_guc.xml.po b/doc/po/fr/reference_guc.xml.po
new file mode 100644
index 0000000..6b3923e
--- /dev/null
+++ b/doc/po/fr/reference_guc.xml.po
@@ -0,0 +1,408 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-13 17:58+0000\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: para
+#: reference_guc.xml:5
+#, no-c-format
+msgid ""
+"This section lists custom PostGIS Grand Unified Custom Variables(GUC). These "
+"can be set globally, by database, by session or by transaction. Best set at "
+"global or database level."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:8
+#, no-c-format
+msgid "PostGIS Grand Unified Custom Variables (GUCs)"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:12
+#, no-c-format
+msgid "postgis.backend"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:13
+#, no-c-format
+msgid ""
+"The backend to service a function where GEOS and SFCGAL overlap. Options: "
+"geos or sfcgal. Defaults to geos."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:17 reference_guc.xml:45 reference_guc.xml:95
+#: reference_guc.xml:180
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:18
+#, no-c-format
+msgid ""
+"This GUC is only relevant if you compiled PostGIS with sfcgal support. By "
+"default <varname>geos</varname> backend is used for functions where both "
+"GEOS and SFCGAL have the same named function. This variable allows you to "
+"override and make sfcgal the backend to service the request."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:19
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:23 reference_guc.xml:69 reference_guc.xml:146
+#: reference_guc.xml:206
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:24
+#, no-c-format
+msgid "Sets backend just for life of connection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:25
+#, no-c-format
+msgid "set postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:27
+#, no-c-format
+msgid "Sets backend for new connections to database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:28
+#, no-c-format
+msgid "ALTER DATABASE mygisdb SET postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:31 reference_guc.xml:79 reference_guc.xml:159
+#: reference_guc.xml:213
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:38
+#, no-c-format
+msgid "postgis.gdal_datapath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:39
+#, no-c-format
+msgid ""
+"A configuration option to assign the value of GDAL's GDAL_DATA option. If "
+"not set, the environmentally set GDAL_DATA variable is used."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:46
+#, no-c-format
+msgid ""
+"A PostgreSQL GUC variable for setting the value of GDAL's GDAL_DATA option. "
+"The <varname>postgis.gdal_datapath</varname> value should be the complete "
+"physical path to GDAL's data files."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:49
+#, no-c-format
+msgid ""
+"This configuration option is of most use for Windows platforms where GDAL's "
+"data files path is not hard-coded. This option should also be set when "
+"GDAL's data files are not located in GDAL's expected path."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:54
+#, no-c-format
+msgid ""
+"This option can be set in PostgreSQL's configuration file postgresql.conf. "
+"It can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:58 reference_guc.xml:141 reference_guc.xml:201
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:61
+#, no-c-format
+msgid ""
+"Additional information about GDAL_DATA is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:70
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_datapath</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:72
+#, no-c-format
+msgid ""
+"SET postgis.gdal_datapath TO '/usr/local/share/gdal.hidden';\n"
+"SET postgis.gdal_datapath TO default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:74
+#, no-c-format
+msgid "Setting on windows for a particular database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:75
+#, no-c-format
+msgid ""
+"ALTER DATABASE gisdb\n"
+"SET postgis.gdal_datapath = 'C:/Program Files/PostgreSQL/9.3/gdal-data';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:80
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:88
+#, no-c-format
+msgid "postgis.gdal_enabled_drivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:89
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:96
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP. This option "
+"can be set in PostgreSQL's configuration file: postgresql.conf. It can also "
+"be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:100
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.gdal_enabled_drivers</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_GDAL_ENABLED_DRIVERS</varname> with the list of enabled "
+"drivers to the process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:104
+#, no-c-format
+msgid ""
+"Enabled GDAL specified drivers can be specified by the driver's short-name "
+"or code. Driver short-names or codes can be found at <ulink url=\"http://www."
+"gdal.org/formats_list.html\">GDAL Raster Formats</ulink>. Multiple drivers "
+"can be specified by putting a space between each driver."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:109
+#, no-c-format
+msgid ""
+"There are three special codes available for <varname>postgis."
+"gdal_enabled_drivers</varname>. The codes are case-sensitive."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:114
+#, no-c-format
+msgid ""
+"<varname>DISABLE_ALL</varname> disables all GDAL drivers. If present, "
+"<varname>DISABLE_ALL</varname> overrides all other values in "
+"<varname>postgis.gdal_enabled_drivers</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:117
+#, no-c-format
+msgid "<varname>ENABLE_ALL</varname> enables all GDAL drivers."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:120
+#, no-c-format
+msgid ""
+"<varname>VSICURL</varname> enables GDAL's <varname>/vsicurl/</varname> "
+"virtual file system."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:124
+#, no-c-format
+msgid ""
+"When <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL, "
+"attempts to use out-db rasters, ST_FromGDALRaster(), ST_AsGDALRaster(), "
+"ST_AsTIFF(), ST_AsJPEG() and ST_AsPNG() will result in error messages."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:130
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.gdal_enabled_drivers</"
+"varname> is set to DISABLE_ALL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:136
+#, no-c-format
+msgid ""
+"Additional information about GDAL_SKIP is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:147
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_enabled_drivers</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:149
+#, no-c-format
+msgid ""
+"SET postgis.gdal_enabled_drivers TO 'GTiff PNG JPEG';\n"
+"SET postgis.gdal_enabled_drivers = default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:151
+#, no-c-format
+msgid "Enable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:152
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:154
+#, no-c-format
+msgid "Disable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:155
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'DISABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:160
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>, "
+"<xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsJPEG\"/>, <xref "
+"linkend=\"postgis_enable_outdb_rasters\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:173
+#, no-c-format
+msgid "postgis.enable_outdb_rasters"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:174
+#, no-c-format
+msgid "A boolean configuration option to enable access to out-db raster bands."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:181
+#, no-c-format
+msgid ""
+"A boolean configuration option to enable access to out-db raster bands. This "
+"option can be set in PostgreSQL's configuration file: postgresql.conf. It "
+"can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:185
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.enable_outdb_rasters</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_ENABLE_OUTDB_RASTERS</varname> with a non-zero value to the "
+"process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:190
+#, no-c-format
+msgid ""
+"Even if <varname>postgis.enable_outdb_rasters</varname> is True, the GUC "
+"<varname>postgis.enable_outdb_rasters</varname> determines the accessible "
+"raster formats."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:196
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.enable_outdb_rasters</"
+"varname> is set to False."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:207
+#, no-c-format
+msgid "Set and reset <varname>postgis.enable_outdb_rasters</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:209
+#, no-c-format
+msgid ""
+"SET postgis.enable_outdb_rasters TO True;\n"
+"SET postgis.enable_outdb_rasters = default;\n"
+"SET postgis.enable_outdb_rasters = True;\n"
+"SET postgis.enable_outdb_rasters = False;"
+msgstr ""
diff --git a/doc/po/fr/reference_lrs.xml.po b/doc/po/fr/reference_lrs.xml.po
new file mode 100644
index 0000000..5a97af0
--- /dev/null
+++ b/doc/po/fr/reference_lrs.xml.po
@@ -0,0 +1,910 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# vpicavet <vincent.ml at oslandia.com>, 2013-2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-06-10 13:15+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_lrs.xml:3
+#, no-c-format
+msgid "Linear Referencing"
+msgstr "Référencement linéaire"
+
+#. Tag: refname
+#: reference_lrs.xml:7
+#, fuzzy, no-c-format
+msgid "ST_LineInterpolatePoint"
+msgstr "ST_Line_Interpolate_Point"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:9
+#, no-c-format
+msgid ""
+"Returns a point interpolated along a line. Second argument is a float8 "
+"between 0 and 1 representing fraction of total length of linestring the "
+"point has to be located."
+msgstr ""
+"Retourne un point interpolé sur une ligne. Le second argument est un float8 "
+"entre 0 et 1 représentant la fraction de la longueur total de la ligne où le "
+"point doit être situé."
+
+#. Tag: funcprototype
+#: reference_lrs.xml:15
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineInterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Line_Interpolate_Point</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></"
+"paramdef>"
+
+#. Tag: title
+#: reference_lrs.xml:24 reference_lrs.xml:86 reference_lrs.xml:138
+#: reference_lrs.xml:205 reference_lrs.xml:263 reference_lrs.xml:314
+#: reference_lrs.xml:359 reference_lrs.xml:403
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_lrs.xml:26
+#, no-c-format
+msgid ""
+"Returns a point interpolated along a line. First argument must be a "
+"LINESTRING. Second argument is a float8 between 0 and 1 representing "
+"fraction of total linestring length the point has to be located."
+msgstr ""
+"Retourne un point interpolé sur une ligne. Le premier argument doit être une "
+"LINESTRING. Le second argument est un float8 entre 0 et 1 représentant la "
+"fraction de la longueur totale de la ligne où le point doit être situé."
+
+#. Tag: para
+#: reference_lrs.xml:30 reference_lrs.xml:149
+#, fuzzy, no-c-format
+msgid ""
+"See <xref linkend=\"ST_LineLocatePoint\"/> for computing the line location "
+"nearest to a Point."
+msgstr ""
+"Voir <xref linkend=\"ST_Line_Locate_Point\"/> pour calculer l'emplacement de "
+"la ligne le plus proche d'un Point."
+
+#. Tag: para
+#: reference_lrs.xml:34
+#, no-c-format
+msgid ""
+"Since release 1.1.1 this function also interpolates M and Z values (when "
+"present), while prior releases set them to 0.0."
+msgstr ""
+"Depuis la version 1.1.1 cette fonction interpole aussi les valeurs M et Z "
+"(lorsqu'elles sont présentes), les versions précédentes renvoient des "
+"valeurs M et Z à 0.0."
+
+#. Tag: para
+#: reference_lrs.xml:38
+#, no-c-format
+msgid "Availability: 0.8.2, Z and M supported added in 1.1.1"
+msgstr "Disponibilité : 0.8.2, support de Z et M ajouté en 1.1.1."
+
+#. Tag: para
+#: reference_lrs.xml:39
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Interpolate_Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:40 reference_lrs.xml:160 reference_lrs.xml:322
+#: reference_lrs.xml:365 reference_lrs.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: title
+#: reference_lrs.xml:45 reference_lrs.xml:103 reference_lrs.xml:164
+#: reference_lrs.xml:228 reference_lrs.xml:279 reference_lrs.xml:326
+#: reference_lrs.xml:369 reference_lrs.xml:413
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples"
+
+#. Tag: para
+#: reference_lrs.xml:51
+#, no-c-format
+msgid "A linestring with the interpolated point at 20% position (0.20)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:54
+#, no-c-format
+msgid ""
+"--Return point 20% along 2d line\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.20))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(25 50, 100 125, 150 190)') "
+"as the_line) As foo;\n"
+"   st_asewkt\n"
+"----------------\n"
+" POINT(51.5974135047432 76.5974135047432)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:55
+#, no-c-format
+msgid ""
+"--Return point mid-way of 3d line\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.5))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6, 6 7 8)') as "
+"the_line) As foo;\n"
+"\n"
+"        st_asewkt\n"
+"--------------------\n"
+" POINT(3.5 4.5 5.5)\n"
+"\n"
+"\n"
+"--find closest point on a line to a point or other geometry\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+"FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
+"foo;\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(3 4)"
+msgstr ""
+
+#. Tag: title
+#: reference_lrs.xml:60 reference_lrs.xml:110 reference_lrs.xml:178
+#: reference_lrs.xml:234 reference_lrs.xml:286 reference_lrs.xml:333
+#: reference_lrs.xml:375
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: para
+#: reference_lrs.xml:62
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref "
+"linkend=\"ST_LineLocatePoint\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref "
+"linkend=\"ST_Line_Locate_Point\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:68
+#, fuzzy, no-c-format
+msgid "ST_LineLocatePoint"
+msgstr "ST_Line_Locate_Point"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:70
+#, no-c-format
+msgid ""
+"Returns a float between 0 and 1 representing the location of the closest "
+"point on LineString to the given Point, as a fraction of total 2d line "
+"length."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:77
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>float <function>ST_LineLocatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_Line_Locate_Point</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:88
+#, no-c-format
+msgid ""
+"Returns a float between 0 and 1 representing the location of the closest "
+"point on LineString to the given Point, as a fraction of total <link linkend="
+"\"ST_Length2D\">2d line</link> length."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"You can use the returned location to extract a Point (<xref linkend="
+"\"ST_LineInterpolatePoint\"/>) or a substring (<xref linkend="
+"\"ST_LineSubstring\"/>)."
+msgstr ""
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_Line_Interpolate_Point"
+"\"/>, <xref linkend=\"ST_Line_Substring\"/>"
+
+#. Tag: para
+#: reference_lrs.xml:95
+#, no-c-format
+msgid "This is useful for approximating numbers of addresses"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:97
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr "Disponibilité: 1.1.0"
+
+#. Tag: para
+#: reference_lrs.xml:98
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Locate_Point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:105
+#, no-c-format
+msgid ""
+"--Rough approximation of finding the street number of a point along the "
+"street\n"
+"--Note the whole foo thing is just to generate dummy data that looks\n"
+"--like house centroids and street\n"
+"--We use ST_DWithin to exclude\n"
+"--houses too far away from the street to be considered on the street\n"
+"SELECT ST_AsText(house_loc) As as_text_house_loc,\n"
+"        startstreet_num +\n"
+"                CAST( (endstreet_num - startstreet_num)\n"
+"                        * ST_LineLocatePoint(street_line, house_loc) As "
+"integer) As street_num\n"
+"FROM\n"
+"(SELECT ST_GeomFromText('LINESTRING(1 2, 3 4)') As street_line,\n"
+"        ST_MakePoint(x*1.01,y*1.03) As house_loc, 10 As startstreet_num,\n"
+"                20 As endstreet_num\n"
+"FROM generate_series(1,3) x CROSS JOIN generate_series(2,4) As y)\n"
+"As foo\n"
+"WHERE ST_DWithin(street_line, house_loc, 0.2);\n"
+"\n"
+" as_text_house_loc | street_num\n"
+"-------------------+------------\n"
+" POINT(1.01 2.06)  |         10\n"
+" POINT(2.02 3.09)  |         15\n"
+" POINT(3.03 4.12)  |         20\n"
+"\n"
+" --find closest point on a line to a point or other geometry\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+"FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
+"foo;\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(3 4)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:112
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_LineInterpolatePoint\"/"
+">, <xref linkend=\"ST_LineSubstring\"/>"
+msgstr ""
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_Line_Interpolate_Point"
+"\"/>, <xref linkend=\"ST_Line_Substring\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:118
+#, fuzzy, no-c-format
+msgid "ST_LineSubstring"
+msgstr "ST_Line_Substring"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:120
+#, no-c-format
+msgid ""
+"Return a linestring being a substring of the input one starting and ending "
+"at the given fractions of total 2d length. Second and third arguments are "
+"float8 values between 0 and 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:128
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineSubstring</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>startfraction</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Line_Substring</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>startfraction</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:140
+#, no-c-format
+msgid ""
+"Return a linestring being a substring of the input one starting and ending "
+"at the given fractions of total 2d length. Second and third arguments are "
+"float8 values between 0 and 1. This only works with LINESTRINGs. To use with "
+"contiguous MULTILINESTRINGs use in conjunction with <xref linkend="
+"\"ST_LineMerge\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:146
+#, no-c-format
+msgid ""
+"If 'start' and 'end' have the same value this is equivalent to <xref linkend="
+"\"ST_LineInterpolatePoint\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:153
+#, no-c-format
+msgid ""
+"Since release 1.1.1 this function also interpolates M and Z values (when "
+"present), while prior releases set them to unspecified values."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:158
+#, no-c-format
+msgid "Availability: 1.1.0, Z and M supported added in 1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:159
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Substring."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:170
+#, no-c-format
+msgid "A linestring seen with 1/3 midrange overlaid (0.333, 0.666)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:173
+#, no-c-format
+msgid ""
+"--Return the approximate 1/3 mid-range part of a linestring\n"
+"SELECT ST_AsText(ST_Line_SubString(ST_GeomFromText('LINESTRING(25 50, 100 "
+"125, 150 190)'), 0.333, 0.666));\n"
+"\n"
+"                                                                                   st_astext\n"
+"------------------------------------------------------------------------------------------------\n"
+"LINESTRING(69.2846934853974 94.2846934853974,100 125,111.700356260683 "
+"140.210463138888)\n"
+"\n"
+"--The below example simulates a while loop in\n"
+"--SQL using PostgreSQL generate_series() to cut all\n"
+"--linestrings in a table to 100 unit segments\n"
+"-- of which no segment is longer than 100 units\n"
+"-- units are measured in the SRID units of measurement\n"
+"-- It also assumes all geometries are LINESTRING or contiguous "
+"MULTILINESTRING\n"
+"--and no geometry is longer than 100 units*10000\n"
+"--for better performance you can reduce the 10000\n"
+"--to match max number of segments you expect\n"
+"\n"
+"SELECT field1, field2, ST_LineSubstring(the_geom, 100.00*n/length,\n"
+"  CASE\n"
+"        WHEN 100.00*(n+1) < length THEN 100.00*(n+1)/length\n"
+"        ELSE 1\n"
+"  END) As the_geom\n"
+"FROM\n"
+"  (SELECT sometable.field1, sometable.field2,\n"
+"  ST_LineMerge(sometable.the_geom) AS the_geom,\n"
+"  ST_Length(sometable.the_geom) As length\n"
+"  FROM sometable\n"
+"  ) AS t\n"
+"CROSS JOIN generate_series(0,10000) AS n\n"
+"WHERE n*100.00/length < 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:180
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_LineInterpolatePoint\"/>, <xref linkend=\"ST_LineMerge"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_Line_Interpolate_Point\"/>, <xref linkend=\"ST_LineMerge"
+"\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:186
+#, no-c-format
+msgid "ST_LocateAlong"
+msgstr "ST_LocateAlong"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:188
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry collection value with elements that "
+"match the specified measure. Polygonal elements are not supported.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:195
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateAlong</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>ageom_with_measure</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_measure</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LocateAlong</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>ageom_with_measure</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_measure</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:207
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry collection value with elements that match "
+"the specified measure. Polygonal elements are not supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:211
+#, no-c-format
+msgid ""
+"If an offset is provided, the resultant will be offset to the left or right "
+"of the input line by the specified number of units. A positive offset will "
+"be to the left, and a negative one to the right."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:216 reference_lrs.xml:269
+#, no-c-format
+msgid ""
+"Semantic is specified by: ISO/IEC CD 13249-3:200x(E) - Text for Continuation "
+"CD Editing Meeting"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:219
+#, no-c-format
+msgid "Availability: 1.1.0 by old name ST_Locate_Along_Measure."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:220
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 in prior versions this used to be called "
+"ST_Locate_Along_Measure. The old name has been deprecated and will be "
+"removed in the future but is still available."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:221
+#, no-c-format
+msgid "Use this function only for geometries with an M component"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:223 reference_lrs.xml:275
+#, no-c-format
+msgid "&M_support;"
+msgstr "&M_support;"
+
+#. Tag: programlisting
+#: reference_lrs.xml:229
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"                (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"                                                 st_asewkt\n"
+"-----------------------------------------------------------\n"
+" MULTIPOINT M (1 2 3)\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsText((ST_Dump(the_geom)).geom)\n"
+"        FROM\n"
+"        (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"        (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"   st_asewkt\n"
+"---------------\n"
+" POINTM(1 2 3)\n"
+" POINTM(9 4 3)\n"
+" POINTM(1 2 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:236
+#, no-c-format
+msgid ", <xref linkend=\"ST_LocateBetween\"/>"
+msgstr ", <xref linkend=\"ST_LocateBetween\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:242
+#, no-c-format
+msgid "ST_LocateBetween"
+msgstr "ST_LocateBetween"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:244
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry collection value with elements that "
+"match the specified range of measures inclusively. Polygonal elements are "
+"not supported.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:251
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateBetween</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>measure_start</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_end</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LocateBetween</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>measure_start</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_end</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:265
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry collection value with elements that match "
+"the specified range of measures inclusively. Polygonal elements are not "
+"supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:272
+#, no-c-format
+msgid "Availability: 1.1.0 by old name ST_Locate_Between_Measures."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:273
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions this used to be called "
+"ST_Locate_Between_Measures. The old name has been deprecated and will be "
+"removed in the future but is still available for backward compatibility."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:281
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetween(\n"
+"                        ST_GeomFromText('MULTILINESTRING M ((1 2 3, 3 4 2, 9 "
+"4 3),\n"
+"                (1 2 3, 5 4 5))'),1.5, 3) As the_geom) As foo;\n"
+"\n"
+"                                                         st_asewkt\n"
+"------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION M (LINESTRING M (1 2 3,3 4 2,9 4 3),POINT M (1 2 3))\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsText((ST_Dump(the_geom)).geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetween(\n"
+"                        ST_GeomFromText('MULTILINESTRING M ((1 2 3, 3 4 2, 9 "
+"4 3),\n"
+"                (1 2 3, 5 4 5))'),1.5, 3) As the_geom) As foo;\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+" LINESTRING M (1 2 3,3 4 2,9 4 3)\n"
+" POINT M (1 2 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:288
+#, no-c-format
+msgid ", <xref linkend=\"ST_LocateAlong\"/>"
+msgstr ", <xref linkend=\"ST_LocateAlong\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:294
+#, no-c-format
+msgid "ST_LocateBetweenElevations"
+msgstr "ST_LocateBetweenElevations"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:296
+#, no-c-format
+msgid ""
+"Return a derived geometry (collection) value with elements that intersect "
+"the specified range of elevations inclusively. Only 3D, 4D LINESTRINGS and "
+"MULTILINESTRINGS are supported."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:303
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>elevation_start</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>elevation_end</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>elevation_start</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>elevation_end</parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:316
+#, no-c-format
+msgid ""
+"Return a derived geometry (collection) value with elements that intersect "
+"the specified range of elevations inclusively. Only 3D, 3DM LINESTRINGS and "
+"MULTILINESTRINGS are supported."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:320
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr "Disponibilité: 1.4.0"
+
+#. Tag: programlisting
+#: reference_lrs.xml:328
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6)'),2,4)) As "
+"ewelev;\n"
+"                                                                   ewelev\n"
+"----------------------------------------------------------------\n"
+"        MULTILINESTRING((1 2 3,2 3 4))\n"
+"\n"
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9)) As ewelev;\n"
+"\n"
+"                                ewelev\n"
+"----------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(POINT(1 2 6),LINESTRING(6.1 7.1 6,7 8 9))\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsEWKT((ST_Dump(the_geom)).geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9) As the_geom) As foo;\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"POINT(1 2 6)\n"
+"LINESTRING(6.1 7.1 6,7 8 9)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6)'),2,4)) As "
+"ewelev;\n"
+"                                                                   ewelev\n"
+"----------------------------------------------------------------\n"
+"        MULTILINESTRING((1 2 3,2 3 4))\n"
+"\n"
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9)) As ewelev;\n"
+"\n"
+"                                ewelev\n"
+"----------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(POINT(1 2 6),LINESTRING(6.1 7.1 6,7 8 9))\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsEWKT((ST_Dump(the_geom)).geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9) As the_geom) As foo;\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"POINT(1 2 6)\n"
+"LINESTRING(6.1 7.1 6,7 8 9)"
+
+#. Tag: refname
+#: reference_lrs.xml:342
+#, no-c-format
+msgid "ST_InterpolatePoint"
+msgstr "ST_InterpolatePoint"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:344
+#, no-c-format
+msgid ""
+"<refpurpose>Return the value of the measure dimension of a geometry at the "
+"point closed to the provided point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:349
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_InterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_InterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:361
+#, no-c-format
+msgid ""
+"<para>Return the value of the measure dimension of a geometry at the point "
+"closed to the provided point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:363
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr "Disponibilité: 2.0.0"
+
+#. Tag: programlisting
+#: reference_lrs.xml:371
+#, no-c-format
+msgid ""
+"SELECT ST_InterpolatePoint('LINESTRING M (0 0 0, 10 0 20)', 'POINT(5 5)');\n"
+" st_interpolatepoint \n"
+" ---------------------\n"
+"                                    10"
+msgstr ""
+"SELECT ST_InterpolatePoint('LINESTRING M (0 0 0, 10 0 20)', 'POINT(5 5)');\n"
+" st_interpolatepoint \n"
+" ---------------------\n"
+"                                    10"
+
+#. Tag: para
+#: reference_lrs.xml:377
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_LocateAlong\"/>, <xref linkend=\"ST_LocateBetween\"/>"
+msgstr ""
+", <xref linkend=\"ST_LocateAlong\"/>, <xref linkend=\"ST_LocateBetween\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:385
+#, no-c-format
+msgid "ST_AddMeasure"
+msgstr "ST_AddMeasure"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:387
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry with measure elements linearly "
+"interpolated between the start and end points. If the geometry has no "
+"measure dimension, one is added. If the geometry has a measure dimension, it "
+"is over-written with new values. Only LINESTRINGS and MULTILINESTRINGS are "
+"supported.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:392
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddMeasure</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_start</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>measure_end</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_AddMeasure</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_start</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>measure_end</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:405
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry with measure elements linearly interpolated "
+"between the start and end points. If the geometry has no measure dimension, "
+"one is added. If the geometry has a measure dimension, it is over-written "
+"with new values. Only LINESTRINGS and MULTILINESTRINGS are supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:407
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr "Disponibilité: 1.5.0"
+
+#. Tag: programlisting
+#: reference_lrs.xml:415
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0, 2 0, 4 0)'),1,4)) As ewelev;\n"
+"           ewelev             \n"
+"--------------------------------\n"
+" LINESTRINGM(1 0 1,2 0 2,4 0 4)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRING(1 0 4 10,2 0 4 20,4 0 4 40)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRINGM(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRINGM(1 0 10,2 0 20,4 0 40)\n"
+" \n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('MULTILINESTRINGM((1 0 4, 2 0 4, 4 0 4),(1 0 4, 2 0 4, 4 0 "
+"4))'),10,70)) As ewelev;\n"
+"                             ewelev                              \n"
+"-----------------------------------------------------------------\n"
+" MULTILINESTRINGM((1 0 10,2 0 20,4 0 40),(1 0 40,2 0 50,4 0 70))"
+msgstr ""
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0, 2 0, 4 0)'),1,4)) As ewelev;\n"
+"           ewelev             \n"
+"--------------------------------\n"
+" LINESTRINGM(1 0 1,2 0 2,4 0 4)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRING(1 0 4 10,2 0 4 20,4 0 4 40)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRINGM(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRINGM(1 0 10,2 0 20,4 0 40)\n"
+" \n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('MULTILINESTRINGM((1 0 4, 2 0 4, 4 0 4),(1 0 4, 2 0 4, 4 0 "
+"4))'),10,70)) As ewelev;\n"
+"                             ewelev                              \n"
+"-----------------------------------------------------------------\n"
+" MULTILINESTRINGM((1 0 10,2 0 20,4 0 40),(1 0 40,2 0 50,4 0 70))"
diff --git a/doc/po/fr/reference_management.xml.po b/doc/po/fr/reference_management.xml.po
new file mode 100644
index 0000000..6de1ec1
--- /dev/null
+++ b/doc/po/fr/reference_management.xml.po
@@ -0,0 +1,1644 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Nicolas Ribot <nicolas.ribot at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 17:39+0000\n"
+"Last-Translator: Nicolas Ribot <nicolas.ribot at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_management.xml:3
+#, no-c-format
+msgid "Management Functions"
+msgstr "Fonctions de gestion"
+
+#. Tag: refname
+#: reference_management.xml:7
+#, no-c-format
+msgid "AddGeometryColumn"
+msgstr "AddGeometryColumn"
+
+#. Tag: refpurpose
+#: reference_management.xml:9
+#, no-c-format
+msgid ""
+"Adds a geometry column to an existing table of attributes. By default uses "
+"type modifier to define rather than constraints. Pass in false for "
+"use_typmod to get old check constraint based behavior"
+msgstr ""
+"Ajoute une colonne géométrique à une table attributaire existante. Utilise "
+"par défaut le modificateur de type lors de la définition de la géométrie, "
+"plutôt que des contraintes. Passer le paramètre use_typmod à false pour "
+"activer l'ancien mécanisme basé sur les contraintes."
+
+#. Tag: funcsynopsis
+#: reference_management.xml:15
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>type</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>dimension</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>use_typmod=true</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>type</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>dimension</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>use_typmod=true</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: title
+#: reference_management.xml:92 reference_management.xml:188
+#: reference_management.xml:254 reference_management.xml:298
+#: reference_management.xml:344 reference_management.xml:386
+#: reference_management.xml:427 reference_management.xml:458
+#: reference_management.xml:499 reference_management.xml:540
+#: reference_management.xml:583 reference_management.xml:631
+#: reference_management.xml:677 reference_management.xml:726
+#: reference_management.xml:863
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_management.xml:94
+#, no-c-format
+msgid ""
+"Adds a geometry column to an existing table of attributes. The "
+"<varname>schema_name</varname> is the name of the table schema. The "
+"<varname>srid</varname> must be an integer value reference to an entry in "
+"the SPATIAL_REF_SYS table. The <varname>type</varname> must be a string "
+"corresponding to the geometry type, eg, 'POLYGON' or 'MULTILINESTRING' . An "
+"error is thrown if the schemaname doesn't exist (or not visible in the "
+"current search_path) or the specified SRID, geometry type, or dimension is "
+"invalid."
+msgstr ""
+"Ajoute une colonne géométrique à une table attributaire existante. "
+"<varname>schema_name</varname> est le nom du schéma de la table.\n"
+"<varname>srid</varname> est un entier positif présent dans la table "
+"SPATIAL_REF_SYS.  <varname>type</varname> est le type de géométrie en texte, "
+"par exemple 'POLYGON' ou 'MULTILINESTRING'. Une erreur est renvoyée si le "
+"schéma n'existe pas (ou n'est pas visible dans le search_path courant) ou si "
+"le SRID, type de géométrie ou dimension est invalide."
+
+#. Tag: para
+#: reference_management.xml:104
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function no longer updates geometry_columns since "
+"geometry_columns is a view that reads from system catalogs. It by default "
+"also does not create constraints, but instead uses the built in type "
+"modifier behavior of PostgreSQL. So for example building a wgs84 POINT "
+"column with this function is now equivalent to: <code>ALTER TABLE some_table "
+"ADD COLUMN geom geometry(Point,4326);</code>"
+msgstr ""
+"Changement: 2.0.0 Cette fonction ne met plus à jour geometry_columns "
+"maintenant que geometry_columns est une vue basée sur le catalogue système. "
+"Par défaut, elle ne créée plus de contraintes mais utilise le modificateur "
+"de type de PostgreSQL. Ainsi, par exemple, créer une colonne de type POINT "
+"WGS84 est désormais équivalent à: <code>ALTER TABLE some_table ADD COLUMN "
+"geom geometry(Point,4326);</code>"
+
+#. Tag: para
+#: reference_management.xml:107
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 If you require the old behavior of constraints use the "
+"default <varname>use_typmod</varname>, but set it to false."
+msgstr ""
+"Changement: 2.0.0 Si l'ancien mécanisme basé sur les contraintes est "
+"nécessaire, utiliser le paramètre <varname>use_typmod</varname> avec la "
+"valeur false."
+
+#. Tag: para
+#: reference_management.xml:111
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Views can no longer be manually registered in "
+"geometry_columns, however views built against geometry typmod tables "
+"geometries and used without wrapper functions will register themselves "
+"correctly because they inherit the typmod behavior of their parent table "
+"column. Views that use geometry functions that output other geometries will "
+"need to be cast to typmod geometries for these view geometry columns to be "
+"registered correctly in geometry_columns. Refer to <xref linkend="
+"\"Manual_Register_Spatial_Column\"/>."
+msgstr ""
+"Changement: 2.0.0 Les vues ne peuvent plus être enregistrées dans "
+"geometry_columns. Cependant, les vues construites à partir de tables "
+"contenant des géométries définies avec le modificateur de type et "
+"n'utilisant pas de fonctions d'encapsulation seront enregistrées dans la vue "
+"geometry_columns car elles héritent du mécanisme des tables dont elles sont "
+"issues. Les vues utilisant des fonctions renvoyant d'autres géométries "
+"doivent être transtypées vers des géométries avec modificateur de type pour "
+"pouvoir être correctement référencées dans la vue geometry_columns. Cf. "
+"<xref linkend=\"Manual_Register_Spatial_Column\"/>."
+
+#. Tag: para
+#: reference_management.xml:117 reference_management.xml:194
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr "&sfs_compliant;"
+
+#. Tag: para
+#: reference_management.xml:118 reference_management.xml:195
+#: reference_management.xml:869
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_management.xml:119 reference_management.xml:196
+#: reference_management.xml:870
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: para
+#: reference_management.xml:120
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 use_typmod argument introduced. Defaults to creating typmod "
+"geometry column instead of constraint-based."
+msgstr ""
+"Amélioration: 2.0.0 introduction du paramètre use_typmod. Le comportement "
+"par défaut est de créer une colonne géométrique avec modificateur de type au "
+"lieu de contraintes sur la colonne."
+
+#. Tag: title
+#: reference_management.xml:124 reference_management.xml:203
+#: reference_management.xml:267 reference_management.xml:306
+#: reference_management.xml:351 reference_management.xml:393
+#: reference_management.xml:433 reference_management.xml:464
+#: reference_management.xml:506 reference_management.xml:548
+#: reference_management.xml:600 reference_management.xml:646
+#: reference_management.xml:683 reference_management.xml:784
+#: reference_management.xml:873
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples"
+
+#. Tag: programlisting
+#: reference_management.xml:126
+#, no-c-format
+msgid ""
+"-- Create schema to hold data\n"
+"CREATE SCHEMA my_schema;\n"
+"-- Create a new simple PostgreSQL table\n"
+"CREATE TABLE my_schema.my_spatial_table (id serial);\n"
+"\n"
+"-- Describing the table shows a simple table with a single \"id\" column.\n"
+"postgis=# \\d my_schema.my_spatial_table\n"
+"                                                         Table \"my_schema."
+"my_spatial_table\"\n"
+" Column |  Type   |                                Modifiers\n"
+"--------+---------"
+"+-------------------------------------------------------------------------\n"
+" id     | integer | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+"\n"
+"-- Add a spatial column to the table\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom',4326,'POINT',2);\n"
+"\n"
+"-- Add a point using the old constraint based behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);\n"
+"\n"
+"--Add a curvepolygon using old constraint behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geomcp_c',4326,'CURVEPOLYGON',2, false);\n"
+"\n"
+"-- Describe the table again reveals the addition of a new geometry columns.\n"
+"\\d my_schema.my_spatial_table\n"
+"                            addgeometrycolumn                            \n"
+"-------------------------------------------------------------------------\n"
+" my_schema.my_spatial_table.geomcp_c SRID:4326 TYPE:CURVEPOLYGON DIMS:2 \n"
+"(1 row)\n"
+"\n"
+"                                    Table \"my_schema.my_spatial_table\"\n"
+"  Column  |         Type         |                                "
+"Modifiers                                \n"
+"----------+----------------------"
+"+-------------------------------------------------------------------------\n"
+" id       | integer              | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+" geom     | geometry(Point,4326) | \n"
+" geom_c   | geometry             | \n"
+" geomcp_c | geometry             | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_c\" CHECK (st_ndims(geom_c) = 2)\n"
+"    \"enforce_dims_geomcp_c\" CHECK (st_ndims(geomcp_c) = 2)\n"
+"    \"enforce_geotype_geom_c\" CHECK (geometrytype(geom_c) = 'POINT'::text "
+"OR geom_c IS NULL)\n"
+"    \"enforce_geotype_geomcp_c\" CHECK (geometrytype(geomcp_c) = "
+"'CURVEPOLYGON'::text OR geomcp_c IS NULL)\n"
+"    \"enforce_srid_geom_c\" CHECK (st_srid(geom_c) = 4326)\n"
+"    \"enforce_srid_geomcp_c\" CHECK (st_srid(geomcp_c) = 4326)\n"
+"    \n"
+"-- geometry_columns view also registers the new columns --\n"
+"SELECT f_geometry_column As col_name, type, srid, coord_dimension As ndims \n"
+"    FROM geometry_columns\n"
+"    WHERE f_table_name = 'my_spatial_table' AND f_table_schema = "
+"'my_schema';\n"
+"\n"
+" col_name |     type     | srid | ndims \n"
+"----------+--------------+------+-------\n"
+" geom     | Point        | 4326 |     2\n"
+" geom_c   | Point        | 4326 |     2\n"
+" geomcp_c | CurvePolygon | 4326 |     2"
+msgstr ""
+"-- Create schema to hold data\n"
+"CREATE SCHEMA my_schema;\n"
+"-- Create a new simple PostgreSQL table\n"
+"CREATE TABLE my_schema.my_spatial_table (id serial);\n"
+"\n"
+"-- Describing the table shows a simple table with a single \"id\" column.\n"
+"postgis=# \\d my_schema.my_spatial_table\n"
+"                                                         Table \"my_schema."
+"my_spatial_table\"\n"
+" Column |  Type   |                                Modifiers\n"
+"--------+---------"
+"+-------------------------------------------------------------------------\n"
+" id     | integer | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+"\n"
+"-- Add a spatial column to the table\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom',4326,'POINT',2);\n"
+"\n"
+"-- Add a point using the old constraint based behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);\n"
+"\n"
+"--Add a curvepolygon using old constraint behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geomcp_c',4326,'CURVEPOLYGON',2, false);\n"
+"\n"
+"-- Describe the table again reveals the addition of a new geometry columns.\n"
+"\\d my_schema.my_spatial_table\n"
+"                            addgeometrycolumn                            \n"
+"-------------------------------------------------------------------------\n"
+" my_schema.my_spatial_table.geomcp_c SRID:4326 TYPE:CURVEPOLYGON DIMS:2 \n"
+"(1 row)\n"
+"\n"
+"                                    Table \"my_schema.my_spatial_table\"\n"
+"  Column  |         Type         |                                "
+"Modifiers                                \n"
+"----------+----------------------"
+"+-------------------------------------------------------------------------\n"
+" id       | integer              | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+" geom     | geometry(Point,4326) | \n"
+" geom_c   | geometry             | \n"
+" geomcp_c | geometry             | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_c\" CHECK (st_ndims(geom_c) = 2)\n"
+"    \"enforce_dims_geomcp_c\" CHECK (st_ndims(geomcp_c) = 2)\n"
+"    \"enforce_geotype_geom_c\" CHECK (geometrytype(geom_c) = 'POINT'::text "
+"OR geom_c IS NULL)\n"
+"    \"enforce_geotype_geomcp_c\" CHECK (geometrytype(geomcp_c) = "
+"'CURVEPOLYGON'::text OR geomcp_c IS NULL)\n"
+"    \"enforce_srid_geom_c\" CHECK (st_srid(geom_c) = 4326)\n"
+"    \"enforce_srid_geomcp_c\" CHECK (st_srid(geomcp_c) = 4326)\n"
+"    \n"
+"-- geometry_columns view also registers the new columns --\n"
+"SELECT f_geometry_column As col_name, type, srid, coord_dimension As ndims \n"
+"    FROM geometry_columns\n"
+"    WHERE f_table_name = 'my_spatial_table' AND f_table_schema = "
+"'my_schema';\n"
+"\n"
+" col_name |     type     | srid | ndims \n"
+"----------+--------------+------+-------\n"
+" geom     | Point        | 4326 |     2\n"
+" geom_c   | Point        | 4326 |     2\n"
+" geomcp_c | CurvePolygon | 4326 |     2"
+
+#. Tag: title
+#: reference_management.xml:130 reference_management.xml:208
+#: reference_management.xml:272 reference_management.xml:312
+#: reference_management.xml:357 reference_management.xml:399
+#: reference_management.xml:470 reference_management.xml:512
+#: reference_management.xml:554 reference_management.xml:606
+#: reference_management.xml:652 reference_management.xml:689
+#: reference_management.xml:886
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: para
+#: reference_management.xml:132
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/"
+">, <xref linkend=\"Manual_Register_Spatial_Column\"/>"
+msgstr ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/"
+">, <xref linkend=\"Manual_Register_Spatial_Column\"/>"
+
+#. Tag: refname
+#: reference_management.xml:138
+#, no-c-format
+msgid "DropGeometryColumn"
+msgstr "DropGeometryColumn"
+
+#. Tag: refpurpose
+#: reference_management.xml:140
+#, no-c-format
+msgid "Removes a geometry column from a spatial table."
+msgstr "Supprime une colonne géométrique d'une table spatiale."
+
+#. Tag: funcsynopsis
+#: reference_management.xml:145
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>DropGeometryColumn</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>DropGeometryColumn</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:190
+#, no-c-format
+msgid ""
+"Removes a geometry column from a spatial table. Note that schema_name will "
+"need to match the f_table_schema field of the table's row in the "
+"geometry_columns table."
+msgstr ""
+"Supprime une colonne géométrique d'une table spatiale. Note: schema_name "
+"doit correspondre au champ f_table_schema de la table geometry_columns."
+
+#. Tag: para
+#: reference_management.xml:198
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function is provided for backward compatibility. Now "
+"that since geometry_columns is now a view against the system catalogs, you "
+"can drop a geometry column like any other table column using <code>ALTER "
+"TABLE</code>"
+msgstr ""
+"Changement: 2.0.0 Function assurant la rétro compatibilité. Maintenant que "
+"geometry_columns est une vue basée sur les catalogues du système, la colonne "
+"géométrique peut etre supprimée d'une table comme tout autre colonne en "
+"utilisant <code>ALTER TABLE</code>"
+
+#. Tag: programlisting
+#: reference_management.xml:205
+#, no-c-format
+msgid ""
+"SELECT DropGeometryColumn ('my_schema','my_spatial_table','geom');\n"
+"                        ----RESULT output ---\n"
+"                                          dropgeometrycolumn\n"
+"------------------------------------------------------\n"
+" my_schema.my_spatial_table.geom effectively removed.\n"
+" \n"
+"-- In PostGIS 2.0+ the above is also equivalent to the standard\n"
+"-- the standard alter table.  Both will deregister from geometry_columns\n"
+"ALTER TABLE my_schema.my_spatial_table DROP column geom;"
+msgstr ""
+"SELECT DropGeometryColumn ('my_schema','my_spatial_table','geom');\n"
+"                        ----RESULT output ---\n"
+"                                          dropgeometrycolumn\n"
+"------------------------------------------------------\n"
+" my_schema.my_spatial_table.geom effectively removed.\n"
+" \n"
+"-- In PostGIS 2.0+ the above is also equivalent to the standard\n"
+"-- the standard alter table.  Both will deregister from geometry_columns\n"
+"ALTER TABLE my_schema.my_spatial_table DROP column geom;"
+
+#. Tag: para
+#: reference_management.xml:210
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/>"
+msgstr ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/>"
+
+#. Tag: refname
+#: reference_management.xml:216
+#, no-c-format
+msgid "DropGeometryTable"
+msgstr "DropGeometryTable"
+
+#. Tag: refpurpose
+#: reference_management.xml:218
+#, no-c-format
+msgid "Drops a table and all its references in geometry_columns."
+msgstr "Supprime une table et toutes ces références dans geometry_columns."
+
+#. Tag: funcsynopsis
+#: reference_management.xml:223
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropGeometryTable</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropGeometryTable</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:256
+#, no-c-format
+msgid ""
+"Drops a table and all its references in geometry_columns. Note: uses "
+"current_schema() on schema-aware pgsql installations if schema is not "
+"provided."
+msgstr ""
+"Supprime une table et toutes ces références dans geometry_columns. Note: "
+"utilise la fonction current_schema() sur les installations PostgreSQL le "
+"supportant, si le schéma n'est pas fourni."
+
+#. Tag: para
+#: reference_management.xml:261
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function is provided for backward compatibility. Now "
+"that since geometry_columns is now a view against the system catalogs, you "
+"can drop a table with geometry columns like any other table using <code>DROP "
+"TABLE</code>"
+msgstr ""
+"Changement: 2.0.0 Function assurant la rétro compatibilité. Maintenant que "
+"geometry_columns est une vue basée sur les catalogues du système, une table "
+"spatiale peut etre supprimée comme tout autre table en utilisant <code>ALTER "
+"TABLE</code>"
+
+#. Tag: programlisting
+#: reference_management.xml:269
+#, no-c-format
+msgid ""
+"SELECT DropGeometryTable ('my_schema','my_spatial_table');\n"
+"----RESULT output ---\n"
+"my_schema.my_spatial_table dropped.\n"
+"                        \n"
+"-- The above is now equivalent to --\n"
+"DROP TABLE my_schema.my_spatial_table;"
+msgstr ""
+"SELECT DropGeometryTable ('my_schema','my_spatial_table');\n"
+"----RESULT output ---\n"
+"my_schema.my_spatial_table dropped.\n"
+"                        \n"
+"-- The above is now equivalent to --\n"
+"DROP TABLE my_schema.my_spatial_table;"
+
+#. Tag: para
+#: reference_management.xml:274
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryColumn\"/>, <xref linkend=\"geometry_columns\"/"
+">"
+msgstr ""
+", <xref linkend=\"DropGeometryColumn\"/>, <xref linkend=\"geometry_columns\"/"
+">"
+
+#. Tag: refname
+#: reference_management.xml:281
+#, no-c-format
+msgid "PostGIS_Full_Version"
+msgstr "PostGIS_Full_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:283
+#, no-c-format
+msgid "Reports full postgis version and build configuration infos."
+msgstr ""
+"Affiche la version complète de PostGIS et les informations de compilation."
+
+#. Tag: funcprototype
+#: reference_management.xml:289
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Full_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Full_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:300
+#, no-c-format
+msgid ""
+"Reports full postgis version and build configuration infos. Also informs "
+"about synchronization between libraries and scripts suggesting upgrades as "
+"needed."
+msgstr ""
+"Affiche la version complète de PostGIS et les informations de compilation. "
+"Donne également des informations sur la synchronisation entre les "
+"bibliothèques et les scripts en conseillant les mises à jour si besoin."
+
+#. Tag: programlisting
+#: reference_management.xml:308
+#, fuzzy, no-c-format
+msgid ""
+"SELECT PostGIS_Full_Version();\n"
+"                                                           postgis_full_version\n"
+"----------------------------------------------------------------------------------\n"
+"POSTGIS=\"2.2.0dev r12699\" GEOS=\"3.5.0dev-CAPI-1.9.0 r3989\" SFCGAL="
+"\"1.0.4\" PROJ=\"Rel. 4.8.0, 6 March 2012\" \n"
+"GDAL=\"GDAL 1.11.0, released 2014/04/16\" LIBXML=\"2.7.8\" LIBJSON=\"0.12\" "
+"RASTER\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Full_Version();\n"
+"                                                           postgis_full_version\n"
+"----------------------------------------------------------------------------------\n"
+" POSTGIS=\"1.3.3\" GEOS=\"3.1.0-CAPI-1.5.0\" PROJ=\"Rel. 4.4.9, 29 Oct "
+"2004\" USE_STATS\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:314
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:327
+#, no-c-format
+msgid "PostGIS_GEOS_Version"
+msgstr "PostGIS_GEOS_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:329
+#, no-c-format
+msgid "Returns the version number of the GEOS library."
+msgstr "Retourne le numéro de version de la bibliothèque GEOS"
+
+#. Tag: funcprototype
+#: reference_management.xml:335
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GEOS_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_GEOS_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:346
+#, no-c-format
+msgid ""
+"Returns the version number of the GEOS library, or <varname>NULL</varname> "
+"if GEOS support is not enabled."
+msgstr ""
+"Retourne le numéro de version de la bibliothèque GEOS ou <varname>NULL</"
+"varname> si le support GEOS n'est pas activé"
+
+#. Tag: programlisting
+#: reference_management.xml:353
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GEOS_Version();\n"
+" postgis_geos_version\n"
+"----------------------\n"
+" 3.1.0-CAPI-1.5.0\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_GEOS_Version();\n"
+" postgis_geos_version\n"
+"----------------------\n"
+" 3.1.0-CAPI-1.5.0\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:359
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:369
+#, no-c-format
+msgid "PostGIS_LibXML_Version"
+msgstr "PostGIS_LibXML_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:371
+#, no-c-format
+msgid "Returns the version number of the libxml2 library."
+msgstr "Retourne le numéro de version de la bibliothèque libxml2."
+
+#. Tag: funcprototype
+#: reference_management.xml:377
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_LibXML_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_LibXML_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:388
+#, no-c-format
+msgid "Returns the version number of the LibXML2 library."
+msgstr "Retourne le numéro de version de la bibliothèque libxml2."
+
+#. Tag: para
+#: reference_management.xml:389
+#, no-c-format
+msgid "Availability: 1.5"
+msgstr "Disponibilité: 1.5"
+
+#. Tag: programlisting
+#: reference_management.xml:395
+#, no-c-format
+msgid ""
+"SELECT PostGIS_LibXML_Version();\n"
+" postgis_libxml_version\n"
+"----------------------\n"
+" 2.7.6\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_LibXML_Version();\n"
+" postgis_libxml_version\n"
+"----------------------\n"
+" 2.7.6\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:401
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:411
+#, no-c-format
+msgid "PostGIS_Lib_Build_Date"
+msgstr "PostGIS_Lib_Build_Date"
+
+#. Tag: refpurpose
+#: reference_management.xml:413
+#, no-c-format
+msgid "<refpurpose>Returns build date of the PostGIS library.</refpurpose>"
+msgstr ""
+"<refpurpose>Retourne la date de compilation de la bibliotèque PostGIS.</"
+"refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:418
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:429
+#, no-c-format
+msgid "<para>Returns build date of the PostGIS library.</para>"
+msgstr ""
+"<para>Retourne la date de compilation de la bibliothèque PostGIS.</para>"
+
+#. Tag: programlisting
+#: reference_management.xml:435
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Lib_Build_Date();\n"
+" postgis_lib_build_date\n"
+"------------------------\n"
+" 2008-06-21 17:53:21\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Lib_Build_Date();\n"
+" postgis_lib_build_date\n"
+"------------------------\n"
+" 2008-06-21 17:53:21\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_management.xml:441
+#, no-c-format
+msgid "PostGIS_Lib_Version"
+msgstr "PostGIS_Lib_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:443
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the version number of the PostGIS library.</refpurpose>"
+msgstr ""
+"<refpurpose>Retourne le numéro de version de la bibliothèque PostGIS.</"
+"refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:449
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Lib_Version</function></funcdef> <paramdef></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Lib_Version</function></funcdef> <paramdef></"
+"paramdef>"
+
+#. Tag: para
+#: reference_management.xml:460
+#, no-c-format
+msgid "<para>Returns the version number of the PostGIS library.</para>"
+msgstr "<para>Retourne le numéro de version de la bibliothèque PostGIS.</para>"
+
+#. Tag: programlisting
+#: reference_management.xml:466
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Lib_Version();\n"
+" postgis_lib_version\n"
+"---------------------\n"
+" 1.3.3\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Lib_Version();\n"
+" postgis_lib_version\n"
+"---------------------\n"
+" 1.3.3\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:472
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:482
+#, no-c-format
+msgid "PostGIS_PROJ_Version"
+msgstr "PostGIS_PROJ_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:484
+#, no-c-format
+msgid "Returns the version number of the PROJ4 library."
+msgstr "Retourne le numéro de version de la bibliothèque PROJ4."
+
+#. Tag: funcprototype
+#: reference_management.xml:490
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_PROJ_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_PROJ_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:501
+#, no-c-format
+msgid ""
+"Returns the version number of the PROJ4 library, or <varname>NULL</varname> "
+"if PROJ4 support is not enabled."
+msgstr ""
+"Retourne le numéro de version de la bibliothèque PROJ4, ou <varname>NULL</"
+"varname> si PROJ4 n'est pas installée."
+
+#. Tag: programlisting
+#: reference_management.xml:508
+#, no-c-format
+msgid ""
+"SELECT PostGIS_PROJ_Version();\n"
+"  postgis_proj_version\n"
+"-------------------------\n"
+" Rel. 4.4.9, 29 Oct 2004\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_PROJ_Version();\n"
+"  postgis_proj_version\n"
+"-------------------------\n"
+" Rel. 4.4.9, 29 Oct 2004\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:514 reference_management.xml:556
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:524
+#, no-c-format
+msgid "PostGIS_Scripts_Build_Date"
+msgstr "PostGIS_Scripts_Build_Date"
+
+#. Tag: refpurpose
+#: reference_management.xml:526
+#, no-c-format
+msgid "<refpurpose>Returns build date of the PostGIS scripts.</refpurpose>"
+msgstr ""
+"<refpurpose>Retourne la date de génération des scripts PostGIS.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:531
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:542
+#, no-c-format
+msgid "<para>Returns build date of the PostGIS scripts.</para>"
+msgstr "<para>Retourne la date de génération des scripts PostGIS.</para>"
+
+#. Tag: para
+#: reference_management.xml:544
+#, no-c-format
+msgid "Availability: 1.0.0RC1"
+msgstr "Disponibilité: 1.0.0RC1"
+
+#. Tag: programlisting
+#: reference_management.xml:550
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Build_Date();\n"
+"  postgis_scripts_build_date\n"
+"-------------------------\n"
+" 2007-08-18 09:09:26\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Scripts_Build_Date();\n"
+"  postgis_scripts_build_date\n"
+"-------------------------\n"
+" 2007-08-18 09:09:26\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_management.xml:566
+#, no-c-format
+msgid "PostGIS_Scripts_Installed"
+msgstr "PostGIS_Scripts_Installed"
+
+#. Tag: refpurpose
+#: reference_management.xml:568
+#, no-c-format
+msgid ""
+"<refpurpose>Returns version of the postgis scripts installed in this "
+"database.</refpurpose>"
+msgstr ""
+"<refpurpose>Retourne le numéro de version des scripts PostGIS installés dans "
+"cette base de données.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:574
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Installed</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Installed</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:585
+#, no-c-format
+msgid ""
+"<para>Returns version of the postgis scripts installed in this database.</"
+"para>"
+msgstr ""
+"<para>Retourne le numéro de version des scripts PostGIS installés dans cette "
+"base de données</para>"
+
+#. Tag: para
+#: reference_management.xml:589
+#, no-c-format
+msgid ""
+"If the output of this function doesn't match the output of <xref linkend="
+"\"PostGIS_Scripts_Released\"/> you probably missed to properly upgrade an "
+"existing database. See the <link linkend=\"upgrading\">Upgrading</link> "
+"section for more info."
+msgstr ""
+"Si la sortie de cette fonction ne correspond pas à la sortie de <xref "
+"linkend=\"PostGIS_Scripts_Released\"/> cela veut probablement dire que la "
+"mise à jour de la base de données n'a pas fonctionné. Cf. section <link "
+"linkend=\"upgrading\">Upgrading</link> pour plus d'information"
+
+#. Tag: para
+#: reference_management.xml:596 reference_management.xml:642
+#, no-c-format
+msgid "Availability: 0.9.0"
+msgstr "Disponibilité: 0.9.0"
+
+#. Tag: programlisting
+#: reference_management.xml:602
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Installed();\n"
+"  postgis_scripts_installed\n"
+"-------------------------\n"
+" 1.5.0SVN\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Scripts_Installed();\n"
+"  postgis_scripts_installed\n"
+"-------------------------\n"
+" 1.5.0SVN\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:608
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:614
+#, no-c-format
+msgid "PostGIS_Scripts_Released"
+msgstr "PostGIS_Scripts_Released"
+
+#. Tag: refpurpose
+#: reference_management.xml:616
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the version number of the postgis.sql script released "
+"with the installed postgis lib.</refpurpose>"
+msgstr ""
+"<refpurpose>Retourne le numéro de version des scripts PostGIS livrés avec la "
+"bibliothèque PostGIS installée</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:622
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Released</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Released</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:633
+#, no-c-format
+msgid ""
+"<para>Returns the version number of the postgis.sql script released with the "
+"installed postgis lib.</para>"
+msgstr ""
+"<para>Retourne le numéro de version des scripts PostGIS livrés avec la "
+"bibliothèque PostGIS installée.</para>"
+
+#. Tag: para
+#: reference_management.xml:637
+#, no-c-format
+msgid ""
+"Starting with version 1.1.0 this function returns the same value of <xref "
+"linkend=\"PostGIS_Lib_Version\"/>. Kept for backward compatibility."
+msgstr ""
+"A partir de la version 1.1.0, cette fonction retourne la même valeur que "
+"<xref linkend=\"PostGIS_Lib_Version\"/>. Conservée pour rétro compatibilité."
+
+#. Tag: programlisting
+#: reference_management.xml:648
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Released();\n"
+"  postgis_scripts_released\n"
+"-------------------------\n"
+" 1.3.4SVN\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Scripts_Released();\n"
+"  postgis_scripts_released\n"
+"-------------------------\n"
+" 1.3.4SVN\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:654
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Scripts_Installed\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Installed\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:660
+#, no-c-format
+msgid "PostGIS_Version"
+msgstr "PostGIS_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:662
+#, no-c-format
+msgid ""
+"<refpurpose>Returns PostGIS version number and compile-time options.</"
+"refpurpose>"
+msgstr ""
+"<refpurpose>Retourne le numéro de version PostGIS et des options de "
+"compilation.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:668
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Version</function></funcdef> <paramdef></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Version</function></funcdef> <paramdef></"
+"paramdef>"
+
+#. Tag: para
+#: reference_management.xml:679
+#, no-c-format
+msgid "<para>Returns PostGIS version number and compile-time options.</para>"
+msgstr ""
+"<para>Retourne le numéro de version PostGIS et des options de compilation.</"
+"para>"
+
+#. Tag: programlisting
+#: reference_management.xml:685
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Version();\n"
+"                        postgis_version\n"
+"---------------------------------------\n"
+" 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Version();\n"
+"                        postgis_version\n"
+"---------------------------------------\n"
+" 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:691
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:701
+#, no-c-format
+msgid "Populate_Geometry_Columns"
+msgstr "Populate_Geometry_Columns"
+
+#. Tag: refpurpose
+#: reference_management.xml:703
+#, no-c-format
+msgid ""
+"Ensures geometry columns are defined with type modifiers or have appropriate "
+"spatial constraints This ensures they will be registered correctly in "
+"<varname>geometry_columns</varname> view. By default will convert all "
+"geometry columns with no type modifier to ones with type modifiers. To get "
+"old behavior set <varname>use_typmod=false</varname>"
+msgstr ""
+"S'assure que les colonnes géométriques sont définies avec un modificateur de "
+"type ou dispose des contraintes nécessaires. Garantit un enregistrement "
+"correct dans la vue <varname>geometry_columns</varname>. Par défaut, "
+"convertit toutes les colonnes géométriques sans modificateur de type en "
+"colonnes avec modificateurs. Pour conserver l'ancien mécanisme, mettre  "
+"<varname>use_typmod=false</varname>"
+
+#. Tag: funcsynopsis
+#: reference_management.xml:709
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>Populate_Geometry_Columns</"
+"function></funcdef> <paramdef><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>int <function>Populate_Geometry_Columns</function></"
+"funcdef> <paramdef><type>oid</type> <parameter>relation_oid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>use_typmod=true</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>Populate_Geometry_Columns</"
+"function></funcdef> <paramdef><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>int <function>Populate_Geometry_Columns</function></"
+"funcdef> <paramdef><type>oid</type> <parameter>relation_oid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>use_typmod=true</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:728
+#, no-c-format
+msgid ""
+"Ensures geometry columns have appropriate type modifiers or spatial "
+"constraints to ensure they are registered correctly in "
+"<varname>geometry_columns</varname> table."
+msgstr ""
+"S'assure que les colonnes géométriques sont définies avec un modificateur de "
+"type ou dispose des contraintes nécessaires pour Garantir un enregistrement "
+"correct dans la vue <varname>geometry_columns</varname>."
+
+#. Tag: para
+#: reference_management.xml:730
+#, no-c-format
+msgid ""
+"For backwards compatibility and for spatial needs such as tble inheritance "
+"where each child table may have different geometry type, the old check "
+"constraint behavior is still supported. If you need the old behavior, you "
+"need to pass in the new optional argument as false "
+"<varname>use_typmod=false</varname>. When this is done geometry columns will "
+"be created with no type modifiers but will have 3 constraints defined. In "
+"particular, this means that every geometry column belonging to a table has "
+"at least three constraints:"
+msgstr ""
+"Pour conserver la rétro compatibilité et pour des besoins particuliers comme "
+"par exemple des tables héritées ayant des types géométriques différents, "
+"l'ancien mécanisme est toujours supporté. Si ce mécanisme est nécessaire, le "
+"nouveau paramètre optionnel doit être mis à false: "
+"<varname>use_typmod=false</varname>. Avec cette valeur, la colonne "
+"géométrique sera créée sans modificateur de type mais 3 contraintes seront "
+"définies. Cela signifie concrètement que chaque colonne géométrique de la "
+"table aura au moins 3 contraintes:"
+
+#. Tag: para
+#: reference_management.xml:738
+#, no-c-format
+msgid ""
+"<varname>enforce_dims_the_geom</varname> - ensures every geometry has the "
+"same dimension (see <xref linkend=\"ST_NDims\"/>)"
+msgstr ""
+"<varname>enforce_dims_the_geom</varname> - ensures every geometry has the "
+"same dimension (see <xref linkend=\"ST_NDims\"/>)"
+
+#. Tag: para
+#: reference_management.xml:744
+#, no-c-format
+msgid ""
+"<varname>enforce_geotype_the_geom</varname> - ensures every geometry is of "
+"the same type (see <xref linkend=\"GeometryType\"/>)"
+msgstr ""
+"<varname>enforce_geotype_the_geom</varname> - ensures every geometry is of "
+"the same type (see <xref linkend=\"GeometryType\"/>)"
+
+#. Tag: para
+#: reference_management.xml:750
+#, no-c-format
+msgid ""
+"<varname>enforce_srid_the_geom</varname> - ensures every geometry is in the "
+"same projection (see <xref linkend=\"ST_SRID\"/>)"
+msgstr ""
+"<varname>enforce_srid_the_geom</varname> - s'assure que toutes les  "
+"géométries sont dans la même projection (see <xref linkend=\"ST_SRID\"/>)"
+
+#. Tag: para
+#: reference_management.xml:756
+#, no-c-format
+msgid ""
+"If a table <varname>oid</varname> is provided, this function tries to "
+"determine the srid, dimension, and geometry type of all geometry columns in "
+"the table, adding constraints as necessary. If successful, an appropriate "
+"row is inserted into the geometry_columns table, otherwise, the exception is "
+"caught and an error notice is raised describing the problem."
+msgstr ""
+"Si un identifiant de table <varname>oid</varname> est fourni, cette fonction "
+"tente de déterminer le SRID, la dimension et le type géométrique de toutes "
+"les colonnes géométriques de la table, ajoutant des contraintes si "
+"nécessaire. En cas de succès, une ligne est insérée dans la table "
+"geometry_columns, sinon, une erreur est affichée indiquant le problème."
+
+#. Tag: para
+#: reference_management.xml:763
+#, no-c-format
+msgid ""
+"If the <varname>oid</varname> of a view is provided, as with a table oid, "
+"this function tries to determine the srid, dimension, and type of all the "
+"geometries in the view, inserting appropriate entries into the "
+"<varname>geometry_columns</varname> table, but nothing is done to enforce "
+"constraints."
+msgstr ""
+"Si un identifiant de vue <varname>oid</varname> est fourni, comme pour un "
+"oid de table, cette fonction tente de déterminer le SRID, la dimension et le "
+"type géométrique de toutes les colonnes géométriques de la vue, insérant les "
+"informations correspondantes dans la table geometry_columns. Rien n'est fait "
+"concernant les contraintes."
+
+#. Tag: para
+#: reference_management.xml:769
+#, no-c-format
+msgid ""
+"The parameterless variant is a simple wrapper for the parameterized variant "
+"that first truncates and repopulates the geometry_columns table for every "
+"spatial table and view in the database, adding spatial constraints to tables "
+"where appropriate. It returns a summary of the number of geometry columns "
+"detected in the database and the number that were inserted into the "
+"<varname>geometry_columns</varname> table. The parameterized version simply "
+"returns the number of rows inserted into the <varname>geometry_columns</"
+"varname> table."
+msgstr ""
+"La version sans paramètre est un raccourci pour la version avec paramètres. "
+"Elle vide puis remplit la table geometry_columns pour chaque table ou vue "
+"spatiale de la base, ajoutant les contraintes aux tables si besoin. Retourne "
+"un résumé montrant le nombre de colonnes géométriques identifiées dans la "
+"base et le nombre inséré dans la table <varname>geometry_columns</varname>. "
+"La version avec paramètres renvoie juste le nombre de lignes insérées dans "
+"la table <varname>geometry_columns</varname> "
+
+#. Tag: para
+#: reference_management.xml:777
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr "Disponibilité: 1.4.0"
+
+#. Tag: para
+#: reference_management.xml:778
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 By default, now uses type modifiers instead of check "
+"constraints to constrain geometry types. You can still use check constraint "
+"behavior instead by using the new <varname>use_typmod</varname> and setting "
+"it to false."
+msgstr ""
+"Changement: 2.0.0 Par défaut, utilise les modificateurs de type au lieu de "
+"contraintes de vérification pour contraindre les types géométriques. Le "
+"comportement basé sur les contraintes peut être activé en mettant le nouveau "
+"paramètre <varname>use_typmod</varname> à false."
+
+#. Tag: para
+#: reference_management.xml:780
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 <varname>use_typmod</varname> optional argument was "
+"introduced that allows controlling if columns are created with typmodifiers "
+"or with check constraints."
+msgstr ""
+"Amélioration: 2.0.0 L'argument optionnel <varname>use_typmod</varname> a été "
+"introduit pour controler si les colonnes sont créés avec des modificateurs "
+"de type ou des contraintes de vérification."
+
+#. Tag: programlisting
+#: reference_management.xml:786
+#, no-c-format
+msgid ""
+"CREATE TABLE public.myspatial_table(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 "
+"4)',4326) );\n"
+"-- This will now use typ modifiers.  For this to work, there must exist "
+"data\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table'::regclass);\n"
+"\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"                        \n"
+"                        \n"
+"\\d myspatial_table\n"
+"\n"
+"                                   Table \"public.myspatial_table\"\n"
+" Column |           Type            |                           "
+"Modifiers                           \n"
+"--------+---------------------------"
+"+---------------------------------------------------------------\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
+" geom   | geometry(LineString,4326) |"
+msgstr ""
+"CREATE TABLE public.myspatial_table(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 "
+"4)',4326) );\n"
+"-- This will now use typ modifiers.  For this to work, there must exist "
+"data\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table'::regclass);\n"
+"\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"                        \n"
+"                        \n"
+"\\d myspatial_table\n"
+"\n"
+"                                   Table \"public.myspatial_table\"\n"
+" Column |           Type            |                           "
+"Modifiers                           \n"
+"--------+---------------------------"
+"+---------------------------------------------------------------\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
+" geom   | geometry(LineString,4326) |"
+
+#. Tag: programlisting
+#: reference_management.xml:788
+#, no-c-format
+msgid ""
+"-- This will change the geometry columns to use constraints if they are not "
+"typmod or have constraints already.  \n"
+"--For this to work, there must exist data\n"
+"CREATE TABLE public.myspatial_table_cs(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table_cs(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, "
+"3 4)',4326) );\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table_cs'::regclass, "
+"false);\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"\\d myspatial_table_cs\n"
+"\n"
+"                          Table \"public.myspatial_table_cs\"\n"
+" Column |   Type   |                            "
+"Modifiers                             \n"
+"--------+----------"
+"+------------------------------------------------------------------\n"
+" gid    | integer  | not null default nextval('myspatial_table_cs_gid_seq'::"
+"regclass)\n"
+" geom   | geometry | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom\" CHECK (st_ndims(geom) = 2)\n"
+"    \"enforce_geotype_geom\" CHECK (geometrytype(geom) = 'LINESTRING'::text "
+"OR geom IS NULL)\n"
+"    \"enforce_srid_geom\" CHECK (st_srid(geom) = 4326)"
+msgstr ""
+"-- This will change the geometry columns to use constraints if they are not "
+"typmod or have constraints already.  \n"
+"--For this to work, there must exist data\n"
+"CREATE TABLE public.myspatial_table_cs(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table_cs(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, "
+"3 4)',4326) );\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table_cs'::regclass, "
+"false);\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"\\d myspatial_table_cs\n"
+"\n"
+"                          Table \"public.myspatial_table_cs\"\n"
+" Column |   Type   |                            "
+"Modifiers                             \n"
+"--------+----------"
+"+------------------------------------------------------------------\n"
+" gid    | integer  | not null default nextval('myspatial_table_cs_gid_seq'::"
+"regclass)\n"
+" geom   | geometry | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom\" CHECK (st_ndims(geom) = 2)\n"
+"    \"enforce_geotype_geom\" CHECK (geometrytype(geom) = 'LINESTRING'::text "
+"OR geom IS NULL)\n"
+"    \"enforce_srid_geom\" CHECK (st_srid(geom) = 4326)"
+
+#. Tag: refname
+#: reference_management.xml:803
+#, no-c-format
+msgid "UpdateGeometrySRID"
+msgstr "UpdateGeometrySRID"
+
+#. Tag: refpurpose
+#: reference_management.xml:805
+#, no-c-format
+msgid ""
+"Updates the SRID of all features in a geometry column, geometry_columns "
+"metadata and srid. If it was enforced with constraints, the constraints will "
+"be updated with new srid constraint. If the old was enforced by type "
+"definition, the type definition will be changed."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_management.xml:811
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>UpdateGeometrySRID</"
+"function></funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>UpdateGeometrySRID</"
+"function></funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:865
+#, no-c-format
+msgid ""
+"Updates the SRID of all features in a geometry column, updating constraints "
+"and reference in geometry_columns. Note: uses current_schema() on schema-"
+"aware pgsql installations if schema is not provided."
+msgstr ""
+"Met à jour le SRID de tous les objets d'une colonne géométrique et met à "
+"jour les métadonnées de geometry_columns et la contrainte sur le SRID. Note: "
+"utilise la fonction current_schema() sur les installations PostgreSQL le "
+"supportant, si le schéma n'est pas fourni."
+
+#. Tag: para
+#: reference_management.xml:874
+#, no-c-format
+msgid ""
+"This will change the srid of the roads table to 4326 from whatever it was "
+"before"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:875
+#, no-c-format
+msgid "SELECT UpdateGeometrySRID('roads','geom',4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:877
+#, no-c-format
+msgid "The prior example is equivalent to this DDL statement"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:878
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+"  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) \n"
+"    USING ST_SetSRID(geom,4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:880
+#, no-c-format
+msgid ""
+"If you got the projection wrong (or brought it in as unknown) in load and "
+"you wanted to transform to web mercator all in one shot You can do this with "
+"DDL but there is no equivalent PostGIS management function to do so in one "
+"go."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:883
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+" ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857) USING "
+"ST_Transform(ST_SetSRID(geom,4326),3857) ;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:888
+#, fuzzy, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+
+#~ msgid ""
+#~ "Updates the SRID of all features in a geometry column, geometry_columns "
+#~ "metadata and srid table constraint"
+#~ msgstr ""
+#~ "Met à jour le SRID de tous les objets d'une colonne géométrique et met à "
+#~ "jour les métadonnées de geometry_columns et la contrainte sur le SRID."
diff --git a/doc/po/fr/reference_measure.xml.po b/doc/po/fr/reference_measure.xml.po
new file mode 100644
index 0000000..51f9547
--- /dev/null
+++ b/doc/po/fr/reference_measure.xml.po
@@ -0,0 +1,5625 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Arnaud Vandecasteele <arnaud.sig at gmail.com>, 2014
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-07 13:19+0000\n"
+"Last-Translator: Arnaud Vandecasteele <arnaud.sig at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_measure.xml:3
+#, no-c-format
+msgid "Spatial Relationships and Measurements"
+msgstr "Relations spatiales et mesures"
+
+#. Tag: refname
+#: reference_measure.xml:6
+#, no-c-format
+msgid "ST_3DClosestPoint"
+msgstr "ST_3DClosestPoint"
+
+#. Tag: refpurpose
+#: reference_measure.xml:8
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional point on g1 that is closest to g2. This is the "
+"first point of the 3D shortest line."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_3DClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+
+#. Tag: title
+#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:144
+#: reference_measure.xml:196 reference_measure.xml:253
+#: reference_measure.xml:303 reference_measure.xml:372
+#: reference_measure.xml:418 reference_measure.xml:490
+#: reference_measure.xml:549 reference_measure.xml:620
+#: reference_measure.xml:738 reference_measure.xml:811
+#: reference_measure.xml:963 reference_measure.xml:1044
+#: reference_measure.xml:1126 reference_measure.xml:1186
+#: reference_measure.xml:1352 reference_measure.xml:1487
+#: reference_measure.xml:1565 reference_measure.xml:1635
+#: reference_measure.xml:1690 reference_measure.xml:1736
+#: reference_measure.xml:1785 reference_measure.xml:1838
+#: reference_measure.xml:1920 reference_measure.xml:1984
+#: reference_measure.xml:2033 reference_measure.xml:2093
+#: reference_measure.xml:2159 reference_measure.xml:2210
+#: reference_measure.xml:2243 reference_measure.xml:2288
+#: reference_measure.xml:2340 reference_measure.xml:2391
+#: reference_measure.xml:2443 reference_measure.xml:2531
+#: reference_measure.xml:2574 reference_measure.xml:2665
+#: reference_measure.xml:2714 reference_measure.xml:2751
+#: reference_measure.xml:2793 reference_measure.xml:2840
+#: reference_measure.xml:2906 reference_measure.xml:2972
+#: reference_measure.xml:3015 reference_measure.xml:3094
+#: reference_measure.xml:3242
+#, no-c-format
+msgid "Description"
+msgstr "Description "
+
+#. Tag: para
+#: reference_measure.xml:29
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional point on g1 that is closest to g2. This is the "
+"first point of the 3D shortest line. The 3D length of the 3D shortest line "
+"is the 3D distance."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:149
+#: reference_measure.xml:211 reference_measure.xml:266
+#: reference_measure.xml:312 reference_measure.xml:377
+#: reference_measure.xml:431 reference_measure.xml:2038
+#: reference_measure.xml:2247 reference_measure.xml:2302
+#: reference_measure.xml:2399 reference_measure.xml:2755
+#: reference_measure.xml:2801
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:151
+#: reference_measure.xml:213 reference_measure.xml:268
+#: reference_measure.xml:314 reference_measure.xml:379
+#: reference_measure.xml:433 reference_measure.xml:500
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_measure.xml:35 reference_measure.xml:103
+#: reference_measure.xml:154 reference_measure.xml:210
+#: reference_measure.xml:260 reference_measure.xml:311
+#: reference_measure.xml:381 reference_measure.xml:430
+#: reference_measure.xml:2847
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr "Disponibilité: 2.0.0"
+
+#. Tag: title
+#: reference_measure.xml:39 reference_measure.xml:107
+#: reference_measure.xml:158 reference_measure.xml:218
+#: reference_measure.xml:318 reference_measure.xml:385
+#: reference_measure.xml:437 reference_measure.xml:507
+#: reference_measure.xml:564 reference_measure.xml:646
+#: reference_measure.xml:748 reference_measure.xml:849
+#: reference_measure.xml:1002 reference_measure.xml:1080
+#: reference_measure.xml:1155 reference_measure.xml:1252
+#: reference_measure.xml:1387 reference_measure.xml:1510
+#: reference_measure.xml:1660 reference_measure.xml:1702
+#: reference_measure.xml:1751 reference_measure.xml:1799
+#: reference_measure.xml:1856 reference_measure.xml:1954
+#: reference_measure.xml:2003 reference_measure.xml:2044
+#: reference_measure.xml:2253 reference_measure.xml:2307
+#: reference_measure.xml:2359 reference_measure.xml:2405
+#: reference_measure.xml:2453 reference_measure.xml:2546
+#: reference_measure.xml:2596 reference_measure.xml:2761
+#: reference_measure.xml:2805 reference_measure.xml:2942
+#: reference_measure.xml:2982 reference_measure.xml:3031
+#: reference_measure.xml:3144 reference_measure.xml:3274
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples"
+
+#. Tag: para
+#: reference_measure.xml:44
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:45
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" cp3d_line_pt                                                                        "
+"|               cp2d_line_pt\n"
+"-----------------------------------------------------------"
+"+------------------------------------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | "
+"POINT(73.0769230769231 115.384615384615)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" cp3d_line_pt                                                                        "
+"|               cp2d_line_pt\n"
+"-----------------------------------------------------------"
+"+------------------------------------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | "
+"POINT(73.0769230769231 115.384615384615)"
+
+#. Tag: para
+#: reference_measure.xml:49
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:50
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       cp3d_line_pt                        | cp2d_line_pt\n"
+"-----------------------------------------------------------+--------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | POINT(50 75)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       cp3d_line_pt                        | cp2d_line_pt\n"
+"-----------------------------------------------------------+--------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | POINT(50 75)"
+
+#. Tag: para
+#: reference_measure.xml:54
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:55
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(poly, mline)) As cp3d,\n"
+"    ST_AsEWKT(ST_ClosestPoint(poly, mline)) As cp2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   cp3d                    |     cp2d\n"
+"-------------------------------------------+--------------\n"
+" POINT(39.993580415989 54.1889925532825 5) | POINT(20 40)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(poly, mline)) As cp3d,\n"
+"    ST_AsEWKT(ST_ClosestPoint(poly, mline)) As cp2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   cp3d                    |     cp2d\n"
+"-------------------------------------------+--------------\n"
+" POINT(39.993580415989 54.1889925532825 5) | POINT(20 40)"
+
+#. Tag: title
+#: reference_measure.xml:65 reference_measure.xml:114
+#: reference_measure.xml:164 reference_measure.xml:223
+#: reference_measure.xml:276 reference_measure.xml:344
+#: reference_measure.xml:391 reference_measure.xml:463
+#: reference_measure.xml:523 reference_measure.xml:595
+#: reference_measure.xml:709 reference_measure.xml:783
+#: reference_measure.xml:936 reference_measure.xml:1007
+#: reference_measure.xml:1088 reference_measure.xml:1160
+#: reference_measure.xml:1457 reference_measure.xml:1516
+#: reference_measure.xml:1594 reference_measure.xml:1710
+#: reference_measure.xml:1758 reference_measure.xml:1806
+#: reference_measure.xml:1861 reference_measure.xml:1959
+#: reference_measure.xml:2009 reference_measure.xml:2051
+#: reference_measure.xml:2135 reference_measure.xml:2187
+#: reference_measure.xml:2219 reference_measure.xml:2262
+#: reference_measure.xml:2314 reference_measure.xml:2366
+#: reference_measure.xml:2412 reference_measure.xml:2506
+#: reference_measure.xml:2551 reference_measure.xml:2638
+#: reference_measure.xml:2691 reference_measure.xml:2727
+#: reference_measure.xml:2768 reference_measure.xml:2811
+#: reference_measure.xml:2864 reference_measure.xml:2948
+#: reference_measure.xml:2988 reference_measure.xml:3065
+#: reference_measure.xml:3285
+#, no-c-format
+msgid "See Also"
+msgstr "Voir également"
+
+#. Tag: para
+#: reference_measure.xml:67
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ClosestPoint\"/>, <xref linkend=\"ST_3DDistance\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>"
+msgstr ""
+", <xref linkend=\"ST_ClosestPoint\"/>, <xref linkend=\"ST_3DDistance\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:72
+#, no-c-format
+msgid "ST_3DDistance"
+msgstr "ST_3DDistance"
+
+#. Tag: refpurpose
+#: reference_measure.xml:74
+#, no-c-format
+msgid ""
+"For geometry type Returns the 3-dimensional cartesian minimum distance "
+"(based on spatial ref) between two geometries in projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:79
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_3DDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:94
+#, no-c-format
+msgid ""
+"For geometry type returns the 3-dimensional minimum cartesian distance "
+"between two geometries in projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:100 reference_measure.xml:152
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM ?"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:101 reference_measure.xml:503
+#: reference_measure.xml:1574 reference_measure.xml:2124
+#: reference_measure.xml:2172
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:109
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_3d,\n"
+"                ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),2163),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),2163)\n"
+"                ) As dist_2d;\n"
+"\n"
+"     dist_3d      |     dist_2d\n"
+"------------------+-----------------\n"
+" 127.295059324629 | 126.66425605671"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:110
+#, no-c-format
+msgid ""
+"-- Multilinestring and polygon both 3d and 2d distance\n"
+"-- Same example as 3D closest point example\n"
+"SELECT ST_3DDistance(poly, mline) As dist3d,\n"
+"    ST_Distance(poly, mline) As dist2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"      dist3d       | dist2d\n"
+"-------------------+--------\n"
+" 0.716635696066337 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:116
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DClosestPoint\"/>, <xref linkend=\"ST_3DDWithin\"/>, "
+"<xref linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_3DShortestLine\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_3DClosestPoint\"/>, <xref linkend=\"ST_3DDWithin\"/>, "
+"<xref linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_3DShortestLine\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:122
+#, no-c-format
+msgid "ST_3DDWithin"
+msgstr "ST_3DDWithin"
+
+#. Tag: refpurpose
+#: reference_measure.xml:124
+#, no-c-format
+msgid ""
+"For 3d (z) geometry type Returns true if two geometries 3d distance is "
+"within number of units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:128
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DDWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_3DDWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:146
+#, no-c-format
+msgid ""
+"For geometry type returns true if the 3d distance between two objects is "
+"within distance_of_srid specified projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:160
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DDWithin(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        126.8\n"
+"                ) As within_dist_3d,\n"
+"ST_DWithin(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        126.8\n"
+"                ) As within_dist_2d;\n"
+"\n"
+" within_dist_3d | within_dist_2d\n"
+"----------------+----------------\n"
+" f              | t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:166
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:172
+#, no-c-format
+msgid "ST_3DDFullyWithin"
+msgstr "ST_3DDFullyWithin"
+
+#. Tag: refpurpose
+#: reference_measure.xml:174
+#, no-c-format
+msgid ""
+"Returns true if all of the 3D geometries are within the specified distance "
+"of one another."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:180
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DDFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_3DDFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:198
+#, no-c-format
+msgid ""
+"Returns true if the 3D geometries are fully within the specified distance of "
+"one another. The distance is specified in units defined by the spatial "
+"reference system of the geometries. For this function to make sense, the "
+"source geometries must both be of the same coordinate projection, having the "
+"same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:205 reference_measure.xml:262
+#: reference_measure.xml:1242 reference_measure.xml:1847
+#: reference_measure.xml:1933 reference_measure.xml:2108
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:219
+#, no-c-format
+msgid ""
+"-- This compares the difference between fully within and distance within as "
+"well\n"
+"                -- as the distance fully within for the 2D footprint of the "
+"line/point vs. the 3d fully within\n"
+"                SELECT ST_3DDFullyWithin(geom_a, geom_b, 10) as "
+"D3DFullyWithin10, ST_3DDWithin(geom_a, geom_b, 10) as D3DWithin10, \n"
+"        ST_DFullyWithin(geom_a, geom_b, 20) as D2DFullyWithin20, \n"
+"        ST_3DDFullyWithin(geom_a, geom_b, 20) as D3DFullyWithin20 from \n"
+"                (select ST_GeomFromEWKT('POINT(1 1 2)') as geom_a,\n"
+"                ST_GeomFromEWKT('LINESTRING(1 5 2, 2 7 20, 1 9 100, 14 12 "
+"3)') as geom_b) t1;\n"
+" d3dfullywithin10 | d3dwithin10 | d2dfullywithin20 | d3dfullywithin20\n"
+"------------------+-------------+------------------+------------------\n"
+" f                | t           | t                | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:225
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_DFullyWithin\"/>"
+msgstr ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_DFullyWithin\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:231
+#, no-c-format
+msgid "ST_3DIntersects"
+msgstr "ST_3DIntersects"
+
+#. Tag: refpurpose
+#: reference_measure.xml:233
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries \"spatially intersect\" in 3d - only for "
+"points and linestrings"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:239
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DIntersects</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>geomA</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>geomB</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_3DIntersects</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>geomA</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>geomB</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:254 reference_measure.xml:2096
+#, no-c-format
+msgid ""
+"Overlaps, Touches, Within all imply spatial intersection. If any of the "
+"aforementioned returns true, then the geometries also spatially intersect. "
+"Disjoint implies false for spatial intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:269
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: ?"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:272 reference_measure.xml:2127
+#: reference_measure.xml:2176
+#, no-c-format
+msgid "Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:273
+#, no-c-format
+msgid ""
+"SELECT ST_3DIntersects(pt, line), ST_Intersects(pt,line) \n"
+"        FROM (SELECT 'POINT(0 0 2)'::geometry As pt, \n"
+"                'LINESTRING (0 0 1, 0 2 3 )'::geometry As line) As foo;\n"
+" st_3dintersects | st_intersects\n"
+"-----------------+---------------\n"
+" f               | t\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_3DIntersects(pt, line), ST_Intersects(pt,line) \n"
+"        FROM (SELECT 'POINT(0 0 2)'::geometry As pt, \n"
+"                'LINESTRING (0 0 1, 0 2 3 )'::geometry As line) As foo;\n"
+" st_3dintersects | st_intersects\n"
+"-----------------+---------------\n"
+" f               | t\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_measure.xml:283
+#, no-c-format
+msgid "ST_3DLongestLine"
+msgstr "ST_3DLongestLine"
+
+#. Tag: refpurpose
+#: reference_measure.xml:285
+#, no-c-format
+msgid "Returns the 3-dimensional longest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:290
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DLongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_3DLongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:305
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional longest line between two geometries. The function "
+"will only return the first longest line if more than one. The line returned "
+"will always start in g1 and end in g2. The 3D length of the line this "
+"function returns will always be the same as <xref linkend=\"ST_3DMaxDistance"
+"\"/> returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:323
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:324
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"           lol3d_line_pt           |       lol2d_line_pt\n"
+"-----------------------------------+----------------------------\n"
+" LINESTRING(50 75 1000,100 100 30) | LINESTRING(98 190,100 100)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"           lol3d_line_pt           |       lol2d_line_pt\n"
+"-----------------------------------+----------------------------\n"
+" LINESTRING(50 75 1000,100 100 30) | LINESTRING(98 190,100 100)"
+
+#. Tag: para
+#: reference_measure.xml:328
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:329
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"          lol3d_line_pt          |      lol2d_line_pt\n"
+"---------------------------------+--------------------------\n"
+" LINESTRING(98 190 1,50 74 1000) | LINESTRING(98 190,50 74)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"          lol3d_line_pt          |      lol2d_line_pt\n"
+"---------------------------------+--------------------------\n"
+" LINESTRING(98 190 1,50 74 1000) | LINESTRING(98 190,50 74)"
+
+#. Tag: para
+#: reference_measure.xml:333
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:334
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(poly, mline)) As lol3d,\n"
+"    ST_AsEWKT(ST_LongestLine(poly, mline)) As lol2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"            lol3d             |          lol2d\n"
+"------------------------------+--------------------------\n"
+" LINESTRING(175 150 5,1 10 2) | LINESTRING(175 150,1 10)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(poly, mline)) As lol3d,\n"
+"    ST_AsEWKT(ST_LongestLine(poly, mline)) As lol2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"            lol3d             |          lol2d\n"
+"------------------------------+--------------------------\n"
+" LINESTRING(175 150 5,1 10 2) | LINESTRING(175 150,1 10)"
+
+#. Tag: para
+#: reference_measure.xml:346
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+msgstr ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:352
+#, no-c-format
+msgid "ST_3DMaxDistance"
+msgstr "ST_3DMaxDistance"
+
+#. Tag: refpurpose
+#: reference_measure.xml:354
+#, no-c-format
+msgid ""
+"For geometry type Returns the 3-dimensional cartesian maximum distance "
+"(based on spatial ref) between two geometries in projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:359
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DMaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_3DMaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:374
+#, no-c-format
+msgid ""
+"For geometry type returns the 3-dimensional maximum cartesian distance "
+"between two geometries in projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:387
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DMaxDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_3d,\n"
+"                ST_MaxDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_2d;\n"
+"\n"
+"     dist_3d      |     dist_2d\n"
+"------------------+------------------\n"
+" 24383.7467488441 | 22247.8472107251"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:398
+#, no-c-format
+msgid "ST_3DShortestLine"
+msgstr "ST_3DShortestLine"
+
+#. Tag: refpurpose
+#: reference_measure.xml:400
+#, no-c-format
+msgid "Returns the 3-dimensional shortest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:405
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DShortestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_3DShortestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:420
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional shortest line between two geometries. The function "
+"will only return the first shortest line if more than one, that the function "
+"finds. If g1 and g2 intersects in just one point the function will return a "
+"line with both start and end in that intersection-point. If g1 and g2 are "
+"intersecting with more than one point the function will return a line with "
+"start and end in the same point but it can be any of the intersecting "
+"points. The line returned will always start in g1 and end in g2. The 3D "
+"length of the line this function returns will always be the same as <xref "
+"linkend=\"ST_3DDistance\"/> returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:442
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:443
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" shl3d_line_pt                                                                                         "
+"|               shl2d_line_pt\n"
+"----------------------------------------------------------------------------"
+"+------------------------------------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30)  "
+"| LINESTRING(73.0769230769231 115.384615384615,100 100)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" shl3d_line_pt                                                                                         "
+"|               shl2d_line_pt\n"
+"----------------------------------------------------------------------------"
+"+------------------------------------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30)  "
+"| LINESTRING(73.0769230769231 115.384615384615,100 100)"
+
+#. Tag: para
+#: reference_measure.xml:447
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:448
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       shl3d_line_pt                                       | "
+"shl2d_line_pt\n"
+"---------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30) | "
+"LINESTRING(50 75,50 74)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       shl3d_line_pt                                       | "
+"shl2d_line_pt\n"
+"---------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30) | "
+"LINESTRING(50 75,50 74)"
+
+#. Tag: para
+#: reference_measure.xml:452
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:453
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(poly, mline)) As shl3d,\n"
+"    ST_AsEWKT(ST_ShortestLine(poly, mline)) As shl2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   shl3d                                                                           "
+"|     shl2d\n"
+"---------------------------------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(39.993580415989 54.1889925532825 5,40.4078575708294 "
+"53.6052383805529 5.03423778139177) | LINESTRING(20 40,20 40)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(poly, mline)) As shl3d,\n"
+"    ST_AsEWKT(ST_ShortestLine(poly, mline)) As shl2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   shl3d                                                                           "
+"|     shl2d\n"
+"---------------------------------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(39.993580415989 54.1889925532825 5,40.4078575708294 "
+"53.6052383805529 5.03423778139177) | LINESTRING(20 40,20 40)"
+
+#. Tag: para
+#: reference_measure.xml:465
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+msgstr ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:470
+#, no-c-format
+msgid "ST_Area"
+msgstr "ST_Area"
+
+#. Tag: refpurpose
+#: reference_measure.xml:472
+#, no-c-format
+msgid ""
+"Returns the area of the surface if it is a polygon or multi-polygon. For "
+"\"geometry\" type area is in SRID units. For \"geography\" area is in square "
+"meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:476
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Area</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Area</function></"
+"funcdef> <paramdef><type>geography </type><parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float <function>ST_Area</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Area</function></"
+"funcdef> <paramdef><type>geography </type><parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:492
+#, no-c-format
+msgid ""
+"Returns the area of the geometry if it is a polygon or multi-polygon. Return "
+"the area measurement of an ST_Surface or ST_MultiSurface value. For geometry "
+"Area is in the units of the srid. For geography area is in square meters and "
+"defaults to measuring about the spheroid of the geography (currently only "
+"WGS84). To measure around the faster but less accurate sphere -- "
+"ST_Area(geog,false)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:497
+#, no-c-format
+msgid "Enhanced: 2.0.0 - support for 2D polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:498 reference_measure.xml:641
+#: reference_measure.xml:1571 reference_measure.xml:1947
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:499
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.2, 9.5.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:501
+#, no-c-format
+msgid ""
+"For polyhedral surfaces, only supports 2D polyhedral surfaces (not 2.5D). "
+"For 2.5D, may give a non-zero answer, but only for the faces that sit "
+"completely in XY plane."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:508
+#, no-c-format
+msgid ""
+"Return area in square feet for a plot of Massachusetts land and multiply by "
+"conversion to get square meters. Note this is in square feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:511
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |     sqm\n"
+"---------+-------------\n"
+" 928.625 | 86.27208552"
+msgstr ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |     sqm\n"
+"---------+-------------\n"
+" 928.625 | 86.27208552"
+
+#. Tag: para
+#: reference_measure.xml:512
+#, no-c-format
+msgid ""
+"Return area square feet and transform to Massachusetts state plane meters "
+"(26986) to get square meters. Note this is in square feet because 2249 is "
+"Mass State Plane Feet and transformed area is in square meters since 26986 "
+"is state plane mass meters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:515
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As "
+"sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |       sqm\n"
+"---------+------------------\n"
+" 928.625 | 86.2724304199219"
+msgstr ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As "
+"sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |       sqm\n"
+"---------+------------------\n"
+" 928.625 | 86.2724304199219"
+
+#. Tag: para
+#: reference_measure.xml:517
+#, no-c-format
+msgid ""
+"Return area square feet and square meters using Geography data type. Note "
+"that we transform to our geometry to geography (before you can do that make "
+"sure your geometry is in WGS 84 long lat 4326). Geography always measures in "
+"meters. This is just for demonstration to compare. Normally your table will "
+"be stored in geography data type already."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:520
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,"
+"false)/POWER(0.3048,2) As sqft_sphere, ST_Area(the_geog) As sqm_spheroid\n"
+"                FROM (SELECT\n"
+"                geography(\n"
+"                ST_Transform(\n"
+"                        ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,743265.625 2967416,743238 2967416))',\n"
+"                                2249\n"
+"                                ) ,4326\n"
+"                        )\n"
+"                )\n"
+"        ) As foo(the_geog);\n"
+" sqft_spheroid   |   sqft_sphere    |   sqm_spheroid\n"
+"-----------------+------------------+------------------\n"
+"928.684405217197 | 927.186481558724 | 86.2776044452694\n"
+"\n"
+" --if your data is in geography already\n"
+" SELECT ST_Area(the_geog)/POWER(0.3048,2) As  sqft, ST_Area(the_geog) As "
+"sqm\n"
+"        FROM somegeogtable;"
+msgstr ""
+"SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,"
+"false)/POWER(0.3048,2) As sqft_sphere, ST_Area(the_geog) As sqm_spheroid\n"
+"                FROM (SELECT\n"
+"                geography(\n"
+"                ST_Transform(\n"
+"                        ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,743265.625 2967416,743238 2967416))',\n"
+"                                2249\n"
+"                                ) ,4326\n"
+"                        )\n"
+"                )\n"
+"        ) As foo(the_geog);\n"
+" sqft_spheroid   |   sqft_sphere    |   sqm_spheroid\n"
+"-----------------+------------------+------------------\n"
+"928.684405217197 | 927.186481558724 | 86.2776044452694\n"
+"\n"
+" --if your data is in geography already\n"
+" SELECT ST_Area(the_geog)/POWER(0.3048,2) As  sqft, ST_Area(the_geog) As "
+"sqm\n"
+"        FROM somegeogtable;"
+
+#. Tag: para
+#: reference_measure.xml:524
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeographyFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeographyFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:530
+#, no-c-format
+msgid "ST_Azimuth"
+msgstr "ST_Azimuth"
+
+#. Tag: refpurpose
+#: reference_measure.xml:532
+#, no-c-format
+msgid ""
+"Returns the north-based azimuth as the angle in radians measured clockwise "
+"from the vertical on pointA to pointB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:535
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Azimuth</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>pointA</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>pointB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Azimuth</"
+"function></funcdef> <paramdef><type>geography </type><parameter>pointA</"
+"parameter></paramdef> <paramdef><type>geography </type><parameter>pointB</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float <function>ST_Azimuth</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>pointA</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>pointB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Azimuth</"
+"function></funcdef> <paramdef><type>geography </type><parameter>pointA</"
+"parameter></paramdef> <paramdef><type>geography </type><parameter>pointB</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:551
+#, no-c-format
+msgid ""
+"Returns the azimuth in radians of the segment defined by the given point-"
+"geometries, or NULL if the two points are coincident. The azimuth is north-"
+"based and is measured clockwise: North = 0; East = PI/2; South = PI; West = "
+"3PI/2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:554
+#, no-c-format
+msgid ""
+"The Azimuth is mathematical concept defined as the angle, in this case "
+"measured in radian, between a reference plane and a point."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:557
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:558
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:559
+#, no-c-format
+msgid ""
+"Azimuth is especially useful in conjunction with ST_Translate for shifting "
+"an object along its perpendicular axis. See upgis_lineshift <ulink url="
+"\"http://trac.osgeo.org/postgis/wiki/UsersWikiplpgsqlfunctions"
+"\">Plpgsqlfunctions PostGIS wiki section</ulink> for example of this."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:565
+#, no-c-format
+msgid "Geometry Azimuth in degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:566
+#, no-c-format
+msgid ""
+"SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as "
+"degA_B,\n"
+"        ST_Azimuth(ST_Point(75,100), ST_Point(25,45))/(2*pi())*360 As "
+"degB_A;\n"
+"        \n"
+"-- NOTE easier to remember syntax using PostgreSQL built-in degrees function "
+"--\n"
+"-- Both yield same answer --\n"
+"SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degA_B,\n"
+"        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As degB_A;\n"
+"\n"
+"      dega_b       |     degb_a\n"
+"------------------+------------------\n"
+" 42.2736890060937 | 222.273689006094"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:576
+#, no-c-format
+msgid ""
+"Green: the start Point(25,45) with its vertical. Yellow: degA_B as the path "
+"to travel (azimuth)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:585
+#, no-c-format
+msgid ""
+"Green: the start Point(75,100) with its vertical. Yellow: degB_A as the path "
+"to travel (azimuth)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:596
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Translate\"/>, <xref linkend=\"ST_Project\"/>, <ulink "
+"url=\"http://www.postgresql.org/docs/current/interactive/functions-math.html"
+"\">PostgreSQL Math Functions</ulink>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:603
+#, no-c-format
+msgid "ST_Centroid"
+msgstr "ST_Centroid"
+
+#. Tag: refpurpose
+#: reference_measure.xml:605
+#, no-c-format
+msgid "Returns the geometric center of a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:610
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Centroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Centroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:622
+#, no-c-format
+msgid ""
+"Computes the geometric center of a geometry, or equivalently, the center of "
+"mass of the geometry as a <varname>POINT</varname>. For [<varname>MULTI</"
+"varname>]<varname>POINT</varname>s, this is computed as the arithmetic mean "
+"of the input coordinates. For [<varname>MULTI</varname>]<varname>LINESTRING</"
+"varname>s, this is computed as the weighted length of each line segment. For "
+"[<varname>MULTI</varname>]<varname>POLYGON</varname>s, \"weight\" is thought "
+"in terms of area. If an empty geometry is supplied, an empty "
+"<varname>GEOMETRYCOLLECTION</varname> is returned. If <varname>NULL</"
+"varname> is supplied, <varname>NULL</varname> is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:634
+#, no-c-format
+msgid ""
+"The centroid is equal to the centroid of the set of component Geometries of "
+"highest dimension (since the lower-dimension geometries contribute zero "
+"\"weight\" to the centroid)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:638
+#, no-c-format
+msgid ""
+"Computation will be more accurate if performed by the GEOS module (enabled "
+"at compile time)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:642
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.4, 9.5.5"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:648
+#, no-c-format
+msgid ""
+"In each of the following illustrations, the blue dot represents the centroid "
+"of the source geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:661
+#, no-c-format
+msgid "Centroid of a <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:672
+#, no-c-format
+msgid "Centroid of a <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:685
+#, no-c-format
+msgid "Centroid of a <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:696
+#, no-c-format
+msgid "Centroid of a <varname>GEOMETRYCOLLECTION</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:705
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 "
+"1, 0 3, 1 1, 2 0, 6 0, 7 8, 9 8, 10 6 )'));\n"
+"                                st_astext\n"
+"------------------------------------------\n"
+" POINT(2.30769230769231 3.30769230769231)\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 "
+"1, 0 3, 1 1, 2 0, 6 0, 7 8, 9 8, 10 6 )'));\n"
+"                                st_astext\n"
+"------------------------------------------\n"
+" POINT(2.30769230769231 3.30769230769231)\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_measure.xml:717
+#, no-c-format
+msgid "ST_ClosestPoint"
+msgstr "ST_ClosestPoint"
+
+#. Tag: refpurpose
+#: reference_measure.xml:719
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the 2-dimensional point on g1 that is closest to g2. "
+"This is the first point of the shortest line.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:725
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:740
+#, no-c-format
+msgid ""
+"<para>Returns the 2-dimensional point on g1 that is closest to g2. This is "
+"the first point of the shortest line.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:743
+#, no-c-format
+msgid ""
+"If you have a 3D Geometry, you may prefer to use <xref linkend="
+"\"ST_3DClosestPoint\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:744 reference_measure.xml:1699
+#: reference_measure.xml:1852 reference_measure.xml:2448
+#: reference_measure.xml:3027
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:758
+#, no-c-format
+msgid ""
+"Closest between point and linestring is the point itself, but closest point "
+"between a linestring and point is the point on line string that is closest."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:762
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_ClosestPoint(pt,line)) AS cp_pt_line, \n"
+"        ST_AsText(ST_ClosestPoint(line,pt)) As cp_line_pt\n"
+"FROM (SELECT 'POINT(100 100)'::geometry As pt, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry As "
+"line\n"
+"        ) As foo;\n"
+"\n"
+"        \n"
+"   cp_pt_line   |                cp_line_pt\n"
+"----------------+------------------------------------------\n"
+" POINT(100 100) | POINT(73.0769230769231 115.384615384615)"
+msgstr ""
+"SELECT ST_AsText(ST_ClosestPoint(pt,line)) AS cp_pt_line, \n"
+"        ST_AsText(ST_ClosestPoint(line,pt)) As cp_line_pt\n"
+"FROM (SELECT 'POINT(100 100)'::geometry As pt, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry As "
+"line\n"
+"        ) As foo;\n"
+"\n"
+"        \n"
+"   cp_pt_line   |                cp_line_pt\n"
+"----------------+------------------------------------------\n"
+" POINT(100 100) | POINT(73.0769230769231 115.384615384615)"
+
+#. Tag: para
+#: reference_measure.xml:770
+#, no-c-format
+msgid "closest point on polygon A to polygon B"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:773
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"                ST_ClosestPoint(\n"
+"                        ST_GeomFromText('POLYGON((175 150, 20 40, 50 60, 125 "
+"100, 175 150))'),\n"
+"                        ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                        ) \n"
+"                ) As ptwkt;\n"
+"                \n"
+"                  ptwkt\n"
+"------------------------------------------\n"
+" POINT(140.752120669087 125.695053378061)"
+msgstr ""
+"SELECT ST_AsText(\n"
+"                ST_ClosestPoint(\n"
+"                        ST_GeomFromText('POLYGON((175 150, 20 40, 50 60, 125 "
+"100, 175 150))'),\n"
+"                        ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                        ) \n"
+"                ) As ptwkt;\n"
+"                \n"
+"                  ptwkt\n"
+"------------------------------------------\n"
+" POINT(140.752120669087 125.695053378061)"
+
+#. Tag: para
+#: reference_measure.xml:785
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
+"linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_MaxDistance\"/>"
+msgstr ""
+",<xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
+"linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_MaxDistance\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:791
+#, no-c-format
+msgid "ST_Contains"
+msgstr "ST_Contains"
+
+#. Tag: refpurpose
+#: reference_measure.xml:793
+#, no-c-format
+msgid ""
+"Returns true if and only if no points of B lie in the exterior of A, and at "
+"least one point of the interior of B lies in the interior of A."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:798
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:813
+#, no-c-format
+msgid ""
+"Geometry A contains Geometry B if and only if no points of B lie in the "
+"exterior of A, and at least one point of the interior of B lies in the "
+"interior of A. An important subtlety of this definition is that A does not "
+"contain its boundary, but A does contain itself. Contrast that to <xref "
+"linkend=\"ST_ContainsProperly\"/> where geometry A does not Contain Properly "
+"itself."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:817
+#, no-c-format
+msgid ""
+"Returns TRUE if geometry B is completely inside geometry A. For this "
+"function to make sense, the source geometries must both be of the same "
+"coordinate projection, having the same SRID. ST_Contains is the inverse of "
+"ST_Within. So ST_Contains(A,B) implies ST_Within(B,A) except in the case of "
+"invalid geometries where the result is always false regardless or not "
+"defined."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:822 reference_measure.xml:1049
+#: reference_measure.xml:1131 reference_measure.xml:1496
+#: reference_measure.xml:2579 reference_measure.xml:2932
+#: reference_measure.xml:3249
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:825 reference_measure.xml:987
+#: reference_measure.xml:1052 reference_measure.xml:1134
+#: reference_measure.xml:1238 reference_measure.xml:1493
+#: reference_measure.xml:3130 reference_measure.xml:3252
+#, no-c-format
+msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:829 reference_measure.xml:991
+#: reference_measure.xml:1060 reference_measure.xml:1138
+#: reference_measure.xml:3256
+#, no-c-format
+msgid ""
+"Do not use this function with invalid geometries. You will get unexpected "
+"results."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:832
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Contains."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:837 reference_measure.xml:1071
+#: reference_measure.xml:1146 reference_measure.xml:1502
+#: reference_measure.xml:2117 reference_measure.xml:2588
+#: reference_measure.xml:3264
+#, no-c-format
+msgid ""
+"NOTE: this is the \"allowable\" version that returns a boolean, not an "
+"integer."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:840
+#, no-c-format
+msgid ""
+"&sfs_compliant; s2.1.1.2 // s2.1.13.3 - same as within(geometry B, geometry "
+"A)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:842
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.31"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:844 reference_measure.xml:1075
+#: reference_measure.xml:1150
+#, no-c-format
+msgid ""
+"There are certain subtleties to ST_Contains and ST_Within that are not "
+"intuitively obvious. For details check out <ulink url=\"http://lin-ear-th-"
+"inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html"
+"\">Subtleties of OGC Covers, Contains, Within</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:851
+#, no-c-format
+msgid ""
+"The <function>ST_Contains</function> predicate returns <varname>TRUE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:863
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:873 reference_measure.xml:3208
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>POINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:884 reference_measure.xml:924
+#: reference_measure.xml:3177
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:894 reference_measure.xml:2625
+#: reference_measure.xml:3157 reference_measure.xml:3167
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:902
+#, no-c-format
+msgid ""
+"The <function>ST_Contains</function> predicate returns <varname>FALSE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:914
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:932
+#, no-c-format
+msgid ""
+"-- A circle within a circle\n"
+"SELECT ST_Contains(smallc, bigc) As smallcontainsbig,\n"
+"           ST_Contains(bigc,smallc) As bigcontainssmall,\n"
+"           ST_Contains(bigc, ST_Union(smallc, bigc)) as bigcontainsunion,\n"
+"           ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion,\n"
+"           ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"           ST_Contains(bigc, ST_ExteriorRing(bigc)) As bigcontainsexterior\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"                         ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As "
+"bigc) As foo;\n"
+"\n"
+"-- Result\n"
+"  smallcontainsbig | bigcontainssmall | bigcontainsunion | bigisunion | "
+"bigcoversexterior | bigcontainsexterior\n"
+"------------------+------------------+------------------+------------"
+"+-------------------+---------------------\n"
+" f                | t                | t                | t          | "
+"t        | f\n"
+"\n"
+"-- Example demonstrating difference between contains and contains properly\n"
+"SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
+"acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
+"   ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+"FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
+"                         ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
+"                         ( ST_Point(1,1) )\n"
+"          ) As foo(geomA);\n"
+"\n"
+"  geomtype    | acontainsa | acontainspropa | acontainsba | acontainspropba\n"
+"--------------+------------+----------------+-------------"
+"+-----------------\n"
+"ST_Polygon    | t          | f              | f           | f\n"
+"ST_LineString | t          | f              | f           | f\n"
+"ST_Point      | t          | t              | f           | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:937
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ContainsProperly\"/>, <xref linkend=\"ST_Covers\"/>, "
+"<xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Equals\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+msgstr ""
+", <xref linkend=\"ST_ContainsProperly\"/>, <xref linkend=\"ST_Covers\"/>, "
+"<xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Equals\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:943
+#, no-c-format
+msgid "ST_ContainsProperly"
+msgstr "ST_ContainsProperly"
+
+#. Tag: refpurpose
+#: reference_measure.xml:945
+#, no-c-format
+msgid ""
+"Returns true if B intersects the interior of A but not the boundary (or "
+"exterior). A does not contain properly itself, but does contain itself."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:950
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_ContainsProperly</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_ContainsProperly</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:965
+#, no-c-format
+msgid ""
+"Returns true if B intersects the interior of A but not the boundary (or "
+"exterior)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:967
+#, no-c-format
+msgid "A does not contain properly itself, but does contain itself."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:968
+#, no-c-format
+msgid ""
+"Every point of the other geometry is a point of this geometry's interior. "
+"The DE-9IM Intersection Matrix for the two geometries matches [T**FF*FF*] "
+"used in <xref linkend=\"ST_Relate\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:972
+#, no-c-format
+msgid ""
+"From JTS docs slightly reworded: The advantage to using this predicate over "
+"<xref linkend=\"ST_Contains\"/> and <xref linkend=\"ST_Intersects\"/> is "
+"that it can be computed efficiently, with no need to compute topology at "
+"individual points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:974
+#, no-c-format
+msgid ""
+"An example use case for this predicate is computing the intersections of a "
+"set of geometries with a large polygonal geometry. Since intersection is a "
+"fairly slow operation, it can be more efficient to use containsProperly to "
+"filter out test geometries which lie wholly inside the area. In these cases "
+"the intersection is known a priori to be exactly the original test geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:984
+#, no-c-format
+msgid "Availability: 1.4.0 - requires GEOS >= 3.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:994
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_ContainsProperly."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1003
+#, no-c-format
+msgid ""
+"--a circle within a circle\n"
+"        SELECT ST_ContainsProperly(smallc, bigc) As smallcontainspropbig,\n"
+"        ST_ContainsProperly(bigc,smallc) As bigcontainspropsmall,\n"
+"        ST_ContainsProperly(bigc, ST_Union(smallc, bigc)) as "
+"bigcontainspropunion,\n"
+"        ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion,\n"
+"        ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"        ST_ContainsProperly(bigc, ST_ExteriorRing(bigc)) As "
+"bigcontainsexterior\n"
+"        FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As "
+"smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+"  smallcontainspropbig | bigcontainspropsmall | bigcontainspropunion | "
+"bigisunion | bigcoversexterior | bigcontainsexterior\n"
+"------------------+------------------+------------------+------------"
+"+-------------------+---------------------\n"
+" f                     | t                    | f                    | "
+"t          | t                 | f\n"
+"\n"
+" --example demonstrating difference between contains and contains properly\n"
+" SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
+"acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
+" ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+" FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
+"                  ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
+"                  ( ST_Point(1,1) )\n"
+"        ) As foo(geomA);\n"
+"\n"
+"  geomtype    | acontainsa | acontainspropa | acontainsba | acontainspropba\n"
+"--------------+------------+----------------+-------------"
+"+-----------------\n"
+"ST_Polygon    | t          | f              | f           | f\n"
+"ST_LineString | t          | f              | f           | f\n"
+"ST_Point      | t          | t              | f           | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1008
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_Contains\"/>, <xref "
+"linkend=\"ST_Covers\"/>, <xref linkend=\"ST_CoveredBy\"/>, <xref linkend="
+"\"ST_Equals\"/>, <xref linkend=\"ST_Relate\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_Contains\"/>, <xref "
+"linkend=\"ST_Covers\"/>, <xref linkend=\"ST_CoveredBy\"/>, <xref linkend="
+"\"ST_Equals\"/>, <xref linkend=\"ST_Relate\"/>, <xref linkend=\"ST_Within\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:1014
+#, no-c-format
+msgid "ST_Covers"
+msgstr "ST_Covers"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1016
+#, no-c-format
+msgid "Returns 1 (TRUE) if no point in Geometry B is outside Geometry A"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1021
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogpolyA</"
+"parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>geogpointB</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogpolyA</"
+"parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>geogpointB</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:1046
+#, no-c-format
+msgid ""
+"Returns 1 (TRUE) if no point in Geometry/Geography B is outside Geometry/"
+"Geography A"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1056
+#, no-c-format
+msgid "For geography only Polygon covers point is supported."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1063
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Covers."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1068 reference_measure.xml:1140
+#, no-c-format
+msgid "Availability: 1.2.2 - requires GEOS >= 3.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1069
+#, no-c-format
+msgid "Availability: 1.5 - support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1074 reference_measure.xml:1149
+#, no-c-format
+msgid "Not an OGC standard, but Oracle has it too."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1081
+#, no-c-format
+msgid "Geometry example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1082
+#, no-c-format
+msgid ""
+"--a circle covering a circle\n"
+"SELECT ST_Covers(smallc,smallc) As smallinsmall,\n"
+"        ST_Covers(smallc, bigc) As smallcoversbig,\n"
+"        ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"        ST_Contains(bigc, ST_ExteriorRing(bigc)) As bigcontainsexterior\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+" smallinsmall | smallcoversbig | bigcoversexterior | bigcontainsexterior\n"
+"--------------+----------------+-------------------+---------------------\n"
+" t            | f              | t                 | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1083
+#, no-c-format
+msgid "Geeography Example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1084
+#, no-c-format
+msgid ""
+"-- a point with a 300 meter buffer compared to a point, a point and its 10 "
+"meter buffer\n"
+"SELECT ST_Covers(geog_poly, geog_pt) As poly_covers_pt, \n"
+"        ST_Covers(ST_Buffer(geog_pt,10), geog_pt) As buff_10m_covers_cent\n"
+"        FROM (SELECT ST_Buffer(ST_GeogFromText('SRID=4326;POINT(-99.327 "
+"31.4821)'), 300) As geog_poly,\n"
+"                                ST_GeogFromText('SRID=4326;POINT(-99.33 "
+"31.483)') As geog_pt ) As foo;\n"
+"                                \n"
+" poly_covers_pt | buff_10m_covers_cent\n"
+"----------------+------------------\n"
+" f              | t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1089
+#, no-c-format
+msgid ", <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ", <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Within\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:1095
+#, no-c-format
+msgid "ST_CoveredBy"
+msgstr "ST_CoveredBy"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1097
+#, no-c-format
+msgid ""
+"<refpurpose>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
+"Geometry/Geography B</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1102
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogA</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geogB</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogA</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geogB</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:1128
+#, no-c-format
+msgid ""
+"<para>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
+"Geometry/Geography B</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1141
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_CoveredBy."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1156
+#, no-c-format
+msgid ""
+"--a circle coveredby a circle\n"
+"SELECT ST_CoveredBy(smallc,smallc) As smallinsmall,\n"
+"        ST_CoveredBy(smallc, bigc) As smallcoveredbybig,\n"
+"        ST_CoveredBy(ST_ExteriorRing(bigc), bigc) As exteriorcoveredbybig,\n"
+"        ST_Within(ST_ExteriorRing(bigc),bigc) As exeriorwithinbig\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+" smallinsmall | smallcoveredbybig | exteriorcoveredbybig | exeriorwithinbig\n"
+"--------------+-------------------+----------------------"
+"+------------------\n"
+" t            | t                 | t                    | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1161
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+msgstr ""
+", <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:1167
+#, no-c-format
+msgid "ST_Crosses"
+msgstr "ST_Crosses"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1169
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the supplied geometries have some, but "
+"not all, interior points in common."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1175
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Crosses</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>g2</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_Crosses</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>g2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:1188
+#, no-c-format
+msgid ""
+"<function>ST_Crosses</function> takes two geometry objects and returns "
+"<varname>TRUE</varname> if their intersection \"spatially cross\", that is, "
+"the geometries have some, but not all interior points in common. The "
+"intersection of the interiors of the geometries must not be the empty set "
+"and must have a dimensionality less than the the maximum dimension of the "
+"two input geometries. Additionally, the intersection of the two geometries "
+"must not equal either of the source geometries. Otherwise, it returns "
+"<varname>FALSE</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1197
+#, no-c-format
+msgid "In mathematical terms, this is expressed as:"
+msgstr ""
+
+#. Tag: remark
+#: reference_measure.xml:1199
+#, no-c-format
+msgid ""
+"TODO: Insert appropriate MathML markup here or use a gif. Simple HTML markup "
+"does not work well in both IE and Firefox."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1210
+#, no-c-format
+msgid "The DE-9IM Intersection Matrix for the two geometries is:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1214
+#, no-c-format
+msgid ""
+"<markup>T*T******</markup> (for Point/Line, Point/Area, and Line/Area "
+"situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1219
+#, no-c-format
+msgid ""
+"<markup>T*****T**</markup> (for Line/Point, Area/Point, and Area/Line "
+"situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1224
+#, no-c-format
+msgid "<markup>0********</markup> (for Line/Line situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1228
+#, no-c-format
+msgid "For any other combination of dimensions this predicate returns false."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1231
+#, no-c-format
+msgid ""
+"The OpenGIS Simple Features Specification defines this predicate only for "
+"Point/Line, Point/Area, Line/Line, and Line/Area situations. JTS / GEOS "
+"extends the definition to apply to Line/Point, Area/Point and Area/Line "
+"situations as well. This makes the relation symmetric."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1247
+#, no-c-format
+msgid "&sfs_compliant; s2.1.13.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1248
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.29"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1254 reference_measure.xml:2597
+#, no-c-format
+msgid "The following illustrations all return <varname>TRUE</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1266
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1276
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1288
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1298 reference_measure.xml:2617
+#: reference_measure.xml:3188 reference_measure.xml:3198
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1306
+#, no-c-format
+msgid ""
+"Consider a situation where a user has two tables: a table of roads and a "
+"table of highways."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1314
+#, no-c-format
+msgid ""
+"CREATE TABLE roads (\n"
+"  id serial NOT NULL,\n"
+"  the_geom geometry,\n"
+"  CONSTRAINT roads_pkey PRIMARY KEY (road_id)\n"
+");"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1318
+#, no-c-format
+msgid ""
+"CREATE TABLE highways (\n"
+"  id serial NOT NULL,\n"
+"  the_gem geometry,\n"
+"  CONSTRAINT roads_pkey PRIMARY KEY (road_id)\n"
+");"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1325
+#, no-c-format
+msgid ""
+"To determine a list of roads that cross a highway, use a query similiar to:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1329
+#, no-c-format
+msgid ""
+"SELECT roads.id\n"
+"FROM roads, highways\n"
+"WHERE ST_Crosses(roads.the_geom, highways.the_geom);"
+msgstr ""
+"SELECT roads.id\n"
+"FROM roads, highways\n"
+"WHERE ST_Crosses(roads.the_geom, highways.the_geom);"
+
+#. Tag: refname
+#: reference_measure.xml:1336
+#, no-c-format
+msgid "ST_LineCrossingDirection"
+msgstr "ST_LineCrossingDirection"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1338
+#, no-c-format
+msgid ""
+"Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
+"crossing behavior. 0 is no crossing."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1343
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_LineCrossingDirection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>linestringA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>linestringB</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1354
+#, no-c-format
+msgid ""
+"Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
+"crossing behavior. 0 is no crossing. This is only supported for "
+"<varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1355
+#, no-c-format
+msgid "Definition of integer constants is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1358
+#, no-c-format
+msgid "0: LINE NO CROSS"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1361
+#, no-c-format
+msgid "-1: LINE CROSS LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1364
+#, no-c-format
+msgid "1: LINE CROSS RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1367
+#, no-c-format
+msgid "-2: LINE MULTICROSS END LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1370
+#, no-c-format
+msgid "2: LINE MULTICROSS END RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1373
+#, no-c-format
+msgid "-3: LINE MULTICROSS END SAME FIRST LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1376
+#, no-c-format
+msgid "3: LINE MULTICROSS END SAME FIRST RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1380
+#, no-c-format
+msgid "Availability: 1.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1398
+#, no-c-format
+msgid ""
+"Line 1 (green), Line 2 ball is start point, triangle are end points. Query "
+"below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1402
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+"SELECT\n"
+" ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+" ST_GeomFromText('LINESTRING(171 154,20 140,71 74,161 53)') As line2\n"
+"        ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"           3 |          -3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1412 reference_measure.xml:1426
+#: reference_measure.xml:1440
+#, no-c-format
+msgid ""
+"Line 1 (green), Line 2 (blue) ball is start point, triangle are end points. "
+"Query below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1416
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+" SELECT\n"
+"  ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"  ST_GeomFromText('LINESTRING (171 154, 20 140, 71 74, 2.99 90.16)') As "
+"line2\n"
+") As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"           2 |          -2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1430
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"        ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+" SELECT\n"
+"  ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"  ST_GeomFromText('LINESTRING (20 140, 71 74, 161 53)') As line2\n"
+"  ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"          -1 |          1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1444
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (SELECT\n"
+"        ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"        ST_GeomFromText('LINESTRING(2.99 90.16,71 74,20 140,171 154)') As "
+"line2\n"
+"        ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"          -2 |          2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1452
+#, no-c-format
+msgid ""
+"SELECT s1.gid, s2.gid, ST_LineCrossingDirection(s1.the_geom, s2.the_geom)\n"
+"        FROM streets s1 CROSS JOIN streets s2 ON (s1.gid != s2.gid AND s1."
+"the_geom && s2.the_geom )\n"
+"WHERE ST_CrossingDirection(s1.the_geom, s2.the_geom) > 0;"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1465
+#, no-c-format
+msgid "ST_Disjoint"
+msgstr "ST_Disjoint"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1467
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries do not \"spatially intersect\" - if they do "
+"not share any space together."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1473
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:1488
+#, no-c-format
+msgid ""
+"Overlaps, Touches, Within all imply geometries are not spatially disjoint. "
+"If any of the aforementioned returns true, then the geometries are not "
+"spatially disjoint. Disjoint implies false for spatial intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1498
+#, no-c-format
+msgid "This function call does not use indexes"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1505
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - a.Relate(b, 'FF*FF****')"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1507
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.26"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1512
+#, no-c-format
+msgid ""
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" t\n"
+"(1 row)\n"
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" t\n"
+"(1 row)\n"
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" f\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_measure.xml:1517
+#, no-c-format
+msgid "<para>ST_Intersects</para>"
+msgstr "<para>ST_Intersects</para>"
+
+#. Tag: refname
+#: reference_measure.xml:1523
+#, no-c-format
+msgid "ST_Distance"
+msgstr "ST_Distance"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1525
+#, no-c-format
+msgid ""
+"For geometry type Returns the 2-dimensional cartesian minimum distance "
+"(based on spatial ref) between two geometries in projected units. For "
+"geography type defaults to return spheroidal minimum distance between two "
+"geographies in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1529
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Distance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Distance</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>gg1</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>gg2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Distance</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float <function>ST_Distance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Distance</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>gg1</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>gg2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Distance</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:1567
+#, no-c-format
+msgid ""
+"For geometry type returns the 2-dimensional minimum cartesian distance "
+"between two geometries in projected units (spatial ref units). For geography "
+"type defaults to return the minimum distance around WGS 84 spheroid between "
+"two geographies in meters. Pass in false to return answer in sphere instead "
+"of spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1572
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.23"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1573 reference_measure.xml:2039
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1576
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 geography support was introduced in 1.5. Speed "
+"improvements for planar to better handle large or many vertex geometries"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1577 reference_measure.xml:1949
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 improved speed for geography. See <ulink url=\"http://blog."
+"opengeo.org/2012/07/12/making-geography-faster/\">Making Geography faster</"
+"ulink> for details."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1578
+#, no-c-format
+msgid "Enhanced: 2.1.0 - support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1582
+#, no-c-format
+msgid "Basic Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1584
+#, no-c-format
+msgid ""
+"--Geometry example - units in planar degrees 4326 is WGS 84 long lat "
+"unit=degrees\n"
+"SELECT ST_Distance(\n"
+"                ST_GeomFromText('POINT(-72.1235 42.3521)',4326),\n"
+"                ST_GeomFromText('LINESTRING(-72.1260 42.45, -72.123 "
+"42.1546)', 4326)\n"
+"        );\n"
+"st_distance\n"
+"-----------------\n"
+"0.00150567726382282\n"
+"\n"
+"-- Geometry example - units in meters (SRID: 26986 Massachusetts state plane "
+"meters) (most accurate for Massachusetts)\n"
+"SELECT ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),26986),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),26986)\n"
+"                );\n"
+"st_distance\n"
+"-----------------\n"
+"123.797937878454\n"
+"\n"
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (least accurate)\n"
+"SELECT ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),2163),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),2163)\n"
+"                );\n"
+"\n"
+"st_distance\n"
+"------------------\n"
+"126.664256056812"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1587 reference_measure.xml:2131
+#: reference_measure.xml:2182
+#, no-c-format
+msgid "Geography Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1588
+#, no-c-format
+msgid ""
+"-- same as geometry example but note units in meters - use sphere for "
+"slightly faster less accurate\n"
+"SELECT ST_Distance(gg1, gg2) As spheroid_dist, ST_Distance(gg1, gg2, false) "
+"As sphere_dist \n"
+"FROM (SELECT\n"
+"        ST_GeographyFromText('SRID=4326;POINT(-72.1235 42.3521)') As gg1,\n"
+"        ST_GeographyFromText('SRID=4326;LINESTRING(-72.1260 42.45, -72.123 "
+"42.1546)') As gg2\n"
+"        ) As foo  ;\n"
+"\n"
+"  spheroid_dist   |   sphere_dist\n"
+"------------------+------------------\n"
+" 123.802076746848 | 123.475736916397"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1596
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_Distance_Sphere\"/>, "
+"<xref linkend=\"ST_Distance_Spheroid\"/>, <xref linkend=\"ST_MaxDistance\"/"
+">, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_Distance_Sphere\"/>, "
+"<xref linkend=\"ST_Distance_Spheroid\"/>, <xref linkend=\"ST_MaxDistance\"/"
+">, <xref linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:1602
+#, no-c-format
+msgid "ST_HausdorffDistance"
+msgstr "ST_HausdorffDistance"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1604
+#, no-c-format
+msgid ""
+"Returns the Hausdorff distance between two geometries. Basically a measure "
+"of how similar or dissimilar 2 geometries are. Units are in the units of the "
+"spatial reference system of the geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1609
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_HausdorffDistance</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_HausdorffDistance</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>g2</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>densifyFrac</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float <function>ST_HausdorffDistance</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_HausdorffDistance</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>g2</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>densifyFrac</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:1637
+#, no-c-format
+msgid ""
+"Implements algorithm for computing a distance metric which can be thought of "
+"as the \"Discrete Hausdorff Distance\". This is the Hausdorff distance "
+"restricted to discrete points for one of the geometries. <ulink url=\"http://"
+"en.wikipedia.org/wiki/Hausdorff_distance\">Wikipedia article on Hausdorff "
+"distance</ulink> <ulink url=\"http://lin-ear-th-inking.blogspot.com/2009/01/"
+"computing-geometric-similarity.html\">Martin Davis note on how Hausdorff "
+"Distance calculation was used to prove correctness of the "
+"CascadePolygonUnion approach.</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1640
+#, no-c-format
+msgid ""
+"When densifyFrac is specified, this function performs a segment "
+"densification before computing the discrete hausdorff distance. The "
+"densifyFrac parameter sets the fraction by which to densify each segment. "
+"Each segment will be split into a number of equal-length subsegments, whose "
+"fraction of the total length is closest to the given fraction."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1645
+#, no-c-format
+msgid ""
+"The current implementation supports only vertices as the discrete locations. "
+"This could be extended to allow an arbitrary density of points to be used."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1650
+#, no-c-format
+msgid ""
+"This algorithm is NOT equivalent to the standard Hausdorff distance. "
+"However, it computes an approximation that is correct for a large subset of "
+"useful cases. One important part of this subset is Linestrings that are "
+"roughly parallel to each other, and roughly equal in length. This is a "
+"useful metric for line matching."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1655
+#, no-c-format
+msgid "Availability: 1.5.0 - requires GEOS >= 3.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1661
+#, no-c-format
+msgid ""
+"For each building, find the parcel that best represents it. First we require "
+"the parcel intersect with the geometry. DISTINCT ON guarantees we get each "
+"building listed only once, the ORDER BY .. ST_HausdorffDistance gives us a "
+"preference of parcel that is most similar to the building."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1663
+#, no-c-format
+msgid ""
+"SELECT DISTINCT ON(buildings.gid) buildings.gid, parcels.parcel_id \n"
+"   FROM buildings INNER JOIN parcels ON ST_Intersects(buildings.geom,parcels."
+"geom) \n"
+"     ORDER BY buildings.gid, ST_HausdorffDistance(buildings.geom, parcels."
+"geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1665
+#, fuzzy, no-c-format
+msgid ""
+"postgis=# SELECT ST_HausdorffDistance(\n"
+"                                'LINESTRING (0 0, 2 0)'::geometry,\n"
+"                                'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                         1\n"
+"(1 row)"
+msgstr ""
+"postgis=# SELECT st_HausdorffDistance(\n"
+"                                'LINESTRING (0 0, 2 0)'::geometry,\n"
+"                                'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                         1\n"
+"(1 row)"
+
+#. Tag: programlisting
+#: reference_measure.xml:1666
+#, no-c-format
+msgid ""
+"postgis=# SELECT st_hausdorffdistance('LINESTRING (130 0, 0 0, 0 150)'::"
+"geometry, 'LINESTRING (10 10, 10 150, 130 10)'::geometry, 0.5);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                        70\n"
+"(1 row)"
+msgstr ""
+"postgis=# SELECT st_hausdorffdistance('LINESTRING (130 0, 0 0, 0 150)'::"
+"geometry, 'LINESTRING (10 10, 10 150, 130 10)'::geometry, 0.5);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                        70\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_measure.xml:1673
+#, no-c-format
+msgid "ST_MaxDistance"
+msgstr "ST_MaxDistance"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1675
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional largest distance between two geometries in "
+"projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1681
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_MaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_MaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:1694
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional maximum distance between two geometries in "
+"projected units. If g1 and g2 is the same geometry the function will return "
+"the distance between the two vertices most far from each other in that "
+"geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1704
+#, no-c-format
+msgid "Basic furthest distance the point is to any part of the line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1705
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 "
+"2 )'::geometry);\n"
+"   st_maxdistance\n"
+"-----------------\n"
+" 2\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 2, 2 "
+"2 )'::geometry);\n"
+"  st_maxdistance  \n"
+"------------------\n"
+" 2.82842712474619\n"
+"(1 row)"
+msgstr ""
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 "
+"2 )'::geometry);\n"
+"   st_maxdistance\n"
+"-----------------\n"
+" 2\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 2, 2 "
+"2 )'::geometry);\n"
+"  st_maxdistance  \n"
+"------------------\n"
+" 2.82842712474619\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_measure.xml:1711
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_DFullyWithin\"/>"
+msgstr ", <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Within\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:1717
+#, no-c-format
+msgid "ST_Distance_Sphere"
+msgstr "ST_Distance_Sphere"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1719
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat geometries. Uses a "
+"spherical earth and radius of 6370986 meters. Faster than "
+"ST_Distance_Spheroid <xref linkend=\"ST_Distance_Spheroid\"/>, but less "
+"accurate. PostGIS versions prior to 1.5 only implemented for points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1727
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Distance_Sphere</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1738
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat points. Uses a "
+"spherical earth and radius of 6370986 meters. Faster than <xref linkend="
+"\"ST_Distance_Spheroid\"/>, but less accurate. PostGIS Versions prior to 1.5 "
+"only implemented for points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1743
+#, no-c-format
+msgid ""
+"This function currently does not look at the SRID of a geometry and will "
+"always assume its in WGS 84 long lat. Prior versions of this function only "
+"support points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1746 reference_measure.xml:1794
+#, no-c-format
+msgid ""
+"Availability: 1.5 - support for other geometry types besides points was "
+"introduced. Prior versions only work with points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1753
+#, no-c-format
+msgid ""
+"SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,\n"
+"round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As dist_utm11_meters,\n"
+"round(CAST(ST_Distance(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 "
+"38)', 4326)) As numeric),5) As dist_degrees,\n"
+"round(CAST(ST_Distance(ST_Transform(the_geom,32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As min_dist_line_point_meters\n"
+"FROM\n"
+"        (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', "
+"4326) As the_geom) as foo;\n"
+"         dist_meters | dist_utm11_meters | dist_degrees | "
+"min_dist_line_point_meters\n"
+"        -------------+-------------------+--------------"
+"+----------------------------\n"
+"                70424.47 |          70438.00 |      0.72900 "
+"|                   65871.18"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1760
+#, no-c-format
+msgid ", <xref linkend=\"ST_Distance_Spheroid\"/>"
+msgstr ", <xref linkend=\"ST_Distance_Spheroid\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:1766
+#, no-c-format
+msgid "ST_Distance_Spheroid"
+msgstr "ST_Distance_Spheroid"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1768
+#, no-c-format
+msgid ""
+"Returns the minimum distance between two lon/lat geometries given a "
+"particular spheroid. PostGIS versions prior to 1.5 only support points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1775
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Distance_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</"
+"parameter></paramdef> <paramdef><type>spheroid </type> "
+"<parameter>measurement_spheroid</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_Distance_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</"
+"parameter></paramdef> <paramdef><type>spheroid </type> "
+"<parameter>measurement_spheroid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:1787
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat geometries given a "
+"particular spheroid. See the explanation of spheroids given for <xref "
+"linkend=\"ST_Length_Spheroid\"/>. PostGIS version prior to 1.5 only support "
+"points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1791
+#, no-c-format
+msgid ""
+"This function currently does not look at the SRID of a geometry and will "
+"always assume its represented in the coordinates of the passed in spheroid. "
+"Prior versions of this function only support points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1801
+#, no-c-format
+msgid ""
+"SELECT round(CAST(\n"
+"                ST_Distance_Spheroid(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326), 'SPHEROID[\"WGS "
+"84\",6378137,298.257223563]')\n"
+"                        As numeric),2) As dist_meters_spheroid,\n"
+"                round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As "
+"dist_meters_sphere,\n"
+"round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As dist_utm11_meters\n"
+"FROM\n"
+"        (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', "
+"4326) As the_geom) as foo;\n"
+" dist_meters_spheroid | dist_meters_sphere | dist_utm11_meters\n"
+"----------------------+--------------------+-------------------\n"
+"                         70454.92 |           70424.47 |          70438.00"
+msgstr ""
+"SELECT round(CAST(\n"
+"                ST_Distance_Spheroid(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326), 'SPHEROID[\"WGS "
+"84\",6378137,298.257223563]')\n"
+"                        As numeric),2) As dist_meters_spheroid,\n"
+"                round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As "
+"dist_meters_sphere,\n"
+"round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As dist_utm11_meters\n"
+"FROM\n"
+"        (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', "
+"4326) As the_geom) as foo;\n"
+" dist_meters_spheroid | dist_meters_sphere | dist_utm11_meters\n"
+"----------------------+--------------------+-------------------\n"
+"                         70454.92 |           70424.47 |          70438.00"
+
+#. Tag: para
+#: reference_measure.xml:1808
+#, no-c-format
+msgid ", <xref linkend=\"ST_Distance_Sphere\"/>"
+msgstr ", <xref linkend=\"ST_Distance_Sphere\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:1814
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr "ST_DFullyWithin"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1816
+#, no-c-format
+msgid ""
+"Returns true if all of the geometries are within the specified distance of "
+"one another"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1822
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_DFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_DFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:1840
+#, no-c-format
+msgid ""
+"Returns true if the geometries is fully within the specified distance of one "
+"another. The distance is specified in units defined by the spatial reference "
+"system of the geometries. For this function to make sense, the source "
+"geometries must both be of the same coordinate projection, having the same "
+"SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1857
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_DFullyWithin(geom_a, geom_b, 10) as DFullyWithin10, "
+"ST_DWithin(geom_a, geom_b, 10) as DWithin10, ST_DFullyWithin(geom_a, geom_b, "
+"20) as DFullyWithin20 from \n"
+"                (select ST_GeomFromText('POINT(1 1)') as geom_a,"
+"ST_GeomFromText('LINESTRING(1 5, 2 7, 1 9, 14 12)') as geom_b) t1;\n"
+"   \n"
+"-----------------\n"
+" DFullyWithin10 | DWithin10 | DFullyWithin20 |\n"
+"---------------+----------+---------------+\n"
+" f             | t        | t             |"
+msgstr ""
+"postgis=# SELECT ST_DFullyWithin(geom_a, geom_b, 10) as DFullyWithin10, "
+"ST_DWithin(geom_a, geom_b, 10) as DWithin10, ST_DFullyWithin(geom_a, geom_b, "
+"20) as DFullyWithin20 from \n"
+"                (select ST_GeomFromText('POINT(1 1)') as geom_a,"
+"ST_GeomFromText('LINESTRING(1 5, 2 7, 1 9, 14 12)') as geom_b) t1;\n"
+"   \n"
+"-----------------\n"
+" DFullyWithin10 | DWithin10 | DFullyWithin20 |\n"
+"---------------+----------+---------------+\n"
+" f             | t        | t             |"
+
+#. Tag: para
+#: reference_measure.xml:1863
+#, no-c-format
+msgid ", <xref linkend=\"ST_DWithin\"/>"
+msgstr ", <xref linkend=\"ST_DWithin\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:1869
+#, no-c-format
+msgid "ST_DWithin"
+msgstr "ST_DWithin"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1871
+#, no-c-format
+msgid ""
+"Returns true if the geometries are within the specified distance of one "
+"another. For geometry units are in those of spatial reference and For "
+"geography units are in meters and measurement is defaulted to "
+"use_spheroid=true (measure around spheroid), for faster check, "
+"use_spheroid=false to measure along sphere."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1877
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>distance_meters</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>gg1</parameter></paramdef> "
+"<paramdef><type>geography </type> <parameter>gg2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_meters</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>distance_meters</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>gg1</parameter></paramdef> "
+"<paramdef><type>geography </type> <parameter>gg2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_meters</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:1922
+#, no-c-format
+msgid ""
+"Returns true if the geometries are within the specified distance of one "
+"another."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1924
+#, no-c-format
+msgid ""
+"For Geometries: The distance is specified in units defined by the spatial "
+"reference system of the geometries. For this function to make sense, the "
+"source geometries must both be of the same coordinate projection, having the "
+"same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1929
+#, no-c-format
+msgid ""
+"For geography units are in meters and measurement is defaulted to "
+"use_spheroid=true (measure around WGS 84 spheroid), for faster check, "
+"use_spheroid=false to measure along sphere."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1939
+#, no-c-format
+msgid ""
+"Prior to 1.3, ST_Expand was commonly used in conjunction with && and "
+"ST_Distance to achieve the same effect and in pre-1.3.4 this function was "
+"basically short-hand for that construct. From 1.3.4, ST_DWithin uses a more "
+"short-circuit distance function which should make it more efficient than "
+"prior versions for larger buffer regions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1945
+#, no-c-format
+msgid "Use ST_3DDWithin if you have 3D geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1948
+#, no-c-format
+msgid "Availability: 1.5.0 support for geography was introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1950
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1955
+#, no-c-format
+msgid ""
+"--Find the nearest hospital to each school\n"
+"--that is within 3000 units of the school.\n"
+"-- We do an ST_DWithin search to utilize indexes to limit our search list\n"
+"-- that the non-indexable ST_Distance needs to process\n"
+"--If the units of the spatial reference is meters then units would be "
+"meters\n"
+"SELECT DISTINCT ON (s.gid) s.gid, s.school_name, s.the_geom, h."
+"hospital_name\n"
+"        FROM schools s\n"
+"                LEFT JOIN hospitals h ON ST_DWithin(s.the_geom, h.the_geom, "
+"3000)\n"
+"        ORDER BY s.gid, ST_Distance(s.the_geom, h.the_geom);\n"
+"\n"
+"--The schools with no close hospitals\n"
+"--Find all schools with no hospital within 3000 units\n"
+"--away from the school.  Units is in units of spatial ref (e.g. meters, "
+"feet, degrees)\n"
+"SELECT s.gid, s.school_name\n"
+"        FROM schools s\n"
+"                LEFT JOIN hospitals h ON ST_DWithin(s.the_geom, h.the_geom, "
+"3000)\n"
+"        WHERE h.gid IS NULL;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1961
+#, no-c-format
+msgid ", <xref linkend=\"ST_Expand\"/>"
+msgstr ", <xref linkend=\"ST_Expand\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:1967
+#, no-c-format
+msgid "ST_Equals"
+msgstr "ST_Equals"
+
+#. Tag: refpurpose
+#: reference_measure.xml:1969
+#, no-c-format
+msgid ""
+"Returns true if the given geometries represent the same geometry. "
+"Directionality is ignored."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1975
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Equals</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_Equals</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:1986
+#, no-c-format
+msgid ""
+"Returns TRUE if the given Geometries are \"spatially equal\". Use this for a "
+"'better' answer than '='. Note by spatially equal we mean ST_Within(A,B) = "
+"true and ST_Within(B,A) = true and also mean ordering of points can be "
+"different but represent the same geometry structure. To verify the order of "
+"points is consistent, use ST_OrderingEquals (it must be noted "
+"ST_OrderingEquals is a little more stringent than simply verifying order of "
+"points are the same)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1995
+#, no-c-format
+msgid ""
+"This function will return false if either geometry is invalid even if they "
+"are binary equal."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1998
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1999
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.24"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2005
+#, no-c-format
+msgid ""
+"SELECT ST_Equals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_equals\n"
+"-----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Equals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 10)')),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_equals\n"
+"-----------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2011
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Reverse\"/>, "
+"<xref linkend=\"ST_Within\"/>"
+msgstr ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Reverse\"/>, "
+"<xref linkend=\"ST_Within\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2018
+#, no-c-format
+msgid "ST_HasArc"
+msgstr "ST_HasArc"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2020
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if a geometry or geometry collection contains a "
+"circular string</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2025
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_HasArc</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_HasArc</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2035
+#, no-c-format
+msgid ""
+"<para>Returns true if a geometry or geometry collection contains a circular "
+"string</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2037
+#, no-c-format
+msgid "Availability: 1.2.3?"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2046
+#, no-c-format
+msgid ""
+"SELECT ST_HasArc(ST_Collect('LINESTRING(1 2, 3 4, 5 6)', 'CIRCULARSTRING(1 "
+"1, 2 3, 4 5, 6 7, 5 6)'));\n"
+"                st_hasarc\n"
+"                --------\n"
+"                t"
+msgstr ""
+"SELECT ST_HasArc(ST_Collect('LINESTRING(1 2, 3 4, 5 6)', 'CIRCULARSTRING(1 "
+"1, 2 3, 4 5, 6 7, 5 6)'));\n"
+"                st_hasarc\n"
+"                --------\n"
+"                t"
+
+#. Tag: para
+#: reference_measure.xml:2053
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineToCurve\"/>"
+msgstr ", <xref linkend=\"ST_LineToCurve\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2059
+#, no-c-format
+msgid "<refname>ST_Intersects</refname>"
+msgstr "<refname>ST_Intersects</refname>"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2061
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries/Geography \"spatially intersect in 2D\" - "
+"(share any portion of space) and FALSE if they don't (they are Disjoint). "
+"For geography -- tolerance is 0.00001 meters (so any points that close are "
+"considered to intersect)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2067
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:2094
+#, no-c-format
+msgid ""
+"If a geometry or geography shares any portion of space then they intersect. "
+"For geography -- tolerance is 0.00001 meters (so any points that are close "
+"are considered to intersect)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2101
+#, no-c-format
+msgid ""
+"Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument for "
+"geometry version. The geography version supports GEOMETRYCOLLECTION since "
+"its a thin wrapper around distance implementation."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2105
+#, no-c-format
+msgid "Performed by the GEOS module (for geometry), geography is native"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2106
+#, no-c-format
+msgid "Availability: 1.5 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2113
+#, no-c-format
+msgid ""
+"For geography, this function has a distance tolerance of about 0.00001 "
+"meters and uses the sphere rather than spheroid calculation."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2120
+#, no-c-format
+msgid ""
+"&sfs_compliant; s2.1.1.2 //s2.1.13.3 - ST_Intersects(g1, g2 ) --> Not "
+"(ST_Disjoint(g1, g2 ))"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2123
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.27"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2128
+#, no-c-format
+msgid ""
+"SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
+"geometry);\n"
+" st_intersects\n"
+"---------------\n"
+" f\n"
+"(1 row)\n"
+"SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::"
+"geometry);\n"
+" st_intersects\n"
+"---------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2132
+#, no-c-format
+msgid ""
+"SELECT ST_Intersects(\n"
+"                ST_GeographyFromText('SRID=4326;LINESTRING(-43.23456 "
+"72.4567,-43.23456 72.4568)'),\n"
+"                ST_GeographyFromText('SRID=4326;POINT(-43.23456 "
+"72.4567772)')\n"
+"                );\n"
+"\n"
+" st_intersects\n"
+"---------------\n"
+"t"
+msgstr ""
+"SELECT ST_Intersects(\n"
+"                ST_GeographyFromText('SRID=4326;LINESTRING(-43.23456 "
+"72.4567,-43.23456 72.4568)'),\n"
+"                ST_GeographyFromText('SRID=4326;POINT(-43.23456 "
+"72.4567772)')\n"
+"                );\n"
+"\n"
+" st_intersects\n"
+"---------------\n"
+"t"
+
+#. Tag: para
+#: reference_measure.xml:2136
+#, no-c-format
+msgid ", <xref linkend=\"ST_Disjoint\"/>"
+msgstr ", <xref linkend=\"ST_Disjoint\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2141
+#, no-c-format
+msgid "ST_Length"
+msgstr "ST_Length"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2143
+#, no-c-format
+msgid ""
+"Returns the 2d length of the geometry if it is a linestring or "
+"multilinestring. geometry are in units of spatial reference and geography "
+"are in meters (default spheroid)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2146
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Length</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>a_2dlinestring</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Length</function></funcdef> <paramdef><type>geography </"
+"type><parameter>geog</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type><parameter>use_spheroid=true</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float <function>ST_Length</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>a_2dlinestring</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Length</function></funcdef> <paramdef><type>geography </"
+"type><parameter>geog</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type><parameter>use_spheroid=true</parameter></paramdef> "
+"</funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:2161
+#, no-c-format
+msgid ""
+"For geometry: Returns the cartesian 2D length of the geometry if it is a "
+"linestring, multilinestring, ST_Curve, ST_MultiCurve. 0 is returned for "
+"areal geometries. For areal geometries use ST_Perimeter. Geometry: "
+"Measurements are in the units of the spatial reference system of the "
+"geometry. Geography: Units are in meters and also acts as a Perimeter "
+"function for areal geogs."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2165
+#, no-c-format
+msgid ""
+"Currently for geometry this is an alias for ST_Length2D, but this may change "
+"to support higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2166
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Breaking change -- in prior versions applying this to a MULTI/"
+"POLYGON of type geography would give you the perimeter of the POLYGON/"
+"MULTIPOLYGON. In 2.0.0 this was changed to return 0 to be in line with "
+"geometry behavior. Please use ST_Perimeter if you want the perimeter of a "
+"polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2168
+#, no-c-format
+msgid ""
+"For geography measurement defaults spheroid measurement. To use the faster "
+"less accurate sphere use ST_Length(gg,false);"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2169 reference_measure.xml:2674
+#, no-c-format
+msgid "&sfs_compliant; s2.1.5.1"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2170
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.2, 9.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2171
+#, no-c-format
+msgid "Availability: 1.5.0 geography support was introduced in 1.5."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2177
+#, no-c-format
+msgid ""
+"Return length in feet for line string. Note this is in feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2179
+#, no-c-format
+msgid ""
+"SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 "
+"2967450,743265 2967450,\n"
+"743265.625 2967416,743238 2967416)',2249));\n"
+"st_length\n"
+"---------\n"
+" 122.630744000095\n"
+"\n"
+"\n"
+"--Transforming WGS 84 linestring to Massachusetts state plane meters\n"
+"SELECT ST_Length(\n"
+"        ST_Transform(\n"
+"                ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45, "
+"-72.1240 42.45666, -72.123 42.1546)'),\n"
+"                26986\n"
+"        )\n"
+");\n"
+"st_length\n"
+"---------\n"
+"34309.4563576191"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2183
+#, no-c-format
+msgid "Return length of WGS 84 geography line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2184
+#, no-c-format
+msgid ""
+"-- default calculation is using a sphere rather than spheroid\n"
+"SELECT ST_Length(the_geog) As length_spheroid,  ST_Length(the_geog,false) As "
+"length_sphere\n"
+"FROM (SELECT ST_GeographyFromText(\n"
+"'SRID=4326;LINESTRING(-72.1260 42.45, -72.1240 42.45666, -72.123 42.1546)') "
+"As the_geog)\n"
+" As foo;\n"
+" length_spheroid  |  length_sphere\n"
+"------------------+------------------\n"
+" 34310.5703627305 | 34346.2060960742\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2188
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Length_Spheroid\"/"
+">, <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Length_Spheroid\"/"
+">, <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2194
+#, no-c-format
+msgid "ST_Length2D"
+msgstr "ST_Length2D"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2196
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring. This is an alias for <varname>ST_Length</"
+"varname></refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2202
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_2dlinestring</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_Length2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_2dlinestring</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2212
+#, no-c-format
+msgid ""
+"<para>Returns the 2-dimensional length of the geometry if it is a linestring "
+"or multi-linestring. This is an alias for <varname>ST_Length</varname></para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2221
+#, no-c-format
+msgid ", <xref linkend=\"ST_3DLength\"/>"
+msgstr ", <xref linkend=\"ST_3DLength\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2227
+#, no-c-format
+msgid "ST_3DLength"
+msgstr "ST_3DLength"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2229
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2235
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DLength</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_3dlinestring</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_3DLength</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_3dlinestring</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2245
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring. For 2-d lines it will just return the 2-d "
+"length (same as ST_Length and ST_Length2D)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2248
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Length3D"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2255
+#, no-c-format
+msgid ""
+"Return length in feet for a 3D cable. Note this is in feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2257
+#, no-c-format
+msgid ""
+"SELECT ST_3DLength(ST_GeomFromText('LINESTRING(743238 2967416 1,743238 "
+"2967450 1,743265 2967450 3,\n"
+"743265.625 2967416 3,743238 2967416 3)',2249));\n"
+"ST_3DLength\n"
+"-----------\n"
+"122.704716741457"
+msgstr ""
+"SELECT ST_3DLength(ST_GeomFromText('LINESTRING(743238 2967416 1,743238 "
+"2967450 1,743265 2967450 3,\n"
+"743265.625 2967416 3,743238 2967416 3)',2249));\n"
+"ST_3DLength\n"
+"-----------\n"
+"122.704716741457"
+
+#. Tag: para
+#: reference_measure.xml:2264
+#, no-c-format
+msgid ", <xref linkend=\"ST_Length2D\"/>"
+msgstr ", <xref linkend=\"ST_Length2D\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2270
+#, no-c-format
+msgid "ST_Length_Spheroid"
+msgstr "ST_Length_Spheroid"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2272
+#, no-c-format
+msgid ""
+"Calculates the 2D or 3D length of a linestring/multilinestring on an "
+"ellipsoid. This is useful if the coordinates of the geometry are in "
+"longitude/latitude and a length is desired without reprojection."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2279
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_Length_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2290
+#, no-c-format
+msgid ""
+"Calculates the length of a geometry on an ellipsoid. This is useful if the "
+"coordinates of the geometry are in longitude/latitude and a length is "
+"desired without reprojection. The ellipsoid is a separate database type and "
+"can be constructed as follows:"
+msgstr ""
+
+#. Tag: literallayout
+#: reference_measure.xml:2296 reference_measure.xml:2348
+#, no-c-format
+msgid ""
+"SPHEROID[<NAME>,<SEMI-MAJOR\n"
+"                  AXIS>,<INVERSE FLATTENING>]"
+msgstr ""
+
+#. Tag: literallayout
+#: reference_measure.xml:2299 reference_measure.xml:2351
+#, no-c-format
+msgid "SPHEROID[\"GRS_1980\",6378137,298.257222101]"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2300 reference_measure.xml:2352
+#, no-c-format
+msgid "Will return 0 for anything that is not a MULTILINESTRING or LINESTRING"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2309
+#, no-c-format
+msgid ""
+"SELECT ST_Length_Spheroid( geometry_column,\n"
+"                          'SPHEROID[\"GRS_1980\",6378137,298.257222101]' )\n"
+"                          FROM geometry_table;\n"
+"\n"
+"SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
+"        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646\n"
+"\n"
+" --3D\n"
+"SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
+"        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"\n"
+"         tot_len      |    len_line1    |    len_line2\n"
+"------------------+-----------------+------------------\n"
+" 85204.5259107402 | 13986.876097711 | 71217.6498130292"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2316
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_3DLength_Spheroid\"/>"
+msgstr ""
+", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_3DLength_Spheroid\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2322
+#, no-c-format
+msgid "ST_Length2D_Spheroid"
+msgstr "ST_Length2D_Spheroid"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2324
+#, no-c-format
+msgid ""
+"Calculates the 2D length of a linestring/multilinestring on an ellipsoid. "
+"This is useful if the coordinates of the geometry are in longitude/latitude "
+"and a length is desired without reprojection."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2331
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length2D_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_Length2D_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2342
+#, no-c-format
+msgid ""
+"Calculates the 2D length of a geometry on an ellipsoid. This is useful if "
+"the coordinates of the geometry are in longitude/latitude and a length is "
+"desired without reprojection. The ellipsoid is a separate database type and "
+"can be constructed as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2353
+#, no-c-format
+msgid ""
+"This is much like <xref linkend=\"ST_Length_Spheroid\"/> and <xref linkend="
+"\"ST_3DLength_Spheroid\"/> except it will throw away the Z coordinate in "
+"calculations."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2361
+#, no-c-format
+msgid ""
+"SELECT ST_Length2D_Spheroid( geometry_column,\n"
+"                          'SPHEROID[\"GRS_1980\",6378137,298.257222101]' )\n"
+"                          FROM geometry_table;\n"
+"\n"
+"SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
+"        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646\n"
+"\n"
+" --3D Observe same answer\n"
+"SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
+"        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2368
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length_Spheroid\"/>, <xref linkend="
+"\"ST_3DLength_Spheroid\"/>"
+msgstr ""
+", <xref linkend=\"ST_Length_Spheroid\"/>, <xref linkend="
+"\"ST_3DLength_Spheroid\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2374
+#, no-c-format
+msgid "ST_3DLength_Spheroid"
+msgstr "ST_3DLength_Spheroid"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2376
+#, no-c-format
+msgid ""
+"<refpurpose>Calculates the length of a geometry on an ellipsoid, taking the "
+"elevation into account. This is just an alias for ST_Length_Spheroid.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2382
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DLength_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_3DLength_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2393
+#, no-c-format
+msgid ""
+"<para>Calculates the length of a geometry on an ellipsoid, taking the "
+"elevation into account. This is just an alias for ST_Length_Spheroid.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2397
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this used to return 0 for anything that is "
+"not a MULTILINESTRING or LINESTRING and in 2.0.0 on returns the perimeter of "
+"if given a polgon."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2398
+#, no-c-format
+msgid "This function is just an alias for ST_Length_Spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2400
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this used to be called ST_Length3d_Spheroid"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2407
+#, no-c-format
+msgid "See ST_Length_Spheroid"
+msgstr "Voir ST_Length_Spheroid"
+
+#. Tag: para
+#: reference_measure.xml:2414
+#, no-c-format
+msgid ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_Length_Spheroid\"/>"
+msgstr ""
+", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_Length_Spheroid\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2420
+#, no-c-format
+msgid "ST_LongestLine"
+msgstr "ST_LongestLine"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2422
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional longest line points of two geometries. The "
+"function will only return the first longest line if more than one, that the "
+"function finds. The line returned will always start in g1 and end in g2. The "
+"length of the line this function returns will always be the same as "
+"st_maxdistance returns for g1 and g2."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2430
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2445
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional longest line between the points of two geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2463
+#, no-c-format
+msgid "Longest line between point and line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2466
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine('POINT(100 100)'::geometry, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry)\n"
+"        ) As lline;\n"
+"\n"
+"        \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(100 100,98 190)"
+msgstr ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine('POINT(100 100)'::geometry, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry)\n"
+"        ) As lline;\n"
+"\n"
+"        \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(100 100,98 190)"
+
+#. Tag: para
+#: reference_measure.xml:2474
+#, no-c-format
+msgid "longest line between polygon and polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2477
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine(\n"
+"                ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ) \n"
+"        ) As llinewkt;\n"
+"                \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(20 40,121.111404660392 186.629392246051)"
+msgstr ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine(\n"
+"                ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ) \n"
+"        ) As llinewkt;\n"
+"                \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(20 40,121.111404660392 186.629392246051)"
+
+#. Tag: para
+#: reference_measure.xml:2493
+#, no-c-format
+msgid ""
+"longest straight distance to travel from one part of an elegant city to the "
+"other Note the max distance = to the length of the line."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2497
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LongestLine(c.the_geom, c.the_geom)) As llinewkt, \n"
+"        ST_MaxDistance(c.the_geom,c.the_geom) As max_dist, \n"
+"        ST_Length(ST_LongestLine(c.the_geom, c.the_geom)) As lenll \n"
+"FROM (SELECT ST_BuildArea(ST_Collect(the_geom)) As the_geom\n"
+"        FROM (SELECT ST_Translate(ST_SnapToGrid(ST_Buffer(ST_Point(50 ,"
+"generate_series(50,190, 50) \n"
+"                        ),40, 'quad_segs=2'),1), x, 0)  As the_geom \n"
+"                        FROM generate_series(1,100,50) As x)  AS foo\n"
+") As c;\n"
+"                \n"
+"          llinewkt          |     max_dist     |      lenll\n"
+"---------------------------+------------------+------------------\n"
+" LINESTRING(23 22,129 178) | 188.605408193933 | 188.605408193933"
+msgstr ""
+"SELECT ST_AsText(ST_LongestLine(c.the_geom, c.the_geom)) As llinewkt, \n"
+"        ST_MaxDistance(c.the_geom,c.the_geom) As max_dist, \n"
+"        ST_Length(ST_LongestLine(c.the_geom, c.the_geom)) As lenll \n"
+"FROM (SELECT ST_BuildArea(ST_Collect(the_geom)) As the_geom\n"
+"        FROM (SELECT ST_Translate(ST_SnapToGrid(ST_Buffer(ST_Point(50 ,"
+"generate_series(50,190, 50) \n"
+"                        ),40, 'quad_segs=2'),1), x, 0)  As the_geom \n"
+"                        FROM generate_series(1,100,50) As x)  AS foo\n"
+") As c;\n"
+"                \n"
+"          llinewkt          |     max_dist     |      lenll\n"
+"---------------------------+------------------+------------------\n"
+" LINESTRING(23 22,129 178) | 188.605408193933 | 188.605408193933"
+
+#. Tag: para
+#: reference_measure.xml:2508
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_LongestLine\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2514
+#, no-c-format
+msgid "ST_OrderingEquals"
+msgstr "ST_OrderingEquals"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2516
+#, no-c-format
+msgid ""
+"Returns true if the given geometries represent the same geometry and points "
+"are in the same directional order."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2522
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_OrderingEquals</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2533
+#, no-c-format
+msgid ""
+"ST_OrderingEquals compares two geometries and returns t (TRUE) if the "
+"geometries are equal and the coordinates are in the same order; otherwise it "
+"returns f (FALSE)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2538
+#, no-c-format
+msgid ""
+"This function is implemented as per the ArcSDE SQL specification rather than "
+"SQL-MM. http://edndoc.esri.com/arcsde/9.1/sql_api/sqlapi3."
+"htm#ST_OrderingEquals"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2542
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.43"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2548
+#, no-c-format
+msgid ""
+"SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 0 0, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_OrderingEquals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 "
+"10)')),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 0 0, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2552
+#, no-c-format
+msgid ", <xref linkend=\"ST_Reverse\"/>"
+msgstr ", <xref linkend=\"ST_Reverse\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2558
+#, no-c-format
+msgid "ST_Overlaps"
+msgstr "ST_Overlaps"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2560
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries share space, are of the same dimension, but "
+"are not completely contained by each other."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2565
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2576
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries \"spatially overlap\". By that we mean they "
+"intersect, but one does not completely contain another."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2581 reference_measure.xml:2914
+#: reference_measure.xml:2928
+#, no-c-format
+msgid "Do not call with a GeometryCollection as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2583
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Overlaps."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2591 reference_measure.xml:2934
+#: reference_measure.xml:3139
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2592
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.32"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2608
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2632
+#, no-c-format
+msgid ""
+"--a point on a line is contained by the line and is of a lower dimension, "
+"and therefore does not overlap the line\n"
+"                        nor crosses\n"
+"\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b,\n"
+"        ST_Crosses(a,b) As a_crosses_b,\n"
+"                ST_Intersects(a, b) As a_intersects_b, ST_Contains(b,a) As "
+"b_contains_a\n"
+"FROM (SELECT ST_GeomFromText('POINT(1 0.5)') As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"        As foo\n"
+"\n"
+"a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a\n"
+"------------+-------------+----------------+--------------\n"
+"f           | f           | t              | t\n"
+"\n"
+"--a line that is partly contained by circle, but not fully is defined as "
+"intersecting and crossing,\n"
+"-- but since of different dimension it does not overlap\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b,\n"
+"        ST_Intersects(a, b) As a_intersects_b,\n"
+"        ST_Contains(a,b) As a_contains_b\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"        As foo;\n"
+"\n"
+" a_overlap_b | a_crosses_b | a_intersects_b | a_contains_b\n"
+"-------------+-------------+----------------+--------------\n"
+" f           | t           | t              | f\n"
+"\n"
+" -- a 2-dimensional bent hot dog (aka buffered line string) that intersects "
+"a circle,\n"
+" --        but is not fully contained by the circle is defined as "
+"overlapping since they are of the same dimension,\n"
+"--        but it does not cross, because the intersection of the 2 is of the "
+"same dimension\n"
+"--        as the maximum dimension of the 2\n"
+"\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b, "
+"ST_Intersects(a, b) As a_intersects_b,\n"
+"ST_Contains(b,a) As b_contains_a,\n"
+"ST_Dimension(a) As dim_a, ST_Dimension(b) as dim_b, "
+"ST_Dimension(ST_Intersection(a,b)) As dima_intersection_b\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a,\n"
+"        ST_Buffer(ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)'),0.5)  As b)\n"
+"        As foo;\n"
+"\n"
+" a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a | dim_a | dim_b | "
+"dima_intersection_b\n"
+"-------------+-------------+----------------+--------------+-------+-------"
+"+---------------------\n"
+" t           | f           | t              | f            |     2 |     2 "
+"|              2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2640
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Crosses\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Intersects\"/>"
+msgstr ""
+", <xref linkend=\"ST_Crosses\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Intersects\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2645
+#, no-c-format
+msgid "ST_Perimeter"
+msgstr "ST_Perimeter"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2647
+#, no-c-format
+msgid ""
+"Return the length measurement of the boundary of an ST_Surface or "
+"ST_MultiSurface geometry or geography. (Polygon, Multipolygon). geometry "
+"measurement is in units of spatial reference and geography is in meters."
+msgstr ""
+"Retourne la mesure de la longueur du bord d'un object ST_Surface, "
+"ST_MultiSurface, geometry ou geography (Polygon, Multipolygon). La mesure de "
+"géométrie (type geometry) est faite dans les unités du système de "
+"projection, et pour les objets geography en mètres."
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2651
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Perimeter</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Perimeter</"
+"function></funcdef> <paramdef><type>geography </type><parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float <function>ST_Area</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Area</function></"
+"funcdef> <paramdef><type>geography </type><parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_measure.xml:2667
+#, no-c-format
+msgid ""
+"Returns the 2D perimeter of the geometry/geography if it is a ST_Surface, "
+"ST_MultiSurface (Polygon, Multipolygon). 0 is returned for non-areal "
+"geometries. For linestrings use ST_Length. Measurements for geometry are in "
+"the units of the spatial reference system of the geometry. Measurements for "
+"geography are in meters. If <varname>use_spheroid</varname> is set to false, "
+"then will model earth as a sphere instead of a spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2672
+#, no-c-format
+msgid ""
+"Currently this is an alias for ST_Perimeter2D, but this may change to "
+"support higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2675
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.3, 9.5.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2676
+#, no-c-format
+msgid "Availability 2.0.0: Support for geography was introduced"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2680
+#, no-c-format
+msgid "Examples: Geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2681
+#, no-c-format
+msgid ""
+"Return perimeter in feet for polygon and multipolygon. Note this is in feet "
+"because 2249 is Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2683
+#, no-c-format
+msgid ""
+"SELECT ST_Perimeter(ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,\n"
+"743265.625 2967416,743238 2967416))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 122.630744000095\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((763104.471273676 "
+"2949418.44119003,\n"
+"763104.477769673 2949418.42538203,\n"
+"763104.189609677 2949418.22343004,763104.471273676 2949418.44119003)),\n"
+"((763104.471273676 2949418.44119003,763095.804579742 2949436.33850239,\n"
+"763086.132105649 2949451.46730207,763078.452329651 2949462.11549407,\n"
+"763075.354136904 2949466.17407812,763064.362142565 2949477.64291974,\n"
+"763059.953961626 2949481.28983009,762994.637609571 2949532.04103014,\n"
+"762990.568508415 2949535.06640477,762986.710889563 2949539.61421415,\n"
+"763117.237897679 2949709.50493431,763235.236617789 2949617.95619822,\n"
+"763287.718121842 2949562.20592617,763111.553321674 2949423.91664605,\n"
+"763104.471273676 2949418.44119003)))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 845.227713366825\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_Perimeter(ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,\n"
+"743265.625 2967416,743238 2967416))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 122.630744000095\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((763104.471273676 "
+"2949418.44119003,\n"
+"763104.477769673 2949418.42538203,\n"
+"763104.189609677 2949418.22343004,763104.471273676 2949418.44119003)),\n"
+"((763104.471273676 2949418.44119003,763095.804579742 2949436.33850239,\n"
+"763086.132105649 2949451.46730207,763078.452329651 2949462.11549407,\n"
+"763075.354136904 2949466.17407812,763064.362142565 2949477.64291974,\n"
+"763059.953961626 2949481.28983009,762994.637609571 2949532.04103014,\n"
+"762990.568508415 2949535.06640477,762986.710889563 2949539.61421415,\n"
+"763117.237897679 2949709.50493431,763235.236617789 2949617.95619822,\n"
+"763287.718121842 2949562.20592617,763111.553321674 2949423.91664605,\n"
+"763104.471273676 2949418.44119003)))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 845.227713366825\n"
+"(1 row)"
+
+#. Tag: title
+#: reference_measure.xml:2686
+#, no-c-format
+msgid "Examples: Geography"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2687
+#, no-c-format
+msgid ""
+"Return perimeter in meters and feet for polygon and multipolygon. Note this "
+"is geography (WGS 84 long lat)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2688
+#, no-c-format
+msgid ""
+"SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog)/0.3048 As "
+"per_ft \n"
+"FROM ST_GeogFromText('POLYGON((-71.1776848522251 "
+"42.3902896512902,-71.1776843766326 42.3903829478009,\n"
+"-71.1775844305465 42.3903826677917,-71.1775825927231 "
+"42.3902893647987,-71.1776848522251 42.3902896512902))') As geog;\n"
+"\n"
+"   per_meters    |      per_ft\n"
+"-----------------+------------------\n"
+"37.3790462565251 | 122.634666195949\n"
+"\n"
+"\n"
+"-- Multipolygon example --\n"
+"SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog,false) As "
+"per_sphere_meters,  ST_Perimeter(geog)/0.3048 As per_ft \n"
+"FROM ST_GeogFromText('MULTIPOLYGON(((-71.1044543107478 "
+"42.340674480411,-71.1044542869917 42.3406744369506,\n"
+"-71.1044553562977 42.340673886454,-71.1044543107478 42.340674480411)),\n"
+"((-71.1044543107478 42.340674480411,-71.1044860600303 "
+"42.3407237015564,-71.1045215770124 42.3407653385914,\n"
+"-71.1045498002983 42.3407946553165,-71.1045611902745 "
+"42.3408058316308,-71.1046016507427 42.340837442371,\n"
+"-71.104617893173 42.3408475056957,-71.1048586153981 "
+"42.3409875993595,-71.1048736143677 42.3409959528211,\n"
+"-71.1048878050242 42.3410084812078,-71.1044020965803 42.3414730072048,\n"
+"-71.1039672113619 42.3412202916693,-71.1037740497748 42.3410666421308,\n"
+"-71.1044280218456 42.3406894151355,-71.1044543107478 42.340674480411)))') As "
+"geog;\n"
+"\n"
+"    per_meters    | per_sphere_meters |      per_ft\n"
+"------------------+-------------------+------------------\n"
+" 257.634283683311 |  257.412311446337 | 845.256836231335"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2692
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_Length\"/>"
+msgstr ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_Length\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2698
+#, no-c-format
+msgid "ST_Perimeter2D"
+msgstr "ST_Perimeter2D"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2700
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon. This is currently an alias for ST_Perimeter."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2706
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Perimeter2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_Perimeter2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2716
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2721
+#, no-c-format
+msgid ""
+"This is currently an alias for ST_Perimeter. In future versions ST_Perimeter "
+"may return the highest dimension perimeter for a geometry. This is still "
+"under consideration"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2735
+#, no-c-format
+msgid "ST_3DPerimeter"
+msgstr "ST_3DPerimeter"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2737
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2743
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DPerimeter</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_3DPerimeter</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2753
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon. If the geometry is 2-dimensional, then the 2-dimensional "
+"perimeter is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2756
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Perimeter3D"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2762
+#, no-c-format
+msgid ""
+"Perimeter of a slightly elevated polygon in the air in Massachusetts state "
+"plane feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2763
+#, no-c-format
+msgid ""
+"SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), "
+"ST_Perimeter(the_geom) FROM\n"
+"                        (SELECT ST_GeomFromEWKT('SRID=2249;POLYGON((743238 "
+"2967416 2,743238 2967450 1,\n"
+"743265.625 2967416 1,743238 2967416 2))') As the_geom) As foo;\n"
+"\n"
+"  ST_3DPerimeter  |  st_perimeter2d  |   st_perimeter\n"
+"------------------+------------------+------------------\n"
+" 105.465793597674 | 105.432997272188 | 105.432997272188"
+msgstr ""
+"SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), "
+"ST_Perimeter(the_geom) FROM\n"
+"                        (SELECT ST_GeomFromEWKT('SRID=2249;POLYGON((743238 "
+"2967416 2,743238 2967450 1,\n"
+"743265.625 2967416 1,743238 2967416 2))') As the_geom) As foo;\n"
+"\n"
+"  ST_3DPerimeter  |  st_perimeter2d  |   st_perimeter\n"
+"------------------+------------------+------------------\n"
+" 105.465793597674 | 105.432997272188 | 105.432997272188"
+
+#. Tag: para
+#: reference_measure.xml:2770
+#, no-c-format
+msgid ", <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Perimeter2D\"/>"
+msgstr ", <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Perimeter2D\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2776
+#, no-c-format
+msgid "ST_PointOnSurface"
+msgstr "ST_PointOnSurface"
+
+#. Tag: refpurpose
+#: reference_measure.xml:2778
+#, no-c-format
+msgid "Returns a <varname>POINT</varname> guaranteed to lie on the surface."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2783
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PointOnSurface</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_PointOnSurface</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_measure.xml:2795
+#, no-c-format
+msgid "Returns a <varname>POINT</varname> guaranteed to intersect a surface."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2797
+#, no-c-format
+msgid "&sfs_compliant; s3.2.14.2 // s3.2.18.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2798
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3: 8.1.5, 9.5.6. According to the specs, "
+"ST_PointOnSurface works for surface geometries (POLYGONs, MULTIPOLYGONS, "
+"CURVED POLYGONS). So PostGIS seems to be extending what the spec allows "
+"here. Most databases Oracle,DB II, ESRI SDE seem to only support this "
+"function for surfaces. SQL Server 2008 like PostGIS supports for all common "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2807
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PointOnSurface('POINT(0 5)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_PointOnSurface('LINESTRING(0 5, 0 10)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_PointOnSurface('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'::"
+"geometry));\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(2.5 2.5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, "
+"0 10 2)')));\n"
+"   st_asewkt\n"
+"----------------\n"
+" POINT(0 0 1)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2813
+#, no-c-format
+msgid ", <xref linkend=\"ST_Point_Inside_Circle\"/>"
+msgstr ", <xref linkend=\"ST_Point_Inside_Circle\"/>"
+
+#. Tag: refname
+#: reference_measure.xml:2819
+#, no-c-format
+msgid "ST_Project"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2821
+#, no-c-format
+msgid ""
+"Returns a <varname>POINT</varname> projected from a start point using a "
+"distance in meters and bearing (azimuth) in radians."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2826
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_Project</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>distance</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>azimuth</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2842
+#, no-c-format
+msgid ""
+"Returns a <varname>POINT</varname> projected from a start point using an "
+"azimuth (bearing) measured in radians and distance measured in meters."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2843
+#, no-c-format
+msgid ""
+"Distance, azimuth and projection are all aspects of the same operation, "
+"describing (or in the case of projection, constructing) the relationship "
+"between two points on the world."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2844
+#, no-c-format
+msgid ""
+"The azimuth is sometimes called the heading or the bearing in navigation. It "
+"is measured relative to true north (azimuth zero). East is azimuth 90 "
+"(<varname>pi/2</varname>), south is azimuth 180 (<varname>pi</varname>), "
+"west is azimuth 270 (<varname>pi*1.5</varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2845
+#, no-c-format
+msgid "The distance is given in meters."
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2852
+#, no-c-format
+msgid ""
+"Example: Using degrees - projected point 100,000 meters and bearing 45 "
+"degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2854
+#, fuzzy, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, "
+"radians(45.0)));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 "
+"1, 0 3, 1 1, 2 0, 6 0, 7 8, 9 8, 10 6 )'));\n"
+"                                st_astext\n"
+"------------------------------------------\n"
+" POINT(2.30769230769231 3.30769230769231)\n"
+"(1 row)"
+
+#. Tag: title
+#: reference_measure.xml:2858
+#, no-c-format
+msgid ""
+"Example: Using radians - projected point 100,000 meters and bearing pi/4 (45 "
+"degrees)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2860
+#, fuzzy, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, pi()/4));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 "
+"1, 0 3, 1 1, 2 0, 6 0, 7 8, 9 8, 10 6 )'));\n"
+"                                st_astext\n"
+"------------------------------------------\n"
+" POINT(2.30769230769231 3.30769230769231)\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_measure.xml:2866
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <ulink url=\"http://www.postgresql.org/"
+"docs/current/interactive/functions-math.html\">PostgreSQL Math Functions</"
+"ulink>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2872
+#, no-c-format
+msgid "ST_Relate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2874
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is spatially related to anotherGeometry, by "
+"testing for intersections between the Interior, Boundary and Exterior of the "
+"two geometries as specified by the values in the intersectionMatrixPattern. "
+"If no intersectionMatrixPattern is passed in, then returns the maximum "
+"intersectionMatrixPattern that relates the 2 geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2882
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Relate</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>intersectionMatrixPattern</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_Relate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geomB</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>text <function>ST_Relate</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>BoundaryNodeRule</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2908
+#, no-c-format
+msgid ""
+"Version 1: Takes geomA, geomB, intersectionMatrix and Returns 1 (TRUE) if "
+"this Geometry is spatially related to anotherGeometry, by testing for "
+"intersections between the Interior, Boundary and Exterior of the two "
+"geometries as specified by the values in the <ulink url=\"http://en."
+"wikipedia.org/wiki/DE-9IM\">DE-9IM matrix pattern</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2913
+#, no-c-format
+msgid ""
+"This is especially useful for testing compound checks of intersection, "
+"crosses, etc in one step."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2916
+#, no-c-format
+msgid ""
+"This is the \"allowable\" version that returns a boolean, not an integer. "
+"This is defined in OGC spec"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2919
+#, no-c-format
+msgid ""
+"This DOES NOT automagically include an index call. The reason for that is "
+"some relationships are anti e.g. Disjoint. If you are using a relationship "
+"pattern that requires intersection, then include the && index call."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2924
+#, no-c-format
+msgid ""
+"Version 2: Takes geomA and geomB and returns the <xref linkend=\"DE-9IM\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2926
+#, no-c-format
+msgid ""
+"Version 3: same as version 2 bu allows to specify a boundary node rule (1:"
+"OGC/MOD2, 2:Endpoint, 3:MultivalentEndpoint, 4:MonovalentEndpoint)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2930
+#, no-c-format
+msgid "not in OGC spec, but implied. see s2.1.13.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2935
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2936
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 - added support for specifying boundary node rule (requires "
+"GEOS >= 3.0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2943
+#, no-c-format
+msgid ""
+"--Find all compounds that intersect and not touch a poly (interior "
+"intersects)\n"
+"SELECT l.* , b.name As poly_name\n"
+"        FROM polys As b\n"
+"INNER JOIN compounds As l\n"
+"ON (p.the_geom && b.the_geom\n"
+"AND ST_Relate(l.the_geom, b.the_geom,'T********'));\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2));\n"
+"st_relate\n"
+"-----------\n"
+"0FFFFF212\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('LINESTRING(1 2, 3 4)'), "
+"ST_GeometryFromText('LINESTRING(5 6, 7 8)'));\n"
+"st_relate\n"
+"-----------\n"
+"FF1FF0102\n"
+"\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '0FFFFF212');\n"
+"st_relate\n"
+"-----------\n"
+"t\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '*FF*FF212');\n"
+"st_relate\n"
+"-----------\n"
+"t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2950
+#, no-c-format
+msgid ""
+", <xref linkend=\"DE-9IM\"/>, <xref linkend=\"ST_Disjoint\"/>, <xref linkend="
+"\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2956
+#, no-c-format
+msgid "ST_RelateMatch"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2958
+#, no-c-format
+msgid ""
+"Returns true if intersectionMattrixPattern1 implies "
+"intersectionMatrixPattern2"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2963
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_RelateMatch</function></funcdef> "
+"<paramdef><type>text </type> <parameter>intersectionMatrix</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>intersectionMatrixPattern</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2974
+#, no-c-format
+msgid ""
+"Takes intersectionMatrix and intersectionMatrixPattern and Returns true if "
+"the intersectionMatrix satisfies the intersectionMatrixPattern. For more "
+"information refer to <xref linkend=\"DE-9IM\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2977
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2983
+#, no-c-format
+msgid ""
+"SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ;\n"
+"-- result --\n"
+"t\n"
+"--example of common intersection matrix patterns and example matrices\n"
+"-- comparing relationships of involving one invalid geometry and ( a line "
+"and polygon that intersect at interior and boundary)\n"
+"SELECT mat.name, pat.name, ST_RelateMatch(mat.val, pat.val) As satisfied\n"
+"    FROM \n"
+"        ( VALUES ('Equality', 'T1FF1FFF1'),\n"
+"                ('Overlaps', 'T*T***T**'),\n"
+"                ('Within', 'T*F**F***'),\n"
+"                ('Disjoint', 'FF*FF****') As pat(name,val)\n"
+"        CROSS JOIN \n"
+"            (        VALUES ('Self intersections (invalid)', '111111111'),\n"
+"                    ('IE2_BI1_BB0_BE1_EI1_EE2', 'FF2101102'),\n"
+"                    ('IB1_IE1_BB0_BE0_EI2_EI1_EE2', 'F11F00212')\n"
+"            ) As mat(name,val);"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2989
+#, no-c-format
+msgid ", <xref linkend=\"ST_Relate\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2995
+#, no-c-format
+msgid "ST_ShortestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2997
+#, no-c-format
+msgid "Returns the 2-dimensional shortest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3002
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ShortestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3017
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional shortest line between two geometries. The function "
+"will only return the first shortest line if more than one, that the function "
+"finds. If g1 and g2 intersects in just one point the function will return a "
+"line with both start and end in that intersection-point. If g1 and g2 are "
+"intersecting with more than one point the function will return a line with "
+"start and end in the same point but it can be any of the intersecting "
+"points. The line returned will always start in g1 and end in g2. The length "
+"of the line this function returns will always be the same as st_distance "
+"returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3041
+#, no-c-format
+msgid "Shortest line between point and linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3044
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_ShortestLine('POINT(100 100)'::geometry, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry)\n"
+"        ) As sline;\n"
+"\n"
+"        \n"
+"   sline\n"
+"-----------------\n"
+"LINESTRING(100 100,73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3052
+#, no-c-format
+msgid "shortest line between polygon and polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3055
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"                ST_ShortestLine(\n"
+"                        ST_GeomFromText('POLYGON((175 150, 20 40, 50 60, 125 "
+"100, 175 150))'),\n"
+"                        ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                        ) \n"
+"                ) As slinewkt;\n"
+"                \n"
+" LINESTRING(140.752120669087 125.695053378061,121.111404660392 "
+"153.370607753949)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3067
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
+"linkend=\"ST_MaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:3073
+#, no-c-format
+msgid "ST_Touches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:3075
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the geometries have at least one point in "
+"common, but their interiors do not intersect."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3081
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Touches</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3096
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the only points in common between "
+"<parameter>g1</parameter> and <parameter>g2</parameter> lie in the union of "
+"the boundaries of <parameter>g1</parameter> and <parameter>g2</parameter>. "
+"The <function>ST_Touches</function> relation applies to all Area/Area, Line/"
+"Line, Line/Area, Point/Area and Point/Line pairs of relationships, but "
+"<emphasis>not</emphasis> to the Point/Point pair."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3103
+#, no-c-format
+msgid "In mathematical terms, this predicate is expressed as:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3113
+#, no-c-format
+msgid "The allowable DE-9IM Intersection Matrices for the two geometries are:"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3117
+#, no-c-format
+msgid "FT*******"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3121
+#, no-c-format
+msgid "F**T*****"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3125
+#, no-c-format
+msgid "F***T****"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3134
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"using an index, use <function>_ST_Touches</function> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3140
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.28"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3146
+#, no-c-format
+msgid ""
+"The <function>ST_Touches</function> predicate returns <varname>TRUE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3216
+#, no-c-format
+msgid ""
+"SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(1 1)'::"
+"geometry);\n"
+" st_touches\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(0 2)'::"
+"geometry);\n"
+" st_touches\n"
+"------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:3222
+#, no-c-format
+msgid "ST_Within"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:3224
+#, no-c-format
+msgid "Returns true if the geometry A is completely inside geometry B"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3229
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Within</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3244
+#, no-c-format
+msgid ""
+"Returns TRUE if geometry A is completely inside geometry B. For this "
+"function to make sense, the source geometries must both be of the same "
+"coordinate projection, having the same SRID. It is a given that if "
+"ST_Within(A,B) is true and ST_Within(B,A) is true, then the two geometries "
+"are considered spatially equal."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3259
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Within."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3267
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - a.Relate(b, 'T*F**F***')"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3270
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.30"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3275
+#, no-c-format
+msgid ""
+"--a circle within a circle\n"
+"SELECT ST_Within(smallc,smallc) As smallinsmall,\n"
+"        ST_Within(smallc, bigc) As smallinbig,\n"
+"        ST_Within(bigc,smallc) As biginsmall,\n"
+"        ST_Within(ST_Union(smallc, bigc), bigc) as unioninbig,\n"
+"        ST_Within(bigc, ST_Union(smallc, bigc)) as biginunion,\n"
+"        ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion\n"
+"FROM\n"
+"(\n"
+"SELECT ST_Buffer(ST_GeomFromText('POINT(50 50)'), 20) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(50 50)'), 40) As bigc) As foo;\n"
+"--Result\n"
+" smallinsmall | smallinbig | biginsmall | unioninbig | biginunion | "
+"bigisunion\n"
+"--------------+------------+------------+------------+------------"
+"+------------\n"
+" t            | t          | f          | t          | t          | t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3286
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>, <xref linkend=\"ST_IsValid\"/>"
+msgstr ""
+
+#~ msgid ", <xref linkend=\"ST_Translate\"/>"
+#~ msgstr ", <xref linkend=\"ST_Translate\"/>"
+
+#~ msgid ", <xref linkend=\"ST_LongestLine\"/>"
+#~ msgstr ", <xref linkend=\"ST_LongestLine\"/>"
+
+#~ msgid ""
+#~ "<funcdef>float <function>ST_Perimeter</function></funcdef> "
+#~ "<paramdef><type>geometry </type><parameter>g1</parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>float <function>ST_Perimeter</function></funcdef> "
+#~ "<paramdef><type>geometry </type><parameter>g1</parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>float <function>ST_Perimeter</function></funcdef> "
+#~ "<paramdef><type>geography </type><parameter>geog</parameter></paramdef> "
+#~ "<paramdef choice=\"opt\"><type>boolean </"
+#~ "type><parameter>use_spheroid=true</parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>float <function>ST_Perimeter</function></funcdef> "
+#~ "<paramdef><type>geography </type><parameter>geog</parameter></paramdef> "
+#~ "<paramdef choice=\"opt\"><type>boolean </"
+#~ "type><parameter>use_spheroid=true</parameter></paramdef>"
diff --git a/doc/po/fr/reference_misc.xml.po b/doc/po/fr/reference_misc.xml.po
new file mode 100644
index 0000000..453d987
--- /dev/null
+++ b/doc/po/fr/reference_misc.xml.po
@@ -0,0 +1,913 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-03 19:55+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_misc.xml:3
+#, no-c-format
+msgid "Miscellaneous Functions"
+msgstr "Fonctions diverses"
+
+#. Tag: refname
+#: reference_misc.xml:7
+#, no-c-format
+msgid "ST_Accum"
+msgstr "ST_Accum"
+
+#. Tag: refpurpose
+#: reference_misc.xml:9
+#, no-c-format
+msgid "<refpurpose>Aggregate. Constructs an array of geometries.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry[] <function>ST_Accum</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:22 reference_misc.xml:64 reference_misc.xml:106
+#: reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:285
+#: reference_misc.xml:339 reference_misc.xml:392 reference_misc.xml:434
+#: reference_misc.xml:486
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_misc.xml:24
+#, no-c-format
+msgid "<para>Aggregate. Constructs an array of geometries.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:25 reference_misc.xml:68 reference_misc.xml:109
+#: reference_misc.xml:251 reference_misc.xml:305 reference_misc.xml:351
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:353
+#: reference_misc.xml:444
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_misc.xml:27 reference_misc.xml:69 reference_misc.xml:110
+#: reference_misc.xml:183 reference_misc.xml:354 reference_misc.xml:445
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: para
+#: reference_misc.xml:28 reference_misc.xml:70 reference_misc.xml:111
+#: reference_misc.xml:252 reference_misc.xml:306 reference_misc.xml:355
+#: reference_misc.xml:446
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:29 reference_misc.xml:71 reference_misc.xml:112
+#: reference_misc.xml:253 reference_misc.xml:307 reference_misc.xml:356
+#: reference_misc.xml:447
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:34 reference_misc.xml:76 reference_misc.xml:118
+#: reference_misc.xml:188 reference_misc.xml:258 reference_misc.xml:312
+#: reference_misc.xml:360 reference_misc.xml:404 reference_misc.xml:453
+#: reference_misc.xml:497
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:36
+#, no-c-format
+msgid ""
+"SELECT (ST_Accum(the_geom)) As all_em, ST_AsText((ST_Accum(the_geom))[1]) As "
+"grabone,\n"
+"(ST_Accum(the_geom))[2:4] as grab_rest\n"
+"                        FROM (SELECT ST_MakePoint(a*CAST(random()*10 As "
+"integer), a*CAST(random()*10 As integer), a*CAST(random()*10 As integer)) As "
+"the_geom\n"
+"                                FROM generate_series(1,4) a) As foo;\n"
+"\n"
+"all_em|grabone   | grab_rest\n"
+"\n"
+"-------------------------------------------------------------------------------"
+"+\n"
+"\n"
+" {0101000080000000000000144000000000000024400000000000001040:\n"
+" 0101000080000000000\n"
+"00018400000000000002C400000000000003040:\n"
+"0101000080000000000000354000000000000038400000000000001840:\n"
+"010100008000000000000040400000000000003C400000000000003040} |\n"
+" POINT(5 10) | {010100008000000000000018400000000000002C400000000000003040:\n"
+" 0101000080000000000000354000000000000038400000000000001840:\n"
+" 010100008000000000000040400000000000003C400000000000003040}\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:41 reference_misc.xml:83 reference_misc.xml:125
+#: reference_misc.xml:195 reference_misc.xml:264 reference_misc.xml:318
+#: reference_misc.xml:365 reference_misc.xml:411 reference_misc.xml:460
+#: reference_misc.xml:504
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:49
+#, no-c-format
+msgid "Box2D"
+msgstr "Box2D"
+
+#. Tag: refpurpose
+#: reference_misc.xml:51
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a BOX2D representing the maximum extents of the geometry."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:56
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>Box2D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>box2d <function>Box2D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_misc.xml:66
+#, no-c-format
+msgid ""
+"<para>Returns a BOX2D representing the maximum extents of the geometry.</"
+"para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:78
+#, no-c-format
+msgid ""
+"SELECT Box2D(ST_GeomFromText('LINESTRING(1 2, 3 4, 5 6)'));\n"
+"        box2d\n"
+"        ---------\n"
+"        BOX(1 2,5 6)\n"
+"\n"
+"        SELECT Box2D(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"150505,220227 150406)'));\n"
+"        box2d\n"
+"        --------\n"
+"        BOX(220186.984375 150406,220288.25 150506.140625)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:85
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:91
+#, no-c-format
+msgid "Box3D"
+msgstr "Box3D"
+
+#. Tag: refpurpose
+#: reference_misc.xml:93
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a BOX3D representing the maximum extents of the geometry."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:98
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_misc.xml:108
+#, no-c-format
+msgid ""
+"<para>Returns a BOX3D representing the maximum extents of the geometry.</"
+"para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:120
+#, no-c-format
+msgid ""
+"SELECT Box3D(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 5, 5 6 5)'));\n"
+"        Box3d\n"
+"        ---------\n"
+"        BOX3D(1 2 3,5 6 5)\n"
+"\n"
+"        SELECT Box3D(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 "
+"150505 1,220227 150406 1)'));\n"
+"        Box3d\n"
+"        --------\n"
+"        BOX3D(220227 150406 1,220268 150415 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:127
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ", <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_misc.xml:133
+#, no-c-format
+msgid "ST_EstimatedExtent"
+msgstr "ST_EstimatedExtent"
+
+#. Tag: refpurpose
+#: reference_misc.xml:135
+#, no-c-format
+msgid ""
+"<refpurpose>Return the 'estimated' extent of the given spatial table. The "
+"estimated is taken from the geometry column's statistics. The current schema "
+"will be used if not specified.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_misc.xml:141
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>box2d <function>ST_EstimatedExtent</function></"
+"funcdef> <paramdef><type>text </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>geocolumn_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_EstimatedExtent</function></funcdef> <paramdef><type>text </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>geocolumn_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>box2d <function>ST_EstimatedExtent</function></"
+"funcdef> <paramdef><type>text </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>geocolumn_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_EstimatedExtent</function></funcdef> <paramdef><type>text </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>geocolumn_name</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_misc.xml:160
+#, no-c-format
+msgid ""
+"<para>Return the 'estimated' extent of the given spatial table. The "
+"estimated is taken from the geometry column's statistics. The current schema "
+"will be used if not specified.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:164
+#, no-c-format
+msgid ""
+"For PostgreSQL>=8.0.0 statistics are gathered by VACUUM ANALYZE and "
+"resulting extent will be about 95% of the real one."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:169
+#, no-c-format
+msgid ""
+"In absence of statistics (empty table or no ANALYZE called) this function "
+"returns NULL. Prior to version 1.5.4 an exception was thrown instead."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:177
+#, no-c-format
+msgid ""
+"For PostgreSQL<8.0.0 statistics are gathered by update_geometry_stats() "
+"and resulting extent will be exact."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:180
+#, no-c-format
+msgid "Availability: 1.0.0"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:181
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Estimated_Extent."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:190
+#, no-c-format
+msgid ""
+"SELECT ST_EstimatedExtent('ny', 'edges', 'the_geom');\n"
+"--result--\n"
+"BOX(-8877653 4912316,-8010225.5 5589284)\n"
+"\n"
+"SELECT ST_EstimatedExtent('feature_poly', 'the_geom');\n"
+"--result--\n"
+"BOX(-124.659652709961 24.6830825805664,-67.7798080444336 49.0012092590332)"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:202
+#, no-c-format
+msgid "ST_Expand"
+msgstr "ST_Expand"
+
+#. Tag: refpurpose
+#: reference_misc.xml:203
+#, no-c-format
+msgid ""
+"Returns bounding box expanded in all directions from the bounding box of the "
+"input geometry. Uses double-precision"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_misc.xml:207
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Expand</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_Expand</function></funcdef> <paramdef><type>box2d </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>units_to_expand</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>box3d <function>ST_Expand</function></funcdef> "
+"<paramdef><type>box3d </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Expand</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_Expand</function></funcdef> <paramdef><type>box2d </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>units_to_expand</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>box3d <function>ST_Expand</function></funcdef> "
+"<paramdef><type>box3d </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_misc.xml:231
+#, no-c-format
+msgid ""
+"This function returns a bounding box expanded in all directions from the "
+"bounding box of the input geometry, by an amount specified in the second "
+"argument. Uses double-precision. Very useful for distance() queries, or "
+"bounding box queries to add an index filter to the query."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:235
+#, no-c-format
+msgid ""
+"There are 3 variants of this. The one that takes a geometry will return a "
+"POLYGON geometry representation of the bounding box and is the most commonly "
+"used variant."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:237
+#, no-c-format
+msgid ""
+"ST_Expand is similar in concept to ST_Buffer except while buffer expands the "
+"geometry in all directions, ST_Expand expands the bounding box an x,y,z unit "
+"amount."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:239
+#, no-c-format
+msgid ""
+"Units are in the units of the spatial reference system in use denoted by the "
+"SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:242
+#, no-c-format
+msgid ""
+"Pre 1.3, ST_Expand was used in conjunction with distance to do indexable "
+"queries. Something of the form <code>the_geom && ST_Expand('POINT(10 "
+"20)', 10) AND ST_Distance(the_geom, 'POINT(10 20)') < 10</code> Post 1.2, "
+"this was replaced with the easier ST_DWithin construct."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:248
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 behavior changed to output double precision instead of "
+"float4 coordinates."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:259
+#, no-c-format
+msgid ""
+"Examples below use US National Atlas Equal Area (SRID=2163) which is a meter "
+"projection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:260
+#, no-c-format
+msgid ""
+"<!-- TODO: fix results of documentation to reflect new behavior -->\n"
+"--10 meter expanded box around bbox of a linestring\n"
+"SELECT CAST(ST_Expand(ST_GeomFromText('LINESTRING(2312980 110676,2312923 "
+"110701,2312892 110714)', 2163),10) As box2d);\n"
+"                                         st_expand\n"
+"------------------------------------\n"
+" BOX(2312882 110666,2312990 110724)\n"
+"\n"
+"--10 meter expanded 3d box of a 3d box\n"
+"SELECT ST_Expand(CAST('BOX3D(778783 2951741 1,794875 2970042.61545891 10)' "
+"As box3d),10)\n"
+"                                                          st_expand\n"
+"-----------------------------------------------------\n"
+" BOX3D(778773 2951731 -9,794885 2970052.61545891 20)\n"
+"\n"
+" --10 meter geometry astext rep of a expand box around a point geometry\n"
+" SELECT ST_AsEWKT(ST_Expand(ST_GeomFromEWKT('SRID=2163;POINT(2312980 "
+"110676)'),10));\n"
+"                                                                                        st_asewkt\n"
+"-------------------------------------------------------------------------------------------------\n"
+" SRID=2163;POLYGON((2312970 110666,2312970 110686,2312990 110686,2312990 "
+"110666,2312970 110666))"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:265
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_misc.xml:271
+#, no-c-format
+msgid "ST_Extent"
+msgstr "ST_Extent"
+
+#. Tag: refpurpose
+#: reference_misc.xml:272
+#, no-c-format
+msgid ""
+"an aggregate function that returns the bounding box that bounds rows of "
+"geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:277
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Extent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>box2d <function>ST_Extent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_misc.xml:287
+#, no-c-format
+msgid ""
+"ST_Extent returns a bounding box that encloses a set of geometries. The "
+"ST_Extent function is an \"aggregate\" function in the terminology of SQL. "
+"That means that it operates on lists of data, in the same way the SUM() and "
+"AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:290 reference_misc.xml:344
+#, no-c-format
+msgid ""
+"Since it returns a bounding box, the spatial Units are in the units of the "
+"spatial reference system in use denoted by the SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:291
+#, no-c-format
+msgid ""
+"ST_Extent is similar in concept to Oracle Spatial/Locator's SDO_AGGR_MBR"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:293
+#, no-c-format
+msgid ""
+"Since ST_Extent returns a bounding box, the SRID meta-data is lost. Use "
+"ST_SetSRID to force it back into a geometry with SRID meta data. The "
+"coordinates are in the units of the spatial ref of the orginal geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:298
+#, no-c-format
+msgid ""
+"ST_Extent will return boxes with only an x and y component even with (x,y,z) "
+"coordinate geometries. To maintain x,y,z use ST_3DExtent instead."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:302
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:313
+#, no-c-format
+msgid "Examples below use Massachusetts State Plane ft (SRID=2249)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:314
+#, no-c-format
+msgid ""
+"SELECT ST_Extent(the_geom) as bextent FROM sometable;\n"
+"                                         st_bextent\n"
+"------------------------------------\n"
+"BOX(739651.875 2908247.25,794875.8125 2970042.75)\n"
+"\n"
+"\n"
+"--Return extent of each category of geometries\n"
+"SELECT ST_Extent(the_geom) as bextent\n"
+"FROM sometable\n"
+"GROUP BY category ORDER BY category;\n"
+"\n"
+"                                          bextent                       "
+"|         name\n"
+"----------------------------------------------------+----------------\n"
+" BOX(778783.5625 2951741.25,794875.8125 2970042.75) | A\n"
+" BOX(751315.8125 2919164.75,765202.6875 2935417.25) | B\n"
+" BOX(739651.875 2917394.75,756688.375 2935866)      | C\n"
+"\n"
+" --Force back into a geometry\n"
+" -- and render the extended text representation of that geometry\n"
+"SELECT ST_SetSRID(ST_Extent(the_geom),2249) as bextent FROM sometable;\n"
+"\n"
+"                                bextent\n"
+"--------------------------------------------------------------------------------\n"
+" SRID=2249;POLYGON((739651.875 2908247.25,739651.875 2970042.75,794875.8125 "
+"2970042.75,\n"
+" 794875.8125 2908247.25,739651.875 2908247.25))"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:319
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DExtent\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_3DExtent\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_misc.xml:325
+#, no-c-format
+msgid "ST_3DExtent"
+msgstr "ST_3DExtent"
+
+#. Tag: refpurpose
+#: reference_misc.xml:326
+#, no-c-format
+msgid ""
+"an aggregate function that returns the box3D bounding box that bounds rows "
+"of geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:331
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>ST_3DExtent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>box3d <function>ST_3DExtent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_misc.xml:341
+#, no-c-format
+msgid ""
+"ST_3DExtent returns a box3d (includes Z coordinate) bounding box that "
+"encloses a set of geometries. The ST_3DExtent function is an \"aggregate\" "
+"function in the terminology of SQL. That means that it operates on lists of "
+"data, in the same way the SUM() and AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:347
+#, no-c-format
+msgid ""
+"Since ST_3DExtent returns a bounding box, the SRID meta-data is lost. Use "
+"ST_SetSRID to force it back into a geometry with SRID meta data. The "
+"coordinates are in the units of the spatial ref of the orginal geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:352
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Extent3D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:361
+#, no-c-format
+msgid ""
+"SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
+"FROM (SELECT ST_MakePoint(x,y,z) As the_geom\n"
+"        FROM generate_series(1,3) As x\n"
+"                CROSS JOIN generate_series(1,2) As y\n"
+"                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
+"          b3extent\n"
+"--------------------\n"
+" BOX3D(1 1 0,3 2 2)\n"
+"\n"
+"--Get the extent of various elevated circular strings\n"
+"SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
+"FROM (SELECT "
+"ST_Translate(ST_Force_3DZ(ST_LineToCurve(ST_Buffer(ST_MakePoint(x,"
+"y),1))),0,0,z) As the_geom\n"
+"        FROM generate_series(1,3) As x\n"
+"                CROSS JOIN generate_series(1,2) As y\n"
+"                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
+"\n"
+"        b3extent\n"
+"--------------------\n"
+" BOX3D(1 0 0,4 2 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:366
+#, no-c-format
+msgid ", <xref linkend=\"ST_Force_3DZ\"/>"
+msgstr ", <xref linkend=\"ST_Force_3DZ\"/>"
+
+#. Tag: refname
+#: reference_misc.xml:373
+#, no-c-format
+msgid "Find_SRID"
+msgstr "Find_SRID"
+
+#. Tag: refpurpose
+#: reference_misc.xml:375
+#, no-c-format
+msgid ""
+"The syntax is find_srid(a_db_schema, a_table, a_column) and the function "
+"returns the integer SRID of the specified column by searching through the "
+"GEOMETRY_COLUMNS table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:382
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>Find_SRID</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>a_schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>a_geomfield_name</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>Find_SRID</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>a_schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>a_geomfield_name</parameter></paramdef>"
+
+#. Tag: para
+#: reference_misc.xml:394
+#, no-c-format
+msgid ""
+"The syntax is find_srid(<db/schema>, <table>, <column>) "
+"and the function returns the integer SRID of the specified column by "
+"searching through the GEOMETRY_COLUMNS table. If the geometry column has not "
+"been properly added with the AddGeometryColumns() function, this function "
+"will not work either."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:406
+#, no-c-format
+msgid ""
+"SELECT Find_SRID('public', 'tiger_us_state_2007', 'the_geom_4269');\n"
+"find_srid\n"
+"----------\n"
+"4269"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:419
+#, fuzzy, no-c-format
+msgid "ST_MemSize"
+msgstr "ST_Mem_Size"
+
+#. Tag: refpurpose
+#: reference_misc.xml:421
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the geometry takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:426
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_Mem_Size</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_misc.xml:436
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the geometry takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:437
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:438
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:440
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:441
+#, no-c-format
+msgid ""
+"pg_column_size returns how much space a geometry would take in a column "
+"considering compression, so may be lower than ST_MemSize"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:448
+#, no-c-format
+msgid ""
+"Changed: 2.2.0 name changed to ST_MemSize to follow naming convention. In "
+"prior versions this function was called ST_Mem_Size, old name deprecated "
+"though still available."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:455
+#, no-c-format
+msgid ""
+"--Return how much byte space Boston takes up  in our Mass data set\n"
+"SELECT pg_size_pretty(SUM(ST_MemSize(the_geom))) as totgeomsum,\n"
+"pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE "
+"0 END)) As bossum,\n"
+"CAST(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 "
+"END)*1.00 /\n"
+"                SUM(ST_MemSize(the_geom))*100 As numeric(10,2)) As perbos\n"
+"FROM towns;\n"
+"\n"
+"totgeomsum        bossum        perbos\n"
+"----------        ------        ------\n"
+"1522 kB                30 kB        1.99\n"
+"\n"
+"\n"
+"SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"150505,220227 150406)'));\n"
+"\n"
+"---\n"
+"73\n"
+"\n"
+"--What percentage of our table is taken up by just the geometry\n"
+"SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, "
+"sum(ST_MemSize(the_geom)) As geomsize,\n"
+"sum(ST_MemSize(the_geom))*1.00/pg_total_relation_size('public."
+"neighborhoods')*100 As pergeom\n"
+"FROM neighborhoods;\n"
+"fulltable_size geomsize  pergeom\n"
+"------------------------------------------------\n"
+"262144         96238         36.71188354492187500000"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:468
+#, no-c-format
+msgid "ST_Point_Inside_Circle"
+msgstr "ST_Point_Inside_Circle"
+
+#. Tag: refpurpose
+#: reference_misc.xml:470
+#, no-c-format
+msgid ""
+"Is the point geometry insert circle defined by center_x, center_y, radius"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:475
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Point_Inside_Circle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_x</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_y</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_Point_Inside_Circle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_x</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_y</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius</parameter></paramdef>"
+
+#. Tag: para
+#: reference_misc.xml:488
+#, no-c-format
+msgid ""
+"The syntax for this functions is point_inside_circle(<geometry>,<"
+"circle_center_x>,<circle_center_y>,<radius>). Returns the "
+"true if the geometry is a point and is inside the circle. Returns false "
+"otherwise."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:492
+#, no-c-format
+msgid "This only works for points as the name suggests"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:499
+#, no-c-format
+msgid ""
+"SELECT ST_Point_Inside_Circle(ST_Point(1,2), 0.5, 2, 3);\n"
+" st_point_inside_circle\n"
+"------------------------\n"
+" t"
+msgstr ""
diff --git a/doc/po/fr/reference_operator.xml.po b/doc/po/fr/reference_operator.xml.po
new file mode 100644
index 0000000..871a7f8
--- /dev/null
+++ b/doc/po/fr/reference_operator.xml.po
@@ -0,0 +1,1333 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Guy BARA <bara.guy at gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-15 22:03+0000\n"
+"Last-Translator: Guy BARA <bara.guy at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_operator.xml:3
+#, no-c-format
+msgid "Operators"
+msgstr "Opérateurs"
+
+#. Tag: refname
+#: reference_operator.xml:6
+#, no-c-format
+msgid "&&"
+msgstr "&&"
+
+#. Tag: refpurpose
+#: reference_operator.xml:8
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's 2D bounding box intersects B's 2D "
+"bounding box."
+msgstr ""
+"Renvoi <varname>VRAI</varname> si la boite englobante 2D de A intersecte la "
+"boite englobante 2D de B."
+
+#. Tag: funcsynopsis
+#: reference_operator.xml:12
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>geography </type> <parameter>A</"
+"parameter> </paramdef> <paramdef> <type>geography </type> <parameter>B</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>booléen <function>&&</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>booléen <function>&&</"
+"function></funcdef> <paramdef> <type>geography </type> <parameter>A</"
+"parameter> </paramdef> <paramdef> <type>geography </type> <parameter>B</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: title
+#: reference_operator.xml:50 reference_operator.xml:111
+#: reference_operator.xml:176 reference_operator.xml:234
+#: reference_operator.xml:295 reference_operator.xml:353
+#: reference_operator.xml:406 reference_operator.xml:475
+#: reference_operator.xml:546 reference_operator.xml:599
+#: reference_operator.xml:654 reference_operator.xml:712
+#: reference_operator.xml:765 reference_operator.xml:818
+#: reference_operator.xml:883 reference_operator.xml:950
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_operator.xml:52
+#, no-c-format
+msgid ""
+"The <varname>&&</varname> operator returns <varname>TRUE</varname> "
+"if the 2D bounding box of geometry A intersects the 2D bounding box of "
+"geometry B."
+msgstr ""
+"L'opérateur <varname>&&</varname> renvoi <varname>VRAI</varname> si "
+"la boite englobante 2D de la géométrie A intersecte la boite englobante 2D "
+"de la géométrie B."
+
+#. Tag: para
+#: reference_operator.xml:54 reference_operator.xml:115
+#: reference_operator.xml:182 reference_operator.xml:243
+#: reference_operator.xml:301 reference_operator.xml:358
+#: reference_operator.xml:411 reference_operator.xml:551
+#: reference_operator.xml:605 reference_operator.xml:660
+#: reference_operator.xml:717 reference_operator.xml:770
+#: reference_operator.xml:823
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:57
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+"Amélioration: la version 2.0.0 introduit le support des surfaces Polyédrique."
+
+#. Tag: para
+#: reference_operator.xml:58
+#, no-c-format
+msgid "Availability: 1.5.0 support for geography was introduced."
+msgstr "Disponibilité: La version 1.5.0 introduit le support des géographie."
+
+#. Tag: para
+#: reference_operator.xml:59 reference_operator.xml:119
+#: reference_operator.xml:240 reference_operator.xml:492
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:60 reference_operator.xml:120
+#: reference_operator.xml:241 reference_operator.xml:493
+#: reference_operator.xml:827
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:64 reference_operator.xml:187
+#: reference_operator.xml:248 reference_operator.xml:306
+#: reference_operator.xml:363 reference_operator.xml:416
+#: reference_operator.xml:502 reference_operator.xml:556
+#: reference_operator.xml:611 reference_operator.xml:665
+#: reference_operator.xml:722 reference_operator.xml:775
+#: reference_operator.xml:843 reference_operator.xml:900
+#: reference_operator.xml:964
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples"
+
+#. Tag: programlisting
+#: reference_operator.xml:66
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 && tbl2.column2 AS "
+"overlaps\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (2, 'LINESTRING(0 1, 0 5)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps\n"
+"---------+---------+----------\n"
+"           1 |       3 | t\n"
+"           2 |       3 | f\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:71 reference_operator.xml:139
+#: reference_operator.xml:193 reference_operator.xml:254
+#: reference_operator.xml:312 reference_operator.xml:369
+#: reference_operator.xml:422 reference_operator.xml:508
+#: reference_operator.xml:562 reference_operator.xml:617
+#: reference_operator.xml:671 reference_operator.xml:728
+#: reference_operator.xml:781 reference_operator.xml:848
+#: reference_operator.xml:916 reference_operator.xml:968
+#, no-c-format
+msgid "See Also"
+msgstr "Voir Aussi"
+
+#. Tag: para
+#: reference_operator.xml:73
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>, <xref "
+"linkend=\"ST_Geometry_Contain\"/>, <xref linkend=\"ST_Geometry_Contained\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:85
+#, no-c-format
+msgid "&&&"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:87
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's 3D bounding box intersects B's 3D "
+"bounding box."
+msgstr ""
+"Renvoi <varname>VRAI</varname> si la boite englobante 3D de A intersecte la "
+"boite englobante 3D de B."
+
+#. Tag: funcprototype
+#: reference_operator.xml:92
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&&&</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:113
+#, no-c-format
+msgid ""
+"The <varname>&&&</varname> operator returns <varname>TRUE</"
+"varname> if the n-D bounding box of geometry A intersects the n-D bounding "
+"box of geometry B."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:118
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr "Disponibilité : Version 2.0.0"
+
+#. Tag: para
+#: reference_operator.xml:121
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:122
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:126
+#, no-c-format
+msgid "Examples: 3D LineStrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:128
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3d, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING Z(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING Z(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING Z(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3d | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:132
+#, no-c-format
+msgid "Examples: 3M LineStrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:134
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3zm, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING M(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING M(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING M(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3zm | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:147
+#, no-c-format
+msgid "&<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:149
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is to the "
+"left of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:154
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:178
+#, no-c-format
+msgid ""
+"The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A overlaps or is to the left of the bounding "
+"box of geometry B, or more accurately, overlaps or is NOT to the right of "
+"the bounding box of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:189
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &< tbl2.column2 AS "
+"overleft\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overleft\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:195
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overbelow\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:205
+#, no-c-format
+msgid "&<|"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:207
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is below B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:212
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:236
+#, no-c-format
+msgid ""
+"The <varname>&<|</varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of geometry A overlaps or is below of the bounding box "
+"of geometry B, or more accurately, overlaps or is NOT above the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:250
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &<| tbl2.column2 AS "
+"overbelow\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overbelow\n"
+"---------+---------+-----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:256
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:266
+#, no-c-format
+msgid "&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:268
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A' bounding box overlaps or is to the "
+"right of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:273
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:297
+#, no-c-format
+msgid ""
+"The <varname>&></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A overlaps or is to the right of the bounding "
+"box of geometry B, or more accurately, overlaps or is NOT to the left of the "
+"bounding box of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:308
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &> tbl2.column2 AS "
+"overright\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overright\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | t\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:314
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:324
+#, no-c-format
+msgid "<<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:326
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly to the left "
+"of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:331
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function><<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:355
+#, no-c-format
+msgid ""
+"The <varname><<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the left of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:365
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 << tbl2.column2 AS "
+"left\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 2, 1 5)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 3)'::geometry),\n"
+"        (3, 'LINESTRING (6 0, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 2, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | left\n"
+"---------+---------+------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:371 reference_operator.xml:564
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Above\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:377
+#, no-c-format
+msgid "<<|"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:379
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly below B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:384
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function><<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:408
+#, no-c-format
+msgid ""
+"The <varname><<|</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly below the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:418
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 <<| tbl2.column2 AS "
+"below\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | below\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:424
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Above\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:430
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:432
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_operator.xml:436
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>=</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>=</function></"
+"funcdef> <paramdef> <type>geography </type> <parameter>A</parameter> </"
+"paramdef> <paramdef> <type>geography </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:477
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry/geography A is the same as the bounding box of "
+"geometry/geography B. PostgreSQL uses the =, <, and > operators "
+"defined for geometries to perform internal orderings and comparison of "
+"geometries (ie. in a GROUP BY or ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:482
+#, no-c-format
+msgid ""
+"This is cause for a lot of confusion. When you compare geometryA = geometryB "
+"it will return true even when the geometries are clearly different IF their "
+"bounding boxes are the same. To check for true equality use <xref linkend="
+"\"ST_OrderingEquals\"/> or <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:489
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:494
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 , the bounding box of geometries was changed to use double "
+"precision instead of float4 precision of prior. The side effect of this is "
+"that in particular points in prior versions that were a little different may "
+"have returned true in prior versions and false in 2.0+ since their float4 "
+"boxes would be the same but there float8 (double precision), would be "
+"different."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:504
+#, no-c-format
+msgid ""
+"SELECT 'LINESTRING(0 0, 0 1, 1 0)'::geometry = 'LINESTRING(1 1, 0 0)'::"
+"geometry;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(column1)\n"
+"FROM ( VALUES\n"
+"        ('LINESTRING(0 0, 1 1)'::geometry),\n"
+"        ('LINESTRING(1 1, 0 0)'::geometry)) AS foo;\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(0 0,1 1)\n"
+" LINESTRING(1 1,0 0)\n"
+"(2 rows)\n"
+"\n"
+"-- Note: the GROUP BY uses the \"=\" to compare for geometry equivalency.\n"
+"SELECT ST_AsText(column1)\n"
+"FROM ( VALUES\n"
+"        ('LINESTRING(0 0, 1 1)'::geometry),\n"
+"        ('LINESTRING(1 1, 0 0)'::geometry)) AS foo\n"
+"GROUP BY column1;\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(0 0,1 1)\n"
+"(1 row)\n"
+"\n"
+"-- In versions prior to 2.0, this used to return true --\n"
+" SELECT ST_GeomFromText('POINT(1707296.37 4820536.77)') =\n"
+"        ST_GeomFromText('POINT(1707296.27 4820536.87)') As pt_intersect;\n"
+"        \n"
+"--pt_intersect --\n"
+"f"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:510
+#, no-c-format
+msgid ", <xref linkend=\"ST_OrderingEquals\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:517
+#, no-c-format
+msgid ">>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:519
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly to the right "
+"of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:524
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:548
+#, no-c-format
+msgid ""
+"The <varname>>></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the right of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:558
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 >> tbl2.column2 AS "
+"right\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | right\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:570
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:572
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:577
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>@</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:601
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry A is completely contained by the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:613
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 @ tbl2.column2 AS contained\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (2 2, 4 4)'::geometry),\n"
+"        (4, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contained\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:619 reference_operator.xml:783
+#, no-c-format
+msgid ", <xref linkend=\"geometry_overlaps\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:625
+#, no-c-format
+msgid "|&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:627
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is above B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:632
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>|&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:656
+#, no-c-format
+msgid ""
+"The <varname>|&></varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of geometry A overlaps or is above the bounding box of "
+"geometry B, or more accurately, overlaps or is NOT below the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:667
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |&> tbl2.column2 AS "
+"overabove\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overabove\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:673
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:683
+#, no-c-format
+msgid "|>>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:685
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly above B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:690
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>|>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:714
+#, no-c-format
+msgid ""
+"The <varname>|>></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the right of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:724
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |>> tbl2.column2 AS "
+"above\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 4, 1 7)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 2)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | above\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:730
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:736
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:738
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box contains B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:743
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:767
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry A completely contains the bounding box of geometry "
+"B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:777
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 ~ tbl2.column2 AS contains\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (1 1, 2 2)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contains\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:789
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:791
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:796
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:820
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry/geography A is the same as the bounding box of "
+"geometry/geography B."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:826
+#, no-c-format
+msgid "Availability: 1.5.0 changed behavior"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:830
+#, no-c-format
+msgid ""
+"This operator has changed behavior in PostGIS 1.5 from testing for actual "
+"geometric equality to only checking for bounding box equality. To complicate "
+"things it also depends on if you have done a hard or soft upgrade which "
+"behavior your database has. To find out which behavior your database has you "
+"can run the query below. To check for true equality use <xref linkend="
+"\"ST_OrderingEquals\"/> or <xref linkend=\"ST_Equals\"/> and to check for "
+"bounding box equality <xref linkend=\"ST_Geometry_EQ\"/>; operator is a "
+"safer option."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:844
+#, no-c-format
+msgid ""
+"select 'LINESTRING(0 0, 1 1)'::geometry ~= 'LINESTRING(0 1, 1 0)'::geometry "
+"as equality;\n"
+" equality   |\n"
+"-----------------+\n"
+"          t    |"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:845
+#, no-c-format
+msgid ""
+"The above can be used to test if you have the new or old behavior of ~= "
+"operator."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:849
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Geometry_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:855
+#, no-c-format
+msgid "<->"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:857
+#, no-c-format
+msgid ""
+"Returns the distance between two points. For point / point checks it uses "
+"floating point accuracy (as opposed to the double precision accuracy of the "
+"underlying point geometry). For other geometry types the distance between "
+"the floating point bounding box centroids is returned. Useful for doing "
+"distance ordering and nearest neighbor limits using KNN gist functionality."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:864
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function><-></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:885
+#, no-c-format
+msgid ""
+"The <varname><-></varname> operator returns distance between two "
+"points read from the spatial index for points (float precision). For other "
+"geometries it returns the distance from centroid of bounding box of "
+"geometries. Useful for doing nearest neighbor <emphasis role=\"strong"
+"\">approximate</emphasis> distance ordering."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:888 reference_operator.xml:954
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries. It is different from other operators that use spatial indexes in "
+"that the spatial index is only used when the operator is in the ORDER BY "
+"clause."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:891
+#, no-c-format
+msgid ""
+"Index only kicks in if one of the geometries is a constant (not in a "
+"subquery/cte). e.g. 'SRID=3005;POINT(1011102 450541)'::geometry instead of a."
+"geom"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:892
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://workshops.opengeo.org/postgis-intro/knn.html"
+"\">OpenGeo workshop: Nearest-Neighbour Searching</ulink> for real live "
+"example."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:894 reference_operator.xml:959
+#, no-c-format
+msgid "Availability: 2.0.0 only available for PostgreSQL 9.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:901
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
+"geometry) as d,edabbr, vaabbr \n"
+"FROM va2005 \n"
+"ORDER BY d limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 5579.67450712005 | ALQ    | 001\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  7691.2205404848 | ALQ    | 003\n"
+" 7900.75451037313 | ALQ    | 122\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  12089.665931705 | ALQ    | 127\n"
+" 18472.5531479404 | ALQ    | 002\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:902
+#, no-c-format
+msgid "Then the KNN raw answer:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:905
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT st_distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
+"geometry) as d,edabbr, vaabbr \n"
+"FROM va2005 \n"
+"ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5579.67450712005 | ALQ    | 001\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  12089.665931705 | ALQ    | 127\n"
+"  24795.264503022 | ALQ    | 124\n"
+" 24587.6584922302 | ALQ    | 123\n"
+" 26764.2555463114 | ALQ    | 125\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:906
+#, no-c-format
+msgid ""
+"Note the misordering in the actual distances and the different entries that "
+"actually show up in the top 10."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:910
+#, no-c-format
+msgid "Finally the hybrid:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:913
+#, no-c-format
+msgid ""
+"<![CDATA[WITH index_query AS (\n"
+"  SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,"
+"edabbr, vaabbr\n"
+"          FROM va2005\n"
+"  ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry LIMIT 100) \n"
+"  SELECT * \n"
+"          FROM index_query \n"
+"  ORDER BY d limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 5579.67450712005 | ALQ    | 001\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  7691.2205404848 | ALQ    | 003\n"
+" 7900.75451037313 | ALQ    | 122\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  12089.665931705 | ALQ    | 127\n"
+" 18472.5531479404 | ALQ    | 002\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:917
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_box\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:923
+#, no-c-format
+msgid "<#>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:925
+#, no-c-format
+msgid ""
+"Returns the distance between bounding box of 2 geometries. For point / point "
+"checks it's almost the same as distance (though may be different since the "
+"bounding box is at floating point accuracy and geometries are double "
+"precision). Useful for doing distance ordering and nearest neighbor limits "
+"using KNN gist functionality."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:931
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function><#></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:952
+#, no-c-format
+msgid ""
+"The <varname><#></varname> KNN GIST operator returns distance between "
+"two floating point bounding boxes read from the spatial index if available. "
+"Useful for doing nearest neighbor <emphasis role=\"strong\">approximate</"
+"emphasis> distance ordering."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:957
+#, no-c-format
+msgid ""
+"Index only kicks in if one of the geometries is a constant e.g. ORDER BY "
+"(ST_GeomFromText('POINT(1 2)') <#> geom) instead of g1.geom <#>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:965
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT *\n"
+"FROM (\n"
+"SELECT b.tlid, b.mtfcc, \n"
+"        b.geom <#> ST_GeomFromText('LINESTRING(746149 2948672,745954 "
+"2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249) As b_dist, \n"
+"                ST_Distance(b.geom, ST_GeomFromText('LINESTRING(746149 "
+"2948672,745954 2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249)) As act_dist\n"
+"    FROM bos_roads As b \n"
+"    ORDER BY b_dist, b.tlid\n"
+"    LIMIT 100) As foo\n"
+"    ORDER BY act_dist, tlid LIMIT 10;]]>\n"
+"\n"
+"   tlid    | mtfcc |      b_dist      |     act_dist\n"
+"-----------+-------+------------------+------------------\n"
+"  85732027 | S1400 |                0 |                0\n"
+"  85732029 | S1400 |                0 |                0\n"
+"  85732031 | S1400 |                0 |                0\n"
+"  85734335 | S1400 |                0 |                0\n"
+"  85736037 | S1400 |                0 |                0\n"
+" 624683742 | S1400 |                0 | 128.528874268666\n"
+"  85719343 | S1400 | 260.839270432962 | 260.839270432962\n"
+"  85741826 | S1400 | 164.759294123275 | 260.839270432962\n"
+"  85732032 | S1400 |           277.75 | 311.830282365264\n"
+"  85735592 | S1400 |           222.25 | 311.830282365264\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:969
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_centroid"
+"\"/>"
+msgstr ""
diff --git a/doc/po/fr/reference_output.xml.po b/doc/po/fr/reference_output.xml.po
new file mode 100644
index 0000000..40369dc
--- /dev/null
+++ b/doc/po/fr/reference_output.xml.po
@@ -0,0 +1,2331 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 21:54+0000\n"
+"PO-Revision-Date: 2014-10-14 22:36+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_output.xml:4
+#, no-c-format
+msgid "Geometry Outputs"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:7
+#, no-c-format
+msgid "ST_AsBinary"
+msgstr "ST_AsBinary"
+
+#. Tag: refpurpose
+#: reference_output.xml:8
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the geometry/geography "
+"without SRID meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:12
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsBinary</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsBinary</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type><parameter>NDR_or_XDR</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsBinary</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsBinary</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type><parameter>NDR_or_XDR</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: title
+#: reference_output.xml:35 reference_output.xml:109 reference_output.xml:162
+#: reference_output.xml:238 reference_output.xml:339 reference_output.xml:440
+#: reference_output.xml:496 reference_output.xml:561 reference_output.xml:604
+#: reference_output.xml:707 reference_output.xml:755 reference_output.xml:813
+#: reference_output.xml:879 reference_output.xml:944 reference_output.xml:988
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:37
+#, no-c-format
+msgid ""
+"Returns the Well-Known Binary representation of the geometry. There are 2 "
+"variants of the function. The first variant takes no endian encoding "
+"parameter and defaults to server machine endian. The second variant takes a "
+"second argument denoting the encoding - using little-endian ('NDR') or big-"
+"endian ('XDR') encoding."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:40 reference_output.xml:113
+#, no-c-format
+msgid ""
+"This is useful in binary cursors to pull data out of the database without "
+"converting it to a string representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:44
+#, no-c-format
+msgid ""
+"The WKB spec does not include the SRID. To get the WKB with SRID format use "
+"ST_AsEWKB"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:47
+#, no-c-format
+msgid ""
+"ST_AsBinary is the reverse of <xref linkend=\"ST_GeomFromWKB\"/> for "
+"geometry. Use <xref linkend=\"ST_GeomFromWKB\"/> to convert to a postgis "
+"geometry from ST_AsBinary representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:51
+#, no-c-format
+msgid ""
+"The default behavior in PostgreSQL 9.0 has been changed to output bytea in "
+"hex encoding. ST_AsBinary is the reverse of <xref linkend=\"ST_GeomFromWKB\"/"
+"> for geometry. If your GUI tools require the old behavior, then SET "
+"bytea_output='escape' in your database."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:55 reference_output.xml:121
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:56
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for higher coordinate dimensions was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:57
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for specifying endian with geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:58 reference_output.xml:279 reference_output.xml:383
+#, no-c-format
+msgid "Availability: 1.5.0 geography support was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:59
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Inputs to this function can not be unknown -- must be "
+"geometry. Constructs such as <code>ST_AsBinary('POINT(1 2)')</code> are no "
+"longer valid and you will get an <code>n st_asbinary(unknown) is not unique "
+"error</code>. Code like that needs to be changed to "
+"<code>ST_AsBinary('POINT(1 2)'::geometry);</code>. If that is not possible, "
+"then install <filename>legacy.sql</filename>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:61 reference_output.xml:771
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:62
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.37"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:63 reference_output.xml:123 reference_output.xml:177
+#: reference_output.xml:449 reference_output.xml:721 reference_output.xml:773
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:64 reference_output.xml:124 reference_output.xml:178
+#: reference_output.xml:390 reference_output.xml:664
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:65 reference_output.xml:125 reference_output.xml:179
+#: reference_output.xml:391 reference_output.xml:667
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:66 reference_output.xml:122 reference_output.xml:176
+#: reference_output.xml:281 reference_output.xml:389 reference_output.xml:448
+#: reference_output.xml:523 reference_output.xml:662
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:71 reference_output.xml:130 reference_output.xml:184
+#: reference_output.xml:285 reference_output.xml:453 reference_output.xml:527
+#: reference_output.xml:580 reference_output.xml:725 reference_output.xml:778
+#: reference_output.xml:842 reference_output.xml:896 reference_output.xml:961
+#: reference_output.xml:997
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:73
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\001\\003\\000\\000\\000\\001\\000\\000\\000\\005\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\360?\\000\\000\\000\\000\\000\\000\n"
+"\\360?\\000\\000\\000\\000\\000\\000\\360?\\000\\000\n"
+"\\000\\000\\000\\000\\360?\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\001\\003\\000\\000\\000\\001\\000\\000\\000\\005\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\360?\\000\\000\\000\\000\\000\\000\n"
+"\\360?\\000\\000\\000\\000\\000\\000\\360?\\000\\000\n"
+"\\000\\000\\000\\000\\360?\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+
+#. Tag: programlisting
+#: reference_output.xml:74
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\000\\000\\000\\000\\003\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\n"
+"\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\000\\000\\000\\000\\003\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\n"
+"\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+
+#. Tag: title
+#: reference_output.xml:79 reference_output.xml:138 reference_output.xml:191
+#: reference_output.xml:409 reference_output.xml:531 reference_output.xml:729
+#: reference_output.xml:785 reference_output.xml:901 reference_output.xml:966
+#: reference_output.xml:1002
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:80
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsTWKB\"/>, <xref "
+"linkend=\"ST_AsText\"/>,"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:90
+#, no-c-format
+msgid "ST_AsEWKB"
+msgstr "ST_AsEWKB"
+
+#. Tag: refpurpose
+#: reference_output.xml:91
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the geometry with SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:95
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>bytea <function>ST_AsEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_output.xml:110
+#, no-c-format
+msgid ""
+"Returns the Well-Known Binary representation of the geometry with SRID "
+"metadata. There are 2 variants of the function. The first variant takes no "
+"endian encoding parameter and defaults to little endian. The second variant "
+"takes a second argument denoting the encoding - using little-endian ('NDR') "
+"or big-endian ('XDR') encoding."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:116
+#, no-c-format
+msgid ""
+"The WKB spec does not include the SRID. To get the OGC WKB format use "
+"ST_AsBinary"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:119
+#, no-c-format
+msgid ""
+"ST_AsEWKB is the reverse of ST_GeomFromEWKB. Use ST_GeomFromEWKB to convert "
+"to a postgis geometry from ST_AsEWKB representation."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:132
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                   st_asewkb\n"
+"--------------------------------\n"
+"\\001\\003\\000\\000 \\346\\020\\000\\000\\001\\000\n"
+"\\000\\000\\005\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\360?\\000\\000\\000\\000\\000\\000\\360?\n"
+"\\000\\000\\000\\000\\000\\000\\360?\\000\\000\\000\\000\\000\n"
+"\\000\\360?\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:133
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asewkb\n"
+"--------------------------------\n"
+"\\000 "
+"\\000\\000\\003\\000\\000\\020\\346\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\\n"
+"000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000?\n"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\n"
+"\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000"
+msgstr ""
+"SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asewkb\n"
+"--------------------------------\n"
+"\\000 "
+"\\000\\000\\003\\000\\000\\020\\346\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\\n"
+"000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000?\n"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\n"
+"\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000"
+
+#. Tag: para
+#: reference_output.xml:139
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_output.xml:144
+#, no-c-format
+msgid "ST_AsEWKT"
+msgstr "ST_AsEWKT"
+
+#. Tag: refpurpose
+#: reference_output.xml:145
+#, no-c-format
+msgid ""
+"Return the Well-Known Text (WKT) representation of the geometry with SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:149
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsEWKT</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsEWKT</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_AsEWKT</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsEWKT</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_output.xml:164
+#, no-c-format
+msgid ""
+"Returns the Well-Known Text representation of the geometry prefixed with the "
+"SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:167
+#, no-c-format
+msgid ""
+"The WKT spec does not include the SRID. To get the OGC WKT format use "
+"ST_AsText"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:169 reference_output.xml:763
+#, no-c-format
+msgid ""
+"WKT format does not maintain precision so to prevent floating truncation, "
+"use ST_AsBinary or ST_AsEWKB format for transport."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:173
+#, no-c-format
+msgid ""
+"ST_AsEWKT is the reverse of <xref linkend=\"ST_GeomFromEWKT\"/>. Use <xref "
+"linkend=\"ST_GeomFromEWKT\"/> to convert to a postgis geometry from "
+"ST_AsEWKT representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:175
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Geography, Polyhedral surfaces, Triangles and "
+"TIN was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:186
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT('0103000020E61000000100000005000000000000\n"
+"                        000000000000000000000000000000000000000000000000000000\n"
+"                        F03F000000000000F03F000000000000F03F000000000000F03\n"
+"                        F000000000000000000000000000000000000000000000000'::"
+"geometry);\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"SELECT "
+"ST_AsEWKT('0108000080030000000000000060E30A4100000000785C0241000000000000F03F0000000018\n"
+"E20A4100000000485F024100000000000000400000000018\n"
+"E20A4100000000305C02410000000000000840')\n"
+"\n"
+"--st_asewkt---\n"
+"CIRCULARSTRING(220268 150415 1,220227 150505 2,220227 150406 3)"
+msgstr ""
+"SELECT ST_AsEWKT('0103000020E61000000100000005000000000000\n"
+"                        000000000000000000000000000000000000000000000000000000\n"
+"                        F03F000000000000F03F000000000000F03F000000000000F03\n"
+"                        F000000000000000000000000000000000000000000000000'::"
+"geometry);\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"SELECT "
+"ST_AsEWKT('0108000080030000000000000060E30A4100000000785C0241000000000000F03F0000000018\n"
+"E20A4100000000485F024100000000000000400000000018\n"
+"E20A4100000000305C02410000000000000840')\n"
+"\n"
+"--st_asewkt---\n"
+"CIRCULARSTRING(220268 150415 1,220227 150505 2,220227 150406 3)"
+
+#. Tag: para
+#: reference_output.xml:192
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:201
+#, no-c-format
+msgid "ST_AsGeoJSON"
+msgstr "ST_AsGeoJSON"
+
+#. Tag: refpurpose
+#: reference_output.xml:203
+#, no-c-format
+msgid "Return the geometry as a GeoJSON element."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:207
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsGeoJSON</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_AsGeoJSON</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: para
+#: reference_output.xml:240
+#, no-c-format
+msgid ""
+"Return the geometry as a Geometry Javascript Object Notation (GeoJSON) "
+"element. (Cf <ulink url=\"http://geojson.org/geojson-spec.html\">GeoJSON "
+"specifications 1.0</ulink>). 2D and 3D Geometries are both supported. "
+"GeoJSON only support SFS 1.1 geometry type (no curve support for example)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:246
+#, no-c-format
+msgid ""
+"The gj_version parameter is the major version of the GeoJSON spec. If "
+"specified, must be 1. This represents the spec version of GeoJSON."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:248
+#, no-c-format
+msgid ""
+"The third argument may be used to reduce the maximum number of decimal "
+"places used in output (defaults to 15)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:251
+#, no-c-format
+msgid ""
+"The last 'options' argument could be used to add Bbox or Crs in GeoJSON "
+"output:"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:255
+#, no-c-format
+msgid "0: means no option (default value)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:259
+#, no-c-format
+msgid "1: GeoJSON Bbox"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:263
+#, no-c-format
+msgid "2: GeoJSON Short CRS (e.g EPSG:4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:267
+#, no-c-format
+msgid "4: GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:271
+#, no-c-format
+msgid "Version 1: ST_AsGeoJSON(geom) / precision=15 version=1 options=0"
+msgstr "Version 1: ST_AsGeoJSON(geom) / precision=15 version=1 options=0"
+
+#. Tag: para
+#: reference_output.xml:272
+#, no-c-format
+msgid "Version 2: ST_AsGeoJSON(geom, precision) / version=1 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:273
+#, no-c-format
+msgid "Version 3: ST_AsGeoJSON(geom, precision, options) / version=1"
+msgstr "Version 3: ST_AsGeoJSON(geom, precision, options) / version=1"
+
+#. Tag: para
+#: reference_output.xml:274
+#, no-c-format
+msgid "Version 4: ST_AsGeoJSON(gj_version, geom) / precision=15 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:275
+#, no-c-format
+msgid "Version 5: ST_AsGeoJSON(gj_version, geom, precision) /options=0"
+msgstr "Version 5: ST_AsGeoJSON(gj_version, geom, precision) /options=0"
+
+#. Tag: para
+#: reference_output.xml:276
+#, no-c-format
+msgid "Version 6: ST_AsGeoJSON(gj_version, geom, precision,options)"
+msgstr "Version 6: ST_AsGeoJSON(gj_version, geom, precision,options)"
+
+#. Tag: para
+#: reference_output.xml:278
+#, no-c-format
+msgid "Availability: 1.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:280
+#, no-c-format
+msgid "Changed: 2.0.0 support default args and named args."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:286
+#, no-c-format
+msgid ""
+"GeoJSON format is generally more efficient than other formats for use in "
+"ajax mapping. One popular javascript client that supports this is Open "
+"Layers. Example of its use is <ulink url=\"http://openlayers.org/dev/"
+"examples/vector-formats.html\">OpenLayers GeoJSON Example</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:291
+#, no-c-format
+msgid ""
+"SELECT ST_AsGeoJSON(the_geom) from fe_edges limit 1;\n"
+"                                           st_asgeojson\n"
+"-----------------------------------------------------------------------------------------------------------\n"
+"\n"
+"{\"type\":\"MultiLineString\",\"coordinates\":"
+"[[[-89.734634999999997,31.492072000000000],\n"
+"[-89.734955999999997,31.492237999999997]]]}\n"
+"(1 row)\n"
+"--3d point\n"
+"SELECT ST_AsGeoJSON('LINESTRING(1 2 3, 4 5 6)');\n"
+"\n"
+"st_asgeojson\n"
+"-----------------------------------------------------------------------------------------\n"
+" {\"type\":\"LineString\",\"coordinates\":[[1,2,3],[4,5,6]]}"
+msgstr ""
+"SELECT ST_AsGeoJSON(the_geom) from fe_edges limit 1;\n"
+"                                           st_asgeojson\n"
+"-----------------------------------------------------------------------------------------------------------\n"
+"\n"
+"{\"type\":\"MultiLineString\",\"coordinates\":"
+"[[[-89.734634999999997,31.492072000000000],\n"
+"[-89.734955999999997,31.492237999999997]]]}\n"
+"(1 row)\n"
+"--3d point\n"
+"SELECT ST_AsGeoJSON('LINESTRING(1 2 3, 4 5 6)');\n"
+"\n"
+"st_asgeojson\n"
+"-----------------------------------------------------------------------------------------\n"
+" {\"type\":\"LineString\",\"coordinates\":[[1,2,3],[4,5,6]]}"
+
+#. Tag: refname
+#: reference_output.xml:296
+#, no-c-format
+msgid "ST_AsGML"
+msgstr "ST_AsGML"
+
+#. Tag: refpurpose
+#: reference_output.xml:297
+#, no-c-format
+msgid "Return the geometry as a GML version 2 or 3 element."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:301
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsGML</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>id=null</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>text <function>ST_AsGML</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>id=null</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:341
+#, no-c-format
+msgid ""
+"Return the geometry as a Geography Markup Language (GML) element. The "
+"version parameter, if specified, may be either 2 or 3. If no version "
+"parameter is specified then the default is assumed to be 2. The precision "
+"argument may be used to reduce the maximum number of decimal places "
+"(<varname>maxdecimaldigits</varname>) used in output (defaults to 15)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:346
+#, no-c-format
+msgid "GML 2 refer to 2.1.2 version, GML 3 to 3.1.1 version"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:347
+#, no-c-format
+msgid ""
+"The 'options' argument is a bitfield. It could be used to define CRS output "
+"type in GML output, and to declare data as lat/lon:"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:351
+#, no-c-format
+msgid "0: GML Short CRS (e.g EPSG:4326), default value"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:355
+#, no-c-format
+msgid "1: GML Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:359
+#, no-c-format
+msgid "2: For GML 3 only, remove srsDimension attribute from output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:363
+#, no-c-format
+msgid ""
+"4: For GML 3 only, use <LineString> rather than <Curve> tag for "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:367
+#, no-c-format
+msgid ""
+"16: Declare that datas are lat/lon (e.g srid=4326). Default is to assume "
+"that data are planars. This option is useful for GML 3.1.1 output only, "
+"related to axis order. So if you set it, it will swap the coordinates so "
+"order is lat lon instead of database lon lat."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:373
+#, no-c-format
+msgid "32: Output the box of the geometry (envelope)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:378
+#, no-c-format
+msgid ""
+"The 'namespace prefix' argument may be used to specify a custom namespace "
+"prefix or no prefix (if empty). If null or omitted 'gml' prefix is used"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:382
+#, no-c-format
+msgid "Availability: 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:384
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 prefix support was introduced. Option 4 for GML3 was "
+"introduced to allow using LineString instead of Curve tag for lines. GML3 "
+"Support for Polyhedral surfaces and TINS was introduced. Option 32 was "
+"introduced to output the box."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:385
+#, no-c-format
+msgid "Changed: 2.0.0 use default named args"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:386
+#, no-c-format
+msgid "Enhanced: 2.1.0 id support was introduced, for GML 3."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:388
+#, no-c-format
+msgid "Only version 3+ of ST_AsGML supports Polyhedral Surfaces and TINS."
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:395
+#, no-c-format
+msgid "Examples: Version 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:396
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsGML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"                st_asgml\n"
+"                --------\n"
+"                <gml:Polygon srsName=\"EPSG:4326\"><gml:outerBoundaryIs><gml:"
+"LinearRing><gml:coordinates>0,0 0,1 1,1 1,0 0,0</gml:coordinates></gml:"
+"LinearRing></gml:outerBoundaryIs></gml:Polygon>]]>"
+msgstr ""
+"<![CDATA[SELECT ST_AsGML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"                st_asgml\n"
+"                --------\n"
+"                <gml:Polygon srsName=\"EPSG:4326\"><gml:outerBoundaryIs><gml:"
+"LinearRing><gml:coordinates>0,0 0,1 1,1 1,0 0,0</gml:coordinates></gml:"
+"LinearRing></gml:outerBoundaryIs></gml:Polygon>]]>"
+
+#. Tag: title
+#: reference_output.xml:399
+#, no-c-format
+msgid "Examples: Version 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:400
+#, no-c-format
+msgid ""
+"-- Flip coordinates and output extended EPSG (16 | 1)--\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('POINT(5.234234233242 "
+"6.34534534534)',4326), 5, 17);\n"
+"                        st_asgml\n"
+"                        --------\n"
+"                <gml:Point srsName=\"urn:ogc:def:crs:EPSG::4326\"><gml:"
+"pos>6.34535 5.23423</gml:pos></gml:Point>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:401
+#, no-c-format
+msgid ""
+"-- Output the envelope (32) --\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('LINESTRING(1 2, 3 4, 10 "
+"20)',4326), 5, 32);\n"
+"                st_asgml\n"
+"                --------\n"
+"        <gml:Envelope srsName=\"EPSG:4326\">\n"
+"                <gml:lowerCorner>1 2</gml:lowerCorner>\n"
+"                <gml:upperCorner>10 20</gml:upperCorner>\n"
+"        </gml:Envelope>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:403
+#, no-c-format
+msgid ""
+"-- Output the envelope (32) , reverse (lat lon instead of lon lat) (16), "
+"long srs (1)= 32 | 16 | 1 = 49 --\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('LINESTRING(1 2, 3 4, 10 "
+"20)',4326), 5, 49);\n"
+"        st_asgml\n"
+"        --------\n"
+"<gml:Envelope srsName=\"urn:ogc:def:crs:EPSG::4326\">\n"
+"        <gml:lowerCorner>2 1</gml:lowerCorner>\n"
+"        <gml:upperCorner>20 10</gml:upperCorner>\n"
+"</gml:Envelope>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:405
+#, no-c-format
+msgid ""
+"-- Polyhedral Example --\n"
+"SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )'));\n"
+"        st_asgml\n"
+"        --------\n"
+"<![CDATA[ <gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 0 0 "
+"1 0 1 1 0 1 0 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 0 1 "
+"0 1 1 0 1 0 0 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 1 0 "
+"0 1 0 1 0 0 1 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">1 1 0 1 1 "
+"1 1 0 1 1 0 0 1 1 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 1 0 0 1 "
+"1 1 1 1 1 1 0 0 1 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 1 1 0 "
+"1 1 1 1 0 1 1 0 0 1</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:418
+#, no-c-format
+msgid "ST_AsHEXEWKB"
+msgstr "ST_AsHEXEWKB"
+
+#. Tag: refpurpose
+#: reference_output.xml:420
+#, no-c-format
+msgid ""
+"Returns a Geometry in HEXEWKB format (as text) using either little-endian "
+"(NDR) or big-endian (XDR) encoding."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:425
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsHEXEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>NDRorXDR</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsHEXEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_AsHEXEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>NDRorXDR</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsHEXEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_output.xml:442
+#, no-c-format
+msgid ""
+"Returns a Geometry in HEXEWKB format (as text) using either little-endian "
+"(NDR) or big-endian (XDR) encoding. If no encoding is specified, then NDR is "
+"used."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:446
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:454
+#, no-c-format
+msgid ""
+"SELECT ST_AsHEXEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"                which gives same answer as\n"
+"\n"
+"                SELECT ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326)::text;\n"
+"\n"
+"                st_ashexewkb\n"
+"                --------\n"
+"                0103000020E6100000010000000500\n"
+"                00000000000000000000000000000000\n"
+"                00000000000000000000000000000000F03F\n"
+"                000000000000F03F000000000000F03F000000000000F03\n"
+"                F000000000000000000000000000000000000000000000000"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:460
+#, no-c-format
+msgid "ST_AsKML"
+msgstr "ST_AsKML"
+
+#. Tag: refpurpose
+#: reference_output.xml:462
+#, no-c-format
+msgid ""
+"Return the geometry as a KML element. Several variants. Default version=2, "
+"default precision=15"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:466
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsKML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsKML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: para
+#: reference_output.xml:498
+#, no-c-format
+msgid ""
+"Return the geometry as a Keyhole Markup Language (KML) element. There are "
+"several variants of this function. maximum number of decimal places used in "
+"output (defaults to 15), version default to 2 and default namespace is no "
+"prefix."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:502
+#, no-c-format
+msgid ""
+"Version 1: ST_AsKML(geom_or_geog, maxdecimaldigits) / version=2 / "
+"maxdecimaldigits=15"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:503
+#, no-c-format
+msgid ""
+"Version 2: ST_AsKML(version, geom_or_geog, maxdecimaldigits, nprefix) "
+"maxdecimaldigits=15 / nprefix=NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:506
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with Proj support. Use <xref linkend="
+"\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:510
+#, no-c-format
+msgid ""
+"Availability: 1.2.2 - later variants that include version param came in 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:513
+#, no-c-format
+msgid "Enhanced: 2.0.0 - Add prefix namespace. Default is no prefix"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:516
+#, no-c-format
+msgid "Changed: 2.0.0 - uses default args and supports named args"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:520
+#, no-c-format
+msgid "AsKML output will not work with geometries that do not have an SRID"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:528
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsKML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"\n"
+"                st_askml\n"
+"                --------\n"
+"                <Polygon><outerBoundaryIs><LinearRing><coordinates>0,0 0,1 "
+"1,1 1,0 0,0</coordinates></LinearRing></outerBoundaryIs></Polygon>\n"
+"\n"
+"                --3d linestring\n"
+"                SELECT ST_AsKML('SRID=4326;LINESTRING(1 2 3, 4 5 6)');\n"
+"                <LineString><coordinates>1,2,3 4,5,6</coordinates></"
+"LineString>\n"
+"                ]]>"
+msgstr ""
+"<![CDATA[SELECT ST_AsKML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"\n"
+"                st_askml\n"
+"                --------\n"
+"                <Polygon><outerBoundaryIs><LinearRing><coordinates>0,0 0,1 "
+"1,1 1,0 0,0</coordinates></LinearRing></outerBoundaryIs></Polygon>\n"
+"\n"
+"                --3d linestring\n"
+"                SELECT ST_AsKML('SRID=4326;LINESTRING(1 2 3, 4 5 6)');\n"
+"                <LineString><coordinates>1,2,3 4,5,6</coordinates></"
+"LineString>\n"
+"                ]]>"
+
+#. Tag: para
+#: reference_output.xml:533
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsGML\"/>"
+msgstr ", <xref linkend=\"ST_AsGML\"/>"
+
+#. Tag: refname
+#: reference_output.xml:538
+#, no-c-format
+msgid "ST_AsSVG"
+msgstr "ST_AsSVG"
+
+#. Tag: refpurpose
+#: reference_output.xml:540
+#, no-c-format
+msgid ""
+"Returns a Geometry in SVG path data given a geometry or geography object."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:544
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_output.xml:563
+#, no-c-format
+msgid ""
+"Return the geometry as Scalar Vector Graphics (SVG) path data. Use 1 as "
+"second argument to have the path data implemented in terms of relative "
+"moves, the default (or 0) uses absolute moves. Third argument may be used to "
+"reduce the maximum number of decimal digits used in output (defaults to 15). "
+"Point geometries will be rendered as cx/cy when 'rel' arg is 0, x/y when "
+"'rel' is 1. Multipoint geometries are delimited by commas (\",\"), "
+"GeometryCollection geometries are delimited by semicolons (\";\")."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:573
+#, no-c-format
+msgid ""
+"Availability: 1.2.2. Availability: 1.4.0 Changed in PostGIS 1.4.0 to include "
+"L command in absolute path to conform to <ulink url=\"http://www.w3.org/TR/"
+"SVG/paths.html#PathDataBNF\">http://www.w3.org/TR/SVG/paths."
+"html#PathDataBNF</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:576
+#, no-c-format
+msgid "Changed: 2.0.0 to use default args and support named args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:581
+#, no-c-format
+msgid ""
+"SELECT ST_AsSVG(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                st_assvg\n"
+"                --------\n"
+"                M 0 0 L 0 -1 1 -1 1 0 Z"
+msgstr ""
+"SELECT ST_AsSVG(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                st_assvg\n"
+"                --------\n"
+"                M 0 0 L 0 -1 1 -1 1 0 Z"
+
+#. Tag: refname
+#: reference_output.xml:587
+#, no-c-format
+msgid "ST_AsX3D"
+msgstr "ST_AsX3D"
+
+#. Tag: refpurpose
+#: reference_output.xml:589
+#, no-c-format
+msgid ""
+"Returns a Geometry in X3D xml node element format: ISO-IEC-19776-1.2-"
+"X3DEncodings-XML"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:594
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsX3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_AsX3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef>"
+
+#. Tag: para
+#: reference_output.xml:606
+#, no-c-format
+msgid ""
+"Returns a geometry as an X3D xml formatted node element <ulink url=\"http://"
+"www.web3d.org/standards/number/19776-1\">http://www.web3d.org/standards/"
+"number/19776-1</ulink>. If <varname>maxdecimaldigits</varname> (precision) "
+"is not specified then defaults to 15."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:608
+#, no-c-format
+msgid ""
+"There are various options for translating PostGIS geometries to X3D since "
+"X3D geometry types don't map directly to PostGIS geometry types and some "
+"newer X3D types that might be better mappings we ahve avoided since most "
+"rendering tools don't currently support them. These are the mappings we have "
+"settled on. Feel free to post a bug ticket if you have thoughts on the idea "
+"or ways we can allow people to denote their preferred mappings."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:610
+#, no-c-format
+msgid "Below is how we currently map PostGIS 2D/3D types to X3D types"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:617
+#, no-c-format
+msgid "PostGIS Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:618
+#, no-c-format
+msgid "2D X3D Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:619
+#, no-c-format
+msgid "3D X3D Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:624
+#, no-c-format
+msgid "LINESTRING"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:625 reference_output.xml:630
+#, no-c-format
+msgid "not yet implemented - will be PolyLine2D"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:626
+#, no-c-format
+msgid "LineSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:629
+#, no-c-format
+msgid "MULTILINESTRING"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:631
+#, no-c-format
+msgid "IndexedLineSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:634
+#, no-c-format
+msgid "MULTIPOINT"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:635
+#, no-c-format
+msgid "Polypoint2D"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:636
+#, no-c-format
+msgid "PointSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:639
+#, no-c-format
+msgid "POINT"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:640 reference_output.xml:641
+#, no-c-format
+msgid "outputs the space delimited coordinates"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:644
+#, no-c-format
+msgid "(MULTI) POLYGON, POLYHEDRALSURFACE"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:645
+#, no-c-format
+msgid "Invalid X3D markup"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:646
+#, no-c-format
+msgid "IndexedFaceSet (inner rings currently output as another faceset)"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:649
+#, no-c-format
+msgid "<entry>TIN</entry>"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:650
+#, no-c-format
+msgid "TriangleSet2D (Not Yet Implemented)"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:651
+#, no-c-format
+msgid "IndexedTriangleSet"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:656
+#, no-c-format
+msgid ""
+"2D geometry support not yet complete. Inner rings currently just drawn as "
+"separate polygons. We are working on these."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:657
+#, no-c-format
+msgid ""
+"Lots of advancements happening in 3D space particularly with <ulink url="
+"\"http://www.web3d.org/x3d/wiki/index.php/X3D_and_HTML5#Goals:"
+"_X3D_and_HTML5\">X3D Integration with HTML5</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:658
+#, no-c-format
+msgid ""
+"There is also a nice open source X3D viewer you can use to view rendered "
+"geometries. Free Wrl <ulink url=\"http://freewrl.sourceforge.net/\">http://"
+"freewrl.sourceforge.net/</ulink> binaries available for Mac, Linux, and "
+"Windows. Use the FreeWRL_Launcher packaged to view the geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:659
+#, no-c-format
+msgid ""
+"Also check out <ulink url=\"https://github.com/robe2/postgis_x3d_viewer"
+"\">PostGIS minimalist X3D viewer</ulink> that utilizes this function and "
+"<ulink url=\"http://www.x3dom.org/\">x3dDom html/js open source toolkit</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:660
+#, no-c-format
+msgid "Availability: 2.0.0: ISO-IEC-19776-1.2-X3DEncodings-XML"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:672
+#, no-c-format
+msgid ""
+"Example: Create a fully functional X3D document - This will generate a cube "
+"that is viewable in FreeWrl and other X3D viewers."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:673
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/"
+"specifications/x3d-3.0.dtd\">\n"
+"<X3D>\n"
+"  <Scene>\n"
+"    <Transform>\n"
+"      <Shape>\n"
+"       <Appearance>\n"
+"            <Material emissiveColor=''0 0 1''/>   \n"
+"       </Appearance> ' || \n"
+"       ST_AsX3D( ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )')) ||\n"
+"      '</Shape>\n"
+"    </Transform>\n"
+"  </Scene>\n"
+"</X3D>' As x3ddoc;]]>\n"
+"\n"
+"                x3ddoc\n"
+"                --------\n"
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/"
+"specifications/x3d-3.0.dtd\">\n"
+"<X3D>\n"
+"  <Scene>\n"
+"    <Transform>\n"
+"      <Shape>\n"
+"       <Appearance>\n"
+"            <Material emissiveColor='0 0 1'/>   \n"
+"       </Appearance> \n"
+"       <IndexedFaceSet  coordIndex='0 1 2 3 -1 4 5 6 7 -1 8 9 10 11 -1 12 13 "
+"14 15 -1 16 17 18 19 -1 20 21 22 23'>\n"
+"            <Coordinate point='0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 "
+"0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 "
+"0 1 1 0 1 1 1 1 0 1 1' />\n"
+"      </IndexedFaceSet>\n"
+"      </Shape>\n"
+"    </Transform>\n"
+"  </Scene>\n"
+"</X3D>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:676
+#, no-c-format
+msgid "Example: An Octagon elevated 3 Units and decimal precision of 6"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:677
+#, no-c-format
+msgid ""
+"SELECT ST_AsX3D(\n"
+"ST_Translate(\n"
+"    ST_Force_3d(\n"
+"        ST_Buffer(ST_Point(10,10),5, 'quad_segs=2')), 0,0,\n"
+"    3)\n"
+"  ,6) As x3dfrag;\n"
+"\n"
+"x3dfrag\n"
+"--------\n"
+"<![CDATA[<IndexedFaceSet coordIndex=\"0 1 2 3 4 5 6 7\">\n"
+"    <Coordinate point=\"15 10 3 13.535534 6.464466 3 10 5 3 6.464466 "
+"6.464466 3 5 10 3 6.464466 13.535534 3 10 15 3 13.535534 13.535534 3 \" />\n"
+"</IndexedFaceSet>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:680
+#, no-c-format
+msgid "Example: TIN"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:681
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsX3D(ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')) As x3dfrag;]]>\n"
+"\n"
+"                x3dfrag\n"
+"                --------\n"
+"<![CDATA[<IndexedTriangleSet  index='0 1 2 3 4 5'><Coordinate point='0 0 0 0 "
+"0 1 0 1 0 0 0 0 0 1 0 1 1 0'/></IndexedTriangleSet>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:684
+#, no-c-format
+msgid "Example: Closed multilinestring (the boundary of a polygon with holes)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:685
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsX3D(\n"
+"                    ST_GeomFromEWKT('MULTILINESTRING((20 0 10,16 -12 10,0 "
+"-16 10,-12 -12 10,-20 0 10,-12 16 10,0 24 10,16 16 10,20 0 10),\n"
+"  (12 0 10,8 8 10,0 12 10,-8 8 10,-8 0 10,-8 -4 10,0 -8 10,8 -4 10,12 0 "
+"10))') \n"
+") As x3dfrag;]]>\n"
+"\n"
+"                x3dfrag\n"
+"                --------\n"
+"<![CDATA[<IndexedLineSet  coordIndex='0 1 2 3 4 5 6 7 0 -1 8 9 10 11 12 13 "
+"14 15 8'>\n"
+"    <Coordinate point='20 0 10 16 -12 10 0 -16 10 -12 -12 10 -20 0 10 -12 16 "
+"10 0 24 10 16 16 10 12 0 10 8 8 10 0 12 10 -8 8 10 -8 0 10 -8 -4 10 0 -8 10 "
+"8 -4 10 ' />\n"
+" </IndexedLineSet>]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:691
+#, no-c-format
+msgid "ST_GeoHash"
+msgstr "ST_GeoHash"
+
+#. Tag: refpurpose
+#: reference_output.xml:693
+#, no-c-format
+msgid "Return a GeoHash representation of the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:698
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoHash</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxchars=full_precision_of_point</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_GeoHash</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxchars=full_precision_of_point</parameter></paramdef>"
+
+#. Tag: para
+#: reference_output.xml:709
+#, no-c-format
+msgid ""
+"Return a GeoHash representation (<ulink url=\"http://en.wikipedia.org/wiki/"
+"Geohash\">http://en.wikipedia.org/wiki/Geohash</ulink>) of the geometry. A "
+"GeoHash encodes a point into a text form that is sortable and searchable "
+"based on prefixing. A shorter GeoHash is a less precise representation of a "
+"point. It can also be thought of as a box, that contains the actual point."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:711
+#, no-c-format
+msgid ""
+"If no <varname>maxchars</varname> is specficified ST_GeoHash returns a "
+"GeoHash based on full precision of the input geometry type. Points return a "
+"GeoHash with 20 characters of precision (about enough to hold the full "
+"double precision of the input). Other types return a GeoHash with a variable "
+"amount of precision, based on the size of the feature. Larger features are "
+"represented with less precision, smaller features with more precision. The "
+"idea is that the box implied by the GeoHash will always contain the input "
+"feature."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:713
+#, no-c-format
+msgid ""
+"If <varname>maxchars</varname> is specified ST_GeoHash returns a GeoHash "
+"with at most that many characters so a possibly lower precision "
+"representation of the input geometry. For non-points, the starting point of "
+"the calculation is the center of the bounding box of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:715
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:718
+#, no-c-format
+msgid ""
+"ST_GeoHash will not work with geometries that are not in geographic (lon/"
+"lat) coordinates."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:726
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326));\n"
+"\n"
+"         st_geohash\n"
+"----------------------\n"
+" c0w3hf1s70w3hf1s70w3\n"
+"\n"
+"SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326),5);\n"
+"\n"
+" st_geohash\n"
+"------------\n"
+" c0w3h\n"
+"                ]]>"
+msgstr ""
+"<![CDATA[SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326));\n"
+"\n"
+"         st_geohash\n"
+"----------------------\n"
+" c0w3hf1s70w3hf1s70w3\n"
+"\n"
+"SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326),5);\n"
+"\n"
+" st_geohash\n"
+"------------\n"
+" c0w3h\n"
+"                ]]>"
+
+#. Tag: refname
+#: reference_output.xml:737
+#, no-c-format
+msgid "ST_AsText"
+msgstr "ST_AsText"
+
+#. Tag: refpurpose
+#: reference_output.xml:738
+#, no-c-format
+msgid ""
+"Return the Well-Known Text (WKT) representation of the geometry/geography "
+"without SRID metadata."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:742
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsText</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_AsText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsText</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_output.xml:757
+#, no-c-format
+msgid "Returns the Well-Known Text representation of the geometry/geography."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:760
+#, no-c-format
+msgid ""
+"The WKT spec does not include the SRID. To get the SRID as part of the data, "
+"use the non-standard PostGIS <xref linkend=\"ST_AsEWKT\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:767
+#, no-c-format
+msgid ""
+"ST_AsText is the reverse of <xref linkend=\"ST_GeomFromText\"/>. Use <xref "
+"linkend=\"ST_GeomFromText\"/> to convert to a postgis geometry from "
+"ST_AsText representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:770
+#, no-c-format
+msgid "Availability: 1.5 - support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:772
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:780
+#, no-c-format
+msgid ""
+"SELECT ST_AsText('01030000000100000005000000000000000000\n"
+"000000000000000000000000000000000000000000000000\n"
+"F03F000000000000F03F000000000000F03F000000000000F03\n"
+"F000000000000000000000000000000000000000000000000');\n"
+"\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)"
+msgstr ""
+"SELECT ST_AsText('01030000000100000005000000000000000000\n"
+"000000000000000000000000000000000000000000000000\n"
+"F03F000000000000F03F000000000000F03F000000000000F03\n"
+"F000000000000000000000000000000000000000000000000');\n"
+"\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_output.xml:787
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>"
+
+#. Tag: refname
+#: reference_output.xml:794
+#, no-c-format
+msgid "ST_AsLatLonText"
+msgstr "ST_AsLatLonText"
+
+#. Tag: refpurpose
+#: reference_output.xml:795
+#, no-c-format
+msgid "Return the Degrees, Minutes, Seconds representation of the given point."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:799
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsLatLonText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsLatLonText</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>format</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>ST_AsLatLonText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsLatLonText</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>format</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_output.xml:815
+#, no-c-format
+msgid "Returns the Degrees, Minutes, Seconds representation of the point."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:818
+#, no-c-format
+msgid ""
+"It is assumed the point is in a lat/lon projection. The X (lon) and Y (lat) "
+"coordinates are normalized in the output to the \"normal\" range (-180 to "
+"+180 for lon, -90 to +90 for lat)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:821
+#, no-c-format
+msgid ""
+"The text parameter is a format string containing the format for the "
+"resulting text, similar to a date format string. Valid tokens are \"D\" for "
+"degrees, \"M\" for minutes, \"S\" for seconds, and \"C\" for cardinal "
+"direction (NSEW). DMS tokens may be repeated to indicate desired width and "
+"precision (\"SSS.SSSS\" means \" 1.0023\")."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:826
+#, no-c-format
+msgid ""
+"\"M\", \"S\", and \"C\" are optional. If \"C\" is omitted, degrees are shown "
+"with a \"-\" sign if south or west. If \"S\" is omitted, minutes will be "
+"shown as decimal with as many digits of precision as you specify. If \"M\" "
+"is also omitted, degrees are shown as decimal with as many digits precision "
+"as you specify."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:831
+#, no-c-format
+msgid ""
+"If the format string is omitted (or zero-length) a default format will be "
+"used."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:837
+#, no-c-format
+msgid "Availability: 2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:843
+#, no-c-format
+msgid "Default format."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:844
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+msgstr ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+
+#. Tag: para
+#: reference_output.xml:845
+#, no-c-format
+msgid "Providing a format (same as the default)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:846
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"C'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+msgstr ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"C'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+
+#. Tag: para
+#: reference_output.xml:847
+#, no-c-format
+msgid "Characters other than D, M, S, C and . are just passed through."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:848
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D degrees, M "
+"minutes, S seconds to the C'));\n"
+"                                   st_aslatlontext                                    \n"
+"--------------------------------------------------------------------------------------\n"
+" 2 degrees, 19 minutes, 30 seconds to the S 3 degrees, 14 minutes, 3 seconds "
+"to the W"
+msgstr ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D degrees, M "
+"minutes, S seconds to the C'));\n"
+"                                   st_aslatlontext                                    \n"
+"--------------------------------------------------------------------------------------\n"
+" 2 degrees, 19 minutes, 30 seconds to the S 3 degrees, 14 minutes, 3 seconds "
+"to the W"
+
+#. Tag: para
+#: reference_output.xml:849
+#, no-c-format
+msgid "Signed degrees instead of cardinal directions."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:850
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" -2°19'29.928\" -3°14'3.243\""
+msgstr ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" -2°19'29.928\" -3°14'3.243\""
+
+#. Tag: para
+#: reference_output.xml:851
+#, no-c-format
+msgid "Decimal degrees."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:852
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees "
+"C'));\n"
+"          st_aslatlontext          \n"
+"-----------------------------------\n"
+" 2.3250 degrees S 3.2342 degrees W"
+msgstr ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees "
+"C'));\n"
+"          st_aslatlontext          \n"
+"-----------------------------------\n"
+" 2.3250 degrees S 3.2342 degrees W"
+
+#. Tag: para
+#: reference_output.xml:853
+#, no-c-format
+msgid "Excessively large values are normalized."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:854
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));\n"
+"        st_aslatlontext        \n"
+"-------------------------------\n"
+" 72°19'29.928\"S 57°45'56.757\"E"
+msgstr ""
+"SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));\n"
+"        st_aslatlontext        \n"
+"-------------------------------\n"
+" 72°19'29.928\"S 57°45'56.757\"E"
+
+#. Tag: refname
+#: reference_output.xml:862
+#, no-c-format
+msgid "ST_AsTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:863
+#, no-c-format
+msgid "Returns the geometry as TWKB, Tiny WKB"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:868
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsTWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID=null</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>include "
+"sizes=false</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include bounding boxes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:880 reference_output.xml:946
+#, no-c-format
+msgid ""
+"Returns the geometry in TWKB format. TWKB is a new compressed binary format."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:881 reference_output.xml:948
+#, no-c-format
+msgid ""
+"The second parameter is an integer used to define the number of coordinate "
+"decimals in the output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:882 reference_output.xml:949
+#, no-c-format
+msgid ""
+"The third parameter is optional. It is used to give each TWKB-geometry an "
+"unique ID"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:883 reference_output.xml:950
+#, no-c-format
+msgid ""
+"The fourth parameter is optional. If it is set to true, the size of the "
+"geometry is included"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:885
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/TWKB/Specification\">https://github.com/TWKB/Specification</"
+"ulink> , and code for building a client can be found <ulink url=\"https://"
+"github.com/TWKB/twkb.js\">https://github.com/TWKB/twkb.js</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:888
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So PointM and PointZ will give "
+"the same twkb representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:891 reference_output.xml:956 reference_output.xml:993
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:897
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKB('LINESTRING(1 1,5 5)'::geometry,0,1);\n"
+"                 st_astwkb                  \n"
+"--------------------------------------------\n"
+"\\x0142020202020808"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:902 reference_output.xml:967
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_AsEWKB\"/>, <xref "
+"linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:908
+#, no-c-format
+msgid "ST_AsTWKBAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:909
+#, no-c-format
+msgid "Aggregates the geometries and returns as TWKB"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:913
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>include sizes</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include sizes</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>include bounding boxes</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:947
+#, no-c-format
+msgid ""
+"This is the aggregate version of ST_AsTWKB. It aggregates and returns the "
+"geometry in TWKB-format. In the resulting TWKB-geometry each individual ID "
+"of the input geometries is stored."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:952
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/nicklasaven/TWKB\">https://github.com/nicklasaven/TWKB</ulink> , "
+"and code for building a client can be found <ulink url=\"https://github.com/"
+"nicklasaven/twkb_web\">https://github.com/nicklasaven/twkb_web</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:962
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKBAgg(geom,0,id) FROM\n"
+"(SELECT 'LINESTRING(1 1,5 5)'::geometry geom, 1 AS id\n"
+"UNION ALL\n"
+"SELECT 'LINESTRING(6 5, 1 7)'::geometry AS geom, 2 AS id) foo;\n"
+"                               st_astwkbagg                                \n"
+"----------------------------------------------------------------------------\n"
+"\\x015602020202020808040202000904"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:973
+#, no-c-format
+msgid "ST_AsEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:974
+#, no-c-format
+msgid "Returns an Encoded Polyline from a LineString geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:979
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsEncodedPolyline</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:990
+#, no-c-format
+msgid "Returns the geometry as an Encoded Polyline."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:998
+#, no-c-format
+msgid ""
+"ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 "
+"40.7,-126.453 43.252)'));\n"
+"--result--\n"
+"|_p~iF~ps|U_ulLnnqC_mqNvxq`@"
+msgstr ""
diff --git a/doc/po/fr/reference_processing.xml.po b/doc/po/fr/reference_processing.xml.po
new file mode 100644
index 0000000..9df0c91
--- /dev/null
+++ b/doc/po/fr/reference_processing.xml.po
@@ -0,0 +1,4110 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-17 19:33+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_processing.xml:3
+#, no-c-format
+msgid "Geometry Processing"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:6
+#, no-c-format
+msgid "ST_Buffer"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:8
+#, no-c-format
+msgid ""
+"(T) For geometry: Returns a geometry that represents all points whose "
+"distance from this Geometry is less than or equal to distance. Calculations "
+"are in the Spatial Reference System of this Geometry. For geography: Uses a "
+"planar transform wrapper. Introduced in 1.5 support for different end cap "
+"and mitre settings to control shape. buffer_style options: quad_segs=#,"
+"endcap=round|flat|square,join=round|mitre|bevel,mitre_limit=#.#"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:16
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Buffer</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius_of_buffer</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Buffer</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>num_seg_quarter_circle</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>buffer_style_parameters</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geography <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer_in_meters</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Buffer</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius_of_buffer</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Buffer</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>num_seg_quarter_circle</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>buffer_style_parameters</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geography <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer_in_meters</parameter></paramdef> </funcprototype>"
+
+#. Tag: title
+#: reference_processing.xml:47 reference_processing.xml:221
+#: reference_processing.xml:300 reference_processing.xml:355
+#: reference_processing.xml:421 reference_processing.xml:570
+#: reference_processing.xml:638 reference_processing.xml:686
+#: reference_processing.xml:785 reference_processing.xml:865
+#: reference_processing.xml:923 reference_processing.xml:992
+#: reference_processing.xml:1039 reference_processing.xml:1091
+#: reference_processing.xml:1156 reference_processing.xml:1198
+#: reference_processing.xml:1257 reference_processing.xml:1304
+#: reference_processing.xml:1363 reference_processing.xml:1415
+#: reference_processing.xml:1469 reference_processing.xml:1622
+#: reference_processing.xml:1658 reference_processing.xml:1735
+#: reference_processing.xml:1785 reference_processing.xml:1830
+#: reference_processing.xml:1872 reference_processing.xml:1984
+#: reference_processing.xml:2077 reference_processing.xml:2146
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:49
+#, no-c-format
+msgid ""
+"Returns a geometry/geography that represents all points whose distance from "
+"this Geometry/geography is less than or equal to distance."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:51
+#, no-c-format
+msgid ""
+"Geometry: Calculations are in the Spatial Reference System of the geometry. "
+"Introduced in 1.5 support for different end cap and mitre settings to "
+"control shape."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:54
+#, no-c-format
+msgid ""
+"Negative radii: For polygons, a negative radius can be used, which will "
+"shrink the polygon rather than expanding it."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:55
+#, no-c-format
+msgid ""
+"Geography: For geography this is really a thin wrapper around the geometry "
+"implementation. It first determines the best SRID that fits the bounding box "
+"of the geography object (favoring UTM, Lambert Azimuthal Equal Area (LAEA) "
+"north/south pole, and falling back on mercator in worst case scenario) and "
+"then buffers in that planar spatial ref and retransforms back to WGS84 "
+"geography."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:57
+#, no-c-format
+msgid ""
+"For geography this may not behave as expected if object is sufficiently "
+"large that it falls between two UTM zones or crosses the dateline"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:59
+#, no-c-format
+msgid ""
+"Availability: 1.5 - ST_Buffer was enhanced to support different endcaps and "
+"join types. These are useful for example to convert road linestrings into "
+"polygon roads with flat or square edges instead of rounded edges. Thin "
+"wrapper for geography was added. - requires GEOS >= 3.2 to take advantage "
+"of advanced geometry functionality."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:62
+#, no-c-format
+msgid ""
+"The optional third parameter (currently only applies to geometry) can either "
+"specify number of segments used to approximate a quarter circle (integer "
+"case, defaults to 8) or a list of blank-separated key=value pairs (string "
+"case) to tweak operations as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:66 reference_processing.xml:1492
+#, no-c-format
+msgid ""
+"'quad_segs=#' : number of segments used to approximate a quarter circle "
+"(defaults to 8)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:69
+#, no-c-format
+msgid ""
+"'endcap=round|flat|square' : endcap style (defaults to \"round\", needs "
+"GEOS-3.2 or higher for a different value). 'butt' is also accepted as a "
+"synonym for 'flat'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:72
+#, no-c-format
+msgid ""
+"'join=round|mitre|bevel' : join style (defaults to \"round\", needs GEOS-3.2 "
+"or higher for a different value). 'miter' is also accepted as a synonym for "
+"'mitre'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:75
+#, no-c-format
+msgid ""
+"'mitre_limit=#.#' : mitre ratio limit (only affects mitered join style). "
+"'miter_limit' is also accepted as a synonym for 'mitre_limit'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:80
+#, no-c-format
+msgid "Units of radius are measured in units of the spatial reference system."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:81
+#, no-c-format
+msgid ""
+"The inputs can be POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
+"POLYGONS, MULTIPOLYGONS, and GeometryCollections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:82
+#, no-c-format
+msgid ""
+"This function ignores the third dimension (z) and will always give a 2-d "
+"buffer even when presented with a 3d-geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:84 reference_processing.xml:309
+#: reference_processing.xml:1509 reference_processing.xml:1839
+#: reference_processing.xml:2097
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:85 reference_processing.xml:589
+#: reference_processing.xml:796 reference_processing.xml:1116
+#: reference_processing.xml:1995 reference_processing.xml:2106
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:86
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.17"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:88
+#, no-c-format
+msgid ""
+"People often make the mistake of using this function to try to do radius "
+"searches. Creating a buffer to to a radius search is slow and pointless. Use "
+"<xref linkend=\"ST_DWithin\"/> instead."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:93 reference_processing.xml:238
+#: reference_processing.xml:317 reference_processing.xml:391
+#: reference_processing.xml:459 reference_processing.xml:595
+#: reference_processing.xml:652 reference_processing.xml:803
+#: reference_processing.xml:1007 reference_processing.xml:1120
+#: reference_processing.xml:1273 reference_processing.xml:1321
+#: reference_processing.xml:1432 reference_processing.xml:1518
+#: reference_processing.xml:1755 reference_processing.xml:1801
+#: reference_processing.xml:1845 reference_processing.xml:1888
+#: reference_processing.xml:2003 reference_processing.xml:2113
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:104
+#, no-c-format
+msgid "quad_segs=8 (default)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:107
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=8');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:115
+#, no-c-format
+msgid "quad_segs=2 (lame)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:127
+#, no-c-format
+msgid "endcap=round join=round (default)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:130
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=round join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:138
+#, no-c-format
+msgid "endcap=square"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:141
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=square join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:149
+#, no-c-format
+msgid "endcap=flat"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:152
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=flat join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:161
+#, no-c-format
+msgid "join=bevel"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:164
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=bevel');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:172
+#, no-c-format
+msgid "join=mitre mitre_limit=5.0 (default mitre limit)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:175
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=mitre mitre_limit=5.0');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:183
+#, no-c-format
+msgid "join=mitre mitre_limit=1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:186
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=mitre mitre_limit=1.0');"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:193
+#, no-c-format
+msgid ""
+"--A buffered point approximates a circle\n"
+"-- A buffered point forcing approximation of (see diagram)\n"
+"-- 2 points per circle is poly with 8 sides (see diagram)\n"
+"SELECT ST_NPoints(ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50)) As "
+"promisingcircle_pcount,\n"
+"ST_NPoints(ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50, 2)) As "
+"lamecircle_pcount;\n"
+"\n"
+"promisingcircle_pcount | lamecircle_pcount\n"
+"------------------------+-------------------\n"
+"                         33 |                9\n"
+"\n"
+"--A lighter but lamer circle\n"
+"-- only 2 points per quarter circle is an octagon\n"
+"--Below is a 100 meter octagon\n"
+"-- Note coordinates are in NAD 83 long lat which we transform\n"
+"to Mass state plane meter and then buffer to get measurements in meters;\n"
+"SELECT ST_AsText(ST_Buffer(\n"
+"ST_Transform(\n"
+"ST_SetSRID(ST_MakePoint(-71.063526, 42.35785),4269), 26986)\n"
+",100,2)) As octagon;\n"
+"----------------------\n"
+"POLYGON((236057.59057465 900908.759918696,236028.301252769 "
+"900838.049240578,235\n"
+"957.59057465 900808.759918696,235886.879896532 "
+"900838.049240578,235857.59057465\n"
+"900908.759918696,235886.879896532 900979.470596815,235957.59057465 "
+"901008.759918\n"
+"696,236028.301252769 900979.470596815,236057.59057465 900908.759918696))"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:197 reference_processing.xml:272
+#: reference_processing.xml:321 reference_processing.xml:398
+#: reference_processing.xml:548 reference_processing.xml:611
+#: reference_processing.xml:659 reference_processing.xml:760
+#: reference_processing.xml:843 reference_processing.xml:902
+#: reference_processing.xml:970 reference_processing.xml:1014
+#: reference_processing.xml:1134 reference_processing.xml:1176
+#: reference_processing.xml:1230 reference_processing.xml:1280
+#: reference_processing.xml:1334 reference_processing.xml:1387
+#: reference_processing.xml:1438 reference_processing.xml:1600
+#: reference_processing.xml:1636 reference_processing.xml:1706
+#: reference_processing.xml:1762 reference_processing.xml:1806
+#: reference_processing.xml:1850 reference_processing.xml:1959
+#: reference_processing.xml:2044 reference_processing.xml:2120
+#: reference_processing.xml:2174
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:199
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:205
+#, no-c-format
+msgid "ST_BuildArea"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:207
+#, no-c-format
+msgid ""
+"Creates an areal geometry formed by the constituent linework of given "
+"geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:213
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BuildArea</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BuildArea</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:223
+#, no-c-format
+msgid ""
+"Creates an areal geometry formed by the constituent linework of given "
+"geometry. The return type can be a Polygon or MultiPolygon, depending on "
+"input. If the input lineworks do not form polygons NULL is returned. The "
+"inputs can be LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS, and "
+"GeometryCollections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:228
+#, no-c-format
+msgid "This function will assume all inner geometries represent holes"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:231 reference_processing.xml:1375
+#, no-c-format
+msgid ""
+"Input linework must be correctly noded for this function to work properly"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:234
+#, no-c-format
+msgid "Availability: 1.1.0 - requires GEOS >= 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:248
+#, no-c-format
+msgid "This will create a donut"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:251
+#, no-c-format
+msgid ""
+"SELECT ST_BuildArea(ST_Collect(smallc,bigc))\n"
+"FROM (SELECT\n"
+"        ST_Buffer(\n"
+"          ST_GeomFromText('POINT(100 90)'), 25) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As bigc) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:260
+#, no-c-format
+msgid ""
+"This will create a gaping hole inside the circle with prongs sticking out"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:263
+#, no-c-format
+msgid ""
+"SELECT ST_BuildArea(ST_Collect(line,circle))\n"
+"FROM (SELECT\n"
+"        ST_Buffer(\n"
+"                ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)),\n"
+"                                5)  As line,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"\n"
+"--this creates the same gaping hole\n"
+"--but using linestrings instead of polygons\n"
+"SELECT ST_BuildArea(\n"
+"        ST_Collect(ST_ExteriorRing(line),ST_ExteriorRing(circle))\n"
+"        )\n"
+"FROM (SELECT ST_Buffer(\n"
+"        ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190))\n"
+"                ,5)  As line,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:274
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePolygon\"/>, <xref linkend=\"ST_BdPolyFromText\"/>, "
+"<xref linkend=\"ST_BdMPolyFromText\"/>wrappers to this function with "
+"standard OGC interface"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:285
+#, no-c-format
+msgid "ST_ClipByBox2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:286
+#, no-c-format
+msgid "Returns the portion of a geometry falling within a rectangle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:291
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClipByBox2D</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>box2d</type> <parameter>box</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:302
+#, no-c-format
+msgid ""
+"Clips a geometry by a 2D box in a fast but possibly dirty way. The output "
+"geometry is not guaranteed to be valid (self-intersections for a polygon may "
+"be introduced). Topologically invalid input geometries do not result in "
+"exceptions being thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:310
+#, no-c-format
+msgid "Requires GEOS 3.5.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:312
+#, no-c-format
+msgid "Availability: 2.2.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:318
+#, no-c-format
+msgid ""
+"-- Rely on implicit cast from geometry to box2d for the second parameter\n"
+"SELECT ST_ClipByBox2D(the_geom, ST_MakeEnvelope(0,0,10,10)) FROM mytab;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:322
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeBox2D\"/>, <xref linkend=\"ST_MakeEnvelope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:332
+#, no-c-format
+msgid "ST_Collect"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:333
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from a collection of other geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:337
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Collect</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Collect</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+
+#. Tag: para
+#: reference_processing.xml:356
+#, no-c-format
+msgid ""
+"Output type can be a MULTI* or a GEOMETRYCOLLECTION. Comes in 2 variants. "
+"Variant 1 collects 2 geometries. Variant 2 is an aggregate function that "
+"takes a set of geometries and collects them into a single ST_Geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:360
+#, no-c-format
+msgid ""
+"Aggregate version: This function returns a GEOMETRYCOLLECTION or a MULTI "
+"object from a set of geometries. The ST_Collect() function is an \"aggregate"
+"\" function in the terminology of PostgreSQL. That means that it operates on "
+"rows of data, in the same way the SUM() and AVG() functions do. For example, "
+"\"SELECT ST_Collect(GEOM) FROM GEOMTABLE GROUP BY ATTRCOLUMN\" will return a "
+"separate GEOMETRYCOLLECTION for each distinct value of ATTRCOLUMN."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:368
+#, no-c-format
+msgid ""
+"Non-Aggregate version: This function returns a geometry being a collection "
+"of two input geometries. Output type can be a MULTI* or a GEOMETRYCOLLECTION."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:372
+#, no-c-format
+msgid ""
+"ST_Collect and ST_Union are often interchangeable. ST_Collect is in general "
+"orders of magnitude faster than ST_Union because it does not try to dissolve "
+"boundaries or validate that a constructed MultiPolgon doesn't have "
+"overlapping regions. It merely rolls up single geometries into MULTI and "
+"MULTI or mixed geometry types into Geometry Collections. Unfortunately "
+"geometry collections are not well-supported by GIS tools. To prevent "
+"ST_Collect from returning a Geometry Collection when collecting MULTI "
+"geometries, one can use the below trick that utilizes <xref linkend=\"ST_Dump"
+"\"/> to expand the MULTIs out to singles and then regroup them."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:383
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_Collect(geomarray) was introduced. ST_Collect was "
+"enhanced to handle more geometries faster."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:384 reference_processing.xml:591
+#: reference_processing.xml:646 reference_processing.xml:698
+#: reference_processing.xml:889 reference_processing.xml:944
+#: reference_processing.xml:1002 reference_processing.xml:1042
+#: reference_processing.xml:1161 reference_processing.xml:1225
+#: reference_processing.xml:1268 reference_processing.xml:1422
+#: reference_processing.xml:1632 reference_processing.xml:1747
+#: reference_processing.xml:2166
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:385
+#, no-c-format
+msgid ""
+"&curve_support; This method supports Circular Strings and Curves, but will "
+"never return a MULTICURVE or MULTI as one would expect and PostGIS does not "
+"currently support those."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:392
+#, no-c-format
+msgid ""
+"Aggregate example (<ulink url=\"http://postgis.refractions.net/pipermail/"
+"postgis-users/2008-June/020331.html\">http://postgis.refractions.net/"
+"pipermail/postgis-users/2008-June/020331.html</ulink>)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:393
+#, no-c-format
+msgid ""
+"SELECT stusps,\n"
+"           ST_Multi(ST_Collect(f.the_geom)) as singlegeom\n"
+"         FROM (SELECT stusps, (ST_Dump(the_geom)).geom As the_geom\n"
+"                                FROM\n"
+"                                somestatetable ) As f\n"
+"GROUP BY stusps"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:394 reference_processing.xml:2116
+#, no-c-format
+msgid "Non-Aggregate example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:395
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
+"        ST_GeomFromText('POINT(-2 3)') ));\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(1 2,-2 3)\n"
+"\n"
+"--Collect 2 d points\n"
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
+"                ST_GeomFromText('POINT(1 2)') ) );\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(1 2,1 2)\n"
+"\n"
+"--Collect 3d points\n"
+"SELECT ST_AsEWKT(ST_Collect(ST_GeomFromEWKT('POINT(1 2 3)'),\n"
+"                ST_GeomFromEWKT('POINT(1 2 4)') ) );\n"
+"\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" MULTIPOINT(1 2 3,1 2 4)\n"
+"\n"
+" --Example with curves\n"
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)'),\n"
+"ST_GeomFromText('CIRCULARSTRING(220227 150406,2220227 150407,220227 "
+"150406)')));\n"
+"                                                                                                                                st_astext\n"
+"------------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406),\n"
+" CIRCULARSTRING(220227 150406,2220227 150407,220227 150406))\n"
+"\n"
+"--New ST_Collect array construct\n"
+"SELECT ST_Collect(ARRAY(SELECT the_geom FROM sometable));\n"
+"\n"
+"SELECT ST_AsText(ST_Collect(ARRAY[ST_GeomFromText('LINESTRING(1 2, 3 4)'),\n"
+"                        ST_GeomFromText('LINESTRING(3 4, 4 5)')])) As "
+"wktcollect;\n"
+"\n"
+"--wkt collect --\n"
+"MULTILINESTRING((1 2,3 4),(3 4,4 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:399
+#, no-c-format
+msgid ", <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:404
+#, no-c-format
+msgid "ST_ConcaveHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:405
+#, no-c-format
+msgid ""
+"The concave hull of a geometry represents a possibly concave geometry that "
+"encloses all geometries within the set. You can think of it as shrink "
+"wrapping."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:411
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConcaveHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>target_percent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allow_holes=false</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ConcaveHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>target_percent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allow_holes=false</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:422
+#, no-c-format
+msgid ""
+"The concave hull of a geometry represents a possibly concave geometry that "
+"encloses all geometries within the set. Defaults to false for allowing "
+"polygons with holes. The result is never higher than a single polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:426
+#, no-c-format
+msgid ""
+"The target_percent is the target percent of area of convex hull the PostGIS "
+"solution will try to approach before giving up or exiting. One can think of "
+"the concave hull as the geometry you get by vacuum sealing a set of "
+"geometries. The target_percent of 1 will give you the same answer as the "
+"convex hull. A target_percent between 0 and 0.99 will give you something "
+"that should have a smaller area than the convex hull. This is different from "
+"a convex hull which is more like wrapping a rubber band around the set of "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:431
+#, no-c-format
+msgid ""
+"It is usually used with MULTI and Geometry Collections. Although it is not "
+"an aggregate - you can use it in conjunction with ST_Collect or ST_Union to "
+"get the concave hull of a set of points/linestring/polygons "
+"ST_ConcaveHull(ST_Collect(somepointfield), 0.80)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:436
+#, no-c-format
+msgid ""
+"It is much slower to compute than convex hull but encloses the geometry "
+"better and is also useful for image recognition."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:439 reference_processing.xml:587
+#: reference_processing.xml:792 reference_processing.xml:1111
+#: reference_processing.xml:1991
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:440
+#, no-c-format
+msgid ""
+"Note - If you are using with points, linestrings, or geometry collections "
+"use ST_Collect. If you are using with polygons, use ST_Union since it may "
+"fail with invalid geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:443
+#, no-c-format
+msgid ""
+"Note - The smaller you make the target percent, the longer it takes to "
+"process the concave hull and more likely to run into topological exceptions. "
+"Also the more floating points and number of points you accrue. First try a "
+"0.99 which does a first hop, is usually very fast, sometimes as fast as "
+"computing the convex hull, and usually gives much better than 99% of shrink "
+"since it almost always overshoots. Second hope of 0.98 it slower, others get "
+"slower usually quadratically. To reduce precision and float points, use "
+"<xref linkend=\"ST_SimplifyPreserveTopology\"/> or <xref linkend="
+"\"ST_SnapToGrid\"/> after ST_ConcaveHull. ST_SnapToGrid is a bit faster, but "
+"could result in invalid geometries where as ST_SimplifyPreserveTopology "
+"almost always preserves the validity of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:448
+#, no-c-format
+msgid ""
+"More real world examples and brief explanation of the technique are shown "
+"<ulink url=\"http://www.bostongis.com/postgis_concavehull.snippet\">http://"
+"www.bostongis.com/postgis_concavehull.snippet</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:451
+#, no-c-format
+msgid ""
+"Also check out Simon Greener's article on demonstrating ConcaveHull "
+"introduced in Oracle 11G R2. <ulink url=\"http://www.spatialdbadvisor.com/"
+"oracle_spatial_tips_tricks/172/concave-hull-geometries-in-"
+"oracle-11gr2\">http://www.spatialdbadvisor.com/"
+"oracle_spatial_tips_tricks/172/concave-hull-geometries-in-oracle-11gr2</"
+"ulink>. The solution we get at 0.75 target percent of convex hull is similar "
+"to the shape Simon gets with Oracle SDO_CONCAVEHULL_BOUNDARY."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:455 reference_processing.xml:1044
+#: reference_processing.xml:1630 reference_processing.xml:1883
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:460
+#, no-c-format
+msgid ""
+"--Get estimate of infected area based on point observations\n"
+"SELECT d.disease_type,\n"
+"        ST_ConcaveHull(ST_Collect(d.pnt_geom), 0.99) As geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:470
+#, no-c-format
+msgid "ST_ConcaveHull of 2 polygons encased in target 100% shrink concave hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:473
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull \n"
+"-- at target 100% shrink (this is the same as convex hull - since no "
+"shrink)\n"
+"SELECT \n"
+"        ST_ConcaveHull(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ), 1)  \n"
+"         As convexhull;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:480
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull at target 90% of convex hull area"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:484
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull at target 90% shrink\n"
+"SELECT \n"
+"        ST_ConcaveHull(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ), 0.9)  \n"
+"         As target_90;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:493
+#, no-c-format
+msgid "L Shape points overlaid with convex hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:496
+#, no-c-format
+msgid ""
+"-- this produces a table of 42 points that form an L shape\n"
+"SELECT (ST_DumpPoints(ST_GeomFromText(\n"
+"'MULTIPOINT(14 14,34 14,54 14,74 14,94 14,114 14,134 14,\n"
+"150 14,154 14,154 6,134 6,114 6,94 6,74 6,54 6,34 6,\n"
+"14 6,10 6,8 6,7 7,6 8,6 10,6 30,6 50,6 70,6 90,6 110,6 130,\n"
+"6 150,6 170,6 190,6 194,14 194,14 174,14 154,14 134,14 114,\n"
+"14 94,14 74,14 54,14 34,14 14)'))).geom \n"
+"        INTO TABLE l_shape;\n"
+"\n"
+"SELECT ST_ConvexHull(ST_Collect(geom))\n"
+"FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:503
+#, no-c-format
+msgid "ST_ConcaveHull of L points at target 99% of convex hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:506
+#, no-c-format
+msgid ""
+"SELECT ST_ConcaveHull(ST_Collect(geom), 0.99)\n"
+"        FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:515
+#, no-c-format
+msgid "Concave Hull of L points at target 80% convex hull area"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:518
+#, no-c-format
+msgid ""
+"-- Concave Hull L shape points\n"
+"        -- at target 80% of convexhull\n"
+"        SELECT ST_ConcaveHull(ST_Collect(geom), 0.80)\n"
+"        FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:527
+#, no-c-format
+msgid "multilinestring overlaid with Convex hull"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:535
+#, no-c-format
+msgid ""
+"multilinestring with overlaid with Concave hull of linestrings at 99% target "
+"-- first hop"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:539
+#, no-c-format
+msgid ""
+"SELECT ST_ConcaveHull(ST_GeomFromText('MULTILINESTRING((106 164,30 112,74 "
+"70,82 112,130 94,\n"
+"        130 62,122 40,156 32,162 76,172 88),\n"
+"(132 178,134 148,128 136,96 128,132 108,150 130,\n"
+"170 142,174 110,156 96,158 90,158 88),\n"
+"(22 64,66 28,94 38,94 68,114 76,112 30,\n"
+"132 10,168 18,178 34,186 52,184 74,190 100,\n"
+"190 122,182 148,178 170,176 184,156 164,146 178,\n"
+"132 186,92 182,56 158,36 150,62 150,76 128,88 118))'),0.99)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:549
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend="
+"\"ST_SimplifyPreserveTopology\"/>, <xref linkend=\"ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:555
+#, no-c-format
+msgid "ST_ConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:556
+#, no-c-format
+msgid ""
+"<refpurpose>The convex hull of a geometry represents the minimum convex "
+"geometry that encloses all geometries within the set.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:562
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:571
+#, no-c-format
+msgid ""
+"<para>The convex hull of a geometry represents the minimum convex geometry "
+"that encloses all geometries within the set.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:574
+#, no-c-format
+msgid ""
+"One can think of the convex hull as the geometry you get by wrapping an "
+"elastic band around a set of geometries. This is different from a concave "
+"hull which is analogous to shrink-wrapping your geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:578
+#, no-c-format
+msgid ""
+"It is usually used with MULTI and Geometry Collections. Although it is not "
+"an aggregate - you can use it in conjunction with ST_Collect to get the "
+"convex hull of a set of points. ST_ConvexHull(ST_Collect(somepointfield))."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:583
+#, no-c-format
+msgid ""
+"It is often used to determine an affected area based on a set of point "
+"observations."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:590
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.16"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:596
+#, no-c-format
+msgid ""
+"--Get estimate of infected area based on point observations\n"
+"SELECT d.disease_type,\n"
+"        ST_ConvexHull(ST_Collect(d.the_geom)) As the_geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:604
+#, no-c-format
+msgid ""
+"Convex Hull of a MultiLinestring and a MultiPoint seen together with the "
+"MultiLinestring and MultiPoint"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:607
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_ConvexHull(\n"
+"        ST_Collect(\n"
+"                ST_GeomFromText('MULTILINESTRING((100 190,10 8),(150 10, 20 "
+"30))'),\n"
+"                        ST_GeomFromText('MULTIPOINT(50 5, 150 30, 50 10, 10 "
+"10)')\n"
+"                        )) );\n"
+"---st_astext--\n"
+"POLYGON((50 5,10 8,10 10,100 190,150 30,150 10,50 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:612
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ConcaveHull\"/>, <xref linkend="
+"\"ST_MinimumBoundingCircle\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:618
+#, no-c-format
+msgid "ST_CurveToLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:620
+#, no-c-format
+msgid "Converts a CIRCULARSTRING/CURVEDPOLYGON to a LINESTRING/POLYGON"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:624
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_CurveToLine</function></"
+"funcdef> <paramdef><type>geometry</type> <parameter>curveGeom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_CurveToLine</function></funcdef> <paramdef><type>geometry</"
+"type> <parameter>curveGeom</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>segments_per_qtr_circle</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_CurveToLine</function></"
+"funcdef> <paramdef><type>geometry</type> <parameter>curveGeom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_CurveToLine</function></funcdef> <paramdef><type>geometry</"
+"type> <parameter>curveGeom</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>segments_per_qtr_circle</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: para
+#: reference_processing.xml:640
+#, no-c-format
+msgid ""
+"Converst a CIRCULAR STRING to regular LINESTRING or CURVEPOLYGON to POLYGON. "
+"Useful for outputting to devices that can't support CIRCULARSTRING geometry "
+"types"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:641
+#, no-c-format
+msgid ""
+"Converts a given geometry to a linear geometry. Each curved geometry or "
+"segment is converted into a linear approximation using the default value of "
+"32 segments per quarter circle"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:643 reference_processing.xml:1160
+#, no-c-format
+msgid "Availability: 1.2.2?"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:644
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:645
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.7"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:647 reference_processing.xml:886
+#: reference_processing.xml:941 reference_processing.xml:1041
+#: reference_processing.xml:1162
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:654
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)')));\n"
+"\n"
+"--Result --\n"
+" LINESTRING(220268 150415,220269.95064912 150416.539364228,220271.823415575 "
+"150418.17258804,220273.613787707 150419.895736857,\n"
+" 220275.317452352 150421.704659462,220276.930305234 "
+"150423.594998003,220278.448460847 150425.562198489,\n"
+" 220279.868261823 150427.60152176,220281.186287736 "
+"150429.708054909,220282.399363347 150431.876723113,\n"
+" 220283.50456625 150434.10230186,220284.499233914 "
+"150436.379429536,220285.380970099 150438.702620341,220286.147650624 "
+"150441.066277505,\n"
+" 220286.797428488 150443.464706771,220287.328738321 "
+"150445.892130112,220287.740300149 150448.342699654,\n"
+" 220288.031122486 150450.810511759,220288.200504713 "
+"150453.289621251,220288.248038775 150455.77405574,\n"
+" 220288.173610157 150458.257830005,220287.977398166 "
+"150460.734960415,220287.659875492 150463.199479347,\n"
+" 220287.221807076 150465.64544956,220286.664248262 "
+"150468.066978495,220285.988542259 150470.458232479,220285.196316903 "
+"150472.81345077,\n"
+" 220284.289480732 150475.126959442,220283.270218395 "
+"150477.39318505,220282.140985384 150479.606668057,\n"
+" 220280.90450212 150481.762075989,220279.5637474 "
+"150483.85421628,220278.12195122 150485.87804878,\n"
+" 220276.582586992 150487.828697901,220274.949363179 "
+"150489.701464356,220273.226214362 150491.491836488,\n"
+" 220271.417291757 150493.195501133,220269.526953216 "
+"150494.808354014,220267.559752731 150496.326509628,\n"
+" 220265.520429459 150497.746310603,220263.41389631 "
+"150499.064336517,220261.245228106 150500.277412127,\n"
+" 220259.019649359 150501.38261503,220256.742521683 "
+"150502.377282695,220254.419330878 150503.259018879,\n"
+" 220252.055673714 150504.025699404,220249.657244448 "
+"150504.675477269,220247.229821107 150505.206787101,\n"
+" 220244.779251566 150505.61834893,220242.311439461 "
+"150505.909171266,220239.832329968 150506.078553494,\n"
+" 220237.347895479 150506.126087555,220234.864121215 "
+"150506.051658938,220232.386990804 150505.855446946,\n"
+" 220229.922471872 150505.537924272,220227.47650166 "
+"150505.099855856,220225.054972724 150504.542297043,\n"
+" 220222.663718741 150503.86659104,220220.308500449 150503.074365683,\n"
+" 220217.994991777 150502.167529512,220215.72876617 150501.148267175,\n"
+" 220213.515283163 150500.019034164,220211.35987523 150498.7825509,\n"
+" 220209.267734939 150497.441796181,220207.243902439 150496,\n"
+" 220205.293253319 150494.460635772,220203.420486864 "
+"150492.82741196,220201.630114732 150491.104263143,\n"
+" 220199.926450087 150489.295340538,220198.313597205 "
+"150487.405001997,220196.795441592 150485.437801511,\n"
+" 220195.375640616 150483.39847824,220194.057614703 "
+"150481.291945091,220192.844539092 150479.123276887,220191.739336189 "
+"150476.89769814,\n"
+" 220190.744668525 150474.620570464,220189.86293234 "
+"150472.297379659,220189.096251815 150469.933722495,\n"
+" 220188.446473951 150467.535293229,220187.915164118 "
+"150465.107869888,220187.50360229 150462.657300346,\n"
+" 220187.212779953 150460.189488241,220187.043397726 "
+"150457.710378749,220186.995863664 150455.22594426,\n"
+" 220187.070292282 150452.742169995,220187.266504273 "
+"150450.265039585,220187.584026947 150447.800520653,\n"
+" 220188.022095363 150445.35455044,220188.579654177 "
+"150442.933021505,220189.25536018 150440.541767521,\n"
+" 220190.047585536 150438.18654923,220190.954421707 "
+"150435.873040558,220191.973684044 150433.60681495,\n"
+" 220193.102917055 150431.393331943,220194.339400319 "
+"150429.237924011,220195.680155039 150427.14578372,220197.12195122 "
+"150425.12195122,\n"
+" 220198.661315447 150423.171302099,220200.29453926 "
+"150421.298535644,220202.017688077 150419.508163512,220203.826610682 "
+"150417.804498867,\n"
+" 220205.716949223 150416.191645986,220207.684149708 "
+"150414.673490372,220209.72347298 150413.253689397,220211.830006129 "
+"150411.935663483,\n"
+" 220213.998674333 150410.722587873,220216.22425308 "
+"150409.61738497,220218.501380756 150408.622717305,220220.824571561 "
+"150407.740981121,\n"
+" 220223.188228725 150406.974300596,220225.586657991 150406.324522731,220227 "
+"150406)\n"
+"\n"
+"--3d example\n"
+"SELECT ST_AsEWKT(ST_CurveToLine(ST_GeomFromEWKT('CIRCULARSTRING(220268 "
+"150415 1,220227 150505 2,220227 150406 3)')));\n"
+"Output\n"
+"------\n"
+" LINESTRING(220268 150415 1,220269.95064912 150416.539364228 "
+"1.0181172856673,\n"
+" 220271.823415575 150418.17258804 1.03623457133459,220273.613787707 "
+"150419.895736857 1.05435185700189,....AD INFINITUM ....\n"
+"        220225.586657991 150406.324522731 1.32611114201132,220227 150406 3)\n"
+"\n"
+"--use only 2 segments to approximate quarter circle\n"
+"SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)'),2));\n"
+"st_astext\n"
+"------------------------------\n"
+" LINESTRING(220268 150415,220287.740300149 150448.342699654,220278.12195122 "
+"150485.87804878,\n"
+" 220244.779251566 150505.61834893,220207.243902439 150496,220187.50360229 "
+"150462.657300346,\n"
+" 220197.12195122 150425.12195122,220227 150406)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:667
+#, no-c-format
+msgid "ST_DelaunayTriangles"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:669
+#, no-c-format
+msgid "Return a Delaunay triangulation around the given input points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:676
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_DelaunayTriangles</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef> "
+"<paramdef><type>int4 </type> <parameter>flags</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_DelaunayTriangles</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef> "
+"<paramdef><type>int4 </type> <parameter>flags</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:688
+#, no-c-format
+msgid ""
+"Return a <ulink url=\"http://en.wikipedia.org/wiki/Delaunay_triangulation"
+"\">Delaunay triangulation</ulink> around the vertices of the input geometry. "
+"Output is a COLLECTION of polygons (for flags=0) or a MULTILINESTRING (for "
+"flags=1) or TIN (for flags=2). The tolerance, if any, is used to snap input "
+"vertices togheter."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:697
+#, no-c-format
+msgid "Availability: 2.1.0 - requires GEOS >= 3.4.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:699 reference_processing.xml:888
+#: reference_processing.xml:943 reference_processing.xml:1046
+#: reference_processing.xml:1750
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:703
+#, no-c-format
+msgid "2D Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:712
+#, no-c-format
+msgid "Original polygons"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:715
+#, no-c-format
+msgid ""
+"-- our original geometry --\n"
+"        ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                )"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:723
+#, no-c-format
+msgid ""
+"ST_DelaunayTriangles of 2 polygons: delaunay triangle polygons each triangle "
+"themed in different color"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:726
+#, no-c-format
+msgid ""
+"-- geometries overlaid multilinestring triangles\n"
+"SELECT \n"
+"        ST_DelaunayTriangles(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                )) \n"
+"         As  dtriag;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:733
+#, no-c-format
+msgid "-- delaunay triangles as multilinestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:736
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_DelaunayTriangles(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ),0.001,1) \n"
+"         As  dtriag;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:744
+#, no-c-format
+msgid "-- delaunay triangles of 45 points as 55 triangle polygons"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:747
+#, no-c-format
+msgid ""
+"-- this produces a table of 42 points that form an L shape\n"
+"SELECT (ST_DumpPoints(ST_GeomFromText(\n"
+"'MULTIPOINT(14 14,34 14,54 14,74 14,94 14,114 14,134 14,\n"
+"150 14,154 14,154 6,134 6,114 6,94 6,74 6,54 6,34 6,\n"
+"14 6,10 6,8 6,7 7,6 8,6 10,6 30,6 50,6 70,6 90,6 110,6 130,\n"
+"6 150,6 170,6 190,6 194,14 194,14 174,14 154,14 134,14 114,\n"
+"14 94,14 74,14 54,14 34,14 14)'))).geom \n"
+"        INTO TABLE l_shape;\n"
+"-- output as individual polygon triangles\n"
+"SELECT ST_AsText((ST_Dump(geom)).geom) As wkt\n"
+"FROM ( SELECT ST_DelaunayTriangles(ST_Collect(geom)) As geom\n"
+"FROM l_shape) As foo;\n"
+"\n"
+"---wkt ---\n"
+"POLYGON((6 194,6 190,14 194,6 194))\n"
+"POLYGON((14 194,6 190,14 174,14 194))\n"
+"POLYGON((14 194,14 174,154 14,14 194))\n"
+"POLYGON((154 14,14 174,14 154,154 14))\n"
+"POLYGON((154 14,14 154,150 14,154 14))\n"
+"POLYGON((154 14,150 14,154 6,154 14))\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:756
+#, no-c-format
+msgid "3D Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:757
+#, no-c-format
+msgid ""
+"-- 3D multipoint --\n"
+"SELECT ST_AsText(ST_DelaunayTriangles(ST_GeomFromText(\n"
+"'MULTIPOINT Z(14 14 10,\n"
+"150 14 100,34 6 25, 20 10 150)'))) As wkt;\n"
+"\n"
+"-----wkt----\n"
+"GEOMETRYCOLLECTION Z (POLYGON Z ((14 14 10,20 10 150,34 6 25,14 14 10))\n"
+" ,POLYGON Z ((14 14 10,34 6 25,150 14 100,14 14 10)))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:761 reference_processing.xml:1388
+#, no-c-format
+msgid ", <xref linkend=\"ST_Dump\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:768
+#, no-c-format
+msgid "ST_Difference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:770
+#, no-c-format
+msgid ""
+"Returns a geometry that represents that part of geometry A that does not "
+"intersect with geometry B."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:776
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Difference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Difference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:787
+#, no-c-format
+msgid ""
+"Returns a geometry that represents that part of geometry A that does not "
+"intersect with geometry B. One can think of this as GeometryA - "
+"ST_Intersection(A,B). If A is completely contained in B then an empty "
+"geometry collection is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:790
+#, no-c-format
+msgid "Note - order matters. B - A will always return a portion of B"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:794 reference_processing.xml:1993
+#, no-c-format
+msgid "Do not call with a GeometryCollection as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:797
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.20"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:798 reference_processing.xml:1997
+#, no-c-format
+msgid ""
+"&Z_support; However it seems to only consider x y when doing the difference "
+"and tacks back on the Z-Index"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:815
+#, no-c-format
+msgid "The original linestrings shown together."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:827
+#, no-c-format
+msgid "The difference of the two linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:836
+#, no-c-format
+msgid ""
+"--Safe for 2d. This is same geometries as what is shown for "
+"st_symdifference\n"
+"SELECT ST_AsText(\n"
+"        ST_Difference(\n"
+"                        ST_GeomFromText('LINESTRING(50 100, 50 200)'),\n"
+"                        ST_GeomFromText('LINESTRING(50 50, 50 150)')\n"
+"                )\n"
+"        );\n"
+"\n"
+"st_astext\n"
+"---------\n"
+"LINESTRING(50 150,50 200)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:838
+#, no-c-format
+msgid ""
+"--When used in 3d doesn't quite do the right thing\n"
+"SELECT ST_AsEWKT(ST_Difference(ST_GeomFromEWKT('MULTIPOINT(-118.58 38.38 "
+"5,-118.60 38.329 6,-118.614 38.281 7)'), ST_GeomFromEWKT('POINT(-118.614 "
+"38.281 5)')));\n"
+"st_asewkt\n"
+"---------\n"
+"MULTIPOINT(-118.6 38.329 6,-118.58 38.38 5)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:851
+#, no-c-format
+msgid "ST_Dump"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:852
+#, no-c-format
+msgid ""
+"Returns a set of geometry_dump (geom,path) rows, that make up a geometry g1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:857
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[] <function>ST_Dump</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry_dump[] <function>ST_Dump</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:866
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of geometry_dump "
+"rows, formed by a geometry (geom) and an array of integers (path). When the "
+"input geometry is a simple type (POINT,LINESTRING,POLYGON) a single record "
+"will be returned with an empty path array and the input geometry as geom. "
+"When the input geometry is a collection or multi it will return a record for "
+"each of the collection components, and the path will express the position of "
+"the component inside the collection."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:875
+#, no-c-format
+msgid ""
+"ST_Dump is useful for expanding geometries. It is the reverse of a GROUP BY "
+"in that it creates new rows. For example it can be use to expand "
+"MULTIPOLYGONS into POLYGONS."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:879 reference_processing.xml:939
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:880
+#, no-c-format
+msgid "Availability: PostGIS 1.0.0RC1. Requires PostgreSQL 7.3 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:882
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:887 reference_processing.xml:942
+#: reference_processing.xml:1045 reference_processing.xml:1631
+#: reference_processing.xml:1749
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:893
+#, no-c-format
+msgid "Standard Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:894
+#, no-c-format
+msgid ""
+"SELECT sometable.field1, sometable.field1,\n"
+"      (ST_Dump(sometable.the_geom)).geom AS the_geom\n"
+"FROM sometable;\n"
+"\n"
+"-- Break a compound curve into its constituent linestrings and "
+"circularstrings\n"
+"SELECT ST_AsEWKT(a.geom), ST_HasArc(a.geom)\n"
+"  FROM ( SELECT (ST_Dump(p_geom)).geom AS geom\n"
+"         FROM (SELECT ST_GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 "
+"1, 1 0),(1 0, 0 1))') AS p_geom) AS b\n"
+"        ) AS a;\n"
+"          st_asewkt          | st_hasarc\n"
+"-----------------------------+----------\n"
+" CIRCULARSTRING(0 0,1 1,1 0) | t\n"
+" LINESTRING(1 0,0 1)         | f\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:896 reference_processing.xml:964
+#, no-c-format
+msgid "Polyhedral Surfaces, TIN and Triangle Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:897
+#, no-c-format
+msgid ""
+"-- Polyhedral surface example\n"
+"-- Break a Polyhedral surface into its faces\n"
+"SELECT (a.p_geom).path[1] As path, ST_AsEWKT((a.p_geom).geom) As geom_ewkt\n"
+"  FROM (SELECT ST_Dump(ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)),  ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) \n"
+")') ) AS p_geom )  AS a;\n"
+"\n"
+" path |                geom_ewkt\n"
+"------+------------------------------------------\n"
+"    1 | POLYGON((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0))\n"
+"    2 | POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))\n"
+"    3 | POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))\n"
+"    4 | POLYGON((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0))\n"
+"    5 | POLYGON((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0))\n"
+"    6 | POLYGON((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:899
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_Dump( ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+" path |                 wkt\n"
+"------+-------------------------------------\n"
+" {1}  | TRIANGLE((0 0 0,0 0 1,0 1 0,0 0 0))\n"
+" {2}  | TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:903
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend="
+"\"ST_Collect\"/>, <xref linkend=\"ST_Collect\"/>, <xref linkend="
+"\"ST_GeometryN\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:909
+#, no-c-format
+msgid "ST_DumpPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:910
+#, no-c-format
+msgid ""
+"Returns a set of geometry_dump (geom,path) rows of all points that make up a "
+"geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:915
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[]<function>ST_DumpPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry_dump[]<function>ST_DumpPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:924
+#, no-c-format
+msgid ""
+"This set-returning function (SRF) returns a set of <varname>geometry_dump</"
+"varname> rows formed by a geometry (<varname>geom</varname>) and an array of "
+"integers (<varname>path</varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:927
+#, no-c-format
+msgid ""
+"The <parameter>geom</parameter> component of <varname>geometry_dump</"
+"varname> are all the <varname>POINT</varname>s that make up the supplied "
+"geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:930
+#, no-c-format
+msgid ""
+"The <parameter>path</parameter> component of <varname>geometry_dump</"
+"varname> (an <varname>integer[]</varname>) is an index reference enumerating "
+"the <varname>POINT</varname>s of the supplied geometry. For example, if a "
+"<varname>LINESTRING</varname> is supplied, a path of <varname>{i}</varname> "
+"is returned where <varname>i</varname> is the <varname>nth</varname> "
+"coordinate in the <varname>LINESTRING</varname>. If a <varname>POLYGON</"
+"varname> is supplied, a path of <varname>{i,j}</varname> is returned where "
+"<varname>i</varname> is the ring number (1 is outer; inner rings follow) and "
+"<varname>j</varname> enumerates the <varname>POINT</varname>s (again 1-based "
+"index)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:938
+#, no-c-format
+msgid "Enhanced: 2.1.0 Faster speed. Reimplemented as native-C."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:940
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:947
+#, no-c-format
+msgid "Classic Explode a Table of LineStrings into nodes"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:948
+#, no-c-format
+msgid ""
+"SELECT edge_id, (dp).path[1] As index, ST_AsText((dp).geom) As wktnode\n"
+"FROM (SELECT 1 As edge_id\n"
+"        , ST_DumpPoints(ST_GeomFromText('LINESTRING(1 2, 3 4, 10 10)')) AS "
+"dp\n"
+"     UNION ALL\n"
+"     SELECT 2 As edge_id\n"
+"        , ST_DumpPoints(ST_GeomFromText('LINESTRING(3 5, 5 6, 9 10)')) AS "
+"dp\n"
+"   ) As foo;\n"
+" edge_id | index |    wktnode\n"
+"---------+-------+--------------\n"
+"       1 |     1 | POINT(1 2)\n"
+"       1 |     2 | POINT(3 4)\n"
+"       1 |     3 | POINT(10 10)\n"
+"       2 |     1 | POINT(3 5)\n"
+"       2 |     2 | POINT(5 6)\n"
+"       2 |     3 | POINT(9 10)"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:951
+#, no-c-format
+msgid "Standard Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:961
+#, no-c-format
+msgid ""
+"SELECT path, ST_AsText(geom) \n"
+"FROM (\n"
+"  SELECT (ST_DumpPoints(g.geom)).* \n"
+"  FROM\n"
+"    (SELECT \n"
+"       'GEOMETRYCOLLECTION(\n"
+"          POINT ( 0 1 ), \n"
+"          LINESTRING ( 0 3, 3 4 ),\n"
+"          POLYGON (( 2 0, 2 3, 0 2, 2 0 )),\n"
+"          POLYGON (( 3 0, 3 3, 6 3, 6 0, 3 0 ), \n"
+"                   ( 5 1, 4 2, 5 2, 5 1 )),\n"
+"          MULTIPOLYGON (\n"
+"                  (( 0 5, 0 8, 4 8, 4 5, 0 5 ), \n"
+"                   ( 1 6, 3 6, 2 7, 1 6 )), \n"
+"                  (( 5 4, 5 8, 6 7, 5 4 ))\n"
+"          )\n"
+"        )'::geometry AS geom\n"
+"    ) AS g\n"
+"  ) j;\n"
+"  \n"
+"   path    | st_astext  \n"
+"-----------+------------\n"
+" {1,1}     | POINT(0 1)\n"
+" {2,1}     | POINT(0 3)\n"
+" {2,2}     | POINT(3 4)\n"
+" {3,1,1}   | POINT(2 0)\n"
+" {3,1,2}   | POINT(2 3)\n"
+" {3,1,3}   | POINT(0 2)\n"
+" {3,1,4}   | POINT(2 0)\n"
+" {4,1,1}   | POINT(3 0)\n"
+" {4,1,2}   | POINT(3 3)\n"
+" {4,1,3}   | POINT(6 3)\n"
+" {4,1,4}   | POINT(6 0)\n"
+" {4,1,5}   | POINT(3 0)\n"
+" {4,2,1}   | POINT(5 1)\n"
+" {4,2,2}   | POINT(4 2)\n"
+" {4,2,3}   | POINT(5 2)\n"
+" {4,2,4}   | POINT(5 1)\n"
+" {5,1,1,1} | POINT(0 5)\n"
+" {5,1,1,2} | POINT(0 8)\n"
+" {5,1,1,3} | POINT(4 8)\n"
+" {5,1,1,4} | POINT(4 5)\n"
+" {5,1,1,5} | POINT(0 5)\n"
+" {5,1,2,1} | POINT(1 6)\n"
+" {5,1,2,2} | POINT(3 6)\n"
+" {5,1,2,3} | POINT(2 7)\n"
+" {5,1,2,4} | POINT(1 6)\n"
+" {5,2,1,1} | POINT(5 4)\n"
+" {5,2,1,2} | POINT(5 8)\n"
+" {5,2,1,3} | POINT(6 7)\n"
+" {5,2,1,4} | POINT(5 4)\n"
+"(29 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:965
+#, no-c-format
+msgid ""
+"-- Polyhedral surface cube --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+"  path   |     wkt\n"
+"---------+--------------\n"
+" {1,1,1} | POINT(0 0 0)\n"
+" {1,1,2} | POINT(0 0 1)\n"
+" {1,1,3} | POINT(0 1 1)\n"
+" {1,1,4} | POINT(0 1 0)\n"
+" {1,1,5} | POINT(0 0 0)\n"
+" {2,1,1} | POINT(0 0 0)\n"
+" {2,1,2} | POINT(0 1 0)\n"
+" {2,1,3} | POINT(1 1 0)\n"
+" {2,1,4} | POINT(1 0 0)\n"
+" {2,1,5} | POINT(0 0 0)\n"
+" {3,1,1} | POINT(0 0 0)\n"
+" {3,1,2} | POINT(1 0 0)\n"
+" {3,1,3} | POINT(1 0 1)\n"
+" {3,1,4} | POINT(0 0 1)\n"
+" {3,1,5} | POINT(0 0 0)\n"
+" {4,1,1} | POINT(1 1 0)\n"
+" {4,1,2} | POINT(1 1 1)\n"
+" {4,1,3} | POINT(1 0 1)\n"
+" {4,1,4} | POINT(1 0 0)\n"
+" {4,1,5} | POINT(1 1 0)\n"
+" {5,1,1} | POINT(0 1 0)\n"
+" {5,1,2} | POINT(0 1 1)\n"
+" {5,1,3} | POINT(1 1 1)\n"
+" {5,1,4} | POINT(1 1 0)\n"
+" {5,1,5} | POINT(0 1 0)\n"
+" {6,1,1} | POINT(0 0 1)\n"
+" {6,1,2} | POINT(1 0 1)\n"
+" {6,1,3} | POINT(1 1 1)\n"
+" {6,1,4} | POINT(0 1 1)\n"
+" {6,1,5} | POINT(0 0 1)\n"
+"(30 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:966
+#, no-c-format
+msgid ""
+"-- Triangle --                \n"
+"SELECT (g.gdump).path, ST_AsText((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints( ST_GeomFromEWKT('TRIANGLE ((\n"
+"                0 0, \n"
+"                0 9, \n"
+"                9 0, \n"
+"                0 0\n"
+"            ))') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+" path |    wkt\n"
+"------+------------\n"
+" {1}  | POINT(0 0)\n"
+" {2}  | POINT(0 9)\n"
+" {3}  | POINT(9 0)\n"
+" {4}  | POINT(0 0)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:967
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints( ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+"  path   |     wkt\n"
+"---------+--------------\n"
+" {1,1,1} | POINT(0 0 0)\n"
+" {1,1,2} | POINT(0 0 1)\n"
+" {1,1,3} | POINT(0 1 0)\n"
+" {1,1,4} | POINT(0 0 0)\n"
+" {2,1,1} | POINT(0 0 0)\n"
+" {2,1,2} | POINT(0 1 0)\n"
+" {2,1,3} | POINT(1 1 0)\n"
+" {2,1,4} | POINT(0 0 0)\n"
+"(8 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:971
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
+"\"/>, <xref linkend=\"ST_DumpRings\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:976
+#, no-c-format
+msgid "ST_DumpRings"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:978
+#, no-c-format
+msgid ""
+"Returns a set of <varname>geometry_dump</varname> rows, representing the "
+"exterior and interior rings of a polygon."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:984
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[] <function>ST_DumpRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry_dump[] <function>ST_DumpRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:994
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of "
+"<varname>geometry_dump</varname> rows, defined as an <varname>integer[]</"
+"varname> and a <varname>geometry</varname>, aliased \"path\" and \"geom\" "
+"respectively. The \"path\" field holds the polygon ring index containing a "
+"single integer: 0 for the shell, >0 for holes. The \"geom\" field contains "
+"the corresponding ring as a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1000
+#, no-c-format
+msgid "Availability: PostGIS 1.1.3. Requires PostgreSQL 7.3 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1001
+#, no-c-format
+msgid ""
+"This only works for POLYGON geometries. It will not work for MULTIPOLYGONS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1009
+#, no-c-format
+msgid ""
+"SELECT sometable.field1, sometable.field1,\n"
+"          (ST_DumpRings(sometable.the_geom)).geom As the_geom\n"
+"FROM sometableOfpolys;\n"
+"\n"
+"SELECT ST_AsEWKT(geom) As the_geom, path\n"
+"        FROM ST_DumpRings(\n"
+"                ST_GeomFromEWKT('POLYGON((-8149064 5133092 1,-8149064 "
+"5132986 1,-8148996 5132839 1,-8148972 5132767 1,-8148958 5132508 1,-8148941 "
+"5132466 1,-8148924 5132394 1,\n"
+"                -8148903 5132210 1,-8148930 5131967 1,-8148992 5131978 "
+"1,-8149237 5132093 1,-8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 "
+"1,\n"
+"                -8150305 5132788 1,-8149064 5133092 1),\n"
+"                (-8149362 5132394 1,-8149446 5132501 1,-8149548 5132597 "
+"1,-8149695 5132675 1,-8149362 5132394 1))')\n"
+"                )  as foo;\n"
+" path |                                            the_geom\n"
+"----------------------------------------------------------------------------------------------------------------\n"
+"  {0} | POLYGON((-8149064 5133092 1,-8149064 5132986 1,-8148996 5132839 "
+"1,-8148972 5132767 1,-8148958 5132508 1,\n"
+"          |          -8148941 5132466 1,-8148924 5132394 1,\n"
+"          |          -8148903 5132210 1,-8148930 5131967 1,\n"
+"          |          -8148992 5131978 1,-8149237 5132093 1,\n"
+"          |          -8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 "
+"1,-8150305 5132788 1,-8149064 5133092 1))\n"
+"  {1} | POLYGON((-8149362 5132394 1,-8149446 5132501 1,\n"
+"          |          -8149548 5132597 1,-8149695 5132675 1,-8149362 5132394 "
+"1))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1016
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
+"\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref linkend=\"ST_InteriorRingN"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1022
+#, no-c-format
+msgid "ST_FlipCoordinates"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1023
+#, no-c-format
+msgid ""
+"Returns a version of the given geometry with X and Y axis flipped. Useful "
+"for people who have built latitude/longitude features and need to fix them."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1031
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_FlipCoordinates</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_FlipCoordinates</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1040
+#, no-c-format
+msgid "Returns a version of the given geometry with X and Y axis flipped."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1043
+#, no-c-format
+msgid "&M_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1050
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1051
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"SELECT ST_AsEWKT(ST_FlipCoordinates(GeomFromEWKT('POINT(1 2)')));\n"
+" st_asewkt  \n"
+"------------\n"
+"POINT(2 1)\n"
+"                 ]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1058
+#, no-c-format
+msgid "ST_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1060
+#, no-c-format
+msgid ""
+"(T) Returns a geometry that represents the shared portion of geomA and "
+"geomB. The geography implementation does a transform to geometry to do the "
+"intersection and then transform back to WGS84."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:1065
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Intersection</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geography "
+"<function>ST_Intersection</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Intersection</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geography "
+"<function>ST_Intersection</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_processing.xml:1092
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the point set intersection of the "
+"Geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1095
+#, no-c-format
+msgid ""
+"In other words - that portion of geometry A and geometry B that is shared "
+"between the two geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1098
+#, no-c-format
+msgid ""
+"If the geometries do not share any space (are disjoint), then an empty "
+"geometry collection is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1100
+#, no-c-format
+msgid ""
+"ST_Intersection in conjunction with ST_Intersects is very useful for "
+"clipping geometries such as in bounding box, buffer, region queries where "
+"you only want to return that portion of a geometry that sits in a country or "
+"region of interest."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1103
+#, no-c-format
+msgid ""
+"Geography: For geography this is really a thin wrapper around the geometry "
+"implementation. It first determines the best SRID that fits the bounding box "
+"of the 2 geography objects (if geography objects are within one half zone "
+"UTM but not same UTM will pick one of those) (favoring UTM or Lambert "
+"Azimuthal Equal Area (LAEA) north/south pole, and falling back on mercator "
+"in worst case scenario) and then intersection in that best fit planar "
+"spatial ref and retransforms back to WGS84 geography."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1106
+#, no-c-format
+msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1109
+#, no-c-format
+msgid ""
+"If working with 3D geometries, you may want to use SFGCAL based <xref "
+"linkend=\"ST_3DIntersection\"/> which does a proper 3D intersection for 3D "
+"geometries. Although this function works with Z-coordinate, it does an "
+"averaging of Z-Coordinate values when <code>postgis.backend=geos</code>. "
+"<code>postgis.backend=sfcgal</code>, it will return a 2D geometry regardless "
+"ignoring the Z-Coordinate. Refer to <xref linkend=\"postgis_backend\"/> for "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1112
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1114
+#, no-c-format
+msgid "Availability: 1.5 support for geography data type was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1117
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.18"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1121
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, "
+"0 2 )'::geometry));\n"
+" st_astext\n"
+"---------------\n"
+"GEOMETRYCOLLECTION EMPTY\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, "
+"0 2 )'::geometry));\n"
+" st_astext\n"
+"---------------\n"
+"POINT(0 0)\n"
+"(1 row)\n"
+"\n"
+"---Clip all lines (trails) by country (here we assume country geom are "
+"POLYGON or MULTIPOLYGONS)\n"
+"-- NOTE: we are only keeping intersections that result in a LINESTRING or "
+"MULTILINESTRING because we don't\n"
+"-- care about trails that just share a point\n"
+"-- the dump is needed to expand a geometry collection into individual single "
+"MULT* parts\n"
+"-- the below is fairly generic and will work for polys, etc. by just "
+"changing the where clause\n"
+"SELECT clipped.gid, clipped.f_name, clipped_geom\n"
+"FROM (SELECT trails.gid, trails.f_name, (ST_Dump(ST_Intersection(country."
+"the_geom, trails.the_geom))).geom As clipped_geom\n"
+"FROM country\n"
+"        INNER JOIN trails\n"
+"        ON ST_Intersects(country.the_geom, trails.the_geom))  As clipped\n"
+"        WHERE ST_Dimension(clipped.clipped_geom) = 1 ;\n"
+"\n"
+"--For polys e.g. polygon landmarks, you can also use the sometimes faster "
+"hack that buffering anything by 0.0\n"
+"-- except a polygon results in an empty geometry collection\n"
+"--(so a geometry collection containing polys, lines and points)\n"
+"-- buffered by 0.0 would only leave the polygons and dissolve the collection "
+"shell\n"
+"SELECT poly.gid,  ST_Multi(ST_Buffer(\n"
+"                                ST_Intersection(country.the_geom, poly."
+"the_geom),\n"
+"                                0.0)\n"
+"                                ) As clipped_geom\n"
+"FROM country\n"
+"        INNER JOIN poly\n"
+"        ON ST_Intersects(country.the_geom, poly.the_geom)\n"
+"        WHERE Not ST_IsEmpty(ST_Buffer(ST_Intersection(country.the_geom, "
+"poly.the_geom),0.0));"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1125
+#, no-c-format
+msgid "Examples: 2.5Dish"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1126
+#, no-c-format
+msgid ""
+"Geos is the default backend if not set. Note this is not a true "
+"intersection, compare to the same example using <xref linkend="
+"\"ST_3DIntersection\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1127
+#, no-c-format
+msgid ""
+"set postgis.backend=geos; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"               st_astext\n"
+"---------------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8,0 0 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1129
+#, no-c-format
+msgid ""
+"If your PostGIS is compiled with sfcgal support, have option of using "
+"sfcgal, but note if basically cases down both geometries to 2D before doing "
+"intersection and returns the ST_Force2D equivalent result which is a 2D "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1131
+#, no-c-format
+msgid ""
+"set postgis.backend=sfcgal; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"                     wkt\n"
+"----------------------------------------------\n"
+" MULTILINESTRING((0.5 0.5,0 0),(1 1,0.5 0.5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1135
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Difference\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Dump\"/>, <xref linkend=\"ST_Force2D\"/>, <xref linkend="
+"\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Multi\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1141
+#, no-c-format
+msgid "ST_LineToCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1143
+#, no-c-format
+msgid "Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1148
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineToCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomANoncircular</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LineToCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomANoncircular</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1158
+#, no-c-format
+msgid ""
+"Converts plain LINESTRING/POLYGONS to CIRCULAR STRINGs and Curved Polygons. "
+"Note much fewer points are needed to describe the curved equivalent."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1167
+#, no-c-format
+msgid "Examples: 2D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1169
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LineToCurve(foo.the_geom)) As curvedastext,ST_AsText(foo."
+"the_geom) As non_curvedastext\n"
+"        FROM (SELECT ST_Buffer('POINT(1 3)'::geometry, 3) As the_geom) As "
+"foo;\n"
+"\n"
+"curvedatext                                                            "
+"non_curvedastext\n"
+"--------------------------------------------------------------------|-----------------------------------------------------------------\n"
+"CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359, | "
+"POLYGON((4 3,3.94235584120969 2.41472903395162,3.77163859753386 "
+"1.85194970290473,\n"
+"1 0,-1.12132034355965 5.12132034355963,4 3))                        |  "
+"3.49440883690764 1.33328930094119,3.12132034355964 0.878679656440359,\n"
+"                                                                    |  "
+"2.66671069905881 0.505591163092366,2.14805029709527 0.228361402466141,\n"
+"                                                                    |  "
+"1.58527096604839 0.0576441587903094,1 0,\n"
+"                                                                    |  "
+"0.414729033951621 0.0576441587903077,-0.148050297095264 0.228361402466137,\n"
+"                                                                    |  "
+"-0.666710699058802 0.505591163092361,-1.12132034355964 0.878679656440353,\n"
+"                                                                    |  "
+"-1.49440883690763 1.33328930094119,-1.77163859753386 1.85194970290472\n"
+"                                                                    |  --"
+"ETC-- ,3.94235584120969 3.58527096604839,4 3))\n"
+"--3D example\n"
+"SELECT ST_AsEWKT(ST_LineToCurve(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 8, 5 "
+"6 4, 7 8 4, 9 10 4)')));\n"
+"\n"
+"                         st_asewkt\n"
+"------------------------------------\n"
+" CIRCULARSTRING(1 2 3,5 6 4,9 10 4)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1184
+#, no-c-format
+msgid "ST_MakeValid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1185
+#, no-c-format
+msgid "Attempts to make an invalid geometry valid without losing vertices."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1190
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakeValid</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakeValid</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1199
+#, no-c-format
+msgid ""
+"The function attempts to create a valid representation of a given invalid "
+"geometry without losing any of the input vertices. Already-valid geometries "
+"are returned without further intervention."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1205
+#, no-c-format
+msgid ""
+"Supported inputs are: POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
+"POLYGONS, MULTIPOLYGONS and GEOMETRYCOLLECTIONS containing any mix of them."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1211
+#, no-c-format
+msgid ""
+"In case of full or partial dimensional collapses, the output geometry may be "
+"a collection of lower-to-equal dimension geometries or a geometry of lower "
+"dimension."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1217
+#, no-c-format
+msgid ""
+"Single polygons may become multi-geometries in case of self-intersections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1221
+#, no-c-format
+msgid "Availability: 2.0.0, requires GEOS-3.3.0"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1222
+#, no-c-format
+msgid "Enhanced: 2.0.1, speed improvements requires GEOS-3.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1223
+#, no-c-format
+msgid "Enhanced: 2.1.0 added support for GEOMETRYCOLLECTION and MULTIPOINT."
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1240
+#, no-c-format
+msgid "ST_MemUnion"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1242
+#, no-c-format
+msgid ""
+"Same as ST_Union, only memory-friendly (uses less memory and more processor "
+"time)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1248
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MemUnion</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MemUnion</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1259
+#, no-c-format
+msgid "Some useful description here."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1263
+#, no-c-format
+msgid ""
+"Same as ST_Union, only memory-friendly (uses less memory and more processor "
+"time). This aggregate function works by unioning the geometries one at a "
+"time to previous result as opposed to ST_Union aggregate which first creates "
+"an array and then unions"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1275
+#, no-c-format
+msgid "See ST_Union"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1288
+#, no-c-format
+msgid "ST_MinimumBoundingCircle"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1289
+#, no-c-format
+msgid ""
+"Returns the smallest circle polygon that can fully contain a geometry. "
+"Default uses 48 segments per quarter circle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1295
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinimumBoundingCircle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>num_segs_per_qt_circ=48</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MinimumBoundingCircle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>num_segs_per_qt_circ=48</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1305
+#, no-c-format
+msgid "Returns the smallest circle polygon that can fully contain a geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1306
+#, no-c-format
+msgid ""
+"The circle is approximated by a polygon with a default of 48 segments per "
+"quarter circle. This number can be increased with little performance penalty "
+"to obtain a more accurate result."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1308
+#, no-c-format
+msgid ""
+"It is often used with MULTI and Geometry Collections. Although it is not an "
+"aggregate - you can use it in conjunction with ST_Collect to get the minimum "
+"bounding circle of a set of geometries. "
+"ST_MinimumBoundingCircle(ST_Collect(somepointfield))."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1313
+#, no-c-format
+msgid ""
+"The ratio of the area of a polygon divided by the area of its Minimum "
+"Bounding Circle is often referred to as the Roeck test."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1315
+#, no-c-format
+msgid "Availability: 1.4.0 - requires GEOS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1322
+#, no-c-format
+msgid ""
+"SELECT d.disease_type,\n"
+"        ST_MinimumBoundingCircle(ST_Collect(d.the_geom)) As the_geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1328
+#, no-c-format
+msgid ""
+"Minimum bounding circle of a point and linestring. Using 8 segs to "
+"approximate a quarter circle"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1331
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MinimumBoundingCircle(\n"
+"                ST_Collect(\n"
+"                        ST_GeomFromEWKT('LINESTRING(55 75,125 150)'),\n"
+"                                ST_Point(20, 80)), 8\n"
+"                                )) As wktmbc;\n"
+"wktmbc\n"
+"-----------\n"
+"POLYGON((135.59714732062 115,134.384753327498 "
+"102.690357210921,130.79416296937 90.8537670908995,124.963360620072 "
+"79.9451031602111,117.116420743937 70.3835792560632,107.554896839789 "
+"62.5366393799277,96.6462329091006 56.70583703063,84.8096427890789 "
+"53.115246672502,72.5000000000001 51.9028526793802,60.1903572109213 "
+"53.1152466725019,48.3537670908996 56.7058370306299,37.4451031602112 "
+"62.5366393799276,27.8835792560632 70.383579256063,20.0366393799278 "
+"79.9451031602109,14.20583703063 90.8537670908993,10.615246672502 "
+"102.690357210921,9.40285267938019 115,10.6152466725019 "
+"127.309642789079,14.2058370306299 139.1462329091,20.0366393799275 "
+"150.054896839789,27.883579256063 159.616420743937,\n"
+"37.4451031602108 167.463360620072,48.3537670908992 "
+"173.29416296937,60.190357210921 176.884753327498,\n"
+"72.4999999999998 178.09714732062,84.8096427890786 "
+"176.884753327498,96.6462329091003 173.29416296937,107.554896839789 "
+"167.463360620072,\n"
+"117.116420743937 159.616420743937,124.963360620072 "
+"150.054896839789,130.79416296937 139.146232909101,134.384753327498 "
+"127.309642789079,135.59714732062 115))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1335
+#, no-c-format
+msgid ", <xref linkend=\"ST_ConvexHull\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1341
+#, no-c-format
+msgid "ST_Polygonize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1343
+#, no-c-format
+msgid ""
+"Aggregate. Creates a GeometryCollection containing possible polygons formed "
+"from the constituent linework of a set of geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:1349
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Polygonize</function></"
+"funcdef> <paramdef><type>geometry set</type> <parameter>geomfield</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Polygonize</function></funcdef> <paramdef><type>geometry[]</"
+"type> <parameter>geom_array</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Polygonize</function></"
+"funcdef> <paramdef><type>geometry set</type> <parameter>geomfield</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Polygonize</function></funcdef> <paramdef><type>geometry[]</"
+"type> <parameter>geom_array</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_processing.xml:1365
+#, no-c-format
+msgid ""
+"Creates a GeometryCollection containing possible polygons formed from the "
+"constituent linework of a set of geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1370
+#, no-c-format
+msgid ""
+"Geometry Collections are often difficult to deal with with third party "
+"tools, so use ST_Polygonize in conjunction with <xref linkend=\"ST_Dump\"/> "
+"to dump the polygons out into individual polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1378
+#, no-c-format
+msgid "Availability: 1.0.0RC1 - requires GEOS >= 2.1.0."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1382
+#, no-c-format
+msgid "Examples: Polygonizing single linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1383
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Polygonize(the_geom_4269)) As geomtextrep\n"
+"FROM (SELECT the_geom_4269 FROM ma.suffolk_edges ORDER BY tlid LIMIT 45) As "
+"foo;\n"
+"\n"
+"geomtextrep\n"
+"-------------------------------------\n"
+" SRID=4269;GEOMETRYCOLLECTION(POLYGON((-71.040878 42.285678,-71.040943 "
+"42.2856,-71.04096 42.285752,-71.040878 42.285678)),\n"
+" POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 "
+"42.354358,-71.171794 42.354971,-71.170511 42.354855,\n"
+" -71.17112 42.354238,-71.17166 42.353675)))\n"
+"(1 row)\n"
+"\n"
+"--Use ST_Dump to dump out the polygonize geoms into individual polygons\n"
+"SELECT ST_AsEWKT((ST_Dump(foofoo.polycoll)).geom) As geomtextrep\n"
+"FROM (SELECT ST_Polygonize(the_geom_4269) As polycoll\n"
+"        FROM (SELECT the_geom_4269 FROM ma.suffolk_edges\n"
+"                ORDER BY tlid LIMIT 45) As foo) As foofoo;\n"
+"\n"
+"geomtextrep\n"
+"------------------------\n"
+" SRID=4269;POLYGON((-71.040878 42.285678,-71.040943 42.2856,-71.04096 "
+"42.285752,\n"
+"-71.040878 42.285678))\n"
+" SRID=4269;POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 "
+"42.354358\n"
+",-71.171794 42.354971,-71.170511 42.354855,-71.17112 42.354238,-71.17166 "
+"42.353675))\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1397
+#, no-c-format
+msgid "ST_Node"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1399
+#, no-c-format
+msgid "Node a set of linestrings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1406
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Node</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Node</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1417
+#, no-c-format
+msgid ""
+"Fully node a set of linestrings using the least possible number of nodes "
+"while preserving all of the input ones."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1424 reference_processing.xml:2168
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1426
+#, no-c-format
+msgid ""
+"Due to a bug in GEOS up to 3.3.1 this function fails to node self-"
+"intersecting lines. This is fixed with GEOS 3.3.2 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1433
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(\n"
+"                ST_Node('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'::"
+"geometry)\n"
+"        ) As  output;\n"
+"output\n"
+"-----------\n"
+"MULTILINESTRING((0 0 0,5 5 4.5),(5 5 4.5,10 10 10,0 10 5,5 5 4.5),(5 5 "
+"4.5,10 0 3))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1448
+#, no-c-format
+msgid "ST_OffsetCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1450
+#, no-c-format
+msgid ""
+"Return an offset line at a given distance and side from an input line. "
+"Useful for computing parallel lines about a center line"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1458
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_OffsetCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>signed_distance</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>style_parameters=''</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_OffsetCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>signed_distance</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>style_parameters=''</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1471
+#, no-c-format
+msgid ""
+"Return an offset line at a given distance and side from an input line. All "
+"points of the returned geometries are not further than the given distance "
+"from the input geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1477
+#, no-c-format
+msgid ""
+"For positive distance the offset will be at the left side of the input line "
+"and retain the same direction. For a negative distance it'll be at the right "
+"side and in the opposite direction."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1483
+#, no-c-format
+msgid ""
+"Availability: 2.0 - requires GEOS >= 3.2, improved with GEOS >= 3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1487
+#, no-c-format
+msgid ""
+"The optional third parameter allows specifying a list of blank-separated "
+"key=value pairs to tweak operations as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1495
+#, no-c-format
+msgid ""
+"'join=round|mitre|bevel' : join style (defaults to \"round\"). 'miter' is "
+"also accepted as a synonym for 'mitre'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1498
+#, no-c-format
+msgid ""
+"'mitre_limit=#.#' : mitre ratio limit (only affects mitred join style). "
+"'miter_limit' is also accepted as a synonym for 'mitre_limit'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1503
+#, no-c-format
+msgid ""
+"Units of distance are measured in units of the spatial reference system."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1507
+#, no-c-format
+msgid "The inputs can only be LINESTRINGS."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1511
+#, no-c-format
+msgid ""
+"This function ignores the third dimension (z) and will always give a 2-d "
+"result even when presented with a 3d-geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1519
+#, no-c-format
+msgid "Compute an open buffer around roads"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1520
+#, no-c-format
+msgid ""
+"SELECT ST_Union(\n"
+" ST_OffsetCurve(f.the_geom,  f.width/2, 'quad_segs=4 join=round'),\n"
+" ST_OffsetCurve(f.the_geom, -f.width/2, 'quad_segs=4 join=round')\n"
+") as track\n"
+"FROM someroadstable;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1530
+#, no-c-format
+msgid "15, 'quad_segs=4 join=round' original line and its offset 15 units."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1534
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)'),\n"
+"        15, 'quad_segs=4 join=round'));\n"
+"--output --\n"
+"LINESTRING(164 1,18 1,12.2597485145237 2.1418070123307,\n"
+"        7.39339828220179 5.39339828220179,\n"
+"        5.39339828220179 7.39339828220179,\n"
+"        2.14180701233067 12.2597485145237,1 18,1 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1541
+#, no-c-format
+msgid "-15, 'quad_segs=4 join=round' original line and its offset -15 units"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1545
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(geom,\n"
+"        -15, 'quad_segs=4 join=round')) As notsocurvy\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- notsocurvy --\n"
+"LINESTRING(31 195,31 31,164 31)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1554
+#, no-c-format
+msgid ""
+"double-offset to get more curvy, note the first reverses direction, so -30 + "
+"15 = -15"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1557
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_OffsetCurve(geom,\n"
+"        -30, 'quad_segs=4 join=round'), -15, 'quad_segs=4 join=round')) As "
+"morecurvy\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- morecurvy --\n"
+"LINESTRING(164 31,46 31,40.2597485145236 32.1418070123307,\n"
+"35.3933982822018 35.3933982822018,\n"
+"32.1418070123307 40.2597485145237,31 46,31 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1564
+#, no-c-format
+msgid ""
+"double-offset to get more curvy,combined with regular offset 15 to get "
+"parallel lines. Overlaid with original."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1567
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(\n"
+"        ST_OffsetCurve(geom, 15, 'quad_segs=4 join=round'), \n"
+"        ST_OffsetCurve(ST_OffsetCurve(geom,\n"
+"        -30, 'quad_segs=4 join=round'), -15, 'quad_segs=4 join=round')\n"
+"        )\n"
+") As parallel_curves\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- parallel curves  --\n"
+"MULTILINESTRING((164 1,18 1,12.2597485145237 2.1418070123307,\n"
+"7.39339828220179 5.39339828220179,5.39339828220179 7.39339828220179,\n"
+"2.14180701233067 12.2597485145237,1 18,1 195),\n"
+"(164 31,46 31,40.2597485145236 32.1418070123307,35.3933982822018 "
+"35.3933982822018,\n"
+"32.1418070123307 40.2597485145237,31 46,31 195))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1576
+#, no-c-format
+msgid "15, 'quad_segs=4 join=bevel' shown with original line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1579
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)'), \n"
+"                15, 'quad_segs=4 join=bevel'));\n"
+"-- output --\n"
+"LINESTRING(164 1,18 1,7.39339828220179 5.39339828220179,\n"
+"        5.39339828220179 7.39339828220179,1 18,1 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1587
+#, no-c-format
+msgid "15,-15 collected, join=mitre mitre_limit=2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1590
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(\n"
+"        ST_OffsetCurve(geom, 15, 'quad_segs=4 join=mitre mitre_limit=2.2'),\n"
+"        ST_OffsetCurve(geom, -15, 'quad_segs=4 join=mitre mitre_limit=2.2')\n"
+"        ) )\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- output --\n"
+"MULTILINESTRING((164 1,11.7867965644036 1,1 11.7867965644036,1 195),\n"
+"        (31 195,31 31,164 31))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1607
+#, no-c-format
+msgid "ST_RemoveRepeatedPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1608
+#, no-c-format
+msgid "Returns a version of the given geometry with duplicated points removed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1614
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RemoveRepeatedPoints</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_RemoveRepeatedPoints</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1623
+#, no-c-format
+msgid ""
+"Returns a version of the given geometry with duplicated points removed. Will "
+"actually do something only with (multi)lines, (multi)polygons and "
+"multipoints but you can safely call it with any kind of geometry. Since "
+"simplification occurs on a object-by-object basis you can also feed a "
+"GeometryCollection to this function."
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1643
+#, no-c-format
+msgid "ST_SharedPaths"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1644
+#, no-c-format
+msgid ""
+"Returns a collection containing paths shared by the two input linestrings/"
+"multilinestrings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1649
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SharedPaths</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>lineal1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>lineal2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_SharedPaths</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>lineal1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>lineal2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1659
+#, no-c-format
+msgid ""
+"Returns a collection containing paths shared by the two input geometries. "
+"Those going in the same direction are in the first element of the "
+"collection, those going in the opposite direction are in the second element. "
+"The paths themselves are given in the direction of the first geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1664
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1667
+#, no-c-format
+msgid "Examples: Finding shared paths"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1677
+#, no-c-format
+msgid "A multilinestring and a linestring"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1688
+#, no-c-format
+msgid ""
+"The shared path of multilinestring and linestring overlaid with original "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1691
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_SharedPaths(\n"
+"    ST_GeomFromText('MULTILINESTRING((26 125,26 200,126 200,126 125,26 "
+"125),\n"
+"            (51 150,101 150,76 175,51 150))'),\n"
+"         ST_GeomFromText('LINESTRING(151 100,126 156.25,126 125,90 161, 76 "
+"175)')\n"
+"         )\n"
+"  ) As wkt\n"
+"\n"
+"                                wkt\n"
+"-------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(MULTILINESTRING((126 156.25,126 125),\n"
+" (101 150,90 161),(90 161,76 175)),MULTILINESTRING EMPTY)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1697
+#, no-c-format
+msgid ""
+"-- same example but linestring orientation flipped\n"
+"SELECT ST_AsText(\n"
+"  ST_SharedPaths(\n"
+"   ST_GeomFromText('LINESTRING(76 175,90 161,126 125,126 156.25,151 100)'),\n"
+"   ST_GeomFromText('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),\n"
+"            (51 150,101 150,76 175,51 150))')\n"
+"         )\n"
+"  ) As wkt\n"
+"\n"
+"                                wkt\n"
+"-------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(MULTILINESTRING EMPTY,\n"
+"MULTILINESTRING((76 175,90 161),(90 161,101 150),(126 125,126 156.25)))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1707
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1717
+#, no-c-format
+msgid "ST_Shift_Longitude"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1719
+#, no-c-format
+msgid ""
+"<refpurpose>Reads every point/vertex in every component of every feature in "
+"a geometry, and if the longitude coordinate is <0, adds 360 to it. The "
+"result would be a 0-360 version of the data to be plotted in a 180 centric "
+"map</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1727
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Shift_Longitude</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Shift_Longitude</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1737
+#, no-c-format
+msgid ""
+"<para>Reads every point/vertex in every component of every feature in a "
+"geometry, and if the longitude coordinate is <0, adds 360 to it. The "
+"result would be a 0-360 version of the data to be plotted in a 180 centric "
+"map</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1741
+#, no-c-format
+msgid "This is only useful for data in long lat e.g. 4326 (WGS 84 long lat)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1743
+#, no-c-format
+msgid ""
+"Pre-1.3.4 bug prevented this from working for MULTIPOINT. 1.3.4+ works with "
+"MULTIPOINT as well."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1748
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1757
+#, no-c-format
+msgid ""
+"--3d points\n"
+"SELECT ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(-118.58 "
+"38.38 10)'))) As geomA,\n"
+"        ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(241.42 "
+"38.38 10)'))) As geomb\n"
+"geomA                                                          geomB\n"
+"----------                                                  -----------\n"
+"SRID=4326;POINT(241.42 38.38 10) SRID=4326;POINT(-118.58 38.38 10)\n"
+"\n"
+"--regular line string\n"
+"SELECT ST_AsText(ST_Shift_Longitude(ST_GeomFromText('LINESTRING(-118.58 "
+"38.38, -118.20 38.45)')))\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(241.42 38.38,241.8 38.45)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1763
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_AsEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1769
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1770
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1776
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1786
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will actually do something only with (multi)lines and "
+"(multi)polygons but you can safely call it with any kind of geometry. Since "
+"simplification occurs on a object-by-object basis you can also feed a "
+"GeometryCollection to this function."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1793
+#, no-c-format
+msgid ""
+"Note that returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1795
+#, no-c-format
+msgid ""
+"Note topology may not be preserved and may result in invalid geometries. Use "
+"(see <xref linkend=\"ST_SimplifyPreserveTopology\"/>) to preserve topology."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1797
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1802
+#, no-c-format
+msgid "A circle simplified too much becomes a triangle, medium an octagon,"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1803
+#, no-c-format
+msgid ""
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_Simplify(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_Simplify(the_geom,0.5)) As np05_notquitecircle,\n"
+"ST_NPoints(ST_Simplify(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_Simplify(the_geom,10)) As np10_triangle,\n"
+"(ST_Simplify(the_geom,100) is null) As  np100_geometrygoesaway\n"
+"FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
+"-result\n"
+" np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | "
+"np10_triangle | np100_geometrygoesaway\n"
+"-----------+-------------------+---------------------+-------------"
+"+---------------+------------------------\n"
+"                49 |                33 |                  17 |           9 "
+"|             4 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1807
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_SimplifyPreserveTopology\"/>, Topology <xref linkend="
+"\"TP_ST_Simplify\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1813
+#, no-c-format
+msgid "ST_SimplifyPreserveTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1814
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will avoid creating derived geometries (polygons in "
+"particular) that are invalid."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1821
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SimplifyPreserveTopology</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_SimplifyPreserveTopology</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1831
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will avoid creating derived geometries (polygons in "
+"particular) that are invalid. Will actually do something only with "
+"(multi)lines and (multi)polygons but you can safely call it with any kind of "
+"geometry. Since simplification occurs on a object-by-object basis you can "
+"also feed a GeometryCollection to this function."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1840
+#, no-c-format
+msgid "Requires GEOS 3.0.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1841
+#, no-c-format
+msgid "Availability: 1.3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1846
+#, no-c-format
+msgid ""
+"Same example as Simplify, but we see Preserve Topology prevents "
+"oversimplification. The circle can at most become a square."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1847
+#, no-c-format
+msgid ""
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.5)) As "
+"np05_notquitecircle,\n"
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,10)) As np10_square,\n"
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,100)) As  np100_stillsquare\n"
+"FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
+"\n"
+"--result--\n"
+" np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | "
+"np10_square | np100_stillsquare\n"
+"-----------+-------------------+---------------------+-------------"
+"+---------------+-------------------\n"
+"                49 |                33 |                  17 |           9 "
+"|             5 |                 5"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1857
+#, no-c-format
+msgid "ST_Split"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1858
+#, no-c-format
+msgid "Returns a collection of geometries resulting by splitting a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1863
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Split</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>blade</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Split</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>blade</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1873
+#, no-c-format
+msgid ""
+"The function supports splitting a line by point, a line by line, a polygon "
+"by line. The returned geometry is always a collection."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1877
+#, no-c-format
+msgid ""
+"Think of this function as the opposite of ST_Union. Theoretically applying "
+"ST_Union to the elements of the returned collection should always yield the "
+"original geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1884
+#, no-c-format
+msgid ""
+"To improve the robustness of ST_Split it may be convenient to <xref linkend="
+"\"ST_Snap\"/> the input to the blade in advance using a very low tolerance. "
+"Otherwise the internally used coordinate grid may cause tolerance problems, "
+"where coordinates of input and blade do not fall onto each other and the "
+"input is not being split correctly (see <ulink url=\"http://trac.osgeo.org/"
+"postgis/ticket/2192\">#2192</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1889
+#, no-c-format
+msgid "Polygon Cut by Line"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1901 reference_processing.xml:1935
+#, no-c-format
+msgid "Before Split"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1913 reference_processing.xml:1947
+#, no-c-format
+msgid "After split"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1922
+#, no-c-format
+msgid ""
+"-- this creates a geometry collection consisting of the 2 halves of the "
+"polygon\n"
+"-- this is similar to the example we demonstrated in ST_BuildArea\n"
+"SELECT ST_Split(circle, line)\n"
+"FROM (SELECT \n"
+"    ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)) As line,\n"
+"    ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"    \n"
+"-- result --\n"
+" GEOMETRYCOLLECTION(POLYGON((150 90,149.039264020162 "
+"80.2454838991936,146.193976625564 70.8658283817455,..), POLYGON(..)))\n"
+" \n"
+"-- To convert to individual polygons, you can use ST_Dump or ST_GeometryN\n"
+"SELECT ST_AsText((ST_Dump(ST_Split(circle, line))).geom) As wkt\n"
+"FROM (SELECT \n"
+"    ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)) As line,\n"
+"    ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"    \n"
+"-- result --\n"
+"wkt\n"
+"---------------\n"
+"POLYGON((150 90,149.039264020162 80.2454838991936,..))\n"
+"POLYGON((60.1371179574584 60.1371179574584,58.4265193848728 "
+"62.2214883490198,53.8060233744357 ..))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1923
+#, no-c-format
+msgid "Multilinestring Cut by point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1956
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Split(mline, pt)) As wktcut\n"
+"        FROM (SELECT \n"
+"    ST_GeomFromText('MULTILINESTRING((10 10, 190 190), (15 15, 30 30, 100 "
+"90))') As mline,\n"
+"    ST_Point(30,30) As pt) As foo;\n"
+"    \n"
+"wktcut\n"
+"------\n"
+"GEOMETRYCOLLECTION(\n"
+"    LINESTRING(10 10,30 30),\n"
+"    LINESTRING(30 30,190 190),\n"
+"    LINESTRING(15 15,30 30),\n"
+"    LINESTRING(30 30,100 90)\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1960
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_BuildArea\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
+"linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1966
+#, no-c-format
+msgid "ST_SymDifference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1968
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the portions of A and B that do not "
+"intersect. It is called a symmetric difference because ST_SymDifference(A,B) "
+"= ST_SymDifference(B,A)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1975
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SymDifference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_SymDifference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:1986
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the portions of A and B that do not "
+"intersect. It is called a symmetric difference because ST_SymDifference(A,B) "
+"= ST_SymDifference(B,A). One can think of this as ST_Union(geomA,geomB) - "
+"ST_Intersection(A,B)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1996
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.21"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2016
+#, no-c-format
+msgid "The original linestrings shown together"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2028
+#, no-c-format
+msgid "The symmetric difference of the two linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2037
+#, no-c-format
+msgid ""
+"--Safe for 2d - symmetric difference of 2 linestrings\n"
+"SELECT ST_AsText(\n"
+"        ST_SymDifference(\n"
+"                ST_GeomFromText('LINESTRING(50 100, 50 200)'),\n"
+"                ST_GeomFromText('LINESTRING(50 50, 50 150)')\n"
+"        )\n"
+");\n"
+"\n"
+"st_astext\n"
+"---------\n"
+"MULTILINESTRING((50 150,50 200),(50 50,50 100))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2039
+#, no-c-format
+msgid ""
+"--When used in 3d doesn't quite do the right thing\n"
+"SELECT ST_AsEWKT(ST_SymDifference(ST_GeomFromEWKT('LINESTRING(1 2 1, 1 4 "
+"2)'),\n"
+"        ST_GeomFromEWKT('LINESTRING(1 1 3, 1 3 4)')))\n"
+"\n"
+"st_astext\n"
+"------------\n"
+"MULTILINESTRING((1 3 2.75,1 4 2),(1 1 3,1 2 2.25))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2046
+#, no-c-format
+msgid ", <xref linkend=\"ST_Intersection\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:2053
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:2054
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the point set union of the Geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:2059
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Union</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Union</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+
+#. Tag: para
+#: reference_processing.xml:2078
+#, no-c-format
+msgid ""
+"Output type can be a MULTI*, single geometry, or Geometry Collection. Comes "
+"in 2 variants. Variant 1 unions 2 geometries resulting in a new geometry "
+"with no intersecting regions. Variant 2 is an aggregate function that takes "
+"a set of geometries and unions them into a single ST_Geometry resulting in "
+"no intersecting regions."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2082
+#, no-c-format
+msgid ""
+"Aggregate version: This function returns a MULTI geometry or NON-MULTI "
+"geometry from a set of geometries. The ST_Union() function is an \"aggregate"
+"\" function in the terminology of PostgreSQL. That means that it operates on "
+"rows of data, in the same way the SUM() and AVG() functions do and like most "
+"aggregates, it also ignores NULL geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2088
+#, no-c-format
+msgid ""
+"Non-Aggregate version: This function returns a geometry being a union of two "
+"input geometries. Output type can be a MULTI*, NON-MULTI or "
+"GEOMETRYCOLLECTION. If any are NULL, then NULL is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2092
+#, no-c-format
+msgid ""
+"ST_Collect and ST_Union are often interchangeable. ST_Union is in general "
+"orders of magnitude slower than ST_Collect because it tries to dissolve "
+"boundaries and reorder geometries to ensure that a constructed Multi* "
+"doesn't have intersecting regions."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2098
+#, no-c-format
+msgid ""
+"NOTE: this function was formerly called GeomUnion(), which was renamed from "
+"\"Union\" because UNION is an SQL reserved word."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2101
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_Union was enhanced. ST_Union(geomarray) was "
+"introduced and also faster aggregate collection in PostgreSQL. If you are "
+"using GEOS 3.1.0+ ST_Union will use the faster Cascaded Union algorithm "
+"described in <ulink url=\"http://blog.cleverelephant.ca/2009/01/must-faster-"
+"unions-in-postgis-14.html\">http://blog.cleverelephant.ca/2009/01/must-"
+"faster-unions-in-postgis-14.html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2107
+#, no-c-format
+msgid "Aggregate version is not explicitly defined in OGC SPEC."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2108
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3: 5.1.19 the z-index (elevation) when polygons are "
+"involved."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2114
+#, no-c-format
+msgid "Aggregate example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2115
+#, no-c-format
+msgid ""
+"SELECT stusps,\n"
+"           ST_Multi(ST_Union(f.the_geom)) as singlegeom\n"
+"         FROM sometable As f\n"
+"GROUP BY stusps"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2117
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
+"        ST_GeomFromText('POINT(-2 3)') ) )\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(-2 3,1 2)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
+"                ST_GeomFromText('POINT(1 2)') ) );\n"
+"st_astext\n"
+"----------\n"
+"POINT(1 2)\n"
+"\n"
+"--3d example - sort of supports 3d (and with mixed dimensions!)\n"
+"SELECT ST_AsEWKT(st_union(the_geom))\n"
+"FROM\n"
+"(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2,-7.1 4.2,-7.1 4.3,\n"
+"-7 4.2))') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom\n"
+"UNION ALL\n"
+"        SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 "
+"5,-7.1 4.2 5,-7.1 4.3 5,-7 4.2 5)));\n"
+"\n"
+"--3d example not mixing dimensions\n"
+"SELECT ST_AsEWKT(st_union(the_geom))\n"
+"FROM\n"
+"(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2 2,-7.1 4.2 3,-7.1 4.3 2,\n"
+"-7 4.2 2))') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom\n"
+"UNION ALL\n"
+"        SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 "
+"2,-7.1 4.2 3,-7.1 4.3 2,-7 4.2 2)))\n"
+"\n"
+"--Examples using new Array construct\n"
+"SELECT ST_Union(ARRAY(SELECT the_geom FROM sometable));\n"
+"\n"
+"SELECT ST_AsText(ST_Union(ARRAY[ST_GeomFromText('LINESTRING(1 2, 3 4)'),\n"
+"                        ST_GeomFromText('LINESTRING(3 4, 4 5)')])) As "
+"wktunion;\n"
+"\n"
+"--wktunion---\n"
+"MULTILINESTRING((3 4,4 5),(1 2,3 4))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:2130
+#, no-c-format
+msgid "ST_UnaryUnion"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:2132
+#, no-c-format
+msgid "Like ST_Union, but working at the geometry component level."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:2137
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_UnaryUnion</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_UnaryUnion</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_processing.xml:2148
+#, no-c-format
+msgid ""
+"Unlike ST_Union, ST_UnaryUnion does dissolve boundaries between components "
+"of a multipolygon (invalid) and does perform union between the components of "
+"a geometrycollection. Each components of the input geometry is assumed to be "
+"valid, so you won't get a valid multipolygon out of a bow-tie polygon "
+"(invalid)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2158
+#, no-c-format
+msgid ""
+"You may use this function to node a set of linestrings. You may mix "
+"ST_UnaryUnion with ST_Collect to fine-tune how many geometries at once you "
+"want to dissolve to be nice on both memory size and CPU time, finding the "
+"balance between ST_Union and ST_MemUnion."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2176
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MemUnion\"/>, <xref linkend=\"ST_Collect\"/>, <xref "
+"linkend=\"ST_Node\"/>"
+msgstr ""
diff --git a/doc/po/fr/reference_raster.xml.po b/doc/po/fr/reference_raster.xml.po
new file mode 100644
index 0000000..6853fe2
--- /dev/null
+++ b/doc/po/fr/reference_raster.xml.po
@@ -0,0 +1,18932 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-17 19:32+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_raster.xml:3
+#, no-c-format
+msgid "Raster Reference"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5
+#, no-c-format
+msgid ""
+"The functions given below are the ones which a user of PostGIS Raster is "
+"likely to need and which are currently available in PostGIS Raster. There "
+"are other functions which are required support functions to the raster "
+"objects which are not of use to a general user."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9
+#, no-c-format
+msgid ""
+"<varname>raster</varname> is a new PostGIS type for storing and analyzing "
+"raster data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10
+#, no-c-format
+msgid ""
+"For loading rasters from raster files please refer to <xref linkend="
+"\"RT_Loading_Rasters\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:12
+#, no-c-format
+msgid ""
+"For the examples in this reference we will be using a raster table of dummy "
+"rasters - Formed with the following code"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:13
+#, no-c-format
+msgid ""
+"CREATE TABLE dummy_rast(rid integer, rast raster);\n"
+"INSERT INTO dummy_rast(rid, rast)\n"
+"VALUES (1,\n"
+"('01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0000' -- nBands (uint16 0)\n"
+"||\n"
+"'0000000000000040' -- scaleX (float64 2)\n"
+"||\n"
+"'0000000000000840' -- scaleY (float64 3)\n"
+"||\n"
+"'000000000000E03F' -- ipX (float64 0.5)\n"
+"||\n"
+"'000000000000E03F' -- ipY (float64 0.5)\n"
+"||\n"
+"'0000000000000000' -- skewX (float64 0)\n"
+"||\n"
+"'0000000000000000' -- skewY (float64 0)\n"
+"||\n"
+"'00000000' -- SRID (int32 0)\n"
+"||\n"
+"'0A00' -- width (uint16 10)\n"
+"||\n"
+"'1400' -- height (uint16 20)\n"
+")::raster\n"
+"),\n"
+"-- Raster: 5 x 5 pixels, 3 bands, PT_8BUI pixel type, NODATA = 0\n"
+"(2,  ('01000003009A9999999999A93F9A9999999999A9BF000000E02B274A' ||\n"
+"'41000000007719564100000000000000000000000000000000FFFFFFFF050005000400FDFEFDFEFEFDFEFEFDF9FAFEF' "
+"||\n"
+"'EFCF9FBFDFEFEFDFCFAFEFEFE04004E627AADD16076B4F9FE6370A9F5FE59637AB0E54F58617087040046566487A1506CA2E3FA5A6CAFFBFE4D566DA4CB3E454C5665')::"
+"raster);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:17
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types specifically created to support "
+"raster functionality."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:20
+#, no-c-format
+msgid "Raster Support Data types"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:24
+#, no-c-format
+msgid "geomval"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:25
+#, no-c-format
+msgid ""
+"A spatial datatype with two fields - geom (holding a geometry object) and "
+"val (holding a double precision pixel value from a raster band)."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:30 reference_raster.xml:49 reference_raster.xml:121
+#: reference_raster.xml:171 reference_raster.xml:211 reference_raster.xml:257
+#: reference_raster.xml:354 reference_raster.xml:536 reference_raster.xml:710
+#: reference_raster.xml:777 reference_raster.xml:846 reference_raster.xml:889
+#: reference_raster.xml:924 reference_raster.xml:961 reference_raster.xml:1002
+#: reference_raster.xml:1058 reference_raster.xml:1103
+#: reference_raster.xml:1209 reference_raster.xml:1418
+#: reference_raster.xml:1505 reference_raster.xml:1601
+#: reference_raster.xml:1668 reference_raster.xml:1733
+#: reference_raster.xml:1775 reference_raster.xml:1825
+#: reference_raster.xml:1864 reference_raster.xml:1898
+#: reference_raster.xml:1935 reference_raster.xml:1978
+#: reference_raster.xml:2013 reference_raster.xml:2047
+#: reference_raster.xml:2097 reference_raster.xml:2151
+#: reference_raster.xml:2188 reference_raster.xml:2228
+#: reference_raster.xml:2283 reference_raster.xml:2338
+#: reference_raster.xml:2384 reference_raster.xml:2419
+#: reference_raster.xml:2455 reference_raster.xml:2491
+#: reference_raster.xml:2526 reference_raster.xml:2565
+#: reference_raster.xml:2599 reference_raster.xml:2633
+#: reference_raster.xml:2677 reference_raster.xml:2739
+#: reference_raster.xml:2794 reference_raster.xml:2835
+#: reference_raster.xml:2882 reference_raster.xml:2924
+#: reference_raster.xml:2975 reference_raster.xml:3010
+#: reference_raster.xml:3085 reference_raster.xml:3128
+#: reference_raster.xml:3174 reference_raster.xml:3232
+#: reference_raster.xml:3275 reference_raster.xml:3326
+#: reference_raster.xml:3369 reference_raster.xml:3441
+#: reference_raster.xml:3528 reference_raster.xml:3615
+#: reference_raster.xml:3703 reference_raster.xml:3788
+#: reference_raster.xml:3914 reference_raster.xml:4010
+#: reference_raster.xml:4062 reference_raster.xml:4110
+#: reference_raster.xml:4153 reference_raster.xml:4200
+#: reference_raster.xml:4244 reference_raster.xml:4282
+#: reference_raster.xml:4357 reference_raster.xml:4426
+#: reference_raster.xml:4494 reference_raster.xml:4571
+#: reference_raster.xml:4643 reference_raster.xml:4722
+#: reference_raster.xml:4830 reference_raster.xml:4865
+#: reference_raster.xml:4932 reference_raster.xml:4997
+#: reference_raster.xml:5110 reference_raster.xml:5231
+#: reference_raster.xml:5297 reference_raster.xml:5376
+#: reference_raster.xml:5522 reference_raster.xml:5565
+#: reference_raster.xml:5611 reference_raster.xml:5696
+#: reference_raster.xml:5787 reference_raster.xml:5875
+#: reference_raster.xml:5986 reference_raster.xml:6179
+#: reference_raster.xml:6455 reference_raster.xml:6599
+#: reference_raster.xml:6836 reference_raster.xml:7042
+#: reference_raster.xml:7166 reference_raster.xml:7492
+#: reference_raster.xml:7610 reference_raster.xml:7723
+#: reference_raster.xml:7865 reference_raster.xml:7951
+#: reference_raster.xml:8023 reference_raster.xml:8087
+#: reference_raster.xml:8158 reference_raster.xml:8233
+#: reference_raster.xml:8316 reference_raster.xml:8387
+#: reference_raster.xml:8443 reference_raster.xml:8518
+#: reference_raster.xml:8589 reference_raster.xml:8673
+#: reference_raster.xml:8765 reference_raster.xml:8847
+#: reference_raster.xml:8901 reference_raster.xml:8975
+#: reference_raster.xml:9023 reference_raster.xml:9075
+#: reference_raster.xml:9117 reference_raster.xml:9165
+#: reference_raster.xml:9216 reference_raster.xml:9264
+#: reference_raster.xml:9306 reference_raster.xml:9380
+#: reference_raster.xml:9425 reference_raster.xml:9470
+#: reference_raster.xml:9515 reference_raster.xml:9584
+#: reference_raster.xml:9631 reference_raster.xml:9704
+#: reference_raster.xml:9772 reference_raster.xml:9861
+#: reference_raster.xml:9946 reference_raster.xml:10027
+#: reference_raster.xml:10108 reference_raster.xml:10237
+#: reference_raster.xml:10321 reference_raster.xml:10401
+#: reference_raster.xml:10520 reference_raster.xml:10567
+#: reference_raster.xml:10639 reference_raster.xml:10736
+#: reference_raster.xml:10829
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:31
+#, no-c-format
+msgid ""
+"geomval is a compound data type consisting of a geometry object referenced "
+"by the .geom field and val, a double precision value that represents the "
+"pixel value at a particular geometric location in a raster band. It is used "
+"by the ST_DumpAsPolygon and Raster intersection family of functions as an "
+"output type to explode a raster band into geometry polygons."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:37 reference_raster.xml:107 reference_raster.xml:157
+#: reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:340
+#: reference_raster.xml:389 reference_raster.xml:584 reference_raster.xml:725
+#: reference_raster.xml:803 reference_raster.xml:863 reference_raster.xml:899
+#: reference_raster.xml:936 reference_raster.xml:974 reference_raster.xml:1022
+#: reference_raster.xml:1073 reference_raster.xml:1123
+#: reference_raster.xml:1253 reference_raster.xml:1470
+#: reference_raster.xml:1560 reference_raster.xml:1621
+#: reference_raster.xml:1697 reference_raster.xml:1748
+#: reference_raster.xml:1796 reference_raster.xml:1843
+#: reference_raster.xml:1877 reference_raster.xml:1913
+#: reference_raster.xml:1956 reference_raster.xml:1992
+#: reference_raster.xml:2026 reference_raster.xml:2070
+#: reference_raster.xml:2130 reference_raster.xml:2167
+#: reference_raster.xml:2205 reference_raster.xml:2250
+#: reference_raster.xml:2309 reference_raster.xml:2363
+#: reference_raster.xml:2398 reference_raster.xml:2434
+#: reference_raster.xml:2470 reference_raster.xml:2505
+#: reference_raster.xml:2539 reference_raster.xml:2578
+#: reference_raster.xml:2612 reference_raster.xml:2647
+#: reference_raster.xml:2697 reference_raster.xml:2754
+#: reference_raster.xml:2809 reference_raster.xml:2860
+#: reference_raster.xml:2895 reference_raster.xml:2950
+#: reference_raster.xml:2988 reference_raster.xml:3063
+#: reference_raster.xml:3100 reference_raster.xml:3142
+#: reference_raster.xml:3200 reference_raster.xml:3243
+#: reference_raster.xml:3294 reference_raster.xml:3337
+#: reference_raster.xml:3388 reference_raster.xml:3463
+#: reference_raster.xml:3553 reference_raster.xml:3647
+#: reference_raster.xml:3718 reference_raster.xml:3867
+#: reference_raster.xml:3932 reference_raster.xml:4088
+#: reference_raster.xml:4123 reference_raster.xml:4172
+#: reference_raster.xml:4217 reference_raster.xml:4257
+#: reference_raster.xml:4295 reference_raster.xml:4387
+#: reference_raster.xml:4452 reference_raster.xml:4521
+#: reference_raster.xml:4599 reference_raster.xml:4673
+#: reference_raster.xml:4795 reference_raster.xml:4843
+#: reference_raster.xml:4884 reference_raster.xml:4953
+#: reference_raster.xml:5014 reference_raster.xml:5145
+#: reference_raster.xml:5246 reference_raster.xml:5333
+#: reference_raster.xml:5393 reference_raster.xml:5540
+#: reference_raster.xml:5650 reference_raster.xml:5741
+#: reference_raster.xml:5832 reference_raster.xml:5912
+#: reference_raster.xml:6142 reference_raster.xml:6376
+#: reference_raster.xml:6520 reference_raster.xml:6767
+#: reference_raster.xml:7003 reference_raster.xml:7116
+#: reference_raster.xml:7408 reference_raster.xml:7567
+#: reference_raster.xml:7690 reference_raster.xml:7823
+#: reference_raster.xml:7894 reference_raster.xml:7982
+#: reference_raster.xml:8055 reference_raster.xml:8125
+#: reference_raster.xml:8194 reference_raster.xml:8276
+#: reference_raster.xml:8355 reference_raster.xml:8410
+#: reference_raster.xml:8479 reference_raster.xml:8550
+#: reference_raster.xml:8625 reference_raster.xml:8718
+#: reference_raster.xml:8815 reference_raster.xml:8858
+#: reference_raster.xml:8943 reference_raster.xml:8991
+#: reference_raster.xml:9042 reference_raster.xml:9092
+#: reference_raster.xml:9137 reference_raster.xml:9190
+#: reference_raster.xml:9236 reference_raster.xml:9279
+#: reference_raster.xml:9318 reference_raster.xml:9529
+#: reference_raster.xml:9597 reference_raster.xml:9650
+#: reference_raster.xml:9716 reference_raster.xml:9807
+#: reference_raster.xml:9892 reference_raster.xml:9973
+#: reference_raster.xml:10054 reference_raster.xml:10138
+#: reference_raster.xml:10267 reference_raster.xml:10348
+#: reference_raster.xml:10428 reference_raster.xml:10541
+#: reference_raster.xml:10585 reference_raster.xml:10672
+#: reference_raster.xml:10767 reference_raster.xml:10860
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:44
+#, no-c-format
+msgid "addbandarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:45
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_AddBand function "
+"defining the attributes and initial value of the new band.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:50
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_AddBand function defining "
+"the attributes and initial value of the new band.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:55
+#, no-c-format
+msgid "<parameter>index </parameter> <type>integer</type>"
+msgstr "<parameter>index </parameter> <type>integer</type>"
+
+#. Tag: para
+#: reference_raster.xml:60
+#, no-c-format
+msgid ""
+"1-based value indicating the position where the new band will be added "
+"amongst the raster's bands. If NULL, the new band will be added at the end "
+"of the raster's bands."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:67
+#, no-c-format
+msgid "<parameter>pixeltype </parameter> <type>text</type>"
+msgstr "<parameter>pixeltype </parameter> <type>text</type>"
+
+#. Tag: para
+#: reference_raster.xml:72
+#, no-c-format
+msgid ""
+"Pixel type of the new band. One of defined pixel types as described in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:79
+#, no-c-format
+msgid "<parameter>initialvalue </parameter> <type>double precision</type>"
+msgstr "<parameter>initialvalue </parameter> <type>double precision</type>"
+
+#. Tag: para
+#: reference_raster.xml:84
+#, no-c-format
+msgid "Initial value that all pixels of new band will be set to."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:91
+#, no-c-format
+msgid "<parameter>nodataval </parameter> <type>double precision</type>"
+msgstr "<parameter>nodataval </parameter> <type>double precision</type>"
+
+#. Tag: para
+#: reference_raster.xml:96
+#, no-c-format
+msgid ""
+"NODATA value of the new band. If NULL, the new band will not have a NODATA "
+"value assigned."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:116
+#, no-c-format
+msgid "rastbandarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:117
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type for use when needing to express a raster and a "
+"band index of that raster.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:122
+#, no-c-format
+msgid ""
+"<para>A composite type for use when needing to express a raster and a band "
+"index of that raster.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:128
+#, no-c-format
+msgid "<parameter>rast </parameter> <type>raster</type>"
+msgstr "<parameter>rast </parameter> <type>raster</type>"
+
+#. Tag: para
+#: reference_raster.xml:133
+#, no-c-format
+msgid "The raster in question/"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:140 reference_raster.xml:360
+#, no-c-format
+msgid "<parameter>nband </parameter> <type>integer</type>"
+msgstr "<parameter>nband </parameter> <type>integer</type>"
+
+#. Tag: para
+#: reference_raster.xml:145
+#, no-c-format
+msgid "1-based value indicating the band of raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:166
+#, no-c-format
+msgid "raster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:167
+#, no-c-format
+msgid "raster spatial data type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:172
+#, no-c-format
+msgid ""
+"raster is a spatial data type used to represent raster data such as those "
+"imported from jpegs, tiffs, pngs, digital elevation models. Each raster has "
+"1 or more bands each having a set of pixel values. Rasters can be "
+"georeferenced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:175
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with GDAL support. Currently rasters can be "
+"implicitly converted to geometry type, but the conversion returns the <xref "
+"linkend=\"RT_ST_ConvexHull\"/> of the raster. This auto casting may be "
+"removed in the near future so don't rely on it."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:181
+#, no-c-format
+msgid "Casting Behavior"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:182
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:187
+#, no-c-format
+msgid "Cast To"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:188
+#, no-c-format
+msgid "Behavior"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:191
+#, no-c-format
+msgid "geometry"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:192
+#, no-c-format
+msgid "automatic"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:207
+#, no-c-format
+msgid "reclassarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:208
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_Reclass function "
+"defining the behavior of reclassification.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:212
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_Reclass function defining "
+"the behavior of reclassification.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:215
+#, no-c-format
+msgid "<parameter>nband </parameter><type>integer</type>"
+msgstr "<parameter>nband </parameter><type>integer</type>"
+
+#. Tag: para
+#: reference_raster.xml:216
+#, no-c-format
+msgid "The band number of band to reclassify."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:219
+#, no-c-format
+msgid "<parameter>reclassexpr </parameter><type>text</type>"
+msgstr "<parameter>reclassexpr </parameter><type>text</type>"
+
+#. Tag: para
+#: reference_raster.xml:220
+#, no-c-format
+msgid ""
+"range expression consisting of comma delimited range:map_range mappings. : "
+"to define mapping that defines how to map old band values to new band "
+"values. ( means >, ) means less than, ] < or equal, [ means > or "
+"equal"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:221
+#, no-c-format
+msgid ""
+"1. [a-b] = a <= x <= b\n"
+"\n"
+"2. (a-b] = a < x <= b\n"
+"\n"
+"3. [a-b) = a <= x < b\n"
+"\n"
+"4. (a-b) = a < x < b"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:222
+#, no-c-format
+msgid "( notation is optional so a-b means the same as (a-b)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:227
+#, no-c-format
+msgid "<parameter>pixeltype </parameter><type>text</type>"
+msgstr "<parameter>pixeltype </parameter><type>text</type>"
+
+#. Tag: para
+#: reference_raster.xml:228
+#, no-c-format
+msgid ""
+"One of defined pixel types as described in <xref linkend="
+"\"RT_ST_BandPixelType\"/>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:231
+#, no-c-format
+msgid "<parameter>nodataval </parameter><type>double precision</type>"
+msgstr "<parameter>nodataval </parameter><type>double precision</type>"
+
+#. Tag: para
+#: reference_raster.xml:232
+#, no-c-format
+msgid ""
+"Value to treat as no data. For image outputs that support transparency, "
+"these will be blank."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:237
+#, no-c-format
+msgid "Example: Reclassify band 2 as an 8BUI where 255 is nodata value"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:238
+#, no-c-format
+msgid ""
+"SELECT ROW(2, '0-100:1-10, 101-500:11-150,501 - 10000: 151-254', '8BUI', "
+"255)::reclassarg;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:241
+#, no-c-format
+msgid "Example: Reclassify band 1 as an 1BB and no nodata value defined"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:242
+#, no-c-format
+msgid "SELECT ROW(1, '0-100]:0, (100-255:1', '1BB', NULL)::reclassarg;"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:252
+#, no-c-format
+msgid "summarystats"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:253
+#, no-c-format
+msgid ""
+"A composite type returned by the ST_SummaryStats and ST_SummaryStatsAgg "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:258
+#, no-c-format
+msgid ""
+"A composite type returned by the <xref linkend=\"RT_ST_SummaryStats\"/> and "
+"<xref linkend=\"RT_ST_SummaryStatsAgg\"/> functions."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:263
+#, fuzzy, no-c-format
+msgid "<parameter>count </parameter> <type>integer</type>"
+msgstr "<parameter>index </parameter> <type>integer</type>"
+
+#. Tag: para
+#: reference_raster.xml:268
+#, no-c-format
+msgid "Number of pixels counted for the summary statistics."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:275
+#, fuzzy, no-c-format
+msgid "<parameter>sum </parameter> <type>double precision</type>"
+msgstr "<parameter>width </parameter><type>double precision[]</type>"
+
+#. Tag: para
+#: reference_raster.xml:280
+#, no-c-format
+msgid "Sum of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:287
+#, fuzzy, no-c-format
+msgid "<parameter>mean </parameter> <type>double precision</type>"
+msgstr "<parameter>nodataval </parameter> <type>double precision</type>"
+
+#. Tag: para
+#: reference_raster.xml:292
+#, no-c-format
+msgid "Arithmetic mean of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:299
+#, fuzzy, no-c-format
+msgid "<parameter>stddev </parameter> <type>double precision</type>"
+msgstr "<parameter>nodataval </parameter> <type>double precision</type>"
+
+#. Tag: para
+#: reference_raster.xml:304
+#, no-c-format
+msgid "Standard deviation of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:311
+#, fuzzy, no-c-format
+msgid "<parameter>min </parameter> <type>double precision</type>"
+msgstr "<parameter>width </parameter><type>double precision[]</type>"
+
+#. Tag: para
+#: reference_raster.xml:316
+#, no-c-format
+msgid "Minimum value of counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:323
+#, fuzzy, no-c-format
+msgid "<parameter>max </parameter> <type>double precision</type>"
+msgstr "<parameter>nodataval </parameter> <type>double precision</type>"
+
+#. Tag: para
+#: reference_raster.xml:328
+#, no-c-format
+msgid "Maximum value of counted pixel values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:341
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:349
+#, no-c-format
+msgid "unionarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:350
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_Union function "
+"defining the bands to be processed and behavior of the UNION operation.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:355
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_Union function defining the "
+"bands to be processed and behavior of the UNION operation.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:365
+#, no-c-format
+msgid "1-based value indicating the band of each input raster to be processed."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:372
+#, no-c-format
+msgid "<parameter>uniontype </parameter> <type>text</type>"
+msgstr "<parameter>uniontype </parameter> <type>text</type>"
+
+#. Tag: para
+#: reference_raster.xml:377
+#, no-c-format
+msgid ""
+"Type of UNION operation. One of defined types as described in <xref linkend="
+"\"RT_ST_Union\"/>."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:399
+#, no-c-format
+msgid "Raster Management"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:402
+#, no-c-format
+msgid "AddRasterConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:404
+#, no-c-format
+msgid ""
+"Adds raster constraints to a loaded raster table for a specific column that "
+"constrains spatial ref, scaling, blocksize, alignment, bands, band type and "
+"a flag to denote if raster column is regularly blocked. The table must be "
+"loaded with data for the constraints to be inferred. Returns true of the "
+"constraint setting was accomplished and if issues a notice."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:408
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>scale_x=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>AddRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>scale_x=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=true</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:538
+#, no-c-format
+msgid ""
+"Generates constraints on a raster column that are used to display "
+"information in the <varname>raster_columns</varname> raster catalog. The "
+"<varname>rastschema</varname> is the name of the table schema the table "
+"resides in. The <varname>srid</varname> must be an integer value reference "
+"to an entry in the SPATIAL_REF_SYS table."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:543
+#, no-c-format
+msgid ""
+"<varname>raster2pgsql</varname> loader uses this function to register raster "
+"tables"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:544
+#, no-c-format
+msgid ""
+"Valid constraint names to pass in: refer to <xref linkend=\"RT_Raster_Columns"
+"\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:546
+#, no-c-format
+msgid "<varname>blocksize</varname> sets both X and Y blocksize"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:547
+#, no-c-format
+msgid ""
+"<varname>blocksize_x</varname> sets X tile (width in pixels of each tile)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:548
+#, no-c-format
+msgid ""
+"<varname>blocksize_y</varname> sets Y tile (height in pixels of each tile)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:549
+#, no-c-format
+msgid ""
+"<varname>extent</varname> computes extent of whole table and applys "
+"constraint all rasters must be within that extent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:551
+#, no-c-format
+msgid "<varname>num_bands</varname> number of bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:552
+#, no-c-format
+msgid ""
+"<varname>pixel_types</varname> reads array of pixel types for each band "
+"ensure all band n have same pixel type"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:553
+#, no-c-format
+msgid ""
+"<varname>regular_blocking</varname> sets spatially unique (no two rasters "
+"can be spatially the same) and coverage tile (raster is aligned to a "
+"coverage) constraints"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:554
+#, no-c-format
+msgid ""
+"<varname>same_alignment</varname> ensures they all have same alignment "
+"meaning any two tiles you compare will return true for. Refer to"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:555
+#, no-c-format
+msgid "<varname>srid</varname> ensures all have same srid"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:556
+#, no-c-format
+msgid "More -- any listed as inputs into the above functions"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:559
+#, no-c-format
+msgid ""
+"This function infers the constraints from the data already present in the "
+"table. As such for it to work, you must create the raster column first and "
+"then load it with data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:564
+#, no-c-format
+msgid ""
+"If you need to load more data in your tables after you have already applied "
+"constraints, you may want to run the DropRasterConstraints if the extent of "
+"your data has changed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:568 reference_raster.xml:717 reference_raster.xml:793
+#: reference_raster.xml:859 reference_raster.xml:1511
+#: reference_raster.xml:1902 reference_raster.xml:2932
+#: reference_raster.xml:3089 reference_raster.xml:3132
+#: reference_raster.xml:3189 reference_raster.xml:4873
+#: reference_raster.xml:4936 reference_raster.xml:5131
+#: reference_raster.xml:5235 reference_raster.xml:5305
+#: reference_raster.xml:5527 reference_raster.xml:6000
+#: reference_raster.xml:7062 reference_raster.xml:7261
+#: reference_raster.xml:7525 reference_raster.xml:7644
+#: reference_raster.xml:7773 reference_raster.xml:7871
+#: reference_raster.xml:7959 reference_raster.xml:8043
+#: reference_raster.xml:8182 reference_raster.xml:8257
+#: reference_raster.xml:8344 reference_raster.xml:8467
+#: reference_raster.xml:8538 reference_raster.xml:8613
+#: reference_raster.xml:8699 reference_raster.xml:8795
+#: reference_raster.xml:8923 reference_raster.xml:9387
+#: reference_raster.xml:9639 reference_raster.xml:9711
+#: reference_raster.xml:10530
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:572
+#, no-c-format
+msgid "Examples: Apply all possible constraints on column based on data"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:574
+#, no-c-format
+msgid ""
+"CREATE TABLE myrasters(rid SERIAL primary key, rast raster);\n"
+"INSERT INTO myrasters(rast)\n"
+"SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, "
+"0,4326), 1, '8BSI'::text, -129, NULL);\n"
+"\n"
+"SELECT AddRasterConstraints('myrasters'::name, 'rast'::name);\n"
+"\n"
+"\n"
+"-- verify if registered correctly in the raster_columns view --\n"
+"SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, "
+"pixel_types, nodata_values\n"
+"        FROM raster_columns\n"
+"        WHERE r_table_name = 'myrasters';\n"
+"        \n"
+" srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | "
+"pixel_types| nodata_values\n"
+"------+---------+---------+-------------+-------------+-----------"
+"+-------------+---------------\n"
+" 4326 |       2 |       2 |        1000 |        1000 |         1 | "
+"{8BSI}      | {0}"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:578
+#, no-c-format
+msgid "Examples: Apply single constraint"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:580
+#, no-c-format
+msgid ""
+"CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);\n"
+"INSERT INTO myrasters2(rast)\n"
+"SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, "
+"0,4326), 1, '8BSI'::text, -129, NULL);\n"
+"\n"
+"SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::"
+"name,'regular_blocking', 'blocksize');\n"
+"-- get notice--\n"
+"NOTICE:  Adding regular blocking constraint\n"
+"NOTICE:  Adding blocksize-X constraint\n"
+"NOTICE:  Adding blocksize-Y constraint"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:586
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/"
+">, <xref linkend=\"RT_DropRasterConstraints\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:592
+#, no-c-format
+msgid "DropRasterConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:594
+#, no-c-format
+msgid ""
+"Drops PostGIS raster constraints that refer to a raster table column. Useful "
+"if you need to reload data or update your raster column data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:598
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>scale_x=true</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>constraints</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>DropRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>scale_x=true</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=true</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>constraints</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:711
+#, no-c-format
+msgid ""
+"Drops PostGIS raster constraints that refer to a raster table column that "
+"were added by <xref linkend=\"RT_AddRasterConstraints\"/>. Useful if you "
+"need to load more data or update your raster column data. You do not need to "
+"do this if you want to get rid of a raster table or a raster column."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:713
+#, no-c-format
+msgid "To drop a raster table use the standard"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:713
+#, no-c-format
+msgid "DROP TABLE mytable"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:714
+#, no-c-format
+msgid ""
+"To drop just a raster column and leave the rest of the table, use standard "
+"SQL"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:714
+#, no-c-format
+msgid "ALTER TABLE mytable DROP COLUMN rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:715
+#, no-c-format
+msgid ""
+"the table will disappear from the <varname>raster_columns</varname> catalog "
+"if the column or table is dropped. However if only the constraints are "
+"dropped, the raster column will still be listed in the "
+"<varname>raster_columns</varname> catalog, but there will be no other "
+"information about it aside from the column name and table."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:720 reference_raster.xml:797 reference_raster.xml:894
+#: reference_raster.xml:930 reference_raster.xml:968 reference_raster.xml:1515
+#: reference_raster.xml:1614 reference_raster.xml:1688
+#: reference_raster.xml:1789 reference_raster.xml:1837
+#: reference_raster.xml:1870 reference_raster.xml:1906
+#: reference_raster.xml:1949 reference_raster.xml:1985
+#: reference_raster.xml:2019 reference_raster.xml:2159
+#: reference_raster.xml:2197 reference_raster.xml:2240
+#: reference_raster.xml:2299 reference_raster.xml:2353
+#: reference_raster.xml:2391 reference_raster.xml:2426
+#: reference_raster.xml:2462 reference_raster.xml:2498
+#: reference_raster.xml:2534 reference_raster.xml:2571
+#: reference_raster.xml:2605 reference_raster.xml:2639
+#: reference_raster.xml:2690 reference_raster.xml:2747
+#: reference_raster.xml:2802 reference_raster.xml:2853
+#: reference_raster.xml:2888 reference_raster.xml:2943
+#: reference_raster.xml:2981 reference_raster.xml:3056
+#: reference_raster.xml:3093 reference_raster.xml:3137
+#: reference_raster.xml:3195 reference_raster.xml:3238
+#: reference_raster.xml:3289 reference_raster.xml:3332
+#: reference_raster.xml:3383 reference_raster.xml:3450
+#: reference_raster.xml:3544 reference_raster.xml:3636
+#: reference_raster.xml:3711 reference_raster.xml:3924
+#: reference_raster.xml:4019 reference_raster.xml:4082
+#: reference_raster.xml:4116 reference_raster.xml:4164
+#: reference_raster.xml:4207 reference_raster.xml:4288
+#: reference_raster.xml:4381 reference_raster.xml:4445
+#: reference_raster.xml:4513 reference_raster.xml:4591
+#: reference_raster.xml:4668 reference_raster.xml:4747
+#: reference_raster.xml:4836 reference_raster.xml:4877
+#: reference_raster.xml:4947 reference_raster.xml:5009
+#: reference_raster.xml:5239 reference_raster.xml:5388
+#: reference_raster.xml:5531 reference_raster.xml:5584
+#: reference_raster.xml:5824 reference_raster.xml:6265
+#: reference_raster.xml:7066 reference_raster.xml:7529
+#: reference_raster.xml:7777 reference_raster.xml:8048
+#: reference_raster.xml:8120 reference_raster.xml:8187
+#: reference_raster.xml:8349 reference_raster.xml:8405
+#: reference_raster.xml:8472 reference_raster.xml:8543
+#: reference_raster.xml:8618 reference_raster.xml:8853
+#: reference_raster.xml:8986 reference_raster.xml:9037
+#: reference_raster.xml:9086 reference_raster.xml:9129
+#: reference_raster.xml:9185 reference_raster.xml:9230
+#: reference_raster.xml:9274 reference_raster.xml:9313
+#: reference_raster.xml:9391 reference_raster.xml:9436
+#: reference_raster.xml:9481 reference_raster.xml:9644
+#: reference_raster.xml:9800 reference_raster.xml:9887
+#: reference_raster.xml:9968 reference_raster.xml:10049
+#: reference_raster.xml:10130 reference_raster.xml:10262
+#: reference_raster.xml:10343 reference_raster.xml:10423
+#: reference_raster.xml:10580 reference_raster.xml:10667
+#: reference_raster.xml:10762 reference_raster.xml:10855
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:722
+#, no-c-format
+msgid ""
+"SELECT DropRasterConstraints ('myrasters','rast');\n"
+"----RESULT output ---\n"
+"t\n"
+"\n"
+"-- verify change in raster_columns --\n"
+"SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, "
+"pixel_types, nodata_values\n"
+"        FROM raster_columns\n"
+"        WHERE r_table_name = 'myrasters';\n"
+"        \n"
+" srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | "
+"pixel_types| nodata_values\n"
+"------+---------+---------+-------------+-------------+-----------"
+"+-------------+---------------\n"
+"    0 |         |         |             |             |           "
+"|             |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:733
+#, no-c-format
+msgid "AddOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:735
+#, no-c-format
+msgid "Tag a raster column as being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:739
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>reftable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refcolumn</"
+"parameter></paramdef> <paramdef><type>int </type> <parameter>ovfactor</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddOverviewConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>ovcolumn</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>reftable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>refcolumn</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>ovfactor</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=true</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>crop</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Clip</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>crop</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:779
+#, no-c-format
+msgid ""
+"Adds constraints on a raster column that are used to display information in "
+"the <varname>raster_overviews</varname> raster catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:783
+#, no-c-format
+msgid ""
+"The <varname>ovfactor</varname> parameter represents the scale multiplier in "
+"the overview column: higher overview factors have lower resolution."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:787
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> and <varname>refschema</varname> "
+"parameters are omitted, the first table found scanning the "
+"<varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:799
+#, no-c-format
+msgid ""
+"CREATE TABLE res1 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r1;\n"
+"\n"
+"CREATE TABLE res2 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(500, 500, 0, 0, 4),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r2;\n"
+"\n"
+"SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);\n"
+"\n"
+"-- verify if registered correctly in the raster_overviews view --\n"
+"SELECT o_table_name ot, o_raster_column oc,\n"
+"       r_table_name rt, r_raster_column rc,\n"
+"       overview_factor f\n"
+"FROM raster_overviews WHERE o_table_name = 'res2';\n"
+"  ot  | oc |  rt  | rc | f\n"
+"------+----+------+----+---\n"
+" res2 | r2 | res1 | r1 | 2\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:805
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_DropOverviewConstraints\"/>, <xref linkend="
+"\"RT_CreateOverview\"/>, <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:816
+#, no-c-format
+msgid "DropOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:818
+#, no-c-format
+msgid "Untag a raster column from being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:822
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropOverviewConstraints</function></funcdef> <paramdef><type>name "
+"</type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>ovcolumn</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:848
+#, no-c-format
+msgid ""
+"Remove from a raster column the constraints used to show it as being an "
+"overview of another in the <varname>raster_overviews</varname> raster "
+"catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:853
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> parameter is omitted, the first table "
+"found scanning the <varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:865
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_DropRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:875
+#, no-c-format
+msgid "PostGIS_GDAL_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:876
+#, no-c-format
+msgid "Reports the version of the GDAL library in use by PostGIS."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:881
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GDAL_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:890
+#, no-c-format
+msgid ""
+"Reports the version of the GDAL library in use by PostGIS. Will also check "
+"and report if GDAL can find its data files."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:895
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GDAL_Version();\n"
+"       postgis_gdal_version        \n"
+"-----------------------------------\n"
+" GDAL 1.11dev, released 2013/04/13"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:908
+#, no-c-format
+msgid "PostGIS_Raster_Lib_Build_Date"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:910
+#, no-c-format
+msgid "Reports full raster library build date."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:915
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:926
+#, no-c-format
+msgid "Reports raster build date"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:932
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Raster_Lib_Build_Date();\n"
+"postgis_raster_lib_build_date\n"
+"-----------------------------\n"
+"2010-04-28 21:15:10"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:944
+#, no-c-format
+msgid "PostGIS_Raster_Lib_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:946
+#, no-c-format
+msgid ""
+"<refpurpose>Reports full raster version and build configuration infos.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:952
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:963
+#, no-c-format
+msgid "<para>Reports full raster version and build configuration infos.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:970
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Raster_Lib_Version();\n"
+"postgis_raster_lib_version\n"
+"-----------------------------\n"
+" 2.0.0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:984
+#, no-c-format
+msgid "ST_GDALDrivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:986
+#, no-c-format
+msgid ""
+"Returns a list of raster formats supported by your lib gdal. These are the "
+"formats you can output your raster using ST_AsGDALRaster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:991
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>ST_GDALDrivers</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>OUT idx</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>OUT short_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT long_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT create_options</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>setof record <function>ST_GDALDrivers</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>OUT idx</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>OUT short_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT long_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT create_options</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:1004
+#, no-c-format
+msgid ""
+"Returns a list of raster formats short_name,long_name and creator options of "
+"each format supported by your lib gdal. Use the short_name as input in the "
+"<varname>format</varname> parameter of <xref linkend=\"RT_ST_AsGDALRaster\"/"
+">. Options vary depending on what drivers your libgdal was compiled with. "
+"<varname>create_options</varname> returns an xml formatted set of "
+"CreationOptionList/Option consisting of name and optional <varname>type</"
+"varname>, <varname>description</varname> and set of <varname>VALUE</varname> "
+"for each creator option for the specific driver."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1007 reference_raster.xml:1438
+#: reference_raster.xml:5631 reference_raster.xml:5729
+#: reference_raster.xml:5820 reference_raster.xml:5900
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GDAL >= 1.6.0."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1011
+#, no-c-format
+msgid "Examples: List of Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1013
+#, no-c-format
+msgid ""
+"SELECT short_name, long_name\n"
+"FROM st_gdaldrivers()\n"
+"ORDER BY short_name;\n"
+"  short_name    |              long_name\n"
+"----------------+--------------------------------------\n"
+"AAIGrid         | Arc/Info ASCII Grid\n"
+"DTED            | DTED Elevation Raster\n"
+"EHdr            | ESRI .hdr Labelled\n"
+"FIT             | FIT Image\n"
+"GIF             | Graphics Interchange Format (.gif)\n"
+"GSAG            | Golden Software ASCII Grid (.grd)\n"
+"GSBG            | Golden Software Binary Grid (.grd)\n"
+"GTiff           | GeoTIFF\n"
+"HF2             | HF2/HFZ heightfield raster\n"
+"HFA             | Erdas Imagine Images (.img)\n"
+"ILWIS           | ILWIS Raster Map\n"
+"INGR            | Intergraph Raster\n"
+"JPEG            | JPEG JFIF\n"
+"KMLSUPEROVERLAY | Kml Super Overlay\n"
+"NITF            | National Imagery Transmission Format\n"
+"PNG             | Portable Network Graphics\n"
+"R               | R Object Data Store\n"
+"SAGA            | SAGA GIS Binary Grid (.sdat)\n"
+"SRTMHGT         | SRTMHGT File Format\n"
+"USGSDEM         | USGS Optional ASCII DEM (and CDED)\n"
+"VRT             | Virtual Raster\n"
+"XPM             | X11 PixMap Format"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1015
+#, no-c-format
+msgid "Example: List of options for each driver"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1016
+#, no-c-format
+msgid ""
+"-- Output the create options XML column of JPEG as a table  --\n"
+"-- Note you can use these creator options in ST_AsGDALRaster options "
+"argument\n"
+"SELECT (xpath('@name', g.opt))[1]::text As oname,\n"
+"       (xpath('@type', g.opt))[1]::text As otype,\n"
+"       (xpath('@description', g.opt))[1]::text As descrip\n"
+"FROM (SELECT unnest(xpath('/CreationOptionList/Option', create_options::"
+"xml)) As opt\n"
+"FROM  st_gdaldrivers()\n"
+"WHERE short_name = 'JPEG') As g;\n"
+"\n"
+"    oname    |  otype  |           descrip\n"
+"-------------+---------+-----------------------------\n"
+" PROGRESSIVE | boolean |\n"
+" QUALITY     | int     | good=100, bad=0, default=75\n"
+" WORLDFILE   | boolean |"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1018
+#, no-c-format
+msgid ""
+"-- raw xml output for creator options for GeoTiff --\n"
+"SELECT create_options\n"
+"FROM st_gdaldrivers()\n"
+"WHERE short_name = 'GTiff';\n"
+"\n"
+"<![CDATA[<CreationOptionList>\n"
+"    <Option name=\"COMPRESS\" type=\"string-select\">\n"
+"        <Value>NONE</Value>\n"
+"        <Value>LZW</Value>\n"
+"        <Value>PACKBITS</Value>\n"
+"        <Value>JPEG</Value>\n"
+"        <Value>CCITTRLE</Value>\n"
+"        <Value>CCITTFAX3</Value>\n"
+"        <Value>CCITTFAX4</Value>\n"
+"        <Value>DEFLATE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"PREDICTOR\" type=\"int\" description=\"Predictor Type\"/"
+">\n"
+"    <Option name=\"JPEG_QUALITY\" type=\"int\" description=\"JPEG quality "
+"1-100\" default=\"75\"/>\n"
+"    <Option name=\"ZLEVEL\" type=\"int\" description=\"DEFLATE compression "
+"level 1-9\" default=\"6\"/>\n"
+"    <Option name=\"NBITS\" type=\"int\" description=\"BITS for sub-byte "
+"files (1-7), sub-uint16 (9-15), sub-uint32 (17-31)\"/>\n"
+"    <Option name=\"INTERLEAVE\" type=\"string-select\" default=\"PIXEL\">\n"
+"        <Value>BAND</Value>\n"
+"        <Value>PIXEL</Value>\n"
+"    </Option>\n"
+"    <Option name=\"TILED\" type=\"boolean\" description=\"Switch to tiled "
+"format\"/>\n"
+"    <Option name=\"TFW\" type=\"boolean\" description=\"Write out world file"
+"\"/>\n"
+"    <Option name=\"RPB\" type=\"boolean\" description=\"Write out .RPB (RPC) "
+"file\"/>\n"
+"    <Option name=\"BLOCKXSIZE\" type=\"int\" description=\"Tile Width\"/>\n"
+"    <Option name=\"BLOCKYSIZE\" type=\"int\" description=\"Tile/Strip Height"
+"\"/>\n"
+"    <Option name=\"PHOTOMETRIC\" type=\"string-select\">\n"
+"        <Value>MINISBLACK</Value>\n"
+"        <Value>MINISWHITE</Value>\n"
+"        <Value>PALETTE</Value>\n"
+"        <Value>RGB</Value>\n"
+"        <Value>CMYK</Value>\n"
+"        <Value>YCBCR</Value>\n"
+"        <Value>CIELAB</Value>\n"
+"        <Value>ICCLAB</Value>\n"
+"        <Value>ITULAB</Value>\n"
+"    </Option>\n"
+"    <Option name=\"SPARSE_OK\" type=\"boolean\" description=\"Can newly "
+"created files have missing blocks?\" default=\"FALSE\"/>\n"
+"    <Option name=\"ALPHA\" type=\"boolean\" description=\"Mark first "
+"extrasample as being alpha\"/>\n"
+"    <Option name=\"PROFILE\" type=\"string-select\" default=\"GDALGeoTIFF"
+"\">\n"
+"        <Value>GDALGeoTIFF</Value>\n"
+"        <Value>GeoTIFF</Value>\n"
+"        <Value>BASELINE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"PIXELTYPE\" type=\"string-select\">\n"
+"        <Value>DEFAULT</Value>\n"
+"        <Value>SIGNEDBYTE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"BIGTIFF\" type=\"string-select\" description=\"Force "
+"creation of BigTIFF file\">\n"
+"        <Value>YES</Value>\n"
+"        <Value>NO</Value>\n"
+"        <Value>IF_NEEDED</Value>\n"
+"        <Value>IF_SAFER</Value>\n"
+"    </Option>\n"
+"    <Option name=\"ENDIANNESS\" type=\"string-select\" default=\"NATIVE\" "
+"description=\"Force endianness of created file. For DEBUG purpose mostly\">\n"
+"        <Value>NATIVE</Value>\n"
+"        <Value>INVERTED</Value>\n"
+"        <Value>LITTLE</Value>\n"
+"        <Value>BIG</Value>\n"
+"    </Option>\n"
+"    <Option name=\"COPY_SRC_OVERVIEWS\" type=\"boolean\" default=\"NO\" "
+"description=\"Force copy of overviews of source dataset (CreateCopy())\"/>\n"
+"</CreationOptionList>]]>\n"
+"\n"
+"-- Output the create options XML column for GTiff as a table  --\n"
+"SELECT (xpath('@name', g.opt))[1]::text As oname,\n"
+"       (xpath('@type', g.opt))[1]::text As otype,\n"
+"       (xpath('@description', g.opt))[1]::text As descrip,\n"
+"       array_to_string(xpath('Value/text()', g.opt),', ') As vals \n"
+"FROM (SELECT unnest(xpath('/CreationOptionList/Option', create_options::"
+"xml)) As opt\n"
+"FROM  st_gdaldrivers()\n"
+"WHERE short_name = 'GTiff') As g;\n"
+"\n"
+"       oname        |     otype     |                               "
+"descrip                                |                                   "
+"vals                                    \n"
+"--------------------+---------------"
+"+----------------------------------------------------------------------"
+"+---------------------------------------------------------------------------\n"
+" COMPRESS           | string-select "
+"|                                                                      | "
+"NONE, LZW, PACKBITS, JPEG, CCITTRLE, CCITTFAX3, CCITTFAX4, DEFLATE\n"
+" PREDICTOR          | int           | Predictor "
+"Type                                                       | \n"
+" JPEG_QUALITY       | int           | JPEG quality "
+"1-100                                                   | \n"
+" ZLEVEL             | int           | DEFLATE compression level "
+"1-9                                        | \n"
+" NBITS              | int           | BITS for sub-byte files (1-7), sub-"
+"uint16 (9-15), sub-uint32 (17-31) | \n"
+" INTERLEAVE         | string-select "
+"|                                                                      | "
+"BAND, PIXEL\n"
+" TILED              | boolean       | Switch to tiled "
+"format                                               | \n"
+" TFW                | boolean       | Write out world "
+"file                                                 | \n"
+" RPB                | boolean       | Write out .RPB (RPC) "
+"file                                            | \n"
+" BLOCKXSIZE         | int           | Tile "
+"Width                                                           | \n"
+" BLOCKYSIZE         | int           | Tile/Strip "
+"Height                                                    | \n"
+" PHOTOMETRIC        | string-select "
+"|                                                                      | "
+"MINISBLACK, MINISWHITE, PALETTE, RGB, CMYK, YCBCR, CIELAB, ICCLAB, ITULAB\n"
+" SPARSE_OK          | boolean       | Can newly created files have missing "
+"blocks?                         | \n"
+" ALPHA              | boolean       | Mark first extrasample as being "
+"alpha                                | \n"
+" PROFILE            | string-select "
+"|                                                                      | "
+"GDALGeoTIFF, GeoTIFF, BASELINE\n"
+" PIXELTYPE          | string-select "
+"|                                                                      | "
+"DEFAULT, SIGNEDBYTE\n"
+" BIGTIFF            | string-select | Force creation of BigTIFF "
+"file                                       | YES, NO, IF_NEEDED, IF_SAFER\n"
+" ENDIANNESS         | string-select | Force endianness of created file. For "
+"DEBUG purpose mostly           | NATIVE, INVERTED, LITTLE, BIG\n"
+" COPY_SRC_OVERVIEWS | boolean       | Force copy of overviews of source "
+"dataset (CreateCopy())             | \n"
+"(19 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1024 reference_raster.xml:2506
+#, no-c-format
+msgid ", <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1030
+#, no-c-format
+msgid "UpdateRasterSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1031
+#, no-c-format
+msgid "Change the SRID of all rasters in the user-specified column and table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1037
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>UpdateRasterSRID</function></"
+"funcdef> <paramdef><type>name </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>column_name</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>new_srid</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>UpdateRasterSRID</function></funcdef> <paramdef><type>name </type> "
+"<parameter>table_name</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>column_name</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>new_srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Contains</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:1060
+#, no-c-format
+msgid ""
+"Change the SRID of all rasters in the user-specified column and table. The "
+"function will drop all appropriate column constraints (extent, alignment and "
+"SRID) before changing the SRID of the specified column's rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1065
+#, no-c-format
+msgid ""
+"The data (band pixel values) of the rasters are not touched by this "
+"function. Only the raster's metadata is changed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1070 reference_raster.xml:1684
+#: reference_raster.xml:1785 reference_raster.xml:2235
+#: reference_raster.xml:2530 reference_raster.xml:2685
+#: reference_raster.xml:3234 reference_raster.xml:3284
+#: reference_raster.xml:3328 reference_raster.xml:3378
+#: reference_raster.xml:3535 reference_raster.xml:3632
+#: reference_raster.xml:3817 reference_raster.xml:3920
+#: reference_raster.xml:4016 reference_raster.xml:6261
+#: reference_raster.xml:6725 reference_raster.xml:6842
+#: reference_raster.xml:8116 reference_raster.xml:8401
+#: reference_raster.xml:8849 reference_raster.xml:8982
+#: reference_raster.xml:9033 reference_raster.xml:9270
+#: reference_raster.xml:9524 reference_raster.xml:9796
+#: reference_raster.xml:9883 reference_raster.xml:9964
+#: reference_raster.xml:10045 reference_raster.xml:10126
+#: reference_raster.xml:10339 reference_raster.xml:10419
+#: reference_raster.xml:10576 reference_raster.xml:10663
+#: reference_raster.xml:10758 reference_raster.xml:10851
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1082
+#, no-c-format
+msgid "ST_CreateOverview"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1083
+#, no-c-format
+msgid "Create an reduced resolution version of a given raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1091
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>regclass <function>ST_CreateOverview</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>factor</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algo='NearestNeighbor'</parameter></paramdef>"
+msgstr ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:1105
+#, no-c-format
+msgid ""
+"Create an overview table with resampled tiles from the source table. Output "
+"tiles will have the same size of input tiles and cover the same spatial "
+"extent with a lower resolution (pixel size will be 1/<varname>factor</"
+"varname> of the original in both directions)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1112
+#, no-c-format
+msgid ""
+"The overview table will be made available in the <varname>raster_overviews</"
+"varname> catalog and will have raster constraints enforced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1118 reference_raster.xml:1743
+#: reference_raster.xml:4726
+#, no-c-format
+msgid ""
+"Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', "
+"'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/"
+"gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1120 reference_raster.xml:1745
+#: reference_raster.xml:1944 reference_raster.xml:5005
+#: reference_raster.xml:5384
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_AddRasterConstraints\"/>, <xref linkend=\"RT_Raster_Overviews\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1135
+#, no-c-format
+msgid "Raster Constructors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1139
+#, no-c-format
+msgid "ST_AddBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1140
+#, no-c-format
+msgid ""
+"Returns a raster with the new band(s) of given type added with given initial "
+"value in the given index location. If no index is specified, the band is "
+"added to the end."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1146
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>(1) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>addbandarg[] </type> <parameter>addbandargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>(2) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(3) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(4) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(5) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>torast</parameter></"
+"paramdef> <paramdef><type>raster[] </type> <parameter>fromrasts</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>fromband=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>torastindex=at_end</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(6) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(7) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>index=at_end</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:1211
+#, no-c-format
+msgid ""
+"Returns a raster with a new band added in given position (index), of given "
+"type, of given initial value, and of given nodata value. If no index is "
+"specified, the band is added to the end. If no <varname>fromband</varname> "
+"is specified, band 1 is assumed. Pixel type is a string representation of "
+"one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. "
+"If an existing index is specified all subsequent bands >= that index are "
+"incremented by 1. If an initial value greater than the max of the pixel type "
+"is specified, then the initial value is set to the highest value allowed by "
+"the pixel type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1215
+#, no-c-format
+msgid ""
+"For the variant that takes an array of <xref linkend=\"addbandarg\"/> "
+"(Variant 1), a specific addbandarg's index value is relative to the raster "
+"at the time when the band described by that addbandarg is being added to the "
+"raster. See the Multiple New Bands example below."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1219
+#, no-c-format
+msgid ""
+"For the variant that takes an array of rasters (Variant 5), if "
+"<varname>torast</varname> is NULL then the <varname>fromband</varname> band "
+"of each raster in the array is accumulated into a new raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1223
+#, no-c-format
+msgid ""
+"For the variants that take <varname>outdbfile</varname> (Variants 6 and 7), "
+"the value must include the full path to the raster file. The file must also "
+"be accessible to the postgres server process."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1227
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for addbandarg added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1228
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for new out-db bands added."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1232
+#, no-c-format
+msgid "Examples: Single New Band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1234
+#, no-c-format
+msgid ""
+"-- Add another band of type 8 bit unsigned integer with pixels initialized "
+"to 200\n"
+"UPDATE dummy_rast\n"
+"    SET rast = ST_AddBand(rast,'8BUI'::text,200)  \n"
+"WHERE rid = 1;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1236
+#, no-c-format
+msgid ""
+"-- Create an empty raster 100x100 units, with upper left  right at 0, add 2 "
+"bands (band 1 is 0/1 boolean bit switch, band2 allows values 0-15)\n"
+"-- uses addbandargs\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"    VALUES(10, ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 1, -1, 0, 0, "
+"0), \n"
+"        ARRAY[\n"
+"                ROW(1, '1BB'::text, 0, NULL),\n"
+"                ROW(2, '4BUI'::text, 0, NULL)\n"
+"                        ]::addbandarg[]\n"
+"     )\n"
+"    );\n"
+"    \n"
+"-- output meta data of raster bands to verify all is right --\n"
+"SELECT  (bmd).*\n"
+"FROM (SELECT ST_BandMetaData(rast,generate_series(1,2)) As bmd \n"
+"    FROM dummy_rast WHERE rid = 10) AS foo;\n"
+" --result --   \n"
+" pixeltype | nodatavalue | isoutdb | path\n"
+"-----------+----------------+-------------+---------+------\n"
+" 1BB       |             | f       |\n"
+" 4BUI      |             | f       |\n"
+" \n"
+" \n"
+"-- output meta data of raster -\n"
+"SELECT  (rmd).width, (rmd).height, (rmd).numbands\n"
+"FROM (SELECT ST_MetaData(rast) As rmd \n"
+"    FROM dummy_rast WHERE rid = 10) AS foo;\n"
+"-- result --\n"
+" upperleftx | upperlefty | width | height | scalex | scaley | skewx | skewy "
+"| srid | numbands\n"
+"------------+------------+-------+--------+------------+------------+-------"
+"+-------+------+----------\n"
+"          0 |          0 |   100 |    100 |      1 |     -1 |     0 |     0 "
+"|   0 |        2"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1240
+#, no-c-format
+msgid "Examples: Multiple New Bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1242
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                ARRAY[\n"
+"                        ROW(NULL, '8BUI', 255, 0),\n"
+"                        ROW(NULL, '16BUI', 1, 2),\n"
+"                        ROW(2, '32BUI', 100, 12),\n"
+"                        ROW(2, '32BF', 3.14, -1)\n"
+"                ]::addbandarg[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |           0 | f       | \n"
+"       2 | 32BF      |          -1 | f       | \n"
+"       3 | 32BUI     |          12 | f       | \n"
+"       4 | 16BUI     |           2 | f       |"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1244
+#, no-c-format
+msgid ""
+"-- Aggregate the 1st band of a table of like rasters into a single raster \n"
+"-- with as many bands as there are test_types and as many rows (new rasters) "
+"as there are mice\n"
+"-- NOTE: The ORDER BY test_type is only supported in PostgreSQL 9.0+\n"
+"-- for 8.4 and below it usually works to order your data in a subselect (but "
+"not guaranteed)\n"
+"-- The resulting raster will have a band for each test_type alphabetical by "
+"test_type\n"
+"-- For mouse lovers: No mice were harmed in this exercise\n"
+"SELECT\n"
+"        mouse,\n"
+"        ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1) As rast \n"
+"FROM mice_studies\n"
+"GROUP BY mouse;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1248
+#, no-c-format
+msgid "Examples: New Out-db band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1249
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                '/home/raster/mytestraster.tif'::text, NULL::int[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       2 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       3 | 8BUI      |             | t       | /home/raster/mytestraster.tif"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1254
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"RT_ST_MetaData\"/>, <xref "
+"linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1267
+#, no-c-format
+msgid "ST_AsRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1268
+#, no-c-format
+msgid "Converts a PostGIS geometry to a PostGIS raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1272
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>touched=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_AsRaster</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>ref</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>pixeltype=ARRAY['8BUI']</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>touched=false</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>value=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>gridx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridy=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>upperleftx=NULL</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>upperlefty=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>value=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef><type>double precision[] </type> "
+"<parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>touched=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_AsRaster</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>ref</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>pixeltype=ARRAY['8BUI']</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>touched=false</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>value=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>gridx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridy=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>upperleftx=NULL</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>upperlefty=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>value=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef><type>double precision[] </type> "
+"<parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:1420
+#, no-c-format
+msgid ""
+"Converts a PostGIS geometry to a PostGIS raster. The many variants offers "
+"three groups of possibilities for setting the alignment and pixelsize of the "
+"resulting raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1422
+#, no-c-format
+msgid ""
+"The first group, composed of the two first variants, produce a raster having "
+"the same alignment (<varname>scalex</varname>, <varname>scaley</varname>, "
+"<varname>gridx</varname> and <varname>gridy</varname>), pixel type and "
+"nodata value as the provided reference raster. You generally pass this "
+"reference raster by joining the table containing the geometry with the table "
+"containing the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1424
+#, no-c-format
+msgid ""
+"The second group, composed of four variants, let you set the dimensions of "
+"the raster by providing the parameters of a pixel size (<varname>scalex</"
+"varname> & <varname>scaley</varname> and <varname>skewx</varname> & "
+"<varname>skewy</varname>). The <varname>width</varname> & "
+"<varname>height</varname> of the resulting raster will be adjusted to fit "
+"the extent of the geometry. In most cases, you must cast integer "
+"<varname>scalex</varname> & <varname>scaley</varname> arguments to "
+"double precision so that PostgreSQL choose the right variant."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1426
+#, no-c-format
+msgid ""
+"The third group, composed of four variants, let you fix the dimensions of "
+"the raster by providing the dimensions of the raster (<varname>width</"
+"varname> & <varname>height</varname>). The parameters of the pixel size "
+"(<varname>scalex</varname> & <varname>scaley</varname> and "
+"<varname>skewx</varname> & <varname>skewy</varname>) of the resulting "
+"raster will be adjusted to fit the extent of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1428
+#, no-c-format
+msgid ""
+"The two first variants of each of those two last groups let you specify the "
+"alignment with an arbitrary corner of the alignment grid (<varname>gridx</"
+"varname> & <varname>gridy</varname>) and the two last variants takes the "
+"upper left corner (<varname>upperleftx</varname> & <varname>upperlefty</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1430
+#, no-c-format
+msgid ""
+"Each group of variant allows producing a one band raster or a multiple bands "
+"raster. To produce a multiple bands raster, you must provide an array of "
+"pixel types (<varname>pixeltype[]</varname>), an array of initial values "
+"(<varname>value</varname>) and an array of nodata values "
+"(<varname>nodataval</varname>). If not provided pixeltyped defaults to 8BUI, "
+"values to 1 and nodataval to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1432
+#, no-c-format
+msgid ""
+"The output raster will be in the same spatial reference as the source "
+"geometry. The only exception is for variants with a reference raster. In "
+"this case the resulting raster will get the same SRID as the reference "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1434
+#, no-c-format
+msgid ""
+"The optional <varname>touched</varname> parameter defaults to false and maps "
+"to the GDAL ALL_TOUCHED rasterization option, which determines if pixels "
+"touched by lines or polygons will be burned. Not just those on the line "
+"render path, or whose center point is within the polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1436
+#, no-c-format
+msgid ""
+"This is particularly useful for rendering jpegs and pngs of geometries "
+"directly from the database when using in combination with <xref linkend="
+"\"RT_ST_AsPNG\"/> and other <xref linkend=\"RT_ST_AsGDALRaster\"/> family of "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1440
+#, no-c-format
+msgid ""
+"Not yet capable of rendering complex geometry types such as curves, TINS, "
+"and PolyhedralSurfaces, but should be able too once GDAL can."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1445
+#, no-c-format
+msgid "Examples: Output geometries as PNG files"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1451
+#, no-c-format
+msgid "black circle"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1454
+#, no-c-format
+msgid ""
+"-- this will output a black circle taking up 150 x 150 pixels --\n"
+"SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10),150, 150, '2BUI'));"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1461
+#, no-c-format
+msgid "example from buffer rendered with just PostGIS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1465
+#, no-c-format
+msgid ""
+"-- the bands map to RGB bands - the value (118,154,118) - teal  --\n"
+"SELECT ST_AsPNG(\n"
+"        ST_AsRaster(\n"
+"                ST_Buffer(\n"
+"                        ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), "
+"10,'join=bevel'), \n"
+"                        200,200,ARRAY['8BUI', '8BUI', '8BUI'], "
+"ARRAY[118,154,118], ARRAY[0,0,0]));"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1471
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, "
+"<xref linkend=\"RT_ST_AsJPEG\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1477
+#, no-c-format
+msgid "ST_Band"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1478
+#, no-c-format
+msgid ""
+"Returns one or more bands of an existing raster as a new raster. Useful for "
+"building new rasters from existing rasters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1482
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = "
+"ARRAY[1]</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Band</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nbands</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>character </type> "
+"<parameter>delimiter=,</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = "
+"ARRAY[1]</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>character </type> <parameter>delimiter=,</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Band</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:1507
+#, no-c-format
+msgid ""
+"Returns one or more bands of an existing raster as a new raster. Useful for "
+"building new rasters from existing rasters or export of only selected bands "
+"of a raster or rearranging the order of bands in a raster. If no band is "
+"specified, band 1 is assumed. Used as a helper function in various functions "
+"such as for deleting a band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1509
+#, no-c-format
+msgid ""
+"For the <code>nbands</code> as text variant of function, the default "
+"delimiter is <code>,</code> which means you can ask for <code>'1,2,3'</code> "
+"and if you wanted to use a different delimeter you would do "
+"<code>ST_Band(rast, '1 at 2@3', '@')</code>. For asking for multiple bands, we "
+"strongly suggest you use the array form of this function e.g. "
+"<code>ST_Band(rast, '{1,2,3}'::int[]);</code> since the <code>text</code> "
+"list of bands form may be removed in future versions of PostGIS."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1517
+#, no-c-format
+msgid ""
+"-- Make 2 new rasters: 1 containing band 1 of dummy, second containing band "
+"2 of dummy and then reclassified as a 2BUI\n"
+"SELECT ST_NumBands(rast1) As numb1, ST_BandPixelType(rast1) As pix1, \n"
+" ST_NumBands(rast2) As numb2,  ST_BandPixelType(rast2) As pix2\n"
+"FROM (\n"
+"    SELECT ST_Band(rast) As rast1, ST_Reclass(ST_Band(rast,3), '100-200):1, "
+"[200-254:2', '2BUI') As rast2\n"
+"        FROM dummy_rast\n"
+"        WHERE rid = 2) As foo;\n"
+"        \n"
+" numb1 | pix1 | numb2 | pix2\n"
+"-------+------+-------+------\n"
+"     1 | 8BUI |     1 | 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1519
+#, no-c-format
+msgid ""
+"-- Return bands 2 and 3. Using array cast syntax\n"
+"SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"num_bands\n"
+"----------\n"
+"2\n"
+"    \n"
+"-- Return bands 2 and 3. Use array to define bands\n"
+"SELECT ST_NumBands(ST_Band(rast, ARRAY[2,3])) As num_bands\n"
+"    FROM dummy_rast \n"
+"WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1529
+#, no-c-format
+msgid "original (column rast)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1538
+#, no-c-format
+msgid "dupe_band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1547
+#, no-c-format
+msgid "sing_band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1555
+#, no-c-format
+msgid ""
+"--Make a new raster with 2nd band of original and 1st band repeated twice,\n"
+"and another with just the third band\n"
+"SELECT rast, ST_Band(rast, ARRAY[2,1,1]) As dupe_band,  \n"
+"        ST_Band(rast, 3) As sing_band \n"
+"FROM samples.than_chunked \n"
+"WHERE rid=35;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1561
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, "
+"<xref linkend=\"RT_reference\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1567
+#, no-c-format
+msgid "ST_MakeEmptyRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1568
+#, no-c-format
+msgid ""
+"Returns an empty raster (having no bands) of given dimensions (width & "
+"height), upperleft X and Y, pixel size and rotation (scalex, scaley, skewx "
+"& skewy) and reference system (srid). If a raster is passed in, returns "
+"a new raster with the same size, alignment and SRID. If srid is left out, "
+"the spatial ref is set to unknown (0)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1572
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MakeEmptyRaster</function></funcdef> <paramdef><type>integer </"
+"type> <parameter>width</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>height</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperleftx</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperlefty</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>float8 </type> "
+"<parameter>skewy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>width</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>height</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperlefty</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>pixelsize</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MakeEmptyRaster</function></funcdef> <paramdef><type>integer </"
+"type> <parameter>width</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>height</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperleftx</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperlefty</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>float8 </type> "
+"<parameter>skewy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>width</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>height</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperlefty</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>pixelsize</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:1602
+#, no-c-format
+msgid ""
+"Returns an empty raster (having no band) of given dimensions (width & "
+"height) and georeferenced in spatial (or world) coordinates with upper left "
+"X (upperleftx), upper left Y (upperlefty), pixel size and rotation (scalex, "
+"scaley, skewx & skewy) and reference system (srid)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1605
+#, no-c-format
+msgid ""
+"The last version use a single parameter to specify the pixel size "
+"(pixelsize). scalex is set to this argument and scaley is set to the "
+"negative value of this argument. skewx and skewy are set to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1607
+#, no-c-format
+msgid ""
+"If an existing raster is passed in, it returns a new raster with the same "
+"meta data settings (without the bands)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1609
+#, no-c-format
+msgid ""
+"If no srid is specified it defaults to 0. After you create an empty raster "
+"you probably want to add bands to it and maybe edit it. Refer to <xref "
+"linkend=\"RT_ST_AddBand\"/> to define bands and <xref linkend="
+"\"RT_ST_SetValue\"/> to set initial pixel values."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1616
+#, no-c-format
+msgid ""
+"INSERT INTO dummy_rast(rid,rast)\n"
+"VALUES(3, ST_MakeEmptyRaster( 100, 100, 0.0005, 0.0005, 1, 1, 0, 0, "
+"4326) );\n"
+"\n"
+"--use an existing raster as template for new raster\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"SELECT 4, ST_MakeEmptyRaster(rast)\n"
+"FROM dummy_rast WHERE rid = 3;\n"
+"\n"
+"-- output meta data of rasters we just added\n"
+"SELECT rid, (md).*\n"
+"FROM (SELECT rid, ST_MetaData(rast) As md \n"
+"        FROM dummy_rast\n"
+"        WHERE rid IN(3,4)) As foo;\n"
+"        \n"
+"-- output --\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands\n"
+"-----+------------+------------+-------+--------+------------+------------"
+"+-------+-------+------+----------\n"
+"   3 |     0.0005 |     0.0005 |   100 |    100 |          1 |          1 "
+"|    0  |     0 | 4326 |        0\n"
+"   4 |     0.0005 |     0.0005 |   100 |    100 |          1 |          1 "
+"|    0  |     0 | 4326 |        0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1622
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MetaData\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, "
+"<xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_SetValue\"/>, <xref "
+"linkend=\"RT_ST_SkewX\"/>, , <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1629
+#, no-c-format
+msgid "ST_Tile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1630
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a set of rasters resulting from the split of the input "
+"raster based upon the desired dimensions of the output rasters.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1634
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>int[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof raster "
+"<function>ST_Tile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>padwithnodata=FALSE</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex=DEFAULT 0</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>scaley=DEFAULT 0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:1670
+#, no-c-format
+msgid ""
+"<para>Returns a set of rasters resulting from the split of the input raster "
+"based upon the desired dimensions of the output rasters.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1674
+#, no-c-format
+msgid ""
+"If <varname>padwithnodata</varname> = FALSE, edge tiles on the right and "
+"bottom sides of the raster may have different dimensions than the rest of "
+"the tiles. If <varname>padwithnodata</varname> = TRUE, all tiles will have "
+"the same dimensions with the possibilty that edge tiles being padded with "
+"NODATA values. If raster band(s) do not have NODATA value(s) specified, one "
+"can be specified by setting <varname>nodataval</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1679
+#, no-c-format
+msgid ""
+"If a specified band of the input raster is out-of-db, the corresponding band "
+"in the output rasters will also be out-of-db."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1690
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{1,1,1},{1,1,1},{1,1,1}}\")\n"
+" (2,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{2,2,2},{2,2,2},{2,2,2}}\")\n"
+" (2,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{3,3,3},{3,3,3},{3,3,3}}\")\n"
+" (2,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{4,4,4},{4,4,4},{4,4,4}}\")\n"
+" (2,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{5,5,5},{5,5,5},{5,5,5}}\")\n"
+" (2,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{6,6,6},{6,6,6},{6,6,6}}\")\n"
+" (2,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{7,7,7},{7,7,7},{7,7,7}}\")\n"
+" (2,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{8,8,8},{8,8,8},{8,8,8}}\")\n"
+" (2,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{9,9,9},{9,9,9},{9,9,9}}\")\n"
+" (2,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(18 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1692
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, 2) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(9 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1698
+#, no-c-format
+msgid ", <xref linkend=\"RT_Retile\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1708
+#, no-c-format
+msgid "ST_Retile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1709
+#, no-c-format
+msgid ""
+"Return a set of configured tiles from an arbitrarily tiled raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1717
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>SETOF raster <function>ST_Retile</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>ext</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfx</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfy</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>tw</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>th</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algo='NearestNeighbor'</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
+"args</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:1735
+#, no-c-format
+msgid ""
+"Return a set of tiles having the specified scale (<varname>sfx</varname>, "
+"<varname>sfy</varname>) and max size (<varname>tw</varname>, <varname>th</"
+"varname>) and covering the specified extent (<varname>ext</varname>) with "
+"data coming from the specified raster coverage (<varname>tab</varname>, "
+"<varname>col</varname>)."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1759
+#, no-c-format
+msgid "ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1760
+#, no-c-format
+msgid "Returns a raster from a supported GDAL raster file."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1765
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_FromGDALRaster</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>gdaldata</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=NULL</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_BandPath</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:1777
+#, no-c-format
+msgid ""
+"Returns a raster from a supported GDAL raster file. <varname>gdaldata</"
+"varname> is of type bytea and should be the contents of the GDAL raster file."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1781
+#, no-c-format
+msgid ""
+"If <varname>srid</varname> is NULL, the function will try to autmatically "
+"assign the SRID from the GDAL raster. If <varname>srid</varname> is "
+"provided, the value provided will override any automatically assigned SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT "
+"ST_AsPNG(ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, "
+"0.1, -0.1, 0, 0, 4326), 1, '8BUI', 1, 0), 2, '8BUI', 2, 0), 3, '8BUI', 3, "
+"0)) AS png\n"
+"),\n"
+"bar AS (\n"
+"        SELECT 1 AS rid, ST_FromGDALRaster(png) AS rast FROM foo\n"
+"        UNION ALL\n"
+"        SELECT 2 AS rid, ST_FromGDALRaster(png, 3310) AS rast FROM foo\n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        ST_Metadata(rast) AS metadata,\n"
+"        ST_SummaryStats(rast, 1) AS stats1,\n"
+"        ST_SummaryStats(rast, 2) AS stats2,\n"
+"        ST_SummaryStats(rast, 3) AS stats3\n"
+"FROM bar\n"
+"ORDER BY rid;\n"
+"\n"
+" rid |         metadata          |    stats1     |    stats2     |     "
+"stats3     \n"
+"-----+---------------------------+---------------+---------------"
+"+----------------\n"
+"   1 | (0,0,2,2,1,-1,0,0,0,3)    | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"   2 | (0,0,2,2,1,-1,0,0,3310,3) | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1806
+#, no-c-format
+msgid "Raster Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1810
+#, no-c-format
+msgid "ST_GeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1811
+#, no-c-format
+msgid ""
+"Returns the georeference meta data in GDAL or ESRI format as commonly seen "
+"in a world file. Default is GDAL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1816
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoReference</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_GeoReference</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:1827
+#, no-c-format
+msgid ""
+"Returns the georeference meta data including carriage return in GDAL or ESRI "
+"format as commonly seen in a <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">world file</ulink>. Default is GDAL if no type specified. type "
+"is string 'GDAL' or 'ESRI'."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1829 reference_raster.xml:4065
+#, no-c-format
+msgid "Difference between format representations is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1830 reference_raster.xml:4066
+#, no-c-format
+msgid "<varname>GDAL</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1831
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx\n"
+"upperlefty"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1832 reference_raster.xml:4068
+#, no-c-format
+msgid "<varname>ESRI</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1833
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx + scalex*0.5\n"
+"upperlefty + scaley*0.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1839
+#, no-c-format
+msgid ""
+"SELECT ST_GeoReference(rast, 'ESRI') As esri_ref, ST_GeoReference(rast, "
+"'GDAL') As gdal_ref\n"
+" FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"   esri_ref   |   gdal_ref\n"
+"--------------+--------------\n"
+" 2.0000000000 | 2.0000000000\n"
+" 0.0000000000 : 0.0000000000\n"
+" 0.0000000000 : 0.0000000000\n"
+" 3.0000000000 : 3.0000000000\n"
+" 1.5000000000 : 0.5000000000\n"
+" 2.0000000000 : 0.5000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1844
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1850
+#, no-c-format
+msgid "ST_Height"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1851
+#, no-c-format
+msgid "Returns the height of the raster in pixels."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1856
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Height</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_Height</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:1866
+#, no-c-format
+msgid "Returns the height of the raster."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1872
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Height(rast) As rastheight\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastheight\n"
+"-----+------------\n"
+"   1 |         20\n"
+"   2 |          5"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1884
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1885
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1890
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:1900
+#, no-c-format
+msgid ""
+"<para>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1908
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"f          |\n"
+"                       \n"
+"                        \n"
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"t          |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1920
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1922
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the raster takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1927
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_Height</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:1937
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the raster takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1938
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1939
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables. "
+"pg_column_size might return lower because it returns the compressed size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1941
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1951
+#, no-c-format
+msgid ""
+"SELECT ST_MemSize(ST_AsRaster(ST_Buffer(ST_Point(1,5),10,1000),150, 150, "
+"'8BUI')) As rast_mem;\n"
+"                \n"
+"                rast_mem\n"
+"                --------\n"
+"                22568"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1964
+#, no-c-format
+msgid "ST_MetaData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1965
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster object such as pixel size, rotation "
+"(skew), upper, lower left, etc."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1970
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_MetaData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>record <function>ST_MetaData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:1980
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster object such as pixel size, rotation "
+"(skew), upper, lower left, etc. Columns returned: upperleftx | upperlefty | "
+"width | height | scalex | scaley | skewx | skewy | srid | numbands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1987
+#, no-c-format
+msgid ""
+"SELECT rid, (foo.md).*  \n"
+" FROM (SELECT rid, ST_MetaData(rast) As md\n"
+"FROM dummy_rast) As foo;\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands\n"
+" ----+------------+------------+-------+--------+--------+-----------+-------"
+"+-------+------+-------\n"
+"   1 |        0.5 |        0.5 |    10 |     20 |      2 |      3 "
+"|                0 |     0 |    0 |        0\n"
+"   2 | 3427927.75 |    5793244 |     5 |      5 |   0.05 |  -0.05 "
+"|                0 |     0 |    0 |        3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1993 reference_raster.xml:4844
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_NumBands\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1999
+#, no-c-format
+msgid "ST_NumBands"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2000
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the number of bands in the raster object.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2005
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumBands</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NumBands</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2015
+#, no-c-format
+msgid "<para>Returns the number of bands in the raster object.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2021
+#, no-c-format
+msgid ""
+"SELECT rid, ST_NumBands(rast) As numbands\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid | numbands\n"
+"----+----------\n"
+"  1 |        0\n"
+"  2 |        3"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2033
+#, no-c-format
+msgid "ST_PixelHeight"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2034
+#, no-c-format
+msgid ""
+"Returns the pixel height in geometric units of the spatial reference system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2039
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_PixelHeight</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>double precision <function>ST_PixelHeight</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2049
+#, no-c-format
+msgid ""
+"Returns the height of a pixel in geometric units of the spatial reference "
+"system. In the common case where there is no skew, the pixel height is just "
+"the scale ratio between geometric coordinates and raster pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2051
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"RT_ST_PixelWidth\"/> for a diagrammatic "
+"visualization of the relationship."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2055 reference_raster.xml:2115
+#, no-c-format
+msgid "Examples: Rasters with no skew"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2057
+#, no-c-format
+msgid ""
+"SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
+" ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) As "
+"skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"FROM dummy_rast;\n"
+"\n"
+" rastheight | pixheight | scalex | scaley | skewx | skewy\n"
+"------------+-----------+--------+--------+-------+----------\n"
+"         20 |         3 |      2 |      3 |     0 |        0\n"
+"          5 |      0.05 |   0.05 |  -0.05 |     0 |        0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2062 reference_raster.xml:2122
+#, no-c-format
+msgid "Examples: Rasters with skew different than 0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2064
+#, no-c-format
+msgid ""
+"SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
+" ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) As "
+"skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"FROM (SELECT ST_SetSKew(rast,0.5,0.5) As rast\n"
+"        FROM dummy_rast) As skewed;\n"
+"\n"
+"rastheight |     pixheight     | scalex | scaley | skewx | skewy\n"
+"-----------+-------------------+--------+--------+-------+----------\n"
+"        20 |  3.04138126514911 |      2 |      3 |   0.5 |      0.5\n"
+"         5 | 0.502493781056044 |   0.05 |  -0.05 |   0.5 |      0.5"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2071 reference_raster.xml:2131
+#: reference_raster.xml:4124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2083
+#, no-c-format
+msgid "ST_PixelWidth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2084
+#, no-c-format
+msgid ""
+"Returns the pixel width in geometric units of the spatial reference system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2089
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_PixelWidth</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>double precision <function>ST_PixelWidth</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2099
+#, no-c-format
+msgid ""
+"Returns the width of a pixel in geometric units of the spatial reference "
+"system. In the common case where there is no skew, the pixel width is just "
+"the scale ratio between geometric coordinates and raster pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2101
+#, no-c-format
+msgid "The following diagram demonstrates the relationship:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2108
+#, no-c-format
+msgid "Pixel Width: Pixel size in the i direction"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2108
+#, no-c-format
+msgid "Pixel Height: Pixel size in the j direction"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2117
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
+"        ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) "
+"As skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"        FROM dummy_rast;\n"
+"        \n"
+"        rastwidth | pixwidth | scalex | scaley | skewx | skewy\n"
+"        -----------+----------+--------+--------+-------+----------\n"
+"        10 |        2 |      2 |      3 |     0 |        0\n"
+"         5 |     0.05 |   0.05 |  -0.05 |     0 |        0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2124
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
+"        ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) "
+"As skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"        FROM (SELECT ST_SetSkew(rast,0.5,0.5) As rast\n"
+"        FROM dummy_rast) As skewed;\n"
+"        \n"
+"        rastwidth |     pixwidth      | scalex | scaley | skewx | skewy\n"
+"        -----------+-------------------+--------+--------+-------"
+"+----------\n"
+"        10 |  2.06155281280883 |      2 |      3 |   0.5 |      0.5\n"
+"         5 | 0.502493781056044 |   0.05 |  -0.05 |   0.5 |      0.5"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2137
+#, no-c-format
+msgid "ST_ScaleX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2138
+#, no-c-format
+msgid ""
+"Returns the X component of the pixel width in units of coordinate reference "
+"system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2143
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_ScaleX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>float8 <function>ST_ScaleX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2153
+#, no-c-format
+msgid ""
+"Returns the X component of the pixel width in units of coordinate reference "
+"system. Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file"
+"\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2155
+#, no-c-format
+msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeX."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2161
+#, no-c-format
+msgid ""
+"SELECT rid, ST_ScaleX(rast) As rastpixwidth\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastpixwidth\n"
+"-----+--------------\n"
+"   1 |            2\n"
+"   2 |         0.05"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2174
+#, no-c-format
+msgid "ST_ScaleY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2175
+#, no-c-format
+msgid ""
+"Returns the Y component of the pixel height in units of coordinate reference "
+"system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2180
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_ScaleY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>float8 <function>ST_ScaleY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2190
+#, no-c-format
+msgid ""
+"Returns the Y component of the pixel height in units of coordinate reference "
+"system. May be negative. Refer to <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2193
+#, no-c-format
+msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeY."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2199
+#, no-c-format
+msgid ""
+"SELECT rid, ST_ScaleY(rast) As rastpixheight\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastpixheight\n"
+"-----+---------------\n"
+"   1 |             3\n"
+"   2 |         -0.05"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2212
+#, no-c-format
+msgid "ST_RasterToWorldCoord"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2213
+#, no-c-format
+msgid ""
+"Returns the raster's upper left corner as geometric X and Y (longitude and "
+"latitude) given a column and row. Column and row starts at 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2218
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>record <function>ST_RasterToWorldCoord</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>yrow</parameter></paramdef>"
+msgstr ""
+"<funcdef>record <function>ST_Raster2WorldCoord</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>yrow</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2230
+#, no-c-format
+msgid ""
+"Returns the upper left corner as geometric X and Y (longitude and latitude) "
+"given a column and row. Returned X and Y are in geometric units of the "
+"georeferenced raster. Numbering of column and row starts at 1 but if either "
+"parameter is passed a zero, a negative number or a number greater than the "
+"respective dimension of the raster, it will return coordinates outside of "
+"the raster assuming the raster's grid is applicable outside the raster's "
+"bounds."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2242
+#, no-c-format
+msgid ""
+"-- non-skewed raster\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_RasterToWorldCoord(rast,1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast,2, 2)).*\n"
+"FROM dummy_rast\n"
+"\n"
+" rid | longitude  | latitude | longitude |  latitude  \n"
+"-----+------------+----------+-----------+------------\n"
+"   1 |        0.5 |      0.5 |       2.5 |        3.5\n"
+"   2 | 3427927.75 |  5793244 | 3427927.8 | 5793243.95"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2244
+#, no-c-format
+msgid ""
+"-- skewed raster\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_RasterToWorldCoord(rast, 1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast, 2, 3)).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                rid,\n"
+"                ST_SetSkew(rast, 100.5, 0) As rast\n"
+"        FROM dummy_rast\n"
+") As foo\n"
+"\n"
+" rid | longitude  | latitude | longitude | latitude  \n"
+"-----+------------+----------+-----------+-----------\n"
+"   1 |        0.5 |      0.5 |     203.5 |       6.5\n"
+"   2 | 3427927.75 |  5793244 | 3428128.8 | 5793243.9"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2251
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2261
+#, no-c-format
+msgid "ST_RasterToWorldCoordX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2262
+#, no-c-format
+msgid ""
+"Returns the geometric X coordinate upper left of a raster, column and row. "
+"Numbering of columns and rows starts at 1."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2267
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordX</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_RasterToWorldCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordX</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_Raster2WorldCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:2285
+#, no-c-format
+msgid ""
+"Returns the upper left X coordinate of a raster column row in geometric "
+"units of the georeferenced raster. Numbering of columns and rows starts at 1 "
+"but if you pass in a negative number or number higher than number of columns "
+"in raster, it will give you coordinates outside of the raster file to left "
+"or right with the assumption that the skew and pixel sizes are same as "
+"selected raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2290
+#, no-c-format
+msgid ""
+"For non-skewed rasters, providing the X column is sufficient. For skewed "
+"rasters, the georeferenced coordinate is a function of the ST_ScaleX and "
+"ST_SkewX and row and column. An error will be raised if you give just the X "
+"column for a skewed raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2294
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordX"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2301
+#, no-c-format
+msgid ""
+"-- non-skewed raster providing column is "
+"sufficient                                        \n"
+"SELECT rid, ST_RasterToWorldCoordX(rast,1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast,2) As x2coord,\n"
+"        ST_ScaleX(rast) As pixelx\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |  x1coord   |  x2coord  | pixelx\n"
+"-----+------------+-----------+--------\n"
+"   1 |        0.5 |       2.5 |      2\n"
+"   2 | 3427927.75 | 3427927.8 |   0.05"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2303
+#, no-c-format
+msgid ""
+"-- for fun lets skew it                                \n"
+"SELECT rid, ST_RasterToWorldCoordX(rast, 1, 1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast, 2, 3) As x2coord,\n"
+"        ST_ScaleX(rast) As pixelx\n"
+"FROM (SELECT rid, ST_SetSkew(rast, 100.5, 0) As rast FROM dummy_rast) As "
+"foo;\n"
+"\n"
+" rid |  x1coord   |  x2coord  | pixelx\n"
+"-----+------------+-----------+--------\n"
+"   1 |        0.5 |     203.5 |      2\n"
+"   2 | 3427927.75 | 3428128.8 |   0.05"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2310
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2316
+#, no-c-format
+msgid "ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2317
+#, no-c-format
+msgid ""
+"Returns the geometric Y coordinate upper left corner of a raster, column and "
+"row. Numbering of columns and rows starts at 1."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2322
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_RasterToWorldCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_Raster2WorldCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:2340
+#, no-c-format
+msgid ""
+"Returns the upper left Y coordinate of a raster column row in geometric "
+"units of the georeferenced raster. Numbering of columns and rows starts at 1 "
+"but if you pass in a negative number or number higher than number of columns/"
+"rows in raster, it will give you coordinates outside of the raster file to "
+"left or right with the assumption that the skew and pixel sizes are same as "
+"selected raster tile."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2345
+#, no-c-format
+msgid ""
+"For non-skewed rasters, providing the Y column is sufficient. For skewed "
+"rasters, the georeferenced coordinate is a function of the ST_ScaleY and "
+"ST_SkewY and row and column. An error will be raised if you give just the Y "
+"row for a skewed raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2349
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordY"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2355
+#, no-c-format
+msgid ""
+"-- non-skewed raster providing row is "
+"sufficient                                        \n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,3) As y2coord,\n"
+"        ST_ScaleY(rast) As pixely\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | y1coord |  y2coord  | pixely\n"
+"-----+---------+-----------+--------\n"
+"   1 |     0.5 |       6.5 |      3\n"
+"   2 | 5793244 | 5793243.9 |  -0.05"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2357
+#, no-c-format
+msgid ""
+"-- for fun lets skew it                                \n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,2,3) As y2coord,\n"
+"        ST_ScaleY(rast) As pixely\n"
+"FROM (SELECT rid, ST_SetSkew(rast,0,100.5) As rast FROM dummy_rast) As foo;\n"
+"\n"
+" rid | y1coord |  y2coord  | pixely\n"
+"-----+---------+-----------+--------\n"
+"   1 |     0.5 |       107 |      3\n"
+"   2 | 5793244 | 5793344.4 |  -0.05"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2364
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2370
+#, no-c-format
+msgid "ST_Rotation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2371
+#, no-c-format
+msgid "Returns the rotation of the raster in radian."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2376
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_Rotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>float8 <function>ST_Rotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2386
+#, no-c-format
+msgid ""
+"Returns the uniform rotation of the raster in radian. If a raster does not "
+"have uniform rotation, NaN is returned. Refer to <ulink url=\"http://en."
+"wikipedia.org/wiki/World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2393
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Rotation(ST_SetScale(ST_SetSkew(rast, sqrt(2)), sqrt(2))) as "
+"rot FROM dummy_rast;\n"
+"\n"
+" rid |        rot \n"
+"-----+-------------------\n"
+"   1 | 0.785398163397448\n"
+"   2 | 0.785398163397448"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2399
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetScale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2405
+#, no-c-format
+msgid "ST_SkewX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2406
+#, no-c-format
+msgid "Returns the georeference X skew (or rotation parameter)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2411
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SkewX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>float8 <function>ST_SkewX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2421
+#, no-c-format
+msgid ""
+"Returns the georeference X skew (or rotation parameter). Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2428 reference_raster.xml:2464
+#, no-c-format
+msgid ""
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | skewx | skewy |       georef\n"
+"-----+-------+-------+--------------------\n"
+"   1 |     0 |     0 | 2.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 3.0000000000\n"
+"                     : 0.5000000000\n"
+"                     : 0.5000000000\n"
+"                     :\n"
+"   2 |     0 |     0 | 0.0500000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : -0.0500000000\n"
+"                     : 3427927.7500000000\n"
+"                     : 5793244.0000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2435
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2441
+#, no-c-format
+msgid "ST_SkewY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2442
+#, no-c-format
+msgid "Returns the georeference Y skew (or rotation parameter)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2447
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SkewY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>float8 <function>ST_SkewY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2457
+#, no-c-format
+msgid ""
+"Returns the georeference Y skew (or rotation parameter). Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2471
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2477
+#, no-c-format
+msgid "ST_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2478
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier of the raster as defined in "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2483
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2493
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier of the raster object as defined in "
+"the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2494
+#, no-c-format
+msgid ""
+"From PostGIS 2.0+ the srid of a non-georeferenced raster/geometry is 0 "
+"instead of the prior -1."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2500
+#, no-c-format
+msgid ""
+"SELECT ST_SRID(rast) As srid\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"srid\n"
+"----------------\n"
+"0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2512
+#, no-c-format
+msgid "ST_Summary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2513
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the raster.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2518
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2528
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the raster.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2535
+#, no-c-format
+msgid ""
+"SELECT ST_Summary(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, "
+"0, 0)\n"
+"                                , 1, '8BUI', 1, 0\n"
+"                        )\n"
+"                        , 2, '32BF', 0, -9999\n"
+"                )\n"
+"                , 3, '16BSI', 0, NULL\n"
+"        )\n"
+");\n"
+"\n"
+"                            st_summary                            \n"
+"------------------------------------------------------------------\n"
+" Raster of 10x10 pixels has 3 bands and extent of BOX(0 -10,10 0)+\n"
+"     band 1 of pixtype 8BUI is in-db with NODATA value of 0      +\n"
+"     band 2 of pixtype 32BF is in-db with NODATA value of -9999  +\n"
+"     band 3 of pixtype 16BSI is in-db with no NODATA value\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2540
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandMetaData\"/>, <xref linkend=\"ST_Summary\"/> "
+"<xref linkend=\"ST_Extent\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2551
+#, no-c-format
+msgid "ST_UpperLeftX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2552
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the upper left X coordinate of raster in projected "
+"spatial ref.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2557
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_UpperLeftX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>float8 <function>ST_UpperLeftX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2567
+#, no-c-format
+msgid ""
+"<para>Returns the upper left X coordinate of raster in projected spatial ref."
+"</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2573
+#, no-c-format
+msgid ""
+"SELECt rid, ST_UpperLeftX(rast) As ulx\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |    ulx\n"
+"-----+------------\n"
+"   1 |        0.5\n"
+"   2 | 3427927.75"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2579 reference_raster.xml:2613
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2585
+#, no-c-format
+msgid "ST_UpperLeftY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2586
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the upper left Y coordinate of raster in projected "
+"spatial ref.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2591
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_UpperLeftY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>float8 <function>ST_UpperLeftY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2601
+#, no-c-format
+msgid ""
+"<para>Returns the upper left Y coordinate of raster in projected spatial ref."
+"</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2607
+#, no-c-format
+msgid ""
+"SELECT rid, ST_UpperLeftY(rast) As uly\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |   uly\n"
+"-----+---------\n"
+"   1 |     0.5\n"
+"   2 | 5793244"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2619
+#, no-c-format
+msgid "ST_Width"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2620
+#, no-c-format
+msgid "<refpurpose>Returns the width of the raster in pixels.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2625
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Width</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_Width</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2635
+#, no-c-format
+msgid "<para>Returns the width of the raster in pixels.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2641
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"rastwidth\n"
+"----------------\n"
+"10"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2655
+#, no-c-format
+msgid "ST_WorldToRasterCoord"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2656
+#, no-c-format
+msgid ""
+"Returns the upper left corner as column and row given geometric X and Y "
+"(longitude and latitude) or a point geometry expressed in the spatial "
+"reference coordinate system of the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2660
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>record <function>ST_WorldToRasterCoord</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>record "
+"<function>ST_WorldToRasterCoord</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>longitude</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>latitude</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>integer <function>ST_World2RasterCoord</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_World2RasterCoord</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>longitude</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>latitude</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:2679
+#, no-c-format
+msgid ""
+"Returns the upper left corner as column and row given geometric X and Y "
+"(longitude and latitude) or a point geometry. This function works regardless "
+"of whether or not the geometric X and Y or point geometry is outside the "
+"extent of the raster. Geometric X and Y must be expressed in the spatial "
+"reference coordinate system of the raster."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2692
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        rid,\n"
+"        (ST_WorldToRasterCoord(rast,3427927.8,20.5)).*,\n"
+"        (ST_WorldToRasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',"
+"ST_SRID(rast)))).*\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | columnx |   rowy    | columnx |   rowy    \n"
+"-----+---------+-----------+---------+-----------\n"
+"   1 | 1713964 |         7 | 1713964 |         7\n"
+"   2 |       2 | 115864471 |       2 | 115864471"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2698
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_WorldToRasterCoordY\"/>, <xref linkend="
+"\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend=\"RT_ST_RasterToWorldCoordY\"/"
+">, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2710
+#, no-c-format
+msgid "ST_WorldToRasterCoordX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2711
+#, no-c-format
+msgid ""
+"Returns the column in the raster of the point geometry (pt) or a X and Y "
+"world coordinate (xw, yw) represented in world spatial reference system of "
+"raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2716
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordX</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_World2RasterCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordX</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>xw</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>yw</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:2741
+#, no-c-format
+msgid ""
+"Returns the column in the raster of the point geometry (pt) or a X and Y "
+"world coordinate (xw, yw). A point, or (both xw and yw world coordinates are "
+"required if a raster is skewed). If a raster is not skewed then xw is "
+"sufficient. World coordinates are in the spatial reference coordinate system "
+"of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2743
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordX"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2749
+#, no-c-format
+msgid ""
+"SELECT rid, ST_WorldToRasterCoordX(rast,3427927.8) As xcoord, \n"
+"                ST_WorldToRasterCoordX(rast,3427927.8,20.5) As "
+"xcoord_xwyw, \n"
+"                ST_WorldToRasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 "
+"20.5)',ST_SRID(rast))) As ptxcoord\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | xcoord  |  xcoord_xwyw   | ptxcoord\n"
+"-----+---------+---------+----------\n"
+"   1 | 1713964 | 1713964 |  1713964\n"
+"   2 |       1 |       1 |        1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2755 reference_raster.xml:2810
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SRID"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2765
+#, no-c-format
+msgid "ST_WorldToRasterCoordY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2766
+#, no-c-format
+msgid ""
+"Returns the row in the raster of the point geometry (pt) or a X and Y world "
+"coordinate (xw, yw) represented in world spatial reference system of raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2771
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_World2RasterCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>xw</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>yw</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:2796
+#, no-c-format
+msgid ""
+"Returns the row in the raster of the point geometry (pt) or a X and Y world "
+"coordinate (xw, yw). A point, or (both xw and yw world coordinates are "
+"required if a raster is skewed). If a raster is not skewed then xw is "
+"sufficient. World coordinates are in the spatial reference coordinate system "
+"of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2798
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordY"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2804
+#, no-c-format
+msgid ""
+"SELECT rid, ST_WorldToRasterCoordY(rast,20.5) As ycoord, \n"
+"                ST_WorldToRasterCoordY(rast,3427927.8,20.5) As "
+"ycoord_xwyw, \n"
+"                ST_WorldToRasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 "
+"20.5)',ST_SRID(rast))) As ptycoord\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |  ycoord   | ycoord_xwyw | ptycoord\n"
+"-----+-----------+-------------+-----------\n"
+"   1 |         7 |           7 |         7\n"
+"   2 | 115864471 |   115864471 | 115864471"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2817
+#, no-c-format
+msgid "Raster Band Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2820
+#, no-c-format
+msgid "ST_BandMetaData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2821
+#, no-c-format
+msgid ""
+"Returns basic meta data for a specific raster band. band num 1 is assumed if "
+"none-specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2826
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_BandMetaData</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type><parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>record <function>ST_BandMetaData</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type><parameter>bandnum=1</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2837
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster band. Columns returned pixeltype | "
+"nodatavalue | isoutdb | path."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2841
+#, no-c-format
+msgid "If raster contains no bands then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2846
+#, no-c-format
+msgid "If band has no NODATA value, nodatavalue will be NULL."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2855
+#, no-c-format
+msgid ""
+"SELECT rid, (foo.md).*  \n"
+" FROM (SELECT rid, ST_BandMetaData(rast,1) As md\n"
+"FROM dummy_rast WHERE rid=2) As foo;\n"
+"\n"
+" rid | pixeltype | nodatavalue | isoutdb | path\n"
+"-----+-----------+----------------+-------------+---------+------\n"
+"   2 | 8BUI      |           0 | f       |"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2861
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2867
+#, no-c-format
+msgid "ST_BandNoDataValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2868
+#, no-c-format
+msgid ""
+"Returns the value in a given band that represents no data. If no band num 1 "
+"is assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2873
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_BandNoDataValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>double precision <function>ST_BandNoDataValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2884 reference_raster.xml:3012
+#, no-c-format
+msgid "Returns the value that represents no data for the band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2890
+#, no-c-format
+msgid ""
+"SELECT ST_BandNoDataValue(rast,1) As bnval1, \n"
+"    ST_BandNoDataValue(rast,2) As bnval2, ST_BandNoDataValue(rast,3) As "
+"bnval3\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" bnval1 | bnval2 | bnval3\n"
+"--------+--------+--------\n"
+"      0 |      0 |      0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2903
+#, no-c-format
+msgid "ST_BandIsNoData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2904
+#, no-c-format
+msgid "Returns true if the band is filled with only nodata values."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2908
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:2925
+#, no-c-format
+msgid ""
+"Returns true if the band is filled with only nodata values. Band 1 is "
+"assumed if not specified. If the last argument is TRUE, the entire band is "
+"checked pixel by pixel. Otherwise, the function simply returns the value of "
+"the isnodata flag for the band. The default value for this parameter is "
+"FALSE, if not specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2935
+#, no-c-format
+msgid ""
+"If the flag is dirty (this is, the result is different using TRUE as last "
+"parameter and not using it) you should update the raster to set this flag to "
+"true, by using ST_SetBandIsNodata(), or ST_SetBandNodataValue() with TRUE as "
+"last argument. See <xref linkend=\"RT_ST_SetBandIsNoData\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2945
+#, no-c-format
+msgid ""
+"-- Create dummy table with one raster column\n"
+"create table dummy_rast (rid integer, rast raster);\n"
+"\n"
+"-- Add raster with two bands, one pixel/band. In the first band, nodatavalue "
+"= pixel value = 3.\n"
+"-- In the second band, nodatavalue = 13, pixel value = 4\n"
+"insert into dummy_rast values(1,\n"
+"(\n"
+"'01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0200' -- nBands (uint16 0)\n"
+"||\n"
+"'17263529ED684A3F' -- scaleX (float64 0.000805965234044584)\n"
+"||\n"
+"'F9253529ED684ABF' -- scaleY (float64 -0.00080596523404458)\n"
+"||\n"
+"'1C9F33CE69E352C0' -- ipX (float64 -75.5533328537098)\n"
+"||\n"
+"'718F0E9A27A44840' -- ipY (float64 49.2824585505576)\n"
+"||\n"
+"'ED50EB853EC32B3F' -- skewX (float64 0.000211812383858707)\n"
+"||\n"
+"'7550EB853EC32B3F' -- skewY (float64 0.000211812383858704)\n"
+"||\n"
+"'E6100000' -- SRID (int32 4326)\n"
+"||\n"
+"'0100' -- width (uint16 1)\n"
+"||\n"
+"'0100' -- height (uint16 1)\n"
+"||\n"
+"'6' -- hasnodatavalue and isnodata value set to true.\n"
+"||\n"
+"'2' -- first band type (4BUI) \n"
+"||\n"
+"'03' -- novalue==3\n"
+"||\n"
+"'03' -- pixel(0,0)==3 (same that nodata)\n"
+"||\n"
+"'0' -- hasnodatavalue set to false\n"
+"||\n"
+"'5' -- second band type (16BSI)\n"
+"||\n"
+"'0D00' -- novalue==13\n"
+"||\n"
+"'0400' -- pixel(0,0)==4\n"
+")::raster\n"
+");\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"true\n"
+"select st_bandisnodata(rast, 2) from dummy_rast where rid = 1; -- Expected "
+"false"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2951
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_SetBandIsNoData\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2960
+#, no-c-format
+msgid "ST_BandPath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2961
+#, no-c-format
+msgid ""
+"Returns system file path to a band stored in file system. If no bandnum "
+"specified, 1 is assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2966
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_BandPath</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_BandPath</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:2977
+#, no-c-format
+msgid ""
+"Returns system file path to a band. Throws an error if called with an in db "
+"band."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2983
+#, no-c-format
+msgid "<!-- TODO: -->"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2995
+#, no-c-format
+msgid "ST_BandPixelType"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2996
+#, no-c-format
+msgid ""
+"Returns the type of pixel for given band. If no bandnum specified, 1 is "
+"assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3001
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_BandPixelType</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_BandPixelType</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:3013
+#, no-c-format
+msgid "There are 11 pixel types. Pixel Types supported are as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3016
+#, no-c-format
+msgid "1BB - 1-bit boolean"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3020
+#, no-c-format
+msgid "2BUI - 2-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3024
+#, no-c-format
+msgid "4BUI - 4-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3028
+#, no-c-format
+msgid "8BSI - 8-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3031
+#, no-c-format
+msgid "8BUI - 8-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3034
+#, no-c-format
+msgid "16BSI - 16-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3037
+#, no-c-format
+msgid "16BUI - 16-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3040
+#, no-c-format
+msgid "32BSI - 32-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3043
+#, no-c-format
+msgid "32BUI - 32-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3046
+#, no-c-format
+msgid "32BF - 32-bit float"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3049
+#, no-c-format
+msgid "64BF - 64-bit float"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3058
+#, no-c-format
+msgid ""
+"SELECT ST_BandPixelType(rast,1) As btype1, \n"
+"    ST_BandPixelType(rast,2) As btype2, ST_BandPixelType(rast,3) As btype3\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" btype1 | btype2 | btype3\n"
+"--------+--------+--------\n"
+" 8BUI   | 8BUI   | 8BUI"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3070
+#, no-c-format
+msgid "ST_HasNoBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3071
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if there is no band with given band number. If no "
+"band number is specified, then band number 1 is assumed.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3076
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_HasNoBand</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum=1</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_HasNoBand</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum=1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:3087
+#, no-c-format
+msgid ""
+"<para>Returns true if there is no band with given band number. If no band "
+"number is specified, then band number 1 is assumed.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3095
+#, no-c-format
+msgid ""
+"SELECT rid, ST_HasNoBand(rast) As hb1, ST_HasNoBand(rast,2) as hb2, \n"
+"ST_HasNoBand(rast,4) as hb4, ST_NumBands(rast) As numbands \n"
+"FROM dummy_rast;\n"
+"\n"
+"rid | hb1 | hb2 | hb4 | numbands\n"
+"-----+-----+-----+-----+----------\n"
+"1 | t   | t   | t   |        0\n"
+"2 | f   | f   | t   |        3"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3108
+#, no-c-format
+msgid "Raster Pixel Accessors and Setters"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3112
+#, no-c-format
+msgid "ST_PixelAsPolygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3113
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the polygon geometry that bounds the pixel for a "
+"particular row and column.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3118
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPolygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_PixelAsPolygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:3130
+#, no-c-format
+msgid ""
+"<para>Returns the polygon geometry that bounds the pixel for a particular "
+"row and column.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3138
+#, no-c-format
+msgid ""
+"-- get raster pixel polygon\n"
+"SELECT i,j, ST_AsText(ST_PixelAsPolygon(foo.rast, i,j)) As b1pgeom\n"
+"FROM dummy_rast As foo \n"
+"        CROSS JOIN generate_series(1,2) As i \n"
+"        CROSS JOIN generate_series(1,1) As j\n"
+"WHERE rid=2;\n"
+"\n"
+" i | j |                                                    b1pgeom\n"
+"---+---"
+"+-----------------------------------------------------------------------------\n"
+" 1 | 1 | POLYGON((3427927.75 5793244,3427927.8 5793244,3427927.8 "
+"5793243.95,...\n"
+" 2 | 1 | POLYGON((3427927.8 5793244,3427927.85 5793244,3427927.85 "
+"5793243.95, .."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3143
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend="
+"\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>, <xref linkend=\"RT_ST_Intersection\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3158
+#, no-c-format
+msgid "ST_PixelAsPolygons"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3159
+#, no-c-format
+msgid ""
+"Returns the polygon geometry that bounds every pixel of a raster band along "
+"with the value, the X and the Y raster coordinates of each pixel."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3164
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>ST_PixelAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+"<funcdef>setof record <function>ST_PixelAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:3176
+#, no-c-format
+msgid ""
+"Returns the polygon geometry that bounds every pixel of a raster band along "
+"with the value (double precision), the X and the Y raster coordinates "
+"(integers) of each pixel."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3179
+#, no-c-format
+msgid ""
+"ST_PixelAsPolygons returns one polygon geometry for every pixel. This is "
+"different than ST_DumpAsPolygons where each geometry represents one or more "
+"pixels with the same pixel value."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3184
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3190
+#, no-c-format
+msgid "Enhanced: 2.1.0 exclude_nodata_value optional argument was added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3191 reference_raster.xml:3285
+#: reference_raster.xml:3379
+#, no-c-format
+msgid "Changed: 2.1.1 Changed behavior of exclude_nodata_value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3196
+#, no-c-format
+msgid ""
+"-- get raster pixel polygon\n"
+"SELECT (gv).x, (gv).y, (gv).val, ST_AsText((gv).geom) geom\n"
+"FROM (SELECT ST_PixelAsPolygons(\n"
+"                 ST_SetValue(ST_SetValue(ST_AddBand(ST_MakeEmptyRaster(2, 2, "
+"0, 0, 0.001, -0.001, 0.001, 0.001, 4269), \n"
+"                                                    '8BUI'::text, 1, 0), \n"
+"                                         2, 2, 10), \n"
+"                             1, 1, NULL)\n"
+") gv \n"
+") foo;\n"
+"\n"
+" x | y | val |                geom\n"
+"---+---"
+"+-----------------------------------------------------------------------------\n"
+" 1 | 1 |     | POLYGON((0 0,0.001 0.001,0.002 0,0.001 -0.001,0 0))\n"
+" 1 | 2 |   1 | POLYGON((0.001 -0.001,0.002 0,0.003 -0.001,0.002 -0.002,0.001 "
+"-0.001))\n"
+" 2 | 1 |   1 | POLYGON((0.001 0.001,0.002 0.002,0.003 0.001,0.002 0,0.001 "
+"0.001))\n"
+" 2 | 2 |  10 | POLYGON((0.002 0,0.003 0.001,0.004 0,0.003 -0.001,0.002 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3201
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3215
+#, no-c-format
+msgid "ST_PixelAsPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3216
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a point geometry of the pixel's upper-left corner.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3222
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPoint</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_PixelAsPoint</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:3233
+#, no-c-format
+msgid "<para>Returns a point geometry of the pixel's upper-left corner.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3239
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PixelAsPoint(rast, 1, 1)) FROM dummy_rast WHERE rid = "
+"1;\n"
+"\n"
+"   st_astext    \n"
+"----------------\n"
+" POINT(0.5 0.5)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3244
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3258
+#, no-c-format
+msgid "ST_PixelAsPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3259
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a point geometry for each pixel of a raster band along "
+"with the value, the X and the Y raster coordinates of each pixel. The "
+"coordinates of the point geometry are of the pixel's upper-left corner.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3265
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPoints</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_PixelAsPoints</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:3276
+#, no-c-format
+msgid ""
+"<para>Returns a point geometry for each pixel of a raster band along with "
+"the value, the X and the Y raster coordinates of each pixel. The coordinates "
+"of the point geometry are of the pixel's upper-left corner.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3280 reference_raster.xml:3374
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3290
+#, no-c-format
+msgid ""
+"SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsPoints(rast, 1)).* "
+"FROM dummy_rast WHERE rid = 2) foo;\n"
+"\n"
+" x | y | val |          st_astext           \n"
+"---+---+-----+------------------------------\n"
+" 1 | 1 | 253 | POINT(3427927.75 5793244)\n"
+" 2 | 1 | 254 | POINT(3427927.8 5793244)\n"
+" 3 | 1 | 253 | POINT(3427927.85 5793244)\n"
+" 4 | 1 | 254 | POINT(3427927.9 5793244)\n"
+" 5 | 1 | 254 | POINT(3427927.95 5793244)\n"
+" 1 | 2 | 253 | POINT(3427927.75 5793243.95)\n"
+" 2 | 2 | 254 | POINT(3427927.8 5793243.95)\n"
+" 3 | 2 | 254 | POINT(3427927.85 5793243.95)\n"
+" 4 | 2 | 253 | POINT(3427927.9 5793243.95)\n"
+" 5 | 2 | 249 | POINT(3427927.95 5793243.95)\n"
+" 1 | 3 | 250 | POINT(3427927.75 5793243.9)\n"
+" 2 | 3 | 254 | POINT(3427927.8 5793243.9)\n"
+" 3 | 3 | 254 | POINT(3427927.85 5793243.9)\n"
+" 4 | 3 | 252 | POINT(3427927.9 5793243.9)\n"
+" 5 | 3 | 249 | POINT(3427927.95 5793243.9)\n"
+" 1 | 4 | 251 | POINT(3427927.75 5793243.85)\n"
+" 2 | 4 | 253 | POINT(3427927.8 5793243.85)\n"
+" 3 | 4 | 254 | POINT(3427927.85 5793243.85)\n"
+" 4 | 4 | 254 | POINT(3427927.9 5793243.85)\n"
+" 5 | 4 | 253 | POINT(3427927.95 5793243.85)\n"
+" 1 | 5 | 252 | POINT(3427927.75 5793243.8)\n"
+" 2 | 5 | 250 | POINT(3427927.8 5793243.8)\n"
+" 3 | 5 | 254 | POINT(3427927.85 5793243.8)\n"
+" 4 | 5 | 254 | POINT(3427927.9 5793243.8)\n"
+" 5 | 5 | 254 | POINT(3427927.95 5793243.8)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3295
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3309
+#, no-c-format
+msgid "ST_PixelAsCentroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3310
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the centroid (point geometry) of the area represented by "
+"a pixel.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3316
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsCentroid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_PixelAsCentroid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:3327
+#, no-c-format
+msgid ""
+"<para>Returns the centroid (point geometry) of the area represented by a "
+"pixel.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3333
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PixelAsCentroid(rast, 1, 1)) FROM dummy_rast WHERE rid = "
+"1;\n"
+"\n"
+"  st_astext   \n"
+"--------------\n"
+" POINT(1.5 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3338
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroids\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3352
+#, no-c-format
+msgid "ST_PixelAsCentroids"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3353
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the centroid (point geometry) for each pixel of a raster "
+"band along with the value, the X and the Y raster coordinates of each pixel. "
+"The point geometry is the centroid of the area represented by a pixel.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3359
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsCentroids</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_PixelAsCentroids</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:3370
+#, no-c-format
+msgid ""
+"<para>Returns the centroid (point geometry) for each pixel of a raster band "
+"along with the value, the X and the Y raster coordinates of each pixel. The "
+"point geometry is the centroid of the area represented by a pixel.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3384
+#, no-c-format
+msgid ""
+"SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsCentroids(rast, "
+"1)).* FROM dummy_rast WHERE rid = 2) foo;\n"
+" x | y | val |           st_astext            \n"
+"---+---+-----+--------------------------------\n"
+" 1 | 1 | 253 | POINT(3427927.775 5793243.975)\n"
+" 2 | 1 | 254 | POINT(3427927.825 5793243.975)\n"
+" 3 | 1 | 253 | POINT(3427927.875 5793243.975)\n"
+" 4 | 1 | 254 | POINT(3427927.925 5793243.975)\n"
+" 5 | 1 | 254 | POINT(3427927.975 5793243.975)\n"
+" 1 | 2 | 253 | POINT(3427927.775 5793243.925)\n"
+" 2 | 2 | 254 | POINT(3427927.825 5793243.925)\n"
+" 3 | 2 | 254 | POINT(3427927.875 5793243.925)\n"
+" 4 | 2 | 253 | POINT(3427927.925 5793243.925)\n"
+" 5 | 2 | 249 | POINT(3427927.975 5793243.925)\n"
+" 1 | 3 | 250 | POINT(3427927.775 5793243.875)\n"
+" 2 | 3 | 254 | POINT(3427927.825 5793243.875)\n"
+" 3 | 3 | 254 | POINT(3427927.875 5793243.875)\n"
+" 4 | 3 | 252 | POINT(3427927.925 5793243.875)\n"
+" 5 | 3 | 249 | POINT(3427927.975 5793243.875)\n"
+" 1 | 4 | 251 | POINT(3427927.775 5793243.825)\n"
+" 2 | 4 | 253 | POINT(3427927.825 5793243.825)\n"
+" 3 | 4 | 254 | POINT(3427927.875 5793243.825)\n"
+" 4 | 4 | 254 | POINT(3427927.925 5793243.825)\n"
+" 5 | 4 | 253 | POINT(3427927.975 5793243.825)\n"
+" 1 | 5 | 252 | POINT(3427927.775 5793243.775)\n"
+" 2 | 5 | 250 | POINT(3427927.825 5793243.775)\n"
+" 3 | 5 | 254 | POINT(3427927.875 5793243.775)\n"
+" 4 | 5 | 254 | POINT(3427927.925 5793243.775)\n"
+" 5 | 5 | 254 | POINT(3427927.975 5793243.775)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3389
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3403
+#, no-c-format
+msgid "ST_Value"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3404
+#, no-c-format
+msgid ""
+"Returns the value of a given band in a given columnx, rowy pixel or at a "
+"particular geometric point. Band numbers start at 1 and assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to false, "
+"then all pixels include <varname>nodata</varname> pixels are considered to "
+"intersect and return value. If <varname>exclude_nodata_value</varname> is "
+"not passed in then reads it from metadata of raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3408
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:3443
+#, no-c-format
+msgid ""
+"Returns the value of a given band in a given columnx, rowy pixel or at a "
+"given geometry point. Band numbers start at 1 and band is assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to true, "
+"then only non <varname>nodata</varname> pixels are considered. If "
+"<varname>exclude_nodata_value</varname> is set to false, then all pixels are "
+"considered."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3446
+#, no-c-format
+msgid "Enhanced: 2.0.0 exclude_nodata_value optional argument was added."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3451
+#, no-c-format
+msgid ""
+"-- get raster values at particular postgis geometry points\n"
+"-- the srid of your geometry should be same as for your raster\n"
+"SELECT rid, ST_Value(rast, foo.pt_geom) As b1pval, ST_Value(rast, 2, foo."
+"pt_geom) As b2pval\n"
+"FROM dummy_rast CROSS JOIN (SELECT ST_SetSRID(ST_Point(3427927.77, "
+"5793243.76), 0) As pt_geom) As foo\n"
+"WHERE rid=2;\n"
+"\n"
+" rid | b1pval | b2pval\n"
+"-----+--------+--------\n"
+"   2 |    252 |     79\n"
+"   \n"
+"   \n"
+"-- general fictitious example using a real table\n"
+"SELECT rid, ST_Value(rast, 3, sometable.geom) As b3pval\n"
+"FROM sometable\n"
+"WHERE ST_Intersects(rast,sometable.geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3452
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Value(rast, 1, 1, 1) As b1pval, \n"
+"    ST_Value(rast, 2, 1, 1) As b2pval, ST_Value(rast, 3, 1, 1) As b3pval\n"
+"FROM dummy_rast\n"
+"WHERE rid=2;\n"
+"\n"
+" rid | b1pval | b2pval | b3pval\n"
+"-----+--------+--------+--------\n"
+"   2 |    253 |     78 |     70"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3454
+#, no-c-format
+msgid ""
+"--- Get all values in bands 1,2,3 of each pixel --\n"
+"SELECT x, y, ST_Value(rast, 1, x, y) As b1val, \n"
+"        ST_Value(rast, 2, x, y) As b2val, ST_Value(rast, 3, x, y) As b3val\n"
+"FROM dummy_rast CROSS JOIN\n"
+"generate_series(1, 1000) As x CROSS JOIN generate_series(1, 1000) As y\n"
+"WHERE rid =  2 AND x <= ST_Width(rast) AND y <= ST_Height(rast);\n"
+"\n"
+" x | y | b1val | b2val | b3val\n"
+"---+---+-------+-------+-------\n"
+" 1 | 1 |   253 |    78 |    70\n"
+" 1 | 2 |   253 |    96 |    80\n"
+" 1 | 3 |   250 |    99 |    90\n"
+" 1 | 4 |   251 |    89 |    77\n"
+" 1 | 5 |   252 |    79 |    62\n"
+" 2 | 1 |   254 |    98 |    86\n"
+" 2 | 2 |   254 |   118 |   108\n"
+" :\n"
+" :"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3456
+#, no-c-format
+msgid ""
+"--- Get all values in bands 1,2,3 of each pixel same as above but returning "
+"the upper left point point of each pixel --\n"
+"SELECT ST_AsText(ST_SetSRID(\n"
+"        ST_Point(ST_UpperLeftX(rast) + ST_ScaleX(rast)*x, \n"
+"                ST_UpperLeftY(rast) + ST_ScaleY(rast)*y), \n"
+"                ST_SRID(rast))) As uplpt\n"
+"    , ST_Value(rast, 1, x, y) As b1val, \n"
+"        ST_Value(rast, 2, x, y) As b2val, ST_Value(rast, 3, x, y) As b3val\n"
+"FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000) As x CROSS JOIN generate_series(1,1000) As y\n"
+"WHERE rid =  2 AND x <= ST_Width(rast) AND y <= ST_Height(rast);\n"
+"\n"
+"            uplpt            | b1val | b2val | b3val\n"
+"-----------------------------+-------+-------+-------\n"
+" POINT(3427929.25 5793245.5) |   253 |    78 |    70\n"
+" POINT(3427929.25 5793247)   |   253 |    96 |    80\n"
+" POINT(3427929.25 5793248.5) |   250 |    99 |    90\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3457
+#, no-c-format
+msgid ""
+"--- Get a polygon formed by union of all pixels \n"
+"        that fall in a particular value range and intersect particular "
+"polygon --\n"
+"SELECT ST_AsText(ST_Union(pixpolyg)) As shadow\n"
+"FROM (SELECT ST_Translate(ST_MakeEnvelope(\n"
+"                ST_UpperLeftX(rast), ST_UpperLeftY(rast), \n"
+"                        ST_UpperLeftX(rast) + ST_ScaleX(rast),\n"
+"                        ST_UpperLeftY(rast) + ST_ScaleY(rast), 0\n"
+"                        ), ST_ScaleX(rast)*x, ST_ScaleY(rast)*y\n"
+"                ) As pixpolyg, ST_Value(rast, 2, x, y) As b2val\n"
+"        FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000) As x CROSS JOIN generate_series(1,1000) As y\n"
+"WHERE rid =  2 \n"
+"        AND x <= ST_Width(rast) AND y <= ST_Height(rast)) As foo\n"
+"WHERE  \n"
+"        ST_Intersects(\n"
+"                pixpolyg, \n"
+"                ST_GeomFromText('POLYGON((3427928 5793244,3427927.75 "
+"5793243.75,3427928 5793243.75,3427928 5793244))',0)\n"
+"                ) AND b2val != 254;\n"
+"\n"
+"\n"
+"                shadow\n"
+"------------------------------------------------------------------------------------\n"
+" MULTIPOLYGON(((3427928 5793243.9,3427928 5793243.85,3427927.95 "
+"5793243.85,3427927.95 5793243.9,\n"
+" 3427927.95 5793243.95,3427928 5793243.95,3427928.05 5793243.95,3427928.05 "
+"5793243.9,3427928 5793243.9)),((3427927.95 5793243.9,3427927.95 579324\n"
+"3.85,3427927.9 5793243.85,3427927.85 5793243.85,3427927.85 "
+"5793243.9,3427927.9 5793243.9,3427927.9 5793243.95,\n"
+"3427927.95 5793243.95,3427927.95 5793243.9)),((3427927.85 "
+"5793243.75,3427927.85 5793243.7,3427927.8 5793243.7,3427927.8 5793243.75\n"
+",3427927.8 5793243.8,3427927.8 5793243.85,3427927.85 5793243.85,3427927.85 "
+"5793243.8,3427927.85 5793243.75)),\n"
+"((3427928.05 5793243.75,3427928.05 5793243.7,3427928 5793243.7,3427927.95 "
+"5793243.7,3427927.95 5793243.75,3427927.95 5793243.8,3427\n"
+"927.95 5793243.85,3427928 5793243.85,3427928 5793243.8,3427928.05 "
+"5793243.8,\n"
+"3427928.05 5793243.75)),((3427927.95 5793243.75,3427927.95 "
+"5793243.7,3427927.9 5793243.7,3427927.85 5793243.7,\n"
+"3427927.85 5793243.75,3427927.85 5793243.8,3427927.85 5793243.85,3427927.9 "
+"5793243.85,\n"
+"3427927.95 5793243.85,3427927.95 5793243.8,3427927.95 5793243.75)))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3459
+#, no-c-format
+msgid ""
+"--- Checking all the pixels of a large raster tile can take a long time.\n"
+"--- You can dramatically improve speed at some lose of precision by orders "
+"of magnitude \n"
+"--  by sampling pixels using the step optional parameter of "
+"generate_series.  \n"
+"--  This next example does the same as previous but by checking 1 for every "
+"4 (2x2) pixels and putting in the last checked\n"
+"--  putting in the checked pixel as the value for subsequent 4\n"
+"        \n"
+"SELECT ST_AsText(ST_Union(pixpolyg)) As shadow\n"
+"FROM (SELECT ST_Translate(ST_MakeEnvelope(\n"
+"                ST_UpperLeftX(rast), ST_UpperLeftY(rast), \n"
+"                        ST_UpperLeftX(rast) + ST_ScaleX(rast)*2,\n"
+"                        ST_UpperLeftY(rast) + ST_ScaleY(rast)*2, 0\n"
+"                        ), ST_ScaleX(rast)*x, ST_ScaleY(rast)*y\n"
+"                ) As pixpolyg, ST_Value(rast, 2, x, y) As b2val\n"
+"        FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000,2) As x CROSS JOIN generate_series(1,1000,2) As y\n"
+"WHERE rid =  2 \n"
+"        AND x <= ST_Width(rast)  AND y <= ST_Height(rast)  ) As foo\n"
+"WHERE  \n"
+"        ST_Intersects(\n"
+"                pixpolyg, \n"
+"                ST_GeomFromText('POLYGON((3427928 5793244,3427927.75 "
+"5793243.75,3427928 5793243.75,3427928 5793244))',0)\n"
+"                ) AND b2val != 254;\n"
+"\n"
+"                shadow\n"
+"------------------------------------------------------------------------------------\n"
+" MULTIPOLYGON(((3427927.9 5793243.85,3427927.8 5793243.85,3427927.8 "
+"5793243.95,\n"
+" 3427927.9 5793243.95,3427928 5793243.95,3427928.1 5793243.95,3427928.1 "
+"5793243.85,3427928 5793243.85,3427927.9 5793243.85)),\n"
+" ((3427927.9 5793243.65,3427927.8 5793243.65,3427927.8 5793243.75,3427927.8 "
+"5793243.85,3427927.9 5793243.85,\n"
+" 3427928 5793243.85,3427928 5793243.75,3427928.1 5793243.75,3427928.1 "
+"5793243.65,3427928 5793243.65,3427927.9 5793243.65)))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3464
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_DumpAsPolygons\"/>, <xref linkend=\"RT_ST_NumBands\"/"
+">, <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_ScaleX\"/"
+">, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>, <xref linkend=\"RT_ST_SRID\"/>, <xref "
+"linkend=\"ST_AsText\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_MakeEnvelope\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Intersection\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3485
+#, no-c-format
+msgid "ST_NearestValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3486
+#, no-c-format
+msgid ""
+"Returns the nearest non-<varname>NODATA</varname> value of a given band's "
+"pixel specified by a columnx and rowy or a geometric point expressed in the "
+"same spatial reference coordinate system as the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3492
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:3529
+#, no-c-format
+msgid ""
+"Returns the nearest non-<varname>NODATA</varname> value of a given band in a "
+"given columnx, rowy pixel or at a specific geometric point. If the columnx, "
+"rowy pixel or the pixel at the specified geometric point is <varname>NODATA</"
+"varname>, the function will find the nearest pixel to the columnx, rowy "
+"pixel or geometric point whose value is not <varname>NODATA</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3532 reference_raster.xml:3619
+#, no-c-format
+msgid ""
+"Band numbers start at 1 and <varname>bandnum</varname> is assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to false, "
+"then all pixels include <varname>nodata</varname> pixels are considered to "
+"intersect and return value. If <varname>exclude_nodata_value</varname> is "
+"not passed in then reads it from metadata of raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3537
+#, no-c-format
+msgid "ST_NearestValue is a drop-in replacement for ST_Value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3546
+#, no-c-format
+msgid ""
+"-- pixel 2x2 has value\n"
+"SELECT\n"
+"        ST_Value(rast, 2, 2) AS value,\n"
+"        ST_NearestValue(rast, 2, 2) AS nearestvalue\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_AddBand(\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                '8BUI'::"
+"text, 1, 0\n"
+"                                                        ),\n"
+"                                                        1, 1, 0.\n"
+"                                                ),\n"
+"                                                2, 3, 0.\n"
+"                                        ),\n"
+"                                        3, 5, 0.\n"
+"                                ),\n"
+"                                4, 2, 0.\n"
+"                        ),\n"
+"                        5, 4, 0.\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+" value | nearestvalue \n"
+"-------+--------------\n"
+"     1 |            1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3548
+#, no-c-format
+msgid ""
+"-- pixel 2x3 is NODATA\n"
+"SELECT\n"
+"        ST_Value(rast, 2, 3) AS value,\n"
+"        ST_NearestValue(rast, 2, 3) AS nearestvalue\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_AddBand(\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                '8BUI'::"
+"text, 1, 0\n"
+"                                                        ),\n"
+"                                                        1, 1, 0.\n"
+"                                                ),\n"
+"                                                2, 3, 0.\n"
+"                                        ),\n"
+"                                        3, 5, 0.\n"
+"                                ),\n"
+"                                4, 2, 0.\n"
+"                        ),\n"
+"                        5, 4, 0.\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+" value | nearestvalue \n"
+"-------+--------------\n"
+"       |            1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3554
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3564
+#, no-c-format
+msgid "ST_Neighborhood"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3565
+#, no-c-format
+msgid ""
+"Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
+"values around a given band's pixel specified by either a columnX and rowY or "
+"a geometric point expressed in the same spatial reference coordinate system "
+"as the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3571
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:3616
+#, no-c-format
+msgid ""
+"Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
+"values around a given band's pixel specified by either a columnX and rowY or "
+"a geometric point expressed in the same spatial reference coordinate system "
+"as the raster. The <varname>distanceX</varname> and <varname>distanceY</"
+"varname> parameters define the number of pixels around the specified pixel "
+"in the X and Y axes, e.g. I want all values within 3 pixel distance along "
+"the X axis and 2 pixel distance along the Y axis around my pixel of "
+"interest. The center value of the 2-D array will be the value at the pixel "
+"specified by the columnX and rowY or the geometric point."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3623
+#, no-c-format
+msgid ""
+"The number of elements along each axis of the returning 2-D array is 2 * "
+"(<varname>distanceX</varname>|<varname>distanceY</varname>) + 1. So for a "
+"<varname>distanceX</varname> and <varname>distanceY</varname> of 1, the "
+"returning array will be 3x3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3628
+#, no-c-format
+msgid ""
+"The 2-D array output can be passed to any of the raster processing builtin "
+"functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3638
+#, no-c-format
+msgid ""
+"-- pixel 2x2 has value\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 2, 2, 1, 1)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"         st_neighborhood         \n"
+"---------------------------------\n"
+" {{NULL,1,1},{1,1,NULL},{1,1,1}}"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3640
+#, no-c-format
+msgid ""
+"-- pixel 2x3 is NODATA\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 2, 3, 1, 1)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"       st_neighborhood        \n"
+"------------------------------\n"
+" {{1,1,1},{1,NULL,1},{1,1,1}}"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3642
+#, no-c-format
+msgid ""
+"-- pixel 3x3 has value\n"
+"-- exclude_nodata_value = FALSE\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 3, 3, 1, 1, false)\n"
+"FROM (\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"      st_neighborhood      \n"
+"---------------------------\n"
+" {{1,0,1},{1,1,1},{0,1,1}}"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3648
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
+"linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend="
+"\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref linkend="
+"\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3665
+#, no-c-format
+msgid "ST_SetValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3666
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the value of a given band in "
+"a given columnx, rowy pixel or the pixels that intersect a particular "
+"geometry. Band numbers start at 1 and assumed to be 1 if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3670
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:3704
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the specified pixels' values "
+"to new value for the designed band given the raster's row and column or a "
+"geometry. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3707
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Geometry variant of ST_SetValue() now supports any geometry "
+"type, not just point. The geometry variant is a wrapper around the geomval[] "
+"variant of ST_SetValues()"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3713
+#, no-c-format
+msgid ""
+"-- Geometry example\n"
+"SELECT (foo.geomval).val, ST_AsText(ST_Union((foo.geomval).geom))\n"
+"FROM (SELECT ST_DumpAsPolygons(\n"
+"                ST_SetValue(rast,1,\n"
+"                                ST_Point(3427927.75, 5793243.95),\n"
+"                                50)\n"
+"                        ) As geomval\n"
+"FROM dummy_rast\n"
+"where rid = 2) As foo\n"
+"WHERE (foo.geomval).val < 250\n"
+"GROUP BY (foo.geomval).val;\n"
+"\n"
+" val |                                                     st_astext\n"
+"-----+-------------------------------------------------------------------\n"
+"  50 | POLYGON((3427927.75 5793244,3427927.75 5793243.95,3427927.8 "
+"579324 ...\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 57932 ..."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3715
+#, no-c-format
+msgid ""
+"-- Store the changed raster --\n"
+"        UPDATE dummy_rast SET rast = ST_SetValue(rast,1, "
+"ST_Point(3427927.75, 5793243.95),100)\n"
+"                WHERE rid = 2   ;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3719 reference_raster.xml:9319
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DumpAsPolygons\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3725
+#, no-c-format
+msgid "ST_SetValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3726
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the values of a given band."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3730
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>boolean[][] </type> "
+"<parameter>noset=NULL</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>nosetvalue</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValues</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geomval[] </type> <parameter>geomvalset</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>boolean[][] </type> "
+"<parameter>noset=NULL</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>nosetvalue</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValues</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:3789
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting specified pixels to new "
+"value(s) for the designated band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3793
+#, no-c-format
+msgid ""
+"If <varname>keepnodata</varname> is TRUE, those pixels whose values are "
+"NODATA will not be set with the corresponding value in <varname>newvalueset</"
+"varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3797
+#, no-c-format
+msgid ""
+"For Variant 1, the specific pixels to be set are determined by the "
+"<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates and "
+"the dimensions of the <varname>newvalueset</varname> array. <varname>noset</"
+"varname> can be used to prevent pixels with values present in "
+"<varname>newvalueset</varname> from being set (due to PostgreSQL not "
+"permitting ragged/jagged arrays). See example Variant 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3801
+#, no-c-format
+msgid ""
+"Variant 2 is like Variant 1 but with a simple double precision "
+"<varname>nosetvalue</varname> instead of a boolean <varname>noset</varname> "
+"array. Elements in <varname>newvalueset</varname> with the "
+"<varname>nosetvalue</varname> value with be skipped. See example Variant 2."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3805
+#, no-c-format
+msgid ""
+"For Variant 3, the specific pixels to be set are determined by the "
+"<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates, "
+"<varname>width</varname> and <varname>height</varname>. See example Variant "
+"3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3809
+#, no-c-format
+msgid ""
+"Variant 4 is the same as Variant 3 with the exception that it assumes that "
+"the first band's pixels of <varname>rast</varname> will be set."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3813
+#, no-c-format
+msgid ""
+"For Variant 5, an array of <xref linkend=\"geomval\"/> is used to determine "
+"the specific pixels to be set. If all the geometries in the array are of "
+"type POINT or MULTIPOINT, the function uses a shortcut where the longitude "
+"and latitude of each point is used to set a pixel directly. Otherwise, the "
+"geometries are converted to rasters and then iterated through in one pass. "
+"See example Variant 5."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3822 reference_raster.xml:6730
+#: reference_raster.xml:8262 reference_raster.xml:8705
+#: reference_raster.xml:8802 reference_raster.xml:8930
+#, no-c-format
+msgid "Examples: Variant 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3824
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 2, 2, ARRAY[[9, 9], [9, 9]]::double precision[]"
+"[]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3826
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 9 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   9\n"
+" 1 | 2 |   9\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3828
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1,\n"
+"                                ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][],\n"
+"                                ARRAY[[false], [true]]::boolean[][]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   9\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3830
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"|   | 1 | 1 |          |   | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_SetValue(\n"
+"                                ST_AddBand(\n"
+"                                        ST_MakeEmptyRaster(3, 3, 0, 0, 1, "
+"-1, 0, 0, 0),\n"
+"                                        1, '8BUI', 1, 0\n"
+"                                ),\n"
+"                                1, 1, 1, NULL\n"
+"                        ),\n"
+"                        1, 1, 1,\n"
+"                                ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][],\n"
+"                                ARRAY[[false], [true]]::boolean[][],\n"
+"                                TRUE\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   \n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3835 reference_raster.xml:8269
+#: reference_raster.xml:8710 reference_raster.xml:8807
+#: reference_raster.xml:8935
+#, no-c-format
+msgid "Examples: Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3837
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[-1, -1, -1], [-1, 9, 9], [-1, 9, "
+"9]]::double precision[][], -1\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3839
+#, no-c-format
+msgid ""
+"/*\n"
+"This example is like the previous one.  Instead of nosetvalue = -1, "
+"nosetvalue = NULL\n"
+"\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[NULL, NULL, NULL], [NULL, 9, 9], "
+"[NULL, 9, 9]]::double precision[][], NULL::double precision\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3844 reference_raster.xml:4788
+#, no-c-format
+msgid "Examples: Variant 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3846
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 2, 2, 2, 2, 9\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3848
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 |   | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_SetValue(\n"
+"                                ST_AddBand(\n"
+"                                        ST_MakeEmptyRaster(3, 3, 0, 0, 1, "
+"-1, 0, 0, 0),\n"
+"                                        1, '8BUI', 1, 0\n"
+"                                ),\n"
+"                                1, 2, 2, NULL\n"
+"                        ),\n"
+"                        1, 2, 2, 2, 2, 9, TRUE\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3853
+#, no-c-format
+msgid "Examples: Variant 5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3855
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        rid, gid, ST_DumpValues(ST_SetValue(rast, 1, geom, gid))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"ORDER BY rid, gid;\n"
+"\n"
+" rid | gid |                                                                "
+"st_dumpvalues                                                                \n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,NULL,1,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,"
+"NULL}}\")\n"
+"   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,"
+"NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   3 | (1,\"{{3,3,3,3,3},{3,NULL,NULL,NULL,NULL},{3,NULL,NULL,NULL,"
+"NULL},{3,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   4 | (1,\"{{4,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,"
+"NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,4}}\")\n"
+"(4 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3857
+#, no-c-format
+msgid ""
+"The following shows that geomvals later in the array can overwrite prior "
+"geomvals"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3858
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 1\n"
+"        AND t3.gid = 2\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3860
+#, no-c-format
+msgid "This example is the opposite of the prior example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3861
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 2\n"
+"        AND t3.gid = 1\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   2 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,1,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3868
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_PixelAsPolygons"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3878
+#, no-c-format
+msgid "ST_DumpValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3879
+#, no-c-format
+msgid "Get the values of the specified band as a 2-dimension array."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3885
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_DumpValues</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer[] </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision[][] "
+"<function>ST_DumpValues</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rast</parameter> </paramdef> <paramdef> <type>integer </type> "
+"<parameter>nband</parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:3916
+#, no-c-format
+msgid ""
+"Get the values of the specified band as a 2-dimension array. If "
+"<varname>nband</varname> is NULL or not provided, all raster bands are "
+"processed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3926
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast)).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"     2 | {{3,3,3},{3,3,3},{3,3,3}}\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3928
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast, ARRAY[3, 1])).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3933
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_SetValues\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3944
+#, no-c-format
+msgid "ST_PixelOfValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3945
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3951
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>double precision[] </type> <parameter>search</"
+"parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </"
+"type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>double precision[] </type> <parameter>search</"
+"parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </"
+"type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4012
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4021
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        (pixels).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_PixelOfValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_SetValue(\n"
+"                                                                ST_AddBand(\n"
+"                                                                        ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                        '8BUI'::"
+"text, 1, 0\n"
+"                                                                ),\n"
+"                                                                1, 1, 0\n"
+"                                                        ),\n"
+"                                                        2, 3, 0\n"
+"                                                ),\n"
+"                                                3, 5, 0\n"
+"                                        ),\n"
+"                                        4, 2, 0\n"
+"                                ),\n"
+"                                5, 4, 255\n"
+"                        )\n"
+"                , 1, ARRAY[1, 255]) AS pixels\n"
+") AS foo\n"
+"\n"
+" val | x | y \n"
+"-----+---+---\n"
+"   1 | 1 | 2\n"
+"   1 | 1 | 3\n"
+"   1 | 1 | 4\n"
+"   1 | 1 | 5\n"
+"   1 | 2 | 1\n"
+"   1 | 2 | 2\n"
+"   1 | 2 | 4\n"
+"   1 | 2 | 5\n"
+"   1 | 3 | 1\n"
+"   1 | 3 | 2\n"
+"   1 | 3 | 3\n"
+"   1 | 3 | 4\n"
+"   1 | 4 | 1\n"
+"   1 | 4 | 3\n"
+"   1 | 4 | 4\n"
+"   1 | 4 | 5\n"
+"   1 | 5 | 1\n"
+"   1 | 5 | 2\n"
+"   1 | 5 | 3\n"
+" 255 | 5 | 4\n"
+"   1 | 5 | 5"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4029
+#, no-c-format
+msgid "Raster Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4033
+#, no-c-format
+msgid "ST_SetGeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4034
+#, no-c-format
+msgid ""
+"Set Georeference 6 georeference parameters in a single call. Numbers should "
+"be separated by white space. Accepts inputs in GDAL or ESRI format. Default "
+"is GDAL."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4038
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>georefcoords</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>format=GDAL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>upperlefty</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scalex</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scaley</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>skewy</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=true</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>crop</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Clip</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>crop</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4064
+#, no-c-format
+msgid ""
+"Set Georeference 6 georeference parameters in a single call. Accepts inputs "
+"in 'GDAL' or 'ESRI' format. Default is GDAL. If 6 coordinates are not "
+"provided will return null."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4067
+#, no-c-format
+msgid "scalex skewy skewx scaley upperleftx upperlefty"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4069
+#, no-c-format
+msgid ""
+"scalex skewy skewx scaley upperleftx + scalex*0.5 upperlefty + scaley*0.5"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4072
+#, no-c-format
+msgid ""
+"If the raster has out-db bands, changing the georeference may result in "
+"incorrect access of the band's externally stored data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4077
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Addition of ST_SetGeoReference(raster, double "
+"precision, ...) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4084
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        0 AS rid, (ST_Metadata(rast)).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        1, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 0.1 0.1', "
+"'GDAL'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 5.1 -4.9', "
+"'ESRI'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3, (ST_Metadata(ST_SetGeoReference(rast, 1, 1, 10, -10, 0.001, "
+"0.001))).*\n"
+"FROM foo\n"
+"\n"
+" rid |     upperleftx     |     upperlefty     | width | height | scalex | "
+"scaley | skewx | skewy | srid | numbands \n"
+"-----+--------------------+--------------------+-------+--------+--------"
+"+--------+-------+-------+------+----------\n"
+"   0 |                  0 |                  0 |     5 |      5 |      1 "
+"|     -1 |     0 |     0 |    0 |        0\n"
+"   1 |                0.1 |                0.1 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   2 | 0.0999999999999996 | 0.0999999999999996 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   3 |                  1 |                  1 |     5 |      5 |     10 "
+"|    -10 | 0.001 | 0.001 |    0 |        0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4089
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4095
+#, no-c-format
+msgid "ST_SetRotation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4096
+#, no-c-format
+msgid "Set the rotation of the raster in radian."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4101
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SetRotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8</type> <parameter>rotation</parameter></paramdef>"
+msgstr ""
+"<funcdef>float8 <function>ST_SetRotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8</type> <parameter>rotation</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:4112
+#, no-c-format
+msgid ""
+"Uniformly rotate the raster. Rotation is in radian. Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4118
+#, no-c-format
+msgid ""
+"SELECT \n"
+"  ST_ScaleX(rast1), ST_ScaleY(rast1), ST_SkewX(rast1), ST_SkewY(rast1),\n"
+"  ST_ScaleX(rast2), ST_ScaleY(rast2), ST_SkewX(rast2), ST_SkewY(rast2) \n"
+"FROM (\n"
+"  SELECT ST_SetRotation(rast, 15) AS rast1, rast as rast2 FROM dummy_rast\n"
+") AS foo;\n"
+"      st_scalex      |      st_scaley      |      st_skewx      |      "
+"st_skewy      | st_scalex | st_scaley | st_skewx | st_skewy\n"
+"---------------------+---------------------+--------------------"
+"+--------------------+-----------+-----------+----------+----------\n"
+"   -1.51937582571764 |   -2.27906373857646 |   1.95086352047135 |   "
+"1.30057568031423 |         2 |         3 |        0 |        0\n"
+" -0.0379843956429411 | -0.0379843956429411 | 0.0325143920078558 | "
+"0.0325143920078558 |      0.05 |     -0.05 |        0 |        0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4131
+#, no-c-format
+msgid "ST_SetScale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4132
+#, no-c-format
+msgid ""
+"Sets the X and Y size of pixels in units of coordinate reference system. "
+"Number units/pixel width/height."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4136
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>xy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetScale</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>x</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>y</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>xy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetScale</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>x</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>y</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4155
+#, no-c-format
+msgid ""
+"Sets the X and Y size of pixels in units of coordinate reference system. "
+"Number units/pixel width/height. If only one unit passed in, assumed X and Y "
+"are the same number."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4158
+#, no-c-format
+msgid ""
+"ST_SetScale is different from <xref linkend=\"RT_ST_Rescale\"/> in that "
+"ST_SetScale do not resample the raster to match the raster extent. It only "
+"changes the metadata (or georeference) of the raster to correct an "
+"originally mis-specified scaling. ST_Rescale results in a raster having "
+"different width and height computed to fit the geographic extent of the "
+"input raster. ST_SetScale do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4160
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In WKTRaster versions this was called ST_SetPixelSize. This "
+"was changed in 2.0.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4166
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetScale(rast, 1.5)\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT ST_ScaleX(rast) As pixx, ST_ScaleY(rast) As pixy, Box3D(rast) As "
+"newbox\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" pixx | pixy |                    newbox\n"
+"------+------+----------------------------------------------\n"
+"  1.5 |  1.5 | BOX(3427927.75 5793244 0, 3427935.25 5793251.5 0)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4167
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetScale(rast, 1.5, 0.55)\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT ST_ScaleX(rast) As pixx, ST_ScaleY(rast) As pixy, Box3D(rast) As "
+"newbox\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" pixx | pixy |                   newbox\n"
+"------+------+--------------------------------------------\n"
+"  1.5 | 0.55 | BOX(3427927.75 5793244 0,3427935.25 5793247 0)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4173
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4179
+#, no-c-format
+msgid "ST_SetSkew"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4180
+#, no-c-format
+msgid ""
+"Sets the georeference X and Y skew (or rotation parameter). If only one is "
+"passed in, sets X and Y to the same value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4184
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>skewxy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetSkew</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewy</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>skewxy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetSkew</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewy</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4202
+#, no-c-format
+msgid ""
+"Sets the georeference X and Y skew (or rotation parameter). If only one is "
+"passed in, sets X and Y to the same value. Refer to <ulink url=\"http://en."
+"wikipedia.org/wiki/World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4209
+#, no-c-format
+msgid ""
+"-- Example 1                    \n"
+"UPDATE dummy_rast SET rast = ST_SetSkew(rast,1,2) WHERE rid = 1;\n"
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast WHERE rid = 1;\n"
+"\n"
+"rid | skewx | skewy |    georef\n"
+"----+-------+-------+--------------\n"
+"  1 |     1 |     2 | 2.0000000000\n"
+"                    : 2.0000000000\n"
+"                    : 1.0000000000\n"
+"                    : 3.0000000000\n"
+"                    : 0.5000000000\n"
+"                    : 0.5000000000"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4211
+#, no-c-format
+msgid ""
+"-- Example 2 set both to same number:\n"
+"UPDATE dummy_rast SET rast = ST_SetSkew(rast,0) WHERE rid = 1;\n"
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast WHERE rid = 1;\n"
+"                        \n"
+" rid | skewx | skewy |    georef\n"
+"-----+-------+-------+--------------\n"
+"   1 |     0 |     0 | 2.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 3.0000000000\n"
+"                     : 0.5000000000\n"
+"                     : 0.5000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4218
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetGeoReference\"/>, <xref linkend=\"RT_ST_SkewX\"/"
+">, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4224
+#, no-c-format
+msgid "ST_SetSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4226
+#, no-c-format
+msgid ""
+"Sets the SRID of a raster to a particular integer srid defined in the "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4231
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:4246
+#, no-c-format
+msgid "Sets the SRID on a raster to a particular integer value."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4249
+#, no-c-format
+msgid ""
+"This function does not transform the raster in any way - it simply sets meta "
+"data defining the spatial ref of the coordinate reference system that it's "
+"currently in. Useful for transformations later."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4259
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4266
+#, no-c-format
+msgid "ST_SetUpperLeft"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4267
+#, no-c-format
+msgid ""
+"Sets the value of the upper left corner of the pixel to projected X and Y "
+"coordinates."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4272
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetUpperLeft</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>y</parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_SetUpperLeft</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>y</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:4284
+#, no-c-format
+msgid ""
+"Set the value of the upper left corner of raster to the projected X "
+"coordinates"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4290
+#, no-c-format
+msgid ""
+"SELECT ST_SetUpperLeft(rast,-71.01,42.37)  \n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4296
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4302
+#, no-c-format
+msgid "ST_Resample"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4303
+#, no-c-format
+msgid ""
+"Resample a raster using a specified resampling algorithm, new dimensions, an "
+"arbitrary grid corner and a set of raster georeferencing attributes defined "
+"or borrowed from another raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4309
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>double "
+"precision </type> <parameter>scalex=0</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>scaley=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>ref</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
+"type> <parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>usescale=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>usescale</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=same_as_rast</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>scalex=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scaley=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridy=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>ref</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
+"type> <parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>usescale=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>usescale</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4359
+#, no-c-format
+msgid ""
+"Resample a raster using a specified resampling algorithm, new dimensions "
+"(width & height), a grid corner (gridx & gridy) and a set of raster "
+"georeferencing attributes (scalex, scaley, skewx & skewy) defined or "
+"borrowed from another raster. If using a reference raster, the two rasters "
+"must have the same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4363
+#, no-c-format
+msgid ""
+"New pixel values are computed using the NearestNeighbor (English or American "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor which is the fastest but produce the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4367 reference_raster.xml:4434
+#, no-c-format
+msgid ""
+"A maxerror percent of 0.125 is used if no <varname>maxerr</varname> is "
+"specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4372 reference_raster.xml:4436
+#: reference_raster.xml:4504 reference_raster.xml:4582
+#, no-c-format
+msgid ""
+"Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp "
+"resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4376 reference_raster.xml:4440
+#: reference_raster.xml:4508 reference_raster.xml:4586
+#: reference_raster.xml:4742
+#, no-c-format
+msgid "Availability: 2.0.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4377
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 Parameter srid removed. Variants with a reference raster no "
+"longer applies the reference raster's SRID. Use ST_Transform() to reproject "
+"raster. Works on rasters with no SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4383
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_Width(orig) AS orig_width,\n"
+"        ST_Width(reduce_100) AS new_width\n"
+"FROM (\n"
+"        SELECT\n"
+"                rast AS orig,\n"
+"                ST_Resample(rast,100,100) AS reduce_100\n"
+"        FROM aerials.boston \n"
+"        WHERE ST_Intersects(rast,\n"
+"                ST_Transform(\n"
+"                        ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, "
+"4326),26986)\n"
+"        )\n"
+"        LIMIT 1\n"
+") AS foo;\n"
+"\n"
+" orig_width | new_width\n"
+"------------+-------------\n"
+"        200 |         100"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4388
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Resize\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4398
+#, no-c-format
+msgid "ST_Rescale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4399
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its scale (or pixel size). New pixel "
+"values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4404
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Rescale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Rescale</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Rescale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Rescale</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4428
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its scale (or pixel size). New pixel "
+"values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4430
+#, no-c-format
+msgid ""
+"<varname>scalex</varname> and <varname>scaley</varname> define the new pixel "
+"size. scaley must often be negative to get well oriented raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4432
+#, no-c-format
+msgid ""
+"When the new scalex or scaley is not a divisor of the raster width or "
+"height, the extent of the resulting raster is expanded to encompass the "
+"extent of the provided raster. If you want to be sure to retain exact input "
+"extent see <xref linkend=\"RT_ST_Resize\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4438
+#, no-c-format
+msgid ""
+"ST_Rescale is different from <xref linkend=\"RT_ST_SetScale\"/> in that "
+"ST_SetScale do not resample the raster to match the raster extent. "
+"ST_SetScale only changes the metadata (or georeference) of the raster to "
+"correct an originally mis-specified scaling. ST_Rescale results in a raster "
+"having different width and height computed to fit the geographic extent of "
+"the input raster. ST_SetScale do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4441 reference_raster.xml:4509
+#: reference_raster.xml:4587
+#, no-c-format
+msgid "Changed: 2.1.0 Works on rasters with no SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4446
+#, no-c-format
+msgid ""
+"A simple example rescaling a raster from a pixel size of 0.001 degree to a "
+"pixel size of 0.0015 degree."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4448
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_PixelWidth(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0)) width\n"
+"\n"
+"   width\n"
+"----------\n"
+"0.001\n"
+"\n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_PixelWidth(ST_Rescale(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, "
+"0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015)) width\n"
+"\n"
+"   width\n"
+"----------\n"
+"0.0015"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4453
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_SetScale\"/>, "
+"<xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4466
+#, no-c-format
+msgid "ST_Reskew"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4467
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its skew (or rotation parameters). New "
+"pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4472
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reskew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>skewxy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reskew</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>skewy</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Reskew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>skewxy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reskew</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>skewy</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4496
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its skew (or rotation parameters). New "
+"pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4498
+#, no-c-format
+msgid ""
+"<varname>skewx</varname> and <varname>skewy</varname> define the new skew."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4500 reference_raster.xml:4578
+#, no-c-format
+msgid ""
+"The extent of the new raster will encompass the extent of the provided "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4502 reference_raster.xml:4580
+#, no-c-format
+msgid ""
+"A maxerror percent of 0.125 if no <varname>maxerr</varname> is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4506
+#, no-c-format
+msgid ""
+"ST_Reskew is different from <xref linkend=\"RT_ST_SetSkew\"/> in that "
+"ST_SetSkew do not resample the raster to match the raster extent. ST_SetSkew "
+"only changes the metadata (or georeference) of the raster to correct an "
+"originally mis-specified skew. ST_Reskew results in a raster having "
+"different width and height computed to fit the geographic extent of the "
+"input raster. ST_SetSkew do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4514
+#, no-c-format
+msgid ""
+"A simple example reskewing a raster from a skew of 0.0 to a skew of 0.0015."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4516
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_Rotation(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0))\n"
+"                                        \n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_Rotation(ST_Reskew(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, "
+"0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4522
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, "
+"<xref linkend=\"RT_ST_SetRotation\"/>, <xref linkend=\"RT_ST_SkewX\"/>, "
+"<xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4528
+#, no-c-format
+msgid "ST_SnapToGrid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4529
+#, no-c-format
+msgid ""
+"Resample a raster by snapping it to a grid. New pixel values are computed "
+"using the NearestNeighbor (english or american spelling), Bilinear, Cubic, "
+"CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4534
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex=DEFAULT 0</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>scaley=DEFAULT 0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex=DEFAULT 0</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>scaley=DEFAULT 0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4573
+#, no-c-format
+msgid ""
+"Resample a raster by snapping it to a grid defined by an arbitrary pixel "
+"corner (gridx & gridy) and optionally a pixel size (scalex & "
+"scaley). New pixel values are computed using the NearestNeighbor (english or "
+"american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling "
+"algorithm. The default is NearestNeighbor which is the fastest but results "
+"in the worst interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4575
+#, no-c-format
+msgid ""
+"<varname>gridx</varname> and <varname>gridy</varname> define any arbitrary "
+"pixel corner of the new grid. This is not necessarily the upper left corner "
+"of the new raster and it does not have to be inside or on the edge of the "
+"new raster extent."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4577
+#, no-c-format
+msgid ""
+"You can optionnal define the pixel size of the new grid with "
+"<varname>scalex</varname> and <varname>scaley</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4584
+#, no-c-format
+msgid ""
+"Use <xref linkend=\"RT_ST_Resample\"/> if you need more control over the "
+"grid parameters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4592
+#, no-c-format
+msgid "A simple example snapping a raster to a slightly different grid."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4594
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_UpperLeftX(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0))\n"
+"                                        \n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_UpperLeftX(ST_SnapToGrid(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, "
+"0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0002, 0.0002))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4600
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4606
+#, no-c-format
+msgid "ST_Resize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4607
+#, no-c-format
+msgid "Resize a raster to a new width/height"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4611
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resize</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>percentwidth</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>percentheight</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbor</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex=DEFAULT 0</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>scaley=DEFAULT 0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4645
+#, no-c-format
+msgid ""
+"Resize a raster to a new width/height. The new width/height can be specified "
+"in exact number of pixels or a percentage of the raster's width/height. The "
+"extent of the the new raster will be the same as the extent of the provided "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4649
+#, no-c-format
+msgid ""
+"New pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4653
+#, no-c-format
+msgid "Variant 1 expects the actual width/height of the output raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4657
+#, no-c-format
+msgid ""
+"Variant 2 expects decimal values between zero (0) and one (1) indicating the "
+"percentage of the input raster's width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4661
+#, no-c-format
+msgid ""
+"Variant 3 takes either the actual width/height of the output raster or a "
+"textual percentage (\"20%\") indicating the percentage of the input raster's "
+"width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4665
+#, no-c-format
+msgid "Availability: 2.1.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4669
+#, no-c-format
+msgid ""
+"WITH foo AS(\n"
+"SELECT\n"
+"        1 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , '50%', '500') AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 500, 100) AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 0.25, 0.9) AS rast\n"
+"), bar AS (\n"
+"        SELECT rid, ST_Metadata(rast) AS meta, rast FROM foo\n"
+")\n"
+"SELECT rid, (meta).* FROM bar\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands \n"
+"-----+------------+------------+-------+--------+--------+--------+-------"
+"+-------+------+----------\n"
+"   1 |          0 |          0 |   500 |    500 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   2 |          0 |          0 |   500 |    100 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   3 |          0 |          0 |   250 |    900 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4674
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_Reskew\"/>, <xref "
+"linkend=\"RT_ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4685
+#, no-c-format
+msgid "ST_Transform"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4686
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified resampling algorithm. Options are "
+"NearestNeighbor, Bilinear, Cubic, CubicSpline, Lanczos defaulting to "
+"NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4690
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Transform</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>algorithm=NearestNeighbor</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>alignto</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex=DEFAULT 0</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>scaley=DEFAULT 0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4724
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified pixel warping algorithm. Uses "
+"'NearestNeighbor' if no algorithm is specified and maxerror percent of 0.125 "
+"if no maxerr is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4728
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a raster (and resamples the pixel values) from "
+"one spatial reference system to another, while ST_SetSRID() simply changes "
+"the SRID identifier of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4732
+#, no-c-format
+msgid ""
+"Unlike the other variants, Variant 3 requires a reference raster as "
+"<varname>alignto</varname>. The transformed raster will be transformed to "
+"the spatial reference system (SRID) of the reference raster and be aligned "
+"(ST_SameAlignment = TRUE) to the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4737
+#, no-c-format
+msgid ""
+"If you find your transformation support is not working right, you may need "
+"to set the environment variable PROJSO to the .so or .dll projection library "
+"your PostGIS is using. This just needs to have the name of the file. So for "
+"example on windows, you would in Control Panel -> System -> Environment "
+"Variables add a system variable called <varname>PROJSO</varname> and set it "
+"to <varname>libproj.dll</varname> (if you are using proj 4.6.1). You'll have "
+"to restart your PostgreSQL service/daemon after this change."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4743
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of ST_Transform(rast, alignto) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4749
+#, no-c-format
+msgid ""
+"SELECT ST_Width(mass_stm) As w_before, ST_Width(wgs_84) As w_after,\n"
+"  ST_Height(mass_stm) As h_before, ST_Height(wgs_84) As h_after\n"
+"        FROM \n"
+"        ( SELECT rast As mass_stm, ST_Transform(rast,4326) As wgs_84\n"
+"  ,  ST_Transform(rast,4326, 'Bilinear') AS wgs_84_bilin\n"
+"                FROM aerials.o_2_boston \n"
+"                        WHERE ST_Intersects(rast,\n"
+"                                ST_Transform(ST_MakeEnvelope(-71.128, "
+"42.2392,-71.1277, 42.2397, 4326),26986) )\n"
+"                LIMIT 1) As foo;\n"
+"                                                \n"
+" w_before | w_after | h_before | h_after\n"
+"----------+---------+----------+---------\n"
+"      200 |     228 |      200 |     170"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4759
+#, no-c-format
+msgid "original mass state plane meters (mass_stm)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4768
+#, no-c-format
+msgid "After transform to wgs 84 long lat (wgs_84)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4777
+#, no-c-format
+msgid ""
+"After transform to wgs 84 long lat with bilinear algorithm instead of NN "
+"default (wgs_84_bilin)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4790
+#, no-c-format
+msgid ""
+"The following shows the difference between using ST_Transform(raster, srid) "
+"and ST_Transform(raster, alignto)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, "
+"600000, 100, -100, 0, 0, 2163), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 300, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                ST_Transform(rast, 4269) AS alignto\n"
+"        FROM foo\n"
+"        LIMIT 1\n"
+"), baz AS (\n"
+"        SELECT\n"
+"                rid,\n"
+"                rast,\n"
+"                ST_Transform(rast, 4269) AS not_aligned,\n"
+"                ST_Transform(rast, alignto) AS aligned\n"
+"        FROM foo\n"
+"        CROSS JOIN bar\n"
+")\n"
+"SELECT\n"
+"        ST_SameAlignment(rast) AS rast,\n"
+"        ST_SameAlignment(not_aligned) AS not_aligned,\n"
+"        ST_SameAlignment(aligned) AS aligned\n"
+"FROM baz\n"
+"\n"
+" rast | not_aligned | aligned \n"
+"------+-------------+---------\n"
+" t    | f           | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4796
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetSRID\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4802
+#, no-c-format
+msgid "Raster Band Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4806
+#, no-c-format
+msgid "ST_SetBandNoDataValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4807
+#, no-c-format
+msgid ""
+"Sets the value for the given band that represents no data. Band 1 is assumed "
+"if no band is specified. To mark a band as having no nodata value, set the "
+"nodata value = NULL."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4811
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetBandNoDataValue</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodatavalue</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetBandNoDataValue</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>nodatavalue</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>forcechecking=false</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SetBandNoDataValue</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodatavalue</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetBandNoDataValue</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>nodatavalue</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>forcechecking=false</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4832
+#, no-c-format
+msgid ""
+"Sets the value that represents no data for the band. Band 1 is assumed if "
+"not specified. This will affect results from <xref linkend=\"RT_ST_Polygon\"/"
+">, <xref linkend=\"RT_ST_DumpAsPolygons\"/>, and the ST_PixelAs...() "
+"functions."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4838
+#, no-c-format
+msgid ""
+"-- change just first band no data value\n"
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetBandNoDataValue(rast,1, 254)  \n"
+"WHERE rid = 2;\n"
+"\n"
+"-- change no data band value of bands 1,2,3\n"
+"UPDATE dummy_rast \n"
+"        SET rast = \n"
+"                ST_SetBandNoDataValue(\n"
+"                        ST_SetBandNoDataValue(\n"
+"                                ST_SetBandNoDataValue(\n"
+"                                        rast,1, 254)\n"
+"                                ,2,99),\n"
+"                                3,108)  \n"
+"                WHERE rid = 2;\n"
+"                \n"
+"-- wipe out the nodata value this will ensure all pixels are considered for "
+"all processing functions\n"
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetBandNoDataValue(rast,1, NULL)  \n"
+"WHERE rid = 2;"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4850
+#, no-c-format
+msgid "ST_SetBandIsNoData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4851
+#, no-c-format
+msgid "Sets the isnodata flag of the band to TRUE."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4856
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetBandIsNoData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_SetBandIsNoData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:4867
+#, no-c-format
+msgid ""
+"Sets the isnodata flag for the band to true. Band 1 is assumed if not "
+"specified. This function should be called only when the flag is considered "
+"dirty. That is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/"
+"> is different using TRUE as last argument and without using it"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4879
+#, no-c-format
+msgid ""
+"-- Create dummy table with one raster column\n"
+"create table dummy_rast (rid integer, rast raster);\n"
+"\n"
+"-- Add raster with two bands, one pixel/band. In the first band, nodatavalue "
+"= pixel value = 3.\n"
+"-- In the second band, nodatavalue = 13, pixel value = 4\n"
+"insert into dummy_rast values(1,\n"
+"(\n"
+"'01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0200' -- nBands (uint16 0)\n"
+"||\n"
+"'17263529ED684A3F' -- scaleX (float64 0.000805965234044584)\n"
+"||\n"
+"'F9253529ED684ABF' -- scaleY (float64 -0.00080596523404458)\n"
+"||\n"
+"'1C9F33CE69E352C0' -- ipX (float64 -75.5533328537098)\n"
+"||\n"
+"'718F0E9A27A44840' -- ipY (float64 49.2824585505576)\n"
+"||\n"
+"'ED50EB853EC32B3F' -- skewX (float64 0.000211812383858707)\n"
+"||\n"
+"'7550EB853EC32B3F' -- skewY (float64 0.000211812383858704)\n"
+"||\n"
+"'E6100000' -- SRID (int32 4326)\n"
+"||\n"
+"'0100' -- width (uint16 1)\n"
+"||\n"
+"'0100' -- height (uint16 1)\n"
+"||\n"
+"'4' -- hasnodatavalue set to true, isnodata value set to false (when it "
+"should be true)\n"
+"||\n"
+"'2' -- first band type (4BUI) \n"
+"||\n"
+"'03' -- novalue==3\n"
+"||\n"
+"'03' -- pixel(0,0)==3 (same that nodata)\n"
+"||\n"
+"'0' -- hasnodatavalue set to false\n"
+"||\n"
+"'5' -- second band type (16BSI)\n"
+"||\n"
+"'0D00' -- novalue==13\n"
+"||\n"
+"'0400' -- pixel(0,0)==4\n"
+")::raster\n"
+");\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"false\n"
+"select st_bandisnodata(rast, 1, TRUE) from dummy_rast where rid = 1; -- "
+"Expected true\n"
+"\n"
+"-- The isnodata flag is dirty. We are going to set it to true\n"
+"update dummy_rast set rast = st_setbandisnodata(rast, 1) where rid = 1;\n"
+"\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"true"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4885
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_BandIsNoData\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4894
+#, no-c-format
+msgid "Raster Band Statistics and Analytics"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4898
+#, no-c-format
+msgid "ST_Count"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4899
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a raster or raster coverage. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the nodata value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4903
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4934
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a raster or raster coverage. "
+"If no band is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4935
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>nodata</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4939
+#, no-c-format
+msgid ""
+"The ST_Count(rastertable, rastercolumn, ...) variants are deprecated as of "
+"2.2.0. Use <xref linkend=\"RT_ST_CountAgg\"/> instead."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4949
+#, no-c-format
+msgid ""
+"--example will count all pixels not 249 and one will count all pixels.  --\n"
+"SELECT rid, ST_Count(ST_SetBandNoDataValue(rast,249)) As exclude_nodata, \n"
+"        ST_Count(ST_SetBandNoDataValue(rast,249),false) As include_nodata\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"                                    \n"
+"rid | exclude_nodata | include_nodata\n"
+"-----+----------------+----------------\n"
+"   2 |             23 |             25"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4954 reference_raster.xml:5015
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4964
+#, no-c-format
+msgid "ST_CountAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4965
+#, no-c-format
+msgid ""
+"Aggregate. Returns the number of pixels in a given band of a set of rasters. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the NODATA value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4971
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>double precision </type> "
+"<parameter>sample_percent</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_CountAgg</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=true</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>crop</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Clip</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>crop</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:4999
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a set of rasters. If no band "
+"is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5000
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>NODATA</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5003
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between zero (0) and one (1)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5010
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        ST_CountAgg(rast, 1, TRUE)\n"
+"FROM foo;\n"
+"\n"
+" st_countagg \n"
+"-------------\n"
+"          20\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5025
+#, no-c-format
+msgid "ST_Histogram"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5026
+#, no-c-format
+msgid ""
+"Returns a set of record summarizing a raster or raster coverage data "
+"distribution separate bin ranges. Number of bins are autocomputed if not "
+"specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5030
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>integer </type> <parameter>bins=autocomputed</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bins</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>right</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>right</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>bins</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>right</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_Histogram</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bins</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>right</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>bins=autocomputed</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>width=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>right=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>integer </type> <parameter>bins=autocomputed</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bins</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>right</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>right</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>bins</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>right</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_Histogram</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bins</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>right</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>bins=autocomputed</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>width=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>right=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:5112
+#, no-c-format
+msgid ""
+"Returns set of records consisting of min, max, count, percent for a given "
+"raster band for each bin. If no band is specified <varname>nband</varname> "
+"defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5113
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>nodata</"
+"varname> value . Set <varname>exclude_nodata_value</varname> to false to get "
+"count all pixels."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5117
+#, no-c-format
+msgid "<parameter>width </parameter><type>double precision[]</type>"
+msgstr "<parameter>width </parameter><type>double precision[]</type>"
+
+#. Tag: para
+#: reference_raster.xml:5118
+#, no-c-format
+msgid ""
+"width: an array indicating the width of each category/bin. If the number of "
+"bins is greater than the number of widths, the widths are repeated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5119
+#, no-c-format
+msgid ""
+"Example: 9 bins, widths are [a, b, c] will have the output be [a, b, c, a, "
+"b, c, a, b, c]"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5122
+#, no-c-format
+msgid "<parameter>bins </parameter><type>integer</type>"
+msgstr "<parameter>bins </parameter><type>integer</type>"
+
+#. Tag: para
+#: reference_raster.xml:5123
+#, no-c-format
+msgid ""
+"Number of breakouts -- this is the number of records you'll get back from "
+"the function if specified. If not specified then the number of breakouts is "
+"autocomputed."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5127
+#, no-c-format
+msgid "<parameter>right </parameter><type>boolean</type>"
+msgstr "<parameter>right </parameter><type>boolean</type>"
+
+#. Tag: para
+#: reference_raster.xml:5128
+#, no-c-format
+msgid ""
+"compute the histogram from the right rather than from the left (default). "
+"This changes the criteria for evaluating a value x from [a, b) to (a, b]"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5135
+#, no-c-format
+msgid ""
+"Example: Single raster tile - compute histograms for bands 1, 2, 3 and "
+"autocompute bins"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5136
+#, no-c-format
+msgid ""
+"SELECT band, (stats).*\n"
+"FROM (SELECT rid, band, ST_Histogram(rast, band) As stats\n"
+"    FROM dummy_rast CROSS JOIN generate_series(1,3) As band\n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+" band |  min  |  max  | count | percent\n"
+"------+-------+-------+-------+---------\n"
+"    1 |   249 |   250 |     2 |    0.08\n"
+"    1 |   250 |   251 |     2 |    0.08\n"
+"    1 |   251 |   252 |     1 |    0.04\n"
+"    1 |   252 |   253 |     2 |    0.08\n"
+"    1 |   253 |   254 |    18 |    0.72\n"
+"    2 |    78 | 113.2 |    11 |    0.44\n"
+"    2 | 113.2 | 148.4 |     4 |    0.16\n"
+"    2 | 148.4 | 183.6 |     4 |    0.16\n"
+"    2 | 183.6 | 218.8 |     1 |    0.04\n"
+"    2 | 218.8 |   254 |     5 |     0.2\n"
+"    3 |    62 | 100.4 |    11 |    0.44\n"
+"    3 | 100.4 | 138.8 |     5 |     0.2\n"
+"    3 | 138.8 | 177.2 |     4 |    0.16\n"
+"    3 | 177.2 | 215.6 |     1 |    0.04\n"
+"    3 | 215.6 |   254 |     4 |    0.16"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5140
+#, no-c-format
+msgid "Example: Just band 2 but for 6 bins"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5141
+#, no-c-format
+msgid ""
+"SELECT (stats).*\n"
+"FROM (SELECT rid, ST_Histogram(rast, 2,6) As stats\n"
+"    FROM dummy_rast \n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+"    min     |    max     | count | percent\n"
+"------------+------------+-------+---------\n"
+"         78 | 107.333333 |     9 |    0.36\n"
+" 107.333333 | 136.666667 |     6 |    0.24\n"
+" 136.666667 |        166 |     0 |       0\n"
+"        166 | 195.333333 |     4 |    0.16\n"
+" 195.333333 | 224.666667 |     1 |    0.04\n"
+" 224.666667 |        254 |     5 |     0.2\n"
+"(6 rows)\n"
+"    \n"
+"-- Same as previous but we explicitly control the pixel value range of each "
+"bin.  \n"
+"SELECT (stats).*\n"
+"FROM (SELECT rid, ST_Histogram(rast, 2,6,ARRAY[0.5,1,4,100,5]) As stats\n"
+"    FROM dummy_rast \n"
+"     WHERE rid=2) As foo;\n"
+"     \n"
+"  min  |  max  | count | percent\n"
+"-------+-------+-------+----------\n"
+"    78 |  78.5 |     1 |     0.08\n"
+"  78.5 |  79.5 |     1 |     0.04\n"
+"  79.5 |  83.5 |     0 |        0\n"
+"  83.5 | 183.5 |    17 |   0.0068\n"
+" 183.5 | 188.5 |     0 |        0\n"
+" 188.5 |   254 |     6 | 0.003664\n"
+"(6 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5146
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5156
+#, no-c-format
+msgid "ST_Quantile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5157
+#, no-c-format
+msgid ""
+"<refpurpose>Compute quantiles for a raster or raster table coverage in the "
+"context of the sample or population. Thus, a value could be examined to be "
+"at the raster's 25%, 50%, 75% percentile.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5161
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>quantiles=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>quantiles</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Quantile</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>quantile</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>quantile=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>quantile</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>quantile</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>double precision <function>ST_Quantile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>quantile</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>quantiles=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>quantiles=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>quantiles</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Quantile</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>quantile</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>quantile=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>quantile</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>quantile</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>double precision <function>ST_Quantile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>quantile</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>quantiles=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:5233
+#, no-c-format
+msgid ""
+"<para>Compute quantiles for a raster or raster table coverage in the context "
+"of the sample or population. Thus, a value could be examined to be at the "
+"raster's 25%, 50%, 75% percentile.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5234 reference_raster.xml:5526
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to false, will also count "
+"pixels with no data."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5241
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
+"--Example will consider only pixels of band 1 that are not 249 and in named "
+"quantiles --\n"
+"\n"
+"SELECT (pvq).*\n"
+"FROM (SELECT ST_Quantile(rast, ARRAY[0.25,0.75]) As pvq\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvq).quantile;\n"
+"                                                                \n"
+" quantile | value\n"
+"----------+-------\n"
+"     0.25 |   253\n"
+"     0.75 |   254\n"
+"   \n"
+"SELECT ST_Quantile(rast, 0.75) As value\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"value\n"
+"------\n"
+"  254"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5242
+#, no-c-format
+msgid ""
+"--real live example.  Quantile of all pixels in band 2 intersecting a "
+"geometry\n"
+"SELECT rid, (ST_Quantile(rast,2)).* As pvc\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"            )\n"
+"ORDER BY value, quantile,rid\n"
+";\n"
+"                                \n"
+"    \n"
+" rid | quantile | value\n"
+"-----+----------+-------\n"
+"   1 |        0 |     0\n"
+"   2 |        0 |     0\n"
+"  14 |        0 |     1\n"
+"  15 |        0 |     2\n"
+"  14 |     0.25 |    37\n"
+"   1 |     0.25 |    42\n"
+"  15 |     0.25 |    47\n"
+"   2 |     0.25 |    50\n"
+"  14 |      0.5 |    56\n"
+"   1 |      0.5 |    64\n"
+"  15 |      0.5 |    66\n"
+"   2 |      0.5 |    77\n"
+"  14 |     0.75 |    81\n"
+"  15 |     0.75 |    87\n"
+"   1 |     0.75 |    94\n"
+"   2 |     0.75 |   106\n"
+"  14 |        1 |   199\n"
+"   1 |        1 |   244\n"
+"   2 |        1 |   255\n"
+"  15 |        1 |   255"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5247
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5258
+#, no-c-format
+msgid "ST_SummaryStats"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5259
+#, no-c-format
+msgid ""
+"Returns summarystats consisting of count, sum, mean, stddev, min, max for a "
+"given raster band of a raster or raster coverage. Band 1 is assumed is no "
+"band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5263
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>record <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>record "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>record <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>record <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:5299 reference_raster.xml:5378
+#, no-c-format
+msgid ""
+"Returns <xref linkend=\"summarystats\"/> consisting of count, sum, mean, "
+"stddev, min, max for a given raster band of a raster or raster coverage. If "
+"no band is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5301
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>nodata</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to false to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5303
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to lower than 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5308
+#, no-c-format
+msgid ""
+"The ST_SummaryStats(rastertable, rastercolumn, ...) variants are deprecated "
+"as of 2.2.0. Use <xref linkend=\"RT_ST_SummaryStatsAgg\"/> instead."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5316
+#, no-c-format
+msgid "Example: Single raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5317
+#, no-c-format
+msgid ""
+"SELECT rid, band, (stats).*\n"
+"FROM (SELECT rid, band, ST_SummaryStats(rast, band) As stats\n"
+"    FROM dummy_rast CROSS JOIN generate_series(1,3) As band\n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+" rid | band | count | sum  |    mean    |  stddev   | min | max\n"
+"-----+------+-------+------+------------+-----------+-----+-----\n"
+"   2 |    1 |    23 | 5821 | 253.086957 |  1.248061 | 250 | 254\n"
+"   2 |    2 |    25 | 3682 |     147.28 | 59.862188 |  78 | 254\n"
+"   2 |    3 |    25 | 3290 |      131.6 | 61.647384 |  62 | 254"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5321
+#, no-c-format
+msgid "Example: Summarize pixels that intersect buildings of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5322
+#, no-c-format
+msgid ""
+"This example took 574ms on PostGIS windows 64-bit with all of Boston "
+"Buildings and aerial Tiles (tiles each 150x150 pixels ~ 134,000 tiles), "
+"~102,000 building records"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5324
+#, no-c-format
+msgid ""
+"WITH \n"
+"-- our features of interest\n"
+"   feat AS (SELECT gid As building_id, geom_26986 As geom FROM buildings AS "
+"b \n"
+"    WHERE gid IN(100, 103,150)\n"
+"   ),\n"
+"-- clip band 2 of raster tiles to boundaries of builds\n"
+"-- then get stats for these clipped regions\n"
+"   b_stats AS\n"
+"        (SELECT  building_id, (stats).*\n"
+"FROM (SELECT building_id, ST_SummaryStats(ST_Clip(rast,2,geom)) As stats\n"
+"    FROM aerials.boston\n"
+"                INNER JOIN feat\n"
+"        ON ST_Intersects(feat.geom,rast) \n"
+" ) As foo\n"
+" )\n"
+"-- finally summarize stats\n"
+"SELECT building_id, SUM(count) As num_pixels\n"
+"  , MIN(min) As min_pval\n"
+"  ,  MAX(max) As max_pval\n"
+"  , SUM(mean*count)/SUM(count) As avg_pval\n"
+"        FROM b_stats\n"
+" WHERE count > 0\n"
+"        GROUP BY building_id\n"
+"        ORDER BY building_id;\n"
+" building_id | num_pixels | min_pval | max_pval |     avg_pval\n"
+"-------------+------------+----------+----------+------------------\n"
+"         100 |       1090 |        1 |      255 | 61.0697247706422\n"
+"         103 |        655 |        7 |      182 | 70.5038167938931\n"
+"         150 |        895 |        2 |      252 | 185.642458100559"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5328
+#, no-c-format
+msgid "Example: Raster coverage"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5329
+#, no-c-format
+msgid ""
+"-- stats for each band --\n"
+"SELECT band, (stats).*\n"
+"FROM (SELECT band, ST_SummaryStats('o_4_boston','rast', band) As stats\n"
+"    FROM generate_series(1,3) As band) As foo;\n"
+"                                    \n"
+" band |  count  |  sum   |       mean       |      stddev      | min | max\n"
+"------+---------+--------+------------------+------------------+-----+-----\n"
+"    1 | 8450000 | 725799 | 82.7064349112426 | 45.6800222638537 |   0 | 255\n"
+"    2 | 8450000 | 700487 | 81.4197705325444 | 44.2161184161765 |   0 | 255\n"
+"    3 | 8450000 | 575943 |  74.682739408284 | 44.2143885481407 |   0 | 255\n"
+"    \n"
+"-- For a table -- will get better speed if set sampling to less than 100%\n"
+"-- Here we set to 25% and get a much faster answer\n"
+"SELECT band, (stats).*\n"
+"FROM (SELECT band, ST_SummaryStats('o_4_boston','rast', band,true,0.25) As "
+"stats\n"
+"    FROM generate_series(1,3) As band) As foo;\n"
+"                                    \n"
+" band |  count  |  sum   |       mean       |      stddev      | min | max\n"
+"------+---------+--------+------------------+------------------+-----+-----\n"
+"    1 | 2112500 | 180686 | 82.6890480473373 | 45.6961043857248 |   0 | 255\n"
+"    2 | 2112500 | 174571 |  81.448503668639 | 44.2252623171821 |   0 | 255\n"
+"    3 | 2112500 | 144364 | 74.6765884023669 | 44.2014869384578 |   0 | 255"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5334
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_Count\"/"
+">, <xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5345
+#, no-c-format
+msgid "ST_SummaryStatsAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5346
+#, no-c-format
+msgid ""
+"Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, "
+"max for a given raster band of a set of raster. Band 1 is assumed is no band "
+"is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5350
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStatsAgg</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=true</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>crop</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Clip</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>crop</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:5380
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>NODATA</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to False to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5382
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between 0 and 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5389
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        (stats).count,\n"
+"        round((stats).sum::numeric, 3),\n"
+"        round((stats).mean::numeric, 3),\n"
+"        round((stats).stddev::numeric, 3),\n"
+"        round((stats).min::numeric, 3),\n"
+"        round((stats).max::numeric, 3)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats\n"
+"        FROM foo\n"
+") bar;\n"
+"\n"
+" count |  round  | round  | round |  round  | round \n"
+"-------+---------+--------+-------+---------+-------\n"
+"    20 | -68.584 | -3.429 | 6.571 | -10.000 | 3.142\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5394
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_Count\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5405
+#, no-c-format
+msgid "ST_ValueCount"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5406
+#, no-c-format
+msgid ""
+"Returns a set of records containing a pixel band value and count of the "
+"number of pixels in a given band of a raster (or a raster coverage) that "
+"have a given set of values. If no band is specified defaults to band 1. By "
+"default nodata value pixels are not counted. and all other values in the "
+"pixel are output and pixel band values are rounded to the nearest integer."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5411
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>searchvalue</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>searchvalues</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>roundto=0</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>OUT value</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>OUT count</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>searchvalues</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>bigint<function>ST_ValueCount</"
+"function></funcdef> <paramdef><type>text </type> <parameter>rastertable</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>rastercolumn</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>searchvalue</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>searchvalues</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>roundto=0</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>OUT value</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>OUT count</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>searchvalues</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>bigint<function>ST_ValueCount</"
+"function></funcdef> <paramdef><type>text </type> <parameter>rastertable</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>rastercolumn</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:5524
+#, no-c-format
+msgid ""
+"Returns a set of records with columns <varname>value</varname> "
+"<varname>count</varname> which contain the pixel band value and count of "
+"pixels in the raster tile or raster coverage of selected band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5525
+#, no-c-format
+msgid ""
+"If no band is specified <varname>nband</varname> defaults to 1. If no "
+"<varname>searchvalues</varname> are specified, will return all pixel values "
+"found in the raster or raster coverage. If one searchvalue is given, will "
+"return an integer instead of records denoting the count of pixels having "
+"that pixel band value"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5533
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
+"--Example will count only pixels of band 1 that are not 249. --\n"
+"\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+"                                                                \n"
+" value | count\n"
+"-------+-------\n"
+"   250 |     2\n"
+"   251 |     1\n"
+"   252 |     2\n"
+"   253 |     6\n"
+"   254 |    12\n"
+"   \n"
+"-- Example will coount all pixels of band 1 including 249 --\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast,1,false) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+"                                    \n"
+" value | count\n"
+"-------+-------\n"
+"   249 |     2\n"
+"   250 |     2\n"
+"   251 |     1\n"
+"   252 |     2\n"
+"   253 |     6\n"
+"   254 |    12\n"
+"   \n"
+"-- Example will count only non-nodata value pixels of band 2\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast,2) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+" value | count\n"
+"-------+-------\n"
+"    78 |     1\n"
+"    79 |     1\n"
+"    88 |     1\n"
+"    89 |     1\n"
+"    96 |     1\n"
+"    97 |     1\n"
+"    98 |     1\n"
+"    99 |     2\n"
+"   112 |     2\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5534
+#, no-c-format
+msgid ""
+"--real live example.  Count all the pixels in an aerial raster tile band 2 "
+"intersecting a geometry \n"
+"-- and return only the pixel band values that have a count > 500\n"
+"SELECT (pvc).value, SUM((pvc).count) As total\n"
+"FROM (SELECT ST_ValueCount(rast,2) As pvc\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"             ) \n"
+"        ) As foo\n"
+"    GROUP BY (pvc).value\n"
+"    HAVING SUM((pvc).count) > 500\n"
+"    ORDER BY (pvc).value;\n"
+"    \n"
+" value | total\n"
+"-------+-----\n"
+"    51 | 502\n"
+"    54 | 521"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5536
+#, no-c-format
+msgid ""
+"-- Just return count of pixels in each raster tile that have value of 100 of "
+"tiles that intersect  a specific geometry --\n"
+"SELECT rid, ST_ValueCount(rast,2,100) As count\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"             ) ;\n"
+"\n"
+" rid | count\n"
+"-----+-------\n"
+"   1 |    56\n"
+"   2 |    95\n"
+"  14 |    37\n"
+"  15 |    64"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5541
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5547
+#, no-c-format
+msgid "Raster Outputs"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5550
+#, no-c-format
+msgid "ST_AsBinary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5551
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the raster without SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:5556
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>outasin=FALSE</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_BandPath</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:5567
+#, no-c-format
+msgid ""
+"Returns the Binary representation of the raster. If <varname>outasin</"
+"varname> is TRUE, out-db bands are treated as in-db."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5571
+#, no-c-format
+msgid ""
+"This is useful in binary cursors to pull data out of the database without "
+"converting it to a string representation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5576
+#, no-c-format
+msgid ""
+"By default, WKB output contains the external file path for out-db bands. If "
+"the client does not have access to the raster file underlying an out-db "
+"band, set <varname>outasin</varname> to TRUE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5580
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of <varname>outasin</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5586
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(rast) As rastbin FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                                         rastbin\n"
+"---------------------------------------------------------------------------------\n"
+"\\001\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000@"
+"\\000\\000\\000\\000\\000\\000\\010@\\\n"
+"000\\000\\000\\000\\000\\000\\340?\\000\\000\\000\\000\\000\\000\\340?"
+"\\000\\000\\000\\000\\000\\00\n"
+"0\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\012\\000\\000\\000\\012\\000\\024\\000"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5593
+#, no-c-format
+msgid "ST_AsGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5594
+#, no-c-format
+msgid ""
+"Return the raster tile in the designated GDAL Raster format. Raster formats "
+"are one of those supported by your compiled library. Use ST_GDALRasters() to "
+"get a list of formats supported by your library."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:5599
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+msgstr ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:5613
+#, no-c-format
+msgid ""
+"Returns the raster tile in the designated format. Arguments are itemized "
+"below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5616
+#, no-c-format
+msgid ""
+"<varname>format</varname> format to output. This is dependent on the drivers "
+"compiled in your libgdal library. Generally available are 'JPEG', 'GTIff', "
+"'PNG'. Use <xref linkend=\"RT_ST_GDALDrivers\"/> to get a list of formats "
+"supported by your library."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5621
+#, no-c-format
+msgid ""
+"<varname>options</varname> text array of GDAL options. Valid options are "
+"dependent on the format. Refer to <ulink url=\"http://www.gdal.org/"
+"frmt_various.html\">GDAL Raster format options</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5626
+#, no-c-format
+msgid ""
+"<varname>srs</varname> The proj4text or srtext (from spatial_ref_sys) to "
+"embed in the image"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5635
+#, no-c-format
+msgid "JPEG Output Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5637
+#, no-c-format
+msgid ""
+"SELECT ST_AsGDALRaster(rast, 'JPEG') As rastjpg\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY['QUALITY=50']) As rastjpg\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5642
+#, no-c-format
+msgid "GTIFF Output Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5644
+#, no-c-format
+msgid ""
+"SELECT ST_AsGDALRaster(rast, 'GTiff') As rastjpg\n"
+"FROM dummy_rast WHERE rid=2;\n"
+"\n"
+"-- Out GeoTiff with jpeg compression, 90% quality\n"
+"SELECT ST_AsGDALRaster(rast, 'GTiff',  \n"
+"  ARRAY['COMPRESS=JPEG', 'JPEG_QUALITY=90'], \n"
+"  4269) As rasttiff\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5651
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5657
+#, no-c-format
+msgid "ST_AsJPEG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5658
+#, no-c-format
+msgid ""
+"Return the raster tile selected bands as a single Joint Photographic Exports "
+"Group (JPEG) image (byte array). If no band is specified and 1 or more than "
+"3 bands, then only the first band is used. If only 3 bands then all 3 bands "
+"are used and mapped to RGB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5662
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>quality</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsJPEG</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer[] </type> <parameter>nbands</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>quality</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>quality</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsJPEG</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer[] </type> <parameter>nbands</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>quality</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:5698
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Joint Photographic "
+"Exports Group Image (JPEG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if "
+"you need to export as less common raster types. If no band is specified and "
+"1 or more than 3 bands, then only the first band is used. If 3 bands then "
+"all 3 bands are used. There are many variants of the function with many "
+"options. These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5701 reference_raster.xml:5792
+#, no-c-format
+msgid "<varname>nband</varname> is for single band exports."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5706
+#, no-c-format
+msgid ""
+"<varname>nbands</varname> is an array of bands to export (note that max is 3 "
+"for JPEG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band "
+"3 to Red, band 2 to green and band 1 to blue"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5711
+#, no-c-format
+msgid ""
+"<varname>quality</varname> number from 0 to 100. The higher the number the "
+"crisper the image."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5716
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL options as defined for JPEG "
+"(look at create_options for JPEG <xref linkend=\"RT_ST_GDALDrivers\"/>). For "
+"JPEG valid ones are <varname>PROGRESSIVE</varname> ON or OFF and "
+"<varname>QUALITY</varname> a range from 0 to 100 and default to 75. Refer to "
+"<ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL Raster format "
+"options</ulink> for more details."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5733
+#, no-c-format
+msgid "Examples: Output"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5735
+#, no-c-format
+msgid ""
+"-- output first 3 bands 75% quality\n"
+"SELECT ST_AsJPEG(rast) As rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"-- output only first band as 90% quality\n"
+"SELECT ST_AsJPEG(rast,1,90) As rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"-- output first 3 bands (but make band 2 Red, band 1 green, and band 3 blue, "
+"progressive and 90% quality\n"
+"SELECT ST_AsJPEG(rast,ARRAY[2,1,3],ARRAY['QUALITY=90','PROGRESSIVE=ON']) As "
+"rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5742
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_AsGDALRaster"
+"\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5748
+#, no-c-format
+msgid "ST_AsPNG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5749
+#, no-c-format
+msgid ""
+"Return the raster tile selected bands as a single portable network graphics "
+"(PNG) image (byte array). If 1, 3, or 4 bands in raster and no bands are "
+"specified, then all bands are used. If more 2 or more than 4 bands and no "
+"bands specified, then only band 1 is used. Bands are mapped to RGB or RGBA "
+"space."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5753
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:5789
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Portable Network "
+"Graphics Image (PNG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if you need "
+"to export as less common raster types. If no band is specified, then the "
+"first 3 bands are exported. There are many variants of the function with "
+"many options. If no <varname>srid</varname> is specified then then srid of "
+"the raster is used. These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5797 reference_raster.xml:5880
+#, no-c-format
+msgid ""
+"<varname>nbands</varname> is an array of bands to export (note that max is 3 "
+"for PNG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band "
+"3 to Red, band 2 to green and band 1 to blue"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5802
+#, no-c-format
+msgid ""
+"<varname>compression</varname> number from 1 to 9. The higher the number the "
+"greater the compression."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5807
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL options as defined for PNG "
+"(look at create_options for PNG of <xref linkend=\"RT_ST_GDALDrivers\"/>). "
+"For PNG valid one is only ZLEVEL (amount of time to spend on compression -- "
+"default 6) e.g. ARRAY['ZLEVEL=9']. WORLDFILE is not allowed since the "
+"function would have to output two outputs. Refer to <ulink url=\"http://www."
+"gdal.org/frmt_various.html\">GDAL Raster format options</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5826
+#, no-c-format
+msgid ""
+"SELECT ST_AsPNG(rast) As rastpng\n"
+"FROM dummy_rast WHERE rid=2;\n"
+"\n"
+"-- export the first 3 bands and map band 3 to Red, band 1 to Green, band 2 "
+"to blue\n"
+"SELECT ST_AsPNG(rast, ARRAY[3,1,2]) As rastpng\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5833
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ColorMap\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_Raster_Applications\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5839
+#, no-c-format
+msgid "ST_AsTIFF"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5840
+#, no-c-format
+msgid ""
+"Return the raster selected bands as a single TIFF image (byte array). If no "
+"band is specified, then will try to use all bands."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5844
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=''</"
+"parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid=sameassource</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=''</"
+"parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid=sameassource</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:5877
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Tagged Image File "
+"Format (TIFF). If no band is specified, will try to use all bands. This is a "
+"wrapper around <xref linkend=\"RT_ST_AsGDALRaster\"/>. Use <xref linkend="
+"\"RT_ST_AsGDALRaster\"/> if you need to export as less common raster types. "
+"There are many variants of the function with many options. If no spatial "
+"reference SRS text is present, the spatial reference of the raster is used. "
+"These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5885
+#, no-c-format
+msgid ""
+"<varname>compression</varname> Compression expression -- JPEG90 (or some "
+"other percent), LZW, JPEG, DEFLATE9."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5890
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL create options as defined for "
+"GTiff (look at create_options for GTiff of <xref linkend=\"RT_ST_GDALDrivers"
+"\"/>). or refer to <ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL "
+"Raster format options</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5895
+#, no-c-format
+msgid ""
+"<varname>srid</varname> srid of spatial_ref_sys of the raster. This is used "
+"to populate the georeference information"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5904
+#, no-c-format
+msgid "Examples: Use jpeg compression 90%"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5906
+#, no-c-format
+msgid ""
+"SELECT ST_AsTIFF(rast, 'JPEG90') As rasttiff\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5913
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5919
+#, no-c-format
+msgid "Raster Processing"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5922
+#, no-c-format
+msgid "Map Algebra"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5926
+#, no-c-format
+msgid "ST_Clip"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5927
+#, no-c-format
+msgid ""
+"Returns the raster clipped by the input geometry. If band number not is "
+"specified, all bands are processed. If <varname>crop</varname> is not "
+"specified or TRUE, the output raster is cropped."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5931
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>boolean[][] </type> "
+"<parameter>noset=NULL</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>nosetvalue</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValues</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:5988
+#, no-c-format
+msgid ""
+"Returns a raster that is clipped by the input geometry <varname>geom</"
+"varname>. If band index is not specified, all bands are processed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5992
+#, no-c-format
+msgid ""
+"Rasters resulting from ST_Clip must have a nodata value assigned for areas "
+"clipped, one for each band. If none are provided and the input raster do not "
+"have a nodata value defined, nodata values of the resulting raster are set "
+"to ST_MinPossibleValue(ST_BandPixelType(rast, band)). When the number of "
+"nodata value in the array is smaller than the number of band, the last one "
+"in the array is used for the remaining bands. If the number of nodata value "
+"is greater than the number of band, the extra nodata values are ignored. All "
+"variants accepting an array of nodata values also accept a single value "
+"which will be assigned to each band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5996
+#, no-c-format
+msgid ""
+"If <varname>crop</varname> is not specified, true is assumed meaning the "
+"output raster is cropped to the intersection of the <varname>geom</"
+"varname>and <varname>rast</varname> extents. If <varname>crop</varname> is "
+"set to false, the new raster gets the same extent as <varname>rast</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6002
+#, no-c-format
+msgid "Enhanced: 2.1.0 Rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6004
+#, no-c-format
+msgid ""
+"Examples here use Massachusetts aerial data available on MassGIS site <ulink "
+"url=\"http://www.mass.gov/mgis/colororthos2008.htm\">MassGIS Aerial Orthos</"
+"ulink>. Coordinates are in Massachusetts State Plane Meters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6010
+#, no-c-format
+msgid "Examples: 1 band clipping"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6012
+#, no-c-format
+msgid ""
+"-- Clip the first band of an aerial tile by a 20 meter buffer.\n"
+"SELECT ST_Clip(rast, 1,\n"
+"                ST_Buffer(ST_Centroid(ST_Envelope(rast)),20)\n"
+"        ) from aerials.boston\n"
+"WHERE rid = 4;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6014
+#, no-c-format
+msgid ""
+"-- Demonstrate effect of crop on final dimensions of raster\n"
+"-- Note how final extent is clipped to that of the geometry\n"
+"-- if crop = true\n"
+"SELECT ST_XMax(ST_Envelope(ST_Clip(rast, 1, clipper, true))) As "
+"xmax_w_trim,\n"
+"        ST_XMax(clipper) As xmax_clipper,\n"
+"        ST_XMax(ST_Envelope(ST_Clip(rast, 1, clipper, false))) As "
+"xmax_wo_trim,\n"
+"        ST_XMax(ST_Envelope(rast)) As xmax_rast_orig\n"
+"FROM (SELECT rast, ST_Buffer(ST_Centroid(ST_Envelope(rast)),6) As clipper\n"
+"        FROM aerials.boston\n"
+"WHERE rid = 6) As foo;\n"
+"\n"
+"   xmax_w_trim    |   xmax_clipper   |   xmax_wo_trim   |  xmax_rast_orig\n"
+"------------------+------------------+------------------+------------------\n"
+" 230657.436173996 | 230657.436173996 | 230666.436173996 | 230666.436173996"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6028 reference_raster.xml:6071
+#: reference_raster.xml:6114
+#, no-c-format
+msgid "Full raster tile before clipping"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6042 reference_raster.xml:6128
+#, no-c-format
+msgid "After Clipping"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6055
+#, no-c-format
+msgid ""
+"Examples: 1 band clipping with no crop and add back other bands unchanged"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6057
+#, no-c-format
+msgid ""
+"-- Same example as before, but we need to set crop to false to be able to "
+"use ST_AddBand\n"
+"-- because ST_AddBand requires all bands be the same Width and height\n"
+"SELECT ST_AddBand(ST_Clip(rast, 1,\n"
+"                ST_Buffer(ST_Centroid(ST_Envelope(rast)),20),false\n"
+"        ), ARRAY[ST_Band(rast,2),ST_Band(rast,3)] ) from aerials.boston\n"
+"WHERE rid = 6;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6085
+#, no-c-format
+msgid "After Clipping - surreal"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6098
+#, no-c-format
+msgid "Examples: Clip all bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6100
+#, no-c-format
+msgid ""
+"-- Clip all bands of an aerial tile by a 20 meter buffer.\n"
+"-- Only difference is we don't specify a specific band to clip\n"
+"-- so all bands are clipped\n"
+"SELECT ST_Clip(rast,\n"
+"          ST_Buffer(ST_Centroid(ST_Envelope(rast)), 20), \n"
+"          false\n"
+"        ) from aerials.boston\n"
+"WHERE rid = 4;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6143
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Intersection\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6153
+#, no-c-format
+msgid "ST_ColorMap"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6154
+#, no-c-format
+msgid ""
+"Creates a new raster of up to four 8BUI bands (grayscale, RGB, RGBA) from "
+"the source raster and a specified band. Band 1 is assumed if not specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:6159
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>colormap=grayscale</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>method=INTERPOLATE</parameter></paramdef>"
+msgstr ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_raster.xml:6169
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>colormap</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>method=INTERPOLATE</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_SetGeoReference</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>georefcoords</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:6181
+#, no-c-format
+msgid ""
+"Apply a <varname>colormap</varname> to the band at <varname>nband</varname> "
+"of <varname>rast</varname> resulting a new raster comprised of up to four "
+"8BUI bands. The number of 8BUI bands in the new raster is determined by the "
+"number of color components defined in <varname>colormap</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6185
+#, no-c-format
+msgid "If <varname>nband</varname> is not specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6187
+#, no-c-format
+msgid ""
+"<varname>colormap</varname> can be a keyword of a pre-defined colormap or a "
+"set of lines defining the value and the color components."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6191
+#, no-c-format
+msgid "Valid pre-defined <varname>colormap</varname> keyword:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6197
+#, no-c-format
+msgid ""
+"<varname>grayscale</varname> or <varname>greyscale</varname> for a one 8BUI "
+"band raster of shades of gray."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6202
+#, no-c-format
+msgid ""
+"<varname>pseudocolor</varname> for a four 8BUI (RGBA) band raster with "
+"colors going from blue to green to red."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6207
+#, no-c-format
+msgid ""
+"<varname>fire</varname> for a four 8BUI (RGBA) band raster with colors going "
+"from black to red to pale yellow."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6212
+#, no-c-format
+msgid ""
+"<varname>bluered</varname> for a four 8BUI (RGBA) band raster with colors "
+"going from blue to pale white to red."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6218
+#, no-c-format
+msgid ""
+"Users can pass a set of entries (one per line) to <varname>colormap</"
+"varname> to specify custom colormaps. Each entry generally consists of five "
+"values: the pixel value and corresponding Red, Green, Blue, Alpha components "
+"(color components between 0 and 255). Percent values can be used instead of "
+"pixel values where 0% and 100% are the minimum and maximum values found in "
+"the raster band. Values can be separated with commas (','), tabs, colons "
+"(':') and/or spaces. The pixel value can be set to <emphasis>nv</emphasis>, "
+"<emphasis>null</emphasis> or <emphasis>nodata</emphasis> for the NODATA "
+"value. An example is provided below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6222
+#, no-c-format
+msgid ""
+"5 0 0 0 255\n"
+"4 100:50 55 255\n"
+"1 150,100 150 255\n"
+"0% 255 255 255 255\n"
+"nv 0 0 0 0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6224
+#, no-c-format
+msgid ""
+"The syntax of <varname>colormap</varname> is similar to that of the color-"
+"relief mode of GDAL <ulink url=\"http://www.gdal.org/gdaldem."
+"html#gdaldem_color_relief\">gdaldem</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6228
+#, no-c-format
+msgid "Valid keywords for <varname>method</varname>:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6234
+#, no-c-format
+msgid ""
+"<varname>INTERPOLATE</varname> to use linear interpolation to smoothly blend "
+"the colors between the given pixel values"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6239
+#, no-c-format
+msgid ""
+"<varname>EXACT</varname> to strictly match only those pixels values found in "
+"the colormap. Pixels whose value does not match a colormap entry will be set "
+"to 0 0 0 0 (RGBA)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6244
+#, no-c-format
+msgid ""
+"<varname>NEAREST</varname> to use the colormap entry whose value is closest "
+"to the pixel value"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6251
+#, no-c-format
+msgid ""
+"A great reference for colormaps is <ulink url=\"http://www.colorbrewer2.org"
+"\">ColorBrewer</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6256
+#, no-c-format
+msgid ""
+"The resulting bands of new raster will have no NODATA value set. Use <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/> to set a NODATA value if one is "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6266
+#, no-c-format
+msgid "This is a junk table to play with"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6268
+#, no-c-format
+msgid ""
+"-- setup test raster table --\n"
+"DROP TABLE IF EXISTS funky_shapes;\n"
+"CREATE TABLE funky_shapes(rast raster);\n"
+"\n"
+"INSERT INTO funky_shapes(rast)\n"
+"WITH ref AS (\n"
+"        SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_Union(rast)\n"
+"FROM (\n"
+"        SELECT \n"
+"                ST_AsRaster(\n"
+"                        ST_Rotate(\n"
+"                                ST_Buffer(\n"
+"                                        ST_GeomFromText('LINESTRING(0 2,50 "
+"50,150 150,125 50)'),\n"
+"                                        i*2\n"
+"                                ),\n"
+"                                pi() * i * 0.125, ST_Point(50,50)\n"
+"                        ),\n"
+"                        ref.rast, '8BUI'::text, i * 5\n"
+"                ) AS rast\n"
+"        FROM ref\n"
+"        CROSS JOIN generate_series(1, 10, 3) AS i\n"
+") AS shapes;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6270
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_NumBands(rast) As n_orig,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'greyscale')) As ngrey,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'pseudocolor')) As npseudo,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'fire')) As nfire,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'bluered')) As nbluered,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As nred\n"
+"FROM funky_shapes;"
+msgstr ""
+
+#. Tag: screen
+#: reference_raster.xml:6272
+#, no-c-format
+msgid ""
+"n_orig | ngrey | npseudo | nfire | nbluered | nred\n"
+"--------+-------+---------+-------+----------+------\n"
+"      1 |     1 |       4 |     4 |        4 |    3"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6276
+#, no-c-format
+msgid "Examples: Compare different color map looks using ST_AsPNG"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6277
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_AsPNG(rast) As orig_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1,'greyscale')) As grey_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'pseudocolor')) As pseudo_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'nfire')) As fire_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'bluered')) As bluered_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As red_png\n"
+"FROM funky_shapes;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6291
+#, no-c-format
+msgid "orig_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6305
+#, no-c-format
+msgid "grey_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6319
+#, no-c-format
+msgid "pseudo_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6335
+#, no-c-format
+msgid "fire_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6349
+#, no-c-format
+msgid "bluered_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6363
+#, no-c-format
+msgid "red_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6377
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsRaster\"/> <xref linkend=\"RT_ST_MapAlgebra\"/>, "
+"<xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6391
+#, no-c-format
+msgid "ST_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6392
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a raster or a set of geometry-pixelvalue pairs "
+"representing the shared portion of two rasters or the geometrical "
+"intersection of a vectorization of the raster and a geometry.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6396
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>band_num=1</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof geomval "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band_num</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Intersection</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>nodataval</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef choice=\"opt\"><type>text "
+"</type> <parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>nodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num1</parameter></paramdef> <paramdef><type>raster </"
+"type> <parameter>rast2</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num2</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>nodataval</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Intersection</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num1</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>rast2</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num2</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>band_num=1</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof geomval "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band_num</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Intersection</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>nodataval</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef choice=\"opt\"><type>text "
+"</type> <parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>nodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num1</parameter></paramdef> <paramdef><type>raster </"
+"type> <parameter>rast2</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num2</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>nodataval</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Intersection</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num1</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>rast2</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num2</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:6456
+#, no-c-format
+msgid ""
+"<para>Returns a raster or a set of geometry-pixelvalue pairs representing "
+"the shared portion of two rasters or the geometrical intersection of a "
+"vectorization of the raster and a geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6460
+#, no-c-format
+msgid ""
+"The first three variants, returning a setof geomval, works in vector space. "
+"The raster is first vectorized (using ST_DumpAsPolygon) into a set of "
+"geomval rows and those rows are then intersected with the geometry using the "
+"ST_Intersection(geometry, geometry) PostGIS function. Geometries "
+"intersecting only with a nodata value area of a raster returns an empty "
+"geometry. They are normally excluded from the results by the proper usage of "
+"ST_Intersect in the WHERE clause."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6464
+#, no-c-format
+msgid ""
+"You can access the geometry and the value parts of the resulting set of "
+"geomval by surrounding them with parenthesis and adding '.geom' or '.val' at "
+"the end of the expression. e.g. (ST_Intersection(rast, geom)).geom"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6468
+#, no-c-format
+msgid ""
+"The other variants, returning a raster, works in raster space. They are "
+"using the two rasters version of ST_MapAlgebraExpr to perform the "
+"intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6472
+#, no-c-format
+msgid ""
+"The extent of the resulting raster corresponds to the geometrical "
+"intersection of the two raster extents. The resulting raster includes "
+"'BAND1', 'BAND2' or 'BOTH' bands, following what is passed as the "
+"<varname>returnband</varname> parameter. Nodata value areas present in any "
+"band results in nodata value areas in every bands of the result. In other "
+"words, any pixel intersecting with a nodata value pixel becomes a nodata "
+"value pixel in the result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6476
+#, no-c-format
+msgid ""
+"Rasters resulting from ST_Intersection must have a nodata value assigned for "
+"areas not intersecting. You can define or replace the nodata value for any "
+"resulting band by providing a <varname>nodataval[]</varname> array of one or "
+"two nodata values depending if you request 'BAND1', 'BAND2' or 'BOTH' bands. "
+"The first value in the array replace the nodata value in the first band and "
+"the second value replace the nodata value in the second band. If one input "
+"band do not have a nodata value defined and none are provided as an array, "
+"one is chosen using the ST_MinPossibleValue function. All variant accepting "
+"an array of nodata value can also accept a single value which will be "
+"assigned to each requested band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6480
+#, no-c-format
+msgid "In all variants, if no band number is specified band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6485
+#, no-c-format
+msgid ""
+"To get more control on the resulting extent or on what to return when "
+"encountering a nodata value, use the two rasters version of <xref linkend="
+"\"RT_ST_MapAlgebraExpr2\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6491
+#, no-c-format
+msgid ""
+"To compute the intersection of a raster band with a geometry in raster "
+"space, use <xref linkend=\"RT_ST_Clip\"/>. ST_Clip works on multiple bands "
+"rasters and does not return a band corresponding to the rasterized geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6497
+#, no-c-format
+msgid ""
+"ST_Intersection should be used in conjunction with ST_Intersects and an "
+"index on the raster column and/or the geometry column."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6502
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 - Intersection in the raster space was introduced. In "
+"earlier pre-2.0.0 versions, only intersection performed in vector space were "
+"supported."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6508
+#, no-c-format
+msgid "Examples: Geometry, Raster -- resulting in geometry vals"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6510
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        foo.rid,\n"
+"        foo.gid,\n"
+"        ST_AsText((foo.geomval).geom) As geomwkt,\n"
+"        (foo.geomval).val\n"
+"FROM (\n"
+"        SELECT\n"
+"                A.rid,\n"
+"                g.gid,\n"
+"                ST_Intersection(A.rast, g.geom) As geomval\n"
+"        FROM dummy_rast AS A\n"
+"        CROSS JOIN (\n"
+"                VALUES\n"
+"                        (1, ST_Point(3427928, 5793243.85) ),\n"
+"                        (2, ST_GeomFromText('LINESTRING(3427927.85 "
+"5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)')),\n"
+"                        (3, ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"        ) As g(gid,geom)\n"
+"        WHERE A.rid = 2\n"
+") As foo;\n"
+"\n"
+" rid | gid |      "
+"geomwkt                                                                                                "
+"| val\n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------\n"
+"   2 |   1 | POINT(3427928 "
+"5793243.85)                                                                        "
+"| 249\n"
+"   2 |   1 | POINT(3427928 "
+"5793243.85)                                                                        "
+"| 253\n"
+"   2 |   2 | POINT(3427927.85 "
+"5793243.75)                                                                | "
+"254\n"
+"   2 |   2 | POINT(3427927.8 "
+"5793243.8)                                                                        "
+"| 251\n"
+"   2 |   2 | POINT(3427927.8 "
+"5793243.8)                                                                        "
+"| 253\n"
+"   2 |   2 | LINESTRING(3427927.8 5793243.75,3427927.8 5793243.8)           "
+"| 252\n"
+"   2 |   2 | MULTILINESTRING((3427927.8 5793243.8,3427927.8 5793243.75),...) "
+"| 250\n"
+"   2 |   3 | GEOMETRYCOLLECTION EMPTY"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6514
+#, no-c-format
+msgid "Example: Raster, Geometry -- resulting is a raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6515
+#, no-c-format
+msgid "Examples coming soon"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6521
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Intersects\"/>, <xref linkend="
+"\"RT_ST_MapAlgebraExpr2\"/>, <xref linkend=\"RT_ST_Clip\"/>, <xref linkend="
+"\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6533 reference_raster.xml:6780
+#, no-c-format
+msgid "ST_MapAlgebra"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6534
+#, no-c-format
+msgid ""
+"Callback function version - Returns a one-band raster given one or more "
+"input rasters, band indexes and one user-specified callback function."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6540
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>rastbandarg[] </type> <parameter>rastbandargset</parameter></"
+"paramdef> <paramdef><type>regprocedure </type> <parameter>callbackfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>rastbandarg[] </type> <parameter>rastbandargset</parameter></"
+"paramdef> <paramdef><type>regprocedure </type> <parameter>callbackfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:6601
+#, no-c-format
+msgid ""
+"Returns a one-band raster given one or more input rasters, band indexes and "
+"one user-specified callback function."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6607
+#, no-c-format
+msgid "rast,rast1,rast2, rastbandargset"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6609
+#, no-c-format
+msgid "Rasters on which the map algebra process is evaluated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6610
+#, no-c-format
+msgid ""
+"<varname>rastbandargset</varname> allows the use of a map algebra operation "
+"on many rasters and/or many bands. See example Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6615
+#, no-c-format
+msgid "nband, nband1, nband2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6617
+#, no-c-format
+msgid ""
+"Band numbers of the raster to be evaluated. nband can be an integer or "
+"integer[] denoting the bands. nband1 is band on rast1 and nband2 is band on "
+"rast2 for hte 2 raster/2band case."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6623
+#, no-c-format
+msgid "callbackfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6625
+#, no-c-format
+msgid ""
+"The <varname>callbackfunc</varname> parameter must be the name and signature "
+"of an SQL or PL/pgSQL function, cast to a regprocedure. An example PL/pgSQL "
+"function example is: <programlisting>\n"
+"CREATE OR REPLACE FUNCTION sample_callbackfunc(value double precision[][][], "
+"position integer[][], VARIADIC userargs text[])\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        BEGIN\n"
+"                RETURN 0;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE;\n"
+"                                                                        </"
+"programlisting> The <varname>callbackfunc</varname> must have three "
+"arguments: a 3-dimension double precision array, a 2-dimension integer array "
+"and a variadic 1-dimension text array. The first argument <varname>value</"
+"varname> is the set of values (as double precision) from all input rasters. "
+"The three dimensions (where indexes are 1-based) are: raster #, row y, "
+"column x. The second argument <varname>position</varname> is the set of "
+"pixel positions from the output raster and input rasters. The outer "
+"dimension (where indexes are 0-based) is the raster #. The position at outer "
+"dimension index 0 is the output raster's pixel position. For each outer "
+"dimension, there are two elements in the inner dimension for X and Y. The "
+"third argument <varname>userargs</varname> is for passing through any user-"
+"specified arguments."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6632
+#, no-c-format
+msgid ""
+"Passing a <type>regprocedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is: <programlisting>\n"
+"'sample_callbackfunc(double precision[], integer[], text[])'::regprocedure\n"
+"                                                                        </"
+"programlisting> Note that the argument contains the name of the function, "
+"the types of the function arguments, quotes around the name and argument "
+"types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6644 reference_raster.xml:6894
+#: reference_raster.xml:7189 reference_raster.xml:7743
+#, no-c-format
+msgid "pixeltype"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6646
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, the one band of the new raster "
+"will be of that pixeltype. If pixeltype is passed NULL or left out, the new "
+"raster band will have the same pixeltype as the specified band of the first "
+"raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the "
+"specified band of the appropriate raster (for extent types: SECOND, LAST). "
+"If in doubt, always specify <varname>pixeltype</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6649
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6656 reference_raster.xml:6902
+#: reference_raster.xml:7198
+#, no-c-format
+msgid "extenttype"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6658
+#, no-c-format
+msgid ""
+"Possible values are INTERSECTION (default), UNION, FIRST (default for one "
+"raster variants), SECOND, LAST, CUSTOM."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6665
+#, no-c-format
+msgid "customextent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6667
+#, no-c-format
+msgid ""
+"If <varname>extentype</varname> is CUSTOM, a raster must be provided for "
+"<varname>customextent</varname>. See example 4 of Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6674
+#, no-c-format
+msgid "distancex"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6676
+#, no-c-format
+msgid ""
+"The distance in pixels from the reference cell. So width of resulting matrix "
+"would be <code>2*distancex + 1</code>.If not specified only the reference "
+"cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6683
+#, no-c-format
+msgid "distancey"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6685
+#, no-c-format
+msgid ""
+"The distance in pixels from reference cell in y direction. Height of "
+"resulting matrix would be <code>2*distancey + 1</code> .If not specified "
+"only the reference cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6692
+#, no-c-format
+msgid "userargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6694
+#, no-c-format
+msgid ""
+"The third argument to the <varname>callbackfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments are passed "
+"through to the specified <varname>callbackfunc</varname>, and are contained "
+"in the <varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6702 reference_raster.xml:7518
+#: reference_raster.xml:7637
+#, no-c-format
+msgid ""
+"For more information about the VARIADIC keyword, please refer to the "
+"PostgreSQL documentation and the \"SQL Functions with Variable Numbers of "
+"Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6708
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>callbackfunc</varname> is "
+"required, regardless of whether you choose to pass any arguments to the "
+"callback function for processing or not."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6713
+#, no-c-format
+msgid ""
+"Variant 1 accepts an array of <varname>rastbandarg</varname> allowing the "
+"use of a map algebra operation on many rasters and/or many bands. See "
+"example Variant 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6717
+#, no-c-format
+msgid ""
+"Variants 2 and 3 operate upon one or more bands of one raster. See example "
+"Variant 2 and 3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6721
+#, no-c-format
+msgid ""
+"Variant 4 operate upon two rasters with one band per raster. See example "
+"Variant 4."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6732 reference_raster.xml:6754
+#, no-c-format
+msgid "One raster, one band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6733
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(rast, 1)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6735 reference_raster.xml:6751
+#, no-c-format
+msgid "One raster, several bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6736
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(rast, 3), ROW(rast, 1), ROW(rast, 3), ROW(rast, "
+"2)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6738
+#, no-c-format
+msgid "Several rasters, several bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6739
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(t1.rast, 3), ROW(t2.rast, 1), ROW(t2.rast, 3), "
+"ROW(t1.rast, 2)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6741
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage with neighborhood. This query only "
+"works with PostgreSQL 9.1 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6742
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rid,\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(ST_Union(t2.rast), 1)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure,\n"
+"                '32BUI',\n"
+"                'CUSTOM', t1.rast,\n"
+"                1, 1\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 4\n"
+"        AND t2.rid BETWEEN 0 AND 8\n"
+"        AND ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rid, t1.rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6744
+#, no-c-format
+msgid ""
+"Example like the prior one for tiles of a coverage with neighborhood but "
+"works with PostgreSQL 9.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6745
+#, no-c-format
+msgid ""
+"WITH src AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"WITH foo AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_Union(t2.rast) AS rast\n"
+"        FROM src t1\n"
+"        JOIN src t2\n"
+"                ON ST_Intersects(t1.rast, t2.rast)\n"
+"                AND t2.rid BETWEEN 0 AND 8\n"
+"        WHERE t1.rid = 4\n"
+"        GROUP BY t1.rid\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_MapAlgebra(\n"
+"                        ARRAY[ROW(t2.rast, 1)]::rastbandarg[],\n"
+"                        'raster_nmapalgebra_test(double precision[], int[], "
+"text[])'::regprocedure,\n"
+"                        '32BUI',\n"
+"                        'CUSTOM', t1.rast,\n"
+"                        1, 1\n"
+"                ) AS rast\n"
+"        FROM src t1\n"
+"        JOIN foo t2\n"
+"                ON t1.rid = t2.rid \n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_Metadata(rast)),\n"
+"        (ST_BandMetadata(rast, 1)),\n"
+"        ST_Value(rast, 1, 1, 1)\n"
+"FROM bar;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6749
+#, no-c-format
+msgid "Examples: Variants 2 and 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6752
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                rast, ARRAY[3, 1, 3, 2]::integer[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6755
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                rast, 2,\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6759
+#, no-c-format
+msgid "Examples: Variant 4"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6761
+#, no-c-format
+msgid "Two rasters, two bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6762
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6769
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra_expr\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6781
+#, no-c-format
+msgid ""
+"<refpurpose>Expression version - Returns a one-band raster given one or two "
+"input rasters, band indexes and one or more user-specified SQL expressions.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6787
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebra</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>expression</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=same_as_rast</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>scalex=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scaley=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridy=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>ref</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
+"type> <parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>usescale=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>usescale</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:6838
+#, no-c-format
+msgid ""
+"<para>Expression version - Returns a one-band raster given one or two input "
+"rasters, band indexes and one or more user-specified SQL expressions.</para>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6846
+#, no-c-format
+msgid "Description: Variants 1 and 2 (one raster)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6848
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If <varname>nband</varname> is not "
+"provided, band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6852 reference_raster.xml:7054
+#: reference_raster.xml:7502
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL, then the new raster "
+"band will have the same pixeltype as the input <varname>rast</varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6857
+#, no-c-format
+msgid "Keywords permitted for <varname>expression</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6860
+#, no-c-format
+msgid "<varname>[rast]</varname> - Pixel value of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6863
+#, no-c-format
+msgid "<varname>[rast.val]</varname> - Pixel value of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6866
+#, no-c-format
+msgid ""
+"<varname>[rast.x]</varname> - 1-based pixel column of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6869
+#, no-c-format
+msgid ""
+"<varname>[rast.y]</varname> - 1-based pixel row of the pixel of interest"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6878
+#, no-c-format
+msgid "Description: Variants 3 and 4 (two raster)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6880 reference_raster.xml:7174
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation to the two bands defined by the <varname>expression</"
+"varname> on the two input raster bands <varname>rast1</varname>, "
+"(<varname>rast2</varname>). If no <varname>band1</varname>, <varname>band2</"
+"varname> is specified band 1 is assumed. The resulting raster will be "
+"aligned (scale, skew and pixel corners) on the grid defined by the first "
+"raster. The resulting raster will have the extent defined by the "
+"<varname>extenttype</varname> parameter."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6886 reference_raster.xml:7180
+#, no-c-format
+msgid "expression"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6888 reference_raster.xml:7182
+#, no-c-format
+msgid ""
+"A PostgreSQL algebraic expression involving the two rasters and PostgreSQL "
+"defined functions/operators that will define the pixel value when pixels "
+"intersect. e.g. (([rast1] + [rast2])/2.0)::integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6896 reference_raster.xml:7191
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, left out or set to NULL. If not passed in "
+"or set to NULL, will default to the pixeltype of the first raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6904 reference_raster.xml:7200
+#, no-c-format
+msgid "Controls the extent of resulting raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6910 reference_raster.xml:7203
+#, no-c-format
+msgid ""
+"<varname>INTERSECTION</varname> - The extent of the new raster is the "
+"intersection of the two rasters. This is the default."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6915 reference_raster.xml:7208
+#, no-c-format
+msgid ""
+"<varname>UNION</varname> - The extent of the new raster is the union of the "
+"two rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6920 reference_raster.xml:7213
+#, no-c-format
+msgid ""
+"<varname>FIRST</varname> - The extent of the new raster is the same as the "
+"one of the first raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6925 reference_raster.xml:7218
+#, no-c-format
+msgid ""
+"<varname>SECOND</varname> - The extent of the new raster is the same as the "
+"one of the second raster."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6933 reference_raster.xml:7227
+#, no-c-format
+msgid "nodata1expr"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6935 reference_raster.xml:7229
+#, no-c-format
+msgid ""
+"An algebraic expression involving only <varname>rast2</varname> or a "
+"constant that defines what to return when pixels of <varname>rast1</varname> "
+"are nodata values and spatially corresponding rast2 pixels have values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6941 reference_raster.xml:7236
+#, no-c-format
+msgid "nodata2expr"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6943 reference_raster.xml:7238
+#, no-c-format
+msgid ""
+"An algebraic expression involving only <varname>rast1</varname> or a "
+"constant that defines what to return when pixels of <varname>rast2</varname> "
+"are nodata values and spatially corresponding rast1 pixels have values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6949 reference_raster.xml:7245
+#, no-c-format
+msgid "nodatanodataval"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6951 reference_raster.xml:7247
+#, no-c-format
+msgid ""
+"A numeric constant to return when spatially corresponding rast1 and rast2 "
+"pixels are both nodata values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6959
+#, no-c-format
+msgid ""
+"Keywords permitted in <varname>expression</varname>, <varname>nodata1expr</"
+"varname> and <varname>nodata2expr</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6962
+#, no-c-format
+msgid ""
+"<varname>[rast1]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6965
+#, no-c-format
+msgid ""
+"<varname>[rast1.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6968
+#, no-c-format
+msgid ""
+"<varname>[rast1.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6971
+#, no-c-format
+msgid ""
+"<varname>[rast1.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6974
+#, no-c-format
+msgid ""
+"<varname>[rast2]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6977
+#, no-c-format
+msgid ""
+"<varname>[rast2.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6980
+#, no-c-format
+msgid ""
+"<varname>[rast2.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6983
+#, no-c-format
+msgid ""
+"<varname>[rast2.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6991
+#, no-c-format
+msgid "Examples: Variants 1 and 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6993
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 1, 1, 0, 0, 0), "
+"'32BF', 1, -1) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(rast, 1, NULL, 'ceil([rast]*[rast.x]/[rast.y]+[rast."
+"val])')\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6997
+#, no-c-format
+msgid "Examples: Variant 3 and 4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6999
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                '([rast2] + [rast1.val]) / 2'\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7005
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7015 reference_raster.xml:7129
+#, no-c-format
+msgid "ST_MapAlgebraExpr"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7016
+#, no-c-format
+msgid ""
+"1 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the input raster band and of "
+"pixeltype provided. Band 1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7020
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:7045 reference_raster.xml:7169
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra_expr\"/> "
+"instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7050
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If no <varname>band</varname> is "
+"specified band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7058
+#, no-c-format
+msgid ""
+"In the expression you can use the term <varname>[rast]</varname> to refer to "
+"the pixel value of the original band, <varname>[rast.x]</varname> to refer "
+"to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to "
+"the 1-based pixel row index."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7068 reference_raster.xml:7267
+#: reference_raster.xml:7531
+#, no-c-format
+msgid ""
+"Create a new 1 band raster from our original that is a function of modulo 2 "
+"of the original raster band."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7069
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,"
+"NULL,'mod([rast],2)') WHERE rid = 2;\n"
+"\n"
+"SELECT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 3) AS i\n"
+"CROSS JOIN generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7071
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to be 0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7072
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"UPDATE dummy_rast SET\n"
+"        map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN [rast] BETWEEN "
+"100 and 250 THEN 1 WHEN [rast] = 252 THEN 2 WHEN [rast] BETWEEN 253 and 254 "
+"THEN 3 ELSE 0 END', '0')\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast2, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 5) AS i\n"
+"CROSS JOIN generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT\n"
+"        ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7086 reference_raster.xml:7546
+#, no-c-format
+msgid "original (column rast-view)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7100 reference_raster.xml:7554
+#, no-c-format
+msgid "rast_view_ma"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7111 reference_raster.xml:7562
+#, no-c-format
+msgid ""
+"Create a new 3 band raster same pixel type from our original 3 band raster "
+"with first band altered by map algebra and remaining 2 bands unaltered."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7112
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(rast_view),\n"
+"                                ST_MapAlgebraExpr(rast_view,1,"
+"NULL,'tan([rast])*[rast]')\n"
+"                        ), \n"
+"                        ST_Band(rast_view,2)\n"
+"                ),\n"
+"                ST_Band(rast_view, 3) As rast_view_ma\n"
+"        )\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7117
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref "
+"linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7130
+#, no-c-format
+msgid ""
+"2 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the two input raster bands and of "
+"pixeltype provided. band 1 of each raster is assumed if no band numbers are "
+"specified. The resulting raster will be aligned (scale, skew and pixel "
+"corners) on the grid defined by the first raster and have its extent defined "
+"by the \"extenttype\" parameter. Values for \"extenttype\" can be: "
+"INTERSECTION, UNION, FIRST, SECOND."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7136
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:7254
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or no pixel type "
+"specified, then the new raster band will have the same pixeltype as the "
+"input <varname>rast1</varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7257
+#, no-c-format
+msgid ""
+"Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> "
+"to refer to the pixel value of the original raster bands and <varname>[rast1."
+"x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row "
+"positions of the pixels."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7265
+#, no-c-format
+msgid "Example: 2 Band Intersection and Union"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7268
+#, no-c-format
+msgid ""
+"--Create a cool set of rasters --\n"
+"DROP TABLE IF EXISTS fun_shapes; \n"
+"CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast "
+"raster);\n"
+"\n"
+"-- Insert some cool shapes around Boston in Massachusetts state plane meters "
+"--\n"
+"INSERT INTO fun_shapes(fun_name, rast)\n"
+"VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, "
+"901930,26986),200,200,'8BUI',0,0));\n"
+"\n"
+"INSERT INTO fun_shapes(fun_name,rast)\n"
+"WITH ref(rast) AS (SELECT rast FROM fun_shapes WHERE fun_name = 'ref' ) \n"
+"SELECT 'area' AS fun_name, ST_AsRaster(ST_Buffer(ST_SetSRID(ST_Point(236229, "
+"900930),26986), 1000), \n"
+"                        ref.rast,'8BUI', 10, 0) As rast\n"
+"FROM ref\n"
+"UNION ALL\n"
+"SELECT 'rand bubbles', \n"
+"                         ST_AsRaster( \n"
+"                         (SELECT ST_Collect(geom)\n"
+"        FROM (SELECT ST_Buffer(ST_SetSRID(ST_Point(236229 + i*random()*100, "
+"900930 + j*random()*100),26986), random()*20) As geom\n"
+"                        FROM generate_series(1,10) As i, "
+"generate_series(1,10) As j\n"
+"                        ) As foo ), ref.rast,'8BUI', 200, 0) \n"
+"FROM ref;\n"
+"\n"
+"--map them -\n"
+"SELECT  ST_MapAlgebraExpr(\n"
+"                area.rast, bub.rast, '[rast2.val]', '8BUI', 'INTERSECTION', "
+"'[rast2.val]', '[rast1.val]') As interrast,\n"
+"                ST_MapAlgebraExpr(\n"
+"                        area.rast, bub.rast, '[rast2.val]', '8BUI', 'UNION', "
+"'[rast2.val]', '[rast1.val]') As unionrast\n"
+"FROM \n"
+"  (SELECT rast FROM fun_shapes WHERE\n"
+" fun_name = 'area') As area\n"
+"CROSS JOIN  (SELECT rast \n"
+"FROM fun_shapes WHERE\n"
+" fun_name = 'rand bubbles') As bub"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7282
+#, no-c-format
+msgid "mapalgebra intersection"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7296
+#, no-c-format
+msgid "map algebra union"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7309 reference_raster.xml:7648
+#, no-c-format
+msgid "Example: Overlaying rasters on a canvas as separate bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7310
+#, no-c-format
+msgid ""
+"-- we use ST_AsPNG to render the image so all single band ones look grey --\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(1,5),10) As geom\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 10,'join=bevel') As geom\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 150,150 "
+"50)'), 5,'join=bevel') As geom\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS (SELECT ST_AddBand(ST_MakeEmptyRaster(200, \n"
+"        200, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            ),\n"
+"   rbands AS (SELECT ARRAY(SELECT ST_MapAlgebraExpr(canvas.rast, "
+"ST_AsRaster(m.geom, canvas.rast, '8BUI', 100),\n"
+"                 '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1."
+"val]') As rast\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"                ORDER BY m.bnum) As rasts\n"
+"                )\n"
+"          SELECT rasts[1] As rast1 , rasts[2] As rast2, rasts[3] As rast3, "
+"ST_AddBand(\n"
+"                    ST_AddBand(rasts[1],rasts[2]), rasts[3]) As final_rast\n"
+"            FROM rbands;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7323
+#, no-c-format
+msgid "rast1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7336
+#, no-c-format
+msgid "rast2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7352
+#, no-c-format
+msgid "rast3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7366
+#, no-c-format
+msgid "final_rast"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7379
+#, no-c-format
+msgid ""
+"Example: Overlay 2 meter boundary of select parcels over an aerial imagery"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7381
+#, no-c-format
+msgid ""
+"-- Create new 3 band raster composed of first 2 clipped bands, and overlay "
+"of 3rd band with our geometry\n"
+"-- This query took 3.6 seconds on PostGIS windows 64-bit install\n"
+"WITH pr AS\n"
+"-- Note the order of operation: we clip all the rasters to dimensions of our "
+"region\n"
+"(SELECT ST_Clip(rast,ST_Expand(geom,50) ) As rast, g.geom\n"
+"        FROM aerials.o_2_boston AS r INNER JOIN\n"
+"-- union our parcels of interest so they form a single geometry we can later "
+"intersect with\n"
+"                (SELECT ST_Union(ST_Transform(the_geom,26986)) AS geom \n"
+"                  FROM landparcels WHERE pid IN('0303890000', '0303900000')) "
+"As g\n"
+"                ON ST_Intersects(rast::geometry, ST_Expand(g.geom,50))\n"
+"),\n"
+"-- we then union the raster shards together\n"
+"-- ST_Union on raster is kinda of slow but much faster the smaller you can "
+"get the rasters\n"
+"-- therefore we want to clip first and then union\n"
+"prunion AS\n"
+"(SELECT ST_AddBand(NULL, ARRAY[ST_Union(rast,1),ST_Union(rast,2),"
+"ST_Union(rast,3)] ) As clipped,geom\n"
+"FROM pr\n"
+"GROUP BY geom)\n"
+"-- return our final raster which is the unioned shard with \n"
+"-- with the overlay of our parcel boundaries\n"
+"-- add first 2 bands, then mapalgebra of 3rd band + geometry\n"
+"SELECT ST_AddBand(ST_Band(clipped,ARRAY[1,2])\n"
+"        , ST_MapAlgebraExpr(ST_Band(clipped,3), "
+"ST_AsRaster(ST_Buffer(ST_Boundary(geom),2),clipped, '8BUI',250),\n"
+"         '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1.val]') ) As "
+"rast\n"
+"FROM prunion;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7395
+#, no-c-format
+msgid "The blue lines are the boundaries of select parcels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7409
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref "
+"linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Union\"/>, <xref "
+"linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7426 reference_raster.xml:7579
+#, no-c-format
+msgid "ST_MapAlgebraFct"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7427
+#, no-c-format
+msgid ""
+"1 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the input raster band and of pixeltype prodived. Band "
+"1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7431
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:7495 reference_raster.xml:7613
+#: reference_raster.xml:7726
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra\"/> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7500
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>onerasteruserfunc</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified, band "
+"1 is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7504
+#, no-c-format
+msgid ""
+"The <varname>onerasteruserfunc</varname> parameter must be the name and "
+"signature of a SQL or PL/pgSQL function, cast to a regprocedure. A very "
+"simple and quite useless PL/pgSQL function example is: "
+"<programlisting>CREATE OR REPLACE FUNCTION simple_function(pixel FLOAT, pos "
+"INTEGER[], VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>userfunction</varname> may accept two or three arguments: a float "
+"value, an optional integer array, and a variadic text array. The first "
+"argument is the value of an individual raster cell (regardless of the raster "
+"datatype). The second argument is the position of the current processing "
+"cell in the form '{x,y}'. The third argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct\"/> shall be passed "
+"through to the <varname>userfunction</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7509
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(float,integer[],"
+"text[])'::regprocedure</programlisting>Note that the argument contains the "
+"name of the function, the types of the function arguments, quotes around the "
+"name and argument types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7513
+#, no-c-format
+msgid ""
+"The third argument to the <varname>userfunction</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct\"/> call are passed through to the specified "
+"<varname>userfunction</varname>, and are contained in the <varname>args</"
+"varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7522
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>userfunction</varname> is "
+"required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7532
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"CREATE FUNCTION mod_fct(pixel float, pos integer[], variadic args text[])\n"
+"RETURNS float\n"
+"AS $$\n"
+"BEGIN\n"
+"    RETURN pixel::integer % 2;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE;\n"
+"\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraFct(rast,NULL,'mod_fct(float,"
+"integer[],text[])'::regprocedure) WHERE rid = 2;\n"
+"\n"
+"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
+"mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7534
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to a passed parameter to the user "
+"function (0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7535
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"CREATE FUNCTION classify_fct(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"DECLARE\n"
+"    nodata float := 0;\n"
+"BEGIN\n"
+"    IF NOT args[1] IS NULL THEN\n"
+"        nodata := args[1];\n"
+"    END IF;\n"
+"    IF pixel < 251 THEN\n"
+"        RETURN 1;\n"
+"    ELSIF pixel = 252 THEN\n"
+"        RETURN 2;\n"
+"    ELSIF pixel > 252 THEN\n"
+"        RETURN 3;\n"
+"    ELSE\n"
+"        RETURN nodata;\n"
+"    END IF;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"UPDATE dummy_rast SET map_rast2 = "
+"ST_MapAlgebraFct(rast,'2BUI','classify_fct(float,integer[],text[])'::"
+"regprocedure, '0') WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
+"j) As mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
+"generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7563
+#, no-c-format
+msgid ""
+"CREATE FUNCTION rast_plus_tan(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"BEGIN\n"
+"        RETURN tan(pixel) * pixel;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"\n"
+"SELECT ST_AddBand(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(rast_view),\n"
+"                        ST_MapAlgebraFct(rast_view,1,"
+"NULL,'rast_plus_tan(float,integer[],text[])'::regprocedure)\n"
+"                ), \n"
+"                ST_Band(rast_view,2)\n"
+"        ),\n"
+"        ST_Band(rast_view, 3) As rast_view_ma\n"
+")\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7568 reference_raster.xml:7691
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference"
+"\"/>, <xref linkend=\"RT_ST_SetValue\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7580
+#, no-c-format
+msgid ""
+"2 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the 2 input raster bands and of pixeltype prodived. "
+"Band 1 is assumed if no band is specified. Extent type defaults to "
+"INTERSECTION if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7584
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band1</parameter></paramdef> <paramdef><type>raster</type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band2</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band1</parameter></paramdef> <paramdef><type>raster</type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band2</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:7618
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>tworastuserfunc</varname> on the input raster "
+"<varname>rast1</varname>, <varname>rast2</varname>. If no <varname>band1</"
+"varname> or <varname>band2</varname> is specified, band 1 is assumed. The "
+"new raster will have the same georeference, width, and height as the "
+"original rasters but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7621
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or left out, then the "
+"new raster band will have the same pixeltype as the input <varname>rast1</"
+"varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7624
+#, no-c-format
+msgid ""
+"The <varname>tworastuserfunc</varname> parameter must be the name and "
+"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
+"PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION "
+"simple_function_for_two_rasters(pixel1 FLOAT, pixel2 FLOAT, pos INTEGER[], "
+"VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>tworastuserfunc</varname> may accept three or four arguments: a "
+"double precision value, a double precision value, an optional integer array, "
+"and a variadic text array. The first argument is the value of an individual "
+"raster cell in <varname>rast1</varname> (regardless of the raster datatype). "
+"The second argument is an individual raster cell value in <varname>rast2</"
+"varname>. The third argument is the position of the current processing cell "
+"in the form '{x,y}'. The fourth argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct2\"/> shall be passed "
+"through to the <varname>tworastuserfunc</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7630
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(double precision, "
+"double precision, integer[], text[])'::regprocedure</programlisting>Note "
+"that the argument contains the name of the function, the types of the "
+"function arguments, quotes around the name and argument types, and a cast to "
+"a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7633
+#, no-c-format
+msgid ""
+"The third argument to the <varname>tworastuserfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct2\"/> call are passed through to the specified "
+"<varname>tworastuserfunc</varname>, and are contained in the "
+"<varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7641
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>tworastuserfunc</varname> "
+"is required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7649
+#, no-c-format
+msgid ""
+"-- define our user defined function --\n"
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_union(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN ((rast1 + rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN NULL;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN rast2;\n"
+"                        ELSE\n"
+"                                RETURN rast1;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"\n"
+"-- prep our test table of rasters\n"
+"DROP TABLE IF EXISTS map_shapes;\n"
+"CREATE TABLE map_shapes(rid serial PRIMARY KEY, rast raster, bnum integer, "
+"descrip text);\n"
+"INSERT INTO map_shapes(rast,bnum, descrip)\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(90,90),30) As geom, 'circle' "
+"As descrip\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 15) As geom, 'big road' As descrip\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Translate(ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 "
+"150,150 50)'), 8,'join=bevel'), 10,-6) As geom, 'small road' As descrip\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS ( SELECT ST_AddBand(ST_MakeEmptyRaster(250, \n"
+"        250, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0 ) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            )\n"
+"-- return our rasters aligned with our canvas\n"
+"SELECT ST_AsRaster(m.geom, canvas.rast, '8BUI', 240) As rast, bnum, descrip\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"UNION ALL \n"
+"SELECT canvas.rast, 4, 'canvas'\n"
+"FROM canvas;\n"
+"\n"
+"-- Map algebra on single band rasters and then collect with ST_AddBand\n"
+"INSERT INTO map_shapes(rast,bnum,descrip)\n"
+"SELECT ST_AddBand(ST_AddBand(rasts[1], rasts[2]),rasts[3]), 4, 'map bands "
+"overlay fct union (canvas)'\n"
+"        FROM (SELECT ARRAY(SELECT ST_MapAlgebraFct(m1.rast, m2.rast, \n"
+"                        'raster_mapalgebra_union(double precision, double "
+"precision, integer[], text[])'::regprocedure, '8BUI', 'FIRST')\n"
+"                FROM map_shapes As m1 CROSS JOIN map_shapes As m2\n"
+"                        WHERE m1.descrip = 'canvas' AND m2.descrip <> "
+"'canvas' ORDER BY m2.bnum) As rasts) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7662
+#, no-c-format
+msgid "map bands overlay (canvas) (R: small road, G: circle, B: big road)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7674
+#, no-c-format
+msgid "User Defined function that takes extra args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7675
+#, no-c-format
+msgid ""
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_userargs(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN least(userargs[1]::integer,(rast1 + "
+"rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN userargs[2]::integer;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN greatest(rast2,random()*userargs[3]::"
+"integer)::integer;\n"
+"                        ELSE\n"
+"                                RETURN greatest(rast1, random()*userargs[4]::"
+"integer)::integer;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' VOLATILE COST 1000;\n"
+"        \n"
+"SELECT ST_MapAlgebraFct(m1.rast, 1, m1.rast, 3,\n"
+"                        'raster_mapalgebra_userargs(double precision, double "
+"precision, integer[], text[])'::regprocedure,\n"
+"                                '8BUI', 'INTERSECT', "
+"'100','200','200','0') \n"
+"                FROM map_shapes As m1\n"
+"                        WHERE m1.descrip = 'map bands overlay fct union "
+"(canvas)';"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7683
+#, no-c-format
+msgid "user defined with extra args and different bands from same raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7702
+#, no-c-format
+msgid "ST_MapAlgebraFctNgb"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7703
+#, no-c-format
+msgid ""
+"1-band version: Map Algebra Nearest Neighbor using user-defined PostgreSQL "
+"function. Return a raster which values are the result of a PLPGSQL user "
+"function involving a neighborhood of values from the input raster band."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7708
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
+"args</parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
+"args</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:7731
+#, no-c-format
+msgid ""
+"(one raster version) Return a raster which values are the result of a "
+"PLPGSQL user function involving a neighborhood of values from the input "
+"raster band. The user function takes the neighborhood of pixel values as an "
+"array of numbers, for each pixel, returns the result from the user function, "
+"replacing pixel value of currently inspected pixel with the function result."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7735
+#, no-c-format
+msgid "rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7736
+#, no-c-format
+msgid "Raster on which the user function is evaluated."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7739
+#, no-c-format
+msgid "band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7740
+#, no-c-format
+msgid "Band number of the raster to be evaluated. Default to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7744
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL. If not passed "
+"in or set to NULL, will default to the pixeltype of the <varname>rast</"
+"varname>. Results are truncated if they are larger than what is allowed for "
+"the pixeltype."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7747
+#, no-c-format
+msgid "ngbwidth"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7748
+#, no-c-format
+msgid "The width of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7751
+#, no-c-format
+msgid "ngbheight"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7752
+#, no-c-format
+msgid "The height of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7755
+#, no-c-format
+msgid "onerastngbuserfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7756
+#, no-c-format
+msgid ""
+"PLPGSQL/psql user function to apply to neighborhood pixels of a single band "
+"of a raster. The first element is a 2-dimensional array of numbers "
+"representing the rectangular pixel neighborhood"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7759
+#, no-c-format
+msgid "nodatamode"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7761
+#, no-c-format
+msgid ""
+"Defines what value to pass to the function for a neighborhood pixel that is "
+"nodata or NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7762
+#, no-c-format
+msgid ""
+"'ignore': any NODATA values encountered in the neighborhood are ignored by "
+"the computation -- this flag must be sent to the user callback function, and "
+"the user function decides how to ignore it."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7763
+#, no-c-format
+msgid ""
+"'NULL': any NODATA values encountered in the neighborhood will cause the "
+"resulting pixel to be NULL -- the user callback function is skipped in this "
+"case."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7764
+#, no-c-format
+msgid ""
+"'value': any NODATA values encountered in the neighborhood are replaced by "
+"the reference pixel (the one in the center of the neighborhood). Note that "
+"if this value is NODATA, the behavior is the same as 'NULL' (for the "
+"affected neighborhood)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7768
+#, no-c-format
+msgid "args"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7769
+#, no-c-format
+msgid "Arguments to pass into the user function."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7779
+#, no-c-format
+msgid ""
+"Examples utilize the katrina raster loaded as a single tile described in "
+"<ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">http://"
+"trac.osgeo.org/gdal/wiki/frmts_wtkraster.html</ulink> and then prepared in "
+"the <xref linkend=\"RT_ST_Rescale\"/> examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7781
+#, no-c-format
+msgid ""
+"--\n"
+"-- A simple 'callback' user function that averages up all the values in a "
+"neighborhood.\n"
+"--\n"
+"CREATE OR REPLACE FUNCTION rast_avg(matrix float[][], nodatamode text, "
+"variadic args text[])\n"
+"    RETURNS float AS\n"
+"    $$\n"
+"    DECLARE\n"
+"                _matrix float[][];\n"
+"        x1 integer;\n"
+"        x2 integer;\n"
+"        y1 integer;\n"
+"        y2 integer;\n"
+"        sum float;\n"
+"    BEGIN\n"
+"                _matrix := matrix;\n"
+"        sum := 0;\n"
+"        FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP\n"
+"            FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP\n"
+"                sum := sum + _matrix[x][y];\n"
+"            END LOOP;\n"
+"        END LOOP;\n"
+"        RETURN (sum*1.0/(array_upper(matrix,1)*array_upper(matrix,2) ))::"
+"integer ;\n"
+"    END;\n"
+"    $$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"    \n"
+"-- now we apply to our raster averaging pixels within 2 pixels of each other "
+"in X and Y direction --\n"
+"SELECT ST_MapAlgebraFctNgb(rast, 1,  '8BUI', 4,4,\n"
+"                'rast_avg(float[][], text, text[])'::regprocedure, 'NULL', "
+"NULL) As nn_with_border\n"
+"        FROM katrinas_rescaled \n"
+"        limit 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7795
+#, no-c-format
+msgid "First band of our raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7809
+#, no-c-format
+msgid "new raster after averaging pixels withing 4x4 pixels of each other"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7824
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraExpr\"/>, <xref linkend=\"RT_ST_Rescale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7834
+#, no-c-format
+msgid "ST_Reclass"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7835
+#, no-c-format
+msgid ""
+"Creates a new raster composed of band types reclassified from original. The "
+"nband is the band to be changed. If nband is not specified assumed to be 1. "
+"All other bands are returned unchanged. Use case: convert a 16BUI band to a "
+"8BUI and so forth for simpler rendering as viewable formats."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7839
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>reclassarg[] </type> <parameter>VARIADIC reclassargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>reclassarg[] </type> <parameter>VARIADIC reclassargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:7867
+#, no-c-format
+msgid ""
+"Creates a new raster formed by applying a valid PostgreSQL algebraic "
+"operation defined by the <varname>reclassexpr</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified band 1 "
+"is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster. Bands not designated will come back "
+"unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid "
+"reclassification expressions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7869
+#, no-c-format
+msgid ""
+"The bands of the new raster will have pixel type of <varname>pixeltype</"
+"varname>. If <varname>reclassargset</varname> is passed in then each "
+"reclassarg defines behavior of each band generated."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7875
+#, no-c-format
+msgid "Examples Basic"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7876
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 2 is converted from 8BUI to "
+"4BUI and all values from 101-254 are set to nodata value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7877
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN reclass_rast raster;\n"
+"UPDATE dummy_rast SET reclass_rast = ST_Reclass(rast,2,'0-87:1-10, "
+"88-100:11-15, 101-254:0-0', '4BUI',0) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row, ST_Value(rast,2,i,j) As origval, \n"
+"    ST_Value(reclass_rast, 2, i, j) As reclassval, \n"
+"    ST_Value(reclass_rast, 2, i, j, false) As reclassval_include_nodata\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" col | row | origval | reclassval | reclassval_include_nodata\n"
+"-----+-----+---------+------------+---------------------------\n"
+"   1 |   1 |      78 |          9 |                         9\n"
+"   2 |   1 |      98 |         14 |                        14\n"
+"   3 |   1 |     122 |            |                         0\n"
+"   1 |   2 |      96 |         14 |                        14\n"
+"   2 |   2 |     118 |            |                         0\n"
+"   3 |   2 |     180 |            |                         0\n"
+"   1 |   3 |      99 |         15 |                        15\n"
+"   2 |   3 |     112 |            |                         0\n"
+"   3 |   3 |     169 |            |                         0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7881
+#, no-c-format
+msgid "Example: Advanced using multiple reclassargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7883
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 1,2,3 is converted to "
+"1BB,4BUI, 4BUI respectively and reclassified. Note this uses the variadic "
+"<varname>reclassarg</varname> argument which can take as input an indefinite "
+"number of reclassargs (theoretically as many bands as you have)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7884
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET reclass_rast = \n"
+"    ST_Reclass(rast,\n"
+"        ROW(2,'0-87]:1-10, (87-100]:11-15, (101-254]:0-0', '4BUI',NULL)::"
+"reclassarg,\n"
+"        ROW(1,'0-253]:1, 254:0', '1BB', NULL)::reclassarg,\n"
+"        ROW(3,'0-70]:1, (70-86:2, [86-150):3, [150-255:4', '4BUI', NULL)::"
+"reclassarg\n"
+"        ) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row,ST_Value(rast,1,i,j) As ov1,  "
+"ST_Value(reclass_rast, 1, i, j) As rv1, \n"
+"    ST_Value(rast,2,i,j) As ov2, ST_Value(reclass_rast, 2, i, j) As rv2, \n"
+"    ST_Value(rast,3,i,j) As ov3, ST_Value(reclass_rast, 3, i, j) As rv3\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+"col | row | ov1 | rv1 | ov2 | rv2 | ov3 | rv3\n"
+"----+-----+-----+-----+-----+-----+-----+-----\n"
+"  1 |   1 | 253 |   1 |  78 |   9 |  70 |   1\n"
+"  2 |   1 | 254 |   0 |  98 |  14 |  86 |   3\n"
+"  3 |   1 | 253 |   1 | 122 |   0 | 100 |   3\n"
+"  1 |   2 | 253 |   1 |  96 |  14 |  80 |   2\n"
+"  2 |   2 | 254 |   0 | 118 |   0 | 108 |   3\n"
+"  3 |   2 | 254 |   0 | 180 |   0 | 162 |   4\n"
+"  1 |   3 | 250 |   1 |  99 |  15 |  90 |   3\n"
+"  2 |   3 | 254 |   0 | 112 |   0 | 108 |   3\n"
+"  3 |   3 | 254 |   0 | 169 |   0 | 175 |   4"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7888
+#, no-c-format
+msgid ""
+"Example: Advanced Map a single band 32BF raster to multiple viewable bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7889
+#, no-c-format
+msgid ""
+"Create a new 3 band (8BUI,8BUI,8BUI viewable raster) from a raster that has "
+"only one 32bf band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7890
+#, no-c-format
+msgid ""
+"ALTER TABLE wind ADD COLUMN rast_view raster;\n"
+"UPDATE wind \n"
+"        set rast_view = ST_AddBand( NULL,\n"
+"        ARRAY[\n"
+"                ST_Reclass(rast, 1,'0.1-10]:1-10,9-10]:11,(11-33:0'::text, "
+"'8BUI'::text,0),\n"
+"                ST_Reclass(rast,1, '11-33):0-255,[0-32:0,(34-1000:0'::text, "
+"'8BUI'::text,0),  \n"
+"                ST_Reclass(rast,1,'0-32]:0,(32-100:100-255'::text, '8BUI'::"
+"text,0)\n"
+"                ]\n"
+"                );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7895
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Band\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, "
+"<xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"reclassarg\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7908
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7909
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"1 or more bands."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7914
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_raster.xml:7920
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></"
+"paramdef>"
+
+#. Tag: funcprototype
+#: reference_raster.xml:7927
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_raster.xml:7934
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_raster.xml:7941
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:7953
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"at least one band. The resulting raster's extent is the extent of the whole "
+"set. In the case of intersection, the resulting value is defined by "
+"<varname>uniontype</varname> which is one of the following: LAST (default), "
+"FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7956
+#, no-c-format
+msgid ""
+"In order for rasters to be unioned, they most all have the same alignment. "
+"Use <xref linkend=\"RT_ST_SameAlignment\"/> and <xref linkend="
+"\"RT_ST_NotSameAlignmentReason\"/> for more details and help. One way to fix "
+"alignment issues is to use <xref linkend=\"RT_ST_Resample\"/> and use the "
+"same reference raster for alignment."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7960
+#, no-c-format
+msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7961
+#, no-c-format
+msgid "Availability: 2.1.0 ST_Union(rast, unionarg) variant was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7962
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast) (variant 1) unions all bands of all input "
+"rasters. Prior versions of PostGIS assumed the first band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7963
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast, uniontype) (variant 4) unions all bands of "
+"all input rasters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7966
+#, no-c-format
+msgid "Examples: Reconstitute a single band chunked raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7967
+#, no-c-format
+msgid ""
+"-- this creates a single band from first band of raster tiles\n"
+"-- that form the original file system tile\n"
+"SELECT filename, ST_Union(rast,1) As file_rast\n"
+"FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7971 reference_raster.xml:7975
+#, no-c-format
+msgid ""
+"Examples: Return a multi-band raster that is the union of tiles intersecting "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7972
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"-- Note: In 2.0, this would have just returned a single band raster\n"
+"-- , new union works on all bands by default\n"
+"-- this is equivalent to unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), "
+"ROW(3, 'LAST')]::unionarg[]\n"
+"SELECT ST_Union(rast)\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7976
+#, no-c-format
+msgid ""
+"Here we use the longer syntax if we only wanted a subset of bands or we want "
+"to change order of bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7977
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"SELECT ST_Union(rast,ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::"
+"unionarg[])\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7983
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7996
+#, no-c-format
+msgid "Built-in Map Algebra Callback Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8000
+#, no-c-format
+msgid "ST_Distinct4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8001
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the number of unique pixel values "
+"in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8005
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Distinct4ma</function></"
+"funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Distinct4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][] </type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>xy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetScale</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>x</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>y</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8025
+#, no-c-format
+msgid ""
+"Calculate the number of unique pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8028 reference_raster.xml:8167
+#: reference_raster.xml:8242 reference_raster.xml:8327
+#: reference_raster.xml:8452 reference_raster.xml:8523
+#: reference_raster.xml:8598
+#, no-c-format
+msgid ""
+"Variant 1 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8032 reference_raster.xml:8171
+#: reference_raster.xml:8246 reference_raster.xml:8333
+#: reference_raster.xml:8456 reference_raster.xml:8527
+#: reference_raster.xml:8602
+#, no-c-format
+msgid ""
+"Variant 2 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8038 reference_raster.xml:8177
+#: reference_raster.xml:8252 reference_raster.xml:8339
+#: reference_raster.xml:8462 reference_raster.xml:8533
+#: reference_raster.xml:8608
+#, no-c-format
+msgid ""
+"Use of Variant 1 is discouraged since <xref linkend=\"RT_ST_MapAlgebraFctNgb"
+"\"/> has been deprecated as of 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8044 reference_raster.xml:8183
+#: reference_raster.xml:8258 reference_raster.xml:8345
+#: reference_raster.xml:8468 reference_raster.xml:8539
+#: reference_raster.xml:8614
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8050
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8056 reference_raster.xml:8480
+#: reference_raster.xml:8551
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8071
+#, no-c-format
+msgid "ST_InvDistWeight4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8072
+#, no-c-format
+msgid ""
+"Raster processing function that interpolates a pixel's value from the "
+"pixel's neighborhood."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8077
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> "
+"<paramdef><type>double precision[][]</type> <parameter>matrix</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:8089
+#, no-c-format
+msgid ""
+"Calculate an interpolated value for a pixel using the Inverse Distance "
+"Weighted method."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8091
+#, no-c-format
+msgid ""
+"There are two optional parameters that can be passed through "
+"<varname>userargs</varname>. The first parameter is the power factor "
+"(variable k in the equation below) between 0 and 1 used in the Inverse "
+"Distance Weighted equation. If not specified, default value is 1. The second "
+"parameter is the weight percentage applied only when the value of the pixel "
+"of interest is included with the interpolated value from the neighborhood. "
+"If not specified and the pixel of interest has a value, that value is "
+"returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8095
+#, no-c-format
+msgid "The basic inverse distance weight equation is:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8104
+#, no-c-format
+msgid "k = power factor, a real number between 0 and 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8113 reference_raster.xml:8398
+#, no-c-format
+msgid ""
+"This function is a specialized callback function for use as a callback "
+"parameter to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8121 reference_raster.xml:8406
+#, no-c-format
+msgid "-- NEEDS EXAMPLE"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8126
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8135
+#, no-c-format
+msgid "ST_Max4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8136
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the maximum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8140
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Max4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Max4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_Raster2WorldCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8160
+#, no-c-format
+msgid "Calculate the maximum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8162 reference_raster.xml:8237
+#: reference_raster.xml:8322 reference_raster.xml:8447
+#: reference_raster.xml:8593
+#, no-c-format
+msgid ""
+"For Variant 2, a substitution value for NODATA pixels can be specified by "
+"passing that value to userargs."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8189
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      254\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8195
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8210
+#, no-c-format
+msgid "ST_Mean4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8211
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the mean pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8215
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Mean4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>xy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetScale</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>x</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>y</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8235
+#, no-c-format
+msgid "Calculate the mean pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8264
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_mean4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8271
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"              ST_MapAlgebra(rast, 1, 'st_mean4ma(double precision[][][], "
+"integer[][], text[])'::regprocedure,'32BF', 'FIRST', NULL, 1, 1)\n"
+"       ,  2, 2)\n"
+"  FROM dummy_rast \n"
+"   WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8277
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8291
+#, no-c-format
+msgid "ST_Min4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8292
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the minimum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8298
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Min4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Min4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_Raster2WorldCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8318
+#, no-c-format
+msgid "Calculate the minimum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8351
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      250\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8356
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8371
+#, no-c-format
+msgid "ST_MinDist4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8372
+#, no-c-format
+msgid ""
+"Raster processing function that returns the minimum distance (in number of "
+"pixels) between the pixel of interest and a neighboring pixel with value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8377
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> "
+"<paramdef><type>double precision[][]</type> <parameter>matrix</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:8389
+#, no-c-format
+msgid ""
+"Return the shortest distance (in number of pixels) between the pixel of "
+"interest and the closest pixel with value in the neighborhood."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8392
+#, no-c-format
+msgid ""
+"The intent of this function is to provide an informative data point that "
+"helps infer the usefulness of the pixel of interest's interpolated value "
+"from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is "
+"particularly useful when the neighborhood is sparsely populated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8411
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8420
+#, no-c-format
+msgid "ST_Range4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8421
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the range of pixel values in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8425
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Range4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Range4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_Raster2WorldCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8445
+#, no-c-format
+msgid "Calculate the range of pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8474
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        4\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8495
+#, no-c-format
+msgid "ST_StdDev4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8496
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the standard deviation of pixel "
+"values in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8500
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_StdDev4ma</function></funcdef> <paramdef><type>double "
+"precision[][][]</type> <parameter>value</parameter></paramdef> "
+"<paramdef><type>integer[][] </type> <parameter>pos</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>skewxy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetSkew</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewy</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8520
+#, no-c-format
+msgid ""
+"Calculate the standard deviation of pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8545
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_stddev4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 1.30170822143555\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8566
+#, no-c-format
+msgid "ST_Sum4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8567
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the sum of all pixel values in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8571
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Sum4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>xy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetScale</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>x</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>y</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8591
+#, no-c-format
+msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8620
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |     2279\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8626
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:8642
+#, no-c-format
+msgid "DEM (Elevation)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8646
+#, no-c-format
+msgid "ST_Aspect"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8647
+#, no-c-format
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8650
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Transform</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
+"type> <parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8675
+#, no-c-format
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the aspect equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8677
+#, no-c-format
+msgid ""
+"<varname>units</varname> indicates the units of the aspect. Possible values "
+"are: RADIANS, DEGREES (default)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8681
+#, no-c-format
+msgid ""
+"When <varname>units</varname> = RADIANS, values are between 0 and 2 * pi "
+"radians measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8685
+#, no-c-format
+msgid ""
+"When <varname>units</varname> = DEGREES, values are between 0 and 360 "
+"degrees measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8689
+#, no-c-format
+msgid "If slope of pixel is zero, aspect of pixel is -1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8694
+#, no-c-format
+msgid ""
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Aspect_Images.html"
+"\">ERDAS Field Guide - Aspect Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8700 reference_raster.xml:8796
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional "
+"<varname>interpolate_nodata</varname> function parameter"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8701 reference_raster.xml:8925
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, return values were in radians. Now, return "
+"values default to degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8706
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Aspect(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                    st_dumpvalues                                                                   \n"
+"                                  \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"----------------------------------\n"
+" (1,\"{{315,341.565063476562,0,18.4349479675293,45},"
+"{288.434936523438,315,0,45,71.5650482177734},{270,270,-1,90,90},"
+"{251.565048217773,225,180,135,108.434951782227},{225,198.43495178\n"
+"2227,180,161.565048217773,135}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8712 reference_raster.xml:8809
+#: reference_raster.xml:8937
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage. This query only works with "
+"PostgreSQL 9.1 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8714
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Aspect(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8719
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8732
+#, no-c-format
+msgid "ST_HillShade"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8733
+#, no-c-format
+msgid ""
+"Returns the hypothetical illumination of an elevation raster band using "
+"provided azimuth, altitude, brightness and scale inputs."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8736
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_HillShade</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>azimuth=315</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>altitude=45</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>max_bright=255</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_HillShade</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>azimuth=315</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>altitude=45</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>max_bright=255</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scale=1.0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8767
+#, no-c-format
+msgid ""
+"Returns the hypothetical illumination of an elevation raster band using the "
+"azimuth, altitude, brightness, and scale inputs. Utilizes map algebra and "
+"applies the hill shade equation to neighboring pixels. Return pixel values "
+"are between 0 and 255."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8769
+#, no-c-format
+msgid ""
+"<varname>azimuth</varname> is a value between 0 and 360 degrees measured "
+"clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8773
+#, no-c-format
+msgid ""
+"<varname>altitude</varname> is a value between 0 and 90 degrees where 0 "
+"degrees is at the horizon and 90 degrees is directly overhead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8777
+#, no-c-format
+msgid ""
+"<varname>max_bright</varname> is a value between 0 and 255 with 0 as no "
+"brightness and 255 as max brightness."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8781 reference_raster.xml:8909
+#, no-c-format
+msgid ""
+"<varname>scale</varname> is the ratio of vertical units to horizontal. For "
+"Feet:LatLon use scale=370400, for Meters:LatLon use scale=111120."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8785
+#, no-c-format
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the hillshade illumination."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8790
+#, no-c-format
+msgid ""
+"For more information about Hillshade, please refer to <ulink url=\"http://"
+"webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How%20Hillshade"
+"%20works\">How hillshade works</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8797
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, azimuth and altitude were expressed in "
+"radians. Now, azimuth and altitude are expressed in degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8803
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Hillshade(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                                       st_dumpvalues                                                \n"
+"                                                                       \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"-----------------------------------------------------------------------\n"
+" (1,\"{{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,251.32763671875,220.749786376953,147.224319458008,NULL},"
+"{NULL,220.749786376953,180.312225341797,67.7497863769531,NULL},"
+"{NULL,147.224319458008\n"
+",67.7497863769531,43.1210060119629,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8811
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Hillshade(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8816
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_Aspect\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8829
+#, no-c-format
+msgid "ST_Roughness"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8830
+#, no-c-format
+msgid "Returns a raster with the calculated \"roughness\" of a DEM."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8835
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Roughness</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype="
+"\"32BF\"</parameter> </paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type> <parameter> interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:8848
+#, no-c-format
+msgid ""
+"Calculates the \"roughness\" of a DEM, by subtracting the maximum from the "
+"minimum for a given area."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8854 reference_raster.xml:8987
+#: reference_raster.xml:9038
+#, no-c-format
+msgid "-- needs examples"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8859
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8872
+#, no-c-format
+msgid "ST_Slope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8873
+#, no-c-format
+msgid ""
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8876
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Slope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Slope</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>units=DEGREES</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Transform</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
+"type> <parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:8903
+#, no-c-format
+msgid ""
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the slope equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8905
+#, no-c-format
+msgid ""
+"<varname>units</varname> indicates the units of the slope. Possible values "
+"are: RADIANS, DEGREES (default), PERCENT."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8913
+#, no-c-format
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the surface slope."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8918
+#, no-c-format
+msgid ""
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Slope_Images.html\">ERDAS "
+"Field Guide - Slope Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8924
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional <varname>units</"
+"varname>, <varname>scale</varname>, <varname>interpolate_nodata</varname> "
+"function parameters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8931
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Slope(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                            st_dumpvalues                                                                                                                                           \n"
+"                                                                     \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"---------------------------------------------------------------------\n"
+" (1,"
+"\"{{10.0249881744385,21.5681285858154,26.5650520324707,21.5681285858154,10.0249881744385},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},\n"
+"{26.5650520324707,36.8698959350586,0,36.8698959350586,26.5650520324707},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},"
+"{10.0249881744385,21.\n"
+"5681285858154,26.5650520324707,21.5681285858154,10.0249881744385}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8939
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Slope(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8944
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8957
+#, no-c-format
+msgid "ST_TPI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8958
+#, no-c-format
+msgid "Returns a raster with the calculated Topographic Position Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8963
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_TPI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:8977
+#, no-c-format
+msgid ""
+"Calculates the Topographic Position Index, which is defined as the folcal "
+"mean with radius of one minus the center cell."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8980 reference_raster.xml:9030
+#, no-c-format
+msgid "This function only supports a focalmean radius of one."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8992
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9005
+#, no-c-format
+msgid "ST_TRI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9006
+#, no-c-format
+msgid "Returns a raster with the calculated Terrain Ruggedness Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9011
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_TRI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9025
+#, no-c-format
+msgid ""
+"Terrain Ruggedness Index is calculated by comparing a central pixel with its "
+"neighbors, taking the absolute values of the differences, and averaging the "
+"result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9043
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9057
+#, no-c-format
+msgid "Raster to Geometry"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9061
+#, no-c-format
+msgid "Box3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9062
+#, no-c-format
+msgid "Returns the box 3d representation of the enclosing box of the raster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9067
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9077
+#, no-c-format
+msgid "Returns the box representing the extent of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9078
+#, no-c-format
+msgid ""
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</"
+"varname>, <varname>MAXY</varname>))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9082
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of "
+"box3d. Since box2d is a deprecated type, this was changed to box3d."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9088
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        rid,\n"
+"        Box3D(rast) AS rastbox\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid |        rastbox\n"
+"----+-------------------------------------------------\n"
+"1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
+"2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9101
+#, no-c-format
+msgid "ST_ConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9102
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster including pixel values equal "
+"to BandNoDataValue. For regular shaped and non-skewed rasters, this gives "
+"the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9109
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9119
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster including the NoDataBandValue "
+"band pixels. For regular shaped and non-skewed rasters, this gives more or "
+"less the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9123
+#, no-c-format
+msgid ""
+"ST_Envelope floors the coordinates and hence add a little buffer around the "
+"raster so the answer is subtly different from ST_ConvexHull which does not "
+"floor."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9130
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram "
+"of this."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9131
+#, no-c-format
+msgid ""
+"-- Note envelope and convexhull are more or less the same\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 "
+"0,20 60,0 60,0 0))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9132
+#, no-c-format
+msgid ""
+"-- now we skew the raster \n"
+"-- note how the convex hull and envelope are now different\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
+"        FROM dummy_rast WHERE rid=1) As foo;\n"
+"        \n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 "
+"0,22 61,0 61,0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9138
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MinConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/"
+">, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9149
+#, no-c-format
+msgid "ST_DumpAsPolygons"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9150
+#, no-c-format
+msgid ""
+"Returns a set of geomval (geom,val) rows, from a given raster band. If no "
+"band number is specified, band num defaults to 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9155
+#, no-c-format
+msgid ""
+"<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+"<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9166
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of geomval rows, "
+"formed by a geometry (geom) and a pixel band value (val). Each polygon is "
+"the union of all pixels for that band that have the same pixel value denoted "
+"by val."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9170
+#, no-c-format
+msgid ""
+"ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a "
+"GROUP BY in that it creates new rows. For example it can be used to expand a "
+"single raster into multiple POLYGONS/MULTIPOLYGONS."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9174
+#, no-c-format
+msgid "Availability: Requires GDAL 1.7 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9175
+#, no-c-format
+msgid ""
+"If there is a no data value set for a band, pixels with that value will not "
+"be returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9176
+#, no-c-format
+msgid ""
+"If you only care about count of pixels with a given value in a raster, it is "
+"faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9178
+#, no-c-format
+msgid ""
+"This is different than ST_PixelAsPolygons where one geometry is returned for "
+"each pixel regardless of pixel value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9186
+#, no-c-format
+msgid ""
+"SELECT val, ST_AsText(geom) As geomwkt\n"
+"FROM (\n"
+"SELECT (ST_DumpAsPolygons(rast)).*\n"
+"FROM dummy_rast \n"
+"WHERE rid = 2\n"
+") As foo\n"
+"WHERE val BETWEEN 249 and 251\n"
+"ORDER BY val;\n"
+"\n"
+" val |                                                       geomwkt\n"
+"-----"
+"+--------------------------------------------------------------------------\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 "
+"5793243.85,\n"
+"                 3427928 5793243.95,3427927.95 5793243.95))\n"
+" 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 "
+"5793243.85,\n"
+"                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
+" 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 "
+"5793243.75,\n"
+"                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
+" 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 "
+"5793243.8,\n"
+"                 3427927.8 5793243.85,3427927.75 5793243.85))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9191
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref "
+"linkend=\"RT_ST_ValueCount\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9202
+#, no-c-format
+msgid "ST_Envelope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9203
+#, no-c-format
+msgid "Returns the polygon representation of the extent of the raster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9208
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9218
+#, no-c-format
+msgid ""
+"Returns the polygon representation of the extent of the raster in spatial "
+"coordinate units defined by srid. It is a float8 minimum bounding box "
+"represented as a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9220
+#, no-c-format
+msgid ""
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9232
+#, no-c-format
+msgid ""
+"SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |                                         envgeomwkt\n"
+"-----+--------------------------------------------------------------------\n"
+"   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
+"   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
+"                   3427928 5793244,3427927 5793244, 3427927 5793243))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9237
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9247
+#, no-c-format
+msgid "ST_MinConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9248
+#, no-c-format
+msgid "Return the convex hull geometry of the raster excluding NODATA pixels."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9255
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=NULL</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9266
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster excluding NODATA pixels. If "
+"<varname>nband</varname> is NULL, all bands of the raster are considered."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9275
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_SetValues(\n"
+"                                ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(9, "
+"9, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0), 2, '8BUI', 1, 0),\n"
+"                                1, 1, 1,\n"
+"                                ARRAY[\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 1],\n"
+"                                        [0, 0, 0, 1, 1, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0]\n"
+"                                ]::double precision[][]\n"
+"                        ),\n"
+"                        2, 1, 1,\n"
+"                        ARRAY[\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [1, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 1, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 1, 0, 0, 0, 0, 0, 0]\n"
+"                        ]::double precision[][]\n"
+"                ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_AsText(ST_ConvexHull(rast)) AS hull,\n"
+"        ST_AsText(ST_MinConvexHull(rast)) AS mhull,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 1)) AS mhull_1,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 2)) AS mhull_2\n"
+"FROM foo\n"
+"\n"
+"               hull               |                mhull                "
+"|               mhull_1               |               "
+"mhull_2               \n"
+"----------------------------------+-------------------------------------"
+"+-------------------------------------"
+"+-------------------------------------\n"
+" POLYGON((0 0,9 0,9 -9,0 -9,0 0)) | POLYGON((0 -3,9 -3,9 -9,0 -9,0 -3)) | "
+"POLYGON((3 -3,9 -3,9 -6,3 -6,3 -3)) | POLYGON((0 -3,6 -3,6 -9,0 -9,0 -3))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9280
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/>, "
+"<xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9291
+#, no-c-format
+msgid "ST_Polygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9292
+#, no-c-format
+msgid ""
+"Returns a multipolygon geometry formed by the union of pixels that have a "
+"pixel value that is not no data value. If no band number is specified, band "
+"num defaults to 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9297
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9307
+#, no-c-format
+msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9308
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning "
+"multipolygon is ensured to be valid."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9309
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions would sometimes return a polygon, changed "
+"to always return multipolygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9314
+#, no-c-format
+msgid ""
+"-- by default no data band value is 0 or not set, so polygon will return a "
+"square polygon        \n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"--------------------------------------------\n"
+"MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 "
+"5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
+"                 \n"
+"                 \n"
+"-- now we change the no data value of first band\n"
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
+"WHERE rid = 2;\n"
+"SELECt rid, ST_BandNoDataValue(rast)\n"
+"from dummy_rast where rid = 2;\n"
+"\n"
+"-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------------------------------\n"
+"MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 "
+"5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 "
+"5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 "
+"5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 "
+"5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),"
+"((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 "
+"5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 "
+"5793244,3427927.8 5793243.9,3427927.8 5793243.85,3427927.85 "
+"5793243.85,3427927.85 5793243.8,3427927.85 5793243.75,3427927.8 "
+"5793243.75)))\n"
+"\n"
+"-- Or if you want the no data value different for just one time\n"
+"\n"
+"SELECT ST_AsText(\n"
+"        ST_Polygon(\n"
+"                ST_SetBandNoDataValue(rast,1,252)\n"
+"                )\n"
+"        ) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid =2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------\n"
+"MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 "
+"5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 "
+"5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 "
+"5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 "
+"5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 "
+"5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 "
+"5793243.9,3427927.9 5793243.9)))"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9331
+#, no-c-format
+msgid "Raster Operators"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9334
+#, no-c-format
+msgid "&&"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9336
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding "
+"box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9340
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> "
+"</paramdef> <paramdef> <type>geometry </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>&"
+"&</function></funcdef> <paramdef> <type>geometry </type> <parameter>B</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>A</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Overlaps</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:9382
+#, no-c-format
+msgid ""
+"The <varname>&&</varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of raster/geometr A intersects the bounding box of "
+"raster/geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9384 reference_raster.xml:9636
+#: reference_raster.xml:10646 reference_raster.xml:10747
+#: reference_raster.xml:10840
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"rasters."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9393
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As "
+"intersect\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B LIMIT 3;\n"
+"\n"
+" a_rid | b_rid | intersect\n"
+"-------+-------+---------\n"
+"     2 |     2 | t\n"
+"     2 |     3 | f\n"
+"     2 |     1 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9399
+#, no-c-format
+msgid "&<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9401
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is to the left of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9406
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9427
+#, no-c-format
+msgid ""
+"The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of raster A overlaps or is to the left of the bounding box "
+"of raster B, or more accurately, overlaps or is NOT to the right of the "
+"bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9431 reference_raster.xml:9476
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9438
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast &< B.rast As overleft\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+"a_rid | b_rid | overleft\n"
+"------+-------+----------\n"
+"    2 |     2 | t\n"
+"    2 |     3 | f\n"
+"    2 |     1 | f\n"
+"    3 |     2 | t\n"
+"    3 |     3 | t\n"
+"    3 |     1 | f\n"
+"    1 |     2 | t\n"
+"    1 |     3 | t\n"
+"    1 |     1 | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9444
+#, no-c-format
+msgid "&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9446
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is to the right of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9451
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9472
+#, no-c-format
+msgid ""
+"The <varname>&></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of raster A overlaps or is to the right of the bounding box "
+"of raster B, or more accurately, overlaps or is NOT to the left of the "
+"bounding box of raster B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9483
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast &> B.rast As overright\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+" a_rid | b_rid | overright\n"
+"-------+-------+----------\n"
+"     2 |     2 | t\n"
+"     2 |     3 | t\n"
+"     2 |     1 | t\n"
+"     3 |     2 | f\n"
+"     3 |     3 | t\n"
+"     3 |     1 | f\n"
+"     1 |     2 | f\n"
+"     1 |     3 | t\n"
+"     1 |     1 | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9489
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9491
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9496
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>boolean <function>=</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9517
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B. "
+"PostgreSQL uses the =, <, and > operators defined for rasters to "
+"perform internal orderings and comparison of rasters (ie. in a GROUP BY or "
+"ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9521
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"rasters. Use <xref linkend=\"RT_Raster_Same\"/> instead. This operator "
+"exists mostly so one can group by the raster column."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9537
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9539
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's. "
+"Uses double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9543
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:9586
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contained by bounding box of raster/"
+"geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9589 reference_raster.xml:9709
+#, no-c-format
+msgid "This operand will use spatial indexes on the rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9591
+#, no-c-format
+msgid "Availability: 2.0.0 raster @ raster, raster @ geometry introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9592
+#, no-c-format
+msgid "Availability: 2.0.5 geometry @ raster introduced"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9605
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9607
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9612
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:9633
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9645
+#, no-c-format
+msgid ""
+"Very useful usecase is for taking two sets of single band rasters that are "
+"of the same chunk but represent different themes and creating a multi-band "
+"raster"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9646
+#, no-c-format
+msgid ""
+"SELECT ST_AddBand(prec.rast, alt.rast) As new_rast\n"
+"    FROM prec INNER JOIN alt ON (prec.rast ~= alt.rast);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9651
+#, no-c-format
+msgid ", <xref linkend=\"RT_Raster_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9657
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9659
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contains B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9663
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:9706
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contains bounding box of raster/geometr "
+"B."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9724
+#, no-c-format
+msgid "Raster and Raster Band Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9728
+#, no-c-format
+msgid "ST_Contains"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9729
+#, no-c-format
+msgid ""
+"Return true if no points of raster rastB lie in the exterior of raster rastA "
+"and at least one point of the interior of rastB lies in the interior of "
+"rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9735
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Contains</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Contains</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:9774
+#, no-c-format
+msgid ""
+"Raster rastA contains rastB if and only if no points of rastB lie in the "
+"exterior of rastA and at least one point of the interior of rastB lies in "
+"the interior of rastA. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9779 reference_raster.xml:9872
+#: reference_raster.xml:9953 reference_raster.xml:10034
+#: reference_raster.xml:10244 reference_raster.xml:10328
+#: reference_raster.xml:10408
+#, no-c-format
+msgid ""
+"This function will make use of any indexes that may be available on the "
+"rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9785
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Contains(ST_Polygon(raster), geometry) or "
+"ST_Contains(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9791
+#, no-c-format
+msgid ""
+"ST_Contains() is the inverse of ST_Within(). So, ST_Contains(rastA, rastB) "
+"implies ST_Within(rastB, rastA)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9802
+#, no-c-format
+msgid ""
+"-- specified band numbers\n"
+"SELECT r1.rid, r2.rid, ST_Contains(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;\n"
+"\n"
+"NOTICE:  The first raster provided has no bands\n"
+" rid | rid | st_contains \n"
+"-----+-----+-------------\n"
+"   1 |   1 | \n"
+"   1 |   2 | f"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9804
+#, no-c-format
+msgid ""
+"-- no band numbers specified\n"
+"SELECT r1.rid, r2.rid, ST_Contains(r1.rast, r2.rast) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;\n"
+" rid | rid | st_contains \n"
+"-----+-----+-------------\n"
+"   1 |   1 | t\n"
+"   1 |   2 | f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9808
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9817
+#, no-c-format
+msgid "ST_ContainsProperly"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9818
+#, no-c-format
+msgid ""
+"Return true if rastB intersects the interior of rastA but not the boundary "
+"or exterior of rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9824
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_ContainsProperly</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_ContainsProperly</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </"
+"type> <parameter>rastB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_ContainsProperly</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_ContainsProperly</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </"
+"type> <parameter>rastB</parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:9863
+#, no-c-format
+msgid ""
+"Raster rastA contains properly rastB if rastB intersects the interior of "
+"rastA but not the boundary or exterior of rastA. If the band number is not "
+"provided (or set to NULL), only the convex hull of the raster is considered "
+"in the test. If the band number is provided, only those pixels with value "
+"(not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9867
+#, no-c-format
+msgid "Raster rastA does not contain properly itself but does contain itself."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9878
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_ContainsProperly(ST_Polygon(raster), geometry) or "
+"ST_ContainsProperly(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9889
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_ContainsProperly(r1.rast, 1, r2.rast, 1) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_containsproperly \n"
+"-----+-----+---------------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9893
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Contains\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9902
+#, no-c-format
+msgid "ST_Covers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9903
+#, no-c-format
+msgid "Return true if no points of raster rastB lie outside raster rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9909
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:9948
+#, no-c-format
+msgid ""
+"Raster rastA covers rastB if and only if no points of rastB lie in the "
+"exterior of rastA. If the band number is not provided (or set to NULL), only "
+"the convex hull of the raster is considered in the test. If the band number "
+"is provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9959
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Covers(ST_Polygon(raster), geometry) or "
+"ST_Covers(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9970
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Covers(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_covers \n"
+"-----+-----+-----------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9974
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_CoveredBy\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9983
+#, no-c-format
+msgid "ST_CoveredBy"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9984
+#, no-c-format
+msgid "Return true if no points of raster rastA lie outside raster rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9990
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:10029
+#, no-c-format
+msgid ""
+"Raster rastA is covered by rastB if and only if no points of rastA lie in "
+"the exterior of rastB. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10040
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_CoveredBy(ST_Polygon(raster), geometry) or "
+"ST_CoveredBy(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10051
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_CoveredBy(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_coveredby \n"
+"-----+-----+--------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10055
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Covers\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10064
+#, no-c-format
+msgid "ST_Disjoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10065
+#, no-c-format
+msgid "Return true if raster rastA does not spatially intersect rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10071
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Disjoint</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Disjoint</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Disjoint</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Disjoint</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:10110
+#, no-c-format
+msgid ""
+"Raster rastA and rastB are disjointed if they do not share any space "
+"together. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10115
+#, no-c-format
+msgid "This function does NOT use any indexes."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10121
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Disjoint(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10132
+#, no-c-format
+msgid ""
+"-- rid = 1 has no bands, hence the NOTICE and the NULL value for "
+"st_disjoint\n"
+"SELECT r1.rid, r2.rid, ST_Disjoint(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+"NOTICE:  The second raster provided has no bands\n"
+" rid | rid | st_disjoint \n"
+"-----+-----+-------------\n"
+"   2 |   1 | \n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10134
+#, no-c-format
+msgid ""
+"-- this time, without specifying band numbers\n"
+"SELECT r1.rid, r2.rid, ST_Disjoint(r1.rast, r2.rast) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_disjoint \n"
+"-----+-----+-------------\n"
+"   2 |   1 | t\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10147
+#, no-c-format
+msgid "ST_Intersects"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10148
+#, no-c-format
+msgid "Return true if raster rastA spatially intersects raster rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10152
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> </funcprototype> <funcprototype> "
+"<funcdef>boolean <function>ST_Intersects</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>rast</parameter> </paramdef> <paramdef> "
+"<type>integer </type> <parameter>nband</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>geommin</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Intersects</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rast</"
+"parameter> </paramdef> <paramdef> <type>geometry </type> <parameter>geommin</"
+"parameter> </paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry </type> <parameter>geommin</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> </funcprototype> <funcprototype> "
+"<funcdef>boolean <function>ST_Intersects</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>rast</parameter> </paramdef> <paramdef> "
+"<type>integer </type> <parameter>nband</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>geommin</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Intersects</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rast</"
+"parameter> </paramdef> <paramdef> <type>geometry </type> <parameter>geommin</"
+"parameter> </paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry </type> <parameter>geommin</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:10239
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially intersects raster rastB. If the band "
+"number is not provided (or set to NULL), only the convex hull of the raster "
+"is considered in the test. If the band number is provided, only those pixels "
+"with value (not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10249
+#, no-c-format
+msgid "Enhanced: 2.0.0 support raster/raster intersects was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10254
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 The behavior of the ST_Intersects(raster, geometry) variants "
+"changed to match that of ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10263
+#, no-c-format
+msgid ""
+"-- different bands of same raster\n"
+"SELECT ST_Intersects(rast, 2, rast, 3) FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" st_intersects \n"
+"---------------\n"
+" t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10268
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Disjoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10277
+#, no-c-format
+msgid "ST_Overlaps"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10278
+#, no-c-format
+msgid ""
+"Return true if raster rastA and rastB intersect but one does not completely "
+"contain the other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10284
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Overlaps</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Overlaps</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:10323
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially overlaps raster rastB. This means that "
+"rastA and rastB intersect but one does not completely contain the other. If "
+"the band number is not provided (or set to NULL), only the convex hull of "
+"the raster is considered in the test. If the band number is provided, only "
+"those pixels with value (not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10334
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Overlaps(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10345
+#, no-c-format
+msgid ""
+"-- comparing different bands of same raster\n"
+"SELECT ST_Overlaps(rast, 1, rast, 2) FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" st_overlaps \n"
+"-------------\n"
+" f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10357
+#, no-c-format
+msgid "ST_Touches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10358
+#, no-c-format
+msgid ""
+"Return true if raster rastA and rastB have at least one point in common but "
+"their interiors do not intersect."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10364
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Touches</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Touches</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Touches</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Touches</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:10403
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially touches raster rastB. This means that "
+"rastA and rastB have at least one point in common but their interiors do not "
+"intersect. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10414
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Touches(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10425
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Touches(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_touches \n"
+"-----+-----+------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10437
+#, no-c-format
+msgid "ST_SameAlignment"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10439
+#, no-c-format
+msgid ""
+"Returns true if rasters have same skew, scale, spatial ref, and offset "
+"(pixels can be put on same grid without cutting into pixels) and false if "
+"they don't with notice detailing issue."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10443
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_SameAlignment</function></funcdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx1</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly1</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex1</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley1</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx1</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy1</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx2</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly2</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex2</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley2</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx2</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy2</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster set </type> <parameter>rastfield</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_SameAlignment</function></funcdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx1</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly1</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex1</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley1</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx1</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy1</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx2</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly2</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex2</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley2</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx2</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy2</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster set </type> <parameter>rastfield</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:10522
+#, no-c-format
+msgid ""
+"Non-Aggregate version (Variants 1 and 2): Returns true if the two rasters "
+"(either provided directly or made using the values for upperleft, scale, "
+"skew and srid) have the same scale, skew, srid and at least one of any of "
+"the four corners of any pixel of one raster falls on any corner of the grid "
+"of the other raster. Returns false if they don't and a NOTICE detailing the "
+"alignment issue."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10526
+#, no-c-format
+msgid ""
+"Aggregate version (Variant 3): From a set of rasters, returns true if all "
+"rasters in the set are aligned. The ST_SameAlignment() function is an "
+"\"aggregate\" function in the terminology of PostgreSQL. That means that it "
+"operates on rows of data, in the same way the SUM() and AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10531
+#, no-c-format
+msgid "Enhanced: 2.1.0 addition of Aggegrate variant"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:10535
+#, no-c-format
+msgid "Examples: Rasters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10537
+#, no-c-format
+msgid ""
+"SELECT ST_SameAlignment(\n"
+"        ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"        ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0)\n"
+") as sm;\n"
+"\n"
+"sm\n"
+"----\n"
+"t"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10538
+#, no-c-format
+msgid ""
+"SELECT ST_SameAlignment(A.rast,b.rast)\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+" NOTICE:  The two rasters provided have different SRIDs\n"
+"NOTICE:  The two rasters provided have different SRIDs\n"
+" st_samealignment\n"
+"------------------\n"
+" t\n"
+" f\n"
+" f\n"
+" f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10542
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NotSameAlignmentReason\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10552
+#, no-c-format
+msgid "ST_NotSameAlignmentReason"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10553
+#, no-c-format
+msgid ""
+"<refpurpose>Returns text stating if rasters are aligned and if not aligned, "
+"a reason why.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:10558
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>text <function>ST_NotSameAlignmentReason</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rastA</parameter></paramdef> "
+"<paramdef><type>raster </type><parameter>rastB</parameter></paramdef>"
+msgstr ""
+"<funcdef>raster <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_raster.xml:10568
+#, no-c-format
+msgid ""
+"<para>Returns text stating if rasters are aligned and if not aligned, a "
+"reason why.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10571
+#, no-c-format
+msgid ""
+"If there are several reasons why the rasters are not aligned, only one "
+"reason (the first test to fail) will be returned."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10581
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_SameAlignment(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        ),\n"
+"        ST_NotSameAlignmentReason(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        )\n"
+";\n"
+"\n"
+" st_samealignment |            st_notsamealignmentreason            \n"
+"------------------+-------------------------------------------------\n"
+" f                | The rasters have different scales on the X axis\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10586
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SameAlignment\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10595
+#, no-c-format
+msgid "ST_Within"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10596
+#, no-c-format
+msgid ""
+"Return true if no points of raster rastA lie in the exterior of raster rastB "
+"and at least one point of the interior of rastA lies in the interior of "
+"rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10602
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Within</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Within</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_Within</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Within</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:10641
+#, no-c-format
+msgid ""
+"Raster rastA is within rastB if and only if no points of rastA lie in the "
+"exterior of rastB and at least one point of the interior of rastA lies in "
+"the interior of rastB. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10652
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Within(ST_Polygon(raster), geometry) or "
+"ST_Within(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10658
+#, no-c-format
+msgid ""
+"ST_Within() is the inverse of ST_Contains(). So, ST_Within(rastA, rastB) "
+"implies ST_Contains(rastB, rastA)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10669
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Within(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_within \n"
+"-----+-----+-----------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10673
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Contains\"/>, <xref linkend=\"RT_ST_DWithin\"/>, "
+"<xref linkend=\"RT_ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10684
+#, no-c-format
+msgid "ST_DWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10685
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are within the specified distance of "
+"each other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10691
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>distance_of_srid</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> <paramdef> <type>double precision </"
+"type> <parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>distance_of_srid</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> <paramdef> <type>double precision </"
+"type> <parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:10738
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are within the specified distance of "
+"each other. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10742 reference_raster.xml:10835
+#, no-c-format
+msgid ""
+"The distance is specified in units defined by the spatial reference system "
+"of the rasters. For this function to make sense, the source rasters must "
+"both be of the same coordinate projection, having the same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10753
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_DWithin(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10764
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_DWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_dwithin \n"
+"-----+-----+------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10768
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10777
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10778
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are fully within the specified "
+"distance of each other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10784
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_raster.xml:10831
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are fully within the specified "
+"distance of each other. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10846
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_DFullyWithin(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10857
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_DFullyWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_dfullywithin \n"
+"-----+-----+-----------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10861
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DWithin\"/>"
+msgstr ""
+
+#~ msgid ""
+#~ "<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>addbandarg[] </type> <parameter>addbandargset</"
+#~ "parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+#~ "<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+#~ "<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+#~ "<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+#~ "\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
+#~ "paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+#~ "<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+#~ "<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>integer </type> <parameter>index</parameter></paramdef> "
+#~ "<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+#~ "<paramdef choice=\"opt\"><type>double precision </type> "
+#~ "<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
+#~ "\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+#~ "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+#~ "<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+#~ "<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
+#~ "<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
+#~ "\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
+#~ "<paramdef choice=\"opt\"><type>integer </type> "
+#~ "<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
+#~ "<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>torast</parameter></paramdef> "
+#~ "<paramdef><type>raster[] </type> <parameter>fromrasts</parameter></"
+#~ "paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+#~ "<parameter>fromband=1</parameter></paramdef> <paramdef choice=\"opt"
+#~ "\"><type>integer </type> <parameter>torastindex=at_end</parameter></"
+#~ "paramdef> </funcprototype>"
+#~ msgstr ""
+#~ "<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>addbandarg[] </type> <parameter>addbandargset</"
+#~ "parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+#~ "<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+#~ "<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+#~ "<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+#~ "\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
+#~ "paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+#~ "<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+#~ "<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>integer </type> <parameter>index</parameter></paramdef> "
+#~ "<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+#~ "<paramdef choice=\"opt\"><type>double precision </type> "
+#~ "<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
+#~ "\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+#~ "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+#~ "<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+#~ "<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
+#~ "<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
+#~ "\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
+#~ "<paramdef choice=\"opt\"><type>integer </type> "
+#~ "<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
+#~ "<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>torast</parameter></paramdef> "
+#~ "<paramdef><type>raster[] </type> <parameter>fromrasts</parameter></"
+#~ "paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+#~ "<parameter>fromband=1</parameter></paramdef> <paramdef choice=\"opt"
+#~ "\"><type>integer </type> <parameter>torastindex=at_end</parameter></"
+#~ "paramdef> </funcprototype>"
+
+#~ msgid ""
+#~ "<funcprototype> <funcdef>raster <function>ST_SetValue</function></"
+#~ "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+#~ "paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+#~ "paramdef> <paramdef><type>double precision </type> <parameter>newvalue</"
+#~ "parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+#~ "<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+#~ "<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+#~ "<parameter>bandnum</parameter></paramdef> <paramdef><type>geometry </"
+#~ "type> <parameter>pt</parameter></paramdef> <paramdef><type>double "
+#~ "precision </type> <parameter>newvalue</parameter></paramdef> </"
+#~ "funcprototype> <funcprototype> <funcdef>raster <function>ST_SetValue</"
+#~ "function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+#~ "parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+#~ "parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+#~ "parameter></paramdef> <paramdef><type>double precision </type> "
+#~ "<parameter>newvalue</parameter></paramdef> </funcprototype> "
+#~ "<funcprototype> <funcdef>raster <function>ST_SetValue</function></"
+#~ "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+#~ "paramdef> <paramdef><type>double precision </type> <parameter>newvalue</"
+#~ "parameter></paramdef> </funcprototype>"
+#~ msgstr ""
+#~ "<funcprototype> <funcdef>raster <function>ST_SetValue</function></"
+#~ "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+#~ "paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+#~ "paramdef> <paramdef><type>double precision </type> <parameter>newvalue</"
+#~ "parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+#~ "<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+#~ "<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+#~ "<parameter>bandnum</parameter></paramdef> <paramdef><type>geometry </"
+#~ "type> <parameter>pt</parameter></paramdef> <paramdef><type>double "
+#~ "precision </type> <parameter>newvalue</parameter></paramdef> </"
+#~ "funcprototype> <funcprototype> <funcdef>raster <function>ST_SetValue</"
+#~ "function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+#~ "parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+#~ "parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+#~ "parameter></paramdef> <paramdef><type>double precision </type> "
+#~ "<parameter>newvalue</parameter></paramdef> </funcprototype> "
+#~ "<funcprototype> <funcdef>raster <function>ST_SetValue</function></"
+#~ "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+#~ "paramdef> <paramdef><type>double precision </type> <parameter>newvalue</"
+#~ "parameter></paramdef> </funcprototype>"
+
+#~ msgid ""
+#~ "<funcdef>raster <function>ST_HillShade</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+#~ "<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+#~ "<paramdef><type>double precision </type> <parameter>azimuth</parameter></"
+#~ "paramdef> <paramdef><type>double precision </type> <parameter>altitude</"
+#~ "parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+#~ "type> <parameter>max_bright=255</parameter></paramdef> <paramdef choice="
+#~ "\"opt\"><type>double precision </type> <parameter>elevation_scale=1</"
+#~ "parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>raster <function>ST_HillShade</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+#~ "<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+#~ "<paramdef><type>double precision </type> <parameter>azimuth</parameter></"
+#~ "paramdef> <paramdef><type>double precision </type> <parameter>altitude</"
+#~ "parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+#~ "type> <parameter>max_bright=255</parameter></paramdef> <paramdef choice="
+#~ "\"opt\"><type>double precision </type> <parameter>elevation_scale=1</"
+#~ "parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>raster <function>ST_Aspect</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+#~ "<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>raster <function>ST_Aspect</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+#~ "<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>raster <function>ST_Slope</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+#~ "<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>raster <function>ST_Slope</function></funcdef> "
+#~ "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+#~ "<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+#~ "<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>float8 <function>ST_Min4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>float8 <function>ST_Min4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>float8 <function>ST_Max4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>float8 <function>ST_Max4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>float8 <function>ST_Range4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>float8 <function>ST_Range4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>float8 <function>ST_Distinct4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>float8 <function>ST_Distinct4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
+#~ "<paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+#~ "paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
+#~ "paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+#~ "parameter></paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>boolean <function>&&</function></funcdef> <paramdef> "
+#~ "<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+#~ "<type>raster </type> <parameter>B</parameter> </paramdef>"
+#~ msgstr ""
+#~ "<funcdef>boolean <function>&&</function></funcdef> <paramdef> "
+#~ "<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+#~ "<type>raster </type> <parameter>B</parameter> </paramdef>"
diff --git a/doc/po/fr/reference_sfcgal.xml.po b/doc/po/fr/reference_sfcgal.xml.po
new file mode 100644
index 0000000..1296070
--- /dev/null
+++ b/doc/po/fr/reference_sfcgal.xml.po
@@ -0,0 +1,653 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-03 19:48+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: para
+#: reference_sfcgal.xml:5
+#, no-c-format
+msgid ""
+"SFCGAL is a C++ wrapper library around CGAL that provides advanced 2D and 3D "
+"functions. For robustness, geometry coordinates have an exact rational "
+"number representation."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:9
+#, no-c-format
+msgid ""
+"Installation instructions of the library can be found on SFCGAL home page "
+"<ulink url=\"http://www.sfcgal.org\">http://www.sfcgal.org</ulink>. To load "
+"the functions execute postgis/sfcgal.sql"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:15
+#, no-c-format
+msgid "SFCGAL Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:18
+#, no-c-format
+msgid "postgis_sfcgal_version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:20
+#, no-c-format
+msgid "Returns the version of SFCGAL in use"
+msgstr ""
+
+#. Tag: funcdef
+#: reference_sfcgal.xml:26
+#, no-c-format
+msgid "text <function>postgis_sfcgal_version</function>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:33 reference_sfcgal.xml:65 reference_sfcgal.xml:158
+#: reference_sfcgal.xml:218 reference_sfcgal.xml:247 reference_sfcgal.xml:276
+#: reference_sfcgal.xml:305 reference_sfcgal.xml:335 reference_sfcgal.xml:377
+#: reference_sfcgal.xml:405
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_sfcgal.xml:35 reference_sfcgal.xml:67 reference_sfcgal.xml:160
+#: reference_sfcgal.xml:249 reference_sfcgal.xml:278 reference_sfcgal.xml:310
+#: reference_sfcgal.xml:337 reference_sfcgal.xml:379 reference_sfcgal.xml:407
+#, fuzzy, no-c-format
+msgid "Availability: 2.1.0"
+msgstr "Disponibilité"
+
+#. Tag: para
+#: reference_sfcgal.xml:36 reference_sfcgal.xml:68 reference_sfcgal.xml:161
+#: reference_sfcgal.xml:221 reference_sfcgal.xml:250 reference_sfcgal.xml:279
+#: reference_sfcgal.xml:311 reference_sfcgal.xml:338 reference_sfcgal.xml:380
+#: reference_sfcgal.xml:408
+#, no-c-format
+msgid "&sfcgal_required;"
+msgstr "&sfcgal_required;"
+
+#. Tag: para
+#: reference_sfcgal.xml:37 reference_sfcgal.xml:69 reference_sfcgal.xml:162
+#: reference_sfcgal.xml:222 reference_sfcgal.xml:251 reference_sfcgal.xml:280
+#: reference_sfcgal.xml:312 reference_sfcgal.xml:339 reference_sfcgal.xml:381
+#: reference_sfcgal.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_sfcgal.xml:38 reference_sfcgal.xml:70 reference_sfcgal.xml:163
+#: reference_sfcgal.xml:223 reference_sfcgal.xml:252 reference_sfcgal.xml:281
+#: reference_sfcgal.xml:340 reference_sfcgal.xml:382 reference_sfcgal.xml:410
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_sfcgal.xml:39 reference_sfcgal.xml:71 reference_sfcgal.xml:164
+#: reference_sfcgal.xml:224 reference_sfcgal.xml:253 reference_sfcgal.xml:282
+#: reference_sfcgal.xml:341 reference_sfcgal.xml:383 reference_sfcgal.xml:411
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: refname
+#: reference_sfcgal.xml:47
+#, no-c-format
+msgid "ST_Extrude"
+msgstr "ST_Extrude"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:49
+#, no-c-format
+msgid "Extrude a surface to a related volume"
+msgstr "Extruder une surface vers un volume"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:54
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Extrude</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>z</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Extrude</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>z</parameter></paramdef>"
+
+#. Tag: title
+#: reference_sfcgal.xml:74 reference_sfcgal.xml:167 reference_sfcgal.xml:414
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:75
+#, no-c-format
+msgid ""
+"3D images were generated using the PostGIS <xref linkend=\"ST_AsX3D\"/> and "
+"rendering in HTML using <ulink url=\"http://www.x3dom.org\">X3Dom HTML "
+"Javascript redering library</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:82
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+"  50, 'quad_segs=2'),0,0,30);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:88
+#, no-c-format
+msgid "Original octagon formed from buffering point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:93
+#, no-c-format
+msgid ""
+"ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2'),0,0,30);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:99
+#, no-c-format
+msgid "Hexagon extruded 30 units along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:107
+#, no-c-format
+msgid "SELECT ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)')"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:113
+#, no-c-format
+msgid "Original linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Extrude(\n"
+" ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)'),0,0,10));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:124
+#, no-c-format
+msgid "LineString Extruded along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:134
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:143
+#, no-c-format
+msgid "ST_StraightSkeleton"
+msgstr "ST_StraightSkeleton"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:145
+#, no-c-format
+msgid "Compute a straight skeleton from a geometry"
+msgstr "Calcule un squelette (straight skeleton) à partir d'une géométrie"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:150
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:168
+#, no-c-format
+msgid ""
+"SELECT ST_StraightSkeleton(ST_GeomFromText('POLYGON (( 190 190, 10 190, 10 "
+"10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:179 reference_sfcgal.xml:453
+#, no-c-format
+msgid "Original polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:188
+#, fuzzy, no-c-format
+msgid "Straight Skeleton of polygon"
+msgstr "ST_StraightSkeleton"
+
+#. Tag: refname
+#: reference_sfcgal.xml:203
+#, no-c-format
+msgid "ST_IsPlanar"
+msgstr "ST_IsPlanar"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:205
+#, no-c-format
+msgid "Check if a surface is or not planar"
+msgstr "Vérifie si une surface est planaire ou non"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:210
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsPlanar</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsPlanar</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_sfcgal.xml:220
+#, no-c-format
+msgid ""
+"Availability: 2.2.0: This was documented in 2.1.0 but got accidentally left "
+"out in 2.1 release."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:232
+#, no-c-format
+msgid "ST_Orientation"
+msgstr "ST_Orientation"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:234
+#, no-c-format
+msgid "Determine surface orientation"
+msgstr "Détermine l'orientation d'une surface"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:239
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Orientation</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_Orientation</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: refname
+#: reference_sfcgal.xml:261
+#, no-c-format
+msgid "ST_ForceLHR"
+msgstr "ST_ForceLHR"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:263
+#, no-c-format
+msgid "Force LHR orientation"
+msgstr "Force l'orientation LHR d'un objet"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:268
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: refname
+#: reference_sfcgal.xml:289
+#, no-c-format
+msgid "ST_MinkowskiSum"
+msgstr "ST_MinkowskiSum"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:291
+#, fuzzy, no-c-format
+msgid "Performs Minkowski sum"
+msgstr "Calcule la somme de Minkowski"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:296
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinkowskiSum</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Minkowski</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_sfcgal.xml:307
+#, no-c-format
+msgid ""
+"This function performs a 2D minkowski sum of a point, line or polygon with a "
+"polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:308
+#, no-c-format
+msgid ""
+"The first parameter can be any 2D geometry (point, linestring, polygon). If "
+"a 3D geometry is passed, it will be converted to 2D by forcing Z to 0, "
+"leading to possible cases of invalidity. The second parameter must be a 2D "
+"polygon."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:319
+#, no-c-format
+msgid "ST_3DIntersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:321
+#, fuzzy, no-c-format
+msgid "Perform 3D intersection"
+msgstr "Effectue une tesselation de surface"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:326
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DIntersection</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Minkowski</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+
+#. Tag: title
+#: reference_sfcgal.xml:345
+#, no-c-format
+msgid "Examples: 3D linestring and Polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:346
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(linestring, polygon)) As wkt\n"
+"FROM  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"              wkt\n"
+"--------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8)"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:348
+#, no-c-format
+msgid "Cube (closed Polyhedral Surface) and Polygon Z"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:349
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(\n"
+"                ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'), \n"
+"        'POLYGON Z ((0 0 0, 0 0 0.5, 0 0.5 0.5, 0 0.5 0, 0 0 0))'::geometry))"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:350
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),((0 0.5 0,0 0 0,0 0.5 0.5,0 0.5 0)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:352
+#, no-c-format
+msgid ""
+"Intersection of 2 solids that result in volumetric intersection is also a "
+"solid (ST_Dimension returns 3)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:353
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection( ST_Extrude(ST_Buffer('POINT(10 20)'::"
+"geometry,10,1),0,0,30),\n"
+" ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),2,0,10) ));"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:354
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE Z (((13.3333333333333 13.3333333333333 10,20 20 0,20 20 "
+"10,13.3333333333333 13.3333333333333 10)),\n"
+"         ((20 20 10,16.6666666666667 23.3333333333333 10,13.3333333333333 "
+"13.3333333333333 10,20 20 10)),\n"
+"         ((20 20 0,16.6666666666667 23.3333333333333 10,20 20 10,20 20 0)),\n"
+"         ((13.3333333333333 13.3333333333333 10,10 10 0,20 20 "
+"0,13.3333333333333 13.3333333333333 10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,12 28 10,13.3333333333333 "
+"13.3333333333333 10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((20 20 0,9.99999999999995 30 0,16.6666666666667 23.3333333333333 "
+"10,20 20 0)),\n"
+"         ((10 10 0,9.99999999999995 30 0,20 20 0,10 10 0)),"
+"((13.3333333333333 13.3333333333333 10,12 12 10,10 10 0,13.3333333333333 "
+"13.3333333333333 10)),\n"
+"         ((12 28 10,12 12 10,13.3333333333333 13.3333333333333 10,12 28 "
+"10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,9.99999999999995 30 0,12 28 "
+"10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((10 10 0,0 20 0,9.99999999999995 30 0,10 10 0)),\n"
+"         ((12 12 10,11 11 10,10 10 0,12 12 10)),((12 28 10,11 11 10,12 12 "
+"10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,11 29 10,12 28 10,9.99999999999995 30 0)),"
+"((0 20 0,2 20 10,9.99999999999995 30 0,0 20 0)),\n"
+"         ((10 10 0,2 20 10,0 20 0,10 10 0)),((11 11 10,2 20 10,10 10 0,11 11 "
+"10)),((12 28 10,11 29 10,11 11 10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,2 20 10,11 29 10,9.99999999999995 30 0)),"
+"((11 11 10,11 29 10,2 20 10,11 11 10)))"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:362
+#, no-c-format
+msgid "ST_3DArea"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:364
+#, fuzzy, no-c-format
+msgid "Computes area of 3D geometries"
+msgstr "Calcule un squelette (straight skeleton) à partir d'une géométrie"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:369
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>float<function>ST_3DArea</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: refname
+#: reference_sfcgal.xml:390
+#, no-c-format
+msgid "ST_Tesselate"
+msgstr "ST_Tesselate"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:392
+#, no-c-format
+msgid ""
+"Perform surface Tesselation of a polygon or polyhedralsurface and returns as "
+"a TIN or collection of TINS"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:397
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Tesselate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Tesselate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_sfcgal.xml:406
+#, no-c-format
+msgid ""
+"Takes as input a surface such a MULTI(POLYGON) or POLYHEDRALSURFACE and "
+"returns a TIN representation via the process of tesselation using triangles."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:420
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )');"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:426
+#, no-c-format
+msgid "Original Cube"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:431
+#, no-c-format
+msgid ""
+"SELECT ST_Tesselate(ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:432
+#, no-c-format
+msgid "ST_AsText output:"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:433
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 1,0 1 1,0 0 0)),((0 1 0,0 0 0,0 1 1,0 1 0)),\n"
+"        ((0 0 0,0 1 0,1 1 0,0 0 0)),\n"
+"        ((1 0 0,0 0 0,1 1 0,1 0 0)),((0 0 1,1 0 0,1 0 1,0 0 1)),\n"
+"        ((0 0 1,0 0 0,1 0 0,0 0 1)),\n"
+"        ((1 1 0,1 1 1,1 0 1,1 1 0)),((1 0 0,1 1 0,1 0 1,1 0 0)),\n"
+"        ((0 1 0,0 1 1,1 1 1,0 1 0)),((1 1 0,0 1 0,1 1 1,1 1 0)),\n"
+"        ((0 1 1,1 0 1,1 1 1,0 1 1)),((0 1 1,0 0 1,1 0 1,0 1 1)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:439
+#, no-c-format
+msgid "Tesselated Cube with triangles colored"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:447
+#, no-c-format
+msgid ""
+"SELECT 'POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, "
+"10 190 ))'::geometry;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:458
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_Tesselate('POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 "
+"160, 120 190, 10 190 ))'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:460
+#, no-c-format
+msgid "ST_AsText output"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:461
+#, no-c-format
+msgid ""
+"TIN(((80 130,50 160,80 70,80 130)),((50 160,10 190,10 70,50 160)),\n"
+"         ((80 70,50 160,10 70,80 70)),((120 160,120 190,50 160,120 160)),\n"
+" ((120 190,10 190,50 160,120 190)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:467
+#, fuzzy, no-c-format
+msgid "Tesselated Polygon"
+msgstr "ST_Tesselate"
+
+#~ msgid "Using SFCGAL Advanced 2D/3D functions"
+#~ msgstr "Utiliser les fonctions 2D/3D avancées de SFCGAL"
+
+#~ msgid "TODO Introduction part"
+#~ msgstr "Introduction - À venir"
+
+#~ msgid "TODO Install part"
+#~ msgstr "Installation - À venir"
diff --git a/doc/po/fr/reference_transaction.xml.po b/doc/po/fr/reference_transaction.xml.po
new file mode 100644
index 0000000..5a8b8a1
--- /dev/null
+++ b/doc/po/fr/reference_transaction.xml.po
@@ -0,0 +1,520 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# vpicavet <vincent.ml at oslandia.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-27 18:04+0000\n"
+"Last-Translator: vpicavet <vincent.ml at oslandia.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reference_transaction.xml:3
+#, no-c-format
+msgid "Long Transactions Support"
+msgstr "Support des transactions longues"
+
+#. Tag: para
+#: reference_transaction.xml:5
+#, no-c-format
+msgid ""
+"This module and associated pl/pgsql functions have been implemented to "
+"provide long locking support required by <ulink url=\"http://www."
+"opengeospatial.org/standards/wfs\">Web Feature Service</ulink> specification."
+msgstr ""
+"Ce module et les fonctions pl/pgsql associées ont été implémentées pour "
+"fournir le support du verrouillage long, requis par la spécification <ulink "
+"url=\"http://www.opengeospatial.org/standards/wfs\">Web Feature Service</"
+"ulink>."
+
+#. Tag: para
+#: reference_transaction.xml:10
+#, no-c-format
+msgid ""
+"Users must use <ulink url=\"http://www.postgresql.org/docs/current/static/"
+"transaction-iso.html\">serializable transaction level</ulink> otherwise "
+"locking mechanism would break."
+msgstr ""
+"Les utilisateurs doivent activer le niveau de transaction <ulink url="
+"\"http://www.postgresql.org/docs/current/static/transaction-iso.html"
+"\">serializable transaction</ulink> sinon les mécanismes de verrouillage ne "
+"fonctionneront pas."
+
+#. Tag: refname
+#: reference_transaction.xml:18
+#, no-c-format
+msgid "AddAuth"
+msgstr "AddAuth"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:20
+#, no-c-format
+msgid ""
+"<refpurpose>Add an authorization token to be used in current transaction.</"
+"refpurpose>"
+msgstr ""
+"<refpurpose>Ajoute un jeton d'autorisation à utiliser dans la transaction "
+"courante.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_transaction.xml:25
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>AddAuth</function></funcdef> <paramdef><type>text "
+"</type> <parameter>auth_token</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>AddAuth</function></funcdef> <paramdef><type>text "
+"</type> <parameter>auth_token</parameter></paramdef>"
+
+#. Tag: title
+#: reference_transaction.xml:33 reference_transaction.xml:83
+#: reference_transaction.xml:130 reference_transaction.xml:177
+#: reference_transaction.xml:241 reference_transaction.xml:284
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_transaction.xml:35
+#, no-c-format
+msgid ""
+"<para>Add an authorization token to be used in current transaction.</para>"
+msgstr ""
+"<para>Ajoute un jeton d'autorisation à utiliser dans la transaction courante."
+"</para>"
+
+#. Tag: para
+#: reference_transaction.xml:37
+#, no-c-format
+msgid ""
+"Creates/adds to a temp table called temp_lock_have_table the current "
+"transaction identifier and authorization token key."
+msgstr ""
+"Crée/ajoute l'identifiant de transaction courante et la clé du jeton "
+"d'autorisation à une table temporaire nommée temp_lock_have_table"
+
+#. Tag: para
+#: reference_transaction.xml:40 reference_transaction.xml:92
+#: reference_transaction.xml:138 reference_transaction.xml:185
+#: reference_transaction.xml:248 reference_transaction.xml:289
+#, no-c-format
+msgid "Availability: 1.1.3"
+msgstr "Disponibilité : 1.1.3"
+
+#. Tag: title
+#: reference_transaction.xml:45 reference_transaction.xml:98
+#: reference_transaction.xml:144 reference_transaction.xml:191
+#: reference_transaction.xml:253 reference_transaction.xml:294
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples"
+
+#. Tag: programlisting
+#: reference_transaction.xml:47
+#, no-c-format
+msgid ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                BEGIN TRANSACTION;\n"
+"                        SELECT AddAuth('joey');\n"
+"                        UPDATE towns SET the_geom = "
+"ST_Translate(the_geom,2,2) WHERE gid = 353;\n"
+"                COMMIT;\n"
+"\n"
+"\n"
+"                ---Error--\n"
+"                ERROR:  UPDATE where \"gid\" = '353' requires authorization "
+"'priscilla'"
+msgstr ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                BEGIN TRANSACTION;\n"
+"                        SELECT AddAuth('joey');\n"
+"                        UPDATE towns SET the_geom = "
+"ST_Translate(the_geom,2,2) WHERE gid = 353;\n"
+"                COMMIT;\n"
+"\n"
+"\n"
+"                ---Error--\n"
+"                ERROR:  UPDATE where \"gid\" = '353' requires authorization "
+"'priscilla'"
+
+#. Tag: title
+#: reference_transaction.xml:52 reference_transaction.xml:105
+#: reference_transaction.xml:151 reference_transaction.xml:198
+#: reference_transaction.xml:260 reference_transaction.xml:301
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: refname
+#: reference_transaction.xml:60
+#, no-c-format
+msgid "CheckAuth"
+msgstr "CheckAuth"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:62
+#, no-c-format
+msgid ""
+"Creates trigger on a table to prevent/allow updates and deletes of rows "
+"based on authorization token."
+msgstr ""
+"Crée un déclencheur sur une table pour empêcher/autoriser les mises à jour "
+"(UPDATE) et les suppressions (DELETE) de lignes en se basant sur le jeton "
+"d'autorisation."
+
+#. Tag: funcsynopsis
+#: reference_transaction.xml:66
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>CheckAuth</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_key_column_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CheckAuth</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_key_column_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>integer <function>CheckAuth</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_key_column_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CheckAuth</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_key_column_name</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_transaction.xml:85
+#, no-c-format
+msgid ""
+"Creates trigger on a table to prevent/allow updates and deletes of rows "
+"based on authorization token. Identify rows using <rowid_col> column."
+msgstr ""
+"Crée un déclencheur sur une table pour empêcher/autoriser les mises à jour "
+"(UPDATE) et les suppressions (DELETE) de lignes en se basant sur le jeton "
+"d'autorisation. Identifie les lignes en utilisant la colonne <"
+"rowid_col> ."
+
+#. Tag: para
+#: reference_transaction.xml:87
+#, no-c-format
+msgid ""
+"If a_schema_name is not passed in, then searches for table in current schema."
+msgstr ""
+"Si a_schema_name n'est pas passé en entrée, alors la table est cherchée dans "
+"le schéma courant."
+
+#. Tag: para
+#: reference_transaction.xml:88
+#, no-c-format
+msgid ""
+"If an authorization trigger already exists on this table function errors."
+msgstr ""
+"Si un déclencheur d'autorisation existe déjà sur la table alors la fonction "
+"renvoie une erreur."
+
+#. Tag: para
+#: reference_transaction.xml:89
+#, no-c-format
+msgid "If Transaction support is not enabled, function throws an exception."
+msgstr ""
+"Si le support des transactions longues n'est pas activé alors la fonction "
+"lance une exception."
+
+#. Tag: programlisting
+#: reference_transaction.xml:100
+#, no-c-format
+msgid ""
+"SELECT CheckAuth('public', 'towns', 'gid');\n"
+"                        result\n"
+"                        ------\n"
+"                        0"
+msgstr ""
+"SELECT CheckAuth('public', 'towns', 'gid');\n"
+"                        result\n"
+"                        ------\n"
+"                        0"
+
+#. Tag: refname
+#: reference_transaction.xml:113
+#, no-c-format
+msgid "DisableLongTransactions"
+msgstr "DisableLongTransactions"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:115
+#, no-c-format
+msgid ""
+"<refpurpose>Disable long transaction support. This function removes the long "
+"transaction support metadata tables, and drops all triggers attached to lock-"
+"checked tables.</refpurpose>"
+msgstr ""
+"<refpurpose>Désactive le support des transactions longues. Cette fonction "
+"supprime les tables de métadonnées du support de transactions longues, et "
+"supprime également tous les déclencheurs attachés aux tables pour lesquelles "
+"il y a une vérification de verrou.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_transaction.xml:122
+#, no-c-format
+msgid ""
+"<funcdef>text <function>DisableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>DisableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_transaction.xml:132
+#, no-c-format
+msgid ""
+"<para>Disable long transaction support. This function removes the long "
+"transaction support metadata tables, and drops all triggers attached to lock-"
+"checked tables.</para>"
+msgstr ""
+"<para>Désactive le support des transactions longues. Cette fonction supprime "
+"les tables de métadonnées du support de transactions longues, et supprime "
+"également tous les déclencheurs attachés aux tables pour lesquelles il y a "
+"une vérification de verrou.</para>"
+
+#. Tag: para
+#: reference_transaction.xml:135
+#, no-c-format
+msgid ""
+"Drops meta table called <varname>authorization_table</varname> and a view "
+"called <varname>authorized_tables</varname> and all triggers called "
+"<varname>checkauthtrigger</varname>"
+msgstr ""
+"Supprime la table de métadonnées nommée <varname>authorization_table</"
+"varname> et la vue nommée  <varname>authorized_tables</varname> ainsi que "
+"tous les déclencheurs nommés <varname>checkauthtrigger</varname>"
+
+#. Tag: programlisting
+#: reference_transaction.xml:146
+#, no-c-format
+msgid ""
+"SELECT DisableLongTransactions();\n"
+"--result--\n"
+"Long transactions support disabled"
+msgstr ""
+"SELECT DisableLongTransactions();\n"
+"--result--\n"
+"Long transactions support disabled"
+
+#. Tag: refname
+#: reference_transaction.xml:159
+#, no-c-format
+msgid "EnableLongTransactions"
+msgstr "EnableLongTransactions"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:161
+#, no-c-format
+msgid ""
+"<refpurpose>Enable long transaction support. This function creates the "
+"required metadata tables, needs to be called once before using the other "
+"functions in this section. Calling it twice is harmless.</refpurpose>"
+msgstr ""
+"<refpurpose>Active le support des transactions longues. Cette fonction crée "
+"les tables de métadonnées nécessaires. Elle doit être appelée une fois avant "
+"d'utiliser les autres fonctions de cette section. L'appeler deux fois ou "
+"plus n'a aucun effet.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_transaction.xml:169
+#, no-c-format
+msgid ""
+"<funcdef>text <function>EnableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>EnableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_transaction.xml:179
+#, no-c-format
+msgid ""
+"<para>Enable long transaction support. This function creates the required "
+"metadata tables, needs to be called once before using the other functions in "
+"this section. Calling it twice is harmless.</para>"
+msgstr ""
+"<para>Active le support des transactions longues. Cette fonction crée les "
+"tables de métadonnées nécessaires. Elle doit être appelée une fois avant "
+"d'utiliser les autres fonctions de cette section. L'appeler deux fois ou "
+"plus n'a aucun effet.</para>"
+
+#. Tag: para
+#: reference_transaction.xml:183
+#, no-c-format
+msgid ""
+"Creates a meta table called <varname>authorization_table</varname> and a "
+"view called <varname>authorized_tables</varname>"
+msgstr ""
+"Crée une table de métadonnées nommée <varname>authorization_table</varname> "
+"et une vue nommée <varname>authorized_tables</varname>"
+
+#. Tag: programlisting
+#: reference_transaction.xml:193
+#, no-c-format
+msgid ""
+"SELECT EnableLongTransactions();\n"
+"--result--\n"
+"Long transactions support enabled"
+msgstr ""
+"SELECT EnableLongTransactions();\n"
+"--result--\n"
+"Long transactions support enabled"
+
+#. Tag: refname
+#: reference_transaction.xml:206
+#, no-c-format
+msgid "LockRow"
+msgstr "LockRow"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:208
+#, no-c-format
+msgid "Set lock/authorization for specific row in table"
+msgstr ""
+"Active le vérouillage/l'autorisation pour une ligne spécifique de la table"
+
+#. Tag: funcsynopsis
+#: reference_transaction.xml:212
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>LockRow</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_row_key</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>an_auth_token</parameter></paramdef> "
+"<paramdef><type>timestamp</type> <parameter>expire_dt</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>integer <function>LockRow</"
+"function></funcdef> <paramdef><type>text </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>a_row_key</"
+"parameter></paramdef> <paramdef><type>text</type> <parameter>an_auth_token</"
+"parameter></paramdef> <paramdef><type>timestamp</type> <parameter>expire_dt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>LockRow</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_row_key</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>an_auth_token</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>integer <function>LockRow</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_row_key</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>an_auth_token</parameter></paramdef> "
+"<paramdef><type>timestamp</type> <parameter>expire_dt</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>integer <function>LockRow</"
+"function></funcdef> <paramdef><type>text </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>a_row_key</"
+"parameter></paramdef> <paramdef><type>text</type> <parameter>an_auth_token</"
+"parameter></paramdef> <paramdef><type>timestamp</type> <parameter>expire_dt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>LockRow</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_row_key</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>an_auth_token</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_transaction.xml:243
+#, no-c-format
+msgid ""
+"Set lock/authorization for specific row in table <authid> is a text "
+"value, <expires> is a timestamp defaulting to now()+1hour. Returns 1 "
+"if lock has been assigned, 0 otherwise (already locked by other auth)"
+msgstr ""
+"Active le vérouillage/l'autorisation pour la ligne spécifique dans la table  "
+"<authid> est une valeur textuelle,  <expires> est un timestamp "
+"(date+heure) qui vaut par défaut now()+1hour, Retourne 1 si le verrou a été "
+"assigné, sinon 0 (déjà verrouillé par une autre autorisation)"
+
+#. Tag: programlisting
+#: reference_transaction.xml:255
+#, no-c-format
+msgid ""
+"SELECT LockRow('public', 'towns', '2', 'joey');\n"
+"LockRow\n"
+"-------\n"
+"1\n"
+"\n"
+"--Joey has already locked the record and Priscilla is out of luck\n"
+"SELECT LockRow('public', 'towns', '2', 'priscilla');\n"
+"LockRow\n"
+"-------\n"
+"0"
+msgstr ""
+"SELECT LockRow('public', 'towns', '2', 'joey');\n"
+"LockRow\n"
+"-------\n"
+"1\n"
+"\n"
+"--Joey has already locked the record and Priscilla is out of luck\n"
+"SELECT LockRow('public', 'towns', '2', 'priscilla');\n"
+"LockRow\n"
+"-------\n"
+"0"
+
+#. Tag: refname
+#: reference_transaction.xml:268
+#, no-c-format
+msgid "UnlockRows"
+msgstr "UnlockRows"
+
+#. Tag: refpurpose
+#: reference_transaction.xml:270
+#, no-c-format
+msgid ""
+"<refpurpose>Remove all locks held by specified authorization id. Returns the "
+"number of locks released.</refpurpose>"
+msgstr ""
+"<refpurpose>Supprime tous les verrous que possède l'autorisation spécifiée. "
+"Retourne le nombre de verrous supprimés.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_transaction.xml:276
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>UnlockRows</function></funcdef> "
+"<paramdef><type>text </type> <parameter>auth_token</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>UnlockRows</function></funcdef> "
+"<paramdef><type>text </type> <parameter>auth_token</parameter></paramdef>"
+
+#. Tag: para
+#: reference_transaction.xml:286
+#, no-c-format
+msgid ""
+"<para>Remove all locks held by specified authorization id. Returns the "
+"number of locks released.</para>"
+msgstr ""
+"<para>Supprime tous les verrous que possède l'autorisation spécifiée. "
+"Retourne le nombre de verrous supprimés.</para>"
+
+#. Tag: programlisting
+#: reference_transaction.xml:296
+#, no-c-format
+msgid ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                SELECT LockRow('towns', '2', 'priscilla');\n"
+"                SELECT UnLockRows('priscilla');\n"
+"                UnLockRows\n"
+"                ------------\n"
+"                2"
+msgstr ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                SELECT LockRow('towns', '2', 'priscilla');\n"
+"                SELECT UnLockRows('priscilla');\n"
+"                UnLockRows\n"
+"                ------------\n"
+"                2"
diff --git a/doc/po/fr/reference_type.xml.po b/doc/po/fr/reference_type.xml.po
new file mode 100644
index 0000000..f8ed0cd
--- /dev/null
+++ b/doc/po/fr/reference_type.xml.po
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Nicolas Ribot <nicolas.ribot at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 21:04+0000\n"
+"PO-Revision-Date: 2013-11-27 16:24+0000\n"
+"Last-Translator: Nicolas Ribot <nicolas.ribot at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: para
+#: reference_type.xml:5
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by PostGIS. Note we "
+"describe the casting behavior of these which is very important especially "
+"when designing your own functions."
+msgstr ""
+"Cette section liste les types de données PostgreSQL installés par PostGIS. "
+"Leurs méthodes de transtypage sont également décrites, ce qui est "
+"particulièrement important lors de la définition/création de nouvelles "
+"fonctions."
+
+#. Tag: para
+#: reference_type.xml:8
+#, no-c-format
+msgid ""
+"A Cast is when one type is coerced into another type. PostgreSQL is unique "
+"from most databases in that it allows you to define casting behavior for "
+"custom types and the functions used for casting. A cast can be specified as "
+"automatic in which case, you do not have to do a CAST(myfoo As otherfootype) "
+"or myfoo::otherfootype if you are feeding it to a function that only works "
+"with otherfootype and there is an automatic cast in place for it."
+msgstr ""
+"Un transtypage ou cast est l'opération visant à changer un type de données "
+"vers un autres type. PostgreSQL offre la fonctionnalité assez unique de "
+"pouvoir définir les comportements des types spécifiques lors du transtypage "
+"et les fonctions utilisées lors du transtypage. Un transtypage peut être "
+"défini comme automatique, auquel cas il n'est pas nécessaire d'utiliser la "
+"fonction CAST(myfoo As otherfootype) ou myfoo::otherfootype lors de l'appel "
+"d'une fonction supportant uniquement otherfootype: le transtypage sera "
+"automatique."
+
+#. Tag: para
+#: reference_type.xml:13
+#, no-c-format
+msgid ""
+"The danger of relying on automatic cast behavior is when you have an "
+"overloaded function say one that takes a box2d and one that takes a box3d "
+"but no geometry. What happens is that both functions are equally good to use "
+"with geometry since geometry has an autocast for both -- so you end up with "
+"an ambiguous function error. To force PostgreSQL to choose, you do a "
+"CAST(mygeom As box3d) or mygeom::box3d."
+msgstr ""
+"Le danger lors de l'utilisation d'un transtypage automatique peut survenir "
+"si, par exemple, il existe une fonction surchargée prenant en paramètre une "
+"box2d et une prenant une box3d, mais aucune acceptant une geometry. Dans ce "
+"cas, les deux fonctions peuvent être utilisées avec un type geometry sachant "
+"que ce type peut être transtypé automatiquement vers les deux types box2d et "
+"box3d. Une erreur survient alors indiquant que la fonction est ambigüe. Pour "
+"forcer PostgreSQL à utiliser la bonne fonction, il faut utiliser la fonction "
+"CAST(mygeom As box3d) ou mygeom::box3d."
+
+#. Tag: para
+#: reference_type.xml:17
+#, no-c-format
+msgid ""
+"<emphasis>At least as of PostgreSQL 8.3</emphasis> - Everything can be CAST "
+"to text (presumably because of the magical unknown type), so no defined "
+"CASTS for that need to be present for you to CAST an object to text."
+msgstr ""
+"<emphasis>A partir de PostgreSQL 8.3</emphasis> - Tout peut être transtypé "
+"en texte (type text). Il n'est donc pas nécessaire de définir un opérateur "
+"de transtypage spécifique vers le type text.."
+
+#. Tag: title
+#: reference_type.xml:20
+#, no-c-format
+msgid "PostgreSQL PostGIS Geometry/Geography/Box Types"
+msgstr "Les types Geometry/Geography/Box de PostgreSQL PostGIS"
+
+#. Tag: refname
+#: reference_type.xml:24
+#, no-c-format
+msgid "<refname>box2d</refname>"
+msgstr "<refname>box2d</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:25
+#, no-c-format
+msgid ""
+"A box composed of x min, ymin, xmax, ymax. Often used to return the 2d "
+"enclosing box of a geometry."
+msgstr ""
+"Un rectangle composé des coordonnées xmin, ymin, xmax, ymax. Souvent utilisé "
+"pour renvoyer la boite 2d d'une géométrie."
+
+#. Tag: title
+#: reference_type.xml:29 reference_type.xml:40 reference_type.xml:79
+#: reference_type.xml:136 reference_type.xml:155
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: para
+#: reference_type.xml:30
+#, no-c-format
+msgid ""
+"box2d is a spatial data type used to represent the enclosing box of a "
+"geometry or set of geometries. ST_Extent in earlier versions prior to "
+"PostGIS 1.4 would return a box2d."
+msgstr ""
+"box2d est un type spatial utilisé pour représenter la boite englobante d'une "
+"géométrie ou d'un ensemble de géométries. Dans les versions de PostGIS "
+"antérieures à 1.4, la fonction ST_Extent renvoie une box2d."
+
+#. Tag: refname
+#: reference_type.xml:35
+#, no-c-format
+msgid "<refname>box3d</refname>"
+msgstr "<refname>box3d</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:36
+#, no-c-format
+msgid ""
+"A box composed of x min, ymin, zmin, xmax, ymax, zmax. Often used to return "
+"the 3d extent of a geometry or collection of geometries."
+msgstr ""
+"Une boite composée des coordonnées xmin, ymin, zmin, xmax, ymax, zmax. "
+"Souvent utilisé pour renvoyer la boite 3d d'une géométrie ou d'une "
+"collection de géométries."
+
+#. Tag: para
+#: reference_type.xml:41
+#, no-c-format
+msgid ""
+"box3d is a postgis spatial data type used to represent the enclosing box of "
+"a geometry or set of geometries. ST_3DExtent returns a box3d object."
+msgstr ""
+"box3d est un type spatial utilisé pour représenter la boite englobante d'une "
+"géométrie ou d'un ensemble de géométries en 3 dimensions. La fonction "
+"ST_3DExtent renvoie une box3d."
+
+#. Tag: title
+#: reference_type.xml:45 reference_type.xml:84 reference_type.xml:160
+#, no-c-format
+msgid "Casting Behavior"
+msgstr "Comportement du transtypage"
+
+#. Tag: para
+#: reference_type.xml:46 reference_type.xml:85 reference_type.xml:161
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+"Cette section liste les transtypages automatiques et explicites autorisés "
+"pour ce type de données"
+
+#. Tag: entry
+#: reference_type.xml:51 reference_type.xml:90 reference_type.xml:166
+#, no-c-format
+msgid "Cast To"
+msgstr "Transtypage vers"
+
+#. Tag: entry
+#: reference_type.xml:52 reference_type.xml:91 reference_type.xml:167
+#, no-c-format
+msgid "Behavior"
+msgstr "Comportement"
+
+#. Tag: entry
+#: reference_type.xml:55 reference_type.xml:94
+#, no-c-format
+msgid "<entry>box</entry>"
+msgstr "<entry>box</entry>"
+
+#. Tag: entry
+#: reference_type.xml:56 reference_type.xml:60 reference_type.xml:64
+#: reference_type.xml:95 reference_type.xml:99 reference_type.xml:103
+#: reference_type.xml:107 reference_type.xml:111 reference_type.xml:115
+#, no-c-format
+msgid "automatic"
+msgstr "automatique"
+
+#. Tag: entry
+#: reference_type.xml:59 reference_type.xml:98
+#, no-c-format
+msgid "<entry>box2d</entry>"
+msgstr "<entry>box2d</entry>"
+
+#. Tag: entry
+#: reference_type.xml:63 reference_type.xml:170
+#, no-c-format
+msgid "<entry>geometry</entry>"
+msgstr "<entry>geometry</entry>"
+
+#. Tag: refname
+#: reference_type.xml:74
+#, no-c-format
+msgid "<refname>geometry</refname>"
+msgstr "<refname>geometry</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:75
+#, no-c-format
+msgid "Planar spatial data type."
+msgstr "Type de données spatiales planaires"
+
+#. Tag: para
+#: reference_type.xml:80
+#, no-c-format
+msgid ""
+"geometry is a fundamental postgis spatial data type used to represent a "
+"feature in the Euclidean coordinate system."
+msgstr ""
+"Le type geometry est un type de données capital dans PostGIS, utilisé pour "
+"modéliser une entité dans un système de coordonées euclidien."
+
+#. Tag: entry
+#: reference_type.xml:102
+#, no-c-format
+msgid "<entry>box3d</entry>"
+msgstr "<entry>box3d</entry>"
+
+#. Tag: entry
+#: reference_type.xml:106
+#, no-c-format
+msgid "bytea"
+msgstr "bytea"
+
+#. Tag: entry
+#: reference_type.xml:110
+#, no-c-format
+msgid "<entry>geography</entry>"
+msgstr "<entry>geography</entry>"
+
+#. Tag: entry
+#: reference_type.xml:114
+#, no-c-format
+msgid "text"
+msgstr "text"
+
+#. Tag: title
+#: reference_type.xml:123 reference_type.xml:143 reference_type.xml:179
+#, no-c-format
+msgid "See Also"
+msgstr "Voir aussi"
+
+#. Tag: refname
+#: reference_type.xml:130
+#, no-c-format
+msgid "geometry_dump"
+msgstr "geometry_dump"
+
+#. Tag: refpurpose
+#: reference_type.xml:131
+#, no-c-format
+msgid ""
+"A spatial datatype with two fields - geom (holding a geometry object) and "
+"path[] (a 1-d array holding the position of the geometry within the dumped "
+"object.)"
+msgstr ""
+"Un type spatial comportant deux champs - geom (stockant un objet "
+"géométrique) et path[] (un tableau uni dimensionnel 1-d stockant la position "
+"de la géométrie dans la collection.) "
+
+#. Tag: para
+#: reference_type.xml:137
+#, no-c-format
+msgid ""
+"geometry_dump is a compound data type consisting of a geometry object "
+"referenced by the .geom field and path[] a 1-dimensional integer array "
+"(starting at 1 e.g. path[1] to get first element) array that defines the "
+"navigation path within the dumped geometry to find this element. It is used "
+"by the ST_Dump* family of functions as an output type to explode a more "
+"complex geometry into its constituent parts and location of parts."
+msgstr ""
+"geometry_dump est un type de données composite consistant en un objet "
+"géométrique référencé par le champ .geom et un tableau uni dimensionnel "
+"d'entiers référencé par le champ path[] donnant la position de chaque "
+"géométrie dans la collection (L'index du tableau démarre à 1. Par ex: "
+"path[1] pour obtenir le premier élément). Ce type utilisé par la famille de "
+"fonctions ST_Dump* comme type de retour pour exploser une géométrie complexe "
+"en ses parties élémentaires et les positions de ces parties."
+
+#. Tag: refname
+#: reference_type.xml:150
+#, no-c-format
+msgid "<refname>geography</refname>"
+msgstr "<refname>geography</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:151
+#, no-c-format
+msgid "Ellipsoidal spatial data type."
+msgstr "Type spatial ellipsoïdal"
+
+#. Tag: para
+#: reference_type.xml:156
+#, no-c-format
+msgid ""
+"geography is a spatial data type used to represent a feature in the round-"
+"earth coordinate system."
+msgstr ""
+"geography est un type de données spatiales utilisé pour représenter une "
+"entité dans les coordonnées sphériques de la terre."
+
+#. Tag: entry
+#: reference_type.xml:171
+#, no-c-format
+msgid "explicit"
+msgstr "explicite"
+
+#. Tag: para
+#: reference_type.xml:180
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_Geography\"/>"
+msgstr ", <xref linkend=\"PostGIS_Geography\"/>"
diff --git a/doc/po/fr/release_notes.xml.po b/doc/po/fr/release_notes.xml.po
new file mode 100644
index 0000000..7d02c13
--- /dev/null
+++ b/doc/po/fr/release_notes.xml.po
@@ -0,0 +1,6537 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Guy BARA <bara.guy at gmail.com>, 2014
+# Rodolphe Quiédeville <rodolphe at quiedeville.org>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-15 21:49+0000\n"
+"Last-Translator: Guy BARA <bara.guy at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: release_notes.xml:3
+#, no-c-format
+msgid "Appendix"
+msgstr "Annexes"
+
+#. Tag: subtitle
+#: release_notes.xml:4
+#, no-c-format
+msgid "Release Notes"
+msgstr "Notes de version"
+
+#. Tag: title
+#: release_notes.xml:6
+#, fuzzy, no-c-format
+msgid "Release 2.2.0"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:7
+#, fuzzy, no-c-format
+msgid "Release date: YYYY/MM/DD"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: title
+#: release_notes.xml:11
+#, fuzzy, no-c-format
+msgid "Release 2.1.4"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:12
+#, fuzzy, no-c-format
+msgid "Release date: 2014-09-10"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: para
+#: release_notes.xml:13
+#, no-c-format
+msgid "This is a bug fix and performance improvement release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:15 release_notes.xml:124 release_notes.xml:152
+#: release_notes.xml:271 release_notes.xml:449 release_notes.xml:477
+#: release_notes.xml:536 release_notes.xml:598 release_notes.xml:688
+#: release_notes.xml:889 release_notes.xml:944
+#, no-c-format
+msgid "Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:16
+#, no-c-format
+msgid "#2745, Speedup ST_Simplify calls against points"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:17
+#, no-c-format
+msgid "#2747, Support for GDAL 2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:18
+#, no-c-format
+msgid "#2749, Make rtpostgis_upgrade_20_21.sql ACID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:19
+#, no-c-format
+msgid "#2811, Do not specify index names when loading shapefiles/rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:20
+#, no-c-format
+msgid ""
+"#2829, Shortcut ST_Clip(raster) if geometry fully contains the raster and no "
+"NODATA specified"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:22
+#, no-c-format
+msgid ""
+"#2895, Raise cost of ST_ConvexHull(raster) to 300 for better query plans"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:26 release_notes.xml:87 release_notes.xml:98
+#: release_notes.xml:139 release_notes.xml:395 release_notes.xml:421
+#: release_notes.xml:463 release_notes.xml:487 release_notes.xml:550
+#: release_notes.xml:705 release_notes.xml:719 release_notes.xml:757
+#: release_notes.xml:795 release_notes.xml:826
+#, no-c-format
+msgid "Bug Fixes"
+msgstr "Correctifs"
+
+#. Tag: para
+#: release_notes.xml:27
+#, no-c-format
+msgid "#2605, armel: _ST_Covers() returns true for point in hole"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:28
+#, no-c-format
+msgid ""
+"#2911, Fix output scale on ST_Rescale/ST_Resample/ST_Resize of rasters with "
+"scale 1/-1 and offset 0/0."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:30
+#, no-c-format
+msgid "Fix crash in ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:31
+#, no-c-format
+msgid ""
+"#2704, ST_GeomFromGML() does not work properly with array of gml:pos (Even "
+"Roualt)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:33
+#, no-c-format
+msgid ""
+"#2708, updategeometrysrid doesn't update srid check when schema not "
+"specified. Patch from Marc Jansen"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:35
+#, no-c-format
+msgid "#2720, lwpoly_add_ring should update maxrings after realloc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:36
+#, no-c-format
+msgid ""
+"#2759, Fix postgis_restore.pl handling of multiline object comments "
+"embedding sql comments"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:38
+#, no-c-format
+msgid ""
+"#2774, fix undefined behavior in ptarray_calculate_gbox_geodetic - Fix "
+"potential memory fault in ST_MakeValid"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:40
+#, no-c-format
+msgid "#2784, Fix handling of bogus argument to --with-sfcgal"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:41
+#, no-c-format
+msgid "#2772, Premature memory free in RASTER_getBandPath (ST_BandPath)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:42
+#, no-c-format
+msgid "#2755, Fix regressions tests against all versions of SFCGAL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:43
+#, no-c-format
+msgid "#2775, lwline_from_lwmpoint leaks memory"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:44
+#, no-c-format
+msgid "#2802, ST_MapAlgebra checks for valid callback function return value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:45
+#, no-c-format
+msgid "#2803, ST_MapAlgebra handles no userarg and STRICT callback function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:46
+#, no-c-format
+msgid "#2834, ST_Estimated_Extent and mixedCase table names (regression bug)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:47
+#, no-c-format
+msgid "#2845, Bad geometry created from ST_AddPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:48
+#, no-c-format
+msgid ""
+"#2870, Binary insert into geography column results geometry being inserted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:49
+#, no-c-format
+msgid "#2872, make install builds documentation (Greg Troxell)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:50
+#, no-c-format
+msgid "#2819, find isfinite or replacement on Centos5 / Solaris"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:51
+#, no-c-format
+msgid "#2899, geocode limit 1 not returning best answer (tiger geocoder)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:52
+#, no-c-format
+msgid "#2903, Unable to compile on FreeBSD"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:53
+#, no-c-format
+msgid ""
+"#2927 reverse_geocode not filling in direction prefix (tiger geocoder) get "
+"rid of deprecated ST_Line_Locate_Point called"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:59
+#, fuzzy, no-c-format
+msgid "Release 2.1.3"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:60
+#, fuzzy, no-c-format
+msgid "Release date: 2014/05/13"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: para
+#: release_notes.xml:61
+#, no-c-format
+msgid "This is a bug fix and security release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:63
+#, no-c-format
+msgid "Important changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:64
+#, no-c-format
+msgid ""
+"Starting with this version offline raster access and use of GDAL drivers are "
+"disabled by default."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:69
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling specific GDAL "
+"drivers: POSTGIS_GDAL_ENABLED_DRIVERS. By default, all GDAL drivers are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:75
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling out-db raster "
+"bands: POSTGIS_ENABLE_OUTDB_RASTERS. By default, out-db raster bands are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:81
+#, no-c-format
+msgid ""
+"The environment variables must be set for the PostgreSQL process, and "
+"determines the behavior of the whole cluster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:88
+#, no-c-format
+msgid "#2697, invalid GeoJSON Polygon input crashes server process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:89
+#, no-c-format
+msgid "#2700, Fix dumping of higher-dimension datasets with null rows"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:90
+#, no-c-format
+msgid "#2706, ST_DumpPoints of EMPTY geometries crashes server"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:94
+#, fuzzy, no-c-format
+msgid "Release 2.1.2"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:95 release_notes.xml:392
+#, fuzzy, no-c-format
+msgid "Release date: 2014/03/31"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: para
+#: release_notes.xml:96
+#, fuzzy, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.1 release."
+msgstr ""
+"Ceci est une version de correction de bogues, pour résoudre des problèmes "
+"qui ont été déposées depuis la version 2.0.0."
+
+#. Tag: para
+#: release_notes.xml:99
+#, no-c-format
+msgid "#2666, Error out at configure time if no SQL preprocessor can be found"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:100
+#, no-c-format
+msgid "#2534, st_distance returning incorrect results for large geographies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:101
+#, no-c-format
+msgid "#2539, Check for json-c/json.h presence/usability before json/json.h"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:102
+#, no-c-format
+msgid "#2543, invalid join selectivity error from simple query"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:103
+#, no-c-format
+msgid "#2546, GeoJSON with string coordinates parses incorrectly"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:104
+#, no-c-format
+msgid "#2547, Fix ST_Simplify(TopoGeometry) for hierarchical topogeoms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:105 release_notes.xml:402
+#, no-c-format
+msgid "#2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:107 release_notes.xml:403
+#, no-c-format
+msgid "#2555, Fix parsing issue of range arguments of ST_Reclass"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:108
+#, no-c-format
+msgid "#2556, geography ST_Intersects results depending on insert order"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:109
+#, no-c-format
+msgid "#2580, Do not allow installing postgis twice in the same database"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:110 release_notes.xml:404
+#, no-c-format
+msgid "#2589, Remove use of unnecessary void pointers"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:111
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in one process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:112 release_notes.xml:406
+#, no-c-format
+msgid "#2610, Ensure face splitting algorithm uses the edge index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:113
+#, no-c-format
+msgid ""
+"#2615, EstimatedExtent (and hence, underlying stats) gathering wrong bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:114
+#, no-c-format
+msgid "#2619, Empty rings array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:115
+#, no-c-format
+msgid "#2634, regression in sphere distance code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:116 release_notes.xml:408
+#, no-c-format
+msgid "#2638, Geography distance on M geometries sometimes wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:117
+#, no-c-format
+msgid ""
+"#2648, #2653, Fix topology functions when \"topology\" is not in search_path"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:118
+#, no-c-format
+msgid "#2654, Drop deprecated calls from topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:119
+#, no-c-format
+msgid ""
+"#2655, Let users without topology privileges call postgis_full_version()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:120
+#, no-c-format
+msgid "#2674, Fix missing operator = and hash_raster_ops opclass on raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:121
+#, no-c-format
+msgid ""
+"#2675, #2534, #2636, #2634, #2638, Geography distance issues with tree "
+"optimization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:125
+#, no-c-format
+msgid "#2494, avoid memcopy in GiST index (hayamiz)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:126
+#, no-c-format
+msgid ""
+"#2560, soft upgrade: avoid drop/recreate of aggregates that hadn't changed"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:131
+#, fuzzy, no-c-format
+msgid "Release 2.1.1"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:132
+#, fuzzy, no-c-format
+msgid "Release date: 2013/11/06"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: para
+#: release_notes.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.0 release."
+msgstr ""
+"Ceci est une version de correction de bogues, pour résoudre des problèmes "
+"qui ont été déposées depuis la version 2.0.0."
+
+#. Tag: title
+#: release_notes.xml:135 release_notes.xml:411
+#, no-c-format
+msgid "Important Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:136
+#, no-c-format
+msgid ""
+"#2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:140
+#, no-c-format
+msgid "#2396, Make regression tests more endian-agnostic"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:141
+#, no-c-format
+msgid "#2434, Fix ST_Intersection(geog,geog) regression in rare cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:142
+#, no-c-format
+msgid ""
+"#2454, Fix behavior of ST_PixelAsXXX functions regarding "
+"exclude_nodata_value parameter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:143
+#, no-c-format
+msgid "#2489, Fix upgrades from 2.0 leaving stale function signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:144
+#, no-c-format
+msgid "#2525, Fix handling of SRID in nested collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:145
+#, no-c-format
+msgid "#2449, Fix potential infinite loop in index building"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:146
+#, no-c-format
+msgid "#2493, Fix behavior of ST_DumpValues when passed an empty raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:147 release_notes.xml:397
+#, no-c-format
+msgid "#2502, Fix postgis_topology_scripts_installed() install schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:148 release_notes.xml:398
+#, no-c-format
+msgid "#2504, Fix segfault on bogus pgsql2shp call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:149
+#, no-c-format
+msgid ""
+"#2512, Support for foreign tables and materialized views in raster_columns "
+"and raster_overviews"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:153
+#, no-c-format
+msgid "#2478, support for tiger 2013"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:154
+#, no-c-format
+msgid "#2463, support for exact length calculations on arc geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:160
+#, fuzzy, no-c-format
+msgid "Release 2.1.0"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:161
+#, fuzzy, no-c-format
+msgid "Release date: 2013/08/17"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: para
+#: release_notes.xml:162
+#, no-c-format
+msgid ""
+"This is a minor release addressing both bug fixes and performance and "
+"functionality enhancements addressing issues since 2.0.3 release. If you are "
+"upgrading from 2.0+, only a soft upgrade is required. If you are upgrading "
+"from 1.5 or earlier, a hard upgrade is required."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:165 release_notes.xml:634
+#, no-c-format
+msgid "Important / Breaking Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:166
+#, no-c-format
+msgid ""
+"#1653, Removed srid parameter from ST_Resample(raster) and variants with "
+"reference raster no longer apply reference raster's SRID."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:168
+#, no-c-format
+msgid ""
+"#1962 ST_Segmentize - As a result of the introduction of geography support, "
+"The construct: <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</"
+"code> will result in ambiguous function error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:172
+#, no-c-format
+msgid "#2026, ST_Union(raster) now unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:173
+#, no-c-format
+msgid "#2089, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:174
+#, no-c-format
+msgid ""
+"#2150, regular_blocking is no longer a constraint. column of same name in "
+"raster_columns now checks for existance of spatially_unique and "
+"coverage_tile constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:177
+#, no-c-format
+msgid ""
+"ST_Intersects(raster, geometry) behaves in the same manner as "
+"ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:179
+#, no-c-format
+msgid ""
+"point variant of ST_SetValue(raster) previously did not check SRID of input "
+"geometry and raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:181
+#, no-c-format
+msgid ""
+"ST_Hillshade parameters azimuth and altitude are now in degrees instead of "
+"radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:183
+#, no-c-format
+msgid ""
+"ST_Slope and ST_Aspect return pixel values in degrees instead of radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:184
+#, no-c-format
+msgid ""
+"#2104, ST_World2RasterCoord, ST_World2RasterCoordX and ST_World2RasterCoordY "
+"renamed to ST_WorldToRasterCoord, ST_WorldToRasterCoordX and "
+"ST_WorldToRasterCoordY. ST_Raster2WorldCoord, ST_Raster2WorldCoordX and "
+"ST_Raster2WorldCoordY renamed to ST_RasterToWorldCoord, "
+"ST_RasterToWorldCoordX and ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:190
+#, no-c-format
+msgid "ST_Estimated_Extent renamed to ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:191
+#, no-c-format
+msgid "ST_Line_Interpolate_Point renamed to ST_LineInterpolatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:192
+#, no-c-format
+msgid "ST_Line_Substring renamed to ST_LineSubstring"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:193
+#, no-c-format
+msgid "ST_Line_Locate_Point renamed to ST_LineLocatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:194
+#, no-c-format
+msgid "ST_Force_XXX renamed to ST_ForceXXX"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:195
+#, no-c-format
+msgid ""
+"ST_MapAlgebraFctNgb and 1 and 2 raster variants of ST_MapAlgebraFct. Use "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:197
+#, no-c-format
+msgid ""
+"1 and 2 raster variants of ST_MapAlgebraExpr. Use expression variants of "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:202 release_notes.xml:661 release_notes.xml:861
+#: release_notes.xml:925 release_notes.xml:1222
+#, no-c-format
+msgid "New Features"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:203
+#, no-c-format
+msgid ""
+"- Refer to http://postgis.net/docs/manual-2.1/"
+"PostGIS_Special_Functions_Index.html#NewFunctions_2_1 for complete list of "
+"new functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:205
+#, no-c-format
+msgid ""
+"#310, ST_DumpPoints converted to a C function (Nathan Wagner) and much faster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:206
+#, no-c-format
+msgid "#739, UpdateRasterSRID()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:207
+#, no-c-format
+msgid ""
+"#945, improved join selectivity, N-D selectivity calculations, user "
+"accessible selectivity and stats reader functions for testing (Paul Ramsey / "
+"OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:210
+#, no-c-format
+msgid "toTopoGeom with TopoGeometry sink (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:211
+#, no-c-format
+msgid "clearTopoGeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:212
+#, no-c-format
+msgid "ST_Segmentize(geography) (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:213
+#, no-c-format
+msgid "ST_DelaunayTriangles (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:214
+#, no-c-format
+msgid "ST_NearestValue, ST_Neighborhood (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:215
+#, no-c-format
+msgid "ST_PixelAsPoint, ST_PixelAsPoints (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:216
+#, no-c-format
+msgid "ST_PixelAsCentroid, ST_PixelAsCentroids (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:217
+#, no-c-format
+msgid "ST_Raster2WorldCoord, ST_World2RasterCoord (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:218
+#, no-c-format
+msgid ""
+"Additional raster/raster spatial relationship functions (ST_Contains, "
+"ST_ContainsProperly, ST_Covers, ST_CoveredBy, ST_Disjoint, ST_Overlaps, "
+"ST_Touches, ST_Within, ST_DWithin, ST_DFullyWithin) (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:222
+#, no-c-format
+msgid ""
+"Added array variants of ST_SetValues() to set many pixel values of a band in "
+"one call (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:224
+#, no-c-format
+msgid "#1293, ST_Resize(raster) to resize rasters based upon width/height"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:225
+#, no-c-format
+msgid "#1627, package tiger_geocoder as a PostgreSQL extension"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:226
+#, no-c-format
+msgid ""
+"#1643, #2076, Upgrade tiger geocoder to support loading tiger 2011 and 2012 "
+"(Regina Obe / Paragon Corporation) Funded by Hunter Systems Group"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:228
+#, no-c-format
+msgid ""
+"GEOMETRYCOLLECTION support for ST_MakeValid (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:229
+#, no-c-format
+msgid "#1709, ST_NotSameAlignmentReason(raster, raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:230
+#, no-c-format
+msgid "#1818, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:231
+#, no-c-format
+msgid "#1856, reverse geocoder rating setting for prefer numbered highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:232
+#, no-c-format
+msgid "ST_PixelOfValue (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:233
+#, no-c-format
+msgid "Casts to/from PostgreSQL geotypes (point/path/polygon)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:234
+#, no-c-format
+msgid ""
+"Added geomval array variant of ST_SetValues() to set many pixel values of a "
+"band using a set of geometries and corresponding values in one call (Bborie "
+"Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:237
+#, no-c-format
+msgid ""
+"ST_Tile(raster) to break up a raster into tiles (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:238
+#, no-c-format
+msgid "#1895, new r-tree node splitting algorithm (Alex Korotkov)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:239
+#, no-c-format
+msgid "#2011, ST_DumpValues to output raster as array (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:240
+#, no-c-format
+msgid ""
+"#2018, ST_Distance support for CircularString, CurvePolygon, MultiCurve, "
+"MultiSurface, CompoundCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:242
+#, no-c-format
+msgid "#2030, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:243
+#, no-c-format
+msgid ""
+"#2193, Utilize PAGC parser as drop in replacement for tiger normalizer "
+"(Steve Woodbridge, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:245
+#, no-c-format
+msgid "#2210, ST_MinConvexHull(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:246
+#, no-c-format
+msgid "lwgeom_from_geojson in liblwgeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:247
+#, no-c-format
+msgid "#1687, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:248
+#, no-c-format
+msgid "#2228, TopoJSON output for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:249
+#, no-c-format
+msgid "#2123, ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:250
+#, no-c-format
+msgid "#613, ST_SetGeoReference with numerical parameters instead of text"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:251
+#, no-c-format
+msgid "#2276, ST_AddBand(raster) variant for out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:252
+#, no-c-format
+msgid "#2280, ST_Summary(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:253
+#, no-c-format
+msgid "#2163, ST_TPI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:254
+#, no-c-format
+msgid "#2164, ST_TRI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:255
+#, no-c-format
+msgid "#2302, ST_Roughness for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:256
+#, no-c-format
+msgid "#2290, ST_ColorMap(raster) to generate RGBA bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:257
+#, no-c-format
+msgid ""
+"#2254, Add SFCGAL backend support. (Backend selection throught postgis."
+"backend var) Functions available both throught GEOS or SFCGAL: "
+"ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, ST_Distance, "
+"ST_3DDistance New functions available only with SFCGAL backend: "
+"ST_3DIntersection, ST_Tesselate, ST_3DArea, ST_Extrude, ST_ForceLHR "
+"ST_Orientation, ST_Minkowski, ST_StraightSkeleton postgis_sfcgal_version New "
+"function available in PostGIS: ST_ForceSFS (Olivier Courtin and Hugo "
+"Mercier / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:272
+#, no-c-format
+msgid ""
+"For detail of new functions and function improvements, please refer to <xref "
+"linkend=\"NewFunctions_2_1\"/>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:273
+#, no-c-format
+msgid ""
+"Much faster raster ST_Union, ST_Clip and many more function additions "
+"operations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:274
+#, no-c-format
+msgid ""
+"For geometry/geography better planner selectivity and a lot more functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:276
+#, no-c-format
+msgid ""
+"#823, tiger geocoder: Make loader_generate_script download portion less "
+"greedy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:278
+#, no-c-format
+msgid ""
+"#826, raster2pgsql no longer defaults to padding tiles. Flag -P can be used "
+"to pad tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:280
+#, no-c-format
+msgid "#1363, ST_AddBand(raster, ...) array version rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:281
+#, no-c-format
+msgid "#1364, ST_Union(raster, ...) aggregate function rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:282
+#, no-c-format
+msgid "#1655, Additional default values for parameters of ST_Slope"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:283
+#, no-c-format
+msgid "#1661, Add aggregate variant of ST_SameAlignment"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:284
+#, no-c-format
+msgid "#1719, Add support for Point and GeometryCollection ST_MakeValid inputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:285
+#, no-c-format
+msgid "#1780, support ST_GeoHash for geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:286
+#, no-c-format
+msgid "#1796, Big performance boost for distance calculations in geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:287
+#, no-c-format
+msgid "#1802, improved function interruptibility."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:288
+#, no-c-format
+msgid ""
+"#1823, add parameter in ST_AsGML to use id column for GML 3 output (become "
+"mandatory since GML 3.2.1)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:290
+#, no-c-format
+msgid ""
+"#1856, tiger geocoder: reverse geocoder rating setting for prefer numbered "
+"highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:292
+#, no-c-format
+msgid "#1938, Refactor basic ST_AddBand to add multiple new bands in one call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:293
+#, no-c-format
+msgid ""
+"#1978, wrong answer when calculating length of a closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:295 release_notes.xml:505
+#, no-c-format
+msgid ""
+"#1989, Preprocess input geometry to just intersection with raster to be "
+"clipped"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:297
+#, no-c-format
+msgid ""
+"#2021, Added multi-band support to ST_Union(raster, ...) aggregate function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:298
+#, no-c-format
+msgid "#2006, better support of ST_Area(geography) over poles and dateline"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:299
+#, no-c-format
+msgid "#2065, ST_Clip(raster, ...) now a C function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:300
+#, no-c-format
+msgid "#2069, Added parameters to ST_Tile(raster) to control padding of tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:301
+#, no-c-format
+msgid ""
+"#2078, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide "
+"solution to handling tiles in a coverage"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:303
+#, no-c-format
+msgid "#2097, Added RANGE uniontype option for ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:304
+#, no-c-format
+msgid ""
+"#2105, Added ST_Transform(raster) variant for aligning output to reference "
+"raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:306
+#, no-c-format
+msgid ""
+"#2119, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(), and "
+"ST_SnapToGrid() no longer require an SRID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:308 release_notes.xml:478
+#, no-c-format
+msgid ""
+"#2141, More verbose output when constraints fail to be added to a raster "
+"column"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:310
+#, no-c-format
+msgid "#2143, Changed blocksize constraint of raster to allow multiple values"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:311
+#, no-c-format
+msgid "#2148, Addition of coverage_tile constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:312
+#, no-c-format
+msgid "#2149, Addition of spatially_unique constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:313
+#, no-c-format
+msgid ""
+"TopologySummary output now includes unregistered layers and a count of "
+"missing TopoGeometry objects from their natural layer."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:315
+#, no-c-format
+msgid ""
+"ST_HillShade(), ST_Aspect() and ST_Slope() have one new optional parameter "
+"to interpolate NODATA pixels before running the operation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:318
+#, no-c-format
+msgid ""
+"Point variant of ST_SetValue(raster) is now a wrapper around geomval variant "
+"of ST_SetValues(rast)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:320
+#, no-c-format
+msgid "Proper support for raster band's isnodata flag in core API and loader."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:321
+#, no-c-format
+msgid "Additional default values for parameters of ST_Aspect and ST_HillShade"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:322
+#, no-c-format
+msgid ""
+"#2178, ST_Summary now advertises presence of known srid with an [S] flag"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:323
+#, no-c-format
+msgid "#2202, Make libjson-c optional (--without-json configure switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:324
+#, no-c-format
+msgid "#2213, Add support libjson-c 0.10+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:325
+#, no-c-format
+msgid "#2231, raster2pgsql supports user naming of filename column with -n"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:326
+#, no-c-format
+msgid "#2200, ST_Union(raster, uniontype) unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:327
+#, no-c-format
+msgid ""
+"#2264, postgis_restore.pl support for restoring into databases with postgis "
+"in a custom schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:329
+#, no-c-format
+msgid ""
+"#2244, emit warning when changing raster's georeference if raster has out-db "
+"bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:331
+#, no-c-format
+msgid ""
+"#2222, add parameter OutAsIn to flag whether ST_AsBinary should return out-"
+"db bands as in-db bands"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:335
+#, fuzzy, no-c-format
+msgid "Fixes"
+msgstr "Correctifs"
+
+#. Tag: para
+#: release_notes.xml:336 release_notes.xml:580
+#, no-c-format
+msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:337 release_notes.xml:581
+#, no-c-format
+msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:338
+#, no-c-format
+msgid "#1870, align the docs and actual behavior of raster's ST_Intersects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:339 release_notes.xml:587
+#, no-c-format
+msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:340 release_notes.xml:590
+#, no-c-format
+msgid ""
+"#1875, ST_SummaryStats returns NULL for all parameters except count when "
+"count is zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:342
+#, no-c-format
+msgid "#1932, fix raster2pgsql of syntax for index tablespaces"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:343 release_notes.xml:498
+#, no-c-format
+msgid "#1936, ST_GeomFromGML on CurvePolygon causes server crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:344
+#, no-c-format
+msgid ""
+"#1939, remove custom data types: summarystats, histogram, quantile, "
+"valuecount"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:346
+#, no-c-format
+msgid "#1951, remove crash on zero-length linestrings"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:347 release_notes.xml:500
+#, no-c-format
+msgid "#1957, ST_Distance to a one-point LineString returns NULL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:348 release_notes.xml:501
+#, no-c-format
+msgid "#1976, Geography point-in-ring code overhauled for more reliability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:349
+#, no-c-format
+msgid "#1981, cleanup of unused variables causing warnings with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:350 release_notes.xml:508
+#, no-c-format
+msgid "#1996, support POINT EMPTY in GeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:351
+#, no-c-format
+msgid "#2062, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:352 release_notes.xml:519
+#, no-c-format
+msgid "#2057, Fixed linking issue for raster2psql to libpq"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:353
+#, no-c-format
+msgid "#2077, Fixed incorrect values returning from ST_Hillshade()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:354 release_notes.xml:512
+#, no-c-format
+msgid "#2019, ST_FlipCoordinates does not update bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:355
+#, no-c-format
+msgid "#2100, ST_AsRaster may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:356 release_notes.xml:464
+#, no-c-format
+msgid "#2126, Better handling of empty rasters from ST_ConvexHull()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:357 release_notes.xml:425
+#, no-c-format
+msgid "#2165, ST_NumPoints regression failure with CircularString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:358 release_notes.xml:426
+#, no-c-format
+msgid "#2168, ST_Distance is not always commutative"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:359
+#, no-c-format
+msgid "#2182, Fix issue with outdb rasters with no SRID and ST_Resize"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:360 release_notes.xml:472
+#, no-c-format
+msgid ""
+"#2188, Fix function parameter value overflow that caused problems when "
+"copying data from a GDAL dataset"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:362
+#, no-c-format
+msgid ""
+"#2198, Fix incorrect dimensions used when generating bands of out-db rasters "
+"in ST_Tile()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:364 release_notes.xml:428
+#, no-c-format
+msgid "#2201, ST_GeoHash wrong on boundaries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:365
+#, no-c-format
+msgid ""
+"#2203, Changed how rasters with unknown SRID and default geotransform are "
+"handled when passing to GDAL Warp API"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:367
+#, no-c-format
+msgid ""
+"#2215, Fixed raster exclusion constraint for conflicting name of implicit "
+"index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:369
+#, no-c-format
+msgid ""
+"#2251, Fix bad dimensions when rescaling rasters with default geotransform "
+"matrix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:371
+#, no-c-format
+msgid ""
+"#2133, Fix performance regression in expression variant of ST_MapAlgebra"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:372 release_notes.xml:429
+#, no-c-format
+msgid ""
+"#2257, GBOX variables not initialized when testing with empty geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:373 release_notes.xml:430
+#, no-c-format
+msgid "#2271, Prevent parallel make of raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:374
+#, no-c-format
+msgid "#2282, Fix call to undefined function nd_stats_to_grid() in debug mode"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:375 release_notes.xml:433
+#, no-c-format
+msgid "#2307, ST_MakeValid outputs invalid geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:376
+#, no-c-format
+msgid "#2309, Remove confusing INFO message when trying to get SRS info"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:377
+#, no-c-format
+msgid "#2336, FIPS 20 (KS) causes wildcard expansion to wget all files"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:378
+#, no-c-format
+msgid "#2348, Provide raster upgrade path for 2.0 to 2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:379 release_notes.xml:434
+#, no-c-format
+msgid "#2351, st_distance between geographies wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:380
+#, no-c-format
+msgid "#2359, Fix handling of schema name when adding overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:381 release_notes.xml:436
+#, no-c-format
+msgid "#2371, Support GEOS versions with more than 1 digit in micro"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:382
+#, no-c-format
+msgid "#2383, Remove unsafe use of \\' from raster warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:383
+#, no-c-format
+msgid "#2384, Incorrect variable datatypes for ST_Neighborhood"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:385 release_notes.xml:453
+#, no-c-format
+msgid "Known Issues"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:386 release_notes.xml:454
+#, no-c-format
+msgid ""
+"#2111, Raster bands can only reference the first 256 bands of out-db rasters"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:391
+#, fuzzy, no-c-format
+msgid "Release 2.0.5"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:393
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.4 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:396
+#, no-c-format
+msgid "#2494, avoid memcpy in GIST index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:399
+#, no-c-format
+msgid "#2528, Fix memory leak in ST_Split / lwline_split_by_line"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:400
+#, no-c-format
+msgid "#2532, Add missing raster/geometry commutator operators"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:401
+#, no-c-format
+msgid "#2533, Remove duplicated signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:405
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:407
+#, no-c-format
+msgid "#2619, Empty ring array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:412
+#, no-c-format
+msgid ""
+"##2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:417
+#, fuzzy, no-c-format
+msgid "Release 2.0.4"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:418
+#, fuzzy, no-c-format
+msgid "Release date: 2013/09/06"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: para
+#: release_notes.xml:419
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.3 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:422
+#, no-c-format
+msgid "#2110, Equality operator between EMPTY and point on origin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:423
+#, no-c-format
+msgid "Allow adding points at precision distance with TopoGeo_addPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:424
+#, no-c-format
+msgid "#1968, Fix missing edge from toTopoGeom return"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:427
+#, no-c-format
+msgid "#2186, gui progress bar updates too frequent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:431
+#, no-c-format
+msgid "#2267, Server crash from analyze table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:432
+#, no-c-format
+msgid "#2277, potential segfault removed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:435
+#, no-c-format
+msgid "#2359, Incorrect handling of schema for overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:437
+#, no-c-format
+msgid "#2372, Cannot parse space-padded KML coordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:438
+#, no-c-format
+msgid "Fix build with systemwide liblwgeom installed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:439
+#, no-c-format
+msgid "#2383, Fix unsafe use of \\' in warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:440
+#, no-c-format
+msgid "#2410, Fix segmentize of collinear curve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:441
+#, no-c-format
+msgid "#2412, ST_LineToCurve support for lines with less than 4 vertices"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:442
+#, no-c-format
+msgid "#2415, ST_Multi support for COMPOUNDCURVE and CURVEPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:443
+#, no-c-format
+msgid "#2420, ST_LineToCurve: require at least 8 edges to define a full circle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:444
+#, no-c-format
+msgid "#2423, ST_LineToCurve: require all arc edges to form the same angle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:445
+#, no-c-format
+msgid "#2424, ST_CurveToLine: add support for COMPOUNDCURVE in MULTICURVE"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:446
+#, no-c-format
+msgid "#2427, Make sure to retain first point of curves on ST_CurveToLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:450
+#, no-c-format
+msgid "#2269, Avoid uselessly detoasting full geometries on ANALYZE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:459
+#, fuzzy, no-c-format
+msgid "Release 2.0.3"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:460
+#, fuzzy, no-c-format
+msgid "Release date: 2013/03/01"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: para
+#: release_notes.xml:461
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.2 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:465
+#, no-c-format
+msgid "#2134, Make sure to process SRS before passing it off to GDAL functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:466
+#, no-c-format
+msgid "Fix various memory leaks in liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:467
+#, no-c-format
+msgid ""
+"#2173, Fix robustness issue in splitting a line with own vertex also "
+"affecting topology building (#2172)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:468
+#, no-c-format
+msgid "#2174, Fix usage of wrong function lwpoly_free()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:469
+#, no-c-format
+msgid "#2176, Fix robustness issue with ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:470
+#, no-c-format
+msgid "#2184, Properly copy topologies with Z value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:471
+#, no-c-format
+msgid "postgis_restore.pl support for mixed case geometry column name in dumps"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:473
+#, no-c-format
+msgid "#2216, More memory errors in MultiPolygon GeoJSON parsing (with holes)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:474
+#, no-c-format
+msgid "Fix Memory leak in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:479
+#, no-c-format
+msgid "Speedup ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:483
+#, fuzzy, no-c-format
+msgid "Release 2.0.2"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:484
+#, fuzzy, no-c-format
+msgid "Release date: 2012/12/03"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: para
+#: release_notes.xml:485
+#, fuzzy, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.1 release."
+msgstr ""
+"Ceci est une version de correction de bogues, pour résoudre des problèmes "
+"qui ont été déposées depuis la version 2.0.0."
+
+#. Tag: para
+#: release_notes.xml:488
+#, no-c-format
+msgid ""
+"#1287, Drop of \"gist_geometry_ops\" broke a few clients package of "
+"legacy_gist.sql for these cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:490
+#, no-c-format
+msgid "#1391, Errors during upgrade from 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:491
+#, no-c-format
+msgid "#1828, Poor selectivity estimate on ST_DWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:492
+#, no-c-format
+msgid "#1838, error importing tiger/line data"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:493
+#, no-c-format
+msgid ""
+"#1869, ST_AsBinary is not unique added to legacy_minor/legacy.sql scripts"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:494
+#, no-c-format
+msgid "#1885, Missing field from tabblock table in tiger2010 census_loader.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:495
+#, no-c-format
+msgid "#1891, Use LDFLAGS environment when building liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:496
+#, no-c-format
+msgid "#1900, Fix pgsql2shp for big-endian systems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:497
+#, no-c-format
+msgid "#1932, Fix raster2pgsql for invalid syntax for setting index tablespace"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:499
+#, no-c-format
+msgid "#1955, ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:502
+#, no-c-format
+msgid "#1978, wrong answer calculating length of closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:503
+#, no-c-format
+msgid "#1981, Remove unused but set variables as found with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:504
+#, no-c-format
+msgid "#1987, Restore 1.5.x behaviour of ST_Simplify"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:507
+#, no-c-format
+msgid "#1991, geocode really slow on PostgreSQL 9.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:509
+#, no-c-format
+msgid "#1998, Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:510
+#, no-c-format
+msgid ""
+"#2001, ST_CurveToLine has no effect if the geometry doesn't actually contain "
+"an arc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:511
+#, no-c-format
+msgid "#2015, ST_IsEmpty('POLYGON(EMPTY)') returns False"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:513
+#, no-c-format
+msgid "#2025, Fix side location conflict at TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:514
+#, no-c-format
+msgid "#2026, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:515
+#, no-c-format
+msgid "#2033, Fix adding a splitting point into a 2.5d topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:516
+#, no-c-format
+msgid "#2051, Fix excess of precision in ST_AsGeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:517
+#, no-c-format
+msgid "#2052, Fix buffer overflow in lwgeom_to_geojson"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:518
+#, no-c-format
+msgid "#2056, Fixed lack of SRID check of raster and geometry in ST_SetValue()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:520
+#, no-c-format
+msgid "#2060, Fix \"dimension\" check violation by GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:521
+#, no-c-format
+msgid ""
+"#2072, Removed outdated checks preventing ST_Intersects(raster) from working "
+"on out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:523
+#, no-c-format
+msgid "#2077, Fixed incorrect answers from ST_Hillshade(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:524
+#, no-c-format
+msgid ""
+"#2092, Namespace issue with ST_GeomFromKML,ST_GeomFromGML for libxml 2.8+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:525
+#, no-c-format
+msgid "#2099, Fix double free on exception in ST_OffsetCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:526
+#, no-c-format
+msgid "#2100, ST_AsRaster() may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:527
+#, no-c-format
+msgid "#2108, Ensure ST_Line_Interpolate_Point always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:528
+#, no-c-format
+msgid "#2109, Ensure ST_Centroid always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:529
+#, no-c-format
+msgid "#2117, Ensure ST_PointOnSurface always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:530
+#, no-c-format
+msgid "#2129, Fix SRID in ST_Homogenize output with collection input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:531
+#, no-c-format
+msgid "#2130, Fix memory error in MultiPolygon GeoJson parsing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:533
+#, no-c-format
+msgid "Update URL of Maven jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:537
+#, no-c-format
+msgid ""
+"#1581, ST_Clip(raster, ...) no longer imposes NODATA on a band if the "
+"corresponding band from the source raster did not have NODATA"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:539
+#, no-c-format
+msgid ""
+"#1928, Accept array properties in GML input multi-geom input (Kashif Rasul "
+"and Shoaib Burq / SpacialDB)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:541
+#, no-c-format
+msgid "#2082, Add indices on start_node and end_node of topology edge tables"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:542
+#, no-c-format
+msgid "#2087, Speedup topology.GetRingEdges using a recursive CTE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:546
+#, no-c-format
+msgid "Release 2.0.1"
+msgstr "Version 2.0.1"
+
+#. Tag: para
+#: release_notes.xml:547
+#, no-c-format
+msgid "Release date: 2012/06/22"
+msgstr "Date de version : 22/06/2012"
+
+#. Tag: para
+#: release_notes.xml:548
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.0 release."
+msgstr ""
+"Ceci est une version de correction de bogues, pour résoudre des problèmes "
+"qui ont été déposées depuis la version 2.0.0."
+
+#. Tag: para
+#: release_notes.xml:551
+#, no-c-format
+msgid "#1264, fix st_dwithin(geog, geog, 0)."
+msgstr "#1264, correction de st_dwithin(geog, geog, 0)."
+
+#. Tag: para
+#: release_notes.xml:552
+#, no-c-format
+msgid "#1468 shp2pgsql-gui table column schema get shifted"
+msgstr "#1468 shp2pgsql-gui table, colonne et schéma ont été déplacé."
+
+#. Tag: para
+#: release_notes.xml:553
+#, no-c-format
+msgid "#1694, fix building with clang. (vince)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:554
+#, no-c-format
+msgid "#1708, improve restore of pre-PostGIS 2.0 backups."
+msgstr ""
+"#1708, amélioration des restaurations des sauvegardes de la preversion de "
+"Postgis 2.0."
+
+#. Tag: para
+#: release_notes.xml:555
+#, no-c-format
+msgid "#1714, more robust handling of high topology tolerance."
+msgstr "#1714, traitement plus robuste de la tolérance de la topologie."
+
+#. Tag: para
+#: release_notes.xml:556
+#, no-c-format
+msgid "#1755, ST_GeographyFromText support for higher dimensions."
+msgstr ""
+"#1755, ST_GeographyFromText supporte désormais une dimension plus importante."
+
+#. Tag: para
+#: release_notes.xml:557
+#, no-c-format
+msgid "#1759, loading transformed shapefiles in raster enabled db."
+msgstr ""
+"#1759, le chargement de fichier de formes transformé en raster est permise."
+
+#. Tag: para
+#: release_notes.xml:558
+#, no-c-format
+msgid ""
+"#1761, handling of subdatasets in NetCDF, HDF4 and HDF5 in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:559
+#, no-c-format
+msgid "#1763, topology.toTopoGeom use with custom search_path."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:560
+#, no-c-format
+msgid "#1766, don't let ST_RemEdge* destroy peripheral TopoGeometry objects."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:561
+#, no-c-format
+msgid "#1774, Clearer error on setting an edge geometry to an invalid one."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:562
+#, no-c-format
+msgid "#1775, ST_ChangeEdgeGeom collision detection with 2-vertex target."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:563
+#, no-c-format
+msgid "#1776, fix ST_SymDifference(empty, geom) to return geom."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:564
+#, no-c-format
+msgid "#1779, install SQL comment files."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:565
+#, no-c-format
+msgid "#1782, fix spatial reference string handling in raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:566
+#, no-c-format
+msgid "#1789, fix false edge-node crossing report in ValidateTopology."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:567
+#, no-c-format
+msgid "#1790, fix toTopoGeom handling of duplicated primitives."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:568
+#, no-c-format
+msgid "#1791, fix ST_Azimuth with very close but distinct points."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:569
+#, no-c-format
+msgid "#1797, fix (ValidateTopology(xxx)).* syntax calls."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:570
+#, no-c-format
+msgid "#1805, put back the 900913 SRID entry."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:571
+#, no-c-format
+msgid "#1813, Only show readable relations in metadata tables."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:572
+#, no-c-format
+msgid ""
+"#1819, fix floating point issues with ST_World2RasterCoord and "
+"ST_Raster2WorldCoord variants."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:574
+#, no-c-format
+msgid "#1820 compilation on 9.2beta1."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:575
+#, no-c-format
+msgid "#1822, topology load on PostgreSQL 9.2beta1."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:576
+#, no-c-format
+msgid "#1825, fix prepared geometry cache lookup"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:577
+#, no-c-format
+msgid "#1829, fix uninitialized read in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:578
+#, no-c-format
+msgid ""
+"#1834, revise postgis extension to only backup user specified spatial_ref_sys"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:582
+#, no-c-format
+msgid "#1851, fix spatial_ref_system parameters for EPSG:3844"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:583
+#, no-c-format
+msgid "#1857, fix failure to detect endpoint mismatch in ST_AddEdge*Face*"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:584
+#, no-c-format
+msgid ""
+"#1865, data loss in postgis_restore.pl when data rows have leading dashes."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:586
+#, no-c-format
+msgid "#1867, catch invalid topology name passed to topogeo_add*"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:588
+#, no-c-format
+msgid ""
+"#1873, fix ptarray_locate_point to return interpolated Z/M values for on-the-"
+"line case"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:592
+#, no-c-format
+msgid "#1881, shp2pgsql-gui -- editing a field sometimes triggers removing row"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:594
+#, no-c-format
+msgid ""
+"#1883, Geocoder install fails trying to run create_census_base_tables() "
+"(Brian Panulla)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:599
+#, no-c-format
+msgid "More detailed exception message from topology editing functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:600
+#, no-c-format
+msgid "#1786, improved build dependencies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:601
+#, no-c-format
+msgid "#1806, speedup of ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:602
+#, no-c-format
+msgid "#1812, Add lwgeom_normalize in LIBLWGEOM for more stable testing."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:606
+#, no-c-format
+msgid "Release 2.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:607
+#, no-c-format
+msgid "Release date: 2012/04/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:608
+#, no-c-format
+msgid ""
+"This is a major release. A hard upgrade is required. Yes this means a full "
+"dump reload and some special preparations if you are using obsolete "
+"functions. Refer to <xref linkend=\"hard_upgrade\"/> for details on "
+"upgrading. Refer to <xref linkend=\"NewFunctions_2_0\"/> for more details "
+"and changed/new functions."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:612
+#, no-c-format
+msgid "Testers - Our unsung heroes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:613
+#, no-c-format
+msgid ""
+"We are most indebted to the numerous members in the PostGIS community who "
+"were brave enough to test out the new features in this release. No major "
+"release can be successful without these folk."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:616
+#, no-c-format
+msgid ""
+"Below are those who have been most valiant, provided very detailed and "
+"thorough bug reports, and detailed analysis."
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:620
+#, no-c-format
+msgid "Andrea Peri - Lots of testing on topology, checking for correctness"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:621
+#, no-c-format
+msgid "Andreas Forø Tollefsen - raster testing"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:622
+#, no-c-format
+msgid "Chris English - topology stress testing loader functions"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:623
+#, no-c-format
+msgid "Salvatore Larosa - topology robustness testing"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:624
+#, no-c-format
+msgid ""
+"Brian Hamlin - Benchmarking (also experimental experimental branches before "
+"they are folded into core) , general testing of various pieces including "
+"Tiger and Topology. Testing on various server VMs"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:629
+#, no-c-format
+msgid "Mike Pease - Tiger geocoder testing - very detailed reports of issues"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:630
+#, no-c-format
+msgid "Tom van Tilburg - raster testing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:635
+#, no-c-format
+msgid ""
+"#722, #302, Most deprecated functions removed (over 250 functions) (Regina "
+"Obe, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:636
+#, no-c-format
+msgid "Unknown SRID changed from -1 to 0. (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:637
+#, no-c-format
+msgid ""
+"-- (most deprecated in 1.2) removed non-ST variants buffer, length, "
+"intersects (and internal functions renamed) etc."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:639
+#, no-c-format
+msgid ""
+"-- If you have been using deprecated functions CHANGE your apps or suffer "
+"the consequences. If you don't see a function documented -- it ain't "
+"supported or it is an internal function. Some constraints in older tables "
+"were built with deprecated functions. If you restore you may need to rebuild "
+"table constraints with populate_geometry_columns(). If you have applications "
+"or tools that rely on deprecated functions, please refer to <xref linkend="
+"\"legacy_faq\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:644
+#, no-c-format
+msgid ""
+"#944 geometry_columns is now a view instead of a table (Paul Ramsey, Regina "
+"Obe) for tables created the old way reads (srid, type, dims) constraints for "
+"geometry columns created with type modifiers reads rom column definition"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:649
+#, no-c-format
+msgid ""
+"#1081, #1082, #1084, #1088 - Mangement functions support typmod geometry "
+"column creation functions now default to typmod creation (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:652
+#, no-c-format
+msgid ""
+"#1083 probe_geometry_columns(), rename_geometry_table_constraints(), "
+"fix_geometry_columns(); removed - now obsolete with geometry_column view "
+"(Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:656
+#, no-c-format
+msgid "#817 Renaming old 3D functions to the convention ST_3D (Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:657
+#, no-c-format
+msgid ""
+"#548 (sorta), ST_NumGeometries,ST_GeometryN now returns 1 (or the geometry) "
+"instead of null for single geometries (Sandro Santilli, Maxime van Noppen)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:662
+#, no-c-format
+msgid ""
+"KNN Gist index based centroid (<->) and box (<#>) distance "
+"operators (Paul Ramsey / funded by Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:663
+#, no-c-format
+msgid ""
+"Support for TIN and PolyHedralSurface and enhancement of many functions to "
+"support 3D (Olivier Courtin / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:664
+#, no-c-format
+msgid ""
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/PlanningAndFunding"
+"\">Raster support integrated and documented</ulink> (Pierre Racine, Jorge "
+"Arévalo, Mateusz Loskot, Sandro Santilli, David Zwarg, Regina Obe, Bborie "
+"Park) (Company developer and funding: University Laval, Deimos Space, "
+"CadCorp, Michigan Tech Research Institute, Azavea, Paragon Corporation, UC "
+"Davis Center for Vectorborne Diseases)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:667
+#, no-c-format
+msgid ""
+"Making spatial indexes 3D aware - in progress (Paul Ramsey, Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:668
+#, no-c-format
+msgid ""
+"Topology support improved (more functions), documented, testing (Sandro "
+"Santilli / Faunalia for RT-SIGTA), Andrea Peri, Regina Obe, Jose Carlos "
+"Martinez Llari"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:669
+#, no-c-format
+msgid "3D relationship and measurement support functions (Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:670
+#, no-c-format
+msgid ""
+"ST_3DDistance, ST_3DClosestPoint, ST_3DIntersects, ST_3DShortestLine and "
+"more..."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:671
+#, no-c-format
+msgid "N-Dimensional spatial indexes (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:672
+#, no-c-format
+msgid "ST_Split (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:673
+#, no-c-format
+msgid "ST_IsValidDetail (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:674
+#, no-c-format
+msgid "ST_MakeValid (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:675
+#, no-c-format
+msgid "ST_RemoveRepeatedPoints (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:676
+#, no-c-format
+msgid ""
+"ST_GeometryN and ST_NumGeometries support for non-collections (Sandro "
+"Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:677
+#, no-c-format
+msgid "ST_IsCollection (Sandro Santilli, Maxime van Noppen)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:678
+#, no-c-format
+msgid "ST_SharedPaths (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:679
+#, no-c-format
+msgid "ST_Snap (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:680
+#, no-c-format
+msgid "ST_RelateMatch (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:681
+#, no-c-format
+msgid "ST_ConcaveHull (Regina Obe and Leo Hsu / Paragon Corporation)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:682
+#, no-c-format
+msgid "ST_UnaryUnion (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:683
+#, no-c-format
+msgid "ST_AsX3D (Regina Obe / Arrival 3D funding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:684
+#, no-c-format
+msgid "ST_OffsetCurve (Sandro Santilli, Rafal Magda)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:685
+#, no-c-format
+msgid "ST_GeomFromGeoJSON (Kashif Rasul, Paul Ramsey / Vizzuality funding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:689
+#, no-c-format
+msgid ""
+"Made shape file loader tolerant of truncated multibyte values found in some "
+"free worldwide shapefiles (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:690
+#, no-c-format
+msgid ""
+"Lots of bug fixes and enhancements to shp2pgsql Beefing up regression tests "
+"for loaders Reproject support for both geometry and geography during import "
+"(Jeff Adams / Azavea, Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:694
+#, no-c-format
+msgid ""
+"pgsql2shp conversion from predefined list (Loic Dachary / Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:696
+#, no-c-format
+msgid ""
+"Shp-pgsql GUI loader - support loading multiple files at a time. (Mark "
+"Leslie)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:697
+#, no-c-format
+msgid ""
+"Extras - upgraded tiger_geocoder from using old TIGER format to use new "
+"TIGER shp and file structure format (Stephen Frost)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:698
+#, no-c-format
+msgid ""
+"Extras - revised tiger_geocoder to work with TIGER census 2010 data, "
+"addition of reverse geocoder function, various bug fixes, accuracy "
+"enhancements, limit max result return, speed improvements, loading routines. "
+"(Regina Obe, Leo Hsu / Paragon Corporation / funding provided by Hunter "
+"Systems Group)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:701
+#, no-c-format
+msgid "Overall Documentation proofreading and corrections. (Kasif Rasul)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:702
+#, no-c-format
+msgid ""
+"Cleanup PostGIS JDBC classes, revise to use Maven build. (Maria Arias de "
+"Reyna, Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:706
+#, no-c-format
+msgid "#1335 ST_AddPoint returns incorrect result on Linux (Even Rouault)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:709
+#, no-c-format
+msgid "Release specific credits"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:710
+#, no-c-format
+msgid ""
+"We thank <ulink url=\"http://blog.opengeo.org/2012/02/01/it-goes-up-to-2-0/"
+"\">U.S Department of State Human Information Unit (HIU)</ulink> and <ulink "
+"url=\"http://blog.cartodb.com/post/17318840209/postgis-core-committer-sandro-"
+"santilli-joins-cartodb\">Vizzuality</ulink> for general monetary support to "
+"get PostGIS 2.0 out the door."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:715
+#, no-c-format
+msgid "Release 1.5.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:716
+#, no-c-format
+msgid "Release date: 2012/05/07"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:717
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.3 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:720
+#, no-c-format
+msgid "#547, ST_Contains memory problems (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:721
+#, no-c-format
+msgid "#621, Problem finding intersections with geography (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:722
+#, no-c-format
+msgid "#627, PostGIS/PostgreSQL process die on invalid geometry (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:723
+#, no-c-format
+msgid "#810, Increase accuracy of area calculation (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:724
+#, no-c-format
+msgid ""
+"#852, improve spatial predicates robustness (Sandro Santilli, Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:725
+#, no-c-format
+msgid ""
+"#877, ST_Estimated_Extent returns NULL on empty tables (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:726
+#, no-c-format
+msgid "#1028, ST_AsSVG kills whole postgres server when fails (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:727
+#, no-c-format
+msgid "#1056, Fix boxes of arcs and circle stroking code (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:728
+#, no-c-format
+msgid ""
+"#1121, populate_geometry_columns using deprecated functions (Regin Obe, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:729
+#, no-c-format
+msgid "#1135, improve testsuite predictability (Andreas 'ads' Scherbaum)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:730
+#, no-c-format
+msgid "#1146, images generator crashes (bronaugh)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:731
+#, no-c-format
+msgid "#1170, North Pole intersection fails (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:732
+#, no-c-format
+msgid "#1179, ST_AsText crash with bad value (kjurka)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:733
+#, no-c-format
+msgid "#1184, honour DESTDIR in documentation Makefile (Bryce L Nordgren)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:734
+#, no-c-format
+msgid "#1227, server crash on invalid GML"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:735
+#, no-c-format
+msgid "#1252, SRID appearing in WKT (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:736
+#, no-c-format
+msgid "#1264, st_dwithin(g, g, 0) doesn't work (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:737
+#, no-c-format
+msgid "#1344, allow exporting tables with invalid geometries (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:738
+#, no-c-format
+msgid "#1389, wrong proj4text for SRID 31300 and 31370 (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:739
+#, no-c-format
+msgid "#1406, shp2pgsql crashes when loading into geography (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:740
+#, no-c-format
+msgid "#1595, fixed SRID redundancy in ST_Line_SubString (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:741
+#, no-c-format
+msgid "#1596, check SRID in UpdateGeometrySRID (Mike Toews, Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:742
+#, no-c-format
+msgid "#1602, fix ST_Polygonize to retain Z (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:743
+#, no-c-format
+msgid "#1697, fix crash with EMPTY entries in GiST index (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:744
+#, no-c-format
+msgid "#1772, fix ST_Line_Locate_Point with collapsed input (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:745
+#, no-c-format
+msgid "#1799, Protect ST_Segmentize from max_length=0 (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:746
+#, no-c-format
+msgid "Alter parameter order in 900913 (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:747
+#, no-c-format
+msgid "Support builds with \"gmake\" (Greg Troxel)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:752
+#, no-c-format
+msgid "Release 1.5.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:753
+#, no-c-format
+msgid "Release date: 2011/06/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:754
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.2 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:758
+#, no-c-format
+msgid ""
+"#1056, produce correct bboxes for arc geometries, fixes index errors (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:760
+#, no-c-format
+msgid ""
+"#1007, ST_IsValid crash fix requires GEOS 3.3.0+ or 3.2.3+ (Sandro Santilli, "
+"reported by Birgit Laggner)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:762
+#, no-c-format
+msgid ""
+"#940, support for PostgreSQL 9.1 beta 1 (Regina Obe, Paul Ramsey, patch "
+"submitted by stl)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:764
+#, no-c-format
+msgid ""
+"#845, ST_Intersects precision error (Sandro Santilli, Nicklas Avén) Reported "
+"by cdestigter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:766
+#, no-c-format
+msgid "#884, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:767
+#, no-c-format
+msgid "#779, shp2pgsql -S option seems to fail on points (Jeff Adams)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:768
+#, no-c-format
+msgid "#666, ST_DumpPoints is not null safe (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:769
+#, no-c-format
+msgid "#631, Update NZ projections for grid transformation support (jpalmer)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:770
+#, no-c-format
+msgid ""
+"#630, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson) "
+"Reported by David Bitner"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:772
+#, no-c-format
+msgid "#624, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:773
+#, no-c-format
+msgid ""
+"#609, Bad source code in manual section 5.2 Java Clients (simoc, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:774
+#, no-c-format
+msgid "#604, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:775
+#, no-c-format
+msgid ""
+"#573 ST_Union fails on a group of linestrings Not a PostGIS bug, fixed in "
+"GEOS 3.3.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:777
+#, no-c-format
+msgid ""
+"#457 ST_CollectionExtract returns non-requested type (Nicklas Avén, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:779
+#, no-c-format
+msgid "#441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:780
+#, no-c-format
+msgid ""
+"#411 Ability to backup invalid geometries (Sando Santilli) Reported by "
+"Regione Toscana"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:782
+#, no-c-format
+msgid "#409 ST_AsSVG - degraded (Olivier Courtin) Reported by Sdikiy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:784
+#, no-c-format
+msgid ""
+"#373 Documentation syntax error in hard upgrade (Paul Ramsey) Reported by "
+"psvensso"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:790
+#, no-c-format
+msgid "Release 1.5.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:791
+#, no-c-format
+msgid "Release date: 2010/09/27"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:792
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:796
+#, no-c-format
+msgid ""
+"Loader: fix handling of empty (0-verticed) geometries in shapefiles. (Sandro "
+"Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:797
+#, no-c-format
+msgid ""
+"#536, Geography ST_Intersects, ST_Covers, ST_CoveredBy and Geometry "
+"ST_Equals not using spatial index (Regina Obe, Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:798
+#, no-c-format
+msgid "#573, Improvement to ST_Contains geography (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:799
+#, no-c-format
+msgid ""
+"Loader: Add support for command-q shutdown in Mac GTK build (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:800
+#, no-c-format
+msgid ""
+"#393, Loader: Add temporary patch for large DBF files (Maxime Guillaud, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:801
+#, no-c-format
+msgid "#507, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:802
+#, no-c-format
+msgid ""
+"spatial_ref_sys.sql Add datum conversion for projection SRID 3021 (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:803
+#, no-c-format
+msgid ""
+"Geography - remove crash for case when all geographies are out of the "
+"estimate (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:804
+#, no-c-format
+msgid "#469, Fix for array_aggregation error (Greg Stark, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:805
+#, no-c-format
+msgid ""
+"#532, Temporary geography tables showing up in other user sessions (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:806
+#, no-c-format
+msgid "#562, ST_Dwithin errors for large geographies (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:807
+#, no-c-format
+msgid ""
+"#513, shape loading GUI tries to make spatial index when loading DBF only "
+"mode (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:808
+#, no-c-format
+msgid ""
+"#527, shape loading GUI should always append log messages (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:809
+#, no-c-format
+msgid "#504, shp2pgsql should rename xmin/xmax fields (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:810
+#, no-c-format
+msgid ""
+"#458, postgis_comments being installed in contrib instead of version folder "
+"(Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:811
+#, no-c-format
+msgid ""
+"#474, Analyzing a table with geography column crashes server (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:812
+#, no-c-format
+msgid "#581, LWGEOM-expand produces inconsistent results (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:813
+#, no-c-format
+msgid ""
+"#513, Add dbf filter to shp2pgsql-gui and allow uploading dbf only (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:814
+#, no-c-format
+msgid "Fix further build issues against PostgreSQL 9.0 (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:815
+#, no-c-format
+msgid "#572, Password whitespace for Shape File (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:816
+#, no-c-format
+msgid ""
+"#603, shp2pgsql: \"-w\" produces invalid WKT for MULTI* objects. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:821
+#, no-c-format
+msgid "Release 1.5.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:822
+#, no-c-format
+msgid "Release date: 2010/03/11"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:823
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.4.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:827
+#, no-c-format
+msgid ""
+"#410, update embedded bbox when applying ST_SetPoint, ST_AddPoint "
+"ST_RemovePoint to a linestring (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:828
+#, no-c-format
+msgid ""
+"#411, allow dumping tables with invalid geometries (Sandro Santilli, for "
+"Regione Toscana-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:829
+#, no-c-format
+msgid ""
+"#414, include geography_columns view when running upgrade scripts (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:830
+#, no-c-format
+msgid ""
+"#419, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, "
+"for Lidwala Consulting Engineers)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:831
+#, no-c-format
+msgid "#421, fix computed string length in ST_AsGML() (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:832
+#, no-c-format
+msgid ""
+"#441, fix GML generation with heterogeneous collections (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:833
+#, no-c-format
+msgid ""
+"#443, incorrect coordinate reversal in GML 3 generation (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:834
+#, no-c-format
+msgid ""
+"#450, #451, wrong area calculation for geography features that cross the "
+"date line (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:835
+#, no-c-format
+msgid "Ensure support for upcoming 9.0 PgSQL release (Paul Ramsey)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:840
+#, no-c-format
+msgid "Release 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:841
+#, no-c-format
+msgid "Release date: 2010/02/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:842
+#, no-c-format
+msgid ""
+"This release provides support for geographic coordinates (lat/lon) via a new "
+"GEOGRAPHY type. Also performance enhancements, new input format support (GML,"
+"KML) and general upkeep."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:845 release_notes.xml:912
+#, no-c-format
+msgid "API Stability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:846
+#, no-c-format
+msgid ""
+"The public API of PostGIS will not change during minor (0.0.X) releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:847
+#, no-c-format
+msgid ""
+"The definition of the =~ operator has changed from an exact geometric "
+"equality check to a bounding box equality check."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:851 release_notes.xml:917
+#, no-c-format
+msgid "Compatibility"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:852
+#, no-c-format
+msgid "GEOS, Proj4, and LibXML2 are now mandatory dependencies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:853
+#, no-c-format
+msgid "The library versions below are the minimum requirements for PostGIS 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:854
+#, no-c-format
+msgid "PostgreSQL 8.3 and higher on all platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:855
+#, no-c-format
+msgid "GEOS 3.1 and higher only (GEOS 3.2+ to take advantage of all features)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:856
+#, no-c-format
+msgid "LibXML2 2.5+ related to new ST_GeomFromGML/KML functionality"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:857
+#, no-c-format
+msgid "Proj4 4.5 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:863
+#, no-c-format
+msgid "Added Hausdorff distance calculations (#209) (Vincent Picavet)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:864
+#, no-c-format
+msgid ""
+"Added parameters argument to ST_Buffer operation to support one-sided "
+"buffering and other buffering styles (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:865
+#, no-c-format
+msgid ""
+"Addition of other Distance related visualization and analysis functions "
+"(Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:867
+#, no-c-format
+msgid "ST_ClosestPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:868
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:869
+#, no-c-format
+msgid "ST_LongestLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:870
+#, no-c-format
+msgid "ST_MaxDistance"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:871
+#, no-c-format
+msgid "ST_ShortestLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:873
+#, no-c-format
+msgid "ST_DumpPoints (Maxime van Noppen)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:874
+#, no-c-format
+msgid "KML, GML input via ST_GeomFromGML and ST_GeomFromKML (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:875
+#, no-c-format
+msgid "Extract homogeneous collection with ST_CollectionExtract (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:876
+#, no-c-format
+msgid ""
+"Add measure values to an existing linestring with ST_AddMeasure (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:877
+#, no-c-format
+msgid "History table implementation in utils (George Silva)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:878
+#, no-c-format
+msgid "Geography type and supporting functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:880
+#, no-c-format
+msgid "Spherical algorithms (Dave Skea)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:881
+#, no-c-format
+msgid "Object/index implementation (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:882
+#, no-c-format
+msgid "Selectivity implementation (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:883
+#, no-c-format
+msgid "Serializations to KML, GML and JSON (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:884
+#, no-c-format
+msgid ""
+"ST_Area, ST_Distance, ST_DWithin, ST_GeogFromText, ST_GeogFromWKB, "
+"ST_Intersects, ST_Covers, ST_Buffer (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:890
+#, no-c-format
+msgid "Performance improvements to ST_Distance (Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:891
+#, no-c-format
+msgid "Documentation updates and improvements (Regina Obe, Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:892
+#, no-c-format
+msgid "Testing and quality control (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:893
+#, no-c-format
+msgid "PostGIS 1.5 support PostgreSQL 8.5 trunk (Guillaume Lelarge)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:894
+#, no-c-format
+msgid "Win32 support and improvement of core shp2pgsql-gui (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:895
+#, no-c-format
+msgid "In place 'make check' support (Paul Ramsey)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:899 release_notes.xml:965 release_notes.xml:1150
+#: release_notes.xml:1201 release_notes.xml:1252 release_notes.xml:1386
+#: release_notes.xml:1452 release_notes.xml:1562 release_notes.xml:1669
+#: release_notes.xml:1789 release_notes.xml:1854 release_notes.xml:1901
+#, no-c-format
+msgid "Bug fixes"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:900
+#, no-c-format
+msgid ""
+"http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
+"+1.5.0&order=priority"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:905
+#, no-c-format
+msgid "Release 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:906
+#, no-c-format
+msgid "Release date: 2009/07/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:907
+#, no-c-format
+msgid ""
+"This release provides performance enhancements, improved internal structures "
+"and testing, new features, and upgraded documentation. If you are running "
+"PostGIS 1.1+, a soft upgrade is sufficient otherwise a hard upgrade is "
+"recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:913
+#, no-c-format
+msgid ""
+"As of the 1.4 release series, the public API of PostGIS will not change "
+"during minor releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:918
+#, no-c-format
+msgid "The versions below are the *minimum* requirements for PostGIS 1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:919
+#, no-c-format
+msgid "PostgreSQL 8.2 and higher on all platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:920
+#, no-c-format
+msgid "GEOS 3.0 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:921
+#, no-c-format
+msgid "PROJ4 4.5 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:926
+#, no-c-format
+msgid ""
+"ST_Union() uses high-speed cascaded union when compiled against GEOS 3.1+ "
+"(Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:928
+#, no-c-format
+msgid "ST_ContainsProperly() requires GEOS 3.1+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:929
+#, no-c-format
+msgid ""
+"ST_Intersects(), ST_Contains(), ST_Within() use high-speed cached prepared "
+"geometry against GEOS 3.1+ (Paul Ramsey / funded by Zonar Systems)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:930
+#, no-c-format
+msgid ""
+"Vastly improved documentation and reference manual (Regina Obe & Kevin "
+"Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:931
+#, no-c-format
+msgid "Figures and diagram examples in the reference manual (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:932
+#, no-c-format
+msgid ""
+"ST_IsValidReason() returns readable explanations for validity failures (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:933
+#, no-c-format
+msgid ""
+"ST_GeoHash() returns a geohash.org signature for geometries (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:934
+#, no-c-format
+msgid "GTK+ multi-platform GUI for shape file loading (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:935
+#, no-c-format
+msgid "ST_LineCrossingDirection() returns crossing directions (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:936
+#, no-c-format
+msgid ""
+"ST_LocateBetweenElevations() returns sub-string based on Z-ordinate. (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:937
+#, no-c-format
+msgid ""
+"Geometry parser returns explicit error message about location of syntax "
+"errors (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:938
+#, no-c-format
+msgid "ST_AsGeoJSON() return JSON formatted geometry (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:939
+#, no-c-format
+msgid ""
+"Populate_Geometry_Columns() -- automatically add records to geometry_columns "
+"for TABLES and VIEWS (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:940
+#, no-c-format
+msgid ""
+"ST_MinimumBoundingCircle() -- returns the smallest circle polygon that can "
+"encompass a geometry (Bruce Rindahl)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:945
+#, no-c-format
+msgid ""
+"Core geometry system moved into independent library, liblwgeom. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:946
+#, no-c-format
+msgid ""
+"New build system uses PostgreSQL \"pgxs\" build bootstrapper. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:947
+#, no-c-format
+msgid "Debugging framework formalized and simplified. (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:948
+#, no-c-format
+msgid ""
+"All build-time #defines generated at configure time and placed in headers "
+"for easier cross-platform support (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:949
+#, no-c-format
+msgid "Logging framework formalized and simplified (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:950
+#, no-c-format
+msgid ""
+"Expanded and more stable support for CIRCULARSTRING, COMPOUNDCURVE and "
+"CURVEPOLYGON, better parsing, wider support in functions (Mark Leslie & "
+"Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:951
+#, no-c-format
+msgid "Improved support for OpenSolaris builds (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:952
+#, no-c-format
+msgid "Improved support for MSVC builds (Mateusz Loskot)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:953
+#, no-c-format
+msgid "Updated KML support (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:954
+#, no-c-format
+msgid "Unit testing framework for liblwgeom (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:955
+#, no-c-format
+msgid ""
+"New testing framework to comprehensively exercise every PostGIS function "
+"(Regine Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:956
+#, no-c-format
+msgid ""
+"Performance improvements to all geometry aggregate functions (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:957
+#, no-c-format
+msgid ""
+"Support for the upcoming PostgreSQL 8.4 (Mark Cave-Ayland, Talha Bin Rizwan)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:958
+#, no-c-format
+msgid ""
+"Shp2pgsql and pgsql2shp re-worked to depend on the common parsing/unparsing "
+"code in liblwgeom (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:959
+#, no-c-format
+msgid ""
+"Use of PDF DbLatex to build PDF docs and preliminary instructions for build "
+"(Jean David Techer)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:960
+#, no-c-format
+msgid ""
+"Automated User documentation build (PDF and HTML) and Developer Doxygen "
+"Documentation (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:961
+#, no-c-format
+msgid ""
+"Automated build of document images using ImageMagick from WKT geometry text "
+"files (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:962
+#, no-c-format
+msgid "More attractive CSS for HTML documentation (Dane Springmeyer)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:966
+#, no-c-format
+msgid ""
+"http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
+"+1.4.0&order=priority"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:971
+#, no-c-format
+msgid "Release 1.3.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:972
+#, no-c-format
+msgid "Release date: 2009/05/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:973
+#, no-c-format
+msgid ""
+"If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
+"hard upgrade is recommended. This release adds support for PostgreSQL 8.4, "
+"exporting prj files from the database with shape data, some crash fixes for "
+"shp2pgsql, and several small bug fixes in the handling of \"curve\" types, "
+"logical error importing dbf only files, improved error handling of "
+"AddGeometryColumns."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:980
+#, no-c-format
+msgid "Release 1.3.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:981
+#, no-c-format
+msgid "Release date: 2008/12/15"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:982
+#, no-c-format
+msgid ""
+"If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
+"hard upgrade is recommended. This release is a bug fix release to address a "
+"failure in ST_Force_Collection and related functions that critically affects "
+"using MapServer with LINE layers."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:989
+#, no-c-format
+msgid "Release 1.3.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:990
+#, no-c-format
+msgid "Release date: 2008/11/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:991
+#, no-c-format
+msgid ""
+"This release adds support for GeoJSON output, building with PostgreSQL 8.4, "
+"improves documentation quality and output aesthetics, adds function-level "
+"SQL documentation, and improves performance for some spatial predicates "
+"(point-in-polygon tests)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:996
+#, no-c-format
+msgid ""
+"Bug fixes include removal of crashers in handling circular strings for many "
+"functions, some memory leaks removed, a linear referencing failure for "
+"measures on vertices, and more. See the NEWS file for details."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1003
+#, no-c-format
+msgid "Release 1.3.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1005
+#, no-c-format
+msgid "Release date: 2008/04/12"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1007
+#, no-c-format
+msgid ""
+"This release fixes bugs shp2pgsql, adds enhancements to SVG and KML support, "
+"adds a ST_SimplifyPreserveTopology function, makes the build more sensitive "
+"to GEOS versions, and fixes a handful of severe but rare failure cases."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1014
+#, no-c-format
+msgid "Release 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1016
+#, no-c-format
+msgid "Release date: 2007/12/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1018
+#, no-c-format
+msgid ""
+"This release fixes bugs in ST_EndPoint() and ST_Envelope, improves support "
+"for JDBC building and OS/X, and adds better support for GML output with "
+"ST_AsGML(), including GML3 output."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1024
+#, no-c-format
+msgid "Release 1.3.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1026
+#, no-c-format
+msgid "Release date: 2007/08/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1028
+#, no-c-format
+msgid ""
+"This release fixes some oversights in the previous release around version "
+"numbering, documentation, and tagging."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1033
+#, no-c-format
+msgid "Release 1.3.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1035
+#, no-c-format
+msgid "Release date: 2007/08/09"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1037
+#, no-c-format
+msgid ""
+"This release provides performance enhancements to the relational functions, "
+"adds new relational functions and begins the migration of our function names "
+"to the SQL-MM convention, using the spatial type (SP) prefix."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1043
+#, no-c-format
+msgid "Added Functionality"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1045
+#, no-c-format
+msgid "JDBC: Added Hibernate Dialect (thanks to Norman Barker)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1047
+#, no-c-format
+msgid ""
+"Added ST_Covers and ST_CoveredBy relational functions. Description and "
+"justification of these functions can be found at <ulink url=\"http://lin-ear-"
+"th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html"
+"\">http://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-"
+"spatial.html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1051
+#, no-c-format
+msgid "Added ST_DWithin relational function."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1055
+#, no-c-format
+msgid "Performance Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1057
+#, no-c-format
+msgid ""
+"Added cached and indexed point-in-polygon short-circuits for the functions "
+"ST_Contains, ST_Intersects, ST_Within and ST_Disjoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1060
+#, no-c-format
+msgid ""
+"Added inline index support for relational functions (except ST_Disjoint)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1065
+#, no-c-format
+msgid "Other Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1067
+#, no-c-format
+msgid ""
+"Extended curved geometry support into the geometry accessor and some "
+"processing functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1070
+#, no-c-format
+msgid ""
+"Began migration of functions to the SQL-MM naming convention; using a "
+"spatial type (ST) prefix."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1073
+#, no-c-format
+msgid "Added initial support for PostgreSQL 8.3"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1078
+#, no-c-format
+msgid "Release 1.2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1080
+#, no-c-format
+msgid "Release date: 2007/01/11"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1082
+#, no-c-format
+msgid ""
+"This release provides bug fixes in PostgreSQL 8.2 support and some small "
+"performance enhancements."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1086 release_notes.xml:1114 release_notes.xml:2336
+#, no-c-format
+msgid "Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1088
+#, no-c-format
+msgid "Fixed point-in-polygon shortcut bug in Within()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1090
+#, no-c-format
+msgid "Fixed PostgreSQL 8.2 NULL handling for indexes."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1092
+#, no-c-format
+msgid "Updated RPM spec files."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1094
+#, no-c-format
+msgid "Added short-circuit for Transform() in no-op case."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1096
+#, no-c-format
+msgid ""
+"JDBC: Fixed JTS handling for multi-dimensional geometries (thanks to Thomas "
+"Marti for hint and partial patch). Additionally, now JavaDoc is compiled and "
+"packaged. Fixed classpath problems with GCJ. Fixed pgjdbc 8.2 compatibility, "
+"losing support for jdk 1.3 and older."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1105
+#, no-c-format
+msgid "Release 1.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1107
+#, no-c-format
+msgid "Release date: 2006/12/08"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1109
+#, no-c-format
+msgid ""
+"This release provides type definitions along with serialization/"
+"deserialization capabilities for SQL-MM defined curved geometries, as well "
+"as performance enhancements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1116
+#, no-c-format
+msgid "Added curved geometry type support for serialization/deserialization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1119
+#, no-c-format
+msgid ""
+"Added point-in-polygon shortcircuit to the Contains and Within functions to "
+"improve performance for these cases."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1125
+#, no-c-format
+msgid "Release 1.1.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1127
+#, no-c-format
+msgid "Release date: 2006/11/02"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1129
+#, no-c-format
+msgid ""
+"This is a bugfix release, in particular fixing a critical error with GEOS "
+"interface in 64bit systems. Includes an updated of the SRS parameters and an "
+"improvement in reprojections (take Z in consideration). Upgrade is "
+"<emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1135 release_notes.xml:1186 release_notes.xml:1237
+#: release_notes.xml:1292 release_notes.xml:1371 release_notes.xml:1437
+#: release_notes.xml:1510 release_notes.xml:1654 release_notes.xml:1711
+#: release_notes.xml:1774 release_notes.xml:1832 release_notes.xml:1890
+#: release_notes.xml:1930 release_notes.xml:1982 release_notes.xml:2034
+#: release_notes.xml:2073 release_notes.xml:2110 release_notes.xml:2177
+#: release_notes.xml:2274 release_notes.xml:2328
+#, no-c-format
+msgid "Upgrading"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1137 release_notes.xml:1188 release_notes.xml:1239
+#: release_notes.xml:1294 release_notes.xml:1373 release_notes.xml:1439
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later follow the <link linkend="
+"\"soft_upgrade\">soft upgrade</link> procedure."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1140 release_notes.xml:1191 release_notes.xml:1242
+#: release_notes.xml:1297 release_notes.xml:1376 release_notes.xml:1442
+#: release_notes.xml:1518 release_notes.xml:1659 release_notes.xml:1716
+#: release_notes.xml:1779
+#, no-c-format
+msgid ""
+"If you are upgrading from a release <emphasis>between 1.0.0RC6 and 1.0.2</"
+"emphasis> (inclusive) and really want a live upgrade read the <link linkend="
+"\"rel_1.0.3_upgrading\">upgrade section</link> of the 1.0.3 release notes "
+"chapter."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1145 release_notes.xml:1196 release_notes.xml:1247
+#: release_notes.xml:1302 release_notes.xml:1381 release_notes.xml:1447
+#: release_notes.xml:1523 release_notes.xml:1664 release_notes.xml:1721
+#: release_notes.xml:1784
+#, no-c-format
+msgid ""
+"Upgrade from any release prior to 1.0.0RC6 requires an <link linkend="
+"\"hard_upgrade\">hard upgrade</link>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1152
+#, no-c-format
+msgid "fixed CAPI change that broke 64-bit platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1154
+#, no-c-format
+msgid "loader/dumper: fixed regression tests and usage output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1156
+#, no-c-format
+msgid "Fixed setSRID() bug in JDBC, thanks to Thomas Marti"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1160 release_notes.xml:1344 release_notes.xml:1415
+#: release_notes.xml:1629 release_notes.xml:1755 release_notes.xml:2056
+#: release_notes.xml:2093 release_notes.xml:2145 release_notes.xml:2247
+#: release_notes.xml:2310
+#, no-c-format
+msgid "Other changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1162
+#, no-c-format
+msgid "use Z ordinate in reprojections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1164
+#, no-c-format
+msgid "spatial_ref_sys.sql updated to EPSG 6.11.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1166
+#, no-c-format
+msgid ""
+"Simplified Version.config infrastructure to use a single pack of version "
+"variables for everything."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1169
+#, no-c-format
+msgid "Include the Version.config in loader/dumper USAGE messages"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1172
+#, no-c-format
+msgid "Replace hand-made, fragile JDBC version parser with Properties"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1178
+#, no-c-format
+msgid "Release 1.1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1180
+#, no-c-format
+msgid "Release date: 2006/10/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1182
+#, no-c-format
+msgid ""
+"This is an bugfix release, including a critical segfault on win32. Upgrade "
+"is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1203
+#, no-c-format
+msgid ""
+"Fixed MingW link error that was causing pgsql2shp to segfault on Win32 when "
+"compiled for PostgreSQL 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1206
+#, no-c-format
+msgid "fixed nullpointer Exception in Geometry.equals() method in Java"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1209
+#, no-c-format
+msgid ""
+"Added EJB3Spatial.odt to fulfill the GPL requirement of distributing the "
+"\"preferred form of modification\""
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1212
+#, no-c-format
+msgid "Removed obsolete synchronization from JDBC Jts code."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1214
+#, no-c-format
+msgid ""
+"Updated heavily outdated README files for shp2pgsql/pgsql2shp by merging "
+"them with the manpages."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1217
+#, no-c-format
+msgid ""
+"Fixed version tag in jdbc code that still said \"1.1.3\" in the \"1.1.4\" "
+"release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1224
+#, no-c-format
+msgid "Added -S option for non-multi geometries to shp2pgsql"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1229
+#, no-c-format
+msgid "Release 1.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1231
+#, no-c-format
+msgid "Release date: 2006/09/27"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1233
+#, no-c-format
+msgid ""
+"This is an bugfix release including some improvements in the Java interface. "
+"Upgrade is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1254
+#, no-c-format
+msgid "Fixed support for PostgreSQL 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1256
+#, no-c-format
+msgid "Fixed bug in collect() function discarding SRID of input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1258
+#, no-c-format
+msgid "Added SRID match check in MakeBox2d and MakeBox3d"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1260
+#, no-c-format
+msgid "Fixed regress tests to pass with GEOS-3.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1262
+#, no-c-format
+msgid "Improved pgsql2shp run concurrency."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1266
+#, no-c-format
+msgid "Java changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1268
+#, no-c-format
+msgid ""
+"reworked JTS support to reflect new upstream JTS developers' attitude to "
+"SRID handling. Simplifies code and drops build depend on GNU trove."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1272
+#, no-c-format
+msgid ""
+"Added EJB2 support generously donated by the \"Geodetix s.r.l. Company\" "
+"<ulink url=\"http://www.geodetix.it/\">http://www.geodetix.it/</ulink>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1275
+#, no-c-format
+msgid ""
+"Added EJB3 tutorial / examples donated by Norman Barker <nbarker at ittvis."
+"com>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1278
+#, no-c-format
+msgid "Reorganized java directory layout a little."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1283
+#, no-c-format
+msgid "Release 1.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1285
+#, no-c-format
+msgid "Release date: 2006/06/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1287
+#, no-c-format
+msgid ""
+"This is an bugfix release including also some new functionalities (most "
+"notably long transaction support) and portability enhancements. Upgrade is "
+"<emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1307
+#, no-c-format
+msgid "Bug fixes / correctness"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1309
+#, no-c-format
+msgid "BUGFIX in distance(poly,poly) giving wrong results."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1311
+#, no-c-format
+msgid "BUGFIX in pgsql2shp successful return code."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1313
+#, no-c-format
+msgid "BUGFIX in shp2pgsql handling of MultiLine WKT."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1315
+#, no-c-format
+msgid "BUGFIX in affine() failing to update bounding box."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1317
+#, no-c-format
+msgid ""
+"WKT parser: forbidden construction of multigeometries with EMPTY elements "
+"(still supported for GEOMETRYCOLLECTION)."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1322 release_notes.xml:1398 release_notes.xml:1471
+#, no-c-format
+msgid "New functionalities"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1324
+#, no-c-format
+msgid "NEW Long Transactions support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1326
+#, no-c-format
+msgid "NEW DumpRings() function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1328
+#, no-c-format
+msgid "NEW AsHEXEWKB(geom, XDR|NDR) function."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1332 release_notes.xml:2223
+#, no-c-format
+msgid "JDBC changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1334
+#, no-c-format
+msgid "Improved regression tests: MultiPoint and scientific ordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1337
+#, no-c-format
+msgid "Fixed some minor bugs in jdbc code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1339
+#, no-c-format
+msgid ""
+"Added proper accessor functions for all fields in preparation of making "
+"those fields private later"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1346
+#, no-c-format
+msgid "NEW regress test support for loader/dumper."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1348
+#, no-c-format
+msgid "Added --with-proj-libdir and --with-geos-libdir configure switches."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1351
+#, no-c-format
+msgid "Support for build Tru64 build."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1353
+#, no-c-format
+msgid "Use Jade for generating documentation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1355
+#, no-c-format
+msgid "Don't link pgsql2shp to more libs then required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1357
+#, no-c-format
+msgid "Initial support for PostgreSQL 8.2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1362
+#, no-c-format
+msgid "Release 1.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1364
+#, no-c-format
+msgid "Release date: 2006/03/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1366
+#, no-c-format
+msgid ""
+"This is an bugfix release including some new functions and portability "
+"enhancements. Upgrade is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1388
+#, no-c-format
+msgid "BUGFIX in SnapToGrid() computation of output bounding box"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1390
+#, no-c-format
+msgid "BUGFIX in EnforceRHR()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1392
+#, no-c-format
+msgid "jdbc2 SRID handling fixes in JTS code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1394
+#, no-c-format
+msgid "Fixed support for 64bit archs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1400
+#, no-c-format
+msgid "Regress tests can now be run *before* postgis installation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1403
+#, no-c-format
+msgid "New affine() matrix transformation functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1405
+#, no-c-format
+msgid "New rotate{,X,Y,Z}() function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1407
+#, no-c-format
+msgid "Old translating and scaling functions now use affine() internally"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1410
+#, no-c-format
+msgid ""
+"Embedded access control in estimated_extent() for builds against pgsql >= "
+"8.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1417
+#, no-c-format
+msgid "More portable ./configure script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1419
+#, no-c-format
+msgid "Changed ./run_test script to have more sane default behaviour"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1425
+#, no-c-format
+msgid "Release 1.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1427
+#, no-c-format
+msgid "Release date: 2006/01/23"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1429
+#, no-c-format
+msgid ""
+"This is an important Bugfix release, upgrade is <emphasis>highly "
+"recommended</emphasis>. Previous version contained a bug in postgis_restore."
+"pl preventing <link linkend=\"hard_upgrade\">hard upgrade</link> procedure "
+"to complete and a bug in GEOS-2.2+ connector preventing GeometryCollection "
+"objects to be used in topological operations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1454
+#, no-c-format
+msgid "Fixed a premature exit in postgis_restore.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1456
+#, no-c-format
+msgid "BUGFIX in geometrycollection handling of GEOS-CAPI connector"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1459
+#, no-c-format
+msgid "Solaris 2.7 and MingW support improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1461
+#, no-c-format
+msgid "BUGFIX in line_locate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1463
+#, no-c-format
+msgid "Fixed handling of postgresql paths"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1465
+#, no-c-format
+msgid "BUGFIX in line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1467
+#, no-c-format
+msgid "Added support for localized cluster in regress tester"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1473
+#, no-c-format
+msgid "New Z and M interpolation in line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1475
+#, no-c-format
+msgid "New Z and M interpolation in line_interpolate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1477
+#, no-c-format
+msgid "added NumInteriorRing() alias due to OpenGIS ambiguity"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1482
+#, no-c-format
+msgid "Release 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1484
+#, no-c-format
+msgid "Release date: 2005/12/21"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1486
+#, no-c-format
+msgid ""
+"This is a Minor release, containing many improvements and new things. Most "
+"notably: build procedure greatly simplified; transform() performance "
+"drastically improved; more stable GEOS connectivity (CAPI support); lots of "
+"new functions; draft topology support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1491
+#, no-c-format
+msgid ""
+"It is <emphasis>highly recommended</emphasis> that you upgrade to GEOS-2.2.x "
+"before installing PostGIS, this will ensure future GEOS upgrades won't "
+"require a rebuild of the PostGIS library."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1496
+#, no-c-format
+msgid "Credits"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1498
+#, no-c-format
+msgid ""
+"This release includes code from Mark Cave Ayland for caching of proj4 "
+"objects. Markus Schaber added many improvements in his JDBC2 code. Alex "
+"Bodnaru helped with PostgreSQL source dependency relief and provided Debian "
+"specfiles. Michael Fuhr tested new things on Solaris arch. David Techer and "
+"Gerald Fenoy helped testing GEOS C-API connector. Hartmut Tschauner provided "
+"code for the azimuth() function. Devrim GUNDUZ provided RPM specfiles. Carl "
+"Anderson helped with the new area building functions. See the <link linkend="
+"\"credits_other_contributors\">credits</link> section for more names."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1512
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
+"emphasis> need a dump/reload. Simply sourcing the new lwpostgis_upgrade.sql "
+"script in all your existing databases will work. See the <link linkend="
+"\"soft_upgrade\">soft upgrade</link> chapter for more information."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1528
+#, no-c-format
+msgid "New functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1530
+#, no-c-format
+msgid "scale() and transscale() companion methods to translate()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1532
+#, no-c-format
+msgid "line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1534
+#, no-c-format
+msgid "line_locate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1536
+#, no-c-format
+msgid "M(point)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1538
+#, no-c-format
+msgid "LineMerge(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1540
+#, no-c-format
+msgid "shift_longitude(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1542
+#, no-c-format
+msgid "azimuth(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1544
+#, no-c-format
+msgid "locate_along_measure(geometry, float8)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1546
+#, no-c-format
+msgid "locate_between_measures(geometry, float8, float8)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1548
+#, no-c-format
+msgid "SnapToGrid by point offset (up to 4d support)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1550
+#, no-c-format
+msgid "BuildArea(any_geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1552
+#, no-c-format
+msgid "OGC BdPolyFromText(linestring_wkt, srid)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1554
+#, no-c-format
+msgid "OGC BdMPolyFromText(linestring_wkt, srid)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1556
+#, no-c-format
+msgid "RemovePoint(linestring, offset)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1558
+#, no-c-format
+msgid "ReplacePoint(linestring, offset, point)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1564
+#, no-c-format
+msgid "Fixed memory leak in polygonize()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1566
+#, no-c-format
+msgid "Fixed bug in lwgeom_as_anytype cast functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1568
+#, no-c-format
+msgid ""
+"Fixed USE_GEOS, USE_PROJ and USE_STATS elements of postgis_version() output "
+"to always reflect library state."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1573
+#, no-c-format
+msgid "Function semantic changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1575
+#, no-c-format
+msgid "SnapToGrid doesn't discard higher dimensions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1577
+#, no-c-format
+msgid ""
+"Changed Z() function to return NULL if requested dimension is not available"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1582
+#, no-c-format
+msgid "Performance improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1584
+#, no-c-format
+msgid "Much faster transform() function, caching proj4 objects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1586
+#, no-c-format
+msgid ""
+"Removed automatic call to fix_geometry_columns() in AddGeometryColumns() and "
+"update_geometry_stats()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1591
+#, no-c-format
+msgid "JDBC2 works"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1593
+#, no-c-format
+msgid "Makefile improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1595 release_notes.xml:1631
+#, no-c-format
+msgid "JTS support improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1597
+#, no-c-format
+msgid "Improved regression test system"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1599
+#, no-c-format
+msgid "Basic consistency check method for geometry collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1601
+#, no-c-format
+msgid "Support for (Hex)(E)wkb"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1603
+#, no-c-format
+msgid "Autoprobing DriverWrapper for HexWKB / EWKT switching"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1605
+#, no-c-format
+msgid "fix compile problems in ValueSetter for ancient jdk releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1608
+#, no-c-format
+msgid "fix EWKT constructors to accept SRID=4711; representation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1610
+#, no-c-format
+msgid "added preliminary read-only support for java2d geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1614
+#, no-c-format
+msgid "Other new things"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1616
+#, no-c-format
+msgid ""
+"Full autoconf-based configuration, with PostgreSQL source dependency relief"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1619
+#, no-c-format
+msgid "GEOS C-API support (2.2.0 and higher)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1621
+#, no-c-format
+msgid "Initial support for topology modelling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1623
+#, no-c-format
+msgid "Debian and RPM specfiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1625
+#, no-c-format
+msgid "New lwpostgis_upgrade.sql script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1633
+#, no-c-format
+msgid "Stricter mapping between DBF and SQL integer and string attributes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1636
+#, no-c-format
+msgid "Wider and cleaner regression test suite"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1638
+#, no-c-format
+msgid "old jdbc code removed from release"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1640
+#, no-c-format
+msgid "obsoleted direct use of postgis_proc_upgrade.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1642
+#, no-c-format
+msgid "scripts version unified with release version"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1647
+#, no-c-format
+msgid "Release 1.0.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1649
+#, no-c-format
+msgid "Release date: 2005/12/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1651 release_notes.xml:1887
+#, no-c-format
+msgid "Contains a few bug fixes and improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1656 release_notes.xml:1713
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
+"emphasis> need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1671
+#, no-c-format
+msgid ""
+"Fixed palloc(0) call in collection deserializer (only gives problem with --"
+"enable-cassert)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1674
+#, no-c-format
+msgid "Fixed bbox cache handling bugs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1676
+#, no-c-format
+msgid "Fixed geom_accum(NULL, NULL) segfault"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1678
+#, no-c-format
+msgid "Fixed segfault in addPoint()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1680
+#, no-c-format
+msgid "Fixed short-allocation in lwcollection_clone()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1682
+#, no-c-format
+msgid "Fixed bug in segmentize()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1684
+#, no-c-format
+msgid "Fixed bbox computation of SnapToGrid output"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1688 release_notes.xml:1806 release_notes.xml:1868
+#: release_notes.xml:1914
+#, no-c-format
+msgid "Improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1690
+#, no-c-format
+msgid "Initial support for postgresql 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1692
+#, no-c-format
+msgid "Added missing SRID mismatch checks in GEOS ops"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1697
+#, no-c-format
+msgid "Release 1.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1699
+#, no-c-format
+msgid "Release date: 2005/11/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1701
+#, no-c-format
+msgid ""
+"Contains memory-alignment fixes in the library, a segfault fix in loader's "
+"handling of UTF8 attributes and a few improvements and cleanups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1706
+#, no-c-format
+msgid ""
+"Return code of shp2pgsql changed from previous releases to conform to unix "
+"standards (return 0 on success)."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1726 release_notes.xml:1941 release_notes.xml:1993
+#: release_notes.xml:2042 release_notes.xml:2084 release_notes.xml:2118
+#: release_notes.xml:2185 release_notes.xml:2282
+#, no-c-format
+msgid "Library changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1728
+#, no-c-format
+msgid "Fixed memory alignment problems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1730
+#, no-c-format
+msgid "Fixed computation of null values fraction in analyzer"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1732
+#, no-c-format
+msgid "Fixed a small bug in the getPoint4d_p() low-level function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1735
+#, no-c-format
+msgid "Speedup of serializer functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1737
+#, no-c-format
+msgid "Fixed a bug in force_3dm(), force_3dz() and force_4d()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1741
+#, no-c-format
+msgid "Loader changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1743
+#, no-c-format
+msgid "Fixed return code of shp2pgsql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1745
+#, no-c-format
+msgid "Fixed back-compatibility issue in loader (load of null shapefiles)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1748
+#, no-c-format
+msgid "Fixed handling of trailing dots in dbf numerical attributes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1751
+#, no-c-format
+msgid "Segfault fix in shp2pgsql (utf8 encoding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1757
+#, no-c-format
+msgid "Schema aware postgis_proc_upgrade.pl, support for pgsql 7.2+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1760
+#, no-c-format
+msgid "New \"Reporting Bugs\" chapter in manual"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1765
+#, no-c-format
+msgid "Release 1.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1767
+#, no-c-format
+msgid "Release date: 2005/09/09"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1769
+#, no-c-format
+msgid ""
+"Contains important bug fixes and a few improvements. In particular, it fixes "
+"a memory leak preventing successful build of GiST indexes for large spatial "
+"tables."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1776
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 you <emphasis>DO NOT</emphasis> need "
+"a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1791
+#, no-c-format
+msgid "Memory leak plugged in GiST indexing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1793
+#, no-c-format
+msgid "Segfault fix in transform() handling of proj4 errors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1795
+#, no-c-format
+msgid "Fixed some proj4 texts in spatial_ref_sys (missing +proj)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1797
+#, no-c-format
+msgid ""
+"Loader: fixed string functions usage, reworked NULL objects check, fixed "
+"segfault on MULTILINESTRING input."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1800
+#, no-c-format
+msgid "Fixed bug in MakeLine dimension handling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1802
+#, no-c-format
+msgid "Fixed bug in translate() corrupting output bounding box"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1808
+#, no-c-format
+msgid "Documentation improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1810
+#, no-c-format
+msgid "More robust selectivity estimator"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1812
+#, no-c-format
+msgid "Minor speedup in distance()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1814
+#, no-c-format
+msgid "Minor cleanups"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1816
+#, no-c-format
+msgid "GiST indexing cleanup"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1818
+#, no-c-format
+msgid "Looser syntax acceptance in box3d parser"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1823
+#, no-c-format
+msgid "Release 1.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1825
+#, no-c-format
+msgid "Release date: 2005/08/08"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1827
+#, no-c-format
+msgid ""
+"Contains some bug fixes - <emphasis>including a severe one affecting "
+"correctness of stored geometries</emphasis> - and a few improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1834
+#, no-c-format
+msgid ""
+"Due to a bug in a bounding box computation routine, the upgrade procedure "
+"requires special attention, as bounding boxes cached in the database could "
+"be incorrect."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1838
+#, no-c-format
+msgid ""
+"An <link linkend=\"hard_upgrade\">hard upgrade</link> procedure (dump/"
+"reload) will force recomputation of all bounding boxes (not included in "
+"dumps). This is <emphasis>required</emphasis> if upgrading from releases "
+"prior to 1.0.0RC6."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1843
+#, no-c-format
+msgid ""
+"If you are upgrading from versions 1.0.0RC6 or up, this release includes a "
+"perl script (utils/rebuild_bbox_caches.pl) to force recomputation of "
+"geometries' bounding boxes and invoke all operations required to propagate "
+"eventual changes in them (geometry statistics update, reindexing). Invoke "
+"the script after a make install (run with no args for syntax help). "
+"Optionally run utils/postgis_proc_upgrade.pl to refresh postgis procedures "
+"and functions signatures (see <link linkend=\"soft_upgrade\">Soft upgrade</"
+"link>)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1856
+#, no-c-format
+msgid "Severe bugfix in lwgeom's 2d bounding box computation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1858
+#, no-c-format
+msgid "Bugfix in WKT (-w) POINT handling in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1860
+#, no-c-format
+msgid "Bugfix in dumper on 64bit machines"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1862
+#, no-c-format
+msgid "Bugfix in dumper handling of user-defined queries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1864
+#, no-c-format
+msgid "Bugfix in create_undef.pl script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1870
+#, no-c-format
+msgid "Small performance improvement in canonical input function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1872
+#, no-c-format
+msgid "Minor cleanups in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1874
+#, no-c-format
+msgid "Support for multibyte field names in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1876
+#, no-c-format
+msgid "Improvement in the postgis_restore.pl script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1878
+#, no-c-format
+msgid "New rebuild_bbox_caches.pl util script"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1883
+#, no-c-format
+msgid "Release 1.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1885
+#, no-c-format
+msgid "Release date: 2005/07/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1892 release_notes.xml:1932
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC6 or up you <emphasis>DO NOT</"
+"emphasis> need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1895 release_notes.xml:1935
+#, no-c-format
+msgid ""
+"Upgrading from older releases requires a dump/reload. See the <link linkend="
+"\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1903
+#, no-c-format
+msgid "Fault tolerant btree ops"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1905
+#, no-c-format
+msgid "Memory leak plugged in pg_error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1907
+#, no-c-format
+msgid "Rtree index fix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1909
+#, no-c-format
+msgid "Cleaner build scripts (avoided mix of CFLAGS and CXXFLAGS)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1916
+#, no-c-format
+msgid "New index creation capabilities in loader (-I switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1918
+#, no-c-format
+msgid "Initial support for postgresql 8.1dev"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1923
+#, no-c-format
+msgid "Release 1.0.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1925
+#, no-c-format
+msgid "Release date: 2005/05/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1927
+#, no-c-format
+msgid "Contains a few bug fixes and some improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1943
+#, no-c-format
+msgid "BUGFIX in 3d computation of length_spheroid()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1945
+#, no-c-format
+msgid "BUGFIX in join selectivity estimator"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1949 release_notes.xml:2005
+#, no-c-format
+msgid "Other changes/additions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1951
+#, no-c-format
+msgid "BUGFIX in shp2pgsql escape functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1953
+#, no-c-format
+msgid "better support for concurrent postgis in multiple schemas"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1955
+#, no-c-format
+msgid "documentation fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1957
+#, no-c-format
+msgid "jdbc2: compile with \"-target 1.2 -source 1.2\" by default"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1959
+#, no-c-format
+msgid "NEW -k switch for pgsql2shp"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1961
+#, no-c-format
+msgid "NEW support for custom createdb options in postgis_restore.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1964
+#, no-c-format
+msgid "BUGFIX in pgsql2shp attribute names unicity enforcement"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1966
+#, no-c-format
+msgid "BUGFIX in Paris projections definitions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1968
+#, no-c-format
+msgid "postgis_restore.pl cleanups"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1973
+#, no-c-format
+msgid "Release 1.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1975
+#, no-c-format
+msgid "Release date: 2005/04/19"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1977
+#, no-c-format
+msgid ""
+"Final 1.0.0 release. Contains a few bug fixes, some improvements in the "
+"loader (most notably support for older postgis versions), and more docs."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1984
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC6 you <emphasis>DO NOT</emphasis> "
+"need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1987 release_notes.xml:2078
+#, no-c-format
+msgid ""
+"Upgrading from any other precedent release requires a dump/reload. See the "
+"<link linkend=\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1995
+#, no-c-format
+msgid "BUGFIX in transform() releasing random memory address"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1997
+#, no-c-format
+msgid "BUGFIX in force_3dm() allocating less memory then required"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2000
+#, no-c-format
+msgid "BUGFIX in join selectivity estimator (defaults, leaks, tuplecount, sd)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2007
+#, no-c-format
+msgid "BUGFIX in shp2pgsql escape of values starting with tab or single-quote"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2010
+#, no-c-format
+msgid "NEW manual pages for loader/dumper"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2012
+#, no-c-format
+msgid "NEW shp2pgsql support for old (HWGEOM) postgis versions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2014
+#, no-c-format
+msgid "NEW -p (prepare) flag for shp2pgsql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2016
+#, no-c-format
+msgid "NEW manual chapter about OGC compliancy enforcement"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2018
+#, no-c-format
+msgid "NEW autoconf support for JTS lib"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2020
+#, no-c-format
+msgid "BUGFIX in estimator testers (support for LWGEOM and schema parsing)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2026
+#, no-c-format
+msgid "Release 1.0.0RC6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2028
+#, no-c-format
+msgid "Release date: 2005/03/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2030
+#, no-c-format
+msgid ""
+"Sixth release candidate for 1.0.0. Contains a few bug fixes and cleanups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2036 release_notes.xml:2112 release_notes.xml:2179
+#: release_notes.xml:2276 release_notes.xml:2330
+#, no-c-format
+msgid ""
+"You need a dump/reload to upgrade from precedent releases. See the <link "
+"linkend=\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2044
+#, no-c-format
+msgid "BUGFIX in multi()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2046
+#, no-c-format
+msgid "early return [when noop] from multi()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2050 release_notes.xml:2136 release_notes.xml:2209
+#: release_notes.xml:2301
+#, no-c-format
+msgid "Scripts changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2052
+#, no-c-format
+msgid "dropped {x,y}{min,max}(box2d) functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2058
+#, no-c-format
+msgid "BUGFIX in postgis_restore.pl scrip"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2060
+#, no-c-format
+msgid "BUGFIX in dumper's 64bit support"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2065
+#, no-c-format
+msgid "Release 1.0.0RC5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2067
+#, no-c-format
+msgid "Release date: 2005/03/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2069
+#, no-c-format
+msgid ""
+"Fifth release candidate for 1.0.0. Contains a few bug fixes and a "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2075
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC4 you <emphasis>DO NOT</emphasis> "
+"need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2086
+#, no-c-format
+msgid "BUGFIX (segfaulting) in box3d computation (yes, another!)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2089
+#, no-c-format
+msgid "BUGFIX (segfaulting) in estimated_extent()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2095
+#, no-c-format
+msgid "Small build scripts and utilities refinements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2097
+#, no-c-format
+msgid "Additional performance tips documented."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2102
+#, no-c-format
+msgid "Release 1.0.0RC4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2104
+#, no-c-format
+msgid "Release date: 2005/03/18"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2106
+#, no-c-format
+msgid ""
+"Fourth release candidate for 1.0.0. Contains bug fixes and a few "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2120
+#, no-c-format
+msgid "BUGFIX (segfaulting) in geom_accum()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2122
+#, no-c-format
+msgid "BUGFIX in 64bit architectures support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2124
+#, no-c-format
+msgid "BUGFIX in box3d computation function with collections."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2126
+#, no-c-format
+msgid "NEW subselects support in selectivity estimator."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2128
+#, no-c-format
+msgid "Early return from force_collection."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2130
+#, no-c-format
+msgid "Consistency check fix in SnapToGrid()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2132
+#, no-c-format
+msgid "Box2d output changed back to 15 significant digits."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2138
+#, no-c-format
+msgid "NEW distance_sphere() function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2140
+#, no-c-format
+msgid ""
+"Changed get_proj4_from_srid implementation to use PL/PGSQL instead of SQL."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2147
+#, no-c-format
+msgid "BUGFIX in loader and dumper handling of MultiLine shapes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2149
+#, no-c-format
+msgid "BUGFIX in loader, skipping all but first hole of polygons."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2152
+#, no-c-format
+msgid "jdbc2: code cleanups, Makefile improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2154
+#, no-c-format
+msgid ""
+"FLEX and YACC variables set *after* pgsql Makefile.global is included and "
+"only if the pgsql *stripped* version evaluates to the empty string"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2158
+#, no-c-format
+msgid "Added already generated parser in release"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2160
+#, no-c-format
+msgid "Build scripts refinements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2162
+#, no-c-format
+msgid "improved version handling, central Version.config"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2164
+#, no-c-format
+msgid "improvements in postgis_restore.pl"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2169
+#, no-c-format
+msgid "Release 1.0.0RC3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2171
+#, no-c-format
+msgid "Release date: 2005/02/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2173
+#, no-c-format
+msgid ""
+"Third release candidate for 1.0.0. Contains many bug fixes and improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2187
+#, no-c-format
+msgid "BUGFIX in transform(): missing SRID, better error handling."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2190
+#, no-c-format
+msgid "BUGFIX in memory alignment handling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2192
+#, no-c-format
+msgid ""
+"BUGFIX in force_collection() causing mapserver connector failures on simple "
+"(single) geometry types."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2195
+#, no-c-format
+msgid "BUGFIX in GeometryFromText() missing to add a bbox cache."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2197
+#, no-c-format
+msgid "reduced precision of box2d output."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2199
+#, no-c-format
+msgid "prefixed DEBUG macros with PGIS_ to avoid clash with pgsql one"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2202
+#, no-c-format
+msgid "plugged a leak in GEOS2POSTGIS converter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2204
+#, no-c-format
+msgid "Reduced memory usage by early releasing query-context palloced one."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2211
+#, no-c-format
+msgid "BUGFIX in 72 index bindings."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2213
+#, no-c-format
+msgid ""
+"BUGFIX in probe_geometry_columns() to work with PG72 and support multiple "
+"geometry columns in a single table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2216
+#, no-c-format
+msgid "NEW bool::text cast"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2218
+#, no-c-format
+msgid "Some functions made IMMUTABLE from STABLE, for performance improvement."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2225
+#, no-c-format
+msgid "jdbc2: small patches, box2d/3d tests, revised docs and license."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2228
+#, no-c-format
+msgid "jdbc2: bug fix and testcase in for pgjdbc 8.0 type autoregistration"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2231
+#, no-c-format
+msgid ""
+"jdbc2: Removed use of jdk1.4 only features to enable build with older jdk "
+"releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2234
+#, no-c-format
+msgid "jdbc2: Added support for building against pg72jdbc2.jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2236
+#, no-c-format
+msgid "jdbc2: updated and cleaned makefile"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2238
+#, no-c-format
+msgid "jdbc2: added BETA support for jts geometry classes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2240
+#, no-c-format
+msgid "jdbc2: Skip known-to-fail tests against older PostGIS servers."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2243
+#, no-c-format
+msgid "jdbc2: Fixed handling of measured geometries in EWKT."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2249
+#, no-c-format
+msgid "new performance tips chapter in manual"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2251
+#, no-c-format
+msgid "documentation updates: pgsql72 requirement, lwpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2253
+#, no-c-format
+msgid "few changes in autoconf"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2255
+#, no-c-format
+msgid "BUILDDATE extraction made more portable"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2257
+#, no-c-format
+msgid "fixed spatial_ref_sys.sql to avoid vacuuming the whole database."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2260
+#, no-c-format
+msgid ""
+"spatial_ref_sys: changed Paris entries to match the ones distributed with 0."
+"x."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2266
+#, no-c-format
+msgid "Release 1.0.0RC2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2268
+#, no-c-format
+msgid "Release date: 2005/01/26"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2270
+#, no-c-format
+msgid ""
+"Second release candidate for 1.0.0 containing bug fixes and a few "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2284
+#, no-c-format
+msgid "BUGFIX in pointarray box3d computation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2286
+#, no-c-format
+msgid "BUGFIX in distance_spheroid definition"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2288
+#, no-c-format
+msgid "BUGFIX in transform() missing to update bbox cache"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2290
+#, no-c-format
+msgid "NEW jdbc driver (jdbc2)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2292
+#, no-c-format
+msgid "GEOMETRYCOLLECTION(EMPTY) syntax support for backward compatibility"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2295
+#, no-c-format
+msgid "Faster binary outputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2297
+#, no-c-format
+msgid "Stricter OGC WKB/WKT constructors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2303
+#, no-c-format
+msgid "More correct STABLE, IMMUTABLE, STRICT uses in lwpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2306
+#, no-c-format
+msgid "stricter OGC WKB/WKT constructors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2312
+#, no-c-format
+msgid "Faster and more robust loader (both i18n and not)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2314
+#, no-c-format
+msgid "Initial autoconf script"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2319
+#, no-c-format
+msgid "Release 1.0.0RC1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2321
+#, no-c-format
+msgid "Release date: 2005/01/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2323
+#, no-c-format
+msgid ""
+"This is the first candidate of a major postgis release, with internal "
+"storage of postgis types redesigned to be smaller and faster on indexed "
+"queries."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2338
+#, no-c-format
+msgid "Faster canonical input parsing."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2340
+#, no-c-format
+msgid "Lossless canonical output."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2342
+#, no-c-format
+msgid "EWKB Canonical binary IO with PG>73."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2344
+#, no-c-format
+msgid ""
+"Support for up to 4d coordinates, providing lossless shapefile->postgis-"
+">shapefile conversion."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2347
+#, no-c-format
+msgid ""
+"New function: UpdateGeometrySRID(), AsGML(), SnapToGrid(), ForceRHR(), "
+"estimated_extent(), accum()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2350
+#, no-c-format
+msgid "Vertical positioning indexed operators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2352
+#, no-c-format
+msgid "JOIN selectivity function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2354
+#, no-c-format
+msgid "More geometry constructors / editors."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2356
+#, no-c-format
+msgid "PostGIS extension API."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2358
+#, no-c-format
+msgid "UTF8 support in loader."
+msgstr ""
diff --git a/doc/po/fr/reporting.xml.po b/doc/po/fr/reporting.xml.po
new file mode 100644
index 0000000..e0acc47
--- /dev/null
+++ b/doc/po/fr/reporting.xml.po
@@ -0,0 +1,192 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# etrimaille <gustrimaille at yahoo.fr>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-28 21:06+0000\n"
+"Last-Translator: etrimaille <gustrimaille at yahoo.fr>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: reporting.xml:3
+#, no-c-format
+msgid "Reporting Problems"
+msgstr "Rapporter un problème"
+
+#. Tag: title
+#: reporting.xml:6
+#, no-c-format
+msgid "Reporting Software Bugs"
+msgstr "Rapporter un problème logiciel"
+
+#. Tag: para
+#: reporting.xml:8
+#, no-c-format
+msgid ""
+"Reporting bugs effectively is a fundamental way to help PostGIS development. "
+"The most effective bug report is that enabling PostGIS developers to "
+"reproduce it, so it would ideally contain a script triggering it and every "
+"information regarding the environment in which it was detected. Good enough "
+"info can be extracted running <code>SELECT postgis_full_version()</code> "
+"[for postgis] and <code>SELECT version()</code> [for postgresql]."
+msgstr ""
+"Rapporter un problème est effectivement fondamental afin d'aider le "
+"développement de PostGIS. Un rapport de bug efficace permet à l'équipe des "
+"développeurs de PostGIS de reproduire le problème. Le rapport est donc "
+"pertinent si il contient le script qui le déclenche et toutes les "
+"informations à propos de l'environnement dans lequel il a été détecté. De "
+"bonnes informations peuvent être obtenus par l’exécution de <code>SELECT "
+"postgis_full_version()</code> [pour postgis] et <code>SELECT version()</"
+"code> [pour postgresql]."
+
+#. Tag: para
+#: reporting.xml:16
+#, no-c-format
+msgid ""
+"If you aren't using the latest release, it's worth taking a look at its "
+"<ulink url=\"http://svn.osgeo.org/postgis/trunk/NEWS\">release changelog</"
+"ulink> first, to find out if your bug has already been fixed."
+msgstr ""
+"Si vous n'utilisez pas la dernière version stable, il est préférable de "
+"regarder tout d'abord<ulink url=\"http://svn.osgeo.org/postgis/trunk/NEWS"
+"\">les derniers changements </ulink> pour savoir si le problème n'a pas déjà "
+"été résolu."
+
+#. Tag: para
+#: reporting.xml:21
+#, no-c-format
+msgid ""
+"Using the <ulink url=\"http://trac.osgeo.org/postgis/\">PostGIS bug tracker</"
+"ulink> will ensure your reports are not discarded, and will keep you "
+"informed on its handling process. Before reporting a new bug please query "
+"the database to see if it is a known one, and if it is please add any new "
+"information you have about it."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:28
+#, no-c-format
+msgid ""
+"You might want to read Simon Tatham's paper about <ulink url=\"http://www."
+"chiark.greenend.org.uk/~sgtatham/bugs.html\">How to Report Bugs Effectively</"
+"ulink> before filing a new report."
+msgstr ""
+
+#. Tag: title
+#: reporting.xml:34
+#, no-c-format
+msgid "Reporting Documentation Issues"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:36
+#, no-c-format
+msgid ""
+"The documentation should accurately reflect the features and behavior of the "
+"software. If it doesn't, it could be because of a software bug or because "
+"the documentation is in error or deficient."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:40
+#, no-c-format
+msgid ""
+"Documentation issues can also be reported to the <ulink url=\"http://trac."
+"osgeo.org/postgis\">PostGIS bug tracker</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:44
+#, no-c-format
+msgid ""
+"If your revision is trivial, just describe it in a new bug tracker issue, "
+"being specific about its location in the documentation."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:47
+#, no-c-format
+msgid ""
+"If your changes are more extensive, a Subversion patch is definitely "
+"preferred. This is a four step process on Unix (assuming you already have "
+"<ulink url=\"http://subversion.apache.org/\">Subversion</ulink> installed):"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:54
+#, no-c-format
+msgid "Check out a copy of PostGIS' Subversion trunk. On Unix, type:"
+msgstr ""
+
+#. Tag: command
+#: reporting.xml:57
+#, no-c-format
+msgid "svn checkout http://svn.osgeo.org/postgis/trunk/"
+msgstr "svn checkout http://svn.osgeo.org/postgis/trunk/"
+
+#. Tag: para
+#: reporting.xml:60
+#, no-c-format
+msgid "This will be stored in the directory ./trunk"
+msgstr "Cela sera sauvegardé dans le répertoire ./trunk"
+
+#. Tag: para
+#: reporting.xml:64
+#, no-c-format
+msgid ""
+"Make your changes to the documentation with your favorite text editor. On "
+"Unix, type (for example):"
+msgstr ""
+"Faites vos changements sur la documentation avec votre éditeur de texte "
+"favori. Sur Unix, tapez (pour exemple) :"
+
+#. Tag: command
+#: reporting.xml:67
+#, no-c-format
+msgid "vim trunk/doc/postgis.xml"
+msgstr "vim trunk/doc/postgis.xml"
+
+#. Tag: para
+#: reporting.xml:69
+#, no-c-format
+msgid ""
+"Note that the documentation is written in DocBook XML rather than HTML, so "
+"if you are not familiar with it please follow the example of the rest of the "
+"documentation."
+msgstr ""
+"Remarquez que la documentation est écrite avec DocBook XML au lieu de HTML, "
+"donc si vous ne vous sentez pas familier avec cela, vous devriez suivre les "
+"exemples dans la suite de la documentation."
+
+#. Tag: para
+#: reporting.xml:75
+#, no-c-format
+msgid ""
+"Make a patch file containing the differences from the master copy of the "
+"documentation. On Unix, type:"
+msgstr ""
+"Faites un correctif contenant les différences avec une copie de la "
+"documentation principale. Sur Unix, tapez :"
+
+#. Tag: command
+#: reporting.xml:78
+#, no-c-format
+msgid "svn diff trunk/doc/postgis.xml > doc.patch"
+msgstr "svn diff trunk/doc/postgis.xml > doc.patch"
+
+#. Tag: para
+#: reporting.xml:83
+#, no-c-format
+msgid "Attach the patch to a new issue in bug tracker."
+msgstr ""
+"Ajoutez le correctif à un nouveau ticket dans le système de suivi de bogues."
diff --git a/doc/po/fr/using_postgis_app.xml.po b/doc/po/fr/using_postgis_app.xml.po
new file mode 100644
index 0000000..7eadb92
--- /dev/null
+++ b/doc/po/fr/using_postgis_app.xml.po
@@ -0,0 +1,854 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Arnaud Vandecasteele <arnaud.sig at gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2014-03-26 13:35+0000\n"
+"Last-Translator: Arnaud Vandecasteele <arnaud.sig at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: using_postgis_app.xml:3
+#, no-c-format
+msgid "Using PostGIS Geometry: Building Applications"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:5
+#, no-c-format
+msgid "Using MapServer"
+msgstr "Utiliser MapServer"
+
+#. Tag: para
+#: using_postgis_app.xml:7
+#, no-c-format
+msgid ""
+"The Minnesota MapServer is an internet web-mapping server which conforms to "
+"the OpenGIS Web Mapping Server specification."
+msgstr ""
+"MapServer est un serveur cartographique web conforme aux spécifications "
+"définies par l'OpenGIS"
+
+#. Tag: para
+#: using_postgis_app.xml:12
+#, no-c-format
+msgid ""
+"The MapServer homepage is at <ulink url=\"http://mapserver.org\">http://"
+"mapserver.org</ulink>."
+msgstr ""
+"La page internet de MapServer est <ulink url=\"http://mapserver.org\">http://"
+"mapserver.org</ulink>."
+
+#. Tag: para
+#: using_postgis_app.xml:17
+#, no-c-format
+msgid ""
+"The OpenGIS Web Map Specification is at <ulink url=\"http://www."
+"opengeospatial.org/standards/wms\">http://www.opengeospatial.org/standards/"
+"wms</ulink>."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:23
+#, no-c-format
+msgid "Basic Usage"
+msgstr "Utilisation basique"
+
+#. Tag: para
+#: using_postgis_app.xml:25
+#, no-c-format
+msgid ""
+"To use PostGIS with MapServer, you will need to know about how to configure "
+"MapServer, which is beyond the scope of this documentation. This section "
+"will cover specific PostGIS issues and configuration details."
+msgstr ""
+"Afin d'utiliser conjointement PostGIS et MapServer, il est nécessaire au "
+"préalable de savoir comment configurer MapServer ce qui est bien au-delà de "
+"l'objectif de cette documentation. Cette section portera spécifiquement sur "
+"les aspects relatifs à PostGIS."
+
+#. Tag: para
+#: using_postgis_app.xml:30
+#, no-c-format
+msgid "To use PostGIS with MapServer, you will need:"
+msgstr "Pour utiliser PostGIS avec MapServer, vous aurez besoin de :"
+
+#. Tag: para
+#: using_postgis_app.xml:34
+#, no-c-format
+msgid "Version 0.6 or newer of PostGIS."
+msgstr "La version 0.6 - ou plus récente - de PostGIS."
+
+#. Tag: para
+#: using_postgis_app.xml:38
+#, no-c-format
+msgid "Version 3.5 or newer of MapServer."
+msgstr "La version 3.5 - ou plus récente - de MapServer."
+
+#. Tag: para
+#: using_postgis_app.xml:42
+#, no-c-format
+msgid ""
+"MapServer accesses PostGIS/PostgreSQL data like any other PostgreSQL client "
+"-- using the <filename>libpq</filename> interface. This means that MapServer "
+"can be installed on any machine with network access to the PostGIS server, "
+"and use PostGIS as a source of data. The faster the connection between the "
+"systems, the better."
+msgstr ""
+"MapServer communique avec PostGIS/PostgreSQL en utilisant l'interface "
+"<filename>libpq</filename> comme n'importe quel autre client PostgreSQL. "
+"Cela signifie que pour utiliser PostGIS, MapServer peut être installé sur "
+"n'importe quelle machine disposant d'un accès internet au serveur PostGIS. "
+"Plus la connection entre les deux systèmes est rapide et meilleur seront les "
+"performances."
+
+#. Tag: para
+#: using_postgis_app.xml:50
+#, no-c-format
+msgid ""
+"Compile and install MapServer, with whatever options you desire, including "
+"the \"--with-postgis\" configuration option."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:55
+#, no-c-format
+msgid "In your MapServer map file, add a PostGIS layer. For example:"
+msgstr "Dans votre fichier MapFIle, ajoutez une couche PostGIS. Par exemple :"
+
+#. Tag: programlisting
+#: using_postgis_app.xml:58
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"widehighways\" \n"
+"  # Connect to a remote spatial database\n"
+"  CONNECTION \"user=dbuser dbname=gisdatabase host=bigserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  # Get the lines from the 'geom' column of the 'roads' table \n"
+"  DATA \"geom from roads using srid=4326 using unique gid\" \n"
+"  STATUS ON\n"
+"  TYPE LINE \n"
+"  # Of the lines in the extents, only render the wide highways \n"
+"  FILTER \"type = 'highway' and numlanes >= 4\" \n"
+"  CLASS \n"
+"    # Make the superhighways brighter and 2 pixels wide\n"
+"    EXPRESSION ([numlanes] >= 6) \n"
+"    STYLE\n"
+"      COLOR 255 22 22 \n"
+"      WIDTH 2 \n"
+"    END\n"
+"  END \n"
+"  CLASS \n"
+"    # All the rest are darker and only 1 pixel wide \n"
+"    EXPRESSION ([numlanes] < 6) \n"
+"    STYLE\n"
+"      COLOR 205 92 82\n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+"LAYER\n"
+"CONNECTIONTYPE postgis\n"
+"NAME \"widehighways\" \n"
+"# Connection à la base de données\n"
+"CONNECTION \"user=dbuser dbname=gisdatabase host=bigserver\"\n"
+"PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"# Récupère les informations géographiques de la colonne 'geom' de la table "
+"'roads' \n"
+"DATA \"geom from roads using srid=4326 using unique gid\" \n"
+"STATUS ON\n"
+"TYPE LINE \n"
+"# Seule les routes principales seront affichées \n"
+"FILTER \"type = 'highway' and numlanes >= 4\" \n"
+"CLASS \n"
+"# Le trait représentant les routes importantes sera plus claires et large de "
+"2 pixels\n"
+"EXPRESSION ([numlanes] >= 6) \n"
+"STYLE\n"
+"COLOR 255 22 22 \n"
+"WIDTH 2 \n"
+"END\n"
+"END \n"
+"CLASS \n"
+"# Toute les autres seront dessinées en couleur sombre avec un trait d'1 "
+"pixel d'paisseur\n"
+"EXPRESSION ([numlanes] < 6) \n"
+"STYLE\n"
+"COLOR 205 92 82\n"
+"END\n"
+"END \n"
+"END"
+
+#. Tag: para
+#: using_postgis_app.xml:60
+#, no-c-format
+msgid "In the example above, the PostGIS-specific directives are as follows:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:65
+#, no-c-format
+msgid "CONNECTIONTYPE"
+msgstr "CONNECTIONTYPE"
+
+#. Tag: para
+#: using_postgis_app.xml:68
+#, no-c-format
+msgid "For PostGIS layers, this is always \"postgis\"."
+msgstr "Pour les couches de données PostGIS, cela sera toujours \"postgis\"."
+
+#. Tag: term
+#: using_postgis_app.xml:73
+#, no-c-format
+msgid "CONNECTION"
+msgstr "CONNECTION"
+
+#. Tag: para
+#: using_postgis_app.xml:76
+#, no-c-format
+msgid ""
+"The database connection is governed by the a 'connection string' which is a "
+"standard set of keys and values like this (with the default values in <"
+">):"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:80
+#, no-c-format
+msgid ""
+"user=<username> password=<password> dbname=<username> "
+"hostname=<server> port=<5432>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:84
+#, no-c-format
+msgid ""
+"An empty connection string is still valid, and any of the key/value pairs "
+"can be omitted. At a minimum you will generally supply the database name and "
+"username to connect with."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:92
+#, no-c-format
+msgid "DATA"
+msgstr "DATA"
+
+#. Tag: para
+#: using_postgis_app.xml:95
+#, no-c-format
+msgid ""
+"The form of this parameter is \"<geocolumn> from <tablename> "
+"using srid=<srid> using unique <primary key>\" where the column "
+"is the spatial column to be rendered to the map, the SRID is SRID used by "
+"the column and the primary key is the table primary key (or any other "
+"uniquely-valued column with an index)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:99
+#, no-c-format
+msgid ""
+"You can omit the \"using srid\" and \"using unique\" clauses and MapServer "
+"will automatically determine the correct values if possible, but at the cost "
+"of running a few extra queries on the server for each map draw."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:106
+#, no-c-format
+msgid "PROCESSING"
+msgstr "PROCESSING"
+
+#. Tag: para
+#: using_postgis_app.xml:109
+#, no-c-format
+msgid ""
+"Putting in a CLOSE_CONNECTION=DEFER if you have multiple layers reuses "
+"existing connections instead of closing them. This improves speed. Refer to "
+"for <ulink url=\"http://blog.cleverelephant.ca/2008/10/mapserverpostgis-"
+"performance-tips.html\">MapServer PostGIS Performance Tips</ulink> for a "
+"more detailed explanation."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:115
+#, no-c-format
+msgid "FILTER"
+msgstr "FILTER"
+
+#. Tag: para
+#: using_postgis_app.xml:118
+#, no-c-format
+msgid ""
+"The filter must be a valid SQL string corresponding to the logic normally "
+"following the \"WHERE\" keyword in a SQL query. So, for example, to render "
+"only roads with 6 or more lanes, use a filter of \"num_lanes >= 6\"."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:128
+#, no-c-format
+msgid ""
+"In your spatial database, ensure you have spatial (GiST) indexes built for "
+"any the layers you will be drawing."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:131
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: using_postgis_app.xml:135
+#, no-c-format
+msgid ""
+"If you will be querying your layers using MapServer you will also need to "
+"use the \"using unique\" clause in your DATA statement."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:138
+#, no-c-format
+msgid ""
+"MapServer requires unique identifiers for each spatial record when doing "
+"queries, and the PostGIS module of MapServer uses the unique value you "
+"specify in order to provide these unique identifiers. Using the table "
+"primary key is the best practice."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:147
+#, no-c-format
+msgid "Frequently Asked Questions"
+msgstr "Questions les plus fréquemment posées"
+
+#. Tag: para
+#: using_postgis_app.xml:152
+#, no-c-format
+msgid ""
+"When I use an <varname>EXPRESSION</varname> in my map file, the condition "
+"never returns as true, even though I know the values exist in my table."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:158
+#, no-c-format
+msgid ""
+"Unlike shape files, PostGIS field names have to be referenced in EXPRESSIONS "
+"using <emphasis>lower case</emphasis>."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:162
+#, no-c-format
+msgid "EXPRESSION ([numlanes] >= 6)"
+msgstr "EXPRESSION ([numlanes] >= 6)"
+
+#. Tag: para
+#: using_postgis_app.xml:168
+#, no-c-format
+msgid ""
+"The FILTER I use for my Shape files is not working for my PostGIS table of "
+"the same data."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:173
+#, no-c-format
+msgid ""
+"Unlike shape files, filters for PostGIS layers use SQL syntax (they are "
+"appended to the SQL statement the PostGIS connector generates for drawing "
+"layers in MapServer)."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:177
+#, no-c-format
+msgid "FILTER \"type = 'highway' and numlanes >= 4\""
+msgstr "FILTER \"type = 'highway' and numlanes >= 4\""
+
+#. Tag: para
+#: using_postgis_app.xml:183
+#, no-c-format
+msgid ""
+"My PostGIS layer draws much slower than my Shape file layer, is this normal?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:188
+#, no-c-format
+msgid ""
+"In general, the more features you are drawing into a given map, the more "
+"likely it is that PostGIS will be slower than Shape files. For maps with "
+"relatively few features (100s), PostGIS will often be faster. For maps with "
+"high feature density (1000s), PostGIS will always be slower."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:194
+#, no-c-format
+msgid ""
+"If you are finding substantial draw performance problems, it is possible "
+"that you have not built a spatial index on your table."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:198
+#, no-c-format
+msgid ""
+"postgis# CREATE INDEX geotable_gix ON geotable USING GIST ( geocolumn ); \n"
+"postgis# VACUUM ANALYZE;"
+msgstr ""
+"postgis# CREATE INDEX geotable_gix ON geotable USING GIST ( geocolumn );\n"
+"postgis# VACUUM ANALYZE;"
+
+#. Tag: para
+#: using_postgis_app.xml:204
+#, no-c-format
+msgid ""
+"My PostGIS layer draws fine, but queries are really slow. What is wrong?"
+msgstr ""
+"Mes couches de données PostGIS s'affichent correctement, mais les requêtes "
+"sont longues. Qu'est ce qui ne va pas ?"
+
+#. Tag: para
+#: using_postgis_app.xml:209
+#, no-c-format
+msgid ""
+"For queries to be fast, you must have a unique key for your spatial table "
+"and you must have an index on that unique key."
+msgstr ""
+"Afin que vos requêtes s'exécutent rapidement, vos enregistrements doivent "
+"être identifiables par une clé unique, identifiant qui doit également avoir "
+"été indexé."
+
+#. Tag: para
+#: using_postgis_app.xml:213
+#, no-c-format
+msgid ""
+"You can specify what unique key for mapserver to use with the <varname>USING "
+"UNIQUE</varname> clause in your <varname>DATA</varname> line:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:217
+#, no-c-format
+msgid "DATA \"geom FROM geotable USING UNIQUE gid\""
+msgstr "DATA \"geom FROM geotable USING UNIQUE gid\""
+
+#. Tag: para
+#: using_postgis_app.xml:224
+#, no-c-format
+msgid ""
+"Can I use \"geography\" columns (new in PostGIS 1.5) as a source for "
+"MapServer layers?"
+msgstr ""
+"Est-il possible avec MapServer d'utiliser le type de données \"geography"
+"\" (nouveauté de la version 1.5 de PostGIS) comme couche de données ?  "
+
+#. Tag: para
+#: using_postgis_app.xml:229
+#, no-c-format
+msgid ""
+"Yes! MapServer understands geography columns as being the same as geometry "
+"columns, but always using an SRID of 4326. Just make sure to include a "
+"\"using srid=4326\" clause in your <varname>DATA</varname> statement. "
+"Everything else works exactly the same as with geometry."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:234
+#, no-c-format
+msgid "DATA \"geog FROM geogtable USING SRID=4326 USING UNIQUE gid\""
+msgstr "DATA \"geog FROM geogtable USING SRID=4326 USING UNIQUE gid\""
+
+#. Tag: title
+#: using_postgis_app.xml:244
+#, no-c-format
+msgid "Advanced Usage"
+msgstr "Usage avancé "
+
+#. Tag: para
+#: using_postgis_app.xml:246
+#, no-c-format
+msgid ""
+"The <varname>USING</varname> pseudo-SQL clause is used to add some "
+"information to help mapserver understand the results of more complex "
+"queries. More specifically, when either a view or a subselect is used as the "
+"source table (the thing to the right of \"FROM\" in a <varname>DATA</"
+"varname> definition) it is more difficult for mapserver to automatically "
+"determine a unique identifier for each row and also the SRID for the table. "
+"The <varname>USING</varname> clause can provide mapserver with these two "
+"pieces of information as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:255
+#, no-c-format
+msgid ""
+"DATA \"geom FROM (\n"
+"  SELECT \n"
+"    table1.geom AS geom, \n"
+"    table1.gid AS gid, \n"
+"    table2.data AS data \n"
+"  FROM table1 \n"
+"  LEFT JOIN table2 \n"
+"  ON table1.id = table2.id\n"
+") AS new_table USING UNIQUE gid USING SRID=4326\""
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:259
+#, no-c-format
+msgid "USING UNIQUE <uniqueid>"
+msgstr "USING UNIQUE <uniqueid>"
+
+#. Tag: para
+#: using_postgis_app.xml:262
+#, no-c-format
+msgid ""
+"MapServer requires a unique id for each row in order to identify the row "
+"when doing map queries. Normally it identifies the primary key from the "
+"system tables. However, views and subselects don't automatically have an "
+"known unique column. If you want to use MapServer's query functionality, you "
+"need to ensure your view or subselect includes a uniquely valued column, and "
+"declare it with <varname>USING UNIQUE</varname>. For example, you could "
+"explicitly select nee of the table's primary key values for this purpose, or "
+"any other column which is guaranteed to be unique for the result set."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:273
+#, no-c-format
+msgid ""
+"\"Querying a Map\" is the action of clicking on a map to ask for information "
+"about the map features in that location. Don't confuse \"map queries\" with "
+"the SQL query in a <varname>DATA</varname> definition."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:282
+#, no-c-format
+msgid "USING SRID=<srid>"
+msgstr "USING SRID=<srid>"
+
+#. Tag: para
+#: using_postgis_app.xml:285
+#, no-c-format
+msgid ""
+"PostGIS needs to know which spatial referencing system is being used by the "
+"geometries in order to return the correct data back to MapServer. Normally "
+"it is possible to find this information in the \"geometry_columns\" table in "
+"the PostGIS database, however, this is not possible for tables which are "
+"created on the fly such as subselects and views. So the <varname>USING "
+"SRID=</varname> option allows the correct SRID to be specified in the "
+"<varname>DATA</varname> definition."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:300
+#, no-c-format
+msgid "Examples"
+msgstr "Exemples "
+
+#. Tag: para
+#: using_postgis_app.xml:302
+#, no-c-format
+msgid ""
+"Lets start with a simple example and work our way up. Consider the following "
+"MapServer layer definition:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:305
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"roads\"\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom from roads\" \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  CLASS \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:307
+#, no-c-format
+msgid ""
+"This layer will display all the road geometries in the roads table as black "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:310
+#, no-c-format
+msgid ""
+"Now lets say we want to show only the highways until we get zoomed in to at "
+"least a 1:100000 scale - the next two layers will achieve this effect:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:314
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\"\n"
+"  MINSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  FILTER \"road_type = 'highway'\" \n"
+"  CLASS \n"
+"    COLOR 0 0 0 \n"
+"  END \n"
+"END \n"
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\" \n"
+"  MAXSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE\n"
+"  CLASSITEM road_type \n"
+"  CLASS \n"
+"    EXPRESSION \"highway\" \n"
+"    STYLE\n"
+"      WIDTH 2 \n"
+"      COLOR 255 0 0  \n"
+"    END\n"
+"  END \n"
+"  CLASS  \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:316
+#, no-c-format
+msgid ""
+"The first layer is used when the scale is greater than 1:100000, and "
+"displays only the roads of type \"highway\" as black lines. The "
+"<varname>FILTER</varname> option causes only roads of type \"highway\" to be "
+"displayed."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:321
+#, no-c-format
+msgid ""
+"The second layer is used when the scale is less than 1:100000, and will "
+"display highways as double-thick red lines, and other roads as regular black "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:325
+#, no-c-format
+msgid ""
+"So, we have done a couple of interesting things using only MapServer "
+"functionality, but our <varname>DATA</varname> SQL statement has remained "
+"simple. Suppose that the name of the road is stored in another table (for "
+"whatever reason) and we need to do a join to get it and label our roads."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:331
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom FROM (SELECT roads.gid AS gid, roads.geom AS geom, \n"
+"        road_names.name as name FROM roads LEFT JOIN road_names ON \n"
+"        roads.road_name_id = road_names.road_name_id) \n"
+"        AS named_roads USING UNIQUE gid USING SRID=4326\" \n"
+"  MAXSCALE 20000 \n"
+"  STATUS ON \n"
+"  TYPE ANNOTATION \n"
+"  LABELITEM name\n"
+"  CLASS \n"
+"    LABEL \n"
+"      ANGLE auto \n"
+"      SIZE 8 \n"
+"      COLOR 0 192 0 \n"
+"      TYPE truetype \n"
+"      FONT arial\n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:333
+#, no-c-format
+msgid ""
+"This annotation layer adds green labels to all the roads when the scale gets "
+"down to 1:20000 or less. It also demonstrates how to use an SQL join in a "
+"<varname>DATA</varname> definition."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:340
+#, no-c-format
+msgid "Java Clients (JDBC)"
+msgstr "Clients Java (JDBC)"
+
+#. Tag: para
+#: using_postgis_app.xml:342
+#, no-c-format
+msgid ""
+"Java clients can access PostGIS \"geometry\" objects in the PostgreSQL "
+"database either directly as text representations or using the JDBC extension "
+"objects bundled with PostGIS. In order to use the extension objects, the "
+"\"postgis.jar\" file must be in your CLASSPATH along with the \"postgresql."
+"jar\" JDBC driver package."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:348
+#, no-c-format
+msgid ""
+"import java.sql.*; \n"
+"import java.util.*; \n"
+"import java.lang.*; \n"
+"import org.postgis.*; \n"
+"\n"
+"public class JavaGIS { \n"
+"\n"
+"public static void main(String[] args) { \n"
+"\n"
+"  java.sql.Connection conn; \n"
+"\n"
+"  try { \n"
+"    /* \n"
+"    * Load the JDBC driver and establish a connection. \n"
+"    */\n"
+"    Class.forName(\"org.postgresql.Driver\"); \n"
+"    String url = \"jdbc:postgresql://localhost:5432/database\"; \n"
+"    conn = DriverManager.getConnection(url, \"postgres\", \"\"); \n"
+"    /* \n"
+"    * Add the geometry types to the connection. Note that you \n"
+"    * must cast the connection to the pgsql-specific connection \n"
+"    * implementation before calling the addDataType() method. \n"
+"    */\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"geometry\",Class."
+"forName(\"org.postgis.PGgeometry\"));\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"box3d\",Class."
+"forName(\"org.postgis.PGbox3d\"));\n"
+"    /* \n"
+"    * Create a statement and execute a select query. \n"
+"    */ \n"
+"    Statement s = conn.createStatement(); \n"
+"    ResultSet r = s.executeQuery(\"select geom,id from geomtable\"); \n"
+"    while( r.next() ) { \n"
+"      /* \n"
+"      * Retrieve the geometry as an object then cast it to the geometry "
+"type. \n"
+"      * Print things out. \n"
+"      */ \n"
+"      PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"      int id = r.getInt(2); \n"
+"      System.out.println(\"Row \" + id + \":\");\n"
+"      System.out.println(geom.toString()); \n"
+"    } \n"
+"    s.close(); \n"
+"    conn.close(); \n"
+"  } \n"
+"catch( Exception e ) { \n"
+"  e.printStackTrace(); \n"
+"  } \n"
+"} \n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:350
+#, no-c-format
+msgid ""
+"The \"PGgeometry\" object is a wrapper object which contains a specific "
+"topological geometry object (subclasses of the abstract class \"Geometry\") "
+"depending on the type: Point, LineString, Polygon, MultiPoint, "
+"MultiLineString, MultiPolygon."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:355
+#, no-c-format
+msgid ""
+"PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"if( geom.getType() == Geometry.POLYGON ) { \n"
+"  Polygon pl = (Polygon)geom.getGeometry(); \n"
+"  for( int r = 0; r < pl.numRings(); r++) { \n"
+"    LinearRing rng = pl.getRing(r); \n"
+"    System.out.println(\"Ring: \" + r); \n"
+"    for( int p = 0; p < rng.numPoints(); p++ ) { \n"
+"      Point pt = rng.getPoint(p); \n"
+"      System.out.println(\"Point: \" + p);\n"
+"      System.out.println(pt.toString()); \n"
+"    } \n"
+"  } \n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:357
+#, no-c-format
+msgid ""
+"The JavaDoc for the extension objects provides a reference for the various "
+"data accessor functions in the geometric objects."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:362
+#, no-c-format
+msgid "C Clients (libpq)"
+msgstr "C Clients (libpq)"
+
+#. Tag: para
+#: using_postgis_app.xml:364 using_postgis_app.xml:369
+#: using_postgis_app.xml:375
+#, no-c-format
+msgid "<para>...</para>"
+msgstr "<para>...</para>"
+
+#. Tag: title
+#: using_postgis_app.xml:367
+#, no-c-format
+msgid "Text Cursors"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:373
+#, no-c-format
+msgid "Binary Cursors"
+msgstr ""
diff --git a/doc/po/fr/using_postgis_dataman.xml.po b/doc/po/fr/using_postgis_dataman.xml.po
new file mode 100644
index 0000000..e6fe17e
--- /dev/null
+++ b/doc/po/fr/using_postgis_dataman.xml.po
@@ -0,0 +1,3899 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-26 21:54+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: using_postgis_dataman.xml:3
+#, no-c-format
+msgid "Using PostGIS: Data Management and Queries"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:6
+#, no-c-format
+msgid "GIS Objects"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:8
+#, no-c-format
+msgid ""
+"The GIS objects supported by PostGIS are a superset of the \"Simple Features"
+"\" defined by the OpenGIS Consortium (OGC). As of version 0.9, PostGIS "
+"supports all the objects and functions specified in the OGC \"Simple "
+"Features for SQL\" specification."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:13
+#, no-c-format
+msgid ""
+"PostGIS extends the standard with support for 3DZ,3DM and 4D coordinates."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:17
+#, no-c-format
+msgid "OpenGIS WKB and WKT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:19
+#, no-c-format
+msgid ""
+"The OpenGIS specification defines two standard ways of expressing spatial "
+"objects: the Well-Known Text (WKT) form and the Well-Known Binary (WKB) "
+"form. Both WKT and WKB include information about the type of the object and "
+"the coordinates which form the object."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:24
+#, no-c-format
+msgid ""
+"Examples of the text representations (WKT) of the spatial objects of the "
+"features are as follows:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:29
+#, no-c-format
+msgid "POINT(0 0)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:33
+#, no-c-format
+msgid "LINESTRING(0 0,1 1,1 2)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:37
+#, no-c-format
+msgid "POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:41
+#, no-c-format
+msgid "MULTIPOINT((0 0),(1 2))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:45
+#, no-c-format
+msgid "MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:49
+#, no-c-format
+msgid ""
+"MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 "
+"-2,-2 -1,-1 -1)))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:54
+#, no-c-format
+msgid "GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:58
+#, no-c-format
+msgid ""
+"The OpenGIS specification also requires that the internal storage format of "
+"spatial objects include a spatial referencing system identifier (SRID). The "
+"SRID is required when creating spatial objects for insertion into the "
+"database."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:63 using_postgis_dataman.xml:151
+#, no-c-format
+msgid ""
+"Input/Output of these formats are available using the following interfaces:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:66
+#, no-c-format
+msgid ""
+"bytea WKB = ST_AsBinary(geometry);\n"
+"text WKT = ST_AsText(geometry);\n"
+"geometry = ST_GeomFromWKB(bytea WKB, SRID);\n"
+"geometry = ST_GeometryFromText(text WKT, SRID);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:68
+#, no-c-format
+msgid ""
+"For example, a valid insert statement to create and insert an OGC spatial "
+"object would be:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:71
+#, no-c-format
+msgid ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromText('POINT(-126.4 45.32)', 312), 'A Place');"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:75
+#, no-c-format
+msgid "PostGIS EWKB, EWKT and Canonical Forms"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:77
+#, no-c-format
+msgid ""
+"OGC formats only support 2d geometries, and the associated SRID is *never* "
+"embedded in the input/output representations."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:80
+#, no-c-format
+msgid ""
+"PostGIS extended formats are currently superset of OGC one (every valid WKB/"
+"WKT is a valid EWKB/EWKT) but this might vary in the future, specifically if "
+"OGC comes out with a new format conflicting with our extensions. Thus you "
+"SHOULD NOT rely on this feature!"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:85
+#, no-c-format
+msgid ""
+"PostGIS EWKB/EWKT add 3dm,3dz,4d coordinates support and embedded SRID "
+"information."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:88
+#, no-c-format
+msgid ""
+"Examples of the text representations (EWKT) of the extended spatial objects "
+"of the features are as follows. The * ones are new in this version of "
+"PostGIS:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:93
+#, no-c-format
+msgid "POINT(0 0 0) -- XYZ"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:97
+#, no-c-format
+msgid "SRID=32632;POINT(0 0) -- XY with SRID"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:101
+#, no-c-format
+msgid "POINTM(0 0 0) -- XYM"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:105
+#, no-c-format
+msgid "POINT(0 0 0 0) -- XYZM"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:109
+#, no-c-format
+msgid "SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:113
+#, no-c-format
+msgid "MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:118
+#, no-c-format
+msgid ""
+"POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:123
+#, no-c-format
+msgid ""
+"MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 "
+"0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:128
+#, no-c-format
+msgid "GEOMETRYCOLLECTIONM( POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4 5) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:132
+#, no-c-format
+msgid "MULTICURVE( (0 0, 5 5), CIRCULARSTRING(4 0, 4 4, 8 4) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:136
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 "
+"1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, "
+"1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 "
+"1, 1 1 1, 0 1 1, 0 0 1)) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:142
+#, no-c-format
+msgid "TRIANGLE ((0 0, 0 9, 9 0, 0 0))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:146
+#, no-c-format
+msgid "TIN( ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)) )"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:154
+#, no-c-format
+msgid ""
+"bytea EWKB = ST_AsEWKB(geometry);\n"
+"text EWKT = ST_AsEWKT(geometry);\n"
+"geometry = ST_GeomFromEWKB(bytea EWKB);\n"
+"geometry = ST_GeomFromEWKT(text EWKT);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:156
+#, no-c-format
+msgid ""
+"For example, a valid insert statement to create and insert a PostGIS spatial "
+"object would be:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:159
+#, no-c-format
+msgid ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromEWKT('SRID=312;POINTM(-126.4 45.32 15)'), 'A Place' )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:161
+#, no-c-format
+msgid ""
+"The \"canonical forms\" of a PostgreSQL type are the representations you get "
+"with a simple query (without any function call) and the one which is "
+"guaranteed to be accepted with a simple insert, update or copy. For the "
+"postgis 'geometry' type these are:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:164
+#, no-c-format
+msgid ""
+"- Output\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB (EWKB in hex form)\n"
+"- Input\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB|EWKT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:166
+#, no-c-format
+msgid ""
+"For example this statement reads EWKT and returns HEXEWKB in the process of "
+"canonical ascii input/output:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:169
+#, no-c-format
+msgid ""
+"=# SELECT 'SRID=4;POINT(0 0)'::geometry;\n"
+"\n"
+"geometry\n"
+"----------------------------------------------------\n"
+"01010000200400000000000000000000000000000000000000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:172
+#, no-c-format
+msgid "SQL-MM Part 3"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:174
+#, no-c-format
+msgid ""
+"The SQL Multimedia Applications Spatial specification extends the simple "
+"features for SQL spec by defining a number of circularly interpolated curves."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:178
+#, no-c-format
+msgid ""
+"The SQL-MM definitions include 3dm, 3dz and 4d coordinates, but do not allow "
+"the embedding of SRID information."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:181
+#, no-c-format
+msgid ""
+"The well-known text extensions are not yet fully supported. Examples of some "
+"simple curved geometries are shown below:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:186
+#, no-c-format
+msgid "CIRCULARSTRING(0 0, 1 1, 1 0)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:187
+#, no-c-format
+msgid "CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:188
+#, no-c-format
+msgid ""
+"The CIRCULARSTRING is the basic curve type, similar to a LINESTRING in the "
+"linear world. A single segment required three points, the start and end "
+"points (first and third) and any other point on the arc. The exception to "
+"this is for a closed circle, where the start and end points are the same. In "
+"this case the second point MUST be the center of the arc, ie the opposite "
+"side of the circle. To chain arcs together, the last point of the previous "
+"arc becomes the first point of the next arc, just like in LINESTRING. This "
+"means that a valid circular string must have an odd number of points greated "
+"than 1."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:201
+#, no-c-format
+msgid "COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:202
+#, no-c-format
+msgid ""
+"A compound curve is a single, continuous curve that has both curved "
+"(circular) segments and linear segments. That means that in addition to "
+"having well-formed components, the end point of every component (except the "
+"last) must be coincident with the start point of the following component."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:210
+#, no-c-format
+msgid ""
+"CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:212
+#, no-c-format
+msgid ""
+"Example compound curve in a curve polygon: "
+"CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, "
+"1 4, 0 0)), CIRCULARSTRING(1.7 1, 1.4 0.4, 1.6 0.4, 1.6 0.5, 1.7 1) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:216
+#, no-c-format
+msgid ""
+"A CURVEPOLYGON is just like a polygon, with an outer ring and zero or more "
+"inner rings. The difference is that a ring can take the form of a circular "
+"string, linear string or compound string."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:220
+#, no-c-format
+msgid "As of PostGIS 1.4 PostGIS supports compound curves in a curve polygon."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:224
+#, no-c-format
+msgid "MULTICURVE((0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:225
+#, no-c-format
+msgid ""
+"The MULTICURVE is a collection of curves, which can include linear strings, "
+"circular strings or compound strings."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:230
+#, no-c-format
+msgid ""
+"MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, "
+"3 1, 1 1)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11)))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:233
+#, no-c-format
+msgid ""
+"This is a collection of surfaces, which can be (linear) polygons or curve "
+"polygons."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:239
+#, no-c-format
+msgid ""
+"PostGIS prior to 1.4 does not support compound curves in a curve polygon, "
+"but PostGIS 1.4 and above do support the use of Compound Curves in a Curve "
+"Polygon."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:245
+#, no-c-format
+msgid ""
+"All floating point comparisons within the SQL-MM implementation are "
+"performed to a specified tolerance, currently 1E-8."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:251
+#, no-c-format
+msgid "PostGIS Geography Type"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:253
+#, no-c-format
+msgid ""
+"The geography type provides native support for spatial features represented "
+"on \"geographic\" coordinates (sometimes called \"geodetic\" coordinates, or "
+"\"lat/lon\", or \"lon/lat\"). Geographic coordinates are spherical "
+"coordinates expressed in angular units (degrees)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:255
+#, no-c-format
+msgid ""
+"The basis for the PostGIS geometry type is a plane. The shortest path "
+"between two points on the plane is a straight line. That means calculations "
+"on geometries (areas, distances, lengths, intersections, etc) can be "
+"calculated using cartesian mathematics and straight line vectors."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:257
+#, no-c-format
+msgid ""
+"The basis for the PostGIS geographic type is a sphere. The shortest path "
+"between two points on the sphere is a great circle arc. That means that "
+"calculations on geographies (areas, distances, lengths, intersections, etc) "
+"must be calculated on the sphere, using more complicated mathematics. For "
+"more accurate measurements, the calculations must take the actual spheroidal "
+"shape of the world into account, and the mathematics becomes very "
+"complicated indeed."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:259
+#, no-c-format
+msgid ""
+"Because the underlying mathematics is much more complicated, there are fewer "
+"functions defined for the geography type than for the geometry type. Over "
+"time, as new algorithms are added, the capabilities of the geography type "
+"will expand."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:262
+#, no-c-format
+msgid ""
+"One restriction is that it only supports WGS 84 long lat (SRID:4326). It "
+"uses a new data type called geography. None of the GEOS functions support "
+"this new type. As a workaround one can convert back and forth between "
+"geometry and geography types."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:266
+#, no-c-format
+msgid ""
+"The new geography type uses the PostgreSQL 8.3+ typmod definition format so "
+"that a table with a geography field can be added in a single step. All the "
+"standard OGC formats except for curves are supported."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:270
+#, no-c-format
+msgid "Geography Basics"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:271
+#, no-c-format
+msgid ""
+"The geography type only supports the simplest of simple features. Standard "
+"geometry type data will autocast to geography if it is of SRID 4326. You can "
+"also use the EWKT and EWKB conventions to insert data."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:276
+#, no-c-format
+msgid "POINT: Creating a table with 2d point geometry:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:277
+#, no-c-format
+msgid ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINT,4326) );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:278
+#, no-c-format
+msgid "Creating a table with z coordinate point"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:279
+#, no-c-format
+msgid ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINTZ,4326) );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:282
+#, no-c-format
+msgid "LINESTRING"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:285
+#, no-c-format
+msgid "POLYGON"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:288
+#, no-c-format
+msgid "MULTIPOINT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:291
+#, no-c-format
+msgid "MULTILINESTRING"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:294
+#, no-c-format
+msgid "MULTIPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:297
+#, no-c-format
+msgid "GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:301
+#, no-c-format
+msgid ""
+"The new geography fields don't get registered in the "
+"<varname>geometry_columns</varname>. They get registered in a new view "
+"called geography_columns which is a view against the system catalogs so is "
+"always automatically kept up to date without need for an AddGeom... like "
+"function."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:305
+#, no-c-format
+msgid ""
+"Now, check the \"geography_columns\" view and see that your table is listed."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:307
+#, no-c-format
+msgid ""
+"You can create a new table with a GEOGRAPHY column using the CREATE TABLE "
+"syntax. Unlike GEOMETRY, there is no need to run a separate "
+"AddGeometryColumns() process to register the column in metadata."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:311
+#, no-c-format
+msgid ""
+"CREATE TABLE global_points ( \n"
+"    id SERIAL PRIMARY KEY,\n"
+"    name VARCHAR(64),\n"
+"    location GEOGRAPHY(POINT,4326)\n"
+"  );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:314
+#, no-c-format
+msgid ""
+"Note that the location column has type GEOGRAPHY and that geography type "
+"supports two optional modifier: a type modifier that restricts the kind of "
+"shapes and dimensions allowed in the column; an SRID modifier that restricts "
+"the coordinate reference identifier to a particular number."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:315
+#, no-c-format
+msgid ""
+"Allowable values for the type modifier are: POINT, LINESTRING, POLYGON, "
+"MULTIPOINT, MULTILINESTRING, MULTIPOLYGON. The modifier also supports "
+"dimensionality restrictions through suffixes: Z, M and ZM. So, for example a "
+"modifier of 'LINESTRINGM' would only allow line strings with three "
+"dimensions in, and would treat the third dimension as a measure. Similarly, "
+"'POINTZM' would expect four dimensional data."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:317
+#, no-c-format
+msgid ""
+"The SRID modifier is currently of limited use: only 4326 (WGS84) is allowed "
+"as a value. If you do not specify an SRID, the a value 0 (undefined "
+"spheroid) will be used, and all calculations will proceed using WGS84 "
+"anyways."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:318
+#, no-c-format
+msgid ""
+"In the future, alternate SRIDs will allow calculations on spheroids other "
+"than WGS84."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:319
+#, no-c-format
+msgid ""
+"Once you have created your table, you can see it in the GEOGRAPHY_COLUMNS "
+"table:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:320
+#, no-c-format
+msgid ""
+"-- See the contents of the metadata view\n"
+"SELECT * FROM geography_columns;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:322
+#, no-c-format
+msgid ""
+"You can insert data into the table the same as you would if it was using a "
+"GEOMETRY column:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:324
+#, no-c-format
+msgid ""
+"-- Add some data into the test table\n"
+"INSERT INTO global_points (name, location) VALUES ('Town', "
+"ST_GeographyFromText('SRID=4326;POINT(-110 30)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('Forest', "
+"ST_GeographyFromText('SRID=4326;POINT(-109 29)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('London', "
+"ST_GeographyFromText('SRID=4326;POINT(0 49)') );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:326
+#, no-c-format
+msgid ""
+"Creating an index works the same as GEOMETRY. PostGIS will note that the "
+"column type is GEOGRAPHY and create an appropriate sphere-based index "
+"instead of the usual planar index used for GEOMETRY."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:329
+#, no-c-format
+msgid ""
+"-- Index the test table with a spherical index\n"
+"  CREATE INDEX global_points_gix ON global_points USING GIST ( location );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:332
+#, no-c-format
+msgid ""
+"Query and measurement functions use units of meters. So distance parameters "
+"should be expressed in meters, and return values should be expected in "
+"meters (or square meters for areas)."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:334
+#, no-c-format
+msgid ""
+"-- Show a distance query and note, London is outside the 1000km tolerance\n"
+"  SELECT name FROM global_points WHERE ST_DWithin(location, "
+"ST_GeographyFromText('SRID=4326;POINT(-110 29)'), 1000000);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:337
+#, no-c-format
+msgid ""
+"You can see the power of GEOGRAPHY in action by calculating the how close a "
+"plane flying from Seattle to London (LINESTRING(-122.33 47.606, 0.0 51.5)) "
+"comes to Reykjavik (POINT(-21.96 64.15))."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:339
+#, no-c-format
+msgid ""
+"-- Distance calculation using GEOGRAPHY (122.2km)\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geography, "
+"'POINT(-21.96 64.15)':: geography);"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:342
+#, no-c-format
+msgid ""
+"-- Distance calculation using GEOMETRY (13.3 \"degrees\")\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, "
+"'POINT(-21.96 64.15)':: geometry);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:345
+#, no-c-format
+msgid ""
+"The GEOGRAPHY type calculates the true shortest distance over the sphere "
+"between Reykjavik and the great circle flight path between Seattle and "
+"London."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:347
+#, no-c-format
+msgid ""
+"<ulink url=\"http://gc.kls2.com/cgi-bin/gc?PATH=SEA-LHR\">Great Circle "
+"mapper</ulink> The GEOMETRY type calculates a meaningless cartesian distance "
+"between Reykjavik and the straight line path from Seattle to London plotted "
+"on a flat map of the world. The nominal units of the result might be called "
+"\"degrees\", but the result doesn't correspond to any true angular "
+"difference between the points, so even calling them \"degrees\" is "
+"inaccurate."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:351
+#, no-c-format
+msgid "When to use Geography Data type over Geometry data type"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:352
+#, no-c-format
+msgid ""
+"The new GEOGRAPHY type allows you to store data in longitude/latitude "
+"coordinates, but at a cost: there are fewer functions defined on GEOGRAPHY "
+"than there are on GEOMETRY; those functions that are defined take more CPU "
+"time to execute."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:353
+#, no-c-format
+msgid ""
+"The type you choose should be conditioned on the expected working area of "
+"the application you are building. Will your data span the globe or a large "
+"continental area, or is it local to a state, county or municipality?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:355
+#, no-c-format
+msgid ""
+"If your data is contained in a small area, you might find that choosing an "
+"appropriate projection and using GEOMETRY is the best solution, in terms of "
+"performance and functionality available."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:356
+#, no-c-format
+msgid ""
+"If your data is global or covers a continental region, you may find that "
+"GEOGRAPHY allows you to build a system without having to worry about "
+"projection details. You store your data in longitude/latitude, and use the "
+"functions that have been defined on GEOGRAPHY."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:358
+#, no-c-format
+msgid ""
+"If you don't understand projections, and you don't want to learn about them, "
+"and you're prepared to accept the limitations in functionality available in "
+"GEOGRAPHY, then it might be easier for you to use GEOGRAPHY than GEOMETRY. "
+"Simply load your data up as longitude/latitude and go from there."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:361
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"PostGIS_TypeFunctionMatrix\"/> for compare between "
+"what is supported for Geography vs. Geometry. For a brief listing and "
+"description of Geography functions, refer to <xref linkend="
+"\"PostGIS_GeographyFunctions\"/>"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:367
+#, no-c-format
+msgid "Geography Advanced FAQ"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:371
+#, no-c-format
+msgid "Do you calculate on the sphere or the spheroid?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:375
+#, no-c-format
+msgid ""
+"By default, all distance and area calculations are done on the spheroid. You "
+"should find that the results of calculations in local areas match up will "
+"with local planar results in good local projections. Over larger areas, the "
+"spheroidal calculations will be more accurate than any calculation done on a "
+"projected plane."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:378
+#, no-c-format
+msgid ""
+"All the geography functions have the option of using a sphere calculation, "
+"by setting a final boolean parameter to 'FALSE'. This will somewhat speed up "
+"calculations, particularly for cases where the geometries are very simple."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:384
+#, no-c-format
+msgid "What about the date-line and the poles?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:388
+#, no-c-format
+msgid ""
+"All the calculations have no conception of date-line or poles, the "
+"coordinates are spherical (longitude/latitude) so a shape that crosses the "
+"dateline is, from a calculation point of view, no different from any other "
+"shape."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:396
+#, no-c-format
+msgid "What is the longest arc you can process?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:400
+#, no-c-format
+msgid ""
+"We use great circle arcs as the \"interpolation line\" between two points. "
+"That means any two points are actually joined up two ways, depending on "
+"which direction you travel along the great circle. All our code assumes that "
+"the points are joined by the *shorter* of the two paths along the great "
+"circle. As a consequence, shapes that have arcs of more than 180 degrees "
+"will not be correctly modelled."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:407
+#, no-c-format
+msgid ""
+"Why is it so slow to calculate the area of Europe / Russia / insert big "
+"geographic region here ?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:411
+#, no-c-format
+msgid ""
+"Because the polygon is so darned huge! Big areas are bad for two reasons: "
+"their bounds are huge, so the index tends to pull the feature no matter what "
+"query you run; the number of vertices is huge, and tests (distance, "
+"containment) have to traverse the vertex list at least once and sometimes N "
+"times (with N being the number of vertices in the other candidate feature)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:416
+#, no-c-format
+msgid ""
+"As with GEOMETRY, we recommend that when you have very large polygons, but "
+"are doing queries in small areas, you \"denormalize\" your geometric data "
+"into smaller chunks so that the index can effectively subquery parts of the "
+"object and so queries don't have to pull out the whole object every time. "
+"Just because you *can* store all of Europe in one polygon doesn't mean you "
+"*should*."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:425
+#, no-c-format
+msgid "Using OpenGIS Standards"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:427
+#, no-c-format
+msgid ""
+"The OpenGIS \"Simple Features Specification for SQL\" defines standard GIS "
+"object types, the functions required to manipulate them, and a set of meta-"
+"data tables. In order to ensure that meta-data remain consistent, operations "
+"such as creating and removing a spatial column are carried out through "
+"special procedures defined by OpenGIS."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:433
+#, no-c-format
+msgid ""
+"There are two OpenGIS meta-data tables: <varname>SPATIAL_REF_SYS</varname> "
+"and <varname>GEOMETRY_COLUMNS</varname>. The <varname>SPATIAL_REF_SYS</"
+"varname> table holds the numeric IDs and textual descriptions of coordinate "
+"systems used in the spatial database."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:440
+#, no-c-format
+msgid "The SPATIAL_REF_SYS Table and Spatial Reference Systems"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:442
+#, no-c-format
+msgid ""
+"The spatial_ref_sys table is a PostGIS included and OGC compliant database "
+"table that lists over 3000 known <ulink url=\"http://www.sharpgis.net/"
+"post/2007/05/Spatial-references2c-coordinate-systems2c-projections2c-"
+"datums2c-ellipsoids-e28093-confusing.aspx\">spatial reference systems</"
+"ulink> and details needed to transform/reproject between them."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:446
+#, no-c-format
+msgid ""
+"Although the PostGIS spatial_ref_sys table contains over 3000 of the more "
+"commonly used spatial reference system definitions that can be handled by "
+"the proj library, it does not contain all known to man and you can even "
+"define your own custom projection if you are familiar with proj4 constructs. "
+"Keep in mind that most spatial reference systems are regional and have no "
+"meaning when used outside of the bounds they were intended for."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:449
+#, no-c-format
+msgid ""
+"An excellent resource for finding spatial reference systems not defined in "
+"the core set is <ulink url=\"http://spatialreference.org/\">http://"
+"spatialreference.org/</ulink>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:451
+#, no-c-format
+msgid ""
+"Some of the more commonly used spatial reference systems are: <ulink url="
+"\"http://spatialreference.org/ref/epsg/4326/\">4326 - WGS 84 Long Lat</"
+"ulink>, <ulink url=\"http://spatialreference.org/ref/epsg/4269/\">4269 - NAD "
+"83 Long Lat</ulink>, <ulink url=\"http://spatialreference.org/ref/epsg/3395/"
+"\">3395 - WGS 84 World Mercator</ulink>, <ulink url=\"http://"
+"spatialreference.org/ref/epsg/2163/\">2163 - US National Atlas Equal Area</"
+"ulink>, Spatial reference systems for each NAD 83, WGS 84 UTM zone - UTM "
+"zones are one of the most ideal for measurement, but only cover 6-degree "
+"regions."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:457
+#, no-c-format
+msgid ""
+"Various US state plane spatial reference systems (meter or feet based) - "
+"usually one or 2 exists per US state. Most of the meter ones are in the core "
+"set, but many of the feet based ones or ESRI created ones you will need to "
+"pull from <ulink url=\"http://spatialreference.org\">spatialreference.org</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:461
+#, no-c-format
+msgid ""
+"For details on determining which UTM zone to use for your area of interest, "
+"check out the <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiplpgsqlfunctionsDistance\">utmzone PostGIS plpgsql helper function</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:465
+#, no-c-format
+msgid "The <varname>SPATIAL_REF_SYS</varname> table definition is as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:468
+#, no-c-format
+msgid ""
+"CREATE TABLE spatial_ref_sys (\n"
+"  srid       INTEGER NOT NULL PRIMARY KEY,\n"
+"  auth_name  VARCHAR(256),\n"
+"  auth_srid  INTEGER,\n"
+"  srtext     VARCHAR(2048),\n"
+"  proj4text  VARCHAR(2048)\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:470
+#, no-c-format
+msgid "The <varname>SPATIAL_REF_SYS</varname> columns are as follows:"
+msgstr ""
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:475
+#, no-c-format
+msgid "<ulink url=\"http://en.wikipedia.org/wiki/SRID\">SRID</ulink>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:478
+#, no-c-format
+msgid ""
+"An integer value that uniquely identifies the Spatial Referencing System "
+"(SRS) within the database."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:484
+#, no-c-format
+msgid "AUTH_NAME"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:487
+#, no-c-format
+msgid ""
+"The name of the standard or standards body that is being cited for this "
+"reference system. For example, \"EPSG\" would be a valid <varname>AUTH_NAME</"
+"varname>."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:494
+#, no-c-format
+msgid "AUTH_SRID"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:497
+#, no-c-format
+msgid ""
+"The ID of the Spatial Reference System as defined by the Authority cited in "
+"the <varname>AUTH_NAME</varname>. In the case of EPSG, this is where the "
+"EPSG projection code would go."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:504
+#, no-c-format
+msgid "SRTEXT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:507
+#, no-c-format
+msgid ""
+"The Well-Known Text representation of the Spatial Reference System. An "
+"example of a WKT SRS representation is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:510
+#, no-c-format
+msgid ""
+"PROJCS[\"NAD83 / UTM Zone 10N\",\n"
+"  GEOGCS[\"NAD83\",\n"
+"        DATUM[\"North_American_Datum_1983\",\n"
+"          SPHEROID[\"GRS 1980\",6378137,298.257222101]\n"
+"        ],\n"
+"        PRIMEM[\"Greenwich\",0],\n"
+"        UNIT[\"degree\",0.0174532925199433]\n"
+"  ],\n"
+"  PROJECTION[\"Transverse_Mercator\"],\n"
+"  PARAMETER[\"latitude_of_origin\",0],\n"
+"  PARAMETER[\"central_meridian\",-123],\n"
+"  PARAMETER[\"scale_factor\",0.9996],\n"
+"  PARAMETER[\"false_easting\",500000],\n"
+"  PARAMETER[\"false_northing\",0],\n"
+"  UNIT[\"metre\",1]\n"
+"]"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:512
+#, no-c-format
+msgid ""
+"For a listing of EPSG projection codes and their corresponding WKT "
+"representations, see <ulink url=\"http://www.opengeospatial.org/\">http://"
+"www.opengeospatial.org/</ulink>. For a discussion of WKT in general, see the "
+"OpenGIS \"Coordinate Transformation Services Implementation Specification\" "
+"at <ulink url=\"http://www.opengeospatial.org/standards\">http://www."
+"opengeospatial.org/standards</ulink>. For information on the European "
+"Petroleum Survey Group (EPSG) and their database of spatial reference "
+"systems, see <ulink url=\"http://www.epsg.org/\">http://www.epsg.org</ulink>."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:525
+#, no-c-format
+msgid "PROJ4TEXT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:528
+#, no-c-format
+msgid ""
+"PostGIS uses the Proj4 library to provide coordinate transformation "
+"capabilities. The <varname>PROJ4TEXT</varname> column contains the Proj4 "
+"coordinate definition string for a particular SRID. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:533
+#, no-c-format
+msgid "+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:535
+#, no-c-format
+msgid ""
+"For more information about, see the Proj4 web site at <ulink url=\"http://"
+"trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>. The "
+"<filename>spatial_ref_sys.sql</filename> file contains both <varname>SRTEXT</"
+"varname> and <varname>PROJ4TEXT</varname> definitions for all EPSG "
+"projections."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:546
+#, no-c-format
+msgid "The GEOMETRY_COLUMNS VIEW"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:548
+#, no-c-format
+msgid ""
+"In versions of PostGIS prior to 2.0.0, geometry_columns was a table that "
+"could be directly edited, and sometimes got out of synch with the actual "
+"definition of the geometry columns. In PostGIS 2.0.0, "
+"<varname>GEOMETRY_COLUMNS</varname> became a view with the same front-facing "
+"structure as prior versions, but reading from database system catalogs Its "
+"structure is as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:552
+#, no-c-format
+msgid "\\d geometry_columns"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:553
+#, no-c-format
+msgid ""
+"View \"public.geometry_columns\"\n"
+"      Column       |          Type          | Modifiers\n"
+"-------------------+------------------------+-----------\n"
+" f_table_catalog   | character varying(256) |\n"
+" f_table_schema    | character varying(256) |\n"
+" f_table_name      | character varying(256) |\n"
+" f_geometry_column | character varying(256) |\n"
+" coord_dimension   | integer                |\n"
+" srid              | integer                |\n"
+" type              | character varying(30)  |"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:555
+#, no-c-format
+msgid "The column meanings have not changed from prior versions and are:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:559
+#, no-c-format
+msgid "F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:562
+#, no-c-format
+msgid ""
+"The fully qualified name of the feature table containing the geometry "
+"column. Note that the terms \"catalog\" and \"schema\" are Oracle-ish. There "
+"is not PostgreSQL analogue of \"catalog\" so that column is left blank -- "
+"for \"schema\" the PostgreSQL schema name is used (<varname>public</varname> "
+"is the default)."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:571
+#, no-c-format
+msgid "F_GEOMETRY_COLUMN"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:574
+#, no-c-format
+msgid "The name of the geometry column in the feature table."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:579
+#, no-c-format
+msgid "COORD_DIMENSION"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:582
+#, no-c-format
+msgid "The spatial dimension (2, 3 or 4 dimensional) of the column."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:588
+#, no-c-format
+msgid "<term>SRID</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:591
+#, no-c-format
+msgid ""
+"The ID of the spatial reference system used for the coordinate geometry in "
+"this table. It is a foreign key reference to the <varname>SPATIAL_REF_SYS</"
+"varname>."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:598
+#, no-c-format
+msgid "TYPE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:601
+#, no-c-format
+msgid ""
+"The type of the spatial object. To restrict the spatial column to a single "
+"type, use one of: POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, "
+"MULTIPOLYGON, GEOMETRYCOLLECTION or corresponding XYM versions POINTM, "
+"LINESTRINGM, POLYGONM, MULTIPOINTM, MULTILINESTRINGM, MULTIPOLYGONM, "
+"GEOMETRYCOLLECTIONM. For heterogeneous (mixed-type) collections, you can use "
+"\"GEOMETRY\" as the type."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:610
+#, no-c-format
+msgid ""
+"This attribute is (probably) not part of the OpenGIS specification, but is "
+"required for ensuring type homogeneity."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:620
+#, no-c-format
+msgid "Creating a Spatial Table"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:622
+#, no-c-format
+msgid ""
+"Creating a table with spatial data, can be done in one step. As shown in the "
+"following example which creates a roads table with a 2D linestring geometry "
+"column in WGS84 long lat"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:624
+#, no-c-format
+msgid ""
+"CREATE TABLE ROADS ( ID int4\n"
+"                  , ROAD_NAME varchar(25), geom geometry(LINESTRING,4326) );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:626
+#, no-c-format
+msgid ""
+"We can add additional columns using standard ALTER TABLE command as we do in "
+"this next example where we add a 3-D linestring."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:627
+#, no-c-format
+msgid "ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:629
+#, no-c-format
+msgid ""
+"For backwards compability, you can still create a spatial table in two "
+"stages using the management functions."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:633
+#, no-c-format
+msgid "Create a normal non-spatial table."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:635
+#, no-c-format
+msgid ""
+"For example: <command>CREATE TABLE ROADS ( ID int4, ROAD_NAME varchar(25) )</"
+"command>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:640
+#, no-c-format
+msgid ""
+"Add a spatial column to the table using the OpenGIS \"AddGeometryColumn\" "
+"function. Refer to <xref linkend=\"AddGeometryColumn\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:643
+#, no-c-format
+msgid ""
+"The syntax is: <programlisting>AddGeometryColumn(\n"
+"  <schema_name>,\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")</programlisting> Or, using current schema:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:643
+#, no-c-format
+msgid ""
+"AddGeometryColumn(\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:645
+#, no-c-format
+msgid ""
+"Example1: <command>SELECT AddGeometryColumn('public', 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:648
+#, no-c-format
+msgid ""
+"Example2: <command>SELECT AddGeometryColumn( 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:653
+#, no-c-format
+msgid ""
+"Here is an example of SQL used to create a table and add a spatial column "
+"(assuming that an SRID of 128 exists already):"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:656
+#, no-c-format
+msgid ""
+"CREATE TABLE parks (\n"
+"  park_id    INTEGER,\n"
+"  park_name  VARCHAR,\n"
+"  park_date  DATE,\n"
+"  park_type  VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn('parks', 'park_geom', 128, 'MULTIPOLYGON', 2 );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:658
+#, no-c-format
+msgid ""
+"Here is another example, using the generic \"geometry\" type and the "
+"undefined SRID value of 0:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:661
+#, no-c-format
+msgid ""
+"CREATE TABLE roads (\n"
+"  road_id INTEGER,\n"
+"  road_name VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn( 'roads', 'roads_geom', 0, 'GEOMETRY', 3 );"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:665
+#, no-c-format
+msgid "Manually Registering Geometry Columns in geometry_columns"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:666
+#, no-c-format
+msgid ""
+"The AddGeometryColumn() approach creates a geometry column and also "
+"registers the new column in the geometry_columns table. If your software "
+"utilizes geometry_columns, then any geometry columns you need to query by "
+"must be registered in this view. Starting with PostGIS 2.0, geometry_columns "
+"is no longer editable and all geometry columns are autoregistered."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:670
+#, no-c-format
+msgid ""
+"However they may be registered as a generic geometry column if the column "
+"was not defined as a specific type during creation."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:672
+#, no-c-format
+msgid ""
+"Two of the cases where this may happen, but you can't use AddGeometryColumn, "
+"is in the case of SQL Views and bulk inserts. For these cases, you can "
+"correct the registration in the geometry_columns table by constraining the "
+"column. Note in PostGIS 2.0+ if your column is typmod based, the creation "
+"process would register it correctly, so no need to do anything."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:677
+#, no-c-format
+msgid ""
+"--Lets say you have a view created like this\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395) As geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- For it to register correctly in PostGIS 2.0+ \n"
+"-- You need to cast the geometry\n"
+"--\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Geometry, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- If you know the geometry type for sure is a 2D POLYGON then you could do\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Polygon, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:678
+#, no-c-format
+msgid ""
+"--Lets say you created a derivative table by doing a bulk insert\n"
+"SELECT poi.gid, poi.geom, citybounds.city_name\n"
+"INTO myschema.my_special_pois\n"
+"FROM poi INNER JOIN citybounds ON ST_Intersects(citybounds.geom, poi.geom);\n"
+"\n"
+"--Create 2d index on new table\n"
+"CREATE INDEX idx_myschema_myspecialpois_geom_gist\n"
+"  ON myschema.my_special_pois USING gist(geom);\n"
+"  \n"
+"-- If your points are 3D points or 3M points, \n"
+"-- then you might want to create an nd index instead of a 2d index\n"
+"-- like so\n"
+"CREATE INDEX my_special_pois_geom_gist_nd \n"
+"        ON my_special_pois USING gist(geom gist_geometry_ops_nd);\n"
+"\n"
+"--To manually register this new table's geometry column in geometry_columns\n"
+"-- Note that this approach will work for both PostGIS 2.0+ and PostGIS 1.4+\n"
+"-- For PostGIS 2.0 it will also change the underlying structure of the table "
+"to\n"
+"-- to make the column typmod based.\n"
+"-- For PostGIS prior to 2.0, this technique can also be used to register "
+"views\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass); \n"
+"\n"
+"--If you are using PostGIS 2.0 and for whatever reason, you\n"
+"-- you need the old constraint based definition behavior \n"
+"-- (such as case of inherited tables where all children do not have the same "
+"type and srid)\n"
+"-- set new optional  use_typmod argument to false\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass, "
+"false);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:680
+#, no-c-format
+msgid ""
+"Although the old-constraint based method is still supported, a constraint-"
+"based geomentry column used directly in a view, will not register correctly "
+"in geometry_columns, as will a typmod one. In this example we define a "
+"column using typmod and another using constraints."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:683
+#, no-c-format
+msgid ""
+"CREATE TABLE pois_ny(gid SERIAL PRIMARY KEY\n"
+"   , poi_name text, cat varchar(20)\n"
+"   , geom geometry(POINT,4326) );\n"
+"SELECT AddGeometryColumn('pois_ny', 'geom_2160', 2160, 'POINT', 2, false);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:684
+#, no-c-format
+msgid "If we run in psql"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:685
+#, no-c-format
+msgid "\\d pois_ny;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:686
+#, no-c-format
+msgid ""
+"We observe they are defined differently -- one is typmod, one is constraint"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:687
+#, no-c-format
+msgid ""
+"Table \"public.pois_ny\"\n"
+"  Column   |         Type          |                       Modifiers\n"
+"\n"
+"-----------+-----------------------"
+"+------------------------------------------------------\n"
+" gid       | integer               | not null default "
+"nextval('pois_ny_gid_seq'::regclass)\n"
+" poi_name  | text                  |\n"
+" cat       | character varying(20) |\n"
+" geom      | geometry(Point,4326)  |\n"
+" geom_2160 | geometry              |\n"
+"Indexes:\n"
+"    \"pois_ny_pkey\" PRIMARY KEY, btree (gid)\n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_2160\" CHECK (st_ndims(geom_2160) = 2)\n"
+"    \"enforce_geotype_geom_2160\" CHECK (geometrytype(geom_2160) = 'POINT'::"
+"text \n"
+"        OR geom_2160 IS NULL)\n"
+"    \"enforce_srid_geom_2160\" CHECK (st_srid(geom_2160) = 2160)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:688
+#, no-c-format
+msgid "In geometry_columns, they both register correctly"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:689
+#, no-c-format
+msgid ""
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'pois_ny';"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:690
+#, no-c-format
+msgid ""
+"f_table_name | f_geometry_column | srid | type\n"
+"-------------+-------------------+------+-------\n"
+"pois_ny      | geom              | 4326 | POINT\n"
+"pois_ny      | geom_2160         | 2160 | POINT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:691
+#, no-c-format
+msgid "However -- if we were to create a view like this"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:692
+#, no-c-format
+msgid ""
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT * \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"  \n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:693
+#, no-c-format
+msgid ""
+"The typmod based geom view column registers correctly, but the constraint "
+"based one does not."
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:695
+#, no-c-format
+msgid ""
+"f_table_name   | f_geometry_column | srid |   type\n"
+"------------------+-------------------+------+----------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         |    0 | GEOMETRY"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:697
+#, no-c-format
+msgid ""
+"This may change in future versions of PostGIS, but for now To force the "
+"constraint based view column to register correctly, we need to do this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:699
+#, no-c-format
+msgid ""
+"DROP VIEW vw_pois_ny_parks;\n"
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT gid, poi_name, cat\n"
+"  , geom\n"
+"  , geom_2160::geometry(POINT,2160) As geom_2160 \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:700
+#, no-c-format
+msgid ""
+"f_table_name   | f_geometry_column | srid | type\n"
+"------------------+-------------------+------+-------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         | 2160 | POINT"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:704
+#, no-c-format
+msgid "Ensuring OpenGIS compliancy of geometries"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:706
+#, no-c-format
+msgid ""
+"PostGIS is compliant with the Open Geospatial Consortium’s (OGC) OpenGIS "
+"Specifications. As such, many PostGIS methods require, or more accurately, "
+"assume that geometries that are operated on are both simple and valid. For "
+"example, it does not make sense to calculate the area of a polygon that has "
+"a hole defined outside of the polygon, or to construct a polygon from a non-"
+"simple boundary line."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:713
+#, no-c-format
+msgid ""
+"According to the OGC Specifications, a <emphasis>simple</emphasis> geometry "
+"is one that has no anomalous geometric points, such as self intersection or "
+"self tangency and primarily refers to 0 or 1-dimensional geometries (i.e. "
+"<varname>[MULTI]POINT, [MULTI]LINESTRING</varname>). Geometry validity, on "
+"the other hand, primarily refers to 2-dimensional geometries (i.e. "
+"<varname>[MULTI]POLYGON)</varname> and defines the set of assertions that "
+"characterizes a valid polygon. The description of each geometric class "
+"includes specific conditions that further detail geometric simplicity and "
+"validity."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:723
+#, no-c-format
+msgid ""
+"A <varname>POINT</varname> is inheritably <emphasis>simple</emphasis> as a 0-"
+"dimensional geometry object."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:726
+#, no-c-format
+msgid ""
+"<varname>MULTIPOINT</varname>s are <emphasis>simple</emphasis> if no two "
+"coordinates (<varname>POINT</varname>s) are equal (have identical coordinate "
+"values)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:730
+#, no-c-format
+msgid ""
+"A <varname>LINESTRING</varname> is <emphasis>simple</emphasis> if it does "
+"not pass through the same <varname>POINT</varname> twice (except for the "
+"endpoints, in which case it is referred to as a linear ring and additionally "
+"considered closed)."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:745
+#, no-c-format
+msgid "<emphasis>(a)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:755
+#, no-c-format
+msgid "<emphasis>(b)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:767
+#, no-c-format
+msgid "<emphasis>(c)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:777
+#, no-c-format
+msgid "<emphasis>(d)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:787
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(a)</emphasis> and <emphasis role=\"bold\">(c)</"
+"emphasis> are simple <varname>LINESTRING</varname>s, <emphasis role=\"bold"
+"\">(b)</emphasis> and <emphasis role=\"bold\">(d)</emphasis> are not."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:796
+#, no-c-format
+msgid ""
+"A <varname>MULTILINESTRING</varname> is <emphasis>simple</emphasis> only if "
+"all of its elements are simple and the only intersection between any two "
+"elements occurs at <varname>POINT</varname>s that are on the boundaries of "
+"both elements."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:811
+#, no-c-format
+msgid "<emphasis>(e)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:821
+#, no-c-format
+msgid "<emphasis>(f)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:831
+#, no-c-format
+msgid "<emphasis>(g)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:841
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(e)</emphasis> and <emphasis role=\"bold\">(f)</"
+"emphasis> are simple <varname>MULTILINESTRING</varname>s, <emphasis role="
+"\"bold\">(g)</emphasis> is not."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:850
+#, no-c-format
+msgid ""
+"By definition, a <varname>POLYGON</varname> is always <emphasis>simple</"
+"emphasis>. It is <emphasis>valid</emphasis> if no two rings in the boundary "
+"(made up of an exterior ring and interior rings) cross. The boundary of a "
+"<varname>POLYGON</varname> may intersect at a <varname>POINT</varname> but "
+"only as a tangent (i.e. not on a line). A <varname>POLYGON</varname> may not "
+"have cut lines or spikes and the interior rings must be contained entirely "
+"within the exterior ring."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:868
+#, no-c-format
+msgid "<emphasis>(h)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:878
+#, no-c-format
+msgid "<emphasis>(i)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:888
+#, no-c-format
+msgid "<emphasis>(j)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:900
+#, no-c-format
+msgid "<emphasis>(k)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:910
+#, no-c-format
+msgid "<emphasis>(l)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:920
+#, no-c-format
+msgid "<emphasis>(m)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:929
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(h)</emphasis> and <emphasis role=\"bold\">(i)</"
+"emphasis> are valid <varname>POLYGON</varname>s, <emphasis role=\"bold\">(j-"
+"m)</emphasis> cannot be represented as single <varname>POLYGON</varname>s, "
+"but <emphasis role=\"bold\">(j)</emphasis> and <emphasis role=\"bold\">(m)</"
+"emphasis> could be represented as a valid <varname>MULTIPOLYGON</varname>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:941
+#, no-c-format
+msgid ""
+"A <varname>MULTIPOLYGON</varname> is <emphasis>valid</emphasis> if and only "
+"if all of its elements are valid and the interiors of no two elements "
+"intersect. The boundaries of any two elements may touch, but only at a "
+"finite number of <varname>POINT</varname>s."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:956
+#, no-c-format
+msgid "<emphasis>(n)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:966
+#, no-c-format
+msgid "<emphasis>(o)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:976
+#, no-c-format
+msgid "<emphasis>(p)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:985
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(n)</emphasis> and <emphasis role=\"bold\">(o)</"
+"emphasis> are not valid <varname>MULTIPOLYGON</varname>s. <emphasis role="
+"\"bold\">(p)</emphasis>, however, is valid."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:994
+#, no-c-format
+msgid ""
+"Most of the functions implemented by the GEOS library rely on the assumption "
+"that your geometries are valid as specified by the OpenGIS Simple Feature "
+"Specification. To check simplicity or validity of geometries you can use the "
+"<link linkend=\"ST_IsSimple\">ST_IsSimple()</link> and <link linkend="
+"\"ST_IsValid\">ST_IsValid()</link>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1000
+#, no-c-format
+msgid ""
+"-- Typically, it doesn't make sense to check\n"
+"-- for validity on linear features since it will always return TRUE.\n"
+"-- But in this example, PostGIS extends the definition of the OGC IsValid\n"
+"-- by returning false if a LineString has less than 2 *distinct* vertices.\n"
+"gisdb=# SELECT\n"
+"   ST_IsValid('LINESTRING(0 0, 1 1)'),\n"
+"   ST_IsValid('LINESTRING(0 0, 0 0, 0 0)');\n"
+"\n"
+" st_isvalid | st_isvalid\n"
+"------------+-----------\n"
+"      t     |     f"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1002
+#, no-c-format
+msgid ""
+"By default, PostGIS does not apply this validity check on geometry input, "
+"because testing for validity needs lots of CPU time for complex geometries, "
+"especially polygons. If you do not trust your data sources, you can manually "
+"enforce such a check to your tables by adding a check constraint:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1008
+#, no-c-format
+msgid ""
+"ALTER TABLE mytable\n"
+"  ADD CONSTRAINT geometry_valid_check\n"
+"        CHECK (ST_IsValid(the_geom));"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1010
+#, no-c-format
+msgid ""
+"If you encounter any strange error messages such as \"GEOS Intersection() "
+"threw an error!\" or \"JTS Intersection() threw an error!\" when calling "
+"PostGIS functions with valid input geometries, you likely found an error in "
+"either PostGIS or one of the libraries it uses, and you should contact the "
+"PostGIS developers. The same is true if a PostGIS function returns an "
+"invalid geometry for valid input."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1018
+#, no-c-format
+msgid ""
+"Strictly compliant OGC geometries cannot have Z or M values. The <link "
+"linkend=\"ST_IsValid\">ST_IsValid()</link> function won't consider higher "
+"dimensioned geometries invalid! Invocations of <link linkend="
+"\"AddGeometryColumn\">AddGeometryColumn()</link> will add a constraint "
+"checking geometry dimensions, so it is enough to specify 2 there."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1028
+#, no-c-format
+msgid "Dimensionally Extended 9 Intersection Model (DE-9IM)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1030
+#, no-c-format
+msgid ""
+"It is sometimes the case that the typical spatial predicates (<xref linkend="
+"\"ST_Contains\"/>, <xref linkend=\"ST_Crosses\"/>, <xref linkend="
+"\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>, ...) are insufficient "
+"in and of themselves to adequately provide that desired spatial filter."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1042
+#, no-c-format
+msgid ""
+"For example, consider a linear dataset representing a road network. It may "
+"be the task of a GIS analyst to identify all road segments that cross each "
+"other, not at a point, but on a line, perhaps invalidating some business "
+"rule. In this case, <xref linkend=\"ST_Crosses\"/> does not adequately "
+"provide the necessary spatial filter since, for linear features, it returns "
+"<varname>true</varname> only where they cross at a point."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1049
+#, no-c-format
+msgid ""
+"One two-step solution might be to first perform the actual intersection "
+"(<xref linkend=\"ST_Intersection\"/>) of pairs of road segments that "
+"spatially intersect (<xref linkend=\"ST_Intersects\"/>), and then compare "
+"the intersection's <xref linkend=\"ST_GeometryType\"/> with "
+"'<varname>LINESTRING</varname>' (properly dealing with cases that return "
+"<varname>GEOMETRYCOLLECTION</varname>s of <varname>[MULTI]POINT</varname>s, "
+"<varname>[MULTI]LINESTRING</varname>s, etc.)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1057
+#, no-c-format
+msgid "A more elegant / faster solution may indeed be desirable."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1071
+#, no-c-format
+msgid ""
+"A second [theoretical] example may be that of a GIS analyst trying to locate "
+"all wharfs or docks that intersect a lake's boundary on a line and where "
+"only one end of the wharf is up on shore. In other words, where a wharf is "
+"within, but not completely within a lake, intersecting the boundary of a "
+"lake on a line, and where the wharf's endpoints are both completely within "
+"and on the boundary of the lake. The analyst may need to use a combination "
+"of spatial predicates to isolate the sought after features:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1082
+#, no-c-format
+msgid "(lake, wharf) = TRUE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1086
+#, no-c-format
+msgid "(lake, wharf) = FALSE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1090
+#, no-c-format
+msgid "(<xref linkend=\"ST_Intersection\"/>(wharf, lake)) = 'LINESTRING'"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1095
+#, no-c-format
+msgid ""
+"(<xref linkend=\"ST_Multi\"/>(<xref linkend=\"ST_Intersection\"/>(<xref "
+"linkend=\"ST_Boundary\"/>(wharf), <xref linkend=\"ST_Boundary\"/>(lake)))) = "
+"1"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1098
+#, no-c-format
+msgid "... (needless to say, this could get quite complicated)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1107
+#, no-c-format
+msgid ""
+"So enters the Dimensionally Extended 9 Intersection Model, or DE-9IM for "
+"short."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1111
+#, no-c-format
+msgid "Theory"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1113
+#, no-c-format
+msgid ""
+"According to the <ulink url=\"http://www.opengeospatial.org/standards/sfs"
+"\">OpenGIS Simple Features Implementation Specification for SQL</ulink>, "
+"\"the basic approach to comparing two geometries is to make pair-wise tests "
+"of the intersections between the Interiors, Boundaries and Exteriors of the "
+"two geometries and to classify the relationship between the two geometries "
+"based on the entries in the resulting 'intersection' matrix.\""
+msgstr ""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1124
+#, no-c-format
+msgid "<glossterm>Boundary</glossterm>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1127
+#, no-c-format
+msgid ""
+"The boundary of a geometry is the set of geometries of the next lower "
+"dimension. For <varname>POINT</varname>s, which have a dimension of 0, the "
+"boundary is the empty set. The boundary of a <varname>LINESTRING</varname> "
+"are the two endpoints. For <varname>POLYGON</varname>s, the boundary is the "
+"linework that make up the exterior and interior rings."
+msgstr ""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1138
+#, no-c-format
+msgid "<glossterm>Interior</glossterm>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1141
+#, no-c-format
+msgid ""
+"The interior of a geometry are those points of a geometry that are left when "
+"the boundary is removed. For <varname>POINT</varname>s, the interior is the "
+"<varname>POINT</varname> itself. The interior of a <varname>LINESTRING</"
+"varname> are the set of real points between the endpoints. For "
+"<varname>POLYGON</varname>s, the interior is the areal surface inside the "
+"polygon."
+msgstr ""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1152
+#, no-c-format
+msgid "<glossterm>Exterior</glossterm>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1155
+#, no-c-format
+msgid ""
+"The exterior of a geometry is the universe, an areal surface, not on the "
+"interior or boundary of the geometry."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1162
+#, no-c-format
+msgid ""
+"Given geometry <emphasis>a</emphasis>, where the <emphasis>I(a)</emphasis>, "
+"<emphasis>B(a)</emphasis>, and <emphasis>E(a)</emphasis> are the "
+"<emphasis>Interior</emphasis>, <emphasis>Boundary</emphasis>, and "
+"<emphasis>Exterior</emphasis> of a, the mathematical representation of the "
+"matrix is:"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1174 using_postgis_dataman.xml:1184
+#: using_postgis_dataman.xml:1268 using_postgis_dataman.xml:1281
+#, no-c-format
+msgid "<emphasis role=\"bold\">Interior</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1190
+#: using_postgis_dataman.xml:1271 using_postgis_dataman.xml:1304
+#, no-c-format
+msgid "<emphasis role=\"bold\">Boundary</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1196
+#: using_postgis_dataman.xml:1274 using_postgis_dataman.xml:1327
+#, no-c-format
+msgid "<emphasis role=\"bold\">Exterior</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1185
+#, no-c-format
+msgid "dim( I(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1186
+#, no-c-format
+msgid "dim( I(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1187
+#, no-c-format
+msgid "dim( I(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1191
+#, no-c-format
+msgid "dim( B(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1192
+#, no-c-format
+msgid "dim( B(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1193
+#, no-c-format
+msgid "dim( B(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1197
+#, no-c-format
+msgid "dim( E(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1198
+#, no-c-format
+msgid "dim( E(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1199
+#, no-c-format
+msgid "dim( E(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1206
+#, no-c-format
+msgid ""
+"Where <emphasis>dim(a)</emphasis> is the dimension of <emphasis>a</emphasis> "
+"as specified by <xref linkend=\"ST_Dimension\"/> but has the domain of "
+"<literal>{0,1,2,T,F,*}</literal>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1213
+#, no-c-format
+msgid "<literal>0</literal> => point"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1217
+#, no-c-format
+msgid "<literal>1</literal> => line"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1221
+#, no-c-format
+msgid "<literal>2</literal> => area"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1225
+#, no-c-format
+msgid "<literal>T</literal> => <literal>{0,1,2}</literal>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1230
+#, no-c-format
+msgid "<literal>F</literal> => empty set"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1234
+#, no-c-format
+msgid "<literal>*</literal> => don't care"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1238
+#, no-c-format
+msgid "Visually, for two overlapping polygonal geometries, this looks like:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1285 using_postgis_dataman.xml:1297
+#: using_postgis_dataman.xml:1331 using_postgis_dataman.xml:1343
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">2</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1291 using_postgis_dataman.xml:1308
+#: using_postgis_dataman.xml:1320 using_postgis_dataman.xml:1337
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">1</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1314
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">0</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1355
+#, no-c-format
+msgid ""
+"Read from left to right and from top to bottom, the dimensional matrix is "
+"represented, '<emphasis role=\"bold\">212101212</emphasis>'."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1358
+#, no-c-format
+msgid ""
+"A relate matrix that would therefore represent our first example of two "
+"lines that intersect on a line would be: '<emphasis role=\"bold\">1*1***1**</"
+"emphasis>'"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1362
+#, no-c-format
+msgid ""
+"-- Identify road segments that cross on a line\n"
+"SELECT a.id\n"
+"FROM roads a, roads b\n"
+"WHERE a.id != b.id \n"
+"AND a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '1*1***1**');"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1364
+#, no-c-format
+msgid ""
+"A relate matrix that represents the second example of wharfs partly on the "
+"lake's shoreline would be '<emphasis role=\"bold\">102101FF2</emphasis>'"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1368
+#, no-c-format
+msgid ""
+"-- Identify wharfs partly on a lake's shoreline\n"
+"SELECT a.lake_id, b.wharf_id\n"
+"FROM lakes a, wharfs b\n"
+"WHERE a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '102101FF2');"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1370
+#, no-c-format
+msgid "For more information or reading, see:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1374
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.opengeospatial.org/standards/sfs\">OpenGIS Simple "
+"Features Implementation Specification for SQL</ulink> (version 1.1, section "
+"2.1.13.2)"
+msgstr ""
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:1379
+#, no-c-format
+msgid ""
+"Dimensionally Extended Nine-Intersection Model (DE-9IM) by Christian Strobl"
+msgstr ""
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:1383
+#, no-c-format
+msgid "GeoTools: Point Set Theory and the DE-9IM Matrix"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1386
+#, no-c-format
+msgid "<emphasis>Encyclopedia of GIS</emphasis> By Hui Xiong"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1396
+#, no-c-format
+msgid "Loading GIS (Vector) Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1398
+#, no-c-format
+msgid ""
+"Once you have created a spatial table, you are ready to upload GIS data to "
+"the database. Currently, there are two ways to get data into a PostGIS/"
+"PostgreSQL database: using formatted SQL statements or using the Shape file "
+"loader/dumper."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1404
+#, no-c-format
+msgid "Loading Data Using SQL"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1406
+#, no-c-format
+msgid ""
+"If you can convert your data to a text representation, then using formatted "
+"SQL might be the easiest way to get your data into PostGIS. As with Oracle "
+"and other SQL databases, data can be bulk loaded by piping a large text file "
+"full of SQL \"INSERT\" statements into the SQL terminal monitor."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1412
+#, no-c-format
+msgid ""
+"A data upload file (<filename>roads.sql</filename> for example) might look "
+"like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1415
+#, no-c-format
+msgid ""
+"BEGIN;\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (1,ST_GeomFromText('LINESTRING(191232 243118,191108 "
+"243242)',-1),'Jeff Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (2,ST_GeomFromText('LINESTRING(189141 244158,189265 "
+"244817)',-1),'Geordie Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (3,ST_GeomFromText('LINESTRING(192783 228138,192612 "
+"229814)',-1),'Paul St');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (4,ST_GeomFromText('LINESTRING(189412 252431,189631 "
+"259122)',-1),'Graeme Ave');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (5,ST_GeomFromText('LINESTRING(190131 224148,190871 "
+"228134)',-1),'Phil Tce');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (6,ST_GeomFromText('LINESTRING(198231 263418,198213 "
+"268322)',-1),'Dave Cres');\n"
+"COMMIT;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1417
+#, no-c-format
+msgid ""
+"The data file can be piped into PostgreSQL very easily using the \"psql\" "
+"SQL terminal monitor:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1420
+#, no-c-format
+msgid "psql -d [database] -f roads.sql"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1424
+#, no-c-format
+msgid "shp2pgsql: Using the ESRI Shapefile Loader"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1426
+#, no-c-format
+msgid ""
+"The <filename>shp2pgsql</filename> data loader converts ESRI Shape files "
+"into SQL suitable for insertion into a PostGIS/PostgreSQL database either in "
+"geometry or geography format. The loader has several operating modes "
+"distinguished by command line flags:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1431
+#, no-c-format
+msgid ""
+"In addition to the shp2pgsql command-line loader, there is an "
+"<filename>shp2pgsql-gui</filename> graphical interface with most of the "
+"options as the command-line loader, but may be easier to use for one-off non-"
+"scripted loading or if you are new to PostGIS. It can also be configured as "
+"a plugin to PgAdminIII."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1438
+#, no-c-format
+msgid "(c|a|d|p) These are mutually exclusive options:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1443
+#, no-c-format
+msgid "<term>-c</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1445
+#, no-c-format
+msgid ""
+"Creates a new table and populates it from the shapefile. <emphasis>This is "
+"the default mode.</emphasis>"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1453
+#, no-c-format
+msgid "<term>-a</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1455
+#, no-c-format
+msgid ""
+"Appends data from the Shape file into the database table. Note that to use "
+"this option to load multiple files, the files must have the same attributes "
+"and same data types."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1464 using_postgis_dataman.xml:1853
+#, no-c-format
+msgid "<term>-d</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1466
+#, no-c-format
+msgid ""
+"Drops the database table before creating a new table with the data in the "
+"Shape file."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1474
+#, no-c-format
+msgid "<term>-p</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1476
+#, no-c-format
+msgid ""
+"Only produces the table creation SQL code, without adding any actual data. "
+"This can be used if you need to completely separate the table creation and "
+"data loading steps."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1489
+#, no-c-format
+msgid "<term>-?</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1491
+#, no-c-format
+msgid "Display help screen."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1498
+#, no-c-format
+msgid "<term>-D</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1500
+#, no-c-format
+msgid ""
+"Use the PostgreSQL \"dump\" format for the output data. This can be combined "
+"with -a, -c and -d. It is much faster to load than the default \"insert\" "
+"SQL format. Use this for very large data sets."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1509
+#, no-c-format
+msgid "-s [<FROM_SRID%gt;:]<SRID>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1511
+#, no-c-format
+msgid ""
+"Creates and populates the geometry tables with the specified SRID. "
+"Optionally specifies that the input shapefile uses the given FROM_SRID, in "
+"which case the geometries will be reprojected to the target SRID. FROM_SRID "
+"cannot be specified with -D."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1522
+#, no-c-format
+msgid "<term>-k</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1524
+#, no-c-format
+msgid ""
+"Keep identifiers' case (column, schema and attributes). Note that attributes "
+"in Shapefile are all UPPERCASE."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1532
+#, no-c-format
+msgid "<term>-i</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1534
+#, no-c-format
+msgid ""
+"Coerce all integers to standard 32-bit integers, do not create 64-bit "
+"bigints, even if the DBF header signature appears to warrant it."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1542
+#, no-c-format
+msgid "<term>-I</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1544
+#, no-c-format
+msgid "Create a GiST index on the geometry column."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1551
+#, no-c-format
+msgid "<term>-m</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1553
+#, no-c-format
+msgid ""
+"-m <filename>a_file_name</filename> Specify a file containing a set of "
+"mappings of (long) column names to 10 character DBF column names. The "
+"content of the file is one or more lines of two names separated by white "
+"space and no trailing or leading space. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1558
+#, no-c-format
+msgid ""
+"COLUMNNAME DBFFIELD1\n"
+"AVERYLONGCOLUMNNAME DBFFIELD2"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1564
+#, no-c-format
+msgid "<term>-S</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1566
+#, no-c-format
+msgid ""
+"Generate simple geometries instead of MULTI geometries. Will only succeed if "
+"all the geometries are actually single (I.E. a MULTIPOLYGON with a single "
+"shell, or or a MULTIPOINT with a single vertex)."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1575
+#, no-c-format
+msgid "-t <dimensionality>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1577
+#, no-c-format
+msgid ""
+"Force the output geometry to have the specified dimensionality. Use the "
+"following strings to indicate the dimensionality: 2D, 3DZ, 3DM, 4D."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1581
+#, no-c-format
+msgid ""
+"If the input has fewer dimensions that specified, the output will have those "
+"dimensions filled in with zeroes. If the input has more dimensions that "
+"specified, the unwanted dimensions will be stripped."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1590
+#, no-c-format
+msgid "<term>-w</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1592
+#, no-c-format
+msgid ""
+"Output WKT format, instead of WKB. Note that this can introduce coordinate "
+"drifts due to loss of precision."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1600
+#, no-c-format
+msgid "<term>-e</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1602
+#, no-c-format
+msgid ""
+"Execute each statement on its own, without using a transaction. This allows "
+"loading of the majority of good data when there are some bad geometries that "
+"generate errors. Note that this cannot be used with the -D flag as the \"dump"
+"\" format always uses a transaction."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1612
+#, no-c-format
+msgid "-W <encoding>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1614
+#, no-c-format
+msgid ""
+"Specify encoding of the input data (dbf file). When used, all attributes of "
+"the dbf are converted from the specified encoding to UTF8. The resulting SQL "
+"output will contain a <code>SET CLIENT_ENCODING to UTF8</code> command, so "
+"that the backend will be able to reconvert from UTF8 to whatever encoding "
+"the database is configured to use internally."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1624
+#, no-c-format
+msgid "-N <policy>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1626
+#, no-c-format
+msgid "NULL geometries handling policy (insert*,skip,abort)"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1632
+#, no-c-format
+msgid "<term>-n</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1634
+#, no-c-format
+msgid ""
+"-n Only import DBF file. If your data has no corresponding shapefile, it "
+"will automatically switch to this mode and load just the dbf. So setting "
+"this flag is only needed if you have a full shapefile set, and you only want "
+"the attribute data and no geometry."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1642
+#, no-c-format
+msgid "<term>-G</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1644
+#, no-c-format
+msgid ""
+"Use geography type instead of geometry (requires lon/lat data) in WGS84 long "
+"lat (SRID=4326)"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1650
+#, no-c-format
+msgid "-T <tablespace>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1652
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table. Indexes will still use the default "
+"tablespace unless the -X parameter is also used. The PostgreSQL "
+"documentation has a good description on when to use custom tablespaces."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1660
+#, no-c-format
+msgid "-X <tablespace>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1662
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table's indexes. This applies to the "
+"primary key index, and the GIST spatial index if -I is also used."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1670
+#, no-c-format
+msgid ""
+"An example session using the loader to create an input file and uploading it "
+"might look like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1675
+#, no-c-format
+msgid ""
+"# shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > "
+"roads.sql\n"
+"# psql -d roadsdb -f roads.sql"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1677
+#, no-c-format
+msgid "A conversion and upload can be done all in one step using UNIX pipes:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1681
+#, no-c-format
+msgid "# shp2pgsql shaperoads.shp myschema.roadstable | psql -d roadsdb"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1686
+#, no-c-format
+msgid "Retrieving GIS Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1688
+#, no-c-format
+msgid ""
+"Data can be extracted from the database using either SQL or the Shape file "
+"loader/dumper. In the section on SQL we will discuss some of the operators "
+"available to do comparisons and queries on spatial tables."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1694
+#, no-c-format
+msgid "Using SQL to Retrieve Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1696
+#, no-c-format
+msgid ""
+"The most straightforward means of pulling data out of the database is to use "
+"a SQL select query to reduce the number of RECORDS and COLUMNS returned and "
+"dump the resulting columns into a parsable text file:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1701
+#, no-c-format
+msgid ""
+"db=# SELECT road_id, ST_AsText(road_geom) AS geom, road_name FROM roads;\n"
+"\n"
+"road_id | geom                                    | road_name\n"
+"--------+-----------------------------------------+-----------\n"
+"          1 | LINESTRING(191232 243118,191108 243242) | Jeff Rd\n"
+"          2 | LINESTRING(189141 244158,189265 244817) | Geordie Rd\n"
+"          3 | LINESTRING(192783 228138,192612 229814) | Paul St\n"
+"          4 | LINESTRING(189412 252431,189631 259122) | Graeme Ave\n"
+"          5 | LINESTRING(190131 224148,190871 228134) | Phil Tce\n"
+"          6 | LINESTRING(198231 263418,198213 268322) | Dave Cres\n"
+"          7 | LINESTRING(218421 284121,224123 241231) | Chris Way\n"
+"(6 rows)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1703
+#, no-c-format
+msgid ""
+"However, there will be times when some kind of restriction is necessary to "
+"cut down the number of fields returned. In the case of attribute-based "
+"restrictions, just use the same SQL syntax as normal with a non-spatial "
+"table. In the case of spatial restrictions, the following operators are "
+"available/useful:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1711
+#, no-c-format
+msgid "&&"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1714
+#, no-c-format
+msgid ""
+"This operator tells whether the bounding box of one geometry intersects the "
+"bounding box of another."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1720
+#, no-c-format
+msgid "ST_OrderingEquals"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1723
+#, no-c-format
+msgid ""
+"This tests whether two geometries are geometrically identical. For example, "
+"if 'POLYGON((0 0,1 1,1 0,0 0))' is the same as 'POLYGON((0 0,1 1,1 0,0 "
+"0))' (it is)."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1730
+#, no-c-format
+msgid "<term>=</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1733
+#, no-c-format
+msgid ""
+"This operator is a little more naive, it only tests whether the bounding "
+"boxes of two geometries are the same."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1739
+#, no-c-format
+msgid ""
+"Next, you can use these operators in queries. Note that when specifying "
+"geometries and boxes on the SQL command line, you must explicitly turn the "
+"string representations into geometries by using the \"ST_GeomFromText()\" "
+"function. The 312 is a fictitious spatial reference system that matches our "
+"data. So, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1745
+#, no-c-format
+msgid ""
+"SELECT road_id, road_name\n"
+"  FROM roads\n"
+"  WHERE ST_OrderingEquals(roads_geom , ST_GeomFromText('LINESTRING(191232 "
+"243118,191108 243242)',312) ) ;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1747
+#, no-c-format
+msgid ""
+"The above query would return the single record from the \"ROADS_GEOM\" table "
+"in which the geometry was equal to that value."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1750
+#, no-c-format
+msgid ""
+"When using the \"&&\" operator, you can specify either a BOX3D as "
+"the comparison feature or a GEOMETRY. When you specify a GEOMETRY, however, "
+"its bounding box will be used for the comparison."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1755
+#, no-c-format
+msgid ""
+"SELECT road_id, road_name\n"
+"FROM roads\n"
+"WHERE roads_geom && ST_GeomFromText('POLYGON((...))',312);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1757
+#, no-c-format
+msgid ""
+"The above query will use the bounding box of the polygon for comparison "
+"purposes."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1760
+#, no-c-format
+msgid ""
+"The most common spatial query will probably be a \"frame-based\" query, used "
+"by client software, like data browsers and web mappers, to grab a \"map frame"
+"\" worth of data for display. Using a \"BOX3D\" object for the frame, such a "
+"query looks like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(roads_geom) AS geom\n"
+"FROM roads\n"
+"WHERE\n"
+"  roads_geom && ST_MakeEnvelope(191232, 243117,191232, 243119,312);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1767
+#, no-c-format
+msgid ""
+"Note the use of the SRID 312, to specify the projection of the envelope."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1771
+#, no-c-format
+msgid "Using the Dumper"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1773
+#, no-c-format
+msgid ""
+"The <filename>pgsql2shp</filename> table dumper connects directly to the "
+"database and converts a table (possibly defined by a query) into a shape "
+"file. The basic syntax is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1777
+#, no-c-format
+msgid ""
+"pgsql2shp [<options>] <database> [<schema>.]<table>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1779
+#, no-c-format
+msgid "pgsql2shp [<options>] <database> <query>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1781
+#, no-c-format
+msgid "The commandline options are:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1785
+#, no-c-format
+msgid "-f <filename>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1788
+#, no-c-format
+msgid "Write the output to a particular filename."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1793
+#, no-c-format
+msgid "-h <host>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1796
+#, no-c-format
+msgid "The database host to connect to."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1801
+#, no-c-format
+msgid "-p <port>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1804
+#, no-c-format
+msgid "The port to connect to on the database host."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1809
+#, no-c-format
+msgid "-P <password>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1812
+#, no-c-format
+msgid "The password to use when connecting to the database."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1817
+#, no-c-format
+msgid "-u <user>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1820
+#, no-c-format
+msgid "The username to use when connecting to the database."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1825
+#, no-c-format
+msgid "-g <geometry column>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1828
+#, no-c-format
+msgid ""
+"In the case of tables with multiple geometry columns, the geometry column to "
+"use when writing the shape file."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1834
+#, no-c-format
+msgid "<term>-b</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1837
+#, no-c-format
+msgid ""
+"Use a binary cursor. This will make the operation faster, but will not work "
+"if any NON-geometry attribute in the table lacks a cast to text."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1844
+#, no-c-format
+msgid "<term>-r</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1847
+#, no-c-format
+msgid ""
+"Raw mode. Do not drop the <varname>gid</varname> field, or escape column "
+"names."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1856
+#, no-c-format
+msgid ""
+"For backward compatibility: write a 3-dimensional shape file when dumping "
+"from old (pre-1.0.0) postgis databases (the default is to write a 2-"
+"dimensional shape file in that case). Starting from postgis-1.0.0+, "
+"dimensions are fully encoded."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1864
+#, no-c-format
+msgid "-m <varname>filename</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1866
+#, no-c-format
+msgid ""
+"Remap identifiers to ten character names. The content of the file is lines "
+"of two symbols separated by a single white space and no trailing or leading "
+"space: VERYLONGSYMBOL SHORTONE ANOTHERVERYLONGSYMBOL SHORTER etc."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1879
+#, no-c-format
+msgid "Building Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1881
+#, no-c-format
+msgid ""
+"Indexes are what make using a spatial database for large data sets possible. "
+"Without indexing, any search for a feature would require a \"sequential scan"
+"\" of every record in the database. Indexing speeds up searching by "
+"organizing the data into a search tree which can be quickly traversed to "
+"find a particular record. PostgreSQL supports three kinds of indexes by "
+"default: B-Tree indexes, R-Tree indexes, and GiST indexes."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1891
+#, no-c-format
+msgid ""
+"B-Trees are used for data which can be sorted along one axis; for example, "
+"numbers, letters, dates. GIS data cannot be rationally sorted along one axis "
+"(which is greater, (0,0) or (0,1) or (1,0)?) so B-Tree indexing is of no use "
+"for us."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1898
+#, no-c-format
+msgid ""
+"R-Trees break up data into rectangles, and sub-rectangles, and sub-sub "
+"rectangles, etc. R-Trees are used by some spatial databases to index GIS "
+"data, but the PostgreSQL R-Tree implementation is not as robust as the GiST "
+"implementation."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1905
+#, no-c-format
+msgid ""
+"GiST (Generalized Search Trees) indexes break up data into \"things to one "
+"side\", \"things which overlap\", \"things which are inside\" and can be "
+"used on a wide range of data-types, including GIS data. PostGIS uses an R-"
+"Tree index implemented on top of GiST to index GIS data."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1914
+#, no-c-format
+msgid "GiST Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1916
+#, no-c-format
+msgid ""
+"GiST stands for \"Generalized Search Tree\" and is a generic form of "
+"indexing. In addition to GIS indexing, GiST is used to speed up searches on "
+"all kinds of irregular data structures (integer arrays, spectral data, etc) "
+"which are not amenable to normal B-Tree indexing."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1921
+#, no-c-format
+msgid ""
+"Once a GIS data table exceeds a few thousand rows, you will want to build an "
+"index to speed up spatial searches of the data (unless all your searches are "
+"based on attributes, in which case you'll want to build a normal index on "
+"the attribute fields)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1926
+#, no-c-format
+msgid ""
+"The syntax for building a GiST index on a \"geometry\" column is as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1929
+#, no-c-format
+msgid "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1930
+#, no-c-format
+msgid ""
+"The above syntax will always build a 2D-index. To get the an n-dimensional "
+"index supported in PostGIS 2.0+ for the geometry type, you can create one "
+"using this syntax"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1931
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield] "
+"gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1933
+#, no-c-format
+msgid ""
+"Building a spatial index is a computationally intensive exercise: on tables "
+"of around 1 million rows, on a 300MHz Solaris machine, we have found "
+"building a GiST index takes about 1 hour. After building an index, it is "
+"important to force PostgreSQL to collect table statistics, which are used to "
+"optimize query plans:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1939
+#, no-c-format
+msgid ""
+"VACUUM ANALYZE [table_name] [(column_name)];\n"
+"-- This is only needed for PostgreSQL 7.4 installations and below\n"
+"SELECT UPDATE_GEOMETRY_STATS([table_name], [column_name]);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1941
+#, no-c-format
+msgid ""
+"GiST indexes have two advantages over R-Tree indexes in PostgreSQL. Firstly, "
+"GiST indexes are \"null safe\", meaning they can index columns which include "
+"null values. Secondly, GiST indexes support the concept of \"lossiness\" "
+"which is important when dealing with GIS objects larger than the PostgreSQL "
+"8K page size. Lossiness allows PostgreSQL to store only the \"important\" "
+"part of an object in an index -- in the case of GIS objects, just the "
+"bounding box. GIS objects larger than 8K will cause R-Tree indexes to fail "
+"in the process of being built."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1953
+#, no-c-format
+msgid "Using Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1955
+#, no-c-format
+msgid ""
+"Ordinarily, indexes invisibly speed up data access: once the index is built, "
+"the query planner transparently decides when to use index information to "
+"speed up a query plan. Unfortunately, the PostgreSQL query planner does not "
+"optimize the use of GiST indexes well, so sometimes searches which should "
+"use a spatial index instead default to a sequence scan of the whole table."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1962
+#, no-c-format
+msgid ""
+"If you find your spatial indexes are not being used (or your attribute "
+"indexes, for that matter) there are a couple things you can do:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1968
+#, no-c-format
+msgid ""
+"Firstly, make sure statistics are gathered about the number and "
+"distributions of values in a table, to provide the query planner with better "
+"information to make decisions around index usage. For PostgreSQL 7.4 "
+"installations and below this is done by running "
+"<command>update_geometry_stats([table_name, column_name])</command> (compute "
+"distribution) and <command>VACUUM ANALYZE [table_name] [column_name]</"
+"command> (compute number of values). Starting with PostgreSQL 8.0 running "
+"<command>VACUUM ANALYZE</command> will do both operations. You should "
+"regularly vacuum your databases anyways -- many PostgreSQL DBAs have "
+"<command>VACUUM</command> run as an off-peak cron job on a regular basis."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1982
+#, no-c-format
+msgid ""
+"If vacuuming does not work, you can force the planner to use the index "
+"information by using the <command>SET ENABLE_SEQSCAN=OFF</command> command. "
+"You should only use this command sparingly, and only on spatially indexed "
+"queries: generally speaking, the planner knows better than you do about when "
+"to use normal B-Tree indexes. Once you have run your query, you should "
+"consider setting <varname>ENABLE_SEQSCAN</varname> back on, so that other "
+"queries will utilize the planner as normal."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1992
+#, no-c-format
+msgid ""
+"As of version 0.6, it should not be necessary to force the planner to use "
+"the index with <varname>ENABLE_SEQSCAN</varname>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1999
+#, no-c-format
+msgid ""
+"If you find the planner wrong about the cost of sequential vs index scans "
+"try reducing the value of random_page_cost in postgresql.conf or using SET "
+"random_page_cost=#. Default value for the parameter is 4, try setting it to "
+"1 or 2. Decrementing the value makes the planner more inclined of using "
+"Index scans."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2010
+#, no-c-format
+msgid "Complex Queries"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2012
+#, no-c-format
+msgid ""
+"The <emphasis>raison d'etre</emphasis> of spatial database functionality is "
+"performing queries inside the database which would ordinarily require "
+"desktop GIS functionality. Using PostGIS effectively requires knowing what "
+"spatial functions are available, and ensuring that appropriate indexes are "
+"in place to provide good performance. The SRID of 312 used in these examples "
+"is purely for demonstration. You should be using a REAL SRID listed in the "
+"the spatial_ref_sys table and one that matches the projection of your data. "
+"If your data has no spatial reference system specified, you should be "
+"THINKING very thoughtfully why it doesn't and maybe it should. If your "
+"reason is because you are modeling something that doesn't have a geographic "
+"spatial reference system defined such as the internals of a molecule or a "
+"good location on Mars to transport the human race in the event of a nuclear "
+"holocaust, then simply leave out the SRID or make one up and insert it in "
+"the <varname>spatial_ref_sys</varname> table."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2026
+#, no-c-format
+msgid "Taking Advantage of Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2028
+#, no-c-format
+msgid ""
+"When constructing a query it is important to remember that only the bounding-"
+"box-based operators such as && can take advantage of the GiST "
+"spatial index. Functions such as <varname>ST_Distance()</varname> cannot use "
+"the index to optimize their operation. For example, the following query "
+"would be quite slow on a large table:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2035
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_Distance(the_geom, ST_GeomFromText('POINT(100000 200000)', 312)) "
+"< 100"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2037
+#, no-c-format
+msgid ""
+"This query is selecting all the geometries in geom_table which are within "
+"100 units of the point (100000, 200000). It will be slow because it is "
+"calculating the distance between each point in the table and our specified "
+"point, ie. one <varname>ST_Distance()</varname> calculation for each row in "
+"the table. We can avoid this by using the && operator to reduce the "
+"number of distance calculations required:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2044
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_DWithin(the_geom,  ST_MakeEnvelope(90900, 190900, 100100, "
+"200100,312), 100)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2046
+#, no-c-format
+msgid ""
+"This query selects the same geometries, but it does it in a more efficient "
+"way. Assuming there is a GiST index on the_geom, the query planner will "
+"recognize that it can use the index to reduce the number of rows before "
+"calculating the result of the <varname>ST_distance()</varname> function. "
+"Notice that the <varname>ST_MakeEnvelope</varname> geometry which is used in "
+"the && operation is a 200 unit square box centered on the original "
+"point - this is our \"query box\". The && operator uses the index to "
+"quickly reduce the result set down to only those geometries which have "
+"bounding boxes that overlap the \"query box\". Assuming that our query box "
+"is much smaller than the extents of the entire geometry table, this will "
+"drastically reduce the number of distance calculations that need to be done."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2060
+#, no-c-format
+msgid "Change in Behavior"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2062
+#, no-c-format
+msgid ""
+"As of PostGIS 1.3.0, most of the Geometry Relationship Functions, with the "
+"notable exceptions of ST_Disjoint and ST_Relate, include implicit bounding "
+"box overlap operators."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2069
+#, no-c-format
+msgid "Examples of Spatial SQL"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2071
+#, no-c-format
+msgid ""
+"The examples in this section will make use of two tables, a table of linear "
+"roads, and a table of polygonal municipality boundaries. The table "
+"definitions for the <varname>bc_roads</varname> table is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2075
+#, no-c-format
+msgid ""
+"Column      | Type              | Description\n"
+"------------+-------------------+-------------------\n"
+"gid         | integer           | Unique ID\n"
+"name        | character varying | Road Name\n"
+"the_geom    | geometry          | Location Geometry (Linestring)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2077
+#, no-c-format
+msgid ""
+"The table definition for the <varname>bc_municipality</varname> table is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2080
+#, no-c-format
+msgid ""
+"Column     | Type              | Description\n"
+"-----------+-------------------+-------------------\n"
+"gid        | integer           | Unique ID\n"
+"code       | integer           | Unique ID\n"
+"name       | character varying | City / Town Name\n"
+"the_geom   | geometry          | Location Geometry (Polygon)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2085
+#, no-c-format
+msgid "What is the total length of all roads, expressed in kilometers?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2090
+#, no-c-format
+msgid "You can answer this question with a very simple piece of SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2093
+#, no-c-format
+msgid ""
+"SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM bc_roads;\n"
+"\n"
+"km_roads\n"
+"------------------\n"
+"70842.1243039643\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2099
+#, no-c-format
+msgid "How large is the city of Prince George, in hectares?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2103
+#, no-c-format
+msgid ""
+"This query combines an attribute condition (on the municipality name) with a "
+"spatial calculation (of the area):"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2107
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM bc_municipality\n"
+"WHERE name = 'PRINCE GEORGE';\n"
+"\n"
+"hectares\n"
+"------------------\n"
+"32657.9103824927\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2113
+#, no-c-format
+msgid "What is the largest municipality in the province, by area?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2118
+#, no-c-format
+msgid ""
+"This query brings a spatial measurement into the query condition. There are "
+"several ways of approaching this problem, but the most efficient is below:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2122
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  name,\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM\n"
+"  bc_municipality\n"
+"ORDER BY hectares DESC\n"
+"LIMIT 1;\n"
+"\n"
+"name           | hectares\n"
+"---------------+-----------------\n"
+"TUMBLER RIDGE  | 155020.02556131\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2124
+#, no-c-format
+msgid ""
+"Note that in order to answer this query we have to calculate the area of "
+"every polygon. If we were doing this a lot it would make sense to add an "
+"area column to the table that we could separately index for performance. By "
+"ordering the results in a descending direction, and them using the "
+"PostgreSQL \"LIMIT\" command we can easily pick off the largest value "
+"without using an aggregate function like max()."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2136
+#, no-c-format
+msgid "What is the length of roads fully contained within each municipality?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2141
+#, no-c-format
+msgid ""
+"This is an example of a \"spatial join\", because we are bringing together "
+"data from two tables (doing a join) but using a spatial interaction "
+"condition (\"contained\") as the join condition rather than the usual "
+"relational approach of joining on a common key:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2147
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  m.name,\n"
+"  sum(ST_Length(r.the_geom))/1000 as roads_km\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE\n"
+"  ST_Contains(m.the_geom,r.the_geom)\n"
+"GROUP BY m.name\n"
+"ORDER BY roads_km;\n"
+"\n"
+"name                        | roads_km\n"
+"----------------------------+------------------\n"
+"SURREY                      | 1539.47553551242\n"
+"VANCOUVER                   | 1450.33093486576\n"
+"LANGLEY DISTRICT            | 833.793392535662\n"
+"BURNABY                     | 773.769091404338\n"
+"PRINCE GEORGE               | 694.37554369147\n"
+"..."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2149
+#, no-c-format
+msgid ""
+"This query takes a while, because every road in the table is summarized into "
+"the final result (about 250K roads for our particular example table). For "
+"smaller overlays (several thousand records on several hundred) the response "
+"can be very fast."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2158
+#, no-c-format
+msgid "Create a new table with all the roads within the city of Prince George."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2163
+#, no-c-format
+msgid ""
+"This is an example of an \"overlay\", which takes in two tables and outputs "
+"a new table that consists of spatially clipped or cut resultants. Unlike the "
+"\"spatial join\" demonstrated above, this query actually creates new "
+"geometries. An overlay is like a turbo-charged spatial join, and is useful "
+"for more exact analysis work:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2170
+#, no-c-format
+msgid ""
+"CREATE TABLE pg_roads as\n"
+"SELECT\n"
+"  ST_Intersection(r.the_geom, m.the_geom) AS intersection_geom,\n"
+"  ST_Length(r.the_geom) AS rd_orig_length,\n"
+"  r.*\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE  m.name = 'PRINCE GEORGE' AND ST_Intersects(r.the_geom, m.the_geom);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2176
+#, no-c-format
+msgid "What is the length in kilometers of \"Douglas St\" in Victoria?"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2181
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  sum(ST_Length(r.the_geom))/1000 AS kilometers\n"
+"FROM\n"
+"  bc_roads r,\n"
+"  bc_municipality m\n"
+"WHERE  r.name = 'Douglas St' AND m.name = 'VICTORIA'\n"
+"        AND ST_Contains(m.the_geom, r.the_geom) ;\n"
+"\n"
+"kilometers\n"
+"------------------\n"
+"4.89151904172838\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2187
+#, no-c-format
+msgid "What is the largest municipality polygon that has a hole?"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2192
+#, no-c-format
+msgid ""
+"SELECT gid, name, ST_Area(the_geom) AS area\n"
+"FROM bc_municipality\n"
+"WHERE ST_NRings(the_geom) > 1\n"
+"ORDER BY area DESC LIMIT 1;\n"
+"\n"
+"gid  | name         | area\n"
+"-----+--------------+------------------\n"
+"12   | SPALLUMCHEEN | 257374619.430216\n"
+"(1 row)"
+msgstr ""
diff --git a/doc/po/fr/using_raster_dataman.xml.po b/doc/po/fr/using_raster_dataman.xml.po
new file mode 100644
index 0000000..bebd228
--- /dev/null
+++ b/doc/po/fr/using_raster_dataman.xml.po
@@ -0,0 +1,1590 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-26 21:54+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/postgis-1/"
+"language/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Tag: title
+#: using_raster_dataman.xml:3
+#, no-c-format
+msgid "Raster Data Management, Queries, and Applications"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:5
+#, no-c-format
+msgid "Loading and Creating Rasters"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:6
+#, no-c-format
+msgid ""
+"For most use cases, you will create PostGIS rasters by loading existing "
+"raster files using the packaged <varname>raster2pgsql</varname> raster "
+"loader."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:9
+#, no-c-format
+msgid "Using raster2pgsql to load rasters"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:10
+#, no-c-format
+msgid ""
+"The <varname>raster2pgsql</varname> is a raster loader executable that loads "
+"GDAL supported raster formats into sql suitable for loading into a PostGIS "
+"raster table. It is capable of loading folders of raster files as well as "
+"creating overviews of rasters."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:13
+#, no-c-format
+msgid ""
+"Since the raster2pgsql is compiled as part of PostGIS most often (unless you "
+"compile your own GDAL library), the raster types supported by the executable "
+"will be the same as those compiled in the GDAL dependency library. To get a "
+"list of raster types your particular raster2pgsql supports use the <varname>-"
+"G</varname> switch. These should be the same as those provided by your "
+"PostGIS install documented here <xref linkend=\"RT_ST_GDALDrivers\"/> if you "
+"are using the same gdal library for both."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:16
+#, no-c-format
+msgid ""
+"The older version of this tool was a python script. The executable has "
+"replaced the python script. If you still find the need for the Python script "
+"Examples of the python one can be found at <ulink url=\"http://trac.osgeo."
+"org/gdal/wiki/frmts_wtkraster.html\">GDAL PostGIS Raster Driver Usage</"
+"ulink>. Please note that the raster2pgsql python script may not work with "
+"future versions of PostGIS raster and is no longer supported."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:21
+#, no-c-format
+msgid ""
+"When creating overviews of a specific factor from a set of rasters that are "
+"aligned, it is possible for the overviews to not align. Visit <ulink url="
+"\"http://trac.osgeo.org/postgis/ticket/1764\">http://trac.osgeo.org/postgis/"
+"ticket/1764</ulink> for an example where the overviews do not align."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:23
+#, no-c-format
+msgid "EXAMPLE USAGE:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:24
+#, no-c-format
+msgid ""
+"raster2pgsql <varname>raster_options_go_here</varname> <varname>raster_file</"
+"varname> <varname>someschema</varname>.<varname>sometable</varname> > out."
+"sql"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:28
+#, no-c-format
+msgid "<term>-?</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:30
+#, no-c-format
+msgid ""
+"Display help screen. Help will also display if you don't pass in any "
+"arguments."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:37
+#, no-c-format
+msgid "<term>-G</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:39
+#, no-c-format
+msgid "Print the supported raster formats."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:46
+#, no-c-format
+msgid "(c|a|d|p) These are mutually exclusive options:"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:51
+#, no-c-format
+msgid "<term>-c</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:53
+#, no-c-format
+msgid ""
+"Create new table and populate it with raster(s), <emphasis>this is the "
+"default mode</emphasis>"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:60
+#, no-c-format
+msgid "<term>-a</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:62
+#, no-c-format
+msgid "Append raster(s) to an existing table."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:69
+#, no-c-format
+msgid "<term>-d</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:71
+#, no-c-format
+msgid "Drop table, create new one and populate it with raster(s)"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:78
+#, no-c-format
+msgid "<term>-p</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:80
+#, no-c-format
+msgid "Prepare mode, only create the table."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:91
+#, no-c-format
+msgid ""
+"Raster processing: Applying constraints for proper registering in raster "
+"catalogs"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:96
+#, no-c-format
+msgid "<term>-C</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:98
+#, no-c-format
+msgid ""
+"Apply raster constraints -- srid, pixelsize etc. to ensure raster is "
+"properly registered in <varname>raster_columns</varname> view."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:104
+#, no-c-format
+msgid "<term>-x</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:106
+#, no-c-format
+msgid ""
+"Disable setting the max extent constraint. Only applied if -C flag is also "
+"used."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:112
+#, no-c-format
+msgid "<term>-r</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:114
+#, no-c-format
+msgid ""
+"Set the constraints (spatially unique and coverage tile) for regular "
+"blocking. Only applied if -C flag is also used."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:125
+#, no-c-format
+msgid ""
+"Raster processing: Optional parameters used to manipulate input raster "
+"dataset"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:130
+#, no-c-format
+msgid "-s <SRID>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:132
+#, no-c-format
+msgid ""
+"Assign output raster with specified SRID. If not provided or is zero, "
+"raster's metadata will be checked to determine an appropriate SRID."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:139
+#, no-c-format
+msgid "-b BAND"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:141
+#, no-c-format
+msgid ""
+"Index (1-based) of band to extract from raster. For more than one band "
+"index, separate with comma (,). If unspecified, all bands of raster will be "
+"extracted."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:149
+#, no-c-format
+msgid "-t TILE_SIZE"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:151
+#, no-c-format
+msgid ""
+"Cut raster into tiles to be inserted one per table row. <varname>TILE_SIZE</"
+"varname> is expressed as WIDTHxHEIGHT or set to the value \"auto\" to allow "
+"the loader to compute an appropriate tile size using the first raster and "
+"applied to all rasters."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:158
+#, no-c-format
+msgid "-R, --register"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:160
+#, no-c-format
+msgid "Register the raster as a filesystem (out-db) raster."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:161
+#, no-c-format
+msgid ""
+"Only the metadata of the raster and path location to the raster is stored in "
+"the database (not the pixels)."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:166
+#, no-c-format
+msgid "-l <varname>OVERVIEW_FACTOR</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:167
+#, no-c-format
+msgid ""
+"Create overview of the raster. For more than one factor, separate with "
+"comma(,). Overview table name follows the pattern o_<varname>overview "
+"factor</varname>_<varname>table</varname>, where <varname>overview factor</"
+"varname> is a placeholder for numerical overview factor and <varname>table</"
+"varname> is replaced with the base table name. Created overview is stored in "
+"the database and is not affected by -R. Note that your generated sql file "
+"will contain both the main table and overview tables."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:175
+#, no-c-format
+msgid "-N <varname>NODATA</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:177
+#, no-c-format
+msgid "NODATA value to use on bands without a NODATA value."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:189
+#, no-c-format
+msgid "Optional parameters used to manipulate database objects"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:194
+#, no-c-format
+msgid "<term>-q</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:196
+#, no-c-format
+msgid "Wrap PostgreSQL identifiers in quotes"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:201
+#, no-c-format
+msgid "-f COLUMN"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:203
+#, no-c-format
+msgid "Specify name of destination raster column, default is 'rast'"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:209
+#, no-c-format
+msgid "<term>-F</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:211
+#, no-c-format
+msgid "Add a column with the name of the file"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:216
+#, no-c-format
+msgid "<term>-I</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:218
+#, no-c-format
+msgid "Create a GiST index on the raster column."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:225
+#, no-c-format
+msgid "<term>-M</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:227
+#, no-c-format
+msgid "Vacuum analyze the raster table."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:234
+#, no-c-format
+msgid "-T <varname>tablespace</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:236
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table. Note that indices (including the "
+"primary key) will still use the default tablespace unless the -X flag is "
+"also used."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:245
+#, no-c-format
+msgid "-X <varname>tablespace</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:247
+#, no-c-format
+msgid ""
+"Specify the tablespace for the table's new index. This applies to the "
+"primary key and the spatial index if the -I flag is used."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:256
+#, no-c-format
+msgid "<term>-Y</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:258
+#, no-c-format
+msgid "Use copy statements instead of insert statements."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:269
+#, no-c-format
+msgid "<term>-e</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:270
+#, no-c-format
+msgid "Execute each statement individually, do not use a transaction."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:274
+#, no-c-format
+msgid "-E ENDIAN"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:275
+#, no-c-format
+msgid ""
+"Control endianness of generated binary output of raster; specify 0 for XDR "
+"and 1 for NDR (default); only NDR output is supported now"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:279
+#, no-c-format
+msgid "-V <varname>version</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:280
+#, no-c-format
+msgid ""
+"Specify version of output format. Default is 0. Only 0 is supported at this "
+"time."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:283
+#, no-c-format
+msgid ""
+"An example session using the loader to create an input file and uploading it "
+"chunked in 100x100 tiles might look like this:"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:284
+#, no-c-format
+msgid ""
+"You can leave the schema name out e.g <varname>demelevation</varname> "
+"instead of <varname>public.demelevation</varname> and the raster table will "
+"be created in the default schema of the database or user"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:286
+#, no-c-format
+msgid ""
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
+"sql\n"
+"psql -d gisdb -f elev.sql"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:288
+#, no-c-format
+msgid "A conversion and upload can be done all in one step using UNIX pipes:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:290
+#, no-c-format
+msgid ""
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
+"-d gisdb"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:292
+#, no-c-format
+msgid ""
+"Load rasters Massachusetts state plane meters aerial tiles into a schema "
+"called <varname>aerial</varname> and create a full view, 2 and 4 level "
+"overview tables, use copy mode for inserting (no intermediary file just "
+"straight to db), and -e don't force everything in a transaction (good if you "
+"want to see data in tables right away without waiting). Break up the rasters "
+"into 128x128 pixel tiles and apply raster constraints. Use copy mode instead "
+"of table insert. (-F) Include a field called filename to hold the name of "
+"the file the tiles were cut from."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:294
+#, no-c-format
+msgid ""
+"raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128  -l 2,4 bostonaerials2008/*."
+"jpg aerials.boston | psql -U postgres -d gisdb -h localhost -p 5432"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:296
+#, no-c-format
+msgid ""
+"--get a list of raster types supported:\n"
+"raster2pgsql -G"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:298
+#, no-c-format
+msgid "The -G commands outputs a list something like"
+msgstr ""
+
+#. Tag: screen
+#: using_raster_dataman.xml:299
+#, no-c-format
+msgid ""
+"Available GDAL raster formats:\n"
+"  Virtual Raster\n"
+"  GeoTIFF\n"
+"  National Imagery Transmission Format\n"
+"  Raster Product Format TOC format\n"
+"  ECRG TOC format\n"
+"  Erdas Imagine Images (.img)\n"
+"  CEOS SAR Image\n"
+"  CEOS Image\n"
+"  JAXA PALSAR Product Reader (Level 1.1/1.5)\n"
+"  Ground-based SAR Applications Testbed File Format (.gff)\n"
+"  ELAS\n"
+"  Arc/Info Binary Grid\n"
+"  Arc/Info ASCII Grid\n"
+"  GRASS ASCII Grid\n"
+"  SDTS Raster\n"
+"  DTED Elevation Raster\n"
+"  Portable Network Graphics\n"
+"  JPEG JFIF\n"
+"  In Memory Raster\n"
+"  Japanese DEM (.mem)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Envisat Image Format\n"
+"  Maptech BSB Nautical Charts\n"
+"  X11 PixMap Format\n"
+"  MS Windows Device Independent Bitmap\n"
+"  SPOT DIMAP\n"
+"  AirSAR Polarimetric Image\n"
+"  RadarSat 2 XML Product\n"
+"  PCIDSK Database File\n"
+"  PCRaster Raster File\n"
+"  ILWIS Raster Map\n"
+"  SGI Image File Format 1.0\n"
+"  SRTMHGT File Format\n"
+"  Leveller heightfield\n"
+"  Terragen heightfield\n"
+"  USGS Astrogeology ISIS cube (Version 3)\n"
+"  USGS Astrogeology ISIS cube (Version 2)\n"
+"  NASA Planetary Data System\n"
+"  EarthWatch .TIL\n"
+"  ERMapper .ers Labelled\n"
+"  NOAA Polar Orbiter Level 1b Data Set\n"
+"  FIT Image\n"
+"  GRIdded Binary (.grb)\n"
+"  Raster Matrix Format\n"
+"  EUMETSAT Archive native (.nat)\n"
+"  Idrisi Raster A.1\n"
+"  Intergraph Raster\n"
+"  Golden Software ASCII Grid (.grd)\n"
+"  Golden Software Binary Grid (.grd)\n"
+"  Golden Software 7 Binary Grid (.grd)\n"
+"  COSAR Annotated Binary Matrix (TerraSAR-X)\n"
+"  TerraSAR-X Product\n"
+"  DRDC COASP SAR Processor Raster\n"
+"  R Object Data Store\n"
+"  Portable Pixmap Format (netpbm)\n"
+"  USGS DOQ (Old Style)\n"
+"  USGS DOQ (New Style)\n"
+"  ENVI .hdr Labelled\n"
+"  ESRI .hdr Labelled\n"
+"  Generic Binary (.hdr Labelled)\n"
+"  PCI .aux Labelled\n"
+"  Vexcel MFF Raster\n"
+"  Vexcel MFF2 (HKV) Raster\n"
+"  Fuji BAS Scanner Image\n"
+"  GSC Geogrid\n"
+"  EOSAT FAST Format\n"
+"  VTP .bt (Binary Terrain) 1.3 Format\n"
+"  Erdas .LAN/.GIS\n"
+"  Convair PolGASP\n"
+"  Image Data and Analysis\n"
+"  NLAPS Data Format\n"
+"  Erdas Imagine Raw\n"
+"  DIPEx\n"
+"  FARSITE v.4 Landscape File (.lcp)\n"
+"  NOAA Vertical Datum .GTX\n"
+"  NADCON .los/.las Datum Grid Shift\n"
+"  NTv2 Datum Grid Shift\n"
+"  ACE2\n"
+"  Snow Data Assimilation System\n"
+"  Swedish Grid RIK (.rik)\n"
+"  USGS Optional ASCII DEM (and CDED)\n"
+"  GeoSoft Grid Exchange Format\n"
+"  Northwood Numeric Grid Format .grd/.tab\n"
+"  Northwood Classified Grid Format .grc/.tab\n"
+"  ARC Digitized Raster Graphics\n"
+"  Standard Raster Product (ASRP/USRP)\n"
+"  Magellan topo (.blx)\n"
+"  SAGA GIS Binary Grid (.sdat)\n"
+"  Kml Super Overlay\n"
+"  ASCII Gridded XYZ\n"
+"  HF2/HFZ heightfield raster\n"
+"  OziExplorer Image File\n"
+"  USGS LULC Composite Theme Grid\n"
+"  Arc/Info Export E00 GRID\n"
+"  ZMap Plus Grid\n"
+"  NOAA NGS Geoid Height Grids"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:302
+#, no-c-format
+msgid "Creating rasters using PostGIS raster functions"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:303
+#, no-c-format
+msgid ""
+"On many occasions, you'll want to create rasters and raster tables right in "
+"the database. There are a plethora of functions to do that. The general "
+"steps to follow."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:305
+#, no-c-format
+msgid ""
+"Create a table with a raster column to hold the new raster records which can "
+"be accomplished with:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:306
+#, no-c-format
+msgid "CREATE TABLE myrasters(rid serial primary key, rast raster);"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:309
+#, no-c-format
+msgid ""
+"There are many functions to help with that goal. If you are creating rasters "
+"not as a derivative of other rasters, you will want to start with: <xref "
+"linkend=\"RT_ST_MakeEmptyRaster\"/>, followed by <xref linkend="
+"\"RT_ST_AddBand\"/>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:311
+#, no-c-format
+msgid ""
+"You can also create rasters from geometries. To achieve that you'll want to "
+"use <xref linkend=\"RT_ST_AsRaster\"/> perhaps accompanied with other "
+"functions such as <xref linkend=\"RT_ST_Union\"/> or <xref linkend="
+"\"RT_ST_MapAlgebraFct2\"/> or any of the family of other map algebra "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:313
+#, no-c-format
+msgid ""
+"There are even many more options for creating new raster tables from "
+"existing tables. For example you can create a raster table in a different "
+"projection from an existing one using <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:315
+#, no-c-format
+msgid ""
+"Once you are done populating your table initially, you'll want to create a "
+"spatial index on the raster column with something like:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:316
+#, no-c-format
+msgid ""
+"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING "
+"gist( ST_ConvexHull(rast) );"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:317
+#, no-c-format
+msgid ""
+"Note the use of <xref linkend=\"RT_ST_ConvexHull\"/> since most raster "
+"operators are based on the convex hull of the rasters."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:318
+#, no-c-format
+msgid ""
+"Pre-2.0 versions of PostGIS raster were based on the envelop rather than the "
+"convex hull. For the spatial indexes to work properly you'll need to drop "
+"those and replace with convex hull based index."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:319
+#, no-c-format
+msgid ""
+"Apply raster constraints using <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:324
+#, no-c-format
+msgid "Raster Catalogs"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:325
+#, no-c-format
+msgid ""
+"There are two raster catalog views that come packaged with PostGIS. Both "
+"views utilize information embedded in the constraints of the raster tables. "
+"As a result the catalog views are always consistent with the raster data in "
+"the tables since the constraints are enforced."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:329
+#, no-c-format
+msgid ""
+"<varname>raster_columns</varname> this view catalogs all the raster table "
+"columns in your database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:332
+#, no-c-format
+msgid ""
+"<varname>raster_overviews</varname> this view catalogs all the raster table "
+"columns in your database that serve as overviews for a finer grained table. "
+"Tables of this type are generated when you use the <varname>-l</varname> "
+"switch during load."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:336
+#, no-c-format
+msgid "Raster Columns Catalog"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:337
+#, no-c-format
+msgid ""
+"The <varname>raster_columns</varname> is a catalog of all raster table "
+"columns in your database that are of type raster. It is a view utilizing the "
+"constraints on the tables so the information is always consistent even if "
+"you restore one raster table from a backup of another database. The "
+"following columns exist in the <varname>raster_columns</varname> catalog."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:339
+#, no-c-format
+msgid ""
+"If you created your tables not with the loader or forgot to specify the "
+"<varname>-C</varname> flag during load, you can enforce the constraints "
+"after the fact using <xref linkend=\"RT_AddRasterConstraints\"/> so that the "
+"<varname>raster_columns</varname> catalog registers the common information "
+"about your raster tiles."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:344
+#, no-c-format
+msgid ""
+"<varname>r_table_catalog</varname> The database the table is in. This will "
+"always read the current database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:347
+#, no-c-format
+msgid ""
+"<varname>r_table_schema</varname> The database schema the raster table "
+"belongs to."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:350
+#, no-c-format
+msgid "<varname>r_table_name</varname> raster table"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:353
+#, no-c-format
+msgid ""
+"<varname>r_raster_column</varname> the column in the <varname>r_table_name</"
+"varname> table that is of type raster. There is nothing in PostGIS "
+"preventing you from having multiple raster columns per table so its possible "
+"to have a raster table listed multiple times with a different raster column "
+"for each."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:356
+#, no-c-format
+msgid ""
+"<varname>srid</varname> The spatial reference identifier of the raster. "
+"Should be an entry in the <xref linkend=\"spatial_ref_sys\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:359
+#, no-c-format
+msgid ""
+"<varname>scale_x</varname> The scaling between geometric spatial coordinates "
+"and pixel. This is only available if all tiles in the raster column have the "
+"same <varname>scale_x</varname> and this constraint is applied. Refer to "
+"<xref linkend=\"RT_ST_ScaleX\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:362
+#, no-c-format
+msgid ""
+"<varname>scale_y</varname> The scaling between geometric spatial coordinates "
+"and pixel. This is only available if all tiles in the raster column have the "
+"same <varname>scale_y</varname> and the <varname>scale_y</varname> "
+"constraint is applied. Refer to <xref linkend=\"RT_ST_ScaleY\"/> for more "
+"details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:365
+#, no-c-format
+msgid ""
+"<varname>blocksize_x</varname> The width (number of pixels across) of each "
+"raster tile . Refer to <xref linkend=\"RT_ST_Width\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:368
+#, no-c-format
+msgid ""
+"<varname>blocksize_y</varname> The width (number of pixels down) of each "
+"raster tile . Refer to <xref linkend=\"RT_ST_Height\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:371
+#, no-c-format
+msgid ""
+"<varname>same_alignment</varname> A boolean that is true if all the raster "
+"tiles have the same alignment . Refer to <xref linkend=\"RT_ST_SameAlignment"
+"\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:374
+#, no-c-format
+msgid ""
+"<varname>regular_blocking</varname> If the raster column has the spatially "
+"unique and coverage tile constraints, the value with be TRUE. Otherwise, it "
+"will be FALSE."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:377
+#, no-c-format
+msgid ""
+"<varname>num_bands</varname> The number of bands in each tile of your raster "
+"set. This is the same information as what is provided by"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:380
+#, no-c-format
+msgid ""
+"<varname>pixel_types</varname> An array defining the pixel type for each "
+"band. You will have the same number of elements in this array as you have "
+"number of bands. The pixel_types are one of the following defined in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:383
+#, no-c-format
+msgid ""
+"<varname>nodata_values</varname> An array of double precision numbers "
+"denoting the <varname>nodata_value</varname> for each band. You will have "
+"the same number of elements in this array as you have number of bands. These "
+"numbers define the pixel value for each band that should be ignored for most "
+"operations. This is similar information provided by <xref linkend="
+"\"RT_ST_BandNoDataValue\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:386
+#, no-c-format
+msgid ""
+"<varname>out_db</varname> An array of boolean flags indicating if the raster "
+"bands data is maintained outside the database. You will have the same number "
+"of elements in this array as you have number of bands."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:389
+#, no-c-format
+msgid ""
+"<varname>extent</varname> This is the extent of all the raster rows in your "
+"raster set. If you plan to load more data that will change the extent of the "
+"set, you'll want to run the <xref linkend=\"RT_DropRasterConstraints\"/> "
+"function before load and then reapply constraints with <xref linkend="
+"\"RT_AddRasterConstraints\"/> after load."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:392
+#, no-c-format
+msgid ""
+"<varname>spatial_index</varname> A boolean that is true if raster column has "
+"a spatial index."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:397
+#, no-c-format
+msgid "Raster Overviews"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:398
+#, no-c-format
+msgid ""
+"<varname>raster_overviews</varname> catalogs information about raster table "
+"columns used for overviews and additional information about them that is "
+"useful to know when utilizing overviews. Overview tables are cataloged in "
+"both <varname>raster_columns</varname> and <varname>raster_overviews</"
+"varname> because they are rasters in their own right but also serve an "
+"additional special purpose of being a lower resolution caricature of a "
+"higher resolution table. These are generated along-side the main raster "
+"table when you use the <varname>-l</varname> switch in raster loading or can "
+"be generated manually using <xref linkend=\"RT_AddOverviewConstraints\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:399
+#, no-c-format
+msgid ""
+"Overview tables contain the same constraints as other raster tables as well "
+"as additional informational only constraints specific to overviews."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:400
+#, no-c-format
+msgid ""
+"The information in <varname>raster_overviews</varname> does not duplicate "
+"the information in <varname>raster_columns</varname>. If you need the "
+"information about an overview table present in <varname>raster_columns</"
+"varname> you can join the <varname>raster_overviews</varname> and "
+"<varname>raster_columns</varname> together to get the full set of "
+"information you need."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:401
+#, no-c-format
+msgid "Two main reasons for overviews are:"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:403
+#, no-c-format
+msgid ""
+"Low resolution representation of the core tables commonly used for fast "
+"mapping zoom-out."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:404
+#, no-c-format
+msgid ""
+"Computations are generally faster to do on them than their higher resolution "
+"parents because there are fewer records and each pixel covers more "
+"territory. Though the computations are not as accurate as the high-res "
+"tables they support, they can be sufficient in many rule-of-thumb "
+"computations."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:407
+#, no-c-format
+msgid ""
+"The <varname>raster_overviews</varname> catalog contains the following "
+"columns of information."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:410
+#, no-c-format
+msgid ""
+"<varname>o_table_catalog</varname> The database the overview table is in. "
+"This will always read the current database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:413
+#, no-c-format
+msgid ""
+"<varname>o_table_schema</varname> The database schema the overview raster "
+"table belongs to."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:416
+#, no-c-format
+msgid "<varname>o_table_name</varname> raster overview table name"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:419
+#, no-c-format
+msgid ""
+"<varname>o_raster_column</varname> the raster column in the overview table."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:423
+#, no-c-format
+msgid ""
+"<varname>r_table_catalog</varname> The database the raster table that this "
+"overview services is in. This will always read the current database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:426
+#, no-c-format
+msgid ""
+"<varname>r_table_schema</varname> The database schema the raster table that "
+"this overview services belongs to."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:429
+#, no-c-format
+msgid ""
+"<varname>r_table_name</varname> raster table that this overview services."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:432
+#, no-c-format
+msgid ""
+"<varname>r_raster_column</varname> the raster column that this overview "
+"column services."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:435
+#, no-c-format
+msgid ""
+"<varname>overview_factor</varname> - this is the pyramid level of the "
+"overview table. The higher the number the lower the resolution of the table. "
+"raster2pgsql if given a folder of images, will compute overview of each "
+"image file and load separately. Level 1 is assumed and always the original "
+"file. Level 2 is will have each tile represent 4 of the original. So for "
+"example if you have a folder of 5000x5000 pixel image files that you chose "
+"to chunk 125x125, for each image file your base table will have (5000*5000)/"
+"(125*125) records = 1600, your (l=2) <varname>o_2</varname> table will have "
+"ceiling(1600/Power(2,2)) = 400 rows, your (l=3) <varname>o_3</varname> will "
+"have ceiling(1600/Power(2,3) ) = 200 rows. If your pixels aren't divisible "
+"by the size of your tiles, you'll get some scrap tiles (tiles not completely "
+"filled). Note that each overview tile generated by raster2pgsql has the same "
+"number of pixels as its parent, but is of a lower resolution where each "
+"pixel of it represents (Power(2,overview_factor) pixels of the original)."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:447
+#, no-c-format
+msgid "Building Custom Applications with PostGIS Raster"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:448
+#, no-c-format
+msgid ""
+"The fact that PostGIS raster provides you with SQL functions to render "
+"rasters in known image formats gives you a lot of optoins for rendering "
+"them. For example you can use OpenOffice / LibreOffice for rendering as "
+"demonstrated in <ulink url=\"http://www.postgresonline.com/journal/"
+"archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports."
+"html\">Rendering PostGIS Raster graphics with LibreOffice Base Reports</"
+"ulink>. In addition you can use a wide variety of languages as demonstrated "
+"in this section."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:451
+#, no-c-format
+msgid ""
+"PHP Example Outputting using ST_AsPNG in concert with other raster functions"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:452
+#, no-c-format
+msgid ""
+"In this section, we'll demonstrate how to use the PHP PostgreSQL driver and "
+"the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output "
+"band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
+"an img src html tag."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:455 using_raster_dataman.xml:467
+#, no-c-format
+msgid ""
+"The sample query demonstrates how to combine a whole bunch of raster "
+"functions together to grab all tiles that intersect a particular wgs 84 "
+"bounding box and then unions with <xref linkend=\"RT_ST_Union\"/> the "
+"intersecting tiles together returning all bands, transforms to user "
+"specified projection using <xref linkend=\"RT_ST_Transform\"/>, and then "
+"outputs the results as a png using <xref linkend=\"RT_ST_AsPNG\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:458
+#, no-c-format
+msgid ""
+"You would call the below using <programlisting>http://mywebserver/"
+"test_raster.php?srid=2249</programlisting> to get the raster image in "
+"Massachusetts state plane feet."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:459
+#, no-c-format
+msgid ""
+"<![CDATA[<?php\n"
+"/** contents of test_raster.php **/\n"
+"$conn_str ='dbname=mydb host=localhost port=5432 user=myuser "
+"password=mypwd';\n"
+"$dbconn = pg_connect($conn_str);\n"
+"header('Content-Type: image/png');  \n"
+"/**If a particular projection was requested use it otherwise use mass state "
+"plane meters **/\n"
+"if (!empty( $_REQUEST['srid'] ) && is_numeric( $_REQUEST['srid']) ){\n"
+"                $input_srid = intval($_REQUEST['srid']);\n"
+"}\n"
+"else { $input_srid = 26986; }\n"
+"/** The set bytea_output may be needed for PostgreSQL 9.0+, but not for 8.4 "
+"**/\n"
+"$sql = \"set bytea_output='escape';\n"
+"SELECT ST_AsPNG(ST_Transform(\n"
+"                        ST_AddBand(ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                ,$input_srid) ) As new_rast\n"
+" FROM aerials.boston \n"
+"        WHERE \n"
+"         ST_Intersects(rast, ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, "
+"-71.1210, 42.218,4326),26986) )\"; \n"
+"$result = pg_query($sql);\n"
+"$row = pg_fetch_row($result);\n"
+"pg_free_result($result);\n"
+"if ($row === false) return;\n"
+"echo pg_unescape_bytea($row[0]);\n"
+"?>]]>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:462
+#, no-c-format
+msgid ""
+"ASP.NET C# Example Outputting using ST_AsPNG in concert with other raster "
+"functions"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:463
+#, no-c-format
+msgid ""
+"In this section, we'll demonstrate how to use Npgsql PostgreSQL .NET driver "
+"and the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output "
+"band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
+"an img src html tag."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:466
+#, no-c-format
+msgid ""
+"You will need the npgsql .NET PostgreSQL driver for this exercise which you "
+"can get the latest of from <ulink url=\"http://npgsql.projects.postgresql."
+"org/\">http://npgsql.projects.postgresql.org/</ulink>. Just download the "
+"latest and drop into your ASP.NET bin folder and you'll be good to go."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:470
+#, no-c-format
+msgid ""
+"This is same example as <xref linkend=\"RT_PHP_Output\"/> except implemented "
+"in C#."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:471
+#, no-c-format
+msgid ""
+"You would call the below using <programlisting>http://mywebserver/TestRaster."
+"ashx?srid=2249</programlisting> to get the raster image in Massachusetts "
+"state plane feet."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:472
+#, no-c-format
+msgid ""
+"-- web.config connection string section --\n"
+"<![CDATA[<connectionStrings>\n"
+"    <add name=\"DSN\" \n"
+"        connectionString=\"server=localhost;database=mydb;Port=5432;User "
+"Id=myuser;password=mypwd\"/>\n"
+"</connectionStrings>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:473
+#, no-c-format
+msgid ""
+"// Code for TestRaster.ashx\n"
+"<![CDATA[<%@ WebHandler Language=\"C#\" Class=\"TestRaster\" %>\n"
+"using System;\n"
+"using System.Data;\n"
+"using System.Web;\n"
+"using Npgsql;\n"
+"\n"
+"public class TestRaster : IHttpHandler\n"
+"{\n"
+"        public void ProcessRequest(HttpContext context)\n"
+"        {\n"
+"                \n"
+"                context.Response.ContentType = \"image/png\";\n"
+"                context.Response.BinaryWrite(GetResults(context));\n"
+"                \n"
+"        }\n"
+"\n"
+"        public bool IsReusable {\n"
+"                get { return false; }\n"
+"        }\n"
+"\n"
+"        public byte[] GetResults(HttpContext context)\n"
+"        {\n"
+"                byte[] result = null;\n"
+"                NpgsqlCommand command;\n"
+"                string sql = null;\n"
+"                int input_srid = 26986;\n"
+"        try {\n"
+"                    using (NpgsqlConnection conn = new "
+"NpgsqlConnection(System.Configuration.ConfigurationManager."
+"ConnectionStrings[\"DSN\"].ConnectionString)) {\n"
+"                            conn.Open();\n"
+"\n"
+"                if (context.Request[\"srid\"] != null)\n"
+"                {\n"
+"                    input_srid = Convert.ToInt32(context.Request[\"srid"
+"\"]);  \n"
+"                }\n"
+"                sql = @\"SELECT ST_AsPNG(\n"
+"                            ST_Transform(\n"
+"                                        ST_AddBand(\n"
+"                                ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                                    ,:input_srid) ) As "
+"new_rast \n"
+"                        FROM aerials.boston \n"
+"                                WHERE \n"
+"                                    ST_Intersects(rast, \n"
+"                                    ST_Transform(ST_MakeEnvelope(-71.1217, "
+"42.227, -71.1210, 42.218,4326),26986) )\";\n"
+"                            command = new NpgsqlCommand(sql, conn);\n"
+"                command.Parameters.Add(new NpgsqlParameter(\"input_srid\", "
+"input_srid));\n"
+"           \n"
+"                        \n"
+"                            result = (byte[]) command.ExecuteScalar();\n"
+"                conn.Close();\n"
+"                        }\n"
+"\n"
+"                }\n"
+"        catch (Exception ex)\n"
+"        {\n"
+"            result = null;\n"
+"            context.Response.Write(ex.Message.Trim());\n"
+"        }\n"
+"                return result;\n"
+"        }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:476
+#, no-c-format
+msgid "Java console app that outputs raster query as Image file"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:477
+#, no-c-format
+msgid ""
+"This is a simple java console app that takes a query that returns one image "
+"and outputs to specified file."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:478
+#, no-c-format
+msgid ""
+"You can download the latest PostgreSQL JDBC drivers from <ulink url=\"http://"
+"jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/download."
+"html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:479
+#, no-c-format
+msgid "You can compile the following code using a command something like:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:480
+#, no-c-format
+msgid ""
+"set env CLASSPATH .:..\\postgresql-9.0-801.jdbc4.jar\n"
+"javac SaveQueryImage.java\n"
+"jar cfm SaveQueryImage.jar Manifest.txt *.class"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:481
+#, no-c-format
+msgid "And call it from the command-line with something like"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:482
+#, no-c-format
+msgid ""
+"java -jar SaveQueryImage.jar \"SELECT "
+"ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10, 'quad_segs=2'),150, 150, "
+"'8BUI',100));\" \"test.png\""
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:483
+#, no-c-format
+msgid ""
+"-- Manifest.txt --\n"
+"<![CDATA[Class-Path: postgresql-9.0-801.jdbc4.jar\n"
+"Main-Class: SaveQueryImage]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:484
+#, no-c-format
+msgid ""
+"// Code for SaveQueryImage.java\n"
+"<![CDATA[import java.sql.Connection;\n"
+"import java.sql.SQLException;\n"
+"import java.sql.PreparedStatement;\n"
+"import java.sql.ResultSet;\n"
+"import java.io.*;\n"
+"\n"
+"public class SaveQueryImage {\n"
+"  public static void main(String[] argv) {\n"
+"      System.out.println(\"Checking if Driver is registered with "
+"DriverManager.\");\n"
+"      \n"
+"      try {\n"
+"        //java.sql.DriverManager.registerDriver (new org.postgresql."
+"Driver());\n"
+"        Class.forName(\"org.postgresql.Driver\");\n"
+"      } \n"
+"      catch (ClassNotFoundException cnfe) {\n"
+"        System.out.println(\"Couldn't find the driver!\");\n"
+"        cnfe.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }\n"
+"      \n"
+"      Connection conn = null;\n"
+"      \n"
+"      try {\n"
+"        conn = DriverManager.getConnection(\"jdbc:postgresql://"
+"localhost:5432/mydb\",\"myuser\", \"mypwd\");\n"
+"        conn.setAutoCommit(false);\n"
+"\n"
+"        PreparedStatement sGetImg = conn.prepareStatement(argv[0]);\n"
+"                \n"
+"        ResultSet rs = sGetImg.executeQuery();\n"
+"                \n"
+"                FileOutputStream fout;\n"
+"                try\n"
+"                {\n"
+"                        rs.next();\n"
+"                        /** Output to file name requested by user **/\n"
+"                        fout = new FileOutputStream(new File(argv[1]) );\n"
+"                        fout.write(rs.getBytes(1));\n"
+"                        fout.close();\n"
+"                }\n"
+"                catch(Exception e)\n"
+"                {\n"
+"                        System.out.println(\"Can't create file\");\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"                \n"
+"        rs.close();\n"
+"                sGetImg.close();\n"
+"        conn.close();\n"
+"      } \n"
+"      catch (SQLException se) {\n"
+"        System.out.println(\"Couldn't connect: print out a stack trace and "
+"exit.\");\n"
+"        se.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }   \n"
+"  }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:488
+#, no-c-format
+msgid "Use PLPython to dump out images via SQL"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:489
+#, no-c-format
+msgid ""
+"This is a plpython stored function that creates a file in the server "
+"directory for each record. Requires you have plpython installed. Should work "
+"fine with both plpythonu and plpython3u."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:491
+#, no-c-format
+msgid ""
+"<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, "
+"param_filepath text)\n"
+"RETURNS text\n"
+"AS $$\n"
+"f = open(param_filepath, 'wb+')\n"
+"f.write(param_bytes)\n"
+"return param_filepath\n"
+"$$ LANGUAGE plpythonu;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:492
+#, no-c-format
+msgid ""
+"--write out 5 images to the PostgreSQL server in varying sizes\n"
+"-- note the postgresql daemon account needs to have write access to folder\n"
+"-- this echos back the file names created;\n"
+" SELECT write_file(ST_AsPNG(\n"
+"        ST_AsRaster(ST_Buffer(ST_Point(1,5),j*5, 'quad_segs=2'),150*j, "
+"150*j, '8BUI',100)),\n"
+"         'C:/temp/slices'|| j || '.png')\n"
+"         FROM generate_series(1,5) As j;\n"
+"         \n"
+"     write_file\n"
+"---------------------\n"
+" C:/temp/slices1.png\n"
+" C:/temp/slices2.png\n"
+" C:/temp/slices3.png\n"
+" C:/temp/slices4.png\n"
+" C:/temp/slices5.png"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:495
+#, no-c-format
+msgid "Outputting Rasters with PSQL"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:496
+#, no-c-format
+msgid ""
+"Sadly PSQL doesn't have easy to use built-in functionality for outputting "
+"binaries. This is a bit of a hack and based on one of the suggestions "
+"outlined in <ulink url=\"http://people.planetpostgresql.org/andrew/index."
+"php?/archives/196-Clever-trick-challenge.html\">Clever Trick Challenge -- "
+"Outputting bytea with psql</ulink> that piggy backs on PostgreSQL somewhat "
+"legacy large object support. To use first launch your psql commandline "
+"connected to your database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:499
+#, no-c-format
+msgid ""
+"Unlike the python approach, this approach creates the file on your local "
+"computer."
+msgstr ""
+
+#. Tag: screen
+#: using_raster_dataman.xml:500
+#, no-c-format
+msgid ""
+"SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes\n"
+" FROM \n"
+" ( VALUES (lo_create(0), \n"
+"   ST_AsPNG( (SELECT rast FROM aerials.boston WHERE rid=1) ) \n"
+"  ) ) As v(oid,png);\n"
+"-- you'll get an output something like --\n"
+"   oid   | num_bytes\n"
+"---------+-----------\n"
+" 2630819 |     74860\n"
+" \n"
+"-- next note the oid and do this replacing the c:/test.png to file path "
+"location\n"
+"-- on your local computer\n"
+" \\lo_export 2630819 'C:/temp/aerial_samp.png'\n"
+" \n"
+"-- this deletes the file from large object storage on db\n"
+"SELECT lo_unlink(2630819);"
+msgstr ""
diff --git a/doc/po/it_IT/extras.xml.po b/doc/po/it_IT/extras.xml.po
index 475a773..7b2916c 100644
--- a/doc/po/it_IT/extras.xml.po
+++ b/doc/po/it_IT/extras.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -14,3 +14,25 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: extras.xml:3
+#, no-c-format
+msgid "PostGIS Extras"
+msgstr ""
+
+#. Tag: para
+#: extras.xml:5
+#, no-c-format
+msgid ""
+"This chapter documents features found in the extras folder of the PostGIS "
+"source tarballs and source repository. These are not always packaged with "
+"PostGIS binary releases, but are usually plpgsql based or standard shell "
+"scripts that can be run as is."
+msgstr ""
+
+#. Tag: chapter
+#: extras.xml:6
+#, no-c-format
+msgid "&extras_tigergeocoder;"
+msgstr ""
diff --git a/doc/po/it_IT/extras_address_standardizer.xml.po b/doc/po/it_IT/extras_address_standardizer.xml.po
new file mode 100644
index 0000000..53f7946
--- /dev/null
+++ b/doc/po/it_IT/extras_address_standardizer.xml.po
@@ -0,0 +1,851 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: extras_address_standardizer.xml:3
+#, no-c-format
+msgid "Address Standardizer"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:4
+#, no-c-format
+msgid ""
+"This is a fork of the <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-11."
+"html\">PAGC standardizer</ulink> (original code for this portion was <ulink "
+"url=\"http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/"
+"postgresql\">PAGC PostgreSQL Address Standardizer</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:5
+#, no-c-format
+msgid ""
+"The address standardizer is a single line address parser that takes an input "
+"address and normalizes it based on a set of rules stored in a table and "
+"helper lex and gaz tables."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:6
+#, no-c-format
+msgid ""
+"The code is built into a single postgresql extension library called "
+"<code>address_standardizer</code> which can be installed with <code>CREATE "
+"EXTENSION address_standardizer;</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:7
+#, no-c-format
+msgid ""
+"The code for this extension can be found in the PostGIS <filename>extensions/"
+"address_standardizer</filename> and is currently self-contained."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:8
+#, no-c-format
+msgid ""
+"For installation instructions refer to: <xref linkend="
+"\"installing_pagc_address_standardizer\"/>."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:9
+#, no-c-format
+msgid "How the Parser Works"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:10
+#, no-c-format
+msgid ""
+"The parser works from right to left looking first at the macro elements for "
+"postcode, state/province, city, and then looks micro elements to determine "
+"if we are dealing with a house number street or intersection or landmark. It "
+"currently does not look for a country code or name, but that could be "
+"introduced in the future."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:17
+#, no-c-format
+msgid "Country code"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:18
+#, no-c-format
+msgid ""
+"Assumed to be US or CA based on: postcode as US or Canada state/province as "
+"US or Canada else US"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:21
+#, no-c-format
+msgid "Postcode/zipcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:22
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c and are relatively simple to make "
+"changes to if needed."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:27
+#, no-c-format
+msgid "State/province"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:28
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c but could get moved into includes in "
+"the future for easier maintenance."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:37
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by Address "
+"Standardizer extension. Note we describe the casting behavior of these which "
+"is very important especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:42
+#, no-c-format
+msgid "Address Standardizer Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:45
+#, no-c-format
+msgid "stdaddr"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:46
+#, no-c-format
+msgid ""
+"A composite type that consists of the elements of an address. This is the "
+"return type for <varname>standardize_address</varname> function."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:49 extras_address_standardizer.xml:152
+#: extras_address_standardizer.xml:214 extras_address_standardizer.xml:256
+#: extras_address_standardizer.xml:314 extras_address_standardizer.xml:369
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:50
+#, no-c-format
+msgid ""
+"A composite type that consists of elements of an address. This is the return "
+"type for <xref linkend=\"standardize_address\"/> function. Some descriptions "
+"for elements are borrowed from <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#ss12.1\">PAGC Postal Attributes</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:51
+#, no-c-format
+msgid ""
+"The token numbers denote the reference number in the <varname>rules</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:52 extras_address_standardizer.xml:321
+#: extras_address_standardizer.xml:375
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:55
+#, no-c-format
+msgid "building"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:57
+#, no-c-format
+msgid ""
+"is text (token number <code>0</code>): Refers to building number or name. "
+"Unparsed building identifiers and types. Generally blank for most addresses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:60
+#, no-c-format
+msgid "house_num"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:62
+#, no-c-format
+msgid ""
+"is a text (token number <code>1</code>): This is the street number on a "
+"street. Example <emphasis>75</emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:65
+#, no-c-format
+msgid "predir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:66
+#, no-c-format
+msgid ""
+"is text (token number <code>2</code>): STREET NAME PRE-DIRECTIONAL such as "
+"North, South, East, West etc."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:68
+#, no-c-format
+msgid "qual"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:70
+#, no-c-format
+msgid ""
+"is text (token number <code>3</code>): STREET NAME PRE-MODIFIER Example "
+"<emphasis>OLD</emphasis> in <code>3715 OLD HIGHWAY 99</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:73
+#, no-c-format
+msgid "pretype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:75
+#, no-c-format
+msgid "is text (token number <code>4</code>): STREET PREFIX TYPE"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:78
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:80
+#, no-c-format
+msgid "is text (token number <code>5</code>): STREET NAME"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:83
+#, no-c-format
+msgid "suftype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:85
+#, no-c-format
+msgid ""
+"is text (token number <code>6</code>): STREET POST TYPE e.g. St, Ave, Cir. A "
+"street type following the root street name. Example <emphasis>STREET</"
+"emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:88
+#, no-c-format
+msgid "sufdir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:90
+#, no-c-format
+msgid ""
+"is text (token number <code>7</code>): STREET POST-DIRECTIONAL A directional "
+"modifier that follows the street name.. Example <emphasis>WEST</emphasis> in "
+"<code>3715 TENTH AVENUE WEST</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:93
+#, no-c-format
+msgid "ruralroute"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:95
+#, no-c-format
+msgid ""
+"is text (token number <code>8</code>): RURAL ROUTE . Example <emphasis>8</"
+"emphasis> in <code>RR 7</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:98
+#, no-c-format
+msgid "extra"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:100
+#, no-c-format
+msgid "is text: Extra information like Floor number."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:103
+#, no-c-format
+msgid "city"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:105
+#, no-c-format
+msgid "is text (token number <code>10</code>): Example Boston."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:108
+#, no-c-format
+msgid "state"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:110
+#, no-c-format
+msgid ""
+"is text (token number <code>11</code>): Example <code>MASSACHUSETTS</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:113
+#, no-c-format
+msgid "country"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:115
+#, no-c-format
+msgid "is text (token number <code>12</code>): Example <code>USA</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:118
+#, no-c-format
+msgid "postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:120
+#, no-c-format
+msgid ""
+"is text POSTAL CODE (ZIP CODE) (token number <code>13</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:123
+#, no-c-format
+msgid "<term>box</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:125
+#, no-c-format
+msgid ""
+"is text POSTAL BOX NUMBER (token number <code>14 and 15</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:128
+#, no-c-format
+msgid "unit"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:130
+#, no-c-format
+msgid ""
+"is text Apartment number or Suite Number (token number <code>17</code>): "
+"Example <emphasis>3B</emphasis> in <code>APT 3B</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:141
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL table formats used by the "
+"address_standardizer for normalizing addresses. Note that these tables do "
+"not need to be named the same as what is referenced here. You can have "
+"different lex, gaz, rules tables for each country for example or for your "
+"custom geocoder. The names of these tables get passed into the address "
+"standardizer functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:145
+#, no-c-format
+msgid "Address Standardizer Tables"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:148
+#, no-c-format
+msgid "rules table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:149
+#, no-c-format
+msgid ""
+"The rules table contains a set of rules that maps address input sequence "
+"tokens to standardized output sequence"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:153
+#, no-c-format
+msgid ""
+"A rules table must have at least the following columns, though you are "
+"allowed to add more for your own uses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:157 extras_address_standardizer.xml:220
+#: extras_address_standardizer.xml:262
+#, no-c-format
+msgid "<term>id</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:159 extras_address_standardizer.xml:222
+#: extras_address_standardizer.xml:264
+#, no-c-format
+msgid "Primary key of table"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:162
+#, no-c-format
+msgid "rule"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:164
+#, no-c-format
+msgid ""
+"text field denoting the rule. Details at <ulink url=\"http://www.pagcgeo.org/"
+"docs/html/pagc-12.html#--r-rec--\">PAGC Address Standardizer Rule records</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:165
+#, no-c-format
+msgid ""
+"A rule consists of a set of non-negative integers representing input tokens, "
+"terminated by a -1, followed by an equal number of non-negative integers "
+"representing postal attributes, terminated by a -1, followed by an integer "
+"representing a rule type, followed by an integer representing the rank of "
+"the rule. The rules are ranked from 0 (lowest) to 17 (highest)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:166
+#, no-c-format
+msgid ""
+"So for example the rule <code>2 0 2 22 3 -1 5 5 6 7 3 -1 2 6</code> maps to "
+"sequence of tokens <emphasis>TYPE NUMBER TYPE DIRECT QUALIF</emphasis> to "
+"the output sequence <emphasis>STREET STREET SUFTYP SUFDIR QUALIF</emphasis>. "
+"The rule is an ARC_C rule of rank 6."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:171
+#, no-c-format
+msgid "Each rule has a rule type which is denoted by one of following:"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:174
+#, no-c-format
+msgid "MACRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:176
+#, no-c-format
+msgid "(token number = \"0\"). The class of rules for parsing MACRO clauses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:180
+#, no-c-format
+msgid "MICRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:182
+#, no-c-format
+msgid ""
+"(token number = \"1\"). The class of rules for parsing full MICRO clauses "
+"(ie ARC_C plus CIVIC_C). These rules are not used in the build phase."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:186
+#, no-c-format
+msgid "ARC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:188
+#, no-c-format
+msgid ""
+"(token number = \"2\"). The class of rules for parsing MICRO clauses, "
+"excluding the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:192
+#, no-c-format
+msgid "CIVIC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:194
+#, no-c-format
+msgid ""
+"(token number = \"3\"). The class of rules for parsing the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:198
+#, no-c-format
+msgid "EXTRA_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:200
+#, no-c-format
+msgid ""
+"(token number = \"4\"). The class of rules for parsing EXTRA attributes - "
+"attributes excluded from geocoding. These rules are not used in the build "
+"phase."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:210
+#, no-c-format
+msgid "lex table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:211
+#, no-c-format
+msgid ""
+"A lex table is used to classify alphanumeric input and associate that input "
+"with (a) input tokens ( See Input Tokens) and (b) standardized "
+"representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:215
+#, no-c-format
+msgid ""
+"A lex (short for lexicon) table is used to classify alphanumeric input and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. Things you will find in these tables are <code>ONE</code> "
+"mapped to stdworkd: <code>1</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:217
+#, no-c-format
+msgid "A lex has at least the following columns in the table. You may add"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:225 extras_address_standardizer.xml:267
+#, no-c-format
+msgid "<term>seq</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:227 extras_address_standardizer.xml:269
+#, no-c-format
+msgid "integer: definition number?"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:231 extras_address_standardizer.xml:272
+#, no-c-format
+msgid "word"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:233 extras_address_standardizer.xml:274
+#, no-c-format
+msgid "text: the input word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:236 extras_address_standardizer.xml:277
+#, no-c-format
+msgid "stdword"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:238 extras_address_standardizer.xml:279
+#, no-c-format
+msgid "text: the standardized replacement word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:241 extras_address_standardizer.xml:282
+#, no-c-format
+msgid "token"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:243 extras_address_standardizer.xml:284
+#, no-c-format
+msgid ""
+"integer: the kind of word it is. Only if it is used in this context will it "
+"be replaced. Refer to <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12."
+"html#--i-tok--\">PAGC Tokens</ulink>."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:252
+#, no-c-format
+msgid "gaz table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:253
+#, no-c-format
+msgid ""
+"A gaz table is used to standardize place names and associate that input with "
+"(a) input tokens ( See Input Tokens) and (b) standardized representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:257
+#, no-c-format
+msgid ""
+"A gaz (short for gazeteer) table is used to classify place names and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. For example if you are in US, you may load these with State "
+"Names and associated abbreviations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:259
+#, no-c-format
+msgid ""
+"A gaz table has at least the following columns in the table. You may add "
+"more columns if you wish for your own purposes."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:295
+#, no-c-format
+msgid "Address Standardizer Functions"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:298
+#, no-c-format
+msgid "parse_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:300
+#, no-c-format
+msgid "Takes a 1 line address and breaks into parts"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_address_standardizer.xml:305
+#, no-c-format
+msgid ""
+"<funcdef>record <function>parse_address</function></funcdef> "
+"<paramdef><type>text </type> <parameter>address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:316
+#, no-c-format
+msgid ""
+"Returns takes as input an address, and returns a record output consisting of "
+"fields <emphasis>num</emphasis>, <emphasis>street</emphasis>, "
+"<emphasis>street2</emphasis>, <emphasis>address1</emphasis>, <emphasis>city</"
+"emphasis>, <emphasis>state</emphasis>, <emphasis>zip</emphasis>, "
+"<emphasis>zipplus</emphasis>, <emphasis>country</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:320 extras_address_standardizer.xml:374
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:326 extras_address_standardizer.xml:380
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:328
+#, no-c-format
+msgid ""
+"SELECT num, street, city, zip, zipplus FROM parse_address('1 Devonshire "
+"Place, Boston, MA 02109-1234');\n"
+" num |      street      |  city  |  zip  | zipplus\n"
+"-----+------------------+--------+-------+---------\n"
+" 1   | Devonshire Place | Boston | 02109 | 1234"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:334 extras_address_standardizer.xml:391
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:342
+#, no-c-format
+msgid "standardize_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:344
+#, no-c-format
+msgid ""
+"Returns an stdaddr form of an input address utilizing lex, gaz, and rule "
+"tables."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_address_standardizer.xml:348
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>stdaddr <function>standardize_address</function></"
+"funcdef> <paramdef><type>text </type> <parameter>lextab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>gaztab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rultab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>address</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>stdaddr "
+"<function>standardize_address</function></funcdef> <paramdef><type>text </"
+"type> <parameter>lextab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>gaztab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rultab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>micro</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>macro</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:371
+#, no-c-format
+msgid ""
+"Returns an <xref linkend=\"stdaddr\"/> form of an input address utilizing "
+"<xref linkend=\"lextab\"/> table name, <xref linkend=\"gaztab\"/>, and <xref "
+"linkend=\"rulestab\"/> table names and an address."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:382
+#, no-c-format
+msgid ""
+"SELECT *  FROM standardize_address('tiger.pagc_lex', \n"
+"                           'tiger.pagc_gaz', 'tiger.pagc_rules', 'One "
+"Devonshire Place, PH 301, Boston, MA 02109-1234');"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:384
+#, no-c-format
+msgid ""
+"Make easier to read we'll dump output using hstore extension CREATE "
+"EXTENSION hstore; you need to install"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:385
+#, no-c-format
+msgid ""
+"SELECT (each(hstore(p))).*  \n"
+" FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz', \n"
+"   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA "
+"02109-1234') As p;"
+msgstr ""
+
+#. Tag: screen
+#: extras_address_standardizer.xml:386
+#, no-c-format
+msgid ""
+"key     |      value\n"
+"------------+-----------------\n"
+" box        |\n"
+" city       | BOSTON\n"
+" name       | DEVONSHIRE\n"
+" qual       |\n"
+" unit       | # PENTHOUSE 301\n"
+" extra      |\n"
+" state      | MA\n"
+" predir     |\n"
+" sufdir     |\n"
+" country    | USA\n"
+" pretype    |\n"
+" suftype    | PL\n"
+" building   |\n"
+" postcode   | 02109\n"
+" house_num  | 1\n"
+" ruralroute |\n"
+"(16 rows)"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"rulestab\"/>, <xref linkend=\"lextab\"/>, <xref linkend="
+"\"gaztab\"/>, <xref linkend=\"Pagc_Normalize_Address\"/>"
+msgstr ""
diff --git a/doc/po/it_IT/extras_tigergeocoder.xml.po b/doc/po/it_IT/extras_tigergeocoder.xml.po
index 4084fcd..f23a48d 100644
--- a/doc/po/it_IT/extras_tigergeocoder.xml.po
+++ b/doc/po/it_IT/extras_tigergeocoder.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -22,24 +22,22 @@ msgid ""
 "A plpgsql based geocoder written to work with the <ulink url=\"http://www."
 "census.gov/geo/www/tiger/\">TIGER (Topologically Integrated Geographic "
 "Encoding and Referencing system ) / Line and Master Address database export</"
-"ulink> released by the US Census Bureau. In versions prior to 2008 the TIGER "
-"files were released in ASCII format. The older geocoder used to work with "
-"that format and is available in PostGIS source 1.5 and below in "
-"<varname>extras/tiger_geocoder/tiger_2006andbefore</varname>."
+"ulink> released by the US Census Bureau."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:8
+#: extras_tigergeocoder.xml:7
 #, no-c-format
 msgid ""
 "There are four components to the geocoder: the data loader functions, the "
 "address normalizer, the address geocoder, and the reverse geocoder. The "
-"latest version updated to use the TIGER 2011 census data is located in the "
-"<varname>extras/tiger_geocoder/tiger_2011</varname> folder."
+"latest version updated to use the TIGER 2011 and 2012 census data is located "
+"in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder. It "
+"defaults to downloading and installing TIGER 2012 files."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:9
+#: extras_tigergeocoder.xml:8
 #, no-c-format
 msgid ""
 "Although it is designed specifically for the US, a lot of the concepts and "
@@ -48,7 +46,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:10
+#: extras_tigergeocoder.xml:9
 #, no-c-format
 msgid ""
 "The script builds a schema called <varname>tiger</varname> to house all the "
@@ -58,7 +56,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:11
+#: extras_tigergeocoder.xml:10
 #, no-c-format
 msgid ""
 "Another schema called <varname>tiger_data</varname> is also created which "
@@ -72,7 +70,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:13
+#: extras_tigergeocoder.xml:12
 #, no-c-format
 msgid ""
 "All the geocode functions only reference the base tables, so there is no "
@@ -83,29 +81,53 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:17
+#: extras_tigergeocoder.xml:16
 #, no-c-format
 msgid ""
 "If you are using tiger geocoder (tiger_2010), you can upgrade the scripts "
 "using the accompanying upgrade_geocoder.bat / .sh scripts in tiger_2011. One "
-"major change between <varname>tiger_2010</varname> and <varname>tiger_2011</"
-"varname> is that the county and <varname>county</varname> and "
+"major change between <varname>tiger_2010</varname> and <varname>tiger_2011/"
+"tiger_2012</varname> is that the county and <varname>county</varname> and "
 "<varname>state</varname> tables are no longer broken out by state. We'll be "
 "refining the upgrade scripts until release. If you have data from tiger_2010 "
-"and want replace with tiger_2011 refer to <xref linkend="
+"and want replace with tiger_2012 refer to <xref linkend="
 "\"upgrade_tiger_geocoder\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:24
+#: extras_tigergeocoder.xml:23
 #, no-c-format
-msgid "Design:"
+msgid ""
+"New in PostGIS 2.1.0 release is ability to install tiger geocoder with "
+"PostgreSQL extension model if you are running PostgreSQL 9.1+. Refer to "
+"<xref linkend=\"install_tiger_geocoder_extension\"/> for details."
 msgstr ""
 
 #. Tag: para
 #: extras_tigergeocoder.xml:25
 #, no-c-format
 msgid ""
+"Also new in PostGIS 2.1.0 is integration with pagc address standardizer "
+"PostgreSQL extension which source can be downloaded from <ulink url=\"http://"
+"sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql\">PAGC "
+"PostgreSQL address standardizer extension</ulink> and after install and "
+"install of the library in your PostGIS database, you can use the <xref "
+"linkend=\"Pagc_Normalize_Address\"/> function as a drop in replacement for "
+"in-built <xref linkend=\"Normalize_Address\"/>. Refer to <xref linkend="
+"\"installing_pagc_address_standardizer\"/> for compile and installation "
+"instructions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:29
+#, no-c-format
+msgid "Design:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:30
+#, no-c-format
+msgid ""
 "The goal of this project is to build a fully functional geocoder that can "
 "process an arbitrary United States address string and using normalized TIGER "
 "census data, produce a point geometry and rating reflecting the location of "
@@ -114,7 +136,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:27
+#: extras_tigergeocoder.xml:32
 #, no-c-format
 msgid ""
 "The <varname>reverse_geocode</varname> function, introduced in PostGIS 2.0.0 "
@@ -123,7 +145,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:28
+#: extras_tigergeocoder.xml:33
 #, no-c-format
 msgid ""
 "The geocoder should be simple for anyone familiar with PostGIS to install "
@@ -132,7 +154,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:29
+#: extras_tigergeocoder.xml:34
 #, no-c-format
 msgid ""
 "It should be robust enough to function properly despite formatting and "
@@ -140,7 +162,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:30
+#: extras_tigergeocoder.xml:35
 #, no-c-format
 msgid ""
 "It should be extensible enough to be used with future data updates, or "
@@ -148,7 +170,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:32
+#: extras_tigergeocoder.xml:37
 #, no-c-format
 msgid ""
 "The <varname>tiger</varname> schema must be added to the database search "
@@ -156,13 +178,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:36
+#: extras_tigergeocoder.xml:41
 #, no-c-format
 msgid "Tiger Geocoder"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:38
+#: extras_tigergeocoder.xml:43
 #, no-c-format
 msgid ""
 "There are a couple other open source geocoders for PostGIS, that unlike "
@@ -170,7 +192,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:40
+#: extras_tigergeocoder.xml:45
 #, no-c-format
 msgid ""
 "<ulink url=\"http://wiki.openstreetmap.org/wiki/Nominatim\">Nominatim</"
@@ -184,7 +206,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:43
+#: extras_tigergeocoder.xml:48
 #, no-c-format
 msgid ""
 "<ulink url=\"http://www.gisgraphy.com/\">GIS Graphy</ulink> also utilizes "
@@ -196,13 +218,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:48
+#: extras_tigergeocoder.xml:53
 #, no-c-format
 msgid "Drop_Indexes_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:50
+#: extras_tigergeocoder.xml:55
 #, no-c-format
 msgid ""
 "<refpurpose>Generates a script that drops all non-primary key and non-unique "
@@ -211,7 +233,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:55
+#: extras_tigergeocoder.xml:60
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef> "
@@ -220,21 +242,21 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:63 extras_tigergeocoder.xml:106
-#: extras_tigergeocoder.xml:148 extras_tigergeocoder.xml:204
-#: extras_tigergeocoder.xml:266 extras_tigergeocoder.xml:311
-#: extras_tigergeocoder.xml:351 extras_tigergeocoder.xml:390
-#: extras_tigergeocoder.xml:435 extras_tigergeocoder.xml:493
-#: extras_tigergeocoder.xml:550 extras_tigergeocoder.xml:605
-#: extras_tigergeocoder.xml:650 extras_tigergeocoder.xml:728
-#: extras_tigergeocoder.xml:775 extras_tigergeocoder.xml:847
-#: extras_tigergeocoder.xml:912
+#: extras_tigergeocoder.xml:68 extras_tigergeocoder.xml:110
+#: extras_tigergeocoder.xml:152 extras_tigergeocoder.xml:208
+#: extras_tigergeocoder.xml:270 extras_tigergeocoder.xml:315
+#: extras_tigergeocoder.xml:355 extras_tigergeocoder.xml:394
+#: extras_tigergeocoder.xml:439 extras_tigergeocoder.xml:497
+#: extras_tigergeocoder.xml:554 extras_tigergeocoder.xml:609
+#: extras_tigergeocoder.xml:654 extras_tigergeocoder.xml:733
+#: extras_tigergeocoder.xml:818 extras_tigergeocoder.xml:865
+#: extras_tigergeocoder.xml:937 extras_tigergeocoder.xml:1002
 #, no-c-format
 msgid "Description"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:65
+#: extras_tigergeocoder.xml:70
 #, no-c-format
 msgid ""
 "<para>Generates a script that drops all non-primary key and non-unique "
@@ -243,7 +265,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:66
+#: extras_tigergeocoder.xml:71
 #, no-c-format
 msgid ""
 "This is useful for minimizing index bloat that may confuse the query planner "
@@ -252,28 +274,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:69 extras_tigergeocoder.xml:154
-#: extras_tigergeocoder.xml:273 extras_tigergeocoder.xml:355
-#: extras_tigergeocoder.xml:398 extras_tigergeocoder.xml:453
-#: extras_tigergeocoder.xml:613 extras_tigergeocoder.xml:801
-#: extras_tigergeocoder.xml:873
+#: extras_tigergeocoder.xml:74 extras_tigergeocoder.xml:158
+#: extras_tigergeocoder.xml:277 extras_tigergeocoder.xml:359
+#: extras_tigergeocoder.xml:402 extras_tigergeocoder.xml:457
+#: extras_tigergeocoder.xml:617 extras_tigergeocoder.xml:891
+#: extras_tigergeocoder.xml:963
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:76 extras_tigergeocoder.xml:118
-#: extras_tigergeocoder.xml:161 extras_tigergeocoder.xml:405
-#: extras_tigergeocoder.xml:460 extras_tigergeocoder.xml:518
-#: extras_tigergeocoder.xml:573 extras_tigergeocoder.xml:620
-#: extras_tigergeocoder.xml:696 extras_tigergeocoder.xml:738
-#: extras_tigergeocoder.xml:806
+#: extras_tigergeocoder.xml:81 extras_tigergeocoder.xml:122
+#: extras_tigergeocoder.xml:165 extras_tigergeocoder.xml:409
+#: extras_tigergeocoder.xml:464 extras_tigergeocoder.xml:522
+#: extras_tigergeocoder.xml:577 extras_tigergeocoder.xml:624
+#: extras_tigergeocoder.xml:700 extras_tigergeocoder.xml:784
+#: extras_tigergeocoder.xml:828 extras_tigergeocoder.xml:896
 #, no-c-format
 msgid "Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:77
+#: extras_tigergeocoder.xml:82
 #, no-c-format
 msgid ""
 "SELECT drop_indexes_generate_script() As actionsql;\n"
@@ -313,33 +335,33 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:83 extras_tigergeocoder.xml:125
-#: extras_tigergeocoder.xml:168 extras_tigergeocoder.xml:235
-#: extras_tigergeocoder.xml:289 extras_tigergeocoder.xml:328
-#: extras_tigergeocoder.xml:368 extras_tigergeocoder.xml:412
-#: extras_tigergeocoder.xml:470 extras_tigergeocoder.xml:528
-#: extras_tigergeocoder.xml:582 extras_tigergeocoder.xml:627
-#: extras_tigergeocoder.xml:706 extras_tigergeocoder.xml:749
-#: extras_tigergeocoder.xml:821 extras_tigergeocoder.xml:889
-#: extras_tigergeocoder.xml:929
+#: extras_tigergeocoder.xml:88 extras_tigergeocoder.xml:129
+#: extras_tigergeocoder.xml:172 extras_tigergeocoder.xml:239
+#: extras_tigergeocoder.xml:293 extras_tigergeocoder.xml:332
+#: extras_tigergeocoder.xml:372 extras_tigergeocoder.xml:416
+#: extras_tigergeocoder.xml:474 extras_tigergeocoder.xml:532
+#: extras_tigergeocoder.xml:586 extras_tigergeocoder.xml:631
+#: extras_tigergeocoder.xml:710 extras_tigergeocoder.xml:796
+#: extras_tigergeocoder.xml:839 extras_tigergeocoder.xml:911
+#: extras_tigergeocoder.xml:979 extras_tigergeocoder.xml:1019
 #, no-c-format
 msgid "See Also"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:84 extras_tigergeocoder.xml:413
+#: extras_tigergeocoder.xml:89 extras_tigergeocoder.xml:417
 #, no-c-format
 msgid ", <xref linkend=\"Missing_Indexes_Generate_Script\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:90
+#: extras_tigergeocoder.xml:95
 #, no-c-format
 msgid "Drop_Nation_Tables_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:92
+#: extras_tigergeocoder.xml:97
 #, no-c-format
 msgid ""
 "Generates a script that drops all tables in the specified schema that start "
@@ -348,17 +370,16 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:97 extras_tigergeocoder.xml:139
+#: extras_tigergeocoder.xml:102
 #, no-c-format
 msgid ""
-"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
-"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<funcdef>text <function>Drop_Nation_Tables_Generate_Script</function></"
+"funcdef> <paramdef choice=\"opt\"><type>text </type> "
 "<parameter>param_schema=tiger_data</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:108
+#: extras_tigergeocoder.xml:112
 #, no-c-format
 msgid ""
 "Generates a script that drops all tables in the specified schema that start "
@@ -369,14 +390,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:111 extras_tigergeocoder.xml:316
-#: extras_tigergeocoder.xml:567 extras_tigergeocoder.xml:916
+#: extras_tigergeocoder.xml:115 extras_tigergeocoder.xml:320
+#: extras_tigergeocoder.xml:571 extras_tigergeocoder.xml:742
+#: extras_tigergeocoder.xml:1006
 #, no-c-format
 msgid "Availability: 2.1.0"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:119
+#: extras_tigergeocoder.xml:123
 #, no-c-format
 msgid ""
 "SELECT drop_nation_tables_generate_script();\n"
@@ -388,13 +410,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:132
+#: extras_tigergeocoder.xml:136
 #, no-c-format
 msgid "Drop_State_Tables_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:134
+#: extras_tigergeocoder.xml:138
 #, no-c-format
 msgid ""
 "Generates a script that drops all tables in the specified schema that are "
@@ -402,8 +424,18 @@ msgid ""
 "<varname>tiger_data</varname> if no schema is specified."
 msgstr ""
 
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:143
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
+"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
 #. Tag: para
-#: extras_tigergeocoder.xml:150
+#: extras_tigergeocoder.xml:154
 #, no-c-format
 msgid ""
 "Generates a script that drops all tables in the specified schema that are "
@@ -414,7 +446,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:162
+#: extras_tigergeocoder.xml:166
 #, no-c-format
 msgid ""
 "SELECT drop_state_tables_generate_script('PA');\n"
@@ -433,13 +465,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:174
+#: extras_tigergeocoder.xml:178
 #, no-c-format
 msgid "Geocode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:176
+#: extras_tigergeocoder.xml:180
 #, no-c-format
 msgid ""
 "Takes in an address as a string (or other normalized address) and outputs a "
@@ -451,7 +483,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_tigergeocoder.xml:181
+#: extras_tigergeocoder.xml:185
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>setof record <function>geocode</function></funcdef> "
@@ -475,7 +507,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:206
+#: extras_tigergeocoder.xml:210
 #, no-c-format
 msgid ""
 "Takes in an address as a string (or already normalized address) and outputs "
@@ -491,7 +523,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:210
+#: extras_tigergeocoder.xml:214
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 to support Tiger 2010 structured data and revised some logic "
@@ -501,14 +533,14 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:216 extras_tigergeocoder.xml:279
-#: extras_tigergeocoder.xml:361
+#: extras_tigergeocoder.xml:220 extras_tigergeocoder.xml:283
+#: extras_tigergeocoder.xml:365
 #, no-c-format
 msgid "Examples: Basic"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:217
+#: extras_tigergeocoder.xml:221
 #, no-c-format
 msgid ""
 "The below examples timings are on a 3.0 GHZ single processor Windows 7 "
@@ -517,13 +549,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:218
+#: extras_tigergeocoder.xml:222
 #, no-c-format
 msgid "Exact matches are faster to compute (61ms)"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:219
+#: extras_tigergeocoder.xml:223
 #, no-c-format
 msgid ""
 "SELECT g.rating, ST_X(g.geomout) As lon, ST_Y(g.geomout) As lat, \n"
@@ -540,14 +572,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:220
+#: extras_tigergeocoder.xml:224
 #, no-c-format
 msgid ""
 "Even if zip is not passed in the geocoder can guess (took about 122-150 ms)"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:221
+#: extras_tigergeocoder.xml:225
 #, no-c-format
 msgid ""
 "SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
@@ -564,7 +596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:222
+#: extras_tigergeocoder.xml:226
 #, no-c-format
 msgid ""
 "Can handle misspellings and provides more than one possible solution with "
@@ -572,7 +604,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:223
+#: extras_tigergeocoder.xml:227
 #, no-c-format
 msgid ""
 "SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
@@ -589,7 +621,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:225
+#: extras_tigergeocoder.xml:229
 #, no-c-format
 msgid ""
 "Using to do a batch geocode of addresses. Easiest is to set "
@@ -598,7 +630,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:226
+#: extras_tigergeocoder.xml:230
 #, no-c-format
 msgid ""
 "CREATE TABLE addresses_to_geocode(addid serial PRIMARY KEY, address text,\n"
@@ -653,13 +685,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:229
+#: extras_tigergeocoder.xml:233
 #, no-c-format
 msgid "Examples: Using Geometry filter"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:230
+#: extras_tigergeocoder.xml:234
 #, no-c-format
 msgid ""
 "SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
@@ -683,7 +715,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:236
+#: extras_tigergeocoder.xml:240
 #, no-c-format
 msgid ""
 ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
@@ -692,13 +724,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:242
+#: extras_tigergeocoder.xml:246
 #, no-c-format
 msgid "Geocode_Intersection"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:244
+#: extras_tigergeocoder.xml:248
 #, no-c-format
 msgid ""
 "Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
@@ -710,7 +742,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:250
+#: extras_tigergeocoder.xml:254
 #, no-c-format
 msgid ""
 "<funcdef>setof record <function>geocode_intersection</function></funcdef> "
@@ -727,7 +759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:268
+#: extras_tigergeocoder.xml:272
 #, no-c-format
 msgid ""
 "Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
@@ -743,7 +775,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:280
+#: extras_tigergeocoder.xml:284
 #, no-c-format
 msgid ""
 "The below examples timings are on a 3.0 GHZ single processor Windows 7 "
@@ -752,7 +784,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:281
+#: extras_tigergeocoder.xml:285
 #, no-c-format
 msgid ""
 "Testing on Windows 2003 64-bit 8GB on PostGIS 2.0 PostgreSQL 64-bit Tiger "
@@ -760,7 +792,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:282
+#: extras_tigergeocoder.xml:286
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(addy), st_astext(geomout),rating \n"
@@ -772,7 +804,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:283
+#: extras_tigergeocoder.xml:287
 #, no-c-format
 msgid ""
 "Even if zip is not passed in the geocoder can guess (took about 3500 ms on "
@@ -780,7 +812,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:284
+#: extras_tigergeocoder.xml:288
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(addy), st_astext(geomout),rating \n"
@@ -793,26 +825,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:290
+#: extras_tigergeocoder.xml:294
 #, no-c-format
 msgid ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:296
+#: extras_tigergeocoder.xml:300
 #, no-c-format
 msgid "Get_Geocode_Setting"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:298
+#: extras_tigergeocoder.xml:302
 #, no-c-format
 msgid ""
 "Returns value of specific setting stored in tiger.geocode_settings table."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:303
+#: extras_tigergeocoder.xml:307
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Get_Geocode_Setting</function></funcdef> "
@@ -820,7 +852,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:313
+#: extras_tigergeocoder.xml:317
 #, no-c-format
 msgid ""
 "Returns value of specific setting stored in tiger.geocode_settings table. "
@@ -829,39 +861,43 @@ msgid ""
 msgstr ""
 
 #. Tag: screen
-#: extras_tigergeocoder.xml:314
-#, no-c-format
-msgid ""
-"name       | category |        "
-"short_desc                                                           \n"
-"----------------------------+----------"
-"+----------------------------------------------------------------------------------\n"
-" debug_geocode_address      | debug    | outputs debug information in notice "
-"log such as queries \n"
-"                                       |  when geocode_addresss is called if "
-"true\n"
-" debug_geocode_intersection | debug    | outputs debug information in notice "
-"log such as queries \n"
-"                                       |  when geocode_intersection is "
+#: extras_tigergeocoder.xml:318
+#, no-c-format
+msgid ""
+"name              | setting |  unit   | category  "
+"|                                                             short_desc\n"
+"--------------------------------+---------+---------+-----------"
+"+------------------------------------------------------------------------------------------------------\n"
+" debug_geocode_address          | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_addresss is "
 "called if true\n"
-" debug_normalize_address    | debug    | outputs debug information in notice "
-"log such as queries \n"
-"                                       |  and intermediate expressions when "
-"normalize_address is called if true\n"
-" debug_reverse_geocode      | debug    | if true, outputs debug information "
-"in notice log \n"
-"                                         such as queries and intermediate "
-"expressions when reverse_geocode"
+" debug_geocode_intersection     | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_intersection is "
+"called if true\n"
+" debug_normalize_address        | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries \n"
+"                                |         |         |           |   and "
+"intermediate expressions when normalize_address is called if true\n"
+" debug_reverse_geocode          | false   | boolean | debug     | if true, "
+"outputs debug information in notice log such as queries \n"
+"                                                                |  and "
+"intermediate expressions when reverse_geocode\n"
+" reverse_geocode_numbered_roads | 0       | integer | rating    | For state "
+"and county highways, 0 - no preference in name\n"
+"                                |         |         |           |  , 1 - "
+"prefer the numbered highway name, 2 - prefer local state/county name\n"
+" use_pagc_address_parser        | false   | boolean | normalize | If set to "
+"true, will try to use the pagc_address normalizer instead of tiger built one"
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:322 extras_tigergeocoder.xml:922
+#: extras_tigergeocoder.xml:326 extras_tigergeocoder.xml:1012
 #, no-c-format
 msgid "Example return debugging setting"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:323
+#: extras_tigergeocoder.xml:327
 #, no-c-format
 msgid ""
 "SELECT get_geocode_setting('debug_geocode_address) As result;\n"
@@ -871,13 +907,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:335
+#: extras_tigergeocoder.xml:339
 #, no-c-format
 msgid "Get_Tract"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:337
+#: extras_tigergeocoder.xml:341
 #, no-c-format
 msgid ""
 "Returns census tract or field from tract table of where the geometry is "
@@ -885,7 +921,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:342
+#: extras_tigergeocoder.xml:346
 #, no-c-format
 msgid ""
 "<funcdef>text <function>get_tract</function></funcdef> "
@@ -895,7 +931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:353
+#: extras_tigergeocoder.xml:357
 #, no-c-format
 msgid ""
 "Given a geometry will return the census tract location of that geometry. NAD "
@@ -903,7 +939,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:362
+#: extras_tigergeocoder.xml:366
 #, no-c-format
 msgid ""
 "SELECT get_tract(ST_Point(-71.101375, 42.31376) ) As tract_name;\n"
@@ -913,7 +949,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:363
+#: extras_tigergeocoder.xml:367
 #, no-c-format
 msgid ""
 "--this one returns the tiger geoid\n"
@@ -924,19 +960,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:369
+#: extras_tigergeocoder.xml:373
 #, no-c-format
 msgid "<para>></para>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:375
+#: extras_tigergeocoder.xml:379
 #, no-c-format
 msgid "Install_Missing_Indexes"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:377
+#: extras_tigergeocoder.xml:381
 #, no-c-format
 msgid ""
 "Finds all tables with key columns used in geocoder joins and filter "
@@ -944,7 +980,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:382
+#: extras_tigergeocoder.xml:386
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>Install_Missing_Indexes</function></funcdef> "
@@ -952,7 +988,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:392
+#: extras_tigergeocoder.xml:396
 #, no-c-format
 msgid ""
 "Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
@@ -967,7 +1003,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:406
+#: extras_tigergeocoder.xml:410
 #, no-c-format
 msgid ""
 "SELECT install_missing_indexes();\n"
@@ -977,13 +1013,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:419
+#: extras_tigergeocoder.xml:423
 #, no-c-format
 msgid "Loader_Generate_Census_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:421
+#: extras_tigergeocoder.xml:425
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform for the specified states "
@@ -993,7 +1029,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:426
+#: extras_tigergeocoder.xml:430
 #, no-c-format
 msgid ""
 "<funcdef>setof text <function>loader_generate_census_script</function></"
@@ -1002,7 +1038,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:437
+#: extras_tigergeocoder.xml:441
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform for the specified states "
@@ -1013,7 +1049,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:438
+#: extras_tigergeocoder.xml:442
 #, no-c-format
 msgid ""
 "It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
@@ -1023,7 +1059,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:440 extras_tigergeocoder.xml:498
+#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502
 #, no-c-format
 msgid ""
 "It uses the following control tables to control the process and different OS "
@@ -1031,8 +1067,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502
-#: extras_tigergeocoder.xml:558
+#: extras_tigergeocoder.xml:448 extras_tigergeocoder.xml:506
+#: extras_tigergeocoder.xml:562
 #, no-c-format
 msgid ""
 "<varname>loader_variables</varname> keeps track of various variables such as "
@@ -1040,7 +1076,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:447 extras_tigergeocoder.xml:505
+#: extras_tigergeocoder.xml:451 extras_tigergeocoder.xml:509
 #, no-c-format
 msgid ""
 "<varname>loader_platform</varname> profiles of various platforms and where "
@@ -1049,8 +1085,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:450 extras_tigergeocoder.xml:508
-#: extras_tigergeocoder.xml:564
+#: extras_tigergeocoder.xml:454 extras_tigergeocoder.xml:512
+#: extras_tigergeocoder.xml:568
 #, no-c-format
 msgid ""
 "<varname>loader_lookuptables</varname> each record defines a kind of table "
@@ -1062,7 +1098,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:454
+#: extras_tigergeocoder.xml:458
 #, no-c-format
 msgid ""
 "includes this logic, but if you installed tiger geocoder prior to PostGIS "
@@ -1071,7 +1107,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:461
+#: extras_tigergeocoder.xml:465
 #, no-c-format
 msgid ""
 "Generate script to load up data for select states in Windows shell script "
@@ -1079,7 +1115,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:462
+#: extras_tigergeocoder.xml:466
 #, no-c-format
 msgid ""
 "SELECT loader_generate_census_script(ARRAY['MA'], 'windows');\n"
@@ -1113,8 +1149,8 @@ msgid ""
 "%SHP2PGSQL% -c -s 4269 -g the_geom   -W \"latin1\" tl_2010_25_tract10.dbf "
 "tiger_staging.ma_tract10 | %PSQL%\n"
 "%PSQL% -c \"ALTER TABLE tiger_staging.MA_tract10 RENAME geoid10 TO "
-"tract_id;  SELECT loader_load_staged_data(lower('MA_tract10'), lower"
-"('MA_tract')); \"\n"
+"tract_id;  SELECT loader_load_staged_data(lower('MA_tract10'), "
+"lower('MA_tract')); \"\n"
 "%PSQL% -c \"CREATE INDEX tiger_data_MA_tract_the_geom_gist ON tiger_data."
 "MA_tract USING gist(the_geom);\"\n"
 "%PSQL% -c \"VACUUM ANALYZE tiger_data.MA_tract;\"\n"
@@ -1124,13 +1160,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:463 extras_tigergeocoder.xml:521
+#: extras_tigergeocoder.xml:467 extras_tigergeocoder.xml:525
 #, no-c-format
 msgid "Generate sh script"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:464
+#: extras_tigergeocoder.xml:468
 #, no-c-format
 msgid ""
 "STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts\" \n"
@@ -1160,13 +1196,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:477
+#: extras_tigergeocoder.xml:481
 #, no-c-format
 msgid "Loader_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:479
+#: extras_tigergeocoder.xml:483
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform for the specified states "
@@ -1177,7 +1213,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:484
+#: extras_tigergeocoder.xml:488
 #, no-c-format
 msgid ""
 "<funcdef>setof text <function>loader_generate_script</function></funcdef> "
@@ -1186,7 +1222,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:495
+#: extras_tigergeocoder.xml:499
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform for the specified states "
@@ -1195,7 +1231,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:496
+#: extras_tigergeocoder.xml:500
 #, no-c-format
 msgid ""
 "It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
@@ -1206,7 +1242,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:511
+#: extras_tigergeocoder.xml:515
 #, no-c-format
 msgid ""
 "Availability: 2.0.0 to support Tiger 2010 structured data and load census "
@@ -1214,14 +1250,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:519
+#: extras_tigergeocoder.xml:523
 #, no-c-format
 msgid ""
 "Generate script to load up data for 2 states in Windows shell script format."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:520
+#: extras_tigergeocoder.xml:524
 #, no-c-format
 msgid ""
 "SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;\n"
@@ -1248,7 +1284,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:522
+#: extras_tigergeocoder.xml:526
 #, no-c-format
 msgid ""
 "SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;\n"
@@ -1271,13 +1307,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:535
+#: extras_tigergeocoder.xml:539
 #, no-c-format
 msgid "Loader_Generate_Nation_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:537
+#: extras_tigergeocoder.xml:541
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform that loads in the county "
@@ -1285,7 +1321,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:542
+#: extras_tigergeocoder.xml:546
 #, no-c-format
 msgid ""
 "<funcdef>text <function>loader_generate_nation_script</function></funcdef> "
@@ -1293,7 +1329,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:552
+#: extras_tigergeocoder.xml:556
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform that loads in the "
@@ -1305,7 +1341,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:553
+#: extras_tigergeocoder.xml:557
 #, no-c-format
 msgid ""
 "It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
@@ -1313,7 +1349,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:554
+#: extras_tigergeocoder.xml:558
 #, no-c-format
 msgid ""
 "It uses the following control tables <varname>tiger.loader_platform</"
@@ -1323,7 +1359,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:561
+#: extras_tigergeocoder.xml:565
 #, no-c-format
 msgid ""
 "<varname>loader_platform</varname> profiles of various platforms and where "
@@ -1332,7 +1368,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:568
+#: extras_tigergeocoder.xml:572
 #, no-c-format
 msgid ""
 "If you were running <varname>tiger_2010</varname> version and you want to "
@@ -1342,37 +1378,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:574
+#: extras_tigergeocoder.xml:578
 #, no-c-format
 msgid "Generate script script to load nation data Windows."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:575
+#: extras_tigergeocoder.xml:579
 #, no-c-format
 msgid "SELECT loader_generate_nation_script('windows');"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:576
+#: extras_tigergeocoder.xml:580
 #, no-c-format
 msgid "Generate script to load up data for Linux/Unix systems."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:577
+#: extras_tigergeocoder.xml:581
 #, no-c-format
 msgid "SELECT loader_generate_nation_script('sh');"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:589
+#: extras_tigergeocoder.xml:593
 #, no-c-format
 msgid "Missing_Indexes_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:591
+#: extras_tigergeocoder.xml:595
 #, no-c-format
 msgid ""
 "Finds all tables with key columns used in geocoder joins that are missing "
@@ -1381,7 +1417,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:597
+#: extras_tigergeocoder.xml:601
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef> "
@@ -1389,7 +1425,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:607
+#: extras_tigergeocoder.xml:611
 #, no-c-format
 msgid ""
 "Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
@@ -1403,20 +1439,20 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:621
+#: extras_tigergeocoder.xml:625
 #, no-c-format
 msgid ""
 "SELECT missing_indexes_generate_script();\n"
 "-- output: This was run on a database that was created before many "
 "corrections were made to the loading script ---\n"
-"CREATE INDEX idx_tiger_county_countyfp ON tiger.county USING btree"
-"(countyfp);\n"
-"CREATE INDEX idx_tiger_cousub_countyfp ON tiger.cousub USING btree"
-"(countyfp);\n"
+"CREATE INDEX idx_tiger_county_countyfp ON tiger.county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_cousub_countyfp ON tiger.cousub USING "
+"btree(countyfp);\n"
 "CREATE INDEX idx_tiger_edges_tfidr ON tiger.edges USING btree(tfidr);\n"
 "CREATE INDEX idx_tiger_edges_tfidl ON tiger.edges USING btree(tfidl);\n"
-"CREATE INDEX idx_tiger_zip_lookup_all_zip ON tiger.zip_lookup_all USING btree"
-"(zip);\n"
+"CREATE INDEX idx_tiger_zip_lookup_all_zip ON tiger.zip_lookup_all USING "
+"btree(zip);\n"
 "CREATE INDEX idx_tiger_data_ma_county_countyfp ON tiger_data.ma_county USING "
 "btree(countyfp);\n"
 "CREATE INDEX idx_tiger_data_ma_cousub_countyfp ON tiger_data.ma_cousub USING "
@@ -1428,19 +1464,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:628
+#: extras_tigergeocoder.xml:632
 #, no-c-format
 msgid ", <xref linkend=\"Install_Missing_Indexes\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:634
+#: extras_tigergeocoder.xml:638
 #, no-c-format
 msgid "Normalize_Address"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:636
+#: extras_tigergeocoder.xml:640
 #, no-c-format
 msgid ""
 "Given a textual street address, returns a composite <varname>norm_addy</"
@@ -1451,7 +1487,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:642
+#: extras_tigergeocoder.xml:646
 #, no-c-format
 msgid ""
 "<funcdef>norm_addy <function>normalize_address</function></funcdef> "
@@ -1459,7 +1495,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:652
+#: extras_tigergeocoder.xml:656 extras_tigergeocoder.xml:735
 #, no-c-format
 msgid ""
 "Given a textual street address, returns a composite <varname>norm_addy</"
@@ -1470,7 +1506,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:654
+#: extras_tigergeocoder.xml:658
 #, no-c-format
 msgid ""
 "This function just uses the various direction/state/suffix lookup tables "
@@ -1482,7 +1518,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:656
+#: extras_tigergeocoder.xml:660 extras_tigergeocoder.xml:739
 #, no-c-format
 msgid ""
 "It uses various control lookup tables located in <varname>tiger</varname> "
@@ -1490,7 +1526,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:657
+#: extras_tigergeocoder.xml:661 extras_tigergeocoder.xml:740
 #, no-c-format
 msgid ""
 "Fields in the <varname>norm_addy</varname> type object returned by this "
@@ -1499,7 +1535,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:658
+#: extras_tigergeocoder.xml:662 extras_tigergeocoder.xml:744
 #, no-c-format
 msgid ""
 "(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] "
@@ -1507,13 +1543,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:661
+#: extras_tigergeocoder.xml:665 extras_tigergeocoder.xml:750
 #, no-c-format
 msgid "<varname>address</varname> is an integer: The street number"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:664
+#: extras_tigergeocoder.xml:668 extras_tigergeocoder.xml:753
 #, no-c-format
 msgid ""
 "<varname>predirAbbrev</varname> is varchar: Directional prefix of road such "
@@ -1522,13 +1558,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:667
+#: extras_tigergeocoder.xml:671 extras_tigergeocoder.xml:756
 #, no-c-format
 msgid "<varname>streetName</varname> varchar"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:670
+#: extras_tigergeocoder.xml:674 extras_tigergeocoder.xml:759
 #, no-c-format
 msgid ""
 "<varname>streetTypeAbbrev</varname> varchar abbreviated version of street "
@@ -1537,7 +1573,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:673
+#: extras_tigergeocoder.xml:677 extras_tigergeocoder.xml:762
 #, no-c-format
 msgid ""
 "<varname>postdirAbbrev</varname> varchar abbreviated directional suffice of "
@@ -1546,7 +1582,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:676
+#: extras_tigergeocoder.xml:680 extras_tigergeocoder.xml:765
 #, no-c-format
 msgid ""
 "<varname>internal</varname> varchar internal address such as an apartment or "
@@ -1554,14 +1590,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:679
+#: extras_tigergeocoder.xml:683 extras_tigergeocoder.xml:768
 #, no-c-format
 msgid ""
 "<varname>location</varname> varchar usually a city or governing province."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:682
+#: extras_tigergeocoder.xml:686 extras_tigergeocoder.xml:771
 #, no-c-format
 msgid ""
 "<varname>stateAbbrev</varname> varchar two character US State. e.g MA, NY, "
@@ -1569,13 +1605,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:685
+#: extras_tigergeocoder.xml:689 extras_tigergeocoder.xml:774
 #, no-c-format
 msgid "<varname>zip</varname> varchar 5-digit zipcode. e.g. 02109."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:688
+#: extras_tigergeocoder.xml:692 extras_tigergeocoder.xml:777
 #, no-c-format
 msgid ""
 "<varname>parsed</varname> boolean - denotes if addess was formed from "
@@ -1584,7 +1620,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:697
+#: extras_tigergeocoder.xml:701
 #, no-c-format
 msgid ""
 "Output select fields. Use <xref linkend=\"Pprint_Addy\"/> if you want a "
@@ -1592,7 +1628,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:698
+#: extras_tigergeocoder.xml:702
 #, no-c-format
 msgid ""
 "SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
@@ -1612,19 +1648,154 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:707
+#: extras_tigergeocoder.xml:711
 #, no-c-format
 msgid ", <xref linkend=\"Pprint_Addy\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:713
+#: extras_tigergeocoder.xml:717
+#, no-c-format
+msgid "Pagc_Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:719
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data). Requires address_standardizer extension."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:725
+#, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>pagc_normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:737
+#, no-c-format
+msgid ""
+"This function just uses the various pagc_* lookup tables preloaded with the "
+"tiger_geocoder and located in the <varname>tiger</varname> schema, so it "
+"doesn't need you to download tiger census data or any other additional data "
+"to make use of it. You may find the need to add more abbreviations or "
+"alternative namings to the various lookup tables in the <varname>tiger</"
+"varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:741
+#, no-c-format
+msgid ""
+"There are slight variations in casing and formatting over the <xref linkend="
+"\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:743
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:745
+#, no-c-format
+msgid ""
+"The native standardaddr of address_standardizer extension is at this time a "
+"bit richer than norm_addy since its designed to support international "
+"addresses (including country). standardaddr equivalent fields are:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:746
+#, no-c-format
+msgid "house_num,predir, name, suftype, sufdir, unit, city, state, postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:785
+#, no-c-format
+msgid "Single call example"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:786
+#, no-c-format
+msgid ""
+"SELECT addy.*\n"
+"FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS "
+"addy;\n"
+"\n"
+"        \n"
+" address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | "
+"internal  |  location   | stateabbrev | zip | parsed\n"
+"---------+--------------+------------+------------------+---------------"
+"+-----------+-------------+-------------+-----+--------\n"
+"    9000 | E            | ROO        | ST               |               | "
+"SUITE 999 | SPRINGFIELD | CO          |     | t"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:788
+#, no-c-format
+msgid ""
+"Batch call. There are currently speed issues with the way "
+"postgis_tiger_geocoder wraps the address_standardizer. These will hopefully "
+"be resolved in later editions. To work around them, if you need speed for "
+"batch geocoding to call generate a normaddy in batch mode, you are "
+"encouraged to directly call the address_standardizer standardize_address "
+"function as shown below which is similar exercise to what we did in <xref "
+"linkend=\"Normalize_Address\"/> that uses data created in <xref linkend="
+"\"Geocode\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:792
+#, no-c-format
+msgid ""
+"WITH g AS (SELECT address, ROW((sa).house_num, (sa).predir, (sa).name\n"
+"  , (sa).suftype, (sa).sufdir, (sa).unit , (sa).city, (sa).state, (sa)."
+"postcode, true)::norm_addy As na\n"
+" FROM (SELECT address, standardize_address('tiger.pagc_lex'\n"
+"       , 'tiger.pagc_gaz'\n"
+"       , 'tiger.pagc_rules', address) As sa\n"
+"        FROM addresses_to_geocode) As g)\n"
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM  g;\n"
+" \n"
+" orig                                                |  streetname   | "
+"streettypeabbrev\n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 529 Main Street, Boston MA, 02129                   | MAIN          | ST\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | MASSACHUSETTS | AVE\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | WIZARD OF     |\n"
+" 26 Capen Street, Medford, MA                        | CAPEN         | ST\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | MOUNT AUBURN  | ST\n"
+" 950 Main Street, Worcester, MA 01610                | MAIN          | ST"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:797 extras_tigergeocoder.xml:913
+#, no-c-format
+msgid ", <xref linkend=\"Geocode\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:803
 #, no-c-format
 msgid "Pprint_Addy"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:715
+#: extras_tigergeocoder.xml:805
 #, no-c-format
 msgid ""
 "Given a <varname>norm_addy</varname> composite type object, returns a pretty "
@@ -1633,7 +1804,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:720
+#: extras_tigergeocoder.xml:810
 #, no-c-format
 msgid ""
 "<funcdef>varchar <function>pprint_addy</function></funcdef> "
@@ -1641,7 +1812,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:730
+#: extras_tigergeocoder.xml:820
 #, no-c-format
 msgid ""
 "Given a <varname>norm_addy</varname> composite type object, returns a pretty "
@@ -1650,19 +1821,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:731
+#: extras_tigergeocoder.xml:821
 #, no-c-format
 msgid "Usually used in conjunction with <xref linkend=\"Normalize_Address\"/>."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:739
+#: extras_tigergeocoder.xml:829
 #, no-c-format
 msgid "Pretty print a single address"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:740
+#: extras_tigergeocoder.xml:830
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
@@ -1673,13 +1844,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:742
+#: extras_tigergeocoder.xml:832
 #, no-c-format
 msgid "Pretty print address a table of addresses"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:743
+#: extras_tigergeocoder.xml:833
 #, no-c-format
 msgid ""
 "SELECT address As orig, pprint_addy(normalize_address(address)) As "
@@ -1703,13 +1874,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:756
+#: extras_tigergeocoder.xml:846
 #, no-c-format
 msgid "Reverse_Geocode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:758
+#: extras_tigergeocoder.xml:848
 #, no-c-format
 msgid ""
 "Takes a geometry point in a known spatial ref sys and returns a record "
@@ -1719,7 +1890,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:763
+#: extras_tigergeocoder.xml:853
 #, no-c-format
 msgid ""
 "<funcdef>record <function>Reverse_Geocode</function></funcdef> "
@@ -1733,7 +1904,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:777
+#: extras_tigergeocoder.xml:867
 #, no-c-format
 msgid ""
 "Takes a geometry point in a known spatial ref and returns a record "
@@ -1745,7 +1916,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:780
+#: extras_tigergeocoder.xml:870
 #, no-c-format
 msgid ""
 "Why do we say theoretical instead of actual addresses. The Tiger data "
@@ -1761,7 +1932,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:785
+#: extras_tigergeocoder.xml:875
 #, no-c-format
 msgid ""
 "Note: Hmm this function relies on Tiger data. If you have not loaded data "
@@ -1770,13 +1941,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:786
+#: extras_tigergeocoder.xml:876
 #, no-c-format
 msgid "Returned elements of the record are as follows:"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:789
+#: extras_tigergeocoder.xml:879
 #, no-c-format
 msgid ""
 "<varname>intpt</varname> is an array of points: These are the center line "
@@ -1785,7 +1956,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:792
+#: extras_tigergeocoder.xml:882
 #, no-c-format
 msgid ""
 "<varname>addy</varname> is an array of norm_addy (normalized addresses): "
@@ -1796,7 +1967,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:796
+#: extras_tigergeocoder.xml:886
 #, no-c-format
 msgid ""
 "<varname>street</varname> an array of varchar: These are cross streets (or "
@@ -1805,7 +1976,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:807
+#: extras_tigergeocoder.xml:897
 #, no-c-format
 msgid ""
 "Example of a point at the corner of two streets, but closest to one. This is "
@@ -1815,7 +1986,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:809
+#: extras_tigergeocoder.xml:899
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, "
@@ -1835,7 +2006,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:811
+#: extras_tigergeocoder.xml:901
 #, no-c-format
 msgid ""
 "Here we choose not to include the address ranges for the cross streets and "
@@ -1844,7 +2015,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:813
+#: extras_tigergeocoder.xml:903
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, \n"
@@ -1863,7 +2034,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:815
+#: extras_tigergeocoder.xml:905
 #, no-c-format
 msgid ""
 "For this one we reuse our geocoded example from <xref linkend=\"Geocode\"/> "
@@ -1871,7 +2042,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:816
+#: extras_tigergeocoder.xml:906
 #, no-c-format
 msgid ""
 "SELECT actual_addr, lon, lat, pprint_addy((rg).addy[1]) As int_addr1, \n"
@@ -1896,20 +2067,14 @@ msgid ""
 "| 3 Maywood St, Worcester, MA 01603         | Main St         | Maywood Pl"
 msgstr ""
 
-#. Tag: para
-#: extras_tigergeocoder.xml:823
-#, no-c-format
-msgid ", <xref linkend=\"Geocode\"/>"
-msgstr ""
-
 #. Tag: refname
-#: extras_tigergeocoder.xml:829
+#: extras_tigergeocoder.xml:919
 #, no-c-format
 msgid "Topology_Load_Tiger"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:831
+#: extras_tigergeocoder.xml:921
 #, no-c-format
 msgid ""
 "Loads a defined region of tiger data into a PostGIS Topology and "
@@ -1918,7 +2083,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:837
+#: extras_tigergeocoder.xml:927
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Topology_Load_Tiger</function></funcdef> "
@@ -1929,7 +2094,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:849
+#: extras_tigergeocoder.xml:939
 #, no-c-format
 msgid ""
 "Loads a defined region of tiger data into a PostGIS Topology. The faces, "
@@ -1942,7 +2107,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:852
+#: extras_tigergeocoder.xml:942
 #, no-c-format
 msgid ""
 "This would be useful for example for redistricting data where you require "
@@ -1951,7 +2116,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:854
+#: extras_tigergeocoder.xml:944
 #, no-c-format
 msgid ""
 "This function relies on Tiger data as well as the installation of the "
@@ -1963,7 +2128,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:856
+#: extras_tigergeocoder.xml:946
 #, no-c-format
 msgid ""
 "Most topology validation errors are a result of tolerance issues where after "
@@ -1973,13 +2138,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:858
+#: extras_tigergeocoder.xml:948
 #, no-c-format
 msgid "Required arguments:"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:861
+#: extras_tigergeocoder.xml:951
 #, no-c-format
 msgid ""
 "<varname>topo_name</varname> The name of an existing PostGIS topology to "
@@ -1987,7 +2152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:864
+#: extras_tigergeocoder.xml:954
 #, no-c-format
 msgid ""
 "<varname>region_type</varname> The type of bounding region. Currently only "
@@ -1997,7 +2162,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:867
+#: extras_tigergeocoder.xml:957
 #, no-c-format
 msgid ""
 "<varname>region_id</varname> This is what TIGER calls the geoid. It is the "
@@ -2008,13 +2173,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:876
+#: extras_tigergeocoder.xml:966
 #, no-c-format
 msgid "Example: Boston, Massachusetts Topology"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:877
+#: extras_tigergeocoder.xml:967
 #, no-c-format
 msgid ""
 "Create a topology for Boston, Massachusetts in Mass State Plane Feet (2249) "
@@ -2023,7 +2188,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:879
+#: extras_tigergeocoder.xml:969
 #, no-c-format
 msgid ""
 "SELECT topology.CreateTopology('topo_boston', 2249, 0.25);\n"
@@ -2054,13 +2219,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:883
+#: extras_tigergeocoder.xml:973
 #, no-c-format
 msgid "Example: Suffolk, Massachusetts Topology"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:884
+#: extras_tigergeocoder.xml:974
 #, no-c-format
 msgid ""
 "Create a topology for Suffolk, Massachusetts in Mass State Plane Meters "
@@ -2069,7 +2234,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:886
+#: extras_tigergeocoder.xml:976
 #, no-c-format
 msgid ""
 "SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);\n"
@@ -2104,7 +2269,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:890
+#: extras_tigergeocoder.xml:980
 #, no-c-format
 msgid ""
 ", <xref linkend=\"CreateTopoGeom\"/>, <xref linkend=\"TopologySummary\"/>, "
@@ -2112,19 +2277,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:896
+#: extras_tigergeocoder.xml:986
 #, no-c-format
 msgid "Set_Geocode_Setting"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:898
+#: extras_tigergeocoder.xml:988
 #, no-c-format
 msgid "Sets a setting that affects behavior of geocoder functions."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:903
+#: extras_tigergeocoder.xml:993
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Set_Geocode_Setting</function></funcdef> "
@@ -2133,7 +2298,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:914
+#: extras_tigergeocoder.xml:1004
 #, no-c-format
 msgid ""
 "Sets value of specific setting stored in <varname>tiger.geocode_settings</"
@@ -2143,7 +2308,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:923
+#: extras_tigergeocoder.xml:1013
 #, no-c-format
 msgid ""
 "If you run <xref linkend=\"Geocode\"/> when this function is true, the "
@@ -2151,7 +2316,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:924
+#: extras_tigergeocoder.xml:1014
 #, no-c-format
 msgid ""
 "SELECT set_geocode_setting('debug_geocode_address', 'true') As result;\n"
diff --git a/doc/po/it_IT/extras_topology.xml.po b/doc/po/it_IT/extras_topology.xml.po
index e9243a7..c102290 100644
--- a/doc/po/it_IT/extras_topology.xml.po
+++ b/doc/po/it_IT/extras_topology.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -136,21 +136,23 @@ msgstr ""
 
 #. Tag: title
 #: extras_topology.xml:31 extras_topology.xml:50 extras_topology.xml:99
-#: extras_topology.xml:138 extras_topology.xml:159 extras_topology.xml:236
-#: extras_topology.xml:283 extras_topology.xml:324 extras_topology.xml:363
-#: extras_topology.xml:400 extras_topology.xml:470 extras_topology.xml:518
-#: extras_topology.xml:566 extras_topology.xml:610 extras_topology.xml:658
-#: extras_topology.xml:704 extras_topology.xml:750 extras_topology.xml:805
-#: extras_topology.xml:851 extras_topology.xml:898 extras_topology.xml:955
-#: extras_topology.xml:1013 extras_topology.xml:1085 extras_topology.xml:1153
-#: extras_topology.xml:1219 extras_topology.xml:1273 extras_topology.xml:1321
-#: extras_topology.xml:1368 extras_topology.xml:1411 extras_topology.xml:1465
-#: extras_topology.xml:1559 extras_topology.xml:1654 extras_topology.xml:1696
-#: extras_topology.xml:1738 extras_topology.xml:1781 extras_topology.xml:1830
-#: extras_topology.xml:1874 extras_topology.xml:1926 extras_topology.xml:1984
-#: extras_topology.xml:2025 extras_topology.xml:2082 extras_topology.xml:2128
-#: extras_topology.xml:2219 extras_topology.xml:2281 extras_topology.xml:2329
-#: extras_topology.xml:2377 extras_topology.xml:2425 extras_topology.xml:2519
+#: extras_topology.xml:138 extras_topology.xml:163 extras_topology.xml:240
+#: extras_topology.xml:287 extras_topology.xml:328 extras_topology.xml:367
+#: extras_topology.xml:404 extras_topology.xml:474 extras_topology.xml:522
+#: extras_topology.xml:570 extras_topology.xml:614 extras_topology.xml:662
+#: extras_topology.xml:708 extras_topology.xml:754 extras_topology.xml:809
+#: extras_topology.xml:855 extras_topology.xml:902 extras_topology.xml:959
+#: extras_topology.xml:1017 extras_topology.xml:1089 extras_topology.xml:1157
+#: extras_topology.xml:1223 extras_topology.xml:1278 extras_topology.xml:1326
+#: extras_topology.xml:1373 extras_topology.xml:1416 extras_topology.xml:1470
+#: extras_topology.xml:1564 extras_topology.xml:1659 extras_topology.xml:1701
+#: extras_topology.xml:1743 extras_topology.xml:1786 extras_topology.xml:1836
+#: extras_topology.xml:1880 extras_topology.xml:1932 extras_topology.xml:1990
+#: extras_topology.xml:2031 extras_topology.xml:2088 extras_topology.xml:2134
+#: extras_topology.xml:2206 extras_topology.xml:2260 extras_topology.xml:2331
+#: extras_topology.xml:2407 extras_topology.xml:2452 extras_topology.xml:2484
+#: extras_topology.xml:2522 extras_topology.xml:2570 extras_topology.xml:2665
+#: extras_topology.xml:2719 extras_topology.xml:2782 extras_topology.xml:2831
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -180,26 +182,23 @@ msgstr ""
 #. Tag: refname
 #: extras_topology.xml:46
 #, no-c-format
-msgid "topogeometry"
+msgid "TopoGeometry"
 msgstr ""
 
 #. Tag: refpurpose
 #: extras_topology.xml:47
 #, no-c-format
-msgid ""
-"A composite type that refers to a topology geometry in a specific topology, "
-"layer, having specific type (1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:"
-"collection) with specific identifier id in the topology. The id uniquely "
-"defines the topogeometry in the topology."
+msgid "A composite type representing a topologically defined geometry"
 msgstr ""
 
 #. Tag: para
 #: extras_topology.xml:51
 #, no-c-format
 msgid ""
-"A composite type that refers to a topology geometry in a specific topology, "
-"layer, having specific type with specific id. The elements of a topogeometry "
-"are the properties: topology_id,layer_id,id integer,type integer."
+"A composite type that refers to a topology geometry in a specific topology "
+"layer, having a specific type and a specific id. The elements of a "
+"TopoGeometry are the properties: topology_id, layer_id, id integer, type "
+"integer."
 msgstr ""
 
 #. Tag: para
@@ -215,7 +214,7 @@ msgstr ""
 #, no-c-format
 msgid ""
 "<varname>layer_id</varname> is an integer: The layer_id in the layers table "
-"that hte topogeometry belongs to. The combination of topology_id, layer_id "
+"that the TopoGeometry belongs to. The combination of topology_id, layer_id "
 "provides a unique reference in the topology.layers table."
 msgstr ""
 
@@ -223,16 +222,17 @@ msgstr ""
 #: extras_topology.xml:60
 #, no-c-format
 msgid ""
-"<varname>type</varname> integer between 1 - 4 that defines the geometry "
-"type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+"<varname>id</varname> is an integer: The id is the autogenerated sequence "
+"number that uniquely defines the topogeometry in the respective topology "
+"layer."
 msgstr ""
 
 #. Tag: para
 #: extras_topology.xml:63
 #, no-c-format
 msgid ""
-"<varname>id</varname> is an integer: The id is the autogenerated sequence "
-"number that uniquely defines the topogeometry in the respective topology."
+"<varname>type</varname> integer between 1 - 4 that defines the geometry "
+"type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
 msgstr ""
 
 #. Tag: title
@@ -274,23 +274,24 @@ msgid "automatic"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:148
-#: extras_topology.xml:169 extras_topology.xml:261 extras_topology.xml:301
-#: extras_topology.xml:341 extras_topology.xml:378 extras_topology.xml:419
-#: extras_topology.xml:495 extras_topology.xml:544 extras_topology.xml:583
-#: extras_topology.xml:632 extras_topology.xml:673 extras_topology.xml:719
-#: extras_topology.xml:765 extras_topology.xml:826 extras_topology.xml:873
-#: extras_topology.xml:929 extras_topology.xml:986 extras_topology.xml:1058
-#: extras_topology.xml:1126 extras_topology.xml:1193 extras_topology.xml:1241
-#: extras_topology.xml:1290 extras_topology.xml:1340 extras_topology.xml:1388
-#: extras_topology.xml:1437 extras_topology.xml:1483 extras_topology.xml:1537
-#: extras_topology.xml:1581 extras_topology.xml:1631 extras_topology.xml:1669
-#: extras_topology.xml:1711 extras_topology.xml:1753 extras_topology.xml:1803
-#: extras_topology.xml:1848 extras_topology.xml:1898 extras_topology.xml:1951
-#: extras_topology.xml:2000 extras_topology.xml:2059 extras_topology.xml:2102
-#: extras_topology.xml:2177 extras_topology.xml:2249 extras_topology.xml:2307
-#: extras_topology.xml:2343 extras_topology.xml:2396 extras_topology.xml:2443
-#: extras_topology.xml:2551
+#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:149
+#: extras_topology.xml:173 extras_topology.xml:265 extras_topology.xml:305
+#: extras_topology.xml:345 extras_topology.xml:382 extras_topology.xml:423
+#: extras_topology.xml:499 extras_topology.xml:548 extras_topology.xml:587
+#: extras_topology.xml:636 extras_topology.xml:677 extras_topology.xml:723
+#: extras_topology.xml:769 extras_topology.xml:830 extras_topology.xml:877
+#: extras_topology.xml:933 extras_topology.xml:990 extras_topology.xml:1062
+#: extras_topology.xml:1130 extras_topology.xml:1197 extras_topology.xml:1246
+#: extras_topology.xml:1295 extras_topology.xml:1345 extras_topology.xml:1393
+#: extras_topology.xml:1442 extras_topology.xml:1488 extras_topology.xml:1542
+#: extras_topology.xml:1586 extras_topology.xml:1636 extras_topology.xml:1674
+#: extras_topology.xml:1716 extras_topology.xml:1758 extras_topology.xml:1809
+#: extras_topology.xml:1854 extras_topology.xml:1904 extras_topology.xml:1957
+#: extras_topology.xml:2006 extras_topology.xml:2065 extras_topology.xml:2108
+#: extras_topology.xml:2183 extras_topology.xml:2218 extras_topology.xml:2290
+#: extras_topology.xml:2380 extras_topology.xml:2421 extras_topology.xml:2471
+#: extras_topology.xml:2541 extras_topology.xml:2588 extras_topology.xml:2697
+#: extras_topology.xml:2746 extras_topology.xml:2807 extras_topology.xml:2857
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -384,25 +385,27 @@ msgstr ""
 #: extras_topology.xml:139
 #, no-c-format
 msgid ""
-"An array of 2 integers used to represent the id and type of a topology "
-"primitive or the id and layer of a TopoGeometry. Sets of such pairs are used "
-"to define TopoGeometry objects (either simple or hierarchical)."
+"An array of 2 integers used to represent the id (first element) and type "
+"(second element) of a topology primitive or the id (first element) and layer "
+"(second element) of a TopoGeometry. Sets of such pairs are used to define "
+"TopoGeometry objects (either simple or hierarchical)."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:142 extras_topology.xml:163 extras_topology.xml:254
-#: extras_topology.xml:294 extras_topology.xml:335 extras_topology.xml:373
-#: extras_topology.xml:413 extras_topology.xml:484 extras_topology.xml:534
-#: extras_topology.xml:577 extras_topology.xml:626 extras_topology.xml:819
-#: extras_topology.xml:866 extras_topology.xml:922 extras_topology.xml:979
-#: extras_topology.xml:1051 extras_topology.xml:1119 extras_topology.xml:1187
-#: extras_topology.xml:1235 extras_topology.xml:1382 extras_topology.xml:1431
-#: extras_topology.xml:1477 extras_topology.xml:1529 extras_topology.xml:1574
-#: extras_topology.xml:1623 extras_topology.xml:1663 extras_topology.xml:1705
-#: extras_topology.xml:1747 extras_topology.xml:1796 extras_topology.xml:1842
-#: extras_topology.xml:2053 extras_topology.xml:2096 extras_topology.xml:2171
-#: extras_topology.xml:2300 extras_topology.xml:2339 extras_topology.xml:2389
-#: extras_topology.xml:2436 extras_topology.xml:2542
+#: extras_topology.xml:142 extras_topology.xml:167 extras_topology.xml:258
+#: extras_topology.xml:298 extras_topology.xml:339 extras_topology.xml:377
+#: extras_topology.xml:417 extras_topology.xml:488 extras_topology.xml:538
+#: extras_topology.xml:581 extras_topology.xml:630 extras_topology.xml:823
+#: extras_topology.xml:870 extras_topology.xml:926 extras_topology.xml:983
+#: extras_topology.xml:1055 extras_topology.xml:1123 extras_topology.xml:1191
+#: extras_topology.xml:1240 extras_topology.xml:1387 extras_topology.xml:1436
+#: extras_topology.xml:1482 extras_topology.xml:1534 extras_topology.xml:1579
+#: extras_topology.xml:1628 extras_topology.xml:1668 extras_topology.xml:1710
+#: extras_topology.xml:1752 extras_topology.xml:1802 extras_topology.xml:1848
+#: extras_topology.xml:2059 extras_topology.xml:2102 extras_topology.xml:2177
+#: extras_topology.xml:2371 extras_topology.xml:2417 extras_topology.xml:2465
+#: extras_topology.xml:2534 extras_topology.xml:2581 extras_topology.xml:2688
+#: extras_topology.xml:2751 extras_topology.xml:2800 extras_topology.xml:2850
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -411,6 +414,17 @@ msgstr ""
 #: extras_topology.xml:143
 #, no-c-format
 msgid ""
+"SELECT te[1] AS id, te[2] AS type FROM\n"
+"( SELECT ARRAY[1,2]::topology.topoelement AS te ) f;\n"
+" id | type\n"
+"----+------\n"
+"  1 |    2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:144
+#, no-c-format
+msgid ""
 "SELECT ARRAY[1,2]::topology.topoelement;\n"
 "  te\n"
 "-------\n"
@@ -418,7 +432,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:144
+#: extras_topology.xml:145
 #, no-c-format
 msgid ""
 "--Example of what happens when you try to case a 3 element array to "
@@ -429,20 +443,26 @@ msgid ""
 "\"dimensions\""
 msgstr ""
 
+#. Tag: para
+#: extras_topology.xml:150 extras_topology.xml:2422 extras_topology.xml:2542
+#, no-c-format
+msgid ", <xref linkend=\"topoelementarray\"/>"
+msgstr ""
+
 #. Tag: refname
-#: extras_topology.xml:155
+#: extras_topology.xml:159
 #, no-c-format
 msgid "TopoElementArray"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:156
+#: extras_topology.xml:160
 #, no-c-format
 msgid "An array of TopoElement objects"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:160
+#: extras_topology.xml:164
 #, no-c-format
 msgid ""
 "An array of 1 or more TopoElement objects, generally used to pass around "
@@ -450,7 +470,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:164
+#: extras_topology.xml:168
 #, no-c-format
 msgid ""
 "SELECT '{{1,2},{4,3}}'::topology.topoelementarray As tea;\n"
@@ -474,7 +494,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:165
+#: extras_topology.xml:169
 #, no-c-format
 msgid ""
 "SELECT '{{1,2,4},{3,4,5}}'::topology.topoelementarray As tea;\n"
@@ -483,7 +503,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:170
+#: extras_topology.xml:174
 #, no-c-format
 msgid ""
 ", <xref linkend=\"GetTopoGeomElementArray\"/>, <xref linkend="
@@ -491,7 +511,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:182
+#: extras_topology.xml:186
 #, no-c-format
 msgid ""
 "This section lists the Topology functions for building new Topology schemas, "
@@ -499,19 +519,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:185
+#: extras_topology.xml:189
 #, no-c-format
 msgid "Topology and TopoGeometry Management"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:188
+#: extras_topology.xml:192
 #, no-c-format
 msgid "AddTopoGeometryColumn"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:189
+#: extras_topology.xml:193
 #, no-c-format
 msgid ""
 "Adds a topogeometry column to an existing table, registers this new column "
@@ -519,7 +539,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:193
+#: extras_topology.xml:197
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
@@ -541,7 +561,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:238
+#: extras_topology.xml:242
 #, no-c-format
 msgid ""
 "Each TopoGeometry object belongs to a specific Layer of a specific Topology. "
@@ -552,7 +572,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:240
+#: extras_topology.xml:244
 #, no-c-format
 msgid ""
 "This function will both add the requested column to the table and add a "
@@ -560,7 +580,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:241
+#: extras_topology.xml:245
 #, no-c-format
 msgid ""
 "If you don't specify [child_layer] (or set it to NULL) this layer would "
@@ -570,7 +590,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:244
+#: extras_topology.xml:248
 #, no-c-format
 msgid ""
 "Once the layer is created (it's id is returned by the AddTopoGeometryColumn "
@@ -578,25 +598,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:245
+#: extras_topology.xml:249
 #, no-c-format
 msgid ""
 "Valid <varname>feature_type</varname>s are: POINT, LINE, POLYGON, COLLECTION"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:248 extras_topology.xml:289 extras_topology.xml:330
-#: extras_topology.xml:406 extras_topology.xml:479 extras_topology.xml:571
-#: extras_topology.xml:813 extras_topology.xml:860 extras_topology.xml:1228
-#: extras_topology.xml:1376 extras_topology.xml:1425 extras_topology.xml:1471
-#: extras_topology.xml:1658 extras_topology.xml:1742 extras_topology.xml:1836
-#: extras_topology.xml:2227 extras_topology.xml:2384 extras_topology.xml:2431
+#: extras_topology.xml:252 extras_topology.xml:293 extras_topology.xml:334
+#: extras_topology.xml:410 extras_topology.xml:483 extras_topology.xml:575
+#: extras_topology.xml:817 extras_topology.xml:864 extras_topology.xml:1233
+#: extras_topology.xml:1381 extras_topology.xml:1430 extras_topology.xml:1476
+#: extras_topology.xml:1663 extras_topology.xml:1747 extras_topology.xml:1842
+#: extras_topology.xml:2268 extras_topology.xml:2529 extras_topology.xml:2576
+#: extras_topology.xml:2791 extras_topology.xml:2841
 #, no-c-format
 msgid "Availability: 1.?"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:255
+#: extras_topology.xml:259
 #, no-c-format
 msgid ""
 "-- Note for this example we created our new table in the ma_topo schema \n"
@@ -610,7 +631,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:256
+#: extras_topology.xml:260
 #, no-c-format
 msgid ""
 "CREATE SCHEMA ri;\n"
@@ -620,19 +641,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:263
+#: extras_topology.xml:267
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopoGeom\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:268
+#: extras_topology.xml:272
 #, no-c-format
 msgid "DropTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:270
+#: extras_topology.xml:274
 #, no-c-format
 msgid ""
 "Use with caution: Drops a topology schema and deletes its reference from "
@@ -641,7 +662,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:275
+#: extras_topology.xml:279
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>DropTopology</function></funcdef> "
@@ -650,7 +671,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:285
+#: extras_topology.xml:289
 #, no-c-format
 msgid ""
 "Drops a topology schema and deletes its reference from topology.topology "
@@ -661,7 +682,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:295
+#: extras_topology.xml:299
 #, no-c-format
 msgid ""
 "Cascade drops the ma_topo schema and removes all references to it in "
@@ -669,19 +690,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:296
+#: extras_topology.xml:300
 #, no-c-format
 msgid "SELECT topology.DropTopology('ma_topo');"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:307
+#: extras_topology.xml:311
 #, no-c-format
 msgid "DropTopoGeometryColumn"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:309
+#: extras_topology.xml:313
 #, no-c-format
 msgid ""
 "Drops the topogeometry column from the table named <varname>table_name</"
@@ -690,7 +711,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:314
+#: extras_topology.xml:318
 #, no-c-format
 msgid ""
 "<funcdef>text <function>DropTopoGeometryColumn</function></funcdef> "
@@ -701,7 +722,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:326
+#: extras_topology.xml:330
 #, no-c-format
 msgid ""
 "Drops the topogeometry column from the table named <varname>table_name</"
@@ -712,20 +733,20 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:336
+#: extras_topology.xml:340
 #, no-c-format
 msgid ""
 "SELECT topology.DropTopoGeometryColumn('ma_topo', 'parcel_topo', 'topo');"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:348
+#: extras_topology.xml:352
 #, no-c-format
 msgid "TopologySummary"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:350
+#: extras_topology.xml:354
 #, no-c-format
 msgid ""
 "Takes a topology name and provides summary totals of types of objects in "
@@ -733,7 +754,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:355
+#: extras_topology.xml:359
 #, no-c-format
 msgid ""
 "<funcdef>text <function>TopologySummary</function></funcdef> "
@@ -742,7 +763,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:365
+#: extras_topology.xml:369
 #, no-c-format
 msgid ""
 "Takes a topology name and provides summary totals of types of objects in "
@@ -750,16 +771,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:368 extras_topology.xml:529 extras_topology.xml:667
-#: extras_topology.xml:713 extras_topology.xml:759 extras_topology.xml:1700
-#: extras_topology.xml:1995 extras_topology.xml:2048 extras_topology.xml:2166
-#: extras_topology.xml:2334 extras_topology.xml:2537
+#: extras_topology.xml:372 extras_topology.xml:533 extras_topology.xml:671
+#: extras_topology.xml:717 extras_topology.xml:763 extras_topology.xml:1705
+#: extras_topology.xml:2001 extras_topology.xml:2054 extras_topology.xml:2172
+#: extras_topology.xml:2412 extras_topology.xml:2683
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:374
+#: extras_topology.xml:378
 #, no-c-format
 msgid ""
 "SELECT topology.topologysummary('city_data');\n"
@@ -782,13 +803,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:385
+#: extras_topology.xml:389
 #, no-c-format
 msgid "ValidateTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:387
+#: extras_topology.xml:391
 #, no-c-format
 msgid ""
 "Returns a set of validatetopology_returntype objects detailing issues with "
@@ -796,7 +817,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:392
+#: extras_topology.xml:396
 #, no-c-format
 msgid ""
 "<funcdef>setof validatetopology_returntype <function>ValidateTopology</"
@@ -805,7 +826,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:402
+#: extras_topology.xml:406
 #, no-c-format
 msgid ""
 "Returns a set of <xref linkend=\"validatetopology_returntype\"/> objects "
@@ -814,7 +835,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:408
+#: extras_topology.xml:412
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 more efficient edge crossing detection and fixes for false "
@@ -822,7 +843,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:414
+#: extras_topology.xml:418
 #, no-c-format
 msgid ""
 "SELECT * FROM  topology.ValidateTopology('ma_topo');\n"
@@ -832,31 +853,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:420
+#: extras_topology.xml:424
 #, no-c-format
 msgid ", <xref linkend=\"Topology_Load_Tiger\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:428
+#: extras_topology.xml:432
 #, no-c-format
 msgid "This section covers the topology functions for creating new topologies."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:431
+#: extras_topology.xml:435
 #, no-c-format
 msgid "Topology Constructors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:435
+#: extras_topology.xml:439
 #, no-c-format
 msgid "CreateTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:436
+#: extras_topology.xml:440
 #, no-c-format
 msgid ""
 "Creates a new topology schema and registers this new schema in the topology."
@@ -864,7 +885,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:440
+#: extras_topology.xml:444
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>integer <function>CreateTopology</function></"
@@ -888,7 +909,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:472
+#: extras_topology.xml:476
 #, no-c-format
 msgid ""
 "Creates a new schema with name <varname>topology_name</varname> consisting "
@@ -902,7 +923,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:476
+#: extras_topology.xml:480
 #, no-c-format
 msgid ""
 "This is similar to the SQL/MM <xref linkend=\"ST_InitTopoGeo\"/> but a bit "
@@ -910,7 +931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:485
+#: extras_topology.xml:489
 #, no-c-format
 msgid ""
 "This example creates a new schema called ma_topo that will store edges, "
@@ -920,19 +941,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:487
+#: extras_topology.xml:491
 #, no-c-format
 msgid "SELECT topology.CreateTopology('ma_topo',26986, 0.5);"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:489
+#: extras_topology.xml:493
 #, no-c-format
 msgid "Create Rhode Island topology in State Plane ft"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:490
+#: extras_topology.xml:494
 #, no-c-format
 msgid ""
 "SELECT topology.CreateTopology('ri_topo',3438) As topoid;\n"
@@ -942,20 +963,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:497
+#: extras_topology.xml:501
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_InitTopoGeo\"/>, <xref linkend=\"Topology_Load_Tiger\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:503
+#: extras_topology.xml:507
 #, no-c-format
 msgid "CopyTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:504
+#: extras_topology.xml:508
 #, no-c-format
 msgid ""
 "Makes a copy of a topology structure (nodes, edges, faces, layers and "
@@ -963,7 +984,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:509
+#: extras_topology.xml:513
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>CopyTopology</function></funcdef> "
@@ -973,7 +994,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:520
+#: extras_topology.xml:524
 #, no-c-format
 msgid ""
 "Creates a new topology with name <varname>new_topology_name</varname> and "
@@ -983,7 +1004,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:524
+#: extras_topology.xml:528
 #, no-c-format
 msgid ""
 "The new rows in topology.layer will contain synthesized values for "
@@ -993,31 +1014,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:535
+#: extras_topology.xml:539
 #, no-c-format
 msgid "This example makes a backup of a topology called ma_topo"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:538
+#: extras_topology.xml:542
 #, no-c-format
 msgid "SELECT topology.CopyTopology('ma_topo', 'ma_topo_bakup');"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:546 extras_topology.xml:2060
+#: extras_topology.xml:550 extras_topology.xml:2066
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopology\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:552
+#: extras_topology.xml:556
 #, no-c-format
 msgid "ST_InitTopoGeo"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:553
+#: extras_topology.xml:557
 #, no-c-format
 msgid ""
 "Creates a new topology schema and registers this new schema in the topology."
@@ -1025,7 +1046,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:558
+#: extras_topology.xml:562
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_InitTopoGeo</function></funcdef> "
@@ -1034,7 +1055,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:568
+#: extras_topology.xml:572
 #, no-c-format
 msgid ""
 "This is an SQL-MM equivalent of CreateTopology but lacks the spatial "
@@ -1043,14 +1064,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:572
+#: extras_topology.xml:576
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.17"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:578
+#: extras_topology.xml:582
 #, no-c-format
 msgid ""
 "SELECT topology.ST_InitTopoGeo('topo_schema_to_create') AS topocreation;\n"
@@ -1060,13 +1081,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:592
+#: extras_topology.xml:596
 #, no-c-format
 msgid "ST_CreateTopoGeo"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:594
+#: extras_topology.xml:598
 #, no-c-format
 msgid ""
 "<refpurpose>Adds a collection of geometries to a given empty topology and "
@@ -1074,7 +1095,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:601
+#: extras_topology.xml:605
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_CreateTopoGeo</function></funcdef> "
@@ -1084,7 +1105,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:612
+#: extras_topology.xml:616
 #, no-c-format
 msgid ""
 "<para>Adds a collection of geometries to a given empty topology and returns "
@@ -1092,29 +1113,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:616
+#: extras_topology.xml:620
 #, no-c-format
 msgid "Useful for populating an empty topology."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:620 extras_topology.xml:916 extras_topology.xml:973
-#: extras_topology.xml:1045 extras_topology.xml:1113 extras_topology.xml:1283
-#: extras_topology.xml:1333 extras_topology.xml:1790 extras_topology.xml:1892
-#: extras_topology.xml:1946 extras_topology.xml:2297
+#: extras_topology.xml:624 extras_topology.xml:920 extras_topology.xml:977
+#: extras_topology.xml:1049 extras_topology.xml:1117 extras_topology.xml:1288
+#: extras_topology.xml:1338 extras_topology.xml:1796 extras_topology.xml:1898
+#: extras_topology.xml:1952 extras_topology.xml:2367
 #, no-c-format
 msgid "Availability: 2.0"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:621
+#: extras_topology.xml:625
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details -- X.3.18"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:627
+#: extras_topology.xml:631
 #, no-c-format
 msgid ""
 "-- Populate topology --\n"
@@ -1154,19 +1175,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:633
+#: extras_topology.xml:637
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:639
+#: extras_topology.xml:643
 #, no-c-format
 msgid "TopoGeo_AddPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:641
+#: extras_topology.xml:645
 #, no-c-format
 msgid ""
 "Adds a point to an existing topology using a tolerance and possibly "
@@ -1174,7 +1195,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:648
+#: extras_topology.xml:652
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>TopoGeo_AddPoint</function></funcdef> "
@@ -1185,7 +1206,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:660
+#: extras_topology.xml:664
 #, no-c-format
 msgid ""
 "Adds a point to an existing topology and return its identifier. The given "
@@ -1194,7 +1215,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:674
+#: extras_topology.xml:678
 #, no-c-format
 msgid ""
 ", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddNode\"/>, <xref "
@@ -1202,24 +1223,24 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:685
+#: extras_topology.xml:689
 #, no-c-format
 msgid "TopoGeo_AddLineString"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:687
+#: extras_topology.xml:691
 #, no-c-format
 msgid ""
 "Adds a linestring to an existing topology using a tolerance and possibly "
-"splitting existing edges/faces."
+"splitting existing edges/faces. Returns edge identifiers"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:694
+#: extras_topology.xml:698
 #, no-c-format
 msgid ""
-"<funcdef>integer <function>TopoGeo_AddLineString</function></funcdef> "
+"<funcdef>SETOF integer <function>TopoGeo_AddLineString</function></funcdef> "
 "<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
 "<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
@@ -1227,7 +1248,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:706
+#: extras_topology.xml:710
 #, no-c-format
 msgid ""
 "Adds a linestring to an existing topology and return a set of edge "
@@ -1237,7 +1258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:720
+#: extras_topology.xml:724
 #, no-c-format
 msgid ""
 ", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddEdge\"/>, <xref "
@@ -1245,13 +1266,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:731
+#: extras_topology.xml:735
 #, no-c-format
 msgid "TopoGeo_AddPolygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:733
+#: extras_topology.xml:737
 #, no-c-format
 msgid ""
 "Adds a polygon to an existing topology using a tolerance and possibly "
@@ -1259,18 +1280,18 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:740
+#: extras_topology.xml:744
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> "
 "<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
-"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoly</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</"
 "parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:752
+#: extras_topology.xml:756
 #, no-c-format
 msgid ""
 "Adds a polygon to an existing topology and return a set of face identifiers "
@@ -1280,7 +1301,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:766
+#: extras_topology.xml:770
 #, no-c-format
 msgid ""
 ", <xref linkend=\"TopoGeo_AddLineString\"/>, <xref linkend=\"AddFace\"/>, "
@@ -1288,7 +1309,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:781
+#: extras_topology.xml:785
 #, no-c-format
 msgid ""
 "This section covers topology functions for adding, moving, deleting, and "
@@ -1297,19 +1318,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:784
+#: extras_topology.xml:788
 #, no-c-format
 msgid "Topology Editors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:788
+#: extras_topology.xml:792
 #, no-c-format
 msgid "ST_AddIsoNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:790
+#: extras_topology.xml:794
 #, no-c-format
 msgid ""
 "Adds an isolated node to a face in a topology and returns the nodeid of the "
@@ -1317,7 +1338,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:795
+#: extras_topology.xml:799
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_AddIsoNode</function></funcdef> "
@@ -1327,7 +1348,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:807
+#: extras_topology.xml:811
 #, no-c-format
 msgid ""
 "Adds an isolated node with point location <varname>apoint</varname> to an "
@@ -1336,7 +1357,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:808
+#: extras_topology.xml:812
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the point geometry is not the same "
@@ -1347,7 +1368,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:810
+#: extras_topology.xml:814
 #, no-c-format
 msgid ""
 "If <varname>aface</varname> is not null and the <varname>apoint</varname> is "
@@ -1355,13 +1376,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:814
+#: extras_topology.xml:818
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X+1.3.1"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:827
+#: extras_topology.xml:831
 #, no-c-format
 msgid ""
 ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>, "
@@ -1369,13 +1390,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:833
+#: extras_topology.xml:837
 #, no-c-format
 msgid "ST_AddIsoEdge"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:835
+#: extras_topology.xml:839
 #, no-c-format
 msgid ""
 "<refpurpose>Adds an isolated edge defined by geometry <varname>alinestring</"
@@ -1385,7 +1406,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:840
+#: extras_topology.xml:844
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_AddIsoEdge</function></funcdef> "
@@ -1397,7 +1418,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:853
+#: extras_topology.xml:857
 #, no-c-format
 msgid ""
 "<para>Adds an isolated edge defined by geometry <varname>alinestring</"
@@ -1407,7 +1428,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:854
+#: extras_topology.xml:858
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the <varname>alinestring</varname> "
@@ -1417,7 +1438,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:856
+#: extras_topology.xml:860
 #, no-c-format
 msgid ""
 "If the <varname>alinestring</varname> is not within the face of the face the "
@@ -1426,7 +1447,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:857
+#: extras_topology.xml:861
 #, no-c-format
 msgid ""
 "If the <varname>anode</varname> and <varname>anothernode</varname> are not "
@@ -1435,26 +1456,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:861
+#: extras_topology.xml:865
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.4"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:874
+#: extras_topology.xml:878
 #, no-c-format
 msgid ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:880
+#: extras_topology.xml:884
 #, no-c-format
 msgid "ST_AddEdgeNewFaces"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:882
+#: extras_topology.xml:886
 #, no-c-format
 msgid ""
 "Add a new edge and, if in doing so it splits a face, delete the original "
@@ -1462,7 +1483,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:887
+#: extras_topology.xml:891
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_AddEdgeNewFaces</function></funcdef> "
@@ -1474,7 +1495,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:900
+#: extras_topology.xml:904
 #, no-c-format
 msgid ""
 "Add a new edge and, if in doing so it splits a face, delete the original "
@@ -1483,14 +1504,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:906 extras_topology.xml:964 extras_topology.xml:1027
-#: extras_topology.xml:1095
+#: extras_topology.xml:910 extras_topology.xml:968 extras_topology.xml:1031
+#: extras_topology.xml:1099
 #, no-c-format
 msgid "Updates all existing joined edges and relationships accordingly."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:910 extras_topology.xml:968
+#: extras_topology.xml:914 extras_topology.xml:972
 #, no-c-format
 msgid ""
 "If any arguments are null, the given nodes are unknown (must already exist "
@@ -1501,7 +1522,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:913 extras_topology.xml:971 extras_topology.xml:1166
+#: extras_topology.xml:917 extras_topology.xml:975 extras_topology.xml:1170
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the <varname>acurve</varname> "
@@ -1509,20 +1530,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:917
+#: extras_topology.xml:921
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.12"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:937
+#: extras_topology.xml:941
 #, no-c-format
 msgid "ST_AddEdgeModFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:939
+#: extras_topology.xml:943
 #, no-c-format
 msgid ""
 "Add a new edge and, if in doing so it splits a face, modify the original "
@@ -1530,7 +1551,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:944
+#: extras_topology.xml:948
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_AddEdgeModFace</function></funcdef> "
@@ -1542,7 +1563,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:957
+#: extras_topology.xml:961
 #, no-c-format
 msgid ""
 "Add a new edge and, if in doing so it splits a face, modify the original "
@@ -1552,20 +1573,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:974
+#: extras_topology.xml:978
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.13"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:994
+#: extras_topology.xml:998
 #, no-c-format
 msgid "ST_RemEdgeNewFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:996
+#: extras_topology.xml:1000
 #, no-c-format
 msgid ""
 "<refpurpose>Removes an edge and, if the removed edge separated two faces, "
@@ -1573,7 +1594,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1004
+#: extras_topology.xml:1008
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_RemEdgeNewFace</function></funcdef> "
@@ -1582,7 +1603,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1015
+#: extras_topology.xml:1019
 #, no-c-format
 msgid ""
 "<para>Removes an edge and, if the removed edge separated two faces, delete "
@@ -1590,7 +1611,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1020
+#: extras_topology.xml:1024
 #, no-c-format
 msgid ""
 "Returns the id of a newly created face or NULL, if no new face is created. "
@@ -1600,7 +1621,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1031 extras_topology.xml:1099
+#: extras_topology.xml:1035 extras_topology.xml:1103
 #, no-c-format
 msgid ""
 "Refuses to remove an edge partecipating in the definition of an existing "
@@ -1609,7 +1630,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1038 extras_topology.xml:1106
+#: extras_topology.xml:1042 extras_topology.xml:1110
 #, no-c-format
 msgid ""
 "If any arguments are null, the given edge is unknown (must already exist in "
@@ -1618,20 +1639,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1046
+#: extras_topology.xml:1050
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.14"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1066
+#: extras_topology.xml:1070
 #, no-c-format
 msgid "ST_RemEdgeModFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1068
+#: extras_topology.xml:1072
 #, no-c-format
 msgid ""
 "Removes an edge and, if the removed edge separated two faces, delete one of "
@@ -1639,7 +1660,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1076
+#: extras_topology.xml:1080
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_RemEdgeModFace</function></funcdef> "
@@ -1648,7 +1669,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1087
+#: extras_topology.xml:1091
 #, no-c-format
 msgid ""
 "Removes an edge and, if the removed edge separated two faces, delete one of "
@@ -1659,20 +1680,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1114
+#: extras_topology.xml:1118
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.15"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1134
+#: extras_topology.xml:1138
 #, no-c-format
 msgid "ST_ChangeEdgeGeom"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1136
+#: extras_topology.xml:1140
 #, no-c-format
 msgid ""
 "<refpurpose>Changes the shape of an edge without affecting the topology "
@@ -1680,7 +1701,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1143
+#: extras_topology.xml:1147
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_ChangeEdgeGeom</function></funcdef> "
@@ -1690,7 +1711,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1155
+#: extras_topology.xml:1159
 #, no-c-format
 msgid ""
 "<para>Changes the shape of an edge without affecting the topology structure."
@@ -1698,7 +1719,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1158
+#: extras_topology.xml:1162
 #, no-c-format
 msgid ""
 "If any arguments are null, the given edge does not exist in the "
@@ -1710,14 +1731,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1167
+#: extras_topology.xml:1171
 #, no-c-format
 msgid ""
 "If the new <varname>acurve</varname> is not simple, then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1169
+#: extras_topology.xml:1173
 #, no-c-format
 msgid ""
 "If moving the edge from old to new position would hit an obstacle then an "
@@ -1725,26 +1746,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1175
+#: extras_topology.xml:1179
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1178
+#: extras_topology.xml:1182
 #, no-c-format
 msgid "Enhanced: 2.0.0 adds topological consistency enforcement"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1182
+#: extras_topology.xml:1186
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details X.3.6"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1188
+#: extras_topology.xml:1192
 #, no-c-format
 msgid ""
 "SELECT topology.ST_ChangeEdgeGeom('ma_topo', 1,  \n"
@@ -1755,13 +1776,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1202
+#: extras_topology.xml:1206
 #, no-c-format
 msgid "ST_ModEdgeSplit"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1204
+#: extras_topology.xml:1208
 #, no-c-format
 msgid ""
 "Split an edge by creating a new node along an existing edge, modifying the "
@@ -1769,39 +1790,39 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1209
+#: extras_topology.xml:1213
 #, no-c-format
 msgid ""
-"<funcdef>text <function>ST_ModEdgeSplit</function></funcdef> "
+"<funcdef>integer <function>ST_ModEdgeSplit</function></funcdef> "
 "<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
 "<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1221
+#: extras_topology.xml:1225
 #, no-c-format
 msgid ""
 "Split an edge by creating a new node along an existing edge, modifying the "
 "original edge and adding a new edge. Updates all existing joined edges and "
-"relationships accordingly."
+"relationships accordingly. Returns the identifier of the newly added node."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1229
+#: extras_topology.xml:1234
 #, no-c-format
 msgid "Changed: 2.0 - In prior versions, this was misnamed ST_ModEdgesSplit"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1230 extras_topology.xml:1284 extras_topology.xml:1334
+#: extras_topology.xml:1235 extras_topology.xml:1289 extras_topology.xml:1339
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.9"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1236
+#: extras_topology.xml:1241
 #, no-c-format
 msgid ""
 "-- Add an edge --\n"
@@ -1813,15 +1834,15 @@ msgid ""
 "\n"
 "\n"
 "-- Split the edge  --\n"
-"SELECT topology.ST_ModEdgeSplit('ma_topo',  3, ST_SetSRID(ST_Point"
-"(227594,893910),26986)  ) As result;\n"
-"         result\n"
+"SELECT topology.ST_ModEdgeSplit('ma_topo',  3, "
+"ST_SetSRID(ST_Point(227594,893910),26986)  ) As node_id;\n"
+"        node_id\n"
 "-------------------------\n"
 "7"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1242
+#: extras_topology.xml:1247
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ModEdgeHeal\"/>, <xref linkend=\"ST_NewEdgeHeal\"/>, "
@@ -1829,13 +1850,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1253
+#: extras_topology.xml:1258
 #, no-c-format
 msgid "ST_ModEdgeHeal"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1255
+#: extras_topology.xml:1260
 #, no-c-format
 msgid ""
 "Heal two edges by deleting the node connecting them, modifying the first "
@@ -1843,7 +1864,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1263
+#: extras_topology.xml:1268
 #, no-c-format
 msgid ""
 "<funcdef>int <function>ST_ModEdgeHeal</function></funcdef> "
@@ -1853,7 +1874,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1275
+#: extras_topology.xml:1280
 #, no-c-format
 msgid ""
 "Heal two edges by deleting the node connecting them, modifying the first "
@@ -1862,13 +1883,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1300
+#: extras_topology.xml:1305
 #, no-c-format
 msgid "ST_NewEdgeHeal"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1302
+#: extras_topology.xml:1307
 #, no-c-format
 msgid ""
 "Heal two edges by deleting the node connecting them, deleting both edges, "
@@ -1877,7 +1898,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1311
+#: extras_topology.xml:1316
 #, no-c-format
 msgid ""
 "<funcdef>int <function>ST_NewEdgeHeal</function></funcdef> "
@@ -1887,7 +1908,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1323
+#: extras_topology.xml:1328
 #, no-c-format
 msgid ""
 "Heal two edges by deleting the node connecting them, deleting both edges, "
@@ -1897,13 +1918,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1351
+#: extras_topology.xml:1356
 #, no-c-format
 msgid "ST_MoveIsoNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1353
+#: extras_topology.xml:1358
 #, no-c-format
 msgid ""
 "Moves an isolated node in a topology from one point to another. If new "
@@ -1912,7 +1933,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1358
+#: extras_topology.xml:1363
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_MoveIsoNode</function></funcdef> "
@@ -1922,7 +1943,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1370
+#: extras_topology.xml:1375
 #, no-c-format
 msgid ""
 "Moves an isolated node in a topology from one point to another. If new "
@@ -1930,7 +1951,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1371
+#: extras_topology.xml:1376
 #, no-c-format
 msgid ""
 "If any arguments are null, the <varname>apoint</varname> is not a point, the "
@@ -1940,7 +1961,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1372
+#: extras_topology.xml:1377
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the point geometry is not the same "
@@ -1948,37 +1969,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1377
+#: extras_topology.xml:1382
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.2"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1383
+#: extras_topology.xml:1388
 #, no-c-format
 msgid ""
 "-- Add an isolated node with no face  --\n"
-"SELECT topology.ST_AddIsoNode('ma_topo',  NULL, ST_GeomFromText('POINT"
-"(227579 893916)', 26986) ) As nodeid;\n"
+"SELECT topology.ST_AddIsoNode('ma_topo',  NULL, "
+"ST_GeomFromText('POINT(227579 893916)', 26986) ) As nodeid;\n"
 " nodeid\n"
 "--------\n"
 "      7\n"
 "-- Move the new node --\n"
-"SELECT topology.ST_MoveIsoNode('ma_topo', 7,  ST_GeomFromText('POINT"
-"(227579.5 893916.5)', 26986) ) As descrip; \n"
+"SELECT topology.ST_MoveIsoNode('ma_topo', 7,  "
+"ST_GeomFromText('POINT(227579.5 893916.5)', 26986) ) As descrip; \n"
 "                      descrip\n"
 "----------------------------------------------------\n"
 "Isolated Node 7 moved to location 227579.5,893916.5"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1394
+#: extras_topology.xml:1399
 #, no-c-format
 msgid "ST_NewEdgesSplit"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1396
+#: extras_topology.xml:1401
 #, no-c-format
 msgid ""
 "Split an edge by creating a new node along an existing edge, deleting the "
@@ -1987,7 +2008,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1401
+#: extras_topology.xml:1406
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
@@ -1997,7 +2018,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1413
+#: extras_topology.xml:1418
 #, no-c-format
 msgid ""
 "Split an edge with edge id <varname>anedge</varname> by creating a new node "
@@ -2008,7 +2029,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1421
+#: extras_topology.xml:1426
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the point geometry is not the same "
@@ -2019,13 +2040,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1426
+#: extras_topology.xml:1431
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.8"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1432
+#: extras_topology.xml:1437
 #, no-c-format
 msgid ""
 "-- Add an edge  --\n"
@@ -2036,21 +2057,21 @@ msgid ""
 "------\n"
 "        2\n"
 "-- Split the new edge --\n"
-"SELECT topology.ST_NewEdgesSplit('ma_topo', 2,  ST_GeomFromText('POINT"
-"(227578.5 893913.5)', 26986) ) As newnodeid; \n"
+"SELECT topology.ST_NewEdgesSplit('ma_topo', 2,  "
+"ST_GeomFromText('POINT(227578.5 893913.5)', 26986) ) As newnodeid; \n"
 " newnodeid\n"
 "---------\n"
 "       6"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1449
+#: extras_topology.xml:1454
 #, no-c-format
 msgid "ST_RemoveIsoNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1451
+#: extras_topology.xml:1456
 #, no-c-format
 msgid ""
 "<refpurpose>Removes an isolated node and returns description of action. If "
@@ -2059,7 +2080,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1456
+#: extras_topology.xml:1461
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
@@ -2068,7 +2089,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1467
+#: extras_topology.xml:1472
 #, no-c-format
 msgid ""
 "<para>Removes an isolated node and returns description of action. If the "
@@ -2077,14 +2098,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1472
+#: extras_topology.xml:1477
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X+1.3.3"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1478
+#: extras_topology.xml:1483
 #, no-c-format
 msgid ""
 "-- Add an isolated node with no face  --\n"
@@ -2095,25 +2116,25 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1490
+#: extras_topology.xml:1495
 #, no-c-format
 msgid "Topology Accessors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1493
+#: extras_topology.xml:1498
 #, no-c-format
 msgid "GetEdgeByPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1495
+#: extras_topology.xml:1500
 #, no-c-format
 msgid "Find the edge-id of an edge that intersects a given point"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1500
+#: extras_topology.xml:1505
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>GetEdgeByPoint</function></funcdef> "
@@ -2123,13 +2144,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1511
+#: extras_topology.xml:1516
 #, no-c-format
 msgid "Retrieve the id of an edge that intersects a Point"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1513
+#: extras_topology.xml:1518
 #, no-c-format
 msgid ""
 "The function returns an integer (id-edge) given a topology, a POINT and a "
@@ -2137,7 +2158,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1514 extras_topology.xml:1562
+#: extras_topology.xml:1519 extras_topology.xml:1567
 #, no-c-format
 msgid ""
 "If the point is the location of a node, then an exception is thrown. To "
@@ -2145,13 +2166,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1515
+#: extras_topology.xml:1520
 #, no-c-format
 msgid "If the point doesn't intersect an edge, returns 0 (zero)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1516
+#: extras_topology.xml:1521
 #, no-c-format
 msgid ""
 "If use tolerance > 0 and there is more than one edge near the point then an "
@@ -2159,26 +2180,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1521
+#: extras_topology.xml:1526
 #, no-c-format
 msgid ""
 "If tolerance = 0, the function use ST_Intersects otherwise uses ST_DWithin."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1524 extras_topology.xml:1571 extras_topology.xml:1618
+#: extras_topology.xml:1529 extras_topology.xml:1576 extras_topology.xml:1623
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1530 extras_topology.xml:1624
+#: extras_topology.xml:1535 extras_topology.xml:1629
 #, no-c-format
 msgid "These examples use edges we created in <xref linkend=\"AddEdge\"/>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1531
+#: extras_topology.xml:1536
 #, no-c-format
 msgid ""
 "SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology."
@@ -2190,7 +2211,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1532
+#: extras_topology.xml:1537
 #, no-c-format
 msgid ""
 "SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As nearnode\n"
@@ -2201,25 +2222,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1539
+#: extras_topology.xml:1544
 #, no-c-format
 msgid ", <xref linkend=\"GetNodeByPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1545
+#: extras_topology.xml:1550
 #, no-c-format
 msgid "GetFaceByPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1546
+#: extras_topology.xml:1551
 #, no-c-format
 msgid "Find the face-id of a face that intersects a given point"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1550
+#: extras_topology.xml:1555
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>GetFaceByPoint</function></funcdef> "
@@ -2229,13 +2250,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1560
+#: extras_topology.xml:1565
 #, no-c-format
 msgid "Retrieve the id of a face that intersects a Point."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1561
+#: extras_topology.xml:1566
 #, no-c-format
 msgid ""
 "The function returns an integer (id-face) given a topology, a POINT and a "
@@ -2243,13 +2264,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1563
+#: extras_topology.xml:1568
 #, no-c-format
 msgid "If the point doesn't intersect a face, returns 0 (zero)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1564
+#: extras_topology.xml:1569
 #, no-c-format
 msgid ""
 "If use tolerance > 0 and there is more than one face near the point then an "
@@ -2257,20 +2278,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1568
+#: extras_topology.xml:1573
 #, no-c-format
 msgid ""
 "If tolerance = 0, the function uses ST_Intersects otherwise uses ST_DWithin."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1575
+#: extras_topology.xml:1580
 #, no-c-format
 msgid "These examples use edges faces created in <xref linkend=\"AddFace\"/>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1576
+#: extras_topology.xml:1581
 #, no-c-format
 msgid ""
 "SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology."
@@ -2283,7 +2304,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1577
+#: extras_topology.xml:1582
 #, no-c-format
 msgid ""
 "SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode\n"
@@ -2294,26 +2315,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1582
+#: extras_topology.xml:1587
 #, no-c-format
 msgid ""
 ", <xref linkend=\"GetNodeByPoint\"/>, <xref linkend=\"GetEdgeByPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1588
+#: extras_topology.xml:1593
 #, no-c-format
 msgid "GetNodeByPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1590
+#: extras_topology.xml:1595
 #, no-c-format
 msgid "Find the id of a node at a point location"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1595
+#: extras_topology.xml:1600
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>GetNodeByPoint</function></funcdef> "
@@ -2323,13 +2344,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1606
+#: extras_topology.xml:1611
 #, no-c-format
 msgid "Retrieve the id of a node at a point location"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1608
+#: extras_topology.xml:1613
 #, no-c-format
 msgid ""
 "The function return an integer (id-node) given a topology, a POINT and a "
@@ -2338,13 +2359,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1609
+#: extras_topology.xml:1614
 #, no-c-format
 msgid "If there isn't a node at the point, it return 0 (zero)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1610
+#: extras_topology.xml:1615
 #, no-c-format
 msgid ""
 "If use tolerance > 0 and near the point there are more than one node it "
@@ -2352,7 +2373,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1615
+#: extras_topology.xml:1620
 #, no-c-format
 msgid ""
 "If tolerance = 0, the function use ST_Intersects otherwise will use "
@@ -2360,7 +2381,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1625
+#: extras_topology.xml:1630
 #, no-c-format
 msgid ""
 "SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode \n"
@@ -2371,7 +2392,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1626
+#: extras_topology.xml:1631
 #, no-c-format
 msgid ""
 "SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance\n"
@@ -2382,19 +2403,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1633
+#: extras_topology.xml:1638
 #, no-c-format
 msgid ", <xref linkend=\"GetEdgeByPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1639
+#: extras_topology.xml:1644
 #, no-c-format
 msgid "GetTopologyID"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1641
+#: extras_topology.xml:1646
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the id of a topology in the topology.topology table "
@@ -2402,7 +2423,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1646 extras_topology.xml:1688
+#: extras_topology.xml:1651 extras_topology.xml:1693
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>GetTopologyID</function></funcdef> "
@@ -2410,7 +2431,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1656
+#: extras_topology.xml:1661
 #, no-c-format
 msgid ""
 "<para>Returns the id of a topology in the topology.topology table given the "
@@ -2418,7 +2439,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1664
+#: extras_topology.xml:1669
 #, no-c-format
 msgid ""
 "SELECT topology.GetTopologyID('ma_topo') As topo_id;\n"
@@ -2428,7 +2449,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1670
+#: extras_topology.xml:1675
 #, no-c-format
 msgid ""
 ", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
@@ -2436,13 +2457,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1681
+#: extras_topology.xml:1686
 #, no-c-format
 msgid "GetTopologySRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1683
+#: extras_topology.xml:1688
 #, no-c-format
 msgid ""
 "Returns the SRID of a topology in the topology.topology table given the name "
@@ -2450,7 +2471,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1698
+#: extras_topology.xml:1703
 #, no-c-format
 msgid ""
 "Returns the spatial reference id of a topology in the topology.topology "
@@ -2458,7 +2479,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1706
+#: extras_topology.xml:1711
 #, no-c-format
 msgid ""
 "SELECT topology.GetTopologySRID('ma_topo') As SRID;\n"
@@ -2468,7 +2489,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1712
+#: extras_topology.xml:1717
 #, no-c-format
 msgid ""
 ", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
@@ -2476,19 +2497,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1723
+#: extras_topology.xml:1728
 #, no-c-format
 msgid "GetTopologyName"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1725
+#: extras_topology.xml:1730
 #, no-c-format
 msgid "Returns the name of a topology (schema) given the id of the topology."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1730
+#: extras_topology.xml:1735
 #, no-c-format
 msgid ""
 "<funcdef>varchar <function>GetTopologyName</function></funcdef> "
@@ -2496,7 +2517,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1740
+#: extras_topology.xml:1745
 #, no-c-format
 msgid ""
 "Returns the topology name (schema) of a topology from the topology.topology "
@@ -2504,7 +2525,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1748
+#: extras_topology.xml:1753
 #, no-c-format
 msgid ""
 "SELECT topology.GetTopologyName(1) As topo_name;\n"
@@ -2514,7 +2535,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1754
+#: extras_topology.xml:1759
 #, no-c-format
 msgid ""
 ", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyID\"/>, <xref "
@@ -2522,21 +2543,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1765
+#: extras_topology.xml:1770
 #, no-c-format
 msgid "ST_GetFaceEdges"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1767
+#: extras_topology.xml:1772
 #, no-c-format
-msgid ""
-"Returns a set of ordered edges that bound <varname>aface</varname> includes "
-"the sequence order."
+msgid "Returns a set of ordered edges that bound <varname>aface</varname>."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1772
+#: extras_topology.xml:1777
 #, no-c-format
 msgid ""
 "<funcdef>getfaceedges_returntype <function>ST_GetFaceEdges</function></"
@@ -2546,30 +2565,32 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1783
+#: extras_topology.xml:1788
 #, no-c-format
 msgid ""
-"Returns a set of ordered edges that bound <varname>aface</varname> includes "
-"the sequence order. Each output consists of a sequence and edgeid. Sequence "
-"numbers start with value 1."
+"Returns a set of ordered edges that bound <varname>aface</varname>. Each "
+"output consists of a sequence and edgeid. Sequence numbers start with value "
+"1."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1785
+#: extras_topology.xml:1790
 #, no-c-format
 msgid ""
-"Enumeration of each ring edges start from the edge with smallest identifier."
+"Enumeration of each ring edges start from the edge with smallest identifier. "
+"Order of edges follows a left-hand-rule (bound face is on the left of each "
+"directed edge)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1791
+#: extras_topology.xml:1797
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.5"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1797
+#: extras_topology.xml:1803
 #, no-c-format
 msgid ""
 "-- Returns the edges bounding face 1\n"
@@ -2588,7 +2609,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1798
+#: extras_topology.xml:1804
 #, no-c-format
 msgid ""
 "-- Returns the sequenc, edge id\n"
@@ -2600,25 +2621,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1804
+#: extras_topology.xml:1810
 #, no-c-format
 msgid ", <xref linkend=\"AddFace\"/>, <xref linkend=\"ST_GetFaceGeometry\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1814
+#: extras_topology.xml:1820
 #, no-c-format
 msgid "ST_GetFaceGeometry"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1816
+#: extras_topology.xml:1822
 #, no-c-format
 msgid "Returns the polygon in the given topology with the specified face id."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1821
+#: extras_topology.xml:1827
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
@@ -2627,7 +2648,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1832
+#: extras_topology.xml:1838
 #, no-c-format
 msgid ""
 "Returns the polygon in the given topology with the specified face id. Builds "
@@ -2635,14 +2656,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1837
+#: extras_topology.xml:1843
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.16"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1843
+#: extras_topology.xml:1849
 #, no-c-format
 msgid ""
 "-- Returns the wkt of the polygon added with AddFace\n"
@@ -2658,19 +2679,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1855
+#: extras_topology.xml:1861
 #, no-c-format
 msgid "GetRingEdges"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1857
+#: extras_topology.xml:1863
 #, no-c-format
 msgid "Returns an ordered set of edges forming a ring with the given edge ."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1864
+#: extras_topology.xml:1870
 #, no-c-format
 msgid ""
 "<funcdef>getfaceedges_returntype <function>GetRingEdges</function></funcdef> "
@@ -2681,7 +2702,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1876
+#: extras_topology.xml:1882
 #, no-c-format
 msgid ""
 "Returns an ordered set of edges forming a ring with the given edge. Each "
@@ -2691,7 +2712,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1884
+#: extras_topology.xml:1890
 #, no-c-format
 msgid ""
 "If <varname>max_edges</varname> is not null no more than those records are "
@@ -2700,25 +2721,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1899
+#: extras_topology.xml:1905
 #, no-c-format
 msgid ", <xref linkend=\"GetNodeEdges\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1908
+#: extras_topology.xml:1914
 #, no-c-format
 msgid "GetNodeEdges"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1910
+#: extras_topology.xml:1916
 #, no-c-format
 msgid "Returns an ordered set of edges incident to the given node."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1917
+#: extras_topology.xml:1923
 #, no-c-format
 msgid ""
 "<funcdef>getfaceedges_returntype <function>GetNodeEdges</function></funcdef> "
@@ -2727,7 +2748,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1928
+#: extras_topology.xml:1934
 #, no-c-format
 msgid ""
 "Returns an ordered set of edges incident to the given node. Each output "
@@ -2738,7 +2759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1939
+#: extras_topology.xml:1945
 #, no-c-format
 msgid ""
 "This function computes ordering rather than deriving from metadata and is "
@@ -2746,13 +2767,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1952
+#: extras_topology.xml:1958
 #, no-c-format
 msgid ", <xref linkend=\"ST_Azimuth\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1965
+#: extras_topology.xml:1971
 #, no-c-format
 msgid ""
 "This section covers the functions for processing topologies in non-standard "
@@ -2760,25 +2781,25 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1968
+#: extras_topology.xml:1974
 #, no-c-format
 msgid "Topology Processing"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1971
+#: extras_topology.xml:1977
 #, no-c-format
 msgid "Polygonize"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1972
+#: extras_topology.xml:1978
 #, no-c-format
 msgid "Find and register all faces defined by topology edges"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1976
+#: extras_topology.xml:1982
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Polygonize</function></funcdef> "
@@ -2786,19 +2807,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1986
+#: extras_topology.xml:1992
 #, no-c-format
 msgid "Register all faces that can be built out a topology edge primitives."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1987
+#: extras_topology.xml:1993
 #, no-c-format
 msgid "The target topology is assumed to contain no self-intersecting edges."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1988
+#: extras_topology.xml:1994
 #, no-c-format
 msgid ""
 "Already known faces are recognized, so it is safe to call Polygonize "
@@ -2806,7 +2827,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1989 extras_topology.xml:2142
+#: extras_topology.xml:1995 extras_topology.xml:2148
 #, no-c-format
 msgid ""
 "This function does not use nor set the next_left_edge and next_right_edge "
@@ -2814,19 +2835,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2001
+#: extras_topology.xml:2007
 #, no-c-format
 msgid ", <xref linkend=\"ST_Polygonize\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2007
+#: extras_topology.xml:2013
 #, no-c-format
 msgid "AddNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2009
+#: extras_topology.xml:2015
 #, no-c-format
 msgid ""
 "Adds a point node to the node table in the specified topology schema and "
@@ -2835,7 +2856,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2014
+#: extras_topology.xml:2020
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>AddNode</function></funcdef> "
@@ -2848,7 +2869,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2027
+#: extras_topology.xml:2033
 #, no-c-format
 msgid ""
 "Adds a point node to the node table in the specified topology schema. The "
@@ -2857,7 +2878,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2034
+#: extras_topology.xml:2040
 #, no-c-format
 msgid ""
 "If any edge crossing the node is found either an exception is raised or the "
@@ -2866,7 +2887,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2040
+#: extras_topology.xml:2046
 #, no-c-format
 msgid ""
 "If <varname>computeContainingFace</varname> is true a newly added node would "
@@ -2874,7 +2895,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2045
+#: extras_topology.xml:2051
 #, no-c-format
 msgid ""
 "If the <varname>apoint</varname> geometry already exists as a node, the node "
@@ -2882,7 +2903,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2054
+#: extras_topology.xml:2060
 #, no-c-format
 msgid ""
 "SELECT topology.AddNode('ma_topo', ST_GeomFromText('POINT(227641.6 "
@@ -2894,13 +2915,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2066
+#: extras_topology.xml:2072
 #, no-c-format
 msgid "AddEdge"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2068
+#: extras_topology.xml:2074
 #, no-c-format
 msgid ""
 "Adds a linestring edge to the edge table and associated start and end points "
@@ -2910,7 +2931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2073
+#: extras_topology.xml:2079
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>AddEdge</function></funcdef> "
@@ -2919,7 +2940,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2084
+#: extras_topology.xml:2090
 #, no-c-format
 msgid ""
 "Adds an edge to the edge table and associated nodes to the nodes table of "
@@ -2929,7 +2950,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2086
+#: extras_topology.xml:2092
 #, no-c-format
 msgid ""
 "If the <varname>aline</varname> geometry crosses, overlaps, contains or is "
@@ -2938,7 +2959,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2087
+#: extras_topology.xml:2093
 #, no-c-format
 msgid ""
 "The geometry of <varname>aline</varname> must have the same <varname>srid</"
@@ -2947,13 +2968,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2091
+#: extras_topology.xml:2097
 #, no-c-format
 msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2097
+#: extras_topology.xml:2103
 #, no-c-format
 msgid ""
 "SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 "
@@ -2979,19 +3000,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2103
+#: extras_topology.xml:2109
 #, no-c-format
 msgid ", <xref linkend=\"spatial_ref_sys\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2109
+#: extras_topology.xml:2115
 #, no-c-format
 msgid "AddFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2111
+#: extras_topology.xml:2117
 #, no-c-format
 msgid ""
 "<refpurpose>Registers a face primitive to a topology and get it's identifier."
@@ -2999,7 +3020,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2118
+#: extras_topology.xml:2124
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>AddFace</function></funcdef> "
@@ -3010,7 +3031,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2130
+#: extras_topology.xml:2136
 #, no-c-format
 msgid ""
 "<para>Registers a face primitive to a topology and get it's identifier.</"
@@ -3018,7 +3039,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2134
+#: extras_topology.xml:2140
 #, no-c-format
 msgid ""
 "For a newly added face, the edges forming its boundaries and the ones "
@@ -3028,7 +3049,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2146
+#: extras_topology.xml:2152
 #, no-c-format
 msgid ""
 "The target topology is assumed to be valid (containing no self-intersecting "
@@ -3037,7 +3058,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2148
+#: extras_topology.xml:2154
 #, no-c-format
 msgid ""
 "If the <varname>apolygon</varname> geometry already exists as a face, then: "
@@ -3047,7 +3068,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2156
+#: extras_topology.xml:2162
 #, no-c-format
 msgid ""
 "When a new registration of an existing face is performed (force_new=true), "
@@ -3057,7 +3078,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2163
+#: extras_topology.xml:2169
 #, no-c-format
 msgid ""
 "The <varname>apolygon</varname> geometry must have the same <varname>srid</"
@@ -3066,14 +3087,14 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2172
+#: extras_topology.xml:2178
 #, no-c-format
 msgid ""
 "-- first add the edges we use generate_series as an iterator (the below \n"
 "-- will only work for polygons with < 10000 points because of our max in "
 "gs) \n"
-"SELECT topology.AddEdge('ma_topo', ST_MakeLine(ST_PointN(geom,i), ST_PointN"
-"(geom, i + 1) )) As edgeid\n"
+"SELECT topology.AddEdge('ma_topo', ST_MakeLine(ST_PointN(geom,i), "
+"ST_PointN(geom, i + 1) )) As edgeid\n"
 "    FROM (SELECT  ST_NPoints(geom) AS npt, geom\n"
 "            FROM \n"
 "                (SELECT ST_Boundary(ST_GeomFromText('POLYGON((234896.5 "
@@ -3113,33 +3134,96 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2178
+#: extras_topology.xml:2184
 #, no-c-format
 msgid ""
 ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"spatial_ref_sys\"/>"
 msgstr ""
 
+#. Tag: refname
+#: extras_topology.xml:2190
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2191
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2197
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>TopoGeometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
 #. Tag: para
-#: extras_topology.xml:2188
+#: extras_topology.xml:2207
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm on each component edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2210
+#, no-c-format
+msgid "The returned geometry may be non-simple or non-valid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2211
+#, no-c-format
+msgid "Splitting component edges may help retaining simplicity/validity."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2213
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2214 extras_topology.xml:2740
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2219
+#, no-c-format
+msgid ""
+"Geometry <xref linkend=\"ST_Simplify\"/>, <xref linkend=\"ST_IsSimple\"/>, "
+"<xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_ModEdgeSplit\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2229
 #, no-c-format
 msgid ""
 "This section covers the topology functions for creating new topogeometries."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2191
+#: extras_topology.xml:2232
 #, no-c-format
 msgid "TopoGeometry Constructors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2194
+#: extras_topology.xml:2235
 #, no-c-format
 msgid "CreateTopoGeom"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2196
+#: extras_topology.xml:2237
 #, no-c-format
 msgid ""
 "Creates a new topo geometry object from topo element array - tg_type: 1:"
@@ -3147,7 +3231,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:2200
+#: extras_topology.xml:2241
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
@@ -3163,7 +3247,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2221 extras_topology.xml:2283
+#: extras_topology.xml:2262
 #, no-c-format
 msgid ""
 "Creates a topogeometry object for layer denoted by layer_id and registers it "
@@ -3171,7 +3255,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2222
+#: extras_topology.xml:2263
 #, no-c-format
 msgid ""
 "tg_type is an integer: 1:[multi]point (punctal), 2:[multi]line (lineal), 3:"
@@ -3180,7 +3264,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2223
+#: extras_topology.xml:2264
 #, no-c-format
 msgid ""
 "punctal layers are formed from set of nodes, lineal layers are formed from a "
@@ -3189,20 +3273,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2225
+#: extras_topology.xml:2266
 #, no-c-format
 msgid ""
 "Omitting the array of components generates an empty TopoGeometry object."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2232
+#: extras_topology.xml:2273
 #, no-c-format
 msgid "Examples: Form from existing edges"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2233
+#: extras_topology.xml:2274
 #, no-c-format
 msgid ""
 "Create a topogeom in ri_topo schema for layer 2 (our ri_roads), of type (2) "
@@ -3210,7 +3294,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2234
+#: extras_topology.xml:2275
 #, no-c-format
 msgid ""
 "INSERT INTO ri.ri_roads(road_name, topo) VALUES('Unknown', topology."
@@ -3218,13 +3302,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2239
+#: extras_topology.xml:2280
 #, no-c-format
 msgid "Examples: Convert an areal geometry to best guess topogeometry"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2240
+#: extras_topology.xml:2281
 #, no-c-format
 msgid ""
 "Lets say we have geometries that should be formed from a collection of "
@@ -3234,7 +3318,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2242
+#: extras_topology.xml:2283
 #, no-c-format
 msgid ""
 "-- create our topo geometry column --\n"
@@ -3262,7 +3346,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2244
+#: extras_topology.xml:2285
 #, no-c-format
 msgid ""
 "--the world is rarely perfect allow for some error\n"
@@ -3281,8 +3365,8 @@ msgid ""
 "                OR\n"
 " (  ST_Intersects(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
 "face_id))\n"
-"            AND ST_Area(ST_Intersection(b.geom, topology.ST_GetFaceGeometry"
-"('topo_boston', f.face_id) ) ) > \n"
+"            AND ST_Area(ST_Intersection(b.geom, topology."
+"ST_GetFaceGeometry('topo_boston', f.face_id) ) ) > \n"
 "                ST_Area(topology.ST_GetFaceGeometry('topo_boston', f."
 "face_id))*0.5\n"
 "                )\n"
@@ -3298,7 +3382,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2250
+#: extras_topology.xml:2291
 #, no-c-format
 msgid ""
 ", <xref linkend=\"toTopoGeom\"/> <xref linkend=\"ST_CreateTopoGeo\"/>, <xref "
@@ -3307,40 +3391,60 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2263
+#: extras_topology.xml:2304 extras_topology.xml:2480
 #, no-c-format
 msgid "toTopoGeom"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2265
+#: extras_topology.xml:2306
 #, no-c-format
-msgid "Creates a new topo geometry from a simple geometry"
+msgid "Converts a simple Geometry into a topo geometry"
 msgstr ""
 
-#. Tag: funcprototype
-#: extras_topology.xml:2270
+#. Tag: funcsynopsis
+#: extras_topology.xml:2312
 #, no-c-format
 msgid ""
-"<funcdef>topogeometry <function>toTopoGeom</function></funcdef> "
-"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
-"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
-"<paramdef><type>integer</type> <parameter>layer_id</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</"
-"parameter></paramdef>"
+"<funcprototype> <funcdef>topogeometry <function>toTopoGeom</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>toTopoGeom</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>topogeometry </type> "
+"<parameter>topogeom</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>float8</type> <parameter>tolerance</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2333
+#, no-c-format
+msgid "Converts a simple Geometry into a <xref linkend=\"topogeometry\"/>."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2287
+#: extras_topology.xml:2337
 #, no-c-format
 msgid ""
 "Topological primitives required to represent the input geometry will be "
-"added, possibly splitting existing ones. Pre-existing TopoGeometry objects "
-"will retain their shapes."
+"added to the underlying topology, possibly splitting existing ones, and they "
+"will be associated with the output TopoGeometry in the <varname>relation</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2344
+#, no-c-format
+msgid ""
+"Existing TopoGeometry objects (with the possible exception of "
+"<varname>topogeom</varname>, if given) will retain their shapes."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2292
+#: extras_topology.xml:2349
 #, no-c-format
 msgid ""
 "When <varname>tolerance</varname> is given it will be used to snap the input "
@@ -3348,13 +3452,38 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2301
+#: extras_topology.xml:2354
+#, no-c-format
+msgid ""
+"In the first form a new TopoGeometry will be created for the given layer "
+"(<varname>layer_id</varname>) of the given topology (<varname>toponame</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2359
+#, no-c-format
+msgid ""
+"In the second form the primitives resulting from the conversion will be "
+"added to the pre-existing TopoGeometry (<varname>topogeom</varname>), "
+"possibly adding space to its final shape. To have the new shape completely "
+"replace the old one see <xref linkend=\"clearTopoGeom\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2368
+#, no-c-format
+msgid "Enhanced: 2.1.0 adds the version taking an existing TopoGeometry."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2372
 #, no-c-format
 msgid "This is a full self-contained workflow"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2302
+#: extras_topology.xml:2373
 #, no-c-format
 msgid ""
 "-- do this if you don't have a topology setup already\n"
@@ -3387,22 +3516,40 @@ msgid ""
 " Deploy: public.nei_topo.topo"
 msgstr ""
 
+#. Tag: programlisting
+#: extras_topology.xml:2375
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);\n"
+"\n"
+"-- Get the no-one-lands left by the above operation\n"
+"-- I think GRASS calls this \"polygon0 layer\"\n"
+"SELECT ST_GetFaceGeometry('topo_boston_test', f.face_id) \n"
+"  FROM topo_boston_test.face f\n"
+"  WHERE f.face_id > 0 -- don't consider the universe face\n"
+"  AND NOT EXISTS ( -- check that no TopoGeometry references the face\n"
+"    SELECT * FROM topo_boston_test.relation\n"
+"    WHERE layer_id = 1 AND element_id = f.face_id\n"
+"  );"
+msgstr ""
+
 #. Tag: para
-#: extras_topology.xml:2308
+#: extras_topology.xml:2381
 #, no-c-format
 msgid ""
-",<xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom\"/"
-">, <xref linkend=\"TopologySummary\"/>"
+", <xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom"
+"\"/>, <xref linkend=\"TopologySummary\"/>, <xref linkend=\"clearTopoGeom\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2315
+#: extras_topology.xml:2393
 #, no-c-format
 msgid "TopoElementArray_Agg"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2316
+#: extras_topology.xml:2394
 #, no-c-format
 msgid ""
 "Returns a <varname>topoelementarray</varname> for a set of element_id, type "
@@ -3410,7 +3557,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2321
+#: extras_topology.xml:2399
 #, no-c-format
 msgid ""
 "<funcdef>topoelementarray <function>TopoElementArray_Agg</function></"
@@ -3419,7 +3566,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2331
+#: extras_topology.xml:2409
 #, no-c-format
 msgid ""
 "Used to create a <xref linkend=\"topoelementarray\"/> from a set of <xref "
@@ -3427,7 +3574,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2340
+#: extras_topology.xml:2418
 #, no-c-format
 msgid ""
 "SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
@@ -3438,25 +3585,90 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2344 extras_topology.xml:2397
+#: extras_topology.xml:2430
 #, no-c-format
-msgid ", <xref linkend=\"topoelementarray\"/>"
+msgid ""
+"This section covers the topology functions for editing existing "
+"topogeometries."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2350
+#: extras_topology.xml:2433
+#, no-c-format
+msgid "TopoGeometry Editors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2437
+#, no-c-format
+msgid "clearTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2439
+#, no-c-format
+msgid "Clears the content of a topo geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2444
+#, no-c-format
+msgid ""
+"<funcdef>topogeometry <function>clearTopoGeom</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>topogeom</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2454
+#, no-c-format
+msgid ""
+"Clears the content a <xref linkend=\"topogeometry\"/> turning it into an "
+"empty one. Mostly useful in conjunction with <xref linkend=\"toTopoGeom\"/> "
+"to replace the shape of existing objects and any dependent object in higher "
+"hierarchical levels."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2462
+#, no-c-format
+msgid "Availability: 2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2466
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2481
+#, no-c-format
+msgid "Adds a geometry shape to an existing topo geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2485
+#, no-c-format
+msgid "Refer to <xref linkend=\"toTopoGeom\"/>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2495
 #, no-c-format
 msgid "TopoGeometry Accessors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2354
+#: extras_topology.xml:2499
 #, no-c-format
 msgid "GetTopoGeomElementArray"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2356
+#: extras_topology.xml:2501
 #, no-c-format
 msgid ""
 "Returns a <varname>topoelementarray</varname> (an array of topoelements) "
@@ -3465,7 +3677,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2361
+#: extras_topology.xml:2506
 #, no-c-format
 msgid ""
 "<funcdef>topoelementarray <function>GetTopoGeomElementArray</function></"
@@ -3476,7 +3688,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2369
+#: extras_topology.xml:2514
 #, no-c-format
 msgid ""
 "<funcdef>topoelementarray topoelement <function>GetTopoGeomElementArray</"
@@ -3485,7 +3697,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2379
+#: extras_topology.xml:2524
 #, no-c-format
 msgid ""
 "Returns a <xref linkend=\"topoelementarray\"/> containing the topological "
@@ -3495,7 +3707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2381 extras_topology.xml:2428
+#: extras_topology.xml:2526 extras_topology.xml:2573
 #, no-c-format
 msgid ""
 "tg_id is the topogeometry id of the topogeometry object in the topology in "
@@ -3503,13 +3715,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2402
+#: extras_topology.xml:2547
 #, no-c-format
 msgid "GetTopoGeomElements"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2404
+#: extras_topology.xml:2549
 #, no-c-format
 msgid ""
 "Returns a set of <varname>topoelement</varname> objects containing the "
@@ -3518,7 +3730,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2409
+#: extras_topology.xml:2554
 #, no-c-format
 msgid ""
 "<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
@@ -3529,7 +3741,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2417
+#: extras_topology.xml:2562
 #, no-c-format
 msgid ""
 "<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
@@ -3538,7 +3750,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2427
+#: extras_topology.xml:2572
 #, no-c-format
 msgid ""
 "Returns a set of element_id,element_type (topoelements) for a given "
@@ -3546,31 +3758,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2444
+#: extras_topology.xml:2589
 #, no-c-format
 msgid ", <xref linkend=\"topoelement\"/>"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2451
+#: extras_topology.xml:2597
 #, no-c-format
 msgid "TopoGeometry Outputs"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2454
+#: extras_topology.xml:2600
 #, no-c-format
 msgid "AsGML"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2456
+#: extras_topology.xml:2602
 #, no-c-format
 msgid "Returns the GML representation of a topogeometry."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:2460
+#: extras_topology.xml:2606
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
@@ -3617,7 +3829,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2521
+#: extras_topology.xml:2667
 #, no-c-format
 msgid ""
 "Returns the GML representation of a topogeometry in version GML3 format. If "
@@ -3628,7 +3840,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2523
+#: extras_topology.xml:2669
 #, no-c-format
 msgid ""
 "The <varname>visitedTable</varname> parameter, if given, is used for keeping "
@@ -3643,7 +3855,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2529
+#: extras_topology.xml:2675
 #, no-c-format
 msgid ""
 "CREATE TABLE visited (\n"
@@ -3653,7 +3865,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2532
+#: extras_topology.xml:2678
 #, no-c-format
 msgid ""
 "The <varname>idprefix</varname> parameter, if given, will be prepended to "
@@ -3661,7 +3873,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2534
+#: extras_topology.xml:2680
 #, no-c-format
 msgid ""
 "The <varname>gmlver</varname> parameter, if given, will be passed to the "
@@ -3669,14 +3881,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2543
+#: extras_topology.xml:2689
 #, no-c-format
 msgid ""
 "This uses the topo geometry we created in <xref linkend=\"CreateTopoGeom\"/>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2544
+#: extras_topology.xml:2690
 #, no-c-format
 msgid ""
 "SELECT topology.AsGML(topo) As rdgml \n"
@@ -3723,13 +3935,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2545
+#: extras_topology.xml:2691
 #, no-c-format
 msgid "Same exercise as previous without namespace"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2546
+#: extras_topology.xml:2692
 #, no-c-format
 msgid ""
 "SELECT topology.AsGML(topo,'') As rdgml \n"
@@ -3776,7 +3988,221 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2552
+#: extras_topology.xml:2698
 #, no-c-format
 msgid ", <xref linkend=\"ST_CreateTopoGeo\"/>"
 msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2703
+#, no-c-format
+msgid "AsTopoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2705
+#, no-c-format
+msgid "Returns the TopoJSON representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2710
+#, no-c-format
+msgid ""
+"<funcdef>text <function>AsTopoJSON</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>edgeMapTable</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2721
+#, no-c-format
+msgid ""
+"Returns the TopoJSON representation of a topogeometry. If "
+"<varname>edgeMapTable</varname> is not null, it will be used as a lookup/"
+"storage mapping of edge identifiers to arc indices. This is to be able to "
+"allow for a compact \"arcs\" array in the final document."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2724
+#, no-c-format
+msgid ""
+"The table, if given, is expected to have an \"arc_id\" field of type \"serial"
+"\" and an \"edge_id\" of type integer; the code will query the table for "
+"\"edge_id\" so it is recommended to add an index on that field."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2729
+#, no-c-format
+msgid ""
+"Arc indices in the TopoJSONjoutput are 0-based but they are 1-based in the "
+"\"edgeMapTable\" table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2735
+#, no-c-format
+msgid ""
+"A full TopoJSON document will be need to contain, in addition to the "
+"snippets returned by this function, the actual arcs plus some headers. See "
+"the <ulink url=\"http://github.com/mbostock/topojson/wiki/Specification"
+"\">TopoJSON specification</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2752
+#, no-c-format
+msgid ""
+"CREATE TEMP TABLE edgemap(arc_id serial, edge_id int unique);\n"
+"\n"
+"-- header\n"
+"SELECT '{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], "
+"\"translate\": [0,0] }, \"objects\": {'\n"
+"\n"
+"-- objects\n"
+"UNION ALL SELECT '\"' || feature_name || '\": ' || AsTopoJSON(feature, "
+"'edgemap')\n"
+"FROM features.big_parcels WHERE feature_name = 'P3P4';\n"
+"\n"
+"-- arcs\n"
+"WITH edges AS ( \n"
+"  SELECT m.arc_id, e.geom FROM edgemap m, city_data.edge e\n"
+"  WHERE e.edge_id = m.edge_id\n"
+"), points AS (\n"
+"  SELECT arc_id, (st_dumppoints(geom)).* FROM edges\n"
+"), compare AS (\n"
+"  SELECT p2.arc_id,\n"
+"         CASE WHEN p1.path IS NULL THEN p2.geom\n"
+"              ELSE ST_Translate(p2.geom, -ST_X(p1.geom), -ST_Y(p1.geom))\n"
+"         END AS geom\n"
+"  FROM points p2 LEFT OUTER JOIN points p1\n"
+"  ON ( p1.arc_id = p2.arc_id AND p2.path[1] = p1.path[1]+1 )\n"
+"  ORDER BY arc_id, p2.path\n"
+"), arcsdump AS (\n"
+"  SELECT arc_id, (regexp_matches( ST_AsGeoJSON(geom), '\\[.*\\]'))[1] as t\n"
+"  FROM compare\n"
+"), arcs AS (\n"
+"  SELECT arc_id, '[' || array_to_string(array_agg(t), ',') || ']' as a FROM "
+"arcsdump\n"
+"  GROUP BY arc_id\n"
+"  ORDER BY arc_id\n"
+")\n"
+"SELECT '}, \"arcs\": [' UNION ALL\n"
+"SELECT array_to_string(array_agg(a), E',\\n') from arcs\n"
+"\n"
+"-- footer\n"
+"UNION ALL SELECT ']}'::text as t;\n"
+"\n"
+"-- Result:\n"
+"{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], \"translate\": "
+"[0,0] }, \"objects\": {\n"
+"\"P3P4\": { \"type\": \"MultiPolygon\", \"arcs\": [[[-1]],"
+"[[6,5,-5,-4,-3,1]]]}\n"
+"}, \"arcs\": [\n"
+" [[25,30],[6,0],[0,10],[-14,0],[0,-10],[8,0]],\n"
+" [[35,6],[0,8]],\n"
+" [[35,6],[12,0]],\n"
+" [[47,6],[0,8]],\n"
+" [[47,14],[0,8]],\n"
+" [[35,22],[12,0]],\n"
+" [[35,14],[0,8]]\n"
+" ]}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2760
+#, no-c-format
+msgid ""
+"This section lists the Topology functions used to check relationships "
+"between topogeometries and topology primitives"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2763
+#, no-c-format
+msgid "Topology Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2766
+#, no-c-format
+msgid "Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2768 extras_topology.xml:2817
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2773 extras_topology.xml:2822
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Equals</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg1</parameter></paramdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2784
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives: faces, edges, nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2788
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2795 extras_topology.xml:2845
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2802 extras_topology.xml:2852
+#, no-c-format
+msgid "<!--TODO: Need example -->"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2809
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2815
+#, no-c-format
+msgid "Intersects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2833
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries share primitives or primitives intersect"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2837
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies. Also not currently supported for hierarchichal topogeometries "
+"(topogeometries composed of other topogeometries)."
+msgstr ""
diff --git a/doc/po/it_IT/faq.xml.po b/doc/po/it_IT/faq.xml.po
index 9f432fb..8bdfdd1 100644
--- a/doc/po/it_IT/faq.xml.po
+++ b/doc/po/it_IT/faq.xml.po
@@ -1,36 +1,66 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# pibinko <pibinko at gmail.com>, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-02 15:37+0000\n"
+"Last-Translator: pibinko <pibinko at gmail.com>\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/"
+"postgis-1/language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: title
 #: faq.xml:3
 #, no-c-format
 msgid "PostGIS Frequently Asked Questions"
-msgstr ""
+msgstr "Domande frequenti (F.A.Q) su PostGIS"
 
 #. Tag: para
 #: faq.xml:8
 #, no-c-format
 msgid ""
+"Where can I find tutorials, guides and workshops on working with PostGIS"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:12
+#, no-c-format
+msgid ""
+"OpenGeo has a step by step tutorial guide workshop <ulink url=\"http://"
+"workshops.boundlessgeo.com/postgis-intro/\">Introduction to PostGIS</ulink>. "
+"It includes packaged data as well as intro to working with OpenGeo Suite. It "
+"is probably the best tutorial on PostGIS."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:13
+#, no-c-format
+msgid ""
+"BostonGIS also has a <ulink url=\"http://www.bostongis.com/PrinterFriendly."
+"aspx?content_name=postgis_tut01\">PostGIS almost idiot's guide on getting "
+"started</ulink>. That one is more focused on the windows user."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:18
+#, no-c-format
+msgid ""
 "My applications and desktop tools worked with PostGIS 1.5,but they don't "
 "work with PostGIS 2.0. How do I fix this?"
 msgstr ""
+"Le mie applicazioni e i miei strumenti desktop funzionavano con PostGIS 1.5, "
+"ma non funzionano con PostGIS 2.0. Come posso risolvere la cosa?"
 
 #. Tag: para
-#: faq.xml:12
+#: faq.xml:22
 #, no-c-format
 msgid ""
 "A lot of deprecated functions were removed from the PostGIS code base in "
@@ -43,9 +73,17 @@ msgid ""
 "etc. and as a last resort, install the whole of <varname>legacy.sql</"
 "varname> or just the portions of <varname>legacy.sql</varname> you need."
 msgstr ""
+"Diverse funzioni obsolete sono state eliminate dal codice PostGIS nella "
+"versione 2.0. Ciò ha avuto un effetto sulle applicazioni, oltre che su "
+"strumenti di terze parti quali  Geoserver, MapServer, QuantumGIS e OpenJump, "
+"per citarne alcuni. Ci sono un paio di modi per risolvere il problema. Per "
+"le applicazioni di terze parti, potere provare ad aggiornarle alla versione "
+"più recente, in cui molti di questi problemi sono stati sistemati. Per il "
+"codice da che hai sviluppato tu, puoi modificare il codice in modo da non "
+"utilizzare le funzioni eliminate. [TO BE COMPLETED HAVING CLARIFIED ISSUE]"
 
 #. Tag: para
-#: faq.xml:18
+#: faq.xml:28
 #, no-c-format
 msgid ""
 "The <varname>legacy.sql</varname> file is located in the same folder as "
@@ -53,17 +91,108 @@ msgid ""
 "and spatial_ref_sys.sql to get back all the 200 some-odd old functions we "
 "removed."
 msgstr ""
+"Il file <varname>legacy.sql</varname> è ubicato nella stessa cartella di "
+"postgis.sql. Puoi installare questo file dopo aver installato postgis.sql e "
+"spatial_ref_sys.sql per recuperare le circa 200 vecchie funzioni che abbiamo "
+"eliminato."
+
+#. Tag: para
+#: faq.xml:35
+#, no-c-format
+msgid ""
+"When I load OpenStreetMap data with osm2pgsql, I'm getting an error failed: "
+"ERROR: operator class \"gist_geometry_ops\" does not exist for access method "
+"\"gist\" Error occurred. This worked fine in PostGIS 1.5."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:40
+#, no-c-format
+msgid ""
+"In PostGIS 2, the default geometry operator class gist_geometry_ops was "
+"changed to gist_geometry_ops_2d and the gist_geometry_ops was completely "
+"removed. This was done because PostGIS 2 also introduced Nd spatial indexes "
+"for 3D support and the old name was deemed confusing and a misnomer."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:41
+#, no-c-format
+msgid ""
+"Some older applications that as part of the process create tables and "
+"indexes, explicitly referenced the operator class name. This was unnecessary "
+"if you want the default 2D index. So if you manage said good, change index "
+"creation from:"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:42
+#, no-c-format
+msgid "BAD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:43
+#, fuzzy, no-c-format
+msgid ""
+"CREATE INDEX idx_my_table_geom ON my_table USING gist(geom "
+"gist_geometry_ops);"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:44
+#, no-c-format
+msgid "To GOOD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:45
+#, fuzzy, no-c-format
+msgid "CREATE INDEX idx_my_table_geom ON my_table USING gist(geom);"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
 
 #. Tag: para
-#: faq.xml:24
+#: faq.xml:47
+#, no-c-format
+msgid ""
+"The only case where you WILL need to specify the operator class is if you "
+"want a 3D spatial index as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:48
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_my_super3d_geom ON my_super3d USING gist(geom "
+"gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:50
+#, no-c-format
+msgid ""
+"If you are unfortunate to be stuck with compiled code you can't change that "
+"has the old gist_geometry_ops hard-coded, then you can create the old class "
+"using the <filename>legacy_gist.sql</filename> packaged in PostGIS 2.0.2+. "
+"However if you use this fix, you are advised to at a later point drop the "
+"index and recreate it without the operator class. This will save you grief "
+"in the future when you need to upgrade again."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:56
 #, no-c-format
 msgid ""
 "I'm running PostgreSQL 9.0 and I can no longer read/view geometries in "
 "OpenJump, Safe FME, and some other tools?"
 msgstr ""
+"Sto usando PostgreSQL 9.0 e non posso più leggere le geometrie in OpenJump, "
+"Safe FME e altri strumenti. Come mai?"
 
 #. Tag: para
-#: faq.xml:28
+#: faq.xml:60
 #, no-c-format
 msgid ""
 "In PostgreSQL 9.0+, the default encoding for bytea data has been changed to "
@@ -72,18 +201,28 @@ msgid ""
 "applications that use the older npgsql driver that expect the old behavior "
 "of ST_AsBinary. There are two approaches to getting this to work again."
 msgstr ""
+"In PostgreSQL 9.0+, la codifica di default per i dati di tipo bytea è stata "
+"modificata in esadecimale e i vecchi driver JDBC considerano sempre il "
+"formato di escape. Ciò ha avuto un effetto su alcune applicazioni, quali le "
+"applicazioni Java con i driver JDBC più vecchi o le applicazioni .NET che "
+"utilizzano il vecchio driver npgsql, che si aspetta di incontrare il vecchio "
+"comportamento di ST_AsBinary. Ci sono due approcci per far funzionare "
+"nuovamente il tutto."
 
 #. Tag: para
-#: faq.xml:32
+#: faq.xml:64
 #, no-c-format
 msgid ""
 "You can upgrade your JDBC driver to the latest PostgreSQL 9.0 version which "
 "you can get from <ulink url=\"http://jdbc.postgresql.org/download.html"
 "\">http://jdbc.postgresql.org/download.html</ulink>"
 msgstr ""
+"Puoi aggiornare il driver JDBC alla versione PostgreSQL 9.0 più recente dal "
+"sito  <ulink url=\"http://jdbc.postgresql.org/download.html\">http://jdbc."
+"postgresql.org/download.html</ulink>"
 
 #. Tag: para
-#: faq.xml:34
+#: faq.xml:66
 #, no-c-format
 msgid ""
 "If you are running a .NET app, you can use Npgsql 2.0.11 or higher which you "
@@ -93,48 +232,63 @@ msgid ""
 "released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released blog entry</"
 "ulink>"
 msgstr ""
+"Se stai usando un'applicazione .NET, puoi utilizzare Npgsql 2.0.11 o "
+"versioni superiori, scaricandolo da <ulink url=\"http://pgfoundry.org/frs/?"
+"group_id=1000140\">http://pgfoundry.org/frs/?group_id=1000140</ulink> e "
+"seguendo le istruzioni descritte nel <ulink url=\"http://fxjr.blogspot."
+"com/2010/11/npgsql-2011-released.html\">blog di Francisco Figueiredo su "
+"NpgSQL 2.0.11 </ulink>"
 
 #. Tag: para
-#: faq.xml:38
+#: faq.xml:70
 #, no-c-format
 msgid ""
 "If upgrading your PostgreSQL driver is not an option, then you can set the "
 "default back to the old behavior with the following change:"
 msgstr ""
+"Se non è possibile aggiornare il tuo driver PostgreSQL, puoi ripristinare il "
+"comportamento precedente con la seguente modifica:"
 
 #. Tag: programlisting
-#: faq.xml:39
+#: faq.xml:71
 #, no-c-format
 msgid "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
-msgstr ""
+msgstr "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
 
 #. Tag: para
-#: faq.xml:46
+#: faq.xml:78
 #, no-c-format
 msgid ""
 "I tried to use PgAdmin to view my geometry column and it is blank, what "
 "gives?"
 msgstr ""
+"Ho provato a usare PgAdmin per visualizzare la mia colonna della geometria e "
+"questa risulta vuota. Perché?"
 
 #. Tag: para
-#: faq.xml:50
+#: faq.xml:82
 #, no-c-format
 msgid ""
 "PgAdmin doesn't show anything for large geometries. The best ways to verify "
 "you do have data in your geometry columns are?"
 msgstr ""
+"PgAdmin non mostra nulla nel caso di grandi geometrie. I modi migliori per "
+"verificare che vi siano dati presenti nelle vostre colonne di geometria sono:"
 
 #. Tag: programlisting
-#: faq.xml:53
+#: faq.xml:85
 #, no-c-format
 msgid ""
 "-- this should return no records if all your geom fields are filled "
 "in        \n"
 "SELECT somefield FROM mytable WHERE geom IS NULL;"
 msgstr ""
+"-- se tutti i tuoi campi geometrici sono popolati, questa query non dovrebbe "
+"restituire alcun record        \n"
+"SELECT somefield FROM mytable WHERE geom IS NULL;"
 
 #. Tag: programlisting
-#: faq.xml:55
+#: faq.xml:87
 #, no-c-format
 msgid ""
 "-- To tell just how large your geometry is do a query of the form\n"
@@ -142,15 +296,19 @@ msgid ""
 "geometry columns\n"
 "SELECT MAX(ST_NPoints(geom)) FROM sometable;"
 msgstr ""
+"-- Per conoscere giusto la dimensione di una geometria, è possibile eseguire "
+"una query in una forma \n"
+"--che vi dirà il più elevato numero di punti in una colonna di geometria\n"
+"SELECT MAX(ST_NPoints(geom)) FROM sometable;"
 
 #. Tag: para
-#: faq.xml:61
+#: faq.xml:93
 #, no-c-format
 msgid "What kind of geometric objects can I store?"
-msgstr ""
+msgstr "Quale tipo di oggetti geometrici posso memorizzare?"
 
 #. Tag: para
-#: faq.xml:65
+#: faq.xml:97
 #, no-c-format
 msgid ""
 "You can store point, line, polygon, multipoint, multiline, multipolygon, and "
@@ -166,15 +324,30 @@ msgid ""
 "analyzing raster data. Raster has its very own FAQ. Refer to <xref linkend="
 "\"RT_FAQ\"/> and <xref linkend=\"RT_reference\"/> for more details."
 msgstr ""
+"Potete memorizzare oggetti di tipo point, line, polygon, multipoint, "
+"multiline, multipolygon, and geometrycollections. In PostGIS 2.0 e versioni "
+"superiori potete anche memorizzare TINe e superfici poliedriche con la "
+"geometria di base. Questi tipi di dati sono specificati nello Well Known "
+"Text Format di Open GIS (con le estensioni XYZ,XYM,XYZM). Attualmente vi "
+"sono tre tipo di dati supportati. Le geometrie standard OGC, che usano un "
+"sistema di coordinate piano per le misure; i dati di tipo geografico, che "
+"utilizzano un sistema di coordinate geodetico (non OGC, ma ne trovate un "
+"tipo simile in Microsoft SQL Server 2008+). Il tipo di dati geografico "
+"supporta solamente il sistema di coordinate WGS 84 long lat (SRID:4326). "
+"L'ultimo membro della famiglia dei tipi di dati spaziali di PosGIS è poi il "
+"raster. Questo ha una sua FAQ dedicata. Vi rimandiamo a <xref linkend="
+"\"RT_reference\"/> per ulteriori informazioni."
 
 #. Tag: para
-#: faq.xml:78
+#: faq.xml:110
 #, no-c-format
 msgid "I'm all confused. Which data store should I use geometry or geography?"
 msgstr ""
+"Sono confuso. Quale tipo di dati dovrei usare, quello geometrico o quello "
+"geografico?"
 
 #. Tag: para
-#: faq.xml:82
+#: faq.xml:114
 #, no-c-format
 msgid ""
 "Short Answer: geography is a new data type that supports long range "
@@ -194,18 +367,38 @@ msgid ""
 "\"PostGIS_TypeFunctionMatrix\"/> to see what is currently supported and what "
 "is not."
 msgstr ""
+"In breve: il tipo di dati geografico è un nuovo tipo che supporta i calcoli "
+"delle lunghe distanze, tuttavia la maggior parte dei calcoli con questo tipo "
+"di dati sono più lenti che non con il tipo di dati geometrico. Se utilizzate "
+"il tipo geografico non serve imparare molto sui sistemi di coordinate "
+"planari. Questo tipo è in genere migliore se dovete misurare distanze e "
+"lunghezze e avete dati da tutto il mondo. Il tipo di dati geometrico è un "
+"tipo di dati più vecchio, ha maggiore supporto da strumenti di terze parti, "
+"e le operazioni su questo sono generalmente più veloci,  a volte sino a 10 "
+"volte più veloci per le geometrie più grandi. Il tipo di dati geometrico è "
+"migliore se siete a vostro agio con i sistemi di riferimento spaziale o se "
+"stai lavorando con dati su scala locale, che siano compresi in un unico "
+"sistema di riferimento spaziale (<link linkend=\"spatial_ref_sys\">spatial "
+"reference system (SRID)</link>, o se devi svolgere molte elaborazioni "
+"spaziali. Nota: è abbastanza semplice eseguire conversioni da un tipo di "
+"dati all'altro in modo da avvantaggiarsi dei pregi di ciascun sistema. Ti "
+"rimandiamo a  <xref linkend=\"PostGIS_TypeFunctionMatrix\"/> per vedere che "
+"quali funzioni sono attualmente supportate e quali no."
 
 #. Tag: para
-#: faq.xml:93
+#: faq.xml:125
 #, no-c-format
 msgid ""
 "Long Answer: Refer to our more lengthy discussion in the <xref linkend="
 "\"PostGIS_GeographyVSGeometry\"/> and <link linkend="
 "\"PostGIS_TypeFunctionMatrix\">function type matrix</link>."
 msgstr ""
+"Risposta lunga: ti rimandiamo alla discussione più estesa  <xref linkend="
+"\"PostGIS_GeographyVSGeometry\"/> e <link linkend="
+"\"PostGIS_TypeFunctionMatrix\">matrice dei tipi di funzione</link>."
 
 #. Tag: para
-#: faq.xml:101
+#: faq.xml:133
 #, no-c-format
 msgid ""
 "I have more intense questions about geography, such as how big of a "
@@ -213,24 +406,32 @@ msgid ""
 "answers. Are there limitations such as poles, everything in the field must "
 "fit in a hemisphere (like SQL Server 2008 has), speed etc?"
 msgstr ""
+"Ho altre domande più profonde sulla geografia, ad esempio qual è la massima "
+"dimensione di una regione geografica che posso inserire in una colonna di "
+"tipo geography per continuare ad avere risultati ragionevoli. Ci sono "
+"limitazioni ai poli, tutto deve essere in un unico emisfero (come per SQL "
+"Server 2008)?"
 
 #. Tag: para
-#: faq.xml:105
+#: faq.xml:137
 #, no-c-format
 msgid ""
 "Your questions are too deep and complex to be adequately answered in this "
 "section. Please refer to our <xref linkend=\"PostGIS_Geography_AdvancedFAQ\"/"
 ">."
 msgstr ""
+"Le tue domande sono troppo profonde e complesse per avere una risposta in "
+"questa sezione del documento. Ti rimandiamo alle nostre  <xref linkend="
+"\"PostGIS_Geography_AdvancedFAQ\"/>."
 
 #. Tag: para
-#: faq.xml:112
+#: faq.xml:144
 #, no-c-format
 msgid "How do I insert a GIS object into the database?"
-msgstr ""
+msgstr "Come posso inserire un oggetto GIS nel database?"
 
 #. Tag: para
-#: faq.xml:116
+#: faq.xml:148
 #, no-c-format
 msgid ""
 "First, you need to create a table with a column of type \"geometry\" or "
@@ -238,81 +439,102 @@ msgid ""
 "different than storing geometry. Refer to <xref linkend=\"Geography_Basics\"/"
 "> for details on storing geography."
 msgstr ""
+"Anzitutto devi creare una tabella con una colonna di tipo \"geometry\" o "
+"\"geography\" per contenere i dati GIS. Memorizzare i dati di tipo "
+"geografico e un po' diverso dal memorizzare dati geometrici. Ti rimandiamo a "
+"<xref linkend=\"Geography_Basics\"/> per i dettagli sulla gestione dei dati "
+"geografici."
 
 #. Tag: para
-#: faq.xml:120
+#: faq.xml:152
 #, no-c-format
 msgid ""
 "For geometry: Connect to your database with <filename>psql</filename> and "
 "try the following SQL:"
 msgstr ""
+"Per la geometria: collegati al database con <filename>psql</filename> e "
+"prova a eseguire il seguente codice SQL:"
 
 #. Tag: programlisting
-#: faq.xml:124
+#: faq.xml:156
 #, no-c-format
 msgid ""
-"CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
-"SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
+"CREATE TABLE gtest ( gid serial primary key, name varchar(20)\n"
+"        , geom geometry(LINESTRING) );"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:126
-#, no-c-format
+#: faq.xml:158
+#, fuzzy, no-c-format
 msgid ""
-"If the geometry column addition fails, you probably have not loaded the "
-"PostGIS functions and objects into this database. See the <xref linkend="
-"\"PGInstall\"/>."
+"If the geometry column definition fails, you probably have not loaded the "
+"PostGIS functions and objects into this database or are using a pre-2.0 "
+"version of PostGIS. See the <xref linkend=\"PGInstall\"/>."
 msgstr ""
+"Se l'aggiunta della colonna con la geometria non funziona, probabilmente non "
+"avete caricato le funzioni e gli oggetti PostGIS nel database. Vi rimandiamo "
+"a  <xref linkend=\"PGInstall\"/>."
 
 #. Tag: para
-#: faq.xml:130
+#: faq.xml:162
 #, no-c-format
 msgid ""
 "Then, you can insert a geometry into the table using a SQL insert statement. "
 "The GIS object itself is formatted using the OpenGIS Consortium \"well-known "
 "text\" format:"
 msgstr ""
+"Fatto questo, puoi inserire una geometria nella tabella utilizzando un "
+"comando di INSERT SQL. L'oggetto GIS vero e proprio è formattato utilizzando "
+"le specifiche \"well-known text\" dell'OpenGIS Consortium:"
 
 #. Tag: programlisting
-#: faq.xml:134
-#, no-c-format
+#: faq.xml:166
+#, fuzzy, no-c-format
 msgid ""
 "INSERT INTO gtest (ID, NAME, GEOM) \n"
 "VALUES (\n"
 "  1, \n"
 "  'First Geometry', \n"
-"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1)\n"
+"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)')\n"
 ");"
 msgstr ""
+"INSERT INTO gtest (ID, NAME, GEOM) \n"
+"VALUES (\n"
+"  1, \n"
+"  'First Geometry', \n"
+"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1)\n"
+");"
 
 #. Tag: para
-#: faq.xml:136
+#: faq.xml:168
 #, no-c-format
 msgid ""
 "For more information about other GIS objects, see the <link linkend="
 "\"RefObject\">object reference</link>."
 msgstr ""
+"Per ulteriori informazioni su altri oggetti GIS, si rimanda alla <link "
+"linkend=\"RefObject\">guida di riferimento sugli oggetti</link>."
 
 #. Tag: para
-#: faq.xml:139
+#: faq.xml:171
 #, no-c-format
 msgid "To view your GIS data in the table:"
-msgstr ""
+msgstr "Per visualizzare i dati GIS nella tabella:"
 
 #. Tag: programlisting
-#: faq.xml:141
+#: faq.xml:173
 #, no-c-format
 msgid "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
-msgstr ""
+msgstr "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
 
 #. Tag: para
-#: faq.xml:143
+#: faq.xml:175
 #, no-c-format
 msgid "The return value should look something like this:"
-msgstr ""
+msgstr "Il valore restituito dovrebbe essere qualcosa tipo:"
 
 #. Tag: programlisting
-#: faq.xml:145
+#: faq.xml:177
 #, no-c-format
 msgid ""
 "id | name           | geom\n"
@@ -320,32 +542,41 @@ msgid ""
 "  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
 "(1 row)"
 msgstr ""
+"id | name           | geom\n"
+"----+----------------+-----------------------------\n"
+"  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
+"(1 row)"
 
 #. Tag: para
-#: faq.xml:151
+#: faq.xml:183
 #, no-c-format
 msgid "How do I construct a spatial query?"
-msgstr ""
+msgstr "Come posso creare una query spaziale?"
 
 #. Tag: para
-#: faq.xml:155
+#: faq.xml:187
 #, no-c-format
 msgid ""
 "The same way you construct any other database query, as an SQL combination "
 "of return values, functions, and boolean tests."
 msgstr ""
+"Nello stesso modo in cui creeresti qualsiasi altra query per il database, "
+"come combinazione SQL di valori, funzioni e test booleani."
 
 #. Tag: para
-#: faq.xml:158
+#: faq.xml:190
 #, no-c-format
 msgid ""
 "For spatial queries, there are two issues that are important to keep in mind "
 "while constructing your query: is there a spatial index you can make use of; "
 "and, are you doing expensive calculations on a large number of geometries."
 msgstr ""
+"Per le query spaziali, è bene tenere a mente due aspetti: se esiste un "
+"indice spaziale che puoi utilizzare, e se stai eseguendo calcoli impegnativi "
+"su un grande numero di geometrie."
 
 #. Tag: para
-#: faq.xml:163
+#: faq.xml:195
 #, no-c-format
 msgid ""
 "In general, you will want to use the \"intersects operator\" (&&) "
@@ -354,9 +585,13 @@ msgid ""
 "speed up the test, the && operator will make use of this. This can "
 "make queries much much faster."
 msgstr ""
+"In generale, vorrai considerare l'uso dell'operatore di intersezione (&"
+"&) che verifica se le bounding box degli elementi si intersecano. La "
+"ragione per cui l'operatore &&) è utile è perché questo operatore ne "
+"farà uso, accelerando di molto le query."
 
 #. Tag: para
-#: faq.xml:170
+#: faq.xml:202
 #, no-c-format
 msgid ""
 "You will also make use of spatial functions, such as Distance(), "
@@ -367,9 +602,16 @@ msgid ""
 "condition of interest. The spatial functions are then use to test the "
 "condition exactly."
 msgstr ""
+"Utilizzerai anche funzioni spaziali quali Distance(), ST_Intersects(), "
+"ST_Contains() and ST_Within(), tra le altre, per ridurre l'insieme dei "
+"risultati della ricerca. Molte interrogazioni spaziali comprendono sia un "
+"test legato a un indice, che un test spaziale. Il test legato all'indice "
+"serve a limitare il numero di tuple a quelle che <emphasis>potrebbero</"
+"emphasis> rispondere alle condizioni richieste. Le funzioni spaziali vanno "
+"poi a verificare in modo più esatto le condizioni."
 
 #. Tag: programlisting
-#: faq.xml:178
+#: faq.xml:210
 #, no-c-format
 msgid ""
 "SELECT id, the_geom \n"
@@ -377,47 +619,60 @@ msgid ""
 "WHERE \n"
 "  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
 msgstr ""
+"SELECT id, the_geom \n"
+"FROM thetable \n"
+"WHERE \n"
+"  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
 
 #. Tag: para
-#: faq.xml:184
+#: faq.xml:216
 #, no-c-format
 msgid "How do I speed up spatial queries on large tables?"
-msgstr ""
+msgstr "Come posso accelerare le query spaziali su grandi tabelle?"
 
 #. Tag: para
-#: faq.xml:188
+#: faq.xml:220
 #, no-c-format
 msgid ""
 "Fast queries on large tables is the <emphasis>raison d'etre</emphasis> of "
 "spatial databases (along with transaction support) so having a good index is "
 "important."
 msgstr ""
+"La velocità delle query su tabelle di grandi dimensioni è la  "
+"<emphasis>raison d'etre</emphasis> dei database spaziali (assieme al "
+"supporto delle transazioni), per cui avere un buon indice è importante."
 
 #. Tag: para
-#: faq.xml:192
+#: faq.xml:224
 #, no-c-format
 msgid ""
 "To build a spatial index on a table with a <varname>geometry</varname> "
 "column, use the \"CREATE INDEX\" function as follows:"
 msgstr ""
+"Per creare un indice spaziale per una tabella con colonna <varname>geometry</"
+"varname> , utilizza la funzione \"CREATE INDEX\" secono le istruzioni "
+"seguenti:"
 
 #. Tag: programlisting
-#: faq.xml:196
+#: faq.xml:228
 #, no-c-format
 msgid ""
 "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
 msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
 
 #. Tag: para
-#: faq.xml:198
+#: faq.xml:230
 #, no-c-format
 msgid ""
 "The \"USING GIST\" option tells the server to use a GiST (Generalized Search "
 "Tree) index."
 msgstr ""
+"L'opzione \"USING GIST\" dice al server di utilizzare un indice GiST "
+"(Generalized Search Tree)."
 
 #. Tag: para
-#: faq.xml:202
+#: faq.xml:234
 #, no-c-format
 msgid ""
 "GiST indexes are assumed to be lossy. Lossy indexes uses a proxy object (in "
@@ -425,7 +680,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq.xml:207
+#: faq.xml:239
 #, no-c-format
 msgid ""
 "You should also ensure that the PostgreSQL query planner has enough "
@@ -434,38 +689,46 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq.xml:212
+#: faq.xml:244
 #, no-c-format
 msgid ""
 "For PostgreSQL 8.0.x and greater, just run the <command>VACUUM ANALYZE</"
 "command> command."
 msgstr ""
+"Per PostgreSQL 8.0.x e versioni superiori, è sufficiente eseguire il comando "
+"<command>VACUUM ANALYZE</command>."
 
 #. Tag: para
-#: faq.xml:215
+#: faq.xml:247
 #, no-c-format
 msgid ""
-"For PostgreSQL 7.4.x and below, run the <command>SELECT UPDATE_GEOMETRY_STATS"
-"()</command> command."
+"For PostgreSQL 7.4.x and below, run the <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command> command."
 msgstr ""
+"Per PostgreSQL 7.4.x e versioni precedenti, eseguite il comando  "
+"<command>SELECT UPDATE_GEOMETRY_STATS()</command>."
 
 #. Tag: para
-#: faq.xml:222
+#: faq.xml:254
 #, no-c-format
 msgid "Why aren't PostgreSQL R-Tree indexes supported?"
-msgstr ""
+msgstr "Perché gli indici R-Tree di PostgreSQL non sono supportati?"
 
 #. Tag: para
-#: faq.xml:226
+#: faq.xml:258
 #, no-c-format
 msgid ""
 "Early versions of PostGIS used the PostgreSQL R-Tree indexes. However, "
 "PostgreSQL R-Trees have been completely discarded since version 0.6, and "
 "spatial indexing is provided with an R-Tree-over-GiST scheme."
 msgstr ""
+"Le prime versioni di PostGIS usavano gli indici R-Tree di PostgreSQL. "
+"Tuttavia questi sono stati completamente abbandonati a partire dalla "
+"versione 0.6, e l'indicizzazione spaziale viene fornita con un approccio R-"
+"Tree attraverso GiST."
 
 #. Tag: para
-#: faq.xml:231
+#: faq.xml:263
 #, no-c-format
 msgid ""
 "Our tests have shown search speed for native R-Tree and GiST to be "
@@ -474,9 +737,15 @@ msgid ""
 "to the current PostgreSQL native R-Tree implementation, not the R-Tree "
 "concept in general):"
 msgstr ""
+"I nostri test hanno mostrato che la velocità di ricerca per gli indici "
+"nativi con R-tree e quelli con GiST sono paragonabili. Gli indici nativi di "
+"PostgreSQL hanno due limitazioni che li rendono non desiderabili quando si "
+"tratta di elementi GIS  (si noti che queste limitazioni sono dovute "
+"all'attuale implementazione degli indici R-Tree da parte di PostgreSQL e non "
+"al concetto di R-Tree in generale):"
 
 #. Tag: para
-#: faq.xml:239
+#: faq.xml:271
 #, no-c-format
 msgid ""
 "R-Tree indexes in PostgreSQL cannot handle features which are larger than 8K "
@@ -485,23 +754,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq.xml:246
+#: faq.xml:278
 #, no-c-format
 msgid ""
 "R-Tree indexes in PostgreSQL are not \"null safe\", so building an index on "
 "a geometry column which contains null geometries will fail."
 msgstr ""
+"Gli indici R-Tree di PostgreSQL non sono \"a prova di NULL\", per cui creare "
+"un indice su una colonna di geometria che contenga valori nulli non "
+"funzionerà."
 
 #. Tag: para
-#: faq.xml:256
+#: faq.xml:288
 #, no-c-format
 msgid ""
 "Why should I use the <varname>AddGeometryColumn()</varname> function and all "
 "the other OpenGIS stuff?"
 msgstr ""
+"Perché dovrei usare la funzione <varname>AddGeometryColumn()</varname> e "
+"tutti gli altri elementi OpenGIS?"
 
 #. Tag: para
-#: faq.xml:261
+#: faq.xml:293
 #, no-c-format
 msgid ""
 "If you do not want to use the OpenGIS support functions, you do not have to. "
@@ -512,9 +786,17 @@ msgid ""
 "fail, and it is generally suggested that you do use "
 "<varname>AddGeometryColumn()</varname> to create geometry tables."
 msgstr ""
+"Se non volete utilizzare le funzioni di supporto per OpenGIS, non siete "
+"obbligati. E' sufficiente creare le tabelle come nelle versioni più vecchie, "
+"definendo le colonne per la geometria nel comando CREATE. Tutte le geometrie "
+"avranno uno SRID uguale a -1, e le tabelle con i metadati OpenGIS "
+"<emphasis>non</emphasis> saranno compilate correttamente. Tuttavia, ciò farà "
+"sì che la maggior parte delle applicazioni basate su PostGIS abbia problemi, "
+"e in genere è consigliabile usare <varname>AddGeometryColumn()</varname> per "
+"creare tabelle con la geometria."
 
 #. Tag: para
-#: faq.xml:270
+#: faq.xml:302
 #, no-c-format
 msgid ""
 "MapServer is one application which makes use of the "
@@ -522,16 +804,22 @@ msgid ""
 "use the SRID of the geometry column to do on-the-fly reprojection of "
 "features into the correct map projection."
 msgstr ""
+"MapServer è un'applicazione che fa uso dei medatati "
+"<varname>AddGeometryColumn()geometry_columns</varname>. In particolare, "
+"MapServer può utilizzare il valore SRID della colonna geometrica per "
+"eseguire riproiezioni cartografiche al volo."
 
 #. Tag: para
-#: faq.xml:279
+#: faq.xml:311
 #, no-c-format
 msgid ""
 "What is the best way to find all objects within a radius of another object?"
 msgstr ""
+"Qual è il modo migliore per trovare tutti gli oggetti entro un dato raggio "
+"da un altro oggetto?"
 
 #. Tag: para
-#: faq.xml:284
+#: faq.xml:316
 #, no-c-format
 msgid ""
 "To use the database most efficiently, it is best to do radius queries which "
@@ -539,9 +827,13 @@ msgid ""
 "the spatial index, giving fast access to a subset of data which the radius "
 "test is then applied to."
 msgstr ""
+"Per utilizzare il database in modo efficiente, la cosa migliore è eseguire "
+"le query con un raggio assieme al test sulla bounding box: il test sulla "
+"bounding box ricorre all'indice spaziale, dando un accesso velocizzato a un "
+"sottoinsieme dei dati cui poi viene applicato il test sul raggio."
 
 #. Tag: para
-#: faq.xml:289
+#: faq.xml:321
 #, no-c-format
 msgid ""
 "The <varname>ST_DWithin(geometry, geometry, distance)</varname> function is "
@@ -549,31 +841,41 @@ msgid ""
 "search rectangle large enough to enclose the distance radius, then "
 "performing an exact distance search on the indexed subset of results."
 msgstr ""
+"La funzione <varname>ST_DWithin(geometry, geometry, distance)</varname> è un "
+"sistema pratico per eseguire una ricerca per distanza indicizzata. Funziona "
+"creando un rettangolo di ricerca grande abbastanza da racchiudere il raggio "
+"di distanza specificato, e poi eseguendo una ricerca per distanza precisa "
+"sul sottoinsieme dei risultati, che viene indicizzato."
 
 #. Tag: para
-#: faq.xml:295
+#: faq.xml:327
 #, no-c-format
 msgid ""
 "For example, to find all objects with 100 meters of POINT(1000 1000) the "
 "following query would work well:"
 msgstr ""
+"Per esempio, per trovare tutti gli oggetti entro 100 metri dal punto "
+"POINT(1000 1000), la seguente query funzionerebbe bene:"
 
 #. Tag: programlisting
-#: faq.xml:298
+#: faq.xml:330
 #, no-c-format
 msgid ""
 "SELECT * FROM geotable \n"
 "WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
 msgstr ""
+"SELECT * FROM geotable \n"
+"WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
 
 #. Tag: para
-#: faq.xml:304
+#: faq.xml:336
 #, no-c-format
 msgid "How do I perform a coordinate reprojection as part of a query?"
 msgstr ""
+"Come posso eseguire una riproiezione di coordinate come parte di una query?"
 
 #. Tag: para
-#: faq.xml:309
+#: faq.xml:341
 #, no-c-format
 msgid ""
 "To perform a reprojection, both the source and destination coordinate "
@@ -583,49 +885,67 @@ msgid ""
 "The below projects a geometry to NAD 83 long lat. The below will only work "
 "if the srid of the_geom is not -1 (not undefined spatial ref)"
 msgstr ""
+"Per eseguire una riproiezione, sia il sistema di riferimento di coordinate "
+"di origine che quello di destinazione devono essere definiti nella tabella "
+"SPATIAL_REF_SYS, e le geometrie da riproiettare devono già avere uno SRID "
+"assegnato. Fatto questo, la riproiezione è semplice come riferirsi allo SRID "
+"desiderato per la destinazione. L'esempio proietta una geometria in NAD 83 "
+"long lat. Il caso sotto funzionerà solamente se lo SRID di the_geom non è -1 "
+"(il riferimento spaziale non deve essere indefinito)."
 
 #. Tag: programlisting
-#: faq.xml:316
+#: faq.xml:348
 #, no-c-format
 msgid "SELECT ST_Transform(the_geom,4269) FROM geotable;"
-msgstr ""
+msgstr "SELECT ST_Transform(the_geom,4269) FROM geotable;"
 
 #. Tag: para
-#: faq.xml:322
+#: faq.xml:354
 #, no-c-format
 msgid ""
 "I did an ST_AsEWKT and ST_AsText on my rather large geometry and it returned "
 "blank field. What gives?"
 msgstr ""
+"Ho eseguito una ST_AsEWKT e ST_AsText su una geometria piuttosto grossa ed "
+"ho ottenuto un campo vuoto. Come mai?"
 
 #. Tag: para
-#: faq.xml:326
+#: faq.xml:358
 #, no-c-format
 msgid ""
 "You are probably using PgAdmin or some other tool that doesn't output large "
 "text. If your geometry is big enough, it will appear blank in these tools. "
 "Use PSQL if you really need to see it or output it in WKT."
 msgstr ""
+"Probabilmente stato usando PgAdmin o qualche altro strumento che non dà in "
+"uscita testi di grandi dimensioni. Se la vostra geometria è abbastanza "
+"grande, risulterà vuota in questi strumenti. Se dovete vederla o dovete "
+"vedere l'uscita in formato WKT potete usare PSQL,"
 
 #. Tag: programlisting
-#: faq.xml:329
+#: faq.xml:361
 #, no-c-format
 msgid ""
 "--To check number of geometries are really blank\n"
 "                                SELECT count(gid) FROM geotable WHERE "
 "the_geom IS NULL;"
 msgstr ""
+"--Per verificare il numero di geometrie che sono effettivamente vuote\n"
+"                                SELECT count(gid) FROM geotable WHERE "
+"the_geom IS NULL;"
 
 #. Tag: para
-#: faq.xml:335
+#: faq.xml:367
 #, no-c-format
 msgid ""
 "When I do an ST_Intersects, it says my two geometries don't intersect when I "
 "KNOW THEY DO. What gives?"
 msgstr ""
+"Quando eseguo ST_Intersects, mi dice che le mie due geometrie non si "
+"intersecano, mentre SO CHE LO FANNO. Come mai?"
 
 #. Tag: para
-#: faq.xml:339
+#: faq.xml:371
 #, no-c-format
 msgid ""
 "This generally happens in two common cases. Your geometry is invalid -- "
@@ -633,18 +953,25 @@ msgid ""
 "because ST_AsText truncates the numbers and you have lots of decimals after "
 "it is not showing you."
 msgstr ""
+"Ciò in genere accade in due casi frequenti. O la tua geometria non è valida "
+"(controlla  <xref linkend=\"ST_IsValid\"/>), oppure presumi che si "
+"intersechi perche ST_AsText esegue un troncamento dei numeri e hai molti "
+"decimali che non vengono mostrati."
 
 #. Tag: para
-#: faq.xml:347
+#: faq.xml:379
 #, no-c-format
 msgid ""
 "I am releasing software that uses PostGIS, does that mean my software has to "
 "be licensed using the GPL like PostGIS? Will I have to publish all my code "
 "if I use PostGIS?"
 msgstr ""
+"Sto rilasciando software che utilizza PostGIS. Significa che dovrà "
+"utilizzare per questo la licenza GPL come PostGIS? Dovrò pubblicare tutto il "
+"mio codice se uso PostGIS?"
 
 #. Tag: para
-#: faq.xml:351
+#: faq.xml:383
 #, no-c-format
 msgid ""
 "Almost certainly not. As an example, consider Oracle database running on "
@@ -652,9 +979,14 @@ msgid ""
 "distributed using the GPL? No. So your software can use a PostgreSQL/PostGIS "
 "database as much as it wants and be under any license you like."
 msgstr ""
+"Quasi sicuramente no. Per esempio, considera un database Oracle su Linux. "
+"Linux è GPL. Oracle non lo è. L'Oracle che gira su Linux deve essere "
+"distribuito con licenza GPL? No. Pertanto il tuo software può utilizzare "
+"PostgreSQL/PostGIS quanto vuole, ed essere rilasciato sotto qualsiasi tipo "
+"di licenza."
 
 #. Tag: para
-#: faq.xml:352
+#: faq.xml:384
 #, no-c-format
 msgid ""
 "The only exception would be if you made changes to the PostGIS source code, "
@@ -665,3 +997,17 @@ msgid ""
 "does not require that you <emphasis>publish</emphasis> your source code, "
 "only that you share it with people you give binaries to."
 msgstr ""
+"L'unica eccezione sarebbe se hai eseguito delle modifiche al sorgente di "
+"PostGIS, e hai distribuito la versione modificata di PostGIS. In questo caso "
+"devi condividere il codice del PostGIS modificato (ma non il codice delle "
+"applicazioni che girano su questo). Anche in questo caso particolare, dovrai "
+"distribuire il codice sorgente a coloro cui hai distribuito i file binari. "
+"La licenza GPL non richiede che tu <emphasis>pubblichi</emphasis> il "
+"sorgente, ma solo che tu lo condivida con coloro a cui dai i file binari."
+
+#~ msgid ""
+#~ "CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
+#~ "SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
+#~ msgstr ""
+#~ "CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
+#~ "SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
diff --git a/doc/po/it_IT/faq_raster.xml.po b/doc/po/it_IT/faq_raster.xml.po
index 6785b18..99a860e 100644
--- a/doc/po/it_IT/faq_raster.xml.po
+++ b/doc/po/it_IT/faq_raster.xml.po
@@ -1,31 +1,33 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# pibinko <pibinko at gmail.com>, 2013-2014
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-02 17:12+0000\n"
+"Last-Translator: pibinko <pibinko at gmail.com>\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/"
+"postgis-1/language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: title
 #: faq_raster.xml:3
 #, no-c-format
 msgid "PostGIS Raster Frequently Asked Questions"
-msgstr ""
+msgstr "Domande frequenti su PostGIS raster"
 
 #. Tag: para
 #: faq_raster.xml:9
 #, no-c-format
 msgid "Where can I find out more about the PostGIS Raster Project?"
-msgstr ""
+msgstr "Dove posso trovare altre informazioni sul progetto PostGIS Raster?"
 
 #. Tag: para
 #: faq_raster.xml:13
@@ -34,6 +36,8 @@ msgid ""
 "Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster"
 "\">PostGIS Raster home page</ulink>."
 msgstr ""
+"Visita la <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster\">home "
+"page</ulink> di PostGIS Raster."
 
 #. Tag: para
 #: faq_raster.xml:19
@@ -42,6 +46,8 @@ msgid ""
 "Are there any books or tutorials to get me started with this wonderful "
 "invention?"
 msgstr ""
+"Ci sono libri o manuali che mi possano introdurre a questa meravigliosa "
+"invenzione?"
 
 #. Tag: para
 #: faq_raster.xml:23
@@ -62,6 +68,21 @@ msgid ""
 "can also buy from Amazon and various other book distributors. All hard-copy "
 "books come with a free coupon to download the E-book version."
 msgstr ""
+"C'è un tutorial completo per principianti, dal titolo <ulink url=\"http://"
+"trac.osgeo.org/postgis/wiki/WKTRasterTutorial01\"> Intersecting vector "
+"buffers with large raster coverage using PostGIS Raster</ulink>. Jorge ha "
+"nel suo blog una serie di articoli su PostGIS Raster che mostrano come "
+"caricare dati raster e che danno un confronto con le funzioni analoghe di "
+"Oracle GeoRaster. Controlla la  <ulink url=\"http://gis4free.wordpress.com/"
+"category/postgis-raster/\">serie di articoli di Jorge su PostGIS Raster / "
+"Oracle GeoRaster</ulink>. C'è un intero capitolo (più di 35 pagine) dedicato "
+"a PostGIS Raster, assieme a codice libero e dati da scaricare alla pagina "
+"<ulink url=\"http://www.postgis.us/chapter_13\">PostGIS in Action - Raster "
+"chapter</ulink>. Potete  <ulink url=\"http://www.postgis.us/page_buy_book"
+"\">acquistare</ulink> PostGIS in Action da Manning in versione cartacea (con "
+"sconti significativi per grossi quantitativi) oppore in versione E-book. "
+"Potete anche acquistare il libro da Amazon e da altri distributori. Tutte le "
+"copie cartacee contengono un buono per scaricare la versione E-book."
 
 #. Tag: para
 #: faq_raster.xml:30
@@ -71,12 +92,15 @@ msgid ""
 "fuzzytolerance.info/code/postgis-raster-ftw/\">PostGIS raster applied to "
 "land classification urban forestry</ulink>"
 msgstr ""
+"Qui trovi una rassegna da parte di un utente di PostGIS Raster per <ulink "
+"url=\"http://fuzzytolerance.info/code/postgis-raster-ftw/\">applicazioni di "
+"classificazione del suolo nelle zone verdi urbane</ulink>."
 
 #. Tag: para
 #: faq_raster.xml:37
 #, no-c-format
 msgid "How do I install Raster support in my PostGIS database?"
-msgstr ""
+msgstr "Come installo il supporto Raster nel mio database PostGIS?"
 
 #. Tag: para
 #: faq_raster.xml:41
@@ -88,6 +112,12 @@ msgid ""
 "9.1. Note in PostGIS 2.0 PostGIS Raster is fully integrated, so it will be "
 "compiled when you compile PostGIS."
 msgstr ""
+"Il modo più semplice è scaricare la versione binaria di PostGIS e della "
+"parte Raster, che sono attualmente disponibili per Windows e per le ultime "
+"versioni di Max OSX, partendo da una versione funzionante di PostGIS 2.0.0 o "
+"versioni superiori, con PostgreSQL 8.4, 9.0, o 9.1. Nota che in PostGIS 2.0 "
+"la parte Raster è completamente integrata, per cui dovrebbe essere compilata "
+"quando compilate PostGIS."
 
 #. Tag: para
 #: faq_raster.xml:43
@@ -98,18 +128,27 @@ msgid ""
 "configure-postgis-raster-on-windows/\">How to Install and Configure PostGIS "
 "raster on windows</ulink>"
 msgstr ""
+"Le istruzioni per installare ed eseguire il programma sotto Windows sono "
+"disponibili alla pagina <ulink url=\"http://gis4free.wordpress."
+"com/2011/03/10/how-to-install-and-configure-postgis-raster-on-windows/\">How "
+"to Install and Configure PostGIS raster on windows</ulink>"
 
 #. Tag: para
 #: faq_raster.xml:44
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "If you are on windows, you can compile yourself, or use the <ulink url="
-"\"http://www.postgis.org/download/windows/experimental.php#wktraster\">pre-"
-"compiled PostGIS Raster windows binaries</ulink>. If you are on Mac OSX "
-"Leopard or Snow Leopard, there are binaries available at <ulink url=\"http://"
-"www.kyngchaos.com/software/postgres\">Kyng Chaos Mac OSX PostgreSQL/GIS "
-"binaries</ulink>."
+"\"http://postgis.net/windows_downloads\">pre-compiled PostGIS Raster windows "
+"binaries</ulink>. If you are on Mac OSX Leopard or Snow Leopard, there are "
+"binaries available at <ulink url=\"http://www.kyngchaos.com/software/postgres"
+"\">Kyng Chaos Mac OSX PostgreSQL/GIS binaries</ulink>."
 msgstr ""
+"Su Windows, puoi compilare il programma da solo, oppure usare i <ulink url="
+"\"http://www.postgis.org/download/windows/experimental.php#wktraster"
+"\">binari precompilati per Windows di PostGIS Raster</ulink>. Se sei su Mac "
+"OSX Leopard o Snow Leopard, i binari sono disponibili all'indirizzo di "
+"<ulink url=\"http://www.kyngchaos.com/software/postgres\">Kyng Chaos Mac OSX "
+"PostgreSQL/GIS</ulink>."
 
 #. Tag: para
 #: faq_raster.xml:50
@@ -119,6 +158,9 @@ msgid ""
 "in your database. To upgrade an existing install use "
 "rtpostgis_upgrade_minor..sql instead of rtpostgis.sql"
 msgstr ""
+"Poi per abilitare il supporto raster nel tuo database, esegui il file "
+"rtpostgis.sql nel tuo database. Per aggiornare un'installazione esistente, "
+"utilizza rtpostgis_upgrade_minor..sql anziché rtpostgis.sql"
 
 #. Tag: para
 #: faq_raster.xml:51
@@ -130,6 +172,12 @@ msgid ""
 "Documentation01#a2.3-CompilingandInstallingfromSources\">Installing PostGIS "
 "Raster from source (in prior versions of PostGIS)</ulink>"
 msgstr ""
+"Per le altre piattaforme, in genere dovrai eseguire la compilazione da solo. "
+"Ci sono dipendenze da PostGISe da GDAL. Per ulteriori dettagli sulla "
+"compilazione da sorgente, vedi <ulink url=\"http://trac.osgeo.org/postgis/"
+"wiki/WKTRaster/Documentation01#a2.3-CompilingandInstallingfromSources"
+"\">Installing PostGIS Raster from source (in prior versions of PostGIS)</"
+"ulink>"
 
 #. Tag: para
 #: faq_raster.xml:57
@@ -139,6 +187,9 @@ msgid ""
 "rtpostgis.dll\": The specified module could not be found. or could not load "
 "library on Linux when trying to run rtpostgis.sql"
 msgstr ""
+"Ottengo l'errore could not load library \"C:/Program Files/PostgreSQL/8.4/"
+"lib/rtpostgis.dll\": The specified module could not be found. or could not "
+"load library on Linux when trying to run rtpostgis.sql"
 
 #. Tag: para
 #: faq_raster.xml:62
@@ -148,6 +199,10 @@ msgid ""
 "Windows you have libgdal-1.dll in the bin folder of your PostgreSQL install. "
 "For Linux libgdal has to be in your path or bin folder."
 msgstr ""
+"rtpostgis.so/dll is viene compilato con la dipendenza da libgdal.dll/so. "
+"Assicurati su Windows di avere libgdal-1.dll nella cartellabin folder della "
+"tua installazione PostgreSQL. Per Linux, libgdal deve essere nel tuo path o "
+"nella cartella bin."
 
 #. Tag: para
 #: faq_raster.xml:64
@@ -157,12 +212,15 @@ msgid ""
 "in your database. Make sure to install PostGIS first in your database before "
 "trying to install the raster support."
 msgstr ""
+"Potresti anche riscontrare errori diversi se non hai PostGIS installato nel "
+"tuo database. Assicurati di installare PostGIS prima di provare a installare "
+"il supporto raster."
 
 #. Tag: para
 #: faq_raster.xml:71
 #, no-c-format
 msgid "How do I load Raster data into PostGIS?"
-msgstr ""
+msgstr "Come carico i dati raster in PostGIS?"
 
 #. Tag: para
 #: faq_raster.xml:75
@@ -175,12 +233,19 @@ msgid ""
 "details. Pre-2.0 versions came with a <varname>raster2pgsql.py</varname> "
 "that required python with numpy and GDAL. This is no longer needed."
 msgstr ""
+"La più recente versione di PostGIS è corredata dall'eseguibile "
+"<varname>raster2pgsql</varname> per il caricamento di diversi tipi di raster "
+"e anche per generare quadri d'insieme senza software aggiuntivo. Ti "
+"rimandiamo a <xref linkend=\"RT_Raster_Loader\"/> per ulteriori dettagli. Le "
+"versioni precedenti alla 2.0 avevano un programma <varname>raster2pgsql.py</"
+"varname> che richiedeva python, numpy e GDAL. Questo programma non è più "
+"necessario."
 
 #. Tag: para
 #: faq_raster.xml:81
 #, no-c-format
 msgid "What kind of raster file formats can I load into my database?"
-msgstr ""
+msgstr "Che tipo di formati raster posso caricare nel mio database?"
 
 #. Tag: para
 #: faq_raster.xml:85
@@ -190,6 +255,9 @@ msgid ""
 "<ulink url=\"http://www.gdal.org/formats_list.html\">GDAL File Formats</"
 "ulink>."
 msgstr ""
+"Qualsiasi formato supportato dalla tua libreria GDAL. I formati supportati "
+"da GDAL sono <ulink url=\"http://www.gdal.org/formats_list.html"
+"\">documentati</ulink>."
 
 #. Tag: para
 #: faq_raster.xml:86
@@ -198,24 +266,26 @@ msgid ""
 "Your particular GDAL install may not support all formats. To verify the ones "
 "supported by your particular GDAL install, you can use"
 msgstr ""
+"La tua particolare versione di GDAL potrebbe non supportare tutti i formati. "
+"Per verificare di preciso, puoi usare"
 
 #. Tag: programlisting
 #: faq_raster.xml:87
 #, no-c-format
 msgid "raster2pgsql -G"
-msgstr ""
+msgstr "raster2pgsql -G"
 
 #. Tag: para
 #: faq_raster.xml:93
 #, no-c-format
 msgid "Can I export my PostGIS raster data to other raster formats?"
-msgstr ""
+msgstr "Posso esportare i miei dati raster PostGIS ad altri formati raster?"
 
 #. Tag: para
 #: faq_raster.xml:97
 #, no-c-format
 msgid "<para>Yes</para>"
-msgstr ""
+msgstr "<para>Sì</para>"
 
 #. Tag: para
 #: faq_raster.xml:98
@@ -224,6 +294,8 @@ msgid ""
 "GDAL 1.7+ has a PostGIS raster driver, but is only compiled in if you choose "
 "to compile with PostgreSQL support."
 msgstr ""
+"Dalla versione 1.7 in su, GDAL ha un driver per PostGIS Raster, ma viene "
+"compilato solo se scegli la compilazione con supporto PostgreSQL."
 
 #. Tag: para
 #: faq_raster.xml:99
@@ -232,6 +304,8 @@ msgid ""
 "The driver currently doesn't support irregularly blocked rasters, although "
 "you can store irregularly blocked rasters in PostGIS raster data type."
 msgstr ""
+"Al momento il driver non supporta i raster a blocchi irregolari, sebbene sia "
+"possibile memorizzare blocchi irregolari nel tipo dati PostGIS raster."
 
 #. Tag: para
 #: faq_raster.xml:101
@@ -243,6 +317,11 @@ msgid ""
 "\">GDAL Build Hints</ulink> for tips on building GDAL against in various OS "
 "platforms."
 msgstr ""
+"Se stai compilando il programma a partire dal sorgente, devi includere nel "
+"sorgente l'opzione <programlisting>--with-pg=path/to/pg_config</"
+"programlisting> per abilitare il driver. Ti rimandiamo alla pagina <ulink "
+"url=\"http://trac.osgeo.org/gdal/wiki/BuildHints\">GDAL Build Hints</ulink> "
+"per suggerimenti sulla compilazione di GDAL su divrse piattaforme."
 
 #. Tag: para
 #: faq_raster.xml:106
@@ -251,18 +330,22 @@ msgid ""
 "If your version of GDAL is compiled with the PostGIS Raster driver you "
 "should see PostGIS Raster in list when you do"
 msgstr ""
+"Se la tua versione di GDAL è compilata con il driver PostGIS Raster, "
+"dovresti trovare PostGIS Raster nella lista quando esegui"
 
 #. Tag: programlisting
 #: faq_raster.xml:108
 #, no-c-format
 msgid "gdalinfo --formats"
-msgstr ""
+msgstr "gdalinfo --formats"
 
 #. Tag: para
 #: faq_raster.xml:110
 #, no-c-format
 msgid "To get a summary about your raster via GDAL use gdalinfo:"
 msgstr ""
+"Per ottenere informazioni riassuntive sul tuo raster tramite GDAL, utilizza "
+"gdalinfo:"
 
 #. Tag: programlisting
 #: faq_raster.xml:111
@@ -271,6 +354,8 @@ msgid ""
 "gdalinfo  \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' "
 "password='whatever' schema='someschema' table=sometable\""
 msgstr ""
+"gdalinfo  \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' "
+"password='whatever' schema='someschema' table=sometable\""
 
 #. Tag: para
 #: faq_raster.xml:114
@@ -279,6 +364,9 @@ msgid ""
 "To export data to other raster formats, use gdal_translate the below will "
 "export all data from a table to a PNG file at 10% size."
 msgstr ""
+"Per esportare dati verso altri formati raster, utilizza gdal_translate. "
+"L'esempio sotto esporterà tutti i dati da una tabella a un file PNG col 10% "
+"della dimensione."
 
 #. Tag: para
 #: faq_raster.xml:116
@@ -289,21 +377,28 @@ msgid ""
 "band types and 32 bit unsigned ints will not translate easily to JPG or some "
 "others."
 msgstr ""
+"A seconda dei tipi di banda dei pixel, alcune conversioni non  "
+"funzioneranno, se il formato di esportazione non supprta un dato tipo di "
+"pixel. Per esempio, i tipi di banda a virgola mobile, o gli interi senza "
+"segno a 32 bit non si convertiranno bene in JPEG."
 
 #. Tag: para
 #: faq_raster.xml:119
 #, no-c-format
 msgid "Here is an example simple translation"
-msgstr ""
+msgstr "Ecco un esempio di una semplice conversione"
 
 #. Tag: programlisting
 #: faq_raster.xml:120
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable\" C:\\somefile.png"
+msgstr ""
 "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' "
 "user='postgres' password=whatever' schema='someschema' table=sometable\" C:"
 "\\somefile.png"
-msgstr ""
 
 #. Tag: para
 #: faq_raster.xml:121
@@ -312,25 +407,35 @@ msgid ""
 "You can also use SQL where clauses in your export using the where=... in "
 "your driver connection string. Below are some using a where clause"
 msgstr ""
+"Puoi anche utilizzare la clausola SQL WHERE nell'esportazione, riportando il "
+"testo where=.... nella stringa di collegamento del driver. Sotto si "
+"riportano alcuni esempi che utilizzano la clausola where"
 
 #. Tag: programlisting
 #: faq_raster.xml:123
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='filename=\\'abcd.sid\\''\" \" C:\\somefile.png"
+msgstr ""
 "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' "
 "user='postgres' password=whatever' schema='someschema' table=sometable where="
 "\"owner='jimmy'\" \" C:\\somefile.png"
-msgstr ""
 
 #. Tag: programlisting
 #: faq_raster.xml:124
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='ST_Intersects(rast, "
+"ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" C:\\intersectregion.png"
+msgstr ""
 "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' "
 "user='postgres' password=whatever' schema='someschema' table=sometable "
 "where='ST_Intersects(rast, ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" "
 "C:\\intersectregion.png"
-msgstr ""
 
 #. Tag: para
 #: faq_raster.xml:125
@@ -340,6 +445,10 @@ msgid ""
 "gdal/wiki/frmts_wtkraster.html#a3.2-Readingrasterdatafromthedatabase"
 "\">Reading Raster Data of PostGIS Raster section</ulink>"
 msgstr ""
+"Per vedere altri esempi e sintassi, si rimanda al paragrafo <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html#a3.2-"
+"Readingrasterdatafromthedatabase\">Leggere dati raster da un raster PostGIS</"
+"ulink>"
 
 #. Tag: para
 #: faq_raster.xml:130
@@ -347,7 +456,7 @@ msgstr ""
 msgid ""
 "Are their binaries of GDAL available already compiled with PostGIS Raster "
 "suppport?"
-msgstr ""
+msgstr "I binari di GDAL sono già disponibili con il supporto raster PostGIS?"
 
 #. Tag: para
 #: faq_raster.xml:132
@@ -357,26 +466,15 @@ msgid ""
 "DownloadingGdalBinaries\">GDAL Binaries</ulink> page. Any compiled with "
 "PostgreSQL support should have PostGIS Raster in them."
 msgstr ""
+"Sì. Controlla la pagina <ulink url=\"http://trac.osgeo.org/gdal/wiki/"
+"DownloadingGdalBinaries\">GDAL Binaries</ulink>. Qualsiasi versione "
+"compilata con l'opzione di supporto per PostgreSQL dovrebbe avere il "
+"supporto per i raster PostGIS."
 
 #. Tag: para
 #: faq_raster.xml:134
 #, no-c-format
 msgid ""
-"We know for sure the following windows binaries have PostGIS Raster built in."
-msgstr ""
-
-#. Tag: para
-#: faq_raster.xml:135
-#, no-c-format
-msgid ""
-"<ulink url=\"http://fwtools.maptools.org/\">FWTools latest stable version "
-"for Windows is compiled with Raster support</ulink>."
-msgstr ""
-
-#. Tag: para
-#: faq_raster.xml:136
-#, no-c-format
-msgid ""
 "PostGIS Raster is undergoing many changes. If you want to get the latest "
 "nightly build for Windows -- then check out the Tamas Szekeres nightly "
 "builds built with Visual Studio which contain GDAL trunk, Python Bindings "
@@ -387,22 +485,36 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:145
+#: faq_raster.xml:138
 #, no-c-format
-msgid "What tools can I use to view PostGIS raster data?"
+msgid ""
+"<ulink url=\"http://fwtools.maptools.org/\">FWTools latest stable version "
+"for Windows is compiled with Raster support</ulink>."
 msgstr ""
+"La versione più recente e stabile di <ulink url=\"http://fwtools.maptools."
+"org/\">FWTools per Windows</ulink> è compilata con il supporto raster."
 
 #. Tag: para
-#: faq_raster.xml:149
+#: faq_raster.xml:144
+#, no-c-format
+msgid "What tools can I use to view PostGIS raster data?"
+msgstr "Quali strumenti posso usare per visualizzare i dati raster PostGIS?"
+
+#. Tag: para
+#: faq_raster.xml:148
 #, no-c-format
 msgid ""
 "You can use MapServer compiled with GDAL 1.7+ and PostGIS Raster driver "
 "support to view Raster data. QuantumGIS (QGIS) now supports viewing of "
 "PostGIS Raster if you have PostGIS raster driver installed."
 msgstr ""
+"Puoi utilizzare Mapserver compilato con GDAL 1.7 o versioni superiori e con "
+"il supporto del driver raster PostGIS per vedere i dati raster. Quantum GIS "
+"(QGIS) inoltre supporta la visualizzazione dei raster PostGIS se hai il "
+"driver installato."
 
 #. Tag: para
-#: faq_raster.xml:151
+#: faq_raster.xml:150
 #, no-c-format
 msgid ""
 "In theory any tool that renders data using GDAL can support PostGIS raster "
@@ -411,24 +523,34 @@ msgid ""
 "sdk/</ulink> are a good choice if you don't want the hassle of having to "
 "setup to compile your own."
 msgstr ""
+"In teoria qualsiasi strumento che utilizzi GDAL per la restituzione dei dati "
+"può supportare i raster PostGIS direttamente o con un minimo sforzo. Sempre "
+"per Windows, I binari di Tama <ulink url=\"http://vbkto.dyndns.org/sdk/"
+"\">http://vbkto.dyndns.org/sdk/</ulink>  sono una buona scelta se non volete "
+"prendervi la briga di eseguire la compilazione in proprio."
 
 #. Tag: para
-#: faq_raster.xml:158
+#: faq_raster.xml:157
 #, no-c-format
 msgid "How can I add a PostGIS raster layer to my MapServer map?"
 msgstr ""
+"Come posso aggiungere uno strato raster PostGIS in una mappa di MapServer?"
 
 #. Tag: para
-#: faq_raster.xml:162
+#: faq_raster.xml:161
 #, no-c-format
 msgid ""
 "First you need GDAL 1.7 or higher compiled with PostGIS raster support. GDAL "
 "1.8 or above is preferred since many issues have been fixed in 1.8 and more "
 "PostGIS raster issues fixed in trunk version."
 msgstr ""
+"Anzitutto ti serve GDAL 1.7 o superiore compilato con il supporto per raster "
+"PostGIS. E consigliata la versione 1.8 o superiore, dato che quest'ultima "
+"risolve numerosi problemi, e altri problemi con i raster PostGIS sono "
+"risolti nella versione trunk."
 
 #. Tag: para
-#: faq_raster.xml:164
+#: faq_raster.xml:163
 #, no-c-format
 msgid ""
 "You can much like you can with any other raster. Refer to <ulink url="
@@ -438,7 +560,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:167
+#: faq_raster.xml:166
 #, no-c-format
 msgid ""
 "What makes PostGIS raster data particularly interesting, is that since each "
@@ -447,23 +569,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:169
+#: faq_raster.xml:168
 #, no-c-format
 msgid ""
 "Below is an example of how you would define a PostGIS raster layer in "
 "MapServer."
 msgstr ""
+"Sotto trovi un esempio di come definire uno strato raster PostGIS in "
+"MapServer."
 
 #. Tag: para
-#: faq_raster.xml:170
+#: faq_raster.xml:169
 #, no-c-format
 msgid ""
 "The mode=2 is required for tiled rasters and was added in PostGIS 2.0 and "
 "GDAL 1.8 drivers. This does not exist in GDAL 1.7 drivers."
 msgstr ""
+"L'opzione mode=2 serve per i raster con tile ed è stata aggiunta in PostGIS "
+"2.0 con il driver GDAL 1.8. Non esiste nei driver GDAL 1.7."
 
 #. Tag: programlisting
-#: faq_raster.xml:171
+#: faq_raster.xml:170
 #, no-c-format
 msgid ""
 "-- displaying raster with standard raster options\n"
@@ -495,9 +621,37 @@ msgid ""
 "        END\n"
 "END"
 msgstr ""
+"-- visualizzare un raster con le opzioni standard\n"
+"LAYER\n"
+"        NAME coolwktraster\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        PROCESSING \"SCALE=AUTO\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"        CLASS\n"
+"                NAME \"boring\"\n"
+"                EXPRESSION ([pixel] < 20)\n"
+"                COLOR 250 250 250\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"mildly interesting\"\n"
+"                EXPRESSION ([pixel] > 20 AND [pixel] < 1000)\n"
+"                COLOR 255 0 0\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"very interesting\"\n"
+"                EXPRESSION ([pixel] >= 1000)\n"
+"                COLOR 0 255 0\n"
+"        END\n"
+"END"
 
 #. Tag: programlisting
-#: faq_raster.xml:173
+#: faq_raster.xml:172
 #, no-c-format
 msgid ""
 "-- displaying raster with standard raster options and a where clause\n"
@@ -514,40 +668,60 @@ msgid ""
 "        #... classes are optional but useful for 1 band data\n"
 "END"
 msgstr ""
+"-- visualizzare un raster con le opzioni standard e la clausola where\n"
+"LAYER\n"
+"        NAME soil_survey2009\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' "
+"where='survey_year=2009' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"END"
 
 #. Tag: para
-#: faq_raster.xml:181
+#: faq_raster.xml:180
 #, no-c-format
 msgid "What functions can I currently use with my raster data?"
-msgstr ""
+msgstr "Quali funzioni posso attualmente utilizzare con i dati raster?"
 
 #. Tag: para
-#: faq_raster.xml:185
+#: faq_raster.xml:184
 #, no-c-format
 msgid ""
 "Refer to the list of <xref linkend=\"RT_reference\"/>. There are more, but "
 "this is still a work in progress."
 msgstr ""
+"Ti rimandiamo alla lista <xref linkend=\"RT_reference\"/>. Ce ne sono anche "
+"altre, ma si tratta di funzioni in via di sviluppo."
 
 #. Tag: para
-#: faq_raster.xml:187
+#: faq_raster.xml:186
 #, no-c-format
 msgid ""
 "Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
 "PlanningAndFunding\">PostGIS Raster roadmap page</ulink> for details of what "
 "you can expect in the future."
 msgstr ""
+"Ti rimandiamo alla pagina <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"WKTRaster/PlanningAndFunding\">PostGIS Raster roadmap page</ulink> per i "
+"dettagli sugli sviluppi attesti in futuro."
 
 #. Tag: para
-#: faq_raster.xml:195
+#: faq_raster.xml:194
 #, no-c-format
 msgid ""
 "I am getting error ERROR: function st_intersects(raster, unknown) is not "
 "unique or st_union(geometry,text) is not unique. How do I fix?"
 msgstr ""
+"Ottengo un errore ERROR: function st_intersects(raster, unknown) is not "
+"unique or st_union(geometry,text) is not unique. Come lo aggiusto?"
 
 #. Tag: para
-#: faq_raster.xml:199
+#: faq_raster.xml:198
 #, no-c-format
 msgid ""
 "The function is not unique error happens if one of your arguments is a "
@@ -558,58 +732,80 @@ msgid ""
 "theory support your request. To prevent this, you need to cast the geometry "
 "to a geometry."
 msgstr ""
+"L'errore \"function is not unique\" si ha quando uno dei vostri argomenti e "
+"la rappresentazione testuale di una geometria, anziché una geometria vera e "
+"propria. In questi casi, PostgreSQL segna la rappresentazione testuale come "
+"tipo sconosciuto, che potrebbe essere applicato sia a st_intersects(raster, "
+"geometry) che a st_intersects(raster,raster), portando così a una situazione "
+"non univoca, dato che entrambe le funzioni supportano la tua richiesta. Al "
+"fine di evitare questa situazione, devi eseguire il cast della geometria in "
+"modo che sia effettivamente interpretata come geometria."
 
 #. Tag: para
-#: faq_raster.xml:200
+#: faq_raster.xml:199
 #, no-c-format
 msgid "For example if your code looks like this:"
-msgstr ""
+msgstr "Per esempio, se il tuo codice è tipo:"
 
 #. Tag: programlisting
-#: faq_raster.xml:201
+#: faq_raster.xml:200
 #, no-c-format
 msgid ""
 "SELECT rast\n"
 " FROM my_raster\n"
 "   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
 msgstr ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
 
 #. Tag: para
-#: faq_raster.xml:202
+#: faq_raster.xml:201
 #, no-c-format
 msgid ""
 "Cast the textual geometry representation to a geometry by changing your code "
 "to this:"
 msgstr ""
+"Dei eseguire il cast della geometria come testo a una geometria vera e "
+"propria in questo modo:"
 
 #. Tag: programlisting
-#: faq_raster.xml:203
+#: faq_raster.xml:202
 #, no-c-format
 msgid ""
 "SELECT rast\n"
 " FROM my_raster\n"
 "   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)'::geometry);"
 msgstr ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)'::geometry);"
 
 #. Tag: para
-#: faq_raster.xml:211
+#: faq_raster.xml:208
 #, no-c-format
 msgid ""
 "How is PostGIS Raster different from Oracle GeoRaster (SDO_GEORASTER) and "
 "SDO_RASTER types?"
 msgstr ""
+"Quali sono le differenze tra i raster di PostGIS, i GeoRaster di Oracle "
+"(SDO_GEORASTER) e i tipi SDO_RASTER?"
 
 #. Tag: para
-#: faq_raster.xml:215
+#: faq_raster.xml:212
 #, no-c-format
 msgid ""
 "For a more extensive discussion on this topic, check out Jorge Arévalo "
 "<ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-georaster-part-"
 "i/\">Oracle GeoRaster and PostGIS Raster: First impressions </ulink>"
 msgstr ""
+"Per una discussione dettagliata su questo argomento, dai un'occhiata "
+"all'articolo di Jorge Arévalo <ulink url=\"http://gis4free.wordpress."
+"com/2010/07/19/oracle-georaster-part-i/\">Oracle GeoRaster and PostGIS "
+"Raster: First impressions </ulink>"
 
 #. Tag: para
-#: faq_raster.xml:216
+#: faq_raster.xml:213
 #, no-c-format
 msgid ""
 "The major advantage of one-georeference-by-raster over one-georeference-by-"
@@ -617,7 +813,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:217
+#: faq_raster.xml:214
 #, no-c-format
 msgid ""
 "* coverages to be not necessarily rectangular (which is often the case of "
@@ -626,7 +822,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:218
+#: faq_raster.xml:215
 #, no-c-format
 msgid ""
 "* rasters to overlaps (which is necessary to implement lossless vector to "
@@ -634,7 +830,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:219
+#: faq_raster.xml:216
 #, no-c-format
 msgid ""
 "These arrangements are possible in Oracle as well, but they imply the "
@@ -645,7 +841,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:224
+#: faq_raster.xml:221
 #, no-c-format
 msgid ""
 "It's a bit like if PostGIS would force you to store only full rectangular "
@@ -656,3 +852,73 @@ msgid ""
 "rectangular coverages. We think it is a big advantage that raster structure "
 "should benefit as well."
 msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:229
+#, no-c-format
+msgid ""
+"raster2pgsql load of large file fails with String of N bytes is too long for "
+"encoding conversion?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:233
+#, no-c-format
+msgid ""
+"raster2pgsql doesn't make any connections to your database when generating "
+"the file to load. If your database has set an explicit client encoding "
+"different from your database encoding, then when loading large raster files "
+"(above 30 MB in size), you may run into a <code>bytes is too long for "
+"encoding conversion</code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:235
+#, no-c-format
+msgid ""
+"This generally happens if for example you have your database in UTF8, but to "
+"support windows apps, you have the client encoding set to <code>WIN1252</"
+"code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:236
+#, no-c-format
+msgid ""
+"To work around this make sure the client encoding is the same as your "
+"database encoding during load. You can do this by explicitly setting the "
+"encoding in your load script. Example, if you are on windows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:237
+#, no-c-format
+msgid "set PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:238
+#, no-c-format
+msgid "If you are on Unix/Linux"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:239
+#, no-c-format
+msgid "export PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:240
+#, no-c-format
+msgid ""
+"Gory details of this issue are detailed in <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/2209\">http://trac.osgeo.org/postgis/ticket/2209</ulink>"
+msgstr ""
+
+#~ msgid ""
+#~ "We know for sure the following windows binaries have PostGIS Raster built "
+#~ "in."
+#~ msgstr ""
+#~ "Sappiamo per certo che i seguenti binari Windows hanno il supporto raster "
+#~ "PostGIS."
diff --git a/doc/po/it_IT/installation.xml.po b/doc/po/it_IT/installation.xml.po
index 70b7b67..96f793e 100644
--- a/doc/po/it_IT/installation.xml.po
+++ b/doc/po/it_IT/installation.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-12 07:23+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -16,9 +16,9 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: installation.xml:3 installation.xml:231 installation.xml:640
+#: installation.xml:3
 #, no-c-format
-msgid "Installation"
+msgid "PostGIS Installation"
 msgstr ""
 
 #. Tag: para
@@ -36,40 +36,80 @@ msgstr ""
 #. Tag: para
 #: installation.xml:11
 #, no-c-format
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:12
+#, no-c-format
 msgid ""
-"The raster support is currently optional, but installed by default. For "
-"installing using the PostgreSQL 9.1+ extensions model it is required. Please "
-"refer to <xref linkend=\"make_install_postgis_extensions\"/> if you are "
-"using PostgreSQL 9.1+."
+"tar xvfz postgis-&last_release_version;.tar.gz\n"
+"cd postgis-&last_release_version;\n"
+"./configure\n"
+"make\n"
+"make install"
 msgstr ""
 
 #. Tag: para
 #: installation.xml:13
 #, no-c-format
 msgid ""
-"All the .sql files once installed will be installed in share/contrib/postgis-"
-"&last_release_version; folder of your PostgreSQL install"
+"Once postgis is installed, it needs to be enabled in each individual "
+"database you want to use it in."
 msgstr ""
 
 #. Tag: para
+#: installation.xml:14
+#, no-c-format
+msgid ""
+"The raster support is currently optional, but installed by default. For "
+"enabling using the PostgreSQL 9.1+ extensions model raster is required. "
+"Using the extension enable process is preferred and more user-friendly. To "
+"spatially enable your database:"
+msgstr ""
+
+#. Tag: programlisting
 #: installation.xml:15
 #, no-c-format
 msgid ""
-"The <varname>postgis_comments.sql</varname>, <varname>raster_comments.sql</"
-"varname>, <varname>topology_comments.sql</varname> generate quick help tips "
-"for each function that can be accessed via pgAdmin III or psql. In psql with "
-"a command of the form e.g.<varname>\\dd ST_SetPoint</varname>"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_topology;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_tiger_geocoder;\"\n"
+"-- if you built with sfcgal support --\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_sfcgal;\""
+msgstr ""
+
+#. Tag: para
+#: installation.xml:18
+#, no-c-format
+msgid ""
+"Please refer to <xref linkend=\"make_install_postgis_extensions\"/> for more "
+"details about querying installed/available extensions and upgrading "
+"extensions, or switching from a non-extension install to an extension "
+"install."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:20
+#, no-c-format
+msgid ""
+"For those running who decided for some reason not to compile with raster "
+"support, or just are old-fashioned, here are longer more painful "
+"instructions for you:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:21
+#, no-c-format
+msgid ""
+"All the .sql files once installed will be installed in share/contrib/postgis-"
+"&last_minor_version; folder of your PostgreSQL install"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:17
+#: installation.xml:24
 #, no-c-format
 msgid ""
-"tar xvfz postgis-&last_release_version;.tar.gz\n"
-"cd postgis-&last_release_version;\n"
-"./configure --with-raster --with-topology --with-gui\n"
-"make\n"
-"make install\n"
 "createdb yourdatabase\n"
 "createlang plpgsql yourdatabase\n"
 "psql -d yourdatabase -f postgis.sql\n"
@@ -77,23 +117,15 @@ msgid ""
 "psql -d yourdatabase -f spatial_ref_sys.sql\n"
 "psql -d yourdatabase -f rtpostgis.sql\n"
 "psql -d yourdatabase -f raster_comments.sql\n"
-"psql -d yourdatabase -f topology/topology.sql\n"
-"psql -d yourdatabase -f doc/topology_comments.sql"
-msgstr ""
-
-#. Tag: para
-#: installation.xml:18
-#, no-c-format
-msgid ""
-"<filename>topology_comments.sql</filename> since its an optional feature is "
-"not installed by <command>make install</command> or <command>make comments-"
-"install</command>. However if you do a <command>make comments</command> or "
-"<command>make topology_comments.sql</command>, it will be generated in the "
-"docs folder"
+"psql -d yourdatabase -f topology.sql\n"
+"psql -d yourdatabase -f topology_comments.sql\n"
+"--if you built with sfcgal support --\n"
+"psql -d yourdatabase -f sfcgal.sql\n"
+"psql -d yourdatabase -f sfcgal_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:27
+#: installation.xml:26
 #, no-c-format
 msgid ""
 "The rest of this chapter goes into detail each of the above installation "
@@ -101,25 +133,25 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:34
+#: installation.xml:33
 #, no-c-format
-msgid "Requirements"
+msgid "Install Requirements"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:36
+#: installation.xml:35
 #, no-c-format
 msgid "PostGIS has the following requirements for building and usage:"
 msgstr ""
 
 #. Tag: emphasis
-#: installation.xml:41
+#: installation.xml:40
 #, no-c-format
 msgid "Required"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:46
+#: installation.xml:45
 #, no-c-format
 msgid ""
 "PostgreSQL &min_postgres_version; or higher. A complete installation of "
@@ -129,7 +161,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:55
+#: installation.xml:54
 #, no-c-format
 msgid ""
 "For a full PostgreSQL / PostGIS support matrix and PostGIS/GEOS support "
@@ -139,7 +171,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:61
+#: installation.xml:60
 #, no-c-format
 msgid ""
 "GNU C compiler (<filename>gcc</filename>). Some other ANSI C compilers can "
@@ -148,7 +180,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:69
+#: installation.xml:68
 #, no-c-format
 msgid ""
 "GNU Make (<filename>gmake</filename> or <filename>make</filename>). For many "
@@ -159,7 +191,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:79
+#: installation.xml:78
 #, no-c-format
 msgid ""
 "Proj4 reprojection library, version 4.6.0 or greater. The Proj4 library is "
@@ -169,7 +201,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:91
+#: installation.xml:90
 #, no-c-format
 msgid ""
 "GEOS geometry library, version 3.3 or greater, but GEOS 3.4+ is recommended "
@@ -184,7 +216,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:101
+#: installation.xml:100
 #, no-c-format
 msgid ""
 "LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports "
@@ -194,33 +226,46 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:108
+#: installation.xml:107
 #, no-c-format
 msgid ""
 "JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON "
 "via the function ST_GeomFromGeoJson. JSON-C is available for download from "
-"<ulink url=\"http://oss.metaparadigm.com/json-c/\">http://oss.metaparadigm."
-"com/json-c/</ulink>."
+"<ulink url=\"https://github.com/json-c/json-c/releases\">https://github.com/"
+"json-c/json-c/releases/</ulink>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:116
+#: installation.xml:115
 #, no-c-format
 msgid ""
 "GDAL, version 1.8 or higher (1.9 or higher is strongly recommended since "
 "some things will not work well or behavior differently with lower versions). "
-"This is required for raster support. <ulink url=\"http://trac.osgeo.org/gdal/"
-"wiki/DownloadSource\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
+"This is required for raster support and to be able to install with "
+"<code>CREATE EXTENSION postgis</code> so highly recommended for those "
+"running 9.1+. <ulink url=\"http://trac.osgeo.org/gdal/wiki/DownloadSource"
+"\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
 msgstr ""
 
 #. Tag: emphasis
-#: installation.xml:124
+#: installation.xml:123
 #, no-c-format
 msgid "Optional"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:129
+#: installation.xml:128
+#, no-c-format
+msgid ""
+"GDAL (pseudo optional) only if you don't want raster and don't care about "
+"installing with <code>CREATE EXTENSION postgis</code> can you leave it out. "
+"Keep in mind other extensions may have a requires postgis extension which "
+"will prevent you from installing them unless you install postgis as an "
+"extension. So it is highly recommended you compile with GDAL support."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:134
 #, no-c-format
 msgid ""
 "GTK (requires GTK+2.0, 2.8+) to compile the shp2pgsql-gui shape file loader. "
@@ -228,7 +273,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:139
+#: installation.xml:144
+#, no-c-format
+msgid ""
+"SFCGAL, version 1.0 (or higher) could be used to provide additional 2D and "
+"3D advanced analysis functions to PostGIS cf <xref linkend=\"reference_sfcgal"
+"\"/>. And also allow to use SFCGAL rather than GEOS for some 2D functions "
+"provided by both backends (like ST_Intersection or ST_Area, for instance). A "
+"PostgreSQL configuration variable <code>postgis.backend</code> allow end "
+"user to control which backend he want to use if SFCGAL is installed (GEOS by "
+"default). Nota: SFCGAL 1.0 require at least CGAL 4.1 and Boost 1.46 (cf: "
+"<ulink url=\"http://oslandia.github.io/SFCGAL/installation.html\">http://"
+"oslandia.github.io/SFCGAL/installation.html</ulink>) <ulink url=\"https://"
+"github.com/Oslandia/SFCGAL\">https://github.com/Oslandia/SFCGAL</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:152
+#, no-c-format
+msgid ""
+"In order to build the <xref linkend=\"Address_Standardizer\"/> you will also "
+"need PCRE <ulink url=\"http://www.pcre.org\">http://www.pcre.org</ulink> "
+"(which generally is already installed on nix systems). <code>Regex::"
+"Assemble</code> perl CPAN package is only needed if you want to rebuild the "
+"data encoded in <filename>parseaddress-stcities.h</filename>. <xref linkend="
+"\"Address_Standardizer\"/> will automatically be built if it detects a PCRE "
+"library, or you pass in a valid <varname>--with-pcre-dir=/path/to/pcre</"
+"varname> during configure."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:159
 #, no-c-format
 msgid ""
 "CUnit (<filename>CUnit</filename>). This is needed for regression testing. "
@@ -237,7 +312,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:145
+#: installation.xml:165
 #, no-c-format
 msgid ""
 "Apache Ant (<filename>ant</filename>) is required for building any of the "
@@ -246,7 +321,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:157
+#: installation.xml:177
 #, no-c-format
 msgid ""
 "DocBook (<filename>xsltproc</filename>) is required for building the "
@@ -255,7 +330,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:168
+#: installation.xml:188
 #, no-c-format
 msgid ""
 "DBLatex (<filename>dblatex</filename>) is required for building the "
@@ -264,7 +339,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:179
+#: installation.xml:199
 #, no-c-format
 msgid ""
 "ImageMagick (<filename>convert</filename>) is required to generate the "
@@ -273,31 +348,29 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:192
+#: installation.xml:212
 #, no-c-format
 msgid "Getting the Source"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:194
+#: installation.xml:214
 #, no-c-format
 msgid ""
 "Retrieve the PostGIS source archive from the downloads website <ulink url="
-"\"http://www.postgis.org/download/postgis-&last_release_version;.tar.gz\"> "
-"http://www.postgis.org/download/postgis-&last_release_version;.tar.gz </"
-"ulink>"
+"\"&postgis_download_url;\"> &postgis_download_url; </ulink>"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:201
+#: installation.xml:221
 #, no-c-format
 msgid ""
-"wget http://www.postgis.org/download/postgis-&last_release_version;.tar.gz\n"
+"wget &postgis_download_url;\n"
 "tar -xvzf postgis-&last_release_version;.tar.gz"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:203
+#: installation.xml:223
 #, no-c-format
 msgid ""
 "This will create a directory called <varname>postgis-&last_release_version;</"
@@ -305,7 +378,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:209
+#: installation.xml:229
 #, no-c-format
 msgid ""
 "Alternatively, checkout the source from the <ulink url=\"http://subversion."
@@ -314,7 +387,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:221
+#: installation.xml:241
 #, no-c-format
 msgid ""
 "svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-"
@@ -322,15 +395,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:223
+#: installation.xml:243
 #, no-c-format
 msgid ""
 "Change into the newly created <varname>postgis-&last_release_version;</"
 "varname> directory to continue the installation."
 msgstr ""
 
+#. Tag: title
+#: installation.xml:251
+#, no-c-format
+msgid "Compiling and Install from Source: Detailed"
+msgstr ""
+
 #. Tag: para
-#: installation.xml:234
+#: installation.xml:254
 #, no-c-format
 msgid ""
 "Many OS systems now include pre-built packages for PostgreSQL/PostGIS. In "
@@ -339,7 +418,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:239
+#: installation.xml:259
 #, no-c-format
 msgid ""
 "This section includes general compilation instructions, if you are compiling "
@@ -350,7 +429,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:241
+#: installation.xml:261
 #, no-c-format
 msgid ""
 "Pre-Built Packages for various OS are listed in <ulink url=\"http://trac."
@@ -358,7 +437,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:242
+#: installation.xml:262
 #, no-c-format
 msgid ""
 "If you are a windows user, you can get stable builds via Stackbuilder or "
@@ -371,7 +450,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:247
+#: installation.xml:267
 #, no-c-format
 msgid ""
 "The PostGIS module is an extension to the PostgreSQL backend server. As "
@@ -382,7 +461,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:255
+#: installation.xml:275
 #, no-c-format
 msgid ""
 "Refer to the PostgreSQL installation guides if you haven't already installed "
@@ -391,7 +470,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:265
+#: installation.xml:285
 #, no-c-format
 msgid ""
 "For GEOS functionality, when you install PostgresSQL you may need to "
@@ -399,13 +478,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:270
+#: installation.xml:290
 #, no-c-format
 msgid "LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE]"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:272
+#: installation.xml:292
 #, no-c-format
 msgid ""
 "This is a workaround for bogus C++ exceptions interaction with older "
@@ -415,7 +494,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:280
+#: installation.xml:300
 #, no-c-format
 msgid ""
 "The following steps outline the configuration and compilation of the PostGIS "
@@ -423,13 +502,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:287
+#: installation.xml:307
 #, no-c-format
 msgid "Configuration"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:289
+#: installation.xml:309
 #, no-c-format
 msgid ""
 "As with most linux installations, the first step is to generate the Makefile "
@@ -438,7 +517,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:299
+#: installation.xml:319
 #, no-c-format
 msgid ""
 "With no additional parameters, this command will attempt to automatically "
@@ -449,7 +528,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:308
+#: installation.xml:328
 #, no-c-format
 msgid ""
 "The following list shows only the most commonly used parameters. For a "
@@ -458,7 +537,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:318
+#: installation.xml:338
 #, no-c-format
 msgid ""
 "This is the location the PostGIS libraries and SQL scripts will be installed "
@@ -467,7 +546,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:325
+#: installation.xml:345
 #, no-c-format
 msgid ""
 "This parameter is currently broken, as the package will only install into "
@@ -477,7 +556,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:340
+#: installation.xml:360
 #, no-c-format
 msgid ""
 "PostgreSQL provides a utility called <command>pg_config</command> to enable "
@@ -488,7 +567,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:354
+#: installation.xml:374
 #, no-c-format
 msgid ""
 "GDAL, a required library, provides functionality needed for raster support "
@@ -499,7 +578,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:368
+#: installation.xml:388
 #, no-c-format
 msgid ""
 "GEOS, a required geometry library, provides a utility called <command>geos-"
@@ -510,7 +589,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:382
+#: installation.xml:402
 #, no-c-format
 msgid ""
 "LibXML is the library required for doing GeomFromKML/GML processes. It "
@@ -523,7 +602,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:400
+#: installation.xml:420
 #, no-c-format
 msgid ""
 "Proj4 is a reprojection library required by PostGIS. Use this parameter "
@@ -532,13 +611,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:412
+#: installation.xml:432
 #, no-c-format
 msgid "Directory where iconv is installed."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:421
+#: installation.xml:441
 #, no-c-format
 msgid ""
 "<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink> is an MIT-"
@@ -549,7 +628,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:433
+#: installation.xml:453
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.pcre.org/\">PCRE</ulink> is an BSD-licensed Perl "
+"Compatible Regular Expression library required by address_standardizer "
+"extension. Use this parameter (<command>--with-pcredir=/path/to/pcredir</"
+"command>) to manually specify a particular PCRE installation directory that "
+"PostGIS will build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:465
 #, no-c-format
 msgid ""
 "Compile the data import GUI (requires GTK+2.0). This will create shp2pgsql-"
@@ -557,7 +647,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:442
+#: installation.xml:474
 #, no-c-format
 msgid ""
 "Compile with raster support. This will build rtpostgis-"
@@ -566,7 +656,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:451
+#: installation.xml:483
 #, no-c-format
 msgid ""
 "Compile with topology support. This will build the topology.sql file. There "
@@ -575,7 +665,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:460
+#: installation.xml:492
 #, no-c-format
 msgid ""
 "By default PostGIS will try to detect gettext support and compile with it, "
@@ -589,7 +679,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:470
+#: installation.xml:503
+#, no-c-format
+msgid ""
+"By default PostGIS will not install with sfcgal support without this switch. "
+"<varname>PATH</varname> is an optional argument that allows to specify an "
+"alternate PATH to sfcgal-config."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:511
 #, no-c-format
 msgid ""
 "If you obtained PostGIS from the SVN <ulink url=\"http://svn.osgeo.org/"
@@ -598,7 +697,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:482
+#: installation.xml:523
 #, no-c-format
 msgid ""
 "This script will generate the <command>configure</command> script that in "
@@ -606,7 +705,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:487
+#: installation.xml:528
 #, no-c-format
 msgid ""
 "If you instead obtained PostGIS as a tarball, running <command>./autogen.sh</"
@@ -615,13 +714,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:496
+#: installation.xml:537
 #, no-c-format
 msgid "Building"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:498
+#: installation.xml:539
 #, no-c-format
 msgid ""
 "Once the Makefile has been generated, building PostGIS is as simple as "
@@ -629,7 +728,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:507
+#: installation.xml:548
 #, no-c-format
 msgid ""
 "The last line of the output should be \"<code>PostGIS was built "
@@ -637,7 +736,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:512
+#: installation.xml:553
 #, no-c-format
 msgid ""
 "As of PostGIS v1.4.0, all the functions have comments generated from the "
@@ -649,13 +748,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:522 installation.xml:544
+#: installation.xml:563 installation.xml:587
 #, no-c-format
 msgid "make comments"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:525
+#: installation.xml:566
 #, no-c-format
 msgid ""
 "Introduced in PostGIS 2.0. This generates html cheat sheets suitable for "
@@ -667,7 +766,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:530
+#: installation.xml:571
 #, no-c-format
 msgid ""
 "You can download some pre-built ones available in html and pdf from <ulink "
@@ -676,19 +775,19 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:533
+#: installation.xml:574
 #, no-c-format
 msgid "make cheatsheets"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:538
+#: installation.xml:579
 #, no-c-format
 msgid "Building PostGIS Extensions and Deploying them"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:540
+#: installation.xml:581
 #, no-c-format
 msgid ""
 "The PostGIS extensions are built and installed automatically if you are "
@@ -696,7 +795,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:543
+#: installation.xml:584
 #, no-c-format
 msgid ""
 "If you are building from source repository, you need to build the function "
@@ -705,7 +804,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:545
+#: installation.xml:589
 #, no-c-format
 msgid ""
 "Building the comments is not necessary if you are building from a release "
@@ -713,7 +812,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:546
+#: installation.xml:590
 #, no-c-format
 msgid ""
 "If you are building against PostgreSQL 9.1, the extensions should "
@@ -723,7 +822,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:548
+#: installation.xml:592
 #, no-c-format
 msgid ""
 "cd extensions\n"
@@ -739,7 +838,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:549
+#: installation.xml:593
 #, no-c-format
 msgid ""
 "The extension files will always be the same for the same version of PostGIS "
@@ -749,7 +848,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:551
+#: installation.xml:595
 #, no-c-format
 msgid ""
 "If you want to install the extensions manually on a separate server "
@@ -760,7 +859,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:558
+#: installation.xml:602
 #, no-c-format
 msgid ""
 "These are the control files that denote information such as the version of "
@@ -769,7 +868,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:564
+#: installation.xml:608
 #, no-c-format
 msgid ""
 "All the files in the /sql folder of each extension. Note that these need to "
@@ -779,7 +878,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:570
+#: installation.xml:614
 #, no-c-format
 msgid ""
 "Once you do that, you should see <varname>postgis</varname>, "
@@ -788,7 +887,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:571
+#: installation.xml:615
 #, no-c-format
 msgid ""
 "If you are using psql, you can verify that the extensions are installed by "
@@ -796,7 +895,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:572
+#: installation.xml:616
 #, no-c-format
 msgid ""
 "SELECT name, default_version,installed_version \n"
@@ -808,7 +907,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:574
+#: installation.xml:618
 #, no-c-format
 msgid ""
 "If you have the extension installed in the database you are querying, you'll "
@@ -820,7 +919,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:578
+#: installation.xml:622
 #, no-c-format
 msgid ""
 "If you have the extensions available, you can install postgis extension in "
@@ -829,15 +928,58 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:579
+#: installation.xml:623
 #, no-c-format
 msgid ""
 "CREATE EXTENSION postgis;\n"
-"CREATE EXTENSION postgis_topology;"
+"CREATE EXTENSION postgis_topology;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:581
+#: installation.xml:625
+#, no-c-format
+msgid ""
+"In psql you can use to see what versions you have installed and also what "
+"schema they are installed."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:626
+#, no-c-format
+msgid ""
+"\\connect mygisdb\n"
+"\\x \n"
+"\\dx postgis*"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:628
+#, no-c-format
+msgid ""
+"List of installed extensions\n"
+"-[ RECORD 1 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis\n"
+"Version     | &last_release_version;\n"
+"Schema      | public\n"
+"Description | PostGIS geometry, geography, and raster spat..\n"
+"-[ RECORD 2 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_tiger_geocoder\n"
+"Version     | &last_release_version;\n"
+"Schema      | tiger\n"
+"Description | PostGIS tiger geocoder and reverse geocoder\n"
+"-[ RECORD 3 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_topology\n"
+"Version     | &last_release_version;\n"
+"Schema      | topology\n"
+"Description | PostGIS topology spatial types and functions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:630
 #, no-c-format
 msgid ""
 "Extension tables <varname>spatial_ref_sys</varname>, <varname>layer</"
@@ -855,19 +997,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:586
+#: installation.xml:635
 #, no-c-format
 msgid ""
 "If you installed &last_release_version;, without using our wonderful "
 "extension system, you can change it to be extension based by first upgrading "
 "to the latest micro version running the upgrade scripts: "
-"<filename>postgis_upgrade_20_minor.sql</filename>,"
-"<filename>raster_upgrade_20_minor.sql</filename>,"
-"<filename>topology_upgrade_20_minor.sql</filename>."
+"<filename>postgis_upgrade_22_minor.sql</filename>,"
+"<filename>raster_upgrade_22_minor.sql</filename>,"
+"<filename>topology_upgrade_22_minor.sql</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:587
+#: installation.xml:636
 #, no-c-format
 msgid ""
 "If you installed postgis without raster support, you'll need to install "
@@ -875,7 +1017,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:588
+#: installation.xml:637
 #, no-c-format
 msgid ""
 "Then you can run the below commands to package the functions in their "
@@ -883,33 +1025,34 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:589
+#: installation.xml:638
 #, no-c-format
 msgid ""
 "CREATE EXTENSION postgis FROM unpackaged;\n"
-"CREATE EXTENSION postgis_topology FROM unpackaged;"
+"CREATE EXTENSION postgis_topology FROM unpackaged;\n"
+"CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:595
+#: installation.xml:644
 #, no-c-format
 msgid "Testing"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:597
+#: installation.xml:646
 #, no-c-format
 msgid "If you wish to test the PostGIS build, run"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:602
+#: installation.xml:651
 #, no-c-format
 msgid "make check"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:605
+#: installation.xml:654
 #, no-c-format
 msgid ""
 "The above command will run through various checks and regression tests using "
@@ -917,7 +1060,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:611
+#: installation.xml:660
 #, no-c-format
 msgid ""
 "If you configured PostGIS using non-standard PostgreSQL, GEOS, or Proj4 "
@@ -926,7 +1069,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:619
+#: installation.xml:668
 #, no-c-format
 msgid ""
 "Currently, the <command>make check</command> relies on the <code>PATH</code> "
@@ -939,18 +1082,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:631
+#: installation.xml:680
 #, no-c-format
 msgid ""
 "If successful, the output of the test should be similar to the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:636
+#: installation.xml:685
 #, no-c-format
 msgid ""
 "CUnit - A Unit testing framework for C - Version 2.1-0\n"
-"         http://cunit.sourceforge.net/\n"
+"     http://cunit.sourceforge.net/\n"
 "\n"
 "\n"
 "Suite: print_suite\n"
@@ -959,15 +1102,22 @@ msgid ""
 "  Test: test_lwprint_optional_format ... passed\n"
 "  Test: test_lwprint_oddball_formats ... passed\n"
 "  Test: test_lwprint_bad_formats ... passed\n"
-"Suite: Misc Suite\n"
+"Suite: misc\n"
 "  Test: test_misc_force_2d ... passed\n"
 "  Test: test_misc_simplify ... passed\n"
 "  Test: test_misc_count_vertices ... passed\n"
 "  Test: test_misc_area ... passed\n"
 "  Test: test_misc_wkb ... passed\n"
-"Suite: PointArray Suite\n"
+"Suite: ptarray\n"
 "  Test: test_ptarray_append_point ... passed\n"
 "  Test: test_ptarray_append_ptarray ... passed\n"
+"  Test: test_ptarray_locate_point ... passed\n"
+"  Test: test_ptarray_isccw ... passed\n"
+"  Test: test_ptarray_signed_area ... passed\n"
+"  Test: test_ptarray_desegmentize ... passed\n"
+"  Test: test_ptarray_insert_point ... passed\n"
+"  Test: test_ptarray_contains_point ... passed\n"
+"  Test: test_ptarrayarc_contains_point ... passed\n"
 "Suite: PostGIS Computational Geometry Suite\n"
 "  Test: test_lw_segment_side ... passed\n"
 "  Test: test_lw_segment_intersects ... passed\n"
@@ -983,107 +1133,271 @@ msgid ""
 "  Test: test_geohash_point ... passed\n"
 "  Test: test_geohash_precision ... passed\n"
 "  Test: test_geohash ... passed\n"
+"  Test: test_geohash_point_as_int ... passed\n"
 "  Test: test_isclosed ... passed\n"
+"Suite: buildarea\n"
+"  Test: buildarea1 ... passed\n"
+"  Test: buildarea2 ... passed\n"
+"  Test: buildarea3 ... passed\n"
+"  Test: buildarea4 ... passed\n"
+"  Test: buildarea4b ... passed\n"
+"  Test: buildarea5 ... passed\n"
+"  Test: buildarea6 ... passed\n"
+"  Test: buildarea7 ... passed\n"
+"Suite: clean\n"
+"  Test: test_lwgeom_make_valid ... passed\n"
 "Suite: PostGIS Measures Suite\n"
 "  Test: test_mindistance2d_tolerance ... passed\n"
 "  Test: test_rect_tree_contains_point ... passed\n"
 "  Test: test_rect_tree_intersects_tree ... passed\n"
 "  Test: test_lwgeom_segmentize2d ... passed\n"
+"  Test: test_lwgeom_locate_along ... passed\n"
+"  Test: test_lw_dist2d_pt_arc ... passed\n"
+"  Test: test_lw_dist2d_seg_arc ... passed\n"
+"  Test: test_lw_dist2d_arc_arc ... passed\n"
+"  Test: test_lw_arc_length ... passed\n"
+"  Test: test_lw_dist2d_pt_ptarrayarc ... passed\n"
+"  Test: test_lw_dist2d_ptarray_ptarrayarc ... passed\n"
+"Suite: node\n"
+"  Test: test_lwgeom_node ... passed\n"
 "Suite: WKT Out Suite\n"
 "  Test: test_wkt_out_point ... passed\n"
 "  Test: test_wkt_out_linestring ... passed\n"
 "  Test: test_wkt_out_polygon ... passed\n"
 "  Test: test_wkt_out_multipoint ... passed\n"
 "  Test: test_wkt_out_multilinestring ... passed\n"
+"  Test: test_wkt_out_multipolygon ... passed\n"
+"  Test: test_wkt_out_collection ... passed\n"
+"  Test: test_wkt_out_circularstring ... passed\n"
+"  Test: test_wkt_out_compoundcurve ... passed\n"
+"  Test: test_wkt_out_curvpolygon ... passed\n"
+"  Test: test_wkt_out_multicurve ... passed\n"
+"  Test: test_wkt_out_multisurface ... passed\n"
+"Suite: WKT In Suite\n"
+"  Test: test_wkt_in_point ... passed\n"
+"  Test: test_wkt_in_linestring ... passed\n"
+"  Test: test_wkt_in_polygon ... passed\n"
+"  Test: test_wkt_in_multipoint ... passed\n"
+"  Test: test_wkt_in_multilinestring ... passed\n"
+"  Test: test_wkt_in_multipolygon ... passed\n"
+"  Test: test_wkt_in_collection ... passed\n"
+"  Test: test_wkt_in_circularstring ... passed\n"
+"  Test: test_wkt_in_compoundcurve ... passed\n"
+"  Test: test_wkt_in_curvpolygon ... passed\n"
+"  Test: test_wkt_in_multicurve ... passed\n"
+"  Test: test_wkt_in_multisurface ... passed\n"
+"  Test: test_wkt_in_tin ... passed\n"
+"  Test: test_wkt_in_polyhedralsurface ... passed\n"
+"  Test: test_wkt_in_errlocation ... passed\n"
+"Suite: WKB Out Suite\n"
+"  Test: test_wkb_out_point ... passed\n"
+"  Test: test_wkb_out_linestring ... passed\n"
+"  Test: test_wkb_out_polygon ... passed\n"
+"  Test: test_wkb_out_multipoint ... passed\n"
+"  Test: test_wkb_out_multilinestring ... passed\n"
+"  Test: test_wkb_out_multipolygon ... passed\n"
+"  Test: test_wkb_out_collection ... passed\n"
+"  Test: test_wkb_out_circularstring ... passed\n"
+"  Test: test_wkb_out_compoundcurve ... passed\n"
+"  Test: test_wkb_out_curvpolygon ... passed\n"
+"  Test: test_wkb_out_multicurve ... passed\n"
+"  Test: test_wkb_out_multisurface ... passed\n"
+"  Test: test_wkb_out_polyhedralsurface ... passed\n"
 ":\n"
+"Suite: Geodetic Suite\n"
+"  Test: test_sphere_direction ... passed\n"
+"  Test: test_sphere_project ... passed\n"
+"  Test: test_lwgeom_area_sphere ... passed\n"
+"  Test: test_signum ... passed\n"
+"  Test: test_gbox_from_spherical_coordinates ... passed\n"
 ":\n"
-"--Run Summary: Type      Total     Ran  Passed  Failed\n"
-"               suites       17      17     n/a       0\n"
-"               tests       143     143     143       0\n"
-"               asserts    1228    1228    1228       0\n"
+"  Test: test_geos_noop ... passed\n"
+"Suite: Internal Spatial Trees\n"
+"  Test: test_tree_circ_create ... passed\n"
+"  Test: test_tree_circ_pip ... passed\n"
+"  Test: test_tree_circ_pip2 ... passed\n"
+"  Test: test_tree_circ_distance ... passed\n"
+"Suite: triangulate\n"
+"  Test: test_lwgeom_delaunay_triangulation ... passed\n"
+"Suite: stringbuffer\n"
+"  Test: test_stringbuffer_append ... passed\n"
+"  Test: test_stringbuffer_aprintf ... passed\n"
+"Suite: surface\n"
+"  Test: triangle_parse ... passed\n"
+"  Test: tin_parse ... passed\n"
+"  Test: polyhedralsurface_parse ... passed\n"
+"  Test: surface_dimension ... passed\n"
+"Suite: homogenize\n"
+"  Test: test_coll_point ... passed\n"
+"  Test: test_coll_line ... passed\n"
+"  Test: test_coll_poly ... passed\n"
+"  Test: test_coll_coll ... passed\n"
+"  Test: test_geom ... passed\n"
+"  Test: test_coll_curve ... passed\n"
+"Suite: force_sfs\n"
+"  Test: test_sfs_11 ... passed\n"
+"  Test: test_sfs_12 ... passed\n"
+"  Test: test_sqlmm ... passed\n"
+"Suite: out_gml\n"
+"  Test: out_gml_test_precision ... passed\n"
+"  Test: out_gml_test_srid ... passed\n"
+"  Test: out_gml_test_dims ... passed\n"
+"  Test: out_gml_test_geodetic ... passed\n"
+"  Test: out_gml_test_geoms ... passed\n"
+"  Test: out_gml_test_geoms_prefix ... passed\n"
+"  Test: out_gml_test_geoms_nodims ... passed\n"
+"  Test: out_gml2_extent ... passed\n"
+"  Test: out_gml3_extent ... passed\n"
+"Suite: KML Out Suite\n"
+"  Test: out_kml_test_precision ... passed\n"
+"  Test: out_kml_test_dims ... passed\n"
+"  Test: out_kml_test_geoms ... passed\n"
+"  Test: out_kml_test_prefix ... passed\n"
+"Suite: GeoJson Out Suite\n"
+"  Test: out_geojson_test_precision ... passed\n"
+"  Test: out_geojson_test_dims ... passed\n"
+"  Test: out_geojson_test_srid ... passed\n"
+"  Test: out_geojson_test_bbox ... passed\n"
+"  Test: out_geojson_test_geoms ... passed\n"
+"Suite: SVG Out Suite\n"
+"  Test: out_svg_test_precision ... passed\n"
+"  Test: out_svg_test_dims ... passed\n"
+"  Test: out_svg_test_relative ... passed\n"
+"  Test: out_svg_test_geoms ... passed\n"
+"  Test: out_svg_test_srid ... passed\n"
+"Suite: X3D Out Suite\n"
+"  Test: out_x3d3_test_precision ... passed\n"
+"  Test: out_x3d3_test_geoms ... passed\n"
 "\n"
+"--Run Summary: Type      Total     Ran  Passed  Failed\n"
+"               suites       27      27     n/a       0\n"
+"               tests       198     198     198       0\n"
+"               asserts    1728    1728    1728       0\n"
 "\n"
-"Creating spatial db postgis_reg\n"
-" Postgis 2.0.0SVN - 2011-01-11 15:33:37\n"
-"   GEOS: 3.3.0-CAPI-1.7.0\n"
-"   PROJ: Rel. 4.6.1, 21 August 2008\n"
+"Creating database 'postgis_reg' \n"
+"Loading PostGIS into 'postgis_reg' \n"
+"PostgreSQL 9.3beta1 on x86_64-unknown-linux-gnu, compiled by gcc (Debian "
+"4.4.5-8) 4.4.5, 64-bit\n"
+"  Postgis 2.1.0SVN - r11415 - 2013-05-11 02:48:21\n"
+"  GEOS: 3.4.0dev-CAPI-1.8.0 r3797\n"
+"  PROJ: Rel. 4.7.1, 23 September 2009\n"
 "\n"
 "Running tests\n"
 "\n"
-" loader/Point.............. ok\n"
-" loader/PointM.............. ok\n"
-" loader/PointZ.............. ok\n"
-" loader/MultiPoint.............. ok\n"
-" loader/MultiPointM.............. ok\n"
-" loader/MultiPointZ.............. ok\n"
-" loader/Arc.............. ok\n"
-" loader/ArcM.............. ok\n"
-" loader/ArcZ.......... ok\n"
-" loader/Polygon.............. ok\n"
-" loader/PolygonM.............. ok\n"
-" loader/PolygonZ.............. ok\n"
-" regress. ok\n"
-" regress_index. ok\n"
-" regress_index_nulls. ok\n"
-" lwgeom_regress. ok\n"
-" regress_lrs. ok\n"
-" removepoint. ok\n"
-" setpoint. ok\n"
-" simplify. ok\n"
-" snaptogrid. ok\n"
-" affine. ok\n"
-" measures. ok\n"
-" long_xact. ok\n"
-" ctors. ok\n"
-" sql-mm-serialize. ok\n"
-" sql-mm-circularstring. ok\n"
-" sql-mm-compoundcurve. ok\n"
-" sql-mm-curvepoly. ok\n"
-" sql-mm-general. ok\n"
-" sql-mm-multicurve. ok\n"
-" sql-mm-multisurface. ok\n"
-" polyhedralsurface. ok\n"
-" out_geometry. ok\n"
-" out_geography. ok\n"
-" in_gml. ok\n"
-" in_kml. ok\n"
-" iscollection. ok\n"
-" regress_ogc. ok\n"
-" regress_ogc_cover. ok\n"
-" regress_ogc_prep. ok\n"
-" regress_bdpoly. ok\n"
-" regress_proj. ok\n"
-" dump. ok\n"
-" dumppoints. ok\n"
-" wmsservers_new. ok\n"
-" tickets. ok\n"
-" remove_repeated_points. ok\n"
-" split. ok\n"
-" relatematch. ok\n"
-" regress_buffer_params. ok\n"
-" hausdorff. ok\n"
-" clean. ok\n"
-" sharedpaths. ok\n"
-" snap. ok\n"
+" loader/Point .............. ok \n"
+" loader/PointM .............. ok \n"
+" loader/PointZ .............. ok \n"
+" loader/MultiPoint .............. ok \n"
+" loader/MultiPointM .............. ok \n"
+" loader/MultiPointZ .............. ok \n"
+" loader/Arc .............. ok \n"
+" loader/ArcM .............. ok \n"
+" loader/ArcZ .............. ok \n"
+" loader/Polygon .............. ok \n"
+" loader/PolygonM .............. ok \n"
+" loader/PolygonZ .............. ok \n"
+" loader/TSTPolygon ......... ok \n"
+" loader/TSIPolygon ......... ok \n"
+" loader/TSTIPolygon ......... ok \n"
+" loader/PointWithSchema ..... ok \n"
+" loader/NoTransPoint ......... ok \n"
+" loader/NotReallyMultiPoint ......... ok \n"
+" loader/MultiToSinglePoint ......... ok \n"
+" loader/ReprojectPts ........ ok \n"
+" loader/ReprojectPtsGeog ........ ok \n"
+" loader/Latin1 .... ok \n"
+" binary .. ok \n"
+" regress .. ok \n"
+" regress_index .. ok \n"
+" regress_index_nulls .. ok \n"
+" regress_selectivity .. ok \n"
+" lwgeom_regress .. ok \n"
+" regress_lrs .. ok \n"
+" removepoint .. ok \n"
+" setpoint .. ok \n"
+" simplify .. ok \n"
+" snaptogrid .. ok \n"
+" summary .. ok \n"
+" affine .. ok \n"
+" empty .. ok \n"
+" measures .. ok \n"
+" legacy .. ok \n"
+" long_xact .. ok \n"
+" ctors .. ok \n"
+" sql-mm-serialize .. ok \n"
+" sql-mm-circularstring .. ok \n"
+" sql-mm-compoundcurve .. ok \n"
+" sql-mm-curvepoly .. ok \n"
+" sql-mm-general .. ok \n"
+" sql-mm-multicurve .. ok \n"
+" sql-mm-multisurface .. ok \n"
+" polyhedralsurface .. ok \n"
+" polygonize .. ok \n"
+" postgis_type_name .. ok \n"
+" geography .. ok \n"
+" out_geometry .. ok \n"
+" out_geography .. ok \n"
+" in_geohash .. ok \n"
+" in_gml .. ok \n"
+" in_kml .. ok \n"
+" iscollection .. ok \n"
+" regress_ogc .. ok \n"
+" regress_ogc_cover .. ok \n"
+" regress_ogc_prep .. ok \n"
+" regress_bdpoly .. ok \n"
+" regress_proj .. ok \n"
+" regress_management .. ok \n"
+" dump .. ok \n"
+" dumppoints .. ok \n"
+" boundary .. ok \n"
+" wmsservers .. ok \n"
+" wkt .. ok \n"
+" wkb .. ok \n"
+" tickets .. ok \n"
+" typmod .. ok \n"
+" remove_repeated_points .. ok \n"
+" split .. ok \n"
+" relate .. ok \n"
+" bestsrid .. ok \n"
+" concave_hull .. ok \n"
+" hausdorff .. ok \n"
+" regress_buffer_params .. ok \n"
+" offsetcurve .. ok \n"
+" relatematch .. ok \n"
+" isvaliddetail .. ok \n"
+" sharedpaths .. ok \n"
+" snap .. ok \n"
+" node .. ok \n"
+" unaryunion .. ok \n"
+" clean .. ok \n"
+" relate_bnr .. ok \n"
+" delaunaytriangles .. ok \n"
+" in_geojson .. ok \n"
+" uninstall .. ok (4112)\n"
 "\n"
-"Run tests: 55\n"
-"Failed: 0"
+"Run tests: 90"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:689
+#, no-c-format
+msgid "Installation"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:642
+#: installation.xml:691
 #, no-c-format
 msgid "To install PostGIS, type"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:647
+#: installation.xml:696
 #, no-c-format
 msgid "make install"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:650
+#: installation.xml:699
 #, no-c-format
 msgid ""
 "This will copy the PostGIS installation files into their appropriate "
@@ -1092,7 +1406,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:658
+#: installation.xml:707
 #, no-c-format
 msgid ""
 "The loader and dumper binaries are installed in <filename>[prefix]/bin</"
@@ -1100,7 +1414,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:665
+#: installation.xml:714
 #, no-c-format
 msgid ""
 "The SQL files, such as <filename>postgis.sql</filename>, are installed in "
@@ -1108,14 +1422,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:672
+#: installation.xml:721
 #, no-c-format
 msgid ""
 "The PostGIS libraries are installed in <filename>[prefix]/lib</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:679
+#: installation.xml:728
 #, no-c-format
 msgid ""
 "If you previously ran the <command>make comments</command> command to "
@@ -1125,13 +1439,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:686
+#: installation.xml:735
 #, no-c-format
 msgid "make comments-install"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:690
+#: installation.xml:739
 #, no-c-format
 msgid ""
 "<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</"
@@ -1141,13 +1455,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:700
+#: installation.xml:749
 #, no-c-format
 msgid "Create a spatially-enabled database on PostgreSQL lower than 9.1"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:702
+#: installation.xml:751
 #, no-c-format
 msgid ""
 "The first step in creating a PostGIS database is to create a simple "
@@ -1155,13 +1469,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:708 installation.xml:805
+#: installation.xml:757 installation.xml:854
 #, no-c-format
 msgid "createdb [yourdatabase]"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:711
+#: installation.xml:760
 #, no-c-format
 msgid ""
 "Many of the PostGIS functions are written in the PL/pgSQL procedural "
@@ -1172,13 +1486,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:719
+#: installation.xml:768
 #, no-c-format
 msgid "createlang plpgsql [yourdatabase]"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:722
+#: installation.xml:771
 #, no-c-format
 msgid ""
 "Now load the PostGIS object and function definitions into your database by "
@@ -1188,13 +1502,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:730
+#: installation.xml:779
 #, no-c-format
 msgid "psql -d [yourdatabase] -f postgis.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:733
+#: installation.xml:782
 #, no-c-format
 msgid ""
 "For a complete set of EPSG coordinate system definition identifiers, you can "
@@ -1204,13 +1518,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:741
+#: installation.xml:790
 #, no-c-format
 msgid "psql -d [yourdatabase] -f spatial_ref_sys.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:744
+#: installation.xml:793
 #, no-c-format
 msgid ""
 "If you wish to add comments to the PostGIS functions, the final step is to "
@@ -1220,25 +1534,25 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:752
+#: installation.xml:801
 #, no-c-format
 msgid "psql -d [yourdatabase] -f postgis_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:755
+#: installation.xml:804
 #, no-c-format
 msgid "Install raster support"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:760
+#: installation.xml:809
 #, no-c-format
 msgid "psql -d [yourdatabase] -f rtpostgis.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:763
+#: installation.xml:812
 #, no-c-format
 msgid ""
 "Install raster support comments. This will provide quick help info for each "
@@ -1247,25 +1561,25 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:769
+#: installation.xml:818
 #, no-c-format
 msgid "psql -d [yourdatabase] -f raster_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:771
+#: installation.xml:820
 #, no-c-format
 msgid "Install topology support"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:776
+#: installation.xml:825
 #, no-c-format
 msgid "psql -d [yourdatabase] -f topology/topology.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:779
+#: installation.xml:828
 #, no-c-format
 msgid ""
 "Install topology support comments. This will provide quick help info for "
@@ -1274,26 +1588,26 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:785
+#: installation.xml:834
 #, no-c-format
 msgid "psql -d [yourdatabase] -f topology/topology_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:788 installation.xml:825
+#: installation.xml:837 installation.xml:874
 #, no-c-format
 msgid ""
 "If you plan to restore an old backup from prior versions in this new db, run:"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:789 installation.xml:826
+#: installation.xml:838 installation.xml:875
 #, no-c-format
 msgid "psql -d [yourdatabase] -f legacy.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:790
+#: installation.xml:839
 #, no-c-format
 msgid ""
 "There is an alternative <filename>legacy_minimal.sql</filename> you can run "
@@ -1304,7 +1618,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:793 installation.xml:828
+#: installation.xml:842 installation.xml:877
 #, no-c-format
 msgid ""
 "You can later run <filename>uninstall_legacy.sql</filename> to get rid of "
@@ -1312,13 +1626,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:797
+#: installation.xml:846
 #, no-c-format
 msgid "Creating a spatial database using EXTENSIONS"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:799
+#: installation.xml:848
 #, no-c-format
 msgid ""
 "If you are using PostgreSQL 9.1+ and have compiled and installed the "
@@ -1326,7 +1640,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:808
+#: installation.xml:857
 #, no-c-format
 msgid ""
 "The core postgis extension installs PostGIS geometry, geography, raster, "
@@ -1335,45 +1649,172 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:814
+#: installation.xml:863
 #, no-c-format
 msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:817
+#: installation.xml:866
 #, no-c-format
 msgid ""
 "Topology is packaged as a separate extension and installable with command:"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:822
+#: installation.xml:871
 #, no-c-format
 msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:832
+#: installation.xml:880
+#, no-c-format
+msgid "Installing and Using the address standardizer"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:881
+#, no-c-format
+msgid ""
+"The <code>address_standardizer</code> extension used to be a separate "
+"package that required separate download. From PostGIS 2.2 on, it is now "
+"bundled in. For more information about the address_standardize, what it "
+"does, and how to configure it for your needs, refer to <xref linkend="
+"\"Address_Standardizer\"/>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:883
+#, no-c-format
+msgid ""
+"This standardizer can be used in conjunction with the PostGIS packaged tiger "
+"geocoder extension as a replacement for the <xref linkend=\"Normalize_Address"
+"\"/> discussed. To use as replacement refer to <xref linkend="
+"\"tiger_pagc_address_standardizing\"/>. You can also use it as a building "
+"block for your own geocoder or use it to standardize your addresses for "
+"easier compare of addresses."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:887
+#, no-c-format
+msgid ""
+"The address standardizer relies on PCRE which is usually already installed "
+"on many Nix systems, but you can download the latest at: <ulink url=\"http://"
+"www.pcre.org\">http://www.pcre.org</ulink>. If during <xref linkend="
+"\"installation_configuration\"/>, PCRE is found, then the address "
+"standardizer extension will automatically be built. If you have a custom "
+"pcre install you want to use instead, pass to configure <code>--with-"
+"pcredir=/path/to/pcre</code> where <filename>/path/to/pcre</filename> is the "
+"root folder for your pcre include and lib directories."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:890
+#, no-c-format
+msgid ""
+"For Windows users, the PostGIS 2.1+ bundle is packaged with the "
+"address_standardizer already so no need to compile and can move straight to "
+"<code>CREATE EXTENSION</code> step."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:893
+#, no-c-format
+msgid ""
+"Once you have installed, you can connect to your database and run the SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:894
+#, no-c-format
+msgid "CREATE EXTENSION address_standardizer;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:896
+#, no-c-format
+msgid "The following test requires no rules, gaz, or lex tables"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:897
+#, no-c-format
+msgid ""
+"SELECT num, street, city, state, zip \n"
+" FROM parse_address('1 Devonshire Place, Boston, MA 02109');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:898
+#, no-c-format
+msgid "Output should be"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:899
+#, no-c-format
+msgid ""
+"num |         street         |  city  | state |  zip\n"
+"-----+------------------------+--------+-------+-------\n"
+" 1   | Devonshire Place PH301 | Boston | MA    | 02109"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:901
+#, no-c-format
+msgid "Installing Regex::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:902
+#, no-c-format
+msgid ""
+"Perl Regex:Assemble is no longer needed for compiling address_standardizer "
+"extension since the files it generates are part of the source tree. However "
+"if you need to edit the <filename>usps-st-city-orig.txt</filename> or "
+"<filename>usps-st-city-orig.txt usps-st-city-adds.tx</filename>, you need to "
+"rebuild <filename>parseaddress-stcities.h</filename> which does require "
+"Regex:Assemble."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:903
+#, no-c-format
+msgid "cpan Regexp::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:904
+#, no-c-format
+msgid "or if you are on Ubuntu / Debian you might need to do"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:905
+#, no-c-format
+msgid "sudo perl -MCPAN -e \"install Regexp::Assemble\""
+msgstr ""
+
+#. Tag: title
+#: installation.xml:910
 #, no-c-format
 msgid "Installing, Upgrading Tiger Geocoder and loading data"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:834
+#: installation.xml:912
 #, no-c-format
 msgid ""
-"The Tiger geocoder does not get installed / upgraded with the core PostGIS "
-"scripts because it is only of regional use. In fact nothing located in the "
-"extras folder is installed by default with the regular PostGIS install / "
-"upgrade. Extras like Tiger geocoder may also not be packaged in your PostGIS "
-"distribution, but will always be available in the postgis-"
-"&last_release_version;.tar.gz file. The instructions provided here are also "
-"available in the <filename>extras/tiger_geocoder/tiger_2010/README</filename>"
+"Extras like Tiger geocoder may not be packaged in your PostGIS distribution, "
+"but will always be available in the postgis-&last_release_version;.tar.gz "
+"file. The instructions provided here are also available in the "
+"<filename>extras/tiger_geocoder/tiger_2011/README</filename>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:836
+#: installation.xml:913
 #, no-c-format
 msgid ""
 "If you are on Windows and you don't have tar installed, you can use <ulink "
@@ -1382,197 +1823,309 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:838
+#: installation.xml:915
 #, no-c-format
-msgid "Tiger Geocoder Enabling your PostGIS database"
+msgid "Tiger Geocoder Enabling your PostGIS database: Using Extension"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:839
+#: installation.xml:916
 #, no-c-format
-msgid "First install PostGIS using the prior instructions."
+msgid ""
+"If you are using PostgreSQL 9.1+ and PostGIS 2.1.0, you can take advantage "
+"of the new extension model for installing tiger geocoder. To do so:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:843 installation.xml:870
+#: installation.xml:918
 #, no-c-format
 msgid ""
-"If you don't have an extras folder, download <ulink url=\"http://www.postgis."
-"org/download/postgis-&last_release_version;.tar.gz\">http://www.postgis.org/"
-"download/postgis-&last_release_version;.tar.gz</ulink>"
+"First get binaries for PostGIS 2.1.0 or compile and install as usual. This "
+"should install the necessary extension files as well for tiger geocoder."
 msgstr ""
 
-#. Tag: command
-#: installation.xml:848 installation.xml:875
+#. Tag: para
+#: installation.xml:919
 #, no-c-format
-msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgid ""
+"Connect to your database via psql or pgAdmin or some other tool and run the "
+"following SQL commands. Note that if you are installing in a database that "
+"already has postgis, you don't need to do the first step. If you have "
+"<varname>fuzzystrmatch</varname> extension already installed, you don't need "
+"to do the second step either."
 msgstr ""
 
-#. Tag: command
-#: installation.xml:852 installation.xml:879
+#. Tag: programlisting
+#: installation.xml:920
 #, no-c-format
-msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgid ""
+"CREATE EXTENSION postgis;                \n"
+"CREATE EXTENSION fuzzystrmatch;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:855
+#: installation.xml:921
+#, no-c-format
+msgid ""
+"To confirm your install is working correctly, run this sql in your database:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:922
 #, no-c-format
 msgid ""
-"Edit the <filename>tiger_loader.sql</filename> to the paths of your "
-"executables server etc."
+"SELECT na.address, na.streetname,na.streettypeabbrev, na.zip\n"
+"        FROM normalize_address('1 Devonshire Place, Boston, MA 02109') AS na;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:856
+#: installation.xml:923
+#, no-c-format
+msgid "Which should output"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:924
 #, no-c-format
 msgid ""
-"If you are installing Tiger geocoder for the first time edit either the "
-"<filename>create_geocode.bat</filename> script If you are on windows or the "
-"<filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with "
-"your PostgreSQL specific settings and run the corresponding script from the "
-"commandline. If you don't edit this file, it will just contain common case "
-"locations of items. You can edit the generated script after the fact when "
-"you run the <xref linkend=\"Loader_Generate_Script\"/> command."
+"address | streetname | streettypeabbrev |  zip\n"
+"---------+------------+------------------+-------\n"
+"           1 | Devonshire | Pl               | 02109"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:859
+#: installation.xml:926
 #, no-c-format
 msgid ""
-"Verify that you now have a <varname>tiger</varname> schema in your database "
-"and that it is part of your database search_path. If it is not, add it with "
-"a command something along the line of:"
+"Create a new record in <varname>tiger.loader_platform</varname> table with "
+"the paths of your executables and server."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:927
+#, no-c-format
+msgid ""
+"So for example to create a profile called debbie that follows <code>sh</"
+"code> convention. You would do:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:859
+#: installation.xml:928
 #, no-c-format
-msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
+msgid ""
+"INSERT INTO tiger.loader_platform(os, declare_sect, pgbin, wget, "
+"unzip_command, psql, path_sep, \n"
+"                   loader, environ_set_command, county_process_command)\n"
+"SELECT 'debbie', declare_sect, pgbin, wget, unzip_command, psql, path_sep, \n"
+"           loader, environ_set_command, county_process_command\n"
+"  FROM tiger.loader_platform\n"
+"  WHERE os = 'sh';"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:860
+#: installation.xml:929
 #, no-c-format
 msgid ""
-"The normalizing address functionality works more or less without any data "
-"except for tricky addresses. Run this test and verify things look like this:"
+"And then edit the paths in the <emphasis>declare_sect</emphasis> column to "
+"those that fit Debbie's pg, unzip,shp2pgsql, psql, etc path locations."
 msgstr ""
 
-#. Tag: programlisting
-#: installation.xml:861
+#. Tag: para
+#: installation.xml:931
 #, no-c-format
 msgid ""
-"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
-"Nevada 89101')) As pretty_address;\n"
-"pretty_address\n"
-"---------------------------------------\n"
-"202 E Fremont St, Las Vegas, NV 89101"
+"If you don't edit this <varname>loader_platform</varname> table, it will "
+"just contain common case locations of items and you'll have to edit the "
+"generated script after the script is generated."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:933
+#, no-c-format
+msgid ""
+"Then run the <xref linkend=\"Loader_Generate_Nation_Script\"/> and <xref "
+"linkend=\"Loader_Generate_Script\"/> SQL functions make sure to use the name "
+"of your custom profile. So for example to do the nation load using our new "
+"profile we would:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:934
+#, no-c-format
+msgid "SELECT Loader_Generate_Nation_Script('debbie');"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:865
+#: installation.xml:937
 #, no-c-format
-msgid "Upgrading your Tiger Geocoder Install"
+msgid "Converting a Tiger Geocoder Regular Install to Extension Model"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:866
+#: installation.xml:938
 #, no-c-format
 msgid ""
-"If you have Tiger Geocoder packaged with 2.0+ already installed, you can "
-"upgrade the functions at any time even from an interim tar ball if there are "
-"fixes you badly need."
+"If you installed the tiger geocoder without using the extension model, you "
+"can convert to the extension model as follows:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:882
+#: installation.xml:940
 #, no-c-format
 msgid ""
-"Locate the <filename>upgrade_geocoder.bat</filename> script If you are on "
-"windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/"
-"Unix/Mac OSX. Edit the file to have your postgis database credientials and "
-"run then corresponding script from the commandline."
+"Follow instructions in <xref linkend=\"upgrade_tiger_geocoder\"/> for the "
+"non-extension model upgrade."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:885
+#: installation.xml:941
 #, no-c-format
 msgid ""
-"Next drop all nation tables and load up the new ones. Generate a drop script "
-"with this SQL statement as detailed in <xref linkend="
-"\"Drop_Nation_Tables_Generate_Script\"/>"
+"Connect to your database with psql or pgAdmin and run the following command:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:886
+#: installation.xml:942
 #, no-c-format
-msgid "SELECT drop_nation_tables_generate_script();"
+msgid "CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:949
+#, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Not Using Extensions"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:887
+#: installation.xml:950
 #, no-c-format
-msgid "Run the generated drop SQL statements."
+msgid "First install PostGIS using the prior instructions."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:888
+#: installation.xml:954 installation.xml:1014
 #, no-c-format
 msgid ""
-"Generate a nation load script with this SELECT statement as detailed in "
-"<xref linkend=\"Loader_Generate_Nation_Script\"/>"
+"If you don't have an extras folder, download <ulink url="
+"\"&postgis_download_url;\">&postgis_download_url;</ulink>"
 msgstr ""
 
-#. Tag: emphasis
-#: installation.xml:889
+#. Tag: command
+#: installation.xml:959 installation.xml:1019
 #, no-c-format
-msgid "For windows"
+msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:963 installation.xml:1023
+#, no-c-format
+msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:966
+#, no-c-format
+msgid ""
+"Edit the <filename>tiger_loader_2012.sql</filename> to the paths of your "
+"executables server etc or alternatively you can update the "
+"<varname>loader_platform</varname> table once installed. If you don't edit "
+"this file or the <varname>loader_platform</varname> table, it will just "
+"contain common case locations of items and you'll have to edit the generated "
+"script after the fact when you run the <xref linkend="
+"\"Loader_Generate_Nation_Script\"/> and <xref linkend="
+"\"Loader_Generate_Script\"/> SQL functions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:968
+#, no-c-format
+msgid ""
+"If you are installing Tiger geocoder for the first time edit either the "
+"<filename>create_geocode.bat</filename> script If you are on windows or the "
+"<filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with "
+"your PostgreSQL specific settings and run the corresponding script from the "
+"commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:972
+#, no-c-format
+msgid ""
+"Verify that you now have a <varname>tiger</varname> schema in your database "
+"and that it is part of your database search_path. If it is not, add it with "
+"a command something along the line of:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:890
+#: installation.xml:972
 #, no-c-format
-msgid "SELECT loader_generate_nation_script('windows');"
+msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
 msgstr ""
 
-#. Tag: emphasis
-#: installation.xml:891
+#. Tag: para
+#: installation.xml:973
 #, no-c-format
-msgid "For unix/linux"
+msgid ""
+"The normalizing address functionality works more or less without any data "
+"except for tricky addresses. Run this test and verify things look like this:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:892
+#: installation.xml:974
 #, no-c-format
-msgid "SELECT loader_generate_nation_script('sh');"
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"pretty_address\n"
+"---------------------------------------\n"
+"202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:977
+#, no-c-format
+msgid "Using Address Standardizer Extension with Tiger geocoder"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:893
+#: installation.xml:978
 #, no-c-format
 msgid ""
-"Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on "
-"how to run the generate script. This only needs to be done once."
+"One of the many complaints of folks is the address normalizer function <xref "
+"linkend=\"Normalize_Address\"/> function that normalizes an address for "
+"prepping before geocoding. The normalizer is far from perfect and trying to "
+"patch its imperfectness takes a vast amount of resources. As such we have "
+"integrated with another project that has a much better address standardizer "
+"engine. To use this new address_standardizer, you compile the extension as "
+"described in <xref linkend=\"installing_pagc_address_standardizer\"/> and "
+"install as an extension in your database."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:894
+#: installation.xml:981
 #, no-c-format
 msgid ""
-"You can have a mix of 2010/2011 state tables and can upgrade each state "
-"separately. Before you upgrade a state to 2011, you first need to drop the "
-"2010 tables for that state using <xref linkend="
-"\"Drop_State_Tables_Generate_Script\"/>."
+"Once you install this extension in the same database as you have installed "
+"<code>postgis_tiger_geocoder</code>, then the <xref linkend="
+"\"Pagc_Normalize_Address\"/> can be used instead of <xref linkend="
+"\"Normalize_Address\"/>. This extension is tiger agnostic, so can be used "
+"with other data sources such as international addresses. The tiger geocoder "
+"extension does come packaged with its own custom versions of <xref linkend="
+"\"rulestab\"/> ( <code>tiger.pagc_rules</code>) , <xref linkend=\"gaztab\"/> "
+"(<code>tiger.pagc_gaz</code>), and <xref linkend=\"lextab\"/> (<code>tiger."
+"pagc_lex</code>). These you can add and update to improve your standardizing "
+"experience for your own needs."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:897
+#: installation.xml:984
 #, no-c-format
 msgid "Loading Tiger Data"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:898
+#: installation.xml:985
 #, no-c-format
 msgid ""
 "The instructions for loading data are available in a more detailed form in "
@@ -1581,7 +2134,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:899
+#: installation.xml:986
 #, no-c-format
 msgid ""
 "The load process downloads data from the census website for the respective "
@@ -1595,19 +2148,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:901
+#: installation.xml:988
 #, no-c-format
 msgid "In order to be able to load data you'll need the following tools:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:903
+#: installation.xml:990
 #, no-c-format
 msgid "A tool to unzip the zip files from census website."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:904
+#: installation.xml:991
 #, no-c-format
 msgid ""
 "For Unix like systems: <varname>unzip</varname> executable which is usually "
@@ -1615,7 +2168,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:905
+#: installation.xml:992
 #, no-c-format
 msgid ""
 "For Windows, 7-zip which is a free compress/uncompress tool you can download "
@@ -1623,7 +2176,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:907
+#: installation.xml:994
 #, no-c-format
 msgid ""
 "<filename>shp2pgsql</filename> commandline which is installed by default "
@@ -1631,7 +2184,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:908
+#: installation.xml:995
 #, no-c-format
 msgid ""
 "<filename>wget</filename> which is a web grabber tool usually installed on "
@@ -1639,7 +2192,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:909
+#: installation.xml:996
 #, no-c-format
 msgid ""
 "If you are on windows, you can get pre-compiled binaries from <ulink url="
@@ -1648,28 +2201,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:912
+#: installation.xml:999
 #, no-c-format
 msgid ""
 "If you are upgrading from tiger_2010, you'll need to first generate and run "
 "<xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>. Before you load any "
 "state data, you need to load the nation wide data which you do with <xref "
 "linkend=\"Loader_Generate_Nation_Script\"/>. Which will generate a loader "
-"script for you."
+"script for you. <xref linkend=\"Loader_Generate_Nation_Script\"/> is a one-"
+"time step that should be done for upgrading (from 2010) and for new installs."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:914
+#: installation.xml:1001
 #, no-c-format
 msgid ""
-"To load data refer to <xref linkend=\"Loader_Generate_Script\"/> to generate "
-"a data load script for your platform for the states you desire. Note that "
-"you can install these piecemeal. You don't have to load all the states you "
-"want all at once. You can load them as you need them."
+"To load state data refer to <xref linkend=\"Loader_Generate_Script\"/> to "
+"generate a data load script for your platform for the states you desire. "
+"Note that you can install these piecemeal. You don't have to load all the "
+"states you want all at once. You can load them as you need them."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:917
+#: installation.xml:1004
 #, no-c-format
 msgid ""
 "After the states you desire have been loaded, make sure to run the: "
@@ -1678,7 +2232,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:919
+#: installation.xml:1006
 #, no-c-format
 msgid ""
 "To test that things are working as they should, try to run a geocode on an "
@@ -1686,13 +2240,123 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:924
+#: installation.xml:1009
+#, no-c-format
+msgid "Upgrading your Tiger Geocoder Install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1010
+#, no-c-format
+msgid ""
+"If you have Tiger Geocoder packaged with 2.0+ already installed, you can "
+"upgrade the functions at any time even from an interim tar ball if there are "
+"fixes you badly need. This will only work for Tiger geocoder not installed "
+"with extensions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1026
+#, no-c-format
+msgid ""
+"Locate the <filename>upgrade_geocoder.bat</filename> script If you are on "
+"windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/"
+"Unix/Mac OSX. Edit the file to have your postgis database credentials."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1029
+#, no-c-format
+msgid ""
+"If you are upgrading from 2010 or 2011, make sure to unremark out the loader "
+"script line so you get the latest script for loading 2012 data."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1030
+#, no-c-format
+msgid "Then run th corresponding script from the commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1034
+#, no-c-format
+msgid ""
+"Next drop all nation tables and load up the new ones. Generate a drop script "
+"with this SQL statement as detailed in <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1035
+#, no-c-format
+msgid "SELECT drop_nation_tables_generate_script();"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1036
+#, no-c-format
+msgid "Run the generated drop SQL statements."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1037
+#, no-c-format
+msgid ""
+"Generate a nation load script with this SELECT statement as detailed in "
+"<xref linkend=\"Loader_Generate_Nation_Script\"/>"
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:1038
+#, no-c-format
+msgid "For windows"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1039
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:1040
+#, no-c-format
+msgid "For unix/linux"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1041
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1042
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on "
+"how to run the generate script. This only needs to be done once."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1043
+#, no-c-format
+msgid ""
+"You can have a mix of 2010/2011 state tables and can upgrade each state "
+"separately. Before you upgrade a state to 2011, you first need to drop the "
+"2010 tables for that state using <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/>."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1049
 #, no-c-format
 msgid "Create a spatially-enabled database from a template"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:926
+#: installation.xml:1051
 #, no-c-format
 msgid ""
 "Some packaged distributions of PostGIS (in particular the Win32 installers "
@@ -1706,37 +2370,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:937
+#: installation.xml:1062
 #, no-c-format
 msgid "From the shell:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:941
+#: installation.xml:1066
 #, no-c-format
 msgid "# createdb -T template_postgis my_spatial_db"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:943
+#: installation.xml:1068
 #, no-c-format
 msgid "From SQL:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:947
+#: installation.xml:1072
 #, no-c-format
 msgid "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:951
+#: installation.xml:1076
 #, no-c-format
 msgid "Upgrading"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:953
+#: installation.xml:1078
 #, no-c-format
 msgid ""
 "Upgrading existing spatial databases can be tricky as it requires "
@@ -1744,7 +2408,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:958
+#: installation.xml:1083
 #, no-c-format
 msgid ""
 "Unfortunately not all definitions can be easily replaced in a live database, "
@@ -1752,7 +2416,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:963
+#: installation.xml:1088
 #, no-c-format
 msgid ""
 "PostGIS provides a SOFT UPGRADE procedure for minor or bugfix releases, and "
@@ -1760,7 +2424,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:968
+#: installation.xml:1093
 #, no-c-format
 msgid ""
 "Before attempting to upgrade PostGIS, it is always worth to backup your "
@@ -1769,13 +2433,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:975
+#: installation.xml:1100
 #, no-c-format
 msgid "Soft upgrade"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:977
+#: installation.xml:1102
 #, no-c-format
 msgid ""
 "If you installed your database using extensions, you'll need to upgrade "
@@ -1785,13 +2449,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:980
+#: installation.xml:1105
 #, no-c-format
 msgid "Soft Upgrade Pre 9.1+ or without extensions"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:981
+#: installation.xml:1106
 #, no-c-format
 msgid ""
 "This section applies only to those who installed PostGIS not using "
@@ -1800,31 +2464,34 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:982
+#: installation.xml:1107
 #, no-c-format
 msgid "can't drop ... because postgis extension depends on it"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:983
+#: installation.xml:1108
 #, no-c-format
 msgid ""
-"After compiling you should find several <filename>postgis_upgrade*.sql</"
-"filename> files. Install the one for your version of PostGIS. For example "
-"<filename>postgis_upgrade_13_to_15.sql</filename> should be used if you are "
-"upgrading from PostGIS 1.3 to 1.5. If you are moving from PostGIS 1.* to "
-"PostGIS 2.* or from PostGIS 2.* prior to r7409, you need to do a HARD "
-"UPGRADE."
+"After compiling and installing (make install) you should find a "
+"<filename>postgis_upgrade.sql</filename> and <filename>rtpostgis_upgrade."
+"sql</filename> in the installation folders. For example <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. Install the "
+"<filename>postgis_upgrade.sql</filename>. If you have raster functionality "
+"installed, you will also need to install the <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. If you are moving "
+"from PostGIS 1.* to PostGIS 2.* or from PostGIS 2.* prior to r7409, you need "
+"to do a HARD UPGRADE."
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:989
+#: installation.xml:1112
 #, no-c-format
-msgid "psql -f postgis_upgrade_20_minor.sql -d your_spatial_database"
+msgid "psql -f postgis_upgrade.sql -d your_spatial_database"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:991
+#: installation.xml:1114
 #, no-c-format
 msgid ""
 "The same procedure applies to raster and topology extensions, with upgrade "
@@ -1833,19 +2500,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:999
+#: installation.xml:1122
 #, no-c-format
-msgid "psql -f rtpostgis_upgrade_20_minor.sql -d your_spatial_database"
+msgid "psql -f rtpostgis_upgrade.sql -d your_spatial_database"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1000
+#: installation.xml:1123
 #, no-c-format
-msgid "psql -f topology_upgrade_20_minor.sql -d your_spatial_database"
+msgid "psql -f topology_upgrade.sql -d your_spatial_database"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1003
+#: installation.xml:1126
 #, no-c-format
 msgid ""
 "If you can't find the <filename>postgis_upgrade*.sql</filename> specific for "
@@ -1854,7 +2521,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1009
+#: installation.xml:1132
 #, no-c-format
 msgid ""
 "The <xref linkend=\"PostGIS_Full_Version\"/> function should inform you "
@@ -1863,13 +2530,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1016
+#: installation.xml:1139
 #, no-c-format
 msgid "Soft Upgrade 9.1+ using extensions"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1017
+#: installation.xml:1140
 #, no-c-format
 msgid ""
 "If you originally installed PostGIS with extensions, then you need to "
@@ -1878,7 +2545,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1018
+#: installation.xml:1141
 #, no-c-format
 msgid ""
 "ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
@@ -1886,45 +2553,77 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1019
+#: installation.xml:1142
 #, no-c-format
 msgid "If you get an error notice something like:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1020
+#: installation.xml:1143
 #, no-c-format
 msgid "No migration path defined for ... to &last_release_version;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1021
+#: installation.xml:1144
 #, no-c-format
 msgid ""
 "Then you'll need to backup your database, create a fresh one as described in "
 "<xref linkend=\"create_new_db_extensions\"/> and then restore your backup "
-"ontop of this new database. You might get a message that <code>postgis "
-"extension</code> already installed which you can safely ignore."
+"ontop of this new database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1145
+#, no-c-format
+msgid "If you get a notice message like:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1146
+#, no-c-format
+msgid ""
+"Version \"&last_release_version;\" of extension \"postgis\" is already "
+"installed"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1023
+#: installation.xml:1147
+#, no-c-format
+msgid ""
+"Then everything is already up to date and you can safely ignore it. "
+"<emphasis role=\"bold\">UNLESS</emphasis> you're attempting to upgrade from "
+"an SVN version to the next (which doesn't get a new version number); in that "
+"case you can append \"next\" to the version string, and next time you'll "
+"need to drop the \"next\" suffix again:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1153
+#, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;next\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;next\";"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1154
 #, no-c-format
 msgid ""
 "If you installed PostGIS originally without a version specified, you can "
 "often skip the reinstallation of postgis extension before restoring since "
 "the backup just has <code>CREATE EXTENSION postgis</code> and thus picks up "
-"the newest latest version during restore. ."
+"the newest latest version during restore."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1030
+#: installation.xml:1161
 #, no-c-format
 msgid "Hard upgrade"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1032
+#: installation.xml:1163
 #, no-c-format
 msgid ""
 "By HARD UPGRADE we mean full dump/reload of postgis-enabled databases. You "
@@ -1935,7 +2634,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1041
+#: installation.xml:1172
 #, no-c-format
 msgid ""
 "The dump/reload process is assisted by the postgis_restore.pl script which "
@@ -1946,7 +2645,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1050
+#: installation.xml:1181
 #, no-c-format
 msgid ""
 "Supplementary instructions for windows users are available at <ulink url="
@@ -1955,13 +2654,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1053
+#: installation.xml:1184
 #, no-c-format
 msgid "The Procedure is as follows:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1061
+#: installation.xml:1192
 #, no-c-format
 msgid ""
 "Create a \"custom-format\" dump of the database you want to upgrade (let's "
@@ -1971,7 +2670,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1069
+#: installation.xml:1200
 #, no-c-format
 msgid ""
 "pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb."
@@ -1979,7 +2678,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1075
+#: installation.xml:1206
 #, no-c-format
 msgid ""
 "Do a fresh install of PostGIS in a new database -- we'll refer to this "
@@ -1989,7 +2688,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1082
+#: installation.xml:1213
 #, no-c-format
 msgid ""
 "The spatial_ref_sys entries found in your dump will be restored, but they "
@@ -2000,7 +2699,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1092
+#: installation.xml:1223
 #, no-c-format
 msgid ""
 "If your database is really old or you know you've been using long deprecated "
@@ -2013,7 +2712,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1108
+#: installation.xml:1239
 #, no-c-format
 msgid ""
 "Restore your backup into your fresh <varname>newdb</varname> database using "
@@ -2022,7 +2721,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1116
+#: installation.xml:1247
 #, no-c-format
 msgid ""
 "perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost "
@@ -2030,13 +2729,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1122
+#: installation.xml:1253
 #, no-c-format
 msgid "Errors may arise in the following cases:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1128
+#: installation.xml:1259
 #, no-c-format
 msgid ""
 "Some of your views or functions make use of deprecated PostGIS objects. In "
@@ -2049,7 +2748,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1140
+#: installation.xml:1271
 #, no-c-format
 msgid ""
 "Some custom records of spatial_ref_sys in dump file have an invalid SRID "
@@ -2063,7 +2762,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1154
+#: installation.xml:1285
 #, no-c-format
 msgid ""
 "In order to fix this you should copy your custom SRS to a SRID with a valid "
@@ -2073,7 +2772,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1161
+#: installation.xml:1292
 #, no-c-format
 msgid ""
 "ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check "
@@ -2081,19 +2780,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1163
+#: installation.xml:1294
 #, no-c-format
 msgid "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1174
+#: installation.xml:1305
 #, no-c-format
-msgid "Common Problems"
+msgid "Common Problems during installation"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1175
+#: installation.xml:1306
 #, no-c-format
 msgid ""
 "There are several things to check when your installation or upgrade doesn't "
@@ -2101,7 +2800,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1182
+#: installation.xml:1313
 #, no-c-format
 msgid ""
 "Check that you have installed PostgreSQL &min_postgres_version; or newer, "
@@ -2116,13 +2815,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1195
+#: installation.xml:1326
 #, no-c-format
 msgid "SELECT version();"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1197
+#: installation.xml:1328
 #, no-c-format
 msgid ""
 "If you are running an RPM based distribution, you can check for the "
@@ -2131,7 +2830,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1205
+#: installation.xml:1336
 #, no-c-format
 msgid ""
 "If your upgrade fails, make sure you are restoring into a database that "
@@ -2139,13 +2838,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1206
+#: installation.xml:1337
 #, no-c-format
 msgid "SELECT postgis_full_version();"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1210
+#: installation.xml:1341
 #, no-c-format
 msgid ""
 "Also check that configure has correctly detected the location and version of "
@@ -2153,7 +2852,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1217
+#: installation.xml:1348
 #, no-c-format
 msgid ""
 "The output from configure is used to generate the <filename>postgis_config."
@@ -2163,13 +2862,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1230
+#: installation.xml:1361
 #, no-c-format
 msgid "JDBC"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1232
+#: installation.xml:1363
 #, no-c-format
 msgid ""
 "The JDBC extensions provide Java objects corresponding to the internal "
@@ -2178,7 +2877,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1241
+#: installation.xml:1372
 #, no-c-format
 msgid ""
 "Enter the <filename>java/jdbc</filename> sub-directory of the PostGIS "
@@ -2186,7 +2885,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1248
+#: installation.xml:1379
 #, no-c-format
 msgid ""
 "Run the <filename>ant</filename> command. Copy the <filename>postgis.jar</"
@@ -2194,7 +2893,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1256
+#: installation.xml:1387
 #, no-c-format
 msgid ""
 "The JDBC extensions require a PostgreSQL JDBC driver to be present in the "
@@ -2204,13 +2903,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1263
+#: installation.xml:1394
 #, no-c-format
 msgid "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1265
+#: installation.xml:1396
 #, no-c-format
 msgid ""
 "PostgreSQL JDBC drivers can be downloaded from <ulink url=\"http://jdbc."
@@ -2218,13 +2917,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1275
+#: installation.xml:1406
 #, no-c-format
 msgid "Loader/Dumper"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1277
+#: installation.xml:1408
 #, no-c-format
 msgid ""
 "The data loader and dumper are built and installed automatically as part of "
@@ -2232,7 +2931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1282
+#: installation.xml:1413
 #, no-c-format
 msgid ""
 "# cd postgis-&last_release_version;/loader\n"
@@ -2241,7 +2940,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1284
+#: installation.xml:1415
 #, no-c-format
 msgid ""
 "The loader is called <filename>shp2pgsql</filename> and converts ESRI Shape "
diff --git a/doc/po/it_IT/introduction.xml.po b/doc/po/it_IT/introduction.xml.po
index 625b88f..f14df9a 100644
--- a/doc/po/it_IT/introduction.xml.po
+++ b/doc/po/it_IT/introduction.xml.po
@@ -1,25 +1,30 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# pibinko <pibinko at gmail.com>, 2013
+# pibinko <pibinko at gmail.com>, 2013
+# Sandro Santilli <strk at keybit.net>, 2014
+# Stefano Costa <steko at iosa.it>, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-20 15:34+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/postgis/"
+"language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: title
 #: introduction.xml:3
 #, no-c-format
 msgid "Introduction"
-msgstr ""
+msgstr "Introduzione"
 
 #. Tag: para
 #: introduction.xml:5
@@ -34,6 +39,14 @@ msgid ""
 "surfaces, networks), desktop user interface tools for viewing and editing "
 "GIS data, and web-based access tools."
 msgstr ""
+"PostGIS è stato sviluppato da Refractions Research Inc come progetto di "
+"ricerca sui database spaziali. Refractions è una azienda nel settore GIS e "
+"database con sede a Victoria, British Columbia, in Canada, specializzata "
+"nell'integrazione di dati e nello sviluppo di software su misura. Abbiamo in "
+"programma di supportare e sviluppare PostGIS per gestire una gamma di "
+"funzionalità GIS importanti, tra cui un completo supporto OpenGIS, "
+"operazioni topologiche avanzate (estensioni, superfici, reti), strumenti "
+"desktop per la visualizzazione e l'editing di dati GIS, e strumenti web."
 
 #. Tag: para
 #: introduction.xml:15
@@ -44,12 +57,16 @@ msgid ""
 "corporations all over the world that gain great benefit from its "
 "functionality and versatility."
 msgstr ""
+"PostGIS è in fase di incubazione come progetto della OSGeo Foundation. "
+"PostGIS viene continuamente migliorato e sostenuto economicamente da molti "
+"sviluppatori FOSS4G e da aziende di tutto il mondo che ricavano grandi "
+"benefici dalle sue funzionalità e versatilità."
 
 #. Tag: title
 #: introduction.xml:21
 #, no-c-format
 msgid "Project Steering Committee"
-msgstr ""
+msgstr "Comitato di Coordinamento del Progetto"
 
 #. Tag: para
 #: introduction.xml:22
@@ -62,12 +79,19 @@ msgid ""
 "miscellaneous issues involving PostGIS such as developer commit access, new "
 "PSC members or significant API changes."
 msgstr ""
+"Il comitato di coordinamento del progetto (in inglese Project Steering "
+"Commitee o PSC) coordina la direzione generale, i cicli di rilascio, la "
+"documentazione e le iniziative di divulgazione del progetto PostGIS. Inoltre "
+"il comitato fornisce supporto agli utenti, accetta e approva patch dalla "
+"comunità generale PostGIS e vota su questioni varie che coinvolgono PostGIS "
+"come l'accesso di commit per gli sviluppatori, i nuovi membri del comitato e "
+"modifiche della API."
 
 #. Tag: term
 #: introduction.xml:31
 #, no-c-format
 msgid "Mark Cave-Ayland"
-msgstr ""
+msgstr "Mark Cave-Ayland"
 
 #. Tag: para
 #: introduction.xml:33
@@ -77,12 +101,14 @@ msgid ""
 "PostgreSQL releases, spatial index selectivity and binding, loader/dumper, "
 "and Shapefile GUI Loader, integration of new and new function enhancements."
 msgstr ""
+"Coordina la soluzione dei bug e le iniziative di manutenzione, "
+"l'allineamento di PostGIS con i rilasci di PostgreSQL"
 
 #. Tag: term
 #: introduction.xml:40
 #, no-c-format
 msgid "Regina Obe"
-msgstr ""
+msgstr "Regina Obe"
 
 #. Tag: para
 #: introduction.xml:42
@@ -93,210 +119,264 @@ msgid ""
 "Geocoder Support, management functions, and smoke testing new functionality "
 "or major code changes."
 msgstr ""
+"Manutenzione Buildbot, build sperimentali e di produzione per Windows, "
+"documentazione, supporto per gli utenti nel newsgroup PostGIS, supporto X3D, "
+"Supporto per il geocodeo Tiger, funzioni di gestione, test di integrità "
+"funzionale per nuove funzioni o variazioni sostanziali del codice."
 
 #. Tag: term
 #: introduction.xml:49
 #, no-c-format
-msgid "Paul Ramsey (Chair)"
-msgstr ""
+msgid "Bborie Park"
+msgstr "Bborie Park"
 
 #. Tag: para
 #: introduction.xml:51
 #, no-c-format
 msgid ""
+"Raster development, integration with GDAL, raster loader, user support, "
+"general bug fixing, testing on various OS (Slackware, Mac, Windows, and more)"
+msgstr ""
+"Sviluppo raster, integrazione con GDAL, loader raster, supporto agli utenti, "
+"generica soluzione di bachi, prove su vari sistemi operativi (Slackware, "
+"Mac, Windows e altri)"
+
+#. Tag: term
+#: introduction.xml:56
+#, no-c-format
+msgid "Paul Ramsey (Chair)"
+msgstr "Paul Ramsey (Coordinatore)"
+
+#. Tag: para
+#: introduction.xml:58
+#, no-c-format
+msgid ""
 "Co-founder of PostGIS project. General bug fixing, geography support, "
 "geography and geometry index support (2D, 3D, nD index and anything spatial "
-"index), underlying geometry internal structures, GEOS functionality "
-"integration and alignment with GEOS releases, loader/dumper, and Shapefile "
-"GUI loader."
+"index), underlying geometry internal structures, PointCloud (in "
+"development), GEOS functionality integration and alignment with GEOS "
+"releases, loader/dumper, and Shapefile GUI loader."
 msgstr ""
+"Co-fondatore del progetto PostGIS. Correzione dei bug, supporto alla "
+"componente geografica, supporto per gli indici geografici e geometrici  (2D, "
+"3D, nD e qualsiasi altra cosa legata agli indici spaziali), strutture "
+"interne per la geometria, PointCloud (in sviluppo), integrazione delle "
+"funzionalità GEOS e allineamento con le nuove versioni di GEOS, loader/"
+"dumper, e interfaccia grafica per il loader Shapefile."
 
 #. Tag: term
-#: introduction.xml:57
+#: introduction.xml:64
 #, no-c-format
 msgid "Sandro Santilli"
-msgstr ""
+msgstr "Sandro Santilli"
 
 #. Tag: para
-#: introduction.xml:60
+#: introduction.xml:67
 #, no-c-format
 msgid ""
 "Bug fixes and maintenance and integration of new GEOS functionality and "
 "alignment with GEOS releases, Topology support, and Raster framework and low "
 "level api functions."
 msgstr ""
+"Correzione di bug,  manutenzione e integrazione delle nuove funzioalità "
+"GEOS, allineamento con le versioni di GEOS, supporto topologico, framework "
+"Raster e funzioni API di basso livello."
 
 #. Tag: title
-#: introduction.xml:67
+#: introduction.xml:74
 #, no-c-format
-msgid "Contributors Past and Present"
-msgstr ""
+msgid "Core Contributors Present"
+msgstr "Principali collaboratori attuali"
 
 #. Tag: term
-#: introduction.xml:71
+#: introduction.xml:77
 #, no-c-format
-msgid "Chris Hodgson"
-msgstr ""
+msgid "Jorge Arévalo"
+msgstr "Jorge Arévalo"
 
 #. Tag: para
-#: introduction.xml:73
+#: introduction.xml:79
 #, no-c-format
-msgid ""
-"Prior PSC Member. General development, site and buildbot maintenance, OSGeo "
-"incubation management"
-msgstr ""
+msgid "Raster development, GDAL driver support, loader"
+msgstr "Sviluppo raster, supporto per il driver GDAL, loader"
 
 #. Tag: term
-#: introduction.xml:77
+#: introduction.xml:84
 #, no-c-format
-msgid "Kevin Neufeld"
-msgstr ""
+msgid "Nicklas Avén"
+msgstr "Nicklas Avén"
 
 #. Tag: para
-#: introduction.xml:79
+#: introduction.xml:87
 #, no-c-format
 msgid ""
-"Prior PSC Member. Documentation and documentation support tools, advanced "
-"user support on PostGIS newsgroup, and PostGIS maintenance function "
-"enhancements."
+"Distance function enhancements (including 3D distance and relationship "
+"functions) and additions, Tiny WKB output format (TWKB) (in development) and "
+"general user support"
 msgstr ""
+"Miglioramenti e aggiunte alla funzione di distanza (comprese le funzioni di "
+"distanza e di relazione 3D), formato di output Tiny WKB (TWKB) (in sviluppo) "
+"e supporto generale agli utenti"
 
 #. Tag: term
-#: introduction.xml:85
+#: introduction.xml:92
 #, no-c-format
-msgid "Dave Blasby"
-msgstr ""
+msgid "Olivier Courtin"
+msgstr "Olivier Courtin"
 
 #. Tag: para
-#: introduction.xml:88
+#: introduction.xml:94
 #, no-c-format
-msgid ""
-"The original developer/Co-founder of PostGIS. Dave wrote the server side "
-"objects, index bindings, and many of the server side analytical functions."
+msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
 msgstr ""
+"Funzioni di input e ouput XML (KML,GML)/GeoJSON, supporto 3D e correzione di "
+"bug."
 
 #. Tag: term
-#: introduction.xml:95
+#: introduction.xml:99
 #, no-c-format
-msgid "Jeff Lounsbury"
-msgstr ""
+msgid "Mateusz Loskot"
+msgstr "Mateusz Loskot"
 
 #. Tag: para
-#: introduction.xml:97
+#: introduction.xml:101
 #, no-c-format
 msgid ""
-"Original development of the Shape file loader/dumper. Current PostGIS "
-"Project Owner representative."
+"CMake support for PostGIS, built original raster loader in python and low "
+"level raster api functions"
 msgstr ""
+"Supporto CMake per PostGIS, ha sviluppato il loader raster originale in "
+"python e le funzioni API raster di basso livello."
 
 #. Tag: term
-#: introduction.xml:102
+#: introduction.xml:106
 #, no-c-format
-msgid "Olivier Courtin"
-msgstr ""
+msgid "Pierre Racine"
+msgstr "Pierre Racine"
 
 #. Tag: para
-#: introduction.xml:104
+#: introduction.xml:108
 #, no-c-format
-msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
+msgid "Raster overall architecture, prototyping, programming support"
 msgstr ""
+"Architettura complessiva raster, prototipazione, supporto alla programmazione"
 
 #. Tag: term
-#: introduction.xml:109
+#: introduction.xml:113
 #, no-c-format
-msgid "Mark Leslie"
-msgstr ""
+msgid "David Zwarg"
+msgstr "David Zwarg"
 
 #. Tag: para
-#: introduction.xml:111
-#, no-c-format
-msgid ""
-"Ongoing maintenance and development of core functions. Enhanced curve "
-"support. Shapefile GUI loader."
-msgstr ""
-
-#. Tag: term
-#: introduction.xml:116
+#: introduction.xml:115
 #, no-c-format
-msgid "Pierre Racine"
-msgstr ""
+msgid "Raster development (mostly map algebra analytic functions)"
+msgstr "Sviluppo raster (principalmente funzioni analitiche di map algebra)"
 
-#. Tag: para
-#: introduction.xml:118
+#. Tag: title
+#: introduction.xml:121
 #, no-c-format
-msgid "Raster overall architecture, prototyping, programming support"
-msgstr ""
+msgid "Core Contributors Past"
+msgstr "Principali collaboratori passati"
 
 #. Tag: term
-#: introduction.xml:123
+#: introduction.xml:125
 #, no-c-format
-msgid "Nicklas Avén"
-msgstr ""
+msgid "Chris Hodgson"
+msgstr "Chris Hodgson"
 
 #. Tag: para
-#: introduction.xml:126
+#: introduction.xml:127
 #, no-c-format
 msgid ""
-"Distance function enhancements (including 3D distance and relationship "
-"functions) and additions, Windows testing, and general user support"
+"Prior PSC Member. General development, site and buildbot maintenance, OSGeo "
+"incubation management"
 msgstr ""
+"Ex-membro del comitato di coordinamento. Sviluppo generale, manutenzione del "
+"sito e del buildbot, gestione dell'incubazione OSGeo"
 
 #. Tag: term
 #: introduction.xml:131
 #, no-c-format
-msgid "Jorge Arévalo"
-msgstr ""
+msgid "Kevin Neufeld"
+msgstr "Kevin Neufeld"
 
 #. Tag: para
-#: introduction.xml:134
+#: introduction.xml:133
 #, no-c-format
-msgid "Raster development, GDAL driver support, loader"
+msgid ""
+"Prior PSC Member. Documentation and documentation support tools, buildbot "
+"maintenance, advanced user support on PostGIS newsgroup, and PostGIS "
+"maintenance function enhancements."
 msgstr ""
+"Ex-membro del comitato di coordinamento. Documentazione e strumenti di "
+"supporto alla documentazione, manutenzione dei buildbot, supporto avanzato "
+"per gli utenti nel newsgroup PostGIS, miglioramenti alle funzioni di "
+"manutenzione PostGIS."
 
 #. Tag: term
 #: introduction.xml:139
 #, no-c-format
-msgid "Bborie Park"
-msgstr ""
+msgid "Dave Blasby"
+msgstr "Dave Blasby"
 
 #. Tag: para
-#: introduction.xml:141
+#: introduction.xml:142
 #, no-c-format
-msgid "Raster development, raster loader"
+msgid ""
+"The original developer/Co-founder of PostGIS. Dave wrote the server side "
+"objects, index bindings, and many of the server side analytical functions."
 msgstr ""
+"Lo sviluppatore iniziale e uno dei cofondatori di PostGIS. Dave ha scritto "
+"il codice per gli oggetti lato server, il binding degli indici e molte delle "
+"funzioni analitiche lato server."
 
 #. Tag: term
-#: introduction.xml:146
+#: introduction.xml:149
 #, no-c-format
-msgid "Mateusz Loskot"
-msgstr ""
+msgid "Jeff Lounsbury"
+msgstr "Jeff Lounsbury"
 
 #. Tag: para
-#: introduction.xml:148
+#: introduction.xml:151
 #, no-c-format
-msgid "Raster loader, low level raster api functions"
+msgid ""
+"Original development of the Shape file loader/dumper. Current PostGIS "
+"Project Owner representative."
 msgstr ""
+"Sviluppo iniziale del loader/dumper per gli Shapefile. Attualmente "
+"rappresentante di Project Owner di PostGIS."
 
 #. Tag: term
-#: introduction.xml:153
+#: introduction.xml:157
 #, no-c-format
-msgid "David Zwarg"
-msgstr ""
+msgid "Mark Leslie"
+msgstr "Mark Leslie"
 
 #. Tag: para
-#: introduction.xml:156
+#: introduction.xml:159
 #, no-c-format
-msgid "Raster development"
+msgid ""
+"Ongoing maintenance and development of core functions. Enhanced curve "
+"support. Shapefile GUI loader."
 msgstr ""
+"Continuo sviluppo e manutenzione delle funzioni di base. Supporto avanzanto "
+"per le curve. Interfaccia grafica per il loader di Shapefile."
+
+#. Tag: title
+#: introduction.xml:165
+#, no-c-format
+msgid "Other Contributors"
+msgstr "Altri collaboratori"
 
 #. Tag: term
-#: introduction.xml:161
+#: introduction.xml:168
 #, no-c-format
-msgid "Other contributors: Individuals"
-msgstr ""
+msgid "Individual Contributors"
+msgstr "Collaboratori individuali"
 
 #. Tag: para
-#: introduction.xml:164
+#: introduction.xml:171
 #, no-c-format
 msgid ""
 "In alphabetical order: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas "
@@ -304,30 +384,46 @@ msgid ""
 "Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. "
 "Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David "
 "Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald "
-"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, Jeff "
-"Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus Foerster, Kris Jurka, "
-"Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de Reyna, Mark Sondheim, "
-"Markus Schaber, Maxime Guillaud, Maxime van Noppen, Michael Fuhr, Nikita "
-"Shulga, Norman Vine, Rafal Magda, Ralph Mason, Richard Greenwood, Silvio "
-"Grosso, Steffen Macke, Stephen Frost, Tom van Tilburg, Vincent Picavet"
-msgstr ""
+"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, "
+"Jason Smith, Jeff Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus "
+"Foerster, Kris Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de "
+"Reyna, Mark Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, "
+"Michael Fuhr, Nathan Wagner, Nathaniel Clay, Nikita Shulga, Norman Vine, "
+"Rafal Magda, Ralph Mason, Richard Greenwood, Silvio Grosso, Steffen Macke, "
+"Stephen Frost, Tom van Tilburg, Vincent Mora, Vincent Picavet"
+msgstr ""
+"In ordine alfabetico:  Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas "
+"Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, "
+"Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. "
+"Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David "
+"Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald "
+"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, "
+"Jason Smith, Jeff Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus "
+"Foerster, Kris Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de "
+"Reyna, Mark Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, "
+"Michael Fuhr, Nathan Wagner, Nathaniel Clay, Nikita Shulga, Norman Vine, "
+"Rafal Magda, Ralph Mason, Richard Greenwood, Silvio Grosso, Steffen Macke, "
+"Stephen Frost, Tom van Tilburg, Vincent Mora, Vincent Picavet"
 
 #. Tag: term
-#: introduction.xml:221
+#: introduction.xml:232
 #, no-c-format
-msgid "Other contributors: Corporate Sponsors"
-msgstr ""
+msgid "Corporate Sponsors"
+msgstr "Sponsor aziendali"
 
 #. Tag: para
-#: introduction.xml:224
+#: introduction.xml:235
 #, no-c-format
 msgid ""
 "These are corporate entities that have contributed developer time, hosting, "
 "or direct monetary funding to the PostGIS project"
 msgstr ""
+"Queste sono realtà aziendali o altre istituzioni che hanno contribuito al "
+"progetto PostGIS sotto forma di tempo sviluppatore, hosting o finanziamento "
+"economico"
 
 #. Tag: para
-#: introduction.xml:225
+#: introduction.xml:236
 #, no-c-format
 msgid ""
 "In alphabetical order: Arrival 3D, Associazione Italiana per l'Informazione "
@@ -335,21 +431,33 @@ msgid ""
 "City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos "
 "Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala "
 "Consulting Engineers, LisaSoft, Logical Tracking & Tracing International "
-"AG, Michigan Tech Research Institute, Norwegian Forest and Landscape "
-"Institute, OpenGeo, OSGeo, Oslandia, Paragon Corporation, R3 GIS,, "
-"Refractions Research, Regione Toscana-SIGTA, Safe Software, Sirius "
-"Corporation plc, Stadt Uster, UC Davis Center for Vectorborne Diseases, "
-"University of Laval, U.S Department of State (HIU), Vizzuality, Zonar Systems"
-msgstr ""
+"AG, Michigan Tech Research Institute, Natural Resources Canada, Norwegian "
+"Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Palantir "
+"Technologies, Paragon Corporation, R3 GIS, Refractions Research, Regione "
+"Toscana-SIGTA, Safe Software, Sirius Corporation plc, Stadt Uster, UC Davis "
+"Center for Vectorborne Diseases, University of Laval, U.S Department of "
+"State (HIU), Vizzuality, Zonar Systems"
+msgstr ""
+"In ordine alfabetico: Arrival 3D, Associazione Italiana per l'Informazione "
+"Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, "
+"City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos "
+"Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala "
+"Consulting Engineers, LisaSoft, Logical Tracking & Tracing International "
+"AG, Michigan Tech Research Institute, Natural Resources Canada, Norwegian "
+"Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Palantir "
+"Technologies, Paragon Corporation, R3 GIS, Refractions Research, Regione "
+"Toscana-SIGTA, Safe Software, Sirius Corporation plc, Stadt Uster, UC Davis "
+"Center for Vectorborne Diseases, University of Laval, U.S Department of "
+"State (HIU), Vizzuality, Zonar Systems"
 
 #. Tag: term
-#: introduction.xml:265
+#: introduction.xml:277
 #, no-c-format
 msgid "Crowd Funding Campaigns"
-msgstr ""
+msgstr "Campagne di finanziamento diffuso"
 
 #. Tag: para
-#: introduction.xml:268
+#: introduction.xml:280
 #, no-c-format
 msgid ""
 "Crowd funding campaigns are campaigns we run to get badly wanted features "
@@ -358,22 +466,36 @@ msgid ""
 "sponsor chips in a small fraction of the needed funding and with enough "
 "people/organizations contributing, we have the funds to pay for the work "
 "that will help many. If you have an idea for a feature you think many others "
-"would be willing to co-fund, please post to the <ulink url=\"http://www."
-"postgis.org/mailman/listinfo/postgis-users\">PostGIS newsgroup</ulink> your "
-"thoughts and together we can make it happen."
+"would be willing to co-fund, please post to the <ulink url=\"http://postgis."
+"net/mailman/listinfo/postgis-users\">PostGIS newsgroup</ulink> your thoughts "
+"and together we can make it happen."
 msgstr ""
+"Le campagne di finanziamento diffuso sono campagne che promuoviamo per "
+"finanziare funzionalità molto richieste e che possono servire a un gran "
+"numero di persone. Ogni campagna è dedicata in modo particolare a una data "
+"funzionalità o gruppo di funzionalità. Ogni sponsor partecipa con una quota "
+"ridotta rispetto al finanziamento richiesto, e con un numero sufficiente di "
+"persone e organizzazioni che contribuiscono, possiamo ottenere i fondi per "
+"retribuire un lavoro che servirà a molti. Se avete un'idea per una funzione "
+"che pensate possa essere cofinanziata anche da molti altri, vi preghiamo di "
+"condividere le vostre idee sul <ulink url=\"http://postgis.net/mailman/"
+"listinfo/postgis-users\">newsgroup PostGIS</ulink>, e insieme possiamo "
+"vedere di realizzarla."
 
 #. Tag: para
-#: introduction.xml:269
+#: introduction.xml:281
 #, no-c-format
 msgid ""
 "PostGIS 2.0.0 was the first release we tried this strategy. We used <ulink "
 "url=\"http://www.pledgebank.com\">PledgeBank</ulink> and we got two "
 "successful campaigns out of it."
 msgstr ""
+"PostGIS 2.0.0 è stata la prima release con cui abbiamo tentato questa "
+"strategia. Abbiamo utilizzato <ulink url=\"http://www.pledgebank.com"
+"\">PledgeBank</ulink>, realizzando due campagne di successo."
 
 #. Tag: para
-#: introduction.xml:270
+#: introduction.xml:282
 #, no-c-format
 msgid ""
 "<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
@@ -381,27 +503,36 @@ msgid ""
 "contributed $250 USD to build toTopoGeometry function and beef up topology "
 "support in 2.0.0. It happened."
 msgstr ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink> - Oltre 10 sponsor hanno "
+"contribuito con 250 USD ciascuno per realizzare la funzione TopoGeometry e "
+"per migliorare il supporto della topologia nella versione 2.0.0. E' successo."
 
 #. Tag: para
-#: introduction.xml:271
+#: introduction.xml:283
 #, no-c-format
 msgid ""
 "<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
 "\"bold\">postgis64windows</emphasis></ulink> - 20 someodd sponsors each "
 "contributed $100 USD to pay for the work needed to work out PostGIS 64-bit "
-"on windows issues. It happened. We now have a 64-bit beta release for "
-"PostGIS 2.0.0 and a final one planned for release that will be available on "
-"PostgreSQL stack builder."
+"issues on windows. It happened. We now have a 64-bit release for PostGIS "
+"2.0.1 available on PostgreSQL stack builder."
 msgstr ""
+"<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
+"\"bold\">postgis64windows</emphasis></ulink> - 20 e passa sponsor hanno "
+"contribuito con 100 USD ciascuno per retribuire il lavoro necessario per "
+"risolvere varie problematiche su PostGIS per Windows a 64 bit. E' successo. "
+"Ora abbiamo una versione per PostGIS 2.0.1 disponibile con lo stack builder "
+"PostgreSQL."
 
 #. Tag: term
-#: introduction.xml:276
+#: introduction.xml:288
 #, no-c-format
 msgid "Important Support Libraries"
-msgstr ""
+msgstr "Librerie di supporto importanti"
 
 #. Tag: para
-#: introduction.xml:279
+#: introduction.xml:291
 #, no-c-format
 msgid ""
 "The <ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink> geometry "
@@ -409,9 +540,13 @@ msgid ""
 "all work, ongoing maintenance and support of Mateusz Loskot, Sandro Santilli "
 "(strk), Paul Ramsey and others."
 msgstr ""
+"La libreria per operazioni geometriche <ulink url=\"http://trac.osgeo.org/"
+"geos/\">GEOS</ulink>, e il lavoro sugli algoritmi di Martin Davis per far "
+"funzionare il tutto, la manutenzione e il supporto continui di Mateusz "
+"Loskot, Sandro Santilli (strk), Paul Ramsey a altri."
 
 #. Tag: para
-#: introduction.xml:284
+#: introduction.xml:296
 #, no-c-format
 msgid ""
 "The <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> Geospatial Data "
@@ -419,18 +554,27 @@ msgid ""
 "the raster functionality introduced in PostGIS 2.0.0. In kind, improvements "
 "needed in GDAL to support PostGIS are contributed back to the GDAL project."
 msgstr ""
+"La libreria <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> "
+"(Geospatial Data Abstraction Library), di Frank Warmerdam e altri viene "
+"utilizzata per far funzionare gran parte delle funzionalità raster "
+"introdotte in PostGIS 2.0.0. I miglioramenti realizzati su GDAL per "
+"consentire il supporto di PostGIS sono stati restituiti come contributo al "
+"progetto GDAL."
 
 #. Tag: para
-#: introduction.xml:289
+#: introduction.xml:301
 #, no-c-format
 msgid ""
 "The <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> cartographic "
 "projection library, and the work of Gerald Evenden and Frank Warmerdam in "
 "creating and maintaining it."
 msgstr ""
+"La libreria di proiezione cartografica <ulink url=\"http://trac.osgeo.org/"
+"proj/\">Proj4</ulink>, e il lavoro di Gerald Evenden e Frank Warmerdam nel "
+"crearla e mantenerla."
 
 #. Tag: para
-#: introduction.xml:293
+#: introduction.xml:305
 #, no-c-format
 msgid ""
 "Last but not least, the <ulink url=\"http://www.postgresql.org\">PostgreSQL "
@@ -439,67 +583,89 @@ msgid ""
 "great query planner, GIST index, and plethora of SQL features provided by "
 "PostgreSQL."
 msgstr ""
+"Ultimo, ma non ultimo, il database <ulink url=\"http://www.postgresql.org"
+"\">PostgreSQL</ulink>, il gigante sulle cui spalle sta PostGIS. Molta della "
+"velolcità e flessibilità di PostGIS non sarebbe possibile senza "
+"l'estensibilità, il grande query planner, l'indice GIST, e la varietà di "
+"caratteristiche SQL rese disponibili da PostgreSQL."
 
 #. Tag: title
-#: introduction.xml:302
+#: introduction.xml:314
 #, no-c-format
 msgid "More Information"
-msgstr ""
+msgstr "Altre informazioni"
 
 #. Tag: para
-#: introduction.xml:306
+#: introduction.xml:318
 #, no-c-format
 msgid ""
 "The latest software, documentation and news items are available at the "
-"PostGIS web site, <ulink url=\"http://www.postgis.org\">http://www.postgis."
-"org</ulink>."
+"PostGIS web site, <ulink url=\"http://postgis.net\">http://postgis.net</"
+"ulink>."
 msgstr ""
+"Le versioni più recenti del software, della documentazione e le notizie sono "
+"disponibili sul sito web di PostGIS,  <ulink url=\"http://postgis.net"
+"\">http://postgis.net</ulink>."
 
 #. Tag: para
-#: introduction.xml:312
+#: introduction.xml:324
 #, no-c-format
 msgid ""
 "More information about the GEOS geometry operations library is available "
 "at<ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/</"
 "ulink>."
 msgstr ""
+"Ulteriori informazioni sulla libreria di operazioni geometriche GEOS sono "
+"disponibili alla pagina <ulink url=\"http://trac.osgeo.org/geos/\"> http://"
+"trac.osgeo.org/geos/</ulink>."
 
 #. Tag: para
-#: introduction.xml:318
+#: introduction.xml:330
 #, no-c-format
 msgid ""
 "More information about the Proj4 reprojection library is available at <ulink "
 "url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
 msgstr ""
+"Ulteriori informazioni sulla libreria di riproiezione Proj4 sono disponibili "
+"alla pagina <ulink url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/"
+"proj/</ulink>."
 
 #. Tag: para
-#: introduction.xml:324
+#: introduction.xml:336
 #, no-c-format
 msgid ""
 "More information about the PostgreSQL database server is available at the "
 "PostgreSQL main site <ulink url=\"http://www.postgresql.org\">http://www."
 "postgresql.org</ulink>."
 msgstr ""
+"Ulteriori informazioni sul server database PostgreSQL database server sono "
+"disponibili dal sito principale di PostgreSQL <ulink url=\"http://www."
+"postgresql.org\">http://www.postgresql.org</ulink>."
 
 #. Tag: para
-#: introduction.xml:330
+#: introduction.xml:342
 #, no-c-format
 msgid ""
 "More information about GiST indexing is available at the PostgreSQL GiST "
 "development site, <ulink url=\"http://www.sai.msu.su/~megera/postgres/gist/"
 "\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
 msgstr ""
+"Ulteriori informazioni sull'indicizzazione GiST sono disponibili sul sito di "
+"sviluppo di  PostgreSQL GiST, <ulink url=\"http://www.sai.msu.su/~megera/"
+"postgres/gist/\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
 
 #. Tag: para
-#: introduction.xml:336
+#: introduction.xml:348
 #, no-c-format
 msgid ""
 "More information about MapServer internet map server is available at <ulink "
 "url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
 msgstr ""
+"Ulteriori informazioni sul map server internet MapServer sono disponibili "
+"su  <ulink url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
 
 #. Tag: para
-#: introduction.xml:342
+#: introduction.xml:354
 #, no-c-format
 msgid ""
 "The "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple "
@@ -507,3 +673,7 @@ msgid ""
 "Consortium web site: <ulink url=\"http://www.opengeospatial.org/\">http://"
 "www.opengeospatial.org/</ulink>."
 msgstr ""
+"La documentazione su "<ulink url=\"http://www.opengeospatial.org/"
+"standards/sfs\">Simple Features for Specification for SQL</ulink>" è "
+"disponibile sul sito web dell'OpenGIS Consortium:  <ulink url=\"http://www."
+"opengeospatial.org/\">http://www.opengeospatial.org/</ulink>."
diff --git a/doc/po/it_IT/performance_tips.xml.po b/doc/po/it_IT/performance_tips.xml.po
index b03dee1..51d37ce 100644
--- a/doc/po/it_IT/performance_tips.xml.po
+++ b/doc/po/it_IT/performance_tips.xml.po
@@ -1,37 +1,39 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Tommaso Di Bucchianico, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-30 05:55+0000\n"
+"Last-Translator: Tommaso Di Bucchianico\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/"
+"postgis-1/language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: title
 #: performance_tips.xml:3
 #, no-c-format
 msgid "Performance tips"
-msgstr ""
+msgstr "Consigli per migliori prestazioni"
 
 #. Tag: title
 #: performance_tips.xml:6
 #, no-c-format
 msgid "Small tables of large geometries"
-msgstr ""
+msgstr "Piccole tabelle contenenti geometrie di grandi dimensioni"
 
 #. Tag: title
 #: performance_tips.xml:9
 #, no-c-format
 msgid "Problem description"
-msgstr ""
+msgstr "Descrizione del problema"
 
 #. Tag: para
 #: performance_tips.xml:11
@@ -45,6 +47,14 @@ msgid ""
 "static/storage-toast.html\">the PostgreSQL Documentation for TOAST</ulink> "
 "for more information)."
 msgstr ""
+"Le attuali versioni di PostgreSQL (compresa la versione 8.0) sono affette da "
+"un difetto del query optimizer riguardante le tabelle TOAST. Le tabelle "
+"TOAST sono una sorta di \"spazio aggiuntivo\" usato per memorizzare valori "
+"di grandi dimensioni (nel senso di dimensioni dei dati) che non possono "
+"essere salvati in normali pagine (per esempio lunghi testi, immagini o "
+"geometrie con molti vertici). Vedi <ulink url=\"http://www.postgresql.org/"
+"docs/current/static/storage-toast.html\">la  documentazione PostgreSQL sulle "
+"tabelle TOAST</ulink> per maggiori informazioni)."
 
 #. Tag: para
 #: performance_tips.xml:19
@@ -57,6 +67,12 @@ msgid ""
 "table itself had about 80 rows and used only 3 data pages, but the TOAST "
 "table used 8225 pages."
 msgstr ""
+"Il problema si presenta nel caso di tabelle contenenti geometrie di grandi "
+"dimensioni ma poche righe (per esempio una tabella contenente i confini di "
+"tutti gli stati europei ad alta risoluzione). In questo caso infatti la "
+"tabella in se è di piccole dimensioni ma usa molto spazio TOAST. Nel nostro "
+"esempio la tabella conteneva circa 80 righe e utilizzava solo 3 pagine di "
+"dati, ma la tabella TOAST ne utilizzava 8225."
 
 #. Tag: para
 #: performance_tips.xml:26
@@ -71,6 +87,8 @@ msgid ""
 "geometry from disk to compare the bounding boxes, thus reading all TOAST "
 "pages, too."
 msgstr ""
+"Ora si lanci una query che usi l'operatore  && e che [MATCHES] solo "
+"poche righe. Il "
 
 #. Tag: para
 #: performance_tips.xml:35
@@ -81,12 +99,17 @@ msgid ""
 "read the thread on the postgres performance mailing list: http://archives."
 "postgresql.org/pgsql-performance/2005-02/msg00030.php"
 msgstr ""
+"Per controllare se i propri dati sono interessati da questo bug, si può "
+"usare il comando PostgreSQL \"EXPLAIN ANALYZE\". Per maggiori informazioni e "
+"dettagli tecnici consultare il corrispondente thread sulla mailing list di "
+"PostgreSQL: http://archives.postgresql.org/pgsql-performance/2005-02/"
+"msg00030.php"
 
 #. Tag: title
 #: performance_tips.xml:43
 #, no-c-format
 msgid "Workarounds"
-msgstr ""
+msgstr "Possibili soluzioni"
 
 #. Tag: para
 #: performance_tips.xml:45
@@ -95,6 +118,9 @@ msgid ""
 "The PostgreSQL people are trying to solve this issue by making the query "
 "estimation TOAST-aware. For now, here are two workarounds:"
 msgstr ""
+"Gli sviluppatori di PostgreSQL stanno cercando di risolvere il problema "
+"rendendo la valutazione della query indipendente dalla tabella TOAST. Per "
+"ora ci sono due possibili soluzioni alternative:"
 
 #. Tag: para
 #: performance_tips.xml:48
@@ -107,6 +133,13 @@ msgid ""
 "every connection, and it causes the query planner to make misestimations in "
 "other cases, so you should \"SET enable_seqscan TO on;\" after the query."
 msgstr ""
+"La è forzare il query planner ad usare l'indice spaziale usando il comando "
+"\"SET enable_seqscan TO off;\" prima di lanciare la query. Questo comando "
+"impedisce al query planner di usare lo scan sequenziale della tabella se "
+"possibile e lo forza quindi ad usare l'indice GIST. Tuttavia il comando deve "
+"essere lanciato ad ogni connessione e, per evitare di confondere il query "
+"planner in altri casi,  il parametro deve essere resettato dopo l'esecuzione "
+"della query interessata con il comando \"SET enable_seqscan TO on;\" ."
 
 #. Tag: para
 #: performance_tips.xml:56
@@ -117,15 +150,22 @@ msgid ""
 "\"caches\" the bbox, and matching against this. In our example, the commands "
 "are like:"
 msgstr ""
+"Il secondo metodo è rendere lo scan sequenziale così veloce come il query "
+"planner si aspetta che sia. Questo può essere raggiunto aggiungendo una "
+"colonna addizionale in cui salvare la bounding box di ogni geometria. Nel "
+"nostro esempio i comandi sarebbero:"
 
 #. Tag: programlisting
 #: performance_tips.xml:61
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"SELECT AddGeometryColumn"
-"('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
-"UPDATE mytable SET bbox = ST_Envelope(ST_Force_2d(the_geom));"
+"SELECT "
+"AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
+"UPDATE mytable SET bbox = ST_Envelope(ST_Force2D(the_geom));"
 msgstr ""
+"SELECT "
+"AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2');\n"
+"UPDATE mytable SET bbox = ST_Envelope(ST_Force_2d(the_geom));"
 
 #. Tag: para
 #: performance_tips.xml:63
@@ -134,6 +174,8 @@ msgid ""
 "Now change your query to use the && operator against bbox instead of "
 "geom_column, like:"
 msgstr ""
+"Ora la query deve essere modificata in modo da usare l'operatore && "
+"con la colonna bbox piuttosto che con la colonna geom_column:"
 
 #. Tag: programlisting
 #: performance_tips.xml:66
@@ -143,6 +185,9 @@ msgid ""
 "FROM mytable \n"
 "WHERE bbox && ST_SetSRID('BOX3D(0 0,1 1)'::box3d,4326);"
 msgstr ""
+"SELECT geom_column\n"
+"FROM mytable\n"
+"WHERE bbox && ST_SetSRID('BOX3D(0 0,1 1)'::box3d,4326);"
 
 #. Tag: para
 #: performance_tips.xml:68
@@ -153,12 +198,17 @@ msgid ""
 "also can modify your application to keep the bbox column current or run the "
 "UPDATE query above after every modification."
 msgstr ""
+"Ovviamente la colonna bbox deve essere mantenuta attuale quando si "
+"modificano o si aggiungono geometrie. La via più semplice per fare questo "
+"sarebbe con un trigger, oppure l'applicazione può essere modificata in modo "
+"da attualizzare anche la colonna bbox oppure si può lanciare l'UPDATE "
+"precedente dopo ogni modifica."
 
 #. Tag: title
 #: performance_tips.xml:77
 #, no-c-format
 msgid "CLUSTERing on geometry indices"
-msgstr ""
+msgstr "CLUSTERing di indici geometrici"
 
 #. Tag: para
 #: performance_tips.xml:79
@@ -174,6 +224,16 @@ msgid ""
 "data pages. (Feel invited to read the CLUSTER command documentation from the "
 "PostgreSQL manual at this point.)"
 msgstr ""
+"Per tabelle che vengono per lo più solo lette, e dove un singolo indice è "
+"usato dalla maggior parte delle query, PostgreSQL offre il comando CLUSTER. "
+"Questo comando riordina fisicamente le righe in modo che l'ordine "
+"corrisponda a quello dell'indice. Con questo metodo si migliorano le "
+"prestazioni per due motivi: primo, il numero delle ricerche nella tabella "
+"dei dati è ridotto drasticamente. Secondo, se i dati interessati dalla query "
+"sono concentrati in un piccolo intervallo sull'indice, il processo di "
+"mettere in cache sarà più efficiente perché le righe saranno distribuite "
+"all'interno di poche pagine. (si invita a leggere la documentazione di "
+"PostgreSQL riguardante il comando CLUSTER)."
 
 #. Tag: para
 #: performance_tips.xml:89
@@ -183,6 +243,8 @@ msgid ""
 "indices because GIST indices simply ignores NULL values, you get an error "
 "message like:"
 msgstr ""
+"Attualmente però, PostgreSQL non permette di usare il clustering con indici "
+"GIST, perché gli indici GIST ignorano i valori nulli:"
 
 #. Tag: programlisting
 #: performance_tips.xml:93
@@ -193,6 +255,10 @@ msgid ""
 "HINT: You may be able to work around this by marking column \"the_geom\" NOT "
 "NULL."
 msgstr ""
+"lwgeom=# CLUSTER my_geom_index ON my_table;\n"
+"ERROR: cannot cluster when index access method does not handle null values\n"
+"HINT: You may be able to work around this by marking column \"the_geom\" NOT "
+"NULL."
 
 #. Tag: para
 #: performance_tips.xml:95
@@ -201,6 +267,8 @@ msgid ""
 "As the HINT message tells you, one can work around this deficiency by adding "
 "a \"not null\" constraint to the table:"
 msgstr ""
+"Come suggerito dal messaggio di errore, è possibile aggirare il problema "
+"aggiungendo un vincolo \"NOT NULL\" alla tabella:"
 
 #. Tag: programlisting
 #: performance_tips.xml:98
@@ -209,6 +277,8 @@ msgid ""
 "lwgeom=# ALTER TABLE my_table ALTER COLUMN the_geom SET not null; \n"
 "ALTER TABLE"
 msgstr ""
+"lwgeom=# ALTER TABLE my_table ALTER COLUMN the_geom SET not null; \n"
+"ALTER TABLE"
 
 #. Tag: para
 #: performance_tips.xml:100
@@ -219,32 +289,45 @@ msgid ""
 "constraint, using a CHECK constraint like \"ALTER TABLE blubb ADD CHECK "
 "(geometry is not null);\" will not work."
 msgstr ""
+"Ovviamente questo non funzionerà se la colonna the_geom già contiene valori "
+"nulli. Inoltre il vincolo dev'essere definito usando il comando precedente. "
+"Usare un vincolo CHECK del tipo \"ALTER TABLE blubb ADD CHECK (geometry is "
+"not null);\" non funzionerà."
 
 #. Tag: title
 #: performance_tips.xml:107
 #, no-c-format
 msgid "Avoiding dimension conversion"
-msgstr ""
+msgstr "Evitare la conversione della dimensione"
 
 #. Tag: para
 #: performance_tips.xml:109
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "Sometimes, you happen to have 3D or 4D data in your table, but always access "
 "it using OpenGIS compliant ST_AsText() or ST_AsBinary() functions that only "
-"output 2D geometries. They do this by internally calling the ST_Force_2d() "
+"output 2D geometries. They do this by internally calling the ST_Force2D() "
 "function, which introduces a significant overhead for large geometries. To "
 "avoid this overhead, it may be feasible to pre-drop those additional "
 "dimensions once and forever:"
 msgstr ""
+"A volte può accadere di avere dati in 3D o 4D, ma di accederli sempre usando "
+"funzioni che danno in output solo geometrie 2D come ST_AsText() oppure "
+"ST_AsBinary(). Queste funzioni processano internamente le geometrie "
+"eseguendo ST_Force2D()  e questo può risultare in un peggioramento delle "
+"prestazioni significativo nel caso di geometrie di grandi dimensioni. Per "
+"evitare questo problema è consigliabile eliminare le dimensioni non "
+"utilizzate una volte e per sempre:"
 
 #. Tag: programlisting
 #: performance_tips.xml:116
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
-"UPDATE mytable SET the_geom = ST_Force_2d(the_geom); \n"
+"UPDATE mytable SET the_geom = ST_Force2D(the_geom); \n"
 "VACUUM FULL ANALYZE mytable;"
 msgstr ""
+"UPDATE mytable SET the_geom = ST_Force_2d(the_geom); \n"
+"VACUUM FULL ANALYZE mytable;"
 
 #. Tag: para
 #: performance_tips.xml:118
@@ -255,6 +338,11 @@ msgid ""
 "to drop the constraint. Remember to update the entry in the geometry_columns "
 "table and recreate the constraint afterwards."
 msgstr ""
+"Se la colonna di tipo geometry è stata aggiunta usando la funzione "
+"AddGeometryColumn(), verrà creato anche un vincolo dimensionale sulla "
+"geometria. Per aggirare il vincolo sarà necessario cancellarlo. Ricorda di "
+"attualizzare il record nella tabella geometry_columns e di ricreare il "
+"vincolo successivamente. "
 
 #. Tag: para
 #: performance_tips.xml:124
@@ -268,12 +356,20 @@ msgid ""
 "geometries, restricting the UPDATE by \"WHERE dimension(the_geom)>2\" "
 "skips re-writing of geometries that already are in 2D."
 msgstr ""
+"Nel caso di grandi tabelle può essere sensato dividere l'UPDATE in porzioni "
+"più piccole, usando la clausola WHERE con la chiave primaria o un altro "
+"criterio flessibile per attualizzare solo una parte della tabella , ed "
+"eseguendo un semplice \"VACUUM;\" tra gli UPDATE. Questo accorgimento "
+"ridurrà drasticamente il bisogno lo spazio temporaneo sul disco. Inoltre, se "
+"la colonna geometrica contiene geometrie con diverse dimensioni, si può "
+"limitare l'UPDATE con \"WHERE dimension(the_geom)>2\", evitando così di "
+"riscrivere le geometrie che sono già in 2D."
 
 #. Tag: title
 #: performance_tips.xml:136
 #, no-c-format
 msgid "Tuning your configuration"
-msgstr ""
+msgstr "Mettere a punto la configurazione"
 
 #. Tag: para
 #: performance_tips.xml:138
@@ -285,6 +381,11 @@ msgid ""
 "data and lots of users) these changes can provide significant speedups to "
 "your queries."
 msgstr ""
+"Questi consigli sono tratti dalla presentazione di Kevin Neufeld  \"Tips for "
+"the PostGIS Power User\" alla conferenza FOSS4G 2007. A seconda del contesto "
+"in cui viene usato PostGIS (per esempio dati statici e analisi complesse "
+"piuttosto che update frequenti e numerosi utenti) questi cambiamenti possono "
+"significare un significativo aumento della velocità delle query."
 
 #. Tag: para
 #: performance_tips.xml:144
@@ -295,24 +396,28 @@ msgid ""
 "abstract_id=117\"> http://2007.foss4g.org/presentations/view.php?"
 "abstract_id=117</ulink>."
 msgstr ""
+"Per più consigli (e una formattazione migliore) la presentazione originale è "
+"consultabile a <ulink url=\"http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117\"> http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117</ulink>."
 
 #. Tag: title
 #: performance_tips.xml:151
 #, no-c-format
 msgid "Startup"
-msgstr ""
+msgstr "Startup"
 
 #. Tag: para
 #: performance_tips.xml:153
 #, no-c-format
 msgid "These settings are configured in postgresql.conf:"
-msgstr ""
+msgstr "Queste impostazioni sono definite in postgresql.conf:"
 
 #. Tag: ulink
 #: performance_tips.xml:158
 #, no-c-format
 msgid "checkpoint_segments"
-msgstr ""
+msgstr "checkpoint_segments"
 
 #. Tag: para
 #: performance_tips.xml:163
@@ -321,6 +426,8 @@ msgid ""
 "Maximum number of log file segments between automatic WAL checkpoints (each "
 "segment is normally 16MB); default is 3"
 msgstr ""
+"Numero massimo di segmenti del log file tra checkpoint WAL (ogni segmento è "
+"normalmente 16MB); l'impostazione predefinita è 3."
 
 #. Tag: para
 #: performance_tips.xml:169
@@ -331,18 +438,23 @@ msgid ""
 "url=\"http://www.westnet.com/~gsmith/content/postgresql/chkp-bgw-83.htm"
 "\">Greg Smith: Checkpoint and Background writer</ulink>"
 msgstr ""
+"Impostare almeno su 10 o 30 per database con intensa attività di scrittura, "
+"o più quando si importa nel database grandi quantità di dati. Un altro "
+"articolo da leggere sull'argomento è <ulink url=\"http://www.westnet.com/"
+"~gsmith/content/postgresql/chkp-bgw-83.htm\">Greg Smith: Checkpoint and "
+"Background writer</ulink> "
 
 #. Tag: para
 #: performance_tips.xml:175
 #, no-c-format
 msgid "Possibly store the xlog on a separate disk device"
-msgstr ""
+msgstr "Se possibile, salvare il xlog su un disco separato"
 
 #. Tag: ulink
 #: performance_tips.xml:182
 #, no-c-format
 msgid "constraint_exclusion"
-msgstr ""
+msgstr "constraint_exclusion"
 
 #. Tag: para
 #: performance_tips.xml:187
@@ -351,6 +463,8 @@ msgid ""
 "Default: off (prior to PostgreSQL 8.4 and for PostgreSQL 8.4+ is set to "
 "partition)"
 msgstr ""
+"Il valore di default è \"off\" per versioni inferiori alla 8.4 e \"partition"
+"\" a partire dalla 8.4()"
 
 #. Tag: para
 #: performance_tips.xml:192
@@ -363,30 +477,37 @@ msgid ""
 "planner to only analyze tables for constraint consideration if they are in "
 "an inherited hierarchy and not pay the planner penalty otherwise."
 msgstr ""
+"Generalmente usato per il partizionamento delle tabelle. Con versioni di "
+"PostgreSQL inferiori alla 8.4 impostare il parametro su \"on\" per "
+"permettere al query planner di ottimizzare secondo necessità. Da PostgreSQL "
+"8.4, il valore di default è \"partition\", ideale per versioni 8.4 e "
+"superiori perché forza il query planner ad analizzare i vincoli delle "
+"tabelle solo  se queste sono in una gerarchia di ereditarietà e non essere "
+"penalizzate dal planner in caso contrario."
 
 #. Tag: ulink
 #: performance_tips.xml:202
 #, no-c-format
 msgid "shared_buffers"
-msgstr ""
+msgstr "shared_buffers"
 
 #. Tag: para
 #: performance_tips.xml:207
 #, no-c-format
 msgid "Default: ~32MB"
-msgstr ""
+msgstr "Default: ~32MB"
 
 #. Tag: para
 #: performance_tips.xml:212
 #, no-c-format
 msgid "Set to about 1/3 to 3/4 of available RAM"
-msgstr ""
+msgstr "Impostare da 1/3 a 3/4 della RAM disponibile."
 
 #. Tag: title
 #: performance_tips.xml:220
 #, no-c-format
 msgid "Runtime"
-msgstr ""
+msgstr "Runtime"
 
 #. Tag: para
 #: performance_tips.xml:222
@@ -396,36 +517,42 @@ msgid ""
 "resource.html#GUC-WORK-MEM\">work_mem</ulink> (the memory used for sort "
 "operations and complex queries)"
 msgstr ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-WORK-MEM\">work_mem</ulink> (memoria usata per operazioni "
+"di ordinamento e query complesse)"
 
 #. Tag: para
 #: performance_tips.xml:228
 #, no-c-format
 msgid "Default: 1MB"
-msgstr ""
+msgstr "Default: 1MB"
 
 #. Tag: para
 #: performance_tips.xml:233
 #, no-c-format
 msgid "Adjust up for large dbs, complex queries, lots of RAM"
 msgstr ""
+"Aumentare il valore per grandi database, query complesse, abbondanza di RAM"
 
 #. Tag: para
 #: performance_tips.xml:238
 #, no-c-format
 msgid "Adjust down for many concurrent users or low RAM."
 msgstr ""
+"Diminuire il valore nel caso di molti utenti concorrenti oppure "
+"disponibilità di RAM ridotta"
 
 #. Tag: para
 #: performance_tips.xml:243
 #, no-c-format
 msgid "If you have lots of RAM and few developers:"
-msgstr ""
+msgstr "Nel caso di molta RAM e pochi programmatori:"
 
 #. Tag: programlisting
 #: performance_tips.xml:245
 #, no-c-format
 msgid "SET work_mem TO 1200000;"
-msgstr ""
+msgstr "SET work_mem TO 1200000;"
 
 #. Tag: para
 #: performance_tips.xml:250
@@ -435,18 +562,23 @@ msgid ""
 "resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</ulink> (used "
 "for VACUUM, CREATE INDEX, etc.)"
 msgstr ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</ulink> (usato "
+"per VACUUM, CREATE INDEX, etc.)"
 
 #. Tag: para
 #: performance_tips.xml:256
 #, no-c-format
 msgid "Default: 16MB"
-msgstr ""
+msgstr "Default: 16MB"
 
 #. Tag: para
 #: performance_tips.xml:261
 #, no-c-format
 msgid "Generally too low - ties up I/O, locks objects while swapping memory"
 msgstr ""
+"Generalmente troppo basso. Tiene occupati i processi Input/Output e blocca "
+"oggetti quando viene impegnata la memoria swap."
 
 #. Tag: para
 #: performance_tips.xml:266
@@ -455,9 +587,12 @@ msgid ""
 "Recommend 32MB to 256MB on production servers w/lots of RAM, but depends on "
 "the # of concurrent users. If you have lots of RAM and few developers:"
 msgstr ""
+"Si raccomandano 32MB oppure 256MB su server di produzione con molta RAM, ma "
+"dipende dal numero di utenti concorrenti. Nel caso di molta RAM e pochi "
+"sviluppatori:"
 
 #. Tag: programlisting
 #: performance_tips.xml:269
 #, no-c-format
 msgid "SET maintainence_work_mem TO 1200000;"
-msgstr ""
+msgstr "SET maintainence_work_mem TO 1200000;"
diff --git a/doc/po/it_IT/postgis.xml.po b/doc/po/it_IT/postgis.xml.po
index 161783d..97bc343 100644
--- a/doc/po/it_IT/postgis.xml.po
+++ b/doc/po/it_IT/postgis.xml.po
@@ -1,28 +1,38 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# pibinko <pibinko at gmail.com>, 2013
+# pibinko <pibinko at gmail.com>, 2013
+# Sandro Santilli <strk at keybit.net>, 2014
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: 2012-09-14 19:55+CEST\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-10-20 15:59+0000\n"
 "Last-Translator: Sandro Santilli <strk at keybit.net>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/postgis/"
+"language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: title
-#: postgis.xml:106
+#: postgis.xml:127
 #, no-c-format
 msgid "PostGIS &last_release_version; Manual"
 msgstr "Manuale di PostGIS &last_release_version;"
 
+#. Tag: corpauthor
+#: postgis.xml:131
+#, no-c-format
+msgid "The PostGIS Development Group"
+msgstr "Il gruppo di sviluppo di PostGIS"
+
 #. Tag: affiliation
-#: postgis.xml:114
+#: postgis.xml:137
 #, no-c-format
 msgid ""
 "<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
@@ -30,9 +40,13 @@ msgid ""
 "state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
 "address>"
 msgstr ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>British Columbia</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
 
 #. Tag: para
-#: postgis.xml:124
+#: postgis.xml:151
 #, no-c-format
 msgid ""
 "PostGIS is an extension to the PostgreSQL object-relational database system "
@@ -40,24 +54,30 @@ msgid ""
 "the database. PostGIS includes support for GiST-based R-Tree spatial "
 "indexes, and functions for analysis and processing of GIS objects."
 msgstr ""
-"PostGIS e' un'estensione per la base di dati relazionale ad oggetti PostgreSQL "
-"che consente di conservare oggetti GIS (Sistemi di Informazione Geografica) nella "
-"base di dati. PostGIS include il supporto per gli indici spaziali di tipo R-Tree "
-"basati sul GiST e le funzioni per l'analisi e il trattamento degli oggetti GIS."
+"PostGIS è un'estensione del database object-relational PostgreSQL che "
+"consente l'archiviazione di oggetti GIS (Geographic Information Systems). "
+"PostGIS comprende il supporto per gli indici spaziali R-Tree basati su GIST, "
+"e funzioni per l'analisi e l'elaborazione di oggetti GIS."
 
 #. Tag: para
-#: postgis.xml:133
+#: postgis.xml:160
 #, no-c-format
 msgid "This is the manual for version &last_release_version;"
-msgstr "Questo e' il manuale per la versione &last_release_version;"
+msgstr "Questo è il manuale per la versione &last_release_version;"
 
 #. Tag: para
-#: postgis.xml:134
+#: postgis.xml:161
 #, no-c-format
 msgid ""
 "This work is licensed under a <ulink url=\"http://creativecommons.org/"
 "licenses/by-sa/3.0/\">Creative Commons Attribution-Share Alike 3.0 License</"
 "ulink>. Feel free to use this material any way you like, but we ask that you "
 "attribute credit to the PostGIS Project and wherever possible, a link back "
-"to <ulink url=\"http://www.postgis.org\">http://www.postgis.org</ulink>."
+"to <ulink url=\"http://postgis.net\">http://postgis.net</ulink>."
 msgstr ""
+"Questa opera è rilasciata con una licenza <ulink url=\"http://"
+"creativecommons.org/licenses/by-sa/3.0/\">Creative Commons Attribution-Share "
+"Alike 3.0 License</ulink>. Siete liberi di utilizzare questo materiale come "
+"volete, ma vi chiediamo di citare il progetto PostGIS come fonte e, ove "
+"possibile, di inserire un link a <ulink url=\"http://postgis.net\">http://"
+"postgis.net</ulink>."
diff --git a/doc/po/it_IT/reference.xml.po b/doc/po/it_IT/reference.xml.po
index 2f39761..d76563b 100644
--- a/doc/po/it_IT/reference.xml.po
+++ b/doc/po/it_IT/reference.xml.po
@@ -1,25 +1,27 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# aghisla <a.ghisla at gmail.com>, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-28 13:58+0000\n"
+"Last-Translator: aghisla <a.ghisla at gmail.com>\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/"
+"postgis-1/language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: title
 #: reference.xml:3
 #, no-c-format
 msgid "PostGIS Reference"
-msgstr ""
+msgstr "Guida a PostGIS"
 
 #. Tag: para
 #: reference.xml:5
@@ -29,6 +31,9 @@ msgid ""
 "need. There are other functions which are required support functions to the "
 "PostGIS objects which are not of use to a general user."
 msgstr ""
+"Le funzioni elencate sotto sono quelle di cui un utente PostGIS avrà più "
+"probabilmente bisogno. Ci sono altre funzioni, di supporto agli oggetti "
+"PostGIS, che non sono utili all'utente comune."
 
 #. Tag: para
 #: reference.xml:11
@@ -42,14 +47,27 @@ msgid ""
 "documentation are deprecated and will be removed in a future release so STOP "
 "USING THEM."
 msgstr ""
+"PostGIS ha iniziato una transizione dalla namin convention esistente a una "
+"convenzione SQL-MM-centrica. Di conseguenza, molte funzioni di uso comune "
+"sono state rinominate usando il prefisso standard \"spatial type\" (ST). Le "
+"funzioni precedenti sono tuttora disponibili, anche se non elencate nel "
+"presente documento. Al loro posto sono presenti le funzioni aggiornate "
+"corrispondenti. Le funzioni non ST_ che mancano in questo documento sono "
+"deprecate e verranno eliminate in una futura release, quindi NON VANNO PIÙ "
+"USATE."
 
 #. Tag: chapter
 #: reference.xml:16
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
+"&reference_type; &reference_guc; &reference_management; "
+"&reference_constructor; &reference_accessor; &reference_editor; "
+"&reference_output; &reference_operator; &reference_measure; "
+"&reference_sfcgal; &reference_processing; &reference_lrs; "
+"&reference_transaction; &reference_misc; &reference_exception;"
+msgstr ""
 "&reference_type; &reference_management; &reference_constructor; "
 "&reference_accessor; &reference_editor; &reference_output; "
 "&reference_operator; &reference_measure; &reference_processing; "
 "&reference_lrs; &reference_transaction; &reference_misc; "
 "&reference_exception;"
-msgstr ""
diff --git a/doc/po/it_IT/reference_accessor.xml.po b/doc/po/it_IT/reference_accessor.xml.po
index eee2bd4..52e915c 100644
--- a/doc/po/it_IT/reference_accessor.xml.po
+++ b/doc/po/it_IT/reference_accessor.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -45,26 +45,26 @@ msgstr ""
 
 #. Tag: title
 #: reference_accessor.xml:24 reference_accessor.xml:81
-#: reference_accessor.xml:128 reference_accessor.xml:176
-#: reference_accessor.xml:224 reference_accessor.xml:273
-#: reference_accessor.xml:325 reference_accessor.xml:374
-#: reference_accessor.xml:435 reference_accessor.xml:486
-#: reference_accessor.xml:545 reference_accessor.xml:604
-#: reference_accessor.xml:659 reference_accessor.xml:703
-#: reference_accessor.xml:754 reference_accessor.xml:811
-#: reference_accessor.xml:876 reference_accessor.xml:928
-#: reference_accessor.xml:987 reference_accessor.xml:1033
-#: reference_accessor.xml:1068 reference_accessor.xml:1107
-#: reference_accessor.xml:1147 reference_accessor.xml:1193
-#: reference_accessor.xml:1232 reference_accessor.xml:1265
-#: reference_accessor.xml:1306 reference_accessor.xml:1350
-#: reference_accessor.xml:1407 reference_accessor.xml:1460
-#: reference_accessor.xml:1503 reference_accessor.xml:1554
-#: reference_accessor.xml:1618 reference_accessor.xml:1661
-#: reference_accessor.xml:1706 reference_accessor.xml:1752
-#: reference_accessor.xml:1794 reference_accessor.xml:1839
-#: reference_accessor.xml:1885 reference_accessor.xml:1927
-#: reference_accessor.xml:1973 reference_accessor.xml:2014
+#: reference_accessor.xml:129 reference_accessor.xml:177
+#: reference_accessor.xml:225 reference_accessor.xml:276
+#: reference_accessor.xml:328 reference_accessor.xml:377
+#: reference_accessor.xml:438 reference_accessor.xml:489
+#: reference_accessor.xml:548 reference_accessor.xml:607
+#: reference_accessor.xml:662 reference_accessor.xml:706
+#: reference_accessor.xml:757 reference_accessor.xml:814
+#: reference_accessor.xml:879 reference_accessor.xml:931
+#: reference_accessor.xml:990 reference_accessor.xml:1036
+#: reference_accessor.xml:1071 reference_accessor.xml:1110
+#: reference_accessor.xml:1150 reference_accessor.xml:1194
+#: reference_accessor.xml:1256 reference_accessor.xml:1297
+#: reference_accessor.xml:1341 reference_accessor.xml:1398
+#: reference_accessor.xml:1454 reference_accessor.xml:1497
+#: reference_accessor.xml:1550 reference_accessor.xml:1617
+#: reference_accessor.xml:1660 reference_accessor.xml:1705
+#: reference_accessor.xml:1751 reference_accessor.xml:1793
+#: reference_accessor.xml:1838 reference_accessor.xml:1884
+#: reference_accessor.xml:1926 reference_accessor.xml:1972
+#: reference_accessor.xml:2013
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -95,8 +95,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:38 reference_accessor.xml:388
-#: reference_accessor.xml:1152
+#: reference_accessor.xml:38 reference_accessor.xml:391
+#: reference_accessor.xml:1155
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -104,89 +104,90 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:39 reference_accessor.xml:134
-#: reference_accessor.xml:390 reference_accessor.xml:497
-#: reference_accessor.xml:550 reference_accessor.xml:830
-#: reference_accessor.xml:996 reference_accessor.xml:1272
-#: reference_accessor.xml:1314 reference_accessor.xml:1423
-#: reference_accessor.xml:1757
+#: reference_accessor.xml:39 reference_accessor.xml:135
+#: reference_accessor.xml:393 reference_accessor.xml:500
+#: reference_accessor.xml:553 reference_accessor.xml:833
+#: reference_accessor.xml:999 reference_accessor.xml:1263
+#: reference_accessor.xml:1305 reference_accessor.xml:1414
+#: reference_accessor.xml:1756
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:40 reference_accessor.xml:136
-#: reference_accessor.xml:393 reference_accessor.xml:559
-#: reference_accessor.xml:624 reference_accessor.xml:670
-#: reference_accessor.xml:1074 reference_accessor.xml:1112
-#: reference_accessor.xml:1426 reference_accessor.xml:1468
-#: reference_accessor.xml:1671 reference_accessor.xml:1716
-#: reference_accessor.xml:1804 reference_accessor.xml:1849
-#: reference_accessor.xml:1937 reference_accessor.xml:1979
-#: reference_accessor.xml:2024
+#: reference_accessor.xml:40 reference_accessor.xml:137
+#: reference_accessor.xml:234 reference_accessor.xml:396
+#: reference_accessor.xml:562 reference_accessor.xml:627
+#: reference_accessor.xml:673 reference_accessor.xml:1077
+#: reference_accessor.xml:1115 reference_accessor.xml:1417
+#: reference_accessor.xml:1462 reference_accessor.xml:1506
+#: reference_accessor.xml:1670 reference_accessor.xml:1715
+#: reference_accessor.xml:1803 reference_accessor.xml:1848
+#: reference_accessor.xml:1936 reference_accessor.xml:1978
+#: reference_accessor.xml:2023
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: para
 #: reference_accessor.xml:41 reference_accessor.xml:96
-#: reference_accessor.xml:137 reference_accessor.xml:231
-#: reference_accessor.xml:334 reference_accessor.xml:392
-#: reference_accessor.xml:441 reference_accessor.xml:499
-#: reference_accessor.xml:558 reference_accessor.xml:623
-#: reference_accessor.xml:768 reference_accessor.xml:998
-#: reference_accessor.xml:1038 reference_accessor.xml:1073
-#: reference_accessor.xml:1111 reference_accessor.xml:1156
-#: reference_accessor.xml:1271 reference_accessor.xml:1367
-#: reference_accessor.xml:1425 reference_accessor.xml:1510
-#: reference_accessor.xml:1626 reference_accessor.xml:1670
-#: reference_accessor.xml:1715 reference_accessor.xml:1759
-#: reference_accessor.xml:1803 reference_accessor.xml:1848
-#: reference_accessor.xml:1893 reference_accessor.xml:1936
-#: reference_accessor.xml:1978 reference_accessor.xml:2023
+#: reference_accessor.xml:138 reference_accessor.xml:232
+#: reference_accessor.xml:337 reference_accessor.xml:395
+#: reference_accessor.xml:444 reference_accessor.xml:502
+#: reference_accessor.xml:561 reference_accessor.xml:626
+#: reference_accessor.xml:771 reference_accessor.xml:1001
+#: reference_accessor.xml:1041 reference_accessor.xml:1076
+#: reference_accessor.xml:1114 reference_accessor.xml:1159
+#: reference_accessor.xml:1262 reference_accessor.xml:1358
+#: reference_accessor.xml:1416 reference_accessor.xml:1504
+#: reference_accessor.xml:1625 reference_accessor.xml:1669
+#: reference_accessor.xml:1714 reference_accessor.xml:1758
+#: reference_accessor.xml:1802 reference_accessor.xml:1847
+#: reference_accessor.xml:1892 reference_accessor.xml:1935
+#: reference_accessor.xml:1977 reference_accessor.xml:2022
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:42 reference_accessor.xml:138
-#: reference_accessor.xml:189 reference_accessor.xml:394
-#: reference_accessor.xml:442 reference_accessor.xml:562
-#: reference_accessor.xml:1075 reference_accessor.xml:1157
-#: reference_accessor.xml:1274 reference_accessor.xml:1368
+#: reference_accessor.xml:42 reference_accessor.xml:139
+#: reference_accessor.xml:190 reference_accessor.xml:397
+#: reference_accessor.xml:445 reference_accessor.xml:565
+#: reference_accessor.xml:1078 reference_accessor.xml:1160
+#: reference_accessor.xml:1265 reference_accessor.xml:1359
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:43 reference_accessor.xml:139
-#: reference_accessor.xml:190 reference_accessor.xml:395
-#: reference_accessor.xml:1158
+#: reference_accessor.xml:43 reference_accessor.xml:140
+#: reference_accessor.xml:191 reference_accessor.xml:398
+#: reference_accessor.xml:1161
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:49 reference_accessor.xml:100
-#: reference_accessor.xml:144 reference_accessor.xml:194
-#: reference_accessor.xml:241 reference_accessor.xml:295
-#: reference_accessor.xml:339 reference_accessor.xml:447
-#: reference_accessor.xml:505 reference_accessor.xml:629
-#: reference_accessor.xml:677 reference_accessor.xml:722
-#: reference_accessor.xml:773 reference_accessor.xml:837
-#: reference_accessor.xml:893 reference_accessor.xml:953
-#: reference_accessor.xml:1004 reference_accessor.xml:1042
-#: reference_accessor.xml:1080 reference_accessor.xml:1117
-#: reference_accessor.xml:1163 reference_accessor.xml:1204
-#: reference_accessor.xml:1278 reference_accessor.xml:1319
-#: reference_accessor.xml:1374 reference_accessor.xml:1432
-#: reference_accessor.xml:1473 reference_accessor.xml:1520
-#: reference_accessor.xml:1574 reference_accessor.xml:1632
-#: reference_accessor.xml:1676 reference_accessor.xml:1721
-#: reference_accessor.xml:1765 reference_accessor.xml:1809
-#: reference_accessor.xml:1854 reference_accessor.xml:1898
-#: reference_accessor.xml:1942 reference_accessor.xml:1984
-#: reference_accessor.xml:2029
+#: reference_accessor.xml:49 reference_accessor.xml:101
+#: reference_accessor.xml:145 reference_accessor.xml:195
+#: reference_accessor.xml:244 reference_accessor.xml:298
+#: reference_accessor.xml:342 reference_accessor.xml:450
+#: reference_accessor.xml:508 reference_accessor.xml:632
+#: reference_accessor.xml:680 reference_accessor.xml:725
+#: reference_accessor.xml:776 reference_accessor.xml:840
+#: reference_accessor.xml:896 reference_accessor.xml:956
+#: reference_accessor.xml:1007 reference_accessor.xml:1045
+#: reference_accessor.xml:1083 reference_accessor.xml:1120
+#: reference_accessor.xml:1166 reference_accessor.xml:1206
+#: reference_accessor.xml:1269 reference_accessor.xml:1310
+#: reference_accessor.xml:1365 reference_accessor.xml:1426
+#: reference_accessor.xml:1467 reference_accessor.xml:1516
+#: reference_accessor.xml:1573 reference_accessor.xml:1631
+#: reference_accessor.xml:1675 reference_accessor.xml:1720
+#: reference_accessor.xml:1764 reference_accessor.xml:1808
+#: reference_accessor.xml:1853 reference_accessor.xml:1897
+#: reference_accessor.xml:1941 reference_accessor.xml:1983
+#: reference_accessor.xml:2028
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -243,27 +244,27 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:58 reference_accessor.xml:105
-#: reference_accessor.xml:151 reference_accessor.xml:199
-#: reference_accessor.xml:247 reference_accessor.xml:300
-#: reference_accessor.xml:344 reference_accessor.xml:414
-#: reference_accessor.xml:458 reference_accessor.xml:512
-#: reference_accessor.xml:579 reference_accessor.xml:635
-#: reference_accessor.xml:728 reference_accessor.xml:779
-#: reference_accessor.xml:843 reference_accessor.xml:900
-#: reference_accessor.xml:960 reference_accessor.xml:1010
-#: reference_accessor.xml:1047 reference_accessor.xml:1085
-#: reference_accessor.xml:1124 reference_accessor.xml:1168
-#: reference_accessor.xml:1209 reference_accessor.xml:1243
-#: reference_accessor.xml:1283 reference_accessor.xml:1324
-#: reference_accessor.xml:1381 reference_accessor.xml:1438
-#: reference_accessor.xml:1478 reference_accessor.xml:1526
-#: reference_accessor.xml:1580 reference_accessor.xml:1638
-#: reference_accessor.xml:1683 reference_accessor.xml:1728
-#: reference_accessor.xml:1771 reference_accessor.xml:1816
-#: reference_accessor.xml:1861 reference_accessor.xml:1904
-#: reference_accessor.xml:1949 reference_accessor.xml:1991
-#: reference_accessor.xml:2036
+#: reference_accessor.xml:58 reference_accessor.xml:106
+#: reference_accessor.xml:152 reference_accessor.xml:200
+#: reference_accessor.xml:250 reference_accessor.xml:303
+#: reference_accessor.xml:347 reference_accessor.xml:417
+#: reference_accessor.xml:461 reference_accessor.xml:515
+#: reference_accessor.xml:582 reference_accessor.xml:638
+#: reference_accessor.xml:731 reference_accessor.xml:782
+#: reference_accessor.xml:846 reference_accessor.xml:903
+#: reference_accessor.xml:963 reference_accessor.xml:1013
+#: reference_accessor.xml:1050 reference_accessor.xml:1088
+#: reference_accessor.xml:1127 reference_accessor.xml:1171
+#: reference_accessor.xml:1211 reference_accessor.xml:1234
+#: reference_accessor.xml:1274 reference_accessor.xml:1315
+#: reference_accessor.xml:1372 reference_accessor.xml:1432
+#: reference_accessor.xml:1472 reference_accessor.xml:1522
+#: reference_accessor.xml:1579 reference_accessor.xml:1637
+#: reference_accessor.xml:1682 reference_accessor.xml:1727
+#: reference_accessor.xml:1770 reference_accessor.xml:1815
+#: reference_accessor.xml:1860 reference_accessor.xml:1903
+#: reference_accessor.xml:1948 reference_accessor.xml:1990
+#: reference_accessor.xml:2035
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -327,8 +328,14 @@ msgstr ""
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.14"
 msgstr ""
 
+#. Tag: para
+#: reference_accessor.xml:97
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for Triangle was introduced"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_accessor.xml:102
+#: reference_accessor.xml:103
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 "
@@ -361,19 +368,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:107
+#: reference_accessor.xml:108
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakePolygon\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:113
+#: reference_accessor.xml:114
 #, no-c-format
 msgid "ST_CoordDim"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:115
+#: reference_accessor.xml:116
 #, no-c-format
 msgid ""
 "<refpurpose>Return the coordinate dimension of the ST_Geometry value.</"
@@ -381,7 +388,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:120
+#: reference_accessor.xml:121
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_CoordDim</function></funcdef> "
@@ -389,25 +396,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:130
+#: reference_accessor.xml:131
 #, no-c-format
 msgid "<para>Return the coordinate dimension of the ST_Geometry value.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:132
+#: reference_accessor.xml:133
 #, no-c-format
 msgid "This is the MM compliant alias name for <xref linkend=\"ST_NDims\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:135
+#: reference_accessor.xml:136
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:146
+#: reference_accessor.xml:147
 #, no-c-format
 msgid ""
 "SELECT ST_CoordDim('CIRCULARSTRING(1 2 3, 1 3 4, 5 6 7, 8 9 10, 11 12 "
@@ -421,13 +428,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:159
+#: reference_accessor.xml:160
 #, no-c-format
 msgid "ST_Dimension"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:161
+#: reference_accessor.xml:162
 #, no-c-format
 msgid ""
 "The inherent dimension of this Geometry object, which must be less than or "
@@ -435,7 +442,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:167
+#: reference_accessor.xml:168
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_Dimension</function></funcdef> "
@@ -443,7 +450,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:178
+#: reference_accessor.xml:179
 #, no-c-format
 msgid ""
 "The inherent dimension of this Geometry object, which must be less than or "
@@ -455,13 +462,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:186
+#: reference_accessor.xml:187
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.2"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:187
+#: reference_accessor.xml:188
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces and TINs was introduced. No "
@@ -469,7 +476,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:188
+#: reference_accessor.xml:189
 #, no-c-format
 msgid ""
 "Prior to 2.0.0, this function throws an exception if used with empty "
@@ -477,7 +484,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:196
+#: reference_accessor.xml:197
 #, no-c-format
 msgid ""
 "SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))');\n"
@@ -487,21 +494,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:207
+#: reference_accessor.xml:208
 #, no-c-format
 msgid "ST_EndPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:209
+#: reference_accessor.xml:210
 #, no-c-format
 msgid ""
-"Returns the last point of a <varname>LINESTRING</varname> geometry as a "
-"<varname>POINT</varname>."
+"Returns the last point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname>."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:215
+#: reference_accessor.xml:216
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_EndPoint</function></funcdef> "
@@ -509,7 +516,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:226
+#: reference_accessor.xml:227
 #, no-c-format
 msgid ""
 "Returns the last point of a <varname>LINESTRING</varname> geometry as a "
@@ -518,13 +525,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:230
+#: reference_accessor.xml:231
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.4"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:232 reference_accessor.xml:1511
+#: reference_accessor.xml:235 reference_accessor.xml:1507
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
@@ -536,7 +543,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:243
+#: reference_accessor.xml:246
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::"
@@ -561,19 +568,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:249
+#: reference_accessor.xml:252
 #, no-c-format
 msgid ", <xref linkend=\"ST_StartPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:256
+#: reference_accessor.xml:259
 #, no-c-format
 msgid "ST_Envelope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:258
+#: reference_accessor.xml:261
 #, no-c-format
 msgid ""
 "Returns a geometry representing the double precision (float8) bounding box "
@@ -581,7 +588,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:264
+#: reference_accessor.xml:267
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Envelope</function></funcdef> "
@@ -589,7 +596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:275
+#: reference_accessor.xml:278
 #, no-c-format
 msgid ""
 "Returns the float8 minimum bounding box for the supplied geometry, as a "
@@ -602,7 +609,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:285
+#: reference_accessor.xml:288
 #, no-c-format
 msgid ""
 "Degenerate cases (vertical lines, points) will return a geometry of lower "
@@ -611,7 +618,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:289
+#: reference_accessor.xml:292
 #, no-c-format
 msgid ""
 "Availability: 1.5.0 behavior changed to output double precision instead of "
@@ -619,20 +626,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:290 reference_accessor.xml:668
-#: reference_accessor.xml:766 reference_accessor.xml:1466
+#: reference_accessor.xml:293 reference_accessor.xml:671
+#: reference_accessor.xml:769 reference_accessor.xml:1460
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.1"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:291
+#: reference_accessor.xml:294
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.15"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:297
+#: reference_accessor.xml:300
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));\n"
@@ -671,19 +678,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:302
+#: reference_accessor.xml:305
 #, no-c-format
 msgid ", <xref linkend=\"Box3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:308
+#: reference_accessor.xml:311
 #, no-c-format
 msgid "ST_ExteriorRing"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:310
+#: reference_accessor.xml:313
 #, no-c-format
 msgid ""
 "Returns a line string representing the exterior ring of the "
@@ -692,7 +699,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:316
+#: reference_accessor.xml:319
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ExteriorRing</function></funcdef> "
@@ -700,7 +707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:327
+#: reference_accessor.xml:330
 #, no-c-format
 msgid ""
 "Returns a line string representing the exterior ring of the "
@@ -709,25 +716,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:330
+#: reference_accessor.xml:333
 #, no-c-format
 msgid "Only works with POLYGON geometry types"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:332 reference_accessor.xml:712
+#: reference_accessor.xml:335 reference_accessor.xml:715
 #, no-c-format
 msgid "&sfs_compliant; 2.1.5.1"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:333
+#: reference_accessor.xml:336
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.2.3, 8.3.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:340
+#: reference_accessor.xml:343
 #, no-c-format
 msgid ""
 "--If you have a table of polygons\n"
@@ -755,20 +762,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:346
+#: reference_accessor.xml:349
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_NumInteriorRings\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:356
+#: reference_accessor.xml:359
 #, no-c-format
 msgid "ST_GeometryN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:358
+#: reference_accessor.xml:361
 #, no-c-format
 msgid ""
 "Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
@@ -777,7 +784,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:365
+#: reference_accessor.xml:368
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeometryN</function></funcdef> "
@@ -786,7 +793,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:376
+#: reference_accessor.xml:379
 #, no-c-format
 msgid ""
 "Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
@@ -795,7 +802,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:381 reference_accessor.xml:1414
+#: reference_accessor.xml:384 reference_accessor.xml:1405
 #, no-c-format
 msgid ""
 "Index is 1-based as for OGC specs since version 0.8.0. Previous versions "
@@ -803,7 +810,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:386
+#: reference_accessor.xml:389
 #, no-c-format
 msgid ""
 "If you want to extract all geometries, of a geometry, ST_Dump is more "
@@ -811,7 +818,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:389
+#: reference_accessor.xml:392
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 Prior versions would return NULL for singular geometries. "
@@ -819,19 +826,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:391
+#: reference_accessor.xml:394
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.1.5"
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:401
+#: reference_accessor.xml:404
 #, no-c-format
 msgid "Standard Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:403
+#: reference_accessor.xml:406
 #, no-c-format
 msgid ""
 "--Extracting a subset of points from a 3d multipoint\n"
@@ -861,13 +868,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:406
+#: reference_accessor.xml:409
 #, no-c-format
 msgid "Polyhedral Surfaces, TIN and Triangle Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:407
+#: reference_accessor.xml:410
 #, no-c-format
 msgid ""
 "-- Polyhedral surface example\n"
@@ -888,7 +895,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:409
+#: reference_accessor.xml:412
 #, no-c-format
 msgid ""
 "-- TIN --                \n"
@@ -915,25 +922,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:416 reference_accessor.xml:1285
+#: reference_accessor.xml:419 reference_accessor.xml:1276
 #, no-c-format
 msgid ", <xref linkend=\"ST_NumGeometries\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:422
+#: reference_accessor.xml:425
 #, no-c-format
 msgid "ST_GeometryType"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:423
+#: reference_accessor.xml:426
 #, no-c-format
 msgid "Return the geometry type of the ST_Geometry value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:428
+#: reference_accessor.xml:431
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_GeometryType</function></funcdef> "
@@ -941,30 +948,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:437
+#: reference_accessor.xml:440
 #, no-c-format
 msgid ""
 "Returns the type of the geometry as a string. EG: 'ST_Linestring', "
-"'ST_Polygon','ST_MultiPolygon' etc. This function differs from GeometryType"
-"(geometry) in the case of the string and ST in front that is returned, as "
-"well as the fact that it will not indicate whether the geometry is measured."
+"'ST_Polygon','ST_MultiPolygon' etc. This function differs from "
+"GeometryType(geometry) in the case of the string and ST in front that is "
+"returned, as well as the fact that it will not indicate whether the geometry "
+"is measured."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:439 reference_accessor.xml:560
-#: reference_accessor.xml:1071
+#: reference_accessor.xml:442 reference_accessor.xml:563
+#: reference_accessor.xml:1074
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:440
+#: reference_accessor.xml:443
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:449
+#: reference_accessor.xml:452
 #, no-c-format
 msgid ""
 "SELECT ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
@@ -974,7 +982,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:451 reference_accessor.xml:453
+#: reference_accessor.xml:454 reference_accessor.xml:456
 #, no-c-format
 msgid ""
 "SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
@@ -989,7 +997,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:455
+#: reference_accessor.xml:458
 #, no-c-format
 msgid ""
 "SELECT ST_GeometryType(geom) as result\n"
@@ -1014,13 +1022,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:468
+#: reference_accessor.xml:471
 #, no-c-format
 msgid "ST_InteriorRingN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:470
+#: reference_accessor.xml:473
 #, no-c-format
 msgid ""
 "Return the Nth interior linestring ring of the polygon geometry. Return NULL "
@@ -1028,7 +1036,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:477
+#: reference_accessor.xml:480
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_InteriorRingN</function></funcdef> "
@@ -1037,7 +1045,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:488
+#: reference_accessor.xml:491
 #, no-c-format
 msgid ""
 "Return the Nth interior linestring ring of the polygon geometry. Return NULL "
@@ -1046,7 +1054,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:494
+#: reference_accessor.xml:497
 #, no-c-format
 msgid ""
 "This will not work for MULTIPOLYGONs. Use in conjunction with ST_Dump for "
@@ -1054,13 +1062,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:498
+#: reference_accessor.xml:501
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.2.6, 8.3.5"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:507
+#: reference_accessor.xml:510
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_InteriorRingN(the_geom, 1)) As the_geom\n"
@@ -1071,7 +1079,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:514
+#: reference_accessor.xml:517
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend="
@@ -1079,13 +1087,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:527
+#: reference_accessor.xml:530
 #, no-c-format
 msgid "ST_IsClosed"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:529
+#: reference_accessor.xml:532
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
@@ -1093,7 +1101,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:536
+#: reference_accessor.xml:539
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsClosed</function></funcdef> "
@@ -1101,7 +1109,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:547
+#: reference_accessor.xml:550
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
@@ -1110,13 +1118,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:551
+#: reference_accessor.xml:554
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.5, 9.3.3"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:553
+#: reference_accessor.xml:556
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of <function>ST_IsClosed(<varname>NULL</varname>)</"
@@ -1124,13 +1132,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:567
+#: reference_accessor.xml:570
 #, no-c-format
 msgid "Line String and Point Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:569
+#: reference_accessor.xml:572
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);\n"
@@ -1166,13 +1174,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:573
+#: reference_accessor.xml:576
 #, no-c-format
 msgid "Polyhedral Surface Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:575
+#: reference_accessor.xml:578
 #, no-c-format
 msgid ""
 "-- A cube --\n"
@@ -1203,13 +1211,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:587
+#: reference_accessor.xml:590
 #, no-c-format
 msgid "ST_IsCollection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:589
+#: reference_accessor.xml:592
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the argument is a collection "
@@ -1217,7 +1225,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:596
+#: reference_accessor.xml:599
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsCollection</function></funcdef> "
@@ -1225,7 +1233,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:606
+#: reference_accessor.xml:609
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the geometry type of the argument is "
@@ -1233,25 +1241,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:609
+#: reference_accessor.xml:612
 #, no-c-format
 msgid "GEOMETRYCOLLECTION"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:610
+#: reference_accessor.xml:613
 #, no-c-format
 msgid "MULTI{POINT,POLYGON,LINESTRING,CURVE,SURFACE}"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:611
+#: reference_accessor.xml:614
 #, no-c-format
 msgid "COMPOUNDCURVE"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:616
+#: reference_accessor.xml:619
 #, no-c-format
 msgid ""
 "This function analyzes the type of the geometry. This means that it will "
@@ -1260,7 +1268,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:631
+#: reference_accessor.xml:634
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_IsCollection('LINESTRING(0 0, 1 1)'::geometry);\n"
@@ -1296,13 +1304,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:643
+#: reference_accessor.xml:646
 #, no-c-format
 msgid "ST_IsEmpty"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:645
+#: reference_accessor.xml:648
 #, no-c-format
 msgid ""
 "Returns true if this Geometry is an empty geometrycollection, polygon, point "
@@ -1310,7 +1318,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:651
+#: reference_accessor.xml:654
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
@@ -1318,7 +1326,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:661
+#: reference_accessor.xml:664
 #, no-c-format
 msgid ""
 "Returns true if this Geometry is an empty geometry. If true, then this "
@@ -1326,7 +1334,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:664
+#: reference_accessor.xml:667
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of ST_IsEmpty(NULL) to be 0, while PostGIS returns "
@@ -1334,22 +1342,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:669
+#: reference_accessor.xml:672
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.7"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:671
+#: reference_accessor.xml:674
 #, no-c-format
 msgid ""
-"Changed: 2.0.0 In prior versions of PostGIS ST_GeomFromText"
-"('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now illegal in PostGIS "
-"2.0.0 to better conform with SQL/MM standards"
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:679
+#: reference_accessor.xml:682
 #, no-c-format
 msgid ""
 "SELECT ST_IsEmpty(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'));\n"
@@ -1386,13 +1394,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:686
+#: reference_accessor.xml:689
 #, no-c-format
 msgid "ST_IsRing"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:688
+#: reference_accessor.xml:691
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
@@ -1400,7 +1408,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:694
+#: reference_accessor.xml:697
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsRing</function></funcdef> "
@@ -1408,24 +1416,24 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:705
+#: reference_accessor.xml:708
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
 "both <xref linkend=\"ST_IsClosed\"/> (<function>ST_StartPoint(<parameter>g</"
-"parameter>)</function> <function>~=</function> <function>ST_Endpoint"
-"(<parameter>g</parameter>)</function>) and <xref linkend=\"ST_IsSimple\"/> "
-"(does not self intersect)."
+"parameter>)</function> <function>~=</function> "
+"<function>ST_Endpoint(<parameter>g</parameter>)</function>) and <xref "
+"linkend=\"ST_IsSimple\"/> (does not self intersect)."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:713
+#: reference_accessor.xml:716
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.6"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:715
+#: reference_accessor.xml:718
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of <function>ST_IsRing(<varname>NULL</varname>)</"
@@ -1433,7 +1441,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:724
+#: reference_accessor.xml:727
 #, no-c-format
 msgid ""
 "SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
@@ -1454,7 +1462,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:730
+#: reference_accessor.xml:733
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_StartPoint\"/>, <xref "
@@ -1462,13 +1470,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:738
+#: reference_accessor.xml:741
 #, no-c-format
 msgid "ST_IsSimple"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:740
+#: reference_accessor.xml:743
 #, no-c-format
 msgid ""
 "Returns (TRUE) if this Geometry has no anomalous geometric points, such as "
@@ -1476,7 +1484,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:746
+#: reference_accessor.xml:749
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsSimple</function></funcdef> "
@@ -1484,7 +1492,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:756
+#: reference_accessor.xml:759
 #, no-c-format
 msgid ""
 "Returns true if this Geometry has no anomalous geometric points, such as "
@@ -1494,7 +1502,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:762
+#: reference_accessor.xml:765
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of ST_IsSimple(NULL) to be 0, while PostGIS "
@@ -1502,13 +1510,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:767
+#: reference_accessor.xml:770
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.8"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:775
+#: reference_accessor.xml:778
 #, no-c-format
 msgid ""
 "SELECT ST_IsSimple(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
@@ -1526,13 +1534,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:787
+#: reference_accessor.xml:790
 #, no-c-format
 msgid "ST_IsValid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:789
+#: reference_accessor.xml:792
 #, no-c-format
 msgid ""
 "Returns <varname>true</varname> if the <varname>ST_Geometry</varname> is "
@@ -1540,7 +1548,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:795
+#: reference_accessor.xml:798
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> "
@@ -1552,7 +1560,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:813
+#: reference_accessor.xml:816
 #, no-c-format
 msgid ""
 "Test if an ST_Geometry value is well formed. For geometries that are "
@@ -1563,7 +1571,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:819
+#: reference_accessor.xml:822
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of ST_IsValid(NULL) to be 0, while PostGIS returns "
@@ -1571,7 +1579,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:823
+#: reference_accessor.xml:826
 #, no-c-format
 msgid ""
 "The version accepting flags is available starting with 2.0.0 and requires "
@@ -1581,13 +1589,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:831
+#: reference_accessor.xml:834
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.9"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:839
+#: reference_accessor.xml:842
 #, no-c-format
 msgid ""
 "SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,\n"
@@ -1601,7 +1609,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:845
+#: reference_accessor.xml:848
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/"
@@ -1609,13 +1617,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:856
+#: reference_accessor.xml:859
 #, no-c-format
 msgid "ST_IsValidReason"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:858
+#: reference_accessor.xml:861
 #, no-c-format
 msgid ""
 "Returns text stating if a geometry is valid or not and if not valid, a "
@@ -1623,7 +1631,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:862
+#: reference_accessor.xml:865
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_IsValidReason</function></"
@@ -1635,7 +1643,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:878
+#: reference_accessor.xml:881
 #, no-c-format
 msgid ""
 "Returns text stating if a geometry is valid or not an if not valid, a reason "
@@ -1643,7 +1651,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:880
+#: reference_accessor.xml:883
 #, no-c-format
 msgid ""
 "Useful in combination with ST_IsValid to generate a detailed report of "
@@ -1651,7 +1659,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:882
+#: reference_accessor.xml:885
 #, no-c-format
 msgid ""
 "Allowed <varname>flags</varname> are documented in <xref linkend="
@@ -1659,20 +1667,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:886
+#: reference_accessor.xml:889
 #, no-c-format
 msgid "Availability: 1.4 - requires GEOS >= 3.1.0."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:887
+#: reference_accessor.xml:890
 #, no-c-format
 msgid ""
 "Availability: 2.0 - requires GEOS >= 3.3.0 for the version taking flags."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:895
+#: reference_accessor.xml:898
 #, no-c-format
 msgid ""
 "--First 3 Rejects from a successful quintuplet experiment\n"
@@ -1686,8 +1694,9 @@ msgid ""
 "        CROSS JOIN generate_series(2,5) y1\n"
 "        CROSS JOIN generate_series(1,8) z1\n"
 "        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
-"        INNER JOIN (SELECT ST_Translate(ST_ExteriorRing(ST_Buffer"
-"(ST_MakePoint(x1*10,y1), z1)),y1*1, z1*2) As line\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
 "        FROM generate_series(-3,6) x1\n"
 "        CROSS JOIN generate_series(2,5) y1\n"
 "        CROSS JOIN generate_series(1,10) z1\n"
@@ -1714,19 +1723,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:902
+#: reference_accessor.xml:905
 #, no-c-format
 msgid ", <xref linkend=\"ST_Summary\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:908
+#: reference_accessor.xml:911
 #, no-c-format
 msgid "ST_IsValidDetail"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:910
+#: reference_accessor.xml:913
 #, no-c-format
 msgid ""
 "Returns a valid_detail (valid,reason,location) row stating if a geometry is "
@@ -1734,7 +1743,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:914
+#: reference_accessor.xml:917
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></"
@@ -1746,7 +1755,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:930
+#: reference_accessor.xml:933
 #, no-c-format
 msgid ""
 "Returns a valid_detail row, formed by a boolean (valid) stating if a "
@@ -1755,7 +1764,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:932
+#: reference_accessor.xml:935
 #, no-c-format
 msgid ""
 "Useful to substitute and improve the combination of ST_IsValid and "
@@ -1763,13 +1772,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:934
+#: reference_accessor.xml:937
 #, no-c-format
 msgid "The 'flags' argument is a bitfield. It can have the following values:"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:938
+#: reference_accessor.xml:941
 #, no-c-format
 msgid ""
 "1: Consider self-intersecting rings forming holes as valid. This is also "
@@ -1777,18 +1786,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:947
+#: reference_accessor.xml:950
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:955
+#: reference_accessor.xml:958
 #, no-c-format
 msgid ""
 "--First 3 Rejects from a successful quintuplet experiment\n"
-"SELECT gid, reason(ST_IsValidDetail(the_geom)), ST_AsText(location"
-"(ST_IsValidDetail(the_geom))) as location \n"
+"SELECT gid, reason(ST_IsValidDetail(the_geom)), "
+"ST_AsText(location(ST_IsValidDetail(the_geom))) as location \n"
 "FROM\n"
 "(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
 "the_geom, gid\n"
@@ -1798,8 +1807,9 @@ msgid ""
 "        CROSS JOIN generate_series(2,5) y1\n"
 "        CROSS JOIN generate_series(1,8) z1\n"
 "        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
-"        INNER JOIN (SELECT ST_Translate(ST_ExteriorRing(ST_Buffer"
-"(ST_MakePoint(x1*10,y1), z1)),y1*1, z1*2) As line\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
 "        FROM generate_series(-3,6) x1\n"
 "        CROSS JOIN generate_series(2,5) y1\n"
 "        CROSS JOIN generate_series(1,10) z1\n"
@@ -1826,19 +1836,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:962
+#: reference_accessor.xml:965
 #, no-c-format
 msgid ", <xref linkend=\"ST_IsValidReason\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:971
+#: reference_accessor.xml:974
 #, no-c-format
 msgid "ST_M"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:973
+#: reference_accessor.xml:976
 #, no-c-format
 msgid ""
 "<refpurpose>Return the M coordinate of the point, or NULL if not available. "
@@ -1846,7 +1856,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:979
+#: reference_accessor.xml:982
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_M</function></funcdef> <paramdef><type>geometry "
@@ -1854,7 +1864,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:989
+#: reference_accessor.xml:992
 #, no-c-format
 msgid ""
 "<para>Return the M coordinate of the point, or NULL if not available. Input "
@@ -1862,7 +1872,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:993
+#: reference_accessor.xml:996
 #, no-c-format
 msgid ""
 "This is not (yet) part of the OGC spec, but is listed here to complete the "
@@ -1870,13 +1880,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:997 reference_accessor.xml:1892
+#: reference_accessor.xml:1000 reference_accessor.xml:1891
 #, no-c-format
 msgid "&sqlmm_compliant;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1005
+#: reference_accessor.xml:1008
 #, no-c-format
 msgid ""
 "SELECT ST_M(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -1887,7 +1897,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1012
+#: reference_accessor.xml:1015
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/"
@@ -1895,13 +1905,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1018
+#: reference_accessor.xml:1021
 #, no-c-format
 msgid "ST_NDims"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1019
+#: reference_accessor.xml:1022
 #, no-c-format
 msgid ""
 "Returns coordinate dimension of the geometry as a small int. Values are: 2,3 "
@@ -1909,7 +1919,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1025
+#: reference_accessor.xml:1028
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NDims</function></funcdef> "
@@ -1917,7 +1927,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1035
+#: reference_accessor.xml:1038
 #, no-c-format
 msgid ""
 "Returns the coordinate dimension of the geometry. PostGIS supports 2 - (x,"
@@ -1926,7 +1936,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1044
+#: reference_accessor.xml:1047
 #, no-c-format
 msgid ""
 "SELECT ST_NDims(ST_GeomFromText('POINT(1 1)')) As d2point,\n"
@@ -1939,25 +1949,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1048
+#: reference_accessor.xml:1051
 #, no-c-format
 msgid ", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1054
+#: reference_accessor.xml:1057
 #, no-c-format
 msgid "ST_NPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1055
+#: reference_accessor.xml:1058
 #, no-c-format
 msgid "Return the number of points (vertexes) in a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1060
+#: reference_accessor.xml:1063
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NPoints</function></funcdef> "
@@ -1965,13 +1975,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1070
+#: reference_accessor.xml:1073
 #, no-c-format
 msgid "Return the number of points in a geometry. Works for all geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1072
+#: reference_accessor.xml:1075
 #, no-c-format
 msgid ""
 "Prior to 1.3.4, this function crashes if used with geometries that contain "
@@ -1979,7 +1989,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1082
+#: reference_accessor.xml:1085
 #, no-c-format
 msgid ""
 "SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 "
@@ -1995,20 +2005,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1093
+#: reference_accessor.xml:1096
 #, no-c-format
 msgid "ST_NRings"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1094
+#: reference_accessor.xml:1097
 #, no-c-format
 msgid ""
 "If the geometry is a polygon or multi-polygon returns the number of rings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1099
+#: reference_accessor.xml:1102
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NRings</function></funcdef> "
@@ -2016,7 +2026,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1109
+#: reference_accessor.xml:1112
 #, no-c-format
 msgid ""
 "If the geometry is a polygon or multi-polygon returns the number of rings. "
@@ -2024,13 +2034,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1119
+#: reference_accessor.xml:1122
 #, no-c-format
 msgid ""
 "SELECT ST_NRings(the_geom) As Nrings, ST_NumInteriorRings(the_geom) As "
 "ninterrings\n"
-"                                        FROM (SELECT ST_GeomFromText('POLYGON"
-"((1 2, 3 4, 5 6, 1 2))') As the_geom) As foo;\n"
+"                                        FROM (SELECT "
+"ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))') As the_geom) As foo;\n"
 "         nrings | ninterrings\n"
 "--------+-------------\n"
 "          1 |           0\n"
@@ -2038,13 +2048,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1132
+#: reference_accessor.xml:1135
 #, no-c-format
 msgid "ST_NumGeometries"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1133
+#: reference_accessor.xml:1136
 #, no-c-format
 msgid ""
 "If geometry is a GEOMETRYCOLLECTION (or MULTI*) return the number of "
@@ -2052,7 +2062,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1139
+#: reference_accessor.xml:1142
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumGeometries</function></funcdef> "
@@ -2060,7 +2070,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1149
+#: reference_accessor.xml:1152
 #, no-c-format
 msgid ""
 "Returns the number of Geometries. If geometry is a GEOMETRYCOLLECTION (or "
@@ -2069,7 +2079,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1153
+#: reference_accessor.xml:1156
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 In prior versions this would return NULL if the geometry was "
@@ -2078,13 +2088,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1155
+#: reference_accessor.xml:1158
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.1.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1165
+#: reference_accessor.xml:1168
 #, no-c-format
 msgid ""
 "--Prior versions would have returned NULL for this -- in 2.0.0 this returns "
@@ -2104,29 +2114,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1170
+#: reference_accessor.xml:1173
 #, no-c-format
 msgid ", <xref linkend=\"ST_Multi\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1176
+#: reference_accessor.xml:1179
 #, no-c-format
 msgid "ST_NumInteriorRings"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1177
+#: reference_accessor.xml:1180
 #, no-c-format
 msgid ""
-"<refpurpose>Return the number of interior rings of the first polygon in the "
-"geometry. This will work with both POLYGON and MULTIPOLYGON types but only "
-"looks at the first polygon. Return NULL if there is no polygon in the "
-"geometry.</refpurpose>"
+"Return the number of interior rings of the a polygon in the geometry. This "
+"will work with POLYGON and return NULL for a MULTIPOLYGON type or any other "
+"type"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1185
+#: reference_accessor.xml:1186
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumInteriorRings</function></funcdef> "
@@ -2134,23 +2143,30 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1195
+#: reference_accessor.xml:1196
 #, no-c-format
 msgid ""
-"<para>Return the number of interior rings of the first polygon in the "
-"geometry. This will work with both POLYGON and MULTIPOLYGON types but only "
-"looks at the first polygon. Return NULL if there is no polygon in the "
-"geometry.</para>"
+"Return the number of interior rings of the first polygon in the geometry. "
+"This will work with both POLYGON and MULTIPOLYGON types but only looks at "
+"the first polygon. Return NULL if there is no polygon in the geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1200 reference_accessor.xml:1239
+#: reference_accessor.xml:1201
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.2.5"
 msgstr ""
 
+#. Tag: para
+#: reference_accessor.xml:1202
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions it would return the number of interior "
+"rings for the first POLYGON in a MULTIPOLYGON."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_accessor.xml:1206
+#: reference_accessor.xml:1208
 #, no-c-format
 msgid ""
 "--If you have a regular polygon\n"
@@ -2167,44 +2183,35 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1217
+#: reference_accessor.xml:1219
 #, no-c-format
 msgid "ST_NumInteriorRing"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1218
+#: reference_accessor.xml:1220
 #, no-c-format
 msgid ""
-"Return the number of interior rings of the first polygon in the geometry. "
-"Synonym to ST_NumInteriorRings."
+"Return the number of interior rings of a polygon in the geometry. Synonym "
+"for ST_NumInteriorRings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1224
+#: reference_accessor.xml:1226
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumInteriorRing</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
 msgstr ""
 
-#. Tag: para
-#: reference_accessor.xml:1234
-#, no-c-format
-msgid ""
-"Return the number of interior rings of the first polygon in the geometry. "
-"Synonym to ST_NumInteriorRings. The OpenGIS specs are ambiguous about the "
-"exact function naming, so we provide both spellings."
-msgstr ""
-
 #. Tag: refname
-#: reference_accessor.xml:1251
+#: reference_accessor.xml:1242
 #, no-c-format
 msgid "ST_NumPatches"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1252
+#: reference_accessor.xml:1243
 #, no-c-format
 msgid ""
 "Return the number of faces on a Polyhedral Surface. Will return null for non-"
@@ -2212,7 +2219,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1257
+#: reference_accessor.xml:1248
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumPatches</function></funcdef> "
@@ -2220,7 +2227,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1267
+#: reference_accessor.xml:1258
 #, no-c-format
 msgid ""
 "Return the number of faces on a Polyhedral Surface. Will return null for non-"
@@ -2229,19 +2236,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1270 reference_accessor.xml:1365
+#: reference_accessor.xml:1261 reference_accessor.xml:1356
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1273 reference_accessor.xml:1366
+#: reference_accessor.xml:1264 reference_accessor.xml:1357
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: ?"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1280
+#: reference_accessor.xml:1271
 #, no-c-format
 msgid ""
 "SELECT ST_NumPatches(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
@@ -2256,20 +2263,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1291
+#: reference_accessor.xml:1282
 #, no-c-format
 msgid "ST_NumPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1292
+#: reference_accessor.xml:1283
 #, no-c-format
 msgid ""
 "Return the number of points in an ST_LineString or ST_CircularString value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1298
+#: reference_accessor.xml:1289
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumPoints</function></funcdef> "
@@ -2277,7 +2284,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1308
+#: reference_accessor.xml:1299
 #, no-c-format
 msgid ""
 "Return the number of points in an ST_LineString or ST_CircularString value. "
@@ -2288,13 +2295,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1315
+#: reference_accessor.xml:1306
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1321
+#: reference_accessor.xml:1312
 #, no-c-format
 msgid ""
 "SELECT ST_NumPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
@@ -2304,13 +2311,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1332
+#: reference_accessor.xml:1323
 #, no-c-format
 msgid "ST_PatchN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1334
+#: reference_accessor.xml:1325
 #, no-c-format
 msgid ""
 "Return the 1-based Nth geometry (face) if the geometry is a "
@@ -2318,7 +2325,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1341
+#: reference_accessor.xml:1332
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PatchN</function></funcdef> "
@@ -2327,7 +2334,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1352
+#: reference_accessor.xml:1343
 #, no-c-format
 msgid ""
 ">Return the 1-based Nth geometry (face) if the geometry is a "
@@ -2337,13 +2344,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1358
+#: reference_accessor.xml:1349
 #, no-c-format
 msgid "Index is 1-based."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1362
+#: reference_accessor.xml:1353
 #, no-c-format
 msgid ""
 "If you want to extract all geometries, of a geometry, ST_Dump is more "
@@ -2351,7 +2358,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1376
+#: reference_accessor.xml:1367
 #, no-c-format
 msgid ""
 "--Extract the 2nd face of the polyhedral surface\n"
@@ -2371,7 +2378,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1383
+#: reference_accessor.xml:1374
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
@@ -2379,22 +2386,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1389
+#: reference_accessor.xml:1380
 #, no-c-format
 msgid "ST_PointN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1391
+#: reference_accessor.xml:1382
 #, no-c-format
 msgid ""
-"<refpurpose>Return the Nth point in the first linestring or circular "
-"linestring in the geometry. Return NULL if there is no linestring in the "
-"geometry.</refpurpose>"
+"Return the Nth point in the first linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1398
+#: reference_accessor.xml:1389
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PointN</function></funcdef> "
@@ -2403,15 +2409,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1409
+#: reference_accessor.xml:1400
 #, no-c-format
 msgid ""
-"<para>Return the Nth point in the first linestring or circular linestring in "
-"the geometry. Return NULL if there is no linestring in the geometry.</para>"
+"Return the Nth point in a single linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1419
+#: reference_accessor.xml:1410
 #, no-c-format
 msgid ""
 "If you want to get the nth point of each line string in a multilinestring, "
@@ -2419,13 +2425,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1424
+#: reference_accessor.xml:1415
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.5, 7.3.5"
 msgstr ""
 
+#. Tag: para
+#: reference_accessor.xml:1418
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_accessor.xml:1434
+#: reference_accessor.xml:1428
 #, no-c-format
 msgid ""
 "-- Extract all POINTs from a LINESTRING\n"
@@ -2453,13 +2469,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1446
+#: reference_accessor.xml:1440
 #, no-c-format
 msgid "ST_SRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1447
+#: reference_accessor.xml:1441
 #, no-c-format
 msgid ""
 "Returns the spatial reference identifier for the ST_Geometry as defined in "
@@ -2467,7 +2483,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1452
+#: reference_accessor.xml:1446
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_SRID</function></funcdef> "
@@ -2475,7 +2491,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1462
+#: reference_accessor.xml:1456
 #, no-c-format
 msgid ""
 "Returns the spatial reference identifier for the ST_Geometry as defined in "
@@ -2483,7 +2499,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1463
+#: reference_accessor.xml:1457
 #, no-c-format
 msgid ""
 "spatial_ref_sys table is a table that catalogs all spatial reference systems "
@@ -2493,13 +2509,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1467
+#: reference_accessor.xml:1461
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.5"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1475
+#: reference_accessor.xml:1469
 #, no-c-format
 msgid ""
 "SELECT ST_SRID(ST_GeomFromText('POINT(-71.1043 42.315)',4326));\n"
@@ -2508,7 +2524,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1480
+#: reference_accessor.xml:1474
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -2516,13 +2532,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1486
+#: reference_accessor.xml:1480
 #, no-c-format
 msgid "ST_StartPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1488
+#: reference_accessor.xml:1482
 #, no-c-format
 msgid ""
 "Returns the first point of a <varname>LINESTRING</varname> geometry as a "
@@ -2530,7 +2546,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1494
+#: reference_accessor.xml:1488
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_StartPoint</function></funcdef> "
@@ -2538,22 +2554,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1505
+#: reference_accessor.xml:1499
 #, no-c-format
 msgid ""
-"Returns the first point of a <varname>LINESTRING</varname> geometry as a "
-"<varname>POINT</varname> or <varname>NULL</varname> if the input parameter "
-"is not a <varname>LINESTRING</varname>."
+"Returns the first point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname> "
+"or <varname>NULL</varname> if the input parameter is not a "
+"<varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1509
+#: reference_accessor.xml:1503
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1522
+#: reference_accessor.xml:1518
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_StartPoint('LINESTRING(0 1, 0 2)'::geometry));\n"
@@ -2573,23 +2590,30 @@ msgid ""
 " st_asewkt\n"
 "------------\n"
 " POINT(0 1 1)\n"
-"(1 row)"
+"(1 row)\n"
+"\n"
+"-- circular linestring --\n"
+"SELECT ST_AsText(ST_StartPoint('CIRCULARSTRING(5 2,-3 1.999999, -2 1, -4 2, "
+"5 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(5 2)"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1528
+#: reference_accessor.xml:1524
 #, no-c-format
 msgid ", <xref linkend=\"ST_PointN\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1533
+#: reference_accessor.xml:1529
 #, no-c-format
 msgid "ST_Summary"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1535
+#: reference_accessor.xml:1531
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a text summary of the contents of the geometry.</"
@@ -2597,7 +2621,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:1541
+#: reference_accessor.xml:1537
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_Summary</function></funcdef> "
@@ -2608,13 +2632,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1556
+#: reference_accessor.xml:1552
 #, no-c-format
 msgid "<para>Returns a text summary of the contents of the geometry.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1558
+#: reference_accessor.xml:1554
 #, no-c-format
 msgid ""
 "Flags shown square brackets after the geometry type have the following "
@@ -2622,37 +2646,56 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1562
+#: reference_accessor.xml:1558
 #, no-c-format
 msgid "M: has M ordinate"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1563
+#: reference_accessor.xml:1559
 #, no-c-format
 msgid "Z: has Z ordinate"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1564
+#: reference_accessor.xml:1560
 #, no-c-format
 msgid "B: has a cached bounding box"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1565
+#: reference_accessor.xml:1561
 #, no-c-format
 msgid "G: is geodetic (geography)"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1569
+#: reference_accessor.xml:1562
 #, no-c-format
-msgid "Availability: 1.2.2 - 2.0.0 added support for geography"
+msgid "S: has spatial reference system"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1566
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1567
+#, no-c-format
+msgid "Enhanced: 2.0.0 added support for geography"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1568
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 S flag to denote if has a known spatial reference system"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1576
+#: reference_accessor.xml:1575
 #, no-c-format
 msgid ""
 "=# SELECT ST_Summary(ST_GeomFromText('LINESTRING(0 0, 1 1)')) as geom,\n"
@@ -2660,36 +2703,36 @@ msgid ""
 "geog;\n"
 "            geom             |          geog    \n"
 "-----------------------------+--------------------------\n"
-" LineString[B] with 2 points | Polygon[BG] with 1 rings\n"
-"                             :    ring 0 has 5 points\n"
+" LineString[B] with 2 points | Polygon[BGS] with 1 rings\n"
+"                             | ring 0 has 5 points\n"
 "                             :\n"
 "(1 row)\n"
 "\n"
 "\n"
 "=# SELECT ST_Summary(ST_GeogFromText('LINESTRING(0 0 1, 1 1 1)')) As "
 "geog_line,\n"
-"        ST_Summary(ST_GeomFromText('POLYGON((0 0 1, 1 1 2, 1 2 3, 1 1 1, 0 0 "
-"1))')) As geom_poly;\n"
+"        ST_Summary(ST_GeomFromText('SRID=4326;POLYGON((0 0 1, 1 1 2, 1 2 3, "
+"1 1 1, 0 0 1))')) As geom_poly;\n"
 ";\n"
-"           geog_line           |        geom_poly\n"
-"-------------------------------+--------------------------\n"
-" LineString[ZBG] with 2 points | Polygon[ZB] with 1 rings\n"
-"                               :    ring 0 has 5 points\n"
-"                               :\n"
+"           geog_line             |        geom_poly\n"
+"-------------------------------- +--------------------------\n"
+" LineString[ZBGS] with 2 points | Polygon[ZBS] with 1 rings\n"
+"                                :    ring 0 has 5 points\n"
+"                                :\n"
 "(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1582
+#: reference_accessor.xml:1581
 #, no-c-format
 msgid ""
 ", <xref linkend=\"PostGIS_AddBBox\"/>, <xref linkend=\"ST_Force_3DM\"/>, "
-"<xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force_2D\"/>, <xref "
+"<xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force2D\"/>, <xref "
 "linkend=\"geography\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1591
+#: reference_accessor.xml:1590
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_IsValidReason\"/>, "
@@ -2697,13 +2740,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1602
+#: reference_accessor.xml:1601
 #, no-c-format
 msgid "ST_X"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1604
+#: reference_accessor.xml:1603
 #, no-c-format
 msgid ""
 "<refpurpose>Return the X coordinate of the point, or NULL if not available. "
@@ -2711,7 +2754,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1610
+#: reference_accessor.xml:1609
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_X</function></funcdef> <paramdef><type>geometry "
@@ -2719,7 +2762,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1620
+#: reference_accessor.xml:1619
 #, no-c-format
 msgid ""
 "<para>Return the X coordinate of the point, or NULL if not available. Input "
@@ -2727,7 +2770,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1623
+#: reference_accessor.xml:1622
 #, no-c-format
 msgid ""
 "If you want to get the max min x values of any geometry look at ST_XMin, "
@@ -2735,13 +2778,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1625
+#: reference_accessor.xml:1624
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1633
+#: reference_accessor.xml:1632
 #, no-c-format
 msgid ""
 "SELECT ST_X(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -2758,7 +2801,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1640
+#: reference_accessor.xml:1639
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
@@ -2767,13 +2810,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1646
+#: reference_accessor.xml:1645
 #, no-c-format
 msgid "ST_XMax"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1648
+#: reference_accessor.xml:1647
 #, no-c-format
 msgid ""
 "<refpurpose>Returns X maxima of a bounding box 2d or 3d or a geometry.</"
@@ -2781,7 +2824,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1653
+#: reference_accessor.xml:1652
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_XMax</function></funcdef> <paramdef><type>box3d "
@@ -2789,15 +2832,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1663
+#: reference_accessor.xml:1662
 #, no-c-format
 msgid "<para>Returns X maxima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1666 reference_accessor.xml:1711
-#: reference_accessor.xml:1799 reference_accessor.xml:1844
-#: reference_accessor.xml:1932 reference_accessor.xml:2019
+#: reference_accessor.xml:1665 reference_accessor.xml:1710
+#: reference_accessor.xml:1798 reference_accessor.xml:1843
+#: reference_accessor.xml:1931 reference_accessor.xml:2018
 #, no-c-format
 msgid ""
 "Although this function is only defined for box3d, it will work for box2d and "
@@ -2807,7 +2850,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1678
+#: reference_accessor.xml:1677
 #, no-c-format
 msgid ""
 "SELECT ST_XMax('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2838,7 +2881,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1685 reference_accessor.xml:1730
+#: reference_accessor.xml:1684 reference_accessor.xml:1729
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
@@ -2846,13 +2889,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1691
+#: reference_accessor.xml:1690
 #, no-c-format
 msgid "ST_XMin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1693
+#: reference_accessor.xml:1692
 #, no-c-format
 msgid ""
 "<refpurpose>Returns X minima of a bounding box 2d or 3d or a geometry.</"
@@ -2860,7 +2903,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1698
+#: reference_accessor.xml:1697
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_XMin</function></funcdef> <paramdef><type>box3d "
@@ -2868,13 +2911,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1708
+#: reference_accessor.xml:1707
 #, no-c-format
 msgid "<para>Returns X minima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1723
+#: reference_accessor.xml:1722
 #, no-c-format
 msgid ""
 "SELECT ST_XMin('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2905,13 +2948,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1736
+#: reference_accessor.xml:1735
 #, no-c-format
 msgid "ST_Y"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1738
+#: reference_accessor.xml:1737
 #, no-c-format
 msgid ""
 "<refpurpose>Return the Y coordinate of the point, or NULL if not available. "
@@ -2919,7 +2962,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1744
+#: reference_accessor.xml:1743
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Y</function></funcdef> <paramdef><type>geometry "
@@ -2927,7 +2970,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1754
+#: reference_accessor.xml:1753
 #, no-c-format
 msgid ""
 "<para>Return the Y coordinate of the point, or NULL if not available. Input "
@@ -2935,13 +2978,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1758
+#: reference_accessor.xml:1757
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1766
+#: reference_accessor.xml:1765
 #, no-c-format
 msgid ""
 "SELECT ST_Y(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -2958,7 +3001,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1773
+#: reference_accessor.xml:1772
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
@@ -2967,13 +3010,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1779
+#: reference_accessor.xml:1778
 #, no-c-format
 msgid "ST_YMax"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1781
+#: reference_accessor.xml:1780
 #, no-c-format
 msgid ""
 "<refpurpose>Returns Y maxima of a bounding box 2d or 3d or a geometry.</"
@@ -2981,7 +3024,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1786
+#: reference_accessor.xml:1785
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_YMax</function></funcdef> <paramdef><type>box3d "
@@ -2989,13 +3032,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1796
+#: reference_accessor.xml:1795
 #, no-c-format
 msgid "<para>Returns Y maxima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1811
+#: reference_accessor.xml:1810
 #, no-c-format
 msgid ""
 "SELECT ST_YMax('BOX3D(1 2 3, 4 5 6)');\n"
@@ -3026,7 +3069,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1818
+#: reference_accessor.xml:1817
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
@@ -3034,13 +3077,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1824
+#: reference_accessor.xml:1823
 #, no-c-format
 msgid "ST_YMin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1826
+#: reference_accessor.xml:1825
 #, no-c-format
 msgid ""
 "<refpurpose>Returns Y minima of a bounding box 2d or 3d or a geometry.</"
@@ -3048,7 +3091,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1831
+#: reference_accessor.xml:1830
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_YMin</function></funcdef> <paramdef><type>box3d "
@@ -3056,13 +3099,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1841
+#: reference_accessor.xml:1840
 #, no-c-format
 msgid "<para>Returns Y minima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1856
+#: reference_accessor.xml:1855
 #, no-c-format
 msgid ""
 "SELECT ST_YMin('BOX3D(1 2 3, 4 5 6)');\n"
@@ -3093,7 +3136,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1863
+#: reference_accessor.xml:1862
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
@@ -3101,13 +3144,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1869
+#: reference_accessor.xml:1868
 #, no-c-format
 msgid "ST_Z"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1871
+#: reference_accessor.xml:1870
 #, no-c-format
 msgid ""
 "<refpurpose>Return the Z coordinate of the point, or NULL if not available. "
@@ -3115,7 +3158,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1877
+#: reference_accessor.xml:1876
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Z</function></funcdef> <paramdef><type>geometry "
@@ -3123,7 +3166,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1887
+#: reference_accessor.xml:1886
 #, no-c-format
 msgid ""
 "<para>Return the Z coordinate of the point, or NULL if not available. Input "
@@ -3131,7 +3174,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1899
+#: reference_accessor.xml:1898
 #, no-c-format
 msgid ""
 "SELECT ST_Z(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -3142,7 +3185,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1906
+#: reference_accessor.xml:1905
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/"
@@ -3150,13 +3193,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1912
+#: reference_accessor.xml:1911
 #, no-c-format
 msgid "ST_ZMax"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1914 reference_accessor.xml:2001
+#: reference_accessor.xml:1913 reference_accessor.xml:2000
 #, no-c-format
 msgid ""
 "<refpurpose>Returns Z minima of a bounding box 2d or 3d or a geometry.</"
@@ -3164,7 +3207,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1919
+#: reference_accessor.xml:1918
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_ZMax</function></funcdef> <paramdef><type>box3d "
@@ -3172,13 +3215,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1929
+#: reference_accessor.xml:1928
 #, no-c-format
 msgid "Returns Z maxima of a bounding box 2d or 3d or a geometry."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1944
+#: reference_accessor.xml:1943
 #, no-c-format
 msgid ""
 "SELECT ST_ZMax('BOX3D(1 2 3, 4 5 6)');\n"
@@ -3209,7 +3252,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1951
+#: reference_accessor.xml:1950
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
@@ -3217,13 +3260,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1957
+#: reference_accessor.xml:1956
 #, no-c-format
 msgid "ST_Zmflag"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1959
+#: reference_accessor.xml:1958
 #, no-c-format
 msgid ""
 "<refpurpose>Returns ZM (dimension semantic) flag of the geometries as a "
@@ -3231,7 +3274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1965
+#: reference_accessor.xml:1964
 #, no-c-format
 msgid ""
 "<funcdef>smallint <function>ST_Zmflag</function></funcdef> "
@@ -3239,7 +3282,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1975
+#: reference_accessor.xml:1974
 #, no-c-format
 msgid ""
 "<para>Returns ZM (dimension semantic) flag of the geometries as a small int. "
@@ -3247,7 +3290,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1986
+#: reference_accessor.xml:1985
 #, no-c-format
 msgid ""
 "SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRING(1 2, 3 4)'));\n"
@@ -3271,19 +3314,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1993
+#: reference_accessor.xml:1992
 #, no-c-format
 msgid ", <xref linkend=\"ST_NDims\"/>, <xref linkend=\"ST_Dimension\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1999
+#: reference_accessor.xml:1998
 #, no-c-format
 msgid "ST_ZMin"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:2006
+#: reference_accessor.xml:2005
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_ZMin</function></funcdef> <paramdef><type>box3d "
@@ -3291,13 +3334,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:2016
+#: reference_accessor.xml:2015
 #, no-c-format
 msgid "<para>Returns Z minima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:2031
+#: reference_accessor.xml:2030
 #, no-c-format
 msgid ""
 "SELECT ST_ZMin('BOX3D(1 2 3, 4 5 6)');\n"
@@ -3328,7 +3371,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:2038
+#: reference_accessor.xml:2037
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_XMin\"/>, <xref "
diff --git a/doc/po/it_IT/reference_constructor.xml.po b/doc/po/it_IT/reference_constructor.xml.po
index 90b6563..df0e84c 100644
--- a/doc/po/it_IT/reference_constructor.xml.po
+++ b/doc/po/it_IT/reference_constructor.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -46,23 +46,26 @@ msgstr ""
 
 #. Tag: title
 #: reference_constructor.xml:23 reference_constructor.xml:72
-#: reference_constructor.xml:119 reference_constructor.xml:148
-#: reference_constructor.xml:175 reference_constructor.xml:227
-#: reference_constructor.xml:278 reference_constructor.xml:326
-#: reference_constructor.xml:369 reference_constructor.xml:400
-#: reference_constructor.xml:474 reference_constructor.xml:513
-#: reference_constructor.xml:564 reference_constructor.xml:596
-#: reference_constructor.xml:649 reference_constructor.xml:695
-#: reference_constructor.xml:740 reference_constructor.xml:799
-#: reference_constructor.xml:867 reference_constructor.xml:927
-#: reference_constructor.xml:966 reference_constructor.xml:1023
-#: reference_constructor.xml:1094 reference_constructor.xml:1139
-#: reference_constructor.xml:1220 reference_constructor.xml:1263
-#: reference_constructor.xml:1305 reference_constructor.xml:1366
-#: reference_constructor.xml:1427 reference_constructor.xml:1481
-#: reference_constructor.xml:1535 reference_constructor.xml:1591
-#: reference_constructor.xml:1640 reference_constructor.xml:1694
-#: reference_constructor.xml:1737 reference_constructor.xml:1760
+#: reference_constructor.xml:123 reference_constructor.xml:159
+#: reference_constructor.xml:188 reference_constructor.xml:215
+#: reference_constructor.xml:267 reference_constructor.xml:318
+#: reference_constructor.xml:366 reference_constructor.xml:409
+#: reference_constructor.xml:438 reference_constructor.xml:481
+#: reference_constructor.xml:555 reference_constructor.xml:594
+#: reference_constructor.xml:645 reference_constructor.xml:677
+#: reference_constructor.xml:730 reference_constructor.xml:777
+#: reference_constructor.xml:822 reference_constructor.xml:860
+#: reference_constructor.xml:905 reference_constructor.xml:964
+#: reference_constructor.xml:1032 reference_constructor.xml:1092
+#: reference_constructor.xml:1131 reference_constructor.xml:1188
+#: reference_constructor.xml:1259 reference_constructor.xml:1304
+#: reference_constructor.xml:1385 reference_constructor.xml:1428
+#: reference_constructor.xml:1470 reference_constructor.xml:1531
+#: reference_constructor.xml:1592 reference_constructor.xml:1646
+#: reference_constructor.xml:1697 reference_constructor.xml:1740
+#: reference_constructor.xml:1796 reference_constructor.xml:1845
+#: reference_constructor.xml:1899 reference_constructor.xml:1942
+#: reference_constructor.xml:1965
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -80,16 +83,16 @@ msgstr ""
 #, no-c-format
 msgid ""
 "Throws an error if WKT is not a MULTILINESTRING. Throws an error if output "
-"is a MULTIPOLYGON; use ST_BdMPolyFromText in that case, or see ST_BuildArea"
-"() for a postgis-specific approach."
+"is a MULTIPOLYGON; use ST_BdMPolyFromText in that case, or see "
+"ST_BuildArea() for a postgis-specific approach."
 msgstr ""
 
 #. Tag: para
 #: reference_constructor.xml:36 reference_constructor.xml:88
-#: reference_constructor.xml:241 reference_constructor.xml:756
-#: reference_constructor.xml:824 reference_constructor.xml:890
-#: reference_constructor.xml:1321 reference_constructor.xml:1443
-#: reference_constructor.xml:1705
+#: reference_constructor.xml:281 reference_constructor.xml:921
+#: reference_constructor.xml:989 reference_constructor.xml:1055
+#: reference_constructor.xml:1486 reference_constructor.xml:1608
+#: reference_constructor.xml:1910
 #, no-c-format
 msgid "&sfs_compliant; s3.2.6.2"
 msgstr ""
@@ -102,18 +105,20 @@ msgstr ""
 
 #. Tag: title
 #: reference_constructor.xml:42 reference_constructor.xml:94
-#: reference_constructor.xml:125 reference_constructor.xml:190
-#: reference_constructor.xml:248 reference_constructor.xml:292
-#: reference_constructor.xml:340 reference_constructor.xml:485
-#: reference_constructor.xml:617 reference_constructor.xml:665
-#: reference_constructor.xml:703 reference_constructor.xml:763
-#: reference_constructor.xml:831 reference_constructor.xml:895
-#: reference_constructor.xml:935 reference_constructor.xml:982
-#: reference_constructor.xml:1235 reference_constructor.xml:1270
-#: reference_constructor.xml:1328 reference_constructor.xml:1389
-#: reference_constructor.xml:1450 reference_constructor.xml:1559
-#: reference_constructor.xml:1609 reference_constructor.xml:1658
-#: reference_constructor.xml:1710
+#: reference_constructor.xml:135 reference_constructor.xml:165
+#: reference_constructor.xml:230 reference_constructor.xml:288
+#: reference_constructor.xml:332 reference_constructor.xml:380
+#: reference_constructor.xml:450 reference_constructor.xml:566
+#: reference_constructor.xml:698 reference_constructor.xml:746
+#: reference_constructor.xml:791 reference_constructor.xml:830
+#: reference_constructor.xml:868 reference_constructor.xml:928
+#: reference_constructor.xml:996 reference_constructor.xml:1060
+#: reference_constructor.xml:1100 reference_constructor.xml:1147
+#: reference_constructor.xml:1400 reference_constructor.xml:1435
+#: reference_constructor.xml:1493 reference_constructor.xml:1554
+#: reference_constructor.xml:1615 reference_constructor.xml:1709
+#: reference_constructor.xml:1764 reference_constructor.xml:1814
+#: reference_constructor.xml:1863 reference_constructor.xml:1915
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -126,23 +131,26 @@ msgstr ""
 
 #. Tag: title
 #: reference_constructor.xml:48 reference_constructor.xml:100
-#: reference_constructor.xml:129 reference_constructor.xml:153
-#: reference_constructor.xml:195 reference_constructor.xml:255
-#: reference_constructor.xml:305 reference_constructor.xml:346
-#: reference_constructor.xml:374 reference_constructor.xml:453
-#: reference_constructor.xml:492 reference_constructor.xml:540
-#: reference_constructor.xml:571 reference_constructor.xml:621
-#: reference_constructor.xml:672 reference_constructor.xml:710
-#: reference_constructor.xml:770 reference_constructor.xml:838
-#: reference_constructor.xml:902 reference_constructor.xml:942
-#: reference_constructor.xml:989 reference_constructor.xml:1066
-#: reference_constructor.xml:1109 reference_constructor.xml:1173
-#: reference_constructor.xml:1239 reference_constructor.xml:1276
-#: reference_constructor.xml:1335 reference_constructor.xml:1396
-#: reference_constructor.xml:1457 reference_constructor.xml:1508
-#: reference_constructor.xml:1563 reference_constructor.xml:1616
-#: reference_constructor.xml:1665 reference_constructor.xml:1717
-#: reference_constructor.xml:1741 reference_constructor.xml:1764
+#: reference_constructor.xml:139 reference_constructor.xml:169
+#: reference_constructor.xml:193 reference_constructor.xml:235
+#: reference_constructor.xml:295 reference_constructor.xml:345
+#: reference_constructor.xml:386 reference_constructor.xml:414
+#: reference_constructor.xml:454 reference_constructor.xml:534
+#: reference_constructor.xml:573 reference_constructor.xml:621
+#: reference_constructor.xml:652 reference_constructor.xml:702
+#: reference_constructor.xml:753 reference_constructor.xml:798
+#: reference_constructor.xml:837 reference_constructor.xml:875
+#: reference_constructor.xml:935 reference_constructor.xml:1003
+#: reference_constructor.xml:1067 reference_constructor.xml:1107
+#: reference_constructor.xml:1154 reference_constructor.xml:1231
+#: reference_constructor.xml:1274 reference_constructor.xml:1338
+#: reference_constructor.xml:1404 reference_constructor.xml:1441
+#: reference_constructor.xml:1500 reference_constructor.xml:1561
+#: reference_constructor.xml:1622 reference_constructor.xml:1673
+#: reference_constructor.xml:1713 reference_constructor.xml:1768
+#: reference_constructor.xml:1821 reference_constructor.xml:1870
+#: reference_constructor.xml:1922 reference_constructor.xml:1946
+#: reference_constructor.xml:1969
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -204,11 +212,94 @@ msgstr ""
 #. Tag: refname
 #: reference_constructor.xml:107
 #, no-c-format
+msgid "ST_Box2dFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:109
+#, no-c-format
+msgid "<refpurpose>Return a BOX2D from a GeoHash string.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:114
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Box2dFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:125
+#, no-c-format
+msgid "<para>Return a BOX2D from a GeoHash string.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:127
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_Box2dFromGeoHash "
+"returns a BOX2D based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:129
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_Box2dFromGeoHash will use "
+"that many characters from the GeoHash to create the BOX2D. Lower precision "
+"values results in larger BOX2Ds and larger values increase the precision."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:131 reference_constructor.xml:446
+#: reference_constructor.xml:1705
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0');\n"
+"\n"
+"                st_geomfromgeohash\n"
+"--------------------------------------------------\n"
+" BOX(-115.172816 36.114646,-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 0);\n"
+"\n"
+" st_box2dfromgeohash\n"
+"----------------------\n"
+" BOX(-180 -90,180 90)\n"
+"\n"
+" SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10);\n"
+"                            st_box2dfromgeohash\n"
+"---------------------------------------------------------------------------\n"
+" BOX(-115.17282128334 36.1146408319473,-115.172810554504 36.1146461963654)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:141
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:147
+#, no-c-format
 msgid "ST_GeogFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:108 reference_constructor.xml:137
+#: reference_constructor.xml:148 reference_constructor.xml:177
 #, no-c-format
 msgid ""
 "Return a specified geography value from Well-Known Text representation or "
@@ -216,7 +307,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:112
+#: reference_constructor.xml:152
 #, no-c-format
 msgid ""
 "<funcdef>geography <function>ST_GeogFromText</function></funcdef> "
@@ -224,7 +315,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:120
+#: reference_constructor.xml:160
 #, no-c-format
 msgid ""
 "Returns a geography object from the well-known text or extended well-known "
@@ -233,7 +324,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:126
+#: reference_constructor.xml:166
 #, no-c-format
 msgid ""
 "--- converting lon lat coords to geography\n"
@@ -243,19 +334,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:130
+#: reference_constructor.xml:170
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeographyFromText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:136
+#: reference_constructor.xml:176
 #, no-c-format
 msgid "ST_GeographyFromText"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:141
+#: reference_constructor.xml:181
 #, no-c-format
 msgid ""
 "<funcdef>geography <function>ST_GeographyFromText</function></funcdef> "
@@ -263,7 +354,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:149
+#: reference_constructor.xml:189
 #, no-c-format
 msgid ""
 "Returns a geography object from the well-known text representation. SRID "
@@ -271,19 +362,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:154
+#: reference_constructor.xml:194
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:160
+#: reference_constructor.xml:200
 #, no-c-format
 msgid "ST_GeogFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:161
+#: reference_constructor.xml:201
 #, no-c-format
 msgid ""
 "Creates a geography instance from a Well-Known Binary geometry "
@@ -291,7 +382,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:167
+#: reference_constructor.xml:207
 #, no-c-format
 msgid ""
 "<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> "
@@ -299,7 +390,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:177
+#: reference_constructor.xml:217
 #, no-c-format
 msgid ""
 "The <varname>ST_GeogFromWKB</varname> function, takes a well-known binary "
@@ -309,21 +400,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:182
+#: reference_constructor.xml:222
 #, no-c-format
 msgid "If SRID is not specified, it defaults to 4326 (WGS 84 long lat)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:184 reference_constructor.xml:286
-#: reference_constructor.xml:334 reference_constructor.xml:610
-#: reference_constructor.xml:660 reference_constructor.xml:1605
+#: reference_constructor.xml:224 reference_constructor.xml:326
+#: reference_constructor.xml:374 reference_constructor.xml:691
+#: reference_constructor.xml:741 reference_constructor.xml:1810
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:192
+#: reference_constructor.xml:232
 #, no-c-format
 msgid ""
 "--Although bytea rep contains single \\, these need to be escaped when "
@@ -341,27 +432,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:197
+#: reference_constructor.xml:237
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsBinary\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:204
+#: reference_constructor.xml:244
 #, no-c-format
 msgid "ST_GeomCollFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:206
+#: reference_constructor.xml:246
 #, no-c-format
 msgid ""
 "Makes a collection Geometry from collection WKT with the given SRID. If SRID "
-"is not give, it defaults to -1."
+"is not give, it defaults to 0."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:211
+#: reference_constructor.xml:251
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></"
@@ -373,29 +464,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:229
+#: reference_constructor.xml:269
 #, no-c-format
 msgid ""
 "Makes a collection Geometry from the Well-Known-Text (WKT) representation "
-"with the given SRID. If SRID is not give, it defaults to -1."
+"with the given SRID. If SRID is not give, it defaults to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:232 reference_constructor.xml:1310
-#: reference_constructor.xml:1371 reference_constructor.xml:1432
-#: reference_constructor.xml:1700
+#: reference_constructor.xml:272 reference_constructor.xml:1475
+#: reference_constructor.xml:1536 reference_constructor.xml:1597
+#: reference_constructor.xml:1905
 #, no-c-format
 msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:234
+#: reference_constructor.xml:274
 #, no-c-format
 msgid "Returns null if the WKT is not a GEOMETRYCOLLECTION"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:236
+#: reference_constructor.xml:276
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are collections, don't "
@@ -404,13 +495,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:242
+#: reference_constructor.xml:282
 #, no-c-format
 msgid "&sqlmm_compliant;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:250
+#: reference_constructor.xml:290
 #, no-c-format
 msgid ""
 "SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 "
@@ -418,19 +509,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:257 reference_constructor.xml:1459
+#: reference_constructor.xml:297 reference_constructor.xml:1624
 #, no-c-format
 msgid ", <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:264
+#: reference_constructor.xml:304
 #, no-c-format
 msgid "ST_GeomFromEWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:265
+#: reference_constructor.xml:305
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Extended Well-Known Binary "
@@ -438,7 +529,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:270
+#: reference_constructor.xml:310
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
@@ -446,7 +537,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:279
+#: reference_constructor.xml:319
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
@@ -454,7 +545,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:281
+#: reference_constructor.xml:321
 #, no-c-format
 msgid ""
 "The EWKB format is not an OGC standard, but a PostGIS specific format that "
@@ -462,39 +553,39 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:284 reference_constructor.xml:332
-#: reference_constructor.xml:420 reference_constructor.xml:567
+#: reference_constructor.xml:324 reference_constructor.xml:372
+#: reference_constructor.xml:501 reference_constructor.xml:648
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:285 reference_constructor.xml:333
-#: reference_constructor.xml:422 reference_constructor.xml:481
-#: reference_constructor.xml:527 reference_constructor.xml:698
-#: reference_constructor.xml:1034 reference_constructor.xml:1151
-#: reference_constructor.xml:1230 reference_constructor.xml:1604
-#: reference_constructor.xml:1652
+#: reference_constructor.xml:325 reference_constructor.xml:373
+#: reference_constructor.xml:503 reference_constructor.xml:562
+#: reference_constructor.xml:608 reference_constructor.xml:863
+#: reference_constructor.xml:1199 reference_constructor.xml:1316
+#: reference_constructor.xml:1395 reference_constructor.xml:1809
+#: reference_constructor.xml:1857
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:287 reference_constructor.xml:335
-#: reference_constructor.xml:423
+#: reference_constructor.xml:327 reference_constructor.xml:375
+#: reference_constructor.xml:504
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:288 reference_constructor.xml:336
-#: reference_constructor.xml:424
+#: reference_constructor.xml:328 reference_constructor.xml:376
+#: reference_constructor.xml:505
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:293
+#: reference_constructor.xml:333
 #, no-c-format
 msgid ""
 "line string binary rep 0f LINESTRING(-71.160281 42.258729,-71.160837 "
@@ -502,7 +593,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:295
+#: reference_constructor.xml:335
 #, no-c-format
 msgid ""
 "NOTE: Even though byte arrays are delimited with \\ and may have ', we need "
@@ -511,7 +602,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:297
+#: reference_constructor.xml:337
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\"
@@ -522,7 +613,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:299
+#: reference_constructor.xml:339
 #, no-c-format
 msgid ""
 "In PostgreSQL 9.1+ - standard_conforming_strings is set to on by default, "
@@ -533,7 +624,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:302
+#: reference_constructor.xml:342
 #, no-c-format
 msgid ""
 "set standard_conforming_strings = on;\n"
@@ -544,19 +635,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:306
+#: reference_constructor.xml:346
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:312
+#: reference_constructor.xml:352
 #, no-c-format
 msgid "ST_GeomFromEWKT"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:313
+#: reference_constructor.xml:353
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Extended Well-Known Text "
@@ -564,7 +655,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:318
+#: reference_constructor.xml:358
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> "
@@ -572,7 +663,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:327
+#: reference_constructor.xml:367
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
@@ -580,7 +671,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:329
+#: reference_constructor.xml:369
 #, no-c-format
 msgid ""
 "The EWKT format is not an OGC standard, but an PostGIS specific format that "
@@ -588,7 +679,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:341
+#: reference_constructor.xml:381
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 "
@@ -631,7 +722,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:342
+#: reference_constructor.xml:382
 #, no-c-format
 msgid ""
 "--3d circular string\n"
@@ -640,7 +731,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:343
+#: reference_constructor.xml:383
 #, no-c-format
 msgid ""
 "--Polyhedral Surface example\n"
@@ -655,20 +746,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:347
+#: reference_constructor.xml:387
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:352
+#: reference_constructor.xml:392
 #, no-c-format
 msgid "ST_GeometryFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:353 reference_constructor.xml:1749
+#: reference_constructor.xml:393 reference_constructor.xml:1954
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Well-Known Text representation "
@@ -676,7 +767,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:356
+#: reference_constructor.xml:396
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></"
@@ -688,25 +779,104 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:370 reference_constructor.xml:1650
+#: reference_constructor.xml:410 reference_constructor.xml:1855
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:371 reference_constructor.xml:609
+#: reference_constructor.xml:411 reference_constructor.xml:690
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.40"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:381
+#: reference_constructor.xml:422
+#, no-c-format
+msgid "ST_GeomFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:424
+#, no-c-format
+msgid "Return a geometry from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:429
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:440
+#, no-c-format
+msgid ""
+"Return a geometry from a GeoHash string. The geometry will be a polygon "
+"representing the GeoHash bounds."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:442
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_GeomFromGeoHash "
+"returns a polygon based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:444
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_GeomFromGeoHash will use "
+"that many characters from the GeoHash to create the polygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:451
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"                                                        st_astext\n"
+"--------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.172816 36.114646,-115.172816 36.114646,-115.172816 "
+"36.114646,-115.172816 36.114646,-115.172816 36.114646))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"                                                          st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.3125 36.03515625,-115.3125 36.2109375,-114.9609375 "
+"36.2109375,-114.9609375 36.03515625,-115.3125 36.03515625))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                                                                                       st_astext\n"
+"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.17282128334 36.1146408319473,-115.17282128334 "
+"36.1146461963654,-115.172810554504 36.1146461963654,-115.172810554504 "
+"36.1146408319473,-115.17282128334 36.1146408319473))\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:456
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:462
 #, no-c-format
 msgid "ST_GeomFromGML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:382
+#: reference_constructor.xml:463
 #, no-c-format
 msgid ""
 "Takes as input GML representation of geometry and outputs a PostGIS geometry "
@@ -714,7 +884,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:386
+#: reference_constructor.xml:467
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></"
@@ -726,14 +896,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:401
+#: reference_constructor.xml:482
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC GML representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:402
+#: reference_constructor.xml:483
 #, no-c-format
 msgid ""
 "ST_GeomFromGML works only for GML Geometry fragments. It throws an error if "
@@ -741,7 +911,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:403
+#: reference_constructor.xml:484
 #, no-c-format
 msgid ""
 "OGC GML versions supported: <itemizedlist> <listitem> <para>GML 3.2.1 "
@@ -753,19 +923,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:419 reference_constructor.xml:566
+#: reference_constructor.xml:500 reference_constructor.xml:647
 #, no-c-format
 msgid "Availability: 1.5, requires libxml2 1.6+"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:421 reference_constructor.xml:568
+#: reference_constructor.xml:502 reference_constructor.xml:649
 #, no-c-format
 msgid "Enhanced: 2.0.0 default srid optional parameter added."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:425
+#: reference_constructor.xml:506
 #, no-c-format
 msgid ""
 "GML allow mixed dimensions (2D and 3D inside the same MultiGeometry for "
@@ -774,7 +944,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:427
+#: reference_constructor.xml:508
 #, no-c-format
 msgid ""
 "GML support mixed SRS inside the same MultiGeometry. As PostGIS geometries "
@@ -784,7 +954,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:429
+#: reference_constructor.xml:510
 #, no-c-format
 msgid ""
 "ST_GeomFromGML function is not pedantic about an explicit GML namespace. You "
@@ -793,19 +963,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:431
+#: reference_constructor.xml:512
 #, no-c-format
 msgid "ST_GeomFromGML function not support SQL/MM curves geometries."
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:437 reference_constructor.xml:535
+#: reference_constructor.xml:518 reference_constructor.xml:616
 #, no-c-format
 msgid "Examples - A single geometry with srsName"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:438
+#: reference_constructor.xml:519
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromGML('<![CDATA[\n"
@@ -818,13 +988,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:442
+#: reference_constructor.xml:523
 #, no-c-format
 msgid "Examples - XLink usage"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:443
+#: reference_constructor.xml:524
 #, no-c-format
 msgid ""
 "SELECT <![CDATA[ST_GeomFromGML('\n"
@@ -845,13 +1015,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:447
+#: reference_constructor.xml:528
 #, no-c-format
 msgid "Examples - Polyhedral Surface"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:448
+#: reference_constructor.xml:529
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(<![CDATA[ST_GeomFromGML('\n"
@@ -906,19 +1076,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:454
+#: reference_constructor.xml:535
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:460
+#: reference_constructor.xml:541
 #, no-c-format
 msgid "ST_GeomFromGeoJSON"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:461
+#: reference_constructor.xml:542
 #, no-c-format
 msgid ""
 "Takes as input a geojson representation of a geometry and outputs a PostGIS "
@@ -926,7 +1096,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:466
+#: reference_constructor.xml:547
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> "
@@ -934,13 +1104,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:475
+#: reference_constructor.xml:556
 #, no-c-format
 msgid "Constructs a PostGIS geometry object from the GeoJSON representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:476
+#: reference_constructor.xml:557
 #, no-c-format
 msgid ""
 "ST_GeomFromGeoJSON works only for JSON Geometry fragments. It throws an "
@@ -948,13 +1118,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:478
+#: reference_constructor.xml:559
 #, no-c-format
 msgid "Availability: 2.0.0 requires - JSON-C >= 0.9"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:479
+#: reference_constructor.xml:560
 #, no-c-format
 msgid ""
 "If you do not have JSON-C enabled, support you will get an error notice "
@@ -964,7 +1134,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:486
+#: reference_constructor.xml:567
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":"
@@ -975,7 +1145,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:487
+#: reference_constructor.xml:568
 #, no-c-format
 msgid ""
 "-- a 3D linestring\n"
@@ -988,7 +1158,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:493
+#: reference_constructor.xml:574
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend="
@@ -996,13 +1166,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:499
+#: reference_constructor.xml:580
 #, no-c-format
 msgid "ST_GeomFromKML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:500
+#: reference_constructor.xml:581
 #, no-c-format
 msgid ""
 "Takes as input KML representation of geometry and outputs a PostGIS geometry "
@@ -1010,7 +1180,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:505
+#: reference_constructor.xml:586
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> "
@@ -1018,14 +1188,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:514
+#: reference_constructor.xml:595
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC KML representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:515
+#: reference_constructor.xml:596
 #, no-c-format
 msgid ""
 "ST_GeomFromKML works only for KML Geometry fragments. It throws an error if "
@@ -1033,7 +1203,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:516
+#: reference_constructor.xml:597
 #, no-c-format
 msgid ""
 "OGC KML versions supported: <itemizedlist> <listitem> <para>KML 2.2.0 "
@@ -1043,19 +1213,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:526
+#: reference_constructor.xml:607
 #, no-c-format
 msgid "Availability: 1.5,libxml2 2.6+"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:529
+#: reference_constructor.xml:610
 #, no-c-format
 msgid "ST_GeomFromKML function not support SQL/MM curves geometries."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:536
+#: reference_constructor.xml:617
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromKML('<![CDATA[\n"
@@ -1066,19 +1236,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:541
+#: reference_constructor.xml:622
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsKML\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:547
+#: reference_constructor.xml:628
 #, no-c-format
 msgid "ST_GMLToSQL"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:548
+#: reference_constructor.xml:629
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from GML representation. This is an "
@@ -1086,7 +1256,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:551
+#: reference_constructor.xml:632
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> "
@@ -1098,25 +1268,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:565
+#: reference_constructor.xml:646
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.50 (except for curves support)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:572
+#: reference_constructor.xml:653
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:578
+#: reference_constructor.xml:659
 #, no-c-format
 msgid "ST_GeomFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:579
+#: reference_constructor.xml:660
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Well-Known Text representation "
@@ -1124,7 +1294,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:582
+#: reference_constructor.xml:663
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></"
@@ -1136,7 +1306,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:598
+#: reference_constructor.xml:679
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC Well-Known text "
@@ -1144,7 +1314,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:602
+#: reference_constructor.xml:683
 #, no-c-format
 msgid ""
 "There are 2 variants of ST_GeomFromText function, the first takes no SRID "
@@ -1155,23 +1325,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:608 reference_constructor.xml:1554
+#: reference_constructor.xml:689 reference_constructor.xml:1759
 #, no-c-format
 msgid "&sfs_compliant; s3.2.6.2 - option SRID is from the conformance suite."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:611
+#: reference_constructor.xml:692
 #, no-c-format
 msgid ""
-"Changed: 2.0.0 In prior versions of PostGIS ST_GeomFromText"
-"('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now illegal in PostGIS "
-"2.0.0 to better conform with SQL/MM standards. This should now be written as "
-"ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards. This "
+"should now be written as ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:618
+#: reference_constructor.xml:699
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
@@ -1219,19 +1389,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:622
+#: reference_constructor.xml:703
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:628
+#: reference_constructor.xml:709
 #, no-c-format
 msgid "ST_GeomFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:629
+#: reference_constructor.xml:710
 #, no-c-format
 msgid ""
 "Creates a geometry instance from a Well-Known Binary geometry representation "
@@ -1239,7 +1409,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:634 reference_constructor.xml:1576
+#: reference_constructor.xml:715 reference_constructor.xml:1781
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></"
@@ -1251,7 +1421,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:651
+#: reference_constructor.xml:732
 #, no-c-format
 msgid ""
 "The <varname>ST_GeomFromWKB</varname> function, takes a well-known binary "
@@ -1262,26 +1432,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:657
+#: reference_constructor.xml:738
 #, no-c-format
-msgid "If SRID is not specified, it defaults to -1 (Unknown)."
+msgid "If SRID is not specified, it defaults to 0 (Unknown)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:658
+#: reference_constructor.xml:739
 #, no-c-format
 msgid ""
 "&sfs_compliant; s3.2.7.2 - the optional SRID is from the conformance suite"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:659
+#: reference_constructor.xml:740
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.41"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:667
+#: reference_constructor.xml:748
 #, no-c-format
 msgid ""
 "--Although bytea rep contains single \\, these need to be escaped when "
@@ -1311,26 +1481,154 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:674
+#: reference_constructor.xml:755
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:680
+#: reference_constructor.xml:762
+#, no-c-format
+msgid "ST_GeomFromTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:763
+#, no-c-format
+msgid ""
+"Creates a geometry instance from a Tiny Well-Known Binary geometry "
+"representation (TWKB)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:769
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromTWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:779
+#, no-c-format
+msgid ""
+"The <varname>ST_GeomFromTWKB</varname> function, takes a tiny well-known "
+"binary representation of a geometry and creates an instance of the "
+"appropriate geometry type."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:783
+#, no-c-format
+msgid "SRID always defaults to 0 (Unknown)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:785
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So a 3D geoemtry in TWKB will "
+"always be a GeometryZ, like PointZ when converted to PostGIS geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:793
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromTWKB(E'\\\\x304202f7f40dbce4040105')\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+"LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromTWKB(\n"
+"          ST_AsTWKB('POINT(2 5)'::geometry,0)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:800
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_AsTWKB\"/>,<xref linkend=\"ST_AsTWKBAgg\"/>,<xref "
+"linkend=\"ST_WKBToSQL\"/>, <xref linkend=\"ST_AsBinary\"/>, <xref linkend="
+"\"ST_GeomFromEWKB\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:806
+#, no-c-format
+msgid "ST_LineFromEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:808
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:813
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromEncodedPolyline</function></funcdef> "
+"<paramdef><type>text </type> <parameter>polyline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:824
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:825
+#, no-c-format
+msgid ""
+"See http://developers.google.com/maps/documentation/utilities/"
+"polylinealgorithm"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:832
+#, no-c-format
+msgid ""
+"--Create a line string from a polyline\n"
+"SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|"
+"U_ulLnnqC_mqNvxq`@'));\n"
+"--result--\n"
+"LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:845
 #, no-c-format
 msgid "ST_LineFromMultiPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:682
+#: reference_constructor.xml:847
 #, no-c-format
 msgid ""
 "<refpurpose>Creates a LineString from a MultiPoint geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:687
+#: reference_constructor.xml:852
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> "
@@ -1339,13 +1637,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:697
+#: reference_constructor.xml:862
 #, no-c-format
 msgid "<para>Creates a LineString from a MultiPoint geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:705
+#: reference_constructor.xml:870
 #, no-c-format
 msgid ""
 "--Create a 3d line string from a 3d multipoint\n"
@@ -1356,27 +1654,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:712
+#: reference_constructor.xml:877
 #, no-c-format
 msgid ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:718
+#: reference_constructor.xml:883
 #, no-c-format
 msgid "ST_LineFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:720
+#: reference_constructor.xml:885
 #, no-c-format
 msgid ""
 "Makes a Geometry from WKT representation with the given SRID. If SRID is not "
-"given, it defaults to -1."
+"given, it defaults to 0."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:725
+#: reference_constructor.xml:890
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></"
@@ -1388,21 +1686,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:742
+#: reference_constructor.xml:907
 #, no-c-format
 msgid ""
 "Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
-"defaults to -1. If WKT passed in is not a LINESTRING, then null is returned."
+"defaults to 0. If WKT passed in is not a LINESTRING, then null is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:746 reference_constructor.xml:812
+#: reference_constructor.xml:911 reference_constructor.xml:977
 #, no-c-format
 msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:751
+#: reference_constructor.xml:916
 #, no-c-format
 msgid ""
 "If you know all your geometries are LINESTRINGS, its more efficient to just "
@@ -1411,36 +1709,36 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:757
+#: reference_constructor.xml:922
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.8"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:765
+#: reference_constructor.xml:930
 #, no-c-format
 msgid ""
-"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, ST_LineFromText"
-"('POINT(1 2)') AS null_return;\n"
+"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, "
+"ST_LineFromText('POINT(1 2)') AS null_return;\n"
 "aline                            | null_return\n"
 "------------------------------------------------\n"
 "010200000002000000000000000000F ... | t"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:778
+#: reference_constructor.xml:943
 #, no-c-format
 msgid "ST_LineFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:780
+#: reference_constructor.xml:945
 #, no-c-format
 msgid "Makes a <varname>LINESTRING</varname> from WKB with the given SRID"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:784
+#: reference_constructor.xml:949
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></"
@@ -1452,7 +1750,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:801
+#: reference_constructor.xml:966
 #, no-c-format
 msgid ""
 "The <varname>ST_LineFromWKB</varname> function, takes a well-known binary "
@@ -1463,16 +1761,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:807
+#: reference_constructor.xml:972
 #, no-c-format
 msgid ""
-"If an SRID is not specified, it defaults to -1. <varname>NULL</varname> is "
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
 "returned if the input <varname>bytea</varname> does not represent a "
 "<varname>LINESTRING</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:817
+#: reference_constructor.xml:982
 #, no-c-format
 msgid ""
 "If you know all your geometries are <varname>LINESTRING</varname>s, its more "
@@ -1482,13 +1780,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:825 reference_constructor.xml:891
+#: reference_constructor.xml:990 reference_constructor.xml:1056
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.9"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:833
+#: reference_constructor.xml:998
 #, no-c-format
 msgid ""
 "SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) "
@@ -1501,25 +1799,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:840
+#: reference_constructor.xml:1005
 #, no-c-format
 msgid ", <xref linkend=\"ST_LinestringFromWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:846
+#: reference_constructor.xml:1011
 #, no-c-format
 msgid "ST_LinestringFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:848
+#: reference_constructor.xml:1013
 #, no-c-format
 msgid "Makes a geometry from WKB with the given SRID."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:852
+#: reference_constructor.xml:1017
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></"
@@ -1531,7 +1829,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:869
+#: reference_constructor.xml:1034
 #, no-c-format
 msgid ""
 "The <varname>ST_LinestringFromWKB</varname> function, takes a well-known "
@@ -1542,23 +1840,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:875
+#: reference_constructor.xml:1040
 #, no-c-format
 msgid ""
-"If an SRID is not specified, it defaults to -1. <varname>NULL</varname> is "
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
 "returned if the input <varname>bytea</varname> does not represent a "
 "<varname>LINESTRING</varname> geometry. This an alias for <xref linkend="
 "\"ST_LineFromWKB\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:880
+#: reference_constructor.xml:1045
 #, no-c-format
 msgid "OGC SPEC 3.2.6.2 - optional SRID is from the conformance suite."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:884
+#: reference_constructor.xml:1049
 #, no-c-format
 msgid ""
 "If you know all your geometries are <varname>LINESTRING</varname>s, it's "
@@ -1568,7 +1866,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:897
+#: reference_constructor.xml:1062
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -1584,25 +1882,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:904 reference_constructor.xml:1618
+#: reference_constructor.xml:1069 reference_constructor.xml:1823
 #, no-c-format
 msgid ", <xref linkend=\"ST_LineFromWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:910
+#: reference_constructor.xml:1075
 #, no-c-format
 msgid "ST_MakeBox2D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:912
+#: reference_constructor.xml:1077
 #, no-c-format
 msgid "Creates a BOX2D defined by the given point geometries."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:918
+#: reference_constructor.xml:1083
 #, no-c-format
 msgid ""
 "<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> "
@@ -1612,7 +1910,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:929
+#: reference_constructor.xml:1094
 #, no-c-format
 msgid ""
 "Creates a BOX2D defined by the given point geometries. This is useful for "
@@ -1620,7 +1918,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:937
+#: reference_constructor.xml:1102
 #, no-c-format
 msgid ""
 "--Return all features that fall reside or partly reside in a US national "
@@ -1635,7 +1933,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:944
+#: reference_constructor.xml:1109
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -1643,19 +1941,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:950
+#: reference_constructor.xml:1115
 #, no-c-format
 msgid "ST_3DMakeBox"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:952
+#: reference_constructor.xml:1117
 #, no-c-format
 msgid "Creates a BOX3D defined by the given 3d point geometries."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:957
+#: reference_constructor.xml:1122
 #, no-c-format
 msgid ""
 "<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> "
@@ -1665,25 +1963,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:968
+#: reference_constructor.xml:1133
 #, no-c-format
 msgid "Creates a BOX3D defined by the given 2 3D point geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:975
+#: reference_constructor.xml:1140
 #, no-c-format
 msgid "This function supports 3d and will not drop the z-index."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:977
+#: reference_constructor.xml:1142
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_MakeBox3D"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:984
+#: reference_constructor.xml:1149
 #, no-c-format
 msgid ""
 "SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
@@ -1695,25 +1993,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:991
+#: reference_constructor.xml:1156
 #, no-c-format
 msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:997
+#: reference_constructor.xml:1162
 #, no-c-format
 msgid "ST_MakeLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:999
+#: reference_constructor.xml:1164
 #, no-c-format
 msgid "Creates a Linestring from point or line geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1003
+#: reference_constructor.xml:1168
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> "
@@ -1727,7 +2025,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1025
+#: reference_constructor.xml:1190
 #, no-c-format
 msgid ""
 "ST_MakeLine comes in 3 forms: a spatial aggregate that takes rows of point-"
@@ -1738,13 +2036,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1030
+#: reference_constructor.xml:1195
 #, no-c-format
 msgid "When adding line components a common node is removed from the output."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1035
+#: reference_constructor.xml:1200
 #, no-c-format
 msgid ""
 "Availability: 1.4.0 - ST_MakeLine(geomarray) was introduced. ST_MakeLine "
@@ -1752,20 +2050,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1036
+#: reference_constructor.xml:1201
 #, no-c-format
 msgid ""
 "Availability: 2.0.0 - Support for linestring input elements was introduced"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1040
+#: reference_constructor.xml:1205
 #, no-c-format
 msgid "Examples: Spatial Aggregate version"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1041
+#: reference_constructor.xml:1206
 #, no-c-format
 msgid ""
 "This example takes a sequence of GPS points and creates one record for each "
@@ -1774,7 +2072,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1045
+#: reference_constructor.xml:1210
 #, no-c-format
 msgid ""
 "-- For pre-PostgreSQL 9.0 - this usually works, \n"
@@ -1788,7 +2086,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1047
+#: reference_constructor.xml:1212
 #, no-c-format
 msgid ""
 "-- If you are using PostgreSQL 9.0+ \n"
@@ -1802,13 +2100,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1050
+#: reference_constructor.xml:1215
 #, no-c-format
 msgid "Examples: Non-Spatial Aggregate version"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1052
+#: reference_constructor.xml:1217
 #, no-c-format
 msgid ""
 "First example is a simple one off line string composed of 2 points. The "
@@ -1817,7 +2115,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1054
+#: reference_constructor.xml:1219
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
@@ -1835,13 +2133,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1058
+#: reference_constructor.xml:1223
 #, no-c-format
 msgid "Examples: Using Array version"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1060
+#: reference_constructor.xml:1225
 #, no-c-format
 msgid ""
 "SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations "
@@ -1849,15 +2147,15 @@ msgid ""
 "\n"
 "--Making a 3d line with 3 3-d points\n"
 "SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),\n"
-"                                ST_MakePoint(3,4,5), ST_MakePoint"
-"(6,6,6)]));\n"
+"                                ST_MakePoint(3,4,5), "
+"ST_MakePoint(6,6,6)]));\n"
 "                st_asewkt\n"
 "-------------------------\n"
 "LINESTRING(1 2 3,3 4 5,6 6 6)"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1067
+#: reference_constructor.xml:1232
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
@@ -1865,13 +2163,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1074
+#: reference_constructor.xml:1239
 #, no-c-format
 msgid "ST_MakeEnvelope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1076
+#: reference_constructor.xml:1241
 #, no-c-format
 msgid ""
 "Creates a rectangular Polygon formed from the given minimums and maximums. "
@@ -1879,7 +2177,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1082
+#: reference_constructor.xml:1247
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> "
@@ -1892,7 +2190,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1096
+#: reference_constructor.xml:1261
 #, no-c-format
 msgid ""
 "Creates a rectangular Polygon formed from the minima and maxima. by the "
@@ -1901,13 +2199,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1099
+#: reference_constructor.xml:1264
 #, no-c-format
 msgid "Availability: 1.5"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1100
+#: reference_constructor.xml:1265
 #, no-c-format
 msgid ""
 "Enhanced: 2.0: Ability to specify an envelope without specifying an SRID was "
@@ -1915,13 +2213,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1105
+#: reference_constructor.xml:1270
 #, no-c-format
 msgid "Example: Building a bounding box polygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1106
+#: reference_constructor.xml:1271
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
@@ -1932,19 +2230,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1110
+#: reference_constructor.xml:1275
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1116
+#: reference_constructor.xml:1281
 #, no-c-format
 msgid "ST_MakePolygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1118
+#: reference_constructor.xml:1283
 #, no-c-format
 msgid ""
 "Creates a Polygon formed by the given shell. Input geometries must be closed "
@@ -1952,7 +2250,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1124
+#: reference_constructor.xml:1289
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
@@ -1960,7 +2258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1130
+#: reference_constructor.xml:1295
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
@@ -1970,7 +2268,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1141
+#: reference_constructor.xml:1306
 #, no-c-format
 msgid ""
 "Creates a Polygon formed by the given shell. Input geometries must be closed "
@@ -1978,13 +2276,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1143
+#: reference_constructor.xml:1308
 #, no-c-format
 msgid "Variant 1: takes one closed linestring."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1144
+#: reference_constructor.xml:1309
 #, no-c-format
 msgid ""
 "Variant 2: Creates a Polygon formed by the given shell and array of holes. "
@@ -1993,7 +2291,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1148
+#: reference_constructor.xml:1313
 #, no-c-format
 msgid ""
 "This function will not accept a MULTILINESTRING. Use <xref linkend="
@@ -2001,13 +2299,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1155
+#: reference_constructor.xml:1320
 #, no-c-format
 msgid "Examples: Single closed LINESTRING"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1156
+#: reference_constructor.xml:1321
 #, no-c-format
 msgid ""
 "--2d line\n"
@@ -2039,19 +2337,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1159
+#: reference_constructor.xml:1324
 #, no-c-format
 msgid "Examples: Outter shell with inner shells"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1161
+#: reference_constructor.xml:1326
 #, no-c-format
 msgid "Build a donut with an ant hole"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1162
+#: reference_constructor.xml:1327
 #, no-c-format
 msgid ""
 "SELECT ST_MakePolygon(\n"
@@ -2066,7 +2364,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1163
+#: reference_constructor.xml:1328
 #, no-c-format
 msgid ""
 "Build province boundaries with holes representing lakes in the province from "
@@ -2075,7 +2373,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1167
+#: reference_constructor.xml:1332
 #, no-c-format
 msgid ""
 "The use of CASE because feeding a null array into ST_MakePolygon results in "
@@ -2083,7 +2381,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1169
+#: reference_constructor.xml:1334
 #, no-c-format
 msgid ""
 "the use of left join to guarantee we get all provinces back even if they "
@@ -2091,7 +2389,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1170
+#: reference_constructor.xml:1335
 #, no-c-format
 msgid ""
 "SELECT p.gid, p.province_name,\n"
@@ -2101,8 +2399,8 @@ msgid ""
 "ST_Accum(w.the_geom)) END\n"
 "        FROM\n"
 "                provinces p LEFT JOIN waterlines w\n"
-"                        ON (ST_Within(w.the_geom, p.the_geom) AND ST_IsClosed"
-"(w.the_geom))\n"
+"                        ON (ST_Within(w.the_geom, p.the_geom) AND "
+"ST_IsClosed(w.the_geom))\n"
 "        GROUP BY p.gid, p.province_name, p.the_geom;\n"
 "\n"
 "        --Same example above but utilizing a correlated subquery\n"
@@ -2126,7 +2424,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1174
+#: reference_constructor.xml:1339
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, "
@@ -2135,19 +2433,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1187
+#: reference_constructor.xml:1352
 #, no-c-format
 msgid "ST_MakePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1189
+#: reference_constructor.xml:1354
 #, no-c-format
 msgid "Creates a 2D,3DZ or 4D point geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1194
+#: reference_constructor.xml:1359
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
@@ -2156,7 +2454,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1201
+#: reference_constructor.xml:1366
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
@@ -2166,7 +2464,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1209
+#: reference_constructor.xml:1374
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
@@ -2177,7 +2475,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1222
+#: reference_constructor.xml:1387
 #, no-c-format
 msgid ""
 "Creates a 2D,3DZ or 4D point geometry (geometry with measure). "
@@ -2188,20 +2486,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1228
+#: reference_constructor.xml:1393
 #, no-c-format
 msgid "Note x is longitude and y is latitude"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1229
+#: reference_constructor.xml:1394
 #, no-c-format
 msgid ""
 "Use <xref linkend=\"ST_MakePointM\"/> if you need to make a point with x,y,m."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1236
+#: reference_constructor.xml:1401
 #, no-c-format
 msgid ""
 "--Return point with unknown SRID\n"
@@ -2221,7 +2519,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1240
+#: reference_constructor.xml:1405
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
@@ -2229,19 +2527,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1246
+#: reference_constructor.xml:1411
 #, no-c-format
 msgid "ST_MakePointM"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1248
+#: reference_constructor.xml:1413
 #, no-c-format
 msgid "Creates a point geometry with an x y and m coordinate."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1253
+#: reference_constructor.xml:1418
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePointM</function></funcdef> "
@@ -2251,19 +2549,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1265
+#: reference_constructor.xml:1430
 #, no-c-format
 msgid "Creates a point with x, y and measure coordinates."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1266
+#: reference_constructor.xml:1431
 #, no-c-format
 msgid "Note x is longitude and y is latitude."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1271
+#: reference_constructor.xml:1436
 #, no-c-format
 msgid ""
 "We use ST_AsEWKT in these examples to show the text representation instead "
@@ -2271,7 +2569,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1273
+#: reference_constructor.xml:1438
 #, no-c-format
 msgid ""
 "--Return EWKT representation of point with unknown SRID\n"
@@ -2302,25 +2600,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1277
+#: reference_constructor.xml:1442
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1283
+#: reference_constructor.xml:1448
 #, no-c-format
 msgid "ST_MLineFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1285
+#: reference_constructor.xml:1450
 #, no-c-format
 msgid "Return a specified ST_MultiLineString value from WKT representation."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1289
+#: reference_constructor.xml:1454
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></"
@@ -2332,21 +2630,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1307
+#: reference_constructor.xml:1472
 #, no-c-format
 msgid ""
 "Makes a Geometry from Well-Known-Text (WKT) with the given SRID. If SRID is "
-"not give, it defaults to -1."
+"not give, it defaults to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1313
+#: reference_constructor.xml:1478
 #, no-c-format
 msgid "Returns null if the WKT is not a MULTILINESTRING"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1316 reference_constructor.xml:1377
+#: reference_constructor.xml:1481 reference_constructor.xml:1542
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are points, don't use "
@@ -2355,33 +2653,33 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1322
+#: reference_constructor.xml:1487
 #, no-c-format
 msgid "&sqlmm_compliant;SQL-MM 3: 9.4.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1330
+#: reference_constructor.xml:1495
 #, no-c-format
 msgid "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1343
+#: reference_constructor.xml:1508
 #, no-c-format
 msgid "ST_MPointFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1345 reference_constructor.xml:1675
+#: reference_constructor.xml:1510 reference_constructor.xml:1880
 #, no-c-format
 msgid ""
 "<refpurpose>Makes a Geometry from WKT with the given SRID. If SRID is not "
-"give, it defaults to -1.</refpurpose>"
+"give, it defaults to 0.</refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1350
+#: reference_constructor.xml:1515
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></"
@@ -2393,33 +2691,33 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1368
+#: reference_constructor.xml:1533
 #, no-c-format
 msgid ""
 "<para>Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
-"defaults to -1.</para>"
+"defaults to 0.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1374
+#: reference_constructor.xml:1539
 #, no-c-format
 msgid "Returns null if the WKT is not a MULTIPOINT"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1382
+#: reference_constructor.xml:1547
 #, no-c-format
 msgid "&sfs_compliant; 3.2.6.2"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1383
+#: reference_constructor.xml:1548
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.2.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1391
+#: reference_constructor.xml:1556
 #, no-c-format
 msgid ""
 "SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
@@ -2428,21 +2726,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1404
+#: reference_constructor.xml:1569
 #, no-c-format
 msgid "ST_MPolyFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1406
+#: reference_constructor.xml:1571
 #, no-c-format
 msgid ""
 "Makes a MultiPolygon Geometry from WKT with the given SRID. If SRID is not "
-"give, it defaults to -1."
+"give, it defaults to 0."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1411
+#: reference_constructor.xml:1576
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></"
@@ -2454,21 +2752,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1429
+#: reference_constructor.xml:1594
 #, no-c-format
 msgid ""
 "Makes a MultiPolygon from WKT with the given SRID. If SRID is not give, it "
-"defaults to -1."
+"defaults to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1435
+#: reference_constructor.xml:1600
 #, no-c-format
 msgid "Throws an error if the WKT is not a MULTIPOLYGON"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1438
+#: reference_constructor.xml:1603
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are multipolygons, don't "
@@ -2477,13 +2775,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1444
+#: reference_constructor.xml:1609
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.6.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1452
+#: reference_constructor.xml:1617
 #, no-c-format
 msgid ""
 "SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),"
@@ -2506,13 +2804,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1465
+#: reference_constructor.xml:1630
 #, no-c-format
 msgid "ST_Point"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1467
+#: reference_constructor.xml:1632
 #, no-c-format
 msgid ""
 "Returns an ST_Point with the given coordinate values. OGC alias for "
@@ -2520,7 +2818,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1472
+#: reference_constructor.xml:1637
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Point</function></funcdef> "
@@ -2529,7 +2827,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1483
+#: reference_constructor.xml:1648
 #, no-c-format
 msgid ""
 "Returns an ST_Point with the given coordinate values. MM compliant alias for "
@@ -2537,31 +2835,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1486
+#: reference_constructor.xml:1651
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.2"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1492
+#: reference_constructor.xml:1657
 #, no-c-format
 msgid "Examples: Geometry"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1494
+#: reference_constructor.xml:1659
 #, no-c-format
 msgid "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1498
+#: reference_constructor.xml:1663
 #, no-c-format
 msgid "Examples: Geography"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1500
+#: reference_constructor.xml:1665
 #, no-c-format
 msgid ""
 "SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) "
@@ -2569,7 +2867,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1501
+#: reference_constructor.xml:1666
 #, no-c-format
 msgid ""
 "-- the :: is PostgreSQL short-hand for casting.\n"
@@ -2578,7 +2876,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1503
+#: reference_constructor.xml:1668
 #, no-c-format
 msgid ""
 "--If your point coordinates are in a different spatial reference from WGS-84 "
@@ -2590,7 +2888,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1510
+#: reference_constructor.xml:1675
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -2598,13 +2896,88 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1516
+#: reference_constructor.xml:1681
+#, no-c-format
+msgid "ST_PointFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1683
+#, no-c-format
+msgid "Return a point from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1688
+#, no-c-format
+msgid ""
+"<funcdef>point <function>ST_PointFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1699
+#, no-c-format
+msgid ""
+"Return a point from a GeoHash string. The point represents the center point "
+"of the GeoHash."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1701
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_PointFromGeoHash "
+"returns a point based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1703
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_PointFromGeoHash will use "
+"that many characters from the GeoHash to create the point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1710
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"          st_astext\n"
+"------------------------------\n"
+" POINT(-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"             st_astext\n"
+"-----------------------------------\n"
+" POINT(-115.13671875 36.123046875)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                 st_astext\n"
+"-------------------------------------------\n"
+" POINT(-115.172815918922 36.1146435141563)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1715
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_GeomFromGeoHash"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1721
 #, no-c-format
 msgid "ST_PointFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1517
+#: reference_constructor.xml:1722
 #, no-c-format
 msgid ""
 "Makes a point Geometry from WKT with the given SRID. If SRID is not given, "
@@ -2612,7 +2985,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1521
+#: reference_constructor.xml:1726
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></"
@@ -2624,17 +2997,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1537
+#: reference_constructor.xml:1742
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry point object from the OGC Well-Known text "
-"representation. If SRID is not give, it defaults to unknown (currently -1). "
+"representation. If SRID is not give, it defaults to unknown (currently 0). "
 "If geometry is not a WKT point representation, returns null. If completely "
 "invalid WKT, then throws an error."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1543
+#: reference_constructor.xml:1748
 #, no-c-format
 msgid ""
 "There are 2 variants of ST_PointFromText function, the first takes no SRID "
@@ -2645,7 +3018,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1550
+#: reference_constructor.xml:1755
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are points, don't use "
@@ -2657,13 +3030,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1555
+#: reference_constructor.xml:1760
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.8"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1560
+#: reference_constructor.xml:1765
 #, no-c-format
 msgid ""
 "SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
@@ -2671,7 +3044,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1564
+#: reference_constructor.xml:1769
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref "
@@ -2679,19 +3052,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1570
+#: reference_constructor.xml:1775
 #, no-c-format
 msgid "ST_PointFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1572
+#: reference_constructor.xml:1777
 #, no-c-format
 msgid "Makes a geometry from WKB with the given SRID"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1593
+#: reference_constructor.xml:1798
 #, no-c-format
 msgid ""
 "The <varname>ST_PointFromWKB</varname> function, takes a well-known binary "
@@ -2702,28 +3075,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1599
+#: reference_constructor.xml:1804
 #, no-c-format
 msgid ""
-"If an SRID is not specified, it defaults to -1. <varname>NULL</varname> is "
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
 "returned if the input <varname>bytea</varname> does not represent a "
 "<varname>POINT</varname> geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1602
+#: reference_constructor.xml:1807
 #, no-c-format
 msgid "&sfs_compliant; s3.2.7.2"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1603
+#: reference_constructor.xml:1808
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.9"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1611
+#: reference_constructor.xml:1816
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -2750,13 +3123,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1624
+#: reference_constructor.xml:1829
 #, no-c-format
 msgid "ST_Polygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1626
+#: reference_constructor.xml:1831
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a polygon built from the specified linestring and SRID.</"
@@ -2764,7 +3137,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1631
+#: reference_constructor.xml:1836
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Polygon</function></funcdef> "
@@ -2774,14 +3147,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1642
+#: reference_constructor.xml:1847
 #, no-c-format
 msgid ""
 "<para>Returns a polygon built from the specified linestring and SRID.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1646
+#: reference_constructor.xml:1851
 #, no-c-format
 msgid ""
 "ST_Polygon is similar to first version oST_MakePolygon except it also sets "
@@ -2791,13 +3164,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1651
+#: reference_constructor.xml:1856
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.3.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1660
+#: reference_constructor.xml:1865
 #, no-c-format
 msgid ""
 "--a 2d polygon\n"
@@ -2816,7 +3189,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1667
+#: reference_constructor.xml:1872
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
@@ -2825,13 +3198,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1673
+#: reference_constructor.xml:1878
 #, no-c-format
 msgid "ST_PolygonFromText"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1680
+#: reference_constructor.xml:1885
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></"
@@ -2843,15 +3216,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1696
+#: reference_constructor.xml:1901
 #, no-c-format
 msgid ""
 "Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
-"defaults to -1. Returns null if WKT is not a polygon."
+"defaults to 0. Returns null if WKT is not a polygon."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1703
+#: reference_constructor.xml:1908
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are polygons, don't use "
@@ -2860,13 +3233,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1706
+#: reference_constructor.xml:1911
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.3.6"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1712
+#: reference_constructor.xml:1917
 #, no-c-format
 msgid ""
 "SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 "
@@ -2886,13 +3259,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1725
+#: reference_constructor.xml:1930
 #, no-c-format
 msgid "ST_WKBToSQL"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1726
+#: reference_constructor.xml:1931
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Well-Known Binary representation "
@@ -2900,7 +3273,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1730
+#: reference_constructor.xml:1935
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> "
@@ -2908,19 +3281,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1738
+#: reference_constructor.xml:1943
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.36"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1748
+#: reference_constructor.xml:1953
 #, no-c-format
 msgid "ST_WKTToSQL"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1753
+#: reference_constructor.xml:1958
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> "
@@ -2928,7 +3301,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1761
+#: reference_constructor.xml:1966
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.34"
 msgstr ""
diff --git a/doc/po/it_IT/reference_editor.xml.po b/doc/po/it_IT/reference_editor.xml.po
index cebc1c0..b77c445 100644
--- a/doc/po/it_IT/reference_editor.xml.po
+++ b/doc/po/it_IT/reference_editor.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -55,16 +55,17 @@ msgstr ""
 
 #. Tag: title
 #: reference_editor.xml:30 reference_editor.xml:89 reference_editor.xml:148
-#: reference_editor.xml:193 reference_editor.xml:235 reference_editor.xml:277
-#: reference_editor.xml:317 reference_editor.xml:357 reference_editor.xml:407
-#: reference_editor.xml:453 reference_editor.xml:495 reference_editor.xml:543
-#: reference_editor.xml:582 reference_editor.xml:616 reference_editor.xml:649
-#: reference_editor.xml:693 reference_editor.xml:742 reference_editor.xml:789
-#: reference_editor.xml:838 reference_editor.xml:902 reference_editor.xml:962
-#: reference_editor.xml:1004 reference_editor.xml:1047
-#: reference_editor.xml:1124 reference_editor.xml:1202
-#: reference_editor.xml:1338 reference_editor.xml:1421
-#: reference_editor.xml:1475
+#: reference_editor.xml:194 reference_editor.xml:237 reference_editor.xml:280
+#: reference_editor.xml:321 reference_editor.xml:362 reference_editor.xml:416
+#: reference_editor.xml:445 reference_editor.xml:491 reference_editor.xml:536
+#: reference_editor.xml:578 reference_editor.xml:629 reference_editor.xml:672
+#: reference_editor.xml:706 reference_editor.xml:739 reference_editor.xml:783
+#: reference_editor.xml:832 reference_editor.xml:879 reference_editor.xml:928
+#: reference_editor.xml:992 reference_editor.xml:1052
+#: reference_editor.xml:1094 reference_editor.xml:1137
+#: reference_editor.xml:1214 reference_editor.xml:1292
+#: reference_editor.xml:1428 reference_editor.xml:1511
+#: reference_editor.xml:1565
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -78,36 +79,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:35 reference_editor.xml:460 reference_editor.xml:619
-#: reference_editor.xml:1009
+#: reference_editor.xml:35 reference_editor.xml:543 reference_editor.xml:709
+#: reference_editor.xml:1099
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:158
-#: reference_editor.xml:200 reference_editor.xml:241 reference_editor.xml:321
-#: reference_editor.xml:366 reference_editor.xml:416 reference_editor.xml:620
-#: reference_editor.xml:702 reference_editor.xml:752 reference_editor.xml:800
-#: reference_editor.xml:851 reference_editor.xml:917 reference_editor.xml:1011
-#: reference_editor.xml:1155 reference_editor.xml:1429
-#: reference_editor.xml:1488
+#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:159
+#: reference_editor.xml:202 reference_editor.xml:244 reference_editor.xml:326
+#: reference_editor.xml:372 reference_editor.xml:421 reference_editor.xml:454
+#: reference_editor.xml:500 reference_editor.xml:710 reference_editor.xml:792
+#: reference_editor.xml:842 reference_editor.xml:890 reference_editor.xml:941
+#: reference_editor.xml:1007 reference_editor.xml:1101
+#: reference_editor.xml:1245 reference_editor.xml:1519
+#: reference_editor.xml:1578
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:163
-#: reference_editor.xml:205 reference_editor.xml:247 reference_editor.xml:287
-#: reference_editor.xml:327 reference_editor.xml:372 reference_editor.xml:421
-#: reference_editor.xml:465 reference_editor.xml:514 reference_editor.xml:554
-#: reference_editor.xml:590 reference_editor.xml:624 reference_editor.xml:655
-#: reference_editor.xml:711 reference_editor.xml:758 reference_editor.xml:807
-#: reference_editor.xml:859 reference_editor.xml:924 reference_editor.xml:976
-#: reference_editor.xml:1015 reference_editor.xml:1063
-#: reference_editor.xml:1160 reference_editor.xml:1236
-#: reference_editor.xml:1366 reference_editor.xml:1434
-#: reference_editor.xml:1494
+#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:164
+#: reference_editor.xml:207 reference_editor.xml:250 reference_editor.xml:291
+#: reference_editor.xml:332 reference_editor.xml:378 reference_editor.xml:459
+#: reference_editor.xml:506 reference_editor.xml:548 reference_editor.xml:600
+#: reference_editor.xml:644 reference_editor.xml:680 reference_editor.xml:714
+#: reference_editor.xml:745 reference_editor.xml:801 reference_editor.xml:848
+#: reference_editor.xml:897 reference_editor.xml:949 reference_editor.xml:1014
+#: reference_editor.xml:1066 reference_editor.xml:1105
+#: reference_editor.xml:1153 reference_editor.xml:1250
+#: reference_editor.xml:1326 reference_editor.xml:1456
+#: reference_editor.xml:1524 reference_editor.xml:1584
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -121,8 +123,8 @@ msgid ""
 "the line string\n"
 "                --only for those that are not closed\n"
 "                UPDATE sometable\n"
-"                SET the_geom = ST_AddPoint(the_geom, ST_StartPoint"
-"(the_geom))\n"
+"                SET the_geom = ST_AddPoint(the_geom, "
+"ST_StartPoint(the_geom))\n"
 "                FROM sometable\n"
 "                WHERE ST_IsClosed(the_geom) = false;\n"
 "\n"
@@ -137,16 +139,17 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:170
-#: reference_editor.xml:212 reference_editor.xml:254 reference_editor.xml:294
-#: reference_editor.xml:334 reference_editor.xml:381 reference_editor.xml:427
-#: reference_editor.xml:470 reference_editor.xml:519 reference_editor.xml:559
-#: reference_editor.xml:595 reference_editor.xml:628 reference_editor.xml:718
-#: reference_editor.xml:765 reference_editor.xml:814 reference_editor.xml:866
-#: reference_editor.xml:931 reference_editor.xml:981 reference_editor.xml:1019
-#: reference_editor.xml:1071 reference_editor.xml:1167
-#: reference_editor.xml:1311 reference_editor.xml:1388
-#: reference_editor.xml:1447 reference_editor.xml:1501
+#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:171
+#: reference_editor.xml:214 reference_editor.xml:257 reference_editor.xml:298
+#: reference_editor.xml:339 reference_editor.xml:387 reference_editor.xml:465
+#: reference_editor.xml:512 reference_editor.xml:553 reference_editor.xml:605
+#: reference_editor.xml:649 reference_editor.xml:685 reference_editor.xml:718
+#: reference_editor.xml:808 reference_editor.xml:855 reference_editor.xml:904
+#: reference_editor.xml:956 reference_editor.xml:1021
+#: reference_editor.xml:1071 reference_editor.xml:1109
+#: reference_editor.xml:1161 reference_editor.xml:1257
+#: reference_editor.xml:1401 reference_editor.xml:1478
+#: reference_editor.xml:1537 reference_editor.xml:1591
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -241,8 +244,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:105 reference_editor.xml:699 reference_editor.xml:749
-#: reference_editor.xml:797 reference_editor.xml:846 reference_editor.xml:915
+#: reference_editor.xml:105 reference_editor.xml:789 reference_editor.xml:839
+#: reference_editor.xml:887 reference_editor.xml:936 reference_editor.xml:1005
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -256,9 +259,9 @@ msgid "Availability: 1.1.2. Name changed from Affine to ST_Affine in 1.2.2"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:107 reference_editor.xml:849 reference_editor.xml:911
-#: reference_editor.xml:1356 reference_editor.xml:1426
-#: reference_editor.xml:1484
+#: reference_editor.xml:107 reference_editor.xml:939 reference_editor.xml:1001
+#: reference_editor.xml:1446 reference_editor.xml:1516
+#: reference_editor.xml:1574
 #, no-c-format
 msgid ""
 "Prior to 1.3.4, this function crashes if used with geometries that contain "
@@ -266,28 +269,30 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:109 reference_editor.xml:157 reference_editor.xml:198
-#: reference_editor.xml:240 reference_editor.xml:365 reference_editor.xml:417
-#: reference_editor.xml:704 reference_editor.xml:751 reference_editor.xml:799
-#: reference_editor.xml:853 reference_editor.xml:916 reference_editor.xml:1361
+#: reference_editor.xml:109 reference_editor.xml:158 reference_editor.xml:200
+#: reference_editor.xml:243 reference_editor.xml:371 reference_editor.xml:418
+#: reference_editor.xml:455 reference_editor.xml:794 reference_editor.xml:841
+#: reference_editor.xml:889 reference_editor.xml:943 reference_editor.xml:1006
+#: reference_editor.xml:1451
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:110 reference_editor.xml:705 reference_editor.xml:753
-#: reference_editor.xml:801 reference_editor.xml:854 reference_editor.xml:919
+#: reference_editor.xml:110 reference_editor.xml:419 reference_editor.xml:795
+#: reference_editor.xml:843 reference_editor.xml:891 reference_editor.xml:944
+#: reference_editor.xml:1009
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:112 reference_editor.xml:156 reference_editor.xml:199
-#: reference_editor.xml:242 reference_editor.xml:282 reference_editor.xml:322
-#: reference_editor.xml:367 reference_editor.xml:703 reference_editor.xml:852
-#: reference_editor.xml:918 reference_editor.xml:1059
-#: reference_editor.xml:1360 reference_editor.xml:1430
-#: reference_editor.xml:1489
+#: reference_editor.xml:112 reference_editor.xml:157 reference_editor.xml:201
+#: reference_editor.xml:245 reference_editor.xml:286 reference_editor.xml:327
+#: reference_editor.xml:373 reference_editor.xml:420 reference_editor.xml:502
+#: reference_editor.xml:793 reference_editor.xml:942 reference_editor.xml:1008
+#: reference_editor.xml:1149 reference_editor.xml:1450
+#: reference_editor.xml:1520 reference_editor.xml:1579
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
@@ -309,8 +314,8 @@ msgid ""
 "(1 row)\n"
 "\n"
 "--Rotate a 3d line 180 degrees in both the x and z axis\n"
-"SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), cos"
-"(pi()), -sin(pi()), 0, sin(pi()), cos(pi()), 0, 0, 0))\n"
+"SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), "
+"cos(pi()), -sin(pi()), 0, sin(pi()), cos(pi()), 0, 0, 0))\n"
 "        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
 "the_geom) As foo;\n"
 "           st_asewkt\n"
@@ -330,7 +335,7 @@ msgstr ""
 #. Tag: refname
 #: reference_editor.xml:132
 #, no-c-format
-msgid "ST_Force_2D"
+msgid "ST_Force2D"
 msgstr ""
 
 #. Tag: refpurpose
@@ -345,7 +350,7 @@ msgstr ""
 #: reference_editor.xml:140
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_2D</function></funcdef> "
+"<funcdef>geometry <function>ST_Force2D</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
@@ -359,23 +364,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:155 reference_editor.xml:197 reference_editor.xml:239
-#: reference_editor.xml:362 reference_editor.xml:415 reference_editor.xml:1358
+#: reference_editor.xml:155 reference_editor.xml:198 reference_editor.xml:241
+#: reference_editor.xml:367 reference_editor.xml:453 reference_editor.xml:1448
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:156
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_2D."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:165
+#: reference_editor.xml:166
 #, no-c-format
 msgid ""
-"SELECT ST_AsEWKT(ST_Force_2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"SELECT ST_AsEWKT(ST_Force2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
 "5 2, 6 7 2, 5 6 2)')));\n"
 "                st_asewkt\n"
 "-------------------------------------\n"
 "CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"SELECT  ST_AsEWKT(ST_Force2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
 "2,1 3 2,1 1 2))'));\n"
 "\n"
 "                                  st_asewkt\n"
@@ -384,46 +395,53 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:178
+#: reference_editor.xml:179
 #, no-c-format
-msgid "ST_Force_3D"
+msgid "ST_Force3D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:180
+#: reference_editor.xml:181
 #, no-c-format
-msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ."
+msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force3DZ."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:185
+#: reference_editor.xml:186
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_3D</function></funcdef> "
+"<funcdef>geometry <function>ST_Force3D</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:195
+#: reference_editor.xml:196
 #, no-c-format
 msgid ""
 "Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ. If a "
 "geometry has no Z component, then a 0 Z coordinate is tacked on."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:199
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3D."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:207
+#: reference_editor.xml:209
 #, no-c-format
 msgid ""
 "--Nothing happens to an already 3D geometry\n"
-"                SELECT ST_AsEWKT(ST_Force_3D(ST_GeomFromEWKT('CIRCULARSTRING"
-"(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
+"                SELECT "
+"ST_AsEWKT(ST_Force3D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 "
+"7 2, 5 6 2)')));\n"
 "                                   st_asewkt\n"
 "-----------------------------------------------\n"
 " CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
 "\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"SELECT  ST_AsEWKT(ST_Force3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
 "1))'));\n"
 "\n"
 "                                                 st_asewkt\n"
@@ -432,54 +450,60 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:214
+#: reference_editor.xml:216
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
 "linkend=\"ST_Force_3DZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:220
+#: reference_editor.xml:222
 #, no-c-format
-msgid "ST_Force_3DZ"
+msgid "ST_Force3DZ"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:222
+#: reference_editor.xml:224
 #, no-c-format
-msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force_3D."
+msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force3D."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:227
+#: reference_editor.xml:229
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_3DZ</function></funcdef> "
+"<funcdef>geometry <function>ST_Force3DZ</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:237
+#: reference_editor.xml:239
 #, no-c-format
 msgid ""
-"Forces the geometries into XYZ mode. This is a synonym for ST_Force_3DZ. If "
-"a geometry has no Z component, then a 0 Z coordinate is tacked on."
+"Forces the geometries into XYZ mode. This is a synonym for ST_Force3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:242
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DZ."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:249
+#: reference_editor.xml:252
 #, no-c-format
 msgid ""
 "--Nothing happens to an already 3D geometry\n"
-"SELECT ST_AsEWKT(ST_Force_3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, "
-"4 5 2, 6 7 2, 5 6 2)')));\n"
+"SELECT ST_AsEWKT(ST_Force3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
 "                                   st_asewkt\n"
 "-----------------------------------------------\n"
 " CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
 "\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"SELECT  ST_AsEWKT(ST_Force3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
 "1))'));\n"
 "\n"
 "                                                 st_asewkt\n"
@@ -488,54 +512,60 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:256 reference_editor.xml:336
+#: reference_editor.xml:259 reference_editor.xml:341
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
 "linkend=\"ST_Force_3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:262
+#: reference_editor.xml:265
 #, no-c-format
-msgid "ST_Force_3DM"
+msgid "ST_Force3DM"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:264
+#: reference_editor.xml:267
 #, no-c-format
 msgid "Forces the geometries into XYM mode."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:269
+#: reference_editor.xml:272
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_3DM</function></funcdef> "
+"<funcdef>geometry <function>ST_Force3DM</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:279
+#: reference_editor.xml:282
 #, no-c-format
 msgid ""
 "Forces the geometries into XYM mode. If a geometry has no M component, then "
 "a 0 M coordinate is tacked on. If it has a Z component, then Z is removed"
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:285
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DM."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:289
+#: reference_editor.xml:293
 #, no-c-format
 msgid ""
 "--Nothing happens to an already 3D geometry\n"
-"SELECT ST_AsEWKT(ST_Force_3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, "
-"4 5 2, 6 7 2, 5 6 2)')));\n"
+"SELECT ST_AsEWKT(ST_Force3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
 "                                   st_asewkt\n"
 "------------------------------------------------\n"
 " CIRCULARSTRINGM(1 1 0,2 3 0,4 5 0,6 7 0,5 6 0)\n"
 "\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 "
+"SELECT  ST_AsEWKT(ST_Force3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 "
 "1,1 3 1,1 1 1))'));\n"
 "\n"
 "                                                  st_asewkt\n"
@@ -544,47 +574,53 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:296 reference_editor.xml:383
+#: reference_editor.xml:300 reference_editor.xml:389
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
 "linkend=\"ST_Force_3D\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:302
+#: reference_editor.xml:306
 #, no-c-format
-msgid "ST_Force_4D"
+msgid "ST_Force4D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:304
+#: reference_editor.xml:308
 #, no-c-format
 msgid "Forces the geometries into XYZM mode."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:309
+#: reference_editor.xml:313
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_4D</function></funcdef> "
+"<funcdef>geometry <function>ST_Force4D</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:319
+#: reference_editor.xml:323
 #, no-c-format
 msgid ""
 "Forces the geometries into XYZM mode. 0 is tacked on for missing Z and M "
 "dimensions."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:325
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_4D."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:329
+#: reference_editor.xml:334
 #, no-c-format
 msgid ""
 "--Nothing happens to an already 3D geometry\n"
-"SELECT ST_AsEWKT(ST_Force_4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"SELECT ST_AsEWKT(ST_Force4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
 "5 2, 6 7 2, 5 6 2)')));\n"
 "                                                st_asewkt\n"
 "---------------------------------------------------------\n"
@@ -592,7 +628,7 @@ msgid ""
 "\n"
 "\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 "
+"SELECT  ST_AsEWKT(ST_Force4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 "
 "1 1,3 1 1,1 3 1,1 1 1))'));\n"
 "\n"
 "                                                                          st_asewkt\n"
@@ -602,27 +638,27 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:342
+#: reference_editor.xml:347
 #, no-c-format
-msgid "ST_Force_Collection"
+msgid "ST_ForceCollection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:344
+#: reference_editor.xml:349
 #, no-c-format
 msgid "Converts the geometry into a GEOMETRYCOLLECTION."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:349
+#: reference_editor.xml:354
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_Collection</function></funcdef> "
+"<funcdef>geometry <function>ST_ForceCollection</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:359
+#: reference_editor.xml:364
 #, no-c-format
 msgid ""
 "Converts the geometry into a GEOMETRYCOLLECTION. This is useful for "
@@ -630,19 +666,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:363
+#: reference_editor.xml:368
 #, no-c-format
 msgid ""
 "Availability: 1.2.2, prior to 1.3.4 this function will crash with Curves. "
 "This is fixed in 1.3.4+"
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:369
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_Collection."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:374
+#: reference_editor.xml:380
 #, no-c-format
 msgid ""
-"SELECT  ST_AsEWKT(ST_Force_Collection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 "
-"1 1,3 1 1,1 3 1,1 1 1))'));\n"
+"SELECT  ST_AsEWKT(ST_ForceCollection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 "
+"1,3 1 1,1 3 1,1 1 1))'));\n"
 "\n"
 "                                                                   st_asewkt\n"
 "----------------------------------------------------------------------------------\n"
@@ -650,7 +692,7 @@ msgid ""
 "1)))\n"
 "\n"
 "\n"
-"  SELECT ST_AsText(ST_Force_Collection('CIRCULARSTRING(220227 150406,2220227 "
+"  SELECT ST_AsText(ST_ForceCollection('CIRCULARSTRING(220227 150406,2220227 "
 "150407,220227 150406)'));\n"
 "                                                                   st_astext\n"
 "--------------------------------------------------------------------------------\n"
@@ -660,12 +702,12 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:376
+#: reference_editor.xml:382
 #, no-c-format
 msgid ""
 "-- POLYHEDRAL example --\n"
-"SELECT ST_AsEWKT(ST_Force_Collection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 "
-"1,0 1 0,0 0 0)),\n"
+"SELECT ST_AsEWKT(ST_ForceCollection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 "
+"1 0,0 0 0)),\n"
 " ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
 " ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
 " ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
@@ -685,13 +727,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:390
+#: reference_editor.xml:396
+#, no-c-format
+msgid "ST_ForceSFS"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:398
+#, no-c-format
+msgid "Forces the geometries to use SFS 1.1 geometry types only."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:402
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_ForceSFS</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_ForceSFS</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>version</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:428
 #, no-c-format
 msgid "ST_ForceRHR"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:392
+#: reference_editor.xml:430
 #, no-c-format
 msgid ""
 "Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
@@ -699,7 +765,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:398
+#: reference_editor.xml:436
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_ForceRHR</function></funcdef> "
@@ -707,7 +773,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:409
+#: reference_editor.xml:447
 #, no-c-format
 msgid ""
 "Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
@@ -718,7 +784,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:423
+#: reference_editor.xml:461
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(\n"
@@ -734,26 +800,78 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:429
+#: reference_editor.xml:467
 #, no-c-format
 msgid ", <xref linkend=\"ST_Polygonize\"/>, <xref linkend=\"ST_Reverse\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:437
+#: reference_editor.xml:475
+#, no-c-format
+msgid "ST_ForceCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:477
+#, no-c-format
+msgid "Upcasts a geometry into its curved type, if applicable."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:482
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCurve</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:493
+#, no-c-format
+msgid ""
+"Turns a geometry into its curved representation, if applicable: lines become "
+"compoundcurves, multilines become multicurves polygons become curvepolygons "
+"multipolygons become multisurfaces. If the geometry input is already a "
+"curved representation returns back same as input."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:499
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:508
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_ForceCurve(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'::geometry\n"
+"  )\n"
+");\n"
+"                              st_astext\n"
+"----------------------------------------------------------------------\n"
+" CURVEPOLYGON Z ((0 0 2,5 0 2,0 5 2,0 0 2),(1 1 2,1 3 2,3 1 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:520
 #, no-c-format
 msgid "ST_LineMerge"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:439
+#: reference_editor.xml:522
 #, no-c-format
 msgid ""
 "Returns a (set of) LineString(s) formed by sewing together a MULTILINESTRING."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:445
+#: reference_editor.xml:528
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LineMerge</function></funcdef> "
@@ -762,7 +880,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:455
+#: reference_editor.xml:538
 #, no-c-format
 msgid ""
 "Returns a (set of) LineString(s) formed by sewing together the constituent "
@@ -770,7 +888,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:457
+#: reference_editor.xml:540
 #, no-c-format
 msgid ""
 "Only use with MULTILINESTRING/LINESTRINGs. If you feed a polygon or geometry "
@@ -778,13 +896,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:461
+#: reference_editor.xml:544
 #, no-c-format
 msgid "requires GEOS >= 2.1.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:467
+#: reference_editor.xml:550
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_LineMerge(\n"
@@ -809,19 +927,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:471
+#: reference_editor.xml:554
 #, no-c-format
-msgid ", <xref linkend=\"ST_Line_Substring\"/>"
+msgid ", <xref linkend=\"ST_LineSubstring\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:477
+#: reference_editor.xml:560
 #, no-c-format
 msgid "ST_CollectionExtract"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:479
+#: reference_editor.xml:562
 #, no-c-format
 msgid ""
 "Given a (multi)geometry, returns a (multi)geometry consisting only of "
@@ -829,7 +947,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:486
+#: reference_editor.xml:569
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_CollectionExtract</function></funcdef> "
@@ -839,7 +957,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:497
+#: reference_editor.xml:580
 #, no-c-format
 msgid ""
 "Given a (multi)geometry, returns a (multi)geometry consisting only of "
@@ -850,13 +968,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:503
+#: reference_editor.xml:586
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:505
+#: reference_editor.xml:588
 #, no-c-format
 msgid ""
 "Prior to 1.5.3 this function returned non-collection inputs untouched, no "
@@ -865,20 +983,31 @@ msgid ""
 "return."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:594 reference_editor.xml:635
+#, no-c-format
+msgid ""
+"When specifying 3 == POLYGON a multipolygon is returned even when the edges "
+"are shared. This results in an invalid multipolygon for many cases such as "
+"applying this function on an <xref linkend=\"ST_Split\"/> result."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:516
+#: reference_editor.xml:602
 #, no-c-format
 msgid ""
 "-- Constants: 1 == POINT, 2 == LINESTRING, 3 == POLYGON\n"
-"SELECT ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION"
-"(GEOMETRYCOLLECTION(POINT(0 0)))'),1));\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 "
+"0)))'),1));\n"
 "st_astext\n"
 "---------------\n"
 "MULTIPOINT(0 0)\n"
 "(1 row)\n"
 "\n"
-"SELECT ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION"
-"(GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1)),LINESTRING(2 2, 3 3))'),2));\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(LINESTRING(0 "
+"0, 1 1)),LINESTRING(2 2, 3 3))'),2));\n"
 "st_astext\n"
 "---------------\n"
 "MULTILINESTRING((0 0, 1 1), (2 2, 3 3))\n"
@@ -886,20 +1015,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:520
+#: reference_editor.xml:606
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_CollectionHomogenize\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:526
+#: reference_editor.xml:612
 #, no-c-format
 msgid "ST_CollectionHomogenize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:528
+#: reference_editor.xml:614
 #, no-c-format
 msgid ""
 "Given a geometry collection, returns the \"simplest\" representation of the "
@@ -907,7 +1036,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:535
+#: reference_editor.xml:621
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_CollectionHomogenize</function></funcdef> "
@@ -915,7 +1044,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:545
+#: reference_editor.xml:631
 #, no-c-format
 msgid ""
 "Given a geometry collection, returns the \"simplest\" representation of the "
@@ -924,13 +1053,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:549
+#: reference_editor.xml:639
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:556
+#: reference_editor.xml:646
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 "
@@ -951,19 +1080,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:560
+#: reference_editor.xml:650
 #, no-c-format
 msgid ", <xref linkend=\"ST_CollectionExtract\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:566
+#: reference_editor.xml:656
 #, no-c-format
 msgid "ST_Multi"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:568
+#: reference_editor.xml:658
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the geometry as a MULTI* geometry. If the geometry is "
@@ -971,7 +1100,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:574
+#: reference_editor.xml:664
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Multi</function></funcdef> "
@@ -979,7 +1108,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:584
+#: reference_editor.xml:674
 #, no-c-format
 msgid ""
 "<para>Returns the geometry as a MULTI* geometry. If the geometry is already "
@@ -987,7 +1116,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:592
+#: reference_editor.xml:682
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Multi(ST_GeomFromText('POLYGON((743238 2967416,743238 "
@@ -1003,19 +1132,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:602
+#: reference_editor.xml:692
 #, no-c-format
 msgid "ST_RemovePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:603
+#: reference_editor.xml:693
 #, no-c-format
 msgid "Removes point from a linestring. Offset is 0-based."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:607
+#: reference_editor.xml:697
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RemovePoint</function></funcdef> "
@@ -1024,7 +1153,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:618
+#: reference_editor.xml:708
 #, no-c-format
 msgid ""
 "Removes point from a linestring. Useful for turning a closed ring into an "
@@ -1032,7 +1161,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:625
+#: reference_editor.xml:715
 #, no-c-format
 msgid ""
 "--guarantee no LINESTRINGS are closed\n"
@@ -1045,25 +1174,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:629
+#: reference_editor.xml:719
 #, no-c-format
 msgid ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:635
+#: reference_editor.xml:725
 #, no-c-format
 msgid "ST_Reverse"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:636
+#: reference_editor.xml:726
 #, no-c-format
 msgid "Returns the geometry with vertex order reversed."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:641
+#: reference_editor.xml:731
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Reverse</function></funcdef> "
@@ -1071,13 +1200,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:651
+#: reference_editor.xml:741
 #, no-c-format
 msgid "Can be used on any geometry and reverses the order of the vertexes."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:656
+#: reference_editor.xml:746
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(the_geom) as line, ST_AsText(ST_Reverse(the_geom)) As "
@@ -1092,19 +1221,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:662
+#: reference_editor.xml:752
 #, no-c-format
 msgid "ST_Rotate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:664
+#: reference_editor.xml:754
 #, no-c-format
 msgid "Rotate a geometry rotRadians counter-clockwise about an origin."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:668
+#: reference_editor.xml:758
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> "
@@ -1123,7 +1252,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:695
+#: reference_editor.xml:785
 #, no-c-format
 msgid ""
 "Rotates geometry rotRadians counter-clockwise about the origin. The rotation "
@@ -1133,7 +1262,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:700
+#: reference_editor.xml:790
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 additional parameters for specifying the origin of rotation "
@@ -1141,13 +1270,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:701
+#: reference_editor.xml:791
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from Rotate to ST_Rotate in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:713
+#: reference_editor.xml:803
 #, no-c-format
 msgid ""
 "--Rotate 180 degrees\n"
@@ -1176,7 +1305,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:720
+#: reference_editor.xml:810
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>, <xref "
@@ -1184,19 +1313,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:726
+#: reference_editor.xml:816
 #, no-c-format
 msgid "ST_RotateX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:728
+#: reference_editor.xml:818
 #, no-c-format
 msgid "Rotate a geometry rotRadians about the X axis."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:733
+#: reference_editor.xml:823
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RotateX</function></funcdef> "
@@ -1205,58 +1334,58 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:744
+#: reference_editor.xml:834
 #, no-c-format
 msgid "Rotate a geometry geomA - rotRadians about the X axis."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:746
+#: reference_editor.xml:836
 #, no-c-format
 msgid ""
-"<code>ST_RotateX(geomA, rotRadians)</code> is short-hand for <code>ST_Affine"
-"(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), "
-"cos(rotRadians), 0, 0, 0)</code>."
+"<code>ST_RotateX(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, "
+"sin(rotRadians), cos(rotRadians), 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:750
+#: reference_editor.xml:840
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from RotateX to ST_RotateX in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:760
+#: reference_editor.xml:850
 #, no-c-format
 msgid ""
 "--Rotate a line 90 degrees along x-axis\n"
-"SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi"
-"()/2));\n"
+"SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
 "                 st_asewkt\n"
 "---------------------------\n"
 " LINESTRING(1 -3 2,1 -1 1)"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:767
+#: reference_editor.xml:857
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:773
+#: reference_editor.xml:863
 #, no-c-format
 msgid "ST_RotateY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:775
+#: reference_editor.xml:865
 #, no-c-format
 msgid "Rotate a geometry rotRadians about the Y axis."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:780
+#: reference_editor.xml:870
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RotateY</function></funcdef> "
@@ -1265,58 +1394,58 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:791
+#: reference_editor.xml:881
 #, no-c-format
 msgid "Rotate a geometry geomA - rotRadians about the y axis."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:793
+#: reference_editor.xml:883
 #, no-c-format
 msgid ""
-"<code>ST_RotateY(geomA, rotRadians)</code> is short-hand for <code>ST_Affine"
-"(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -sin(rotRadians), 0, "
-"cos(rotRadians), 0, 0, 0)</code>."
+"<code>ST_RotateY(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -"
+"sin(rotRadians), 0, cos(rotRadians), 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:796
+#: reference_editor.xml:886
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from RotateY to ST_RotateY in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:809
+#: reference_editor.xml:899
 #, no-c-format
 msgid ""
 "--Rotate a line 90 degrees along y-axis\n"
-" SELECT ST_AsEWKT(ST_RotateY(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi"
-"()/2));\n"
+" SELECT ST_AsEWKT(ST_RotateY(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
 "                 st_asewkt\n"
 "---------------------------\n"
 " LINESTRING(3 2 -1,1 1 -1)"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:816
+#: reference_editor.xml:906
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:822
+#: reference_editor.xml:912
 #, no-c-format
 msgid "ST_RotateZ"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:824
+#: reference_editor.xml:914
 #, no-c-format
 msgid "Rotate a geometry rotRadians about the Z axis."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:829
+#: reference_editor.xml:919
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RotateZ</function></funcdef> "
@@ -1325,39 +1454,39 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:840
+#: reference_editor.xml:930
 #, no-c-format
 msgid "Rotate a geometry geomA - rotRadians about the Z axis."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:842
+#: reference_editor.xml:932
 #, no-c-format
 msgid "This is a synonym for ST_Rotate"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:843
+#: reference_editor.xml:933
 #, no-c-format
 msgid ""
 "<code>ST_RotateZ(geomA, rotRadians)</code> is short-hand for <code>SELECT "
-"ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), cos"
-"(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
+"ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), "
+"cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:848
+#: reference_editor.xml:938
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from RotateZ to ST_RotateZ in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:861
+#: reference_editor.xml:951
 #, no-c-format
 msgid ""
 "--Rotate a line 90 degrees along z-axis\n"
-"SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi"
-"()/2));\n"
+"SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
 "                 st_asewkt\n"
 "---------------------------\n"
 " LINESTRING(-2 1 3,-1 1 1)\n"
@@ -1374,19 +1503,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:868
+#: reference_editor.xml:958
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:874
+#: reference_editor.xml:964
 #, no-c-format
 msgid "ST_Scale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:876
+#: reference_editor.xml:966
 #, no-c-format
 msgid ""
 "<refpurpose>Scales the geometry to a new size by multiplying the ordinates "
@@ -1395,7 +1524,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:883
+#: reference_editor.xml:973
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> "
@@ -1411,7 +1540,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:904
+#: reference_editor.xml:994
 #, no-c-format
 msgid ""
 "<para>Scales the geometry to a new size by multiplying the ordinates with "
@@ -1419,22 +1548,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:908
+#: reference_editor.xml:998
 #, no-c-format
 msgid ""
 "<code>ST_Scale(geomA, XFactor, YFactor, ZFactor)</code> is short-hand for "
-"<code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, 0)"
-"</code>."
+"<code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, "
+"0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:914 reference_editor.xml:1487
+#: reference_editor.xml:1004 reference_editor.xml:1577
 #, no-c-format
 msgid "Availability: 1.1.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:926
+#: reference_editor.xml:1016
 #, no-c-format
 msgid ""
 "--Version 1: scale X, Y, Z\n"
@@ -1453,19 +1582,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:933
+#: reference_editor.xml:1023
 #, no-c-format
 msgid ", <xref linkend=\"ST_TransScale\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:939
+#: reference_editor.xml:1029
 #, no-c-format
 msgid "ST_Segmentize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:941
+#: reference_editor.xml:1031
 #, no-c-format
 msgid ""
 "Return a modified geometry/geography having no segment longer than the given "
@@ -1474,20 +1603,20 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:947
+#: reference_editor.xml:1037
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
 "funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
 "paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geography "
 "<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
 "type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
 "<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:964
+#: reference_editor.xml:1054
 #, no-c-format
 msgid ""
 "Returns a modified geometry having no segment longer than the given "
@@ -1497,19 +1626,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:967 reference_editor.xml:1428
+#: reference_editor.xml:1057 reference_editor.xml:1518
 #, no-c-format
 msgid "Availability: 1.2.2"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:968
+#: reference_editor.xml:1058
 #, no-c-format
 msgid "Enhanced: 2.1.0 support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:969
+#: reference_editor.xml:1059
 #, no-c-format
 msgid ""
 "Changed: 2.1.0 As a result of the introduction of geography support: The "
@@ -1521,7 +1650,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:971
+#: reference_editor.xml:1061
 #, no-c-format
 msgid ""
 "This will only increase segments. It will not lengthen segments shorter than "
@@ -1529,7 +1658,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:978
+#: reference_editor.xml:1068
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Segmentize(\n"
@@ -1555,19 +1684,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:988
+#: reference_editor.xml:1078
 #, no-c-format
 msgid "ST_SetPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:989
+#: reference_editor.xml:1079
 #, no-c-format
 msgid "Replace point N of linestring with given point. Index is 0-based."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:994
+#: reference_editor.xml:1084
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SetPoint</function></funcdef> "
@@ -1578,7 +1707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1006
+#: reference_editor.xml:1096
 #, no-c-format
 msgid ""
 "Replace point N of linestring with given point. Index is 0-based. This is "
@@ -1587,7 +1716,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1016
+#: reference_editor.xml:1106
 #, no-c-format
 msgid ""
 "--Change first point in line string from -1 3 to -1 1\n"
@@ -1608,7 +1737,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1020
+#: reference_editor.xml:1110
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>, <xref "
@@ -1616,19 +1745,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1026
+#: reference_editor.xml:1116
 #, no-c-format
 msgid "ST_SetSRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1028
+#: reference_editor.xml:1118
 #, no-c-format
 msgid "Sets the SRID on a geometry to a particular integer value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1034
+#: reference_editor.xml:1124
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SetSRID</function></funcdef> "
@@ -1637,7 +1766,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1049
+#: reference_editor.xml:1139
 #, no-c-format
 msgid ""
 "Sets the SRID on a geometry to a particular integer value. Useful in "
@@ -1645,7 +1774,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1053
+#: reference_editor.xml:1143
 #, no-c-format
 msgid ""
 "This function does not transform the geometry coordinates in any way - it "
@@ -1655,19 +1784,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1058
+#: reference_editor.xml:1148
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1064
+#: reference_editor.xml:1154
 #, no-c-format
 msgid "-- Mark a point as WGS 84 long lat --"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1065
+#: reference_editor.xml:1155
 #, no-c-format
 msgid ""
 "SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) As wgs84long_lat;\n"
@@ -1676,7 +1805,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1066
+#: reference_editor.xml:1156
 #, no-c-format
 msgid ""
 "-- Mark a point as WGS 84 long lat and then transform to web mercator "
@@ -1684,7 +1813,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1067
+#: reference_editor.xml:1157
 #, no-c-format
 msgid ""
 "SELECT ST_Transform(ST_SetSRID(ST_Point(-123.365556, 48.428611),4326),3785) "
@@ -1694,7 +1823,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1073
+#: reference_editor.xml:1163
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
@@ -1703,19 +1832,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1080
+#: reference_editor.xml:1170
 #, no-c-format
 msgid "ST_SnapToGrid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1082
+#: reference_editor.xml:1172
 #, no-c-format
 msgid "Snap all points of the input geometry to a regular grid."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:1088
+#: reference_editor.xml:1178
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_SnapToGrid</function></"
@@ -1743,7 +1872,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1126
+#: reference_editor.xml:1216
 #, no-c-format
 msgid ""
 "Variant 1,2,3: Snap all points of the input geometry to the grid defined by "
@@ -1754,7 +1883,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1134
+#: reference_editor.xml:1224
 #, no-c-format
 msgid ""
 "Variant 4: Introduced 1.1.0 - Snap all points of the input geometry to the "
@@ -1763,7 +1892,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1140
+#: reference_editor.xml:1230
 #, no-c-format
 msgid ""
 "The returned geometry might loose its simplicity (see <xref linkend="
@@ -1771,7 +1900,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1145
+#: reference_editor.xml:1235
 #, no-c-format
 msgid ""
 "Before release 1.1.0 this function always returned a 2d geometry. Starting "
@@ -1781,19 +1910,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1152
+#: reference_editor.xml:1242
 #, no-c-format
 msgid "Availability: 1.0.0RC1"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1153
+#: reference_editor.xml:1243
 #, no-c-format
 msgid "Availability: 1.1.0 - Z and M support"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1162
+#: reference_editor.xml:1252
 #, no-c-format
 msgid ""
 "--Snap your geometries to a precision grid of 10^-3\n"
@@ -1833,7 +1962,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1169
+#: reference_editor.xml:1259
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
@@ -1842,13 +1971,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1182
+#: reference_editor.xml:1272
 #, no-c-format
 msgid "ST_Snap"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1184
+#: reference_editor.xml:1274
 #, no-c-format
 msgid ""
 "Snap segments and vertices of input geometry to vertices of a reference "
@@ -1856,7 +1985,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1192
+#: reference_editor.xml:1282
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Snap</function></funcdef> "
@@ -1866,7 +1995,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1204
+#: reference_editor.xml:1294
 #, no-c-format
 msgid ""
 "Snaps the vertices and segments of a geometry another Geometry's vertices. A "
@@ -1874,7 +2003,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1209
+#: reference_editor.xml:1299
 #, no-c-format
 msgid ""
 "Snapping one geometry to another can improve robustness for overlay "
@@ -1883,7 +2012,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1216
+#: reference_editor.xml:1306
 #, no-c-format
 msgid ""
 "Too much snapping can result in invalid topology being created, so the "
@@ -1893,7 +2022,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1225
+#: reference_editor.xml:1315
 #, no-c-format
 msgid ""
 "The returned geometry might loose its simplicity (see <xref linkend="
@@ -1901,19 +2030,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1232
+#: reference_editor.xml:1322
 #, no-c-format
 msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1249
+#: reference_editor.xml:1339
 #, no-c-format
 msgid "A multipolygon shown with a linestring (before any snapping)"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1260
+#: reference_editor.xml:1350
 #, no-c-format
 msgid ""
 "A multipolygon snapped to linestring to tolerance: 1.01 of distance. The new "
@@ -1921,7 +2050,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1264
+#: reference_editor.xml:1354
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Snap(poly,line, ST_Distance(poly,line)*1.01)) AS "
@@ -1942,7 +2071,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1271
+#: reference_editor.xml:1361
 #, no-c-format
 msgid ""
 "A multipolygon snapped to linestring to tolerance: 1.25 of distance. The new "
@@ -1950,7 +2079,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1275
+#: reference_editor.xml:1365
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -1972,7 +2101,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1284
+#: reference_editor.xml:1374
 #, no-c-format
 msgid ""
 "The linestring snapped to the original multipolygon at tolerance 1.01 of "
@@ -1980,7 +2109,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1288
+#: reference_editor.xml:1378
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -2000,7 +2129,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1296
+#: reference_editor.xml:1386
 #, no-c-format
 msgid ""
 "The linestring snapped to the original multipolygon at tolerance 1.25 of "
@@ -2008,7 +2137,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1300
+#: reference_editor.xml:1390
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -2028,13 +2157,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1321
+#: reference_editor.xml:1411
 #, no-c-format
 msgid "ST_Transform"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1323
+#: reference_editor.xml:1413
 #, no-c-format
 msgid ""
 "Returns a new geometry with its coordinates transformed to the SRID "
@@ -2042,7 +2171,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1329
+#: reference_editor.xml:1419
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Transform</function></funcdef> "
@@ -2051,7 +2180,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1340
+#: reference_editor.xml:1430
 #, no-c-format
 msgid ""
 "Returns a new geometry with its coordinates transformed to spatial reference "
@@ -2060,7 +2189,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1343
+#: reference_editor.xml:1433
 #, no-c-format
 msgid ""
 "ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
@@ -2070,7 +2199,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1348
+#: reference_editor.xml:1438
 #, no-c-format
 msgid ""
 "Requires PostGIS be compiled with Proj support. Use <xref linkend="
@@ -2078,7 +2207,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1352
+#: reference_editor.xml:1442
 #, no-c-format
 msgid ""
 "If using more than one transformation, it is useful to have a functional "
@@ -2086,19 +2215,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1359
+#: reference_editor.xml:1449
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.6"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1367
+#: reference_editor.xml:1457
 #, no-c-format
 msgid "Change Mass state plane US feet geometry to WGS 84 long lat"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1368
+#: reference_editor.xml:1458
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Transform(ST_GeomFromText('POLYGON((743238 "
@@ -2116,9 +2245,9 @@ msgid ""
 "(1 row)\n"
 "\n"
 "--3D Circular String example\n"
-"SELECT ST_AsEWKT(ST_Transform(ST_GeomFromEWKT('SRID=2249;CIRCULARSTRING"
-"(743238 2967416 1,743238 2967450 2,743265 2967450 3,743265.625 2967416 "
-"3,743238 2967416 4)'),4326));\n"
+"SELECT ST_AsEWKT(ST_Transform(ST_GeomFromEWKT('SRID=2249;"
+"CIRCULARSTRING(743238 2967416 1,743238 2967450 2,743265 2967450 3,743265.625 "
+"2967416 3,743238 2967416 4)'),4326));\n"
 "\n"
 "                                 st_asewkt\n"
 "--------------------------------------------------------------------------------------\n"
@@ -2129,7 +2258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1369
+#: reference_editor.xml:1459
 #, no-c-format
 msgid ""
 "Example of creating a partial functional index. For tables where you are not "
@@ -2139,7 +2268,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1371
+#: reference_editor.xml:1461
 #, no-c-format
 msgid ""
 "CREATE INDEX idx_the_geom_26986_parcels\n"
@@ -2150,13 +2279,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:1375
+#: reference_editor.xml:1465
 #, no-c-format
 msgid "Configuring transformation behaviour"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1376
+#: reference_editor.xml:1466
 #, no-c-format
 msgid ""
 "Sometimes coordinate transformation involving a grid-shift can fail, for "
@@ -2168,7 +2297,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1377
+#: reference_editor.xml:1467
 #, no-c-format
 msgid ""
 "For example, the proj4text parameter +datum=NAD87 is a shorthand form for "
@@ -2176,13 +2305,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1378
+#: reference_editor.xml:1468
 #, no-c-format
 msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1379
+#: reference_editor.xml:1469
 #, no-c-format
 msgid ""
 "The @ prefix means no error is reported if the files are not present, but if "
@@ -2191,7 +2320,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1380
+#: reference_editor.xml:1470
 #, no-c-format
 msgid ""
 "If, conversely, you wanted to ensure that at least the standard files were "
@@ -2200,13 +2329,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1381
+#: reference_editor.xml:1471
 #, no-c-format
 msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1382
+#: reference_editor.xml:1472
 #, no-c-format
 msgid ""
 "The null grid shift file is a valid grid shift file covering the whole world "
@@ -2216,7 +2345,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1383
+#: reference_editor.xml:1473
 #, no-c-format
 msgid ""
 "UPDATE spatial_ref_sys SET proj4text = '+proj=longlat +ellps=clrk66 "
@@ -2225,7 +2354,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1390
+#: reference_editor.xml:1480
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -2233,13 +2362,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1396
+#: reference_editor.xml:1486
 #, no-c-format
 msgid "ST_Translate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1398
+#: reference_editor.xml:1488
 #, no-c-format
 msgid ""
 "Translates the geometry to a new location using the numeric parameters as "
@@ -2247,7 +2376,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:1403
+#: reference_editor.xml:1493
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Translate</function></"
@@ -2263,7 +2392,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1423
+#: reference_editor.xml:1513
 #, no-c-format
 msgid ""
 "Returns a new geometry whose coordinates are translated delta x,delta y,"
@@ -2272,13 +2401,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1435
+#: reference_editor.xml:1525
 #, no-c-format
 msgid "Move a point 1 degree longitude"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1436
+#: reference_editor.xml:1526
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 "
@@ -2290,13 +2419,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1437
+#: reference_editor.xml:1527
 #, no-c-format
 msgid "Move a linestring 1 degree longitude and 1/2 degree latitude"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1438
+#: reference_editor.xml:1528
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 "
@@ -2307,13 +2436,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1439
+#: reference_editor.xml:1529
 #, no-c-format
 msgid "Move a 3d point"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1440
+#: reference_editor.xml:1530
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' As geometry), 5, 12,3));\n"
@@ -2323,13 +2452,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1441
+#: reference_editor.xml:1531
 #, no-c-format
 msgid "Move a curve and a point"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1442
+#: reference_editor.xml:1532
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Translate(ST_Collect('CURVEPOLYGON(CIRCULARSTRING(4 "
@@ -2341,19 +2470,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1448
+#: reference_editor.xml:1538
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1454
+#: reference_editor.xml:1544
 #, no-c-format
 msgid "ST_TransScale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1456
+#: reference_editor.xml:1546
 #, no-c-format
 msgid ""
 "<refpurpose>Translates the geometry using the deltaX and deltaY args, then "
@@ -2361,7 +2490,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1463
+#: reference_editor.xml:1553
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_TransScale</function></funcdef> "
@@ -2373,7 +2502,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1477
+#: reference_editor.xml:1567
 #, no-c-format
 msgid ""
 "<para>Translates the geometry using the deltaX and deltaY args, then scales "
@@ -2381,7 +2510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1480
+#: reference_editor.xml:1570
 #, no-c-format
 msgid ""
 "<code>ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor)</code> is short-"
@@ -2390,7 +2519,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1496
+#: reference_editor.xml:1586
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_TransScale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
@@ -2411,7 +2540,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1503
+#: reference_editor.xml:1593
 #, no-c-format
 msgid ", <xref linkend=\"ST_Translate\"/>"
 msgstr ""
diff --git a/doc/po/it_IT/reference_guc.xml.po b/doc/po/it_IT/reference_guc.xml.po
new file mode 100644
index 0000000..ba1e2c8
--- /dev/null
+++ b/doc/po/it_IT/reference_guc.xml.po
@@ -0,0 +1,407 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: para
+#: reference_guc.xml:5
+#, no-c-format
+msgid ""
+"This section lists custom PostGIS Grand Unified Custom Variables(GUC). These "
+"can be set globally, by database, by session or by transaction. Best set at "
+"global or database level."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:8
+#, no-c-format
+msgid "PostGIS Grand Unified Custom Variables (GUCs)"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:12
+#, no-c-format
+msgid "postgis.backend"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:13
+#, no-c-format
+msgid ""
+"The backend to service a function where GEOS and SFCGAL overlap. Options: "
+"geos or sfcgal. Defaults to geos."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:17 reference_guc.xml:45 reference_guc.xml:95
+#: reference_guc.xml:180
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:18
+#, no-c-format
+msgid ""
+"This GUC is only relevant if you compiled PostGIS with sfcgal support. By "
+"default <varname>geos</varname> backend is used for functions where both "
+"GEOS and SFCGAL have the same named function. This variable allows you to "
+"override and make sfcgal the backend to service the request."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:19
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:23 reference_guc.xml:69 reference_guc.xml:146
+#: reference_guc.xml:206
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:24
+#, no-c-format
+msgid "Sets backend just for life of connection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:25
+#, no-c-format
+msgid "set postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:27
+#, no-c-format
+msgid "Sets backend for new connections to database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:28
+#, no-c-format
+msgid "ALTER DATABASE mygisdb SET postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:31 reference_guc.xml:79 reference_guc.xml:159
+#: reference_guc.xml:213
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:38
+#, no-c-format
+msgid "postgis.gdal_datapath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:39
+#, no-c-format
+msgid ""
+"A configuration option to assign the value of GDAL's GDAL_DATA option. If "
+"not set, the environmentally set GDAL_DATA variable is used."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:46
+#, no-c-format
+msgid ""
+"A PostgreSQL GUC variable for setting the value of GDAL's GDAL_DATA option. "
+"The <varname>postgis.gdal_datapath</varname> value should be the complete "
+"physical path to GDAL's data files."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:49
+#, no-c-format
+msgid ""
+"This configuration option is of most use for Windows platforms where GDAL's "
+"data files path is not hard-coded. This option should also be set when "
+"GDAL's data files are not located in GDAL's expected path."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:54
+#, no-c-format
+msgid ""
+"This option can be set in PostgreSQL's configuration file postgresql.conf. "
+"It can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:58 reference_guc.xml:141 reference_guc.xml:201
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:61
+#, no-c-format
+msgid ""
+"Additional information about GDAL_DATA is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:70
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_datapath</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:72
+#, no-c-format
+msgid ""
+"SET postgis.gdal_datapath TO '/usr/local/share/gdal.hidden';\n"
+"SET postgis.gdal_datapath TO default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:74
+#, no-c-format
+msgid "Setting on windows for a particular database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:75
+#, no-c-format
+msgid ""
+"ALTER DATABASE gisdb\n"
+"SET postgis.gdal_datapath = 'C:/Program Files/PostgreSQL/9.3/gdal-data';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:80
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:88
+#, no-c-format
+msgid "postgis.gdal_enabled_drivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:89
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:96
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP. This option "
+"can be set in PostgreSQL's configuration file: postgresql.conf. It can also "
+"be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:100
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.gdal_enabled_drivers</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_GDAL_ENABLED_DRIVERS</varname> with the list of enabled "
+"drivers to the process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:104
+#, no-c-format
+msgid ""
+"Enabled GDAL specified drivers can be specified by the driver's short-name "
+"or code. Driver short-names or codes can be found at <ulink url=\"http://www."
+"gdal.org/formats_list.html\">GDAL Raster Formats</ulink>. Multiple drivers "
+"can be specified by putting a space between each driver."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:109
+#, no-c-format
+msgid ""
+"There are three special codes available for <varname>postgis."
+"gdal_enabled_drivers</varname>. The codes are case-sensitive."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:114
+#, no-c-format
+msgid ""
+"<varname>DISABLE_ALL</varname> disables all GDAL drivers. If present, "
+"<varname>DISABLE_ALL</varname> overrides all other values in "
+"<varname>postgis.gdal_enabled_drivers</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:117
+#, no-c-format
+msgid "<varname>ENABLE_ALL</varname> enables all GDAL drivers."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:120
+#, no-c-format
+msgid ""
+"<varname>VSICURL</varname> enables GDAL's <varname>/vsicurl/</varname> "
+"virtual file system."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:124
+#, no-c-format
+msgid ""
+"When <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL, "
+"attempts to use out-db rasters, ST_FromGDALRaster(), ST_AsGDALRaster(), "
+"ST_AsTIFF(), ST_AsJPEG() and ST_AsPNG() will result in error messages."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:130
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.gdal_enabled_drivers</"
+"varname> is set to DISABLE_ALL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:136
+#, no-c-format
+msgid ""
+"Additional information about GDAL_SKIP is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:147
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_enabled_drivers</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:149
+#, no-c-format
+msgid ""
+"SET postgis.gdal_enabled_drivers TO 'GTiff PNG JPEG';\n"
+"SET postgis.gdal_enabled_drivers = default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:151
+#, no-c-format
+msgid "Enable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:152
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:154
+#, no-c-format
+msgid "Disable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:155
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'DISABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:160
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>, "
+"<xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsJPEG\"/>, <xref "
+"linkend=\"postgis_enable_outdb_rasters\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:173
+#, no-c-format
+msgid "postgis.enable_outdb_rasters"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:174
+#, no-c-format
+msgid "A boolean configuration option to enable access to out-db raster bands."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:181
+#, no-c-format
+msgid ""
+"A boolean configuration option to enable access to out-db raster bands. This "
+"option can be set in PostgreSQL's configuration file: postgresql.conf. It "
+"can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:185
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.enable_outdb_rasters</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_ENABLE_OUTDB_RASTERS</varname> with a non-zero value to the "
+"process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:190
+#, no-c-format
+msgid ""
+"Even if <varname>postgis.enable_outdb_rasters</varname> is True, the GUC "
+"<varname>postgis.enable_outdb_rasters</varname> determines the accessible "
+"raster formats."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:196
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.enable_outdb_rasters</"
+"varname> is set to False."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:207
+#, no-c-format
+msgid "Set and reset <varname>postgis.enable_outdb_rasters</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:209
+#, no-c-format
+msgid ""
+"SET postgis.enable_outdb_rasters TO True;\n"
+"SET postgis.enable_outdb_rasters = default;\n"
+"SET postgis.enable_outdb_rasters = True;\n"
+"SET postgis.enable_outdb_rasters = False;"
+msgstr ""
diff --git a/doc/po/it_IT/reference_lrs.xml.po b/doc/po/it_IT/reference_lrs.xml.po
index ee87a47..1914c80 100644
--- a/doc/po/it_IT/reference_lrs.xml.po
+++ b/doc/po/it_IT/reference_lrs.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -24,7 +24,7 @@ msgstr ""
 #. Tag: refname
 #: reference_lrs.xml:7
 #, no-c-format
-msgid "ST_Line_Interpolate_Point"
+msgid "ST_LineInterpolatePoint"
 msgstr ""
 
 #. Tag: refpurpose
@@ -40,16 +40,16 @@ msgstr ""
 #: reference_lrs.xml:15
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Line_Interpolate_Point</function></funcdef> "
+"<funcdef>geometry <function>ST_LineInterpolatePoint</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
 "paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></"
 "paramdef>"
 msgstr ""
 
 #. Tag: title
-#: reference_lrs.xml:24 reference_lrs.xml:85 reference_lrs.xml:136
-#: reference_lrs.xml:202 reference_lrs.xml:260 reference_lrs.xml:311
-#: reference_lrs.xml:356 reference_lrs.xml:400
+#: reference_lrs.xml:24 reference_lrs.xml:86 reference_lrs.xml:138
+#: reference_lrs.xml:205 reference_lrs.xml:263 reference_lrs.xml:314
+#: reference_lrs.xml:359 reference_lrs.xml:403
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -64,10 +64,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:30 reference_lrs.xml:147
+#: reference_lrs.xml:30 reference_lrs.xml:149
 #, no-c-format
 msgid ""
-"See <xref linkend=\"ST_Line_Locate_Point\"/> for computing the line location "
+"See <xref linkend=\"ST_LineLocatePoint\"/> for computing the line location "
 "nearest to a Point."
 msgstr ""
 
@@ -86,32 +86,38 @@ msgid "Availability: 0.8.2, Z and M supported added in 1.1.1"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:39 reference_lrs.xml:157 reference_lrs.xml:319
-#: reference_lrs.xml:362 reference_lrs.xml:406
+#: reference_lrs.xml:39
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Interpolate_Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:40 reference_lrs.xml:160 reference_lrs.xml:322
+#: reference_lrs.xml:365 reference_lrs.xml:409
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_lrs.xml:44 reference_lrs.xml:101 reference_lrs.xml:161
-#: reference_lrs.xml:225 reference_lrs.xml:276 reference_lrs.xml:323
-#: reference_lrs.xml:366 reference_lrs.xml:410
+#: reference_lrs.xml:45 reference_lrs.xml:103 reference_lrs.xml:164
+#: reference_lrs.xml:228 reference_lrs.xml:279 reference_lrs.xml:326
+#: reference_lrs.xml:369 reference_lrs.xml:413
 #, no-c-format
 msgid "Examples"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:50
+#: reference_lrs.xml:51
 #, no-c-format
 msgid "A linestring with the interpolated point at 20% position (0.20)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:53
+#: reference_lrs.xml:54
 #, no-c-format
 msgid ""
 "--Return point 20% along 2d line\n"
-"SELECT ST_AsEWKT(ST_Line_Interpolate_Point(the_line, 0.20))\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.20))\n"
 "        FROM (SELECT ST_GeomFromEWKT('LINESTRING(25 50, 100 125, 150 190)') "
 "as the_line) As foo;\n"
 "   st_asewkt\n"
@@ -120,11 +126,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:54
+#: reference_lrs.xml:55
 #, no-c-format
 msgid ""
 "--Return point mid-way of 3d line\n"
-"SELECT ST_AsEWKT(ST_Line_Interpolate_Point(the_line, 0.5))\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.5))\n"
 "        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6, 6 7 8)') as "
 "the_line) As foo;\n"
 "\n"
@@ -134,8 +140,8 @@ msgid ""
 "\n"
 "\n"
 "--find closest point on a line to a point or other geometry\n"
-" SELECT ST_AsText(ST_Line_Interpolate_Point(foo.the_line, "
-"ST_Line_Locate_Point(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
 "FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
 "foo;\n"
 "   st_astext\n"
@@ -144,29 +150,29 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_lrs.xml:59 reference_lrs.xml:108 reference_lrs.xml:175
-#: reference_lrs.xml:231 reference_lrs.xml:283 reference_lrs.xml:330
-#: reference_lrs.xml:372
+#: reference_lrs.xml:60 reference_lrs.xml:110 reference_lrs.xml:178
+#: reference_lrs.xml:234 reference_lrs.xml:286 reference_lrs.xml:333
+#: reference_lrs.xml:375
 #, no-c-format
 msgid "See Also"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:61
+#: reference_lrs.xml:62
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref "
-"linkend=\"ST_Line_Locate_Point\"/>"
+"linkend=\"ST_LineLocatePoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:67
+#: reference_lrs.xml:68
 #, no-c-format
-msgid "ST_Line_Locate_Point"
+msgid "ST_LineLocatePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:69
+#: reference_lrs.xml:70
 #, no-c-format
 msgid ""
 "Returns a float between 0 and 1 representing the location of the closest "
@@ -175,17 +181,17 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:76
+#: reference_lrs.xml:77
 #, no-c-format
 msgid ""
-"<funcdef>float <function>ST_Line_Locate_Point</function></funcdef> "
+"<funcdef>float <function>ST_LineLocatePoint</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
 "paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></"
 "paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:87
+#: reference_lrs.xml:88
 #, no-c-format
 msgid ""
 "Returns a float between 0 and 1 representing the location of the closest "
@@ -194,28 +200,34 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:91
+#: reference_lrs.xml:92
 #, no-c-format
 msgid ""
 "You can use the returned location to extract a Point (<xref linkend="
-"\"ST_Line_Interpolate_Point\"/>) or a substring (<xref linkend="
-"\"ST_Line_Substring\"/>)."
+"\"ST_LineInterpolatePoint\"/>) or a substring (<xref linkend="
+"\"ST_LineSubstring\"/>)."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:94
+#: reference_lrs.xml:95
 #, no-c-format
 msgid "This is useful for approximating numbers of addresses"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:96
+#: reference_lrs.xml:97
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
+#. Tag: para
+#: reference_lrs.xml:98
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Locate_Point."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_lrs.xml:103
+#: reference_lrs.xml:105
 #, no-c-format
 msgid ""
 "--Rough approximation of finding the street number of a point along the "
@@ -227,7 +239,7 @@ msgid ""
 "SELECT ST_AsText(house_loc) As as_text_house_loc,\n"
 "        startstreet_num +\n"
 "                CAST( (endstreet_num - startstreet_num)\n"
-"                        * ST_Line_Locate_Point(street_line, house_loc) As "
+"                        * ST_LineLocatePoint(street_line, house_loc) As "
 "integer) As street_num\n"
 "FROM\n"
 "(SELECT ST_GeomFromText('LINESTRING(1 2, 3 4)') As street_line,\n"
@@ -244,8 +256,8 @@ msgid ""
 " POINT(3.03 4.12)  |         20\n"
 "\n"
 " --find closest point on a line to a point or other geometry\n"
-" SELECT ST_AsText(ST_Line_Interpolate_Point(foo.the_line, "
-"ST_Line_Locate_Point(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
 "FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
 "foo;\n"
 "   st_astext\n"
@@ -254,21 +266,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:110
+#: reference_lrs.xml:112
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_Line_Interpolate_Point"
-"\"/>, <xref linkend=\"ST_Line_Substring\"/>"
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_LineInterpolatePoint\"/"
+">, <xref linkend=\"ST_LineSubstring\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:116
+#: reference_lrs.xml:118
 #, no-c-format
-msgid "ST_Line_Substring"
+msgid "ST_LineSubstring"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:118
+#: reference_lrs.xml:120
 #, no-c-format
 msgid ""
 "Return a linestring being a substring of the input one starting and ending "
@@ -277,10 +289,10 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:126
+#: reference_lrs.xml:128
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Line_Substring</function></funcdef> "
+"<funcdef>geometry <function>ST_LineSubstring</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
 "paramdef> <paramdef><type>float </type> <parameter>startfraction</"
 "parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</"
@@ -288,7 +300,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:138
+#: reference_lrs.xml:140
 #, no-c-format
 msgid ""
 "Return a linestring being a substring of the input one starting and ending "
@@ -299,15 +311,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:144
+#: reference_lrs.xml:146
 #, no-c-format
 msgid ""
 "If 'start' and 'end' have the same value this is equivalent to <xref linkend="
-"\"ST_Line_Interpolate_Point\"/>."
+"\"ST_LineInterpolatePoint\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:151
+#: reference_lrs.xml:153
 #, no-c-format
 msgid ""
 "Since release 1.1.1 this function also interpolates M and Z values (when "
@@ -315,19 +327,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:156
+#: reference_lrs.xml:158
 #, no-c-format
 msgid "Availability: 1.1.0, Z and M supported added in 1.1.1"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:167
+#: reference_lrs.xml:159
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Substring."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:170
 #, no-c-format
 msgid "A linestring seen with 1/3 midrange overlaid (0.333, 0.666)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:170
+#: reference_lrs.xml:173
 #, no-c-format
 msgid ""
 "--Return the approximate 1/3 mid-range part of a linestring\n"
@@ -350,7 +368,7 @@ msgid ""
 "--for better performance you can reduce the 10000\n"
 "--to match max number of segments you expect\n"
 "\n"
-"SELECT field1, field2, ST_Line_Substring(the_geom, 100.00*n/length,\n"
+"SELECT field1, field2, ST_LineSubstring(the_geom, 100.00*n/length,\n"
 "  CASE\n"
 "        WHEN 100.00*(n+1) < length THEN 100.00*(n+1)/length\n"
 "        ELSE 1\n"
@@ -366,21 +384,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:177
+#: reference_lrs.xml:180
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Line_Interpolate_Point\"/>, <xref linkend=\"ST_LineMerge"
+", <xref linkend=\"ST_LineInterpolatePoint\"/>, <xref linkend=\"ST_LineMerge"
 "\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:183
+#: reference_lrs.xml:186
 #, no-c-format
 msgid "ST_LocateAlong"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:185
+#: reference_lrs.xml:188
 #, no-c-format
 msgid ""
 "<refpurpose>Return a derived geometry collection value with elements that "
@@ -389,7 +407,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:192
+#: reference_lrs.xml:195
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LocateAlong</function></funcdef> "
@@ -400,7 +418,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:204
+#: reference_lrs.xml:207
 #, no-c-format
 msgid ""
 "<para>Return a derived geometry collection value with elements that match "
@@ -408,7 +426,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:208
+#: reference_lrs.xml:211
 #, no-c-format
 msgid ""
 "If an offset is provided, the resultant will be offset to the left or right "
@@ -417,7 +435,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:213 reference_lrs.xml:266
+#: reference_lrs.xml:216 reference_lrs.xml:269
 #, no-c-format
 msgid ""
 "Semantic is specified by: ISO/IEC CD 13249-3:200x(E) - Text for Continuation "
@@ -425,13 +443,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:216
+#: reference_lrs.xml:219
 #, no-c-format
 msgid "Availability: 1.1.0 by old name ST_Locate_Along_Measure."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:217
+#: reference_lrs.xml:220
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 in prior versions this used to be called "
@@ -440,19 +458,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:218
+#: reference_lrs.xml:221
 #, no-c-format
 msgid "Use this function only for geometries with an M component"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:220 reference_lrs.xml:272
+#: reference_lrs.xml:223 reference_lrs.xml:275
 #, no-c-format
 msgid "&M_support;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:226
+#: reference_lrs.xml:229
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(the_geom)\n"
@@ -483,19 +501,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:233
+#: reference_lrs.xml:236
 #, no-c-format
 msgid ", <xref linkend=\"ST_LocateBetween\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:239
+#: reference_lrs.xml:242
 #, no-c-format
 msgid "ST_LocateBetween"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:241
+#: reference_lrs.xml:244
 #, no-c-format
 msgid ""
 "<refpurpose>Return a derived geometry collection value with elements that "
@@ -504,7 +522,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:248
+#: reference_lrs.xml:251
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LocateBetween</function></funcdef> "
@@ -516,7 +534,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:262
+#: reference_lrs.xml:265
 #, no-c-format
 msgid ""
 "<para>Return a derived geometry collection value with elements that match "
@@ -525,13 +543,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:269
+#: reference_lrs.xml:272
 #, no-c-format
 msgid "Availability: 1.1.0 by old name ST_Locate_Between_Measures."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:270
+#: reference_lrs.xml:273
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 - in prior versions this used to be called "
@@ -540,7 +558,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:278
+#: reference_lrs.xml:281
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(the_geom)\n"
@@ -570,19 +588,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:285
+#: reference_lrs.xml:288
 #, no-c-format
 msgid ", <xref linkend=\"ST_LocateAlong\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:291
+#: reference_lrs.xml:294
 #, no-c-format
 msgid "ST_LocateBetweenElevations"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:293
+#: reference_lrs.xml:296
 #, no-c-format
 msgid ""
 "Return a derived geometry (collection) value with elements that intersect "
@@ -591,7 +609,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:300
+#: reference_lrs.xml:303
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef> "
@@ -602,7 +620,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:313
+#: reference_lrs.xml:316
 #, no-c-format
 msgid ""
 "Return a derived geometry (collection) value with elements that intersect "
@@ -611,13 +629,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:317
+#: reference_lrs.xml:320
 #, no-c-format
 msgid "Availability: 1.4.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:325
+#: reference_lrs.xml:328
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
@@ -650,13 +668,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:339
+#: reference_lrs.xml:342
 #, no-c-format
 msgid "ST_InterpolatePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:341
+#: reference_lrs.xml:344
 #, no-c-format
 msgid ""
 "<refpurpose>Return the value of the measure dimension of a geometry at the "
@@ -664,7 +682,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:346
+#: reference_lrs.xml:349
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_InterpolatePoint</function></funcdef> "
@@ -673,7 +691,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:358
+#: reference_lrs.xml:361
 #, no-c-format
 msgid ""
 "<para>Return the value of the measure dimension of a geometry at the point "
@@ -681,13 +699,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:360
+#: reference_lrs.xml:363
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:368
+#: reference_lrs.xml:371
 #, no-c-format
 msgid ""
 "SELECT ST_InterpolatePoint('LINESTRING M (0 0 0, 10 0 20)', 'POINT(5 5)');\n"
@@ -697,20 +715,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:374
+#: reference_lrs.xml:377
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_LocateAlong\"/>, <xref linkend=\"ST_LocateBetween\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:382
+#: reference_lrs.xml:385
 #, no-c-format
 msgid "ST_AddMeasure"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:384
+#: reference_lrs.xml:387
 #, no-c-format
 msgid ""
 "<refpurpose>Return a derived geometry with measure elements linearly "
@@ -721,7 +739,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:389
+#: reference_lrs.xml:392
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_AddMeasure</function></funcdef> "
@@ -732,7 +750,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:402
+#: reference_lrs.xml:405
 #, no-c-format
 msgid ""
 "<para>Return a derived geometry with measure elements linearly interpolated "
@@ -742,13 +760,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:404
+#: reference_lrs.xml:407
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:412
+#: reference_lrs.xml:415
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_AddMeasure(\n"
diff --git a/doc/po/it_IT/reference_management.xml.po b/doc/po/it_IT/reference_management.xml.po
index 1cc7153..f46608e 100644
--- a/doc/po/it_IT/reference_management.xml.po
+++ b/doc/po/it_IT/reference_management.xml.po
@@ -1,31 +1,34 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Tommaso Di Bucchianico, 2013
+# Tommaso Di Bucchianico, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-07 18:17+0000\n"
+"Last-Translator: Tommaso Di Bucchianico\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/"
+"postgis-1/language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: title
 #: reference_management.xml:3
 #, no-c-format
 msgid "Management Functions"
-msgstr ""
+msgstr "Funzioni per la gestione del database"
 
 #. Tag: refname
 #: reference_management.xml:7
 #, no-c-format
 msgid "AddGeometryColumn"
-msgstr ""
+msgstr "AddGeometryColumn"
 
 #. Tag: refpurpose
 #: reference_management.xml:9
@@ -35,6 +38,10 @@ msgid ""
 "type modifier to define rather than constraints. Pass in false for "
 "use_typmod to get old check constraint based behavior"
 msgstr ""
+"Aggiunge una colonna di tipo geometry in una tabella già esistente. Per "
+"default usa il modificatore di tipo per la definizione della geometria "
+"piuttosto che dei vincoli. Si può passare alla funzione il parametro "
+"use_typemod per attivare il vecchio meccanismo basato sui vincoli."
 
 #. Tag: funcsynopsis
 #: reference_management.xml:15
@@ -69,6 +76,34 @@ msgid ""
 "\"><type>boolean </type> <parameter>use_typmod=true</parameter></paramdef> </"
 "funcprototype>"
 msgstr ""
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>type</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>dimension</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>use_typmod=true</parameter></paramdef> </"
+"funcprototype>"
 
 #. Tag: title
 #: reference_management.xml:92 reference_management.xml:188
@@ -78,10 +113,10 @@ msgstr ""
 #: reference_management.xml:499 reference_management.xml:540
 #: reference_management.xml:583 reference_management.xml:631
 #: reference_management.xml:677 reference_management.xml:726
-#: reference_management.xml:862
+#: reference_management.xml:863
 #, no-c-format
 msgid "Description"
-msgstr ""
+msgstr "Descrizione"
 
 #. Tag: para
 #: reference_management.xml:94
@@ -96,6 +131,14 @@ msgid ""
 "current search_path) or the specified SRID, geometry type, or dimension is "
 "invalid."
 msgstr ""
+"Aggiunge una colonna di tipo geometry ad una tabella già esistente. "
+"<varname>schema_name</varname> è il nome dello schema contenente la tabella. "
+"<varname>srid</varname> deve essere un numero intero che si riferisce a un "
+"record presente nella tabella  SPATIAL_REF_SYS. <varname>type</varname> deve "
+"essere una stringa corrispondente al tipo di geometria, per esempio "
+"'POLYGON' oppure 'MULTILINESTRING'. La funzione produce un errore se lo "
+"schema non esiste  (oppure non è visibile nel search_path attual), o la SRID "
+"specificata, il tipo di geometria o la dimensione sono invalidi."
 
 #. Tag: para
 #: reference_management.xml:104
@@ -108,6 +151,13 @@ msgid ""
 "column with this function is now equivalent to: <code>ALTER TABLE some_table "
 "ADD COLUMN geom geometry(Point,4326);</code>"
 msgstr ""
+"Cambiamento nella versione 2.0.0: questa funzione non aggiorna più "
+"geometry_columns perché geometry_columns non è più una tabella ma una vista "
+"che estrae automaticamente le informazioni necessarie dal system catalog. "
+"Inoltre per default la funzione non crea vincoli ma usa il modificatore di "
+"tipi integrato in PostgreSQL. Per esempio: creare una colonna con tipo POINT "
+"e con SRID 4326 con questa funzione, ora è equivalente a:<code>ALTER TABLE "
+"some_table ADD COLUMN geom geometry(Point,4326);</code>"
 
 #. Tag: para
 #: reference_management.xml:107
@@ -116,6 +166,9 @@ msgid ""
 "Changed: 2.0.0 If you require the old behavior of constraints use the "
 "default <varname>use_typmod</varname>, but set it to false."
 msgstr ""
+"Cambiamento nella versione 2.0.0: il vecchio funzionamento con i vincoli può "
+"essere attivato passando alla funzione l'argomento <varname>use_typmod</"
+"varname> impostato su false."
 
 #. Tag: para
 #: reference_management.xml:111
@@ -130,26 +183,34 @@ msgid ""
 "registered correctly in geometry_columns. Refer to <xref linkend="
 "\"Manual_Register_Spatial_Column\"/>."
 msgstr ""
+"Cambiamento in versione 2.0.0: le viste non possono più essere registrate in "
+"geometry_columns, a meno che le colonne geometry a cui fanno riferimento non "
+"siano state generate con typmod e usate senza funzioni wrapper. In questo "
+"caso la vista sarà registrata correttamente in geometry_columns perché "
+"eredita il typmod dalla colonna geometry originale. Le viste che usano "
+"funzioni che ritornano geometrie verranno registrate correttamente se il "
+"tipo delll'output della funzione verrà definito esplicitamente con la "
+"funzione CAST come typmod geometry."
 
 #. Tag: para
 #: reference_management.xml:117 reference_management.xml:194
 #, no-c-format
 msgid "&sfs_compliant;"
-msgstr ""
+msgstr "&sfs_compliant;"
 
 #. Tag: para
 #: reference_management.xml:118 reference_management.xml:195
-#: reference_management.xml:868
+#: reference_management.xml:869
 #, no-c-format
 msgid "&Z_support;"
-msgstr ""
+msgstr "&Z_support;"
 
 #. Tag: para
 #: reference_management.xml:119 reference_management.xml:196
-#: reference_management.xml:869
+#: reference_management.xml:870
 #, no-c-format
 msgid "&curve_support;"
-msgstr ""
+msgstr "&curve_support;"
 
 #. Tag: para
 #: reference_management.xml:120
@@ -158,6 +219,10 @@ msgid ""
 "Enhanced: 2.0.0 use_typmod argument introduced. Defaults to creating typmod "
 "geometry column instead of constraint-based."
 msgstr ""
+"Miglioramento nella version 2.0.0: introdotto il parametro use_typmod. Se "
+"settato su true (o se omesso) la funzione genererà una colonna geometry "
+"basata su typmod. Se settato su \"false\", la funzione genererà una colonna "
+"geometry con basata su vincoli geometrici."
 
 #. Tag: title
 #: reference_management.xml:124 reference_management.xml:203
@@ -167,9 +232,10 @@ msgstr ""
 #: reference_management.xml:506 reference_management.xml:548
 #: reference_management.xml:600 reference_management.xml:646
 #: reference_management.xml:683 reference_management.xml:784
+#: reference_management.xml:873
 #, no-c-format
 msgid "Examples"
-msgstr ""
+msgstr "Esempi"
 
 #. Tag: programlisting
 #: reference_management.xml:126
@@ -241,6 +307,75 @@ msgid ""
 " geom_c   | Point        | 4326 |     2\n"
 " geomcp_c | CurvePolygon | 4326 |     2"
 msgstr ""
+"-- Creiamo uno schema in sui salvare i dati\n"
+"CREATE SCHEMA my_schema;\n"
+"-- Creiamo una Semplice tabella\n"
+"CREATE TABLE my_schema.my_spatial_table (id serial);\n"
+"\n"
+"-- La descrizione mostra una semplice tabella con un'unica colonna \"id\"\n"
+"postgis=# \\d my_schema.my_spatial_table\n"
+"                                                         Table \"my_schema."
+"my_spatial_table\"\n"
+" Column |  Type   |                                Modifiers\n"
+"--------+---------"
+"+-------------------------------------------------------------------------\n"
+" id     | integer | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+"\n"
+"-- Aggiungiamo una colonna geometry\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom',4326,'POINT',2);\n"
+"\n"
+"-- Aggiungiamo un'altra colonna geometry settando il parametro use_typmod = "
+"false, \n"
+"-- generando quindo una colonna geometry basata su vincoli\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);\n"
+"\n"
+"--Di nuovo aggiungiamo un'altra colonna geometry usando il vecchio "
+"meccanismo con vincoli\n"
+"Add a curvepolygon using old constraint behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geomcp_c',4326,'CURVEPOLYGON',2, false);\n"
+"\n"
+"-- Descriviamo di nuovo la tabella con le nuove 3 colonne geometry\n"
+"\\d my_schema.my_spatial_table\n"
+"                            addgeometrycolumn                            \n"
+"-------------------------------------------------------------------------\n"
+" my_schema.my_spatial_table.geomcp_c SRID:4326 TYPE:CURVEPOLYGON DIMS:2 \n"
+"(1 row)\n"
+"\n"
+"                                    Table \"my_schema.my_spatial_table\"\n"
+"  Column  |         Type         |                                "
+"Modifiers                                \n"
+"----------+----------------------"
+"+-------------------------------------------------------------------------\n"
+" id       | integer              | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+" geom     | geometry(Point,4326) | \n"
+" geom_c   | geometry             | \n"
+" geomcp_c | geometry             | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_c\" CHECK (st_ndims(geom_c) = 2)\n"
+"    \"enforce_dims_geomcp_c\" CHECK (st_ndims(geomcp_c) = 2)\n"
+"    \"enforce_geotype_geom_c\" CHECK (geometrytype(geom_c) = 'POINT'::text "
+"OR geom_c IS NULL)\n"
+"    \"enforce_geotype_geomcp_c\" CHECK (geometrytype(geomcp_c) = "
+"'CURVEPOLYGON'::text OR geomcp_c IS NULL)\n"
+"    \"enforce_srid_geom_c\" CHECK (st_srid(geom_c) = 4326)\n"
+"    \"enforce_srid_geomcp_c\" CHECK (st_srid(geomcp_c) = 4326)\n"
+"    \n"
+"-- Le colonne geometry sono automaticamante registrate in geometry_columns\n"
+"SELECT f_geometry_column As col_name, type, srid, coord_dimension As ndims \n"
+"    FROM geometry_columns\n"
+"    WHERE f_table_name = 'my_spatial_table' AND f_table_schema = "
+"'my_schema';\n"
+"\n"
+" col_name |     type     | srid | ndims \n"
+"----------+--------------+------+-------\n"
+" geom     | Point        | 4326 |     2\n"
+" geom_c   | Point        | 4326 |     2\n"
+" geomcp_c | CurvePolygon | 4326 |     2"
 
 #. Tag: title
 #: reference_management.xml:130 reference_management.xml:208
@@ -249,10 +384,10 @@ msgstr ""
 #: reference_management.xml:470 reference_management.xml:512
 #: reference_management.xml:554 reference_management.xml:606
 #: reference_management.xml:652 reference_management.xml:689
-#: reference_management.xml:873
+#: reference_management.xml:886
 #, no-c-format
 msgid "See Also"
-msgstr ""
+msgstr "Vedi anche"
 
 #. Tag: para
 #: reference_management.xml:132
@@ -261,18 +396,20 @@ msgid ""
 ", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/"
 ">, <xref linkend=\"Manual_Register_Spatial_Column\"/>"
 msgstr ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/"
+">, <xref linkend=\"Manual_Register_Spatial_Column\"/>"
 
 #. Tag: refname
 #: reference_management.xml:138
 #, no-c-format
 msgid "DropGeometryColumn"
-msgstr ""
+msgstr "DropGeometryColumn"
 
 #. Tag: refpurpose
 #: reference_management.xml:140
 #, no-c-format
 msgid "Removes a geometry column from a spatial table."
-msgstr ""
+msgstr "Rimuove una colonna geometry da una tabella spaziale"
 
 #. Tag: funcsynopsis
 #: reference_management.xml:145
@@ -293,6 +430,20 @@ msgid ""
 "type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
 "type> <parameter>column_name</parameter></paramdef> </funcprototype>"
 msgstr ""
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>DropGeometryColumn</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> </funcprototype>"
 
 #. Tag: para
 #: reference_management.xml:190
@@ -302,6 +453,8 @@ msgid ""
 "need to match the f_table_schema field of the table's row in the "
 "geometry_columns table."
 msgstr ""
+"Rimuove una colonna geometry da una tabella spaziale. Il campo schema_name "
+"deve corrispondere al campo f_table_schema in geometry_columns."
 
 #. Tag: para
 #: reference_management.xml:198
@@ -312,6 +465,10 @@ msgid ""
 "can drop a geometry column like any other table column using <code>ALTER "
 "TABLE</code>"
 msgstr ""
+"Cambiamento nella versione 2.0.0: questa funzione è mantenuta per "
+"retrocompatibilità. Attualmente, essendo geometry_columns una vista basata "
+"sul system catalog, una colonna geometry può essere rimossa come qualsiasi "
+"altra colonna con <code>ALTER TABLE</code>"
 
 #. Tag: programlisting
 #: reference_management.xml:205
@@ -327,6 +484,16 @@ msgid ""
 "-- the standard alter table.  Both will deregister from geometry_columns\n"
 "ALTER TABLE my_schema.my_spatial_table DROP column geom;"
 msgstr ""
+"SELECT DropGeometryColumn ('my_schema','my_spatial_table','geom');\n"
+"                        ----RESULT output ---\n"
+"                                          dropgeometrycolumn\n"
+"------------------------------------------------------\n"
+" my_schema.my_spatial_table.geom effectively removed.\n"
+" \n"
+"-- In PostGIS 2.0+ questo comando è equivalente al comando standard\n"
+"-- alter table.  Ambedue i comandi rimuoveranno la colonna da "
+"geometry_columns\n"
+"ALTER TABLE my_schema.my_spatial_table DROP column geom;"
 
 #. Tag: para
 #: reference_management.xml:210
@@ -334,18 +501,19 @@ msgstr ""
 msgid ""
 ", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/>"
 msgstr ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/>"
 
 #. Tag: refname
 #: reference_management.xml:216
 #, no-c-format
 msgid "DropGeometryTable"
-msgstr ""
+msgstr "DropGeometryTable"
 
 #. Tag: refpurpose
 #: reference_management.xml:218
 #, no-c-format
 msgid "Drops a table and all its references in geometry_columns."
-msgstr ""
+msgstr "Rimuove una tabella e tutte le sue referenze da geometry_columns"
 
 #. Tag: funcsynopsis
 #: reference_management.xml:223
@@ -363,6 +531,17 @@ msgid ""
 "<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
 "type> <parameter>table_name</parameter></paramdef> </funcprototype>"
 msgstr ""
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropGeometryTable</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> </funcprototype>"
 
 #. Tag: para
 #: reference_management.xml:256
@@ -372,6 +551,9 @@ msgid ""
 "current_schema() on schema-aware pgsql installations if schema is not "
 "provided."
 msgstr ""
+"Rimuove una tabella spaziale e tutte le sue referenze da geometry_columns. "
+"Nota: utilizza la funzione PostgreSQL current_schema() se lo schema non è "
+"passato come argomento."
 
 #. Tag: para
 #: reference_management.xml:261
@@ -382,6 +564,10 @@ msgid ""
 "can drop a table with geometry columns like any other table using <code>DROP "
 "TABLE</code>"
 msgstr ""
+"Cambiamento nella versione 2.0.0: questa funzione è mantenuta per "
+"retrocompatibilità. Attualmente, essendo geometry_columns una vista basata "
+"sul system catalog, una tabella spaziale può essere rimossa come qualsiasi "
+"altra tabella con <code>DROP TABLE</code>"
 
 #. Tag: programlisting
 #: reference_management.xml:269
@@ -394,6 +580,12 @@ msgid ""
 "-- The above is now equivalent to --\n"
 "DROP TABLE my_schema.my_spatial_table;"
 msgstr ""
+"SELECT DropGeometryTable ('my_schema','my_spatial_table');\n"
+"----RESULT output ---\n"
+"my_schema.my_spatial_table dropped.\n"
+"                        \n"
+"-- Il comando sopra è ora equivalente a --\n"
+"DROP TABLE my_schema.my_spatial_table;"
 
 #. Tag: para
 #: reference_management.xml:274
@@ -402,18 +594,22 @@ msgid ""
 ", <xref linkend=\"DropGeometryColumn\"/>, <xref linkend=\"geometry_columns\"/"
 ">"
 msgstr ""
+", <xref linkend=\"DropGeometryColumn\"/>, <xref linkend=\"geometry_columns\"/"
+">"
 
 #. Tag: refname
 #: reference_management.xml:281
 #, no-c-format
 msgid "PostGIS_Full_Version"
-msgstr ""
+msgstr "PostGIS_Full_Version"
 
 #. Tag: refpurpose
 #: reference_management.xml:283
 #, no-c-format
 msgid "Reports full postgis version and build configuration infos."
 msgstr ""
+"Riporta informazioni sulla versione completa di Postgis e sulla "
+"configurazione della compilazione."
 
 #. Tag: funcprototype
 #: reference_management.xml:289
@@ -422,6 +618,8 @@ msgid ""
 "<funcdef>text <function>PostGIS_Full_Version</function></funcdef> "
 "<paramdef></paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_Full_Version</function></funcdef> "
+"<paramdef></paramdef>"
 
 #. Tag: para
 #: reference_management.xml:300
@@ -431,18 +629,29 @@ msgid ""
 "about synchronization between libraries and scripts suggesting upgrades as "
 "needed."
 msgstr ""
+"Riporta informazioni sulla versione completa di Postgis e sulla "
+"configurazione della compilazione. Effettua anche un confronto tra librerie "
+"e script e suggerisce l'aggiornamento dove ce ne sia bisogno."
 
 #. Tag: programlisting
 #: reference_management.xml:308
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "SELECT PostGIS_Full_Version();\n"
 "                                                           postgis_full_version\n"
 "----------------------------------------------------------------------------------\n"
+"POSTGIS=\"2.2.0dev r12699\" GEOS=\"3.5.0dev-CAPI-1.9.0 r3989\" SFCGAL="
+"\"1.0.4\" PROJ=\"Rel. 4.8.0, 6 March 2012\" \n"
+"GDAL=\"GDAL 1.11.0, released 2014/04/16\" LIBXML=\"2.7.8\" LIBJSON=\"0.12\" "
+"RASTER\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Full_Version();\n"
+"                                                           postgis_full_version\n"
+"----------------------------------------------------------------------------------\n"
 " POSTGIS=\"1.3.3\" GEOS=\"3.1.0-CAPI-1.5.0\" PROJ=\"Rel. 4.4.9, 29 Oct "
 "2004\" USE_STATS\n"
 "(1 row)"
-msgstr ""
 
 #. Tag: para
 #: reference_management.xml:314
@@ -452,18 +661,21 @@ msgid ""
 "\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
 "linkend=\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_Version\"/>"
 msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_Version\"/>"
 
 #. Tag: refname
 #: reference_management.xml:327
 #, no-c-format
 msgid "PostGIS_GEOS_Version"
-msgstr ""
+msgstr "PostGIS_GEOS_Version"
 
 #. Tag: refpurpose
 #: reference_management.xml:329
 #, no-c-format
 msgid "Returns the version number of the GEOS library."
-msgstr ""
+msgstr "Riporta il numero della versione della libreria GEOS."
 
 #. Tag: funcprototype
 #: reference_management.xml:335
@@ -472,6 +684,8 @@ msgid ""
 "<funcdef>text <function>PostGIS_GEOS_Version</function></funcdef> "
 "<paramdef></paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_GEOS_Version</function></funcdef> "
+"<paramdef></paramdef>"
 
 #. Tag: para
 #: reference_management.xml:346
@@ -480,6 +694,8 @@ msgid ""
 "Returns the version number of the GEOS library, or <varname>NULL</varname> "
 "if GEOS support is not enabled."
 msgstr ""
+"Riporta il numero di versione della libreria GEOS oppure <varname>NULL</"
+"varname> se il supporto a GEOS non è attivato."
 
 #. Tag: programlisting
 #: reference_management.xml:353
@@ -491,6 +707,11 @@ msgid ""
 " 3.1.0-CAPI-1.5.0\n"
 "(1 row)"
 msgstr ""
+"SELECT PostGIS_GEOS_Version();\n"
+" postgis_geos_version\n"
+"----------------------\n"
+" 3.1.0-CAPI-1.5.0\n"
+"(1 row)"
 
 #. Tag: para
 #: reference_management.xml:359
@@ -500,18 +721,21 @@ msgid ""
 "\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
 "<xref linkend=\"PostGIS_Version\"/>"
 msgstr ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
 
 #. Tag: refname
 #: reference_management.xml:369
 #, no-c-format
 msgid "PostGIS_LibXML_Version"
-msgstr ""
+msgstr "PostGIS_LibXML_Version"
 
 #. Tag: refpurpose
 #: reference_management.xml:371
 #, no-c-format
 msgid "Returns the version number of the libxml2 library."
-msgstr ""
+msgstr "Riporta il numero della versione della libreria libxml2."
 
 #. Tag: funcprototype
 #: reference_management.xml:377
@@ -520,18 +744,20 @@ msgid ""
 "<funcdef>text <function>PostGIS_LibXML_Version</function></funcdef> "
 "<paramdef></paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_LibXML_Version</function></funcdef> "
+"<paramdef></paramdef>"
 
 #. Tag: para
 #: reference_management.xml:388
 #, no-c-format
 msgid "Returns the version number of the LibXML2 library."
-msgstr ""
+msgstr "Riporta il numero della versione della libreria LibXML2."
 
 #. Tag: para
 #: reference_management.xml:389
 #, no-c-format
 msgid "Availability: 1.5"
-msgstr ""
+msgstr "Disponibilità: dalla versione 1.5."
 
 #. Tag: programlisting
 #: reference_management.xml:395
@@ -543,6 +769,11 @@ msgid ""
 " 2.7.6\n"
 "(1 row)"
 msgstr ""
+"SELECT PostGIS_LibXML_Version();\n"
+" postgis_libxml_version\n"
+"----------------------\n"
+" 2.7.6\n"
+"(1 row)"
 
 #. Tag: para
 #: reference_management.xml:401
@@ -552,18 +783,23 @@ msgid ""
 "\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref "
 "linkend=\"PostGIS_Version\"/>"
 msgstr ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
 
 #. Tag: refname
 #: reference_management.xml:411
 #, no-c-format
 msgid "PostGIS_Lib_Build_Date"
-msgstr ""
+msgstr "PostGIS_Lib_Build_Date"
 
 #. Tag: refpurpose
 #: reference_management.xml:413
 #, no-c-format
 msgid "<refpurpose>Returns build date of the PostGIS library.</refpurpose>"
 msgstr ""
+"<refpurpose>Riporta la data della compilazione della libreria PostGIS.</"
+"refpurpose>"
 
 #. Tag: funcprototype
 #: reference_management.xml:418
@@ -572,12 +808,15 @@ msgid ""
 "<funcdef>text <function>PostGIS_Lib_Build_Date</function></funcdef> "
 "<paramdef></paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
 
 #. Tag: para
 #: reference_management.xml:429
 #, no-c-format
 msgid "<para>Returns build date of the PostGIS library.</para>"
 msgstr ""
+"<para>Riporta la data della compilazione della libreria PostGIS.</para>"
 
 #. Tag: programlisting
 #: reference_management.xml:435
@@ -589,12 +828,17 @@ msgid ""
 " 2008-06-21 17:53:21\n"
 "(1 row)"
 msgstr ""
+"SELECT PostGIS_Lib_Build_Date();\n"
+" postgis_lib_build_date\n"
+"------------------------\n"
+" 2008-06-21 17:53:21\n"
+"(1 row)"
 
 #. Tag: refname
 #: reference_management.xml:441
 #, no-c-format
 msgid "PostGIS_Lib_Version"
-msgstr ""
+msgstr "PostGIS_Lib_Version"
 
 #. Tag: refpurpose
 #: reference_management.xml:443
@@ -602,6 +846,8 @@ msgstr ""
 msgid ""
 "<refpurpose>Returns the version number of the PostGIS library.</refpurpose>"
 msgstr ""
+"<refpurpose>Riporta il numero di versione della libreria PostGIS.</"
+"refpurpose>"
 
 #. Tag: funcprototype
 #: reference_management.xml:449
@@ -610,12 +856,14 @@ msgid ""
 "<funcdef>text <function>PostGIS_Lib_Version</function></funcdef> <paramdef></"
 "paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_Lib_Version</function></funcdef> <paramdef></"
+"paramdef>"
 
 #. Tag: para
 #: reference_management.xml:460
 #, no-c-format
 msgid "<para>Returns the version number of the PostGIS library.</para>"
-msgstr ""
+msgstr "<para>Riporta il numero di versione della libreria PostGIS.</para>"
 
 #. Tag: programlisting
 #: reference_management.xml:466
@@ -627,6 +875,11 @@ msgid ""
 " 1.3.3\n"
 "(1 row)"
 msgstr ""
+"SELECT PostGIS_Lib_Version();\n"
+" postgis_lib_version\n"
+"---------------------\n"
+" 1.3.3\n"
+"(1 row)"
 
 #. Tag: para
 #: reference_management.xml:472
@@ -636,18 +889,21 @@ msgid ""
 "\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
 "<xref linkend=\"PostGIS_Version\"/>"
 msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
 
 #. Tag: refname
 #: reference_management.xml:482
 #, no-c-format
 msgid "PostGIS_PROJ_Version"
-msgstr ""
+msgstr "PostGIS_PROJ_Version"
 
 #. Tag: refpurpose
 #: reference_management.xml:484
 #, no-c-format
 msgid "Returns the version number of the PROJ4 library."
-msgstr ""
+msgstr "Riporta il numero di versione della libreria PROJ4."
 
 #. Tag: funcprototype
 #: reference_management.xml:490
@@ -656,6 +912,8 @@ msgid ""
 "<funcdef>text <function>PostGIS_PROJ_Version</function></funcdef> "
 "<paramdef></paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_PROJ_Version</function></funcdef> "
+"<paramdef></paramdef>"
 
 #. Tag: para
 #: reference_management.xml:501
@@ -664,6 +922,8 @@ msgid ""
 "Returns the version number of the PROJ4 library, or <varname>NULL</varname> "
 "if PROJ4 support is not enabled."
 msgstr ""
+"Riporta il numero di versione della libreria PROJ4,  oppure <varname>NULL</"
+"varname> se il supporto a PROJ4 non è attivato."
 
 #. Tag: programlisting
 #: reference_management.xml:508
@@ -675,6 +935,11 @@ msgid ""
 " Rel. 4.4.9, 29 Oct 2004\n"
 "(1 row)"
 msgstr ""
+"SELECT PostGIS_PROJ_Version();\n"
+"  postgis_proj_version\n"
+"-------------------------\n"
+" Rel. 4.4.9, 29 Oct 2004\n"
+"(1 row)"
 
 #. Tag: para
 #: reference_management.xml:514 reference_management.xml:556
@@ -684,18 +949,23 @@ msgid ""
 "\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
 "linkend=\"PostGIS_Version\"/>"
 msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
 
 #. Tag: refname
 #: reference_management.xml:524
 #, no-c-format
 msgid "PostGIS_Scripts_Build_Date"
-msgstr ""
+msgstr "PostGIS_Scripts_Build_Date"
 
 #. Tag: refpurpose
 #: reference_management.xml:526
 #, no-c-format
 msgid "<refpurpose>Returns build date of the PostGIS scripts.</refpurpose>"
 msgstr ""
+"<refpurpose>Riporta la data della compilazione degli script PostGIS.</"
+"refpurpose>"
 
 #. Tag: funcprototype
 #: reference_management.xml:531
@@ -704,18 +974,20 @@ msgid ""
 "<funcdef>text <function>PostGIS_Scripts_Build_Date</function></funcdef> "
 "<paramdef></paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
 
 #. Tag: para
 #: reference_management.xml:542
 #, no-c-format
 msgid "<para>Returns build date of the PostGIS scripts.</para>"
-msgstr ""
+msgstr "<para>Riporta la data della compilazione degli script PostGIS.</para>"
 
 #. Tag: para
 #: reference_management.xml:544
 #, no-c-format
 msgid "Availability: 1.0.0RC1"
-msgstr ""
+msgstr "Disponibilità: dalla versione 1.0.0RC1"
 
 #. Tag: programlisting
 #: reference_management.xml:550
@@ -727,12 +999,17 @@ msgid ""
 " 2007-08-18 09:09:26\n"
 "(1 row)"
 msgstr ""
+"SELECT PostGIS_Scripts_Build_Date();\n"
+"  postgis_scripts_build_date\n"
+"-------------------------\n"
+" 2007-08-18 09:09:26\n"
+"(1 row)"
 
 #. Tag: refname
 #: reference_management.xml:566
 #, no-c-format
 msgid "PostGIS_Scripts_Installed"
-msgstr ""
+msgstr "PostGIS_Scripts_Installed"
 
 #. Tag: refpurpose
 #: reference_management.xml:568
@@ -741,6 +1018,8 @@ msgid ""
 "<refpurpose>Returns version of the postgis scripts installed in this "
 "database.</refpurpose>"
 msgstr ""
+"<refpurpose>Riporta il numero della versione degli script PostGIS installati "
+"del database.</refpurpose>"
 
 #. Tag: funcprototype
 #: reference_management.xml:574
@@ -749,6 +1028,8 @@ msgid ""
 "<funcdef>text <function>PostGIS_Scripts_Installed</function></funcdef> "
 "<paramdef></paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Installed</function></funcdef> "
+"<paramdef></paramdef>"
 
 #. Tag: para
 #: reference_management.xml:585
@@ -757,6 +1038,8 @@ msgid ""
 "<para>Returns version of the postgis scripts installed in this database.</"
 "para>"
 msgstr ""
+"<para>Riporta il numero della versione degli script PostGIS installati del "
+"database.</para>"
 
 #. Tag: para
 #: reference_management.xml:589
@@ -767,12 +1050,16 @@ msgid ""
 "existing database. See the <link linkend=\"upgrading\">Upgrading</link> "
 "section for more info."
 msgstr ""
+"Se l'output di questa funzione non corrisponde all'output di <xref linkend="
+"\"PostGIS_Scripts_Released\"/>, probabilmente gli script installati nel "
+"database devono essere aggiornati. Vedi la sezione  <link linkend=\"upgrading"
+"\">Aggiornamento</link> per più informazioni."
 
 #. Tag: para
 #: reference_management.xml:596 reference_management.xml:642
 #, no-c-format
 msgid "Availability: 0.9.0"
-msgstr ""
+msgstr "Disponibilità: dalla versione 0.9.0"
 
 #. Tag: programlisting
 #: reference_management.xml:602
@@ -784,6 +1071,11 @@ msgid ""
 " 1.5.0SVN\n"
 "(1 row)"
 msgstr ""
+"SELECT PostGIS_Scripts_Installed();\n"
+"  postgis_scripts_installed\n"
+"-------------------------\n"
+" 1.5.0SVN\n"
+"(1 row)"
 
 #. Tag: para
 #: reference_management.xml:608
@@ -792,12 +1084,14 @@ msgid ""
 ", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
 "\"PostGIS_Version\"/>"
 msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
 
 #. Tag: refname
 #: reference_management.xml:614
 #, no-c-format
 msgid "PostGIS_Scripts_Released"
-msgstr ""
+msgstr "PostGIS_Scripts_Released"
 
 #. Tag: refpurpose
 #: reference_management.xml:616
@@ -806,6 +1100,8 @@ msgid ""
 "<refpurpose>Returns the version number of the postgis.sql script released "
 "with the installed postgis lib.</refpurpose>"
 msgstr ""
+"<refpurpose>Riporta il numero di versione dello script postgis.sql "
+"rilasciato con la libreria PostGIS installata.</refpurpose>"
 
 #. Tag: funcprototype
 #: reference_management.xml:622
@@ -814,6 +1110,8 @@ msgid ""
 "<funcdef>text <function>PostGIS_Scripts_Released</function></funcdef> "
 "<paramdef></paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Released</function></funcdef> "
+"<paramdef></paramdef>"
 
 #. Tag: para
 #: reference_management.xml:633
@@ -822,6 +1120,8 @@ msgid ""
 "<para>Returns the version number of the postgis.sql script released with the "
 "installed postgis lib.</para>"
 msgstr ""
+"<para>Riporta il numero di versione dello script postgis.sql rilasciato con "
+"la libreria PostGIS installata.</para>"
 
 #. Tag: para
 #: reference_management.xml:637
@@ -830,6 +1130,8 @@ msgid ""
 "Starting with version 1.1.0 this function returns the same value of <xref "
 "linkend=\"PostGIS_Lib_Version\"/>. Kept for backward compatibility."
 msgstr ""
+"Dalla versione 1.1.0 questa funzione ritorna lo stesso valore di <xref "
+"linkend=\"PostGIS_Lib_Version\"/>. Viene mantenuta per retrocompatibilità."
 
 #. Tag: programlisting
 #: reference_management.xml:648
@@ -841,6 +1143,11 @@ msgid ""
 " 1.3.4SVN\n"
 "(1 row)"
 msgstr ""
+"SELECT PostGIS_Scripts_Released();\n"
+"  postgis_scripts_released\n"
+"-------------------------\n"
+" 1.3.4SVN\n"
+"(1 row)"
 
 #. Tag: para
 #: reference_management.xml:654
@@ -849,12 +1156,14 @@ msgid ""
 ", <xref linkend=\"PostGIS_Scripts_Installed\"/>, <xref linkend="
 "\"PostGIS_Lib_Version\"/>"
 msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Installed\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>"
 
 #. Tag: refname
 #: reference_management.xml:660
 #, no-c-format
 msgid "PostGIS_Version"
-msgstr ""
+msgstr "PostGIS_Version"
 
 #. Tag: refpurpose
 #: reference_management.xml:662
@@ -863,6 +1172,8 @@ msgid ""
 "<refpurpose>Returns PostGIS version number and compile-time options.</"
 "refpurpose>"
 msgstr ""
+"<refpurpose>Riporta il numero della versione di PostGIS e le opzioni della "
+"compilazione.</refpurpose>"
 
 #. Tag: funcprototype
 #: reference_management.xml:668
@@ -871,12 +1182,16 @@ msgid ""
 "<funcdef>text <function>PostGIS_Version</function></funcdef> <paramdef></"
 "paramdef>"
 msgstr ""
+"<funcdef>text <function>PostGIS_Version</function></funcdef> <paramdef></"
+"paramdef>"
 
 #. Tag: para
 #: reference_management.xml:679
 #, no-c-format
 msgid "<para>Returns PostGIS version number and compile-time options.</para>"
 msgstr ""
+"<para>Riporta il numero della versione di PostGIS e le opzioni della "
+"compilazione.</para>"
 
 #. Tag: programlisting
 #: reference_management.xml:685
@@ -888,6 +1203,11 @@ msgid ""
 " 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1\n"
 "(1 row)"
 msgstr ""
+"SELECT PostGIS_Version();\n"
+"                        postgis_version\n"
+"---------------------------------------\n"
+" 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1\n"
+"(1 row)"
 
 #. Tag: para
 #: reference_management.xml:691
@@ -897,12 +1217,15 @@ msgid ""
 "\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
 "linkend=\"PostGIS_PROJ_Version\"/>"
 msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>"
 
 #. Tag: refname
 #: reference_management.xml:701
 #, no-c-format
 msgid "Populate_Geometry_Columns"
-msgstr ""
+msgstr "Populate_Geometry_Columns"
 
 #. Tag: refpurpose
 #: reference_management.xml:703
@@ -914,6 +1237,12 @@ msgid ""
 "geometry columns with no type modifier to ones with type modifiers. To get "
 "old behavior set <varname>use_typmod=false</varname>"
 msgstr ""
+"Si accerta che le colonne geometry siano definite con typemod oppure abbiano "
+"gli appropriati vincoli spaziali e conseguentemente siano correttamente "
+"registrate nella vista <varname>geometry_columns</varname>. Per default la "
+"funzione converte tutte le colonne geometry definite senza typemod in "
+"geometry con typemod. Per ottenere il vecchio meccanismo con i vincoli "
+"spaziali si può settare la variabile <varname>use_typmod=false</varname>"
 
 #. Tag: funcsynopsis
 #: reference_management.xml:709
@@ -927,6 +1256,13 @@ msgid ""
 "paramdef> <paramdef><type>boolean </type> <parameter>use_typmod=true</"
 "parameter></paramdef> </funcprototype>"
 msgstr ""
+"<funcprototype> <funcdef>text <function>Populate_Geometry_Columns</"
+"function></funcdef> <paramdef><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>int <function>Populate_Geometry_Columns</function></"
+"funcdef> <paramdef><type>oid</type> <parameter>relation_oid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>use_typmod=true</"
+"parameter></paramdef> </funcprototype>"
 
 #. Tag: para
 #: reference_management.xml:728
@@ -936,6 +1272,9 @@ msgid ""
 "constraints to ensure they are registered correctly in "
 "<varname>geometry_columns</varname> table."
 msgstr ""
+"Si accerta che le colonne geometry siano definite con typemod oppure abbiano "
+"gli appropriati vincoli spaziali e conseguentemente siano correttamente "
+"registrate nella vista <varname>geometry_columns</varname>."
 
 #. Tag: para
 #: reference_management.xml:730
@@ -950,6 +1289,14 @@ msgid ""
 "particular, this means that every geometry column belonging to a table has "
 "at least three constraints:"
 msgstr ""
+"Per retrocompatibilità e per particolari casi come tabelle con ereditarietà, "
+"dove le tabelle che ereditano potrebbero avere altri tipi di geometria, il "
+"meccanismo con i vincoli spaziali è ancora supportato. Se questo dovesse "
+"essere necessario, è sufficiente passare come false il nuovo argomento "
+"opzionale <varname>use_typmod=false</varname>. In questo modo la colonna "
+"geometry verrà creata senza type modifier e avrà 3 vincoli definiti. In "
+"particolare questo significa che ogni colonna geometry avrà almeno 3 vincoli "
+"spaziali:"
 
 #. Tag: para
 #: reference_management.xml:738
@@ -958,6 +1305,8 @@ msgid ""
 "<varname>enforce_dims_the_geom</varname> - ensures every geometry has the "
 "same dimension (see <xref linkend=\"ST_NDims\"/>)"
 msgstr ""
+"<varname>enforce_dims_the_geom</varname> - assicura che tutte le geometrie "
+"hanno la stessa dimensione (vedi <xref linkend=\"ST_NDims\"/>)"
 
 #. Tag: para
 #: reference_management.xml:744
@@ -966,6 +1315,8 @@ msgid ""
 "<varname>enforce_geotype_the_geom</varname> - ensures every geometry is of "
 "the same type (see <xref linkend=\"GeometryType\"/>)"
 msgstr ""
+"<varname>enforce_geotype_the_geom</varname> - assicura che tutte le "
+"geometrie sono dello stesso tipo (vedi <xref linkend=\"GeometryType\"/>)"
 
 #. Tag: para
 #: reference_management.xml:750
@@ -974,6 +1325,8 @@ msgid ""
 "<varname>enforce_srid_the_geom</varname> - ensures every geometry is in the "
 "same projection (see <xref linkend=\"ST_SRID\"/>)"
 msgstr ""
+"<varname>enforce_srid_the_geom</varname> - - assicura che tutte le geometrie "
+"hanno la stessa proiezione (vedi <xref linkend=\"ST_SRID\"/>)"
 
 #. Tag: para
 #: reference_management.xml:756
@@ -985,6 +1338,12 @@ msgid ""
 "row is inserted into the geometry_columns table, otherwise, the exception is "
 "caught and an error notice is raised describing the problem."
 msgstr ""
+"Se alla funzione viene passato l' <varname>oid</varname> di una tabella, "
+"questa cerca di determinare srid, dimensione e tipo della geometria di tutte "
+"le colonne geometry della tabella, aggiungendo i vincoli se necessario. In "
+"caso di successo, una riga viene inserita nella tabella geometry_columns, "
+"altrimenti viene lanciata un'eccezione con un messaggio che descrive il "
+"problema."
 
 #. Tag: para
 #: reference_management.xml:763
@@ -996,6 +1355,10 @@ msgid ""
 "<varname>geometry_columns</varname> table, but nothing is done to enforce "
 "constraints."
 msgstr ""
+"Se alla funzione viene passato l'<varname>oid</varname> di una vista, questa "
+"cerca di determinare srid, dimensione e tipo della geometria di tutte le "
+"colonne geometry della vista, inserendo le appropriate righe nella tabella "
+"geometry_columns. I vincoli spaziali non vengono controllati né definiti."
 
 #. Tag: para
 #: reference_management.xml:769
@@ -1010,12 +1373,19 @@ msgid ""
 "returns the number of rows inserted into the <varname>geometry_columns</"
 "varname> table."
 msgstr ""
+"La variante senza parametri è un semplice wrapper per la variante "
+"parametrizzata, che prima svuota e poi riempie la tabella geometry_columns "
+"per ogni vista e tabella spaziale nel database, aggiungendo gli appropriate "
+"vincoli spaziali. La funzione ritorna un sommario con il numero delle "
+"colonne geometry trovate e di quelle inserite in <varname>geometry_columns</"
+"varname>. La versione parametrizzata ritorna semplicemente il numero di "
+"righe inserite nella tabella <varname>geometry_columns</varname>."
 
 #. Tag: para
 #: reference_management.xml:777
 #, no-c-format
 msgid "Availability: 1.4.0"
-msgstr ""
+msgstr "Disponibilità: 1.4.0"
 
 #. Tag: para
 #: reference_management.xml:778
@@ -1026,6 +1396,10 @@ msgid ""
 "behavior instead by using the new <varname>use_typmod</varname> and setting "
 "it to false."
 msgstr ""
+"Cambiamento nella versione 2.0.0: Per default la funzione utilizza ora type "
+"modifier invece di controllare i vincoli spaziali. il meccanismo con i "
+"vincoli può essere comunque attivato passando il parametro "
+"<varname>use_typmod</varname> e settandolo come false."
 
 #. Tag: para
 #: reference_management.xml:780
@@ -1035,6 +1409,10 @@ msgid ""
 "introduced that allows controlling if columns are created with typmodifiers "
 "or with check constraints."
 msgstr ""
+"Miglioramento nelle version 2.0.0: Il parametro opzionale "
+"<varname>use_typmod</varname>  è stato introdotto per permettere di "
+"controllare se le colonne devono essere create con typmodifier oppure con i "
+"vincoli spaziali."
 
 #. Tag: programlisting
 #: reference_management.xml:786
@@ -1059,10 +1437,32 @@ msgid ""
 "Modifiers                           \n"
 "--------+---------------------------"
 "+---------------------------------------------------------------\n"
-" gid    | integer                   | not null default nextval"
-"('myspatial_table_gid_seq'::regclass)\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
 " geom   | geometry(LineString,4326) |"
 msgstr ""
+"CREATE TABLE public.myspatial_table(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 "
+"4)',4326) );\n"
+"-- Il comando seguente usa typ modifiers.  Per poter funzionare devono "
+"essere presenti dati nella tabella.\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table'::regclass);\n"
+"\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"                        \n"
+"                        \n"
+"\\d myspatial_table\n"
+"\n"
+"                                   Table \"public.myspatial_table\"\n"
+" Column |           Type            |                           "
+"Modifiers                           \n"
+"--------+---------------------------"
+"+---------------------------------------------------------------\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
+" geom   | geometry(LineString,4326) |"
 
 #. Tag: programlisting
 #: reference_management.xml:788
@@ -1095,23 +1495,52 @@ msgid ""
 "OR geom IS NULL)\n"
 "    \"enforce_srid_geom\" CHECK (st_srid(geom) = 4326)"
 msgstr ""
+"-- Il comando seguente modificherà le colonne geometry usando i vincoli "
+"spaziali se non sono state definite con typmod oppure non hanno già i "
+"vincoli spaziali.\n"
+"--Per poter funzionare devono essere presenti dati nella tabella.\n"
+"CREATE TABLE public.myspatial_table_cs(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table_cs(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, "
+"3 4)',4326) );\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table_cs'::regclass, "
+"false);\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"\\d myspatial_table_cs\n"
+"\n"
+"                          Table \"public.myspatial_table_cs\"\n"
+" Column |   Type   |                            "
+"Modifiers                             \n"
+"--------+----------"
+"+------------------------------------------------------------------\n"
+" gid    | integer  | not null default nextval('myspatial_table_cs_gid_seq'::"
+"regclass)\n"
+" geom   | geometry | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom\" CHECK (st_ndims(geom) = 2)\n"
+"    \"enforce_geotype_geom\" CHECK (geometrytype(geom) = 'LINESTRING'::text "
+"OR geom IS NULL)\n"
+"    \"enforce_srid_geom\" CHECK (st_srid(geom) = 4326)"
 
 #. Tag: refname
 #: reference_management.xml:803
 #, no-c-format
 msgid "UpdateGeometrySRID"
-msgstr ""
+msgstr "UpdateGeometrySRID"
 
 #. Tag: refpurpose
 #: reference_management.xml:805
 #, no-c-format
 msgid ""
 "Updates the SRID of all features in a geometry column, geometry_columns "
-"metadata and srid table constraint"
+"metadata and srid. If it was enforced with constraints, the constraints will "
+"be updated with new srid constraint. If the old was enforced by type "
+"definition, the type definition will be changed."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_management.xml:810
+#: reference_management.xml:811
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
@@ -1132,12 +1561,95 @@ msgid ""
 "type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
 "</type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
+"<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>UpdateGeometrySRID</"
+"function></funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> </funcprototype>"
 
 #. Tag: para
-#: reference_management.xml:864
+#: reference_management.xml:865
 #, no-c-format
 msgid ""
 "Updates the SRID of all features in a geometry column, updating constraints "
 "and reference in geometry_columns. Note: uses current_schema() on schema-"
 "aware pgsql installations if schema is not provided."
 msgstr ""
+"Aggiorna lo SRID di tutti i record in una colonna geometry, aggiornando "
+"anche geometry_columns e il vincolo SRID della colonna. Usa la funzione "
+"current_schema() se lo schema non è passato come argomento."
+
+#. Tag: para
+#: reference_management.xml:874
+#, no-c-format
+msgid ""
+"This will change the srid of the roads table to 4326 from whatever it was "
+"before"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:875
+#, no-c-format
+msgid "SELECT UpdateGeometrySRID('roads','geom',4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:877
+#, no-c-format
+msgid "The prior example is equivalent to this DDL statement"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:878
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+"  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) \n"
+"    USING ST_SetSRID(geom,4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:880
+#, no-c-format
+msgid ""
+"If you got the projection wrong (or brought it in as unknown) in load and "
+"you wanted to transform to web mercator all in one shot You can do this with "
+"DDL but there is no equivalent PostGIS management function to do so in one "
+"go."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:883
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+" ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857) USING "
+"ST_Transform(ST_SetSRID(geom,4326),3857) ;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:888
+#, fuzzy, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+
+#~ msgid ""
+#~ "Updates the SRID of all features in a geometry column, geometry_columns "
+#~ "metadata and srid table constraint"
+#~ msgstr ""
+#~ "Aggiorna lo SRID di tutti i record in una colonna geometry. Vengono "
+#~ "aggiornati anche geometry_columns e il vincolo SRID della colonna."
diff --git a/doc/po/it_IT/reference_measure.xml.po b/doc/po/it_IT/reference_measure.xml.po
index b1ea344..c6b2853 100644
--- a/doc/po/it_IT/reference_measure.xml.po
+++ b/doc/po/it_IT/reference_measure.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -45,30 +45,30 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:143
-#: reference_measure.xml:195 reference_measure.xml:252
-#: reference_measure.xml:302 reference_measure.xml:371
-#: reference_measure.xml:417 reference_measure.xml:489
-#: reference_measure.xml:547 reference_measure.xml:621
-#: reference_measure.xml:739 reference_measure.xml:812
-#: reference_measure.xml:964 reference_measure.xml:1045
-#: reference_measure.xml:1127 reference_measure.xml:1187
-#: reference_measure.xml:1353 reference_measure.xml:1488
-#: reference_measure.xml:1566 reference_measure.xml:1627
-#: reference_measure.xml:1679 reference_measure.xml:1726
-#: reference_measure.xml:1775 reference_measure.xml:1828
-#: reference_measure.xml:1910 reference_measure.xml:1973
-#: reference_measure.xml:2022 reference_measure.xml:2082
-#: reference_measure.xml:2145 reference_measure.xml:2195
-#: reference_measure.xml:2228 reference_measure.xml:2273
-#: reference_measure.xml:2325 reference_measure.xml:2376
-#: reference_measure.xml:2428 reference_measure.xml:2516
-#: reference_measure.xml:2559 reference_measure.xml:2651
-#: reference_measure.xml:2700 reference_measure.xml:2737
-#: reference_measure.xml:2779 reference_measure.xml:2826
-#: reference_measure.xml:2884 reference_measure.xml:2950
-#: reference_measure.xml:2993 reference_measure.xml:3072
-#: reference_measure.xml:3220
+#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:144
+#: reference_measure.xml:196 reference_measure.xml:253
+#: reference_measure.xml:303 reference_measure.xml:372
+#: reference_measure.xml:418 reference_measure.xml:490
+#: reference_measure.xml:549 reference_measure.xml:620
+#: reference_measure.xml:738 reference_measure.xml:811
+#: reference_measure.xml:963 reference_measure.xml:1044
+#: reference_measure.xml:1126 reference_measure.xml:1186
+#: reference_measure.xml:1352 reference_measure.xml:1487
+#: reference_measure.xml:1565 reference_measure.xml:1635
+#: reference_measure.xml:1690 reference_measure.xml:1736
+#: reference_measure.xml:1785 reference_measure.xml:1838
+#: reference_measure.xml:1920 reference_measure.xml:1984
+#: reference_measure.xml:2033 reference_measure.xml:2093
+#: reference_measure.xml:2159 reference_measure.xml:2210
+#: reference_measure.xml:2243 reference_measure.xml:2288
+#: reference_measure.xml:2340 reference_measure.xml:2391
+#: reference_measure.xml:2443 reference_measure.xml:2531
+#: reference_measure.xml:2574 reference_measure.xml:2665
+#: reference_measure.xml:2714 reference_measure.xml:2751
+#: reference_measure.xml:2793 reference_measure.xml:2840
+#: reference_measure.xml:2906 reference_measure.xml:2972
+#: reference_measure.xml:3015 reference_measure.xml:3094
+#: reference_measure.xml:3242
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -83,57 +83,57 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:148
-#: reference_measure.xml:210 reference_measure.xml:265
-#: reference_measure.xml:311 reference_measure.xml:376
-#: reference_measure.xml:430 reference_measure.xml:2027
-#: reference_measure.xml:2232 reference_measure.xml:2287
-#: reference_measure.xml:2384 reference_measure.xml:2741
-#: reference_measure.xml:2787
+#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:149
+#: reference_measure.xml:211 reference_measure.xml:266
+#: reference_measure.xml:312 reference_measure.xml:377
+#: reference_measure.xml:431 reference_measure.xml:2038
+#: reference_measure.xml:2247 reference_measure.xml:2302
+#: reference_measure.xml:2399 reference_measure.xml:2755
+#: reference_measure.xml:2801
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:150
-#: reference_measure.xml:212 reference_measure.xml:267
-#: reference_measure.xml:313 reference_measure.xml:378
-#: reference_measure.xml:432 reference_measure.xml:499
+#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:151
+#: reference_measure.xml:213 reference_measure.xml:268
+#: reference_measure.xml:314 reference_measure.xml:379
+#: reference_measure.xml:433 reference_measure.xml:500
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:35 reference_measure.xml:102
-#: reference_measure.xml:153 reference_measure.xml:209
-#: reference_measure.xml:259 reference_measure.xml:310
-#: reference_measure.xml:380 reference_measure.xml:429
+#: reference_measure.xml:35 reference_measure.xml:103
+#: reference_measure.xml:154 reference_measure.xml:210
+#: reference_measure.xml:260 reference_measure.xml:311
+#: reference_measure.xml:381 reference_measure.xml:430
+#: reference_measure.xml:2847
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:39 reference_measure.xml:106
-#: reference_measure.xml:157 reference_measure.xml:217
-#: reference_measure.xml:317 reference_measure.xml:384
-#: reference_measure.xml:436 reference_measure.xml:505
-#: reference_measure.xml:563 reference_measure.xml:647
-#: reference_measure.xml:749 reference_measure.xml:850
-#: reference_measure.xml:1003 reference_measure.xml:1081
-#: reference_measure.xml:1156 reference_measure.xml:1253
-#: reference_measure.xml:1388 reference_measure.xml:1511
-#: reference_measure.xml:1580 reference_measure.xml:1652
-#: reference_measure.xml:1693 reference_measure.xml:1741
-#: reference_measure.xml:1789 reference_measure.xml:1846
-#: reference_measure.xml:1943 reference_measure.xml:1992
-#: reference_measure.xml:2033 reference_measure.xml:2238
-#: reference_measure.xml:2292 reference_measure.xml:2344
-#: reference_measure.xml:2390 reference_measure.xml:2438
-#: reference_measure.xml:2531 reference_measure.xml:2581
-#: reference_measure.xml:2747 reference_measure.xml:2791
-#: reference_measure.xml:2836 reference_measure.xml:2920
-#: reference_measure.xml:2960 reference_measure.xml:3009
-#: reference_measure.xml:3122 reference_measure.xml:3252
+#: reference_measure.xml:39 reference_measure.xml:107
+#: reference_measure.xml:158 reference_measure.xml:218
+#: reference_measure.xml:318 reference_measure.xml:385
+#: reference_measure.xml:437 reference_measure.xml:507
+#: reference_measure.xml:564 reference_measure.xml:646
+#: reference_measure.xml:748 reference_measure.xml:849
+#: reference_measure.xml:1002 reference_measure.xml:1080
+#: reference_measure.xml:1155 reference_measure.xml:1252
+#: reference_measure.xml:1387 reference_measure.xml:1510
+#: reference_measure.xml:1660 reference_measure.xml:1702
+#: reference_measure.xml:1751 reference_measure.xml:1799
+#: reference_measure.xml:1856 reference_measure.xml:1954
+#: reference_measure.xml:2003 reference_measure.xml:2044
+#: reference_measure.xml:2253 reference_measure.xml:2307
+#: reference_measure.xml:2359 reference_measure.xml:2405
+#: reference_measure.xml:2453 reference_measure.xml:2546
+#: reference_measure.xml:2596 reference_measure.xml:2761
+#: reference_measure.xml:2805 reference_measure.xml:2942
+#: reference_measure.xml:2982 reference_measure.xml:3031
+#: reference_measure.xml:3144 reference_measure.xml:3274
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -160,8 +160,8 @@ msgid ""
 "|               cp2d_line_pt\n"
 "-----------------------------------------------------------"
 "+------------------------------------------\n"
-" POINT(54.6993798867619 128.935022917228 11.5475869506606) | POINT"
-"(73.0769230769231 115.384615384615)"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | "
+"POINT(73.0769230769231 115.384615384615)"
 msgstr ""
 
 #. Tag: para
@@ -210,29 +210,29 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:65 reference_measure.xml:113
-#: reference_measure.xml:163 reference_measure.xml:222
-#: reference_measure.xml:275 reference_measure.xml:343
-#: reference_measure.xml:390 reference_measure.xml:462
-#: reference_measure.xml:521 reference_measure.xml:596
-#: reference_measure.xml:710 reference_measure.xml:784
-#: reference_measure.xml:937 reference_measure.xml:1008
-#: reference_measure.xml:1089 reference_measure.xml:1161
-#: reference_measure.xml:1458 reference_measure.xml:1517
-#: reference_measure.xml:1586 reference_measure.xml:1700
-#: reference_measure.xml:1748 reference_measure.xml:1796
-#: reference_measure.xml:1851 reference_measure.xml:1948
-#: reference_measure.xml:1998 reference_measure.xml:2040
-#: reference_measure.xml:2121 reference_measure.xml:2172
-#: reference_measure.xml:2204 reference_measure.xml:2247
-#: reference_measure.xml:2299 reference_measure.xml:2351
-#: reference_measure.xml:2397 reference_measure.xml:2491
-#: reference_measure.xml:2536 reference_measure.xml:2623
-#: reference_measure.xml:2677 reference_measure.xml:2713
-#: reference_measure.xml:2754 reference_measure.xml:2797
-#: reference_measure.xml:2842 reference_measure.xml:2926
-#: reference_measure.xml:2966 reference_measure.xml:3043
-#: reference_measure.xml:3263
+#: reference_measure.xml:65 reference_measure.xml:114
+#: reference_measure.xml:164 reference_measure.xml:223
+#: reference_measure.xml:276 reference_measure.xml:344
+#: reference_measure.xml:391 reference_measure.xml:463
+#: reference_measure.xml:523 reference_measure.xml:595
+#: reference_measure.xml:709 reference_measure.xml:783
+#: reference_measure.xml:936 reference_measure.xml:1007
+#: reference_measure.xml:1088 reference_measure.xml:1160
+#: reference_measure.xml:1457 reference_measure.xml:1516
+#: reference_measure.xml:1594 reference_measure.xml:1710
+#: reference_measure.xml:1758 reference_measure.xml:1806
+#: reference_measure.xml:1861 reference_measure.xml:1959
+#: reference_measure.xml:2009 reference_measure.xml:2051
+#: reference_measure.xml:2135 reference_measure.xml:2187
+#: reference_measure.xml:2219 reference_measure.xml:2262
+#: reference_measure.xml:2314 reference_measure.xml:2366
+#: reference_measure.xml:2412 reference_measure.xml:2506
+#: reference_measure.xml:2551 reference_measure.xml:2638
+#: reference_measure.xml:2691 reference_measure.xml:2727
+#: reference_measure.xml:2768 reference_measure.xml:2811
+#: reference_measure.xml:2864 reference_measure.xml:2948
+#: reference_measure.xml:2988 reference_measure.xml:3065
+#: reference_measure.xml:3285
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -277,13 +277,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:100 reference_measure.xml:151
+#: reference_measure.xml:100 reference_measure.xml:152
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM ?"
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:101 reference_measure.xml:503
+#: reference_measure.xml:1574 reference_measure.xml:2124
+#: reference_measure.xml:2172
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:108
+#: reference_measure.xml:109
 #, no-c-format
 msgid ""
 "-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
@@ -291,10 +299,10 @@ msgid ""
 "-- Note: currently no vertical datum support so Z is not transformed and "
 "assumed to be same units as final.\n"
 "SELECT ST_3DDistance(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 4)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
 "                ) As dist_3d,\n"
 "                ST_Distance(\n"
 "                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
@@ -309,7 +317,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:109
+#: reference_measure.xml:110
 #, no-c-format
 msgid ""
 "-- Multilinestring and polygon both 3d and 2d distance\n"
@@ -327,7 +335,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:115
+#: reference_measure.xml:116
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DClosestPoint\"/>, <xref linkend=\"ST_3DDWithin\"/>, "
@@ -336,13 +344,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:121
+#: reference_measure.xml:122
 #, no-c-format
 msgid "ST_3DDWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:123
+#: reference_measure.xml:124
 #, no-c-format
 msgid ""
 "For 3d (z) geometry type Returns true if two geometries 3d distance is "
@@ -350,7 +358,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:127
+#: reference_measure.xml:128
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_3DDWithin</function></funcdef> "
@@ -361,7 +369,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:145
+#: reference_measure.xml:146
 #, no-c-format
 msgid ""
 "For geometry type returns true if the 3d distance between two objects is "
@@ -369,7 +377,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:159
+#: reference_measure.xml:160
 #, no-c-format
 msgid ""
 "-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
@@ -377,17 +385,17 @@ msgid ""
 "-- Note: currently no vertical datum support so Z is not transformed and "
 "assumed to be same units as final.\n"
 "SELECT ST_3DDWithin(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 4)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
 "                        126.8\n"
 "                ) As within_dist_3d,\n"
 "ST_DWithin(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 4)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
 "                        126.8\n"
 "                ) As within_dist_2d;\n"
 "\n"
@@ -397,7 +405,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:165
+#: reference_measure.xml:166
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
@@ -405,13 +413,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:171
+#: reference_measure.xml:172
 #, no-c-format
 msgid "ST_3DDFullyWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:173
+#: reference_measure.xml:174
 #, no-c-format
 msgid ""
 "Returns true if all of the 3D geometries are within the specified distance "
@@ -419,7 +427,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:179
+#: reference_measure.xml:180
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_3DDFullyWithin</function></funcdef> "
@@ -430,7 +438,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:197
+#: reference_measure.xml:198
 #, no-c-format
 msgid ""
 "Returns true if the 3D geometries are fully within the specified distance of "
@@ -441,9 +449,9 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:204 reference_measure.xml:261
-#: reference_measure.xml:1243 reference_measure.xml:1837
-#: reference_measure.xml:1923 reference_measure.xml:2095
+#: reference_measure.xml:205 reference_measure.xml:262
+#: reference_measure.xml:1242 reference_measure.xml:1847
+#: reference_measure.xml:1933 reference_measure.xml:2108
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -451,7 +459,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:218
+#: reference_measure.xml:219
 #, no-c-format
 msgid ""
 "-- This compares the difference between fully within and distance within as "
@@ -471,7 +479,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:224
+#: reference_measure.xml:225
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
@@ -479,13 +487,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:230
+#: reference_measure.xml:231
 #, no-c-format
 msgid "ST_3DIntersects"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:232
+#: reference_measure.xml:233
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries \"spatially intersect\" in 3d - only for "
@@ -493,7 +501,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:238
+#: reference_measure.xml:239
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_3DIntersects</function></funcdef> <paramdef> "
@@ -502,7 +510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:253 reference_measure.xml:2083
+#: reference_measure.xml:254 reference_measure.xml:2096
 #, no-c-format
 msgid ""
 "Overlaps, Touches, Within all imply spatial intersection. If any of the "
@@ -511,20 +519,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:268
+#: reference_measure.xml:269
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: ?"
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:271 reference_measure.xml:2113
-#: reference_measure.xml:2161
+#: reference_measure.xml:272 reference_measure.xml:2127
+#: reference_measure.xml:2176
 #, no-c-format
 msgid "Geometry Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:272
+#: reference_measure.xml:273
 #, no-c-format
 msgid ""
 "SELECT ST_3DIntersects(pt, line), ST_Intersects(pt,line) \n"
@@ -537,19 +545,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:282
+#: reference_measure.xml:283
 #, no-c-format
 msgid "ST_3DLongestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:284
+#: reference_measure.xml:285
 #, no-c-format
 msgid "Returns the 3-dimensional longest line between two geometries"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:289
+#: reference_measure.xml:290
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_3DLongestLine</function></funcdef> "
@@ -558,7 +566,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:304
+#: reference_measure.xml:305
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional longest line between two geometries. The function "
@@ -569,13 +577,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:322
+#: reference_measure.xml:323
 #, no-c-format
 msgid "linestring and point -- both 3d and 2d longest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:323
+#: reference_measure.xml:324
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
@@ -592,13 +600,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:327
+#: reference_measure.xml:328
 #, no-c-format
 msgid "linestring and multipoint -- both 3d and 2d longest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:328
+#: reference_measure.xml:329
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
@@ -615,13 +623,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:332
+#: reference_measure.xml:333
 #, no-c-format
 msgid "Multilinestring and polygon both 3d and 2d longest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:333
+#: reference_measure.xml:334
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DLongestLine(poly, mline)) As lol3d,\n"
@@ -637,7 +645,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:345
+#: reference_measure.xml:346
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
@@ -645,13 +653,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:351
+#: reference_measure.xml:352
 #, no-c-format
 msgid "ST_3DMaxDistance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:353
+#: reference_measure.xml:354
 #, no-c-format
 msgid ""
 "For geometry type Returns the 3-dimensional cartesian maximum distance "
@@ -659,7 +667,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:358
+#: reference_measure.xml:359
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_3DMaxDistance</function></funcdef> "
@@ -668,7 +676,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:373
+#: reference_measure.xml:374
 #, no-c-format
 msgid ""
 "For geometry type returns the 3-dimensional maximum cartesian distance "
@@ -676,7 +684,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:386
+#: reference_measure.xml:387
 #, no-c-format
 msgid ""
 "-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
@@ -684,16 +692,16 @@ msgid ""
 "-- Note: currently no vertical datum support so Z is not transformed and "
 "assumed to be same units as final.\n"
 "SELECT ST_3DMaxDistance(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 10000)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
 "                ) As dist_3d,\n"
 "                ST_MaxDistance(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 10000)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
 "                ) As dist_2d;\n"
 "\n"
 "     dist_3d      |     dist_2d\n"
@@ -702,7 +710,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:392
+#: reference_measure.xml:393
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, "
@@ -710,19 +718,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:397
+#: reference_measure.xml:398
 #, no-c-format
 msgid "ST_3DShortestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:399
+#: reference_measure.xml:400
 #, no-c-format
 msgid "Returns the 3-dimensional shortest line between two geometries"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:404
+#: reference_measure.xml:405
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_3DShortestLine</function></funcdef> "
@@ -731,7 +739,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:419
+#: reference_measure.xml:420
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional shortest line between two geometries. The function "
@@ -746,13 +754,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:441
+#: reference_measure.xml:442
 #, no-c-format
 msgid "linestring and point -- both 3d and 2d shortest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:442
+#: reference_measure.xml:443
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
@@ -772,13 +780,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:446
+#: reference_measure.xml:447
 #, no-c-format
 msgid "linestring and multipoint -- both 3d and 2d shortest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:447
+#: reference_measure.xml:448
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
@@ -798,13 +806,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:451
+#: reference_measure.xml:452
 #, no-c-format
 msgid "Multilinestring and polygon both 3d and 2d shortest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:452
+#: reference_measure.xml:453
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DShortestLine(poly, mline)) As shl3d,\n"
@@ -823,7 +831,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:464
+#: reference_measure.xml:465
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
@@ -831,13 +839,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:469
+#: reference_measure.xml:470
 #, no-c-format
 msgid "ST_Area"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:471
+#: reference_measure.xml:472
 #, no-c-format
 msgid ""
 "Returns the area of the surface if it is a polygon or multi-polygon. For "
@@ -846,7 +854,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:475
+#: reference_measure.xml:476
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_Area</function></funcdef> "
@@ -858,38 +866,38 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:491
+#: reference_measure.xml:492
 #, no-c-format
 msgid ""
 "Returns the area of the geometry if it is a polygon or multi-polygon. Return "
 "the area measurement of an ST_Surface or ST_MultiSurface value. For geometry "
 "Area is in the units of the srid. For geography area is in square meters and "
 "defaults to measuring about the spheroid of the geography (currently only "
-"WGS84). To measure around the faster but less accurate sphere -- ST_Area"
-"(geog,false)."
+"WGS84). To measure around the faster but less accurate sphere -- "
+"ST_Area(geog,false)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:496
+#: reference_measure.xml:497
 #, no-c-format
 msgid "Enhanced: 2.0.0 - support for 2D polyhedral surfaces was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:497 reference_measure.xml:642
-#: reference_measure.xml:1572 reference_measure.xml:1937
+#: reference_measure.xml:498 reference_measure.xml:641
+#: reference_measure.xml:1571 reference_measure.xml:1947
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:498
+#: reference_measure.xml:499
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.2, 9.5.3"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:500
+#: reference_measure.xml:501
 #, no-c-format
 msgid ""
 "For polyhedral surfaces, only supports 2D polyhedral surfaces (not 2.5D). "
@@ -898,7 +906,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:506
+#: reference_measure.xml:508
 #, no-c-format
 msgid ""
 "Return area in square feet for a plot of Massachusetts land and multiply by "
@@ -907,7 +915,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:509
+#: reference_measure.xml:511
 #, no-c-format
 msgid ""
 "SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm\n"
@@ -921,7 +929,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:510
+#: reference_measure.xml:512
 #, no-c-format
 msgid ""
 "Return area square feet and transform to Massachusetts state plane meters "
@@ -931,7 +939,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:513
+#: reference_measure.xml:515
 #, no-c-format
 msgid ""
 "SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As "
@@ -946,7 +954,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:515
+#: reference_measure.xml:517
 #, no-c-format
 msgid ""
 "Return area square feet and square meters using Geography data type. Note "
@@ -957,7 +965,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:518
+#: reference_measure.xml:520
 #, no-c-format
 msgid ""
 "SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,"
@@ -983,7 +991,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:522
+#: reference_measure.xml:524
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeographyFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
@@ -991,22 +999,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:528
+#: reference_measure.xml:530
 #, no-c-format
 msgid "ST_Azimuth"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:530
+#: reference_measure.xml:532
 #, no-c-format
 msgid ""
-"Returns the angle in radians from the horizontal of the vector defined by "
-"pointA and pointB. Angle is computed clockwise from down-to-up: on the "
-"clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2."
+"Returns the north-based azimuth as the angle in radians measured clockwise "
+"from the vertical on pointA to pointB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:533
+#: reference_measure.xml:535
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_Azimuth</function></funcdef> "
@@ -1019,16 +1026,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:549
+#: reference_measure.xml:551
 #, no-c-format
 msgid ""
-"Returns the azimuth of the segment defined by the given Point geometries, or "
-"NULL if the two points are coincident. Return value is in radians. Angle is "
-"computed clockwise from down-to-up: on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2"
+"Returns the azimuth in radians of the segment defined by the given point-"
+"geometries, or NULL if the two points are coincident. The azimuth is north-"
+"based and is measured clockwise: North = 0; East = PI/2; South = PI; West = "
+"3PI/2."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:553
+#: reference_measure.xml:554
 #, no-c-format
 msgid ""
 "The Azimuth is mathematical concept defined as the angle, in this case "
@@ -1036,19 +1044,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:556
+#: reference_measure.xml:557
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:557
+#: reference_measure.xml:558
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:558
+#: reference_measure.xml:559
 #, no-c-format
 msgid ""
 "Azimuth is especially useful in conjunction with ST_Translate for shifting "
@@ -1058,69 +1066,70 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:564
+#: reference_measure.xml:565
 #, no-c-format
 msgid "Geometry Azimuth in degrees"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:565
+#: reference_measure.xml:566
 #, no-c-format
 msgid ""
-"SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as degAz,\n"
+"SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as "
+"degA_B,\n"
 "        ST_Azimuth(ST_Point(75,100), ST_Point(25,45))/(2*pi())*360 As "
-"degAzrev;\n"
+"degB_A;\n"
 "        \n"
 "-- NOTE easier to remember syntax using PostgreSQL built-in degrees function "
 "--\n"
 "-- Both yield same answer --\n"
-"SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degAz,\n"
-"        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As "
-"degAzrev;\n"
+"SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degA_B,\n"
+"        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As degB_A;\n"
 "\n"
-"      degaz       |     degazrev\n"
+"      dega_b       |     degb_a\n"
 "------------------+------------------\n"
 " 42.2736890060937 | 222.273689006094"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:575
+#: reference_measure.xml:576
 #, no-c-format
 msgid ""
-"degAz is path to travel (azimuth), horizontal line (which starts at the "
-"start point and ends where we want the end point to fall) and points (start "
-"point: 25,45 is in green)"
+"Green: the start Point(25,45) with its vertical. Yellow: degA_B as the path "
+"to travel (azimuth)."
 msgstr ""
 
 #. Tag: para
 #: reference_measure.xml:585
 #, no-c-format
 msgid ""
-"degAzrev is azimuth curve shown, horizontal line (which starts at the start "
-"point and ends where we want the end point to fall) and points (start point: "
-"75,100 is in green)"
+"Green: the start Point(75,100) with its vertical. Yellow: degB_A as the path "
+"to travel (azimuth)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:597
+#: reference_measure.xml:596
 #, no-c-format
-msgid ", <xref linkend=\"ST_Translate\"/>"
+msgid ""
+", <xref linkend=\"ST_Translate\"/>, <xref linkend=\"ST_Project\"/>, <ulink "
+"url=\"http://www.postgresql.org/docs/current/interactive/functions-math.html"
+"\">PostgreSQL Math Functions</ulink>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:604
+#: reference_measure.xml:603
 #, no-c-format
 msgid "ST_Centroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:606
+#: reference_measure.xml:605
 #, no-c-format
 msgid "Returns the geometric center of a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:611
+#: reference_measure.xml:610
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Centroid</function></funcdef> "
@@ -1128,12 +1137,12 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:623
+#: reference_measure.xml:622
 #, no-c-format
 msgid ""
 "Computes the geometric center of a geometry, or equivalently, the center of "
 "mass of the geometry as a <varname>POINT</varname>. For [<varname>MULTI</"
-"varname>]<varname>POINT</varname>s, this is computed as the arithmetric mean "
+"varname>]<varname>POINT</varname>s, this is computed as the arithmetic mean "
 "of the input coordinates. For [<varname>MULTI</varname>]<varname>LINESTRING</"
 "varname>s, this is computed as the weighted length of each line segment. For "
 "[<varname>MULTI</varname>]<varname>POLYGON</varname>s, \"weight\" is thought "
@@ -1143,7 +1152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:635
+#: reference_measure.xml:634
 #, no-c-format
 msgid ""
 "The centroid is equal to the centroid of the set of component Geometries of "
@@ -1152,7 +1161,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:639
+#: reference_measure.xml:638
 #, no-c-format
 msgid ""
 "Computation will be more accurate if performed by the GEOS module (enabled "
@@ -1160,13 +1169,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:643
+#: reference_measure.xml:642
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.4, 9.5.5"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:649
+#: reference_measure.xml:648
 #, no-c-format
 msgid ""
 "In each of the following illustrations, the blue dot represents the centroid "
@@ -1174,31 +1183,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:662
+#: reference_measure.xml:661
 #, no-c-format
 msgid "Centroid of a <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:673
+#: reference_measure.xml:672
 #, no-c-format
 msgid "Centroid of a <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:686
+#: reference_measure.xml:685
 #, no-c-format
 msgid "Centroid of a <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:697
+#: reference_measure.xml:696
 #, no-c-format
 msgid "Centroid of a <varname>GEOMETRYCOLLECTION</varname>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:706
+#: reference_measure.xml:705
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 "
@@ -1210,13 +1219,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:718
+#: reference_measure.xml:717
 #, no-c-format
 msgid "ST_ClosestPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:720
+#: reference_measure.xml:719
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the 2-dimensional point on g1 that is closest to g2. "
@@ -1224,7 +1233,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:726
+#: reference_measure.xml:725
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ClosestPoint</function></funcdef> "
@@ -1233,7 +1242,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:741
+#: reference_measure.xml:740
 #, no-c-format
 msgid ""
 "<para>Returns the 2-dimensional point on g1 that is closest to g2. This is "
@@ -1241,7 +1250,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:744
+#: reference_measure.xml:743
 #, no-c-format
 msgid ""
 "If you have a 3D Geometry, you may prefer to use <xref linkend="
@@ -1249,15 +1258,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:745 reference_measure.xml:1690
-#: reference_measure.xml:1842 reference_measure.xml:2433
-#: reference_measure.xml:3005
+#: reference_measure.xml:744 reference_measure.xml:1699
+#: reference_measure.xml:1852 reference_measure.xml:2448
+#: reference_measure.xml:3027
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:759
+#: reference_measure.xml:758
 #, no-c-format
 msgid ""
 "Closest between point and linestring is the point itself, but closest point "
@@ -1265,7 +1274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:763
+#: reference_measure.xml:762
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_ClosestPoint(pt,line)) AS cp_pt_line, \n"
@@ -1282,13 +1291,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:771
+#: reference_measure.xml:770
 #, no-c-format
 msgid "closest point on polygon A to polygon B"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:774
+#: reference_measure.xml:773
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -1305,7 +1314,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:786
+#: reference_measure.xml:785
 #, no-c-format
 msgid ""
 ",<xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
@@ -1313,13 +1322,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:792
+#: reference_measure.xml:791
 #, no-c-format
 msgid "ST_Contains"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:794
+#: reference_measure.xml:793
 #, no-c-format
 msgid ""
 "Returns true if and only if no points of B lie in the exterior of A, and at "
@@ -1327,7 +1336,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:799
+#: reference_measure.xml:798
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Contains</function></funcdef> "
@@ -1336,7 +1345,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:814
+#: reference_measure.xml:813
 #, no-c-format
 msgid ""
 "Geometry A contains Geometry B if and only if no points of B lie in the "
@@ -1348,7 +1357,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:818
+#: reference_measure.xml:817
 #, no-c-format
 msgid ""
 "Returns TRUE if geometry B is completely inside geometry A. For this "
@@ -1360,27 +1369,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:823 reference_measure.xml:1050
-#: reference_measure.xml:1132 reference_measure.xml:1497
-#: reference_measure.xml:2564 reference_measure.xml:2910
-#: reference_measure.xml:3227
+#: reference_measure.xml:822 reference_measure.xml:1049
+#: reference_measure.xml:1131 reference_measure.xml:1496
+#: reference_measure.xml:2579 reference_measure.xml:2932
+#: reference_measure.xml:3249
 #, no-c-format
 msgid "Performed by the GEOS module"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:826 reference_measure.xml:988
-#: reference_measure.xml:1053 reference_measure.xml:1135
-#: reference_measure.xml:1239 reference_measure.xml:1494
-#: reference_measure.xml:3108 reference_measure.xml:3230
+#: reference_measure.xml:825 reference_measure.xml:987
+#: reference_measure.xml:1052 reference_measure.xml:1134
+#: reference_measure.xml:1238 reference_measure.xml:1493
+#: reference_measure.xml:3130 reference_measure.xml:3252
 #, no-c-format
 msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:830 reference_measure.xml:992
-#: reference_measure.xml:1061 reference_measure.xml:1139
-#: reference_measure.xml:3234
+#: reference_measure.xml:829 reference_measure.xml:991
+#: reference_measure.xml:1060 reference_measure.xml:1138
+#: reference_measure.xml:3256
 #, no-c-format
 msgid ""
 "Do not use this function with invalid geometries. You will get unexpected "
@@ -1388,7 +1397,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:833
+#: reference_measure.xml:832
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -1397,10 +1406,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:838 reference_measure.xml:1072
-#: reference_measure.xml:1147 reference_measure.xml:1503
-#: reference_measure.xml:2104 reference_measure.xml:2573
-#: reference_measure.xml:3242
+#: reference_measure.xml:837 reference_measure.xml:1071
+#: reference_measure.xml:1146 reference_measure.xml:1502
+#: reference_measure.xml:2117 reference_measure.xml:2588
+#: reference_measure.xml:3264
 #, no-c-format
 msgid ""
 "NOTE: this is the \"allowable\" version that returns a boolean, not an "
@@ -1408,7 +1417,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:841
+#: reference_measure.xml:840
 #, no-c-format
 msgid ""
 "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - same as within(geometry B, geometry "
@@ -1416,14 +1425,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:843
+#: reference_measure.xml:842
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.31"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:845 reference_measure.xml:1076
-#: reference_measure.xml:1151
+#: reference_measure.xml:844 reference_measure.xml:1075
+#: reference_measure.xml:1150
 #, no-c-format
 msgid ""
 "There are certain subtleties to ST_Contains and ST_Within that are not "
@@ -1433,7 +1442,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:852
+#: reference_measure.xml:851
 #, no-c-format
 msgid ""
 "The <function>ST_Contains</function> predicate returns <varname>TRUE</"
@@ -1441,33 +1450,33 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:864
+#: reference_measure.xml:863
 #, no-c-format
 msgid "<varname>LINESTRING</varname> / <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:874 reference_measure.xml:3186
+#: reference_measure.xml:873 reference_measure.xml:3208
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>POINT</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:885 reference_measure.xml:925
-#: reference_measure.xml:3155
+#: reference_measure.xml:884 reference_measure.xml:924
+#: reference_measure.xml:3177
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:895 reference_measure.xml:2610
-#: reference_measure.xml:3135 reference_measure.xml:3145
+#: reference_measure.xml:894 reference_measure.xml:2625
+#: reference_measure.xml:3157 reference_measure.xml:3167
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:903
+#: reference_measure.xml:902
 #, no-c-format
 msgid ""
 "The <function>ST_Contains</function> predicate returns <varname>FALSE</"
@@ -1475,13 +1484,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:915
+#: reference_measure.xml:914
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:933
+#: reference_measure.xml:932
 #, no-c-format
 msgid ""
 "-- A circle within a circle\n"
@@ -1506,8 +1515,8 @@ msgid ""
 "-- Example demonstrating difference between contains and contains properly\n"
 "SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
 "acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
-"   ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, ST_ContainsProperly"
-"(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+"   ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
 "FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
 "                         ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
 "                         ( ST_Point(1,1) )\n"
@@ -1522,7 +1531,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:938
+#: reference_measure.xml:937
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ContainsProperly\"/>, <xref linkend=\"ST_Covers\"/>, "
@@ -1531,13 +1540,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:944
+#: reference_measure.xml:943
 #, no-c-format
 msgid "ST_ContainsProperly"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:946
+#: reference_measure.xml:945
 #, no-c-format
 msgid ""
 "Returns true if B intersects the interior of A but not the boundary (or "
@@ -1545,7 +1554,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:951
+#: reference_measure.xml:950
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_ContainsProperly</function></funcdef> "
@@ -1554,7 +1563,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:966
+#: reference_measure.xml:965
 #, no-c-format
 msgid ""
 "Returns true if B intersects the interior of A but not the boundary (or "
@@ -1562,13 +1571,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:968
+#: reference_measure.xml:967
 #, no-c-format
 msgid "A does not contain properly itself, but does contain itself."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:969
+#: reference_measure.xml:968
 #, no-c-format
 msgid ""
 "Every point of the other geometry is a point of this geometry's interior. "
@@ -1577,7 +1586,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:973
+#: reference_measure.xml:972
 #, no-c-format
 msgid ""
 "From JTS docs slightly reworded: The advantage to using this predicate over "
@@ -1587,7 +1596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:975
+#: reference_measure.xml:974
 #, no-c-format
 msgid ""
 "An example use case for this predicate is computing the intersections of a "
@@ -1598,13 +1607,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:985
+#: reference_measure.xml:984
 #, no-c-format
 msgid "Availability: 1.4.0 - requires GEOS >= 3.1.0."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:995
+#: reference_measure.xml:994
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -1613,7 +1622,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1004
+#: reference_measure.xml:1003
 #, no-c-format
 msgid ""
 "--a circle within a circle\n"
@@ -1639,8 +1648,8 @@ msgid ""
 " --example demonstrating difference between contains and contains properly\n"
 " SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
 "acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
-" ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, ST_ContainsProperly"
-"(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+" ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
 " FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
 "                  ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
 "                  ( ST_Point(1,1) )\n"
@@ -1655,7 +1664,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1009
+#: reference_measure.xml:1008
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_Contains\"/>, <xref "
@@ -1664,19 +1673,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1015
+#: reference_measure.xml:1014
 #, no-c-format
 msgid "ST_Covers"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1017
+#: reference_measure.xml:1016
 #, no-c-format
 msgid "Returns 1 (TRUE) if no point in Geometry B is outside Geometry A"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1022
+#: reference_measure.xml:1021
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
@@ -1689,7 +1698,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1047
+#: reference_measure.xml:1046
 #, no-c-format
 msgid ""
 "Returns 1 (TRUE) if no point in Geometry/Geography B is outside Geometry/"
@@ -1697,13 +1706,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1057
+#: reference_measure.xml:1056
 #, no-c-format
 msgid "For geography only Polygon covers point is supported."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1064
+#: reference_measure.xml:1063
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -1712,31 +1721,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1069 reference_measure.xml:1141
+#: reference_measure.xml:1068 reference_measure.xml:1140
 #, no-c-format
 msgid "Availability: 1.2.2 - requires GEOS >= 3.0"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1070
+#: reference_measure.xml:1069
 #, no-c-format
 msgid "Availability: 1.5 - support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1075 reference_measure.xml:1150
+#: reference_measure.xml:1074 reference_measure.xml:1149
 #, no-c-format
 msgid "Not an OGC standard, but Oracle has it too."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1082
+#: reference_measure.xml:1081
 #, no-c-format
 msgid "Geometry example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1083
+#: reference_measure.xml:1082
 #, no-c-format
 msgid ""
 "--a circle covering a circle\n"
@@ -1754,13 +1763,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1084
+#: reference_measure.xml:1083
 #, no-c-format
 msgid "Geeography Example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1085
+#: reference_measure.xml:1084
 #, no-c-format
 msgid ""
 "-- a point with a 300 meter buffer compared to a point, a point and its 10 "
@@ -1778,19 +1787,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1090
+#: reference_measure.xml:1089
 #, no-c-format
 msgid ", <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1096
+#: reference_measure.xml:1095
 #, no-c-format
 msgid "ST_CoveredBy"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1098
+#: reference_measure.xml:1097
 #, no-c-format
 msgid ""
 "<refpurpose>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
@@ -1798,7 +1807,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1103
+#: reference_measure.xml:1102
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
@@ -1811,7 +1820,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1129
+#: reference_measure.xml:1128
 #, no-c-format
 msgid ""
 "<para>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
@@ -1819,7 +1828,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1142
+#: reference_measure.xml:1141
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -1828,7 +1837,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1157
+#: reference_measure.xml:1156
 #, no-c-format
 msgid ""
 "--a circle coveredby a circle\n"
@@ -1847,7 +1856,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1162
+#: reference_measure.xml:1161
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref "
@@ -1855,13 +1864,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1168
+#: reference_measure.xml:1167
 #, no-c-format
 msgid "ST_Crosses"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1170
+#: reference_measure.xml:1169
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the supplied geometries have some, but "
@@ -1869,7 +1878,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1176
+#: reference_measure.xml:1175
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Crosses</function></funcdef> "
@@ -1878,7 +1887,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1189
+#: reference_measure.xml:1188
 #, no-c-format
 msgid ""
 "<function>ST_Crosses</function> takes two geometry objects and returns "
@@ -1892,13 +1901,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1198
+#: reference_measure.xml:1197
 #, no-c-format
 msgid "In mathematical terms, this is expressed as:"
 msgstr ""
 
 #. Tag: remark
-#: reference_measure.xml:1200
+#: reference_measure.xml:1199
 #, no-c-format
 msgid ""
 "TODO: Insert appropriate MathML markup here or use a gif. Simple HTML markup "
@@ -1906,13 +1915,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1211
+#: reference_measure.xml:1210
 #, no-c-format
 msgid "The DE-9IM Intersection Matrix for the two geometries is:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1215
+#: reference_measure.xml:1214
 #, no-c-format
 msgid ""
 "<markup>T*T******</markup> (for Point/Line, Point/Area, and Line/Area "
@@ -1920,7 +1929,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1220
+#: reference_measure.xml:1219
 #, no-c-format
 msgid ""
 "<markup>T*****T**</markup> (for Line/Point, Area/Point, and Area/Line "
@@ -1928,19 +1937,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1225
+#: reference_measure.xml:1224
 #, no-c-format
 msgid "<markup>0********</markup> (for Line/Line situations)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1229
+#: reference_measure.xml:1228
 #, no-c-format
 msgid "For any other combination of dimensions this predicate returns false."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1232
+#: reference_measure.xml:1231
 #, no-c-format
 msgid ""
 "The OpenGIS Simple Features Specification defines this predicate only for "
@@ -1950,50 +1959,50 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1248
+#: reference_measure.xml:1247
 #, no-c-format
 msgid "&sfs_compliant; s2.1.13.3"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1249
+#: reference_measure.xml:1248
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.29"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1255 reference_measure.xml:2582
+#: reference_measure.xml:1254 reference_measure.xml:2597
 #, no-c-format
 msgid "The following illustrations all return <varname>TRUE</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1267
+#: reference_measure.xml:1266
 #, no-c-format
 msgid "<varname>MULTIPOINT</varname> / <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1277
+#: reference_measure.xml:1276
 #, no-c-format
 msgid "<varname>MULTIPOINT</varname> / <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1289
+#: reference_measure.xml:1288
 #, no-c-format
 msgid "<varname>LINESTRING</varname> / <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1299 reference_measure.xml:2602
-#: reference_measure.xml:3166 reference_measure.xml:3176
+#: reference_measure.xml:1298 reference_measure.xml:2617
+#: reference_measure.xml:3188 reference_measure.xml:3198
 #, no-c-format
 msgid "<varname>LINESTRING</varname> / <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1307
+#: reference_measure.xml:1306
 #, no-c-format
 msgid ""
 "Consider a situation where a user has two tables: a table of roads and a "
@@ -2001,7 +2010,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1315
+#: reference_measure.xml:1314
 #, no-c-format
 msgid ""
 "CREATE TABLE roads (\n"
@@ -2012,7 +2021,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1319
+#: reference_measure.xml:1318
 #, no-c-format
 msgid ""
 "CREATE TABLE highways (\n"
@@ -2023,14 +2032,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1326
+#: reference_measure.xml:1325
 #, no-c-format
 msgid ""
 "To determine a list of roads that cross a highway, use a query similiar to:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1330
+#: reference_measure.xml:1329
 #, no-c-format
 msgid ""
 "SELECT roads.id\n"
@@ -2039,13 +2048,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1337
+#: reference_measure.xml:1336
 #, no-c-format
 msgid "ST_LineCrossingDirection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1339
+#: reference_measure.xml:1338
 #, no-c-format
 msgid ""
 "Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
@@ -2053,7 +2062,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1344
+#: reference_measure.xml:1343
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_LineCrossingDirection</function></funcdef> "
@@ -2063,7 +2072,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1355
+#: reference_measure.xml:1354
 #, no-c-format
 msgid ""
 "Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
@@ -2072,61 +2081,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1356
+#: reference_measure.xml:1355
 #, no-c-format
 msgid "Definition of integer constants is as follows:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1359
+#: reference_measure.xml:1358
 #, no-c-format
 msgid "0: LINE NO CROSS"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1362
+#: reference_measure.xml:1361
 #, no-c-format
 msgid "-1: LINE CROSS LEFT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1365
+#: reference_measure.xml:1364
 #, no-c-format
 msgid "1: LINE CROSS RIGHT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1368
+#: reference_measure.xml:1367
 #, no-c-format
 msgid "-2: LINE MULTICROSS END LEFT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1371
+#: reference_measure.xml:1370
 #, no-c-format
 msgid "2: LINE MULTICROSS END RIGHT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1374
+#: reference_measure.xml:1373
 #, no-c-format
 msgid "-3: LINE MULTICROSS END SAME FIRST LEFT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1377
+#: reference_measure.xml:1376
 #, no-c-format
 msgid "3: LINE MULTICROSS END SAME FIRST RIGHT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1381
+#: reference_measure.xml:1380
 #, no-c-format
 msgid "Availability: 1.4"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1399
+#: reference_measure.xml:1398
 #, no-c-format
 msgid ""
 "Line 1 (green), Line 2 ball is start point, triangle are end points. Query "
@@ -2134,7 +2143,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1403
+#: reference_measure.xml:1402
 #, no-c-format
 msgid ""
 "SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
@@ -2151,8 +2160,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1413 reference_measure.xml:1427
-#: reference_measure.xml:1441
+#: reference_measure.xml:1412 reference_measure.xml:1426
+#: reference_measure.xml:1440
 #, no-c-format
 msgid ""
 "Line 1 (green), Line 2 (blue) ball is start point, triangle are end points. "
@@ -2160,7 +2169,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1417
+#: reference_measure.xml:1416
 #, no-c-format
 msgid ""
 "SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
@@ -2178,7 +2187,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1431
+#: reference_measure.xml:1430
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -2196,7 +2205,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1445
+#: reference_measure.xml:1444
 #, no-c-format
 msgid ""
 "SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
@@ -2213,7 +2222,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1453
+#: reference_measure.xml:1452
 #, no-c-format
 msgid ""
 "SELECT s1.gid, s2.gid, ST_LineCrossingDirection(s1.the_geom, s2.the_geom)\n"
@@ -2223,13 +2232,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1466
+#: reference_measure.xml:1465
 #, no-c-format
 msgid "ST_Disjoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1468
+#: reference_measure.xml:1467
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries do not \"spatially intersect\" - if they do "
@@ -2237,7 +2246,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1474
+#: reference_measure.xml:1473
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> "
@@ -2246,7 +2255,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1489
+#: reference_measure.xml:1488
 #, no-c-format
 msgid ""
 "Overlaps, Touches, Within all imply geometries are not spatially disjoint. "
@@ -2255,25 +2264,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1499
+#: reference_measure.xml:1498
 #, no-c-format
 msgid "This function call does not use indexes"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1506
+#: reference_measure.xml:1505
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - a.Relate(b, 'FF*FF****')"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1508
+#: reference_measure.xml:1507
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.26"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1513
+#: reference_measure.xml:1512
 #, no-c-format
 msgid ""
 "SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
@@ -2291,19 +2300,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1518
+#: reference_measure.xml:1517
 #, no-c-format
 msgid "<para>ST_Intersects</para>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1524
+#: reference_measure.xml:1523
 #, no-c-format
 msgid "ST_Distance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1526
+#: reference_measure.xml:1525
 #, no-c-format
 msgid ""
 "For geometry type Returns the 2-dimensional cartesian minimum distance "
@@ -2313,7 +2322,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1530
+#: reference_measure.xml:1529
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_Distance</function></funcdef> "
@@ -2330,7 +2339,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1568
+#: reference_measure.xml:1567
 #, no-c-format
 msgid ""
 "For geometry type returns the 2-dimensional minimum cartesian distance "
@@ -2341,13 +2350,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1573
+#: reference_measure.xml:1572
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.23"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1575
+#: reference_measure.xml:1573 reference_measure.xml:2039
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1576
 #, no-c-format
 msgid ""
 "Availability: 1.5.0 geography support was introduced in 1.5. Speed "
@@ -2355,7 +2370,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1576 reference_measure.xml:1939
+#: reference_measure.xml:1577 reference_measure.xml:1949
 #, no-c-format
 msgid ""
 "Enhanced: 2.1.0 improved speed for geography. See <ulink url=\"http://blog."
@@ -2363,9 +2378,21 @@ msgid ""
 "ulink> for details."
 msgstr ""
 
-#. Tag: programlisting
+#. Tag: para
+#: reference_measure.xml:1578
+#, no-c-format
+msgid "Enhanced: 2.1.0 - support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: title
 #: reference_measure.xml:1582
 #, no-c-format
+msgid "Basic Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1584
+#, no-c-format
 msgid ""
 "--Geometry example - units in planar degrees 4326 is WGS 84 long lat "
 "unit=degrees\n"
@@ -2401,9 +2428,21 @@ msgid ""
 "\n"
 "st_distance\n"
 "------------------\n"
-"126.664256056812\n"
-"\n"
-"-- Geography example -- same but note units in meters - use sphere for "
+"126.664256056812"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1587 reference_measure.xml:2131
+#: reference_measure.xml:2182
+#, no-c-format
+msgid "Geography Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1588
+#, no-c-format
+msgid ""
+"-- same as geometry example but note units in meters - use sphere for "
 "slightly faster less accurate\n"
 "SELECT ST_Distance(gg1, gg2) As spheroid_dist, ST_Distance(gg1, gg2, false) "
 "As sphere_dist \n"
@@ -2419,7 +2458,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1588
+#: reference_measure.xml:1596
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_Distance_Sphere\"/>, "
@@ -2428,13 +2467,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1594
+#: reference_measure.xml:1602
 #, no-c-format
 msgid "ST_HausdorffDistance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1596
+#: reference_measure.xml:1604
 #, no-c-format
 msgid ""
 "Returns the Hausdorff distance between two geometries. Basically a measure "
@@ -2443,7 +2482,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1601
+#: reference_measure.xml:1609
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_HausdorffDistance</function></"
@@ -2457,7 +2496,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1629
+#: reference_measure.xml:1637
 #, no-c-format
 msgid ""
 "Implements algorithm for computing a distance metric which can be thought of "
@@ -2471,7 +2510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1632
+#: reference_measure.xml:1640
 #, no-c-format
 msgid ""
 "When densifyFrac is specified, this function performs a segment "
@@ -2482,7 +2521,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1637
+#: reference_measure.xml:1645
 #, no-c-format
 msgid ""
 "The current implementation supports only vertices as the discrete locations. "
@@ -2490,7 +2529,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1642
+#: reference_measure.xml:1650
 #, no-c-format
 msgid ""
 "This algorithm is NOT equivalent to the standard Hausdorff distance. "
@@ -2501,16 +2540,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1647
+#: reference_measure.xml:1655
 #, no-c-format
 msgid "Availability: 1.5.0 - requires GEOS >= 3.2.0"
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:1661
+#, no-c-format
+msgid ""
+"For each building, find the parcel that best represents it. First we require "
+"the parcel intersect with the geometry. DISTINCT ON guarantees we get each "
+"building listed only once, the ORDER BY .. ST_HausdorffDistance gives us a "
+"preference of parcel that is most similar to the building."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:1654
+#: reference_measure.xml:1663
 #, no-c-format
 msgid ""
-"postgis=# SELECT st_HausdorffDistance(\n"
+"SELECT DISTINCT ON(buildings.gid) buildings.gid, parcels.parcel_id \n"
+"   FROM buildings INNER JOIN parcels ON ST_Intersects(buildings.geom,parcels."
+"geom) \n"
+"     ORDER BY buildings.gid, ST_HausdorffDistance(buildings.geom, parcels."
+"geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1665
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_HausdorffDistance(\n"
 "                                'LINESTRING (0 0, 2 0)'::geometry,\n"
 "                                'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);\n"
 " st_hausdorffdistance\n"
@@ -2520,7 +2580,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1655
+#: reference_measure.xml:1666
 #, no-c-format
 msgid ""
 "postgis=# SELECT st_hausdorffdistance('LINESTRING (130 0, 0 0, 0 150)'::"
@@ -2532,13 +2592,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1662
+#: reference_measure.xml:1673
 #, no-c-format
 msgid "ST_MaxDistance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1664
+#: reference_measure.xml:1675
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional largest distance between two geometries in "
@@ -2546,7 +2606,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1670
+#: reference_measure.xml:1681
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_MaxDistance</function></funcdef> "
@@ -2555,23 +2615,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1681
-#, no-c-format
-msgid "Some useful description here."
-msgstr ""
-
-#. Tag: para
-#: reference_measure.xml:1685
+#: reference_measure.xml:1694
 #, no-c-format
 msgid ""
-"Returns the 2-dimensional maximum distance between two linestrings in "
+"Returns the 2-dimensional maximum distance between two geometries in "
 "projected units. If g1 and g2 is the same geometry the function will return "
 "the distance between the two vertices most far from each other in that "
 "geometry."
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:1704
+#, no-c-format
+msgid "Basic furthest distance the point is to any part of the line"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:1695
+#: reference_measure.xml:1705
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 "
@@ -2590,19 +2650,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1701
+#: reference_measure.xml:1711
 #, no-c-format
-msgid ", <xref linkend=\"ST_LongestLine\"/>"
+msgid ""
+", <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_DFullyWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1707
+#: reference_measure.xml:1717
 #, no-c-format
 msgid "ST_Distance_Sphere"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1709
+#: reference_measure.xml:1719
 #, no-c-format
 msgid ""
 "Returns minimum distance in meters between two lon/lat geometries. Uses a "
@@ -2612,7 +2673,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1717
+#: reference_measure.xml:1727
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Distance_Sphere</function></funcdef> "
@@ -2622,7 +2683,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1728
+#: reference_measure.xml:1738
 #, no-c-format
 msgid ""
 "Returns minimum distance in meters between two lon/lat points. Uses a "
@@ -2632,7 +2693,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1733
+#: reference_measure.xml:1743
 #, no-c-format
 msgid ""
 "This function currently does not look at the SRID of a geometry and will "
@@ -2641,7 +2702,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1736 reference_measure.xml:1784
+#: reference_measure.xml:1746 reference_measure.xml:1794
 #, no-c-format
 msgid ""
 "Availability: 1.5 - support for other geometry types besides points was "
@@ -2649,11 +2710,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1743
+#: reference_measure.xml:1753
 #, no-c-format
 msgid ""
-"SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), ST_GeomFromText"
-"('POINT(-118 38)',4326)) As numeric),2) As dist_meters,\n"
+"SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,\n"
 "round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
 "                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
 "As numeric),2) As dist_utm11_meters,\n"
@@ -2674,19 +2735,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1750
+#: reference_measure.xml:1760
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1756
+#: reference_measure.xml:1766
 #, no-c-format
 msgid "ST_Distance_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1758
+#: reference_measure.xml:1768
 #, no-c-format
 msgid ""
 "Returns the minimum distance between two lon/lat geometries given a "
@@ -2694,7 +2755,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1765
+#: reference_measure.xml:1775
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Distance_Spheroid</function></funcdef> "
@@ -2705,7 +2766,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1777
+#: reference_measure.xml:1787
 #, no-c-format
 msgid ""
 "Returns minimum distance in meters between two lon/lat geometries given a "
@@ -2715,7 +2776,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1781
+#: reference_measure.xml:1791
 #, no-c-format
 msgid ""
 "This function currently does not look at the SRID of a geometry and will "
@@ -2724,12 +2785,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1791
+#: reference_measure.xml:1801
 #, no-c-format
 msgid ""
 "SELECT round(CAST(\n"
-"                ST_Distance_Spheroid(ST_Centroid(the_geom), ST_GeomFromText"
-"('POINT(-118 38)',4326), 'SPHEROID[\"WGS 84\",6378137,298.257223563]')\n"
+"                ST_Distance_Spheroid(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326), 'SPHEROID[\"WGS "
+"84\",6378137,298.257223563]')\n"
 "                        As numeric),2) As dist_meters_spheroid,\n"
 "                round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
 "ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As "
@@ -2746,19 +2808,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1798
+#: reference_measure.xml:1808
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance_Sphere\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1804
+#: reference_measure.xml:1814
 #, no-c-format
 msgid "ST_DFullyWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1806
+#: reference_measure.xml:1816
 #, no-c-format
 msgid ""
 "Returns true if all of the geometries are within the specified distance of "
@@ -2766,7 +2828,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1812
+#: reference_measure.xml:1822
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_DFullyWithin</function></funcdef> "
@@ -2777,7 +2839,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1830
+#: reference_measure.xml:1840
 #, no-c-format
 msgid ""
 "Returns true if the geometries is fully within the specified distance of one "
@@ -2788,7 +2850,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1847
+#: reference_measure.xml:1857
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_DFullyWithin(geom_a, geom_b, 10) as DFullyWithin10, "
@@ -2804,19 +2866,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1853
+#: reference_measure.xml:1863
 #, no-c-format
 msgid ", <xref linkend=\"ST_DWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1859
+#: reference_measure.xml:1869
 #, no-c-format
 msgid "ST_DWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1861
+#: reference_measure.xml:1871
 #, no-c-format
 msgid ""
 "Returns true if the geometries are within the specified distance of one "
@@ -2827,7 +2889,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1867
+#: reference_measure.xml:1877
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
@@ -2848,7 +2910,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1912
+#: reference_measure.xml:1922
 #, no-c-format
 msgid ""
 "Returns true if the geometries are within the specified distance of one "
@@ -2856,7 +2918,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1914
+#: reference_measure.xml:1924
 #, no-c-format
 msgid ""
 "For Geometries: The distance is specified in units defined by the spatial "
@@ -2866,7 +2928,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1919
+#: reference_measure.xml:1929
 #, no-c-format
 msgid ""
 "For geography units are in meters and measurement is defaulted to "
@@ -2875,7 +2937,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1929
+#: reference_measure.xml:1939
 #, no-c-format
 msgid ""
 "Prior to 1.3, ST_Expand was commonly used in conjunction with && and "
@@ -2886,19 +2948,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1935
+#: reference_measure.xml:1945
 #, no-c-format
 msgid "Use ST_3DDWithin if you have 3D geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1938
+#: reference_measure.xml:1948
 #, no-c-format
 msgid "Availability: 1.5.0 support for geography was introduced"
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:1950
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for curved geometries was introduced."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:1944
+#: reference_measure.xml:1955
 #, no-c-format
 msgid ""
 "--Find the nearest hospital to each school\n"
@@ -2926,19 +2994,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1950
+#: reference_measure.xml:1961
 #, no-c-format
 msgid ", <xref linkend=\"ST_Expand\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1956
+#: reference_measure.xml:1967
 #, no-c-format
 msgid "ST_Equals"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1958
+#: reference_measure.xml:1969
 #, no-c-format
 msgid ""
 "Returns true if the given geometries represent the same geometry. "
@@ -2946,7 +3014,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1964
+#: reference_measure.xml:1975
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Equals</function></funcdef> "
@@ -2955,7 +3023,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1975
+#: reference_measure.xml:1986
 #, no-c-format
 msgid ""
 "Returns TRUE if the given Geometries are \"spatially equal\". Use this for a "
@@ -2968,7 +3036,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1984
+#: reference_measure.xml:1995
 #, no-c-format
 msgid ""
 "This function will return false if either geometry is invalid even if they "
@@ -2976,19 +3044,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1987
+#: reference_measure.xml:1998
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1988
+#: reference_measure.xml:1999
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.24"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1994
+#: reference_measure.xml:2005
 #, no-c-format
 msgid ""
 "SELECT ST_Equals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
@@ -3007,7 +3075,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2000
+#: reference_measure.xml:2011
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Reverse\"/>, "
@@ -3015,13 +3083,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2007
+#: reference_measure.xml:2018
 #, no-c-format
 msgid "ST_HasArc"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2009
+#: reference_measure.xml:2020
 #, no-c-format
 msgid ""
 "<refpurpose>Returns true if a geometry or geometry collection contains a "
@@ -3029,7 +3097,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2014
+#: reference_measure.xml:2025
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_HasArc</function></funcdef> "
@@ -3037,7 +3105,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2024
+#: reference_measure.xml:2035
 #, no-c-format
 msgid ""
 "<para>Returns true if a geometry or geometry collection contains a circular "
@@ -3045,19 +3113,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2026
+#: reference_measure.xml:2037
 #, no-c-format
 msgid "Availability: 1.2.3?"
 msgstr ""
 
-#. Tag: para
-#: reference_measure.xml:2028
-#, no-c-format
-msgid "&curve_support;"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_measure.xml:2035
+#: reference_measure.xml:2046
 #, no-c-format
 msgid ""
 "SELECT ST_HasArc(ST_Collect('LINESTRING(1 2, 3 4, 5 6)', 'CIRCULARSTRING(1 "
@@ -3068,19 +3130,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2042
+#: reference_measure.xml:2053
 #, no-c-format
 msgid ", <xref linkend=\"ST_LineToCurve\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2048
+#: reference_measure.xml:2059
 #, no-c-format
 msgid "<refname>ST_Intersects</refname>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2050
+#: reference_measure.xml:2061
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries/Geography \"spatially intersect in 2D\" - "
@@ -3090,7 +3152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:2056
+#: reference_measure.xml:2067
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
@@ -3103,7 +3165,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2088
+#: reference_measure.xml:2094
+#, no-c-format
+msgid ""
+"If a geometry or geography shares any portion of space then they intersect. "
+"For geography -- tolerance is 0.00001 meters (so any points that are close "
+"are considered to intersect)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2101
 #, no-c-format
 msgid ""
 "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument for "
@@ -3112,19 +3183,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2092
+#: reference_measure.xml:2105
 #, no-c-format
 msgid "Performed by the GEOS module (for geometry), geography is native"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2093
+#: reference_measure.xml:2106
 #, no-c-format
 msgid "Availability: 1.5 support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2100
+#: reference_measure.xml:2113
 #, no-c-format
 msgid ""
 "For geography, this function has a distance tolerance of about 0.00001 "
@@ -3132,7 +3203,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2107
+#: reference_measure.xml:2120
 #, no-c-format
 msgid ""
 "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - ST_Intersects(g1, g2 ) --> Not "
@@ -3140,13 +3211,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2110
+#: reference_measure.xml:2123
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.27"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2114
+#: reference_measure.xml:2128
 #, no-c-format
 msgid ""
 "SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
@@ -3163,14 +3234,8 @@ msgid ""
 "(1 row)"
 msgstr ""
 
-#. Tag: title
-#: reference_measure.xml:2117 reference_measure.xml:2167
-#, no-c-format
-msgid "Geography Examples"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_measure.xml:2118
+#: reference_measure.xml:2132
 #, no-c-format
 msgid ""
 "SELECT ST_Intersects(\n"
@@ -3186,19 +3251,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2122
+#: reference_measure.xml:2136
 #, no-c-format
 msgid ", <xref linkend=\"ST_Disjoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2127
+#: reference_measure.xml:2141
 #, no-c-format
 msgid "ST_Length"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2129
+#: reference_measure.xml:2143
 #, no-c-format
 msgid ""
 "Returns the 2d length of the geometry if it is a linestring or "
@@ -3207,7 +3272,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:2132
+#: reference_measure.xml:2146
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_Length</function></funcdef> "
@@ -3220,7 +3285,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2147
+#: reference_measure.xml:2161
 #, no-c-format
 msgid ""
 "For geometry: Returns the cartesian 2D length of the geometry if it is a "
@@ -3232,7 +3297,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2151
+#: reference_measure.xml:2165
 #, no-c-format
 msgid ""
 "Currently for geometry this is an alias for ST_Length2D, but this may change "
@@ -3240,7 +3305,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2152
+#: reference_measure.xml:2166
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 Breaking change -- in prior versions applying this to a MULTI/"
@@ -3251,7 +3316,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2154
+#: reference_measure.xml:2168
 #, no-c-format
 msgid ""
 "For geography measurement defaults spheroid measurement. To use the faster "
@@ -3259,25 +3324,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2155 reference_measure.xml:2660
+#: reference_measure.xml:2169 reference_measure.xml:2674
 #, no-c-format
 msgid "&sfs_compliant; s2.1.5.1"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2156
+#: reference_measure.xml:2170
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.2, 9.3.4"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2157
+#: reference_measure.xml:2171
 #, no-c-format
 msgid "Availability: 1.5.0 geography support was introduced in 1.5."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2162
+#: reference_measure.xml:2177
 #, no-c-format
 msgid ""
 "Return length in feet for line string. Note this is in feet because 2249 is "
@@ -3285,7 +3350,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2164
+#: reference_measure.xml:2179
 #, no-c-format
 msgid ""
 "SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 "
@@ -3310,13 +3375,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2168
+#: reference_measure.xml:2183
 #, no-c-format
 msgid "Return length of WGS 84 geography line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2169
+#: reference_measure.xml:2184
 #, no-c-format
 msgid ""
 "-- default calculation is using a sphere rather than spheroid\n"
@@ -3333,7 +3398,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2173
+#: reference_measure.xml:2188
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Length_Spheroid\"/"
@@ -3341,13 +3406,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2179
+#: reference_measure.xml:2194
 #, no-c-format
 msgid "ST_Length2D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2181
+#: reference_measure.xml:2196
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the 2-dimensional length of the geometry if it is a "
@@ -3356,7 +3421,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2187
+#: reference_measure.xml:2202
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Length2D</function></funcdef> "
@@ -3365,7 +3430,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2197
+#: reference_measure.xml:2212
 #, no-c-format
 msgid ""
 "<para>Returns the 2-dimensional length of the geometry if it is a linestring "
@@ -3373,19 +3438,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2206
+#: reference_measure.xml:2221
 #, no-c-format
 msgid ", <xref linkend=\"ST_3DLength\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2212
+#: reference_measure.xml:2227
 #, no-c-format
 msgid "ST_3DLength"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2214
+#: reference_measure.xml:2229
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
@@ -3393,7 +3458,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2220
+#: reference_measure.xml:2235
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_3DLength</function></funcdef> "
@@ -3402,7 +3467,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2230
+#: reference_measure.xml:2245
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
@@ -3411,13 +3476,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2233
+#: reference_measure.xml:2248
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Length3D"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2240
+#: reference_measure.xml:2255
 #, no-c-format
 msgid ""
 "Return length in feet for a 3D cable. Note this is in feet because 2249 is "
@@ -3425,7 +3490,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2242
+#: reference_measure.xml:2257
 #, no-c-format
 msgid ""
 "SELECT ST_3DLength(ST_GeomFromText('LINESTRING(743238 2967416 1,743238 "
@@ -3437,19 +3502,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2249
+#: reference_measure.xml:2264
 #, no-c-format
 msgid ", <xref linkend=\"ST_Length2D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2255
+#: reference_measure.xml:2270
 #, no-c-format
 msgid "ST_Length_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2257
+#: reference_measure.xml:2272
 #, no-c-format
 msgid ""
 "Calculates the 2D or 3D length of a linestring/multilinestring on an "
@@ -3458,7 +3523,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2264
+#: reference_measure.xml:2279
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Length_Spheroid</function></funcdef> "
@@ -3468,7 +3533,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2275
+#: reference_measure.xml:2290
 #, no-c-format
 msgid ""
 "Calculates the length of a geometry on an ellipsoid. This is useful if the "
@@ -3478,7 +3543,7 @@ msgid ""
 msgstr ""
 
 #. Tag: literallayout
-#: reference_measure.xml:2281 reference_measure.xml:2333
+#: reference_measure.xml:2296 reference_measure.xml:2348
 #, no-c-format
 msgid ""
 "SPHEROID[<NAME>,<SEMI-MAJOR\n"
@@ -3486,19 +3551,19 @@ msgid ""
 msgstr ""
 
 #. Tag: literallayout
-#: reference_measure.xml:2284 reference_measure.xml:2336
+#: reference_measure.xml:2299 reference_measure.xml:2351
 #, no-c-format
 msgid "SPHEROID[\"GRS_1980\",6378137,298.257222101]"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2285 reference_measure.xml:2337
+#: reference_measure.xml:2300 reference_measure.xml:2352
 #, no-c-format
 msgid "Will return 0 for anything that is not a MULTILINESTRING or LINESTRING"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2294
+#: reference_measure.xml:2309
 #, no-c-format
 msgid ""
 "SELECT ST_Length_Spheroid( geometry_column,\n"
@@ -3508,8 +3573,8 @@ msgid ""
 "SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
 "ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
 "ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
-"                          FROM (SELECT ST_GeomFromText('MULTILINESTRING"
-"((-118.584 38.374,-118.583 38.5),\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
 "        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
 "CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
 "as foo;\n"
@@ -3521,8 +3586,8 @@ msgid ""
 "SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
 "ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
 "ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
-"                          FROM (SELECT ST_GeomFromEWKT('MULTILINESTRING"
-"((-118.584 38.374 20,-118.583 38.5 30),\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
 "        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
 "CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
 "as foo;\n"
@@ -3533,20 +3598,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2301
+#: reference_measure.xml:2316
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_3DLength_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2307
+#: reference_measure.xml:2322
 #, no-c-format
 msgid "ST_Length2D_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2309
+#: reference_measure.xml:2324
 #, no-c-format
 msgid ""
 "Calculates the 2D length of a linestring/multilinestring on an ellipsoid. "
@@ -3555,7 +3620,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2316
+#: reference_measure.xml:2331
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Length2D_Spheroid</function></funcdef> "
@@ -3565,7 +3630,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2327
+#: reference_measure.xml:2342
 #, no-c-format
 msgid ""
 "Calculates the 2D length of a geometry on an ellipsoid. This is useful if "
@@ -3575,7 +3640,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2338
+#: reference_measure.xml:2353
 #, no-c-format
 msgid ""
 "This is much like <xref linkend=\"ST_Length_Spheroid\"/> and <xref linkend="
@@ -3584,7 +3649,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2346
+#: reference_measure.xml:2361
 #, no-c-format
 msgid ""
 "SELECT ST_Length2D_Spheroid( geometry_column,\n"
@@ -3594,8 +3659,8 @@ msgid ""
 "SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
 "ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
 "ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
-"                          FROM (SELECT ST_GeomFromText('MULTILINESTRING"
-"((-118.584 38.374,-118.583 38.5),\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
 "        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
 "CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
 "as foo;\n"
@@ -3607,8 +3672,8 @@ msgid ""
 "SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
 "ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
 "ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
-"                          FROM (SELECT ST_GeomFromEWKT('MULTILINESTRING"
-"((-118.584 38.374 20,-118.583 38.5 30),\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
 "        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
 "CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
 "as foo;\n"
@@ -3619,7 +3684,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2353
+#: reference_measure.xml:2368
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Length_Spheroid\"/>, <xref linkend="
@@ -3627,13 +3692,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2359
+#: reference_measure.xml:2374
 #, no-c-format
 msgid "ST_3DLength_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2361
+#: reference_measure.xml:2376
 #, no-c-format
 msgid ""
 "<refpurpose>Calculates the length of a geometry on an ellipsoid, taking the "
@@ -3642,7 +3707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2367
+#: reference_measure.xml:2382
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_3DLength_Spheroid</function></funcdef> "
@@ -3652,7 +3717,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2378
+#: reference_measure.xml:2393
 #, no-c-format
 msgid ""
 "<para>Calculates the length of a geometry on an ellipsoid, taking the "
@@ -3660,7 +3725,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2382
+#: reference_measure.xml:2397
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 In prior versions this used to return 0 for anything that is "
@@ -3669,38 +3734,38 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2383
+#: reference_measure.xml:2398
 #, no-c-format
 msgid "This function is just an alias for ST_Length_Spheroid."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2385
+#: reference_measure.xml:2400
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 In prior versions this used to be called ST_Length3d_Spheroid"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2392
+#: reference_measure.xml:2407
 #, no-c-format
 msgid "See ST_Length_Spheroid"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2399
+#: reference_measure.xml:2414
 #, no-c-format
 msgid ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_Length_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2405
+#: reference_measure.xml:2420
 #, no-c-format
 msgid "ST_LongestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2407
+#: reference_measure.xml:2422
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional longest line points of two geometries. The "
@@ -3711,7 +3776,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2415
+#: reference_measure.xml:2430
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LongestLine</function></funcdef> "
@@ -3720,20 +3785,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2430
+#: reference_measure.xml:2445
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional longest line between the points of two geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2448
+#: reference_measure.xml:2463
 #, no-c-format
 msgid "Longest line between point and line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2451
+#: reference_measure.xml:2466
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -3748,13 +3813,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2459
+#: reference_measure.xml:2474
 #, no-c-format
 msgid "longest line between polygon and polygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2462
+#: reference_measure.xml:2477
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -3771,7 +3836,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2478
+#: reference_measure.xml:2493
 #, no-c-format
 msgid ""
 "longest straight distance to travel from one part of an elegant city to the "
@@ -3779,7 +3844,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2482
+#: reference_measure.xml:2497
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_LongestLine(c.the_geom, c.the_geom)) As llinewkt, \n"
@@ -3798,20 +3863,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2493
+#: reference_measure.xml:2508
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_LongestLine\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2499
+#: reference_measure.xml:2514
 #, no-c-format
 msgid "ST_OrderingEquals"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2501
+#: reference_measure.xml:2516
 #, no-c-format
 msgid ""
 "Returns true if the given geometries represent the same geometry and points "
@@ -3819,7 +3884,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2507
+#: reference_measure.xml:2522
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_OrderingEquals</function></funcdef> "
@@ -3828,7 +3893,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2518
+#: reference_measure.xml:2533
 #, no-c-format
 msgid ""
 "ST_OrderingEquals compares two geometries and returns t (TRUE) if the "
@@ -3837,7 +3902,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2523
+#: reference_measure.xml:2538
 #, no-c-format
 msgid ""
 "This function is implemented as per the ArcSDE SQL specification rather than "
@@ -3846,13 +3911,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2527
+#: reference_measure.xml:2542
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.43"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2533
+#: reference_measure.xml:2548
 #, no-c-format
 msgid ""
 "SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
@@ -3879,19 +3944,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2537
+#: reference_measure.xml:2552
 #, no-c-format
 msgid ", <xref linkend=\"ST_Reverse\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2543
+#: reference_measure.xml:2558
 #, no-c-format
 msgid "ST_Overlaps"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2545
+#: reference_measure.xml:2560
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries share space, are of the same dimension, but "
@@ -3899,7 +3964,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2550
+#: reference_measure.xml:2565
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Overlaps</function></funcdef> "
@@ -3908,7 +3973,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2561
+#: reference_measure.xml:2576
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries \"spatially overlap\". By that we mean they "
@@ -3916,14 +3981,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2566 reference_measure.xml:2892
-#: reference_measure.xml:2906
+#: reference_measure.xml:2581 reference_measure.xml:2914
+#: reference_measure.xml:2928
 #, no-c-format
 msgid "Do not call with a GeometryCollection as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2568
+#: reference_measure.xml:2583
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -3932,26 +3997,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2576 reference_measure.xml:2912
-#: reference_measure.xml:3117
+#: reference_measure.xml:2591 reference_measure.xml:2934
+#: reference_measure.xml:3139
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2577
+#: reference_measure.xml:2592
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.32"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2593
+#: reference_measure.xml:2608
 #, no-c-format
 msgid "<varname>MULTIPOINT</varname> / <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2617
+#: reference_measure.xml:2632
 #, no-c-format
 msgid ""
 "--a point on a line is contained by the line and is of a lower dimension, "
@@ -3962,8 +4027,8 @@ msgid ""
 "        ST_Crosses(a,b) As a_crosses_b,\n"
 "                ST_Intersects(a, b) As a_intersects_b, ST_Contains(b,a) As "
 "b_contains_a\n"
-"FROM (SELECT ST_GeomFromText('POINT(1 0.5)') As a, ST_GeomFromText"
-"('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"FROM (SELECT ST_GeomFromText('POINT(1 0.5)') As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
 "        As foo\n"
 "\n"
 "a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a\n"
@@ -3995,8 +4060,8 @@ msgid ""
 "SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b, "
 "ST_Intersects(a, b) As a_intersects_b,\n"
 "ST_Contains(b,a) As b_contains_a,\n"
-"ST_Dimension(a) As dim_a, ST_Dimension(b) as dim_b, ST_Dimension"
-"(ST_Intersection(a,b)) As dima_intersection_b\n"
+"ST_Dimension(a) As dim_a, ST_Dimension(b) as dim_b, "
+"ST_Dimension(ST_Intersection(a,b)) As dima_intersection_b\n"
 "FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a,\n"
 "        ST_Buffer(ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)'),0.5)  As b)\n"
 "        As foo;\n"
@@ -4010,7 +4075,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2625
+#: reference_measure.xml:2640
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Crosses\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
@@ -4018,13 +4083,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2630
+#: reference_measure.xml:2645
 #, no-c-format
 msgid "ST_Perimeter"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2632
+#: reference_measure.xml:2647
 #, no-c-format
 msgid ""
 "Return the length measurement of the boundary of an ST_Surface or "
@@ -4032,26 +4097,20 @@ msgid ""
 "measurement is in units of spatial reference and geography is in meters."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_measure.xml:2637
-#, no-c-format
-msgid ""
-"<funcdef>float <function>ST_Perimeter</function></funcdef> "
-"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef>"
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_measure.xml:2643
+#. Tag: funcsynopsis
+#: reference_measure.xml:2651
 #, no-c-format
 msgid ""
-"<funcdef>float <function>ST_Perimeter</function></funcdef> "
-"<paramdef><type>geography </type><parameter>geog</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>boolean </type><parameter>use_spheroid=true</"
-"parameter></paramdef>"
+"<funcprototype> <funcdef>float <function>ST_Perimeter</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Perimeter</"
+"function></funcdef> <paramdef><type>geography </type><parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2653
+#: reference_measure.xml:2667
 #, no-c-format
 msgid ""
 "Returns the 2D perimeter of the geometry/geography if it is a ST_Surface, "
@@ -4063,7 +4122,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2658
+#: reference_measure.xml:2672
 #, no-c-format
 msgid ""
 "Currently this is an alias for ST_Perimeter2D, but this may change to "
@@ -4071,25 +4130,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2661
+#: reference_measure.xml:2675
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.3, 9.5.4"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2662
+#: reference_measure.xml:2676
 #, no-c-format
 msgid "Availability 2.0.0: Support for geography was introduced"
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:2666
+#: reference_measure.xml:2680
 #, no-c-format
 msgid "Examples: Geometry"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2667
+#: reference_measure.xml:2681
 #, no-c-format
 msgid ""
 "Return perimeter in feet for polygon and multipolygon. Note this is in feet "
@@ -4097,7 +4156,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2669
+#: reference_measure.xml:2683
 #, no-c-format
 msgid ""
 "SELECT ST_Perimeter(ST_GeomFromText('POLYGON((743238 2967416,743238 "
@@ -4127,13 +4186,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:2672
+#: reference_measure.xml:2686
 #, no-c-format
 msgid "Examples: Geography"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2673
+#: reference_measure.xml:2687
 #, no-c-format
 msgid ""
 "Return perimeter in meters and feet for polygon and multipolygon. Note this "
@@ -4141,7 +4200,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2674
+#: reference_measure.xml:2688
 #, no-c-format
 msgid ""
 "SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog)/0.3048 As "
@@ -4179,19 +4238,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2678
+#: reference_measure.xml:2692
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_Length\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2684
+#: reference_measure.xml:2698
 #, no-c-format
 msgid "ST_Perimeter2D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2686
+#: reference_measure.xml:2700
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
@@ -4199,7 +4258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2692
+#: reference_measure.xml:2706
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Perimeter2D</function></funcdef> "
@@ -4207,7 +4266,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2702
+#: reference_measure.xml:2716
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
@@ -4215,7 +4274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2707
+#: reference_measure.xml:2721
 #, no-c-format
 msgid ""
 "This is currently an alias for ST_Perimeter. In future versions ST_Perimeter "
@@ -4224,13 +4283,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2721
+#: reference_measure.xml:2735
 #, no-c-format
 msgid "ST_3DPerimeter"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2723
+#: reference_measure.xml:2737
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
@@ -4238,7 +4297,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2729
+#: reference_measure.xml:2743
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_3DPerimeter</function></funcdef> "
@@ -4246,7 +4305,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2739
+#: reference_measure.xml:2753
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
@@ -4255,13 +4314,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2742
+#: reference_measure.xml:2756
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Perimeter3D"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2748
+#: reference_measure.xml:2762
 #, no-c-format
 msgid ""
 "Perimeter of a slightly elevated polygon in the air in Massachusetts state "
@@ -4269,11 +4328,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2749
+#: reference_measure.xml:2763
 #, no-c-format
 msgid ""
-"SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), ST_Perimeter"
-"(the_geom) FROM\n"
+"SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), "
+"ST_Perimeter(the_geom) FROM\n"
 "                        (SELECT ST_GeomFromEWKT('SRID=2249;POLYGON((743238 "
 "2967416 2,743238 2967450 1,\n"
 "743265.625 2967416 1,743238 2967416 2))') As the_geom) As foo;\n"
@@ -4284,25 +4343,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2756
+#: reference_measure.xml:2770
 #, no-c-format
 msgid ", <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Perimeter2D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2762
+#: reference_measure.xml:2776
 #, no-c-format
 msgid "ST_PointOnSurface"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2764
+#: reference_measure.xml:2778
 #, no-c-format
 msgid "Returns a <varname>POINT</varname> guaranteed to lie on the surface."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2769
+#: reference_measure.xml:2783
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PointOnSurface</function></funcdef> "
@@ -4310,19 +4369,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2781
+#: reference_measure.xml:2795
 #, no-c-format
 msgid "Returns a <varname>POINT</varname> guaranteed to intersect a surface."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2783
+#: reference_measure.xml:2797
 #, no-c-format
 msgid "&sfs_compliant; s3.2.14.2 // s3.2.18.2"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2784
+#: reference_measure.xml:2798
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3: 8.1.5, 9.5.6. According to the specs, "
@@ -4334,7 +4393,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2793
+#: reference_measure.xml:2807
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_PointOnSurface('POINT(0 5)'::geometry));\n"
@@ -4365,27 +4424,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2799
+#: reference_measure.xml:2813
 #, no-c-format
 msgid ", <xref linkend=\"ST_Point_Inside_Circle\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2805
+#: reference_measure.xml:2819
 #, no-c-format
 msgid "ST_Project"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2807
+#: reference_measure.xml:2821
 #, no-c-format
 msgid ""
 "Returns a <varname>POINT</varname> projected from a start point using a "
-"bearing and distance."
+"distance in meters and bearing (azimuth) in radians."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2812
+#: reference_measure.xml:2826
 #, no-c-format
 msgid ""
 "<funcdef>geography <function>ST_Project</function></funcdef> "
@@ -4395,15 +4454,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2828
+#: reference_measure.xml:2842
 #, no-c-format
 msgid ""
 "Returns a <varname>POINT</varname> projected from a start point using an "
-"azimuth (bearing) and distance."
+"azimuth (bearing) measured in radians and distance measured in meters."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2829
+#: reference_measure.xml:2843
 #, no-c-format
 msgid ""
 "Distance, azimuth and projection are all aspects of the same operation, "
@@ -4412,45 +4471,77 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2830
+#: reference_measure.xml:2844
 #, no-c-format
 msgid ""
 "The azimuth is sometimes called the heading or the bearing in navigation. It "
-"is measured relative to true north (azimuth zero). East is azimuth 90, south "
-"is azimuth 180, west is azimuth 270."
+"is measured relative to true north (azimuth zero). East is azimuth 90 "
+"(<varname>pi/2</varname>), south is azimuth 180 (<varname>pi</varname>), "
+"west is azimuth 270 (<varname>pi*1.5</varname>)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2831
+#: reference_measure.xml:2845
 #, no-c-format
 msgid "The distance is given in meters."
 msgstr ""
 
+#. Tag: title
+#: reference_measure.xml:2852
+#, no-c-format
+msgid ""
+"Example: Using degrees - projected point 100,000 meters and bearing 45 "
+"degrees"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:2838
+#: reference_measure.xml:2854
 #, no-c-format
 msgid ""
-"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, 45));\n"
-"                  st_astext\n"
-"        ------------------------------------------\n"
-"         POINT(0.63523102912532 0.63947233472882)\n"
-"        (1 row)"
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, "
+"radians(45.0)));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2858
+#, no-c-format
+msgid ""
+"Example: Using radians - projected point 100,000 meters and bearing pi/4 (45 "
+"degrees)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2860
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, pi()/4));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2844
+#: reference_measure.xml:2866
 #, no-c-format
-msgid ", <xref linkend=\"ST_Distance\"/>"
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <ulink url=\"http://www.postgresql.org/"
+"docs/current/interactive/functions-math.html\">PostgreSQL Math Functions</"
+"ulink>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2850
+#: reference_measure.xml:2872
 #, no-c-format
 msgid "ST_Relate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2852
+#: reference_measure.xml:2874
 #, no-c-format
 msgid ""
 "Returns true if this Geometry is spatially related to anotherGeometry, by "
@@ -4461,7 +4552,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:2860
+#: reference_measure.xml:2882
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Relate</function></funcdef> "
@@ -4480,7 +4571,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2886
+#: reference_measure.xml:2908
 #, no-c-format
 msgid ""
 "Version 1: Takes geomA, geomB, intersectionMatrix and Returns 1 (TRUE) if "
@@ -4491,7 +4582,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2891
+#: reference_measure.xml:2913
 #, no-c-format
 msgid ""
 "This is especially useful for testing compound checks of intersection, "
@@ -4499,7 +4590,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2894
+#: reference_measure.xml:2916
 #, no-c-format
 msgid ""
 "This is the \"allowable\" version that returns a boolean, not an integer. "
@@ -4507,7 +4598,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2897
+#: reference_measure.xml:2919
 #, no-c-format
 msgid ""
 "This DOES NOT automagically include an index call. The reason for that is "
@@ -4516,14 +4607,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2902
+#: reference_measure.xml:2924
 #, no-c-format
 msgid ""
 "Version 2: Takes geomA and geomB and returns the <xref linkend=\"DE-9IM\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2904
+#: reference_measure.xml:2926
 #, no-c-format
 msgid ""
 "Version 3: same as version 2 bu allows to specify a boundary node rule (1:"
@@ -4531,19 +4622,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2908
+#: reference_measure.xml:2930
 #, no-c-format
 msgid "not in OGC spec, but implied. see s2.1.13.2"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2913
+#: reference_measure.xml:2935
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2914
+#: reference_measure.xml:2936
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 - added support for specifying boundary node rule (requires "
@@ -4551,7 +4642,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2921
+#: reference_measure.xml:2943
 #, no-c-format
 msgid ""
 "--Find all compounds that intersect and not touch a poly (interior "
@@ -4562,8 +4653,8 @@ msgid ""
 "ON (p.the_geom && b.the_geom\n"
 "AND ST_Relate(l.the_geom, b.the_geom,'T********'));\n"
 "\n"
-"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), ST_Buffer"
-"(ST_GeometryFromText('POINT(1 2)'),2));\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2));\n"
 "st_relate\n"
 "-----------\n"
 "0FFFFF212\n"
@@ -4575,21 +4666,21 @@ msgid ""
 "FF1FF0102\n"
 "\n"
 "\n"
-"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), ST_Buffer"
-"(ST_GeometryFromText('POINT(1 2)'),2), '0FFFFF212');\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '0FFFFF212');\n"
 "st_relate\n"
 "-----------\n"
 "t\n"
 "\n"
-"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), ST_Buffer"
-"(ST_GeometryFromText('POINT(1 2)'),2), '*FF*FF212');\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '*FF*FF212');\n"
 "st_relate\n"
 "-----------\n"
 "t"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2928
+#: reference_measure.xml:2950
 #, no-c-format
 msgid ""
 ", <xref linkend=\"DE-9IM\"/>, <xref linkend=\"ST_Disjoint\"/>, <xref linkend="
@@ -4597,13 +4688,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2934
+#: reference_measure.xml:2956
 #, no-c-format
 msgid "ST_RelateMatch"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2936
+#: reference_measure.xml:2958
 #, no-c-format
 msgid ""
 "Returns true if intersectionMattrixPattern1 implies "
@@ -4611,7 +4702,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2941
+#: reference_measure.xml:2963
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_RelateMatch</function></funcdef> "
@@ -4621,7 +4712,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2952
+#: reference_measure.xml:2974
 #, no-c-format
 msgid ""
 "Takes intersectionMatrix and intersectionMatrixPattern and Returns true if "
@@ -4630,13 +4721,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2955
+#: reference_measure.xml:2977
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2961
+#: reference_measure.xml:2983
 #, no-c-format
 msgid ""
 "SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ;\n"
@@ -4659,25 +4750,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2967
+#: reference_measure.xml:2989
 #, no-c-format
 msgid ", <xref linkend=\"ST_Relate\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2973
+#: reference_measure.xml:2995
 #, no-c-format
 msgid "ST_ShortestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2975
+#: reference_measure.xml:2997
 #, no-c-format
 msgid "Returns the 2-dimensional shortest line between two geometries"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2980
+#: reference_measure.xml:3002
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ShortestLine</function></funcdef> "
@@ -4686,7 +4777,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2995
+#: reference_measure.xml:3017
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional shortest line between two geometries. The function "
@@ -4701,13 +4792,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3019
+#: reference_measure.xml:3041
 #, no-c-format
 msgid "Shortest line between point and linestring"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3022
+#: reference_measure.xml:3044
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -4722,13 +4813,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3030
+#: reference_measure.xml:3052
 #, no-c-format
 msgid "shortest line between polygon and polygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3033
+#: reference_measure.xml:3055
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -4744,7 +4835,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3045
+#: reference_measure.xml:3067
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
@@ -4752,13 +4843,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:3051
+#: reference_measure.xml:3073
 #, no-c-format
 msgid "ST_Touches"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:3053
+#: reference_measure.xml:3075
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the geometries have at least one point in "
@@ -4766,7 +4857,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:3059
+#: reference_measure.xml:3081
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Touches</function></funcdef> "
@@ -4775,7 +4866,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3074
+#: reference_measure.xml:3096
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the only points in common between "
@@ -4787,37 +4878,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3081
+#: reference_measure.xml:3103
 #, no-c-format
 msgid "In mathematical terms, this predicate is expressed as:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3091
+#: reference_measure.xml:3113
 #, no-c-format
 msgid "The allowable DE-9IM Intersection Matrices for the two geometries are:"
 msgstr ""
 
 #. Tag: markup
-#: reference_measure.xml:3095
+#: reference_measure.xml:3117
 #, no-c-format
 msgid "FT*******"
 msgstr ""
 
 #. Tag: markup
-#: reference_measure.xml:3099
+#: reference_measure.xml:3121
 #, no-c-format
 msgid "F**T*****"
 msgstr ""
 
 #. Tag: markup
-#: reference_measure.xml:3103
+#: reference_measure.xml:3125
 #, no-c-format
 msgid "F***T****"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3112
+#: reference_measure.xml:3134
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -4826,13 +4917,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3118
+#: reference_measure.xml:3140
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.28"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3124
+#: reference_measure.xml:3146
 #, no-c-format
 msgid ""
 "The <function>ST_Touches</function> predicate returns <varname>TRUE</"
@@ -4840,7 +4931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3194
+#: reference_measure.xml:3216
 #, no-c-format
 msgid ""
 "SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(1 1)'::"
@@ -4859,19 +4950,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:3200
+#: reference_measure.xml:3222
 #, no-c-format
 msgid "ST_Within"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:3202
+#: reference_measure.xml:3224
 #, no-c-format
 msgid "Returns true if the geometry A is completely inside geometry B"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:3207
+#: reference_measure.xml:3229
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Within</function></funcdef> "
@@ -4880,18 +4971,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3222
+#: reference_measure.xml:3244
 #, no-c-format
 msgid ""
 "Returns TRUE if geometry A is completely inside geometry B. For this "
 "function to make sense, the source geometries must both be of the same "
-"coordinate projection, having the same SRID. It is a given that if ST_Within"
-"(A,B) is true and ST_Within(B,A) is true, then the two geometries are "
-"considered spatially equal."
+"coordinate projection, having the same SRID. It is a given that if "
+"ST_Within(A,B) is true and ST_Within(B,A) is true, then the two geometries "
+"are considered spatially equal."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3237
+#: reference_measure.xml:3259
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -4900,19 +4991,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3245
+#: reference_measure.xml:3267
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - a.Relate(b, 'T*F**F***')"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3248
+#: reference_measure.xml:3270
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.30"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3253
+#: reference_measure.xml:3275
 #, no-c-format
 msgid ""
 "--a circle within a circle\n"
@@ -4936,7 +5027,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3264
+#: reference_measure.xml:3286
 #, no-c-format
 msgid ", <xref linkend=\"ST_Equals\"/>, <xref linkend=\"ST_IsValid\"/>"
 msgstr ""
diff --git a/doc/po/it_IT/reference_misc.xml.po b/doc/po/it_IT/reference_misc.xml.po
index 3c28a7a..558b463 100644
--- a/doc/po/it_IT/reference_misc.xml.po
+++ b/doc/po/it_IT/reference_misc.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -44,9 +44,9 @@ msgstr ""
 
 #. Tag: title
 #: reference_misc.xml:22 reference_misc.xml:64 reference_misc.xml:106
-#: reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:289
-#: reference_misc.xml:343 reference_misc.xml:396 reference_misc.xml:438
-#: reference_misc.xml:488
+#: reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:285
+#: reference_misc.xml:339 reference_misc.xml:392 reference_misc.xml:434
+#: reference_misc.xml:486
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -59,7 +59,7 @@ msgstr ""
 
 #. Tag: para
 #: reference_misc.xml:25 reference_misc.xml:68 reference_misc.xml:109
-#: reference_misc.xml:255 reference_misc.xml:309 reference_misc.xml:355
+#: reference_misc.xml:251 reference_misc.xml:305 reference_misc.xml:351
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -67,40 +67,40 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:357
-#: reference_misc.xml:447
+#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:353
+#: reference_misc.xml:444
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
 #: reference_misc.xml:27 reference_misc.xml:69 reference_misc.xml:110
-#: reference_misc.xml:183 reference_misc.xml:358 reference_misc.xml:448
+#: reference_misc.xml:183 reference_misc.xml:354 reference_misc.xml:445
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: para
 #: reference_misc.xml:28 reference_misc.xml:70 reference_misc.xml:111
-#: reference_misc.xml:256 reference_misc.xml:310 reference_misc.xml:359
-#: reference_misc.xml:449
+#: reference_misc.xml:252 reference_misc.xml:306 reference_misc.xml:355
+#: reference_misc.xml:446
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
 #: reference_misc.xml:29 reference_misc.xml:71 reference_misc.xml:112
-#: reference_misc.xml:257 reference_misc.xml:311 reference_misc.xml:360
-#: reference_misc.xml:450
+#: reference_misc.xml:253 reference_misc.xml:307 reference_misc.xml:356
+#: reference_misc.xml:447
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: title
 #: reference_misc.xml:34 reference_misc.xml:76 reference_misc.xml:118
-#: reference_misc.xml:188 reference_misc.xml:262 reference_misc.xml:316
-#: reference_misc.xml:364 reference_misc.xml:408 reference_misc.xml:455
-#: reference_misc.xml:499
+#: reference_misc.xml:188 reference_misc.xml:258 reference_misc.xml:312
+#: reference_misc.xml:360 reference_misc.xml:404 reference_misc.xml:453
+#: reference_misc.xml:497
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -135,9 +135,9 @@ msgstr ""
 
 #. Tag: title
 #: reference_misc.xml:41 reference_misc.xml:83 reference_misc.xml:125
-#: reference_misc.xml:195 reference_misc.xml:268 reference_misc.xml:322
-#: reference_misc.xml:369 reference_misc.xml:415 reference_misc.xml:462
-#: reference_misc.xml:506
+#: reference_misc.xml:195 reference_misc.xml:264 reference_misc.xml:318
+#: reference_misc.xml:365 reference_misc.xml:411 reference_misc.xml:460
+#: reference_misc.xml:504
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -414,20 +414,12 @@ msgstr ""
 #: reference_misc.xml:248
 #, no-c-format
 msgid ""
-"Bounding boxes of all geometries are currently 2-d even if they are 3-"
-"dimensional geometries."
-msgstr ""
-
-#. Tag: para
-#: reference_misc.xml:252
-#, no-c-format
-msgid ""
 "Availability: 1.5.0 behavior changed to output double precision instead of "
 "float4 coordinates."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:263
+#: reference_misc.xml:259
 #, no-c-format
 msgid ""
 "Examples below use US National Atlas Equal Area (SRID=2163) which is a meter "
@@ -435,7 +427,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:264
+#: reference_misc.xml:260
 #, no-c-format
 msgid ""
 "<!-- TODO: fix results of documentation to reflect new behavior -->\n"
@@ -463,7 +455,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:269
+#: reference_misc.xml:265
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
@@ -472,13 +464,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:275
+#: reference_misc.xml:271
 #, no-c-format
 msgid "ST_Extent"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:276
+#: reference_misc.xml:272
 #, no-c-format
 msgid ""
 "an aggregate function that returns the bounding box that bounds rows of "
@@ -486,7 +478,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:281
+#: reference_misc.xml:277
 #, no-c-format
 msgid ""
 "<funcdef>box2d <function>ST_Extent</function></funcdef> "
@@ -495,7 +487,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:291
+#: reference_misc.xml:287
 #, no-c-format
 msgid ""
 "ST_Extent returns a bounding box that encloses a set of geometries. The "
@@ -505,7 +497,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:294 reference_misc.xml:348
+#: reference_misc.xml:290 reference_misc.xml:344
 #, no-c-format
 msgid ""
 "Since it returns a bounding box, the spatial Units are in the units of the "
@@ -513,14 +505,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:295
+#: reference_misc.xml:291
 #, no-c-format
 msgid ""
 "ST_Extent is similar in concept to Oracle Spatial/Locator's SDO_AGGR_MBR"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:297
+#: reference_misc.xml:293
 #, no-c-format
 msgid ""
 "Since ST_Extent returns a bounding box, the SRID meta-data is lost. Use "
@@ -529,7 +521,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:302
+#: reference_misc.xml:298
 #, no-c-format
 msgid ""
 "ST_Extent will return boxes with only an x and y component even with (x,y,z) "
@@ -537,19 +529,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:306
+#: reference_misc.xml:302
 #, no-c-format
 msgid "Availability: 1.4.0"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:317
+#: reference_misc.xml:313
 #, no-c-format
 msgid "Examples below use Massachusetts State Plane ft (SRID=2249)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:318
+#: reference_misc.xml:314
 #, no-c-format
 msgid ""
 "SELECT ST_Extent(the_geom) as bextent FROM sometable;\n"
@@ -582,7 +574,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:323
+#: reference_misc.xml:319
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DExtent\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -590,13 +582,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:329
+#: reference_misc.xml:325
 #, no-c-format
 msgid "ST_3DExtent"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:330
+#: reference_misc.xml:326
 #, no-c-format
 msgid ""
 "an aggregate function that returns the box3D bounding box that bounds rows "
@@ -604,7 +596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:335
+#: reference_misc.xml:331
 #, no-c-format
 msgid ""
 "<funcdef>box3d <function>ST_3DExtent</function></funcdef> "
@@ -613,7 +605,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:345
+#: reference_misc.xml:341
 #, no-c-format
 msgid ""
 "ST_3DExtent returns a box3d (includes Z coordinate) bounding box that "
@@ -623,7 +615,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:351
+#: reference_misc.xml:347
 #, no-c-format
 msgid ""
 "Since ST_3DExtent returns a bounding box, the SRID meta-data is lost. Use "
@@ -632,13 +624,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:356
+#: reference_misc.xml:352
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Extent3D"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:365
+#: reference_misc.xml:361
 #, no-c-format
 msgid ""
 "SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
@@ -652,8 +644,9 @@ msgid ""
 "\n"
 "--Get the extent of various elevated circular strings\n"
 "SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
-"FROM (SELECT ST_Translate(ST_Force_3DZ(ST_LineToCurve(ST_Buffer(ST_MakePoint"
-"(x,y),1))),0,0,z) As the_geom\n"
+"FROM (SELECT "
+"ST_Translate(ST_Force_3DZ(ST_LineToCurve(ST_Buffer(ST_MakePoint(x,"
+"y),1))),0,0,z) As the_geom\n"
 "        FROM generate_series(1,3) As x\n"
 "                CROSS JOIN generate_series(1,2) As y\n"
 "                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
@@ -664,28 +657,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:370
+#: reference_misc.xml:366
 #, no-c-format
 msgid ", <xref linkend=\"ST_Force_3DZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:377
+#: reference_misc.xml:373
 #, no-c-format
 msgid "Find_SRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:379
+#: reference_misc.xml:375
 #, no-c-format
 msgid ""
-"The syntax is find_srid(<db/schema>, <table>, <column>) "
-"and the function returns the integer SRID of the specified column by "
-"searching through the GEOMETRY_COLUMNS table."
+"The syntax is find_srid(a_db_schema, a_table, a_column) and the function "
+"returns the integer SRID of the specified column by searching through the "
+"GEOMETRY_COLUMNS table."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:386
+#: reference_misc.xml:382
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>Find_SRID</function></funcdef> "
@@ -696,7 +689,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:398
+#: reference_misc.xml:394
 #, no-c-format
 msgid ""
 "The syntax is find_srid(<db/schema>, <table>, <column>) "
@@ -707,7 +700,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:410
+#: reference_misc.xml:406
 #, no-c-format
 msgid ""
 "SELECT Find_SRID('public', 'tiger_us_state_2007', 'the_geom_4269');\n"
@@ -717,13 +710,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:423
+#: reference_misc.xml:419
 #, no-c-format
-msgid "ST_Mem_Size"
+msgid "ST_MemSize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:425
+#: reference_misc.xml:421
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the amount of space (in bytes) the geometry takes.</"
@@ -731,55 +724,72 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:430
+#: reference_misc.xml:426
 #, no-c-format
 msgid ""
-"<funcdef>integer <function>ST_Mem_Size</function></funcdef> "
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:440
+#: reference_misc.xml:436
 #, no-c-format
 msgid "<para>Returns the amount of space (in bytes) the geometry takes.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:441
+#: reference_misc.xml:437
 #, no-c-format
 msgid ""
-"This is a nice compliment to PostgreSQL built in functions pg_size_pretty, "
-"pg_relation_size, pg_total_relation_size."
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:442
+#: reference_misc.xml:438
 #, no-c-format
 msgid ""
 "pg_relation_size which gives the byte size of a table may return byte size "
-"lower than ST_Mem_Size. This is because pg_relation_size does not add "
-"toasted table contribution and large geometries are stored in TOAST tables."
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:444
+#: reference_misc.xml:440
 #, no-c-format
 msgid ""
 "pg_total_relation_size - includes, the table, the toasted tables, and the "
 "indexes."
 msgstr ""
 
+#. Tag: para
+#: reference_misc.xml:441
+#, no-c-format
+msgid ""
+"pg_column_size returns how much space a geometry would take in a column "
+"considering compression, so may be lower than ST_MemSize"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:448
+#, no-c-format
+msgid ""
+"Changed: 2.2.0 name changed to ST_MemSize to follow naming convention. In "
+"prior versions this function was called ST_Mem_Size, old name deprecated "
+"though still available."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_misc.xml:457
+#: reference_misc.xml:455
 #, no-c-format
 msgid ""
 "--Return how much byte space Boston takes up  in our Mass data set\n"
-"SELECT pg_size_pretty(SUM(ST_Mem_Size(the_geom))) as totgeomsum,\n"
-"pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN st_mem_size(the_geom) ELSE "
+"SELECT pg_size_pretty(SUM(ST_MemSize(the_geom))) as totgeomsum,\n"
+"pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE "
 "0 END)) As bossum,\n"
-"CAST(SUM(CASE WHEN town = 'BOSTON' THEN st_mem_size(the_geom) ELSE 0 END)"
-"*1.00 /\n"
-"                SUM(st_mem_size(the_geom))*100 As numeric(10,2)) As perbos\n"
+"CAST(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 "
+"END)*1.00 /\n"
+"                SUM(ST_MemSize(the_geom))*100 As numeric(10,2)) As perbos\n"
 "FROM towns;\n"
 "\n"
 "totgeomsum        bossum        perbos\n"
@@ -787,16 +797,16 @@ msgid ""
 "1522 kB                30 kB        1.99\n"
 "\n"
 "\n"
-"SELECT ST_Mem_Size(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
 "150505,220227 150406)'));\n"
 "\n"
 "---\n"
 "73\n"
 "\n"
 "--What percentage of our table is taken up by just the geometry\n"
-"SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, sum"
-"(ST_Mem_Size(the_geom)) As geomsize,\n"
-"sum(ST_Mem_Size(the_geom))*1.00/pg_total_relation_size('public."
+"SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, "
+"sum(ST_MemSize(the_geom)) As geomsize,\n"
+"sum(ST_MemSize(the_geom))*1.00/pg_total_relation_size('public."
 "neighborhoods')*100 As pergeom\n"
 "FROM neighborhoods;\n"
 "fulltable_size geomsize  pergeom\n"
@@ -805,20 +815,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:470
+#: reference_misc.xml:468
 #, no-c-format
 msgid "ST_Point_Inside_Circle"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:472
+#: reference_misc.xml:470
 #, no-c-format
 msgid ""
 "Is the point geometry insert circle defined by center_x, center_y, radius"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:477
+#: reference_misc.xml:475
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Point_Inside_Circle</function></funcdef> "
@@ -829,7 +839,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:490
+#: reference_misc.xml:488
 #, no-c-format
 msgid ""
 "The syntax for this functions is point_inside_circle(<geometry>,<"
@@ -839,13 +849,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:494
+#: reference_misc.xml:492
 #, no-c-format
 msgid "This only works for points as the name suggests"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:501
+#: reference_misc.xml:499
 #, no-c-format
 msgid ""
 "SELECT ST_Point_Inside_Circle(ST_Point(1,2), 0.5, 2, 3);\n"
diff --git a/doc/po/it_IT/reference_operator.xml.po b/doc/po/it_IT/reference_operator.xml.po
index 43f6de8..5c9d747 100644
--- a/doc/po/it_IT/reference_operator.xml.po
+++ b/doc/po/it_IT/reference_operator.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -56,7 +56,7 @@ msgstr ""
 #: reference_operator.xml:546 reference_operator.xml:599
 #: reference_operator.xml:654 reference_operator.xml:712
 #: reference_operator.xml:765 reference_operator.xml:818
-#: reference_operator.xml:883 reference_operator.xml:949
+#: reference_operator.xml:883 reference_operator.xml:950
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
 #: reference_operator.xml:502 reference_operator.xml:556
 #: reference_operator.xml:611 reference_operator.xml:665
 #: reference_operator.xml:722 reference_operator.xml:775
-#: reference_operator.xml:843 reference_operator.xml:899
-#: reference_operator.xml:963
+#: reference_operator.xml:843 reference_operator.xml:900
+#: reference_operator.xml:964
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -151,7 +151,7 @@ msgstr ""
 #: reference_operator.xml:562 reference_operator.xml:617
 #: reference_operator.xml:671 reference_operator.xml:728
 #: reference_operator.xml:781 reference_operator.xml:848
-#: reference_operator.xml:915 reference_operator.xml:967
+#: reference_operator.xml:916 reference_operator.xml:968
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -1092,7 +1092,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:888 reference_operator.xml:953
+#: reference_operator.xml:888 reference_operator.xml:954
 #, no-c-format
 msgid ""
 "This operand will make use of any indexes that may be available on the "
@@ -1111,13 +1111,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:893 reference_operator.xml:958
+#: reference_operator.xml:892
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://workshops.opengeo.org/postgis-intro/knn.html"
+"\">OpenGeo workshop: Nearest-Neighbour Searching</ulink> for real live "
+"example."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:894 reference_operator.xml:959
 #, no-c-format
 msgid "Availability: 2.0.0 only available for PostgreSQL 9.1+"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:900
+#: reference_operator.xml:901
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
@@ -1141,13 +1150,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:901
+#: reference_operator.xml:902
 #, no-c-format
 msgid "Then the KNN raw answer:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:904
+#: reference_operator.xml:905
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT st_distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
@@ -1171,7 +1180,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:905
+#: reference_operator.xml:906
 #, no-c-format
 msgid ""
 "Note the misordering in the actual distances and the different entries that "
@@ -1179,13 +1188,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:909
+#: reference_operator.xml:910
 #, no-c-format
 msgid "Finally the hybrid:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:912
+#: reference_operator.xml:913
 #, no-c-format
 msgid ""
 "<![CDATA[WITH index_query AS (\n"
@@ -1213,20 +1222,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:916
+#: reference_operator.xml:917
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_box\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_operator.xml:922
+#: reference_operator.xml:923
 #, no-c-format
 msgid "<#>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_operator.xml:924
+#: reference_operator.xml:925
 #, no-c-format
 msgid ""
 "Returns the distance between bounding box of 2 geometries. For point / point "
@@ -1237,7 +1246,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_operator.xml:930
+#: reference_operator.xml:931
 #, no-c-format
 msgid ""
 "<funcdef>double precision <function><#></function></funcdef> "
@@ -1246,7 +1255,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:951
+#: reference_operator.xml:952
 #, no-c-format
 msgid ""
 "The <varname><#></varname> KNN GIST operator returns distance between "
@@ -1256,7 +1265,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:956
+#: reference_operator.xml:957
 #, no-c-format
 msgid ""
 "Index only kicks in if one of the geometries is a constant e.g. ORDER BY "
@@ -1264,7 +1273,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:964
+#: reference_operator.xml:965
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT *\n"
@@ -1299,7 +1308,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:968
+#: reference_operator.xml:969
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_centroid"
diff --git a/doc/po/it_IT/reference_output.xml.po b/doc/po/it_IT/reference_output.xml.po
index 6ac7c56..48991aa 100644
--- a/doc/po/it_IT/reference_output.xml.po
+++ b/doc/po/it_IT/reference_output.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-14 21:54+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -54,10 +54,11 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:35 reference_output.xml:108 reference_output.xml:161
-#: reference_output.xml:233 reference_output.xml:335 reference_output.xml:436
-#: reference_output.xml:492 reference_output.xml:557 reference_output.xml:600
-#: reference_output.xml:702 reference_output.xml:751 reference_output.xml:809
+#: reference_output.xml:35 reference_output.xml:109 reference_output.xml:162
+#: reference_output.xml:238 reference_output.xml:339 reference_output.xml:440
+#: reference_output.xml:496 reference_output.xml:561 reference_output.xml:604
+#: reference_output.xml:707 reference_output.xml:755 reference_output.xml:813
+#: reference_output.xml:879 reference_output.xml:944 reference_output.xml:988
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -74,7 +75,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:40 reference_output.xml:112
+#: reference_output.xml:40 reference_output.xml:113
 #, no-c-format
 msgid ""
 "This is useful in binary cursors to pull data out of the database without "
@@ -109,7 +110,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:55 reference_output.xml:120
+#: reference_output.xml:55 reference_output.xml:121
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -131,7 +132,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:58 reference_output.xml:274 reference_output.xml:379
+#: reference_output.xml:58 reference_output.xml:279 reference_output.xml:383
 #, no-c-format
 msgid "Availability: 1.5.0 geography support was introduced."
 msgstr ""
@@ -143,13 +144,13 @@ msgid ""
 "Changed: 2.0.0 Inputs to this function can not be unknown -- must be "
 "geometry. Constructs such as <code>ST_AsBinary('POINT(1 2)')</code> are no "
 "longer valid and you will get an <code>n st_asbinary(unknown) is not unique "
-"error</code>. Code like that needs to be changed to <code>ST_AsBinary('POINT"
-"(1 2)'::geometry);</code>. If that is not possible, then install "
-"<filename>legacy.sql</filename>."
+"error</code>. Code like that needs to be changed to "
+"<code>ST_AsBinary('POINT(1 2)'::geometry);</code>. If that is not possible, "
+"then install <filename>legacy.sql</filename>."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:61 reference_output.xml:767
+#: reference_output.xml:61 reference_output.xml:771
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.1"
 msgstr ""
@@ -161,39 +162,40 @@ msgid "&sqlmm_compliant; SQL-MM 3: 5.1.37"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:63 reference_output.xml:122 reference_output.xml:176
-#: reference_output.xml:445 reference_output.xml:716 reference_output.xml:769
+#: reference_output.xml:63 reference_output.xml:123 reference_output.xml:177
+#: reference_output.xml:449 reference_output.xml:721 reference_output.xml:773
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:64 reference_output.xml:123 reference_output.xml:177
-#: reference_output.xml:386 reference_output.xml:659
+#: reference_output.xml:64 reference_output.xml:124 reference_output.xml:178
+#: reference_output.xml:390 reference_output.xml:664
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:65 reference_output.xml:124 reference_output.xml:178
-#: reference_output.xml:387 reference_output.xml:662
+#: reference_output.xml:65 reference_output.xml:125 reference_output.xml:179
+#: reference_output.xml:391 reference_output.xml:667
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:66 reference_output.xml:121 reference_output.xml:175
-#: reference_output.xml:276 reference_output.xml:385 reference_output.xml:444
-#: reference_output.xml:519 reference_output.xml:657
+#: reference_output.xml:66 reference_output.xml:122 reference_output.xml:176
+#: reference_output.xml:281 reference_output.xml:389 reference_output.xml:448
+#: reference_output.xml:523 reference_output.xml:662
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:71 reference_output.xml:129 reference_output.xml:183
-#: reference_output.xml:280 reference_output.xml:449 reference_output.xml:523
-#: reference_output.xml:576 reference_output.xml:720 reference_output.xml:774
-#: reference_output.xml:838
+#: reference_output.xml:71 reference_output.xml:130 reference_output.xml:184
+#: reference_output.xml:285 reference_output.xml:453 reference_output.xml:527
+#: reference_output.xml:580 reference_output.xml:725 reference_output.xml:778
+#: reference_output.xml:842 reference_output.xml:896 reference_output.xml:961
+#: reference_output.xml:997
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -237,9 +239,10 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:79 reference_output.xml:137 reference_output.xml:190
-#: reference_output.xml:405 reference_output.xml:527 reference_output.xml:724
-#: reference_output.xml:781
+#: reference_output.xml:79 reference_output.xml:138 reference_output.xml:191
+#: reference_output.xml:409 reference_output.xml:531 reference_output.xml:729
+#: reference_output.xml:785 reference_output.xml:901 reference_output.xml:966
+#: reference_output.xml:1002
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -247,17 +250,19 @@ msgstr ""
 #. Tag: para
 #: reference_output.xml:80
 #, no-c-format
-msgid ", <xref linkend=\"ST_AsText\"/>,"
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsTWKB\"/>, <xref "
+"linkend=\"ST_AsText\"/>,"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:89
+#: reference_output.xml:90
 #, no-c-format
 msgid "ST_AsEWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:90
+#: reference_output.xml:91
 #, no-c-format
 msgid ""
 "Return the Well-Known Binary (WKB) representation of the geometry with SRID "
@@ -265,7 +270,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:94
+#: reference_output.xml:95
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bytea <function>ST_AsEWKB</function></funcdef> "
@@ -277,7 +282,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:109
+#: reference_output.xml:110
 #, no-c-format
 msgid ""
 "Returns the Well-Known Binary representation of the geometry with SRID "
@@ -288,7 +293,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:115
+#: reference_output.xml:116
 #, no-c-format
 msgid ""
 "The WKB spec does not include the SRID. To get the OGC WKB format use "
@@ -296,7 +301,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:118
+#: reference_output.xml:119
 #, no-c-format
 msgid ""
 "ST_AsEWKB is the reverse of ST_GeomFromEWKB. Use ST_GeomFromEWKB to convert "
@@ -304,7 +309,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:131
+#: reference_output.xml:132
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
@@ -324,7 +329,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:132
+#: reference_output.xml:133
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
@@ -342,7 +347,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:138
+#: reference_output.xml:139
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
@@ -350,13 +355,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:143
+#: reference_output.xml:144
 #, no-c-format
 msgid "ST_AsEWKT"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:144
+#: reference_output.xml:145
 #, no-c-format
 msgid ""
 "Return the Well-Known Text (WKT) representation of the geometry with SRID "
@@ -364,7 +369,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:148
+#: reference_output.xml:149
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsEWKT</function></funcdef> "
@@ -375,7 +380,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:163
+#: reference_output.xml:164
 #, no-c-format
 msgid ""
 "Returns the Well-Known Text representation of the geometry prefixed with the "
@@ -383,7 +388,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:166
+#: reference_output.xml:167
 #, no-c-format
 msgid ""
 "The WKT spec does not include the SRID. To get the OGC WKT format use "
@@ -391,7 +396,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:168 reference_output.xml:759
+#: reference_output.xml:169 reference_output.xml:763
 #, no-c-format
 msgid ""
 "WKT format does not maintain precision so to prevent floating truncation, "
@@ -399,7 +404,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:172
+#: reference_output.xml:173
 #, no-c-format
 msgid ""
 "ST_AsEWKT is the reverse of <xref linkend=\"ST_GeomFromEWKT\"/>. Use <xref "
@@ -408,7 +413,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:174
+#: reference_output.xml:175
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Geography, Polyhedral surfaces, Triangles and "
@@ -416,7 +421,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:185
+#: reference_output.xml:186
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT('0103000020E61000000100000005000000000000\n"
@@ -430,8 +435,8 @@ msgid ""
 "SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
 "(1 row)\n"
 "\n"
-"SELECT ST_AsEWKT"
-"('0108000080030000000000000060E30A4100000000785C0241000000000000F03F0000000018\n"
+"SELECT "
+"ST_AsEWKT('0108000080030000000000000060E30A4100000000785C0241000000000000F03F0000000018\n"
 "E20A4100000000485F024100000000000000400000000018\n"
 "E20A4100000000305C02410000000000000840')\n"
 "\n"
@@ -440,25 +445,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:191
+#: reference_output.xml:192
 #, no-c-format
-msgid "<para>,</para>"
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:196
+#: reference_output.xml:201
 #, no-c-format
 msgid "ST_AsGeoJSON"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:198
+#: reference_output.xml:203
 #, no-c-format
 msgid "Return the geometry as a GeoJSON element."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:202
+#: reference_output.xml:207
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsGeoJSON</function></funcdef> "
@@ -487,7 +494,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:235
+#: reference_output.xml:240
 #, no-c-format
 msgid ""
 "Return the geometry as a Geometry Javascript Object Notation (GeoJSON) "
@@ -497,7 +504,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:241
+#: reference_output.xml:246
 #, no-c-format
 msgid ""
 "The gj_version parameter is the major version of the GeoJSON spec. If "
@@ -505,7 +512,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:243
+#: reference_output.xml:248
 #, no-c-format
 msgid ""
 "The third argument may be used to reduce the maximum number of decimal "
@@ -513,7 +520,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:246
+#: reference_output.xml:251
 #, no-c-format
 msgid ""
 "The last 'options' argument could be used to add Bbox or Crs in GeoJSON "
@@ -521,79 +528,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:250
+#: reference_output.xml:255
 #, no-c-format
 msgid "0: means no option (default value)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:254
+#: reference_output.xml:259
 #, no-c-format
 msgid "1: GeoJSON Bbox"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:258
+#: reference_output.xml:263
 #, no-c-format
 msgid "2: GeoJSON Short CRS (e.g EPSG:4326)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:262
+#: reference_output.xml:267
 #, no-c-format
 msgid "4: GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:266
+#: reference_output.xml:271
 #, no-c-format
 msgid "Version 1: ST_AsGeoJSON(geom) / precision=15 version=1 options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:267
+#: reference_output.xml:272
 #, no-c-format
 msgid "Version 2: ST_AsGeoJSON(geom, precision) / version=1 options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:268
+#: reference_output.xml:273
 #, no-c-format
 msgid "Version 3: ST_AsGeoJSON(geom, precision, options) / version=1"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:269
+#: reference_output.xml:274
 #, no-c-format
 msgid "Version 4: ST_AsGeoJSON(gj_version, geom) / precision=15 options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:270
+#: reference_output.xml:275
 #, no-c-format
 msgid "Version 5: ST_AsGeoJSON(gj_version, geom, precision) /options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:271
+#: reference_output.xml:276
 #, no-c-format
 msgid "Version 6: ST_AsGeoJSON(gj_version, geom, precision,options)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:273
+#: reference_output.xml:278
 #, no-c-format
 msgid "Availability: 1.3.4"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:275
+#: reference_output.xml:280
 #, no-c-format
 msgid "Changed: 2.0.0 support default args and named args."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:281
+#: reference_output.xml:286
 #, no-c-format
 msgid ""
 "GeoJSON format is generally more efficient than other formats for use in "
@@ -603,7 +610,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:286
+#: reference_output.xml:291
 #, no-c-format
 msgid ""
 "SELECT ST_AsGeoJSON(the_geom) from fe_edges limit 1;\n"
@@ -623,26 +630,36 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:291
+#: reference_output.xml:296
 #, no-c-format
 msgid "ST_AsGML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:292
+#: reference_output.xml:297
 #, no-c-format
 msgid "Return the geometry as a GML version 2 or 3 element."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:296
+#: reference_output.xml:301
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsGML</function></funcdef> "
-"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
 "<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>integer </type> "
 "<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
 "\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
@@ -659,7 +676,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:337
+#: reference_output.xml:341
 #, no-c-format
 msgid ""
 "Return the geometry as a Geography Markup Language (GML) element. The "
@@ -670,13 +687,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:342
+#: reference_output.xml:346
 #, no-c-format
 msgid "GML 2 refer to 2.1.2 version, GML 3 to 3.1.1 version"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:343
+#: reference_output.xml:347
 #, no-c-format
 msgid ""
 "The 'options' argument is a bitfield. It could be used to define CRS output "
@@ -684,25 +701,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:347
+#: reference_output.xml:351
 #, no-c-format
 msgid "0: GML Short CRS (e.g EPSG:4326), default value"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:351
+#: reference_output.xml:355
 #, no-c-format
 msgid "1: GML Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:355
+#: reference_output.xml:359
 #, no-c-format
 msgid "2: For GML 3 only, remove srsDimension attribute from output."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:359
+#: reference_output.xml:363
 #, no-c-format
 msgid ""
 "4: For GML 3 only, use <LineString> rather than <Curve> tag for "
@@ -710,7 +727,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:363
+#: reference_output.xml:367
 #, no-c-format
 msgid ""
 "16: Declare that datas are lat/lon (e.g srid=4326). Default is to assume "
@@ -720,13 +737,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:369
+#: reference_output.xml:373
 #, no-c-format
 msgid "32: Output the box of the geometry (envelope)."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:374
+#: reference_output.xml:378
 #, no-c-format
 msgid ""
 "The 'namespace prefix' argument may be used to specify a custom namespace "
@@ -734,13 +751,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:378
+#: reference_output.xml:382
 #, no-c-format
 msgid "Availability: 1.3.2"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:380
+#: reference_output.xml:384
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 prefix support was introduced. Option 4 for GML3 was "
@@ -750,31 +767,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:381
+#: reference_output.xml:385
 #, no-c-format
 msgid "Changed: 2.0.0 use default named args"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:382
+#: reference_output.xml:386
 #, no-c-format
 msgid "Enhanced: 2.1.0 id support was introduced, for GML 3."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:384
+#: reference_output.xml:388
 #, no-c-format
 msgid "Only version 3+ of ST_AsGML supports Polyhedral Surfaces and TINS."
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:391
+#: reference_output.xml:395
 #, no-c-format
 msgid "Examples: Version 2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:392
+#: reference_output.xml:396
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_AsGML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
@@ -787,13 +804,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:395
+#: reference_output.xml:399
 #, no-c-format
 msgid "Examples: Version 3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:396
+#: reference_output.xml:400
 #, no-c-format
 msgid ""
 "-- Flip coordinates and output extended EPSG (16 | 1)--\n"
@@ -806,7 +823,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:397
+#: reference_output.xml:401
 #, no-c-format
 msgid ""
 "-- Output the envelope (32) --\n"
@@ -821,7 +838,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:399
+#: reference_output.xml:403
 #, no-c-format
 msgid ""
 "-- Output the envelope (32) , reverse (lat lon instead of lon lat) (16), "
@@ -837,7 +854,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:401
+#: reference_output.xml:405
 #, no-c-format
 msgid ""
 "-- Polyhedral Example --\n"
@@ -905,13 +922,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:414
+#: reference_output.xml:418
 #, no-c-format
 msgid "ST_AsHEXEWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:416
+#: reference_output.xml:420
 #, no-c-format
 msgid ""
 "Returns a Geometry in HEXEWKB format (as text) using either little-endian "
@@ -919,7 +936,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:421
+#: reference_output.xml:425
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsHEXEWKB</function></funcdef> "
@@ -931,7 +948,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:438
+#: reference_output.xml:442
 #, no-c-format
 msgid ""
 "Returns a Geometry in HEXEWKB format (as text) using either little-endian "
@@ -940,13 +957,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:442
+#: reference_output.xml:446
 #, no-c-format
 msgid "Availability: 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:450
+#: reference_output.xml:454
 #, no-c-format
 msgid ""
 "SELECT ST_AsHEXEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
@@ -966,13 +983,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:456
+#: reference_output.xml:460
 #, no-c-format
 msgid "ST_AsKML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:458
+#: reference_output.xml:462
 #, no-c-format
 msgid ""
 "Return the geometry as a KML element. Several variants. Default version=2, "
@@ -980,7 +997,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:462
+#: reference_output.xml:466
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
@@ -1007,7 +1024,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:494
+#: reference_output.xml:498
 #, no-c-format
 msgid ""
 "Return the geometry as a Keyhole Markup Language (KML) element. There are "
@@ -1017,7 +1034,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:498
+#: reference_output.xml:502
 #, no-c-format
 msgid ""
 "Version 1: ST_AsKML(geom_or_geog, maxdecimaldigits) / version=2 / "
@@ -1025,7 +1042,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:499
+#: reference_output.xml:503
 #, no-c-format
 msgid ""
 "Version 2: ST_AsKML(version, geom_or_geog, maxdecimaldigits, nprefix) "
@@ -1033,7 +1050,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:502
+#: reference_output.xml:506
 #, no-c-format
 msgid ""
 "Requires PostGIS be compiled with Proj support. Use <xref linkend="
@@ -1041,32 +1058,32 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:506
+#: reference_output.xml:510
 #, no-c-format
 msgid ""
 "Availability: 1.2.2 - later variants that include version param came in 1.3.2"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:509
+#: reference_output.xml:513
 #, no-c-format
 msgid "Enhanced: 2.0.0 - Add prefix namespace. Default is no prefix"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:512
+#: reference_output.xml:516
 #, no-c-format
 msgid "Changed: 2.0.0 - uses default args and supports named args"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:516
+#: reference_output.xml:520
 #, no-c-format
 msgid "AsKML output will not work with geometries that do not have an SRID"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:524
+#: reference_output.xml:528
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_AsKML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
@@ -1085,26 +1102,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:529
+#: reference_output.xml:533
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsGML\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:534
+#: reference_output.xml:538
 #, no-c-format
 msgid "ST_AsSVG"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:536
+#: reference_output.xml:540
 #, no-c-format
 msgid ""
 "Returns a Geometry in SVG path data given a geometry or geography object."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:540
+#: reference_output.xml:544
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
@@ -1120,7 +1137,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:559
+#: reference_output.xml:563
 #, no-c-format
 msgid ""
 "Return the geometry as Scalar Vector Graphics (SVG) path data. Use 1 as "
@@ -1133,7 +1150,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:569
+#: reference_output.xml:573
 #, no-c-format
 msgid ""
 "Availability: 1.2.2. Availability: 1.4.0 Changed in PostGIS 1.4.0 to include "
@@ -1143,13 +1160,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:572
+#: reference_output.xml:576
 #, no-c-format
 msgid "Changed: 2.0.0 to use default args and support named args"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:577
+#: reference_output.xml:581
 #, no-c-format
 msgid ""
 "SELECT ST_AsSVG(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
@@ -1160,13 +1177,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:583
+#: reference_output.xml:587
 #, no-c-format
 msgid "ST_AsX3D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:585
+#: reference_output.xml:589
 #, no-c-format
 msgid ""
 "Returns a Geometry in X3D xml node element format: ISO-IEC-19776-1.2-"
@@ -1174,7 +1191,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_output.xml:590
+#: reference_output.xml:594
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_AsX3D</function></funcdef> "
@@ -1185,19 +1202,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:602
+#: reference_output.xml:606
 #, no-c-format
 msgid ""
 "Returns a geometry as an X3D xml formatted node element <ulink url=\"http://"
-"web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/"
-"EncodingOfNodes.html\">http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-"
-"X3DEncodings-XML/Part01/EncodingOfNodes.html</ulink>. If "
-"<varname>maxdecimaldigits</varname> (precision) is not specified then "
-"defaults to 15."
+"www.web3d.org/standards/number/19776-1\">http://www.web3d.org/standards/"
+"number/19776-1</ulink>. If <varname>maxdecimaldigits</varname> (precision) "
+"is not specified then defaults to 15."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:604
+#: reference_output.xml:608
 #, no-c-format
 msgid ""
 "There are various options for translating PostGIS geometries to X3D since "
@@ -1209,127 +1224,127 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:606
+#: reference_output.xml:610
 #, no-c-format
 msgid "Below is how we currently map PostGIS 2D/3D types to X3D types"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:613
+#: reference_output.xml:617
 #, no-c-format
 msgid "PostGIS Type"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:614
+#: reference_output.xml:618
 #, no-c-format
 msgid "2D X3D Type"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:615
+#: reference_output.xml:619
 #, no-c-format
 msgid "3D X3D Type"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:620
+#: reference_output.xml:624
 #, no-c-format
 msgid "LINESTRING"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:621 reference_output.xml:626
+#: reference_output.xml:625 reference_output.xml:630
 #, no-c-format
 msgid "not yet implemented - will be PolyLine2D"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:622
+#: reference_output.xml:626
 #, no-c-format
 msgid "LineSet"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:625
+#: reference_output.xml:629
 #, no-c-format
 msgid "MULTILINESTRING"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:627
+#: reference_output.xml:631
 #, no-c-format
 msgid "IndexedLineSet"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:630
+#: reference_output.xml:634
 #, no-c-format
 msgid "MULTIPOINT"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:631
+#: reference_output.xml:635
 #, no-c-format
 msgid "Polypoint2D"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:632
+#: reference_output.xml:636
 #, no-c-format
 msgid "PointSet"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:635
+#: reference_output.xml:639
 #, no-c-format
 msgid "POINT"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:636 reference_output.xml:637
+#: reference_output.xml:640 reference_output.xml:641
 #, no-c-format
 msgid "outputs the space delimited coordinates"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:640
+#: reference_output.xml:644
 #, no-c-format
 msgid "(MULTI) POLYGON, POLYHEDRALSURFACE"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:641
+#: reference_output.xml:645
 #, no-c-format
 msgid "Invalid X3D markup"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:642
+#: reference_output.xml:646
 #, no-c-format
 msgid "IndexedFaceSet (inner rings currently output as another faceset)"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:645
+#: reference_output.xml:649
 #, no-c-format
 msgid "<entry>TIN</entry>"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:646
+#: reference_output.xml:650
 #, no-c-format
 msgid "TriangleSet2D (Not Yet Implemented)"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:647
+#: reference_output.xml:651
 #, no-c-format
 msgid "IndexedTriangleSet"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:652
+#: reference_output.xml:656
 #, no-c-format
 msgid ""
 "2D geometry support not yet complete. Inner rings currently just drawn as "
@@ -1337,7 +1352,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:653
+#: reference_output.xml:657
 #, no-c-format
 msgid ""
 "Lots of advancements happening in 3D space particularly with <ulink url="
@@ -1346,7 +1361,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:654
+#: reference_output.xml:658
 #, no-c-format
 msgid ""
 "There is also a nice open source X3D viewer you can use to view rendered "
@@ -1356,13 +1371,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:655
+#: reference_output.xml:659
+#, no-c-format
+msgid ""
+"Also check out <ulink url=\"https://github.com/robe2/postgis_x3d_viewer"
+"\">PostGIS minimalist X3D viewer</ulink> that utilizes this function and "
+"<ulink url=\"http://www.x3dom.org/\">x3dDom html/js open source toolkit</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:660
 #, no-c-format
 msgid "Availability: 2.0.0: ISO-IEC-19776-1.2-X3DEncodings-XML"
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:667
+#: reference_output.xml:672
 #, no-c-format
 msgid ""
 "Example: Create a fully functional X3D document - This will generate a cube "
@@ -1370,7 +1395,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:668
+#: reference_output.xml:673
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
@@ -1420,13 +1445,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:671
+#: reference_output.xml:676
 #, no-c-format
 msgid "Example: An Octagon elevated 3 Units and decimal precision of 6"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:672
+#: reference_output.xml:677
 #, no-c-format
 msgid ""
 "SELECT ST_AsX3D(\n"
@@ -1445,13 +1470,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:675
+#: reference_output.xml:680
 #, no-c-format
 msgid "Example: TIN"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:676
+#: reference_output.xml:681
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_AsX3D(ST_GeomFromEWKT('TIN (((\n"
@@ -1474,13 +1499,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:679
+#: reference_output.xml:684
 #, no-c-format
 msgid "Example: Closed multilinestring (the boundary of a polygon with holes)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:680
+#: reference_output.xml:685
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_AsX3D(\n"
@@ -1501,19 +1526,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:686
+#: reference_output.xml:691
 #, no-c-format
 msgid "ST_GeoHash"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:688
+#: reference_output.xml:693
 #, no-c-format
-msgid "Return a GeoHash representation (geohash.org) of the geometry."
+msgid "Return a GeoHash representation of the geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_output.xml:693
+#: reference_output.xml:698
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_GeoHash</function></funcdef> "
@@ -1523,17 +1548,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:704
+#: reference_output.xml:709
 #, no-c-format
 msgid ""
-"Return a GeoHash representation (geohash.org) of the geometry. A GeoHash "
-"encodes a point into a text form that is sortable and searchable based on "
-"prefixing. A shorter GeoHash is a less precise representation of a point. It "
-"can also be thought of as a box, that contains the actual point."
+"Return a GeoHash representation (<ulink url=\"http://en.wikipedia.org/wiki/"
+"Geohash\">http://en.wikipedia.org/wiki/Geohash</ulink>) of the geometry. A "
+"GeoHash encodes a point into a text form that is sortable and searchable "
+"based on prefixing. A shorter GeoHash is a less precise representation of a "
+"point. It can also be thought of as a box, that contains the actual point."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:706
+#: reference_output.xml:711
 #, no-c-format
 msgid ""
 "If no <varname>maxchars</varname> is specficified ST_GeoHash returns a "
@@ -1547,7 +1573,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:708
+#: reference_output.xml:713
 #, no-c-format
 msgid ""
 "If <varname>maxchars</varname> is specified ST_GeoHash returns a GeoHash "
@@ -1557,13 +1583,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:710
+#: reference_output.xml:715
 #, no-c-format
 msgid "Availability: 1.4.0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:713
+#: reference_output.xml:718
 #, no-c-format
 msgid ""
 "ST_GeoHash will not work with geometries that are not in geographic (lon/"
@@ -1571,7 +1597,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:721
+#: reference_output.xml:726
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326));\n"
@@ -1589,13 +1615,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:733
+#: reference_output.xml:737
 #, no-c-format
 msgid "ST_AsText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:734
+#: reference_output.xml:738
 #, no-c-format
 msgid ""
 "Return the Well-Known Text (WKT) representation of the geometry/geography "
@@ -1603,7 +1629,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:738
+#: reference_output.xml:742
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsText</function></funcdef> "
@@ -1614,13 +1640,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:753
+#: reference_output.xml:757
 #, no-c-format
 msgid "Returns the Well-Known Text representation of the geometry/geography."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:756
+#: reference_output.xml:760
 #, no-c-format
 msgid ""
 "The WKT spec does not include the SRID. To get the SRID as part of the data, "
@@ -1628,7 +1654,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:763
+#: reference_output.xml:767
 #, no-c-format
 msgid ""
 "ST_AsText is the reverse of <xref linkend=\"ST_GeomFromText\"/>. Use <xref "
@@ -1637,19 +1663,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:766
+#: reference_output.xml:770
 #, no-c-format
 msgid "Availability: 1.5 - support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:768
+#: reference_output.xml:772
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:776
+#: reference_output.xml:780
 #, no-c-format
 msgid ""
 "SELECT ST_AsText('01030000000100000005000000000000000000\n"
@@ -1664,7 +1690,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:783
+#: reference_output.xml:787
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsEWKT\"/>, <xref "
@@ -1672,19 +1698,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:790
+#: reference_output.xml:794
 #, no-c-format
 msgid "ST_AsLatLonText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:791
+#: reference_output.xml:795
 #, no-c-format
 msgid "Return the Degrees, Minutes, Seconds representation of the given point."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:795
+#: reference_output.xml:799
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsLatLonText</function></funcdef> "
@@ -1696,13 +1722,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:811
+#: reference_output.xml:815
 #, no-c-format
 msgid "Returns the Degrees, Minutes, Seconds representation of the point."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:814
+#: reference_output.xml:818
 #, no-c-format
 msgid ""
 "It is assumed the point is in a lat/lon projection. The X (lon) and Y (lat) "
@@ -1711,7 +1737,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:817
+#: reference_output.xml:821
 #, no-c-format
 msgid ""
 "The text parameter is a format string containing the format for the "
@@ -1722,7 +1748,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:822
+#: reference_output.xml:826
 #, no-c-format
 msgid ""
 "\"M\", \"S\", and \"C\" are optional. If \"C\" is omitted, degrees are shown "
@@ -1733,7 +1759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:827
+#: reference_output.xml:831
 #, no-c-format
 msgid ""
 "If the format string is omitted (or zero-length) a default format will be "
@@ -1741,19 +1767,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:833
+#: reference_output.xml:837
 #, no-c-format
 msgid "Availability: 2.0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:839
+#: reference_output.xml:843
 #, no-c-format
 msgid "Default format."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:840
+#: reference_output.xml:844
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)'));\n"
@@ -1763,13 +1789,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:841
+#: reference_output.xml:845
 #, no-c-format
 msgid "Providing a format (same as the default)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:842
+#: reference_output.xml:846
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"C'));\n"
@@ -1779,13 +1805,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:843
+#: reference_output.xml:847
 #, no-c-format
 msgid "Characters other than D, M, S, C and . are just passed through."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:844
+#: reference_output.xml:848
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D degrees, M "
@@ -1797,13 +1823,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:845
+#: reference_output.xml:849
 #, no-c-format
 msgid "Signed degrees instead of cardinal directions."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:846
+#: reference_output.xml:850
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"'));\n"
@@ -1813,13 +1839,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:847
+#: reference_output.xml:851
 #, no-c-format
 msgid "Decimal degrees."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:848
+#: reference_output.xml:852
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees "
@@ -1830,13 +1856,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:849
+#: reference_output.xml:853
 #, no-c-format
 msgid "Excessively large values are normalized."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:850
+#: reference_output.xml:854
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));\n"
@@ -1844,3 +1870,210 @@ msgid ""
 "-------------------------------\n"
 " 72°19'29.928\"S 57°45'56.757\"E"
 msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:862
+#, no-c-format
+msgid "ST_AsTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:863
+#, no-c-format
+msgid "Returns the geometry as TWKB, Tiny WKB"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:868
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsTWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID=null</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>include "
+"sizes=false</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include bounding boxes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:880 reference_output.xml:946
+#, no-c-format
+msgid ""
+"Returns the geometry in TWKB format. TWKB is a new compressed binary format."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:881 reference_output.xml:948
+#, no-c-format
+msgid ""
+"The second parameter is an integer used to define the number of coordinate "
+"decimals in the output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:882 reference_output.xml:949
+#, no-c-format
+msgid ""
+"The third parameter is optional. It is used to give each TWKB-geometry an "
+"unique ID"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:883 reference_output.xml:950
+#, no-c-format
+msgid ""
+"The fourth parameter is optional. If it is set to true, the size of the "
+"geometry is included"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:885
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/TWKB/Specification\">https://github.com/TWKB/Specification</"
+"ulink> , and code for building a client can be found <ulink url=\"https://"
+"github.com/TWKB/twkb.js\">https://github.com/TWKB/twkb.js</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:888
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So PointM and PointZ will give "
+"the same twkb representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:891 reference_output.xml:956 reference_output.xml:993
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:897
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKB('LINESTRING(1 1,5 5)'::geometry,0,1);\n"
+"                 st_astwkb                  \n"
+"--------------------------------------------\n"
+"\\x0142020202020808"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:902 reference_output.xml:967
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_AsEWKB\"/>, <xref "
+"linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:908
+#, no-c-format
+msgid "ST_AsTWKBAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:909
+#, no-c-format
+msgid "Aggregates the geometries and returns as TWKB"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:913
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>include sizes</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include sizes</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>include bounding boxes</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:947
+#, no-c-format
+msgid ""
+"This is the aggregate version of ST_AsTWKB. It aggregates and returns the "
+"geometry in TWKB-format. In the resulting TWKB-geometry each individual ID "
+"of the input geometries is stored."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:952
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/nicklasaven/TWKB\">https://github.com/nicklasaven/TWKB</ulink> , "
+"and code for building a client can be found <ulink url=\"https://github.com/"
+"nicklasaven/twkb_web\">https://github.com/nicklasaven/twkb_web</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:962
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKBAgg(geom,0,id) FROM\n"
+"(SELECT 'LINESTRING(1 1,5 5)'::geometry geom, 1 AS id\n"
+"UNION ALL\n"
+"SELECT 'LINESTRING(6 5, 1 7)'::geometry AS geom, 2 AS id) foo;\n"
+"                               st_astwkbagg                                \n"
+"----------------------------------------------------------------------------\n"
+"\\x015602020202020808040202000904"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:973
+#, no-c-format
+msgid "ST_AsEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:974
+#, no-c-format
+msgid "Returns an Encoded Polyline from a LineString geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:979
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsEncodedPolyline</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:990
+#, no-c-format
+msgid "Returns the geometry as an Encoded Polyline."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:998
+#, no-c-format
+msgid ""
+"ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 "
+"40.7,-126.453 43.252)'));\n"
+"--result--\n"
+"|_p~iF~ps|U_ulLnnqC_mqNvxq`@"
+msgstr ""
diff --git a/doc/po/it_IT/reference_processing.xml.po b/doc/po/it_IT/reference_processing.xml.po
index 06fd42e..d6c4258 100644
--- a/doc/po/it_IT/reference_processing.xml.po
+++ b/doc/po/it_IT/reference_processing.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -64,20 +64,20 @@ msgstr ""
 
 #. Tag: title
 #: reference_processing.xml:47 reference_processing.xml:221
-#: reference_processing.xml:307 reference_processing.xml:373
-#: reference_processing.xml:522 reference_processing.xml:590
-#: reference_processing.xml:638 reference_processing.xml:736
-#: reference_processing.xml:816 reference_processing.xml:874
-#: reference_processing.xml:942 reference_processing.xml:989
-#: reference_processing.xml:1041 reference_processing.xml:1093
-#: reference_processing.xml:1133 reference_processing.xml:1192
-#: reference_processing.xml:1239 reference_processing.xml:1298
-#: reference_processing.xml:1350 reference_processing.xml:1404
-#: reference_processing.xml:1557 reference_processing.xml:1593
-#: reference_processing.xml:1670 reference_processing.xml:1720
-#: reference_processing.xml:1766 reference_processing.xml:1808
-#: reference_processing.xml:1919 reference_processing.xml:2012
-#: reference_processing.xml:2081
+#: reference_processing.xml:300 reference_processing.xml:355
+#: reference_processing.xml:421 reference_processing.xml:570
+#: reference_processing.xml:638 reference_processing.xml:686
+#: reference_processing.xml:785 reference_processing.xml:865
+#: reference_processing.xml:923 reference_processing.xml:992
+#: reference_processing.xml:1039 reference_processing.xml:1091
+#: reference_processing.xml:1156 reference_processing.xml:1198
+#: reference_processing.xml:1257 reference_processing.xml:1304
+#: reference_processing.xml:1363 reference_processing.xml:1415
+#: reference_processing.xml:1469 reference_processing.xml:1622
+#: reference_processing.xml:1658 reference_processing.xml:1735
+#: reference_processing.xml:1785 reference_processing.xml:1830
+#: reference_processing.xml:1872 reference_processing.xml:1984
+#: reference_processing.xml:2077 reference_processing.xml:2146
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -149,7 +149,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:66 reference_processing.xml:1427
+#: reference_processing.xml:66 reference_processing.xml:1492
 #, no-c-format
 msgid ""
 "'quad_segs=#' : number of segments used to approximate a quarter circle "
@@ -205,17 +205,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:84 reference_processing.xml:1444
-#: reference_processing.xml:1732 reference_processing.xml:1775
-#: reference_processing.xml:2032
+#: reference_processing.xml:84 reference_processing.xml:309
+#: reference_processing.xml:1509 reference_processing.xml:1839
+#: reference_processing.xml:2097
 #, no-c-format
 msgid "Performed by the GEOS module."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:85 reference_processing.xml:541
-#: reference_processing.xml:747 reference_processing.xml:1063
-#: reference_processing.xml:1930 reference_processing.xml:2041
+#: reference_processing.xml:85 reference_processing.xml:589
+#: reference_processing.xml:796 reference_processing.xml:1116
+#: reference_processing.xml:1995 reference_processing.xml:2106
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.3"
 msgstr ""
@@ -237,15 +237,15 @@ msgstr ""
 
 #. Tag: title
 #: reference_processing.xml:93 reference_processing.xml:238
-#: reference_processing.xml:343 reference_processing.xml:411
-#: reference_processing.xml:547 reference_processing.xml:604
-#: reference_processing.xml:754 reference_processing.xml:957
-#: reference_processing.xml:1067 reference_processing.xml:1104
-#: reference_processing.xml:1208 reference_processing.xml:1256
-#: reference_processing.xml:1367 reference_processing.xml:1453
-#: reference_processing.xml:1690 reference_processing.xml:1737
-#: reference_processing.xml:1781 reference_processing.xml:1823
-#: reference_processing.xml:1938 reference_processing.xml:2048
+#: reference_processing.xml:317 reference_processing.xml:391
+#: reference_processing.xml:459 reference_processing.xml:595
+#: reference_processing.xml:652 reference_processing.xml:803
+#: reference_processing.xml:1007 reference_processing.xml:1120
+#: reference_processing.xml:1273 reference_processing.xml:1321
+#: reference_processing.xml:1432 reference_processing.xml:1518
+#: reference_processing.xml:1755 reference_processing.xml:1801
+#: reference_processing.xml:1845 reference_processing.xml:1888
+#: reference_processing.xml:2003 reference_processing.xml:2113
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -413,19 +413,20 @@ msgstr ""
 
 #. Tag: title
 #: reference_processing.xml:197 reference_processing.xml:272
-#: reference_processing.xml:350 reference_processing.xml:500
-#: reference_processing.xml:563 reference_processing.xml:611
-#: reference_processing.xml:711 reference_processing.xml:794
-#: reference_processing.xml:853 reference_processing.xml:920
-#: reference_processing.xml:964 reference_processing.xml:1071
-#: reference_processing.xml:1111 reference_processing.xml:1165
-#: reference_processing.xml:1215 reference_processing.xml:1269
-#: reference_processing.xml:1322 reference_processing.xml:1373
-#: reference_processing.xml:1535 reference_processing.xml:1571
-#: reference_processing.xml:1641 reference_processing.xml:1697
-#: reference_processing.xml:1742 reference_processing.xml:1786
-#: reference_processing.xml:1894 reference_processing.xml:1979
-#: reference_processing.xml:2055 reference_processing.xml:2109
+#: reference_processing.xml:321 reference_processing.xml:398
+#: reference_processing.xml:548 reference_processing.xml:611
+#: reference_processing.xml:659 reference_processing.xml:760
+#: reference_processing.xml:843 reference_processing.xml:902
+#: reference_processing.xml:970 reference_processing.xml:1014
+#: reference_processing.xml:1134 reference_processing.xml:1176
+#: reference_processing.xml:1230 reference_processing.xml:1280
+#: reference_processing.xml:1334 reference_processing.xml:1387
+#: reference_processing.xml:1438 reference_processing.xml:1600
+#: reference_processing.xml:1636 reference_processing.xml:1706
+#: reference_processing.xml:1762 reference_processing.xml:1806
+#: reference_processing.xml:1850 reference_processing.xml:1959
+#: reference_processing.xml:2044 reference_processing.xml:2120
+#: reference_processing.xml:2174
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -478,7 +479,7 @@ msgid "This function will assume all inner geometries represent holes"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:231 reference_processing.xml:1310
+#: reference_processing.xml:231 reference_processing.xml:1375
 #, no-c-format
 msgid ""
 "Input linework must be correctly noded for this function to work properly"
@@ -546,20 +547,77 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:284
+#: reference_processing.xml:285
+#, no-c-format
+msgid "ST_ClipByBox2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:286
+#, no-c-format
+msgid "Returns the portion of a geometry falling within a rectangle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:291
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClipByBox2D</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>box2d</type> <parameter>box</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:302
+#, no-c-format
+msgid ""
+"Clips a geometry by a 2D box in a fast but possibly dirty way. The output "
+"geometry is not guaranteed to be valid (self-intersections for a polygon may "
+"be introduced). Topologically invalid input geometries do not result in "
+"exceptions being thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:310
+#, no-c-format
+msgid "Requires GEOS 3.5.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:312
+#, no-c-format
+msgid "Availability: 2.2.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:318
+#, no-c-format
+msgid ""
+"-- Rely on implicit cast from geometry to box2d for the second parameter\n"
+"SELECT ST_ClipByBox2D(the_geom, ST_MakeEnvelope(0,0,10,10)) FROM mytab;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:322
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeBox2D\"/>, <xref linkend=\"ST_MakeEnvelope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:332
 #, no-c-format
 msgid "ST_Collect"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:285
+#: reference_processing.xml:333
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from a collection of other geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:289
+#: reference_processing.xml:337
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> "
@@ -574,7 +632,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:308
+#: reference_processing.xml:356
 #, no-c-format
 msgid ""
 "Output type can be a MULTI* or a GEOMETRYCOLLECTION. Comes in 2 variants. "
@@ -583,7 +641,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:312
+#: reference_processing.xml:360
 #, no-c-format
 msgid ""
 "Aggregate version: This function returns a GEOMETRYCOLLECTION or a MULTI "
@@ -595,7 +653,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:320
+#: reference_processing.xml:368
 #, no-c-format
 msgid ""
 "Non-Aggregate version: This function returns a geometry being a collection "
@@ -603,7 +661,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:324
+#: reference_processing.xml:372
 #, no-c-format
 msgid ""
 "ST_Collect and ST_Union are often interchangeable. ST_Collect is in general "
@@ -618,7 +676,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:335
+#: reference_processing.xml:383
 #, no-c-format
 msgid ""
 "Availability: 1.4.0 - ST_Collect(geomarray) was introduced. ST_Collect was "
@@ -626,20 +684,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:336 reference_processing.xml:543
-#: reference_processing.xml:598 reference_processing.xml:650
-#: reference_processing.xml:840 reference_processing.xml:894
-#: reference_processing.xml:952 reference_processing.xml:992
-#: reference_processing.xml:1098 reference_processing.xml:1160
-#: reference_processing.xml:1203 reference_processing.xml:1357
-#: reference_processing.xml:1567 reference_processing.xml:1682
-#: reference_processing.xml:2101
+#: reference_processing.xml:384 reference_processing.xml:591
+#: reference_processing.xml:646 reference_processing.xml:698
+#: reference_processing.xml:889 reference_processing.xml:944
+#: reference_processing.xml:1002 reference_processing.xml:1042
+#: reference_processing.xml:1161 reference_processing.xml:1225
+#: reference_processing.xml:1268 reference_processing.xml:1422
+#: reference_processing.xml:1632 reference_processing.xml:1747
+#: reference_processing.xml:2166
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:337
+#: reference_processing.xml:385
 #, no-c-format
 msgid ""
 "&curve_support; This method supports Circular Strings and Curves, but will "
@@ -648,7 +706,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:344
+#: reference_processing.xml:392
 #, no-c-format
 msgid ""
 "Aggregate example (<ulink url=\"http://postgis.refractions.net/pipermail/"
@@ -657,7 +715,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:345
+#: reference_processing.xml:393
 #, no-c-format
 msgid ""
 "SELECT stusps,\n"
@@ -669,13 +727,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:346 reference_processing.xml:2051
+#: reference_processing.xml:394 reference_processing.xml:2116
 #, no-c-format
 msgid "Non-Aggregate example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:347
+#: reference_processing.xml:395
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
@@ -724,19 +782,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:351
+#: reference_processing.xml:399
 #, no-c-format
 msgid ", <xref linkend=\"ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:356
+#: reference_processing.xml:404
 #, no-c-format
 msgid "ST_ConcaveHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:357
+#: reference_processing.xml:405
 #, no-c-format
 msgid ""
 "The concave hull of a geometry represents a possibly concave geometry that "
@@ -745,7 +803,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:363
+#: reference_processing.xml:411
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ConcaveHull</function></funcdef> "
@@ -756,7 +814,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:374
+#: reference_processing.xml:422
 #, no-c-format
 msgid ""
 "The concave hull of a geometry represents a possibly concave geometry that "
@@ -765,7 +823,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:378
+#: reference_processing.xml:426
 #, no-c-format
 msgid ""
 "The target_percent is the target percent of area of convex hull the PostGIS "
@@ -779,17 +837,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:383
+#: reference_processing.xml:431
 #, no-c-format
 msgid ""
 "It is usually used with MULTI and Geometry Collections. Although it is not "
 "an aggregate - you can use it in conjunction with ST_Collect or ST_Union to "
-"get the concave hull of a set of points/linestring/polygons ST_ConcaveHull"
-"(ST_Collect(somepointfield), 0.80)."
+"get the concave hull of a set of points/linestring/polygons "
+"ST_ConcaveHull(ST_Collect(somepointfield), 0.80)."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:388
+#: reference_processing.xml:436
 #, no-c-format
 msgid ""
 "It is much slower to compute than convex hull but encloses the geometry "
@@ -797,15 +855,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:391 reference_processing.xml:539
-#: reference_processing.xml:743 reference_processing.xml:1059
-#: reference_processing.xml:1926
+#: reference_processing.xml:439 reference_processing.xml:587
+#: reference_processing.xml:792 reference_processing.xml:1111
+#: reference_processing.xml:1991
 #, no-c-format
 msgid "Performed by the GEOS module"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:392
+#: reference_processing.xml:440
 #, no-c-format
 msgid ""
 "Note - If you are using with points, linestrings, or geometry collections "
@@ -814,7 +872,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:395
+#: reference_processing.xml:443
 #, no-c-format
 msgid ""
 "Note - The smaller you make the target percent, the longer it takes to "
@@ -831,7 +889,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:400
+#: reference_processing.xml:448
 #, no-c-format
 msgid ""
 "More real world examples and brief explanation of the technique are shown "
@@ -840,7 +898,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:403
+#: reference_processing.xml:451
 #, no-c-format
 msgid ""
 "Also check out Simon Greener's article on demonstrating ConcaveHull "
@@ -853,14 +911,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:407 reference_processing.xml:994
-#: reference_processing.xml:1565 reference_processing.xml:1819
+#: reference_processing.xml:455 reference_processing.xml:1044
+#: reference_processing.xml:1630 reference_processing.xml:1883
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:412
+#: reference_processing.xml:460
 #, no-c-format
 msgid ""
 "--Get estimate of infected area based on point observations\n"
@@ -871,13 +929,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:422
+#: reference_processing.xml:470
 #, no-c-format
 msgid "ST_ConcaveHull of 2 polygons encased in target 100% shrink concave hull"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:425
+#: reference_processing.xml:473
 #, no-c-format
 msgid ""
 "-- geometries overlaid with concavehull \n"
@@ -893,14 +951,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:432
+#: reference_processing.xml:480
 #, no-c-format
 msgid ""
 "-- geometries overlaid with concavehull at target 90% of convex hull area"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:436
+#: reference_processing.xml:484
 #, no-c-format
 msgid ""
 "-- geometries overlaid with concavehull at target 90% shrink\n"
@@ -914,13 +972,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:445
+#: reference_processing.xml:493
 #, no-c-format
 msgid "L Shape points overlaid with convex hull"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:448
+#: reference_processing.xml:496
 #, no-c-format
 msgid ""
 "-- this produces a table of 42 points that form an L shape\n"
@@ -937,13 +995,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:455
+#: reference_processing.xml:503
 #, no-c-format
 msgid "ST_ConcaveHull of L points at target 99% of convex hull"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:458
+#: reference_processing.xml:506
 #, no-c-format
 msgid ""
 "SELECT ST_ConcaveHull(ST_Collect(geom), 0.99)\n"
@@ -951,13 +1009,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:467
+#: reference_processing.xml:515
 #, no-c-format
 msgid "Concave Hull of L points at target 80% convex hull area"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:470
+#: reference_processing.xml:518
 #, no-c-format
 msgid ""
 "-- Concave Hull L shape points\n"
@@ -967,13 +1025,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:479
+#: reference_processing.xml:527
 #, no-c-format
 msgid "multilinestring overlaid with Convex hull"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:487
+#: reference_processing.xml:535
 #, no-c-format
 msgid ""
 "multilinestring with overlaid with Concave hull of linestrings at 99% target "
@@ -981,7 +1039,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:491
+#: reference_processing.xml:539
 #, no-c-format
 msgid ""
 "SELECT ST_ConcaveHull(ST_GeomFromText('MULTILINESTRING((106 164,30 112,74 "
@@ -996,7 +1054,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:501
+#: reference_processing.xml:549
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend="
@@ -1004,13 +1062,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:507
+#: reference_processing.xml:555
 #, no-c-format
 msgid "ST_ConvexHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:508
+#: reference_processing.xml:556
 #, no-c-format
 msgid ""
 "<refpurpose>The convex hull of a geometry represents the minimum convex "
@@ -1018,7 +1076,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:514
+#: reference_processing.xml:562
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
@@ -1026,7 +1084,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:523
+#: reference_processing.xml:571
 #, no-c-format
 msgid ""
 "<para>The convex hull of a geometry represents the minimum convex geometry "
@@ -1034,7 +1092,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:526
+#: reference_processing.xml:574
 #, no-c-format
 msgid ""
 "One can think of the convex hull as the geometry you get by wrapping an "
@@ -1043,7 +1101,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:530
+#: reference_processing.xml:578
 #, no-c-format
 msgid ""
 "It is usually used with MULTI and Geometry Collections. Although it is not "
@@ -1052,7 +1110,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:535
+#: reference_processing.xml:583
 #, no-c-format
 msgid ""
 "It is often used to determine an affected area based on a set of point "
@@ -1060,13 +1118,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:542
+#: reference_processing.xml:590
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.16"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:548
+#: reference_processing.xml:596
 #, no-c-format
 msgid ""
 "--Get estimate of infected area based on point observations\n"
@@ -1077,7 +1135,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:556
+#: reference_processing.xml:604
 #, no-c-format
 msgid ""
 "Convex Hull of a MultiLinestring and a MultiPoint seen together with the "
@@ -1085,7 +1143,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:559
+#: reference_processing.xml:607
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_ConvexHull(\n"
@@ -1100,7 +1158,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:564
+#: reference_processing.xml:612
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ConcaveHull\"/>, <xref linkend="
@@ -1108,19 +1166,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:570
+#: reference_processing.xml:618
 #, no-c-format
 msgid "ST_CurveToLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:572
+#: reference_processing.xml:620
 #, no-c-format
 msgid "Converts a CIRCULARSTRING/CURVEDPOLYGON to a LINESTRING/POLYGON"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:576
+#: reference_processing.xml:624
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_CurveToLine</function></"
@@ -1133,7 +1191,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:592
+#: reference_processing.xml:640
 #, no-c-format
 msgid ""
 "Converst a CIRCULAR STRING to regular LINESTRING or CURVEPOLYGON to POLYGON. "
@@ -1142,7 +1200,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:593
+#: reference_processing.xml:641
 #, no-c-format
 msgid ""
 "Converts a given geometry to a linear geometry. Each curved geometry or "
@@ -1151,33 +1209,33 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:595 reference_processing.xml:1097
+#: reference_processing.xml:643 reference_processing.xml:1160
 #, no-c-format
 msgid "Availability: 1.2.2?"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:596
+#: reference_processing.xml:644
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:597
+#: reference_processing.xml:645
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.7"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:599 reference_processing.xml:837
-#: reference_processing.xml:891 reference_processing.xml:991
-#: reference_processing.xml:1099
+#: reference_processing.xml:647 reference_processing.xml:886
+#: reference_processing.xml:941 reference_processing.xml:1041
+#: reference_processing.xml:1162
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:606
+#: reference_processing.xml:654
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
@@ -1284,19 +1342,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:619
+#: reference_processing.xml:667
 #, no-c-format
 msgid "ST_DelaunayTriangles"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:621
+#: reference_processing.xml:669
 #, no-c-format
 msgid "Return a Delaunay triangulation around the given input points."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:628
+#: reference_processing.xml:676
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_DelaunayTriangles</function></funcdef> "
@@ -1306,35 +1364,44 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:640
+#: reference_processing.xml:688
 #, no-c-format
 msgid ""
 "Return a <ulink url=\"http://en.wikipedia.org/wiki/Delaunay_triangulation"
 "\">Delaunay triangulation</ulink> around the vertices of the input geometry. "
 "Output is a COLLECTION of polygons (for flags=0) or a MULTILINESTRING (for "
-"flags=1). The tolerance, if any, is used to snap input vertices togheter."
+"flags=1) or TIN (for flags=2). The tolerance, if any, is used to snap input "
+"vertices togheter."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:649
+#: reference_processing.xml:697
 #, no-c-format
 msgid "Availability: 2.1.0 - requires GEOS >= 3.4.0."
 msgstr ""
 
+#. Tag: para
+#: reference_processing.xml:699 reference_processing.xml:888
+#: reference_processing.xml:943 reference_processing.xml:1046
+#: reference_processing.xml:1750
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
 #. Tag: title
-#: reference_processing.xml:654
+#: reference_processing.xml:703
 #, no-c-format
 msgid "2D Examples"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:663
+#: reference_processing.xml:712
 #, no-c-format
 msgid "Original polygons"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:666
+#: reference_processing.xml:715
 #, no-c-format
 msgid ""
 "-- our original geometry --\n"
@@ -1345,7 +1412,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:674
+#: reference_processing.xml:723
 #, no-c-format
 msgid ""
 "ST_DelaunayTriangles of 2 polygons: delaunay triangle polygons each triangle "
@@ -1353,7 +1420,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:677
+#: reference_processing.xml:726
 #, no-c-format
 msgid ""
 "-- geometries overlaid multilinestring triangles\n"
@@ -1367,13 +1434,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:684
+#: reference_processing.xml:733
 #, no-c-format
 msgid "-- delaunay triangles as multilinestring"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:687
+#: reference_processing.xml:736
 #, no-c-format
 msgid ""
 "SELECT \n"
@@ -1386,13 +1453,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:695
+#: reference_processing.xml:744
 #, no-c-format
 msgid "-- delaunay triangles of 45 points as 55 triangle polygons"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:698
+#: reference_processing.xml:747
 #, no-c-format
 msgid ""
 "-- this produces a table of 42 points that form an L shape\n"
@@ -1420,13 +1487,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:707
+#: reference_processing.xml:756
 #, no-c-format
 msgid "3D Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:708
+#: reference_processing.xml:757
 #, no-c-format
 msgid ""
 "-- 3D multipoint --\n"
@@ -1440,19 +1507,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:712 reference_processing.xml:1323
+#: reference_processing.xml:761 reference_processing.xml:1388
 #, no-c-format
 msgid ", <xref linkend=\"ST_Dump\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:719
+#: reference_processing.xml:768
 #, no-c-format
 msgid "ST_Difference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:721
+#: reference_processing.xml:770
 #, no-c-format
 msgid ""
 "Returns a geometry that represents that part of geometry A that does not "
@@ -1460,7 +1527,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:727
+#: reference_processing.xml:776
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Difference</function></funcdef> "
@@ -1469,7 +1536,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:738
+#: reference_processing.xml:787
 #, no-c-format
 msgid ""
 "Returns a geometry that represents that part of geometry A that does not "
@@ -1479,25 +1546,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:741
+#: reference_processing.xml:790
 #, no-c-format
 msgid "Note - order matters. B - A will always return a portion of B"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:745 reference_processing.xml:1928
+#: reference_processing.xml:794 reference_processing.xml:1993
 #, no-c-format
 msgid "Do not call with a GeometryCollection as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:748
+#: reference_processing.xml:797
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.20"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:749 reference_processing.xml:1932
+#: reference_processing.xml:798 reference_processing.xml:1997
 #, no-c-format
 msgid ""
 "&Z_support; However it seems to only consider x y when doing the difference "
@@ -1505,19 +1572,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:766
+#: reference_processing.xml:815
 #, no-c-format
 msgid "The original linestrings shown together."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:778
+#: reference_processing.xml:827
 #, no-c-format
 msgid "The difference of the two linestrings"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:787
+#: reference_processing.xml:836
 #, no-c-format
 msgid ""
 "--Safe for 2d. This is same geometries as what is shown for "
@@ -1535,7 +1602,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:789
+#: reference_processing.xml:838
 #, no-c-format
 msgid ""
 "--When used in 3d doesn't quite do the right thing\n"
@@ -1548,20 +1615,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:802
+#: reference_processing.xml:851
 #, no-c-format
 msgid "ST_Dump"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:803
+#: reference_processing.xml:852
 #, no-c-format
 msgid ""
 "Returns a set of geometry_dump (geom,path) rows, that make up a geometry g1."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:808
+#: reference_processing.xml:857
 #, no-c-format
 msgid ""
 "<funcdef>geometry_dump[] <function>ST_Dump</function></funcdef> "
@@ -1569,7 +1636,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:817
+#: reference_processing.xml:866
 #, no-c-format
 msgid ""
 "This is a set-returning function (SRF). It returns a set of geometry_dump "
@@ -1582,7 +1649,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:826
+#: reference_processing.xml:875
 #, no-c-format
 msgid ""
 "ST_Dump is useful for expanding geometries. It is the reverse of a GROUP BY "
@@ -1591,7 +1658,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:830 reference_processing.xml:889
+#: reference_processing.xml:879 reference_processing.xml:939
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -1599,13 +1666,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:831
+#: reference_processing.xml:880
 #, no-c-format
 msgid "Availability: PostGIS 1.0.0RC1. Requires PostgreSQL 7.3 or higher."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:833
+#: reference_processing.xml:882
 #, no-c-format
 msgid ""
 "Prior to 1.3.4, this function crashes if used with geometries that contain "
@@ -1613,28 +1680,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:838 reference_processing.xml:892
-#: reference_processing.xml:995 reference_processing.xml:1566
-#: reference_processing.xml:1684
+#: reference_processing.xml:887 reference_processing.xml:942
+#: reference_processing.xml:1045 reference_processing.xml:1631
+#: reference_processing.xml:1749
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
-#. Tag: para
-#: reference_processing.xml:839 reference_processing.xml:893
-#: reference_processing.xml:996 reference_processing.xml:1685
-#, no-c-format
-msgid "&T_support;"
-msgstr ""
-
 #. Tag: title
-#: reference_processing.xml:844
+#: reference_processing.xml:893
 #, no-c-format
 msgid "Standard Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:845
+#: reference_processing.xml:894
 #, no-c-format
 msgid ""
 "SELECT sometable.field1, sometable.field1,\n"
@@ -1656,13 +1716,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:847 reference_processing.xml:914
+#: reference_processing.xml:896 reference_processing.xml:964
 #, no-c-format
 msgid "Polyhedral Surfaces, TIN and Triangle Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:848
+#: reference_processing.xml:897
 #, no-c-format
 msgid ""
 "-- Polyhedral surface example\n"
@@ -1687,7 +1747,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:850
+#: reference_processing.xml:899
 #, no-c-format
 msgid ""
 "-- TIN --                \n"
@@ -1715,7 +1775,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:854
+#: reference_processing.xml:903
 #, no-c-format
 msgid ""
 ", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend="
@@ -1724,13 +1784,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:860
+#: reference_processing.xml:909
 #, no-c-format
 msgid "ST_DumpPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:861
+#: reference_processing.xml:910
 #, no-c-format
 msgid ""
 "Returns a set of geometry_dump (geom,path) rows of all points that make up a "
@@ -1738,7 +1798,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:866
+#: reference_processing.xml:915
 #, no-c-format
 msgid ""
 "<funcdef>geometry_dump[]<function>ST_DumpPoints</function></funcdef> "
@@ -1746,7 +1806,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:875
+#: reference_processing.xml:924
 #, no-c-format
 msgid ""
 "This set-returning function (SRF) returns a set of <varname>geometry_dump</"
@@ -1755,7 +1815,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:878
+#: reference_processing.xml:927
 #, no-c-format
 msgid ""
 "The <parameter>geom</parameter> component of <varname>geometry_dump</"
@@ -1764,7 +1824,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:881
+#: reference_processing.xml:930
 #, no-c-format
 msgid ""
 "The <parameter>path</parameter> component of <varname>geometry_dump</"
@@ -1780,19 +1840,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:890
+#: reference_processing.xml:938
+#, no-c-format
+msgid "Enhanced: 2.1.0 Faster speed. Reimplemented as native-C."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:940
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:897
+#: reference_processing.xml:947
 #, no-c-format
 msgid "Classic Explode a Table of LineStrings into nodes"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:898
+#: reference_processing.xml:948
 #, no-c-format
 msgid ""
 "SELECT edge_id, (dp).path[1] As index, ST_AsText((dp).geom) As wktnode\n"
@@ -1815,13 +1881,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:901
+#: reference_processing.xml:951
 #, no-c-format
 msgid "Standard Geometry Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:911
+#: reference_processing.xml:961
 #, no-c-format
 msgid ""
 "SELECT path, ST_AsText(geom) \n"
@@ -1879,7 +1945,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:915
+#: reference_processing.xml:965
 #, no-c-format
 msgid ""
 "-- Polyhedral surface cube --                \n"
@@ -1931,7 +1997,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:916
+#: reference_processing.xml:966
 #, no-c-format
 msgid ""
 "-- Triangle --                \n"
@@ -1955,7 +2021,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:917
+#: reference_processing.xml:967
 #, no-c-format
 msgid ""
 "-- TIN --                \n"
@@ -1990,7 +2056,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:921
+#: reference_processing.xml:971
 #, no-c-format
 msgid ""
 ", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
@@ -1998,13 +2064,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:926
+#: reference_processing.xml:976
 #, no-c-format
 msgid "ST_DumpRings"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:928
+#: reference_processing.xml:978
 #, no-c-format
 msgid ""
 "Returns a set of <varname>geometry_dump</varname> rows, representing the "
@@ -2012,7 +2078,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:934
+#: reference_processing.xml:984
 #, no-c-format
 msgid ""
 "<funcdef>geometry_dump[] <function>ST_DumpRings</function></funcdef> "
@@ -2020,7 +2086,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:944
+#: reference_processing.xml:994
 #, no-c-format
 msgid ""
 "This is a set-returning function (SRF). It returns a set of "
@@ -2032,20 +2098,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:950
+#: reference_processing.xml:1000
 #, no-c-format
 msgid "Availability: PostGIS 1.1.3. Requires PostgreSQL 7.3 or higher."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:951
+#: reference_processing.xml:1001
 #, no-c-format
 msgid ""
 "This only works for POLYGON geometries. It will not work for MULTIPOLYGONS"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:959
+#: reference_processing.xml:1009
 #, no-c-format
 msgid ""
 "SELECT sometable.field1, sometable.field1,\n"
@@ -2079,7 +2145,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:966
+#: reference_processing.xml:1016
 #, no-c-format
 msgid ""
 ", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
@@ -2088,13 +2154,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:972
+#: reference_processing.xml:1022
 #, no-c-format
 msgid "ST_FlipCoordinates"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:973
+#: reference_processing.xml:1023
 #, no-c-format
 msgid ""
 "Returns a version of the given geometry with X and Y axis flipped. Useful "
@@ -2102,7 +2168,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:981
+#: reference_processing.xml:1031
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_FlipCoordinates</function></funcdef> "
@@ -2110,25 +2176,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:990
+#: reference_processing.xml:1040
 #, no-c-format
 msgid "Returns a version of the given geometry with X and Y axis flipped."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:993
+#: reference_processing.xml:1043
 #, no-c-format
 msgid "&M_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:1000
+#: reference_processing.xml:1050
 #, no-c-format
 msgid "Example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1001
+#: reference_processing.xml:1051
 #, no-c-format
 msgid ""
 "<![CDATA[\n"
@@ -2140,13 +2206,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1008
+#: reference_processing.xml:1058
 #, no-c-format
 msgid "ST_Intersection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1010
+#: reference_processing.xml:1060
 #, no-c-format
 msgid ""
 "(T) Returns a geometry that represents the shared portion of geomA and "
@@ -2155,7 +2221,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:1015
+#: reference_processing.xml:1065
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Intersection</function></"
@@ -2168,7 +2234,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1042
+#: reference_processing.xml:1092
 #, no-c-format
 msgid ""
 "Returns a geometry that represents the point set intersection of the "
@@ -2176,7 +2242,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1045
+#: reference_processing.xml:1095
 #, no-c-format
 msgid ""
 "In other words - that portion of geometry A and geometry B that is shared "
@@ -2184,7 +2250,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1048
+#: reference_processing.xml:1098
 #, no-c-format
 msgid ""
 "If the geometries do not share any space (are disjoint), then an empty "
@@ -2192,7 +2258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1050
+#: reference_processing.xml:1100
 #, no-c-format
 msgid ""
 "ST_Intersection in conjunction with ST_Intersects is very useful for "
@@ -2202,7 +2268,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1053
+#: reference_processing.xml:1103
 #, no-c-format
 msgid ""
 "Geography: For geography this is really a thin wrapper around the geometry "
@@ -2215,25 +2281,44 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1056
+#: reference_processing.xml:1106
 #, no-c-format
 msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1061
+#: reference_processing.xml:1109
+#, no-c-format
+msgid ""
+"If working with 3D geometries, you may want to use SFGCAL based <xref "
+"linkend=\"ST_3DIntersection\"/> which does a proper 3D intersection for 3D "
+"geometries. Although this function works with Z-coordinate, it does an "
+"averaging of Z-Coordinate values when <code>postgis.backend=geos</code>. "
+"<code>postgis.backend=sfcgal</code>, it will return a 2D geometry regardless "
+"ignoring the Z-Coordinate. Refer to <xref linkend=\"postgis_backend\"/> for "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1112
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1114
 #, no-c-format
 msgid "Availability: 1.5 support for geography data type was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1064
+#: reference_processing.xml:1117
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.18"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1068
+#: reference_processing.xml:1121
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, "
@@ -2284,29 +2369,87 @@ msgid ""
 "poly.the_geom),0.0));"
 msgstr ""
 
+#. Tag: title
+#: reference_processing.xml:1125
+#, no-c-format
+msgid "Examples: 2.5Dish"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1126
+#, no-c-format
+msgid ""
+"Geos is the default backend if not set. Note this is not a true "
+"intersection, compare to the same example using <xref linkend="
+"\"ST_3DIntersection\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1127
+#, no-c-format
+msgid ""
+"set postgis.backend=geos; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"               st_astext\n"
+"---------------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8,0 0 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1129
+#, no-c-format
+msgid ""
+"If your PostGIS is compiled with sfcgal support, have option of using "
+"sfcgal, but note if basically cases down both geometries to 2D before doing "
+"intersection and returns the ST_Force2D equivalent result which is a 2D "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1131
+#, no-c-format
+msgid ""
+"set postgis.backend=sfcgal; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"                     wkt\n"
+"----------------------------------------------\n"
+" MULTILINESTRING((0.5 0.5,0 0),(1 1,0.5 0.5))"
+msgstr ""
+
 #. Tag: para
-#: reference_processing.xml:1072
+#: reference_processing.xml:1135
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
-"linkend=\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref "
-"linkend=\"ST_Multi\"/>"
+", <xref linkend=\"ST_Difference\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Dump\"/>, <xref linkend=\"ST_Force2D\"/>, <xref linkend="
+"\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Multi\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1078
+#: reference_processing.xml:1141
 #, no-c-format
 msgid "ST_LineToCurve"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1080
+#: reference_processing.xml:1143
 #, no-c-format
 msgid "Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1085
+#: reference_processing.xml:1148
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LineToCurve</function></funcdef> "
@@ -2315,15 +2458,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1095
+#: reference_processing.xml:1158
 #, no-c-format
 msgid ""
 "Converts plain LINESTRING/POLYGONS to CIRCULAR STRINGs and Curved Polygons. "
 "Note much fewer points are needed to describe the curved equivalent."
 msgstr ""
 
+#. Tag: title
+#: reference_processing.xml:1167
+#, no-c-format
+msgid "Examples: 2D"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_processing.xml:1106
+#: reference_processing.xml:1169
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_LineToCurve(foo.the_geom)) As curvedastext,ST_AsText(foo."
@@ -2334,8 +2483,9 @@ msgid ""
 "curvedatext                                                            "
 "non_curvedastext\n"
 "--------------------------------------------------------------------|-----------------------------------------------------------------\n"
-"CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359, | POLYGON"
-"((4 3,3.94235584120969 2.41472903395162,3.77163859753386 1.85194970290473,\n"
+"CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359, | "
+"POLYGON((4 3,3.94235584120969 2.41472903395162,3.77163859753386 "
+"1.85194970290473,\n"
 "1 0,-1.12132034355965 5.12132034355963,4 3))                        |  "
 "3.49440883690764 1.33328930094119,3.12132034355964 0.878679656440359,\n"
 "                                                                    |  "
@@ -2360,19 +2510,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1119
+#: reference_processing.xml:1184
 #, no-c-format
 msgid "ST_MakeValid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1120
+#: reference_processing.xml:1185
 #, no-c-format
-msgid "Attempts to make an invalid geometry valid w/out loosing vertices."
+msgid "Attempts to make an invalid geometry valid without losing vertices."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1125
+#: reference_processing.xml:1190
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakeValid</function></funcdef> "
@@ -2380,16 +2530,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1134
+#: reference_processing.xml:1199
 #, no-c-format
 msgid ""
 "The function attempts to create a valid representation of a given invalid "
-"geometry without loosing any of the input vertices. Already-valid geometries "
-"are returned w/out further intervention."
+"geometry without losing any of the input vertices. Already-valid geometries "
+"are returned without further intervention."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1140
+#: reference_processing.xml:1205
 #, no-c-format
 msgid ""
 "Supported inputs are: POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
@@ -2397,7 +2547,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1146
+#: reference_processing.xml:1211
 #, no-c-format
 msgid ""
 "In case of full or partial dimensional collapses, the output geometry may be "
@@ -2406,38 +2556,38 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1152
+#: reference_processing.xml:1217
 #, no-c-format
 msgid ""
 "Single polygons may become multi-geometries in case of self-intersections."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1156
+#: reference_processing.xml:1221
 #, no-c-format
 msgid "Availability: 2.0.0, requires GEOS-3.3.0"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1157
+#: reference_processing.xml:1222
 #, no-c-format
-msgid "Enahnced: 2.0.1, speed improvements requires GEOS-3.3.4"
+msgid "Enhanced: 2.0.1, speed improvements requires GEOS-3.3.4"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1158
+#: reference_processing.xml:1223
 #, no-c-format
 msgid "Enhanced: 2.1.0 added support for GEOMETRYCOLLECTION and MULTIPOINT."
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1175
+#: reference_processing.xml:1240
 #, no-c-format
 msgid "ST_MemUnion"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1177
+#: reference_processing.xml:1242
 #, no-c-format
 msgid ""
 "Same as ST_Union, only memory-friendly (uses less memory and more processor "
@@ -2445,7 +2595,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1183
+#: reference_processing.xml:1248
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MemUnion</function></funcdef> "
@@ -2454,13 +2604,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1194
+#: reference_processing.xml:1259
 #, no-c-format
 msgid "Some useful description here."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1198
+#: reference_processing.xml:1263
 #, no-c-format
 msgid ""
 "Same as ST_Union, only memory-friendly (uses less memory and more processor "
@@ -2470,19 +2620,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1210
+#: reference_processing.xml:1275
 #, no-c-format
 msgid "See ST_Union"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1223
+#: reference_processing.xml:1288
 #, no-c-format
 msgid "ST_MinimumBoundingCircle"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1224
+#: reference_processing.xml:1289
 #, no-c-format
 msgid ""
 "Returns the smallest circle polygon that can fully contain a geometry. "
@@ -2490,7 +2640,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1230
+#: reference_processing.xml:1295
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MinimumBoundingCircle</function></funcdef> "
@@ -2500,13 +2650,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1240
+#: reference_processing.xml:1305
 #, no-c-format
 msgid "Returns the smallest circle polygon that can fully contain a geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1241
+#: reference_processing.xml:1306
 #, no-c-format
 msgid ""
 "The circle is approximated by a polygon with a default of 48 segments per "
@@ -2515,17 +2665,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1243
+#: reference_processing.xml:1308
 #, no-c-format
 msgid ""
 "It is often used with MULTI and Geometry Collections. Although it is not an "
 "aggregate - you can use it in conjunction with ST_Collect to get the minimum "
-"bounding circle of a set of geometries. ST_MinimumBoundingCircle(ST_Collect"
-"(somepointfield))."
+"bounding circle of a set of geometries. "
+"ST_MinimumBoundingCircle(ST_Collect(somepointfield))."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1248
+#: reference_processing.xml:1313
 #, no-c-format
 msgid ""
 "The ratio of the area of a polygon divided by the area of its Minimum "
@@ -2533,13 +2683,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1250
+#: reference_processing.xml:1315
 #, no-c-format
 msgid "Availability: 1.4.0 - requires GEOS"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1257
+#: reference_processing.xml:1322
 #, no-c-format
 msgid ""
 "SELECT d.disease_type,\n"
@@ -2549,7 +2699,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1263
+#: reference_processing.xml:1328
 #, no-c-format
 msgid ""
 "Minimum bounding circle of a point and linestring. Using 8 segs to "
@@ -2557,7 +2707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1266
+#: reference_processing.xml:1331
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_MinimumBoundingCircle(\n"
@@ -2589,19 +2739,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1270
+#: reference_processing.xml:1335
 #, no-c-format
 msgid ", <xref linkend=\"ST_ConvexHull\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1276
+#: reference_processing.xml:1341
 #, no-c-format
 msgid "ST_Polygonize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1278
+#: reference_processing.xml:1343
 #, no-c-format
 msgid ""
 "Aggregate. Creates a GeometryCollection containing possible polygons formed "
@@ -2609,7 +2759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:1284
+#: reference_processing.xml:1349
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Polygonize</function></"
@@ -2620,7 +2770,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1300
+#: reference_processing.xml:1365
 #, no-c-format
 msgid ""
 "Creates a GeometryCollection containing possible polygons formed from the "
@@ -2628,7 +2778,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1305
+#: reference_processing.xml:1370
 #, no-c-format
 msgid ""
 "Geometry Collections are often difficult to deal with with third party "
@@ -2637,19 +2787,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1313
+#: reference_processing.xml:1378
 #, no-c-format
 msgid "Availability: 1.0.0RC1 - requires GEOS >= 2.1.0."
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:1317
+#: reference_processing.xml:1382
 #, no-c-format
 msgid "Examples: Polygonizing single linestrings"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1318
+#: reference_processing.xml:1383
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_Polygonize(the_geom_4269)) As geomtextrep\n"
@@ -2684,19 +2834,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1332
+#: reference_processing.xml:1397
 #, no-c-format
 msgid "ST_Node"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1334
+#: reference_processing.xml:1399
 #, no-c-format
 msgid "Node a set of linestrings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1341
+#: reference_processing.xml:1406
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Node</function></funcdef> "
@@ -2704,7 +2854,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1352
+#: reference_processing.xml:1417
 #, no-c-format
 msgid ""
 "Fully node a set of linestrings using the least possible number of nodes "
@@ -2712,13 +2862,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1359 reference_processing.xml:2103
+#: reference_processing.xml:1424 reference_processing.xml:2168
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1361
+#: reference_processing.xml:1426
 #, no-c-format
 msgid ""
 "Due to a bug in GEOS up to 3.3.1 this function fails to node self-"
@@ -2726,7 +2876,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1368
+#: reference_processing.xml:1433
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(\n"
@@ -2740,13 +2890,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1383
+#: reference_processing.xml:1448
 #, no-c-format
 msgid "ST_OffsetCurve"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1385
+#: reference_processing.xml:1450
 #, no-c-format
 msgid ""
 "Return an offset line at a given distance and side from an input line. "
@@ -2754,7 +2904,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1393
+#: reference_processing.xml:1458
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_OffsetCurve</function></funcdef> "
@@ -2765,7 +2915,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1406
+#: reference_processing.xml:1471
 #, no-c-format
 msgid ""
 "Return an offset line at a given distance and side from an input line. All "
@@ -2774,7 +2924,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1412
+#: reference_processing.xml:1477
 #, no-c-format
 msgid ""
 "For positive distance the offset will be at the left side of the input line "
@@ -2783,14 +2933,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1418
+#: reference_processing.xml:1483
 #, no-c-format
 msgid ""
 "Availability: 2.0 - requires GEOS >= 3.2, improved with GEOS >= 3.3"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1422
+#: reference_processing.xml:1487
 #, no-c-format
 msgid ""
 "The optional third parameter allows specifying a list of blank-separated "
@@ -2798,7 +2948,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1430
+#: reference_processing.xml:1495
 #, no-c-format
 msgid ""
 "'join=round|mitre|bevel' : join style (defaults to \"round\"). 'miter' is "
@@ -2806,7 +2956,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1433
+#: reference_processing.xml:1498
 #, no-c-format
 msgid ""
 "'mitre_limit=#.#' : mitre ratio limit (only affects mitred join style). "
@@ -2814,20 +2964,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1438
+#: reference_processing.xml:1503
 #, no-c-format
 msgid ""
 "Units of distance are measured in units of the spatial reference system."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1442
+#: reference_processing.xml:1507
 #, no-c-format
 msgid "The inputs can only be LINESTRINGS."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1446
+#: reference_processing.xml:1511
 #, no-c-format
 msgid ""
 "This function ignores the third dimension (z) and will always give a 2-d "
@@ -2835,13 +2985,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1454
+#: reference_processing.xml:1519
 #, no-c-format
 msgid "Compute an open buffer around roads"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1455
+#: reference_processing.xml:1520
 #, no-c-format
 msgid ""
 "SELECT ST_Union(\n"
@@ -2852,13 +3002,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1465
+#: reference_processing.xml:1530
 #, no-c-format
 msgid "15, 'quad_segs=4 join=round' original line and its offset 15 units."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1469
+#: reference_processing.xml:1534
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
@@ -2875,13 +3025,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1476
+#: reference_processing.xml:1541
 #, no-c-format
 msgid "-15, 'quad_segs=4 join=round' original line and its offset -15 units"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1480
+#: reference_processing.xml:1545
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_OffsetCurve(geom,\n"
@@ -2896,7 +3046,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1489
+#: reference_processing.xml:1554
 #, no-c-format
 msgid ""
 "double-offset to get more curvy, note the first reverses direction, so -30 + "
@@ -2904,7 +3054,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1492
+#: reference_processing.xml:1557
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_OffsetCurve(ST_OffsetCurve(geom,\n"
@@ -2922,7 +3072,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1499
+#: reference_processing.xml:1564
 #, no-c-format
 msgid ""
 "double-offset to get more curvy,combined with regular offset 15 to get "
@@ -2930,7 +3080,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1502
+#: reference_processing.xml:1567
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Collect(\n"
@@ -2954,13 +3104,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1511
+#: reference_processing.xml:1576
 #, no-c-format
 msgid "15, 'quad_segs=4 join=bevel' shown with original line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1514
+#: reference_processing.xml:1579
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
@@ -2975,13 +3125,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1522
+#: reference_processing.xml:1587
 #, no-c-format
 msgid "15,-15 collected, join=mitre mitre_limit=2.1"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1525
+#: reference_processing.xml:1590
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Collect(\n"
@@ -2999,19 +3149,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1542
+#: reference_processing.xml:1607
 #, no-c-format
 msgid "ST_RemoveRepeatedPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1543
+#: reference_processing.xml:1608
 #, no-c-format
 msgid "Returns a version of the given geometry with duplicated points removed."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1549
+#: reference_processing.xml:1614
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RemoveRepeatedPoints</function></funcdef> "
@@ -3019,7 +3169,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1558
+#: reference_processing.xml:1623
 #, no-c-format
 msgid ""
 "Returns a version of the given geometry with duplicated points removed. Will "
@@ -3030,13 +3180,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1578
+#: reference_processing.xml:1643
 #, no-c-format
 msgid "ST_SharedPaths"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1579
+#: reference_processing.xml:1644
 #, no-c-format
 msgid ""
 "Returns a collection containing paths shared by the two input linestrings/"
@@ -3044,7 +3194,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1584
+#: reference_processing.xml:1649
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SharedPaths</function></funcdef> "
@@ -3053,7 +3203,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1594
+#: reference_processing.xml:1659
 #, no-c-format
 msgid ""
 "Returns a collection containing paths shared by the two input geometries. "
@@ -3063,25 +3213,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1599
+#: reference_processing.xml:1664
 #, no-c-format
 msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:1602
+#: reference_processing.xml:1667
 #, no-c-format
 msgid "Examples: Finding shared paths"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1612
+#: reference_processing.xml:1677
 #, no-c-format
 msgid "A multilinestring and a linestring"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1623
+#: reference_processing.xml:1688
 #, no-c-format
 msgid ""
 "The shared path of multilinestring and linestring overlaid with original "
@@ -3089,7 +3239,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1626
+#: reference_processing.xml:1691
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -3109,7 +3259,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1632
+#: reference_processing.xml:1697
 #, no-c-format
 msgid ""
 "-- same example but linestring orientation flipped\n"
@@ -3128,20 +3278,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1642
+#: reference_processing.xml:1707
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1652
+#: reference_processing.xml:1717
 #, no-c-format
 msgid "ST_Shift_Longitude"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1654
+#: reference_processing.xml:1719
 #, no-c-format
 msgid ""
 "<refpurpose>Reads every point/vertex in every component of every feature in "
@@ -3151,7 +3301,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1662
+#: reference_processing.xml:1727
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Shift_Longitude</function></funcdef> "
@@ -3159,7 +3309,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1672
+#: reference_processing.xml:1737
 #, no-c-format
 msgid ""
 "<para>Reads every point/vertex in every component of every feature in a "
@@ -3169,13 +3319,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1676
+#: reference_processing.xml:1741
 #, no-c-format
 msgid "This is only useful for data in long lat e.g. 4326 (WGS 84 long lat)"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1678
+#: reference_processing.xml:1743
 #, no-c-format
 msgid ""
 "Pre-1.3.4 bug prevented this from working for MULTIPOINT. 1.3.4+ works with "
@@ -3183,13 +3333,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1683
+#: reference_processing.xml:1748
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1692
+#: reference_processing.xml:1757
 #, no-c-format
 msgid ""
 "--3d points\n"
@@ -3211,19 +3361,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1698
+#: reference_processing.xml:1763
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_AsEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1704
+#: reference_processing.xml:1769
 #, no-c-format
 msgid "ST_Simplify"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1705
+#: reference_processing.xml:1770
 #, no-c-format
 msgid ""
 "Returns a \"simplified\" version of the given geometry using the Douglas-"
@@ -3231,7 +3381,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1711
+#: reference_processing.xml:1776
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Simplify</function></funcdef> "
@@ -3240,7 +3390,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1721
+#: reference_processing.xml:1786
 #, no-c-format
 msgid ""
 "Returns a \"simplified\" version of the given geometry using the Douglas-"
@@ -3251,7 +3401,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1728
+#: reference_processing.xml:1793
 #, no-c-format
 msgid ""
 "Note that returned geometry might loose its simplicity (see <xref linkend="
@@ -3259,7 +3409,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1730
+#: reference_processing.xml:1795
 #, no-c-format
 msgid ""
 "Note topology may not be preserved and may result in invalid geometries. Use "
@@ -3267,26 +3417,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1733
+#: reference_processing.xml:1797
 #, no-c-format
 msgid "Availability: 1.2.2"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1738
+#: reference_processing.xml:1802
 #, no-c-format
 msgid "A circle simplified too much becomes a triangle, medium an octagon,"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1739
+#: reference_processing.xml:1803
 #, no-c-format
 msgid ""
-"SELECT ST_Npoints(the_geom) As np_before, ST_NPoints(ST_Simplify"
-"(the_geom,0.1)) As np01_notbadcircle, ST_NPoints(ST_Simplify(the_geom,0.5)) "
-"As np05_notquitecircle,\n"
-"ST_NPoints(ST_Simplify(the_geom,1)) As np1_octagon, ST_NPoints(ST_Simplify"
-"(the_geom,10)) As np10_triangle,\n"
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_Simplify(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_Simplify(the_geom,0.5)) As np05_notquitecircle,\n"
+"ST_NPoints(ST_Simplify(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_Simplify(the_geom,10)) As np10_triangle,\n"
 "(ST_Simplify(the_geom,100) is null) As  np100_geometrygoesaway\n"
 "FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
 "-result\n"
@@ -3299,19 +3449,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1743
+#: reference_processing.xml:1807
 #, no-c-format
-msgid ", <xref linkend=\"ST_SimplifyPreserveTopology\"/>"
+msgid ""
+", <xref linkend=\"ST_SimplifyPreserveTopology\"/>, Topology <xref linkend="
+"\"TP_ST_Simplify\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1749
+#: reference_processing.xml:1813
 #, no-c-format
 msgid "ST_SimplifyPreserveTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1750
+#: reference_processing.xml:1814
 #, no-c-format
 msgid ""
 "Returns a \"simplified\" version of the given geometry using the Douglas-"
@@ -3320,7 +3472,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1757
+#: reference_processing.xml:1821
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SimplifyPreserveTopology</function></funcdef> "
@@ -3329,31 +3481,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1767
+#: reference_processing.xml:1831
 #, no-c-format
 msgid ""
 "Returns a \"simplified\" version of the given geometry using the Douglas-"
 "Peucker algorithm. Will avoid creating derived geometries (polygons in "
-"particular) that are invalid. Will actually do something only with (multi)"
-"lines and (multi)polygons but you can safely call it with any kind of "
+"particular) that are invalid. Will actually do something only with "
+"(multi)lines and (multi)polygons but you can safely call it with any kind of "
 "geometry. Since simplification occurs on a object-by-object basis you can "
 "also feed a GeometryCollection to this function."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1776
+#: reference_processing.xml:1840
 #, no-c-format
 msgid "Requires GEOS 3.0.0+"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1777
+#: reference_processing.xml:1841
 #, no-c-format
 msgid "Availability: 1.3.3"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1782
+#: reference_processing.xml:1846
 #, no-c-format
 msgid ""
 "Same example as Simplify, but we see Preserve Topology prevents "
@@ -3361,12 +3513,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1783
+#: reference_processing.xml:1847
 #, no-c-format
 msgid ""
-"SELECT ST_Npoints(the_geom) As np_before, ST_NPoints"
-"(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, ST_NPoints"
-"(ST_SimplifyPreserveTopology(the_geom,0.5)) As np05_notquitecircle,\n"
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.5)) As "
+"np05_notquitecircle,\n"
 "ST_NPoints(ST_SimplifyPreserveTopology(the_geom,1)) As np1_octagon, "
 "ST_NPoints(ST_SimplifyPreserveTopology(the_geom,10)) As np10_square,\n"
 "ST_NPoints(ST_SimplifyPreserveTopology(the_geom,100)) As  np100_stillsquare\n"
@@ -3382,19 +3535,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1793
+#: reference_processing.xml:1857
 #, no-c-format
 msgid "ST_Split"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1794
+#: reference_processing.xml:1858
 #, no-c-format
 msgid "Returns a collection of geometries resulting by splitting a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1799
+#: reference_processing.xml:1863
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Split</function></funcdef> "
@@ -3403,7 +3556,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1809
+#: reference_processing.xml:1873
 #, no-c-format
 msgid ""
 "The function supports splitting a line by point, a line by line, a polygon "
@@ -3411,7 +3564,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1813
+#: reference_processing.xml:1877
 #, no-c-format
 msgid ""
 "Think of this function as the opposite of ST_Union. Theoretically applying "
@@ -3420,25 +3573,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1824
+#: reference_processing.xml:1884
+#, no-c-format
+msgid ""
+"To improve the robustness of ST_Split it may be convenient to <xref linkend="
+"\"ST_Snap\"/> the input to the blade in advance using a very low tolerance. "
+"Otherwise the internally used coordinate grid may cause tolerance problems, "
+"where coordinates of input and blade do not fall onto each other and the "
+"input is not being split correctly (see <ulink url=\"http://trac.osgeo.org/"
+"postgis/ticket/2192\">#2192</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1889
 #, no-c-format
 msgid "Polygon Cut by Line"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1836 reference_processing.xml:1870
+#: reference_processing.xml:1901 reference_processing.xml:1935
 #, no-c-format
 msgid "Before Split"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1848 reference_processing.xml:1882
+#: reference_processing.xml:1913 reference_processing.xml:1947
 #, no-c-format
 msgid "After split"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1857
+#: reference_processing.xml:1922
 #, no-c-format
 msgid ""
 "-- this creates a geometry collection consisting of the 2 halves of the "
@@ -3468,13 +3633,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1858
+#: reference_processing.xml:1923
 #, no-c-format
 msgid "Multilinestring Cut by point"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1891
+#: reference_processing.xml:1956
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Split(mline, pt)) As wktcut\n"
@@ -3494,7 +3659,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1895
+#: reference_processing.xml:1960
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_BuildArea\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
@@ -3502,13 +3667,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1901
+#: reference_processing.xml:1966
 #, no-c-format
 msgid "ST_SymDifference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1903
+#: reference_processing.xml:1968
 #, no-c-format
 msgid ""
 "Returns a geometry that represents the portions of A and B that do not "
@@ -3517,7 +3682,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1910
+#: reference_processing.xml:1975
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SymDifference</function></funcdef> "
@@ -3526,7 +3691,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1921
+#: reference_processing.xml:1986
 #, no-c-format
 msgid ""
 "Returns a geometry that represents the portions of A and B that do not "
@@ -3536,25 +3701,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1931
+#: reference_processing.xml:1996
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.21"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1951
+#: reference_processing.xml:2016
 #, no-c-format
 msgid "The original linestrings shown together"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1963
+#: reference_processing.xml:2028
 #, no-c-format
 msgid "The symmetric difference of the two linestrings"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1972
+#: reference_processing.xml:2037
 #, no-c-format
 msgid ""
 "--Safe for 2d - symmetric difference of 2 linestrings\n"
@@ -3571,7 +3736,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1974
+#: reference_processing.xml:2039
 #, no-c-format
 msgid ""
 "--When used in 3d doesn't quite do the right thing\n"
@@ -3585,26 +3750,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1981
+#: reference_processing.xml:2046
 #, no-c-format
 msgid ", <xref linkend=\"ST_Intersection\"/>, <xref linkend=\"ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1988
+#: reference_processing.xml:2053
 #, no-c-format
 msgid "ST_Union"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1989
+#: reference_processing.xml:2054
 #, no-c-format
 msgid ""
 "Returns a geometry that represents the point set union of the Geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:1994
+#: reference_processing.xml:2059
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> "
@@ -3619,7 +3784,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2013
+#: reference_processing.xml:2078
 #, no-c-format
 msgid ""
 "Output type can be a MULTI*, single geometry, or Geometry Collection. Comes "
@@ -3630,26 +3795,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2017
+#: reference_processing.xml:2082
 #, no-c-format
 msgid ""
 "Aggregate version: This function returns a MULTI geometry or NON-MULTI "
 "geometry from a set of geometries. The ST_Union() function is an \"aggregate"
 "\" function in the terminology of PostgreSQL. That means that it operates on "
-"rows of data, in the same way the SUM() and AVG() functions do."
+"rows of data, in the same way the SUM() and AVG() functions do and like most "
+"aggregates, it also ignores NULL geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2023
+#: reference_processing.xml:2088
 #, no-c-format
 msgid ""
 "Non-Aggregate version: This function returns a geometry being a union of two "
 "input geometries. Output type can be a MULTI*, NON-MULTI or "
-"GEOMETRYCOLLECTION."
+"GEOMETRYCOLLECTION. If any are NULL, then NULL is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2027
+#: reference_processing.xml:2092
 #, no-c-format
 msgid ""
 "ST_Collect and ST_Union are often interchangeable. ST_Union is in general "
@@ -3659,7 +3825,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2033
+#: reference_processing.xml:2098
 #, no-c-format
 msgid ""
 "NOTE: this function was formerly called GeomUnion(), which was renamed from "
@@ -3667,7 +3833,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2036
+#: reference_processing.xml:2101
 #, no-c-format
 msgid ""
 "Availability: 1.4.0 - ST_Union was enhanced. ST_Union(geomarray) was "
@@ -3679,13 +3845,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2042
+#: reference_processing.xml:2107
 #, no-c-format
 msgid "Aggregate version is not explicitly defined in OGC SPEC."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2043
+#: reference_processing.xml:2108
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3: 5.1.19 the z-index (elevation) when polygons are "
@@ -3693,13 +3859,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2049
+#: reference_processing.xml:2114
 #, no-c-format
 msgid "Aggregate example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:2050
+#: reference_processing.xml:2115
 #, no-c-format
 msgid ""
 "SELECT stusps,\n"
@@ -3709,7 +3875,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:2052
+#: reference_processing.xml:2117
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
@@ -3772,19 +3938,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:2065
+#: reference_processing.xml:2130
 #, no-c-format
 msgid "ST_UnaryUnion"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:2067
+#: reference_processing.xml:2132
 #, no-c-format
 msgid "Like ST_Union, but working at the geometry component level."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:2072
+#: reference_processing.xml:2137
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_UnaryUnion</function></funcdef> "
@@ -3792,7 +3958,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2083
+#: reference_processing.xml:2148
 #, no-c-format
 msgid ""
 "Unlike ST_Union, ST_UnaryUnion does dissolve boundaries between components "
@@ -3803,7 +3969,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2093
+#: reference_processing.xml:2158
 #, no-c-format
 msgid ""
 "You may use this function to node a set of linestrings. You may mix "
@@ -3811,3 +3977,11 @@ msgid ""
 "want to dissolve to be nice on both memory size and CPU time, finding the "
 "balance between ST_Union and ST_MemUnion."
 msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2176
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MemUnion\"/>, <xref linkend=\"ST_Collect\"/>, <xref "
+"linkend=\"ST_Node\"/>"
+msgstr ""
diff --git a/doc/po/it_IT/reference_raster.xml.po b/doc/po/it_IT/reference_raster.xml.po
index df568ea..cf3ea9b 100644
--- a/doc/po/it_IT/reference_raster.xml.po
+++ b/doc/po/it_IT/reference_raster.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -126,62 +126,75 @@ msgstr ""
 #. Tag: title
 #: reference_raster.xml:30 reference_raster.xml:49 reference_raster.xml:121
 #: reference_raster.xml:171 reference_raster.xml:211 reference_raster.xml:257
-#: reference_raster.xml:439 reference_raster.xml:613 reference_raster.xml:652
-#: reference_raster.xml:689 reference_raster.xml:730 reference_raster.xml:820
-#: reference_raster.xml:1022 reference_raster.xml:1109
-#: reference_raster.xml:1203 reference_raster.xml:1248
-#: reference_raster.xml:1287 reference_raster.xml:1321
-#: reference_raster.xml:1356 reference_raster.xml:1390
-#: reference_raster.xml:1435 reference_raster.xml:1489
-#: reference_raster.xml:1526 reference_raster.xml:1566
-#: reference_raster.xml:1621 reference_raster.xml:1673
-#: reference_raster.xml:1717 reference_raster.xml:1752
-#: reference_raster.xml:1788 reference_raster.xml:1824
-#: reference_raster.xml:1859 reference_raster.xml:1893
-#: reference_raster.xml:1927 reference_raster.xml:1971
-#: reference_raster.xml:2033 reference_raster.xml:2087
-#: reference_raster.xml:2122 reference_raster.xml:2162
-#: reference_raster.xml:2209 reference_raster.xml:2251
-#: reference_raster.xml:2305 reference_raster.xml:2340
-#: reference_raster.xml:2415 reference_raster.xml:2458
-#: reference_raster.xml:2504 reference_raster.xml:2556
-#: reference_raster.xml:2599 reference_raster.xml:2644
-#: reference_raster.xml:2687 reference_raster.xml:2753
-#: reference_raster.xml:2829 reference_raster.xml:2916
-#: reference_raster.xml:3004 reference_raster.xml:3081
-#: reference_raster.xml:3215 reference_raster.xml:3254
-#: reference_raster.xml:3293 reference_raster.xml:3336
-#: reference_raster.xml:3383 reference_raster.xml:3427
-#: reference_raster.xml:3465 reference_raster.xml:3540
-#: reference_raster.xml:3595 reference_raster.xml:3657
-#: reference_raster.xml:3735 reference_raster.xml:3800
-#: reference_raster.xml:3887 reference_raster.xml:3926
-#: reference_raster.xml:3996 reference_raster.xml:4102
-#: reference_raster.xml:4222 reference_raster.xml:4283
-#: reference_raster.xml:4438 reference_raster.xml:4480
-#: reference_raster.xml:4517 reference_raster.xml:4602
-#: reference_raster.xml:4693 reference_raster.xml:4781
-#: reference_raster.xml:4842 reference_raster.xml:4900
-#: reference_raster.xml:5031 reference_raster.xml:5093
-#: reference_raster.xml:5138 reference_raster.xml:5183
-#: reference_raster.xml:5222 reference_raster.xml:5287
-#: reference_raster.xml:5401 reference_raster.xml:5513
-#: reference_raster.xml:5651 reference_raster.xml:5747
-#: reference_raster.xml:5984 reference_raster.xml:6080
-#: reference_raster.xml:6172 reference_raster.xml:6284
-#: reference_raster.xml:6334 reference_raster.xml:6419
-#: reference_raster.xml:6480 reference_raster.xml:6530
-#: reference_raster.xml:6580 reference_raster.xml:6630
-#: reference_raster.xml:6679 reference_raster.xml:6729
-#: reference_raster.xml:6779 reference_raster.xml:6829
-#: reference_raster.xml:6893 reference_raster.xml:6956
-#: reference_raster.xml:7000 reference_raster.xml:7045
-#: reference_raster.xml:7112 reference_raster.xml:7201
-#: reference_raster.xml:7286 reference_raster.xml:7367
-#: reference_raster.xml:7448 reference_raster.xml:7577
-#: reference_raster.xml:7661 reference_raster.xml:7741
-#: reference_raster.xml:7860 reference_raster.xml:7932
-#: reference_raster.xml:8029 reference_raster.xml:8122
+#: reference_raster.xml:354 reference_raster.xml:536 reference_raster.xml:710
+#: reference_raster.xml:777 reference_raster.xml:846 reference_raster.xml:889
+#: reference_raster.xml:924 reference_raster.xml:961 reference_raster.xml:1002
+#: reference_raster.xml:1058 reference_raster.xml:1103
+#: reference_raster.xml:1209 reference_raster.xml:1418
+#: reference_raster.xml:1505 reference_raster.xml:1601
+#: reference_raster.xml:1668 reference_raster.xml:1733
+#: reference_raster.xml:1775 reference_raster.xml:1825
+#: reference_raster.xml:1864 reference_raster.xml:1898
+#: reference_raster.xml:1935 reference_raster.xml:1978
+#: reference_raster.xml:2013 reference_raster.xml:2047
+#: reference_raster.xml:2097 reference_raster.xml:2151
+#: reference_raster.xml:2188 reference_raster.xml:2228
+#: reference_raster.xml:2283 reference_raster.xml:2338
+#: reference_raster.xml:2384 reference_raster.xml:2419
+#: reference_raster.xml:2455 reference_raster.xml:2491
+#: reference_raster.xml:2526 reference_raster.xml:2565
+#: reference_raster.xml:2599 reference_raster.xml:2633
+#: reference_raster.xml:2677 reference_raster.xml:2739
+#: reference_raster.xml:2794 reference_raster.xml:2835
+#: reference_raster.xml:2882 reference_raster.xml:2924
+#: reference_raster.xml:2975 reference_raster.xml:3010
+#: reference_raster.xml:3085 reference_raster.xml:3128
+#: reference_raster.xml:3174 reference_raster.xml:3232
+#: reference_raster.xml:3275 reference_raster.xml:3326
+#: reference_raster.xml:3369 reference_raster.xml:3441
+#: reference_raster.xml:3528 reference_raster.xml:3615
+#: reference_raster.xml:3703 reference_raster.xml:3788
+#: reference_raster.xml:3914 reference_raster.xml:4010
+#: reference_raster.xml:4062 reference_raster.xml:4110
+#: reference_raster.xml:4153 reference_raster.xml:4200
+#: reference_raster.xml:4244 reference_raster.xml:4282
+#: reference_raster.xml:4357 reference_raster.xml:4426
+#: reference_raster.xml:4494 reference_raster.xml:4571
+#: reference_raster.xml:4643 reference_raster.xml:4722
+#: reference_raster.xml:4830 reference_raster.xml:4865
+#: reference_raster.xml:4932 reference_raster.xml:4997
+#: reference_raster.xml:5110 reference_raster.xml:5231
+#: reference_raster.xml:5297 reference_raster.xml:5376
+#: reference_raster.xml:5522 reference_raster.xml:5565
+#: reference_raster.xml:5611 reference_raster.xml:5696
+#: reference_raster.xml:5787 reference_raster.xml:5875
+#: reference_raster.xml:5986 reference_raster.xml:6179
+#: reference_raster.xml:6455 reference_raster.xml:6599
+#: reference_raster.xml:6836 reference_raster.xml:7042
+#: reference_raster.xml:7166 reference_raster.xml:7492
+#: reference_raster.xml:7610 reference_raster.xml:7723
+#: reference_raster.xml:7865 reference_raster.xml:7951
+#: reference_raster.xml:8023 reference_raster.xml:8087
+#: reference_raster.xml:8158 reference_raster.xml:8233
+#: reference_raster.xml:8316 reference_raster.xml:8387
+#: reference_raster.xml:8443 reference_raster.xml:8518
+#: reference_raster.xml:8589 reference_raster.xml:8673
+#: reference_raster.xml:8765 reference_raster.xml:8847
+#: reference_raster.xml:8901 reference_raster.xml:8975
+#: reference_raster.xml:9023 reference_raster.xml:9075
+#: reference_raster.xml:9117 reference_raster.xml:9165
+#: reference_raster.xml:9216 reference_raster.xml:9264
+#: reference_raster.xml:9306 reference_raster.xml:9380
+#: reference_raster.xml:9425 reference_raster.xml:9470
+#: reference_raster.xml:9515 reference_raster.xml:9584
+#: reference_raster.xml:9631 reference_raster.xml:9704
+#: reference_raster.xml:9772 reference_raster.xml:9861
+#: reference_raster.xml:9946 reference_raster.xml:10027
+#: reference_raster.xml:10108 reference_raster.xml:10237
+#: reference_raster.xml:10321 reference_raster.xml:10401
+#: reference_raster.xml:10520 reference_raster.xml:10567
+#: reference_raster.xml:10639 reference_raster.xml:10736
+#: reference_raster.xml:10829
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -199,61 +212,73 @@ msgstr ""
 
 #. Tag: title
 #: reference_raster.xml:37 reference_raster.xml:107 reference_raster.xml:157
-#: reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:292
-#: reference_raster.xml:487 reference_raster.xml:628 reference_raster.xml:664
-#: reference_raster.xml:702 reference_raster.xml:750 reference_raster.xml:857
-#: reference_raster.xml:1074 reference_raster.xml:1163
-#: reference_raster.xml:1223 reference_raster.xml:1266
-#: reference_raster.xml:1300 reference_raster.xml:1335
-#: reference_raster.xml:1369 reference_raster.xml:1413
-#: reference_raster.xml:1468 reference_raster.xml:1505
-#: reference_raster.xml:1543 reference_raster.xml:1588
-#: reference_raster.xml:1644 reference_raster.xml:1696
-#: reference_raster.xml:1731 reference_raster.xml:1767
-#: reference_raster.xml:1803 reference_raster.xml:1838
-#: reference_raster.xml:1872 reference_raster.xml:1906
-#: reference_raster.xml:1941 reference_raster.xml:1991
-#: reference_raster.xml:2047 reference_raster.xml:2101
-#: reference_raster.xml:2137 reference_raster.xml:2187
-#: reference_raster.xml:2222 reference_raster.xml:2280
-#: reference_raster.xml:2318 reference_raster.xml:2393
-#: reference_raster.xml:2430 reference_raster.xml:2472
-#: reference_raster.xml:2524 reference_raster.xml:2567
-#: reference_raster.xml:2612 reference_raster.xml:2655
-#: reference_raster.xml:2700 reference_raster.xml:2775
-#: reference_raster.xml:2854 reference_raster.xml:2948
-#: reference_raster.xml:3019 reference_raster.xml:3138
-#: reference_raster.xml:3271 reference_raster.xml:3306
-#: reference_raster.xml:3355 reference_raster.xml:3400
-#: reference_raster.xml:3440 reference_raster.xml:3478
-#: reference_raster.xml:3560 reference_raster.xml:3622
-#: reference_raster.xml:3685 reference_raster.xml:3764
-#: reference_raster.xml:3852 reference_raster.xml:3900
-#: reference_raster.xml:3949 reference_raster.xml:4010
-#: reference_raster.xml:4137 reference_raster.xml:4237
-#: reference_raster.xml:4311 reference_raster.xml:4456
-#: reference_raster.xml:4556 reference_raster.xml:4647
-#: reference_raster.xml:4738 reference_raster.xml:4818
-#: reference_raster.xml:4860 reference_raster.xml:5008
-#: reference_raster.xml:5070 reference_raster.xml:5117
-#: reference_raster.xml:5157 reference_raster.xml:5198
-#: reference_raster.xml:5263 reference_raster.xml:5328
-#: reference_raster.xml:5440 reference_raster.xml:5612
-#: reference_raster.xml:5705 reference_raster.xml:5910
-#: reference_raster.xml:6042 reference_raster.xml:6142
-#: reference_raster.xml:6260 reference_raster.xml:6295
-#: reference_raster.xml:6369 reference_raster.xml:6449
-#: reference_raster.xml:6499 reference_raster.xml:6549
-#: reference_raster.xml:6599 reference_raster.xml:6649
-#: reference_raster.xml:6698 reference_raster.xml:6748
-#: reference_raster.xml:6798 reference_raster.xml:6867
-#: reference_raster.xml:6916 reference_raster.xml:7147
-#: reference_raster.xml:7232 reference_raster.xml:7313
-#: reference_raster.xml:7394 reference_raster.xml:7478
-#: reference_raster.xml:7607 reference_raster.xml:7688
-#: reference_raster.xml:7768 reference_raster.xml:7881
-#: reference_raster.xml:7965 reference_raster.xml:8060
-#: reference_raster.xml:8153
+#: reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:340
+#: reference_raster.xml:389 reference_raster.xml:584 reference_raster.xml:725
+#: reference_raster.xml:803 reference_raster.xml:863 reference_raster.xml:899
+#: reference_raster.xml:936 reference_raster.xml:974 reference_raster.xml:1022
+#: reference_raster.xml:1073 reference_raster.xml:1123
+#: reference_raster.xml:1253 reference_raster.xml:1470
+#: reference_raster.xml:1560 reference_raster.xml:1621
+#: reference_raster.xml:1697 reference_raster.xml:1748
+#: reference_raster.xml:1796 reference_raster.xml:1843
+#: reference_raster.xml:1877 reference_raster.xml:1913
+#: reference_raster.xml:1956 reference_raster.xml:1992
+#: reference_raster.xml:2026 reference_raster.xml:2070
+#: reference_raster.xml:2130 reference_raster.xml:2167
+#: reference_raster.xml:2205 reference_raster.xml:2250
+#: reference_raster.xml:2309 reference_raster.xml:2363
+#: reference_raster.xml:2398 reference_raster.xml:2434
+#: reference_raster.xml:2470 reference_raster.xml:2505
+#: reference_raster.xml:2539 reference_raster.xml:2578
+#: reference_raster.xml:2612 reference_raster.xml:2647
+#: reference_raster.xml:2697 reference_raster.xml:2754
+#: reference_raster.xml:2809 reference_raster.xml:2860
+#: reference_raster.xml:2895 reference_raster.xml:2950
+#: reference_raster.xml:2988 reference_raster.xml:3063
+#: reference_raster.xml:3100 reference_raster.xml:3142
+#: reference_raster.xml:3200 reference_raster.xml:3243
+#: reference_raster.xml:3294 reference_raster.xml:3337
+#: reference_raster.xml:3388 reference_raster.xml:3463
+#: reference_raster.xml:3553 reference_raster.xml:3647
+#: reference_raster.xml:3718 reference_raster.xml:3867
+#: reference_raster.xml:3932 reference_raster.xml:4088
+#: reference_raster.xml:4123 reference_raster.xml:4172
+#: reference_raster.xml:4217 reference_raster.xml:4257
+#: reference_raster.xml:4295 reference_raster.xml:4387
+#: reference_raster.xml:4452 reference_raster.xml:4521
+#: reference_raster.xml:4599 reference_raster.xml:4673
+#: reference_raster.xml:4795 reference_raster.xml:4843
+#: reference_raster.xml:4884 reference_raster.xml:4953
+#: reference_raster.xml:5014 reference_raster.xml:5145
+#: reference_raster.xml:5246 reference_raster.xml:5333
+#: reference_raster.xml:5393 reference_raster.xml:5540
+#: reference_raster.xml:5650 reference_raster.xml:5741
+#: reference_raster.xml:5832 reference_raster.xml:5912
+#: reference_raster.xml:6142 reference_raster.xml:6376
+#: reference_raster.xml:6520 reference_raster.xml:6767
+#: reference_raster.xml:7003 reference_raster.xml:7116
+#: reference_raster.xml:7408 reference_raster.xml:7567
+#: reference_raster.xml:7690 reference_raster.xml:7823
+#: reference_raster.xml:7894 reference_raster.xml:7982
+#: reference_raster.xml:8055 reference_raster.xml:8125
+#: reference_raster.xml:8194 reference_raster.xml:8276
+#: reference_raster.xml:8355 reference_raster.xml:8410
+#: reference_raster.xml:8479 reference_raster.xml:8550
+#: reference_raster.xml:8625 reference_raster.xml:8718
+#: reference_raster.xml:8815 reference_raster.xml:8858
+#: reference_raster.xml:8943 reference_raster.xml:8991
+#: reference_raster.xml:9042 reference_raster.xml:9092
+#: reference_raster.xml:9137 reference_raster.xml:9190
+#: reference_raster.xml:9236 reference_raster.xml:9279
+#: reference_raster.xml:9318 reference_raster.xml:9529
+#: reference_raster.xml:9597 reference_raster.xml:9650
+#: reference_raster.xml:9716 reference_raster.xml:9807
+#: reference_raster.xml:9892 reference_raster.xml:9973
+#: reference_raster.xml:10054 reference_raster.xml:10138
+#: reference_raster.xml:10267 reference_raster.xml:10348
+#: reference_raster.xml:10428 reference_raster.xml:10541
+#: reference_raster.xml:10585 reference_raster.xml:10672
+#: reference_raster.xml:10767 reference_raster.xml:10860
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -370,7 +395,7 @@ msgid "The raster in question/"
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:140 reference_raster.xml:263
+#: reference_raster.xml:140 reference_raster.xml:360
 #, no-c-format
 msgid "<parameter>nband </parameter> <type>integer</type>"
 msgstr ""
@@ -577,20 +602,120 @@ msgstr ""
 #. Tag: refname
 #: reference_raster.xml:252
 #, no-c-format
-msgid "unionarg"
+msgid "summarystats"
 msgstr ""
 
 #. Tag: refpurpose
 #: reference_raster.xml:253
 #, no-c-format
 msgid ""
+"A composite type returned by the ST_SummaryStats and ST_SummaryStatsAgg "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:258
+#, no-c-format
+msgid ""
+"A composite type returned by the <xref linkend=\"RT_ST_SummaryStats\"/> and "
+"<xref linkend=\"RT_ST_SummaryStatsAgg\"/> functions."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:263
+#, no-c-format
+msgid "<parameter>count </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:268
+#, no-c-format
+msgid "Number of pixels counted for the summary statistics."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:275
+#, no-c-format
+msgid "<parameter>sum </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:280
+#, no-c-format
+msgid "Sum of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:287
+#, no-c-format
+msgid "<parameter>mean </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:292
+#, no-c-format
+msgid "Arithmetic mean of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:299
+#, no-c-format
+msgid "<parameter>stddev </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:304
+#, no-c-format
+msgid "Standard deviation of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:311
+#, no-c-format
+msgid "<parameter>min </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:316
+#, no-c-format
+msgid "Minimum value of counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:323
+#, no-c-format
+msgid "<parameter>max </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:328
+#, no-c-format
+msgid "Maximum value of counted pixel values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:341
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:349
+#, no-c-format
+msgid "unionarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:350
+#, no-c-format
+msgid ""
 "<refpurpose>A composite type used as input into the ST_Union function "
 "defining the bands to be processed and behavior of the UNION operation.</"
 "refpurpose>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:258
+#: reference_raster.xml:355
 #, no-c-format
 msgid ""
 "<para>A composite type used as input into the ST_Union function defining the "
@@ -598,19 +723,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:268
+#: reference_raster.xml:365
 #, no-c-format
 msgid "1-based value indicating the band of each input raster to be processed."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:275
+#: reference_raster.xml:372
 #, no-c-format
 msgid "<parameter>uniontype </parameter> <type>text</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:280
+#: reference_raster.xml:377
 #, no-c-format
 msgid ""
 "Type of UNION operation. One of defined types as described in <xref linkend="
@@ -618,19 +743,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:302
+#: reference_raster.xml:399
 #, no-c-format
 msgid "Raster Management"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:305
+#: reference_raster.xml:402
 #, no-c-format
 msgid "AddRasterConstraints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:307
+#: reference_raster.xml:404
 #, no-c-format
 msgid ""
 "Adds raster constraints to a loaded raster table for a specific column that "
@@ -641,7 +766,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:311
+#: reference_raster.xml:408
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>AddRasterConstraints</function></"
@@ -686,7 +811,7 @@ msgid ""
 "<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>boolean </type> <parameter>regular_blocking=true</parameter></"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
 "paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
 "\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
@@ -698,7 +823,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:441
+#: reference_raster.xml:538
 #, no-c-format
 msgid ""
 "Generates constraints on a raster column that are used to display "
@@ -709,7 +834,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:446
+#: reference_raster.xml:543
 #, no-c-format
 msgid ""
 "<varname>raster2pgsql</varname> loader uses this function to register raster "
@@ -717,7 +842,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:447
+#: reference_raster.xml:544
 #, no-c-format
 msgid ""
 "Valid constraint names to pass in: refer to <xref linkend=\"RT_Raster_Columns"
@@ -725,27 +850,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:449
+#: reference_raster.xml:546
 #, no-c-format
 msgid "<varname>blocksize</varname> sets both X and Y blocksize"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:450
+#: reference_raster.xml:547
 #, no-c-format
 msgid ""
 "<varname>blocksize_x</varname> sets X tile (width in pixels of each tile)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:451
+#: reference_raster.xml:548
 #, no-c-format
 msgid ""
 "<varname>blocksize_y</varname> sets Y tile (height in pixels of each tile)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:452
+#: reference_raster.xml:549
 #, no-c-format
 msgid ""
 "<varname>extent</varname> computes extent of whole table and applys "
@@ -753,13 +878,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:454
+#: reference_raster.xml:551
 #, no-c-format
 msgid "<varname>num_bands</varname> number of bands"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:455
+#: reference_raster.xml:552
 #, no-c-format
 msgid ""
 "<varname>pixel_types</varname> reads array of pixel types for each band "
@@ -767,15 +892,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:456
+#: reference_raster.xml:553
 #, no-c-format
 msgid ""
-"<varname>regular_blocking</varname> apply informational flag to denote all "
-"tiles are regularly blocked"
+"<varname>regular_blocking</varname> sets spatially unique (no two rasters "
+"can be spatially the same) and coverage tile (raster is aligned to a "
+"coverage) constraints"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:457
+#: reference_raster.xml:554
 #, no-c-format
 msgid ""
 "<varname>same_alignment</varname> ensures they all have same alignment "
@@ -783,19 +909,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:458
+#: reference_raster.xml:555
 #, no-c-format
 msgid "<varname>srid</varname> ensures all have same srid"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:459
+#: reference_raster.xml:556
 #, no-c-format
 msgid "More -- any listed as inputs into the above functions"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:462
+#: reference_raster.xml:559
 #, no-c-format
 msgid ""
 "This function infers the constraints from the data already present in the "
@@ -804,7 +930,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:467
+#: reference_raster.xml:564
 #, no-c-format
 msgid ""
 "If you need to load more data in your tables after you have already applied "
@@ -813,34 +939,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:471 reference_raster.xml:620 reference_raster.xml:1114
-#: reference_raster.xml:2126 reference_raster.xml:2259
-#: reference_raster.xml:2419 reference_raster.xml:2462
-#: reference_raster.xml:2514 reference_raster.xml:3934
-#: reference_raster.xml:4000 reference_raster.xml:4123
-#: reference_raster.xml:4226 reference_raster.xml:4290
-#: reference_raster.xml:4443 reference_raster.xml:4908
-#: reference_raster.xml:5187 reference_raster.xml:5252
-#: reference_raster.xml:5317 reference_raster.xml:5663
-#: reference_raster.xml:5800 reference_raster.xml:6002
-#: reference_raster.xml:6099 reference_raster.xml:6219
-#: reference_raster.xml:6343 reference_raster.xml:6423
-#: reference_raster.xml:6488 reference_raster.xml:6538
-#: reference_raster.xml:6588 reference_raster.xml:6638
-#: reference_raster.xml:6687 reference_raster.xml:6737
-#: reference_raster.xml:6787 reference_raster.xml:7870
+#: reference_raster.xml:568 reference_raster.xml:717 reference_raster.xml:793
+#: reference_raster.xml:859 reference_raster.xml:1511
+#: reference_raster.xml:1902 reference_raster.xml:2932
+#: reference_raster.xml:3089 reference_raster.xml:3132
+#: reference_raster.xml:3189 reference_raster.xml:4873
+#: reference_raster.xml:4936 reference_raster.xml:5131
+#: reference_raster.xml:5235 reference_raster.xml:5305
+#: reference_raster.xml:5527 reference_raster.xml:6000
+#: reference_raster.xml:7062 reference_raster.xml:7261
+#: reference_raster.xml:7525 reference_raster.xml:7644
+#: reference_raster.xml:7773 reference_raster.xml:7871
+#: reference_raster.xml:7959 reference_raster.xml:8043
+#: reference_raster.xml:8182 reference_raster.xml:8257
+#: reference_raster.xml:8344 reference_raster.xml:8467
+#: reference_raster.xml:8538 reference_raster.xml:8613
+#: reference_raster.xml:8699 reference_raster.xml:8795
+#: reference_raster.xml:8923 reference_raster.xml:9387
+#: reference_raster.xml:9639 reference_raster.xml:9711
+#: reference_raster.xml:10530
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:475
+#: reference_raster.xml:572
 #, no-c-format
 msgid "Examples: Apply all possible constraints on column based on data"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:477
+#: reference_raster.xml:574
 #, no-c-format
 msgid ""
 "CREATE TABLE myrasters(rid SERIAL primary key, rast raster);\n"
@@ -866,13 +995,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:481
+#: reference_raster.xml:578
 #, no-c-format
 msgid "Examples: Apply single constraint"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:483
+#: reference_raster.xml:580
 #, no-c-format
 msgid ""
 "CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);\n"
@@ -884,17 +1013,12 @@ msgid ""
 "name,'regular_blocking', 'blocksize');\n"
 "-- get notice--\n"
 "NOTICE:  Adding regular blocking constraint\n"
-"INFO:  The regular_blocking constraint is just a flag indicating that the "
-"column \"rast\" is regularly blocked.  As no function exist yet to assert "
-"that a raster column is regularly blocked, it is up to the end-user to "
-"ensure that the column is truly regularly blocked.\n"
-"CONTEXT:  PL/pgSQL function \"addrasterconstraints\" line 85 at assignment\n"
 "NOTICE:  Adding blocksize-X constraint\n"
 "NOTICE:  Adding blocksize-Y constraint"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:489
+#: reference_raster.xml:586
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/"
@@ -903,13 +1027,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:495
+#: reference_raster.xml:592
 #, no-c-format
 msgid "DropRasterConstraints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:497
+#: reference_raster.xml:594
 #, no-c-format
 msgid ""
 "Drops PostGIS raster constraints that refer to a raster table column. Useful "
@@ -917,7 +1041,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:501
+#: reference_raster.xml:598
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>DropRasterConstraints</function></"
@@ -951,7 +1075,7 @@ msgid ""
 "<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>boolean </type> <parameter>regular_blocking=true</parameter></"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
 "paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
 "\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
@@ -968,7 +1092,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:614
+#: reference_raster.xml:711
 #, no-c-format
 msgid ""
 "Drops PostGIS raster constraints that refer to a raster table column that "
@@ -978,19 +1102,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:616
+#: reference_raster.xml:713
 #, no-c-format
 msgid "To drop a raster table use the standard"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:616
+#: reference_raster.xml:713
 #, no-c-format
 msgid "DROP TABLE mytable"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:617
+#: reference_raster.xml:714
 #, no-c-format
 msgid ""
 "To drop just a raster column and leave the rest of the table, use standard "
@@ -998,13 +1122,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:617
+#: reference_raster.xml:714
 #, no-c-format
 msgid "ALTER TABLE mytable DROP COLUMN rast"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:618
+#: reference_raster.xml:715
 #, no-c-format
 msgid ""
 "the table will disappear from the <varname>raster_columns</varname> catalog "
@@ -1015,57 +1139,64 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:623 reference_raster.xml:658 reference_raster.xml:696
-#: reference_raster.xml:1118 reference_raster.xml:1216
-#: reference_raster.xml:1260 reference_raster.xml:1293
-#: reference_raster.xml:1328 reference_raster.xml:1362
-#: reference_raster.xml:1497 reference_raster.xml:1535
-#: reference_raster.xml:1578 reference_raster.xml:1634
-#: reference_raster.xml:1686 reference_raster.xml:1724
-#: reference_raster.xml:1759 reference_raster.xml:1795
-#: reference_raster.xml:1831 reference_raster.xml:1865
-#: reference_raster.xml:1899 reference_raster.xml:1933
-#: reference_raster.xml:1984 reference_raster.xml:2040
-#: reference_raster.xml:2094 reference_raster.xml:2130
-#: reference_raster.xml:2180 reference_raster.xml:2215
-#: reference_raster.xml:2273 reference_raster.xml:2311
-#: reference_raster.xml:2386 reference_raster.xml:2423
-#: reference_raster.xml:2467 reference_raster.xml:2519
-#: reference_raster.xml:2562 reference_raster.xml:2607
-#: reference_raster.xml:2650 reference_raster.xml:2695
-#: reference_raster.xml:2762 reference_raster.xml:2845
-#: reference_raster.xml:2937 reference_raster.xml:3012
-#: reference_raster.xml:3224 reference_raster.xml:3265
-#: reference_raster.xml:3299 reference_raster.xml:3347
-#: reference_raster.xml:3390 reference_raster.xml:3471
-#: reference_raster.xml:3554 reference_raster.xml:3615
-#: reference_raster.xml:3677 reference_raster.xml:3756
-#: reference_raster.xml:3811 reference_raster.xml:3893
-#: reference_raster.xml:3942 reference_raster.xml:4004
-#: reference_raster.xml:4230 reference_raster.xml:4447
-#: reference_raster.xml:4490 reference_raster.xml:4730
-#: reference_raster.xml:4853 reference_raster.xml:5043
-#: reference_raster.xml:5113 reference_raster.xml:5150
-#: reference_raster.xml:5667 reference_raster.xml:6006
-#: reference_raster.xml:6226 reference_raster.xml:6291
-#: reference_raster.xml:6492 reference_raster.xml:6542
-#: reference_raster.xml:6592 reference_raster.xml:6642
-#: reference_raster.xml:6691 reference_raster.xml:6741
-#: reference_raster.xml:6791 reference_raster.xml:6862
-#: reference_raster.xml:6911 reference_raster.xml:6966
-#: reference_raster.xml:7011 reference_raster.xml:7056
-#: reference_raster.xml:7140 reference_raster.xml:7227
-#: reference_raster.xml:7308 reference_raster.xml:7389
-#: reference_raster.xml:7470 reference_raster.xml:7602
-#: reference_raster.xml:7683 reference_raster.xml:7763
-#: reference_raster.xml:7960 reference_raster.xml:8055
-#: reference_raster.xml:8148
+#: reference_raster.xml:720 reference_raster.xml:797 reference_raster.xml:894
+#: reference_raster.xml:930 reference_raster.xml:968 reference_raster.xml:1515
+#: reference_raster.xml:1614 reference_raster.xml:1688
+#: reference_raster.xml:1789 reference_raster.xml:1837
+#: reference_raster.xml:1870 reference_raster.xml:1906
+#: reference_raster.xml:1949 reference_raster.xml:1985
+#: reference_raster.xml:2019 reference_raster.xml:2159
+#: reference_raster.xml:2197 reference_raster.xml:2240
+#: reference_raster.xml:2299 reference_raster.xml:2353
+#: reference_raster.xml:2391 reference_raster.xml:2426
+#: reference_raster.xml:2462 reference_raster.xml:2498
+#: reference_raster.xml:2534 reference_raster.xml:2571
+#: reference_raster.xml:2605 reference_raster.xml:2639
+#: reference_raster.xml:2690 reference_raster.xml:2747
+#: reference_raster.xml:2802 reference_raster.xml:2853
+#: reference_raster.xml:2888 reference_raster.xml:2943
+#: reference_raster.xml:2981 reference_raster.xml:3056
+#: reference_raster.xml:3093 reference_raster.xml:3137
+#: reference_raster.xml:3195 reference_raster.xml:3238
+#: reference_raster.xml:3289 reference_raster.xml:3332
+#: reference_raster.xml:3383 reference_raster.xml:3450
+#: reference_raster.xml:3544 reference_raster.xml:3636
+#: reference_raster.xml:3711 reference_raster.xml:3924
+#: reference_raster.xml:4019 reference_raster.xml:4082
+#: reference_raster.xml:4116 reference_raster.xml:4164
+#: reference_raster.xml:4207 reference_raster.xml:4288
+#: reference_raster.xml:4381 reference_raster.xml:4445
+#: reference_raster.xml:4513 reference_raster.xml:4591
+#: reference_raster.xml:4668 reference_raster.xml:4747
+#: reference_raster.xml:4836 reference_raster.xml:4877
+#: reference_raster.xml:4947 reference_raster.xml:5009
+#: reference_raster.xml:5239 reference_raster.xml:5388
+#: reference_raster.xml:5531 reference_raster.xml:5584
+#: reference_raster.xml:5824 reference_raster.xml:6265
+#: reference_raster.xml:7066 reference_raster.xml:7529
+#: reference_raster.xml:7777 reference_raster.xml:8048
+#: reference_raster.xml:8120 reference_raster.xml:8187
+#: reference_raster.xml:8349 reference_raster.xml:8405
+#: reference_raster.xml:8472 reference_raster.xml:8543
+#: reference_raster.xml:8618 reference_raster.xml:8853
+#: reference_raster.xml:8986 reference_raster.xml:9037
+#: reference_raster.xml:9086 reference_raster.xml:9129
+#: reference_raster.xml:9185 reference_raster.xml:9230
+#: reference_raster.xml:9274 reference_raster.xml:9313
+#: reference_raster.xml:9391 reference_raster.xml:9436
+#: reference_raster.xml:9481 reference_raster.xml:9644
+#: reference_raster.xml:9800 reference_raster.xml:9887
+#: reference_raster.xml:9968 reference_raster.xml:10049
+#: reference_raster.xml:10130 reference_raster.xml:10262
+#: reference_raster.xml:10343 reference_raster.xml:10423
+#: reference_raster.xml:10580 reference_raster.xml:10667
+#: reference_raster.xml:10762 reference_raster.xml:10855
 #, no-c-format
 msgid "Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:625
+#: reference_raster.xml:722
 #, no-c-format
 msgid ""
 "SELECT DropRasterConstraints ('myrasters','rast');\n"
@@ -1087,19 +1218,203 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:636
+#: reference_raster.xml:733
+#, no-c-format
+msgid "AddOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:735
+#, no-c-format
+msgid "Tag a raster column as being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:739
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>reftable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refcolumn</"
+"parameter></paramdef> <paramdef><type>int </type> <parameter>ovfactor</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddOverviewConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>ovcolumn</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>reftable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>refcolumn</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>ovfactor</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:779
+#, no-c-format
+msgid ""
+"Adds constraints on a raster column that are used to display information in "
+"the <varname>raster_overviews</varname> raster catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:783
+#, no-c-format
+msgid ""
+"The <varname>ovfactor</varname> parameter represents the scale multiplier in "
+"the overview column: higher overview factors have lower resolution."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:787
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> and <varname>refschema</varname> "
+"parameters are omitted, the first table found scanning the "
+"<varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:799
+#, no-c-format
+msgid ""
+"CREATE TABLE res1 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r1;\n"
+"\n"
+"CREATE TABLE res2 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(500, 500, 0, 0, 4),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r2;\n"
+"\n"
+"SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);\n"
+"\n"
+"-- verify if registered correctly in the raster_overviews view --\n"
+"SELECT o_table_name ot, o_raster_column oc,\n"
+"       r_table_name rt, r_raster_column rc,\n"
+"       overview_factor f\n"
+"FROM raster_overviews WHERE o_table_name = 'res2';\n"
+"  ot  | oc |  rt  | rc | f\n"
+"------+----+------+----+---\n"
+" res2 | r2 | res1 | r1 | 2\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:805
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_DropOverviewConstraints\"/>, <xref linkend="
+"\"RT_CreateOverview\"/>, <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:816
+#, no-c-format
+msgid "DropOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:818
+#, no-c-format
+msgid "Untag a raster column from being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:822
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropOverviewConstraints</function></funcdef> <paramdef><type>name "
+"</type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>ovcolumn</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:848
+#, no-c-format
+msgid ""
+"Remove from a raster column the constraints used to show it as being an "
+"overview of another in the <varname>raster_overviews</varname> raster "
+"catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:853
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> parameter is omitted, the first table "
+"found scanning the <varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:865
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_DropRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:875
+#, no-c-format
+msgid "PostGIS_GDAL_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:876
+#, no-c-format
+msgid "Reports the version of the GDAL library in use by PostGIS."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:881
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GDAL_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:890
+#, no-c-format
+msgid ""
+"Reports the version of the GDAL library in use by PostGIS. Will also check "
+"and report if GDAL can find its data files."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:895
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GDAL_Version();\n"
+"       postgis_gdal_version        \n"
+"-----------------------------------\n"
+" GDAL 1.11dev, released 2013/04/13"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:908
 #, no-c-format
 msgid "PostGIS_Raster_Lib_Build_Date"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:638
+#: reference_raster.xml:910
 #, no-c-format
 msgid "Reports full raster library build date."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:643
+#: reference_raster.xml:915
 #, no-c-format
 msgid ""
 "<funcdef>text <function>PostGIS_Raster_Lib_Build_Date</function></funcdef> "
@@ -1107,13 +1422,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:654
+#: reference_raster.xml:926
 #, no-c-format
 msgid "Reports raster build date"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:660
+#: reference_raster.xml:932
 #, no-c-format
 msgid ""
 "SELECT PostGIS_Raster_Lib_Build_Date();\n"
@@ -1123,13 +1438,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:672
+#: reference_raster.xml:944
 #, no-c-format
 msgid "PostGIS_Raster_Lib_Version"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:674
+#: reference_raster.xml:946
 #, no-c-format
 msgid ""
 "<refpurpose>Reports full raster version and build configuration infos.</"
@@ -1137,7 +1452,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:680
+#: reference_raster.xml:952
 #, no-c-format
 msgid ""
 "<funcdef>text <function>PostGIS_Raster_Lib_Version</function></funcdef> "
@@ -1145,13 +1460,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:691
+#: reference_raster.xml:963
 #, no-c-format
 msgid "<para>Reports full raster version and build configuration infos.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:698
+#: reference_raster.xml:970
 #, no-c-format
 msgid ""
 "SELECT PostGIS_Raster_Lib_Version();\n"
@@ -1161,13 +1476,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:712
+#: reference_raster.xml:984
 #, no-c-format
 msgid "ST_GDALDrivers"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:714
+#: reference_raster.xml:986
 #, no-c-format
 msgid ""
 "Returns a list of raster formats supported by your lib gdal. These are the "
@@ -1175,7 +1490,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:719
+#: reference_raster.xml:991
 #, no-c-format
 msgid ""
 "<funcdef>setof record <function>ST_GDALDrivers</function></funcdef> "
@@ -1187,7 +1502,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:732
+#: reference_raster.xml:1004
 #, no-c-format
 msgid ""
 "Returns a list of raster formats short_name,long_name and creator options of "
@@ -1201,21 +1516,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:735 reference_raster.xml:1042
-#: reference_raster.xml:4537 reference_raster.xml:4635
-#: reference_raster.xml:4726 reference_raster.xml:4806
+#: reference_raster.xml:1007 reference_raster.xml:1438
+#: reference_raster.xml:5631 reference_raster.xml:5729
+#: reference_raster.xml:5820 reference_raster.xml:5900
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GDAL >= 1.6.0."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:739
+#: reference_raster.xml:1011
 #, no-c-format
 msgid "Examples: List of Drivers"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:741
+#: reference_raster.xml:1013
 #, no-c-format
 msgid ""
 "SELECT short_name, long_name\n"
@@ -1248,13 +1563,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:743
+#: reference_raster.xml:1015
 #, no-c-format
 msgid "Example: List of options for each driver"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:744
+#: reference_raster.xml:1016
 #, no-c-format
 msgid ""
 "-- Output the create options XML column of JPEG as a table  --\n"
@@ -1276,7 +1591,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:746
+#: reference_raster.xml:1018
 #, no-c-format
 msgid ""
 "-- raw xml output for creator options for GeoTiff --\n"
@@ -1422,144 +1737,308 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:752 reference_raster.xml:1839
+#: reference_raster.xml:1024 reference_raster.xml:2506
 #, no-c-format
 msgid ", <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:759
-#, no-c-format
-msgid "Raster Constructors"
-msgstr ""
-
 #. Tag: refname
-#: reference_raster.xml:763
+#: reference_raster.xml:1030
 #, no-c-format
-msgid "ST_AddBand"
+msgid "UpdateRasterSRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:764
+#: reference_raster.xml:1031
 #, no-c-format
-msgid ""
-"Returns a raster with the new band(s) of given type added with given initial "
-"value in the given index location. If no index is specified, the band is "
-"added to the end."
+msgid "Change the SRID of all rasters in the user-specified column and table."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:770
+#: reference_raster.xml:1037
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>addbandarg[] </type> <parameter>addbandargset</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
-"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>index</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"<funcprototype> <funcdef>raster <function>UpdateRasterSRID</function></"
+"funcdef> <paramdef><type>name </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>column_name</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>new_srid</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
-"<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> "
-"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>torast</parameter></paramdef> "
-"<paramdef><type>raster[] </type> <parameter>fromrasts</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> <parameter>fromband=1</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
-"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype>"
+"<function>UpdateRasterSRID</function></funcdef> <paramdef><type>name </type> "
+"<parameter>table_name</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>column_name</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>new_srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:822
+#: reference_raster.xml:1060
 #, no-c-format
 msgid ""
-"Returns a raster with a new band added in given position (index), of given "
-"type, of given initial value, and of given nodata value. If no index is "
-"specified, the band is added to the end. If no <varname>fromband</varname> "
-"is specified, band 1 is assumed. Pixel type is a string representation of "
-"one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. "
-"If an existing index is specified all subsequent bands >= that index are "
-"incremented by 1. If an initial value greater than the max of the pixel type "
-"is specified, then the initial value is set to the highest value allowed by "
-"the pixel type. The last version add the <varname>fromband</varname> from "
-"<varname>fromrast</varname> raster to <varname>torast</varname> in position "
-"<varname>torastindex</varname>."
+"Change the SRID of all rasters in the user-specified column and table. The "
+"function will drop all appropriate column constraints (extent, alignment and "
+"SRID) before changing the SRID of the specified column's rasters."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:826
+#: reference_raster.xml:1065
 #, no-c-format
 msgid ""
-"For the version that takes an array of <xref linkend=\"addbandarg\"/>, a "
-"specific addbandarg's index value is relative to the raster at the time when "
-"the band described by that addbandarg is being added to the raster. See the "
-"Multiple New Bands example below."
+"The data (band pixel values) of the rasters are not touched by this "
+"function. Only the raster's metadata is changed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:830
+#: reference_raster.xml:1070 reference_raster.xml:1684
+#: reference_raster.xml:1785 reference_raster.xml:2235
+#: reference_raster.xml:2530 reference_raster.xml:2685
+#: reference_raster.xml:3234 reference_raster.xml:3284
+#: reference_raster.xml:3328 reference_raster.xml:3378
+#: reference_raster.xml:3535 reference_raster.xml:3632
+#: reference_raster.xml:3817 reference_raster.xml:3920
+#: reference_raster.xml:4016 reference_raster.xml:6261
+#: reference_raster.xml:6725 reference_raster.xml:6842
+#: reference_raster.xml:8116 reference_raster.xml:8401
+#: reference_raster.xml:8849 reference_raster.xml:8982
+#: reference_raster.xml:9033 reference_raster.xml:9270
+#: reference_raster.xml:9524 reference_raster.xml:9796
+#: reference_raster.xml:9883 reference_raster.xml:9964
+#: reference_raster.xml:10045 reference_raster.xml:10126
+#: reference_raster.xml:10339 reference_raster.xml:10419
+#: reference_raster.xml:10576 reference_raster.xml:10663
+#: reference_raster.xml:10758 reference_raster.xml:10851
 #, no-c-format
-msgid ""
-"For the version that takes an array of bands if <varname>torast</varname> is "
-"NULL, then the <varname>fromband</varname> band of each raster in the array "
-"is accumulated into a new raster."
+msgid "Availability: 2.1.0"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:833
+#. Tag: refname
+#: reference_raster.xml:1082
 #, no-c-format
-msgid "Enhanced: 2.1.0 support addbandarg was introduced."
+msgid "ST_CreateOverview"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:837
+#. Tag: refpurpose
+#: reference_raster.xml:1083
 #, no-c-format
-msgid "Examples: Single New Band versions"
+msgid "Create an reduced resolution version of a given raster coverage."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:839
+#. Tag: funcprototype
+#: reference_raster.xml:1091
 #, no-c-format
 msgid ""
-"-- Add another band of type 8 bit unsigned integer with pixels initialized "
-"to 200\n"
-"UPDATE dummy_rast\n"
-"    SET rast = ST_AddBand(rast,'8BUI'::text,200)  \n"
-"WHERE rid = 1;"
+"<funcdef>regclass <function>ST_CreateOverview</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>factor</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algo='NearestNeighbor'</parameter></paramdef>"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:841
+#. Tag: para
+#: reference_raster.xml:1105
 #, no-c-format
 msgid ""
-"-- Create an empty raster 100x100 units, with upper left  right at 0, add 2 "
-"bands (band 1 is 0/1 boolean bit switch, band2 allows values 0-15)\n"
-"-- uses addbandargs\n"
-"INSERT INTO dummy_rast(rid,rast)\n"
-"    VALUES(10, ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 1, -1, 0, 0, "
-"0), \n"
-"        ARRAY[\n"
-"                ROW(1, '1BB'::text, 0, NULL),\n"
-"                ROW(2, '4BUI'::text, 0, NULL)\n"
-"                        ]::addbandarg[]\n"
-"     )\n"
-"    );\n"
-"    \n"
+"Create an overview table with resampled tiles from the source table. Output "
+"tiles will have the same size of input tiles and cover the same spatial "
+"extent with a lower resolution (pixel size will be 1/<varname>factor</"
+"varname> of the original in both directions)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1112
+#, no-c-format
+msgid ""
+"The overview table will be made available in the <varname>raster_overviews</"
+"varname> catalog and will have raster constraints enforced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1118 reference_raster.xml:1743
+#: reference_raster.xml:4726
+#, no-c-format
+msgid ""
+"Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', "
+"'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/"
+"gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1120 reference_raster.xml:1745
+#: reference_raster.xml:1944 reference_raster.xml:5005
+#: reference_raster.xml:5384
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_AddRasterConstraints\"/>, <xref linkend=\"RT_Raster_Overviews\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1135
+#, no-c-format
+msgid "Raster Constructors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1139
+#, no-c-format
+msgid "ST_AddBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1140
+#, no-c-format
+msgid ""
+"Returns a raster with the new band(s) of given type added with given initial "
+"value in the given index location. If no index is specified, the band is "
+"added to the end."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1146
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>(1) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>addbandarg[] </type> <parameter>addbandargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>(2) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(3) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(4) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(5) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>torast</parameter></"
+"paramdef> <paramdef><type>raster[] </type> <parameter>fromrasts</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>fromband=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>torastindex=at_end</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(6) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(7) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>index=at_end</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1211
+#, no-c-format
+msgid ""
+"Returns a raster with a new band added in given position (index), of given "
+"type, of given initial value, and of given nodata value. If no index is "
+"specified, the band is added to the end. If no <varname>fromband</varname> "
+"is specified, band 1 is assumed. Pixel type is a string representation of "
+"one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. "
+"If an existing index is specified all subsequent bands >= that index are "
+"incremented by 1. If an initial value greater than the max of the pixel type "
+"is specified, then the initial value is set to the highest value allowed by "
+"the pixel type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1215
+#, no-c-format
+msgid ""
+"For the variant that takes an array of <xref linkend=\"addbandarg\"/> "
+"(Variant 1), a specific addbandarg's index value is relative to the raster "
+"at the time when the band described by that addbandarg is being added to the "
+"raster. See the Multiple New Bands example below."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1219
+#, no-c-format
+msgid ""
+"For the variant that takes an array of rasters (Variant 5), if "
+"<varname>torast</varname> is NULL then the <varname>fromband</varname> band "
+"of each raster in the array is accumulated into a new raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1223
+#, no-c-format
+msgid ""
+"For the variants that take <varname>outdbfile</varname> (Variants 6 and 7), "
+"the value must include the full path to the raster file. The file must also "
+"be accessible to the postgres server process."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1227
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for addbandarg added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1228
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for new out-db bands added."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1232
+#, no-c-format
+msgid "Examples: Single New Band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1234
+#, no-c-format
+msgid ""
+"-- Add another band of type 8 bit unsigned integer with pixels initialized "
+"to 200\n"
+"UPDATE dummy_rast\n"
+"    SET rast = ST_AddBand(rast,'8BUI'::text,200)  \n"
+"WHERE rid = 1;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1236
+#, no-c-format
+msgid ""
+"-- Create an empty raster 100x100 units, with upper left  right at 0, add 2 "
+"bands (band 1 is 0/1 boolean bit switch, band2 allows values 0-15)\n"
+"-- uses addbandargs\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"    VALUES(10, ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 1, -1, 0, 0, "
+"0), \n"
+"        ARRAY[\n"
+"                ROW(1, '1BB'::text, 0, NULL),\n"
+"                ROW(2, '4BUI'::text, 0, NULL)\n"
+"                        ]::addbandarg[]\n"
+"     )\n"
+"    );\n"
+"    \n"
 "-- output meta data of raster bands to verify all is right --\n"
 "SELECT  (bmd).*\n"
 "FROM (SELECT ST_BandMetaData(rast,generate_series(1,2)) As bmd \n"
@@ -1585,13 +2064,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:845
+#: reference_raster.xml:1240
 #, no-c-format
 msgid "Examples: Multiple New Bands"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:847
+#: reference_raster.xml:1242
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -1617,14 +2096,8 @@ msgid ""
 "       4 | 16BUI     |           2 | f       |"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:851
-#, no-c-format
-msgid "Examples: Multi-Band versions"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_raster.xml:853
+#: reference_raster.xml:1244
 #, no-c-format
 msgid ""
 "-- Aggregate the 1st band of a table of like rasters into a single raster \n"
@@ -1636,14 +2109,44 @@ msgid ""
 "-- The resulting raster will have a band for each test_type alphabetical by "
 "test_type\n"
 "-- For mouse lovers: No mice were harmed in this exercise\n"
-"SELECT mouse, ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1 ) As "
-"rast \n"
-"        FROM mice_studies\n"
-"                        GROUP BY mouse;"
+"SELECT\n"
+"        mouse,\n"
+"        ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1) As rast \n"
+"FROM mice_studies\n"
+"GROUP BY mouse;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1248
+#, no-c-format
+msgid "Examples: New Out-db band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1249
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                '/home/raster/mytestraster.tif'::text, NULL::int[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       2 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       3 | 8BUI      |             | t       | /home/raster/mytestraster.tif"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:858
+#: reference_raster.xml:1254
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend="
@@ -1652,19 +2155,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:871
+#: reference_raster.xml:1267
 #, no-c-format
 msgid "ST_AsRaster"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:872
+#: reference_raster.xml:1268
 #, no-c-format
 msgid "Converts a PostGIS geometry to a PostGIS raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:876
+#: reference_raster.xml:1272
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
@@ -1810,7 +2313,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1024
+#: reference_raster.xml:1420
 #, no-c-format
 msgid ""
 "Converts a PostGIS geometry to a PostGIS raster. The many variants offers "
@@ -1819,7 +2322,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1026
+#: reference_raster.xml:1422
 #, no-c-format
 msgid ""
 "The first group, composed of the two first variants, produce a raster having "
@@ -1831,7 +2334,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1028
+#: reference_raster.xml:1424
 #, no-c-format
 msgid ""
 "The second group, composed of four variants, let you set the dimensions of "
@@ -1845,7 +2348,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1030
+#: reference_raster.xml:1426
 #, no-c-format
 msgid ""
 "The third group, composed of four variants, let you fix the dimensions of "
@@ -1857,7 +2360,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1032
+#: reference_raster.xml:1428
 #, no-c-format
 msgid ""
 "The two first variants of each of those two last groups let you specify the "
@@ -1868,7 +2371,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1034
+#: reference_raster.xml:1430
 #, no-c-format
 msgid ""
 "Each group of variant allows producing a one band raster or a multiple bands "
@@ -1880,7 +2383,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1036
+#: reference_raster.xml:1432
 #, no-c-format
 msgid ""
 "The output raster will be in the same spatial reference as the source "
@@ -1890,7 +2393,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1038
+#: reference_raster.xml:1434
 #, no-c-format
 msgid ""
 "The optional <varname>touched</varname> parameter defaults to false and maps "
@@ -1900,7 +2403,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1040
+#: reference_raster.xml:1436
 #, no-c-format
 msgid ""
 "This is particularly useful for rendering jpegs and pngs of geometries "
@@ -1910,7 +2413,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1044
+#: reference_raster.xml:1440
 #, no-c-format
 msgid ""
 "Not yet capable of rendering complex geometry types such as curves, TINS, "
@@ -1918,19 +2421,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:1049
+#: reference_raster.xml:1445
 #, no-c-format
 msgid "Examples: Output geometries as PNG files"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1055
+#: reference_raster.xml:1451
 #, no-c-format
 msgid "black circle"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1058
+#: reference_raster.xml:1454
 #, no-c-format
 msgid ""
 "-- this will output a black circle taking up 150 x 150 pixels --\n"
@@ -1938,13 +2441,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1065
+#: reference_raster.xml:1461
 #, no-c-format
 msgid "example from buffer rendered with just PostGIS"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1069
+#: reference_raster.xml:1465
 #, no-c-format
 msgid ""
 "-- the bands map to RGB bands - the value (118,154,118) - teal  --\n"
@@ -1953,12 +2456,12 @@ msgid ""
 "                ST_Buffer(\n"
 "                        ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), "
 "10,'join=bevel'), \n"
-"                        200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY"
-"[118,154,118], ARRAY[0,0,0]));"
+"                        200,200,ARRAY['8BUI', '8BUI', '8BUI'], "
+"ARRAY[118,154,118], ARRAY[0,0,0]));"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1075
+#: reference_raster.xml:1471
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
@@ -1967,13 +2470,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1081
+#: reference_raster.xml:1477
 #, no-c-format
 msgid "ST_Band"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1082
+#: reference_raster.xml:1478
 #, no-c-format
 msgid ""
 "Returns one or more bands of an existing raster as a new raster. Useful for "
@@ -1981,35 +2484,49 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1086
+#: reference_raster.xml:1482
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = ARRAY[1]"
-"</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_Band</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
-"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>character </type> <parameter>delimiter=,</parameter></paramdef> </"
+"<paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = "
+"ARRAY[1]</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> </"
 "funcprototype> <funcprototype> <funcdef>raster <function>ST_Band</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
-"paramdef> </funcprototype>"
+"paramdef> <paramdef><type>text </type> <parameter>nbands</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>character </type> "
+"<parameter>delimiter=,</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1111
+#: reference_raster.xml:1507
 #, no-c-format
 msgid ""
-"Returns a single band of an existing raster as a new raster. Useful for "
+"Returns one or more bands of an existing raster as a new raster. Useful for "
 "building new rasters from existing rasters or export of only selected bands "
-"of a raster. If no band is specified, band 1 is assumed. Used as a helper "
-"function in various functions such as for deleting a band."
+"of a raster or rearranging the order of bands in a raster. If no band is "
+"specified, band 1 is assumed. Used as a helper function in various functions "
+"such as for deleting a band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1509
+#, no-c-format
+msgid ""
+"For the <code>nbands</code> as text variant of function, the default "
+"delimiter is <code>,</code> which means you can ask for <code>'1,2,3'</code> "
+"and if you wanted to use a different delimeter you would do "
+"<code>ST_Band(rast, '1 at 2@3', '@')</code>. For asking for multiple bands, we "
+"strongly suggest you use the array form of this function e.g. "
+"<code>ST_Band(rast, '{1,2,3}'::int[]);</code> since the <code>text</code> "
+"list of bands form may be removed in future versions of PostGIS."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1120
+#: reference_raster.xml:1517
 #, no-c-format
 msgid ""
 "-- Make 2 new rasters: 1 containing band 1 of dummy, second containing band "
@@ -2028,11 +2545,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1122
+#: reference_raster.xml:1519
 #, no-c-format
 msgid ""
-"-- Return bands 2 and 3. Use text to define bands\n"
-"SELECT ST_NumBands(ST_Band(rast, '2,3')) As num_bands\n"
+"-- Return bands 2 and 3. Using array cast syntax\n"
+"SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands\n"
 "    FROM dummy_rast WHERE rid=2;\n"
 "    \n"
 "num_bands\n"
@@ -2046,25 +2563,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1132
+#: reference_raster.xml:1529
 #, no-c-format
 msgid "original (column rast)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1141
+#: reference_raster.xml:1538
 #, no-c-format
 msgid "dupe_band"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1150
+#: reference_raster.xml:1547
 #, no-c-format
 msgid "sing_band"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1158
+#: reference_raster.xml:1555
 #, no-c-format
 msgid ""
 "--Make a new raster with 2nd band of original and 1st band repeated twice,\n"
@@ -2076,20 +2593,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1164
+#: reference_raster.xml:1561
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_NumBands\"/>, , <xref linkend=\"RT_ST_Reclass\"/>"
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, "
+"<xref linkend=\"RT_reference\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1169
+#: reference_raster.xml:1567
 #, no-c-format
 msgid "ST_MakeEmptyRaster"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1170
+#: reference_raster.xml:1568
 #, no-c-format
 msgid ""
 "Returns an empty raster (having no bands) of given dimensions (width & "
@@ -2100,7 +2618,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1174
+#: reference_raster.xml:1572
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</function></"
@@ -2126,7 +2644,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1204
+#: reference_raster.xml:1602
 #, no-c-format
 msgid ""
 "Returns an empty raster (having no band) of given dimensions (width & "
@@ -2136,7 +2654,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1207
+#: reference_raster.xml:1605
 #, no-c-format
 msgid ""
 "The last version use a single parameter to specify the pixel size "
@@ -2145,7 +2663,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1209
+#: reference_raster.xml:1607
 #, no-c-format
 msgid ""
 "If an existing raster is passed in, it returns a new raster with the same "
@@ -2153,7 +2671,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1211
+#: reference_raster.xml:1609
 #, no-c-format
 msgid ""
 "If no srid is specified it defaults to 0. After you create an empty raster "
@@ -2163,7 +2681,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1218
+#: reference_raster.xml:1616
 #, no-c-format
 msgid ""
 "INSERT INTO dummy_rast(rid,rast)\n"
@@ -2193,7 +2711,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1224
+#: reference_raster.xml:1622
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_MetaData\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, "
@@ -2201,90 +2719,388 @@ msgid ""
 "linkend=\"RT_ST_SkewX\"/>, , <xref linkend=\"RT_ST_SkewY\"/>"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:1229
-#, no-c-format
-msgid "Raster Accessors"
-msgstr ""
-
 #. Tag: refname
-#: reference_raster.xml:1233
+#: reference_raster.xml:1629
 #, no-c-format
-msgid "ST_GeoReference"
+msgid "ST_Tile"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1234
+#: reference_raster.xml:1630
 #, no-c-format
 msgid ""
-"Returns the georeference meta data in GDAL or ESRI format as commonly seen "
-"in a world file. Default is GDAL."
+"<refpurpose>Returns a set of rasters resulting from the split of the input "
+"raster based upon the desired dimensions of the output rasters.</refpurpose>"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:1239
+#. Tag: funcsynopsis
+#: reference_raster.xml:1634
 #, no-c-format
 msgid ""
-"<funcdef>text <function>ST_GeoReference</function></funcdef> "
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
-"parameter></paramdef>"
+"<paramdef><type>int[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof raster "
+"<function>ST_Tile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>padwithnodata=FALSE</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1250
+#: reference_raster.xml:1670
 #, no-c-format
 msgid ""
-"Returns the georeference meta data including carriage return in GDAL or ESRI "
-"format as commonly seen in a <ulink url=\"http://en.wikipedia.org/wiki/"
-"World_file\">world file</ulink>. Default is GDAL if no type specified. type "
-"is string 'GDAL' or 'ESRI'."
+"<para>Returns a set of rasters resulting from the split of the input raster "
+"based upon the desired dimensions of the output rasters.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1252 reference_raster.xml:3257
+#: reference_raster.xml:1674
 #, no-c-format
-msgid "Difference between format representations is as follows:"
+msgid ""
+"If <varname>padwithnodata</varname> = FALSE, edge tiles on the right and "
+"bottom sides of the raster may have different dimensions than the rest of "
+"the tiles. If <varname>padwithnodata</varname> = TRUE, all tiles will have "
+"the same dimensions with the possibilty that edge tiles being padded with "
+"NODATA values. If raster band(s) do not have NODATA value(s) specified, one "
+"can be specified by setting <varname>nodataval</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1253 reference_raster.xml:3258
+#: reference_raster.xml:1679
 #, no-c-format
-msgid "<varname>GDAL</varname>:"
+msgid ""
+"If a specified band of the input raster is out-of-db, the corresponding band "
+"in the output rasters will also be out-of-db."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1254
+#: reference_raster.xml:1690
 #, no-c-format
 msgid ""
-"scalex \n"
-"skewy \n"
-"skewx\n"
-"scaley\n"
-"upperleftx\n"
-"upperlefty"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:1255 reference_raster.xml:3260
-#, no-c-format
-msgid "<varname>ESRI</varname>:"
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{1,1,1},{1,1,1},{1,1,1}}\")\n"
+" (2,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{2,2,2},{2,2,2},{2,2,2}}\")\n"
+" (2,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{3,3,3},{3,3,3},{3,3,3}}\")\n"
+" (2,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{4,4,4},{4,4,4},{4,4,4}}\")\n"
+" (2,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{5,5,5},{5,5,5},{5,5,5}}\")\n"
+" (2,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{6,6,6},{6,6,6},{6,6,6}}\")\n"
+" (2,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{7,7,7},{7,7,7},{7,7,7}}\")\n"
+" (2,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{8,8,8},{8,8,8},{8,8,8}}\")\n"
+" (2,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{9,9,9},{9,9,9},{9,9,9}}\")\n"
+" (2,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(18 rows)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1256
+#: reference_raster.xml:1692
 #, no-c-format
 msgid ""
-"scalex \n"
-"skewy \n"
-"skewx\n"
-"scaley\n"
-"upperleftx + scalex*0.5\n"
-"upperlefty + scaley*0.5"
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, 2) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(9 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1698
+#, no-c-format
+msgid ", <xref linkend=\"RT_Retile\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1708
+#, no-c-format
+msgid "ST_Retile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1709
+#, no-c-format
+msgid ""
+"Return a set of configured tiles from an arbitrarily tiled raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1717
+#, no-c-format
+msgid ""
+"<funcdef>SETOF raster <function>ST_Retile</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>ext</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfx</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfy</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>tw</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>th</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algo='NearestNeighbor'</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1735
+#, no-c-format
+msgid ""
+"Return a set of tiles having the specified scale (<varname>sfx</varname>, "
+"<varname>sfy</varname>) and max size (<varname>tw</varname>, <varname>th</"
+"varname>) and covering the specified extent (<varname>ext</varname>) with "
+"data coming from the specified raster coverage (<varname>tab</varname>, "
+"<varname>col</varname>)."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1759
+#, no-c-format
+msgid "ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1760
+#, no-c-format
+msgid "Returns a raster from a supported GDAL raster file."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1765
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_FromGDALRaster</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>gdaldata</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=NULL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1777
+#, no-c-format
+msgid ""
+"Returns a raster from a supported GDAL raster file. <varname>gdaldata</"
+"varname> is of type bytea and should be the contents of the GDAL raster file."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1781
+#, no-c-format
+msgid ""
+"If <varname>srid</varname> is NULL, the function will try to autmatically "
+"assign the SRID from the GDAL raster. If <varname>srid</varname> is "
+"provided, the value provided will override any automatically assigned SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT "
+"ST_AsPNG(ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, "
+"0.1, -0.1, 0, 0, 4326), 1, '8BUI', 1, 0), 2, '8BUI', 2, 0), 3, '8BUI', 3, "
+"0)) AS png\n"
+"),\n"
+"bar AS (\n"
+"        SELECT 1 AS rid, ST_FromGDALRaster(png) AS rast FROM foo\n"
+"        UNION ALL\n"
+"        SELECT 2 AS rid, ST_FromGDALRaster(png, 3310) AS rast FROM foo\n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        ST_Metadata(rast) AS metadata,\n"
+"        ST_SummaryStats(rast, 1) AS stats1,\n"
+"        ST_SummaryStats(rast, 2) AS stats2,\n"
+"        ST_SummaryStats(rast, 3) AS stats3\n"
+"FROM bar\n"
+"ORDER BY rid;\n"
+"\n"
+" rid |         metadata          |    stats1     |    stats2     |     "
+"stats3     \n"
+"-----+---------------------------+---------------+---------------"
+"+----------------\n"
+"   1 | (0,0,2,2,1,-1,0,0,0,3)    | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"   2 | (0,0,2,2,1,-1,0,0,3310,3) | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1806
+#, no-c-format
+msgid "Raster Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1810
+#, no-c-format
+msgid "ST_GeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1811
+#, no-c-format
+msgid ""
+"Returns the georeference meta data in GDAL or ESRI format as commonly seen "
+"in a world file. Default is GDAL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1816
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoReference</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1827
+#, no-c-format
+msgid ""
+"Returns the georeference meta data including carriage return in GDAL or ESRI "
+"format as commonly seen in a <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">world file</ulink>. Default is GDAL if no type specified. type "
+"is string 'GDAL' or 'ESRI'."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1829 reference_raster.xml:4065
+#, no-c-format
+msgid "Difference between format representations is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1830 reference_raster.xml:4066
+#, no-c-format
+msgid "<varname>GDAL</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1831
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx\n"
+"upperlefty"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1832 reference_raster.xml:4068
+#, no-c-format
+msgid "<varname>ESRI</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1833
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx + scalex*0.5\n"
+"upperlefty + scaley*0.5"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1262
+#: reference_raster.xml:1839
 #, no-c-format
 msgid ""
 "SELECT ST_GeoReference(rast, 'ESRI') As esri_ref, ST_GeoReference(rast, "
@@ -2302,25 +3118,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1267
+#: reference_raster.xml:1844
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1273
+#: reference_raster.xml:1850
 #, no-c-format
 msgid "ST_Height"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1274
+#: reference_raster.xml:1851
 #, no-c-format
 msgid "Returns the height of the raster in pixels."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1279
+#: reference_raster.xml:1856
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_Height</function></funcdef> "
@@ -2328,13 +3144,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1289
+#: reference_raster.xml:1866
 #, no-c-format
 msgid "Returns the height of the raster."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1295
+#: reference_raster.xml:1872
 #, no-c-format
 msgid ""
 "SELECT rid, ST_Height(rast) As rastheight\n"
@@ -2347,13 +3163,125 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1307
+#: reference_raster.xml:1884
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1885
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1890
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1900
+#, no-c-format
+msgid ""
+"<para>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1908
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"f          |\n"
+"                       \n"
+"                        \n"
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"t          |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1920
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1922
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the raster takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1927
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1937
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the raster takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1938
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1939
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables. "
+"pg_column_size might return lower because it returns the compressed size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1941
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1951
+#, no-c-format
+msgid ""
+"SELECT ST_MemSize(ST_AsRaster(ST_Buffer(ST_Point(1,5),10,1000),150, 150, "
+"'8BUI')) As rast_mem;\n"
+"                \n"
+"                rast_mem\n"
+"                --------\n"
+"                22568"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1964
 #, no-c-format
 msgid "ST_MetaData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1308
+#: reference_raster.xml:1965
 #, no-c-format
 msgid ""
 "Returns basic meta data about a raster object such as pixel size, rotation "
@@ -2361,7 +3289,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1313
+#: reference_raster.xml:1970
 #, no-c-format
 msgid ""
 "<funcdef>record <function>ST_MetaData</function></funcdef> "
@@ -2369,7 +3297,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1323
+#: reference_raster.xml:1980
 #, no-c-format
 msgid ""
 "Returns basic meta data about a raster object such as pixel size, rotation "
@@ -2378,7 +3306,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1330
+#: reference_raster.xml:1987
 #, no-c-format
 msgid ""
 "SELECT rid, (foo.md).*  \n"
@@ -2396,26 +3324,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1336 reference_raster.xml:3901
+#: reference_raster.xml:1993 reference_raster.xml:4844
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_NumBands\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1342
+#: reference_raster.xml:1999
 #, no-c-format
 msgid "ST_NumBands"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1343
+#: reference_raster.xml:2000
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the number of bands in the raster object.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1348
+#: reference_raster.xml:2005
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumBands</function></funcdef> "
@@ -2423,13 +3351,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1358
+#: reference_raster.xml:2015
 #, no-c-format
 msgid "<para>Returns the number of bands in the raster object.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1364
+#: reference_raster.xml:2021
 #, no-c-format
 msgid ""
 "SELECT rid, ST_NumBands(rast) As numbands\n"
@@ -2442,20 +3370,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1376
+#: reference_raster.xml:2033
 #, no-c-format
 msgid "ST_PixelHeight"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1377
+#: reference_raster.xml:2034
 #, no-c-format
 msgid ""
 "Returns the pixel height in geometric units of the spatial reference system."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1382
+#: reference_raster.xml:2039
 #, no-c-format
 msgid ""
 "<funcdef>double precision <function>ST_PixelHeight</function></funcdef> "
@@ -2463,7 +3391,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1392
+#: reference_raster.xml:2049
 #, no-c-format
 msgid ""
 "Returns the height of a pixel in geometric units of the spatial reference "
@@ -2472,7 +3400,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1394
+#: reference_raster.xml:2051
 #, no-c-format
 msgid ""
 "Refer to <xref linkend=\"RT_ST_PixelWidth\"/> for a diagrammatic "
@@ -2480,13 +3408,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:1398 reference_raster.xml:1453
+#: reference_raster.xml:2055 reference_raster.xml:2115
 #, no-c-format
 msgid "Examples: Rasters with no skew"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1400
+#: reference_raster.xml:2057
 #, no-c-format
 msgid ""
 "SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
@@ -2502,13 +3430,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:1405 reference_raster.xml:1460
+#: reference_raster.xml:2062 reference_raster.xml:2122
 #, no-c-format
 msgid "Examples: Rasters with skew different than 0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1407
+#: reference_raster.xml:2064
 #, no-c-format
 msgid ""
 "SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
@@ -2525,8 +3453,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1414 reference_raster.xml:1469
-#: reference_raster.xml:3307
+#: reference_raster.xml:2071 reference_raster.xml:2131
+#: reference_raster.xml:4124
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
@@ -2534,20 +3462,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1421
+#: reference_raster.xml:2083
 #, no-c-format
 msgid "ST_PixelWidth"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1422
+#: reference_raster.xml:2084
 #, no-c-format
 msgid ""
 "Returns the pixel width in geometric units of the spatial reference system."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1427
+#: reference_raster.xml:2089
 #, no-c-format
 msgid ""
 "<funcdef>double precision <function>ST_PixelWidth</function></funcdef> "
@@ -2555,7 +3483,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1437
+#: reference_raster.xml:2099
 #, no-c-format
 msgid ""
 "Returns the width of a pixel in geometric units of the spatial reference "
@@ -2564,25 +3492,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1439
+#: reference_raster.xml:2101
 #, no-c-format
 msgid "The following diagram demonstrates the relationship:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1446
+#: reference_raster.xml:2108
 #, no-c-format
 msgid "Pixel Width: Pixel size in the i direction"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1446
+#: reference_raster.xml:2108
 #, no-c-format
 msgid "Pixel Height: Pixel size in the j direction"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1455
+#: reference_raster.xml:2117
 #, no-c-format
 msgid ""
 "SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
@@ -2598,7 +3526,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1462
+#: reference_raster.xml:2124
 #, no-c-format
 msgid ""
 "SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
@@ -2616,13 +3544,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1475
+#: reference_raster.xml:2137
 #, no-c-format
 msgid "ST_ScaleX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1476
+#: reference_raster.xml:2138
 #, no-c-format
 msgid ""
 "Returns the X component of the pixel width in units of coordinate reference "
@@ -2630,7 +3558,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1481
+#: reference_raster.xml:2143
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_ScaleX</function></funcdef> "
@@ -2638,7 +3566,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1491
+#: reference_raster.xml:2153
 #, no-c-format
 msgid ""
 "Returns the X component of the pixel width in units of coordinate reference "
@@ -2647,13 +3575,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1493
+#: reference_raster.xml:2155
 #, no-c-format
 msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeX."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1499
+#: reference_raster.xml:2161
 #, no-c-format
 msgid ""
 "SELECT rid, ST_ScaleX(rast) As rastpixwidth\n"
@@ -2666,13 +3594,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1512
+#: reference_raster.xml:2174
 #, no-c-format
 msgid "ST_ScaleY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1513
+#: reference_raster.xml:2175
 #, no-c-format
 msgid ""
 "Returns the Y component of the pixel height in units of coordinate reference "
@@ -2680,7 +3608,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1518
+#: reference_raster.xml:2180
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_ScaleY</function></funcdef> "
@@ -2688,7 +3616,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1528
+#: reference_raster.xml:2190
 #, no-c-format
 msgid ""
 "Returns the Y component of the pixel height in units of coordinate reference "
@@ -2697,13 +3625,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1531
+#: reference_raster.xml:2193
 #, no-c-format
 msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeY."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1537
+#: reference_raster.xml:2199
 #, no-c-format
 msgid ""
 "SELECT rid, ST_ScaleY(rast) As rastpixheight\n"
@@ -2716,13 +3644,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1550
+#: reference_raster.xml:2212
 #, no-c-format
-msgid "ST_Raster2WorldCoord"
+msgid "ST_RasterToWorldCoord"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1551
+#: reference_raster.xml:2213
 #, no-c-format
 msgid ""
 "Returns the raster's upper left corner as geometric X and Y (longitude and "
@@ -2730,17 +3658,17 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1556
+#: reference_raster.xml:2218
 #, no-c-format
 msgid ""
-"<funcdef>record <function>ST_Raster2WorldCoord</function></funcdef> "
+"<funcdef>record <function>ST_RasterToWorldCoord</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>yrow</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1568
+#: reference_raster.xml:2230
 #, no-c-format
 msgid ""
 "Returns the upper left corner as geometric X and Y (longitude and latitude) "
@@ -2752,32 +3680,15 @@ msgid ""
 "bounds."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:1573 reference_raster.xml:1979
-#: reference_raster.xml:2558 reference_raster.xml:2603
-#: reference_raster.xml:2646 reference_raster.xml:2691
-#: reference_raster.xml:2836 reference_raster.xml:2933
-#: reference_raster.xml:3102 reference_raster.xml:3221
-#: reference_raster.xml:5578 reference_raster.xml:6858
-#: reference_raster.xml:6907 reference_raster.xml:7136
-#: reference_raster.xml:7223 reference_raster.xml:7304
-#: reference_raster.xml:7385 reference_raster.xml:7466
-#: reference_raster.xml:7679 reference_raster.xml:7759
-#: reference_raster.xml:7956 reference_raster.xml:8051
-#: reference_raster.xml:8144
-#, no-c-format
-msgid "Availability: 2.1.0"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_raster.xml:1580
+#: reference_raster.xml:2242
 #, no-c-format
 msgid ""
 "-- non-skewed raster\n"
 "SELECT\n"
 "        rid,\n"
-"        (ST_Raster2WorldCoord(rast,1, 1)).*,\n"
-"        (ST_Raster2WorldCoord(rast,2, 2)).*\n"
+"        (ST_RasterToWorldCoord(rast,1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast,2, 2)).*\n"
 "FROM dummy_rast\n"
 "\n"
 " rid | longitude  | latitude | longitude |  latitude  \n"
@@ -2787,14 +3698,14 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1582
+#: reference_raster.xml:2244
 #, no-c-format
 msgid ""
 "-- skewed raster\n"
 "SELECT\n"
 "        rid,\n"
-"        (ST_Raster2WorldCoord(rast, 1, 1)).*,\n"
-"        (ST_Raster2WorldCoord(rast, 2, 3)).*\n"
+"        (ST_RasterToWorldCoord(rast, 1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast, 2, 3)).*\n"
 "FROM (\n"
 "        SELECT\n"
 "                rid,\n"
@@ -2809,21 +3720,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1589
+#: reference_raster.xml:2251
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SetSkew"
-"\"/>"
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1599
+#: reference_raster.xml:2261
 #, no-c-format
-msgid "ST_Raster2WorldCoordX"
+msgid "ST_RasterToWorldCoordX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1600
+#: reference_raster.xml:2262
 #, no-c-format
 msgid ""
 "Returns the geometric X coordinate upper left of a raster, column and row. "
@@ -2831,21 +3742,21 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1605
+#: reference_raster.xml:2267
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordX</function></"
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordX</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
 "paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
-"<function>ST_Raster2WorldCoordX</function></funcdef> <paramdef><type>raster "
+"<function>ST_RasterToWorldCoordX</function></funcdef> <paramdef><type>raster "
 "</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
 "type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
 "type> <parameter>yrow</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1623
+#: reference_raster.xml:2285
 #, no-c-format
 msgid ""
 "Returns the upper left X coordinate of a raster column row in geometric "
@@ -2857,7 +3768,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1628
+#: reference_raster.xml:2290
 #, no-c-format
 msgid ""
 "For non-skewed rasters, providing the X column is sufficient. For skewed "
@@ -2866,14 +3777,20 @@ msgid ""
 "column for a skewed raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2294
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordX"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:1636
+#: reference_raster.xml:2301
 #, no-c-format
 msgid ""
 "-- non-skewed raster providing column is "
 "sufficient                                        \n"
-"SELECT rid, ST_Raster2WorldCoordX(rast,1) As x1coord, \n"
-"        ST_Raster2WorldCoordX(rast,2) As x2coord,\n"
+"SELECT rid, ST_RasterToWorldCoordX(rast,1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast,2) As x2coord,\n"
 "        ST_ScaleX(rast) As pixelx\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -2884,12 +3801,12 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1638
+#: reference_raster.xml:2303
 #, no-c-format
 msgid ""
 "-- for fun lets skew it                                \n"
-"SELECT rid, ST_Raster2WorldCoordX(rast, 1, 1) As x1coord, \n"
-"        ST_Raster2WorldCoordX(rast, 2, 3) As x2coord,\n"
+"SELECT rid, ST_RasterToWorldCoordX(rast, 1, 1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast, 2, 3) As x2coord,\n"
 "        ST_ScaleX(rast) As pixelx\n"
 "FROM (SELECT rid, ST_SetSkew(rast, 100.5, 0) As rast FROM dummy_rast) As "
 "foo;\n"
@@ -2901,21 +3818,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1645
+#: reference_raster.xml:2310
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SetSkew"
-"\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1651
+#: reference_raster.xml:2316
 #, no-c-format
-msgid "ST_Raster2WorldCoordY"
+msgid "ST_RasterToWorldCoordY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1652
+#: reference_raster.xml:2317
 #, no-c-format
 msgid ""
 "Returns the geometric Y coordinate upper left corner of a raster, column and "
@@ -2923,21 +3840,21 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1657
+#: reference_raster.xml:2322
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordY</function></"
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordY</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
 "paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
-"<function>ST_Raster2WorldCoordY</function></funcdef> <paramdef><type>raster "
+"<function>ST_RasterToWorldCoordY</function></funcdef> <paramdef><type>raster "
 "</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
 "type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
 "type> <parameter>yrow</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1675
+#: reference_raster.xml:2340
 #, no-c-format
 msgid ""
 "Returns the upper left Y coordinate of a raster column row in geometric "
@@ -2949,7 +3866,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1680
+#: reference_raster.xml:2345
 #, no-c-format
 msgid ""
 "For non-skewed rasters, providing the Y column is sufficient. For skewed "
@@ -2958,14 +3875,20 @@ msgid ""
 "row for a skewed raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2349
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordY"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:1688
+#: reference_raster.xml:2355
 #, no-c-format
 msgid ""
 "-- non-skewed raster providing row is "
 "sufficient                                        \n"
-"SELECT rid, ST_Raster2WorldCoordY(rast,1) As y1coord, \n"
-"        ST_Raster2WorldCoordY(rast,3) As y2coord,\n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,3) As y2coord,\n"
 "        ST_ScaleY(rast) As pixely\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -2976,12 +3899,12 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1690
+#: reference_raster.xml:2357
 #, no-c-format
 msgid ""
 "-- for fun lets skew it                                \n"
-"SELECT rid, ST_Raster2WorldCoordY(rast,1,1) As y1coord, \n"
-"        ST_Raster2WorldCoordY(rast,2,3) As y2coord,\n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,2,3) As y2coord,\n"
 "        ST_ScaleY(rast) As pixely\n"
 "FROM (SELECT rid, ST_SetSkew(rast,0,100.5) As rast FROM dummy_rast) As foo;\n"
 "\n"
@@ -2992,27 +3915,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1697
+#: reference_raster.xml:2364
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Raster2WorldCoordX\"/>, <xref linkend=\"RT_ST_SetSkew"
-"\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+", <xref linkend=\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1703
+#: reference_raster.xml:2370
 #, no-c-format
 msgid "ST_Rotation"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1704
+#: reference_raster.xml:2371
 #, no-c-format
 msgid "Returns the rotation of the raster in radian."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1709
+#: reference_raster.xml:2376
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_Rotation</function></funcdef> "
@@ -3020,7 +3943,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1719
+#: reference_raster.xml:2386
 #, no-c-format
 msgid ""
 "Returns the uniform rotation of the raster in radian. If a raster does not "
@@ -3029,7 +3952,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1726
+#: reference_raster.xml:2393
 #, no-c-format
 msgid ""
 "SELECT rid, ST_Rotation(ST_SetScale(ST_SetSkew(rast, sqrt(2)), sqrt(2))) as "
@@ -3042,25 +3965,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1732
+#: reference_raster.xml:2399
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SetScale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1738
+#: reference_raster.xml:2405
 #, no-c-format
 msgid "ST_SkewX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1739
+#: reference_raster.xml:2406
 #, no-c-format
 msgid "Returns the georeference X skew (or rotation parameter)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1744
+#: reference_raster.xml:2411
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_SkewX</function></funcdef> "
@@ -3068,7 +3991,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1754
+#: reference_raster.xml:2421
 #, no-c-format
 msgid ""
 "Returns the georeference X skew (or rotation parameter). Refer to <ulink url="
@@ -3077,7 +4000,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1761 reference_raster.xml:1797
+#: reference_raster.xml:2428 reference_raster.xml:2464
 #, no-c-format
 msgid ""
 "SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
@@ -3102,25 +4025,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1768
+#: reference_raster.xml:2435
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1774
+#: reference_raster.xml:2441
 #, no-c-format
 msgid "ST_SkewY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1775
+#: reference_raster.xml:2442
 #, no-c-format
 msgid "Returns the georeference Y skew (or rotation parameter)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1780
+#: reference_raster.xml:2447
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_SkewY</function></funcdef> "
@@ -3128,7 +4051,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1790
+#: reference_raster.xml:2457
 #, no-c-format
 msgid ""
 "Returns the georeference Y skew (or rotation parameter). Refer to <ulink url="
@@ -3137,19 +4060,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1804
+#: reference_raster.xml:2471
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1810
+#: reference_raster.xml:2477
 #, no-c-format
 msgid "ST_SRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1811
+#: reference_raster.xml:2478
 #, no-c-format
 msgid ""
 "Returns the spatial reference identifier of the raster as defined in "
@@ -3157,7 +4080,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1816
+#: reference_raster.xml:2483
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_SRID</function></funcdef> "
@@ -3165,7 +4088,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1826
+#: reference_raster.xml:2493
 #, no-c-format
 msgid ""
 "Returns the spatial reference identifier of the raster object as defined in "
@@ -3173,7 +4096,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1827
+#: reference_raster.xml:2494
 #, no-c-format
 msgid ""
 "From PostGIS 2.0+ the srid of a non-georeferenced raster/geometry is 0 "
@@ -3181,7 +4104,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1833
+#: reference_raster.xml:2500
 #, no-c-format
 msgid ""
 "SELECT ST_SRID(rast) As srid\n"
@@ -3193,13 +4116,76 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1845
+#: reference_raster.xml:2512
+#, no-c-format
+msgid "ST_Summary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2513
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the raster.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2518
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2528
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the raster.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2535
+#, no-c-format
+msgid ""
+"SELECT ST_Summary(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, "
+"0, 0)\n"
+"                                , 1, '8BUI', 1, 0\n"
+"                        )\n"
+"                        , 2, '32BF', 0, -9999\n"
+"                )\n"
+"                , 3, '16BSI', 0, NULL\n"
+"        )\n"
+");\n"
+"\n"
+"                            st_summary                            \n"
+"------------------------------------------------------------------\n"
+" Raster of 10x10 pixels has 3 bands and extent of BOX(0 -10,10 0)+\n"
+"     band 1 of pixtype 8BUI is in-db with NODATA value of 0      +\n"
+"     band 2 of pixtype 32BF is in-db with NODATA value of -9999  +\n"
+"     band 3 of pixtype 16BSI is in-db with no NODATA value\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2540
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandMetaData\"/>, <xref linkend=\"ST_Summary\"/> "
+"<xref linkend=\"ST_Extent\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2551
 #, no-c-format
 msgid "ST_UpperLeftX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1846
+#: reference_raster.xml:2552
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the upper left X coordinate of raster in projected "
@@ -3207,7 +4193,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1851
+#: reference_raster.xml:2557
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_UpperLeftX</function></funcdef> "
@@ -3215,7 +4201,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1861
+#: reference_raster.xml:2567
 #, no-c-format
 msgid ""
 "<para>Returns the upper left X coordinate of raster in projected spatial ref."
@@ -3223,7 +4209,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1867
+#: reference_raster.xml:2573
 #, no-c-format
 msgid ""
 "SELECt rid, ST_UpperLeftX(rast) As ulx\n"
@@ -3236,19 +4222,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1873 reference_raster.xml:1907
+#: reference_raster.xml:2579 reference_raster.xml:2613
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_Box3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1879
+#: reference_raster.xml:2585
 #, no-c-format
 msgid "ST_UpperLeftY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1880
+#: reference_raster.xml:2586
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the upper left Y coordinate of raster in projected "
@@ -3256,7 +4242,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1885
+#: reference_raster.xml:2591
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_UpperLeftY</function></funcdef> "
@@ -3264,7 +4250,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1895
+#: reference_raster.xml:2601
 #, no-c-format
 msgid ""
 "<para>Returns the upper left Y coordinate of raster in projected spatial ref."
@@ -3272,7 +4258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1901
+#: reference_raster.xml:2607
 #, no-c-format
 msgid ""
 "SELECT rid, ST_UpperLeftY(rast) As uly\n"
@@ -3285,19 +4271,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1913
+#: reference_raster.xml:2619
 #, no-c-format
 msgid "ST_Width"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1914
+#: reference_raster.xml:2620
 #, no-c-format
 msgid "<refpurpose>Returns the width of the raster in pixels.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1919
+#: reference_raster.xml:2625
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_Width</function></funcdef> "
@@ -3305,13 +4291,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1929
+#: reference_raster.xml:2635
 #, no-c-format
 msgid "<para>Returns the width of the raster in pixels.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1935
+#: reference_raster.xml:2641
 #, no-c-format
 msgid ""
 "SELECT ST_Width(rast) As rastwidth\n"
@@ -3323,13 +4309,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1949
+#: reference_raster.xml:2655
 #, no-c-format
-msgid "ST_World2RasterCoord"
+msgid "ST_WorldToRasterCoord"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1950
+#: reference_raster.xml:2656
 #, no-c-format
 msgid ""
 "Returns the upper left corner as column and row given geometric X and Y "
@@ -3338,22 +4324,22 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1954
+#: reference_raster.xml:2660
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoord</function></"
+"<funcprototype> <funcdef>record <function>ST_WorldToRasterCoord</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
 "paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
-"<function>ST_World2RasterCoord</function></funcdef> <paramdef><type>raster </"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"paramdef> </funcprototype> <funcprototype> <funcdef>record "
+"<function>ST_WorldToRasterCoord</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
 "precision </type> <parameter>longitude</parameter></paramdef> "
 "<paramdef><type>double precision </type> <parameter>latitude</parameter></"
 "paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1973
+#: reference_raster.xml:2679
 #, no-c-format
 msgid ""
 "Returns the upper left corner as column and row given geometric X and Y "
@@ -3364,13 +4350,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1986
+#: reference_raster.xml:2692
 #, no-c-format
 msgid ""
 "SELECT\n"
 "        rid,\n"
-"        (ST_World2RasterCoord(rast,3427927.8,20.5)).*,\n"
-"        (ST_World2RasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',"
+"        (ST_WorldToRasterCoord(rast,3427927.8,20.5)).*,\n"
+"        (ST_WorldToRasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',"
 "ST_SRID(rast)))).*\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -3381,22 +4367,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1992
+#: reference_raster.xml:2698
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_World2RasterCoordY\"/>, <xref linkend="
-"\"RT_ST_Raster2WorldCoordX\"/>, <xref linkend=\"RT_ST_Raster2WorldCoordY\"/"
+", <xref linkend=\"RT_ST_WorldToRasterCoordY\"/>, <xref linkend="
+"\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend=\"RT_ST_RasterToWorldCoordY\"/"
 ">, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2004
+#: reference_raster.xml:2710
 #, no-c-format
-msgid "ST_World2RasterCoordX"
+msgid "ST_WorldToRasterCoordX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2005
+#: reference_raster.xml:2711
 #, no-c-format
 msgid ""
 "Returns the column in the raster of the point geometry (pt) or a X and Y "
@@ -3405,25 +4391,25 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2010
+#: reference_raster.xml:2716
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordX</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
-"<function>ST_World2RasterCoordX</function></funcdef> <paramdef><type>raster "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordX</function></funcdef> <paramdef><type>raster "
 "</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
 "precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordX</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>double precision </type> <parameter>xw</"
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
 "parameter></paramdef> <paramdef><type>double precision </type> "
-"<parameter>yw</parameter></paramdef> </funcprototype>"
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2035
+#: reference_raster.xml:2741
 #, no-c-format
 msgid ""
 "Returns the column in the raster of the point geometry (pt) or a X and Y "
@@ -3433,13 +4419,20 @@ msgid ""
 "of the raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2743
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordX"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2042
+#: reference_raster.xml:2749
 #, no-c-format
 msgid ""
-"SELECT rid, ST_World2RasterCoordX(rast,3427927.8) As xcoord, \n"
-"                ST_World2RasterCoordX(rast,3427927.8,20.5) As xcoord_xwyw, \n"
-"                ST_World2RasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 "
+"SELECT rid, ST_WorldToRasterCoordX(rast,3427927.8) As xcoord, \n"
+"                ST_WorldToRasterCoordX(rast,3427927.8,20.5) As "
+"xcoord_xwyw, \n"
+"                ST_WorldToRasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 "
 "20.5)',ST_SRID(rast))) As ptxcoord\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -3450,21 +4443,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2048 reference_raster.xml:2102
+#: reference_raster.xml:2755 reference_raster.xml:2810
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SRID\"/"
-">"
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SRID"
+"\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2058
+#: reference_raster.xml:2765
 #, no-c-format
-msgid "ST_World2RasterCoordY"
+msgid "ST_WorldToRasterCoordY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2059
+#: reference_raster.xml:2766
 #, no-c-format
 msgid ""
 "Returns the row in the raster of the point geometry (pt) or a X and Y world "
@@ -3472,25 +4465,25 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2064
+#: reference_raster.xml:2771
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordY</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
-"<function>ST_World2RasterCoordY</function></funcdef> <paramdef><type>raster "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordY</function></funcdef> <paramdef><type>raster "
 "</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
 "precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordY</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>double precision </type> <parameter>xw</"
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
 "parameter></paramdef> <paramdef><type>double precision </type> "
-"<parameter>yw</parameter></paramdef> </funcprototype>"
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2089
+#: reference_raster.xml:2796
 #, no-c-format
 msgid ""
 "Returns the row in the raster of the point geometry (pt) or a X and Y world "
@@ -3500,13 +4493,20 @@ msgid ""
 "of the raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2798
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordY"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2096
+#: reference_raster.xml:2804
 #, no-c-format
 msgid ""
-"SELECT rid, ST_World2RasterCoordY(rast,20.5) As ycoord, \n"
-"                ST_World2RasterCoordY(rast,3427927.8,20.5) As ycoord_xwyw, \n"
-"                ST_World2RasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 "
+"SELECT rid, ST_WorldToRasterCoordY(rast,20.5) As ycoord, \n"
+"                ST_WorldToRasterCoordY(rast,3427927.8,20.5) As "
+"ycoord_xwyw, \n"
+"                ST_WorldToRasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 "
 "20.5)',ST_SRID(rast))) As ptycoord\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -3516,66 +4516,20 @@ msgid ""
 "   2 | 115864471 |   115864471 | 115864471"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:2108
-#, no-c-format
-msgid "ST_IsEmpty"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:2109
-#, no-c-format
-msgid ""
-"<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). "
-"Otherwise, returns false.</refpurpose>"
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:2114
-#, no-c-format
-msgid ""
-"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:2124
-#, no-c-format
-msgid ""
-"<para>Returns true if the raster is empty (width = 0 and height = 0). "
-"Otherwise, returns false.</para>"
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:2132
-#, no-c-format
-msgid ""
-"SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
-"st_isempty |\n"
-"-----------+\n"
-"f          |\n"
-"                       \n"
-"                        \n"
-"SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
-"st_isempty |\n"
-"-----------+\n"
-"t          |"
-msgstr ""
-
 #. Tag: title
-#: reference_raster.xml:2144
+#: reference_raster.xml:2817
 #, no-c-format
 msgid "Raster Band Accessors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2147
+#: reference_raster.xml:2820
 #, no-c-format
 msgid "ST_BandMetaData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2148
+#: reference_raster.xml:2821
 #, no-c-format
 msgid ""
 "Returns basic meta data for a specific raster band. band num 1 is assumed if "
@@ -3583,7 +4537,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2153
+#: reference_raster.xml:2826
 #, no-c-format
 msgid ""
 "<funcdef>record <function>ST_BandMetaData</function></funcdef> "
@@ -3593,7 +4547,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2164
+#: reference_raster.xml:2837
 #, no-c-format
 msgid ""
 "Returns basic meta data about a raster band. Columns returned pixeltype | "
@@ -3601,19 +4555,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2168
+#: reference_raster.xml:2841
 #, no-c-format
 msgid "If raster contains no bands then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2173
+#: reference_raster.xml:2846
 #, no-c-format
 msgid "If band has no NODATA value, nodatavalue will be NULL."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2182
+#: reference_raster.xml:2855
 #, no-c-format
 msgid ""
 "SELECT rid, (foo.md).*  \n"
@@ -3626,19 +4580,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2188
+#: reference_raster.xml:2861
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2194
+#: reference_raster.xml:2867
 #, no-c-format
 msgid "ST_BandNoDataValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2195
+#: reference_raster.xml:2868
 #, no-c-format
 msgid ""
 "Returns the value in a given band that represents no data. If no band num 1 "
@@ -3646,7 +4600,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2200
+#: reference_raster.xml:2873
 #, no-c-format
 msgid ""
 "<funcdef>double precision <function>ST_BandNoDataValue</function></funcdef> "
@@ -3656,13 +4610,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2211 reference_raster.xml:2342
+#: reference_raster.xml:2884 reference_raster.xml:3012
 #, no-c-format
 msgid "Returns the value that represents no data for the band"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2217
+#: reference_raster.xml:2890
 #, no-c-format
 msgid ""
 "SELECT ST_BandNoDataValue(rast,1) As bnval1, \n"
@@ -3677,19 +4631,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2230
+#: reference_raster.xml:2903
 #, no-c-format
 msgid "ST_BandIsNoData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2231
+#: reference_raster.xml:2904
 #, no-c-format
 msgid "Returns true if the band is filled with only nodata values."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2235
+#: reference_raster.xml:2908
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
@@ -3704,7 +4658,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2252
+#: reference_raster.xml:2925
 #, no-c-format
 msgid ""
 "Returns true if the band is filled with only nodata values. Band 1 is "
@@ -3715,19 +4669,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2262
+#: reference_raster.xml:2935
 #, no-c-format
 msgid ""
 "If the flag is dirty (this is, the result is different using TRUE as last "
 "parameter and not using it) you should update the raster to set this flag to "
-"true, by using ST_SetBandIsNodata function, or ST_SetBandNodataValue "
-"function with TRUE as last argument. The loader (raster2pgsql.py) currently "
-"can not properly set the flag while loading raster data. See <xref linkend="
-"\"RT_ST_SetBandIsNoData\"/>."
+"true, by using ST_SetBandIsNodata(), or ST_SetBandNodataValue() with TRUE as "
+"last argument. See <xref linkend=\"RT_ST_SetBandIsNoData\"/>."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2275
+#: reference_raster.xml:2945
 #, no-c-format
 msgid ""
 "-- Create dummy table with one raster column\n"
@@ -3787,7 +4739,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2281
+#: reference_raster.xml:2951
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
@@ -3795,13 +4747,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2290
+#: reference_raster.xml:2960
 #, no-c-format
 msgid "ST_BandPath"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2291
+#: reference_raster.xml:2961
 #, no-c-format
 msgid ""
 "Returns system file path to a band stored in file system. If no bandnum "
@@ -3809,7 +4761,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2296
+#: reference_raster.xml:2966
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_BandPath</function></funcdef> "
@@ -3819,7 +4771,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2307
+#: reference_raster.xml:2977
 #, no-c-format
 msgid ""
 "Returns system file path to a band. Throws an error if called with an in db "
@@ -3827,19 +4779,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2313
+#: reference_raster.xml:2983
 #, no-c-format
 msgid "<!-- TODO: -->"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2325
+#: reference_raster.xml:2995
 #, no-c-format
 msgid "ST_BandPixelType"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2326
+#: reference_raster.xml:2996
 #, no-c-format
 msgid ""
 "Returns the type of pixel for given band. If no bandnum specified, 1 is "
@@ -3847,7 +4799,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2331
+#: reference_raster.xml:3001
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_BandPixelType</function></funcdef> "
@@ -3857,79 +4809,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2343
+#: reference_raster.xml:3013
 #, no-c-format
 msgid "There are 11 pixel types. Pixel Types supported are as follows:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2346
+#: reference_raster.xml:3016
 #, no-c-format
 msgid "1BB - 1-bit boolean"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2350
+#: reference_raster.xml:3020
 #, no-c-format
 msgid "2BUI - 2-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2354
+#: reference_raster.xml:3024
 #, no-c-format
 msgid "4BUI - 4-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2358
+#: reference_raster.xml:3028
 #, no-c-format
 msgid "8BSI - 8-bit signed integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2361
+#: reference_raster.xml:3031
 #, no-c-format
 msgid "8BUI - 8-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2364
+#: reference_raster.xml:3034
 #, no-c-format
 msgid "16BSI - 16-bit signed integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2367
+#: reference_raster.xml:3037
 #, no-c-format
 msgid "16BUI - 16-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2370
+#: reference_raster.xml:3040
 #, no-c-format
 msgid "32BSI - 32-bit signed integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2373
+#: reference_raster.xml:3043
 #, no-c-format
 msgid "32BUI - 32-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2376
+#: reference_raster.xml:3046
 #, no-c-format
 msgid "32BF - 32-bit float"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2379
+#: reference_raster.xml:3049
 #, no-c-format
 msgid "64BF - 64-bit float"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2388
+#: reference_raster.xml:3058
 #, no-c-format
 msgid ""
 "SELECT ST_BandPixelType(rast,1) As btype1, \n"
@@ -3943,13 +4895,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2400
+#: reference_raster.xml:3070
 #, no-c-format
 msgid "ST_HasNoBand"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2401
+#: reference_raster.xml:3071
 #, no-c-format
 msgid ""
 "<refpurpose>Returns true if there is no band with given band number. If no "
@@ -3957,7 +4909,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2406
+#: reference_raster.xml:3076
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_HasNoBand</function></funcdef> "
@@ -3966,7 +4918,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2417
+#: reference_raster.xml:3087
 #, no-c-format
 msgid ""
 "<para>Returns true if there is no band with given band number. If no band "
@@ -3974,7 +4926,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2425
+#: reference_raster.xml:3095
 #, no-c-format
 msgid ""
 "SELECT rid, ST_HasNoBand(rast) As hb1, ST_HasNoBand(rast,2) as hb2, \n"
@@ -3988,19 +4940,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:2438
+#: reference_raster.xml:3108
 #, no-c-format
 msgid "Raster Pixel Accessors and Setters"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2442
+#: reference_raster.xml:3112
 #, no-c-format
 msgid "ST_PixelAsPolygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2443
+#: reference_raster.xml:3113
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the polygon geometry that bounds the pixel for a "
@@ -4008,7 +4960,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2448
+#: reference_raster.xml:3118
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsPolygon</function></funcdef> "
@@ -4018,7 +4970,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2460
+#: reference_raster.xml:3130
 #, no-c-format
 msgid ""
 "<para>Returns the polygon geometry that bounds the pixel for a particular "
@@ -4026,7 +4978,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2468
+#: reference_raster.xml:3138
 #, no-c-format
 msgid ""
 "-- get raster pixel polygon\n"
@@ -4046,7 +4998,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2473
+#: reference_raster.xml:3143
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend="
@@ -4056,13 +5008,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2488
+#: reference_raster.xml:3158
 #, no-c-format
 msgid "ST_PixelAsPolygons"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2489
+#: reference_raster.xml:3159
 #, no-c-format
 msgid ""
 "Returns the polygon geometry that bounds every pixel of a raster band along "
@@ -4070,7 +5022,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2494
+#: reference_raster.xml:3164
 #, no-c-format
 msgid ""
 "<funcdef>setof record <function>ST_PixelAsPolygons</function></funcdef> "
@@ -4081,7 +5033,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2506
+#: reference_raster.xml:3176
 #, no-c-format
 msgid ""
 "Returns the polygon geometry that bounds every pixel of a raster band along "
@@ -4090,7 +5042,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2509
+#: reference_raster.xml:3179
 #, no-c-format
 msgid ""
 "ST_PixelAsPolygons returns one polygon geometry for every pixel. This is "
@@ -4099,13 +5051,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2515
+#: reference_raster.xml:3184
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3190
 #, no-c-format
 msgid "Enhanced: 2.1.0 exclude_nodata_value optional argument was added."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:3191 reference_raster.xml:3285
+#: reference_raster.xml:3379
+#, no-c-format
+msgid "Changed: 2.1.1 Changed behavior of exclude_nodata_value."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2520
+#: reference_raster.xml:3196
 #, no-c-format
 msgid ""
 "-- get raster pixel polygon\n"
@@ -4131,7 +5098,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2525
+#: reference_raster.xml:3201
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4141,13 +5108,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2539
+#: reference_raster.xml:3215
 #, no-c-format
 msgid "ST_PixelAsPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2540
+#: reference_raster.xml:3216
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a point geometry of the pixel's upper-left corner.</"
@@ -4155,7 +5122,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2546
+#: reference_raster.xml:3222
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsPoint</function></funcdef> "
@@ -4165,13 +5132,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2557
+#: reference_raster.xml:3233
 #, no-c-format
 msgid "<para>Returns a point geometry of the pixel's upper-left corner.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2563
+#: reference_raster.xml:3239
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_PixelAsPoint(rast, 1, 1)) FROM dummy_rast WHERE rid = "
@@ -4183,7 +5150,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2568
+#: reference_raster.xml:3244
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4193,13 +5160,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2582
+#: reference_raster.xml:3258
 #, no-c-format
 msgid "ST_PixelAsPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2583
+#: reference_raster.xml:3259
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a point geometry for each pixel of a raster band along "
@@ -4209,7 +5176,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2589
+#: reference_raster.xml:3265
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsPoints</function></funcdef> "
@@ -4220,7 +5187,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2600
+#: reference_raster.xml:3276
 #, no-c-format
 msgid ""
 "<para>Returns a point geometry for each pixel of a raster band along with "
@@ -4228,8 +5195,16 @@ msgid ""
 "of the point geometry are of the pixel's upper-left corner.</para>"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:3280 reference_raster.xml:3374
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as points."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2608
+#: reference_raster.xml:3290
 #, no-c-format
 msgid ""
 "SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsPoints(rast, 1)).* "
@@ -4265,7 +5240,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2613
+#: reference_raster.xml:3295
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4275,13 +5250,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2627
+#: reference_raster.xml:3309
 #, no-c-format
 msgid "ST_PixelAsCentroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2628
+#: reference_raster.xml:3310
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the centroid (point geometry) of the area represented by "
@@ -4289,7 +5264,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2634
+#: reference_raster.xml:3316
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsCentroid</function></funcdef> "
@@ -4299,7 +5274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2645
+#: reference_raster.xml:3327
 #, no-c-format
 msgid ""
 "<para>Returns the centroid (point geometry) of the area represented by a "
@@ -4307,7 +5282,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2651
+#: reference_raster.xml:3333
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_PixelAsCentroid(rast, 1, 1)) FROM dummy_rast WHERE rid = "
@@ -4319,7 +5294,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2656
+#: reference_raster.xml:3338
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4328,13 +5303,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2670
+#: reference_raster.xml:3352
 #, no-c-format
 msgid "ST_PixelAsCentroids"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2671
+#: reference_raster.xml:3353
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the centroid (point geometry) for each pixel of a raster "
@@ -4344,7 +5319,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2677
+#: reference_raster.xml:3359
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsCentroids</function></funcdef> "
@@ -4355,7 +5330,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2688
+#: reference_raster.xml:3370
 #, no-c-format
 msgid ""
 "<para>Returns the centroid (point geometry) for each pixel of a raster band "
@@ -4364,7 +5339,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2696
+#: reference_raster.xml:3384
 #, no-c-format
 msgid ""
 "SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsCentroids(rast, "
@@ -4399,7 +5374,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2701
+#: reference_raster.xml:3389
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4408,13 +5383,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2715
+#: reference_raster.xml:3403
 #, no-c-format
 msgid "ST_Value"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2716
+#: reference_raster.xml:3404
 #, no-c-format
 msgid ""
 "Returns the value of a given band in a given columnx, rowy pixel or at a "
@@ -4426,7 +5401,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2720
+#: reference_raster.xml:3408
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>double precision <function>ST_Value</function></"
@@ -4456,7 +5431,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2755
+#: reference_raster.xml:3443
 #, no-c-format
 msgid ""
 "Returns the value of a given band in a given columnx, rowy pixel or at a "
@@ -4468,13 +5443,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2758
+#: reference_raster.xml:3446
 #, no-c-format
 msgid "Enhanced: 2.0.0 exclude_nodata_value optional argument was added."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2763
+#: reference_raster.xml:3451
 #, no-c-format
 msgid ""
 "-- get raster values at particular postgis geometry points\n"
@@ -4497,7 +5472,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2764
+#: reference_raster.xml:3452
 #, no-c-format
 msgid ""
 "SELECT rid, ST_Value(rast, 1, 1, 1) As b1pval, \n"
@@ -4511,7 +5486,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2766
+#: reference_raster.xml:3454
 #, no-c-format
 msgid ""
 "--- Get all values in bands 1,2,3 of each pixel --\n"
@@ -4535,7 +5510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2768
+#: reference_raster.xml:3456
 #, no-c-format
 msgid ""
 "--- Get all values in bands 1,2,3 of each pixel same as above but returning "
@@ -4559,7 +5534,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2769
+#: reference_raster.xml:3457
 #, no-c-format
 msgid ""
 "--- Get a polygon formed by union of all pixels \n"
@@ -4608,7 +5583,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2771
+#: reference_raster.xml:3459
 #, no-c-format
 msgid ""
 "--- Checking all the pixels of a large raster tile can take a long time.\n"
@@ -4651,25 +5626,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2776
+#: reference_raster.xml:3464
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_PixelAsPolygon\"/"
-">, <xref linkend=\"RT_ST_ScaleX\"/>, , <xref linkend=\"RT_ST_ScaleY\"/>, "
-"<xref linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>, "
-"<xref linkend=\"RT_ST_SRID\"/>, <xref linkend=\"ST_AsText\"/>, , <xref "
-"linkend=\"ST_Point\"/>, <xref linkend=\"ST_MakeEnvelope\"/>, <xref linkend="
-"\"ST_Intersects\"/>, <xref linkend=\"ST_Intersection\"/>"
+", <xref linkend=\"RT_ST_DumpAsPolygons\"/>, <xref linkend=\"RT_ST_NumBands\"/"
+">, <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_ScaleX\"/"
+">, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>, <xref linkend=\"RT_ST_SRID\"/>, <xref "
+"linkend=\"ST_AsText\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_MakeEnvelope\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Intersection\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2786
+#: reference_raster.xml:3485
 #, no-c-format
 msgid "ST_NearestValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2787
+#: reference_raster.xml:3486
 #, no-c-format
 msgid ""
 "Returns the nearest non-<varname>NODATA</varname> value of a given band's "
@@ -4678,7 +5654,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2793
+#: reference_raster.xml:3492
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
@@ -4708,7 +5684,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2830
+#: reference_raster.xml:3529
 #, no-c-format
 msgid ""
 "Returns the nearest non-<varname>NODATA</varname> value of a given band in a "
@@ -4719,7 +5695,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2833 reference_raster.xml:2920
+#: reference_raster.xml:3532 reference_raster.xml:3619
 #, no-c-format
 msgid ""
 "Band numbers start at 1 and <varname>bandnum</varname> is assumed to be 1 if "
@@ -4730,13 +5706,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2838
+#: reference_raster.xml:3537
 #, no-c-format
 msgid "ST_NearestValue is a drop-in replacement for ST_Value."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2847
+#: reference_raster.xml:3546
 #, no-c-format
 msgid ""
 "-- pixel 2x2 has value\n"
@@ -4751,8 +5727,8 @@ msgid ""
 "                                        ST_SetValue(\n"
 "                                                ST_SetValue(\n"
 "                                                        ST_AddBand(\n"
-"                                                                ST_MakeEmptyRaster"
-"(5, 5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
 "                                                                '8BUI'::"
 "text, 1, 0\n"
 "                                                        ),\n"
@@ -4774,7 +5750,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2849
+#: reference_raster.xml:3548
 #, no-c-format
 msgid ""
 "-- pixel 2x3 is NODATA\n"
@@ -4789,8 +5765,8 @@ msgid ""
 "                                        ST_SetValue(\n"
 "                                                ST_SetValue(\n"
 "                                                        ST_AddBand(\n"
-"                                                                ST_MakeEmptyRaster"
-"(5, 5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
 "                                                                '8BUI'::"
 "text, 1, 0\n"
 "                                                        ),\n"
@@ -4812,19 +5788,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2855
+#: reference_raster.xml:3554
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Value\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2865
+#: reference_raster.xml:3564
 #, no-c-format
 msgid "ST_Neighborhood"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2866
+#: reference_raster.xml:3565
 #, no-c-format
 msgid ""
 "Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
@@ -4834,7 +5810,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2872
+#: reference_raster.xml:3571
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
@@ -4872,7 +5848,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2917
+#: reference_raster.xml:3616
 #, no-c-format
 msgid ""
 "Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
@@ -4887,7 +5863,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2924
+#: reference_raster.xml:3623
 #, no-c-format
 msgid ""
 "The number of elements along each axis of the returning 2-D array is 2 * "
@@ -4897,15 +5873,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2929
+#: reference_raster.xml:3628
 #, no-c-format
 msgid ""
-"The 2-D array output can be passed along to any of the raster processing "
-"builtin functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
+"The 2-D array output can be passed to any of the raster processing builtin "
+"functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2939
+#: reference_raster.xml:3638
 #, no-c-format
 msgid ""
 "-- pixel 2x2 has value\n"
@@ -4936,7 +5912,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2941
+#: reference_raster.xml:3640
 #, no-c-format
 msgid ""
 "-- pixel 2x3 is NODATA\n"
@@ -4967,7 +5943,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2943
+#: reference_raster.xml:3642
 #, no-c-format
 msgid ""
 "-- pixel 3x3 has value\n"
@@ -4998,7 +5974,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2949
+#: reference_raster.xml:3648
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
@@ -5008,66 +5984,68 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2966
+#: reference_raster.xml:3665
 #, no-c-format
 msgid "ST_SetValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2967
+#: reference_raster.xml:3666
 #, no-c-format
 msgid ""
 "Returns modified raster resulting from setting the value of a given band in "
-"a given columnx, rowy pixel or at a pixel that intersects a particular "
-"geometric point. Band numbers start at 1 and assumed to be 1 if not "
-"specified."
+"a given columnx, rowy pixel or the pixels that intersect a particular "
+"geometry. Band numbers start at 1 and assumed to be 1 if not specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2971
+#: reference_raster.xml:3670
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
 "<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
 "<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
-"<parameter>bandnum</parameter></paramdef> <paramdef><type>geometry </type> "
-"<parameter>pt</parameter></paramdef> <paramdef><type>double precision </"
+"<parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
 "type> <parameter>newvalue</parameter></paramdef> </funcprototype> "
 "<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
 "<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
 "<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
 "<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
-"<parameter>bandnum</parameter></paramdef> <paramdef><type>integer </type> "
 "<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
 "<parameter>rowy</parameter></paramdef> <paramdef><type>double precision </"
 "type> <parameter>newvalue</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3005
+#: reference_raster.xml:3704
 #, no-c-format
 msgid ""
-"Returns modified raster resulting from setting the specified pixel value to "
-"new value for the designed band given the row column location or a geometric "
-"point location. If no band is specified, then band 1 is assumed."
+"Returns modified raster resulting from setting the specified pixels' values "
+"to new value for the designed band given the raster's row and column or a "
+"geometry. If no band is specified, then band 1 is assumed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3008
+#: reference_raster.xml:3707
 #, no-c-format
-msgid "Setting by geometry currently only works for points."
+msgid ""
+"Enhanced: 2.1.0 Geometry variant of ST_SetValue() now supports any geometry "
+"type, not just point. The geometry variant is a wrapper around the geomval[] "
+"variant of ST_SetValues()"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3014
+#: reference_raster.xml:3713
 #, no-c-format
 msgid ""
 "-- Geometry example\n"
@@ -5090,36 +6068,36 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3016
+#: reference_raster.xml:3715
 #, no-c-format
 msgid ""
 "-- Store the changed raster --\n"
-"        UPDATE dummy_rast SET rast = ST_SetValue(rast,1, ST_Point"
-"(3427927.75, 5793243.95),100)\n"
+"        UPDATE dummy_rast SET rast = ST_SetValue(rast,1, "
+"ST_Point(3427927.75, 5793243.95),100)\n"
 "                WHERE rid = 2   ;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3020 reference_raster.xml:6296
+#: reference_raster.xml:3719 reference_raster.xml:9319
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_DumpAsPolygons\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3026
+#: reference_raster.xml:3725
 #, no-c-format
 msgid "ST_SetValues"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3027
+#: reference_raster.xml:3726
 #, no-c-format
 msgid ""
 "Returns modified raster resulting from setting the values of a given band."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3031
+#: reference_raster.xml:3730
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
@@ -5157,19 +6135,34 @@ msgid ""
 "<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
 "<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
 "type> <parameter>newvalue</parameter></paramdef> <paramdef><type>boolean </"
-"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype>"
+"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geomval[] </type> <parameter>geomvalset</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3789
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting specified pixels to new "
+"value(s) for the designated band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3082
+#: reference_raster.xml:3793
 #, no-c-format
 msgid ""
-"Returns modified raster resulting from setting specified pixels to new value"
-"(s) for the designated band."
+"If <varname>keepnodata</varname> is TRUE, those pixels whose values are "
+"NODATA will not be set with the corresponding value in <varname>newvalueset</"
+"varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3086
+#: reference_raster.xml:3797
 #, no-c-format
 msgid ""
 "For Variant 1, the specific pixels to be set are determined by the "
@@ -5177,13 +6170,11 @@ msgid ""
 "the dimensions of the <varname>newvalueset</varname> array. <varname>noset</"
 "varname> can be used to prevent pixels with values present in "
 "<varname>newvalueset</varname> from being set (due to PostgreSQL not "
-"permitting ragged/jagged arrays). If <varname>keepnodata</varname> is TRUE, "
-"those pixels whose values are NODATA will not be set with the corresponding "
-"value in <varname>newvalueset</varname>. See example Variant 1."
+"permitting ragged/jagged arrays). See example Variant 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3090
+#: reference_raster.xml:3801
 #, no-c-format
 msgid ""
 "Variant 2 is like Variant 1 but with a simple double precision "
@@ -5193,33 +6184,45 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3094
+#: reference_raster.xml:3805
 #, no-c-format
 msgid ""
 "For Variant 3, the specific pixels to be set are determined by the "
 "<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates, "
-"<varname>width</varname> and <varname>height</varname>. If "
-"<varname>keepnodata</varname> is TRUE, those pixels whose values are NODATA "
-"will not be set with the corresponding value in <varname>newvalueset</"
-"varname>. See example Variant 3."
+"<varname>width</varname> and <varname>height</varname>. See example Variant "
+"3."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3098
+#: reference_raster.xml:3809
 #, no-c-format
 msgid ""
 "Variant 4 is the same as Variant 3 with the exception that it assumes that "
 "the first band's pixels of <varname>rast</varname> will be set."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:3813
+#, no-c-format
+msgid ""
+"For Variant 5, an array of <xref linkend=\"geomval\"/> is used to determine "
+"the specific pixels to be set. If all the geometries in the array are of "
+"type POINT or MULTIPOINT, the function uses a shortcut where the longitude "
+"and latitude of each point is used to set a pixel directly. Otherwise, the "
+"geometries are converted to rasters and then iterated through in one pass. "
+"See example Variant 5."
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:3107 reference_raster.xml:5583
+#: reference_raster.xml:3822 reference_raster.xml:6730
+#: reference_raster.xml:8262 reference_raster.xml:8705
+#: reference_raster.xml:8802 reference_raster.xml:8930
 #, no-c-format
 msgid "Examples: Variant 1"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3109
+#: reference_raster.xml:3824
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5267,7 +6270,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3111
+#: reference_raster.xml:3826
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5315,7 +6318,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3113
+#: reference_raster.xml:3828
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5365,7 +6368,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3115
+#: reference_raster.xml:3830
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5419,13 +6422,15 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3120
+#: reference_raster.xml:3835 reference_raster.xml:8269
+#: reference_raster.xml:8710 reference_raster.xml:8807
+#: reference_raster.xml:8935
 #, no-c-format
 msgid "Examples: Variant 2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3122
+#: reference_raster.xml:3837
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5473,7 +6478,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3124
+#: reference_raster.xml:3839
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5524,13 +6529,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3129
+#: reference_raster.xml:3844 reference_raster.xml:4788
 #, no-c-format
 msgid "Examples: Variant 3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3131
+#: reference_raster.xml:3846
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5577,7 +6582,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3133
+#: reference_raster.xml:3848
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5626,82 +6631,292 @@ msgid ""
 " 3 | 3 |   9"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:3139
+#. Tag: title
+#: reference_raster.xml:3853
 #, no-c-format
-msgid ""
-", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_PixelAsPolygons"
-"\"/>"
+msgid "Examples: Variant 5"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:3149
+#. Tag: programlisting
+#: reference_raster.xml:3855
 #, no-c-format
-msgid "ST_PixelOfValue"
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        rid, gid, ST_DumpValues(ST_SetValue(rast, 1, geom, gid))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"ORDER BY rid, gid;\n"
+"\n"
+" rid | gid |                                                                "
+"st_dumpvalues                                                                \n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,NULL,1,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,"
+"NULL}}\")\n"
+"   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,"
+"NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   3 | (1,\"{{3,3,3,3,3},{3,NULL,NULL,NULL,NULL},{3,NULL,NULL,NULL,"
+"NULL},{3,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   4 | (1,\"{{4,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,"
+"NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,4}}\")\n"
+"(4 rows)"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:3150
+#. Tag: para
+#: reference_raster.xml:3857
 #, no-c-format
 msgid ""
-"Get the columnx, rowy coordinates of the pixel whose value equals the search "
-"value."
+"The following shows that geomvals later in the array can overwrite prior "
+"geomvals"
 msgstr ""
 
-#. Tag: funcsynopsis
-#: reference_raster.xml:3156
+#. Tag: programlisting
+#: reference_raster.xml:3858
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></"
-"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
-"paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </"
-"paramdef> <paramdef> <type>double precision[] </type> <parameter>search</"
-"parameter> </paramdef> <paramdef> <type>boolean </type> "
-"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
-"funcprototype> <funcprototype> <funcdef>setof record "
-"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
-"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
-"precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> "
-"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
-"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
-"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
-"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </"
-"type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double "
-"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
-"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
-"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
-"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
-"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
-"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
-"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
-"paramdef> </funcprototype>"
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 1\n"
+"        AND t3.gid = 2\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3217
+#: reference_raster.xml:3860
 #, no-c-format
-msgid ""
-"Get the columnx, rowy coordinates of the pixel whose value equals the search "
-"value. If no band is specified, then band 1 is assumed."
+msgid "This example is the opposite of the prior example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3226
+#: reference_raster.xml:3861
 #, no-c-format
 msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
 "SELECT\n"
-"        (pixels).*\n"
-"FROM (\n"
-"        SELECT\n"
-"                ST_PixelOfValue(\n"
-"                        ST_SetValue(\n"
-"                                ST_SetValue(\n"
-"                                        ST_SetValue(\n"
-"                                                ST_SetValue(\n"
-"                                                        ST_SetValue(\n"
-"                                                                ST_AddBand(\n"
-"                                                                        ST_MakeEmptyRaster"
-"(5, 5, -2, 2, 1, -1, 0, 0, 0),\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 2\n"
+"        AND t3.gid = 1\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   2 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,1,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3868
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_PixelAsPolygons"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3878
+#, no-c-format
+msgid "ST_DumpValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3879
+#, no-c-format
+msgid "Get the values of the specified band as a 2-dimension array."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3885
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_DumpValues</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer[] </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision[][] "
+"<function>ST_DumpValues</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rast</parameter> </paramdef> <paramdef> <type>integer </type> "
+"<parameter>nband</parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3916
+#, no-c-format
+msgid ""
+"Get the values of the specified band as a 2-dimension array. If "
+"<varname>nband</varname> is NULL or not provided, all raster bands are "
+"processed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3926
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast)).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"     2 | {{3,3,3},{3,3,3},{3,3,3}}\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3928
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast, ARRAY[3, 1])).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3933
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_SetValues\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3944
+#, no-c-format
+msgid "ST_PixelOfValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3945
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3951
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>double precision[] </type> <parameter>search</"
+"parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </"
+"type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4012
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4021
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        (pixels).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_PixelOfValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_SetValue(\n"
+"                                                                ST_AddBand(\n"
+"                                                                        ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
 "                                                                        '8BUI'::"
 "text, 1, 0\n"
 "                                                                ),\n"
@@ -5744,19 +6959,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3234
+#: reference_raster.xml:4029
 #, no-c-format
 msgid "Raster Editors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3238
+#: reference_raster.xml:4033
 #, no-c-format
 msgid "ST_SetGeoReference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3239
+#: reference_raster.xml:4034
 #, no-c-format
 msgid ""
 "Set Georeference 6 georeference parameters in a single call. Numbers should "
@@ -5764,19 +6979,29 @@ msgid ""
 "is GDAL."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:3244
+#. Tag: funcsynopsis
+#: reference_raster.xml:4038
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_SetGeoReference</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>georefcoords</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
-"parameter></paramdef>"
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>georefcoords</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>format=GDAL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>upperlefty</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scalex</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scaley</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>skewy</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3256
+#: reference_raster.xml:4064
 #, no-c-format
 msgid ""
 "Set Georeference 6 georeference parameters in a single call. Accepts inputs "
@@ -5785,34 +7010,76 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3259
+#: reference_raster.xml:4067
 #, no-c-format
 msgid "scalex skewy skewx scaley upperleftx upperlefty"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3261
+#: reference_raster.xml:4069
 #, no-c-format
 msgid ""
 "scalex skewy skewx scaley upperleftx + scalex*0.5 upperlefty + scaley*0.5"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4072
+#, no-c-format
+msgid ""
+"If the raster has out-db bands, changing the georeference may result in "
+"incorrect access of the band's externally stored data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4077
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Addition of ST_SetGeoReference(raster, double "
+"precision, ...) variant"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:3267
+#: reference_raster.xml:4084
 #, no-c-format
 msgid ""
-"UPDATE dummy_rast SET rast = ST_SetGeoReference(rast, '2 0 0 3 0.5 "
-"0.5','GDAL') \n"
-"        WHERE rid=1;\n"
-"        \n"
-"-- same coordinates set in 'ESRI' format\n"
-"UPDATE dummy_rast SET rast = ST_SetGeoReference(rast, '2 0 0 3 1.5 "
-"2','ESRI') \n"
-"        WHERE rid=1;"
+"WITH foo AS (\n"
+"        SELECT ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        0 AS rid, (ST_Metadata(rast)).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        1, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 0.1 0.1', "
+"'GDAL'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 5.1 -4.9', "
+"'ESRI'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3, (ST_Metadata(ST_SetGeoReference(rast, 1, 1, 10, -10, 0.001, "
+"0.001))).*\n"
+"FROM foo\n"
+"\n"
+" rid |     upperleftx     |     upperlefty     | width | height | scalex | "
+"scaley | skewx | skewy | srid | numbands \n"
+"-----+--------------------+--------------------+-------+--------+--------"
+"+--------+-------+-------+------+----------\n"
+"   0 |                  0 |                  0 |     5 |      5 |      1 "
+"|     -1 |     0 |     0 |    0 |        0\n"
+"   1 |                0.1 |                0.1 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   2 | 0.0999999999999996 | 0.0999999999999996 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   3 |                  1 |                  1 |     5 |      5 |     10 "
+"|    -10 | 0.001 | 0.001 |    0 |        0"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3272
+#: reference_raster.xml:4089
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
@@ -5820,19 +7087,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3278
+#: reference_raster.xml:4095
 #, no-c-format
 msgid "ST_SetRotation"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3279
+#: reference_raster.xml:4096
 #, no-c-format
 msgid "Set the rotation of the raster in radian."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3284
+#: reference_raster.xml:4101
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_SetRotation</function></funcdef> "
@@ -5841,7 +7108,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3295
+#: reference_raster.xml:4112
 #, no-c-format
 msgid ""
 "Uniformly rotate the raster. Rotation is in radian. Refer to <ulink url="
@@ -5850,7 +7117,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3301
+#: reference_raster.xml:4118
 #, no-c-format
 msgid ""
 "SELECT \n"
@@ -5870,13 +7137,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3314
+#: reference_raster.xml:4131
 #, no-c-format
 msgid "ST_SetScale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3315
+#: reference_raster.xml:4132
 #, no-c-format
 msgid ""
 "Sets the X and Y size of pixels in units of coordinate reference system. "
@@ -5884,7 +7151,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3319
+#: reference_raster.xml:4136
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
@@ -5898,7 +7165,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3338
+#: reference_raster.xml:4155
 #, no-c-format
 msgid ""
 "Sets the X and Y size of pixels in units of coordinate reference system. "
@@ -5907,7 +7174,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3341
+#: reference_raster.xml:4158
 #, no-c-format
 msgid ""
 "ST_SetScale is different from <xref linkend=\"RT_ST_Rescale\"/> in that "
@@ -5920,7 +7187,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3343
+#: reference_raster.xml:4160
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 In WKTRaster versions this was called ST_SetPixelSize. This "
@@ -5928,7 +7195,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3349
+#: reference_raster.xml:4166
 #, no-c-format
 msgid ""
 "UPDATE dummy_rast \n"
@@ -5946,7 +7213,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3350
+#: reference_raster.xml:4167
 #, no-c-format
 msgid ""
 "UPDATE dummy_rast \n"
@@ -5964,19 +7231,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3356
+#: reference_raster.xml:4173
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_Box3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3362
+#: reference_raster.xml:4179
 #, no-c-format
 msgid "ST_SetSkew"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3363
+#: reference_raster.xml:4180
 #, no-c-format
 msgid ""
 "Sets the georeference X and Y skew (or rotation parameter). If only one is "
@@ -5984,7 +7251,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3367
+#: reference_raster.xml:4184
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> "
@@ -5998,7 +7265,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3385
+#: reference_raster.xml:4202
 #, no-c-format
 msgid ""
 "Sets the georeference X and Y skew (or rotation parameter). If only one is "
@@ -6007,7 +7274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3392
+#: reference_raster.xml:4209
 #, no-c-format
 msgid ""
 "-- Example 1                    \n"
@@ -6027,7 +7294,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3394
+#: reference_raster.xml:4211
 #, no-c-format
 msgid ""
 "-- Example 2 set both to same number:\n"
@@ -6047,7 +7314,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3401
+#: reference_raster.xml:4218
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_SetGeoReference\"/>, <xref linkend=\"RT_ST_SkewX\"/"
@@ -6055,13 +7322,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3407
+#: reference_raster.xml:4224
 #, no-c-format
 msgid "ST_SetSRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3409
+#: reference_raster.xml:4226
 #, no-c-format
 msgid ""
 "Sets the SRID of a raster to a particular integer srid defined in the "
@@ -6069,7 +7336,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3414
+#: reference_raster.xml:4231
 #, no-c-format
 msgid ""
 "<funcdef>raster <function>ST_SetSRID</function></funcdef> "
@@ -6078,13 +7345,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3429
+#: reference_raster.xml:4246
 #, no-c-format
 msgid "Sets the SRID on a raster to a particular integer value."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3432
+#: reference_raster.xml:4249
 #, no-c-format
 msgid ""
 "This function does not transform the raster in any way - it simply sets meta "
@@ -6093,19 +7360,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3442
+#: reference_raster.xml:4259
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3449
+#: reference_raster.xml:4266
 #, no-c-format
 msgid "ST_SetUpperLeft"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3450
+#: reference_raster.xml:4267
 #, no-c-format
 msgid ""
 "Sets the value of the upper left corner of the pixel to projected X and Y "
@@ -6113,7 +7380,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3455
+#: reference_raster.xml:4272
 #, no-c-format
 msgid ""
 "<funcdef>raster <function>ST_SetUpperLeft</function></funcdef> "
@@ -6123,7 +7390,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3467
+#: reference_raster.xml:4284
 #, no-c-format
 msgid ""
 "Set the value of the upper left corner of raster to the projected X "
@@ -6131,7 +7398,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3473
+#: reference_raster.xml:4290
 #, no-c-format
 msgid ""
 "SELECT ST_SetUpperLeft(rast,-71.01,42.37)  \n"
@@ -6140,39 +7407,36 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3479
+#: reference_raster.xml:4296
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_UpperLeftY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3485
+#: reference_raster.xml:4302
 #, no-c-format
 msgid "ST_Resample"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3486
+#: reference_raster.xml:4303
 #, no-c-format
 msgid ""
 "Resample a raster using a specified resampling algorithm, new dimensions, an "
 "arbitrary grid corner and a set of raster georeferencing attributes defined "
-"or borrowed from another raster. New pixel values are computed using the "
-"NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline "
-"or Lanczos resampling algorithm. Default is NearestNeighbor."
+"or borrowed from another raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3490
+#: reference_raster.xml:4309
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=same_as_rast</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
-"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
 "\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
 "paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
 "<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
@@ -6182,17 +7446,16 @@ msgid ""
 "choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
 "parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
 "<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>integer </type> <parameter>srid=NULL</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> <parameter>scalex=0</"
+"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>double "
+"precision </type> <parameter>scalex=0</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>scaley=0</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
-"type> <parameter>scaley=0</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>gridx=NULL</parameter></"
+"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
 "paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>gridy=NULL</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
 "<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
 "\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
@@ -6214,27 +7477,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3542
+#: reference_raster.xml:4359
 #, no-c-format
 msgid ""
 "Resample a raster using a specified resampling algorithm, new dimensions "
 "(width & height), a grid corner (gridx & gridy) and a set of raster "
 "georeferencing attributes (scalex, scaley, skewx & skewy) defined or "
-"borrowed from another raster."
+"borrowed from another raster. If using a reference raster, the two rasters "
+"must have the same SRID."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3544
+#: reference_raster.xml:4363
 #, no-c-format
 msgid ""
-"New pixel values are computed using the NearestNeighbor (english or american "
+"New pixel values are computed using the NearestNeighbor (English or American "
 "spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
 "Default is NearestNeighbor which is the fastest but produce the worst "
 "interpolation."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3546 reference_raster.xml:3603
+#: reference_raster.xml:4367 reference_raster.xml:4434
 #, no-c-format
 msgid ""
 "A maxerror percent of 0.125 is used if no <varname>maxerr</varname> is "
@@ -6242,15 +7506,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3548 reference_raster.xml:3607
-#: reference_raster.xml:3667 reference_raster.xml:3746
-#, no-c-format
-msgid "Only works if raster is in a known spatial reference system (SRID)."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:3549 reference_raster.xml:3605
-#: reference_raster.xml:3669 reference_raster.xml:3748
+#: reference_raster.xml:4372 reference_raster.xml:4436
+#: reference_raster.xml:4504 reference_raster.xml:4582
 #, no-c-format
 msgid ""
 "Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp "
@@ -6258,45 +7515,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3550 reference_raster.xml:3611
-#: reference_raster.xml:3673 reference_raster.xml:3752
-#: reference_raster.xml:3805
+#: reference_raster.xml:4376 reference_raster.xml:4440
+#: reference_raster.xml:4508 reference_raster.xml:4586
+#: reference_raster.xml:4742
 #, no-c-format
 msgid "Availability: 2.0.0 Requires GDAL 1.6.1+"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4377
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 Parameter srid removed. Variants with a reference raster no "
+"longer applies the reference raster's SRID. Use ST_Transform() to reproject "
+"raster. Works on rasters with no SRID."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:3556
+#: reference_raster.xml:4383
 #, no-c-format
 msgid ""
-"SELECT ST_Width(orig) As orig_width, ST_Width(reduce_100) As new_width\n"
-" FROM (\n"
-" SELECT rast As orig, ST_Resample(rast,100,100) As reduce_100   \n"
-"  FROM aerials.boston \n"
+"SELECT\n"
+"        ST_Width(orig) AS orig_width,\n"
+"        ST_Width(reduce_100) AS new_width\n"
+"FROM (\n"
+"        SELECT\n"
+"                rast AS orig,\n"
+"                ST_Resample(rast,100,100) AS reduce_100\n"
+"        FROM aerials.boston \n"
 "        WHERE ST_Intersects(rast,\n"
-"          ST_Transform(\n"
-"            ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, "
-"4326),26986) ) \n"
-"                limit 1 ) As foo;\n"
+"                ST_Transform(\n"
+"                        ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, "
+"4326),26986)\n"
+"        )\n"
+"        LIMIT 1\n"
+") AS foo;\n"
+"\n"
 " orig_width | new_width\n"
 "------------+-------------\n"
 "        200 |         100"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3561
+#: reference_raster.xml:4388
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgid ", <xref linkend=\"RT_ST_Resize\"/>, <xref linkend=\"RT_ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3567
+#: reference_raster.xml:4398
 #, no-c-format
 msgid "ST_Rescale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3568
+#: reference_raster.xml:4399
 #, no-c-format
 msgid ""
 "Resample a raster by adjusting only its scale (or pixel size). New pixel "
@@ -6306,7 +7579,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3573
+#: reference_raster.xml:4404
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Rescale</function></funcdef> "
@@ -6326,7 +7599,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3597
+#: reference_raster.xml:4428
 #, no-c-format
 msgid ""
 "Resample a raster by adjusting only its scale (or pixel size). New pixel "
@@ -6337,7 +7610,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3599
+#: reference_raster.xml:4430
 #, no-c-format
 msgid ""
 "<varname>scalex</varname> and <varname>scaley</varname> define the new pixel "
@@ -6345,16 +7618,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3601
+#: reference_raster.xml:4432
 #, no-c-format
 msgid ""
 "When the new scalex or scaley is not a divisor of the raster width or "
 "height, the extent of the resulting raster is expanded to encompass the "
-"extent of the provided raster."
+"extent of the provided raster. If you want to be sure to retain exact input "
+"extent see <xref linkend=\"RT_ST_Resize\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3609
+#: reference_raster.xml:4438
 #, no-c-format
 msgid ""
 "ST_Rescale is different from <xref linkend=\"RT_ST_SetScale\"/> in that "
@@ -6367,7 +7641,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3616
+#: reference_raster.xml:4441 reference_raster.xml:4509
+#: reference_raster.xml:4587
+#, no-c-format
+msgid "Changed: 2.1.0 Works on rasters with no SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4446
 #, no-c-format
 msgid ""
 "A simple example rescaling a raster from a pixel size of 0.001 degree to a "
@@ -6375,7 +7656,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3618
+#: reference_raster.xml:4448
 #, no-c-format
 msgid ""
 "-- the original raster pixel size\n"
@@ -6396,21 +7677,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3623
+#: reference_raster.xml:4453
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
-"linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+", <xref linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_SetScale\"/>, "
+"<xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3629
+#: reference_raster.xml:4466
 #, no-c-format
 msgid "ST_Reskew"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3630
+#: reference_raster.xml:4467
 #, no-c-format
 msgid ""
 "Resample a raster by adjusting only its skew (or rotation parameters). New "
@@ -6420,7 +7702,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3635
+#: reference_raster.xml:4472
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Reskew</function></funcdef> "
@@ -6440,7 +7722,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3659
+#: reference_raster.xml:4496
 #, no-c-format
 msgid ""
 "Resample a raster by adjusting only its skew (or rotation parameters). New "
@@ -6451,14 +7733,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3661
+#: reference_raster.xml:4498
 #, no-c-format
 msgid ""
 "<varname>skewx</varname> and <varname>skewy</varname> define the new skew."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3663 reference_raster.xml:3742
+#: reference_raster.xml:4500 reference_raster.xml:4578
 #, no-c-format
 msgid ""
 "The extent of the new raster will encompass the extent of the provided "
@@ -6466,14 +7748,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3665 reference_raster.xml:3744
+#: reference_raster.xml:4502 reference_raster.xml:4580
 #, no-c-format
 msgid ""
 "A maxerror percent of 0.125 if no <varname>maxerr</varname> is specified."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3671
+#: reference_raster.xml:4506
 #, no-c-format
 msgid ""
 "ST_Reskew is different from <xref linkend=\"RT_ST_SetSkew\"/> in that "
@@ -6486,14 +7768,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3678
+#: reference_raster.xml:4514
 #, no-c-format
 msgid ""
 "A simple example reskewing a raster from a skew of 0.0 to a skew of 0.0015."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3680
+#: reference_raster.xml:4516
 #, no-c-format
 msgid ""
 "-- the original raster pixel size\n"
@@ -6506,7 +7788,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3686
+#: reference_raster.xml:4522
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, "
@@ -6515,13 +7797,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3692
+#: reference_raster.xml:4528
 #, no-c-format
 msgid "ST_SnapToGrid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3693
+#: reference_raster.xml:4529
 #, no-c-format
 msgid ""
 "Resample a raster by snapping it to a grid. New pixel values are computed "
@@ -6530,7 +7812,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3698
+#: reference_raster.xml:4534
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
@@ -6566,7 +7848,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3737
+#: reference_raster.xml:4573
 #, no-c-format
 msgid ""
 "Resample a raster by snapping it to a grid defined by an arbitrary pixel "
@@ -6578,7 +7860,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3739
+#: reference_raster.xml:4575
 #, no-c-format
 msgid ""
 "<varname>gridx</varname> and <varname>gridy</varname> define any arbitrary "
@@ -6588,7 +7870,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3741
+#: reference_raster.xml:4577
 #, no-c-format
 msgid ""
 "You can optionnal define the pixel size of the new grid with "
@@ -6596,7 +7878,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3750
+#: reference_raster.xml:4584
 #, no-c-format
 msgid ""
 "Use <xref linkend=\"RT_ST_Resample\"/> if you need more control over the "
@@ -6604,13 +7886,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3757
+#: reference_raster.xml:4592
 #, no-c-format
 msgid "A simple example snapping a raster to a slightly different grid."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3759
+#: reference_raster.xml:4594
 #, no-c-format
 msgid ""
 "-- the original raster pixel size\n"
@@ -6623,7 +7905,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3765
+#: reference_raster.xml:4600
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
@@ -6631,86 +7913,260 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3771
+#: reference_raster.xml:4606
 #, no-c-format
-msgid "ST_Transform"
+msgid "ST_Resize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3772
+#: reference_raster.xml:4607
 #, no-c-format
-msgid ""
-"Reprojects a raster in a known spatial reference system to another known "
-"spatial reference system using specified resampling algorithm. Options are "
-"NearestNeighbor, Bilinear, Cubic, CubicSpline, Lanczos defaulting to "
-"NearestNeighbor."
+msgid "Resize a raster to a new width/height"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3776
+#: reference_raster.xml:4611
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
-"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
-"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
 "<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
 "\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_Transform</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
-"<parameter>srid</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
-"type> <parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef "
-"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"<function>ST_Resize</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>percentwidth</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>percentheight</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbor</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
-"type> <parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
-"funcprototype>"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3802
+#: reference_raster.xml:4645
 #, no-c-format
 msgid ""
-"Reprojects a raster in a known spatial reference system to another known "
-"spatial reference system using specified pixel warping algorithm. Uses "
-"'NearestNeighbor' if no algorithm is specified and maxerror percent of 0.125 "
-"if no maxerr is specified."
+"Resize a raster to a new width/height. The new width/height can be specified "
+"in exact number of pixels or a percentage of the raster's width/height. The "
+"extent of the the new raster will be the same as the extent of the provided "
+"raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3804
+#: reference_raster.xml:4649
 #, no-c-format
 msgid ""
-"Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', "
-"'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/"
-"gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+"New pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4653
+#, no-c-format
+msgid "Variant 1 expects the actual width/height of the output raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3806
+#: reference_raster.xml:4657
 #, no-c-format
 msgid ""
-"If you find your transformation support is not working right, you may need "
-"to set the environment variable PROJSO to the .so or .dll projection library "
-"your PostGIS is using. This just needs to have the name of the file. So for "
-"example on windows, you would in Control Panel -> System -> Environment "
-"Variables add a system variable called <varname>PROJSO</varname> and set it "
-"to <varname>libproj.dll</varname> (if you are using proj 4.6.1). You'll have "
-"to restart your PostgreSQL service/daemon after this change."
+"Variant 2 expects decimal values between zero (0) and one (1) indicating the "
+"percentage of the input raster's width/height."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:3813
+#. Tag: para
+#: reference_raster.xml:4661
 #, no-c-format
 msgid ""
-"SELECT ST_Width(mass_stm) As w_before, ST_Width(wgs_84) As w_after,\n"
-"  ST_Height(mass_stm) As h_before, ST_Height(wgs_84) As h_after\n"
-"        FROM \n"
-"        ( SELECT rast As mass_stm, ST_Transform(rast,4326) As wgs_84\n"
-"  ,  ST_Transform(rast,4326, 'Bilinear') AS wgs_84_bilin\n"
+"Variant 3 takes either the actual width/height of the output raster or a "
+"textual percentage (\"20%\") indicating the percentage of the input raster's "
+"width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4665
+#, no-c-format
+msgid "Availability: 2.1.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4669
+#, no-c-format
+msgid ""
+"WITH foo AS(\n"
+"SELECT\n"
+"        1 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , '50%', '500') AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 500, 100) AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 0.25, 0.9) AS rast\n"
+"), bar AS (\n"
+"        SELECT rid, ST_Metadata(rast) AS meta, rast FROM foo\n"
+")\n"
+"SELECT rid, (meta).* FROM bar\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands \n"
+"-----+------------+------------+-------+--------+--------+--------+-------"
+"+-------+------+----------\n"
+"   1 |          0 |          0 |   500 |    500 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   2 |          0 |          0 |   500 |    100 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   3 |          0 |          0 |   250 |    900 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4674
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_Reskew\"/>, <xref "
+"linkend=\"RT_ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4685
+#, no-c-format
+msgid "ST_Transform"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4686
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified resampling algorithm. Options are "
+"NearestNeighbor, Bilinear, Cubic, CubicSpline, Lanczos defaulting to "
+"NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4690
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Transform</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>algorithm=NearestNeighbor</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>alignto</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4724
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified pixel warping algorithm. Uses "
+"'NearestNeighbor' if no algorithm is specified and maxerror percent of 0.125 "
+"if no maxerr is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4728
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a raster (and resamples the pixel values) from "
+"one spatial reference system to another, while ST_SetSRID() simply changes "
+"the SRID identifier of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4732
+#, no-c-format
+msgid ""
+"Unlike the other variants, Variant 3 requires a reference raster as "
+"<varname>alignto</varname>. The transformed raster will be transformed to "
+"the spatial reference system (SRID) of the reference raster and be aligned "
+"(ST_SameAlignment = TRUE) to the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4737
+#, no-c-format
+msgid ""
+"If you find your transformation support is not working right, you may need "
+"to set the environment variable PROJSO to the .so or .dll projection library "
+"your PostGIS is using. This just needs to have the name of the file. So for "
+"example on windows, you would in Control Panel -> System -> Environment "
+"Variables add a system variable called <varname>PROJSO</varname> and set it "
+"to <varname>libproj.dll</varname> (if you are using proj 4.6.1). You'll have "
+"to restart your PostgreSQL service/daemon after this change."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4743
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of ST_Transform(rast, alignto) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4749
+#, no-c-format
+msgid ""
+"SELECT ST_Width(mass_stm) As w_before, ST_Width(wgs_84) As w_after,\n"
+"  ST_Height(mass_stm) As h_before, ST_Height(wgs_84) As h_after\n"
+"        FROM \n"
+"        ( SELECT rast As mass_stm, ST_Transform(rast,4326) As wgs_84\n"
+"  ,  ST_Transform(rast,4326, 'Bilinear') AS wgs_84_bilin\n"
 "                FROM aerials.o_2_boston \n"
 "                        WHERE ST_Intersects(rast,\n"
 "                                ST_Transform(ST_MakeEnvelope(-71.128, "
@@ -6723,19 +8179,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3823
+#: reference_raster.xml:4759
 #, no-c-format
 msgid "original mass state plane meters (mass_stm)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3832
+#: reference_raster.xml:4768
 #, no-c-format
 msgid "After transform to wgs 84 long lat (wgs_84)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3841
+#: reference_raster.xml:4777
 #, no-c-format
 msgid ""
 "After transform to wgs 84 long lat with bilinear algorithm instead of NN "
@@ -6743,25 +8199,83 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3853
+#: reference_raster.xml:4790
+#, no-c-format
+msgid ""
+"The following shows the difference between using ST_Transform(raster, srid) "
+"and ST_Transform(raster, alignto)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, "
+"600000, 100, -100, 0, 0, 2163), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 300, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                ST_Transform(rast, 4269) AS alignto\n"
+"        FROM foo\n"
+"        LIMIT 1\n"
+"), baz AS (\n"
+"        SELECT\n"
+"                rid,\n"
+"                rast,\n"
+"                ST_Transform(rast, 4269) AS not_aligned,\n"
+"                ST_Transform(rast, alignto) AS aligned\n"
+"        FROM foo\n"
+"        CROSS JOIN bar\n"
+")\n"
+"SELECT\n"
+"        ST_SameAlignment(rast) AS rast,\n"
+"        ST_SameAlignment(not_aligned) AS not_aligned,\n"
+"        ST_SameAlignment(aligned) AS aligned\n"
+"FROM baz\n"
+"\n"
+" rast | not_aligned | aligned \n"
+"------+-------------+---------\n"
+" t    | f           | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4796
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SetSRID\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3859
+#: reference_raster.xml:4802
 #, no-c-format
 msgid "Raster Band Editors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3863
+#: reference_raster.xml:4806
 #, no-c-format
 msgid "ST_SetBandNoDataValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3864
+#: reference_raster.xml:4807
 #, no-c-format
 msgid ""
 "Sets the value for the given band that represents no data. Band 1 is assumed "
@@ -6770,7 +8284,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3868
+#: reference_raster.xml:4811
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetBandNoDataValue</function></"
@@ -6786,7 +8300,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3889
+#: reference_raster.xml:4832
 #, no-c-format
 msgid ""
 "Sets the value that represents no data for the band. Band 1 is assumed if "
@@ -6796,7 +8310,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3895
+#: reference_raster.xml:4838
 #, no-c-format
 msgid ""
 "-- change just first band no data value\n"
@@ -6823,52 +8337,39 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3907
+#: reference_raster.xml:4850
 #, no-c-format
 msgid "ST_SetBandIsNoData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3908
+#: reference_raster.xml:4851
 #, no-c-format
-msgid ""
-"Sets the isnodata flag of the band to TRUE. You may want to call this "
-"function if ST_BandIsNoData(rast, band) != ST_BandIsNodata(rast, band, "
-"TRUE). This is, if the isnodata flag is dirty. Band 1 is assumed if no band "
-"is specified."
+msgid "Sets the isnodata flag of the band to TRUE."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3917
+#: reference_raster.xml:4856
 #, no-c-format
 msgid ""
-"<funcdef>integer <function>ST_SetBandIsNoData</function></funcdef> "
+"<funcdef>raster <function>ST_SetBandIsNoData</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
 "parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3928
+#: reference_raster.xml:4867
 #, no-c-format
 msgid ""
 "Sets the isnodata flag for the band to true. Band 1 is assumed if not "
 "specified. This function should be called only when the flag is considered "
-"dirty. This is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/"
+"dirty. That is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/"
 "> is different using TRUE as last argument and without using it"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:3935
-#, no-c-format
-msgid ""
-"Currently, the loader (raster2pgsql.py) is not able to set the isnodata flag "
-"for bands. So, this is the fastest way to set it to TRUE, without changing "
-"any other band value"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_raster.xml:3944
+#: reference_raster.xml:4879
 #, no-c-format
 msgid ""
 "-- Create dummy table with one raster column\n"
@@ -6936,7 +8437,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3950
+#: reference_raster.xml:4885
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
@@ -6944,19 +8445,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3959
+#: reference_raster.xml:4894
 #, no-c-format
 msgid "Raster Band Statistics and Analytics"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3962
+#: reference_raster.xml:4898
 #, no-c-format
 msgid "ST_Count"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3963
+#: reference_raster.xml:4899
 #, no-c-format
 msgid ""
 "Returns the number of pixels in a given band of a raster or raster coverage. "
@@ -6965,7 +8466,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3967
+#: reference_raster.xml:4903
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
@@ -6990,7 +8491,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3998
+#: reference_raster.xml:4934
 #, no-c-format
 msgid ""
 "Returns the number of pixels in a given band of a raster or raster coverage. "
@@ -6998,7 +8499,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3999
+#: reference_raster.xml:4935
 #, no-c-format
 msgid ""
 "If <varname>exclude_nodata_value</varname> is set to true, will only count "
@@ -7007,8 +8508,16 @@ msgid ""
 "all pixels"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4939
+#, no-c-format
+msgid ""
+"The ST_Count(rastertable, rastercolumn, ...) variants are deprecated as of "
+"2.2.0. Use <xref linkend=\"RT_ST_CountAgg\"/> instead."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:4006
+#: reference_raster.xml:4949
 #, no-c-format
 msgid ""
 "--example will count all pixels not 249 and one will count all pixels.  --\n"
@@ -7021,14 +8530,121 @@ msgid ""
 "   2 |             23 |             25"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4954 reference_raster.xml:5015
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4964
+#, no-c-format
+msgid "ST_CountAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4965
+#, no-c-format
+msgid ""
+"Aggregate. Returns the number of pixels in a given band of a set of rasters. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the NODATA value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4971
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>double precision </type> "
+"<parameter>sample_percent</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_CountAgg</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4999
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a set of rasters. If no band "
+"is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5000
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>NODATA</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5003
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between zero (0) and one (1)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5010
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        ST_CountAgg(rast, 1, TRUE)\n"
+"FROM foo;\n"
+"\n"
+" st_countagg \n"
+"-------------\n"
+"          20\n"
+"(1 row)"
+msgstr ""
+
 #. Tag: refname
-#: reference_raster.xml:4017
+#: reference_raster.xml:5025
 #, no-c-format
 msgid "ST_Histogram"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4018
+#: reference_raster.xml:5026
 #, no-c-format
 msgid ""
 "Returns a set of record summarizing a raster or raster coverage data "
@@ -7037,7 +8653,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4022
+#: reference_raster.xml:5030
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
@@ -7105,7 +8721,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4104
+#: reference_raster.xml:5112
 #, no-c-format
 msgid ""
 "Returns set of records consisting of min, max, count, percent for a given "
@@ -7114,7 +8730,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4105
+#: reference_raster.xml:5113
 #, no-c-format
 msgid ""
 "By default only considers pixel values not equal to the <varname>nodata</"
@@ -7123,13 +8739,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:4109
+#: reference_raster.xml:5117
 #, no-c-format
 msgid "<parameter>width </parameter><type>double precision[]</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4110
+#: reference_raster.xml:5118
 #, no-c-format
 msgid ""
 "width: an array indicating the width of each category/bin. If the number of "
@@ -7137,7 +8753,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4111
+#: reference_raster.xml:5119
 #, no-c-format
 msgid ""
 "Example: 9 bins, widths are [a, b, c] will have the output be [a, b, c, a, "
@@ -7145,13 +8761,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:4114
+#: reference_raster.xml:5122
 #, no-c-format
 msgid "<parameter>bins </parameter><type>integer</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4115
+#: reference_raster.xml:5123
 #, no-c-format
 msgid ""
 "Number of breakouts -- this is the number of records you'll get back from "
@@ -7160,13 +8776,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:4119
+#: reference_raster.xml:5127
 #, no-c-format
 msgid "<parameter>right </parameter><type>boolean</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4120
+#: reference_raster.xml:5128
 #, no-c-format
 msgid ""
 "compute the histogram from the right rather than from the left (default). "
@@ -7174,7 +8790,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4127
+#: reference_raster.xml:5135
 #, no-c-format
 msgid ""
 "Example: Single raster tile - compute histograms for bands 1, 2, 3 and "
@@ -7182,7 +8798,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4128
+#: reference_raster.xml:5136
 #, no-c-format
 msgid ""
 "SELECT band, (stats).*\n"
@@ -7210,13 +8826,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4132
+#: reference_raster.xml:5140
 #, no-c-format
 msgid "Example: Just band 2 but for 6 bins"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4133
+#: reference_raster.xml:5141
 #, no-c-format
 msgid ""
 "SELECT (stats).*\n"
@@ -7253,19 +8869,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4138
+#: reference_raster.xml:5146
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_SummaryStats\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4147
+#: reference_raster.xml:5156
 #, no-c-format
 msgid "ST_Quantile"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4148
+#: reference_raster.xml:5157
 #, no-c-format
 msgid ""
 "<refpurpose>Compute quantiles for a raster or raster table coverage in the "
@@ -7274,7 +8892,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4152
+#: reference_raster.xml:5161
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
@@ -7332,7 +8950,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4224
+#: reference_raster.xml:5233
 #, no-c-format
 msgid ""
 "<para>Compute quantiles for a raster or raster table coverage in the context "
@@ -7341,7 +8959,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4225 reference_raster.xml:4442
+#: reference_raster.xml:5234 reference_raster.xml:5526
 #, no-c-format
 msgid ""
 "If <varname>exclude_nodata_value</varname> is set to false, will also count "
@@ -7349,7 +8967,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4232
+#: reference_raster.xml:5241
 #, no-c-format
 msgid ""
 "UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
@@ -7375,7 +8993,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4233
+#: reference_raster.xml:5242
 #, no-c-format
 msgid ""
 "--real live example.  Quantile of all pixels in band 2 intersecting a "
@@ -7415,62 +9033,64 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4238 reference_raster.xml:4457
+#: reference_raster.xml:5247
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4244
+#: reference_raster.xml:5258
 #, no-c-format
 msgid "ST_SummaryStats"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4245
+#: reference_raster.xml:5259
 #, no-c-format
 msgid ""
-"Returns record consisting of count, sum, mean, stddev, min, max for a given "
-"raster band of a raster or raster coverage. Band 1 is assumed is no band is "
-"specified."
+"Returns summarystats consisting of count, sum, mean, stddev, min, max for a "
+"given raster band of a raster or raster coverage. Band 1 is assumed is no "
+"band is specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4249
+#: reference_raster.xml:5263
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>record <function>ST_SummaryStats</function></"
-"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
 "paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>record "
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
 "<function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
 "<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>record <function>ST_SummaryStats</function></"
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
 "funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
 "paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
-"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>record <function>ST_SummaryStats</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
 "paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
 "parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4285
+#: reference_raster.xml:5299 reference_raster.xml:5378
 #, no-c-format
 msgid ""
-"Returns record consisting of count, sum, mean, stddev, min, max for a given "
-"raster band of a raster or raster coverage. If no band is specified "
-"<varname>nband</varname> defaults to 1."
+"Returns <xref linkend=\"summarystats\"/> consisting of count, sum, mean, "
+"stddev, min, max for a given raster band of a raster or raster coverage. If "
+"no band is specified <varname>nband</varname> defaults to 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4287
+#: reference_raster.xml:5301
 #, no-c-format
 msgid ""
 "By default only considers pixel values not equal to the <varname>nodata</"
@@ -7479,21 +9099,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4289
+#: reference_raster.xml:5303
 #, no-c-format
 msgid ""
 "By default will sample all pixels. To get faster response, set "
 "<varname>sample_percent</varname> to lower than 1"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:5308
+#, no-c-format
+msgid ""
+"The ST_SummaryStats(rastertable, rastercolumn, ...) variants are deprecated "
+"as of 2.2.0. Use <xref linkend=\"RT_ST_SummaryStatsAgg\"/> instead."
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:4294
+#: reference_raster.xml:5316
 #, no-c-format
 msgid "Example: Single raster tile"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4295
+#: reference_raster.xml:5317
 #, no-c-format
 msgid ""
 "SELECT rid, band, (stats).*\n"
@@ -7509,13 +9137,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4299
+#: reference_raster.xml:5321
 #, no-c-format
 msgid "Example: Summarize pixels that intersect buildings of interest"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4300
+#: reference_raster.xml:5322
 #, no-c-format
 msgid ""
 "This example took 574ms on PostGIS windows 64-bit with all of Boston "
@@ -7524,7 +9152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4302
+#: reference_raster.xml:5324
 #, no-c-format
 msgid ""
 "WITH \n"
@@ -7560,13 +9188,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4306
+#: reference_raster.xml:5328
 #, no-c-format
 msgid "Example: Raster coverage"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4307
+#: reference_raster.xml:5329
 #, no-c-format
 msgid ""
 "-- stats for each band --\n"
@@ -7595,35 +9223,146 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4312
+#: reference_raster.xml:5334
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Clip\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_Count\"/"
+">, <xref linkend=\"RT_ST_Clip\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4321
+#: reference_raster.xml:5345
 #, no-c-format
-msgid "ST_ValueCount"
+msgid "ST_SummaryStatsAgg"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4322
+#: reference_raster.xml:5346
 #, no-c-format
 msgid ""
-"Returns a set of records containing a pixel band value and count of the "
-"number of pixels in a given band of a raster (or a raster coverage) that "
-"have a given set of values. If no band is specified defaults to band 1. By "
-"default nodata value pixels are not counted. and all other values in the "
-"pixel are output and pixel band values are rounded to the nearest integer."
+"Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, "
+"max for a given raster band of a set of raster. Band 1 is assumed is no band "
+"is specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4327
+#: reference_raster.xml:5350
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStatsAgg</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5380
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>NODATA</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to False to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5382
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between 0 and 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5389
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        (stats).count,\n"
+"        round((stats).sum::numeric, 3),\n"
+"        round((stats).mean::numeric, 3),\n"
+"        round((stats).stddev::numeric, 3),\n"
+"        round((stats).min::numeric, 3),\n"
+"        round((stats).max::numeric, 3)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats\n"
+"        FROM foo\n"
+") bar;\n"
+"\n"
+" count |  round  | round  | round |  round  | round \n"
+"-------+---------+--------+-------+---------+-------\n"
+"    20 | -68.584 | -3.429 | 6.571 | -10.000 | 3.142\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5394
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_Count\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5405
+#, no-c-format
+msgid "ST_ValueCount"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5406
+#, no-c-format
+msgid ""
+"Returns a set of records containing a pixel band value and count of the "
+"number of pixels in a given band of a raster (or a raster coverage) that "
+"have a given set of values. If no band is specified defaults to band 1. By "
+"default nodata value pixels are not counted. and all other values in the "
+"pixel are output and pixel band values are rounded to the nearest integer."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5411
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
 "\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
@@ -7719,7 +9458,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4440
+#: reference_raster.xml:5524
 #, no-c-format
 msgid ""
 "Returns a set of records with columns <varname>value</varname> "
@@ -7728,7 +9467,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4441
+#: reference_raster.xml:5525
 #, no-c-format
 msgid ""
 "If no band is specified <varname>nband</varname> defaults to 1. If no "
@@ -7739,7 +9478,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4449
+#: reference_raster.xml:5533
 #, no-c-format
 msgid ""
 "UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
@@ -7793,7 +9532,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4450
+#: reference_raster.xml:5534
 #, no-c-format
 msgid ""
 "--real live example.  Count all the pixels in an aerial raster tile band 2 "
@@ -7818,7 +9557,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4452
+#: reference_raster.xml:5536
 #, no-c-format
 msgid ""
 "-- Just return count of pixels in each raster tile that have value of 100 of "
@@ -7838,20 +9577,26 @@ msgid ""
 "  15 |    64"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:5541
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:4463
+#: reference_raster.xml:5547
 #, no-c-format
 msgid "Raster Outputs"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4466
+#: reference_raster.xml:5550
 #, no-c-format
 msgid "ST_AsBinary"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4467
+#: reference_raster.xml:5551
 #, no-c-format
 msgid ""
 "Return the Well-Known Binary (WKB) representation of the raster without SRID "
@@ -7859,37 +9604,51 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:4472
+#: reference_raster.xml:5556
 #, no-c-format
 msgid ""
 "<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>outasin=FALSE</"
+"parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4482
+#: reference_raster.xml:5567
 #, no-c-format
 msgid ""
-"Returns the Binary representation of the raster. There are 2 variants of the "
-"function. The first variant takes no endian encoding parameter and defaults "
-"to little endian. The second variant takes a second argument denoting the "
-"encoding - using little-endian ('NDR') or big-endian ('XDR') encoding."
+"Returns the Binary representation of the raster. If <varname>outasin</"
+"varname> is TRUE, out-db bands are treated as in-db."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4485
+#: reference_raster.xml:5571
 #, no-c-format
 msgid ""
 "This is useful in binary cursors to pull data out of the database without "
 "converting it to a string representation."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:5576
+#, no-c-format
+msgid ""
+"By default, WKB output contains the external file path for out-db bands. If "
+"the client does not have access to the raster file underlying an out-db "
+"band, set <varname>outasin</varname> to TRUE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5580
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of <varname>outasin</varname>"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:4492
+#: reference_raster.xml:5586
 #, no-c-format
 msgid ""
-"SELECT ST_AsBinary(rast) As rastbin\n"
-"FROM dummy_rast WHERE rid=1;\n"
+"SELECT ST_AsBinary(rast) As rastbin FROM dummy_rast WHERE rid=1;\n"
 "\n"
 "                                         rastbin\n"
 "---------------------------------------------------------------------------------\n"
@@ -7901,13 +9660,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4499
+#: reference_raster.xml:5593
 #, no-c-format
 msgid "ST_AsGDALRaster"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4500
+#: reference_raster.xml:5594
 #, no-c-format
 msgid ""
 "Return the raster tile in the designated GDAL Raster format. Raster formats "
@@ -7916,7 +9675,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:4505
+#: reference_raster.xml:5599
 #, no-c-format
 msgid ""
 "<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
@@ -7928,7 +9687,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4519
+#: reference_raster.xml:5613
 #, no-c-format
 msgid ""
 "Returns the raster tile in the designated format. Arguments are itemized "
@@ -7936,7 +9695,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4522
+#: reference_raster.xml:5616
 #, no-c-format
 msgid ""
 "<varname>format</varname> format to output. This is dependent on the drivers "
@@ -7946,7 +9705,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4527
+#: reference_raster.xml:5621
 #, no-c-format
 msgid ""
 "<varname>options</varname> text array of GDAL options. Valid options are "
@@ -7955,7 +9714,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4532
+#: reference_raster.xml:5626
 #, no-c-format
 msgid ""
 "<varname>srs</varname> The proj4text or srtext (from spatial_ref_sys) to "
@@ -7963,30 +9722,30 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4541
+#: reference_raster.xml:5635
 #, no-c-format
 msgid "JPEG Output Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4543
+#: reference_raster.xml:5637
 #, no-c-format
 msgid ""
 "SELECT ST_AsGDALRaster(rast, 'JPEG') As rastjpg\n"
 "FROM dummy_rast WHERE rid=1;\n"
 "\n"
-"SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY!['QUALITY=50']) As rastjpg\n"
+"SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY['QUALITY=50']) As rastjpg\n"
 "FROM dummy_rast WHERE rid=2;"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4548
+#: reference_raster.xml:5642
 #, no-c-format
 msgid "GTIFF Output Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4550
+#: reference_raster.xml:5644
 #, no-c-format
 msgid ""
 "SELECT ST_AsGDALRaster(rast, 'GTiff') As rastjpg\n"
@@ -8000,19 +9759,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4557
+#: reference_raster.xml:5651
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4563
+#: reference_raster.xml:5657
 #, no-c-format
 msgid "ST_AsJPEG"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4564
+#: reference_raster.xml:5658
 #, no-c-format
 msgid ""
 "Return the raster tile selected bands as a single Joint Photographic Exports "
@@ -8022,7 +9781,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4568
+#: reference_raster.xml:5662
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
@@ -8040,17 +9799,17 @@ msgid ""
 "parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
 "<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
 "<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
-"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt\"><type>text"
-"[] </type> <parameter>options=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>quality</parameter></paramdef> </"
-"funcprototype>"
+"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsJPEG</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer[] </type> <parameter>nbands</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>quality</"
+"parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4604
+#: reference_raster.xml:5698
 #, no-c-format
 msgid ""
 "Returns the selected bands of the raster as a single Joint Photographic "
@@ -8062,13 +9821,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4607 reference_raster.xml:4698
+#: reference_raster.xml:5701 reference_raster.xml:5792
 #, no-c-format
 msgid "<varname>nband</varname> is for single band exports."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4612
+#: reference_raster.xml:5706
 #, no-c-format
 msgid ""
 "<varname>nbands</varname> is an array of bands to export (note that max is 3 "
@@ -8077,7 +9836,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4617
+#: reference_raster.xml:5711
 #, no-c-format
 msgid ""
 "<varname>quality</varname> number from 0 to 100. The higher the number the "
@@ -8085,7 +9844,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4622
+#: reference_raster.xml:5716
 #, no-c-format
 msgid ""
 "<varname>options</varname> text Array of GDAL options as defined for JPEG "
@@ -8097,13 +9856,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4639
+#: reference_raster.xml:5733
 #, no-c-format
 msgid "Examples: Output"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4641
+#: reference_raster.xml:5735
 #, no-c-format
 msgid ""
 "-- output first 3 bands 75% quality\n"
@@ -8122,7 +9881,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4648
+#: reference_raster.xml:5742
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_AsGDALRaster"
@@ -8130,13 +9889,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4654
+#: reference_raster.xml:5748
 #, no-c-format
 msgid "ST_AsPNG"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4655
+#: reference_raster.xml:5749
 #, no-c-format
 msgid ""
 "Return the raster tile selected bands as a single portable network graphics "
@@ -8147,7 +9906,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4659
+#: reference_raster.xml:5753
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
@@ -8175,7 +9934,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4695
+#: reference_raster.xml:5789
 #, no-c-format
 msgid ""
 "Returns the selected bands of the raster as a single Portable Network "
@@ -8187,7 +9946,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4703 reference_raster.xml:4786
+#: reference_raster.xml:5797 reference_raster.xml:5880
 #, no-c-format
 msgid ""
 "<varname>nbands</varname> is an array of bands to export (note that max is 3 "
@@ -8196,7 +9955,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4708
+#: reference_raster.xml:5802
 #, no-c-format
 msgid ""
 "<varname>compression</varname> number from 1 to 9. The higher the number the "
@@ -8204,7 +9963,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4713
+#: reference_raster.xml:5807
 #, no-c-format
 msgid ""
 "<varname>options</varname> text Array of GDAL options as defined for PNG "
@@ -8217,7 +9976,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4732
+#: reference_raster.xml:5826
 #, no-c-format
 msgid ""
 "SELECT ST_AsPNG(rast) As rastpng\n"
@@ -8230,21 +9989,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4739
+#: reference_raster.xml:5833
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend="
-"\"RT_Raster_Applications\"/>"
+", <xref linkend=\"RT_ST_ColorMap\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_Raster_Applications\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4745
+#: reference_raster.xml:5839
 #, no-c-format
 msgid "ST_AsTIFF"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4746
+#: reference_raster.xml:5840
 #, no-c-format
 msgid ""
 "Return the raster selected bands as a single TIFF image (byte array). If no "
@@ -8252,7 +10011,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4750
+#: reference_raster.xml:5844
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
@@ -8280,7 +10039,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4783
+#: reference_raster.xml:5877
 #, no-c-format
 msgid ""
 "Returns the selected bands of the raster as a single Tagged Image File "
@@ -8293,7 +10052,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4791
+#: reference_raster.xml:5885
 #, no-c-format
 msgid ""
 "<varname>compression</varname> Compression expression -- JPEG90 (or some "
@@ -8301,7 +10060,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4796
+#: reference_raster.xml:5890
 #, no-c-format
 msgid ""
 "<varname>options</varname> text Array of GDAL create options as defined for "
@@ -8311,7 +10070,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4801
+#: reference_raster.xml:5895
 #, no-c-format
 msgid ""
 "<varname>srid</varname> srid of spatial_ref_sys of the raster. This is used "
@@ -8319,13 +10078,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4810
+#: reference_raster.xml:5904
 #, no-c-format
 msgid "Examples: Use jpeg compression 90%"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4812
+#: reference_raster.xml:5906
 #, no-c-format
 msgid ""
 "SELECT ST_AsTIFF(rast, 'JPEG90') As rasttiff\n"
@@ -8333,121 +10092,91 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4819
+#: reference_raster.xml:5913
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4825
+#: reference_raster.xml:5919
 #, no-c-format
 msgid "Raster Processing"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:4828
-#, no-c-format
-msgid "Box3D"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:4829
-#, no-c-format
-msgid "Returns the box 3d representation of the enclosing box of the raster."
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:4834
-#, no-c-format
-msgid ""
-"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </"
-"type> <parameter>rast</parameter></paramdef>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:4844
-#, no-c-format
-msgid "Returns the box representing the extent of the raster."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:4845
-#, no-c-format
-msgid ""
-"The polygon is defined by the corner points of the bounding box "
-"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</"
-"varname>, <varname>MAXY</varname>))"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:4849
-#, no-c-format
-msgid ""
-"Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of "
-"box3d. Since box2d is a deprecated type, this was changed to box3d."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:4855
+#. Tag: title
+#: reference_raster.xml:5922
 #, no-c-format
-msgid ""
-"SELECT rid, Box3D(rast) As rastbox\n"
-"FROM dummy_rast;\n"
-"\n"
-"rid |        rastbox\n"
-"----+-------------------------------------------------\n"
-"1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
-"2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
+msgid "Map Algebra"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4867
+#: reference_raster.xml:5926
 #, no-c-format
 msgid "ST_Clip"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4868
+#: reference_raster.xml:5927
 #, no-c-format
 msgid ""
-"Returns the raster clipped by the input geometry. If no band is specified "
-"all bands are returned. If <varname>crop</varname> is not specified, true is "
-"assumed meaning the output raster is cropped."
+"Returns the raster clipped by the input geometry. If band number not is "
+"specified, all bands are processed. If <varname>crop</varname> is not "
+"specified or TRUE, the output raster is cropped."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4873
+#: reference_raster.xml:5931
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
 "<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>double precision[] </type> "
 "<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>boolean </type> <parameter>crop=true</parameter></paramdef> </"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
 "funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
 "paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
-"paramdef> <paramdef><type>boolean </type> <parameter>crop</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_Clip</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
-"<parameter>band</parameter></paramdef> <paramdef><type>geometry </type> "
-"<parameter>geom</parameter></paramdef> <paramdef><type>boolean </type> "
-"<parameter>crop</parameter></paramdef> </funcprototype>"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4902
+#: reference_raster.xml:5988
 #, no-c-format
 msgid ""
 "Returns a raster that is clipped by the input geometry <varname>geom</"
-"varname>. If no band is specified all bands are returned."
+"varname>. If band index is not specified, all bands are processed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4904
+#: reference_raster.xml:5992
 #, no-c-format
 msgid ""
 "Rasters resulting from ST_Clip must have a nodata value assigned for areas "
@@ -8462,7 +10191,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4906
+#: reference_raster.xml:5996
 #, no-c-format
 msgid ""
 "If <varname>crop</varname> is not specified, true is assumed meaning the "
@@ -8472,7 +10201,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4910
+#: reference_raster.xml:6002
+#, no-c-format
+msgid "Enhanced: 2.1.0 Rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6004
 #, no-c-format
 msgid ""
 "Examples here use Massachusetts aerial data available on MassGIS site <ulink "
@@ -8481,13 +10216,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4914
+#: reference_raster.xml:6010
 #, no-c-format
 msgid "Examples: 1 band clipping"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4915
+#: reference_raster.xml:6012
 #, no-c-format
 msgid ""
 "-- Clip the first band of an aerial tile by a 20 meter buffer.\n"
@@ -8498,7 +10233,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4917
+#: reference_raster.xml:6014
 #, no-c-format
 msgid ""
 "-- Demonstrate effect of crop on final dimensions of raster\n"
@@ -8520,27 +10255,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4927 reference_raster.xml:4957
-#: reference_raster.xml:4988
+#: reference_raster.xml:6028 reference_raster.xml:6071
+#: reference_raster.xml:6114
 #, no-c-format
 msgid "Full raster tile before clipping"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4936 reference_raster.xml:4997
+#: reference_raster.xml:6042 reference_raster.xml:6128
 #, no-c-format
 msgid "After Clipping"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4946
+#: reference_raster.xml:6055
 #, no-c-format
 msgid ""
 "Examples: 1 band clipping with no crop and add back other bands unchanged"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4947
+#: reference_raster.xml:6057
 #, no-c-format
 msgid ""
 "-- Same example as before, but we need to set crop to false to be able to "
@@ -8553,19 +10288,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4966
+#: reference_raster.xml:6085
 #, no-c-format
 msgid "After Clipping - surreal"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4976
+#: reference_raster.xml:6098
 #, no-c-format
 msgid "Examples: Clip all bands"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4977
+#: reference_raster.xml:6100
 #, no-c-format
 msgid ""
 "-- Clip all bands of an aerial tile by a 20 meter buffer.\n"
@@ -8579,489 +10314,345 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5009
+#: reference_raster.xml:6143
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Intersection\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Intersection\"/"
+">"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5015
+#: reference_raster.xml:6153
 #, no-c-format
-msgid "ST_ConvexHull"
+msgid "ST_ColorMap"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5016
+#: reference_raster.xml:6154
 #, no-c-format
 msgid ""
-"Return the convex hull geometry of the raster including pixel values equal "
-"to BandNoDataValue. For regular shaped and non-skewed rasters, this gives "
-"the same result as ST_Envelope so only useful for irregularly shaped or "
-"skewed rasters."
+"Creates a new raster of up to four 8BUI bands (grayscale, RGB, RGBA) from "
+"the source raster and a specified band. Band 1 is assumed if not specified."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:5023
+#: reference_raster.xml:6159
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>colormap=grayscale</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>method=INTERPOLATE</parameter></paramdef>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5033
+#. Tag: funcprototype
+#: reference_raster.xml:6169
 #, no-c-format
 msgid ""
-"Return the convex hull geometry of the raster including the NoDataBandValue "
-"band pixels. For regular shaped and non-skewed rasters, this gives more or "
-"less the same result as ST_Envelope so only useful for irregularly shaped or "
-"skewed rasters."
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>colormap</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>method=INTERPOLATE</"
+"parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5037
+#: reference_raster.xml:6181
 #, no-c-format
 msgid ""
-"ST_Envelope floors the coordinates and hence add a little buffer around the "
-"raster so the answer is subtly different from ST_ConvexHull which does not "
-"floor."
+"Apply a <varname>colormap</varname> to the band at <varname>nband</varname> "
+"of <varname>rast</varname> resulting a new raster comprised of up to four "
+"8BUI bands. The number of 8BUI bands in the new raster is determined by the "
+"number of color components defined in <varname>colormap</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5044
+#: reference_raster.xml:6185
 #, no-c-format
-msgid ""
-"Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
-"SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram "
-"of this."
+msgid "If <varname>nband</varname> is not specified, then band 1 is assumed."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5052
+#. Tag: para
+#: reference_raster.xml:6187
 #, no-c-format
 msgid ""
-"-- Note envelope and convexhull are more or less the same\n"
-"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
-"        ST_AsText(ST_Envelope(rast)) As env\n"
-"FROM dummy_rast WHERE rid=1;\n"
-"\n"
-"                        convhull                        |                "
-"env\n"
-"\n"
-"--------------------------------------------------------"
-"+-----------------------\n"
-" POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 "
-"0,20 60,0 60,0 0))"
+"<varname>colormap</varname> can be a keyword of a pre-defined colormap or a "
+"set of lines defining the value and the color components."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5059
+#. Tag: para
+#: reference_raster.xml:6191
 #, no-c-format
-msgid ""
-"-- now we skew the raster \n"
-"-- note how the convex hull and envelope are now different\n"
-"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
-"        ST_AsText(ST_Envelope(rast)) As env\n"
-"FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
-"        FROM dummy_rast WHERE rid=1) As foo;\n"
-"        \n"
-"                        convhull                        |                "
-"env\n"
-"\n"
-"--------------------------------------------------------"
-"+------------------------------------\n"
-" POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 "
-"0,22 61,0 61,0 0))"
+msgid "Valid pre-defined <varname>colormap</varname> keyword:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5071
+#: reference_raster.xml:6197
 #, no-c-format
-msgid ", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend=\"ST_AsText\"/>"
+msgid ""
+"<varname>grayscale</varname> or <varname>greyscale</varname> for a one 8BUI "
+"band raster of shades of gray."
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:5077
+#. Tag: para
+#: reference_raster.xml:6202
 #, no-c-format
-msgid "ST_DumpAsPolygons"
+msgid ""
+"<varname>pseudocolor</varname> for a four 8BUI (RGBA) band raster with "
+"colors going from blue to green to red."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:5078
+#. Tag: para
+#: reference_raster.xml:6207
 #, no-c-format
 msgid ""
-"Returns a set of geomval (geom,val) rows, from a given raster band. If no "
-"band number is specified, band num defaults to 1."
+"<varname>fire</varname> for a four 8BUI (RGBA) band raster with colors going "
+"from black to red to pale yellow."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:5083
+#. Tag: para
+#: reference_raster.xml:6212
 #, no-c-format
 msgid ""
-"<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
-"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+"<varname>bluered</varname> for a four 8BUI (RGBA) band raster with colors "
+"going from blue to pale white to red."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5094
+#: reference_raster.xml:6218
 #, no-c-format
 msgid ""
-"This is a set-returning function (SRF). It returns a set of geomval rows, "
-"formed by a geometry (geom) and a pixel band value (val). Each polygon is "
-"the union of all pixels for that band that have the same pixel value denoted "
-"by val."
+"Users can pass a set of entries (one per line) to <varname>colormap</"
+"varname> to specify custom colormaps. Each entry generally consists of five "
+"values: the pixel value and corresponding Red, Green, Blue, Alpha components "
+"(color components between 0 and 255). Percent values can be used instead of "
+"pixel values where 0% and 100% are the minimum and maximum values found in "
+"the raster band. Values can be separated with commas (','), tabs, colons "
+"(':') and/or spaces. The pixel value can be set to <emphasis>nv</emphasis>, "
+"<emphasis>null</emphasis> or <emphasis>nodata</emphasis> for the NODATA "
+"value. An example is provided below."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5098
+#. Tag: programlisting
+#: reference_raster.xml:6222
 #, no-c-format
 msgid ""
-"ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a "
-"GROUP BY in that it creates new rows. For example it can be used to expand a "
-"single raster into multiple POLYGONS/MULTIPOLYGONS."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5102
-#, no-c-format
-msgid "Availability: Requires GDAL 1.7 or higher."
+"5 0 0 0 255\n"
+"4 100:50 55 255\n"
+"1 150,100 150 255\n"
+"0% 255 255 255 255\n"
+"nv 0 0 0 0"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5103
+#: reference_raster.xml:6224
 #, no-c-format
 msgid ""
-"If there is a no data value set for a band, pixels with that value will not "
-"be returned."
+"The syntax of <varname>colormap</varname> is similar to that of the color-"
+"relief mode of GDAL <ulink url=\"http://www.gdal.org/gdaldem."
+"html#gdaldem_color_relief\">gdaldem</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5104
+#: reference_raster.xml:6228
 #, no-c-format
-msgid ""
-"If you only care about count of pixels with a given value in a raster, it is "
-"faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
+msgid "Valid keywords for <varname>method</varname>:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5106
+#: reference_raster.xml:6234
 #, no-c-format
 msgid ""
-"This is different than ST_PixelAsPolygons where one geometry is returned for "
-"each pixel regardless of pixel value."
+"<varname>INTERPOLATE</varname> to use linear interpolation to smoothly blend "
+"the colors between the given pixel values"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5114
+#. Tag: para
+#: reference_raster.xml:6239
 #, no-c-format
 msgid ""
-"SELECT val, ST_AsText(geom) As geomwkt\n"
-"FROM (\n"
-"SELECT (ST_DumpAsPolygons(rast)).*\n"
-"FROM dummy_rast \n"
-"WHERE rid = 2\n"
-") As foo\n"
-"WHERE val BETWEEN 249 and 251\n"
-"ORDER BY val;\n"
-"\n"
-" val |                                                       geomwkt\n"
-"-----"
-"+--------------------------------------------------------------------------\n"
-" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 "
-"5793243.85,\n"
-"                 3427928 5793243.95,3427927.95 5793243.95))\n"
-" 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 "
-"5793243.85,\n"
-"                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
-" 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 "
-"5793243.75,\n"
-"                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
-" 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 "
-"5793243.8,\n"
-"                 3427927.8 5793243.85,3427927.75 5793243.85))"
+"<varname>EXACT</varname> to strictly match only those pixels values found in "
+"the colormap. Pixels whose value does not match a colormap entry will be set "
+"to 0 0 0 0 (RGBA)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5118
+#: reference_raster.xml:6244
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref "
-"linkend=\"RT_ST_ValueCount\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5124
-#, no-c-format
-msgid "ST_Envelope"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5125
-#, no-c-format
-msgid "Returns the polygon representation of the extent of the raster."
+"<varname>NEAREST</varname> to use the colormap entry whose value is closest "
+"to the pixel value"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:5130
+#. Tag: para
+#: reference_raster.xml:6251
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+"A great reference for colormaps is <ulink url=\"http://www.colorbrewer2.org"
+"\">ColorBrewer</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5140
+#: reference_raster.xml:6256
 #, no-c-format
 msgid ""
-"Returns the polygon representation of the extent of the raster in spatial "
-"coordinate units defined by srid. It is a float8 minimum bounding box "
-"represented as a polygon."
+"The resulting bands of new raster will have no NODATA value set. Use <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/> to set a NODATA value if one is "
+"needed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5141
+#: reference_raster.xml:6266
 #, no-c-format
-msgid ""
-"The polygon is defined by the corner points of the bounding box "
-"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
-"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
-"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
-"(<varname>MINX</varname>, <varname>MINY</varname>))"
+msgid "This is a junk table to play with"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5152
+#: reference_raster.xml:6268
 #, no-c-format
 msgid ""
-"SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
-"FROM dummy_rast;\n"
+"-- setup test raster table --\n"
+"DROP TABLE IF EXISTS funky_shapes;\n"
+"CREATE TABLE funky_shapes(rast raster);\n"
 "\n"
-" rid |                                         envgeomwkt\n"
-"-----+--------------------------------------------------------------------\n"
-"   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
-"   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
-"                   3427928 5793244,3427927 5793244, 3427927 5793243))"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5158
-#, no-c-format
-msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5164
-#, no-c-format
-msgid "ST_HillShade"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5165
-#, no-c-format
-msgid ""
-"Returns the hypothetical illumination of an elevation raster band using "
-"provided azimuth, altitude, brightness and elevation scale inputs. Useful "
-"for visualizing terrain."
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:5169
-#, no-c-format
-msgid ""
-"<funcdef>raster <function>ST_HillShade</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
-"<paramdef><type>double precision </type> <parameter>azimuth</parameter></"
-"paramdef> <paramdef><type>double precision </type> <parameter>altitude</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
-"type> <parameter>max_bright=255</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>elevation_scale=1</parameter></"
-"paramdef>"
+"INSERT INTO funky_shapes(rast)\n"
+"WITH ref AS (\n"
+"        SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_Union(rast)\n"
+"FROM (\n"
+"        SELECT \n"
+"                ST_AsRaster(\n"
+"                        ST_Rotate(\n"
+"                                ST_Buffer(\n"
+"                                        ST_GeomFromText('LINESTRING(0 2,50 "
+"50,150 150,125 50)'),\n"
+"                                        i*2\n"
+"                                ),\n"
+"                                pi() * i * 0.125, ST_Point(50,50)\n"
+"                        ),\n"
+"                        ref.rast, '8BUI'::text, i * 5\n"
+"                ) AS rast\n"
+"        FROM ref\n"
+"        CROSS JOIN generate_series(1, 10, 3) AS i\n"
+") AS shapes;"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5185
+#. Tag: programlisting
+#: reference_raster.xml:6270
 #, no-c-format
 msgid ""
-"Returns the hypothetical illumination of an elevation raster band using the "
-"azimuth, altitude, brightness, and elevation scale inputs. Utilizes map "
-"algebra and applies the hill shade equation to neighboring pixels."
+"SELECT\n"
+"        ST_NumBands(rast) As n_orig,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'greyscale')) As ngrey,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'pseudocolor')) As npseudo,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'fire')) As nfire,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'bluered')) As nbluered,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As nred\n"
+"FROM funky_shapes;"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5186
+#. Tag: screen
+#: reference_raster.xml:6272
 #, no-c-format
 msgid ""
-"The hill shade equation is: <programlisting>max_bright * ( (cos(zenith)*cos"
-"(slope)) + (sin(zenith)*sin(slope)*cos(azimuth - aspect)) )</programlisting>."
+"n_orig | ngrey | npseudo | nfire | nbluered | nred\n"
+"--------+-------+---------+-------+----------+------\n"
+"      1 |     1 |       4 |     4 |        4 |    3"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5192 reference_raster.xml:5257
-#: reference_raster.xml:5322
+#: reference_raster.xml:6276
 #, no-c-format
-msgid "Examples - coming soon"
+msgid "Examples: Compare different color map looks using ST_AsPNG"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5193 reference_raster.xml:5258
-#: reference_raster.xml:5323
-#, no-c-format
-msgid "coming soon"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5207
-#, no-c-format
-msgid "ST_Aspect"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5208
-#, no-c-format
-msgid ""
-"Returns the surface aspect of an elevation raster band. Useful for analyzing "
-"terrain."
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:5212
+#: reference_raster.xml:6277
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Aspect</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+"SELECT\n"
+"        ST_AsPNG(rast) As orig_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1,'greyscale')) As grey_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'pseudocolor')) As pseudo_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'nfire')) As fire_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'bluered')) As bluered_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As red_png\n"
+"FROM funky_shapes;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5224
+#: reference_raster.xml:6291
 #, no-c-format
-msgid ""
-"Returns the surface aspect of an elevation raster band. Utilizes map algebra "
-"and applies the aspect equation to neighboring pixels."
+msgid "orig_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5226 reference_raster.xml:5291
-#, no-c-format
-msgid "Given the following representation of a 3x3 neighborhood of pixels:"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5232 reference_raster.xml:5297
-#, no-c-format
-msgid "<entry>A</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5233 reference_raster.xml:5298
-#, no-c-format
-msgid "<entry>B</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5234 reference_raster.xml:5299
-#, no-c-format
-msgid "<entry>C</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5237 reference_raster.xml:5302
-#, no-c-format
-msgid "<entry>D</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5238 reference_raster.xml:5303
-#, no-c-format
-msgid "<entry>E</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5239 reference_raster.xml:5304
-#, no-c-format
-msgid "<entry>F</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5242 reference_raster.xml:5307
-#, no-c-format
-msgid "<entry>G</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5243 reference_raster.xml:5308
-#, no-c-format
-msgid "<entry>H</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5244 reference_raster.xml:5309
+#: reference_raster.xml:6305
 #, no-c-format
-msgid "<entry>I</entry>"
+msgid "grey_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5250
-#, no-c-format
-msgid ""
-"The equation for the pixel aspect of cell E is: atan2((((G + 2H + I) - (A + "
-"2B + C)) / 8), -(((C + 2F + I) - (A + 2D + G)) / 8))"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5272
+#: reference_raster.xml:6319
 #, no-c-format
-msgid "ST_Slope"
+msgid "pseudo_png"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:5273
+#. Tag: para
+#: reference_raster.xml:6335
 #, no-c-format
-msgid ""
-"Returns the surface slope of an elevation raster band. Useful for analyzing "
-"terrain."
+msgid "fire_png"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:5277
+#. Tag: para
+#: reference_raster.xml:6349
 #, no-c-format
-msgid ""
-"<funcdef>raster <function>ST_Slope</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+msgid "bluered_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5289
+#: reference_raster.xml:6363
 #, no-c-format
-msgid ""
-"Returns the surface slope of an elevation raster band. Utilizes map algebra "
-"and applies the slope equation to neighboring pixels."
+msgid "red_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5315
+#: reference_raster.xml:6377
 #, no-c-format
 msgid ""
-"The equation for the pixel slope of cell E is: atan(sqrt(((c + 2f + i) - (a "
-"+ 2d + g) / 8)^2 + (((g + 2h + i) - (a + 2b + c)) / 8) ^ 2))"
+", <xref linkend=\"RT_ST_AsRaster\"/> <xref linkend=\"RT_ST_MapAlgebra\"/>, "
+"<xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5337
+#: reference_raster.xml:6391
 #, no-c-format
 msgid "ST_Intersection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5338
+#: reference_raster.xml:6392
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a raster or a set of geometry-pixelvalue pairs "
@@ -9070,7 +10661,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5342
+#: reference_raster.xml:6396
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
@@ -9115,7 +10706,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5402
+#: reference_raster.xml:6456
 #, no-c-format
 msgid ""
 "<para>Returns a raster or a set of geometry-pixelvalue pairs representing "
@@ -9124,7 +10715,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5404
+#: reference_raster.xml:6460
 #, no-c-format
 msgid ""
 "The first three variants, returning a setof geomval, works in vector space. "
@@ -9137,7 +10728,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5406
+#: reference_raster.xml:6464
 #, no-c-format
 msgid ""
 "You can access the geometry and the value parts of the resulting set of "
@@ -9146,7 +10737,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5408
+#: reference_raster.xml:6468
 #, no-c-format
 msgid ""
 "The other variants, returning a raster, works in raster space. They are "
@@ -9155,7 +10746,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5410
+#: reference_raster.xml:6472
 #, no-c-format
 msgid ""
 "The extent of the resulting raster corresponds to the geometrical "
@@ -9168,7 +10759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5412
+#: reference_raster.xml:6476
 #, no-c-format
 msgid ""
 "Rasters resulting from ST_Intersection must have a nodata value assigned for "
@@ -9184,13 +10775,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5414
+#: reference_raster.xml:6480
 #, no-c-format
 msgid "In all variants, if no band number is specified band 1 is assumed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5416
+#: reference_raster.xml:6485
 #, no-c-format
 msgid ""
 "To get more control on the resulting extent or on what to return when "
@@ -9199,7 +10790,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5418
+#: reference_raster.xml:6491
 #, no-c-format
 msgid ""
 "To compute the intersection of a raster band with a geometry in raster "
@@ -9208,7 +10799,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5420
+#: reference_raster.xml:6497
 #, no-c-format
 msgid ""
 "ST_Intersection should be used in conjunction with ST_Intersects and an "
@@ -9216,7 +10807,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5422
+#: reference_raster.xml:6502
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 - Intersection in the raster space was introduced. In "
@@ -9225,27 +10816,35 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5426
+#: reference_raster.xml:6508
 #, no-c-format
 msgid "Examples: Geometry, Raster -- resulting in geometry vals"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5428
+#: reference_raster.xml:6510
 #, no-c-format
 msgid ""
-"SELECT foo.rid, foo.gid, \n"
-"   ST_AsText((foo.geomval).geom) As geomwkt, (foo.geomval).val\n"
-"FROM\n"
-"        (\n"
-"SELECT A.rid, g.gid , ST_Intersection(A.rast, g.geom) As geomval\n"
-" FROM dummy_rast AS A CROSS JOIN \n"
-"        (VALUES (1, ST_Point(3427928, 5793243.85) ) ,\n"
-"                (2, ST_GeomFromText('LINESTRING(3427927.85 "
-"5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)') ),\n"
-"                (3, ST_GeomFromText('LINESTRING(1 2, 3 4)') )\n"
-"                ) As g(gid,geom)\n"
-"WHERE A.rid =2 ) As foo;\n"
+"SELECT\n"
+"        foo.rid,\n"
+"        foo.gid,\n"
+"        ST_AsText((foo.geomval).geom) As geomwkt,\n"
+"        (foo.geomval).val\n"
+"FROM (\n"
+"        SELECT\n"
+"                A.rid,\n"
+"                g.gid,\n"
+"                ST_Intersection(A.rast, g.geom) As geomval\n"
+"        FROM dummy_rast AS A\n"
+"        CROSS JOIN (\n"
+"                VALUES\n"
+"                        (1, ST_Point(3427928, 5793243.85) ),\n"
+"                        (2, ST_GeomFromText('LINESTRING(3427927.85 "
+"5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)')),\n"
+"                        (3, ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"        ) As g(gid,geom)\n"
+"        WHERE A.rid = 2\n"
+") As foo;\n"
 "\n"
 " rid | gid |      "
 "geomwkt                                                                                                "
@@ -9275,19 +10874,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5433
+#: reference_raster.xml:6514
 #, no-c-format
 msgid "Example: Raster, Geometry -- resulting is a raster"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5434
+#: reference_raster.xml:6515
 #, no-c-format
 msgid "Examples coming soon"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5441
+#: reference_raster.xml:6521
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Intersects\"/>, <xref linkend="
@@ -9296,21 +10895,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5447
+#: reference_raster.xml:6533 reference_raster.xml:6780
 #, no-c-format
 msgid "ST_MapAlgebra"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5448
+#: reference_raster.xml:6534
 #, no-c-format
 msgid ""
-"<refpurpose>Returns a one-band raster given one or more input rasters, band "
-"indexes and one user-specified callback function.</refpurpose>"
+"Callback function version - Returns a one-band raster given one or more "
+"input rasters, band indexes and one user-specified callback function."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5454
+#: reference_raster.xml:6540
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
@@ -9369,20 +10968,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5515
+#: reference_raster.xml:6601
+#, no-c-format
+msgid ""
+"Returns a one-band raster given one or more input rasters, band indexes and "
+"one user-specified callback function."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6607
+#, no-c-format
+msgid "rast,rast1,rast2, rastbandargset"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6609
+#, no-c-format
+msgid "Rasters on which the map algebra process is evaluated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6610
 #, no-c-format
 msgid ""
-"<para>Returns a one-band raster given one or more input rasters, band "
-"indexes and one user-specified callback function.</para>"
+"<varname>rastbandargset</varname> allows the use of a map algebra operation "
+"on many rasters and/or many bands. See example Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6615
+#, no-c-format
+msgid "nband, nband1, nband2"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5519
+#: reference_raster.xml:6617
 #, no-c-format
 msgid ""
-"The <varname>tworastuserfunc</varname> parameter must be the name and "
-"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
-"PL/pgSQL function example is: <programlisting>\n"
+"Band numbers of the raster to be evaluated. nband can be an integer or "
+"integer[] denoting the bands. nband1 is band on rast1 and nband2 is band on "
+"rast2 for hte 2 raster/2band case."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6623
+#, no-c-format
+msgid "callbackfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6625
+#, no-c-format
+msgid ""
+"The <varname>callbackfunc</varname> parameter must be the name and signature "
+"of an SQL or PL/pgSQL function, cast to a regprocedure. An example PL/pgSQL "
+"function example is: <programlisting>\n"
 "CREATE OR REPLACE FUNCTION sample_callbackfunc(value double precision[][][], "
 "position integer[][], VARIADIC userargs text[])\n"
 "        RETURNS double precision\n"
@@ -9391,23 +11031,23 @@ msgid ""
 "                RETURN 0;\n"
 "        END;\n"
 "        $$ LANGUAGE 'plpgsql' IMMUTABLE;\n"
-"                                        </programlisting> The "
-"<varname>callbackfunc</varname> must have three arguments: a 3-dimension "
-"double precision array, a 2-dimension double precision array and a variadic "
-"1-dimension text array. The first argument <varname>value</varname> is the "
-"set of values (as double precision) from all input rasters. The three "
-"dimensions (where indexes are 1-based) are: raster #, row y, column x. The "
-"second argument <varname>position</varname> is the set of pixel positions "
-"from the output raster and input rasters. The outer dimension (where indexes "
-"are 0-based) is the raster #. The position at outer dimension index 0 is the "
-"output raster's pixel position. For each outer dimension, there are two "
-"elements in the inner dimension for X and Y. The third argument "
-"<varname>userargs</varname> is for passing through any user-specified "
-"arguments."
+"                                                                        </"
+"programlisting> The <varname>callbackfunc</varname> must have three "
+"arguments: a 3-dimension double precision array, a 2-dimension integer array "
+"and a variadic 1-dimension text array. The first argument <varname>value</"
+"varname> is the set of values (as double precision) from all input rasters. "
+"The three dimensions (where indexes are 1-based) are: raster #, row y, "
+"column x. The second argument <varname>position</varname> is the set of "
+"pixel positions from the output raster and input rasters. The outer "
+"dimension (where indexes are 0-based) is the raster #. The position at outer "
+"dimension index 0 is the output raster's pixel position. For each outer "
+"dimension, there are two elements in the inner dimension for X and Y. The "
+"third argument <varname>userargs</varname> is for passing through any user-"
+"specified arguments."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5526
+#: reference_raster.xml:6632
 #, no-c-format
 msgid ""
 "Passing a <type>regprocedure</type> argument to a SQL function requires the "
@@ -9415,66 +11055,136 @@ msgid ""
 "type> type. To pass the above example PL/pgSQL function as an argument, the "
 "SQL for the argument is: <programlisting>\n"
 "'sample_callbackfunc(double precision[], integer[], text[])'::regprocedure\n"
-"                                        </programlisting> Note that the "
-"argument contains the name of the function, the types of the function "
-"arguments, quotes around the name and argument types, and a cast to a "
-"<type>regprocedure</type>."
+"                                                                        </"
+"programlisting> Note that the argument contains the name of the function, "
+"the types of the function arguments, quotes around the name and argument "
+"types, and a cast to a <type>regprocedure</type>."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5534
+#. Tag: term
+#: reference_raster.xml:6644 reference_raster.xml:6894
+#: reference_raster.xml:7189 reference_raster.xml:7743
 #, no-c-format
-msgid ""
-"The third argument to the <varname>callbackfunc</varname> is a "
-"<type>variadic text</type> array. All trailing text arguments are passed "
-"through to the specified <varname>callbackfunc</varname>, and are contained "
-"in the <varname>userargs</varname> argument."
+msgid "pixeltype"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5539 reference_raster.xml:5998
-#: reference_raster.xml:6095
+#: reference_raster.xml:6646
 #, no-c-format
 msgid ""
-"For more information about the VARIADIC keyword, please refer to the "
-"PostgreSQL documentation and the \"SQL Functions with Variable Numbers of "
-"Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/"
-"static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
+"If <varname>pixeltype</varname> is passed in, the one band of the new raster "
+"will be of that pixeltype. If pixeltype is passed NULL or left out, the new "
+"raster band will have the same pixeltype as the specified band of the first "
+"raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the "
+"specified band of the appropriate raster (for extent types: SECOND, LAST). "
+"If in doubt, always specify <varname>pixeltype</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5545
+#: reference_raster.xml:6649
 #, no-c-format
 msgid ""
-"The <type>text[]</type> argument to the <varname>callbackfunc</varname> is "
-"required, regardless of whether you choose to pass any arguments to the "
-"callback function for processing or not."
+"The resulting pixel type of the output raster must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6656 reference_raster.xml:6902
+#: reference_raster.xml:7198
+#, no-c-format
+msgid "extenttype"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5550
+#: reference_raster.xml:6658
 #, no-c-format
 msgid ""
-"If <varname>pixeltype</varname> is passed in, the one band of the new raster "
-"will be of that pixeltype. If pixeltype is passed NULL or left out, the new "
-"raster band will have the same pixeltype as the specified band of the first "
-"raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the "
-"specified band of the appropriate raster (for extent types: SECOND, LAST). "
-"If in doubt, always specify <varname>pixeltype</varname>."
+"Possible values are INTERSECTION (default), UNION, FIRST (default for one "
+"raster variants), SECOND, LAST, CUSTOM."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6665
+#, no-c-format
+msgid "customextent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6667
+#, no-c-format
+msgid ""
+"If <varname>extentype</varname> is CUSTOM, a raster must be provided for "
+"<varname>customextent</varname>. See example 4 of Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6674
+#, no-c-format
+msgid "distancex"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6676
+#, no-c-format
+msgid ""
+"The distance in pixels from the reference cell. So width of resulting matrix "
+"would be <code>2*distancex + 1</code>.If not specified only the reference "
+"cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6683
+#, no-c-format
+msgid "distancey"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6685
+#, no-c-format
+msgid ""
+"The distance in pixels from reference cell in y direction. Height of "
+"resulting matrix would be <code>2*distancey + 1</code> .If not specified "
+"only the reference cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6692
+#, no-c-format
+msgid "userargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6694
+#, no-c-format
+msgid ""
+"The third argument to the <varname>callbackfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments are passed "
+"through to the specified <varname>callbackfunc</varname>, and are contained "
+"in the <varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6702 reference_raster.xml:7518
+#: reference_raster.xml:7637
+#, no-c-format
+msgid ""
+"For more information about the VARIADIC keyword, please refer to the "
+"PostgreSQL documentation and the \"SQL Functions with Variable Numbers of "
+"Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5554
+#: reference_raster.xml:6708
 #, no-c-format
 msgid ""
-"Possible values for <varname>extenttype</varname> are: INTERSECTION "
-"(default), UNION, FIRST (default for one raster variants), SECOND, LAST, "
-"CUSTOM. If <varname>extentype</varname> is CUSTOM, a raster must be provided "
-"for <varname>customextent</varname>. See example 4 of Variant 1."
+"The <type>text[]</type> argument to the <varname>callbackfunc</varname> is "
+"required, regardless of whether you choose to pass any arguments to the "
+"callback function for processing or not."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5558
+#: reference_raster.xml:6713
 #, no-c-format
 msgid ""
 "Variant 1 accepts an array of <varname>rastbandarg</varname> allowing the "
@@ -9483,7 +11193,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5562
+#: reference_raster.xml:6717
 #, no-c-format
 msgid ""
 "Variants 2 and 3 operate upon one or more bands of one raster. See example "
@@ -9491,18 +11201,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5566
+#: reference_raster.xml:6721
 #, no-c-format
 msgid ""
 "Variant 4 operate upon two rasters with one band per raster. See example "
 "Variant 4."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6732 reference_raster.xml:6754
+#, no-c-format
+msgid "One raster, one band"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5585
+#: reference_raster.xml:6733
 #, no-c-format
 msgid ""
-"-- one raster, one band\n"
 "WITH foo AS (\n"
 "        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
 "0, 0), 1, '16BUI', 1, 0) AS rast\n"
@@ -9516,15 +11231,20 @@ msgid ""
 "FROM foo"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6735 reference_raster.xml:6751
+#, no-c-format
+msgid "One raster, several bands"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5587
+#: reference_raster.xml:6736
 #, no-c-format
 msgid ""
-"-- one raster, several bands\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
@@ -9536,23 +11256,29 @@ msgid ""
 "FROM foo"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6738
+#, no-c-format
+msgid "Several rasters, several bands"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5589
+#: reference_raster.xml:6739
 #, no-c-format
 msgid ""
-"-- several rasters, several bands\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast UNION ALL\n"
-"        SELECT 2 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 1, 1, -1, 0, 0, 0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, "
-"'32BUI', 300, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
-"                ARRAY[ROW(t1.rast, 3), ROW(t2.rast, 1), ROW(t2.rast, 3), ROW"
-"(t1.rast, 2)]::rastbandarg[],\n"
+"                ARRAY[ROW(t1.rast, 3), ROW(t2.rast, 1), ROW(t2.rast, 3), "
+"ROW(t1.rast, 2)]::rastbandarg[],\n"
 "                'sample_callbackfunc(double precision[], int[], text[])'::"
 "regprocedure\n"
 "        ) AS rast\n"
@@ -9562,11 +11288,18 @@ msgid ""
 "        AND t2.rid = 2"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6741
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage with neighborhood. This query only "
+"works with PostgreSQL 9.1 or higher."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5591
+#: reference_raster.xml:6742
 #, no-c-format
 msgid ""
-"-- complete example of tiles of a coverage with neighborhood\n"
 "WITH foo AS (\n"
 "        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
 "0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
@@ -9599,29 +11332,95 @@ msgid ""
 "                'CUSTOM', t1.rast,\n"
 "                1, 1\n"
 "        ) AS rast\n"
-"FROM raster_nmapalgebra_in t1\n"
-"CROSS JOIN raster_nmapalgebra_in t2\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
 "WHERE t1.rid = 4\n"
 "        AND t2.rid BETWEEN 0 AND 8\n"
 "        AND ST_Intersects(t1.rast, t2.rast)\n"
 "GROUP BY t1.rid, t1.rast"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6744
+#, no-c-format
+msgid ""
+"Example like the prior one for tiles of a coverage with neighborhood but "
+"works with PostgreSQL 9.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6745
+#, no-c-format
+msgid ""
+"WITH src AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"WITH foo AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_Union(t2.rast) AS rast\n"
+"        FROM src t1\n"
+"        JOIN src t2\n"
+"                ON ST_Intersects(t1.rast, t2.rast)\n"
+"                AND t2.rid BETWEEN 0 AND 8\n"
+"        WHERE t1.rid = 4\n"
+"        GROUP BY t1.rid\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_MapAlgebra(\n"
+"                        ARRAY[ROW(t2.rast, 1)]::rastbandarg[],\n"
+"                        'raster_nmapalgebra_test(double precision[], int[], "
+"text[])'::regprocedure,\n"
+"                        '32BUI',\n"
+"                        'CUSTOM', t1.rast,\n"
+"                        1, 1\n"
+"                ) AS rast\n"
+"        FROM src t1\n"
+"        JOIN foo t2\n"
+"                ON t1.rid = t2.rid \n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_Metadata(rast)),\n"
+"        (ST_BandMetadata(rast, 1)),\n"
+"        ST_Value(rast, 1, 1, 1)\n"
+"FROM bar;"
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:5596
+#: reference_raster.xml:6749
 #, no-c-format
 msgid "Examples: Variants 2 and 3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5598
+#: reference_raster.xml:6752
 #, no-c-format
 msgid ""
-"-- one raster, several bands\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
@@ -9633,14 +11432,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5600
+#: reference_raster.xml:6755
 #, no-c-format
 msgid ""
-"-- one raster, one band\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
@@ -9652,23 +11450,29 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5605
+#: reference_raster.xml:6759
 #, no-c-format
 msgid "Examples: Variant 4"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6761
+#, no-c-format
+msgid "Two rasters, two bands"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5607
+#: reference_raster.xml:6762
 #, no-c-format
 msgid ""
-"-- two rasters, two bands\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast UNION ALL\n"
-"        SELECT 2 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 1, 1, -1, 0, 0, 0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, "
-"'32BUI', 300, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
@@ -9684,58 +11488,94 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5614
-#, no-c-format
-msgid ", <xref linkend=\"RT_ST_Union\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5625 reference_raster.xml:5712
+#: reference_raster.xml:6769
 #, no-c-format
-msgid "ST_MapAlgebraExpr"
+msgid ""
+", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra_expr\"/>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5626
+#: reference_raster.xml:6781
 #, no-c-format
 msgid ""
-"1 raster band version: Creates a new one band raster formed by applying a "
-"valid PostgreSQL algebraic operation on the input raster band and of "
-"pixeltype provided. Band 1 is assumed if no band is specified."
+"<refpurpose>Expression version - Returns a one-band raster given one or two "
+"input rasters, band indexes and one or more user-specified SQL expressions.</"
+"refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5630
+#: reference_raster.xml:6787
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
 "<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebra</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>expression</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6838
+#, no-c-format
+msgid ""
+"<para>Expression version - Returns a one-band raster given one or two input "
+"rasters, band indexes and one or more user-specified SQL expressions.</para>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6846
+#, no-c-format
+msgid "Description: Variants 1 and 2 (one raster)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5653
+#: reference_raster.xml:6848
 #, no-c-format
 msgid ""
 "Creates a new one band raster formed by applying a valid PostgreSQL "
 "algebraic operation defined by the <varname>expression</varname> on the "
-"input raster (<varname>rast</varname>). If no <varname>band</varname> is "
-"specified band 1 is assumed. The new raster will have the same georeference, "
+"input raster (<varname>rast</varname>). If <varname>nband</varname> is not "
+"provided, band 1 is assumed. The new raster will have the same georeference, "
 "width, and height as the original raster but will only have one band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5655 reference_raster.xml:5988
+#: reference_raster.xml:6852 reference_raster.xml:7054
+#: reference_raster.xml:7502
 #, no-c-format
 msgid ""
 "If <varname>pixeltype</varname> is passed in, then the new raster will have "
@@ -9744,207 +11584,65 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5657
+#: reference_raster.xml:6857
 #, no-c-format
-msgid ""
-"In the expression you can use the term <varname>[rast]</varname> to refer to "
-"the pixel value of the original band, <varname>[rast.x]</varname> to refer "
-"to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to "
-"the 1-based pixel row index."
+msgid "Keywords permitted for <varname>expression</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5669 reference_raster.xml:5806
-#: reference_raster.xml:6008
+#: reference_raster.xml:6860
 #, no-c-format
-msgid ""
-"Create a new 1 band raster from our original that is a function of modulo 2 "
-"of the original raster band."
+msgid "<varname>[rast]</varname> - Pixel value of the pixel of interest"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5670
+#. Tag: para
+#: reference_raster.xml:6863
 #, no-c-format
-msgid ""
-"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
-"UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,NULL,'mod"
-"([rast],2)') WHERE rid = 2;\n"
-"\n"
-"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
-"mapval\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
-"generate_series(1,3) AS j\n"
-"WHERE rid = 2;\n"
-"\n"
-" origval | mapval\n"
-"---------+--------\n"
-"     253 |      1\n"
-"     254 |      0\n"
-"     253 |      1\n"
-"     253 |      1\n"
-"     254 |      0\n"
-"     254 |      0\n"
-"     250 |      0\n"
-"     254 |      0\n"
-"     254 |      0"
+msgid "<varname>[rast.val]</varname> - Pixel value of the pixel of interest"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5671
+#: reference_raster.xml:6866
 #, no-c-format
 msgid ""
-"Create a new 1 band raster of pixel-type 2BUI from our original that is "
-"reclassified and set the nodata value to be 0."
+"<varname>[rast.x]</varname> - 1-based pixel column of the pixel of interest"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5672
+#. Tag: para
+#: reference_raster.xml:6869
 #, no-c-format
 msgid ""
-"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
-"UPDATE dummy_rast SET map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN "
-"[rast] BETWEEN 100 and 250 THEN 1 \n"
-"WHEN [rast] = 252 THEN 2 \n"
-"WHEN [rast] BETWEEN 253 and 254 THEN 3 ELSE 0 END', '0') WHERE rid = 2;\n"
-"\n"
-"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
-"j) As mapval\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
-"generate_series(1,5) AS j\n"
-"WHERE rid = 2;\n"
-"\n"
-" origval | mapval\n"
-"---------+--------\n"
-"     249 |      1\n"
-"     250 |      1\n"
-"     251 |\n"
-"     252 |      2\n"
-"     253 |      3\n"
-"     254 |      3\n"
-"     \n"
-"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
-"FROM dummy_rast WHERE rid = 2;\n"
-"\n"
-" b1pixtyp\n"
-"----------\n"
-" 2BUI"
+"<varname>[rast.y]</varname> - 1-based pixel row of the pixel of interest"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5682 reference_raster.xml:6021
+#. Tag: title
+#: reference_raster.xml:6878
 #, no-c-format
-msgid "original (column rast-view)"
+msgid "Description: Variants 3 and 4 (two raster)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5691 reference_raster.xml:6029
+#: reference_raster.xml:6880 reference_raster.xml:7174
 #, no-c-format
-msgid "rast_view_ma"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5699 reference_raster.xml:6037
-#, no-c-format
-msgid ""
-"Create a new 3 band raster same pixel type from our original 3 band raster "
-"with first band altered by map algebra and remaining 2 bands unaltered."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:5701
-#, no-c-format
-msgid ""
-"SELECT ST_AddBand(\n"
-"ST_AddBand(\n"
-"        ST_AddBand(\n"
-"                ST_MakeEmptyRaster(rast_view),\n"
-"                        ST_MapAlgebraExpr(rast_view,1,NULL,'tan([rast])*"
-"[rast]')\n"
-"                        ), \n"
-"                ST_Band(rast_view,2)\n"
-"                        ),\n"
-"        ST_Band(rast_view, 3) As rast_view_ma\n"
-")\n"
-"FROM wind\n"
-"WHERE rid=167;"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5706
-#, no-c-format
-msgid ""
-", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend="
-"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref "
-"linkend=\"RT_ST_Value\"/>"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5713
-#, no-c-format
-msgid ""
-"2 raster band version: Creates a new one band raster formed by applying a "
-"valid PostgreSQL algebraic operation on the two input raster bands and of "
-"pixeltype provided. band 1 of each raster is assumed if no band numbers are "
-"specified. The resulting raster will be aligned (scale, skew and pixel "
-"corners) on the grid defined by the first raster and have its extent defined "
-"by the \"extenttype\" parameter. Values for \"extenttype\" can be: "
-"INTERSECTION, UNION, FIRST, SECOND."
-msgstr ""
-
-#. Tag: funcsynopsis
-#: reference_raster.xml:5717
-#, no-c-format
-msgid ""
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
-"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>text </type> "
-"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
-"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
-"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
-"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>text </type> "
-"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
-"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
-"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5749
-#, no-c-format
-msgid ""
-"Creates a new one band raster formed by applying a valid PostgreSQL "
-"algebraic operation to the two bands defined by the <varname>expression</"
-"varname> on the two input raster bands <varname>rast1</varname>, "
-"(<varname>rast2</varname>). If no <varname>band1</varname>, <varname>band2</"
-"varname> is specified band 1 is assumed. The resulting raster will be "
-"aligned (scale, skew and pixel corners) on the grid defined by the first "
-"raster. The resulting raster will have the extent defined by the "
-"<varname>extenttype</varname> parameter."
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation to the two bands defined by the <varname>expression</"
+"varname> on the two input raster bands <varname>rast1</varname>, "
+"(<varname>rast2</varname>). If no <varname>band1</varname>, <varname>band2</"
+"varname> is specified band 1 is assumed. The resulting raster will be "
+"aligned (scale, skew and pixel corners) on the grid defined by the first "
+"raster. The resulting raster will have the extent defined by the "
+"<varname>extenttype</varname> parameter."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5754
+#: reference_raster.xml:6886 reference_raster.xml:7180
 #, no-c-format
 msgid "expression"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5755
+#: reference_raster.xml:6888 reference_raster.xml:7182
 #, no-c-format
 msgid ""
 "A PostgreSQL algebraic expression involving the two rasters and PostgreSQL "
@@ -9952,14 +11650,8 @@ msgid ""
 "intersect. e.g. (([rast1] + [rast2])/2.0)::integer"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:5758 reference_raster.xml:6190
-#, no-c-format
-msgid "pixeltype"
-msgstr ""
-
 #. Tag: para
-#: reference_raster.xml:5759
+#: reference_raster.xml:6896 reference_raster.xml:7191
 #, no-c-format
 msgid ""
 "The resulting pixel type of the output raster. Must be one listed in <xref "
@@ -9967,20 +11659,14 @@ msgid ""
 "or set to NULL, will default to the pixeltype of the first raster."
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:5762
-#, no-c-format
-msgid "extenttype"
-msgstr ""
-
 #. Tag: para
-#: reference_raster.xml:5763
+#: reference_raster.xml:6904 reference_raster.xml:7200
 #, no-c-format
 msgid "Controls the extent of resulting raster"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5766
+#: reference_raster.xml:6910 reference_raster.xml:7203
 #, no-c-format
 msgid ""
 "<varname>INTERSECTION</varname> - The extent of the new raster is the "
@@ -9988,7 +11674,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5769
+#: reference_raster.xml:6915 reference_raster.xml:7208
 #, no-c-format
 msgid ""
 "<varname>UNION</varname> - The extent of the new raster is the union of the "
@@ -9996,7 +11682,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5772
+#: reference_raster.xml:6920 reference_raster.xml:7213
 #, no-c-format
 msgid ""
 "<varname>FIRST</varname> - The extent of the new raster is the same as the "
@@ -10004,7 +11690,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5775
+#: reference_raster.xml:6925 reference_raster.xml:7218
 #, no-c-format
 msgid ""
 "<varname>SECOND</varname> - The extent of the new raster is the same as the "
@@ -10012,13 +11698,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5781
+#: reference_raster.xml:6933 reference_raster.xml:7227
 #, no-c-format
 msgid "nodata1expr"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5782
+#: reference_raster.xml:6935 reference_raster.xml:7229
 #, no-c-format
 msgid ""
 "An algebraic expression involving only <varname>rast2</varname> or a "
@@ -10027,13 +11713,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5785
+#: reference_raster.xml:6941 reference_raster.xml:7236
 #, no-c-format
 msgid "nodata2expr"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5786
+#: reference_raster.xml:6943 reference_raster.xml:7238
 #, no-c-format
 msgid ""
 "An algebraic expression involving only <varname>rast1</varname> or a "
@@ -10042,13 +11728,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5789
+#: reference_raster.xml:6949 reference_raster.xml:7245
 #, no-c-format
 msgid "nodatanodataval"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5790
+#: reference_raster.xml:6951 reference_raster.xml:7247
 #, no-c-format
 msgid ""
 "A numeric constant to return when spatially corresponding rast1 and rast2 "
@@ -10056,373 +11742,220 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5795
+#: reference_raster.xml:6959
 #, no-c-format
 msgid ""
-"If <varname>pixeltype</varname> is passed in, then the new raster will have "
-"a band of that pixeltype. If pixeltype is passed NULL or no pixel type "
-"specified, then the new raster band will have the same pixeltype as the "
-"input <varname>rast1</varname> band."
+"Keywords permitted in <varname>expression</varname>, <varname>nodata1expr</"
+"varname> and <varname>nodata2expr</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5796
+#: reference_raster.xml:6962
 #, no-c-format
 msgid ""
-"Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> "
-"to refer to the pixel value of the original raster bands and <varname>[rast1."
-"x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row "
-"positions of the pixels."
-msgstr ""
-
-#. Tag: title
-#: reference_raster.xml:5804
-#, no-c-format
-msgid "Example: 2 Band Intersection and Union"
+"<varname>[rast1]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5807
+#. Tag: para
+#: reference_raster.xml:6965
 #, no-c-format
 msgid ""
-"--Create a cool set of rasters --\n"
-"DROP TABLE IF EXISTS fun_shapes; \n"
-"CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast "
-"raster);\n"
-"\n"
-"-- Insert some cool shapes around Boston in Massachusetts state plane meters "
-"--\n"
-"INSERT INTO fun_shapes(fun_name, rast)\n"
-"VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, "
-"901930,26986),200,200,'8BUI',0,0));\n"
-"\n"
-"INSERT INTO fun_shapes(fun_name,rast)\n"
-"WITH ref(rast) AS (SELECT rast FROM fun_shapes WHERE fun_name = 'ref' ) \n"
-"SELECT 'area' AS fun_name, ST_AsRaster(ST_Buffer(ST_SetSRID(ST_Point(236229, "
-"900930),26986), 1000), \n"
-"                        ref.rast,'8BUI', 10, 0) As rast\n"
-"FROM ref\n"
-"UNION ALL\n"
-"SELECT 'rand bubbles', \n"
-"                         ST_AsRaster( \n"
-"                         (SELECT ST_Collect(geom)\n"
-"        FROM (SELECT ST_Buffer(ST_SetSRID(ST_Point(236229 + i*random()*100, "
-"900930 + j*random()*100),26986), random()*20) As geom\n"
-"                        FROM generate_series(1,10) As i, generate_series"
-"(1,10) As j\n"
-"                        ) As foo ), ref.rast,'8BUI', 200, 0) \n"
-"FROM ref;\n"
-"\n"
-"--map them -\n"
-"SELECT  ST_MapAlgebraExpr(\n"
-"                area.rast, bub.rast, '[rast2.val]', '8BUI', 'INTERSECTION', "
-"'[rast2.val]', '[rast1.val]') As interrast,\n"
-"                ST_MapAlgebraExpr(\n"
-"                        area.rast, bub.rast, '[rast2.val]', '8BUI', 'UNION', "
-"'[rast2.val]', '[rast1.val]') As unionrast\n"
-"FROM \n"
-"  (SELECT rast FROM fun_shapes WHERE\n"
-" fun_name = 'area') As area\n"
-"CROSS JOIN  (SELECT rast \n"
-"FROM fun_shapes WHERE\n"
-" fun_name = 'rand bubbles') As bub"
+"<varname>[rast1.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5817
+#: reference_raster.xml:6968
 #, no-c-format
-msgid "mapalgebra intersection"
+msgid ""
+"<varname>[rast1.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast1</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5826
+#: reference_raster.xml:6971
 #, no-c-format
-msgid "map algebra union"
+msgid ""
+"<varname>[rast1.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast1</varname>"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:5836 reference_raster.xml:6103
+#. Tag: para
+#: reference_raster.xml:6974
 #, no-c-format
-msgid "Example: Overlaying rasters on a canvas as separate bands"
+msgid ""
+"<varname>[rast2]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5837
+#. Tag: para
+#: reference_raster.xml:6977
 #, no-c-format
 msgid ""
-"-- we use ST_AsPNG to render the image so all single band ones look grey --\n"
-"WITH mygeoms \n"
-"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(1,5),10) As geom\n"
-"            UNION ALL\n"
-"            SELECT 3 AS bnum, \n"
-"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
-"50)'), 10,'join=bevel') As geom\n"
-"            UNION ALL\n"
-"            SELECT 1 As bnum, \n"
-"                ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 150,150 "
-"50)'), 5,'join=bevel') As geom\n"
-"            ),\n"
-"   -- define our canvas to be 1 to 1 pixel to geometry\n"
-"   canvas\n"
-"    AS (SELECT ST_AddBand(ST_MakeEmptyRaster(200, \n"
-"        200, \n"
-"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0) , '8BUI'::"
-"text,0) As rast\n"
-"        FROM (SELECT ST_Extent(geom) As e,\n"
-"                    Max(ST_SRID(geom)) As srid \n"
-"                    from mygeoms \n"
-"                    ) As foo\n"
-"            ),\n"
-"   rbands AS (SELECT ARRAY(SELECT ST_MapAlgebraExpr(canvas.rast, ST_AsRaster"
-"(m.geom, canvas.rast, '8BUI', 100),\n"
-"                 '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1."
-"val]') As rast\n"
-"                FROM mygeoms AS m CROSS JOIN canvas\n"
-"                ORDER BY m.bnum) As rasts\n"
-"                )\n"
-"          SELECT rasts[1] As rast1 , rasts[2] As rast2, rasts[3] As rast3, "
-"ST_AddBand(\n"
-"                    ST_AddBand(rasts[1],rasts[2]), rasts[3]) As final_rast\n"
-"            FROM rbands;"
+"<varname>[rast2.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5848
+#: reference_raster.xml:6980
 #, no-c-format
-msgid "rast1"
+msgid ""
+"<varname>[rast2.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast2</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5857
+#: reference_raster.xml:6983
 #, no-c-format
-msgid "rast2"
+msgid ""
+"<varname>[rast2.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast2</varname>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5868
+#. Tag: title
+#: reference_raster.xml:6991
 #, no-c-format
-msgid "rast3"
+msgid "Examples: Variants 1 and 2"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5878
+#. Tag: programlisting
+#: reference_raster.xml:6993
 #, no-c-format
-msgid "final_rast"
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 1, 1, 0, 0, 0), "
+"'32BF', 1, -1) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(rast, 1, NULL, 'ceil([rast]*[rast.x]/[rast.y]+[rast."
+"val])')\n"
+"FROM foo"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5888
+#: reference_raster.xml:6997
 #, no-c-format
-msgid ""
-"Example: Overlay 2 meter boundary of select parcels over an aerial imagery"
+msgid "Examples: Variant 3 and 4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5889
+#: reference_raster.xml:6999
 #, no-c-format
 msgid ""
-"-- Create new 3 band raster composed of first 2 clipped bands, and overlay "
-"of 3rd band with our geometry\n"
-"-- This query took 3.6 seconds on PostGIS windows 64-bit install\n"
-"WITH pr AS\n"
-"-- Note the order of operation: we clip all the rasters to dimensions of our "
-"region\n"
-"(SELECT ST_Clip(rast,ST_Expand(geom,50) ) As rast, g.geom\n"
-"        FROM aerials.o_2_boston AS r INNER JOIN\n"
-"-- union our parcels of interest so they form a single geometry we can later "
-"intersect with\n"
-"                (SELECT ST_Union(ST_Transform(the_geom,26986)) AS geom \n"
-"                  FROM landparcels WHERE pid IN('0303890000', '0303900000')) "
-"As g\n"
-"                ON ST_Intersects(rast::geometry, ST_Expand(g.geom,50))\n"
-"),\n"
-"-- we then union the raster shards together\n"
-"-- ST_Union on raster is kinda of slow but much faster the smaller you can "
-"get the rasters\n"
-"-- therefore we want to clip first and then union\n"
-"prunion AS\n"
-"(SELECT ST_AddBand(NULL, ARRAY[ST_Union(rast,1),ST_Union(rast,2),ST_Union"
-"(rast,3)] ) As clipped,geom\n"
-"FROM pr\n"
-"GROUP BY geom)\n"
-"-- return our final raster which is the unioned shard with \n"
-"-- with the overlay of our parcel boundaries\n"
-"-- add first 2 bands, then mapalgebra of 3rd band + geometry\n"
-"SELECT ST_AddBand(ST_Band(clipped,ARRAY[1,2])\n"
-"        , ST_MapAlgebraExpr(ST_Band(clipped,3), ST_AsRaster(ST_Buffer"
-"(ST_Boundary(geom),2),clipped, '8BUI',250),\n"
-"         '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1.val]') ) As "
-"rast\n"
-"FROM prunion;"
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                '([rast2] + [rast1.val]) / 2'\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5900
+#: reference_raster.xml:7005
 #, no-c-format
-msgid "The blue lines are the boundaries of select parcels"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5911
-#, no-c-format
-msgid ""
-", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref "
-"linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref "
-"linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, "
-"<xref linkend=\"RT_ST_Value\"/> , <xref linkend=\"RT_ST_Union\"/>, <xref "
-"linkend=\"ST_Union\"/>"
+msgid ", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5918 reference_raster.xml:6049
+#: reference_raster.xml:7015 reference_raster.xml:7129
 #, no-c-format
-msgid "ST_MapAlgebraFct"
+msgid "ST_MapAlgebraExpr"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5919
+#: reference_raster.xml:7016
 #, no-c-format
 msgid ""
-"1 band version - Creates a new one band raster formed by applying a valid "
-"PostgreSQL function on the input raster band and of pixeltype prodived. Band "
-"1 is assumed if no band is specified."
+"1 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the input raster band and of "
+"pixeltype provided. Band 1 is assumed if no band is specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5923
-#, no-c-format
-msgid ""
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
-"type> <parameter>onerasteruserfunc</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
-"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
-"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
-"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
-"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
-"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
-"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
-"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
-"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
-"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
-"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
-"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
-"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
-"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
-"args</parameter></paramdef> </funcprototype>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5986
+#: reference_raster.xml:7020
 #, no-c-format
 msgid ""
-"Creates a new one band raster formed by applying a valid PostgreSQL function "
-"specified by the <varname>onerasteruserfunc</varname> on the input raster "
-"(<varname>rast</varname>). If no <varname>band</varname> is specified, band "
-"1 is assumed. The new raster will have the same georeference, width, and "
-"height as the original raster but will only have one band."
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5990
+#: reference_raster.xml:7045 reference_raster.xml:7169
 #, no-c-format
 msgid ""
-"The <varname>onerasteruserfunc</varname> parameter must be the name and "
-"signature of a SQL or PL/pgSQL function, cast to a regprocedure. A very "
-"simple and quite useless PL/pgSQL function example is: "
-"<programlisting>CREATE OR REPLACE FUNCTION simple_function(pixel FLOAT, pos "
-"INTEGER[], VARIADIC args TEXT[])\n"
-"    RETURNS FLOAT\n"
-"    AS $$ BEGIN\n"
-"        RETURN 0.0;\n"
-"    END; $$\n"
-"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
-"<varname>userfunction</varname> may accept two or three arguments: a float "
-"value, an optional integer array, and a variadic text array. The first "
-"argument is the value of an individual raster cell (regardless of the raster "
-"datatype). The second argument is the position of the current processing "
-"cell in the form '{x,y}'. The third argument indicates that all remaining "
-"parameters to <xref linkend=\"RT_ST_MapAlgebraFct\"/> shall be passed "
-"through to the <varname>userfunction</varname>."
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra_expr\"/> "
+"instead."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5994
+#: reference_raster.xml:7050
 #, no-c-format
 msgid ""
-"Passing a <type>regprodedure</type> argument to a SQL function requires the "
-"full function signature to be passed, then cast to a <type>regprocedure</"
-"type> type. To pass the above example PL/pgSQL function as an argument, the "
-"SQL for the argument is:<programlisting>'simple_function(float,integer[],text"
-"[])'::regprocedure</programlisting>Note that the argument contains the name "
-"of the function, the types of the function arguments, quotes around the name "
-"and argument types, and a cast to a <type>regprocedure</type>."
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If no <varname>band</varname> is "
+"specified band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5996
+#: reference_raster.xml:7058
 #, no-c-format
 msgid ""
-"The third argument to the <varname>userfunction</varname> is a "
-"<type>variadic text</type> array. All trailing text arguments to any <xref "
-"linkend=\"RT_ST_MapAlgebraFct\"/> call are passed through to the specified "
-"<varname>userfunction</varname>, and are contained in the <varname>args</"
-"varname> argument."
+"In the expression you can use the term <varname>[rast]</varname> to refer to "
+"the pixel value of the original band, <varname>[rast.x]</varname> to refer "
+"to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to "
+"the 1-based pixel row index."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6000
+#: reference_raster.xml:7068 reference_raster.xml:7267
+#: reference_raster.xml:7531
 #, no-c-format
 msgid ""
-"The <type>text[]</type> argument to the <varname>userfunction</varname> is "
-"required, regardless of whether you choose to pass any arguments to your "
-"user function for processing or not."
+"Create a new 1 band raster from our original that is a function of modulo 2 "
+"of the original raster band."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6009
+#: reference_raster.xml:7069
 #, no-c-format
 msgid ""
 "ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
-"CREATE FUNCTION mod_fct(pixel float, pos integer[], variadic args text[])\n"
-"RETURNS float\n"
-"AS $$\n"
-"BEGIN\n"
-"    RETURN pixel::integer % 2;\n"
-"END;\n"
-"$$\n"
-"LANGUAGE 'plpgsql' IMMUTABLE;\n"
-"\n"
-"UPDATE dummy_rast SET map_rast = ST_MapAlgebraFct(rast,NULL,'mod_fct(float,"
-"integer[],text[])'::regprocedure) WHERE rid = 2;\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,"
+"NULL,'mod([rast],2)') WHERE rid = 2;\n"
 "\n"
-"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
-"mapval\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
-"generate_series(1,3) AS j\n"
+"SELECT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 3) AS i\n"
+"CROSS JOIN generate_series(1,3) AS j\n"
 "WHERE rid = 2;\n"
 "\n"
 " origval | mapval\n"
@@ -10439,49 +11972,30 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6010
+#: reference_raster.xml:7071
 #, no-c-format
 msgid ""
 "Create a new 1 band raster of pixel-type 2BUI from our original that is "
-"reclassified and set the nodata value to a passed parameter to the user "
-"function (0)."
+"reclassified and set the nodata value to be 0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6011
+#: reference_raster.xml:7072
 #, no-c-format
 msgid ""
 "ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
-"CREATE FUNCTION classify_fct(pixel float, pos integer[], variadic args text"
-"[])\n"
-"RETURNS float\n"
-"AS\n"
-"$$\n"
-"DECLARE\n"
-"    nodata float := 0;\n"
-"BEGIN\n"
-"    IF NOT args[1] IS NULL THEN\n"
-"        nodata := args[1];\n"
-"    END IF;\n"
-"    IF pixel < 251 THEN\n"
-"        RETURN 1;\n"
-"    ELSIF pixel = 252 THEN\n"
-"        RETURN 2;\n"
-"    ELSIF pixel > 252 THEN\n"
-"        RETURN 3;\n"
-"    ELSE\n"
-"        RETURN nodata;\n"
-"    END IF;\n"
-"END;\n"
-"$$\n"
-"LANGUAGE 'plpgsql';\n"
-"UPDATE dummy_rast SET map_rast2 = ST_MapAlgebraFct(rast,'2BUI','classify_fct"
-"(float,integer[],text[])'::regprocedure, '0') WHERE rid = 2;\n"
+"UPDATE dummy_rast SET\n"
+"        map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN [rast] BETWEEN "
+"100 and 250 THEN 1 WHEN [rast] = 252 THEN 2 WHEN [rast] BETWEEN 253 and 254 "
+"THEN 3 ELSE 0 END', '0')\n"
+"WHERE rid = 2;\n"
 "\n"
-"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
-"j) As mapval\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
-"generate_series(1,5) AS j\n"
+"SELECT DISTINCT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast2, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 5) AS i\n"
+"CROSS JOIN generate_series(1,5) AS j\n"
 "WHERE rid = 2;\n"
 "\n"
 " origval | mapval\n"
@@ -10493,1568 +12007,3365 @@ msgid ""
 "     253 |      3\n"
 "     254 |      3\n"
 "     \n"
-"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
-"FROM dummy_rast WHERE rid = 2;\n"
+"SELECT\n"
+"        ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
 "\n"
 " b1pixtyp\n"
 "----------\n"
 " 2BUI"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6038
+#. Tag: para
+#: reference_raster.xml:7086 reference_raster.xml:7546
 #, no-c-format
-msgid ""
-"CREATE FUNCTION rast_plus_tan(pixel float, pos integer[], variadic args text"
-"[])\n"
-"RETURNS float\n"
-"AS\n"
-"$$\n"
-"BEGIN\n"
-"        RETURN tan(pixel) * pixel;\n"
-"END;\n"
-"$$\n"
-"LANGUAGE 'plpgsql';\n"
-"\n"
-"SELECT ST_AddBand(\n"
-"        ST_AddBand(\n"
-"                ST_AddBand(\n"
-"                        ST_MakeEmptyRaster(rast_view),\n"
-"                        ST_MapAlgebraFct(rast_view,1,NULL,'rast_plus_tan"
-"(float,integer[],text[])'::regprocedure)\n"
-"                ), \n"
-"                ST_Band(rast_view,2)\n"
-"        ),\n"
-"        ST_Band(rast_view, 3) As rast_view_ma\n"
-")\n"
-"FROM wind\n"
-"WHERE rid=167;"
+msgid "original (column rast-view)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6043 reference_raster.xml:6143
+#: reference_raster.xml:7100 reference_raster.xml:7554
 #, no-c-format
-msgid ""
-", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference"
-"\"/>, <xref linkend=\"RT_ST_SetValue\"/>"
+msgid "rast_view_ma"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6050
+#. Tag: para
+#: reference_raster.xml:7111 reference_raster.xml:7562
 #, no-c-format
 msgid ""
-"2 band version - Creates a new one band raster formed by applying a valid "
-"PostgreSQL function on the 2 input raster bands and of pixeltype prodived. "
-"Band 1 is assumed if no band is specified. Extent type defaults to "
-"INTERSECTION if not specified."
+"Create a new 3 band raster same pixel type from our original 3 band raster "
+"with first band altered by map algebra and remaining 2 bands unaltered."
 msgstr ""
 
-#. Tag: funcsynopsis
-#: reference_raster.xml:6054
+#. Tag: programlisting
+#: reference_raster.xml:7112
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></"
-"paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> "
-"<parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice="
-"\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION</parameter></"
-"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer</type> "
-"<parameter>band1</parameter></paramdef> <paramdef><type>raster</type> "
-"<parameter>rast2</parameter></paramdef> <paramdef><type>integer</type> "
-"<parameter>band2</parameter></paramdef> <paramdef><type>regprocedure</type> "
-"<parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>text</type> "
-"<parameter>extenttype=INTERSECTION</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
-"paramdef> </funcprototype>"
+"SELECT\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(rast_view),\n"
+"                                ST_MapAlgebraExpr(rast_view,1,"
+"NULL,'tan([rast])*[rast]')\n"
+"                        ), \n"
+"                        ST_Band(rast_view,2)\n"
+"                ),\n"
+"                ST_Band(rast_view, 3) As rast_view_ma\n"
+"        )\n"
+"FROM wind\n"
+"WHERE rid=167;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6082
+#: reference_raster.xml:7117
 #, no-c-format
 msgid ""
-"Creates a new one band raster formed by applying a valid PostgreSQL function "
-"specified by the <varname>tworastuserfunc</varname> on the input raster "
-"<varname>rast1</varname>, <varname>rast2</varname>. If no <varname>band1</"
-"varname> or <varname>band2</varname> is specified, band 1 is assumed. The "
-"new raster will have the same georeference, width, and height as the "
-"original rasters but will only have one band."
+", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref "
+"linkend=\"RT_ST_Value\"/>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6084
+#. Tag: refpurpose
+#: reference_raster.xml:7130
 #, no-c-format
 msgid ""
-"If <varname>pixeltype</varname> is passed in, then the new raster will have "
-"a band of that pixeltype. If pixeltype is passed NULL or left out, then the "
-"new raster band will have the same pixeltype as the input <varname>rast1</"
-"varname> band."
+"2 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the two input raster bands and of "
+"pixeltype provided. band 1 of each raster is assumed if no band numbers are "
+"specified. The resulting raster will be aligned (scale, skew and pixel "
+"corners) on the grid defined by the first raster and have its extent defined "
+"by the \"extenttype\" parameter. Values for \"extenttype\" can be: "
+"INTERSECTION, UNION, FIRST, SECOND."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6086
+#. Tag: funcsynopsis
+#: reference_raster.xml:7136
 #, no-c-format
 msgid ""
-"The <varname>tworastuserfunc</varname> parameter must be the name and "
-"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
-"PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION "
-"simple_function_for_two_rasters(pixel1 FLOAT, pixel2 FLOAT, pos INTEGER[], "
-"VARIADIC args TEXT[])\n"
-"    RETURNS FLOAT\n"
-"    AS $$ BEGIN\n"
-"        RETURN 0.0;\n"
-"    END; $$\n"
-"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
-"<varname>tworastuserfunc</varname> may accept three or four arguments: a "
-"double precision value, a double precision value, an optional integer array, "
-"and a variadic text array. The first argument is the value of an individual "
-"raster cell in <varname>rast1</varname> (regardless of the raster datatype). "
-"The second argument is an individual raster cell value in <varname>rast2</"
-"varname>. The third argument is the position of the current processing cell "
-"in the form '{x,y}'. The fourth argument indicates that all remaining "
-"parameters to <xref linkend=\"RT_ST_MapAlgebraFct2\"/> shall be passed "
-"through to the <varname>tworastuserfunc</varname>."
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6091
+#: reference_raster.xml:7254
 #, no-c-format
 msgid ""
-"Passing a <type>regprodedure</type> argument to a SQL function requires the "
-"full function signature to be passed, then cast to a <type>regprocedure</"
-"type> type. To pass the above example PL/pgSQL function as an argument, the "
-"SQL for the argument is:<programlisting>'simple_function(double precision, "
-"double precision, integer[], text[])'::regprocedure</programlisting>Note "
-"that the argument contains the name of the function, the types of the "
-"function arguments, quotes around the name and argument types, and a cast to "
-"a <type>regprocedure</type>."
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or no pixel type "
+"specified, then the new raster band will have the same pixeltype as the "
+"input <varname>rast1</varname> band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6093
+#: reference_raster.xml:7257
 #, no-c-format
 msgid ""
-"The third argument to the <varname>tworastuserfunc</varname> is a "
-"<type>variadic text</type> array. All trailing text arguments to any <xref "
-"linkend=\"RT_ST_MapAlgebraFct2\"/> call are passed through to the specified "
-"<varname>tworastuserfunc</varname>, and are contained in the "
-"<varname>userargs</varname> argument."
+"Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> "
+"to refer to the pixel value of the original raster bands and <varname>[rast1."
+"x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row "
+"positions of the pixels."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6097
+#. Tag: title
+#: reference_raster.xml:7265
 #, no-c-format
-msgid ""
-"The <type>text[]</type> argument to the <varname>tworastuserfunc</varname> "
-"is required, regardless of whether you choose to pass any arguments to your "
-"user function for processing or not."
+msgid "Example: 2 Band Intersection and Union"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6104
+#: reference_raster.xml:7268
 #, no-c-format
 msgid ""
-"-- define our user defined function --\n"
-"CREATE OR REPLACE FUNCTION raster_mapalgebra_union(\n"
-"        rast1 double precision,\n"
-"        rast2 double precision,\n"
-"    pos integer[],\n"
-"        VARIADIC userargs text[]\n"
-")\n"
-"        RETURNS double precision\n"
-"        AS $$\n"
-"        DECLARE\n"
-"        BEGIN\n"
-"                CASE\n"
-"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
-"                                RETURN ((rast1 + rast2)/2.);\n"
-"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
-"                                RETURN NULL;\n"
-"                        WHEN rast1 IS NULL THEN\n"
-"                                RETURN rast2;\n"
-"                        ELSE\n"
-"                                RETURN rast1;\n"
-"                END CASE;\n"
+"--Create a cool set of rasters --\n"
+"DROP TABLE IF EXISTS fun_shapes; \n"
+"CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast "
+"raster);\n"
 "\n"
-"                RETURN NULL;\n"
-"        END;\n"
-"        $$ LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"-- Insert some cool shapes around Boston in Massachusetts state plane meters "
+"--\n"
+"INSERT INTO fun_shapes(fun_name, rast)\n"
+"VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, "
+"901930,26986),200,200,'8BUI',0,0));\n"
 "\n"
-"-- prep our test table of rasters\n"
-"DROP TABLE IF EXISTS map_shapes;\n"
-"CREATE TABLE map_shapes(rid serial PRIMARY KEY, rast raster, bnum integer, "
-"descrip text);\n"
-"INSERT INTO map_shapes(rast,bnum, descrip)\n"
+"INSERT INTO fun_shapes(fun_name,rast)\n"
+"WITH ref(rast) AS (SELECT rast FROM fun_shapes WHERE fun_name = 'ref' ) \n"
+"SELECT 'area' AS fun_name, ST_AsRaster(ST_Buffer(ST_SetSRID(ST_Point(236229, "
+"900930),26986), 1000), \n"
+"                        ref.rast,'8BUI', 10, 0) As rast\n"
+"FROM ref\n"
+"UNION ALL\n"
+"SELECT 'rand bubbles', \n"
+"                         ST_AsRaster( \n"
+"                         (SELECT ST_Collect(geom)\n"
+"        FROM (SELECT ST_Buffer(ST_SetSRID(ST_Point(236229 + i*random()*100, "
+"900930 + j*random()*100),26986), random()*20) As geom\n"
+"                        FROM generate_series(1,10) As i, "
+"generate_series(1,10) As j\n"
+"                        ) As foo ), ref.rast,'8BUI', 200, 0) \n"
+"FROM ref;\n"
+"\n"
+"--map them -\n"
+"SELECT  ST_MapAlgebraExpr(\n"
+"                area.rast, bub.rast, '[rast2.val]', '8BUI', 'INTERSECTION', "
+"'[rast2.val]', '[rast1.val]') As interrast,\n"
+"                ST_MapAlgebraExpr(\n"
+"                        area.rast, bub.rast, '[rast2.val]', '8BUI', 'UNION', "
+"'[rast2.val]', '[rast1.val]') As unionrast\n"
+"FROM \n"
+"  (SELECT rast FROM fun_shapes WHERE\n"
+" fun_name = 'area') As area\n"
+"CROSS JOIN  (SELECT rast \n"
+"FROM fun_shapes WHERE\n"
+" fun_name = 'rand bubbles') As bub"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7282
+#, no-c-format
+msgid "mapalgebra intersection"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7296
+#, no-c-format
+msgid "map algebra union"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7309 reference_raster.xml:7648
+#, no-c-format
+msgid "Example: Overlaying rasters on a canvas as separate bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7310
+#, no-c-format
+msgid ""
+"-- we use ST_AsPNG to render the image so all single band ones look grey --\n"
 "WITH mygeoms \n"
-"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(90,90),30) As geom, 'circle' "
-"As descrip\n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(1,5),10) As geom\n"
 "            UNION ALL\n"
 "            SELECT 3 AS bnum, \n"
 "                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
-"50)'), 15) As geom, 'big road' As descrip\n"
+"50)'), 10,'join=bevel') As geom\n"
 "            UNION ALL\n"
 "            SELECT 1 As bnum, \n"
-"                ST_Translate(ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 "
-"150,150 50)'), 8,'join=bevel'), 10,-6) As geom, 'small road' As descrip\n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 150,150 "
+"50)'), 5,'join=bevel') As geom\n"
 "            ),\n"
 "   -- define our canvas to be 1 to 1 pixel to geometry\n"
 "   canvas\n"
-"    AS ( SELECT ST_AddBand(ST_MakeEmptyRaster(250, \n"
-"        250, \n"
-"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0 ) , '8BUI'::"
+"    AS (SELECT ST_AddBand(ST_MakeEmptyRaster(200, \n"
+"        200, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0) , '8BUI'::"
 "text,0) As rast\n"
 "        FROM (SELECT ST_Extent(geom) As e,\n"
 "                    Max(ST_SRID(geom)) As srid \n"
 "                    from mygeoms \n"
 "                    ) As foo\n"
-"            )\n"
-"-- return our rasters aligned with our canvas\n"
-"SELECT ST_AsRaster(m.geom, canvas.rast, '8BUI', 240) As rast, bnum, descrip\n"
+"            ),\n"
+"   rbands AS (SELECT ARRAY(SELECT ST_MapAlgebraExpr(canvas.rast, "
+"ST_AsRaster(m.geom, canvas.rast, '8BUI', 100),\n"
+"                 '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1."
+"val]') As rast\n"
 "                FROM mygeoms AS m CROSS JOIN canvas\n"
-"UNION ALL \n"
-"SELECT canvas.rast, 4, 'canvas'\n"
-"FROM canvas;\n"
-"\n"
-"-- Map algebra on single band rasters and then collect with ST_AddBand\n"
-"INSERT INTO map_shapes(rast,bnum,descrip)\n"
-"SELECT ST_AddBand(ST_AddBand(rasts[1], rasts[2]),rasts[3]), 4, 'map bands "
-"overlay fct union (canvas)'\n"
-"        FROM (SELECT ARRAY(SELECT ST_MapAlgebraFct(m1.rast, m2.rast, \n"
-"                        'raster_mapalgebra_union(double precision, double "
-"precision, integer[], text[])'::regprocedure, '8BUI', 'FIRST')\n"
-"                FROM map_shapes As m1 CROSS JOIN map_shapes As m2\n"
-"                        WHERE m1.descrip = 'canvas' AND m2.descrip <> "
-"'canvas' ORDER BY m2.bnum) As rasts) As foo;"
+"                ORDER BY m.bnum) As rasts\n"
+"                )\n"
+"          SELECT rasts[1] As rast1 , rasts[2] As rast2, rasts[3] As rast3, "
+"ST_AddBand(\n"
+"                    ST_AddBand(rasts[1],rasts[2]), rasts[3]) As final_rast\n"
+"            FROM rbands;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6115
+#: reference_raster.xml:7323
 #, no-c-format
-msgid "map bands overlay (canvas) (R: small road, G: circle, B: big road)"
+msgid "rast1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7336
+#, no-c-format
+msgid "rast2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7352
+#, no-c-format
+msgid "rast3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7366
+#, no-c-format
+msgid "final_rast"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6125
+#: reference_raster.xml:7379
 #, no-c-format
-msgid "User Defined function that takes extra args"
+msgid ""
+"Example: Overlay 2 meter boundary of select parcels over an aerial imagery"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6126
+#: reference_raster.xml:7381
 #, no-c-format
 msgid ""
-"CREATE OR REPLACE FUNCTION raster_mapalgebra_userargs(\n"
-"        rast1 double precision,\n"
-"        rast2 double precision,\n"
-"    pos integer[],\n"
-"        VARIADIC userargs text[]\n"
-")\n"
-"        RETURNS double precision\n"
-"        AS $$\n"
-"        DECLARE\n"
-"        BEGIN\n"
-"                CASE\n"
-"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
-"                                RETURN least(userargs[1]::integer,(rast1 + "
-"rast2)/2.);\n"
-"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
-"                                RETURN userargs[2]::integer;\n"
-"                        WHEN rast1 IS NULL THEN\n"
-"                                RETURN greatest(rast2,random()*userargs[3]::"
-"integer)::integer;\n"
-"                        ELSE\n"
-"                                RETURN greatest(rast1, random()*userargs[4]::"
-"integer)::integer;\n"
-"                END CASE;\n"
+"-- Create new 3 band raster composed of first 2 clipped bands, and overlay "
+"of 3rd band with our geometry\n"
+"-- This query took 3.6 seconds on PostGIS windows 64-bit install\n"
+"WITH pr AS\n"
+"-- Note the order of operation: we clip all the rasters to dimensions of our "
+"region\n"
+"(SELECT ST_Clip(rast,ST_Expand(geom,50) ) As rast, g.geom\n"
+"        FROM aerials.o_2_boston AS r INNER JOIN\n"
+"-- union our parcels of interest so they form a single geometry we can later "
+"intersect with\n"
+"                (SELECT ST_Union(ST_Transform(the_geom,26986)) AS geom \n"
+"                  FROM landparcels WHERE pid IN('0303890000', '0303900000')) "
+"As g\n"
+"                ON ST_Intersects(rast::geometry, ST_Expand(g.geom,50))\n"
+"),\n"
+"-- we then union the raster shards together\n"
+"-- ST_Union on raster is kinda of slow but much faster the smaller you can "
+"get the rasters\n"
+"-- therefore we want to clip first and then union\n"
+"prunion AS\n"
+"(SELECT ST_AddBand(NULL, ARRAY[ST_Union(rast,1),ST_Union(rast,2),"
+"ST_Union(rast,3)] ) As clipped,geom\n"
+"FROM pr\n"
+"GROUP BY geom)\n"
+"-- return our final raster which is the unioned shard with \n"
+"-- with the overlay of our parcel boundaries\n"
+"-- add first 2 bands, then mapalgebra of 3rd band + geometry\n"
+"SELECT ST_AddBand(ST_Band(clipped,ARRAY[1,2])\n"
+"        , ST_MapAlgebraExpr(ST_Band(clipped,3), "
+"ST_AsRaster(ST_Buffer(ST_Boundary(geom),2),clipped, '8BUI',250),\n"
+"         '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1.val]') ) As "
+"rast\n"
+"FROM prunion;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7395
+#, no-c-format
+msgid "The blue lines are the boundaries of select parcels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7409
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref "
+"linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Union\"/>, <xref "
+"linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7426 reference_raster.xml:7579
+#, no-c-format
+msgid "ST_MapAlgebraFct"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7427
+#, no-c-format
+msgid ""
+"1 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the input raster band and of pixeltype prodived. Band "
+"1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7431
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7495 reference_raster.xml:7613
+#: reference_raster.xml:7726
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra\"/> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7500
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>onerasteruserfunc</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified, band "
+"1 is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7504
+#, no-c-format
+msgid ""
+"The <varname>onerasteruserfunc</varname> parameter must be the name and "
+"signature of a SQL or PL/pgSQL function, cast to a regprocedure. A very "
+"simple and quite useless PL/pgSQL function example is: "
+"<programlisting>CREATE OR REPLACE FUNCTION simple_function(pixel FLOAT, pos "
+"INTEGER[], VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>userfunction</varname> may accept two or three arguments: a float "
+"value, an optional integer array, and a variadic text array. The first "
+"argument is the value of an individual raster cell (regardless of the raster "
+"datatype). The second argument is the position of the current processing "
+"cell in the form '{x,y}'. The third argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct\"/> shall be passed "
+"through to the <varname>userfunction</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7509
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(float,integer[],"
+"text[])'::regprocedure</programlisting>Note that the argument contains the "
+"name of the function, the types of the function arguments, quotes around the "
+"name and argument types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7513
+#, no-c-format
+msgid ""
+"The third argument to the <varname>userfunction</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct\"/> call are passed through to the specified "
+"<varname>userfunction</varname>, and are contained in the <varname>args</"
+"varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7522
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>userfunction</varname> is "
+"required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7532
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"CREATE FUNCTION mod_fct(pixel float, pos integer[], variadic args text[])\n"
+"RETURNS float\n"
+"AS $$\n"
+"BEGIN\n"
+"    RETURN pixel::integer % 2;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE;\n"
 "\n"
-"                RETURN NULL;\n"
-"        END;\n"
-"        $$ LANGUAGE 'plpgsql' VOLATILE COST 1000;\n"
-"        \n"
-"SELECT ST_MapAlgebraFct(m1.rast, 1, m1.rast, 3,\n"
-"                        'raster_mapalgebra_userargs(double precision, double "
-"precision, integer[], text[])'::regprocedure,\n"
-"                                '8BUI', 'INTERSECT', "
-"'100','200','200','0') \n"
-"                FROM map_shapes As m1\n"
-"                        WHERE m1.descrip = 'map bands overlay fct union "
-"(canvas)';"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraFct(rast,NULL,'mod_fct(float,"
+"integer[],text[])'::regprocedure) WHERE rid = 2;\n"
+"\n"
+"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
+"mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7534
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to a passed parameter to the user "
+"function (0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7535
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"CREATE FUNCTION classify_fct(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"DECLARE\n"
+"    nodata float := 0;\n"
+"BEGIN\n"
+"    IF NOT args[1] IS NULL THEN\n"
+"        nodata := args[1];\n"
+"    END IF;\n"
+"    IF pixel < 251 THEN\n"
+"        RETURN 1;\n"
+"    ELSIF pixel = 252 THEN\n"
+"        RETURN 2;\n"
+"    ELSIF pixel > 252 THEN\n"
+"        RETURN 3;\n"
+"    ELSE\n"
+"        RETURN nodata;\n"
+"    END IF;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"UPDATE dummy_rast SET map_rast2 = "
+"ST_MapAlgebraFct(rast,'2BUI','classify_fct(float,integer[],text[])'::"
+"regprocedure, '0') WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
+"j) As mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
+"generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7563
+#, no-c-format
+msgid ""
+"CREATE FUNCTION rast_plus_tan(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"BEGIN\n"
+"        RETURN tan(pixel) * pixel;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"\n"
+"SELECT ST_AddBand(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(rast_view),\n"
+"                        ST_MapAlgebraFct(rast_view,1,"
+"NULL,'rast_plus_tan(float,integer[],text[])'::regprocedure)\n"
+"                ), \n"
+"                ST_Band(rast_view,2)\n"
+"        ),\n"
+"        ST_Band(rast_view, 3) As rast_view_ma\n"
+")\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7568 reference_raster.xml:7691
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference"
+"\"/>, <xref linkend=\"RT_ST_SetValue\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7580
+#, no-c-format
+msgid ""
+"2 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the 2 input raster bands and of pixeltype prodived. "
+"Band 1 is assumed if no band is specified. Extent type defaults to "
+"INTERSECTION if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7584
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band1</parameter></paramdef> <paramdef><type>raster</type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band2</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7618
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>tworastuserfunc</varname> on the input raster "
+"<varname>rast1</varname>, <varname>rast2</varname>. If no <varname>band1</"
+"varname> or <varname>band2</varname> is specified, band 1 is assumed. The "
+"new raster will have the same georeference, width, and height as the "
+"original rasters but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7621
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or left out, then the "
+"new raster band will have the same pixeltype as the input <varname>rast1</"
+"varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7624
+#, no-c-format
+msgid ""
+"The <varname>tworastuserfunc</varname> parameter must be the name and "
+"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
+"PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION "
+"simple_function_for_two_rasters(pixel1 FLOAT, pixel2 FLOAT, pos INTEGER[], "
+"VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>tworastuserfunc</varname> may accept three or four arguments: a "
+"double precision value, a double precision value, an optional integer array, "
+"and a variadic text array. The first argument is the value of an individual "
+"raster cell in <varname>rast1</varname> (regardless of the raster datatype). "
+"The second argument is an individual raster cell value in <varname>rast2</"
+"varname>. The third argument is the position of the current processing cell "
+"in the form '{x,y}'. The fourth argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct2\"/> shall be passed "
+"through to the <varname>tworastuserfunc</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7630
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(double precision, "
+"double precision, integer[], text[])'::regprocedure</programlisting>Note "
+"that the argument contains the name of the function, the types of the "
+"function arguments, quotes around the name and argument types, and a cast to "
+"a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7633
+#, no-c-format
+msgid ""
+"The third argument to the <varname>tworastuserfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct2\"/> call are passed through to the specified "
+"<varname>tworastuserfunc</varname>, and are contained in the "
+"<varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7641
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>tworastuserfunc</varname> "
+"is required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7649
+#, no-c-format
+msgid ""
+"-- define our user defined function --\n"
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_union(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN ((rast1 + rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN NULL;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN rast2;\n"
+"                        ELSE\n"
+"                                RETURN rast1;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"\n"
+"-- prep our test table of rasters\n"
+"DROP TABLE IF EXISTS map_shapes;\n"
+"CREATE TABLE map_shapes(rid serial PRIMARY KEY, rast raster, bnum integer, "
+"descrip text);\n"
+"INSERT INTO map_shapes(rast,bnum, descrip)\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(90,90),30) As geom, 'circle' "
+"As descrip\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 15) As geom, 'big road' As descrip\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Translate(ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 "
+"150,150 50)'), 8,'join=bevel'), 10,-6) As geom, 'small road' As descrip\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS ( SELECT ST_AddBand(ST_MakeEmptyRaster(250, \n"
+"        250, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0 ) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            )\n"
+"-- return our rasters aligned with our canvas\n"
+"SELECT ST_AsRaster(m.geom, canvas.rast, '8BUI', 240) As rast, bnum, descrip\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"UNION ALL \n"
+"SELECT canvas.rast, 4, 'canvas'\n"
+"FROM canvas;\n"
+"\n"
+"-- Map algebra on single band rasters and then collect with ST_AddBand\n"
+"INSERT INTO map_shapes(rast,bnum,descrip)\n"
+"SELECT ST_AddBand(ST_AddBand(rasts[1], rasts[2]),rasts[3]), 4, 'map bands "
+"overlay fct union (canvas)'\n"
+"        FROM (SELECT ARRAY(SELECT ST_MapAlgebraFct(m1.rast, m2.rast, \n"
+"                        'raster_mapalgebra_union(double precision, double "
+"precision, integer[], text[])'::regprocedure, '8BUI', 'FIRST')\n"
+"                FROM map_shapes As m1 CROSS JOIN map_shapes As m2\n"
+"                        WHERE m1.descrip = 'canvas' AND m2.descrip <> "
+"'canvas' ORDER BY m2.bnum) As rasts) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7662
+#, no-c-format
+msgid "map bands overlay (canvas) (R: small road, G: circle, B: big road)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7674
+#, no-c-format
+msgid "User Defined function that takes extra args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7675
+#, no-c-format
+msgid ""
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_userargs(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN least(userargs[1]::integer,(rast1 + "
+"rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN userargs[2]::integer;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN greatest(rast2,random()*userargs[3]::"
+"integer)::integer;\n"
+"                        ELSE\n"
+"                                RETURN greatest(rast1, random()*userargs[4]::"
+"integer)::integer;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' VOLATILE COST 1000;\n"
+"        \n"
+"SELECT ST_MapAlgebraFct(m1.rast, 1, m1.rast, 3,\n"
+"                        'raster_mapalgebra_userargs(double precision, double "
+"precision, integer[], text[])'::regprocedure,\n"
+"                                '8BUI', 'INTERSECT', "
+"'100','200','200','0') \n"
+"                FROM map_shapes As m1\n"
+"                        WHERE m1.descrip = 'map bands overlay fct union "
+"(canvas)';"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7683
+#, no-c-format
+msgid "user defined with extra args and different bands from same raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7702
+#, no-c-format
+msgid "ST_MapAlgebraFctNgb"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7703
+#, no-c-format
+msgid ""
+"1-band version: Map Algebra Nearest Neighbor using user-defined PostgreSQL "
+"function. Return a raster which values are the result of a PLPGSQL user "
+"function involving a neighborhood of values from the input raster band."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7708
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
+"args</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7731
+#, no-c-format
+msgid ""
+"(one raster version) Return a raster which values are the result of a "
+"PLPGSQL user function involving a neighborhood of values from the input "
+"raster band. The user function takes the neighborhood of pixel values as an "
+"array of numbers, for each pixel, returns the result from the user function, "
+"replacing pixel value of currently inspected pixel with the function result."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7735
+#, no-c-format
+msgid "rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7736
+#, no-c-format
+msgid "Raster on which the user function is evaluated."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7739
+#, no-c-format
+msgid "band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7740
+#, no-c-format
+msgid "Band number of the raster to be evaluated. Default to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7744
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL. If not passed "
+"in or set to NULL, will default to the pixeltype of the <varname>rast</"
+"varname>. Results are truncated if they are larger than what is allowed for "
+"the pixeltype."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7747
+#, no-c-format
+msgid "ngbwidth"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7748
+#, no-c-format
+msgid "The width of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7751
+#, no-c-format
+msgid "ngbheight"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7752
+#, no-c-format
+msgid "The height of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7755
+#, no-c-format
+msgid "onerastngbuserfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7756
+#, no-c-format
+msgid ""
+"PLPGSQL/psql user function to apply to neighborhood pixels of a single band "
+"of a raster. The first element is a 2-dimensional array of numbers "
+"representing the rectangular pixel neighborhood"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7759
+#, no-c-format
+msgid "nodatamode"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7761
+#, no-c-format
+msgid ""
+"Defines what value to pass to the function for a neighborhood pixel that is "
+"nodata or NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7762
+#, no-c-format
+msgid ""
+"'ignore': any NODATA values encountered in the neighborhood are ignored by "
+"the computation -- this flag must be sent to the user callback function, and "
+"the user function decides how to ignore it."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7763
+#, no-c-format
+msgid ""
+"'NULL': any NODATA values encountered in the neighborhood will cause the "
+"resulting pixel to be NULL -- the user callback function is skipped in this "
+"case."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7764
+#, no-c-format
+msgid ""
+"'value': any NODATA values encountered in the neighborhood are replaced by "
+"the reference pixel (the one in the center of the neighborhood). Note that "
+"if this value is NODATA, the behavior is the same as 'NULL' (for the "
+"affected neighborhood)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7768
+#, no-c-format
+msgid "args"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7769
+#, no-c-format
+msgid "Arguments to pass into the user function."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7779
+#, no-c-format
+msgid ""
+"Examples utilize the katrina raster loaded as a single tile described in "
+"<ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">http://"
+"trac.osgeo.org/gdal/wiki/frmts_wtkraster.html</ulink> and then prepared in "
+"the <xref linkend=\"RT_ST_Rescale\"/> examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7781
+#, no-c-format
+msgid ""
+"--\n"
+"-- A simple 'callback' user function that averages up all the values in a "
+"neighborhood.\n"
+"--\n"
+"CREATE OR REPLACE FUNCTION rast_avg(matrix float[][], nodatamode text, "
+"variadic args text[])\n"
+"    RETURNS float AS\n"
+"    $$\n"
+"    DECLARE\n"
+"                _matrix float[][];\n"
+"        x1 integer;\n"
+"        x2 integer;\n"
+"        y1 integer;\n"
+"        y2 integer;\n"
+"        sum float;\n"
+"    BEGIN\n"
+"                _matrix := matrix;\n"
+"        sum := 0;\n"
+"        FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP\n"
+"            FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP\n"
+"                sum := sum + _matrix[x][y];\n"
+"            END LOOP;\n"
+"        END LOOP;\n"
+"        RETURN (sum*1.0/(array_upper(matrix,1)*array_upper(matrix,2) ))::"
+"integer ;\n"
+"    END;\n"
+"    $$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"    \n"
+"-- now we apply to our raster averaging pixels within 2 pixels of each other "
+"in X and Y direction --\n"
+"SELECT ST_MapAlgebraFctNgb(rast, 1,  '8BUI', 4,4,\n"
+"                'rast_avg(float[][], text, text[])'::regprocedure, 'NULL', "
+"NULL) As nn_with_border\n"
+"        FROM katrinas_rescaled \n"
+"        limit 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7795
+#, no-c-format
+msgid "First band of our raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7809
+#, no-c-format
+msgid "new raster after averaging pixels withing 4x4 pixels of each other"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7824
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraExpr\"/>, <xref linkend=\"RT_ST_Rescale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7834
+#, no-c-format
+msgid "ST_Reclass"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7835
+#, no-c-format
+msgid ""
+"Creates a new raster composed of band types reclassified from original. The "
+"nband is the band to be changed. If nband is not specified assumed to be 1. "
+"All other bands are returned unchanged. Use case: convert a 16BUI band to a "
+"8BUI and so forth for simpler rendering as viewable formats."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7839
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>reclassarg[] </type> <parameter>VARIADIC reclassargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7867
+#, no-c-format
+msgid ""
+"Creates a new raster formed by applying a valid PostgreSQL algebraic "
+"operation defined by the <varname>reclassexpr</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified band 1 "
+"is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster. Bands not designated will come back "
+"unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid "
+"reclassification expressions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7869
+#, no-c-format
+msgid ""
+"The bands of the new raster will have pixel type of <varname>pixeltype</"
+"varname>. If <varname>reclassargset</varname> is passed in then each "
+"reclassarg defines behavior of each band generated."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7875
+#, no-c-format
+msgid "Examples Basic"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7876
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 2 is converted from 8BUI to "
+"4BUI and all values from 101-254 are set to nodata value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7877
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN reclass_rast raster;\n"
+"UPDATE dummy_rast SET reclass_rast = ST_Reclass(rast,2,'0-87:1-10, "
+"88-100:11-15, 101-254:0-0', '4BUI',0) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row, ST_Value(rast,2,i,j) As origval, \n"
+"    ST_Value(reclass_rast, 2, i, j) As reclassval, \n"
+"    ST_Value(reclass_rast, 2, i, j, false) As reclassval_include_nodata\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" col | row | origval | reclassval | reclassval_include_nodata\n"
+"-----+-----+---------+------------+---------------------------\n"
+"   1 |   1 |      78 |          9 |                         9\n"
+"   2 |   1 |      98 |         14 |                        14\n"
+"   3 |   1 |     122 |            |                         0\n"
+"   1 |   2 |      96 |         14 |                        14\n"
+"   2 |   2 |     118 |            |                         0\n"
+"   3 |   2 |     180 |            |                         0\n"
+"   1 |   3 |      99 |         15 |                        15\n"
+"   2 |   3 |     112 |            |                         0\n"
+"   3 |   3 |     169 |            |                         0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7881
+#, no-c-format
+msgid "Example: Advanced using multiple reclassargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7883
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 1,2,3 is converted to "
+"1BB,4BUI, 4BUI respectively and reclassified. Note this uses the variadic "
+"<varname>reclassarg</varname> argument which can take as input an indefinite "
+"number of reclassargs (theoretically as many bands as you have)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7884
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET reclass_rast = \n"
+"    ST_Reclass(rast,\n"
+"        ROW(2,'0-87]:1-10, (87-100]:11-15, (101-254]:0-0', '4BUI',NULL)::"
+"reclassarg,\n"
+"        ROW(1,'0-253]:1, 254:0', '1BB', NULL)::reclassarg,\n"
+"        ROW(3,'0-70]:1, (70-86:2, [86-150):3, [150-255:4', '4BUI', NULL)::"
+"reclassarg\n"
+"        ) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row,ST_Value(rast,1,i,j) As ov1,  "
+"ST_Value(reclass_rast, 1, i, j) As rv1, \n"
+"    ST_Value(rast,2,i,j) As ov2, ST_Value(reclass_rast, 2, i, j) As rv2, \n"
+"    ST_Value(rast,3,i,j) As ov3, ST_Value(reclass_rast, 3, i, j) As rv3\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+"col | row | ov1 | rv1 | ov2 | rv2 | ov3 | rv3\n"
+"----+-----+-----+-----+-----+-----+-----+-----\n"
+"  1 |   1 | 253 |   1 |  78 |   9 |  70 |   1\n"
+"  2 |   1 | 254 |   0 |  98 |  14 |  86 |   3\n"
+"  3 |   1 | 253 |   1 | 122 |   0 | 100 |   3\n"
+"  1 |   2 | 253 |   1 |  96 |  14 |  80 |   2\n"
+"  2 |   2 | 254 |   0 | 118 |   0 | 108 |   3\n"
+"  3 |   2 | 254 |   0 | 180 |   0 | 162 |   4\n"
+"  1 |   3 | 250 |   1 |  99 |  15 |  90 |   3\n"
+"  2 |   3 | 254 |   0 | 112 |   0 | 108 |   3\n"
+"  3 |   3 | 254 |   0 | 169 |   0 | 175 |   4"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7888
+#, no-c-format
+msgid ""
+"Example: Advanced Map a single band 32BF raster to multiple viewable bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7889
+#, no-c-format
+msgid ""
+"Create a new 3 band (8BUI,8BUI,8BUI viewable raster) from a raster that has "
+"only one 32bf band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7890
+#, no-c-format
+msgid ""
+"ALTER TABLE wind ADD COLUMN rast_view raster;\n"
+"UPDATE wind \n"
+"        set rast_view = ST_AddBand( NULL,\n"
+"        ARRAY[\n"
+"                ST_Reclass(rast, 1,'0.1-10]:1-10,9-10]:11,(11-33:0'::text, "
+"'8BUI'::text,0),\n"
+"                ST_Reclass(rast,1, '11-33):0-255,[0-32:0,(34-1000:0'::text, "
+"'8BUI'::text,0),  \n"
+"                ST_Reclass(rast,1,'0-32]:0,(32-100:100-255'::text, '8BUI'::"
+"text,0)\n"
+"                ]\n"
+"                );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7895
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Band\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, "
+"<xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"reclassarg\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7908
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7909
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"1 or more bands."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7914
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7920
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7927
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7934
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7941
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7953
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"at least one band. The resulting raster's extent is the extent of the whole "
+"set. In the case of intersection, the resulting value is defined by "
+"<varname>uniontype</varname> which is one of the following: LAST (default), "
+"FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7956
+#, no-c-format
+msgid ""
+"In order for rasters to be unioned, they most all have the same alignment. "
+"Use <xref linkend=\"RT_ST_SameAlignment\"/> and <xref linkend="
+"\"RT_ST_NotSameAlignmentReason\"/> for more details and help. One way to fix "
+"alignment issues is to use <xref linkend=\"RT_ST_Resample\"/> and use the "
+"same reference raster for alignment."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7960
+#, no-c-format
+msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7961
+#, no-c-format
+msgid "Availability: 2.1.0 ST_Union(rast, unionarg) variant was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7962
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast) (variant 1) unions all bands of all input "
+"rasters. Prior versions of PostGIS assumed the first band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7963
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast, uniontype) (variant 4) unions all bands of "
+"all input rasters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7966
+#, no-c-format
+msgid "Examples: Reconstitute a single band chunked raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7967
+#, no-c-format
+msgid ""
+"-- this creates a single band from first band of raster tiles\n"
+"-- that form the original file system tile\n"
+"SELECT filename, ST_Union(rast,1) As file_rast\n"
+"FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7971 reference_raster.xml:7975
+#, no-c-format
+msgid ""
+"Examples: Return a multi-band raster that is the union of tiles intersecting "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7972
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"-- Note: In 2.0, this would have just returned a single band raster\n"
+"-- , new union works on all bands by default\n"
+"-- this is equivalent to unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), "
+"ROW(3, 'LAST')]::unionarg[]\n"
+"SELECT ST_Union(rast)\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7976
+#, no-c-format
+msgid ""
+"Here we use the longer syntax if we only wanted a subset of bands or we want "
+"to change order of bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7977
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"SELECT ST_Union(rast,ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::"
+"unionarg[])\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7983
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7996
+#, no-c-format
+msgid "Built-in Map Algebra Callback Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8000
+#, no-c-format
+msgid "ST_Distinct4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8001
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the number of unique pixel values "
+"in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8005
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Distinct4ma</function></"
+"funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Distinct4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][] </type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8025
+#, no-c-format
+msgid ""
+"Calculate the number of unique pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8028 reference_raster.xml:8167
+#: reference_raster.xml:8242 reference_raster.xml:8327
+#: reference_raster.xml:8452 reference_raster.xml:8523
+#: reference_raster.xml:8598
+#, no-c-format
+msgid ""
+"Variant 1 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8032 reference_raster.xml:8171
+#: reference_raster.xml:8246 reference_raster.xml:8333
+#: reference_raster.xml:8456 reference_raster.xml:8527
+#: reference_raster.xml:8602
+#, no-c-format
+msgid ""
+"Variant 2 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8038 reference_raster.xml:8177
+#: reference_raster.xml:8252 reference_raster.xml:8339
+#: reference_raster.xml:8462 reference_raster.xml:8533
+#: reference_raster.xml:8608
+#, no-c-format
+msgid ""
+"Use of Variant 1 is discouraged since <xref linkend=\"RT_ST_MapAlgebraFctNgb"
+"\"/> has been deprecated as of 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8044 reference_raster.xml:8183
+#: reference_raster.xml:8258 reference_raster.xml:8345
+#: reference_raster.xml:8468 reference_raster.xml:8539
+#: reference_raster.xml:8614
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8050
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8056 reference_raster.xml:8480
+#: reference_raster.xml:8551
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8071
+#, no-c-format
+msgid "ST_InvDistWeight4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8072
+#, no-c-format
+msgid ""
+"Raster processing function that interpolates a pixel's value from the "
+"pixel's neighborhood."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8077
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8089
+#, no-c-format
+msgid ""
+"Calculate an interpolated value for a pixel using the Inverse Distance "
+"Weighted method."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8091
+#, no-c-format
+msgid ""
+"There are two optional parameters that can be passed through "
+"<varname>userargs</varname>. The first parameter is the power factor "
+"(variable k in the equation below) between 0 and 1 used in the Inverse "
+"Distance Weighted equation. If not specified, default value is 1. The second "
+"parameter is the weight percentage applied only when the value of the pixel "
+"of interest is included with the interpolated value from the neighborhood. "
+"If not specified and the pixel of interest has a value, that value is "
+"returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8095
+#, no-c-format
+msgid "The basic inverse distance weight equation is:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8104
+#, no-c-format
+msgid "k = power factor, a real number between 0 and 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8113 reference_raster.xml:8398
+#, no-c-format
+msgid ""
+"This function is a specialized callback function for use as a callback "
+"parameter to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8121 reference_raster.xml:8406
+#, no-c-format
+msgid "-- NEEDS EXAMPLE"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8126
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8135
+#, no-c-format
+msgid "ST_Max4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8136
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the maximum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8140
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Max4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Max4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8160
+#, no-c-format
+msgid "Calculate the maximum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8162 reference_raster.xml:8237
+#: reference_raster.xml:8322 reference_raster.xml:8447
+#: reference_raster.xml:8593
+#, no-c-format
+msgid ""
+"For Variant 2, a substitution value for NODATA pixels can be specified by "
+"passing that value to userargs."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8189
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      254\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8195
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8210
+#, no-c-format
+msgid "ST_Mean4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8211
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the mean pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8215
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Mean4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8235
+#, no-c-format
+msgid "Calculate the mean pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8264
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_mean4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8271
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"              ST_MapAlgebra(rast, 1, 'st_mean4ma(double precision[][][], "
+"integer[][], text[])'::regprocedure,'32BF', 'FIRST', NULL, 1, 1)\n"
+"       ,  2, 2)\n"
+"  FROM dummy_rast \n"
+"   WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8277
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8291
+#, no-c-format
+msgid "ST_Min4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8292
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the minimum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8298
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Min4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Min4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6133
+#: reference_raster.xml:8318
 #, no-c-format
-msgid "user defined with extra args and different bands from same raster"
+msgid "Calculate the minimum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8351
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      250\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8356
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6149
+#: reference_raster.xml:8371
 #, no-c-format
-msgid "ST_MapAlgebraFctNgb"
+msgid "ST_MinDist4ma"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6151
+#: reference_raster.xml:8372
 #, no-c-format
 msgid ""
-"1-band version: Map Algebra Nearest Neighbor using user-defined PostgreSQL "
-"function. Return a raster which values are the result of a PLPGSQL user "
-"function involving a neighborhood of values from the input raster band."
+"Raster processing function that returns the minimum distance (in number of "
+"pixels) between the pixel of interest and a neighboring pixel with value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6156
+#: reference_raster.xml:8377
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
-"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
-"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
-"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
-"args</parameter></paramdef>"
+"<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6174
+#: reference_raster.xml:8389
 #, no-c-format
 msgid ""
-"(one raster version) Return a raster which values are the result of a "
-"PLPGSQL user function involving a neighborhood of values from the input "
-"raster band. The user function takes the neighborhood of pixel values as an "
-"array of numbers, for each pixel, returns the result from the user function, "
-"replacing pixel value of currently inspected pixel with the function result."
+"Return the shortest distance (in number of pixels) between the pixel of "
+"interest and the closest pixel with value in the neighborhood."
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6182
+#. Tag: para
+#: reference_raster.xml:8392
 #, no-c-format
-msgid "rast"
+msgid ""
+"The intent of this function is to provide an informative data point that "
+"helps infer the usefulness of the pixel of interest's interpolated value "
+"from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is "
+"particularly useful when the neighborhood is sparsely populated."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6183
+#: reference_raster.xml:8411
 #, no-c-format
-msgid "Raster on which the user function is evaluated."
+msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6186
+#. Tag: refname
+#: reference_raster.xml:8420
 #, no-c-format
-msgid "band"
+msgid "ST_Range4ma"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6187
+#. Tag: refpurpose
+#: reference_raster.xml:8421
 #, no-c-format
-msgid "Band number of the raster to be evaluated. Default to 1."
+msgid ""
+"Raster processing function that calculates the range of pixel values in a "
+"neighborhood."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6191
+#. Tag: funcsynopsis
+#: reference_raster.xml:8425
 #, no-c-format
 msgid ""
-"The resulting pixel type of the output raster. Must be one listed in <xref "
-"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL. If not passed "
-"in or set to NULL, will default to the pixeltype of the <varname>rast</"
-"varname>. Results are truncated if they are larger than what is allowed for "
-"the pixeltype."
+"<funcprototype> <funcdef>float8 <function>ST_Range4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Range4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6194
+#. Tag: para
+#: reference_raster.xml:8445
 #, no-c-format
-msgid "ngbwidth"
+msgid "Calculate the range of pixel values in a neighborhood of pixels."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6195
+#. Tag: programlisting
+#: reference_raster.xml:8474
 #, no-c-format
-msgid "The width of the neighborhood, in cells."
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        4\n"
+"(1 row)"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6198
+#. Tag: refname
+#: reference_raster.xml:8495
 #, no-c-format
-msgid "ngbheight"
+msgid "ST_StdDev4ma"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6199
+#. Tag: refpurpose
+#: reference_raster.xml:8496
 #, no-c-format
-msgid "The height of the neighborhood, in cells."
+msgid ""
+"Raster processing function that calculates the standard deviation of pixel "
+"values in a neighborhood."
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6202
+#. Tag: funcsynopsis
+#: reference_raster.xml:8500
 #, no-c-format
-msgid "onerastngbuserfunc"
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_StdDev4ma</function></funcdef> <paramdef><type>double "
+"precision[][][]</type> <parameter>value</parameter></paramdef> "
+"<paramdef><type>integer[][] </type> <parameter>pos</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6203
+#: reference_raster.xml:8520
 #, no-c-format
 msgid ""
-"PLPGSQL/psql user function to apply to neighborhood pixels of a single band "
-"of a raster. The first element is a 2-dimensional array of numbers "
-"representing the rectangular pixel neighborhood"
+"Calculate the standard deviation of pixel values in a neighborhood of pixels."
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6207
+#. Tag: programlisting
+#: reference_raster.xml:8545
 #, no-c-format
-msgid "nodatamode"
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_stddev4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 1.30170822143555\n"
+"(1 row)"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6208
+#. Tag: refname
+#: reference_raster.xml:8566
+#, no-c-format
+msgid "ST_Sum4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8567
 #, no-c-format
 msgid ""
-"Defines what value to pass to the function for a neighborhood pixel that is "
-"nodata or NULL"
+"Raster processing function that calculates the sum of all pixel values in a "
+"neighborhood."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6209
+#. Tag: funcsynopsis
+#: reference_raster.xml:8571
 #, no-c-format
 msgid ""
-"'ignore': any NODATA values encountered in the neighborhood are ignored by "
-"the computation -- this flag must be sent to the user callback function, and "
-"the user function decides how to ignore it."
+"<funcprototype> <funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Sum4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6210
+#: reference_raster.xml:8591
+#, no-c-format
+msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8620
 #, no-c-format
 msgid ""
-"'NULL': any NODATA values encountered in the neighborhood will cause the "
-"resulting pixel to be NULL -- the user callback function is skipped in this "
-"case."
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |     2279\n"
+"(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6211
+#: reference_raster.xml:8626
 #, no-c-format
 msgid ""
-"'value': any NODATA values encountered in the neighborhood are replaced by "
-"the reference pixel (the one in the center of the neighborhood). Note that "
-"if this value is NODATA, the behavior is the same as 'NULL' (for the "
-"affected neighborhood)"
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6215
+#. Tag: title
+#: reference_raster.xml:8642
 #, no-c-format
-msgid "args"
+msgid "DEM (Elevation)"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6216
+#. Tag: refname
+#: reference_raster.xml:8646
 #, no-c-format
-msgid "Arguments to pass into the user function."
+msgid "ST_Aspect"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6227
+#. Tag: refpurpose
+#: reference_raster.xml:8647
 #, no-c-format
 msgid ""
-"Examples utilize the katrina raster loaded as a single tile described in "
-"<ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">http://"
-"trac.osgeo.org/gdal/wiki/frmts_wtkraster.html</ulink> and then prepared in "
-"the <xref linkend=\"RT_ST_Rescale\"/> examples"
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6230
+#. Tag: funcsynopsis
+#: reference_raster.xml:8650
 #, no-c-format
 msgid ""
-"--\n"
-"-- A simple 'callback' user function that averages up all the values in a "
-"neighborhood.\n"
-"--\n"
-"CREATE OR REPLACE FUNCTION rast_avg(matrix float[][], nodatamode text, "
-"variadic args text[])\n"
-"    RETURNS float AS\n"
-"    $$\n"
-"    DECLARE\n"
-"                _matrix float[][];\n"
-"        x1 integer;\n"
-"        x2 integer;\n"
-"        y1 integer;\n"
-"        y2 integer;\n"
-"        sum float;\n"
-"    BEGIN\n"
-"                _matrix := matrix;\n"
-"        sum := 0;\n"
-"        FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP\n"
-"            FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP\n"
-"                sum := sum + _matrix[x][y];\n"
-"            END LOOP;\n"
-"        END LOOP;\n"
-"        RETURN (sum*1.0/(array_upper(matrix,1)*array_upper(matrix,2) ))::"
-"integer ;\n"
-"    END;\n"
-"    $$\n"
-"LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
-"    \n"
-"-- now we apply to our raster averaging pixels within 2 pixels of each other "
-"in X and Y direction --\n"
-"SELECT ST_MapAlgebraFctNgb(rast, 1,  '8BUI', 4,4,\n"
-"                'rast_avg(float[][], text, text[])'::regprocedure, 'NULL', "
-"NULL) As nn_with_border\n"
-"        FROM katrinas_rescaled \n"
-"        limit 1;"
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6241
+#: reference_raster.xml:8675
 #, no-c-format
-msgid "First band of our raster"
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the aspect equation to neighboring pixels."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6249
+#: reference_raster.xml:8677
 #, no-c-format
-msgid "new raster after averaging pixels withing 4x4 pixels of each other"
+msgid ""
+"<varname>units</varname> indicates the units of the aspect. Possible values "
+"are: RADIANS, DEGREES (default)."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6262
+#: reference_raster.xml:8681
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_MapAlgebraExpr\"/>, <xref linkend=\"RT_ST_Rescale\"/>"
+"When <varname>units</varname> = RADIANS, values are between 0 and 2 * pi "
+"radians measured clockwise from North."
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:6268
+#. Tag: para
+#: reference_raster.xml:8685
 #, no-c-format
-msgid "ST_Polygon"
+msgid ""
+"When <varname>units</varname> = DEGREES, values are between 0 and 360 "
+"degrees measured clockwise from North."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6269
+#. Tag: para
+#: reference_raster.xml:8689
 #, no-c-format
-msgid ""
-"Returns a multipolygon geometry formed by the union of pixels that have a "
-"pixel value that is not no data value. If no band number is specified, band "
-"num defaults to 1."
+msgid "If slope of pixel is zero, aspect of pixel is -1."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6275
+#. Tag: para
+#: reference_raster.xml:8694
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
-"parameter></paramdef>"
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Aspect_Images.html"
+"\">ERDAS Field Guide - Aspect Images</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6285
+#: reference_raster.xml:8700 reference_raster.xml:8796
 #, no-c-format
-msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional "
+"<varname>interpolate_nodata</varname> function parameter"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6286
+#: reference_raster.xml:8701 reference_raster.xml:8925
 #, no-c-format
 msgid ""
-"Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning "
-"multipolygon is ensured to be valid."
+"Changed: 2.1.0 In prior versions, return values were in radians. Now, return "
+"values default to degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8706
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Aspect(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                    st_dumpvalues                                                                   \n"
+"                                  \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"----------------------------------\n"
+" (1,\"{{315,341.565063476562,0,18.4349479675293,45},"
+"{288.434936523438,315,0,45,71.5650482177734},{270,270,-1,90,90},"
+"{251.565048217773,225,180,135,108.434951782227},{225,198.43495178\n"
+"2227,180,161.565048217773,135}}\")\n"
+"(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6287
+#: reference_raster.xml:8712 reference_raster.xml:8809
+#: reference_raster.xml:8937
 #, no-c-format
 msgid ""
-"Changed: 2.1.0 In prior versions would sometimes return a polygon, changed "
-"to always return multipolygon."
+"Complete example of tiles of a coverage. This query only works with "
+"PostgreSQL 9.1 or higher."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6292
+#: reference_raster.xml:8714
 #, no-c-format
 msgid ""
-"-- by default no data band value is 0 or not set, so polygon will return a "
-"square polygon        \n"
-"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
-"FROM dummy_rast\n"
-"WHERE rid = 2;\n"
-"\n"
-"geomwkt\n"
-"--------------------------------------------\n"
-"MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 "
-"5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
-"                 \n"
-"                 \n"
-"-- now we change the no data value of first band\n"
-"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
-"WHERE rid = 2;\n"
-"SELECt rid, ST_BandNoDataValue(rast)\n"
-"from dummy_rast where rid = 2;\n"
-"\n"
-"-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
-"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
-"FROM dummy_rast\n"
-"WHERE rid = 2;\n"
-"\n"
-"geomwkt\n"
-"---------------------------------------------------------\n"
-"MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 "
-"5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 "
-"5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 "
-"5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 "
-"5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),"
-"((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 "
-"5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 "
-"5793244,3427927.8 5793243.9,3427927.8 5793243.85,3427927.85 "
-"5793243.85,3427927.85 5793243.8,3427927.85 5793243.75,3427927.8 "
-"5793243.75)))\n"
-"\n"
-"-- Or if you want the no data value different for just one time\n"
-"\n"
-"SELECT ST_AsText(\n"
-"        ST_Polygon(\n"
-"                ST_SetBandNoDataValue(rast,1,252)\n"
-"                )\n"
-"        ) As geomwkt\n"
-"FROM dummy_rast\n"
-"WHERE rid =2;\n"
-"\n"
-"geomwkt\n"
-"---------------------------------\n"
-"MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 "
-"5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 "
-"5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 "
-"5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 "
-"5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 "
-"5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 "
-"5793243.9,3427927.9 5793243.9)))"
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Aspect(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8719
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6302
+#: reference_raster.xml:8732
 #, no-c-format
-msgid "ST_Reclass"
+msgid "ST_HillShade"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6303
+#: reference_raster.xml:8733
 #, no-c-format
 msgid ""
-"Creates a new raster composed of band types reclassified from original. The "
-"nband is the band to be changed. If nband is not specified assumed to be 1. "
-"All other bands are returned unchanged. Use case: convert a 16BUI band to a "
-"8BUI and so forth for simpler rendering as viewable formats."
+"Returns the hypothetical illumination of an elevation raster band using "
+"provided azimuth, altitude, brightness and scale inputs."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:6308
+#: reference_raster.xml:8736
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<funcprototype> <funcdef>raster <function>ST_HillShade</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>azimuth=315</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>altitude=45</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>max_bright=255</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_HillShade</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>reclassarg[] </type> <parameter>VARIADIC reclassargset</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
-"<parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> "
-"<parameter>pixeltype</parameter></paramdef> </funcprototype>"
+"<parameter>azimuth=315</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>altitude=45</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>max_bright=255</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scale=1.0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6336
+#: reference_raster.xml:8767
 #, no-c-format
 msgid ""
-"Creates a new raster formed by applying a valid PostgreSQL algebraic "
-"operation defined by the <varname>reclassexpr</varname> on the input raster "
-"(<varname>rast</varname>). If no <varname>band</varname> is specified band 1 "
-"is assumed. The new raster will have the same georeference, width, and "
-"height as the original raster. Bands not designated will come back "
-"unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid "
-"reclassification expressions."
+"Returns the hypothetical illumination of an elevation raster band using the "
+"azimuth, altitude, brightness, and scale inputs. Utilizes map algebra and "
+"applies the hill shade equation to neighboring pixels. Return pixel values "
+"are between 0 and 255."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6340
+#: reference_raster.xml:8769
 #, no-c-format
 msgid ""
-"The bands of the new raster will have pixel type of <varname>pixeltype</"
-"varname>. If <varname>reclassargset</varname> is passed in then each "
-"reclassarg defines behavior of each band generated."
+"<varname>azimuth</varname> is a value between 0 and 360 degrees measured "
+"clockwise from North."
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6347
+#. Tag: para
+#: reference_raster.xml:8773
 #, no-c-format
-msgid "Examples Basic"
+msgid ""
+"<varname>altitude</varname> is a value between 0 and 90 degrees where 0 "
+"degrees is at the horizon and 90 degrees is directly overhead."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6349
+#: reference_raster.xml:8777
 #, no-c-format
 msgid ""
-"Create a new raster from the original where band 2 is converted from 8BUI to "
-"4BUI and all values from 101-254 are set to nodata value."
+"<varname>max_bright</varname> is a value between 0 and 255 with 0 as no "
+"brightness and 255 as max brightness."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6350
+#. Tag: para
+#: reference_raster.xml:8781 reference_raster.xml:8909
 #, no-c-format
 msgid ""
-"ALTER TABLE dummy_rast ADD COLUMN reclass_rast raster;\n"
-"UPDATE dummy_rast SET reclass_rast = ST_Reclass(rast,2,'0-87:1-10, "
-"88-100:11-15, 101-254:0-0', '4BUI',0) WHERE rid = 2;\n"
-"\n"
-"SELECT i as col, j as row, ST_Value(rast,2,i,j) As origval, \n"
-"    ST_Value(reclass_rast, 2, i, j) As reclassval, \n"
-"    ST_Value(reclass_rast, 2, i, j, false) As reclassval_include_nodata\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
-"generate_series(1,3) AS j\n"
-"WHERE rid = 2;\n"
-"\n"
-" col | row | origval | reclassval | reclassval_include_nodata\n"
-"-----+-----+---------+------------+---------------------------\n"
-"   1 |   1 |      78 |          9 |                         9\n"
-"   2 |   1 |      98 |         14 |                        14\n"
-"   3 |   1 |     122 |            |                         0\n"
-"   1 |   2 |      96 |         14 |                        14\n"
-"   2 |   2 |     118 |            |                         0\n"
-"   3 |   2 |     180 |            |                         0\n"
-"   1 |   3 |      99 |         15 |                        15\n"
-"   2 |   3 |     112 |            |                         0\n"
-"   3 |   3 |     169 |            |                         0"
+"<varname>scale</varname> is the ratio of vertical units to horizontal. For "
+"Feet:LatLon use scale=370400, for Meters:LatLon use scale=111120."
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6354
+#. Tag: para
+#: reference_raster.xml:8785
 #, no-c-format
-msgid "Example: Advanced using multiple reclassargs"
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the hillshade illumination."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6356
+#: reference_raster.xml:8790
 #, no-c-format
 msgid ""
-"Create a new raster from the original where band 1,2,3 is converted to "
-"1BB,4BUI, 4BUI respectively and reclassified. Note this uses the variadic "
-"<varname>reclassarg</varname> argument which can take as input an indefinite "
-"number of reclassargs (theoretically as many bands as you have)"
+"For more information about Hillshade, please refer to <ulink url=\"http://"
+"webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How%20Hillshade"
+"%20works\">How hillshade works</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8797
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, azimuth and altitude were expressed in "
+"radians. Now, azimuth and altitude are expressed in degrees"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6358
+#: reference_raster.xml:8803
 #, no-c-format
 msgid ""
-"UPDATE dummy_rast SET reclass_rast = \n"
-"    ST_Reclass(rast,\n"
-"        ROW(2,'0-87]:1-10, (87-100]:11-15, (101-254]:0-0', '4BUI',NULL)::"
-"reclassarg,\n"
-"        ROW(1,'0-253]:1, 254:0', '1BB', NULL)::reclassarg,\n"
-"        ROW(3,'0-70]:1, (70-86:2, [86-150):3, [150-255:4', '4BUI', NULL)::"
-"reclassarg\n"
-"        ) WHERE rid = 2;\n"
-"\n"
-"SELECT i as col, j as row,ST_Value(rast,1,i,j) As ov1,  ST_Value"
-"(reclass_rast, 1, i, j) As rv1, \n"
-"    ST_Value(rast,2,i,j) As ov2, ST_Value(reclass_rast, 2, i, j) As rv2, \n"
-"    ST_Value(rast,3,i,j) As ov3, ST_Value(reclass_rast, 3, i, j) As rv3\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
-"generate_series(1,3) AS j\n"
-"WHERE rid = 2;\n"
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Hillshade(rast, 1, '32BF'))\n"
+"FROM foo\n"
 "\n"
-"col | row | ov1 | rv1 | ov2 | rv2 | ov3 | rv3\n"
-"----+-----+-----+-----+-----+-----+-----+-----\n"
-"  1 |   1 | 253 |   1 |  78 |   9 |  70 |   1\n"
-"  2 |   1 | 254 |   0 |  98 |  14 |  86 |   3\n"
-"  3 |   1 | 253 |   1 | 122 |   0 | 100 |   3\n"
-"  1 |   2 | 253 |   1 |  96 |  14 |  80 |   2\n"
-"  2 |   2 | 254 |   0 | 118 |   0 | 108 |   3\n"
-"  3 |   2 | 254 |   0 | 180 |   0 | 162 |   4\n"
-"  1 |   3 | 250 |   1 |  99 |  15 |  90 |   3\n"
-"  2 |   3 | 254 |   0 | 112 |   0 | 108 |   3\n"
-"  3 |   3 | 254 |   0 | 169 |   0 | 175 |   4"
+"                                                                                                                       st_dumpvalues                                                \n"
+"                                                                       \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"-----------------------------------------------------------------------\n"
+" (1,\"{{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,251.32763671875,220.749786376953,147.224319458008,NULL},"
+"{NULL,220.749786376953,180.312225341797,67.7497863769531,NULL},"
+"{NULL,147.224319458008\n"
+",67.7497863769531,43.1210060119629,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8811
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Hillshade(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8816
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_Aspect\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8829
+#, no-c-format
+msgid "ST_Roughness"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8830
+#, no-c-format
+msgid "Returns a raster with the calculated \"roughness\" of a DEM."
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6361
+#. Tag: funcprototype
+#: reference_raster.xml:8835
 #, no-c-format
 msgid ""
-"Example: Advanced Map a single band 32BF raster to multiple viewable bands"
+"<funcdef>raster <function>ST_Roughness</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype="
+"\"32BF\"</parameter> </paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type> <parameter> interpolate_nodata=FALSE </parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6363
+#: reference_raster.xml:8848
 #, no-c-format
 msgid ""
-"Create a new 3 band (8BUI,8BUI,8BUI viewable raster) from a raster that has "
-"only one 32bf band"
+"Calculates the \"roughness\" of a DEM, by subtracting the maximum from the "
+"minimum for a given area."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6364
+#: reference_raster.xml:8854 reference_raster.xml:8987
+#: reference_raster.xml:9038
 #, no-c-format
-msgid ""
-"ALTER TABLE wind ADD COLUMN rast_view raster;\n"
-"UPDATE wind \n"
-"        set rast_view = ST_AddBand( NULL,\n"
-"        ARRAY[\n"
-"                ST_Reclass(rast, 1,'0.1-10]:1-10,9-10]:11,(11-33:0'::text, "
-"'8BUI'::text,0),\n"
-"                ST_Reclass(rast,1, '11-33):0-255,[0-32:0,(34-1000:0'::text, "
-"'8BUI'::text,0),  \n"
-"                ST_Reclass(rast,1,'0-32]:0,(32-100:100-255'::text, '8BUI'::"
-"text,0)\n"
-"                ]\n"
-"                ) ;"
+msgid "-- needs examples"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6370
+#: reference_raster.xml:8859
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Band\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, "
-"<xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"reclassarg\"/>, "
-"<xref linkend=\"RT_ST_Value\"/>"
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6376
+#: reference_raster.xml:8872
 #, no-c-format
-msgid "ST_Union"
+msgid "ST_Slope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6377
+#: reference_raster.xml:8873
 #, no-c-format
 msgid ""
-"Returns the union of a set of raster tiles into a single raster composed of "
-"1 or more bands."
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6382
+#. Tag: funcsynopsis
+#: reference_raster.xml:8876
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
+"<funcprototype> <funcdef>raster <function>ST_Slope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Slope</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>units=DEGREES</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype>"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6388
+#. Tag: para
+#: reference_raster.xml:8903
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></"
-"paramdef>"
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the slope equation to neighboring pixels."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6395
+#. Tag: para
+#: reference_raster.xml:8905
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
+"<varname>units</varname> indicates the units of the slope. Possible values "
+"are: RADIANS, DEGREES (default), PERCENT."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6402
+#. Tag: para
+#: reference_raster.xml:8913
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the surface slope."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6409
+#. Tag: para
+#: reference_raster.xml:8918
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Slope_Images.html\">ERDAS "
+"Field Guide - Slope Images</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6421
+#: reference_raster.xml:8924
 #, no-c-format
 msgid ""
-"Returns the union of a set of raster tiles into a single raster composed of "
-"at least one band. If <varname>nband</varname> is not specified, band 1 is "
-"assumed. The resulting raster's extent is the extent of the whole set. In "
-"the case of intersection, the resulting value is defined by "
-"<varname>uniontype</varname> which is one of the following: LAST (default), "
-"FIRST, MIN, MAX, COUNT, SUM, MEAN."
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional <varname>units</"
+"varname>, <varname>scale</varname>, <varname>interpolate_nodata</varname> "
+"function parameters"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6424
+#. Tag: programlisting
+#: reference_raster.xml:8931
 #, no-c-format
-msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based)."
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Slope(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                            st_dumpvalues                                                                                                                                           \n"
+"                                                                     \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"---------------------------------------------------------------------\n"
+" (1,"
+"\"{{10.0249881744385,21.5681285858154,26.5650520324707,21.5681285858154,10.0249881744385},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},\n"
+"{26.5650520324707,36.8698959350586,0,36.8698959350586,26.5650520324707},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},"
+"{10.0249881744385,21.\n"
+"5681285858154,26.5650520324707,21.5681285858154,10.0249881744385}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8939
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Slope(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6425
+#: reference_raster.xml:8944
 #, no-c-format
 msgid ""
-"Changed: 2.1.0 ST_Union(rast) now unions all bands of all input rasters. "
-"Prior versions only unioned the first band of all input rasters."
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6429
+#. Tag: refname
+#: reference_raster.xml:8957
 #, no-c-format
-msgid "Examples: Reconstitute a single band chunked raster tile"
+msgid "ST_TPI"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6430
+#. Tag: refpurpose
+#: reference_raster.xml:8958
 #, no-c-format
-msgid ""
-"-- this creates a single band from first band of raster tiles\n"
-"-- that form the original file system tile\n"
-"SELECT filename, ST_Union(rast,1) As file_rast\n"
-"FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;"
+msgid "Returns a raster with the calculated Topographic Position Index."
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6434 reference_raster.xml:6442
+#. Tag: funcprototype
+#: reference_raster.xml:8963
 #, no-c-format
 msgid ""
-"Examples: Return a multi-band raster that is the union of tiles intersecting "
-"geometry"
+"<funcdef>raster <function>ST_TPI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6435
+#: reference_raster.xml:8977
 #, no-c-format
 msgid ""
-"-- this creates a multi band raster collecting all the tiles that intersect "
-"a line -- Note: In 2.0, this would have just returned a single band raster "
-"-- , new union works on all bands by default -- this is equivalent to "
-"unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), ROW(3, 'LAST')]::unionarg[]"
+"Calculates the Topographic Position Index, which is defined as the folcal "
+"mean with radius of one minus the center cell."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6439
+#. Tag: para
+#: reference_raster.xml:8980 reference_raster.xml:9030
 #, no-c-format
-msgid ""
-"SELECT ST_Union(rast)\n"
-"FROM aerials.boston\n"
-"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
-"88772)',26986) );"
+msgid "This function only supports a focalmean radius of one."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6443
+#: reference_raster.xml:8992
 #, no-c-format
 msgid ""
-"Here we use the longer syntax if we only wanted a subset of bands or we want "
-"to change order of bands"
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6444
+#. Tag: refname
+#: reference_raster.xml:9005
+#, no-c-format
+msgid "ST_TRI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9006
+#, no-c-format
+msgid "Returns a raster with the calculated Terrain Ruggedness Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9011
 #, no-c-format
 msgid ""
-"-- this creates a multi band raster collecting all the tiles that intersect "
-"a line\n"
-"SELECT ST_Union(rast,ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::"
-"unionarg[])\n"
-"FROM aerials.boston\n"
-"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
-"88772)',26986) );"
+"<funcdef>raster <function>ST_TRI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6450
+#: reference_raster.xml:9025
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, "
-"<xref linkend=\"RT_ST_Clip\"/>"
+"Terrain Ruggedness Index is calculated by comparing a central pixel with its "
+"neighbors, taking the absolute values of the differences, and averaging the "
+"result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9043
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6461
+#: reference_raster.xml:9057
 #, no-c-format
-msgid "Raster Processing Builtin Functions"
+msgid "Raster to Geometry"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6464
+#: reference_raster.xml:9061
 #, no-c-format
-msgid "ST_Min4ma"
+msgid "Box3D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6465
+#: reference_raster.xml:9062
 #, no-c-format
-msgid ""
-"Raster processing function that calculates the minimum pixel value in a "
-"neighborhood."
+msgid "Returns the box 3d representation of the enclosing box of the raster."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6470
+#: reference_raster.xml:9067
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Min4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6482
+#: reference_raster.xml:9077
 #, no-c-format
-msgid "Calculate the minimum pixel value in a neighborhood of pixels."
+msgid "Returns the box representing the extent of the raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6485 reference_raster.xml:6535
-#: reference_raster.xml:6585 reference_raster.xml:6635
-#: reference_raster.xml:6684 reference_raster.xml:6734
-#: reference_raster.xml:6784 reference_raster.xml:6855
-#: reference_raster.xml:6904
+#: reference_raster.xml:9078
 #, no-c-format
 msgid ""
-"This function is a specialized callback function for use as a callback "
-"parameter to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</"
+"varname>, <varname>MAXY</varname>))"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6494
+#. Tag: para
+#: reference_raster.xml:9082
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,"
-"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |      250\n"
-"(1 row)"
+"Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of "
+"box3d. Since box2d is a deprecated type, this was changed to box3d."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6500
+#. Tag: programlisting
+#: reference_raster.xml:9088
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
-"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref "
-"linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+"SELECT\n"
+"        rid,\n"
+"        Box3D(rast) AS rastbox\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid |        rastbox\n"
+"----+-------------------------------------------------\n"
+"1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
+"2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6514
+#: reference_raster.xml:9101
 #, no-c-format
-msgid "ST_Max4ma"
+msgid "ST_ConvexHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6515
+#: reference_raster.xml:9102
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the maximum pixel value in a "
-"neighborhood."
+"Return the convex hull geometry of the raster including pixel values equal "
+"to BandNoDataValue. For regular shaped and non-skewed rasters, this gives "
+"the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6520
+#: reference_raster.xml:9109
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Max4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6532
-#, no-c-format
-msgid "Calculate the maximum pixel value in a neighborhood of pixels."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6544
+#: reference_raster.xml:9119
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,"
-"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |      254\n"
-"(1 row)"
+"Return the convex hull geometry of the raster including the NoDataBandValue "
+"band pixels. For regular shaped and non-skewed rasters, this gives more or "
+"less the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6550
+#: reference_raster.xml:9123
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
-"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref "
-"linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:6564
-#, no-c-format
-msgid "ST_Sum4ma"
+"ST_Envelope floors the coordinates and hence add a little buffer around the "
+"raster so the answer is subtly different from ST_ConvexHull which does not "
+"floor."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6565
+#. Tag: para
+#: reference_raster.xml:9130
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the sum of all pixel values in a "
-"neighborhood."
+"Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram "
+"of this."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6570
+#. Tag: programlisting
+#: reference_raster.xml:9131
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:6582
-#, no-c-format
-msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+"-- Note envelope and convexhull are more or less the same\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 "
+"0,20 60,0 60,0 0))"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6594
+#: reference_raster.xml:9132
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,"
-"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |     2279\n"
-"(1 row)"
+"-- now we skew the raster \n"
+"-- note how the convex hull and envelope are now different\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
+"        FROM dummy_rast WHERE rid=1) As foo;\n"
+"        \n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 "
+"0,22 61,0 61,0 0))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6600
+#: reference_raster.xml:9138
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
-"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref "
-"linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+", <xref linkend=\"RT_ST_MinConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/"
+">, <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6614
+#: reference_raster.xml:9149
 #, no-c-format
-msgid "ST_Mean4ma"
+msgid "ST_DumpAsPolygons"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6615
+#: reference_raster.xml:9150
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the mean pixel value in a "
-"neighborhood."
+"Returns a set of geomval (geom,val) rows, from a given raster band. If no "
+"band number is specified, band num defaults to 1."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6620
+#: reference_raster.xml:9155
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6632
-#, no-c-format
-msgid "Calculate the mean pixel value in a neighborhood of pixels."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6644
+#: reference_raster.xml:9166
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_mean4ma(float[][],"
-"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid |     st_value\n"
-"-----+------------------\n"
-"   2 | 253.222229003906\n"
-"(1 row)"
+"This is a set-returning function (SRF). It returns a set of geomval rows, "
+"formed by a geometry (geom) and a pixel band value (val). Each polygon is "
+"the union of all pixels for that band that have the same pixel value denoted "
+"by val."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6650
+#: reference_raster.xml:9170
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
-"linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref "
-"linkend=\"RT_ST_StdDev4ma\"/>"
+"ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a "
+"GROUP BY in that it creates new rows. For example it can be used to expand a "
+"single raster into multiple POLYGONS/MULTIPOLYGONS."
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:6663
+#. Tag: para
+#: reference_raster.xml:9174
 #, no-c-format
-msgid "ST_Range4ma"
+msgid "Availability: Requires GDAL 1.7 or higher."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6664
+#. Tag: para
+#: reference_raster.xml:9175
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the range of pixel values in a "
-"neighborhood."
+"If there is a no data value set for a band, pixels with that value will not "
+"be returned."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6669
+#. Tag: para
+#: reference_raster.xml:9176
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Range4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"If you only care about count of pixels with a given value in a raster, it is "
+"faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6681
+#: reference_raster.xml:9178
 #, no-c-format
-msgid "Calculate the range of pixel values in a neighborhood of pixels."
+msgid ""
+"This is different than ST_PixelAsPolygons where one geometry is returned for "
+"each pixel regardless of pixel value."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6693
+#: reference_raster.xml:9186
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,"
-"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
+"SELECT val, ST_AsText(geom) As geomwkt\n"
+"FROM (\n"
+"SELECT (ST_DumpAsPolygons(rast)).*\n"
 "FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |        4\n"
-"(1 row)"
+"WHERE rid = 2\n"
+") As foo\n"
+"WHERE val BETWEEN 249 and 251\n"
+"ORDER BY val;\n"
+"\n"
+" val |                                                       geomwkt\n"
+"-----"
+"+--------------------------------------------------------------------------\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 "
+"5793243.85,\n"
+"                 3427928 5793243.95,3427927.95 5793243.95))\n"
+" 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 "
+"5793243.85,\n"
+"                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
+" 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 "
+"5793243.75,\n"
+"                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
+" 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 "
+"5793243.8,\n"
+"                 3427927.8 5793243.85,3427927.75 5793243.85))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6699 reference_raster.xml:6749
-#: reference_raster.xml:6799
+#: reference_raster.xml:9191
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
-"linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend="
-"\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref "
+"linkend=\"RT_ST_ValueCount\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6713
+#: reference_raster.xml:9202
 #, no-c-format
-msgid "ST_Distinct4ma"
+msgid "ST_Envelope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6714
+#: reference_raster.xml:9203
 #, no-c-format
-msgid ""
-"Raster processing function that calculates the number of unique pixel values "
-"in a neighborhood."
+msgid "Returns the polygon representation of the extent of the raster."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6719
+#: reference_raster.xml:9208
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Distinct4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6731
+#: reference_raster.xml:9218
 #, no-c-format
 msgid ""
-"Calculate the number of unique pixel values in a neighborhood of pixels."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6743
-#, no-c-format
-msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],"
-"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |        3\n"
-"(1 row)"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:6763
-#, no-c-format
-msgid "ST_StdDev4ma"
+"Returns the polygon representation of the extent of the raster in spatial "
+"coordinate units defined by srid. It is a float8 minimum bounding box "
+"represented as a polygon."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6764
+#. Tag: para
+#: reference_raster.xml:9220
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the standard deviation of pixel "
-"values in a neighborhood."
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>))"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6769
+#. Tag: programlisting
+#: reference_raster.xml:9232
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |                                         envgeomwkt\n"
+"-----+--------------------------------------------------------------------\n"
+"   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
+"   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
+"                   3427928 5793244,3427927 5793244, 3427927 5793243))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6781
-#, no-c-format
-msgid ""
-"Calculate the standard deviation of pixel values in a neighborhood of pixels."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6793
+#: reference_raster.xml:9237
 #, no-c-format
-msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_stddev4ma(float[][],"
-"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid |     st_value\n"
-"-----+------------------\n"
-"   2 | 1.30170822143555\n"
-"(1 row)"
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6813
+#: reference_raster.xml:9247
 #, no-c-format
-msgid "ST_InvDistWeight4ma"
+msgid "ST_MinConvexHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6814
+#: reference_raster.xml:9248
 #, no-c-format
-msgid ""
-"Raster processing function that interpolates a pixel's value from the "
-"pixel's neighborhood."
+msgid "Return the convex hull geometry of the raster excluding NODATA pixels."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6819
+#: reference_raster.xml:9255
 #, no-c-format
 msgid ""
-"<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> "
-"<paramdef><type>double precision[][]</type> <parameter>matrix</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
-"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"<funcdef>geometry <function>ST_MinConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=NULL</"
 "parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6831
+#: reference_raster.xml:9266
 #, no-c-format
 msgid ""
-"Calculate an interpolated value for a pixel using the Inverse Distance "
-"Weighted method."
+"Return the convex hull geometry of the raster excluding NODATA pixels. If "
+"<varname>nband</varname> is NULL, all bands of the raster are considered."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6833
+#. Tag: programlisting
+#: reference_raster.xml:9275
 #, no-c-format
 msgid ""
-"There are two optional parameters that can be passed through <varname>args</"
-"varname>. The first parameter is the power factor (variable k in the "
-"equation below) between 0 and 1 used in the Inverse Distance Weighted "
-"equation. If not specified, default value is 1. The second parameter is the "
-"weight percentage applied only when the value of the pixel of interest is "
-"included with the interpolated value from the neighborhood. If not specified "
-"and the pixel of interest has a value, that value is returned."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:6837
-#, no-c-format
-msgid "The basic inverse distance weight equation is:"
+"WITH foo AS (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_SetValues(\n"
+"                                ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(9, "
+"9, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0), 2, '8BUI', 1, 0),\n"
+"                                1, 1, 1,\n"
+"                                ARRAY[\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 1],\n"
+"                                        [0, 0, 0, 1, 1, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0]\n"
+"                                ]::double precision[][]\n"
+"                        ),\n"
+"                        2, 1, 1,\n"
+"                        ARRAY[\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [1, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 1, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 1, 0, 0, 0, 0, 0, 0]\n"
+"                        ]::double precision[][]\n"
+"                ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_AsText(ST_ConvexHull(rast)) AS hull,\n"
+"        ST_AsText(ST_MinConvexHull(rast)) AS mhull,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 1)) AS mhull_1,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 2)) AS mhull_2\n"
+"FROM foo\n"
+"\n"
+"               hull               |                mhull                "
+"|               mhull_1               |               "
+"mhull_2               \n"
+"----------------------------------+-------------------------------------"
+"+-------------------------------------"
+"+-------------------------------------\n"
+" POLYGON((0 0,9 0,9 -9,0 -9,0 0)) | POLYGON((0 -3,9 -3,9 -9,0 -9,0 -3)) | "
+"POLYGON((3 -3,9 -3,9 -6,3 -6,3 -3)) | POLYGON((0 -3,6 -3,6 -9,0 -9,0 -3))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6846
-#, no-c-format
-msgid "k = power factor, a real number between 0 and 1"
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6863 reference_raster.xml:6912
+#: reference_raster.xml:9280
 #, no-c-format
-msgid "-- NEEDS EXAMPLE"
+msgid ""
+", <xref linkend=\"RT_ST_ConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/>, "
+"<xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6868
+#. Tag: refname
+#: reference_raster.xml:9291
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
+msgid "ST_Polygon"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:6877
+#. Tag: refpurpose
+#: reference_raster.xml:9292
 #, no-c-format
-msgid "ST_MinDist4ma"
+msgid ""
+"Returns a multipolygon geometry formed by the union of pixels that have a "
+"pixel value that is not no data value. If no band number is specified, band "
+"num defaults to 1."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6878
+#. Tag: funcprototype
+#: reference_raster.xml:9297
 #, no-c-format
 msgid ""
-"Raster processing function that returns the minimum distance (in number of "
-"pixels) between the pixel of interest and a neighboring pixel with value."
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef>"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6883
+#. Tag: para
+#: reference_raster.xml:9307
 #, no-c-format
-msgid ""
-"<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> "
-"<paramdef><type>double precision[][]</type> <parameter>matrix</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
-"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
-"parameter></paramdef>"
+msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6895
+#: reference_raster.xml:9308
 #, no-c-format
 msgid ""
-"Return the shortest distance (in number of pixels) between the pixel of "
-"interest and the closest pixel with value in the neighborhood."
+"Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning "
+"multipolygon is ensured to be valid."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6898
+#: reference_raster.xml:9309
 #, no-c-format
 msgid ""
-"The intent of this function is to provide an informative data point that "
-"helps infer the usefulness of the pixel of interest's interpolated value "
-"from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is "
-"particularly useful when the neighborhood is sparsely populated."
+"Changed: 2.1.0 In prior versions would sometimes return a polygon, changed "
+"to always return multipolygon."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6917
+#. Tag: programlisting
+#: reference_raster.xml:9314
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
+msgid ""
+"-- by default no data band value is 0 or not set, so polygon will return a "
+"square polygon        \n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"--------------------------------------------\n"
+"MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 "
+"5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
+"                 \n"
+"                 \n"
+"-- now we change the no data value of first band\n"
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
+"WHERE rid = 2;\n"
+"SELECt rid, ST_BandNoDataValue(rast)\n"
+"from dummy_rast where rid = 2;\n"
+"\n"
+"-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------------------------------\n"
+"MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 "
+"5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 "
+"5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 "
+"5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 "
+"5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),"
+"((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 "
+"5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 "
+"5793244,3427927.8 5793243.9,3427927.8 5793243.85,3427927.85 "
+"5793243.85,3427927.85 5793243.8,3427927.85 5793243.75,3427927.8 "
+"5793243.75)))\n"
+"\n"
+"-- Or if you want the no data value different for just one time\n"
+"\n"
+"SELECT ST_AsText(\n"
+"        ST_Polygon(\n"
+"                ST_SetBandNoDataValue(rast,1,252)\n"
+"                )\n"
+"        ) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid =2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------\n"
+"MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 "
+"5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 "
+"5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 "
+"5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 "
+"5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 "
+"5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 "
+"5793243.9,3427927.9 5793243.9)))"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6927
+#: reference_raster.xml:9331
 #, no-c-format
 msgid "Raster Operators"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6930
+#: reference_raster.xml:9334
 #, no-c-format
 msgid "&&"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6932
+#: reference_raster.xml:9336
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding "
 "box."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6937
-#, no-c-format
-msgid ""
-"<funcdef>boolean <function>&&</function></funcdef> <paramdef> "
-"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
-"<type>raster </type> <parameter>B</parameter> </paramdef>"
+#. Tag: funcsynopsis
+#: reference_raster.xml:9340
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> "
+"</paramdef> <paramdef> <type>geometry </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>&"
+"&</function></funcdef> <paramdef> <type>geometry </type> <parameter>B</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>A</"
+"parameter> </paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6958
+#: reference_raster.xml:9382
 #, no-c-format
 msgid ""
 "The <varname>&&</varname> operator returns <varname>TRUE</varname> "
-"if the bounding box of raster A intersects the bounding box of raster B."
+"if the bounding box of raster/geometr A intersects the bounding box of "
+"raster/geometr B."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6960 reference_raster.xml:7939
-#: reference_raster.xml:8040 reference_raster.xml:8133
+#: reference_raster.xml:9384 reference_raster.xml:9636
+#: reference_raster.xml:10646 reference_raster.xml:10747
+#: reference_raster.xml:10840
 #, no-c-format
 msgid ""
 "This operand will make use of any indexes that may be available on the "
@@ -12062,7 +15373,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6968
+#: reference_raster.xml:9393
 #, no-c-format
 msgid ""
 "SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As "
@@ -12077,20 +15388,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6974
+#: reference_raster.xml:9399
 #, no-c-format
 msgid "&<"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6976
+#: reference_raster.xml:9401
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if A's bounding box is to the left of B's."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6981
+#: reference_raster.xml:9406
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
@@ -12099,7 +15410,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7002
+#: reference_raster.xml:9427
 #, no-c-format
 msgid ""
 "The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
@@ -12109,7 +15420,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7006 reference_raster.xml:7051
+#: reference_raster.xml:9431 reference_raster.xml:9476
 #, no-c-format
 msgid ""
 "This operand will make use of any indexes that may be available on the "
@@ -12117,7 +15428,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7013
+#: reference_raster.xml:9438
 #, no-c-format
 msgid ""
 "SELECT A.rid As a_rid, B.rid As b_rid, A.rast &< B.rast As overleft\n"
@@ -12137,20 +15448,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7019
+#: reference_raster.xml:9444
 #, no-c-format
 msgid "&>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7021
+#: reference_raster.xml:9446
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if A's bounding box is to the right of B's."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:7026
+#: reference_raster.xml:9451
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>&></function></funcdef> <paramdef> "
@@ -12159,7 +15470,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7047
+#: reference_raster.xml:9472
 #, no-c-format
 msgid ""
 "The <varname>&></varname> operator returns <varname>TRUE</varname> if "
@@ -12169,7 +15480,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7058
+#: reference_raster.xml:9483
 #, no-c-format
 msgid ""
 "SELECT A.rid As a_rid, B.rid As b_rid, A.rast &> B.rast As overright\n"
@@ -12188,20 +15499,209 @@ msgid ""
 "     1 |     1 | t"
 msgstr ""
 
+#. Tag: refname
+#: reference_raster.xml:9489
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9491
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9496
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>=</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9517
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B. "
+"PostgreSQL uses the =, <, and > operators defined for rasters to "
+"perform internal orderings and comparison of rasters (ie. in a GROUP BY or "
+"ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9521
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"rasters. Use <xref linkend=\"RT_Raster_Same\"/> instead. This operator "
+"exists mostly so one can group by the raster column."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9537
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9539
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's. "
+"Uses double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9543
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9586
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contained by bounding box of raster/"
+"geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9589 reference_raster.xml:9709
+#, no-c-format
+msgid "This operand will use spatial indexes on the rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9591
+#, no-c-format
+msgid "Availability: 2.0.0 raster @ raster, raster @ geometry introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9592
+#, no-c-format
+msgid "Availability: 2.0.5 geometry @ raster introduced"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9605
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9607
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9612
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9633
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9645
+#, no-c-format
+msgid ""
+"Very useful usecase is for taking two sets of single band rasters that are "
+"of the same chunk but represent different themes and creating a multi-band "
+"raster"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9646
+#, no-c-format
+msgid ""
+"SELECT ST_AddBand(prec.rast, alt.rast) As new_rast\n"
+"    FROM prec INNER JOIN alt ON (prec.rast ~= alt.rast);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9651
+#, no-c-format
+msgid ", <xref linkend=\"RT_Raster_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9657
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9659
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contains B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9663
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9706
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contains bounding box of raster/geometr "
+"B."
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:7064
+#: reference_raster.xml:9724
 #, no-c-format
 msgid "Raster and Raster Band Spatial Relationships"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7068
+#: reference_raster.xml:9728
 #, no-c-format
 msgid "ST_Contains"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7069
+#: reference_raster.xml:9729
 #, no-c-format
 msgid ""
 "Return true if no points of raster rastB lie in the exterior of raster rastA "
@@ -12210,7 +15710,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7075
+#: reference_raster.xml:9735
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> "
@@ -12225,7 +15725,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7114
+#: reference_raster.xml:9774
 #, no-c-format
 msgid ""
 "Raster rastA contains rastB if and only if no points of rastB lie in the "
@@ -12237,10 +15737,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7119 reference_raster.xml:7212
-#: reference_raster.xml:7293 reference_raster.xml:7374
-#: reference_raster.xml:7584 reference_raster.xml:7668
-#: reference_raster.xml:7748
+#: reference_raster.xml:9779 reference_raster.xml:9872
+#: reference_raster.xml:9953 reference_raster.xml:10034
+#: reference_raster.xml:10244 reference_raster.xml:10328
+#: reference_raster.xml:10408
 #, no-c-format
 msgid ""
 "This function will make use of any indexes that may be available on the "
@@ -12248,16 +15748,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7125
+#: reference_raster.xml:9785
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
-"on the raster, e.g. ST_Contains(ST_Polygon(raster), geometry) or ST_Contains"
-"(geometry, ST_Polygon(raster))."
+"on the raster, e.g. ST_Contains(ST_Polygon(raster), geometry) or "
+"ST_Contains(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7131
+#: reference_raster.xml:9791
 #, no-c-format
 msgid ""
 "ST_Contains() is the inverse of ST_Within(). So, ST_Contains(rastA, rastB) "
@@ -12265,7 +15765,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7142
+#: reference_raster.xml:9802
 #, no-c-format
 msgid ""
 "-- specified band numbers\n"
@@ -12280,7 +15780,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7144
+#: reference_raster.xml:9804
 #, no-c-format
 msgid ""
 "-- no band numbers specified\n"
@@ -12293,19 +15793,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7148
+#: reference_raster.xml:9808
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7157
+#: reference_raster.xml:9817
 #, no-c-format
 msgid "ST_ContainsProperly"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7158
+#: reference_raster.xml:9818
 #, no-c-format
 msgid ""
 "Return true if rastB intersects the interior of rastA but not the boundary "
@@ -12313,7 +15813,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7164
+#: reference_raster.xml:9824
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_ContainsProperly</function></"
@@ -12328,7 +15828,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7203
+#: reference_raster.xml:9863
 #, no-c-format
 msgid ""
 "Raster rastA contains properly rastB if rastB intersects the interior of "
@@ -12339,13 +15839,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7207
+#: reference_raster.xml:9867
 #, no-c-format
 msgid "Raster rastA does not contain properly itself but does contain itself."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7218
+#: reference_raster.xml:9878
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12354,7 +15854,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7229
+#: reference_raster.xml:9889
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_ContainsProperly(r1.rast, 1, r2.rast, 1) FROM "
@@ -12367,25 +15867,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7233
+#: reference_raster.xml:9893
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Contains\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7242
+#: reference_raster.xml:9902
 #, no-c-format
 msgid "ST_Covers"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7243
+#: reference_raster.xml:9903
 #, no-c-format
 msgid "Return true if no points of raster rastB lie outside raster rastA."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7249
+#: reference_raster.xml:9909
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
@@ -12400,7 +15900,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7288
+#: reference_raster.xml:9948
 #, no-c-format
 msgid ""
 "Raster rastA covers rastB if and only if no points of rastB lie in the "
@@ -12411,16 +15911,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7299
+#: reference_raster.xml:9959
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
-"on the raster, e.g. ST_Covers(ST_Polygon(raster), geometry) or ST_Covers"
-"(geometry, ST_Polygon(raster))."
+"on the raster, e.g. ST_Covers(ST_Polygon(raster), geometry) or "
+"ST_Covers(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7310
+#: reference_raster.xml:9970
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_Covers(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
@@ -12433,25 +15933,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7314
+#: reference_raster.xml:9974
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_CoveredBy\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7323
+#: reference_raster.xml:9983
 #, no-c-format
 msgid "ST_CoveredBy"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7324
+#: reference_raster.xml:9984
 #, no-c-format
 msgid "Return true if no points of raster rastA lie outside raster rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7330
+#: reference_raster.xml:9990
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
@@ -12466,7 +15966,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7369
+#: reference_raster.xml:10029
 #, no-c-format
 msgid ""
 "Raster rastA is covered by rastB if and only if no points of rastA lie in "
@@ -12477,7 +15977,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7380
+#: reference_raster.xml:10040
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12486,7 +15986,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7391
+#: reference_raster.xml:10051
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_CoveredBy(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
@@ -12499,25 +15999,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7395
+#: reference_raster.xml:10055
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Covers\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7404
+#: reference_raster.xml:10064
 #, no-c-format
 msgid "ST_Disjoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7405
+#: reference_raster.xml:10065
 #, no-c-format
 msgid "Return true if raster rastA does not spatially intersect rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7411
+#: reference_raster.xml:10071
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Disjoint</function></funcdef> "
@@ -12532,7 +16032,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7450
+#: reference_raster.xml:10110
 #, no-c-format
 msgid ""
 "Raster rastA and rastB are disjointed if they do not share any space "
@@ -12543,13 +16043,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7455
+#: reference_raster.xml:10115
 #, no-c-format
 msgid "This function does NOT use any indexes."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7461
+#: reference_raster.xml:10121
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12557,7 +16057,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7472
+#: reference_raster.xml:10132
 #, no-c-format
 msgid ""
 "-- rid = 1 has no bands, hence the NOTICE and the NULL value for "
@@ -12573,7 +16073,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7474
+#: reference_raster.xml:10134
 #, no-c-format
 msgid ""
 "-- this time, without specifying band numbers\n"
@@ -12587,19 +16087,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7487
+#: reference_raster.xml:10147
 #, no-c-format
 msgid "ST_Intersects"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7488
+#: reference_raster.xml:10148
 #, no-c-format
 msgid "Return true if raster rastA spatially intersects raster rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7492
+#: reference_raster.xml:10152
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
@@ -12628,7 +16128,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7579
+#: reference_raster.xml:10239
 #, no-c-format
 msgid ""
 "Return true if raster rastA spatially intersects raster rastB. If the band "
@@ -12638,13 +16138,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7589
+#: reference_raster.xml:10249
 #, no-c-format
 msgid "Enhanced: 2.0.0 support raster/raster intersects was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7594
+#: reference_raster.xml:10254
 #, no-c-format
 msgid ""
 "Changed: 2.1.0 The behavior of the ST_Intersects(raster, geometry) variants "
@@ -12652,7 +16152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7603
+#: reference_raster.xml:10263
 #, no-c-format
 msgid ""
 "-- different bands of same raster\n"
@@ -12664,19 +16164,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7608
+#: reference_raster.xml:10268
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Disjoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7617
+#: reference_raster.xml:10277
 #, no-c-format
 msgid "ST_Overlaps"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7618
+#: reference_raster.xml:10278
 #, no-c-format
 msgid ""
 "Return true if raster rastA and rastB intersect but one does not completely "
@@ -12684,7 +16184,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7624
+#: reference_raster.xml:10284
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> "
@@ -12699,7 +16199,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7663
+#: reference_raster.xml:10323
 #, no-c-format
 msgid ""
 "Return true if raster rastA spatially overlaps raster rastB. This means that "
@@ -12710,7 +16210,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7674
+#: reference_raster.xml:10334
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12718,7 +16218,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7685
+#: reference_raster.xml:10345
 #, no-c-format
 msgid ""
 "-- comparing different bands of same raster\n"
@@ -12730,13 +16230,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7697
+#: reference_raster.xml:10357
 #, no-c-format
 msgid "ST_Touches"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7698
+#: reference_raster.xml:10358
 #, no-c-format
 msgid ""
 "Return true if raster rastA and rastB have at least one point in common but "
@@ -12744,7 +16244,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7704
+#: reference_raster.xml:10364
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Touches</function></funcdef> "
@@ -12759,7 +16259,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7743
+#: reference_raster.xml:10403
 #, no-c-format
 msgid ""
 "Return true if raster rastA spatially touches raster rastB. This means that "
@@ -12771,7 +16271,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7754
+#: reference_raster.xml:10414
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12779,7 +16279,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7765
+#: reference_raster.xml:10425
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_Touches(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
@@ -12792,21 +16292,22 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7777
+#: reference_raster.xml:10437
 #, no-c-format
 msgid "ST_SameAlignment"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7779
+#: reference_raster.xml:10439
 #, no-c-format
 msgid ""
-"Returns true if rasters have same skew, scale, spatial ref and false if they "
-"don't with notice detailing issue."
+"Returns true if rasters have same skew, scale, spatial ref, and offset "
+"(pixels can be put on same grid without cutting into pixels) and false if "
+"they don't with notice detailing issue."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7783
+#: reference_raster.xml:10443
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
@@ -12834,7 +16335,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7862
+#: reference_raster.xml:10522
 #, no-c-format
 msgid ""
 "Non-Aggregate version (Variants 1 and 2): Returns true if the two rasters "
@@ -12846,7 +16347,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7866
+#: reference_raster.xml:10526
 #, no-c-format
 msgid ""
 "Aggregate version (Variant 3): From a set of rasters, returns true if all "
@@ -12856,19 +16357,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7871
+#: reference_raster.xml:10531
 #, no-c-format
 msgid "Enhanced: 2.1.0 addition of Aggegrate variant"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:7875
+#: reference_raster.xml:10535
 #, no-c-format
 msgid "Examples: Rasters"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7877
+#: reference_raster.xml:10537
 #, no-c-format
 msgid ""
 "SELECT ST_SameAlignment(\n"
@@ -12882,7 +16383,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7878
+#: reference_raster.xml:10538
 #, no-c-format
 msgid ""
 "SELECT ST_SameAlignment(A.rast,b.rast)\n"
@@ -12899,19 +16400,87 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7882
+#: reference_raster.xml:10542
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_MakeEmptyRaster\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_NotSameAlignmentReason\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7888
+#: reference_raster.xml:10552
+#, no-c-format
+msgid "ST_NotSameAlignmentReason"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10553
+#, no-c-format
+msgid ""
+"<refpurpose>Returns text stating if rasters are aligned and if not aligned, "
+"a reason why.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:10558
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_NotSameAlignmentReason</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rastA</parameter></paramdef> "
+"<paramdef><type>raster </type><parameter>rastB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10568
+#, no-c-format
+msgid ""
+"<para>Returns text stating if rasters are aligned and if not aligned, a "
+"reason why.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10571
+#, no-c-format
+msgid ""
+"If there are several reasons why the rasters are not aligned, only one "
+"reason (the first test to fail) will be returned."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10581
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_SameAlignment(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        ),\n"
+"        ST_NotSameAlignmentReason(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        )\n"
+";\n"
+"\n"
+" st_samealignment |            st_notsamealignmentreason            \n"
+"------------------+-------------------------------------------------\n"
+" f                | The rasters have different scales on the X axis\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10586
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SameAlignment\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10595
 #, no-c-format
 msgid "ST_Within"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7889
+#: reference_raster.xml:10596
 #, no-c-format
 msgid ""
 "Return true if no points of raster rastA lie in the exterior of raster rastB "
@@ -12920,7 +16489,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7895
+#: reference_raster.xml:10602
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Within</function></funcdef> "
@@ -12935,7 +16504,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7934
+#: reference_raster.xml:10641
 #, no-c-format
 msgid ""
 "Raster rastA is within rastB if and only if no points of rastA lie in the "
@@ -12947,16 +16516,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7945
+#: reference_raster.xml:10652
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
-"on the raster, e.g. ST_Within(ST_Polygon(raster), geometry) or ST_Within"
-"(geometry, ST_Polygon(raster))."
+"on the raster, e.g. ST_Within(ST_Polygon(raster), geometry) or "
+"ST_Within(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7951
+#: reference_raster.xml:10658
 #, no-c-format
 msgid ""
 "ST_Within() is the inverse of ST_Contains(). So, ST_Within(rastA, rastB) "
@@ -12964,7 +16533,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7962
+#: reference_raster.xml:10669
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_Within(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
@@ -12977,7 +16546,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7966
+#: reference_raster.xml:10673
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Contains\"/>, <xref linkend=\"RT_ST_DWithin\"/>, "
@@ -12985,13 +16554,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7977
+#: reference_raster.xml:10684
 #, no-c-format
 msgid "ST_DWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7978
+#: reference_raster.xml:10685
 #, no-c-format
 msgid ""
 "Return true if rasters rastA and rastB are within the specified distance of "
@@ -12999,7 +16568,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7984
+#: reference_raster.xml:10691
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
@@ -13016,7 +16585,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8031
+#: reference_raster.xml:10738
 #, no-c-format
 msgid ""
 "Return true if rasters rastA and rastB are within the specified distance of "
@@ -13027,7 +16596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8035 reference_raster.xml:8128
+#: reference_raster.xml:10742 reference_raster.xml:10835
 #, no-c-format
 msgid ""
 "The distance is specified in units defined by the spatial reference system "
@@ -13036,7 +16605,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8046
+#: reference_raster.xml:10753
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -13044,7 +16613,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:8057
+#: reference_raster.xml:10764
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_DWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
@@ -13057,19 +16626,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8061
+#: reference_raster.xml:10768
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_DFullyWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:8070
+#: reference_raster.xml:10777
 #, no-c-format
 msgid "ST_DFullyWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:8071
+#: reference_raster.xml:10778
 #, no-c-format
 msgid ""
 "Return true if rasters rastA and rastB are fully within the specified "
@@ -13077,7 +16646,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:8077
+#: reference_raster.xml:10784
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
@@ -13095,7 +16664,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8124
+#: reference_raster.xml:10831
 #, no-c-format
 msgid ""
 "Return true if rasters rastA and rastB are fully within the specified "
@@ -13106,7 +16675,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8139
+#: reference_raster.xml:10846
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -13114,7 +16683,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:8150
+#: reference_raster.xml:10857
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_DFullyWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
@@ -13127,7 +16696,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8154
+#: reference_raster.xml:10861
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_DWithin\"/>"
 msgstr ""
diff --git a/doc/po/it_IT/reference_sfcgal.xml.po b/doc/po/it_IT/reference_sfcgal.xml.po
index 5ff1c7c..b3fd3aa 100644
--- a/doc/po/it_IT/reference_sfcgal.xml.po
+++ b/doc/po/it_IT/reference_sfcgal.xml.po
@@ -1,196 +1,653 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Tommaso Di Bucchianico, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2013-05-12 08:39+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-09 19:33+0000\n"
+"Last-Translator: Tommaso Di Bucchianico\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/"
+"postgis-1/language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#. Tag: title
-#: reference_sfcgal.xml:4
+#. Tag: para
+#: reference_sfcgal.xml:5
 #, no-c-format
-msgid "Using SFCGAL Advanced 2D/3D functions"
+msgid ""
+"SFCGAL is a C++ wrapper library around CGAL that provides advanced 2D and 3D "
+"functions. For robustness, geometry coordinates have an exact rational "
+"number representation."
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:5
+#: reference_sfcgal.xml:9
 #, no-c-format
-msgid "TODO Introduction part"
+msgid ""
+"Installation instructions of the library can be found on SFCGAL home page "
+"<ulink url=\"http://www.sfcgal.org\">http://www.sfcgal.org</ulink>. To load "
+"the functions execute postgis/sfcgal.sql"
 msgstr ""
 
-#. Tag: para
-#: reference_sfcgal.xml:8
+#. Tag: title
+#: reference_sfcgal.xml:15
 #, no-c-format
-msgid "TODO Install part"
+msgid "SFCGAL Functions"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:14
+#: reference_sfcgal.xml:18
 #, no-c-format
-msgid "ST_Extrude"
+msgid "postgis_sfcgal_version"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:16
+#: reference_sfcgal.xml:20
 #, no-c-format
-msgid "Extrude a surface to a related volume"
+msgid "Returns the version of SFCGAL in use"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_sfcgal.xml:21
+#. Tag: funcdef
+#: reference_sfcgal.xml:26
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Extrude</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> <paramdef><type>float</type> <parameter>x</parameter></paramdef> <paramdef><type>float</type> <parameter>y</parameter></paramdef> <paramdef><type>float</type> <parameter>z</parameter></paramdef>"
+msgid "text <function>postgis_sfcgal_version</function>"
 msgstr ""
 
 #. Tag: title
-#: reference_sfcgal.xml:32 reference_sfcgal.xml:61 reference_sfcgal.xml:90 reference_sfcgal.xml:119 reference_sfcgal.xml:148 reference_sfcgal.xml:177 reference_sfcgal.xml:206
+#: reference_sfcgal.xml:33 reference_sfcgal.xml:65 reference_sfcgal.xml:158
+#: reference_sfcgal.xml:218 reference_sfcgal.xml:247 reference_sfcgal.xml:276
+#: reference_sfcgal.xml:305 reference_sfcgal.xml:335 reference_sfcgal.xml:377
+#: reference_sfcgal.xml:405
 #, no-c-format
 msgid "Description"
+msgstr "Descrizione"
+
+#. Tag: para
+#: reference_sfcgal.xml:35 reference_sfcgal.xml:67 reference_sfcgal.xml:160
+#: reference_sfcgal.xml:249 reference_sfcgal.xml:278 reference_sfcgal.xml:310
+#: reference_sfcgal.xml:337 reference_sfcgal.xml:379 reference_sfcgal.xml:407
+#, fuzzy, no-c-format
+msgid "Availability: 2.1.0"
+msgstr "Disponibilità"
+
+#. Tag: para
+#: reference_sfcgal.xml:36 reference_sfcgal.xml:68 reference_sfcgal.xml:161
+#: reference_sfcgal.xml:221 reference_sfcgal.xml:250 reference_sfcgal.xml:279
+#: reference_sfcgal.xml:311 reference_sfcgal.xml:338 reference_sfcgal.xml:380
+#: reference_sfcgal.xml:408
+#, no-c-format
+msgid "&sfcgal_required;"
+msgstr "&sfcgal_required;"
+
+#. Tag: para
+#: reference_sfcgal.xml:37 reference_sfcgal.xml:69 reference_sfcgal.xml:162
+#: reference_sfcgal.xml:222 reference_sfcgal.xml:251 reference_sfcgal.xml:280
+#: reference_sfcgal.xml:312 reference_sfcgal.xml:339 reference_sfcgal.xml:381
+#: reference_sfcgal.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_sfcgal.xml:38 reference_sfcgal.xml:70 reference_sfcgal.xml:163
+#: reference_sfcgal.xml:223 reference_sfcgal.xml:252 reference_sfcgal.xml:281
+#: reference_sfcgal.xml:340 reference_sfcgal.xml:382 reference_sfcgal.xml:410
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_sfcgal.xml:39 reference_sfcgal.xml:71 reference_sfcgal.xml:164
+#: reference_sfcgal.xml:224 reference_sfcgal.xml:253 reference_sfcgal.xml:282
+#: reference_sfcgal.xml:341 reference_sfcgal.xml:383 reference_sfcgal.xml:411
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: refname
+#: reference_sfcgal.xml:47
+#, no-c-format
+msgid "ST_Extrude"
+msgstr "ST_Extrude"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:49
+#, no-c-format
+msgid "Extrude a surface to a related volume"
+msgstr "Estrude una superficie a volume"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:54
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Extrude</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>z</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Extrude</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>z</parameter></paramdef>"
+
+#. Tag: title
+#: reference_sfcgal.xml:74 reference_sfcgal.xml:167 reference_sfcgal.xml:414
+#, no-c-format
+msgid "Examples"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:34 reference_sfcgal.xml:63 reference_sfcgal.xml:92 reference_sfcgal.xml:121 reference_sfcgal.xml:150 reference_sfcgal.xml:179 reference_sfcgal.xml:208
+#: reference_sfcgal.xml:75
 #, no-c-format
-msgid "Availability"
+msgid ""
+"3D images were generated using the PostGIS <xref linkend=\"ST_AsX3D\"/> and "
+"rendering in HTML using <ulink url=\"http://www.x3dom.org\">X3Dom HTML "
+"Javascript redering library</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:82
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+"  50, 'quad_segs=2'),0,0,30);"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:35 reference_sfcgal.xml:64 reference_sfcgal.xml:93 reference_sfcgal.xml:122 reference_sfcgal.xml:151 reference_sfcgal.xml:180 reference_sfcgal.xml:209
+#: reference_sfcgal.xml:88
 #, no-c-format
-msgid "&sfcgal_required;"
+msgid "Original octagon formed from buffering point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:93
+#, no-c-format
+msgid ""
+"ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2'),0,0,30);"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:36 reference_sfcgal.xml:65 reference_sfcgal.xml:94 reference_sfcgal.xml:123 reference_sfcgal.xml:152 reference_sfcgal.xml:181 reference_sfcgal.xml:210
+#: reference_sfcgal.xml:99
 #, no-c-format
-msgid "&Z_support;"
+msgid "Hexagon extruded 30 units along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:107
+#, no-c-format
+msgid "SELECT ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)')"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:37 reference_sfcgal.xml:66 reference_sfcgal.xml:95 reference_sfcgal.xml:124 reference_sfcgal.xml:153 reference_sfcgal.xml:182 reference_sfcgal.xml:211
+#: reference_sfcgal.xml:113
 #, no-c-format
-msgid "&P_support;"
+msgid "Original linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Extrude(\n"
+" ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)'),0,0,10));"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:38 reference_sfcgal.xml:67 reference_sfcgal.xml:96 reference_sfcgal.xml:125 reference_sfcgal.xml:154 reference_sfcgal.xml:183 reference_sfcgal.xml:212
+#: reference_sfcgal.xml:124
 #, no-c-format
-msgid "&T_support;"
+msgid "LineString Extruded along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:134
+#, no-c-format
+msgid "See Also"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:46
+#: reference_sfcgal.xml:143
 #, no-c-format
 msgid "ST_StraightSkeleton"
-msgstr ""
+msgstr "ST_StraightSkeleton"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:48
+#: reference_sfcgal.xml:145
 #, no-c-format
 msgid "Compute a straight skeleton from a geometry"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:53
+#: reference_sfcgal.xml:150
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:168
+#, no-c-format
+msgid ""
+"SELECT ST_StraightSkeleton(ST_GeomFromText('POLYGON (( 190 190, 10 190, 10 "
+"10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:179 reference_sfcgal.xml:453
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgid "Original polygon"
 msgstr ""
 
+#. Tag: para
+#: reference_sfcgal.xml:188
+#, fuzzy, no-c-format
+msgid "Straight Skeleton of polygon"
+msgstr "ST_StraightSkeleton"
+
 #. Tag: refname
-#: reference_sfcgal.xml:75
+#: reference_sfcgal.xml:203
 #, no-c-format
 msgid "ST_IsPlanar"
-msgstr ""
+msgstr "ST_IsPlanar"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:77
+#: reference_sfcgal.xml:205
 #, no-c-format
 msgid "Check if a surface is or not planar"
-msgstr ""
+msgstr "Verifica se una superficie è planare o meno."
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:82
+#: reference_sfcgal.xml:210
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsPlanar</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_IsPlanar</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_sfcgal.xml:220
 #, no-c-format
-msgid "<funcdef>boolean <function>ST_IsPlanar</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgid ""
+"Availability: 2.2.0: This was documented in 2.1.0 but got accidentally left "
+"out in 2.1 release."
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:104
+#: reference_sfcgal.xml:232
 #, no-c-format
 msgid "ST_Orientation"
-msgstr ""
+msgstr "ST_Orientation"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:106
+#: reference_sfcgal.xml:234
 #, no-c-format
 msgid "Determine surface orientation"
-msgstr ""
+msgstr "Determina l'orientazione di una superficie."
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:111
+#: reference_sfcgal.xml:239
 #, no-c-format
-msgid "<funcdef>integer <function>ST_Orientation</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgid ""
+"<funcdef>integer <function>ST_Orientation</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
+"<funcdef>integer <function>ST_Orientation</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 
 #. Tag: refname
-#: reference_sfcgal.xml:133
+#: reference_sfcgal.xml:261
 #, no-c-format
 msgid "ST_ForceLHR"
-msgstr ""
+msgstr "ST_ForceLHR"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:135
+#: reference_sfcgal.xml:263
 #, no-c-format
 msgid "Force LHR orientation"
-msgstr ""
+msgstr "Forza l'orientazione di tipo LHR"
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:140
+#: reference_sfcgal.xml:268
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_ForceLHR</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgid ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 
 #. Tag: refname
-#: reference_sfcgal.xml:161
+#: reference_sfcgal.xml:289
 #, no-c-format
 msgid "ST_MinkowskiSum"
-msgstr ""
+msgstr "ST_MinkowskiSum"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:163
+#: reference_sfcgal.xml:291
+#, fuzzy, no-c-format
+msgid "Performs Minkowski sum"
+msgstr "Effettua la somma di Minkowski."
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:296
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinkowskiSum</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Minkowski</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_sfcgal.xml:307
 #, no-c-format
-msgid "Perform Minkowski sum"
+msgid ""
+"This function performs a 2D minkowski sum of a point, line or polygon with a "
+"polygon."
 msgstr ""
 
+#. Tag: para
+#: reference_sfcgal.xml:308
+#, no-c-format
+msgid ""
+"The first parameter can be any 2D geometry (point, linestring, polygon). If "
+"a 3D geometry is passed, it will be converted to 2D by forcing Z to 0, "
+"leading to possible cases of invalidity. The second parameter must be a 2D "
+"polygon."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:319
+#, no-c-format
+msgid "ST_3DIntersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:321
+#, fuzzy, no-c-format
+msgid "Perform 3D intersection"
+msgstr "Effettua tassellazione di una superficie"
+
 #. Tag: funcprototype
-#: reference_sfcgal.xml:168
+#: reference_sfcgal.xml:326
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DIntersection</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Minkowski</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+
+#. Tag: title
+#: reference_sfcgal.xml:345
+#, no-c-format
+msgid "Examples: 3D linestring and Polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:346
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(linestring, polygon)) As wkt\n"
+"FROM  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"              wkt\n"
+"--------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8)"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:348
+#, no-c-format
+msgid "Cube (closed Polyhedral Surface) and Polygon Z"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:349
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(\n"
+"                ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'), \n"
+"        'POLYGON Z ((0 0 0, 0 0 0.5, 0 0.5 0.5, 0 0.5 0, 0 0 0))'::geometry))"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:350
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),((0 0.5 0,0 0 0,0 0.5 0.5,0 0.5 0)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:352
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Minkowski</function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgid ""
+"Intersection of 2 solids that result in volumetric intersection is also a "
+"solid (ST_Dimension returns 3)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:353
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection( ST_Extrude(ST_Buffer('POINT(10 20)'::"
+"geometry,10,1),0,0,30),\n"
+" ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),2,0,10) ));"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:354
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE Z (((13.3333333333333 13.3333333333333 10,20 20 0,20 20 "
+"10,13.3333333333333 13.3333333333333 10)),\n"
+"         ((20 20 10,16.6666666666667 23.3333333333333 10,13.3333333333333 "
+"13.3333333333333 10,20 20 10)),\n"
+"         ((20 20 0,16.6666666666667 23.3333333333333 10,20 20 10,20 20 0)),\n"
+"         ((13.3333333333333 13.3333333333333 10,10 10 0,20 20 "
+"0,13.3333333333333 13.3333333333333 10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,12 28 10,13.3333333333333 "
+"13.3333333333333 10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((20 20 0,9.99999999999995 30 0,16.6666666666667 23.3333333333333 "
+"10,20 20 0)),\n"
+"         ((10 10 0,9.99999999999995 30 0,20 20 0,10 10 0)),"
+"((13.3333333333333 13.3333333333333 10,12 12 10,10 10 0,13.3333333333333 "
+"13.3333333333333 10)),\n"
+"         ((12 28 10,12 12 10,13.3333333333333 13.3333333333333 10,12 28 "
+"10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,9.99999999999995 30 0,12 28 "
+"10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((10 10 0,0 20 0,9.99999999999995 30 0,10 10 0)),\n"
+"         ((12 12 10,11 11 10,10 10 0,12 12 10)),((12 28 10,11 11 10,12 12 "
+"10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,11 29 10,12 28 10,9.99999999999995 30 0)),"
+"((0 20 0,2 20 10,9.99999999999995 30 0,0 20 0)),\n"
+"         ((10 10 0,2 20 10,0 20 0,10 10 0)),((11 11 10,2 20 10,10 10 0,11 11 "
+"10)),((12 28 10,11 29 10,11 11 10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,2 20 10,11 29 10,9.99999999999995 30 0)),"
+"((11 11 10,11 29 10,2 20 10,11 11 10)))"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:191
+#: reference_sfcgal.xml:362
 #, no-c-format
-msgid "ST_Tesselate"
+msgid "ST_3DArea"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:193
+#: reference_sfcgal.xml:364
+#, no-c-format
+msgid "Computes area of 3D geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:369
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>float<function>ST_3DArea</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: refname
+#: reference_sfcgal.xml:390
+#, no-c-format
+msgid "ST_Tesselate"
+msgstr "ST_Tesselate"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:392
 #, no-c-format
-msgid "Perform surface Tesselation"
+msgid ""
+"Perform surface Tesselation of a polygon or polyhedralsurface and returns as "
+"a TIN or collection of TINS"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:198
+#: reference_sfcgal.xml:397
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Tesselate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Tesselate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_sfcgal.xml:406
+#, no-c-format
+msgid ""
+"Takes as input a surface such a MULTI(POLYGON) or POLYHEDRALSURFACE and "
+"returns a TIN representation via the process of tesselation using triangles."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:420
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )');"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:426
+#, no-c-format
+msgid "Original Cube"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:431
+#, no-c-format
+msgid ""
+"SELECT ST_Tesselate(ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:432
+#, no-c-format
+msgid "ST_AsText output:"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:433
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 1,0 1 1,0 0 0)),((0 1 0,0 0 0,0 1 1,0 1 0)),\n"
+"        ((0 0 0,0 1 0,1 1 0,0 0 0)),\n"
+"        ((1 0 0,0 0 0,1 1 0,1 0 0)),((0 0 1,1 0 0,1 0 1,0 0 1)),\n"
+"        ((0 0 1,0 0 0,1 0 0,0 0 1)),\n"
+"        ((1 1 0,1 1 1,1 0 1,1 1 0)),((1 0 0,1 1 0,1 0 1,1 0 0)),\n"
+"        ((0 1 0,0 1 1,1 1 1,0 1 0)),((1 1 0,0 1 0,1 1 1,1 1 0)),\n"
+"        ((0 1 1,1 0 1,1 1 1,0 1 1)),((0 1 1,0 0 1,1 0 1,0 1 1)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:439
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Tesselate</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgid "Tesselated Cube with triangles colored"
 msgstr ""
 
+#. Tag: programlisting
+#: reference_sfcgal.xml:447
+#, no-c-format
+msgid ""
+"SELECT 'POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, "
+"10 190 ))'::geometry;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:458
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_Tesselate('POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 "
+"160, 120 190, 10 190 ))'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:460
+#, no-c-format
+msgid "ST_AsText output"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:461
+#, no-c-format
+msgid ""
+"TIN(((80 130,50 160,80 70,80 130)),((50 160,10 190,10 70,50 160)),\n"
+"         ((80 70,50 160,10 70,80 70)),((120 160,120 190,50 160,120 160)),\n"
+" ((120 190,10 190,50 160,120 190)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:467
+#, fuzzy, no-c-format
+msgid "Tesselated Polygon"
+msgstr "ST_Tesselate"
+
+#~ msgid "Using SFCGAL Advanced 2D/3D functions"
+#~ msgstr "Funzioni SFCGAL 2D/3D avanzate"
+
+#~ msgid "TODO Introduction part"
+#~ msgstr "TODO Introduction part"
+
+#~ msgid "TODO Install part"
+#~ msgstr "TODO Install part"
diff --git a/doc/po/it_IT/reference_type.xml.po b/doc/po/it_IT/reference_type.xml.po
index 67ef650..37ee547 100644
--- a/doc/po/it_IT/reference_type.xml.po
+++ b/doc/po/it_IT/reference_type.xml.po
@@ -1,19 +1,21 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Tommaso Di Bucchianico, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2012-09-14 21:04+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"PO-Revision-Date: 2013-12-01 05:50+0000\n"
+"Last-Translator: Tommaso Di Bucchianico\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/"
+"postgis-1/language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: para
 #: reference_type.xml:5
@@ -23,6 +25,10 @@ msgid ""
 "describe the casting behavior of these which is very important especially "
 "when designing your own functions."
 msgstr ""
+"Questa sezione illustra i tipi di dati di PostgreSQL che vengono installati "
+"da Postgis. Vengono illustrati anche i metodi per eseguire il cast tra "
+"diversi tipi, cosa particolarmente importante per la realizzazione di "
+"funzioni proprie."
 
 #. Tag: para
 #: reference_type.xml:8
@@ -35,6 +41,13 @@ msgid ""
 "or myfoo::otherfootype if you are feeding it to a function that only works "
 "with otherfootype and there is an automatic cast in place for it."
 msgstr ""
+"Effettuare il cast significa forzare un tipo in un altro tipo di dato. "
+"PostgreSQL è tra i pochi database che offrono la possibilità di definire "
+"comportamento di casting per tipi personalizzati e le funzioni usate per il "
+"casting. Un cast può essere definito come automatico: non è necessario "
+"utilizzare la funzione CAST(myfoo As otherfootype) oppure myfoo::"
+"otherfootype se si esegue una funzione che supporta unicamente il tipo "
+"otherfootype. In questo caso il cast avverrà automaticamente."
 
 #. Tag: para
 #: reference_type.xml:13
@@ -44,9 +57,17 @@ msgid ""
 "overloaded function say one that takes a box2d and one that takes a box3d "
 "but no geometry. What happens is that both functions are equally good to use "
 "with geometry since geometry has an autocast for both -- so you end up with "
-"an ambiguous function error. To force PostgreSQL to choose, you do a CAST"
-"(mygeom As box3d) or mygeom::box3d."
-msgstr ""
+"an ambiguous function error. To force PostgreSQL to choose, you do a "
+"CAST(mygeom As box3d) or mygeom::box3d."
+msgstr ""
+"Un rischio dell'usare un cast automatico può esserci quando si ha una "
+"funzione sovraccaricata, per esempio una funzione che accetta come argomento "
+"un box2d e un'altra che accetta un box3d ma nessuna che accetti un geometry. "
+"In questo caso le due funzioni possono essere utilizzate con un tipo "
+"geometry, perché geometry supporta il cast automatico verso box2d e box3d, e "
+"si avrà quindi un errore che indica che la funzione è ambigua. Per forzare "
+"PostgreSQL ad effettuare la scelta giusta bisogna effettuare un cast "
+"specifico con CAST(mygeom AS box3d) oppure mygeom::box3d"
 
 #. Tag: para
 #: reference_type.xml:17
@@ -56,18 +77,22 @@ msgid ""
 "to text (presumably because of the magical unknown type), so no defined "
 "CASTS for that need to be present for you to CAST an object to text."
 msgstr ""
+"<emphasis>A partire dalla versione PostgreSQL 8.3</emphasis> - È possibile "
+"effettuare il CAST di ogni tipo a \"text\" (presumibilmente per merito del "
+"magico tipo \"unknown\"), quindi non è necessario definire esplicitamente il "
+"CAST di un oggetto a \"text\"."
 
 #. Tag: title
 #: reference_type.xml:20
 #, no-c-format
 msgid "PostgreSQL PostGIS Geometry/Geography/Box Types"
-msgstr ""
+msgstr "PostgreSQL PostGIS tipi Geometry/Geography/Box "
 
 #. Tag: refname
 #: reference_type.xml:24
 #, no-c-format
 msgid "<refname>box2d</refname>"
-msgstr ""
+msgstr "<refname>box2d</refname>"
 
 #. Tag: refpurpose
 #: reference_type.xml:25
@@ -76,8 +101,8 @@ msgid ""
 "A box composed of x min, ymin, xmax, ymax. Often used to return the 2d "
 "enclosing box of a geometry."
 msgstr ""
-"Un rettangolo composto da xmin, ymin, xmax, ymax. "
-"Spesso usato per restituire il rettangolo che racchiude una geometria."
+"Un rettangolo  composto dalle coordinate xmin,ymin,xmax,ymax. Spesso è usato "
+"per ritornare l'estensione 2D della geometria."
 
 #. Tag: title
 #: reference_type.xml:29 reference_type.xml:40 reference_type.xml:79
@@ -94,12 +119,15 @@ msgid ""
 "geometry or set of geometries. ST_Extent in earlier versions prior to "
 "PostGIS 1.4 would return a box2d."
 msgstr ""
+"box2d è un tipo di dato spaziale usato per rappresentare in rettangolo "
+"contenente una geometria o un insieme di geometrie. In versioni precedenti "
+"Postgis 1.4, la funzione ST_Extent ritorna un box2d."
 
 #. Tag: refname
 #: reference_type.xml:35
 #, no-c-format
 msgid "<refname>box3d</refname>"
-msgstr ""
+msgstr "<refname>box3d</refname>"
 
 #. Tag: refpurpose
 #: reference_type.xml:36
@@ -108,6 +136,9 @@ msgid ""
 "A box composed of x min, ymin, zmin, xmax, ymax, zmax. Often used to return "
 "the 3d extent of a geometry or collection of geometries."
 msgstr ""
+"Un parallelepipedo composto dalle coordinate xmin, ymin, zmin, xmax, ymax, "
+"zmax. Spesso usato per ritornare l'estensione 3D di una geometria o di una "
+"collezione di geometrie."
 
 #. Tag: para
 #: reference_type.xml:41
@@ -116,12 +147,15 @@ msgid ""
 "box3d is a postgis spatial data type used to represent the enclosing box of "
 "a geometry or set of geometries. ST_3DExtent returns a box3d object."
 msgstr ""
+"box3d è un tipo spaziale di Postgis usato per rappresentare il "
+"parallelepipedo contente una geometria o un insieme di geometrie. La "
+"funzione ST_3DExtent ritorna un oggetto box3d."
 
 #. Tag: title
 #: reference_type.xml:45 reference_type.xml:84 reference_type.xml:160
 #, no-c-format
 msgid "Casting Behavior"
-msgstr ""
+msgstr "Comportamento in caso di CAST"
 
 #. Tag: para
 #: reference_type.xml:46 reference_type.xml:85 reference_type.xml:161
@@ -130,24 +164,26 @@ msgid ""
 "This section lists the automatic as well as explicit casts allowed for this "
 "data type"
 msgstr ""
+"Questa sezione illustra le modalità di CAST - automatici e espliciti -  "
+"permessi per questo tipo di dato"
 
 #. Tag: entry
 #: reference_type.xml:51 reference_type.xml:90 reference_type.xml:166
 #, no-c-format
 msgid "Cast To"
-msgstr ""
+msgstr "Cast verso"
 
 #. Tag: entry
 #: reference_type.xml:52 reference_type.xml:91 reference_type.xml:167
 #, no-c-format
 msgid "Behavior"
-msgstr ""
+msgstr "Comportamento"
 
 #. Tag: entry
 #: reference_type.xml:55 reference_type.xml:94
 #, no-c-format
 msgid "<entry>box</entry>"
-msgstr ""
+msgstr "<entry>box</entry>"
 
 #. Tag: entry
 #: reference_type.xml:56 reference_type.xml:60 reference_type.xml:64
@@ -155,31 +191,31 @@ msgstr ""
 #: reference_type.xml:107 reference_type.xml:111 reference_type.xml:115
 #, no-c-format
 msgid "automatic"
-msgstr ""
+msgstr "automatico"
 
 #. Tag: entry
 #: reference_type.xml:59 reference_type.xml:98
 #, no-c-format
 msgid "<entry>box2d</entry>"
-msgstr ""
+msgstr "<entry>box2d</entry>"
 
 #. Tag: entry
 #: reference_type.xml:63 reference_type.xml:170
 #, no-c-format
 msgid "<entry>geometry</entry>"
-msgstr ""
+msgstr "<entry>geometry</entry>"
 
 #. Tag: refname
 #: reference_type.xml:74
 #, no-c-format
 msgid "<refname>geometry</refname>"
-msgstr ""
+msgstr "<entry>geometry</entry>"
 
 #. Tag: refpurpose
 #: reference_type.xml:75
 #, no-c-format
 msgid "Planar spatial data type."
-msgstr ""
+msgstr "Tipi di dati spaziali piani."
 
 #. Tag: para
 #: reference_type.xml:80
@@ -188,42 +224,44 @@ msgid ""
 "geometry is a fundamental postgis spatial data type used to represent a "
 "feature in the Euclidean coordinate system."
 msgstr ""
+"Il tipo di dato \"geometry\" è un fondamentale tipo spaziale di Postgis "
+"usato per rappresentare una entità in un sistema di coordinate euclideo. "
 
 #. Tag: entry
 #: reference_type.xml:102
 #, no-c-format
 msgid "<entry>box3d</entry>"
-msgstr ""
+msgstr "<entry>box3d</entry>"
 
 #. Tag: entry
 #: reference_type.xml:106
 #, no-c-format
 msgid "bytea"
-msgstr ""
+msgstr "bytea"
 
 #. Tag: entry
 #: reference_type.xml:110
 #, no-c-format
 msgid "<entry>geography</entry>"
-msgstr ""
+msgstr "<entry>geography</entry>"
 
 #. Tag: entry
 #: reference_type.xml:114
 #, no-c-format
 msgid "text"
-msgstr ""
+msgstr "text"
 
 #. Tag: title
 #: reference_type.xml:123 reference_type.xml:143 reference_type.xml:179
 #, no-c-format
 msgid "See Also"
-msgstr ""
+msgstr "Vedi anche"
 
 #. Tag: refname
 #: reference_type.xml:130
 #, no-c-format
 msgid "geometry_dump"
-msgstr ""
+msgstr "geometry_dump"
 
 #. Tag: refpurpose
 #: reference_type.xml:131
@@ -233,6 +271,9 @@ msgid ""
 "path[] (a 1-d array holding the position of the geometry within the dumped "
 "object.)"
 msgstr ""
+"Un tipo di dato spaziale composto da due campi: geom (contenente un oggetto "
+"geometry) e path[] (un array  unidimensionale 1-d contenente la posizione "
+"della geometria all'interno della collezione)."
 
 #. Tag: para
 #: reference_type.xml:137
@@ -245,18 +286,22 @@ msgid ""
 "by the ST_Dump* family of functions as an output type to explode a more "
 "complex geometry into its constituent parts and location of parts."
 msgstr ""
+"geometry_dump è un tipo composto formato da un oggetto geometry, associato "
+"al campo .geom, e path[] un array unidimensionale di interi (l'array inizia "
+"con 1. Per esempio path[1] ritorna il primo elemento) che definisce il "
+"percorso di ogni geometria all'interno della collezione. "
 
 #. Tag: refname
 #: reference_type.xml:150
 #, no-c-format
 msgid "<refname>geography</refname>"
-msgstr ""
+msgstr "<refname>geography</refname>"
 
 #. Tag: refpurpose
 #: reference_type.xml:151
 #, no-c-format
 msgid "Ellipsoidal spatial data type."
-msgstr ""
+msgstr "Tipi spaziali ellissoidi."
 
 #. Tag: para
 #: reference_type.xml:156
@@ -265,15 +310,17 @@ msgid ""
 "geography is a spatial data type used to represent a feature in the round-"
 "earth coordinate system."
 msgstr ""
+"geography è un tipo spaziale usato per rappresentare un'entità in un sistema "
+"di coordinate sferico valido per l'intero pianeta."
 
 #. Tag: entry
 #: reference_type.xml:171
 #, no-c-format
 msgid "explicit"
-msgstr ""
+msgstr "Esplicito"
 
 #. Tag: para
 #: reference_type.xml:180
 #, no-c-format
 msgid ", <xref linkend=\"PostGIS_Geography\"/>"
-msgstr ""
+msgstr ", <xref linkend=\"PostGIS_Geography\"/>"
diff --git a/doc/po/it_IT/release_notes.xml.po b/doc/po/it_IT/release_notes.xml.po
index ec52a79..db67e25 100644
--- a/doc/po/it_IT/release_notes.xml.po
+++ b/doc/po/it_IT/release_notes.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -30,159 +30,2305 @@ msgstr ""
 #. Tag: title
 #: release_notes.xml:6
 #, no-c-format
-msgid "Release 2.0.1"
+msgid "Release 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:7
+#, no-c-format
+msgid "Release date: YYYY/MM/DD"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:11
+#, no-c-format
+msgid "Release 2.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:12
+#, no-c-format
+msgid "Release date: 2014-09-10"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:13
+#, no-c-format
+msgid "This is a bug fix and performance improvement release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:15 release_notes.xml:124 release_notes.xml:152
+#: release_notes.xml:271 release_notes.xml:449 release_notes.xml:477
+#: release_notes.xml:536 release_notes.xml:598 release_notes.xml:688
+#: release_notes.xml:889 release_notes.xml:944
+#, no-c-format
+msgid "Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:16
+#, no-c-format
+msgid "#2745, Speedup ST_Simplify calls against points"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:17
+#, no-c-format
+msgid "#2747, Support for GDAL 2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:18
+#, no-c-format
+msgid "#2749, Make rtpostgis_upgrade_20_21.sql ACID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:19
+#, no-c-format
+msgid "#2811, Do not specify index names when loading shapefiles/rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:20
+#, no-c-format
+msgid ""
+"#2829, Shortcut ST_Clip(raster) if geometry fully contains the raster and no "
+"NODATA specified"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:22
+#, no-c-format
+msgid ""
+"#2895, Raise cost of ST_ConvexHull(raster) to 300 for better query plans"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:26 release_notes.xml:87 release_notes.xml:98
+#: release_notes.xml:139 release_notes.xml:395 release_notes.xml:421
+#: release_notes.xml:463 release_notes.xml:487 release_notes.xml:550
+#: release_notes.xml:705 release_notes.xml:719 release_notes.xml:757
+#: release_notes.xml:795 release_notes.xml:826
+#, no-c-format
+msgid "Bug Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:27
+#, no-c-format
+msgid "#2605, armel: _ST_Covers() returns true for point in hole"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:28
+#, no-c-format
+msgid ""
+"#2911, Fix output scale on ST_Rescale/ST_Resample/ST_Resize of rasters with "
+"scale 1/-1 and offset 0/0."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:30
+#, no-c-format
+msgid "Fix crash in ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:31
+#, no-c-format
+msgid ""
+"#2704, ST_GeomFromGML() does not work properly with array of gml:pos (Even "
+"Roualt)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:33
+#, no-c-format
+msgid ""
+"#2708, updategeometrysrid doesn't update srid check when schema not "
+"specified. Patch from Marc Jansen"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:35
+#, no-c-format
+msgid "#2720, lwpoly_add_ring should update maxrings after realloc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:36
+#, no-c-format
+msgid ""
+"#2759, Fix postgis_restore.pl handling of multiline object comments "
+"embedding sql comments"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:38
+#, no-c-format
+msgid ""
+"#2774, fix undefined behavior in ptarray_calculate_gbox_geodetic - Fix "
+"potential memory fault in ST_MakeValid"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:40
+#, no-c-format
+msgid "#2784, Fix handling of bogus argument to --with-sfcgal"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:41
+#, no-c-format
+msgid "#2772, Premature memory free in RASTER_getBandPath (ST_BandPath)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:42
+#, no-c-format
+msgid "#2755, Fix regressions tests against all versions of SFCGAL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:43
+#, no-c-format
+msgid "#2775, lwline_from_lwmpoint leaks memory"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:44
+#, no-c-format
+msgid "#2802, ST_MapAlgebra checks for valid callback function return value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:45
+#, no-c-format
+msgid "#2803, ST_MapAlgebra handles no userarg and STRICT callback function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:46
+#, no-c-format
+msgid "#2834, ST_Estimated_Extent and mixedCase table names (regression bug)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:47
+#, no-c-format
+msgid "#2845, Bad geometry created from ST_AddPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:48
+#, no-c-format
+msgid ""
+"#2870, Binary insert into geography column results geometry being inserted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:49
+#, no-c-format
+msgid "#2872, make install builds documentation (Greg Troxell)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:50
+#, no-c-format
+msgid "#2819, find isfinite or replacement on Centos5 / Solaris"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:51
+#, no-c-format
+msgid "#2899, geocode limit 1 not returning best answer (tiger geocoder)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:52
+#, no-c-format
+msgid "#2903, Unable to compile on FreeBSD"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:53
+#, no-c-format
+msgid ""
+"#2927 reverse_geocode not filling in direction prefix (tiger geocoder) get "
+"rid of deprecated ST_Line_Locate_Point called"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:59
+#, no-c-format
+msgid "Release 2.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:60
+#, no-c-format
+msgid "Release date: 2014/05/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:61
+#, no-c-format
+msgid "This is a bug fix and security release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:63
+#, no-c-format
+msgid "Important changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:64
+#, no-c-format
+msgid ""
+"Starting with this version offline raster access and use of GDAL drivers are "
+"disabled by default."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:69
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling specific GDAL "
+"drivers: POSTGIS_GDAL_ENABLED_DRIVERS. By default, all GDAL drivers are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:75
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling out-db raster "
+"bands: POSTGIS_ENABLE_OUTDB_RASTERS. By default, out-db raster bands are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:81
+#, no-c-format
+msgid ""
+"The environment variables must be set for the PostgreSQL process, and "
+"determines the behavior of the whole cluster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:88
+#, no-c-format
+msgid "#2697, invalid GeoJSON Polygon input crashes server process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:89
+#, no-c-format
+msgid "#2700, Fix dumping of higher-dimension datasets with null rows"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:90
+#, no-c-format
+msgid "#2706, ST_DumpPoints of EMPTY geometries crashes server"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:94
+#, no-c-format
+msgid "Release 2.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:95 release_notes.xml:392
+#, no-c-format
+msgid "Release date: 2014/03/31"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:96
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:99
+#, no-c-format
+msgid "#2666, Error out at configure time if no SQL preprocessor can be found"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:100
+#, no-c-format
+msgid "#2534, st_distance returning incorrect results for large geographies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:101
+#, no-c-format
+msgid "#2539, Check for json-c/json.h presence/usability before json/json.h"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:102
+#, no-c-format
+msgid "#2543, invalid join selectivity error from simple query"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:103
+#, no-c-format
+msgid "#2546, GeoJSON with string coordinates parses incorrectly"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:104
+#, no-c-format
+msgid "#2547, Fix ST_Simplify(TopoGeometry) for hierarchical topogeoms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:105 release_notes.xml:402
+#, no-c-format
+msgid "#2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:107 release_notes.xml:403
+#, no-c-format
+msgid "#2555, Fix parsing issue of range arguments of ST_Reclass"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:108
+#, no-c-format
+msgid "#2556, geography ST_Intersects results depending on insert order"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:109
+#, no-c-format
+msgid "#2580, Do not allow installing postgis twice in the same database"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:110 release_notes.xml:404
+#, no-c-format
+msgid "#2589, Remove use of unnecessary void pointers"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:111
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in one process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:112 release_notes.xml:406
+#, no-c-format
+msgid "#2610, Ensure face splitting algorithm uses the edge index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:113
+#, no-c-format
+msgid ""
+"#2615, EstimatedExtent (and hence, underlying stats) gathering wrong bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:114
+#, no-c-format
+msgid "#2619, Empty rings array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:115
+#, no-c-format
+msgid "#2634, regression in sphere distance code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:116 release_notes.xml:408
+#, no-c-format
+msgid "#2638, Geography distance on M geometries sometimes wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:117
+#, no-c-format
+msgid ""
+"#2648, #2653, Fix topology functions when \"topology\" is not in search_path"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:118
+#, no-c-format
+msgid "#2654, Drop deprecated calls from topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:119
+#, no-c-format
+msgid ""
+"#2655, Let users without topology privileges call postgis_full_version()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:120
+#, no-c-format
+msgid "#2674, Fix missing operator = and hash_raster_ops opclass on raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:121
+#, no-c-format
+msgid ""
+"#2675, #2534, #2636, #2634, #2638, Geography distance issues with tree "
+"optimization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:125
+#, no-c-format
+msgid "#2494, avoid memcopy in GiST index (hayamiz)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:126
+#, no-c-format
+msgid ""
+"#2560, soft upgrade: avoid drop/recreate of aggregates that hadn't changed"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:131
+#, no-c-format
+msgid "Release 2.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:132
+#, no-c-format
+msgid "Release date: 2013/11/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:133
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.0 release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:135 release_notes.xml:411
+#, no-c-format
+msgid "Important Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:136
+#, no-c-format
+msgid ""
+"#2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:140
+#, no-c-format
+msgid "#2396, Make regression tests more endian-agnostic"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:141
+#, no-c-format
+msgid "#2434, Fix ST_Intersection(geog,geog) regression in rare cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:142
+#, no-c-format
+msgid ""
+"#2454, Fix behavior of ST_PixelAsXXX functions regarding "
+"exclude_nodata_value parameter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:143
+#, no-c-format
+msgid "#2489, Fix upgrades from 2.0 leaving stale function signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:144
+#, no-c-format
+msgid "#2525, Fix handling of SRID in nested collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:145
+#, no-c-format
+msgid "#2449, Fix potential infinite loop in index building"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:146
+#, no-c-format
+msgid "#2493, Fix behavior of ST_DumpValues when passed an empty raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:147 release_notes.xml:397
+#, no-c-format
+msgid "#2502, Fix postgis_topology_scripts_installed() install schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:148 release_notes.xml:398
+#, no-c-format
+msgid "#2504, Fix segfault on bogus pgsql2shp call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:149
+#, no-c-format
+msgid ""
+"#2512, Support for foreign tables and materialized views in raster_columns "
+"and raster_overviews"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:153
+#, no-c-format
+msgid "#2478, support for tiger 2013"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:154
+#, no-c-format
+msgid "#2463, support for exact length calculations on arc geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:160
+#, no-c-format
+msgid "Release 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:161
+#, no-c-format
+msgid "Release date: 2013/08/17"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:162
+#, no-c-format
+msgid ""
+"This is a minor release addressing both bug fixes and performance and "
+"functionality enhancements addressing issues since 2.0.3 release. If you are "
+"upgrading from 2.0+, only a soft upgrade is required. If you are upgrading "
+"from 1.5 or earlier, a hard upgrade is required."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:165 release_notes.xml:634
+#, no-c-format
+msgid "Important / Breaking Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:166
+#, no-c-format
+msgid ""
+"#1653, Removed srid parameter from ST_Resample(raster) and variants with "
+"reference raster no longer apply reference raster's SRID."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:168
+#, no-c-format
+msgid ""
+"#1962 ST_Segmentize - As a result of the introduction of geography support, "
+"The construct: <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</"
+"code> will result in ambiguous function error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:172
+#, no-c-format
+msgid "#2026, ST_Union(raster) now unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:173
+#, no-c-format
+msgid "#2089, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:174
+#, no-c-format
+msgid ""
+"#2150, regular_blocking is no longer a constraint. column of same name in "
+"raster_columns now checks for existance of spatially_unique and "
+"coverage_tile constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:177
+#, no-c-format
+msgid ""
+"ST_Intersects(raster, geometry) behaves in the same manner as "
+"ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:179
+#, no-c-format
+msgid ""
+"point variant of ST_SetValue(raster) previously did not check SRID of input "
+"geometry and raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:181
+#, no-c-format
+msgid ""
+"ST_Hillshade parameters azimuth and altitude are now in degrees instead of "
+"radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:183
+#, no-c-format
+msgid ""
+"ST_Slope and ST_Aspect return pixel values in degrees instead of radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:184
+#, no-c-format
+msgid ""
+"#2104, ST_World2RasterCoord, ST_World2RasterCoordX and ST_World2RasterCoordY "
+"renamed to ST_WorldToRasterCoord, ST_WorldToRasterCoordX and "
+"ST_WorldToRasterCoordY. ST_Raster2WorldCoord, ST_Raster2WorldCoordX and "
+"ST_Raster2WorldCoordY renamed to ST_RasterToWorldCoord, "
+"ST_RasterToWorldCoordX and ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:190
+#, no-c-format
+msgid "ST_Estimated_Extent renamed to ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:191
+#, no-c-format
+msgid "ST_Line_Interpolate_Point renamed to ST_LineInterpolatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:192
+#, no-c-format
+msgid "ST_Line_Substring renamed to ST_LineSubstring"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:193
+#, no-c-format
+msgid "ST_Line_Locate_Point renamed to ST_LineLocatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:194
+#, no-c-format
+msgid "ST_Force_XXX renamed to ST_ForceXXX"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:195
+#, no-c-format
+msgid ""
+"ST_MapAlgebraFctNgb and 1 and 2 raster variants of ST_MapAlgebraFct. Use "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:197
+#, no-c-format
+msgid ""
+"1 and 2 raster variants of ST_MapAlgebraExpr. Use expression variants of "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:202 release_notes.xml:661 release_notes.xml:861
+#: release_notes.xml:925 release_notes.xml:1222
+#, no-c-format
+msgid "New Features"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:203
+#, no-c-format
+msgid ""
+"- Refer to http://postgis.net/docs/manual-2.1/"
+"PostGIS_Special_Functions_Index.html#NewFunctions_2_1 for complete list of "
+"new functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:205
+#, no-c-format
+msgid ""
+"#310, ST_DumpPoints converted to a C function (Nathan Wagner) and much faster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:206
+#, no-c-format
+msgid "#739, UpdateRasterSRID()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:207
+#, no-c-format
+msgid ""
+"#945, improved join selectivity, N-D selectivity calculations, user "
+"accessible selectivity and stats reader functions for testing (Paul Ramsey / "
+"OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:210
+#, no-c-format
+msgid "toTopoGeom with TopoGeometry sink (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:211
+#, no-c-format
+msgid "clearTopoGeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:212
+#, no-c-format
+msgid "ST_Segmentize(geography) (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:213
+#, no-c-format
+msgid "ST_DelaunayTriangles (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:214
+#, no-c-format
+msgid "ST_NearestValue, ST_Neighborhood (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:215
+#, no-c-format
+msgid "ST_PixelAsPoint, ST_PixelAsPoints (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:216
+#, no-c-format
+msgid "ST_PixelAsCentroid, ST_PixelAsCentroids (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:217
+#, no-c-format
+msgid "ST_Raster2WorldCoord, ST_World2RasterCoord (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:218
+#, no-c-format
+msgid ""
+"Additional raster/raster spatial relationship functions (ST_Contains, "
+"ST_ContainsProperly, ST_Covers, ST_CoveredBy, ST_Disjoint, ST_Overlaps, "
+"ST_Touches, ST_Within, ST_DWithin, ST_DFullyWithin) (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:222
+#, no-c-format
+msgid ""
+"Added array variants of ST_SetValues() to set many pixel values of a band in "
+"one call (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:224
+#, no-c-format
+msgid "#1293, ST_Resize(raster) to resize rasters based upon width/height"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:225
+#, no-c-format
+msgid "#1627, package tiger_geocoder as a PostgreSQL extension"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:226
+#, no-c-format
+msgid ""
+"#1643, #2076, Upgrade tiger geocoder to support loading tiger 2011 and 2012 "
+"(Regina Obe / Paragon Corporation) Funded by Hunter Systems Group"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:228
+#, no-c-format
+msgid ""
+"GEOMETRYCOLLECTION support for ST_MakeValid (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:229
+#, no-c-format
+msgid "#1709, ST_NotSameAlignmentReason(raster, raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:230
+#, no-c-format
+msgid "#1818, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:231
+#, no-c-format
+msgid "#1856, reverse geocoder rating setting for prefer numbered highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:232
+#, no-c-format
+msgid "ST_PixelOfValue (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:233
+#, no-c-format
+msgid "Casts to/from PostgreSQL geotypes (point/path/polygon)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:234
+#, no-c-format
+msgid ""
+"Added geomval array variant of ST_SetValues() to set many pixel values of a "
+"band using a set of geometries and corresponding values in one call (Bborie "
+"Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:237
+#, no-c-format
+msgid ""
+"ST_Tile(raster) to break up a raster into tiles (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:238
+#, no-c-format
+msgid "#1895, new r-tree node splitting algorithm (Alex Korotkov)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:239
+#, no-c-format
+msgid "#2011, ST_DumpValues to output raster as array (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:240
+#, no-c-format
+msgid ""
+"#2018, ST_Distance support for CircularString, CurvePolygon, MultiCurve, "
+"MultiSurface, CompoundCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:242
+#, no-c-format
+msgid "#2030, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:243
+#, no-c-format
+msgid ""
+"#2193, Utilize PAGC parser as drop in replacement for tiger normalizer "
+"(Steve Woodbridge, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:245
+#, no-c-format
+msgid "#2210, ST_MinConvexHull(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:246
+#, no-c-format
+msgid "lwgeom_from_geojson in liblwgeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:247
+#, no-c-format
+msgid "#1687, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:248
+#, no-c-format
+msgid "#2228, TopoJSON output for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:249
+#, no-c-format
+msgid "#2123, ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:250
+#, no-c-format
+msgid "#613, ST_SetGeoReference with numerical parameters instead of text"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:251
+#, no-c-format
+msgid "#2276, ST_AddBand(raster) variant for out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:252
+#, no-c-format
+msgid "#2280, ST_Summary(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:253
+#, no-c-format
+msgid "#2163, ST_TPI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:254
+#, no-c-format
+msgid "#2164, ST_TRI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:255
+#, no-c-format
+msgid "#2302, ST_Roughness for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:256
+#, no-c-format
+msgid "#2290, ST_ColorMap(raster) to generate RGBA bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:257
+#, no-c-format
+msgid ""
+"#2254, Add SFCGAL backend support. (Backend selection throught postgis."
+"backend var) Functions available both throught GEOS or SFCGAL: "
+"ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, ST_Distance, "
+"ST_3DDistance New functions available only with SFCGAL backend: "
+"ST_3DIntersection, ST_Tesselate, ST_3DArea, ST_Extrude, ST_ForceLHR "
+"ST_Orientation, ST_Minkowski, ST_StraightSkeleton postgis_sfcgal_version New "
+"function available in PostGIS: ST_ForceSFS (Olivier Courtin and Hugo "
+"Mercier / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:272
+#, no-c-format
+msgid ""
+"For detail of new functions and function improvements, please refer to <xref "
+"linkend=\"NewFunctions_2_1\"/>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:273
+#, no-c-format
+msgid ""
+"Much faster raster ST_Union, ST_Clip and many more function additions "
+"operations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:274
+#, no-c-format
+msgid ""
+"For geometry/geography better planner selectivity and a lot more functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:276
+#, no-c-format
+msgid ""
+"#823, tiger geocoder: Make loader_generate_script download portion less "
+"greedy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:278
+#, no-c-format
+msgid ""
+"#826, raster2pgsql no longer defaults to padding tiles. Flag -P can be used "
+"to pad tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:280
+#, no-c-format
+msgid "#1363, ST_AddBand(raster, ...) array version rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:281
+#, no-c-format
+msgid "#1364, ST_Union(raster, ...) aggregate function rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:282
+#, no-c-format
+msgid "#1655, Additional default values for parameters of ST_Slope"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:283
+#, no-c-format
+msgid "#1661, Add aggregate variant of ST_SameAlignment"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:284
+#, no-c-format
+msgid "#1719, Add support for Point and GeometryCollection ST_MakeValid inputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:285
+#, no-c-format
+msgid "#1780, support ST_GeoHash for geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:286
+#, no-c-format
+msgid "#1796, Big performance boost for distance calculations in geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:287
+#, no-c-format
+msgid "#1802, improved function interruptibility."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:288
+#, no-c-format
+msgid ""
+"#1823, add parameter in ST_AsGML to use id column for GML 3 output (become "
+"mandatory since GML 3.2.1)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:290
+#, no-c-format
+msgid ""
+"#1856, tiger geocoder: reverse geocoder rating setting for prefer numbered "
+"highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:292
+#, no-c-format
+msgid "#1938, Refactor basic ST_AddBand to add multiple new bands in one call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:293
+#, no-c-format
+msgid ""
+"#1978, wrong answer when calculating length of a closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:295 release_notes.xml:505
+#, no-c-format
+msgid ""
+"#1989, Preprocess input geometry to just intersection with raster to be "
+"clipped"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:297
+#, no-c-format
+msgid ""
+"#2021, Added multi-band support to ST_Union(raster, ...) aggregate function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:298
+#, no-c-format
+msgid "#2006, better support of ST_Area(geography) over poles and dateline"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:299
+#, no-c-format
+msgid "#2065, ST_Clip(raster, ...) now a C function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:300
+#, no-c-format
+msgid "#2069, Added parameters to ST_Tile(raster) to control padding of tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:301
+#, no-c-format
+msgid ""
+"#2078, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide "
+"solution to handling tiles in a coverage"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:303
+#, no-c-format
+msgid "#2097, Added RANGE uniontype option for ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:304
+#, no-c-format
+msgid ""
+"#2105, Added ST_Transform(raster) variant for aligning output to reference "
+"raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:306
+#, no-c-format
+msgid ""
+"#2119, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(), and "
+"ST_SnapToGrid() no longer require an SRID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:308 release_notes.xml:478
+#, no-c-format
+msgid ""
+"#2141, More verbose output when constraints fail to be added to a raster "
+"column"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:310
+#, no-c-format
+msgid "#2143, Changed blocksize constraint of raster to allow multiple values"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:311
+#, no-c-format
+msgid "#2148, Addition of coverage_tile constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:312
+#, no-c-format
+msgid "#2149, Addition of spatially_unique constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:313
+#, no-c-format
+msgid ""
+"TopologySummary output now includes unregistered layers and a count of "
+"missing TopoGeometry objects from their natural layer."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:315
+#, no-c-format
+msgid ""
+"ST_HillShade(), ST_Aspect() and ST_Slope() have one new optional parameter "
+"to interpolate NODATA pixels before running the operation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:318
+#, no-c-format
+msgid ""
+"Point variant of ST_SetValue(raster) is now a wrapper around geomval variant "
+"of ST_SetValues(rast)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:320
+#, no-c-format
+msgid "Proper support for raster band's isnodata flag in core API and loader."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:321
+#, no-c-format
+msgid "Additional default values for parameters of ST_Aspect and ST_HillShade"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:322
+#, no-c-format
+msgid ""
+"#2178, ST_Summary now advertises presence of known srid with an [S] flag"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:323
+#, no-c-format
+msgid "#2202, Make libjson-c optional (--without-json configure switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:324
+#, no-c-format
+msgid "#2213, Add support libjson-c 0.10+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:325
+#, no-c-format
+msgid "#2231, raster2pgsql supports user naming of filename column with -n"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:326
+#, no-c-format
+msgid "#2200, ST_Union(raster, uniontype) unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:327
+#, no-c-format
+msgid ""
+"#2264, postgis_restore.pl support for restoring into databases with postgis "
+"in a custom schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:329
+#, no-c-format
+msgid ""
+"#2244, emit warning when changing raster's georeference if raster has out-db "
+"bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:331
+#, no-c-format
+msgid ""
+"#2222, add parameter OutAsIn to flag whether ST_AsBinary should return out-"
+"db bands as in-db bands"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:335
+#, no-c-format
+msgid "Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:336 release_notes.xml:580
+#, no-c-format
+msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:337 release_notes.xml:581
+#, no-c-format
+msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:338
+#, no-c-format
+msgid "#1870, align the docs and actual behavior of raster's ST_Intersects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:339 release_notes.xml:587
+#, no-c-format
+msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:340 release_notes.xml:590
+#, no-c-format
+msgid ""
+"#1875, ST_SummaryStats returns NULL for all parameters except count when "
+"count is zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:342
+#, no-c-format
+msgid "#1932, fix raster2pgsql of syntax for index tablespaces"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:343 release_notes.xml:498
+#, no-c-format
+msgid "#1936, ST_GeomFromGML on CurvePolygon causes server crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:344
+#, no-c-format
+msgid ""
+"#1939, remove custom data types: summarystats, histogram, quantile, "
+"valuecount"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:346
+#, no-c-format
+msgid "#1951, remove crash on zero-length linestrings"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:347 release_notes.xml:500
+#, no-c-format
+msgid "#1957, ST_Distance to a one-point LineString returns NULL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:348 release_notes.xml:501
+#, no-c-format
+msgid "#1976, Geography point-in-ring code overhauled for more reliability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:349
+#, no-c-format
+msgid "#1981, cleanup of unused variables causing warnings with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:350 release_notes.xml:508
+#, no-c-format
+msgid "#1996, support POINT EMPTY in GeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:351
+#, no-c-format
+msgid "#2062, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:352 release_notes.xml:519
+#, no-c-format
+msgid "#2057, Fixed linking issue for raster2psql to libpq"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:353
+#, no-c-format
+msgid "#2077, Fixed incorrect values returning from ST_Hillshade()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:354 release_notes.xml:512
+#, no-c-format
+msgid "#2019, ST_FlipCoordinates does not update bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:355
+#, no-c-format
+msgid "#2100, ST_AsRaster may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:356 release_notes.xml:464
+#, no-c-format
+msgid "#2126, Better handling of empty rasters from ST_ConvexHull()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:357 release_notes.xml:425
+#, no-c-format
+msgid "#2165, ST_NumPoints regression failure with CircularString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:358 release_notes.xml:426
+#, no-c-format
+msgid "#2168, ST_Distance is not always commutative"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:359
+#, no-c-format
+msgid "#2182, Fix issue with outdb rasters with no SRID and ST_Resize"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:360 release_notes.xml:472
+#, no-c-format
+msgid ""
+"#2188, Fix function parameter value overflow that caused problems when "
+"copying data from a GDAL dataset"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:362
+#, no-c-format
+msgid ""
+"#2198, Fix incorrect dimensions used when generating bands of out-db rasters "
+"in ST_Tile()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:364 release_notes.xml:428
+#, no-c-format
+msgid "#2201, ST_GeoHash wrong on boundaries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:365
+#, no-c-format
+msgid ""
+"#2203, Changed how rasters with unknown SRID and default geotransform are "
+"handled when passing to GDAL Warp API"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:367
+#, no-c-format
+msgid ""
+"#2215, Fixed raster exclusion constraint for conflicting name of implicit "
+"index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:369
+#, no-c-format
+msgid ""
+"#2251, Fix bad dimensions when rescaling rasters with default geotransform "
+"matrix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:371
+#, no-c-format
+msgid ""
+"#2133, Fix performance regression in expression variant of ST_MapAlgebra"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:372 release_notes.xml:429
+#, no-c-format
+msgid ""
+"#2257, GBOX variables not initialized when testing with empty geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:373 release_notes.xml:430
+#, no-c-format
+msgid "#2271, Prevent parallel make of raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:374
+#, no-c-format
+msgid "#2282, Fix call to undefined function nd_stats_to_grid() in debug mode"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:375 release_notes.xml:433
+#, no-c-format
+msgid "#2307, ST_MakeValid outputs invalid geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:376
+#, no-c-format
+msgid "#2309, Remove confusing INFO message when trying to get SRS info"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:377
+#, no-c-format
+msgid "#2336, FIPS 20 (KS) causes wildcard expansion to wget all files"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:378
+#, no-c-format
+msgid "#2348, Provide raster upgrade path for 2.0 to 2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:379 release_notes.xml:434
+#, no-c-format
+msgid "#2351, st_distance between geographies wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:380
+#, no-c-format
+msgid "#2359, Fix handling of schema name when adding overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:381 release_notes.xml:436
+#, no-c-format
+msgid "#2371, Support GEOS versions with more than 1 digit in micro"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:382
+#, no-c-format
+msgid "#2383, Remove unsafe use of \\' from raster warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:383
+#, no-c-format
+msgid "#2384, Incorrect variable datatypes for ST_Neighborhood"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:385 release_notes.xml:453
+#, no-c-format
+msgid "Known Issues"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:386 release_notes.xml:454
+#, no-c-format
+msgid ""
+"#2111, Raster bands can only reference the first 256 bands of out-db rasters"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:391
+#, no-c-format
+msgid "Release 2.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:393
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.4 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:396
+#, no-c-format
+msgid "#2494, avoid memcpy in GIST index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:399
+#, no-c-format
+msgid "#2528, Fix memory leak in ST_Split / lwline_split_by_line"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:400
+#, no-c-format
+msgid "#2532, Add missing raster/geometry commutator operators"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:401
+#, no-c-format
+msgid "#2533, Remove duplicated signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:405
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:407
+#, no-c-format
+msgid "#2619, Empty ring array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:412
+#, no-c-format
+msgid ""
+"##2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:417
+#, no-c-format
+msgid "Release 2.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:418
+#, no-c-format
+msgid "Release date: 2013/09/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:419
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.3 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:422
+#, no-c-format
+msgid "#2110, Equality operator between EMPTY and point on origin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:423
+#, no-c-format
+msgid "Allow adding points at precision distance with TopoGeo_addPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:424
+#, no-c-format
+msgid "#1968, Fix missing edge from toTopoGeom return"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:427
+#, no-c-format
+msgid "#2186, gui progress bar updates too frequent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:431
+#, no-c-format
+msgid "#2267, Server crash from analyze table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:432
+#, no-c-format
+msgid "#2277, potential segfault removed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:435
+#, no-c-format
+msgid "#2359, Incorrect handling of schema for overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:437
+#, no-c-format
+msgid "#2372, Cannot parse space-padded KML coordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:438
+#, no-c-format
+msgid "Fix build with systemwide liblwgeom installed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:439
+#, no-c-format
+msgid "#2383, Fix unsafe use of \\' in warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:440
+#, no-c-format
+msgid "#2410, Fix segmentize of collinear curve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:441
+#, no-c-format
+msgid "#2412, ST_LineToCurve support for lines with less than 4 vertices"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:442
+#, no-c-format
+msgid "#2415, ST_Multi support for COMPOUNDCURVE and CURVEPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:443
+#, no-c-format
+msgid "#2420, ST_LineToCurve: require at least 8 edges to define a full circle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:444
+#, no-c-format
+msgid "#2423, ST_LineToCurve: require all arc edges to form the same angle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:445
+#, no-c-format
+msgid "#2424, ST_CurveToLine: add support for COMPOUNDCURVE in MULTICURVE"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:446
+#, no-c-format
+msgid "#2427, Make sure to retain first point of curves on ST_CurveToLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:450
+#, no-c-format
+msgid "#2269, Avoid uselessly detoasting full geometries on ANALYZE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:459
+#, no-c-format
+msgid "Release 2.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:460
+#, no-c-format
+msgid "Release date: 2013/03/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:461
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.2 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:465
+#, no-c-format
+msgid "#2134, Make sure to process SRS before passing it off to GDAL functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:466
+#, no-c-format
+msgid "Fix various memory leaks in liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:467
+#, no-c-format
+msgid ""
+"#2173, Fix robustness issue in splitting a line with own vertex also "
+"affecting topology building (#2172)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:468
+#, no-c-format
+msgid "#2174, Fix usage of wrong function lwpoly_free()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:469
+#, no-c-format
+msgid "#2176, Fix robustness issue with ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:470
+#, no-c-format
+msgid "#2184, Properly copy topologies with Z value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:471
+#, no-c-format
+msgid "postgis_restore.pl support for mixed case geometry column name in dumps"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:473
+#, no-c-format
+msgid "#2216, More memory errors in MultiPolygon GeoJSON parsing (with holes)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:474
+#, no-c-format
+msgid "Fix Memory leak in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:479
+#, no-c-format
+msgid "Speedup ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:483
+#, no-c-format
+msgid "Release 2.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:484
+#, no-c-format
+msgid "Release date: 2012/12/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:485
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:488
+#, no-c-format
+msgid ""
+"#1287, Drop of \"gist_geometry_ops\" broke a few clients package of "
+"legacy_gist.sql for these cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:490
+#, no-c-format
+msgid "#1391, Errors during upgrade from 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:491
+#, no-c-format
+msgid "#1828, Poor selectivity estimate on ST_DWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:492
+#, no-c-format
+msgid "#1838, error importing tiger/line data"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:493
+#, no-c-format
+msgid ""
+"#1869, ST_AsBinary is not unique added to legacy_minor/legacy.sql scripts"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:494
+#, no-c-format
+msgid "#1885, Missing field from tabblock table in tiger2010 census_loader.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:495
+#, no-c-format
+msgid "#1891, Use LDFLAGS environment when building liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:496
+#, no-c-format
+msgid "#1900, Fix pgsql2shp for big-endian systems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:497
+#, no-c-format
+msgid "#1932, Fix raster2pgsql for invalid syntax for setting index tablespace"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:499
+#, no-c-format
+msgid "#1955, ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:502
+#, no-c-format
+msgid "#1978, wrong answer calculating length of closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:503
+#, no-c-format
+msgid "#1981, Remove unused but set variables as found with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:504
+#, no-c-format
+msgid "#1987, Restore 1.5.x behaviour of ST_Simplify"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:507
+#, no-c-format
+msgid "#1991, geocode really slow on PostgreSQL 9.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:509
+#, no-c-format
+msgid "#1998, Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:510
+#, no-c-format
+msgid ""
+"#2001, ST_CurveToLine has no effect if the geometry doesn't actually contain "
+"an arc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:511
+#, no-c-format
+msgid "#2015, ST_IsEmpty('POLYGON(EMPTY)') returns False"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:513
+#, no-c-format
+msgid "#2025, Fix side location conflict at TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:514
+#, no-c-format
+msgid "#2026, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:515
+#, no-c-format
+msgid "#2033, Fix adding a splitting point into a 2.5d topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:516
+#, no-c-format
+msgid "#2051, Fix excess of precision in ST_AsGeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:517
+#, no-c-format
+msgid "#2052, Fix buffer overflow in lwgeom_to_geojson"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:518
+#, no-c-format
+msgid "#2056, Fixed lack of SRID check of raster and geometry in ST_SetValue()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:520
+#, no-c-format
+msgid "#2060, Fix \"dimension\" check violation by GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:521
+#, no-c-format
+msgid ""
+"#2072, Removed outdated checks preventing ST_Intersects(raster) from working "
+"on out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:523
+#, no-c-format
+msgid "#2077, Fixed incorrect answers from ST_Hillshade(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:524
+#, no-c-format
+msgid ""
+"#2092, Namespace issue with ST_GeomFromKML,ST_GeomFromGML for libxml 2.8+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:525
+#, no-c-format
+msgid "#2099, Fix double free on exception in ST_OffsetCurve"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:7
+#: release_notes.xml:526
 #, no-c-format
-msgid "Release date: 2012/06/22"
+msgid "#2100, ST_AsRaster() may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:527
+#, no-c-format
+msgid "#2108, Ensure ST_Line_Interpolate_Point always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:528
+#, no-c-format
+msgid "#2109, Ensure ST_Centroid always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:529
+#, no-c-format
+msgid "#2117, Ensure ST_PointOnSurface always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:530
+#, no-c-format
+msgid "#2129, Fix SRID in ST_Homogenize output with collection input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:531
+#, no-c-format
+msgid "#2130, Fix memory error in MultiPolygon GeoJson parsing"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:8
+#: release_notes.xml:533
+#, no-c-format
+msgid "Update URL of Maven jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:537
 #, no-c-format
 msgid ""
-"This is a bug fix release, addressing issues that have been filed since the "
-"2.0.0 release."
+"#1581, ST_Clip(raster, ...) no longer imposes NODATA on a band if the "
+"corresponding band from the source raster did not have NODATA"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:539
+#, no-c-format
+msgid ""
+"#1928, Accept array properties in GML input multi-geom input (Kashif Rasul "
+"and Shoaib Burq / SpacialDB)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:541
+#, no-c-format
+msgid "#2082, Add indices on start_node and end_node of topology edge tables"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:542
+#, no-c-format
+msgid "#2087, Speedup topology.GetRingEdges using a recursive CTE"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:10 release_notes.xml:165 release_notes.xml:179
-#: release_notes.xml:217 release_notes.xml:255 release_notes.xml:286
+#: release_notes.xml:546
 #, no-c-format
-msgid "Bug Fixes"
+msgid "Release 2.0.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:11
+#: release_notes.xml:547
+#, no-c-format
+msgid "Release date: 2012/06/22"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:548
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.0 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:551
 #, no-c-format
 msgid "#1264, fix st_dwithin(geog, geog, 0)."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:12
+#: release_notes.xml:552
 #, no-c-format
 msgid "#1468 shp2pgsql-gui table column schema get shifted"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:13
+#: release_notes.xml:553
 #, no-c-format
 msgid "#1694, fix building with clang. (vince)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:14
+#: release_notes.xml:554
 #, no-c-format
 msgid "#1708, improve restore of pre-PostGIS 2.0 backups."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:15
+#: release_notes.xml:555
 #, no-c-format
 msgid "#1714, more robust handling of high topology tolerance."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:16
+#: release_notes.xml:556
 #, no-c-format
 msgid "#1755, ST_GeographyFromText support for higher dimensions."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:17
+#: release_notes.xml:557
 #, no-c-format
 msgid "#1759, loading transformed shapefiles in raster enabled db."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:18
+#: release_notes.xml:558
 #, no-c-format
 msgid ""
 "#1761, handling of subdatasets in NetCDF, HDF4 and HDF5 in raster2pgsql."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:19
+#: release_notes.xml:559
 #, no-c-format
 msgid "#1763, topology.toTopoGeom use with custom search_path."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:20
+#: release_notes.xml:560
 #, no-c-format
 msgid "#1766, don't let ST_RemEdge* destroy peripheral TopoGeometry objects."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:21
+#: release_notes.xml:561
 #, no-c-format
 msgid "#1774, Clearer error on setting an edge geometry to an invalid one."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:22
+#: release_notes.xml:562
 #, no-c-format
 msgid "#1775, ST_ChangeEdgeGeom collision detection with 2-vertex target."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:23
+#: release_notes.xml:563
 #, no-c-format
 msgid "#1776, fix ST_SymDifference(empty, geom) to return geom."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:24
+#: release_notes.xml:564
 #, no-c-format
 msgid "#1779, install SQL comment files."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:25
+#: release_notes.xml:565
 #, no-c-format
 msgid "#1782, fix spatial reference string handling in raster."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:26
+#: release_notes.xml:566
 #, no-c-format
 msgid "#1789, fix false edge-node crossing report in ValidateTopology."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:27
+#: release_notes.xml:567
 #, no-c-format
 msgid "#1790, fix toTopoGeom handling of duplicated primitives."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:28
+#: release_notes.xml:568
 #, no-c-format
 msgid "#1791, fix ST_Azimuth with very close but distinct points."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:29
+#: release_notes.xml:569
 #, no-c-format
 msgid "#1797, fix (ValidateTopology(xxx)).* syntax calls."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:30
+#: release_notes.xml:570
 #, no-c-format
 msgid "#1805, put back the 900913 SRID entry."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:31
+#: release_notes.xml:571
 #, no-c-format
 msgid "#1813, Only show readable relations in metadata tables."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:32
+#: release_notes.xml:572
 #, no-c-format
 msgid ""
 "#1819, fix floating point issues with ST_World2RasterCoord and "
@@ -190,81 +2336,63 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:34
+#: release_notes.xml:574
 #, no-c-format
 msgid "#1820 compilation on 9.2beta1."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:35
+#: release_notes.xml:575
 #, no-c-format
 msgid "#1822, topology load on PostgreSQL 9.2beta1."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:36
+#: release_notes.xml:576
 #, no-c-format
 msgid "#1825, fix prepared geometry cache lookup"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:37
+#: release_notes.xml:577
 #, no-c-format
 msgid "#1829, fix uninitialized read in GeoJSON parser"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:38
+#: release_notes.xml:578
 #, no-c-format
 msgid ""
 "#1834, revise postgis extension to only backup user specified spatial_ref_sys"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:40
-#, no-c-format
-msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:41
-#, no-c-format
-msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:42
+#: release_notes.xml:582
 #, no-c-format
 msgid "#1851, fix spatial_ref_system parameters for EPSG:3844"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:43
+#: release_notes.xml:583
 #, no-c-format
 msgid "#1857, fix failure to detect endpoint mismatch in ST_AddEdge*Face*"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:44
+#: release_notes.xml:584
 #, no-c-format
 msgid ""
 "#1865, data loss in postgis_restore.pl when data rows have leading dashes."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:46
+#: release_notes.xml:586
 #, no-c-format
 msgid "#1867, catch invalid topology name passed to topogeo_add*"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:47
-#, no-c-format
-msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:48
+#: release_notes.xml:588
 #, no-c-format
 msgid ""
 "#1873, fix ptarray_locate_point to return interpolated Z/M values for on-the-"
@@ -272,72 +2400,57 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:50
-#, no-c-format
-msgid ""
-"#1875, ST_SummaryStats returns NULL for all parameters except count when "
-"count is zero"
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:52
+#: release_notes.xml:592
 #, no-c-format
 msgid "#1881, shp2pgsql-gui -- editing a field sometimes triggers removing row"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:54
+#: release_notes.xml:594
 #, no-c-format
 msgid ""
 "#1883, Geocoder install fails trying to run create_census_base_tables() "
 "(Brian Panulla)"
 msgstr ""
 
-#. Tag: title
-#: release_notes.xml:58 release_notes.xml:148 release_notes.xml:349
-#: release_notes.xml:404
-#, no-c-format
-msgid "Enhancements"
-msgstr ""
-
 #. Tag: para
-#: release_notes.xml:59
+#: release_notes.xml:599
 #, no-c-format
 msgid "More detailed exception message from topology editing functions."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:60
+#: release_notes.xml:600
 #, no-c-format
 msgid "#1786, improved build dependencies"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:61
+#: release_notes.xml:601
 #, no-c-format
 msgid "#1806, speedup of ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:62
+#: release_notes.xml:602
 #, no-c-format
 msgid "#1812, Add lwgeom_normalize in LIBLWGEOM for more stable testing."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:66
+#: release_notes.xml:606
 #, no-c-format
 msgid "Release 2.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:67
+#: release_notes.xml:607
 #, no-c-format
 msgid "Release date: 2012/04/03"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:68
+#: release_notes.xml:608
 #, no-c-format
 msgid ""
 "This is a major release. A hard upgrade is required. Yes this means a full "
@@ -348,13 +2461,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:72
+#: release_notes.xml:612
 #, no-c-format
 msgid "Testers - Our unsung heroes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:73
+#: release_notes.xml:613
 #, no-c-format
 msgid ""
 "We are most indebted to the numerous members in the PostGIS community who "
@@ -363,7 +2476,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:76
+#: release_notes.xml:616
 #, no-c-format
 msgid ""
 "Below are those who have been most valiant, provided very detailed and "
@@ -371,31 +2484,31 @@ msgid ""
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:80
+#: release_notes.xml:620
 #, no-c-format
 msgid "Andrea Peri - Lots of testing on topology, checking for correctness"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:81
+#: release_notes.xml:621
 #, no-c-format
 msgid "Andreas Forø Tollefsen - raster testing"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:82
+#: release_notes.xml:622
 #, no-c-format
 msgid "Chris English - topology stress testing loader functions"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:83
+#: release_notes.xml:623
 #, no-c-format
 msgid "Salvatore Larosa - topology robustness testing"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:84
+#: release_notes.xml:624
 #, no-c-format
 msgid ""
 "Brian Hamlin - Benchmarking (also experimental experimental branches before "
@@ -404,25 +2517,19 @@ msgid ""
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:89
+#: release_notes.xml:629
 #, no-c-format
 msgid "Mike Pease - Tiger geocoder testing - very detailed reports of issues"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:90
+#: release_notes.xml:630
 #, no-c-format
 msgid "Tom van Tilburg - raster testing"
 msgstr ""
 
-#. Tag: title
-#: release_notes.xml:94
-#, no-c-format
-msgid "Important / Breaking Changes"
-msgstr ""
-
 #. Tag: para
-#: release_notes.xml:95
+#: release_notes.xml:635
 #, no-c-format
 msgid ""
 "#722, #302, Most deprecated functions removed (over 250 functions) (Regina "
@@ -430,13 +2537,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:96
+#: release_notes.xml:636
 #, no-c-format
 msgid "Unknown SRID changed from -1 to 0. (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:97
+#: release_notes.xml:637
 #, no-c-format
 msgid ""
 "-- (most deprecated in 1.2) removed non-ST variants buffer, length, "
@@ -444,7 +2551,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:99
+#: release_notes.xml:639
 #, no-c-format
 msgid ""
 "-- If you have been using deprecated functions CHANGE your apps or suffer "
@@ -452,12 +2559,12 @@ msgid ""
 "supported or it is an internal function. Some constraints in older tables "
 "were built with deprecated functions. If you restore you may need to rebuild "
 "table constraints with populate_geometry_columns(). If you have applications "
-"or tools that rely on deprecated functions, please refer to <link linkend="
-"\"legacy_faq\"></link> for more details."
+"or tools that rely on deprecated functions, please refer to <xref linkend="
+"\"legacy_faq\"/> for more details."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:104
+#: release_notes.xml:644
 #, no-c-format
 msgid ""
 "#944 geometry_columns is now a view instead of a table (Paul Ramsey, Regina "
@@ -466,7 +2573,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:109
+#: release_notes.xml:649
 #, no-c-format
 msgid ""
 "#1081, #1082, #1084, #1088 - Mangement functions support typmod geometry "
@@ -474,7 +2581,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:112
+#: release_notes.xml:652
 #, no-c-format
 msgid ""
 "#1083 probe_geometry_columns(), rename_geometry_table_constraints(), "
@@ -483,28 +2590,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:116
+#: release_notes.xml:656
 #, no-c-format
 msgid "#817 Renaming old 3D functions to the convention ST_3D (Nicklas Avén)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:117
+#: release_notes.xml:657
 #, no-c-format
 msgid ""
 "#548 (sorta), ST_NumGeometries,ST_GeometryN now returns 1 (or the geometry) "
 "instead of null for single geometries (Sandro Santilli, Maxime van Noppen)"
 msgstr ""
 
-#. Tag: title
-#: release_notes.xml:121 release_notes.xml:321 release_notes.xml:385
-#: release_notes.xml:682
-#, no-c-format
-msgid "New Features"
-msgstr ""
-
 #. Tag: ulink
-#: release_notes.xml:122
+#: release_notes.xml:662
 #, no-c-format
 msgid ""
 "KNN Gist index based centroid (<->) and box (<#>) distance "
@@ -512,7 +2612,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:123
+#: release_notes.xml:663
 #, no-c-format
 msgid ""
 "Support for TIN and PolyHedralSurface and enhancement of many functions to "
@@ -520,7 +2620,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:124
+#: release_notes.xml:664
 #, no-c-format
 msgid ""
 "<ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/PlanningAndFunding"
@@ -532,14 +2632,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:127
+#: release_notes.xml:667
 #, no-c-format
 msgid ""
 "Making spatial indexes 3D aware - in progress (Paul Ramsey, Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:128
+#: release_notes.xml:668
 #, no-c-format
 msgid ""
 "Topology support improved (more functions), documented, testing (Sandro "
@@ -548,13 +2648,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:129
+#: release_notes.xml:669
 #, no-c-format
 msgid "3D relationship and measurement support functions (Nicklas Avén)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:130
+#: release_notes.xml:670
 #, no-c-format
 msgid ""
 "ST_3DDistance, ST_3DClosestPoint, ST_3DIntersects, ST_3DShortestLine and "
@@ -562,37 +2662,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:131
+#: release_notes.xml:671
 #, no-c-format
 msgid "N-Dimensional spatial indexes (Paul Ramsey / OpenGeo)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:132
+#: release_notes.xml:672
 #, no-c-format
 msgid "ST_Split (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:133
+#: release_notes.xml:673
 #, no-c-format
 msgid "ST_IsValidDetail (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:134
+#: release_notes.xml:674
 #, no-c-format
 msgid "ST_MakeValid (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:135
+#: release_notes.xml:675
 #, no-c-format
 msgid "ST_RemoveRepeatedPoints (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:136
+#: release_notes.xml:676
 #, no-c-format
 msgid ""
 "ST_GeometryN and ST_NumGeometries support for non-collections (Sandro "
@@ -600,61 +2700,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:137
+#: release_notes.xml:677
 #, no-c-format
 msgid "ST_IsCollection (Sandro Santilli, Maxime van Noppen)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:138
+#: release_notes.xml:678
 #, no-c-format
 msgid "ST_SharedPaths (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:139
+#: release_notes.xml:679
 #, no-c-format
 msgid "ST_Snap (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:140
+#: release_notes.xml:680
 #, no-c-format
 msgid "ST_RelateMatch (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:141
+#: release_notes.xml:681
 #, no-c-format
 msgid "ST_ConcaveHull (Regina Obe and Leo Hsu / Paragon Corporation)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:142
+#: release_notes.xml:682
 #, no-c-format
 msgid "ST_UnaryUnion (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:143
+#: release_notes.xml:683
 #, no-c-format
 msgid "ST_AsX3D (Regina Obe / Arrival 3D funding)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:144
+#: release_notes.xml:684
 #, no-c-format
 msgid "ST_OffsetCurve (Sandro Santilli, Rafal Magda)"
 msgstr ""
 
 #. Tag: ulink
-#: release_notes.xml:145
+#: release_notes.xml:685
 #, no-c-format
 msgid "ST_GeomFromGeoJSON (Kashif Rasul, Paul Ramsey / Vizzuality funding)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:149
+#: release_notes.xml:689
 #, no-c-format
 msgid ""
 "Made shape file loader tolerant of truncated multibyte values found in some "
@@ -662,7 +2762,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:150
+#: release_notes.xml:690
 #, no-c-format
 msgid ""
 "Lots of bug fixes and enhancements to shp2pgsql Beefing up regression tests "
@@ -671,14 +2771,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:154
+#: release_notes.xml:694
 #, no-c-format
 msgid ""
 "pgsql2shp conversion from predefined list (Loic Dachary / Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:156
+#: release_notes.xml:696
 #, no-c-format
 msgid ""
 "Shp-pgsql GUI loader - support loading multiple files at a time. (Mark "
@@ -686,7 +2786,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:157
+#: release_notes.xml:697
 #, no-c-format
 msgid ""
 "Extras - upgraded tiger_geocoder from using old TIGER format to use new "
@@ -694,7 +2794,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:158
+#: release_notes.xml:698
 #, no-c-format
 msgid ""
 "Extras - revised tiger_geocoder to work with TIGER census 2010 data, "
@@ -705,13 +2805,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:161
+#: release_notes.xml:701
 #, no-c-format
 msgid "Overall Documentation proofreading and corrections. (Kasif Rasul)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:162
+#: release_notes.xml:702
 #, no-c-format
 msgid ""
 "Cleanup PostGIS JDBC classes, revise to use Maven build. (Maria Arias de "
@@ -719,19 +2819,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:166
+#: release_notes.xml:706
 #, no-c-format
 msgid "#1335 ST_AddPoint returns incorrect result on Linux (Even Rouault)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:169
+#: release_notes.xml:709
 #, no-c-format
 msgid "Release specific credits"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:170
+#: release_notes.xml:710
 #, no-c-format
 msgid ""
 "We thank <ulink url=\"http://blog.opengeo.org/2012/02/01/it-goes-up-to-2-0/"
@@ -742,19 +2842,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:175
+#: release_notes.xml:715
 #, no-c-format
 msgid "Release 1.5.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:176
+#: release_notes.xml:716
 #, no-c-format
 msgid "Release date: 2012/05/07"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:177
+#: release_notes.xml:717
 #, no-c-format
 msgid ""
 "This is a bug fix release, addressing issues that have been filed since the "
@@ -762,57 +2862,57 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:180
+#: release_notes.xml:720
 #, no-c-format
 msgid "#547, ST_Contains memory problems (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:181
+#: release_notes.xml:721
 #, no-c-format
 msgid "#621, Problem finding intersections with geography (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:182
+#: release_notes.xml:722
 #, no-c-format
 msgid "#627, PostGIS/PostgreSQL process die on invalid geometry (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:183
+#: release_notes.xml:723
 #, no-c-format
 msgid "#810, Increase accuracy of area calculation (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:184
+#: release_notes.xml:724
 #, no-c-format
 msgid ""
 "#852, improve spatial predicates robustness (Sandro Santilli, Nicklas Avén)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:185
+#: release_notes.xml:725
 #, no-c-format
 msgid ""
 "#877, ST_Estimated_Extent returns NULL on empty tables (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:186
+#: release_notes.xml:726
 #, no-c-format
 msgid "#1028, ST_AsSVG kills whole postgres server when fails (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:187
+#: release_notes.xml:727
 #, no-c-format
 msgid "#1056, Fix boxes of arcs and circle stroking code (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:188
+#: release_notes.xml:728
 #, no-c-format
 msgid ""
 "#1121, populate_geometry_columns using deprecated functions (Regin Obe, Paul "
@@ -820,133 +2920,133 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:189
+#: release_notes.xml:729
 #, no-c-format
 msgid "#1135, improve testsuite predictability (Andreas 'ads' Scherbaum)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:190
+#: release_notes.xml:730
 #, no-c-format
 msgid "#1146, images generator crashes (bronaugh)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:191
+#: release_notes.xml:731
 #, no-c-format
 msgid "#1170, North Pole intersection fails (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:192
+#: release_notes.xml:732
 #, no-c-format
 msgid "#1179, ST_AsText crash with bad value (kjurka)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:193
+#: release_notes.xml:733
 #, no-c-format
 msgid "#1184, honour DESTDIR in documentation Makefile (Bryce L Nordgren)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:194
+#: release_notes.xml:734
 #, no-c-format
 msgid "#1227, server crash on invalid GML"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:195
+#: release_notes.xml:735
 #, no-c-format
 msgid "#1252, SRID appearing in WKT (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:196
+#: release_notes.xml:736
 #, no-c-format
 msgid "#1264, st_dwithin(g, g, 0) doesn't work (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:197
+#: release_notes.xml:737
 #, no-c-format
 msgid "#1344, allow exporting tables with invalid geometries (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:198
+#: release_notes.xml:738
 #, no-c-format
 msgid "#1389, wrong proj4text for SRID 31300 and 31370 (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:199
+#: release_notes.xml:739
 #, no-c-format
 msgid "#1406, shp2pgsql crashes when loading into geography (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:200
+#: release_notes.xml:740
 #, no-c-format
 msgid "#1595, fixed SRID redundancy in ST_Line_SubString (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:201
+#: release_notes.xml:741
 #, no-c-format
 msgid "#1596, check SRID in UpdateGeometrySRID (Mike Toews, Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:202
+#: release_notes.xml:742
 #, no-c-format
 msgid "#1602, fix ST_Polygonize to retain Z (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:203
+#: release_notes.xml:743
 #, no-c-format
 msgid "#1697, fix crash with EMPTY entries in GiST index (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:204
+#: release_notes.xml:744
 #, no-c-format
 msgid "#1772, fix ST_Line_Locate_Point with collapsed input (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:205
+#: release_notes.xml:745
 #, no-c-format
 msgid "#1799, Protect ST_Segmentize from max_length=0 (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:206
+#: release_notes.xml:746
 #, no-c-format
 msgid "Alter parameter order in 900913 (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:207
+#: release_notes.xml:747
 #, no-c-format
 msgid "Support builds with \"gmake\" (Greg Troxel)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:212
+#: release_notes.xml:752
 #, no-c-format
 msgid "Release 1.5.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:213
+#: release_notes.xml:753
 #, no-c-format
 msgid "Release date: 2011/06/25"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:214
+#: release_notes.xml:754
 #, no-c-format
 msgid ""
 "This is a bug fix release, addressing issues that have been filed since the "
@@ -955,7 +3055,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:218
+#: release_notes.xml:758
 #, no-c-format
 msgid ""
 "#1056, produce correct bboxes for arc geometries, fixes index errors (Paul "
@@ -963,7 +3063,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:220
+#: release_notes.xml:760
 #, no-c-format
 msgid ""
 "#1007, ST_IsValid crash fix requires GEOS 3.3.0+ or 3.2.3+ (Sandro Santilli, "
@@ -971,7 +3071,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:222
+#: release_notes.xml:762
 #, no-c-format
 msgid ""
 "#940, support for PostgreSQL 9.1 beta 1 (Regina Obe, Paul Ramsey, patch "
@@ -979,7 +3079,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:224
+#: release_notes.xml:764
 #, no-c-format
 msgid ""
 "#845, ST_Intersects precision error (Sandro Santilli, Nicklas Avén) Reported "
@@ -987,31 +3087,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:226
+#: release_notes.xml:766
 #, no-c-format
 msgid "#884, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:227
+#: release_notes.xml:767
 #, no-c-format
 msgid "#779, shp2pgsql -S option seems to fail on points (Jeff Adams)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:228
+#: release_notes.xml:768
 #, no-c-format
 msgid "#666, ST_DumpPoints is not null safe (Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:229
+#: release_notes.xml:769
 #, no-c-format
 msgid "#631, Update NZ projections for grid transformation support (jpalmer)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:230
+#: release_notes.xml:770
 #, no-c-format
 msgid ""
 "#630, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson) "
@@ -1019,26 +3119,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:232
+#: release_notes.xml:772
 #, no-c-format
 msgid "#624, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:233
+#: release_notes.xml:773
 #, no-c-format
 msgid ""
 "#609, Bad source code in manual section 5.2 Java Clients (simoc, Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:234
+#: release_notes.xml:774
 #, no-c-format
 msgid "#604, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:235
+#: release_notes.xml:775
 #, no-c-format
 msgid ""
 "#573 ST_Union fails on a group of linestrings Not a PostGIS bug, fixed in "
@@ -1046,7 +3146,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:237
+#: release_notes.xml:777
 #, no-c-format
 msgid ""
 "#457 ST_CollectionExtract returns non-requested type (Nicklas Avén, Paul "
@@ -1054,13 +3154,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:239
+#: release_notes.xml:779
 #, no-c-format
 msgid "#441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:240
+#: release_notes.xml:780
 #, no-c-format
 msgid ""
 "#411 Ability to backup invalid geometries (Sando Santilli) Reported by "
@@ -1068,13 +3168,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:242
+#: release_notes.xml:782
 #, no-c-format
 msgid "#409 ST_AsSVG - degraded (Olivier Courtin) Reported by Sdikiy"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:244
+#: release_notes.xml:784
 #, no-c-format
 msgid ""
 "#373 Documentation syntax error in hard upgrade (Paul Ramsey) Reported by "
@@ -1082,19 +3182,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:250
+#: release_notes.xml:790
 #, no-c-format
 msgid "Release 1.5.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:251
+#: release_notes.xml:791
 #, no-c-format
 msgid "Release date: 2010/09/27"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:252
+#: release_notes.xml:792
 #, no-c-format
 msgid ""
 "This is a bug fix release, addressing issues that have been filed since the "
@@ -1103,7 +3203,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:256
+#: release_notes.xml:796
 #, no-c-format
 msgid ""
 "Loader: fix handling of empty (0-verticed) geometries in shapefiles. (Sandro "
@@ -1111,7 +3211,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:257
+#: release_notes.xml:797
 #, no-c-format
 msgid ""
 "#536, Geography ST_Intersects, ST_Covers, ST_CoveredBy and Geometry "
@@ -1119,20 +3219,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:258
+#: release_notes.xml:798
 #, no-c-format
 msgid "#573, Improvement to ST_Contains geography (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:259
+#: release_notes.xml:799
 #, no-c-format
 msgid ""
 "Loader: Add support for command-q shutdown in Mac GTK build (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:260
+#: release_notes.xml:800
 #, no-c-format
 msgid ""
 "#393, Loader: Add temporary patch for large DBF files (Maxime Guillaud, Paul "
@@ -1140,13 +3240,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:261
+#: release_notes.xml:801
 #, no-c-format
 msgid "#507, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:262
+#: release_notes.xml:802
 #, no-c-format
 msgid ""
 "spatial_ref_sys.sql Add datum conversion for projection SRID 3021 (Paul "
@@ -1154,7 +3254,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:263
+#: release_notes.xml:803
 #, no-c-format
 msgid ""
 "Geography - remove crash for case when all geographies are out of the "
@@ -1162,13 +3262,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:264
+#: release_notes.xml:804
 #, no-c-format
 msgid "#469, Fix for array_aggregation error (Greg Stark, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:265
+#: release_notes.xml:805
 #, no-c-format
 msgid ""
 "#532, Temporary geography tables showing up in other user sessions (Paul "
@@ -1176,13 +3276,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:266
+#: release_notes.xml:806
 #, no-c-format
 msgid "#562, ST_Dwithin errors for large geographies (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:267
+#: release_notes.xml:807
 #, no-c-format
 msgid ""
 "#513, shape loading GUI tries to make spatial index when loading DBF only "
@@ -1190,20 +3290,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:268
+#: release_notes.xml:808
 #, no-c-format
 msgid ""
 "#527, shape loading GUI should always append log messages (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:269
+#: release_notes.xml:809
 #, no-c-format
 msgid "#504, shp2pgsql should rename xmin/xmax fields (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:270
+#: release_notes.xml:810
 #, no-c-format
 msgid ""
 "#458, postgis_comments being installed in contrib instead of version folder "
@@ -1211,20 +3311,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:271
+#: release_notes.xml:811
 #, no-c-format
 msgid ""
 "#474, Analyzing a table with geography column crashes server (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:272
+#: release_notes.xml:812
 #, no-c-format
 msgid "#581, LWGEOM-expand produces inconsistent results (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:273
+#: release_notes.xml:813
 #, no-c-format
 msgid ""
 "#513, Add dbf filter to shp2pgsql-gui and allow uploading dbf only (Paul "
@@ -1232,19 +3332,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:274
+#: release_notes.xml:814
 #, no-c-format
 msgid "Fix further build issues against PostgreSQL 9.0 (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:275
+#: release_notes.xml:815
 #, no-c-format
 msgid "#572, Password whitespace for Shape File (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:276
+#: release_notes.xml:816
 #, no-c-format
 msgid ""
 "#603, shp2pgsql: \"-w\" produces invalid WKT for MULTI* objects. (Mark Cave-"
@@ -1252,19 +3352,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:281
+#: release_notes.xml:821
 #, no-c-format
 msgid "Release 1.5.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:282
+#: release_notes.xml:822
 #, no-c-format
 msgid "Release date: 2010/03/11"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:283
+#: release_notes.xml:823
 #, no-c-format
 msgid ""
 "This is a bug fix release, addressing issues that have been filed since the "
@@ -1273,7 +3373,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:287
+#: release_notes.xml:827
 #, no-c-format
 msgid ""
 "#410, update embedded bbox when applying ST_SetPoint, ST_AddPoint "
@@ -1281,7 +3381,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:288
+#: release_notes.xml:828
 #, no-c-format
 msgid ""
 "#411, allow dumping tables with invalid geometries (Sandro Santilli, for "
@@ -1289,7 +3389,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:289
+#: release_notes.xml:829
 #, no-c-format
 msgid ""
 "#414, include geography_columns view when running upgrade scripts (Paul "
@@ -1297,7 +3397,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:290
+#: release_notes.xml:830
 #, no-c-format
 msgid ""
 "#419, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, "
@@ -1305,27 +3405,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:291
+#: release_notes.xml:831
 #, no-c-format
 msgid "#421, fix computed string length in ST_AsGML() (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:292
+#: release_notes.xml:832
 #, no-c-format
 msgid ""
 "#441, fix GML generation with heterogeneous collections (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:293
+#: release_notes.xml:833
 #, no-c-format
 msgid ""
 "#443, incorrect coordinate reversal in GML 3 generation (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:294
+#: release_notes.xml:834
 #, no-c-format
 msgid ""
 "#450, #451, wrong area calculation for geography features that cross the "
@@ -1333,25 +3433,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:295
+#: release_notes.xml:835
 #, no-c-format
 msgid "Ensure support for upcoming 9.0 PgSQL release (Paul Ramsey)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:300
+#: release_notes.xml:840
 #, no-c-format
 msgid "Release 1.5.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:301
+#: release_notes.xml:841
 #, no-c-format
 msgid "Release date: 2010/02/04"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:302
+#: release_notes.xml:842
 #, no-c-format
 msgid ""
 "This release provides support for geographic coordinates (lat/lon) via a new "
@@ -1360,20 +3460,20 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:305 release_notes.xml:372
+#: release_notes.xml:845 release_notes.xml:912
 #, no-c-format
 msgid "API Stability"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:306
+#: release_notes.xml:846
 #, no-c-format
 msgid ""
 "The public API of PostGIS will not change during minor (0.0.X) releases."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:307
+#: release_notes.xml:847
 #, no-c-format
 msgid ""
 "The definition of the =~ operator has changed from an exact geometric "
@@ -1381,55 +3481,55 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:311 release_notes.xml:377
+#: release_notes.xml:851 release_notes.xml:917
 #, no-c-format
 msgid "Compatibility"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:312
+#: release_notes.xml:852
 #, no-c-format
 msgid "GEOS, Proj4, and LibXML2 are now mandatory dependencies"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:313
+#: release_notes.xml:853
 #, no-c-format
 msgid "The library versions below are the minimum requirements for PostGIS 1.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:314
+#: release_notes.xml:854
 #, no-c-format
 msgid "PostgreSQL 8.3 and higher on all platforms"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:315
+#: release_notes.xml:855
 #, no-c-format
 msgid "GEOS 3.1 and higher only (GEOS 3.2+ to take advantage of all features)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:316
+#: release_notes.xml:856
 #, no-c-format
 msgid "LibXML2 2.5+ related to new ST_GeomFromGML/KML functionality"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:317
+#: release_notes.xml:857
 #, no-c-format
 msgid "Proj4 4.5 and higher only"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:323
+#: release_notes.xml:863
 #, no-c-format
 msgid "Added Hausdorff distance calculations (#209) (Vincent Picavet)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:324
+#: release_notes.xml:864
 #, no-c-format
 msgid ""
 "Added parameters argument to ST_Buffer operation to support one-sided "
@@ -1437,7 +3537,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:325
+#: release_notes.xml:865
 #, no-c-format
 msgid ""
 "Addition of other Distance related visualization and analysis functions "
@@ -1445,98 +3545,98 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:327
+#: release_notes.xml:867
 #, no-c-format
 msgid "ST_ClosestPoint"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:328
+#: release_notes.xml:868
 #, no-c-format
 msgid "ST_DFullyWithin"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:329
+#: release_notes.xml:869
 #, no-c-format
 msgid "ST_LongestLine"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:330
+#: release_notes.xml:870
 #, no-c-format
 msgid "ST_MaxDistance"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:331
+#: release_notes.xml:871
 #, no-c-format
 msgid "ST_ShortestLine"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:333
+#: release_notes.xml:873
 #, no-c-format
 msgid "ST_DumpPoints (Maxime van Noppen)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:334
+#: release_notes.xml:874
 #, no-c-format
 msgid "KML, GML input via ST_GeomFromGML and ST_GeomFromKML (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:335
+#: release_notes.xml:875
 #, no-c-format
 msgid "Extract homogeneous collection with ST_CollectionExtract (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:336
+#: release_notes.xml:876
 #, no-c-format
 msgid ""
 "Add measure values to an existing linestring with ST_AddMeasure (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:337
+#: release_notes.xml:877
 #, no-c-format
 msgid "History table implementation in utils (George Silva)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:338
+#: release_notes.xml:878
 #, no-c-format
 msgid "Geography type and supporting functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:340
+#: release_notes.xml:880
 #, no-c-format
 msgid "Spherical algorithms (Dave Skea)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:341
+#: release_notes.xml:881
 #, no-c-format
 msgid "Object/index implementation (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:342
+#: release_notes.xml:882
 #, no-c-format
 msgid "Selectivity implementation (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:343
+#: release_notes.xml:883
 #, no-c-format
 msgid "Serializations to KML, GML and JSON (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:344
+#: release_notes.xml:884
 #, no-c-format
 msgid ""
 "ST_Area, ST_Distance, ST_DWithin, ST_GeogFromText, ST_GeogFromWKB, "
@@ -1544,52 +3644,52 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:350
+#: release_notes.xml:890
 #, no-c-format
 msgid "Performance improvements to ST_Distance (Nicklas Aven)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:351
+#: release_notes.xml:891
 #, no-c-format
 msgid "Documentation updates and improvements (Regina Obe, Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:352
+#: release_notes.xml:892
 #, no-c-format
 msgid "Testing and quality control (Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:353
+#: release_notes.xml:893
 #, no-c-format
 msgid "PostGIS 1.5 support PostgreSQL 8.5 trunk (Guillaume Lelarge)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:354
+#: release_notes.xml:894
 #, no-c-format
 msgid "Win32 support and improvement of core shp2pgsql-gui (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:355
+#: release_notes.xml:895
 #, no-c-format
 msgid "In place 'make check' support (Paul Ramsey)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:359 release_notes.xml:425 release_notes.xml:610
-#: release_notes.xml:661 release_notes.xml:712 release_notes.xml:846
-#: release_notes.xml:912 release_notes.xml:1022 release_notes.xml:1129
-#: release_notes.xml:1249 release_notes.xml:1314 release_notes.xml:1361
+#: release_notes.xml:899 release_notes.xml:965 release_notes.xml:1150
+#: release_notes.xml:1201 release_notes.xml:1252 release_notes.xml:1386
+#: release_notes.xml:1452 release_notes.xml:1562 release_notes.xml:1669
+#: release_notes.xml:1789 release_notes.xml:1854 release_notes.xml:1901
 #, no-c-format
 msgid "Bug fixes"
 msgstr ""
 
 #. Tag: ulink
-#: release_notes.xml:360
+#: release_notes.xml:900
 #, no-c-format
 msgid ""
 "http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
@@ -1597,19 +3697,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:365
+#: release_notes.xml:905
 #, no-c-format
 msgid "Release 1.4.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:366
+#: release_notes.xml:906
 #, no-c-format
 msgid "Release date: 2009/07/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:367
+#: release_notes.xml:907
 #, no-c-format
 msgid ""
 "This release provides performance enhancements, improved internal structures "
@@ -1619,7 +3719,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:373
+#: release_notes.xml:913
 #, no-c-format
 msgid ""
 "As of the 1.4 release series, the public API of PostGIS will not change "
@@ -1627,31 +3727,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:378
+#: release_notes.xml:918
 #, no-c-format
 msgid "The versions below are the *minimum* requirements for PostGIS 1.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:379
+#: release_notes.xml:919
 #, no-c-format
 msgid "PostgreSQL 8.2 and higher on all platforms"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:380
+#: release_notes.xml:920
 #, no-c-format
 msgid "GEOS 3.0 and higher only"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:381
+#: release_notes.xml:921
 #, no-c-format
 msgid "PROJ4 4.5 and higher only"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:386
+#: release_notes.xml:926
 #, no-c-format
 msgid ""
 "ST_Union() uses high-speed cascaded union when compiled against GEOS 3.1+ "
@@ -1659,13 +3759,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:388
+#: release_notes.xml:928
 #, no-c-format
 msgid "ST_ContainsProperly() requires GEOS 3.1+"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:389
+#: release_notes.xml:929
 #, no-c-format
 msgid ""
 "ST_Intersects(), ST_Contains(), ST_Within() use high-speed cached prepared "
@@ -1673,7 +3773,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:390
+#: release_notes.xml:930
 #, no-c-format
 msgid ""
 "Vastly improved documentation and reference manual (Regina Obe & Kevin "
@@ -1681,13 +3781,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:391
+#: release_notes.xml:931
 #, no-c-format
 msgid "Figures and diagram examples in the reference manual (Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:392
+#: release_notes.xml:932
 #, no-c-format
 msgid ""
 "ST_IsValidReason() returns readable explanations for validity failures (Paul "
@@ -1695,26 +3795,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:393
+#: release_notes.xml:933
 #, no-c-format
 msgid ""
 "ST_GeoHash() returns a geohash.org signature for geometries (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:394
+#: release_notes.xml:934
 #, no-c-format
 msgid "GTK+ multi-platform GUI for shape file loading (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:395
+#: release_notes.xml:935
 #, no-c-format
 msgid "ST_LineCrossingDirection() returns crossing directions (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:396
+#: release_notes.xml:936
 #, no-c-format
 msgid ""
 "ST_LocateBetweenElevations() returns sub-string based on Z-ordinate. (Paul "
@@ -1722,7 +3822,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:397
+#: release_notes.xml:937
 #, no-c-format
 msgid ""
 "Geometry parser returns explicit error message about location of syntax "
@@ -1730,13 +3830,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:398
+#: release_notes.xml:938
 #, no-c-format
 msgid "ST_AsGeoJSON() return JSON formatted geometry (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:399
+#: release_notes.xml:939
 #, no-c-format
 msgid ""
 "Populate_Geometry_Columns() -- automatically add records to geometry_columns "
@@ -1744,7 +3844,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:400
+#: release_notes.xml:940
 #, no-c-format
 msgid ""
 "ST_MinimumBoundingCircle() -- returns the smallest circle polygon that can "
@@ -1752,7 +3852,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:405
+#: release_notes.xml:945
 #, no-c-format
 msgid ""
 "Core geometry system moved into independent library, liblwgeom. (Mark Cave-"
@@ -1760,7 +3860,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:406
+#: release_notes.xml:946
 #, no-c-format
 msgid ""
 "New build system uses PostgreSQL \"pgxs\" build bootstrapper. (Mark Cave-"
@@ -1768,13 +3868,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:407
+#: release_notes.xml:947
 #, no-c-format
 msgid "Debugging framework formalized and simplified. (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:408
+#: release_notes.xml:948
 #, no-c-format
 msgid ""
 "All build-time #defines generated at configure time and placed in headers "
@@ -1782,13 +3882,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:409
+#: release_notes.xml:949
 #, no-c-format
 msgid "Logging framework formalized and simplified (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:410
+#: release_notes.xml:950
 #, no-c-format
 msgid ""
 "Expanded and more stable support for CIRCULARSTRING, COMPOUNDCURVE and "
@@ -1797,31 +3897,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:411
+#: release_notes.xml:951
 #, no-c-format
 msgid "Improved support for OpenSolaris builds (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:412
+#: release_notes.xml:952
 #, no-c-format
 msgid "Improved support for MSVC builds (Mateusz Loskot)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:413
+#: release_notes.xml:953
 #, no-c-format
 msgid "Updated KML support (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:414
+#: release_notes.xml:954
 #, no-c-format
 msgid "Unit testing framework for liblwgeom (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:415
+#: release_notes.xml:955
 #, no-c-format
 msgid ""
 "New testing framework to comprehensively exercise every PostGIS function "
@@ -1829,21 +3929,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:416
+#: release_notes.xml:956
 #, no-c-format
 msgid ""
 "Performance improvements to all geometry aggregate functions (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:417
+#: release_notes.xml:957
 #, no-c-format
 msgid ""
 "Support for the upcoming PostgreSQL 8.4 (Mark Cave-Ayland, Talha Bin Rizwan)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:418
+#: release_notes.xml:958
 #, no-c-format
 msgid ""
 "Shp2pgsql and pgsql2shp re-worked to depend on the common parsing/unparsing "
@@ -1851,7 +3951,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:419
+#: release_notes.xml:959
 #, no-c-format
 msgid ""
 "Use of PDF DbLatex to build PDF docs and preliminary instructions for build "
@@ -1859,7 +3959,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:420
+#: release_notes.xml:960
 #, no-c-format
 msgid ""
 "Automated User documentation build (PDF and HTML) and Developer Doxygen "
@@ -1867,7 +3967,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:421
+#: release_notes.xml:961
 #, no-c-format
 msgid ""
 "Automated build of document images using ImageMagick from WKT geometry text "
@@ -1875,13 +3975,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:422
+#: release_notes.xml:962
 #, no-c-format
 msgid "More attractive CSS for HTML documentation (Dane Springmeyer)"
 msgstr ""
 
 #. Tag: ulink
-#: release_notes.xml:426
+#: release_notes.xml:966
 #, no-c-format
 msgid ""
 "http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
@@ -1889,19 +3989,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:431
+#: release_notes.xml:971
 #, no-c-format
 msgid "Release 1.3.6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:432
+#: release_notes.xml:972
 #, no-c-format
 msgid "Release date: 2009/05/04"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:433
+#: release_notes.xml:973
 #, no-c-format
 msgid ""
 "If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
@@ -1913,19 +4013,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:440
+#: release_notes.xml:980
 #, no-c-format
 msgid "Release 1.3.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:441
+#: release_notes.xml:981
 #, no-c-format
 msgid "Release date: 2008/12/15"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:442
+#: release_notes.xml:982
 #, no-c-format
 msgid ""
 "If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
@@ -1935,19 +4035,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:449
+#: release_notes.xml:989
 #, no-c-format
 msgid "Release 1.3.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:450
+#: release_notes.xml:990
 #, no-c-format
 msgid "Release date: 2008/11/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:451
+#: release_notes.xml:991
 #, no-c-format
 msgid ""
 "This release adds support for GeoJSON output, building with PostgreSQL 8.4, "
@@ -1957,7 +4057,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:456
+#: release_notes.xml:996
 #, no-c-format
 msgid ""
 "Bug fixes include removal of crashers in handling circular strings for many "
@@ -1966,19 +4066,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:463
+#: release_notes.xml:1003
 #, no-c-format
 msgid "Release 1.3.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:465
+#: release_notes.xml:1005
 #, no-c-format
 msgid "Release date: 2008/04/12"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:467
+#: release_notes.xml:1007
 #, no-c-format
 msgid ""
 "This release fixes bugs shp2pgsql, adds enhancements to SVG and KML support, "
@@ -1987,19 +4087,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:474
+#: release_notes.xml:1014
 #, no-c-format
 msgid "Release 1.3.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:476
+#: release_notes.xml:1016
 #, no-c-format
 msgid "Release date: 2007/12/01"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:478
+#: release_notes.xml:1018
 #, no-c-format
 msgid ""
 "This release fixes bugs in ST_EndPoint() and ST_Envelope, improves support "
@@ -2008,19 +4108,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:484
+#: release_notes.xml:1024
 #, no-c-format
 msgid "Release 1.3.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:486
+#: release_notes.xml:1026
 #, no-c-format
 msgid "Release date: 2007/08/13"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:488
+#: release_notes.xml:1028
 #, no-c-format
 msgid ""
 "This release fixes some oversights in the previous release around version "
@@ -2028,19 +4128,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:493
+#: release_notes.xml:1033
 #, no-c-format
 msgid "Release 1.3.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:495
+#: release_notes.xml:1035
 #, no-c-format
 msgid "Release date: 2007/08/09"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:497
+#: release_notes.xml:1037
 #, no-c-format
 msgid ""
 "This release provides performance enhancements to the relational functions, "
@@ -2049,19 +4149,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:503
+#: release_notes.xml:1043
 #, no-c-format
 msgid "Added Functionality"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:505
+#: release_notes.xml:1045
 #, no-c-format
 msgid "JDBC: Added Hibernate Dialect (thanks to Norman Barker)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:507
+#: release_notes.xml:1047
 #, no-c-format
 msgid ""
 "Added ST_Covers and ST_CoveredBy relational functions. Description and "
@@ -2072,19 +4172,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:511
+#: release_notes.xml:1051
 #, no-c-format
 msgid "Added ST_DWithin relational function."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:515
+#: release_notes.xml:1055
 #, no-c-format
 msgid "Performance Enhancements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:517
+#: release_notes.xml:1057
 #, no-c-format
 msgid ""
 "Added cached and indexed point-in-polygon short-circuits for the functions "
@@ -2092,20 +4192,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:520
+#: release_notes.xml:1060
 #, no-c-format
 msgid ""
 "Added inline index support for relational functions (except ST_Disjoint)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:525
+#: release_notes.xml:1065
 #, no-c-format
 msgid "Other Changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:527
+#: release_notes.xml:1067
 #, no-c-format
 msgid ""
 "Extended curved geometry support into the geometry accessor and some "
@@ -2113,7 +4213,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:530
+#: release_notes.xml:1070
 #, no-c-format
 msgid ""
 "Began migration of functions to the SQL-MM naming convention; using a "
@@ -2121,25 +4221,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:533
+#: release_notes.xml:1073
 #, no-c-format
 msgid "Added initial support for PostgreSQL 8.3"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:538
+#: release_notes.xml:1078
 #, no-c-format
 msgid "Release 1.2.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:540
+#: release_notes.xml:1080
 #, no-c-format
 msgid "Release date: 2007/01/11"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:542
+#: release_notes.xml:1082
 #, no-c-format
 msgid ""
 "This release provides bug fixes in PostgreSQL 8.2 support and some small "
@@ -2147,37 +4247,37 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:546 release_notes.xml:574 release_notes.xml:1796
+#: release_notes.xml:1086 release_notes.xml:1114 release_notes.xml:2336
 #, no-c-format
 msgid "Changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:548
+#: release_notes.xml:1088
 #, no-c-format
 msgid "Fixed point-in-polygon shortcut bug in Within()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:550
+#: release_notes.xml:1090
 #, no-c-format
 msgid "Fixed PostgreSQL 8.2 NULL handling for indexes."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:552
+#: release_notes.xml:1092
 #, no-c-format
 msgid "Updated RPM spec files."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:554
+#: release_notes.xml:1094
 #, no-c-format
 msgid "Added short-circuit for Transform() in no-op case."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:556
+#: release_notes.xml:1096
 #, no-c-format
 msgid ""
 "JDBC: Fixed JTS handling for multi-dimensional geometries (thanks to Thomas "
@@ -2187,19 +4287,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:565
+#: release_notes.xml:1105
 #, no-c-format
 msgid "Release 1.2.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:567
+#: release_notes.xml:1107
 #, no-c-format
 msgid "Release date: 2006/12/08"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:569
+#: release_notes.xml:1109
 #, no-c-format
 msgid ""
 "This release provides type definitions along with serialization/"
@@ -2208,13 +4308,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:576
+#: release_notes.xml:1116
 #, no-c-format
 msgid "Added curved geometry type support for serialization/deserialization"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:579
+#: release_notes.xml:1119
 #, no-c-format
 msgid ""
 "Added point-in-polygon shortcircuit to the Contains and Within functions to "
@@ -2222,19 +4322,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:585
+#: release_notes.xml:1125
 #, no-c-format
 msgid "Release 1.1.6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:587
+#: release_notes.xml:1127
 #, no-c-format
 msgid "Release date: 2006/11/02"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:589
+#: release_notes.xml:1129
 #, no-c-format
 msgid ""
 "This is a bugfix release, in particular fixing a critical error with GEOS "
@@ -2244,20 +4344,20 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:595 release_notes.xml:646 release_notes.xml:697
-#: release_notes.xml:752 release_notes.xml:831 release_notes.xml:897
-#: release_notes.xml:970 release_notes.xml:1114 release_notes.xml:1171
-#: release_notes.xml:1234 release_notes.xml:1292 release_notes.xml:1350
-#: release_notes.xml:1390 release_notes.xml:1442 release_notes.xml:1494
-#: release_notes.xml:1533 release_notes.xml:1570 release_notes.xml:1637
-#: release_notes.xml:1734 release_notes.xml:1788
+#: release_notes.xml:1135 release_notes.xml:1186 release_notes.xml:1237
+#: release_notes.xml:1292 release_notes.xml:1371 release_notes.xml:1437
+#: release_notes.xml:1510 release_notes.xml:1654 release_notes.xml:1711
+#: release_notes.xml:1774 release_notes.xml:1832 release_notes.xml:1890
+#: release_notes.xml:1930 release_notes.xml:1982 release_notes.xml:2034
+#: release_notes.xml:2073 release_notes.xml:2110 release_notes.xml:2177
+#: release_notes.xml:2274 release_notes.xml:2328
 #, no-c-format
 msgid "Upgrading"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:597 release_notes.xml:648 release_notes.xml:699
-#: release_notes.xml:754 release_notes.xml:833 release_notes.xml:899
+#: release_notes.xml:1137 release_notes.xml:1188 release_notes.xml:1239
+#: release_notes.xml:1294 release_notes.xml:1373 release_notes.xml:1439
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.3 or later follow the <link linkend="
@@ -2265,10 +4365,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:600 release_notes.xml:651 release_notes.xml:702
-#: release_notes.xml:757 release_notes.xml:836 release_notes.xml:902
-#: release_notes.xml:978 release_notes.xml:1119 release_notes.xml:1176
-#: release_notes.xml:1239
+#: release_notes.xml:1140 release_notes.xml:1191 release_notes.xml:1242
+#: release_notes.xml:1297 release_notes.xml:1376 release_notes.xml:1442
+#: release_notes.xml:1518 release_notes.xml:1659 release_notes.xml:1716
+#: release_notes.xml:1779
 #, no-c-format
 msgid ""
 "If you are upgrading from a release <emphasis>between 1.0.0RC6 and 1.0.2</"
@@ -2278,10 +4378,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:605 release_notes.xml:656 release_notes.xml:707
-#: release_notes.xml:762 release_notes.xml:841 release_notes.xml:907
-#: release_notes.xml:983 release_notes.xml:1124 release_notes.xml:1181
-#: release_notes.xml:1244
+#: release_notes.xml:1145 release_notes.xml:1196 release_notes.xml:1247
+#: release_notes.xml:1302 release_notes.xml:1381 release_notes.xml:1447
+#: release_notes.xml:1523 release_notes.xml:1664 release_notes.xml:1721
+#: release_notes.xml:1784
 #, no-c-format
 msgid ""
 "Upgrade from any release prior to 1.0.0RC6 requires an <link linkend="
@@ -2289,46 +4389,46 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:612
+#: release_notes.xml:1152
 #, no-c-format
 msgid "fixed CAPI change that broke 64-bit platforms"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:614
+#: release_notes.xml:1154
 #, no-c-format
 msgid "loader/dumper: fixed regression tests and usage output"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:616
+#: release_notes.xml:1156
 #, no-c-format
 msgid "Fixed setSRID() bug in JDBC, thanks to Thomas Marti"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:620 release_notes.xml:804 release_notes.xml:875
-#: release_notes.xml:1089 release_notes.xml:1215 release_notes.xml:1516
-#: release_notes.xml:1553 release_notes.xml:1605 release_notes.xml:1707
-#: release_notes.xml:1770
+#: release_notes.xml:1160 release_notes.xml:1344 release_notes.xml:1415
+#: release_notes.xml:1629 release_notes.xml:1755 release_notes.xml:2056
+#: release_notes.xml:2093 release_notes.xml:2145 release_notes.xml:2247
+#: release_notes.xml:2310
 #, no-c-format
 msgid "Other changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:622
+#: release_notes.xml:1162
 #, no-c-format
 msgid "use Z ordinate in reprojections"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:624
+#: release_notes.xml:1164
 #, no-c-format
 msgid "spatial_ref_sys.sql updated to EPSG 6.11.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:626
+#: release_notes.xml:1166
 #, no-c-format
 msgid ""
 "Simplified Version.config infrastructure to use a single pack of version "
@@ -2336,31 +4436,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:629
+#: release_notes.xml:1169
 #, no-c-format
 msgid "Include the Version.config in loader/dumper USAGE messages"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:632
+#: release_notes.xml:1172
 #, no-c-format
 msgid "Replace hand-made, fragile JDBC version parser with Properties"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:638
+#: release_notes.xml:1178
 #, no-c-format
 msgid "Release 1.1.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:640
+#: release_notes.xml:1180
 #, no-c-format
 msgid "Release date: 2006/10/13"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:642
+#: release_notes.xml:1182
 #, no-c-format
 msgid ""
 "This is an bugfix release, including a critical segfault on win32. Upgrade "
@@ -2368,7 +4468,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:663
+#: release_notes.xml:1203
 #, no-c-format
 msgid ""
 "Fixed MingW link error that was causing pgsql2shp to segfault on Win32 when "
@@ -2376,13 +4476,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:666
+#: release_notes.xml:1206
 #, no-c-format
 msgid "fixed nullpointer Exception in Geometry.equals() method in Java"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:669
+#: release_notes.xml:1209
 #, no-c-format
 msgid ""
 "Added EJB3Spatial.odt to fulfill the GPL requirement of distributing the "
@@ -2390,13 +4490,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:672
+#: release_notes.xml:1212
 #, no-c-format
 msgid "Removed obsolete synchronization from JDBC Jts code."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:674
+#: release_notes.xml:1214
 #, no-c-format
 msgid ""
 "Updated heavily outdated README files for shp2pgsql/pgsql2shp by merging "
@@ -2404,7 +4504,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:677
+#: release_notes.xml:1217
 #, no-c-format
 msgid ""
 "Fixed version tag in jdbc code that still said \"1.1.3\" in the \"1.1.4\" "
@@ -2412,25 +4512,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:684
+#: release_notes.xml:1224
 #, no-c-format
 msgid "Added -S option for non-multi geometries to shp2pgsql"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:689
+#: release_notes.xml:1229
 #, no-c-format
 msgid "Release 1.1.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:691
+#: release_notes.xml:1231
 #, no-c-format
 msgid "Release date: 2006/09/27"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:693
+#: release_notes.xml:1233
 #, no-c-format
 msgid ""
 "This is an bugfix release including some improvements in the Java interface. "
@@ -2438,43 +4538,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:714
+#: release_notes.xml:1254
 #, no-c-format
 msgid "Fixed support for PostgreSQL 8.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:716
+#: release_notes.xml:1256
 #, no-c-format
 msgid "Fixed bug in collect() function discarding SRID of input"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:718
+#: release_notes.xml:1258
 #, no-c-format
 msgid "Added SRID match check in MakeBox2d and MakeBox3d"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:720
+#: release_notes.xml:1260
 #, no-c-format
 msgid "Fixed regress tests to pass with GEOS-3.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:722
+#: release_notes.xml:1262
 #, no-c-format
 msgid "Improved pgsql2shp run concurrency."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:726
+#: release_notes.xml:1266
 #, no-c-format
 msgid "Java changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:728
+#: release_notes.xml:1268
 #, no-c-format
 msgid ""
 "reworked JTS support to reflect new upstream JTS developers' attitude to "
@@ -2482,7 +4582,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:732
+#: release_notes.xml:1272
 #, no-c-format
 msgid ""
 "Added EJB2 support generously donated by the \"Geodetix s.r.l. Company\" "
@@ -2490,7 +4590,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:735
+#: release_notes.xml:1275
 #, no-c-format
 msgid ""
 "Added EJB3 tutorial / examples donated by Norman Barker <nbarker at ittvis."
@@ -2498,25 +4598,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:738
+#: release_notes.xml:1278
 #, no-c-format
 msgid "Reorganized java directory layout a little."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:743
+#: release_notes.xml:1283
 #, no-c-format
 msgid "Release 1.1.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:745
+#: release_notes.xml:1285
 #, no-c-format
 msgid "Release date: 2006/06/30"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:747
+#: release_notes.xml:1287
 #, no-c-format
 msgid ""
 "This is an bugfix release including also some new functionalities (most "
@@ -2525,37 +4625,37 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:767
+#: release_notes.xml:1307
 #, no-c-format
 msgid "Bug fixes / correctness"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:769
+#: release_notes.xml:1309
 #, no-c-format
 msgid "BUGFIX in distance(poly,poly) giving wrong results."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:771
+#: release_notes.xml:1311
 #, no-c-format
 msgid "BUGFIX in pgsql2shp successful return code."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:773
+#: release_notes.xml:1313
 #, no-c-format
 msgid "BUGFIX in shp2pgsql handling of MultiLine WKT."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:775
+#: release_notes.xml:1315
 #, no-c-format
 msgid "BUGFIX in affine() failing to update bounding box."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:777
+#: release_notes.xml:1317
 #, no-c-format
 msgid ""
 "WKT parser: forbidden construction of multigeometries with EMPTY elements "
@@ -2563,49 +4663,49 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:782 release_notes.xml:858 release_notes.xml:931
+#: release_notes.xml:1322 release_notes.xml:1398 release_notes.xml:1471
 #, no-c-format
 msgid "New functionalities"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:784
+#: release_notes.xml:1324
 #, no-c-format
 msgid "NEW Long Transactions support."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:786
+#: release_notes.xml:1326
 #, no-c-format
 msgid "NEW DumpRings() function."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:788
+#: release_notes.xml:1328
 #, no-c-format
 msgid "NEW AsHEXEWKB(geom, XDR|NDR) function."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:792 release_notes.xml:1683
+#: release_notes.xml:1332 release_notes.xml:2223
 #, no-c-format
 msgid "JDBC changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:794
+#: release_notes.xml:1334
 #, no-c-format
 msgid "Improved regression tests: MultiPoint and scientific ordinates"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:797
+#: release_notes.xml:1337
 #, no-c-format
 msgid "Fixed some minor bugs in jdbc code"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:799
+#: release_notes.xml:1339
 #, no-c-format
 msgid ""
 "Added proper accessor functions for all fields in preparation of making "
@@ -2613,55 +4713,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:806
+#: release_notes.xml:1346
 #, no-c-format
 msgid "NEW regress test support for loader/dumper."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:808
+#: release_notes.xml:1348
 #, no-c-format
 msgid "Added --with-proj-libdir and --with-geos-libdir configure switches."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:811
+#: release_notes.xml:1351
 #, no-c-format
 msgid "Support for build Tru64 build."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:813
+#: release_notes.xml:1353
 #, no-c-format
 msgid "Use Jade for generating documentation."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:815
+#: release_notes.xml:1355
 #, no-c-format
 msgid "Don't link pgsql2shp to more libs then required."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:817
+#: release_notes.xml:1357
 #, no-c-format
 msgid "Initial support for PostgreSQL 8.2."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:822
+#: release_notes.xml:1362
 #, no-c-format
 msgid "Release 1.1.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:824
+#: release_notes.xml:1364
 #, no-c-format
 msgid "Release date: 2006/03/30"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:826
+#: release_notes.xml:1366
 #, no-c-format
 msgid ""
 "This is an bugfix release including some new functions and portability "
@@ -2669,55 +4769,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:848
+#: release_notes.xml:1388
 #, no-c-format
 msgid "BUGFIX in SnapToGrid() computation of output bounding box"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:850
+#: release_notes.xml:1390
 #, no-c-format
 msgid "BUGFIX in EnforceRHR()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:852
+#: release_notes.xml:1392
 #, no-c-format
 msgid "jdbc2 SRID handling fixes in JTS code"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:854
+#: release_notes.xml:1394
 #, no-c-format
 msgid "Fixed support for 64bit archs"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:860
+#: release_notes.xml:1400
 #, no-c-format
 msgid "Regress tests can now be run *before* postgis installation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:863
+#: release_notes.xml:1403
 #, no-c-format
 msgid "New affine() matrix transformation functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:865
+#: release_notes.xml:1405
 #, no-c-format
 msgid "New rotate{,X,Y,Z}() function"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:867
+#: release_notes.xml:1407
 #, no-c-format
 msgid "Old translating and scaling functions now use affine() internally"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:870
+#: release_notes.xml:1410
 #, no-c-format
 msgid ""
 "Embedded access control in estimated_extent() for builds against pgsql >= "
@@ -2725,31 +4825,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:877
+#: release_notes.xml:1417
 #, no-c-format
 msgid "More portable ./configure script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:879
+#: release_notes.xml:1419
 #, no-c-format
 msgid "Changed ./run_test script to have more sane default behaviour"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:885
+#: release_notes.xml:1425
 #, no-c-format
 msgid "Release 1.1.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:887
+#: release_notes.xml:1427
 #, no-c-format
 msgid "Release date: 2006/01/23"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:889
+#: release_notes.xml:1429
 #, no-c-format
 msgid ""
 "This is an important Bugfix release, upgrade is <emphasis>highly "
@@ -2760,79 +4860,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:914
+#: release_notes.xml:1454
 #, no-c-format
 msgid "Fixed a premature exit in postgis_restore.pl"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:916
+#: release_notes.xml:1456
 #, no-c-format
 msgid "BUGFIX in geometrycollection handling of GEOS-CAPI connector"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:919
+#: release_notes.xml:1459
 #, no-c-format
 msgid "Solaris 2.7 and MingW support improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:921
+#: release_notes.xml:1461
 #, no-c-format
 msgid "BUGFIX in line_locate_point()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:923
+#: release_notes.xml:1463
 #, no-c-format
 msgid "Fixed handling of postgresql paths"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:925
+#: release_notes.xml:1465
 #, no-c-format
 msgid "BUGFIX in line_substring()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:927
+#: release_notes.xml:1467
 #, no-c-format
 msgid "Added support for localized cluster in regress tester"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:933
+#: release_notes.xml:1473
 #, no-c-format
 msgid "New Z and M interpolation in line_substring()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:935
+#: release_notes.xml:1475
 #, no-c-format
 msgid "New Z and M interpolation in line_interpolate_point()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:937
+#: release_notes.xml:1477
 #, no-c-format
 msgid "added NumInteriorRing() alias due to OpenGIS ambiguity"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:942
+#: release_notes.xml:1482
 #, no-c-format
 msgid "Release 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:944
+#: release_notes.xml:1484
 #, no-c-format
 msgid "Release date: 2005/12/21"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:946
+#: release_notes.xml:1486
 #, no-c-format
 msgid ""
 "This is a Minor release, containing many improvements and new things. Most "
@@ -2842,7 +4942,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:951
+#: release_notes.xml:1491
 #, no-c-format
 msgid ""
 "It is <emphasis>highly recommended</emphasis> that you upgrade to GEOS-2.2.x "
@@ -2851,13 +4951,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:956
+#: release_notes.xml:1496
 #, no-c-format
 msgid "Credits"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:958
+#: release_notes.xml:1498
 #, no-c-format
 msgid ""
 "This release includes code from Mark Cave Ayland for caching of proj4 "
@@ -2867,11 +4967,11 @@ msgid ""
 "Gerald Fenoy helped testing GEOS C-API connector. Hartmut Tschauner provided "
 "code for the azimuth() function. Devrim GUNDUZ provided RPM specfiles. Carl "
 "Anderson helped with the new area building functions. See the <link linkend="
-"\"credits\">credits</link> section for more names."
+"\"credits_other_contributors\">credits</link> section for more names."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:972
+#: release_notes.xml:1512
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
@@ -2881,115 +4981,115 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:988
+#: release_notes.xml:1528
 #, no-c-format
 msgid "New functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:990
+#: release_notes.xml:1530
 #, no-c-format
 msgid "scale() and transscale() companion methods to translate()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:992
+#: release_notes.xml:1532
 #, no-c-format
 msgid "line_substring()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:994
+#: release_notes.xml:1534
 #, no-c-format
 msgid "line_locate_point()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:996
+#: release_notes.xml:1536
 #, no-c-format
 msgid "M(point)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:998
+#: release_notes.xml:1538
 #, no-c-format
 msgid "LineMerge(geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1000
+#: release_notes.xml:1540
 #, no-c-format
 msgid "shift_longitude(geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1002
+#: release_notes.xml:1542
 #, no-c-format
 msgid "azimuth(geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1004
+#: release_notes.xml:1544
 #, no-c-format
 msgid "locate_along_measure(geometry, float8)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1006
+#: release_notes.xml:1546
 #, no-c-format
 msgid "locate_between_measures(geometry, float8, float8)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1008
+#: release_notes.xml:1548
 #, no-c-format
 msgid "SnapToGrid by point offset (up to 4d support)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1010
+#: release_notes.xml:1550
 #, no-c-format
 msgid "BuildArea(any_geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1012
+#: release_notes.xml:1552
 #, no-c-format
 msgid "OGC BdPolyFromText(linestring_wkt, srid)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1014
+#: release_notes.xml:1554
 #, no-c-format
 msgid "OGC BdMPolyFromText(linestring_wkt, srid)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1016
+#: release_notes.xml:1556
 #, no-c-format
 msgid "RemovePoint(linestring, offset)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1018
+#: release_notes.xml:1558
 #, no-c-format
 msgid "ReplacePoint(linestring, offset, point)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1024
+#: release_notes.xml:1564
 #, no-c-format
 msgid "Fixed memory leak in polygonize()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1026
+#: release_notes.xml:1566
 #, no-c-format
 msgid "Fixed bug in lwgeom_as_anytype cast functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1028
+#: release_notes.xml:1568
 #, no-c-format
 msgid ""
 "Fixed USE_GEOS, USE_PROJ and USE_STATS elements of postgis_version() output "
@@ -2997,38 +5097,38 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1033
+#: release_notes.xml:1573
 #, no-c-format
 msgid "Function semantic changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1035
+#: release_notes.xml:1575
 #, no-c-format
 msgid "SnapToGrid doesn't discard higher dimensions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1037
+#: release_notes.xml:1577
 #, no-c-format
 msgid ""
 "Changed Z() function to return NULL if requested dimension is not available"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1042
+#: release_notes.xml:1582
 #, no-c-format
 msgid "Performance improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1044
+#: release_notes.xml:1584
 #, no-c-format
 msgid "Much faster transform() function, caching proj4 objects"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1046
+#: release_notes.xml:1586
 #, no-c-format
 msgid ""
 "Removed automatic call to fix_geometry_columns() in AddGeometryColumns() and "
@@ -3036,152 +5136,152 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1051
+#: release_notes.xml:1591
 #, no-c-format
 msgid "JDBC2 works"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1053
+#: release_notes.xml:1593
 #, no-c-format
 msgid "Makefile improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1055 release_notes.xml:1091
+#: release_notes.xml:1595 release_notes.xml:1631
 #, no-c-format
 msgid "JTS support improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1057
+#: release_notes.xml:1597
 #, no-c-format
 msgid "Improved regression test system"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1059
+#: release_notes.xml:1599
 #, no-c-format
 msgid "Basic consistency check method for geometry collections"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1061
+#: release_notes.xml:1601
 #, no-c-format
 msgid "Support for (Hex)(E)wkb"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1063
+#: release_notes.xml:1603
 #, no-c-format
 msgid "Autoprobing DriverWrapper for HexWKB / EWKT switching"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1065
+#: release_notes.xml:1605
 #, no-c-format
 msgid "fix compile problems in ValueSetter for ancient jdk releases."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1068
+#: release_notes.xml:1608
 #, no-c-format
 msgid "fix EWKT constructors to accept SRID=4711; representation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1070
+#: release_notes.xml:1610
 #, no-c-format
 msgid "added preliminary read-only support for java2d geometries"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1074
+#: release_notes.xml:1614
 #, no-c-format
 msgid "Other new things"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1076
+#: release_notes.xml:1616
 #, no-c-format
 msgid ""
 "Full autoconf-based configuration, with PostgreSQL source dependency relief"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1079
+#: release_notes.xml:1619
 #, no-c-format
 msgid "GEOS C-API support (2.2.0 and higher)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1081
+#: release_notes.xml:1621
 #, no-c-format
 msgid "Initial support for topology modelling"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1083
+#: release_notes.xml:1623
 #, no-c-format
 msgid "Debian and RPM specfiles"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1085
+#: release_notes.xml:1625
 #, no-c-format
 msgid "New lwpostgis_upgrade.sql script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1093
+#: release_notes.xml:1633
 #, no-c-format
 msgid "Stricter mapping between DBF and SQL integer and string attributes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1096
+#: release_notes.xml:1636
 #, no-c-format
 msgid "Wider and cleaner regression test suite"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1098
+#: release_notes.xml:1638
 #, no-c-format
 msgid "old jdbc code removed from release"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1100
+#: release_notes.xml:1640
 #, no-c-format
 msgid "obsoleted direct use of postgis_proc_upgrade.pl"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1102
+#: release_notes.xml:1642
 #, no-c-format
 msgid "scripts version unified with release version"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1107
+#: release_notes.xml:1647
 #, no-c-format
 msgid "Release 1.0.6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1109
+#: release_notes.xml:1649
 #, no-c-format
 msgid "Release date: 2005/12/06"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1111 release_notes.xml:1347
+#: release_notes.xml:1651 release_notes.xml:1887
 #, no-c-format
 msgid "Contains a few bug fixes and improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1116 release_notes.xml:1173
+#: release_notes.xml:1656 release_notes.xml:1713
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
@@ -3189,7 +5289,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1131
+#: release_notes.xml:1671
 #, no-c-format
 msgid ""
 "Fixed palloc(0) call in collection deserializer (only gives problem with --"
@@ -3197,74 +5297,74 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1134
+#: release_notes.xml:1674
 #, no-c-format
 msgid "Fixed bbox cache handling bugs"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1136
+#: release_notes.xml:1676
 #, no-c-format
 msgid "Fixed geom_accum(NULL, NULL) segfault"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1138
+#: release_notes.xml:1678
 #, no-c-format
 msgid "Fixed segfault in addPoint()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1140
+#: release_notes.xml:1680
 #, no-c-format
 msgid "Fixed short-allocation in lwcollection_clone()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1142
+#: release_notes.xml:1682
 #, no-c-format
 msgid "Fixed bug in segmentize()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1144
+#: release_notes.xml:1684
 #, no-c-format
 msgid "Fixed bbox computation of SnapToGrid output"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1148 release_notes.xml:1266 release_notes.xml:1328
-#: release_notes.xml:1374
+#: release_notes.xml:1688 release_notes.xml:1806 release_notes.xml:1868
+#: release_notes.xml:1914
 #, no-c-format
 msgid "Improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1150
+#: release_notes.xml:1690
 #, no-c-format
 msgid "Initial support for postgresql 8.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1152
+#: release_notes.xml:1692
 #, no-c-format
 msgid "Added missing SRID mismatch checks in GEOS ops"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1157
+#: release_notes.xml:1697
 #, no-c-format
 msgid "Release 1.0.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1159
+#: release_notes.xml:1699
 #, no-c-format
 msgid "Release date: 2005/11/25"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1161
+#: release_notes.xml:1701
 #, no-c-format
 msgid ""
 "Contains memory-alignment fixes in the library, a segfault fix in loader's "
@@ -3272,7 +5372,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1166
+#: release_notes.xml:1706
 #, no-c-format
 msgid ""
 "Return code of shp2pgsql changed from previous releases to conform to unix "
@@ -3280,99 +5380,99 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1186 release_notes.xml:1401 release_notes.xml:1453
-#: release_notes.xml:1502 release_notes.xml:1544 release_notes.xml:1578
-#: release_notes.xml:1645 release_notes.xml:1742
+#: release_notes.xml:1726 release_notes.xml:1941 release_notes.xml:1993
+#: release_notes.xml:2042 release_notes.xml:2084 release_notes.xml:2118
+#: release_notes.xml:2185 release_notes.xml:2282
 #, no-c-format
 msgid "Library changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1188
+#: release_notes.xml:1728
 #, no-c-format
 msgid "Fixed memory alignment problems"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1190
+#: release_notes.xml:1730
 #, no-c-format
 msgid "Fixed computation of null values fraction in analyzer"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1192
+#: release_notes.xml:1732
 #, no-c-format
 msgid "Fixed a small bug in the getPoint4d_p() low-level function"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1195
+#: release_notes.xml:1735
 #, no-c-format
 msgid "Speedup of serializer functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1197
+#: release_notes.xml:1737
 #, no-c-format
 msgid "Fixed a bug in force_3dm(), force_3dz() and force_4d()"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1201
+#: release_notes.xml:1741
 #, no-c-format
 msgid "Loader changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1203
+#: release_notes.xml:1743
 #, no-c-format
 msgid "Fixed return code of shp2pgsql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1205
+#: release_notes.xml:1745
 #, no-c-format
 msgid "Fixed back-compatibility issue in loader (load of null shapefiles)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1208
+#: release_notes.xml:1748
 #, no-c-format
 msgid "Fixed handling of trailing dots in dbf numerical attributes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1211
+#: release_notes.xml:1751
 #, no-c-format
 msgid "Segfault fix in shp2pgsql (utf8 encoding)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1217
+#: release_notes.xml:1757
 #, no-c-format
 msgid "Schema aware postgis_proc_upgrade.pl, support for pgsql 7.2+"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1220
+#: release_notes.xml:1760
 #, no-c-format
 msgid "New \"Reporting Bugs\" chapter in manual"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1225
+#: release_notes.xml:1765
 #, no-c-format
 msgid "Release 1.0.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1227
+#: release_notes.xml:1767
 #, no-c-format
 msgid "Release date: 2005/09/09"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1229
+#: release_notes.xml:1769
 #, no-c-format
 msgid ""
 "Contains important bug fixes and a few improvements. In particular, it fixes "
@@ -3381,7 +5481,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1236
+#: release_notes.xml:1776
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.3 you <emphasis>DO NOT</emphasis> need "
@@ -3389,25 +5489,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1251
+#: release_notes.xml:1791
 #, no-c-format
 msgid "Memory leak plugged in GiST indexing"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1253
+#: release_notes.xml:1793
 #, no-c-format
 msgid "Segfault fix in transform() handling of proj4 errors"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1255
+#: release_notes.xml:1795
 #, no-c-format
 msgid "Fixed some proj4 texts in spatial_ref_sys (missing +proj)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1257
+#: release_notes.xml:1797
 #, no-c-format
 msgid ""
 "Loader: fixed string functions usage, reworked NULL objects check, fixed "
@@ -3415,67 +5515,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1260
+#: release_notes.xml:1800
 #, no-c-format
 msgid "Fixed bug in MakeLine dimension handling"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1262
+#: release_notes.xml:1802
 #, no-c-format
 msgid "Fixed bug in translate() corrupting output bounding box"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1268
+#: release_notes.xml:1808
 #, no-c-format
 msgid "Documentation improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1270
+#: release_notes.xml:1810
 #, no-c-format
 msgid "More robust selectivity estimator"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1272
+#: release_notes.xml:1812
 #, no-c-format
 msgid "Minor speedup in distance()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1274
+#: release_notes.xml:1814
 #, no-c-format
 msgid "Minor cleanups"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1276
+#: release_notes.xml:1816
 #, no-c-format
 msgid "GiST indexing cleanup"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1278
+#: release_notes.xml:1818
 #, no-c-format
 msgid "Looser syntax acceptance in box3d parser"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1283
+#: release_notes.xml:1823
 #, no-c-format
 msgid "Release 1.0.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1285
+#: release_notes.xml:1825
 #, no-c-format
 msgid "Release date: 2005/08/08"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1287
+#: release_notes.xml:1827
 #, no-c-format
 msgid ""
 "Contains some bug fixes - <emphasis>including a severe one affecting "
@@ -3483,7 +5583,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1294
+#: release_notes.xml:1834
 #, no-c-format
 msgid ""
 "Due to a bug in a bounding box computation routine, the upgrade procedure "
@@ -3492,7 +5592,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1298
+#: release_notes.xml:1838
 #, no-c-format
 msgid ""
 "An <link linkend=\"hard_upgrade\">hard upgrade</link> procedure (dump/"
@@ -3502,7 +5602,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1303
+#: release_notes.xml:1843
 #, no-c-format
 msgid ""
 "If you are upgrading from versions 1.0.0RC6 or up, this release includes a "
@@ -3516,79 +5616,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1316
+#: release_notes.xml:1856
 #, no-c-format
 msgid "Severe bugfix in lwgeom's 2d bounding box computation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1318
+#: release_notes.xml:1858
 #, no-c-format
 msgid "Bugfix in WKT (-w) POINT handling in loader"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1320
+#: release_notes.xml:1860
 #, no-c-format
 msgid "Bugfix in dumper on 64bit machines"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1322
+#: release_notes.xml:1862
 #, no-c-format
 msgid "Bugfix in dumper handling of user-defined queries"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1324
+#: release_notes.xml:1864
 #, no-c-format
 msgid "Bugfix in create_undef.pl script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1330
+#: release_notes.xml:1870
 #, no-c-format
 msgid "Small performance improvement in canonical input function"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1332
+#: release_notes.xml:1872
 #, no-c-format
 msgid "Minor cleanups in loader"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1334
+#: release_notes.xml:1874
 #, no-c-format
 msgid "Support for multibyte field names in loader"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1336
+#: release_notes.xml:1876
 #, no-c-format
 msgid "Improvement in the postgis_restore.pl script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1338
+#: release_notes.xml:1878
 #, no-c-format
 msgid "New rebuild_bbox_caches.pl util script"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1343
+#: release_notes.xml:1883
 #, no-c-format
 msgid "Release 1.0.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1345
+#: release_notes.xml:1885
 #, no-c-format
 msgid "Release date: 2005/07/04"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1352 release_notes.xml:1392
+#: release_notes.xml:1892 release_notes.xml:1932
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.0RC6 or up you <emphasis>DO NOT</"
@@ -3596,7 +5696,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1355 release_notes.xml:1395
+#: release_notes.xml:1895 release_notes.xml:1935
 #, no-c-format
 msgid ""
 "Upgrading from older releases requires a dump/reload. See the <link linkend="
@@ -3604,145 +5704,145 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1363
+#: release_notes.xml:1903
 #, no-c-format
 msgid "Fault tolerant btree ops"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1365
+#: release_notes.xml:1905
 #, no-c-format
 msgid "Memory leak plugged in pg_error"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1367
+#: release_notes.xml:1907
 #, no-c-format
 msgid "Rtree index fix"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1369
+#: release_notes.xml:1909
 #, no-c-format
 msgid "Cleaner build scripts (avoided mix of CFLAGS and CXXFLAGS)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1376
+#: release_notes.xml:1916
 #, no-c-format
 msgid "New index creation capabilities in loader (-I switch)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1378
+#: release_notes.xml:1918
 #, no-c-format
 msgid "Initial support for postgresql 8.1dev"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1383
+#: release_notes.xml:1923
 #, no-c-format
 msgid "Release 1.0.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1385
+#: release_notes.xml:1925
 #, no-c-format
 msgid "Release date: 2005/05/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1387
+#: release_notes.xml:1927
 #, no-c-format
 msgid "Contains a few bug fixes and some improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1403
+#: release_notes.xml:1943
 #, no-c-format
 msgid "BUGFIX in 3d computation of length_spheroid()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1405
+#: release_notes.xml:1945
 #, no-c-format
 msgid "BUGFIX in join selectivity estimator"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1409 release_notes.xml:1465
+#: release_notes.xml:1949 release_notes.xml:2005
 #, no-c-format
 msgid "Other changes/additions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1411
+#: release_notes.xml:1951
 #, no-c-format
 msgid "BUGFIX in shp2pgsql escape functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1413
+#: release_notes.xml:1953
 #, no-c-format
 msgid "better support for concurrent postgis in multiple schemas"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1415
+#: release_notes.xml:1955
 #, no-c-format
 msgid "documentation fixes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1417
+#: release_notes.xml:1957
 #, no-c-format
 msgid "jdbc2: compile with \"-target 1.2 -source 1.2\" by default"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1419
+#: release_notes.xml:1959
 #, no-c-format
 msgid "NEW -k switch for pgsql2shp"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1421
+#: release_notes.xml:1961
 #, no-c-format
 msgid "NEW support for custom createdb options in postgis_restore.pl"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1424
+#: release_notes.xml:1964
 #, no-c-format
 msgid "BUGFIX in pgsql2shp attribute names unicity enforcement"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1426
+#: release_notes.xml:1966
 #, no-c-format
 msgid "BUGFIX in Paris projections definitions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1428
+#: release_notes.xml:1968
 #, no-c-format
 msgid "postgis_restore.pl cleanups"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1433
+#: release_notes.xml:1973
 #, no-c-format
 msgid "Release 1.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1435
+#: release_notes.xml:1975
 #, no-c-format
 msgid "Release date: 2005/04/19"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1437
+#: release_notes.xml:1977
 #, no-c-format
 msgid ""
 "Final 1.0.0 release. Contains a few bug fixes, some improvements in the "
@@ -3750,7 +5850,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1444
+#: release_notes.xml:1984
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.0RC6 you <emphasis>DO NOT</emphasis> "
@@ -3758,7 +5858,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1447 release_notes.xml:1538
+#: release_notes.xml:1987 release_notes.xml:2078
 #, no-c-format
 msgid ""
 "Upgrading from any other precedent release requires a dump/reload. See the "
@@ -3766,87 +5866,87 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1455
+#: release_notes.xml:1995
 #, no-c-format
 msgid "BUGFIX in transform() releasing random memory address"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1457
+#: release_notes.xml:1997
 #, no-c-format
 msgid "BUGFIX in force_3dm() allocating less memory then required"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1460
+#: release_notes.xml:2000
 #, no-c-format
 msgid "BUGFIX in join selectivity estimator (defaults, leaks, tuplecount, sd)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1467
+#: release_notes.xml:2007
 #, no-c-format
 msgid "BUGFIX in shp2pgsql escape of values starting with tab or single-quote"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1470
+#: release_notes.xml:2010
 #, no-c-format
 msgid "NEW manual pages for loader/dumper"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1472
+#: release_notes.xml:2012
 #, no-c-format
 msgid "NEW shp2pgsql support for old (HWGEOM) postgis versions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1474
+#: release_notes.xml:2014
 #, no-c-format
 msgid "NEW -p (prepare) flag for shp2pgsql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1476
+#: release_notes.xml:2016
 #, no-c-format
 msgid "NEW manual chapter about OGC compliancy enforcement"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1478
+#: release_notes.xml:2018
 #, no-c-format
 msgid "NEW autoconf support for JTS lib"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1480
+#: release_notes.xml:2020
 #, no-c-format
 msgid "BUGFIX in estimator testers (support for LWGEOM and schema parsing)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1486
+#: release_notes.xml:2026
 #, no-c-format
 msgid "Release 1.0.0RC6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1488
+#: release_notes.xml:2028
 #, no-c-format
 msgid "Release date: 2005/03/30"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1490
+#: release_notes.xml:2030
 #, no-c-format
 msgid ""
 "Sixth release candidate for 1.0.0. Contains a few bug fixes and cleanups."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1496 release_notes.xml:1572 release_notes.xml:1639
-#: release_notes.xml:1736 release_notes.xml:1790
+#: release_notes.xml:2036 release_notes.xml:2112 release_notes.xml:2179
+#: release_notes.xml:2276 release_notes.xml:2330
 #, no-c-format
 msgid ""
 "You need a dump/reload to upgrade from precedent releases. See the <link "
@@ -3854,56 +5954,56 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1504
+#: release_notes.xml:2044
 #, no-c-format
 msgid "BUGFIX in multi()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1506
+#: release_notes.xml:2046
 #, no-c-format
 msgid "early return [when noop] from multi()"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1510 release_notes.xml:1596 release_notes.xml:1669
-#: release_notes.xml:1761
+#: release_notes.xml:2050 release_notes.xml:2136 release_notes.xml:2209
+#: release_notes.xml:2301
 #, no-c-format
 msgid "Scripts changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1512
+#: release_notes.xml:2052
 #, no-c-format
 msgid "dropped {x,y}{min,max}(box2d) functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1518
+#: release_notes.xml:2058
 #, no-c-format
 msgid "BUGFIX in postgis_restore.pl scrip"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1520
+#: release_notes.xml:2060
 #, no-c-format
 msgid "BUGFIX in dumper's 64bit support"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1525
+#: release_notes.xml:2065
 #, no-c-format
 msgid "Release 1.0.0RC5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1527
+#: release_notes.xml:2067
 #, no-c-format
 msgid "Release date: 2005/03/25"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1529
+#: release_notes.xml:2069
 #, no-c-format
 msgid ""
 "Fifth release candidate for 1.0.0. Contains a few bug fixes and a "
@@ -3911,7 +6011,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1535
+#: release_notes.xml:2075
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.0RC4 you <emphasis>DO NOT</emphasis> "
@@ -3919,43 +6019,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1546
+#: release_notes.xml:2086
 #, no-c-format
 msgid "BUGFIX (segfaulting) in box3d computation (yes, another!)."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1549
+#: release_notes.xml:2089
 #, no-c-format
 msgid "BUGFIX (segfaulting) in estimated_extent()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1555
+#: release_notes.xml:2095
 #, no-c-format
 msgid "Small build scripts and utilities refinements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1557
+#: release_notes.xml:2097
 #, no-c-format
 msgid "Additional performance tips documented."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1562
+#: release_notes.xml:2102
 #, no-c-format
 msgid "Release 1.0.0RC4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1564
+#: release_notes.xml:2104
 #, no-c-format
 msgid "Release date: 2005/03/18"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1566
+#: release_notes.xml:2106
 #, no-c-format
 msgid ""
 "Fourth release candidate for 1.0.0. Contains bug fixes and a few "
@@ -3963,80 +6063,80 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1580
+#: release_notes.xml:2120
 #, no-c-format
 msgid "BUGFIX (segfaulting) in geom_accum()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1582
+#: release_notes.xml:2122
 #, no-c-format
 msgid "BUGFIX in 64bit architectures support."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1584
+#: release_notes.xml:2124
 #, no-c-format
 msgid "BUGFIX in box3d computation function with collections."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1586
+#: release_notes.xml:2126
 #, no-c-format
 msgid "NEW subselects support in selectivity estimator."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1588
+#: release_notes.xml:2128
 #, no-c-format
 msgid "Early return from force_collection."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1590
+#: release_notes.xml:2130
 #, no-c-format
 msgid "Consistency check fix in SnapToGrid()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1592
+#: release_notes.xml:2132
 #, no-c-format
 msgid "Box2d output changed back to 15 significant digits."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1598
+#: release_notes.xml:2138
 #, no-c-format
 msgid "NEW distance_sphere() function."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1600
+#: release_notes.xml:2140
 #, no-c-format
 msgid ""
 "Changed get_proj4_from_srid implementation to use PL/PGSQL instead of SQL."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1607
+#: release_notes.xml:2147
 #, no-c-format
 msgid "BUGFIX in loader and dumper handling of MultiLine shapes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1609
+#: release_notes.xml:2149
 #, no-c-format
 msgid "BUGFIX in loader, skipping all but first hole of polygons."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1612
+#: release_notes.xml:2152
 #, no-c-format
 msgid "jdbc2: code cleanups, Makefile improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1614
+#: release_notes.xml:2154
 #, no-c-format
 msgid ""
 "FLEX and YACC variables set *after* pgsql Makefile.global is included and "
@@ -4044,62 +6144,62 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1618
+#: release_notes.xml:2158
 #, no-c-format
 msgid "Added already generated parser in release"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1620
+#: release_notes.xml:2160
 #, no-c-format
 msgid "Build scripts refinements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1622
+#: release_notes.xml:2162
 #, no-c-format
 msgid "improved version handling, central Version.config"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1624
+#: release_notes.xml:2164
 #, no-c-format
 msgid "improvements in postgis_restore.pl"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1629
+#: release_notes.xml:2169
 #, no-c-format
 msgid "Release 1.0.0RC3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1631
+#: release_notes.xml:2171
 #, no-c-format
 msgid "Release date: 2005/02/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1633
+#: release_notes.xml:2173
 #, no-c-format
 msgid ""
 "Third release candidate for 1.0.0. Contains many bug fixes and improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1647
+#: release_notes.xml:2187
 #, no-c-format
 msgid "BUGFIX in transform(): missing SRID, better error handling."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1650
+#: release_notes.xml:2190
 #, no-c-format
 msgid "BUGFIX in memory alignment handling"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1652
+#: release_notes.xml:2192
 #, no-c-format
 msgid ""
 "BUGFIX in force_collection() causing mapserver connector failures on simple "
@@ -4107,43 +6207,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1655
+#: release_notes.xml:2195
 #, no-c-format
 msgid "BUGFIX in GeometryFromText() missing to add a bbox cache."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1657
+#: release_notes.xml:2197
 #, no-c-format
 msgid "reduced precision of box2d output."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1659
+#: release_notes.xml:2199
 #, no-c-format
 msgid "prefixed DEBUG macros with PGIS_ to avoid clash with pgsql one"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1662
+#: release_notes.xml:2202
 #, no-c-format
 msgid "plugged a leak in GEOS2POSTGIS converter"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1664
+#: release_notes.xml:2204
 #, no-c-format
 msgid "Reduced memory usage by early releasing query-context palloced one."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1671
+#: release_notes.xml:2211
 #, no-c-format
 msgid "BUGFIX in 72 index bindings."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1673
+#: release_notes.xml:2213
 #, no-c-format
 msgid ""
 "BUGFIX in probe_geometry_columns() to work with PG72 and support multiple "
@@ -4151,31 +6251,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1676
+#: release_notes.xml:2216
 #, no-c-format
 msgid "NEW bool::text cast"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1678
+#: release_notes.xml:2218
 #, no-c-format
 msgid "Some functions made IMMUTABLE from STABLE, for performance improvement."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1685
+#: release_notes.xml:2225
 #, no-c-format
 msgid "jdbc2: small patches, box2d/3d tests, revised docs and license."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1688
+#: release_notes.xml:2228
 #, no-c-format
 msgid "jdbc2: bug fix and testcase in for pgjdbc 8.0 type autoregistration"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1691
+#: release_notes.xml:2231
 #, no-c-format
 msgid ""
 "jdbc2: Removed use of jdk1.4 only features to enable build with older jdk "
@@ -4183,67 +6283,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1694
+#: release_notes.xml:2234
 #, no-c-format
 msgid "jdbc2: Added support for building against pg72jdbc2.jar"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1696
+#: release_notes.xml:2236
 #, no-c-format
 msgid "jdbc2: updated and cleaned makefile"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1698
+#: release_notes.xml:2238
 #, no-c-format
 msgid "jdbc2: added BETA support for jts geometry classes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1700
+#: release_notes.xml:2240
 #, no-c-format
 msgid "jdbc2: Skip known-to-fail tests against older PostGIS servers."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1703
+#: release_notes.xml:2243
 #, no-c-format
 msgid "jdbc2: Fixed handling of measured geometries in EWKT."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1709
+#: release_notes.xml:2249
 #, no-c-format
 msgid "new performance tips chapter in manual"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1711
+#: release_notes.xml:2251
 #, no-c-format
 msgid "documentation updates: pgsql72 requirement, lwpostgis.sql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1713
+#: release_notes.xml:2253
 #, no-c-format
 msgid "few changes in autoconf"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1715
+#: release_notes.xml:2255
 #, no-c-format
 msgid "BUILDDATE extraction made more portable"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1717
+#: release_notes.xml:2257
 #, no-c-format
 msgid "fixed spatial_ref_sys.sql to avoid vacuuming the whole database."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1720
+#: release_notes.xml:2260
 #, no-c-format
 msgid ""
 "spatial_ref_sys: changed Paris entries to match the ones distributed with 0."
@@ -4251,19 +6351,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1726
+#: release_notes.xml:2266
 #, no-c-format
 msgid "Release 1.0.0RC2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1728
+#: release_notes.xml:2268
 #, no-c-format
 msgid "Release date: 2005/01/26"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1730
+#: release_notes.xml:2270
 #, no-c-format
 msgid ""
 "Second release candidate for 1.0.0 containing bug fixes and a few "
@@ -4271,85 +6371,85 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1744
+#: release_notes.xml:2284
 #, no-c-format
 msgid "BUGFIX in pointarray box3d computation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1746
+#: release_notes.xml:2286
 #, no-c-format
 msgid "BUGFIX in distance_spheroid definition"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1748
+#: release_notes.xml:2288
 #, no-c-format
 msgid "BUGFIX in transform() missing to update bbox cache"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1750
+#: release_notes.xml:2290
 #, no-c-format
 msgid "NEW jdbc driver (jdbc2)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1752
+#: release_notes.xml:2292
 #, no-c-format
 msgid "GEOMETRYCOLLECTION(EMPTY) syntax support for backward compatibility"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1755
+#: release_notes.xml:2295
 #, no-c-format
 msgid "Faster binary outputs"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1757
+#: release_notes.xml:2297
 #, no-c-format
 msgid "Stricter OGC WKB/WKT constructors"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1763
+#: release_notes.xml:2303
 #, no-c-format
 msgid "More correct STABLE, IMMUTABLE, STRICT uses in lwpostgis.sql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1766
+#: release_notes.xml:2306
 #, no-c-format
 msgid "stricter OGC WKB/WKT constructors"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1772
+#: release_notes.xml:2312
 #, no-c-format
 msgid "Faster and more robust loader (both i18n and not)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1774
+#: release_notes.xml:2314
 #, no-c-format
 msgid "Initial autoconf script"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1779
+#: release_notes.xml:2319
 #, no-c-format
 msgid "Release 1.0.0RC1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1781
+#: release_notes.xml:2321
 #, no-c-format
 msgid "Release date: 2005/01/13"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1783
+#: release_notes.xml:2323
 #, no-c-format
 msgid ""
 "This is the first candidate of a major postgis release, with internal "
@@ -4358,25 +6458,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1798
+#: release_notes.xml:2338
 #, no-c-format
 msgid "Faster canonical input parsing."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1800
+#: release_notes.xml:2340
 #, no-c-format
 msgid "Lossless canonical output."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1802
+#: release_notes.xml:2342
 #, no-c-format
 msgid "EWKB Canonical binary IO with PG>73."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1804
+#: release_notes.xml:2344
 #, no-c-format
 msgid ""
 "Support for up to 4d coordinates, providing lossless shapefile->postgis-"
@@ -4384,7 +6484,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1807
+#: release_notes.xml:2347
 #, no-c-format
 msgid ""
 "New function: UpdateGeometrySRID(), AsGML(), SnapToGrid(), ForceRHR(), "
@@ -4392,31 +6492,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1810
+#: release_notes.xml:2350
 #, no-c-format
 msgid "Vertical positioning indexed operators."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1812
+#: release_notes.xml:2352
 #, no-c-format
 msgid "JOIN selectivity function."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1814
+#: release_notes.xml:2354
 #, no-c-format
 msgid "More geometry constructors / editors."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1816
+#: release_notes.xml:2356
 #, no-c-format
 msgid "PostGIS extension API."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1818
+#: release_notes.xml:2358
 #, no-c-format
 msgid "UTF8 support in loader."
 msgstr ""
diff --git a/doc/po/it_IT/reporting.xml.po b/doc/po/it_IT/reporting.xml.po
index 654af53..63e1206 100644
--- a/doc/po/it_IT/reporting.xml.po
+++ b/doc/po/it_IT/reporting.xml.po
@@ -1,19 +1,23 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# aghisla <a.ghisla at gmail.com>, 2013
+# aghisla <a.ghisla at gmail.com>, 2013
+# Sandro Santilli <strk at keybit.net>, 2014
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"PO-Revision-Date: 2014-10-20 15:20+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/postgis/"
+"language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: title
 #: reporting.xml:3
@@ -25,7 +29,7 @@ msgstr "Segnalare Problemi"
 #: reporting.xml:6
 #, no-c-format
 msgid "Reporting Software Bugs"
-msgstr "Segnalare Malfunzionamenti del Programma"
+msgstr "Segnalare Bug del Software"
 
 #. Tag: para
 #: reporting.xml:8
@@ -38,6 +42,13 @@ msgid ""
 "info can be extracted running <code>SELECT postgis_full_version()</code> "
 "[for postgis] and <code>SELECT version()</code> [for postgresql]."
 msgstr ""
+"Segnalare efficacemente i bug è una modalità fondamentale per aiutare lo "
+"sviluppo di PostGIS. Il bug report più efficiente è quello che permette agli "
+"sviluppatori PostGIS di replicarlo, quindi idealmente contiene uno script "
+"che lo rende evidente e un elenco di informazioni sull'ambiente in cui si "
+"verifica. Le informazioni indispensabili possono essere estratte eseguendo "
+"<code>SELECT postgis_full_version()</code> [per postgis] and <code>SELECT "
+"version()</code> [per postgresql]."
 
 #. Tag: para
 #: reporting.xml:16
@@ -47,6 +58,9 @@ msgid ""
 "<ulink url=\"http://svn.osgeo.org/postgis/trunk/NEWS\">release changelog</"
 "ulink> first, to find out if your bug has already been fixed."
 msgstr ""
+"Se non si sta usando l'ultima release, vale la pena leggerne il <ulink url="
+"\"http://svn.osgeo.org/postgis/trunk/NEWS\">release changelog</ulink>, per "
+"scoprire se il bug in questione è già stato risolto."
 
 #. Tag: para
 #: reporting.xml:21
@@ -58,6 +72,11 @@ msgid ""
 "the database to see if it is a known one, and if it is please add any new "
 "information you have about it."
 msgstr ""
+"Usare il <ulink url=\"http://trac.osgeo.org/postgis/\">PostGIS bug tracker</"
+"ulink> assicura che le segnalazioni non vadano perse, e permette di restare "
+"aggiornati sulla sua gestione. Prima di riportare un nuovo bug, per favore "
+"esaminate il database dei bug per vedere se è già stato segnalato, nel qual "
+"caso è opportuno aggiungere ad esso nuove informazioni."
 
 #. Tag: para
 #: reporting.xml:28
@@ -67,12 +86,16 @@ msgid ""
 "chiark.greenend.org.uk/~sgtatham/bugs.html\">How to Report Bugs Effectively</"
 "ulink> before filing a new report."
 msgstr ""
+"Consigliamo la lettura del paper di Simon Tatham su  <ulink url=\"http://www."
+"chiark.greenend.org.uk/~sgtatham/bugs.html\">How to Report Bugs Effectively</"
+"ulink> (Come riportare bug in modo efficiente) prima di compilare un nuovo "
+"bug report."
 
 #. Tag: title
 #: reporting.xml:34
 #, no-c-format
 msgid "Reporting Documentation Issues"
-msgstr ""
+msgstr "Segnalare Problemi nella Documentazione"
 
 #. Tag: para
 #: reporting.xml:36
@@ -82,6 +105,9 @@ msgid ""
 "software. If it doesn't, it could be because of a software bug or because "
 "the documentation is in error or deficient."
 msgstr ""
+"La documentazione deve riflettere accuratamente le funzionalità e il "
+"comportamento del software. Se così non fosse, potrebbe essere dovuto a un "
+"bug del software o a un errore o mancanza della documentazione."
 
 #. Tag: para
 #: reporting.xml:40
@@ -90,6 +116,8 @@ msgid ""
 "Documentation issues can also be reported to the <ulink url=\"http://trac."
 "osgeo.org/postgis\">PostGIS bug tracker</ulink>."
 msgstr ""
+"I problemi della documentazione possono essere riportati nel <ulink url="
+"\"http://trac.osgeo.org/postgis\">bug tracker di PostGIS</ulink>."
 
 #. Tag: para
 #: reporting.xml:44
@@ -98,6 +126,8 @@ msgid ""
 "If your revision is trivial, just describe it in a new bug tracker issue, "
 "being specific about its location in the documentation."
 msgstr ""
+"Se la revisione è minore, basta descriverla in una nuova issue del bug "
+"tracker, specificando la sua posizione nella documentazione."
 
 #. Tag: para
 #: reporting.xml:47
@@ -107,24 +137,29 @@ msgid ""
 "preferred. This is a four step process on Unix (assuming you already have "
 "<ulink url=\"http://subversion.apache.org/\">Subversion</ulink> installed):"
 msgstr ""
+"Se i cambiamenti sono più estesi, è preferibile  mandare una patch per "
+"Subversion. In Unix, si tratta di un processo in 4 fasi (assumendo di avere "
+"<ulink url=\"http://subversion.apache.org/\">Subversion</ulink> già "
+"installato):"
 
 #. Tag: para
 #: reporting.xml:54
 #, no-c-format
 msgid "Check out a copy of PostGIS' Subversion trunk. On Unix, type:"
 msgstr ""
+"Eseguire il checkout del trunk di PostGIS da Subversion. In Unix, digitare:"
 
 #. Tag: command
 #: reporting.xml:57
 #, no-c-format
 msgid "svn checkout http://svn.osgeo.org/postgis/trunk/"
-msgstr ""
+msgstr "svn checkout http://svn.osgeo.org/postgis/trunk/"
 
 #. Tag: para
 #: reporting.xml:60
 #, no-c-format
 msgid "This will be stored in the directory ./trunk"
-msgstr ""
+msgstr "I file saranno salvati nella cartella ./trunk"
 
 #. Tag: para
 #: reporting.xml:64
@@ -133,12 +168,14 @@ msgid ""
 "Make your changes to the documentation with your favorite text editor. On "
 "Unix, type (for example):"
 msgstr ""
+"Apportare le modifiche alla documentazione con l'editor di testo preferito. "
+"In Unix, ad esempio, digitare:"
 
 #. Tag: command
 #: reporting.xml:67
 #, no-c-format
 msgid "vim trunk/doc/postgis.xml"
-msgstr ""
+msgstr "vim trunk/doc/postgis.xml"
 
 #. Tag: para
 #: reporting.xml:69
@@ -148,6 +185,9 @@ msgid ""
 "if you are not familiar with it please follow the example of the rest of the "
 "documentation."
 msgstr ""
+"Nota: la documentazione è scritta in DocBook XML, non in HTML, quindi se non "
+"si ha familiarità con esso conviene seguire lo stile della documentazione "
+"esistente."
 
 #. Tag: para
 #: reporting.xml:75
@@ -156,15 +196,17 @@ msgid ""
 "Make a patch file containing the differences from the master copy of the "
 "documentation. On Unix, type:"
 msgstr ""
+"Produrre una patch, cioè un file contenente le differenze rispetto alla "
+"copia master della documentazione. In Unix, digitare:"
 
 #. Tag: command
 #: reporting.xml:78
 #, no-c-format
 msgid "svn diff trunk/doc/postgis.xml > doc.patch"
-msgstr ""
+msgstr "svn diff trunk/doc/postgis.xml > doc.patch"
 
 #. Tag: para
 #: reporting.xml:83
 #, no-c-format
 msgid "Attach the patch to a new issue in bug tracker."
-msgstr ""
+msgstr "Allegare la patch a una nuova issue nel bug tracker."
diff --git a/doc/po/it_IT/using_postgis_dataman.xml.po b/doc/po/it_IT/using_postgis_dataman.xml.po
index cc063ac..5e98b51 100644
--- a/doc/po/it_IT/using_postgis_dataman.xml.po
+++ b/doc/po/it_IT/using_postgis_dataman.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -89,7 +89,7 @@ msgstr ""
 #. Tag: para
 #: using_postgis_dataman.xml:41
 #, no-c-format
-msgid "MULTIPOINT(0 0,1 2)"
+msgid "MULTIPOINT((0 0),(1 2))"
 msgstr ""
 
 #. Tag: para
@@ -433,9 +433,9 @@ msgstr ""
 #: using_postgis_dataman.xml:212
 #, no-c-format
 msgid ""
-"Example compound curve in a curve polygon: CURVEPOLYGON(COMPOUNDCURVE"
-"(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, 1 4, 0 0)), CIRCULARSTRING"
-"(1.7 1, 1.4 0.4, 1.6 0.4, 1.6 0.5, 1.7 1) )"
+"Example compound curve in a curve polygon: "
+"CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, "
+"1 4, 0 0)), CIRCULARSTRING(1.7 1, 1.4 0.4, 1.6 0.4, 1.6 0.5, 1.7 1) )"
 msgstr ""
 
 #. Tag: para
@@ -593,8 +593,8 @@ msgstr ""
 #: using_postgis_dataman.xml:277
 #, no-c-format
 msgid ""
-"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog geography"
-"(POINT,4326) );"
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINT,4326) );"
 msgstr ""
 
 #. Tag: para
@@ -607,8 +607,8 @@ msgstr ""
 #: using_postgis_dataman.xml:279
 #, no-c-format
 msgid ""
-"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog geography"
-"(POINTZ,4326) );"
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINTZ,4326) );"
 msgstr ""
 
 #. Tag: para
@@ -820,8 +820,8 @@ msgstr ""
 #, no-c-format
 msgid ""
 "-- Distance calculation using GEOMETRY (13.3 \"degrees\")\n"
-"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, 'POINT"
-"(-21.96 64.15)':: geometry);"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, "
+"'POINT(-21.96 64.15)':: geometry);"
 msgstr ""
 
 #. Tag: para
@@ -1550,9 +1550,8 @@ msgid ""
 "The AddGeometryColumn() approach creates a geometry column and also "
 "registers the new column in the geometry_columns table. If your software "
 "utilizes geometry_columns, then any geometry columns you need to query by "
-"must be registered in this view. Starting with PoastGIS 2.0, "
-"geometry_columns is no longer editable and all geometry columns are "
-"autoregistered."
+"must be registered in this view. Starting with PostGIS 2.0, geometry_columns "
+"is no longer editable and all geometry columns are autoregistered."
 msgstr ""
 
 #. Tag: para
@@ -1685,8 +1684,8 @@ msgid ""
 "\n"
 "-----------+-----------------------"
 "+------------------------------------------------------\n"
-" gid       | integer               | not null default nextval"
-"('pois_ny_gid_seq'::regclass)\n"
+" gid       | integer               | not null default "
+"nextval('pois_ny_gid_seq'::regclass)\n"
 " poi_name  | text                  |\n"
 " cat       | character varying(20) |\n"
 " geom      | geometry(Point,4326)  |\n"
@@ -1824,8 +1823,8 @@ msgid ""
 "is one that has no anomalous geometric points, such as self intersection or "
 "self tangency and primarily refers to 0 or 1-dimensional geometries (i.e. "
 "<varname>[MULTI]POINT, [MULTI]LINESTRING</varname>). Geometry validity, on "
-"the other hand, primarily refers to 2-dimensional geometries (i.e. <varname>"
-"[MULTI]POLYGON)</varname> and defines the set of assertions that "
+"the other hand, primarily refers to 2-dimensional geometries (i.e. "
+"<varname>[MULTI]POLYGON)</varname> and defines the set of assertions that "
 "characterizes a valid polygon. The description of each geometric class "
 "includes specific conditions that further detail geometric simplicity and "
 "validity."
@@ -1887,8 +1886,8 @@ msgstr ""
 #, no-c-format
 msgid ""
 "<emphasis role=\"bold\">(a)</emphasis> and <emphasis role=\"bold\">(c)</"
-"emphasis> are simple <varname>LINESTRING</varname>s, <emphasis role=\"bold\">"
-"(b)</emphasis> and <emphasis role=\"bold\">(d)</emphasis> are not."
+"emphasis> are simple <varname>LINESTRING</varname>s, <emphasis role=\"bold"
+"\">(b)</emphasis> and <emphasis role=\"bold\">(d)</emphasis> are not."
 msgstr ""
 
 #. Tag: para
@@ -2276,99 +2275,81 @@ msgstr ""
 
 #. Tag: emphasis
 #: using_postgis_dataman.xml:1174 using_postgis_dataman.xml:1184
-#: using_postgis_dataman.xml:1377 using_postgis_dataman.xml:1390
+#: using_postgis_dataman.xml:1268 using_postgis_dataman.xml:1281
 #, no-c-format
 msgid "<emphasis role=\"bold\">Interior</emphasis>"
 msgstr ""
 
 #. Tag: emphasis
-#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1227
-#: using_postgis_dataman.xml:1380 using_postgis_dataman.xml:1413
+#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1190
+#: using_postgis_dataman.xml:1271 using_postgis_dataman.xml:1304
 #, no-c-format
 msgid "<emphasis role=\"bold\">Boundary</emphasis>"
 msgstr ""
 
 #. Tag: emphasis
-#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1270
-#: using_postgis_dataman.xml:1383 using_postgis_dataman.xml:1436
+#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1196
+#: using_postgis_dataman.xml:1274 using_postgis_dataman.xml:1327
 #, no-c-format
 msgid "<emphasis role=\"bold\">Exterior</emphasis>"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1188
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1185
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+msgid "dim( I(a) ∩ I(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1201
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1186
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+msgid "dim( I(a) ∩ B(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1214
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1187
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+msgid "dim( I(a) ∩ E(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1231
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1191
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+msgid "dim( B(a) ∩ I(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1244
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1192
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+msgid "dim( B(a) ∩ B(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1257
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1193
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+msgid "dim( B(a) ∩ E(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1274
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1197
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+msgid "dim( E(a) ∩ I(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1287
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1198
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+msgid "dim( E(a) ∩ B(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1300
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1199
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+msgid "dim( E(a) ∩ E(b) )"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1315
+#: using_postgis_dataman.xml:1206
 #, no-c-format
 msgid ""
 "Where <emphasis>dim(a)</emphasis> is the dimension of <emphasis>a</emphasis> "
@@ -2377,69 +2358,69 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1322
+#: using_postgis_dataman.xml:1213
 #, no-c-format
 msgid "<literal>0</literal> => point"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1326
+#: using_postgis_dataman.xml:1217
 #, no-c-format
 msgid "<literal>1</literal> => line"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1330
+#: using_postgis_dataman.xml:1221
 #, no-c-format
 msgid "<literal>2</literal> => area"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1334
+#: using_postgis_dataman.xml:1225
 #, no-c-format
 msgid "<literal>T</literal> => <literal>{0,1,2}</literal>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1339
+#: using_postgis_dataman.xml:1230
 #, no-c-format
 msgid "<literal>F</literal> => empty set"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1343
+#: using_postgis_dataman.xml:1234
 #, no-c-format
 msgid "<literal>*</literal> => don't care"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1347
+#: using_postgis_dataman.xml:1238
 #, no-c-format
 msgid "Visually, for two overlapping polygonal geometries, this looks like:"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1394 using_postgis_dataman.xml:1406
-#: using_postgis_dataman.xml:1440 using_postgis_dataman.xml:1452
+#: using_postgis_dataman.xml:1285 using_postgis_dataman.xml:1297
+#: using_postgis_dataman.xml:1331 using_postgis_dataman.xml:1343
 #, no-c-format
 msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">2</emphasis>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1400 using_postgis_dataman.xml:1417
-#: using_postgis_dataman.xml:1429 using_postgis_dataman.xml:1446
+#: using_postgis_dataman.xml:1291 using_postgis_dataman.xml:1308
+#: using_postgis_dataman.xml:1320 using_postgis_dataman.xml:1337
 #, no-c-format
 msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">1</emphasis>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1423
+#: using_postgis_dataman.xml:1314
 #, no-c-format
 msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">0</emphasis>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1464
+#: using_postgis_dataman.xml:1355
 #, no-c-format
 msgid ""
 "Read from left to right and from top to bottom, the dimensional matrix is "
@@ -2447,7 +2428,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1467
+#: using_postgis_dataman.xml:1358
 #, no-c-format
 msgid ""
 "A relate matrix that would therefore represent our first example of two "
@@ -2456,7 +2437,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1471
+#: using_postgis_dataman.xml:1362
 #, no-c-format
 msgid ""
 "-- Identify road segments that cross on a line\n"
@@ -2468,7 +2449,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1473
+#: using_postgis_dataman.xml:1364
 #, no-c-format
 msgid ""
 "A relate matrix that represents the second example of wharfs partly on the "
@@ -2476,7 +2457,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1477
+#: using_postgis_dataman.xml:1368
 #, no-c-format
 msgid ""
 "-- Identify wharfs partly on a lake's shoreline\n"
@@ -2487,13 +2468,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1479
+#: using_postgis_dataman.xml:1370
 #, no-c-format
 msgid "For more information or reading, see:"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1483
+#: using_postgis_dataman.xml:1374
 #, no-c-format
 msgid ""
 "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">OpenGIS Simple "
@@ -2502,32 +2483,32 @@ msgid ""
 msgstr ""
 
 #. Tag: ulink
-#: using_postgis_dataman.xml:1488
+#: using_postgis_dataman.xml:1379
 #, no-c-format
 msgid ""
 "Dimensionally Extended Nine-Intersection Model (DE-9IM) by Christian Strobl"
 msgstr ""
 
 #. Tag: ulink
-#: using_postgis_dataman.xml:1492
+#: using_postgis_dataman.xml:1383
 #, no-c-format
 msgid "GeoTools: Point Set Theory and the DE-9IM Matrix"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1495
+#: using_postgis_dataman.xml:1386
 #, no-c-format
 msgid "<emphasis>Encyclopedia of GIS</emphasis> By Hui Xiong"
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1505
+#: using_postgis_dataman.xml:1396
 #, no-c-format
-msgid "Loading GIS Data"
+msgid "Loading GIS (Vector) Data"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1507
+#: using_postgis_dataman.xml:1398
 #, no-c-format
 msgid ""
 "Once you have created a spatial table, you are ready to upload GIS data to "
@@ -2537,13 +2518,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1513 using_postgis_dataman.xml:1789
+#: using_postgis_dataman.xml:1404
 #, no-c-format
-msgid "Using SQL"
+msgid "Loading Data Using SQL"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1515
+#: using_postgis_dataman.xml:1406
 #, no-c-format
 msgid ""
 "If you can convert your data to a text representation, then using formatted "
@@ -2553,7 +2534,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1521
+#: using_postgis_dataman.xml:1412
 #, no-c-format
 msgid ""
 "A data upload file (<filename>roads.sql</filename> for example) might look "
@@ -2561,7 +2542,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1524
+#: using_postgis_dataman.xml:1415
 #, no-c-format
 msgid ""
 "BEGIN;\n"
@@ -2587,7 +2568,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1526
+#: using_postgis_dataman.xml:1417
 #, no-c-format
 msgid ""
 "The data file can be piped into PostgreSQL very easily using the \"psql\" "
@@ -2595,19 +2576,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1529
+#: using_postgis_dataman.xml:1420
 #, no-c-format
 msgid "psql -d [database] -f roads.sql"
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1533
+#: using_postgis_dataman.xml:1424
 #, no-c-format
-msgid "Using the Loader"
+msgid "shp2pgsql: Using the ESRI Shapefile Loader"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1535
+#: using_postgis_dataman.xml:1426
 #, no-c-format
 msgid ""
 "The <filename>shp2pgsql</filename> data loader converts ESRI Shape files "
@@ -2617,7 +2598,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1540
+#: using_postgis_dataman.xml:1431
 #, no-c-format
 msgid ""
 "In addition to the shp2pgsql command-line loader, there is an "
@@ -2628,19 +2609,19 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1547
+#: using_postgis_dataman.xml:1438
 #, no-c-format
 msgid "(c|a|d|p) These are mutually exclusive options:"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1552
+#: using_postgis_dataman.xml:1443
 #, no-c-format
 msgid "<term>-c</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1554
+#: using_postgis_dataman.xml:1445
 #, no-c-format
 msgid ""
 "Creates a new table and populates it from the shapefile. <emphasis>This is "
@@ -2648,13 +2629,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1562
+#: using_postgis_dataman.xml:1453
 #, no-c-format
 msgid "<term>-a</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1564
+#: using_postgis_dataman.xml:1455
 #, no-c-format
 msgid ""
 "Appends data from the Shape file into the database table. Note that to use "
@@ -2663,13 +2644,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1573 using_postgis_dataman.xml:1948
+#: using_postgis_dataman.xml:1464 using_postgis_dataman.xml:1853
 #, no-c-format
 msgid "<term>-d</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1575
+#: using_postgis_dataman.xml:1466
 #, no-c-format
 msgid ""
 "Drops the database table before creating a new table with the data in the "
@@ -2677,13 +2658,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1583
+#: using_postgis_dataman.xml:1474
 #, no-c-format
 msgid "<term>-p</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1585
+#: using_postgis_dataman.xml:1476
 #, no-c-format
 msgid ""
 "Only produces the table creation SQL code, without adding any actual data. "
@@ -2692,25 +2673,25 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1598
+#: using_postgis_dataman.xml:1489
 #, no-c-format
 msgid "<term>-?</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1600
+#: using_postgis_dataman.xml:1491
 #, no-c-format
 msgid "Display help screen."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1607
+#: using_postgis_dataman.xml:1498
 #, no-c-format
 msgid "<term>-D</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1609
+#: using_postgis_dataman.xml:1500
 #, no-c-format
 msgid ""
 "Use the PostgreSQL \"dump\" format for the output data. This can be combined "
@@ -2719,13 +2700,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1618
+#: using_postgis_dataman.xml:1509
 #, no-c-format
 msgid "-s [<FROM_SRID%gt;:]<SRID>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1620
+#: using_postgis_dataman.xml:1511
 #, no-c-format
 msgid ""
 "Creates and populates the geometry tables with the specified SRID. "
@@ -2735,13 +2716,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1631
+#: using_postgis_dataman.xml:1522
 #, no-c-format
 msgid "<term>-k</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1633
+#: using_postgis_dataman.xml:1524
 #, no-c-format
 msgid ""
 "Keep identifiers' case (column, schema and attributes). Note that attributes "
@@ -2749,13 +2730,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1641
+#: using_postgis_dataman.xml:1532
 #, no-c-format
 msgid "<term>-i</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1643
+#: using_postgis_dataman.xml:1534
 #, no-c-format
 msgid ""
 "Coerce all integers to standard 32-bit integers, do not create 64-bit "
@@ -2763,25 +2744,49 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1651
+#: using_postgis_dataman.xml:1542
 #, no-c-format
 msgid "<term>-I</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1653
+#: using_postgis_dataman.xml:1544
 #, no-c-format
 msgid "Create a GiST index on the geometry column."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1659
+#: using_postgis_dataman.xml:1551
+#, no-c-format
+msgid "<term>-m</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1553
+#, no-c-format
+msgid ""
+"-m <filename>a_file_name</filename> Specify a file containing a set of "
+"mappings of (long) column names to 10 character DBF column names. The "
+"content of the file is one or more lines of two names separated by white "
+"space and no trailing or leading space. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1558
+#, no-c-format
+msgid ""
+"COLUMNNAME DBFFIELD1\n"
+"AVERYLONGCOLUMNNAME DBFFIELD2"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1564
 #, no-c-format
 msgid "<term>-S</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1661
+#: using_postgis_dataman.xml:1566
 #, no-c-format
 msgid ""
 "Generate simple geometries instead of MULTI geometries. Will only succeed if "
@@ -2790,13 +2795,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1670
+#: using_postgis_dataman.xml:1575
 #, no-c-format
 msgid "-t <dimensionality>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1672
+#: using_postgis_dataman.xml:1577
 #, no-c-format
 msgid ""
 "Force the output geometry to have the specified dimensionality. Use the "
@@ -2804,7 +2809,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1676
+#: using_postgis_dataman.xml:1581
 #, no-c-format
 msgid ""
 "If the input has fewer dimensions that specified, the output will have those "
@@ -2813,13 +2818,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1685
+#: using_postgis_dataman.xml:1590
 #, no-c-format
 msgid "<term>-w</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1687
+#: using_postgis_dataman.xml:1592
 #, no-c-format
 msgid ""
 "Output WKT format, instead of WKB. Note that this can introduce coordinate "
@@ -2827,13 +2832,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1695
+#: using_postgis_dataman.xml:1600
 #, no-c-format
 msgid "<term>-e</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1697
+#: using_postgis_dataman.xml:1602
 #, no-c-format
 msgid ""
 "Execute each statement on its own, without using a transaction. This allows "
@@ -2843,13 +2848,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1707
+#: using_postgis_dataman.xml:1612
 #, no-c-format
 msgid "-W <encoding>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1709
+#: using_postgis_dataman.xml:1614
 #, no-c-format
 msgid ""
 "Specify encoding of the input data (dbf file). When used, all attributes of "
@@ -2860,25 +2865,25 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1719
+#: using_postgis_dataman.xml:1624
 #, no-c-format
 msgid "-N <policy>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1721
+#: using_postgis_dataman.xml:1626
 #, no-c-format
 msgid "NULL geometries handling policy (insert*,skip,abort)"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1727
+#: using_postgis_dataman.xml:1632
 #, no-c-format
 msgid "<term>-n</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1729
+#: using_postgis_dataman.xml:1634
 #, no-c-format
 msgid ""
 "-n Only import DBF file. If your data has no corresponding shapefile, it "
@@ -2888,13 +2893,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1737
+#: using_postgis_dataman.xml:1642
 #, no-c-format
 msgid "<term>-G</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1739
+#: using_postgis_dataman.xml:1644
 #, no-c-format
 msgid ""
 "Use geography type instead of geometry (requires lon/lat data) in WGS84 long "
@@ -2902,13 +2907,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1745
+#: using_postgis_dataman.xml:1650
 #, no-c-format
 msgid "-T <tablespace>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1747
+#: using_postgis_dataman.xml:1652
 #, no-c-format
 msgid ""
 "Specify the tablespace for the new table. Indexes will still use the default "
@@ -2917,13 +2922,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1755
+#: using_postgis_dataman.xml:1660
 #, no-c-format
 msgid "-X <tablespace>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1757
+#: using_postgis_dataman.xml:1662
 #, no-c-format
 msgid ""
 "Specify the tablespace for the new table's indexes. This applies to the "
@@ -2931,7 +2936,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1765
+#: using_postgis_dataman.xml:1670
 #, no-c-format
 msgid ""
 "An example session using the loader to create an input file and uploading it "
@@ -2939,7 +2944,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1770
+#: using_postgis_dataman.xml:1675
 #, no-c-format
 msgid ""
 "# shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > "
@@ -2948,25 +2953,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1772
+#: using_postgis_dataman.xml:1677
 #, no-c-format
 msgid "A conversion and upload can be done all in one step using UNIX pipes:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1776
+#: using_postgis_dataman.xml:1681
 #, no-c-format
 msgid "# shp2pgsql shaperoads.shp myschema.roadstable | psql -d roadsdb"
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1781
+#: using_postgis_dataman.xml:1686
 #, no-c-format
 msgid "Retrieving GIS Data"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1783
+#: using_postgis_dataman.xml:1688
 #, no-c-format
 msgid ""
 "Data can be extracted from the database using either SQL or the Shape file "
@@ -2974,8 +2979,14 @@ msgid ""
 "available to do comparisons and queries on spatial tables."
 msgstr ""
 
+#. Tag: title
+#: using_postgis_dataman.xml:1694
+#, no-c-format
+msgid "Using SQL to Retrieve Data"
+msgstr ""
+
 #. Tag: para
-#: using_postgis_dataman.xml:1791
+#: using_postgis_dataman.xml:1696
 #, no-c-format
 msgid ""
 "The most straightforward means of pulling data out of the database is to use "
@@ -2984,7 +2995,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1796
+#: using_postgis_dataman.xml:1701
 #, no-c-format
 msgid ""
 "db=# SELECT road_id, ST_AsText(road_geom) AS geom, road_name FROM roads;\n"
@@ -3002,7 +3013,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1798
+#: using_postgis_dataman.xml:1703
 #, no-c-format
 msgid ""
 "However, there will be times when some kind of restriction is necessary to "
@@ -3013,13 +3024,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1806
+#: using_postgis_dataman.xml:1711
 #, no-c-format
 msgid "&&"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1809
+#: using_postgis_dataman.xml:1714
 #, no-c-format
 msgid ""
 "This operator tells whether the bounding box of one geometry intersects the "
@@ -3027,13 +3038,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1815
+#: using_postgis_dataman.xml:1720
 #, no-c-format
 msgid "ST_OrderingEquals"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1818
+#: using_postgis_dataman.xml:1723
 #, no-c-format
 msgid ""
 "This tests whether two geometries are geometrically identical. For example, "
@@ -3042,13 +3053,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1825
+#: using_postgis_dataman.xml:1730
 #, no-c-format
 msgid "<term>=</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1828
+#: using_postgis_dataman.xml:1733
 #, no-c-format
 msgid ""
 "This operator is a little more naive, it only tests whether the bounding "
@@ -3056,7 +3067,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1834
+#: using_postgis_dataman.xml:1739
 #, no-c-format
 msgid ""
 "Next, you can use these operators in queries. Note that when specifying "
@@ -3067,7 +3078,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1840
+#: using_postgis_dataman.xml:1745
 #, no-c-format
 msgid ""
 "SELECT road_id, road_name\n"
@@ -3077,7 +3088,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1842
+#: using_postgis_dataman.xml:1747
 #, no-c-format
 msgid ""
 "The above query would return the single record from the \"ROADS_GEOM\" table "
@@ -3085,7 +3096,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1845
+#: using_postgis_dataman.xml:1750
 #, no-c-format
 msgid ""
 "When using the \"&&\" operator, you can specify either a BOX3D as "
@@ -3094,7 +3105,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1850
+#: using_postgis_dataman.xml:1755
 #, no-c-format
 msgid ""
 "SELECT road_id, road_name\n"
@@ -3103,7 +3114,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1852
+#: using_postgis_dataman.xml:1757
 #, no-c-format
 msgid ""
 "The above query will use the bounding box of the polygon for comparison "
@@ -3111,7 +3122,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1855
+#: using_postgis_dataman.xml:1760
 #, no-c-format
 msgid ""
 "The most common spatial query will probably be a \"frame-based\" query, used "
@@ -3121,7 +3132,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1860
+#: using_postgis_dataman.xml:1765
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(roads_geom) AS geom\n"
@@ -3131,20 +3142,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1862
+#: using_postgis_dataman.xml:1767
 #, no-c-format
 msgid ""
 "Note the use of the SRID 312, to specify the projection of the envelope."
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1866
+#: using_postgis_dataman.xml:1771
 #, no-c-format
 msgid "Using the Dumper"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1868
+#: using_postgis_dataman.xml:1773
 #, no-c-format
 msgid ""
 "The <filename>pgsql2shp</filename> table dumper connects directly to the "
@@ -3153,92 +3164,92 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1872
+#: using_postgis_dataman.xml:1777
 #, no-c-format
 msgid ""
 "pgsql2shp [<options>] <database> [<schema>.]<table>"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1874
+#: using_postgis_dataman.xml:1779
 #, no-c-format
 msgid "pgsql2shp [<options>] <database> <query>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1876
+#: using_postgis_dataman.xml:1781
 #, no-c-format
 msgid "The commandline options are:"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1880
+#: using_postgis_dataman.xml:1785
 #, no-c-format
 msgid "-f <filename>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1883
+#: using_postgis_dataman.xml:1788
 #, no-c-format
 msgid "Write the output to a particular filename."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1888
+#: using_postgis_dataman.xml:1793
 #, no-c-format
 msgid "-h <host>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1891
+#: using_postgis_dataman.xml:1796
 #, no-c-format
 msgid "The database host to connect to."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1896
+#: using_postgis_dataman.xml:1801
 #, no-c-format
 msgid "-p <port>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1899
+#: using_postgis_dataman.xml:1804
 #, no-c-format
 msgid "The port to connect to on the database host."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1904
+#: using_postgis_dataman.xml:1809
 #, no-c-format
 msgid "-P <password>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1907
+#: using_postgis_dataman.xml:1812
 #, no-c-format
 msgid "The password to use when connecting to the database."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1912
+#: using_postgis_dataman.xml:1817
 #, no-c-format
 msgid "-u <user>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1915
+#: using_postgis_dataman.xml:1820
 #, no-c-format
 msgid "The username to use when connecting to the database."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1920
+#: using_postgis_dataman.xml:1825
 #, no-c-format
 msgid "-g <geometry column>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1923
+#: using_postgis_dataman.xml:1828
 #, no-c-format
 msgid ""
 "In the case of tables with multiple geometry columns, the geometry column to "
@@ -3246,13 +3257,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1929
+#: using_postgis_dataman.xml:1834
 #, no-c-format
 msgid "<term>-b</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1932
+#: using_postgis_dataman.xml:1837
 #, no-c-format
 msgid ""
 "Use a binary cursor. This will make the operation faster, but will not work "
@@ -3260,13 +3271,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1939
+#: using_postgis_dataman.xml:1844
 #, no-c-format
 msgid "<term>-r</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1942
+#: using_postgis_dataman.xml:1847
 #, no-c-format
 msgid ""
 "Raw mode. Do not drop the <varname>gid</varname> field, or escape column "
@@ -3274,7 +3285,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1951
+#: using_postgis_dataman.xml:1856
 #, no-c-format
 msgid ""
 "For backward compatibility: write a 3-dimensional shape file when dumping "
@@ -3284,13 +3295,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1959
+#: using_postgis_dataman.xml:1864
 #, no-c-format
 msgid "-m <varname>filename</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1961
+#: using_postgis_dataman.xml:1866
 #, no-c-format
 msgid ""
 "Remap identifiers to ten character names. The content of the file is lines "
@@ -3299,13 +3310,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1974
+#: using_postgis_dataman.xml:1879
 #, no-c-format
 msgid "Building Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1976
+#: using_postgis_dataman.xml:1881
 #, no-c-format
 msgid ""
 "Indexes are what make using a spatial database for large data sets possible. "
@@ -3317,7 +3328,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1986
+#: using_postgis_dataman.xml:1891
 #, no-c-format
 msgid ""
 "B-Trees are used for data which can be sorted along one axis; for example, "
@@ -3327,7 +3338,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1993
+#: using_postgis_dataman.xml:1898
 #, no-c-format
 msgid ""
 "R-Trees break up data into rectangles, and sub-rectangles, and sub-sub "
@@ -3337,7 +3348,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2000
+#: using_postgis_dataman.xml:1905
 #, no-c-format
 msgid ""
 "GiST (Generalized Search Trees) indexes break up data into \"things to one "
@@ -3347,13 +3358,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2009
+#: using_postgis_dataman.xml:1914
 #, no-c-format
 msgid "GiST Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2011
+#: using_postgis_dataman.xml:1916
 #, no-c-format
 msgid ""
 "GiST stands for \"Generalized Search Tree\" and is a generic form of "
@@ -3363,7 +3374,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2016
+#: using_postgis_dataman.xml:1921
 #, no-c-format
 msgid ""
 "Once a GIS data table exceeds a few thousand rows, you will want to build an "
@@ -3373,20 +3384,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2021
+#: using_postgis_dataman.xml:1926
 #, no-c-format
 msgid ""
 "The syntax for building a GiST index on a \"geometry\" column is as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2024
+#: using_postgis_dataman.xml:1929
 #, no-c-format
 msgid "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2025
+#: using_postgis_dataman.xml:1930
 #, no-c-format
 msgid ""
 "The above syntax will always build a 2D-index. To get the an n-dimensional "
@@ -3395,7 +3406,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2026
+#: using_postgis_dataman.xml:1931
 #, no-c-format
 msgid ""
 "CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield] "
@@ -3403,7 +3414,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2028
+#: using_postgis_dataman.xml:1933
 #, no-c-format
 msgid ""
 "Building a spatial index is a computationally intensive exercise: on tables "
@@ -3414,7 +3425,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2034
+#: using_postgis_dataman.xml:1939
 #, no-c-format
 msgid ""
 "VACUUM ANALYZE [table_name] [(column_name)];\n"
@@ -3423,7 +3434,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2036
+#: using_postgis_dataman.xml:1941
 #, no-c-format
 msgid ""
 "GiST indexes have two advantages over R-Tree indexes in PostgreSQL. Firstly, "
@@ -3437,13 +3448,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2048
+#: using_postgis_dataman.xml:1953
 #, no-c-format
 msgid "Using Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2050
+#: using_postgis_dataman.xml:1955
 #, no-c-format
 msgid ""
 "Ordinarily, indexes invisibly speed up data access: once the index is built, "
@@ -3454,7 +3465,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2057
+#: using_postgis_dataman.xml:1962
 #, no-c-format
 msgid ""
 "If you find your spatial indexes are not being used (or your attribute "
@@ -3462,7 +3473,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2063
+#: using_postgis_dataman.xml:1968
 #, no-c-format
 msgid ""
 "Firstly, make sure statistics are gathered about the number and "
@@ -3478,7 +3489,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2077
+#: using_postgis_dataman.xml:1982
 #, no-c-format
 msgid ""
 "If vacuuming does not work, you can force the planner to use the index "
@@ -3491,7 +3502,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2087
+#: using_postgis_dataman.xml:1992
 #, no-c-format
 msgid ""
 "As of version 0.6, it should not be necessary to force the planner to use "
@@ -3499,7 +3510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2094
+#: using_postgis_dataman.xml:1999
 #, no-c-format
 msgid ""
 "If you find the planner wrong about the cost of sequential vs index scans "
@@ -3510,13 +3521,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2105
+#: using_postgis_dataman.xml:2010
 #, no-c-format
 msgid "Complex Queries"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2107
+#: using_postgis_dataman.xml:2012
 #, no-c-format
 msgid ""
 "The <emphasis>raison d'etre</emphasis> of spatial database functionality is "
@@ -3536,13 +3547,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2121
+#: using_postgis_dataman.xml:2026
 #, no-c-format
 msgid "Taking Advantage of Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2123
+#: using_postgis_dataman.xml:2028
 #, no-c-format
 msgid ""
 "When constructing a query it is important to remember that only the bounding-"
@@ -3553,7 +3564,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2130
+#: using_postgis_dataman.xml:2035
 #, no-c-format
 msgid ""
 "SELECT the_geom\n"
@@ -3563,7 +3574,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2132
+#: using_postgis_dataman.xml:2037
 #, no-c-format
 msgid ""
 "This query is selecting all the geometries in geom_table which are within "
@@ -3575,7 +3586,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2139
+#: using_postgis_dataman.xml:2044
 #, no-c-format
 msgid ""
 "SELECT the_geom\n"
@@ -3585,7 +3596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2141
+#: using_postgis_dataman.xml:2046
 #, no-c-format
 msgid ""
 "This query selects the same geometries, but it does it in a more efficient "
@@ -3602,13 +3613,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2155
+#: using_postgis_dataman.xml:2060
 #, no-c-format
 msgid "Change in Behavior"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2157
+#: using_postgis_dataman.xml:2062
 #, no-c-format
 msgid ""
 "As of PostGIS 1.3.0, most of the Geometry Relationship Functions, with the "
@@ -3617,13 +3628,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2164
+#: using_postgis_dataman.xml:2069
 #, no-c-format
 msgid "Examples of Spatial SQL"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2166
+#: using_postgis_dataman.xml:2071
 #, no-c-format
 msgid ""
 "The examples in this section will make use of two tables, a table of linear "
@@ -3632,7 +3643,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2170
+#: using_postgis_dataman.xml:2075
 #, no-c-format
 msgid ""
 "Column      | Type              | Description\n"
@@ -3643,14 +3654,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2172
+#: using_postgis_dataman.xml:2077
 #, no-c-format
 msgid ""
 "The table definition for the <varname>bc_municipality</varname> table is:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2175
+#: using_postgis_dataman.xml:2080
 #, no-c-format
 msgid ""
 "Column     | Type              | Description\n"
@@ -3662,19 +3673,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2180
+#: using_postgis_dataman.xml:2085
 #, no-c-format
 msgid "What is the total length of all roads, expressed in kilometers?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2185
+#: using_postgis_dataman.xml:2090
 #, no-c-format
 msgid "You can answer this question with a very simple piece of SQL:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2188
+#: using_postgis_dataman.xml:2093
 #, no-c-format
 msgid ""
 "SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM bc_roads;\n"
@@ -3686,13 +3697,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2194
+#: using_postgis_dataman.xml:2099
 #, no-c-format
 msgid "How large is the city of Prince George, in hectares?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2198
+#: using_postgis_dataman.xml:2103
 #, no-c-format
 msgid ""
 "This query combines an attribute condition (on the municipality name) with a "
@@ -3700,7 +3711,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2202
+#: using_postgis_dataman.xml:2107
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -3715,13 +3726,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2208
+#: using_postgis_dataman.xml:2113
 #, no-c-format
 msgid "What is the largest municipality in the province, by area?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2213
+#: using_postgis_dataman.xml:2118
 #, no-c-format
 msgid ""
 "This query brings a spatial measurement into the query condition. There are "
@@ -3729,7 +3740,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2217
+#: using_postgis_dataman.xml:2122
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -3747,7 +3758,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2219
+#: using_postgis_dataman.xml:2124
 #, no-c-format
 msgid ""
 "Note that in order to answer this query we have to calculate the area of "
@@ -3759,13 +3770,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2231
+#: using_postgis_dataman.xml:2136
 #, no-c-format
 msgid "What is the length of roads fully contained within each municipality?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2236
+#: using_postgis_dataman.xml:2141
 #, no-c-format
 msgid ""
 "This is an example of a \"spatial join\", because we are bringing together "
@@ -3775,7 +3786,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2242
+#: using_postgis_dataman.xml:2147
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -3800,7 +3811,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2244
+#: using_postgis_dataman.xml:2149
 #, no-c-format
 msgid ""
 "This query takes a while, because every road in the table is summarized into "
@@ -3810,13 +3821,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2253
+#: using_postgis_dataman.xml:2158
 #, no-c-format
 msgid "Create a new table with all the roads within the city of Prince George."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2258
+#: using_postgis_dataman.xml:2163
 #, no-c-format
 msgid ""
 "This is an example of an \"overlay\", which takes in two tables and outputs "
@@ -3827,7 +3838,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2265
+#: using_postgis_dataman.xml:2170
 #, no-c-format
 msgid ""
 "CREATE TABLE pg_roads as\n"
@@ -3842,13 +3853,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2271
+#: using_postgis_dataman.xml:2176
 #, no-c-format
 msgid "What is the length in kilometers of \"Douglas St\" in Victoria?"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2276
+#: using_postgis_dataman.xml:2181
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -3866,13 +3877,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2282
+#: using_postgis_dataman.xml:2187
 #, no-c-format
 msgid "What is the largest municipality polygon that has a hole?"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2287
+#: using_postgis_dataman.xml:2192
 #, no-c-format
 msgid ""
 "SELECT gid, name, ST_Area(the_geom) AS area\n"
diff --git a/doc/po/it_IT/using_raster_dataman.xml.po b/doc/po/it_IT/using_raster_dataman.xml.po
index e95d8fb..5496f84 100644
--- a/doc/po/it_IT/using_raster_dataman.xml.po
+++ b/doc/po/it_IT/using_raster_dataman.xml.po
@@ -1,31 +1,33 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# pibinko <pibinko at gmail.com>, 2013-2014
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-08 10:11+0000\n"
+"Last-Translator: pibinko <pibinko at gmail.com>\n"
+"Language-Team: Italian (Italy) (http://www.transifex.com/projects/p/"
+"postgis-1/language/it_IT/)\n"
+"Language: it_IT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Tag: title
 #: using_raster_dataman.xml:3
 #, no-c-format
 msgid "Raster Data Management, Queries, and Applications"
-msgstr ""
+msgstr "Dati raster: gestione, interrogazione e applicazioni"
 
 #. Tag: title
 #: using_raster_dataman.xml:5
 #, no-c-format
 msgid "Loading and Creating Rasters"
-msgstr ""
+msgstr "Caricare e creare raster"
 
 #. Tag: para
 #: using_raster_dataman.xml:6
@@ -35,12 +37,15 @@ msgid ""
 "raster files using the packaged <varname>raster2pgsql</varname> raster "
 "loader."
 msgstr ""
+"Nella maggior parte dei casi, creerete i raster PostGIS caricando file "
+"esterni tramite il raster loader <varname>raster2pgsql</varname> compreso "
+"nell'installazione."
 
 #. Tag: title
 #: using_raster_dataman.xml:9
 #, no-c-format
 msgid "Using raster2pgsql to load rasters"
-msgstr ""
+msgstr "Usare raster2pgsql per caricare i raster"
 
 #. Tag: para
 #: using_raster_dataman.xml:10
@@ -51,6 +56,10 @@ msgid ""
 "raster table. It is capable of loading folders of raster files as well as "
 "creating overviews of rasters."
 msgstr ""
+" <varname>raster2pgsql</varname> è un loader raster che trasforma i formati "
+"raster supportati da GDAL in formato SQL utile al caricamento in una tabella "
+"raster di PostGIS. Può caricare anche cartelle di file, e creare delle "
+"anteprime."
 
 #. Tag: para
 #: using_raster_dataman.xml:13
@@ -64,6 +73,14 @@ msgid ""
 "PostGIS install documented here <xref linkend=\"RT_ST_GDALDrivers\"/> if you "
 "are using the same gdal library for both."
 msgstr ""
+"Dato che in genere raster2pgsql viene compilato come parte di PostGIS (a "
+"meno che non abbiate compilato una vostra libreria GDAL a parte), i tipi di "
+"raster supportati dall'eseguibile saranno gli stessi che sono compilati per "
+"GDAL. Per avere una lista dei tipi di raster supportati dal vostro "
+"raster2pgsql utilizzate l'opzione <varname>-G</varname>. Questi tipi "
+"dovrebbero essere gli stessi disponibilii tramite la vostra installazione di "
+"PostGIS e documentati qui <xref linkend=\"RT_ST_GDALDrivers\"/>, se usate la "
+"stessa libreria gdal per entrambi i programmi."
 
 #. Tag: para
 #: using_raster_dataman.xml:16
@@ -76,6 +93,13 @@ msgid ""
 "ulink>. Please note that the raster2pgsql python script may not work with "
 "future versions of PostGIS raster and is no longer supported."
 msgstr ""
+"La vecchia versione di questo strumento era uno script in python. "
+"L'eseguibile sostituisce lo script in python. Se vi trovate ad avere bisogno "
+"dello script in Python, alcuni esempio sono reperibili alla pagina <ulink "
+"url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">GDAL PostGIS "
+"Raster Driver Usage</ulink>. Notate che lo script Python raster2pgsql "
+"potrebbe non funzionare con le future versioni di raster PostGIS e che non è "
+"più supportato."
 
 #. Tag: para
 #: using_raster_dataman.xml:21
@@ -88,104 +112,111 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:25
+#: using_raster_dataman.xml:23
 #, no-c-format
 msgid "EXAMPLE USAGE:"
-msgstr ""
+msgstr "ESEMPIO DI UTILIZZO:"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:26
+#: using_raster_dataman.xml:24
 #, no-c-format
 msgid ""
 "raster2pgsql <varname>raster_options_go_here</varname> <varname>raster_file</"
 "varname> <varname>someschema</varname>.<varname>sometable</varname> > out."
 "sql"
 msgstr ""
+"raster2pgsql <varname>opzioni raster</varname> <varname>nome file raster</"
+"varname> <varname>snome schema</varname>.<varname>nome tabella</varname> "
+"> out.sql"
 
 #. Tag: term
-#: using_raster_dataman.xml:30
+#: using_raster_dataman.xml:28
 #, no-c-format
 msgid "<term>-?</term>"
-msgstr ""
+msgstr "<term>-?</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:32
+#: using_raster_dataman.xml:30
 #, no-c-format
 msgid ""
 "Display help screen. Help will also display if you don't pass in any "
 "arguments."
 msgstr ""
+"Mostra una schermata di aiuto. L'aiuto verra mostrato inoltre se non "
+"assegnate alcun parametro."
 
 #. Tag: term
-#: using_raster_dataman.xml:39
+#: using_raster_dataman.xml:37
 #, no-c-format
 msgid "<term>-G</term>"
-msgstr ""
+msgstr "<term>-G</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:41
+#: using_raster_dataman.xml:39
 #, no-c-format
 msgid "Print the supported raster formats."
-msgstr ""
+msgstr "Elenca i formati raster supportati."
 
 #. Tag: term
-#: using_raster_dataman.xml:48
+#: using_raster_dataman.xml:46
 #, no-c-format
 msgid "(c|a|d|p) These are mutually exclusive options:"
-msgstr ""
+msgstr "(c|a|d|p) sono opzioni che is escludono una con l'altra:"
 
 #. Tag: term
-#: using_raster_dataman.xml:53
+#: using_raster_dataman.xml:51
 #, no-c-format
 msgid "<term>-c</term>"
-msgstr ""
+msgstr "<term>-c</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:55
+#: using_raster_dataman.xml:53
 #, no-c-format
 msgid ""
 "Create new table and populate it with raster(s), <emphasis>this is the "
 "default mode</emphasis>"
 msgstr ""
+"Crea una nuova tabella e carica in questa il/i raster. <emphasis>Questa è la "
+"modalita di default</emphasis>"
 
 #. Tag: term
-#: using_raster_dataman.xml:62
+#: using_raster_dataman.xml:60
 #, no-c-format
 msgid "<term>-a</term>"
-msgstr ""
+msgstr "<term>-a</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:64
+#: using_raster_dataman.xml:62
 #, no-c-format
 msgid "Append raster(s) to an existing table."
-msgstr ""
+msgstr "Accoda il o i raster a una tabella esistente."
 
 #. Tag: term
-#: using_raster_dataman.xml:71
+#: using_raster_dataman.xml:69
 #, no-c-format
 msgid "<term>-d</term>"
-msgstr ""
+msgstr "<term>-d</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:73
+#: using_raster_dataman.xml:71
 #, no-c-format
 msgid "Drop table, create new one and populate it with raster(s)"
-msgstr ""
+msgstr "Elimina la tabella, ne crea una nuova e vi carica il/i dati raster"
 
 #. Tag: term
-#: using_raster_dataman.xml:80
+#: using_raster_dataman.xml:78
 #, no-c-format
 msgid "<term>-p</term>"
-msgstr ""
+msgstr "<term>-p</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:82
+#: using_raster_dataman.xml:80
 #, no-c-format
 msgid "Prepare mode, only create the table."
-msgstr ""
+msgstr "Modalità di preparazione. Crea solamente la tabella."
 
 #. Tag: term
-#: using_raster_dataman.xml:93
+#: using_raster_dataman.xml:91
 #, no-c-format
 msgid ""
 "Raster processing: Applying constraints for proper registering in raster "
@@ -193,13 +224,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:98
+#: using_raster_dataman.xml:96
 #, no-c-format
 msgid "<term>-C</term>"
-msgstr ""
+msgstr "<term>-C</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:100
+#: using_raster_dataman.xml:98
 #, no-c-format
 msgid ""
 "Apply raster constraints -- srid, pixelsize etc. to ensure raster is "
@@ -207,13 +238,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:106
+#: using_raster_dataman.xml:104
 #, no-c-format
 msgid "<term>-x</term>"
-msgstr ""
+msgstr "<term>-x</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:108
+#: using_raster_dataman.xml:106
 #, no-c-format
 msgid ""
 "Disable setting the max extent constraint. Only applied if -C flag is also "
@@ -221,307 +252,348 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:114
+#: using_raster_dataman.xml:112
 #, no-c-format
 msgid "<term>-r</term>"
-msgstr ""
+msgstr "<term>-r</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:116
+#: using_raster_dataman.xml:114
 #, no-c-format
 msgid ""
-"Set the regular blocking constraint. Only applied if -C flag is also used."
+"Set the constraints (spatially unique and coverage tile) for regular "
+"blocking. Only applied if -C flag is also used."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:127
+#: using_raster_dataman.xml:125
 #, no-c-format
 msgid ""
 "Raster processing: Optional parameters used to manipulate input raster "
 "dataset"
 msgstr ""
+"Elaborazioni raster: parametri opzionali utilizzati nel trattamento dei dati "
+"raster in ingresso"
 
 #. Tag: term
-#: using_raster_dataman.xml:132
+#: using_raster_dataman.xml:130
 #, no-c-format
 msgid "-s <SRID>"
-msgstr ""
+msgstr "-s <SRID>"
 
 #. Tag: para
-#: using_raster_dataman.xml:134
+#: using_raster_dataman.xml:132
 #, no-c-format
 msgid ""
 "Assign output raster with specified SRID. If not provided or is zero, "
 "raster's metadata will be checked to determine an appropriate SRID."
 msgstr ""
+"Assegna lo SRID specificato al raster in uscita. Se non fornito o uguale a "
+"zero, saranno controllati i metadati del raster per determinare uno SRID "
+"appropriato."
 
 #. Tag: term
-#: using_raster_dataman.xml:141
+#: using_raster_dataman.xml:139
 #, no-c-format
 msgid "-b BAND"
-msgstr ""
+msgstr "-b BANDA"
 
 #. Tag: para
-#: using_raster_dataman.xml:143
+#: using_raster_dataman.xml:141
 #, no-c-format
 msgid ""
 "Index (1-based) of band to extract from raster. For more than one band "
 "index, separate with comma (,). If unspecified, all bands of raster will be "
 "extracted."
 msgstr ""
+"Indice (a partire da 1) della banda da estrarre dal raster. Per specificare "
+"più di un indice di banda, separare con una virgola (,). Se non specificato, "
+"saranno estratte tutte le bande."
 
 #. Tag: term
-#: using_raster_dataman.xml:151
+#: using_raster_dataman.xml:149
 #, no-c-format
 msgid "-t TILE_SIZE"
-msgstr ""
+msgstr "-t DIMENSIONE_TILE"
 
 #. Tag: para
-#: using_raster_dataman.xml:153
-#, no-c-format
+#: using_raster_dataman.xml:151
+#, fuzzy, no-c-format
 msgid ""
 "Cut raster into tiles to be inserted one per table row. <varname>TILE_SIZE</"
-"varname> is expressed as WIDTHxHEIGHT."
+"varname> is expressed as WIDTHxHEIGHT or set to the value \"auto\" to allow "
+"the loader to compute an appropriate tile size using the first raster and "
+"applied to all rasters."
 msgstr ""
+"Taglia un raster in tile da inserire in un record di tabella ciascuno. La "
+"<varname>DIMENSIONE TILE</varname> è espressa come LARGHEZZAxALTEZZA."
 
 #. Tag: term
-#: using_raster_dataman.xml:160
+#: using_raster_dataman.xml:158
 #, no-c-format
 msgid "-R, --register"
-msgstr ""
+msgstr "-R, --register"
 
 #. Tag: para
-#: using_raster_dataman.xml:162
+#: using_raster_dataman.xml:160
 #, no-c-format
 msgid "Register the raster as a filesystem (out-db) raster."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:163
+#: using_raster_dataman.xml:161
 #, no-c-format
 msgid ""
 "Only the metadata of the raster and path location to the raster is stored in "
 "the database (not the pixels)."
 msgstr ""
+"Nel database vengono salvati solo i metadati e il percorso del raster (non i "
+"pixel)."
 
 #. Tag: term
-#: using_raster_dataman.xml:168
+#: using_raster_dataman.xml:166
 #, no-c-format
 msgid "-l <varname>OVERVIEW_FACTOR</varname>"
-msgstr ""
+msgstr "-l <varname>OVERVIEW_FACTOR</varname>"
 
 #. Tag: para
-#: using_raster_dataman.xml:169
+#: using_raster_dataman.xml:167
 #, no-c-format
 msgid ""
-"Create overview of the raster. For more than one factor, separate with comma"
-"(,). Overview table name follows the pattern o_<varname>overview factor</"
-"varname>_<varname>table</varname>. Created overview is stored in the "
-"database and is not affected by -R. Note that your generated sql file will "
-"contain both the main table and overview tables."
+"Create overview of the raster. For more than one factor, separate with "
+"comma(,). Overview table name follows the pattern o_<varname>overview "
+"factor</varname>_<varname>table</varname>, where <varname>overview factor</"
+"varname> is a placeholder for numerical overview factor and <varname>table</"
+"varname> is replaced with the base table name. Created overview is stored in "
+"the database and is not affected by -R. Note that your generated sql file "
+"will contain both the main table and overview tables."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:177
+#: using_raster_dataman.xml:175
 #, no-c-format
 msgid "-N <varname>NODATA</varname>"
-msgstr ""
+msgstr "-N <varname>NODATA</varname>"
 
 #. Tag: para
-#: using_raster_dataman.xml:179
+#: using_raster_dataman.xml:177
 #, no-c-format
 msgid "NODATA value to use on bands without a NODATA value."
-msgstr ""
+msgstr "Valore da usare come NODATA per le bande senza un valore NODATA."
 
 #. Tag: term
-#: using_raster_dataman.xml:191
+#: using_raster_dataman.xml:189
 #, no-c-format
 msgid "Optional parameters used to manipulate database objects"
-msgstr ""
+msgstr "Parametri opzionali usati per la manipolazione di oggetti del database"
 
 #. Tag: term
-#: using_raster_dataman.xml:196
+#: using_raster_dataman.xml:194
 #, no-c-format
 msgid "<term>-q</term>"
-msgstr ""
+msgstr "<term>-q</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:198
+#: using_raster_dataman.xml:196
 #, no-c-format
 msgid "Wrap PostgreSQL identifiers in quotes"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:203
+#: using_raster_dataman.xml:201
 #, no-c-format
 msgid "-f COLUMN"
-msgstr ""
+msgstr "-f COLONNA"
 
 #. Tag: para
-#: using_raster_dataman.xml:205
+#: using_raster_dataman.xml:203
 #, no-c-format
 msgid "Specify name of destination raster column, default is 'rast'"
 msgstr ""
+"Specifica il nome della colonna di destinazione per i raster. Il default è "
+"'rast'."
 
 #. Tag: term
-#: using_raster_dataman.xml:211
+#: using_raster_dataman.xml:209
 #, no-c-format
 msgid "<term>-F</term>"
-msgstr ""
+msgstr "<term>-F</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:213
+#: using_raster_dataman.xml:211
 #, no-c-format
 msgid "Add a column with the name of the file"
-msgstr ""
+msgstr "Aggiunge una colonna con il nome del file"
 
 #. Tag: term
-#: using_raster_dataman.xml:218
+#: using_raster_dataman.xml:216
 #, no-c-format
 msgid "<term>-I</term>"
-msgstr ""
+msgstr "<term>-I</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:220
+#: using_raster_dataman.xml:218
 #, no-c-format
 msgid "Create a GiST index on the raster column."
-msgstr ""
+msgstr "Crea un indice GiST sulla colonna raster."
 
 #. Tag: term
-#: using_raster_dataman.xml:227
+#: using_raster_dataman.xml:225
 #, no-c-format
 msgid "<term>-M</term>"
-msgstr ""
+msgstr "<term>-M</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:229
+#: using_raster_dataman.xml:227
 #, no-c-format
 msgid "Vacuum analyze the raster table."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:236
+#: using_raster_dataman.xml:234
 #, no-c-format
 msgid "-T <varname>tablespace</varname>"
-msgstr ""
+msgstr "-T <varname>tablespace</varname>"
 
 #. Tag: para
-#: using_raster_dataman.xml:238
+#: using_raster_dataman.xml:236
 #, no-c-format
 msgid ""
 "Specify the tablespace for the new table. Note that indices (including the "
 "primary key) will still use the default tablespace unless the -X flag is "
 "also used."
 msgstr ""
+"Specificare il tablespace per la nuova tabella. Notare che gli indici "
+"(compresa la chiave primaria) useranno sempre il tablespace di default, a "
+"meno che non venga usato anche il flag -X."
 
 #. Tag: term
-#: using_raster_dataman.xml:247
+#: using_raster_dataman.xml:245
 #, no-c-format
 msgid "-X <varname>tablespace</varname>"
-msgstr ""
+msgstr "-X <varname>tablespace</varname>"
 
 #. Tag: para
-#: using_raster_dataman.xml:249
+#: using_raster_dataman.xml:247
 #, no-c-format
 msgid ""
 "Specify the tablespace for the table's new index. This applies to the "
 "primary key and the spatial index if the -I flag is used."
 msgstr ""
+"Specifica il tablespace per il nuovo indice della tabella. Si applica alla "
+"chiave primaria e all'indice spaziale se viene usato il flag  -I"
 
 #. Tag: term
-#: using_raster_dataman.xml:258
+#: using_raster_dataman.xml:256
 #, no-c-format
 msgid "<term>-Y</term>"
-msgstr ""
+msgstr "<term>-Y</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:260
+#: using_raster_dataman.xml:258
 #, no-c-format
 msgid "Use copy statements instead of insert statements."
-msgstr ""
+msgstr "Utilizza comandi di copia anziché di inserimento."
 
 #. Tag: term
-#: using_raster_dataman.xml:271
+#: using_raster_dataman.xml:269
 #, no-c-format
 msgid "<term>-e</term>"
-msgstr ""
+msgstr "<term>-e</term>"
 
 #. Tag: para
-#: using_raster_dataman.xml:272
+#: using_raster_dataman.xml:270
 #, no-c-format
 msgid "Execute each statement individually, do not use a transaction."
-msgstr ""
+msgstr "Esegui ogni comando individualmente, non utilizzare una transazione."
 
 #. Tag: term
-#: using_raster_dataman.xml:276
+#: using_raster_dataman.xml:274
 #, no-c-format
 msgid "-E ENDIAN"
-msgstr ""
+msgstr "-E ENDIAN"
 
 #. Tag: para
-#: using_raster_dataman.xml:277
+#: using_raster_dataman.xml:275
 #, no-c-format
 msgid ""
 "Control endianness of generated binary output of raster; specify 0 for XDR "
 "and 1 for NDR (default); only NDR output is supported now"
 msgstr ""
+"Controlla l'ordine dei byte prodotti nell'output binario del raster: "
+"specificare 0 per XDR e 1 per NDR (il default). Al momento viene supportato "
+"solo lo NDR."
 
 #. Tag: term
-#: using_raster_dataman.xml:281
+#: using_raster_dataman.xml:279
 #, no-c-format
 msgid "-V <varname>version</varname>"
-msgstr ""
+msgstr "-V <varname>versione</varname>"
 
 #. Tag: para
-#: using_raster_dataman.xml:282
+#: using_raster_dataman.xml:280
 #, no-c-format
 msgid ""
 "Specify version of output format. Default is 0. Only 0 is supported at this "
 "time."
 msgstr ""
+"Specifica la versione del formato in uscita. Il default è 0. Al momento 0 è "
+"l'unico supportato."
 
 #. Tag: para
-#: using_raster_dataman.xml:285
+#: using_raster_dataman.xml:283
 #, no-c-format
 msgid ""
 "An example session using the loader to create an input file and uploading it "
 "chunked in 100x100 tiles might look like this:"
 msgstr ""
+"Una sessione di esempio che utilizzi il loader per creare un file di input e "
+"per caricarlo a pezzi di tile 100x100 potrebbe essere il seguente:"
 
 #. Tag: para
-#: using_raster_dataman.xml:286
+#: using_raster_dataman.xml:284
 #, no-c-format
 msgid ""
 "You can leave the schema name out e.g <varname>demelevation</varname> "
 "instead of <varname>public.demelevation</varname> and the raster table will "
 "be created in the default schema of the database or user"
 msgstr ""
+"Potete omettere il nome dello schema, per esempio <varname>demelevation</"
+"varname> al posto di  <varname>public.demelevation</varname> e la tabella "
+"raster sarà creata nello schema di default del database o dell'utente"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:288
-#, no-c-format
+#: using_raster_dataman.xml:286
+#, fuzzy, no-c-format
 msgid ""
-"raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
 "sql\n"
 "psql -d gisdb -f elev.sql"
 msgstr ""
+"raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
+"sql\n"
+"psql -d gisdb -f elev.sql"
 
 #. Tag: para
-#: using_raster_dataman.xml:290
+#: using_raster_dataman.xml:288
 #, no-c-format
 msgid "A conversion and upload can be done all in one step using UNIX pipes:"
 msgstr ""
+"La conversione e il caricamento possono essere eseguiti in un unico "
+"passaggio tramite le pipe UNIX:"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:292
-#, no-c-format
+#: using_raster_dataman.xml:290
+#, fuzzy, no-c-format
 msgid ""
-"raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
 "-d gisdb"
 msgstr ""
+"raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
+"-d gisdb"
 
 #. Tag: para
-#: using_raster_dataman.xml:294
+#: using_raster_dataman.xml:292
 #, no-c-format
 msgid ""
 "Load rasters Massachusetts state plane meters aerial tiles into a schema "
@@ -535,29 +607,33 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:296
+#: using_raster_dataman.xml:294
 #, no-c-format
 msgid ""
 "raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128  -l 2,4 bostonaerials2008/*."
 "jpg aerials.boston | psql -U postgres -d gisdb -h localhost -p 5432"
 msgstr ""
+"raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128  -l 2,4 bostonaerials2008/*."
+"jpg aerials.boston | psql -U postgres -d gisdb -h localhost -p 5432"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:298
+#: using_raster_dataman.xml:296
 #, no-c-format
 msgid ""
 "--get a list of raster types supported:\n"
 "raster2pgsql -G"
 msgstr ""
+"--ottieni la lista dei tipi raster supportati:\n"
+"raster2pgsql -G"
 
 #. Tag: para
-#: using_raster_dataman.xml:300
+#: using_raster_dataman.xml:298
 #, no-c-format
 msgid "The -G commands outputs a list something like"
-msgstr ""
+msgstr "Il parametro -G restituirà un elenco tipo"
 
 #. Tag: screen
-#: using_raster_dataman.xml:301
+#: using_raster_dataman.xml:299
 #, no-c-format
 msgid ""
 "Available GDAL raster formats:\n"
@@ -659,38 +735,141 @@ msgid ""
 "  ZMap Plus Grid\n"
 "  NOAA NGS Geoid Height Grids"
 msgstr ""
+"Available GDAL raster formats:\n"
+"  Virtual Raster\n"
+"  GeoTIFF\n"
+"  National Imagery Transmission Format\n"
+"  Raster Product Format TOC format\n"
+"  ECRG TOC format\n"
+"  Erdas Imagine Images (.img)\n"
+"  CEOS SAR Image\n"
+"  CEOS Image\n"
+"  JAXA PALSAR Product Reader (Level 1.1/1.5)\n"
+"  Ground-based SAR Applications Testbed File Format (.gff)\n"
+"  ELAS\n"
+"  Arc/Info Binary Grid\n"
+"  Arc/Info ASCII Grid\n"
+"  GRASS ASCII Grid\n"
+"  SDTS Raster\n"
+"  DTED Elevation Raster\n"
+"  Portable Network Graphics\n"
+"  JPEG JFIF\n"
+"  In Memory Raster\n"
+"  Japanese DEM (.mem)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Envisat Image Format\n"
+"  Maptech BSB Nautical Charts\n"
+"  X11 PixMap Format\n"
+"  MS Windows Device Independent Bitmap\n"
+"  SPOT DIMAP\n"
+"  AirSAR Polarimetric Image\n"
+"  RadarSat 2 XML Product\n"
+"  PCIDSK Database File\n"
+"  PCRaster Raster File\n"
+"  ILWIS Raster Map\n"
+"  SGI Image File Format 1.0\n"
+"  SRTMHGT File Format\n"
+"  Leveller heightfield\n"
+"  Terragen heightfield\n"
+"  USGS Astrogeology ISIS cube (Version 3)\n"
+"  USGS Astrogeology ISIS cube (Version 2)\n"
+"  NASA Planetary Data System\n"
+"  EarthWatch .TIL\n"
+"  ERMapper .ers Labelled\n"
+"  NOAA Polar Orbiter Level 1b Data Set\n"
+"  FIT Image\n"
+"  GRIdded Binary (.grb)\n"
+"  Raster Matrix Format\n"
+"  EUMETSAT Archive native (.nat)\n"
+"  Idrisi Raster A.1\n"
+"  Intergraph Raster\n"
+"  Golden Software ASCII Grid (.grd)\n"
+"  Golden Software Binary Grid (.grd)\n"
+"  Golden Software 7 Binary Grid (.grd)\n"
+"  COSAR Annotated Binary Matrix (TerraSAR-X)\n"
+"  TerraSAR-X Product\n"
+"  DRDC COASP SAR Processor Raster\n"
+"  R Object Data Store\n"
+"  Portable Pixmap Format (netpbm)\n"
+"  USGS DOQ (Old Style)\n"
+"  USGS DOQ (New Style)\n"
+"  ENVI .hdr Labelled\n"
+"  ESRI .hdr Labelled\n"
+"  Generic Binary (.hdr Labelled)\n"
+"  PCI .aux Labelled\n"
+"  Vexcel MFF Raster\n"
+"  Vexcel MFF2 (HKV) Raster\n"
+"  Fuji BAS Scanner Image\n"
+"  GSC Geogrid\n"
+"  EOSAT FAST Format\n"
+"  VTP .bt (Binary Terrain) 1.3 Format\n"
+"  Erdas .LAN/.GIS\n"
+"  Convair PolGASP\n"
+"  Image Data and Analysis\n"
+"  NLAPS Data Format\n"
+"  Erdas Imagine Raw\n"
+"  DIPEx\n"
+"  FARSITE v.4 Landscape File (.lcp)\n"
+"  NOAA Vertical Datum .GTX\n"
+"  NADCON .los/.las Datum Grid Shift\n"
+"  NTv2 Datum Grid Shift\n"
+"  ACE2\n"
+"  Snow Data Assimilation System\n"
+"  Swedish Grid RIK (.rik)\n"
+"  USGS Optional ASCII DEM (and CDED)\n"
+"  GeoSoft Grid Exchange Format\n"
+"  Northwood Numeric Grid Format .grd/.tab\n"
+"  Northwood Classified Grid Format .grc/.tab\n"
+"  ARC Digitized Raster Graphics\n"
+"  Standard Raster Product (ASRP/USRP)\n"
+"  Magellan topo (.blx)\n"
+"  SAGA GIS Binary Grid (.sdat)\n"
+"  Kml Super Overlay\n"
+"  ASCII Gridded XYZ\n"
+"  HF2/HFZ heightfield raster\n"
+"  OziExplorer Image File\n"
+"  USGS LULC Composite Theme Grid\n"
+"  Arc/Info Export E00 GRID\n"
+"  ZMap Plus Grid\n"
+"  NOAA NGS Geoid Height Grids"
 
 #. Tag: title
-#: using_raster_dataman.xml:304
+#: using_raster_dataman.xml:302
 #, no-c-format
 msgid "Creating rasters using PostGIS raster functions"
-msgstr ""
+msgstr "Creazione di raster tramite le funzioni raster di PostGIS"
 
 #. Tag: para
-#: using_raster_dataman.xml:305
+#: using_raster_dataman.xml:303
 #, no-c-format
 msgid ""
 "On many occasions, you'll want to create rasters and raster tables right in "
 "the database. There are a plethora of functions to do that. The general "
 "steps to follow."
 msgstr ""
+"In varie occasioni vorrete creare raster e tabelle raster direttamente nel "
+"database. Per questo esiste una pletora di funzioni. Questi sono i passi "
+"generali da seguire."
 
 #. Tag: para
-#: using_raster_dataman.xml:307
+#: using_raster_dataman.xml:305
 #, no-c-format
 msgid ""
 "Create a table with a raster column to hold the new raster records which can "
 "be accomplished with:"
 msgstr ""
+"Creare una tabella con una colonna raster per contenere i nuovi valori "
+"raster può essere ottenuto da:"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:308
+#: using_raster_dataman.xml:306
 #, no-c-format
 msgid "CREATE TABLE myrasters(rid serial primary key, rast raster);"
-msgstr ""
+msgstr "CREATE TABLE myrasters(rid serial primary key, rast raster);"
 
 #. Tag: para
-#: using_raster_dataman.xml:311
+#: using_raster_dataman.xml:309
 #, no-c-format
 msgid ""
 "There are many functions to help with that goal. If you are creating rasters "
@@ -698,9 +877,13 @@ msgid ""
 "linkend=\"RT_ST_MakeEmptyRaster\"/>, followed by <xref linkend="
 "\"RT_ST_AddBand\"/>"
 msgstr ""
+"Esistono molte funzioni per assitervi verso questo obiettivo. Se state "
+"creando un raster non derivato da altri raster, inizierete con: <xref "
+"linkend=\"RT_ST_MakeEmptyRaster\"/>, seguito da <xref linkend=\"RT_ST_AddBand"
+"\"/>"
 
 #. Tag: para
-#: using_raster_dataman.xml:313
+#: using_raster_dataman.xml:311
 #, no-c-format
 msgid ""
 "You can also create rasters from geometries. To achieve that you'll want to "
@@ -709,34 +892,47 @@ msgid ""
 "\"RT_ST_MapAlgebraFct2\"/> or any of the family of other map algebra "
 "functions."
 msgstr ""
+"Potete anche creare raster a partire dalle geometria. Per questo userete "
+"<xref linkend=\"RT_ST_AsRaster\"/>, magari accompagnato da altre funzioni "
+"come <xref linkend=\"RT_ST_Union\"/> o <xref linkend="
+"\"RT_ST_MapAlgebraFct2\"/>, o qualsiasi altra delle funzioni di algebra "
+"sulle mappe."
 
 #. Tag: para
-#: using_raster_dataman.xml:315
+#: using_raster_dataman.xml:313
 #, no-c-format
 msgid ""
 "There are even many more options for creating new raster tables from "
 "existing tables. For example you can create a raster table in a different "
 "projection from an existing one using <xref linkend=\"RT_ST_Transform\"/>"
 msgstr ""
+"Vi sono poi ancora più opzioni per creare nuove tabelle raster a partire da "
+"tabelle esistenti. Per esempio potete creare una tabella raster in una "
+"proiezione diversa da una tabella esistente usando <xref linkend="
+"\"RT_ST_Transform\"/>"
 
 #. Tag: para
-#: using_raster_dataman.xml:317
+#: using_raster_dataman.xml:315
 #, no-c-format
 msgid ""
 "Once you are done populating your table initially, you'll want to create a "
 "spatial index on the raster column with something like:"
 msgstr ""
+"Una volta inseriti dei valori iniziali nella tabella, vorrete creare un "
+"indice spaziale sulla colonna raster, con un comando tipo:"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:318
+#: using_raster_dataman.xml:316
 #, no-c-format
 msgid ""
-"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING gist"
-"( ST_ConvexHull(rast) );"
+"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING "
+"gist( ST_ConvexHull(rast) );"
 msgstr ""
+"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING "
+"gist( ST_ConvexHull(rast) );"
 
 #. Tag: para
-#: using_raster_dataman.xml:319
+#: using_raster_dataman.xml:317
 #, no-c-format
 msgid ""
 "Note the use of <xref linkend=\"RT_ST_ConvexHull\"/> since most raster "
@@ -744,7 +940,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:320
+#: using_raster_dataman.xml:318
 #, no-c-format
 msgid ""
 "Pre-2.0 versions of PostGIS raster were based on the envelop rather than the "
@@ -753,20 +949,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:321
+#: using_raster_dataman.xml:319
 #, no-c-format
 msgid ""
 "Apply raster constraints using <xref linkend=\"RT_AddRasterConstraints\"/>"
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:326
+#: using_raster_dataman.xml:324
 #, no-c-format
 msgid "Raster Catalogs"
-msgstr ""
+msgstr "Cataloghi raster"
 
 #. Tag: para
-#: using_raster_dataman.xml:327
+#: using_raster_dataman.xml:325
 #, no-c-format
 msgid ""
 "There are two raster catalog views that come packaged with PostGIS. Both "
@@ -774,17 +970,24 @@ msgid ""
 "As a result the catalog views are always consistent with the raster data in "
 "the tables since the constraints are enforced."
 msgstr ""
+"Esistono due tipi di viste dei cataloghi raster fornite con PostGIS. "
+"Entrambe le viste utilizzano informazioni contenute nei dati sui limiti "
+"delle tabelle raster. Da ciò risulta che le viste dei cataloghi sono sempre "
+"consistenti con i dati raster nelle tabelle, dato che sono considerati i "
+"limiti di queste."
 
 #. Tag: para
-#: using_raster_dataman.xml:331
+#: using_raster_dataman.xml:329
 #, no-c-format
 msgid ""
 "<varname>raster_columns</varname> this view catalogs all the raster table "
 "columns in your database."
 msgstr ""
+"<varname>raster_columns</varname> questa vista riporta il catalogo di tutte "
+"le colonne raster nel vostro database."
 
 #. Tag: para
-#: using_raster_dataman.xml:334
+#: using_raster_dataman.xml:332
 #, no-c-format
 msgid ""
 "<varname>raster_overviews</varname> this view catalogs all the raster table "
@@ -792,15 +995,20 @@ msgid ""
 "Tables of this type are generated when you use the <varname>-l</varname> "
 "switch during load."
 msgstr ""
+"<varname>raster_overviews</varname> questa vista elenca tutte le colonne "
+"raste di tabelle nel vostro database che sono utilizzate come vista "
+"d'insieme per una tabella con maggiori dettagli. Le tabelle di questo tipo "
+"sono generate quando utilizzate l'opzione <varname>-l</varname> durante il "
+"caricamento."
 
 #. Tag: title
-#: using_raster_dataman.xml:338
+#: using_raster_dataman.xml:336
 #, no-c-format
 msgid "Raster Columns Catalog"
-msgstr ""
+msgstr "Catalogo delle colonne raster"
 
 #. Tag: para
-#: using_raster_dataman.xml:339
+#: using_raster_dataman.xml:337
 #, no-c-format
 msgid ""
 "The <varname>raster_columns</varname> is a catalog of all raster table "
@@ -809,9 +1017,15 @@ msgid ""
 "you restore one raster table from a backup of another database. The "
 "following columns exist in the <varname>raster_columns</varname> catalog."
 msgstr ""
+" <varname>raster_columns</varname> è un catalogo di tutte le colonne di "
+"tabelle che nel vostro database sono di tipo raster. E' una vista che "
+"utilizza i limiti applicati alle tabelle, per cui le informazioni sono "
+"sempre congruenti, anche se ripristinate una tabella raster dal backup di un "
+"altro database. Il catalogo  <varname>raster_columns</varname> contiene le "
+"seguenti colonne."
 
 #. Tag: para
-#: using_raster_dataman.xml:341
+#: using_raster_dataman.xml:339
 #, no-c-format
 msgid ""
 "If you created your tables not with the loader or forgot to specify the "
@@ -820,31 +1034,41 @@ msgid ""
 "<varname>raster_columns</varname> catalog registers the common information "
 "about your raster tiles."
 msgstr ""
+"Se non avete creato le tabelle con il loader o vi siete dimenticati di "
+"specificare l'opzione  <varname>-C</varname> durante il caricamento, potete "
+"far applicare i limiti a cose fatte utilizzando <xref linkend="
+"\"RT_AddRasterConstraints\"/>, di modo che il catalogo "
+"<varname>raster_columns</varname> registri le informazioni sulle vostre tile "
+"raster."
 
 #. Tag: para
-#: using_raster_dataman.xml:346
+#: using_raster_dataman.xml:344
 #, no-c-format
 msgid ""
 "<varname>r_table_catalog</varname> The database the table is in. This will "
 "always read the current database."
 msgstr ""
+"<varname>r_table_catalog</varname> Il database in cui si trova la tabella. "
+"Conterrà sempre il database corrente."
 
 #. Tag: para
-#: using_raster_dataman.xml:349
+#: using_raster_dataman.xml:347
 #, no-c-format
 msgid ""
 "<varname>r_table_schema</varname> The database schema the raster table "
 "belongs to."
 msgstr ""
+"<varname>r_table_schema</varname> Lo schema database cui la tabella raster "
+"appartiene."
 
 #. Tag: para
-#: using_raster_dataman.xml:352
+#: using_raster_dataman.xml:350
 #, no-c-format
 msgid "<varname>r_table_name</varname> raster table"
-msgstr ""
+msgstr "<varname>r_table_name</varname> tabella raster"
 
 #. Tag: para
-#: using_raster_dataman.xml:355
+#: using_raster_dataman.xml:353
 #, no-c-format
 msgid ""
 "<varname>r_raster_column</varname> the column in the <varname>r_table_name</"
@@ -853,17 +1077,24 @@ msgid ""
 "to have a raster table listed multiple times with a different raster column "
 "for each."
 msgstr ""
+"<varname>r_raster_column</varname> la colonna nella tabella  "
+"<varname>r_table_name</varname> che è di tipo raster. Nulla in PostGIS vi "
+"impedisce di avere più colonne raster per tabella, per cui è possibile avere "
+"una tabella raster elencata più volte con il riferimento ogni volta a una "
+"colonna raster differente.."
 
 #. Tag: para
-#: using_raster_dataman.xml:358
+#: using_raster_dataman.xml:356
 #, no-c-format
 msgid ""
 "<varname>srid</varname> The spatial reference identifier of the raster. "
 "Should be an entry in the <xref linkend=\"spatial_ref_sys\"/>."
 msgstr ""
+"<varname>srid</varname> L'identificatore del sistema di riferimento spaziale "
+"del raster. Dovrebbe essere una voce di <xref linkend=\"spatial_ref_sys\"/>."
 
 #. Tag: para
-#: using_raster_dataman.xml:361
+#: using_raster_dataman.xml:359
 #, no-c-format
 msgid ""
 "<varname>scale_x</varname> The scaling between geometric spatial coordinates "
@@ -871,9 +1102,14 @@ msgid ""
 "same <varname>scale_x</varname> and this constraint is applied. Refer to "
 "<xref linkend=\"RT_ST_ScaleX\"/> for more details."
 msgstr ""
+"<varname>scale_x</varname> Il rapporto di scala tra le coordinate "
+"geometriche e il pixel, disponibile solo se tutte le tile nella colonna "
+"raster hanno lo stesso valore di  <varname>scale_x</varname> e questo limite "
+"è applicato. Si rimanda è <xref linkend=\"RT_ST_ScaleX\"/> per ulteriori "
+"dettagli."
 
 #. Tag: para
-#: using_raster_dataman.xml:364
+#: using_raster_dataman.xml:362
 #, no-c-format
 msgid ""
 "<varname>scale_y</varname> The scaling between geometric spatial coordinates "
@@ -882,54 +1118,67 @@ msgid ""
 "constraint is applied. Refer to <xref linkend=\"RT_ST_ScaleY\"/> for more "
 "details."
 msgstr ""
+"<varname>scale_y</varname> Il rapporto di scala tra le coordinate "
+"geometriche e il pixel, disponibile solo se tutte le tile nella colonna "
+"raster hanno lo stesso valore di  <varname>scale_y</varname> e questo limite "
+"è applicato. Si rimanda è <xref linkend=\"RT_ST_ScaleY\"/> per ulteriori "
+"dettagli."
 
 #. Tag: para
-#: using_raster_dataman.xml:367
+#: using_raster_dataman.xml:365
 #, no-c-format
 msgid ""
 "<varname>blocksize_x</varname> The width (number of pixels across) of each "
 "raster tile . Refer to <xref linkend=\"RT_ST_Width\"/> for more details."
 msgstr ""
+"<varname>blocksize_x</varname> La larghezza (come numero di pixel in "
+"orizzontale) di ogni tile raster. Si rimanda a <xref linkend=\"RT_ST_Width\"/"
+"> per ulteriori dettagli."
 
 #. Tag: para
-#: using_raster_dataman.xml:370
+#: using_raster_dataman.xml:368
 #, no-c-format
 msgid ""
 "<varname>blocksize_y</varname> The width (number of pixels down) of each "
 "raster tile . Refer to <xref linkend=\"RT_ST_Height\"/> for more details."
 msgstr ""
+"<varname>blocksize_y</varname> L'altezza (number of pixels in verticale) di "
+"ogni tile raster. Si rimanda a <xref linkend=\"RT_ST_Height\"/> per "
+"ulteriori dettagli."
 
 #. Tag: para
-#: using_raster_dataman.xml:373
+#: using_raster_dataman.xml:371
 #, no-c-format
 msgid ""
 "<varname>same_alignment</varname> A boolean that is true if all the raster "
 "tiles have the same alignment . Refer to <xref linkend=\"RT_ST_SameAlignment"
 "\"/> for more details."
 msgstr ""
+"<varname>stesso_allineamento</varname> Variabile booleana pari a \"vero\" se "
+"tutte le tile raster hanno lo stesso allineamento. Si rimanda a <xref "
+"linkend=\"RT_ST_SameAlignment\"/> per ulteriori dettagli."
 
 #. Tag: para
-#: using_raster_dataman.xml:376
+#: using_raster_dataman.xml:374
 #, no-c-format
 msgid ""
-"<varname>regular_blocking</varname> This is a true/false constraint flag set "
-"on the table to denote that the tiles do not overlap, are of the same "
-"alignment, pixel size, srid etc. It is not really validated but just taken "
-"as a given so should be used for informational. In the future we plan to "
-"properly constrain this so that this inforamtion is guaranteed to be right "
-"when it returns <varname>true</varname>"
+"<varname>regular_blocking</varname> If the raster column has the spatially "
+"unique and coverage tile constraints, the value with be TRUE. Otherwise, it "
+"will be FALSE."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:379
+#: using_raster_dataman.xml:377
 #, no-c-format
 msgid ""
 "<varname>num_bands</varname> The number of bands in each tile of your raster "
 "set. This is the same information as what is provided by"
 msgstr ""
+"<varname>numero_bande</varname> Il numero delle bande in ogni tile del set "
+"di raster. Questa è la stessa informazione fornita da"
 
 #. Tag: para
-#: using_raster_dataman.xml:382
+#: using_raster_dataman.xml:380
 #, no-c-format
 msgid ""
 "<varname>pixel_types</varname> An array defining the pixel type for each "
@@ -937,9 +1186,13 @@ msgid ""
 "number of bands. The pixel_types are one of the following defined in <xref "
 "linkend=\"RT_ST_BandPixelType\"/>."
 msgstr ""
+"<varname>pixel_types</varname> Un vettore che definisce il tipo di pixel per "
+"ciascuna banda. In questo vettore avrete un numero di elementi pari al "
+"numero delle bande. I valori di  pixel_types possono essere tra quelli "
+"definiti in  <xref linkend=\"RT_ST_BandPixelType\"/>."
 
 #. Tag: para
-#: using_raster_dataman.xml:385
+#: using_raster_dataman.xml:383
 #, no-c-format
 msgid ""
 "<varname>nodata_values</varname> An array of double precision numbers "
@@ -949,9 +1202,28 @@ msgid ""
 "operations. This is similar information provided by <xref linkend="
 "\"RT_ST_BandNoDataValue\"/>."
 msgstr ""
+"<varname>nodata_values</varname> Un vettore in doppia precisione che spefica "
+"i valori <varname>nodata_value</varname> per ciascuna banda. Avrete in "
+"questo vettore un numero di elementi pari al numero di bande. Questi numeri "
+"definiscono il valore del pixel che per ciascuna banda deve essere ignorato "
+"nella maggior parte delle operazioni. L'informazion è simile a quella "
+"fornita da <xref linkend=\"RT_ST_BandNoDataValue\"/>."
+
+#. Tag: para
+#: using_raster_dataman.xml:386
+#, fuzzy, no-c-format
+msgid ""
+"<varname>out_db</varname> An array of boolean flags indicating if the raster "
+"bands data is maintained outside the database. You will have the same number "
+"of elements in this array as you have number of bands."
+msgstr ""
+"<varname>pixel_types</varname> Un vettore che definisce il tipo di pixel per "
+"ciascuna banda. In questo vettore avrete un numero di elementi pari al "
+"numero delle bande. I valori di  pixel_types possono essere tra quelli "
+"definiti in  <xref linkend=\"RT_ST_BandPixelType\"/>."
 
 #. Tag: para
-#: using_raster_dataman.xml:388
+#: using_raster_dataman.xml:389
 #, no-c-format
 msgid ""
 "<varname>extent</varname> This is the extent of all the raster rows in your "
@@ -961,14 +1233,22 @@ msgid ""
 "\"RT_AddRasterConstraints\"/> after load."
 msgstr ""
 
+#. Tag: para
+#: using_raster_dataman.xml:392
+#, no-c-format
+msgid ""
+"<varname>spatial_index</varname> A boolean that is true if raster column has "
+"a spatial index."
+msgstr ""
+
 #. Tag: title
-#: using_raster_dataman.xml:393
+#: using_raster_dataman.xml:397
 #, no-c-format
 msgid "Raster Overviews"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:394
+#: using_raster_dataman.xml:398
 #, no-c-format
 msgid ""
 "<varname>raster_overviews</varname> catalogs information about raster table "
@@ -978,11 +1258,12 @@ msgid ""
 "varname> because they are rasters in their own right but also serve an "
 "additional special purpose of being a lower resolution caricature of a "
 "higher resolution table. These are generated along-side the main raster "
-"table when you use the <varname>-l</varname> switch in raster loading."
+"table when you use the <varname>-l</varname> switch in raster loading or can "
+"be generated manually using <xref linkend=\"RT_AddOverviewConstraints\"/>."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:395
+#: using_raster_dataman.xml:399
 #, no-c-format
 msgid ""
 "Overview tables contain the same constraints as other raster tables as well "
@@ -990,7 +1271,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:396
+#: using_raster_dataman.xml:400
 #, no-c-format
 msgid ""
 "The information in <varname>raster_overviews</varname> does not duplicate "
@@ -1002,13 +1283,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:397
+#: using_raster_dataman.xml:401
 #, no-c-format
 msgid "Two main reasons for overviews are:"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:399
+#: using_raster_dataman.xml:403
 #, no-c-format
 msgid ""
 "Low resolution representation of the core tables commonly used for fast "
@@ -1016,7 +1297,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:400
+#: using_raster_dataman.xml:404
 #, no-c-format
 msgid ""
 "Computations are generally faster to do on them than their higher resolution "
@@ -1027,7 +1308,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:403
+#: using_raster_dataman.xml:407
 #, no-c-format
 msgid ""
 "The <varname>raster_overviews</varname> catalog contains the following "
@@ -1035,7 +1316,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:406
+#: using_raster_dataman.xml:410
 #, no-c-format
 msgid ""
 "<varname>o_table_catalog</varname> The database the overview table is in. "
@@ -1043,7 +1324,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:409
+#: using_raster_dataman.xml:413
 #, no-c-format
 msgid ""
 "<varname>o_table_schema</varname> The database schema the overview raster "
@@ -1051,20 +1332,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:412
+#: using_raster_dataman.xml:416
 #, no-c-format
 msgid "<varname>o_table_name</varname> raster overview table name"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:415
+#: using_raster_dataman.xml:419
 #, no-c-format
 msgid ""
 "<varname>o_raster_column</varname> the raster column in the overview table."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:419
+#: using_raster_dataman.xml:423
 #, no-c-format
 msgid ""
 "<varname>r_table_catalog</varname> The database the raster table that this "
@@ -1072,7 +1353,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:422
+#: using_raster_dataman.xml:426
 #, no-c-format
 msgid ""
 "<varname>r_table_schema</varname> The database schema the raster table that "
@@ -1080,14 +1361,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:425
+#: using_raster_dataman.xml:429
 #, no-c-format
 msgid ""
 "<varname>r_table_name</varname> raster table that this overview services."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:428
+#: using_raster_dataman.xml:432
 #, no-c-format
 msgid ""
 "<varname>r_raster_column</varname> the raster column that this overview "
@@ -1095,7 +1376,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:431
+#: using_raster_dataman.xml:435
 #, no-c-format
 msgid ""
 "<varname>overview_factor</varname> - this is the pyramid level of the "
@@ -1115,13 +1396,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:443
+#: using_raster_dataman.xml:447
 #, no-c-format
 msgid "Building Custom Applications with PostGIS Raster"
-msgstr ""
+msgstr "Costruire applicazioni personalizzate con PostGIS Raster"
 
 #. Tag: para
-#: using_raster_dataman.xml:444
+#: using_raster_dataman.xml:448
 #, no-c-format
 msgid ""
 "The fact that PostGIS raster provides you with SQL functions to render "
@@ -1133,16 +1414,26 @@ msgid ""
 "ulink>. In addition you can use a wide variety of languages as demonstrated "
 "in this section."
 msgstr ""
+"Il fatto che PostGIS raster vi fornisca le funzioni per restituire i raster "
+"in formati di immagine noti vi dà diverse opzioni per visualizzarli. Per "
+"esempio potete utilizzare OpenOffice / LibreOffice, come mostrato alla "
+"pagina <ulink url=\"http://www.postgresonline.com/journal/archives/244-"
+"Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports.html"
+"\">Rendering PostGIS Raster graphics with LibreOffice Base Reports</ulink>. "
+"Inoltre potete utilizzare diversi linguaggi, come illustrato in questo "
+"paragrafo."
 
 #. Tag: title
-#: using_raster_dataman.xml:447
+#: using_raster_dataman.xml:451
 #, no-c-format
 msgid ""
 "PHP Example Outputting using ST_AsPNG in concert with other raster functions"
 msgstr ""
+"Esempio di output in PHP, utilizzando ST_AsPNG assieme ad altre funzioni "
+"raster"
 
 #. Tag: para
-#: using_raster_dataman.xml:448
+#: using_raster_dataman.xml:452
 #, no-c-format
 msgid ""
 "In this section, we'll demonstrate how to use the PHP PostgreSQL driver and "
@@ -1150,9 +1441,13 @@ msgid ""
 "band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
 "an img src html tag."
 msgstr ""
+"In questo paragrafo mostreremo come utilizzare il driver PHP PostgreSQL e la "
+"famiglia di funzioni <xref linkend=\"RT_ST_AsGDALRaster\"/> per estrarre le "
+"bande 1,2,3 di un raster a una richiesta PHP che poi può essere inserita in "
+"un tag src di un'immagine HTML."
 
 #. Tag: para
-#: using_raster_dataman.xml:451 using_raster_dataman.xml:463
+#: using_raster_dataman.xml:455 using_raster_dataman.xml:467
 #, no-c-format
 msgid ""
 "The sample query demonstrates how to combine a whole bunch of raster "
@@ -1162,18 +1457,28 @@ msgid ""
 "specified projection using <xref linkend=\"RT_ST_Transform\"/>, and then "
 "outputs the results as a png using <xref linkend=\"RT_ST_AsPNG\"/>."
 msgstr ""
+"La query di esempio mostra come combinare varie funzioni raster per "
+"recuperare tutte le tile che intersecano una data area rettangolare in "
+"wgs84, unisce le tile risultanti per tutte le bande con <xref linkend="
+"\"RT_ST_Union\"/>, le trasforma in una proiezione specificata dall'utente "
+"con <xref linkend=\"RT_ST_Transform\"/> e infine crea un PNG in uscita "
+"tramite <xref linkend=\"RT_ST_AsPNG\"/>."
 
 #. Tag: para
-#: using_raster_dataman.xml:454
+#: using_raster_dataman.xml:458
 #, no-c-format
 msgid ""
 "You would call the below using <programlisting>http://mywebserver/"
 "test_raster.php?srid=2249</programlisting> to get the raster image in "
 "Massachusetts state plane feet."
 msgstr ""
+"Andreste a chiamare il codice sotto utilizzando  <programlisting>http://"
+"mywebserver/test_raster.php?srid=2249</programlisting> per ottenere "
+"l'immagine raster proiettata nel sistema di riferimento Massachusetts state "
+"plane feet."
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:455
+#: using_raster_dataman.xml:459
 #, no-c-format
 msgid ""
 "<![CDATA[<?php\n"
@@ -1206,17 +1511,47 @@ msgid ""
 "echo pg_unescape_bytea($row[0]);\n"
 "?>]]>"
 msgstr ""
+"<![CDATA[<?php\n"
+"/** contents of test_raster.php **/\n"
+"$conn_str ='dbname=mydb host=localhost port=5432 user=myuser "
+"password=mypwd';\n"
+"$dbconn = pg_connect($conn_str);\n"
+"header('Content-Type: image/png');  \n"
+"/**If a particular projection was requested use it otherwise use mass state "
+"plane meters **/\n"
+"if (!empty( $_REQUEST['srid'] ) && is_numeric( $_REQUEST['srid']) ){\n"
+"                $input_srid = intval($_REQUEST['srid']);\n"
+"}\n"
+"else { $input_srid = 26986; }\n"
+"/** The set bytea_output may be needed for PostgreSQL 9.0+, but not for 8.4 "
+"**/\n"
+"$sql = \"set bytea_output='escape';\n"
+"SELECT ST_AsPNG(ST_Transform(\n"
+"                        ST_AddBand(ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                ,$input_srid) ) As new_rast\n"
+" FROM aerials.boston \n"
+"        WHERE \n"
+"         ST_Intersects(rast, ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, "
+"-71.1210, 42.218,4326),26986) )\"; \n"
+"$result = pg_query($sql);\n"
+"$row = pg_fetch_row($result);\n"
+"pg_free_result($result);\n"
+"if ($row === false) return;\n"
+"echo pg_unescape_bytea($row[0]);\n"
+"?>]]>"
 
 #. Tag: title
-#: using_raster_dataman.xml:458
+#: using_raster_dataman.xml:462
 #, no-c-format
 msgid ""
 "ASP.NET C# Example Outputting using ST_AsPNG in concert with other raster "
 "functions"
 msgstr ""
+"Esempio ASP.NET C# di output con ST_AsPNG, assieme ad altre funzioni raster"
 
 #. Tag: para
-#: using_raster_dataman.xml:459
+#: using_raster_dataman.xml:463
 #, no-c-format
 msgid ""
 "In this section, we'll demonstrate how to use Npgsql PostgreSQL .NET driver "
@@ -1224,9 +1559,13 @@ msgid ""
 "band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
 "an img src html tag."
 msgstr ""
+"In questo paragrafo vi mostreremo come usare il driver .NET Npgsql e la "
+"famiglia di funzioni <xref linkend=\"RT_ST_AsGDALRaster\"/> per inviare in "
+"uscita le bande 1,2,3 di un raster a una richiesta PHP che può poi essere "
+"inserita nel tag src di un immagine html."
 
 #. Tag: para
-#: using_raster_dataman.xml:462
+#: using_raster_dataman.xml:466
 #, no-c-format
 msgid ""
 "You will need the npgsql .NET PostgreSQL driver for this exercise which you "
@@ -1234,26 +1573,35 @@ msgid ""
 "org/\">http://npgsql.projects.postgresql.org/</ulink>. Just download the "
 "latest and drop into your ASP.NET bin folder and you'll be good to go."
 msgstr ""
+"Per questo vi servirà il driver PostgreSQL npgsql .NET. Potete recuperare il "
+"più recente da <ulink url=\"http://npgsql.projects.postgresql.org/\">http://"
+"npgsql.projects.postgresql.org/</ulink>. Scaricatelo e salvatelo nella "
+"vostra cartella bin di ASP.NET per poter lavorare."
 
 #. Tag: para
-#: using_raster_dataman.xml:466
+#: using_raster_dataman.xml:470
 #, no-c-format
 msgid ""
 "This is same example as <xref linkend=\"RT_PHP_Output\"/> except implemented "
 "in C#."
 msgstr ""
+"Questo è lo stesso esempio illustrato in <xref linkend=\"RT_PHP_Output\"/>, "
+"implementato in C#."
 
 #. Tag: para
-#: using_raster_dataman.xml:467
+#: using_raster_dataman.xml:471
 #, no-c-format
 msgid ""
 "You would call the below using <programlisting>http://mywebserver/TestRaster."
 "ashx?srid=2249</programlisting> to get the raster image in Massachusetts "
 "state plane feet."
 msgstr ""
+"Richiamerete il codice sotto come <programlisting>http://mywebserver/"
+"TestRaster.ashx?srid=2249</programlisting> per ottenere l'immagine raster "
+"nel sistema di riferimento Massachusetts state plane feet."
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:468
+#: using_raster_dataman.xml:472
 #, no-c-format
 msgid ""
 "-- web.config connection string section --\n"
@@ -1263,9 +1611,15 @@ msgid ""
 "Id=myuser;password=mypwd\"/>\n"
 "</connectionStrings>]]>"
 msgstr ""
+"-- web.config connection string section --\n"
+"<![CDATA[<connectionStrings>\n"
+"    <add name=\"DSN\" \n"
+"        connectionString=\"server=localhost;database=mydb;Port=5432;User "
+"Id=myuser;password=mypwd\"/>\n"
+"</connectionStrings>]]>"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:469
+#: using_raster_dataman.xml:473
 #, no-c-format
 msgid ""
 "// Code for TestRaster.ashx\n"
@@ -1296,9 +1650,9 @@ msgid ""
 "                string sql = null;\n"
 "                int input_srid = 26986;\n"
 "        try {\n"
-"                    using (NpgsqlConnection conn = new NpgsqlConnection"
-"(System.Configuration.ConfigurationManager.ConnectionStrings[\"DSN\"]."
-"ConnectionString)) {\n"
+"                    using (NpgsqlConnection conn = new "
+"NpgsqlConnection(System.Configuration.ConfigurationManager."
+"ConnectionStrings[\"DSN\"].ConnectionString)) {\n"
 "                            conn.Open();\n"
 "\n"
 "                if (context.Request[\"srid\"] != null)\n"
@@ -1337,70 +1691,153 @@ msgid ""
 "        }\n"
 "}]]>"
 msgstr ""
+"// Code for TestRaster.ashx\n"
+"<![CDATA[<%@ WebHandler Language=\"C#\" Class=\"TestRaster\" %>\n"
+"using System;\n"
+"using System.Data;\n"
+"using System.Web;\n"
+"using Npgsql;\n"
+"\n"
+"public class TestRaster : IHttpHandler\n"
+"{\n"
+"        public void ProcessRequest(HttpContext context)\n"
+"        {\n"
+"                \n"
+"                context.Response.ContentType = \"image/png\";\n"
+"                context.Response.BinaryWrite(GetResults(context));\n"
+"                \n"
+"        }\n"
+"\n"
+"        public bool IsReusable {\n"
+"                get { return false; }\n"
+"        }\n"
+"\n"
+"        public byte[] GetResults(HttpContext context)\n"
+"        {\n"
+"                byte[] result = null;\n"
+"                NpgsqlCommand command;\n"
+"                string sql = null;\n"
+"                int input_srid = 26986;\n"
+"        try {\n"
+"                    using (NpgsqlConnection conn = new "
+"NpgsqlConnection(System.Configuration.ConfigurationManager."
+"ConnectionStrings[\"DSN\"].ConnectionString)) {\n"
+"                            conn.Open();\n"
+"\n"
+"                if (context.Request[\"srid\"] != null)\n"
+"                {\n"
+"                    input_srid = Convert.ToInt32(context.Request[\"srid"
+"\"]);  \n"
+"                }\n"
+"                sql = @\"SELECT ST_AsPNG(\n"
+"                            ST_Transform(\n"
+"                                        ST_AddBand(\n"
+"                                ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                                    ,:input_srid) ) As "
+"new_rast \n"
+"                        FROM aerials.boston \n"
+"                                WHERE \n"
+"                                    ST_Intersects(rast, \n"
+"                                    ST_Transform(ST_MakeEnvelope(-71.1217, "
+"42.227, -71.1210, 42.218,4326),26986) )\";\n"
+"                            command = new NpgsqlCommand(sql, conn);\n"
+"                command.Parameters.Add(new NpgsqlParameter(\"input_srid\", "
+"input_srid));\n"
+"           \n"
+"                        \n"
+"                            result = (byte[]) command.ExecuteScalar();\n"
+"                conn.Close();\n"
+"                        }\n"
+"\n"
+"                }\n"
+"        catch (Exception ex)\n"
+"        {\n"
+"            result = null;\n"
+"            context.Response.Write(ex.Message.Trim());\n"
+"        }\n"
+"                return result;\n"
+"        }\n"
+"}]]>"
 
 #. Tag: title
-#: using_raster_dataman.xml:472
+#: using_raster_dataman.xml:476
 #, no-c-format
 msgid "Java console app that outputs raster query as Image file"
-msgstr ""
+msgstr "app per Java console per esportare una query raster come file immagine"
 
 #. Tag: para
-#: using_raster_dataman.xml:473
+#: using_raster_dataman.xml:477
 #, no-c-format
 msgid ""
 "This is a simple java console app that takes a query that returns one image "
 "and outputs to specified file."
 msgstr ""
+"Questa è una semplice app per console java che prende una query, ne "
+"restituisce la corrispondente immagine e la scrive in un file specificato."
 
 #. Tag: para
-#: using_raster_dataman.xml:474
+#: using_raster_dataman.xml:478
 #, no-c-format
 msgid ""
 "You can download the latest PostgreSQL JDBC drivers from <ulink url=\"http://"
 "jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/download."
 "html</ulink>"
 msgstr ""
+"Potete scaricare i driver JDBC per PostgreSQL più recenti da  <ulink url="
+"\"http://jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/"
+"download.html</ulink>"
 
 #. Tag: para
-#: using_raster_dataman.xml:475
+#: using_raster_dataman.xml:479
 #, no-c-format
 msgid "You can compile the following code using a command something like:"
-msgstr ""
+msgstr "Potete compilare il codice seguente con un comando tipo:"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:476
+#: using_raster_dataman.xml:480
 #, no-c-format
 msgid ""
 "set env CLASSPATH .:..\\postgresql-9.0-801.jdbc4.jar\n"
 "javac SaveQueryImage.java\n"
 "jar cfm SaveQueryImage.jar Manifest.txt *.class"
 msgstr ""
+"set env CLASSPATH .:..\\postgresql-9.0-801.jdbc4.jar\n"
+"javac SaveQueryImage.java\n"
+"jar cfm SaveQueryImage.jar Manifest.txt *.class"
 
 #. Tag: para
-#: using_raster_dataman.xml:477
+#: using_raster_dataman.xml:481
 #, no-c-format
 msgid "And call it from the command-line with something like"
-msgstr ""
+msgstr "E lanciarlo dalla riga di comando con un'istruzione tipo"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:478
+#: using_raster_dataman.xml:482
 #, no-c-format
 msgid ""
-"java -jar SaveQueryImage.jar \"SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point"
-"(1,5),10, 'quad_segs=2'),150, 150, '8BUI',100));\" \"test.png\""
+"java -jar SaveQueryImage.jar \"SELECT "
+"ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10, 'quad_segs=2'),150, 150, "
+"'8BUI',100));\" \"test.png\""
 msgstr ""
+"java -jar SaveQueryImage.jar \"SELECT "
+"ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10, 'quad_segs=2'),150, 150, "
+"'8BUI',100));\" \"test.png\""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:479
+#: using_raster_dataman.xml:483
 #, no-c-format
 msgid ""
 "-- Manifest.txt --\n"
 "<![CDATA[Class-Path: postgresql-9.0-801.jdbc4.jar\n"
 "Main-Class: SaveQueryImage]]>"
 msgstr ""
+"-- Manifest.txt --\n"
+"<![CDATA[Class-Path: postgresql-9.0-801.jdbc4.jar\n"
+"Main-Class: SaveQueryImage]]>"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:480
+#: using_raster_dataman.xml:484
 #, no-c-format
 msgid ""
 "// Code for SaveQueryImage.java\n"
@@ -1416,8 +1853,8 @@ msgid ""
 "DriverManager.\");\n"
 "      \n"
 "      try {\n"
-"        //java.sql.DriverManager.registerDriver (new org.postgresql.Driver"
-"());\n"
+"        //java.sql.DriverManager.registerDriver (new org.postgresql."
+"Driver());\n"
 "        Class.forName(\"org.postgresql.Driver\");\n"
 "      } \n"
 "      catch (ClassNotFoundException cnfe) {\n"
@@ -1465,26 +1902,89 @@ msgid ""
 "  }\n"
 "}]]>"
 msgstr ""
+"// Code for SaveQueryImage.java\n"
+"<![CDATA[import java.sql.Connection;\n"
+"import java.sql.SQLException;\n"
+"import java.sql.PreparedStatement;\n"
+"import java.sql.ResultSet;\n"
+"import java.io.*;\n"
+"\n"
+"public class SaveQueryImage {\n"
+"  public static void main(String[] argv) {\n"
+"      System.out.println(\"Checking if Driver is registered with "
+"DriverManager.\");\n"
+"      \n"
+"      try {\n"
+"        //java.sql.DriverManager.registerDriver (new org.postgresql."
+"Driver());\n"
+"        Class.forName(\"org.postgresql.Driver\");\n"
+"      } \n"
+"      catch (ClassNotFoundException cnfe) {\n"
+"        System.out.println(\"Couldn't find the driver!\");\n"
+"        cnfe.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }\n"
+"      \n"
+"      Connection conn = null;\n"
+"      \n"
+"      try {\n"
+"        conn = DriverManager.getConnection(\"jdbc:postgresql://"
+"localhost:5432/mydb\",\"myuser\", \"mypwd\");\n"
+"        conn.setAutoCommit(false);\n"
+"\n"
+"        PreparedStatement sGetImg = conn.prepareStatement(argv[0]);\n"
+"                \n"
+"        ResultSet rs = sGetImg.executeQuery();\n"
+"                \n"
+"                FileOutputStream fout;\n"
+"                try\n"
+"                {\n"
+"                        rs.next();\n"
+"                        /** Output to file name requested by user **/\n"
+"                        fout = new FileOutputStream(new File(argv[1]) );\n"
+"                        fout.write(rs.getBytes(1));\n"
+"                        fout.close();\n"
+"                }\n"
+"                catch(Exception e)\n"
+"                {\n"
+"                        System.out.println(\"Can't create file\");\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"                \n"
+"        rs.close();\n"
+"                sGetImg.close();\n"
+"        conn.close();\n"
+"      } \n"
+"      catch (SQLException se) {\n"
+"        System.out.println(\"Couldn't connect: print out a stack trace and "
+"exit.\");\n"
+"        se.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }   \n"
+"  }\n"
+"}]]>"
 
 #. Tag: title
-#: using_raster_dataman.xml:484
+#: using_raster_dataman.xml:488
 #, no-c-format
 msgid "Use PLPython to dump out images via SQL"
-msgstr ""
+msgstr "Utilizzare PLPython per esportare immagini tramite SQL"
 
 #. Tag: para
-#: using_raster_dataman.xml:485
-#, no-c-format
+#: using_raster_dataman.xml:489
+#, fuzzy, no-c-format
 msgid ""
 "This is a plpython stored function that creates a file in the server "
-"directory for each record."
+"directory for each record. Requires you have plpython installed. Should work "
+"fine with both plpythonu and plpython3u."
 msgstr ""
+"Questa è una stored function in plypython che crea nella cartella del server "
+"un file per ciascun record."
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:486
-#, no-c-format
+#: using_raster_dataman.xml:491
+#, fuzzy, no-c-format
 msgid ""
-"//plpython postgresql stored proc.  Requires you have plpython installed\n"
 "<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, "
 "param_filepath text)\n"
 "RETURNS text\n"
@@ -1494,9 +1994,18 @@ msgid ""
 "return param_filepath\n"
 "$$ LANGUAGE plpythonu;]]>"
 msgstr ""
+"//plpython postgresql stored proc.  Richiede l'installazione di plpython\n"
+"<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, "
+"param_filepath text)\n"
+"RETURNS text\n"
+"AS $$\n"
+"f = open(param_filepath, 'wb+')\n"
+"f.write(param_bytes)\n"
+"return param_filepath\n"
+"$$ LANGUAGE plpythonu;]]>"
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:487
+#: using_raster_dataman.xml:492
 #, no-c-format
 msgid ""
 "--write out 5 images to the PostgreSQL server in varying sizes\n"
@@ -1516,15 +2025,32 @@ msgid ""
 " C:/temp/slices4.png\n"
 " C:/temp/slices5.png"
 msgstr ""
+"--scrive cinque immagini sul server PostgreSQL con dimensioni variabili\n"
+"-- notaer che il l'account da cui gira il demone postgresql deve avere "
+"diritto di scrittura sulla cartella\n"
+"-- questo mostra i nomi dei file creati;\n"
+" SELECT write_file(ST_AsPNG(\n"
+"        ST_AsRaster(ST_Buffer(ST_Point(1,5),j*5, 'quad_segs=2'),150*j, "
+"150*j, '8BUI',100)),\n"
+"         'C:/temp/slices'|| j || '.png')\n"
+"         FROM generate_series(1,5) As j;\n"
+"         \n"
+"     write_file\n"
+"---------------------\n"
+" C:/temp/slices1.png\n"
+" C:/temp/slices2.png\n"
+" C:/temp/slices3.png\n"
+" C:/temp/slices4.png\n"
+" C:/temp/slices5.png"
 
 #. Tag: title
-#: using_raster_dataman.xml:490
+#: using_raster_dataman.xml:495
 #, no-c-format
 msgid "Outputting Rasters with PSQL"
-msgstr ""
+msgstr "Produrre raster con PSQL"
 
 #. Tag: para
-#: using_raster_dataman.xml:491
+#: using_raster_dataman.xml:496
 #, no-c-format
 msgid ""
 "Sadly PSQL doesn't have easy to use built-in functionality for outputting "
@@ -1535,17 +2061,27 @@ msgid ""
 "legacy large object support. To use first launch your psql commandline "
 "connected to your database."
 msgstr ""
+"Purtroppo PSQL non dispone di una funzione comoda per l'esportazione di file "
+"binari.  Quello che segue è una soluzione improvvisata derivante dai "
+"suggerimenti che trovate alla pagina <ulink url=\"http://people."
+"planetpostgresql.org/andrew/index.php?/archives/196-Clever-trick-challenge."
+"html\">Clever Trick Challenge -- Outputting bytea with psql</ulink> e che si "
+"appoggia al supporto di PostgreSQL per i tipi \"large object\". Per "
+"utilizzare questo sistema anzitutto lanciate la riga di comando psql e "
+"collegatevi al database."
 
 #. Tag: para
-#: using_raster_dataman.xml:494
+#: using_raster_dataman.xml:499
 #, no-c-format
 msgid ""
 "Unlike the python approach, this approach creates the file on your local "
 "computer."
 msgstr ""
+"A differenza dell'approcio python, questo sistema crea il file in locale sul "
+"vostro computer."
 
 #. Tag: screen
-#: using_raster_dataman.xml:495
+#: using_raster_dataman.xml:500
 #, no-c-format
 msgid ""
 "SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes\n"
@@ -1566,3 +2102,38 @@ msgid ""
 "-- this deletes the file from large object storage on db\n"
 "SELECT lo_unlink(2630819);"
 msgstr ""
+"SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes\n"
+" FROM \n"
+" ( VALUES (lo_create(0), \n"
+"   ST_AsPNG( (SELECT rast FROM aerials.boston WHERE rid=1) ) \n"
+"  ) ) As v(oid,png);\n"
+"-- otterrete qualcosa tipo --\n"
+"   oid   | num_bytes\n"
+"---------+-----------\n"
+" 2630819 |     74860\n"
+" \n"
+"-- prendete nota dell'oid e sostituite c:/test.png con il percorso del "
+"file \n"
+"-- sul vostro computer\n"
+" \\lo_export 2630819 'C:/temp/aerial_samp.png'\n"
+" \n"
+"-- questo cancella il file dall'archiviazione dei large objects nel "
+"database\n"
+"SELECT lo_unlink(2630819);"
+
+#~ msgid ""
+#~ "<varname>regular_blocking</varname> This is a true/false constraint flag "
+#~ "set on the table to denote that the tiles do not overlap, are of the same "
+#~ "alignment, pixel size, srid etc. It is not really validated but just "
+#~ "taken as a given so should be used for informational. In the future we "
+#~ "plan to properly constrain this so that this inforamtion is guaranteed to "
+#~ "be right when it returns <varname>true</varname>"
+#~ msgstr ""
+#~ "<varname>regular_blocking</varname> è un valore vero/falso sulla tabella, "
+#~ "per indicare che le tile non si sovrappongono, hanno lo stesso "
+#~ "allineamento, dimensione del pixel, SRID, ecc. Non viene effettivamente "
+#~ "validato, ma considerato così come è. Per questo l'indicazione dovrebbe "
+#~ "essere considerata solo a titolo informativo. In futuro prevediamo di "
+#~ "analizzare queste condizioni in modo più adeguato, per cui si garantirà "
+#~ "che l'informazione è corretta quando il valore risulta <varname>true</"
+#~ "varname>"
diff --git a/doc/po/ko_KR/Makefile b/doc/po/ko_KR/Makefile
new file mode 100644
index 0000000..1f181bc
--- /dev/null
+++ b/doc/po/ko_KR/Makefile
@@ -0,0 +1,2 @@
+DOCSUFFIX=-ko_KR
+include ../Makefile.local
diff --git a/doc/po/ko_KR/extras.xml.po b/doc/po/ko_KR/extras.xml.po
new file mode 100644
index 0000000..f9f3989
--- /dev/null
+++ b/doc/po/ko_KR/extras.xml.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-10-14 22:34+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis-1/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: extras.xml:3
+#, no-c-format
+msgid "PostGIS Extras"
+msgstr ""
+
+#. Tag: para
+#: extras.xml:5
+#, no-c-format
+msgid ""
+"This chapter documents features found in the extras folder of the PostGIS "
+"source tarballs and source repository. These are not always packaged with "
+"PostGIS binary releases, but are usually plpgsql based or standard shell "
+"scripts that can be run as is."
+msgstr ""
+
+#. Tag: chapter
+#: extras.xml:6
+#, no-c-format
+msgid "&extras_tigergeocoder;"
+msgstr ""
diff --git a/doc/po/ko_KR/extras_address_standardizer.xml.po b/doc/po/ko_KR/extras_address_standardizer.xml.po
new file mode 100644
index 0000000..ca35f24
--- /dev/null
+++ b/doc/po/ko_KR/extras_address_standardizer.xml.po
@@ -0,0 +1,852 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 10:55+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: extras_address_standardizer.xml:3
+#, no-c-format
+msgid "Address Standardizer"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:4
+#, no-c-format
+msgid ""
+"This is a fork of the <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-11."
+"html\">PAGC standardizer</ulink> (original code for this portion was <ulink "
+"url=\"http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/"
+"postgresql\">PAGC PostgreSQL Address Standardizer</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:5
+#, no-c-format
+msgid ""
+"The address standardizer is a single line address parser that takes an input "
+"address and normalizes it based on a set of rules stored in a table and "
+"helper lex and gaz tables."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:6
+#, no-c-format
+msgid ""
+"The code is built into a single postgresql extension library called "
+"<code>address_standardizer</code> which can be installed with <code>CREATE "
+"EXTENSION address_standardizer;</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:7
+#, no-c-format
+msgid ""
+"The code for this extension can be found in the PostGIS <filename>extensions/"
+"address_standardizer</filename> and is currently self-contained."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:8
+#, no-c-format
+msgid ""
+"For installation instructions refer to: <xref linkend="
+"\"installing_pagc_address_standardizer\"/>."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:9
+#, no-c-format
+msgid "How the Parser Works"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:10
+#, no-c-format
+msgid ""
+"The parser works from right to left looking first at the macro elements for "
+"postcode, state/province, city, and then looks micro elements to determine "
+"if we are dealing with a house number street or intersection or landmark. It "
+"currently does not look for a country code or name, but that could be "
+"introduced in the future."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:17
+#, no-c-format
+msgid "Country code"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:18
+#, no-c-format
+msgid ""
+"Assumed to be US or CA based on: postcode as US or Canada state/province as "
+"US or Canada else US"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:21
+#, no-c-format
+msgid "Postcode/zipcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:22
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c and are relatively simple to make "
+"changes to if needed."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:27
+#, no-c-format
+msgid "State/province"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:28
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c but could get moved into includes in "
+"the future for easier maintenance."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:37
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by Address "
+"Standardizer extension. Note we describe the casting behavior of these which "
+"is very important especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:42
+#, no-c-format
+msgid "Address Standardizer Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:45
+#, no-c-format
+msgid "stdaddr"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:46
+#, no-c-format
+msgid ""
+"A composite type that consists of the elements of an address. This is the "
+"return type for <varname>standardize_address</varname> function."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:49 extras_address_standardizer.xml:152
+#: extras_address_standardizer.xml:214 extras_address_standardizer.xml:256
+#: extras_address_standardizer.xml:314 extras_address_standardizer.xml:369
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:50
+#, no-c-format
+msgid ""
+"A composite type that consists of elements of an address. This is the return "
+"type for <xref linkend=\"standardize_address\"/> function. Some descriptions "
+"for elements are borrowed from <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#ss12.1\">PAGC Postal Attributes</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:51
+#, no-c-format
+msgid ""
+"The token numbers denote the reference number in the <varname>rules</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:52 extras_address_standardizer.xml:321
+#: extras_address_standardizer.xml:375
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:55
+#, no-c-format
+msgid "building"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:57
+#, no-c-format
+msgid ""
+"is text (token number <code>0</code>): Refers to building number or name. "
+"Unparsed building identifiers and types. Generally blank for most addresses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:60
+#, no-c-format
+msgid "house_num"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:62
+#, no-c-format
+msgid ""
+"is a text (token number <code>1</code>): This is the street number on a "
+"street. Example <emphasis>75</emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:65
+#, no-c-format
+msgid "predir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:66
+#, no-c-format
+msgid ""
+"is text (token number <code>2</code>): STREET NAME PRE-DIRECTIONAL such as "
+"North, South, East, West etc."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:68
+#, no-c-format
+msgid "qual"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:70
+#, no-c-format
+msgid ""
+"is text (token number <code>3</code>): STREET NAME PRE-MODIFIER Example "
+"<emphasis>OLD</emphasis> in <code>3715 OLD HIGHWAY 99</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:73
+#, no-c-format
+msgid "pretype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:75
+#, no-c-format
+msgid "is text (token number <code>4</code>): STREET PREFIX TYPE"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:78
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:80
+#, no-c-format
+msgid "is text (token number <code>5</code>): STREET NAME"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:83
+#, no-c-format
+msgid "suftype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:85
+#, no-c-format
+msgid ""
+"is text (token number <code>6</code>): STREET POST TYPE e.g. St, Ave, Cir. A "
+"street type following the root street name. Example <emphasis>STREET</"
+"emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:88
+#, no-c-format
+msgid "sufdir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:90
+#, no-c-format
+msgid ""
+"is text (token number <code>7</code>): STREET POST-DIRECTIONAL A directional "
+"modifier that follows the street name.. Example <emphasis>WEST</emphasis> in "
+"<code>3715 TENTH AVENUE WEST</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:93
+#, no-c-format
+msgid "ruralroute"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:95
+#, no-c-format
+msgid ""
+"is text (token number <code>8</code>): RURAL ROUTE . Example <emphasis>8</"
+"emphasis> in <code>RR 7</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:98
+#, no-c-format
+msgid "extra"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:100
+#, no-c-format
+msgid "is text: Extra information like Floor number."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:103
+#, no-c-format
+msgid "city"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:105
+#, no-c-format
+msgid "is text (token number <code>10</code>): Example Boston."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:108
+#, no-c-format
+msgid "state"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:110
+#, no-c-format
+msgid ""
+"is text (token number <code>11</code>): Example <code>MASSACHUSETTS</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:113
+#, no-c-format
+msgid "country"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:115
+#, no-c-format
+msgid "is text (token number <code>12</code>): Example <code>USA</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:118
+#, no-c-format
+msgid "postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:120
+#, no-c-format
+msgid ""
+"is text POSTAL CODE (ZIP CODE) (token number <code>13</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:123
+#, no-c-format
+msgid "<term>box</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:125
+#, no-c-format
+msgid ""
+"is text POSTAL BOX NUMBER (token number <code>14 and 15</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:128
+#, no-c-format
+msgid "unit"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:130
+#, no-c-format
+msgid ""
+"is text Apartment number or Suite Number (token number <code>17</code>): "
+"Example <emphasis>3B</emphasis> in <code>APT 3B</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:141
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL table formats used by the "
+"address_standardizer for normalizing addresses. Note that these tables do "
+"not need to be named the same as what is referenced here. You can have "
+"different lex, gaz, rules tables for each country for example or for your "
+"custom geocoder. The names of these tables get passed into the address "
+"standardizer functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:145
+#, no-c-format
+msgid "Address Standardizer Tables"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:148
+#, no-c-format
+msgid "rules table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:149
+#, no-c-format
+msgid ""
+"The rules table contains a set of rules that maps address input sequence "
+"tokens to standardized output sequence"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:153
+#, no-c-format
+msgid ""
+"A rules table must have at least the following columns, though you are "
+"allowed to add more for your own uses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:157 extras_address_standardizer.xml:220
+#: extras_address_standardizer.xml:262
+#, no-c-format
+msgid "<term>id</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:159 extras_address_standardizer.xml:222
+#: extras_address_standardizer.xml:264
+#, no-c-format
+msgid "Primary key of table"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:162
+#, no-c-format
+msgid "rule"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:164
+#, no-c-format
+msgid ""
+"text field denoting the rule. Details at <ulink url=\"http://www.pagcgeo.org/"
+"docs/html/pagc-12.html#--r-rec--\">PAGC Address Standardizer Rule records</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:165
+#, no-c-format
+msgid ""
+"A rule consists of a set of non-negative integers representing input tokens, "
+"terminated by a -1, followed by an equal number of non-negative integers "
+"representing postal attributes, terminated by a -1, followed by an integer "
+"representing a rule type, followed by an integer representing the rank of "
+"the rule. The rules are ranked from 0 (lowest) to 17 (highest)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:166
+#, no-c-format
+msgid ""
+"So for example the rule <code>2 0 2 22 3 -1 5 5 6 7 3 -1 2 6</code> maps to "
+"sequence of tokens <emphasis>TYPE NUMBER TYPE DIRECT QUALIF</emphasis> to "
+"the output sequence <emphasis>STREET STREET SUFTYP SUFDIR QUALIF</emphasis>. "
+"The rule is an ARC_C rule of rank 6."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:171
+#, no-c-format
+msgid "Each rule has a rule type which is denoted by one of following:"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:174
+#, no-c-format
+msgid "MACRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:176
+#, no-c-format
+msgid "(token number = \"0\"). The class of rules for parsing MACRO clauses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:180
+#, no-c-format
+msgid "MICRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:182
+#, no-c-format
+msgid ""
+"(token number = \"1\"). The class of rules for parsing full MICRO clauses "
+"(ie ARC_C plus CIVIC_C). These rules are not used in the build phase."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:186
+#, no-c-format
+msgid "ARC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:188
+#, no-c-format
+msgid ""
+"(token number = \"2\"). The class of rules for parsing MICRO clauses, "
+"excluding the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:192
+#, no-c-format
+msgid "CIVIC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:194
+#, no-c-format
+msgid ""
+"(token number = \"3\"). The class of rules for parsing the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:198
+#, no-c-format
+msgid "EXTRA_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:200
+#, no-c-format
+msgid ""
+"(token number = \"4\"). The class of rules for parsing EXTRA attributes - "
+"attributes excluded from geocoding. These rules are not used in the build "
+"phase."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:210
+#, no-c-format
+msgid "lex table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:211
+#, no-c-format
+msgid ""
+"A lex table is used to classify alphanumeric input and associate that input "
+"with (a) input tokens ( See Input Tokens) and (b) standardized "
+"representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:215
+#, no-c-format
+msgid ""
+"A lex (short for lexicon) table is used to classify alphanumeric input and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. Things you will find in these tables are <code>ONE</code> "
+"mapped to stdworkd: <code>1</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:217
+#, no-c-format
+msgid "A lex has at least the following columns in the table. You may add"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:225 extras_address_standardizer.xml:267
+#, no-c-format
+msgid "<term>seq</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:227 extras_address_standardizer.xml:269
+#, no-c-format
+msgid "integer: definition number?"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:231 extras_address_standardizer.xml:272
+#, no-c-format
+msgid "word"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:233 extras_address_standardizer.xml:274
+#, no-c-format
+msgid "text: the input word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:236 extras_address_standardizer.xml:277
+#, no-c-format
+msgid "stdword"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:238 extras_address_standardizer.xml:279
+#, no-c-format
+msgid "text: the standardized replacement word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:241 extras_address_standardizer.xml:282
+#, no-c-format
+msgid "token"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:243 extras_address_standardizer.xml:284
+#, no-c-format
+msgid ""
+"integer: the kind of word it is. Only if it is used in this context will it "
+"be replaced. Refer to <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12."
+"html#--i-tok--\">PAGC Tokens</ulink>."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:252
+#, no-c-format
+msgid "gaz table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:253
+#, no-c-format
+msgid ""
+"A gaz table is used to standardize place names and associate that input with "
+"(a) input tokens ( See Input Tokens) and (b) standardized representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:257
+#, no-c-format
+msgid ""
+"A gaz (short for gazeteer) table is used to classify place names and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. For example if you are in US, you may load these with State "
+"Names and associated abbreviations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:259
+#, no-c-format
+msgid ""
+"A gaz table has at least the following columns in the table. You may add "
+"more columns if you wish for your own purposes."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:295
+#, no-c-format
+msgid "Address Standardizer Functions"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:298
+#, no-c-format
+msgid "parse_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:300
+#, no-c-format
+msgid "Takes a 1 line address and breaks into parts"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_address_standardizer.xml:305
+#, no-c-format
+msgid ""
+"<funcdef>record <function>parse_address</function></funcdef> "
+"<paramdef><type>text </type> <parameter>address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:316
+#, no-c-format
+msgid ""
+"Returns takes as input an address, and returns a record output consisting of "
+"fields <emphasis>num</emphasis>, <emphasis>street</emphasis>, "
+"<emphasis>street2</emphasis>, <emphasis>address1</emphasis>, <emphasis>city</"
+"emphasis>, <emphasis>state</emphasis>, <emphasis>zip</emphasis>, "
+"<emphasis>zipplus</emphasis>, <emphasis>country</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:320 extras_address_standardizer.xml:374
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:326 extras_address_standardizer.xml:380
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:328
+#, no-c-format
+msgid ""
+"SELECT num, street, city, zip, zipplus FROM parse_address('1 Devonshire "
+"Place, Boston, MA 02109-1234');\n"
+" num |      street      |  city  |  zip  | zipplus\n"
+"-----+------------------+--------+-------+---------\n"
+" 1   | Devonshire Place | Boston | 02109 | 1234"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:334 extras_address_standardizer.xml:391
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:342
+#, no-c-format
+msgid "standardize_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:344
+#, no-c-format
+msgid ""
+"Returns an stdaddr form of an input address utilizing lex, gaz, and rule "
+"tables."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_address_standardizer.xml:348
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>stdaddr <function>standardize_address</function></"
+"funcdef> <paramdef><type>text </type> <parameter>lextab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>gaztab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rultab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>address</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>stdaddr "
+"<function>standardize_address</function></funcdef> <paramdef><type>text </"
+"type> <parameter>lextab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>gaztab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rultab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>micro</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>macro</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:371
+#, no-c-format
+msgid ""
+"Returns an <xref linkend=\"stdaddr\"/> form of an input address utilizing "
+"<xref linkend=\"lextab\"/> table name, <xref linkend=\"gaztab\"/>, and <xref "
+"linkend=\"rulestab\"/> table names and an address."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:382
+#, no-c-format
+msgid ""
+"SELECT *  FROM standardize_address('tiger.pagc_lex', \n"
+"                           'tiger.pagc_gaz', 'tiger.pagc_rules', 'One "
+"Devonshire Place, PH 301, Boston, MA 02109-1234');"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:384
+#, no-c-format
+msgid ""
+"Make easier to read we'll dump output using hstore extension CREATE "
+"EXTENSION hstore; you need to install"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:385
+#, no-c-format
+msgid ""
+"SELECT (each(hstore(p))).*  \n"
+" FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz', \n"
+"   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA "
+"02109-1234') As p;"
+msgstr ""
+
+#. Tag: screen
+#: extras_address_standardizer.xml:386
+#, no-c-format
+msgid ""
+"key     |      value\n"
+"------------+-----------------\n"
+" box        |\n"
+" city       | BOSTON\n"
+" name       | DEVONSHIRE\n"
+" qual       |\n"
+" unit       | # PENTHOUSE 301\n"
+" extra      |\n"
+" state      | MA\n"
+" predir     |\n"
+" sufdir     |\n"
+" country    | USA\n"
+" pretype    |\n"
+" suftype    | PL\n"
+" building   |\n"
+" postcode   | 02109\n"
+" house_num  | 1\n"
+" ruralroute |\n"
+"(16 rows)"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"rulestab\"/>, <xref linkend=\"lextab\"/>, <xref linkend="
+"\"gaztab\"/>, <xref linkend=\"Pagc_Normalize_Address\"/>"
+msgstr ""
diff --git a/doc/po/ko_KR/extras_historytable.xml.po b/doc/po/ko_KR/extras_historytable.xml.po
new file mode 100644
index 0000000..34ac886
--- /dev/null
+++ b/doc/po/ko_KR/extras_historytable.xml.po
@@ -0,0 +1,261 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-26 14:23+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis-1/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: extras_historytable.xml:3
+#, no-c-format
+msgid "History Tracking"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:6
+#, no-c-format
+msgid ""
+"Suppose you have a table of data that represents the current state of a "
+"particular geographic feature. A parcels table, or a roads table, or a fruit "
+"trees table, whatever. Generally, GIS tools understand a table as a single "
+"entity into which they can update, insert and delete rows from. How you do "
+"allow common GIS tools to work against your data, while maintaining an audit "
+"trail of what changes have been made, by whom, and what the past state of "
+"the data is?"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:10
+#, no-c-format
+msgid ""
+"This <varname>history_table</varname> extra module provides some utility "
+"functions for creating and maintaining history."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:14
+#, no-c-format
+msgid ""
+"The <varname>history_table</varname> was also packaged in PostGIS 1.5, but "
+"added to the documentation in PostGIS 2.0. This package is written in "
+"plpgsql and located in the <varname>extras/history_table</varname> of "
+"PostGIS source tar balls and source repository."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:15
+#, no-c-format
+msgid ""
+"If you have a table 'roads', this module will maintain a 'roads_history' "
+"side table, which contains all the columns of the parent table, and the "
+"following additional columns:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:16
+#, no-c-format
+msgid ""
+"history_id      | integer                     | not null default \n"
+" date_added      | timestamp without time zone | not null default now()\n"
+" date_deleted    | timestamp without time zone | \n"
+" last_operation  | character varying(30)       | not null\n"
+" active_user     | character varying(90)       | not null default "
+"\"current_user\"()\n"
+" current_version | text                        | not null"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:20
+#, no-c-format
+msgid ""
+"When you insert a new record into 'roads' a record is automatically inserted "
+"into 'roads_history', with the 'date_added' filled in the 'date_deleted' set "
+"to NULL, a unique 'history_id', a 'last_operation' of 'INSERT' and "
+"'active_user' set."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:23
+#, no-c-format
+msgid ""
+"When you delete a record in 'roads', the record in the history table is "
+"*not* deleted, but the 'date_deleted' is set to the current date."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:26
+#, no-c-format
+msgid ""
+"When you update a record in 'roads', the current record has 'date_deleted' "
+"filled in and a new record is created with the 'date_added' set and "
+"'date_deleted' NULL."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:30
+#, no-c-format
+msgid ""
+"With this information maintained, it is possible to retrieve the history of "
+"any record in the roads table:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:31
+#, no-c-format
+msgid "SELECT * FROM roads_history WHERE roads_pk = 111;"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:33
+#, no-c-format
+msgid "Or, to retrieve a view of the roads table at any point in the past:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:34
+#, no-c-format
+msgid ""
+"SELECT * FROM roads_history \n"
+"    WHERE date_added < 'January 1, 2001' AND \n"
+"        ( date_deleted >= 'January 1, 2001' OR date_deleted IS NULL );"
+msgstr ""
+
+#. Tag: refname
+#: extras_historytable.xml:38
+#, no-c-format
+msgid "Postgis_Install_History"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_historytable.xml:39
+#, no-c-format
+msgid ""
+"Creates a table that will hold some interesting values for managing history "
+"tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_historytable.xml:44
+#, no-c-format
+msgid ""
+"<funcdef>void <function>Postgis_Install_History</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: extras_historytable.xml:52 extras_historytable.xml:92
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:54
+#, no-c-format
+msgid ""
+"Creates a table that will hold some interesting values for managing history "
+"tables. Creates a table called <varname>historic_information</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:58 extras_historytable.xml:100
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: title
+#: extras_historytable.xml:63 extras_historytable.xml:105
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:65
+#, no-c-format
+msgid "SELECT postgis_install_history();"
+msgstr ""
+
+#. Tag: title
+#: extras_historytable.xml:71 extras_historytable.xml:113
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_historytable.xml:77
+#, no-c-format
+msgid "Postgis_Enable_History"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_historytable.xml:78
+#, no-c-format
+msgid ""
+"Registers a tablein the history_information table for tracking and also adds "
+"in side line history table and insert, update, delete rules on the table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_historytable.xml:83
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Postgis_Enable_History</function></funcdef> "
+"<paramdef><type>text </type> <parameter>p_schema</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>p_table</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:94
+#, no-c-format
+msgid ""
+"Registers a table in the history_information table for tracking and also "
+"adds in side line history table with same name as table but prefixed with "
+"<varname>history</varname> in the same schema as the original table. Puts in "
+"insert, update, delete rules on the table. Any inserts,updates,deletes of "
+"the geometry are recorded in the history table."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:97
+#, no-c-format
+msgid ""
+"This function currently relies on a geometry column being registered in "
+"<varname>geometry_columns</varname> and fails if the geometry column is not "
+"present in <varname>geometry_columns</varname> table."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:107
+#, no-c-format
+msgid ""
+"CREATE TABLE roads(gid SERIAL PRIMARY KEY, road_name varchar(150));\n"
+"SELECT AddGeometryColumn('roads', 'geom', 26986, 'LINESTRING', 2);\n"
+"                                \n"
+"SELECT postgis_enable_history('public', 'roads', 'geom') As register_table;\n"
+"register_table\n"
+"--------------\n"
+"t\n"
+"\n"
+"INSERT INTO roads(road_name, geom) \n"
+"  VALUES('Test Street', ST_GeomFromText('LINESTRING(231660.5 832170,231647 "
+"832202,231627.5 832250.5)',26986));\n"
+"\n"
+"-- check transaction detail --\n"
+"SELECT date_added, last_operation, current_version \n"
+"FROM roads_history \n"
+"WHERE road_name = 'Test Street' ORDER BY date_added DESC;\n"
+"\n"
+"       date_added       | last_operation | current_version\n"
+"------------------------+----------------+-----------------\n"
+" 2011-02-07 12:44:36.92 | INSERT         | 2"
+msgstr ""
diff --git a/doc/po/ko_KR/extras_tigergeocoder.xml.po b/doc/po/ko_KR/extras_tigergeocoder.xml.po
new file mode 100644
index 0000000..dffe65e
--- /dev/null
+++ b/doc/po/ko_KR/extras_tigergeocoder.xml.po
@@ -0,0 +1,2327 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 10:56+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:6
+#, no-c-format
+msgid ""
+"A plpgsql based geocoder written to work with the <ulink url=\"http://www."
+"census.gov/geo/www/tiger/\">TIGER (Topologically Integrated Geographic "
+"Encoding and Referencing system ) / Line and Master Address database export</"
+"ulink> released by the US Census Bureau."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:7
+#, no-c-format
+msgid ""
+"There are four components to the geocoder: the data loader functions, the "
+"address normalizer, the address geocoder, and the reverse geocoder. The "
+"latest version updated to use the TIGER 2011 and 2012 census data is located "
+"in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder. It "
+"defaults to downloading and installing TIGER 2012 files."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:8
+#, no-c-format
+msgid ""
+"Although it is designed specifically for the US, a lot of the concepts and "
+"functions are applicable and can be adapted to work with other country "
+"address and road networks."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:9
+#, no-c-format
+msgid ""
+"The script builds a schema called <varname>tiger</varname> to house all the "
+"tiger related functions, reusable lookup data such as road type prefixes, "
+"suffixes, states, various control tables for managing data load, and "
+"skeleton base tables from which all the tiger loaded tables inherit from."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:10
+#, no-c-format
+msgid ""
+"Another schema called <varname>tiger_data</varname> is also created which "
+"houses all the census data for each state that the loader downloads from "
+"Census site and loads into the database. In the current model, each set of "
+"state tables is prefixed with the state code e.g <varname>ma_addr</varname>, "
+"<varname>ma_edges</varname> etc with constraints to enforce only that state "
+"data. Each of these tables inherits from the tables <varname>addr</varname>, "
+"<varname>faces</varname>, <varname>edges</varname>, etc located in the "
+"<varname>tiger schema</varname>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:12
+#, no-c-format
+msgid ""
+"All the geocode functions only reference the base tables, so there is no "
+"requirement that the data schema be called <varname>tiger_data</varname> or "
+"that data can't be further partitioned into other schemas -- e.g a different "
+"schema for each state, as long as all the tables inherit from the tables in "
+"the <varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:16
+#, no-c-format
+msgid ""
+"If you are using tiger geocoder (tiger_2010), you can upgrade the scripts "
+"using the accompanying upgrade_geocoder.bat / .sh scripts in tiger_2011. One "
+"major change between <varname>tiger_2010</varname> and <varname>tiger_2011/"
+"tiger_2012</varname> is that the county and <varname>county</varname> and "
+"<varname>state</varname> tables are no longer broken out by state. We'll be "
+"refining the upgrade scripts until release. If you have data from tiger_2010 "
+"and want replace with tiger_2012 refer to <xref linkend="
+"\"upgrade_tiger_geocoder\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:23
+#, no-c-format
+msgid ""
+"New in PostGIS 2.1.0 release is ability to install tiger geocoder with "
+"PostgreSQL extension model if you are running PostgreSQL 9.1+. Refer to "
+"<xref linkend=\"install_tiger_geocoder_extension\"/> for details."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:25
+#, no-c-format
+msgid ""
+"Also new in PostGIS 2.1.0 is integration with pagc address standardizer "
+"PostgreSQL extension which source can be downloaded from <ulink url=\"http://"
+"sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql\">PAGC "
+"PostgreSQL address standardizer extension</ulink> and after install and "
+"install of the library in your PostGIS database, you can use the <xref "
+"linkend=\"Pagc_Normalize_Address\"/> function as a drop in replacement for "
+"in-built <xref linkend=\"Normalize_Address\"/>. Refer to <xref linkend="
+"\"installing_pagc_address_standardizer\"/> for compile and installation "
+"instructions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:29
+#, no-c-format
+msgid "Design:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:30
+#, no-c-format
+msgid ""
+"The goal of this project is to build a fully functional geocoder that can "
+"process an arbitrary United States address string and using normalized TIGER "
+"census data, produce a point geometry and rating reflecting the location of "
+"the given address and likeliness of the location. The higher the rating "
+"number the worse the result."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:32
+#, no-c-format
+msgid ""
+"The <varname>reverse_geocode</varname> function, introduced in PostGIS 2.0.0 "
+"is useful for deriving the street address and cross streets of a GPS "
+"location."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:33
+#, no-c-format
+msgid ""
+"The geocoder should be simple for anyone familiar with PostGIS to install "
+"and use, and should be easily installable and usable on all platforms "
+"supported by PostGIS."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:34
+#, no-c-format
+msgid ""
+"It should be robust enough to function properly despite formatting and "
+"spelling errors."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:35
+#, no-c-format
+msgid ""
+"It should be extensible enough to be used with future data updates, or "
+"alternate data sources with a minimum of coding changes."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:37
+#, no-c-format
+msgid ""
+"The <varname>tiger</varname> schema must be added to the database search "
+"path for the functions to work properly."
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:41
+#, no-c-format
+msgid "Tiger Geocoder"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:43
+#, no-c-format
+msgid ""
+"There are a couple other open source geocoders for PostGIS, that unlike "
+"tiger geocoder have the advantage of multi-country geocoding support"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:45
+#, no-c-format
+msgid ""
+"<ulink url=\"http://wiki.openstreetmap.org/wiki/Nominatim\">Nominatim</"
+"ulink> and uses OpenStreetMap gazeteer formatted data. It requires osm2pgsql "
+"for loading the data, PostgreSQL 8.4+ and PostGIS 1.5+ to function. It is "
+"packaged as a webservice interface and seems designed to be called as a "
+"webservice. Just like the tiger geocoder, it has both a geocoder and a "
+"reverse geocoder component. From the documentation, it is unclear if it has "
+"a pure SQL interface like the tiger geocoder, or if a good deal of the logic "
+"is implemented in the web interface."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:48
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.gisgraphy.com/\">GIS Graphy</ulink> also utilizes "
+"PostGIS and like Nominatim works with OpenStreetMap (OSM) data. It comes "
+"with a loader to load OSM data and similar to Nominatim is capable of "
+"geocoding not just US. Much like Nominatim, it runs as a webservice and "
+"relies on Java 1.5, Servlet apps, Solr. GisGraphy is cross-platform and also "
+"has a reverse geocoder among some other neat features."
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:53
+#, no-c-format
+msgid "Drop_Indexes_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:55
+#, no-c-format
+msgid ""
+"<refpurpose>Generates a script that drops all non-primary key and non-unique "
+"indexes on tiger schema and user specified schema. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:60
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:68 extras_tigergeocoder.xml:110
+#: extras_tigergeocoder.xml:152 extras_tigergeocoder.xml:208
+#: extras_tigergeocoder.xml:270 extras_tigergeocoder.xml:315
+#: extras_tigergeocoder.xml:355 extras_tigergeocoder.xml:394
+#: extras_tigergeocoder.xml:439 extras_tigergeocoder.xml:497
+#: extras_tigergeocoder.xml:554 extras_tigergeocoder.xml:609
+#: extras_tigergeocoder.xml:654 extras_tigergeocoder.xml:733
+#: extras_tigergeocoder.xml:818 extras_tigergeocoder.xml:865
+#: extras_tigergeocoder.xml:937 extras_tigergeocoder.xml:1002
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:70
+#, no-c-format
+msgid ""
+"<para>Generates a script that drops all non-primary key and non-unique "
+"indexes on tiger schema and user specified schema. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:71
+#, no-c-format
+msgid ""
+"This is useful for minimizing index bloat that may confuse the query planner "
+"or take up unnecessary space. Use in combination with <xref linkend="
+"\"Install_Missing_Indexes\"/> to add just the indexes used by the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:74 extras_tigergeocoder.xml:158
+#: extras_tigergeocoder.xml:277 extras_tigergeocoder.xml:359
+#: extras_tigergeocoder.xml:402 extras_tigergeocoder.xml:457
+#: extras_tigergeocoder.xml:617 extras_tigergeocoder.xml:891
+#: extras_tigergeocoder.xml:963
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:81 extras_tigergeocoder.xml:122
+#: extras_tigergeocoder.xml:165 extras_tigergeocoder.xml:409
+#: extras_tigergeocoder.xml:464 extras_tigergeocoder.xml:522
+#: extras_tigergeocoder.xml:577 extras_tigergeocoder.xml:624
+#: extras_tigergeocoder.xml:700 extras_tigergeocoder.xml:784
+#: extras_tigergeocoder.xml:828 extras_tigergeocoder.xml:896
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:82
+#, no-c-format
+msgid ""
+"SELECT drop_indexes_generate_script() As actionsql;\n"
+"actionsql\n"
+"---------------------------------------------------------\n"
+"DROP INDEX tiger.idx_tiger_countysub_lookup_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_edges_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_faces_countyfp;\n"
+"DROP INDEX tiger.tiger_place_the_geom_gist;\n"
+"DROP INDEX tiger.tiger_edges_the_geom_gist;\n"
+"DROP INDEX tiger.tiger_state_the_geom_gist;\n"
+"DROP INDEX tiger.idx_tiger_addr_least_address;\n"
+"DROP INDEX tiger.idx_tiger_addr_tlid;\n"
+"DROP INDEX tiger.idx_tiger_addr_zip;\n"
+"DROP INDEX tiger.idx_tiger_county_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_county_lookup_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_county_lookup_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_county_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_county_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_county_the_geom_gist;\n"
+"DROP INDEX tiger.idx_tiger_countysub_lookup_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_cousub_cousubfp;\n"
+"DROP INDEX tiger.idx_tiger_cousub_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_the_geom_gist;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_least_address;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_tlid;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_zip;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_countyfp;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lookup_lower_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lookup_snd_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lower_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_snd_name;\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:88 extras_tigergeocoder.xml:129
+#: extras_tigergeocoder.xml:172 extras_tigergeocoder.xml:239
+#: extras_tigergeocoder.xml:293 extras_tigergeocoder.xml:332
+#: extras_tigergeocoder.xml:372 extras_tigergeocoder.xml:416
+#: extras_tigergeocoder.xml:474 extras_tigergeocoder.xml:532
+#: extras_tigergeocoder.xml:586 extras_tigergeocoder.xml:631
+#: extras_tigergeocoder.xml:710 extras_tigergeocoder.xml:796
+#: extras_tigergeocoder.xml:839 extras_tigergeocoder.xml:911
+#: extras_tigergeocoder.xml:979 extras_tigergeocoder.xml:1019
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:89 extras_tigergeocoder.xml:417
+#, no-c-format
+msgid ", <xref linkend=\"Missing_Indexes_Generate_Script\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:95
+#, no-c-format
+msgid "Drop_Nation_Tables_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:97
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that start "
+"with <varname>county_all</varname>, <varname>state_all</varname> or stae "
+"code followed by <varname>county</varname> or <varname>state</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:102
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_Nation_Tables_Generate_Script</function></"
+"funcdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:112
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that start "
+"with <varname>county_all</varname>, <varname>state_all</varname> or stae "
+"code followed by <varname>county</varname> or <varname>state</varname>. This "
+"is needed if you are upgrading from <varname>tiger_2010</varname> to "
+"<varname>tiger_2011</varname> data."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:115 extras_tigergeocoder.xml:320
+#: extras_tigergeocoder.xml:571 extras_tigergeocoder.xml:742
+#: extras_tigergeocoder.xml:1006
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:123
+#, no-c-format
+msgid ""
+"SELECT drop_nation_tables_generate_script();\n"
+"DROP TABLE tiger_data.county_all;\n"
+"DROP TABLE tiger_data.county_all_lookup;\n"
+"DROP TABLE tiger_data.state_all;\n"
+"DROP TABLE tiger_data.ma_county;\n"
+"DROP TABLE tiger_data.ma_state;"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:136
+#, no-c-format
+msgid "Drop_State_Tables_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:138
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that are "
+"prefixed with the state abbreviation. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:143
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
+"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:154
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that are "
+"prefixed with the state abbreviation. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified. This function is "
+"useful for dropping tables of a state just before you reload a state in case "
+"something went wrong during your previous load."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:166
+#, no-c-format
+msgid ""
+"SELECT drop_state_tables_generate_script('PA');\n"
+"DROP TABLE tiger_data.pa_addr;\n"
+"DROP TABLE tiger_data.pa_county;\n"
+"DROP TABLE tiger_data.pa_county_lookup;\n"
+"DROP TABLE tiger_data.pa_cousub;\n"
+"DROP TABLE tiger_data.pa_edges;\n"
+"DROP TABLE tiger_data.pa_faces;\n"
+"DROP TABLE tiger_data.pa_featnames;\n"
+"DROP TABLE tiger_data.pa_place;\n"
+"DROP TABLE tiger_data.pa_state;\n"
+"DROP TABLE tiger_data.pa_zip_lookup_base;\n"
+"DROP TABLE tiger_data.pa_zip_state;\n"
+"DROP TABLE tiger_data.pa_zip_state_loc;"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:178
+#, no-c-format
+msgid "Geocode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:180
+#, no-c-format
+msgid ""
+"Takes in an address as a string (or other normalized address) and outputs a "
+"set of possible locations which include a point geometry in NAD 83 long lat, "
+"a normalized address for each, and the rating. The lower the rating the more "
+"likely the match. Results are sorted by lowest rating first. Can optionally "
+"pass in maximum results, defaults to 10, and restrict_region (defaults to "
+"NULL)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_tigergeocoder.xml:185
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>geocode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>address</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_results=10</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>geocode</function></funcdef> <paramdef><type>norm_addy </type> "
+"<parameter>in_addy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>max_results=10</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:210
+#, no-c-format
+msgid ""
+"Takes in an address as a string (or already normalized address) and outputs "
+"a set of possible locations which include a point geometry in NAD 83 long "
+"lat, a <varname>normalized_address</varname> (addy) for each, and the "
+"rating. The lower the rating the more likely the match. Results are sorted "
+"by lowest rating first. Uses Tiger data (edges,faces,addr), PostgreSQL fuzzy "
+"string matching (soundex,levenshtein) and PostGIS line interpolation "
+"functions to interpolate address along the Tiger edges. The higher the "
+"rating the less likely the geocode is right. The geocoded point is defaulted "
+"to offset 10 meters from center-line off to side (L/R) of street address is "
+"located on."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:214
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 to support Tiger 2010 structured data and revised some logic "
+"to improve speed, accuracy of geocoding, and to offset point from centerline "
+"to side of street address is located on. New parameter max_results useful "
+"for specifying ot just return the best result."
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:220 extras_tigergeocoder.xml:283
+#: extras_tigergeocoder.xml:365
+#, no-c-format
+msgid "Examples: Basic"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:221
+#, no-c-format
+msgid ""
+"The below examples timings are on a 3.0 GHZ single processor Windows 7 "
+"machine with 2GB ram running PostgreSQL 9.1rc1/PostGIS 2.0 loaded with all "
+"of MA,MN,CA, RI state Tiger data loaded."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:222
+#, no-c-format
+msgid "Exact matches are faster to compute (61ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:223
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_X(g.geomout) As lon, ST_Y(g.geomout) As lat, \n"
+"        (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('75 State Street, Boston MA 02109') As g;  \n"
+" rating |        lon        |       lat        | stno | street | styp |  "
+"city  | st |  zip  \n"
+"--------+-------------------+------------------+------+--------+------"
+"+--------+----+-------\n"
+"      0 | -71.0556722990239 | 42.3589914927049 |   75 | State  | St   | "
+"Boston | MA | 02109"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:224
+#, no-c-format
+msgid ""
+"Even if zip is not passed in the geocoder can guess (took about 122-150 ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:225
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"        (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('226 Hanover Street, Boston, MA',1) As g;  \n"
+" rating |         wktlonlat         | stno | street  | styp |  city  | st |  "
+"zip  \n"
+"--------+---------------------------+------+---------+------+--------+----"
+"+-------\n"
+"      1 | POINT(-71.05528 42.36316) |  226 | Hanover | St   | Boston | MA | "
+"02113"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:226
+#, no-c-format
+msgid ""
+"Can handle misspellings and provides more than one possible solution with "
+"ratings and takes longer (500ms)."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:227
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"    (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('31 - 37 Stewart Street, Boston, MA 02116') As g; \n"
+" rating |         wktlonlat         | stno | street | styp |  city  | st |  "
+"zip  \n"
+"--------+---------------------------+------+--------+------+--------+----"
+"+-------\n"
+"     70 | POINT(-71.06459 42.35113) |   31 | Stuart | St   | Boston | MA | "
+"02116"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:229
+#, no-c-format
+msgid ""
+"Using to do a batch geocode of addresses. Easiest is to set "
+"<varname>max_results=1</varname>. Only process those not yet geocoded (have "
+"no rating)."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:230
+#, no-c-format
+msgid ""
+"CREATE TABLE addresses_to_geocode(addid serial PRIMARY KEY, address text,\n"
+"                lon numeric, lat numeric, new_address text, rating "
+"integer);\n"
+"\n"
+"INSERT INTO addresses_to_geocode(address)\n"
+"VALUES ('529 Main Street, Boston MA, 02129'),\n"
+" ('77 Massachusetts Avenue, Cambridge, MA 02139'),\n"
+" ('25 Wizard of Oz, Walaford, KS 99912323'),\n"
+" ('26 Capen Street, Medford, MA'),\n"
+" ('124 Mount Auburn St, Cambridge, Massachusetts 02138'),\n"
+" ('950 Main Street, Worcester, MA 01610');\n"
+" \n"
+"-- only update the first 3 addresses (323-704 ms -  there are caching and "
+"shared memory effects so first geocode you do is always slower) --\n"
+"-- for large numbers of addresses you don't want to update all at once\n"
+"-- since the whole geocode must commit at once \n"
+"-- For this example we rejoin with LEFT JOIN \n"
+"-- and set to rating to -1 rating if no match \n"
+"-- to ensure we don't regeocode a bad address \n"
+"UPDATE addresses_to_geocode\n"
+"  SET  (rating, new_address, lon, lat) \n"
+"        = ( COALESCE((g.geo).rating,-1), pprint_addy((g.geo).addy),\n"
+"           ST_X((g.geo).geomout)::numeric(8,5), ST_Y((g.geo).geomout)::"
+"numeric(8,5) )\n"
+"FROM (SELECT addid \n"
+"        FROM addresses_to_geocode \n"
+"        WHERE rating IS NULL ORDER BY addid LIMIT 3) As a\n"
+"        LEFT JOIN (SELECT addid, (geocode(address,1)) As geo\n"
+"    FROM addresses_to_geocode As ag\n"
+"        WHERE ag.rating IS NULL ORDER BY addid LIMIT 3) As g ON a.addid = g."
+"addid\n"
+"WHERE a.addid = addresses_to_geocode.addid;\n"
+"\n"
+"result\n"
+"-----\n"
+"Query returned successfully: 3 rows affected, 480 ms execution time.\n"
+"\n"
+"SELECT * FROM addresses_to_geocode WHERE rating is not null;\n"
+"\n"
+" addid |                   address                    |    lon    |   lat    "
+"|                new_address                | rating \n"
+"-------+----------------------------------------------+-----------+----------"
+"+-------------------------------------------+--------\n"
+"     1 | 529 Main Street, Boston MA, 02129            | -71.07181 | 42.38359 "
+"| 529 Main St, Boston, MA 02129             |      0\n"
+"     2 | 77 Massachusetts Avenue, Cambridge, MA 02139 | -71.09428 | 42.35988 "
+"| 77 Massachusetts Ave, Cambridge, MA 02139 |      0\n"
+"     3 | 25 Wizard of Oz, Walaford, KS 99912323       |           |          "
+"|                                           |     -1"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:233
+#, no-c-format
+msgid "Examples: Using Geometry filter"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:234
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"    (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, \n"
+"        (addy).location As city, (addy).stateabbrev As st,(addy).zip \n"
+"  FROM geocode('100 Federal Street, MA',\n"
+"                3, \n"
+"                (SELECT ST_Union(the_geom) \n"
+"                        FROM place WHERE statefp = '25' AND name = 'Lynn')::"
+"geometry\n"
+"                ) As g;\n"
+"\n"
+" rating |        wktlonlat         | stno | street  | styp | city | st |  "
+"zip\n"
+"--------+--------------------------+------+---------+------+------+----"
+"+-------\n"
+"      8 | POINT(-70.96796 42.4659) |  100 | Federal | St   | Lynn | MA | "
+"01905\n"
+"Total query runtime: 245 ms."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:240
+#, no-c-format
+msgid ""
+", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_SnapToGrid\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:246
+#, no-c-format
+msgid "Geocode_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:248
+#, no-c-format
+msgid ""
+"Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
+"of possible locations on the first cross street that is at the intersection, "
+"also includes a point geometry in NAD 83 long lat, a normalized address for "
+"each location, and the rating. The lower the rating the more likely the "
+"match. Results are sorted by lowest rating first. Can optionally pass in "
+"maximum results, defaults to 10"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:254
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>geocode_intersection</function></funcdef> "
+"<paramdef><type>text </type> <parameter> roadway1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> roadway2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> in_state</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> in_city</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter> in_zip</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>max_results=10</parameter></paramdef> <paramdef><type>norm_addy </"
+"type> <parameter>OUT addy</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>OUT geomout</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>OUT rating</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:272
+#, no-c-format
+msgid ""
+"Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
+"of possible locations on the first cross street that is at the intersection, "
+"also includes a point geometry in NAD 83 long lat, a normalized address for "
+"each location, and the rating. The lower the rating the more likely the "
+"match. Results are sorted by lowest rating first. Can optionally pass in "
+"maximum results, defaults to 10. Returns <varname>normalized_address</"
+"varname> (addy) for each, geomout as the point location in nad 83 long lat, "
+"and the rating. The lower the rating the more likely the match. Results are "
+"sorted by lowest rating first. Uses Tiger data (edges,faces,addr), "
+"PostgreSQL fuzzy string matching (soundex,levenshtein)"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:284
+#, no-c-format
+msgid ""
+"The below examples timings are on a 3.0 GHZ single processor Windows 7 "
+"machine with 2GB ram running PostgreSQL 9.0/PostGIS 1.5 loaded with all of "
+"MA state Tiger data loaded. Currently a bit slow (3000 ms)"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:285
+#, no-c-format
+msgid ""
+"Testing on Windows 2003 64-bit 8GB on PostGIS 2.0 PostgreSQL 64-bit Tiger "
+"2011 data loaded -- (41ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:286
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(addy), st_astext(geomout),rating \n"
+"                        FROM geocode_intersection( 'Haverford St','Germania "
+"St', 'MA', 'Boston', '02130',1); \n"
+"           pprint_addy            |         st_astext          | rating\n"
+"----------------------------------+----------------------------+--------\n"
+"98 Haverford St, Boston, MA 02130 | POINT(-71.101375 42.31376) |      0"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:287
+#, no-c-format
+msgid ""
+"Even if zip is not passed in the geocoder can guess (took about 3500 ms on "
+"the windows 7 box), on the windows 2003 64-bit 741 ms"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:288
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(addy), st_astext(geomout),rating \n"
+"                                FROM geocode_intersection('Weld', 'School', "
+"'MA', 'Boston');\n"
+"          pprint_addy          |        st_astext         | rating\n"
+"-------------------------------+--------------------------+--------\n"
+" 98 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3\n"
+" 99 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:294
+#, no-c-format
+msgid ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:300
+#, no-c-format
+msgid "Get_Geocode_Setting"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:302
+#, no-c-format
+msgid ""
+"Returns value of specific setting stored in tiger.geocode_settings table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:307
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Get_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:317
+#, no-c-format
+msgid ""
+"Returns value of specific setting stored in tiger.geocode_settings table. "
+"Settings allow you to toggle debugging of functions. Later plans will be to "
+"control rating with settings. Current list of settings are as follows:"
+msgstr ""
+
+#. Tag: screen
+#: extras_tigergeocoder.xml:318
+#, no-c-format
+msgid ""
+"name              | setting |  unit   | category  "
+"|                                                             short_desc\n"
+"--------------------------------+---------+---------+-----------"
+"+------------------------------------------------------------------------------------------------------\n"
+" debug_geocode_address          | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_addresss is "
+"called if true\n"
+" debug_geocode_intersection     | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_intersection is "
+"called if true\n"
+" debug_normalize_address        | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries \n"
+"                                |         |         |           |   and "
+"intermediate expressions when normalize_address is called if true\n"
+" debug_reverse_geocode          | false   | boolean | debug     | if true, "
+"outputs debug information in notice log such as queries \n"
+"                                                                |  and "
+"intermediate expressions when reverse_geocode\n"
+" reverse_geocode_numbered_roads | 0       | integer | rating    | For state "
+"and county highways, 0 - no preference in name\n"
+"                                |         |         |           |  , 1 - "
+"prefer the numbered highway name, 2 - prefer local state/county name\n"
+" use_pagc_address_parser        | false   | boolean | normalize | If set to "
+"true, will try to use the pagc_address normalizer instead of tiger built one"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:326 extras_tigergeocoder.xml:1012
+#, no-c-format
+msgid "Example return debugging setting"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:327
+#, no-c-format
+msgid ""
+"SELECT get_geocode_setting('debug_geocode_address) As result;\n"
+"result\n"
+"---------\n"
+"false"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:339
+#, no-c-format
+msgid "Get_Tract"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:341
+#, no-c-format
+msgid ""
+"Returns census tract or field from tract table of where the geometry is "
+"located. Default to returning short name of tract."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:346
+#, no-c-format
+msgid ""
+"<funcdef>text <function>get_tract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter> loc_geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> output_field=name</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:357
+#, no-c-format
+msgid ""
+"Given a geometry will return the census tract location of that geometry. NAD "
+"83 long lat is assumed if no spatial ref sys is specified."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:366
+#, no-c-format
+msgid ""
+"SELECT get_tract(ST_Point(-71.101375, 42.31376) ) As tract_name;\n"
+"tract_name\n"
+"---------\n"
+"1203.01"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:367
+#, no-c-format
+msgid ""
+"--this one returns the tiger geoid\n"
+"SELECT get_tract(ST_Point(-71.101375, 42.31376), 'tract_id' ) As tract_id;\n"
+"tract_id\n"
+"---------\n"
+"25025120301"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:373
+#, no-c-format
+msgid "<para>></para>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:379
+#, no-c-format
+msgid "Install_Missing_Indexes"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:381
+#, no-c-format
+msgid ""
+"Finds all tables with key columns used in geocoder joins and filter "
+"conditions that are missing used indexes on those columns and will add them."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:386
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Install_Missing_Indexes</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:396
+#, no-c-format
+msgid ""
+"Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
+"varname> schemas with key columns used in geocoder joins and filters that "
+"are missing indexes on those columns and will output the SQL DDL to define "
+"the index for those tables and then execute the generated script. This is a "
+"helper function that adds new indexes needed to make queries faster that may "
+"have been missing during the load process. This function is a companion to "
+"<xref linkend=\"Missing_Indexes_Generate_Script\"/> that in addition to "
+"generating the create index script, also executes it. It is called as part "
+"of the <filename>update_geocode.sql</filename> upgrade script."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:410
+#, no-c-format
+msgid ""
+"SELECT install_missing_indexes();\n"
+"                 install_missing_indexes\n"
+"-------------------------\n"
+" t"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:423
+#, no-c-format
+msgid "Loader_Generate_Census_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:425
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger census state tract, bg, and tabblocks data tables, "
+"stage and load into <varname>tiger_data</varname> schema. Each state script "
+"is returned as a separate record."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:430
+#, no-c-format
+msgid ""
+"<funcdef>setof text <function>loader_generate_census_script</function></"
+"funcdef> <paramdef><type>text[]</type> <parameter>param_states</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:441
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data census state <varname>tract</varname>, block "
+"groups <varname>bg</varname>, and <varname>tabblocks</varname> data tables, "
+"stage and load into <varname>tiger_data</varname> schema. Each state script "
+"is returned as a separate record."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:442
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the "
+"data. Note the smallest unit it does is a whole state. It will only process "
+"the files in the staging and temp folders."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502
+#, no-c-format
+msgid ""
+"It uses the following control tables to control the process and different OS "
+"shell syntax variations."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:448 extras_tigergeocoder.xml:506
+#: extras_tigergeocoder.xml:562
+#, no-c-format
+msgid ""
+"<varname>loader_variables</varname> keeps track of various variables such as "
+"census site, year, data and staging schemas"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:451 extras_tigergeocoder.xml:509
+#, no-c-format
+msgid ""
+"<varname>loader_platform</varname> profiles of various platforms and where "
+"the various executables are located. Comes with windows and linux. More can "
+"be added."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:454 extras_tigergeocoder.xml:512
+#: extras_tigergeocoder.xml:568
+#, no-c-format
+msgid ""
+"<varname>loader_lookuptables</varname> each record defines a kind of table "
+"(state, county), whether to process records in it and how to load them in. "
+"Defines the steps to import data, stage data, add, removes columns, indexes, "
+"and constraints for each. Each table is prefixed with the state and inherits "
+"from a table in the tiger schema. e.g. creates <varname>tiger_data.ma_faces</"
+"varname> which inherits from <varname>tiger.faces</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:458
+#, no-c-format
+msgid ""
+"includes this logic, but if you installed tiger geocoder prior to PostGIS "
+"2.0.0 alpha5, you'll need to run this on the states you have already done to "
+"get these additional tables."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:465
+#, no-c-format
+msgid ""
+"Generate script to load up data for select states in Windows shell script "
+"format."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:466
+#, no-c-format
+msgid ""
+"SELECT loader_generate_census_script(ARRAY['MA'], 'windows');\n"
+"-- result --\n"
+"set STATEDIR=\"\\gisdata\\www2.census.gov\\geo\\pvs\\tiger2010st"
+"\\25_Massachusetts\"\n"
+"set TMPDIR=\\gisdata\\temp\\\n"
+"set UNZIPTOOL=\"C:\\Program Files\\7-Zip\\7z.exe\"\n"
+"set WGETTOOL=\"C:\\wget\\wget.exe\"\n"
+"set PGBIN=C:\\projects\\pg\\pg91win\\bin\\\n"
+"set PGPORT=5432\n"
+"set PGHOST=localhost\n"
+"set PGUSER=postgres\n"
+"set PGPASSWORD=yourpasswordhere\n"
+"set PGDATABASE=tiger_postgis20\n"
+"set PSQL=\"%PGBIN%psql\"\n"
+"set SHP2PGSQL=\"%PGBIN%shp2pgsql\"\n"
+"cd \\gisdata\n"
+"\n"
+"%WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --"
+"no-parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --"
+"mirror --reject=html\n"
+"del %TMPDIR%\\*.* /Q\n"
+"%PSQL% -c \"DROP SCHEMA tiger_staging CASCADE;\"\n"
+"%PSQL% -c \"CREATE SCHEMA tiger_staging;\"\n"
+"cd %STATEDIR%\n"
+"for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% \n"
+"cd %TMPDIR%        \n"
+"%PSQL% -c \"CREATE TABLE tiger_data.MA_tract(CONSTRAINT pk_MA_tract PRIMARY "
+"KEY (tract_id) ) INHERITS(tiger.tract); \" \n"
+"%SHP2PGSQL% -c -s 4269 -g the_geom   -W \"latin1\" tl_2010_25_tract10.dbf "
+"tiger_staging.ma_tract10 | %PSQL%\n"
+"%PSQL% -c \"ALTER TABLE tiger_staging.MA_tract10 RENAME geoid10 TO "
+"tract_id;  SELECT loader_load_staged_data(lower('MA_tract10'), "
+"lower('MA_tract')); \"\n"
+"%PSQL% -c \"CREATE INDEX tiger_data_MA_tract_the_geom_gist ON tiger_data."
+"MA_tract USING gist(the_geom);\"\n"
+"%PSQL% -c \"VACUUM ANALYZE tiger_data.MA_tract;\"\n"
+"%PSQL% -c \"ALTER TABLE tiger_data.MA_tract ADD CONSTRAINT chk_statefp CHECK "
+"(statefp = '25');\"\n"
+":"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:467 extras_tigergeocoder.xml:525
+#, no-c-format
+msgid "Generate sh script"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:468
+#, no-c-format
+msgid ""
+"STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts\" \n"
+"TMPDIR=\"/gisdata/temp/\"\n"
+"UNZIPTOOL=unzip\n"
+"WGETTOOL=\"/usr/bin/wget\"\n"
+"export PGBIN=/usr/pgsql-9.0/bin\n"
+"export PGPORT=5432\n"
+"export PGHOST=localhost\n"
+"export PGUSER=postgres\n"
+"export PGPASSWORD=yourpasswordhere\n"
+"export PGDATABASE=geocoder\n"
+"PSQL=${PGBIN}/psql\n"
+"SHP2PGSQL=${PGBIN}/shp2pgsql\n"
+"cd /gisdata\n"
+"\n"
+"wget http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --no-"
+"parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --mirror --"
+"reject=html\n"
+"rm -f ${TMPDIR}/*.*\n"
+"${PSQL} -c \"DROP SCHEMA tiger_staging CASCADE;\"\n"
+"${PSQL} -c \"CREATE SCHEMA tiger_staging;\"\n"
+"cd $STATEDIR\n"
+"for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:481
+#, no-c-format
+msgid "Loader_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:483
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data, stage and load into <varname>tiger_data</"
+"varname> schema. Each state script is returned as a separate record. Latest "
+"version supports Tiger 2010 structural changes and also loads census tract, "
+"block groups, and blocks tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:488
+#, no-c-format
+msgid ""
+"<funcdef>setof text <function>loader_generate_script</function></funcdef> "
+"<paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:499
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data, stage and load into <varname>tiger_data</"
+"varname> schema. Each state script is returned as a separate record."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:500
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the "
+"data. Note the smallest unit it does is a whole state, but you can overwrite "
+"this by downloading the files yourself. It will only process the files in "
+"the staging and temp folders."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:515
+#, no-c-format
+msgid ""
+"Availability: 2.0.0 to support Tiger 2010 structured data and load census "
+"tract (tract), block groups (bg), and blocks (tabblocks) tables ."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:523
+#, no-c-format
+msgid ""
+"Generate script to load up data for 2 states in Windows shell script format."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:524
+#, no-c-format
+msgid ""
+"SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;\n"
+"-- result --\n"
+"set STATEDIR=\"\\gisdata\\www2.census.gov\\geo\\pvs\\tiger2010st"
+"\\44_Rhode_Island\"\n"
+"set TMPDIR=\\gisdata\\temp\\\n"
+"set UNZIPTOOL=\"C:\\Program Files\\7-Zip\\7z.exe\"\n"
+"set WGETTOOL=\"C:\\wget\\wget.exe\"\n"
+"set PGBIN=C:\\Program Files\\PostgreSQL\\8.4\\bin\\\n"
+"set PGPORT=5432\n"
+"set PGHOST=localhost\n"
+"set PGUSER=postgres\n"
+"set PGPASSWORD=yourpasswordhere\n"
+"set PGDATABASE=geocoder\n"
+"set PSQL=\"%PGBIN%psql\"\n"
+"set SHP2PGSQL=\"%PGBIN%shp2pgsql\"\n"
+"\n"
+"%WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-"
+"parent --relative --recursive --level=2 --accept=zip,txt --mirror --"
+"reject=html\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:526
+#, no-c-format
+msgid ""
+"SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;\n"
+"-- result --\n"
+"STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island\" \n"
+"TMPDIR=\"/gisdata/temp/\"\n"
+"UNZIPTOOL=unzip\n"
+"PGPORT=5432\n"
+"PGHOST=localhost\n"
+"PGUSER=postgres\n"
+"PGPASSWORD=yourpasswordhere\n"
+"PGDATABASE=geocoder\n"
+"PSQL=psql\n"
+"SHP2PGSQ=shp2pgsql\n"
+"\n"
+"wget http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-parent "
+"--relative --recursive --level=2 --accept=zip,txt --mirror --reject=html\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:539
+#, no-c-format
+msgid "Loader_Generate_Nation_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:541
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform that loads in the county "
+"and state lookup tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:546
+#, no-c-format
+msgid ""
+"<funcdef>text <function>loader_generate_nation_script</function></funcdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:556
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform that loads in the "
+"<varname>county_all</varname>, <varname>county_all_lookup</varname>, "
+"<varname>state_all</varname> tables into <varname>tiger_data</varname> "
+"schema. These inherit respectively from the <varname>county</varname>, "
+"<varname>county_lookup</varname>, <varname>state</varname> tables in "
+"<varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:557
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the data."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:558
+#, no-c-format
+msgid ""
+"It uses the following control tables <varname>tiger.loader_platform</"
+"varname>, <varname>tiger.loader_variables</varname>, and <varname>tiger."
+"loader_lookuptables</varname> to control the process and different OS shell "
+"syntax variations."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:565
+#, no-c-format
+msgid ""
+"<varname>loader_platform</varname> profiles of various platforms and where "
+"the various executables are located. Comes with windows and linux/unix. More "
+"can be added."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:572
+#, no-c-format
+msgid ""
+"If you were running <varname>tiger_2010</varname> version and you want to "
+"reload as state with <varname>tiger_2011</varname>, you'll need to for the "
+"very first load generate and run drop statements <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/> before you run this script."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:578
+#, no-c-format
+msgid "Generate script script to load nation data Windows."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:579
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:580
+#, no-c-format
+msgid "Generate script to load up data for Linux/Unix systems."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:581
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:593
+#, no-c-format
+msgid "Missing_Indexes_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:595
+#, no-c-format
+msgid ""
+"Finds all tables with key columns used in geocoder joins that are missing "
+"indexes on those columns and will output the SQL DDL to define the index for "
+"those tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:601
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:611
+#, no-c-format
+msgid ""
+"Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
+"varname> schemas with key columns used in geocoder joins that are missing "
+"indexes on those columns and will output the SQL DDL to define the index for "
+"those tables. This is a helper function that adds new indexes needed to make "
+"queries faster that may have been missing during the load process. As the "
+"geocoder is improved, this function will be updated to accommodate new "
+"indexes being used. If this function outputs nothing, it means all your "
+"tables have what we think are the key indexes already in place."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:625
+#, no-c-format
+msgid ""
+"SELECT missing_indexes_generate_script();\n"
+"-- output: This was run on a database that was created before many "
+"corrections were made to the loading script ---\n"
+"CREATE INDEX idx_tiger_county_countyfp ON tiger.county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_cousub_countyfp ON tiger.cousub USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_edges_tfidr ON tiger.edges USING btree(tfidr);\n"
+"CREATE INDEX idx_tiger_edges_tfidl ON tiger.edges USING btree(tfidl);\n"
+"CREATE INDEX idx_tiger_zip_lookup_all_zip ON tiger.zip_lookup_all USING "
+"btree(zip);\n"
+"CREATE INDEX idx_tiger_data_ma_county_countyfp ON tiger_data.ma_county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_cousub_countyfp ON tiger_data.ma_cousub USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_edges_countyfp ON tiger_data.ma_edges USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_faces_countyfp ON tiger_data.ma_faces USING "
+"btree(countyfp);"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:632
+#, no-c-format
+msgid ", <xref linkend=\"Install_Missing_Indexes\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:638
+#, no-c-format
+msgid "Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:640
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data)."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:646
+#, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:656 extras_tigergeocoder.xml:735
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This is the first step in the "
+"geocoding process to get all addresses into normalized postal form. No other "
+"data is required aside from what is packaged with the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:658
+#, no-c-format
+msgid ""
+"This function just uses the various direction/state/suffix lookup tables "
+"preloaded with the tiger_geocoder and located in the <varname>tiger</"
+"varname> schema, so it doesn't need you to download tiger census data or any "
+"other additional data to make use of it. You may find the need to add more "
+"abbreviations or alternative namings to the various lookup tables in the "
+"<varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:660 extras_tigergeocoder.xml:739
+#, no-c-format
+msgid ""
+"It uses various control lookup tables located in <varname>tiger</varname> "
+"schema to normalize the input address."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:661 extras_tigergeocoder.xml:740
+#, no-c-format
+msgid ""
+"Fields in the <varname>norm_addy</varname> type object returned by this "
+"function in this order where () indicates a field required by the geocoder, "
+"[] indicates an optional field:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:662 extras_tigergeocoder.xml:744
+#, no-c-format
+msgid ""
+"(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] "
+"[internal] [location] [stateAbbrev] [zip]"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:665 extras_tigergeocoder.xml:750
+#, no-c-format
+msgid "<varname>address</varname> is an integer: The street number"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:668 extras_tigergeocoder.xml:753
+#, no-c-format
+msgid ""
+"<varname>predirAbbrev</varname> is varchar: Directional prefix of road such "
+"as N, S, E, W etc. These are controlled using the <varname>direction_lookup</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:671 extras_tigergeocoder.xml:756
+#, no-c-format
+msgid "<varname>streetName</varname> varchar"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:674 extras_tigergeocoder.xml:759
+#, no-c-format
+msgid ""
+"<varname>streetTypeAbbrev</varname> varchar abbreviated version of street "
+"type: e.g. St, Ave, Cir. These are controlled using the "
+"<varname>street_type_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:677 extras_tigergeocoder.xml:762
+#, no-c-format
+msgid ""
+"<varname>postdirAbbrev</varname> varchar abbreviated directional suffice of "
+"road N, S, E, W etc. These are controlled using the "
+"<varname>direction_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:680 extras_tigergeocoder.xml:765
+#, no-c-format
+msgid ""
+"<varname>internal</varname> varchar internal address such as an apartment or "
+"suite number."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:683 extras_tigergeocoder.xml:768
+#, no-c-format
+msgid ""
+"<varname>location</varname> varchar usually a city or governing province."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:686 extras_tigergeocoder.xml:771
+#, no-c-format
+msgid ""
+"<varname>stateAbbrev</varname> varchar two character US State. e.g MA, NY, "
+"MI. These are controlled by the <varname>state_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:689 extras_tigergeocoder.xml:774
+#, no-c-format
+msgid "<varname>zip</varname> varchar 5-digit zipcode. e.g. 02109."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:692 extras_tigergeocoder.xml:777
+#, no-c-format
+msgid ""
+"<varname>parsed</varname> boolean - denotes if addess was formed from "
+"normalize process. The normalize_address function sets this to true before "
+"returning the address."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:701
+#, no-c-format
+msgid ""
+"Output select fields. Use <xref linkend=\"Pprint_Addy\"/> if you want a "
+"pretty textual output."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:702
+#, no-c-format
+msgid ""
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM (SELECT address, normalize_address(address) As na\n"
+"        FROM addresses_to_geocode) As g;\n"
+"        \n"
+"                        orig                         |  streetname   | "
+"streettypeabbrev \n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 28 Capen Street, Medford, MA                        | Capen         | St\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | Mount Auburn  | St\n"
+" 950 Main Street, Worcester, MA 01610                | Main          | St\n"
+" 529 Main Street, Boston MA, 02129                   | Main          | St\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | Massachusetts | Ave\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | Wizard of Oz  |"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:711
+#, no-c-format
+msgid ", <xref linkend=\"Pprint_Addy\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:717
+#, no-c-format
+msgid "Pagc_Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:719
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data). Requires address_standardizer extension."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:725
+#, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>pagc_normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:737
+#, no-c-format
+msgid ""
+"This function just uses the various pagc_* lookup tables preloaded with the "
+"tiger_geocoder and located in the <varname>tiger</varname> schema, so it "
+"doesn't need you to download tiger census data or any other additional data "
+"to make use of it. You may find the need to add more abbreviations or "
+"alternative namings to the various lookup tables in the <varname>tiger</"
+"varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:741
+#, no-c-format
+msgid ""
+"There are slight variations in casing and formatting over the <xref linkend="
+"\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:743
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:745
+#, no-c-format
+msgid ""
+"The native standardaddr of address_standardizer extension is at this time a "
+"bit richer than norm_addy since its designed to support international "
+"addresses (including country). standardaddr equivalent fields are:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:746
+#, no-c-format
+msgid "house_num,predir, name, suftype, sufdir, unit, city, state, postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:785
+#, no-c-format
+msgid "Single call example"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:786
+#, no-c-format
+msgid ""
+"SELECT addy.*\n"
+"FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS "
+"addy;\n"
+"\n"
+"        \n"
+" address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | "
+"internal  |  location   | stateabbrev | zip | parsed\n"
+"---------+--------------+------------+------------------+---------------"
+"+-----------+-------------+-------------+-----+--------\n"
+"    9000 | E            | ROO        | ST               |               | "
+"SUITE 999 | SPRINGFIELD | CO          |     | t"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:788
+#, no-c-format
+msgid ""
+"Batch call. There are currently speed issues with the way "
+"postgis_tiger_geocoder wraps the address_standardizer. These will hopefully "
+"be resolved in later editions. To work around them, if you need speed for "
+"batch geocoding to call generate a normaddy in batch mode, you are "
+"encouraged to directly call the address_standardizer standardize_address "
+"function as shown below which is similar exercise to what we did in <xref "
+"linkend=\"Normalize_Address\"/> that uses data created in <xref linkend="
+"\"Geocode\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:792
+#, no-c-format
+msgid ""
+"WITH g AS (SELECT address, ROW((sa).house_num, (sa).predir, (sa).name\n"
+"  , (sa).suftype, (sa).sufdir, (sa).unit , (sa).city, (sa).state, (sa)."
+"postcode, true)::norm_addy As na\n"
+" FROM (SELECT address, standardize_address('tiger.pagc_lex'\n"
+"       , 'tiger.pagc_gaz'\n"
+"       , 'tiger.pagc_rules', address) As sa\n"
+"        FROM addresses_to_geocode) As g)\n"
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM  g;\n"
+" \n"
+" orig                                                |  streetname   | "
+"streettypeabbrev\n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 529 Main Street, Boston MA, 02129                   | MAIN          | ST\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | MASSACHUSETTS | AVE\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | WIZARD OF     |\n"
+" 26 Capen Street, Medford, MA                        | CAPEN         | ST\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | MOUNT AUBURN  | ST\n"
+" 950 Main Street, Worcester, MA 01610                | MAIN          | ST"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:797 extras_tigergeocoder.xml:913
+#, no-c-format
+msgid ", <xref linkend=\"Geocode\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:803
+#, no-c-format
+msgid "Pprint_Addy"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:805
+#, no-c-format
+msgid ""
+"Given a <varname>norm_addy</varname> composite type object, returns a pretty "
+"print representation of it. Usually used in conjunction with "
+"normalize_address."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:810
+#, no-c-format
+msgid ""
+"<funcdef>varchar <function>pprint_addy</function></funcdef> "
+"<paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:820
+#, no-c-format
+msgid ""
+"Given a <varname>norm_addy</varname> composite type object, returns a pretty "
+"print representation of it. No other data is required aside from what is "
+"packaged with the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:821
+#, no-c-format
+msgid "Usually used in conjunction with <xref linkend=\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:829
+#, no-c-format
+msgid "Pretty print a single address"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:830
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"            pretty_address\n"
+"---------------------------------------\n"
+" 202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:832
+#, no-c-format
+msgid "Pretty print address a table of addresses"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:833
+#, no-c-format
+msgid ""
+"SELECT address As orig, pprint_addy(normalize_address(address)) As "
+"pretty_address\n"
+"        FROM addresses_to_geocode;\n"
+"        \n"
+"                        orig                         |              "
+"pretty_address\n"
+"-----------------------------------------------------"
+"+-------------------------------------------\n"
+" 529 Main Street, Boston MA, 02129                   | 529 Main St, Boston "
+"MA, 02129\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | 77 Massachusetts Ave, "
+"Cambridge, MA 02139\n"
+" 28 Capen Street, Medford, MA                        | 28 Capen St, Medford, "
+"MA\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | 124 Mount Auburn St, "
+"Cambridge, MA 02138\n"
+" 950 Main Street, Worcester, MA 01610                | 950 Main St, "
+"Worcester, MA 01610"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:846
+#, no-c-format
+msgid "Reverse_Geocode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:848
+#, no-c-format
+msgid ""
+"Takes a geometry point in a known spatial ref sys and returns a record "
+"containing an array of theoretically possible addresses and an array of "
+"cross streets. If include_strnum_range = true, includes the street range in "
+"the cross streets."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:853
+#, no-c-format
+msgid ""
+"<funcdef>record <function>Reverse_Geocode</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>include_strnum_range=false</parameter></paramdef> "
+"<paramdef><type>geometry[] </type> <parameter>OUT intpt</parameter></"
+"paramdef> <paramdef><type>norm_addy[] </type> <parameter>OUT addy</"
+"parameter></paramdef> <paramdef><type>varchar[] </type> <parameter>OUT "
+"street</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:867
+#, no-c-format
+msgid ""
+"Takes a geometry point in a known spatial ref and returns a record "
+"containing an array of theoretically possible addresses and an array of "
+"cross streets. If include_strnum_range = true, includes the street range in "
+"the cross streets. include_strnum_range defaults to false if not passed in. "
+"Addresses are sorted according to which road a point is closest to so first "
+"address is most likely the right one."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:870
+#, no-c-format
+msgid ""
+"Why do we say theoretical instead of actual addresses. The Tiger data "
+"doesn't have real addresses, but just street ranges. As such the theoretical "
+"address is an interpolated address based on the street ranges. Like for "
+"example interpolating one of my addresses returns a 26 Court St. and 26 "
+"Court Sq., though there is no such place as 26 Court Sq. This is because a "
+"point may be at a corner of 2 streets and thus the logic interpolates along "
+"both streets. The logic also assumes addresses are equally spaced along a "
+"street, which of course is wrong since you can have a municipal building "
+"taking up a good chunk of the street range and the rest of the buildings are "
+"clustered at the end."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:875
+#, no-c-format
+msgid ""
+"Note: Hmm this function relies on Tiger data. If you have not loaded data "
+"covering the region of this point, then hmm you will get a record filled "
+"with NULLS."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:876
+#, no-c-format
+msgid "Returned elements of the record are as follows:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:879
+#, no-c-format
+msgid ""
+"<varname>intpt</varname> is an array of points: These are the center line "
+"points on the street closest to the input point. There are as many points as "
+"there are addresses."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:882
+#, no-c-format
+msgid ""
+"<varname>addy</varname> is an array of norm_addy (normalized addresses): "
+"These are an array of possible addresses that fit the input point. The first "
+"one in the array is most likely. Generally there should be only one, except "
+"in the case when a point is at the corner of 2 or 3 streets, or the point is "
+"somewhere on the road and not off to the side."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:886
+#, no-c-format
+msgid ""
+"<varname>street</varname> an array of varchar: These are cross streets (or "
+"the street) (streets that intersect or are the street the point is projected "
+"to be on)."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:897
+#, no-c-format
+msgid ""
+"Example of a point at the corner of two streets, but closest to one. This is "
+"approximate location of MIT: 77 Massachusetts Ave, Cambridge, MA 02139 Note "
+"that although we don't have 3 streets, PostgreSQL will just return null for "
+"entries above our upper bound so safe to use. This includes street ranges"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:899
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, "
+"pprint_addy(r.addy[3]) As st3, \n"
+"                array_to_string(r.street, ',') As cross_streets \n"
+"        FROM reverse_geocode(ST_GeomFromText('POINT(-71.093902 "
+"42.359446)',4269),true) As r;\n"
+"       \n"
+" result\n"
+" ------\n"
+"      st1                                  | st2 | st3 |               "
+"cross_streets\n"
+"-------------------------------------------+-----+-----"
+"+----------------------------------------------\n"
+" 67 Massachusetts Ave, Cambridge, MA 02139 |     |     | 67 - 127 "
+"Massachusetts Ave,32 - 88 Vassar St"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:901
+#, no-c-format
+msgid ""
+"Here we choose not to include the address ranges for the cross streets and "
+"picked a location really really close to a corner of 2 streets thus could be "
+"known by two different addresses."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:903
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, \n"
+"pprint_addy(r.addy[3]) As st3, array_to_string(r.street, ',') As cross_str\n"
+"FROM reverse_geocode(ST_GeomFromText('POINT(-71.06941 42.34225)',4269)) As "
+"r;\n"
+"\n"
+"result\n"
+"--------\n"
+"               st1               |               st2               | st3 | "
+"cross_str\n"
+"---------------------------------+---------------------------------+-----"
+"+------------------------\n"
+" 5 Bradford St, Boston, MA 02118 | 49 Waltham St, Boston, MA 02118 |     | "
+"Waltham St"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:905
+#, no-c-format
+msgid ""
+"For this one we reuse our geocoded example from <xref linkend=\"Geocode\"/> "
+"and we only want the primary address and at most 2 cross streets."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:906
+#, no-c-format
+msgid ""
+"SELECT actual_addr, lon, lat, pprint_addy((rg).addy[1]) As int_addr1, \n"
+"        (rg).street[1] As cross1, (rg).street[2] As cross2\n"
+"FROM (SELECT address As actual_addr, lon, lat,\n"
+"    reverse_geocode( ST_SetSRID(ST_Point(lon,lat),4326) ) As rg\n"
+"    FROM addresses_to_geocode WHERE rating > -1) As foo;\n"
+"\n"
+"                     actual_addr                     |    lon    |   lat    "
+"|                 int_addr1                 |     cross1      |   cross2   \n"
+"-----------------------------------------------------+-----------+----------"
+"+-------------------------------------------+-----------------+------------\n"
+" 529 Main Street, Boston MA, 02129                   | -71.07181 | 42.38359 "
+"| 527 Main St, Boston, MA 02129             | Medford St      | \n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | -71.09428 | 42.35988 "
+"| 77 Massachusetts Ave, Cambridge, MA 02139 | Vassar St       | \n"
+" 26 Capen Street, Medford, MA                        | -71.12377 | 42.41101 "
+"| 9 Edison Ave, Medford, MA 02155           | Capen St        | Tesla Ave\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | -71.12304 | 42.37328 "
+"| 3 University Rd, Cambridge, MA 02138      | Mount Auburn St | \n"
+" 950 Main Street, Worcester, MA 01610                | -71.82368 | 42.24956 "
+"| 3 Maywood St, Worcester, MA 01603         | Main St         | Maywood Pl"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:919
+#, no-c-format
+msgid "Topology_Load_Tiger"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:921
+#, no-c-format
+msgid ""
+"Loads a defined region of tiger data into a PostGIS Topology and "
+"transforming the tiger data to spatial reference of the topology and "
+"snapping to the precision tolerance of the topology."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:927
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Topology_Load_Tiger</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topo_name</parameter></paramdef> "
+"<paramdef><type>varchar </type> <parameter>region_type</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>region_id</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:939
+#, no-c-format
+msgid ""
+"Loads a defined region of tiger data into a PostGIS Topology. The faces, "
+"nodes and edges are transformed to the spatial reference system of the "
+"target topology and points are snapped to the tolerance of the target "
+"topology. The created faces, nodes, edges maintain the same ids as the "
+"original Tiger data faces, nodes, edges so that datasets can be in the "
+"future be more easily reconciled with tiger data. Returns summary details "
+"about the process."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:942
+#, no-c-format
+msgid ""
+"This would be useful for example for redistricting data where you require "
+"the newly formed polygons to follow the center lines of streets and for the "
+"resulting polygons not to overlap."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:944
+#, no-c-format
+msgid ""
+"This function relies on Tiger data as well as the installation of the "
+"PostGIS topology module. For more information, refer to <xref linkend="
+"\"Topology\"/> and <xref linkend=\"installation_configuration\"/>. If you "
+"have not loaded data covering the region of interest, then no topology "
+"records will be created. This function will also fail if you have not "
+"created a topology using the topology functions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:946
+#, no-c-format
+msgid ""
+"Most topology validation errors are a result of tolerance issues where after "
+"transformation the edges points don't quite line up or overlap. To remedy "
+"the situation you may want to increase or lower the precision if you get "
+"topology validation failures."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:948
+#, no-c-format
+msgid "Required arguments:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:951
+#, no-c-format
+msgid ""
+"<varname>topo_name</varname> The name of an existing PostGIS topology to "
+"load data into."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:954
+#, no-c-format
+msgid ""
+"<varname>region_type</varname> The type of bounding region. Currently only "
+"<varname>place</varname> and <varname>county</varname> are supported. Plan "
+"is to have several more. This is the table to look into to define the region "
+"bounds. e.g <varname>tiger.place</varname>, <varname>tiger.county</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:957
+#, no-c-format
+msgid ""
+"<varname>region_id</varname> This is what TIGER calls the geoid. It is the "
+"unique identifier of the region in the table. For place it is the "
+"<varname>plcidfp</varname> column in <varname>tiger.place</varname>. For "
+"county it is the <varname>cntyidfp</varname> column in <varname>tiger."
+"county</varname>"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:966
+#, no-c-format
+msgid "Example: Boston, Massachusetts Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:967
+#, no-c-format
+msgid ""
+"Create a topology for Boston, Massachusetts in Mass State Plane Feet (2249) "
+"with tolerance 0.25 feet and then load in Boston city tiger faces, edges, "
+"nodes."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:969
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('topo_boston', 2249, 0.25);\n"
+"createtopology\n"
+"--------------\n"
+"   15\n"
+"-- 60,902 ms ~ 1 minute on windows 7 desktop running 9.1 (with 5 states "
+"tiger data loaded) \n"
+"SELECT tiger.topology_load_tiger('topo_boston', 'place', '2507000'); \n"
+"-- topology_loader_tiger --\n"
+"29722 edges holding in temporary. 11108 faces added. 1875 edges of faces "
+"added.  20576 nodes added.  \n"
+"19962 nodes contained in a face.  0 edge start end corrected.  31597 edges "
+"added. \n"
+" \n"
+"-- 41 ms --\n"
+"SELECT topology.TopologySummary('topo_boston');\n"
+" -- topologysummary--\n"
+"Topology topo_boston (15), SRID 2249, precision 0.25\n"
+"20576 nodes, 31597 edges, 11109 faces, 0 topogeoms in 0 layers\n"
+"\n"
+"-- 28,797 ms to validate yeh returned no errors --\n"
+"SELECT * FROM \n"
+"    topology.ValidateTopology('topo_boston'); \n"
+"    \n"
+"       error       |   id1    |    id2\n"
+"-------------------+----------+-----------"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:973
+#, no-c-format
+msgid "Example: Suffolk, Massachusetts Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:974
+#, no-c-format
+msgid ""
+"Create a topology for Suffolk, Massachusetts in Mass State Plane Meters "
+"(26986) with tolerance 0.25 meters and then load in Suffolk county tiger "
+"faces, edges, nodes."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:976
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);\n"
+"-- this took 56,275 ms ~ 1 minute on Windows 7 32-bit with 5 states of tiger "
+"loaded\n"
+"-- must have been warmed up after loading boston\n"
+"SELECT tiger.topology_load_tiger('topo_suffolk', 'county', '25025');  \n"
+"-- topology_loader_tiger --\n"
+" 36003 edges holding in temporary. 13518 faces added. 2172 edges of faces "
+"added. \n"
+" 24761 nodes added.  24075 nodes contained in a face.  0 edge start end "
+"corrected.  38175 edges added. \n"
+"-- 31 ms --\n"
+"SELECT topology.TopologySummary('topo_suffolk');\n"
+" -- topologysummary--\n"
+" Topology topo_suffolk (14), SRID 26986, precision 0.25\n"
+"24761 nodes, 38175 edges, 13519 faces, 0 topogeoms in 0 layers\n"
+"\n"
+"-- 33,606 ms to validate --\n"
+"SELECT * FROM \n"
+"    topology.ValidateTopology('topo_suffolk'); \n"
+"    \n"
+"       error       |   id1    |    id2\n"
+"-------------------+----------+-----------\n"
+" coincident nodes  | 81045651 |  81064553\n"
+" edge crosses node | 81045651 |  85737793\n"
+" edge crosses node | 81045651 |  85742215\n"
+" edge crosses node | 81045651 | 620628939\n"
+" edge crosses node | 81064553 |  85697815\n"
+" edge crosses node | 81064553 |  85728168\n"
+" edge crosses node | 81064553 |  85733413"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:980
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopoGeom\"/>, <xref linkend=\"TopologySummary\"/>, "
+"<xref linkend=\"ValidateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:986
+#, no-c-format
+msgid "Set_Geocode_Setting"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:988
+#, no-c-format
+msgid "Sets a setting that affects behavior of geocoder functions."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:993
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Set_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> setting_value</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:1004
+#, no-c-format
+msgid ""
+"Sets value of specific setting stored in <varname>tiger.geocode_settings</"
+"varname> table. Settings allow you to toggle debugging of functions. Later "
+"plans will be to control rating with settings. Current list of settings are "
+"listed in <xref linkend=\"Get_Geocode_Setting\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:1013
+#, no-c-format
+msgid ""
+"If you run <xref linkend=\"Geocode\"/> when this function is true, the "
+"NOTICE log will output timing and queries."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:1014
+#, no-c-format
+msgid ""
+"SELECT set_geocode_setting('debug_geocode_address', 'true') As result;\n"
+"result\n"
+"---------\n"
+"true"
+msgstr ""
diff --git a/doc/po/ko_KR/extras_topology.xml.po b/doc/po/ko_KR/extras_topology.xml.po
new file mode 100644
index 0000000..c522a67
--- /dev/null
+++ b/doc/po/ko_KR/extras_topology.xml.po
@@ -0,0 +1,4209 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 10:57+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: extras_topology.xml:3
+#, no-c-format
+msgid "Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:4
+#, no-c-format
+msgid ""
+"The PostGIS Topology types and functions are used to manage topological "
+"objects such as faces, edges and nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:5
+#, no-c-format
+msgid ""
+"Sandro Santilli's presentation at PostGIS Day Paris 2011 conference gives a "
+"good synopsis of PostGIS Topology and where it is headed <ulink url=\"http://"
+"strk.keybit.net/projects/postgis/Paris2011_TopologyWithPostGIS_2_0.pdf"
+"\">Topology with PostGIS 2.0 slide deck</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:6
+#, no-c-format
+msgid ""
+"Vincent Picavet provides a good synopsis and overview of what is Topology, "
+"how is it used, and various FOSS4G tools that support it in <ulink url="
+"\"http://2010.foss4g.org/presentations/3555.pdf\">State of the art of FOSS4G "
+"for topology and network analysis</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:7
+#, no-c-format
+msgid ""
+"An example of a topologically based GIS database is the <ulink url=\"http://"
+"www.census.gov/geo/www/tiger/overview.html\">US Census Topologically "
+"Integrated Geographic Encoding and Reference System (TIGER)</ulink> "
+"database. If you want to experiment with PostGIS topology and need some "
+"data, check out <xref linkend=\"Topology_Load_Tiger\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:8
+#, no-c-format
+msgid ""
+"The PostGIS topology module has existed in prior versions of PostGIS but was "
+"never part of the Official PostGIS documentation. In PostGIS 2.0.0 major "
+"cleanup is going on to remove use of all deprecated functions in it, fix "
+"known usability issues, better document the features and functions, add new "
+"functions, and enhance to closer conform to SQL-MM standards."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:10
+#, no-c-format
+msgid ""
+"Details of this project can be found at <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/UsersWikiPostgisTopology\">PostGIS Topology Wiki</ulink>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:11
+#, no-c-format
+msgid ""
+"All functions and tables associated with this module are installed in a "
+"schema called <varname>topology</varname>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:12
+#, no-c-format
+msgid ""
+"Functions that are defined in SQL/MM standard are prefixed with ST_ and "
+"functions specific to PostGIS are not prefixed."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:13
+#, no-c-format
+msgid ""
+"To build PostGIS 2.0 with topology support, compile with the --with-topology "
+"option as described in <xref linkend=\"postgis_installation\"/>. Some "
+"functions depend on GEOS 3.3+ so you should compile with GEOS 3.3+ to fully "
+"utilize the topology support."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:18
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by PostGIS Topology. "
+"Note we describe the casting behavior of these which is very important "
+"especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:23
+#, no-c-format
+msgid "Topology Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:27
+#, no-c-format
+msgid "getfaceedges_returntype"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:28
+#, no-c-format
+msgid ""
+"A composite type that consists of a sequence number and edge number. This is "
+"the return type for <varname>ST_GetFaceEdges</varname>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:31 extras_topology.xml:50 extras_topology.xml:99
+#: extras_topology.xml:138 extras_topology.xml:163 extras_topology.xml:240
+#: extras_topology.xml:287 extras_topology.xml:328 extras_topology.xml:367
+#: extras_topology.xml:404 extras_topology.xml:474 extras_topology.xml:522
+#: extras_topology.xml:570 extras_topology.xml:614 extras_topology.xml:662
+#: extras_topology.xml:708 extras_topology.xml:754 extras_topology.xml:809
+#: extras_topology.xml:855 extras_topology.xml:902 extras_topology.xml:959
+#: extras_topology.xml:1017 extras_topology.xml:1089 extras_topology.xml:1157
+#: extras_topology.xml:1223 extras_topology.xml:1278 extras_topology.xml:1326
+#: extras_topology.xml:1373 extras_topology.xml:1416 extras_topology.xml:1470
+#: extras_topology.xml:1564 extras_topology.xml:1659 extras_topology.xml:1701
+#: extras_topology.xml:1743 extras_topology.xml:1786 extras_topology.xml:1836
+#: extras_topology.xml:1880 extras_topology.xml:1932 extras_topology.xml:1990
+#: extras_topology.xml:2031 extras_topology.xml:2088 extras_topology.xml:2134
+#: extras_topology.xml:2206 extras_topology.xml:2260 extras_topology.xml:2331
+#: extras_topology.xml:2407 extras_topology.xml:2452 extras_topology.xml:2484
+#: extras_topology.xml:2522 extras_topology.xml:2570 extras_topology.xml:2665
+#: extras_topology.xml:2719 extras_topology.xml:2782 extras_topology.xml:2831
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:32
+#, no-c-format
+msgid ""
+"A composite type that consists of a sequence number and edge number. This is "
+"the return type for <varname>ST_GetFaceEdges</varname> function."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:35
+#, no-c-format
+msgid ""
+"<varname>sequence</varname> is an integer: Refers to a topology defined in "
+"the topology.topology table which defines the topology schema and srid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:38
+#, no-c-format
+msgid "<varname>edge</varname> is an integer: The identifier of an edge."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:46
+#, no-c-format
+msgid "TopoGeometry"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:47
+#, no-c-format
+msgid "A composite type representing a topologically defined geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:51
+#, no-c-format
+msgid ""
+"A composite type that refers to a topology geometry in a specific topology "
+"layer, having a specific type and a specific id. The elements of a "
+"TopoGeometry are the properties: topology_id, layer_id, id integer, type "
+"integer."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:54
+#, no-c-format
+msgid ""
+"<varname>topology_id</varname> is an integer: Refers to a topology defined "
+"in the topology.topology table which defines the topology schema and srid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:57
+#, no-c-format
+msgid ""
+"<varname>layer_id</varname> is an integer: The layer_id in the layers table "
+"that the TopoGeometry belongs to. The combination of topology_id, layer_id "
+"provides a unique reference in the topology.layers table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:60
+#, no-c-format
+msgid ""
+"<varname>id</varname> is an integer: The id is the autogenerated sequence "
+"number that uniquely defines the topogeometry in the respective topology "
+"layer."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:63
+#, no-c-format
+msgid ""
+"<varname>type</varname> integer between 1 - 4 that defines the geometry "
+"type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:69
+#, no-c-format
+msgid "Casting Behavior"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:70
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:75
+#, no-c-format
+msgid "Cast To"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:76
+#, no-c-format
+msgid "Behavior"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:79
+#, no-c-format
+msgid "geometry"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:80
+#, no-c-format
+msgid "automatic"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:149
+#: extras_topology.xml:173 extras_topology.xml:265 extras_topology.xml:305
+#: extras_topology.xml:345 extras_topology.xml:382 extras_topology.xml:423
+#: extras_topology.xml:499 extras_topology.xml:548 extras_topology.xml:587
+#: extras_topology.xml:636 extras_topology.xml:677 extras_topology.xml:723
+#: extras_topology.xml:769 extras_topology.xml:830 extras_topology.xml:877
+#: extras_topology.xml:933 extras_topology.xml:990 extras_topology.xml:1062
+#: extras_topology.xml:1130 extras_topology.xml:1197 extras_topology.xml:1246
+#: extras_topology.xml:1295 extras_topology.xml:1345 extras_topology.xml:1393
+#: extras_topology.xml:1442 extras_topology.xml:1488 extras_topology.xml:1542
+#: extras_topology.xml:1586 extras_topology.xml:1636 extras_topology.xml:1674
+#: extras_topology.xml:1716 extras_topology.xml:1758 extras_topology.xml:1809
+#: extras_topology.xml:1854 extras_topology.xml:1904 extras_topology.xml:1957
+#: extras_topology.xml:2006 extras_topology.xml:2065 extras_topology.xml:2108
+#: extras_topology.xml:2183 extras_topology.xml:2218 extras_topology.xml:2290
+#: extras_topology.xml:2380 extras_topology.xml:2421 extras_topology.xml:2471
+#: extras_topology.xml:2541 extras_topology.xml:2588 extras_topology.xml:2697
+#: extras_topology.xml:2746 extras_topology.xml:2807 extras_topology.xml:2857
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:95
+#, no-c-format
+msgid "validatetopology_returntype"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:96
+#, no-c-format
+msgid ""
+"A composite type that consists of an error message and id1 and id2 to denote "
+"location of error. This is the return type for <varname>ValidateTopology</"
+"varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:100
+#, no-c-format
+msgid ""
+"A composite type that consists of an error message and two integers. The "
+"<xref linkend=\"ValidateTopology\"/> function returns a set of these to "
+"denote validation errors and the id1 and id2 to denote the ids of the "
+"topology objects involved in the error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:103
+#, no-c-format
+msgid "<varname>error</varname> is varchar: Denotes type of error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:104
+#, no-c-format
+msgid ""
+"Current error descriptors are: coincident nodes, edge crosses node, edge not "
+"simple, edge end node geometry mis-match, edge start node geometry mismatch, "
+"face overlaps face,face within face,"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:107
+#, no-c-format
+msgid ""
+"<varname>id1</varname> is an integer: Denotes identifier of edge / face / "
+"nodes in error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:110
+#, no-c-format
+msgid ""
+"<varname>id2</varname> is an integer: For errors that involve 2 objects "
+"denotes the secondary edge / or node"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:125
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL domains installed by PostGIS Topology. "
+"Domains can be used like object types as return objects of functions or "
+"table columns. The distinction between a domain and a type is that a domain "
+"is an existing type with a check constraint bound to it."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:130
+#, no-c-format
+msgid "Topology Domains"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:134
+#, no-c-format
+msgid "TopoElement"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:135
+#, no-c-format
+msgid ""
+"An array of 2 integers generally used to identify a TopoGeometry component."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:139
+#, no-c-format
+msgid ""
+"An array of 2 integers used to represent the id (first element) and type "
+"(second element) of a topology primitive or the id (first element) and layer "
+"(second element) of a TopoGeometry. Sets of such pairs are used to define "
+"TopoGeometry objects (either simple or hierarchical)."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:142 extras_topology.xml:167 extras_topology.xml:258
+#: extras_topology.xml:298 extras_topology.xml:339 extras_topology.xml:377
+#: extras_topology.xml:417 extras_topology.xml:488 extras_topology.xml:538
+#: extras_topology.xml:581 extras_topology.xml:630 extras_topology.xml:823
+#: extras_topology.xml:870 extras_topology.xml:926 extras_topology.xml:983
+#: extras_topology.xml:1055 extras_topology.xml:1123 extras_topology.xml:1191
+#: extras_topology.xml:1240 extras_topology.xml:1387 extras_topology.xml:1436
+#: extras_topology.xml:1482 extras_topology.xml:1534 extras_topology.xml:1579
+#: extras_topology.xml:1628 extras_topology.xml:1668 extras_topology.xml:1710
+#: extras_topology.xml:1752 extras_topology.xml:1802 extras_topology.xml:1848
+#: extras_topology.xml:2059 extras_topology.xml:2102 extras_topology.xml:2177
+#: extras_topology.xml:2371 extras_topology.xml:2417 extras_topology.xml:2465
+#: extras_topology.xml:2534 extras_topology.xml:2581 extras_topology.xml:2688
+#: extras_topology.xml:2751 extras_topology.xml:2800 extras_topology.xml:2850
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:143
+#, no-c-format
+msgid ""
+"SELECT te[1] AS id, te[2] AS type FROM\n"
+"( SELECT ARRAY[1,2]::topology.topoelement AS te ) f;\n"
+" id | type\n"
+"----+------\n"
+"  1 |    2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:144
+#, no-c-format
+msgid ""
+"SELECT ARRAY[1,2]::topology.topoelement;\n"
+"  te\n"
+"-------\n"
+" {1,2}"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:145
+#, no-c-format
+msgid ""
+"--Example of what happens when you try to case a 3 element array to "
+"topoelement\n"
+"-- NOTE: topoement has to be a 2 element array so fails dimension check\n"
+"SELECT ARRAY[1,2,3]::topology.topoelement;\n"
+"ERROR:  value for domain topology.topoelement violates check constraint "
+"\"dimensions\""
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:150 extras_topology.xml:2422 extras_topology.xml:2542
+#, no-c-format
+msgid ", <xref linkend=\"topoelementarray\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:159
+#, no-c-format
+msgid "TopoElementArray"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:160
+#, no-c-format
+msgid "An array of TopoElement objects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:164
+#, no-c-format
+msgid ""
+"An array of 1 or more TopoElement objects, generally used to pass around "
+"components of TopoGeometry objects."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:168
+#, no-c-format
+msgid ""
+"SELECT '{{1,2},{4,3}}'::topology.topoelementarray As tea;\n"
+"  tea\n"
+"-------\n"
+"{{1,2},{4,3}}\n"
+"\n"
+"-- more verbose equivalent --\n"
+"SELECT ARRAY[ARRAY[1,2], ARRAY[4,3]]::topology.topoelementarray As tea;\n"
+"\n"
+"  tea\n"
+"-------\n"
+"{{1,2},{4,3}}\n"
+"\n"
+"--using the array agg function packaged with topology --\n"
+"SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
+"  FROM generate_series(1,4) As e CROSS JOIN generate_series(1,3) As t;\n"
+"  tea\n"
+"--------------------------------------------------------------------------\n"
+"{{1,1},{1,2},{1,3},{2,1},{2,2},{2,3},{3,1},{3,2},{3,3},{4,1},{4,2},{4,3}}"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:169
+#, no-c-format
+msgid ""
+"SELECT '{{1,2,4},{3,4,5}}'::topology.topoelementarray As tea;\n"
+"ERROR:  value for domain topology.topoelementarray violates check constraint "
+"\"dimensions\""
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:174
+#, no-c-format
+msgid ""
+", <xref linkend=\"GetTopoGeomElementArray\"/>, <xref linkend="
+"\"TopoElementArray_Agg\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:186
+#, no-c-format
+msgid ""
+"This section lists the Topology functions for building new Topology schemas, "
+"validating topologies, and managing TopoGeometry Columns"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:189
+#, no-c-format
+msgid "Topology and TopoGeometry Management"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:192
+#, no-c-format
+msgid "AddTopoGeometryColumn"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:193
+#, no-c-format
+msgid ""
+"Adds a topogeometry column to an existing table, registers this new column "
+"as a layer in topology.layer and returns the new layer_id."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:197
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>child_layer</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:242
+#, no-c-format
+msgid ""
+"Each TopoGeometry object belongs to a specific Layer of a specific Topology. "
+"Before creating a TopoGeometry object you need to create its TopologyLayer. "
+"A Topology Layer is an association of a feature-table with the topology. It "
+"also contain type and hierarchy information. We create a layer using the "
+"AddTopoGeometryColumn() function:"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:244
+#, no-c-format
+msgid ""
+"This function will both add the requested column to the table and add a "
+"record to the topology.layer table with all the given info."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:245
+#, no-c-format
+msgid ""
+"If you don't specify [child_layer] (or set it to NULL) this layer would "
+"contain Basic TopoGeometries (composed by primitive topology elements). "
+"Otherwise this layer will contain hierarchical TopoGeometries (composed by "
+"TopoGeometries from the child_layer)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:248
+#, no-c-format
+msgid ""
+"Once the layer is created (it's id is returned by the AddTopoGeometryColumn "
+"function) you're ready to construct TopoGeometry objects in it"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:249
+#, no-c-format
+msgid ""
+"Valid <varname>feature_type</varname>s are: POINT, LINE, POLYGON, COLLECTION"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:252 extras_topology.xml:293 extras_topology.xml:334
+#: extras_topology.xml:410 extras_topology.xml:483 extras_topology.xml:575
+#: extras_topology.xml:817 extras_topology.xml:864 extras_topology.xml:1233
+#: extras_topology.xml:1381 extras_topology.xml:1430 extras_topology.xml:1476
+#: extras_topology.xml:1663 extras_topology.xml:1747 extras_topology.xml:1842
+#: extras_topology.xml:2268 extras_topology.xml:2529 extras_topology.xml:2576
+#: extras_topology.xml:2791 extras_topology.xml:2841
+#, no-c-format
+msgid "Availability: 1.?"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:259
+#, no-c-format
+msgid ""
+"-- Note for this example we created our new table in the ma_topo schema \n"
+"-- though we could have created it in a different schema -- in which case "
+"topology_name and schema_name would be different \n"
+"CREATE SCHEMA ma;\n"
+"CREATE TABLE ma.parcels(gid serial, parcel_id varchar(20) PRIMARY KEY, "
+"address text);\n"
+"SELECT topology.AddTopoGeometryColumn('ma_topo', 'ma', 'parcels', 'topo', "
+"'POLYGON');"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:260
+#, no-c-format
+msgid ""
+"CREATE SCHEMA ri;\n"
+"CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);\n"
+"SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', "
+"'LINE');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:267
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopoGeom\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:272
+#, no-c-format
+msgid "DropTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:274
+#, no-c-format
+msgid ""
+"Use with caution: Drops a topology schema and deletes its reference from "
+"topology.topology table and references to tables in that schema from the "
+"geometry_columns table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:279
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>DropTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:289
+#, no-c-format
+msgid ""
+"Drops a topology schema and deletes its reference from topology.topology "
+"table and references to tables in that schema from the geometry_columns "
+"table. This function should be USED WITH CAUTION, as it could destroy data "
+"you care about. If the schema does not exist, it just removes reference "
+"entries the named schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:299
+#, no-c-format
+msgid ""
+"Cascade drops the ma_topo schema and removes all references to it in "
+"topology.topology and geometry_columns."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:300
+#, no-c-format
+msgid "SELECT topology.DropTopology('ma_topo');"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:311
+#, no-c-format
+msgid "DropTopoGeometryColumn"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:313
+#, no-c-format
+msgid ""
+"Drops the topogeometry column from the table named <varname>table_name</"
+"varname> in schema <varname>schema_name</varname> and unregisters the "
+"columns from topology.layer table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:318
+#, no-c-format
+msgid ""
+"<funcdef>text <function>DropTopoGeometryColumn</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:330
+#, no-c-format
+msgid ""
+"Drops the topogeometry column from the table named <varname>table_name</"
+"varname> in schema <varname>schema_name</varname> and unregisters the "
+"columns from topology.layer table. Returns summary of drop status. NOTE: it "
+"first sets all values to NULL before dropping to bypass referential "
+"integrity checks."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:340
+#, no-c-format
+msgid ""
+"SELECT topology.DropTopoGeometryColumn('ma_topo', 'parcel_topo', 'topo');"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:352
+#, no-c-format
+msgid "TopologySummary"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:354
+#, no-c-format
+msgid ""
+"Takes a topology name and provides summary totals of types of objects in "
+"topology"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:359
+#, no-c-format
+msgid ""
+"<funcdef>text <function>TopologySummary</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:369
+#, no-c-format
+msgid ""
+"Takes a topology name and provides summary totals of types of objects in "
+"topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:372 extras_topology.xml:533 extras_topology.xml:671
+#: extras_topology.xml:717 extras_topology.xml:763 extras_topology.xml:1705
+#: extras_topology.xml:2001 extras_topology.xml:2054 extras_topology.xml:2172
+#: extras_topology.xml:2412 extras_topology.xml:2683
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:378
+#, no-c-format
+msgid ""
+"SELECT topology.topologysummary('city_data');\n"
+"                    topologysummary                     \n"
+"--------------------------------------------------------\n"
+" Topology city_data (329), SRID 4326, precision: 0\n"
+" 22 nodes, 24 edges, 10 faces, 29 topogeoms in 5 layers\n"
+" Layer 1, type Polygonal (3), 9 topogeoms\n"
+"  Deploy: features.land_parcels.feature\n"
+" Layer 2, type Puntal (1), 8 topogeoms\n"
+"  Deploy: features.traffic_signs.feature\n"
+" Layer 3, type Lineal (2), 8 topogeoms\n"
+"  Deploy: features.city_streets.feature\n"
+" Layer 4, type Polygonal (3), 3 topogeoms\n"
+"  Hierarchy level 1, child layer 1\n"
+"  Deploy: features.big_parcels.feature\n"
+" Layer 5, type Puntal (1), 1 topogeoms\n"
+"  Hierarchy level 1, child layer 2\n"
+"  Deploy: features.big_signs.feature"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:389
+#, no-c-format
+msgid "ValidateTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:391
+#, no-c-format
+msgid ""
+"Returns a set of validatetopology_returntype objects detailing issues with "
+"topology"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:396
+#, no-c-format
+msgid ""
+"<funcdef>setof validatetopology_returntype <function>ValidateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:406
+#, no-c-format
+msgid ""
+"Returns a set of <xref linkend=\"validatetopology_returntype\"/> objects "
+"detailing issues with topology. Refer to <xref linkend="
+"\"validatetopology_returntype\"/> for listing of possible errors."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:412
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 more efficient edge crossing detection and fixes for false "
+"positives that were existent in prior versions."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:418
+#, no-c-format
+msgid ""
+"SELECT * FROM  topology.ValidateTopology('ma_topo');\n"
+"      error        | id1 | id2\n"
+"-------------------+-----+-----\n"
+"face without edges |   0 |"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:424
+#, no-c-format
+msgid ", <xref linkend=\"Topology_Load_Tiger\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:432
+#, no-c-format
+msgid "This section covers the topology functions for creating new topologies."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:435
+#, no-c-format
+msgid "Topology Constructors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:439
+#, no-c-format
+msgid "CreateTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:440
+#, no-c-format
+msgid ""
+"Creates a new topology schema and registers this new schema in the topology."
+"topology table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:444
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>CreateTopology</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>integer <function>CreateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>hasz</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:476
+#, no-c-format
+msgid ""
+"Creates a new schema with name <varname>topology_name</varname> consisting "
+"of tables (<varname>edge_data</varname>,<varname>face</varname>,"
+"<varname>node</varname>, <varname>relation</varname> and registers this new "
+"topology in the topology.topology table. It returns the id of the topology "
+"in the topology table. The srid is the spatial reference identified as "
+"defined in spatial_ref_sys table for that topology. Topologies must be "
+"uniquely named. The tolerance is measured in the units of the spatial "
+"reference system. If the tolerance is not specified defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:480
+#, no-c-format
+msgid ""
+"This is similar to the SQL/MM <xref linkend=\"ST_InitTopoGeo\"/> but a bit "
+"more functional. <varname>hasz</varname> defaults to false if not specified."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:489
+#, no-c-format
+msgid ""
+"This example creates a new schema called ma_topo that will store edges, "
+"faces, and relations in Massachusetts State Plane meters. The tolerance "
+"represents 1/2 meter since the spatial reference system is a meter based "
+"spatial reference system"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:491
+#, no-c-format
+msgid "SELECT topology.CreateTopology('ma_topo',26986, 0.5);"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:493
+#, no-c-format
+msgid "Create Rhode Island topology in State Plane ft"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:494
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('ri_topo',3438) As topoid;\n"
+"topoid\n"
+"------\n"
+"2"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:501
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_InitTopoGeo\"/>, <xref linkend=\"Topology_Load_Tiger\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:507
+#, no-c-format
+msgid "CopyTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:508
+#, no-c-format
+msgid ""
+"Makes a copy of a topology structure (nodes, edges, faces, layers and "
+"TopoGeometries)."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:513
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>CopyTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>existing_topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>new_name</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:524
+#, no-c-format
+msgid ""
+"Creates a new topology with name <varname>new_topology_name</varname> and "
+"SRID and precision taken from <varname>existing_topology_name</varname>, "
+"copies all nodes, edges and faces in there, copies layers and their "
+"TopoGeometries too."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:528
+#, no-c-format
+msgid ""
+"The new rows in topology.layer will contain synthesized values for "
+"schema_name, table_name and feature_column. This is because the TopoGeometry "
+"will only exist as a definition but won't be available in any user-level "
+"table yet."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:539
+#, no-c-format
+msgid "This example makes a backup of a topology called ma_topo"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:542
+#, no-c-format
+msgid "SELECT topology.CopyTopology('ma_topo', 'ma_topo_bakup');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:550 extras_topology.xml:2066
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:556
+#, no-c-format
+msgid "ST_InitTopoGeo"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:557
+#, no-c-format
+msgid ""
+"Creates a new topology schema and registers this new schema in the topology."
+"topology table and details summary of process."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:562
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_InitTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:572
+#, no-c-format
+msgid ""
+"This is an SQL-MM equivalent of CreateTopology but lacks the spatial "
+"reference and tolerance options of CreateTopology and outputs a text "
+"description of creation instead of topology id."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:576
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.17"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:582
+#, no-c-format
+msgid ""
+"SELECT topology.ST_InitTopoGeo('topo_schema_to_create') AS topocreation;\n"
+"                      astopocreation\n"
+"------------------------------------------------------------\n"
+" Topology-Geometry 'topo_schema_to_create' (id:7) created."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:596
+#, no-c-format
+msgid "ST_CreateTopoGeo"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:598
+#, no-c-format
+msgid ""
+"<refpurpose>Adds a collection of geometries to a given empty topology and "
+"returns a message detailing success.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:605
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_CreateTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acollection</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:616
+#, no-c-format
+msgid ""
+"<para>Adds a collection of geometries to a given empty topology and returns "
+"a message detailing success.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:620
+#, no-c-format
+msgid "Useful for populating an empty topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:624 extras_topology.xml:920 extras_topology.xml:977
+#: extras_topology.xml:1049 extras_topology.xml:1117 extras_topology.xml:1288
+#: extras_topology.xml:1338 extras_topology.xml:1796 extras_topology.xml:1898
+#: extras_topology.xml:1952 extras_topology.xml:2367
+#, no-c-format
+msgid "Availability: 2.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:625
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details -- X.3.18"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:631
+#, no-c-format
+msgid ""
+"-- Populate topology --\n"
+"SELECT topology.ST_CreateTopoGeo('ri_topo', \n"
+" ST_GeomFromText('MULTILINESTRING((384744 236928,384750 236923,384769 "
+"236911,384799 236895,384811 236890,384833 236884,\n"
+"  384844 236882,384866 236881,384879 236883,384954 236898,385087 "
+"236932,385117 236938,\n"
+"  385167 236938,385203 236941,385224 236946,385233 236950,385241 "
+"236956,385254 236971,\n"
+"  385260 236979,385268 236999,385273 237018,385273 237037,385271 "
+"237047,385267 237057,\n"
+"  385225 237125,385210 237144,385192 237161,385167 237192,385162 "
+"237202,385159 237214,\n"
+"  385159 237227,385162 237241,385166 237256,385196 237324,385209 "
+"237345,385234 237375,\n"
+"  385237 237383,385238 237399,385236 237407,385227 237419,385213 "
+"237430,385193 237439,\n"
+"  385174 237451,385170 237455,385169 237460,385171 237475,385181 "
+"237503,385190 237521,\n"
+"  385200 237533,385206 237538,385213 237541,385221 237542,385235 "
+"237540,385242 237541,\n"
+"  385249 237544,385260 237555,385270 237570,385289 237584,385292 "
+"237589,385291 237596,385284 237630))',3438) \n"
+"  );\n"
+"\n"
+"      st_createtopogeo\n"
+"----------------------------\n"
+" Topology ri_topo populated\n"
+" \n"
+" \n"
+"-- create tables and topo geometries --\n"
+"CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);\n"
+"\n"
+"SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', "
+"'LINE');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:637
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:643
+#, no-c-format
+msgid "TopoGeo_AddPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:645
+#, no-c-format
+msgid ""
+"Adds a point to an existing topology using a tolerance and possibly "
+"splitting an existing edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:652
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>TopoGeo_AddPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:664
+#, no-c-format
+msgid ""
+"Adds a point to an existing topology and return its identifier. The given "
+"point will snap to existing nodes or edges within given tolerance. An "
+"existing edge may be split by the snapped point."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:678
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddNode\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:689
+#, no-c-format
+msgid "TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:691
+#, no-c-format
+msgid ""
+"Adds a linestring to an existing topology using a tolerance and possibly "
+"splitting existing edges/faces. Returns edge identifiers"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:698
+#, no-c-format
+msgid ""
+"<funcdef>SETOF integer <function>TopoGeo_AddLineString</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:710
+#, no-c-format
+msgid ""
+"Adds a linestring to an existing topology and return a set of edge "
+"identifiers forming it up. The given line will snap to existing nodes or "
+"edges within given tolerance. Existing edges and faces may be split by the "
+"line."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:724
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddEdge\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:735
+#, no-c-format
+msgid "TopoGeo_AddPolygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:737
+#, no-c-format
+msgid ""
+"Adds a polygon to an existing topology using a tolerance and possibly "
+"splitting existing edges/faces."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:744
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoly</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:756
+#, no-c-format
+msgid ""
+"Adds a polygon to an existing topology and return a set of face identifiers "
+"forming it up. The boundary of the given polygon will snap to existing nodes "
+"or edges within given tolerance. Existing edges and faces may be split by "
+"the boundary of the new polygon."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:770
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddLineString\"/>, <xref linkend=\"AddFace\"/>, "
+"<xref linkend=\"CreateTopology\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:785
+#, no-c-format
+msgid ""
+"This section covers topology functions for adding, moving, deleting, and "
+"splitting edges, faces, and nodes. All of these functions are defined by ISO "
+"SQL/MM."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:788
+#, no-c-format
+msgid "Topology Editors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:792
+#, no-c-format
+msgid "ST_AddIsoNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:794
+#, no-c-format
+msgid ""
+"Adds an isolated node to a face in a topology and returns the nodeid of the "
+"new node. If face is null, the node is still created."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:799
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:811
+#, no-c-format
+msgid ""
+"Adds an isolated node with point location <varname>apoint</varname> to an "
+"existing face with faceid <varname>aface</varname> to a topology "
+"<varname>atopology</varname> and returns the nodeid of the new node."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:812
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology, the <varname>apoint</varname> is not a point geometry, the "
+"point is null, or the point intersects an existing edge (even at the "
+"boundaries) then an exception is thrown. If the point already exists as a "
+"node, an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:814
+#, no-c-format
+msgid ""
+"If <varname>aface</varname> is not null and the <varname>apoint</varname> is "
+"not within the face, then an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:818
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X+1.3.1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:831
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>, "
+"<xref linkend=\"ST_Intersects\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:837
+#, no-c-format
+msgid "ST_AddIsoEdge"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:839
+#, no-c-format
+msgid ""
+"<refpurpose>Adds an isolated edge defined by geometry <varname>alinestring</"
+"varname> to a topology connecting two existing isolated nodes "
+"<varname>anode</varname> and <varname>anothernode</varname> and returns the "
+"edge id of the new edge.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:844
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddIsoEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>alinestring</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:857
+#, no-c-format
+msgid ""
+"<para>Adds an isolated edge defined by geometry <varname>alinestring</"
+"varname> to a topology connecting two existing isolated nodes "
+"<varname>anode</varname> and <varname>anothernode</varname> and returns the "
+"edge id of the new edge.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:858
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the <varname>alinestring</varname> "
+"geometry is not the same as the topology, any of the input arguments are "
+"null, or the nodes are contained in more than one face, or the nodes are "
+"start or end nodes of an existing edge, then an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:860
+#, no-c-format
+msgid ""
+"If the <varname>alinestring</varname> is not within the face of the face the "
+"<varname>anode</varname> and <varname>anothernode</varname> belong to, then "
+"an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:861
+#, no-c-format
+msgid ""
+"If the <varname>anode</varname> and <varname>anothernode</varname> are not "
+"the start and end points of the <varname>alinestring</varname> then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:865
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.4"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:878
+#, no-c-format
+msgid ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:884
+#, no-c-format
+msgid "ST_AddEdgeNewFaces"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:886
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, delete the original "
+"face and replace it with two new faces."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:891
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddEdgeNewFaces</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:904
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, delete the original "
+"face and replace it with two new faces. Returns the id of the newly added "
+"edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:910 extras_topology.xml:968 extras_topology.xml:1031
+#: extras_topology.xml:1099
+#, no-c-format
+msgid "Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:914 extras_topology.xml:972
+#, no-c-format
+msgid ""
+"If any arguments are null, the given nodes are unknown (must already exist "
+"in the <varname>node</varname> table of the topology schema) , the "
+"<varname>acurve</varname> is not a <varname>LINESTRING</varname>, the "
+"<varname>anode</varname> and <varname>anothernode</varname> are not the "
+"start and endpoints of <varname>acurve</varname> then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:917 extras_topology.xml:975 extras_topology.xml:1170
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the <varname>acurve</varname> "
+"geometry is not the same as the topology an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:921
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.12"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:941
+#, no-c-format
+msgid "ST_AddEdgeModFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:943
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, modify the original "
+"face and add a new face."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:948
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:961
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, modify the original "
+"face and add a new face. Unless the face being split is the Universal Face, "
+"the new face will be on the right side of the newly added edge. Returns the "
+"id of the newly added edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:978
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.13"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:998
+#, no-c-format
+msgid "ST_RemEdgeNewFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1000
+#, no-c-format
+msgid ""
+"<refpurpose>Removes an edge and, if the removed edge separated two faces, "
+"delete the original faces and replace them with a new face.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1008
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_RemEdgeNewFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1019
+#, no-c-format
+msgid ""
+"<para>Removes an edge and, if the removed edge separated two faces, delete "
+"the original faces and replace them with a new face.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1024
+#, no-c-format
+msgid ""
+"Returns the id of a newly created face or NULL, if no new face is created. "
+"No new face is created when the removed edge is dangling or isolated or "
+"confined with the universe face (possibly making the universe flood into the "
+"face on the other side)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1035 extras_topology.xml:1103
+#, no-c-format
+msgid ""
+"Refuses to remove an edge partecipating in the definition of an existing "
+"TopoGeometry. Refuses to heal two faces if any TopoGeometry is defined by "
+"only one of them (and not the other)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1042 extras_topology.xml:1110
+#, no-c-format
+msgid ""
+"If any arguments are null, the given edge is unknown (must already exist in "
+"the <varname>edge</varname> table of the topology schema), the topology name "
+"is invalid then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1050
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.14"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1070
+#, no-c-format
+msgid "ST_RemEdgeModFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1072
+#, no-c-format
+msgid ""
+"Removes an edge and, if the removed edge separated two faces, delete one of "
+"the them and modify the other to take the space of both."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1080
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_RemEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1091
+#, no-c-format
+msgid ""
+"Removes an edge and, if the removed edge separated two faces, delete one of "
+"the them and modify the other to take the space of both. Preferentially "
+"keeps the face on the right, to be symmetric with ST_AddEdgeModFace also "
+"keeping it. Returns the id of the face remaining in place of the removed "
+"edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1118
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.15"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1138
+#, no-c-format
+msgid "ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1140
+#, no-c-format
+msgid ""
+"<refpurpose>Changes the shape of an edge without affecting the topology "
+"structure.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1147
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_ChangeEdgeGeom</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acurve</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1159
+#, no-c-format
+msgid ""
+"<para>Changes the shape of an edge without affecting the topology structure."
+"</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1162
+#, no-c-format
+msgid ""
+"If any arguments are null, the given edge does not exist in the "
+"<varname>node</varname> table of the topology schema, the <varname>acurve</"
+"varname> is not a <varname>LINESTRING</varname>, the <varname>anode</"
+"varname> and <varname>anothernode</varname> are not the start and endpoints "
+"of <varname>acurve</varname> or the modification would change the underlying "
+"topology then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1171
+#, no-c-format
+msgid ""
+"If the new <varname>acurve</varname> is not simple, then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1173
+#, no-c-format
+msgid ""
+"If moving the edge from old to new position would hit an obstacle then an "
+"error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1179
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1182
+#, no-c-format
+msgid "Enhanced: 2.0.0 adds topological consistency enforcement"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1186
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details X.3.6"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1192
+#, no-c-format
+msgid ""
+"SELECT topology.ST_ChangeEdgeGeom('ma_topo', 1,  \n"
+"                ST_GeomFromText('LINESTRING(227591.9 893900.4,227622.6 "
+"893844.3,227641.6 893816.6, 227704.5 893778.5)', 26986) );\n"
+" ----\n"
+" Edge 1 changed"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1206
+#, no-c-format
+msgid "ST_ModEdgeSplit"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1208
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, modifying the "
+"original edge and adding a new edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1213
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_ModEdgeSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1225
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, modifying the "
+"original edge and adding a new edge. Updates all existing joined edges and "
+"relationships accordingly. Returns the identifier of the newly added node."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1234
+#, no-c-format
+msgid "Changed: 2.0 - In prior versions, this was misnamed ST_ModEdgesSplit"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1235 extras_topology.xml:1289 extras_topology.xml:1339
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.9"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1241
+#, no-c-format
+msgid ""
+"-- Add an edge --\n"
+" SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227592 "
+"893910, 227600 893910)', 26986) ) As edgeid;\n"
+" \n"
+"-- edgeid-\n"
+"3\n"
+"\n"
+"\n"
+"-- Split the edge  --\n"
+"SELECT topology.ST_ModEdgeSplit('ma_topo',  3, "
+"ST_SetSRID(ST_Point(227594,893910),26986)  ) As node_id;\n"
+"        node_id\n"
+"-------------------------\n"
+"7"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1247
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ModEdgeHeal\"/>, <xref linkend=\"ST_NewEdgeHeal\"/>, "
+"<xref linkend=\"AddEdge\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1258
+#, no-c-format
+msgid "ST_ModEdgeHeal"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1260
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, modifying the first "
+"edge and deleting the second edge. Returns the id of the deleted node."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1268
+#, no-c-format
+msgid ""
+"<funcdef>int <function>ST_ModEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1280
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, modifying the first "
+"edge and deleting the second edge. Returns the id of the deleted node. "
+"Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1305
+#, no-c-format
+msgid "ST_NewEdgeHeal"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1307
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, deleting both edges, "
+"and replacing them with an edge whose direction is the same as the first "
+"edge provided."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1316
+#, no-c-format
+msgid ""
+"<funcdef>int <function>ST_NewEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1328
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, deleting both edges, "
+"and replacing them with an edge whose direction is the same as the first "
+"edge provided. Returns the id of the new edge replacing the healed ones. "
+"Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1356
+#, no-c-format
+msgid "ST_MoveIsoNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1358
+#, no-c-format
+msgid ""
+"Moves an isolated node in a topology from one point to another. If new "
+"<varname>apoint</varname> geometry exists as a node an error is thrown. "
+"REturns description of move."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1363
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_MoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1375
+#, no-c-format
+msgid ""
+"Moves an isolated node in a topology from one point to another. If new "
+"<varname>apoint</varname> geometry exists as a node an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1376
+#, no-c-format
+msgid ""
+"If any arguments are null, the <varname>apoint</varname> is not a point, the "
+"existing node is not isolated (is a start or end point of an existing edge), "
+"new node location intersects an existing edge (even at the end points) then "
+"an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1377
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1382
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1388
+#, no-c-format
+msgid ""
+"-- Add an isolated node with no face  --\n"
+"SELECT topology.ST_AddIsoNode('ma_topo',  NULL, "
+"ST_GeomFromText('POINT(227579 893916)', 26986) ) As nodeid;\n"
+" nodeid\n"
+"--------\n"
+"      7\n"
+"-- Move the new node --\n"
+"SELECT topology.ST_MoveIsoNode('ma_topo', 7,  "
+"ST_GeomFromText('POINT(227579.5 893916.5)', 26986) ) As descrip; \n"
+"                      descrip\n"
+"----------------------------------------------------\n"
+"Isolated Node 7 moved to location 227579.5,893916.5"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1399
+#, no-c-format
+msgid "ST_NewEdgesSplit"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1401
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, deleting the "
+"original edge and replacing it with two new edges. Returns the id of the new "
+"node created that joins the new edges."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1406
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1418
+#, no-c-format
+msgid ""
+"Split an edge with edge id <varname>anedge</varname> by creating a new node "
+"with point location <varname>apoint</varname> along current edge, deleting "
+"the original edge and replacing it with two new edges. Returns the id of the "
+"new node created that joins the new edges. Updates all existing joined edges "
+"and relationships accordingly."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1426
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology, the <varname>apoint</varname> is not a point geometry, the "
+"point is null, the point already exists as a node, the edge does not "
+"correspond to an existing edge or the point is not within the edge then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1431
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.8"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1437
+#, no-c-format
+msgid ""
+"-- Add an edge  --\n"
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575 "
+"893917,227592 893900)', 26986) ) As edgeid;\n"
+"-- result-\n"
+"edgeid\n"
+"------\n"
+"        2\n"
+"-- Split the new edge --\n"
+"SELECT topology.ST_NewEdgesSplit('ma_topo', 2,  "
+"ST_GeomFromText('POINT(227578.5 893913.5)', 26986) ) As newnodeid; \n"
+" newnodeid\n"
+"---------\n"
+"       6"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1454
+#, no-c-format
+msgid "ST_RemoveIsoNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1456
+#, no-c-format
+msgid ""
+"<refpurpose>Removes an isolated node and returns description of action. If "
+"the node is not isolated (is start or end of an edge), then an exception is "
+"thrown.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1461
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1472
+#, no-c-format
+msgid ""
+"<para>Removes an isolated node and returns description of action. If the "
+"node is not isolated (is start or end of an edge), then an exception is "
+"thrown.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1477
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X+1.3.3"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1483
+#, no-c-format
+msgid ""
+"-- Add an isolated node with no face  --\n"
+"SELECT topology.ST_RemoveIsoNode('ma_topo',  7 ) As result;\n"
+"         result\n"
+"-------------------------\n"
+" Isolated node 7 removed"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1495
+#, no-c-format
+msgid "Topology Accessors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1498
+#, no-c-format
+msgid "GetEdgeByPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1500
+#, no-c-format
+msgid "Find the edge-id of an edge that intersects a given point"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1505
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetEdgeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1516
+#, no-c-format
+msgid "Retrieve the id of an edge that intersects a Point"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1518
+#, no-c-format
+msgid ""
+"The function returns an integer (id-edge) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 then the point has to intersect the edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1519 extras_topology.xml:1567
+#, no-c-format
+msgid ""
+"If the point is the location of a node, then an exception is thrown. To "
+"avoid this run the GetNodeByPoint function."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1520
+#, no-c-format
+msgid "If the point doesn't intersect an edge, returns 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1521
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and there is more than one edge near the point then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1526
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function use ST_Intersects otherwise uses ST_DWithin."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1529 extras_topology.xml:1576 extras_topology.xml:1623
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1535 extras_topology.xml:1629
+#, no-c-format
+msgid "These examples use edges we created in <xref linkend=\"AddEdge\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1536
+#, no-c-format
+msgid ""
+"SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology."
+"GetEdgeByPoint('ma_topo',geom,0) As withnotol\n"
+"FROM ST_GeomFromEWKT('SRID=26986;POINT(227622.6 893843)') As geom;\n"
+" with1mtol | withnotol\n"
+"-----------+-----------\n"
+"         2 |         0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1537
+#, no-c-format
+msgid ""
+"SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As nearnode\n"
+"FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+"\n"
+"-- get error --\n"
+"ERROR:  Two or more edges found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1544
+#, no-c-format
+msgid ", <xref linkend=\"GetNodeByPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1550
+#, no-c-format
+msgid "GetFaceByPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1551
+#, no-c-format
+msgid "Find the face-id of a face that intersects a given point"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1555
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetFaceByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1565
+#, no-c-format
+msgid "Retrieve the id of a face that intersects a Point."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1566
+#, no-c-format
+msgid ""
+"The function returns an integer (id-face) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 then the point has to intersect the face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1568
+#, no-c-format
+msgid "If the point doesn't intersect a face, returns 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1569
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and there is more than one face near the point then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1573
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function uses ST_Intersects otherwise uses ST_DWithin."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1580
+#, no-c-format
+msgid "These examples use edges faces created in <xref linkend=\"AddFace\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1581
+#, no-c-format
+msgid ""
+"SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology."
+"GetFaceByPoint('ma_topo',geom,0) As withnotol\n"
+"        FROM ST_GeomFromEWKT('POINT(234604.6 899382.0)') As geom;\n"
+"        \n"
+"         with1mtol | withnotol\n"
+"        -----------+-----------\n"
+"                         1 |         0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1582
+#, no-c-format
+msgid ""
+"SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode\n"
+"        FROM ST_GeomFromEWKT('POINT(227591.9 893900.4)') As geom;\n"
+"        \n"
+"-- get error --\n"
+"ERROR:  Two or more faces found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1587
+#, no-c-format
+msgid ""
+", <xref linkend=\"GetNodeByPoint\"/>, <xref linkend=\"GetEdgeByPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1593
+#, no-c-format
+msgid "GetNodeByPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1595
+#, no-c-format
+msgid "Find the id of a node at a point location"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1600
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetNodeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1611
+#, no-c-format
+msgid "Retrieve the id of a node at a point location"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1613
+#, no-c-format
+msgid ""
+"The function return an integer (id-node) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 mean exactly intersection otherwise retrieve the "
+"node from an interval."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1614
+#, no-c-format
+msgid "If there isn't a node at the point, it return 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1615
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and near the point there are more than one node it "
+"throw an exception."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1620
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function use ST_Intersects otherwise will use "
+"ST_DWithin."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1630
+#, no-c-format
+msgid ""
+"SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode \n"
+" FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+"  nearnode\n"
+"----------\n"
+"        2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1631
+#, no-c-format
+msgid ""
+"SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance\n"
+" FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+" \n"
+" ----get error--\n"
+" ERROR:  Two or more nodes found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1638
+#, no-c-format
+msgid ", <xref linkend=\"GetEdgeByPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1644
+#, no-c-format
+msgid "GetTopologyID"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1646
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the id of a topology in the topology.topology table "
+"given the name of the topology.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1651 extras_topology.xml:1693
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetTopologyID</function></funcdef> "
+"<paramdef><type>varchar</type> <parameter>toponame</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1661
+#, no-c-format
+msgid ""
+"<para>Returns the id of a topology in the topology.topology table given the "
+"name of the topology.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1669
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologyID('ma_topo') As topo_id;\n"
+" topo_id\n"
+"---------\n"
+"       1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1675
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1686
+#, no-c-format
+msgid "GetTopologySRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1688
+#, no-c-format
+msgid ""
+"Returns the SRID of a topology in the topology.topology table given the name "
+"of the topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1703
+#, no-c-format
+msgid ""
+"Returns the spatial reference id of a topology in the topology.topology "
+"table given the name of the topology."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1711
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologySRID('ma_topo') As SRID;\n"
+" SRID\n"
+"-------\n"
+"  4326"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1717
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologyID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1728
+#, no-c-format
+msgid "GetTopologyName"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1730
+#, no-c-format
+msgid "Returns the name of a topology (schema) given the id of the topology."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1735
+#, no-c-format
+msgid ""
+"<funcdef>varchar <function>GetTopologyName</function></funcdef> "
+"<paramdef><type>integer</type> <parameter>topology_id</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1745
+#, no-c-format
+msgid ""
+"Returns the topology name (schema) of a topology from the topology.topology "
+"table given the topology id of the topology."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1753
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologyName(1) As topo_name;\n"
+" topo_name\n"
+"-----------\n"
+" ma_topo"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1759
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyID\"/>, <xref "
+"linkend=\"GetTopologySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1770
+#, no-c-format
+msgid "ST_GetFaceEdges"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1772
+#, no-c-format
+msgid "Returns a set of ordered edges that bound <varname>aface</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1777
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>ST_GetFaceEdges</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>aface</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1788
+#, no-c-format
+msgid ""
+"Returns a set of ordered edges that bound <varname>aface</varname>. Each "
+"output consists of a sequence and edgeid. Sequence numbers start with value "
+"1."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1790
+#, no-c-format
+msgid ""
+"Enumeration of each ring edges start from the edge with smallest identifier. "
+"Order of edges follows a left-hand-rule (bound face is on the left of each "
+"directed edge)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1797
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.5"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1803
+#, no-c-format
+msgid ""
+"-- Returns the edges bounding face 1\n"
+"SELECT (topology.ST_GetFaceEdges('tt', 1)).*;\n"
+"-- result --\n"
+" sequence | edge\n"
+"----------+------\n"
+"        1 |   -4\n"
+"        2 |    5\n"
+"        3 |    7\n"
+"        4 |   -6\n"
+"        5 |    1\n"
+"        6 |    2\n"
+"        7 |    3\n"
+"(7 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1804
+#, no-c-format
+msgid ""
+"-- Returns the sequenc, edge id\n"
+"-- , and geometry of the edges that bound face 1\n"
+"-- If you just need geom and seq, can use ST_GetFaceGeometry\n"
+"SELECT t.seq, t.edge, geom\n"
+"FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge)\n"
+"        INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1810
+#, no-c-format
+msgid ", <xref linkend=\"AddFace\"/>, <xref linkend=\"ST_GetFaceGeometry\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1820
+#, no-c-format
+msgid "ST_GetFaceGeometry"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1822
+#, no-c-format
+msgid "Returns the polygon in the given topology with the specified face id."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1827
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1838
+#, no-c-format
+msgid ""
+"Returns the polygon in the given topology with the specified face id. Builds "
+"the polygon from the edges making up the face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1843
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.16"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1849
+#, no-c-format
+msgid ""
+"-- Returns the wkt of the polygon added with AddFace\n"
+"SELECT ST_AsText(topology.ST_GetFaceGeometry('ma_topo', 1)) As facegeomwkt;\n"
+"-- result --\n"
+"               facegeomwkt\n"
+"\n"
+"--------------------------------------------------------------------------------\n"
+" POLYGON((234776.9 899563.7,234896.5 899456.7,234914 899436.4,234946.6 "
+"899356.9,\n"
+"234872.5 899328.7,234891 899285.4,234992.5 899145,234890.6 899069,\n"
+"234755.2 899255.4,234612.7 899379.4,234776.9 899563.7))"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1861
+#, no-c-format
+msgid "GetRingEdges"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1863
+#, no-c-format
+msgid "Returns an ordered set of edges forming a ring with the given edge ."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1870
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>GetRingEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aring</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_edges=null</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1882
+#, no-c-format
+msgid ""
+"Returns an ordered set of edges forming a ring with the given edge. Each "
+"output consists of a sequence and a signed edge id. Sequence numbers start "
+"with value 1. A negative edge identifier means that the given edge is taken "
+"backward. You can pass a negative edge id to start walking backward."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1890
+#, no-c-format
+msgid ""
+"If <varname>max_edges</varname> is not null no more than those records are "
+"returned by that function. This is meant to be a safety parameter when "
+"dealing with possibly invalid topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1905
+#, no-c-format
+msgid ", <xref linkend=\"GetNodeEdges\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1914
+#, no-c-format
+msgid "GetNodeEdges"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1916
+#, no-c-format
+msgid "Returns an ordered set of edges incident to the given node."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1923
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>GetNodeEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1934
+#, no-c-format
+msgid ""
+"Returns an ordered set of edges incident to the given node. Each output "
+"consists of a sequence and a signed edge id. Sequence numbers start with "
+"value 1. A positive edge starts at the given node. A negative edge ends into "
+"the given node. Closed edges will appear twice (with both signs). Order is "
+"clockwise starting from northbound."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1945
+#, no-c-format
+msgid ""
+"This function computes ordering rather than deriving from metadata and is "
+"thus usable to build edge ring linking."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1958
+#, no-c-format
+msgid ", <xref linkend=\"ST_Azimuth\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1971
+#, no-c-format
+msgid ""
+"This section covers the functions for processing topologies in non-standard "
+"ways."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1974
+#, no-c-format
+msgid "Topology Processing"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1977
+#, no-c-format
+msgid "Polygonize"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1978
+#, no-c-format
+msgid "Find and register all faces defined by topology edges"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1982
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Polygonize</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1992
+#, no-c-format
+msgid "Register all faces that can be built out a topology edge primitives."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1993
+#, no-c-format
+msgid "The target topology is assumed to contain no self-intersecting edges."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1994
+#, no-c-format
+msgid ""
+"Already known faces are recognized, so it is safe to call Polygonize "
+"multiple times on the same topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1995 extras_topology.xml:2148
+#, no-c-format
+msgid ""
+"This function does not use nor set the next_left_edge and next_right_edge "
+"fields of the edge table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2007
+#, no-c-format
+msgid ", <xref linkend=\"ST_Polygonize\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2013
+#, no-c-format
+msgid "AddNode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2015
+#, no-c-format
+msgid ""
+"Adds a point node to the node table in the specified topology schema and "
+"returns the nodeid of new node. If point already exists as node, the "
+"existing nodeid is returned."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2020
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allowEdgeSplitting=false</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>computeContainingFace=false</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2033
+#, no-c-format
+msgid ""
+"Adds a point node to the node table in the specified topology schema. The "
+"<xref linkend=\"AddEdge\"/> function automatically adds start and end points "
+"of an edge when called so not necessary to explicitly add nodes of an edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2040
+#, no-c-format
+msgid ""
+"If any edge crossing the node is found either an exception is raised or the "
+"edge is splitted, depending on the <varname>allowEdgeSplitting</varname> "
+"parameter value."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2046
+#, no-c-format
+msgid ""
+"If <varname>computeContainingFace</varname> is true a newly added node would "
+"get the correct containing face computed."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2051
+#, no-c-format
+msgid ""
+"If the <varname>apoint</varname> geometry already exists as a node, the node "
+"is not added but the existing nodeid is returned."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2060
+#, no-c-format
+msgid ""
+"SELECT topology.AddNode('ma_topo', ST_GeomFromText('POINT(227641.6 "
+"893816.5)', 26986) ) As nodeid;\n"
+"-- result --\n"
+"nodeid\n"
+"--------\n"
+" 4"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2072
+#, no-c-format
+msgid "AddEdge"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2074
+#, no-c-format
+msgid ""
+"Adds a linestring edge to the edge table and associated start and end points "
+"to the point nodes table of the specified topology schema using the "
+"specified linestring geometry and returns the edgeid of the new (or "
+"existing) edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2079
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2090
+#, no-c-format
+msgid ""
+"Adds an edge to the edge table and associated nodes to the nodes table of "
+"the specified <varname>toponame</varname> schema using the specified "
+"linestring geometry and returns the edgeid of the new or existing record. "
+"The newly added edge has \"universe\" face on both sides and links to itself."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2092
+#, no-c-format
+msgid ""
+"If the <varname>aline</varname> geometry crosses, overlaps, contains or is "
+"contained by an existing linestring edge, then an error is thrown and the "
+"edge is not added."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2093
+#, no-c-format
+msgid ""
+"The geometry of <varname>aline</varname> must have the same <varname>srid</"
+"varname> as defined for the topology otherwise an invalid spatial reference "
+"sys error will be thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2097
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2103
+#, no-c-format
+msgid ""
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 "
+"893917.2,227591.9 893900.4)', 26986) ) As edgeid;\n"
+"-- result-\n"
+"edgeid\n"
+"--------\n"
+" 1\n"
+"                                \n"
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.9 "
+"893900.4,227622.6 893844.2,227641.6 893816.5,\n"
+" 227704.5 893778.5)', 26986) ) As edgeid;\n"
+"-- result --\n"
+"edgeid\n"
+"--------\n"
+" 2\n"
+" \n"
+" SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.2 "
+"893900, 227591.9 893900.4,\n"
+"  227704.5 893778.5)', 26986) ) As edgeid;\n"
+" -- gives error --\n"
+" ERROR:  Edge intersects (not on endpoints) with existing edge 1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2109
+#, no-c-format
+msgid ", <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2115
+#, no-c-format
+msgid "AddFace"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2117
+#, no-c-format
+msgid ""
+"<refpurpose>Registers a face primitive to a topology and get it's identifier."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2124
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apolygon</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>force_new=false</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2136
+#, no-c-format
+msgid ""
+"<para>Registers a face primitive to a topology and get it's identifier.</"
+"para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2140
+#, no-c-format
+msgid ""
+"For a newly added face, the edges forming its boundaries and the ones "
+"contained in the face will be updated to have correct values in the "
+"left_face and right_face fields. Isolated nodes contained in the face will "
+"also be updated to have a correct containing_face field value."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2152
+#, no-c-format
+msgid ""
+"The target topology is assumed to be valid (containing no self-intersecting "
+"edges). An exception is raised if: The polygon boundary is not fully defined "
+"by existing edges or the polygon overlaps an existing face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2154
+#, no-c-format
+msgid ""
+"If the <varname>apolygon</varname> geometry already exists as a face, then: "
+"if <varname>force_new</varname> is false (the default) the face id of the "
+"existing face is returned; if <varname>force_new</varname> is true a new id "
+"will be assigned to the newly registered face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2162
+#, no-c-format
+msgid ""
+"When a new registration of an existing face is performed (force_new=true), "
+"no action will be taken to resolve dangling references to the existing face "
+"in the edge, node an relation tables, nor will the MBR field of the existing "
+"face record be updated. It is up to the caller to deal with that."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2169
+#, no-c-format
+msgid ""
+"The <varname>apolygon</varname> geometry must have the same <varname>srid</"
+"varname> as defined for the topology otherwise an invalid spatial reference "
+"sys error will be thrown."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2178
+#, no-c-format
+msgid ""
+"-- first add the edges we use generate_series as an iterator (the below \n"
+"-- will only work for polygons with < 10000 points because of our max in "
+"gs) \n"
+"SELECT topology.AddEdge('ma_topo', ST_MakeLine(ST_PointN(geom,i), "
+"ST_PointN(geom, i + 1) )) As edgeid\n"
+"    FROM (SELECT  ST_NPoints(geom) AS npt, geom\n"
+"            FROM \n"
+"                (SELECT ST_Boundary(ST_GeomFromText('POLYGON((234896.5 "
+"899456.7,234914 899436.4,234946.6 899356.9,234872.5 899328.7,\n"
+"                234891 899285.4,234992.5 899145, 234890.6 899069,234755.2 "
+"899255.4,\n"
+"                234612.7 899379.4,234776.9 899563.7,234896.5 899456.7))', "
+"26986) )  As geom\n"
+"            )  As geoms) As facen CROSS JOIN generate_series(1,10000) As i\n"
+"         WHERE i < npt;\n"
+"-- result --\n"
+" edgeid\n"
+"--------\n"
+"      3\n"
+"      4\n"
+"      5\n"
+"      6\n"
+"      7\n"
+"      8\n"
+"      9\n"
+"     10\n"
+"     11\n"
+"     12\n"
+"(10 rows)\n"
+"-- then add the face -\n"
+"                                \n"
+"SELECT topology.AddFace('ma_topo', \n"
+"    ST_GeomFromText('POLYGON((234896.5 899456.7,234914 899436.4,234946.6 "
+"899356.9,234872.5 899328.7,\n"
+"    234891 899285.4,234992.5 899145, 234890.6 899069,234755.2 899255.4,\n"
+"    234612.7 899379.4,234776.9 899563.7,234896.5 899456.7))', 26986) ) As "
+"faceid;\n"
+"-- result --\n"
+"faceid\n"
+"--------\n"
+" 1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2184
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2190
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2191
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2197
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>TopoGeometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2207
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm on each component edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2210
+#, no-c-format
+msgid "The returned geometry may be non-simple or non-valid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2211
+#, no-c-format
+msgid "Splitting component edges may help retaining simplicity/validity."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2213
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2214 extras_topology.xml:2740
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2219
+#, no-c-format
+msgid ""
+"Geometry <xref linkend=\"ST_Simplify\"/>, <xref linkend=\"ST_IsSimple\"/>, "
+"<xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_ModEdgeSplit\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2229
+#, no-c-format
+msgid ""
+"This section covers the topology functions for creating new topogeometries."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2232
+#, no-c-format
+msgid "TopoGeometry Constructors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2235
+#, no-c-format
+msgid "CreateTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2237
+#, no-c-format
+msgid ""
+"Creates a new topo geometry object from topo element array - tg_type: 1:"
+"[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2241
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>tg_type</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>topoelementarray</type> <parameter>tg_objs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>CreateTopoGeom</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>tg_type</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>layer_id</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2262
+#, no-c-format
+msgid ""
+"Creates a topogeometry object for layer denoted by layer_id and registers it "
+"in the relations table in the <varname>toponame</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2263
+#, no-c-format
+msgid ""
+"tg_type is an integer: 1:[multi]point (punctal), 2:[multi]line (lineal), 3:"
+"[multi]poly (areal), 4:collection. layer_id is the layer id in the topology."
+"layer table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2264
+#, no-c-format
+msgid ""
+"punctal layers are formed from set of nodes, lineal layers are formed from a "
+"set of edges, areal layers are formed from a set of faces, and collections "
+"can be formed from a mixture of nodes, edges, and faces."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2266
+#, no-c-format
+msgid ""
+"Omitting the array of components generates an empty TopoGeometry object."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2273
+#, no-c-format
+msgid "Examples: Form from existing edges"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2274
+#, no-c-format
+msgid ""
+"Create a topogeom in ri_topo schema for layer 2 (our ri_roads), of type (2) "
+"LINE, for the first edge (we loaded in <varname>ST_CreateTopoGeo</varname>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2275
+#, no-c-format
+msgid ""
+"INSERT INTO ri.ri_roads(road_name, topo) VALUES('Unknown', topology."
+"CreateTopoGeom('ri_topo',2,2,'{{1,2}}'::topology.topoelementarray);"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2280
+#, no-c-format
+msgid "Examples: Convert an areal geometry to best guess topogeometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2281
+#, no-c-format
+msgid ""
+"Lets say we have geometries that should be formed from a collection of "
+"faces. We have for example blockgroups table and want to know the topo "
+"geometry of each block group. If our data was perfectly aligned, we could do "
+"this:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2283
+#, no-c-format
+msgid ""
+"-- create our topo geometry column --\n"
+"SELECT topology.AddTopoGeometryColumn(\n"
+"        'topo_boston', \n"
+"        'boston', 'blockgroups', 'topo', 'POLYGON');\n"
+"        \n"
+"-- addtopgeometrycolumn --\n"
+"1\n"
+"        \n"
+"-- update our column assuming \n"
+"-- everything is perfectly aligned with our edges\n"
+"UPDATE boston.blockgroups AS bg\n"
+"        SET topo = topology.CreateTopoGeom('topo_boston'\n"
+"        ,3,1\n"
+"        , foo.bfaces)\n"
+"FROM (SELECT b.gid,  topology.TopoElementArray_Agg(ARRAY[f.face_id,3]) As "
+"bfaces\n"
+"        FROM boston.blockgroups As b\n"
+"            INNER JOIN topo_boston.face As f ON b.geom && f.mbr\n"
+"        WHERE ST_Covers(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"            GROUP BY b.gid) As foo\n"
+"WHERE foo.gid = bg.gid;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2285
+#, no-c-format
+msgid ""
+"--the world is rarely perfect allow for some error\n"
+"--count the face if 50% of it falls \n"
+"-- within what we think is our blockgroup boundary\n"
+"UPDATE boston.blockgroups AS bg\n"
+"        SET topo = topology.CreateTopoGeom('topo_boston'\n"
+"        ,3,1\n"
+"        , foo.bfaces)\n"
+"FROM (SELECT b.gid,  topology.TopoElementArray_Agg(ARRAY[f.face_id,3]) As "
+"bfaces\n"
+"        FROM boston.blockgroups As b\n"
+"            INNER JOIN topo_boston.face As f ON b.geom && f.mbr\n"
+"        WHERE ST_Covers(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"                OR\n"
+" (  ST_Intersects(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"            AND ST_Area(ST_Intersection(b.geom, topology."
+"ST_GetFaceGeometry('topo_boston', f.face_id) ) ) > \n"
+"                ST_Area(topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))*0.5\n"
+"                )\n"
+"            GROUP BY b.gid) As foo\n"
+"WHERE foo.gid = bg.gid; \n"
+"\n"
+"-- and if we wanted to convert our topogeometry back\n"
+"-- to a denomalized geometry aligned with our faces and edges \n"
+"-- cast the topo to a geometry\n"
+"-- The really cool thing is my new geometries\n"
+"-- are now aligned with my tiger street centerlines\n"
+"UPDATE boston.blockgroups SET new_geom = topo::geometry;"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2291
+#, no-c-format
+msgid ""
+", <xref linkend=\"toTopoGeom\"/> <xref linkend=\"ST_CreateTopoGeo\"/>, <xref "
+"linkend=\"ST_GetFaceGeometry\"/>, <xref linkend=\"topoelementarray\"/>, "
+"<xref linkend=\"TopoElementArray_Agg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2304 extras_topology.xml:2480
+#, no-c-format
+msgid "toTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2306
+#, no-c-format
+msgid "Converts a simple Geometry into a topo geometry"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2312
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>topogeometry <function>toTopoGeom</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>toTopoGeom</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>topogeometry </type> "
+"<parameter>topogeom</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>float8</type> <parameter>tolerance</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2333
+#, no-c-format
+msgid "Converts a simple Geometry into a <xref linkend=\"topogeometry\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2337
+#, no-c-format
+msgid ""
+"Topological primitives required to represent the input geometry will be "
+"added to the underlying topology, possibly splitting existing ones, and they "
+"will be associated with the output TopoGeometry in the <varname>relation</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2344
+#, no-c-format
+msgid ""
+"Existing TopoGeometry objects (with the possible exception of "
+"<varname>topogeom</varname>, if given) will retain their shapes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2349
+#, no-c-format
+msgid ""
+"When <varname>tolerance</varname> is given it will be used to snap the input "
+"geometry to existing primitives."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2354
+#, no-c-format
+msgid ""
+"In the first form a new TopoGeometry will be created for the given layer "
+"(<varname>layer_id</varname>) of the given topology (<varname>toponame</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2359
+#, no-c-format
+msgid ""
+"In the second form the primitives resulting from the conversion will be "
+"added to the pre-existing TopoGeometry (<varname>topogeom</varname>), "
+"possibly adding space to its final shape. To have the new shape completely "
+"replace the old one see <xref linkend=\"clearTopoGeom\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2368
+#, no-c-format
+msgid "Enhanced: 2.1.0 adds the version taking an existing TopoGeometry."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2372
+#, no-c-format
+msgid "This is a full self-contained workflow"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2373
+#, no-c-format
+msgid ""
+"-- do this if you don't have a topology setup already\n"
+"-- creates topology not allowing any tolerance\n"
+"SELECT topology.CreateTopology('topo_boston_test', 2249);\n"
+"-- create a new table\n"
+"CREATE TABLE nei_topo(gid serial primary key, nei varchar(30));\n"
+"--add a topogeometry column to it\n"
+"SELECT topology.AddTopoGeometryColumn('topo_boston_test', 'public', "
+"'nei_topo', 'topo', 'MULTIPOLYGON') As new_layer_id;\n"
+"new_layer_id\n"
+"-----------\n"
+"1\n"
+"\n"
+"--use new layer id in populating the new topogeometry column\n"
+"-- we add the topogeoms to the new layer with 0 tolerance\n"
+"INSERT INTO nei_topo(nei, topo)\n"
+"SELECT nei,  topology.toTopoGeom(geom, 'topo_boston_test', 1)\n"
+"FROM neighborhoods\n"
+"WHERE gid BETWEEN 1 and 15;\n"
+"\n"
+"--use to verify what has happened --\n"
+"SELECT * FROM \n"
+"    topology.TopologySummary('topo_boston_test'); \n"
+"    \n"
+"-- summary--\n"
+"Topology topo_boston_test (5), SRID 2249, precision 0\n"
+"61 nodes, 87 edges, 35 faces, 15 topogeoms in 1 layers\n"
+"Layer 1, type Polygonal (3), 15 topogeoms\n"
+" Deploy: public.nei_topo.topo"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2375
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);\n"
+"\n"
+"-- Get the no-one-lands left by the above operation\n"
+"-- I think GRASS calls this \"polygon0 layer\"\n"
+"SELECT ST_GetFaceGeometry('topo_boston_test', f.face_id) \n"
+"  FROM topo_boston_test.face f\n"
+"  WHERE f.face_id > 0 -- don't consider the universe face\n"
+"  AND NOT EXISTS ( -- check that no TopoGeometry references the face\n"
+"    SELECT * FROM topo_boston_test.relation\n"
+"    WHERE layer_id = 1 AND element_id = f.face_id\n"
+"  );"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2381
+#, no-c-format
+msgid ""
+", <xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom"
+"\"/>, <xref linkend=\"TopologySummary\"/>, <xref linkend=\"clearTopoGeom\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2393
+#, no-c-format
+msgid "TopoElementArray_Agg"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2394
+#, no-c-format
+msgid ""
+"Returns a <varname>topoelementarray</varname> for a set of element_id, type "
+"arrays (topoelements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2399
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray <function>TopoElementArray_Agg</function></"
+"funcdef> <paramdef><type>topoelement set</type> <parameter>tefield</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2409
+#, no-c-format
+msgid ""
+"Used to create a <xref linkend=\"topoelementarray\"/> from a set of <xref "
+"linkend=\"topoelement\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2418
+#, no-c-format
+msgid ""
+"SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
+"  FROM generate_series(1,3) As e CROSS JOIN generate_series(1,4) As t;\n"
+"  tea\n"
+"--------------------------------------------------------------------------\n"
+"{{1,1},{1,2},{1,3},{1,4},{2,1},{2,2},{2,3},{2,4},{3,1},{3,2},{3,3},{3,4}}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2430
+#, no-c-format
+msgid ""
+"This section covers the topology functions for editing existing "
+"topogeometries."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2433
+#, no-c-format
+msgid "TopoGeometry Editors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2437
+#, no-c-format
+msgid "clearTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2439
+#, no-c-format
+msgid "Clears the content of a topo geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2444
+#, no-c-format
+msgid ""
+"<funcdef>topogeometry <function>clearTopoGeom</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>topogeom</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2454
+#, no-c-format
+msgid ""
+"Clears the content a <xref linkend=\"topogeometry\"/> turning it into an "
+"empty one. Mostly useful in conjunction with <xref linkend=\"toTopoGeom\"/> "
+"to replace the shape of existing objects and any dependent object in higher "
+"hierarchical levels."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2462
+#, no-c-format
+msgid "Availability: 2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2466
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2481
+#, no-c-format
+msgid "Adds a geometry shape to an existing topo geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2485
+#, no-c-format
+msgid "Refer to <xref linkend=\"toTopoGeom\"/>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2495
+#, no-c-format
+msgid "TopoGeometry Accessors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2499
+#, no-c-format
+msgid "GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2501
+#, no-c-format
+msgid ""
+"Returns a <varname>topoelementarray</varname> (an array of topoelements) "
+"containing the topological elements and type of the given TopoGeometry "
+"(primitive elements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2506
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray <function>GetTopoGeomElementArray</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2514
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray topoelement <function>GetTopoGeomElementArray</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2524
+#, no-c-format
+msgid ""
+"Returns a <xref linkend=\"topoelementarray\"/> containing the topological "
+"elements and type of the given TopoGeometry (primitive elements). This is "
+"similar to GetTopoGeomElements except it returns the elements as an array "
+"rather than as a dataset."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2526 extras_topology.xml:2573
+#, no-c-format
+msgid ""
+"tg_id is the topogeometry id of the topogeometry object in the topology in "
+"the layer denoted by <varname>layer_id</varname> in the topology.layer table."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2547
+#, no-c-format
+msgid "GetTopoGeomElements"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2549
+#, no-c-format
+msgid ""
+"Returns a set of <varname>topoelement</varname> objects containing the "
+"topological element_id,element_type of the given TopoGeometry (primitive "
+"elements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2554
+#, no-c-format
+msgid ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2562
+#, no-c-format
+msgid ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2572
+#, no-c-format
+msgid ""
+"Returns a set of element_id,element_type (topoelements) for a given "
+"topogeometry object in <varname>toponame</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2589
+#, no-c-format
+msgid ", <xref linkend=\"topoelement\"/>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2597
+#, no-c-format
+msgid "TopoGeometry Outputs"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2600
+#, no-c-format
+msgid "AsGML"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2602
+#, no-c-format
+msgid "Returns the GML representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2606
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>AsGML</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>AsGML</function></funcdef> <paramdef><type>topogeometry </type> "
+"<parameter>tg</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>nsprefix_in</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>precision</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>options</parameter></paramdef> <paramdef><type>regclass </"
+"type> <parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nsprefix_in</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>precision</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>idprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>idprefix</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>gmlversion</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2667
+#, no-c-format
+msgid ""
+"Returns the GML representation of a topogeometry in version GML3 format. If "
+"no <varname>nsprefix_in</varname> is specified then <varname>gml</varname> "
+"is used. Pass in an empty string for nsprefix to get a non-qualified name "
+"space. The precision (default: 15) and options (default 1) parameters, if "
+"given, are passed untouched to the underlying call to ST_AsGML."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2669
+#, no-c-format
+msgid ""
+"The <varname>visitedTable</varname> parameter, if given, is used for keeping "
+"track of the visited Node and Edge elements so to use cross-references "
+"(xlink:xref) rather than duplicating definitions. The table is expected to "
+"have (at least) two integer fields: 'element_type' and 'element_id'. The "
+"calling user must have both read and write privileges on the given table. "
+"For best performance, an index should be defined on <varname>element_type</"
+"varname> and <varname>element_id</varname>, in that order. Such index would "
+"be created automatically by adding a unique constraint to the fields. "
+"Example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2675
+#, no-c-format
+msgid ""
+"CREATE TABLE visited (\n"
+"  element_type integer, element_id integer,\n"
+"  unique(element_type, element_id)\n"
+");"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2678
+#, no-c-format
+msgid ""
+"The <varname>idprefix</varname> parameter, if given, will be prepended to "
+"Edge and Node tag identifiers."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2680
+#, no-c-format
+msgid ""
+"The <varname>gmlver</varname> parameter, if given, will be passed to the "
+"underlying ST_AsGML. Defaults to 3."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2689
+#, no-c-format
+msgid ""
+"This uses the topo geometry we created in <xref linkend=\"CreateTopoGeom\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2690
+#, no-c-format
+msgid ""
+"SELECT topology.AsGML(topo) As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<gml:TopoCurve>\n"
+"    <gml:directedEdge>\n"
+"        <gml:Edge gml:id=\"E1\">\n"
+"            <gml:directedNode orientation=\"-\">\n"
+"                <gml:Node gml:id=\"N1\"/>\n"
+"            </gml:directedNode>\n"
+"            <gml:directedNode></gml:directedNode>\n"
+"            <gml:curveProperty>\n"
+"                <gml:Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <gml:segments>\n"
+"                        <gml:LineStringSegment>\n"
+"                            <gml:posList srsDimension=\"2\">384744 236928 "
+"384750 236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</gml:posList>\n"
+"                        </gml:LineStringSegment>\n"
+"                    </gml:segments>\n"
+"                </gml:Curve>\n"
+"            </gml:curveProperty>\n"
+"        </gml:Edge>\n"
+"    </gml:directedEdge>\n"
+"</gml:TopoCurve>]]>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2691
+#, no-c-format
+msgid "Same exercise as previous without namespace"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2692
+#, no-c-format
+msgid ""
+"SELECT topology.AsGML(topo,'') As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<TopoCurve>\n"
+"    <directedEdge>\n"
+"        <Edge id=\"E1\">\n"
+"            <directedNode orientation=\"-\">\n"
+"                <Node id=\"N1\"/>\n"
+"            </directedNode>\n"
+"            <directedNode></directedNode>\n"
+"            <curveProperty>\n"
+"                <Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <segments>\n"
+"                        <LineStringSegment>\n"
+"                            <posList srsDimension=\"2\">384744 236928 384750 "
+"236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</posList>\n"
+"                         </LineStringSegment>\n"
+"                    </segments>\n"
+"                </Curve>\n"
+"            </curveProperty>\n"
+"        </Edge>\n"
+"    </directedEdge>\n"
+"</TopoCurve>]]>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2698
+#, no-c-format
+msgid ", <xref linkend=\"ST_CreateTopoGeo\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2703
+#, no-c-format
+msgid "AsTopoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2705
+#, no-c-format
+msgid "Returns the TopoJSON representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2710
+#, no-c-format
+msgid ""
+"<funcdef>text <function>AsTopoJSON</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>edgeMapTable</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2721
+#, no-c-format
+msgid ""
+"Returns the TopoJSON representation of a topogeometry. If "
+"<varname>edgeMapTable</varname> is not null, it will be used as a lookup/"
+"storage mapping of edge identifiers to arc indices. This is to be able to "
+"allow for a compact \"arcs\" array in the final document."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2724
+#, no-c-format
+msgid ""
+"The table, if given, is expected to have an \"arc_id\" field of type \"serial"
+"\" and an \"edge_id\" of type integer; the code will query the table for "
+"\"edge_id\" so it is recommended to add an index on that field."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2729
+#, no-c-format
+msgid ""
+"Arc indices in the TopoJSONjoutput are 0-based but they are 1-based in the "
+"\"edgeMapTable\" table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2735
+#, no-c-format
+msgid ""
+"A full TopoJSON document will be need to contain, in addition to the "
+"snippets returned by this function, the actual arcs plus some headers. See "
+"the <ulink url=\"http://github.com/mbostock/topojson/wiki/Specification"
+"\">TopoJSON specification</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2752
+#, no-c-format
+msgid ""
+"CREATE TEMP TABLE edgemap(arc_id serial, edge_id int unique);\n"
+"\n"
+"-- header\n"
+"SELECT '{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], "
+"\"translate\": [0,0] }, \"objects\": {'\n"
+"\n"
+"-- objects\n"
+"UNION ALL SELECT '\"' || feature_name || '\": ' || AsTopoJSON(feature, "
+"'edgemap')\n"
+"FROM features.big_parcels WHERE feature_name = 'P3P4';\n"
+"\n"
+"-- arcs\n"
+"WITH edges AS ( \n"
+"  SELECT m.arc_id, e.geom FROM edgemap m, city_data.edge e\n"
+"  WHERE e.edge_id = m.edge_id\n"
+"), points AS (\n"
+"  SELECT arc_id, (st_dumppoints(geom)).* FROM edges\n"
+"), compare AS (\n"
+"  SELECT p2.arc_id,\n"
+"         CASE WHEN p1.path IS NULL THEN p2.geom\n"
+"              ELSE ST_Translate(p2.geom, -ST_X(p1.geom), -ST_Y(p1.geom))\n"
+"         END AS geom\n"
+"  FROM points p2 LEFT OUTER JOIN points p1\n"
+"  ON ( p1.arc_id = p2.arc_id AND p2.path[1] = p1.path[1]+1 )\n"
+"  ORDER BY arc_id, p2.path\n"
+"), arcsdump AS (\n"
+"  SELECT arc_id, (regexp_matches( ST_AsGeoJSON(geom), '\\[.*\\]'))[1] as t\n"
+"  FROM compare\n"
+"), arcs AS (\n"
+"  SELECT arc_id, '[' || array_to_string(array_agg(t), ',') || ']' as a FROM "
+"arcsdump\n"
+"  GROUP BY arc_id\n"
+"  ORDER BY arc_id\n"
+")\n"
+"SELECT '}, \"arcs\": [' UNION ALL\n"
+"SELECT array_to_string(array_agg(a), E',\\n') from arcs\n"
+"\n"
+"-- footer\n"
+"UNION ALL SELECT ']}'::text as t;\n"
+"\n"
+"-- Result:\n"
+"{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], \"translate\": "
+"[0,0] }, \"objects\": {\n"
+"\"P3P4\": { \"type\": \"MultiPolygon\", \"arcs\": [[[-1]],"
+"[[6,5,-5,-4,-3,1]]]}\n"
+"}, \"arcs\": [\n"
+" [[25,30],[6,0],[0,10],[-14,0],[0,-10],[8,0]],\n"
+" [[35,6],[0,8]],\n"
+" [[35,6],[12,0]],\n"
+" [[47,6],[0,8]],\n"
+" [[47,14],[0,8]],\n"
+" [[35,22],[12,0]],\n"
+" [[35,14],[0,8]]\n"
+" ]}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2760
+#, no-c-format
+msgid ""
+"This section lists the Topology functions used to check relationships "
+"between topogeometries and topology primitives"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2763
+#, no-c-format
+msgid "Topology Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2766
+#, no-c-format
+msgid "Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2768 extras_topology.xml:2817
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2773 extras_topology.xml:2822
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Equals</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg1</parameter></paramdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2784
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives: faces, edges, nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2788
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2795 extras_topology.xml:2845
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2802 extras_topology.xml:2852
+#, no-c-format
+msgid "<!--TODO: Need example -->"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2809
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2815
+#, no-c-format
+msgid "Intersects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2833
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries share primitives or primitives intersect"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2837
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies. Also not currently supported for hierarchichal topogeometries "
+"(topogeometries composed of other topogeometries)."
+msgstr ""
diff --git a/doc/po/ko_KR/faq.xml.po b/doc/po/ko_KR/faq.xml.po
new file mode 100644
index 0000000..de16291
--- /dev/null
+++ b/doc/po/ko_KR/faq.xml.po
@@ -0,0 +1,981 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# BJ Jang <qgis.tr.kr at gmail.com>, 2013
+# Kwang Woo Nam <kwangwoo at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 10:59+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: faq.xml:3
+#, no-c-format
+msgid "PostGIS Frequently Asked Questions"
+msgstr "PostGIS 자주 묻는 질문들"
+
+#. Tag: para
+#: faq.xml:8
+#, no-c-format
+msgid ""
+"Where can I find tutorials, guides and workshops on working with PostGIS"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:12
+#, no-c-format
+msgid ""
+"OpenGeo has a step by step tutorial guide workshop <ulink url=\"http://"
+"workshops.boundlessgeo.com/postgis-intro/\">Introduction to PostGIS</ulink>. "
+"It includes packaged data as well as intro to working with OpenGeo Suite. It "
+"is probably the best tutorial on PostGIS."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:13
+#, no-c-format
+msgid ""
+"BostonGIS also has a <ulink url=\"http://www.bostongis.com/PrinterFriendly."
+"aspx?content_name=postgis_tut01\">PostGIS almost idiot's guide on getting "
+"started</ulink>. That one is more focused on the windows user."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:18
+#, no-c-format
+msgid ""
+"My applications and desktop tools worked with PostGIS 1.5,but they don't "
+"work with PostGIS 2.0. How do I fix this?"
+msgstr ""
+"PostGIS 1.5에서 돌아가던 응용 프로그램과 데스크톱 툴들이 PostGIS 2.0에서 동작"
+"하지 않습니다. 어떻게 고칠 수 있을까요?"
+
+#. Tag: para
+#: faq.xml:22
+#, no-c-format
+msgid ""
+"A lot of deprecated functions were removed from the PostGIS code base in "
+"PostGIS 2.0. This has affected applications in addition to third-party tools "
+"such as Geoserver, MapServer, QuantumGIS, and OpenJump to name a few. There "
+"are a couple of ways to resolve this. For the third-party apps, you can try "
+"to upgrade to the latest versions of these which have many of these issues "
+"fixed. For your own code, you can change your code to not use the functions "
+"removed. Most of these functions are non ST_ aliases of ST_Union, ST_Length "
+"etc. and as a last resort, install the whole of <varname>legacy.sql</"
+"varname> or just the portions of <varname>legacy.sql</varname> you need."
+msgstr ""
+"더 이상 지원되지 않는 상당수의 함수들이 PostGIS 2.0의 코드 기반에서 제거되었"
+"습니다. 이 것은  GeoServer나 MapServer, QuantumGIS, 그리고 OpenJump와 같은 몇"
+"몇 third-party 툴들 뿐만아니라, 많은 응용 프로그램들에게도 영향을 주고 있습니"
+"다. 이것을 해결하는 두가지 방법이 있습니다. thrid-party 응용들의 경우, 당신"
+"은 이 이슈들의 많은 부분들이 수정된 최신버전으로 업그레이드 하는 방법을 시도"
+"할 수 있습니다.  당신이 직접 개발한 코드인 경우, 당신의 코드가 더이상 제거된 "
+"함수들을 사용하지 않도록 수정할 수 있습니다. 이 함수들의 대부분은 ST_Union, "
+"ST_Length의 이전 버전들로서  ST_를  사용하지 않는 것들일 것입니다.  마지막 수"
+"단으로, <varname>legacy.sql</varname>을 설치하거나,  당신이 필요한 만큼 "
+"<varname>legacy.sql</varname>의 일부를 수정하십시오."
+
+#. Tag: para
+#: faq.xml:28
+#, no-c-format
+msgid ""
+"The <varname>legacy.sql</varname> file is located in the same folder as "
+"postgis.sql. You can install this file after you have installed postgis.sql "
+"and spatial_ref_sys.sql to get back all the 200 some-odd old functions we "
+"removed."
+msgstr ""
+"The <varname>legacy.sql</varname> 파일은 postgis.sql. 과 같은 폴더에 위치하"
+"고 있습니다. 제거되었던 총 200개의 조금은 이상한 구버전 함수를 얻기 위해 "
+"postgis.sql 그리고 spatial_ref_sys.sq설치하신 뒤 해당 파일을 설치하시면 됩니"
+"다."
+
+#. Tag: para
+#: faq.xml:35
+#, no-c-format
+msgid ""
+"When I load OpenStreetMap data with osm2pgsql, I'm getting an error failed: "
+"ERROR: operator class \"gist_geometry_ops\" does not exist for access method "
+"\"gist\" Error occurred. This worked fine in PostGIS 1.5."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:40
+#, no-c-format
+msgid ""
+"In PostGIS 2, the default geometry operator class gist_geometry_ops was "
+"changed to gist_geometry_ops_2d and the gist_geometry_ops was completely "
+"removed. This was done because PostGIS 2 also introduced Nd spatial indexes "
+"for 3D support and the old name was deemed confusing and a misnomer."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:41
+#, no-c-format
+msgid ""
+"Some older applications that as part of the process create tables and "
+"indexes, explicitly referenced the operator class name. This was unnecessary "
+"if you want the default 2D index. So if you manage said good, change index "
+"creation from:"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:42
+#, no-c-format
+msgid "BAD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:43
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_my_table_geom ON my_table USING gist(geom "
+"gist_geometry_ops);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:44
+#, no-c-format
+msgid "To GOOD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:45
+#, no-c-format
+msgid "CREATE INDEX idx_my_table_geom ON my_table USING gist(geom);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:47
+#, no-c-format
+msgid ""
+"The only case where you WILL need to specify the operator class is if you "
+"want a 3D spatial index as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:48
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_my_super3d_geom ON my_super3d USING gist(geom "
+"gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:50
+#, no-c-format
+msgid ""
+"If you are unfortunate to be stuck with compiled code you can't change that "
+"has the old gist_geometry_ops hard-coded, then you can create the old class "
+"using the <filename>legacy_gist.sql</filename> packaged in PostGIS 2.0.2+. "
+"However if you use this fix, you are advised to at a later point drop the "
+"index and recreate it without the operator class. This will save you grief "
+"in the future when you need to upgrade again."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:56
+#, no-c-format
+msgid ""
+"I'm running PostgreSQL 9.0 and I can no longer read/view geometries in "
+"OpenJump, Safe FME, and some other tools?"
+msgstr ""
+"PostgreSQL 9.0을 운용 중이며 OpenJump, SafeFME와 그리고 몇 몇 다른 툴들에서 "
+"지오메트리들을 더는 읽거나 볼 수 없습니다."
+
+#. Tag: para
+#: faq.xml:60
+#, no-c-format
+msgid ""
+"In PostgreSQL 9.0+, the default encoding for bytea data has been changed to "
+"hex and older JDBC drivers still assume escape format. This has affected "
+"some applications such as Java applications using older JDBC drivers or .NET "
+"applications that use the older npgsql driver that expect the old behavior "
+"of ST_AsBinary. There are two approaches to getting this to work again."
+msgstr ""
+"PostgreSQL 9.0+에서, bytea 데이터를 위한 디폴트 인코딩은 hex로 바뀌었고 예전 "
+"JDBC 드라이브는 여전히 escape format을 취합니다. 이것은 예전 JDBC 드라이버를 "
+"사용한 Java 어플리케이션이나 오래된 ST_AsBinary의 작동을 요하는 예전 npgsql "
+"드라이버를 사용하는 .NET 어플리케이션 같은 몇몇 어플리케이션에 영향을 끼칩니"
+"다. 이것을 다시 작동시키기 위한 두 가지 접근 방법이 있습니다."
+
+#. Tag: para
+#: faq.xml:64
+#, no-c-format
+msgid ""
+"You can upgrade your JDBC driver to the latest PostgreSQL 9.0 version which "
+"you can get from <ulink url=\"http://jdbc.postgresql.org/download.html"
+"\">http://jdbc.postgresql.org/download.html</ulink>"
+msgstr ""
+"JDBC driver를 최신 PostgreSQL 9.0버전으로 업그레이드 시킬 수 있습니다. 최신 "
+"PosgtreSQL버전은 <ulink url=\"http://jdbc.postgresql.org/download.html"
+"\">http://jdbc.postgresql.org/download.html</ulink>에서 다운받으실 수 있습니"
+"다"
+
+#. Tag: para
+#: faq.xml:66
+#, no-c-format
+msgid ""
+"If you are running a .NET app, you can use Npgsql 2.0.11 or higher which you "
+"can download from <ulink url=\"http://pgfoundry.org/frs/?"
+"group_id=1000140\">http://pgfoundry.org/frs/?group_id=1000140</ulink> and as "
+"described on <ulink url=\"http://fxjr.blogspot.com/2010/11/npgsql-2011-"
+"released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released blog entry</"
+"ulink>"
+msgstr ""
+"만약 .NET app을 실행중이라면 Npgsql 2.0.11또는 그 이상의 버전을 사용할 수 있"
+"습니다. 이는 <ulink url=\"http://fxjr.blogspot.com/2010/11/npgsql-2011-"
+"released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released blog entry</"
+"ulink>에 설명되어 있는 것과 같이 <ulink url=\"http://pgfoundry.org/frs/?"
+"group_id=1000140\">http://pgfoundry.org/frs/?group_id=1000140</ulink>에서 다"
+"운받으실 수 있습니다. "
+
+#. Tag: para
+#: faq.xml:70
+#, no-c-format
+msgid ""
+"If upgrading your PostgreSQL driver is not an option, then you can set the "
+"default back to the old behavior with the following change:"
+msgstr ""
+"만약 PostgreSQL driver를 업그레이드 하는 것이 옵션사항이 아니라면 아래를 입력"
+"함으로써 이전 방식으로 디폴트 설정을 할 수 있습니다:"
+
+#. Tag: programlisting
+#: faq.xml:71
+#, no-c-format
+msgid "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
+msgstr "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
+
+#. Tag: para
+#: faq.xml:78
+#, no-c-format
+msgid ""
+"I tried to use PgAdmin to view my geometry column and it is blank, what "
+"gives?"
+msgstr ""
+"지오메트리 컬럼을 보기 위해 PgAdmin을 사용하려고 했으나 비어있습니다. 왜 그런"
+"지요?"
+
+#. Tag: para
+#: faq.xml:82
+#, no-c-format
+msgid ""
+"PgAdmin doesn't show anything for large geometries. The best ways to verify "
+"you do have data in your geometry columns are?"
+msgstr ""
+"PgAdmin은 큰 지오메트리에 대해 아무것도 보여주지 않습니다. 지오메트리 컬럼에 "
+"있는 데이터를 검증하는 가장 좋은 방법은?"
+
+#. Tag: programlisting
+#: faq.xml:85
+#, no-c-format
+msgid ""
+"-- this should return no records if all your geom fields are filled "
+"in        \n"
+"SELECT somefield FROM mytable WHERE geom IS NULL;"
+msgstr ""
+"-- 이것은 모든 geom 필드가 차 있다면 아무 행도 반환하지 않음\n"
+"SELECT somefield FROM mytable WHERE geom IS NULL;"
+
+#. Tag: programlisting
+#: faq.xml:87
+#, no-c-format
+msgid ""
+"-- To tell just how large your geometry is do a query of the form\n"
+"--which will tell you the most number of points you have in any of your "
+"geometry columns\n"
+"SELECT MAX(ST_NPoints(geom)) FROM sometable;"
+msgstr ""
+"-- 얼마나 큰 지오메트리가 쿼리되는지 알고 싶다면\n"
+"-- 지오메트리 컬럼에 들어있는 어떤 도형의 점 수중 가장 큰 것을 말해 줌\n"
+"SELECT MAX(ST_NPoints(geom)) FROM sometable;"
+
+#. Tag: para
+#: faq.xml:93
+#, no-c-format
+msgid "What kind of geometric objects can I store?"
+msgstr "어떠한 종류의 지오메트리 오브젝트들을 저장할 수 있습니까?"
+
+#. Tag: para
+#: faq.xml:97
+#, no-c-format
+msgid ""
+"You can store point, line, polygon, multipoint, multiline, multipolygon, and "
+"geometrycollections. In PostGIS 2.0 and above you can also store TINS and "
+"Polyhedral Surfaces in the basic geometry type. These are specified in the "
+"Open GIS Well Known Text Format (with XYZ,XYM,XYZM extensions). There are "
+"three data types currently supported. The standard OGC geometry data type "
+"which uses a planar coordinate system for measurement, the geography data "
+"type which uses a geodetic coordinate system (not OGC, but you'll find a "
+"similar type in Microsoft SQL Server 2008+). Only WGS 84 long lat "
+"(SRID:4326) is supported by the geography data type. The newest family "
+"member of the PostGIS spatial type family is raster for storing and "
+"analyzing raster data. Raster has its very own FAQ. Refer to <xref linkend="
+"\"RT_FAQ\"/> and <xref linkend=\"RT_reference\"/> for more details."
+msgstr ""
+"점, 선, 다각형, 기하, 다중점, 다중선, 다중다각형 그리고 지오메트리 컬렉션들"
+"을 저장할 수 있습니다. PostGIS 2.0과 그 이상 버전에서는 기본 지오메트리 타입"
+"의 TINS 그리고 다면체 표면 또한 저장할 수 있습니다. 이러한 것들은 Open GIS "
+"Well Known Text Format에 명시되어 있습니다(XYZ, XYM, XYZM 확장자들과 함께). "
+"현재 세가지 데이터 타입들이 지원 되고 있습니다. 측량을 위한 평면 좌표계를 사"
+"용하는 표준OGC지오메트리 데이터 타입, 측지학 좌표계(OGC가 아닌 Microsoft SQL "
+"Server 2008+에서 비슷한 타입을 발견하실 수 있습니다.)를 사용하는 측지학 데이"
+"터 타입. 오직 WGS 84 long lat (SRID:4326)만이 측지학 데이터 타입에 의해 지원"
+"됩니다. PostGIS 공간타입에서 최신의 형태는 래스터 데이터를 저장하기 위한 래스"
+"터 입니다. 래스터는 매우 독특합니다. 보다 자세한 사항을 위해  <xref linkend="
+"\"RT_FAQ\"/> 그리고 Chapter <xref linkend=\"RT_reference\"/>를 참조하십시오."
+
+#. Tag: para
+#: faq.xml:110
+#, no-c-format
+msgid "I'm all confused. Which data store should I use geometry or geography?"
+msgstr ""
+"혼동되네요. 제가 지오메트리-geometry- 또는 지형-geography- 중 어떤 데이터를 "
+"사용하여 저장해야 합니까?"
+
+#. Tag: para
+#: faq.xml:114
+#, no-c-format
+msgid ""
+"Short Answer: geography is a new data type that supports long range "
+"distances measurements, but most computations on it are currently slower "
+"than they are on geometry. If you use geography -- you don't need to learn "
+"much about planar coordinate systems. Geography is generally best if all you "
+"care about is measuring distances and lengths and you have data from all "
+"over the world. Geometry data type is an older data type that has many more "
+"functions supporting it, enjoys greater support from third party tools, and "
+"operations on it are generally faster -- sometimes as much as 10 fold faster "
+"for larger geometries. Geometry is best if you are pretty comfortable with "
+"spatial reference systems or you are dealing with localized data where all "
+"your data fits in a single <link linkend=\"spatial_ref_sys\">spatial "
+"reference system (SRID)</link>, or you need to do a lot of spatial "
+"processing. Note: It is fairly easy to do one-off conversions between the "
+"two types to gain the benefits of each. Refer to <xref linkend="
+"\"PostGIS_TypeFunctionMatrix\"/> to see what is currently supported and what "
+"is not."
+msgstr ""
+"짦은 답변: geography는 원거리 거리 측량을 지원하는 새로운 데이터 타입입니다. "
+"그러나 기하에 대한 대부분의 계산들은 geometry에서 하는 것보다 현재 느립니다. "
+"만약 지형을 사용하실 경우 평면 좌표계에 대해서 배우실 필요가 거의 없습니다. "
+"만약 거리나 길이를 측량하는 것을 중요시 생각하시거나 전세계로부터의 데이터를 "
+"보유하고 계실 경우 geography가 geometry보다 빠릅니다. Geometry형식은 이를 지"
+"원하는 많은 기능들을 가지고 있는 오래된 데이터 형태입니다. geometry 데이터 타"
+"입은 써드파티 툴들로부터 많은 지원을 받으며 일반적으로 처리하는데 있어서 더 "
+"빠릅니다. 아주 큰 지오메트리의 경우 10배까지 더 빠른 경우도 종종 있습니다. 공"
+"간 레퍼런스 시스템에 더 수월함을 느끼거나 단일 공간 <link linkend="
+"\"spatial_ref_sys\">spatial reference system (SRID)</link>에 맞는 국지적 데이"
+"터를 다루고 있거나 또는 많은 양의 공간적 프로세싱을 수행해야 하는 상황이라면 "
+"Geometry가 최고의 선택일 것입니다. 참고: 두 타입 모두의 혜택들을 얻기 위해 "
+"두 타입 사이의 일회성 전환은 어렵지 않습니다. 현재 무엇이 지원되고 지원되지 "
+"않는 지를 확인하기 위해서 <xref linkend=\"PostGIS_TypeFunctionMatrix\"/>을 참"
+"조하십시오."
+
+#. Tag: para
+#: faq.xml:125
+#, no-c-format
+msgid ""
+"Long Answer: Refer to our more lengthy discussion in the <xref linkend="
+"\"PostGIS_GeographyVSGeometry\"/> and <link linkend="
+"\"PostGIS_TypeFunctionMatrix\">function type matrix</link>."
+msgstr ""
+"긴 답변: 보다 더 긴 답변을 원하신다면 <xref linkend="
+"\"PostGIS_GeographyVSGeometry\"/> and <link linkend="
+"\"PostGIS_TypeFunctionMatrix\">function type matrix</link>를 참조하십시오."
+
+#. Tag: para
+#: faq.xml:133
+#, no-c-format
+msgid ""
+"I have more intense questions about geography, such as how big of a "
+"geographic region can I stuff in a geography column and still get reasonable "
+"answers. Are there limitations such as poles, everything in the field must "
+"fit in a hemisphere (like SQL Server 2008 has), speed etc?"
+msgstr ""
+"geography에 관한 geographic region이 얼마나 큰지와 같이 더 복잡하고 심오한 질"
+"문이 있습니다. geography 컬럼을 이용하여 타당한 답들을 얻을 수 있나요? 예를 "
+"들어 극지방 같은 제한사항이 있나요? 필드안의 모든 것은 반구(SQL Server 2008"
+"가 가지고 있는 것처럼), 스피드 등에 맞아 떨어져야 하나요?"
+
+#. Tag: para
+#: faq.xml:137
+#, no-c-format
+msgid ""
+"Your questions are too deep and complex to be adequately answered in this "
+"section. Please refer to our <xref linkend=\"PostGIS_Geography_AdvancedFAQ\"/"
+">."
+msgstr ""
+"이 섹션에서 답변하기에는 질문이 너무 깊고 복잡합니다.  <xref linkend="
+"\"PostGIS_Geography_AdvancedFAQ\"/>을 참조하십시오."
+
+#. Tag: para
+#: faq.xml:144
+#, no-c-format
+msgid "How do I insert a GIS object into the database?"
+msgstr "어떻게 GIS 객체를 데이터베이스에 삽입할 수 있나요?"
+
+#. Tag: para
+#: faq.xml:148
+#, no-c-format
+msgid ""
+"First, you need to create a table with a column of type \"geometry\" or "
+"\"geography\" to hold your GIS data. Storing geography type data is a little "
+"different than storing geometry. Refer to <xref linkend=\"Geography_Basics\"/"
+"> for details on storing geography."
+msgstr ""
+"첫째로 GIS 데이터를 보관하기 위해 “geometry” 또는 “geography”의 컬럼을 가진 "
+"테이블을 생성하셔야 합니다. geography 타입 데이터를 저장하는 것은 geometry를 "
+"저장하는 것과는 조금 다릅니다. Geography를 저장하는 것에 관한 보다 자세한 설"
+"명은 <xref linkend=\"Geography_Basics\"/>을 참조하십시오."
+
+#. Tag: para
+#: faq.xml:152
+#, no-c-format
+msgid ""
+"For geometry: Connect to your database with <filename>psql</filename> and "
+"try the following SQL:"
+msgstr ""
+"Geometry사용을 위해: psql 로 데이터베이스에 접속하시고 다음 SQL을 실행해 보십"
+"시오."
+
+#. Tag: programlisting
+#: faq.xml:156
+#, no-c-format
+msgid ""
+"CREATE TABLE gtest ( gid serial primary key, name varchar(20)\n"
+"        , geom geometry(LINESTRING) );"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:158
+#, no-c-format
+msgid ""
+"If the geometry column definition fails, you probably have not loaded the "
+"PostGIS functions and objects into this database or are using a pre-2.0 "
+"version of PostGIS. See the <xref linkend=\"PGInstall\"/>."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:162
+#, no-c-format
+msgid ""
+"Then, you can insert a geometry into the table using a SQL insert statement. "
+"The GIS object itself is formatted using the OpenGIS Consortium \"well-known "
+"text\" format:"
+msgstr ""
+"그러고 난 뒤, SQL insert 구문를 사용함으로서 geometry를 테이블에 삽입할 수 있"
+"습니다. GIS 객체는 표현을 위해 OpenGIS 컨소시움의 “well-knows text” 포맷을 사"
+"용합니다:"
+
+#. Tag: programlisting
+#: faq.xml:166
+#, no-c-format
+msgid ""
+"INSERT INTO gtest (ID, NAME, GEOM) \n"
+"VALUES (\n"
+"  1, \n"
+"  'First Geometry', \n"
+"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)')\n"
+");"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:168
+#, no-c-format
+msgid ""
+"For more information about other GIS objects, see the <link linkend="
+"\"RefObject\">object reference</link>."
+msgstr ""
+"다른 GIS 객체에 대해 더 알아보시려면  <link linkend=\"RefObject\">object "
+"reference</link>를 참고하십시오."
+
+#. Tag: para
+#: faq.xml:171
+#, no-c-format
+msgid "To view your GIS data in the table:"
+msgstr "테이블의 GIS 데이터를 보시려면:"
+
+#. Tag: programlisting
+#: faq.xml:173
+#, no-c-format
+msgid "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
+msgstr "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
+
+#. Tag: para
+#: faq.xml:175
+#, no-c-format
+msgid "The return value should look something like this:"
+msgstr "반환값은 대략 아래처럼 나타납니다:"
+
+#. Tag: programlisting
+#: faq.xml:177
+#, no-c-format
+msgid ""
+"id | name           | geom\n"
+"----+----------------+-----------------------------\n"
+"  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
+"(1 row)"
+msgstr ""
+"id | name           | geom\n"
+"----+----------------+-----------------------------\n"
+"  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
+"(1 row)"
+
+#. Tag: para
+#: faq.xml:183
+#, no-c-format
+msgid "How do I construct a spatial query?"
+msgstr "어떻게 공간 쿼리를 만들 수 있나요?"
+
+#. Tag: para
+#: faq.xml:187
+#, no-c-format
+msgid ""
+"The same way you construct any other database query, as an SQL combination "
+"of return values, functions, and boolean tests."
+msgstr ""
+"다른 데이터베이스 쿼리를 만드는 것과 동일한 방식입니다. 하나의 SQL은 반환값, "
+"함수, 부울 연산의 조합입니다."
+
+#. Tag: para
+#: faq.xml:190
+#, no-c-format
+msgid ""
+"For spatial queries, there are two issues that are important to keep in mind "
+"while constructing your query: is there a spatial index you can make use of; "
+"and, are you doing expensive calculations on a large number of geometries."
+msgstr ""
+"공간 쿼리들의 경우, 쿼리를 구축할 시 염두에 두어야 할 두 가지 중요한 사항들"
+"이 있습니다. 활용할 수 있는 공간 인덱스가 있는가? 그리고 많은 수의 지오메트리"
+"에 비용이 많이 드는 고급계산들을 하고 있지 않은가? 가 바로 그 중요한 두 가지 "
+"사항들 입니다."
+
+#. Tag: para
+#: faq.xml:195
+#, no-c-format
+msgid ""
+"In general, you will want to use the \"intersects operator\" (&&) "
+"which tests whether the bounding boxes of features intersect. The reason the "
+"&& operator is useful is because if a spatial index is available to "
+"speed up the test, the && operator will make use of this. This can "
+"make queries much much faster."
+msgstr ""
+"일반적으로, 피쳐의 바운딩박스가 교차하는 지에 대해 테스트를 하는 “교차 연산자"
+"(&&)”를 사용하길 원할 것입니다. && 연산자 유용한 이유는 공간 "
+"인덱스가 있을 때 테스트 속도를 높일 수 있기 때문입니다. 이는 쿼리를 매우 매"
+"우 빠르게 할 것입니다."
+
+#. Tag: para
+#: faq.xml:202
+#, no-c-format
+msgid ""
+"You will also make use of spatial functions, such as Distance(), "
+"ST_Intersects(), ST_Contains() and ST_Within(), among others, to narrow down "
+"the results of your search. Most spatial queries include both an indexed "
+"test and a spatial function test. The index test serves to limit the number "
+"of return tuples to only tuples that <emphasis>might</emphasis> meet the "
+"condition of interest. The spatial functions are then use to test the "
+"condition exactly."
+msgstr ""
+"사용자는 또한 Distance(), ST_Intersects(), ST_Contains() and ST_Within()와 같"
+"은 공간 함수들을 검색 결과를 좁히기 위해 활용하게 될 것입니다. 대부분의 공간 "
+"쿼리들은 인덱스를 이용한 테스트 및 공간 함수 테스트를 둘 다 포함합니다. 인덱"
+"스를 이용한 테스트는 조건을 충족할 수도 있는 반환 tuple의 숫자를 제한하는 역"
+"할을 합니다. 그러고는 공간 함수들은 조건을 정확히 테스트 하기 위해 사용됩니"
+"다."
+
+#. Tag: programlisting
+#: faq.xml:210
+#, no-c-format
+msgid ""
+"SELECT id, the_geom \n"
+"FROM thetable \n"
+"WHERE \n"
+"  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
+msgstr ""
+"SELECT id, the_geom \n"
+"FROM thetable \n"
+"WHERE \n"
+"  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
+
+#. Tag: para
+#: faq.xml:216
+#, no-c-format
+msgid "How do I speed up spatial queries on large tables?"
+msgstr "어떻게 큰 테이블에서 공간 쿼리 속도를 높일 수 있나요?"
+
+#. Tag: para
+#: faq.xml:220
+#, no-c-format
+msgid ""
+"Fast queries on large tables is the <emphasis>raison d'etre</emphasis> of "
+"spatial databases (along with transaction support) so having a good index is "
+"important."
+msgstr ""
+"큰 테이블에서의 빠른 쿼리는 공간 데이터베이스의 존재이유입니다(트랜잭션 지원"
+"와 함께). 그러므로 좋은 인덱스를 가지는 것이 중요합니다."
+
+#. Tag: para
+#: faq.xml:224
+#, no-c-format
+msgid ""
+"To build a spatial index on a table with a <varname>geometry</varname> "
+"column, use the \"CREATE INDEX\" function as follows:"
+msgstr ""
+"<varname>geometry</varname> 컬럼과 함께 테이블에 공간 인덱스를 구축하기 위해 "
+"다음과 같은 \"CREATE INDEX\" 함수를 사용하십시오:"
+
+#. Tag: programlisting
+#: faq.xml:228
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:230
+#, no-c-format
+msgid ""
+"The \"USING GIST\" option tells the server to use a GiST (Generalized Search "
+"Tree) index."
+msgstr ""
+"\"USING GIST\"옵션은 GiST(Generalized Search Tree) 인덱스를 사용하도록 서버"
+"를 알려줍니다."
+
+#. Tag: para
+#: faq.xml:234
+#, no-c-format
+msgid ""
+"GiST indexes are assumed to be lossy. Lossy indexes uses a proxy object (in "
+"the spatial case, a bounding box) for building the index."
+msgstr ""
+"GiST 인덱스들은 손실이 있다고 가정합니다. 손실 인덱스들은 인덱스 구축을 위해 "
+"proxy 오브젝트(공간의 경우 바운딩 박스)를 사용합니다."
+
+#. Tag: para
+#: faq.xml:239
+#, no-c-format
+msgid ""
+"You should also ensure that the PostgreSQL query planner has enough "
+"information about your index to make rational decisions about when to use "
+"it. To do this, you have to \"gather statistics\" on your geometry tables."
+msgstr ""
+"사용자는 PosgreSQL 쿼리 플래너가 언제 이것을 사용할 지에 합당한 결정을 할 수 "
+"있도록 충분한 정보를 갖게 보장해야 합니다. 이렇게 하기 위해서는 geometry 테이"
+"블에 “통계 수집”을 반드시 실행 해야 합니다."
+
+#. Tag: para
+#: faq.xml:244
+#, no-c-format
+msgid ""
+"For PostgreSQL 8.0.x and greater, just run the <command>VACUUM ANALYZE</"
+"command> command."
+msgstr ""
+"PostgreSQL 8.0.x 그리고 그 이상 버전의 경우, <command>VACUUM ANALYZE</"
+"command> 명령어을 실행하십시오."
+
+#. Tag: para
+#: faq.xml:247
+#, no-c-format
+msgid ""
+"For PostgreSQL 7.4.x and below, run the <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command> command."
+msgstr ""
+"PostgreSQL 7.4.x 그 이하의 버전의 경우, <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command> 명령어를 실행하십시오."
+
+#. Tag: para
+#: faq.xml:254
+#, no-c-format
+msgid "Why aren't PostgreSQL R-Tree indexes supported?"
+msgstr "왜 PostgreSQL R-Tree indexes를 지원하지 않나요?"
+
+#. Tag: para
+#: faq.xml:258
+#, no-c-format
+msgid ""
+"Early versions of PostGIS used the PostgreSQL R-Tree indexes. However, "
+"PostgreSQL R-Trees have been completely discarded since version 0.6, and "
+"spatial indexing is provided with an R-Tree-over-GiST scheme."
+msgstr ""
+"PostGIS의 초기 버전들은 PostgreSQL R-Tree 인덱스들을 사용했습니다. 그러나 "
+"PostgreSQL R-Tree는 버전0.6 이후 완전히 폐기되었고, 공간인덱싱은 R-Tree-over-"
+"GiST scheme를 이용해 제공됩니다."
+
+#. Tag: para
+#: faq.xml:263
+#, no-c-format
+msgid ""
+"Our tests have shown search speed for native R-Tree and GiST to be "
+"comparable. Native PostgreSQL R-Trees have two limitations which make them "
+"undesirable for use with GIS features (note that these limitations are due "
+"to the current PostgreSQL native R-Tree implementation, not the R-Tree "
+"concept in general):"
+msgstr ""
+"우리 테스터들이 R-Tree와 GiST의 검색 속도가 유사하다는 것을 보여주었습니다. "
+"원래의 PostgreSQL R-Tree는 GIS 피처들에 적합하지 않은 두 가지 한계점이 있었습"
+"니다(이런 한계점은 일반적인 R-Tree의 컨셉 때문이 아닌 PostgreSQL native R-"
+"Tree 구현상의 문제임에 주의하십시오):"
+
+#. Tag: para
+#: faq.xml:271
+#, no-c-format
+msgid ""
+"R-Tree indexes in PostgreSQL cannot handle features which are larger than 8K "
+"in size. GiST indexes can, using the \"lossy\" trick of substituting the "
+"bounding box for the feature itself."
+msgstr ""
+"PostgreSQL의 R-Tree 인덱스는 8K 이상의 크기를 가지는 피처를 다루지 못했습니"
+"다. GiST 인덱스는 피처 자신 대신에 바운딩 박스를 쓰는 \"손실\" 트릭을 이용해 "
+"할 수 있습니다."
+
+#. Tag: para
+#: faq.xml:278
+#, no-c-format
+msgid ""
+"R-Tree indexes in PostgreSQL are not \"null safe\", so building an index on "
+"a geometry column which contains null geometries will fail."
+msgstr ""
+"PostgreSQL의 R-Tree 인덱스는 \"null safe\" 하지 않습니다. 그래서 널 지오메트"
+"리가 포함된 지오메트리 컬럼에 대한 인덱스 생성이 실패할 수 있습니다."
+
+#. Tag: para
+#: faq.xml:288
+#, no-c-format
+msgid ""
+"Why should I use the <varname>AddGeometryColumn()</varname> function and all "
+"the other OpenGIS stuff?"
+msgstr ""
+"왜 <varname>AddGeometryColumn()</varname> 함수를 사용해야 하나요? 그리고 다"
+"른 모든OpenGIS 들도 사용해야만 하나요?"
+
+#. Tag: para
+#: faq.xml:293
+#, no-c-format
+msgid ""
+"If you do not want to use the OpenGIS support functions, you do not have to. "
+"Simply create tables as in older versions, defining your geometry columns in "
+"the CREATE statement. All your geometries will have SRIDs of -1, and the "
+"OpenGIS meta-data tables will <emphasis>not</emphasis> be filled in "
+"properly. However, this will cause most applications based on PostGIS to "
+"fail, and it is generally suggested that you do use "
+"<varname>AddGeometryColumn()</varname> to create geometry tables."
+msgstr ""
+"만약 OpenGIS 지원 기능들을 사용하길 원하지 않으신다면 사용할 필요는 없습니"
+"다. 단순히 구 버전의 테이블들을 생성하고 CREATE 문에서 geometry 행들을 정의하"
+"십시오. 모든 지오메트리는 -1의 SRID를 가질 것이며, OpenGIS meta-data 테이블"
+"은 적절하게 채워지지 <emphasis>않을</emphasis> 것입니다. 그러나, 이것은 "
+"PostGIS 기반의 대부분의 애플리케이션들이 실패하도록 할 것 입니다. 그렇기에 "
+"geometry 테이블들을 생성하기 위해서 일반적으로 <varname>AddGeometryColumn()</"
+"varname>을 사용토록 권장합니다."
+
+#. Tag: para
+#: faq.xml:302
+#, no-c-format
+msgid ""
+"MapServer is one application which makes use of the "
+"<varname>geometry_columns</varname> meta-data. Specifically, MapServer can "
+"use the SRID of the geometry column to do on-the-fly reprojection of "
+"features into the correct map projection."
+msgstr ""
+"MapServer는 geometry_columns meta-data를 활용하는 애플리케이션 중 하나입니"
+"다. 구체적으로 말하면 MapServer는 피처의 on-the-fly reprojection 시 현재 map "
+"projection에 Geometry 행의 SRID를 사용할 수 있습니다."
+
+#. Tag: para
+#: faq.xml:311
+#, no-c-format
+msgid ""
+"What is the best way to find all objects within a radius of another object?"
+msgstr ""
+"다른 오브젝트의 반경 이내 모든 오브젝트들을 찾을 수 있는 가장 좋은 방법은 무"
+"엇인가요?"
+
+#. Tag: para
+#: faq.xml:316
+#, no-c-format
+msgid ""
+"To use the database most efficiently, it is best to do radius queries which "
+"combine the radius test with a bounding box test: the bounding box test uses "
+"the spatial index, giving fast access to a subset of data which the radius "
+"test is then applied to."
+msgstr ""
+"데이터베이스를 가장 효율적으로 사용하기 위해서는 바운딩박스 테스트와 반경 테"
+"스트를 결합하는 반경 쿼리를 하는 것이 가장 좋습니다. 바운딩박스 테스트는 공"
+"간 인덱스를 사용하며, 후에 반경 테스트를 적용할 데이터의 부분집합에 대한 빠"
+"른 엑세스를 제공합니다. "
+
+#. Tag: para
+#: faq.xml:321
+#, no-c-format
+msgid ""
+"The <varname>ST_DWithin(geometry, geometry, distance)</varname> function is "
+"a handy way of performing an indexed distance search. It works by creating a "
+"search rectangle large enough to enclose the distance radius, then "
+"performing an exact distance search on the indexed subset of results."
+msgstr ""
+"<varname>ST_DWithin(geometry, geometry, distance)</varname> 함수는 인덱스를 "
+"이용한 거리 검색을 수행하는 유용한 방법입니다. 이 함수는 반경을 둘러싸기에 충"
+"분한 크기의 검색 직사각형을 생성하며 작동합니다. 그런 뒤 인덱스로 검색된 부분"
+"집합에 정확한 거리 검색을 수행합니다. "
+
+#. Tag: para
+#: faq.xml:327
+#, no-c-format
+msgid ""
+"For example, to find all objects with 100 meters of POINT(1000 1000) the "
+"following query would work well:"
+msgstr ""
+"예를 들어 POINT(1000 1000)의 100 미터 이내의 모든 오브젝트들을 찾기 위해서는 "
+"다음의 쿼리를 통해 잘 수행할 수 있습니다:"
+
+#. Tag: programlisting
+#: faq.xml:330
+#, no-c-format
+msgid ""
+"SELECT * FROM geotable \n"
+"WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
+msgstr ""
+"SELECT * FROM geotable \n"
+"WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
+
+#. Tag: para
+#: faq.xml:336
+#, no-c-format
+msgid "How do I perform a coordinate reprojection as part of a query?"
+msgstr "어떻게 쿼리의 일부로 좌표계 변환을 수행할 수 있습니까?"
+
+#. Tag: para
+#: faq.xml:341
+#, no-c-format
+msgid ""
+"To perform a reprojection, both the source and destination coordinate "
+"systems must be defined in the SPATIAL_REF_SYS table, and the geometries "
+"being reprojected must already have an SRID set on them. Once that is done, "
+"a reprojection is as simple as referring to the desired destination SRID. "
+"The below projects a geometry to NAD 83 long lat. The below will only work "
+"if the srid of the_geom is not -1 (not undefined spatial ref)"
+msgstr ""
+"좌표계 변환을 수행하기 위해서는, 원본과 대상 좌표계가 모두 SPATIAL_REF_SYS 테"
+"이블에 정의되어 있어야 하며, 좌표계 변환될 지오메트리가 SRID를 미리 가지고 있"
+"어야 합니다. 이것이 만족된다면, 좌표계 변환은 원하는 SRID를 물어보는 것 만큼"
+"이나 쉽습니다. 아래에서 지오메트리를 NAD 83 경위도로 투영합니다. 다음은 "
+"the_geom 의 srid가 -1(정의되지 않은 좌표계)이 아닌 경우에만 동작합니다."
+
+#. Tag: programlisting
+#: faq.xml:348
+#, no-c-format
+msgid "SELECT ST_Transform(the_geom,4269) FROM geotable;"
+msgstr "SELECT ST_Transform(the_geom,4269) FROM geotable;"
+
+#. Tag: para
+#: faq.xml:354
+#, no-c-format
+msgid ""
+"I did an ST_AsEWKT and ST_AsText on my rather large geometry and it returned "
+"blank field. What gives?"
+msgstr ""
+"제법 큰 지오메트리에 ST_AsEWKT와 ST_AsText을 하였습니다. 그랬더니 이것이 빈 "
+"필드를 반환했습니다. 왜 이런 것인가요?"
+
+#. Tag: para
+#: faq.xml:358
+#, no-c-format
+msgid ""
+"You are probably using PgAdmin or some other tool that doesn't output large "
+"text. If your geometry is big enough, it will appear blank in these tools. "
+"Use PSQL if you really need to see it or output it in WKT."
+msgstr ""
+"아마도 큰 텍스트를 보여주지 못하는 PgAdmin이나 다른 툴을 쓰고 있기 때문일 것"
+"입니다.  만약 사용자의 지오메트리가 충분히 크다면, 이런 툴에서는 공백으로 나"
+"타날 것입니다. PSQL을 사용하시면 WKT로 보거나 출력하실 수 있습니다."
+
+#. Tag: programlisting
+#: faq.xml:361
+#, no-c-format
+msgid ""
+"--To check number of geometries are really blank\n"
+"                                SELECT count(gid) FROM geotable WHERE "
+"the_geom IS NULL;"
+msgstr ""
+"--정말로 비어있는 지오메트리의 수 확인 \n"
+"SELECT count(gid) FROM geotable WHERE the_geom IS NULL;"
+
+#. Tag: para
+#: faq.xml:367
+#, no-c-format
+msgid ""
+"When I do an ST_Intersects, it says my two geometries don't intersect when I "
+"KNOW THEY DO. What gives?"
+msgstr ""
+"ST_Intersects를 했는데 두 지오메트리가 교차하지 않는다는 메시지를 받았습니"
+"다. 교차하고 있음을 내가 아는데 말이죠!!! 왜 이럴까요?"
+
+#. Tag: para
+#: faq.xml:371
+#, no-c-format
+msgid ""
+"This generally happens in two common cases. Your geometry is invalid -- "
+"check <xref linkend=\"ST_IsValid\"/> or you are assuming they intersect "
+"because ST_AsText truncates the numbers and you have lots of decimals after "
+"it is not showing you."
+msgstr ""
+"일반적으로 두 가지 경우에 발생합니다. 사용자의 지오메트리가 유효하지 않거나 "
+"- <xref linkend=\"ST_IsValid\"/> 확인, 사용자가 ST_AsText가 잘라낸 유효숫자"
+"를 가지고 교차한다고 판단하는 경우입니다. 소숫점 이하의 많은 숫자들이 사용자"
+"에게 보이지 않습니다."
+
+#. Tag: para
+#: faq.xml:379
+#, no-c-format
+msgid ""
+"I am releasing software that uses PostGIS, does that mean my software has to "
+"be licensed using the GPL like PostGIS? Will I have to publish all my code "
+"if I use PostGIS?"
+msgstr ""
+"저는 PostIGIS를 사용하여 소프트웨어를 개발해 출시하였습니다. 제 소프트웨어도 "
+"PostGIS처럼 GPL을 라이센스로 가져야 하나요? 만약 PostGIS를 사용할 경우 제 코"
+"드를 공개해야만 하나요?"
+
+#. Tag: para
+#: faq.xml:383
+#, no-c-format
+msgid ""
+"Almost certainly not. As an example, consider Oracle database running on "
+"Linux. Linux is GPL, Oracle is not, does Oracle running on Linux have to be "
+"distributed using the GPL? No. So your software can use a PostgreSQL/PostGIS "
+"database as much as it wants and be under any license you like."
+msgstr ""
+"그렇지 않습니다. 예를 들어, 리눅스 버전의 오라클 데이터베이스를 생각해보십시"
+"오. 리눅스는 GPL이지만 오라클은 그렇지 않습니다. 리눅스에서 운용되는 오라클"
+"은 반드시 GPL을 이용해 배포되어야 하나요? 그렇지 않습니다. 그러므로 보유하신 "
+"소프트웨어는 어떤 라이센스로라도 원하시는 만큼 PostgreSQL/PostGIS 데이터베이"
+"스를 사용하실 수 있습니다."
+
+#. Tag: para
+#: faq.xml:384
+#, no-c-format
+msgid ""
+"The only exception would be if you made changes to the PostGIS source code, "
+"and distributed your changed version of PostGIS. In that case you would have "
+"to share the code of your changed PostGIS (but not the code of applications "
+"running on top of it). Even in this limited case, you would still only have "
+"to distribute source code to people you distributed binaries to. The GPL "
+"does not require that you <emphasis>publish</emphasis> your source code, "
+"only that you share it with people you give binaries to."
+msgstr ""
+"하나의 예외가 있는데, 본인께서 PostGIS 소스코드에 수정을 가하고 그것을 임의"
+"로 수정하신 PostGIS를 배포하는 경우일 것입니다. 이러한 경우에는 수정하신 "
+"PostGIS의 코드를 공유하셔야만 하실 수도 있습니다. (그러나 이것 상에서 작동하"
+"는 애플리케이션은 제외) 심지어 이렇게 제한된 경우에서도 binaries를 배포하는 "
+"사람들에게만 소스 코드를 베포하시면 됩니다. GPL은 binariaes를 제공하는 사람들"
+"을 제외하고는 소스 코드 <emphasis>공개</emphasis>를 요구하지 않습니다"
diff --git a/doc/po/ko_KR/faq_raster.xml.po b/doc/po/ko_KR/faq_raster.xml.po
new file mode 100644
index 0000000..70dce93
--- /dev/null
+++ b/doc/po/ko_KR/faq_raster.xml.po
@@ -0,0 +1,714 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 10:58+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: faq_raster.xml:3
+#, no-c-format
+msgid "PostGIS Raster Frequently Asked Questions"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:9
+#, no-c-format
+msgid "Where can I find out more about the PostGIS Raster Project?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:13
+#, no-c-format
+msgid ""
+"Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster"
+"\">PostGIS Raster home page</ulink>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:19
+#, no-c-format
+msgid ""
+"Are there any books or tutorials to get me started with this wonderful "
+"invention?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:23
+#, no-c-format
+msgid ""
+"There is a full length beginner tutorial <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/WKTRasterTutorial01\"> Intersecting vector buffers with large "
+"raster coverage using PostGIS Raster</ulink>. Jorge has a series of blog "
+"articles on PostGIS Raster that demonstrate how to load raster data as well "
+"as cross compare to same tasks in Oracle GeoRaster. Check out <ulink url="
+"\"http://gis4free.wordpress.com/category/postgis-raster/\">Jorge's PostGIS "
+"Raster / Oracle GeoRaster Series</ulink>. There is a whole chapter (more "
+"than 35 pages of content) dedicated to PostGIS Raster with free code and "
+"data downloads at <ulink url=\"http://www.postgis.us/chapter_13\">PostGIS in "
+"Action - Raster chapter</ulink>. You can <ulink url=\"http://www.postgis.us/"
+"page_buy_book\">buy PostGIS in Action</ulink> now from Manning in hard-copy "
+"(significant discounts for bulk purchases) or just the E-book format. You "
+"can also buy from Amazon and various other book distributors. All hard-copy "
+"books come with a free coupon to download the E-book version."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:30
+#, no-c-format
+msgid ""
+"Here is a review from a PostGIS Raster user <ulink url=\"http://"
+"fuzzytolerance.info/code/postgis-raster-ftw/\">PostGIS raster applied to "
+"land classification urban forestry</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:37
+#, no-c-format
+msgid "How do I install Raster support in my PostGIS database?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:41
+#, no-c-format
+msgid ""
+"The easiest is to download binaries for PostGIS and Raster which are "
+"currently available for windows and latest versions of Mac OSX. First you "
+"need a working PostGIS 2.0.0 or above and be running PostgreSQL 8.4, 9.0, or "
+"9.1. Note in PostGIS 2.0 PostGIS Raster is fully integrated, so it will be "
+"compiled when you compile PostGIS."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:43
+#, no-c-format
+msgid ""
+"Instructions for installing and running under windows are available at "
+"<ulink url=\"http://gis4free.wordpress.com/2011/03/10/how-to-install-and-"
+"configure-postgis-raster-on-windows/\">How to Install and Configure PostGIS "
+"raster on windows</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:44
+#, no-c-format
+msgid ""
+"If you are on windows, you can compile yourself, or use the <ulink url="
+"\"http://postgis.net/windows_downloads\">pre-compiled PostGIS Raster windows "
+"binaries</ulink>. If you are on Mac OSX Leopard or Snow Leopard, there are "
+"binaries available at <ulink url=\"http://www.kyngchaos.com/software/postgres"
+"\">Kyng Chaos Mac OSX PostgreSQL/GIS binaries</ulink>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:50
+#, no-c-format
+msgid ""
+"Then to enable raster support in your database, run the rtpostgis.sql file "
+"in your database. To upgrade an existing install use "
+"rtpostgis_upgrade_minor..sql instead of rtpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:51
+#, no-c-format
+msgid ""
+"For other platforms, you generally need to compile yourself. Dependencies "
+"are PostGIS and GDAL. For more details about compiling from source, please "
+"refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"Documentation01#a2.3-CompilingandInstallingfromSources\">Installing PostGIS "
+"Raster from source (in prior versions of PostGIS)</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:57
+#, no-c-format
+msgid ""
+"I get error could not load library \"C:/Program Files/PostgreSQL/8.4/lib/"
+"rtpostgis.dll\": The specified module could not be found. or could not load "
+"library on Linux when trying to run rtpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:62
+#, no-c-format
+msgid ""
+"rtpostgis.so/dll is built with dependency on libgdal.dll/so. Make sure for "
+"Windows you have libgdal-1.dll in the bin folder of your PostgreSQL install. "
+"For Linux libgdal has to be in your path or bin folder."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:64
+#, no-c-format
+msgid ""
+"You may also run into different errors if you don't have PostGIS installed "
+"in your database. Make sure to install PostGIS first in your database before "
+"trying to install the raster support."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:71
+#, no-c-format
+msgid "How do I load Raster data into PostGIS?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:75
+#, no-c-format
+msgid ""
+"The latest version of PostGIS comes packaged with a <varname>raster2pgsql</"
+"varname> raster loader executable capable of loading many kinds of rasters "
+"and also generating lower resolution overviews without any additional "
+"software. Please refer to <xref linkend=\"RT_Raster_Loader\"/> for more "
+"details. Pre-2.0 versions came with a <varname>raster2pgsql.py</varname> "
+"that required python with numpy and GDAL. This is no longer needed."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:81
+#, no-c-format
+msgid "What kind of raster file formats can I load into my database?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:85
+#, no-c-format
+msgid ""
+"Any that your GDAL library supports. GDAL supported formats are documented "
+"<ulink url=\"http://www.gdal.org/formats_list.html\">GDAL File Formats</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:86
+#, no-c-format
+msgid ""
+"Your particular GDAL install may not support all formats. To verify the ones "
+"supported by your particular GDAL install, you can use"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:87
+#, no-c-format
+msgid "raster2pgsql -G"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:93
+#, no-c-format
+msgid "Can I export my PostGIS raster data to other raster formats?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:97
+#, no-c-format
+msgid "<para>Yes</para>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:98
+#, no-c-format
+msgid ""
+"GDAL 1.7+ has a PostGIS raster driver, but is only compiled in if you choose "
+"to compile with PostgreSQL support."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:99
+#, no-c-format
+msgid ""
+"The driver currently doesn't support irregularly blocked rasters, although "
+"you can store irregularly blocked rasters in PostGIS raster data type."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:101
+#, no-c-format
+msgid ""
+"If you are compiling from source, you need to include in your configure "
+"<programlisting>--with-pg=path/to/pg_config</programlisting> to enable the "
+"driver. Refer to <ulink url=\"http://trac.osgeo.org/gdal/wiki/BuildHints"
+"\">GDAL Build Hints</ulink> for tips on building GDAL against in various OS "
+"platforms."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:106
+#, no-c-format
+msgid ""
+"If your version of GDAL is compiled with the PostGIS Raster driver you "
+"should see PostGIS Raster in list when you do"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:108
+#, no-c-format
+msgid "gdalinfo --formats"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:110
+#, no-c-format
+msgid "To get a summary about your raster via GDAL use gdalinfo:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:111
+#, no-c-format
+msgid ""
+"gdalinfo  \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' "
+"password='whatever' schema='someschema' table=sometable\""
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:114
+#, no-c-format
+msgid ""
+"To export data to other raster formats, use gdal_translate the below will "
+"export all data from a table to a PNG file at 10% size."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:116
+#, no-c-format
+msgid ""
+"Depending on your pixel band types, some translations may not work if the "
+"export format does not support that Pixel type. For example floating point "
+"band types and 32 bit unsigned ints will not translate easily to JPG or some "
+"others."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:119
+#, no-c-format
+msgid "Here is an example simple translation"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:120
+#, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable\" C:\\somefile.png"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:121
+#, no-c-format
+msgid ""
+"You can also use SQL where clauses in your export using the where=... in "
+"your driver connection string. Below are some using a where clause"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:123
+#, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='filename=\\'abcd.sid\\''\" \" C:\\somefile.png"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:124
+#, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='ST_Intersects(rast, "
+"ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" C:\\intersectregion.png"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:125
+#, no-c-format
+msgid ""
+"To see more examples and syntax refer to <ulink url=\"http://trac.osgeo.org/"
+"gdal/wiki/frmts_wtkraster.html#a3.2-Readingrasterdatafromthedatabase"
+"\">Reading Raster Data of PostGIS Raster section</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:130
+#, no-c-format
+msgid ""
+"Are their binaries of GDAL available already compiled with PostGIS Raster "
+"suppport?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:132
+#, no-c-format
+msgid ""
+"Yes. Check out the page <ulink url=\"http://trac.osgeo.org/gdal/wiki/"
+"DownloadingGdalBinaries\">GDAL Binaries</ulink> page. Any compiled with "
+"PostgreSQL support should have PostGIS Raster in them."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:134
+#, no-c-format
+msgid ""
+"PostGIS Raster is undergoing many changes. If you want to get the latest "
+"nightly build for Windows -- then check out the Tamas Szekeres nightly "
+"builds built with Visual Studio which contain GDAL trunk, Python Bindings "
+"and MapServer executables and PostGIS Raster driver built-in. Just click the "
+"SDK bat and run your commands from there. <ulink url=\"http://vbkto.dyndns."
+"org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink>. Also available are VS "
+"project files."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:138
+#, no-c-format
+msgid ""
+"<ulink url=\"http://fwtools.maptools.org/\">FWTools latest stable version "
+"for Windows is compiled with Raster support</ulink>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:144
+#, no-c-format
+msgid "What tools can I use to view PostGIS raster data?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:148
+#, no-c-format
+msgid ""
+"You can use MapServer compiled with GDAL 1.7+ and PostGIS Raster driver "
+"support to view Raster data. QuantumGIS (QGIS) now supports viewing of "
+"PostGIS Raster if you have PostGIS raster driver installed."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:150
+#, no-c-format
+msgid ""
+"In theory any tool that renders data using GDAL can support PostGIS raster "
+"data or support it with fairly minimal effort. Again for Windows, Tamas' "
+"binaries <ulink url=\"http://vbkto.dyndns.org/sdk/\">http://vbkto.dyndns.org/"
+"sdk/</ulink> are a good choice if you don't want the hassle of having to "
+"setup to compile your own."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:157
+#, no-c-format
+msgid "How can I add a PostGIS raster layer to my MapServer map?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:161
+#, no-c-format
+msgid ""
+"First you need GDAL 1.7 or higher compiled with PostGIS raster support. GDAL "
+"1.8 or above is preferred since many issues have been fixed in 1.8 and more "
+"PostGIS raster issues fixed in trunk version."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:163
+#, no-c-format
+msgid ""
+"You can much like you can with any other raster. Refer to <ulink url="
+"\"http://mapserver.org/input/raster.html\">MapServer Raster processing "
+"options</ulink> for list of various processing functions you can use with "
+"MapServer raster layers."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:166
+#, no-c-format
+msgid ""
+"What makes PostGIS raster data particularly interesting, is that since each "
+"tile can have various standard database columns, you can segment it in your "
+"data source"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:168
+#, no-c-format
+msgid ""
+"Below is an example of how you would define a PostGIS raster layer in "
+"MapServer."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:169
+#, no-c-format
+msgid ""
+"The mode=2 is required for tiled rasters and was added in PostGIS 2.0 and "
+"GDAL 1.8 drivers. This does not exist in GDAL 1.7 drivers."
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:170
+#, no-c-format
+msgid ""
+"-- displaying raster with standard raster options\n"
+"LAYER\n"
+"        NAME coolwktraster\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        PROCESSING \"SCALE=AUTO\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"        CLASS\n"
+"                NAME \"boring\"\n"
+"                EXPRESSION ([pixel] < 20)\n"
+"                COLOR 250 250 250\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"mildly interesting\"\n"
+"                EXPRESSION ([pixel] > 20 AND [pixel] < 1000)\n"
+"                COLOR 255 0 0\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"very interesting\"\n"
+"                EXPRESSION ([pixel] >= 1000)\n"
+"                COLOR 0 255 0\n"
+"        END\n"
+"END"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:172
+#, no-c-format
+msgid ""
+"-- displaying raster with standard raster options and a where clause\n"
+"LAYER\n"
+"        NAME soil_survey2009\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' "
+"where='survey_year=2009' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:180
+#, no-c-format
+msgid "What functions can I currently use with my raster data?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:184
+#, no-c-format
+msgid ""
+"Refer to the list of <xref linkend=\"RT_reference\"/>. There are more, but "
+"this is still a work in progress."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:186
+#, no-c-format
+msgid ""
+"Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"PlanningAndFunding\">PostGIS Raster roadmap page</ulink> for details of what "
+"you can expect in the future."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:194
+#, no-c-format
+msgid ""
+"I am getting error ERROR: function st_intersects(raster, unknown) is not "
+"unique or st_union(geometry,text) is not unique. How do I fix?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:198
+#, no-c-format
+msgid ""
+"The function is not unique error happens if one of your arguments is a "
+"textual representation of a geometry instead of a geometry. In these cases, "
+"PostgreSQL marks the textual representation as an unknown type, which means "
+"it can fall into the st_intersects(raster, geometry) or st_intersects(raster,"
+"raster) thus resulting in a non-unique case since both functions can in "
+"theory support your request. To prevent this, you need to cast the geometry "
+"to a geometry."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:199
+#, no-c-format
+msgid "For example if your code looks like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:200
+#, no-c-format
+msgid ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:201
+#, no-c-format
+msgid ""
+"Cast the textual geometry representation to a geometry by changing your code "
+"to this:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:202
+#, no-c-format
+msgid ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:208
+#, no-c-format
+msgid ""
+"How is PostGIS Raster different from Oracle GeoRaster (SDO_GEORASTER) and "
+"SDO_RASTER types?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:212
+#, no-c-format
+msgid ""
+"For a more extensive discussion on this topic, check out Jorge Arévalo "
+"<ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-georaster-part-"
+"i/\">Oracle GeoRaster and PostGIS Raster: First impressions </ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:213
+#, no-c-format
+msgid ""
+"The major advantage of one-georeference-by-raster over one-georeference-by-"
+"layer is to allow:"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:214
+#, no-c-format
+msgid ""
+"* coverages to be not necessarily rectangular (which is often the case of "
+"raster coverage covering large extents. See the possible raster arrangements "
+"in the documentation)"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:215
+#, no-c-format
+msgid ""
+"* rasters to overlaps (which is necessary to implement lossless vector to "
+"raster conversion)"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:216
+#, no-c-format
+msgid ""
+"These arrangements are possible in Oracle as well, but they imply the "
+"storage of multiple SDO_GEORASTER objects linked to as many SDO_RASTER "
+"tables. A complex coverage can lead to hundreds of tables in the database. "
+"With PostGIS Raster you can store a similar raster arrangement into a unique "
+"table."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:221
+#, no-c-format
+msgid ""
+"It's a bit like if PostGIS would force you to store only full rectangular "
+"vector coverage without gaps or overlaps (a perfect rectangular topological "
+"layer). This is very practical in some applications but practice has shown "
+"that it is not realistic or desirable for most geographical coverages. "
+"Vector structures needs the flexibility to store discontinuous and non-"
+"rectangular coverages. We think it is a big advantage that raster structure "
+"should benefit as well."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:229
+#, no-c-format
+msgid ""
+"raster2pgsql load of large file fails with String of N bytes is too long for "
+"encoding conversion?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:233
+#, no-c-format
+msgid ""
+"raster2pgsql doesn't make any connections to your database when generating "
+"the file to load. If your database has set an explicit client encoding "
+"different from your database encoding, then when loading large raster files "
+"(above 30 MB in size), you may run into a <code>bytes is too long for "
+"encoding conversion</code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:235
+#, no-c-format
+msgid ""
+"This generally happens if for example you have your database in UTF8, but to "
+"support windows apps, you have the client encoding set to <code>WIN1252</"
+"code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:236
+#, no-c-format
+msgid ""
+"To work around this make sure the client encoding is the same as your "
+"database encoding during load. You can do this by explicitly setting the "
+"encoding in your load script. Example, if you are on windows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:237
+#, no-c-format
+msgid "set PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:238
+#, no-c-format
+msgid "If you are on Unix/Linux"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:239
+#, no-c-format
+msgid "export PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:240
+#, no-c-format
+msgid ""
+"Gory details of this issue are detailed in <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/2209\">http://trac.osgeo.org/postgis/ticket/2209</ulink>"
+msgstr ""
diff --git a/doc/po/ko_KR/installation.xml.po b/doc/po/ko_KR/installation.xml.po
new file mode 100644
index 0000000..ebe63a4
--- /dev/null
+++ b/doc/po/ko_KR/installation.xml.po
@@ -0,0 +1,3424 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# BJ Jang <qgis.tr.kr at gmail.com>, 2013
+# Hyungjoo Lee <procarrie at hotmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:00+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: installation.xml:3
+#, no-c-format
+msgid "PostGIS Installation"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:5
+#, no-c-format
+msgid "This chapter details the steps required to install PostGIS."
+msgstr "이 장에서는 PostGIS를 설치하기 위해 요구되는 모든 과정들을 설명합니다."
+
+#. Tag: title
+#: installation.xml:10
+#, no-c-format
+msgid "Short Version"
+msgstr "짧은 설명"
+
+#. Tag: para
+#: installation.xml:11
+#, no-c-format
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:12
+#, no-c-format
+msgid ""
+"tar xvfz postgis-&last_release_version;.tar.gz\n"
+"cd postgis-&last_release_version;\n"
+"./configure\n"
+"make\n"
+"make install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:13
+#, no-c-format
+msgid ""
+"Once postgis is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:14
+#, no-c-format
+msgid ""
+"The raster support is currently optional, but installed by default. For "
+"enabling using the PostgreSQL 9.1+ extensions model raster is required. "
+"Using the extension enable process is preferred and more user-friendly. To "
+"spatially enable your database:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:15
+#, no-c-format
+msgid ""
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_topology;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_tiger_geocoder;\"\n"
+"-- if you built with sfcgal support --\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_sfcgal;\""
+msgstr ""
+
+#. Tag: para
+#: installation.xml:18
+#, no-c-format
+msgid ""
+"Please refer to <xref linkend=\"make_install_postgis_extensions\"/> for more "
+"details about querying installed/available extensions and upgrading "
+"extensions, or switching from a non-extension install to an extension "
+"install."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:20
+#, no-c-format
+msgid ""
+"For those running who decided for some reason not to compile with raster "
+"support, or just are old-fashioned, here are longer more painful "
+"instructions for you:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:21
+#, no-c-format
+msgid ""
+"All the .sql files once installed will be installed in share/contrib/postgis-"
+"&last_minor_version; folder of your PostgreSQL install"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:24
+#, no-c-format
+msgid ""
+"createdb yourdatabase\n"
+"createlang plpgsql yourdatabase\n"
+"psql -d yourdatabase -f postgis.sql\n"
+"psql -d yourdatabase -f postgis_comments.sql\n"
+"psql -d yourdatabase -f spatial_ref_sys.sql\n"
+"psql -d yourdatabase -f rtpostgis.sql\n"
+"psql -d yourdatabase -f raster_comments.sql\n"
+"psql -d yourdatabase -f topology.sql\n"
+"psql -d yourdatabase -f topology_comments.sql\n"
+"--if you built with sfcgal support --\n"
+"psql -d yourdatabase -f sfcgal.sql\n"
+"psql -d yourdatabase -f sfcgal_comments.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:26
+#, no-c-format
+msgid ""
+"The rest of this chapter goes into detail each of the above installation "
+"steps."
+msgstr ""
+"이 장 나머지 부분에서는 위에서 설명된 각 설치 순서에 관한 자세한 정보를 다룹"
+"니다."
+
+#. Tag: title
+#: installation.xml:33
+#, no-c-format
+msgid "Install Requirements"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:35
+#, no-c-format
+msgid "PostGIS has the following requirements for building and usage:"
+msgstr ""
+"PostGIS를 구축하고 사용하기 위해서는 다음과 같은 요구사항들이 필요합니다."
+
+#. Tag: emphasis
+#: installation.xml:40
+#, no-c-format
+msgid "Required"
+msgstr "필수사항"
+
+#. Tag: para
+#: installation.xml:45
+#, no-c-format
+msgid ""
+"PostgreSQL &min_postgres_version; or higher. A complete installation of "
+"PostgreSQL (including server headers) is required. PostgreSQL is available "
+"from <ulink url=\"http://www.postgresql.org\"> http://www.postgresql.org </"
+"ulink> ."
+msgstr ""
+"PostgreSQL &min_postgres_version; 혹은 그 이후 버전. PostgreSQL의 완전 설치"
+"(서버 헤더 포함)가 필요합니다. PostgreSQL은 <ulink url=\"http://www."
+"postgresql.org\"> http://www.postgresql.org </ulink>에서 이용 가능합니다."
+
+#. Tag: para
+#: installation.xml:54
+#, no-c-format
+msgid ""
+"For a full PostgreSQL / PostGIS support matrix and PostGIS/GEOS support "
+"matrix refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiPostgreSQLPostGIS\">http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiPostgreSQLPostGIS</ulink>"
+msgstr ""
+"전체 PostgreSQL / PostGIS 지원 매트릭스 및 PostGIS/GEOS 지원 매트릭스는 "
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS"
+"\">http://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS</ulink>를 참"
+"조하십시오."
+
+#. Tag: para
+#: installation.xml:60
+#, no-c-format
+msgid ""
+"GNU C compiler (<filename>gcc</filename>). Some other ANSI C compilers can "
+"be used to compile PostGIS, but we find far fewer problems when compiling "
+"with <filename>gcc</filename>."
+msgstr ""
+"GNU C compiler (<filename>gcc</filename>). 그 밖에 다른 ANSI C 컴파일러들이 "
+"PostGIS를 컴파일하기 위해 사용될 수 있으나 <filename>gcc</filename>로 컴파일 "
+"했을 경우 훨씬 적은 오류가 발생됩니다. "
+
+#. Tag: para
+#: installation.xml:68
+#, no-c-format
+msgid ""
+"GNU Make (<filename>gmake</filename> or <filename>make</filename>). For many "
+"systems, GNU <filename>make</filename> is the default version of make. Check "
+"the version by invoking <filename>make -v</filename>. Other versions of "
+"<filename>make</filename> may not process the PostGIS <filename>Makefile</"
+"filename> properly."
+msgstr ""
+"GNU Make (<filename>gmake</filename> 혹은 <filename>make</filename>). 많은 시"
+"스템들에서 GNU <filename>make</filename>는 make의 기본 버전입니다. "
+"<filename>make -v</filename>를 통해 버전을 확인하십시오. 다른 make버전들의 경"
+"우 PostGIS <filename>Makefile</filename>을 제대로 처리하지 못할 수 도 있습니"
+"다."
+
+#. Tag: para
+#: installation.xml:78
+#, no-c-format
+msgid ""
+"Proj4 reprojection library, version 4.6.0 or greater. The Proj4 library is "
+"used to provide coordinate reprojection support within PostGIS. Proj4 is "
+"available for download from <ulink url=\"http://trac.osgeo.org/proj/\"> "
+"http://trac.osgeo.org/proj/ </ulink> ."
+msgstr ""
+"Proj4 투영 및 좌표변환 라이브러리 4.6.0 또는 그 이상 버전.  Proj4 라이브러리"
+"는 PostGIS 내에서 투영 및 좌표변환을 제공하기 위해서 사용됩니다.  proj4는 "
+"<ulink url=\"http://trac.osgeo.org/proj/\"> http://trac.osgeo.org/proj/ </"
+"ulink>에서 다운로드 가능합니다."
+
+#. Tag: para
+#: installation.xml:90
+#, no-c-format
+msgid ""
+"GEOS geometry library, version 3.3 or greater, but GEOS 3.4+ is recommended "
+"to take full advantage of all the new functions and features. Without GEOS "
+"3.4, you will be missing some major enhancements such as ST_Triangles and "
+"long-running function interruption, and improvements to geometry validation "
+"and making geometries valid such as ST_ValidDetail and ST_MakeValid. GEOS "
+"3.3.2+ is also required for topology support. GEOS is available for download "
+"from <ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/ "
+"</ulink> and 3.4+ is backward-compatible with older versions so fairly safe "
+"to upgrade."
+msgstr ""
+"GEOS 지오메트리 라이브러리는 3.3 또는 그 이상 버전이 가능하고, GEOS 3.4+ 이"
+"상 버전을 권장합니다. GEOS 3.4 버전이 없으면 ST_Triangles 및 장시간 실행함수 "
+"인터럽션과, 위상 예외 처리, ST_ValidDetail 및 ST_MakeValid와 같은 기하 검보"
+"정 향상 등과 같은 주요한 기능이 누락될 수 있습니다. GEOS 3.3.2+는 토폴로지 지"
+"원을 위해서도 필요합니다. GEOS는 <ulink url=\"http://trac.osgeo.org/geos/\"> "
+"http://trac.osgeo.org/geos/ </ulink>에서 다운로드 가능하며 3.4+ 버전은 구 버"
+"전들과 호환 되므로 구 버전을 꽤 안전하게 업그레이드 가능합니다. "
+
+#. Tag: para
+#: installation.xml:100
+#, no-c-format
+msgid ""
+"LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports "
+"functions (ST_GeomFromGML and ST_GeomFromKML). LibXML2 is available for "
+"download from <ulink url=\"http://xmlsoft.org/downloads.html\">http://"
+"xmlsoft.org/downloads.html</ulink>."
+msgstr ""
+"LibXML2, version 2.5.x 또는 그 이상 버전. LibXML은 몇 가지 imports 기능 "
+"(ST_GeomFromGML 및 ST_GeomFromKML)에 사용되고 있습니다. LibXML2는  <ulink "
+"url=\"http://xmlsoft.org/downloads.html\">http://xmlsoft.org/downloads.html</"
+"ulink> 에서 다운로드 가능합니다."
+
+#. Tag: para
+#: installation.xml:107
+#, no-c-format
+msgid ""
+"JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON "
+"via the function ST_GeomFromGeoJson. JSON-C is available for download from "
+"<ulink url=\"https://github.com/json-c/json-c/releases\">https://github.com/"
+"json-c/json-c/releases/</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:115
+#, no-c-format
+msgid ""
+"GDAL, version 1.8 or higher (1.9 or higher is strongly recommended since "
+"some things will not work well or behavior differently with lower versions). "
+"This is required for raster support and to be able to install with "
+"<code>CREATE EXTENSION postgis</code> so highly recommended for those "
+"running 9.1+. <ulink url=\"http://trac.osgeo.org/gdal/wiki/DownloadSource"
+"\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:123
+#, no-c-format
+msgid "Optional"
+msgstr "선택사항"
+
+#. Tag: para
+#: installation.xml:128
+#, no-c-format
+msgid ""
+"GDAL (pseudo optional) only if you don't want raster and don't care about "
+"installing with <code>CREATE EXTENSION postgis</code> can you leave it out. "
+"Keep in mind other extensions may have a requires postgis extension which "
+"will prevent you from installing them unless you install postgis as an "
+"extension. So it is highly recommended you compile with GDAL support."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:134
+#, no-c-format
+msgid ""
+"GTK (requires GTK+2.0, 2.8+) to compile the shp2pgsql-gui shape file loader. "
+"<ulink url=\"http://www.gtk.org/\"> http://www.gtk.org/ </ulink> ."
+msgstr ""
+"shp2pgsql-gui 쉐입 파일 로더를 캄파일 하기 위한 GTK (GTK+2.0, 2.8+ 요구됨). "
+"<ulink url=\"http://www.gtk.org/\"> http://www.gtk.org/ </ulink> ."
+
+#. Tag: para
+#: installation.xml:144
+#, no-c-format
+msgid ""
+"SFCGAL, version 1.0 (or higher) could be used to provide additional 2D and "
+"3D advanced analysis functions to PostGIS cf <xref linkend=\"reference_sfcgal"
+"\"/>. And also allow to use SFCGAL rather than GEOS for some 2D functions "
+"provided by both backends (like ST_Intersection or ST_Area, for instance). A "
+"PostgreSQL configuration variable <code>postgis.backend</code> allow end "
+"user to control which backend he want to use if SFCGAL is installed (GEOS by "
+"default). Nota: SFCGAL 1.0 require at least CGAL 4.1 and Boost 1.46 (cf: "
+"<ulink url=\"http://oslandia.github.io/SFCGAL/installation.html\">http://"
+"oslandia.github.io/SFCGAL/installation.html</ulink>) <ulink url=\"https://"
+"github.com/Oslandia/SFCGAL\">https://github.com/Oslandia/SFCGAL</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:152
+#, no-c-format
+msgid ""
+"In order to build the <xref linkend=\"Address_Standardizer\"/> you will also "
+"need PCRE <ulink url=\"http://www.pcre.org\">http://www.pcre.org</ulink> "
+"(which generally is already installed on nix systems). <code>Regex::"
+"Assemble</code> perl CPAN package is only needed if you want to rebuild the "
+"data encoded in <filename>parseaddress-stcities.h</filename>. <xref linkend="
+"\"Address_Standardizer\"/> will automatically be built if it detects a PCRE "
+"library, or you pass in a valid <varname>--with-pcre-dir=/path/to/pcre</"
+"varname> during configure."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:159
+#, no-c-format
+msgid ""
+"CUnit (<filename>CUnit</filename>). This is needed for regression testing. "
+"<ulink url=\"http://cunit.sourceforge.net/\">http://cunit.sourceforge.net/</"
+"ulink>"
+msgstr ""
+"CUnit (<filename>CUnit</filename>). 이 것은 회기검증을 위해 필요합니다. "
+"<ulink url=\"http://cunit.sourceforge.net/\">http://cunit.sourceforge.net/</"
+"ulink>"
+
+#. Tag: para
+#: installation.xml:165
+#, no-c-format
+msgid ""
+"Apache Ant (<filename>ant</filename>) is required for building any of the "
+"drivers under the <filename>java</filename> directory. Ant is available from "
+"<ulink url=\"http://ant.apache.org\"> http://ant.apache.org </ulink> ."
+msgstr ""
+"Apache Ant(<filename>ant</filename>)는 <filename>java</filename> 디렉토리 내"
+"의 드라이버를 활용하기 위해 필요합니다. Ant는<ulink url=\"http://ant.apache."
+"org\"> http://ant.apache.org </ulink>에서 이용 가능합니다."
+
+#. Tag: para
+#: installation.xml:177
+#, no-c-format
+msgid ""
+"DocBook (<filename>xsltproc</filename>) is required for building the "
+"documentation. Docbook is available from <ulink url=\"http://www.docbook.org/"
+"\"> http://www.docbook.org/ </ulink> ."
+msgstr ""
+"DocBook(<filename>xsltproc</filename>)은 문서를 발행할 때 필요합니다.  "
+"DocBook은 <ulink url=\"http://www.docbook.org/\"> http://www.docbook.org/ </"
+"ulink>에서 이용 가능합니다."
+
+#. Tag: para
+#: installation.xml:188
+#, no-c-format
+msgid ""
+"DBLatex (<filename>dblatex</filename>) is required for building the "
+"documentation in PDF format. DBLatex is available from <ulink url=\"http://"
+"dblatex.sourceforge.net/\"> http://dblatex.sourceforge.net/ </ulink> ."
+msgstr ""
+"DBLatex(<filename>dblatex</filename>)는 PDF 형식의 문서를 만들 때 필요합니"
+"다. DBLatex는 <ulink url=\"http://dblatex.sourceforge.net/\"> http://dblatex."
+"sourceforge.net/ </ulink>에서 이용 가능합니다."
+
+#. Tag: para
+#: installation.xml:199
+#, no-c-format
+msgid ""
+"ImageMagick (<filename>convert</filename>) is required to generate the "
+"images used in the documentation. ImageMagick is available from <ulink url="
+"\"http://www.imagemagick.org/\"> http://www.imagemagick.org/ </ulink> ."
+msgstr ""
+"ImageMagick(<filename>convert</filename>) 는 설명서에 사용된 이미지를 생성하"
+"는 데 필요합니다. ImageMagick는 <ulink url=\"http://www.imagemagick.org/\"> "
+"http://www.imagemagick.org/ </ulink>에서 이용 가능합니다. "
+
+#. Tag: title
+#: installation.xml:212
+#, no-c-format
+msgid "Getting the Source"
+msgstr "소스 획득"
+
+#. Tag: para
+#: installation.xml:214
+#, no-c-format
+msgid ""
+"Retrieve the PostGIS source archive from the downloads website <ulink url="
+"\"&postgis_download_url;\"> &postgis_download_url; </ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:221
+#, no-c-format
+msgid ""
+"wget &postgis_download_url;\n"
+"tar -xvzf postgis-&last_release_version;.tar.gz"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:223
+#, no-c-format
+msgid ""
+"This will create a directory called <varname>postgis-&last_release_version;</"
+"varname> in the current working directory."
+msgstr ""
+"이렇게 하면 <varname>postgis-&last_release_version;</varname>라는 이름의 디렉"
+"토리가  현재 작업 디렉토리에 생길 것입니다."
+
+#. Tag: para
+#: installation.xml:229
+#, no-c-format
+msgid ""
+"Alternatively, checkout the source from the <ulink url=\"http://subversion."
+"apache.org/\"> svn </ulink> repository <ulink url=\"http://svn.osgeo.org/"
+"postgis/trunk/\"> http://svn.osgeo.org/postgis/trunk/ </ulink> ."
+msgstr ""
+"다른 방법으로, <ulink url=\"http://subversion.apache.org/\"> svn </ulink>의 "
+"저장소 <ulink url=\"http://svn.osgeo.org/postgis/trunk/\"> http://svn.osgeo."
+"org/postgis/trunk/ </ulink>에서 소스를 checkout 받을 수 있습니다."
+
+#. Tag: programlisting
+#: installation.xml:241
+#, no-c-format
+msgid ""
+"svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-"
+"&last_release_version;"
+msgstr ""
+"svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-"
+"&last_release_version;"
+
+#. Tag: para
+#: installation.xml:243
+#, no-c-format
+msgid ""
+"Change into the newly created <varname>postgis-&last_release_version;</"
+"varname> directory to continue the installation."
+msgstr ""
+"설치를 계속하려면 새로 만든 <varname>postgis-&last_release_version;</"
+"varname> 디렉토리로 이동합니다."
+
+#. Tag: title
+#: installation.xml:251
+#, no-c-format
+msgid "Compiling and Install from Source: Detailed"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:254
+#, no-c-format
+msgid ""
+"Many OS systems now include pre-built packages for PostgreSQL/PostGIS. In "
+"many cases compilation is only necessary if you want the most bleeding edge "
+"versions or you are a package maintainer."
+msgstr ""
+"많은 OS 시스템들은 현재 PostgreSQL/PostGIS를 위한 사전 설치된 패키지들을 포함"
+"하고 있습니다. 많은 경우에, 최첨단 버전이 필요하시거나 꼭 패키지를 사용해야 "
+"할 상황이 아니라면 컴파일이 필요하지 않습니다. "
+
+#. Tag: para
+#: installation.xml:259
+#, no-c-format
+msgid ""
+"This section includes general compilation instructions, if you are compiling "
+"for Windows etc or another OS, you may find additional more detailed help at "
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiInstall\">PostGIS "
+"User contributed compile guides</ulink> and <ulink url=\"http://trac.osgeo."
+"org/postgis/wiki/DevWikiMain\">PostGIS Dev Wiki</ulink>."
+msgstr ""
+"이 단원에서는 일반적 컴파일에 대한 설명을 하고 있으므로, 더 상세한 설명은 원"
+"한다면 <ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiInstall"
+"\">PostGIS User contributed compile guides</ulink>와 <ulink url=\"http://"
+"trac.osgeo.org/postgis/wiki/DevWikiMain\">PostGIS Dev Wiki</ulink>를 참조하십"
+"시오."
+
+#. Tag: para
+#: installation.xml:261
+#, no-c-format
+msgid ""
+"Pre-Built Packages for various OS are listed in <ulink url=\"http://trac."
+"osgeo.org/postgis/wiki/UsersWikiPackages\">PostGIS Pre-built Packages</ulink>"
+msgstr ""
+"다양한 OS를 지원하는 미리 빌드된 패키지들은 <ulink url=\"http://trac.osgeo."
+"org/postgis/wiki/UsersWikiPackages\">PostGIS Pre-built Packages</ulink>에 나"
+"열되어 있습니다."
+
+#. Tag: para
+#: installation.xml:262
+#, no-c-format
+msgid ""
+"If you are a windows user, you can get stable builds via Stackbuilder or "
+"<ulink url=\"http://www.postgis.org/download/windows/\">PostGIS Windows "
+"download site</ulink> We also have <ulink url=\"http://www.postgis.org/"
+"download/windows/experimental.php\">very bleeding-edge windows experimental "
+"builds</ulink> that are built usually once or twice a week or whenever "
+"anything exciting happens. You can use these to experiment with the in "
+"progress releases of PostGIS"
+msgstr ""
+"만약 윈도우 사용자라면  Stackbuilder 또는 <ulink url=\"http://www.postgis."
+"org/download/windows/\">PostGIS Windows download site</ulink>을 통해 안정적"
+"인 버전을 받을 수 있습니다. 우리는 또한 1~2주에 한번 혹은 뭔가 특이한 일이 일"
+"어날 경우 빌드를 하는 <ulink url=\"http://www.postgis.org/download/windows/"
+"experimental.php\">very bleeding-edge windows experimental builds</ulink>을 "
+"가지고 있습니다. 사용자는 이것들을 이용해 PostGIS의 진보된 배포본을 경험해보"
+"실 수 있습니다."
+
+#. Tag: para
+#: installation.xml:267
+#, no-c-format
+msgid ""
+"The PostGIS module is an extension to the PostgreSQL backend server. As "
+"such, PostGIS &last_release_version; <emphasis>requires</emphasis> full "
+"PostgreSQL server headers access in order to compile. It can be built "
+"against PostgreSQL versions &min_postgres_version; or higher. Earlier "
+"versions of PostgreSQL are <emphasis>not</emphasis> supported."
+msgstr ""
+"PostGIS 모듈은 PostgreSQL 백엔드 서버의 확장 기능입니다. PostGIS "
+"&last_release_version;은 컴파일 하기 위해 full PostgreSQL 서버 헤더로의 접근"
+"을 <emphasis>필요</emphasis>로 합니다. 이는 PostgreSQL "
+"&min_postgres_version; 버전 또는 이상 버전을 이용해 빌드됩니다. 그 이전 버전"
+"의 PostgreSQL에서는 <emphasis>지원되지 않습니다</emphasis>. "
+
+#. Tag: para
+#: installation.xml:275
+#, no-c-format
+msgid ""
+"Refer to the PostgreSQL installation guides if you haven't already installed "
+"PostgreSQL. <ulink url=\"http://www.postgresql.org\"> http://www.postgresql."
+"org </ulink> ."
+msgstr ""
+"아직 PostgreSQL을 설치하지 않으셨다면 PostgreSQL 설치 가이드를 참조하십시오. "
+"<ulink url=\"http://www.postgresql.org\"> http://www.postgresql.org </"
+"ulink> ."
+
+#. Tag: para
+#: installation.xml:285
+#, no-c-format
+msgid ""
+"For GEOS functionality, when you install PostgresSQL you may need to "
+"explicitly link PostgreSQL against the standard C++ library:"
+msgstr ""
+"GEOS 기능을 위해서는 PostgreSQL설치 시 표준 C++ 라이브러리에 대한 명확한 연결"
+"이 필요할 수도 있습니다. "
+
+#. Tag: programlisting
+#: installation.xml:290
+#, no-c-format
+msgid "LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE]"
+msgstr "LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE]"
+
+#. Tag: para
+#: installation.xml:292
+#, no-c-format
+msgid ""
+"This is a workaround for bogus C++ exceptions interaction with older "
+"development tools. If you experience weird problems (backend unexpectedly "
+"closed or similar things) try this trick. This will require recompiling your "
+"PostgreSQL from scratch, of course."
+msgstr ""
+"이는 구버전 개발 도구 이용시 bogus C++ exceptions interaction을 해결하는 방법"
+"입니다. 만약 사용자가 이상한 문제(백엔드의 급작스러운 끊어짐이나 비슷한 증상)"
+"를 격는다면 PostgreSQL을 다시 컴파일 해야 할 수도 있습니다."
+
+#. Tag: para
+#: installation.xml:300
+#, no-c-format
+msgid ""
+"The following steps outline the configuration and compilation of the PostGIS "
+"source. They are written for Linux users and will not work on Windows or Mac."
+msgstr ""
+"다음의 단계들은 PostGIS 소스에 대한 설정과 편집에 대한 과정을 설명합니다. 이"
+"는 리눅스 사용자들을 위한 것이므로 윈도우 또는 맥은 해당되지 않습니다. "
+
+#. Tag: title
+#: installation.xml:307
+#, no-c-format
+msgid "Configuration"
+msgstr "리눅스 설치를 위한 설정"
+
+#. Tag: para
+#: installation.xml:309
+#, no-c-format
+msgid ""
+"As with most linux installations, the first step is to generate the Makefile "
+"that will be used to build the source code. This is done by running the "
+"shell script"
+msgstr ""
+"대부분의 리눅스 설치에서 첫 번째 단계는 소스 코드를 빌드하는 데 사용할 "
+"Makefile을 생성하는 것입니다.  Makefile은 쉘 스크립트 실행을 통해 만들어집니다."
+
+#. Tag: para
+#: installation.xml:319
+#, no-c-format
+msgid ""
+"With no additional parameters, this command will attempt to automatically "
+"locate the required components and libraries needed to build the PostGIS "
+"source code on your system. Although this is the most common usage of "
+"<command>./configure</command>, the script accepts several parameters for "
+"those who have the required libraries and programs in non-standard locations."
+msgstr ""
+"추가적인 파라미터 없이 사용하면, 이 명령은 자동적으로 PostGIS 소스 코드를 시"
+"스템에 설치하기 위해 필요한 필수 구성 요소들과 라이브러리를 설치하기 위한 시"
+"도를 합니다. <command>./configure</command> 명령 만으로 필요한 라이브러리와 "
+"비 표준 경로에 설치된 프로그램을 찾아냅니다."
+
+#. Tag: para
+#: installation.xml:328
+#, no-c-format
+msgid ""
+"The following list shows only the most commonly used parameters. For a "
+"complete list, use the <command>--help</command> or <command>--help=short</"
+"command> parameters."
+msgstr ""
+"아래 리스트는 가장 일반적으로 사용되는 매개변수들 만을 나열한 것입니다. 전체 "
+"목록을 원하신다면 <command>--help</command> 또는<command>--help=short</"
+"command>를 파라미터를 사용하십시오. "
+
+#. Tag: para
+#: installation.xml:338
+#, no-c-format
+msgid ""
+"This is the location the PostGIS libraries and SQL scripts will be installed "
+"to. By default, this location is the same as the detected PostgreSQL "
+"installation."
+msgstr ""
+"이는 PostGIS 라이브러리와 SQL 스크립트들이 설치될 경로입니다. 기본적으로 "
+"PostgreSQL가 설치된 경로와 같은 곳에 설치됩니다."
+
+#. Tag: para
+#: installation.xml:345
+#, no-c-format
+msgid ""
+"This parameter is currently broken, as the package will only install into "
+"the PostgreSQL installation directory. Visit <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/635\"> http://trac.osgeo.org/postgis/ticket/635 </ulink> "
+"to track this bug."
+msgstr ""
+"이 파라미터는 현재 작동되지 않습니다. 따라서, 현재는 PostgreSQL 설치 경로에"
+"만 설치될 것입니다. 해당 버그 추적을 위해서는 <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/635\"> http://trac.osgeo.org/postgis/ticket/635 </ulink> "
+"를 참조하십시오."
+
+#. Tag: para
+#: installation.xml:360
+#, no-c-format
+msgid ""
+"PostgreSQL provides a utility called <command>pg_config</command> to enable "
+"extensions like PostGIS to locate the PostgreSQL installation directory. Use "
+"this parameter (<command>--with-pgconfig=/path/to/pg_config</command>) to "
+"manually specify a particular PostgreSQL installation that PostGIS will "
+"build against."
+msgstr ""
+"PostgreSQL은 <command>pg_config</command> 라 불리는 유틸리티를 제공합니다.  "
+"pg_config는 PostGIS와 같은 extension들이 PostgreSQL 설치 디렉토리의 정확한 위"
+"치를 찾는 것을 가능케 합니다. PostGIS를 기반으로 설치될 특정 PostgreSQL 설치"
+"를 수동으로 명시하기 위해서는 이 매개변수 (<command>--with-pgconfig=/path/to/"
+"pg_config</command>)를 사용하십시오."
+
+#. Tag: para
+#: installation.xml:374
+#, no-c-format
+msgid ""
+"GDAL, a required library, provides functionality needed for raster support "
+"<command>gdal-config</command> to enable software installations to locate "
+"the GDAL installation directory. Use this parameter (<command>--with-"
+"gdalconfig=/path/to/gdal-config</command>) to manually specify a particular "
+"GDAL installation that PostGIS will build against."
+msgstr ""
+"GDAL는 래스터 지원을 위한 기능을 제공하는 필수 라이브러리로, GDAL 설치 위치"
+"를 알려주어 소프트웨어 설치를 활성화 하기 위해 <command>gdal-config</command>"
+"를 지원합니다. 이 매개변수 (<command>--with-gdalconfig=/path/to/gdal-config</"
+"command>) 를 이용하면 수동으로 지정된 특정 GDAL 설치본을 기반으로 PostGIS가 "
+"빌드 됩니다."
+
+#. Tag: para
+#: installation.xml:388
+#, no-c-format
+msgid ""
+"GEOS, a required geometry library, provides a utility called <command>geos-"
+"config</command> to enable software installations to locate the GEOS "
+"installation directory. Use this parameter (<command>--with-geosconfig=/path/"
+"to/geos-config</command>) to manually specify a particular GEOS installation "
+"that PostGIS will build against."
+msgstr ""
+"GEOS는 필수 지오메트리 라이브러리로, GEOS 설치 디렉토리를 알려줘 소프트웨어 "
+"설치를 활성화하기 위해 <command>geos-config</command>라 불리는 유틸리티 호출"
+"을 지원합니다. 이 매개변수 (<command>--with-geosconfig=/path/to/geos-config</"
+"command>) 를 이용하면 수동으로 지정된 특정 GEOS 설치본을 기반으로 PostGIS가 "
+"빌드 됩니다."
+
+#. Tag: para
+#: installation.xml:402
+#, no-c-format
+msgid ""
+"LibXML is the library required for doing GeomFromKML/GML processes. It "
+"normally is found if you have libxml installed, but if not or you want a "
+"specific version used, you'll need to point PostGIS at a specific "
+"<filename>xml2-config</filename> confi file to enable software installations "
+"to locate the LibXML installation directory. Use this parameter (<command>>--"
+"with-xml2config=/path/to/xml2-config</command>) to manually specify a "
+"particular LibXML installation that PostGIS will build against."
+msgstr ""
+"LibXML은 GeomFromKML/GML 프로세스를 진행하기 위해 필요한 라이브러리입니다. 이"
+"것은Libxml 을 설치하면 찾을 수 있습니다. Libxml을 설치하지 않았거나 특정 버전"
+"을 원하신다면 PostGIS를 <filename>xml2-config</filename>라고 하는 설정 파일"
+"에 명시해야 합니다. xml2-config 설정 파일은 소프트웨어가 LibXML 설치 경로에 "
+"위치할 수 있도록 합니다. PostGIS에 사용할 특정 LibXML 설치를 수동으로 명시하"
+"기 위해서는 이 매개변수(<command>>--with-xml2config=/path/to/xml2-config</"
+"command>)를 사용하십시오. "
+
+#. Tag: para
+#: installation.xml:420
+#, no-c-format
+msgid ""
+"Proj4 is a reprojection library required by PostGIS. Use this parameter "
+"(<command>--with-projdir=/path/to/projdir</command>) to manually specify a "
+"particular Proj4 installation directory that PostGIS will build against."
+msgstr ""
+"Proj4 는 투영 및 좌표변환 라이브러리입니다. PostGIS를 기반으로 설치될 특정 "
+"Proj4 설치를 수동으로 명시하기 위해서는 이 매개변수  (<command>--with-"
+"projdir=/path/to/projdir</command>)를 사용하십시오. "
+
+#. Tag: para
+#: installation.xml:432
+#, no-c-format
+msgid "Directory where iconv is installed."
+msgstr "iconv가 설치되는 경로 "
+
+#. Tag: para
+#: installation.xml:441
+#, no-c-format
+msgid ""
+"<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink> is an MIT-"
+"licensed JSON library required by PostGIS ST_GeomFromJSON support. Use this "
+"parameter (<command>--with-jsondir=/path/to/jsondir</command>) to manually "
+"specify a particular JSON-C installation directory that PostGIS will build "
+"against."
+msgstr ""
+"<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink>는  MIT-라이"
+"센스의 JSON 라이브러리로 PostGIS ST_GeomFromJSON 지원에 필요합니다. PostGIS"
+"를 기반으로 설치될 특정 JSON-C 설치를 수동으로 명시하기 위해서는 이 매개변"
+"수  (<command>--with-jsondir=/path/to/jsondir</command>)를 사용하십시오. "
+
+#. Tag: para
+#: installation.xml:453
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.pcre.org/\">PCRE</ulink> is an BSD-licensed Perl "
+"Compatible Regular Expression library required by address_standardizer "
+"extension. Use this parameter (<command>--with-pcredir=/path/to/pcredir</"
+"command>) to manually specify a particular PCRE installation directory that "
+"PostGIS will build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:465
+#, no-c-format
+msgid ""
+"Compile the data import GUI (requires GTK+2.0). This will create shp2pgsql-"
+"gui graphical interface to shp2pgsql."
+msgstr ""
+"데이터 가져오기 GUI 컴파일 (requires GTK+2.0). 이것은 shp2pgsql-gui, "
+"shp2pgsql을 위한 그래픽적인 인테페이스를 만듭니다."
+
+#. Tag: para
+#: installation.xml:474
+#, no-c-format
+msgid ""
+"Compile with raster support. This will build rtpostgis-"
+"&last_release_version; library and rtpostgis.sql file. This may not be "
+"required in final release as plan is to build in raster support by default."
+msgstr ""
+"래스터 지원이 되도록 빌드합니다. 이것은 rtpostgis-&last_release_version; 라이"
+"브러리와 rtpostgis.sql 파일을 빌드합니다. 최종 배포본에서는 래스터 지원을 기"
+"본으로 지원할 것이기 때문에 필요로 하지 않을 것입니다. "
+
+#. Tag: para
+#: installation.xml:483
+#, no-c-format
+msgid ""
+"Compile with topology support. This will build the topology.sql file. There "
+"is no corresponding library as all logic needed for topology is in postgis-"
+"&last_release_version; library."
+msgstr ""
+"토폴로지 지원과 함께 빌드합니다. 이것은 topology.sql 파일을 빌드할 것입니다. "
+"이것에 상응하는 다른 라이브러리는 postgis-&last_release_version; 라이브러리 "
+"내에 존재하지 않습니다. "
+
+#. Tag: para
+#: installation.xml:492
+#, no-c-format
+msgid ""
+"By default PostGIS will try to detect gettext support and compile with it, "
+"however if you run into incompatibility issues that cause breakage of "
+"loader, you can disable it entirely with this command. Refer to ticket "
+"<ulink url=\"http://trac.osgeo.org/postgis/ticket/748\">http://trac.osgeo."
+"org/postgis/ticket/748</ulink> for an example issue solved by configuring "
+"with this. NOTE: that you aren't missing much by turning this off. This is "
+"used for international help/label support for the GUI loader which is not "
+"yet documented and still experimental."
+msgstr ""
+"기본적으로 PostGIS는 gettext 지원을 검출하고 함께 컴파일 하지만, 만약 사용자"
+"가 로더의 파손으로 인한 불일치 문제에 봉착한다면, 이 명령어로 완전히 이를 무"
+"력화 할 수 있습니다. 자세한 내용은 <ulink url=\"http://trac.osgeo.org/"
+"postgis/ticket/748\">http://trac.osgeo.org/postgis/ticket/748</ulink>을 참조"
+"하십시오. 참고: 이것은 아직은 실험적이고 문서화 되지 않은 GUI 로더의 국제적 "
+"도움말/라벨 지원을 위한 것으로 미사용으로 설정한다고 해서 크게 놓치는 것은 없"
+"습니다."
+
+#. Tag: para
+#: installation.xml:503
+#, no-c-format
+msgid ""
+"By default PostGIS will not install with sfcgal support without this switch. "
+"<varname>PATH</varname> is an optional argument that allows to specify an "
+"alternate PATH to sfcgal-config."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:511
+#, no-c-format
+msgid ""
+"If you obtained PostGIS from the SVN <ulink url=\"http://svn.osgeo.org/"
+"postgis/trunk/\"> repository </ulink> , the first step is really to run the "
+"script"
+msgstr ""
+"PostGIS를 SVN <ulink url=\"http://svn.osgeo.org/postgis/trunk/\"> repository "
+"</ulink>에서 획득하셨다면, 먼저 아래 스크립트를 실행하십시오."
+
+#. Tag: para
+#: installation.xml:523
+#, no-c-format
+msgid ""
+"This script will generate the <command>configure</command> script that in "
+"turn is used to customize the installation of PostGIS."
+msgstr ""
+"이 스크립트는 <command>configure</command> 스크립트를 생성해줍니다. 이는 차례"
+"로 PostGIS 설치본의 사용자화를 위해 이용됩니다."
+
+#. Tag: para
+#: installation.xml:528
+#, no-c-format
+msgid ""
+"If you instead obtained PostGIS as a tarball, running <command>./autogen.sh</"
+"command> is not necessary as <command>configure</command> has already been "
+"generated."
+msgstr ""
+"만약 tar 파일 형태로 PostGIS를 획득하셨다면 이미 <command>configure</command>"
+"가 생성되었기 때문에 <command>./autogen.sh</command> 실행은 필요하지 않습니다"
+
+#. Tag: title
+#: installation.xml:537
+#, no-c-format
+msgid "Building"
+msgstr "빌드"
+
+#. Tag: para
+#: installation.xml:539
+#, no-c-format
+msgid ""
+"Once the Makefile has been generated, building PostGIS is as simple as "
+"running"
+msgstr "한번 Makefile이 생성되면 PostGIS 빌드는 매우 쉽습니다."
+
+#. Tag: para
+#: installation.xml:548
+#, no-c-format
+msgid ""
+"The last line of the output should be \"<code>PostGIS was built "
+"successfully. Ready to install.</code>\""
+msgstr ""
+"이 때 결과 표시 마지막 줄에 \"<code>PostGIS was built successfully. Ready to "
+"install.</code>\"이 나타나야 합니다."
+
+#. Tag: para
+#: installation.xml:553
+#, no-c-format
+msgid ""
+"As of PostGIS v1.4.0, all the functions have comments generated from the "
+"documentation. If you wish to install these comments into your spatial "
+"databases later, run the command which requires docbook. The "
+"postgis_comments.sql and other package comments files raster_comments.sql, "
+"topology_comments.sql are also packaged in the tar.gz distribution in the "
+"doc folder so no need to make comments if installing from the tar ball."
+msgstr ""
+"PostGIS v1.4.0을 기준으로 모든 기능들은 문서화를 통해 생성된 주석을 가지고 있"
+"습니다. 공간 데이터베이스에 주석을 넣고 싶으시다면 docbook을 필요로 하는 명령"
+"어를 실행시키십시오. postgis_comments.sql과 다른 패키지 주석 파일들인 "
+"raster_comments.sql, topology_comments.sql 들은 doc폴더 내 tar.gz 배포 파일"
+"에 패키징 되어 있으므로, tar 파일로부터 설치를 한 경우에는 따로 주석을 만들 "
+"필요가 없습니다"
+
+#. Tag: command
+#: installation.xml:563 installation.xml:587
+#, no-c-format
+msgid "make comments"
+msgstr "make comments"
+
+#. Tag: para
+#: installation.xml:566
+#, no-c-format
+msgid ""
+"Introduced in PostGIS 2.0. This generates html cheat sheets suitable for "
+"quick reference or for student handouts. This requires xsltproc to build and "
+"will generate 4 files in doc folder <filename>topology_cheatsheet.html</"
+"filename>, <filename>tiger_geocoder_cheatsheet.html</filename>, "
+"<filename>raster_cheatsheet.html</filename>, <filename>postgis_cheatsheet."
+"html</filename>"
+msgstr ""
+"PostGIS 2.0에 포함되었습니다. 이것은 빠른 참조 또는 학습용 유인물에 적합한 참"
+"조 자료 html을 생성합니다. 생성을 위해서는 xsltproc가 요구되며 doc 폴더 내에 "
+"<filename>topology_cheatsheet.html</filename>, "
+"<filename>tiger_geocoder_cheatsheet.html</filename>, "
+"<filename>raster_cheatsheet.html</filename>, <filename>postgis_cheatsheet."
+"html</filename> 4개의 파일을 생성합니다. "
+
+#. Tag: para
+#: installation.xml:571
+#, no-c-format
+msgid ""
+"You can download some pre-built ones available in html and pdf from <ulink "
+"url=\"http://www.postgis.us/study_guides\">PostGIS / PostgreSQL Study "
+"Guides</ulink>"
+msgstr ""
+"html과 pdf 형식으로 미리 만들어진 파일들을 <ulink url=\"http://www.postgis."
+"us/study_guides\">PostGIS / PostgreSQL Study Guides</ulink>에서 다운로드 받으"
+"실 수 있습니다."
+
+#. Tag: command
+#: installation.xml:574
+#, no-c-format
+msgid "make cheatsheets"
+msgstr "make cheatsheets"
+
+#. Tag: title
+#: installation.xml:579
+#, no-c-format
+msgid "Building PostGIS Extensions and Deploying them"
+msgstr "PostGIS Extensions 빌드 및 배포"
+
+#. Tag: para
+#: installation.xml:581
+#, no-c-format
+msgid ""
+"The PostGIS extensions are built and installed automatically if you are "
+"using PostgreSQL 9.1+."
+msgstr ""
+"PostgreSQL 9.1 이상을 사용 중이라면 PostGIS extentions은 자동적으로 빌드 및 "
+"설치됩니다. "
+
+#. Tag: para
+#: installation.xml:584
+#, no-c-format
+msgid ""
+"If you are building from source repository, you need to build the function "
+"descriptions first. These get built if you have docbook installed. You can "
+"also manually build with the statement:"
+msgstr ""
+"소스 저장소로부터 생성할 경우에는, 먼저 function descriptions 부터 빌드해야 "
+"합니다. docbook을 설치하셨다면  빌드할 수 있고, 다음 명령을 통해 수동으로 생"
+"성할 수도 있습니다: "
+
+#. Tag: para
+#: installation.xml:589
+#, no-c-format
+msgid ""
+"Building the comments is not necessary if you are building from a release "
+"tar ball since these are packaged pre-built with the tar ball already."
+msgstr ""
+"만약 사용자가 tar 파일 배포본을 이용해 빌드한다면  미리 빌드된 것이 tar 파일"
+"과 함께 배포됨으로 comments를 따로 빌드할 필요가 없습니다. "
+
+#. Tag: para
+#: installation.xml:590
+#, no-c-format
+msgid ""
+"If you are building against PostgreSQL 9.1, the extensions should "
+"automatically build as part of the make install process. You can if needed "
+"build from the extensions folders or copy files if you need them on a "
+"different server."
+msgstr ""
+"만약 PostgreSQL 9.1을 기반으로 빌드 중이라면 extensions은 설치 과정의 일환으"
+"로 자동 빌드될 것입니다. 만약 필요하다면 extensions 폴더로부터의 빌드하거나 "
+"또는 다른 서버에서 필요한 파일을 복사할 수 있습니다. "
+
+#. Tag: programlisting
+#: installation.xml:592
+#, no-c-format
+msgid ""
+"cd extensions\n"
+"cd postgis\n"
+"make clean\n"
+"make \n"
+"make install\n"
+"cd ..\n"
+"cd postgis_topology\n"
+"make clean\n"
+"make \n"
+"make install"
+msgstr ""
+"cd extensions\n"
+"cd postgis\n"
+"make clean\n"
+"make \n"
+"make install\n"
+"cd ..\n"
+"cd postgis_topology\n"
+"make clean\n"
+"make \n"
+"make install"
+
+#. Tag: para
+#: installation.xml:593
+#, no-c-format
+msgid ""
+"The extension files will always be the same for the same version of PostGIS "
+"regardless of OS, so it is fine to copy over the extension files from one OS "
+"to another as long as you have the PostGIS binaries already installed on "
+"your servers."
+msgstr ""
+"extension 파일은 OS에 상관없이 PostGIS버전만 같으면 적용에 문제가 없습니다. "
+"그러므로 PostGIS binaries가 설치된 서버에 확장 파일만 복사해도 문제가 없습니"
+"다. "
+
+#. Tag: para
+#: installation.xml:595
+#, no-c-format
+msgid ""
+"If you want to install the extensions manually on a separate server "
+"different from your development, You need to copy the following files from "
+"the extensions folder into the <filename>PostgreSQL / share / extension</"
+"filename> folder of your PostgreSQL install as well as the needed binaries "
+"for regular PostGIS if you don't have them already on the server."
+msgstr ""
+"만약 extension을 수동으로 또는 다른 서버에 설치하고 싶으면 다음 파일들을 사용"
+"자의 PostgreSQL 설치경로의  <filename>PostgreSQL / share / extension</"
+"filename> 폴더에 있는 extensions 폴더에서 복사하여 PostGIS가 설치되지 않은 서"
+"버에 필요한 바이너리 파일들을 넣어 주십시오."
+
+#. Tag: para
+#: installation.xml:602
+#, no-c-format
+msgid ""
+"These are the control files that denote information such as the version of "
+"the extension to install if not specified. <filename>postgis.control, "
+"postgis_topology.control</filename>."
+msgstr ""
+"이것들이 지정되지 않은 경우 설치할 수 있는 extension 의 버전 등의 정보를 나타"
+"내는 제어 파일입니다. <filename>postgis.control, postgis_topology.control</"
+"filename>."
+
+#. Tag: para
+#: installation.xml:608
+#, no-c-format
+msgid ""
+"All the files in the /sql folder of each extension. Note that these need to "
+"be copied to the root of the PostgreSQL share/extension folder "
+"<filename>extensions/postgis/sql/*.sql</filename>, <filename>extensions/"
+"postgis_topology/sql/*.sql</filename>"
+msgstr ""
+"각 extension의 /sql 폴더에 모든 파일들이 있습니다. 다음 파일들은 postgreSQL"
+"의 share/extension 폴더의 루트에 복사 되어야 함에 주의하십시오. "
+"<filename>extensions/postgis/sql/*.sql</filename>, <filename>extensions/"
+"postgis_topology/sql/*.sql</filename>"
+
+#. Tag: para
+#: installation.xml:614
+#, no-c-format
+msgid ""
+"Once you do that, you should see <varname>postgis</varname>, "
+"<varname>postgis_topology</varname> as available extensions in PgAdmin -> "
+"extensions."
+msgstr ""
+"이렇게 한 다음, 사용자는 사용 가능한 extensions으로 <varname>postgis</"
+"varname>, <varname>postgis_topology</varname> 을 PgAdmin -> extensions에서 "
+"볼 수 있을 것입니다."
+
+#. Tag: para
+#: installation.xml:615
+#, no-c-format
+msgid ""
+"If you are using psql, you can verify that the extensions are installed by "
+"running this query:"
+msgstr ""
+"만약 psql을 이용 중이라면 다음의 쿼리를 실행함으로써 확인할 수 있습니다."
+
+#. Tag: programlisting
+#: installation.xml:616
+#, no-c-format
+msgid ""
+"SELECT name, default_version,installed_version \n"
+"FROM pg_available_extensions WHERE name LIKE 'postgis%' ;\n"
+"      name       | default_version | installed_version\n"
+"-----------------+-----------------+-------------------\n"
+"postgis          | &last_release_version;     | &last_release_version;\n"
+"postgis_topology | &last_release_version;      |"
+msgstr ""
+"SELECT name, default_version,installed_version \n"
+"FROM pg_available_extensions WHERE name LIKE 'postgis%' ;\n"
+"      name       | default_version | installed_version\n"
+"-----------------+-----------------+-------------------\n"
+"postgis          | &last_release_version;     | &last_release_version;\n"
+"postgis_topology | &last_release_version;      |"
+
+#. Tag: para
+#: installation.xml:618
+#, no-c-format
+msgid ""
+"If you have the extension installed in the database you are querying, you'll "
+"see mention in the <varname>installed_version</varname> column. If you get "
+"no records back, it means you don't have postgis extensions installed on the "
+"server at all. PgAdmin III 1.14+ will also provide this information in the "
+"<varname>extensions</varname> section of the database browser tree and will "
+"even allow upgrade or uninstall by right-clicking."
+msgstr ""
+"만약 사용자가 쿼리하는 데이터베이스에 extension이 설치되어 있다면, 사용자는 "
+"<varname>installed_version</varname> 컬럼에서 이름을 볼 수 있습니다. 만약 아"
+"무 레코드도 없다면 서버에 postgis extension이 전혀 설치되어 있지 않음을 뜻합"
+"니다. PgAdmin III 1.14이상 버전에서는 데이터베이스 탐색 트리의 "
+"<varname>extensions</varname>에서 마우스 오른쪽 버튼 클릭을 통해 업그레이드 "
+"또는 삭제를 허용합니다. "
+
+#. Tag: para
+#: installation.xml:622
+#, no-c-format
+msgid ""
+"If you have the extensions available, you can install postgis extension in "
+"your database of choice by either using pgAdmin extension interface or "
+"running these sql commands:"
+msgstr ""
+"extension이 이용 가능한 상태라면 pgAdmin extension 인터페이스 또는 다음의 "
+"sql 명령을 실행함으로써 선택한 데이터베이스 안에 postgis extension을 설치할 "
+"수 있습니다:"
+
+#. Tag: programlisting
+#: installation.xml:623
+#, no-c-format
+msgid ""
+"CREATE EXTENSION postgis;\n"
+"CREATE EXTENSION postgis_topology;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:625
+#, no-c-format
+msgid ""
+"In psql you can use to see what versions you have installed and also what "
+"schema they are installed."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:626
+#, no-c-format
+msgid ""
+"\\connect mygisdb\n"
+"\\x \n"
+"\\dx postgis*"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:628
+#, no-c-format
+msgid ""
+"List of installed extensions\n"
+"-[ RECORD 1 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis\n"
+"Version     | &last_release_version;\n"
+"Schema      | public\n"
+"Description | PostGIS geometry, geography, and raster spat..\n"
+"-[ RECORD 2 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_tiger_geocoder\n"
+"Version     | &last_release_version;\n"
+"Schema      | tiger\n"
+"Description | PostGIS tiger geocoder and reverse geocoder\n"
+"-[ RECORD 3 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_topology\n"
+"Version     | &last_release_version;\n"
+"Schema      | topology\n"
+"Description | PostGIS topology spatial types and functions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:630
+#, no-c-format
+msgid ""
+"Extension tables <varname>spatial_ref_sys</varname>, <varname>layer</"
+"varname>, <varname>topology</varname> can not be explicitly backed up. They "
+"can only be backed up when the respective <varname>postgis</varname> or "
+"<varname>postgis_topology</varname> extension is backed up, which only seems "
+"to happen when you backup the whole database. As of PostGIS 2.0.1, only srid "
+"records not packaged with PostGIS are backed up when the database is backed "
+"up so don't go around changing srids we package and expect your changes to "
+"be there. Put in a ticket if you find an issue. The structures of extension "
+"tables are never backed up since they are created with <code>CREATE "
+"EXTENSION</code> and assumed to be the same for a given version of an "
+"extension. These behaviors are built into the current PostgreSQL extension "
+"model, so nothing we can do about it."
+msgstr ""
+"<varname>spatial_ref_sys</varname>, <varname>layer</varname>, "
+"<varname>topology</varname> 확장 테이블은 백업되지 않습니다. 이것들은 "
+"<varname>postgis</varname> 또는 <varname>postgis_topology</varname> extension"
+"이 백업이 될 경우에만 백업이 가능합니다. 이는 전체 데이터베이스가 백업될 때에"
+"만 발생한다고 볼 수 있습니다. PosgGIS 2.0.1에서는 데이터베이스 백업시 srid 레"
+"코드만이 백업됩니다. 이와 관한 문제를 발견하면 trac 티켓을 발행해주십시오. "
+"extension 테이블의 구조들은  <code>CREATE EXTENSION</code>과 함께 생성되기 때"
+"문에 백업되지 않습니다. 이러한 방식은 PostgreSQL extension 모델에 적용되기 때"
+"문에 조치를 취할 수 있는 방법이 없습니다. "
+
+#. Tag: para
+#: installation.xml:635
+#, no-c-format
+msgid ""
+"If you installed &last_release_version;, without using our wonderful "
+"extension system, you can change it to be extension based by first upgrading "
+"to the latest micro version running the upgrade scripts: "
+"<filename>postgis_upgrade_22_minor.sql</filename>,"
+"<filename>raster_upgrade_22_minor.sql</filename>,"
+"<filename>topology_upgrade_22_minor.sql</filename>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:636
+#, no-c-format
+msgid ""
+"If you installed postgis without raster support, you'll need to install "
+"raster support first (using the full <filename>rtpostgis.sql</filename>"
+msgstr ""
+"만일 래스터 지원없이 postgis를 설치했다면, 래스터 지원을 먼저 설치 해야 합니"
+"다. (전체  <filename>rtpostgis.sql</filename> 이용"
+
+#. Tag: para
+#: installation.xml:637
+#, no-c-format
+msgid ""
+"Then you can run the below commands to package the functions in their "
+"respective extension."
+msgstr ""
+"그런 다음 extension기능 패키지를 설치하기 위한 다음 명령을 실행할 수 있습니"
+"다."
+
+#. Tag: programlisting
+#: installation.xml:638
+#, no-c-format
+msgid ""
+"CREATE EXTENSION postgis FROM unpackaged;\n"
+"CREATE EXTENSION postgis_topology FROM unpackaged;\n"
+"CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:644
+#, no-c-format
+msgid "Testing"
+msgstr "테스트"
+
+#. Tag: para
+#: installation.xml:646
+#, no-c-format
+msgid "If you wish to test the PostGIS build, run"
+msgstr "만약 PostGIS 빌드를 테스트하고 싶다면, 실행하십시오."
+
+#. Tag: command
+#: installation.xml:651
+#, no-c-format
+msgid "make check"
+msgstr "make check"
+
+#. Tag: para
+#: installation.xml:654
+#, no-c-format
+msgid ""
+"The above command will run through various checks and regression tests using "
+"the generated library against an actual PostgreSQL database."
+msgstr ""
+"위 명령어는 활성 PostgreSQL 데이터베이스 바탕으로 생성된 라이브러리를 이용하"
+"여 다양한 확인과 회귀 테스트를 실행할 것입니다. "
+
+#. Tag: para
+#: installation.xml:660
+#, no-c-format
+msgid ""
+"If you configured PostGIS using non-standard PostgreSQL, GEOS, or Proj4 "
+"locations, you may need to add their library locations to the "
+"LD_LIBRARY_PATH environment variable."
+msgstr ""
+"PostgreSQL, GEOS, 또는 Proj4를 표준이 아닌 경로에 설치한 경우, "
+"LD_LIBRARY_PATH 환경 변수에 해당 라이브러리 경로를 설정해주어야 합니다."
+
+#. Tag: para
+#: installation.xml:668
+#, no-c-format
+msgid ""
+"Currently, the <command>make check</command> relies on the <code>PATH</code> "
+"and <code>PGPORT</code> environment variables when performing the checks - "
+"it does <emphasis>not</emphasis> use the PostgreSQL version that may have "
+"been specified using the configuration parameter <command>--with-pgconfig</"
+"command>. So make sure to modify your PATH to match the detected PostgreSQL "
+"installation during configuration or be prepared to deal with the impending "
+"headaches."
+msgstr ""
+"현재, <command>make check</command> 검사들을 실시할 때에는 <code>PATH</code>"
+"와 <code>PGPORT</code> 환경 변수를 따릅니다. PostgreSQL의 설정 매개변수인 "
+"<command>--with-pgconfig</command>에 명시되어 있어도 이것을 적용하지 "
+"<emphasis>않습니다</emphasis>. 따라서, PostgreSQL 설치시의 환경설정과 일치하"
+"도록 PATH를 수정해주십시오."
+
+#. Tag: para
+#: installation.xml:680
+#, no-c-format
+msgid ""
+"If successful, the output of the test should be similar to the following:"
+msgstr "성공하였다면 테스트의 결과는 아래와 비슷하게 나올 것입니다:"
+
+#. Tag: programlisting
+#: installation.xml:685
+#, no-c-format
+msgid ""
+"CUnit - A Unit testing framework for C - Version 2.1-0\n"
+"     http://cunit.sourceforge.net/\n"
+"\n"
+"\n"
+"Suite: print_suite\n"
+"  Test: test_lwprint_default_format ... passed\n"
+"  Test: test_lwprint_format_orders ... passed\n"
+"  Test: test_lwprint_optional_format ... passed\n"
+"  Test: test_lwprint_oddball_formats ... passed\n"
+"  Test: test_lwprint_bad_formats ... passed\n"
+"Suite: misc\n"
+"  Test: test_misc_force_2d ... passed\n"
+"  Test: test_misc_simplify ... passed\n"
+"  Test: test_misc_count_vertices ... passed\n"
+"  Test: test_misc_area ... passed\n"
+"  Test: test_misc_wkb ... passed\n"
+"Suite: ptarray\n"
+"  Test: test_ptarray_append_point ... passed\n"
+"  Test: test_ptarray_append_ptarray ... passed\n"
+"  Test: test_ptarray_locate_point ... passed\n"
+"  Test: test_ptarray_isccw ... passed\n"
+"  Test: test_ptarray_signed_area ... passed\n"
+"  Test: test_ptarray_desegmentize ... passed\n"
+"  Test: test_ptarray_insert_point ... passed\n"
+"  Test: test_ptarray_contains_point ... passed\n"
+"  Test: test_ptarrayarc_contains_point ... passed\n"
+"Suite: PostGIS Computational Geometry Suite\n"
+"  Test: test_lw_segment_side ... passed\n"
+"  Test: test_lw_segment_intersects ... passed\n"
+"  Test: test_lwline_crossing_short_lines ... passed\n"
+"  Test: test_lwline_crossing_long_lines ... passed\n"
+"  Test: test_lwline_crossing_bugs ... passed\n"
+"  Test: test_lwpoint_set_ordinate ... passed\n"
+"  Test: test_lwpoint_get_ordinate ... passed\n"
+"  Test: test_point_interpolate ... passed\n"
+"  Test: test_lwline_clip ... passed\n"
+"  Test: test_lwline_clip_big ... passed\n"
+"  Test: test_lwmline_clip ... passed\n"
+"  Test: test_geohash_point ... passed\n"
+"  Test: test_geohash_precision ... passed\n"
+"  Test: test_geohash ... passed\n"
+"  Test: test_geohash_point_as_int ... passed\n"
+"  Test: test_isclosed ... passed\n"
+"Suite: buildarea\n"
+"  Test: buildarea1 ... passed\n"
+"  Test: buildarea2 ... passed\n"
+"  Test: buildarea3 ... passed\n"
+"  Test: buildarea4 ... passed\n"
+"  Test: buildarea4b ... passed\n"
+"  Test: buildarea5 ... passed\n"
+"  Test: buildarea6 ... passed\n"
+"  Test: buildarea7 ... passed\n"
+"Suite: clean\n"
+"  Test: test_lwgeom_make_valid ... passed\n"
+"Suite: PostGIS Measures Suite\n"
+"  Test: test_mindistance2d_tolerance ... passed\n"
+"  Test: test_rect_tree_contains_point ... passed\n"
+"  Test: test_rect_tree_intersects_tree ... passed\n"
+"  Test: test_lwgeom_segmentize2d ... passed\n"
+"  Test: test_lwgeom_locate_along ... passed\n"
+"  Test: test_lw_dist2d_pt_arc ... passed\n"
+"  Test: test_lw_dist2d_seg_arc ... passed\n"
+"  Test: test_lw_dist2d_arc_arc ... passed\n"
+"  Test: test_lw_arc_length ... passed\n"
+"  Test: test_lw_dist2d_pt_ptarrayarc ... passed\n"
+"  Test: test_lw_dist2d_ptarray_ptarrayarc ... passed\n"
+"Suite: node\n"
+"  Test: test_lwgeom_node ... passed\n"
+"Suite: WKT Out Suite\n"
+"  Test: test_wkt_out_point ... passed\n"
+"  Test: test_wkt_out_linestring ... passed\n"
+"  Test: test_wkt_out_polygon ... passed\n"
+"  Test: test_wkt_out_multipoint ... passed\n"
+"  Test: test_wkt_out_multilinestring ... passed\n"
+"  Test: test_wkt_out_multipolygon ... passed\n"
+"  Test: test_wkt_out_collection ... passed\n"
+"  Test: test_wkt_out_circularstring ... passed\n"
+"  Test: test_wkt_out_compoundcurve ... passed\n"
+"  Test: test_wkt_out_curvpolygon ... passed\n"
+"  Test: test_wkt_out_multicurve ... passed\n"
+"  Test: test_wkt_out_multisurface ... passed\n"
+"Suite: WKT In Suite\n"
+"  Test: test_wkt_in_point ... passed\n"
+"  Test: test_wkt_in_linestring ... passed\n"
+"  Test: test_wkt_in_polygon ... passed\n"
+"  Test: test_wkt_in_multipoint ... passed\n"
+"  Test: test_wkt_in_multilinestring ... passed\n"
+"  Test: test_wkt_in_multipolygon ... passed\n"
+"  Test: test_wkt_in_collection ... passed\n"
+"  Test: test_wkt_in_circularstring ... passed\n"
+"  Test: test_wkt_in_compoundcurve ... passed\n"
+"  Test: test_wkt_in_curvpolygon ... passed\n"
+"  Test: test_wkt_in_multicurve ... passed\n"
+"  Test: test_wkt_in_multisurface ... passed\n"
+"  Test: test_wkt_in_tin ... passed\n"
+"  Test: test_wkt_in_polyhedralsurface ... passed\n"
+"  Test: test_wkt_in_errlocation ... passed\n"
+"Suite: WKB Out Suite\n"
+"  Test: test_wkb_out_point ... passed\n"
+"  Test: test_wkb_out_linestring ... passed\n"
+"  Test: test_wkb_out_polygon ... passed\n"
+"  Test: test_wkb_out_multipoint ... passed\n"
+"  Test: test_wkb_out_multilinestring ... passed\n"
+"  Test: test_wkb_out_multipolygon ... passed\n"
+"  Test: test_wkb_out_collection ... passed\n"
+"  Test: test_wkb_out_circularstring ... passed\n"
+"  Test: test_wkb_out_compoundcurve ... passed\n"
+"  Test: test_wkb_out_curvpolygon ... passed\n"
+"  Test: test_wkb_out_multicurve ... passed\n"
+"  Test: test_wkb_out_multisurface ... passed\n"
+"  Test: test_wkb_out_polyhedralsurface ... passed\n"
+":\n"
+"Suite: Geodetic Suite\n"
+"  Test: test_sphere_direction ... passed\n"
+"  Test: test_sphere_project ... passed\n"
+"  Test: test_lwgeom_area_sphere ... passed\n"
+"  Test: test_signum ... passed\n"
+"  Test: test_gbox_from_spherical_coordinates ... passed\n"
+":\n"
+"  Test: test_geos_noop ... passed\n"
+"Suite: Internal Spatial Trees\n"
+"  Test: test_tree_circ_create ... passed\n"
+"  Test: test_tree_circ_pip ... passed\n"
+"  Test: test_tree_circ_pip2 ... passed\n"
+"  Test: test_tree_circ_distance ... passed\n"
+"Suite: triangulate\n"
+"  Test: test_lwgeom_delaunay_triangulation ... passed\n"
+"Suite: stringbuffer\n"
+"  Test: test_stringbuffer_append ... passed\n"
+"  Test: test_stringbuffer_aprintf ... passed\n"
+"Suite: surface\n"
+"  Test: triangle_parse ... passed\n"
+"  Test: tin_parse ... passed\n"
+"  Test: polyhedralsurface_parse ... passed\n"
+"  Test: surface_dimension ... passed\n"
+"Suite: homogenize\n"
+"  Test: test_coll_point ... passed\n"
+"  Test: test_coll_line ... passed\n"
+"  Test: test_coll_poly ... passed\n"
+"  Test: test_coll_coll ... passed\n"
+"  Test: test_geom ... passed\n"
+"  Test: test_coll_curve ... passed\n"
+"Suite: force_sfs\n"
+"  Test: test_sfs_11 ... passed\n"
+"  Test: test_sfs_12 ... passed\n"
+"  Test: test_sqlmm ... passed\n"
+"Suite: out_gml\n"
+"  Test: out_gml_test_precision ... passed\n"
+"  Test: out_gml_test_srid ... passed\n"
+"  Test: out_gml_test_dims ... passed\n"
+"  Test: out_gml_test_geodetic ... passed\n"
+"  Test: out_gml_test_geoms ... passed\n"
+"  Test: out_gml_test_geoms_prefix ... passed\n"
+"  Test: out_gml_test_geoms_nodims ... passed\n"
+"  Test: out_gml2_extent ... passed\n"
+"  Test: out_gml3_extent ... passed\n"
+"Suite: KML Out Suite\n"
+"  Test: out_kml_test_precision ... passed\n"
+"  Test: out_kml_test_dims ... passed\n"
+"  Test: out_kml_test_geoms ... passed\n"
+"  Test: out_kml_test_prefix ... passed\n"
+"Suite: GeoJson Out Suite\n"
+"  Test: out_geojson_test_precision ... passed\n"
+"  Test: out_geojson_test_dims ... passed\n"
+"  Test: out_geojson_test_srid ... passed\n"
+"  Test: out_geojson_test_bbox ... passed\n"
+"  Test: out_geojson_test_geoms ... passed\n"
+"Suite: SVG Out Suite\n"
+"  Test: out_svg_test_precision ... passed\n"
+"  Test: out_svg_test_dims ... passed\n"
+"  Test: out_svg_test_relative ... passed\n"
+"  Test: out_svg_test_geoms ... passed\n"
+"  Test: out_svg_test_srid ... passed\n"
+"Suite: X3D Out Suite\n"
+"  Test: out_x3d3_test_precision ... passed\n"
+"  Test: out_x3d3_test_geoms ... passed\n"
+"\n"
+"--Run Summary: Type      Total     Ran  Passed  Failed\n"
+"               suites       27      27     n/a       0\n"
+"               tests       198     198     198       0\n"
+"               asserts    1728    1728    1728       0\n"
+"\n"
+"Creating database 'postgis_reg' \n"
+"Loading PostGIS into 'postgis_reg' \n"
+"PostgreSQL 9.3beta1 on x86_64-unknown-linux-gnu, compiled by gcc (Debian "
+"4.4.5-8) 4.4.5, 64-bit\n"
+"  Postgis 2.1.0SVN - r11415 - 2013-05-11 02:48:21\n"
+"  GEOS: 3.4.0dev-CAPI-1.8.0 r3797\n"
+"  PROJ: Rel. 4.7.1, 23 September 2009\n"
+"\n"
+"Running tests\n"
+"\n"
+" loader/Point .............. ok \n"
+" loader/PointM .............. ok \n"
+" loader/PointZ .............. ok \n"
+" loader/MultiPoint .............. ok \n"
+" loader/MultiPointM .............. ok \n"
+" loader/MultiPointZ .............. ok \n"
+" loader/Arc .............. ok \n"
+" loader/ArcM .............. ok \n"
+" loader/ArcZ .............. ok \n"
+" loader/Polygon .............. ok \n"
+" loader/PolygonM .............. ok \n"
+" loader/PolygonZ .............. ok \n"
+" loader/TSTPolygon ......... ok \n"
+" loader/TSIPolygon ......... ok \n"
+" loader/TSTIPolygon ......... ok \n"
+" loader/PointWithSchema ..... ok \n"
+" loader/NoTransPoint ......... ok \n"
+" loader/NotReallyMultiPoint ......... ok \n"
+" loader/MultiToSinglePoint ......... ok \n"
+" loader/ReprojectPts ........ ok \n"
+" loader/ReprojectPtsGeog ........ ok \n"
+" loader/Latin1 .... ok \n"
+" binary .. ok \n"
+" regress .. ok \n"
+" regress_index .. ok \n"
+" regress_index_nulls .. ok \n"
+" regress_selectivity .. ok \n"
+" lwgeom_regress .. ok \n"
+" regress_lrs .. ok \n"
+" removepoint .. ok \n"
+" setpoint .. ok \n"
+" simplify .. ok \n"
+" snaptogrid .. ok \n"
+" summary .. ok \n"
+" affine .. ok \n"
+" empty .. ok \n"
+" measures .. ok \n"
+" legacy .. ok \n"
+" long_xact .. ok \n"
+" ctors .. ok \n"
+" sql-mm-serialize .. ok \n"
+" sql-mm-circularstring .. ok \n"
+" sql-mm-compoundcurve .. ok \n"
+" sql-mm-curvepoly .. ok \n"
+" sql-mm-general .. ok \n"
+" sql-mm-multicurve .. ok \n"
+" sql-mm-multisurface .. ok \n"
+" polyhedralsurface .. ok \n"
+" polygonize .. ok \n"
+" postgis_type_name .. ok \n"
+" geography .. ok \n"
+" out_geometry .. ok \n"
+" out_geography .. ok \n"
+" in_geohash .. ok \n"
+" in_gml .. ok \n"
+" in_kml .. ok \n"
+" iscollection .. ok \n"
+" regress_ogc .. ok \n"
+" regress_ogc_cover .. ok \n"
+" regress_ogc_prep .. ok \n"
+" regress_bdpoly .. ok \n"
+" regress_proj .. ok \n"
+" regress_management .. ok \n"
+" dump .. ok \n"
+" dumppoints .. ok \n"
+" boundary .. ok \n"
+" wmsservers .. ok \n"
+" wkt .. ok \n"
+" wkb .. ok \n"
+" tickets .. ok \n"
+" typmod .. ok \n"
+" remove_repeated_points .. ok \n"
+" split .. ok \n"
+" relate .. ok \n"
+" bestsrid .. ok \n"
+" concave_hull .. ok \n"
+" hausdorff .. ok \n"
+" regress_buffer_params .. ok \n"
+" offsetcurve .. ok \n"
+" relatematch .. ok \n"
+" isvaliddetail .. ok \n"
+" sharedpaths .. ok \n"
+" snap .. ok \n"
+" node .. ok \n"
+" unaryunion .. ok \n"
+" clean .. ok \n"
+" relate_bnr .. ok \n"
+" delaunaytriangles .. ok \n"
+" in_geojson .. ok \n"
+" uninstall .. ok (4112)\n"
+"\n"
+"Run tests: 90"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:689
+#, no-c-format
+msgid "Installation"
+msgstr "설치"
+
+#. Tag: para
+#: installation.xml:691
+#, no-c-format
+msgid "To install PostGIS, type"
+msgstr "PostGIS 설치를 위해서 다음을 입력하십시오."
+
+#. Tag: command
+#: installation.xml:696
+#, no-c-format
+msgid "make install"
+msgstr "make install"
+
+#. Tag: para
+#: installation.xml:699
+#, no-c-format
+msgid ""
+"This will copy the PostGIS installation files into their appropriate "
+"subdirectory specified by the <command>--prefix</command> configuration "
+"parameter. In particular:"
+msgstr ""
+"이것은 <command>--prefix</command> 설정 파라미터에 정의된 하위 경로에 "
+"PostGIS 설치 파일을 복사할 것입니다."
+
+#. Tag: para
+#: installation.xml:707
+#, no-c-format
+msgid ""
+"The loader and dumper binaries are installed in <filename>[prefix]/bin</"
+"filename>."
+msgstr ""
+"로더(loader)와 덤퍼 바이너리 들은 <filename>[prefix]/bin</filename>에 설치됩"
+"니다."
+
+#. Tag: para
+#: installation.xml:714
+#, no-c-format
+msgid ""
+"The SQL files, such as <filename>postgis.sql</filename>, are installed in "
+"<filename>[prefix]/share/contrib</filename>."
+msgstr ""
+"<filename>postgis.sql</filename>와 같은 SQL 파일들은 <filename>[prefix]/"
+"share/contrib</filename>에 설치됩니다."
+
+#. Tag: para
+#: installation.xml:721
+#, no-c-format
+msgid ""
+"The PostGIS libraries are installed in <filename>[prefix]/lib</filename>."
+msgstr "PostGIS 라이브러리들은 <filename>[prefix]/lib</filename>에 설치됩니다."
+
+#. Tag: para
+#: installation.xml:728
+#, no-c-format
+msgid ""
+"If you previously ran the <command>make comments</command> command to "
+"generate the <filename>postgis_comments.sql</filename>, "
+"<filename>raster_comments.sql</filename> file, install the sql file by "
+"running"
+msgstr ""
+"만약 기존에 <filename>postgis_comments.sql</filename>, "
+"<filename>raster_comments.sql</filename>  파일을 생성하기 위해 <command>make "
+"comments</command> 명령어를 실행한 적이 있으시다면, 다음을 실행해 sql 파일을 "
+"설치하십시오."
+
+#. Tag: command
+#: installation.xml:735
+#, no-c-format
+msgid "make comments-install"
+msgstr "make comments-install"
+
+#. Tag: para
+#: installation.xml:739
+#, no-c-format
+msgid ""
+"<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</"
+"filename>, <filename>topology_comments.sql</filename> was separated from the "
+"typical build and installation targets since with it comes the extra "
+"dependency of <command>xsltproc</command>."
+msgstr ""
+"<command>xsltproc</command>의 적용 이후 일반적인 설치로부터 "
+"<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</"
+"filename>, <filename>topology_comments.sql</filename>는 분리되었습니다."
+
+#. Tag: title
+#: installation.xml:749
+#, no-c-format
+msgid "Create a spatially-enabled database on PostgreSQL lower than 9.1"
+msgstr "PostgreSQL 9.1 미만 버전에 공간정보 가능 데이터베이스 생성하기"
+
+#. Tag: para
+#: installation.xml:751
+#, no-c-format
+msgid ""
+"The first step in creating a PostGIS database is to create a simple "
+"PostgreSQL database."
+msgstr ""
+"PostGIS 데이터베이스를 생성하기 위한 첫 번째 절차는 간단한 PostgreSQL 데이터"
+"베이스를 생성하는 것입니다."
+
+#. Tag: command
+#: installation.xml:757 installation.xml:854
+#, no-c-format
+msgid "createdb [yourdatabase]"
+msgstr "createdb [yourdatabase]"
+
+#. Tag: para
+#: installation.xml:760
+#, no-c-format
+msgid ""
+"Many of the PostGIS functions are written in the PL/pgSQL procedural "
+"language. As such, the next step to create a PostGIS database is to enable "
+"the PL/pgSQL language in your new database. This is accomplish by the "
+"command below command. For PostgreSQL 8.4+, this is generally already "
+"installed"
+msgstr ""
+"많은 PostGIS 기능들은 PL/pgSQL procedural 언어로 쓰여져 있습니다. 따라서, 새"
+"로운 데이터베이스에 PL/pgSQL을 활성화하는 것이 PostGIS 데이터베이스를 생성하"
+"기 위한 두 번째 단계입니다. 이는 아래 명령어를 통해 가능하고, PostgreSQL 8.4"
+"이상 버전의 경우에는 일반적으로 이미 설치되어 있습니다."
+
+#. Tag: command
+#: installation.xml:768
+#, no-c-format
+msgid "createlang plpgsql [yourdatabase]"
+msgstr "createlang plpgsql [yourdatabase]"
+
+#. Tag: para
+#: installation.xml:771
+#, no-c-format
+msgid ""
+"Now load the PostGIS object and function definitions into your database by "
+"loading the <filename>postgis.sql</filename> definitions file (located in "
+"<filename>[prefix]/share/contrib</filename> as specified during the "
+"configuration step)."
+msgstr ""
+"이제 <filename>postgis.sql</filename> definitions 파일을 로딩함으로써 (환경설"
+"정시  <filename>[prefix]/share/contrib</filename>에 경로 설정) PostGIS 객체 "
+"및 함수 정의를 데이터베이스에 로딩하십시오. "
+
+#. Tag: command
+#: installation.xml:779
+#, no-c-format
+msgid "psql -d [yourdatabase] -f postgis.sql"
+msgstr "psql -d [yourdatabase] -f postgis.sql"
+
+#. Tag: para
+#: installation.xml:782
+#, no-c-format
+msgid ""
+"For a complete set of EPSG coordinate system definition identifiers, you can "
+"also load the <filename>spatial_ref_sys.sql</filename> definitions file and "
+"populate the <varname>spatial_ref_sys</varname> table. This will permit you "
+"to perform ST_Transform() operations on geometries."
+msgstr ""
+"EPSG 좌표계 정의 식별자의 완전한 세팅을 위해서는<filename>spatial_ref_sys."
+"sql</filename> 정의 파일을 로드 할 수 있으며 <varname>spatial_ref_sys</"
+"varname> 테이블을 추가할 수 있습니다. 이것은 ST_Transform() 기능을 수행할 수 "
+"있게 해줍니다."
+
+#. Tag: command
+#: installation.xml:790
+#, no-c-format
+msgid "psql -d [yourdatabase] -f spatial_ref_sys.sql"
+msgstr "psql -d [yourdatabase] -f spatial_ref_sys.sql"
+
+#. Tag: para
+#: installation.xml:793
+#, no-c-format
+msgid ""
+"If you wish to add comments to the PostGIS functions, the final step is to "
+"load the <filename>postgis_comments.sql</filename> into your spatial "
+"database. The comments can be viewed by simply typing <command>\\dd "
+"[function_name]</command> from a <command>psql</command> terminal window."
+msgstr ""
+"주석을 PostGIS 기능에 추가하고 싶은 경우에는 공간 데이터베이스에 "
+"<filename>postgis_comments.sql</filename> 을 로딩하는 것이 첫 번째 과정입니"
+"다. 주석은 <command>psql</command> 터미널 창에서 <command>\\dd "
+"[function_name]</command>을 입력하여 조회할 수 있습니다. "
+
+#. Tag: command
+#: installation.xml:801
+#, no-c-format
+msgid "psql -d [yourdatabase] -f postgis_comments.sql"
+msgstr "psql -d [yourdatabase] -f postgis_comments.sql"
+
+#. Tag: para
+#: installation.xml:804
+#, no-c-format
+msgid "Install raster support"
+msgstr "래스터 지원 설치"
+
+#. Tag: command
+#: installation.xml:809
+#, no-c-format
+msgid "psql -d [yourdatabase] -f rtpostgis.sql"
+msgstr "psql -d [yourdatabase] -f rtpostgis.sql"
+
+#. Tag: para
+#: installation.xml:812
+#, no-c-format
+msgid ""
+"Install raster support comments. This will provide quick help info for each "
+"raster function using psql or PgAdmin or any other PostgreSQL tool that can "
+"show function comments"
+msgstr ""
+"래스터 지원 주석 설치. psql, PgAdmin또는 다른 PostgreSQL 도구에서 각각의 래스"
+"터 기능을 위한 빠른 도움말을 제공합니다."
+
+#. Tag: command
+#: installation.xml:818
+#, no-c-format
+msgid "psql -d [yourdatabase] -f raster_comments.sql"
+msgstr "psql -d [yourdatabase] -f raster_comments.sql"
+
+#. Tag: para
+#: installation.xml:820
+#, no-c-format
+msgid "Install topology support"
+msgstr "토폴로지 지원 설치"
+
+#. Tag: command
+#: installation.xml:825
+#, no-c-format
+msgid "psql -d [yourdatabase] -f topology/topology.sql"
+msgstr "psql -d [yourdatabase] -f topology/topology.sql"
+
+#. Tag: para
+#: installation.xml:828
+#, no-c-format
+msgid ""
+"Install topology support comments. This will provide quick help info for "
+"each topology function / type using psql or PgAdmin or any other PostgreSQL "
+"tool that can show function comments"
+msgstr ""
+"토폴로지 지원 주석 설치. Psql, PgAdmin또는 다른 PostgreSQL 도구에서 토폴로지 "
+"기능을 위한 빠른 도움말을 제공합니다."
+
+#. Tag: command
+#: installation.xml:834
+#, no-c-format
+msgid "psql -d [yourdatabase] -f topology/topology_comments.sql"
+msgstr "psql -d [yourdatabase] -f topology/topology_comments.sql"
+
+#. Tag: para
+#: installation.xml:837 installation.xml:874
+#, no-c-format
+msgid ""
+"If you plan to restore an old backup from prior versions in this new db, run:"
+msgstr ""
+"만약 새로운 DB에 기존 버전의 백업을 복원하고 싶다면 다음을 실행하십시오:"
+
+#. Tag: command
+#: installation.xml:838 installation.xml:875
+#, no-c-format
+msgid "psql -d [yourdatabase] -f legacy.sql"
+msgstr "psql -d [yourdatabase] -f legacy.sql"
+
+#. Tag: para
+#: installation.xml:839
+#, no-c-format
+msgid ""
+"There is an alternative <filename>legacy_minimal.sql</filename> you can run "
+"instead which will install barebones needed to recover tables and work with "
+"apps like MapServer and GeoServer. If you have views that use things like "
+"distance / length etc, you'll need the full blown <filename>legacy.sql</"
+"filename>"
+msgstr ""
+"대안으로 <filename>legacy_minimal.sql</filename>이 있습니다. 이는 테이블을 복"
+"원하고 MapServer와 Geoserver와 같은 소프트웨어와 연동하는 등의 설치를 대신하"
+"여 실행할 수 있습니다. 거리 / 길이 등과 같은 뷰 들을 가지고 계신다면 완전한 "
+"<filename>legacy.sql</filename>이 필요합니다."
+
+#. Tag: para
+#: installation.xml:842 installation.xml:877
+#, no-c-format
+msgid ""
+"You can later run <filename>uninstall_legacy.sql</filename> to get rid of "
+"the deprecated functions after you are done with restoring and cleanup."
+msgstr ""
+"복구와 청소를 마친 뒤 앞으로 사용하지 않을 기능들을 제거하기 위해서는 "
+"<filename>uninstall_legacy.sql</filename>을 실행하십시오."
+
+#. Tag: title
+#: installation.xml:846
+#, no-c-format
+msgid "Creating a spatial database using EXTENSIONS"
+msgstr "EXTENSIONS을 활용한 공간 데이터베이스 생성"
+
+#. Tag: para
+#: installation.xml:848
+#, no-c-format
+msgid ""
+"If you are using PostgreSQL 9.1+ and have compiled and installed the "
+"extensions/ postgis modules, you can create a spatial database the new way."
+msgstr ""
+"Postgre 9.1이상 버전을 사용하고 계시고 extensions/ postgis 모듈을 컴파일하고 "
+"설치하였다면 공간 데이터베이스를 이 방법으로 생성하실 수 있습니다. "
+
+#. Tag: para
+#: installation.xml:857
+#, no-c-format
+msgid ""
+"The core postgis extension installs PostGIS geometry, geography, raster, "
+"spatial_ref_sys and all the functions and comments with a simple: "
+"<programlisting>CREATE EXTENSION postgis;</programlisting> command."
+msgstr ""
+"핵심 postgis extension은 PostGIS의 도형. 지리, 래스터, spatial_ref_sys 및 모"
+"든 기능들과 주석을 간단한 명령어로 설치합니다 <programlisting>CREATE "
+"EXTENSION postgis;</programlisting> "
+
+#. Tag: command
+#: installation.xml:863
+#, no-c-format
+msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
+msgstr "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
+
+#. Tag: para
+#: installation.xml:866
+#, no-c-format
+msgid ""
+"Topology is packaged as a separate extension and installable with command:"
+msgstr ""
+"토폴로지는 별도 extension로써 패키지화 되어 있고, 아래의 명령어로 설치 가능합"
+"니다:"
+
+#. Tag: command
+#: installation.xml:871
+#, no-c-format
+msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
+msgstr "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
+
+#. Tag: title
+#: installation.xml:880
+#, no-c-format
+msgid "Installing and Using the address standardizer"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:881
+#, no-c-format
+msgid ""
+"The <code>address_standardizer</code> extension used to be a separate "
+"package that required separate download. From PostGIS 2.2 on, it is now "
+"bundled in. For more information about the address_standardize, what it "
+"does, and how to configure it for your needs, refer to <xref linkend="
+"\"Address_Standardizer\"/>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:883
+#, no-c-format
+msgid ""
+"This standardizer can be used in conjunction with the PostGIS packaged tiger "
+"geocoder extension as a replacement for the <xref linkend=\"Normalize_Address"
+"\"/> discussed. To use as replacement refer to <xref linkend="
+"\"tiger_pagc_address_standardizing\"/>. You can also use it as a building "
+"block for your own geocoder or use it to standardize your addresses for "
+"easier compare of addresses."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:887
+#, no-c-format
+msgid ""
+"The address standardizer relies on PCRE which is usually already installed "
+"on many Nix systems, but you can download the latest at: <ulink url=\"http://"
+"www.pcre.org\">http://www.pcre.org</ulink>. If during <xref linkend="
+"\"installation_configuration\"/>, PCRE is found, then the address "
+"standardizer extension will automatically be built. If you have a custom "
+"pcre install you want to use instead, pass to configure <code>--with-"
+"pcredir=/path/to/pcre</code> where <filename>/path/to/pcre</filename> is the "
+"root folder for your pcre include and lib directories."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:890
+#, no-c-format
+msgid ""
+"For Windows users, the PostGIS 2.1+ bundle is packaged with the "
+"address_standardizer already so no need to compile and can move straight to "
+"<code>CREATE EXTENSION</code> step."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:893
+#, no-c-format
+msgid ""
+"Once you have installed, you can connect to your database and run the SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:894
+#, no-c-format
+msgid "CREATE EXTENSION address_standardizer;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:896
+#, no-c-format
+msgid "The following test requires no rules, gaz, or lex tables"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:897
+#, no-c-format
+msgid ""
+"SELECT num, street, city, state, zip \n"
+" FROM parse_address('1 Devonshire Place, Boston, MA 02109');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:898
+#, no-c-format
+msgid "Output should be"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:899
+#, no-c-format
+msgid ""
+"num |         street         |  city  | state |  zip\n"
+"-----+------------------------+--------+-------+-------\n"
+" 1   | Devonshire Place PH301 | Boston | MA    | 02109"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:901
+#, no-c-format
+msgid "Installing Regex::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:902
+#, no-c-format
+msgid ""
+"Perl Regex:Assemble is no longer needed for compiling address_standardizer "
+"extension since the files it generates are part of the source tree. However "
+"if you need to edit the <filename>usps-st-city-orig.txt</filename> or "
+"<filename>usps-st-city-orig.txt usps-st-city-adds.tx</filename>, you need to "
+"rebuild <filename>parseaddress-stcities.h</filename> which does require "
+"Regex:Assemble."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:903
+#, no-c-format
+msgid "cpan Regexp::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:904
+#, no-c-format
+msgid "or if you are on Ubuntu / Debian you might need to do"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:905
+#, no-c-format
+msgid "sudo perl -MCPAN -e \"install Regexp::Assemble\""
+msgstr ""
+
+#. Tag: title
+#: installation.xml:910
+#, no-c-format
+msgid "Installing, Upgrading Tiger Geocoder and loading data"
+msgstr "Tiger Geocoder의 설치, 업그레이드 및 데이터 불러오기"
+
+#. Tag: para
+#: installation.xml:912
+#, no-c-format
+msgid ""
+"Extras like Tiger geocoder may not be packaged in your PostGIS distribution, "
+"but will always be available in the postgis-&last_release_version;.tar.gz "
+"file. The instructions provided here are also available in the "
+"<filename>extras/tiger_geocoder/tiger_2011/README</filename>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:913
+#, no-c-format
+msgid ""
+"If you are on Windows and you don't have tar installed, you can use <ulink "
+"url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink> to unzip the "
+"PostGIS tarball."
+msgstr ""
+"Tar를 인스톨하지 않으셨고 윈도우를 사용하고 계시다면 PostGIS Tar 파일의 압축"
+"을 풀기 위해 <ulink url=\"http://www.7-zip.org/\">http://www.7-zip.org/</"
+"ulink>를 이용하십시오. "
+
+#. Tag: title
+#: installation.xml:915
+#, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Using Extension"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:916
+#, no-c-format
+msgid ""
+"If you are using PostgreSQL 9.1+ and PostGIS 2.1.0, you can take advantage "
+"of the new extension model for installing tiger geocoder. To do so:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:918
+#, no-c-format
+msgid ""
+"First get binaries for PostGIS 2.1.0 or compile and install as usual. This "
+"should install the necessary extension files as well for tiger geocoder."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:919
+#, no-c-format
+msgid ""
+"Connect to your database via psql or pgAdmin or some other tool and run the "
+"following SQL commands. Note that if you are installing in a database that "
+"already has postgis, you don't need to do the first step. If you have "
+"<varname>fuzzystrmatch</varname> extension already installed, you don't need "
+"to do the second step either."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:920
+#, no-c-format
+msgid ""
+"CREATE EXTENSION postgis;                \n"
+"CREATE EXTENSION fuzzystrmatch;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:921
+#, no-c-format
+msgid ""
+"To confirm your install is working correctly, run this sql in your database:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:922
+#, no-c-format
+msgid ""
+"SELECT na.address, na.streetname,na.streettypeabbrev, na.zip\n"
+"        FROM normalize_address('1 Devonshire Place, Boston, MA 02109') AS na;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:923
+#, no-c-format
+msgid "Which should output"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:924
+#, no-c-format
+msgid ""
+"address | streetname | streettypeabbrev |  zip\n"
+"---------+------------+------------------+-------\n"
+"           1 | Devonshire | Pl               | 02109"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:926
+#, no-c-format
+msgid ""
+"Create a new record in <varname>tiger.loader_platform</varname> table with "
+"the paths of your executables and server."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:927
+#, no-c-format
+msgid ""
+"So for example to create a profile called debbie that follows <code>sh</"
+"code> convention. You would do:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:928
+#, no-c-format
+msgid ""
+"INSERT INTO tiger.loader_platform(os, declare_sect, pgbin, wget, "
+"unzip_command, psql, path_sep, \n"
+"                   loader, environ_set_command, county_process_command)\n"
+"SELECT 'debbie', declare_sect, pgbin, wget, unzip_command, psql, path_sep, \n"
+"           loader, environ_set_command, county_process_command\n"
+"  FROM tiger.loader_platform\n"
+"  WHERE os = 'sh';"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:929
+#, no-c-format
+msgid ""
+"And then edit the paths in the <emphasis>declare_sect</emphasis> column to "
+"those that fit Debbie's pg, unzip,shp2pgsql, psql, etc path locations."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:931
+#, no-c-format
+msgid ""
+"If you don't edit this <varname>loader_platform</varname> table, it will "
+"just contain common case locations of items and you'll have to edit the "
+"generated script after the script is generated."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:933
+#, no-c-format
+msgid ""
+"Then run the <xref linkend=\"Loader_Generate_Nation_Script\"/> and <xref "
+"linkend=\"Loader_Generate_Script\"/> SQL functions make sure to use the name "
+"of your custom profile. So for example to do the nation load using our new "
+"profile we would:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:934
+#, no-c-format
+msgid "SELECT Loader_Generate_Nation_Script('debbie');"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:937
+#, no-c-format
+msgid "Converting a Tiger Geocoder Regular Install to Extension Model"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:938
+#, no-c-format
+msgid ""
+"If you installed the tiger geocoder without using the extension model, you "
+"can convert to the extension model as follows:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:940
+#, no-c-format
+msgid ""
+"Follow instructions in <xref linkend=\"upgrade_tiger_geocoder\"/> for the "
+"non-extension model upgrade."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:941
+#, no-c-format
+msgid ""
+"Connect to your database with psql or pgAdmin and run the following command:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:942
+#, no-c-format
+msgid "CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:949
+#, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Not Using Extensions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:950
+#, no-c-format
+msgid "First install PostGIS using the prior instructions."
+msgstr "우선 앞의 설명에 따라 PostGIS를 설치하십시오. "
+
+#. Tag: para
+#: installation.xml:954 installation.xml:1014
+#, no-c-format
+msgid ""
+"If you don't have an extras folder, download <ulink url="
+"\"&postgis_download_url;\">&postgis_download_url;</ulink>"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:959 installation.xml:1019
+#, no-c-format
+msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgstr "tar xvfz postgis-&last_release_version;.tar.gz"
+
+#. Tag: command
+#: installation.xml:963 installation.xml:1023
+#, no-c-format
+msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgstr "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+
+#. Tag: para
+#: installation.xml:966
+#, no-c-format
+msgid ""
+"Edit the <filename>tiger_loader_2012.sql</filename> to the paths of your "
+"executables server etc or alternatively you can update the "
+"<varname>loader_platform</varname> table once installed. If you don't edit "
+"this file or the <varname>loader_platform</varname> table, it will just "
+"contain common case locations of items and you'll have to edit the generated "
+"script after the fact when you run the <xref linkend="
+"\"Loader_Generate_Nation_Script\"/> and <xref linkend="
+"\"Loader_Generate_Script\"/> SQL functions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:968
+#, no-c-format
+msgid ""
+"If you are installing Tiger geocoder for the first time edit either the "
+"<filename>create_geocode.bat</filename> script If you are on windows or the "
+"<filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with "
+"your PostgreSQL specific settings and run the corresponding script from the "
+"commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:972
+#, no-c-format
+msgid ""
+"Verify that you now have a <varname>tiger</varname> schema in your database "
+"and that it is part of your database search_path. If it is not, add it with "
+"a command something along the line of:"
+msgstr ""
+"<varname>tiger</varname> 스키마가 데이터베이스에 있는 지와 사용제 데이터베이"
+"스 search_path에 해당되는 지를 확인하십시오. 안되어 있다면 아래 명령을 함께 "
+"추가하십시오."
+
+#. Tag: programlisting
+#: installation.xml:972
+#, no-c-format
+msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
+msgstr "ALTER DATABASE geocoder SET search_path=public, tiger;"
+
+#. Tag: para
+#: installation.xml:973
+#, no-c-format
+msgid ""
+"The normalizing address functionality works more or less without any data "
+"except for tricky addresses. Run this test and verify things look like this:"
+msgstr ""
+"표준화 주소 기능은 까다로운 주소를 제외하고는 동작합니다. 아래와 비슷하게 나"
+"오는지 테스트 해보십시오."
+
+#. Tag: programlisting
+#: installation.xml:974
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"pretty_address\n"
+"---------------------------------------\n"
+"202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"pretty_address\n"
+"---------------------------------------\n"
+"202 E Fremont St, Las Vegas, NV 89101"
+
+#. Tag: title
+#: installation.xml:977
+#, no-c-format
+msgid "Using Address Standardizer Extension with Tiger geocoder"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:978
+#, no-c-format
+msgid ""
+"One of the many complaints of folks is the address normalizer function <xref "
+"linkend=\"Normalize_Address\"/> function that normalizes an address for "
+"prepping before geocoding. The normalizer is far from perfect and trying to "
+"patch its imperfectness takes a vast amount of resources. As such we have "
+"integrated with another project that has a much better address standardizer "
+"engine. To use this new address_standardizer, you compile the extension as "
+"described in <xref linkend=\"installing_pagc_address_standardizer\"/> and "
+"install as an extension in your database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:981
+#, no-c-format
+msgid ""
+"Once you install this extension in the same database as you have installed "
+"<code>postgis_tiger_geocoder</code>, then the <xref linkend="
+"\"Pagc_Normalize_Address\"/> can be used instead of <xref linkend="
+"\"Normalize_Address\"/>. This extension is tiger agnostic, so can be used "
+"with other data sources such as international addresses. The tiger geocoder "
+"extension does come packaged with its own custom versions of <xref linkend="
+"\"rulestab\"/> ( <code>tiger.pagc_rules</code>) , <xref linkend=\"gaztab\"/> "
+"(<code>tiger.pagc_gaz</code>), and <xref linkend=\"lextab\"/> (<code>tiger."
+"pagc_lex</code>). These you can add and update to improve your standardizing "
+"experience for your own needs."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:984
+#, no-c-format
+msgid "Loading Tiger Data"
+msgstr "Tiger Data 불러오기"
+
+#. Tag: para
+#: installation.xml:985
+#, no-c-format
+msgid ""
+"The instructions for loading data are available in a more detailed form in "
+"the <filename>extras/tiger_geocoder/tiger_2011/README</filename>. This just "
+"includes the general steps."
+msgstr ""
+"Tiger 데이터를 로딩하기 위한 보다 자세한 설명은 <filename>extras/"
+"tiger_geocoder/tiger_2011/README</filename>에서 이용 가능합니다. 여기서는 일"
+"반적인 과정만 안내해 드립니다."
+
+#. Tag: para
+#: installation.xml:986
+#, no-c-format
+msgid ""
+"The load process downloads data from the census website for the respective "
+"nation files, states requested, extracts the files, and then loads each "
+"state into its own separate set of state tables. Each state table inherits "
+"from the tables defined in <varname>tiger</varname> schema so that its "
+"sufficient to just query those tables to access all the data and drop a set "
+"of state tables at any time using the <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/> if you need to reload a state or "
+"just don't need a state anymore."
+msgstr ""
+"인구조사 웹사이트에서 필요한 주의 데이터를 다운로드 받습니다. 압축을 풀면 주 "
+"단위로 별개의 세트로 이뤄져 있습니다. 각 주 테이블은 <varname>tiger</varname>"
+"스키마 정의에 따라 접속 및 쿼리 할 수 있고, <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/>를 다시 불러오거나 삭제하는 등의 작업"
+"을 실시할 수 있습니다."
+
+#. Tag: para
+#: installation.xml:988
+#, no-c-format
+msgid "In order to be able to load data you'll need the following tools:"
+msgstr "데이터를 로딩하기 위해서는 다음과 같은 도구들이 필요합니다:"
+
+#. Tag: para
+#: installation.xml:990
+#, no-c-format
+msgid "A tool to unzip the zip files from census website."
+msgstr "인구조사 웹사이트에서 받은 압축 파일을 풀기 위한 툴"
+
+#. Tag: para
+#: installation.xml:991
+#, no-c-format
+msgid ""
+"For Unix like systems: <varname>unzip</varname> executable which is usually "
+"already installed on most Unix like platforms."
+msgstr ""
+"Unix 계열 시스템에서는 대부분 <varname>unzip</varname>으로 해제할 수 있습니"
+"다."
+
+#. Tag: para
+#: installation.xml:992
+#, no-c-format
+msgid ""
+"For Windows, 7-zip which is a free compress/uncompress tool you can download "
+"from <ulink url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink>"
+msgstr ""
+"윈도우의 경우, 무료 압축/압축해제 툴인 7-zip이 <ulink url=\"http://www.7-zip."
+"org/\">http://www.7-zip.org/</ulink>에서 다운로드 가능합니다."
+
+#. Tag: para
+#: installation.xml:994
+#, no-c-format
+msgid ""
+"<filename>shp2pgsql</filename> commandline which is installed by default "
+"when you install PostGIS."
+msgstr "PostGIS 기본 설치시 설치되는 <filename>shp2pgsql</filename> 명령"
+
+#. Tag: para
+#: installation.xml:995
+#, no-c-format
+msgid ""
+"<filename>wget</filename> which is a web grabber tool usually installed on "
+"most Unix/Linux systems."
+msgstr ""
+"웹 다운로드 툴인 <filename>wget</filename>은 대부분의Unix/Linux 시스템에 설치"
+"되어 있습니다."
+
+#. Tag: para
+#: installation.xml:996
+#, no-c-format
+msgid ""
+"If you are on windows, you can get pre-compiled binaries from <ulink url="
+"\"http://gnuwin32.sourceforge.net/packages/wget.htm\">http://gnuwin32."
+"sourceforge.net/packages/wget.htm</ulink>"
+msgstr ""
+"윈도우를 사용 중이면 <ulink url=\"http://gnuwin32.sourceforge.net/packages/"
+"wget.htm\">http://gnuwin32.sourceforge.net/packages/wget.htm</ulink>에서 다운"
+"로드 가능합니다."
+
+#. Tag: para
+#: installation.xml:999
+#, no-c-format
+msgid ""
+"If you are upgrading from tiger_2010, you'll need to first generate and run "
+"<xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>. Before you load any "
+"state data, you need to load the nation wide data which you do with <xref "
+"linkend=\"Loader_Generate_Nation_Script\"/>. Which will generate a loader "
+"script for you. <xref linkend=\"Loader_Generate_Nation_Script\"/> is a one-"
+"time step that should be done for upgrading (from 2010) and for new installs."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1001
+#, no-c-format
+msgid ""
+"To load state data refer to <xref linkend=\"Loader_Generate_Script\"/> to "
+"generate a data load script for your platform for the states you desire. "
+"Note that you can install these piecemeal. You don't have to load all the "
+"states you want all at once. You can load them as you need them."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1004
+#, no-c-format
+msgid ""
+"After the states you desire have been loaded, make sure to run the: "
+"<programlisting>SELECT install_missing_indexes();</programlisting> as "
+"described in <xref linkend=\"Install_Missing_Indexes\"/>."
+msgstr ""
+"원하는 데이터가 로딩이 된 후  <xref linkend=\"Install_Missing_Indexes\"/>에"
+"서 설명된 대로 다음을 실행하십시오: <programlisting>SELECT "
+"install_missing_indexes();</programlisting>"
+
+#. Tag: para
+#: installation.xml:1006
+#, no-c-format
+msgid ""
+"To test that things are working as they should, try to run a geocode on an "
+"address in your state using <xref linkend=\"Geocode\"/>"
+msgstr ""
+"실행이 잘되는지 확인하려면  <xref linkend=\"Geocode\"/>를 이용하여 해당 주의 "
+"주소를 변환시켜 보십시오. "
+
+#. Tag: title
+#: installation.xml:1009
+#, no-c-format
+msgid "Upgrading your Tiger Geocoder Install"
+msgstr "Tiger Geocoder 업그레이드"
+
+#. Tag: para
+#: installation.xml:1010
+#, no-c-format
+msgid ""
+"If you have Tiger Geocoder packaged with 2.0+ already installed, you can "
+"upgrade the functions at any time even from an interim tar ball if there are "
+"fixes you badly need. This will only work for Tiger geocoder not installed "
+"with extensions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1026
+#, no-c-format
+msgid ""
+"Locate the <filename>upgrade_geocoder.bat</filename> script If you are on "
+"windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/"
+"Unix/Mac OSX. Edit the file to have your postgis database credentials."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1029
+#, no-c-format
+msgid ""
+"If you are upgrading from 2010 or 2011, make sure to unremark out the loader "
+"script line so you get the latest script for loading 2012 data."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1030
+#, no-c-format
+msgid "Then run th corresponding script from the commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1034
+#, no-c-format
+msgid ""
+"Next drop all nation tables and load up the new ones. Generate a drop script "
+"with this SQL statement as detailed in <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/>"
+msgstr ""
+"다음으로 모든 nation 테이블을 drop 하고 새로 불러옵니다. 이 SQL 문장으로 "
+"drop 스크립트를 만듭니다. 자세한 내용은 다음을 참고하십시오. <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/>"
+
+#. Tag: programlisting
+#: installation.xml:1035
+#, no-c-format
+msgid "SELECT drop_nation_tables_generate_script();"
+msgstr "SELECT drop_nation_tables_generate_script();"
+
+#. Tag: para
+#: installation.xml:1036
+#, no-c-format
+msgid "Run the generated drop SQL statements."
+msgstr "생성된 drop SQL 문장을 실행하십시오."
+
+#. Tag: para
+#: installation.xml:1037
+#, no-c-format
+msgid ""
+"Generate a nation load script with this SELECT statement as detailed in "
+"<xref linkend=\"Loader_Generate_Nation_Script\"/>"
+msgstr ""
+"이 SELECT 구문으로 nation load 스크립트를 생성합니다. 자세한 내용을 다음을 참"
+"고하십시오. <xref linkend=\"Loader_Generate_Nation_Script\"/>"
+
+#. Tag: emphasis
+#: installation.xml:1038
+#, no-c-format
+msgid "For windows"
+msgstr "윈도우용"
+
+#. Tag: programlisting
+#: installation.xml:1039
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr "SELECT loader_generate_nation_script('windows');"
+
+#. Tag: emphasis
+#: installation.xml:1040
+#, no-c-format
+msgid "For unix/linux"
+msgstr "unix/linux 용"
+
+#. Tag: programlisting
+#: installation.xml:1041
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr "SELECT loader_generate_nation_script('sh');"
+
+#. Tag: para
+#: installation.xml:1042
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on "
+"how to run the generate script. This only needs to be done once."
+msgstr ""
+"생성된 스크립트를 어떻게 실행하는지 배우시려면 <xref linkend="
+"\"tiger_geocoder_loading_data\"/>을 참고하십시오. 이것은 단지 한번만 하면 됩"
+"니다."
+
+#. Tag: para
+#: installation.xml:1043
+#, no-c-format
+msgid ""
+"You can have a mix of 2010/2011 state tables and can upgrade each state "
+"separately. Before you upgrade a state to 2011, you first need to drop the "
+"2010 tables for that state using <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/>."
+msgstr ""
+"사용자는 2010/2011 state 테이블을 합칠 수도 있고 각 state 별로 업그레이드 할 "
+"수도 있습니다. state를 2011로 업데이트 하기 전에, <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/>을 이용해 2010 테이블들을 drop 해야 합"
+"니다. "
+
+#. Tag: title
+#: installation.xml:1049
+#, no-c-format
+msgid "Create a spatially-enabled database from a template"
+msgstr "템플릿을 이용하여 공간 데이터베이스 생성하기"
+
+#. Tag: para
+#: installation.xml:1051
+#, no-c-format
+msgid ""
+"Some packaged distributions of PostGIS (in particular the Win32 installers "
+"for PostGIS >= 1.1.5) load the PostGIS functions into a template database "
+"called <varname>template_postgis</varname>. If the "
+"<varname>template_postgis</varname> database exists in your PostgreSQL "
+"installation then it is possible for users and/or applications to create "
+"spatially-enabled databases using a single command. Note that in both cases, "
+"the database user must have been granted the privilege to create new "
+"databases."
+msgstr ""
+"일부 PostGIS 배포 패키지(특히 PostGIS1.1.5 이상 버전의 Win32 인스톨러)는 "
+"<varname>template_postgis</varname>라 불리는 템플릿 데이터베이스를 포함하고 "
+"있습니다. PostgreSQL에 <varname>template_postgis</varname> 데이터베이스가 존"
+"재하고 있다면 사용자 또는 응용프로그램에서 공간 데이터베이스를 간단한 명령어"
+"를 통해 생성 가능합니다. 두 경우 모두 새로운 데이터베이스들을 생성할 수 있는 "
+"권한을 사용자가 가지고 있어야 한다는 점을 주의하십시오."
+
+#. Tag: para
+#: installation.xml:1062
+#, no-c-format
+msgid "From the shell:"
+msgstr "쉘에서:"
+
+#. Tag: programlisting
+#: installation.xml:1066
+#, no-c-format
+msgid "# createdb -T template_postgis my_spatial_db"
+msgstr "# createdb -T template_postgis my_spatial_db"
+
+#. Tag: para
+#: installation.xml:1068
+#, no-c-format
+msgid "From SQL:"
+msgstr "SQL 에서:"
+
+#. Tag: programlisting
+#: installation.xml:1072
+#, no-c-format
+msgid "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
+msgstr "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
+
+#. Tag: title
+#: installation.xml:1076
+#, no-c-format
+msgid "Upgrading"
+msgstr "업그레이드"
+
+#. Tag: para
+#: installation.xml:1078
+#, no-c-format
+msgid ""
+"Upgrading existing spatial databases can be tricky as it requires "
+"replacement or introduction of new PostGIS object definitions."
+msgstr ""
+"공간 데이터베이스 업그레이드는 대체할 또는 새로운 PostGIS 객체 정의를 요구하"
+"기 때문에 까다로울 수 있습니다."
+
+#. Tag: para
+#: installation.xml:1083
+#, no-c-format
+msgid ""
+"Unfortunately not all definitions can be easily replaced in a live database, "
+"so sometimes your best bet is a dump/reload process."
+msgstr ""
+"안타깝게도 실제 데이터베이스 내에서 모든 정의들이 쉽게 대체될 수 있지 않습니"
+"다. 그러므로 때론 dump/reload 방식이 최고의 선택일 수 있습니다."
+
+#. Tag: para
+#: installation.xml:1088
+#, no-c-format
+msgid ""
+"PostGIS provides a SOFT UPGRADE procedure for minor or bugfix releases, and "
+"a HARD UPGRADE procedure for major releases."
+msgstr ""
+"PostGIS는 사소하거나 버그 수정 버전을 위한 SOFT UPGRADE와 주요 버전을 위한 "
+"HARD UPGRADE를 제공합니다."
+
+#. Tag: para
+#: installation.xml:1093
+#, no-c-format
+msgid ""
+"Before attempting to upgrade PostGIS, it is always worth to backup your "
+"data. If you use the -Fc flag to pg_dump you will always be able to restore "
+"the dump with a HARD UPGRADE."
+msgstr ""
+"PostGIS 업그레이드에 앞서 데이터를 미리 백업해두시는 것은 언제나 중요합니다. "
+"pg_dump를 할 때 –Fc flag를 이용하면HARD UPGRADE시 dump를 복원할 수 있습니다. "
+
+#. Tag: title
+#: installation.xml:1100
+#, no-c-format
+msgid "Soft upgrade"
+msgstr "소프트 업그레이드"
+
+#. Tag: para
+#: installation.xml:1102
+#, no-c-format
+msgid ""
+"If you installed your database using extensions, you'll need to upgrade "
+"using the extension model as well. If you installed using the old sql script "
+"way, then you should upgrade using the sql script way. Please refer to the "
+"appropriate."
+msgstr ""
+"extension을 포함하여 데이터베이스를 설치하실 경우, extension 모델 또한 업그레"
+"이드 하여야 합니다. 이전 SQL 스크립트 방식으로 설치한 경우, 마찬가지로 SQL 스"
+"크립트 방식으로 업그레이드해야 합니다. 부록을 참고해 주십시오."
+
+#. Tag: title
+#: installation.xml:1105
+#, no-c-format
+msgid "Soft Upgrade Pre 9.1+ or without extensions"
+msgstr "9.1+ 이전이나 extension 없는 소프트 업그레이드"
+
+#. Tag: para
+#: installation.xml:1106
+#, no-c-format
+msgid ""
+"This section applies only to those who installed PostGIS not using "
+"extensions. If you have extensions and try to upgrade with this approach "
+"you'll get messages like:"
+msgstr ""
+"이 단원은 extension 없이 PostGIS를 설치한 경우만 해당됩니다. 만약 extension"
+"가 있으신 상태에서 이 단원에서 설명하는대로 설치를 하시면 아래와 같은 메시지"
+"를 받게 되실 것입니다:"
+
+#. Tag: programlisting
+#: installation.xml:1107
+#, no-c-format
+msgid "can't drop ... because postgis extension depends on it"
+msgstr "can't drop ... because postgis extension depends on it"
+
+#. Tag: para
+#: installation.xml:1108
+#, no-c-format
+msgid ""
+"After compiling and installing (make install) you should find a "
+"<filename>postgis_upgrade.sql</filename> and <filename>rtpostgis_upgrade."
+"sql</filename> in the installation folders. For example <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. Install the "
+"<filename>postgis_upgrade.sql</filename>. If you have raster functionality "
+"installed, you will also need to install the <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. If you are moving "
+"from PostGIS 1.* to PostGIS 2.* or from PostGIS 2.* prior to r7409, you need "
+"to do a HARD UPGRADE."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1112
+#, no-c-format
+msgid "psql -f postgis_upgrade.sql -d your_spatial_database"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1114
+#, no-c-format
+msgid ""
+"The same procedure applies to raster and topology extensions, with upgrade "
+"files named <filename>rtpostgis_upgrade*.sql</filename> and "
+"<filename>topology_upgrade*.sql</filename> respectively. If you need them:"
+msgstr ""
+"<filename>rtpostgis_upgrade*.sql</filename>과 <filename>topology_upgrade*."
+"sql</filename>라는 이름을 가진 파일을 통해 똑같은 절차가 래스터 및 토폴로지 "
+"extension에도 적용됩니다. "
+
+#. Tag: programlisting
+#: installation.xml:1122
+#, no-c-format
+msgid "psql -f rtpostgis_upgrade.sql -d your_spatial_database"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1123
+#, no-c-format
+msgid "psql -f topology_upgrade.sql -d your_spatial_database"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1126
+#, no-c-format
+msgid ""
+"If you can't find the <filename>postgis_upgrade*.sql</filename> specific for "
+"upgrading your version you are using a version too early for a soft upgrade "
+"and need to do a HARD UPGRADE."
+msgstr ""
+"만약 버전 업그레이드를 위해 맞는 <filename>postgis_upgrade*.sql</filename>을 "
+"찾을 수 없다면, 이는 너무 초기 사용하고 계신다는 것을 의미하며 HARD UPGRADE"
+"가 필요합니다."
+
+#. Tag: para
+#: installation.xml:1132
+#, no-c-format
+msgid ""
+"The <xref linkend=\"PostGIS_Full_Version\"/> function should inform you "
+"about the need to run this kind of upgrade using a \"procs need upgrade\" "
+"message."
+msgstr ""
+"The <xref linkend=\"PostGIS_Full_Version\"/>을 이용하면 이러한 종류의 업그레"
+"이드가 필요할 경우 “procs need upgrade” 메시지를 통해 알려드릴 것입니다. "
+
+#. Tag: title
+#: installation.xml:1139
+#, no-c-format
+msgid "Soft Upgrade 9.1+ using extensions"
+msgstr "9.1 버전 이상의 extension을 이용한 소프트 업그래이드"
+
+#. Tag: para
+#: installation.xml:1140
+#, no-c-format
+msgid ""
+"If you originally installed PostGIS with extensions, then you need to "
+"upgrade using extensions as well. Doing a minor upgrade with extensions, is "
+"fairly painless."
+msgstr ""
+"extension과 함께 PostGIS를 설치한 경우 extension 또한 업그레이드 하셔야 합니"
+"다. Extension에 대한 사소한 업그레이드는 어렵지 않습니다. "
+
+#. Tag: programlisting
+#: installation.xml:1141
+#, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;\";"
+msgstr ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;\";"
+
+#. Tag: para
+#: installation.xml:1142
+#, no-c-format
+msgid "If you get an error notice something like:"
+msgstr "만약 다음과 같은 에러 메시지가 보인다면:"
+
+#. Tag: programlisting
+#: installation.xml:1143
+#, no-c-format
+msgid "No migration path defined for ... to &last_release_version;"
+msgstr "No migration path defined for ... to &last_release_version;"
+
+#. Tag: para
+#: installation.xml:1144
+#, no-c-format
+msgid ""
+"Then you'll need to backup your database, create a fresh one as described in "
+"<xref linkend=\"create_new_db_extensions\"/> and then restore your backup "
+"ontop of this new database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1145
+#, no-c-format
+msgid "If you get a notice message like:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1146
+#, no-c-format
+msgid ""
+"Version \"&last_release_version;\" of extension \"postgis\" is already "
+"installed"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1147
+#, no-c-format
+msgid ""
+"Then everything is already up to date and you can safely ignore it. "
+"<emphasis role=\"bold\">UNLESS</emphasis> you're attempting to upgrade from "
+"an SVN version to the next (which doesn't get a new version number); in that "
+"case you can append \"next\" to the version string, and next time you'll "
+"need to drop the \"next\" suffix again:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1153
+#, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;next\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;next\";"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1154
+#, no-c-format
+msgid ""
+"If you installed PostGIS originally without a version specified, you can "
+"often skip the reinstallation of postgis extension before restoring since "
+"the backup just has <code>CREATE EXTENSION postgis</code> and thus picks up "
+"the newest latest version during restore."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1161
+#, no-c-format
+msgid "Hard upgrade"
+msgstr "하드 업그래이드"
+
+#. Tag: para
+#: installation.xml:1163
+#, no-c-format
+msgid ""
+"By HARD UPGRADE we mean full dump/reload of postgis-enabled databases. You "
+"need a HARD UPGRADE when PostGIS objects' internal storage changes or when "
+"SOFT UPGRADE is not possible. The <link linkend=\"release_notes\">Release "
+"Notes</link> appendix reports for each version whether you need a dump/"
+"reload (HARD UPGRADE) to upgrade."
+msgstr ""
+"HARD UPGRADE는 full dump/reload를 의미합니다. HARD UPGRADE는 PostGIS 객체의 "
+"내부 스토리지가 변화하지만 SOFT UPGRADE는 그렇지 않습니다. <link linkend="
+"\"release_notes\">Release Notes</link> 부록에서 덤프/리로드(하드 업그레이드)"
+"가 필요한 버전에 대해 알려줍니다. "
+
+#. Tag: para
+#: installation.xml:1172
+#, no-c-format
+msgid ""
+"The dump/reload process is assisted by the postgis_restore.pl script which "
+"takes care of skipping from the dump all definitions which belong to PostGIS "
+"(including old ones), allowing you to restore your schemas and data into a "
+"database with PostGIS installed without getting duplicate symbol errors or "
+"bringing forward deprecated objects."
+msgstr ""
+"덤프/리로드 프로세스는 PostGIS(구 버전들 포함)의 덤프를 건너뛸 수 있도록 하"
+"는 postgis_restore.pl script의 지원을 받습니다. 이것은 심볼 등 중복 파일로 인"
+"한 문제나 더 이상 사용되지 않는 객체들을 불러오지 않고 설치된 PostGIS의 데이"
+"터베이스에 스키마와 데이터가 복구할 수 있게 합니다. "
+
+#. Tag: para
+#: installation.xml:1181
+#, no-c-format
+msgid ""
+"Supplementary instructions for windows users are available at <ulink url="
+"\"http://trac.osgeo.org/postgis/wiki/UsersWikiWinUpgrade\">Windows Hard "
+"upgrade</ulink>."
+msgstr ""
+"윈도우 사용자를 위한 추가적인 지침이 <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/UsersWikiWinUpgrade\">Windows Hard upgrade</ulink>에 있습니다."
+
+#. Tag: para
+#: installation.xml:1184
+#, no-c-format
+msgid "The Procedure is as follows:"
+msgstr "절차는 다음과 같습니다:"
+
+#. Tag: para
+#: installation.xml:1192
+#, no-c-format
+msgid ""
+"Create a \"custom-format\" dump of the database you want to upgrade (let's "
+"call it <varname>olddb</varname>) include binary blobs (-b) and verbose (-v) "
+"output. The user can be the owner of the db, need not be postgres super "
+"account."
+msgstr ""
+"binary blobs이 있는 경우 (-b) 및 진행 상세정보를 원하면 (-v) 옵션을 포함하여 "
+"업그레이드를 원하는 데이터베이스(<varname>olddb</varname>라 부릅시다)의 "
+"\"custom-format\" 덤프를 생성하십시오. 사용자는 데이터베이스의 소유자이면 되"
+"며, postgres 슈퍼 계정일 필요는 없습니다."
+
+#. Tag: programlisting
+#: installation.xml:1200
+#, no-c-format
+msgid ""
+"pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb."
+"backup\" olddb"
+msgstr ""
+"pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb."
+"backup\" olddb"
+
+#. Tag: para
+#: installation.xml:1206
+#, no-c-format
+msgid ""
+"Do a fresh install of PostGIS in a new database -- we'll refer to this "
+"database as <varname>newdb</varname>. Please refer to <xref linkend="
+"\"create_new_db\"/> and <xref linkend=\"create_new_db_extensions\"/> for "
+"instructions on how to do this."
+msgstr ""
+"<varname>newdb</varname>라 칭할 새로운 데이터베이스를 만드십시오. 어떻게 하는"
+"지 알고 싶다면  <xref linkend=\"create_new_db\"/>와 <xref linkend="
+"\"create_new_db_extensions\"/>을 참조하십시오."
+
+#. Tag: para
+#: installation.xml:1213
+#, no-c-format
+msgid ""
+"The spatial_ref_sys entries found in your dump will be restored, but they "
+"will not override existing ones in spatial_ref_sys. This is to ensure that "
+"fixes in the official set will be properly propagated to restored databases. "
+"If for any reason you really want your own overrides of standard entries "
+"just don't load the spatial_ref_sys.sql file when creating the new db."
+msgstr ""
+"덤프에서 발견되는 spatial_ref_sys 목록은 복구되지만 spatial_ref_sys에 있는 항"
+"목을 덮어 쓰지는 않을 것입니다. 이것은 공식 세트에서 변경된 것이 복구된 데이"
+"터베이스와 맞도록 보장하기 위한 것입니다. 만약 어떤 이유로 덮어쓰기를 원하신"
+"다면 새 DB를 생성할 때 spatial_ref_sys.sql을 로드 하지 마십시오."
+
+#. Tag: para
+#: installation.xml:1223
+#, no-c-format
+msgid ""
+"If your database is really old or you know you've been using long deprecated "
+"functions in your views and functions, you might need to load "
+"<filename>legacy.sql</filename> for all your functions and views etc. to "
+"properly come back. Only do this if _really_ needed. Consider upgrading your "
+"views and functions before dumping instead, if possible. The deprecated "
+"functions can be later removed by loading <filename>uninstall_legacy.sql</"
+"filename>."
+msgstr ""
+"가지고 계신 데이터베이스가 아주 구버전이거나 가지고 계신 뷰나 기능들의 기능들"
+"이 더 이상 사용되지 않는다면 모든 함수, 뷰, 기타가 잘 구성되도록 "
+"<filename>legacy.sql</filename> 로딩을 필요로 할 수도 있습니다. _정말로_ 필요"
+"할 경우에만 이를 실행하십시오. 가능하다면 덤핑을 하기 전에 뷰 및 기능들을 업"
+"그레이드 할 수 있는지 먼저 확인하십시오. <filename>uninstall_legacy.sql</"
+"filename>을 통해 더 이상 사용되지 않고 앞으로는 사라지게 될 기능들을 제거할 "
+"수 있습니다."
+
+#. Tag: para
+#: installation.xml:1239
+#, no-c-format
+msgid ""
+"Restore your backup into your fresh <varname>newdb</varname> database using "
+"postgis_restore.pl. Unexpected errors, if any, will be printed to the "
+"standard error stream by psql. Keep a log of those."
+msgstr ""
+"postgis_restore.pl을 사용하여 새로운 <varname>newdb</varname>데이터베이스에 "
+"백업을 복구시키십시오. 예상치 못한 에러들이 발생하면 psql에 의해 표시될 것입"
+"니다. 그 결과 로그를 보관하십시오. "
+
+#. Tag: programlisting
+#: installation.xml:1247
+#, no-c-format
+msgid ""
+"perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost "
+"-p 5432 -U postgres newdb 2> errors.txt"
+msgstr ""
+"perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost "
+"-p 5432 -U postgres newdb 2> errors.txt"
+
+#. Tag: para
+#: installation.xml:1253
+#, no-c-format
+msgid "Errors may arise in the following cases:"
+msgstr "다음과 같은 경우에 에러들이 발생할 수 있습니다:"
+
+#. Tag: para
+#: installation.xml:1259
+#, no-c-format
+msgid ""
+"Some of your views or functions make use of deprecated PostGIS objects. In "
+"order to fix this you may try loading <filename>legacy.sql</filename> script "
+"prior to restore or you'll have to restore to a version of PostGIS which "
+"still contains those objects and try a migration again after porting your "
+"code. If the <filename>legacy.sql</filename> way works for you, don't forget "
+"to fix your code to stop using deprecated functions and drop them loading "
+"<filename>uninstall_legacy.sql</filename>."
+msgstr ""
+"일부 뷰 또는 기능에서 더 이상 사용되지 않고 사라지게 될 PosgtGIS 객체들을 사"
+"용하는 경우입니다. 이러한 문제를 해결하기 위해서 복구에 앞서<filename>legacy."
+"sql</filename>를 로딩하거나 해당 객체들을 PostGIS에 복구한 다음 마이그레이션"
+"을 다시 시도해 보십시오. <filename>legacy.sql</filename>을 이용하는 방법이 "
+"잘 작동했다면, 사용자 코드에서 더 이상 유효하지 않은 함수의 사용을 중단하고 "
+"<filename>uninstall_legacy.sql</filename>을 로딩해 이것들을 제거하는 것을 잊"
+"지 마십시오."
+
+#. Tag: para
+#: installation.xml:1271
+#, no-c-format
+msgid ""
+"Some custom records of spatial_ref_sys in dump file have an invalid SRID "
+"value. Valid SRID values are bigger than 0 and smaller than 999000. Values "
+"in the 999000.999999 range are reserved for internal use while values > "
+"999999 can't be used at all. All your custom records with invalid SRIDs will "
+"be retained, with those > 999999 moved into the reserved range, but the "
+"spatial_ref_sys table would loose a check constraint guarding for that "
+"invariant to hold and possibly also its primary key ( when multiple invalid "
+"SRIDS get converted to the same reserved SRID value )."
+msgstr ""
+"덤프 파일 중 spatial_ref_sys의 사용자 레코드에 잘못된 SRID 값이 있는 경우입니"
+"다. 올바른 SRID 값은 0보다 크며 999000 보다 작습니다. 999000.999999 범위 내 "
+"값들은 내부 사용을 위한 것이고, 999999보다 큰 값들은 사용될 수 없습니다. 인"
+"식 불가능한 SIRD의 모든 커스텀 기록들은 유지됩니다. 999999보다 큰 모든 기록들"
+"은 보관되는 범위로 이동되지만 spatial_ref_sys 테이블을 변함없이 유지하지 위"
+"한 체크 제약 가이드와 기본키는 유실될 수 있습니다. (다수의 인식 불가능한 "
+"SRIDS가 똑같은 예약 SRID 값으로 전환되는 경우)."
+
+#. Tag: para
+#: installation.xml:1285
+#, no-c-format
+msgid ""
+"In order to fix this you should copy your custom SRS to a SRID with a valid "
+"value (maybe in the 910000..910999 range), convert all your tables to the "
+"new srid (see <xref linkend=\"UpdateGeometrySRID\"/>), delete the invalid "
+"entry from spatial_ref_sys and re-construct the check(s) with:"
+msgstr ""
+"이 문제를 해결하기 위해선 사용자 SRS를 유효한 값의 SRID로 복사하고(아마도"
+"910000..910999 범위), 모든 테이블들을 새로운 SRID로 전환하셔야 합니다. "
+"(<xref linkend=\"UpdateGeometrySRID\"/> 참조), 또한 spatial_ref_sys에서 잘못"
+"된 목록을 지우고 check(들)을 다음처럼 재구축 하십시오:"
+
+#. Tag: programlisting
+#: installation.xml:1292
+#, no-c-format
+msgid ""
+"ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check "
+"(srid > 0 AND srid < 999000 );"
+msgstr ""
+"ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check "
+"(srid > 0 AND srid < 999000 );"
+
+#. Tag: programlisting
+#: installation.xml:1294
+#, no-c-format
+msgid "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
+msgstr "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
+
+#. Tag: title
+#: installation.xml:1305
+#, no-c-format
+msgid "Common Problems during installation"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1306
+#, no-c-format
+msgid ""
+"There are several things to check when your installation or upgrade doesn't "
+"go as you expected."
+msgstr ""
+"인스톨이나 업그레이드 시 잘 되지 않을 경우 확인해야 할 몇 가지 사항은 아래와 "
+"같습니다."
+
+#. Tag: para
+#: installation.xml:1313
+#, no-c-format
+msgid ""
+"Check that you have installed PostgreSQL &min_postgres_version; or newer, "
+"and that you are compiling against the same version of the PostgreSQL source "
+"as the version of PostgreSQL that is running. Mix-ups can occur when your "
+"(Linux) distribution has already installed PostgreSQL, or you have otherwise "
+"installed PostgreSQL before and forgotten about it. PostGIS will only work "
+"with PostgreSQL &min_postgres_version; or newer, and strange, unexpected "
+"error messages will result if you use an older version. To check the version "
+"of PostgreSQL which is running, connect to the database using psql and run "
+"this query:"
+msgstr ""
+"PostgreSQL &min_postgres_version; 또는 그 보다 최신 버전을 설치하셨는지 체크"
+"하십시오. 현재 작동하고 계시는 PostgreSQL의 버전과 동일한 PostgreSQL 소스 버"
+"전을 바탕으로 컴파일하였는지 확인해주십시오. (Linux) 배포본이 이미 PostgreSQL"
+"이 설치된 경우 중복 설치가 될 수 있고, 또는 이전에 설치한 사실을 잊어버렸을 "
+"수도 있습니다. PostGIS는 PostgreSQL &min_postgres_version; 또는 그 이상 버전"
+"에서 작동되므로 구 버전을 이용 시 예상하지 못한 에러들이 발생할 수 있습니다. "
+"어떤 PostgreSQL 버전이 작동하고 있는지 확인하기 위해서는 psql을 통하여 데이터"
+"베이스에 접속해 다음의 쿼리를 실행하십시오:"
+
+#. Tag: programlisting
+#: installation.xml:1326
+#, no-c-format
+msgid "SELECT version();"
+msgstr "SELECT version();"
+
+#. Tag: para
+#: installation.xml:1328
+#, no-c-format
+msgid ""
+"If you are running an RPM based distribution, you can check for the "
+"existence of pre-installed packages using the <command>rpm</command> command "
+"as follows: <command>rpm -qa | grep postgresql</command>"
+msgstr ""
+"RPM 방식이라면 다음과 같은 <command>rpm</command> 커맨드로 이전 설치 패키지"
+"의 존재를 확인할 수 있습니다:  <command>rpm -qa | grep postgresql</command>"
+
+#. Tag: para
+#: installation.xml:1336
+#, no-c-format
+msgid ""
+"If your upgrade fails, make sure you are restoring into a database that "
+"already has PostGIS installed."
+msgstr ""
+"만약 업그레이드가 실패하면 기존 PostGIS설치 버전으로 복원하셔야 합니다. "
+
+#. Tag: programlisting
+#: installation.xml:1337
+#, no-c-format
+msgid "SELECT postgis_full_version();"
+msgstr "SELECT postgis_full_version();"
+
+#. Tag: para
+#: installation.xml:1341
+#, no-c-format
+msgid ""
+"Also check that configure has correctly detected the location and version of "
+"PostgreSQL, the Proj4 library and the GEOS library."
+msgstr ""
+"또한 PostreSQL, Proj4 라이브러리 및 GEOS 라이브러리에 대한 버전과 경로에 대"
+"한 설정이 올바른지 확인하십시오."
+
+#. Tag: para
+#: installation.xml:1348
+#, no-c-format
+msgid ""
+"The output from configure is used to generate the <filename>postgis_config."
+"h</filename> file. Check that the <varname>POSTGIS_PGSQL_VERSION</varname>, "
+"<varname>POSTGIS_PROJ_VERSION</varname> and <varname>POSTGIS_GEOS_VERSION</"
+"varname> variables have been set correctly."
+msgstr ""
+"설정은 <filename>postgis_config.h</filename>h 파일을 생성하기 위해 사용됩니"
+"다. \n"
+"<varname>POSTGIS_PGSQL_VERSION</varname>, <varname>POSTGIS_PROJ_VERSION</"
+"varname> and <varname>POSTGIS_GEOS_VERSION</varname> 변수가 정확한지 확인하십"
+"시오."
+
+#. Tag: title
+#: installation.xml:1361
+#, no-c-format
+msgid "JDBC"
+msgstr "JDBC"
+
+#. Tag: para
+#: installation.xml:1363
+#, no-c-format
+msgid ""
+"The JDBC extensions provide Java objects corresponding to the internal "
+"PostGIS types. These objects can be used to write Java clients which query "
+"the PostGIS database and draw or do calculations on the GIS data in PostGIS."
+msgstr ""
+"JDBC extension은 PostGIS 타입들에 상응하는 자바 객체를 제공합니다. 이 객체들"
+"은 PostGIS 데이터베이스에 쿼리하여 GIS 데이터에 대한 그리기, 계산 등을 하는 "
+"자바 클라이언트를 만들기 위해 쓰입니다."
+
+#. Tag: para
+#: installation.xml:1372
+#, no-c-format
+msgid ""
+"Enter the <filename>java/jdbc</filename> sub-directory of the PostGIS "
+"distribution."
+msgstr "PostGIS 배포본의 <filename>java/jdbc</filename> 경로로 이동하십시오."
+
+#. Tag: para
+#: installation.xml:1379
+#, no-c-format
+msgid ""
+"Run the <filename>ant</filename> command. Copy the <filename>postgis.jar</"
+"filename> file to wherever you keep your java libraries."
+msgstr ""
+"<filename>ant</filename> t명령어를 실행하고 <filename>postgis.jar</filename> "
+"파일을 사용자의 java 라이브러리들이 있는 곳으로 복사하십시오."
+
+#. Tag: para
+#: installation.xml:1387
+#, no-c-format
+msgid ""
+"The JDBC extensions require a PostgreSQL JDBC driver to be present in the "
+"current CLASSPATH during the build process. If the PostgreSQL JDBC driver is "
+"located elsewhere, you may pass the location of the JDBC driver JAR "
+"separately using the -D parameter like this:"
+msgstr ""
+"JDBC extension은 빌드 프로세스 중 CLASSPATH에 PostgreSQL JDBC를 필요로 합니"
+"다. 만약 PostgreSQL JDBC 드라이버가 다른 경로에 있다면 아래와 같은 -D 파라미"
+"터를 이용하여 JDBC driver JAR의 경로를 연결시켜 줍니다:"
+
+#. Tag: programlisting
+#: installation.xml:1394
+#, no-c-format
+msgid "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
+msgstr "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
+
+#. Tag: para
+#: installation.xml:1396
+#, no-c-format
+msgid ""
+"PostgreSQL JDBC drivers can be downloaded from <ulink url=\"http://jdbc."
+"postgresql.org\"> http://jdbc.postgresql.org </ulink> ."
+msgstr ""
+"PostgreSQL JDBC 드라이버들은 <ulink url=\"http://jdbc.postgresql.org\"> "
+"http://jdbc.postgresql.org </ulink>에서 다운로드 받으실 수 있습니다."
+
+#. Tag: title
+#: installation.xml:1406
+#, no-c-format
+msgid "Loader/Dumper"
+msgstr "로더/덤퍼"
+
+#. Tag: para
+#: installation.xml:1408
+#, no-c-format
+msgid ""
+"The data loader and dumper are built and installed automatically as part of "
+"the PostGIS build. To build and install them manually:"
+msgstr ""
+"데이터 로더와 덤퍼는 PostGIS의 한 부분으로서 자동적으로 설치 및 생성됩니다. "
+"로더와 덤퍼를 수동으로 설치하기 위해서는:"
+
+#. Tag: programlisting
+#: installation.xml:1413
+#, no-c-format
+msgid ""
+"# cd postgis-&last_release_version;/loader\n"
+"# make\n"
+"# make install"
+msgstr ""
+"# cd postgis-&last_release_version;/loader\n"
+"# make\n"
+"# make install"
+
+#. Tag: para
+#: installation.xml:1415
+#, no-c-format
+msgid ""
+"The loader is called <filename>shp2pgsql</filename> and converts ESRI Shape "
+"files into SQL suitable for loading in PostGIS/PostgreSQL. The dumper is "
+"called <filename>pgsql2shp</filename> and converts PostGIS tables (or "
+"queries) into ESRI Shape files. For more verbose documentation, see the "
+"online help, and the manual pages."
+msgstr ""
+"로더는 <filename>shp2pgsql</filename>이라고 불리며 ESRI Shape 파일을 PostGIS/"
+"PostgreSQL 다루기 알맞도록 전환합니다. 덤퍼는 <filename>pgsql2shp</filename>"
+"이라 불리며 PostGIS 테이블(또는 쿼리들)을 ESRI Shape파일로 전환합니다. 보다 "
+"더 상세한 설명을 원하신다면 온라인 도움말과 매뉴얼을 참조하십시오."
diff --git a/doc/po/ko_KR/introduction.xml.po b/doc/po/ko_KR/introduction.xml.po
new file mode 100644
index 0000000..7ea500d
--- /dev/null
+++ b/doc/po/ko_KR/introduction.xml.po
@@ -0,0 +1,600 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# BJ Jang <qgis.tr.kr at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 14:18+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: introduction.xml:3
+#, no-c-format
+msgid "Introduction"
+msgstr "소개"
+
+#. Tag: para
+#: introduction.xml:5
+#, no-c-format
+msgid ""
+"PostGIS was developed by Refractions Research Inc, as a spatial database "
+"technology research project. Refractions is a GIS and database consulting "
+"company in Victoria, British Columbia, Canada, specializing in data "
+"integration and custom software development. We plan on supporting and "
+"developing PostGIS to support a range of important GIS functionality, "
+"including full OpenGIS support, advanced topological constructs (coverages, "
+"surfaces, networks), desktop user interface tools for viewing and editing "
+"GIS data, and web-based access tools."
+msgstr ""
+"PostGIS는 Refractions Research Inc. 에 의해 개발된 것으로 공간데이터베이스 기"
+"술 리서치 프로젝트입니다. Refractions은 캐나다 브리티쉬 컬럼비아주 빅토리아시"
+"에 위치한 GIS 및 데이터베이스 컨설팅 회사로서 데이터 통합 및 고객 지향 소프트"
+"웨어 개발 전문 기업입니다. 우리는 전체 오픈 GIS 지원, 고급 위상기하적 구조 "
+"(범위, 표면, 네트워크), GIS 데이터를 편집하고 볼 수 있는 데스크 탑 사용자 인"
+"터페이스 도구들과 웹 기반 접근 도구들을 포함하는 다양한 중요 GIS 기능들을 지"
+"원하기 위한 PostGIS를 지원, 개발할 예정입니다. "
+
+#. Tag: para
+#: introduction.xml:15
+#, no-c-format
+msgid ""
+"PostGIS is an incubation project of the OSGeo Foundation. PostGIS is being "
+"continually improved and funded by many FOSS4G Developers as well as "
+"corporations all over the world that gain great benefit from its "
+"functionality and versatility."
+msgstr ""
+"PostGIS는 OSGeo 재단의 육성 프로젝트 입니다. PostGIS는 지속적으로 성장하고 있"
+"으며 많은 FOSS4G 개발자들로부터 자금을 조달 받고 있습니다. 더하여, PostGIS는 "
+"다양한 기능을 바탕으로 세계 도처에 있는 여러 기업들을 대상으로 이익을 창출하"
+"고 있습니다."
+
+#. Tag: title
+#: introduction.xml:21
+#, no-c-format
+msgid "Project Steering Committee"
+msgstr "프로젝트 운영 위원회"
+
+#. Tag: para
+#: introduction.xml:22
+#, no-c-format
+msgid ""
+"The PostGIS Project Steering Committee (PSC) coordinates the general "
+"direction, release cycles, documentation, and outreach efforts for the "
+"PostGIS project. In addition the PSC provides general user support, accepts "
+"and approves patches from the general PostGIS community and votes on "
+"miscellaneous issues involving PostGIS such as developer commit access, new "
+"PSC members or significant API changes."
+msgstr ""
+"PostGIS 프로젝트 운영 위원회(PSC)는 총괄적 운영, 출시 주기, 문서화 그리고 "
+"PostGIS 프로젝트를 향상 시키려는 노력을 조정하는 역할을 합니다. 더하여, PSC"
+"는 일반 사용자 지원을 제공하며 PostGIS 커뮤니티로부터의 패치들을 승인하고 수"
+"락하는 역할을 합니다. PSC는 또한 개발자 커밋 엑세스-developer commit access, "
+"PSC 신규 회원 또는 주요 API 변화에 관련된 다양한 이슈들을 해결하는 역할을 합"
+"니다."
+
+#. Tag: term
+#: introduction.xml:31
+#, no-c-format
+msgid "Mark Cave-Ayland"
+msgstr "Mark Cave-Ayland"
+
+#. Tag: para
+#: introduction.xml:33
+#, no-c-format
+msgid ""
+"Coordinates bug fixing and maintenance effort, alignment of PostGIS with "
+"PostgreSQL releases, spatial index selectivity and binding, loader/dumper, "
+"and Shapefile GUI Loader, integration of new and new function enhancements."
+msgstr ""
+"버그 수정, 유지보수, PostGIS와 PostgreSQL 출시와 PostGIS 간의 조정, 공간 지"
+"수 선별 및 결합, 로더/덤퍼-loader/dumper, Shape file GUI Loader, 새로운 기능 "
+"개선 제품들의 통합 담당. "
+
+#. Tag: term
+#: introduction.xml:40
+#, no-c-format
+msgid "Regina Obe"
+msgstr "Regina Obe"
+
+#. Tag: para
+#: introduction.xml:42
+#, no-c-format
+msgid ""
+"Buildbot Maintenance, windows production and experimental builds, "
+"Documentation, general user support on PostGIS newsgroup, X3D support, Tiger "
+"Geocoder Support, management functions, and smoke testing new functionality "
+"or major code changes."
+msgstr ""
+"문서화, PostGIS 뉴스그룹의 일반 사용자 지원, 윈도우즈 생산 및 실험적 설계, "
+"X3D 지원, Tiger Geocoder 지원, 관리 기능, 그리고 새로운 기능 또는 주요 코드 "
+"변화에 관한 스모크 테스팅-Smoke testing"
+
+#. Tag: term
+#: introduction.xml:49
+#, no-c-format
+msgid "Bborie Park"
+msgstr "Bborie Park"
+
+#. Tag: para
+#: introduction.xml:51
+#, no-c-format
+msgid ""
+"Raster development, integration with GDAL, raster loader, user support, "
+"general bug fixing, testing on various OS (Slackware, Mac, Windows, and more)"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:56
+#, no-c-format
+msgid "Paul Ramsey (Chair)"
+msgstr "Paul Ramsey (의장)"
+
+#. Tag: para
+#: introduction.xml:58
+#, no-c-format
+msgid ""
+"Co-founder of PostGIS project. General bug fixing, geography support, "
+"geography and geometry index support (2D, 3D, nD index and anything spatial "
+"index), underlying geometry internal structures, PointCloud (in "
+"development), GEOS functionality integration and alignment with GEOS "
+"releases, loader/dumper, and Shapefile GUI loader."
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:64
+#, no-c-format
+msgid "Sandro Santilli"
+msgstr "Sandro Santilli"
+
+#. Tag: para
+#: introduction.xml:67
+#, no-c-format
+msgid ""
+"Bug fixes and maintenance and integration of new GEOS functionality and "
+"alignment with GEOS releases, Topology support, and Raster framework and low "
+"level api functions."
+msgstr ""
+"버그 수정, 유지보수, 새로운 GEOS 기능의 통합 및 GEOS 출시 버전 과의 정렬, 위"
+"상 기하 지원, 래스터 프레임워크 및 저레벨 API등"
+
+#. Tag: title
+#: introduction.xml:74
+#, no-c-format
+msgid "Core Contributors Present"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:77
+#, no-c-format
+msgid "Jorge Arévalo"
+msgstr "Jorge Arévalo"
+
+#. Tag: para
+#: introduction.xml:79
+#, no-c-format
+msgid "Raster development, GDAL driver support, loader"
+msgstr "래스터 개발, GDAL 드라이버 지원, 로더"
+
+#. Tag: term
+#: introduction.xml:84
+#, no-c-format
+msgid "Nicklas Avén"
+msgstr "Nicklas Avén"
+
+#. Tag: para
+#: introduction.xml:87
+#, no-c-format
+msgid ""
+"Distance function enhancements (including 3D distance and relationship "
+"functions) and additions, Tiny WKB output format (TWKB) (in development) and "
+"general user support"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:92
+#, no-c-format
+msgid "Olivier Courtin"
+msgstr "Olivier Courtin"
+
+#. Tag: para
+#: introduction.xml:94
+#, no-c-format
+msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
+msgstr "XML(KML, GML)/GeoJSON 입출력 기능들, 3D 지원 및 버그 수정."
+
+#. Tag: term
+#: introduction.xml:99
+#, no-c-format
+msgid "Mateusz Loskot"
+msgstr "Mateusz Loskot"
+
+#. Tag: para
+#: introduction.xml:101
+#, no-c-format
+msgid ""
+"CMake support for PostGIS, built original raster loader in python and low "
+"level raster api functions"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:106
+#, no-c-format
+msgid "Pierre Racine"
+msgstr "Pierre Racine"
+
+#. Tag: para
+#: introduction.xml:108
+#, no-c-format
+msgid "Raster overall architecture, prototyping, programming support"
+msgstr "전반적인 래스터 아키텍처, 프로토타이핑, 프로그래밍 지원"
+
+#. Tag: term
+#: introduction.xml:113
+#, no-c-format
+msgid "David Zwarg"
+msgstr "David Zwarg"
+
+#. Tag: para
+#: introduction.xml:115
+#, no-c-format
+msgid "Raster development (mostly map algebra analytic functions)"
+msgstr ""
+
+#. Tag: title
+#: introduction.xml:121
+#, no-c-format
+msgid "Core Contributors Past"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:125
+#, no-c-format
+msgid "Chris Hodgson"
+msgstr "Chris Hodgson"
+
+#. Tag: para
+#: introduction.xml:127
+#, no-c-format
+msgid ""
+"Prior PSC Member. General development, site and buildbot maintenance, OSGeo "
+"incubation management"
+msgstr ""
+"일반 개발, 사이트 그리고 빌드봇-buildbot- 유지보수, OSGeo 육성 프로젝트 관리"
+
+#. Tag: term
+#: introduction.xml:131
+#, no-c-format
+msgid "Kevin Neufeld"
+msgstr "Kevin Neufeld"
+
+#. Tag: para
+#: introduction.xml:133
+#, no-c-format
+msgid ""
+"Prior PSC Member. Documentation and documentation support tools, buildbot "
+"maintenance, advanced user support on PostGIS newsgroup, and PostGIS "
+"maintenance function enhancements."
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:139
+#, no-c-format
+msgid "Dave Blasby"
+msgstr "Dave Blasby"
+
+#. Tag: para
+#: introduction.xml:142
+#, no-c-format
+msgid ""
+"The original developer/Co-founder of PostGIS. Dave wrote the server side "
+"objects, index bindings, and many of the server side analytical functions."
+msgstr ""
+"PostGIS의 원 개발자이자 공동 창업자. 데이브는 서버측 객체, 인덱스 결합, 그리"
+"고 많은 서버 측의 분석적 기능들을 작업하였음."
+
+#. Tag: term
+#: introduction.xml:149
+#, no-c-format
+msgid "Jeff Lounsbury"
+msgstr "Jeff Lounsbury"
+
+#. Tag: para
+#: introduction.xml:151
+#, no-c-format
+msgid ""
+"Original development of the Shape file loader/dumper. Current PostGIS "
+"Project Owner representative."
+msgstr ""
+"Shape 파일 로더/덤퍼-loader/dumper-의 본래 개발자. 현재 PostGIS 프로젝트 소유"
+"자  대표"
+
+#. Tag: term
+#: introduction.xml:157
+#, no-c-format
+msgid "Mark Leslie"
+msgstr "Mark Leslie"
+
+#. Tag: para
+#: introduction.xml:159
+#, no-c-format
+msgid ""
+"Ongoing maintenance and development of core functions. Enhanced curve "
+"support. Shapefile GUI loader."
+msgstr ""
+"진행중인 유지보수 및 핵심 기능 개발. 강화된 곡선 지원. Shape 파일GUI 로더."
+
+#. Tag: title
+#: introduction.xml:165
+#, no-c-format
+msgid "Other Contributors"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:168
+#, no-c-format
+msgid "Individual Contributors"
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:171
+#, no-c-format
+msgid ""
+"In alphabetical order: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas "
+"Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, "
+"Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. "
+"Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David "
+"Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald "
+"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, "
+"Jason Smith, Jeff Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus "
+"Foerster, Kris Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de "
+"Reyna, Mark Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, "
+"Michael Fuhr, Nathan Wagner, Nathaniel Clay, Nikita Shulga, Norman Vine, "
+"Rafal Magda, Ralph Mason, Richard Greenwood, Silvio Grosso, Steffen Macke, "
+"Stephen Frost, Tom van Tilburg, Vincent Mora, Vincent Picavet"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:232
+#, no-c-format
+msgid "Corporate Sponsors"
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:235
+#, no-c-format
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the PostGIS project"
+msgstr ""
+"PostGIS 프로젝트에 직접적인 금전을 지원하거나, 개발 시간 및 호스팅에 기여를 "
+"한 기업들"
+
+#. Tag: para
+#: introduction.xml:236
+#, no-c-format
+msgid ""
+"In alphabetical order: Arrival 3D, Associazione Italiana per l'Informazione "
+"Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, "
+"City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos "
+"Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala "
+"Consulting Engineers, LisaSoft, Logical Tracking & Tracing International "
+"AG, Michigan Tech Research Institute, Natural Resources Canada, Norwegian "
+"Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Palantir "
+"Technologies, Paragon Corporation, R3 GIS, Refractions Research, Regione "
+"Toscana-SIGTA, Safe Software, Sirius Corporation plc, Stadt Uster, UC Davis "
+"Center for Vectorborne Diseases, University of Laval, U.S Department of "
+"State (HIU), Vizzuality, Zonar Systems"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:277
+#, no-c-format
+msgid "Crowd Funding Campaigns"
+msgstr "크라우드 펀딩 캠페인 "
+
+#. Tag: para
+#: introduction.xml:280
+#, no-c-format
+msgid ""
+"Crowd funding campaigns are campaigns we run to get badly wanted features "
+"funded that can service a large number of people. Each campaign is "
+"specifically focused on a particular feature or set of features. Each "
+"sponsor chips in a small fraction of the needed funding and with enough "
+"people/organizations contributing, we have the funds to pay for the work "
+"that will help many. If you have an idea for a feature you think many others "
+"would be willing to co-fund, please post to the <ulink url=\"http://postgis."
+"net/mailman/listinfo/postgis-users\">PostGIS newsgroup</ulink> your thoughts "
+"and together we can make it happen."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:281
+#, no-c-format
+msgid ""
+"PostGIS 2.0.0 was the first release we tried this strategy. We used <ulink "
+"url=\"http://www.pledgebank.com\">PledgeBank</ulink> and we got two "
+"successful campaigns out of it."
+msgstr ""
+"PostGIS 2.0.0은 이러한 전략 아래 탄생된 첫 번째 출시작입니다. 저희는 <ulink "
+"url=\"http://www.pledgebank.com\">PledgBank</ulink>를 이용했으며 이를 통해 "
+"두 번의 성공적인 캠페인을 진행했습니다."
+
+#. Tag: para
+#: introduction.xml:282
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink> - 10 plus sponsors each "
+"contributed $250 USD to build toTopoGeometry function and beef up topology "
+"support in 2.0.0. It happened."
+msgstr ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink> - 10명 이상의 스폰서들. "
+"toTopGeometry 기능 구축 및 2.0.0 버전에서 위상 기하 기능 지원 강화를 위해 개"
+"개인이 250 달러씩 지원했습니다."
+
+#. Tag: para
+#: introduction.xml:283
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
+"\"bold\">postgis64windows</emphasis></ulink> - 20 someodd sponsors each "
+"contributed $100 USD to pay for the work needed to work out PostGIS 64-bit "
+"issues on windows. It happened. We now have a 64-bit release for PostGIS "
+"2.0.1 available on PostgreSQL stack builder."
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:288
+#, no-c-format
+msgid "Important Support Libraries"
+msgstr "주요 지원 라이브러리"
+
+#. Tag: para
+#: introduction.xml:291
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink> geometry "
+"operations library, and the algorithmic work of Martin Davis in making it "
+"all work, ongoing maintenance and support of Mateusz Loskot, Sandro Santilli "
+"(strk), Paul Ramsey and others."
+msgstr ""
+"<ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink> 지오메트리 조작 라이"
+"브러리와 모든 것을 작동하도록 만든 Martin Davis의 알고리즘 작업, Mateouz "
+"Losk, Sandro Santilli(strk), Paul Ramsey외 다른 이들의 진행중인 유지보수 및 "
+"지원 작업."
+
+#. Tag: para
+#: introduction.xml:296
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> Geospatial Data "
+"Abstraction Library, by Frank Warmerdam and others is used to power much of "
+"the raster functionality introduced in PostGIS 2.0.0. In kind, improvements "
+"needed in GDAL to support PostGIS are contributed back to the GDAL project."
+msgstr ""
+"<ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> 공간지리 데이터 추출 "
+"라이브러리, Fracnk Warmerda와 다른 이들에 의하여PostGIS 2.0.0에 소개된 래스"
+"터 기능을 작동시키기 위해 사용되었음. 같은 방식으로 PostGIS를 지원하기 위해 "
+"필요한 GDAL의 개선부분들은GDAL 프로젝트에 재 기여됨. "
+
+#. Tag: para
+#: introduction.xml:301
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> cartographic "
+"projection library, and the work of Gerald Evenden and Frank Warmerdam in "
+"creating and maintaining it."
+msgstr ""
+"<ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> 좌표변환 지도제작 영"
+"상 라이브리러와 이를 창조하고 유지하기 위한 Gerald Evenden 와 Frank Warmerdam"
+"의 작업."
+
+#. Tag: para
+#: introduction.xml:305
+#, no-c-format
+msgid ""
+"Last but not least, the <ulink url=\"http://www.postgresql.org\">PostgreSQL "
+"DBMS</ulink>, The giant that PostGIS stands on. Much of the speed and "
+"flexibility of PostGIS would not be possible without the extensibility, "
+"great query planner, GIST index, and plethora of SQL features provided by "
+"PostgreSQL."
+msgstr ""
+"마지막으로 그러나 역시 중요한 사항, PostGIS의 기반이 된 <ulink url=\"http://"
+"www.postgresql.org\">PostgreSQL DBMS</ulink>. PostGIS의 대단한 유동성과 속도"
+"는 확장성, 강력한 쿼리 플래너, GIST 인덱스, 그리고 PostgreSQL에서 제공되는 다"
+"양한 SQL 기능들이 없이는 불가능 했음."
+
+#. Tag: title
+#: introduction.xml:314
+#, no-c-format
+msgid "More Information"
+msgstr "추가 정보"
+
+#. Tag: para
+#: introduction.xml:318
+#, no-c-format
+msgid ""
+"The latest software, documentation and news items are available at the "
+"PostGIS web site, <ulink url=\"http://postgis.net\">http://postgis.net</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:324
+#, no-c-format
+msgid ""
+"More information about the GEOS geometry operations library is available "
+"at<ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/</"
+"ulink>."
+msgstr ""
+"GEOS 지오메트리 조작 라이브러리에 대한 상세 정보는 <ulink url=\"http://trac."
+"osgeo.org/geos/\"> http://trac.osgeo.org/geos/</ulink>에서 확인 가능"
+
+#. Tag: para
+#: introduction.xml:330
+#, no-c-format
+msgid ""
+"More information about the Proj4 reprojection library is available at <ulink "
+"url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
+msgstr ""
+"Proj4 재투영 라이브러리에 대한 상세 정보는 <ulink url=\"http://trac.osgeo."
+"org/proj/\">http://trac.osgeo.org/proj/</ulink> 에서 확인 가능"
+
+#. Tag: para
+#: introduction.xml:336
+#, no-c-format
+msgid ""
+"More information about the PostgreSQL database server is available at the "
+"PostgreSQL main site <ulink url=\"http://www.postgresql.org\">http://www."
+"postgresql.org</ulink>."
+msgstr ""
+"PostgreSQL 데이터베이스 서버에 대한 상세 정보는PostgreSQL 메인 사이트 <ulink "
+"url=\"http://www.postgresql.org\">http://www.postgresql.org</ulink>에서 확인 "
+"가능."
+
+#. Tag: para
+#: introduction.xml:342
+#, no-c-format
+msgid ""
+"More information about GiST indexing is available at the PostgreSQL GiST "
+"development site, <ulink url=\"http://www.sai.msu.su/~megera/postgres/gist/"
+"\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
+msgstr ""
+"GiST 인덱싱에 대한 상세 정보는 PostgreSQL GiST 개발 사이트, <ulink url="
+"\"http://www.sai.msu.su/~megera/postgres/gist/\">http://www.sai.msu.su/"
+"~megera/postgres/gist/</ulink>에서 확인 가능."
+
+#. Tag: para
+#: introduction.xml:348
+#, no-c-format
+msgid ""
+"More information about MapServer internet map server is available at <ulink "
+"url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
+msgstr ""
+"MapServer 인터넷 지도 서버에 관한 추가 정보는 <ulink url=\"http://mapserver."
+"org/\">http://mapserver.org</ulink> 에서 확인 가능."
+
+#. Tag: para
+#: introduction.xml:354
+#, no-c-format
+msgid ""
+"The "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple "
+"Features for Specification for SQL</ulink>" is available at the OpenGIS "
+"Consortium web site: <ulink url=\"http://www.opengeospatial.org/\">http://"
+"www.opengeospatial.org/</ulink>."
+msgstr ""
+""<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple "
+"Features for Specification for SQL</ulink>"은OpenGIS Consortium 웹 사이"
+"트: <ulink url=\"http://www.opengeospatial.org/\">http://www.opengeospatial."
+"org/</ulink>에서 확인 가능"
diff --git a/doc/po/ko_KR/performance_tips.xml.po b/doc/po/ko_KR/performance_tips.xml.po
new file mode 100644
index 0000000..86f5764
--- /dev/null
+++ b/doc/po/ko_KR/performance_tips.xml.po
@@ -0,0 +1,464 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:02+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: performance_tips.xml:3
+#, no-c-format
+msgid "Performance tips"
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:6
+#, no-c-format
+msgid "Small tables of large geometries"
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:9
+#, no-c-format
+msgid "Problem description"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:11
+#, no-c-format
+msgid ""
+"Current PostgreSQL versions (including 8.0) suffer from a query optimizer "
+"weakness regarding TOAST tables. TOAST tables are a kind of \"extension room"
+"\" used to store large (in the sense of data size) values that do not fit "
+"into normal data pages (like long texts, images or complex geometries with "
+"lots of vertices), see <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/storage-toast.html\">the PostgreSQL Documentation for TOAST</ulink> "
+"for more information)."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:19
+#, no-c-format
+msgid ""
+"The problem appears if you happen to have a table with rather large "
+"geometries, but not too much rows of them (like a table containing the "
+"boundaries of all European countries in high resolution). Then the table "
+"itself is small, but it uses lots of TOAST space. In our example case, the "
+"table itself had about 80 rows and used only 3 data pages, but the TOAST "
+"table used 8225 pages."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:26
+#, no-c-format
+msgid ""
+"Now issue a query where you use the geometry operator && to search "
+"for a bounding box that matches only very few of those rows. Now the query "
+"optimizer sees that the table has only 3 pages and 80 rows. He estimates "
+"that a sequential scan on such a small table is much faster than using an "
+"index. And so he decides to ignore the GIST index. Usually, this estimation "
+"is correct. But in our case, the && operator has to fetch every "
+"geometry from disk to compare the bounding boxes, thus reading all TOAST "
+"pages, too."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:35
+#, no-c-format
+msgid ""
+"To see whether your suffer from this bug, use the \"EXPLAIN ANALYZE\" "
+"postgresql command. For more information and the technical details, you can "
+"read the thread on the postgres performance mailing list: http://archives."
+"postgresql.org/pgsql-performance/2005-02/msg00030.php"
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:43
+#, no-c-format
+msgid "Workarounds"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:45
+#, no-c-format
+msgid ""
+"The PostgreSQL people are trying to solve this issue by making the query "
+"estimation TOAST-aware. For now, here are two workarounds:"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:48
+#, no-c-format
+msgid ""
+"The first workaround is to force the query planner to use the index. Send "
+"\"SET enable_seqscan TO off;\" to the server before issuing the query. This "
+"basically forces the query planner to avoid sequential scans whenever "
+"possible. So it uses the GIST index as usual. But this flag has to be set on "
+"every connection, and it causes the query planner to make misestimations in "
+"other cases, so you should \"SET enable_seqscan TO on;\" after the query."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:56
+#, no-c-format
+msgid ""
+"The second workaround is to make the sequential scan as fast as the query "
+"planner thinks. This can be achieved by creating an additional column that "
+"\"caches\" the bbox, and matching against this. In our example, the commands "
+"are like:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:61
+#, no-c-format
+msgid ""
+"SELECT "
+"AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
+"UPDATE mytable SET bbox = ST_Envelope(ST_Force2D(the_geom));"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:63
+#, no-c-format
+msgid ""
+"Now change your query to use the && operator against bbox instead of "
+"geom_column, like:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:66
+#, no-c-format
+msgid ""
+"SELECT geom_column \n"
+"FROM mytable \n"
+"WHERE bbox && ST_SetSRID('BOX3D(0 0,1 1)'::box3d,4326);"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:68
+#, no-c-format
+msgid ""
+"Of course, if you change or add rows to mytable, you have to keep the bbox "
+"\"in sync\". The most transparent way to do this would be triggers, but you "
+"also can modify your application to keep the bbox column current or run the "
+"UPDATE query above after every modification."
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:77
+#, no-c-format
+msgid "CLUSTERing on geometry indices"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:79
+#, no-c-format
+msgid ""
+"For tables that are mostly read-only, and where a single index is used for "
+"the majority of queries, PostgreSQL offers the CLUSTER command. This command "
+"physically reorders all the data rows in the same order as the index "
+"criteria, yielding two performance advantages: First, for index range scans, "
+"the number of seeks on the data table is drastically reduced. Second, if "
+"your working set concentrates to some small intervals on the indices, you "
+"have a more efficient caching because the data rows are spread along fewer "
+"data pages. (Feel invited to read the CLUSTER command documentation from the "
+"PostgreSQL manual at this point.)"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:89
+#, no-c-format
+msgid ""
+"However, currently PostgreSQL does not allow clustering on PostGIS GIST "
+"indices because GIST indices simply ignores NULL values, you get an error "
+"message like:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:93
+#, no-c-format
+msgid ""
+"lwgeom=# CLUSTER my_geom_index ON my_table; \n"
+"ERROR: cannot cluster when index access method does not handle null values\n"
+"HINT: You may be able to work around this by marking column \"the_geom\" NOT "
+"NULL."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:95
+#, no-c-format
+msgid ""
+"As the HINT message tells you, one can work around this deficiency by adding "
+"a \"not null\" constraint to the table:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:98
+#, no-c-format
+msgid ""
+"lwgeom=# ALTER TABLE my_table ALTER COLUMN the_geom SET not null; \n"
+"ALTER TABLE"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:100
+#, no-c-format
+msgid ""
+"Of course, this will not work if you in fact need NULL values in your "
+"geometry column. Additionally, you must use the above method to add the "
+"constraint, using a CHECK constraint like \"ALTER TABLE blubb ADD CHECK "
+"(geometry is not null);\" will not work."
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:107
+#, no-c-format
+msgid "Avoiding dimension conversion"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:109
+#, no-c-format
+msgid ""
+"Sometimes, you happen to have 3D or 4D data in your table, but always access "
+"it using OpenGIS compliant ST_AsText() or ST_AsBinary() functions that only "
+"output 2D geometries. They do this by internally calling the ST_Force2D() "
+"function, which introduces a significant overhead for large geometries. To "
+"avoid this overhead, it may be feasible to pre-drop those additional "
+"dimensions once and forever:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:116
+#, no-c-format
+msgid ""
+"UPDATE mytable SET the_geom = ST_Force2D(the_geom); \n"
+"VACUUM FULL ANALYZE mytable;"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:118
+#, no-c-format
+msgid ""
+"Note that if you added your geometry column using AddGeometryColumn() "
+"there'll be a constraint on geometry dimension. To bypass it you will need "
+"to drop the constraint. Remember to update the entry in the geometry_columns "
+"table and recreate the constraint afterwards."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:124
+#, no-c-format
+msgid ""
+"In case of large tables, it may be wise to divide this UPDATE into smaller "
+"portions by constraining the UPDATE to a part of the table via a WHERE "
+"clause and your primary key or another feasible criteria, and running a "
+"simple \"VACUUM;\" between your UPDATEs. This drastically reduces the need "
+"for temporary disk space. Additionally, if you have mixed dimension "
+"geometries, restricting the UPDATE by \"WHERE dimension(the_geom)>2\" "
+"skips re-writing of geometries that already are in 2D."
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:136
+#, no-c-format
+msgid "Tuning your configuration"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:138
+#, no-c-format
+msgid ""
+"These tips are taken from Kevin Neufeld's presentation \"Tips for the "
+"PostGIS Power User\" at the FOSS4G 2007 conference. Depending on your use of "
+"PostGIS (for example, static data and complex analysis vs frequently updated "
+"data and lots of users) these changes can provide significant speedups to "
+"your queries."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:144
+#, no-c-format
+msgid ""
+"For a more tips (and better formatting), the original presentation is at "
+"<ulink url=\"http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117\"> http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117</ulink>."
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:151
+#, no-c-format
+msgid "Startup"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:153
+#, no-c-format
+msgid "These settings are configured in postgresql.conf:"
+msgstr ""
+
+#. Tag: ulink
+#: performance_tips.xml:158
+#, no-c-format
+msgid "checkpoint_segments"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:163
+#, no-c-format
+msgid ""
+"Maximum number of log file segments between automatic WAL checkpoints (each "
+"segment is normally 16MB); default is 3"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:169
+#, no-c-format
+msgid ""
+"Set to at least 10 or 30 for databases with heavy write activity, or more "
+"for large database loads. Another article on the topic worth reading <ulink "
+"url=\"http://www.westnet.com/~gsmith/content/postgresql/chkp-bgw-83.htm"
+"\">Greg Smith: Checkpoint and Background writer</ulink>"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:175
+#, no-c-format
+msgid "Possibly store the xlog on a separate disk device"
+msgstr ""
+
+#. Tag: ulink
+#: performance_tips.xml:182
+#, no-c-format
+msgid "constraint_exclusion"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:187
+#, no-c-format
+msgid ""
+"Default: off (prior to PostgreSQL 8.4 and for PostgreSQL 8.4+ is set to "
+"partition)"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:192
+#, no-c-format
+msgid ""
+"This is generally used for table partitioning. If you are running PostgreSQL "
+"versions below 8.4, set to \"on\" to ensure the query planner will optimize "
+"as desired. As of PostgreSQL 8.4, the default for this is set to \"partition"
+"\" which is ideal for PostgreSQL 8.4 and above since it will force the "
+"planner to only analyze tables for constraint consideration if they are in "
+"an inherited hierarchy and not pay the planner penalty otherwise."
+msgstr ""
+
+#. Tag: ulink
+#: performance_tips.xml:202
+#, no-c-format
+msgid "shared_buffers"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:207
+#, no-c-format
+msgid "Default: ~32MB"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:212
+#, no-c-format
+msgid "Set to about 1/3 to 3/4 of available RAM"
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:220
+#, no-c-format
+msgid "Runtime"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:222
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-WORK-MEM\">work_mem</ulink> (the memory used for sort "
+"operations and complex queries)"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:228
+#, no-c-format
+msgid "Default: 1MB"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:233
+#, no-c-format
+msgid "Adjust up for large dbs, complex queries, lots of RAM"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:238
+#, no-c-format
+msgid "Adjust down for many concurrent users or low RAM."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:243
+#, no-c-format
+msgid "If you have lots of RAM and few developers:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:245
+#, no-c-format
+msgid "SET work_mem TO 1200000;"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:250
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</ulink> (used "
+"for VACUUM, CREATE INDEX, etc.)"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:256
+#, no-c-format
+msgid "Default: 16MB"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:261
+#, no-c-format
+msgid "Generally too low - ties up I/O, locks objects while swapping memory"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:266
+#, no-c-format
+msgid ""
+"Recommend 32MB to 256MB on production servers w/lots of RAM, but depends on "
+"the # of concurrent users. If you have lots of RAM and few developers:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:269
+#, no-c-format
+msgid "SET maintainence_work_mem TO 1200000;"
+msgstr ""
diff --git a/doc/po/ko_KR/postgis.xml.po b/doc/po/ko_KR/postgis.xml.po
new file mode 100644
index 0000000..ddae7bb
--- /dev/null
+++ b/doc/po/ko_KR/postgis.xml.po
@@ -0,0 +1,75 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# BJ Jang <qgis.tr.kr at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-10-14 22:36+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis-1/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: postgis.xml:127
+#, no-c-format
+msgid "PostGIS &last_release_version; Manual"
+msgstr "PostGIS &last_release_version; 매뉴얼"
+
+#. Tag: corpauthor
+#: postgis.xml:131
+#, no-c-format
+msgid "The PostGIS Development Group"
+msgstr ""
+
+#. Tag: affiliation
+#: postgis.xml:137
+#, no-c-format
+msgid ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>British Columbia</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
+msgstr ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>British Columbia</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
+
+#. Tag: para
+#: postgis.xml:151
+#, no-c-format
+msgid ""
+"PostGIS is an extension to the PostgreSQL object-relational database system "
+"which allows GIS (Geographic Information Systems) objects to be stored in "
+"the database. PostGIS includes support for GiST-based R-Tree spatial "
+"indexes, and functions for analysis and processing of GIS objects."
+msgstr ""
+"PostGIS는 객체 관계형 데이터베이스 시스템인 PostgreSQL의 확장팩으로, GIS(지"
+"리 정보 시스템) 객체를 데이터베이스에 저장할 수 있게 해줍니다. PostGIS는 "
+"GiST-기반 R-트리 인덱스와, GIS 객체를 분석하기 처리하기 위한 함수들에 대한 지"
+"원이 포함되어 있습니다."
+
+#. Tag: para
+#: postgis.xml:160
+#, no-c-format
+msgid "This is the manual for version &last_release_version;"
+msgstr "이 문서는 버전 &last_release_version;에 대한 매뉴얼 입니다."
+
+#. Tag: para
+#: postgis.xml:161
+#, no-c-format
+msgid ""
+"This work is licensed under a <ulink url=\"http://creativecommons.org/"
+"licenses/by-sa/3.0/\">Creative Commons Attribution-Share Alike 3.0 License</"
+"ulink>. Feel free to use this material any way you like, but we ask that you "
+"attribute credit to the PostGIS Project and wherever possible, a link back "
+"to <ulink url=\"http://postgis.net\">http://postgis.net</ulink>."
+msgstr ""
diff --git a/doc/po/ko_KR/reference.xml.po b/doc/po/ko_KR/reference.xml.po
new file mode 100644
index 0000000..6700aa1
--- /dev/null
+++ b/doc/po/ko_KR/reference.xml.po
@@ -0,0 +1,66 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# BJ Jang <qgis.tr.kr at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:14+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference.xml:3
+#, no-c-format
+msgid "PostGIS Reference"
+msgstr "PostGIS Reference"
+
+#. Tag: para
+#: reference.xml:5
+#, no-c-format
+msgid ""
+"The functions given below are the ones which a user of PostGIS is likely to "
+"need. There are other functions which are required support functions to the "
+"PostGIS objects which are not of use to a general user."
+msgstr ""
+"아래의 함수들은 PostGIS 사용자가 필요로 하는 함수들이며, 일반 사용자가 쓰지 "
+"않는 PostGIS 객체에 필요한 다른 지원 함수들도 있습니다."
+
+#. Tag: para
+#: reference.xml:11
+#, no-c-format
+msgid ""
+"PostGIS has begun a transition from the existing naming convention to an SQL-"
+"MM-centric convention. As a result, most of the functions that you know and "
+"love have been renamed using the standard spatial type (ST) prefix. Previous "
+"functions are still available, though are not listed in this document where "
+"updated functions are equivalent. The non ST_ functions not listed in this "
+"documentation are deprecated and will be removed in a future release so STOP "
+"USING THEM."
+msgstr ""
+"PostGIS는 기존 명명 규칙에서 SQL-MM-중심 명명 규칙으로 전환하기 시작했습니"
+"다. 그 결과로, 여러분이 알고 있고 좋아하는 대부분의 함수 이름이 표준 Spatial "
+"Type (ST) 접두어를 사용한 이름으로 변경되었습니다. 갱신된 함수들이 이전 함수"
+"들과 같은 기능을 제공하며, 비록 이 문서에는 나열되어 있지는 않지만 이전 함수"
+"도 사용할 수 있습니다. 다음 버전 출시에는 이 문서에 없는 비 ST_ 함수들이 더 "
+"이상 사용되지 않을 것이며 제외될 예정이므로 이들 함수의 사용을 중단해 주십시"
+"오."
+
+#. Tag: chapter
+#: reference.xml:16
+#, no-c-format
+msgid ""
+"&reference_type; &reference_guc; &reference_management; "
+"&reference_constructor; &reference_accessor; &reference_editor; "
+"&reference_output; &reference_operator; &reference_measure; "
+"&reference_sfcgal; &reference_processing; &reference_lrs; "
+"&reference_transaction; &reference_misc; &reference_exception;"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_accessor.xml.po b/doc/po/ko_KR/reference_accessor.xml.po
new file mode 100644
index 0000000..ad73c83
--- /dev/null
+++ b/doc/po/ko_KR/reference_accessor.xml.po
@@ -0,0 +1,3381 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:03+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_accessor.xml:4
+#, no-c-format
+msgid "Geometry Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:8
+#, no-c-format
+msgid "GeometryType"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:10
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the type of the geometry as a string. Eg: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:16
+#, no-c-format
+msgid ""
+"<funcdef>text <function>GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:24 reference_accessor.xml:81
+#: reference_accessor.xml:129 reference_accessor.xml:177
+#: reference_accessor.xml:225 reference_accessor.xml:276
+#: reference_accessor.xml:328 reference_accessor.xml:377
+#: reference_accessor.xml:438 reference_accessor.xml:489
+#: reference_accessor.xml:548 reference_accessor.xml:607
+#: reference_accessor.xml:662 reference_accessor.xml:706
+#: reference_accessor.xml:757 reference_accessor.xml:814
+#: reference_accessor.xml:879 reference_accessor.xml:931
+#: reference_accessor.xml:990 reference_accessor.xml:1036
+#: reference_accessor.xml:1071 reference_accessor.xml:1110
+#: reference_accessor.xml:1150 reference_accessor.xml:1194
+#: reference_accessor.xml:1256 reference_accessor.xml:1297
+#: reference_accessor.xml:1341 reference_accessor.xml:1398
+#: reference_accessor.xml:1454 reference_accessor.xml:1497
+#: reference_accessor.xml:1550 reference_accessor.xml:1617
+#: reference_accessor.xml:1660 reference_accessor.xml:1705
+#: reference_accessor.xml:1751 reference_accessor.xml:1793
+#: reference_accessor.xml:1838 reference_accessor.xml:1884
+#: reference_accessor.xml:1926 reference_accessor.xml:1972
+#: reference_accessor.xml:2013
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:26
+#, no-c-format
+msgid ""
+"<para>Returns the type of the geometry as a string. Eg: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:29
+#, no-c-format
+msgid ""
+"OGC SPEC s2.1.1.1 - Returns the name of the instantiable subtype of Geometry "
+"of which this Geometry instance is a member. The name of the instantiable "
+"subtype of Geometry is returned as a string."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:35
+#, no-c-format
+msgid ""
+"This function also indicates if the geometry is measured, by returning a "
+"string of the form 'POINTM'."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:38 reference_accessor.xml:391
+#: reference_accessor.xml:1155
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:39 reference_accessor.xml:135
+#: reference_accessor.xml:393 reference_accessor.xml:500
+#: reference_accessor.xml:553 reference_accessor.xml:833
+#: reference_accessor.xml:999 reference_accessor.xml:1263
+#: reference_accessor.xml:1305 reference_accessor.xml:1414
+#: reference_accessor.xml:1756
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:40 reference_accessor.xml:137
+#: reference_accessor.xml:234 reference_accessor.xml:396
+#: reference_accessor.xml:562 reference_accessor.xml:627
+#: reference_accessor.xml:673 reference_accessor.xml:1077
+#: reference_accessor.xml:1115 reference_accessor.xml:1417
+#: reference_accessor.xml:1462 reference_accessor.xml:1506
+#: reference_accessor.xml:1670 reference_accessor.xml:1715
+#: reference_accessor.xml:1803 reference_accessor.xml:1848
+#: reference_accessor.xml:1936 reference_accessor.xml:1978
+#: reference_accessor.xml:2023
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:41 reference_accessor.xml:96
+#: reference_accessor.xml:138 reference_accessor.xml:232
+#: reference_accessor.xml:337 reference_accessor.xml:395
+#: reference_accessor.xml:444 reference_accessor.xml:502
+#: reference_accessor.xml:561 reference_accessor.xml:626
+#: reference_accessor.xml:771 reference_accessor.xml:1001
+#: reference_accessor.xml:1041 reference_accessor.xml:1076
+#: reference_accessor.xml:1114 reference_accessor.xml:1159
+#: reference_accessor.xml:1262 reference_accessor.xml:1358
+#: reference_accessor.xml:1416 reference_accessor.xml:1504
+#: reference_accessor.xml:1625 reference_accessor.xml:1669
+#: reference_accessor.xml:1714 reference_accessor.xml:1758
+#: reference_accessor.xml:1802 reference_accessor.xml:1847
+#: reference_accessor.xml:1892 reference_accessor.xml:1935
+#: reference_accessor.xml:1977 reference_accessor.xml:2022
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:42 reference_accessor.xml:139
+#: reference_accessor.xml:190 reference_accessor.xml:397
+#: reference_accessor.xml:445 reference_accessor.xml:565
+#: reference_accessor.xml:1078 reference_accessor.xml:1160
+#: reference_accessor.xml:1265 reference_accessor.xml:1359
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:43 reference_accessor.xml:140
+#: reference_accessor.xml:191 reference_accessor.xml:398
+#: reference_accessor.xml:1161
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:49 reference_accessor.xml:101
+#: reference_accessor.xml:145 reference_accessor.xml:195
+#: reference_accessor.xml:244 reference_accessor.xml:298
+#: reference_accessor.xml:342 reference_accessor.xml:450
+#: reference_accessor.xml:508 reference_accessor.xml:632
+#: reference_accessor.xml:680 reference_accessor.xml:725
+#: reference_accessor.xml:776 reference_accessor.xml:840
+#: reference_accessor.xml:896 reference_accessor.xml:956
+#: reference_accessor.xml:1007 reference_accessor.xml:1045
+#: reference_accessor.xml:1083 reference_accessor.xml:1120
+#: reference_accessor.xml:1166 reference_accessor.xml:1206
+#: reference_accessor.xml:1269 reference_accessor.xml:1310
+#: reference_accessor.xml:1365 reference_accessor.xml:1426
+#: reference_accessor.xml:1467 reference_accessor.xml:1516
+#: reference_accessor.xml:1573 reference_accessor.xml:1631
+#: reference_accessor.xml:1675 reference_accessor.xml:1720
+#: reference_accessor.xml:1764 reference_accessor.xml:1808
+#: reference_accessor.xml:1853 reference_accessor.xml:1897
+#: reference_accessor.xml:1941 reference_accessor.xml:1983
+#: reference_accessor.xml:2028
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:51
+#, no-c-format
+msgid ""
+"SELECT GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+" geometrytype\n"
+"--------------\n"
+" LINESTRING"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:52
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        POLYHEDRALSURFACE"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:53
+#, no-c-format
+msgid ""
+"SELECT GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" TIN"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:58 reference_accessor.xml:106
+#: reference_accessor.xml:152 reference_accessor.xml:200
+#: reference_accessor.xml:250 reference_accessor.xml:303
+#: reference_accessor.xml:347 reference_accessor.xml:417
+#: reference_accessor.xml:461 reference_accessor.xml:515
+#: reference_accessor.xml:582 reference_accessor.xml:638
+#: reference_accessor.xml:731 reference_accessor.xml:782
+#: reference_accessor.xml:846 reference_accessor.xml:903
+#: reference_accessor.xml:963 reference_accessor.xml:1013
+#: reference_accessor.xml:1050 reference_accessor.xml:1088
+#: reference_accessor.xml:1127 reference_accessor.xml:1171
+#: reference_accessor.xml:1211 reference_accessor.xml:1234
+#: reference_accessor.xml:1274 reference_accessor.xml:1315
+#: reference_accessor.xml:1372 reference_accessor.xml:1432
+#: reference_accessor.xml:1472 reference_accessor.xml:1522
+#: reference_accessor.xml:1579 reference_accessor.xml:1637
+#: reference_accessor.xml:1682 reference_accessor.xml:1727
+#: reference_accessor.xml:1770 reference_accessor.xml:1815
+#: reference_accessor.xml:1860 reference_accessor.xml:1903
+#: reference_accessor.xml:1948 reference_accessor.xml:1990
+#: reference_accessor.xml:2035
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:64
+#, no-c-format
+msgid "ST_Boundary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:66
+#, no-c-format
+msgid "Returns the closure of the combinatorial boundary of this Geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:72
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Boundary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:83
+#, no-c-format
+msgid ""
+"Returns the closure of the combinatorial boundary of this Geometry. The "
+"combinatorial boundary is defined as described in section 3.12.3.2 of the "
+"OGC SPEC. Because the result of this function is a closure, and hence "
+"topologically closed, the resulting boundary can be represented using "
+"representational geometry primitives as discussed in the OGC SPEC, section "
+"3.12.2."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:90
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:92
+#, no-c-format
+msgid ""
+"Prior to 2.0.0, this function throws an exception if used with "
+"<varname>GEOMETRYCOLLECTION</varname>. From 2.0.0 up it will return NULL "
+"instead (unsupported input)."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:94
+#, no-c-format
+msgid "&sfs_compliant; OGC SPEC s2.1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:95
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.14"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:97
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for Triangle was introduced"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:103
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 "
+"1)')));\n"
+"st_astext\n"
+"-----------\n"
+"MULTIPOINT(1 1,-1 1)\n"
+"\n"
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 "
+"1))')));\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(1 1,0 0,-1 1,1 1)\n"
+"\n"
+"--Using a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, "
+"1 1 1))')));\n"
+"\n"
+"st_asewkt\n"
+"-----------------------------------\n"
+"LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)\n"
+"\n"
+"--Using a 3d multilinestring\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('MULTILINESTRING((1 1 1,0 0 "
+"0.5, -1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"MULTIPOINT(-1 1 1,1 1 0.75)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:108
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakePolygon\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:114
+#, no-c-format
+msgid "ST_CoordDim"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:116
+#, no-c-format
+msgid ""
+"<refpurpose>Return the coordinate dimension of the ST_Geometry value.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:121
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_CoordDim</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:131
+#, no-c-format
+msgid "<para>Return the coordinate dimension of the ST_Geometry value.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:133
+#, no-c-format
+msgid "This is the MM compliant alias name for <xref linkend=\"ST_NDims\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:136
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:147
+#, no-c-format
+msgid ""
+"SELECT ST_CoordDim('CIRCULARSTRING(1 2 3, 1 3 4, 5 6 7, 8 9 10, 11 12 "
+"13)');\n"
+"                        ---result--\n"
+"                                3\n"
+"\n"
+"                                SELECT ST_CoordDim(ST_Point(1,2));\n"
+"                        --result--\n"
+"                                2"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:160
+#, no-c-format
+msgid "ST_Dimension"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:162
+#, no-c-format
+msgid ""
+"The inherent dimension of this Geometry object, which must be less than or "
+"equal to the coordinate dimension."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:168
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Dimension</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:179
+#, no-c-format
+msgid ""
+"The inherent dimension of this Geometry object, which must be less than or "
+"equal to the coordinate dimension. OGC SPEC s2.1.1.1 - returns 0 for "
+"<varname>POINT</varname>, 1 for <varname>LINESTRING</varname>, 2 for "
+"<varname>POLYGON</varname>, and the largest dimension of the components of a "
+"<varname>GEOMETRYCOLLECTION</varname>. If unknown (empty geometry) null is "
+"returned."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:187
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.2"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:188
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces and TINs was introduced. No "
+"longer throws an exception if given empty geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:189
+#, no-c-format
+msgid ""
+"Prior to 2.0.0, this function throws an exception if used with empty "
+"geometry."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:197
+#, no-c-format
+msgid ""
+"SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))');\n"
+"ST_Dimension\n"
+"-----------\n"
+"1"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:208
+#, no-c-format
+msgid "ST_EndPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:210
+#, no-c-format
+msgid ""
+"Returns the last point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:216
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_EndPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:227
+#, no-c-format
+msgid ""
+"Returns the last point of a <varname>LINESTRING</varname> geometry as a "
+"<varname>POINT</varname> or <varname>NULL</varname> if the input parameter "
+"is not a <varname>LINESTRING</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:231
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.4"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:235 reference_accessor.xml:1507
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring. The older behavior was an "
+"undocumented feature, but people who assumed they had their data stored as "
+"LINESTRING may experience these returning NULL in 2.0 now."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:246
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::"
+"geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(3 3)\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_EndPoint('POINT(1 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--3d endpoint\n"
+"SELECT ST_AsEWKT(ST_EndPoint('LINESTRING(1 1 2, 1 2 3, 0 0 5)'));\n"
+"  st_asewkt\n"
+"--------------\n"
+" POINT(0 0 5)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:252
+#, no-c-format
+msgid ", <xref linkend=\"ST_StartPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:259
+#, no-c-format
+msgid "ST_Envelope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:261
+#, no-c-format
+msgid ""
+"Returns a geometry representing the double precision (float8) bounding box "
+"of the supplied geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:267
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:278
+#, no-c-format
+msgid ""
+"Returns the float8 minimum bounding box for the supplied geometry, as a "
+"geometry. The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>)). (PostGIS will add a "
+"<varname>ZMIN</varname>/<varname>ZMAX</varname> coordinate as well)."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:288
+#, no-c-format
+msgid ""
+"Degenerate cases (vertical lines, points) will return a geometry of lower "
+"dimension than <varname>POLYGON</varname>, ie. <varname>POINT</varname> or "
+"<varname>LINESTRING</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:292
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 behavior changed to output double precision instead of "
+"float4"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:293 reference_accessor.xml:671
+#: reference_accessor.xml:769 reference_accessor.xml:1460
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:294
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.15"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:300
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(1 3)\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('LINESTRING(0 0, 1 3)'::geometry));\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 3,1 3,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000001 1, 1.0000001 0, 0 "
+"0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000000001 1, "
+"1.0000000001 0, 0 0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"        \n"
+"SELECT Box3D(geom), Box2D(geom), ST_AsText(ST_Envelope(geom)) As "
+"envelopewkt\n"
+"        FROM (SELECT 'POLYGON((0 0, 0 1000012333334.34545678, 1.0000001 1, "
+"1.0000001 0, 0 0))'::geometry As geom) As foo;\n"
+"\n"
+"<!-- TODO: Fix examples to reflect new behavior -->"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:305
+#, no-c-format
+msgid ", <xref linkend=\"Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:311
+#, no-c-format
+msgid "ST_ExteriorRing"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:313
+#, no-c-format
+msgid ""
+"Returns a line string representing the exterior ring of the "
+"<varname>POLYGON</varname> geometry. Return NULL if the geometry is not a "
+"polygon. Will not work with MULTIPOLYGON"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:319
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ExteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:330
+#, no-c-format
+msgid ""
+"Returns a line string representing the exterior ring of the "
+"<varname>POLYGON</varname> geometry. Return NULL if the geometry is not a "
+"polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:333
+#, no-c-format
+msgid "Only works with POLYGON geometry types"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:335 reference_accessor.xml:715
+#, no-c-format
+msgid "&sfs_compliant; 2.1.5.1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:336
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.3, 8.3.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:343
+#, no-c-format
+msgid ""
+"--If you have a table of polygons\n"
+"SELECT gid, ST_ExteriorRing(the_geom) AS ering\n"
+"FROM sometable;\n"
+"\n"
+"--If you have a table of MULTIPOLYGONs\n"
+"--and want to return a MULTILINESTRING composed of the exterior rings of "
+"each polygon\n"
+"SELECT gid, ST_Collect(ST_ExteriorRing(the_geom)) AS erings\n"
+"        FROM (SELECT gid, (ST_Dump(the_geom)).geom As the_geom\n"
+"                        FROM sometable) As foo\n"
+"GROUP BY gid;\n"
+"\n"
+"--3d Example\n"
+"SELECT ST_AsEWKT(\n"
+"        ST_ExteriorRing(\n"
+"        ST_GeomFromEWKT('POLYGON((0 0 1, 1 1 1, 1 2 1, 1 1 1, 0 0 1))')\n"
+"        )\n"
+");\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"LINESTRING(0 0 1,1 1 1,1 2 1,1 1 1,0 0 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:349
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_NumInteriorRings\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:359
+#, no-c-format
+msgid "ST_GeometryN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:361
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
+"(MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, "
+"POLYHEDRALSURFACE Otherwise, return NULL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:368
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeometryN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:379
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
+"(MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, "
+"POLYHEDRALSURFACE Otherwise, return NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:384 reference_accessor.xml:1405
+#, no-c-format
+msgid ""
+"Index is 1-based as for OGC specs since version 0.8.0. Previous versions "
+"implemented this as 0-based instead."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:389
+#, no-c-format
+msgid ""
+"If you want to extract all geometries, of a geometry, ST_Dump is more "
+"efficient and will also work for singular geoms."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:392
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Prior versions would return NULL for singular geometries. "
+"This was changed to return the geometry for ST_GeometryN(..,1) case."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:394
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.1.5"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:404
+#, no-c-format
+msgid "Standard Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:406
+#, no-c-format
+msgid ""
+"--Extracting a subset of points from a 3d multipoint\n"
+"SELECT n, ST_AsEWKT(ST_GeometryN(the_geom, n)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('MULTIPOINT(1 2 7, 3 4 7, 5 6 7, 8 9 10)') ),\n"
+"( ST_GeomFromEWKT('MULTICURVE(CIRCULARSTRING(2.5 2.5,4.5 2.5, 3.5 3.5), (10 "
+"11, 12 11))') )\n"
+"        )As foo(the_geom)\n"
+"        CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);\n"
+"\n"
+" n |               geomewkt\n"
+"---+-----------------------------------------\n"
+" 1 | POINT(1 2 7)\n"
+" 2 | POINT(3 4 7)\n"
+" 3 | POINT(5 6 7)\n"
+" 4 | POINT(8 9 10)\n"
+" 1 | CIRCULARSTRING(2.5 2.5,4.5 2.5,3.5 3.5)\n"
+" 2 | LINESTRING(10 11,12 11)\n"
+"\n"
+"\n"
+"--Extracting all geometries (useful when you want to assign an id)\n"
+"SELECT gid, n, ST_GeometryN(the_geom, n)\n"
+"FROM sometable CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:409
+#, no-c-format
+msgid "Polyhedral Surfaces, TIN and Triangle Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:410
+#, no-c-format
+msgid ""
+"-- Polyhedral surface example\n"
+"-- Break a Polyhedral surface into its faces\n"
+"SELECT ST_AsEWKT(ST_GeometryN(p_geom,3)) As geom_ewkt\n"
+"  FROM (SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")')  AS p_geom )  AS a;\n"
+"\n"
+"                geom_ewkt\n"
+"------------------------------------------\n"
+" POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:412
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT ST_AsEWKT(ST_GeometryN(geom,2)) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+"-- result --\n"
+"                 wkt\n"
+"-------------------------------------\n"
+" TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:419 reference_accessor.xml:1276
+#, no-c-format
+msgid ", <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:425
+#, no-c-format
+msgid "ST_GeometryType"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:426
+#, no-c-format
+msgid "Return the geometry type of the ST_Geometry value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:431
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:440
+#, no-c-format
+msgid ""
+"Returns the type of the geometry as a string. EG: 'ST_Linestring', "
+"'ST_Polygon','ST_MultiPolygon' etc. This function differs from "
+"GeometryType(geometry) in the case of the string and ST in front that is "
+"returned, as well as the fact that it will not indicate whether the geometry "
+"is measured."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:442 reference_accessor.xml:563
+#: reference_accessor.xml:1074
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:443
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:452
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                        --result\n"
+"                        ST_LineString"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:454 reference_accessor.xml:456
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        ST_PolyhedralSurface"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:458
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" ST_Tin"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:471
+#, no-c-format
+msgid "ST_InteriorRingN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:473
+#, no-c-format
+msgid ""
+"Return the Nth interior linestring ring of the polygon geometry. Return NULL "
+"if the geometry is not a polygon or the given N is out of range."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:480
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_InteriorRingN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:491
+#, no-c-format
+msgid ""
+"Return the Nth interior linestring ring of the polygon geometry. Return NULL "
+"if the geometry is not a polygon or the given N is out of range. index "
+"starts at 1."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:497
+#, no-c-format
+msgid ""
+"This will not work for MULTIPOLYGONs. Use in conjunction with ST_Dump for "
+"MULTIPOLYGONS"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:501
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.6, 8.3.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:510
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_InteriorRingN(the_geom, 1)) As the_geom\n"
+"FROM (SELECT ST_BuildArea(\n"
+"                ST_Collect(ST_Buffer(ST_Point(1,2), 20,3),\n"
+"                        ST_Buffer(ST_Point(1, 2), 10,3))) As the_geom\n"
+"                )  as foo"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:517
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend="
+"\"ST_NumInteriorRing\"/>,"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:530
+#, no-c-format
+msgid "ST_IsClosed"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:532
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
+"and end points are coincident. For Polyhedral surface is closed (volumetric)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:539
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsClosed</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:550
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
+"and end points are coincident. For Polyhedral Surfaces, it tells you if the "
+"surface is areal (open) or volumetric (closed)."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:554
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.5, 9.3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:556
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of <function>ST_IsClosed(<varname>NULL</varname>)</"
+"function> to be 0, while PostGIS returns <varname>NULL</varname>."
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:570
+#, no-c-format
+msgid "Line String and Point Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:572
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 0 1, 1 1, 0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTILINESTRING((0 0, 0 1, 1 1, 0 0),(0 0, 1 "
+"1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('POINT(0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTIPOINT((0 0), (1 1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:576
+#, no-c-format
+msgid "Polyhedral Surface Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:578
+#, no-c-format
+msgid ""
+"-- A cube --\n"
+"                SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 "
+"0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"\n"
+"\n"
+" -- Same as cube but missing a side --\n"
+" SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" f"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:590
+#, no-c-format
+msgid "ST_IsCollection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:592
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the argument is a collection "
+"(<varname>MULTI*</varname>, <varname>GEOMETRYCOLLECTION</varname>, ...)"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:599
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:609
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the geometry type of the argument is "
+"either:"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:612
+#, no-c-format
+msgid "GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:613
+#, no-c-format
+msgid "MULTI{POINT,POLYGON,LINESTRING,CURVE,SURFACE}"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:614
+#, no-c-format
+msgid "COMPOUNDCURVE"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:619
+#, no-c-format
+msgid ""
+"This function analyzes the type of the geometry. This means that it will "
+"return <varname>TRUE</varname> on collections that are empty or that contain "
+"a single element."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:634
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_IsCollection('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT EMPTY'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0), (42 42))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('GEOMETRYCOLLECTION(POINT(0 0))'::"
+"geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:646
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:648
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is an empty geometrycollection, polygon, point "
+"etc."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:654
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:664
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is an empty geometry. If true, then this "
+"Geometry represents an empty geometry collection, polygon, point etc."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:667
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsEmpty(NULL) to be 0, while PostGIS returns "
+"NULL."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:672
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.7"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:674
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:682
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+"\n"
+" st_isempty\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))')) = "
+"false;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('CIRCULARSTRING EMPTY'));\n"
+"  st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:689
+#, no-c-format
+msgid "ST_IsRing"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:691
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
+"both closed and simple."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:697
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:708
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
+"both <xref linkend=\"ST_IsClosed\"/> (<function>ST_StartPoint(<parameter>g</"
+"parameter>)</function> <function>~=</function> "
+"<function>ST_Endpoint(<parameter>g</parameter>)</function>) and <xref "
+"linkend=\"ST_IsSimple\"/> (does not self intersect)."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:716
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.6"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:718
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of <function>ST_IsRing(<varname>NULL</varname>)</"
+"function> to be 0, while PostGIS returns <varname>NULL</varname>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:727
+#, no-c-format
+msgid ""
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 1, 1 0, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" t         | t           | t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 0, 1 1, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" f         | t           | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:733
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_StartPoint\"/>, <xref "
+"linkend=\"ST_EndPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:741
+#, no-c-format
+msgid "ST_IsSimple"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:743
+#, no-c-format
+msgid ""
+"Returns (TRUE) if this Geometry has no anomalous geometric points, such as "
+"self intersection or self tangency."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:749
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsSimple</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:759
+#, no-c-format
+msgid ""
+"Returns true if this Geometry has no anomalous geometric points, such as "
+"self intersection or self tangency. For more information on the OGC's "
+"definition of geometry simplicity and validity, refer to <link linkend="
+"\"OGC_Validity\">\"Ensuring OpenGIS compliancy of geometries\"</link>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:765
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsSimple(NULL) to be 0, while PostGIS "
+"returns NULL."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:770
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.8"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:778
+#, no-c-format
+msgid ""
+"SELECT ST_IsSimple(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+" st_issimple\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsSimple(ST_GeomFromText('LINESTRING(1 1,2 2,2 3.5,1 3,1 2,2 "
+"1)'));\n"
+" st_issimple\n"
+"-------------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:790
+#, no-c-format
+msgid "ST_IsValid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:792
+#, no-c-format
+msgid ""
+"Returns <varname>true</varname> if the <varname>ST_Geometry</varname> is "
+"well formed."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:798
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_IsValid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>flags</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:816
+#, no-c-format
+msgid ""
+"Test if an ST_Geometry value is well formed. For geometries that are "
+"invalid, the PostgreSQL NOTICE will provide details of why it is not valid. "
+"For more information on the OGC's definition of geometry simplicity and "
+"validity, refer to <link linkend=\"OGC_Validity\">\"Ensuring OpenGIS "
+"compliancy of geometries\"</link>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:822
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsValid(NULL) to be 0, while PostGIS returns "
+"NULL."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:826
+#, no-c-format
+msgid ""
+"The version accepting flags is available starting with 2.0.0 and requires "
+"GEOS >= 3.3.0. Such version does not print a NOTICE explaining the "
+"invalidity. Allowed <varname>flags</varname> are documented in <xref linkend="
+"\"ST_IsValidDetail\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:834
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:842
+#, no-c-format
+msgid ""
+"SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,\n"
+"        ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As "
+"bad_poly\n"
+"--results\n"
+"NOTICE:  Self-intersection at or near point 0 0\n"
+" good_line | bad_poly\n"
+"-----------+----------\n"
+" t         | f"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:848
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/"
+">, <xref linkend=\"ST_Summary\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:859
+#, no-c-format
+msgid "ST_IsValidReason"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:861
+#, no-c-format
+msgid ""
+"Returns text stating if a geometry is valid or not and if not valid, a "
+"reason why."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:865
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_IsValidReason</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_IsValidReason</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>flags</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:881
+#, no-c-format
+msgid ""
+"Returns text stating if a geometry is valid or not an if not valid, a reason "
+"why."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:883
+#, no-c-format
+msgid ""
+"Useful in combination with ST_IsValid to generate a detailed report of "
+"invalid geometries and reasons."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:885
+#, no-c-format
+msgid ""
+"Allowed <varname>flags</varname> are documented in <xref linkend="
+"\"ST_IsValidDetail\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:889
+#, no-c-format
+msgid "Availability: 1.4 - requires GEOS >= 3.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:890
+#, no-c-format
+msgid ""
+"Availability: 2.0 - requires GEOS >= 3.3.0 for the version taking flags."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:898
+#, no-c-format
+msgid ""
+"--First 3 Rejects from a successful quintuplet experiment\n"
+"SELECT gid, ST_IsValidReason(the_geom) as validity_info\n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      validity_info\n"
+"------+--------------------------\n"
+" 5330 | Self-intersection [32 5]\n"
+" 5340 | Self-intersection [42 5]\n"
+" 5350 | Self-intersection [52 5]\n"
+"\n"
+" --simple example\n"
+"SELECT ST_IsValidReason('LINESTRING(220227 150406,2220227 150407,222020 "
+"150410)');\n"
+"\n"
+" st_isvalidreason\n"
+"------------------\n"
+" Valid Geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:905
+#, no-c-format
+msgid ", <xref linkend=\"ST_Summary\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:911
+#, no-c-format
+msgid "ST_IsValidDetail"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:913
+#, no-c-format
+msgid ""
+"Returns a valid_detail (valid,reason,location) row stating if a geometry is "
+"valid or not and if not valid, a reason why and a location where."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:917
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>valid_detail "
+"<function>ST_IsValidDetail</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>flags</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:933
+#, no-c-format
+msgid ""
+"Returns a valid_detail row, formed by a boolean (valid) stating if a "
+"geometry is valid, a varchar (reason) stating a reason why it is invalid and "
+"a geometry (location) pointing out where it is invalid."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:935
+#, no-c-format
+msgid ""
+"Useful to substitute and improve the combination of ST_IsValid and "
+"ST_IsValidReason to generate a detailed report of invalid geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:937
+#, no-c-format
+msgid "The 'flags' argument is a bitfield. It can have the following values:"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:941
+#, no-c-format
+msgid ""
+"1: Consider self-intersecting rings forming holes as valid. This is also "
+"know as \"the ESRI flag\". Note that this is against the OGC model."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:950
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:958
+#, no-c-format
+msgid ""
+"--First 3 Rejects from a successful quintuplet experiment\n"
+"SELECT gid, reason(ST_IsValidDetail(the_geom)), "
+"ST_AsText(location(ST_IsValidDetail(the_geom))) as location \n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      reason       |  location\n"
+"------+-------------------+-------------\n"
+" 5330 | Self-intersection | POINT(32 5)\n"
+" 5340 | Self-intersection | POINT(42 5)\n"
+" 5350 | Self-intersection | POINT(52 5)\n"
+"\n"
+" --simple example\n"
+"SELECT * FROM ST_IsValidDetail('LINESTRING(220227 150406,2220227 "
+"150407,222020 150410)');\n"
+"\n"
+" valid | reason | location\n"
+"-------+--------+----------\n"
+" t     |        |"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:965
+#, no-c-format
+msgid ", <xref linkend=\"ST_IsValidReason\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:974
+#, no-c-format
+msgid "ST_M"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:976
+#, no-c-format
+msgid ""
+"<refpurpose>Return the M coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:982
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_M</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:992
+#, no-c-format
+msgid ""
+"<para>Return the M coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:996
+#, no-c-format
+msgid ""
+"This is not (yet) part of the OGC spec, but is listed here to complete the "
+"point coordinate extractor function list."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1000 reference_accessor.xml:1891
+#, no-c-format
+msgid "&sqlmm_compliant;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1008
+#, no-c-format
+msgid ""
+"SELECT ST_M(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_m\n"
+"------\n"
+"        4\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1015
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1021
+#, no-c-format
+msgid "ST_NDims"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1022
+#, no-c-format
+msgid ""
+"Returns coordinate dimension of the geometry as a small int. Values are: 2,3 "
+"or 4."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1028
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NDims</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1038
+#, no-c-format
+msgid ""
+"Returns the coordinate dimension of the geometry. PostGIS supports 2 - (x,"
+"y) , 3 - (x,y,z) or 2D with measure - x,y,m, and 4 - 3D with measure space x,"
+"y,z,m"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1047
+#, no-c-format
+msgid ""
+"SELECT ST_NDims(ST_GeomFromText('POINT(1 1)')) As d2point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINT(1 1 2)')) As d3point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINTM(1 1 0.5)')) As d2pointm;\n"
+"\n"
+"         d2point | d3point | d2pointm\n"
+"---------+---------+----------\n"
+"           2 |       3 |        3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1051
+#, no-c-format
+msgid ", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1057
+#, no-c-format
+msgid "ST_NPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1058
+#, no-c-format
+msgid "Return the number of points (vertexes) in a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1063
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1073
+#, no-c-format
+msgid "Return the number of points in a geometry. Works for all geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1075
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1085
+#, no-c-format
+msgid ""
+"SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 "
+"29.31,77.29 29.07)'));\n"
+"--result\n"
+"4\n"
+"\n"
+"--Polygon in 3D space\n"
+"SELECT ST_NPoints(ST_GeomFromEWKT('LINESTRING(77.29 29.07 1,77.42 29.26 "
+"0,77.27 29.31 -1,77.29 29.07 3)'))\n"
+"--result\n"
+"4"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1096
+#, no-c-format
+msgid "ST_NRings"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1097
+#, no-c-format
+msgid ""
+"If the geometry is a polygon or multi-polygon returns the number of rings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1102
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1112
+#, no-c-format
+msgid ""
+"If the geometry is a polygon or multi-polygon returns the number of rings. "
+"Unlike NumInteriorRings, it counts the outer rings as well."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1122
+#, no-c-format
+msgid ""
+"SELECT ST_NRings(the_geom) As Nrings, ST_NumInteriorRings(the_geom) As "
+"ninterrings\n"
+"                                        FROM (SELECT "
+"ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))') As the_geom) As foo;\n"
+"         nrings | ninterrings\n"
+"--------+-------------\n"
+"          1 |           0\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1135
+#, no-c-format
+msgid "ST_NumGeometries"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1136
+#, no-c-format
+msgid ""
+"If geometry is a GEOMETRYCOLLECTION (or MULTI*) return the number of "
+"geometries, for single geometries will return 1, otherwise return NULL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1142
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumGeometries</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1152
+#, no-c-format
+msgid ""
+"Returns the number of Geometries. If geometry is a GEOMETRYCOLLECTION (or "
+"MULTI*) return the number of geometries, for single geometries will return "
+"1, otherwise return NULL."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1156
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this would return NULL if the geometry was "
+"not a collection/MULTI type. 2.0.0+ now returns 1 for single geometries e.g "
+"POLYGON, LINESTRING, POINT."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1158
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.1.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1168
+#, no-c-format
+msgid ""
+"--Prior versions would have returned NULL for this -- in 2.0.0 this returns "
+"1\n"
+"SELECT ST_NumGeometries(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"--result\n"
+"1\n"
+"\n"
+"--Geometry Collection Example - multis count as one geom in a collection\n"
+"SELECT ST_NumGeometries(ST_GeomFromEWKT('GEOMETRYCOLLECTION(MULTIPOINT(-2 "
+"3 , -2 2),\n"
+"LINESTRING(5 5 ,10 10),\n"
+"POLYGON((-7 4.2,-7.1 5,-7.1 4.3,-7 4.2)))'));\n"
+"--result\n"
+"3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1173
+#, no-c-format
+msgid ", <xref linkend=\"ST_Multi\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1179
+#, no-c-format
+msgid "ST_NumInteriorRings"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1180
+#, no-c-format
+msgid ""
+"Return the number of interior rings of the a polygon in the geometry. This "
+"will work with POLYGON and return NULL for a MULTIPOLYGON type or any other "
+"type"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1186
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumInteriorRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1196
+#, no-c-format
+msgid ""
+"Return the number of interior rings of the first polygon in the geometry. "
+"This will work with both POLYGON and MULTIPOLYGON types but only looks at "
+"the first polygon. Return NULL if there is no polygon in the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1201
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.5"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1202
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions it would return the number of interior "
+"rings for the first POLYGON in a MULTIPOLYGON."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1208
+#, no-c-format
+msgid ""
+"--If you have a regular polygon\n"
+"SELECT gid, field1, field2, ST_NumInteriorRings(the_geom) AS numholes\n"
+"FROM sometable;\n"
+"\n"
+"--If you have multipolygons\n"
+"--And you want to know the total number of interior rings in the "
+"MULTIPOLYGON\n"
+"SELECT gid, field1, field2, SUM(ST_NumInteriorRings(the_geom)) AS numholes\n"
+"FROM (SELECT gid, field1, field2, (ST_Dump(the_geom)).geom As the_geom\n"
+"        FROM sometable) As foo\n"
+"GROUP BY gid, field1,field2;"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1219
+#, no-c-format
+msgid "ST_NumInteriorRing"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1220
+#, no-c-format
+msgid ""
+"Return the number of interior rings of a polygon in the geometry. Synonym "
+"for ST_NumInteriorRings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1226
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumInteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1242
+#, no-c-format
+msgid "ST_NumPatches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1243
+#, no-c-format
+msgid ""
+"Return the number of faces on a Polyhedral Surface. Will return null for non-"
+"polyhedral geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1248
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumPatches</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1258
+#, no-c-format
+msgid ""
+"Return the number of faces on a Polyhedral Surface. Will return null for non-"
+"polyhedral geometries. This is an alias for ST_NumGeometries to support MM "
+"naming. Faster to use ST_NumGeometries if you don't care about MM convention."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1261 reference_accessor.xml:1356
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1264 reference_accessor.xml:1357
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: ?"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1271
+#, no-c-format
+msgid ""
+"SELECT ST_NumPatches(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                --result\n"
+"                6"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1282
+#, no-c-format
+msgid "ST_NumPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1283
+#, no-c-format
+msgid ""
+"Return the number of points in an ST_LineString or ST_CircularString value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1289
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1299
+#, no-c-format
+msgid ""
+"Return the number of points in an ST_LineString or ST_CircularString value. "
+"Prior to 1.4 only works with Linestrings as the specs state. From 1.4 "
+"forward this is an alias for ST_NPoints which returns number of vertexes for "
+"not just line strings. Consider using ST_NPoints instead which is multi-"
+"purpose and works with many geometry types."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1306
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1312
+#, no-c-format
+msgid ""
+"SELECT ST_NumPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                --result\n"
+"                4"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1323
+#, no-c-format
+msgid "ST_PatchN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1325
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry (face) if the geometry is a "
+"POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1332
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PatchN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1343
+#, no-c-format
+msgid ""
+">Return the 1-based Nth geometry (face) if the geometry is a "
+"POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL. This returns "
+"the same answer as ST_GeometryN for Polyhedral Surfaces. Using ST_GemoetryN "
+"is faster."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1349
+#, no-c-format
+msgid "Index is 1-based."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1353
+#, no-c-format
+msgid ""
+"If you want to extract all geometries, of a geometry, ST_Dump is more "
+"efficient."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1367
+#, no-c-format
+msgid ""
+"--Extract the 2nd face of the polyhedral surface\n"
+"SELECT ST_AsEWKT(ST_PatchN(geom, 2)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )')) ) As foo(geom);\n"
+"\n"
+"              geomewkt\n"
+"---+-----------------------------------------\n"
+" POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1374
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
+"linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1380
+#, no-c-format
+msgid "ST_PointN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1382
+#, no-c-format
+msgid ""
+"Return the Nth point in the first linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1389
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PointN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1400
+#, no-c-format
+msgid ""
+"Return the Nth point in a single linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1410
+#, no-c-format
+msgid ""
+"If you want to get the nth point of each line string in a multilinestring, "
+"use in conjunction with ST_Dump"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1415
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.5, 7.3.5"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1418
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1428
+#, no-c-format
+msgid ""
+"-- Extract all POINTs from a LINESTRING\n"
+"SELECT ST_AsText(\n"
+"   ST_PointN(\n"
+"          column1,\n"
+"          generate_series(1, ST_NPoints(column1))\n"
+"   ))\n"
+"FROM ( VALUES ('LINESTRING(0 0, 1 1, 2 2)'::geometry) ) AS foo;\n"
+"\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 0)\n"
+" POINT(1 1)\n"
+" POINT(2 2)\n"
+"(3 rows)\n"
+"\n"
+"--Example circular string\n"
+"SELECT ST_AsText(ST_PointN(ST_GeomFromText('CIRCULARSTRING(1 2, 3 2, 1 "
+"2)'),2));\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"POINT(3 2)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1440
+#, no-c-format
+msgid "ST_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1441
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier for the ST_Geometry as defined in "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1446
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1456
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier for the ST_Geometry as defined in "
+"spatial_ref_sys table. <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1457
+#, no-c-format
+msgid ""
+"spatial_ref_sys table is a table that catalogs all spatial reference systems "
+"known to PostGIS and is used for transformations from one spatial reference "
+"system to another. So verifying you have the right spatial reference system "
+"identifier is important if you plan to ever transform your geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1461
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1469
+#, no-c-format
+msgid ""
+"SELECT ST_SRID(ST_GeomFromText('POINT(-71.1043 42.315)',4326));\n"
+"                --result\n"
+"                4326"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1474
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1480
+#, no-c-format
+msgid "ST_StartPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1482
+#, no-c-format
+msgid ""
+"Returns the first point of a <varname>LINESTRING</varname> geometry as a "
+"<varname>POINT</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1488
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_StartPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1499
+#, no-c-format
+msgid ""
+"Returns the first point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname> "
+"or <varname>NULL</varname> if the input parameter is not a "
+"<varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1503
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1518
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_StartPoint('LINESTRING(0 1, 0 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 1)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_StartPoint('POINT(0 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--3d line\n"
+"SELECT ST_AsEWKT(ST_StartPoint('LINESTRING(0 1 1, 0 2 2)'::geometry));\n"
+" st_asewkt\n"
+"------------\n"
+" POINT(0 1 1)\n"
+"(1 row)\n"
+"\n"
+"-- circular linestring --\n"
+"SELECT ST_AsText(ST_StartPoint('CIRCULARSTRING(5 2,-3 1.999999, -2 1, -4 2, "
+"5 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(5 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1524
+#, no-c-format
+msgid ", <xref linkend=\"ST_PointN\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1529
+#, no-c-format
+msgid "ST_Summary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1531
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:1537
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_Summary</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1552
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1554
+#, no-c-format
+msgid ""
+"Flags shown square brackets after the geometry type have the following "
+"meaning:"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1558
+#, no-c-format
+msgid "M: has M ordinate"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1559
+#, no-c-format
+msgid "Z: has Z ordinate"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1560
+#, no-c-format
+msgid "B: has a cached bounding box"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1561
+#, no-c-format
+msgid "G: is geodetic (geography)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1562
+#, no-c-format
+msgid "S: has spatial reference system"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1566
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1567
+#, no-c-format
+msgid "Enhanced: 2.0.0 added support for geography"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1568
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 S flag to denote if has a known spatial reference system"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1575
+#, no-c-format
+msgid ""
+"=# SELECT ST_Summary(ST_GeomFromText('LINESTRING(0 0, 1 1)')) as geom,\n"
+"        ST_Summary(ST_GeogFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) "
+"geog;\n"
+"            geom             |          geog    \n"
+"-----------------------------+--------------------------\n"
+" LineString[B] with 2 points | Polygon[BGS] with 1 rings\n"
+"                             | ring 0 has 5 points\n"
+"                             :\n"
+"(1 row)\n"
+"\n"
+"\n"
+"=# SELECT ST_Summary(ST_GeogFromText('LINESTRING(0 0 1, 1 1 1)')) As "
+"geog_line,\n"
+"        ST_Summary(ST_GeomFromText('SRID=4326;POLYGON((0 0 1, 1 1 2, 1 2 3, "
+"1 1 1, 0 0 1))')) As geom_poly;\n"
+";\n"
+"           geog_line             |        geom_poly\n"
+"-------------------------------- +--------------------------\n"
+" LineString[ZBGS] with 2 points | Polygon[ZBS] with 1 rings\n"
+"                                :    ring 0 has 5 points\n"
+"                                :\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1581
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_AddBBox\"/>, <xref linkend=\"ST_Force_3DM\"/>, "
+"<xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force2D\"/>, <xref "
+"linkend=\"geography\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1590
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_IsValidReason\"/>, "
+"<xref linkend=\"ST_IsValidDetail\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1601
+#, no-c-format
+msgid "ST_X"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1603
+#, no-c-format
+msgid ""
+"<refpurpose>Return the X coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1609
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_X</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1619
+#, no-c-format
+msgid ""
+"<para>Return the X coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1622
+#, no-c-format
+msgid ""
+"If you want to get the max min x values of any geometry look at ST_XMin, "
+"ST_XMax functions."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1624
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1632
+#, no-c-format
+msgid ""
+"SELECT ST_X(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_x\n"
+"------\n"
+"        1\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+" st_y\n"
+"------\n"
+"  1.5\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1639
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_Z\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1645
+#, no-c-format
+msgid "ST_XMax"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1647
+#, no-c-format
+msgid ""
+"<refpurpose>Returns X maxima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1652
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_XMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1662
+#, no-c-format
+msgid "<para>Returns X maxima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1665 reference_accessor.xml:1710
+#: reference_accessor.xml:1798 reference_accessor.xml:1843
+#: reference_accessor.xml:1931 reference_accessor.xml:2018
+#, no-c-format
+msgid ""
+"Although this function is only defined for box3d, it will work for box2d and "
+"geometry because of the auto-casting behavior defined for geometries and "
+"box2d. However you can not feed it a geometry or box2d text representation, "
+"since that will not auto-cast."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1677
+#, no-c-format
+msgid ""
+"SELECT ST_XMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmax\n"
+"-------\n"
+"4\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmax\n"
+"-------\n"
+"5\n"
+"\n"
+"SELECT ST_XMax(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmax\n"
+"-------\n"
+"3\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_XMax('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmax\n"
+"--------\n"
+"220288.248780547"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1684 reference_accessor.xml:1729
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1690
+#, no-c-format
+msgid "ST_XMin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1692
+#, no-c-format
+msgid ""
+"<refpurpose>Returns X minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1697
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_XMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1707
+#, no-c-format
+msgid "<para>Returns X minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1722
+#, no-c-format
+msgid ""
+"SELECT ST_XMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmin\n"
+"-------\n"
+"-3\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_XMin('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmin\n"
+"--------\n"
+"220186.995121892"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1735
+#, no-c-format
+msgid "ST_Y"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1737
+#, no-c-format
+msgid ""
+"<refpurpose>Return the Y coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1743
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Y</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1753
+#, no-c-format
+msgid ""
+"<para>Return the Y coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1757
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_Y(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_y\n"
+"------\n"
+"        2\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+" st_y\n"
+"------\n"
+"  1.5\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1772
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_X\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/"
+">, <xref linkend=\"ST_Z\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1778
+#, no-c-format
+msgid "ST_YMax"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1780
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Y maxima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1785
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_YMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1795
+#, no-c-format
+msgid "<para>Returns Y maxima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1810
+#, no-c-format
+msgid ""
+"SELECT ST_YMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_ymax\n"
+"-------\n"
+"5\n"
+"\n"
+"SELECT ST_YMax(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_ymax\n"
+"-------\n"
+"6\n"
+"\n"
+"SELECT ST_YMax(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_ymax\n"
+"-------\n"
+"4\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_YMax('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_YMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_ymax\n"
+"--------\n"
+"150506.126829327"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1817
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1823
+#, no-c-format
+msgid "ST_YMin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1825
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Y minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1830
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_YMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1840
+#, no-c-format
+msgid "<para>Returns Y minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1855
+#, no-c-format
+msgid ""
+"SELECT ST_YMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_ymin\n"
+"-------\n"
+"2\n"
+"\n"
+"SELECT ST_YMin(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_ymin\n"
+"-------\n"
+"3\n"
+"\n"
+"SELECT ST_YMin(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_ymin\n"
+"-------\n"
+"2\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_YMin('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_YMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_ymin\n"
+"--------\n"
+"150406"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1862
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1868
+#, no-c-format
+msgid "ST_Z"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1870
+#, no-c-format
+msgid ""
+"<refpurpose>Return the Z coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1876
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Z</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1886
+#, no-c-format
+msgid ""
+"<para>Return the Z coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1898
+#, no-c-format
+msgid ""
+"SELECT ST_Z(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_z\n"
+"------\n"
+"        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1905
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1911
+#, no-c-format
+msgid "ST_ZMax"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1913 reference_accessor.xml:2000
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Z minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1918
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_ZMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1928
+#, no-c-format
+msgid "Returns Z maxima of a bounding box 2d or 3d or a geometry."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1943
+#, no-c-format
+msgid ""
+"SELECT ST_ZMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_zmax\n"
+"-------\n"
+"6\n"
+"\n"
+"SELECT ST_ZMax(ST_GeomFromEWKT('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_zmax\n"
+"-------\n"
+"7\n"
+"\n"
+"SELECT ST_ZMax('BOX3D(-3 2 1, 3 4 1)' );\n"
+"st_zmax\n"
+"-------\n"
+"1\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_ZMax('LINESTRING(1 3 4, 5 6 7)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_ZMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_zmax\n"
+"--------\n"
+"3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1950
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_ZMax\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1956
+#, no-c-format
+msgid "ST_Zmflag"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1958
+#, no-c-format
+msgid ""
+"<refpurpose>Returns ZM (dimension semantic) flag of the geometries as a "
+"small int. Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1964
+#, no-c-format
+msgid ""
+"<funcdef>smallint <function>ST_Zmflag</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1974
+#, no-c-format
+msgid ""
+"<para>Returns ZM (dimension semantic) flag of the geometries as a small int. "
+"Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1985
+#, no-c-format
+msgid ""
+"SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRING(1 2, 3 4)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 0\n"
+"\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRINGM(1 2 3, 3 4 3)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 1\n"
+"\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('CIRCULARSTRING(1 2 3, 3 4 3, 5 6 3)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 2\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1992
+#, no-c-format
+msgid ", <xref linkend=\"ST_NDims\"/>, <xref linkend=\"ST_Dimension\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1998
+#, no-c-format
+msgid "ST_ZMin"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:2005
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_ZMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:2015
+#, no-c-format
+msgid "<para>Returns Z minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:2030
+#, no-c-format
+msgid ""
+"SELECT ST_ZMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_zmin\n"
+"-------\n"
+"3\n"
+"\n"
+"SELECT ST_ZMin(ST_GeomFromEWKT('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_zmin\n"
+"-------\n"
+"4\n"
+"\n"
+"SELECT ST_ZMin('BOX3D(-3 2 1, 3 4 1)' );\n"
+"st_zmin\n"
+"-------\n"
+"1\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_ZMin('LINESTRING(1 3 4, 5 6 7)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_ZMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_zmin\n"
+"--------\n"
+"1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:2037
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_XMin\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin"
+"\"/>, <xref linkend=\"ST_ZMax\"/>"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_constructor.xml.po b/doc/po/ko_KR/reference_constructor.xml.po
new file mode 100644
index 0000000..3ebbf53
--- /dev/null
+++ b/doc/po/ko_KR/reference_constructor.xml.po
@@ -0,0 +1,3308 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:04+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_constructor.xml:3
+#, no-c-format
+msgid "Geometry Constructors"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:6
+#, no-c-format
+msgid "ST_BdPolyFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:8
+#, no-c-format
+msgid ""
+"<refpurpose>Construct a Polygon given an arbitrary collection of closed "
+"linestrings as a MultiLineString Well-Known text representation.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:23 reference_constructor.xml:72
+#: reference_constructor.xml:123 reference_constructor.xml:159
+#: reference_constructor.xml:188 reference_constructor.xml:215
+#: reference_constructor.xml:267 reference_constructor.xml:318
+#: reference_constructor.xml:366 reference_constructor.xml:409
+#: reference_constructor.xml:438 reference_constructor.xml:481
+#: reference_constructor.xml:555 reference_constructor.xml:594
+#: reference_constructor.xml:645 reference_constructor.xml:677
+#: reference_constructor.xml:730 reference_constructor.xml:777
+#: reference_constructor.xml:822 reference_constructor.xml:860
+#: reference_constructor.xml:905 reference_constructor.xml:964
+#: reference_constructor.xml:1032 reference_constructor.xml:1092
+#: reference_constructor.xml:1131 reference_constructor.xml:1188
+#: reference_constructor.xml:1259 reference_constructor.xml:1304
+#: reference_constructor.xml:1385 reference_constructor.xml:1428
+#: reference_constructor.xml:1470 reference_constructor.xml:1531
+#: reference_constructor.xml:1592 reference_constructor.xml:1646
+#: reference_constructor.xml:1697 reference_constructor.xml:1740
+#: reference_constructor.xml:1796 reference_constructor.xml:1845
+#: reference_constructor.xml:1899 reference_constructor.xml:1942
+#: reference_constructor.xml:1965
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:25
+#, no-c-format
+msgid ""
+"<para>Construct a Polygon given an arbitrary collection of closed "
+"linestrings as a MultiLineString Well-Known text representation.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:30
+#, no-c-format
+msgid ""
+"Throws an error if WKT is not a MULTILINESTRING. Throws an error if output "
+"is a MULTIPOLYGON; use ST_BdMPolyFromText in that case, or see "
+"ST_BuildArea() for a postgis-specific approach."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:36 reference_constructor.xml:88
+#: reference_constructor.xml:281 reference_constructor.xml:921
+#: reference_constructor.xml:989 reference_constructor.xml:1055
+#: reference_constructor.xml:1486 reference_constructor.xml:1608
+#: reference_constructor.xml:1910
+#, no-c-format
+msgid "&sfs_compliant; s3.2.6.2"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:38 reference_constructor.xml:90
+#, no-c-format
+msgid "Availability: 1.1.0 - requires GEOS >= 2.1.0."
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:42 reference_constructor.xml:94
+#: reference_constructor.xml:135 reference_constructor.xml:165
+#: reference_constructor.xml:230 reference_constructor.xml:288
+#: reference_constructor.xml:332 reference_constructor.xml:380
+#: reference_constructor.xml:450 reference_constructor.xml:566
+#: reference_constructor.xml:698 reference_constructor.xml:746
+#: reference_constructor.xml:791 reference_constructor.xml:830
+#: reference_constructor.xml:868 reference_constructor.xml:928
+#: reference_constructor.xml:996 reference_constructor.xml:1060
+#: reference_constructor.xml:1100 reference_constructor.xml:1147
+#: reference_constructor.xml:1400 reference_constructor.xml:1435
+#: reference_constructor.xml:1493 reference_constructor.xml:1554
+#: reference_constructor.xml:1615 reference_constructor.xml:1709
+#: reference_constructor.xml:1764 reference_constructor.xml:1814
+#: reference_constructor.xml:1863 reference_constructor.xml:1915
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:44 reference_constructor.xml:96
+#, no-c-format
+msgid "Forthcoming"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:48 reference_constructor.xml:100
+#: reference_constructor.xml:139 reference_constructor.xml:169
+#: reference_constructor.xml:193 reference_constructor.xml:235
+#: reference_constructor.xml:295 reference_constructor.xml:345
+#: reference_constructor.xml:386 reference_constructor.xml:414
+#: reference_constructor.xml:454 reference_constructor.xml:534
+#: reference_constructor.xml:573 reference_constructor.xml:621
+#: reference_constructor.xml:652 reference_constructor.xml:702
+#: reference_constructor.xml:753 reference_constructor.xml:798
+#: reference_constructor.xml:837 reference_constructor.xml:875
+#: reference_constructor.xml:935 reference_constructor.xml:1003
+#: reference_constructor.xml:1067 reference_constructor.xml:1107
+#: reference_constructor.xml:1154 reference_constructor.xml:1231
+#: reference_constructor.xml:1274 reference_constructor.xml:1338
+#: reference_constructor.xml:1404 reference_constructor.xml:1441
+#: reference_constructor.xml:1500 reference_constructor.xml:1561
+#: reference_constructor.xml:1622 reference_constructor.xml:1673
+#: reference_constructor.xml:1713 reference_constructor.xml:1768
+#: reference_constructor.xml:1821 reference_constructor.xml:1870
+#: reference_constructor.xml:1922 reference_constructor.xml:1946
+#: reference_constructor.xml:1969
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:49
+#, no-c-format
+msgid ", <xref linkend=\"ST_BdMPolyFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:55
+#, no-c-format
+msgid "ST_BdMPolyFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:56
+#, no-c-format
+msgid ""
+"Construct a MultiPolygon given an arbitrary collection of closed linestrings "
+"as a MultiLineString text representation Well-Known text representation."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:63
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BdMPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:74
+#, no-c-format
+msgid ""
+"Construct a Polygon given an arbitrary collection of closed linestrings, "
+"polygons, MultiLineStrings as Well-Known text representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:79
+#, no-c-format
+msgid ""
+"Throws an error if WKT is not a MULTILINESTRING. Forces MULTIPOLYGON output "
+"even when result is really only composed by a single POLYGON; use <link "
+"linkend=\"ST_BdPolyFromText\">ST_BdPolyFromText</link> if you're sure a "
+"single POLYGON will result from operation, or see <link linkend="
+"\"ST_BuildArea\">ST_BuildArea()</link> for a postgis-specific approach."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:101
+#, no-c-format
+msgid ", <xref linkend=\"ST_BdPolyFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:107
+#, no-c-format
+msgid "ST_Box2dFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:109
+#, no-c-format
+msgid "<refpurpose>Return a BOX2D from a GeoHash string.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:114
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Box2dFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:125
+#, no-c-format
+msgid "<para>Return a BOX2D from a GeoHash string.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:127
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_Box2dFromGeoHash "
+"returns a BOX2D based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:129
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_Box2dFromGeoHash will use "
+"that many characters from the GeoHash to create the BOX2D. Lower precision "
+"values results in larger BOX2Ds and larger values increase the precision."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:131 reference_constructor.xml:446
+#: reference_constructor.xml:1705
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0');\n"
+"\n"
+"                st_geomfromgeohash\n"
+"--------------------------------------------------\n"
+" BOX(-115.172816 36.114646,-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 0);\n"
+"\n"
+" st_box2dfromgeohash\n"
+"----------------------\n"
+" BOX(-180 -90,180 90)\n"
+"\n"
+" SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10);\n"
+"                            st_box2dfromgeohash\n"
+"---------------------------------------------------------------------------\n"
+" BOX(-115.17282128334 36.1146408319473,-115.172810554504 36.1146461963654)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:141
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:147
+#, no-c-format
+msgid "ST_GeogFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:148 reference_constructor.xml:177
+#, no-c-format
+msgid ""
+"Return a specified geography value from Well-Known Text representation or "
+"extended (WKT)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:152
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeogFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:160
+#, no-c-format
+msgid ""
+"Returns a geography object from the well-known text or extended well-known "
+"representation. SRID 4326 is assumed. This is an alias for "
+"ST_GeographyFromText. Points are always expressed in long lat form."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:166
+#, no-c-format
+msgid ""
+"--- converting lon lat coords to geography\n"
+"ALTER TABLE sometable ADD COLUMN geog geography(POINT,4326);\n"
+"UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' "
+"|| lat || ')');"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:170
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeographyFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:176
+#, no-c-format
+msgid "ST_GeographyFromText"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:181
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeographyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:189
+#, no-c-format
+msgid ""
+"Returns a geography object from the well-known text representation. SRID "
+"4326 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:194
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:200
+#, no-c-format
+msgid "ST_GeogFromWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:201
+#, no-c-format
+msgid ""
+"Creates a geography instance from a Well-Known Binary geometry "
+"representation (WKB) or extended Well Known Binary (EWKB)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:207
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:217
+#, no-c-format
+msgid ""
+"The <varname>ST_GeogFromWKB</varname> function, takes a well-known binary "
+"representation (WKB) of a geometry or PostGIS Extended WKB and creates an "
+"instance of the appropriate geography type. This function plays the role of "
+"the Geometry Factory in SQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:222
+#, no-c-format
+msgid "If SRID is not specified, it defaults to 4326 (WGS 84 long lat)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:224 reference_constructor.xml:326
+#: reference_constructor.xml:374 reference_constructor.xml:691
+#: reference_constructor.xml:741 reference_constructor.xml:1810
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:232
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table\n"
+"SELECT ST_AsText(\n"
+"ST_GeogFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@')\n"
+");\n"
+"                                          st_astext\n"
+"------------------------------------------------------\n"
+" LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:237
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsBinary\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:244
+#, no-c-format
+msgid "ST_GeomCollFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:246
+#, no-c-format
+msgid ""
+"Makes a collection Geometry from collection WKT with the given SRID. If SRID "
+"is not give, it defaults to 0."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:251
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomCollFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:269
+#, no-c-format
+msgid ""
+"Makes a collection Geometry from the Well-Known-Text (WKT) representation "
+"with the given SRID. If SRID is not give, it defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:272 reference_constructor.xml:1475
+#: reference_constructor.xml:1536 reference_constructor.xml:1597
+#: reference_constructor.xml:1905
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:274
+#, no-c-format
+msgid "Returns null if the WKT is not a GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:276
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are collections, don't "
+"use this function. It is slower than ST_GeomFromText since it adds an "
+"additional validation step."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:282
+#, no-c-format
+msgid "&sqlmm_compliant;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:290
+#, no-c-format
+msgid ""
+"SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 "
+"4))');"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:297 reference_constructor.xml:1624
+#, no-c-format
+msgid ", <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:304
+#, no-c-format
+msgid "ST_GeomFromEWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:305
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Extended Well-Known Binary "
+"representation (EWKB)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:310
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:319
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
+"binary (EWKT) representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:321
+#, no-c-format
+msgid ""
+"The EWKB format is not an OGC standard, but a PostGIS specific format that "
+"includes the spatial reference system (SRID) identifier"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:324 reference_constructor.xml:372
+#: reference_constructor.xml:501 reference_constructor.xml:648
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:325 reference_constructor.xml:373
+#: reference_constructor.xml:503 reference_constructor.xml:562
+#: reference_constructor.xml:608 reference_constructor.xml:863
+#: reference_constructor.xml:1199 reference_constructor.xml:1316
+#: reference_constructor.xml:1395 reference_constructor.xml:1809
+#: reference_constructor.xml:1857
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:327 reference_constructor.xml:375
+#: reference_constructor.xml:504
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:328 reference_constructor.xml:376
+#: reference_constructor.xml:505
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:333
+#, no-c-format
+msgid ""
+"line string binary rep 0f LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932) in NAD 83 long lat (4269)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:335
+#, no-c-format
+msgid ""
+"NOTE: Even though byte arrays are delimited with \\ and may have ', we need "
+"to escape both out with \\ and '' if standard_conforming_strings is off. So "
+"it does not look exactly like its AsEWKB representation."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:337
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\"
+"\\000\\\\003\\\\000\\\\000\\\\000\\\\344J=\n"
+"\\\\013B\\\\312Q\\\\300n\\\\303(\\\\010\\\\036!E@''\\\\277E''K\n"
+"\\\\312Q\\\\300\\\\366{b\\\\235*!E@\\\\225|\\\\354.P\\\\312Q\n"
+"\\\\300p\\\\231\\\\323e1!E@');"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:339
+#, no-c-format
+msgid ""
+"In PostgreSQL 9.1+ - standard_conforming_strings is set to on by default, "
+"where as in past versions it was set to on. You can change defaults as "
+"needed for a single query or at the database or server level. Below is how "
+"you would do it with standard_conforming_strings = on. In this case we "
+"escape the ' with standard ansi ', but slashes are not escaped"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:342
+#, no-c-format
+msgid ""
+"set standard_conforming_strings = on;\n"
+"SELECT ST_GeomFromEWKB('\\001\\002\\000\\000 "
+"\\255\\020\\000\\000\\003\\000\\000\\000\\344J=\\012\\013B\n"
+"    \\312Q\\300n\\303(\\010\\036!E@''\\277E''K\\012\\312Q\\300\\366{b\\235*!"
+"E@\\225|\\354.P\\312Q\\012\\300p\\231\\323e1')"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:346
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:352
+#, no-c-format
+msgid "ST_GeomFromEWKT"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:353
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Extended Well-Known Text "
+"representation (EWKT)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:358
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:367
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
+"text (EWKT) representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:369
+#, no-c-format
+msgid ""
+"The EWKT format is not an OGC standard, but an PostGIS specific format that "
+"includes the spatial reference system (SRID) identifier"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:381
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTILINESTRING((-71.160281 "
+"42.258729,-71.160837 42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTIPOLYGON(((-71.1031880899493 "
+"42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))');"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:382
+#, no-c-format
+msgid ""
+"--3d circular string\n"
+"SELECT ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)');"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:383
+#, no-c-format
+msgid ""
+"--Polyhedral Surface example\n"
+"SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"        ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"        ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"        ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")');"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:387
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:392
+#, no-c-format
+msgid "ST_GeometryFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:393 reference_constructor.xml:1954
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Text representation "
+"(WKT). This is an alias name for ST_GeomFromText"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:396
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeometryFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:410 reference_constructor.xml:1855
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:411 reference_constructor.xml:690
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.40"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:422
+#, no-c-format
+msgid "ST_GeomFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:424
+#, no-c-format
+msgid "Return a geometry from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:429
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:440
+#, no-c-format
+msgid ""
+"Return a geometry from a GeoHash string. The geometry will be a polygon "
+"representing the GeoHash bounds."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:442
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_GeomFromGeoHash "
+"returns a polygon based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:444
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_GeomFromGeoHash will use "
+"that many characters from the GeoHash to create the polygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:451
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"                                                        st_astext\n"
+"--------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.172816 36.114646,-115.172816 36.114646,-115.172816 "
+"36.114646,-115.172816 36.114646,-115.172816 36.114646))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"                                                          st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.3125 36.03515625,-115.3125 36.2109375,-114.9609375 "
+"36.2109375,-114.9609375 36.03515625,-115.3125 36.03515625))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                                                                                       st_astext\n"
+"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.17282128334 36.1146408319473,-115.17282128334 "
+"36.1146461963654,-115.172810554504 36.1146461963654,-115.172810554504 "
+"36.1146408319473,-115.17282128334 36.1146408319473))\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:456
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:462
+#, no-c-format
+msgid "ST_GeomFromGML"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:463
+#, no-c-format
+msgid ""
+"Takes as input GML representation of geometry and outputs a PostGIS geometry "
+"object"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:467
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></"
+"funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromGML</function></funcdef> <paramdef><type>text </type> "
+"<parameter>geomgml</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:482
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC GML representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:483
+#, no-c-format
+msgid ""
+"ST_GeomFromGML works only for GML Geometry fragments. It throws an error if "
+"you try to use it on a whole GML document."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:484
+#, no-c-format
+msgid ""
+"OGC GML versions supported: <itemizedlist> <listitem> <para>GML 3.2.1 "
+"Namespace</para> </listitem> <listitem> <para>GML 3.1.1 Simple Features "
+"profile SF-2 (with GML 3.1.0 and 3.0.0 backward compatibility)</para> </"
+"listitem> <listitem> <para>GML 2.1.2</para> </listitem> </itemizedlist> OGC "
+"GML standards, cf: <ulink url=\"http://www.opengeospatial.org/standards/gml"
+"\">http://www.opengeospatial.org/standards/gml</ulink>:"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:500 reference_constructor.xml:647
+#, no-c-format
+msgid "Availability: 1.5, requires libxml2 1.6+"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:502 reference_constructor.xml:649
+#, no-c-format
+msgid "Enhanced: 2.0.0 default srid optional parameter added."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:506
+#, no-c-format
+msgid ""
+"GML allow mixed dimensions (2D and 3D inside the same MultiGeometry for "
+"instance). As PostGIS geometries don't, ST_GeomFromGML convert the whole "
+"geometry to 2D if a missing Z dimension is found once."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:508
+#, no-c-format
+msgid ""
+"GML support mixed SRS inside the same MultiGeometry. As PostGIS geometries "
+"don't, ST_GeomFromGML, in this case, reproject all subgeometries to the SRS "
+"root node. If no srsName attribute available for the GML root node, the "
+"function throw an error."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:510
+#, no-c-format
+msgid ""
+"ST_GeomFromGML function is not pedantic about an explicit GML namespace. You "
+"could avoid to mention it explicitly for common usages. But you need it if "
+"you want to use XLink feature inside GML."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:512
+#, no-c-format
+msgid "ST_GeomFromGML function not support SQL/MM curves geometries."
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:518 reference_constructor.xml:616
+#, no-c-format
+msgid "Examples - A single geometry with srsName"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:519
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromGML('<![CDATA[\n"
+"                <gml:LineString srsName=\"EPSG:4269\">\n"
+"                        <gml:coordinates>\n"
+"                                -71.16028,42.258729 -71.160837,42.259112 "
+"-71.161143,42.25932\n"
+"                        </gml:coordinates>\n"
+"                </gml:LineString>']]>);"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:523
+#, no-c-format
+msgid "Examples - XLink usage"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:524
+#, no-c-format
+msgid ""
+"SELECT <![CDATA[ST_GeomFromGML('\n"
+"                <gml:LineString xmlns:gml=\"http://www.opengis.net/gml\" \n"
+"                                xmlns:xlink=\"http://www.w3.org/1999/xlink"
+"\"\n"
+"                                srsName=\"urn:ogc:def:crs:EPSG::4269\">\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point gml:id=\"p1\"><gml:pos>42.258729 "
+"-71.16028</gml:pos></gml:Point>\n"
+"                        </gml:pointProperty>\n"
+"                        <gml:pos>42.259112 -71.160837</gml:pos>\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point xlink:type=\"simple\" xlink:href="
+"\"#p1\"/>\n"
+"                        </gml:pointProperty>\n"
+"                </gml:LineString>');]]>);"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:528
+#, no-c-format
+msgid "Examples - Polyhedral Surface"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:529
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(<![CDATA[ST_GeomFromGML('\n"
+"<gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"      <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 0 1 0 1 1 0 1 "
+"0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 1 0 1 1 "
+"0 1 0 0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 1 0 0 1 0 "
+"1 0 0 1 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">1 1 0 1 1 1 1 0 "
+"1 1 0 0 1 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 1 0 0 1 1 1 1 "
+"1 1 1 0 0 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 1 1 0 1 1 1 "
+"1 0 1 1 0 0 1</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>']]>));\n"
+"\n"
+"-- result --\n"
+" POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:535
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:541
+#, no-c-format
+msgid "ST_GeomFromGeoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:542
+#, no-c-format
+msgid ""
+"Takes as input a geojson representation of a geometry and outputs a PostGIS "
+"geometry object"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:547
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomjson</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:556
+#, no-c-format
+msgid "Constructs a PostGIS geometry object from the GeoJSON representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:557
+#, no-c-format
+msgid ""
+"ST_GeomFromGeoJSON works only for JSON Geometry fragments. It throws an "
+"error if you try to use it on a whole JSON document."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:559
+#, no-c-format
+msgid "Availability: 2.0.0 requires - JSON-C >= 0.9"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:560
+#, no-c-format
+msgid ""
+"If you do not have JSON-C enabled, support you will get an error notice "
+"instead of seeing an output. To enable JSON-C, run configure --with-jsondir=/"
+"path/to/json-c. See <xref linkend=\"installation_configuration\"/> for "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:567
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":"
+"[-48.23456,20.12345]}')) As wkt;\n"
+"wkt\n"
+"------\n"
+"POINT(-48.23456 20.12345)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:568
+#, no-c-format
+msgid ""
+"-- a 3D linestring\n"
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"LineString\",\"coordinates"
+"\":[[1,2,3],[4,5,6],[7,8,9]]}')) As wkt;\n"
+"\n"
+"wkt\n"
+"-------------------\n"
+"LINESTRING(1 2,4 5,7 8)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:574
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend="
+"\"installation_configuration\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:580
+#, no-c-format
+msgid "ST_GeomFromKML"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:581
+#, no-c-format
+msgid ""
+"Takes as input KML representation of geometry and outputs a PostGIS geometry "
+"object"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:586
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomkml</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:595
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC KML representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:596
+#, no-c-format
+msgid ""
+"ST_GeomFromKML works only for KML Geometry fragments. It throws an error if "
+"you try to use it on a whole KML document."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:597
+#, no-c-format
+msgid ""
+"OGC KML versions supported: <itemizedlist> <listitem> <para>KML 2.2.0 "
+"Namespace</para> </listitem> </itemizedlist> OGC KML standards, cf: <ulink "
+"url=\"http://www.opengeospatial.org/standards/kml\">http://www."
+"opengeospatial.org/standards/kml</ulink>:"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:607
+#, no-c-format
+msgid "Availability: 1.5,libxml2 2.6+"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:610
+#, no-c-format
+msgid "ST_GeomFromKML function not support SQL/MM curves geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:617
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromKML('<![CDATA[\n"
+"                <LineString>\n"
+"                        <coordinates>-71.1663,42.2614 \n"
+"                                -71.1667,42.2616</coordinates>\n"
+"                </LineString>']]>);"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:622
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsKML\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:628
+#, no-c-format
+msgid "ST_GMLToSQL"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:629
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from GML representation. This is an "
+"alias name for ST_GeomFromGML"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:632
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_GMLToSQL</"
+"function></funcdef> <paramdef><type>text </type> <parameter>geomgml</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:646
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.50 (except for curves support)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:653
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:659
+#, no-c-format
+msgid "ST_GeomFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:660
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Text representation "
+"(WKT)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:663
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:679
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Well-Known text "
+"representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:683
+#, no-c-format
+msgid ""
+"There are 2 variants of ST_GeomFromText function, the first takes no SRID "
+"and returns a geometry with no defined spatial reference system. The second "
+"takes a spatial reference id as the second argument and returns an "
+"ST_Geometry that includes this srid as part of its meta-data. The srid must "
+"be defined in the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:689 reference_constructor.xml:1759
+#, no-c-format
+msgid "&sfs_compliant; s3.2.6.2 - option SRID is from the conformance suite."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:692
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards. This "
+"should now be written as ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:699
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)',4269);\n"
+"\n"
+"SELECT ST_GeomFromText('MULTILINESTRING((-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromText('POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromText('MULTIPOLYGON(((-71.1031880899493 42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))',4326);\n"
+"\n"
+"SELECT ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406)');"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:703
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:709
+#, no-c-format
+msgid "ST_GeomFromWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:710
+#, no-c-format
+msgid ""
+"Creates a geometry instance from a Well-Known Binary geometry representation "
+"(WKB) and optional SRID."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:715 reference_constructor.xml:1781
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromWKB</function></funcdef> <paramdef><type>bytea </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:732
+#, no-c-format
+msgid ""
+"The <varname>ST_GeomFromWKB</varname> function, takes a well-known binary "
+"representation of a geometry and a Spatial Reference System ID "
+"(<varname>SRID</varname>) and creates an instance of the appropriate "
+"geometry type. This function plays the role of the Geometry Factory in SQL. "
+"This is an alternate name for ST_WKBToSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:738
+#, no-c-format
+msgid "If SRID is not specified, it defaults to 0 (Unknown)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:739
+#, no-c-format
+msgid ""
+"&sfs_compliant; s3.2.7.2 - the optional SRID is from the conformance suite"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:740
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.41"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:748
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@',4326)\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+" SRID=4326;LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:755
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:762
+#, no-c-format
+msgid "ST_GeomFromTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:763
+#, no-c-format
+msgid ""
+"Creates a geometry instance from a Tiny Well-Known Binary geometry "
+"representation (TWKB)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:769
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromTWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:779
+#, no-c-format
+msgid ""
+"The <varname>ST_GeomFromTWKB</varname> function, takes a tiny well-known "
+"binary representation of a geometry and creates an instance of the "
+"appropriate geometry type."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:783
+#, no-c-format
+msgid "SRID always defaults to 0 (Unknown)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:785
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So a 3D geoemtry in TWKB will "
+"always be a GeometryZ, like PointZ when converted to PostGIS geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:793
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromTWKB(E'\\\\x304202f7f40dbce4040105')\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+"LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromTWKB(\n"
+"          ST_AsTWKB('POINT(2 5)'::geometry,0)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:800
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_AsTWKB\"/>,<xref linkend=\"ST_AsTWKBAgg\"/>,<xref "
+"linkend=\"ST_WKBToSQL\"/>, <xref linkend=\"ST_AsBinary\"/>, <xref linkend="
+"\"ST_GeomFromEWKB\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:806
+#, no-c-format
+msgid "ST_LineFromEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:808
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:813
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromEncodedPolyline</function></funcdef> "
+"<paramdef><type>text </type> <parameter>polyline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:824
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:825
+#, no-c-format
+msgid ""
+"See http://developers.google.com/maps/documentation/utilities/"
+"polylinealgorithm"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:832
+#, no-c-format
+msgid ""
+"--Create a line string from a polyline\n"
+"SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|"
+"U_ulLnnqC_mqNvxq`@'));\n"
+"--result--\n"
+"LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:845
+#, no-c-format
+msgid "ST_LineFromMultiPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:847
+#, no-c-format
+msgid ""
+"<refpurpose>Creates a LineString from a MultiPoint geometry.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:852
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aMultiPoint</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:862
+#, no-c-format
+msgid "<para>Creates a LineString from a MultiPoint geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:870
+#, no-c-format
+msgid ""
+"--Create a 3d line string from a 3d multipoint\n"
+"SELECT ST_AsEWKT(ST_LineFromMultiPoint(ST_GeomFromEWKT('MULTIPOINT(1 2 3, 4 "
+"5 6, 7 8 9)')));\n"
+"--result--\n"
+"LINESTRING(1 2 3,4 5 6,7 8 9)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:877
+#, no-c-format
+msgid ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:883
+#, no-c-format
+msgid "ST_LineFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:885
+#, no-c-format
+msgid ""
+"Makes a Geometry from WKT representation with the given SRID. If SRID is not "
+"given, it defaults to 0."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:890
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LineFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:907
+#, no-c-format
+msgid ""
+"Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0. If WKT passed in is not a LINESTRING, then null is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:911 reference_constructor.xml:977
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:916
+#, no-c-format
+msgid ""
+"If you know all your geometries are LINESTRINGS, its more efficient to just "
+"use ST_GeomFromText. This just calls ST_GeomFromText and adds additional "
+"validation that it returns a linestring."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:922
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.8"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:930
+#, no-c-format
+msgid ""
+"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, "
+"ST_LineFromText('POINT(1 2)') AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:943
+#, no-c-format
+msgid "ST_LineFromWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:945
+#, no-c-format
+msgid "Makes a <varname>LINESTRING</varname> from WKB with the given SRID"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:949
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_LineFromWKB</"
+"function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:966
+#, no-c-format
+msgid ""
+"The <varname>ST_LineFromWKB</varname> function, takes a well-known binary "
+"representation of geometry and a Spatial Reference System ID (<varname>SRID</"
+"varname>) and creates an instance of the appropriate geometry type - in this "
+"case, a <varname>LINESTRING</varname> geometry. This function plays the role "
+"of the Geometry Factory in SQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:972
+#, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>LINESTRING</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:982
+#, no-c-format
+msgid ""
+"If you know all your geometries are <varname>LINESTRING</varname>s, its more "
+"efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function just "
+"calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation that "
+"it returns a linestring."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:990 reference_constructor.xml:1056
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:998
+#, no-c-format
+msgid ""
+"SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) "
+"AS aline,\n"
+"                ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)'))) "
+"IS NULL AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1005
+#, no-c-format
+msgid ", <xref linkend=\"ST_LinestringFromWKB\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1011
+#, no-c-format
+msgid "ST_LinestringFromWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1013
+#, no-c-format
+msgid "Makes a geometry from WKB with the given SRID."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1017
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LinestringFromWKB</function></funcdef> <paramdef><type>bytea </"
+"type> <parameter>WKB</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1034
+#, no-c-format
+msgid ""
+"The <varname>ST_LinestringFromWKB</varname> function, takes a well-known "
+"binary representation of geometry and a Spatial Reference System ID "
+"(<varname>SRID</varname>) and creates an instance of the appropriate "
+"geometry type - in this case, a <varname>LINESTRING</varname> geometry. This "
+"function plays the role of the Geometry Factory in SQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1040
+#, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>LINESTRING</varname> geometry. This an alias for <xref linkend="
+"\"ST_LineFromWKB\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1045
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - optional SRID is from the conformance suite."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1049
+#, no-c-format
+msgid ""
+"If you know all your geometries are <varname>LINESTRING</varname>s, it's "
+"more efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function "
+"just calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation "
+"that it returns a <varname>LINESTRING</varname>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1062
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_LineStringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"  ) AS aline,\n"
+"  ST_LinestringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('POINT(1 2)'))\n"
+"  ) IS NULL AS null_return;\n"
+"   aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1069 reference_constructor.xml:1823
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineFromWKB\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1075
+#, no-c-format
+msgid "ST_MakeBox2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1077
+#, no-c-format
+msgid "Creates a BOX2D defined by the given point geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1083
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pointLowLeft</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pointUpRight</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1094
+#, no-c-format
+msgid ""
+"Creates a BOX2D defined by the given point geometries. This is useful for "
+"doing range queries"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1102
+#, no-c-format
+msgid ""
+"--Return all features that fall reside or partly reside in a US national "
+"atlas coordinate bounding box\n"
+"--It is assumed here that the geometries are stored with SRID = 2163 (US "
+"National atlas equal area)\n"
+"SELECT feature_id, feature_name, the_geom\n"
+"FROM features\n"
+"WHERE the_geom && ST_SetSRID(ST_MakeBox2D(ST_Point(-989502.1875, "
+"528439.5625),\n"
+"        ST_Point(-987121.375 ,529933.1875)),2163)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1109
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1115
+#, no-c-format
+msgid "ST_3DMakeBox"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1117
+#, no-c-format
+msgid "Creates a BOX3D defined by the given 3d point geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1122
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>point3DLowLeftBottom</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>point3DUpRightTop</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1133
+#, no-c-format
+msgid "Creates a BOX3D defined by the given 2 3D point geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1140
+#, no-c-format
+msgid "This function supports 3d and will not drop the z-index."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1142
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_MakeBox3D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1149
+#, no-c-format
+msgid ""
+"SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
+"        ST_MakePoint(-987121.375 ,529933.1875, 10)) As abb3d\n"
+"\n"
+"--bb3d--\n"
+"--------\n"
+"BOX3D(-989502.1875 528439.5625 10,-987121.375 529933.1875 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1156
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1162
+#, no-c-format
+msgid "ST_MakeLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1164
+#, no-c-format
+msgid "Creates a Linestring from point or line geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1168
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geoms</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_MakeLine</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</"
+"parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MakeLine</function></funcdef> <paramdef><type>geometry[]</type> "
+"<parameter>geoms_array</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1190
+#, no-c-format
+msgid ""
+"ST_MakeLine comes in 3 forms: a spatial aggregate that takes rows of point-"
+"or-line geometries and returns a line string, a function that takes an array "
+"of point-or-lines, and a regular function that takes two point-or-line "
+"geometries. You might want to use a subselect to order points before feeding "
+"them to the aggregate version of this function."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1195
+#, no-c-format
+msgid "When adding line components a common node is removed from the output."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1200
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_MakeLine(geomarray) was introduced. ST_MakeLine "
+"aggregate functions was enhanced to handle more points faster."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1201
+#, no-c-format
+msgid ""
+"Availability: 2.0.0 - Support for linestring input elements was introduced"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1205
+#, no-c-format
+msgid "Examples: Spatial Aggregate version"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1206
+#, no-c-format
+msgid ""
+"This example takes a sequence of GPS points and creates one record for each "
+"gps travel where the geometry field is a line string composed of the gps "
+"points in the order of the travel."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1210
+#, no-c-format
+msgid ""
+"-- For pre-PostgreSQL 9.0 - this usually works, \n"
+"-- but the planner may on occasion choose not to respect the order of the "
+"subquery\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom) As newgeom\n"
+"        FROM (SELECT gps_track,gps_time, the_geom\n"
+"                        FROM gps_points ORDER BY gps_track, gps_time) As "
+"gps\n"
+"        GROUP BY gps.gps_track;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1212
+#, no-c-format
+msgid ""
+"-- If you are using PostgreSQL 9.0+ \n"
+"-- (you can use the new ORDER BY support for aggregates)\n"
+"-- this is a guaranteed way to get a correctly ordered linestring\n"
+"-- Your order by part can order by more than one column if needed\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom ORDER BY gps_time) As "
+"newgeom\n"
+"        FROM gps_points As gps\n"
+"        GROUP BY gps.gps_track;"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1215
+#, no-c-format
+msgid "Examples: Non-Spatial Aggregate version"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1217
+#, no-c-format
+msgid ""
+"First example is a simple one off line string composed of 2 points. The "
+"second formulates line strings from 2 points a user draws. The third is a "
+"one-off that joins 2 3d points to create a line in 3d space."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1219
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(1 2,3 4)\n"
+"\n"
+"SELECT userpoints.id, ST_MakeLine(startpoint, endpoint) As drawn_line\n"
+"        FROM userpoints ;\n"
+"\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ST_MakePoint(1,2,3), ST_MakePoint(3,4,5)));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" LINESTRING(1 2 3,3 4 5)"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1223
+#, no-c-format
+msgid "Examples: Using Array version"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1225
+#, no-c-format
+msgid ""
+"SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations "
+"ORDER BY visit_time));\n"
+"\n"
+"--Making a 3d line with 3 3-d points\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),\n"
+"                                ST_MakePoint(3,4,5), "
+"ST_MakePoint(6,6,6)]));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+"LINESTRING(1 2 3,3 4 5,6 6 6)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1232
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_MakePoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1239
+#, no-c-format
+msgid "ST_MakeEnvelope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1241
+#, no-c-format
+msgid ""
+"Creates a rectangular Polygon formed from the given minimums and maximums. "
+"Input values must be in SRS specified by the SRID."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1247
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>xmin</parameter></"
+"paramdef> <paramdef><type>double precision</type> <parameter>ymin</"
+"parameter></paramdef> <paramdef><type>double precision</type> "
+"<parameter>xmax</parameter></paramdef> <paramdef><type>double precision</"
+"type> <parameter>ymax</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1261
+#, no-c-format
+msgid ""
+"Creates a rectangular Polygon formed from the minima and maxima. by the "
+"given shell. Input values must be in SRS specified by the SRID. If no SRID "
+"is specified the unknown spatial reference system is assumed"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1264
+#, no-c-format
+msgid "Availability: 1.5"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1265
+#, no-c-format
+msgid ""
+"Enhanced: 2.0: Ability to specify an envelope without specifying an SRID was "
+"introduced."
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1270
+#, no-c-format
+msgid "Example: Building a bounding box polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1271
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((10 10, 10 11, 11 11, 11 10, 10 10))"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1275
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1281
+#, no-c-format
+msgid "ST_MakePolygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1283
+#, no-c-format
+msgid ""
+"Creates a Polygon formed by the given shell. Input geometries must be closed "
+"LINESTRINGS."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1289
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1295
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>outerlinestring</parameter></"
+"paramdef> <paramdef><type>geometry[]</type> <parameter>interiorlinestrings</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1306
+#, no-c-format
+msgid ""
+"Creates a Polygon formed by the given shell. Input geometries must be closed "
+"LINESTRINGS. Comes in 2 variants."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1308
+#, no-c-format
+msgid "Variant 1: takes one closed linestring."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1309
+#, no-c-format
+msgid ""
+"Variant 2: Creates a Polygon formed by the given shell and array of holes. "
+"You can construct a geometry array using ST_Accum or the PostgreSQL ARRAY[] "
+"and ARRAY() constructs. Input geometries must be closed LINESTRINGS."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1313
+#, no-c-format
+msgid ""
+"This function will not accept a MULTILINESTRING. Use <xref linkend="
+"\"ST_LineMerge\"/> or <xref linkend=\"ST_Dump\"/> to generate line strings."
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1320
+#, no-c-format
+msgid "Examples: Single closed LINESTRING"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1321
+#, no-c-format
+msgid ""
+"--2d line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 "
+"29.5, 75.15 29.53)'));\n"
+"--If linestring is not closed\n"
+"--you can add the start point to close it\n"
+"SELECT ST_MakePolygon(ST_AddPoint(foo.open_line, ST_StartPoint(foo."
+"open_line)))\n"
+"FROM (\n"
+"SELECT ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5)') As "
+"open_line) As foo;\n"
+"\n"
+"--3d closed line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53 1,77 29 1,77.6 "
+"29.5 1, 75.15 29.53 1)'));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))\n"
+"\n"
+"--measured line --\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRINGM(75.15 29.53 1,77 29 "
+"1,77.6 29.5 2, 75.15 29.53 2)'));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"POLYGONM((75.15 29.53 1,77 29 1,77.6 29.5 2,75.15 29.53 2))"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1324
+#, no-c-format
+msgid "Examples: Outter shell with inner shells"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1326
+#, no-c-format
+msgid "Build a donut with an ant hole"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1327
+#, no-c-format
+msgid ""
+"SELECT ST_MakePolygon(\n"
+"                ST_ExteriorRing(ST_Buffer(foo.line,10)),\n"
+"        ARRAY[ST_Translate(foo.line,1,1),\n"
+"                ST_ExteriorRing(ST_Buffer(ST_MakePoint(20,20),1)) ]\n"
+"        )\n"
+"FROM\n"
+"        (SELECT ST_ExteriorRing(ST_Buffer(ST_MakePoint(10,10),10,10))\n"
+"                As line )\n"
+"                As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1328
+#, no-c-format
+msgid ""
+"Build province boundaries with holes representing lakes in the province from "
+"a set of province polygons/multipolygons and water line strings this is an "
+"example of using PostGIS ST_Accum"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1332
+#, no-c-format
+msgid ""
+"The use of CASE because feeding a null array into ST_MakePolygon results in "
+"NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1334
+#, no-c-format
+msgid ""
+"the use of left join to guarantee we get all provinces back even if they "
+"have no lakes"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1335
+#, no-c-format
+msgid ""
+"SELECT p.gid, p.province_name,\n"
+"                CASE WHEN\n"
+"                        ST_Accum(w.the_geom) IS NULL THEN p.the_geom\n"
+"                ELSE  ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)), "
+"ST_Accum(w.the_geom)) END\n"
+"        FROM\n"
+"                provinces p LEFT JOIN waterlines w\n"
+"                        ON (ST_Within(w.the_geom, p.the_geom) AND "
+"ST_IsClosed(w.the_geom))\n"
+"        GROUP BY p.gid, p.province_name, p.the_geom;\n"
+"\n"
+"        --Same example above but utilizing a correlated subquery\n"
+"        --and PostgreSQL built-in ARRAY() function that converts a row set "
+"to an array\n"
+"\n"
+"        SELECT p.gid,  p.province_name, CASE WHEN\n"
+"                EXISTS(SELECT w.the_geom\n"
+"                        FROM waterlines w\n"
+"                        WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                        AND ST_IsClosed(w.the_geom))\n"
+"                THEN\n"
+"                ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)),\n"
+"                        ARRAY(SELECT w.the_geom\n"
+"                                FROM waterlines w\n"
+"                                WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                                AND ST_IsClosed(w.the_geom)))\n"
+"                ELSE p.the_geom END As the_geom\n"
+"        FROM\n"
+"                provinces p;"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1339
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, "
+"<xref linkend=\"ST_IsClosed\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_BuildArea\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1352
+#, no-c-format
+msgid "ST_MakePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1354
+#, no-c-format
+msgid "Creates a 2D,3DZ or 4D point geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1359
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1366
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1374
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>m</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1387
+#, no-c-format
+msgid ""
+"Creates a 2D,3DZ or 4D point geometry (geometry with measure). "
+"<varname>ST_MakePoint</varname> while not being OGC compliant is generally "
+"faster and more precise than <xref linkend=\"ST_GeomFromText\"/> and <xref "
+"linkend=\"ST_PointFromText\"/>. It is also easier to use if you have raw "
+"coordinates rather than WKT."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1393
+#, no-c-format
+msgid "Note x is longitude and y is latitude"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1394
+#, no-c-format
+msgid ""
+"Use <xref linkend=\"ST_MakePointM\"/> if you need to make a point with x,y,m."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1401
+#, no-c-format
+msgid ""
+"--Return point with unknown SRID\n"
+"SELECT ST_MakePoint(-71.1043443253471, 42.3150676015829);\n"
+"\n"
+"--Return point marked as WGS 84 long lat\n"
+"SELECT ST_SetSRID(ST_MakePoint(-71.1043443253471, 42.3150676015829),4326);\n"
+"\n"
+"--Return a 3D point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get z of point\n"
+"SELECT ST_Z(ST_MakePoint(1, 2,1.5));\n"
+"result\n"
+"-------\n"
+"1.5"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1405
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_MakePointM\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1411
+#, no-c-format
+msgid "ST_MakePointM"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1413
+#, no-c-format
+msgid "Creates a point geometry with an x y and m coordinate."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1418
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePointM</function></funcdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>m</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1430
+#, no-c-format
+msgid "Creates a point with x, y and measure coordinates."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1431
+#, no-c-format
+msgid "Note x is longitude and y is latitude."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1436
+#, no-c-format
+msgid ""
+"We use ST_AsEWKT in these examples to show the text representation instead "
+"of ST_AsText because ST_AsText does not support returning M."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1438
+#, no-c-format
+msgid ""
+"--Return EWKT representation of point with unknown SRID\n"
+"SELECT ST_AsEWKT(ST_MakePointM(-71.1043443253471, 42.3150676015829, 10));\n"
+"\n"
+"--result\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return EWKT representation of point with measure marked as WGS 84 long "
+"lat\n"
+"SELECT ST_AsEWKT(ST_SetSRID(ST_MakePointM(-71.1043443253471, "
+"42.3150676015829,10),4326));\n"
+"\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+"SRID=4326;POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return a 3d point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get m of point\n"
+"SELECT ST_M(ST_MakePointM(-71.1043443253471, 42.3150676015829,10));\n"
+"result\n"
+"-------\n"
+"10"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1442
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1448
+#, no-c-format
+msgid "ST_MLineFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1450
+#, no-c-format
+msgid "Return a specified ST_MultiLineString value from WKT representation."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1454
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MLineFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1472
+#, no-c-format
+msgid ""
+"Makes a Geometry from Well-Known-Text (WKT) with the given SRID. If SRID is "
+"not give, it defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1478
+#, no-c-format
+msgid "Returns null if the WKT is not a MULTILINESTRING"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1481 reference_constructor.xml:1542
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are points, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1487
+#, no-c-format
+msgid "&sqlmm_compliant;SQL-MM 3: 9.4.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1495
+#, no-c-format
+msgid "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1508
+#, no-c-format
+msgid "ST_MPointFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1510 reference_constructor.xml:1880
+#, no-c-format
+msgid ""
+"<refpurpose>Makes a Geometry from WKT with the given SRID. If SRID is not "
+"give, it defaults to 0.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1515
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MPointFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1533
+#, no-c-format
+msgid ""
+"<para>Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1539
+#, no-c-format
+msgid "Returns null if the WKT is not a MULTIPOINT"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1547
+#, no-c-format
+msgid "&sfs_compliant; 3.2.6.2"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1548
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.2.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1556
+#, no-c-format
+msgid ""
+"SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
+"SELECT ST_MPointFromText('MULTIPOINT(-70.9590 42.1180, -70.9611 42.1223)', "
+"4326);"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1569
+#, no-c-format
+msgid "ST_MPolyFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1571
+#, no-c-format
+msgid ""
+"Makes a MultiPolygon Geometry from WKT with the given SRID. If SRID is not "
+"give, it defaults to 0."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1576
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MPolyFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1594
+#, no-c-format
+msgid ""
+"Makes a MultiPolygon from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1600
+#, no-c-format
+msgid "Throws an error if the WKT is not a MULTIPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1603
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are multipolygons, don't "
+"use this function. It is slower than ST_GeomFromText since it adds an "
+"additional validation step."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1609
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.6.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1617
+#, no-c-format
+msgid ""
+"SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),"
+"(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))');\n"
+"SELECt ST_MPolyFromText('MULTIPOLYGON(((-70.916 42.1002,-70.9468 "
+"42.0946,-70.9765 42.0872,-70.9754 42.0875,-70.9749 42.0879,-70.9752 "
+"42.0881,-70.9754 42.0891,-70.9758 42.0894,-70.9759 42.0897,-70.9759 "
+"42.0899,-70.9754 42.0902,-70.9756 42.0906,-70.9753 42.0907,-70.9753 "
+"42.0917,-70.9757 42.0924,-70.9755 42.0928,-70.9755 42.0942,-70.9751 "
+"42.0948,-70.9755 42.0953,-70.9751 42.0958,-70.9751 42.0962,-70.9759 "
+"42.0983,-70.9767 42.0987,-70.9768 42.0991,-70.9771 42.0997,-70.9771 "
+"42.1003,-70.9768 42.1005,-70.977 42.1011,-70.9766 42.1019,-70.9768 "
+"42.1026,-70.9769 42.1033,-70.9775 42.1042,-70.9773 42.1043,-70.9776 "
+"42.1043,-70.9778 42.1048,-70.9773 42.1058,-70.9774 42.1061,-70.9779 "
+"42.1065,-70.9782 42.1078,-70.9788 42.1085,-70.9798 42.1087,-70.9806 "
+"42.109,-70.9807 42.1093,-70.9806 42.1099,-70.9809 42.1109,-70.9808 "
+"42.1112,-70.9798 42.1116,-70.9792 42.1127,-70.979 42.1129,-70.9787 "
+"42.1134,-70.979 42.1139,-70.9791 42.1141,-70.9987 42.1116,-71.0022 42.1273,\n"
+"        -70.9408 42.1513,-70.9315 42.1165,-70.916 42.1002)))',4326);"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1630
+#, no-c-format
+msgid "ST_Point"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1632
+#, no-c-format
+msgid ""
+"Returns an ST_Point with the given coordinate values. OGC alias for "
+"ST_MakePoint."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1637
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Point</function></funcdef> "
+"<paramdef><type>float </type> <parameter>x_lon</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>y_lat</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1648
+#, no-c-format
+msgid ""
+"Returns an ST_Point with the given coordinate values. MM compliant alias for "
+"ST_MakePoint that takes just an x and y."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1651
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.2"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1657
+#, no-c-format
+msgid "Examples: Geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1659
+#, no-c-format
+msgid "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1663
+#, no-c-format
+msgid "Examples: Geography"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1665
+#, no-c-format
+msgid ""
+"SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) "
+"As geography);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1666
+#, no-c-format
+msgid ""
+"-- the :: is PostgreSQL short-hand for casting.\n"
+"SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)::"
+"geography;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1668
+#, no-c-format
+msgid ""
+"--If your point coordinates are in a different spatial reference from WGS-84 "
+"long lat, then you need to transform before casting\n"
+"-- This example we convert a point in Pennsylvania State Plane feet to WGS "
+"84 and then geography\n"
+"SELECT ST_Transform(ST_SetSRID(ST_Point(3637510, 3014852),2273),4326)::"
+"geography;"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1675
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1681
+#, no-c-format
+msgid "ST_PointFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1683
+#, no-c-format
+msgid "Return a point from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1688
+#, no-c-format
+msgid ""
+"<funcdef>point <function>ST_PointFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1699
+#, no-c-format
+msgid ""
+"Return a point from a GeoHash string. The point represents the center point "
+"of the GeoHash."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1701
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_PointFromGeoHash "
+"returns a point based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1703
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_PointFromGeoHash will use "
+"that many characters from the GeoHash to create the point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1710
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"          st_astext\n"
+"------------------------------\n"
+" POINT(-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"             st_astext\n"
+"-----------------------------------\n"
+" POINT(-115.13671875 36.123046875)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                 st_astext\n"
+"-------------------------------------------\n"
+" POINT(-115.172815918922 36.1146435141563)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1715
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_GeomFromGeoHash"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1721
+#, no-c-format
+msgid "ST_PointFromText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1722
+#, no-c-format
+msgid ""
+"Makes a point Geometry from WKT with the given SRID. If SRID is not given, "
+"it defaults to unknown."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1726
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PointFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1742
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry point object from the OGC Well-Known text "
+"representation. If SRID is not give, it defaults to unknown (currently 0). "
+"If geometry is not a WKT point representation, returns null. If completely "
+"invalid WKT, then throws an error."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1748
+#, no-c-format
+msgid ""
+"There are 2 variants of ST_PointFromText function, the first takes no SRID "
+"and returns a geometry with no defined spatial reference system. The second "
+"takes a spatial reference id as the second argument and returns an "
+"ST_Geometry that includes this srid as part of its meta-data. The srid must "
+"be defined in the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1755
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are points, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step. If you are building points from long lat coordinates and "
+"care more about performance and accuracy than OGC compliance, use <xref "
+"linkend=\"ST_MakePoint\"/> or OGC compliant alias <xref linkend=\"ST_Point\"/"
+">."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1760
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.8"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)', 4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1769
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1775
+#, no-c-format
+msgid "ST_PointFromWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1777
+#, no-c-format
+msgid "Makes a geometry from WKB with the given SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1798
+#, no-c-format
+msgid ""
+"The <varname>ST_PointFromWKB</varname> function, takes a well-known binary "
+"representation of geometry and a Spatial Reference System ID (<varname>SRID</"
+"varname>) and creates an instance of the appropriate geometry type - in this "
+"case, a <varname>POINT</varname> geometry. This function plays the role of "
+"the Geometry Factory in SQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1804
+#, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>POINT</varname> geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1807
+#, no-c-format
+msgid "&sfs_compliant; s3.2.7.2"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1808
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1816
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('LINESTRING(2 5, 2 6)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"-----------\n"
+"\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1829
+#, no-c-format
+msgid "ST_Polygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1831
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a polygon built from the specified linestring and SRID.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1836
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aLineString</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1847
+#, no-c-format
+msgid ""
+"<para>Returns a polygon built from the specified linestring and SRID.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1851
+#, no-c-format
+msgid ""
+"ST_Polygon is similar to first version oST_MakePolygon except it also sets "
+"the spatial ref sys (SRID) of the polygon. Will not work with "
+"MULTILINESTRINGS so use LineMerge to merge multilines. Also does not create "
+"polygons with holes. Use ST_MakePolygon for that."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1856
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.3.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1865
+#, no-c-format
+msgid ""
+"--a 2d polygon\n"
+"SELECT ST_Polygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5, "
+"75.15 29.53)'), 4326);\n"
+"\n"
+"--result--\n"
+"POLYGON((75.15 29.53,77 29,77.6 29.5,75.15 29.53))\n"
+"--a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Polygon(ST_GeomFromEWKT('LINESTRING(75.15 29.53 1,77 29 "
+"1,77.6 29.5 1, 75.15 29.53 1)'), 4326));\n"
+"\n"
+"result\n"
+"------\n"
+"SRID=4326;POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1872
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1878
+#, no-c-format
+msgid "ST_PolygonFromText"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1885
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PolygonFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1901
+#, no-c-format
+msgid ""
+"Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0. Returns null if WKT is not a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1908
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are polygons, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1911
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.3.6"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1917
+#, no-c-format
+msgid ""
+"SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"st_polygonfromtext\n"
+"------------------\n"
+"010300000001000000050000006...\n"
+"\n"
+"\n"
+"SELECT ST_PolygonFromText('POINT(1 2)') IS NULL as point_is_notpoly;\n"
+"\n"
+"point_is_not_poly\n"
+"----------\n"
+"t"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1930
+#, no-c-format
+msgid "ST_WKBToSQL"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1931
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Binary representation "
+"(WKB). This is an alias name for ST_GeomFromWKB that takes no srid"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1935
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1943
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.36"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1953
+#, no-c-format
+msgid "ST_WKTToSQL"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1958
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1966
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.34"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_editor.xml.po b/doc/po/ko_KR/reference_editor.xml.po
new file mode 100644
index 0000000..70eab57
--- /dev/null
+++ b/doc/po/ko_KR/reference_editor.xml.po
@@ -0,0 +1,2547 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:05+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_editor.xml:3
+#, no-c-format
+msgid "Geometry Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:7
+#, no-c-format
+msgid "ST_AddPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:8
+#, no-c-format
+msgid ""
+"Adds a point to a LineString before point <position> (0-based index)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:13
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:20
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>position</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:30 reference_editor.xml:89 reference_editor.xml:148
+#: reference_editor.xml:194 reference_editor.xml:237 reference_editor.xml:280
+#: reference_editor.xml:321 reference_editor.xml:362 reference_editor.xml:416
+#: reference_editor.xml:445 reference_editor.xml:491 reference_editor.xml:536
+#: reference_editor.xml:578 reference_editor.xml:629 reference_editor.xml:672
+#: reference_editor.xml:706 reference_editor.xml:739 reference_editor.xml:783
+#: reference_editor.xml:832 reference_editor.xml:879 reference_editor.xml:928
+#: reference_editor.xml:992 reference_editor.xml:1052
+#: reference_editor.xml:1094 reference_editor.xml:1137
+#: reference_editor.xml:1214 reference_editor.xml:1292
+#: reference_editor.xml:1428 reference_editor.xml:1511
+#: reference_editor.xml:1565
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:32
+#, no-c-format
+msgid ""
+"Adds a point to a LineString before point <position> (0-based index). "
+"Third parameter can be omitted or set to -1 for appending."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:35 reference_editor.xml:543 reference_editor.xml:709
+#: reference_editor.xml:1099
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:159
+#: reference_editor.xml:202 reference_editor.xml:244 reference_editor.xml:326
+#: reference_editor.xml:372 reference_editor.xml:421 reference_editor.xml:454
+#: reference_editor.xml:500 reference_editor.xml:710 reference_editor.xml:792
+#: reference_editor.xml:842 reference_editor.xml:890 reference_editor.xml:941
+#: reference_editor.xml:1007 reference_editor.xml:1101
+#: reference_editor.xml:1245 reference_editor.xml:1519
+#: reference_editor.xml:1578
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:164
+#: reference_editor.xml:207 reference_editor.xml:250 reference_editor.xml:291
+#: reference_editor.xml:332 reference_editor.xml:378 reference_editor.xml:459
+#: reference_editor.xml:506 reference_editor.xml:548 reference_editor.xml:600
+#: reference_editor.xml:644 reference_editor.xml:680 reference_editor.xml:714
+#: reference_editor.xml:745 reference_editor.xml:801 reference_editor.xml:848
+#: reference_editor.xml:897 reference_editor.xml:949 reference_editor.xml:1014
+#: reference_editor.xml:1066 reference_editor.xml:1105
+#: reference_editor.xml:1153 reference_editor.xml:1250
+#: reference_editor.xml:1326 reference_editor.xml:1456
+#: reference_editor.xml:1524 reference_editor.xml:1584
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:41
+#, no-c-format
+msgid ""
+"--guarantee all linestrings in a table are closed\n"
+"                --by adding the start point of each linestring to the end of "
+"the line string\n"
+"                --only for those that are not closed\n"
+"                UPDATE sometable\n"
+"                SET the_geom = ST_AddPoint(the_geom, "
+"ST_StartPoint(the_geom))\n"
+"                FROM sometable\n"
+"                WHERE ST_IsClosed(the_geom) = false;\n"
+"\n"
+"                --Adding point to a 3-d line\n"
+"                SELECT ST_AsEWKT(ST_AddPoint(ST_GeomFromEWKT('LINESTRING(0 0 "
+"1, 1 1 1)'), ST_MakePoint(1, 2, 3)));\n"
+"\n"
+"                --result\n"
+"                st_asewkt\n"
+"                ----------\n"
+"                LINESTRING(0 0 1,1 1 1,1 2 3)"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:171
+#: reference_editor.xml:214 reference_editor.xml:257 reference_editor.xml:298
+#: reference_editor.xml:339 reference_editor.xml:387 reference_editor.xml:465
+#: reference_editor.xml:512 reference_editor.xml:553 reference_editor.xml:605
+#: reference_editor.xml:649 reference_editor.xml:685 reference_editor.xml:718
+#: reference_editor.xml:808 reference_editor.xml:855 reference_editor.xml:904
+#: reference_editor.xml:956 reference_editor.xml:1021
+#: reference_editor.xml:1071 reference_editor.xml:1109
+#: reference_editor.xml:1161 reference_editor.xml:1257
+#: reference_editor.xml:1401 reference_editor.xml:1478
+#: reference_editor.xml:1537 reference_editor.xml:1591
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:45
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:51
+#, no-c-format
+msgid "ST_Affine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:53
+#, no-c-format
+msgid ""
+"<refpurpose>Applies a 3d affine transformation to the geometry to do things "
+"like translate, rotate, scale in one step.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:57
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Affine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>a</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>b</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>c</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>d</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>e</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>f</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>g</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>h</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>i</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>xoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>yoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>zoff</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Affine</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>a</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>b</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>d</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>e</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>xoff</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>yoff</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:91
+#, no-c-format
+msgid ""
+"<para>Applies a 3d affine transformation to the geometry to do things like "
+"translate, rotate, scale in one step.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:92
+#, no-c-format
+msgid ""
+"Version 1: The call <programlisting>ST_Affine(geom, a, b, c, d, e, f, g, h, "
+"i, xoff, yoff, zoff) </programlisting> represents the transformation matrix "
+"<programlisting>/ a  b  c  xoff \\\n"
+"| d  e  f  yoff |\n"
+"| g  h  i  zoff |\n"
+"\\ 0  0  0     1 /</programlisting> and the vertices are transformed as "
+"follows: <programlisting>x' = a*x + b*y + c*z + xoff\n"
+"y' = d*x + e*y + f*z + yoff\n"
+"z' = g*x + h*y + i*z + zoff</programlisting> All of the translate / scale "
+"functions below are expressed via such an affine transformation."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:99
+#, no-c-format
+msgid ""
+"Version 2: Applies a 2d affine transformation to the geometry. The call "
+"<programlisting>ST_Affine(geom, a, b, d, e, xoff, yoff)</programlisting> "
+"represents the transformation matrix <programlisting>/  a  b  0  xoff  "
+"\\       /  a  b  xoff  \\\n"
+"|  d  e  0  yoff  | rsp.  |  d  e  yoff  |\n"
+"|  0  0  1     0  |       \\  0  0     1  /\n"
+"\\  0  0  0     1  /</programlisting> and the vertices are transformed as "
+"follows: <programlisting>x' = a*x + b*y + xoff\n"
+"y' = d*x + e*y + yoff\n"
+"z' = z </programlisting> This method is a subcase of the 3D method above."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:105 reference_editor.xml:789 reference_editor.xml:839
+#: reference_editor.xml:887 reference_editor.xml:936 reference_editor.xml:1005
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:106
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from Affine to ST_Affine in 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:107 reference_editor.xml:939 reference_editor.xml:1001
+#: reference_editor.xml:1446 reference_editor.xml:1516
+#: reference_editor.xml:1574
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:109 reference_editor.xml:158 reference_editor.xml:200
+#: reference_editor.xml:243 reference_editor.xml:371 reference_editor.xml:418
+#: reference_editor.xml:455 reference_editor.xml:794 reference_editor.xml:841
+#: reference_editor.xml:889 reference_editor.xml:943 reference_editor.xml:1006
+#: reference_editor.xml:1451
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:110 reference_editor.xml:419 reference_editor.xml:795
+#: reference_editor.xml:843 reference_editor.xml:891 reference_editor.xml:944
+#: reference_editor.xml:1009
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:112 reference_editor.xml:157 reference_editor.xml:201
+#: reference_editor.xml:245 reference_editor.xml:286 reference_editor.xml:327
+#: reference_editor.xml:373 reference_editor.xml:420 reference_editor.xml:502
+#: reference_editor.xml:793 reference_editor.xml:942 reference_editor.xml:1008
+#: reference_editor.xml:1149 reference_editor.xml:1450
+#: reference_editor.xml:1520 reference_editor.xml:1579
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:119
+#, no-c-format
+msgid ""
+"--Rotate a 3d line 180 degrees about the z axis.  Note this is long-hand for "
+"doing ST_Rotate();\n"
+" SELECT ST_AsEWKT(ST_Affine(the_geom,  cos(pi()), -sin(pi()), 0,  sin(pi()), "
+"cos(pi()), 0,  0, 0, 1,  0, 0, 0)) As using_affine,\n"
+"         ST_AsEWKT(ST_Rotate(the_geom, pi())) As using_rotate\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
+"the_geom) As foo;\n"
+"        using_affine         |        using_rotate\n"
+"-----------------------------+-----------------------------\n"
+" LINESTRING(-1 -2 3,-1 -4 3) | LINESTRING(-1 -2 3,-1 -4 3)\n"
+"(1 row)\n"
+"\n"
+"--Rotate a 3d line 180 degrees in both the x and z axis\n"
+"SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), "
+"cos(pi()), -sin(pi()), 0, sin(pi()), cos(pi()), 0, 0, 0))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
+"the_geom) As foo;\n"
+"           st_asewkt\n"
+"-------------------------------\n"
+" LINESTRING(-1 -2 -3,-1 -4 -3)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:126
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Scale\"/>, <xref linkend=\"ST_Translate\"/>, <xref "
+"linkend=\"ST_TransScale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:132
+#, no-c-format
+msgid "ST_Force2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:134
+#, no-c-format
+msgid ""
+"Forces the geometries into a \"2-dimensional mode\" so that all output "
+"representations will only have the X and Y coordinates."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:140
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:150
+#, no-c-format
+msgid ""
+"Forces the geometries into a \"2-dimensional mode\" so that all output "
+"representations will only have the X and Y coordinates. This is useful for "
+"force OGC-compliant output (since OGC only specifies 2-D geometries)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:155 reference_editor.xml:198 reference_editor.xml:241
+#: reference_editor.xml:367 reference_editor.xml:453 reference_editor.xml:1448
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:156
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_2D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:166
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Force2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                st_asewkt\n"
+"-------------------------------------\n"
+"CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"2,1 3 2,1 1 2))'));\n"
+"\n"
+"                                  st_asewkt\n"
+"----------------------------------------------\n"
+" POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:179
+#, no-c-format
+msgid "ST_Force3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:181
+#, no-c-format
+msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force3DZ."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:186
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:196
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:199
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:209
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"                SELECT "
+"ST_AsEWKT(ST_Force3D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 "
+"7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"1))'));\n"
+"\n"
+"                                                 st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:216
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3DZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:222
+#, no-c-format
+msgid "ST_Force3DZ"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:224
+#, no-c-format
+msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force3D."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:229
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3DZ</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:239
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZ mode. This is a synonym for ST_Force3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:242
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DZ."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:252
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"1))'));\n"
+"\n"
+"                                                 st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:259 reference_editor.xml:341
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:265
+#, no-c-format
+msgid "ST_Force3DM"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:267
+#, no-c-format
+msgid "Forces the geometries into XYM mode."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:272
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3DM</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:282
+#, no-c-format
+msgid ""
+"Forces the geometries into XYM mode. If a geometry has no M component, then "
+"a 0 M coordinate is tacked on. If it has a Z component, then Z is removed"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:285
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DM."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:293
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"------------------------------------------------\n"
+" CIRCULARSTRINGM(1 1 0,2 3 0,4 5 0,6 7 0,5 6 0)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 "
+"1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                  st_asewkt\n"
+"---------------------------------------------------------------\n"
+" POLYGONM((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:300 reference_editor.xml:389
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:306
+#, no-c-format
+msgid "ST_Force4D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:308
+#, no-c-format
+msgid "Forces the geometries into XYZM mode."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:313
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force4D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:323
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZM mode. 0 is tacked on for missing Z and M "
+"dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:325
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_4D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:334
+#, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+" CIRCULARSTRING(1 1 2 0,2 3 2 0,4 5 2 0,6 7 2 0,5 6 2 0)\n"
+"\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 "
+"1 1,3 1 1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                                          st_asewkt\n"
+"--------------------------------------------------------------------------------------\n"
+" MULTILINESTRING((0 0 0 1,0 5 0 2,5 0 0 3,0 0 0 4),(1 1 0 1,3 1 0 1,1 3 0 "
+"1,1 1 0 1))"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:347
+#, no-c-format
+msgid "ST_ForceCollection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:349
+#, no-c-format
+msgid "Converts the geometry into a GEOMETRYCOLLECTION."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:354
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:364
+#, no-c-format
+msgid ""
+"Converts the geometry into a GEOMETRYCOLLECTION. This is useful for "
+"simplifying the WKB representation."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:368
+#, no-c-format
+msgid ""
+"Availability: 1.2.2, prior to 1.3.4 this function will crash with Curves. "
+"This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:369
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_Collection."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:380
+#, no-c-format
+msgid ""
+"SELECT  ST_AsEWKT(ST_ForceCollection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 "
+"1,3 1 1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                                   st_asewkt\n"
+"----------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1 3 1,1 1 "
+"1)))\n"
+"\n"
+"\n"
+"  SELECT ST_AsText(ST_ForceCollection('CIRCULARSTRING(220227 150406,2220227 "
+"150407,220227 150406)'));\n"
+"                                                                   st_astext\n"
+"--------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CIRCULARSTRING(220227 150406,2220227 150407,220227 "
+"150406))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:382
+#, no-c-format
+msgid ""
+"-- POLYHEDRAL example --\n"
+"SELECT ST_AsEWKT(ST_ForceCollection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 "
+"1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))'))\n"
+"\n"
+"                                                                   st_asewkt\n"
+"----------------------------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(\n"
+"  POLYGON((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+"  POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+"  POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+"  POLYGON((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+"  POLYGON((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+"  POLYGON((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))\n"
+")"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:396
+#, no-c-format
+msgid "ST_ForceSFS"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:398
+#, no-c-format
+msgid "Forces the geometries to use SFS 1.1 geometry types only."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:402
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_ForceSFS</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_ForceSFS</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>version</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:428
+#, no-c-format
+msgid "ST_ForceRHR"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:430
+#, no-c-format
+msgid ""
+"Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
+"Rule."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:436
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_ForceRHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:447
+#, no-c-format
+msgid ""
+"Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
+"Rule. In GIS terminology, this means that the area that is bounded by the "
+"polygon is to the right of the boundary. In particular, the exterior ring is "
+"orientated in a clockwise direction and the interior rings in a counter-"
+"clockwise direction."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:461
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(\n"
+"  ST_ForceRHR(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'\n"
+"  )\n"
+");\n"
+"                                                  st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 2,1 3 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:467
+#, no-c-format
+msgid ", <xref linkend=\"ST_Polygonize\"/>, <xref linkend=\"ST_Reverse\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:475
+#, no-c-format
+msgid "ST_ForceCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:477
+#, no-c-format
+msgid "Upcasts a geometry into its curved type, if applicable."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:482
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCurve</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:493
+#, no-c-format
+msgid ""
+"Turns a geometry into its curved representation, if applicable: lines become "
+"compoundcurves, multilines become multicurves polygons become curvepolygons "
+"multipolygons become multisurfaces. If the geometry input is already a "
+"curved representation returns back same as input."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:499
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:508
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_ForceCurve(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'::geometry\n"
+"  )\n"
+");\n"
+"                              st_astext\n"
+"----------------------------------------------------------------------\n"
+" CURVEPOLYGON Z ((0 0 2,5 0 2,0 5 2,0 0 2),(1 1 2,1 3 2,3 1 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:520
+#, no-c-format
+msgid "ST_LineMerge"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:522
+#, no-c-format
+msgid ""
+"Returns a (set of) LineString(s) formed by sewing together a MULTILINESTRING."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:528
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineMerge</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>amultilinestring</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:538
+#, no-c-format
+msgid ""
+"Returns a (set of) LineString(s) formed by sewing together the constituent "
+"line work of a MULTILINESTRING."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:540
+#, no-c-format
+msgid ""
+"Only use with MULTILINESTRING/LINESTRINGs. If you feed a polygon or geometry "
+"collection into this function, it will return an empty GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:544
+#, no-c-format
+msgid "requires GEOS >= 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:550
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LineMerge(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 "
+"-33,-46 -32))')\n"
+"                )\n"
+");\n"
+"st_astext\n"
+"--------------------------------------------------------------------------------------------------\n"
+"LINESTRING(-29 -27,-30 -29.7,-36 -31,-45 -33,-46 -32)\n"
+"(1 row)\n"
+"\n"
+"--If can't be merged - original MULTILINESTRING is returned\n"
+"SELECT ST_AsText(ST_LineMerge(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 "
+"-33.2,-46 -32))')\n"
+")\n"
+");\n"
+"st_astext\n"
+"----------------\n"
+"MULTILINESTRING((-45.2 -33.2,-46 -32),(-29 -27,-30 -29.7,-36 -31,-45 -33))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:554
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineSubstring\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:560
+#, no-c-format
+msgid "ST_CollectionExtract"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:562
+#, no-c-format
+msgid ""
+"Given a (multi)geometry, returns a (multi)geometry consisting only of "
+"elements of the specified type."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:569
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_CollectionExtract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>type</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:580
+#, no-c-format
+msgid ""
+"Given a (multi)geometry, returns a (multi)geometry consisting only of "
+"elements of the specified type. Sub-geometries that are not the specified "
+"type are ignored. If there are no sub-geometries of the right type, an EMPTY "
+"geometry will be returned. Only points, lines and polygons are supported. "
+"Type numbers are 1 == POINT, 2 == LINESTRING, 3 == POLYGON."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:586
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:588
+#, no-c-format
+msgid ""
+"Prior to 1.5.3 this function returned non-collection inputs untouched, no "
+"matter type. In 1.5.3 non-matching single geometries result in a NULL "
+"return. In of 2.0.0 every case of missing match results in a typed EMPTY "
+"return."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:594 reference_editor.xml:635
+#, no-c-format
+msgid ""
+"When specifying 3 == POLYGON a multipolygon is returned even when the edges "
+"are shared. This results in an invalid multipolygon for many cases such as "
+"applying this function on an <xref linkend=\"ST_Split\"/> result."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:602
+#, no-c-format
+msgid ""
+"-- Constants: 1 == POINT, 2 == LINESTRING, 3 == POLYGON\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 "
+"0)))'),1));\n"
+"st_astext\n"
+"---------------\n"
+"MULTIPOINT(0 0)\n"
+"(1 row)\n"
+"\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(LINESTRING(0 "
+"0, 1 1)),LINESTRING(2 2, 3 3))'),2));\n"
+"st_astext\n"
+"---------------\n"
+"MULTILINESTRING((0 0, 1 1), (2 2, 3 3))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:606
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_CollectionHomogenize\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:612
+#, no-c-format
+msgid "ST_CollectionHomogenize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:614
+#, no-c-format
+msgid ""
+"Given a geometry collection, returns the \"simplest\" representation of the "
+"contents."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:621
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_CollectionHomogenize</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:631
+#, no-c-format
+msgid ""
+"Given a geometry collection, returns the \"simplest\" representation of the "
+"contents. Singletons will be returned as singletons. Collections that are "
+"homogeneous will be returned as the appropriate multi-type."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:639
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:646
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 "
+"0))'));        \n"
+"\n"
+"        st_astext\n"
+"        ------------\n"
+"         POINT(0 0)\n"
+"        (1 row)\n"
+"\n"
+"  SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0),"
+"POINT(1 1))'));        \n"
+"\n"
+"        st_astext\n"
+"        ---------------------\n"
+"         MULTIPOINT(0 0,1 1)\n"
+"        (1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:650
+#, no-c-format
+msgid ", <xref linkend=\"ST_CollectionExtract\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:656
+#, no-c-format
+msgid "ST_Multi"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:658
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the geometry as a MULTI* geometry. If the geometry is "
+"already a MULTI*, it is returned unchanged.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:664
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Multi</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:674
+#, no-c-format
+msgid ""
+"<para>Returns the geometry as a MULTI* geometry. If the geometry is already "
+"a MULTI*, it is returned unchanged.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:682
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Multi(ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))')));\n"
+"                        st_astext\n"
+"                        --------------------------------------------------------------------------------------------------\n"
+"                        MULTIPOLYGON(((743238 2967416,743238 2967450,743265 "
+"2967450,743265.625 2967416,\n"
+"                        743238 2967416)))\n"
+"                        (1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:692
+#, no-c-format
+msgid "ST_RemovePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:693
+#, no-c-format
+msgid "Removes point from a linestring. Offset is 0-based."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:697
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RemovePoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>offset</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:708
+#, no-c-format
+msgid ""
+"Removes point from a linestring. Useful for turning a closed ring into an "
+"open line string"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:715
+#, no-c-format
+msgid ""
+"--guarantee no LINESTRINGS are closed\n"
+"--by removing the end point.  The below assumes the_geom is of type "
+"LINESTRING\n"
+"UPDATE sometable\n"
+"        SET the_geom = ST_RemovePoint(the_geom, ST_NPoints(the_geom) - 1)\n"
+"        FROM sometable\n"
+"        WHERE ST_IsClosed(the_geom) = true;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:719
+#, no-c-format
+msgid ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:725
+#, no-c-format
+msgid "ST_Reverse"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:726
+#, no-c-format
+msgid "Returns the geometry with vertex order reversed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:731
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Reverse</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:741
+#, no-c-format
+msgid "Can be used on any geometry and reverses the order of the vertexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:746
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom) as line, ST_AsText(ST_Reverse(the_geom)) As "
+"reverseline\n"
+"FROM\n"
+"(SELECT ST_MakeLine(ST_MakePoint(1,2),\n"
+"                ST_MakePoint(1,10)) As the_geom) as foo;\n"
+"--result\n"
+"                line         |     reverseline\n"
+"---------------------+----------------------\n"
+"LINESTRING(1 2,1 10) | LINESTRING(1 10,1 2)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:752
+#, no-c-format
+msgid "ST_Rotate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:754
+#, no-c-format
+msgid "Rotate a geometry rotRadians counter-clockwise about an origin."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:758
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Rotate</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>x0</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>y0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Rotate</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>rotRadians</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>pointOrigin</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:785
+#, no-c-format
+msgid ""
+"Rotates geometry rotRadians counter-clockwise about the origin. The rotation "
+"origin can be specified either as a POINT geometry, or as x and y "
+"coordinates. If the origin is not specified, the geometry is rotated about "
+"POINT(0 0)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:790
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 additional parameters for specifying the origin of rotation "
+"were added."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:791
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from Rotate to ST_Rotate in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:803
+#, no-c-format
+msgid ""
+"--Rotate 180 degrees\n"
+"SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()));\n"
+"               st_asewkt\n"
+"---------------------------------------\n"
+" LINESTRING(-50 -160,-50 -50,-100 -50)\n"
+"(1 row)\n"
+"\n"
+"--Rotate 30 degrees counter-clockwise at x=50, y=160\n"
+"SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()/6, 50, "
+"160));\n"
+"                                 st_asewkt\n"
+"---------------------------------------------------------------------------\n"
+" LINESTRING(50 160,105 64.7372055837117,148.301270189222 89.7372055837117)\n"
+"(1 row)\n"
+"\n"
+"--Rotate 60 degrees clockwise from centroid\n"
+"SELECT ST_AsEWKT(ST_Rotate(geom, -pi()/3, ST_Centroid(geom)))\n"
+"FROM (SELECT 'LINESTRING (50 160, 50 50, 100 50)'::geometry AS geom) AS "
+"foo;\n"
+"                           st_asewkt\n"
+"--------------------------------------------------------------\n"
+" LINESTRING(116.4225 130.6721,21.1597 75.6721,46.1597 32.3708)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:810
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>, <xref "
+"linkend=\"ST_RotateZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:816
+#, no-c-format
+msgid "ST_RotateX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:818
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the X axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:823
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateX</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:834
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the X axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:836
+#, no-c-format
+msgid ""
+"<code>ST_RotateX(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, "
+"sin(rotRadians), cos(rotRadians), 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:840
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateX to ST_RotateX in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:850
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along x-axis\n"
+"SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(1 -3 2,1 -1 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:857
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:863
+#, no-c-format
+msgid "ST_RotateY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:865
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the Y axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:870
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateY</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:881
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the y axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:883
+#, no-c-format
+msgid ""
+"<code>ST_RotateY(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -"
+"sin(rotRadians), 0, cos(rotRadians), 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:886
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateY to ST_RotateY in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:899
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along y-axis\n"
+" SELECT ST_AsEWKT(ST_RotateY(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(3 2 -1,1 1 -1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:906
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:912
+#, no-c-format
+msgid "ST_RotateZ"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:914
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the Z axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:919
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateZ</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:930
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the Z axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:932
+#, no-c-format
+msgid "This is a synonym for ST_Rotate"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:933
+#, no-c-format
+msgid ""
+"<code>ST_RotateZ(geomA, rotRadians)</code> is short-hand for <code>SELECT "
+"ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), "
+"cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:938
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateZ to ST_RotateZ in 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:951
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along z-axis\n"
+"SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(-2 1 3,-1 1 1)\n"
+"\n"
+" --Rotate a curved circle around z-axis\n"
+"SELECT ST_AsEWKT(ST_RotateZ(the_geom, pi()/2))\n"
+"FROM (SELECT ST_LineToCurve(ST_Buffer(ST_GeomFromText('POINT(234 567)'), 3)) "
+"As the_geom) As foo;\n"
+"\n"
+"                                                                                                           st_asewkt\n"
+"----------------------------------------------------------------------------------------------------------------------------\n"
+" CURVEPOLYGON(CIRCULARSTRING(-567 237,-564.87867965644 236.12132034356,-564 "
+"234,-569.12132034356 231.87867965644,-567 237))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:958
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:964
+#, no-c-format
+msgid "ST_Scale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:966
+#, no-c-format
+msgid ""
+"<refpurpose>Scales the geometry to a new size by multiplying the ordinates "
+"with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:973
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>ZFactor</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Scale</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>XFactor</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>YFactor</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:994
+#, no-c-format
+msgid ""
+"<para>Scales the geometry to a new size by multiplying the ordinates with "
+"the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:998
+#, no-c-format
+msgid ""
+"<code>ST_Scale(geomA, XFactor, YFactor, ZFactor)</code> is short-hand for "
+"<code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, "
+"0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1004 reference_editor.xml:1577
+#, no-c-format
+msgid "Availability: 1.1.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1016
+#, no-c-format
+msgid ""
+"--Version 1: scale X, Y, Z\n"
+"SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, "
+"0.75, 0.8));\n"
+"                          st_asewkt\n"
+"--------------------------------------\n"
+" LINESTRING(0.5 1.5 2.4,0.5 0.75 0.8)\n"
+"\n"
+"--Version 2: Scale X Y\n"
+" SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, "
+"0.75));\n"
+"                        st_asewkt\n"
+"----------------------------------\n"
+" LINESTRING(0.5 1.5 3,0.5 0.75 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1023
+#, no-c-format
+msgid ", <xref linkend=\"ST_TransScale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1029
+#, no-c-format
+msgid "ST_Segmentize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1031
+#, no-c-format
+msgid ""
+"Return a modified geometry/geography having no segment longer than the given "
+"distance. Distance computation is performed in 2d only. For geometry, length "
+"units are in units of spatial reference. For geography, units are in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1037
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geography "
+"<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
+"type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1054
+#, no-c-format
+msgid ""
+"Returns a modified geometry having no segment longer than the given "
+"<varname>max_segment_length</varname>. Distance computation is performed in "
+"2d only. For geometry, length units are in units of spatial reference. For "
+"geography, units are in meters."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1057 reference_editor.xml:1518
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1058
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1059
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 As a result of the introduction of geography support: The "
+"construct <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</code> "
+"will result in ambiguous function error. You need to have properly typed "
+"object e.g. a geometry/geography column, use ST_GeomFromText, "
+"ST_GeogFromText or <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)'::"
+"geometry,0.5);</code>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1061
+#, no-c-format
+msgid ""
+"This will only increase segments. It will not lengthen segments shorter than "
+"max length"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1068
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Segmentize(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 "
+"-33,-46 -32))')\n"
+"                ,5)\n"
+");\n"
+"st_astext\n"
+"--------------------------------------------------------------------------------------------------\n"
+"MULTILINESTRING((-29 -27,-30 -29.7,-34.886615700134 -30.758766735029,-36 "
+"-31,\n"
+"-40.8809353009198 -32.0846522890933,-45 -33),\n"
+"(-45 -33,-46 -32))\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_Segmentize(ST_GeomFromText('POLYGON((-29 28, -30 40, -29 "
+"28))'),10));\n"
+"st_astext\n"
+"-----------------------\n"
+"POLYGON((-29 28,-29.8304547985374 37.9654575824488,-30 40,-29.1695452014626 "
+"30.0345424175512,-29 28))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1078
+#, no-c-format
+msgid "ST_SetPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1079
+#, no-c-format
+msgid "Replace point N of linestring with given point. Index is 0-based."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1084
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SetPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>zerobasedposition</parameter></"
+"paramdef> <paramdef><type>geometry</type> <parameter>point</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1096
+#, no-c-format
+msgid ""
+"Replace point N of linestring with given point. Index is 0-based. This is "
+"especially useful in triggers when trying to maintain relationship of joints "
+"when one vertex moves."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1106
+#, no-c-format
+msgid ""
+"--Change first point in line string from -1 3 to -1 1\n"
+"SELECT ST_AsText(ST_SetPoint('LINESTRING(-1 2,-1 3)', 0, 'POINT(-1 1)'));\n"
+"           st_astext\n"
+"-----------------------\n"
+" LINESTRING(-1 1,-1 3)\n"
+"\n"
+"---Change last point in a line string (lets play with 3d linestring this "
+"time)\n"
+"SELECT ST_AsEWKT(ST_SetPoint(foo.the_geom, ST_NumPoints(foo.the_geom) - 1, "
+"ST_GeomFromEWKT('POINT(-1 1 3)')))\n"
+"FROM (SELECT ST_GeomFromEWKT('LINESTRING(-1 2 3,-1 3 4, 5 6 7)') As "
+"the_geom) As foo;\n"
+"           st_asewkt\n"
+"-----------------------\n"
+"LINESTRING(-1 2 3,-1 3 4,-1 1 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1110
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>, <xref "
+"linkend=\"ST_PointN\"/>, <xref linkend=\"ST_RemovePoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1116
+#, no-c-format
+msgid "ST_SetSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1118
+#, no-c-format
+msgid "Sets the SRID on a geometry to a particular integer value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1124
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1139
+#, no-c-format
+msgid ""
+"Sets the SRID on a geometry to a particular integer value. Useful in "
+"constructing bounding boxes for queries."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1143
+#, no-c-format
+msgid ""
+"This function does not transform the geometry coordinates in any way - it "
+"simply sets the meta data defining the spatial reference system the geometry "
+"is assumed to be in. Use <xref linkend=\"ST_Transform\"/> if you want to "
+"transform the geometry into a new projection."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1148
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1154
+#, no-c-format
+msgid "-- Mark a point as WGS 84 long lat --"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1155
+#, no-c-format
+msgid ""
+"SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) As wgs84long_lat;\n"
+"-- the ewkt representation (wrap with ST_AsEWKT) -\n"
+"SRID=4326;POINT(-123.365556 48.428611)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1156
+#, no-c-format
+msgid ""
+"-- Mark a point as WGS 84 long lat and then transform to web mercator "
+"(Spherical Mercator) --"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1157
+#, no-c-format
+msgid ""
+"SELECT ST_Transform(ST_SetSRID(ST_Point(-123.365556, 48.428611),4326),3785) "
+"As spere_merc;\n"
+"-- the ewkt representation (wrap with ST_AsEWKT) -\n"
+"SRID=3785;POINT(-13732990.8753491 6178458.96425423)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1163
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_SRID\"/>, <xref linkend=\"ST_Transform\"/>, <xref linkend="
+"\"UpdateGeometrySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1170
+#, no-c-format
+msgid "ST_SnapToGrid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1172
+#, no-c-format
+msgid "Snap all points of the input geometry to a regular grid."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1178
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_SnapToGrid</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originY</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeY</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>size</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_SnapToGrid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>pointOrigin</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeZ</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeM</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1216
+#, no-c-format
+msgid ""
+"Variant 1,2,3: Snap all points of the input geometry to the grid defined by "
+"its origin and cell size. Remove consecutive points falling on the same "
+"cell, eventually returning NULL if output points are not enough to define a "
+"geometry of the given type. Collapsed geometries in a collection are "
+"stripped from it. Useful for reducing precision."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1224
+#, no-c-format
+msgid ""
+"Variant 4: Introduced 1.1.0 - Snap all points of the input geometry to the "
+"grid defined by its origin (the second argument, must be a point) and cell "
+"sizes. Specify 0 as size for any dimension you don't want to snap to a grid."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1230
+#, no-c-format
+msgid ""
+"The returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1235
+#, no-c-format
+msgid ""
+"Before release 1.1.0 this function always returned a 2d geometry. Starting "
+"at 1.1.0 the returned geometry will have same dimensionality as the input "
+"one with higher dimension values untouched. Use the version taking a second "
+"geometry argument to define all grid dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1242
+#, no-c-format
+msgid "Availability: 1.0.0RC1"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1243
+#, no-c-format
+msgid "Availability: 1.1.0 - Z and M support"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1252
+#, no-c-format
+msgid ""
+"--Snap your geometries to a precision grid of 10^-3\n"
+"UPDATE mytable\n"
+"   SET the_geom = ST_SnapToGrid(the_geom, 0.001);\n"
+"\n"
+"SELECT ST_AsText(ST_SnapToGrid(\n"
+"                        ST_GeomFromText('LINESTRING(1.1115678 2.123, "
+"4.111111 3.2374897, 4.11112 3.23748667)'),\n"
+"                        0.001)\n"
+"                );\n"
+"                          st_astext\n"
+"-------------------------------------\n"
+" LINESTRING(1.112 2.123,4.111 3.237)\n"
+" --Snap a 4d geometry\n"
+"SELECT ST_AsEWKT(ST_SnapToGrid(\n"
+"        ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 2.3456 1.11111,\n"
+"                4.111111 3.2374897 3.1234 1.1111, -1.11111112 2.123 2.3456 "
+"1.1111112)'),\n"
+" ST_GeomFromEWKT('POINT(1.12 2.22 3.2 4.4444)'),\n"
+" 0.1, 0.1, 0.1, 0.01) );\n"
+"                                                                  st_asewkt\n"
+"------------------------------------------------------------------------------\n"
+" LINESTRING(-1.08 2.12 2.3 1.1144,4.12 3.22 3.1 1.1144,-1.08 2.12 2.3 "
+"1.1144)\n"
+"\n"
+"\n"
+"--With a 4d geometry - the ST_SnapToGrid(geom,size) only touches x and y "
+"coords but keeps m and z the same\n"
+"SELECT ST_AsEWKT(ST_SnapToGrid(ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 "
+"3 2.3456,\n"
+"                4.111111 3.2374897 3.1234 1.1111)'),\n"
+"           0.01)      );\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+" LINESTRING(-1.11 2.12 3 2.3456,4.11 3.24 3.1234 1.1111)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1259
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_Simplify\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1272
+#, no-c-format
+msgid "ST_Snap"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1274
+#, no-c-format
+msgid ""
+"Snap segments and vertices of input geometry to vertices of a reference "
+"geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1282
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Snap</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>reference</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1294
+#, no-c-format
+msgid ""
+"Snaps the vertices and segments of a geometry another Geometry's vertices. A "
+"snap distance tolerance is used to control where snapping is performed."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1299
+#, no-c-format
+msgid ""
+"Snapping one geometry to another can improve robustness for overlay "
+"operations by eliminating nearly-coincident edges (which cause problems "
+"during noding and intersection calculation)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1306
+#, no-c-format
+msgid ""
+"Too much snapping can result in invalid topology being created, so the "
+"number and location of snapped vertices is decided using heuristics to "
+"determine when it is safe to snap. This can result in some potential snaps "
+"being omitted, however."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1315
+#, no-c-format
+msgid ""
+"The returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>) and validity (see <xref linkend=\"ST_IsValid\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1322
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1339
+#, no-c-format
+msgid "A multipolygon shown with a linestring (before any snapping)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1350
+#, no-c-format
+msgid ""
+"A multipolygon snapped to linestring to tolerance: 1.01 of distance. The new "
+"multipolygon is shown with reference linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1354
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Snap(poly,line, ST_Distance(poly,line)*1.01)) AS "
+"polysnapped\n"
+"FROM (SELECT \n"
+"   ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )), \n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+" MULTIPOLYGON(((26 125,26 200,126 200,126 125,101 100,26 125),\n"
+" (51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1361
+#, no-c-format
+msgid ""
+"A multipolygon snapped to linestring to tolerance: 1.25 of distance. The new "
+"multipolygon is shown with reference linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1365
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"    ST_Snap(poly,line, ST_Distance(poly,line)*1.25)\n"
+"  ) AS polysnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"    (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )),\n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+"MULTIPOLYGON(((5 107,26 200,126 200,126 125,101 100,54 84,5 107),\n"
+"(51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1374
+#, no-c-format
+msgid ""
+"The linestring snapped to the original multipolygon at tolerance 1.01 of "
+"distance. The new linestring is shown with reference multipolygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1378
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"   ST_Snap(line, poly, ST_Distance(poly,line)*1.01)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100)))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"        ) As foo;\n"
+"\n"
+"              linesnapped\n"
+"----------------------------------------\n"
+" LINESTRING(5 107,26 125,54 84,101 100)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1386
+#, no-c-format
+msgid ""
+"The linestring snapped to the original multipolygon at tolerance 1.25 of "
+"distance. The new linestring is shown with reference multipolygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1390
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+" ST_Snap(line, poly, ST_Distance(poly,line)*1.25)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As "
+"line        \n"
+"        ) As foo;\n"
+"              linesnapped\n"
+"---------------------------------------\n"
+"LINESTRING(26 125,54 84,101 100)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1411
+#, no-c-format
+msgid "ST_Transform"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1413
+#, no-c-format
+msgid ""
+"Returns a new geometry with its coordinates transformed to the SRID "
+"referenced by the integer parameter."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1419
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Transform</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1430
+#, no-c-format
+msgid ""
+"Returns a new geometry with its coordinates transformed to spatial reference "
+"system referenced by the SRID integer parameter. The destination SRID must "
+"exist in the <varname>SPATIAL_REF_SYS</varname> table."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1433
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a geometry from one spatial reference system to "
+"another, while ST_SetSRID() simply changes the SRID identifier of the "
+"geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1438
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with Proj support. Use <xref linkend="
+"\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1442
+#, no-c-format
+msgid ""
+"If using more than one transformation, it is useful to have a functional "
+"index on the commonly used transformations to take advantage of index usage."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1449
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.6"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1457
+#, no-c-format
+msgid "Change Mass state plane US feet geometry to WGS 84 long lat"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1458
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Transform(ST_GeomFromText('POLYGON((743238 "
+"2967416,743238 2967450,\n"
+"        743265 2967450,743265.625 2967416,743238 2967416))',2249),4326)) As "
+"wgs_geom;\n"
+"\n"
+" wgs_geom\n"
+"---------------------------\n"
+" POLYGON((-71.1776848522251 42.3902896512902,-71.1776843766326 "
+"42.3903829478009,\n"
+"-71.1775844305465 42.3903826677917,-71.1775825927231 "
+"42.3902893647987,-71.177684\n"
+"8522251 42.3902896512902));\n"
+"(1 row)\n"
+"\n"
+"--3D Circular String example\n"
+"SELECT ST_AsEWKT(ST_Transform(ST_GeomFromEWKT('SRID=2249;"
+"CIRCULARSTRING(743238 2967416 1,743238 2967450 2,743265 2967450 3,743265.625 "
+"2967416 3,743238 2967416 4)'),4326));\n"
+"\n"
+"                                 st_asewkt\n"
+"--------------------------------------------------------------------------------------\n"
+" SRID=4326;CIRCULARSTRING(-71.1776848522251 42.3902896512902 "
+"1,-71.1776843766326 42.3903829478009 2,\n"
+" -71.1775844305465 42.3903826677917 3,\n"
+" -71.1775825927231 42.3902893647987 3,-71.1776848522251 42.3902896512902 4)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1459
+#, no-c-format
+msgid ""
+"Example of creating a partial functional index. For tables where you are not "
+"sure all the geometries will be filled in, its best to use a partial index "
+"that leaves out null geometries which will both conserve space and make your "
+"index smaller and more efficient."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1461
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_the_geom_26986_parcels\n"
+"  ON parcels\n"
+"  USING gist\n"
+"  (ST_Transform(the_geom, 26986))\n"
+"  WHERE the_geom IS NOT NULL;"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:1465
+#, no-c-format
+msgid "Configuring transformation behaviour"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1466
+#, no-c-format
+msgid ""
+"Sometimes coordinate transformation involving a grid-shift can fail, for "
+"example if PROJ.4 has not been built with grid-shift files or the coordinate "
+"does not lie within the range for which the grid shift is defined. By "
+"default, PostGIS will throw an error if a grid shift file is not present, "
+"but this behaviour can be configured on a per-SRID basis by altering the "
+"proj4text value within the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1467
+#, no-c-format
+msgid ""
+"For example, the proj4text parameter +datum=NAD87 is a shorthand form for "
+"the following +nadgrids parameter:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1468
+#, no-c-format
+msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1469
+#, no-c-format
+msgid ""
+"The @ prefix means no error is reported if the files are not present, but if "
+"the end of the list is reached with no file having been appropriate (ie. "
+"found and overlapping) then an error is issued."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1470
+#, no-c-format
+msgid ""
+"If, conversely, you wanted to ensure that at least the standard files were "
+"present, but that if all files were scanned without a hit a null "
+"transformation is applied you could use:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1471
+#, no-c-format
+msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1472
+#, no-c-format
+msgid ""
+"The null grid shift file is a valid grid shift file covering the whole world "
+"and applying no shift. So for a complete example, if you wanted to alter "
+"PostGIS so that transformations to SRID 4267 that didn't lie within the "
+"correct range did not throw an ERROR, you would use the following:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1473
+#, no-c-format
+msgid ""
+"UPDATE spatial_ref_sys SET proj4text = '+proj=longlat +ellps=clrk66 "
+"+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null +no_defs' WHERE srid "
+"= 4267;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1480
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"UpdateGeometrySRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1486
+#, no-c-format
+msgid "ST_Translate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1488
+#, no-c-format
+msgid ""
+"Translates the geometry to a new location using the numeric parameters as "
+"offsets. Ie: ST_Translate(geom, X, Y) or ST_Translate(geom, X, Y,Z)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1493
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Translate</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltax</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltay</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Translate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltax</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltay</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltaz</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1513
+#, no-c-format
+msgid ""
+"Returns a new geometry whose coordinates are translated delta x,delta y,"
+"delta z units. Units are based on the units defined in spatial reference "
+"(SRID) for this geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1525
+#, no-c-format
+msgid "Move a point 1 degree longitude"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1526
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 "
+"42.37)',4326),1,0)) As wgs_transgeomtxt;\n"
+"\n"
+"        wgs_transgeomtxt\n"
+"        ---------------------\n"
+"        POINT(-70.01 42.37)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1527
+#, no-c-format
+msgid "Move a linestring 1 degree longitude and 1/2 degree latitude"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1528
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 "
+"42.37,-71.11 42.38)',4326),1,0.5)) As wgs_transgeomtxt;\n"
+"                   wgs_transgeomtxt\n"
+"        ---------------------------------------\n"
+"        LINESTRING(-70.01 42.87,-70.11 42.88)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1529
+#, no-c-format
+msgid "Move a 3d point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1530
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' As geometry), 5, 12,3));\n"
+"        st_asewkt\n"
+"        ---------\n"
+"        POINT(5 12 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1531
+#, no-c-format
+msgid "Move a curve and a point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1532
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_Collect('CURVEPOLYGON(CIRCULARSTRING(4 "
+"3,3.12 0.878,1 0,-1.121 5.1213,6 7, 8 9,4 3))','POINT(1 3)'),1,2));\n"
+"                                                                                                                 st_astext\n"
+"------------------------------------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CURVEPOLYGON(CIRCULARSTRING(5 5,4.12 2.878,2 2,-0.121 "
+"7.1213,7 9,9 11,5 5)),POINT(2 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1538
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1544
+#, no-c-format
+msgid "ST_TransScale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:1546
+#, no-c-format
+msgid ""
+"<refpurpose>Translates the geometry using the deltaX and deltaY args, then "
+"scales it using the XFactor, YFactor args, working in 2D only.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1553
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_TransScale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaX</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaY</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1567
+#, no-c-format
+msgid ""
+"<para>Translates the geometry using the deltaX and deltaY args, then scales "
+"it using the XFactor, YFactor args, working in 2D only.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1570
+#, no-c-format
+msgid ""
+"<code>ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor)</code> is short-"
+"hand for <code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, "
+"deltaX*XFactor, deltaY*YFactor, 0)</code>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1586
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_TransScale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"0.5, 1, 1, 2));\n"
+"                  st_asewkt\n"
+"-----------------------------\n"
+" LINESTRING(1.5 6 3,1.5 4 1)\n"
+"\n"
+"\n"
+"--Buffer a point to get an approximation of a circle, convert to curve and "
+"then translate 1,2 and scale it 3,4\n"
+"  SELECT ST_AsText(ST_Transscale(ST_LineToCurve(ST_Buffer('POINT(234 567)', "
+"3)),1,2,3,4));\n"
+"                                                                                                                  st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" CURVEPOLYGON(CIRCULARSTRING(714 2276,711.363961030679 2267.51471862576,705 "
+"2264,698.636038969321 2284.48528137424,714 2276))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1593
+#, no-c-format
+msgid ", <xref linkend=\"ST_Translate\"/>"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_exception.xml.po b/doc/po/ko_KR/reference_exception.xml.po
new file mode 100644
index 0000000..1495bfe
--- /dev/null
+++ b/doc/po/ko_KR/reference_exception.xml.po
@@ -0,0 +1,225 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-26 14:23+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis-1/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_exception.xml:3
+#, no-c-format
+msgid "Exceptional Functions"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:4
+#, no-c-format
+msgid ""
+"These functions are rarely used functions that should only be used if your "
+"data is corrupted in someway. They are used for troubleshooting corruption "
+"and also fixing things that should under normal circumstances, never happen."
+msgstr ""
+
+#. Tag: refname
+#: reference_exception.xml:9
+#, no-c-format
+msgid "PostGIS_AddBBox"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_exception.xml:11
+#, no-c-format
+msgid "Add bounding box to the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_exception.xml:16
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>PostGIS_AddBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_exception.xml:24 reference_exception.xml:70
+#: reference_exception.xml:119
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:26
+#, no-c-format
+msgid ""
+"Add bounding box to the geometry. This would make bounding box based queries "
+"faster, but will increase the size of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:31
+#, no-c-format
+msgid ""
+"Bounding boxes are automatically added to geometries so in general this is "
+"not needed unless the generated bounding box somehow becomes corrupted or "
+"you have an old install that is lacking bounding boxes. Then you need to "
+"drop the old and readd."
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:35 reference_exception.xml:83
+#: reference_exception.xml:124
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_exception.xml:40 reference_exception.xml:88
+#: reference_exception.xml:129
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_exception.xml:42
+#, no-c-format
+msgid ""
+"UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE PostGIS_HasBBox(the_geom) = false;"
+msgstr ""
+
+#. Tag: title
+#: reference_exception.xml:47 reference_exception.xml:95
+#: reference_exception.xml:136
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:49
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_HasBBox\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_exception.xml:55
+#, no-c-format
+msgid "PostGIS_DropBBox"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_exception.xml:57
+#, no-c-format
+msgid "Drop the bounding box cache from the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_exception.xml:62
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>PostGIS_DropBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:72
+#, no-c-format
+msgid ""
+"Drop the bounding box cache from the geometry. This reduces geometry size, "
+"but makes bounding-box based queries slower. It is also used to drop a "
+"corrupt bounding box. A tale-tell sign of a corrupt cached bounding box is "
+"when your ST_Intersects and other relation queries leave out geometries that "
+"rightfully should return true."
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:77
+#, no-c-format
+msgid ""
+"Bounding boxes are automatically added to geometries and improve speed of "
+"queries so in general this is not needed unless the generated bounding box "
+"somehow becomes corrupted or you have an old install that is lacking "
+"bounding boxes. Then you need to drop the old and readd. This kind of "
+"corruption has been observed in 8.3-8.3.6 series whereby cached bboxes were "
+"not always recalculated when a geometry changed and upgrading to a newer "
+"version without a dump reload will not correct already corrupted boxes. So "
+"one can manually correct using below and readd the bbox or do a dump reload."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_exception.xml:90
+#, no-c-format
+msgid ""
+"--This example drops bounding boxes where the cached box is not correct\n"
+"                        --The force to ST_AsBinary before applying Box2D "
+"forces a recalculation of the box, and Box2D applied to the table geometry "
+"always\n"
+"                        -- returns the cached bounding box.\n"
+"                        UPDATE sometable\n"
+" SET the_geom =  PostGIS_DropBBox(the_geom)\n"
+" WHERE Not (Box2D(ST_AsBinary(the_geom)) = Box2D(the_geom));\n"
+"\n"
+"        UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE Not PostGIS_HasBBOX(the_geom);"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:97
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_HasBBox\"/>, <xref linkend=\"Box2D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_exception.xml:104
+#, no-c-format
+msgid "PostGIS_HasBBox"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_exception.xml:106
+#, no-c-format
+msgid "Returns TRUE if the bbox of this geometry is cached, FALSE otherwise."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_exception.xml:111
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>PostGIS_HasBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:121
+#, no-c-format
+msgid ""
+"Returns TRUE if the bbox of this geometry is cached, FALSE otherwise. Use "
+"<xref linkend=\"PostGIS_AddBBox\"/> and <xref linkend=\"PostGIS_DropBBox\"/> "
+"to control caching."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_exception.xml:131
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM sometable WHERE PostGIS_HasBBox(the_geom) = false;"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:138
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_DropBBox\"/>"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_guc.xml.po b/doc/po/ko_KR/reference_guc.xml.po
new file mode 100644
index 0000000..7e0f239
--- /dev/null
+++ b/doc/po/ko_KR/reference_guc.xml.po
@@ -0,0 +1,408 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:07+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: para
+#: reference_guc.xml:5
+#, no-c-format
+msgid ""
+"This section lists custom PostGIS Grand Unified Custom Variables(GUC). These "
+"can be set globally, by database, by session or by transaction. Best set at "
+"global or database level."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:8
+#, no-c-format
+msgid "PostGIS Grand Unified Custom Variables (GUCs)"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:12
+#, no-c-format
+msgid "postgis.backend"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:13
+#, no-c-format
+msgid ""
+"The backend to service a function where GEOS and SFCGAL overlap. Options: "
+"geos or sfcgal. Defaults to geos."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:17 reference_guc.xml:45 reference_guc.xml:95
+#: reference_guc.xml:180
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:18
+#, no-c-format
+msgid ""
+"This GUC is only relevant if you compiled PostGIS with sfcgal support. By "
+"default <varname>geos</varname> backend is used for functions where both "
+"GEOS and SFCGAL have the same named function. This variable allows you to "
+"override and make sfcgal the backend to service the request."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:19
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:23 reference_guc.xml:69 reference_guc.xml:146
+#: reference_guc.xml:206
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:24
+#, no-c-format
+msgid "Sets backend just for life of connection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:25
+#, no-c-format
+msgid "set postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:27
+#, no-c-format
+msgid "Sets backend for new connections to database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:28
+#, no-c-format
+msgid "ALTER DATABASE mygisdb SET postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:31 reference_guc.xml:79 reference_guc.xml:159
+#: reference_guc.xml:213
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:38
+#, no-c-format
+msgid "postgis.gdal_datapath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:39
+#, no-c-format
+msgid ""
+"A configuration option to assign the value of GDAL's GDAL_DATA option. If "
+"not set, the environmentally set GDAL_DATA variable is used."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:46
+#, no-c-format
+msgid ""
+"A PostgreSQL GUC variable for setting the value of GDAL's GDAL_DATA option. "
+"The <varname>postgis.gdal_datapath</varname> value should be the complete "
+"physical path to GDAL's data files."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:49
+#, no-c-format
+msgid ""
+"This configuration option is of most use for Windows platforms where GDAL's "
+"data files path is not hard-coded. This option should also be set when "
+"GDAL's data files are not located in GDAL's expected path."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:54
+#, no-c-format
+msgid ""
+"This option can be set in PostgreSQL's configuration file postgresql.conf. "
+"It can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:58 reference_guc.xml:141 reference_guc.xml:201
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:61
+#, no-c-format
+msgid ""
+"Additional information about GDAL_DATA is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:70
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_datapath</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:72
+#, no-c-format
+msgid ""
+"SET postgis.gdal_datapath TO '/usr/local/share/gdal.hidden';\n"
+"SET postgis.gdal_datapath TO default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:74
+#, no-c-format
+msgid "Setting on windows for a particular database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:75
+#, no-c-format
+msgid ""
+"ALTER DATABASE gisdb\n"
+"SET postgis.gdal_datapath = 'C:/Program Files/PostgreSQL/9.3/gdal-data';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:80
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:88
+#, no-c-format
+msgid "postgis.gdal_enabled_drivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:89
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:96
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP. This option "
+"can be set in PostgreSQL's configuration file: postgresql.conf. It can also "
+"be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:100
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.gdal_enabled_drivers</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_GDAL_ENABLED_DRIVERS</varname> with the list of enabled "
+"drivers to the process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:104
+#, no-c-format
+msgid ""
+"Enabled GDAL specified drivers can be specified by the driver's short-name "
+"or code. Driver short-names or codes can be found at <ulink url=\"http://www."
+"gdal.org/formats_list.html\">GDAL Raster Formats</ulink>. Multiple drivers "
+"can be specified by putting a space between each driver."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:109
+#, no-c-format
+msgid ""
+"There are three special codes available for <varname>postgis."
+"gdal_enabled_drivers</varname>. The codes are case-sensitive."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:114
+#, no-c-format
+msgid ""
+"<varname>DISABLE_ALL</varname> disables all GDAL drivers. If present, "
+"<varname>DISABLE_ALL</varname> overrides all other values in "
+"<varname>postgis.gdal_enabled_drivers</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:117
+#, no-c-format
+msgid "<varname>ENABLE_ALL</varname> enables all GDAL drivers."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:120
+#, no-c-format
+msgid ""
+"<varname>VSICURL</varname> enables GDAL's <varname>/vsicurl/</varname> "
+"virtual file system."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:124
+#, no-c-format
+msgid ""
+"When <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL, "
+"attempts to use out-db rasters, ST_FromGDALRaster(), ST_AsGDALRaster(), "
+"ST_AsTIFF(), ST_AsJPEG() and ST_AsPNG() will result in error messages."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:130
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.gdal_enabled_drivers</"
+"varname> is set to DISABLE_ALL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:136
+#, no-c-format
+msgid ""
+"Additional information about GDAL_SKIP is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:147
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_enabled_drivers</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:149
+#, no-c-format
+msgid ""
+"SET postgis.gdal_enabled_drivers TO 'GTiff PNG JPEG';\n"
+"SET postgis.gdal_enabled_drivers = default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:151
+#, no-c-format
+msgid "Enable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:152
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:154
+#, no-c-format
+msgid "Disable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:155
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'DISABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:160
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>, "
+"<xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsJPEG\"/>, <xref "
+"linkend=\"postgis_enable_outdb_rasters\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:173
+#, no-c-format
+msgid "postgis.enable_outdb_rasters"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:174
+#, no-c-format
+msgid "A boolean configuration option to enable access to out-db raster bands."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:181
+#, no-c-format
+msgid ""
+"A boolean configuration option to enable access to out-db raster bands. This "
+"option can be set in PostgreSQL's configuration file: postgresql.conf. It "
+"can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:185
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.enable_outdb_rasters</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_ENABLE_OUTDB_RASTERS</varname> with a non-zero value to the "
+"process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:190
+#, no-c-format
+msgid ""
+"Even if <varname>postgis.enable_outdb_rasters</varname> is True, the GUC "
+"<varname>postgis.enable_outdb_rasters</varname> determines the accessible "
+"raster formats."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:196
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.enable_outdb_rasters</"
+"varname> is set to False."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:207
+#, no-c-format
+msgid "Set and reset <varname>postgis.enable_outdb_rasters</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:209
+#, no-c-format
+msgid ""
+"SET postgis.enable_outdb_rasters TO True;\n"
+"SET postgis.enable_outdb_rasters = default;\n"
+"SET postgis.enable_outdb_rasters = True;\n"
+"SET postgis.enable_outdb_rasters = False;"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_lrs.xml.po b/doc/po/ko_KR/reference_lrs.xml.po
new file mode 100644
index 0000000..e4dafd3
--- /dev/null
+++ b/doc/po/ko_KR/reference_lrs.xml.po
@@ -0,0 +1,797 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:07+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_lrs.xml:3
+#, no-c-format
+msgid "Linear Referencing"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:7
+#, no-c-format
+msgid "ST_LineInterpolatePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:9
+#, no-c-format
+msgid ""
+"Returns a point interpolated along a line. Second argument is a float8 "
+"between 0 and 1 representing fraction of total length of linestring the "
+"point has to be located."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:15
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineInterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_lrs.xml:24 reference_lrs.xml:86 reference_lrs.xml:138
+#: reference_lrs.xml:205 reference_lrs.xml:263 reference_lrs.xml:314
+#: reference_lrs.xml:359 reference_lrs.xml:403
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:26
+#, no-c-format
+msgid ""
+"Returns a point interpolated along a line. First argument must be a "
+"LINESTRING. Second argument is a float8 between 0 and 1 representing "
+"fraction of total linestring length the point has to be located."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:30 reference_lrs.xml:149
+#, no-c-format
+msgid ""
+"See <xref linkend=\"ST_LineLocatePoint\"/> for computing the line location "
+"nearest to a Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:34
+#, no-c-format
+msgid ""
+"Since release 1.1.1 this function also interpolates M and Z values (when "
+"present), while prior releases set them to 0.0."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:38
+#, no-c-format
+msgid "Availability: 0.8.2, Z and M supported added in 1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:39
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Interpolate_Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:40 reference_lrs.xml:160 reference_lrs.xml:322
+#: reference_lrs.xml:365 reference_lrs.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_lrs.xml:45 reference_lrs.xml:103 reference_lrs.xml:164
+#: reference_lrs.xml:228 reference_lrs.xml:279 reference_lrs.xml:326
+#: reference_lrs.xml:369 reference_lrs.xml:413
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:51
+#, no-c-format
+msgid "A linestring with the interpolated point at 20% position (0.20)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:54
+#, no-c-format
+msgid ""
+"--Return point 20% along 2d line\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.20))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(25 50, 100 125, 150 190)') "
+"as the_line) As foo;\n"
+"   st_asewkt\n"
+"----------------\n"
+" POINT(51.5974135047432 76.5974135047432)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:55
+#, no-c-format
+msgid ""
+"--Return point mid-way of 3d line\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.5))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6, 6 7 8)') as "
+"the_line) As foo;\n"
+"\n"
+"        st_asewkt\n"
+"--------------------\n"
+" POINT(3.5 4.5 5.5)\n"
+"\n"
+"\n"
+"--find closest point on a line to a point or other geometry\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+"FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
+"foo;\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(3 4)"
+msgstr ""
+
+#. Tag: title
+#: reference_lrs.xml:60 reference_lrs.xml:110 reference_lrs.xml:178
+#: reference_lrs.xml:234 reference_lrs.xml:286 reference_lrs.xml:333
+#: reference_lrs.xml:375
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:62
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref "
+"linkend=\"ST_LineLocatePoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:68
+#, no-c-format
+msgid "ST_LineLocatePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:70
+#, no-c-format
+msgid ""
+"Returns a float between 0 and 1 representing the location of the closest "
+"point on LineString to the given Point, as a fraction of total 2d line "
+"length."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:77
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_LineLocatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:88
+#, no-c-format
+msgid ""
+"Returns a float between 0 and 1 representing the location of the closest "
+"point on LineString to the given Point, as a fraction of total <link linkend="
+"\"ST_Length2D\">2d line</link> length."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:92
+#, no-c-format
+msgid ""
+"You can use the returned location to extract a Point (<xref linkend="
+"\"ST_LineInterpolatePoint\"/>) or a substring (<xref linkend="
+"\"ST_LineSubstring\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:95
+#, no-c-format
+msgid "This is useful for approximating numbers of addresses"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:97
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:98
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Locate_Point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:105
+#, no-c-format
+msgid ""
+"--Rough approximation of finding the street number of a point along the "
+"street\n"
+"--Note the whole foo thing is just to generate dummy data that looks\n"
+"--like house centroids and street\n"
+"--We use ST_DWithin to exclude\n"
+"--houses too far away from the street to be considered on the street\n"
+"SELECT ST_AsText(house_loc) As as_text_house_loc,\n"
+"        startstreet_num +\n"
+"                CAST( (endstreet_num - startstreet_num)\n"
+"                        * ST_LineLocatePoint(street_line, house_loc) As "
+"integer) As street_num\n"
+"FROM\n"
+"(SELECT ST_GeomFromText('LINESTRING(1 2, 3 4)') As street_line,\n"
+"        ST_MakePoint(x*1.01,y*1.03) As house_loc, 10 As startstreet_num,\n"
+"                20 As endstreet_num\n"
+"FROM generate_series(1,3) x CROSS JOIN generate_series(2,4) As y)\n"
+"As foo\n"
+"WHERE ST_DWithin(street_line, house_loc, 0.2);\n"
+"\n"
+" as_text_house_loc | street_num\n"
+"-------------------+------------\n"
+" POINT(1.01 2.06)  |         10\n"
+" POINT(2.02 3.09)  |         15\n"
+" POINT(3.03 4.12)  |         20\n"
+"\n"
+" --find closest point on a line to a point or other geometry\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+"FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
+"foo;\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(3 4)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:112
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_LineInterpolatePoint\"/"
+">, <xref linkend=\"ST_LineSubstring\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:118
+#, no-c-format
+msgid "ST_LineSubstring"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:120
+#, no-c-format
+msgid ""
+"Return a linestring being a substring of the input one starting and ending "
+"at the given fractions of total 2d length. Second and third arguments are "
+"float8 values between 0 and 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:128
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineSubstring</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>startfraction</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:140
+#, no-c-format
+msgid ""
+"Return a linestring being a substring of the input one starting and ending "
+"at the given fractions of total 2d length. Second and third arguments are "
+"float8 values between 0 and 1. This only works with LINESTRINGs. To use with "
+"contiguous MULTILINESTRINGs use in conjunction with <xref linkend="
+"\"ST_LineMerge\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:146
+#, no-c-format
+msgid ""
+"If 'start' and 'end' have the same value this is equivalent to <xref linkend="
+"\"ST_LineInterpolatePoint\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:153
+#, no-c-format
+msgid ""
+"Since release 1.1.1 this function also interpolates M and Z values (when "
+"present), while prior releases set them to unspecified values."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:158
+#, no-c-format
+msgid "Availability: 1.1.0, Z and M supported added in 1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:159
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Substring."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:170
+#, no-c-format
+msgid "A linestring seen with 1/3 midrange overlaid (0.333, 0.666)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:173
+#, no-c-format
+msgid ""
+"--Return the approximate 1/3 mid-range part of a linestring\n"
+"SELECT ST_AsText(ST_Line_SubString(ST_GeomFromText('LINESTRING(25 50, 100 "
+"125, 150 190)'), 0.333, 0.666));\n"
+"\n"
+"                                                                                   st_astext\n"
+"------------------------------------------------------------------------------------------------\n"
+"LINESTRING(69.2846934853974 94.2846934853974,100 125,111.700356260683 "
+"140.210463138888)\n"
+"\n"
+"--The below example simulates a while loop in\n"
+"--SQL using PostgreSQL generate_series() to cut all\n"
+"--linestrings in a table to 100 unit segments\n"
+"-- of which no segment is longer than 100 units\n"
+"-- units are measured in the SRID units of measurement\n"
+"-- It also assumes all geometries are LINESTRING or contiguous "
+"MULTILINESTRING\n"
+"--and no geometry is longer than 100 units*10000\n"
+"--for better performance you can reduce the 10000\n"
+"--to match max number of segments you expect\n"
+"\n"
+"SELECT field1, field2, ST_LineSubstring(the_geom, 100.00*n/length,\n"
+"  CASE\n"
+"        WHEN 100.00*(n+1) < length THEN 100.00*(n+1)/length\n"
+"        ELSE 1\n"
+"  END) As the_geom\n"
+"FROM\n"
+"  (SELECT sometable.field1, sometable.field2,\n"
+"  ST_LineMerge(sometable.the_geom) AS the_geom,\n"
+"  ST_Length(sometable.the_geom) As length\n"
+"  FROM sometable\n"
+"  ) AS t\n"
+"CROSS JOIN generate_series(0,10000) AS n\n"
+"WHERE n*100.00/length < 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:180
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_LineInterpolatePoint\"/>, <xref linkend=\"ST_LineMerge"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:186
+#, no-c-format
+msgid "ST_LocateAlong"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:188
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry collection value with elements that "
+"match the specified measure. Polygonal elements are not supported.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:195
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateAlong</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>ageom_with_measure</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_measure</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:207
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry collection value with elements that match "
+"the specified measure. Polygonal elements are not supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:211
+#, no-c-format
+msgid ""
+"If an offset is provided, the resultant will be offset to the left or right "
+"of the input line by the specified number of units. A positive offset will "
+"be to the left, and a negative one to the right."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:216 reference_lrs.xml:269
+#, no-c-format
+msgid ""
+"Semantic is specified by: ISO/IEC CD 13249-3:200x(E) - Text for Continuation "
+"CD Editing Meeting"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:219
+#, no-c-format
+msgid "Availability: 1.1.0 by old name ST_Locate_Along_Measure."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:220
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 in prior versions this used to be called "
+"ST_Locate_Along_Measure. The old name has been deprecated and will be "
+"removed in the future but is still available."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:221
+#, no-c-format
+msgid "Use this function only for geometries with an M component"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:223 reference_lrs.xml:275
+#, no-c-format
+msgid "&M_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:229
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"                (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"                                                 st_asewkt\n"
+"-----------------------------------------------------------\n"
+" MULTIPOINT M (1 2 3)\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsText((ST_Dump(the_geom)).geom)\n"
+"        FROM\n"
+"        (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"        (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"   st_asewkt\n"
+"---------------\n"
+" POINTM(1 2 3)\n"
+" POINTM(9 4 3)\n"
+" POINTM(1 2 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:236
+#, no-c-format
+msgid ", <xref linkend=\"ST_LocateBetween\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:242
+#, no-c-format
+msgid "ST_LocateBetween"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:244
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry collection value with elements that "
+"match the specified range of measures inclusively. Polygonal elements are "
+"not supported.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:251
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateBetween</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>measure_start</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_end</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:265
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry collection value with elements that match "
+"the specified range of measures inclusively. Polygonal elements are not "
+"supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:272
+#, no-c-format
+msgid "Availability: 1.1.0 by old name ST_Locate_Between_Measures."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:273
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions this used to be called "
+"ST_Locate_Between_Measures. The old name has been deprecated and will be "
+"removed in the future but is still available for backward compatibility."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:281
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetween(\n"
+"                        ST_GeomFromText('MULTILINESTRING M ((1 2 3, 3 4 2, 9 "
+"4 3),\n"
+"                (1 2 3, 5 4 5))'),1.5, 3) As the_geom) As foo;\n"
+"\n"
+"                                                         st_asewkt\n"
+"------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION M (LINESTRING M (1 2 3,3 4 2,9 4 3),POINT M (1 2 3))\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsText((ST_Dump(the_geom)).geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetween(\n"
+"                        ST_GeomFromText('MULTILINESTRING M ((1 2 3, 3 4 2, 9 "
+"4 3),\n"
+"                (1 2 3, 5 4 5))'),1.5, 3) As the_geom) As foo;\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+" LINESTRING M (1 2 3,3 4 2,9 4 3)\n"
+" POINT M (1 2 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:288
+#, no-c-format
+msgid ", <xref linkend=\"ST_LocateAlong\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:294
+#, no-c-format
+msgid "ST_LocateBetweenElevations"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:296
+#, no-c-format
+msgid ""
+"Return a derived geometry (collection) value with elements that intersect "
+"the specified range of elevations inclusively. Only 3D, 4D LINESTRINGS and "
+"MULTILINESTRINGS are supported."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:303
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>elevation_start</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>elevation_end</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:316
+#, no-c-format
+msgid ""
+"Return a derived geometry (collection) value with elements that intersect "
+"the specified range of elevations inclusively. Only 3D, 3DM LINESTRINGS and "
+"MULTILINESTRINGS are supported."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:320
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:328
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6)'),2,4)) As "
+"ewelev;\n"
+"                                                                   ewelev\n"
+"----------------------------------------------------------------\n"
+"        MULTILINESTRING((1 2 3,2 3 4))\n"
+"\n"
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9)) As ewelev;\n"
+"\n"
+"                                ewelev\n"
+"----------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(POINT(1 2 6),LINESTRING(6.1 7.1 6,7 8 9))\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsEWKT((ST_Dump(the_geom)).geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9) As the_geom) As foo;\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"POINT(1 2 6)\n"
+"LINESTRING(6.1 7.1 6,7 8 9)"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:342
+#, no-c-format
+msgid "ST_InterpolatePoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:344
+#, no-c-format
+msgid ""
+"<refpurpose>Return the value of the measure dimension of a geometry at the "
+"point closed to the provided point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:349
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_InterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:361
+#, no-c-format
+msgid ""
+"<para>Return the value of the measure dimension of a geometry at the point "
+"closed to the provided point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:363
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:371
+#, no-c-format
+msgid ""
+"SELECT ST_InterpolatePoint('LINESTRING M (0 0 0, 10 0 20)', 'POINT(5 5)');\n"
+" st_interpolatepoint \n"
+" ---------------------\n"
+"                                    10"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:377
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_LocateAlong\"/>, <xref linkend=\"ST_LocateBetween\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:385
+#, no-c-format
+msgid "ST_AddMeasure"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_lrs.xml:387
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry with measure elements linearly "
+"interpolated between the start and end points. If the geometry has no "
+"measure dimension, one is added. If the geometry has a measure dimension, it "
+"is over-written with new values. Only LINESTRINGS and MULTILINESTRINGS are "
+"supported.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:392
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddMeasure</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_start</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>measure_end</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:405
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry with measure elements linearly interpolated "
+"between the start and end points. If the geometry has no measure dimension, "
+"one is added. If the geometry has a measure dimension, it is over-written "
+"with new values. Only LINESTRINGS and MULTILINESTRINGS are supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:407
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:415
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0, 2 0, 4 0)'),1,4)) As ewelev;\n"
+"           ewelev             \n"
+"--------------------------------\n"
+" LINESTRINGM(1 0 1,2 0 2,4 0 4)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRING(1 0 4 10,2 0 4 20,4 0 4 40)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRINGM(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRINGM(1 0 10,2 0 20,4 0 40)\n"
+" \n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('MULTILINESTRINGM((1 0 4, 2 0 4, 4 0 4),(1 0 4, 2 0 4, 4 0 "
+"4))'),10,70)) As ewelev;\n"
+"                             ewelev                              \n"
+"-----------------------------------------------------------------\n"
+" MULTILINESTRINGM((1 0 10,2 0 20,4 0 40),(1 0 40,2 0 50,4 0 70))"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_management.xml.po b/doc/po/ko_KR/reference_management.xml.po
new file mode 100644
index 0000000..5a9eb82
--- /dev/null
+++ b/doc/po/ko_KR/reference_management.xml.po
@@ -0,0 +1,1543 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# BJ Jang <qgis.tr.kr at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:07+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_management.xml:3
+#, no-c-format
+msgid "Management Functions"
+msgstr "관리 함수"
+
+#. Tag: refname
+#: reference_management.xml:7
+#, no-c-format
+msgid "AddGeometryColumn"
+msgstr "AddGeometryColumn"
+
+#. Tag: refpurpose
+#: reference_management.xml:9
+#, no-c-format
+msgid ""
+"Adds a geometry column to an existing table of attributes. By default uses "
+"type modifier to define rather than constraints. Pass in false for "
+"use_typmod to get old check constraint based behavior"
+msgstr ""
+"기존 속성 테이블에 지오메트리 컬럼을 추가합니다. 기본적으로 컬럼을 정의하기 "
+"위해 제약 조건보다 오히려 유형 변경자를 사용합니다."
+
+#. Tag: funcsynopsis
+#: reference_management.xml:15
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>type</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>dimension</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>use_typmod=true</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>type</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>dimension</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>use_typmod=true</parameter></paramdef> </"
+"funcprototype>"
+
+#. Tag: title
+#: reference_management.xml:92 reference_management.xml:188
+#: reference_management.xml:254 reference_management.xml:298
+#: reference_management.xml:344 reference_management.xml:386
+#: reference_management.xml:427 reference_management.xml:458
+#: reference_management.xml:499 reference_management.xml:540
+#: reference_management.xml:583 reference_management.xml:631
+#: reference_management.xml:677 reference_management.xml:726
+#: reference_management.xml:863
+#, no-c-format
+msgid "Description"
+msgstr "설명"
+
+#. Tag: para
+#: reference_management.xml:94
+#, no-c-format
+msgid ""
+"Adds a geometry column to an existing table of attributes. The "
+"<varname>schema_name</varname> is the name of the table schema. The "
+"<varname>srid</varname> must be an integer value reference to an entry in "
+"the SPATIAL_REF_SYS table. The <varname>type</varname> must be a string "
+"corresponding to the geometry type, eg, 'POLYGON' or 'MULTILINESTRING' . An "
+"error is thrown if the schemaname doesn't exist (or not visible in the "
+"current search_path) or the specified SRID, geometry type, or dimension is "
+"invalid."
+msgstr ""
+"기존 테이블의 속성으로 지오메트리 컬럼을 추가합니다. <varname>schema_name</"
+"varname>은 테이블 스키마의 이름입니다. <varname>srid</varname>은 정수값 이어"
+"야 하며 SPATIAL_REF_SYS 테이블의 요소를 참조합니다. <varname>type</varname>"
+"은 지오메트리 타입과 일티하는 문자열, 예를 들어  'POLYGON' 이나 "
+"'MULTILINESTRING' 이어야 합니다. 스키마 이름이 없거나 (혹은 현재 search_path"
+"에 안버이거나) 지정된 SRID, 지오메트리 타입, 차원 등이 잘못된 경우 오류가 발"
+"생됩니다."
+
+#. Tag: para
+#: reference_management.xml:104
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function no longer updates geometry_columns since "
+"geometry_columns is a view that reads from system catalogs. It by default "
+"also does not create constraints, but instead uses the built in type "
+"modifier behavior of PostgreSQL. So for example building a wgs84 POINT "
+"column with this function is now equivalent to: <code>ALTER TABLE some_table "
+"ADD COLUMN geom geometry(Point,4326);</code>"
+msgstr ""
+"변경사항: 2.0.0  이 함수는 geometry_columns이 시스템 카테고리에서 읽히는 뷰"
+"인 동안 더 이상 geometry_columns을 업데이트 하지 않습니다. 이것은 기본적으로 "
+"컨스트레인트를 만들지 않지만, 대신에 PostgreSQL의 내장된 타입 변경 동작이 대"
+"신합니다. 그래서 예를 들어 WGS84 POINT 컬럼을 이 함수로 만든다면 이 함수는 다"
+"음과 동등합니다: <code>ALTER TABLE some_table ADD COLUMN geom "
+"geometry(Point,4326);</code>"
+
+#. Tag: para
+#: reference_management.xml:107
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 If you require the old behavior of constraints use the "
+"default <varname>use_typmod</varname>, but set it to false."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:111
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Views can no longer be manually registered in "
+"geometry_columns, however views built against geometry typmod tables "
+"geometries and used without wrapper functions will register themselves "
+"correctly because they inherit the typmod behavior of their parent table "
+"column. Views that use geometry functions that output other geometries will "
+"need to be cast to typmod geometries for these view geometry columns to be "
+"registered correctly in geometry_columns. Refer to <xref linkend="
+"\"Manual_Register_Spatial_Column\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:117 reference_management.xml:194
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr "&sfs_compliant;"
+
+#. Tag: para
+#: reference_management.xml:118 reference_management.xml:195
+#: reference_management.xml:869
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_management.xml:119 reference_management.xml:196
+#: reference_management.xml:870
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: para
+#: reference_management.xml:120
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 use_typmod argument introduced. Defaults to creating typmod "
+"geometry column instead of constraint-based."
+msgstr ""
+
+#. Tag: title
+#: reference_management.xml:124 reference_management.xml:203
+#: reference_management.xml:267 reference_management.xml:306
+#: reference_management.xml:351 reference_management.xml:393
+#: reference_management.xml:433 reference_management.xml:464
+#: reference_management.xml:506 reference_management.xml:548
+#: reference_management.xml:600 reference_management.xml:646
+#: reference_management.xml:683 reference_management.xml:784
+#: reference_management.xml:873
+#, no-c-format
+msgid "Examples"
+msgstr "예제"
+
+#. Tag: programlisting
+#: reference_management.xml:126
+#, no-c-format
+msgid ""
+"-- Create schema to hold data\n"
+"CREATE SCHEMA my_schema;\n"
+"-- Create a new simple PostgreSQL table\n"
+"CREATE TABLE my_schema.my_spatial_table (id serial);\n"
+"\n"
+"-- Describing the table shows a simple table with a single \"id\" column.\n"
+"postgis=# \\d my_schema.my_spatial_table\n"
+"                                                         Table \"my_schema."
+"my_spatial_table\"\n"
+" Column |  Type   |                                Modifiers\n"
+"--------+---------"
+"+-------------------------------------------------------------------------\n"
+" id     | integer | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+"\n"
+"-- Add a spatial column to the table\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom',4326,'POINT',2);\n"
+"\n"
+"-- Add a point using the old constraint based behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);\n"
+"\n"
+"--Add a curvepolygon using old constraint behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geomcp_c',4326,'CURVEPOLYGON',2, false);\n"
+"\n"
+"-- Describe the table again reveals the addition of a new geometry columns.\n"
+"\\d my_schema.my_spatial_table\n"
+"                            addgeometrycolumn                            \n"
+"-------------------------------------------------------------------------\n"
+" my_schema.my_spatial_table.geomcp_c SRID:4326 TYPE:CURVEPOLYGON DIMS:2 \n"
+"(1 row)\n"
+"\n"
+"                                    Table \"my_schema.my_spatial_table\"\n"
+"  Column  |         Type         |                                "
+"Modifiers                                \n"
+"----------+----------------------"
+"+-------------------------------------------------------------------------\n"
+" id       | integer              | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+" geom     | geometry(Point,4326) | \n"
+" geom_c   | geometry             | \n"
+" geomcp_c | geometry             | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_c\" CHECK (st_ndims(geom_c) = 2)\n"
+"    \"enforce_dims_geomcp_c\" CHECK (st_ndims(geomcp_c) = 2)\n"
+"    \"enforce_geotype_geom_c\" CHECK (geometrytype(geom_c) = 'POINT'::text "
+"OR geom_c IS NULL)\n"
+"    \"enforce_geotype_geomcp_c\" CHECK (geometrytype(geomcp_c) = "
+"'CURVEPOLYGON'::text OR geomcp_c IS NULL)\n"
+"    \"enforce_srid_geom_c\" CHECK (st_srid(geom_c) = 4326)\n"
+"    \"enforce_srid_geomcp_c\" CHECK (st_srid(geomcp_c) = 4326)\n"
+"    \n"
+"-- geometry_columns view also registers the new columns --\n"
+"SELECT f_geometry_column As col_name, type, srid, coord_dimension As ndims \n"
+"    FROM geometry_columns\n"
+"    WHERE f_table_name = 'my_spatial_table' AND f_table_schema = "
+"'my_schema';\n"
+"\n"
+" col_name |     type     | srid | ndims \n"
+"----------+--------------+------+-------\n"
+" geom     | Point        | 4326 |     2\n"
+" geom_c   | Point        | 4326 |     2\n"
+" geomcp_c | CurvePolygon | 4326 |     2"
+msgstr ""
+"-- Create schema to hold data\n"
+"CREATE SCHEMA my_schema;\n"
+"-- Create a new simple PostgreSQL table\n"
+"CREATE TABLE my_schema.my_spatial_table (id serial);\n"
+"\n"
+"-- Describing the table shows a simple table with a single \"id\" column.\n"
+"postgis=# \\d my_schema.my_spatial_table\n"
+"                                                         Table \"my_schema."
+"my_spatial_table\"\n"
+" Column |  Type   |                                Modifiers\n"
+"--------+---------"
+"+-------------------------------------------------------------------------\n"
+" id     | integer | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+"\n"
+"-- Add a spatial column to the table\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom',4326,'POINT',2);\n"
+"\n"
+"-- Add a point using the old constraint based behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);\n"
+"\n"
+"--Add a curvepolygon using old constraint behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geomcp_c',4326,'CURVEPOLYGON',2, false);\n"
+"\n"
+"-- Describe the table again reveals the addition of a new geometry columns.\n"
+"\\d my_schema.my_spatial_table\n"
+"                            addgeometrycolumn                            \n"
+"-------------------------------------------------------------------------\n"
+" my_schema.my_spatial_table.geomcp_c SRID:4326 TYPE:CURVEPOLYGON DIMS:2 \n"
+"(1 row)\n"
+"\n"
+"                                    Table \"my_schema.my_spatial_table\"\n"
+"  Column  |         Type         |                                "
+"Modifiers                                \n"
+"----------+----------------------"
+"+-------------------------------------------------------------------------\n"
+" id       | integer              | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+" geom     | geometry(Point,4326) | \n"
+" geom_c   | geometry             | \n"
+" geomcp_c | geometry             | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_c\" CHECK (st_ndims(geom_c) = 2)\n"
+"    \"enforce_dims_geomcp_c\" CHECK (st_ndims(geomcp_c) = 2)\n"
+"    \"enforce_geotype_geom_c\" CHECK (geometrytype(geom_c) = 'POINT'::text "
+"OR geom_c IS NULL)\n"
+"    \"enforce_geotype_geomcp_c\" CHECK (geometrytype(geomcp_c) = "
+"'CURVEPOLYGON'::text OR geomcp_c IS NULL)\n"
+"    \"enforce_srid_geom_c\" CHECK (st_srid(geom_c) = 4326)\n"
+"    \"enforce_srid_geomcp_c\" CHECK (st_srid(geomcp_c) = 4326)\n"
+"    \n"
+"-- geometry_columns view also registers the new columns --\n"
+"SELECT f_geometry_column As col_name, type, srid, coord_dimension As ndims \n"
+"    FROM geometry_columns\n"
+"    WHERE f_table_name = 'my_spatial_table' AND f_table_schema = "
+"'my_schema';\n"
+"\n"
+" col_name |     type     | srid | ndims \n"
+"----------+--------------+------+-------\n"
+" geom     | Point        | 4326 |     2\n"
+" geom_c   | Point        | 4326 |     2\n"
+" geomcp_c | CurvePolygon | 4326 |     2"
+
+#. Tag: title
+#: reference_management.xml:130 reference_management.xml:208
+#: reference_management.xml:272 reference_management.xml:312
+#: reference_management.xml:357 reference_management.xml:399
+#: reference_management.xml:470 reference_management.xml:512
+#: reference_management.xml:554 reference_management.xml:606
+#: reference_management.xml:652 reference_management.xml:689
+#: reference_management.xml:886
+#, no-c-format
+msgid "See Also"
+msgstr "관련 정보"
+
+#. Tag: para
+#: reference_management.xml:132
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/"
+">, <xref linkend=\"Manual_Register_Spatial_Column\"/>"
+msgstr ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/"
+">, <xref linkend=\"Manual_Register_Spatial_Column\"/>"
+
+#. Tag: refname
+#: reference_management.xml:138
+#, no-c-format
+msgid "DropGeometryColumn"
+msgstr "DropGeometryColumn"
+
+#. Tag: refpurpose
+#: reference_management.xml:140
+#, no-c-format
+msgid "Removes a geometry column from a spatial table."
+msgstr "공간 테이블에서 지오메트리 컬럼을 제거합니다."
+
+#. Tag: funcsynopsis
+#: reference_management.xml:145
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>DropGeometryColumn</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>DropGeometryColumn</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:190
+#, no-c-format
+msgid ""
+"Removes a geometry column from a spatial table. Note that schema_name will "
+"need to match the f_table_schema field of the table's row in the "
+"geometry_columns table."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:198
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function is provided for backward compatibility. Now "
+"that since geometry_columns is now a view against the system catalogs, you "
+"can drop a geometry column like any other table column using <code>ALTER "
+"TABLE</code>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:205
+#, no-c-format
+msgid ""
+"SELECT DropGeometryColumn ('my_schema','my_spatial_table','geom');\n"
+"                        ----RESULT output ---\n"
+"                                          dropgeometrycolumn\n"
+"------------------------------------------------------\n"
+" my_schema.my_spatial_table.geom effectively removed.\n"
+" \n"
+"-- In PostGIS 2.0+ the above is also equivalent to the standard\n"
+"-- the standard alter table.  Both will deregister from geometry_columns\n"
+"ALTER TABLE my_schema.my_spatial_table DROP column geom;"
+msgstr ""
+"SELECT DropGeometryColumn ('my_schema','my_spatial_table','geom');\n"
+"                        ----RESULT output ---\n"
+"                                          dropgeometrycolumn\n"
+"------------------------------------------------------\n"
+" my_schema.my_spatial_table.geom effectively removed.\n"
+" \n"
+"-- In PostGIS 2.0+ the above is also equivalent to the standard\n"
+"-- the standard alter table.  Both will deregister from geometry_columns\n"
+"ALTER TABLE my_schema.my_spatial_table DROP column geom;"
+
+#. Tag: para
+#: reference_management.xml:210
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/>"
+msgstr ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/>"
+
+#. Tag: refname
+#: reference_management.xml:216
+#, no-c-format
+msgid "DropGeometryTable"
+msgstr "DropGeometryTable"
+
+#. Tag: refpurpose
+#: reference_management.xml:218
+#, no-c-format
+msgid "Drops a table and all its references in geometry_columns."
+msgstr "테이블 및 geometry_columns의 모든 참조를 삭제합니다."
+
+#. Tag: funcsynopsis
+#: reference_management.xml:223
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropGeometryTable</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropGeometryTable</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:256
+#, no-c-format
+msgid ""
+"Drops a table and all its references in geometry_columns. Note: uses "
+"current_schema() on schema-aware pgsql installations if schema is not "
+"provided."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:261
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function is provided for backward compatibility. Now "
+"that since geometry_columns is now a view against the system catalogs, you "
+"can drop a table with geometry columns like any other table using <code>DROP "
+"TABLE</code>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:269
+#, no-c-format
+msgid ""
+"SELECT DropGeometryTable ('my_schema','my_spatial_table');\n"
+"----RESULT output ---\n"
+"my_schema.my_spatial_table dropped.\n"
+"                        \n"
+"-- The above is now equivalent to --\n"
+"DROP TABLE my_schema.my_spatial_table;"
+msgstr ""
+"SELECT DropGeometryTable ('my_schema','my_spatial_table');\n"
+"----RESULT output ---\n"
+"my_schema.my_spatial_table dropped.\n"
+"                        \n"
+"-- The above is now equivalent to --\n"
+"DROP TABLE my_schema.my_spatial_table;"
+
+#. Tag: para
+#: reference_management.xml:274
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryColumn\"/>, <xref linkend=\"geometry_columns\"/"
+">"
+msgstr ""
+", <xref linkend=\"DropGeometryColumn\"/>, <xref linkend=\"geometry_columns\"/"
+">"
+
+#. Tag: refname
+#: reference_management.xml:281
+#, no-c-format
+msgid "PostGIS_Full_Version"
+msgstr "PostGIS_Full_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:283
+#, no-c-format
+msgid "Reports full postgis version and build configuration infos."
+msgstr "PostGIS 버전과 빌드 환경 정보를 반환합니다."
+
+#. Tag: funcprototype
+#: reference_management.xml:289
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Full_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Full_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:300
+#, no-c-format
+msgid ""
+"Reports full postgis version and build configuration infos. Also informs "
+"about synchronization between libraries and scripts suggesting upgrades as "
+"needed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:308
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Full_Version();\n"
+"                                                           postgis_full_version\n"
+"----------------------------------------------------------------------------------\n"
+"POSTGIS=\"2.2.0dev r12699\" GEOS=\"3.5.0dev-CAPI-1.9.0 r3989\" SFCGAL="
+"\"1.0.4\" PROJ=\"Rel. 4.8.0, 6 March 2012\" \n"
+"GDAL=\"GDAL 1.11.0, released 2014/04/16\" LIBXML=\"2.7.8\" LIBJSON=\"0.12\" "
+"RASTER\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:314
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:327
+#, no-c-format
+msgid "PostGIS_GEOS_Version"
+msgstr "PostGIS_GEOS_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:329
+#, no-c-format
+msgid "Returns the version number of the GEOS library."
+msgstr "GEOS 라이브러리의 버전 번호를 반환합니다."
+
+#. Tag: funcprototype
+#: reference_management.xml:335
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GEOS_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_GEOS_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:346
+#, no-c-format
+msgid ""
+"Returns the version number of the GEOS library, or <varname>NULL</varname> "
+"if GEOS support is not enabled."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:353
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GEOS_Version();\n"
+" postgis_geos_version\n"
+"----------------------\n"
+" 3.1.0-CAPI-1.5.0\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_GEOS_Version();\n"
+" postgis_geos_version\n"
+"----------------------\n"
+" 3.1.0-CAPI-1.5.0\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:359
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:369
+#, no-c-format
+msgid "PostGIS_LibXML_Version"
+msgstr "PostGIS_LibXML_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:371
+#, no-c-format
+msgid "Returns the version number of the libxml2 library."
+msgstr "libxml2 라이브러리의 버전 번호를 반환합니다."
+
+#. Tag: funcprototype
+#: reference_management.xml:377
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_LibXML_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_LibXML_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:388
+#, no-c-format
+msgid "Returns the version number of the LibXML2 library."
+msgstr "LibXML2  라이브러리의 버전 번호를 반환합니다."
+
+#. Tag: para
+#: reference_management.xml:389
+#, no-c-format
+msgid "Availability: 1.5"
+msgstr "유효버전: 1.5"
+
+#. Tag: programlisting
+#: reference_management.xml:395
+#, no-c-format
+msgid ""
+"SELECT PostGIS_LibXML_Version();\n"
+" postgis_libxml_version\n"
+"----------------------\n"
+" 2.7.6\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_LibXML_Version();\n"
+" postgis_libxml_version\n"
+"----------------------\n"
+" 2.7.6\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:401
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:411
+#, no-c-format
+msgid "PostGIS_Lib_Build_Date"
+msgstr "PostGIS_Lib_Build_Date"
+
+#. Tag: refpurpose
+#: reference_management.xml:413
+#, no-c-format
+msgid "<refpurpose>Returns build date of the PostGIS library.</refpurpose>"
+msgstr "<refpurpose>PostGIS 라이브러리의 빌드 날짜를 반환합니다.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:418
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:429
+#, no-c-format
+msgid "<para>Returns build date of the PostGIS library.</para>"
+msgstr "<para>PostGIS 라이브러리의 빌드 날짜를 반환합니다.</para>"
+
+#. Tag: programlisting
+#: reference_management.xml:435
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Lib_Build_Date();\n"
+" postgis_lib_build_date\n"
+"------------------------\n"
+" 2008-06-21 17:53:21\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Lib_Build_Date();\n"
+" postgis_lib_build_date\n"
+"------------------------\n"
+" 2008-06-21 17:53:21\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_management.xml:441
+#, no-c-format
+msgid "PostGIS_Lib_Version"
+msgstr "PostGIS_Lib_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:443
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the version number of the PostGIS library.</refpurpose>"
+msgstr "<refpurpose>PostGIS 라이브러리의 버전 번호를 반환합니다.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:449
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Lib_Version</function></funcdef> <paramdef></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Lib_Version</function></funcdef> <paramdef></"
+"paramdef>"
+
+#. Tag: para
+#: reference_management.xml:460
+#, no-c-format
+msgid "<para>Returns the version number of the PostGIS library.</para>"
+msgstr "<para>PostGIS 라이브러리의 버전 번호를 반환합니다.</para>"
+
+#. Tag: programlisting
+#: reference_management.xml:466
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Lib_Version();\n"
+" postgis_lib_version\n"
+"---------------------\n"
+" 1.3.3\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Lib_Version();\n"
+" postgis_lib_version\n"
+"---------------------\n"
+" 1.3.3\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:472
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:482
+#, no-c-format
+msgid "PostGIS_PROJ_Version"
+msgstr "PostGIS_PROJ_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:484
+#, no-c-format
+msgid "Returns the version number of the PROJ4 library."
+msgstr "PROJ4 라이브러리의 버전 번호를 반환합니다."
+
+#. Tag: funcprototype
+#: reference_management.xml:490
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_PROJ_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_PROJ_Version</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:501
+#, no-c-format
+msgid ""
+"Returns the version number of the PROJ4 library, or <varname>NULL</varname> "
+"if PROJ4 support is not enabled."
+msgstr ""
+"PROJ4 라이브러리의 버전 번호를 반환합니다. 혹은 만약 PROJ4 지원이 활성화되지 "
+"않은 경우 <varname>NULL</varname>."
+
+#. Tag: programlisting
+#: reference_management.xml:508
+#, no-c-format
+msgid ""
+"SELECT PostGIS_PROJ_Version();\n"
+"  postgis_proj_version\n"
+"-------------------------\n"
+" Rel. 4.4.9, 29 Oct 2004\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_PROJ_Version();\n"
+"  postgis_proj_version\n"
+"-------------------------\n"
+" Rel. 4.4.9, 29 Oct 2004\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:514 reference_management.xml:556
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:524
+#, no-c-format
+msgid "PostGIS_Scripts_Build_Date"
+msgstr "PostGIS_Scripts_Build_Date"
+
+#. Tag: refpurpose
+#: reference_management.xml:526
+#, no-c-format
+msgid "<refpurpose>Returns build date of the PostGIS scripts.</refpurpose>"
+msgstr "<refpurpose>PostGIS 스크립트의 빌드 날짜를 반환합니다.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:531
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:542
+#, no-c-format
+msgid "<para>Returns build date of the PostGIS scripts.</para>"
+msgstr "<para>PostGIS 스크립트의 빌드 날짜를 반환합니다..</para>"
+
+#. Tag: para
+#: reference_management.xml:544
+#, no-c-format
+msgid "Availability: 1.0.0RC1"
+msgstr "유효버전: 1.0.0RC1"
+
+#. Tag: programlisting
+#: reference_management.xml:550
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Build_Date();\n"
+"  postgis_scripts_build_date\n"
+"-------------------------\n"
+" 2007-08-18 09:09:26\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Scripts_Build_Date();\n"
+"  postgis_scripts_build_date\n"
+"-------------------------\n"
+" 2007-08-18 09:09:26\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_management.xml:566
+#, no-c-format
+msgid "PostGIS_Scripts_Installed"
+msgstr "PostGIS_Scripts_Installed"
+
+#. Tag: refpurpose
+#: reference_management.xml:568
+#, no-c-format
+msgid ""
+"<refpurpose>Returns version of the postgis scripts installed in this "
+"database.</refpurpose>"
+msgstr ""
+"<refpurpose>이 데이터베이스에 설치된 PostGIS 스크립트의 버전을 반환합니다.</"
+"refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:574
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Installed</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Installed</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:585
+#, no-c-format
+msgid ""
+"<para>Returns version of the postgis scripts installed in this database.</"
+"para>"
+msgstr ""
+"<para>이 데이터베이스에 설치된 PostGIS 스크립트의 버전을 반환합니다.</para>"
+
+#. Tag: para
+#: reference_management.xml:589
+#, no-c-format
+msgid ""
+"If the output of this function doesn't match the output of <xref linkend="
+"\"PostGIS_Scripts_Released\"/> you probably missed to properly upgrade an "
+"existing database. See the <link linkend=\"upgrading\">Upgrading</link> "
+"section for more info."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:596 reference_management.xml:642
+#, no-c-format
+msgid "Availability: 0.9.0"
+msgstr "유효버전: 0.9.0"
+
+#. Tag: programlisting
+#: reference_management.xml:602
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Installed();\n"
+"  postgis_scripts_installed\n"
+"-------------------------\n"
+" 1.5.0SVN\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Scripts_Installed();\n"
+"  postgis_scripts_installed\n"
+"-------------------------\n"
+" 1.5.0SVN\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:608
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:614
+#, no-c-format
+msgid "PostGIS_Scripts_Released"
+msgstr "PostGIS_Scripts_Released"
+
+#. Tag: refpurpose
+#: reference_management.xml:616
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the version number of the postgis.sql script released "
+"with the installed postgis lib.</refpurpose>"
+msgstr ""
+"<refpurpose>설치된 PostGIS 라이브러리와 함께 출시된 postgis.sql 스크립트의 버"
+"전 번호를 반환합니다.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:622
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Released</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Scripts_Released</function></funcdef> "
+"<paramdef></paramdef>"
+
+#. Tag: para
+#: reference_management.xml:633
+#, no-c-format
+msgid ""
+"<para>Returns the version number of the postgis.sql script released with the "
+"installed postgis lib.</para>"
+msgstr ""
+"<para>설치된 PostGIS 라이브러리와 함께 출시된 postgis.sql 스크립트의 버전 번"
+"호를 반환합니다.</para>"
+
+#. Tag: para
+#: reference_management.xml:637
+#, no-c-format
+msgid ""
+"Starting with version 1.1.0 this function returns the same value of <xref "
+"linkend=\"PostGIS_Lib_Version\"/>. Kept for backward compatibility."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:648
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Released();\n"
+"  postgis_scripts_released\n"
+"-------------------------\n"
+" 1.3.4SVN\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Scripts_Released();\n"
+"  postgis_scripts_released\n"
+"-------------------------\n"
+" 1.3.4SVN\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:654
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Scripts_Installed\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_Scripts_Installed\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:660
+#, no-c-format
+msgid "PostGIS_Version"
+msgstr "PostGIS_Version"
+
+#. Tag: refpurpose
+#: reference_management.xml:662
+#, no-c-format
+msgid ""
+"<refpurpose>Returns PostGIS version number and compile-time options.</"
+"refpurpose>"
+msgstr ""
+"<refpurpose>PostGIS 버전 번호 및 컴파일 시간 옵션을 반환합니다.</refpurpose>"
+
+#. Tag: funcprototype
+#: reference_management.xml:668
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Version</function></funcdef> <paramdef></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>PostGIS_Version</function></funcdef> <paramdef></"
+"paramdef>"
+
+#. Tag: para
+#: reference_management.xml:679
+#, no-c-format
+msgid "<para>Returns PostGIS version number and compile-time options.</para>"
+msgstr "<para>PostGIS 버전 번호 및 컴파일 시간 옵션을 반환합니다.</para>"
+
+#. Tag: programlisting
+#: reference_management.xml:685
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Version();\n"
+"                        postgis_version\n"
+"---------------------------------------\n"
+" 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1\n"
+"(1 row)"
+msgstr ""
+"SELECT PostGIS_Version();\n"
+"                        postgis_version\n"
+"---------------------------------------\n"
+" 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1\n"
+"(1 row)"
+
+#. Tag: para
+#: reference_management.xml:691
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>"
+msgstr ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>"
+
+#. Tag: refname
+#: reference_management.xml:701
+#, no-c-format
+msgid "Populate_Geometry_Columns"
+msgstr "Populate_Geometry_Columns"
+
+#. Tag: refpurpose
+#: reference_management.xml:703
+#, no-c-format
+msgid ""
+"Ensures geometry columns are defined with type modifiers or have appropriate "
+"spatial constraints This ensures they will be registered correctly in "
+"<varname>geometry_columns</varname> view. By default will convert all "
+"geometry columns with no type modifier to ones with type modifiers. To get "
+"old behavior set <varname>use_typmod=false</varname>"
+msgstr ""
+"지오메트리 컬럼이 타입 변경자로 정의되거나 적절한 공간 제약을 가지고 있는지 "
+"확인합니다. 이 함수는 공간 관련 테이블들이 <varname>geometry_columns</"
+"varname> 뷰에 올바르게 등록되도록 합니다. 기본적으로 유형 변경자를 가지지 않"
+"는 모든 지오메트리 컬럼들을 유형 변경자를 가진 지오메트리 컬럼들로 변환시킵니"
+"다. 엣날식 동작을 원하면 <varname>use_typmod=false</varname>으로 설정"
+
+#. Tag: funcsynopsis
+#: reference_management.xml:709
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>Populate_Geometry_Columns</"
+"function></funcdef> <paramdef><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>int <function>Populate_Geometry_Columns</function></"
+"funcdef> <paramdef><type>oid</type> <parameter>relation_oid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>use_typmod=true</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>Populate_Geometry_Columns</"
+"function></funcdef> <paramdef><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>int <function>Populate_Geometry_Columns</function></"
+"funcdef> <paramdef><type>oid</type> <parameter>relation_oid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>use_typmod=true</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:728
+#, no-c-format
+msgid ""
+"Ensures geometry columns have appropriate type modifiers or spatial "
+"constraints to ensure they are registered correctly in "
+"<varname>geometry_columns</varname> table."
+msgstr ""
+"지오메트리 컬럼이 타입 변경자로 정의되거나 적절한 공간 제약을 가지고 있는지 "
+"확인합니다. 이 함수는 공간 관련 테이블들이 <varname>geometry_columns</"
+"varname> 뷰에 올바르게 등록되도록 합니다. "
+
+#. Tag: para
+#: reference_management.xml:730
+#, no-c-format
+msgid ""
+"For backwards compatibility and for spatial needs such as tble inheritance "
+"where each child table may have different geometry type, the old check "
+"constraint behavior is still supported. If you need the old behavior, you "
+"need to pass in the new optional argument as false "
+"<varname>use_typmod=false</varname>. When this is done geometry columns will "
+"be created with no type modifiers but will have 3 constraints defined. In "
+"particular, this means that every geometry column belonging to a table has "
+"at least three constraints:"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:738
+#, no-c-format
+msgid ""
+"<varname>enforce_dims_the_geom</varname> - ensures every geometry has the "
+"same dimension (see <xref linkend=\"ST_NDims\"/>)"
+msgstr ""
+"<varname>enforce_dims_the_geom</varname> - ensures every geometry has the "
+"same dimension (see <xref linkend=\"ST_NDims\"/>)"
+
+#. Tag: para
+#: reference_management.xml:744
+#, no-c-format
+msgid ""
+"<varname>enforce_geotype_the_geom</varname> - ensures every geometry is of "
+"the same type (see <xref linkend=\"GeometryType\"/>)"
+msgstr ""
+"<varname>enforce_geotype_the_geom</varname> - ensures every geometry is of "
+"the same type (see <xref linkend=\"GeometryType\"/>)"
+
+#. Tag: para
+#: reference_management.xml:750
+#, no-c-format
+msgid ""
+"<varname>enforce_srid_the_geom</varname> - ensures every geometry is in the "
+"same projection (see <xref linkend=\"ST_SRID\"/>)"
+msgstr ""
+"<varname>enforce_srid_the_geom</varname> - ensures every geometry is in the "
+"same projection (see <xref linkend=\"ST_SRID\"/>)"
+
+#. Tag: para
+#: reference_management.xml:756
+#, no-c-format
+msgid ""
+"If a table <varname>oid</varname> is provided, this function tries to "
+"determine the srid, dimension, and geometry type of all geometry columns in "
+"the table, adding constraints as necessary. If successful, an appropriate "
+"row is inserted into the geometry_columns table, otherwise, the exception is "
+"caught and an error notice is raised describing the problem."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:763
+#, no-c-format
+msgid ""
+"If the <varname>oid</varname> of a view is provided, as with a table oid, "
+"this function tries to determine the srid, dimension, and type of all the "
+"geometries in the view, inserting appropriate entries into the "
+"<varname>geometry_columns</varname> table, but nothing is done to enforce "
+"constraints."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:769
+#, no-c-format
+msgid ""
+"The parameterless variant is a simple wrapper for the parameterized variant "
+"that first truncates and repopulates the geometry_columns table for every "
+"spatial table and view in the database, adding spatial constraints to tables "
+"where appropriate. It returns a summary of the number of geometry columns "
+"detected in the database and the number that were inserted into the "
+"<varname>geometry_columns</varname> table. The parameterized version simply "
+"returns the number of rows inserted into the <varname>geometry_columns</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:777
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr "유효버전: 1.4.0"
+
+#. Tag: para
+#: reference_management.xml:778
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 By default, now uses type modifiers instead of check "
+"constraints to constrain geometry types. You can still use check constraint "
+"behavior instead by using the new <varname>use_typmod</varname> and setting "
+"it to false."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:780
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 <varname>use_typmod</varname> optional argument was "
+"introduced that allows controlling if columns are created with typmodifiers "
+"or with check constraints."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:786
+#, no-c-format
+msgid ""
+"CREATE TABLE public.myspatial_table(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 "
+"4)',4326) );\n"
+"-- This will now use typ modifiers.  For this to work, there must exist "
+"data\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table'::regclass);\n"
+"\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"                        \n"
+"                        \n"
+"\\d myspatial_table\n"
+"\n"
+"                                   Table \"public.myspatial_table\"\n"
+" Column |           Type            |                           "
+"Modifiers                           \n"
+"--------+---------------------------"
+"+---------------------------------------------------------------\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
+" geom   | geometry(LineString,4326) |"
+msgstr ""
+"CREATE TABLE public.myspatial_table(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 "
+"4)',4326) );\n"
+"-- This will now use typ modifiers.  For this to work, there must exist "
+"data\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table'::regclass);\n"
+"\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"                        \n"
+"                        \n"
+"\\d myspatial_table\n"
+"\n"
+"                                   Table \"public.myspatial_table\"\n"
+" Column |           Type            |                           "
+"Modifiers                           \n"
+"--------+---------------------------"
+"+---------------------------------------------------------------\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
+" geom   | geometry(LineString,4326) |"
+
+#. Tag: programlisting
+#: reference_management.xml:788
+#, no-c-format
+msgid ""
+"-- This will change the geometry columns to use constraints if they are not "
+"typmod or have constraints already.  \n"
+"--For this to work, there must exist data\n"
+"CREATE TABLE public.myspatial_table_cs(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table_cs(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, "
+"3 4)',4326) );\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table_cs'::regclass, "
+"false);\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"\\d myspatial_table_cs\n"
+"\n"
+"                          Table \"public.myspatial_table_cs\"\n"
+" Column |   Type   |                            "
+"Modifiers                             \n"
+"--------+----------"
+"+------------------------------------------------------------------\n"
+" gid    | integer  | not null default nextval('myspatial_table_cs_gid_seq'::"
+"regclass)\n"
+" geom   | geometry | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom\" CHECK (st_ndims(geom) = 2)\n"
+"    \"enforce_geotype_geom\" CHECK (geometrytype(geom) = 'LINESTRING'::text "
+"OR geom IS NULL)\n"
+"    \"enforce_srid_geom\" CHECK (st_srid(geom) = 4326)"
+msgstr ""
+"-- This will change the geometry columns to use constraints if they are not "
+"typmod or have constraints already.  \n"
+"--For this to work, there must exist data\n"
+"CREATE TABLE public.myspatial_table_cs(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table_cs(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, "
+"3 4)',4326) );\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table_cs'::regclass, "
+"false);\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"\\d myspatial_table_cs\n"
+"\n"
+"                          Table \"public.myspatial_table_cs\"\n"
+" Column |   Type   |                            "
+"Modifiers                             \n"
+"--------+----------"
+"+------------------------------------------------------------------\n"
+" gid    | integer  | not null default nextval('myspatial_table_cs_gid_seq'::"
+"regclass)\n"
+" geom   | geometry | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom\" CHECK (st_ndims(geom) = 2)\n"
+"    \"enforce_geotype_geom\" CHECK (geometrytype(geom) = 'LINESTRING'::text "
+"OR geom IS NULL)\n"
+"    \"enforce_srid_geom\" CHECK (st_srid(geom) = 4326)"
+
+#. Tag: refname
+#: reference_management.xml:803
+#, no-c-format
+msgid "UpdateGeometrySRID"
+msgstr "UpdateGeometrySRID"
+
+#. Tag: refpurpose
+#: reference_management.xml:805
+#, no-c-format
+msgid ""
+"Updates the SRID of all features in a geometry column, geometry_columns "
+"metadata and srid. If it was enforced with constraints, the constraints will "
+"be updated with new srid constraint. If the old was enforced by type "
+"definition, the type definition will be changed."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_management.xml:811
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>UpdateGeometrySRID</"
+"function></funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>UpdateGeometrySRID</"
+"function></funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_management.xml:865
+#, no-c-format
+msgid ""
+"Updates the SRID of all features in a geometry column, updating constraints "
+"and reference in geometry_columns. Note: uses current_schema() on schema-"
+"aware pgsql installations if schema is not provided."
+msgstr ""
+"지오메트리 컬럼, geometry_columns 메타데이터 및 srid를 대상으로 모든 피처들"
+"의 SRID를 갱신합니다.  주의: 만약 스키마가 지원되지 않으면 schema-aware "
+"pgsql installations 설치본에서 current_schema() 사용"
+
+#. Tag: para
+#: reference_management.xml:874
+#, no-c-format
+msgid ""
+"This will change the srid of the roads table to 4326 from whatever it was "
+"before"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:875
+#, no-c-format
+msgid "SELECT UpdateGeometrySRID('roads','geom',4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:877
+#, no-c-format
+msgid "The prior example is equivalent to this DDL statement"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:878
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+"  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) \n"
+"    USING ST_SetSRID(geom,4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:880
+#, no-c-format
+msgid ""
+"If you got the projection wrong (or brought it in as unknown) in load and "
+"you wanted to transform to web mercator all in one shot You can do this with "
+"DDL but there is no equivalent PostGIS management function to do so in one "
+"go."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:883
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+" ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857) USING "
+"ST_Transform(ST_SetSRID(geom,4326),3857) ;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:888
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_measure.xml.po b/doc/po/ko_KR/reference_measure.xml.po
new file mode 100644
index 0000000..6e9e64e
--- /dev/null
+++ b/doc/po/ko_KR/reference_measure.xml.po
@@ -0,0 +1,5034 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:08+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_measure.xml:3
+#, no-c-format
+msgid "Spatial Relationships and Measurements"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:6
+#, no-c-format
+msgid "ST_3DClosestPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:8
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional point on g1 that is closest to g2. This is the "
+"first point of the 3D shortest line."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:144
+#: reference_measure.xml:196 reference_measure.xml:253
+#: reference_measure.xml:303 reference_measure.xml:372
+#: reference_measure.xml:418 reference_measure.xml:490
+#: reference_measure.xml:549 reference_measure.xml:620
+#: reference_measure.xml:738 reference_measure.xml:811
+#: reference_measure.xml:963 reference_measure.xml:1044
+#: reference_measure.xml:1126 reference_measure.xml:1186
+#: reference_measure.xml:1352 reference_measure.xml:1487
+#: reference_measure.xml:1565 reference_measure.xml:1635
+#: reference_measure.xml:1690 reference_measure.xml:1736
+#: reference_measure.xml:1785 reference_measure.xml:1838
+#: reference_measure.xml:1920 reference_measure.xml:1984
+#: reference_measure.xml:2033 reference_measure.xml:2093
+#: reference_measure.xml:2159 reference_measure.xml:2210
+#: reference_measure.xml:2243 reference_measure.xml:2288
+#: reference_measure.xml:2340 reference_measure.xml:2391
+#: reference_measure.xml:2443 reference_measure.xml:2531
+#: reference_measure.xml:2574 reference_measure.xml:2665
+#: reference_measure.xml:2714 reference_measure.xml:2751
+#: reference_measure.xml:2793 reference_measure.xml:2840
+#: reference_measure.xml:2906 reference_measure.xml:2972
+#: reference_measure.xml:3015 reference_measure.xml:3094
+#: reference_measure.xml:3242
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:29
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional point on g1 that is closest to g2. This is the "
+"first point of the 3D shortest line. The 3D length of the 3D shortest line "
+"is the 3D distance."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:149
+#: reference_measure.xml:211 reference_measure.xml:266
+#: reference_measure.xml:312 reference_measure.xml:377
+#: reference_measure.xml:431 reference_measure.xml:2038
+#: reference_measure.xml:2247 reference_measure.xml:2302
+#: reference_measure.xml:2399 reference_measure.xml:2755
+#: reference_measure.xml:2801
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:151
+#: reference_measure.xml:213 reference_measure.xml:268
+#: reference_measure.xml:314 reference_measure.xml:379
+#: reference_measure.xml:433 reference_measure.xml:500
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:35 reference_measure.xml:103
+#: reference_measure.xml:154 reference_measure.xml:210
+#: reference_measure.xml:260 reference_measure.xml:311
+#: reference_measure.xml:381 reference_measure.xml:430
+#: reference_measure.xml:2847
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:39 reference_measure.xml:107
+#: reference_measure.xml:158 reference_measure.xml:218
+#: reference_measure.xml:318 reference_measure.xml:385
+#: reference_measure.xml:437 reference_measure.xml:507
+#: reference_measure.xml:564 reference_measure.xml:646
+#: reference_measure.xml:748 reference_measure.xml:849
+#: reference_measure.xml:1002 reference_measure.xml:1080
+#: reference_measure.xml:1155 reference_measure.xml:1252
+#: reference_measure.xml:1387 reference_measure.xml:1510
+#: reference_measure.xml:1660 reference_measure.xml:1702
+#: reference_measure.xml:1751 reference_measure.xml:1799
+#: reference_measure.xml:1856 reference_measure.xml:1954
+#: reference_measure.xml:2003 reference_measure.xml:2044
+#: reference_measure.xml:2253 reference_measure.xml:2307
+#: reference_measure.xml:2359 reference_measure.xml:2405
+#: reference_measure.xml:2453 reference_measure.xml:2546
+#: reference_measure.xml:2596 reference_measure.xml:2761
+#: reference_measure.xml:2805 reference_measure.xml:2942
+#: reference_measure.xml:2982 reference_measure.xml:3031
+#: reference_measure.xml:3144 reference_measure.xml:3274
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:44
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:45
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" cp3d_line_pt                                                                        "
+"|               cp2d_line_pt\n"
+"-----------------------------------------------------------"
+"+------------------------------------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | "
+"POINT(73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:49
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:50
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       cp3d_line_pt                        | cp2d_line_pt\n"
+"-----------------------------------------------------------+--------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | POINT(50 75)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:54
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:55
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(poly, mline)) As cp3d,\n"
+"    ST_AsEWKT(ST_ClosestPoint(poly, mline)) As cp2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   cp3d                    |     cp2d\n"
+"-------------------------------------------+--------------\n"
+" POINT(39.993580415989 54.1889925532825 5) | POINT(20 40)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:65 reference_measure.xml:114
+#: reference_measure.xml:164 reference_measure.xml:223
+#: reference_measure.xml:276 reference_measure.xml:344
+#: reference_measure.xml:391 reference_measure.xml:463
+#: reference_measure.xml:523 reference_measure.xml:595
+#: reference_measure.xml:709 reference_measure.xml:783
+#: reference_measure.xml:936 reference_measure.xml:1007
+#: reference_measure.xml:1088 reference_measure.xml:1160
+#: reference_measure.xml:1457 reference_measure.xml:1516
+#: reference_measure.xml:1594 reference_measure.xml:1710
+#: reference_measure.xml:1758 reference_measure.xml:1806
+#: reference_measure.xml:1861 reference_measure.xml:1959
+#: reference_measure.xml:2009 reference_measure.xml:2051
+#: reference_measure.xml:2135 reference_measure.xml:2187
+#: reference_measure.xml:2219 reference_measure.xml:2262
+#: reference_measure.xml:2314 reference_measure.xml:2366
+#: reference_measure.xml:2412 reference_measure.xml:2506
+#: reference_measure.xml:2551 reference_measure.xml:2638
+#: reference_measure.xml:2691 reference_measure.xml:2727
+#: reference_measure.xml:2768 reference_measure.xml:2811
+#: reference_measure.xml:2864 reference_measure.xml:2948
+#: reference_measure.xml:2988 reference_measure.xml:3065
+#: reference_measure.xml:3285
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:67
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ClosestPoint\"/>, <xref linkend=\"ST_3DDistance\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:72
+#, no-c-format
+msgid "ST_3DDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:74
+#, no-c-format
+msgid ""
+"For geometry type Returns the 3-dimensional cartesian minimum distance "
+"(based on spatial ref) between two geometries in projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:79
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:94
+#, no-c-format
+msgid ""
+"For geometry type returns the 3-dimensional minimum cartesian distance "
+"between two geometries in projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:100 reference_measure.xml:152
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM ?"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:101 reference_measure.xml:503
+#: reference_measure.xml:1574 reference_measure.xml:2124
+#: reference_measure.xml:2172
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:109
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_3d,\n"
+"                ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),2163),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),2163)\n"
+"                ) As dist_2d;\n"
+"\n"
+"     dist_3d      |     dist_2d\n"
+"------------------+-----------------\n"
+" 127.295059324629 | 126.66425605671"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:110
+#, no-c-format
+msgid ""
+"-- Multilinestring and polygon both 3d and 2d distance\n"
+"-- Same example as 3D closest point example\n"
+"SELECT ST_3DDistance(poly, mline) As dist3d,\n"
+"    ST_Distance(poly, mline) As dist2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"      dist3d       | dist2d\n"
+"-------------------+--------\n"
+" 0.716635696066337 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:116
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DClosestPoint\"/>, <xref linkend=\"ST_3DDWithin\"/>, "
+"<xref linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_3DShortestLine\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:122
+#, no-c-format
+msgid "ST_3DDWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:124
+#, no-c-format
+msgid ""
+"For 3d (z) geometry type Returns true if two geometries 3d distance is "
+"within number of units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:128
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DDWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:146
+#, no-c-format
+msgid ""
+"For geometry type returns true if the 3d distance between two objects is "
+"within distance_of_srid specified projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:160
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DDWithin(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        126.8\n"
+"                ) As within_dist_3d,\n"
+"ST_DWithin(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        126.8\n"
+"                ) As within_dist_2d;\n"
+"\n"
+" within_dist_3d | within_dist_2d\n"
+"----------------+----------------\n"
+" f              | t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:166
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:172
+#, no-c-format
+msgid "ST_3DDFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:174
+#, no-c-format
+msgid ""
+"Returns true if all of the 3D geometries are within the specified distance "
+"of one another."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:180
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DDFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:198
+#, no-c-format
+msgid ""
+"Returns true if the 3D geometries are fully within the specified distance of "
+"one another. The distance is specified in units defined by the spatial "
+"reference system of the geometries. For this function to make sense, the "
+"source geometries must both be of the same coordinate projection, having the "
+"same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:205 reference_measure.xml:262
+#: reference_measure.xml:1242 reference_measure.xml:1847
+#: reference_measure.xml:1933 reference_measure.xml:2108
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:219
+#, no-c-format
+msgid ""
+"-- This compares the difference between fully within and distance within as "
+"well\n"
+"                -- as the distance fully within for the 2D footprint of the "
+"line/point vs. the 3d fully within\n"
+"                SELECT ST_3DDFullyWithin(geom_a, geom_b, 10) as "
+"D3DFullyWithin10, ST_3DDWithin(geom_a, geom_b, 10) as D3DWithin10, \n"
+"        ST_DFullyWithin(geom_a, geom_b, 20) as D2DFullyWithin20, \n"
+"        ST_3DDFullyWithin(geom_a, geom_b, 20) as D3DFullyWithin20 from \n"
+"                (select ST_GeomFromEWKT('POINT(1 1 2)') as geom_a,\n"
+"                ST_GeomFromEWKT('LINESTRING(1 5 2, 2 7 20, 1 9 100, 14 12 "
+"3)') as geom_b) t1;\n"
+" d3dfullywithin10 | d3dwithin10 | d2dfullywithin20 | d3dfullywithin20\n"
+"------------------+-------------+------------------+------------------\n"
+" f                | t           | t                | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:225
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:231
+#, no-c-format
+msgid "ST_3DIntersects"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:233
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries \"spatially intersect\" in 3d - only for "
+"points and linestrings"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:239
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DIntersects</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>geomA</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>geomB</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:254 reference_measure.xml:2096
+#, no-c-format
+msgid ""
+"Overlaps, Touches, Within all imply spatial intersection. If any of the "
+"aforementioned returns true, then the geometries also spatially intersect. "
+"Disjoint implies false for spatial intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:269
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: ?"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:272 reference_measure.xml:2127
+#: reference_measure.xml:2176
+#, no-c-format
+msgid "Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:273
+#, no-c-format
+msgid ""
+"SELECT ST_3DIntersects(pt, line), ST_Intersects(pt,line) \n"
+"        FROM (SELECT 'POINT(0 0 2)'::geometry As pt, \n"
+"                'LINESTRING (0 0 1, 0 2 3 )'::geometry As line) As foo;\n"
+" st_3dintersects | st_intersects\n"
+"-----------------+---------------\n"
+" f               | t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:283
+#, no-c-format
+msgid "ST_3DLongestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:285
+#, no-c-format
+msgid "Returns the 3-dimensional longest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:290
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DLongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:305
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional longest line between two geometries. The function "
+"will only return the first longest line if more than one. The line returned "
+"will always start in g1 and end in g2. The 3D length of the line this "
+"function returns will always be the same as <xref linkend=\"ST_3DMaxDistance"
+"\"/> returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:323
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:324
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"           lol3d_line_pt           |       lol2d_line_pt\n"
+"-----------------------------------+----------------------------\n"
+" LINESTRING(50 75 1000,100 100 30) | LINESTRING(98 190,100 100)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:328
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:329
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"          lol3d_line_pt          |      lol2d_line_pt\n"
+"---------------------------------+--------------------------\n"
+" LINESTRING(98 190 1,50 74 1000) | LINESTRING(98 190,50 74)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:333
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:334
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(poly, mline)) As lol3d,\n"
+"    ST_AsEWKT(ST_LongestLine(poly, mline)) As lol2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"            lol3d             |          lol2d\n"
+"------------------------------+--------------------------\n"
+" LINESTRING(175 150 5,1 10 2) | LINESTRING(175 150,1 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:346
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:352
+#, no-c-format
+msgid "ST_3DMaxDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:354
+#, no-c-format
+msgid ""
+"For geometry type Returns the 3-dimensional cartesian maximum distance "
+"(based on spatial ref) between two geometries in projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:359
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DMaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:374
+#, no-c-format
+msgid ""
+"For geometry type returns the 3-dimensional maximum cartesian distance "
+"between two geometries in projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:387
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DMaxDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_3d,\n"
+"                ST_MaxDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_2d;\n"
+"\n"
+"     dist_3d      |     dist_2d\n"
+"------------------+------------------\n"
+" 24383.7467488441 | 22247.8472107251"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:398
+#, no-c-format
+msgid "ST_3DShortestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:400
+#, no-c-format
+msgid "Returns the 3-dimensional shortest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:405
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DShortestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:420
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional shortest line between two geometries. The function "
+"will only return the first shortest line if more than one, that the function "
+"finds. If g1 and g2 intersects in just one point the function will return a "
+"line with both start and end in that intersection-point. If g1 and g2 are "
+"intersecting with more than one point the function will return a line with "
+"start and end in the same point but it can be any of the intersecting "
+"points. The line returned will always start in g1 and end in g2. The 3D "
+"length of the line this function returns will always be the same as <xref "
+"linkend=\"ST_3DDistance\"/> returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:442
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:443
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" shl3d_line_pt                                                                                         "
+"|               shl2d_line_pt\n"
+"----------------------------------------------------------------------------"
+"+------------------------------------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30)  "
+"| LINESTRING(73.0769230769231 115.384615384615,100 100)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:447
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:448
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       shl3d_line_pt                                       | "
+"shl2d_line_pt\n"
+"---------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30) | "
+"LINESTRING(50 75,50 74)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:452
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:453
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(poly, mline)) As shl3d,\n"
+"    ST_AsEWKT(ST_ShortestLine(poly, mline)) As shl2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   shl3d                                                                           "
+"|     shl2d\n"
+"---------------------------------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(39.993580415989 54.1889925532825 5,40.4078575708294 "
+"53.6052383805529 5.03423778139177) | LINESTRING(20 40,20 40)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:465
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:470
+#, no-c-format
+msgid "ST_Area"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:472
+#, no-c-format
+msgid ""
+"Returns the area of the surface if it is a polygon or multi-polygon. For "
+"\"geometry\" type area is in SRID units. For \"geography\" area is in square "
+"meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:476
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Area</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Area</function></"
+"funcdef> <paramdef><type>geography </type><parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:492
+#, no-c-format
+msgid ""
+"Returns the area of the geometry if it is a polygon or multi-polygon. Return "
+"the area measurement of an ST_Surface or ST_MultiSurface value. For geometry "
+"Area is in the units of the srid. For geography area is in square meters and "
+"defaults to measuring about the spheroid of the geography (currently only "
+"WGS84). To measure around the faster but less accurate sphere -- "
+"ST_Area(geog,false)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:497
+#, no-c-format
+msgid "Enhanced: 2.0.0 - support for 2D polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:498 reference_measure.xml:641
+#: reference_measure.xml:1571 reference_measure.xml:1947
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:499
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.2, 9.5.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:501
+#, no-c-format
+msgid ""
+"For polyhedral surfaces, only supports 2D polyhedral surfaces (not 2.5D). "
+"For 2.5D, may give a non-zero answer, but only for the faces that sit "
+"completely in XY plane."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:508
+#, no-c-format
+msgid ""
+"Return area in square feet for a plot of Massachusetts land and multiply by "
+"conversion to get square meters. Note this is in square feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:511
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |     sqm\n"
+"---------+-------------\n"
+" 928.625 | 86.27208552"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:512
+#, no-c-format
+msgid ""
+"Return area square feet and transform to Massachusetts state plane meters "
+"(26986) to get square meters. Note this is in square feet because 2249 is "
+"Mass State Plane Feet and transformed area is in square meters since 26986 "
+"is state plane mass meters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:515
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As "
+"sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |       sqm\n"
+"---------+------------------\n"
+" 928.625 | 86.2724304199219"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:517
+#, no-c-format
+msgid ""
+"Return area square feet and square meters using Geography data type. Note "
+"that we transform to our geometry to geography (before you can do that make "
+"sure your geometry is in WGS 84 long lat 4326). Geography always measures in "
+"meters. This is just for demonstration to compare. Normally your table will "
+"be stored in geography data type already."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:520
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,"
+"false)/POWER(0.3048,2) As sqft_sphere, ST_Area(the_geog) As sqm_spheroid\n"
+"                FROM (SELECT\n"
+"                geography(\n"
+"                ST_Transform(\n"
+"                        ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,743265.625 2967416,743238 2967416))',\n"
+"                                2249\n"
+"                                ) ,4326\n"
+"                        )\n"
+"                )\n"
+"        ) As foo(the_geog);\n"
+" sqft_spheroid   |   sqft_sphere    |   sqm_spheroid\n"
+"-----------------+------------------+------------------\n"
+"928.684405217197 | 927.186481558724 | 86.2776044452694\n"
+"\n"
+" --if your data is in geography already\n"
+" SELECT ST_Area(the_geog)/POWER(0.3048,2) As  sqft, ST_Area(the_geog) As "
+"sqm\n"
+"        FROM somegeogtable;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:524
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeographyFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:530
+#, no-c-format
+msgid "ST_Azimuth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:532
+#, no-c-format
+msgid ""
+"Returns the north-based azimuth as the angle in radians measured clockwise "
+"from the vertical on pointA to pointB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:535
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Azimuth</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>pointA</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>pointB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Azimuth</"
+"function></funcdef> <paramdef><type>geography </type><parameter>pointA</"
+"parameter></paramdef> <paramdef><type>geography </type><parameter>pointB</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:551
+#, no-c-format
+msgid ""
+"Returns the azimuth in radians of the segment defined by the given point-"
+"geometries, or NULL if the two points are coincident. The azimuth is north-"
+"based and is measured clockwise: North = 0; East = PI/2; South = PI; West = "
+"3PI/2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:554
+#, no-c-format
+msgid ""
+"The Azimuth is mathematical concept defined as the angle, in this case "
+"measured in radian, between a reference plane and a point."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:557
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:558
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:559
+#, no-c-format
+msgid ""
+"Azimuth is especially useful in conjunction with ST_Translate for shifting "
+"an object along its perpendicular axis. See upgis_lineshift <ulink url="
+"\"http://trac.osgeo.org/postgis/wiki/UsersWikiplpgsqlfunctions"
+"\">Plpgsqlfunctions PostGIS wiki section</ulink> for example of this."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:565
+#, no-c-format
+msgid "Geometry Azimuth in degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:566
+#, no-c-format
+msgid ""
+"SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as "
+"degA_B,\n"
+"        ST_Azimuth(ST_Point(75,100), ST_Point(25,45))/(2*pi())*360 As "
+"degB_A;\n"
+"        \n"
+"-- NOTE easier to remember syntax using PostgreSQL built-in degrees function "
+"--\n"
+"-- Both yield same answer --\n"
+"SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degA_B,\n"
+"        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As degB_A;\n"
+"\n"
+"      dega_b       |     degb_a\n"
+"------------------+------------------\n"
+" 42.2736890060937 | 222.273689006094"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:576
+#, no-c-format
+msgid ""
+"Green: the start Point(25,45) with its vertical. Yellow: degA_B as the path "
+"to travel (azimuth)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:585
+#, no-c-format
+msgid ""
+"Green: the start Point(75,100) with its vertical. Yellow: degB_A as the path "
+"to travel (azimuth)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:596
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Translate\"/>, <xref linkend=\"ST_Project\"/>, <ulink "
+"url=\"http://www.postgresql.org/docs/current/interactive/functions-math.html"
+"\">PostgreSQL Math Functions</ulink>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:603
+#, no-c-format
+msgid "ST_Centroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:605
+#, no-c-format
+msgid "Returns the geometric center of a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:610
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Centroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:622
+#, no-c-format
+msgid ""
+"Computes the geometric center of a geometry, or equivalently, the center of "
+"mass of the geometry as a <varname>POINT</varname>. For [<varname>MULTI</"
+"varname>]<varname>POINT</varname>s, this is computed as the arithmetic mean "
+"of the input coordinates. For [<varname>MULTI</varname>]<varname>LINESTRING</"
+"varname>s, this is computed as the weighted length of each line segment. For "
+"[<varname>MULTI</varname>]<varname>POLYGON</varname>s, \"weight\" is thought "
+"in terms of area. If an empty geometry is supplied, an empty "
+"<varname>GEOMETRYCOLLECTION</varname> is returned. If <varname>NULL</"
+"varname> is supplied, <varname>NULL</varname> is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:634
+#, no-c-format
+msgid ""
+"The centroid is equal to the centroid of the set of component Geometries of "
+"highest dimension (since the lower-dimension geometries contribute zero "
+"\"weight\" to the centroid)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:638
+#, no-c-format
+msgid ""
+"Computation will be more accurate if performed by the GEOS module (enabled "
+"at compile time)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:642
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.4, 9.5.5"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:648
+#, no-c-format
+msgid ""
+"In each of the following illustrations, the blue dot represents the centroid "
+"of the source geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:661
+#, no-c-format
+msgid "Centroid of a <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:672
+#, no-c-format
+msgid "Centroid of a <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:685
+#, no-c-format
+msgid "Centroid of a <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:696
+#, no-c-format
+msgid "Centroid of a <varname>GEOMETRYCOLLECTION</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:705
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 "
+"1, 0 3, 1 1, 2 0, 6 0, 7 8, 9 8, 10 6 )'));\n"
+"                                st_astext\n"
+"------------------------------------------\n"
+" POINT(2.30769230769231 3.30769230769231)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:717
+#, no-c-format
+msgid "ST_ClosestPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:719
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the 2-dimensional point on g1 that is closest to g2. "
+"This is the first point of the shortest line.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:725
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:740
+#, no-c-format
+msgid ""
+"<para>Returns the 2-dimensional point on g1 that is closest to g2. This is "
+"the first point of the shortest line.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:743
+#, no-c-format
+msgid ""
+"If you have a 3D Geometry, you may prefer to use <xref linkend="
+"\"ST_3DClosestPoint\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:744 reference_measure.xml:1699
+#: reference_measure.xml:1852 reference_measure.xml:2448
+#: reference_measure.xml:3027
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:758
+#, no-c-format
+msgid ""
+"Closest between point and linestring is the point itself, but closest point "
+"between a linestring and point is the point on line string that is closest."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:762
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_ClosestPoint(pt,line)) AS cp_pt_line, \n"
+"        ST_AsText(ST_ClosestPoint(line,pt)) As cp_line_pt\n"
+"FROM (SELECT 'POINT(100 100)'::geometry As pt, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry As "
+"line\n"
+"        ) As foo;\n"
+"\n"
+"        \n"
+"   cp_pt_line   |                cp_line_pt\n"
+"----------------+------------------------------------------\n"
+" POINT(100 100) | POINT(73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:770
+#, no-c-format
+msgid "closest point on polygon A to polygon B"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:773
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"                ST_ClosestPoint(\n"
+"                        ST_GeomFromText('POLYGON((175 150, 20 40, 50 60, 125 "
+"100, 175 150))'),\n"
+"                        ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                        ) \n"
+"                ) As ptwkt;\n"
+"                \n"
+"                  ptwkt\n"
+"------------------------------------------\n"
+" POINT(140.752120669087 125.695053378061)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:785
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
+"linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_MaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:791
+#, no-c-format
+msgid "ST_Contains"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:793
+#, no-c-format
+msgid ""
+"Returns true if and only if no points of B lie in the exterior of A, and at "
+"least one point of the interior of B lies in the interior of A."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:798
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:813
+#, no-c-format
+msgid ""
+"Geometry A contains Geometry B if and only if no points of B lie in the "
+"exterior of A, and at least one point of the interior of B lies in the "
+"interior of A. An important subtlety of this definition is that A does not "
+"contain its boundary, but A does contain itself. Contrast that to <xref "
+"linkend=\"ST_ContainsProperly\"/> where geometry A does not Contain Properly "
+"itself."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:817
+#, no-c-format
+msgid ""
+"Returns TRUE if geometry B is completely inside geometry A. For this "
+"function to make sense, the source geometries must both be of the same "
+"coordinate projection, having the same SRID. ST_Contains is the inverse of "
+"ST_Within. So ST_Contains(A,B) implies ST_Within(B,A) except in the case of "
+"invalid geometries where the result is always false regardless or not "
+"defined."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:822 reference_measure.xml:1049
+#: reference_measure.xml:1131 reference_measure.xml:1496
+#: reference_measure.xml:2579 reference_measure.xml:2932
+#: reference_measure.xml:3249
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:825 reference_measure.xml:987
+#: reference_measure.xml:1052 reference_measure.xml:1134
+#: reference_measure.xml:1238 reference_measure.xml:1493
+#: reference_measure.xml:3130 reference_measure.xml:3252
+#, no-c-format
+msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:829 reference_measure.xml:991
+#: reference_measure.xml:1060 reference_measure.xml:1138
+#: reference_measure.xml:3256
+#, no-c-format
+msgid ""
+"Do not use this function with invalid geometries. You will get unexpected "
+"results."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:832
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Contains."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:837 reference_measure.xml:1071
+#: reference_measure.xml:1146 reference_measure.xml:1502
+#: reference_measure.xml:2117 reference_measure.xml:2588
+#: reference_measure.xml:3264
+#, no-c-format
+msgid ""
+"NOTE: this is the \"allowable\" version that returns a boolean, not an "
+"integer."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:840
+#, no-c-format
+msgid ""
+"&sfs_compliant; s2.1.1.2 // s2.1.13.3 - same as within(geometry B, geometry "
+"A)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:842
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.31"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:844 reference_measure.xml:1075
+#: reference_measure.xml:1150
+#, no-c-format
+msgid ""
+"There are certain subtleties to ST_Contains and ST_Within that are not "
+"intuitively obvious. For details check out <ulink url=\"http://lin-ear-th-"
+"inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html"
+"\">Subtleties of OGC Covers, Contains, Within</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:851
+#, no-c-format
+msgid ""
+"The <function>ST_Contains</function> predicate returns <varname>TRUE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:863
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:873 reference_measure.xml:3208
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>POINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:884 reference_measure.xml:924
+#: reference_measure.xml:3177
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:894 reference_measure.xml:2625
+#: reference_measure.xml:3157 reference_measure.xml:3167
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:902
+#, no-c-format
+msgid ""
+"The <function>ST_Contains</function> predicate returns <varname>FALSE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:914
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:932
+#, no-c-format
+msgid ""
+"-- A circle within a circle\n"
+"SELECT ST_Contains(smallc, bigc) As smallcontainsbig,\n"
+"           ST_Contains(bigc,smallc) As bigcontainssmall,\n"
+"           ST_Contains(bigc, ST_Union(smallc, bigc)) as bigcontainsunion,\n"
+"           ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion,\n"
+"           ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"           ST_Contains(bigc, ST_ExteriorRing(bigc)) As bigcontainsexterior\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"                         ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As "
+"bigc) As foo;\n"
+"\n"
+"-- Result\n"
+"  smallcontainsbig | bigcontainssmall | bigcontainsunion | bigisunion | "
+"bigcoversexterior | bigcontainsexterior\n"
+"------------------+------------------+------------------+------------"
+"+-------------------+---------------------\n"
+" f                | t                | t                | t          | "
+"t        | f\n"
+"\n"
+"-- Example demonstrating difference between contains and contains properly\n"
+"SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
+"acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
+"   ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+"FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
+"                         ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
+"                         ( ST_Point(1,1) )\n"
+"          ) As foo(geomA);\n"
+"\n"
+"  geomtype    | acontainsa | acontainspropa | acontainsba | acontainspropba\n"
+"--------------+------------+----------------+-------------"
+"+-----------------\n"
+"ST_Polygon    | t          | f              | f           | f\n"
+"ST_LineString | t          | f              | f           | f\n"
+"ST_Point      | t          | t              | f           | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:937
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ContainsProperly\"/>, <xref linkend=\"ST_Covers\"/>, "
+"<xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Equals\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:943
+#, no-c-format
+msgid "ST_ContainsProperly"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:945
+#, no-c-format
+msgid ""
+"Returns true if B intersects the interior of A but not the boundary (or "
+"exterior). A does not contain properly itself, but does contain itself."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:950
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_ContainsProperly</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:965
+#, no-c-format
+msgid ""
+"Returns true if B intersects the interior of A but not the boundary (or "
+"exterior)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:967
+#, no-c-format
+msgid "A does not contain properly itself, but does contain itself."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:968
+#, no-c-format
+msgid ""
+"Every point of the other geometry is a point of this geometry's interior. "
+"The DE-9IM Intersection Matrix for the two geometries matches [T**FF*FF*] "
+"used in <xref linkend=\"ST_Relate\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:972
+#, no-c-format
+msgid ""
+"From JTS docs slightly reworded: The advantage to using this predicate over "
+"<xref linkend=\"ST_Contains\"/> and <xref linkend=\"ST_Intersects\"/> is "
+"that it can be computed efficiently, with no need to compute topology at "
+"individual points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:974
+#, no-c-format
+msgid ""
+"An example use case for this predicate is computing the intersections of a "
+"set of geometries with a large polygonal geometry. Since intersection is a "
+"fairly slow operation, it can be more efficient to use containsProperly to "
+"filter out test geometries which lie wholly inside the area. In these cases "
+"the intersection is known a priori to be exactly the original test geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:984
+#, no-c-format
+msgid "Availability: 1.4.0 - requires GEOS >= 3.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:994
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_ContainsProperly."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1003
+#, no-c-format
+msgid ""
+"--a circle within a circle\n"
+"        SELECT ST_ContainsProperly(smallc, bigc) As smallcontainspropbig,\n"
+"        ST_ContainsProperly(bigc,smallc) As bigcontainspropsmall,\n"
+"        ST_ContainsProperly(bigc, ST_Union(smallc, bigc)) as "
+"bigcontainspropunion,\n"
+"        ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion,\n"
+"        ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"        ST_ContainsProperly(bigc, ST_ExteriorRing(bigc)) As "
+"bigcontainsexterior\n"
+"        FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As "
+"smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+"  smallcontainspropbig | bigcontainspropsmall | bigcontainspropunion | "
+"bigisunion | bigcoversexterior | bigcontainsexterior\n"
+"------------------+------------------+------------------+------------"
+"+-------------------+---------------------\n"
+" f                     | t                    | f                    | "
+"t          | t                 | f\n"
+"\n"
+" --example demonstrating difference between contains and contains properly\n"
+" SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
+"acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
+" ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+" FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
+"                  ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
+"                  ( ST_Point(1,1) )\n"
+"        ) As foo(geomA);\n"
+"\n"
+"  geomtype    | acontainsa | acontainspropa | acontainsba | acontainspropba\n"
+"--------------+------------+----------------+-------------"
+"+-----------------\n"
+"ST_Polygon    | t          | f              | f           | f\n"
+"ST_LineString | t          | f              | f           | f\n"
+"ST_Point      | t          | t              | f           | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1008
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_Contains\"/>, <xref "
+"linkend=\"ST_Covers\"/>, <xref linkend=\"ST_CoveredBy\"/>, <xref linkend="
+"\"ST_Equals\"/>, <xref linkend=\"ST_Relate\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1014
+#, no-c-format
+msgid "ST_Covers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1016
+#, no-c-format
+msgid "Returns 1 (TRUE) if no point in Geometry B is outside Geometry A"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1021
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogpolyA</"
+"parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>geogpointB</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1046
+#, no-c-format
+msgid ""
+"Returns 1 (TRUE) if no point in Geometry/Geography B is outside Geometry/"
+"Geography A"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1056
+#, no-c-format
+msgid "For geography only Polygon covers point is supported."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1063
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Covers."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1068 reference_measure.xml:1140
+#, no-c-format
+msgid "Availability: 1.2.2 - requires GEOS >= 3.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1069
+#, no-c-format
+msgid "Availability: 1.5 - support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1074 reference_measure.xml:1149
+#, no-c-format
+msgid "Not an OGC standard, but Oracle has it too."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1081
+#, no-c-format
+msgid "Geometry example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1082
+#, no-c-format
+msgid ""
+"--a circle covering a circle\n"
+"SELECT ST_Covers(smallc,smallc) As smallinsmall,\n"
+"        ST_Covers(smallc, bigc) As smallcoversbig,\n"
+"        ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"        ST_Contains(bigc, ST_ExteriorRing(bigc)) As bigcontainsexterior\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+" smallinsmall | smallcoversbig | bigcoversexterior | bigcontainsexterior\n"
+"--------------+----------------+-------------------+---------------------\n"
+" t            | f              | t                 | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1083
+#, no-c-format
+msgid "Geeography Example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1084
+#, no-c-format
+msgid ""
+"-- a point with a 300 meter buffer compared to a point, a point and its 10 "
+"meter buffer\n"
+"SELECT ST_Covers(geog_poly, geog_pt) As poly_covers_pt, \n"
+"        ST_Covers(ST_Buffer(geog_pt,10), geog_pt) As buff_10m_covers_cent\n"
+"        FROM (SELECT ST_Buffer(ST_GeogFromText('SRID=4326;POINT(-99.327 "
+"31.4821)'), 300) As geog_poly,\n"
+"                                ST_GeogFromText('SRID=4326;POINT(-99.33 "
+"31.483)') As geog_pt ) As foo;\n"
+"                                \n"
+" poly_covers_pt | buff_10m_covers_cent\n"
+"----------------+------------------\n"
+" f              | t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1089
+#, no-c-format
+msgid ", <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1095
+#, no-c-format
+msgid "ST_CoveredBy"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1097
+#, no-c-format
+msgid ""
+"<refpurpose>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
+"Geometry/Geography B</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1102
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogA</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geogB</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1128
+#, no-c-format
+msgid ""
+"<para>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
+"Geometry/Geography B</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1141
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_CoveredBy."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1156
+#, no-c-format
+msgid ""
+"--a circle coveredby a circle\n"
+"SELECT ST_CoveredBy(smallc,smallc) As smallinsmall,\n"
+"        ST_CoveredBy(smallc, bigc) As smallcoveredbybig,\n"
+"        ST_CoveredBy(ST_ExteriorRing(bigc), bigc) As exteriorcoveredbybig,\n"
+"        ST_Within(ST_ExteriorRing(bigc),bigc) As exeriorwithinbig\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+" smallinsmall | smallcoveredbybig | exteriorcoveredbybig | exeriorwithinbig\n"
+"--------------+-------------------+----------------------"
+"+------------------\n"
+" t            | t                 | t                    | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1161
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1167
+#, no-c-format
+msgid "ST_Crosses"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1169
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the supplied geometries have some, but "
+"not all, interior points in common."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1175
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Crosses</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1188
+#, no-c-format
+msgid ""
+"<function>ST_Crosses</function> takes two geometry objects and returns "
+"<varname>TRUE</varname> if their intersection \"spatially cross\", that is, "
+"the geometries have some, but not all interior points in common. The "
+"intersection of the interiors of the geometries must not be the empty set "
+"and must have a dimensionality less than the the maximum dimension of the "
+"two input geometries. Additionally, the intersection of the two geometries "
+"must not equal either of the source geometries. Otherwise, it returns "
+"<varname>FALSE</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1197
+#, no-c-format
+msgid "In mathematical terms, this is expressed as:"
+msgstr ""
+
+#. Tag: remark
+#: reference_measure.xml:1199
+#, no-c-format
+msgid ""
+"TODO: Insert appropriate MathML markup here or use a gif. Simple HTML markup "
+"does not work well in both IE and Firefox."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1210
+#, no-c-format
+msgid "The DE-9IM Intersection Matrix for the two geometries is:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1214
+#, no-c-format
+msgid ""
+"<markup>T*T******</markup> (for Point/Line, Point/Area, and Line/Area "
+"situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1219
+#, no-c-format
+msgid ""
+"<markup>T*****T**</markup> (for Line/Point, Area/Point, and Area/Line "
+"situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1224
+#, no-c-format
+msgid "<markup>0********</markup> (for Line/Line situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1228
+#, no-c-format
+msgid "For any other combination of dimensions this predicate returns false."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1231
+#, no-c-format
+msgid ""
+"The OpenGIS Simple Features Specification defines this predicate only for "
+"Point/Line, Point/Area, Line/Line, and Line/Area situations. JTS / GEOS "
+"extends the definition to apply to Line/Point, Area/Point and Area/Line "
+"situations as well. This makes the relation symmetric."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1247
+#, no-c-format
+msgid "&sfs_compliant; s2.1.13.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1248
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.29"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1254 reference_measure.xml:2597
+#, no-c-format
+msgid "The following illustrations all return <varname>TRUE</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1266
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1276
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1288
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1298 reference_measure.xml:2617
+#: reference_measure.xml:3188 reference_measure.xml:3198
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1306
+#, no-c-format
+msgid ""
+"Consider a situation where a user has two tables: a table of roads and a "
+"table of highways."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1314
+#, no-c-format
+msgid ""
+"CREATE TABLE roads (\n"
+"  id serial NOT NULL,\n"
+"  the_geom geometry,\n"
+"  CONSTRAINT roads_pkey PRIMARY KEY (road_id)\n"
+");"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1318
+#, no-c-format
+msgid ""
+"CREATE TABLE highways (\n"
+"  id serial NOT NULL,\n"
+"  the_gem geometry,\n"
+"  CONSTRAINT roads_pkey PRIMARY KEY (road_id)\n"
+");"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1325
+#, no-c-format
+msgid ""
+"To determine a list of roads that cross a highway, use a query similiar to:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1329
+#, no-c-format
+msgid ""
+"SELECT roads.id\n"
+"FROM roads, highways\n"
+"WHERE ST_Crosses(roads.the_geom, highways.the_geom);"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1336
+#, no-c-format
+msgid "ST_LineCrossingDirection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1338
+#, no-c-format
+msgid ""
+"Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
+"crossing behavior. 0 is no crossing."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1343
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_LineCrossingDirection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>linestringA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>linestringB</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1354
+#, no-c-format
+msgid ""
+"Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
+"crossing behavior. 0 is no crossing. This is only supported for "
+"<varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1355
+#, no-c-format
+msgid "Definition of integer constants is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1358
+#, no-c-format
+msgid "0: LINE NO CROSS"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1361
+#, no-c-format
+msgid "-1: LINE CROSS LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1364
+#, no-c-format
+msgid "1: LINE CROSS RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1367
+#, no-c-format
+msgid "-2: LINE MULTICROSS END LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1370
+#, no-c-format
+msgid "2: LINE MULTICROSS END RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1373
+#, no-c-format
+msgid "-3: LINE MULTICROSS END SAME FIRST LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1376
+#, no-c-format
+msgid "3: LINE MULTICROSS END SAME FIRST RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1380
+#, no-c-format
+msgid "Availability: 1.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1398
+#, no-c-format
+msgid ""
+"Line 1 (green), Line 2 ball is start point, triangle are end points. Query "
+"below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1402
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+"SELECT\n"
+" ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+" ST_GeomFromText('LINESTRING(171 154,20 140,71 74,161 53)') As line2\n"
+"        ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"           3 |          -3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1412 reference_measure.xml:1426
+#: reference_measure.xml:1440
+#, no-c-format
+msgid ""
+"Line 1 (green), Line 2 (blue) ball is start point, triangle are end points. "
+"Query below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1416
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+" SELECT\n"
+"  ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"  ST_GeomFromText('LINESTRING (171 154, 20 140, 71 74, 2.99 90.16)') As "
+"line2\n"
+") As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"           2 |          -2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1430
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"        ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+" SELECT\n"
+"  ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"  ST_GeomFromText('LINESTRING (20 140, 71 74, 161 53)') As line2\n"
+"  ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"          -1 |          1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1444
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (SELECT\n"
+"        ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"        ST_GeomFromText('LINESTRING(2.99 90.16,71 74,20 140,171 154)') As "
+"line2\n"
+"        ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"          -2 |          2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1452
+#, no-c-format
+msgid ""
+"SELECT s1.gid, s2.gid, ST_LineCrossingDirection(s1.the_geom, s2.the_geom)\n"
+"        FROM streets s1 CROSS JOIN streets s2 ON (s1.gid != s2.gid AND s1."
+"the_geom && s2.the_geom )\n"
+"WHERE ST_CrossingDirection(s1.the_geom, s2.the_geom) > 0;"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1465
+#, no-c-format
+msgid "ST_Disjoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1467
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries do not \"spatially intersect\" - if they do "
+"not share any space together."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1473
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1488
+#, no-c-format
+msgid ""
+"Overlaps, Touches, Within all imply geometries are not spatially disjoint. "
+"If any of the aforementioned returns true, then the geometries are not "
+"spatially disjoint. Disjoint implies false for spatial intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1498
+#, no-c-format
+msgid "This function call does not use indexes"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1505
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - a.Relate(b, 'FF*FF****')"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1507
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.26"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1512
+#, no-c-format
+msgid ""
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" t\n"
+"(1 row)\n"
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1517
+#, no-c-format
+msgid "<para>ST_Intersects</para>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1523
+#, no-c-format
+msgid "ST_Distance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1525
+#, no-c-format
+msgid ""
+"For geometry type Returns the 2-dimensional cartesian minimum distance "
+"(based on spatial ref) between two geometries in projected units. For "
+"geography type defaults to return spheroidal minimum distance between two "
+"geographies in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1529
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Distance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Distance</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>gg1</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>gg2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Distance</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1567
+#, no-c-format
+msgid ""
+"For geometry type returns the 2-dimensional minimum cartesian distance "
+"between two geometries in projected units (spatial ref units). For geography "
+"type defaults to return the minimum distance around WGS 84 spheroid between "
+"two geographies in meters. Pass in false to return answer in sphere instead "
+"of spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1572
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.23"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1573 reference_measure.xml:2039
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1576
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 geography support was introduced in 1.5. Speed "
+"improvements for planar to better handle large or many vertex geometries"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1577 reference_measure.xml:1949
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 improved speed for geography. See <ulink url=\"http://blog."
+"opengeo.org/2012/07/12/making-geography-faster/\">Making Geography faster</"
+"ulink> for details."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1578
+#, no-c-format
+msgid "Enhanced: 2.1.0 - support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1582
+#, no-c-format
+msgid "Basic Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1584
+#, no-c-format
+msgid ""
+"--Geometry example - units in planar degrees 4326 is WGS 84 long lat "
+"unit=degrees\n"
+"SELECT ST_Distance(\n"
+"                ST_GeomFromText('POINT(-72.1235 42.3521)',4326),\n"
+"                ST_GeomFromText('LINESTRING(-72.1260 42.45, -72.123 "
+"42.1546)', 4326)\n"
+"        );\n"
+"st_distance\n"
+"-----------------\n"
+"0.00150567726382282\n"
+"\n"
+"-- Geometry example - units in meters (SRID: 26986 Massachusetts state plane "
+"meters) (most accurate for Massachusetts)\n"
+"SELECT ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),26986),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),26986)\n"
+"                );\n"
+"st_distance\n"
+"-----------------\n"
+"123.797937878454\n"
+"\n"
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (least accurate)\n"
+"SELECT ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),2163),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),2163)\n"
+"                );\n"
+"\n"
+"st_distance\n"
+"------------------\n"
+"126.664256056812"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1587 reference_measure.xml:2131
+#: reference_measure.xml:2182
+#, no-c-format
+msgid "Geography Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1588
+#, no-c-format
+msgid ""
+"-- same as geometry example but note units in meters - use sphere for "
+"slightly faster less accurate\n"
+"SELECT ST_Distance(gg1, gg2) As spheroid_dist, ST_Distance(gg1, gg2, false) "
+"As sphere_dist \n"
+"FROM (SELECT\n"
+"        ST_GeographyFromText('SRID=4326;POINT(-72.1235 42.3521)') As gg1,\n"
+"        ST_GeographyFromText('SRID=4326;LINESTRING(-72.1260 42.45, -72.123 "
+"42.1546)') As gg2\n"
+"        ) As foo  ;\n"
+"\n"
+"  spheroid_dist   |   sphere_dist\n"
+"------------------+------------------\n"
+" 123.802076746848 | 123.475736916397"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1596
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_Distance_Sphere\"/>, "
+"<xref linkend=\"ST_Distance_Spheroid\"/>, <xref linkend=\"ST_MaxDistance\"/"
+">, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1602
+#, no-c-format
+msgid "ST_HausdorffDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1604
+#, no-c-format
+msgid ""
+"Returns the Hausdorff distance between two geometries. Basically a measure "
+"of how similar or dissimilar 2 geometries are. Units are in the units of the "
+"spatial reference system of the geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1609
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_HausdorffDistance</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_HausdorffDistance</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>g2</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>densifyFrac</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1637
+#, no-c-format
+msgid ""
+"Implements algorithm for computing a distance metric which can be thought of "
+"as the \"Discrete Hausdorff Distance\". This is the Hausdorff distance "
+"restricted to discrete points for one of the geometries. <ulink url=\"http://"
+"en.wikipedia.org/wiki/Hausdorff_distance\">Wikipedia article on Hausdorff "
+"distance</ulink> <ulink url=\"http://lin-ear-th-inking.blogspot.com/2009/01/"
+"computing-geometric-similarity.html\">Martin Davis note on how Hausdorff "
+"Distance calculation was used to prove correctness of the "
+"CascadePolygonUnion approach.</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1640
+#, no-c-format
+msgid ""
+"When densifyFrac is specified, this function performs a segment "
+"densification before computing the discrete hausdorff distance. The "
+"densifyFrac parameter sets the fraction by which to densify each segment. "
+"Each segment will be split into a number of equal-length subsegments, whose "
+"fraction of the total length is closest to the given fraction."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1645
+#, no-c-format
+msgid ""
+"The current implementation supports only vertices as the discrete locations. "
+"This could be extended to allow an arbitrary density of points to be used."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1650
+#, no-c-format
+msgid ""
+"This algorithm is NOT equivalent to the standard Hausdorff distance. "
+"However, it computes an approximation that is correct for a large subset of "
+"useful cases. One important part of this subset is Linestrings that are "
+"roughly parallel to each other, and roughly equal in length. This is a "
+"useful metric for line matching."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1655
+#, no-c-format
+msgid "Availability: 1.5.0 - requires GEOS >= 3.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1661
+#, no-c-format
+msgid ""
+"For each building, find the parcel that best represents it. First we require "
+"the parcel intersect with the geometry. DISTINCT ON guarantees we get each "
+"building listed only once, the ORDER BY .. ST_HausdorffDistance gives us a "
+"preference of parcel that is most similar to the building."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1663
+#, no-c-format
+msgid ""
+"SELECT DISTINCT ON(buildings.gid) buildings.gid, parcels.parcel_id \n"
+"   FROM buildings INNER JOIN parcels ON ST_Intersects(buildings.geom,parcels."
+"geom) \n"
+"     ORDER BY buildings.gid, ST_HausdorffDistance(buildings.geom, parcels."
+"geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1665
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_HausdorffDistance(\n"
+"                                'LINESTRING (0 0, 2 0)'::geometry,\n"
+"                                'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                         1\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1666
+#, no-c-format
+msgid ""
+"postgis=# SELECT st_hausdorffdistance('LINESTRING (130 0, 0 0, 0 150)'::"
+"geometry, 'LINESTRING (10 10, 10 150, 130 10)'::geometry, 0.5);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                        70\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1673
+#, no-c-format
+msgid "ST_MaxDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1675
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional largest distance between two geometries in "
+"projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1681
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_MaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1694
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional maximum distance between two geometries in "
+"projected units. If g1 and g2 is the same geometry the function will return "
+"the distance between the two vertices most far from each other in that "
+"geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1704
+#, no-c-format
+msgid "Basic furthest distance the point is to any part of the line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1705
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 "
+"2 )'::geometry);\n"
+"   st_maxdistance\n"
+"-----------------\n"
+" 2\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 2, 2 "
+"2 )'::geometry);\n"
+"  st_maxdistance  \n"
+"------------------\n"
+" 2.82842712474619\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1711
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1717
+#, no-c-format
+msgid "ST_Distance_Sphere"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1719
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat geometries. Uses a "
+"spherical earth and radius of 6370986 meters. Faster than "
+"ST_Distance_Spheroid <xref linkend=\"ST_Distance_Spheroid\"/>, but less "
+"accurate. PostGIS versions prior to 1.5 only implemented for points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1727
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Distance_Sphere</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1738
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat points. Uses a "
+"spherical earth and radius of 6370986 meters. Faster than <xref linkend="
+"\"ST_Distance_Spheroid\"/>, but less accurate. PostGIS Versions prior to 1.5 "
+"only implemented for points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1743
+#, no-c-format
+msgid ""
+"This function currently does not look at the SRID of a geometry and will "
+"always assume its in WGS 84 long lat. Prior versions of this function only "
+"support points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1746 reference_measure.xml:1794
+#, no-c-format
+msgid ""
+"Availability: 1.5 - support for other geometry types besides points was "
+"introduced. Prior versions only work with points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1753
+#, no-c-format
+msgid ""
+"SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,\n"
+"round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As dist_utm11_meters,\n"
+"round(CAST(ST_Distance(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 "
+"38)', 4326)) As numeric),5) As dist_degrees,\n"
+"round(CAST(ST_Distance(ST_Transform(the_geom,32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As min_dist_line_point_meters\n"
+"FROM\n"
+"        (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', "
+"4326) As the_geom) as foo;\n"
+"         dist_meters | dist_utm11_meters | dist_degrees | "
+"min_dist_line_point_meters\n"
+"        -------------+-------------------+--------------"
+"+----------------------------\n"
+"                70424.47 |          70438.00 |      0.72900 "
+"|                   65871.18"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1760
+#, no-c-format
+msgid ", <xref linkend=\"ST_Distance_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1766
+#, no-c-format
+msgid "ST_Distance_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1768
+#, no-c-format
+msgid ""
+"Returns the minimum distance between two lon/lat geometries given a "
+"particular spheroid. PostGIS versions prior to 1.5 only support points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1775
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Distance_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</"
+"parameter></paramdef> <paramdef><type>spheroid </type> "
+"<parameter>measurement_spheroid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1787
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat geometries given a "
+"particular spheroid. See the explanation of spheroids given for <xref "
+"linkend=\"ST_Length_Spheroid\"/>. PostGIS version prior to 1.5 only support "
+"points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1791
+#, no-c-format
+msgid ""
+"This function currently does not look at the SRID of a geometry and will "
+"always assume its represented in the coordinates of the passed in spheroid. "
+"Prior versions of this function only support points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1801
+#, no-c-format
+msgid ""
+"SELECT round(CAST(\n"
+"                ST_Distance_Spheroid(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326), 'SPHEROID[\"WGS "
+"84\",6378137,298.257223563]')\n"
+"                        As numeric),2) As dist_meters_spheroid,\n"
+"                round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As "
+"dist_meters_sphere,\n"
+"round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As dist_utm11_meters\n"
+"FROM\n"
+"        (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', "
+"4326) As the_geom) as foo;\n"
+" dist_meters_spheroid | dist_meters_sphere | dist_utm11_meters\n"
+"----------------------+--------------------+-------------------\n"
+"                         70454.92 |           70424.47 |          70438.00"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1808
+#, no-c-format
+msgid ", <xref linkend=\"ST_Distance_Sphere\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1814
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1816
+#, no-c-format
+msgid ""
+"Returns true if all of the geometries are within the specified distance of "
+"one another"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1822
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_DFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1840
+#, no-c-format
+msgid ""
+"Returns true if the geometries is fully within the specified distance of one "
+"another. The distance is specified in units defined by the spatial reference "
+"system of the geometries. For this function to make sense, the source "
+"geometries must both be of the same coordinate projection, having the same "
+"SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1857
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_DFullyWithin(geom_a, geom_b, 10) as DFullyWithin10, "
+"ST_DWithin(geom_a, geom_b, 10) as DWithin10, ST_DFullyWithin(geom_a, geom_b, "
+"20) as DFullyWithin20 from \n"
+"                (select ST_GeomFromText('POINT(1 1)') as geom_a,"
+"ST_GeomFromText('LINESTRING(1 5, 2 7, 1 9, 14 12)') as geom_b) t1;\n"
+"   \n"
+"-----------------\n"
+" DFullyWithin10 | DWithin10 | DFullyWithin20 |\n"
+"---------------+----------+---------------+\n"
+" f             | t        | t             |"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1863
+#, no-c-format
+msgid ", <xref linkend=\"ST_DWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1869
+#, no-c-format
+msgid "ST_DWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1871
+#, no-c-format
+msgid ""
+"Returns true if the geometries are within the specified distance of one "
+"another. For geometry units are in those of spatial reference and For "
+"geography units are in meters and measurement is defaulted to "
+"use_spheroid=true (measure around spheroid), for faster check, "
+"use_spheroid=false to measure along sphere."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1877
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>distance_meters</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>gg1</parameter></paramdef> "
+"<paramdef><type>geography </type> <parameter>gg2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_meters</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1922
+#, no-c-format
+msgid ""
+"Returns true if the geometries are within the specified distance of one "
+"another."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1924
+#, no-c-format
+msgid ""
+"For Geometries: The distance is specified in units defined by the spatial "
+"reference system of the geometries. For this function to make sense, the "
+"source geometries must both be of the same coordinate projection, having the "
+"same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1929
+#, no-c-format
+msgid ""
+"For geography units are in meters and measurement is defaulted to "
+"use_spheroid=true (measure around WGS 84 spheroid), for faster check, "
+"use_spheroid=false to measure along sphere."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1939
+#, no-c-format
+msgid ""
+"Prior to 1.3, ST_Expand was commonly used in conjunction with && and "
+"ST_Distance to achieve the same effect and in pre-1.3.4 this function was "
+"basically short-hand for that construct. From 1.3.4, ST_DWithin uses a more "
+"short-circuit distance function which should make it more efficient than "
+"prior versions for larger buffer regions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1945
+#, no-c-format
+msgid "Use ST_3DDWithin if you have 3D geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1948
+#, no-c-format
+msgid "Availability: 1.5.0 support for geography was introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1950
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1955
+#, no-c-format
+msgid ""
+"--Find the nearest hospital to each school\n"
+"--that is within 3000 units of the school.\n"
+"-- We do an ST_DWithin search to utilize indexes to limit our search list\n"
+"-- that the non-indexable ST_Distance needs to process\n"
+"--If the units of the spatial reference is meters then units would be "
+"meters\n"
+"SELECT DISTINCT ON (s.gid) s.gid, s.school_name, s.the_geom, h."
+"hospital_name\n"
+"        FROM schools s\n"
+"                LEFT JOIN hospitals h ON ST_DWithin(s.the_geom, h.the_geom, "
+"3000)\n"
+"        ORDER BY s.gid, ST_Distance(s.the_geom, h.the_geom);\n"
+"\n"
+"--The schools with no close hospitals\n"
+"--Find all schools with no hospital within 3000 units\n"
+"--away from the school.  Units is in units of spatial ref (e.g. meters, "
+"feet, degrees)\n"
+"SELECT s.gid, s.school_name\n"
+"        FROM schools s\n"
+"                LEFT JOIN hospitals h ON ST_DWithin(s.the_geom, h.the_geom, "
+"3000)\n"
+"        WHERE h.gid IS NULL;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1961
+#, no-c-format
+msgid ", <xref linkend=\"ST_Expand\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1967
+#, no-c-format
+msgid "ST_Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1969
+#, no-c-format
+msgid ""
+"Returns true if the given geometries represent the same geometry. "
+"Directionality is ignored."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1975
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Equals</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1986
+#, no-c-format
+msgid ""
+"Returns TRUE if the given Geometries are \"spatially equal\". Use this for a "
+"'better' answer than '='. Note by spatially equal we mean ST_Within(A,B) = "
+"true and ST_Within(B,A) = true and also mean ordering of points can be "
+"different but represent the same geometry structure. To verify the order of "
+"points is consistent, use ST_OrderingEquals (it must be noted "
+"ST_OrderingEquals is a little more stringent than simply verifying order of "
+"points are the same)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1995
+#, no-c-format
+msgid ""
+"This function will return false if either geometry is invalid even if they "
+"are binary equal."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1998
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1999
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.24"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2005
+#, no-c-format
+msgid ""
+"SELECT ST_Equals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_equals\n"
+"-----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Equals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 10)')),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_equals\n"
+"-----------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2011
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Reverse\"/>, "
+"<xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2018
+#, no-c-format
+msgid "ST_HasArc"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2020
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if a geometry or geometry collection contains a "
+"circular string</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2025
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_HasArc</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2035
+#, no-c-format
+msgid ""
+"<para>Returns true if a geometry or geometry collection contains a circular "
+"string</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2037
+#, no-c-format
+msgid "Availability: 1.2.3?"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2046
+#, no-c-format
+msgid ""
+"SELECT ST_HasArc(ST_Collect('LINESTRING(1 2, 3 4, 5 6)', 'CIRCULARSTRING(1 "
+"1, 2 3, 4 5, 6 7, 5 6)'));\n"
+"                st_hasarc\n"
+"                --------\n"
+"                t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2053
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineToCurve\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2059
+#, no-c-format
+msgid "<refname>ST_Intersects</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2061
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries/Geography \"spatially intersect in 2D\" - "
+"(share any portion of space) and FALSE if they don't (they are Disjoint). "
+"For geography -- tolerance is 0.00001 meters (so any points that close are "
+"considered to intersect)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2067
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2094
+#, no-c-format
+msgid ""
+"If a geometry or geography shares any portion of space then they intersect. "
+"For geography -- tolerance is 0.00001 meters (so any points that are close "
+"are considered to intersect)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2101
+#, no-c-format
+msgid ""
+"Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument for "
+"geometry version. The geography version supports GEOMETRYCOLLECTION since "
+"its a thin wrapper around distance implementation."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2105
+#, no-c-format
+msgid "Performed by the GEOS module (for geometry), geography is native"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2106
+#, no-c-format
+msgid "Availability: 1.5 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2113
+#, no-c-format
+msgid ""
+"For geography, this function has a distance tolerance of about 0.00001 "
+"meters and uses the sphere rather than spheroid calculation."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2120
+#, no-c-format
+msgid ""
+"&sfs_compliant; s2.1.1.2 //s2.1.13.3 - ST_Intersects(g1, g2 ) --> Not "
+"(ST_Disjoint(g1, g2 ))"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2123
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.27"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2128
+#, no-c-format
+msgid ""
+"SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
+"geometry);\n"
+" st_intersects\n"
+"---------------\n"
+" f\n"
+"(1 row)\n"
+"SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::"
+"geometry);\n"
+" st_intersects\n"
+"---------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2132
+#, no-c-format
+msgid ""
+"SELECT ST_Intersects(\n"
+"                ST_GeographyFromText('SRID=4326;LINESTRING(-43.23456 "
+"72.4567,-43.23456 72.4568)'),\n"
+"                ST_GeographyFromText('SRID=4326;POINT(-43.23456 "
+"72.4567772)')\n"
+"                );\n"
+"\n"
+" st_intersects\n"
+"---------------\n"
+"t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2136
+#, no-c-format
+msgid ", <xref linkend=\"ST_Disjoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2141
+#, no-c-format
+msgid "ST_Length"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2143
+#, no-c-format
+msgid ""
+"Returns the 2d length of the geometry if it is a linestring or "
+"multilinestring. geometry are in units of spatial reference and geography "
+"are in meters (default spheroid)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2146
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Length</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>a_2dlinestring</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Length</function></funcdef> <paramdef><type>geography </"
+"type><parameter>geog</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type><parameter>use_spheroid=true</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2161
+#, no-c-format
+msgid ""
+"For geometry: Returns the cartesian 2D length of the geometry if it is a "
+"linestring, multilinestring, ST_Curve, ST_MultiCurve. 0 is returned for "
+"areal geometries. For areal geometries use ST_Perimeter. Geometry: "
+"Measurements are in the units of the spatial reference system of the "
+"geometry. Geography: Units are in meters and also acts as a Perimeter "
+"function for areal geogs."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2165
+#, no-c-format
+msgid ""
+"Currently for geometry this is an alias for ST_Length2D, but this may change "
+"to support higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2166
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Breaking change -- in prior versions applying this to a MULTI/"
+"POLYGON of type geography would give you the perimeter of the POLYGON/"
+"MULTIPOLYGON. In 2.0.0 this was changed to return 0 to be in line with "
+"geometry behavior. Please use ST_Perimeter if you want the perimeter of a "
+"polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2168
+#, no-c-format
+msgid ""
+"For geography measurement defaults spheroid measurement. To use the faster "
+"less accurate sphere use ST_Length(gg,false);"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2169 reference_measure.xml:2674
+#, no-c-format
+msgid "&sfs_compliant; s2.1.5.1"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2170
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.2, 9.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2171
+#, no-c-format
+msgid "Availability: 1.5.0 geography support was introduced in 1.5."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2177
+#, no-c-format
+msgid ""
+"Return length in feet for line string. Note this is in feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2179
+#, no-c-format
+msgid ""
+"SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 "
+"2967450,743265 2967450,\n"
+"743265.625 2967416,743238 2967416)',2249));\n"
+"st_length\n"
+"---------\n"
+" 122.630744000095\n"
+"\n"
+"\n"
+"--Transforming WGS 84 linestring to Massachusetts state plane meters\n"
+"SELECT ST_Length(\n"
+"        ST_Transform(\n"
+"                ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45, "
+"-72.1240 42.45666, -72.123 42.1546)'),\n"
+"                26986\n"
+"        )\n"
+");\n"
+"st_length\n"
+"---------\n"
+"34309.4563576191"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2183
+#, no-c-format
+msgid "Return length of WGS 84 geography line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2184
+#, no-c-format
+msgid ""
+"-- default calculation is using a sphere rather than spheroid\n"
+"SELECT ST_Length(the_geog) As length_spheroid,  ST_Length(the_geog,false) As "
+"length_sphere\n"
+"FROM (SELECT ST_GeographyFromText(\n"
+"'SRID=4326;LINESTRING(-72.1260 42.45, -72.1240 42.45666, -72.123 42.1546)') "
+"As the_geog)\n"
+" As foo;\n"
+" length_spheroid  |  length_sphere\n"
+"------------------+------------------\n"
+" 34310.5703627305 | 34346.2060960742\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2188
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Length_Spheroid\"/"
+">, <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2194
+#, no-c-format
+msgid "ST_Length2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2196
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring. This is an alias for <varname>ST_Length</"
+"varname></refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2202
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_2dlinestring</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2212
+#, no-c-format
+msgid ""
+"<para>Returns the 2-dimensional length of the geometry if it is a linestring "
+"or multi-linestring. This is an alias for <varname>ST_Length</varname></para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2221
+#, no-c-format
+msgid ", <xref linkend=\"ST_3DLength\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2227
+#, no-c-format
+msgid "ST_3DLength"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2229
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2235
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DLength</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_3dlinestring</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2245
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring. For 2-d lines it will just return the 2-d "
+"length (same as ST_Length and ST_Length2D)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2248
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Length3D"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2255
+#, no-c-format
+msgid ""
+"Return length in feet for a 3D cable. Note this is in feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2257
+#, no-c-format
+msgid ""
+"SELECT ST_3DLength(ST_GeomFromText('LINESTRING(743238 2967416 1,743238 "
+"2967450 1,743265 2967450 3,\n"
+"743265.625 2967416 3,743238 2967416 3)',2249));\n"
+"ST_3DLength\n"
+"-----------\n"
+"122.704716741457"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2264
+#, no-c-format
+msgid ", <xref linkend=\"ST_Length2D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2270
+#, no-c-format
+msgid "ST_Length_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2272
+#, no-c-format
+msgid ""
+"Calculates the 2D or 3D length of a linestring/multilinestring on an "
+"ellipsoid. This is useful if the coordinates of the geometry are in "
+"longitude/latitude and a length is desired without reprojection."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2279
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2290
+#, no-c-format
+msgid ""
+"Calculates the length of a geometry on an ellipsoid. This is useful if the "
+"coordinates of the geometry are in longitude/latitude and a length is "
+"desired without reprojection. The ellipsoid is a separate database type and "
+"can be constructed as follows:"
+msgstr ""
+
+#. Tag: literallayout
+#: reference_measure.xml:2296 reference_measure.xml:2348
+#, no-c-format
+msgid ""
+"SPHEROID[<NAME>,<SEMI-MAJOR\n"
+"                  AXIS>,<INVERSE FLATTENING>]"
+msgstr ""
+
+#. Tag: literallayout
+#: reference_measure.xml:2299 reference_measure.xml:2351
+#, no-c-format
+msgid "SPHEROID[\"GRS_1980\",6378137,298.257222101]"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2300 reference_measure.xml:2352
+#, no-c-format
+msgid "Will return 0 for anything that is not a MULTILINESTRING or LINESTRING"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2309
+#, no-c-format
+msgid ""
+"SELECT ST_Length_Spheroid( geometry_column,\n"
+"                          'SPHEROID[\"GRS_1980\",6378137,298.257222101]' )\n"
+"                          FROM geometry_table;\n"
+"\n"
+"SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
+"        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646\n"
+"\n"
+" --3D\n"
+"SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
+"        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"\n"
+"         tot_len      |    len_line1    |    len_line2\n"
+"------------------+-----------------+------------------\n"
+" 85204.5259107402 | 13986.876097711 | 71217.6498130292"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2316
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_3DLength_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2322
+#, no-c-format
+msgid "ST_Length2D_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2324
+#, no-c-format
+msgid ""
+"Calculates the 2D length of a linestring/multilinestring on an ellipsoid. "
+"This is useful if the coordinates of the geometry are in longitude/latitude "
+"and a length is desired without reprojection."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2331
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length2D_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2342
+#, no-c-format
+msgid ""
+"Calculates the 2D length of a geometry on an ellipsoid. This is useful if "
+"the coordinates of the geometry are in longitude/latitude and a length is "
+"desired without reprojection. The ellipsoid is a separate database type and "
+"can be constructed as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2353
+#, no-c-format
+msgid ""
+"This is much like <xref linkend=\"ST_Length_Spheroid\"/> and <xref linkend="
+"\"ST_3DLength_Spheroid\"/> except it will throw away the Z coordinate in "
+"calculations."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2361
+#, no-c-format
+msgid ""
+"SELECT ST_Length2D_Spheroid( geometry_column,\n"
+"                          'SPHEROID[\"GRS_1980\",6378137,298.257222101]' )\n"
+"                          FROM geometry_table;\n"
+"\n"
+"SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
+"        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646\n"
+"\n"
+" --3D Observe same answer\n"
+"SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
+"        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2368
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length_Spheroid\"/>, <xref linkend="
+"\"ST_3DLength_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2374
+#, no-c-format
+msgid "ST_3DLength_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2376
+#, no-c-format
+msgid ""
+"<refpurpose>Calculates the length of a geometry on an ellipsoid, taking the "
+"elevation into account. This is just an alias for ST_Length_Spheroid.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2382
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DLength_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2393
+#, no-c-format
+msgid ""
+"<para>Calculates the length of a geometry on an ellipsoid, taking the "
+"elevation into account. This is just an alias for ST_Length_Spheroid.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2397
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this used to return 0 for anything that is "
+"not a MULTILINESTRING or LINESTRING and in 2.0.0 on returns the perimeter of "
+"if given a polgon."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2398
+#, no-c-format
+msgid "This function is just an alias for ST_Length_Spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2400
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this used to be called ST_Length3d_Spheroid"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2407
+#, no-c-format
+msgid "See ST_Length_Spheroid"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2414
+#, no-c-format
+msgid ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_Length_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2420
+#, no-c-format
+msgid "ST_LongestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2422
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional longest line points of two geometries. The "
+"function will only return the first longest line if more than one, that the "
+"function finds. The line returned will always start in g1 and end in g2. The "
+"length of the line this function returns will always be the same as "
+"st_maxdistance returns for g1 and g2."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2430
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2445
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional longest line between the points of two geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2463
+#, no-c-format
+msgid "Longest line between point and line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2466
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine('POINT(100 100)'::geometry, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry)\n"
+"        ) As lline;\n"
+"\n"
+"        \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(100 100,98 190)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2474
+#, no-c-format
+msgid "longest line between polygon and polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2477
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine(\n"
+"                ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ) \n"
+"        ) As llinewkt;\n"
+"                \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(20 40,121.111404660392 186.629392246051)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2493
+#, no-c-format
+msgid ""
+"longest straight distance to travel from one part of an elegant city to the "
+"other Note the max distance = to the length of the line."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2497
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LongestLine(c.the_geom, c.the_geom)) As llinewkt, \n"
+"        ST_MaxDistance(c.the_geom,c.the_geom) As max_dist, \n"
+"        ST_Length(ST_LongestLine(c.the_geom, c.the_geom)) As lenll \n"
+"FROM (SELECT ST_BuildArea(ST_Collect(the_geom)) As the_geom\n"
+"        FROM (SELECT ST_Translate(ST_SnapToGrid(ST_Buffer(ST_Point(50 ,"
+"generate_series(50,190, 50) \n"
+"                        ),40, 'quad_segs=2'),1), x, 0)  As the_geom \n"
+"                        FROM generate_series(1,100,50) As x)  AS foo\n"
+") As c;\n"
+"                \n"
+"          llinewkt          |     max_dist     |      lenll\n"
+"---------------------------+------------------+------------------\n"
+" LINESTRING(23 22,129 178) | 188.605408193933 | 188.605408193933"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2508
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_LongestLine\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2514
+#, no-c-format
+msgid "ST_OrderingEquals"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2516
+#, no-c-format
+msgid ""
+"Returns true if the given geometries represent the same geometry and points "
+"are in the same directional order."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2522
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_OrderingEquals</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2533
+#, no-c-format
+msgid ""
+"ST_OrderingEquals compares two geometries and returns t (TRUE) if the "
+"geometries are equal and the coordinates are in the same order; otherwise it "
+"returns f (FALSE)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2538
+#, no-c-format
+msgid ""
+"This function is implemented as per the ArcSDE SQL specification rather than "
+"SQL-MM. http://edndoc.esri.com/arcsde/9.1/sql_api/sqlapi3."
+"htm#ST_OrderingEquals"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2542
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.43"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2548
+#, no-c-format
+msgid ""
+"SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 0 0, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_OrderingEquals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 "
+"10)')),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 0 0, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2552
+#, no-c-format
+msgid ", <xref linkend=\"ST_Reverse\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2558
+#, no-c-format
+msgid "ST_Overlaps"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2560
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries share space, are of the same dimension, but "
+"are not completely contained by each other."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2565
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2576
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries \"spatially overlap\". By that we mean they "
+"intersect, but one does not completely contain another."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2581 reference_measure.xml:2914
+#: reference_measure.xml:2928
+#, no-c-format
+msgid "Do not call with a GeometryCollection as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2583
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Overlaps."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2591 reference_measure.xml:2934
+#: reference_measure.xml:3139
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2592
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.32"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2608
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2632
+#, no-c-format
+msgid ""
+"--a point on a line is contained by the line and is of a lower dimension, "
+"and therefore does not overlap the line\n"
+"                        nor crosses\n"
+"\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b,\n"
+"        ST_Crosses(a,b) As a_crosses_b,\n"
+"                ST_Intersects(a, b) As a_intersects_b, ST_Contains(b,a) As "
+"b_contains_a\n"
+"FROM (SELECT ST_GeomFromText('POINT(1 0.5)') As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"        As foo\n"
+"\n"
+"a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a\n"
+"------------+-------------+----------------+--------------\n"
+"f           | f           | t              | t\n"
+"\n"
+"--a line that is partly contained by circle, but not fully is defined as "
+"intersecting and crossing,\n"
+"-- but since of different dimension it does not overlap\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b,\n"
+"        ST_Intersects(a, b) As a_intersects_b,\n"
+"        ST_Contains(a,b) As a_contains_b\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"        As foo;\n"
+"\n"
+" a_overlap_b | a_crosses_b | a_intersects_b | a_contains_b\n"
+"-------------+-------------+----------------+--------------\n"
+" f           | t           | t              | f\n"
+"\n"
+" -- a 2-dimensional bent hot dog (aka buffered line string) that intersects "
+"a circle,\n"
+" --        but is not fully contained by the circle is defined as "
+"overlapping since they are of the same dimension,\n"
+"--        but it does not cross, because the intersection of the 2 is of the "
+"same dimension\n"
+"--        as the maximum dimension of the 2\n"
+"\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b, "
+"ST_Intersects(a, b) As a_intersects_b,\n"
+"ST_Contains(b,a) As b_contains_a,\n"
+"ST_Dimension(a) As dim_a, ST_Dimension(b) as dim_b, "
+"ST_Dimension(ST_Intersection(a,b)) As dima_intersection_b\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a,\n"
+"        ST_Buffer(ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)'),0.5)  As b)\n"
+"        As foo;\n"
+"\n"
+" a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a | dim_a | dim_b | "
+"dima_intersection_b\n"
+"-------------+-------------+----------------+--------------+-------+-------"
+"+---------------------\n"
+" t           | f           | t              | f            |     2 |     2 "
+"|              2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2640
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Crosses\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Intersects\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2645
+#, no-c-format
+msgid "ST_Perimeter"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2647
+#, no-c-format
+msgid ""
+"Return the length measurement of the boundary of an ST_Surface or "
+"ST_MultiSurface geometry or geography. (Polygon, Multipolygon). geometry "
+"measurement is in units of spatial reference and geography is in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2651
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Perimeter</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Perimeter</"
+"function></funcdef> <paramdef><type>geography </type><parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2667
+#, no-c-format
+msgid ""
+"Returns the 2D perimeter of the geometry/geography if it is a ST_Surface, "
+"ST_MultiSurface (Polygon, Multipolygon). 0 is returned for non-areal "
+"geometries. For linestrings use ST_Length. Measurements for geometry are in "
+"the units of the spatial reference system of the geometry. Measurements for "
+"geography are in meters. If <varname>use_spheroid</varname> is set to false, "
+"then will model earth as a sphere instead of a spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2672
+#, no-c-format
+msgid ""
+"Currently this is an alias for ST_Perimeter2D, but this may change to "
+"support higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2675
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.3, 9.5.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2676
+#, no-c-format
+msgid "Availability 2.0.0: Support for geography was introduced"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2680
+#, no-c-format
+msgid "Examples: Geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2681
+#, no-c-format
+msgid ""
+"Return perimeter in feet for polygon and multipolygon. Note this is in feet "
+"because 2249 is Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2683
+#, no-c-format
+msgid ""
+"SELECT ST_Perimeter(ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,\n"
+"743265.625 2967416,743238 2967416))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 122.630744000095\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((763104.471273676 "
+"2949418.44119003,\n"
+"763104.477769673 2949418.42538203,\n"
+"763104.189609677 2949418.22343004,763104.471273676 2949418.44119003)),\n"
+"((763104.471273676 2949418.44119003,763095.804579742 2949436.33850239,\n"
+"763086.132105649 2949451.46730207,763078.452329651 2949462.11549407,\n"
+"763075.354136904 2949466.17407812,763064.362142565 2949477.64291974,\n"
+"763059.953961626 2949481.28983009,762994.637609571 2949532.04103014,\n"
+"762990.568508415 2949535.06640477,762986.710889563 2949539.61421415,\n"
+"763117.237897679 2949709.50493431,763235.236617789 2949617.95619822,\n"
+"763287.718121842 2949562.20592617,763111.553321674 2949423.91664605,\n"
+"763104.471273676 2949418.44119003)))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 845.227713366825\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2686
+#, no-c-format
+msgid "Examples: Geography"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2687
+#, no-c-format
+msgid ""
+"Return perimeter in meters and feet for polygon and multipolygon. Note this "
+"is geography (WGS 84 long lat)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2688
+#, no-c-format
+msgid ""
+"SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog)/0.3048 As "
+"per_ft \n"
+"FROM ST_GeogFromText('POLYGON((-71.1776848522251 "
+"42.3902896512902,-71.1776843766326 42.3903829478009,\n"
+"-71.1775844305465 42.3903826677917,-71.1775825927231 "
+"42.3902893647987,-71.1776848522251 42.3902896512902))') As geog;\n"
+"\n"
+"   per_meters    |      per_ft\n"
+"-----------------+------------------\n"
+"37.3790462565251 | 122.634666195949\n"
+"\n"
+"\n"
+"-- Multipolygon example --\n"
+"SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog,false) As "
+"per_sphere_meters,  ST_Perimeter(geog)/0.3048 As per_ft \n"
+"FROM ST_GeogFromText('MULTIPOLYGON(((-71.1044543107478 "
+"42.340674480411,-71.1044542869917 42.3406744369506,\n"
+"-71.1044553562977 42.340673886454,-71.1044543107478 42.340674480411)),\n"
+"((-71.1044543107478 42.340674480411,-71.1044860600303 "
+"42.3407237015564,-71.1045215770124 42.3407653385914,\n"
+"-71.1045498002983 42.3407946553165,-71.1045611902745 "
+"42.3408058316308,-71.1046016507427 42.340837442371,\n"
+"-71.104617893173 42.3408475056957,-71.1048586153981 "
+"42.3409875993595,-71.1048736143677 42.3409959528211,\n"
+"-71.1048878050242 42.3410084812078,-71.1044020965803 42.3414730072048,\n"
+"-71.1039672113619 42.3412202916693,-71.1037740497748 42.3410666421308,\n"
+"-71.1044280218456 42.3406894151355,-71.1044543107478 42.340674480411)))') As "
+"geog;\n"
+"\n"
+"    per_meters    | per_sphere_meters |      per_ft\n"
+"------------------+-------------------+------------------\n"
+" 257.634283683311 |  257.412311446337 | 845.256836231335"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2692
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_Length\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2698
+#, no-c-format
+msgid "ST_Perimeter2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2700
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon. This is currently an alias for ST_Perimeter."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2706
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Perimeter2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2716
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2721
+#, no-c-format
+msgid ""
+"This is currently an alias for ST_Perimeter. In future versions ST_Perimeter "
+"may return the highest dimension perimeter for a geometry. This is still "
+"under consideration"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2735
+#, no-c-format
+msgid "ST_3DPerimeter"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2737
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2743
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DPerimeter</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2753
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon. If the geometry is 2-dimensional, then the 2-dimensional "
+"perimeter is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2756
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Perimeter3D"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2762
+#, no-c-format
+msgid ""
+"Perimeter of a slightly elevated polygon in the air in Massachusetts state "
+"plane feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2763
+#, no-c-format
+msgid ""
+"SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), "
+"ST_Perimeter(the_geom) FROM\n"
+"                        (SELECT ST_GeomFromEWKT('SRID=2249;POLYGON((743238 "
+"2967416 2,743238 2967450 1,\n"
+"743265.625 2967416 1,743238 2967416 2))') As the_geom) As foo;\n"
+"\n"
+"  ST_3DPerimeter  |  st_perimeter2d  |   st_perimeter\n"
+"------------------+------------------+------------------\n"
+" 105.465793597674 | 105.432997272188 | 105.432997272188"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2770
+#, no-c-format
+msgid ", <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Perimeter2D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2776
+#, no-c-format
+msgid "ST_PointOnSurface"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2778
+#, no-c-format
+msgid "Returns a <varname>POINT</varname> guaranteed to lie on the surface."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2783
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PointOnSurface</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2795
+#, no-c-format
+msgid "Returns a <varname>POINT</varname> guaranteed to intersect a surface."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2797
+#, no-c-format
+msgid "&sfs_compliant; s3.2.14.2 // s3.2.18.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2798
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3: 8.1.5, 9.5.6. According to the specs, "
+"ST_PointOnSurface works for surface geometries (POLYGONs, MULTIPOLYGONS, "
+"CURVED POLYGONS). So PostGIS seems to be extending what the spec allows "
+"here. Most databases Oracle,DB II, ESRI SDE seem to only support this "
+"function for surfaces. SQL Server 2008 like PostGIS supports for all common "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2807
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PointOnSurface('POINT(0 5)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_PointOnSurface('LINESTRING(0 5, 0 10)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_PointOnSurface('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'::"
+"geometry));\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(2.5 2.5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, "
+"0 10 2)')));\n"
+"   st_asewkt\n"
+"----------------\n"
+" POINT(0 0 1)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2813
+#, no-c-format
+msgid ", <xref linkend=\"ST_Point_Inside_Circle\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2819
+#, no-c-format
+msgid "ST_Project"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2821
+#, no-c-format
+msgid ""
+"Returns a <varname>POINT</varname> projected from a start point using a "
+"distance in meters and bearing (azimuth) in radians."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2826
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_Project</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>distance</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>azimuth</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2842
+#, no-c-format
+msgid ""
+"Returns a <varname>POINT</varname> projected from a start point using an "
+"azimuth (bearing) measured in radians and distance measured in meters."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2843
+#, no-c-format
+msgid ""
+"Distance, azimuth and projection are all aspects of the same operation, "
+"describing (or in the case of projection, constructing) the relationship "
+"between two points on the world."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2844
+#, no-c-format
+msgid ""
+"The azimuth is sometimes called the heading or the bearing in navigation. It "
+"is measured relative to true north (azimuth zero). East is azimuth 90 "
+"(<varname>pi/2</varname>), south is azimuth 180 (<varname>pi</varname>), "
+"west is azimuth 270 (<varname>pi*1.5</varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2845
+#, no-c-format
+msgid "The distance is given in meters."
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2852
+#, no-c-format
+msgid ""
+"Example: Using degrees - projected point 100,000 meters and bearing 45 "
+"degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2854
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, "
+"radians(45.0)));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2858
+#, no-c-format
+msgid ""
+"Example: Using radians - projected point 100,000 meters and bearing pi/4 (45 "
+"degrees)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2860
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, pi()/4));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2866
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <ulink url=\"http://www.postgresql.org/"
+"docs/current/interactive/functions-math.html\">PostgreSQL Math Functions</"
+"ulink>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2872
+#, no-c-format
+msgid "ST_Relate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2874
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is spatially related to anotherGeometry, by "
+"testing for intersections between the Interior, Boundary and Exterior of the "
+"two geometries as specified by the values in the intersectionMatrixPattern. "
+"If no intersectionMatrixPattern is passed in, then returns the maximum "
+"intersectionMatrixPattern that relates the 2 geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2882
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Relate</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>intersectionMatrixPattern</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_Relate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geomB</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>text <function>ST_Relate</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>BoundaryNodeRule</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2908
+#, no-c-format
+msgid ""
+"Version 1: Takes geomA, geomB, intersectionMatrix and Returns 1 (TRUE) if "
+"this Geometry is spatially related to anotherGeometry, by testing for "
+"intersections between the Interior, Boundary and Exterior of the two "
+"geometries as specified by the values in the <ulink url=\"http://en."
+"wikipedia.org/wiki/DE-9IM\">DE-9IM matrix pattern</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2913
+#, no-c-format
+msgid ""
+"This is especially useful for testing compound checks of intersection, "
+"crosses, etc in one step."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2916
+#, no-c-format
+msgid ""
+"This is the \"allowable\" version that returns a boolean, not an integer. "
+"This is defined in OGC spec"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2919
+#, no-c-format
+msgid ""
+"This DOES NOT automagically include an index call. The reason for that is "
+"some relationships are anti e.g. Disjoint. If you are using a relationship "
+"pattern that requires intersection, then include the && index call."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2924
+#, no-c-format
+msgid ""
+"Version 2: Takes geomA and geomB and returns the <xref linkend=\"DE-9IM\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2926
+#, no-c-format
+msgid ""
+"Version 3: same as version 2 bu allows to specify a boundary node rule (1:"
+"OGC/MOD2, 2:Endpoint, 3:MultivalentEndpoint, 4:MonovalentEndpoint)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2930
+#, no-c-format
+msgid "not in OGC spec, but implied. see s2.1.13.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2935
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2936
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 - added support for specifying boundary node rule (requires "
+"GEOS >= 3.0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2943
+#, no-c-format
+msgid ""
+"--Find all compounds that intersect and not touch a poly (interior "
+"intersects)\n"
+"SELECT l.* , b.name As poly_name\n"
+"        FROM polys As b\n"
+"INNER JOIN compounds As l\n"
+"ON (p.the_geom && b.the_geom\n"
+"AND ST_Relate(l.the_geom, b.the_geom,'T********'));\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2));\n"
+"st_relate\n"
+"-----------\n"
+"0FFFFF212\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('LINESTRING(1 2, 3 4)'), "
+"ST_GeometryFromText('LINESTRING(5 6, 7 8)'));\n"
+"st_relate\n"
+"-----------\n"
+"FF1FF0102\n"
+"\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '0FFFFF212');\n"
+"st_relate\n"
+"-----------\n"
+"t\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '*FF*FF212');\n"
+"st_relate\n"
+"-----------\n"
+"t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2950
+#, no-c-format
+msgid ""
+", <xref linkend=\"DE-9IM\"/>, <xref linkend=\"ST_Disjoint\"/>, <xref linkend="
+"\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2956
+#, no-c-format
+msgid "ST_RelateMatch"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2958
+#, no-c-format
+msgid ""
+"Returns true if intersectionMattrixPattern1 implies "
+"intersectionMatrixPattern2"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2963
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_RelateMatch</function></funcdef> "
+"<paramdef><type>text </type> <parameter>intersectionMatrix</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>intersectionMatrixPattern</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2974
+#, no-c-format
+msgid ""
+"Takes intersectionMatrix and intersectionMatrixPattern and Returns true if "
+"the intersectionMatrix satisfies the intersectionMatrixPattern. For more "
+"information refer to <xref linkend=\"DE-9IM\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2977
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2983
+#, no-c-format
+msgid ""
+"SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ;\n"
+"-- result --\n"
+"t\n"
+"--example of common intersection matrix patterns and example matrices\n"
+"-- comparing relationships of involving one invalid geometry and ( a line "
+"and polygon that intersect at interior and boundary)\n"
+"SELECT mat.name, pat.name, ST_RelateMatch(mat.val, pat.val) As satisfied\n"
+"    FROM \n"
+"        ( VALUES ('Equality', 'T1FF1FFF1'),\n"
+"                ('Overlaps', 'T*T***T**'),\n"
+"                ('Within', 'T*F**F***'),\n"
+"                ('Disjoint', 'FF*FF****') As pat(name,val)\n"
+"        CROSS JOIN \n"
+"            (        VALUES ('Self intersections (invalid)', '111111111'),\n"
+"                    ('IE2_BI1_BB0_BE1_EI1_EE2', 'FF2101102'),\n"
+"                    ('IB1_IE1_BB0_BE0_EI2_EI1_EE2', 'F11F00212')\n"
+"            ) As mat(name,val);"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2989
+#, no-c-format
+msgid ", <xref linkend=\"ST_Relate\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2995
+#, no-c-format
+msgid "ST_ShortestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2997
+#, no-c-format
+msgid "Returns the 2-dimensional shortest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3002
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ShortestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3017
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional shortest line between two geometries. The function "
+"will only return the first shortest line if more than one, that the function "
+"finds. If g1 and g2 intersects in just one point the function will return a "
+"line with both start and end in that intersection-point. If g1 and g2 are "
+"intersecting with more than one point the function will return a line with "
+"start and end in the same point but it can be any of the intersecting "
+"points. The line returned will always start in g1 and end in g2. The length "
+"of the line this function returns will always be the same as st_distance "
+"returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3041
+#, no-c-format
+msgid "Shortest line between point and linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3044
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_ShortestLine('POINT(100 100)'::geometry, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry)\n"
+"        ) As sline;\n"
+"\n"
+"        \n"
+"   sline\n"
+"-----------------\n"
+"LINESTRING(100 100,73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3052
+#, no-c-format
+msgid "shortest line between polygon and polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3055
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"                ST_ShortestLine(\n"
+"                        ST_GeomFromText('POLYGON((175 150, 20 40, 50 60, 125 "
+"100, 175 150))'),\n"
+"                        ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                        ) \n"
+"                ) As slinewkt;\n"
+"                \n"
+" LINESTRING(140.752120669087 125.695053378061,121.111404660392 "
+"153.370607753949)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3067
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
+"linkend=\"ST_MaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:3073
+#, no-c-format
+msgid "ST_Touches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:3075
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the geometries have at least one point in "
+"common, but their interiors do not intersect."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3081
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Touches</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3096
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the only points in common between "
+"<parameter>g1</parameter> and <parameter>g2</parameter> lie in the union of "
+"the boundaries of <parameter>g1</parameter> and <parameter>g2</parameter>. "
+"The <function>ST_Touches</function> relation applies to all Area/Area, Line/"
+"Line, Line/Area, Point/Area and Point/Line pairs of relationships, but "
+"<emphasis>not</emphasis> to the Point/Point pair."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3103
+#, no-c-format
+msgid "In mathematical terms, this predicate is expressed as:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3113
+#, no-c-format
+msgid "The allowable DE-9IM Intersection Matrices for the two geometries are:"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3117
+#, no-c-format
+msgid "FT*******"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3121
+#, no-c-format
+msgid "F**T*****"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3125
+#, no-c-format
+msgid "F***T****"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3134
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"using an index, use <function>_ST_Touches</function> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3140
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.28"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3146
+#, no-c-format
+msgid ""
+"The <function>ST_Touches</function> predicate returns <varname>TRUE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3216
+#, no-c-format
+msgid ""
+"SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(1 1)'::"
+"geometry);\n"
+" st_touches\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(0 2)'::"
+"geometry);\n"
+" st_touches\n"
+"------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:3222
+#, no-c-format
+msgid "ST_Within"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:3224
+#, no-c-format
+msgid "Returns true if the geometry A is completely inside geometry B"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3229
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Within</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3244
+#, no-c-format
+msgid ""
+"Returns TRUE if geometry A is completely inside geometry B. For this "
+"function to make sense, the source geometries must both be of the same "
+"coordinate projection, having the same SRID. It is a given that if "
+"ST_Within(A,B) is true and ST_Within(B,A) is true, then the two geometries "
+"are considered spatially equal."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3259
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Within."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3267
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - a.Relate(b, 'T*F**F***')"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3270
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.30"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3275
+#, no-c-format
+msgid ""
+"--a circle within a circle\n"
+"SELECT ST_Within(smallc,smallc) As smallinsmall,\n"
+"        ST_Within(smallc, bigc) As smallinbig,\n"
+"        ST_Within(bigc,smallc) As biginsmall,\n"
+"        ST_Within(ST_Union(smallc, bigc), bigc) as unioninbig,\n"
+"        ST_Within(bigc, ST_Union(smallc, bigc)) as biginunion,\n"
+"        ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion\n"
+"FROM\n"
+"(\n"
+"SELECT ST_Buffer(ST_GeomFromText('POINT(50 50)'), 20) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(50 50)'), 40) As bigc) As foo;\n"
+"--Result\n"
+" smallinsmall | smallinbig | biginsmall | unioninbig | biginunion | "
+"bigisunion\n"
+"--------------+------------+------------+------------+------------"
+"+------------\n"
+" t            | t          | f          | t          | t          | t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3286
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>, <xref linkend=\"ST_IsValid\"/>"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_misc.xml.po b/doc/po/ko_KR/reference_misc.xml.po
new file mode 100644
index 0000000..860a506
--- /dev/null
+++ b/doc/po/ko_KR/reference_misc.xml.po
@@ -0,0 +1,866 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:09+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_misc.xml:3
+#, no-c-format
+msgid "Miscellaneous Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:7
+#, no-c-format
+msgid "ST_Accum"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:9
+#, no-c-format
+msgid "<refpurpose>Aggregate. Constructs an array of geometries.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry[] <function>ST_Accum</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:22 reference_misc.xml:64 reference_misc.xml:106
+#: reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:285
+#: reference_misc.xml:339 reference_misc.xml:392 reference_misc.xml:434
+#: reference_misc.xml:486
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:24
+#, no-c-format
+msgid "<para>Aggregate. Constructs an array of geometries.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:25 reference_misc.xml:68 reference_misc.xml:109
+#: reference_misc.xml:251 reference_misc.xml:305 reference_misc.xml:351
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:353
+#: reference_misc.xml:444
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:27 reference_misc.xml:69 reference_misc.xml:110
+#: reference_misc.xml:183 reference_misc.xml:354 reference_misc.xml:445
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:28 reference_misc.xml:70 reference_misc.xml:111
+#: reference_misc.xml:252 reference_misc.xml:306 reference_misc.xml:355
+#: reference_misc.xml:446
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:29 reference_misc.xml:71 reference_misc.xml:112
+#: reference_misc.xml:253 reference_misc.xml:307 reference_misc.xml:356
+#: reference_misc.xml:447
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:34 reference_misc.xml:76 reference_misc.xml:118
+#: reference_misc.xml:188 reference_misc.xml:258 reference_misc.xml:312
+#: reference_misc.xml:360 reference_misc.xml:404 reference_misc.xml:453
+#: reference_misc.xml:497
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:36
+#, no-c-format
+msgid ""
+"SELECT (ST_Accum(the_geom)) As all_em, ST_AsText((ST_Accum(the_geom))[1]) As "
+"grabone,\n"
+"(ST_Accum(the_geom))[2:4] as grab_rest\n"
+"                        FROM (SELECT ST_MakePoint(a*CAST(random()*10 As "
+"integer), a*CAST(random()*10 As integer), a*CAST(random()*10 As integer)) As "
+"the_geom\n"
+"                                FROM generate_series(1,4) a) As foo;\n"
+"\n"
+"all_em|grabone   | grab_rest\n"
+"\n"
+"-------------------------------------------------------------------------------"
+"+\n"
+"\n"
+" {0101000080000000000000144000000000000024400000000000001040:\n"
+" 0101000080000000000\n"
+"00018400000000000002C400000000000003040:\n"
+"0101000080000000000000354000000000000038400000000000001840:\n"
+"010100008000000000000040400000000000003C400000000000003040} |\n"
+" POINT(5 10) | {010100008000000000000018400000000000002C400000000000003040:\n"
+" 0101000080000000000000354000000000000038400000000000001840:\n"
+" 010100008000000000000040400000000000003C400000000000003040}\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:41 reference_misc.xml:83 reference_misc.xml:125
+#: reference_misc.xml:195 reference_misc.xml:264 reference_misc.xml:318
+#: reference_misc.xml:365 reference_misc.xml:411 reference_misc.xml:460
+#: reference_misc.xml:504
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:49
+#, no-c-format
+msgid "Box2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:51
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a BOX2D representing the maximum extents of the geometry."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:56
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>Box2D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:66
+#, no-c-format
+msgid ""
+"<para>Returns a BOX2D representing the maximum extents of the geometry.</"
+"para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:78
+#, no-c-format
+msgid ""
+"SELECT Box2D(ST_GeomFromText('LINESTRING(1 2, 3 4, 5 6)'));\n"
+"        box2d\n"
+"        ---------\n"
+"        BOX(1 2,5 6)\n"
+"\n"
+"        SELECT Box2D(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"150505,220227 150406)'));\n"
+"        box2d\n"
+"        --------\n"
+"        BOX(220186.984375 150406,220288.25 150506.140625)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:85
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:91
+#, no-c-format
+msgid "Box3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:93
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a BOX3D representing the maximum extents of the geometry."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:98
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:108
+#, no-c-format
+msgid ""
+"<para>Returns a BOX3D representing the maximum extents of the geometry.</"
+"para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:120
+#, no-c-format
+msgid ""
+"SELECT Box3D(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 5, 5 6 5)'));\n"
+"        Box3d\n"
+"        ---------\n"
+"        BOX3D(1 2 3,5 6 5)\n"
+"\n"
+"        SELECT Box3D(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 "
+"150505 1,220227 150406 1)'));\n"
+"        Box3d\n"
+"        --------\n"
+"        BOX3D(220227 150406 1,220268 150415 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:127
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:133
+#, no-c-format
+msgid "ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:135
+#, no-c-format
+msgid ""
+"<refpurpose>Return the 'estimated' extent of the given spatial table. The "
+"estimated is taken from the geometry column's statistics. The current schema "
+"will be used if not specified.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_misc.xml:141
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>box2d <function>ST_EstimatedExtent</function></"
+"funcdef> <paramdef><type>text </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>geocolumn_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_EstimatedExtent</function></funcdef> <paramdef><type>text </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>geocolumn_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:160
+#, no-c-format
+msgid ""
+"<para>Return the 'estimated' extent of the given spatial table. The "
+"estimated is taken from the geometry column's statistics. The current schema "
+"will be used if not specified.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:164
+#, no-c-format
+msgid ""
+"For PostgreSQL>=8.0.0 statistics are gathered by VACUUM ANALYZE and "
+"resulting extent will be about 95% of the real one."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:169
+#, no-c-format
+msgid ""
+"In absence of statistics (empty table or no ANALYZE called) this function "
+"returns NULL. Prior to version 1.5.4 an exception was thrown instead."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:177
+#, no-c-format
+msgid ""
+"For PostgreSQL<8.0.0 statistics are gathered by update_geometry_stats() "
+"and resulting extent will be exact."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:180
+#, no-c-format
+msgid "Availability: 1.0.0"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:181
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Estimated_Extent."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:190
+#, no-c-format
+msgid ""
+"SELECT ST_EstimatedExtent('ny', 'edges', 'the_geom');\n"
+"--result--\n"
+"BOX(-8877653 4912316,-8010225.5 5589284)\n"
+"\n"
+"SELECT ST_EstimatedExtent('feature_poly', 'the_geom');\n"
+"--result--\n"
+"BOX(-124.659652709961 24.6830825805664,-67.7798080444336 49.0012092590332)"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:202
+#, no-c-format
+msgid "ST_Expand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:203
+#, no-c-format
+msgid ""
+"Returns bounding box expanded in all directions from the bounding box of the "
+"input geometry. Uses double-precision"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_misc.xml:207
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Expand</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_Expand</function></funcdef> <paramdef><type>box2d </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>units_to_expand</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>box3d <function>ST_Expand</function></funcdef> "
+"<paramdef><type>box3d </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:231
+#, no-c-format
+msgid ""
+"This function returns a bounding box expanded in all directions from the "
+"bounding box of the input geometry, by an amount specified in the second "
+"argument. Uses double-precision. Very useful for distance() queries, or "
+"bounding box queries to add an index filter to the query."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:235
+#, no-c-format
+msgid ""
+"There are 3 variants of this. The one that takes a geometry will return a "
+"POLYGON geometry representation of the bounding box and is the most commonly "
+"used variant."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:237
+#, no-c-format
+msgid ""
+"ST_Expand is similar in concept to ST_Buffer except while buffer expands the "
+"geometry in all directions, ST_Expand expands the bounding box an x,y,z unit "
+"amount."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:239
+#, no-c-format
+msgid ""
+"Units are in the units of the spatial reference system in use denoted by the "
+"SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:242
+#, no-c-format
+msgid ""
+"Pre 1.3, ST_Expand was used in conjunction with distance to do indexable "
+"queries. Something of the form <code>the_geom && ST_Expand('POINT(10 "
+"20)', 10) AND ST_Distance(the_geom, 'POINT(10 20)') < 10</code> Post 1.2, "
+"this was replaced with the easier ST_DWithin construct."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:248
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 behavior changed to output double precision instead of "
+"float4 coordinates."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:259
+#, no-c-format
+msgid ""
+"Examples below use US National Atlas Equal Area (SRID=2163) which is a meter "
+"projection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:260
+#, no-c-format
+msgid ""
+"<!-- TODO: fix results of documentation to reflect new behavior -->\n"
+"--10 meter expanded box around bbox of a linestring\n"
+"SELECT CAST(ST_Expand(ST_GeomFromText('LINESTRING(2312980 110676,2312923 "
+"110701,2312892 110714)', 2163),10) As box2d);\n"
+"                                         st_expand\n"
+"------------------------------------\n"
+" BOX(2312882 110666,2312990 110724)\n"
+"\n"
+"--10 meter expanded 3d box of a 3d box\n"
+"SELECT ST_Expand(CAST('BOX3D(778783 2951741 1,794875 2970042.61545891 10)' "
+"As box3d),10)\n"
+"                                                          st_expand\n"
+"-----------------------------------------------------\n"
+" BOX3D(778773 2951731 -9,794885 2970052.61545891 20)\n"
+"\n"
+" --10 meter geometry astext rep of a expand box around a point geometry\n"
+" SELECT ST_AsEWKT(ST_Expand(ST_GeomFromEWKT('SRID=2163;POINT(2312980 "
+"110676)'),10));\n"
+"                                                                                        st_asewkt\n"
+"-------------------------------------------------------------------------------------------------\n"
+" SRID=2163;POLYGON((2312970 110666,2312970 110686,2312990 110686,2312990 "
+"110666,2312970 110666))"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:265
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:271
+#, no-c-format
+msgid "ST_Extent"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:272
+#, no-c-format
+msgid ""
+"an aggregate function that returns the bounding box that bounds rows of "
+"geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:277
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Extent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:287
+#, no-c-format
+msgid ""
+"ST_Extent returns a bounding box that encloses a set of geometries. The "
+"ST_Extent function is an \"aggregate\" function in the terminology of SQL. "
+"That means that it operates on lists of data, in the same way the SUM() and "
+"AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:290 reference_misc.xml:344
+#, no-c-format
+msgid ""
+"Since it returns a bounding box, the spatial Units are in the units of the "
+"spatial reference system in use denoted by the SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:291
+#, no-c-format
+msgid ""
+"ST_Extent is similar in concept to Oracle Spatial/Locator's SDO_AGGR_MBR"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:293
+#, no-c-format
+msgid ""
+"Since ST_Extent returns a bounding box, the SRID meta-data is lost. Use "
+"ST_SetSRID to force it back into a geometry with SRID meta data. The "
+"coordinates are in the units of the spatial ref of the orginal geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:298
+#, no-c-format
+msgid ""
+"ST_Extent will return boxes with only an x and y component even with (x,y,z) "
+"coordinate geometries. To maintain x,y,z use ST_3DExtent instead."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:302
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:313
+#, no-c-format
+msgid "Examples below use Massachusetts State Plane ft (SRID=2249)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:314
+#, no-c-format
+msgid ""
+"SELECT ST_Extent(the_geom) as bextent FROM sometable;\n"
+"                                         st_bextent\n"
+"------------------------------------\n"
+"BOX(739651.875 2908247.25,794875.8125 2970042.75)\n"
+"\n"
+"\n"
+"--Return extent of each category of geometries\n"
+"SELECT ST_Extent(the_geom) as bextent\n"
+"FROM sometable\n"
+"GROUP BY category ORDER BY category;\n"
+"\n"
+"                                          bextent                       "
+"|         name\n"
+"----------------------------------------------------+----------------\n"
+" BOX(778783.5625 2951741.25,794875.8125 2970042.75) | A\n"
+" BOX(751315.8125 2919164.75,765202.6875 2935417.25) | B\n"
+" BOX(739651.875 2917394.75,756688.375 2935866)      | C\n"
+"\n"
+" --Force back into a geometry\n"
+" -- and render the extended text representation of that geometry\n"
+"SELECT ST_SetSRID(ST_Extent(the_geom),2249) as bextent FROM sometable;\n"
+"\n"
+"                                bextent\n"
+"--------------------------------------------------------------------------------\n"
+" SRID=2249;POLYGON((739651.875 2908247.25,739651.875 2970042.75,794875.8125 "
+"2970042.75,\n"
+" 794875.8125 2908247.25,739651.875 2908247.25))"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:319
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DExtent\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:325
+#, no-c-format
+msgid "ST_3DExtent"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:326
+#, no-c-format
+msgid ""
+"an aggregate function that returns the box3D bounding box that bounds rows "
+"of geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:331
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>ST_3DExtent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:341
+#, no-c-format
+msgid ""
+"ST_3DExtent returns a box3d (includes Z coordinate) bounding box that "
+"encloses a set of geometries. The ST_3DExtent function is an \"aggregate\" "
+"function in the terminology of SQL. That means that it operates on lists of "
+"data, in the same way the SUM() and AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:347
+#, no-c-format
+msgid ""
+"Since ST_3DExtent returns a bounding box, the SRID meta-data is lost. Use "
+"ST_SetSRID to force it back into a geometry with SRID meta data. The "
+"coordinates are in the units of the spatial ref of the orginal geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:352
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Extent3D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:361
+#, no-c-format
+msgid ""
+"SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
+"FROM (SELECT ST_MakePoint(x,y,z) As the_geom\n"
+"        FROM generate_series(1,3) As x\n"
+"                CROSS JOIN generate_series(1,2) As y\n"
+"                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
+"          b3extent\n"
+"--------------------\n"
+" BOX3D(1 1 0,3 2 2)\n"
+"\n"
+"--Get the extent of various elevated circular strings\n"
+"SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
+"FROM (SELECT "
+"ST_Translate(ST_Force_3DZ(ST_LineToCurve(ST_Buffer(ST_MakePoint(x,"
+"y),1))),0,0,z) As the_geom\n"
+"        FROM generate_series(1,3) As x\n"
+"                CROSS JOIN generate_series(1,2) As y\n"
+"                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
+"\n"
+"        b3extent\n"
+"--------------------\n"
+" BOX3D(1 0 0,4 2 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:366
+#, no-c-format
+msgid ", <xref linkend=\"ST_Force_3DZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:373
+#, no-c-format
+msgid "Find_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:375
+#, no-c-format
+msgid ""
+"The syntax is find_srid(a_db_schema, a_table, a_column) and the function "
+"returns the integer SRID of the specified column by searching through the "
+"GEOMETRY_COLUMNS table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:382
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>Find_SRID</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>a_schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>a_geomfield_name</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:394
+#, no-c-format
+msgid ""
+"The syntax is find_srid(<db/schema>, <table>, <column>) "
+"and the function returns the integer SRID of the specified column by "
+"searching through the GEOMETRY_COLUMNS table. If the geometry column has not "
+"been properly added with the AddGeometryColumns() function, this function "
+"will not work either."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:406
+#, no-c-format
+msgid ""
+"SELECT Find_SRID('public', 'tiger_us_state_2007', 'the_geom_4269');\n"
+"find_srid\n"
+"----------\n"
+"4269"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:419
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:421
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the geometry takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:426
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:436
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the geometry takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:437
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:438
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:440
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:441
+#, no-c-format
+msgid ""
+"pg_column_size returns how much space a geometry would take in a column "
+"considering compression, so may be lower than ST_MemSize"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:448
+#, no-c-format
+msgid ""
+"Changed: 2.2.0 name changed to ST_MemSize to follow naming convention. In "
+"prior versions this function was called ST_Mem_Size, old name deprecated "
+"though still available."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:455
+#, no-c-format
+msgid ""
+"--Return how much byte space Boston takes up  in our Mass data set\n"
+"SELECT pg_size_pretty(SUM(ST_MemSize(the_geom))) as totgeomsum,\n"
+"pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE "
+"0 END)) As bossum,\n"
+"CAST(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 "
+"END)*1.00 /\n"
+"                SUM(ST_MemSize(the_geom))*100 As numeric(10,2)) As perbos\n"
+"FROM towns;\n"
+"\n"
+"totgeomsum        bossum        perbos\n"
+"----------        ------        ------\n"
+"1522 kB                30 kB        1.99\n"
+"\n"
+"\n"
+"SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"150505,220227 150406)'));\n"
+"\n"
+"---\n"
+"73\n"
+"\n"
+"--What percentage of our table is taken up by just the geometry\n"
+"SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, "
+"sum(ST_MemSize(the_geom)) As geomsize,\n"
+"sum(ST_MemSize(the_geom))*1.00/pg_total_relation_size('public."
+"neighborhoods')*100 As pergeom\n"
+"FROM neighborhoods;\n"
+"fulltable_size geomsize  pergeom\n"
+"------------------------------------------------\n"
+"262144         96238         36.71188354492187500000"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:468
+#, no-c-format
+msgid "ST_Point_Inside_Circle"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:470
+#, no-c-format
+msgid ""
+"Is the point geometry insert circle defined by center_x, center_y, radius"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:475
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Point_Inside_Circle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_x</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_y</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:488
+#, no-c-format
+msgid ""
+"The syntax for this functions is point_inside_circle(<geometry>,<"
+"circle_center_x>,<circle_center_y>,<radius>). Returns the "
+"true if the geometry is a point and is inside the circle. Returns false "
+"otherwise."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:492
+#, no-c-format
+msgid "This only works for points as the name suggests"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:499
+#, no-c-format
+msgid ""
+"SELECT ST_Point_Inside_Circle(ST_Point(1,2), 0.5, 2, 3);\n"
+" st_point_inside_circle\n"
+"------------------------\n"
+" t"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_operator.xml.po b/doc/po/ko_KR/reference_operator.xml.po
new file mode 100644
index 0000000..5928e04
--- /dev/null
+++ b/doc/po/ko_KR/reference_operator.xml.po
@@ -0,0 +1,1317 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:10+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_operator.xml:3
+#, no-c-format
+msgid "Operators"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:6
+#, no-c-format
+msgid "&&"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:8
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's 2D bounding box intersects B's 2D "
+"bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_operator.xml:12
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>geography </type> <parameter>A</"
+"parameter> </paramdef> <paramdef> <type>geography </type> <parameter>B</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:50 reference_operator.xml:111
+#: reference_operator.xml:176 reference_operator.xml:234
+#: reference_operator.xml:295 reference_operator.xml:353
+#: reference_operator.xml:406 reference_operator.xml:475
+#: reference_operator.xml:546 reference_operator.xml:599
+#: reference_operator.xml:654 reference_operator.xml:712
+#: reference_operator.xml:765 reference_operator.xml:818
+#: reference_operator.xml:883 reference_operator.xml:950
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:52
+#, no-c-format
+msgid ""
+"The <varname>&&</varname> operator returns <varname>TRUE</varname> "
+"if the 2D bounding box of geometry A intersects the 2D bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:54 reference_operator.xml:115
+#: reference_operator.xml:182 reference_operator.xml:243
+#: reference_operator.xml:301 reference_operator.xml:358
+#: reference_operator.xml:411 reference_operator.xml:551
+#: reference_operator.xml:605 reference_operator.xml:660
+#: reference_operator.xml:717 reference_operator.xml:770
+#: reference_operator.xml:823
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:57
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:58
+#, no-c-format
+msgid "Availability: 1.5.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:59 reference_operator.xml:119
+#: reference_operator.xml:240 reference_operator.xml:492
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:60 reference_operator.xml:120
+#: reference_operator.xml:241 reference_operator.xml:493
+#: reference_operator.xml:827
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:64 reference_operator.xml:187
+#: reference_operator.xml:248 reference_operator.xml:306
+#: reference_operator.xml:363 reference_operator.xml:416
+#: reference_operator.xml:502 reference_operator.xml:556
+#: reference_operator.xml:611 reference_operator.xml:665
+#: reference_operator.xml:722 reference_operator.xml:775
+#: reference_operator.xml:843 reference_operator.xml:900
+#: reference_operator.xml:964
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:66
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 && tbl2.column2 AS "
+"overlaps\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (2, 'LINESTRING(0 1, 0 5)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps\n"
+"---------+---------+----------\n"
+"           1 |       3 | t\n"
+"           2 |       3 | f\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:71 reference_operator.xml:139
+#: reference_operator.xml:193 reference_operator.xml:254
+#: reference_operator.xml:312 reference_operator.xml:369
+#: reference_operator.xml:422 reference_operator.xml:508
+#: reference_operator.xml:562 reference_operator.xml:617
+#: reference_operator.xml:671 reference_operator.xml:728
+#: reference_operator.xml:781 reference_operator.xml:848
+#: reference_operator.xml:916 reference_operator.xml:968
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:73
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>, <xref "
+"linkend=\"ST_Geometry_Contain\"/>, <xref linkend=\"ST_Geometry_Contained\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:85
+#, no-c-format
+msgid "&&&"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:87
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's 3D bounding box intersects B's 3D "
+"bounding box."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:92
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&&&</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:113
+#, no-c-format
+msgid ""
+"The <varname>&&&</varname> operator returns <varname>TRUE</"
+"varname> if the n-D bounding box of geometry A intersects the n-D bounding "
+"box of geometry B."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:118
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:121
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:122
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:126
+#, no-c-format
+msgid "Examples: 3D LineStrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:128
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3d, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING Z(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING Z(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING Z(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3d | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+msgstr ""
+
+#. Tag: title
+#: reference_operator.xml:132
+#, no-c-format
+msgid "Examples: 3M LineStrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:134
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3zm, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING M(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING M(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING M(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3zm | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:147
+#, no-c-format
+msgid "&<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:149
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is to the "
+"left of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:154
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:178
+#, no-c-format
+msgid ""
+"The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A overlaps or is to the left of the bounding "
+"box of geometry B, or more accurately, overlaps or is NOT to the right of "
+"the bounding box of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:189
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &< tbl2.column2 AS "
+"overleft\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overleft\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:195
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overbelow\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:205
+#, no-c-format
+msgid "&<|"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:207
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is below B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:212
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:236
+#, no-c-format
+msgid ""
+"The <varname>&<|</varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of geometry A overlaps or is below of the bounding box "
+"of geometry B, or more accurately, overlaps or is NOT above the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:250
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &<| tbl2.column2 AS "
+"overbelow\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overbelow\n"
+"---------+---------+-----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:256
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:266
+#, no-c-format
+msgid "&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:268
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A' bounding box overlaps or is to the "
+"right of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:273
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:297
+#, no-c-format
+msgid ""
+"The <varname>&></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A overlaps or is to the right of the bounding "
+"box of geometry B, or more accurately, overlaps or is NOT to the left of the "
+"bounding box of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:308
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &> tbl2.column2 AS "
+"overright\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overright\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | t\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:314
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:324
+#, no-c-format
+msgid "<<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:326
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly to the left "
+"of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:331
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function><<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:355
+#, no-c-format
+msgid ""
+"The <varname><<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the left of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:365
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 << tbl2.column2 AS "
+"left\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 2, 1 5)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 3)'::geometry),\n"
+"        (3, 'LINESTRING (6 0, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 2, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | left\n"
+"---------+---------+------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:371 reference_operator.xml:564
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Above\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:377
+#, no-c-format
+msgid "<<|"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:379
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly below B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:384
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function><<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:408
+#, no-c-format
+msgid ""
+"The <varname><<|</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly below the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:418
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 <<| tbl2.column2 AS "
+"below\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | below\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:424
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Above\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:430
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:432
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_operator.xml:436
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>=</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>=</function></"
+"funcdef> <paramdef> <type>geography </type> <parameter>A</parameter> </"
+"paramdef> <paramdef> <type>geography </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:477
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry/geography A is the same as the bounding box of "
+"geometry/geography B. PostgreSQL uses the =, <, and > operators "
+"defined for geometries to perform internal orderings and comparison of "
+"geometries (ie. in a GROUP BY or ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:482
+#, no-c-format
+msgid ""
+"This is cause for a lot of confusion. When you compare geometryA = geometryB "
+"it will return true even when the geometries are clearly different IF their "
+"bounding boxes are the same. To check for true equality use <xref linkend="
+"\"ST_OrderingEquals\"/> or <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:489
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:494
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 , the bounding box of geometries was changed to use double "
+"precision instead of float4 precision of prior. The side effect of this is "
+"that in particular points in prior versions that were a little different may "
+"have returned true in prior versions and false in 2.0+ since their float4 "
+"boxes would be the same but there float8 (double precision), would be "
+"different."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:504
+#, no-c-format
+msgid ""
+"SELECT 'LINESTRING(0 0, 0 1, 1 0)'::geometry = 'LINESTRING(1 1, 0 0)'::"
+"geometry;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(column1)\n"
+"FROM ( VALUES\n"
+"        ('LINESTRING(0 0, 1 1)'::geometry),\n"
+"        ('LINESTRING(1 1, 0 0)'::geometry)) AS foo;\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(0 0,1 1)\n"
+" LINESTRING(1 1,0 0)\n"
+"(2 rows)\n"
+"\n"
+"-- Note: the GROUP BY uses the \"=\" to compare for geometry equivalency.\n"
+"SELECT ST_AsText(column1)\n"
+"FROM ( VALUES\n"
+"        ('LINESTRING(0 0, 1 1)'::geometry),\n"
+"        ('LINESTRING(1 1, 0 0)'::geometry)) AS foo\n"
+"GROUP BY column1;\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(0 0,1 1)\n"
+"(1 row)\n"
+"\n"
+"-- In versions prior to 2.0, this used to return true --\n"
+" SELECT ST_GeomFromText('POINT(1707296.37 4820536.77)') =\n"
+"        ST_GeomFromText('POINT(1707296.27 4820536.87)') As pt_intersect;\n"
+"        \n"
+"--pt_intersect --\n"
+"f"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:510
+#, no-c-format
+msgid ", <xref linkend=\"ST_OrderingEquals\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:517
+#, no-c-format
+msgid ">>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:519
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly to the right "
+"of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:524
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:548
+#, no-c-format
+msgid ""
+"The <varname>>></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the right of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:558
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 >> tbl2.column2 AS "
+"right\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | right\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:570
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:572
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:577
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>@</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:601
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry A is completely contained by the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:613
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 @ tbl2.column2 AS contained\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (2 2, 4 4)'::geometry),\n"
+"        (4, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contained\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:619 reference_operator.xml:783
+#, no-c-format
+msgid ", <xref linkend=\"geometry_overlaps\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:625
+#, no-c-format
+msgid "|&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:627
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is above B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:632
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>|&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:656
+#, no-c-format
+msgid ""
+"The <varname>|&></varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of geometry A overlaps or is above the bounding box of "
+"geometry B, or more accurately, overlaps or is NOT below the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:667
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |&> tbl2.column2 AS "
+"overabove\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overabove\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:673
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:683
+#, no-c-format
+msgid "|>>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:685
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly above B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:690
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>|>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:714
+#, no-c-format
+msgid ""
+"The <varname>|>></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the right of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:724
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |>> tbl2.column2 AS "
+"above\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 4, 1 7)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 2)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | above\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:730
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:736
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:738
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box contains B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:743
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:767
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry A completely contains the bounding box of geometry "
+"B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:777
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 ~ tbl2.column2 AS contains\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (1 1, 2 2)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contains\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:789
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:791
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:796
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:820
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry/geography A is the same as the bounding box of "
+"geometry/geography B."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:826
+#, no-c-format
+msgid "Availability: 1.5.0 changed behavior"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:830
+#, no-c-format
+msgid ""
+"This operator has changed behavior in PostGIS 1.5 from testing for actual "
+"geometric equality to only checking for bounding box equality. To complicate "
+"things it also depends on if you have done a hard or soft upgrade which "
+"behavior your database has. To find out which behavior your database has you "
+"can run the query below. To check for true equality use <xref linkend="
+"\"ST_OrderingEquals\"/> or <xref linkend=\"ST_Equals\"/> and to check for "
+"bounding box equality <xref linkend=\"ST_Geometry_EQ\"/>; operator is a "
+"safer option."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:844
+#, no-c-format
+msgid ""
+"select 'LINESTRING(0 0, 1 1)'::geometry ~= 'LINESTRING(0 1, 1 0)'::geometry "
+"as equality;\n"
+" equality   |\n"
+"-----------------+\n"
+"          t    |"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:845
+#, no-c-format
+msgid ""
+"The above can be used to test if you have the new or old behavior of ~= "
+"operator."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:849
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Geometry_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:855
+#, no-c-format
+msgid "<->"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:857
+#, no-c-format
+msgid ""
+"Returns the distance between two points. For point / point checks it uses "
+"floating point accuracy (as opposed to the double precision accuracy of the "
+"underlying point geometry). For other geometry types the distance between "
+"the floating point bounding box centroids is returned. Useful for doing "
+"distance ordering and nearest neighbor limits using KNN gist functionality."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:864
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function><-></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:885
+#, no-c-format
+msgid ""
+"The <varname><-></varname> operator returns distance between two "
+"points read from the spatial index for points (float precision). For other "
+"geometries it returns the distance from centroid of bounding box of "
+"geometries. Useful for doing nearest neighbor <emphasis role=\"strong"
+"\">approximate</emphasis> distance ordering."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:888 reference_operator.xml:954
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries. It is different from other operators that use spatial indexes in "
+"that the spatial index is only used when the operator is in the ORDER BY "
+"clause."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:891
+#, no-c-format
+msgid ""
+"Index only kicks in if one of the geometries is a constant (not in a "
+"subquery/cte). e.g. 'SRID=3005;POINT(1011102 450541)'::geometry instead of a."
+"geom"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:892
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://workshops.opengeo.org/postgis-intro/knn.html"
+"\">OpenGeo workshop: Nearest-Neighbour Searching</ulink> for real live "
+"example."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:894 reference_operator.xml:959
+#, no-c-format
+msgid "Availability: 2.0.0 only available for PostgreSQL 9.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:901
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
+"geometry) as d,edabbr, vaabbr \n"
+"FROM va2005 \n"
+"ORDER BY d limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 5579.67450712005 | ALQ    | 001\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  7691.2205404848 | ALQ    | 003\n"
+" 7900.75451037313 | ALQ    | 122\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  12089.665931705 | ALQ    | 127\n"
+" 18472.5531479404 | ALQ    | 002\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:902
+#, no-c-format
+msgid "Then the KNN raw answer:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:905
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT st_distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
+"geometry) as d,edabbr, vaabbr \n"
+"FROM va2005 \n"
+"ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5579.67450712005 | ALQ    | 001\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  12089.665931705 | ALQ    | 127\n"
+"  24795.264503022 | ALQ    | 124\n"
+" 24587.6584922302 | ALQ    | 123\n"
+" 26764.2555463114 | ALQ    | 125\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:906
+#, no-c-format
+msgid ""
+"Note the misordering in the actual distances and the different entries that "
+"actually show up in the top 10."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:910
+#, no-c-format
+msgid "Finally the hybrid:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:913
+#, no-c-format
+msgid ""
+"<![CDATA[WITH index_query AS (\n"
+"  SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,"
+"edabbr, vaabbr\n"
+"          FROM va2005\n"
+"  ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry LIMIT 100) \n"
+"  SELECT * \n"
+"          FROM index_query \n"
+"  ORDER BY d limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 5579.67450712005 | ALQ    | 001\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  7691.2205404848 | ALQ    | 003\n"
+" 7900.75451037313 | ALQ    | 122\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  12089.665931705 | ALQ    | 127\n"
+" 18472.5531479404 | ALQ    | 002\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:917
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_box\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_operator.xml:923
+#, no-c-format
+msgid "<#>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_operator.xml:925
+#, no-c-format
+msgid ""
+"Returns the distance between bounding box of 2 geometries. For point / point "
+"checks it's almost the same as distance (though may be different since the "
+"bounding box is at floating point accuracy and geometries are double "
+"precision). Useful for doing distance ordering and nearest neighbor limits "
+"using KNN gist functionality."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:931
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function><#></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:952
+#, no-c-format
+msgid ""
+"The <varname><#></varname> KNN GIST operator returns distance between "
+"two floating point bounding boxes read from the spatial index if available. "
+"Useful for doing nearest neighbor <emphasis role=\"strong\">approximate</"
+"emphasis> distance ordering."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:957
+#, no-c-format
+msgid ""
+"Index only kicks in if one of the geometries is a constant e.g. ORDER BY "
+"(ST_GeomFromText('POINT(1 2)') <#> geom) instead of g1.geom <#>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:965
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT *\n"
+"FROM (\n"
+"SELECT b.tlid, b.mtfcc, \n"
+"        b.geom <#> ST_GeomFromText('LINESTRING(746149 2948672,745954 "
+"2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249) As b_dist, \n"
+"                ST_Distance(b.geom, ST_GeomFromText('LINESTRING(746149 "
+"2948672,745954 2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249)) As act_dist\n"
+"    FROM bos_roads As b \n"
+"    ORDER BY b_dist, b.tlid\n"
+"    LIMIT 100) As foo\n"
+"    ORDER BY act_dist, tlid LIMIT 10;]]>\n"
+"\n"
+"   tlid    | mtfcc |      b_dist      |     act_dist\n"
+"-----------+-------+------------------+------------------\n"
+"  85732027 | S1400 |                0 |                0\n"
+"  85732029 | S1400 |                0 |                0\n"
+"  85732031 | S1400 |                0 |                0\n"
+"  85734335 | S1400 |                0 |                0\n"
+"  85736037 | S1400 |                0 |                0\n"
+" 624683742 | S1400 |                0 | 128.528874268666\n"
+"  85719343 | S1400 | 260.839270432962 | 260.839270432962\n"
+"  85741826 | S1400 | 164.759294123275 | 260.839270432962\n"
+"  85732032 | S1400 |           277.75 | 311.830282365264\n"
+"  85735592 | S1400 |           222.25 | 311.830282365264\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:969
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_centroid"
+"\"/>"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_output.xml.po b/doc/po/ko_KR/reference_output.xml.po
new file mode 100644
index 0000000..8410de2
--- /dev/null
+++ b/doc/po/ko_KR/reference_output.xml.po
@@ -0,0 +1,2080 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 21:54+0000\n"
+"PO-Revision-Date: 2014-10-14 22:36+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis-1/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_output.xml:4
+#, no-c-format
+msgid "Geometry Outputs"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:7
+#, no-c-format
+msgid "ST_AsBinary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:8
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the geometry/geography "
+"without SRID meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:12
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsBinary</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsBinary</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type><parameter>NDR_or_XDR</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:35 reference_output.xml:109 reference_output.xml:162
+#: reference_output.xml:238 reference_output.xml:339 reference_output.xml:440
+#: reference_output.xml:496 reference_output.xml:561 reference_output.xml:604
+#: reference_output.xml:707 reference_output.xml:755 reference_output.xml:813
+#: reference_output.xml:879 reference_output.xml:944 reference_output.xml:988
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:37
+#, no-c-format
+msgid ""
+"Returns the Well-Known Binary representation of the geometry. There are 2 "
+"variants of the function. The first variant takes no endian encoding "
+"parameter and defaults to server machine endian. The second variant takes a "
+"second argument denoting the encoding - using little-endian ('NDR') or big-"
+"endian ('XDR') encoding."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:40 reference_output.xml:113
+#, no-c-format
+msgid ""
+"This is useful in binary cursors to pull data out of the database without "
+"converting it to a string representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:44
+#, no-c-format
+msgid ""
+"The WKB spec does not include the SRID. To get the WKB with SRID format use "
+"ST_AsEWKB"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:47
+#, no-c-format
+msgid ""
+"ST_AsBinary is the reverse of <xref linkend=\"ST_GeomFromWKB\"/> for "
+"geometry. Use <xref linkend=\"ST_GeomFromWKB\"/> to convert to a postgis "
+"geometry from ST_AsBinary representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:51
+#, no-c-format
+msgid ""
+"The default behavior in PostgreSQL 9.0 has been changed to output bytea in "
+"hex encoding. ST_AsBinary is the reverse of <xref linkend=\"ST_GeomFromWKB\"/"
+"> for geometry. If your GUI tools require the old behavior, then SET "
+"bytea_output='escape' in your database."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:55 reference_output.xml:121
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:56
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for higher coordinate dimensions was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:57
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for specifying endian with geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:58 reference_output.xml:279 reference_output.xml:383
+#, no-c-format
+msgid "Availability: 1.5.0 geography support was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:59
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Inputs to this function can not be unknown -- must be "
+"geometry. Constructs such as <code>ST_AsBinary('POINT(1 2)')</code> are no "
+"longer valid and you will get an <code>n st_asbinary(unknown) is not unique "
+"error</code>. Code like that needs to be changed to "
+"<code>ST_AsBinary('POINT(1 2)'::geometry);</code>. If that is not possible, "
+"then install <filename>legacy.sql</filename>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:61 reference_output.xml:771
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:62
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.37"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:63 reference_output.xml:123 reference_output.xml:177
+#: reference_output.xml:449 reference_output.xml:721 reference_output.xml:773
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:64 reference_output.xml:124 reference_output.xml:178
+#: reference_output.xml:390 reference_output.xml:664
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:65 reference_output.xml:125 reference_output.xml:179
+#: reference_output.xml:391 reference_output.xml:667
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:66 reference_output.xml:122 reference_output.xml:176
+#: reference_output.xml:281 reference_output.xml:389 reference_output.xml:448
+#: reference_output.xml:523 reference_output.xml:662
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:71 reference_output.xml:130 reference_output.xml:184
+#: reference_output.xml:285 reference_output.xml:453 reference_output.xml:527
+#: reference_output.xml:580 reference_output.xml:725 reference_output.xml:778
+#: reference_output.xml:842 reference_output.xml:896 reference_output.xml:961
+#: reference_output.xml:997
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:73
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\001\\003\\000\\000\\000\\001\\000\\000\\000\\005\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\360?\\000\\000\\000\\000\\000\\000\n"
+"\\360?\\000\\000\\000\\000\\000\\000\\360?\\000\\000\n"
+"\\000\\000\\000\\000\\360?\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:74
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\000\\000\\000\\000\\003\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\n"
+"\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:79 reference_output.xml:138 reference_output.xml:191
+#: reference_output.xml:409 reference_output.xml:531 reference_output.xml:729
+#: reference_output.xml:785 reference_output.xml:901 reference_output.xml:966
+#: reference_output.xml:1002
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:80
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsTWKB\"/>, <xref "
+"linkend=\"ST_AsText\"/>,"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:90
+#, no-c-format
+msgid "ST_AsEWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:91
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the geometry with SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:95
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:110
+#, no-c-format
+msgid ""
+"Returns the Well-Known Binary representation of the geometry with SRID "
+"metadata. There are 2 variants of the function. The first variant takes no "
+"endian encoding parameter and defaults to little endian. The second variant "
+"takes a second argument denoting the encoding - using little-endian ('NDR') "
+"or big-endian ('XDR') encoding."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:116
+#, no-c-format
+msgid ""
+"The WKB spec does not include the SRID. To get the OGC WKB format use "
+"ST_AsBinary"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:119
+#, no-c-format
+msgid ""
+"ST_AsEWKB is the reverse of ST_GeomFromEWKB. Use ST_GeomFromEWKB to convert "
+"to a postgis geometry from ST_AsEWKB representation."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:132
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                   st_asewkb\n"
+"--------------------------------\n"
+"\\001\\003\\000\\000 \\346\\020\\000\\000\\001\\000\n"
+"\\000\\000\\005\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\360?\\000\\000\\000\\000\\000\\000\\360?\n"
+"\\000\\000\\000\\000\\000\\000\\360?\\000\\000\\000\\000\\000\n"
+"\\000\\360?\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:133
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asewkb\n"
+"--------------------------------\n"
+"\\000 "
+"\\000\\000\\003\\000\\000\\020\\346\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\\n"
+"000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000?\n"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\n"
+"\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:139
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:144
+#, no-c-format
+msgid "ST_AsEWKT"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:145
+#, no-c-format
+msgid ""
+"Return the Well-Known Text (WKT) representation of the geometry with SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:149
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsEWKT</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsEWKT</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:164
+#, no-c-format
+msgid ""
+"Returns the Well-Known Text representation of the geometry prefixed with the "
+"SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:167
+#, no-c-format
+msgid ""
+"The WKT spec does not include the SRID. To get the OGC WKT format use "
+"ST_AsText"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:169 reference_output.xml:763
+#, no-c-format
+msgid ""
+"WKT format does not maintain precision so to prevent floating truncation, "
+"use ST_AsBinary or ST_AsEWKB format for transport."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:173
+#, no-c-format
+msgid ""
+"ST_AsEWKT is the reverse of <xref linkend=\"ST_GeomFromEWKT\"/>. Use <xref "
+"linkend=\"ST_GeomFromEWKT\"/> to convert to a postgis geometry from "
+"ST_AsEWKT representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:175
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Geography, Polyhedral surfaces, Triangles and "
+"TIN was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:186
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT('0103000020E61000000100000005000000000000\n"
+"                        000000000000000000000000000000000000000000000000000000\n"
+"                        F03F000000000000F03F000000000000F03F000000000000F03\n"
+"                        F000000000000000000000000000000000000000000000000'::"
+"geometry);\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"SELECT "
+"ST_AsEWKT('0108000080030000000000000060E30A4100000000785C0241000000000000F03F0000000018\n"
+"E20A4100000000485F024100000000000000400000000018\n"
+"E20A4100000000305C02410000000000000840')\n"
+"\n"
+"--st_asewkt---\n"
+"CIRCULARSTRING(220268 150415 1,220227 150505 2,220227 150406 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:192
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:201
+#, no-c-format
+msgid "ST_AsGeoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:203
+#, no-c-format
+msgid "Return the geometry as a GeoJSON element."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:207
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsGeoJSON</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:240
+#, no-c-format
+msgid ""
+"Return the geometry as a Geometry Javascript Object Notation (GeoJSON) "
+"element. (Cf <ulink url=\"http://geojson.org/geojson-spec.html\">GeoJSON "
+"specifications 1.0</ulink>). 2D and 3D Geometries are both supported. "
+"GeoJSON only support SFS 1.1 geometry type (no curve support for example)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:246
+#, no-c-format
+msgid ""
+"The gj_version parameter is the major version of the GeoJSON spec. If "
+"specified, must be 1. This represents the spec version of GeoJSON."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:248
+#, no-c-format
+msgid ""
+"The third argument may be used to reduce the maximum number of decimal "
+"places used in output (defaults to 15)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:251
+#, no-c-format
+msgid ""
+"The last 'options' argument could be used to add Bbox or Crs in GeoJSON "
+"output:"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:255
+#, no-c-format
+msgid "0: means no option (default value)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:259
+#, no-c-format
+msgid "1: GeoJSON Bbox"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:263
+#, no-c-format
+msgid "2: GeoJSON Short CRS (e.g EPSG:4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:267
+#, no-c-format
+msgid "4: GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:271
+#, no-c-format
+msgid "Version 1: ST_AsGeoJSON(geom) / precision=15 version=1 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:272
+#, no-c-format
+msgid "Version 2: ST_AsGeoJSON(geom, precision) / version=1 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:273
+#, no-c-format
+msgid "Version 3: ST_AsGeoJSON(geom, precision, options) / version=1"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:274
+#, no-c-format
+msgid "Version 4: ST_AsGeoJSON(gj_version, geom) / precision=15 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:275
+#, no-c-format
+msgid "Version 5: ST_AsGeoJSON(gj_version, geom, precision) /options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:276
+#, no-c-format
+msgid "Version 6: ST_AsGeoJSON(gj_version, geom, precision,options)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:278
+#, no-c-format
+msgid "Availability: 1.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:280
+#, no-c-format
+msgid "Changed: 2.0.0 support default args and named args."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:286
+#, no-c-format
+msgid ""
+"GeoJSON format is generally more efficient than other formats for use in "
+"ajax mapping. One popular javascript client that supports this is Open "
+"Layers. Example of its use is <ulink url=\"http://openlayers.org/dev/"
+"examples/vector-formats.html\">OpenLayers GeoJSON Example</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:291
+#, no-c-format
+msgid ""
+"SELECT ST_AsGeoJSON(the_geom) from fe_edges limit 1;\n"
+"                                           st_asgeojson\n"
+"-----------------------------------------------------------------------------------------------------------\n"
+"\n"
+"{\"type\":\"MultiLineString\",\"coordinates\":"
+"[[[-89.734634999999997,31.492072000000000],\n"
+"[-89.734955999999997,31.492237999999997]]]}\n"
+"(1 row)\n"
+"--3d point\n"
+"SELECT ST_AsGeoJSON('LINESTRING(1 2 3, 4 5 6)');\n"
+"\n"
+"st_asgeojson\n"
+"-----------------------------------------------------------------------------------------\n"
+" {\"type\":\"LineString\",\"coordinates\":[[1,2,3],[4,5,6]]}"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:296
+#, no-c-format
+msgid "ST_AsGML"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:297
+#, no-c-format
+msgid "Return the geometry as a GML version 2 or 3 element."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:301
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsGML</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>id=null</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>text <function>ST_AsGML</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>id=null</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:341
+#, no-c-format
+msgid ""
+"Return the geometry as a Geography Markup Language (GML) element. The "
+"version parameter, if specified, may be either 2 or 3. If no version "
+"parameter is specified then the default is assumed to be 2. The precision "
+"argument may be used to reduce the maximum number of decimal places "
+"(<varname>maxdecimaldigits</varname>) used in output (defaults to 15)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:346
+#, no-c-format
+msgid "GML 2 refer to 2.1.2 version, GML 3 to 3.1.1 version"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:347
+#, no-c-format
+msgid ""
+"The 'options' argument is a bitfield. It could be used to define CRS output "
+"type in GML output, and to declare data as lat/lon:"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:351
+#, no-c-format
+msgid "0: GML Short CRS (e.g EPSG:4326), default value"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:355
+#, no-c-format
+msgid "1: GML Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:359
+#, no-c-format
+msgid "2: For GML 3 only, remove srsDimension attribute from output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:363
+#, no-c-format
+msgid ""
+"4: For GML 3 only, use <LineString> rather than <Curve> tag for "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:367
+#, no-c-format
+msgid ""
+"16: Declare that datas are lat/lon (e.g srid=4326). Default is to assume "
+"that data are planars. This option is useful for GML 3.1.1 output only, "
+"related to axis order. So if you set it, it will swap the coordinates so "
+"order is lat lon instead of database lon lat."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:373
+#, no-c-format
+msgid "32: Output the box of the geometry (envelope)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:378
+#, no-c-format
+msgid ""
+"The 'namespace prefix' argument may be used to specify a custom namespace "
+"prefix or no prefix (if empty). If null or omitted 'gml' prefix is used"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:382
+#, no-c-format
+msgid "Availability: 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:384
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 prefix support was introduced. Option 4 for GML3 was "
+"introduced to allow using LineString instead of Curve tag for lines. GML3 "
+"Support for Polyhedral surfaces and TINS was introduced. Option 32 was "
+"introduced to output the box."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:385
+#, no-c-format
+msgid "Changed: 2.0.0 use default named args"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:386
+#, no-c-format
+msgid "Enhanced: 2.1.0 id support was introduced, for GML 3."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:388
+#, no-c-format
+msgid "Only version 3+ of ST_AsGML supports Polyhedral Surfaces and TINS."
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:395
+#, no-c-format
+msgid "Examples: Version 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:396
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsGML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"                st_asgml\n"
+"                --------\n"
+"                <gml:Polygon srsName=\"EPSG:4326\"><gml:outerBoundaryIs><gml:"
+"LinearRing><gml:coordinates>0,0 0,1 1,1 1,0 0,0</gml:coordinates></gml:"
+"LinearRing></gml:outerBoundaryIs></gml:Polygon>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:399
+#, no-c-format
+msgid "Examples: Version 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:400
+#, no-c-format
+msgid ""
+"-- Flip coordinates and output extended EPSG (16 | 1)--\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('POINT(5.234234233242 "
+"6.34534534534)',4326), 5, 17);\n"
+"                        st_asgml\n"
+"                        --------\n"
+"                <gml:Point srsName=\"urn:ogc:def:crs:EPSG::4326\"><gml:"
+"pos>6.34535 5.23423</gml:pos></gml:Point>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:401
+#, no-c-format
+msgid ""
+"-- Output the envelope (32) --\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('LINESTRING(1 2, 3 4, 10 "
+"20)',4326), 5, 32);\n"
+"                st_asgml\n"
+"                --------\n"
+"        <gml:Envelope srsName=\"EPSG:4326\">\n"
+"                <gml:lowerCorner>1 2</gml:lowerCorner>\n"
+"                <gml:upperCorner>10 20</gml:upperCorner>\n"
+"        </gml:Envelope>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:403
+#, no-c-format
+msgid ""
+"-- Output the envelope (32) , reverse (lat lon instead of lon lat) (16), "
+"long srs (1)= 32 | 16 | 1 = 49 --\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('LINESTRING(1 2, 3 4, 10 "
+"20)',4326), 5, 49);\n"
+"        st_asgml\n"
+"        --------\n"
+"<gml:Envelope srsName=\"urn:ogc:def:crs:EPSG::4326\">\n"
+"        <gml:lowerCorner>2 1</gml:lowerCorner>\n"
+"        <gml:upperCorner>20 10</gml:upperCorner>\n"
+"</gml:Envelope>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:405
+#, no-c-format
+msgid ""
+"-- Polyhedral Example --\n"
+"SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )'));\n"
+"        st_asgml\n"
+"        --------\n"
+"<![CDATA[ <gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 0 0 "
+"1 0 1 1 0 1 0 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 0 1 "
+"0 1 1 0 1 0 0 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 1 0 "
+"0 1 0 1 0 0 1 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">1 1 0 1 1 "
+"1 1 0 1 1 0 0 1 1 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 1 0 0 1 "
+"1 1 1 1 1 1 0 0 1 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 1 1 0 "
+"1 1 1 1 0 1 1 0 0 1</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:418
+#, no-c-format
+msgid "ST_AsHEXEWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:420
+#, no-c-format
+msgid ""
+"Returns a Geometry in HEXEWKB format (as text) using either little-endian "
+"(NDR) or big-endian (XDR) encoding."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:425
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsHEXEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>NDRorXDR</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsHEXEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:442
+#, no-c-format
+msgid ""
+"Returns a Geometry in HEXEWKB format (as text) using either little-endian "
+"(NDR) or big-endian (XDR) encoding. If no encoding is specified, then NDR is "
+"used."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:446
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:454
+#, no-c-format
+msgid ""
+"SELECT ST_AsHEXEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"                which gives same answer as\n"
+"\n"
+"                SELECT ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326)::text;\n"
+"\n"
+"                st_ashexewkb\n"
+"                --------\n"
+"                0103000020E6100000010000000500\n"
+"                00000000000000000000000000000000\n"
+"                00000000000000000000000000000000F03F\n"
+"                000000000000F03F000000000000F03F000000000000F03\n"
+"                F000000000000000000000000000000000000000000000000"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:460
+#, no-c-format
+msgid "ST_AsKML"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:462
+#, no-c-format
+msgid ""
+"Return the geometry as a KML element. Several variants. Default version=2, "
+"default precision=15"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:466
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsKML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:498
+#, no-c-format
+msgid ""
+"Return the geometry as a Keyhole Markup Language (KML) element. There are "
+"several variants of this function. maximum number of decimal places used in "
+"output (defaults to 15), version default to 2 and default namespace is no "
+"prefix."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:502
+#, no-c-format
+msgid ""
+"Version 1: ST_AsKML(geom_or_geog, maxdecimaldigits) / version=2 / "
+"maxdecimaldigits=15"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:503
+#, no-c-format
+msgid ""
+"Version 2: ST_AsKML(version, geom_or_geog, maxdecimaldigits, nprefix) "
+"maxdecimaldigits=15 / nprefix=NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:506
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with Proj support. Use <xref linkend="
+"\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:510
+#, no-c-format
+msgid ""
+"Availability: 1.2.2 - later variants that include version param came in 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:513
+#, no-c-format
+msgid "Enhanced: 2.0.0 - Add prefix namespace. Default is no prefix"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:516
+#, no-c-format
+msgid "Changed: 2.0.0 - uses default args and supports named args"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:520
+#, no-c-format
+msgid "AsKML output will not work with geometries that do not have an SRID"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:528
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsKML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"\n"
+"                st_askml\n"
+"                --------\n"
+"                <Polygon><outerBoundaryIs><LinearRing><coordinates>0,0 0,1 "
+"1,1 1,0 0,0</coordinates></LinearRing></outerBoundaryIs></Polygon>\n"
+"\n"
+"                --3d linestring\n"
+"                SELECT ST_AsKML('SRID=4326;LINESTRING(1 2 3, 4 5 6)');\n"
+"                <LineString><coordinates>1,2,3 4,5,6</coordinates></"
+"LineString>\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:533
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsGML\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:538
+#, no-c-format
+msgid "ST_AsSVG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:540
+#, no-c-format
+msgid ""
+"Returns a Geometry in SVG path data given a geometry or geography object."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:544
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:563
+#, no-c-format
+msgid ""
+"Return the geometry as Scalar Vector Graphics (SVG) path data. Use 1 as "
+"second argument to have the path data implemented in terms of relative "
+"moves, the default (or 0) uses absolute moves. Third argument may be used to "
+"reduce the maximum number of decimal digits used in output (defaults to 15). "
+"Point geometries will be rendered as cx/cy when 'rel' arg is 0, x/y when "
+"'rel' is 1. Multipoint geometries are delimited by commas (\",\"), "
+"GeometryCollection geometries are delimited by semicolons (\";\")."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:573
+#, no-c-format
+msgid ""
+"Availability: 1.2.2. Availability: 1.4.0 Changed in PostGIS 1.4.0 to include "
+"L command in absolute path to conform to <ulink url=\"http://www.w3.org/TR/"
+"SVG/paths.html#PathDataBNF\">http://www.w3.org/TR/SVG/paths."
+"html#PathDataBNF</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:576
+#, no-c-format
+msgid "Changed: 2.0.0 to use default args and support named args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:581
+#, no-c-format
+msgid ""
+"SELECT ST_AsSVG(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                st_assvg\n"
+"                --------\n"
+"                M 0 0 L 0 -1 1 -1 1 0 Z"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:587
+#, no-c-format
+msgid "ST_AsX3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:589
+#, no-c-format
+msgid ""
+"Returns a Geometry in X3D xml node element format: ISO-IEC-19776-1.2-"
+"X3DEncodings-XML"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:594
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsX3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:606
+#, no-c-format
+msgid ""
+"Returns a geometry as an X3D xml formatted node element <ulink url=\"http://"
+"www.web3d.org/standards/number/19776-1\">http://www.web3d.org/standards/"
+"number/19776-1</ulink>. If <varname>maxdecimaldigits</varname> (precision) "
+"is not specified then defaults to 15."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:608
+#, no-c-format
+msgid ""
+"There are various options for translating PostGIS geometries to X3D since "
+"X3D geometry types don't map directly to PostGIS geometry types and some "
+"newer X3D types that might be better mappings we ahve avoided since most "
+"rendering tools don't currently support them. These are the mappings we have "
+"settled on. Feel free to post a bug ticket if you have thoughts on the idea "
+"or ways we can allow people to denote their preferred mappings."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:610
+#, no-c-format
+msgid "Below is how we currently map PostGIS 2D/3D types to X3D types"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:617
+#, no-c-format
+msgid "PostGIS Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:618
+#, no-c-format
+msgid "2D X3D Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:619
+#, no-c-format
+msgid "3D X3D Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:624
+#, no-c-format
+msgid "LINESTRING"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:625 reference_output.xml:630
+#, no-c-format
+msgid "not yet implemented - will be PolyLine2D"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:626
+#, no-c-format
+msgid "LineSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:629
+#, no-c-format
+msgid "MULTILINESTRING"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:631
+#, no-c-format
+msgid "IndexedLineSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:634
+#, no-c-format
+msgid "MULTIPOINT"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:635
+#, no-c-format
+msgid "Polypoint2D"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:636
+#, no-c-format
+msgid "PointSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:639
+#, no-c-format
+msgid "POINT"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:640 reference_output.xml:641
+#, no-c-format
+msgid "outputs the space delimited coordinates"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:644
+#, no-c-format
+msgid "(MULTI) POLYGON, POLYHEDRALSURFACE"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:645
+#, no-c-format
+msgid "Invalid X3D markup"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:646
+#, no-c-format
+msgid "IndexedFaceSet (inner rings currently output as another faceset)"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:649
+#, no-c-format
+msgid "<entry>TIN</entry>"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:650
+#, no-c-format
+msgid "TriangleSet2D (Not Yet Implemented)"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:651
+#, no-c-format
+msgid "IndexedTriangleSet"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:656
+#, no-c-format
+msgid ""
+"2D geometry support not yet complete. Inner rings currently just drawn as "
+"separate polygons. We are working on these."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:657
+#, no-c-format
+msgid ""
+"Lots of advancements happening in 3D space particularly with <ulink url="
+"\"http://www.web3d.org/x3d/wiki/index.php/X3D_and_HTML5#Goals:"
+"_X3D_and_HTML5\">X3D Integration with HTML5</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:658
+#, no-c-format
+msgid ""
+"There is also a nice open source X3D viewer you can use to view rendered "
+"geometries. Free Wrl <ulink url=\"http://freewrl.sourceforge.net/\">http://"
+"freewrl.sourceforge.net/</ulink> binaries available for Mac, Linux, and "
+"Windows. Use the FreeWRL_Launcher packaged to view the geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:659
+#, no-c-format
+msgid ""
+"Also check out <ulink url=\"https://github.com/robe2/postgis_x3d_viewer"
+"\">PostGIS minimalist X3D viewer</ulink> that utilizes this function and "
+"<ulink url=\"http://www.x3dom.org/\">x3dDom html/js open source toolkit</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:660
+#, no-c-format
+msgid "Availability: 2.0.0: ISO-IEC-19776-1.2-X3DEncodings-XML"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:672
+#, no-c-format
+msgid ""
+"Example: Create a fully functional X3D document - This will generate a cube "
+"that is viewable in FreeWrl and other X3D viewers."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:673
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/"
+"specifications/x3d-3.0.dtd\">\n"
+"<X3D>\n"
+"  <Scene>\n"
+"    <Transform>\n"
+"      <Shape>\n"
+"       <Appearance>\n"
+"            <Material emissiveColor=''0 0 1''/>   \n"
+"       </Appearance> ' || \n"
+"       ST_AsX3D( ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )')) ||\n"
+"      '</Shape>\n"
+"    </Transform>\n"
+"  </Scene>\n"
+"</X3D>' As x3ddoc;]]>\n"
+"\n"
+"                x3ddoc\n"
+"                --------\n"
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/"
+"specifications/x3d-3.0.dtd\">\n"
+"<X3D>\n"
+"  <Scene>\n"
+"    <Transform>\n"
+"      <Shape>\n"
+"       <Appearance>\n"
+"            <Material emissiveColor='0 0 1'/>   \n"
+"       </Appearance> \n"
+"       <IndexedFaceSet  coordIndex='0 1 2 3 -1 4 5 6 7 -1 8 9 10 11 -1 12 13 "
+"14 15 -1 16 17 18 19 -1 20 21 22 23'>\n"
+"            <Coordinate point='0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 "
+"0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 "
+"0 1 1 0 1 1 1 1 0 1 1' />\n"
+"      </IndexedFaceSet>\n"
+"      </Shape>\n"
+"    </Transform>\n"
+"  </Scene>\n"
+"</X3D>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:676
+#, no-c-format
+msgid "Example: An Octagon elevated 3 Units and decimal precision of 6"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:677
+#, no-c-format
+msgid ""
+"SELECT ST_AsX3D(\n"
+"ST_Translate(\n"
+"    ST_Force_3d(\n"
+"        ST_Buffer(ST_Point(10,10),5, 'quad_segs=2')), 0,0,\n"
+"    3)\n"
+"  ,6) As x3dfrag;\n"
+"\n"
+"x3dfrag\n"
+"--------\n"
+"<![CDATA[<IndexedFaceSet coordIndex=\"0 1 2 3 4 5 6 7\">\n"
+"    <Coordinate point=\"15 10 3 13.535534 6.464466 3 10 5 3 6.464466 "
+"6.464466 3 5 10 3 6.464466 13.535534 3 10 15 3 13.535534 13.535534 3 \" />\n"
+"</IndexedFaceSet>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:680
+#, no-c-format
+msgid "Example: TIN"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:681
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsX3D(ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')) As x3dfrag;]]>\n"
+"\n"
+"                x3dfrag\n"
+"                --------\n"
+"<![CDATA[<IndexedTriangleSet  index='0 1 2 3 4 5'><Coordinate point='0 0 0 0 "
+"0 1 0 1 0 0 0 0 0 1 0 1 1 0'/></IndexedTriangleSet>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:684
+#, no-c-format
+msgid "Example: Closed multilinestring (the boundary of a polygon with holes)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:685
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsX3D(\n"
+"                    ST_GeomFromEWKT('MULTILINESTRING((20 0 10,16 -12 10,0 "
+"-16 10,-12 -12 10,-20 0 10,-12 16 10,0 24 10,16 16 10,20 0 10),\n"
+"  (12 0 10,8 8 10,0 12 10,-8 8 10,-8 0 10,-8 -4 10,0 -8 10,8 -4 10,12 0 "
+"10))') \n"
+") As x3dfrag;]]>\n"
+"\n"
+"                x3dfrag\n"
+"                --------\n"
+"<![CDATA[<IndexedLineSet  coordIndex='0 1 2 3 4 5 6 7 0 -1 8 9 10 11 12 13 "
+"14 15 8'>\n"
+"    <Coordinate point='20 0 10 16 -12 10 0 -16 10 -12 -12 10 -20 0 10 -12 16 "
+"10 0 24 10 16 16 10 12 0 10 8 8 10 0 12 10 -8 8 10 -8 0 10 -8 -4 10 0 -8 10 "
+"8 -4 10 ' />\n"
+" </IndexedLineSet>]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:691
+#, no-c-format
+msgid "ST_GeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:693
+#, no-c-format
+msgid "Return a GeoHash representation of the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:698
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoHash</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxchars=full_precision_of_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:709
+#, no-c-format
+msgid ""
+"Return a GeoHash representation (<ulink url=\"http://en.wikipedia.org/wiki/"
+"Geohash\">http://en.wikipedia.org/wiki/Geohash</ulink>) of the geometry. A "
+"GeoHash encodes a point into a text form that is sortable and searchable "
+"based on prefixing. A shorter GeoHash is a less precise representation of a "
+"point. It can also be thought of as a box, that contains the actual point."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:711
+#, no-c-format
+msgid ""
+"If no <varname>maxchars</varname> is specficified ST_GeoHash returns a "
+"GeoHash based on full precision of the input geometry type. Points return a "
+"GeoHash with 20 characters of precision (about enough to hold the full "
+"double precision of the input). Other types return a GeoHash with a variable "
+"amount of precision, based on the size of the feature. Larger features are "
+"represented with less precision, smaller features with more precision. The "
+"idea is that the box implied by the GeoHash will always contain the input "
+"feature."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:713
+#, no-c-format
+msgid ""
+"If <varname>maxchars</varname> is specified ST_GeoHash returns a GeoHash "
+"with at most that many characters so a possibly lower precision "
+"representation of the input geometry. For non-points, the starting point of "
+"the calculation is the center of the bounding box of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:715
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:718
+#, no-c-format
+msgid ""
+"ST_GeoHash will not work with geometries that are not in geographic (lon/"
+"lat) coordinates."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:726
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326));\n"
+"\n"
+"         st_geohash\n"
+"----------------------\n"
+" c0w3hf1s70w3hf1s70w3\n"
+"\n"
+"SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326),5);\n"
+"\n"
+" st_geohash\n"
+"------------\n"
+" c0w3h\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:737
+#, no-c-format
+msgid "ST_AsText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:738
+#, no-c-format
+msgid ""
+"Return the Well-Known Text (WKT) representation of the geometry/geography "
+"without SRID metadata."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:742
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsText</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:757
+#, no-c-format
+msgid "Returns the Well-Known Text representation of the geometry/geography."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:760
+#, no-c-format
+msgid ""
+"The WKT spec does not include the SRID. To get the SRID as part of the data, "
+"use the non-standard PostGIS <xref linkend=\"ST_AsEWKT\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:767
+#, no-c-format
+msgid ""
+"ST_AsText is the reverse of <xref linkend=\"ST_GeomFromText\"/>. Use <xref "
+"linkend=\"ST_GeomFromText\"/> to convert to a postgis geometry from "
+"ST_AsText representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:770
+#, no-c-format
+msgid "Availability: 1.5 - support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:772
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:780
+#, no-c-format
+msgid ""
+"SELECT ST_AsText('01030000000100000005000000000000000000\n"
+"000000000000000000000000000000000000000000000000\n"
+"F03F000000000000F03F000000000000F03F000000000000F03\n"
+"F000000000000000000000000000000000000000000000000');\n"
+"\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:787
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:794
+#, no-c-format
+msgid "ST_AsLatLonText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:795
+#, no-c-format
+msgid "Return the Degrees, Minutes, Seconds representation of the given point."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:799
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsLatLonText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsLatLonText</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>format</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:815
+#, no-c-format
+msgid "Returns the Degrees, Minutes, Seconds representation of the point."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:818
+#, no-c-format
+msgid ""
+"It is assumed the point is in a lat/lon projection. The X (lon) and Y (lat) "
+"coordinates are normalized in the output to the \"normal\" range (-180 to "
+"+180 for lon, -90 to +90 for lat)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:821
+#, no-c-format
+msgid ""
+"The text parameter is a format string containing the format for the "
+"resulting text, similar to a date format string. Valid tokens are \"D\" for "
+"degrees, \"M\" for minutes, \"S\" for seconds, and \"C\" for cardinal "
+"direction (NSEW). DMS tokens may be repeated to indicate desired width and "
+"precision (\"SSS.SSSS\" means \" 1.0023\")."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:826
+#, no-c-format
+msgid ""
+"\"M\", \"S\", and \"C\" are optional. If \"C\" is omitted, degrees are shown "
+"with a \"-\" sign if south or west. If \"S\" is omitted, minutes will be "
+"shown as decimal with as many digits of precision as you specify. If \"M\" "
+"is also omitted, degrees are shown as decimal with as many digits precision "
+"as you specify."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:831
+#, no-c-format
+msgid ""
+"If the format string is omitted (or zero-length) a default format will be "
+"used."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:837
+#, no-c-format
+msgid "Availability: 2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:843
+#, no-c-format
+msgid "Default format."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:844
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:845
+#, no-c-format
+msgid "Providing a format (same as the default)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:846
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"C'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:847
+#, no-c-format
+msgid "Characters other than D, M, S, C and . are just passed through."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:848
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D degrees, M "
+"minutes, S seconds to the C'));\n"
+"                                   st_aslatlontext                                    \n"
+"--------------------------------------------------------------------------------------\n"
+" 2 degrees, 19 minutes, 30 seconds to the S 3 degrees, 14 minutes, 3 seconds "
+"to the W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:849
+#, no-c-format
+msgid "Signed degrees instead of cardinal directions."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:850
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" -2°19'29.928\" -3°14'3.243\""
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:851
+#, no-c-format
+msgid "Decimal degrees."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:852
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees "
+"C'));\n"
+"          st_aslatlontext          \n"
+"-----------------------------------\n"
+" 2.3250 degrees S 3.2342 degrees W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:853
+#, no-c-format
+msgid "Excessively large values are normalized."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:854
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));\n"
+"        st_aslatlontext        \n"
+"-------------------------------\n"
+" 72°19'29.928\"S 57°45'56.757\"E"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:862
+#, no-c-format
+msgid "ST_AsTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:863
+#, no-c-format
+msgid "Returns the geometry as TWKB, Tiny WKB"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:868
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsTWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID=null</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>include "
+"sizes=false</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include bounding boxes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:880 reference_output.xml:946
+#, no-c-format
+msgid ""
+"Returns the geometry in TWKB format. TWKB is a new compressed binary format."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:881 reference_output.xml:948
+#, no-c-format
+msgid ""
+"The second parameter is an integer used to define the number of coordinate "
+"decimals in the output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:882 reference_output.xml:949
+#, no-c-format
+msgid ""
+"The third parameter is optional. It is used to give each TWKB-geometry an "
+"unique ID"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:883 reference_output.xml:950
+#, no-c-format
+msgid ""
+"The fourth parameter is optional. If it is set to true, the size of the "
+"geometry is included"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:885
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/TWKB/Specification\">https://github.com/TWKB/Specification</"
+"ulink> , and code for building a client can be found <ulink url=\"https://"
+"github.com/TWKB/twkb.js\">https://github.com/TWKB/twkb.js</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:888
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So PointM and PointZ will give "
+"the same twkb representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:891 reference_output.xml:956 reference_output.xml:993
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:897
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKB('LINESTRING(1 1,5 5)'::geometry,0,1);\n"
+"                 st_astwkb                  \n"
+"--------------------------------------------\n"
+"\\x0142020202020808"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:902 reference_output.xml:967
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_AsEWKB\"/>, <xref "
+"linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:908
+#, no-c-format
+msgid "ST_AsTWKBAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:909
+#, no-c-format
+msgid "Aggregates the geometries and returns as TWKB"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:913
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>include sizes</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include sizes</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>include bounding boxes</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:947
+#, no-c-format
+msgid ""
+"This is the aggregate version of ST_AsTWKB. It aggregates and returns the "
+"geometry in TWKB-format. In the resulting TWKB-geometry each individual ID "
+"of the input geometries is stored."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:952
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/nicklasaven/TWKB\">https://github.com/nicklasaven/TWKB</ulink> , "
+"and code for building a client can be found <ulink url=\"https://github.com/"
+"nicklasaven/twkb_web\">https://github.com/nicklasaven/twkb_web</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:962
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKBAgg(geom,0,id) FROM\n"
+"(SELECT 'LINESTRING(1 1,5 5)'::geometry geom, 1 AS id\n"
+"UNION ALL\n"
+"SELECT 'LINESTRING(6 5, 1 7)'::geometry AS geom, 2 AS id) foo;\n"
+"                               st_astwkbagg                                \n"
+"----------------------------------------------------------------------------\n"
+"\\x015602020202020808040202000904"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:973
+#, no-c-format
+msgid "ST_AsEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:974
+#, no-c-format
+msgid "Returns an Encoded Polyline from a LineString geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:979
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsEncodedPolyline</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:990
+#, no-c-format
+msgid "Returns the geometry as an Encoded Polyline."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:998
+#, no-c-format
+msgid ""
+"ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 "
+"40.7,-126.453 43.252)'));\n"
+"--result--\n"
+"|_p~iF~ps|U_ulLnnqC_mqNvxq`@"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_processing.xml.po b/doc/po/ko_KR/reference_processing.xml.po
new file mode 100644
index 0000000..852b2ca
--- /dev/null
+++ b/doc/po/ko_KR/reference_processing.xml.po
@@ -0,0 +1,3988 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:11+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_processing.xml:3
+#, no-c-format
+msgid "Geometry Processing"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:6
+#, no-c-format
+msgid "ST_Buffer"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:8
+#, no-c-format
+msgid ""
+"(T) For geometry: Returns a geometry that represents all points whose "
+"distance from this Geometry is less than or equal to distance. Calculations "
+"are in the Spatial Reference System of this Geometry. For geography: Uses a "
+"planar transform wrapper. Introduced in 1.5 support for different end cap "
+"and mitre settings to control shape. buffer_style options: quad_segs=#,"
+"endcap=round|flat|square,join=round|mitre|bevel,mitre_limit=#.#"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:16
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Buffer</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius_of_buffer</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Buffer</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>num_seg_quarter_circle</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>buffer_style_parameters</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geography <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer_in_meters</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:47 reference_processing.xml:221
+#: reference_processing.xml:300 reference_processing.xml:355
+#: reference_processing.xml:421 reference_processing.xml:570
+#: reference_processing.xml:638 reference_processing.xml:686
+#: reference_processing.xml:785 reference_processing.xml:865
+#: reference_processing.xml:923 reference_processing.xml:992
+#: reference_processing.xml:1039 reference_processing.xml:1091
+#: reference_processing.xml:1156 reference_processing.xml:1198
+#: reference_processing.xml:1257 reference_processing.xml:1304
+#: reference_processing.xml:1363 reference_processing.xml:1415
+#: reference_processing.xml:1469 reference_processing.xml:1622
+#: reference_processing.xml:1658 reference_processing.xml:1735
+#: reference_processing.xml:1785 reference_processing.xml:1830
+#: reference_processing.xml:1872 reference_processing.xml:1984
+#: reference_processing.xml:2077 reference_processing.xml:2146
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:49
+#, no-c-format
+msgid ""
+"Returns a geometry/geography that represents all points whose distance from "
+"this Geometry/geography is less than or equal to distance."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:51
+#, no-c-format
+msgid ""
+"Geometry: Calculations are in the Spatial Reference System of the geometry. "
+"Introduced in 1.5 support for different end cap and mitre settings to "
+"control shape."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:54
+#, no-c-format
+msgid ""
+"Negative radii: For polygons, a negative radius can be used, which will "
+"shrink the polygon rather than expanding it."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:55
+#, no-c-format
+msgid ""
+"Geography: For geography this is really a thin wrapper around the geometry "
+"implementation. It first determines the best SRID that fits the bounding box "
+"of the geography object (favoring UTM, Lambert Azimuthal Equal Area (LAEA) "
+"north/south pole, and falling back on mercator in worst case scenario) and "
+"then buffers in that planar spatial ref and retransforms back to WGS84 "
+"geography."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:57
+#, no-c-format
+msgid ""
+"For geography this may not behave as expected if object is sufficiently "
+"large that it falls between two UTM zones or crosses the dateline"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:59
+#, no-c-format
+msgid ""
+"Availability: 1.5 - ST_Buffer was enhanced to support different endcaps and "
+"join types. These are useful for example to convert road linestrings into "
+"polygon roads with flat or square edges instead of rounded edges. Thin "
+"wrapper for geography was added. - requires GEOS >= 3.2 to take advantage "
+"of advanced geometry functionality."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:62
+#, no-c-format
+msgid ""
+"The optional third parameter (currently only applies to geometry) can either "
+"specify number of segments used to approximate a quarter circle (integer "
+"case, defaults to 8) or a list of blank-separated key=value pairs (string "
+"case) to tweak operations as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:66 reference_processing.xml:1492
+#, no-c-format
+msgid ""
+"'quad_segs=#' : number of segments used to approximate a quarter circle "
+"(defaults to 8)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:69
+#, no-c-format
+msgid ""
+"'endcap=round|flat|square' : endcap style (defaults to \"round\", needs "
+"GEOS-3.2 or higher for a different value). 'butt' is also accepted as a "
+"synonym for 'flat'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:72
+#, no-c-format
+msgid ""
+"'join=round|mitre|bevel' : join style (defaults to \"round\", needs GEOS-3.2 "
+"or higher for a different value). 'miter' is also accepted as a synonym for "
+"'mitre'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:75
+#, no-c-format
+msgid ""
+"'mitre_limit=#.#' : mitre ratio limit (only affects mitered join style). "
+"'miter_limit' is also accepted as a synonym for 'mitre_limit'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:80
+#, no-c-format
+msgid "Units of radius are measured in units of the spatial reference system."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:81
+#, no-c-format
+msgid ""
+"The inputs can be POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
+"POLYGONS, MULTIPOLYGONS, and GeometryCollections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:82
+#, no-c-format
+msgid ""
+"This function ignores the third dimension (z) and will always give a 2-d "
+"buffer even when presented with a 3d-geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:84 reference_processing.xml:309
+#: reference_processing.xml:1509 reference_processing.xml:1839
+#: reference_processing.xml:2097
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:85 reference_processing.xml:589
+#: reference_processing.xml:796 reference_processing.xml:1116
+#: reference_processing.xml:1995 reference_processing.xml:2106
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:86
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.17"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:88
+#, no-c-format
+msgid ""
+"People often make the mistake of using this function to try to do radius "
+"searches. Creating a buffer to to a radius search is slow and pointless. Use "
+"<xref linkend=\"ST_DWithin\"/> instead."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:93 reference_processing.xml:238
+#: reference_processing.xml:317 reference_processing.xml:391
+#: reference_processing.xml:459 reference_processing.xml:595
+#: reference_processing.xml:652 reference_processing.xml:803
+#: reference_processing.xml:1007 reference_processing.xml:1120
+#: reference_processing.xml:1273 reference_processing.xml:1321
+#: reference_processing.xml:1432 reference_processing.xml:1518
+#: reference_processing.xml:1755 reference_processing.xml:1801
+#: reference_processing.xml:1845 reference_processing.xml:1888
+#: reference_processing.xml:2003 reference_processing.xml:2113
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:104
+#, no-c-format
+msgid "quad_segs=8 (default)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:107
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=8');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:115
+#, no-c-format
+msgid "quad_segs=2 (lame)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:127
+#, no-c-format
+msgid "endcap=round join=round (default)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:130
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=round join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:138
+#, no-c-format
+msgid "endcap=square"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:141
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=square join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:149
+#, no-c-format
+msgid "endcap=flat"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:152
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=flat join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:161
+#, no-c-format
+msgid "join=bevel"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:164
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=bevel');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:172
+#, no-c-format
+msgid "join=mitre mitre_limit=5.0 (default mitre limit)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:175
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=mitre mitre_limit=5.0');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:183
+#, no-c-format
+msgid "join=mitre mitre_limit=1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:186
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=mitre mitre_limit=1.0');"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:193
+#, no-c-format
+msgid ""
+"--A buffered point approximates a circle\n"
+"-- A buffered point forcing approximation of (see diagram)\n"
+"-- 2 points per circle is poly with 8 sides (see diagram)\n"
+"SELECT ST_NPoints(ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50)) As "
+"promisingcircle_pcount,\n"
+"ST_NPoints(ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50, 2)) As "
+"lamecircle_pcount;\n"
+"\n"
+"promisingcircle_pcount | lamecircle_pcount\n"
+"------------------------+-------------------\n"
+"                         33 |                9\n"
+"\n"
+"--A lighter but lamer circle\n"
+"-- only 2 points per quarter circle is an octagon\n"
+"--Below is a 100 meter octagon\n"
+"-- Note coordinates are in NAD 83 long lat which we transform\n"
+"to Mass state plane meter and then buffer to get measurements in meters;\n"
+"SELECT ST_AsText(ST_Buffer(\n"
+"ST_Transform(\n"
+"ST_SetSRID(ST_MakePoint(-71.063526, 42.35785),4269), 26986)\n"
+",100,2)) As octagon;\n"
+"----------------------\n"
+"POLYGON((236057.59057465 900908.759918696,236028.301252769 "
+"900838.049240578,235\n"
+"957.59057465 900808.759918696,235886.879896532 "
+"900838.049240578,235857.59057465\n"
+"900908.759918696,235886.879896532 900979.470596815,235957.59057465 "
+"901008.759918\n"
+"696,236028.301252769 900979.470596815,236057.59057465 900908.759918696))"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:197 reference_processing.xml:272
+#: reference_processing.xml:321 reference_processing.xml:398
+#: reference_processing.xml:548 reference_processing.xml:611
+#: reference_processing.xml:659 reference_processing.xml:760
+#: reference_processing.xml:843 reference_processing.xml:902
+#: reference_processing.xml:970 reference_processing.xml:1014
+#: reference_processing.xml:1134 reference_processing.xml:1176
+#: reference_processing.xml:1230 reference_processing.xml:1280
+#: reference_processing.xml:1334 reference_processing.xml:1387
+#: reference_processing.xml:1438 reference_processing.xml:1600
+#: reference_processing.xml:1636 reference_processing.xml:1706
+#: reference_processing.xml:1762 reference_processing.xml:1806
+#: reference_processing.xml:1850 reference_processing.xml:1959
+#: reference_processing.xml:2044 reference_processing.xml:2120
+#: reference_processing.xml:2174
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:199
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:205
+#, no-c-format
+msgid "ST_BuildArea"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:207
+#, no-c-format
+msgid ""
+"Creates an areal geometry formed by the constituent linework of given "
+"geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:213
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BuildArea</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:223
+#, no-c-format
+msgid ""
+"Creates an areal geometry formed by the constituent linework of given "
+"geometry. The return type can be a Polygon or MultiPolygon, depending on "
+"input. If the input lineworks do not form polygons NULL is returned. The "
+"inputs can be LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS, and "
+"GeometryCollections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:228
+#, no-c-format
+msgid "This function will assume all inner geometries represent holes"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:231 reference_processing.xml:1375
+#, no-c-format
+msgid ""
+"Input linework must be correctly noded for this function to work properly"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:234
+#, no-c-format
+msgid "Availability: 1.1.0 - requires GEOS >= 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:248
+#, no-c-format
+msgid "This will create a donut"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:251
+#, no-c-format
+msgid ""
+"SELECT ST_BuildArea(ST_Collect(smallc,bigc))\n"
+"FROM (SELECT\n"
+"        ST_Buffer(\n"
+"          ST_GeomFromText('POINT(100 90)'), 25) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As bigc) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:260
+#, no-c-format
+msgid ""
+"This will create a gaping hole inside the circle with prongs sticking out"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:263
+#, no-c-format
+msgid ""
+"SELECT ST_BuildArea(ST_Collect(line,circle))\n"
+"FROM (SELECT\n"
+"        ST_Buffer(\n"
+"                ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)),\n"
+"                                5)  As line,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"\n"
+"--this creates the same gaping hole\n"
+"--but using linestrings instead of polygons\n"
+"SELECT ST_BuildArea(\n"
+"        ST_Collect(ST_ExteriorRing(line),ST_ExteriorRing(circle))\n"
+"        )\n"
+"FROM (SELECT ST_Buffer(\n"
+"        ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190))\n"
+"                ,5)  As line,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:274
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePolygon\"/>, <xref linkend=\"ST_BdPolyFromText\"/>, "
+"<xref linkend=\"ST_BdMPolyFromText\"/>wrappers to this function with "
+"standard OGC interface"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:285
+#, no-c-format
+msgid "ST_ClipByBox2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:286
+#, no-c-format
+msgid "Returns the portion of a geometry falling within a rectangle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:291
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClipByBox2D</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>box2d</type> <parameter>box</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:302
+#, no-c-format
+msgid ""
+"Clips a geometry by a 2D box in a fast but possibly dirty way. The output "
+"geometry is not guaranteed to be valid (self-intersections for a polygon may "
+"be introduced). Topologically invalid input geometries do not result in "
+"exceptions being thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:310
+#, no-c-format
+msgid "Requires GEOS 3.5.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:312
+#, no-c-format
+msgid "Availability: 2.2.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:318
+#, no-c-format
+msgid ""
+"-- Rely on implicit cast from geometry to box2d for the second parameter\n"
+"SELECT ST_ClipByBox2D(the_geom, ST_MakeEnvelope(0,0,10,10)) FROM mytab;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:322
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeBox2D\"/>, <xref linkend=\"ST_MakeEnvelope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:332
+#, no-c-format
+msgid "ST_Collect"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:333
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from a collection of other geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:337
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Collect</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:356
+#, no-c-format
+msgid ""
+"Output type can be a MULTI* or a GEOMETRYCOLLECTION. Comes in 2 variants. "
+"Variant 1 collects 2 geometries. Variant 2 is an aggregate function that "
+"takes a set of geometries and collects them into a single ST_Geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:360
+#, no-c-format
+msgid ""
+"Aggregate version: This function returns a GEOMETRYCOLLECTION or a MULTI "
+"object from a set of geometries. The ST_Collect() function is an \"aggregate"
+"\" function in the terminology of PostgreSQL. That means that it operates on "
+"rows of data, in the same way the SUM() and AVG() functions do. For example, "
+"\"SELECT ST_Collect(GEOM) FROM GEOMTABLE GROUP BY ATTRCOLUMN\" will return a "
+"separate GEOMETRYCOLLECTION for each distinct value of ATTRCOLUMN."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:368
+#, no-c-format
+msgid ""
+"Non-Aggregate version: This function returns a geometry being a collection "
+"of two input geometries. Output type can be a MULTI* or a GEOMETRYCOLLECTION."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:372
+#, no-c-format
+msgid ""
+"ST_Collect and ST_Union are often interchangeable. ST_Collect is in general "
+"orders of magnitude faster than ST_Union because it does not try to dissolve "
+"boundaries or validate that a constructed MultiPolgon doesn't have "
+"overlapping regions. It merely rolls up single geometries into MULTI and "
+"MULTI or mixed geometry types into Geometry Collections. Unfortunately "
+"geometry collections are not well-supported by GIS tools. To prevent "
+"ST_Collect from returning a Geometry Collection when collecting MULTI "
+"geometries, one can use the below trick that utilizes <xref linkend=\"ST_Dump"
+"\"/> to expand the MULTIs out to singles and then regroup them."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:383
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_Collect(geomarray) was introduced. ST_Collect was "
+"enhanced to handle more geometries faster."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:384 reference_processing.xml:591
+#: reference_processing.xml:646 reference_processing.xml:698
+#: reference_processing.xml:889 reference_processing.xml:944
+#: reference_processing.xml:1002 reference_processing.xml:1042
+#: reference_processing.xml:1161 reference_processing.xml:1225
+#: reference_processing.xml:1268 reference_processing.xml:1422
+#: reference_processing.xml:1632 reference_processing.xml:1747
+#: reference_processing.xml:2166
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:385
+#, no-c-format
+msgid ""
+"&curve_support; This method supports Circular Strings and Curves, but will "
+"never return a MULTICURVE or MULTI as one would expect and PostGIS does not "
+"currently support those."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:392
+#, no-c-format
+msgid ""
+"Aggregate example (<ulink url=\"http://postgis.refractions.net/pipermail/"
+"postgis-users/2008-June/020331.html\">http://postgis.refractions.net/"
+"pipermail/postgis-users/2008-June/020331.html</ulink>)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:393
+#, no-c-format
+msgid ""
+"SELECT stusps,\n"
+"           ST_Multi(ST_Collect(f.the_geom)) as singlegeom\n"
+"         FROM (SELECT stusps, (ST_Dump(the_geom)).geom As the_geom\n"
+"                                FROM\n"
+"                                somestatetable ) As f\n"
+"GROUP BY stusps"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:394 reference_processing.xml:2116
+#, no-c-format
+msgid "Non-Aggregate example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:395
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
+"        ST_GeomFromText('POINT(-2 3)') ));\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(1 2,-2 3)\n"
+"\n"
+"--Collect 2 d points\n"
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
+"                ST_GeomFromText('POINT(1 2)') ) );\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(1 2,1 2)\n"
+"\n"
+"--Collect 3d points\n"
+"SELECT ST_AsEWKT(ST_Collect(ST_GeomFromEWKT('POINT(1 2 3)'),\n"
+"                ST_GeomFromEWKT('POINT(1 2 4)') ) );\n"
+"\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" MULTIPOINT(1 2 3,1 2 4)\n"
+"\n"
+" --Example with curves\n"
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)'),\n"
+"ST_GeomFromText('CIRCULARSTRING(220227 150406,2220227 150407,220227 "
+"150406)')));\n"
+"                                                                                                                                st_astext\n"
+"------------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406),\n"
+" CIRCULARSTRING(220227 150406,2220227 150407,220227 150406))\n"
+"\n"
+"--New ST_Collect array construct\n"
+"SELECT ST_Collect(ARRAY(SELECT the_geom FROM sometable));\n"
+"\n"
+"SELECT ST_AsText(ST_Collect(ARRAY[ST_GeomFromText('LINESTRING(1 2, 3 4)'),\n"
+"                        ST_GeomFromText('LINESTRING(3 4, 4 5)')])) As "
+"wktcollect;\n"
+"\n"
+"--wkt collect --\n"
+"MULTILINESTRING((1 2,3 4),(3 4,4 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:399
+#, no-c-format
+msgid ", <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:404
+#, no-c-format
+msgid "ST_ConcaveHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:405
+#, no-c-format
+msgid ""
+"The concave hull of a geometry represents a possibly concave geometry that "
+"encloses all geometries within the set. You can think of it as shrink "
+"wrapping."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:411
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConcaveHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>target_percent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allow_holes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:422
+#, no-c-format
+msgid ""
+"The concave hull of a geometry represents a possibly concave geometry that "
+"encloses all geometries within the set. Defaults to false for allowing "
+"polygons with holes. The result is never higher than a single polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:426
+#, no-c-format
+msgid ""
+"The target_percent is the target percent of area of convex hull the PostGIS "
+"solution will try to approach before giving up or exiting. One can think of "
+"the concave hull as the geometry you get by vacuum sealing a set of "
+"geometries. The target_percent of 1 will give you the same answer as the "
+"convex hull. A target_percent between 0 and 0.99 will give you something "
+"that should have a smaller area than the convex hull. This is different from "
+"a convex hull which is more like wrapping a rubber band around the set of "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:431
+#, no-c-format
+msgid ""
+"It is usually used with MULTI and Geometry Collections. Although it is not "
+"an aggregate - you can use it in conjunction with ST_Collect or ST_Union to "
+"get the concave hull of a set of points/linestring/polygons "
+"ST_ConcaveHull(ST_Collect(somepointfield), 0.80)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:436
+#, no-c-format
+msgid ""
+"It is much slower to compute than convex hull but encloses the geometry "
+"better and is also useful for image recognition."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:439 reference_processing.xml:587
+#: reference_processing.xml:792 reference_processing.xml:1111
+#: reference_processing.xml:1991
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:440
+#, no-c-format
+msgid ""
+"Note - If you are using with points, linestrings, or geometry collections "
+"use ST_Collect. If you are using with polygons, use ST_Union since it may "
+"fail with invalid geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:443
+#, no-c-format
+msgid ""
+"Note - The smaller you make the target percent, the longer it takes to "
+"process the concave hull and more likely to run into topological exceptions. "
+"Also the more floating points and number of points you accrue. First try a "
+"0.99 which does a first hop, is usually very fast, sometimes as fast as "
+"computing the convex hull, and usually gives much better than 99% of shrink "
+"since it almost always overshoots. Second hope of 0.98 it slower, others get "
+"slower usually quadratically. To reduce precision and float points, use "
+"<xref linkend=\"ST_SimplifyPreserveTopology\"/> or <xref linkend="
+"\"ST_SnapToGrid\"/> after ST_ConcaveHull. ST_SnapToGrid is a bit faster, but "
+"could result in invalid geometries where as ST_SimplifyPreserveTopology "
+"almost always preserves the validity of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:448
+#, no-c-format
+msgid ""
+"More real world examples and brief explanation of the technique are shown "
+"<ulink url=\"http://www.bostongis.com/postgis_concavehull.snippet\">http://"
+"www.bostongis.com/postgis_concavehull.snippet</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:451
+#, no-c-format
+msgid ""
+"Also check out Simon Greener's article on demonstrating ConcaveHull "
+"introduced in Oracle 11G R2. <ulink url=\"http://www.spatialdbadvisor.com/"
+"oracle_spatial_tips_tricks/172/concave-hull-geometries-in-"
+"oracle-11gr2\">http://www.spatialdbadvisor.com/"
+"oracle_spatial_tips_tricks/172/concave-hull-geometries-in-oracle-11gr2</"
+"ulink>. The solution we get at 0.75 target percent of convex hull is similar "
+"to the shape Simon gets with Oracle SDO_CONCAVEHULL_BOUNDARY."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:455 reference_processing.xml:1044
+#: reference_processing.xml:1630 reference_processing.xml:1883
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:460
+#, no-c-format
+msgid ""
+"--Get estimate of infected area based on point observations\n"
+"SELECT d.disease_type,\n"
+"        ST_ConcaveHull(ST_Collect(d.pnt_geom), 0.99) As geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:470
+#, no-c-format
+msgid "ST_ConcaveHull of 2 polygons encased in target 100% shrink concave hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:473
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull \n"
+"-- at target 100% shrink (this is the same as convex hull - since no "
+"shrink)\n"
+"SELECT \n"
+"        ST_ConcaveHull(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ), 1)  \n"
+"         As convexhull;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:480
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull at target 90% of convex hull area"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:484
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull at target 90% shrink\n"
+"SELECT \n"
+"        ST_ConcaveHull(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ), 0.9)  \n"
+"         As target_90;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:493
+#, no-c-format
+msgid "L Shape points overlaid with convex hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:496
+#, no-c-format
+msgid ""
+"-- this produces a table of 42 points that form an L shape\n"
+"SELECT (ST_DumpPoints(ST_GeomFromText(\n"
+"'MULTIPOINT(14 14,34 14,54 14,74 14,94 14,114 14,134 14,\n"
+"150 14,154 14,154 6,134 6,114 6,94 6,74 6,54 6,34 6,\n"
+"14 6,10 6,8 6,7 7,6 8,6 10,6 30,6 50,6 70,6 90,6 110,6 130,\n"
+"6 150,6 170,6 190,6 194,14 194,14 174,14 154,14 134,14 114,\n"
+"14 94,14 74,14 54,14 34,14 14)'))).geom \n"
+"        INTO TABLE l_shape;\n"
+"\n"
+"SELECT ST_ConvexHull(ST_Collect(geom))\n"
+"FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:503
+#, no-c-format
+msgid "ST_ConcaveHull of L points at target 99% of convex hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:506
+#, no-c-format
+msgid ""
+"SELECT ST_ConcaveHull(ST_Collect(geom), 0.99)\n"
+"        FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:515
+#, no-c-format
+msgid "Concave Hull of L points at target 80% convex hull area"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:518
+#, no-c-format
+msgid ""
+"-- Concave Hull L shape points\n"
+"        -- at target 80% of convexhull\n"
+"        SELECT ST_ConcaveHull(ST_Collect(geom), 0.80)\n"
+"        FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:527
+#, no-c-format
+msgid "multilinestring overlaid with Convex hull"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:535
+#, no-c-format
+msgid ""
+"multilinestring with overlaid with Concave hull of linestrings at 99% target "
+"-- first hop"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:539
+#, no-c-format
+msgid ""
+"SELECT ST_ConcaveHull(ST_GeomFromText('MULTILINESTRING((106 164,30 112,74 "
+"70,82 112,130 94,\n"
+"        130 62,122 40,156 32,162 76,172 88),\n"
+"(132 178,134 148,128 136,96 128,132 108,150 130,\n"
+"170 142,174 110,156 96,158 90,158 88),\n"
+"(22 64,66 28,94 38,94 68,114 76,112 30,\n"
+"132 10,168 18,178 34,186 52,184 74,190 100,\n"
+"190 122,182 148,178 170,176 184,156 164,146 178,\n"
+"132 186,92 182,56 158,36 150,62 150,76 128,88 118))'),0.99)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:549
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend="
+"\"ST_SimplifyPreserveTopology\"/>, <xref linkend=\"ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:555
+#, no-c-format
+msgid "ST_ConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:556
+#, no-c-format
+msgid ""
+"<refpurpose>The convex hull of a geometry represents the minimum convex "
+"geometry that encloses all geometries within the set.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:562
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:571
+#, no-c-format
+msgid ""
+"<para>The convex hull of a geometry represents the minimum convex geometry "
+"that encloses all geometries within the set.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:574
+#, no-c-format
+msgid ""
+"One can think of the convex hull as the geometry you get by wrapping an "
+"elastic band around a set of geometries. This is different from a concave "
+"hull which is analogous to shrink-wrapping your geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:578
+#, no-c-format
+msgid ""
+"It is usually used with MULTI and Geometry Collections. Although it is not "
+"an aggregate - you can use it in conjunction with ST_Collect to get the "
+"convex hull of a set of points. ST_ConvexHull(ST_Collect(somepointfield))."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:583
+#, no-c-format
+msgid ""
+"It is often used to determine an affected area based on a set of point "
+"observations."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:590
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.16"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:596
+#, no-c-format
+msgid ""
+"--Get estimate of infected area based on point observations\n"
+"SELECT d.disease_type,\n"
+"        ST_ConvexHull(ST_Collect(d.the_geom)) As the_geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:604
+#, no-c-format
+msgid ""
+"Convex Hull of a MultiLinestring and a MultiPoint seen together with the "
+"MultiLinestring and MultiPoint"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:607
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_ConvexHull(\n"
+"        ST_Collect(\n"
+"                ST_GeomFromText('MULTILINESTRING((100 190,10 8),(150 10, 20 "
+"30))'),\n"
+"                        ST_GeomFromText('MULTIPOINT(50 5, 150 30, 50 10, 10 "
+"10)')\n"
+"                        )) );\n"
+"---st_astext--\n"
+"POLYGON((50 5,10 8,10 10,100 190,150 30,150 10,50 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:612
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ConcaveHull\"/>, <xref linkend="
+"\"ST_MinimumBoundingCircle\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:618
+#, no-c-format
+msgid "ST_CurveToLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:620
+#, no-c-format
+msgid "Converts a CIRCULARSTRING/CURVEDPOLYGON to a LINESTRING/POLYGON"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:624
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_CurveToLine</function></"
+"funcdef> <paramdef><type>geometry</type> <parameter>curveGeom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_CurveToLine</function></funcdef> <paramdef><type>geometry</"
+"type> <parameter>curveGeom</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>segments_per_qtr_circle</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:640
+#, no-c-format
+msgid ""
+"Converst a CIRCULAR STRING to regular LINESTRING or CURVEPOLYGON to POLYGON. "
+"Useful for outputting to devices that can't support CIRCULARSTRING geometry "
+"types"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:641
+#, no-c-format
+msgid ""
+"Converts a given geometry to a linear geometry. Each curved geometry or "
+"segment is converted into a linear approximation using the default value of "
+"32 segments per quarter circle"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:643 reference_processing.xml:1160
+#, no-c-format
+msgid "Availability: 1.2.2?"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:644
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:645
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.7"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:647 reference_processing.xml:886
+#: reference_processing.xml:941 reference_processing.xml:1041
+#: reference_processing.xml:1162
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:654
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)')));\n"
+"\n"
+"--Result --\n"
+" LINESTRING(220268 150415,220269.95064912 150416.539364228,220271.823415575 "
+"150418.17258804,220273.613787707 150419.895736857,\n"
+" 220275.317452352 150421.704659462,220276.930305234 "
+"150423.594998003,220278.448460847 150425.562198489,\n"
+" 220279.868261823 150427.60152176,220281.186287736 "
+"150429.708054909,220282.399363347 150431.876723113,\n"
+" 220283.50456625 150434.10230186,220284.499233914 "
+"150436.379429536,220285.380970099 150438.702620341,220286.147650624 "
+"150441.066277505,\n"
+" 220286.797428488 150443.464706771,220287.328738321 "
+"150445.892130112,220287.740300149 150448.342699654,\n"
+" 220288.031122486 150450.810511759,220288.200504713 "
+"150453.289621251,220288.248038775 150455.77405574,\n"
+" 220288.173610157 150458.257830005,220287.977398166 "
+"150460.734960415,220287.659875492 150463.199479347,\n"
+" 220287.221807076 150465.64544956,220286.664248262 "
+"150468.066978495,220285.988542259 150470.458232479,220285.196316903 "
+"150472.81345077,\n"
+" 220284.289480732 150475.126959442,220283.270218395 "
+"150477.39318505,220282.140985384 150479.606668057,\n"
+" 220280.90450212 150481.762075989,220279.5637474 "
+"150483.85421628,220278.12195122 150485.87804878,\n"
+" 220276.582586992 150487.828697901,220274.949363179 "
+"150489.701464356,220273.226214362 150491.491836488,\n"
+" 220271.417291757 150493.195501133,220269.526953216 "
+"150494.808354014,220267.559752731 150496.326509628,\n"
+" 220265.520429459 150497.746310603,220263.41389631 "
+"150499.064336517,220261.245228106 150500.277412127,\n"
+" 220259.019649359 150501.38261503,220256.742521683 "
+"150502.377282695,220254.419330878 150503.259018879,\n"
+" 220252.055673714 150504.025699404,220249.657244448 "
+"150504.675477269,220247.229821107 150505.206787101,\n"
+" 220244.779251566 150505.61834893,220242.311439461 "
+"150505.909171266,220239.832329968 150506.078553494,\n"
+" 220237.347895479 150506.126087555,220234.864121215 "
+"150506.051658938,220232.386990804 150505.855446946,\n"
+" 220229.922471872 150505.537924272,220227.47650166 "
+"150505.099855856,220225.054972724 150504.542297043,\n"
+" 220222.663718741 150503.86659104,220220.308500449 150503.074365683,\n"
+" 220217.994991777 150502.167529512,220215.72876617 150501.148267175,\n"
+" 220213.515283163 150500.019034164,220211.35987523 150498.7825509,\n"
+" 220209.267734939 150497.441796181,220207.243902439 150496,\n"
+" 220205.293253319 150494.460635772,220203.420486864 "
+"150492.82741196,220201.630114732 150491.104263143,\n"
+" 220199.926450087 150489.295340538,220198.313597205 "
+"150487.405001997,220196.795441592 150485.437801511,\n"
+" 220195.375640616 150483.39847824,220194.057614703 "
+"150481.291945091,220192.844539092 150479.123276887,220191.739336189 "
+"150476.89769814,\n"
+" 220190.744668525 150474.620570464,220189.86293234 "
+"150472.297379659,220189.096251815 150469.933722495,\n"
+" 220188.446473951 150467.535293229,220187.915164118 "
+"150465.107869888,220187.50360229 150462.657300346,\n"
+" 220187.212779953 150460.189488241,220187.043397726 "
+"150457.710378749,220186.995863664 150455.22594426,\n"
+" 220187.070292282 150452.742169995,220187.266504273 "
+"150450.265039585,220187.584026947 150447.800520653,\n"
+" 220188.022095363 150445.35455044,220188.579654177 "
+"150442.933021505,220189.25536018 150440.541767521,\n"
+" 220190.047585536 150438.18654923,220190.954421707 "
+"150435.873040558,220191.973684044 150433.60681495,\n"
+" 220193.102917055 150431.393331943,220194.339400319 "
+"150429.237924011,220195.680155039 150427.14578372,220197.12195122 "
+"150425.12195122,\n"
+" 220198.661315447 150423.171302099,220200.29453926 "
+"150421.298535644,220202.017688077 150419.508163512,220203.826610682 "
+"150417.804498867,\n"
+" 220205.716949223 150416.191645986,220207.684149708 "
+"150414.673490372,220209.72347298 150413.253689397,220211.830006129 "
+"150411.935663483,\n"
+" 220213.998674333 150410.722587873,220216.22425308 "
+"150409.61738497,220218.501380756 150408.622717305,220220.824571561 "
+"150407.740981121,\n"
+" 220223.188228725 150406.974300596,220225.586657991 150406.324522731,220227 "
+"150406)\n"
+"\n"
+"--3d example\n"
+"SELECT ST_AsEWKT(ST_CurveToLine(ST_GeomFromEWKT('CIRCULARSTRING(220268 "
+"150415 1,220227 150505 2,220227 150406 3)')));\n"
+"Output\n"
+"------\n"
+" LINESTRING(220268 150415 1,220269.95064912 150416.539364228 "
+"1.0181172856673,\n"
+" 220271.823415575 150418.17258804 1.03623457133459,220273.613787707 "
+"150419.895736857 1.05435185700189,....AD INFINITUM ....\n"
+"        220225.586657991 150406.324522731 1.32611114201132,220227 150406 3)\n"
+"\n"
+"--use only 2 segments to approximate quarter circle\n"
+"SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)'),2));\n"
+"st_astext\n"
+"------------------------------\n"
+" LINESTRING(220268 150415,220287.740300149 150448.342699654,220278.12195122 "
+"150485.87804878,\n"
+" 220244.779251566 150505.61834893,220207.243902439 150496,220187.50360229 "
+"150462.657300346,\n"
+" 220197.12195122 150425.12195122,220227 150406)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:667
+#, no-c-format
+msgid "ST_DelaunayTriangles"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:669
+#, no-c-format
+msgid "Return a Delaunay triangulation around the given input points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:676
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_DelaunayTriangles</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef> "
+"<paramdef><type>int4 </type> <parameter>flags</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:688
+#, no-c-format
+msgid ""
+"Return a <ulink url=\"http://en.wikipedia.org/wiki/Delaunay_triangulation"
+"\">Delaunay triangulation</ulink> around the vertices of the input geometry. "
+"Output is a COLLECTION of polygons (for flags=0) or a MULTILINESTRING (for "
+"flags=1) or TIN (for flags=2). The tolerance, if any, is used to snap input "
+"vertices togheter."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:697
+#, no-c-format
+msgid "Availability: 2.1.0 - requires GEOS >= 3.4.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:699 reference_processing.xml:888
+#: reference_processing.xml:943 reference_processing.xml:1046
+#: reference_processing.xml:1750
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:703
+#, no-c-format
+msgid "2D Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:712
+#, no-c-format
+msgid "Original polygons"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:715
+#, no-c-format
+msgid ""
+"-- our original geometry --\n"
+"        ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                )"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:723
+#, no-c-format
+msgid ""
+"ST_DelaunayTriangles of 2 polygons: delaunay triangle polygons each triangle "
+"themed in different color"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:726
+#, no-c-format
+msgid ""
+"-- geometries overlaid multilinestring triangles\n"
+"SELECT \n"
+"        ST_DelaunayTriangles(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                )) \n"
+"         As  dtriag;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:733
+#, no-c-format
+msgid "-- delaunay triangles as multilinestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:736
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_DelaunayTriangles(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ),0.001,1) \n"
+"         As  dtriag;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:744
+#, no-c-format
+msgid "-- delaunay triangles of 45 points as 55 triangle polygons"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:747
+#, no-c-format
+msgid ""
+"-- this produces a table of 42 points that form an L shape\n"
+"SELECT (ST_DumpPoints(ST_GeomFromText(\n"
+"'MULTIPOINT(14 14,34 14,54 14,74 14,94 14,114 14,134 14,\n"
+"150 14,154 14,154 6,134 6,114 6,94 6,74 6,54 6,34 6,\n"
+"14 6,10 6,8 6,7 7,6 8,6 10,6 30,6 50,6 70,6 90,6 110,6 130,\n"
+"6 150,6 170,6 190,6 194,14 194,14 174,14 154,14 134,14 114,\n"
+"14 94,14 74,14 54,14 34,14 14)'))).geom \n"
+"        INTO TABLE l_shape;\n"
+"-- output as individual polygon triangles\n"
+"SELECT ST_AsText((ST_Dump(geom)).geom) As wkt\n"
+"FROM ( SELECT ST_DelaunayTriangles(ST_Collect(geom)) As geom\n"
+"FROM l_shape) As foo;\n"
+"\n"
+"---wkt ---\n"
+"POLYGON((6 194,6 190,14 194,6 194))\n"
+"POLYGON((14 194,6 190,14 174,14 194))\n"
+"POLYGON((14 194,14 174,154 14,14 194))\n"
+"POLYGON((154 14,14 174,14 154,154 14))\n"
+"POLYGON((154 14,14 154,150 14,154 14))\n"
+"POLYGON((154 14,150 14,154 6,154 14))\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:756
+#, no-c-format
+msgid "3D Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:757
+#, no-c-format
+msgid ""
+"-- 3D multipoint --\n"
+"SELECT ST_AsText(ST_DelaunayTriangles(ST_GeomFromText(\n"
+"'MULTIPOINT Z(14 14 10,\n"
+"150 14 100,34 6 25, 20 10 150)'))) As wkt;\n"
+"\n"
+"-----wkt----\n"
+"GEOMETRYCOLLECTION Z (POLYGON Z ((14 14 10,20 10 150,34 6 25,14 14 10))\n"
+" ,POLYGON Z ((14 14 10,34 6 25,150 14 100,14 14 10)))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:761 reference_processing.xml:1388
+#, no-c-format
+msgid ", <xref linkend=\"ST_Dump\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:768
+#, no-c-format
+msgid "ST_Difference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:770
+#, no-c-format
+msgid ""
+"Returns a geometry that represents that part of geometry A that does not "
+"intersect with geometry B."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:776
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Difference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:787
+#, no-c-format
+msgid ""
+"Returns a geometry that represents that part of geometry A that does not "
+"intersect with geometry B. One can think of this as GeometryA - "
+"ST_Intersection(A,B). If A is completely contained in B then an empty "
+"geometry collection is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:790
+#, no-c-format
+msgid "Note - order matters. B - A will always return a portion of B"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:794 reference_processing.xml:1993
+#, no-c-format
+msgid "Do not call with a GeometryCollection as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:797
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.20"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:798 reference_processing.xml:1997
+#, no-c-format
+msgid ""
+"&Z_support; However it seems to only consider x y when doing the difference "
+"and tacks back on the Z-Index"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:815
+#, no-c-format
+msgid "The original linestrings shown together."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:827
+#, no-c-format
+msgid "The difference of the two linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:836
+#, no-c-format
+msgid ""
+"--Safe for 2d. This is same geometries as what is shown for "
+"st_symdifference\n"
+"SELECT ST_AsText(\n"
+"        ST_Difference(\n"
+"                        ST_GeomFromText('LINESTRING(50 100, 50 200)'),\n"
+"                        ST_GeomFromText('LINESTRING(50 50, 50 150)')\n"
+"                )\n"
+"        );\n"
+"\n"
+"st_astext\n"
+"---------\n"
+"LINESTRING(50 150,50 200)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:838
+#, no-c-format
+msgid ""
+"--When used in 3d doesn't quite do the right thing\n"
+"SELECT ST_AsEWKT(ST_Difference(ST_GeomFromEWKT('MULTIPOINT(-118.58 38.38 "
+"5,-118.60 38.329 6,-118.614 38.281 7)'), ST_GeomFromEWKT('POINT(-118.614 "
+"38.281 5)')));\n"
+"st_asewkt\n"
+"---------\n"
+"MULTIPOINT(-118.6 38.329 6,-118.58 38.38 5)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:851
+#, no-c-format
+msgid "ST_Dump"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:852
+#, no-c-format
+msgid ""
+"Returns a set of geometry_dump (geom,path) rows, that make up a geometry g1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:857
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[] <function>ST_Dump</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:866
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of geometry_dump "
+"rows, formed by a geometry (geom) and an array of integers (path). When the "
+"input geometry is a simple type (POINT,LINESTRING,POLYGON) a single record "
+"will be returned with an empty path array and the input geometry as geom. "
+"When the input geometry is a collection or multi it will return a record for "
+"each of the collection components, and the path will express the position of "
+"the component inside the collection."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:875
+#, no-c-format
+msgid ""
+"ST_Dump is useful for expanding geometries. It is the reverse of a GROUP BY "
+"in that it creates new rows. For example it can be use to expand "
+"MULTIPOLYGONS into POLYGONS."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:879 reference_processing.xml:939
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:880
+#, no-c-format
+msgid "Availability: PostGIS 1.0.0RC1. Requires PostgreSQL 7.3 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:882
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:887 reference_processing.xml:942
+#: reference_processing.xml:1045 reference_processing.xml:1631
+#: reference_processing.xml:1749
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:893
+#, no-c-format
+msgid "Standard Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:894
+#, no-c-format
+msgid ""
+"SELECT sometable.field1, sometable.field1,\n"
+"      (ST_Dump(sometable.the_geom)).geom AS the_geom\n"
+"FROM sometable;\n"
+"\n"
+"-- Break a compound curve into its constituent linestrings and "
+"circularstrings\n"
+"SELECT ST_AsEWKT(a.geom), ST_HasArc(a.geom)\n"
+"  FROM ( SELECT (ST_Dump(p_geom)).geom AS geom\n"
+"         FROM (SELECT ST_GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 "
+"1, 1 0),(1 0, 0 1))') AS p_geom) AS b\n"
+"        ) AS a;\n"
+"          st_asewkt          | st_hasarc\n"
+"-----------------------------+----------\n"
+" CIRCULARSTRING(0 0,1 1,1 0) | t\n"
+" LINESTRING(1 0,0 1)         | f\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:896 reference_processing.xml:964
+#, no-c-format
+msgid "Polyhedral Surfaces, TIN and Triangle Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:897
+#, no-c-format
+msgid ""
+"-- Polyhedral surface example\n"
+"-- Break a Polyhedral surface into its faces\n"
+"SELECT (a.p_geom).path[1] As path, ST_AsEWKT((a.p_geom).geom) As geom_ewkt\n"
+"  FROM (SELECT ST_Dump(ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)),  ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) \n"
+")') ) AS p_geom )  AS a;\n"
+"\n"
+" path |                geom_ewkt\n"
+"------+------------------------------------------\n"
+"    1 | POLYGON((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0))\n"
+"    2 | POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))\n"
+"    3 | POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))\n"
+"    4 | POLYGON((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0))\n"
+"    5 | POLYGON((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0))\n"
+"    6 | POLYGON((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:899
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_Dump( ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+" path |                 wkt\n"
+"------+-------------------------------------\n"
+" {1}  | TRIANGLE((0 0 0,0 0 1,0 1 0,0 0 0))\n"
+" {2}  | TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:903
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend="
+"\"ST_Collect\"/>, <xref linkend=\"ST_Collect\"/>, <xref linkend="
+"\"ST_GeometryN\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:909
+#, no-c-format
+msgid "ST_DumpPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:910
+#, no-c-format
+msgid ""
+"Returns a set of geometry_dump (geom,path) rows of all points that make up a "
+"geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:915
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[]<function>ST_DumpPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:924
+#, no-c-format
+msgid ""
+"This set-returning function (SRF) returns a set of <varname>geometry_dump</"
+"varname> rows formed by a geometry (<varname>geom</varname>) and an array of "
+"integers (<varname>path</varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:927
+#, no-c-format
+msgid ""
+"The <parameter>geom</parameter> component of <varname>geometry_dump</"
+"varname> are all the <varname>POINT</varname>s that make up the supplied "
+"geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:930
+#, no-c-format
+msgid ""
+"The <parameter>path</parameter> component of <varname>geometry_dump</"
+"varname> (an <varname>integer[]</varname>) is an index reference enumerating "
+"the <varname>POINT</varname>s of the supplied geometry. For example, if a "
+"<varname>LINESTRING</varname> is supplied, a path of <varname>{i}</varname> "
+"is returned where <varname>i</varname> is the <varname>nth</varname> "
+"coordinate in the <varname>LINESTRING</varname>. If a <varname>POLYGON</"
+"varname> is supplied, a path of <varname>{i,j}</varname> is returned where "
+"<varname>i</varname> is the ring number (1 is outer; inner rings follow) and "
+"<varname>j</varname> enumerates the <varname>POINT</varname>s (again 1-based "
+"index)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:938
+#, no-c-format
+msgid "Enhanced: 2.1.0 Faster speed. Reimplemented as native-C."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:940
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:947
+#, no-c-format
+msgid "Classic Explode a Table of LineStrings into nodes"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:948
+#, no-c-format
+msgid ""
+"SELECT edge_id, (dp).path[1] As index, ST_AsText((dp).geom) As wktnode\n"
+"FROM (SELECT 1 As edge_id\n"
+"        , ST_DumpPoints(ST_GeomFromText('LINESTRING(1 2, 3 4, 10 10)')) AS "
+"dp\n"
+"     UNION ALL\n"
+"     SELECT 2 As edge_id\n"
+"        , ST_DumpPoints(ST_GeomFromText('LINESTRING(3 5, 5 6, 9 10)')) AS "
+"dp\n"
+"   ) As foo;\n"
+" edge_id | index |    wktnode\n"
+"---------+-------+--------------\n"
+"       1 |     1 | POINT(1 2)\n"
+"       1 |     2 | POINT(3 4)\n"
+"       1 |     3 | POINT(10 10)\n"
+"       2 |     1 | POINT(3 5)\n"
+"       2 |     2 | POINT(5 6)\n"
+"       2 |     3 | POINT(9 10)"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:951
+#, no-c-format
+msgid "Standard Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:961
+#, no-c-format
+msgid ""
+"SELECT path, ST_AsText(geom) \n"
+"FROM (\n"
+"  SELECT (ST_DumpPoints(g.geom)).* \n"
+"  FROM\n"
+"    (SELECT \n"
+"       'GEOMETRYCOLLECTION(\n"
+"          POINT ( 0 1 ), \n"
+"          LINESTRING ( 0 3, 3 4 ),\n"
+"          POLYGON (( 2 0, 2 3, 0 2, 2 0 )),\n"
+"          POLYGON (( 3 0, 3 3, 6 3, 6 0, 3 0 ), \n"
+"                   ( 5 1, 4 2, 5 2, 5 1 )),\n"
+"          MULTIPOLYGON (\n"
+"                  (( 0 5, 0 8, 4 8, 4 5, 0 5 ), \n"
+"                   ( 1 6, 3 6, 2 7, 1 6 )), \n"
+"                  (( 5 4, 5 8, 6 7, 5 4 ))\n"
+"          )\n"
+"        )'::geometry AS geom\n"
+"    ) AS g\n"
+"  ) j;\n"
+"  \n"
+"   path    | st_astext  \n"
+"-----------+------------\n"
+" {1,1}     | POINT(0 1)\n"
+" {2,1}     | POINT(0 3)\n"
+" {2,2}     | POINT(3 4)\n"
+" {3,1,1}   | POINT(2 0)\n"
+" {3,1,2}   | POINT(2 3)\n"
+" {3,1,3}   | POINT(0 2)\n"
+" {3,1,4}   | POINT(2 0)\n"
+" {4,1,1}   | POINT(3 0)\n"
+" {4,1,2}   | POINT(3 3)\n"
+" {4,1,3}   | POINT(6 3)\n"
+" {4,1,4}   | POINT(6 0)\n"
+" {4,1,5}   | POINT(3 0)\n"
+" {4,2,1}   | POINT(5 1)\n"
+" {4,2,2}   | POINT(4 2)\n"
+" {4,2,3}   | POINT(5 2)\n"
+" {4,2,4}   | POINT(5 1)\n"
+" {5,1,1,1} | POINT(0 5)\n"
+" {5,1,1,2} | POINT(0 8)\n"
+" {5,1,1,3} | POINT(4 8)\n"
+" {5,1,1,4} | POINT(4 5)\n"
+" {5,1,1,5} | POINT(0 5)\n"
+" {5,1,2,1} | POINT(1 6)\n"
+" {5,1,2,2} | POINT(3 6)\n"
+" {5,1,2,3} | POINT(2 7)\n"
+" {5,1,2,4} | POINT(1 6)\n"
+" {5,2,1,1} | POINT(5 4)\n"
+" {5,2,1,2} | POINT(5 8)\n"
+" {5,2,1,3} | POINT(6 7)\n"
+" {5,2,1,4} | POINT(5 4)\n"
+"(29 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:965
+#, no-c-format
+msgid ""
+"-- Polyhedral surface cube --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+"  path   |     wkt\n"
+"---------+--------------\n"
+" {1,1,1} | POINT(0 0 0)\n"
+" {1,1,2} | POINT(0 0 1)\n"
+" {1,1,3} | POINT(0 1 1)\n"
+" {1,1,4} | POINT(0 1 0)\n"
+" {1,1,5} | POINT(0 0 0)\n"
+" {2,1,1} | POINT(0 0 0)\n"
+" {2,1,2} | POINT(0 1 0)\n"
+" {2,1,3} | POINT(1 1 0)\n"
+" {2,1,4} | POINT(1 0 0)\n"
+" {2,1,5} | POINT(0 0 0)\n"
+" {3,1,1} | POINT(0 0 0)\n"
+" {3,1,2} | POINT(1 0 0)\n"
+" {3,1,3} | POINT(1 0 1)\n"
+" {3,1,4} | POINT(0 0 1)\n"
+" {3,1,5} | POINT(0 0 0)\n"
+" {4,1,1} | POINT(1 1 0)\n"
+" {4,1,2} | POINT(1 1 1)\n"
+" {4,1,3} | POINT(1 0 1)\n"
+" {4,1,4} | POINT(1 0 0)\n"
+" {4,1,5} | POINT(1 1 0)\n"
+" {5,1,1} | POINT(0 1 0)\n"
+" {5,1,2} | POINT(0 1 1)\n"
+" {5,1,3} | POINT(1 1 1)\n"
+" {5,1,4} | POINT(1 1 0)\n"
+" {5,1,5} | POINT(0 1 0)\n"
+" {6,1,1} | POINT(0 0 1)\n"
+" {6,1,2} | POINT(1 0 1)\n"
+" {6,1,3} | POINT(1 1 1)\n"
+" {6,1,4} | POINT(0 1 1)\n"
+" {6,1,5} | POINT(0 0 1)\n"
+"(30 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:966
+#, no-c-format
+msgid ""
+"-- Triangle --                \n"
+"SELECT (g.gdump).path, ST_AsText((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints( ST_GeomFromEWKT('TRIANGLE ((\n"
+"                0 0, \n"
+"                0 9, \n"
+"                9 0, \n"
+"                0 0\n"
+"            ))') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+" path |    wkt\n"
+"------+------------\n"
+" {1}  | POINT(0 0)\n"
+" {2}  | POINT(0 9)\n"
+" {3}  | POINT(9 0)\n"
+" {4}  | POINT(0 0)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:967
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints( ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+"  path   |     wkt\n"
+"---------+--------------\n"
+" {1,1,1} | POINT(0 0 0)\n"
+" {1,1,2} | POINT(0 0 1)\n"
+" {1,1,3} | POINT(0 1 0)\n"
+" {1,1,4} | POINT(0 0 0)\n"
+" {2,1,1} | POINT(0 0 0)\n"
+" {2,1,2} | POINT(0 1 0)\n"
+" {2,1,3} | POINT(1 1 0)\n"
+" {2,1,4} | POINT(0 0 0)\n"
+"(8 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:971
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
+"\"/>, <xref linkend=\"ST_DumpRings\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:976
+#, no-c-format
+msgid "ST_DumpRings"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:978
+#, no-c-format
+msgid ""
+"Returns a set of <varname>geometry_dump</varname> rows, representing the "
+"exterior and interior rings of a polygon."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:984
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[] <function>ST_DumpRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:994
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of "
+"<varname>geometry_dump</varname> rows, defined as an <varname>integer[]</"
+"varname> and a <varname>geometry</varname>, aliased \"path\" and \"geom\" "
+"respectively. The \"path\" field holds the polygon ring index containing a "
+"single integer: 0 for the shell, >0 for holes. The \"geom\" field contains "
+"the corresponding ring as a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1000
+#, no-c-format
+msgid "Availability: PostGIS 1.1.3. Requires PostgreSQL 7.3 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1001
+#, no-c-format
+msgid ""
+"This only works for POLYGON geometries. It will not work for MULTIPOLYGONS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1009
+#, no-c-format
+msgid ""
+"SELECT sometable.field1, sometable.field1,\n"
+"          (ST_DumpRings(sometable.the_geom)).geom As the_geom\n"
+"FROM sometableOfpolys;\n"
+"\n"
+"SELECT ST_AsEWKT(geom) As the_geom, path\n"
+"        FROM ST_DumpRings(\n"
+"                ST_GeomFromEWKT('POLYGON((-8149064 5133092 1,-8149064 "
+"5132986 1,-8148996 5132839 1,-8148972 5132767 1,-8148958 5132508 1,-8148941 "
+"5132466 1,-8148924 5132394 1,\n"
+"                -8148903 5132210 1,-8148930 5131967 1,-8148992 5131978 "
+"1,-8149237 5132093 1,-8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 "
+"1,\n"
+"                -8150305 5132788 1,-8149064 5133092 1),\n"
+"                (-8149362 5132394 1,-8149446 5132501 1,-8149548 5132597 "
+"1,-8149695 5132675 1,-8149362 5132394 1))')\n"
+"                )  as foo;\n"
+" path |                                            the_geom\n"
+"----------------------------------------------------------------------------------------------------------------\n"
+"  {0} | POLYGON((-8149064 5133092 1,-8149064 5132986 1,-8148996 5132839 "
+"1,-8148972 5132767 1,-8148958 5132508 1,\n"
+"          |          -8148941 5132466 1,-8148924 5132394 1,\n"
+"          |          -8148903 5132210 1,-8148930 5131967 1,\n"
+"          |          -8148992 5131978 1,-8149237 5132093 1,\n"
+"          |          -8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 "
+"1,-8150305 5132788 1,-8149064 5133092 1))\n"
+"  {1} | POLYGON((-8149362 5132394 1,-8149446 5132501 1,\n"
+"          |          -8149548 5132597 1,-8149695 5132675 1,-8149362 5132394 "
+"1))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1016
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
+"\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref linkend=\"ST_InteriorRingN"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1022
+#, no-c-format
+msgid "ST_FlipCoordinates"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1023
+#, no-c-format
+msgid ""
+"Returns a version of the given geometry with X and Y axis flipped. Useful "
+"for people who have built latitude/longitude features and need to fix them."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1031
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_FlipCoordinates</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1040
+#, no-c-format
+msgid "Returns a version of the given geometry with X and Y axis flipped."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1043
+#, no-c-format
+msgid "&M_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1050
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1051
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"SELECT ST_AsEWKT(ST_FlipCoordinates(GeomFromEWKT('POINT(1 2)')));\n"
+" st_asewkt  \n"
+"------------\n"
+"POINT(2 1)\n"
+"                 ]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1058
+#, no-c-format
+msgid "ST_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1060
+#, no-c-format
+msgid ""
+"(T) Returns a geometry that represents the shared portion of geomA and "
+"geomB. The geography implementation does a transform to geometry to do the "
+"intersection and then transform back to WGS84."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:1065
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Intersection</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geography "
+"<function>ST_Intersection</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1092
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the point set intersection of the "
+"Geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1095
+#, no-c-format
+msgid ""
+"In other words - that portion of geometry A and geometry B that is shared "
+"between the two geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1098
+#, no-c-format
+msgid ""
+"If the geometries do not share any space (are disjoint), then an empty "
+"geometry collection is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1100
+#, no-c-format
+msgid ""
+"ST_Intersection in conjunction with ST_Intersects is very useful for "
+"clipping geometries such as in bounding box, buffer, region queries where "
+"you only want to return that portion of a geometry that sits in a country or "
+"region of interest."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1103
+#, no-c-format
+msgid ""
+"Geography: For geography this is really a thin wrapper around the geometry "
+"implementation. It first determines the best SRID that fits the bounding box "
+"of the 2 geography objects (if geography objects are within one half zone "
+"UTM but not same UTM will pick one of those) (favoring UTM or Lambert "
+"Azimuthal Equal Area (LAEA) north/south pole, and falling back on mercator "
+"in worst case scenario) and then intersection in that best fit planar "
+"spatial ref and retransforms back to WGS84 geography."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1106
+#, no-c-format
+msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1109
+#, no-c-format
+msgid ""
+"If working with 3D geometries, you may want to use SFGCAL based <xref "
+"linkend=\"ST_3DIntersection\"/> which does a proper 3D intersection for 3D "
+"geometries. Although this function works with Z-coordinate, it does an "
+"averaging of Z-Coordinate values when <code>postgis.backend=geos</code>. "
+"<code>postgis.backend=sfcgal</code>, it will return a 2D geometry regardless "
+"ignoring the Z-Coordinate. Refer to <xref linkend=\"postgis_backend\"/> for "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1112
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1114
+#, no-c-format
+msgid "Availability: 1.5 support for geography data type was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1117
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.18"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1121
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, "
+"0 2 )'::geometry));\n"
+" st_astext\n"
+"---------------\n"
+"GEOMETRYCOLLECTION EMPTY\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, "
+"0 2 )'::geometry));\n"
+" st_astext\n"
+"---------------\n"
+"POINT(0 0)\n"
+"(1 row)\n"
+"\n"
+"---Clip all lines (trails) by country (here we assume country geom are "
+"POLYGON or MULTIPOLYGONS)\n"
+"-- NOTE: we are only keeping intersections that result in a LINESTRING or "
+"MULTILINESTRING because we don't\n"
+"-- care about trails that just share a point\n"
+"-- the dump is needed to expand a geometry collection into individual single "
+"MULT* parts\n"
+"-- the below is fairly generic and will work for polys, etc. by just "
+"changing the where clause\n"
+"SELECT clipped.gid, clipped.f_name, clipped_geom\n"
+"FROM (SELECT trails.gid, trails.f_name, (ST_Dump(ST_Intersection(country."
+"the_geom, trails.the_geom))).geom As clipped_geom\n"
+"FROM country\n"
+"        INNER JOIN trails\n"
+"        ON ST_Intersects(country.the_geom, trails.the_geom))  As clipped\n"
+"        WHERE ST_Dimension(clipped.clipped_geom) = 1 ;\n"
+"\n"
+"--For polys e.g. polygon landmarks, you can also use the sometimes faster "
+"hack that buffering anything by 0.0\n"
+"-- except a polygon results in an empty geometry collection\n"
+"--(so a geometry collection containing polys, lines and points)\n"
+"-- buffered by 0.0 would only leave the polygons and dissolve the collection "
+"shell\n"
+"SELECT poly.gid,  ST_Multi(ST_Buffer(\n"
+"                                ST_Intersection(country.the_geom, poly."
+"the_geom),\n"
+"                                0.0)\n"
+"                                ) As clipped_geom\n"
+"FROM country\n"
+"        INNER JOIN poly\n"
+"        ON ST_Intersects(country.the_geom, poly.the_geom)\n"
+"        WHERE Not ST_IsEmpty(ST_Buffer(ST_Intersection(country.the_geom, "
+"poly.the_geom),0.0));"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1125
+#, no-c-format
+msgid "Examples: 2.5Dish"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1126
+#, no-c-format
+msgid ""
+"Geos is the default backend if not set. Note this is not a true "
+"intersection, compare to the same example using <xref linkend="
+"\"ST_3DIntersection\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1127
+#, no-c-format
+msgid ""
+"set postgis.backend=geos; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"               st_astext\n"
+"---------------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8,0 0 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1129
+#, no-c-format
+msgid ""
+"If your PostGIS is compiled with sfcgal support, have option of using "
+"sfcgal, but note if basically cases down both geometries to 2D before doing "
+"intersection and returns the ST_Force2D equivalent result which is a 2D "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1131
+#, no-c-format
+msgid ""
+"set postgis.backend=sfcgal; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"                     wkt\n"
+"----------------------------------------------\n"
+" MULTILINESTRING((0.5 0.5,0 0),(1 1,0.5 0.5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1135
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Difference\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Dump\"/>, <xref linkend=\"ST_Force2D\"/>, <xref linkend="
+"\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Multi\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1141
+#, no-c-format
+msgid "ST_LineToCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1143
+#, no-c-format
+msgid "Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1148
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineToCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomANoncircular</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1158
+#, no-c-format
+msgid ""
+"Converts plain LINESTRING/POLYGONS to CIRCULAR STRINGs and Curved Polygons. "
+"Note much fewer points are needed to describe the curved equivalent."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1167
+#, no-c-format
+msgid "Examples: 2D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1169
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LineToCurve(foo.the_geom)) As curvedastext,ST_AsText(foo."
+"the_geom) As non_curvedastext\n"
+"        FROM (SELECT ST_Buffer('POINT(1 3)'::geometry, 3) As the_geom) As "
+"foo;\n"
+"\n"
+"curvedatext                                                            "
+"non_curvedastext\n"
+"--------------------------------------------------------------------|-----------------------------------------------------------------\n"
+"CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359, | "
+"POLYGON((4 3,3.94235584120969 2.41472903395162,3.77163859753386 "
+"1.85194970290473,\n"
+"1 0,-1.12132034355965 5.12132034355963,4 3))                        |  "
+"3.49440883690764 1.33328930094119,3.12132034355964 0.878679656440359,\n"
+"                                                                    |  "
+"2.66671069905881 0.505591163092366,2.14805029709527 0.228361402466141,\n"
+"                                                                    |  "
+"1.58527096604839 0.0576441587903094,1 0,\n"
+"                                                                    |  "
+"0.414729033951621 0.0576441587903077,-0.148050297095264 0.228361402466137,\n"
+"                                                                    |  "
+"-0.666710699058802 0.505591163092361,-1.12132034355964 0.878679656440353,\n"
+"                                                                    |  "
+"-1.49440883690763 1.33328930094119,-1.77163859753386 1.85194970290472\n"
+"                                                                    |  --"
+"ETC-- ,3.94235584120969 3.58527096604839,4 3))\n"
+"--3D example\n"
+"SELECT ST_AsEWKT(ST_LineToCurve(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 8, 5 "
+"6 4, 7 8 4, 9 10 4)')));\n"
+"\n"
+"                         st_asewkt\n"
+"------------------------------------\n"
+" CIRCULARSTRING(1 2 3,5 6 4,9 10 4)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1184
+#, no-c-format
+msgid "ST_MakeValid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1185
+#, no-c-format
+msgid "Attempts to make an invalid geometry valid without losing vertices."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1190
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakeValid</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1199
+#, no-c-format
+msgid ""
+"The function attempts to create a valid representation of a given invalid "
+"geometry without losing any of the input vertices. Already-valid geometries "
+"are returned without further intervention."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1205
+#, no-c-format
+msgid ""
+"Supported inputs are: POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
+"POLYGONS, MULTIPOLYGONS and GEOMETRYCOLLECTIONS containing any mix of them."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1211
+#, no-c-format
+msgid ""
+"In case of full or partial dimensional collapses, the output geometry may be "
+"a collection of lower-to-equal dimension geometries or a geometry of lower "
+"dimension."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1217
+#, no-c-format
+msgid ""
+"Single polygons may become multi-geometries in case of self-intersections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1221
+#, no-c-format
+msgid "Availability: 2.0.0, requires GEOS-3.3.0"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1222
+#, no-c-format
+msgid "Enhanced: 2.0.1, speed improvements requires GEOS-3.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1223
+#, no-c-format
+msgid "Enhanced: 2.1.0 added support for GEOMETRYCOLLECTION and MULTIPOINT."
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1240
+#, no-c-format
+msgid "ST_MemUnion"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1242
+#, no-c-format
+msgid ""
+"Same as ST_Union, only memory-friendly (uses less memory and more processor "
+"time)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1248
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MemUnion</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1259
+#, no-c-format
+msgid "Some useful description here."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1263
+#, no-c-format
+msgid ""
+"Same as ST_Union, only memory-friendly (uses less memory and more processor "
+"time). This aggregate function works by unioning the geometries one at a "
+"time to previous result as opposed to ST_Union aggregate which first creates "
+"an array and then unions"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1275
+#, no-c-format
+msgid "See ST_Union"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1288
+#, no-c-format
+msgid "ST_MinimumBoundingCircle"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1289
+#, no-c-format
+msgid ""
+"Returns the smallest circle polygon that can fully contain a geometry. "
+"Default uses 48 segments per quarter circle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1295
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinimumBoundingCircle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>num_segs_per_qt_circ=48</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1305
+#, no-c-format
+msgid "Returns the smallest circle polygon that can fully contain a geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1306
+#, no-c-format
+msgid ""
+"The circle is approximated by a polygon with a default of 48 segments per "
+"quarter circle. This number can be increased with little performance penalty "
+"to obtain a more accurate result."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1308
+#, no-c-format
+msgid ""
+"It is often used with MULTI and Geometry Collections. Although it is not an "
+"aggregate - you can use it in conjunction with ST_Collect to get the minimum "
+"bounding circle of a set of geometries. "
+"ST_MinimumBoundingCircle(ST_Collect(somepointfield))."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1313
+#, no-c-format
+msgid ""
+"The ratio of the area of a polygon divided by the area of its Minimum "
+"Bounding Circle is often referred to as the Roeck test."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1315
+#, no-c-format
+msgid "Availability: 1.4.0 - requires GEOS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1322
+#, no-c-format
+msgid ""
+"SELECT d.disease_type,\n"
+"        ST_MinimumBoundingCircle(ST_Collect(d.the_geom)) As the_geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1328
+#, no-c-format
+msgid ""
+"Minimum bounding circle of a point and linestring. Using 8 segs to "
+"approximate a quarter circle"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1331
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MinimumBoundingCircle(\n"
+"                ST_Collect(\n"
+"                        ST_GeomFromEWKT('LINESTRING(55 75,125 150)'),\n"
+"                                ST_Point(20, 80)), 8\n"
+"                                )) As wktmbc;\n"
+"wktmbc\n"
+"-----------\n"
+"POLYGON((135.59714732062 115,134.384753327498 "
+"102.690357210921,130.79416296937 90.8537670908995,124.963360620072 "
+"79.9451031602111,117.116420743937 70.3835792560632,107.554896839789 "
+"62.5366393799277,96.6462329091006 56.70583703063,84.8096427890789 "
+"53.115246672502,72.5000000000001 51.9028526793802,60.1903572109213 "
+"53.1152466725019,48.3537670908996 56.7058370306299,37.4451031602112 "
+"62.5366393799276,27.8835792560632 70.383579256063,20.0366393799278 "
+"79.9451031602109,14.20583703063 90.8537670908993,10.615246672502 "
+"102.690357210921,9.40285267938019 115,10.6152466725019 "
+"127.309642789079,14.2058370306299 139.1462329091,20.0366393799275 "
+"150.054896839789,27.883579256063 159.616420743937,\n"
+"37.4451031602108 167.463360620072,48.3537670908992 "
+"173.29416296937,60.190357210921 176.884753327498,\n"
+"72.4999999999998 178.09714732062,84.8096427890786 "
+"176.884753327498,96.6462329091003 173.29416296937,107.554896839789 "
+"167.463360620072,\n"
+"117.116420743937 159.616420743937,124.963360620072 "
+"150.054896839789,130.79416296937 139.146232909101,134.384753327498 "
+"127.309642789079,135.59714732062 115))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1335
+#, no-c-format
+msgid ", <xref linkend=\"ST_ConvexHull\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1341
+#, no-c-format
+msgid "ST_Polygonize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1343
+#, no-c-format
+msgid ""
+"Aggregate. Creates a GeometryCollection containing possible polygons formed "
+"from the constituent linework of a set of geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:1349
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Polygonize</function></"
+"funcdef> <paramdef><type>geometry set</type> <parameter>geomfield</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Polygonize</function></funcdef> <paramdef><type>geometry[]</"
+"type> <parameter>geom_array</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1365
+#, no-c-format
+msgid ""
+"Creates a GeometryCollection containing possible polygons formed from the "
+"constituent linework of a set of geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1370
+#, no-c-format
+msgid ""
+"Geometry Collections are often difficult to deal with with third party "
+"tools, so use ST_Polygonize in conjunction with <xref linkend=\"ST_Dump\"/> "
+"to dump the polygons out into individual polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1378
+#, no-c-format
+msgid "Availability: 1.0.0RC1 - requires GEOS >= 2.1.0."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1382
+#, no-c-format
+msgid "Examples: Polygonizing single linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1383
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Polygonize(the_geom_4269)) As geomtextrep\n"
+"FROM (SELECT the_geom_4269 FROM ma.suffolk_edges ORDER BY tlid LIMIT 45) As "
+"foo;\n"
+"\n"
+"geomtextrep\n"
+"-------------------------------------\n"
+" SRID=4269;GEOMETRYCOLLECTION(POLYGON((-71.040878 42.285678,-71.040943 "
+"42.2856,-71.04096 42.285752,-71.040878 42.285678)),\n"
+" POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 "
+"42.354358,-71.171794 42.354971,-71.170511 42.354855,\n"
+" -71.17112 42.354238,-71.17166 42.353675)))\n"
+"(1 row)\n"
+"\n"
+"--Use ST_Dump to dump out the polygonize geoms into individual polygons\n"
+"SELECT ST_AsEWKT((ST_Dump(foofoo.polycoll)).geom) As geomtextrep\n"
+"FROM (SELECT ST_Polygonize(the_geom_4269) As polycoll\n"
+"        FROM (SELECT the_geom_4269 FROM ma.suffolk_edges\n"
+"                ORDER BY tlid LIMIT 45) As foo) As foofoo;\n"
+"\n"
+"geomtextrep\n"
+"------------------------\n"
+" SRID=4269;POLYGON((-71.040878 42.285678,-71.040943 42.2856,-71.04096 "
+"42.285752,\n"
+"-71.040878 42.285678))\n"
+" SRID=4269;POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 "
+"42.354358\n"
+",-71.171794 42.354971,-71.170511 42.354855,-71.17112 42.354238,-71.17166 "
+"42.353675))\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1397
+#, no-c-format
+msgid "ST_Node"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1399
+#, no-c-format
+msgid "Node a set of linestrings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1406
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Node</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1417
+#, no-c-format
+msgid ""
+"Fully node a set of linestrings using the least possible number of nodes "
+"while preserving all of the input ones."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1424 reference_processing.xml:2168
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1426
+#, no-c-format
+msgid ""
+"Due to a bug in GEOS up to 3.3.1 this function fails to node self-"
+"intersecting lines. This is fixed with GEOS 3.3.2 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1433
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(\n"
+"                ST_Node('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'::"
+"geometry)\n"
+"        ) As  output;\n"
+"output\n"
+"-----------\n"
+"MULTILINESTRING((0 0 0,5 5 4.5),(5 5 4.5,10 10 10,0 10 5,5 5 4.5),(5 5 "
+"4.5,10 0 3))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1448
+#, no-c-format
+msgid "ST_OffsetCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1450
+#, no-c-format
+msgid ""
+"Return an offset line at a given distance and side from an input line. "
+"Useful for computing parallel lines about a center line"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1458
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_OffsetCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>signed_distance</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>style_parameters=''</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1471
+#, no-c-format
+msgid ""
+"Return an offset line at a given distance and side from an input line. All "
+"points of the returned geometries are not further than the given distance "
+"from the input geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1477
+#, no-c-format
+msgid ""
+"For positive distance the offset will be at the left side of the input line "
+"and retain the same direction. For a negative distance it'll be at the right "
+"side and in the opposite direction."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1483
+#, no-c-format
+msgid ""
+"Availability: 2.0 - requires GEOS >= 3.2, improved with GEOS >= 3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1487
+#, no-c-format
+msgid ""
+"The optional third parameter allows specifying a list of blank-separated "
+"key=value pairs to tweak operations as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1495
+#, no-c-format
+msgid ""
+"'join=round|mitre|bevel' : join style (defaults to \"round\"). 'miter' is "
+"also accepted as a synonym for 'mitre'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1498
+#, no-c-format
+msgid ""
+"'mitre_limit=#.#' : mitre ratio limit (only affects mitred join style). "
+"'miter_limit' is also accepted as a synonym for 'mitre_limit'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1503
+#, no-c-format
+msgid ""
+"Units of distance are measured in units of the spatial reference system."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1507
+#, no-c-format
+msgid "The inputs can only be LINESTRINGS."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1511
+#, no-c-format
+msgid ""
+"This function ignores the third dimension (z) and will always give a 2-d "
+"result even when presented with a 3d-geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1519
+#, no-c-format
+msgid "Compute an open buffer around roads"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1520
+#, no-c-format
+msgid ""
+"SELECT ST_Union(\n"
+" ST_OffsetCurve(f.the_geom,  f.width/2, 'quad_segs=4 join=round'),\n"
+" ST_OffsetCurve(f.the_geom, -f.width/2, 'quad_segs=4 join=round')\n"
+") as track\n"
+"FROM someroadstable;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1530
+#, no-c-format
+msgid "15, 'quad_segs=4 join=round' original line and its offset 15 units."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1534
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)'),\n"
+"        15, 'quad_segs=4 join=round'));\n"
+"--output --\n"
+"LINESTRING(164 1,18 1,12.2597485145237 2.1418070123307,\n"
+"        7.39339828220179 5.39339828220179,\n"
+"        5.39339828220179 7.39339828220179,\n"
+"        2.14180701233067 12.2597485145237,1 18,1 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1541
+#, no-c-format
+msgid "-15, 'quad_segs=4 join=round' original line and its offset -15 units"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1545
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(geom,\n"
+"        -15, 'quad_segs=4 join=round')) As notsocurvy\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- notsocurvy --\n"
+"LINESTRING(31 195,31 31,164 31)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1554
+#, no-c-format
+msgid ""
+"double-offset to get more curvy, note the first reverses direction, so -30 + "
+"15 = -15"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1557
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_OffsetCurve(geom,\n"
+"        -30, 'quad_segs=4 join=round'), -15, 'quad_segs=4 join=round')) As "
+"morecurvy\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- morecurvy --\n"
+"LINESTRING(164 31,46 31,40.2597485145236 32.1418070123307,\n"
+"35.3933982822018 35.3933982822018,\n"
+"32.1418070123307 40.2597485145237,31 46,31 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1564
+#, no-c-format
+msgid ""
+"double-offset to get more curvy,combined with regular offset 15 to get "
+"parallel lines. Overlaid with original."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1567
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(\n"
+"        ST_OffsetCurve(geom, 15, 'quad_segs=4 join=round'), \n"
+"        ST_OffsetCurve(ST_OffsetCurve(geom,\n"
+"        -30, 'quad_segs=4 join=round'), -15, 'quad_segs=4 join=round')\n"
+"        )\n"
+") As parallel_curves\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- parallel curves  --\n"
+"MULTILINESTRING((164 1,18 1,12.2597485145237 2.1418070123307,\n"
+"7.39339828220179 5.39339828220179,5.39339828220179 7.39339828220179,\n"
+"2.14180701233067 12.2597485145237,1 18,1 195),\n"
+"(164 31,46 31,40.2597485145236 32.1418070123307,35.3933982822018 "
+"35.3933982822018,\n"
+"32.1418070123307 40.2597485145237,31 46,31 195))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1576
+#, no-c-format
+msgid "15, 'quad_segs=4 join=bevel' shown with original line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1579
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)'), \n"
+"                15, 'quad_segs=4 join=bevel'));\n"
+"-- output --\n"
+"LINESTRING(164 1,18 1,7.39339828220179 5.39339828220179,\n"
+"        5.39339828220179 7.39339828220179,1 18,1 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1587
+#, no-c-format
+msgid "15,-15 collected, join=mitre mitre_limit=2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1590
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(\n"
+"        ST_OffsetCurve(geom, 15, 'quad_segs=4 join=mitre mitre_limit=2.2'),\n"
+"        ST_OffsetCurve(geom, -15, 'quad_segs=4 join=mitre mitre_limit=2.2')\n"
+"        ) )\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- output --\n"
+"MULTILINESTRING((164 1,11.7867965644036 1,1 11.7867965644036,1 195),\n"
+"        (31 195,31 31,164 31))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1607
+#, no-c-format
+msgid "ST_RemoveRepeatedPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1608
+#, no-c-format
+msgid "Returns a version of the given geometry with duplicated points removed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1614
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RemoveRepeatedPoints</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1623
+#, no-c-format
+msgid ""
+"Returns a version of the given geometry with duplicated points removed. Will "
+"actually do something only with (multi)lines, (multi)polygons and "
+"multipoints but you can safely call it with any kind of geometry. Since "
+"simplification occurs on a object-by-object basis you can also feed a "
+"GeometryCollection to this function."
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1643
+#, no-c-format
+msgid "ST_SharedPaths"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1644
+#, no-c-format
+msgid ""
+"Returns a collection containing paths shared by the two input linestrings/"
+"multilinestrings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1649
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SharedPaths</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>lineal1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>lineal2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1659
+#, no-c-format
+msgid ""
+"Returns a collection containing paths shared by the two input geometries. "
+"Those going in the same direction are in the first element of the "
+"collection, those going in the opposite direction are in the second element. "
+"The paths themselves are given in the direction of the first geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1664
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1667
+#, no-c-format
+msgid "Examples: Finding shared paths"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1677
+#, no-c-format
+msgid "A multilinestring and a linestring"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1688
+#, no-c-format
+msgid ""
+"The shared path of multilinestring and linestring overlaid with original "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1691
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_SharedPaths(\n"
+"    ST_GeomFromText('MULTILINESTRING((26 125,26 200,126 200,126 125,26 "
+"125),\n"
+"            (51 150,101 150,76 175,51 150))'),\n"
+"         ST_GeomFromText('LINESTRING(151 100,126 156.25,126 125,90 161, 76 "
+"175)')\n"
+"         )\n"
+"  ) As wkt\n"
+"\n"
+"                                wkt\n"
+"-------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(MULTILINESTRING((126 156.25,126 125),\n"
+" (101 150,90 161),(90 161,76 175)),MULTILINESTRING EMPTY)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1697
+#, no-c-format
+msgid ""
+"-- same example but linestring orientation flipped\n"
+"SELECT ST_AsText(\n"
+"  ST_SharedPaths(\n"
+"   ST_GeomFromText('LINESTRING(76 175,90 161,126 125,126 156.25,151 100)'),\n"
+"   ST_GeomFromText('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),\n"
+"            (51 150,101 150,76 175,51 150))')\n"
+"         )\n"
+"  ) As wkt\n"
+"\n"
+"                                wkt\n"
+"-------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(MULTILINESTRING EMPTY,\n"
+"MULTILINESTRING((76 175,90 161),(90 161,101 150),(126 125,126 156.25)))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1707
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1717
+#, no-c-format
+msgid "ST_Shift_Longitude"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1719
+#, no-c-format
+msgid ""
+"<refpurpose>Reads every point/vertex in every component of every feature in "
+"a geometry, and if the longitude coordinate is <0, adds 360 to it. The "
+"result would be a 0-360 version of the data to be plotted in a 180 centric "
+"map</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1727
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Shift_Longitude</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1737
+#, no-c-format
+msgid ""
+"<para>Reads every point/vertex in every component of every feature in a "
+"geometry, and if the longitude coordinate is <0, adds 360 to it. The "
+"result would be a 0-360 version of the data to be plotted in a 180 centric "
+"map</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1741
+#, no-c-format
+msgid "This is only useful for data in long lat e.g. 4326 (WGS 84 long lat)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1743
+#, no-c-format
+msgid ""
+"Pre-1.3.4 bug prevented this from working for MULTIPOINT. 1.3.4+ works with "
+"MULTIPOINT as well."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1748
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1757
+#, no-c-format
+msgid ""
+"--3d points\n"
+"SELECT ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(-118.58 "
+"38.38 10)'))) As geomA,\n"
+"        ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(241.42 "
+"38.38 10)'))) As geomb\n"
+"geomA                                                          geomB\n"
+"----------                                                  -----------\n"
+"SRID=4326;POINT(241.42 38.38 10) SRID=4326;POINT(-118.58 38.38 10)\n"
+"\n"
+"--regular line string\n"
+"SELECT ST_AsText(ST_Shift_Longitude(ST_GeomFromText('LINESTRING(-118.58 "
+"38.38, -118.20 38.45)')))\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(241.42 38.38,241.8 38.45)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1763
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_AsEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1769
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1770
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1776
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1786
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will actually do something only with (multi)lines and "
+"(multi)polygons but you can safely call it with any kind of geometry. Since "
+"simplification occurs on a object-by-object basis you can also feed a "
+"GeometryCollection to this function."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1793
+#, no-c-format
+msgid ""
+"Note that returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1795
+#, no-c-format
+msgid ""
+"Note topology may not be preserved and may result in invalid geometries. Use "
+"(see <xref linkend=\"ST_SimplifyPreserveTopology\"/>) to preserve topology."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1797
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1802
+#, no-c-format
+msgid "A circle simplified too much becomes a triangle, medium an octagon,"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1803
+#, no-c-format
+msgid ""
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_Simplify(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_Simplify(the_geom,0.5)) As np05_notquitecircle,\n"
+"ST_NPoints(ST_Simplify(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_Simplify(the_geom,10)) As np10_triangle,\n"
+"(ST_Simplify(the_geom,100) is null) As  np100_geometrygoesaway\n"
+"FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
+"-result\n"
+" np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | "
+"np10_triangle | np100_geometrygoesaway\n"
+"-----------+-------------------+---------------------+-------------"
+"+---------------+------------------------\n"
+"                49 |                33 |                  17 |           9 "
+"|             4 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1807
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_SimplifyPreserveTopology\"/>, Topology <xref linkend="
+"\"TP_ST_Simplify\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1813
+#, no-c-format
+msgid "ST_SimplifyPreserveTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1814
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will avoid creating derived geometries (polygons in "
+"particular) that are invalid."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1821
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SimplifyPreserveTopology</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1831
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will avoid creating derived geometries (polygons in "
+"particular) that are invalid. Will actually do something only with "
+"(multi)lines and (multi)polygons but you can safely call it with any kind of "
+"geometry. Since simplification occurs on a object-by-object basis you can "
+"also feed a GeometryCollection to this function."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1840
+#, no-c-format
+msgid "Requires GEOS 3.0.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1841
+#, no-c-format
+msgid "Availability: 1.3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1846
+#, no-c-format
+msgid ""
+"Same example as Simplify, but we see Preserve Topology prevents "
+"oversimplification. The circle can at most become a square."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1847
+#, no-c-format
+msgid ""
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.5)) As "
+"np05_notquitecircle,\n"
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,10)) As np10_square,\n"
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,100)) As  np100_stillsquare\n"
+"FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
+"\n"
+"--result--\n"
+" np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | "
+"np10_square | np100_stillsquare\n"
+"-----------+-------------------+---------------------+-------------"
+"+---------------+-------------------\n"
+"                49 |                33 |                  17 |           9 "
+"|             5 |                 5"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1857
+#, no-c-format
+msgid "ST_Split"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1858
+#, no-c-format
+msgid "Returns a collection of geometries resulting by splitting a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1863
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Split</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>blade</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1873
+#, no-c-format
+msgid ""
+"The function supports splitting a line by point, a line by line, a polygon "
+"by line. The returned geometry is always a collection."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1877
+#, no-c-format
+msgid ""
+"Think of this function as the opposite of ST_Union. Theoretically applying "
+"ST_Union to the elements of the returned collection should always yield the "
+"original geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1884
+#, no-c-format
+msgid ""
+"To improve the robustness of ST_Split it may be convenient to <xref linkend="
+"\"ST_Snap\"/> the input to the blade in advance using a very low tolerance. "
+"Otherwise the internally used coordinate grid may cause tolerance problems, "
+"where coordinates of input and blade do not fall onto each other and the "
+"input is not being split correctly (see <ulink url=\"http://trac.osgeo.org/"
+"postgis/ticket/2192\">#2192</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1889
+#, no-c-format
+msgid "Polygon Cut by Line"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1901 reference_processing.xml:1935
+#, no-c-format
+msgid "Before Split"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1913 reference_processing.xml:1947
+#, no-c-format
+msgid "After split"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1922
+#, no-c-format
+msgid ""
+"-- this creates a geometry collection consisting of the 2 halves of the "
+"polygon\n"
+"-- this is similar to the example we demonstrated in ST_BuildArea\n"
+"SELECT ST_Split(circle, line)\n"
+"FROM (SELECT \n"
+"    ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)) As line,\n"
+"    ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"    \n"
+"-- result --\n"
+" GEOMETRYCOLLECTION(POLYGON((150 90,149.039264020162 "
+"80.2454838991936,146.193976625564 70.8658283817455,..), POLYGON(..)))\n"
+" \n"
+"-- To convert to individual polygons, you can use ST_Dump or ST_GeometryN\n"
+"SELECT ST_AsText((ST_Dump(ST_Split(circle, line))).geom) As wkt\n"
+"FROM (SELECT \n"
+"    ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)) As line,\n"
+"    ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"    \n"
+"-- result --\n"
+"wkt\n"
+"---------------\n"
+"POLYGON((150 90,149.039264020162 80.2454838991936,..))\n"
+"POLYGON((60.1371179574584 60.1371179574584,58.4265193848728 "
+"62.2214883490198,53.8060233744357 ..))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1923
+#, no-c-format
+msgid "Multilinestring Cut by point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1956
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Split(mline, pt)) As wktcut\n"
+"        FROM (SELECT \n"
+"    ST_GeomFromText('MULTILINESTRING((10 10, 190 190), (15 15, 30 30, 100 "
+"90))') As mline,\n"
+"    ST_Point(30,30) As pt) As foo;\n"
+"    \n"
+"wktcut\n"
+"------\n"
+"GEOMETRYCOLLECTION(\n"
+"    LINESTRING(10 10,30 30),\n"
+"    LINESTRING(30 30,190 190),\n"
+"    LINESTRING(15 15,30 30),\n"
+"    LINESTRING(30 30,100 90)\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1960
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_BuildArea\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
+"linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1966
+#, no-c-format
+msgid "ST_SymDifference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1968
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the portions of A and B that do not "
+"intersect. It is called a symmetric difference because ST_SymDifference(A,B) "
+"= ST_SymDifference(B,A)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1975
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SymDifference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1986
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the portions of A and B that do not "
+"intersect. It is called a symmetric difference because ST_SymDifference(A,B) "
+"= ST_SymDifference(B,A). One can think of this as ST_Union(geomA,geomB) - "
+"ST_Intersection(A,B)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1996
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.21"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2016
+#, no-c-format
+msgid "The original linestrings shown together"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2028
+#, no-c-format
+msgid "The symmetric difference of the two linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2037
+#, no-c-format
+msgid ""
+"--Safe for 2d - symmetric difference of 2 linestrings\n"
+"SELECT ST_AsText(\n"
+"        ST_SymDifference(\n"
+"                ST_GeomFromText('LINESTRING(50 100, 50 200)'),\n"
+"                ST_GeomFromText('LINESTRING(50 50, 50 150)')\n"
+"        )\n"
+");\n"
+"\n"
+"st_astext\n"
+"---------\n"
+"MULTILINESTRING((50 150,50 200),(50 50,50 100))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2039
+#, no-c-format
+msgid ""
+"--When used in 3d doesn't quite do the right thing\n"
+"SELECT ST_AsEWKT(ST_SymDifference(ST_GeomFromEWKT('LINESTRING(1 2 1, 1 4 "
+"2)'),\n"
+"        ST_GeomFromEWKT('LINESTRING(1 1 3, 1 3 4)')))\n"
+"\n"
+"st_astext\n"
+"------------\n"
+"MULTILINESTRING((1 3 2.75,1 4 2),(1 1 3,1 2 2.25))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2046
+#, no-c-format
+msgid ", <xref linkend=\"ST_Intersection\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:2053
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:2054
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the point set union of the Geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:2059
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Union</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2078
+#, no-c-format
+msgid ""
+"Output type can be a MULTI*, single geometry, or Geometry Collection. Comes "
+"in 2 variants. Variant 1 unions 2 geometries resulting in a new geometry "
+"with no intersecting regions. Variant 2 is an aggregate function that takes "
+"a set of geometries and unions them into a single ST_Geometry resulting in "
+"no intersecting regions."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2082
+#, no-c-format
+msgid ""
+"Aggregate version: This function returns a MULTI geometry or NON-MULTI "
+"geometry from a set of geometries. The ST_Union() function is an \"aggregate"
+"\" function in the terminology of PostgreSQL. That means that it operates on "
+"rows of data, in the same way the SUM() and AVG() functions do and like most "
+"aggregates, it also ignores NULL geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2088
+#, no-c-format
+msgid ""
+"Non-Aggregate version: This function returns a geometry being a union of two "
+"input geometries. Output type can be a MULTI*, NON-MULTI or "
+"GEOMETRYCOLLECTION. If any are NULL, then NULL is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2092
+#, no-c-format
+msgid ""
+"ST_Collect and ST_Union are often interchangeable. ST_Union is in general "
+"orders of magnitude slower than ST_Collect because it tries to dissolve "
+"boundaries and reorder geometries to ensure that a constructed Multi* "
+"doesn't have intersecting regions."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2098
+#, no-c-format
+msgid ""
+"NOTE: this function was formerly called GeomUnion(), which was renamed from "
+"\"Union\" because UNION is an SQL reserved word."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2101
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_Union was enhanced. ST_Union(geomarray) was "
+"introduced and also faster aggregate collection in PostgreSQL. If you are "
+"using GEOS 3.1.0+ ST_Union will use the faster Cascaded Union algorithm "
+"described in <ulink url=\"http://blog.cleverelephant.ca/2009/01/must-faster-"
+"unions-in-postgis-14.html\">http://blog.cleverelephant.ca/2009/01/must-"
+"faster-unions-in-postgis-14.html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2107
+#, no-c-format
+msgid "Aggregate version is not explicitly defined in OGC SPEC."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2108
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3: 5.1.19 the z-index (elevation) when polygons are "
+"involved."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2114
+#, no-c-format
+msgid "Aggregate example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2115
+#, no-c-format
+msgid ""
+"SELECT stusps,\n"
+"           ST_Multi(ST_Union(f.the_geom)) as singlegeom\n"
+"         FROM sometable As f\n"
+"GROUP BY stusps"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2117
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
+"        ST_GeomFromText('POINT(-2 3)') ) )\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(-2 3,1 2)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
+"                ST_GeomFromText('POINT(1 2)') ) );\n"
+"st_astext\n"
+"----------\n"
+"POINT(1 2)\n"
+"\n"
+"--3d example - sort of supports 3d (and with mixed dimensions!)\n"
+"SELECT ST_AsEWKT(st_union(the_geom))\n"
+"FROM\n"
+"(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2,-7.1 4.2,-7.1 4.3,\n"
+"-7 4.2))') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom\n"
+"UNION ALL\n"
+"        SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 "
+"5,-7.1 4.2 5,-7.1 4.3 5,-7 4.2 5)));\n"
+"\n"
+"--3d example not mixing dimensions\n"
+"SELECT ST_AsEWKT(st_union(the_geom))\n"
+"FROM\n"
+"(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2 2,-7.1 4.2 3,-7.1 4.3 2,\n"
+"-7 4.2 2))') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom\n"
+"UNION ALL\n"
+"        SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 "
+"2,-7.1 4.2 3,-7.1 4.3 2,-7 4.2 2)))\n"
+"\n"
+"--Examples using new Array construct\n"
+"SELECT ST_Union(ARRAY(SELECT the_geom FROM sometable));\n"
+"\n"
+"SELECT ST_AsText(ST_Union(ARRAY[ST_GeomFromText('LINESTRING(1 2, 3 4)'),\n"
+"                        ST_GeomFromText('LINESTRING(3 4, 4 5)')])) As "
+"wktunion;\n"
+"\n"
+"--wktunion---\n"
+"MULTILINESTRING((3 4,4 5),(1 2,3 4))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:2130
+#, no-c-format
+msgid "ST_UnaryUnion"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:2132
+#, no-c-format
+msgid "Like ST_Union, but working at the geometry component level."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:2137
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_UnaryUnion</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2148
+#, no-c-format
+msgid ""
+"Unlike ST_Union, ST_UnaryUnion does dissolve boundaries between components "
+"of a multipolygon (invalid) and does perform union between the components of "
+"a geometrycollection. Each components of the input geometry is assumed to be "
+"valid, so you won't get a valid multipolygon out of a bow-tie polygon "
+"(invalid)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2158
+#, no-c-format
+msgid ""
+"You may use this function to node a set of linestrings. You may mix "
+"ST_UnaryUnion with ST_Collect to fine-tune how many geometries at once you "
+"want to dissolve to be nice on both memory size and CPU time, finding the "
+"balance between ST_Union and ST_MemUnion."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2176
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MemUnion\"/>, <xref linkend=\"ST_Collect\"/>, <xref "
+"linkend=\"ST_Node\"/>"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_raster.xml.po b/doc/po/ko_KR/reference_raster.xml.po
new file mode 100644
index 0000000..75d26e2
--- /dev/null
+++ b/doc/po/ko_KR/reference_raster.xml.po
@@ -0,0 +1,16704 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# BJ Jang <qgis.tr.kr at gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:12+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_raster.xml:3
+#, no-c-format
+msgid "Raster Reference"
+msgstr "래스트 참조문서"
+
+#. Tag: para
+#: reference_raster.xml:5
+#, no-c-format
+msgid ""
+"The functions given below are the ones which a user of PostGIS Raster is "
+"likely to need and which are currently available in PostGIS Raster. There "
+"are other functions which are required support functions to the raster "
+"objects which are not of use to a general user."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9
+#, no-c-format
+msgid ""
+"<varname>raster</varname> is a new PostGIS type for storing and analyzing "
+"raster data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10
+#, no-c-format
+msgid ""
+"For loading rasters from raster files please refer to <xref linkend="
+"\"RT_Loading_Rasters\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:12
+#, no-c-format
+msgid ""
+"For the examples in this reference we will be using a raster table of dummy "
+"rasters - Formed with the following code"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:13
+#, no-c-format
+msgid ""
+"CREATE TABLE dummy_rast(rid integer, rast raster);\n"
+"INSERT INTO dummy_rast(rid, rast)\n"
+"VALUES (1,\n"
+"('01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0000' -- nBands (uint16 0)\n"
+"||\n"
+"'0000000000000040' -- scaleX (float64 2)\n"
+"||\n"
+"'0000000000000840' -- scaleY (float64 3)\n"
+"||\n"
+"'000000000000E03F' -- ipX (float64 0.5)\n"
+"||\n"
+"'000000000000E03F' -- ipY (float64 0.5)\n"
+"||\n"
+"'0000000000000000' -- skewX (float64 0)\n"
+"||\n"
+"'0000000000000000' -- skewY (float64 0)\n"
+"||\n"
+"'00000000' -- SRID (int32 0)\n"
+"||\n"
+"'0A00' -- width (uint16 10)\n"
+"||\n"
+"'1400' -- height (uint16 20)\n"
+")::raster\n"
+"),\n"
+"-- Raster: 5 x 5 pixels, 3 bands, PT_8BUI pixel type, NODATA = 0\n"
+"(2,  ('01000003009A9999999999A93F9A9999999999A9BF000000E02B274A' ||\n"
+"'41000000007719564100000000000000000000000000000000FFFFFFFF050005000400FDFEFDFEFEFDFEFEFDF9FAFEF' "
+"||\n"
+"'EFCF9FBFDFEFEFDFCFAFEFEFE04004E627AADD16076B4F9FE6370A9F5FE59637AB0E54F58617087040046566487A1506CA2E3FA5A6CAFFBFE4D566DA4CB3E454C5665')::"
+"raster);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:17
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types specifically created to support "
+"raster functionality."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:20
+#, no-c-format
+msgid "Raster Support Data types"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:24
+#, no-c-format
+msgid "geomval"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:25
+#, no-c-format
+msgid ""
+"A spatial datatype with two fields - geom (holding a geometry object) and "
+"val (holding a double precision pixel value from a raster band)."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:30 reference_raster.xml:49 reference_raster.xml:121
+#: reference_raster.xml:171 reference_raster.xml:211 reference_raster.xml:257
+#: reference_raster.xml:354 reference_raster.xml:536 reference_raster.xml:710
+#: reference_raster.xml:777 reference_raster.xml:846 reference_raster.xml:889
+#: reference_raster.xml:924 reference_raster.xml:961 reference_raster.xml:1002
+#: reference_raster.xml:1058 reference_raster.xml:1103
+#: reference_raster.xml:1209 reference_raster.xml:1418
+#: reference_raster.xml:1505 reference_raster.xml:1601
+#: reference_raster.xml:1668 reference_raster.xml:1733
+#: reference_raster.xml:1775 reference_raster.xml:1825
+#: reference_raster.xml:1864 reference_raster.xml:1898
+#: reference_raster.xml:1935 reference_raster.xml:1978
+#: reference_raster.xml:2013 reference_raster.xml:2047
+#: reference_raster.xml:2097 reference_raster.xml:2151
+#: reference_raster.xml:2188 reference_raster.xml:2228
+#: reference_raster.xml:2283 reference_raster.xml:2338
+#: reference_raster.xml:2384 reference_raster.xml:2419
+#: reference_raster.xml:2455 reference_raster.xml:2491
+#: reference_raster.xml:2526 reference_raster.xml:2565
+#: reference_raster.xml:2599 reference_raster.xml:2633
+#: reference_raster.xml:2677 reference_raster.xml:2739
+#: reference_raster.xml:2794 reference_raster.xml:2835
+#: reference_raster.xml:2882 reference_raster.xml:2924
+#: reference_raster.xml:2975 reference_raster.xml:3010
+#: reference_raster.xml:3085 reference_raster.xml:3128
+#: reference_raster.xml:3174 reference_raster.xml:3232
+#: reference_raster.xml:3275 reference_raster.xml:3326
+#: reference_raster.xml:3369 reference_raster.xml:3441
+#: reference_raster.xml:3528 reference_raster.xml:3615
+#: reference_raster.xml:3703 reference_raster.xml:3788
+#: reference_raster.xml:3914 reference_raster.xml:4010
+#: reference_raster.xml:4062 reference_raster.xml:4110
+#: reference_raster.xml:4153 reference_raster.xml:4200
+#: reference_raster.xml:4244 reference_raster.xml:4282
+#: reference_raster.xml:4357 reference_raster.xml:4426
+#: reference_raster.xml:4494 reference_raster.xml:4571
+#: reference_raster.xml:4643 reference_raster.xml:4722
+#: reference_raster.xml:4830 reference_raster.xml:4865
+#: reference_raster.xml:4932 reference_raster.xml:4997
+#: reference_raster.xml:5110 reference_raster.xml:5231
+#: reference_raster.xml:5297 reference_raster.xml:5376
+#: reference_raster.xml:5522 reference_raster.xml:5565
+#: reference_raster.xml:5611 reference_raster.xml:5696
+#: reference_raster.xml:5787 reference_raster.xml:5875
+#: reference_raster.xml:5986 reference_raster.xml:6179
+#: reference_raster.xml:6455 reference_raster.xml:6599
+#: reference_raster.xml:6836 reference_raster.xml:7042
+#: reference_raster.xml:7166 reference_raster.xml:7492
+#: reference_raster.xml:7610 reference_raster.xml:7723
+#: reference_raster.xml:7865 reference_raster.xml:7951
+#: reference_raster.xml:8023 reference_raster.xml:8087
+#: reference_raster.xml:8158 reference_raster.xml:8233
+#: reference_raster.xml:8316 reference_raster.xml:8387
+#: reference_raster.xml:8443 reference_raster.xml:8518
+#: reference_raster.xml:8589 reference_raster.xml:8673
+#: reference_raster.xml:8765 reference_raster.xml:8847
+#: reference_raster.xml:8901 reference_raster.xml:8975
+#: reference_raster.xml:9023 reference_raster.xml:9075
+#: reference_raster.xml:9117 reference_raster.xml:9165
+#: reference_raster.xml:9216 reference_raster.xml:9264
+#: reference_raster.xml:9306 reference_raster.xml:9380
+#: reference_raster.xml:9425 reference_raster.xml:9470
+#: reference_raster.xml:9515 reference_raster.xml:9584
+#: reference_raster.xml:9631 reference_raster.xml:9704
+#: reference_raster.xml:9772 reference_raster.xml:9861
+#: reference_raster.xml:9946 reference_raster.xml:10027
+#: reference_raster.xml:10108 reference_raster.xml:10237
+#: reference_raster.xml:10321 reference_raster.xml:10401
+#: reference_raster.xml:10520 reference_raster.xml:10567
+#: reference_raster.xml:10639 reference_raster.xml:10736
+#: reference_raster.xml:10829
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:31
+#, no-c-format
+msgid ""
+"geomval is a compound data type consisting of a geometry object referenced "
+"by the .geom field and val, a double precision value that represents the "
+"pixel value at a particular geometric location in a raster band. It is used "
+"by the ST_DumpAsPolygon and Raster intersection family of functions as an "
+"output type to explode a raster band into geometry polygons."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:37 reference_raster.xml:107 reference_raster.xml:157
+#: reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:340
+#: reference_raster.xml:389 reference_raster.xml:584 reference_raster.xml:725
+#: reference_raster.xml:803 reference_raster.xml:863 reference_raster.xml:899
+#: reference_raster.xml:936 reference_raster.xml:974 reference_raster.xml:1022
+#: reference_raster.xml:1073 reference_raster.xml:1123
+#: reference_raster.xml:1253 reference_raster.xml:1470
+#: reference_raster.xml:1560 reference_raster.xml:1621
+#: reference_raster.xml:1697 reference_raster.xml:1748
+#: reference_raster.xml:1796 reference_raster.xml:1843
+#: reference_raster.xml:1877 reference_raster.xml:1913
+#: reference_raster.xml:1956 reference_raster.xml:1992
+#: reference_raster.xml:2026 reference_raster.xml:2070
+#: reference_raster.xml:2130 reference_raster.xml:2167
+#: reference_raster.xml:2205 reference_raster.xml:2250
+#: reference_raster.xml:2309 reference_raster.xml:2363
+#: reference_raster.xml:2398 reference_raster.xml:2434
+#: reference_raster.xml:2470 reference_raster.xml:2505
+#: reference_raster.xml:2539 reference_raster.xml:2578
+#: reference_raster.xml:2612 reference_raster.xml:2647
+#: reference_raster.xml:2697 reference_raster.xml:2754
+#: reference_raster.xml:2809 reference_raster.xml:2860
+#: reference_raster.xml:2895 reference_raster.xml:2950
+#: reference_raster.xml:2988 reference_raster.xml:3063
+#: reference_raster.xml:3100 reference_raster.xml:3142
+#: reference_raster.xml:3200 reference_raster.xml:3243
+#: reference_raster.xml:3294 reference_raster.xml:3337
+#: reference_raster.xml:3388 reference_raster.xml:3463
+#: reference_raster.xml:3553 reference_raster.xml:3647
+#: reference_raster.xml:3718 reference_raster.xml:3867
+#: reference_raster.xml:3932 reference_raster.xml:4088
+#: reference_raster.xml:4123 reference_raster.xml:4172
+#: reference_raster.xml:4217 reference_raster.xml:4257
+#: reference_raster.xml:4295 reference_raster.xml:4387
+#: reference_raster.xml:4452 reference_raster.xml:4521
+#: reference_raster.xml:4599 reference_raster.xml:4673
+#: reference_raster.xml:4795 reference_raster.xml:4843
+#: reference_raster.xml:4884 reference_raster.xml:4953
+#: reference_raster.xml:5014 reference_raster.xml:5145
+#: reference_raster.xml:5246 reference_raster.xml:5333
+#: reference_raster.xml:5393 reference_raster.xml:5540
+#: reference_raster.xml:5650 reference_raster.xml:5741
+#: reference_raster.xml:5832 reference_raster.xml:5912
+#: reference_raster.xml:6142 reference_raster.xml:6376
+#: reference_raster.xml:6520 reference_raster.xml:6767
+#: reference_raster.xml:7003 reference_raster.xml:7116
+#: reference_raster.xml:7408 reference_raster.xml:7567
+#: reference_raster.xml:7690 reference_raster.xml:7823
+#: reference_raster.xml:7894 reference_raster.xml:7982
+#: reference_raster.xml:8055 reference_raster.xml:8125
+#: reference_raster.xml:8194 reference_raster.xml:8276
+#: reference_raster.xml:8355 reference_raster.xml:8410
+#: reference_raster.xml:8479 reference_raster.xml:8550
+#: reference_raster.xml:8625 reference_raster.xml:8718
+#: reference_raster.xml:8815 reference_raster.xml:8858
+#: reference_raster.xml:8943 reference_raster.xml:8991
+#: reference_raster.xml:9042 reference_raster.xml:9092
+#: reference_raster.xml:9137 reference_raster.xml:9190
+#: reference_raster.xml:9236 reference_raster.xml:9279
+#: reference_raster.xml:9318 reference_raster.xml:9529
+#: reference_raster.xml:9597 reference_raster.xml:9650
+#: reference_raster.xml:9716 reference_raster.xml:9807
+#: reference_raster.xml:9892 reference_raster.xml:9973
+#: reference_raster.xml:10054 reference_raster.xml:10138
+#: reference_raster.xml:10267 reference_raster.xml:10348
+#: reference_raster.xml:10428 reference_raster.xml:10541
+#: reference_raster.xml:10585 reference_raster.xml:10672
+#: reference_raster.xml:10767 reference_raster.xml:10860
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:44
+#, no-c-format
+msgid "addbandarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:45
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_AddBand function "
+"defining the attributes and initial value of the new band.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:50
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_AddBand function defining "
+"the attributes and initial value of the new band.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:55
+#, no-c-format
+msgid "<parameter>index </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:60
+#, no-c-format
+msgid ""
+"1-based value indicating the position where the new band will be added "
+"amongst the raster's bands. If NULL, the new band will be added at the end "
+"of the raster's bands."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:67
+#, no-c-format
+msgid "<parameter>pixeltype </parameter> <type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:72
+#, no-c-format
+msgid ""
+"Pixel type of the new band. One of defined pixel types as described in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:79
+#, no-c-format
+msgid "<parameter>initialvalue </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:84
+#, no-c-format
+msgid "Initial value that all pixels of new band will be set to."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:91
+#, no-c-format
+msgid "<parameter>nodataval </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:96
+#, no-c-format
+msgid ""
+"NODATA value of the new band. If NULL, the new band will not have a NODATA "
+"value assigned."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:116
+#, no-c-format
+msgid "rastbandarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:117
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type for use when needing to express a raster and a "
+"band index of that raster.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:122
+#, no-c-format
+msgid ""
+"<para>A composite type for use when needing to express a raster and a band "
+"index of that raster.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:128
+#, no-c-format
+msgid "<parameter>rast </parameter> <type>raster</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:133
+#, no-c-format
+msgid "The raster in question/"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:140 reference_raster.xml:360
+#, no-c-format
+msgid "<parameter>nband </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:145
+#, no-c-format
+msgid "1-based value indicating the band of raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:166
+#, no-c-format
+msgid "raster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:167
+#, no-c-format
+msgid "raster spatial data type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:172
+#, no-c-format
+msgid ""
+"raster is a spatial data type used to represent raster data such as those "
+"imported from jpegs, tiffs, pngs, digital elevation models. Each raster has "
+"1 or more bands each having a set of pixel values. Rasters can be "
+"georeferenced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:175
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with GDAL support. Currently rasters can be "
+"implicitly converted to geometry type, but the conversion returns the <xref "
+"linkend=\"RT_ST_ConvexHull\"/> of the raster. This auto casting may be "
+"removed in the near future so don't rely on it."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:181
+#, no-c-format
+msgid "Casting Behavior"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:182
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:187
+#, no-c-format
+msgid "Cast To"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:188
+#, no-c-format
+msgid "Behavior"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:191
+#, no-c-format
+msgid "geometry"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:192
+#, no-c-format
+msgid "automatic"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:207
+#, no-c-format
+msgid "reclassarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:208
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_Reclass function "
+"defining the behavior of reclassification.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:212
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_Reclass function defining "
+"the behavior of reclassification.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:215
+#, no-c-format
+msgid "<parameter>nband </parameter><type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:216
+#, no-c-format
+msgid "The band number of band to reclassify."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:219
+#, no-c-format
+msgid "<parameter>reclassexpr </parameter><type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:220
+#, no-c-format
+msgid ""
+"range expression consisting of comma delimited range:map_range mappings. : "
+"to define mapping that defines how to map old band values to new band "
+"values. ( means >, ) means less than, ] < or equal, [ means > or "
+"equal"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:221
+#, no-c-format
+msgid ""
+"1. [a-b] = a <= x <= b\n"
+"\n"
+"2. (a-b] = a < x <= b\n"
+"\n"
+"3. [a-b) = a <= x < b\n"
+"\n"
+"4. (a-b) = a < x < b"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:222
+#, no-c-format
+msgid "( notation is optional so a-b means the same as (a-b)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:227
+#, no-c-format
+msgid "<parameter>pixeltype </parameter><type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:228
+#, no-c-format
+msgid ""
+"One of defined pixel types as described in <xref linkend="
+"\"RT_ST_BandPixelType\"/>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:231
+#, no-c-format
+msgid "<parameter>nodataval </parameter><type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:232
+#, no-c-format
+msgid ""
+"Value to treat as no data. For image outputs that support transparency, "
+"these will be blank."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:237
+#, no-c-format
+msgid "Example: Reclassify band 2 as an 8BUI where 255 is nodata value"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:238
+#, no-c-format
+msgid ""
+"SELECT ROW(2, '0-100:1-10, 101-500:11-150,501 - 10000: 151-254', '8BUI', "
+"255)::reclassarg;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:241
+#, no-c-format
+msgid "Example: Reclassify band 1 as an 1BB and no nodata value defined"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:242
+#, no-c-format
+msgid "SELECT ROW(1, '0-100]:0, (100-255:1', '1BB', NULL)::reclassarg;"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:252
+#, no-c-format
+msgid "summarystats"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:253
+#, no-c-format
+msgid ""
+"A composite type returned by the ST_SummaryStats and ST_SummaryStatsAgg "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:258
+#, no-c-format
+msgid ""
+"A composite type returned by the <xref linkend=\"RT_ST_SummaryStats\"/> and "
+"<xref linkend=\"RT_ST_SummaryStatsAgg\"/> functions."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:263
+#, no-c-format
+msgid "<parameter>count </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:268
+#, no-c-format
+msgid "Number of pixels counted for the summary statistics."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:275
+#, no-c-format
+msgid "<parameter>sum </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:280
+#, no-c-format
+msgid "Sum of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:287
+#, no-c-format
+msgid "<parameter>mean </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:292
+#, no-c-format
+msgid "Arithmetic mean of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:299
+#, no-c-format
+msgid "<parameter>stddev </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:304
+#, no-c-format
+msgid "Standard deviation of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:311
+#, no-c-format
+msgid "<parameter>min </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:316
+#, no-c-format
+msgid "Minimum value of counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:323
+#, no-c-format
+msgid "<parameter>max </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:328
+#, no-c-format
+msgid "Maximum value of counted pixel values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:341
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:349
+#, no-c-format
+msgid "unionarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:350
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_Union function "
+"defining the bands to be processed and behavior of the UNION operation.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:355
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_Union function defining the "
+"bands to be processed and behavior of the UNION operation.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:365
+#, no-c-format
+msgid "1-based value indicating the band of each input raster to be processed."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:372
+#, no-c-format
+msgid "<parameter>uniontype </parameter> <type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:377
+#, no-c-format
+msgid ""
+"Type of UNION operation. One of defined types as described in <xref linkend="
+"\"RT_ST_Union\"/>."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:399
+#, no-c-format
+msgid "Raster Management"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:402
+#, no-c-format
+msgid "AddRasterConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:404
+#, no-c-format
+msgid ""
+"Adds raster constraints to a loaded raster table for a specific column that "
+"constrains spatial ref, scaling, blocksize, alignment, bands, band type and "
+"a flag to denote if raster column is regularly blocked. The table must be "
+"loaded with data for the constraints to be inferred. Returns true of the "
+"constraint setting was accomplished and if issues a notice."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:408
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>scale_x=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:538
+#, no-c-format
+msgid ""
+"Generates constraints on a raster column that are used to display "
+"information in the <varname>raster_columns</varname> raster catalog. The "
+"<varname>rastschema</varname> is the name of the table schema the table "
+"resides in. The <varname>srid</varname> must be an integer value reference "
+"to an entry in the SPATIAL_REF_SYS table."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:543
+#, no-c-format
+msgid ""
+"<varname>raster2pgsql</varname> loader uses this function to register raster "
+"tables"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:544
+#, no-c-format
+msgid ""
+"Valid constraint names to pass in: refer to <xref linkend=\"RT_Raster_Columns"
+"\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:546
+#, no-c-format
+msgid "<varname>blocksize</varname> sets both X and Y blocksize"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:547
+#, no-c-format
+msgid ""
+"<varname>blocksize_x</varname> sets X tile (width in pixels of each tile)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:548
+#, no-c-format
+msgid ""
+"<varname>blocksize_y</varname> sets Y tile (height in pixels of each tile)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:549
+#, no-c-format
+msgid ""
+"<varname>extent</varname> computes extent of whole table and applys "
+"constraint all rasters must be within that extent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:551
+#, no-c-format
+msgid "<varname>num_bands</varname> number of bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:552
+#, no-c-format
+msgid ""
+"<varname>pixel_types</varname> reads array of pixel types for each band "
+"ensure all band n have same pixel type"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:553
+#, no-c-format
+msgid ""
+"<varname>regular_blocking</varname> sets spatially unique (no two rasters "
+"can be spatially the same) and coverage tile (raster is aligned to a "
+"coverage) constraints"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:554
+#, no-c-format
+msgid ""
+"<varname>same_alignment</varname> ensures they all have same alignment "
+"meaning any two tiles you compare will return true for. Refer to"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:555
+#, no-c-format
+msgid "<varname>srid</varname> ensures all have same srid"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:556
+#, no-c-format
+msgid "More -- any listed as inputs into the above functions"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:559
+#, no-c-format
+msgid ""
+"This function infers the constraints from the data already present in the "
+"table. As such for it to work, you must create the raster column first and "
+"then load it with data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:564
+#, no-c-format
+msgid ""
+"If you need to load more data in your tables after you have already applied "
+"constraints, you may want to run the DropRasterConstraints if the extent of "
+"your data has changed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:568 reference_raster.xml:717 reference_raster.xml:793
+#: reference_raster.xml:859 reference_raster.xml:1511
+#: reference_raster.xml:1902 reference_raster.xml:2932
+#: reference_raster.xml:3089 reference_raster.xml:3132
+#: reference_raster.xml:3189 reference_raster.xml:4873
+#: reference_raster.xml:4936 reference_raster.xml:5131
+#: reference_raster.xml:5235 reference_raster.xml:5305
+#: reference_raster.xml:5527 reference_raster.xml:6000
+#: reference_raster.xml:7062 reference_raster.xml:7261
+#: reference_raster.xml:7525 reference_raster.xml:7644
+#: reference_raster.xml:7773 reference_raster.xml:7871
+#: reference_raster.xml:7959 reference_raster.xml:8043
+#: reference_raster.xml:8182 reference_raster.xml:8257
+#: reference_raster.xml:8344 reference_raster.xml:8467
+#: reference_raster.xml:8538 reference_raster.xml:8613
+#: reference_raster.xml:8699 reference_raster.xml:8795
+#: reference_raster.xml:8923 reference_raster.xml:9387
+#: reference_raster.xml:9639 reference_raster.xml:9711
+#: reference_raster.xml:10530
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:572
+#, no-c-format
+msgid "Examples: Apply all possible constraints on column based on data"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:574
+#, no-c-format
+msgid ""
+"CREATE TABLE myrasters(rid SERIAL primary key, rast raster);\n"
+"INSERT INTO myrasters(rast)\n"
+"SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, "
+"0,4326), 1, '8BSI'::text, -129, NULL);\n"
+"\n"
+"SELECT AddRasterConstraints('myrasters'::name, 'rast'::name);\n"
+"\n"
+"\n"
+"-- verify if registered correctly in the raster_columns view --\n"
+"SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, "
+"pixel_types, nodata_values\n"
+"        FROM raster_columns\n"
+"        WHERE r_table_name = 'myrasters';\n"
+"        \n"
+" srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | "
+"pixel_types| nodata_values\n"
+"------+---------+---------+-------------+-------------+-----------"
+"+-------------+---------------\n"
+" 4326 |       2 |       2 |        1000 |        1000 |         1 | "
+"{8BSI}      | {0}"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:578
+#, no-c-format
+msgid "Examples: Apply single constraint"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:580
+#, no-c-format
+msgid ""
+"CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);\n"
+"INSERT INTO myrasters2(rast)\n"
+"SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, "
+"0,4326), 1, '8BSI'::text, -129, NULL);\n"
+"\n"
+"SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::"
+"name,'regular_blocking', 'blocksize');\n"
+"-- get notice--\n"
+"NOTICE:  Adding regular blocking constraint\n"
+"NOTICE:  Adding blocksize-X constraint\n"
+"NOTICE:  Adding blocksize-Y constraint"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:586
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/"
+">, <xref linkend=\"RT_DropRasterConstraints\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:592
+#, no-c-format
+msgid "DropRasterConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:594
+#, no-c-format
+msgid ""
+"Drops PostGIS raster constraints that refer to a raster table column. Useful "
+"if you need to reload data or update your raster column data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:598
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>scale_x=true</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>constraints</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:711
+#, no-c-format
+msgid ""
+"Drops PostGIS raster constraints that refer to a raster table column that "
+"were added by <xref linkend=\"RT_AddRasterConstraints\"/>. Useful if you "
+"need to load more data or update your raster column data. You do not need to "
+"do this if you want to get rid of a raster table or a raster column."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:713
+#, no-c-format
+msgid "To drop a raster table use the standard"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:713
+#, no-c-format
+msgid "DROP TABLE mytable"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:714
+#, no-c-format
+msgid ""
+"To drop just a raster column and leave the rest of the table, use standard "
+"SQL"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:714
+#, no-c-format
+msgid "ALTER TABLE mytable DROP COLUMN rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:715
+#, no-c-format
+msgid ""
+"the table will disappear from the <varname>raster_columns</varname> catalog "
+"if the column or table is dropped. However if only the constraints are "
+"dropped, the raster column will still be listed in the "
+"<varname>raster_columns</varname> catalog, but there will be no other "
+"information about it aside from the column name and table."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:720 reference_raster.xml:797 reference_raster.xml:894
+#: reference_raster.xml:930 reference_raster.xml:968 reference_raster.xml:1515
+#: reference_raster.xml:1614 reference_raster.xml:1688
+#: reference_raster.xml:1789 reference_raster.xml:1837
+#: reference_raster.xml:1870 reference_raster.xml:1906
+#: reference_raster.xml:1949 reference_raster.xml:1985
+#: reference_raster.xml:2019 reference_raster.xml:2159
+#: reference_raster.xml:2197 reference_raster.xml:2240
+#: reference_raster.xml:2299 reference_raster.xml:2353
+#: reference_raster.xml:2391 reference_raster.xml:2426
+#: reference_raster.xml:2462 reference_raster.xml:2498
+#: reference_raster.xml:2534 reference_raster.xml:2571
+#: reference_raster.xml:2605 reference_raster.xml:2639
+#: reference_raster.xml:2690 reference_raster.xml:2747
+#: reference_raster.xml:2802 reference_raster.xml:2853
+#: reference_raster.xml:2888 reference_raster.xml:2943
+#: reference_raster.xml:2981 reference_raster.xml:3056
+#: reference_raster.xml:3093 reference_raster.xml:3137
+#: reference_raster.xml:3195 reference_raster.xml:3238
+#: reference_raster.xml:3289 reference_raster.xml:3332
+#: reference_raster.xml:3383 reference_raster.xml:3450
+#: reference_raster.xml:3544 reference_raster.xml:3636
+#: reference_raster.xml:3711 reference_raster.xml:3924
+#: reference_raster.xml:4019 reference_raster.xml:4082
+#: reference_raster.xml:4116 reference_raster.xml:4164
+#: reference_raster.xml:4207 reference_raster.xml:4288
+#: reference_raster.xml:4381 reference_raster.xml:4445
+#: reference_raster.xml:4513 reference_raster.xml:4591
+#: reference_raster.xml:4668 reference_raster.xml:4747
+#: reference_raster.xml:4836 reference_raster.xml:4877
+#: reference_raster.xml:4947 reference_raster.xml:5009
+#: reference_raster.xml:5239 reference_raster.xml:5388
+#: reference_raster.xml:5531 reference_raster.xml:5584
+#: reference_raster.xml:5824 reference_raster.xml:6265
+#: reference_raster.xml:7066 reference_raster.xml:7529
+#: reference_raster.xml:7777 reference_raster.xml:8048
+#: reference_raster.xml:8120 reference_raster.xml:8187
+#: reference_raster.xml:8349 reference_raster.xml:8405
+#: reference_raster.xml:8472 reference_raster.xml:8543
+#: reference_raster.xml:8618 reference_raster.xml:8853
+#: reference_raster.xml:8986 reference_raster.xml:9037
+#: reference_raster.xml:9086 reference_raster.xml:9129
+#: reference_raster.xml:9185 reference_raster.xml:9230
+#: reference_raster.xml:9274 reference_raster.xml:9313
+#: reference_raster.xml:9391 reference_raster.xml:9436
+#: reference_raster.xml:9481 reference_raster.xml:9644
+#: reference_raster.xml:9800 reference_raster.xml:9887
+#: reference_raster.xml:9968 reference_raster.xml:10049
+#: reference_raster.xml:10130 reference_raster.xml:10262
+#: reference_raster.xml:10343 reference_raster.xml:10423
+#: reference_raster.xml:10580 reference_raster.xml:10667
+#: reference_raster.xml:10762 reference_raster.xml:10855
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:722
+#, no-c-format
+msgid ""
+"SELECT DropRasterConstraints ('myrasters','rast');\n"
+"----RESULT output ---\n"
+"t\n"
+"\n"
+"-- verify change in raster_columns --\n"
+"SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, "
+"pixel_types, nodata_values\n"
+"        FROM raster_columns\n"
+"        WHERE r_table_name = 'myrasters';\n"
+"        \n"
+" srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | "
+"pixel_types| nodata_values\n"
+"------+---------+---------+-------------+-------------+-----------"
+"+-------------+---------------\n"
+"    0 |         |         |             |             |           "
+"|             |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:733
+#, no-c-format
+msgid "AddOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:735
+#, no-c-format
+msgid "Tag a raster column as being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:739
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>reftable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refcolumn</"
+"parameter></paramdef> <paramdef><type>int </type> <parameter>ovfactor</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddOverviewConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>ovcolumn</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>reftable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>refcolumn</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>ovfactor</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:779
+#, no-c-format
+msgid ""
+"Adds constraints on a raster column that are used to display information in "
+"the <varname>raster_overviews</varname> raster catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:783
+#, no-c-format
+msgid ""
+"The <varname>ovfactor</varname> parameter represents the scale multiplier in "
+"the overview column: higher overview factors have lower resolution."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:787
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> and <varname>refschema</varname> "
+"parameters are omitted, the first table found scanning the "
+"<varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:799
+#, no-c-format
+msgid ""
+"CREATE TABLE res1 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r1;\n"
+"\n"
+"CREATE TABLE res2 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(500, 500, 0, 0, 4),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r2;\n"
+"\n"
+"SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);\n"
+"\n"
+"-- verify if registered correctly in the raster_overviews view --\n"
+"SELECT o_table_name ot, o_raster_column oc,\n"
+"       r_table_name rt, r_raster_column rc,\n"
+"       overview_factor f\n"
+"FROM raster_overviews WHERE o_table_name = 'res2';\n"
+"  ot  | oc |  rt  | rc | f\n"
+"------+----+------+----+---\n"
+" res2 | r2 | res1 | r1 | 2\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:805
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_DropOverviewConstraints\"/>, <xref linkend="
+"\"RT_CreateOverview\"/>, <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:816
+#, no-c-format
+msgid "DropOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:818
+#, no-c-format
+msgid "Untag a raster column from being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:822
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropOverviewConstraints</function></funcdef> <paramdef><type>name "
+"</type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>ovcolumn</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:848
+#, no-c-format
+msgid ""
+"Remove from a raster column the constraints used to show it as being an "
+"overview of another in the <varname>raster_overviews</varname> raster "
+"catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:853
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> parameter is omitted, the first table "
+"found scanning the <varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:865
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_DropRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:875
+#, no-c-format
+msgid "PostGIS_GDAL_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:876
+#, no-c-format
+msgid "Reports the version of the GDAL library in use by PostGIS."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:881
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GDAL_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:890
+#, no-c-format
+msgid ""
+"Reports the version of the GDAL library in use by PostGIS. Will also check "
+"and report if GDAL can find its data files."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:895
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GDAL_Version();\n"
+"       postgis_gdal_version        \n"
+"-----------------------------------\n"
+" GDAL 1.11dev, released 2013/04/13"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:908
+#, no-c-format
+msgid "PostGIS_Raster_Lib_Build_Date"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:910
+#, no-c-format
+msgid "Reports full raster library build date."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:915
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:926
+#, no-c-format
+msgid "Reports raster build date"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:932
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Raster_Lib_Build_Date();\n"
+"postgis_raster_lib_build_date\n"
+"-----------------------------\n"
+"2010-04-28 21:15:10"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:944
+#, no-c-format
+msgid "PostGIS_Raster_Lib_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:946
+#, no-c-format
+msgid ""
+"<refpurpose>Reports full raster version and build configuration infos.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:952
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:963
+#, no-c-format
+msgid "<para>Reports full raster version and build configuration infos.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:970
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Raster_Lib_Version();\n"
+"postgis_raster_lib_version\n"
+"-----------------------------\n"
+" 2.0.0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:984
+#, no-c-format
+msgid "ST_GDALDrivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:986
+#, no-c-format
+msgid ""
+"Returns a list of raster formats supported by your lib gdal. These are the "
+"formats you can output your raster using ST_AsGDALRaster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:991
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>ST_GDALDrivers</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>OUT idx</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>OUT short_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT long_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT create_options</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1004
+#, no-c-format
+msgid ""
+"Returns a list of raster formats short_name,long_name and creator options of "
+"each format supported by your lib gdal. Use the short_name as input in the "
+"<varname>format</varname> parameter of <xref linkend=\"RT_ST_AsGDALRaster\"/"
+">. Options vary depending on what drivers your libgdal was compiled with. "
+"<varname>create_options</varname> returns an xml formatted set of "
+"CreationOptionList/Option consisting of name and optional <varname>type</"
+"varname>, <varname>description</varname> and set of <varname>VALUE</varname> "
+"for each creator option for the specific driver."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1007 reference_raster.xml:1438
+#: reference_raster.xml:5631 reference_raster.xml:5729
+#: reference_raster.xml:5820 reference_raster.xml:5900
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GDAL >= 1.6.0."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1011
+#, no-c-format
+msgid "Examples: List of Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1013
+#, no-c-format
+msgid ""
+"SELECT short_name, long_name\n"
+"FROM st_gdaldrivers()\n"
+"ORDER BY short_name;\n"
+"  short_name    |              long_name\n"
+"----------------+--------------------------------------\n"
+"AAIGrid         | Arc/Info ASCII Grid\n"
+"DTED            | DTED Elevation Raster\n"
+"EHdr            | ESRI .hdr Labelled\n"
+"FIT             | FIT Image\n"
+"GIF             | Graphics Interchange Format (.gif)\n"
+"GSAG            | Golden Software ASCII Grid (.grd)\n"
+"GSBG            | Golden Software Binary Grid (.grd)\n"
+"GTiff           | GeoTIFF\n"
+"HF2             | HF2/HFZ heightfield raster\n"
+"HFA             | Erdas Imagine Images (.img)\n"
+"ILWIS           | ILWIS Raster Map\n"
+"INGR            | Intergraph Raster\n"
+"JPEG            | JPEG JFIF\n"
+"KMLSUPEROVERLAY | Kml Super Overlay\n"
+"NITF            | National Imagery Transmission Format\n"
+"PNG             | Portable Network Graphics\n"
+"R               | R Object Data Store\n"
+"SAGA            | SAGA GIS Binary Grid (.sdat)\n"
+"SRTMHGT         | SRTMHGT File Format\n"
+"USGSDEM         | USGS Optional ASCII DEM (and CDED)\n"
+"VRT             | Virtual Raster\n"
+"XPM             | X11 PixMap Format"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1015
+#, no-c-format
+msgid "Example: List of options for each driver"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1016
+#, no-c-format
+msgid ""
+"-- Output the create options XML column of JPEG as a table  --\n"
+"-- Note you can use these creator options in ST_AsGDALRaster options "
+"argument\n"
+"SELECT (xpath('@name', g.opt))[1]::text As oname,\n"
+"       (xpath('@type', g.opt))[1]::text As otype,\n"
+"       (xpath('@description', g.opt))[1]::text As descrip\n"
+"FROM (SELECT unnest(xpath('/CreationOptionList/Option', create_options::"
+"xml)) As opt\n"
+"FROM  st_gdaldrivers()\n"
+"WHERE short_name = 'JPEG') As g;\n"
+"\n"
+"    oname    |  otype  |           descrip\n"
+"-------------+---------+-----------------------------\n"
+" PROGRESSIVE | boolean |\n"
+" QUALITY     | int     | good=100, bad=0, default=75\n"
+" WORLDFILE   | boolean |"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1018
+#, no-c-format
+msgid ""
+"-- raw xml output for creator options for GeoTiff --\n"
+"SELECT create_options\n"
+"FROM st_gdaldrivers()\n"
+"WHERE short_name = 'GTiff';\n"
+"\n"
+"<![CDATA[<CreationOptionList>\n"
+"    <Option name=\"COMPRESS\" type=\"string-select\">\n"
+"        <Value>NONE</Value>\n"
+"        <Value>LZW</Value>\n"
+"        <Value>PACKBITS</Value>\n"
+"        <Value>JPEG</Value>\n"
+"        <Value>CCITTRLE</Value>\n"
+"        <Value>CCITTFAX3</Value>\n"
+"        <Value>CCITTFAX4</Value>\n"
+"        <Value>DEFLATE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"PREDICTOR\" type=\"int\" description=\"Predictor Type\"/"
+">\n"
+"    <Option name=\"JPEG_QUALITY\" type=\"int\" description=\"JPEG quality "
+"1-100\" default=\"75\"/>\n"
+"    <Option name=\"ZLEVEL\" type=\"int\" description=\"DEFLATE compression "
+"level 1-9\" default=\"6\"/>\n"
+"    <Option name=\"NBITS\" type=\"int\" description=\"BITS for sub-byte "
+"files (1-7), sub-uint16 (9-15), sub-uint32 (17-31)\"/>\n"
+"    <Option name=\"INTERLEAVE\" type=\"string-select\" default=\"PIXEL\">\n"
+"        <Value>BAND</Value>\n"
+"        <Value>PIXEL</Value>\n"
+"    </Option>\n"
+"    <Option name=\"TILED\" type=\"boolean\" description=\"Switch to tiled "
+"format\"/>\n"
+"    <Option name=\"TFW\" type=\"boolean\" description=\"Write out world file"
+"\"/>\n"
+"    <Option name=\"RPB\" type=\"boolean\" description=\"Write out .RPB (RPC) "
+"file\"/>\n"
+"    <Option name=\"BLOCKXSIZE\" type=\"int\" description=\"Tile Width\"/>\n"
+"    <Option name=\"BLOCKYSIZE\" type=\"int\" description=\"Tile/Strip Height"
+"\"/>\n"
+"    <Option name=\"PHOTOMETRIC\" type=\"string-select\">\n"
+"        <Value>MINISBLACK</Value>\n"
+"        <Value>MINISWHITE</Value>\n"
+"        <Value>PALETTE</Value>\n"
+"        <Value>RGB</Value>\n"
+"        <Value>CMYK</Value>\n"
+"        <Value>YCBCR</Value>\n"
+"        <Value>CIELAB</Value>\n"
+"        <Value>ICCLAB</Value>\n"
+"        <Value>ITULAB</Value>\n"
+"    </Option>\n"
+"    <Option name=\"SPARSE_OK\" type=\"boolean\" description=\"Can newly "
+"created files have missing blocks?\" default=\"FALSE\"/>\n"
+"    <Option name=\"ALPHA\" type=\"boolean\" description=\"Mark first "
+"extrasample as being alpha\"/>\n"
+"    <Option name=\"PROFILE\" type=\"string-select\" default=\"GDALGeoTIFF"
+"\">\n"
+"        <Value>GDALGeoTIFF</Value>\n"
+"        <Value>GeoTIFF</Value>\n"
+"        <Value>BASELINE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"PIXELTYPE\" type=\"string-select\">\n"
+"        <Value>DEFAULT</Value>\n"
+"        <Value>SIGNEDBYTE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"BIGTIFF\" type=\"string-select\" description=\"Force "
+"creation of BigTIFF file\">\n"
+"        <Value>YES</Value>\n"
+"        <Value>NO</Value>\n"
+"        <Value>IF_NEEDED</Value>\n"
+"        <Value>IF_SAFER</Value>\n"
+"    </Option>\n"
+"    <Option name=\"ENDIANNESS\" type=\"string-select\" default=\"NATIVE\" "
+"description=\"Force endianness of created file. For DEBUG purpose mostly\">\n"
+"        <Value>NATIVE</Value>\n"
+"        <Value>INVERTED</Value>\n"
+"        <Value>LITTLE</Value>\n"
+"        <Value>BIG</Value>\n"
+"    </Option>\n"
+"    <Option name=\"COPY_SRC_OVERVIEWS\" type=\"boolean\" default=\"NO\" "
+"description=\"Force copy of overviews of source dataset (CreateCopy())\"/>\n"
+"</CreationOptionList>]]>\n"
+"\n"
+"-- Output the create options XML column for GTiff as a table  --\n"
+"SELECT (xpath('@name', g.opt))[1]::text As oname,\n"
+"       (xpath('@type', g.opt))[1]::text As otype,\n"
+"       (xpath('@description', g.opt))[1]::text As descrip,\n"
+"       array_to_string(xpath('Value/text()', g.opt),', ') As vals \n"
+"FROM (SELECT unnest(xpath('/CreationOptionList/Option', create_options::"
+"xml)) As opt\n"
+"FROM  st_gdaldrivers()\n"
+"WHERE short_name = 'GTiff') As g;\n"
+"\n"
+"       oname        |     otype     |                               "
+"descrip                                |                                   "
+"vals                                    \n"
+"--------------------+---------------"
+"+----------------------------------------------------------------------"
+"+---------------------------------------------------------------------------\n"
+" COMPRESS           | string-select "
+"|                                                                      | "
+"NONE, LZW, PACKBITS, JPEG, CCITTRLE, CCITTFAX3, CCITTFAX4, DEFLATE\n"
+" PREDICTOR          | int           | Predictor "
+"Type                                                       | \n"
+" JPEG_QUALITY       | int           | JPEG quality "
+"1-100                                                   | \n"
+" ZLEVEL             | int           | DEFLATE compression level "
+"1-9                                        | \n"
+" NBITS              | int           | BITS for sub-byte files (1-7), sub-"
+"uint16 (9-15), sub-uint32 (17-31) | \n"
+" INTERLEAVE         | string-select "
+"|                                                                      | "
+"BAND, PIXEL\n"
+" TILED              | boolean       | Switch to tiled "
+"format                                               | \n"
+" TFW                | boolean       | Write out world "
+"file                                                 | \n"
+" RPB                | boolean       | Write out .RPB (RPC) "
+"file                                            | \n"
+" BLOCKXSIZE         | int           | Tile "
+"Width                                                           | \n"
+" BLOCKYSIZE         | int           | Tile/Strip "
+"Height                                                    | \n"
+" PHOTOMETRIC        | string-select "
+"|                                                                      | "
+"MINISBLACK, MINISWHITE, PALETTE, RGB, CMYK, YCBCR, CIELAB, ICCLAB, ITULAB\n"
+" SPARSE_OK          | boolean       | Can newly created files have missing "
+"blocks?                         | \n"
+" ALPHA              | boolean       | Mark first extrasample as being "
+"alpha                                | \n"
+" PROFILE            | string-select "
+"|                                                                      | "
+"GDALGeoTIFF, GeoTIFF, BASELINE\n"
+" PIXELTYPE          | string-select "
+"|                                                                      | "
+"DEFAULT, SIGNEDBYTE\n"
+" BIGTIFF            | string-select | Force creation of BigTIFF "
+"file                                       | YES, NO, IF_NEEDED, IF_SAFER\n"
+" ENDIANNESS         | string-select | Force endianness of created file. For "
+"DEBUG purpose mostly           | NATIVE, INVERTED, LITTLE, BIG\n"
+" COPY_SRC_OVERVIEWS | boolean       | Force copy of overviews of source "
+"dataset (CreateCopy())             | \n"
+"(19 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1024 reference_raster.xml:2506
+#, no-c-format
+msgid ", <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1030
+#, no-c-format
+msgid "UpdateRasterSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1031
+#, no-c-format
+msgid "Change the SRID of all rasters in the user-specified column and table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1037
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>UpdateRasterSRID</function></"
+"funcdef> <paramdef><type>name </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>column_name</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>new_srid</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>UpdateRasterSRID</function></funcdef> <paramdef><type>name </type> "
+"<parameter>table_name</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>column_name</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>new_srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1060
+#, no-c-format
+msgid ""
+"Change the SRID of all rasters in the user-specified column and table. The "
+"function will drop all appropriate column constraints (extent, alignment and "
+"SRID) before changing the SRID of the specified column's rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1065
+#, no-c-format
+msgid ""
+"The data (band pixel values) of the rasters are not touched by this "
+"function. Only the raster's metadata is changed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1070 reference_raster.xml:1684
+#: reference_raster.xml:1785 reference_raster.xml:2235
+#: reference_raster.xml:2530 reference_raster.xml:2685
+#: reference_raster.xml:3234 reference_raster.xml:3284
+#: reference_raster.xml:3328 reference_raster.xml:3378
+#: reference_raster.xml:3535 reference_raster.xml:3632
+#: reference_raster.xml:3817 reference_raster.xml:3920
+#: reference_raster.xml:4016 reference_raster.xml:6261
+#: reference_raster.xml:6725 reference_raster.xml:6842
+#: reference_raster.xml:8116 reference_raster.xml:8401
+#: reference_raster.xml:8849 reference_raster.xml:8982
+#: reference_raster.xml:9033 reference_raster.xml:9270
+#: reference_raster.xml:9524 reference_raster.xml:9796
+#: reference_raster.xml:9883 reference_raster.xml:9964
+#: reference_raster.xml:10045 reference_raster.xml:10126
+#: reference_raster.xml:10339 reference_raster.xml:10419
+#: reference_raster.xml:10576 reference_raster.xml:10663
+#: reference_raster.xml:10758 reference_raster.xml:10851
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1082
+#, no-c-format
+msgid "ST_CreateOverview"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1083
+#, no-c-format
+msgid "Create an reduced resolution version of a given raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1091
+#, no-c-format
+msgid ""
+"<funcdef>regclass <function>ST_CreateOverview</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>factor</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algo='NearestNeighbor'</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1105
+#, no-c-format
+msgid ""
+"Create an overview table with resampled tiles from the source table. Output "
+"tiles will have the same size of input tiles and cover the same spatial "
+"extent with a lower resolution (pixel size will be 1/<varname>factor</"
+"varname> of the original in both directions)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1112
+#, no-c-format
+msgid ""
+"The overview table will be made available in the <varname>raster_overviews</"
+"varname> catalog and will have raster constraints enforced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1118 reference_raster.xml:1743
+#: reference_raster.xml:4726
+#, no-c-format
+msgid ""
+"Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', "
+"'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/"
+"gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1120 reference_raster.xml:1745
+#: reference_raster.xml:1944 reference_raster.xml:5005
+#: reference_raster.xml:5384
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_AddRasterConstraints\"/>, <xref linkend=\"RT_Raster_Overviews\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1135
+#, no-c-format
+msgid "Raster Constructors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1139
+#, no-c-format
+msgid "ST_AddBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1140
+#, no-c-format
+msgid ""
+"Returns a raster with the new band(s) of given type added with given initial "
+"value in the given index location. If no index is specified, the band is "
+"added to the end."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1146
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>(1) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>addbandarg[] </type> <parameter>addbandargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>(2) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(3) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(4) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(5) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>torast</parameter></"
+"paramdef> <paramdef><type>raster[] </type> <parameter>fromrasts</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>fromband=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>torastindex=at_end</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(6) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(7) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>index=at_end</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1211
+#, no-c-format
+msgid ""
+"Returns a raster with a new band added in given position (index), of given "
+"type, of given initial value, and of given nodata value. If no index is "
+"specified, the band is added to the end. If no <varname>fromband</varname> "
+"is specified, band 1 is assumed. Pixel type is a string representation of "
+"one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. "
+"If an existing index is specified all subsequent bands >= that index are "
+"incremented by 1. If an initial value greater than the max of the pixel type "
+"is specified, then the initial value is set to the highest value allowed by "
+"the pixel type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1215
+#, no-c-format
+msgid ""
+"For the variant that takes an array of <xref linkend=\"addbandarg\"/> "
+"(Variant 1), a specific addbandarg's index value is relative to the raster "
+"at the time when the band described by that addbandarg is being added to the "
+"raster. See the Multiple New Bands example below."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1219
+#, no-c-format
+msgid ""
+"For the variant that takes an array of rasters (Variant 5), if "
+"<varname>torast</varname> is NULL then the <varname>fromband</varname> band "
+"of each raster in the array is accumulated into a new raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1223
+#, no-c-format
+msgid ""
+"For the variants that take <varname>outdbfile</varname> (Variants 6 and 7), "
+"the value must include the full path to the raster file. The file must also "
+"be accessible to the postgres server process."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1227
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for addbandarg added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1228
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for new out-db bands added."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1232
+#, no-c-format
+msgid "Examples: Single New Band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1234
+#, no-c-format
+msgid ""
+"-- Add another band of type 8 bit unsigned integer with pixels initialized "
+"to 200\n"
+"UPDATE dummy_rast\n"
+"    SET rast = ST_AddBand(rast,'8BUI'::text,200)  \n"
+"WHERE rid = 1;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1236
+#, no-c-format
+msgid ""
+"-- Create an empty raster 100x100 units, with upper left  right at 0, add 2 "
+"bands (band 1 is 0/1 boolean bit switch, band2 allows values 0-15)\n"
+"-- uses addbandargs\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"    VALUES(10, ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 1, -1, 0, 0, "
+"0), \n"
+"        ARRAY[\n"
+"                ROW(1, '1BB'::text, 0, NULL),\n"
+"                ROW(2, '4BUI'::text, 0, NULL)\n"
+"                        ]::addbandarg[]\n"
+"     )\n"
+"    );\n"
+"    \n"
+"-- output meta data of raster bands to verify all is right --\n"
+"SELECT  (bmd).*\n"
+"FROM (SELECT ST_BandMetaData(rast,generate_series(1,2)) As bmd \n"
+"    FROM dummy_rast WHERE rid = 10) AS foo;\n"
+" --result --   \n"
+" pixeltype | nodatavalue | isoutdb | path\n"
+"-----------+----------------+-------------+---------+------\n"
+" 1BB       |             | f       |\n"
+" 4BUI      |             | f       |\n"
+" \n"
+" \n"
+"-- output meta data of raster -\n"
+"SELECT  (rmd).width, (rmd).height, (rmd).numbands\n"
+"FROM (SELECT ST_MetaData(rast) As rmd \n"
+"    FROM dummy_rast WHERE rid = 10) AS foo;\n"
+"-- result --\n"
+" upperleftx | upperlefty | width | height | scalex | scaley | skewx | skewy "
+"| srid | numbands\n"
+"------------+------------+-------+--------+------------+------------+-------"
+"+-------+------+----------\n"
+"          0 |          0 |   100 |    100 |      1 |     -1 |     0 |     0 "
+"|   0 |        2"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1240
+#, no-c-format
+msgid "Examples: Multiple New Bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1242
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                ARRAY[\n"
+"                        ROW(NULL, '8BUI', 255, 0),\n"
+"                        ROW(NULL, '16BUI', 1, 2),\n"
+"                        ROW(2, '32BUI', 100, 12),\n"
+"                        ROW(2, '32BF', 3.14, -1)\n"
+"                ]::addbandarg[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |           0 | f       | \n"
+"       2 | 32BF      |          -1 | f       | \n"
+"       3 | 32BUI     |          12 | f       | \n"
+"       4 | 16BUI     |           2 | f       |"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1244
+#, no-c-format
+msgid ""
+"-- Aggregate the 1st band of a table of like rasters into a single raster \n"
+"-- with as many bands as there are test_types and as many rows (new rasters) "
+"as there are mice\n"
+"-- NOTE: The ORDER BY test_type is only supported in PostgreSQL 9.0+\n"
+"-- for 8.4 and below it usually works to order your data in a subselect (but "
+"not guaranteed)\n"
+"-- The resulting raster will have a band for each test_type alphabetical by "
+"test_type\n"
+"-- For mouse lovers: No mice were harmed in this exercise\n"
+"SELECT\n"
+"        mouse,\n"
+"        ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1) As rast \n"
+"FROM mice_studies\n"
+"GROUP BY mouse;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1248
+#, no-c-format
+msgid "Examples: New Out-db band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1249
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                '/home/raster/mytestraster.tif'::text, NULL::int[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       2 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       3 | 8BUI      |             | t       | /home/raster/mytestraster.tif"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1254
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"RT_ST_MetaData\"/>, <xref "
+"linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1267
+#, no-c-format
+msgid "ST_AsRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1268
+#, no-c-format
+msgid "Converts a PostGIS geometry to a PostGIS raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1272
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>touched=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_AsRaster</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>ref</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>pixeltype=ARRAY['8BUI']</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>touched=false</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>value=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>gridx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridy=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>upperleftx=NULL</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>upperlefty=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>value=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef><type>double precision[] </type> "
+"<parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1420
+#, no-c-format
+msgid ""
+"Converts a PostGIS geometry to a PostGIS raster. The many variants offers "
+"three groups of possibilities for setting the alignment and pixelsize of the "
+"resulting raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1422
+#, no-c-format
+msgid ""
+"The first group, composed of the two first variants, produce a raster having "
+"the same alignment (<varname>scalex</varname>, <varname>scaley</varname>, "
+"<varname>gridx</varname> and <varname>gridy</varname>), pixel type and "
+"nodata value as the provided reference raster. You generally pass this "
+"reference raster by joining the table containing the geometry with the table "
+"containing the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1424
+#, no-c-format
+msgid ""
+"The second group, composed of four variants, let you set the dimensions of "
+"the raster by providing the parameters of a pixel size (<varname>scalex</"
+"varname> & <varname>scaley</varname> and <varname>skewx</varname> & "
+"<varname>skewy</varname>). The <varname>width</varname> & "
+"<varname>height</varname> of the resulting raster will be adjusted to fit "
+"the extent of the geometry. In most cases, you must cast integer "
+"<varname>scalex</varname> & <varname>scaley</varname> arguments to "
+"double precision so that PostgreSQL choose the right variant."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1426
+#, no-c-format
+msgid ""
+"The third group, composed of four variants, let you fix the dimensions of "
+"the raster by providing the dimensions of the raster (<varname>width</"
+"varname> & <varname>height</varname>). The parameters of the pixel size "
+"(<varname>scalex</varname> & <varname>scaley</varname> and "
+"<varname>skewx</varname> & <varname>skewy</varname>) of the resulting "
+"raster will be adjusted to fit the extent of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1428
+#, no-c-format
+msgid ""
+"The two first variants of each of those two last groups let you specify the "
+"alignment with an arbitrary corner of the alignment grid (<varname>gridx</"
+"varname> & <varname>gridy</varname>) and the two last variants takes the "
+"upper left corner (<varname>upperleftx</varname> & <varname>upperlefty</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1430
+#, no-c-format
+msgid ""
+"Each group of variant allows producing a one band raster or a multiple bands "
+"raster. To produce a multiple bands raster, you must provide an array of "
+"pixel types (<varname>pixeltype[]</varname>), an array of initial values "
+"(<varname>value</varname>) and an array of nodata values "
+"(<varname>nodataval</varname>). If not provided pixeltyped defaults to 8BUI, "
+"values to 1 and nodataval to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1432
+#, no-c-format
+msgid ""
+"The output raster will be in the same spatial reference as the source "
+"geometry. The only exception is for variants with a reference raster. In "
+"this case the resulting raster will get the same SRID as the reference "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1434
+#, no-c-format
+msgid ""
+"The optional <varname>touched</varname> parameter defaults to false and maps "
+"to the GDAL ALL_TOUCHED rasterization option, which determines if pixels "
+"touched by lines or polygons will be burned. Not just those on the line "
+"render path, or whose center point is within the polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1436
+#, no-c-format
+msgid ""
+"This is particularly useful for rendering jpegs and pngs of geometries "
+"directly from the database when using in combination with <xref linkend="
+"\"RT_ST_AsPNG\"/> and other <xref linkend=\"RT_ST_AsGDALRaster\"/> family of "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1440
+#, no-c-format
+msgid ""
+"Not yet capable of rendering complex geometry types such as curves, TINS, "
+"and PolyhedralSurfaces, but should be able too once GDAL can."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1445
+#, no-c-format
+msgid "Examples: Output geometries as PNG files"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1451
+#, no-c-format
+msgid "black circle"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1454
+#, no-c-format
+msgid ""
+"-- this will output a black circle taking up 150 x 150 pixels --\n"
+"SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10),150, 150, '2BUI'));"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1461
+#, no-c-format
+msgid "example from buffer rendered with just PostGIS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1465
+#, no-c-format
+msgid ""
+"-- the bands map to RGB bands - the value (118,154,118) - teal  --\n"
+"SELECT ST_AsPNG(\n"
+"        ST_AsRaster(\n"
+"                ST_Buffer(\n"
+"                        ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), "
+"10,'join=bevel'), \n"
+"                        200,200,ARRAY['8BUI', '8BUI', '8BUI'], "
+"ARRAY[118,154,118], ARRAY[0,0,0]));"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1471
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, "
+"<xref linkend=\"RT_ST_AsJPEG\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1477
+#, no-c-format
+msgid "ST_Band"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1478
+#, no-c-format
+msgid ""
+"Returns one or more bands of an existing raster as a new raster. Useful for "
+"building new rasters from existing rasters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1482
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = "
+"ARRAY[1]</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Band</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nbands</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>character </type> "
+"<parameter>delimiter=,</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1507
+#, no-c-format
+msgid ""
+"Returns one or more bands of an existing raster as a new raster. Useful for "
+"building new rasters from existing rasters or export of only selected bands "
+"of a raster or rearranging the order of bands in a raster. If no band is "
+"specified, band 1 is assumed. Used as a helper function in various functions "
+"such as for deleting a band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1509
+#, no-c-format
+msgid ""
+"For the <code>nbands</code> as text variant of function, the default "
+"delimiter is <code>,</code> which means you can ask for <code>'1,2,3'</code> "
+"and if you wanted to use a different delimeter you would do "
+"<code>ST_Band(rast, '1 at 2@3', '@')</code>. For asking for multiple bands, we "
+"strongly suggest you use the array form of this function e.g. "
+"<code>ST_Band(rast, '{1,2,3}'::int[]);</code> since the <code>text</code> "
+"list of bands form may be removed in future versions of PostGIS."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1517
+#, no-c-format
+msgid ""
+"-- Make 2 new rasters: 1 containing band 1 of dummy, second containing band "
+"2 of dummy and then reclassified as a 2BUI\n"
+"SELECT ST_NumBands(rast1) As numb1, ST_BandPixelType(rast1) As pix1, \n"
+" ST_NumBands(rast2) As numb2,  ST_BandPixelType(rast2) As pix2\n"
+"FROM (\n"
+"    SELECT ST_Band(rast) As rast1, ST_Reclass(ST_Band(rast,3), '100-200):1, "
+"[200-254:2', '2BUI') As rast2\n"
+"        FROM dummy_rast\n"
+"        WHERE rid = 2) As foo;\n"
+"        \n"
+" numb1 | pix1 | numb2 | pix2\n"
+"-------+------+-------+------\n"
+"     1 | 8BUI |     1 | 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1519
+#, no-c-format
+msgid ""
+"-- Return bands 2 and 3. Using array cast syntax\n"
+"SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"num_bands\n"
+"----------\n"
+"2\n"
+"    \n"
+"-- Return bands 2 and 3. Use array to define bands\n"
+"SELECT ST_NumBands(ST_Band(rast, ARRAY[2,3])) As num_bands\n"
+"    FROM dummy_rast \n"
+"WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1529
+#, no-c-format
+msgid "original (column rast)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1538
+#, no-c-format
+msgid "dupe_band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1547
+#, no-c-format
+msgid "sing_band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1555
+#, no-c-format
+msgid ""
+"--Make a new raster with 2nd band of original and 1st band repeated twice,\n"
+"and another with just the third band\n"
+"SELECT rast, ST_Band(rast, ARRAY[2,1,1]) As dupe_band,  \n"
+"        ST_Band(rast, 3) As sing_band \n"
+"FROM samples.than_chunked \n"
+"WHERE rid=35;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1561
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, "
+"<xref linkend=\"RT_reference\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1567
+#, no-c-format
+msgid "ST_MakeEmptyRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1568
+#, no-c-format
+msgid ""
+"Returns an empty raster (having no bands) of given dimensions (width & "
+"height), upperleft X and Y, pixel size and rotation (scalex, scaley, skewx "
+"& skewy) and reference system (srid). If a raster is passed in, returns "
+"a new raster with the same size, alignment and SRID. If srid is left out, "
+"the spatial ref is set to unknown (0)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1572
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MakeEmptyRaster</function></funcdef> <paramdef><type>integer </"
+"type> <parameter>width</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>height</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperleftx</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperlefty</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>float8 </type> "
+"<parameter>skewy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>width</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>height</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperlefty</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>pixelsize</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1602
+#, no-c-format
+msgid ""
+"Returns an empty raster (having no band) of given dimensions (width & "
+"height) and georeferenced in spatial (or world) coordinates with upper left "
+"X (upperleftx), upper left Y (upperlefty), pixel size and rotation (scalex, "
+"scaley, skewx & skewy) and reference system (srid)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1605
+#, no-c-format
+msgid ""
+"The last version use a single parameter to specify the pixel size "
+"(pixelsize). scalex is set to this argument and scaley is set to the "
+"negative value of this argument. skewx and skewy are set to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1607
+#, no-c-format
+msgid ""
+"If an existing raster is passed in, it returns a new raster with the same "
+"meta data settings (without the bands)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1609
+#, no-c-format
+msgid ""
+"If no srid is specified it defaults to 0. After you create an empty raster "
+"you probably want to add bands to it and maybe edit it. Refer to <xref "
+"linkend=\"RT_ST_AddBand\"/> to define bands and <xref linkend="
+"\"RT_ST_SetValue\"/> to set initial pixel values."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1616
+#, no-c-format
+msgid ""
+"INSERT INTO dummy_rast(rid,rast)\n"
+"VALUES(3, ST_MakeEmptyRaster( 100, 100, 0.0005, 0.0005, 1, 1, 0, 0, "
+"4326) );\n"
+"\n"
+"--use an existing raster as template for new raster\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"SELECT 4, ST_MakeEmptyRaster(rast)\n"
+"FROM dummy_rast WHERE rid = 3;\n"
+"\n"
+"-- output meta data of rasters we just added\n"
+"SELECT rid, (md).*\n"
+"FROM (SELECT rid, ST_MetaData(rast) As md \n"
+"        FROM dummy_rast\n"
+"        WHERE rid IN(3,4)) As foo;\n"
+"        \n"
+"-- output --\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands\n"
+"-----+------------+------------+-------+--------+------------+------------"
+"+-------+-------+------+----------\n"
+"   3 |     0.0005 |     0.0005 |   100 |    100 |          1 |          1 "
+"|    0  |     0 | 4326 |        0\n"
+"   4 |     0.0005 |     0.0005 |   100 |    100 |          1 |          1 "
+"|    0  |     0 | 4326 |        0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1622
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MetaData\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, "
+"<xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_SetValue\"/>, <xref "
+"linkend=\"RT_ST_SkewX\"/>, , <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1629
+#, no-c-format
+msgid "ST_Tile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1630
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a set of rasters resulting from the split of the input "
+"raster based upon the desired dimensions of the output rasters.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1634
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>int[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof raster "
+"<function>ST_Tile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>padwithnodata=FALSE</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1670
+#, no-c-format
+msgid ""
+"<para>Returns a set of rasters resulting from the split of the input raster "
+"based upon the desired dimensions of the output rasters.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1674
+#, no-c-format
+msgid ""
+"If <varname>padwithnodata</varname> = FALSE, edge tiles on the right and "
+"bottom sides of the raster may have different dimensions than the rest of "
+"the tiles. If <varname>padwithnodata</varname> = TRUE, all tiles will have "
+"the same dimensions with the possibilty that edge tiles being padded with "
+"NODATA values. If raster band(s) do not have NODATA value(s) specified, one "
+"can be specified by setting <varname>nodataval</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1679
+#, no-c-format
+msgid ""
+"If a specified band of the input raster is out-of-db, the corresponding band "
+"in the output rasters will also be out-of-db."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1690
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{1,1,1},{1,1,1},{1,1,1}}\")\n"
+" (2,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{2,2,2},{2,2,2},{2,2,2}}\")\n"
+" (2,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{3,3,3},{3,3,3},{3,3,3}}\")\n"
+" (2,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{4,4,4},{4,4,4},{4,4,4}}\")\n"
+" (2,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{5,5,5},{5,5,5},{5,5,5}}\")\n"
+" (2,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{6,6,6},{6,6,6},{6,6,6}}\")\n"
+" (2,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{7,7,7},{7,7,7},{7,7,7}}\")\n"
+" (2,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{8,8,8},{8,8,8},{8,8,8}}\")\n"
+" (2,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{9,9,9},{9,9,9},{9,9,9}}\")\n"
+" (2,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(18 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1692
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, 2) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(9 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1698
+#, no-c-format
+msgid ", <xref linkend=\"RT_Retile\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1708
+#, no-c-format
+msgid "ST_Retile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1709
+#, no-c-format
+msgid ""
+"Return a set of configured tiles from an arbitrarily tiled raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1717
+#, no-c-format
+msgid ""
+"<funcdef>SETOF raster <function>ST_Retile</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>ext</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfx</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfy</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>tw</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>th</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algo='NearestNeighbor'</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1735
+#, no-c-format
+msgid ""
+"Return a set of tiles having the specified scale (<varname>sfx</varname>, "
+"<varname>sfy</varname>) and max size (<varname>tw</varname>, <varname>th</"
+"varname>) and covering the specified extent (<varname>ext</varname>) with "
+"data coming from the specified raster coverage (<varname>tab</varname>, "
+"<varname>col</varname>)."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1759
+#, no-c-format
+msgid "ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1760
+#, no-c-format
+msgid "Returns a raster from a supported GDAL raster file."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1765
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_FromGDALRaster</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>gdaldata</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=NULL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1777
+#, no-c-format
+msgid ""
+"Returns a raster from a supported GDAL raster file. <varname>gdaldata</"
+"varname> is of type bytea and should be the contents of the GDAL raster file."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1781
+#, no-c-format
+msgid ""
+"If <varname>srid</varname> is NULL, the function will try to autmatically "
+"assign the SRID from the GDAL raster. If <varname>srid</varname> is "
+"provided, the value provided will override any automatically assigned SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT "
+"ST_AsPNG(ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, "
+"0.1, -0.1, 0, 0, 4326), 1, '8BUI', 1, 0), 2, '8BUI', 2, 0), 3, '8BUI', 3, "
+"0)) AS png\n"
+"),\n"
+"bar AS (\n"
+"        SELECT 1 AS rid, ST_FromGDALRaster(png) AS rast FROM foo\n"
+"        UNION ALL\n"
+"        SELECT 2 AS rid, ST_FromGDALRaster(png, 3310) AS rast FROM foo\n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        ST_Metadata(rast) AS metadata,\n"
+"        ST_SummaryStats(rast, 1) AS stats1,\n"
+"        ST_SummaryStats(rast, 2) AS stats2,\n"
+"        ST_SummaryStats(rast, 3) AS stats3\n"
+"FROM bar\n"
+"ORDER BY rid;\n"
+"\n"
+" rid |         metadata          |    stats1     |    stats2     |     "
+"stats3     \n"
+"-----+---------------------------+---------------+---------------"
+"+----------------\n"
+"   1 | (0,0,2,2,1,-1,0,0,0,3)    | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"   2 | (0,0,2,2,1,-1,0,0,3310,3) | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1806
+#, no-c-format
+msgid "Raster Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1810
+#, no-c-format
+msgid "ST_GeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1811
+#, no-c-format
+msgid ""
+"Returns the georeference meta data in GDAL or ESRI format as commonly seen "
+"in a world file. Default is GDAL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1816
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoReference</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1827
+#, no-c-format
+msgid ""
+"Returns the georeference meta data including carriage return in GDAL or ESRI "
+"format as commonly seen in a <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">world file</ulink>. Default is GDAL if no type specified. type "
+"is string 'GDAL' or 'ESRI'."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1829 reference_raster.xml:4065
+#, no-c-format
+msgid "Difference between format representations is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1830 reference_raster.xml:4066
+#, no-c-format
+msgid "<varname>GDAL</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1831
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx\n"
+"upperlefty"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1832 reference_raster.xml:4068
+#, no-c-format
+msgid "<varname>ESRI</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1833
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx + scalex*0.5\n"
+"upperlefty + scaley*0.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1839
+#, no-c-format
+msgid ""
+"SELECT ST_GeoReference(rast, 'ESRI') As esri_ref, ST_GeoReference(rast, "
+"'GDAL') As gdal_ref\n"
+" FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"   esri_ref   |   gdal_ref\n"
+"--------------+--------------\n"
+" 2.0000000000 | 2.0000000000\n"
+" 0.0000000000 : 0.0000000000\n"
+" 0.0000000000 : 0.0000000000\n"
+" 3.0000000000 : 3.0000000000\n"
+" 1.5000000000 : 0.5000000000\n"
+" 2.0000000000 : 0.5000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1844
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1850
+#, no-c-format
+msgid "ST_Height"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1851
+#, no-c-format
+msgid "Returns the height of the raster in pixels."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1856
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Height</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1866
+#, no-c-format
+msgid "Returns the height of the raster."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1872
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Height(rast) As rastheight\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastheight\n"
+"-----+------------\n"
+"   1 |         20\n"
+"   2 |          5"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1884
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1885
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1890
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1900
+#, no-c-format
+msgid ""
+"<para>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1908
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"f          |\n"
+"                       \n"
+"                        \n"
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"t          |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1920
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1922
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the raster takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1927
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1937
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the raster takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1938
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1939
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables. "
+"pg_column_size might return lower because it returns the compressed size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1941
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1951
+#, no-c-format
+msgid ""
+"SELECT ST_MemSize(ST_AsRaster(ST_Buffer(ST_Point(1,5),10,1000),150, 150, "
+"'8BUI')) As rast_mem;\n"
+"                \n"
+"                rast_mem\n"
+"                --------\n"
+"                22568"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1964
+#, no-c-format
+msgid "ST_MetaData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1965
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster object such as pixel size, rotation "
+"(skew), upper, lower left, etc."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1970
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_MetaData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1980
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster object such as pixel size, rotation "
+"(skew), upper, lower left, etc. Columns returned: upperleftx | upperlefty | "
+"width | height | scalex | scaley | skewx | skewy | srid | numbands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1987
+#, no-c-format
+msgid ""
+"SELECT rid, (foo.md).*  \n"
+" FROM (SELECT rid, ST_MetaData(rast) As md\n"
+"FROM dummy_rast) As foo;\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands\n"
+" ----+------------+------------+-------+--------+--------+-----------+-------"
+"+-------+------+-------\n"
+"   1 |        0.5 |        0.5 |    10 |     20 |      2 |      3 "
+"|                0 |     0 |    0 |        0\n"
+"   2 | 3427927.75 |    5793244 |     5 |      5 |   0.05 |  -0.05 "
+"|                0 |     0 |    0 |        3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1993 reference_raster.xml:4844
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_NumBands\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1999
+#, no-c-format
+msgid "ST_NumBands"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2000
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the number of bands in the raster object.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2005
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumBands</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2015
+#, no-c-format
+msgid "<para>Returns the number of bands in the raster object.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2021
+#, no-c-format
+msgid ""
+"SELECT rid, ST_NumBands(rast) As numbands\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid | numbands\n"
+"----+----------\n"
+"  1 |        0\n"
+"  2 |        3"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2033
+#, no-c-format
+msgid "ST_PixelHeight"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2034
+#, no-c-format
+msgid ""
+"Returns the pixel height in geometric units of the spatial reference system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2039
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_PixelHeight</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2049
+#, no-c-format
+msgid ""
+"Returns the height of a pixel in geometric units of the spatial reference "
+"system. In the common case where there is no skew, the pixel height is just "
+"the scale ratio between geometric coordinates and raster pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2051
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"RT_ST_PixelWidth\"/> for a diagrammatic "
+"visualization of the relationship."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2055 reference_raster.xml:2115
+#, no-c-format
+msgid "Examples: Rasters with no skew"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2057
+#, no-c-format
+msgid ""
+"SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
+" ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) As "
+"skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"FROM dummy_rast;\n"
+"\n"
+" rastheight | pixheight | scalex | scaley | skewx | skewy\n"
+"------------+-----------+--------+--------+-------+----------\n"
+"         20 |         3 |      2 |      3 |     0 |        0\n"
+"          5 |      0.05 |   0.05 |  -0.05 |     0 |        0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2062 reference_raster.xml:2122
+#, no-c-format
+msgid "Examples: Rasters with skew different than 0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2064
+#, no-c-format
+msgid ""
+"SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
+" ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) As "
+"skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"FROM (SELECT ST_SetSKew(rast,0.5,0.5) As rast\n"
+"        FROM dummy_rast) As skewed;\n"
+"\n"
+"rastheight |     pixheight     | scalex | scaley | skewx | skewy\n"
+"-----------+-------------------+--------+--------+-------+----------\n"
+"        20 |  3.04138126514911 |      2 |      3 |   0.5 |      0.5\n"
+"         5 | 0.502493781056044 |   0.05 |  -0.05 |   0.5 |      0.5"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2071 reference_raster.xml:2131
+#: reference_raster.xml:4124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2083
+#, no-c-format
+msgid "ST_PixelWidth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2084
+#, no-c-format
+msgid ""
+"Returns the pixel width in geometric units of the spatial reference system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2089
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_PixelWidth</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2099
+#, no-c-format
+msgid ""
+"Returns the width of a pixel in geometric units of the spatial reference "
+"system. In the common case where there is no skew, the pixel width is just "
+"the scale ratio between geometric coordinates and raster pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2101
+#, no-c-format
+msgid "The following diagram demonstrates the relationship:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2108
+#, no-c-format
+msgid "Pixel Width: Pixel size in the i direction"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2108
+#, no-c-format
+msgid "Pixel Height: Pixel size in the j direction"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2117
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
+"        ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) "
+"As skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"        FROM dummy_rast;\n"
+"        \n"
+"        rastwidth | pixwidth | scalex | scaley | skewx | skewy\n"
+"        -----------+----------+--------+--------+-------+----------\n"
+"        10 |        2 |      2 |      3 |     0 |        0\n"
+"         5 |     0.05 |   0.05 |  -0.05 |     0 |        0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2124
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
+"        ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) "
+"As skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"        FROM (SELECT ST_SetSkew(rast,0.5,0.5) As rast\n"
+"        FROM dummy_rast) As skewed;\n"
+"        \n"
+"        rastwidth |     pixwidth      | scalex | scaley | skewx | skewy\n"
+"        -----------+-------------------+--------+--------+-------"
+"+----------\n"
+"        10 |  2.06155281280883 |      2 |      3 |   0.5 |      0.5\n"
+"         5 | 0.502493781056044 |   0.05 |  -0.05 |   0.5 |      0.5"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2137
+#, no-c-format
+msgid "ST_ScaleX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2138
+#, no-c-format
+msgid ""
+"Returns the X component of the pixel width in units of coordinate reference "
+"system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2143
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_ScaleX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2153
+#, no-c-format
+msgid ""
+"Returns the X component of the pixel width in units of coordinate reference "
+"system. Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file"
+"\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2155
+#, no-c-format
+msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeX."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2161
+#, no-c-format
+msgid ""
+"SELECT rid, ST_ScaleX(rast) As rastpixwidth\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastpixwidth\n"
+"-----+--------------\n"
+"   1 |            2\n"
+"   2 |         0.05"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2174
+#, no-c-format
+msgid "ST_ScaleY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2175
+#, no-c-format
+msgid ""
+"Returns the Y component of the pixel height in units of coordinate reference "
+"system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2180
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_ScaleY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2190
+#, no-c-format
+msgid ""
+"Returns the Y component of the pixel height in units of coordinate reference "
+"system. May be negative. Refer to <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2193
+#, no-c-format
+msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeY."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2199
+#, no-c-format
+msgid ""
+"SELECT rid, ST_ScaleY(rast) As rastpixheight\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastpixheight\n"
+"-----+---------------\n"
+"   1 |             3\n"
+"   2 |         -0.05"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2212
+#, no-c-format
+msgid "ST_RasterToWorldCoord"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2213
+#, no-c-format
+msgid ""
+"Returns the raster's upper left corner as geometric X and Y (longitude and "
+"latitude) given a column and row. Column and row starts at 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2218
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_RasterToWorldCoord</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>yrow</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2230
+#, no-c-format
+msgid ""
+"Returns the upper left corner as geometric X and Y (longitude and latitude) "
+"given a column and row. Returned X and Y are in geometric units of the "
+"georeferenced raster. Numbering of column and row starts at 1 but if either "
+"parameter is passed a zero, a negative number or a number greater than the "
+"respective dimension of the raster, it will return coordinates outside of "
+"the raster assuming the raster's grid is applicable outside the raster's "
+"bounds."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2242
+#, no-c-format
+msgid ""
+"-- non-skewed raster\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_RasterToWorldCoord(rast,1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast,2, 2)).*\n"
+"FROM dummy_rast\n"
+"\n"
+" rid | longitude  | latitude | longitude |  latitude  \n"
+"-----+------------+----------+-----------+------------\n"
+"   1 |        0.5 |      0.5 |       2.5 |        3.5\n"
+"   2 | 3427927.75 |  5793244 | 3427927.8 | 5793243.95"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2244
+#, no-c-format
+msgid ""
+"-- skewed raster\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_RasterToWorldCoord(rast, 1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast, 2, 3)).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                rid,\n"
+"                ST_SetSkew(rast, 100.5, 0) As rast\n"
+"        FROM dummy_rast\n"
+") As foo\n"
+"\n"
+" rid | longitude  | latitude | longitude | latitude  \n"
+"-----+------------+----------+-----------+-----------\n"
+"   1 |        0.5 |      0.5 |     203.5 |       6.5\n"
+"   2 | 3427927.75 |  5793244 | 3428128.8 | 5793243.9"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2251
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2261
+#, no-c-format
+msgid "ST_RasterToWorldCoordX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2262
+#, no-c-format
+msgid ""
+"Returns the geometric X coordinate upper left of a raster, column and row. "
+"Numbering of columns and rows starts at 1."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2267
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordX</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_RasterToWorldCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2285
+#, no-c-format
+msgid ""
+"Returns the upper left X coordinate of a raster column row in geometric "
+"units of the georeferenced raster. Numbering of columns and rows starts at 1 "
+"but if you pass in a negative number or number higher than number of columns "
+"in raster, it will give you coordinates outside of the raster file to left "
+"or right with the assumption that the skew and pixel sizes are same as "
+"selected raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2290
+#, no-c-format
+msgid ""
+"For non-skewed rasters, providing the X column is sufficient. For skewed "
+"rasters, the georeferenced coordinate is a function of the ST_ScaleX and "
+"ST_SkewX and row and column. An error will be raised if you give just the X "
+"column for a skewed raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2294
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordX"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2301
+#, no-c-format
+msgid ""
+"-- non-skewed raster providing column is "
+"sufficient                                        \n"
+"SELECT rid, ST_RasterToWorldCoordX(rast,1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast,2) As x2coord,\n"
+"        ST_ScaleX(rast) As pixelx\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |  x1coord   |  x2coord  | pixelx\n"
+"-----+------------+-----------+--------\n"
+"   1 |        0.5 |       2.5 |      2\n"
+"   2 | 3427927.75 | 3427927.8 |   0.05"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2303
+#, no-c-format
+msgid ""
+"-- for fun lets skew it                                \n"
+"SELECT rid, ST_RasterToWorldCoordX(rast, 1, 1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast, 2, 3) As x2coord,\n"
+"        ST_ScaleX(rast) As pixelx\n"
+"FROM (SELECT rid, ST_SetSkew(rast, 100.5, 0) As rast FROM dummy_rast) As "
+"foo;\n"
+"\n"
+" rid |  x1coord   |  x2coord  | pixelx\n"
+"-----+------------+-----------+--------\n"
+"   1 |        0.5 |     203.5 |      2\n"
+"   2 | 3427927.75 | 3428128.8 |   0.05"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2310
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2316
+#, no-c-format
+msgid "ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2317
+#, no-c-format
+msgid ""
+"Returns the geometric Y coordinate upper left corner of a raster, column and "
+"row. Numbering of columns and rows starts at 1."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2322
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_RasterToWorldCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2340
+#, no-c-format
+msgid ""
+"Returns the upper left Y coordinate of a raster column row in geometric "
+"units of the georeferenced raster. Numbering of columns and rows starts at 1 "
+"but if you pass in a negative number or number higher than number of columns/"
+"rows in raster, it will give you coordinates outside of the raster file to "
+"left or right with the assumption that the skew and pixel sizes are same as "
+"selected raster tile."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2345
+#, no-c-format
+msgid ""
+"For non-skewed rasters, providing the Y column is sufficient. For skewed "
+"rasters, the georeferenced coordinate is a function of the ST_ScaleY and "
+"ST_SkewY and row and column. An error will be raised if you give just the Y "
+"row for a skewed raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2349
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordY"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2355
+#, no-c-format
+msgid ""
+"-- non-skewed raster providing row is "
+"sufficient                                        \n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,3) As y2coord,\n"
+"        ST_ScaleY(rast) As pixely\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | y1coord |  y2coord  | pixely\n"
+"-----+---------+-----------+--------\n"
+"   1 |     0.5 |       6.5 |      3\n"
+"   2 | 5793244 | 5793243.9 |  -0.05"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2357
+#, no-c-format
+msgid ""
+"-- for fun lets skew it                                \n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,2,3) As y2coord,\n"
+"        ST_ScaleY(rast) As pixely\n"
+"FROM (SELECT rid, ST_SetSkew(rast,0,100.5) As rast FROM dummy_rast) As foo;\n"
+"\n"
+" rid | y1coord |  y2coord  | pixely\n"
+"-----+---------+-----------+--------\n"
+"   1 |     0.5 |       107 |      3\n"
+"   2 | 5793244 | 5793344.4 |  -0.05"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2364
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2370
+#, no-c-format
+msgid "ST_Rotation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2371
+#, no-c-format
+msgid "Returns the rotation of the raster in radian."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2376
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_Rotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2386
+#, no-c-format
+msgid ""
+"Returns the uniform rotation of the raster in radian. If a raster does not "
+"have uniform rotation, NaN is returned. Refer to <ulink url=\"http://en."
+"wikipedia.org/wiki/World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2393
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Rotation(ST_SetScale(ST_SetSkew(rast, sqrt(2)), sqrt(2))) as "
+"rot FROM dummy_rast;\n"
+"\n"
+" rid |        rot \n"
+"-----+-------------------\n"
+"   1 | 0.785398163397448\n"
+"   2 | 0.785398163397448"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2399
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetScale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2405
+#, no-c-format
+msgid "ST_SkewX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2406
+#, no-c-format
+msgid "Returns the georeference X skew (or rotation parameter)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2411
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SkewX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2421
+#, no-c-format
+msgid ""
+"Returns the georeference X skew (or rotation parameter). Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2428 reference_raster.xml:2464
+#, no-c-format
+msgid ""
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | skewx | skewy |       georef\n"
+"-----+-------+-------+--------------------\n"
+"   1 |     0 |     0 | 2.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 3.0000000000\n"
+"                     : 0.5000000000\n"
+"                     : 0.5000000000\n"
+"                     :\n"
+"   2 |     0 |     0 | 0.0500000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : -0.0500000000\n"
+"                     : 3427927.7500000000\n"
+"                     : 5793244.0000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2435
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2441
+#, no-c-format
+msgid "ST_SkewY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2442
+#, no-c-format
+msgid "Returns the georeference Y skew (or rotation parameter)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2447
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SkewY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2457
+#, no-c-format
+msgid ""
+"Returns the georeference Y skew (or rotation parameter). Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2471
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2477
+#, no-c-format
+msgid "ST_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2478
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier of the raster as defined in "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2483
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2493
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier of the raster object as defined in "
+"the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2494
+#, no-c-format
+msgid ""
+"From PostGIS 2.0+ the srid of a non-georeferenced raster/geometry is 0 "
+"instead of the prior -1."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2500
+#, no-c-format
+msgid ""
+"SELECT ST_SRID(rast) As srid\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"srid\n"
+"----------------\n"
+"0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2512
+#, no-c-format
+msgid "ST_Summary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2513
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the raster.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2518
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2528
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the raster.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2535
+#, no-c-format
+msgid ""
+"SELECT ST_Summary(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, "
+"0, 0)\n"
+"                                , 1, '8BUI', 1, 0\n"
+"                        )\n"
+"                        , 2, '32BF', 0, -9999\n"
+"                )\n"
+"                , 3, '16BSI', 0, NULL\n"
+"        )\n"
+");\n"
+"\n"
+"                            st_summary                            \n"
+"------------------------------------------------------------------\n"
+" Raster of 10x10 pixels has 3 bands and extent of BOX(0 -10,10 0)+\n"
+"     band 1 of pixtype 8BUI is in-db with NODATA value of 0      +\n"
+"     band 2 of pixtype 32BF is in-db with NODATA value of -9999  +\n"
+"     band 3 of pixtype 16BSI is in-db with no NODATA value\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2540
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandMetaData\"/>, <xref linkend=\"ST_Summary\"/> "
+"<xref linkend=\"ST_Extent\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2551
+#, no-c-format
+msgid "ST_UpperLeftX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2552
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the upper left X coordinate of raster in projected "
+"spatial ref.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2557
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_UpperLeftX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2567
+#, no-c-format
+msgid ""
+"<para>Returns the upper left X coordinate of raster in projected spatial ref."
+"</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2573
+#, no-c-format
+msgid ""
+"SELECt rid, ST_UpperLeftX(rast) As ulx\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |    ulx\n"
+"-----+------------\n"
+"   1 |        0.5\n"
+"   2 | 3427927.75"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2579 reference_raster.xml:2613
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2585
+#, no-c-format
+msgid "ST_UpperLeftY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2586
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the upper left Y coordinate of raster in projected "
+"spatial ref.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2591
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_UpperLeftY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2601
+#, no-c-format
+msgid ""
+"<para>Returns the upper left Y coordinate of raster in projected spatial ref."
+"</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2607
+#, no-c-format
+msgid ""
+"SELECT rid, ST_UpperLeftY(rast) As uly\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |   uly\n"
+"-----+---------\n"
+"   1 |     0.5\n"
+"   2 | 5793244"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2619
+#, no-c-format
+msgid "ST_Width"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2620
+#, no-c-format
+msgid "<refpurpose>Returns the width of the raster in pixels.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2625
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Width</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2635
+#, no-c-format
+msgid "<para>Returns the width of the raster in pixels.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2641
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"rastwidth\n"
+"----------------\n"
+"10"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2655
+#, no-c-format
+msgid "ST_WorldToRasterCoord"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2656
+#, no-c-format
+msgid ""
+"Returns the upper left corner as column and row given geometric X and Y "
+"(longitude and latitude) or a point geometry expressed in the spatial "
+"reference coordinate system of the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2660
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>record <function>ST_WorldToRasterCoord</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>record "
+"<function>ST_WorldToRasterCoord</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>longitude</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>latitude</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2679
+#, no-c-format
+msgid ""
+"Returns the upper left corner as column and row given geometric X and Y "
+"(longitude and latitude) or a point geometry. This function works regardless "
+"of whether or not the geometric X and Y or point geometry is outside the "
+"extent of the raster. Geometric X and Y must be expressed in the spatial "
+"reference coordinate system of the raster."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2692
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        rid,\n"
+"        (ST_WorldToRasterCoord(rast,3427927.8,20.5)).*,\n"
+"        (ST_WorldToRasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',"
+"ST_SRID(rast)))).*\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | columnx |   rowy    | columnx |   rowy    \n"
+"-----+---------+-----------+---------+-----------\n"
+"   1 | 1713964 |         7 | 1713964 |         7\n"
+"   2 |       2 | 115864471 |       2 | 115864471"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2698
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_WorldToRasterCoordY\"/>, <xref linkend="
+"\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend=\"RT_ST_RasterToWorldCoordY\"/"
+">, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2710
+#, no-c-format
+msgid "ST_WorldToRasterCoordX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2711
+#, no-c-format
+msgid ""
+"Returns the column in the raster of the point geometry (pt) or a X and Y "
+"world coordinate (xw, yw) represented in world spatial reference system of "
+"raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2716
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2741
+#, no-c-format
+msgid ""
+"Returns the column in the raster of the point geometry (pt) or a X and Y "
+"world coordinate (xw, yw). A point, or (both xw and yw world coordinates are "
+"required if a raster is skewed). If a raster is not skewed then xw is "
+"sufficient. World coordinates are in the spatial reference coordinate system "
+"of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2743
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordX"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2749
+#, no-c-format
+msgid ""
+"SELECT rid, ST_WorldToRasterCoordX(rast,3427927.8) As xcoord, \n"
+"                ST_WorldToRasterCoordX(rast,3427927.8,20.5) As "
+"xcoord_xwyw, \n"
+"                ST_WorldToRasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 "
+"20.5)',ST_SRID(rast))) As ptxcoord\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | xcoord  |  xcoord_xwyw   | ptxcoord\n"
+"-----+---------+---------+----------\n"
+"   1 | 1713964 | 1713964 |  1713964\n"
+"   2 |       1 |       1 |        1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2755 reference_raster.xml:2810
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SRID"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2765
+#, no-c-format
+msgid "ST_WorldToRasterCoordY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2766
+#, no-c-format
+msgid ""
+"Returns the row in the raster of the point geometry (pt) or a X and Y world "
+"coordinate (xw, yw) represented in world spatial reference system of raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2771
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2796
+#, no-c-format
+msgid ""
+"Returns the row in the raster of the point geometry (pt) or a X and Y world "
+"coordinate (xw, yw). A point, or (both xw and yw world coordinates are "
+"required if a raster is skewed). If a raster is not skewed then xw is "
+"sufficient. World coordinates are in the spatial reference coordinate system "
+"of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2798
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordY"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2804
+#, no-c-format
+msgid ""
+"SELECT rid, ST_WorldToRasterCoordY(rast,20.5) As ycoord, \n"
+"                ST_WorldToRasterCoordY(rast,3427927.8,20.5) As "
+"ycoord_xwyw, \n"
+"                ST_WorldToRasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 "
+"20.5)',ST_SRID(rast))) As ptycoord\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |  ycoord   | ycoord_xwyw | ptycoord\n"
+"-----+-----------+-------------+-----------\n"
+"   1 |         7 |           7 |         7\n"
+"   2 | 115864471 |   115864471 | 115864471"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2817
+#, no-c-format
+msgid "Raster Band Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2820
+#, no-c-format
+msgid "ST_BandMetaData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2821
+#, no-c-format
+msgid ""
+"Returns basic meta data for a specific raster band. band num 1 is assumed if "
+"none-specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2826
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_BandMetaData</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type><parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2837
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster band. Columns returned pixeltype | "
+"nodatavalue | isoutdb | path."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2841
+#, no-c-format
+msgid "If raster contains no bands then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2846
+#, no-c-format
+msgid "If band has no NODATA value, nodatavalue will be NULL."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2855
+#, no-c-format
+msgid ""
+"SELECT rid, (foo.md).*  \n"
+" FROM (SELECT rid, ST_BandMetaData(rast,1) As md\n"
+"FROM dummy_rast WHERE rid=2) As foo;\n"
+"\n"
+" rid | pixeltype | nodatavalue | isoutdb | path\n"
+"-----+-----------+----------------+-------------+---------+------\n"
+"   2 | 8BUI      |           0 | f       |"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2861
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2867
+#, no-c-format
+msgid "ST_BandNoDataValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2868
+#, no-c-format
+msgid ""
+"Returns the value in a given band that represents no data. If no band num 1 "
+"is assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2873
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_BandNoDataValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2884 reference_raster.xml:3012
+#, no-c-format
+msgid "Returns the value that represents no data for the band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2890
+#, no-c-format
+msgid ""
+"SELECT ST_BandNoDataValue(rast,1) As bnval1, \n"
+"    ST_BandNoDataValue(rast,2) As bnval2, ST_BandNoDataValue(rast,3) As "
+"bnval3\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" bnval1 | bnval2 | bnval3\n"
+"--------+--------+--------\n"
+"      0 |      0 |      0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2903
+#, no-c-format
+msgid "ST_BandIsNoData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2904
+#, no-c-format
+msgid "Returns true if the band is filled with only nodata values."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2908
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2925
+#, no-c-format
+msgid ""
+"Returns true if the band is filled with only nodata values. Band 1 is "
+"assumed if not specified. If the last argument is TRUE, the entire band is "
+"checked pixel by pixel. Otherwise, the function simply returns the value of "
+"the isnodata flag for the band. The default value for this parameter is "
+"FALSE, if not specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2935
+#, no-c-format
+msgid ""
+"If the flag is dirty (this is, the result is different using TRUE as last "
+"parameter and not using it) you should update the raster to set this flag to "
+"true, by using ST_SetBandIsNodata(), or ST_SetBandNodataValue() with TRUE as "
+"last argument. See <xref linkend=\"RT_ST_SetBandIsNoData\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2945
+#, no-c-format
+msgid ""
+"-- Create dummy table with one raster column\n"
+"create table dummy_rast (rid integer, rast raster);\n"
+"\n"
+"-- Add raster with two bands, one pixel/band. In the first band, nodatavalue "
+"= pixel value = 3.\n"
+"-- In the second band, nodatavalue = 13, pixel value = 4\n"
+"insert into dummy_rast values(1,\n"
+"(\n"
+"'01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0200' -- nBands (uint16 0)\n"
+"||\n"
+"'17263529ED684A3F' -- scaleX (float64 0.000805965234044584)\n"
+"||\n"
+"'F9253529ED684ABF' -- scaleY (float64 -0.00080596523404458)\n"
+"||\n"
+"'1C9F33CE69E352C0' -- ipX (float64 -75.5533328537098)\n"
+"||\n"
+"'718F0E9A27A44840' -- ipY (float64 49.2824585505576)\n"
+"||\n"
+"'ED50EB853EC32B3F' -- skewX (float64 0.000211812383858707)\n"
+"||\n"
+"'7550EB853EC32B3F' -- skewY (float64 0.000211812383858704)\n"
+"||\n"
+"'E6100000' -- SRID (int32 4326)\n"
+"||\n"
+"'0100' -- width (uint16 1)\n"
+"||\n"
+"'0100' -- height (uint16 1)\n"
+"||\n"
+"'6' -- hasnodatavalue and isnodata value set to true.\n"
+"||\n"
+"'2' -- first band type (4BUI) \n"
+"||\n"
+"'03' -- novalue==3\n"
+"||\n"
+"'03' -- pixel(0,0)==3 (same that nodata)\n"
+"||\n"
+"'0' -- hasnodatavalue set to false\n"
+"||\n"
+"'5' -- second band type (16BSI)\n"
+"||\n"
+"'0D00' -- novalue==13\n"
+"||\n"
+"'0400' -- pixel(0,0)==4\n"
+")::raster\n"
+");\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"true\n"
+"select st_bandisnodata(rast, 2) from dummy_rast where rid = 1; -- Expected "
+"false"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2951
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_SetBandIsNoData\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2960
+#, no-c-format
+msgid "ST_BandPath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2961
+#, no-c-format
+msgid ""
+"Returns system file path to a band stored in file system. If no bandnum "
+"specified, 1 is assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2966
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_BandPath</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2977
+#, no-c-format
+msgid ""
+"Returns system file path to a band. Throws an error if called with an in db "
+"band."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2983
+#, no-c-format
+msgid "<!-- TODO: -->"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2995
+#, no-c-format
+msgid "ST_BandPixelType"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2996
+#, no-c-format
+msgid ""
+"Returns the type of pixel for given band. If no bandnum specified, 1 is "
+"assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3001
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_BandPixelType</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3013
+#, no-c-format
+msgid "There are 11 pixel types. Pixel Types supported are as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3016
+#, no-c-format
+msgid "1BB - 1-bit boolean"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3020
+#, no-c-format
+msgid "2BUI - 2-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3024
+#, no-c-format
+msgid "4BUI - 4-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3028
+#, no-c-format
+msgid "8BSI - 8-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3031
+#, no-c-format
+msgid "8BUI - 8-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3034
+#, no-c-format
+msgid "16BSI - 16-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3037
+#, no-c-format
+msgid "16BUI - 16-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3040
+#, no-c-format
+msgid "32BSI - 32-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3043
+#, no-c-format
+msgid "32BUI - 32-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3046
+#, no-c-format
+msgid "32BF - 32-bit float"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3049
+#, no-c-format
+msgid "64BF - 64-bit float"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3058
+#, no-c-format
+msgid ""
+"SELECT ST_BandPixelType(rast,1) As btype1, \n"
+"    ST_BandPixelType(rast,2) As btype2, ST_BandPixelType(rast,3) As btype3\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" btype1 | btype2 | btype3\n"
+"--------+--------+--------\n"
+" 8BUI   | 8BUI   | 8BUI"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3070
+#, no-c-format
+msgid "ST_HasNoBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3071
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if there is no band with given band number. If no "
+"band number is specified, then band number 1 is assumed.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3076
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_HasNoBand</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum=1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3087
+#, no-c-format
+msgid ""
+"<para>Returns true if there is no band with given band number. If no band "
+"number is specified, then band number 1 is assumed.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3095
+#, no-c-format
+msgid ""
+"SELECT rid, ST_HasNoBand(rast) As hb1, ST_HasNoBand(rast,2) as hb2, \n"
+"ST_HasNoBand(rast,4) as hb4, ST_NumBands(rast) As numbands \n"
+"FROM dummy_rast;\n"
+"\n"
+"rid | hb1 | hb2 | hb4 | numbands\n"
+"-----+-----+-----+-----+----------\n"
+"1 | t   | t   | t   |        0\n"
+"2 | f   | f   | t   |        3"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3108
+#, no-c-format
+msgid "Raster Pixel Accessors and Setters"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3112
+#, no-c-format
+msgid "ST_PixelAsPolygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3113
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the polygon geometry that bounds the pixel for a "
+"particular row and column.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3118
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPolygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3130
+#, no-c-format
+msgid ""
+"<para>Returns the polygon geometry that bounds the pixel for a particular "
+"row and column.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3138
+#, no-c-format
+msgid ""
+"-- get raster pixel polygon\n"
+"SELECT i,j, ST_AsText(ST_PixelAsPolygon(foo.rast, i,j)) As b1pgeom\n"
+"FROM dummy_rast As foo \n"
+"        CROSS JOIN generate_series(1,2) As i \n"
+"        CROSS JOIN generate_series(1,1) As j\n"
+"WHERE rid=2;\n"
+"\n"
+" i | j |                                                    b1pgeom\n"
+"---+---"
+"+-----------------------------------------------------------------------------\n"
+" 1 | 1 | POLYGON((3427927.75 5793244,3427927.8 5793244,3427927.8 "
+"5793243.95,...\n"
+" 2 | 1 | POLYGON((3427927.8 5793244,3427927.85 5793244,3427927.85 "
+"5793243.95, .."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3143
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend="
+"\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>, <xref linkend=\"RT_ST_Intersection\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3158
+#, no-c-format
+msgid "ST_PixelAsPolygons"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3159
+#, no-c-format
+msgid ""
+"Returns the polygon geometry that bounds every pixel of a raster band along "
+"with the value, the X and the Y raster coordinates of each pixel."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3164
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>ST_PixelAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3176
+#, no-c-format
+msgid ""
+"Returns the polygon geometry that bounds every pixel of a raster band along "
+"with the value (double precision), the X and the Y raster coordinates "
+"(integers) of each pixel."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3179
+#, no-c-format
+msgid ""
+"ST_PixelAsPolygons returns one polygon geometry for every pixel. This is "
+"different than ST_DumpAsPolygons where each geometry represents one or more "
+"pixels with the same pixel value."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3184
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3190
+#, no-c-format
+msgid "Enhanced: 2.1.0 exclude_nodata_value optional argument was added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3191 reference_raster.xml:3285
+#: reference_raster.xml:3379
+#, no-c-format
+msgid "Changed: 2.1.1 Changed behavior of exclude_nodata_value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3196
+#, no-c-format
+msgid ""
+"-- get raster pixel polygon\n"
+"SELECT (gv).x, (gv).y, (gv).val, ST_AsText((gv).geom) geom\n"
+"FROM (SELECT ST_PixelAsPolygons(\n"
+"                 ST_SetValue(ST_SetValue(ST_AddBand(ST_MakeEmptyRaster(2, 2, "
+"0, 0, 0.001, -0.001, 0.001, 0.001, 4269), \n"
+"                                                    '8BUI'::text, 1, 0), \n"
+"                                         2, 2, 10), \n"
+"                             1, 1, NULL)\n"
+") gv \n"
+") foo;\n"
+"\n"
+" x | y | val |                geom\n"
+"---+---"
+"+-----------------------------------------------------------------------------\n"
+" 1 | 1 |     | POLYGON((0 0,0.001 0.001,0.002 0,0.001 -0.001,0 0))\n"
+" 1 | 2 |   1 | POLYGON((0.001 -0.001,0.002 0,0.003 -0.001,0.002 -0.002,0.001 "
+"-0.001))\n"
+" 2 | 1 |   1 | POLYGON((0.001 0.001,0.002 0.002,0.003 0.001,0.002 0,0.001 "
+"0.001))\n"
+" 2 | 2 |  10 | POLYGON((0.002 0,0.003 0.001,0.004 0,0.003 -0.001,0.002 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3201
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3215
+#, no-c-format
+msgid "ST_PixelAsPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3216
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a point geometry of the pixel's upper-left corner.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3222
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPoint</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3233
+#, no-c-format
+msgid "<para>Returns a point geometry of the pixel's upper-left corner.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3239
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PixelAsPoint(rast, 1, 1)) FROM dummy_rast WHERE rid = "
+"1;\n"
+"\n"
+"   st_astext    \n"
+"----------------\n"
+" POINT(0.5 0.5)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3244
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3258
+#, no-c-format
+msgid "ST_PixelAsPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3259
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a point geometry for each pixel of a raster band along "
+"with the value, the X and the Y raster coordinates of each pixel. The "
+"coordinates of the point geometry are of the pixel's upper-left corner.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3265
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPoints</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3276
+#, no-c-format
+msgid ""
+"<para>Returns a point geometry for each pixel of a raster band along with "
+"the value, the X and the Y raster coordinates of each pixel. The coordinates "
+"of the point geometry are of the pixel's upper-left corner.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3280 reference_raster.xml:3374
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3290
+#, no-c-format
+msgid ""
+"SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsPoints(rast, 1)).* "
+"FROM dummy_rast WHERE rid = 2) foo;\n"
+"\n"
+" x | y | val |          st_astext           \n"
+"---+---+-----+------------------------------\n"
+" 1 | 1 | 253 | POINT(3427927.75 5793244)\n"
+" 2 | 1 | 254 | POINT(3427927.8 5793244)\n"
+" 3 | 1 | 253 | POINT(3427927.85 5793244)\n"
+" 4 | 1 | 254 | POINT(3427927.9 5793244)\n"
+" 5 | 1 | 254 | POINT(3427927.95 5793244)\n"
+" 1 | 2 | 253 | POINT(3427927.75 5793243.95)\n"
+" 2 | 2 | 254 | POINT(3427927.8 5793243.95)\n"
+" 3 | 2 | 254 | POINT(3427927.85 5793243.95)\n"
+" 4 | 2 | 253 | POINT(3427927.9 5793243.95)\n"
+" 5 | 2 | 249 | POINT(3427927.95 5793243.95)\n"
+" 1 | 3 | 250 | POINT(3427927.75 5793243.9)\n"
+" 2 | 3 | 254 | POINT(3427927.8 5793243.9)\n"
+" 3 | 3 | 254 | POINT(3427927.85 5793243.9)\n"
+" 4 | 3 | 252 | POINT(3427927.9 5793243.9)\n"
+" 5 | 3 | 249 | POINT(3427927.95 5793243.9)\n"
+" 1 | 4 | 251 | POINT(3427927.75 5793243.85)\n"
+" 2 | 4 | 253 | POINT(3427927.8 5793243.85)\n"
+" 3 | 4 | 254 | POINT(3427927.85 5793243.85)\n"
+" 4 | 4 | 254 | POINT(3427927.9 5793243.85)\n"
+" 5 | 4 | 253 | POINT(3427927.95 5793243.85)\n"
+" 1 | 5 | 252 | POINT(3427927.75 5793243.8)\n"
+" 2 | 5 | 250 | POINT(3427927.8 5793243.8)\n"
+" 3 | 5 | 254 | POINT(3427927.85 5793243.8)\n"
+" 4 | 5 | 254 | POINT(3427927.9 5793243.8)\n"
+" 5 | 5 | 254 | POINT(3427927.95 5793243.8)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3295
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3309
+#, no-c-format
+msgid "ST_PixelAsCentroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3310
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the centroid (point geometry) of the area represented by "
+"a pixel.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3316
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsCentroid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3327
+#, no-c-format
+msgid ""
+"<para>Returns the centroid (point geometry) of the area represented by a "
+"pixel.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3333
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PixelAsCentroid(rast, 1, 1)) FROM dummy_rast WHERE rid = "
+"1;\n"
+"\n"
+"  st_astext   \n"
+"--------------\n"
+" POINT(1.5 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3338
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroids\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3352
+#, no-c-format
+msgid "ST_PixelAsCentroids"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3353
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the centroid (point geometry) for each pixel of a raster "
+"band along with the value, the X and the Y raster coordinates of each pixel. "
+"The point geometry is the centroid of the area represented by a pixel.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3359
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsCentroids</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3370
+#, no-c-format
+msgid ""
+"<para>Returns the centroid (point geometry) for each pixel of a raster band "
+"along with the value, the X and the Y raster coordinates of each pixel. The "
+"point geometry is the centroid of the area represented by a pixel.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3384
+#, no-c-format
+msgid ""
+"SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsCentroids(rast, "
+"1)).* FROM dummy_rast WHERE rid = 2) foo;\n"
+" x | y | val |           st_astext            \n"
+"---+---+-----+--------------------------------\n"
+" 1 | 1 | 253 | POINT(3427927.775 5793243.975)\n"
+" 2 | 1 | 254 | POINT(3427927.825 5793243.975)\n"
+" 3 | 1 | 253 | POINT(3427927.875 5793243.975)\n"
+" 4 | 1 | 254 | POINT(3427927.925 5793243.975)\n"
+" 5 | 1 | 254 | POINT(3427927.975 5793243.975)\n"
+" 1 | 2 | 253 | POINT(3427927.775 5793243.925)\n"
+" 2 | 2 | 254 | POINT(3427927.825 5793243.925)\n"
+" 3 | 2 | 254 | POINT(3427927.875 5793243.925)\n"
+" 4 | 2 | 253 | POINT(3427927.925 5793243.925)\n"
+" 5 | 2 | 249 | POINT(3427927.975 5793243.925)\n"
+" 1 | 3 | 250 | POINT(3427927.775 5793243.875)\n"
+" 2 | 3 | 254 | POINT(3427927.825 5793243.875)\n"
+" 3 | 3 | 254 | POINT(3427927.875 5793243.875)\n"
+" 4 | 3 | 252 | POINT(3427927.925 5793243.875)\n"
+" 5 | 3 | 249 | POINT(3427927.975 5793243.875)\n"
+" 1 | 4 | 251 | POINT(3427927.775 5793243.825)\n"
+" 2 | 4 | 253 | POINT(3427927.825 5793243.825)\n"
+" 3 | 4 | 254 | POINT(3427927.875 5793243.825)\n"
+" 4 | 4 | 254 | POINT(3427927.925 5793243.825)\n"
+" 5 | 4 | 253 | POINT(3427927.975 5793243.825)\n"
+" 1 | 5 | 252 | POINT(3427927.775 5793243.775)\n"
+" 2 | 5 | 250 | POINT(3427927.825 5793243.775)\n"
+" 3 | 5 | 254 | POINT(3427927.875 5793243.775)\n"
+" 4 | 5 | 254 | POINT(3427927.925 5793243.775)\n"
+" 5 | 5 | 254 | POINT(3427927.975 5793243.775)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3389
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3403
+#, no-c-format
+msgid "ST_Value"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3404
+#, no-c-format
+msgid ""
+"Returns the value of a given band in a given columnx, rowy pixel or at a "
+"particular geometric point. Band numbers start at 1 and assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to false, "
+"then all pixels include <varname>nodata</varname> pixels are considered to "
+"intersect and return value. If <varname>exclude_nodata_value</varname> is "
+"not passed in then reads it from metadata of raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3408
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3443
+#, no-c-format
+msgid ""
+"Returns the value of a given band in a given columnx, rowy pixel or at a "
+"given geometry point. Band numbers start at 1 and band is assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to true, "
+"then only non <varname>nodata</varname> pixels are considered. If "
+"<varname>exclude_nodata_value</varname> is set to false, then all pixels are "
+"considered."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3446
+#, no-c-format
+msgid "Enhanced: 2.0.0 exclude_nodata_value optional argument was added."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3451
+#, no-c-format
+msgid ""
+"-- get raster values at particular postgis geometry points\n"
+"-- the srid of your geometry should be same as for your raster\n"
+"SELECT rid, ST_Value(rast, foo.pt_geom) As b1pval, ST_Value(rast, 2, foo."
+"pt_geom) As b2pval\n"
+"FROM dummy_rast CROSS JOIN (SELECT ST_SetSRID(ST_Point(3427927.77, "
+"5793243.76), 0) As pt_geom) As foo\n"
+"WHERE rid=2;\n"
+"\n"
+" rid | b1pval | b2pval\n"
+"-----+--------+--------\n"
+"   2 |    252 |     79\n"
+"   \n"
+"   \n"
+"-- general fictitious example using a real table\n"
+"SELECT rid, ST_Value(rast, 3, sometable.geom) As b3pval\n"
+"FROM sometable\n"
+"WHERE ST_Intersects(rast,sometable.geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3452
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Value(rast, 1, 1, 1) As b1pval, \n"
+"    ST_Value(rast, 2, 1, 1) As b2pval, ST_Value(rast, 3, 1, 1) As b3pval\n"
+"FROM dummy_rast\n"
+"WHERE rid=2;\n"
+"\n"
+" rid | b1pval | b2pval | b3pval\n"
+"-----+--------+--------+--------\n"
+"   2 |    253 |     78 |     70"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3454
+#, no-c-format
+msgid ""
+"--- Get all values in bands 1,2,3 of each pixel --\n"
+"SELECT x, y, ST_Value(rast, 1, x, y) As b1val, \n"
+"        ST_Value(rast, 2, x, y) As b2val, ST_Value(rast, 3, x, y) As b3val\n"
+"FROM dummy_rast CROSS JOIN\n"
+"generate_series(1, 1000) As x CROSS JOIN generate_series(1, 1000) As y\n"
+"WHERE rid =  2 AND x <= ST_Width(rast) AND y <= ST_Height(rast);\n"
+"\n"
+" x | y | b1val | b2val | b3val\n"
+"---+---+-------+-------+-------\n"
+" 1 | 1 |   253 |    78 |    70\n"
+" 1 | 2 |   253 |    96 |    80\n"
+" 1 | 3 |   250 |    99 |    90\n"
+" 1 | 4 |   251 |    89 |    77\n"
+" 1 | 5 |   252 |    79 |    62\n"
+" 2 | 1 |   254 |    98 |    86\n"
+" 2 | 2 |   254 |   118 |   108\n"
+" :\n"
+" :"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3456
+#, no-c-format
+msgid ""
+"--- Get all values in bands 1,2,3 of each pixel same as above but returning "
+"the upper left point point of each pixel --\n"
+"SELECT ST_AsText(ST_SetSRID(\n"
+"        ST_Point(ST_UpperLeftX(rast) + ST_ScaleX(rast)*x, \n"
+"                ST_UpperLeftY(rast) + ST_ScaleY(rast)*y), \n"
+"                ST_SRID(rast))) As uplpt\n"
+"    , ST_Value(rast, 1, x, y) As b1val, \n"
+"        ST_Value(rast, 2, x, y) As b2val, ST_Value(rast, 3, x, y) As b3val\n"
+"FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000) As x CROSS JOIN generate_series(1,1000) As y\n"
+"WHERE rid =  2 AND x <= ST_Width(rast) AND y <= ST_Height(rast);\n"
+"\n"
+"            uplpt            | b1val | b2val | b3val\n"
+"-----------------------------+-------+-------+-------\n"
+" POINT(3427929.25 5793245.5) |   253 |    78 |    70\n"
+" POINT(3427929.25 5793247)   |   253 |    96 |    80\n"
+" POINT(3427929.25 5793248.5) |   250 |    99 |    90\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3457
+#, no-c-format
+msgid ""
+"--- Get a polygon formed by union of all pixels \n"
+"        that fall in a particular value range and intersect particular "
+"polygon --\n"
+"SELECT ST_AsText(ST_Union(pixpolyg)) As shadow\n"
+"FROM (SELECT ST_Translate(ST_MakeEnvelope(\n"
+"                ST_UpperLeftX(rast), ST_UpperLeftY(rast), \n"
+"                        ST_UpperLeftX(rast) + ST_ScaleX(rast),\n"
+"                        ST_UpperLeftY(rast) + ST_ScaleY(rast), 0\n"
+"                        ), ST_ScaleX(rast)*x, ST_ScaleY(rast)*y\n"
+"                ) As pixpolyg, ST_Value(rast, 2, x, y) As b2val\n"
+"        FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000) As x CROSS JOIN generate_series(1,1000) As y\n"
+"WHERE rid =  2 \n"
+"        AND x <= ST_Width(rast) AND y <= ST_Height(rast)) As foo\n"
+"WHERE  \n"
+"        ST_Intersects(\n"
+"                pixpolyg, \n"
+"                ST_GeomFromText('POLYGON((3427928 5793244,3427927.75 "
+"5793243.75,3427928 5793243.75,3427928 5793244))',0)\n"
+"                ) AND b2val != 254;\n"
+"\n"
+"\n"
+"                shadow\n"
+"------------------------------------------------------------------------------------\n"
+" MULTIPOLYGON(((3427928 5793243.9,3427928 5793243.85,3427927.95 "
+"5793243.85,3427927.95 5793243.9,\n"
+" 3427927.95 5793243.95,3427928 5793243.95,3427928.05 5793243.95,3427928.05 "
+"5793243.9,3427928 5793243.9)),((3427927.95 5793243.9,3427927.95 579324\n"
+"3.85,3427927.9 5793243.85,3427927.85 5793243.85,3427927.85 "
+"5793243.9,3427927.9 5793243.9,3427927.9 5793243.95,\n"
+"3427927.95 5793243.95,3427927.95 5793243.9)),((3427927.85 "
+"5793243.75,3427927.85 5793243.7,3427927.8 5793243.7,3427927.8 5793243.75\n"
+",3427927.8 5793243.8,3427927.8 5793243.85,3427927.85 5793243.85,3427927.85 "
+"5793243.8,3427927.85 5793243.75)),\n"
+"((3427928.05 5793243.75,3427928.05 5793243.7,3427928 5793243.7,3427927.95 "
+"5793243.7,3427927.95 5793243.75,3427927.95 5793243.8,3427\n"
+"927.95 5793243.85,3427928 5793243.85,3427928 5793243.8,3427928.05 "
+"5793243.8,\n"
+"3427928.05 5793243.75)),((3427927.95 5793243.75,3427927.95 "
+"5793243.7,3427927.9 5793243.7,3427927.85 5793243.7,\n"
+"3427927.85 5793243.75,3427927.85 5793243.8,3427927.85 5793243.85,3427927.9 "
+"5793243.85,\n"
+"3427927.95 5793243.85,3427927.95 5793243.8,3427927.95 5793243.75)))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3459
+#, no-c-format
+msgid ""
+"--- Checking all the pixels of a large raster tile can take a long time.\n"
+"--- You can dramatically improve speed at some lose of precision by orders "
+"of magnitude \n"
+"--  by sampling pixels using the step optional parameter of "
+"generate_series.  \n"
+"--  This next example does the same as previous but by checking 1 for every "
+"4 (2x2) pixels and putting in the last checked\n"
+"--  putting in the checked pixel as the value for subsequent 4\n"
+"        \n"
+"SELECT ST_AsText(ST_Union(pixpolyg)) As shadow\n"
+"FROM (SELECT ST_Translate(ST_MakeEnvelope(\n"
+"                ST_UpperLeftX(rast), ST_UpperLeftY(rast), \n"
+"                        ST_UpperLeftX(rast) + ST_ScaleX(rast)*2,\n"
+"                        ST_UpperLeftY(rast) + ST_ScaleY(rast)*2, 0\n"
+"                        ), ST_ScaleX(rast)*x, ST_ScaleY(rast)*y\n"
+"                ) As pixpolyg, ST_Value(rast, 2, x, y) As b2val\n"
+"        FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000,2) As x CROSS JOIN generate_series(1,1000,2) As y\n"
+"WHERE rid =  2 \n"
+"        AND x <= ST_Width(rast)  AND y <= ST_Height(rast)  ) As foo\n"
+"WHERE  \n"
+"        ST_Intersects(\n"
+"                pixpolyg, \n"
+"                ST_GeomFromText('POLYGON((3427928 5793244,3427927.75 "
+"5793243.75,3427928 5793243.75,3427928 5793244))',0)\n"
+"                ) AND b2val != 254;\n"
+"\n"
+"                shadow\n"
+"------------------------------------------------------------------------------------\n"
+" MULTIPOLYGON(((3427927.9 5793243.85,3427927.8 5793243.85,3427927.8 "
+"5793243.95,\n"
+" 3427927.9 5793243.95,3427928 5793243.95,3427928.1 5793243.95,3427928.1 "
+"5793243.85,3427928 5793243.85,3427927.9 5793243.85)),\n"
+" ((3427927.9 5793243.65,3427927.8 5793243.65,3427927.8 5793243.75,3427927.8 "
+"5793243.85,3427927.9 5793243.85,\n"
+" 3427928 5793243.85,3427928 5793243.75,3427928.1 5793243.75,3427928.1 "
+"5793243.65,3427928 5793243.65,3427927.9 5793243.65)))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3464
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_DumpAsPolygons\"/>, <xref linkend=\"RT_ST_NumBands\"/"
+">, <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_ScaleX\"/"
+">, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>, <xref linkend=\"RT_ST_SRID\"/>, <xref "
+"linkend=\"ST_AsText\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_MakeEnvelope\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Intersection\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3485
+#, no-c-format
+msgid "ST_NearestValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3486
+#, no-c-format
+msgid ""
+"Returns the nearest non-<varname>NODATA</varname> value of a given band's "
+"pixel specified by a columnx and rowy or a geometric point expressed in the "
+"same spatial reference coordinate system as the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3492
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3529
+#, no-c-format
+msgid ""
+"Returns the nearest non-<varname>NODATA</varname> value of a given band in a "
+"given columnx, rowy pixel or at a specific geometric point. If the columnx, "
+"rowy pixel or the pixel at the specified geometric point is <varname>NODATA</"
+"varname>, the function will find the nearest pixel to the columnx, rowy "
+"pixel or geometric point whose value is not <varname>NODATA</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3532 reference_raster.xml:3619
+#, no-c-format
+msgid ""
+"Band numbers start at 1 and <varname>bandnum</varname> is assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to false, "
+"then all pixels include <varname>nodata</varname> pixels are considered to "
+"intersect and return value. If <varname>exclude_nodata_value</varname> is "
+"not passed in then reads it from metadata of raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3537
+#, no-c-format
+msgid "ST_NearestValue is a drop-in replacement for ST_Value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3546
+#, no-c-format
+msgid ""
+"-- pixel 2x2 has value\n"
+"SELECT\n"
+"        ST_Value(rast, 2, 2) AS value,\n"
+"        ST_NearestValue(rast, 2, 2) AS nearestvalue\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_AddBand(\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                '8BUI'::"
+"text, 1, 0\n"
+"                                                        ),\n"
+"                                                        1, 1, 0.\n"
+"                                                ),\n"
+"                                                2, 3, 0.\n"
+"                                        ),\n"
+"                                        3, 5, 0.\n"
+"                                ),\n"
+"                                4, 2, 0.\n"
+"                        ),\n"
+"                        5, 4, 0.\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+" value | nearestvalue \n"
+"-------+--------------\n"
+"     1 |            1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3548
+#, no-c-format
+msgid ""
+"-- pixel 2x3 is NODATA\n"
+"SELECT\n"
+"        ST_Value(rast, 2, 3) AS value,\n"
+"        ST_NearestValue(rast, 2, 3) AS nearestvalue\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_AddBand(\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                '8BUI'::"
+"text, 1, 0\n"
+"                                                        ),\n"
+"                                                        1, 1, 0.\n"
+"                                                ),\n"
+"                                                2, 3, 0.\n"
+"                                        ),\n"
+"                                        3, 5, 0.\n"
+"                                ),\n"
+"                                4, 2, 0.\n"
+"                        ),\n"
+"                        5, 4, 0.\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+" value | nearestvalue \n"
+"-------+--------------\n"
+"       |            1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3554
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3564
+#, no-c-format
+msgid "ST_Neighborhood"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3565
+#, no-c-format
+msgid ""
+"Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
+"values around a given band's pixel specified by either a columnX and rowY or "
+"a geometric point expressed in the same spatial reference coordinate system "
+"as the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3571
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3616
+#, no-c-format
+msgid ""
+"Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
+"values around a given band's pixel specified by either a columnX and rowY or "
+"a geometric point expressed in the same spatial reference coordinate system "
+"as the raster. The <varname>distanceX</varname> and <varname>distanceY</"
+"varname> parameters define the number of pixels around the specified pixel "
+"in the X and Y axes, e.g. I want all values within 3 pixel distance along "
+"the X axis and 2 pixel distance along the Y axis around my pixel of "
+"interest. The center value of the 2-D array will be the value at the pixel "
+"specified by the columnX and rowY or the geometric point."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3623
+#, no-c-format
+msgid ""
+"The number of elements along each axis of the returning 2-D array is 2 * "
+"(<varname>distanceX</varname>|<varname>distanceY</varname>) + 1. So for a "
+"<varname>distanceX</varname> and <varname>distanceY</varname> of 1, the "
+"returning array will be 3x3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3628
+#, no-c-format
+msgid ""
+"The 2-D array output can be passed to any of the raster processing builtin "
+"functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3638
+#, no-c-format
+msgid ""
+"-- pixel 2x2 has value\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 2, 2, 1, 1)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"         st_neighborhood         \n"
+"---------------------------------\n"
+" {{NULL,1,1},{1,1,NULL},{1,1,1}}"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3640
+#, no-c-format
+msgid ""
+"-- pixel 2x3 is NODATA\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 2, 3, 1, 1)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"       st_neighborhood        \n"
+"------------------------------\n"
+" {{1,1,1},{1,NULL,1},{1,1,1}}"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3642
+#, no-c-format
+msgid ""
+"-- pixel 3x3 has value\n"
+"-- exclude_nodata_value = FALSE\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 3, 3, 1, 1, false)\n"
+"FROM (\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"      st_neighborhood      \n"
+"---------------------------\n"
+" {{1,0,1},{1,1,1},{0,1,1}}"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3648
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
+"linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend="
+"\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref linkend="
+"\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3665
+#, no-c-format
+msgid "ST_SetValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3666
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the value of a given band in "
+"a given columnx, rowy pixel or the pixels that intersect a particular "
+"geometry. Band numbers start at 1 and assumed to be 1 if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3670
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3704
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the specified pixels' values "
+"to new value for the designed band given the raster's row and column or a "
+"geometry. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3707
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Geometry variant of ST_SetValue() now supports any geometry "
+"type, not just point. The geometry variant is a wrapper around the geomval[] "
+"variant of ST_SetValues()"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3713
+#, no-c-format
+msgid ""
+"-- Geometry example\n"
+"SELECT (foo.geomval).val, ST_AsText(ST_Union((foo.geomval).geom))\n"
+"FROM (SELECT ST_DumpAsPolygons(\n"
+"                ST_SetValue(rast,1,\n"
+"                                ST_Point(3427927.75, 5793243.95),\n"
+"                                50)\n"
+"                        ) As geomval\n"
+"FROM dummy_rast\n"
+"where rid = 2) As foo\n"
+"WHERE (foo.geomval).val < 250\n"
+"GROUP BY (foo.geomval).val;\n"
+"\n"
+" val |                                                     st_astext\n"
+"-----+-------------------------------------------------------------------\n"
+"  50 | POLYGON((3427927.75 5793244,3427927.75 5793243.95,3427927.8 "
+"579324 ...\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 57932 ..."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3715
+#, no-c-format
+msgid ""
+"-- Store the changed raster --\n"
+"        UPDATE dummy_rast SET rast = ST_SetValue(rast,1, "
+"ST_Point(3427927.75, 5793243.95),100)\n"
+"                WHERE rid = 2   ;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3719 reference_raster.xml:9319
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DumpAsPolygons\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3725
+#, no-c-format
+msgid "ST_SetValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3726
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the values of a given band."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3730
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>boolean[][] </type> "
+"<parameter>noset=NULL</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>nosetvalue</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValues</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geomval[] </type> <parameter>geomvalset</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3789
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting specified pixels to new "
+"value(s) for the designated band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3793
+#, no-c-format
+msgid ""
+"If <varname>keepnodata</varname> is TRUE, those pixels whose values are "
+"NODATA will not be set with the corresponding value in <varname>newvalueset</"
+"varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3797
+#, no-c-format
+msgid ""
+"For Variant 1, the specific pixels to be set are determined by the "
+"<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates and "
+"the dimensions of the <varname>newvalueset</varname> array. <varname>noset</"
+"varname> can be used to prevent pixels with values present in "
+"<varname>newvalueset</varname> from being set (due to PostgreSQL not "
+"permitting ragged/jagged arrays). See example Variant 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3801
+#, no-c-format
+msgid ""
+"Variant 2 is like Variant 1 but with a simple double precision "
+"<varname>nosetvalue</varname> instead of a boolean <varname>noset</varname> "
+"array. Elements in <varname>newvalueset</varname> with the "
+"<varname>nosetvalue</varname> value with be skipped. See example Variant 2."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3805
+#, no-c-format
+msgid ""
+"For Variant 3, the specific pixels to be set are determined by the "
+"<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates, "
+"<varname>width</varname> and <varname>height</varname>. See example Variant "
+"3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3809
+#, no-c-format
+msgid ""
+"Variant 4 is the same as Variant 3 with the exception that it assumes that "
+"the first band's pixels of <varname>rast</varname> will be set."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3813
+#, no-c-format
+msgid ""
+"For Variant 5, an array of <xref linkend=\"geomval\"/> is used to determine "
+"the specific pixels to be set. If all the geometries in the array are of "
+"type POINT or MULTIPOINT, the function uses a shortcut where the longitude "
+"and latitude of each point is used to set a pixel directly. Otherwise, the "
+"geometries are converted to rasters and then iterated through in one pass. "
+"See example Variant 5."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3822 reference_raster.xml:6730
+#: reference_raster.xml:8262 reference_raster.xml:8705
+#: reference_raster.xml:8802 reference_raster.xml:8930
+#, no-c-format
+msgid "Examples: Variant 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3824
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 2, 2, ARRAY[[9, 9], [9, 9]]::double precision[]"
+"[]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3826
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 9 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   9\n"
+" 1 | 2 |   9\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3828
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1,\n"
+"                                ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][],\n"
+"                                ARRAY[[false], [true]]::boolean[][]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   9\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3830
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"|   | 1 | 1 |          |   | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_SetValue(\n"
+"                                ST_AddBand(\n"
+"                                        ST_MakeEmptyRaster(3, 3, 0, 0, 1, "
+"-1, 0, 0, 0),\n"
+"                                        1, '8BUI', 1, 0\n"
+"                                ),\n"
+"                                1, 1, 1, NULL\n"
+"                        ),\n"
+"                        1, 1, 1,\n"
+"                                ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][],\n"
+"                                ARRAY[[false], [true]]::boolean[][],\n"
+"                                TRUE\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   \n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3835 reference_raster.xml:8269
+#: reference_raster.xml:8710 reference_raster.xml:8807
+#: reference_raster.xml:8935
+#, no-c-format
+msgid "Examples: Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3837
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[-1, -1, -1], [-1, 9, 9], [-1, 9, "
+"9]]::double precision[][], -1\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3839
+#, no-c-format
+msgid ""
+"/*\n"
+"This example is like the previous one.  Instead of nosetvalue = -1, "
+"nosetvalue = NULL\n"
+"\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[NULL, NULL, NULL], [NULL, 9, 9], "
+"[NULL, 9, 9]]::double precision[][], NULL::double precision\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3844 reference_raster.xml:4788
+#, no-c-format
+msgid "Examples: Variant 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3846
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 2, 2, 2, 2, 9\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3848
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 |   | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_SetValue(\n"
+"                                ST_AddBand(\n"
+"                                        ST_MakeEmptyRaster(3, 3, 0, 0, 1, "
+"-1, 0, 0, 0),\n"
+"                                        1, '8BUI', 1, 0\n"
+"                                ),\n"
+"                                1, 2, 2, NULL\n"
+"                        ),\n"
+"                        1, 2, 2, 2, 2, 9, TRUE\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3853
+#, no-c-format
+msgid "Examples: Variant 5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3855
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        rid, gid, ST_DumpValues(ST_SetValue(rast, 1, geom, gid))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"ORDER BY rid, gid;\n"
+"\n"
+" rid | gid |                                                                "
+"st_dumpvalues                                                                \n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,NULL,1,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,"
+"NULL}}\")\n"
+"   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,"
+"NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   3 | (1,\"{{3,3,3,3,3},{3,NULL,NULL,NULL,NULL},{3,NULL,NULL,NULL,"
+"NULL},{3,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   4 | (1,\"{{4,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,"
+"NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,4}}\")\n"
+"(4 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3857
+#, no-c-format
+msgid ""
+"The following shows that geomvals later in the array can overwrite prior "
+"geomvals"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3858
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 1\n"
+"        AND t3.gid = 2\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3860
+#, no-c-format
+msgid "This example is the opposite of the prior example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3861
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 2\n"
+"        AND t3.gid = 1\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   2 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,1,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3868
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_PixelAsPolygons"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3878
+#, no-c-format
+msgid "ST_DumpValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3879
+#, no-c-format
+msgid "Get the values of the specified band as a 2-dimension array."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3885
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_DumpValues</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer[] </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision[][] "
+"<function>ST_DumpValues</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rast</parameter> </paramdef> <paramdef> <type>integer </type> "
+"<parameter>nband</parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3916
+#, no-c-format
+msgid ""
+"Get the values of the specified band as a 2-dimension array. If "
+"<varname>nband</varname> is NULL or not provided, all raster bands are "
+"processed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3926
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast)).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"     2 | {{3,3,3},{3,3,3},{3,3,3}}\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3928
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast, ARRAY[3, 1])).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3933
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_SetValues\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3944
+#, no-c-format
+msgid "ST_PixelOfValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3945
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3951
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>double precision[] </type> <parameter>search</"
+"parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </"
+"type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4012
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4021
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        (pixels).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_PixelOfValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_SetValue(\n"
+"                                                                ST_AddBand(\n"
+"                                                                        ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                        '8BUI'::"
+"text, 1, 0\n"
+"                                                                ),\n"
+"                                                                1, 1, 0\n"
+"                                                        ),\n"
+"                                                        2, 3, 0\n"
+"                                                ),\n"
+"                                                3, 5, 0\n"
+"                                        ),\n"
+"                                        4, 2, 0\n"
+"                                ),\n"
+"                                5, 4, 255\n"
+"                        )\n"
+"                , 1, ARRAY[1, 255]) AS pixels\n"
+") AS foo\n"
+"\n"
+" val | x | y \n"
+"-----+---+---\n"
+"   1 | 1 | 2\n"
+"   1 | 1 | 3\n"
+"   1 | 1 | 4\n"
+"   1 | 1 | 5\n"
+"   1 | 2 | 1\n"
+"   1 | 2 | 2\n"
+"   1 | 2 | 4\n"
+"   1 | 2 | 5\n"
+"   1 | 3 | 1\n"
+"   1 | 3 | 2\n"
+"   1 | 3 | 3\n"
+"   1 | 3 | 4\n"
+"   1 | 4 | 1\n"
+"   1 | 4 | 3\n"
+"   1 | 4 | 4\n"
+"   1 | 4 | 5\n"
+"   1 | 5 | 1\n"
+"   1 | 5 | 2\n"
+"   1 | 5 | 3\n"
+" 255 | 5 | 4\n"
+"   1 | 5 | 5"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4029
+#, no-c-format
+msgid "Raster Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4033
+#, no-c-format
+msgid "ST_SetGeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4034
+#, no-c-format
+msgid ""
+"Set Georeference 6 georeference parameters in a single call. Numbers should "
+"be separated by white space. Accepts inputs in GDAL or ESRI format. Default "
+"is GDAL."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4038
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>georefcoords</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>format=GDAL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>upperlefty</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scalex</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scaley</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>skewy</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4064
+#, no-c-format
+msgid ""
+"Set Georeference 6 georeference parameters in a single call. Accepts inputs "
+"in 'GDAL' or 'ESRI' format. Default is GDAL. If 6 coordinates are not "
+"provided will return null."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4067
+#, no-c-format
+msgid "scalex skewy skewx scaley upperleftx upperlefty"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4069
+#, no-c-format
+msgid ""
+"scalex skewy skewx scaley upperleftx + scalex*0.5 upperlefty + scaley*0.5"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4072
+#, no-c-format
+msgid ""
+"If the raster has out-db bands, changing the georeference may result in "
+"incorrect access of the band's externally stored data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4077
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Addition of ST_SetGeoReference(raster, double "
+"precision, ...) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4084
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        0 AS rid, (ST_Metadata(rast)).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        1, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 0.1 0.1', "
+"'GDAL'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 5.1 -4.9', "
+"'ESRI'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3, (ST_Metadata(ST_SetGeoReference(rast, 1, 1, 10, -10, 0.001, "
+"0.001))).*\n"
+"FROM foo\n"
+"\n"
+" rid |     upperleftx     |     upperlefty     | width | height | scalex | "
+"scaley | skewx | skewy | srid | numbands \n"
+"-----+--------------------+--------------------+-------+--------+--------"
+"+--------+-------+-------+------+----------\n"
+"   0 |                  0 |                  0 |     5 |      5 |      1 "
+"|     -1 |     0 |     0 |    0 |        0\n"
+"   1 |                0.1 |                0.1 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   2 | 0.0999999999999996 | 0.0999999999999996 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   3 |                  1 |                  1 |     5 |      5 |     10 "
+"|    -10 | 0.001 | 0.001 |    0 |        0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4089
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4095
+#, no-c-format
+msgid "ST_SetRotation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4096
+#, no-c-format
+msgid "Set the rotation of the raster in radian."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4101
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SetRotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8</type> <parameter>rotation</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4112
+#, no-c-format
+msgid ""
+"Uniformly rotate the raster. Rotation is in radian. Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4118
+#, no-c-format
+msgid ""
+"SELECT \n"
+"  ST_ScaleX(rast1), ST_ScaleY(rast1), ST_SkewX(rast1), ST_SkewY(rast1),\n"
+"  ST_ScaleX(rast2), ST_ScaleY(rast2), ST_SkewX(rast2), ST_SkewY(rast2) \n"
+"FROM (\n"
+"  SELECT ST_SetRotation(rast, 15) AS rast1, rast as rast2 FROM dummy_rast\n"
+") AS foo;\n"
+"      st_scalex      |      st_scaley      |      st_skewx      |      "
+"st_skewy      | st_scalex | st_scaley | st_skewx | st_skewy\n"
+"---------------------+---------------------+--------------------"
+"+--------------------+-----------+-----------+----------+----------\n"
+"   -1.51937582571764 |   -2.27906373857646 |   1.95086352047135 |   "
+"1.30057568031423 |         2 |         3 |        0 |        0\n"
+" -0.0379843956429411 | -0.0379843956429411 | 0.0325143920078558 | "
+"0.0325143920078558 |      0.05 |     -0.05 |        0 |        0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4131
+#, no-c-format
+msgid "ST_SetScale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4132
+#, no-c-format
+msgid ""
+"Sets the X and Y size of pixels in units of coordinate reference system. "
+"Number units/pixel width/height."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4136
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>xy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetScale</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>x</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>y</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4155
+#, no-c-format
+msgid ""
+"Sets the X and Y size of pixels in units of coordinate reference system. "
+"Number units/pixel width/height. If only one unit passed in, assumed X and Y "
+"are the same number."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4158
+#, no-c-format
+msgid ""
+"ST_SetScale is different from <xref linkend=\"RT_ST_Rescale\"/> in that "
+"ST_SetScale do not resample the raster to match the raster extent. It only "
+"changes the metadata (or georeference) of the raster to correct an "
+"originally mis-specified scaling. ST_Rescale results in a raster having "
+"different width and height computed to fit the geographic extent of the "
+"input raster. ST_SetScale do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4160
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In WKTRaster versions this was called ST_SetPixelSize. This "
+"was changed in 2.0.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4166
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetScale(rast, 1.5)\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT ST_ScaleX(rast) As pixx, ST_ScaleY(rast) As pixy, Box3D(rast) As "
+"newbox\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" pixx | pixy |                    newbox\n"
+"------+------+----------------------------------------------\n"
+"  1.5 |  1.5 | BOX(3427927.75 5793244 0, 3427935.25 5793251.5 0)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4167
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetScale(rast, 1.5, 0.55)\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT ST_ScaleX(rast) As pixx, ST_ScaleY(rast) As pixy, Box3D(rast) As "
+"newbox\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" pixx | pixy |                   newbox\n"
+"------+------+--------------------------------------------\n"
+"  1.5 | 0.55 | BOX(3427927.75 5793244 0,3427935.25 5793247 0)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4173
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4179
+#, no-c-format
+msgid "ST_SetSkew"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4180
+#, no-c-format
+msgid ""
+"Sets the georeference X and Y skew (or rotation parameter). If only one is "
+"passed in, sets X and Y to the same value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4184
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>skewxy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetSkew</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewy</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4202
+#, no-c-format
+msgid ""
+"Sets the georeference X and Y skew (or rotation parameter). If only one is "
+"passed in, sets X and Y to the same value. Refer to <ulink url=\"http://en."
+"wikipedia.org/wiki/World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4209
+#, no-c-format
+msgid ""
+"-- Example 1                    \n"
+"UPDATE dummy_rast SET rast = ST_SetSkew(rast,1,2) WHERE rid = 1;\n"
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast WHERE rid = 1;\n"
+"\n"
+"rid | skewx | skewy |    georef\n"
+"----+-------+-------+--------------\n"
+"  1 |     1 |     2 | 2.0000000000\n"
+"                    : 2.0000000000\n"
+"                    : 1.0000000000\n"
+"                    : 3.0000000000\n"
+"                    : 0.5000000000\n"
+"                    : 0.5000000000"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4211
+#, no-c-format
+msgid ""
+"-- Example 2 set both to same number:\n"
+"UPDATE dummy_rast SET rast = ST_SetSkew(rast,0) WHERE rid = 1;\n"
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast WHERE rid = 1;\n"
+"                        \n"
+" rid | skewx | skewy |    georef\n"
+"-----+-------+-------+--------------\n"
+"   1 |     0 |     0 | 2.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 3.0000000000\n"
+"                     : 0.5000000000\n"
+"                     : 0.5000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4218
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetGeoReference\"/>, <xref linkend=\"RT_ST_SkewX\"/"
+">, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4224
+#, no-c-format
+msgid "ST_SetSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4226
+#, no-c-format
+msgid ""
+"Sets the SRID of a raster to a particular integer srid defined in the "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4231
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4246
+#, no-c-format
+msgid "Sets the SRID on a raster to a particular integer value."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4249
+#, no-c-format
+msgid ""
+"This function does not transform the raster in any way - it simply sets meta "
+"data defining the spatial ref of the coordinate reference system that it's "
+"currently in. Useful for transformations later."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4259
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4266
+#, no-c-format
+msgid "ST_SetUpperLeft"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4267
+#, no-c-format
+msgid ""
+"Sets the value of the upper left corner of the pixel to projected X and Y "
+"coordinates."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4272
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetUpperLeft</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>y</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4284
+#, no-c-format
+msgid ""
+"Set the value of the upper left corner of raster to the projected X "
+"coordinates"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4290
+#, no-c-format
+msgid ""
+"SELECT ST_SetUpperLeft(rast,-71.01,42.37)  \n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4296
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4302
+#, no-c-format
+msgid "ST_Resample"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4303
+#, no-c-format
+msgid ""
+"Resample a raster using a specified resampling algorithm, new dimensions, an "
+"arbitrary grid corner and a set of raster georeferencing attributes defined "
+"or borrowed from another raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4309
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>double "
+"precision </type> <parameter>scalex=0</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>scaley=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>ref</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
+"type> <parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>usescale=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>usescale</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4359
+#, no-c-format
+msgid ""
+"Resample a raster using a specified resampling algorithm, new dimensions "
+"(width & height), a grid corner (gridx & gridy) and a set of raster "
+"georeferencing attributes (scalex, scaley, skewx & skewy) defined or "
+"borrowed from another raster. If using a reference raster, the two rasters "
+"must have the same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4363
+#, no-c-format
+msgid ""
+"New pixel values are computed using the NearestNeighbor (English or American "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor which is the fastest but produce the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4367 reference_raster.xml:4434
+#, no-c-format
+msgid ""
+"A maxerror percent of 0.125 is used if no <varname>maxerr</varname> is "
+"specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4372 reference_raster.xml:4436
+#: reference_raster.xml:4504 reference_raster.xml:4582
+#, no-c-format
+msgid ""
+"Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp "
+"resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4376 reference_raster.xml:4440
+#: reference_raster.xml:4508 reference_raster.xml:4586
+#: reference_raster.xml:4742
+#, no-c-format
+msgid "Availability: 2.0.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4377
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 Parameter srid removed. Variants with a reference raster no "
+"longer applies the reference raster's SRID. Use ST_Transform() to reproject "
+"raster. Works on rasters with no SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4383
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_Width(orig) AS orig_width,\n"
+"        ST_Width(reduce_100) AS new_width\n"
+"FROM (\n"
+"        SELECT\n"
+"                rast AS orig,\n"
+"                ST_Resample(rast,100,100) AS reduce_100\n"
+"        FROM aerials.boston \n"
+"        WHERE ST_Intersects(rast,\n"
+"                ST_Transform(\n"
+"                        ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, "
+"4326),26986)\n"
+"        )\n"
+"        LIMIT 1\n"
+") AS foo;\n"
+"\n"
+" orig_width | new_width\n"
+"------------+-------------\n"
+"        200 |         100"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4388
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Resize\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4398
+#, no-c-format
+msgid "ST_Rescale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4399
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its scale (or pixel size). New pixel "
+"values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4404
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Rescale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Rescale</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4428
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its scale (or pixel size). New pixel "
+"values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4430
+#, no-c-format
+msgid ""
+"<varname>scalex</varname> and <varname>scaley</varname> define the new pixel "
+"size. scaley must often be negative to get well oriented raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4432
+#, no-c-format
+msgid ""
+"When the new scalex or scaley is not a divisor of the raster width or "
+"height, the extent of the resulting raster is expanded to encompass the "
+"extent of the provided raster. If you want to be sure to retain exact input "
+"extent see <xref linkend=\"RT_ST_Resize\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4438
+#, no-c-format
+msgid ""
+"ST_Rescale is different from <xref linkend=\"RT_ST_SetScale\"/> in that "
+"ST_SetScale do not resample the raster to match the raster extent. "
+"ST_SetScale only changes the metadata (or georeference) of the raster to "
+"correct an originally mis-specified scaling. ST_Rescale results in a raster "
+"having different width and height computed to fit the geographic extent of "
+"the input raster. ST_SetScale do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4441 reference_raster.xml:4509
+#: reference_raster.xml:4587
+#, no-c-format
+msgid "Changed: 2.1.0 Works on rasters with no SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4446
+#, no-c-format
+msgid ""
+"A simple example rescaling a raster from a pixel size of 0.001 degree to a "
+"pixel size of 0.0015 degree."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4448
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_PixelWidth(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0)) width\n"
+"\n"
+"   width\n"
+"----------\n"
+"0.001\n"
+"\n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_PixelWidth(ST_Rescale(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, "
+"0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015)) width\n"
+"\n"
+"   width\n"
+"----------\n"
+"0.0015"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4453
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_SetScale\"/>, "
+"<xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4466
+#, no-c-format
+msgid "ST_Reskew"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4467
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its skew (or rotation parameters). New "
+"pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4472
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reskew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>skewxy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reskew</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>skewy</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4496
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its skew (or rotation parameters). New "
+"pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4498
+#, no-c-format
+msgid ""
+"<varname>skewx</varname> and <varname>skewy</varname> define the new skew."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4500 reference_raster.xml:4578
+#, no-c-format
+msgid ""
+"The extent of the new raster will encompass the extent of the provided "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4502 reference_raster.xml:4580
+#, no-c-format
+msgid ""
+"A maxerror percent of 0.125 if no <varname>maxerr</varname> is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4506
+#, no-c-format
+msgid ""
+"ST_Reskew is different from <xref linkend=\"RT_ST_SetSkew\"/> in that "
+"ST_SetSkew do not resample the raster to match the raster extent. ST_SetSkew "
+"only changes the metadata (or georeference) of the raster to correct an "
+"originally mis-specified skew. ST_Reskew results in a raster having "
+"different width and height computed to fit the geographic extent of the "
+"input raster. ST_SetSkew do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4514
+#, no-c-format
+msgid ""
+"A simple example reskewing a raster from a skew of 0.0 to a skew of 0.0015."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4516
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_Rotation(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0))\n"
+"                                        \n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_Rotation(ST_Reskew(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, "
+"0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4522
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, "
+"<xref linkend=\"RT_ST_SetRotation\"/>, <xref linkend=\"RT_ST_SkewX\"/>, "
+"<xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4528
+#, no-c-format
+msgid "ST_SnapToGrid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4529
+#, no-c-format
+msgid ""
+"Resample a raster by snapping it to a grid. New pixel values are computed "
+"using the NearestNeighbor (english or american spelling), Bilinear, Cubic, "
+"CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4534
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex=DEFAULT 0</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>scaley=DEFAULT 0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4573
+#, no-c-format
+msgid ""
+"Resample a raster by snapping it to a grid defined by an arbitrary pixel "
+"corner (gridx & gridy) and optionally a pixel size (scalex & "
+"scaley). New pixel values are computed using the NearestNeighbor (english or "
+"american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling "
+"algorithm. The default is NearestNeighbor which is the fastest but results "
+"in the worst interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4575
+#, no-c-format
+msgid ""
+"<varname>gridx</varname> and <varname>gridy</varname> define any arbitrary "
+"pixel corner of the new grid. This is not necessarily the upper left corner "
+"of the new raster and it does not have to be inside or on the edge of the "
+"new raster extent."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4577
+#, no-c-format
+msgid ""
+"You can optionnal define the pixel size of the new grid with "
+"<varname>scalex</varname> and <varname>scaley</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4584
+#, no-c-format
+msgid ""
+"Use <xref linkend=\"RT_ST_Resample\"/> if you need more control over the "
+"grid parameters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4592
+#, no-c-format
+msgid "A simple example snapping a raster to a slightly different grid."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4594
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_UpperLeftX(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0))\n"
+"                                        \n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_UpperLeftX(ST_SnapToGrid(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, "
+"0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0002, 0.0002))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4600
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4606
+#, no-c-format
+msgid "ST_Resize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4607
+#, no-c-format
+msgid "Resize a raster to a new width/height"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4611
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resize</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>percentwidth</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>percentheight</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbor</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4645
+#, no-c-format
+msgid ""
+"Resize a raster to a new width/height. The new width/height can be specified "
+"in exact number of pixels or a percentage of the raster's width/height. The "
+"extent of the the new raster will be the same as the extent of the provided "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4649
+#, no-c-format
+msgid ""
+"New pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4653
+#, no-c-format
+msgid "Variant 1 expects the actual width/height of the output raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4657
+#, no-c-format
+msgid ""
+"Variant 2 expects decimal values between zero (0) and one (1) indicating the "
+"percentage of the input raster's width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4661
+#, no-c-format
+msgid ""
+"Variant 3 takes either the actual width/height of the output raster or a "
+"textual percentage (\"20%\") indicating the percentage of the input raster's "
+"width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4665
+#, no-c-format
+msgid "Availability: 2.1.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4669
+#, no-c-format
+msgid ""
+"WITH foo AS(\n"
+"SELECT\n"
+"        1 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , '50%', '500') AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 500, 100) AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 0.25, 0.9) AS rast\n"
+"), bar AS (\n"
+"        SELECT rid, ST_Metadata(rast) AS meta, rast FROM foo\n"
+")\n"
+"SELECT rid, (meta).* FROM bar\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands \n"
+"-----+------------+------------+-------+--------+--------+--------+-------"
+"+-------+------+----------\n"
+"   1 |          0 |          0 |   500 |    500 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   2 |          0 |          0 |   500 |    100 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   3 |          0 |          0 |   250 |    900 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4674
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_Reskew\"/>, <xref "
+"linkend=\"RT_ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4685
+#, no-c-format
+msgid "ST_Transform"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4686
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified resampling algorithm. Options are "
+"NearestNeighbor, Bilinear, Cubic, CubicSpline, Lanczos defaulting to "
+"NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4690
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Transform</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>algorithm=NearestNeighbor</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>alignto</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4724
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified pixel warping algorithm. Uses "
+"'NearestNeighbor' if no algorithm is specified and maxerror percent of 0.125 "
+"if no maxerr is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4728
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a raster (and resamples the pixel values) from "
+"one spatial reference system to another, while ST_SetSRID() simply changes "
+"the SRID identifier of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4732
+#, no-c-format
+msgid ""
+"Unlike the other variants, Variant 3 requires a reference raster as "
+"<varname>alignto</varname>. The transformed raster will be transformed to "
+"the spatial reference system (SRID) of the reference raster and be aligned "
+"(ST_SameAlignment = TRUE) to the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4737
+#, no-c-format
+msgid ""
+"If you find your transformation support is not working right, you may need "
+"to set the environment variable PROJSO to the .so or .dll projection library "
+"your PostGIS is using. This just needs to have the name of the file. So for "
+"example on windows, you would in Control Panel -> System -> Environment "
+"Variables add a system variable called <varname>PROJSO</varname> and set it "
+"to <varname>libproj.dll</varname> (if you are using proj 4.6.1). You'll have "
+"to restart your PostgreSQL service/daemon after this change."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4743
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of ST_Transform(rast, alignto) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4749
+#, no-c-format
+msgid ""
+"SELECT ST_Width(mass_stm) As w_before, ST_Width(wgs_84) As w_after,\n"
+"  ST_Height(mass_stm) As h_before, ST_Height(wgs_84) As h_after\n"
+"        FROM \n"
+"        ( SELECT rast As mass_stm, ST_Transform(rast,4326) As wgs_84\n"
+"  ,  ST_Transform(rast,4326, 'Bilinear') AS wgs_84_bilin\n"
+"                FROM aerials.o_2_boston \n"
+"                        WHERE ST_Intersects(rast,\n"
+"                                ST_Transform(ST_MakeEnvelope(-71.128, "
+"42.2392,-71.1277, 42.2397, 4326),26986) )\n"
+"                LIMIT 1) As foo;\n"
+"                                                \n"
+" w_before | w_after | h_before | h_after\n"
+"----------+---------+----------+---------\n"
+"      200 |     228 |      200 |     170"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4759
+#, no-c-format
+msgid "original mass state plane meters (mass_stm)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4768
+#, no-c-format
+msgid "After transform to wgs 84 long lat (wgs_84)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4777
+#, no-c-format
+msgid ""
+"After transform to wgs 84 long lat with bilinear algorithm instead of NN "
+"default (wgs_84_bilin)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4790
+#, no-c-format
+msgid ""
+"The following shows the difference between using ST_Transform(raster, srid) "
+"and ST_Transform(raster, alignto)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, "
+"600000, 100, -100, 0, 0, 2163), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 300, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                ST_Transform(rast, 4269) AS alignto\n"
+"        FROM foo\n"
+"        LIMIT 1\n"
+"), baz AS (\n"
+"        SELECT\n"
+"                rid,\n"
+"                rast,\n"
+"                ST_Transform(rast, 4269) AS not_aligned,\n"
+"                ST_Transform(rast, alignto) AS aligned\n"
+"        FROM foo\n"
+"        CROSS JOIN bar\n"
+")\n"
+"SELECT\n"
+"        ST_SameAlignment(rast) AS rast,\n"
+"        ST_SameAlignment(not_aligned) AS not_aligned,\n"
+"        ST_SameAlignment(aligned) AS aligned\n"
+"FROM baz\n"
+"\n"
+" rast | not_aligned | aligned \n"
+"------+-------------+---------\n"
+" t    | f           | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4796
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetSRID\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4802
+#, no-c-format
+msgid "Raster Band Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4806
+#, no-c-format
+msgid "ST_SetBandNoDataValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4807
+#, no-c-format
+msgid ""
+"Sets the value for the given band that represents no data. Band 1 is assumed "
+"if no band is specified. To mark a band as having no nodata value, set the "
+"nodata value = NULL."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4811
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetBandNoDataValue</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodatavalue</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetBandNoDataValue</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>nodatavalue</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>forcechecking=false</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4832
+#, no-c-format
+msgid ""
+"Sets the value that represents no data for the band. Band 1 is assumed if "
+"not specified. This will affect results from <xref linkend=\"RT_ST_Polygon\"/"
+">, <xref linkend=\"RT_ST_DumpAsPolygons\"/>, and the ST_PixelAs...() "
+"functions."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4838
+#, no-c-format
+msgid ""
+"-- change just first band no data value\n"
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetBandNoDataValue(rast,1, 254)  \n"
+"WHERE rid = 2;\n"
+"\n"
+"-- change no data band value of bands 1,2,3\n"
+"UPDATE dummy_rast \n"
+"        SET rast = \n"
+"                ST_SetBandNoDataValue(\n"
+"                        ST_SetBandNoDataValue(\n"
+"                                ST_SetBandNoDataValue(\n"
+"                                        rast,1, 254)\n"
+"                                ,2,99),\n"
+"                                3,108)  \n"
+"                WHERE rid = 2;\n"
+"                \n"
+"-- wipe out the nodata value this will ensure all pixels are considered for "
+"all processing functions\n"
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetBandNoDataValue(rast,1, NULL)  \n"
+"WHERE rid = 2;"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4850
+#, no-c-format
+msgid "ST_SetBandIsNoData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4851
+#, no-c-format
+msgid "Sets the isnodata flag of the band to TRUE."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4856
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetBandIsNoData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4867
+#, no-c-format
+msgid ""
+"Sets the isnodata flag for the band to true. Band 1 is assumed if not "
+"specified. This function should be called only when the flag is considered "
+"dirty. That is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/"
+"> is different using TRUE as last argument and without using it"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4879
+#, no-c-format
+msgid ""
+"-- Create dummy table with one raster column\n"
+"create table dummy_rast (rid integer, rast raster);\n"
+"\n"
+"-- Add raster with two bands, one pixel/band. In the first band, nodatavalue "
+"= pixel value = 3.\n"
+"-- In the second band, nodatavalue = 13, pixel value = 4\n"
+"insert into dummy_rast values(1,\n"
+"(\n"
+"'01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0200' -- nBands (uint16 0)\n"
+"||\n"
+"'17263529ED684A3F' -- scaleX (float64 0.000805965234044584)\n"
+"||\n"
+"'F9253529ED684ABF' -- scaleY (float64 -0.00080596523404458)\n"
+"||\n"
+"'1C9F33CE69E352C0' -- ipX (float64 -75.5533328537098)\n"
+"||\n"
+"'718F0E9A27A44840' -- ipY (float64 49.2824585505576)\n"
+"||\n"
+"'ED50EB853EC32B3F' -- skewX (float64 0.000211812383858707)\n"
+"||\n"
+"'7550EB853EC32B3F' -- skewY (float64 0.000211812383858704)\n"
+"||\n"
+"'E6100000' -- SRID (int32 4326)\n"
+"||\n"
+"'0100' -- width (uint16 1)\n"
+"||\n"
+"'0100' -- height (uint16 1)\n"
+"||\n"
+"'4' -- hasnodatavalue set to true, isnodata value set to false (when it "
+"should be true)\n"
+"||\n"
+"'2' -- first band type (4BUI) \n"
+"||\n"
+"'03' -- novalue==3\n"
+"||\n"
+"'03' -- pixel(0,0)==3 (same that nodata)\n"
+"||\n"
+"'0' -- hasnodatavalue set to false\n"
+"||\n"
+"'5' -- second band type (16BSI)\n"
+"||\n"
+"'0D00' -- novalue==13\n"
+"||\n"
+"'0400' -- pixel(0,0)==4\n"
+")::raster\n"
+");\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"false\n"
+"select st_bandisnodata(rast, 1, TRUE) from dummy_rast where rid = 1; -- "
+"Expected true\n"
+"\n"
+"-- The isnodata flag is dirty. We are going to set it to true\n"
+"update dummy_rast set rast = st_setbandisnodata(rast, 1) where rid = 1;\n"
+"\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"true"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4885
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_BandIsNoData\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4894
+#, no-c-format
+msgid "Raster Band Statistics and Analytics"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4898
+#, no-c-format
+msgid "ST_Count"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4899
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a raster or raster coverage. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the nodata value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4903
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4934
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a raster or raster coverage. "
+"If no band is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4935
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>nodata</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4939
+#, no-c-format
+msgid ""
+"The ST_Count(rastertable, rastercolumn, ...) variants are deprecated as of "
+"2.2.0. Use <xref linkend=\"RT_ST_CountAgg\"/> instead."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4949
+#, no-c-format
+msgid ""
+"--example will count all pixels not 249 and one will count all pixels.  --\n"
+"SELECT rid, ST_Count(ST_SetBandNoDataValue(rast,249)) As exclude_nodata, \n"
+"        ST_Count(ST_SetBandNoDataValue(rast,249),false) As include_nodata\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"                                    \n"
+"rid | exclude_nodata | include_nodata\n"
+"-----+----------------+----------------\n"
+"   2 |             23 |             25"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4954 reference_raster.xml:5015
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4964
+#, no-c-format
+msgid "ST_CountAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4965
+#, no-c-format
+msgid ""
+"Aggregate. Returns the number of pixels in a given band of a set of rasters. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the NODATA value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4971
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>double precision </type> "
+"<parameter>sample_percent</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_CountAgg</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4999
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a set of rasters. If no band "
+"is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5000
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>NODATA</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5003
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between zero (0) and one (1)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5010
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        ST_CountAgg(rast, 1, TRUE)\n"
+"FROM foo;\n"
+"\n"
+" st_countagg \n"
+"-------------\n"
+"          20\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5025
+#, no-c-format
+msgid "ST_Histogram"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5026
+#, no-c-format
+msgid ""
+"Returns a set of record summarizing a raster or raster coverage data "
+"distribution separate bin ranges. Number of bins are autocomputed if not "
+"specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5030
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>integer </type> <parameter>bins=autocomputed</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bins</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>right</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>right</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>bins</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>right</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_Histogram</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bins</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>right</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>bins=autocomputed</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>width=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>right=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5112
+#, no-c-format
+msgid ""
+"Returns set of records consisting of min, max, count, percent for a given "
+"raster band for each bin. If no band is specified <varname>nband</varname> "
+"defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5113
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>nodata</"
+"varname> value . Set <varname>exclude_nodata_value</varname> to false to get "
+"count all pixels."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5117
+#, no-c-format
+msgid "<parameter>width </parameter><type>double precision[]</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5118
+#, no-c-format
+msgid ""
+"width: an array indicating the width of each category/bin. If the number of "
+"bins is greater than the number of widths, the widths are repeated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5119
+#, no-c-format
+msgid ""
+"Example: 9 bins, widths are [a, b, c] will have the output be [a, b, c, a, "
+"b, c, a, b, c]"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5122
+#, no-c-format
+msgid "<parameter>bins </parameter><type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5123
+#, no-c-format
+msgid ""
+"Number of breakouts -- this is the number of records you'll get back from "
+"the function if specified. If not specified then the number of breakouts is "
+"autocomputed."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5127
+#, no-c-format
+msgid "<parameter>right </parameter><type>boolean</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5128
+#, no-c-format
+msgid ""
+"compute the histogram from the right rather than from the left (default). "
+"This changes the criteria for evaluating a value x from [a, b) to (a, b]"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5135
+#, no-c-format
+msgid ""
+"Example: Single raster tile - compute histograms for bands 1, 2, 3 and "
+"autocompute bins"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5136
+#, no-c-format
+msgid ""
+"SELECT band, (stats).*\n"
+"FROM (SELECT rid, band, ST_Histogram(rast, band) As stats\n"
+"    FROM dummy_rast CROSS JOIN generate_series(1,3) As band\n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+" band |  min  |  max  | count | percent\n"
+"------+-------+-------+-------+---------\n"
+"    1 |   249 |   250 |     2 |    0.08\n"
+"    1 |   250 |   251 |     2 |    0.08\n"
+"    1 |   251 |   252 |     1 |    0.04\n"
+"    1 |   252 |   253 |     2 |    0.08\n"
+"    1 |   253 |   254 |    18 |    0.72\n"
+"    2 |    78 | 113.2 |    11 |    0.44\n"
+"    2 | 113.2 | 148.4 |     4 |    0.16\n"
+"    2 | 148.4 | 183.6 |     4 |    0.16\n"
+"    2 | 183.6 | 218.8 |     1 |    0.04\n"
+"    2 | 218.8 |   254 |     5 |     0.2\n"
+"    3 |    62 | 100.4 |    11 |    0.44\n"
+"    3 | 100.4 | 138.8 |     5 |     0.2\n"
+"    3 | 138.8 | 177.2 |     4 |    0.16\n"
+"    3 | 177.2 | 215.6 |     1 |    0.04\n"
+"    3 | 215.6 |   254 |     4 |    0.16"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5140
+#, no-c-format
+msgid "Example: Just band 2 but for 6 bins"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5141
+#, no-c-format
+msgid ""
+"SELECT (stats).*\n"
+"FROM (SELECT rid, ST_Histogram(rast, 2,6) As stats\n"
+"    FROM dummy_rast \n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+"    min     |    max     | count | percent\n"
+"------------+------------+-------+---------\n"
+"         78 | 107.333333 |     9 |    0.36\n"
+" 107.333333 | 136.666667 |     6 |    0.24\n"
+" 136.666667 |        166 |     0 |       0\n"
+"        166 | 195.333333 |     4 |    0.16\n"
+" 195.333333 | 224.666667 |     1 |    0.04\n"
+" 224.666667 |        254 |     5 |     0.2\n"
+"(6 rows)\n"
+"    \n"
+"-- Same as previous but we explicitly control the pixel value range of each "
+"bin.  \n"
+"SELECT (stats).*\n"
+"FROM (SELECT rid, ST_Histogram(rast, 2,6,ARRAY[0.5,1,4,100,5]) As stats\n"
+"    FROM dummy_rast \n"
+"     WHERE rid=2) As foo;\n"
+"     \n"
+"  min  |  max  | count | percent\n"
+"-------+-------+-------+----------\n"
+"    78 |  78.5 |     1 |     0.08\n"
+"  78.5 |  79.5 |     1 |     0.04\n"
+"  79.5 |  83.5 |     0 |        0\n"
+"  83.5 | 183.5 |    17 |   0.0068\n"
+" 183.5 | 188.5 |     0 |        0\n"
+" 188.5 |   254 |     6 | 0.003664\n"
+"(6 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5146
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5156
+#, no-c-format
+msgid "ST_Quantile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5157
+#, no-c-format
+msgid ""
+"<refpurpose>Compute quantiles for a raster or raster table coverage in the "
+"context of the sample or population. Thus, a value could be examined to be "
+"at the raster's 25%, 50%, 75% percentile.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5161
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>quantiles=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>quantiles</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Quantile</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>quantile</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>quantile=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>quantile</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>quantile</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>double precision <function>ST_Quantile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>quantile</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>quantiles=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5233
+#, no-c-format
+msgid ""
+"<para>Compute quantiles for a raster or raster table coverage in the context "
+"of the sample or population. Thus, a value could be examined to be at the "
+"raster's 25%, 50%, 75% percentile.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5234 reference_raster.xml:5526
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to false, will also count "
+"pixels with no data."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5241
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
+"--Example will consider only pixels of band 1 that are not 249 and in named "
+"quantiles --\n"
+"\n"
+"SELECT (pvq).*\n"
+"FROM (SELECT ST_Quantile(rast, ARRAY[0.25,0.75]) As pvq\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvq).quantile;\n"
+"                                                                \n"
+" quantile | value\n"
+"----------+-------\n"
+"     0.25 |   253\n"
+"     0.75 |   254\n"
+"   \n"
+"SELECT ST_Quantile(rast, 0.75) As value\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"value\n"
+"------\n"
+"  254"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5242
+#, no-c-format
+msgid ""
+"--real live example.  Quantile of all pixels in band 2 intersecting a "
+"geometry\n"
+"SELECT rid, (ST_Quantile(rast,2)).* As pvc\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"            )\n"
+"ORDER BY value, quantile,rid\n"
+";\n"
+"                                \n"
+"    \n"
+" rid | quantile | value\n"
+"-----+----------+-------\n"
+"   1 |        0 |     0\n"
+"   2 |        0 |     0\n"
+"  14 |        0 |     1\n"
+"  15 |        0 |     2\n"
+"  14 |     0.25 |    37\n"
+"   1 |     0.25 |    42\n"
+"  15 |     0.25 |    47\n"
+"   2 |     0.25 |    50\n"
+"  14 |      0.5 |    56\n"
+"   1 |      0.5 |    64\n"
+"  15 |      0.5 |    66\n"
+"   2 |      0.5 |    77\n"
+"  14 |     0.75 |    81\n"
+"  15 |     0.75 |    87\n"
+"   1 |     0.75 |    94\n"
+"   2 |     0.75 |   106\n"
+"  14 |        1 |   199\n"
+"   1 |        1 |   244\n"
+"   2 |        1 |   255\n"
+"  15 |        1 |   255"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5247
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5258
+#, no-c-format
+msgid "ST_SummaryStats"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5259
+#, no-c-format
+msgid ""
+"Returns summarystats consisting of count, sum, mean, stddev, min, max for a "
+"given raster band of a raster or raster coverage. Band 1 is assumed is no "
+"band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5263
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5299 reference_raster.xml:5378
+#, no-c-format
+msgid ""
+"Returns <xref linkend=\"summarystats\"/> consisting of count, sum, mean, "
+"stddev, min, max for a given raster band of a raster or raster coverage. If "
+"no band is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5301
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>nodata</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to false to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5303
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to lower than 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5308
+#, no-c-format
+msgid ""
+"The ST_SummaryStats(rastertable, rastercolumn, ...) variants are deprecated "
+"as of 2.2.0. Use <xref linkend=\"RT_ST_SummaryStatsAgg\"/> instead."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5316
+#, no-c-format
+msgid "Example: Single raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5317
+#, no-c-format
+msgid ""
+"SELECT rid, band, (stats).*\n"
+"FROM (SELECT rid, band, ST_SummaryStats(rast, band) As stats\n"
+"    FROM dummy_rast CROSS JOIN generate_series(1,3) As band\n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+" rid | band | count | sum  |    mean    |  stddev   | min | max\n"
+"-----+------+-------+------+------------+-----------+-----+-----\n"
+"   2 |    1 |    23 | 5821 | 253.086957 |  1.248061 | 250 | 254\n"
+"   2 |    2 |    25 | 3682 |     147.28 | 59.862188 |  78 | 254\n"
+"   2 |    3 |    25 | 3290 |      131.6 | 61.647384 |  62 | 254"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5321
+#, no-c-format
+msgid "Example: Summarize pixels that intersect buildings of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5322
+#, no-c-format
+msgid ""
+"This example took 574ms on PostGIS windows 64-bit with all of Boston "
+"Buildings and aerial Tiles (tiles each 150x150 pixels ~ 134,000 tiles), "
+"~102,000 building records"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5324
+#, no-c-format
+msgid ""
+"WITH \n"
+"-- our features of interest\n"
+"   feat AS (SELECT gid As building_id, geom_26986 As geom FROM buildings AS "
+"b \n"
+"    WHERE gid IN(100, 103,150)\n"
+"   ),\n"
+"-- clip band 2 of raster tiles to boundaries of builds\n"
+"-- then get stats for these clipped regions\n"
+"   b_stats AS\n"
+"        (SELECT  building_id, (stats).*\n"
+"FROM (SELECT building_id, ST_SummaryStats(ST_Clip(rast,2,geom)) As stats\n"
+"    FROM aerials.boston\n"
+"                INNER JOIN feat\n"
+"        ON ST_Intersects(feat.geom,rast) \n"
+" ) As foo\n"
+" )\n"
+"-- finally summarize stats\n"
+"SELECT building_id, SUM(count) As num_pixels\n"
+"  , MIN(min) As min_pval\n"
+"  ,  MAX(max) As max_pval\n"
+"  , SUM(mean*count)/SUM(count) As avg_pval\n"
+"        FROM b_stats\n"
+" WHERE count > 0\n"
+"        GROUP BY building_id\n"
+"        ORDER BY building_id;\n"
+" building_id | num_pixels | min_pval | max_pval |     avg_pval\n"
+"-------------+------------+----------+----------+------------------\n"
+"         100 |       1090 |        1 |      255 | 61.0697247706422\n"
+"         103 |        655 |        7 |      182 | 70.5038167938931\n"
+"         150 |        895 |        2 |      252 | 185.642458100559"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5328
+#, no-c-format
+msgid "Example: Raster coverage"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5329
+#, no-c-format
+msgid ""
+"-- stats for each band --\n"
+"SELECT band, (stats).*\n"
+"FROM (SELECT band, ST_SummaryStats('o_4_boston','rast', band) As stats\n"
+"    FROM generate_series(1,3) As band) As foo;\n"
+"                                    \n"
+" band |  count  |  sum   |       mean       |      stddev      | min | max\n"
+"------+---------+--------+------------------+------------------+-----+-----\n"
+"    1 | 8450000 | 725799 | 82.7064349112426 | 45.6800222638537 |   0 | 255\n"
+"    2 | 8450000 | 700487 | 81.4197705325444 | 44.2161184161765 |   0 | 255\n"
+"    3 | 8450000 | 575943 |  74.682739408284 | 44.2143885481407 |   0 | 255\n"
+"    \n"
+"-- For a table -- will get better speed if set sampling to less than 100%\n"
+"-- Here we set to 25% and get a much faster answer\n"
+"SELECT band, (stats).*\n"
+"FROM (SELECT band, ST_SummaryStats('o_4_boston','rast', band,true,0.25) As "
+"stats\n"
+"    FROM generate_series(1,3) As band) As foo;\n"
+"                                    \n"
+" band |  count  |  sum   |       mean       |      stddev      | min | max\n"
+"------+---------+--------+------------------+------------------+-----+-----\n"
+"    1 | 2112500 | 180686 | 82.6890480473373 | 45.6961043857248 |   0 | 255\n"
+"    2 | 2112500 | 174571 |  81.448503668639 | 44.2252623171821 |   0 | 255\n"
+"    3 | 2112500 | 144364 | 74.6765884023669 | 44.2014869384578 |   0 | 255"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5334
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_Count\"/"
+">, <xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5345
+#, no-c-format
+msgid "ST_SummaryStatsAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5346
+#, no-c-format
+msgid ""
+"Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, "
+"max for a given raster band of a set of raster. Band 1 is assumed is no band "
+"is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5350
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStatsAgg</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5380
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>NODATA</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to False to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5382
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between 0 and 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5389
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        (stats).count,\n"
+"        round((stats).sum::numeric, 3),\n"
+"        round((stats).mean::numeric, 3),\n"
+"        round((stats).stddev::numeric, 3),\n"
+"        round((stats).min::numeric, 3),\n"
+"        round((stats).max::numeric, 3)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats\n"
+"        FROM foo\n"
+") bar;\n"
+"\n"
+" count |  round  | round  | round |  round  | round \n"
+"-------+---------+--------+-------+---------+-------\n"
+"    20 | -68.584 | -3.429 | 6.571 | -10.000 | 3.142\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5394
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_Count\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5405
+#, no-c-format
+msgid "ST_ValueCount"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5406
+#, no-c-format
+msgid ""
+"Returns a set of records containing a pixel band value and count of the "
+"number of pixels in a given band of a raster (or a raster coverage) that "
+"have a given set of values. If no band is specified defaults to band 1. By "
+"default nodata value pixels are not counted. and all other values in the "
+"pixel are output and pixel band values are rounded to the nearest integer."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5411
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>searchvalue</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>searchvalues</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>roundto=0</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>OUT value</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>OUT count</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>searchvalues</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>bigint<function>ST_ValueCount</"
+"function></funcdef> <paramdef><type>text </type> <parameter>rastertable</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>rastercolumn</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5524
+#, no-c-format
+msgid ""
+"Returns a set of records with columns <varname>value</varname> "
+"<varname>count</varname> which contain the pixel band value and count of "
+"pixels in the raster tile or raster coverage of selected band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5525
+#, no-c-format
+msgid ""
+"If no band is specified <varname>nband</varname> defaults to 1. If no "
+"<varname>searchvalues</varname> are specified, will return all pixel values "
+"found in the raster or raster coverage. If one searchvalue is given, will "
+"return an integer instead of records denoting the count of pixels having "
+"that pixel band value"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5533
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
+"--Example will count only pixels of band 1 that are not 249. --\n"
+"\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+"                                                                \n"
+" value | count\n"
+"-------+-------\n"
+"   250 |     2\n"
+"   251 |     1\n"
+"   252 |     2\n"
+"   253 |     6\n"
+"   254 |    12\n"
+"   \n"
+"-- Example will coount all pixels of band 1 including 249 --\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast,1,false) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+"                                    \n"
+" value | count\n"
+"-------+-------\n"
+"   249 |     2\n"
+"   250 |     2\n"
+"   251 |     1\n"
+"   252 |     2\n"
+"   253 |     6\n"
+"   254 |    12\n"
+"   \n"
+"-- Example will count only non-nodata value pixels of band 2\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast,2) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+" value | count\n"
+"-------+-------\n"
+"    78 |     1\n"
+"    79 |     1\n"
+"    88 |     1\n"
+"    89 |     1\n"
+"    96 |     1\n"
+"    97 |     1\n"
+"    98 |     1\n"
+"    99 |     2\n"
+"   112 |     2\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5534
+#, no-c-format
+msgid ""
+"--real live example.  Count all the pixels in an aerial raster tile band 2 "
+"intersecting a geometry \n"
+"-- and return only the pixel band values that have a count > 500\n"
+"SELECT (pvc).value, SUM((pvc).count) As total\n"
+"FROM (SELECT ST_ValueCount(rast,2) As pvc\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"             ) \n"
+"        ) As foo\n"
+"    GROUP BY (pvc).value\n"
+"    HAVING SUM((pvc).count) > 500\n"
+"    ORDER BY (pvc).value;\n"
+"    \n"
+" value | total\n"
+"-------+-----\n"
+"    51 | 502\n"
+"    54 | 521"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5536
+#, no-c-format
+msgid ""
+"-- Just return count of pixels in each raster tile that have value of 100 of "
+"tiles that intersect  a specific geometry --\n"
+"SELECT rid, ST_ValueCount(rast,2,100) As count\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"             ) ;\n"
+"\n"
+" rid | count\n"
+"-----+-------\n"
+"   1 |    56\n"
+"   2 |    95\n"
+"  14 |    37\n"
+"  15 |    64"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5541
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5547
+#, no-c-format
+msgid "Raster Outputs"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5550
+#, no-c-format
+msgid "ST_AsBinary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5551
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the raster without SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:5556
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>outasin=FALSE</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5567
+#, no-c-format
+msgid ""
+"Returns the Binary representation of the raster. If <varname>outasin</"
+"varname> is TRUE, out-db bands are treated as in-db."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5571
+#, no-c-format
+msgid ""
+"This is useful in binary cursors to pull data out of the database without "
+"converting it to a string representation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5576
+#, no-c-format
+msgid ""
+"By default, WKB output contains the external file path for out-db bands. If "
+"the client does not have access to the raster file underlying an out-db "
+"band, set <varname>outasin</varname> to TRUE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5580
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of <varname>outasin</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5586
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(rast) As rastbin FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                                         rastbin\n"
+"---------------------------------------------------------------------------------\n"
+"\\001\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000@"
+"\\000\\000\\000\\000\\000\\000\\010@\\\n"
+"000\\000\\000\\000\\000\\000\\340?\\000\\000\\000\\000\\000\\000\\340?"
+"\\000\\000\\000\\000\\000\\00\n"
+"0\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\012\\000\\000\\000\\012\\000\\024\\000"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5593
+#, no-c-format
+msgid "ST_AsGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5594
+#, no-c-format
+msgid ""
+"Return the raster tile in the designated GDAL Raster format. Raster formats "
+"are one of those supported by your compiled library. Use ST_GDALRasters() to "
+"get a list of formats supported by your library."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:5599
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5613
+#, no-c-format
+msgid ""
+"Returns the raster tile in the designated format. Arguments are itemized "
+"below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5616
+#, no-c-format
+msgid ""
+"<varname>format</varname> format to output. This is dependent on the drivers "
+"compiled in your libgdal library. Generally available are 'JPEG', 'GTIff', "
+"'PNG'. Use <xref linkend=\"RT_ST_GDALDrivers\"/> to get a list of formats "
+"supported by your library."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5621
+#, no-c-format
+msgid ""
+"<varname>options</varname> text array of GDAL options. Valid options are "
+"dependent on the format. Refer to <ulink url=\"http://www.gdal.org/"
+"frmt_various.html\">GDAL Raster format options</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5626
+#, no-c-format
+msgid ""
+"<varname>srs</varname> The proj4text or srtext (from spatial_ref_sys) to "
+"embed in the image"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5635
+#, no-c-format
+msgid "JPEG Output Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5637
+#, no-c-format
+msgid ""
+"SELECT ST_AsGDALRaster(rast, 'JPEG') As rastjpg\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY['QUALITY=50']) As rastjpg\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5642
+#, no-c-format
+msgid "GTIFF Output Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5644
+#, no-c-format
+msgid ""
+"SELECT ST_AsGDALRaster(rast, 'GTiff') As rastjpg\n"
+"FROM dummy_rast WHERE rid=2;\n"
+"\n"
+"-- Out GeoTiff with jpeg compression, 90% quality\n"
+"SELECT ST_AsGDALRaster(rast, 'GTiff',  \n"
+"  ARRAY['COMPRESS=JPEG', 'JPEG_QUALITY=90'], \n"
+"  4269) As rasttiff\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5651
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5657
+#, no-c-format
+msgid "ST_AsJPEG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5658
+#, no-c-format
+msgid ""
+"Return the raster tile selected bands as a single Joint Photographic Exports "
+"Group (JPEG) image (byte array). If no band is specified and 1 or more than "
+"3 bands, then only the first band is used. If only 3 bands then all 3 bands "
+"are used and mapped to RGB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5662
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>quality</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsJPEG</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer[] </type> <parameter>nbands</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>quality</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5698
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Joint Photographic "
+"Exports Group Image (JPEG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if "
+"you need to export as less common raster types. If no band is specified and "
+"1 or more than 3 bands, then only the first band is used. If 3 bands then "
+"all 3 bands are used. There are many variants of the function with many "
+"options. These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5701 reference_raster.xml:5792
+#, no-c-format
+msgid "<varname>nband</varname> is for single band exports."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5706
+#, no-c-format
+msgid ""
+"<varname>nbands</varname> is an array of bands to export (note that max is 3 "
+"for JPEG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band "
+"3 to Red, band 2 to green and band 1 to blue"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5711
+#, no-c-format
+msgid ""
+"<varname>quality</varname> number from 0 to 100. The higher the number the "
+"crisper the image."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5716
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL options as defined for JPEG "
+"(look at create_options for JPEG <xref linkend=\"RT_ST_GDALDrivers\"/>). For "
+"JPEG valid ones are <varname>PROGRESSIVE</varname> ON or OFF and "
+"<varname>QUALITY</varname> a range from 0 to 100 and default to 75. Refer to "
+"<ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL Raster format "
+"options</ulink> for more details."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5733
+#, no-c-format
+msgid "Examples: Output"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5735
+#, no-c-format
+msgid ""
+"-- output first 3 bands 75% quality\n"
+"SELECT ST_AsJPEG(rast) As rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"-- output only first band as 90% quality\n"
+"SELECT ST_AsJPEG(rast,1,90) As rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"-- output first 3 bands (but make band 2 Red, band 1 green, and band 3 blue, "
+"progressive and 90% quality\n"
+"SELECT ST_AsJPEG(rast,ARRAY[2,1,3],ARRAY['QUALITY=90','PROGRESSIVE=ON']) As "
+"rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5742
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_AsGDALRaster"
+"\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5748
+#, no-c-format
+msgid "ST_AsPNG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5749
+#, no-c-format
+msgid ""
+"Return the raster tile selected bands as a single portable network graphics "
+"(PNG) image (byte array). If 1, 3, or 4 bands in raster and no bands are "
+"specified, then all bands are used. If more 2 or more than 4 bands and no "
+"bands specified, then only band 1 is used. Bands are mapped to RGB or RGBA "
+"space."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5753
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5789
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Portable Network "
+"Graphics Image (PNG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if you need "
+"to export as less common raster types. If no band is specified, then the "
+"first 3 bands are exported. There are many variants of the function with "
+"many options. If no <varname>srid</varname> is specified then then srid of "
+"the raster is used. These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5797 reference_raster.xml:5880
+#, no-c-format
+msgid ""
+"<varname>nbands</varname> is an array of bands to export (note that max is 3 "
+"for PNG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band "
+"3 to Red, band 2 to green and band 1 to blue"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5802
+#, no-c-format
+msgid ""
+"<varname>compression</varname> number from 1 to 9. The higher the number the "
+"greater the compression."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5807
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL options as defined for PNG "
+"(look at create_options for PNG of <xref linkend=\"RT_ST_GDALDrivers\"/>). "
+"For PNG valid one is only ZLEVEL (amount of time to spend on compression -- "
+"default 6) e.g. ARRAY['ZLEVEL=9']. WORLDFILE is not allowed since the "
+"function would have to output two outputs. Refer to <ulink url=\"http://www."
+"gdal.org/frmt_various.html\">GDAL Raster format options</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5826
+#, no-c-format
+msgid ""
+"SELECT ST_AsPNG(rast) As rastpng\n"
+"FROM dummy_rast WHERE rid=2;\n"
+"\n"
+"-- export the first 3 bands and map band 3 to Red, band 1 to Green, band 2 "
+"to blue\n"
+"SELECT ST_AsPNG(rast, ARRAY[3,1,2]) As rastpng\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5833
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ColorMap\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_Raster_Applications\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5839
+#, no-c-format
+msgid "ST_AsTIFF"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5840
+#, no-c-format
+msgid ""
+"Return the raster selected bands as a single TIFF image (byte array). If no "
+"band is specified, then will try to use all bands."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5844
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=''</"
+"parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid=sameassource</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5877
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Tagged Image File "
+"Format (TIFF). If no band is specified, will try to use all bands. This is a "
+"wrapper around <xref linkend=\"RT_ST_AsGDALRaster\"/>. Use <xref linkend="
+"\"RT_ST_AsGDALRaster\"/> if you need to export as less common raster types. "
+"There are many variants of the function with many options. If no spatial "
+"reference SRS text is present, the spatial reference of the raster is used. "
+"These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5885
+#, no-c-format
+msgid ""
+"<varname>compression</varname> Compression expression -- JPEG90 (or some "
+"other percent), LZW, JPEG, DEFLATE9."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5890
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL create options as defined for "
+"GTiff (look at create_options for GTiff of <xref linkend=\"RT_ST_GDALDrivers"
+"\"/>). or refer to <ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL "
+"Raster format options</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5895
+#, no-c-format
+msgid ""
+"<varname>srid</varname> srid of spatial_ref_sys of the raster. This is used "
+"to populate the georeference information"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5904
+#, no-c-format
+msgid "Examples: Use jpeg compression 90%"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5906
+#, no-c-format
+msgid ""
+"SELECT ST_AsTIFF(rast, 'JPEG90') As rasttiff\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5913
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5919
+#, no-c-format
+msgid "Raster Processing"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5922
+#, no-c-format
+msgid "Map Algebra"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5926
+#, no-c-format
+msgid "ST_Clip"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5927
+#, no-c-format
+msgid ""
+"Returns the raster clipped by the input geometry. If band number not is "
+"specified, all bands are processed. If <varname>crop</varname> is not "
+"specified or TRUE, the output raster is cropped."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5931
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5988
+#, no-c-format
+msgid ""
+"Returns a raster that is clipped by the input geometry <varname>geom</"
+"varname>. If band index is not specified, all bands are processed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5992
+#, no-c-format
+msgid ""
+"Rasters resulting from ST_Clip must have a nodata value assigned for areas "
+"clipped, one for each band. If none are provided and the input raster do not "
+"have a nodata value defined, nodata values of the resulting raster are set "
+"to ST_MinPossibleValue(ST_BandPixelType(rast, band)). When the number of "
+"nodata value in the array is smaller than the number of band, the last one "
+"in the array is used for the remaining bands. If the number of nodata value "
+"is greater than the number of band, the extra nodata values are ignored. All "
+"variants accepting an array of nodata values also accept a single value "
+"which will be assigned to each band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5996
+#, no-c-format
+msgid ""
+"If <varname>crop</varname> is not specified, true is assumed meaning the "
+"output raster is cropped to the intersection of the <varname>geom</"
+"varname>and <varname>rast</varname> extents. If <varname>crop</varname> is "
+"set to false, the new raster gets the same extent as <varname>rast</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6002
+#, no-c-format
+msgid "Enhanced: 2.1.0 Rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6004
+#, no-c-format
+msgid ""
+"Examples here use Massachusetts aerial data available on MassGIS site <ulink "
+"url=\"http://www.mass.gov/mgis/colororthos2008.htm\">MassGIS Aerial Orthos</"
+"ulink>. Coordinates are in Massachusetts State Plane Meters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6010
+#, no-c-format
+msgid "Examples: 1 band clipping"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6012
+#, no-c-format
+msgid ""
+"-- Clip the first band of an aerial tile by a 20 meter buffer.\n"
+"SELECT ST_Clip(rast, 1,\n"
+"                ST_Buffer(ST_Centroid(ST_Envelope(rast)),20)\n"
+"        ) from aerials.boston\n"
+"WHERE rid = 4;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6014
+#, no-c-format
+msgid ""
+"-- Demonstrate effect of crop on final dimensions of raster\n"
+"-- Note how final extent is clipped to that of the geometry\n"
+"-- if crop = true\n"
+"SELECT ST_XMax(ST_Envelope(ST_Clip(rast, 1, clipper, true))) As "
+"xmax_w_trim,\n"
+"        ST_XMax(clipper) As xmax_clipper,\n"
+"        ST_XMax(ST_Envelope(ST_Clip(rast, 1, clipper, false))) As "
+"xmax_wo_trim,\n"
+"        ST_XMax(ST_Envelope(rast)) As xmax_rast_orig\n"
+"FROM (SELECT rast, ST_Buffer(ST_Centroid(ST_Envelope(rast)),6) As clipper\n"
+"        FROM aerials.boston\n"
+"WHERE rid = 6) As foo;\n"
+"\n"
+"   xmax_w_trim    |   xmax_clipper   |   xmax_wo_trim   |  xmax_rast_orig\n"
+"------------------+------------------+------------------+------------------\n"
+" 230657.436173996 | 230657.436173996 | 230666.436173996 | 230666.436173996"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6028 reference_raster.xml:6071
+#: reference_raster.xml:6114
+#, no-c-format
+msgid "Full raster tile before clipping"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6042 reference_raster.xml:6128
+#, no-c-format
+msgid "After Clipping"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6055
+#, no-c-format
+msgid ""
+"Examples: 1 band clipping with no crop and add back other bands unchanged"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6057
+#, no-c-format
+msgid ""
+"-- Same example as before, but we need to set crop to false to be able to "
+"use ST_AddBand\n"
+"-- because ST_AddBand requires all bands be the same Width and height\n"
+"SELECT ST_AddBand(ST_Clip(rast, 1,\n"
+"                ST_Buffer(ST_Centroid(ST_Envelope(rast)),20),false\n"
+"        ), ARRAY[ST_Band(rast,2),ST_Band(rast,3)] ) from aerials.boston\n"
+"WHERE rid = 6;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6085
+#, no-c-format
+msgid "After Clipping - surreal"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6098
+#, no-c-format
+msgid "Examples: Clip all bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6100
+#, no-c-format
+msgid ""
+"-- Clip all bands of an aerial tile by a 20 meter buffer.\n"
+"-- Only difference is we don't specify a specific band to clip\n"
+"-- so all bands are clipped\n"
+"SELECT ST_Clip(rast,\n"
+"          ST_Buffer(ST_Centroid(ST_Envelope(rast)), 20), \n"
+"          false\n"
+"        ) from aerials.boston\n"
+"WHERE rid = 4;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6143
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Intersection\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6153
+#, no-c-format
+msgid "ST_ColorMap"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6154
+#, no-c-format
+msgid ""
+"Creates a new raster of up to four 8BUI bands (grayscale, RGB, RGBA) from "
+"the source raster and a specified band. Band 1 is assumed if not specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:6159
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>colormap=grayscale</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>method=INTERPOLATE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:6169
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>colormap</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>method=INTERPOLATE</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6181
+#, no-c-format
+msgid ""
+"Apply a <varname>colormap</varname> to the band at <varname>nband</varname> "
+"of <varname>rast</varname> resulting a new raster comprised of up to four "
+"8BUI bands. The number of 8BUI bands in the new raster is determined by the "
+"number of color components defined in <varname>colormap</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6185
+#, no-c-format
+msgid "If <varname>nband</varname> is not specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6187
+#, no-c-format
+msgid ""
+"<varname>colormap</varname> can be a keyword of a pre-defined colormap or a "
+"set of lines defining the value and the color components."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6191
+#, no-c-format
+msgid "Valid pre-defined <varname>colormap</varname> keyword:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6197
+#, no-c-format
+msgid ""
+"<varname>grayscale</varname> or <varname>greyscale</varname> for a one 8BUI "
+"band raster of shades of gray."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6202
+#, no-c-format
+msgid ""
+"<varname>pseudocolor</varname> for a four 8BUI (RGBA) band raster with "
+"colors going from blue to green to red."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6207
+#, no-c-format
+msgid ""
+"<varname>fire</varname> for a four 8BUI (RGBA) band raster with colors going "
+"from black to red to pale yellow."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6212
+#, no-c-format
+msgid ""
+"<varname>bluered</varname> for a four 8BUI (RGBA) band raster with colors "
+"going from blue to pale white to red."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6218
+#, no-c-format
+msgid ""
+"Users can pass a set of entries (one per line) to <varname>colormap</"
+"varname> to specify custom colormaps. Each entry generally consists of five "
+"values: the pixel value and corresponding Red, Green, Blue, Alpha components "
+"(color components between 0 and 255). Percent values can be used instead of "
+"pixel values where 0% and 100% are the minimum and maximum values found in "
+"the raster band. Values can be separated with commas (','), tabs, colons "
+"(':') and/or spaces. The pixel value can be set to <emphasis>nv</emphasis>, "
+"<emphasis>null</emphasis> or <emphasis>nodata</emphasis> for the NODATA "
+"value. An example is provided below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6222
+#, no-c-format
+msgid ""
+"5 0 0 0 255\n"
+"4 100:50 55 255\n"
+"1 150,100 150 255\n"
+"0% 255 255 255 255\n"
+"nv 0 0 0 0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6224
+#, no-c-format
+msgid ""
+"The syntax of <varname>colormap</varname> is similar to that of the color-"
+"relief mode of GDAL <ulink url=\"http://www.gdal.org/gdaldem."
+"html#gdaldem_color_relief\">gdaldem</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6228
+#, no-c-format
+msgid "Valid keywords for <varname>method</varname>:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6234
+#, no-c-format
+msgid ""
+"<varname>INTERPOLATE</varname> to use linear interpolation to smoothly blend "
+"the colors between the given pixel values"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6239
+#, no-c-format
+msgid ""
+"<varname>EXACT</varname> to strictly match only those pixels values found in "
+"the colormap. Pixels whose value does not match a colormap entry will be set "
+"to 0 0 0 0 (RGBA)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6244
+#, no-c-format
+msgid ""
+"<varname>NEAREST</varname> to use the colormap entry whose value is closest "
+"to the pixel value"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6251
+#, no-c-format
+msgid ""
+"A great reference for colormaps is <ulink url=\"http://www.colorbrewer2.org"
+"\">ColorBrewer</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6256
+#, no-c-format
+msgid ""
+"The resulting bands of new raster will have no NODATA value set. Use <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/> to set a NODATA value if one is "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6266
+#, no-c-format
+msgid "This is a junk table to play with"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6268
+#, no-c-format
+msgid ""
+"-- setup test raster table --\n"
+"DROP TABLE IF EXISTS funky_shapes;\n"
+"CREATE TABLE funky_shapes(rast raster);\n"
+"\n"
+"INSERT INTO funky_shapes(rast)\n"
+"WITH ref AS (\n"
+"        SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_Union(rast)\n"
+"FROM (\n"
+"        SELECT \n"
+"                ST_AsRaster(\n"
+"                        ST_Rotate(\n"
+"                                ST_Buffer(\n"
+"                                        ST_GeomFromText('LINESTRING(0 2,50 "
+"50,150 150,125 50)'),\n"
+"                                        i*2\n"
+"                                ),\n"
+"                                pi() * i * 0.125, ST_Point(50,50)\n"
+"                        ),\n"
+"                        ref.rast, '8BUI'::text, i * 5\n"
+"                ) AS rast\n"
+"        FROM ref\n"
+"        CROSS JOIN generate_series(1, 10, 3) AS i\n"
+") AS shapes;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6270
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_NumBands(rast) As n_orig,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'greyscale')) As ngrey,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'pseudocolor')) As npseudo,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'fire')) As nfire,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'bluered')) As nbluered,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As nred\n"
+"FROM funky_shapes;"
+msgstr ""
+
+#. Tag: screen
+#: reference_raster.xml:6272
+#, no-c-format
+msgid ""
+"n_orig | ngrey | npseudo | nfire | nbluered | nred\n"
+"--------+-------+---------+-------+----------+------\n"
+"      1 |     1 |       4 |     4 |        4 |    3"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6276
+#, no-c-format
+msgid "Examples: Compare different color map looks using ST_AsPNG"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6277
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_AsPNG(rast) As orig_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1,'greyscale')) As grey_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'pseudocolor')) As pseudo_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'nfire')) As fire_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'bluered')) As bluered_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As red_png\n"
+"FROM funky_shapes;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6291
+#, no-c-format
+msgid "orig_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6305
+#, no-c-format
+msgid "grey_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6319
+#, no-c-format
+msgid "pseudo_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6335
+#, no-c-format
+msgid "fire_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6349
+#, no-c-format
+msgid "bluered_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6363
+#, no-c-format
+msgid "red_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6377
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsRaster\"/> <xref linkend=\"RT_ST_MapAlgebra\"/>, "
+"<xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6391
+#, no-c-format
+msgid "ST_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6392
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a raster or a set of geometry-pixelvalue pairs "
+"representing the shared portion of two rasters or the geometrical "
+"intersection of a vectorization of the raster and a geometry.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6396
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>band_num=1</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof geomval "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band_num</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Intersection</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>nodataval</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef choice=\"opt\"><type>text "
+"</type> <parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>nodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num1</parameter></paramdef> <paramdef><type>raster </"
+"type> <parameter>rast2</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num2</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>nodataval</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Intersection</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num1</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>rast2</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num2</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6456
+#, no-c-format
+msgid ""
+"<para>Returns a raster or a set of geometry-pixelvalue pairs representing "
+"the shared portion of two rasters or the geometrical intersection of a "
+"vectorization of the raster and a geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6460
+#, no-c-format
+msgid ""
+"The first three variants, returning a setof geomval, works in vector space. "
+"The raster is first vectorized (using ST_DumpAsPolygon) into a set of "
+"geomval rows and those rows are then intersected with the geometry using the "
+"ST_Intersection(geometry, geometry) PostGIS function. Geometries "
+"intersecting only with a nodata value area of a raster returns an empty "
+"geometry. They are normally excluded from the results by the proper usage of "
+"ST_Intersect in the WHERE clause."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6464
+#, no-c-format
+msgid ""
+"You can access the geometry and the value parts of the resulting set of "
+"geomval by surrounding them with parenthesis and adding '.geom' or '.val' at "
+"the end of the expression. e.g. (ST_Intersection(rast, geom)).geom"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6468
+#, no-c-format
+msgid ""
+"The other variants, returning a raster, works in raster space. They are "
+"using the two rasters version of ST_MapAlgebraExpr to perform the "
+"intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6472
+#, no-c-format
+msgid ""
+"The extent of the resulting raster corresponds to the geometrical "
+"intersection of the two raster extents. The resulting raster includes "
+"'BAND1', 'BAND2' or 'BOTH' bands, following what is passed as the "
+"<varname>returnband</varname> parameter. Nodata value areas present in any "
+"band results in nodata value areas in every bands of the result. In other "
+"words, any pixel intersecting with a nodata value pixel becomes a nodata "
+"value pixel in the result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6476
+#, no-c-format
+msgid ""
+"Rasters resulting from ST_Intersection must have a nodata value assigned for "
+"areas not intersecting. You can define or replace the nodata value for any "
+"resulting band by providing a <varname>nodataval[]</varname> array of one or "
+"two nodata values depending if you request 'BAND1', 'BAND2' or 'BOTH' bands. "
+"The first value in the array replace the nodata value in the first band and "
+"the second value replace the nodata value in the second band. If one input "
+"band do not have a nodata value defined and none are provided as an array, "
+"one is chosen using the ST_MinPossibleValue function. All variant accepting "
+"an array of nodata value can also accept a single value which will be "
+"assigned to each requested band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6480
+#, no-c-format
+msgid "In all variants, if no band number is specified band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6485
+#, no-c-format
+msgid ""
+"To get more control on the resulting extent or on what to return when "
+"encountering a nodata value, use the two rasters version of <xref linkend="
+"\"RT_ST_MapAlgebraExpr2\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6491
+#, no-c-format
+msgid ""
+"To compute the intersection of a raster band with a geometry in raster "
+"space, use <xref linkend=\"RT_ST_Clip\"/>. ST_Clip works on multiple bands "
+"rasters and does not return a band corresponding to the rasterized geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6497
+#, no-c-format
+msgid ""
+"ST_Intersection should be used in conjunction with ST_Intersects and an "
+"index on the raster column and/or the geometry column."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6502
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 - Intersection in the raster space was introduced. In "
+"earlier pre-2.0.0 versions, only intersection performed in vector space were "
+"supported."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6508
+#, no-c-format
+msgid "Examples: Geometry, Raster -- resulting in geometry vals"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6510
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        foo.rid,\n"
+"        foo.gid,\n"
+"        ST_AsText((foo.geomval).geom) As geomwkt,\n"
+"        (foo.geomval).val\n"
+"FROM (\n"
+"        SELECT\n"
+"                A.rid,\n"
+"                g.gid,\n"
+"                ST_Intersection(A.rast, g.geom) As geomval\n"
+"        FROM dummy_rast AS A\n"
+"        CROSS JOIN (\n"
+"                VALUES\n"
+"                        (1, ST_Point(3427928, 5793243.85) ),\n"
+"                        (2, ST_GeomFromText('LINESTRING(3427927.85 "
+"5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)')),\n"
+"                        (3, ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"        ) As g(gid,geom)\n"
+"        WHERE A.rid = 2\n"
+") As foo;\n"
+"\n"
+" rid | gid |      "
+"geomwkt                                                                                                "
+"| val\n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------\n"
+"   2 |   1 | POINT(3427928 "
+"5793243.85)                                                                        "
+"| 249\n"
+"   2 |   1 | POINT(3427928 "
+"5793243.85)                                                                        "
+"| 253\n"
+"   2 |   2 | POINT(3427927.85 "
+"5793243.75)                                                                | "
+"254\n"
+"   2 |   2 | POINT(3427927.8 "
+"5793243.8)                                                                        "
+"| 251\n"
+"   2 |   2 | POINT(3427927.8 "
+"5793243.8)                                                                        "
+"| 253\n"
+"   2 |   2 | LINESTRING(3427927.8 5793243.75,3427927.8 5793243.8)           "
+"| 252\n"
+"   2 |   2 | MULTILINESTRING((3427927.8 5793243.8,3427927.8 5793243.75),...) "
+"| 250\n"
+"   2 |   3 | GEOMETRYCOLLECTION EMPTY"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6514
+#, no-c-format
+msgid "Example: Raster, Geometry -- resulting is a raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6515
+#, no-c-format
+msgid "Examples coming soon"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6521
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Intersects\"/>, <xref linkend="
+"\"RT_ST_MapAlgebraExpr2\"/>, <xref linkend=\"RT_ST_Clip\"/>, <xref linkend="
+"\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6533 reference_raster.xml:6780
+#, no-c-format
+msgid "ST_MapAlgebra"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6534
+#, no-c-format
+msgid ""
+"Callback function version - Returns a one-band raster given one or more "
+"input rasters, band indexes and one user-specified callback function."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6540
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>rastbandarg[] </type> <parameter>rastbandargset</parameter></"
+"paramdef> <paramdef><type>regprocedure </type> <parameter>callbackfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6601
+#, no-c-format
+msgid ""
+"Returns a one-band raster given one or more input rasters, band indexes and "
+"one user-specified callback function."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6607
+#, no-c-format
+msgid "rast,rast1,rast2, rastbandargset"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6609
+#, no-c-format
+msgid "Rasters on which the map algebra process is evaluated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6610
+#, no-c-format
+msgid ""
+"<varname>rastbandargset</varname> allows the use of a map algebra operation "
+"on many rasters and/or many bands. See example Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6615
+#, no-c-format
+msgid "nband, nband1, nband2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6617
+#, no-c-format
+msgid ""
+"Band numbers of the raster to be evaluated. nband can be an integer or "
+"integer[] denoting the bands. nband1 is band on rast1 and nband2 is band on "
+"rast2 for hte 2 raster/2band case."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6623
+#, no-c-format
+msgid "callbackfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6625
+#, no-c-format
+msgid ""
+"The <varname>callbackfunc</varname> parameter must be the name and signature "
+"of an SQL or PL/pgSQL function, cast to a regprocedure. An example PL/pgSQL "
+"function example is: <programlisting>\n"
+"CREATE OR REPLACE FUNCTION sample_callbackfunc(value double precision[][][], "
+"position integer[][], VARIADIC userargs text[])\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        BEGIN\n"
+"                RETURN 0;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE;\n"
+"                                                                        </"
+"programlisting> The <varname>callbackfunc</varname> must have three "
+"arguments: a 3-dimension double precision array, a 2-dimension integer array "
+"and a variadic 1-dimension text array. The first argument <varname>value</"
+"varname> is the set of values (as double precision) from all input rasters. "
+"The three dimensions (where indexes are 1-based) are: raster #, row y, "
+"column x. The second argument <varname>position</varname> is the set of "
+"pixel positions from the output raster and input rasters. The outer "
+"dimension (where indexes are 0-based) is the raster #. The position at outer "
+"dimension index 0 is the output raster's pixel position. For each outer "
+"dimension, there are two elements in the inner dimension for X and Y. The "
+"third argument <varname>userargs</varname> is for passing through any user-"
+"specified arguments."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6632
+#, no-c-format
+msgid ""
+"Passing a <type>regprocedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is: <programlisting>\n"
+"'sample_callbackfunc(double precision[], integer[], text[])'::regprocedure\n"
+"                                                                        </"
+"programlisting> Note that the argument contains the name of the function, "
+"the types of the function arguments, quotes around the name and argument "
+"types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6644 reference_raster.xml:6894
+#: reference_raster.xml:7189 reference_raster.xml:7743
+#, no-c-format
+msgid "pixeltype"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6646
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, the one band of the new raster "
+"will be of that pixeltype. If pixeltype is passed NULL or left out, the new "
+"raster band will have the same pixeltype as the specified band of the first "
+"raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the "
+"specified band of the appropriate raster (for extent types: SECOND, LAST). "
+"If in doubt, always specify <varname>pixeltype</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6649
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6656 reference_raster.xml:6902
+#: reference_raster.xml:7198
+#, no-c-format
+msgid "extenttype"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6658
+#, no-c-format
+msgid ""
+"Possible values are INTERSECTION (default), UNION, FIRST (default for one "
+"raster variants), SECOND, LAST, CUSTOM."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6665
+#, no-c-format
+msgid "customextent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6667
+#, no-c-format
+msgid ""
+"If <varname>extentype</varname> is CUSTOM, a raster must be provided for "
+"<varname>customextent</varname>. See example 4 of Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6674
+#, no-c-format
+msgid "distancex"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6676
+#, no-c-format
+msgid ""
+"The distance in pixels from the reference cell. So width of resulting matrix "
+"would be <code>2*distancex + 1</code>.If not specified only the reference "
+"cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6683
+#, no-c-format
+msgid "distancey"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6685
+#, no-c-format
+msgid ""
+"The distance in pixels from reference cell in y direction. Height of "
+"resulting matrix would be <code>2*distancey + 1</code> .If not specified "
+"only the reference cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6692
+#, no-c-format
+msgid "userargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6694
+#, no-c-format
+msgid ""
+"The third argument to the <varname>callbackfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments are passed "
+"through to the specified <varname>callbackfunc</varname>, and are contained "
+"in the <varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6702 reference_raster.xml:7518
+#: reference_raster.xml:7637
+#, no-c-format
+msgid ""
+"For more information about the VARIADIC keyword, please refer to the "
+"PostgreSQL documentation and the \"SQL Functions with Variable Numbers of "
+"Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6708
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>callbackfunc</varname> is "
+"required, regardless of whether you choose to pass any arguments to the "
+"callback function for processing or not."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6713
+#, no-c-format
+msgid ""
+"Variant 1 accepts an array of <varname>rastbandarg</varname> allowing the "
+"use of a map algebra operation on many rasters and/or many bands. See "
+"example Variant 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6717
+#, no-c-format
+msgid ""
+"Variants 2 and 3 operate upon one or more bands of one raster. See example "
+"Variant 2 and 3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6721
+#, no-c-format
+msgid ""
+"Variant 4 operate upon two rasters with one band per raster. See example "
+"Variant 4."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6732 reference_raster.xml:6754
+#, no-c-format
+msgid "One raster, one band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6733
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(rast, 1)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6735 reference_raster.xml:6751
+#, no-c-format
+msgid "One raster, several bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6736
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(rast, 3), ROW(rast, 1), ROW(rast, 3), ROW(rast, "
+"2)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6738
+#, no-c-format
+msgid "Several rasters, several bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6739
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(t1.rast, 3), ROW(t2.rast, 1), ROW(t2.rast, 3), "
+"ROW(t1.rast, 2)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6741
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage with neighborhood. This query only "
+"works with PostgreSQL 9.1 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6742
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rid,\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(ST_Union(t2.rast), 1)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure,\n"
+"                '32BUI',\n"
+"                'CUSTOM', t1.rast,\n"
+"                1, 1\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 4\n"
+"        AND t2.rid BETWEEN 0 AND 8\n"
+"        AND ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rid, t1.rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6744
+#, no-c-format
+msgid ""
+"Example like the prior one for tiles of a coverage with neighborhood but "
+"works with PostgreSQL 9.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6745
+#, no-c-format
+msgid ""
+"WITH src AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"WITH foo AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_Union(t2.rast) AS rast\n"
+"        FROM src t1\n"
+"        JOIN src t2\n"
+"                ON ST_Intersects(t1.rast, t2.rast)\n"
+"                AND t2.rid BETWEEN 0 AND 8\n"
+"        WHERE t1.rid = 4\n"
+"        GROUP BY t1.rid\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_MapAlgebra(\n"
+"                        ARRAY[ROW(t2.rast, 1)]::rastbandarg[],\n"
+"                        'raster_nmapalgebra_test(double precision[], int[], "
+"text[])'::regprocedure,\n"
+"                        '32BUI',\n"
+"                        'CUSTOM', t1.rast,\n"
+"                        1, 1\n"
+"                ) AS rast\n"
+"        FROM src t1\n"
+"        JOIN foo t2\n"
+"                ON t1.rid = t2.rid \n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_Metadata(rast)),\n"
+"        (ST_BandMetadata(rast, 1)),\n"
+"        ST_Value(rast, 1, 1, 1)\n"
+"FROM bar;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6749
+#, no-c-format
+msgid "Examples: Variants 2 and 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6752
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                rast, ARRAY[3, 1, 3, 2]::integer[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6755
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                rast, 2,\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6759
+#, no-c-format
+msgid "Examples: Variant 4"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6761
+#, no-c-format
+msgid "Two rasters, two bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6762
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6769
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra_expr\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6781
+#, no-c-format
+msgid ""
+"<refpurpose>Expression version - Returns a one-band raster given one or two "
+"input rasters, band indexes and one or more user-specified SQL expressions.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6787
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebra</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>expression</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6838
+#, no-c-format
+msgid ""
+"<para>Expression version - Returns a one-band raster given one or two input "
+"rasters, band indexes and one or more user-specified SQL expressions.</para>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6846
+#, no-c-format
+msgid "Description: Variants 1 and 2 (one raster)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6848
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If <varname>nband</varname> is not "
+"provided, band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6852 reference_raster.xml:7054
+#: reference_raster.xml:7502
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL, then the new raster "
+"band will have the same pixeltype as the input <varname>rast</varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6857
+#, no-c-format
+msgid "Keywords permitted for <varname>expression</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6860
+#, no-c-format
+msgid "<varname>[rast]</varname> - Pixel value of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6863
+#, no-c-format
+msgid "<varname>[rast.val]</varname> - Pixel value of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6866
+#, no-c-format
+msgid ""
+"<varname>[rast.x]</varname> - 1-based pixel column of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6869
+#, no-c-format
+msgid ""
+"<varname>[rast.y]</varname> - 1-based pixel row of the pixel of interest"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6878
+#, no-c-format
+msgid "Description: Variants 3 and 4 (two raster)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6880 reference_raster.xml:7174
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation to the two bands defined by the <varname>expression</"
+"varname> on the two input raster bands <varname>rast1</varname>, "
+"(<varname>rast2</varname>). If no <varname>band1</varname>, <varname>band2</"
+"varname> is specified band 1 is assumed. The resulting raster will be "
+"aligned (scale, skew and pixel corners) on the grid defined by the first "
+"raster. The resulting raster will have the extent defined by the "
+"<varname>extenttype</varname> parameter."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6886 reference_raster.xml:7180
+#, no-c-format
+msgid "expression"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6888 reference_raster.xml:7182
+#, no-c-format
+msgid ""
+"A PostgreSQL algebraic expression involving the two rasters and PostgreSQL "
+"defined functions/operators that will define the pixel value when pixels "
+"intersect. e.g. (([rast1] + [rast2])/2.0)::integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6896 reference_raster.xml:7191
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, left out or set to NULL. If not passed in "
+"or set to NULL, will default to the pixeltype of the first raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6904 reference_raster.xml:7200
+#, no-c-format
+msgid "Controls the extent of resulting raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6910 reference_raster.xml:7203
+#, no-c-format
+msgid ""
+"<varname>INTERSECTION</varname> - The extent of the new raster is the "
+"intersection of the two rasters. This is the default."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6915 reference_raster.xml:7208
+#, no-c-format
+msgid ""
+"<varname>UNION</varname> - The extent of the new raster is the union of the "
+"two rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6920 reference_raster.xml:7213
+#, no-c-format
+msgid ""
+"<varname>FIRST</varname> - The extent of the new raster is the same as the "
+"one of the first raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6925 reference_raster.xml:7218
+#, no-c-format
+msgid ""
+"<varname>SECOND</varname> - The extent of the new raster is the same as the "
+"one of the second raster."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6933 reference_raster.xml:7227
+#, no-c-format
+msgid "nodata1expr"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6935 reference_raster.xml:7229
+#, no-c-format
+msgid ""
+"An algebraic expression involving only <varname>rast2</varname> or a "
+"constant that defines what to return when pixels of <varname>rast1</varname> "
+"are nodata values and spatially corresponding rast2 pixels have values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6941 reference_raster.xml:7236
+#, no-c-format
+msgid "nodata2expr"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6943 reference_raster.xml:7238
+#, no-c-format
+msgid ""
+"An algebraic expression involving only <varname>rast1</varname> or a "
+"constant that defines what to return when pixels of <varname>rast2</varname> "
+"are nodata values and spatially corresponding rast1 pixels have values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6949 reference_raster.xml:7245
+#, no-c-format
+msgid "nodatanodataval"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6951 reference_raster.xml:7247
+#, no-c-format
+msgid ""
+"A numeric constant to return when spatially corresponding rast1 and rast2 "
+"pixels are both nodata values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6959
+#, no-c-format
+msgid ""
+"Keywords permitted in <varname>expression</varname>, <varname>nodata1expr</"
+"varname> and <varname>nodata2expr</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6962
+#, no-c-format
+msgid ""
+"<varname>[rast1]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6965
+#, no-c-format
+msgid ""
+"<varname>[rast1.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6968
+#, no-c-format
+msgid ""
+"<varname>[rast1.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6971
+#, no-c-format
+msgid ""
+"<varname>[rast1.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6974
+#, no-c-format
+msgid ""
+"<varname>[rast2]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6977
+#, no-c-format
+msgid ""
+"<varname>[rast2.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6980
+#, no-c-format
+msgid ""
+"<varname>[rast2.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6983
+#, no-c-format
+msgid ""
+"<varname>[rast2.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6991
+#, no-c-format
+msgid "Examples: Variants 1 and 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6993
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 1, 1, 0, 0, 0), "
+"'32BF', 1, -1) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(rast, 1, NULL, 'ceil([rast]*[rast.x]/[rast.y]+[rast."
+"val])')\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6997
+#, no-c-format
+msgid "Examples: Variant 3 and 4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6999
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                '([rast2] + [rast1.val]) / 2'\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7005
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7015 reference_raster.xml:7129
+#, no-c-format
+msgid "ST_MapAlgebraExpr"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7016
+#, no-c-format
+msgid ""
+"1 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the input raster band and of "
+"pixeltype provided. Band 1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7020
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7045 reference_raster.xml:7169
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra_expr\"/> "
+"instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7050
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If no <varname>band</varname> is "
+"specified band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7058
+#, no-c-format
+msgid ""
+"In the expression you can use the term <varname>[rast]</varname> to refer to "
+"the pixel value of the original band, <varname>[rast.x]</varname> to refer "
+"to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to "
+"the 1-based pixel row index."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7068 reference_raster.xml:7267
+#: reference_raster.xml:7531
+#, no-c-format
+msgid ""
+"Create a new 1 band raster from our original that is a function of modulo 2 "
+"of the original raster band."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7069
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,"
+"NULL,'mod([rast],2)') WHERE rid = 2;\n"
+"\n"
+"SELECT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 3) AS i\n"
+"CROSS JOIN generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7071
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to be 0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7072
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"UPDATE dummy_rast SET\n"
+"        map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN [rast] BETWEEN "
+"100 and 250 THEN 1 WHEN [rast] = 252 THEN 2 WHEN [rast] BETWEEN 253 and 254 "
+"THEN 3 ELSE 0 END', '0')\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast2, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 5) AS i\n"
+"CROSS JOIN generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT\n"
+"        ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7086 reference_raster.xml:7546
+#, no-c-format
+msgid "original (column rast-view)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7100 reference_raster.xml:7554
+#, no-c-format
+msgid "rast_view_ma"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7111 reference_raster.xml:7562
+#, no-c-format
+msgid ""
+"Create a new 3 band raster same pixel type from our original 3 band raster "
+"with first band altered by map algebra and remaining 2 bands unaltered."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7112
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(rast_view),\n"
+"                                ST_MapAlgebraExpr(rast_view,1,"
+"NULL,'tan([rast])*[rast]')\n"
+"                        ), \n"
+"                        ST_Band(rast_view,2)\n"
+"                ),\n"
+"                ST_Band(rast_view, 3) As rast_view_ma\n"
+"        )\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7117
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref "
+"linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7130
+#, no-c-format
+msgid ""
+"2 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the two input raster bands and of "
+"pixeltype provided. band 1 of each raster is assumed if no band numbers are "
+"specified. The resulting raster will be aligned (scale, skew and pixel "
+"corners) on the grid defined by the first raster and have its extent defined "
+"by the \"extenttype\" parameter. Values for \"extenttype\" can be: "
+"INTERSECTION, UNION, FIRST, SECOND."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7136
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7254
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or no pixel type "
+"specified, then the new raster band will have the same pixeltype as the "
+"input <varname>rast1</varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7257
+#, no-c-format
+msgid ""
+"Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> "
+"to refer to the pixel value of the original raster bands and <varname>[rast1."
+"x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row "
+"positions of the pixels."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7265
+#, no-c-format
+msgid "Example: 2 Band Intersection and Union"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7268
+#, no-c-format
+msgid ""
+"--Create a cool set of rasters --\n"
+"DROP TABLE IF EXISTS fun_shapes; \n"
+"CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast "
+"raster);\n"
+"\n"
+"-- Insert some cool shapes around Boston in Massachusetts state plane meters "
+"--\n"
+"INSERT INTO fun_shapes(fun_name, rast)\n"
+"VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, "
+"901930,26986),200,200,'8BUI',0,0));\n"
+"\n"
+"INSERT INTO fun_shapes(fun_name,rast)\n"
+"WITH ref(rast) AS (SELECT rast FROM fun_shapes WHERE fun_name = 'ref' ) \n"
+"SELECT 'area' AS fun_name, ST_AsRaster(ST_Buffer(ST_SetSRID(ST_Point(236229, "
+"900930),26986), 1000), \n"
+"                        ref.rast,'8BUI', 10, 0) As rast\n"
+"FROM ref\n"
+"UNION ALL\n"
+"SELECT 'rand bubbles', \n"
+"                         ST_AsRaster( \n"
+"                         (SELECT ST_Collect(geom)\n"
+"        FROM (SELECT ST_Buffer(ST_SetSRID(ST_Point(236229 + i*random()*100, "
+"900930 + j*random()*100),26986), random()*20) As geom\n"
+"                        FROM generate_series(1,10) As i, "
+"generate_series(1,10) As j\n"
+"                        ) As foo ), ref.rast,'8BUI', 200, 0) \n"
+"FROM ref;\n"
+"\n"
+"--map them -\n"
+"SELECT  ST_MapAlgebraExpr(\n"
+"                area.rast, bub.rast, '[rast2.val]', '8BUI', 'INTERSECTION', "
+"'[rast2.val]', '[rast1.val]') As interrast,\n"
+"                ST_MapAlgebraExpr(\n"
+"                        area.rast, bub.rast, '[rast2.val]', '8BUI', 'UNION', "
+"'[rast2.val]', '[rast1.val]') As unionrast\n"
+"FROM \n"
+"  (SELECT rast FROM fun_shapes WHERE\n"
+" fun_name = 'area') As area\n"
+"CROSS JOIN  (SELECT rast \n"
+"FROM fun_shapes WHERE\n"
+" fun_name = 'rand bubbles') As bub"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7282
+#, no-c-format
+msgid "mapalgebra intersection"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7296
+#, no-c-format
+msgid "map algebra union"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7309 reference_raster.xml:7648
+#, no-c-format
+msgid "Example: Overlaying rasters on a canvas as separate bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7310
+#, no-c-format
+msgid ""
+"-- we use ST_AsPNG to render the image so all single band ones look grey --\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(1,5),10) As geom\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 10,'join=bevel') As geom\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 150,150 "
+"50)'), 5,'join=bevel') As geom\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS (SELECT ST_AddBand(ST_MakeEmptyRaster(200, \n"
+"        200, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            ),\n"
+"   rbands AS (SELECT ARRAY(SELECT ST_MapAlgebraExpr(canvas.rast, "
+"ST_AsRaster(m.geom, canvas.rast, '8BUI', 100),\n"
+"                 '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1."
+"val]') As rast\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"                ORDER BY m.bnum) As rasts\n"
+"                )\n"
+"          SELECT rasts[1] As rast1 , rasts[2] As rast2, rasts[3] As rast3, "
+"ST_AddBand(\n"
+"                    ST_AddBand(rasts[1],rasts[2]), rasts[3]) As final_rast\n"
+"            FROM rbands;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7323
+#, no-c-format
+msgid "rast1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7336
+#, no-c-format
+msgid "rast2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7352
+#, no-c-format
+msgid "rast3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7366
+#, no-c-format
+msgid "final_rast"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7379
+#, no-c-format
+msgid ""
+"Example: Overlay 2 meter boundary of select parcels over an aerial imagery"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7381
+#, no-c-format
+msgid ""
+"-- Create new 3 band raster composed of first 2 clipped bands, and overlay "
+"of 3rd band with our geometry\n"
+"-- This query took 3.6 seconds on PostGIS windows 64-bit install\n"
+"WITH pr AS\n"
+"-- Note the order of operation: we clip all the rasters to dimensions of our "
+"region\n"
+"(SELECT ST_Clip(rast,ST_Expand(geom,50) ) As rast, g.geom\n"
+"        FROM aerials.o_2_boston AS r INNER JOIN\n"
+"-- union our parcels of interest so they form a single geometry we can later "
+"intersect with\n"
+"                (SELECT ST_Union(ST_Transform(the_geom,26986)) AS geom \n"
+"                  FROM landparcels WHERE pid IN('0303890000', '0303900000')) "
+"As g\n"
+"                ON ST_Intersects(rast::geometry, ST_Expand(g.geom,50))\n"
+"),\n"
+"-- we then union the raster shards together\n"
+"-- ST_Union on raster is kinda of slow but much faster the smaller you can "
+"get the rasters\n"
+"-- therefore we want to clip first and then union\n"
+"prunion AS\n"
+"(SELECT ST_AddBand(NULL, ARRAY[ST_Union(rast,1),ST_Union(rast,2),"
+"ST_Union(rast,3)] ) As clipped,geom\n"
+"FROM pr\n"
+"GROUP BY geom)\n"
+"-- return our final raster which is the unioned shard with \n"
+"-- with the overlay of our parcel boundaries\n"
+"-- add first 2 bands, then mapalgebra of 3rd band + geometry\n"
+"SELECT ST_AddBand(ST_Band(clipped,ARRAY[1,2])\n"
+"        , ST_MapAlgebraExpr(ST_Band(clipped,3), "
+"ST_AsRaster(ST_Buffer(ST_Boundary(geom),2),clipped, '8BUI',250),\n"
+"         '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1.val]') ) As "
+"rast\n"
+"FROM prunion;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7395
+#, no-c-format
+msgid "The blue lines are the boundaries of select parcels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7409
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref "
+"linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Union\"/>, <xref "
+"linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7426 reference_raster.xml:7579
+#, no-c-format
+msgid "ST_MapAlgebraFct"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7427
+#, no-c-format
+msgid ""
+"1 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the input raster band and of pixeltype prodived. Band "
+"1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7431
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7495 reference_raster.xml:7613
+#: reference_raster.xml:7726
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra\"/> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7500
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>onerasteruserfunc</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified, band "
+"1 is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7504
+#, no-c-format
+msgid ""
+"The <varname>onerasteruserfunc</varname> parameter must be the name and "
+"signature of a SQL or PL/pgSQL function, cast to a regprocedure. A very "
+"simple and quite useless PL/pgSQL function example is: "
+"<programlisting>CREATE OR REPLACE FUNCTION simple_function(pixel FLOAT, pos "
+"INTEGER[], VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>userfunction</varname> may accept two or three arguments: a float "
+"value, an optional integer array, and a variadic text array. The first "
+"argument is the value of an individual raster cell (regardless of the raster "
+"datatype). The second argument is the position of the current processing "
+"cell in the form '{x,y}'. The third argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct\"/> shall be passed "
+"through to the <varname>userfunction</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7509
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(float,integer[],"
+"text[])'::regprocedure</programlisting>Note that the argument contains the "
+"name of the function, the types of the function arguments, quotes around the "
+"name and argument types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7513
+#, no-c-format
+msgid ""
+"The third argument to the <varname>userfunction</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct\"/> call are passed through to the specified "
+"<varname>userfunction</varname>, and are contained in the <varname>args</"
+"varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7522
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>userfunction</varname> is "
+"required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7532
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"CREATE FUNCTION mod_fct(pixel float, pos integer[], variadic args text[])\n"
+"RETURNS float\n"
+"AS $$\n"
+"BEGIN\n"
+"    RETURN pixel::integer % 2;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE;\n"
+"\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraFct(rast,NULL,'mod_fct(float,"
+"integer[],text[])'::regprocedure) WHERE rid = 2;\n"
+"\n"
+"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
+"mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7534
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to a passed parameter to the user "
+"function (0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7535
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"CREATE FUNCTION classify_fct(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"DECLARE\n"
+"    nodata float := 0;\n"
+"BEGIN\n"
+"    IF NOT args[1] IS NULL THEN\n"
+"        nodata := args[1];\n"
+"    END IF;\n"
+"    IF pixel < 251 THEN\n"
+"        RETURN 1;\n"
+"    ELSIF pixel = 252 THEN\n"
+"        RETURN 2;\n"
+"    ELSIF pixel > 252 THEN\n"
+"        RETURN 3;\n"
+"    ELSE\n"
+"        RETURN nodata;\n"
+"    END IF;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"UPDATE dummy_rast SET map_rast2 = "
+"ST_MapAlgebraFct(rast,'2BUI','classify_fct(float,integer[],text[])'::"
+"regprocedure, '0') WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
+"j) As mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
+"generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7563
+#, no-c-format
+msgid ""
+"CREATE FUNCTION rast_plus_tan(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"BEGIN\n"
+"        RETURN tan(pixel) * pixel;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"\n"
+"SELECT ST_AddBand(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(rast_view),\n"
+"                        ST_MapAlgebraFct(rast_view,1,"
+"NULL,'rast_plus_tan(float,integer[],text[])'::regprocedure)\n"
+"                ), \n"
+"                ST_Band(rast_view,2)\n"
+"        ),\n"
+"        ST_Band(rast_view, 3) As rast_view_ma\n"
+")\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7568 reference_raster.xml:7691
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference"
+"\"/>, <xref linkend=\"RT_ST_SetValue\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7580
+#, no-c-format
+msgid ""
+"2 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the 2 input raster bands and of pixeltype prodived. "
+"Band 1 is assumed if no band is specified. Extent type defaults to "
+"INTERSECTION if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7584
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band1</parameter></paramdef> <paramdef><type>raster</type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band2</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7618
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>tworastuserfunc</varname> on the input raster "
+"<varname>rast1</varname>, <varname>rast2</varname>. If no <varname>band1</"
+"varname> or <varname>band2</varname> is specified, band 1 is assumed. The "
+"new raster will have the same georeference, width, and height as the "
+"original rasters but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7621
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or left out, then the "
+"new raster band will have the same pixeltype as the input <varname>rast1</"
+"varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7624
+#, no-c-format
+msgid ""
+"The <varname>tworastuserfunc</varname> parameter must be the name and "
+"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
+"PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION "
+"simple_function_for_two_rasters(pixel1 FLOAT, pixel2 FLOAT, pos INTEGER[], "
+"VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>tworastuserfunc</varname> may accept three or four arguments: a "
+"double precision value, a double precision value, an optional integer array, "
+"and a variadic text array. The first argument is the value of an individual "
+"raster cell in <varname>rast1</varname> (regardless of the raster datatype). "
+"The second argument is an individual raster cell value in <varname>rast2</"
+"varname>. The third argument is the position of the current processing cell "
+"in the form '{x,y}'. The fourth argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct2\"/> shall be passed "
+"through to the <varname>tworastuserfunc</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7630
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(double precision, "
+"double precision, integer[], text[])'::regprocedure</programlisting>Note "
+"that the argument contains the name of the function, the types of the "
+"function arguments, quotes around the name and argument types, and a cast to "
+"a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7633
+#, no-c-format
+msgid ""
+"The third argument to the <varname>tworastuserfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct2\"/> call are passed through to the specified "
+"<varname>tworastuserfunc</varname>, and are contained in the "
+"<varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7641
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>tworastuserfunc</varname> "
+"is required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7649
+#, no-c-format
+msgid ""
+"-- define our user defined function --\n"
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_union(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN ((rast1 + rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN NULL;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN rast2;\n"
+"                        ELSE\n"
+"                                RETURN rast1;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"\n"
+"-- prep our test table of rasters\n"
+"DROP TABLE IF EXISTS map_shapes;\n"
+"CREATE TABLE map_shapes(rid serial PRIMARY KEY, rast raster, bnum integer, "
+"descrip text);\n"
+"INSERT INTO map_shapes(rast,bnum, descrip)\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(90,90),30) As geom, 'circle' "
+"As descrip\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 15) As geom, 'big road' As descrip\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Translate(ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 "
+"150,150 50)'), 8,'join=bevel'), 10,-6) As geom, 'small road' As descrip\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS ( SELECT ST_AddBand(ST_MakeEmptyRaster(250, \n"
+"        250, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0 ) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            )\n"
+"-- return our rasters aligned with our canvas\n"
+"SELECT ST_AsRaster(m.geom, canvas.rast, '8BUI', 240) As rast, bnum, descrip\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"UNION ALL \n"
+"SELECT canvas.rast, 4, 'canvas'\n"
+"FROM canvas;\n"
+"\n"
+"-- Map algebra on single band rasters and then collect with ST_AddBand\n"
+"INSERT INTO map_shapes(rast,bnum,descrip)\n"
+"SELECT ST_AddBand(ST_AddBand(rasts[1], rasts[2]),rasts[3]), 4, 'map bands "
+"overlay fct union (canvas)'\n"
+"        FROM (SELECT ARRAY(SELECT ST_MapAlgebraFct(m1.rast, m2.rast, \n"
+"                        'raster_mapalgebra_union(double precision, double "
+"precision, integer[], text[])'::regprocedure, '8BUI', 'FIRST')\n"
+"                FROM map_shapes As m1 CROSS JOIN map_shapes As m2\n"
+"                        WHERE m1.descrip = 'canvas' AND m2.descrip <> "
+"'canvas' ORDER BY m2.bnum) As rasts) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7662
+#, no-c-format
+msgid "map bands overlay (canvas) (R: small road, G: circle, B: big road)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7674
+#, no-c-format
+msgid "User Defined function that takes extra args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7675
+#, no-c-format
+msgid ""
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_userargs(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN least(userargs[1]::integer,(rast1 + "
+"rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN userargs[2]::integer;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN greatest(rast2,random()*userargs[3]::"
+"integer)::integer;\n"
+"                        ELSE\n"
+"                                RETURN greatest(rast1, random()*userargs[4]::"
+"integer)::integer;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' VOLATILE COST 1000;\n"
+"        \n"
+"SELECT ST_MapAlgebraFct(m1.rast, 1, m1.rast, 3,\n"
+"                        'raster_mapalgebra_userargs(double precision, double "
+"precision, integer[], text[])'::regprocedure,\n"
+"                                '8BUI', 'INTERSECT', "
+"'100','200','200','0') \n"
+"                FROM map_shapes As m1\n"
+"                        WHERE m1.descrip = 'map bands overlay fct union "
+"(canvas)';"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7683
+#, no-c-format
+msgid "user defined with extra args and different bands from same raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7702
+#, no-c-format
+msgid "ST_MapAlgebraFctNgb"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7703
+#, no-c-format
+msgid ""
+"1-band version: Map Algebra Nearest Neighbor using user-defined PostgreSQL "
+"function. Return a raster which values are the result of a PLPGSQL user "
+"function involving a neighborhood of values from the input raster band."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7708
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
+"args</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7731
+#, no-c-format
+msgid ""
+"(one raster version) Return a raster which values are the result of a "
+"PLPGSQL user function involving a neighborhood of values from the input "
+"raster band. The user function takes the neighborhood of pixel values as an "
+"array of numbers, for each pixel, returns the result from the user function, "
+"replacing pixel value of currently inspected pixel with the function result."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7735
+#, no-c-format
+msgid "rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7736
+#, no-c-format
+msgid "Raster on which the user function is evaluated."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7739
+#, no-c-format
+msgid "band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7740
+#, no-c-format
+msgid "Band number of the raster to be evaluated. Default to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7744
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL. If not passed "
+"in or set to NULL, will default to the pixeltype of the <varname>rast</"
+"varname>. Results are truncated if they are larger than what is allowed for "
+"the pixeltype."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7747
+#, no-c-format
+msgid "ngbwidth"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7748
+#, no-c-format
+msgid "The width of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7751
+#, no-c-format
+msgid "ngbheight"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7752
+#, no-c-format
+msgid "The height of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7755
+#, no-c-format
+msgid "onerastngbuserfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7756
+#, no-c-format
+msgid ""
+"PLPGSQL/psql user function to apply to neighborhood pixels of a single band "
+"of a raster. The first element is a 2-dimensional array of numbers "
+"representing the rectangular pixel neighborhood"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7759
+#, no-c-format
+msgid "nodatamode"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7761
+#, no-c-format
+msgid ""
+"Defines what value to pass to the function for a neighborhood pixel that is "
+"nodata or NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7762
+#, no-c-format
+msgid ""
+"'ignore': any NODATA values encountered in the neighborhood are ignored by "
+"the computation -- this flag must be sent to the user callback function, and "
+"the user function decides how to ignore it."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7763
+#, no-c-format
+msgid ""
+"'NULL': any NODATA values encountered in the neighborhood will cause the "
+"resulting pixel to be NULL -- the user callback function is skipped in this "
+"case."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7764
+#, no-c-format
+msgid ""
+"'value': any NODATA values encountered in the neighborhood are replaced by "
+"the reference pixel (the one in the center of the neighborhood). Note that "
+"if this value is NODATA, the behavior is the same as 'NULL' (for the "
+"affected neighborhood)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7768
+#, no-c-format
+msgid "args"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7769
+#, no-c-format
+msgid "Arguments to pass into the user function."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7779
+#, no-c-format
+msgid ""
+"Examples utilize the katrina raster loaded as a single tile described in "
+"<ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">http://"
+"trac.osgeo.org/gdal/wiki/frmts_wtkraster.html</ulink> and then prepared in "
+"the <xref linkend=\"RT_ST_Rescale\"/> examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7781
+#, no-c-format
+msgid ""
+"--\n"
+"-- A simple 'callback' user function that averages up all the values in a "
+"neighborhood.\n"
+"--\n"
+"CREATE OR REPLACE FUNCTION rast_avg(matrix float[][], nodatamode text, "
+"variadic args text[])\n"
+"    RETURNS float AS\n"
+"    $$\n"
+"    DECLARE\n"
+"                _matrix float[][];\n"
+"        x1 integer;\n"
+"        x2 integer;\n"
+"        y1 integer;\n"
+"        y2 integer;\n"
+"        sum float;\n"
+"    BEGIN\n"
+"                _matrix := matrix;\n"
+"        sum := 0;\n"
+"        FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP\n"
+"            FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP\n"
+"                sum := sum + _matrix[x][y];\n"
+"            END LOOP;\n"
+"        END LOOP;\n"
+"        RETURN (sum*1.0/(array_upper(matrix,1)*array_upper(matrix,2) ))::"
+"integer ;\n"
+"    END;\n"
+"    $$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"    \n"
+"-- now we apply to our raster averaging pixels within 2 pixels of each other "
+"in X and Y direction --\n"
+"SELECT ST_MapAlgebraFctNgb(rast, 1,  '8BUI', 4,4,\n"
+"                'rast_avg(float[][], text, text[])'::regprocedure, 'NULL', "
+"NULL) As nn_with_border\n"
+"        FROM katrinas_rescaled \n"
+"        limit 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7795
+#, no-c-format
+msgid "First band of our raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7809
+#, no-c-format
+msgid "new raster after averaging pixels withing 4x4 pixels of each other"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7824
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraExpr\"/>, <xref linkend=\"RT_ST_Rescale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7834
+#, no-c-format
+msgid "ST_Reclass"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7835
+#, no-c-format
+msgid ""
+"Creates a new raster composed of band types reclassified from original. The "
+"nband is the band to be changed. If nband is not specified assumed to be 1. "
+"All other bands are returned unchanged. Use case: convert a 16BUI band to a "
+"8BUI and so forth for simpler rendering as viewable formats."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7839
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>reclassarg[] </type> <parameter>VARIADIC reclassargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7867
+#, no-c-format
+msgid ""
+"Creates a new raster formed by applying a valid PostgreSQL algebraic "
+"operation defined by the <varname>reclassexpr</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified band 1 "
+"is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster. Bands not designated will come back "
+"unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid "
+"reclassification expressions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7869
+#, no-c-format
+msgid ""
+"The bands of the new raster will have pixel type of <varname>pixeltype</"
+"varname>. If <varname>reclassargset</varname> is passed in then each "
+"reclassarg defines behavior of each band generated."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7875
+#, no-c-format
+msgid "Examples Basic"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7876
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 2 is converted from 8BUI to "
+"4BUI and all values from 101-254 are set to nodata value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7877
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN reclass_rast raster;\n"
+"UPDATE dummy_rast SET reclass_rast = ST_Reclass(rast,2,'0-87:1-10, "
+"88-100:11-15, 101-254:0-0', '4BUI',0) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row, ST_Value(rast,2,i,j) As origval, \n"
+"    ST_Value(reclass_rast, 2, i, j) As reclassval, \n"
+"    ST_Value(reclass_rast, 2, i, j, false) As reclassval_include_nodata\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" col | row | origval | reclassval | reclassval_include_nodata\n"
+"-----+-----+---------+------------+---------------------------\n"
+"   1 |   1 |      78 |          9 |                         9\n"
+"   2 |   1 |      98 |         14 |                        14\n"
+"   3 |   1 |     122 |            |                         0\n"
+"   1 |   2 |      96 |         14 |                        14\n"
+"   2 |   2 |     118 |            |                         0\n"
+"   3 |   2 |     180 |            |                         0\n"
+"   1 |   3 |      99 |         15 |                        15\n"
+"   2 |   3 |     112 |            |                         0\n"
+"   3 |   3 |     169 |            |                         0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7881
+#, no-c-format
+msgid "Example: Advanced using multiple reclassargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7883
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 1,2,3 is converted to "
+"1BB,4BUI, 4BUI respectively and reclassified. Note this uses the variadic "
+"<varname>reclassarg</varname> argument which can take as input an indefinite "
+"number of reclassargs (theoretically as many bands as you have)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7884
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET reclass_rast = \n"
+"    ST_Reclass(rast,\n"
+"        ROW(2,'0-87]:1-10, (87-100]:11-15, (101-254]:0-0', '4BUI',NULL)::"
+"reclassarg,\n"
+"        ROW(1,'0-253]:1, 254:0', '1BB', NULL)::reclassarg,\n"
+"        ROW(3,'0-70]:1, (70-86:2, [86-150):3, [150-255:4', '4BUI', NULL)::"
+"reclassarg\n"
+"        ) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row,ST_Value(rast,1,i,j) As ov1,  "
+"ST_Value(reclass_rast, 1, i, j) As rv1, \n"
+"    ST_Value(rast,2,i,j) As ov2, ST_Value(reclass_rast, 2, i, j) As rv2, \n"
+"    ST_Value(rast,3,i,j) As ov3, ST_Value(reclass_rast, 3, i, j) As rv3\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+"col | row | ov1 | rv1 | ov2 | rv2 | ov3 | rv3\n"
+"----+-----+-----+-----+-----+-----+-----+-----\n"
+"  1 |   1 | 253 |   1 |  78 |   9 |  70 |   1\n"
+"  2 |   1 | 254 |   0 |  98 |  14 |  86 |   3\n"
+"  3 |   1 | 253 |   1 | 122 |   0 | 100 |   3\n"
+"  1 |   2 | 253 |   1 |  96 |  14 |  80 |   2\n"
+"  2 |   2 | 254 |   0 | 118 |   0 | 108 |   3\n"
+"  3 |   2 | 254 |   0 | 180 |   0 | 162 |   4\n"
+"  1 |   3 | 250 |   1 |  99 |  15 |  90 |   3\n"
+"  2 |   3 | 254 |   0 | 112 |   0 | 108 |   3\n"
+"  3 |   3 | 254 |   0 | 169 |   0 | 175 |   4"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7888
+#, no-c-format
+msgid ""
+"Example: Advanced Map a single band 32BF raster to multiple viewable bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7889
+#, no-c-format
+msgid ""
+"Create a new 3 band (8BUI,8BUI,8BUI viewable raster) from a raster that has "
+"only one 32bf band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7890
+#, no-c-format
+msgid ""
+"ALTER TABLE wind ADD COLUMN rast_view raster;\n"
+"UPDATE wind \n"
+"        set rast_view = ST_AddBand( NULL,\n"
+"        ARRAY[\n"
+"                ST_Reclass(rast, 1,'0.1-10]:1-10,9-10]:11,(11-33:0'::text, "
+"'8BUI'::text,0),\n"
+"                ST_Reclass(rast,1, '11-33):0-255,[0-32:0,(34-1000:0'::text, "
+"'8BUI'::text,0),  \n"
+"                ST_Reclass(rast,1,'0-32]:0,(32-100:100-255'::text, '8BUI'::"
+"text,0)\n"
+"                ]\n"
+"                );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7895
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Band\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, "
+"<xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"reclassarg\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7908
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7909
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"1 or more bands."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7914
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7920
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7927
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7934
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7941
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7953
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"at least one band. The resulting raster's extent is the extent of the whole "
+"set. In the case of intersection, the resulting value is defined by "
+"<varname>uniontype</varname> which is one of the following: LAST (default), "
+"FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7956
+#, no-c-format
+msgid ""
+"In order for rasters to be unioned, they most all have the same alignment. "
+"Use <xref linkend=\"RT_ST_SameAlignment\"/> and <xref linkend="
+"\"RT_ST_NotSameAlignmentReason\"/> for more details and help. One way to fix "
+"alignment issues is to use <xref linkend=\"RT_ST_Resample\"/> and use the "
+"same reference raster for alignment."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7960
+#, no-c-format
+msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7961
+#, no-c-format
+msgid "Availability: 2.1.0 ST_Union(rast, unionarg) variant was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7962
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast) (variant 1) unions all bands of all input "
+"rasters. Prior versions of PostGIS assumed the first band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7963
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast, uniontype) (variant 4) unions all bands of "
+"all input rasters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7966
+#, no-c-format
+msgid "Examples: Reconstitute a single band chunked raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7967
+#, no-c-format
+msgid ""
+"-- this creates a single band from first band of raster tiles\n"
+"-- that form the original file system tile\n"
+"SELECT filename, ST_Union(rast,1) As file_rast\n"
+"FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7971 reference_raster.xml:7975
+#, no-c-format
+msgid ""
+"Examples: Return a multi-band raster that is the union of tiles intersecting "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7972
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"-- Note: In 2.0, this would have just returned a single band raster\n"
+"-- , new union works on all bands by default\n"
+"-- this is equivalent to unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), "
+"ROW(3, 'LAST')]::unionarg[]\n"
+"SELECT ST_Union(rast)\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7976
+#, no-c-format
+msgid ""
+"Here we use the longer syntax if we only wanted a subset of bands or we want "
+"to change order of bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7977
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"SELECT ST_Union(rast,ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::"
+"unionarg[])\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7983
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7996
+#, no-c-format
+msgid "Built-in Map Algebra Callback Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8000
+#, no-c-format
+msgid "ST_Distinct4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8001
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the number of unique pixel values "
+"in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8005
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Distinct4ma</function></"
+"funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Distinct4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][] </type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8025
+#, no-c-format
+msgid ""
+"Calculate the number of unique pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8028 reference_raster.xml:8167
+#: reference_raster.xml:8242 reference_raster.xml:8327
+#: reference_raster.xml:8452 reference_raster.xml:8523
+#: reference_raster.xml:8598
+#, no-c-format
+msgid ""
+"Variant 1 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8032 reference_raster.xml:8171
+#: reference_raster.xml:8246 reference_raster.xml:8333
+#: reference_raster.xml:8456 reference_raster.xml:8527
+#: reference_raster.xml:8602
+#, no-c-format
+msgid ""
+"Variant 2 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8038 reference_raster.xml:8177
+#: reference_raster.xml:8252 reference_raster.xml:8339
+#: reference_raster.xml:8462 reference_raster.xml:8533
+#: reference_raster.xml:8608
+#, no-c-format
+msgid ""
+"Use of Variant 1 is discouraged since <xref linkend=\"RT_ST_MapAlgebraFctNgb"
+"\"/> has been deprecated as of 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8044 reference_raster.xml:8183
+#: reference_raster.xml:8258 reference_raster.xml:8345
+#: reference_raster.xml:8468 reference_raster.xml:8539
+#: reference_raster.xml:8614
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8050
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8056 reference_raster.xml:8480
+#: reference_raster.xml:8551
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8071
+#, no-c-format
+msgid "ST_InvDistWeight4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8072
+#, no-c-format
+msgid ""
+"Raster processing function that interpolates a pixel's value from the "
+"pixel's neighborhood."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8077
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8089
+#, no-c-format
+msgid ""
+"Calculate an interpolated value for a pixel using the Inverse Distance "
+"Weighted method."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8091
+#, no-c-format
+msgid ""
+"There are two optional parameters that can be passed through "
+"<varname>userargs</varname>. The first parameter is the power factor "
+"(variable k in the equation below) between 0 and 1 used in the Inverse "
+"Distance Weighted equation. If not specified, default value is 1. The second "
+"parameter is the weight percentage applied only when the value of the pixel "
+"of interest is included with the interpolated value from the neighborhood. "
+"If not specified and the pixel of interest has a value, that value is "
+"returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8095
+#, no-c-format
+msgid "The basic inverse distance weight equation is:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8104
+#, no-c-format
+msgid "k = power factor, a real number between 0 and 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8113 reference_raster.xml:8398
+#, no-c-format
+msgid ""
+"This function is a specialized callback function for use as a callback "
+"parameter to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8121 reference_raster.xml:8406
+#, no-c-format
+msgid "-- NEEDS EXAMPLE"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8126
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8135
+#, no-c-format
+msgid "ST_Max4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8136
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the maximum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8140
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Max4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Max4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8160
+#, no-c-format
+msgid "Calculate the maximum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8162 reference_raster.xml:8237
+#: reference_raster.xml:8322 reference_raster.xml:8447
+#: reference_raster.xml:8593
+#, no-c-format
+msgid ""
+"For Variant 2, a substitution value for NODATA pixels can be specified by "
+"passing that value to userargs."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8189
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      254\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8195
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8210
+#, no-c-format
+msgid "ST_Mean4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8211
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the mean pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8215
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Mean4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8235
+#, no-c-format
+msgid "Calculate the mean pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8264
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_mean4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8271
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"              ST_MapAlgebra(rast, 1, 'st_mean4ma(double precision[][][], "
+"integer[][], text[])'::regprocedure,'32BF', 'FIRST', NULL, 1, 1)\n"
+"       ,  2, 2)\n"
+"  FROM dummy_rast \n"
+"   WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8277
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8291
+#, no-c-format
+msgid "ST_Min4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8292
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the minimum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8298
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Min4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Min4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8318
+#, no-c-format
+msgid "Calculate the minimum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8351
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      250\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8356
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8371
+#, no-c-format
+msgid "ST_MinDist4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8372
+#, no-c-format
+msgid ""
+"Raster processing function that returns the minimum distance (in number of "
+"pixels) between the pixel of interest and a neighboring pixel with value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8377
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8389
+#, no-c-format
+msgid ""
+"Return the shortest distance (in number of pixels) between the pixel of "
+"interest and the closest pixel with value in the neighborhood."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8392
+#, no-c-format
+msgid ""
+"The intent of this function is to provide an informative data point that "
+"helps infer the usefulness of the pixel of interest's interpolated value "
+"from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is "
+"particularly useful when the neighborhood is sparsely populated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8411
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8420
+#, no-c-format
+msgid "ST_Range4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8421
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the range of pixel values in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8425
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Range4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Range4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8445
+#, no-c-format
+msgid "Calculate the range of pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8474
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        4\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8495
+#, no-c-format
+msgid "ST_StdDev4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8496
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the standard deviation of pixel "
+"values in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8500
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_StdDev4ma</function></funcdef> <paramdef><type>double "
+"precision[][][]</type> <parameter>value</parameter></paramdef> "
+"<paramdef><type>integer[][] </type> <parameter>pos</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8520
+#, no-c-format
+msgid ""
+"Calculate the standard deviation of pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8545
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_stddev4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 1.30170822143555\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8566
+#, no-c-format
+msgid "ST_Sum4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8567
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the sum of all pixel values in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8571
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Sum4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8591
+#, no-c-format
+msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8620
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |     2279\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8626
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:8642
+#, no-c-format
+msgid "DEM (Elevation)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8646
+#, no-c-format
+msgid "ST_Aspect"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8647
+#, no-c-format
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8650
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8675
+#, no-c-format
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the aspect equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8677
+#, no-c-format
+msgid ""
+"<varname>units</varname> indicates the units of the aspect. Possible values "
+"are: RADIANS, DEGREES (default)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8681
+#, no-c-format
+msgid ""
+"When <varname>units</varname> = RADIANS, values are between 0 and 2 * pi "
+"radians measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8685
+#, no-c-format
+msgid ""
+"When <varname>units</varname> = DEGREES, values are between 0 and 360 "
+"degrees measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8689
+#, no-c-format
+msgid "If slope of pixel is zero, aspect of pixel is -1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8694
+#, no-c-format
+msgid ""
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Aspect_Images.html"
+"\">ERDAS Field Guide - Aspect Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8700 reference_raster.xml:8796
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional "
+"<varname>interpolate_nodata</varname> function parameter"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8701 reference_raster.xml:8925
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, return values were in radians. Now, return "
+"values default to degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8706
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Aspect(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                    st_dumpvalues                                                                   \n"
+"                                  \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"----------------------------------\n"
+" (1,\"{{315,341.565063476562,0,18.4349479675293,45},"
+"{288.434936523438,315,0,45,71.5650482177734},{270,270,-1,90,90},"
+"{251.565048217773,225,180,135,108.434951782227},{225,198.43495178\n"
+"2227,180,161.565048217773,135}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8712 reference_raster.xml:8809
+#: reference_raster.xml:8937
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage. This query only works with "
+"PostgreSQL 9.1 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8714
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Aspect(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8719
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8732
+#, no-c-format
+msgid "ST_HillShade"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8733
+#, no-c-format
+msgid ""
+"Returns the hypothetical illumination of an elevation raster band using "
+"provided azimuth, altitude, brightness and scale inputs."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8736
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_HillShade</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>azimuth=315</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>altitude=45</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>max_bright=255</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_HillShade</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>azimuth=315</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>altitude=45</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>max_bright=255</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scale=1.0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8767
+#, no-c-format
+msgid ""
+"Returns the hypothetical illumination of an elevation raster band using the "
+"azimuth, altitude, brightness, and scale inputs. Utilizes map algebra and "
+"applies the hill shade equation to neighboring pixels. Return pixel values "
+"are between 0 and 255."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8769
+#, no-c-format
+msgid ""
+"<varname>azimuth</varname> is a value between 0 and 360 degrees measured "
+"clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8773
+#, no-c-format
+msgid ""
+"<varname>altitude</varname> is a value between 0 and 90 degrees where 0 "
+"degrees is at the horizon and 90 degrees is directly overhead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8777
+#, no-c-format
+msgid ""
+"<varname>max_bright</varname> is a value between 0 and 255 with 0 as no "
+"brightness and 255 as max brightness."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8781 reference_raster.xml:8909
+#, no-c-format
+msgid ""
+"<varname>scale</varname> is the ratio of vertical units to horizontal. For "
+"Feet:LatLon use scale=370400, for Meters:LatLon use scale=111120."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8785
+#, no-c-format
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the hillshade illumination."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8790
+#, no-c-format
+msgid ""
+"For more information about Hillshade, please refer to <ulink url=\"http://"
+"webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How%20Hillshade"
+"%20works\">How hillshade works</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8797
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, azimuth and altitude were expressed in "
+"radians. Now, azimuth and altitude are expressed in degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8803
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Hillshade(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                                       st_dumpvalues                                                \n"
+"                                                                       \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"-----------------------------------------------------------------------\n"
+" (1,\"{{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,251.32763671875,220.749786376953,147.224319458008,NULL},"
+"{NULL,220.749786376953,180.312225341797,67.7497863769531,NULL},"
+"{NULL,147.224319458008\n"
+",67.7497863769531,43.1210060119629,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8811
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Hillshade(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8816
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_Aspect\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8829
+#, no-c-format
+msgid "ST_Roughness"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8830
+#, no-c-format
+msgid "Returns a raster with the calculated \"roughness\" of a DEM."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8835
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Roughness</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype="
+"\"32BF\"</parameter> </paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type> <parameter> interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8848
+#, no-c-format
+msgid ""
+"Calculates the \"roughness\" of a DEM, by subtracting the maximum from the "
+"minimum for a given area."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8854 reference_raster.xml:8987
+#: reference_raster.xml:9038
+#, no-c-format
+msgid "-- needs examples"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8859
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8872
+#, no-c-format
+msgid "ST_Slope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8873
+#, no-c-format
+msgid ""
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8876
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Slope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Slope</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>units=DEGREES</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8903
+#, no-c-format
+msgid ""
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the slope equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8905
+#, no-c-format
+msgid ""
+"<varname>units</varname> indicates the units of the slope. Possible values "
+"are: RADIANS, DEGREES (default), PERCENT."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8913
+#, no-c-format
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the surface slope."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8918
+#, no-c-format
+msgid ""
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Slope_Images.html\">ERDAS "
+"Field Guide - Slope Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8924
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional <varname>units</"
+"varname>, <varname>scale</varname>, <varname>interpolate_nodata</varname> "
+"function parameters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8931
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Slope(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                            st_dumpvalues                                                                                                                                           \n"
+"                                                                     \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"---------------------------------------------------------------------\n"
+" (1,"
+"\"{{10.0249881744385,21.5681285858154,26.5650520324707,21.5681285858154,10.0249881744385},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},\n"
+"{26.5650520324707,36.8698959350586,0,36.8698959350586,26.5650520324707},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},"
+"{10.0249881744385,21.\n"
+"5681285858154,26.5650520324707,21.5681285858154,10.0249881744385}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8939
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Slope(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8944
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8957
+#, no-c-format
+msgid "ST_TPI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8958
+#, no-c-format
+msgid "Returns a raster with the calculated Topographic Position Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8963
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_TPI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8977
+#, no-c-format
+msgid ""
+"Calculates the Topographic Position Index, which is defined as the folcal "
+"mean with radius of one minus the center cell."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8980 reference_raster.xml:9030
+#, no-c-format
+msgid "This function only supports a focalmean radius of one."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8992
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9005
+#, no-c-format
+msgid "ST_TRI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9006
+#, no-c-format
+msgid "Returns a raster with the calculated Terrain Ruggedness Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9011
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_TRI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9025
+#, no-c-format
+msgid ""
+"Terrain Ruggedness Index is calculated by comparing a central pixel with its "
+"neighbors, taking the absolute values of the differences, and averaging the "
+"result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9043
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9057
+#, no-c-format
+msgid "Raster to Geometry"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9061
+#, no-c-format
+msgid "Box3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9062
+#, no-c-format
+msgid "Returns the box 3d representation of the enclosing box of the raster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9067
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9077
+#, no-c-format
+msgid "Returns the box representing the extent of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9078
+#, no-c-format
+msgid ""
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</"
+"varname>, <varname>MAXY</varname>))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9082
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of "
+"box3d. Since box2d is a deprecated type, this was changed to box3d."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9088
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        rid,\n"
+"        Box3D(rast) AS rastbox\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid |        rastbox\n"
+"----+-------------------------------------------------\n"
+"1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
+"2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9101
+#, no-c-format
+msgid "ST_ConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9102
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster including pixel values equal "
+"to BandNoDataValue. For regular shaped and non-skewed rasters, this gives "
+"the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9109
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9119
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster including the NoDataBandValue "
+"band pixels. For regular shaped and non-skewed rasters, this gives more or "
+"less the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9123
+#, no-c-format
+msgid ""
+"ST_Envelope floors the coordinates and hence add a little buffer around the "
+"raster so the answer is subtly different from ST_ConvexHull which does not "
+"floor."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9130
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram "
+"of this."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9131
+#, no-c-format
+msgid ""
+"-- Note envelope and convexhull are more or less the same\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 "
+"0,20 60,0 60,0 0))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9132
+#, no-c-format
+msgid ""
+"-- now we skew the raster \n"
+"-- note how the convex hull and envelope are now different\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
+"        FROM dummy_rast WHERE rid=1) As foo;\n"
+"        \n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 "
+"0,22 61,0 61,0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9138
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MinConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/"
+">, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9149
+#, no-c-format
+msgid "ST_DumpAsPolygons"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9150
+#, no-c-format
+msgid ""
+"Returns a set of geomval (geom,val) rows, from a given raster band. If no "
+"band number is specified, band num defaults to 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9155
+#, no-c-format
+msgid ""
+"<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9166
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of geomval rows, "
+"formed by a geometry (geom) and a pixel band value (val). Each polygon is "
+"the union of all pixels for that band that have the same pixel value denoted "
+"by val."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9170
+#, no-c-format
+msgid ""
+"ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a "
+"GROUP BY in that it creates new rows. For example it can be used to expand a "
+"single raster into multiple POLYGONS/MULTIPOLYGONS."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9174
+#, no-c-format
+msgid "Availability: Requires GDAL 1.7 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9175
+#, no-c-format
+msgid ""
+"If there is a no data value set for a band, pixels with that value will not "
+"be returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9176
+#, no-c-format
+msgid ""
+"If you only care about count of pixels with a given value in a raster, it is "
+"faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9178
+#, no-c-format
+msgid ""
+"This is different than ST_PixelAsPolygons where one geometry is returned for "
+"each pixel regardless of pixel value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9186
+#, no-c-format
+msgid ""
+"SELECT val, ST_AsText(geom) As geomwkt\n"
+"FROM (\n"
+"SELECT (ST_DumpAsPolygons(rast)).*\n"
+"FROM dummy_rast \n"
+"WHERE rid = 2\n"
+") As foo\n"
+"WHERE val BETWEEN 249 and 251\n"
+"ORDER BY val;\n"
+"\n"
+" val |                                                       geomwkt\n"
+"-----"
+"+--------------------------------------------------------------------------\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 "
+"5793243.85,\n"
+"                 3427928 5793243.95,3427927.95 5793243.95))\n"
+" 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 "
+"5793243.85,\n"
+"                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
+" 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 "
+"5793243.75,\n"
+"                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
+" 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 "
+"5793243.8,\n"
+"                 3427927.8 5793243.85,3427927.75 5793243.85))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9191
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref "
+"linkend=\"RT_ST_ValueCount\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9202
+#, no-c-format
+msgid "ST_Envelope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9203
+#, no-c-format
+msgid "Returns the polygon representation of the extent of the raster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9208
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9218
+#, no-c-format
+msgid ""
+"Returns the polygon representation of the extent of the raster in spatial "
+"coordinate units defined by srid. It is a float8 minimum bounding box "
+"represented as a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9220
+#, no-c-format
+msgid ""
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9232
+#, no-c-format
+msgid ""
+"SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |                                         envgeomwkt\n"
+"-----+--------------------------------------------------------------------\n"
+"   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
+"   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
+"                   3427928 5793244,3427927 5793244, 3427927 5793243))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9237
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9247
+#, no-c-format
+msgid "ST_MinConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9248
+#, no-c-format
+msgid "Return the convex hull geometry of the raster excluding NODATA pixels."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9255
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=NULL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9266
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster excluding NODATA pixels. If "
+"<varname>nband</varname> is NULL, all bands of the raster are considered."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9275
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_SetValues(\n"
+"                                ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(9, "
+"9, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0), 2, '8BUI', 1, 0),\n"
+"                                1, 1, 1,\n"
+"                                ARRAY[\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 1],\n"
+"                                        [0, 0, 0, 1, 1, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0]\n"
+"                                ]::double precision[][]\n"
+"                        ),\n"
+"                        2, 1, 1,\n"
+"                        ARRAY[\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [1, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 1, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 1, 0, 0, 0, 0, 0, 0]\n"
+"                        ]::double precision[][]\n"
+"                ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_AsText(ST_ConvexHull(rast)) AS hull,\n"
+"        ST_AsText(ST_MinConvexHull(rast)) AS mhull,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 1)) AS mhull_1,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 2)) AS mhull_2\n"
+"FROM foo\n"
+"\n"
+"               hull               |                mhull                "
+"|               mhull_1               |               "
+"mhull_2               \n"
+"----------------------------------+-------------------------------------"
+"+-------------------------------------"
+"+-------------------------------------\n"
+" POLYGON((0 0,9 0,9 -9,0 -9,0 0)) | POLYGON((0 -3,9 -3,9 -9,0 -9,0 -3)) | "
+"POLYGON((3 -3,9 -3,9 -6,3 -6,3 -3)) | POLYGON((0 -3,6 -3,6 -9,0 -9,0 -3))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9280
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/>, "
+"<xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9291
+#, no-c-format
+msgid "ST_Polygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9292
+#, no-c-format
+msgid ""
+"Returns a multipolygon geometry formed by the union of pixels that have a "
+"pixel value that is not no data value. If no band number is specified, band "
+"num defaults to 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9297
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9307
+#, no-c-format
+msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9308
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning "
+"multipolygon is ensured to be valid."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9309
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions would sometimes return a polygon, changed "
+"to always return multipolygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9314
+#, no-c-format
+msgid ""
+"-- by default no data band value is 0 or not set, so polygon will return a "
+"square polygon        \n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"--------------------------------------------\n"
+"MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 "
+"5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
+"                 \n"
+"                 \n"
+"-- now we change the no data value of first band\n"
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
+"WHERE rid = 2;\n"
+"SELECt rid, ST_BandNoDataValue(rast)\n"
+"from dummy_rast where rid = 2;\n"
+"\n"
+"-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------------------------------\n"
+"MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 "
+"5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 "
+"5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 "
+"5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 "
+"5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),"
+"((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 "
+"5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 "
+"5793244,3427927.8 5793243.9,3427927.8 5793243.85,3427927.85 "
+"5793243.85,3427927.85 5793243.8,3427927.85 5793243.75,3427927.8 "
+"5793243.75)))\n"
+"\n"
+"-- Or if you want the no data value different for just one time\n"
+"\n"
+"SELECT ST_AsText(\n"
+"        ST_Polygon(\n"
+"                ST_SetBandNoDataValue(rast,1,252)\n"
+"                )\n"
+"        ) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid =2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------\n"
+"MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 "
+"5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 "
+"5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 "
+"5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 "
+"5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 "
+"5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 "
+"5793243.9,3427927.9 5793243.9)))"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9331
+#, no-c-format
+msgid "Raster Operators"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9334
+#, no-c-format
+msgid "&&"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9336
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding "
+"box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9340
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> "
+"</paramdef> <paramdef> <type>geometry </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>&"
+"&</function></funcdef> <paramdef> <type>geometry </type> <parameter>B</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>A</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9382
+#, no-c-format
+msgid ""
+"The <varname>&&</varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of raster/geometr A intersects the bounding box of "
+"raster/geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9384 reference_raster.xml:9636
+#: reference_raster.xml:10646 reference_raster.xml:10747
+#: reference_raster.xml:10840
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"rasters."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9393
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As "
+"intersect\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B LIMIT 3;\n"
+"\n"
+" a_rid | b_rid | intersect\n"
+"-------+-------+---------\n"
+"     2 |     2 | t\n"
+"     2 |     3 | f\n"
+"     2 |     1 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9399
+#, no-c-format
+msgid "&<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9401
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is to the left of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9406
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9427
+#, no-c-format
+msgid ""
+"The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of raster A overlaps or is to the left of the bounding box "
+"of raster B, or more accurately, overlaps or is NOT to the right of the "
+"bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9431 reference_raster.xml:9476
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9438
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast &< B.rast As overleft\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+"a_rid | b_rid | overleft\n"
+"------+-------+----------\n"
+"    2 |     2 | t\n"
+"    2 |     3 | f\n"
+"    2 |     1 | f\n"
+"    3 |     2 | t\n"
+"    3 |     3 | t\n"
+"    3 |     1 | f\n"
+"    1 |     2 | t\n"
+"    1 |     3 | t\n"
+"    1 |     1 | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9444
+#, no-c-format
+msgid "&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9446
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is to the right of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9451
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9472
+#, no-c-format
+msgid ""
+"The <varname>&></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of raster A overlaps or is to the right of the bounding box "
+"of raster B, or more accurately, overlaps or is NOT to the left of the "
+"bounding box of raster B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9483
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast &> B.rast As overright\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+" a_rid | b_rid | overright\n"
+"-------+-------+----------\n"
+"     2 |     2 | t\n"
+"     2 |     3 | t\n"
+"     2 |     1 | t\n"
+"     3 |     2 | f\n"
+"     3 |     3 | t\n"
+"     3 |     1 | f\n"
+"     1 |     2 | f\n"
+"     1 |     3 | t\n"
+"     1 |     1 | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9489
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9491
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9496
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>=</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9517
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B. "
+"PostgreSQL uses the =, <, and > operators defined for rasters to "
+"perform internal orderings and comparison of rasters (ie. in a GROUP BY or "
+"ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9521
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"rasters. Use <xref linkend=\"RT_Raster_Same\"/> instead. This operator "
+"exists mostly so one can group by the raster column."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9537
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9539
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's. "
+"Uses double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9543
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9586
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contained by bounding box of raster/"
+"geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9589 reference_raster.xml:9709
+#, no-c-format
+msgid "This operand will use spatial indexes on the rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9591
+#, no-c-format
+msgid "Availability: 2.0.0 raster @ raster, raster @ geometry introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9592
+#, no-c-format
+msgid "Availability: 2.0.5 geometry @ raster introduced"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9605
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9607
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9612
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9633
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9645
+#, no-c-format
+msgid ""
+"Very useful usecase is for taking two sets of single band rasters that are "
+"of the same chunk but represent different themes and creating a multi-band "
+"raster"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9646
+#, no-c-format
+msgid ""
+"SELECT ST_AddBand(prec.rast, alt.rast) As new_rast\n"
+"    FROM prec INNER JOIN alt ON (prec.rast ~= alt.rast);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9651
+#, no-c-format
+msgid ", <xref linkend=\"RT_Raster_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9657
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9659
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contains B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9663
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9706
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contains bounding box of raster/geometr "
+"B."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9724
+#, no-c-format
+msgid "Raster and Raster Band Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9728
+#, no-c-format
+msgid "ST_Contains"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9729
+#, no-c-format
+msgid ""
+"Return true if no points of raster rastB lie in the exterior of raster rastA "
+"and at least one point of the interior of rastB lies in the interior of "
+"rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9735
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Contains</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9774
+#, no-c-format
+msgid ""
+"Raster rastA contains rastB if and only if no points of rastB lie in the "
+"exterior of rastA and at least one point of the interior of rastB lies in "
+"the interior of rastA. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9779 reference_raster.xml:9872
+#: reference_raster.xml:9953 reference_raster.xml:10034
+#: reference_raster.xml:10244 reference_raster.xml:10328
+#: reference_raster.xml:10408
+#, no-c-format
+msgid ""
+"This function will make use of any indexes that may be available on the "
+"rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9785
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Contains(ST_Polygon(raster), geometry) or "
+"ST_Contains(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9791
+#, no-c-format
+msgid ""
+"ST_Contains() is the inverse of ST_Within(). So, ST_Contains(rastA, rastB) "
+"implies ST_Within(rastB, rastA)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9802
+#, no-c-format
+msgid ""
+"-- specified band numbers\n"
+"SELECT r1.rid, r2.rid, ST_Contains(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;\n"
+"\n"
+"NOTICE:  The first raster provided has no bands\n"
+" rid | rid | st_contains \n"
+"-----+-----+-------------\n"
+"   1 |   1 | \n"
+"   1 |   2 | f"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9804
+#, no-c-format
+msgid ""
+"-- no band numbers specified\n"
+"SELECT r1.rid, r2.rid, ST_Contains(r1.rast, r2.rast) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;\n"
+" rid | rid | st_contains \n"
+"-----+-----+-------------\n"
+"   1 |   1 | t\n"
+"   1 |   2 | f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9808
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9817
+#, no-c-format
+msgid "ST_ContainsProperly"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9818
+#, no-c-format
+msgid ""
+"Return true if rastB intersects the interior of rastA but not the boundary "
+"or exterior of rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9824
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_ContainsProperly</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_ContainsProperly</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </"
+"type> <parameter>rastB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9863
+#, no-c-format
+msgid ""
+"Raster rastA contains properly rastB if rastB intersects the interior of "
+"rastA but not the boundary or exterior of rastA. If the band number is not "
+"provided (or set to NULL), only the convex hull of the raster is considered "
+"in the test. If the band number is provided, only those pixels with value "
+"(not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9867
+#, no-c-format
+msgid "Raster rastA does not contain properly itself but does contain itself."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9878
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_ContainsProperly(ST_Polygon(raster), geometry) or "
+"ST_ContainsProperly(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9889
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_ContainsProperly(r1.rast, 1, r2.rast, 1) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_containsproperly \n"
+"-----+-----+---------------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9893
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Contains\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9902
+#, no-c-format
+msgid "ST_Covers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9903
+#, no-c-format
+msgid "Return true if no points of raster rastB lie outside raster rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9909
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9948
+#, no-c-format
+msgid ""
+"Raster rastA covers rastB if and only if no points of rastB lie in the "
+"exterior of rastA. If the band number is not provided (or set to NULL), only "
+"the convex hull of the raster is considered in the test. If the band number "
+"is provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9959
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Covers(ST_Polygon(raster), geometry) or "
+"ST_Covers(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9970
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Covers(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_covers \n"
+"-----+-----+-----------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9974
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_CoveredBy\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9983
+#, no-c-format
+msgid "ST_CoveredBy"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9984
+#, no-c-format
+msgid "Return true if no points of raster rastA lie outside raster rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9990
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10029
+#, no-c-format
+msgid ""
+"Raster rastA is covered by rastB if and only if no points of rastA lie in "
+"the exterior of rastB. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10040
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_CoveredBy(ST_Polygon(raster), geometry) or "
+"ST_CoveredBy(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10051
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_CoveredBy(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_coveredby \n"
+"-----+-----+--------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10055
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Covers\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10064
+#, no-c-format
+msgid "ST_Disjoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10065
+#, no-c-format
+msgid "Return true if raster rastA does not spatially intersect rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10071
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Disjoint</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Disjoint</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10110
+#, no-c-format
+msgid ""
+"Raster rastA and rastB are disjointed if they do not share any space "
+"together. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10115
+#, no-c-format
+msgid "This function does NOT use any indexes."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10121
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Disjoint(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10132
+#, no-c-format
+msgid ""
+"-- rid = 1 has no bands, hence the NOTICE and the NULL value for "
+"st_disjoint\n"
+"SELECT r1.rid, r2.rid, ST_Disjoint(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+"NOTICE:  The second raster provided has no bands\n"
+" rid | rid | st_disjoint \n"
+"-----+-----+-------------\n"
+"   2 |   1 | \n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10134
+#, no-c-format
+msgid ""
+"-- this time, without specifying band numbers\n"
+"SELECT r1.rid, r2.rid, ST_Disjoint(r1.rast, r2.rast) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_disjoint \n"
+"-----+-----+-------------\n"
+"   2 |   1 | t\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10147
+#, no-c-format
+msgid "ST_Intersects"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10148
+#, no-c-format
+msgid "Return true if raster rastA spatially intersects raster rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10152
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> </funcprototype> <funcprototype> "
+"<funcdef>boolean <function>ST_Intersects</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>rast</parameter> </paramdef> <paramdef> "
+"<type>integer </type> <parameter>nband</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>geommin</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Intersects</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rast</"
+"parameter> </paramdef> <paramdef> <type>geometry </type> <parameter>geommin</"
+"parameter> </paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry </type> <parameter>geommin</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10239
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially intersects raster rastB. If the band "
+"number is not provided (or set to NULL), only the convex hull of the raster "
+"is considered in the test. If the band number is provided, only those pixels "
+"with value (not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10249
+#, no-c-format
+msgid "Enhanced: 2.0.0 support raster/raster intersects was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10254
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 The behavior of the ST_Intersects(raster, geometry) variants "
+"changed to match that of ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10263
+#, no-c-format
+msgid ""
+"-- different bands of same raster\n"
+"SELECT ST_Intersects(rast, 2, rast, 3) FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" st_intersects \n"
+"---------------\n"
+" t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10268
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Disjoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10277
+#, no-c-format
+msgid "ST_Overlaps"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10278
+#, no-c-format
+msgid ""
+"Return true if raster rastA and rastB intersect but one does not completely "
+"contain the other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10284
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Overlaps</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10323
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially overlaps raster rastB. This means that "
+"rastA and rastB intersect but one does not completely contain the other. If "
+"the band number is not provided (or set to NULL), only the convex hull of "
+"the raster is considered in the test. If the band number is provided, only "
+"those pixels with value (not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10334
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Overlaps(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10345
+#, no-c-format
+msgid ""
+"-- comparing different bands of same raster\n"
+"SELECT ST_Overlaps(rast, 1, rast, 2) FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" st_overlaps \n"
+"-------------\n"
+" f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10357
+#, no-c-format
+msgid "ST_Touches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10358
+#, no-c-format
+msgid ""
+"Return true if raster rastA and rastB have at least one point in common but "
+"their interiors do not intersect."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10364
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Touches</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Touches</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10403
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially touches raster rastB. This means that "
+"rastA and rastB have at least one point in common but their interiors do not "
+"intersect. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10414
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Touches(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10425
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Touches(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_touches \n"
+"-----+-----+------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10437
+#, no-c-format
+msgid "ST_SameAlignment"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10439
+#, no-c-format
+msgid ""
+"Returns true if rasters have same skew, scale, spatial ref, and offset "
+"(pixels can be put on same grid without cutting into pixels) and false if "
+"they don't with notice detailing issue."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10443
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_SameAlignment</function></funcdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx1</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly1</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex1</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley1</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx1</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy1</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx2</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly2</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex2</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley2</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx2</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy2</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster set </type> <parameter>rastfield</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10522
+#, no-c-format
+msgid ""
+"Non-Aggregate version (Variants 1 and 2): Returns true if the two rasters "
+"(either provided directly or made using the values for upperleft, scale, "
+"skew and srid) have the same scale, skew, srid and at least one of any of "
+"the four corners of any pixel of one raster falls on any corner of the grid "
+"of the other raster. Returns false if they don't and a NOTICE detailing the "
+"alignment issue."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10526
+#, no-c-format
+msgid ""
+"Aggregate version (Variant 3): From a set of rasters, returns true if all "
+"rasters in the set are aligned. The ST_SameAlignment() function is an "
+"\"aggregate\" function in the terminology of PostgreSQL. That means that it "
+"operates on rows of data, in the same way the SUM() and AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10531
+#, no-c-format
+msgid "Enhanced: 2.1.0 addition of Aggegrate variant"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:10535
+#, no-c-format
+msgid "Examples: Rasters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10537
+#, no-c-format
+msgid ""
+"SELECT ST_SameAlignment(\n"
+"        ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"        ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0)\n"
+") as sm;\n"
+"\n"
+"sm\n"
+"----\n"
+"t"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10538
+#, no-c-format
+msgid ""
+"SELECT ST_SameAlignment(A.rast,b.rast)\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+" NOTICE:  The two rasters provided have different SRIDs\n"
+"NOTICE:  The two rasters provided have different SRIDs\n"
+" st_samealignment\n"
+"------------------\n"
+" t\n"
+" f\n"
+" f\n"
+" f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10542
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NotSameAlignmentReason\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10552
+#, no-c-format
+msgid "ST_NotSameAlignmentReason"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10553
+#, no-c-format
+msgid ""
+"<refpurpose>Returns text stating if rasters are aligned and if not aligned, "
+"a reason why.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:10558
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_NotSameAlignmentReason</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rastA</parameter></paramdef> "
+"<paramdef><type>raster </type><parameter>rastB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10568
+#, no-c-format
+msgid ""
+"<para>Returns text stating if rasters are aligned and if not aligned, a "
+"reason why.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10571
+#, no-c-format
+msgid ""
+"If there are several reasons why the rasters are not aligned, only one "
+"reason (the first test to fail) will be returned."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10581
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_SameAlignment(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        ),\n"
+"        ST_NotSameAlignmentReason(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        )\n"
+";\n"
+"\n"
+" st_samealignment |            st_notsamealignmentreason            \n"
+"------------------+-------------------------------------------------\n"
+" f                | The rasters have different scales on the X axis\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10586
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SameAlignment\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10595
+#, no-c-format
+msgid "ST_Within"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10596
+#, no-c-format
+msgid ""
+"Return true if no points of raster rastA lie in the exterior of raster rastB "
+"and at least one point of the interior of rastA lies in the interior of "
+"rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10602
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Within</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Within</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10641
+#, no-c-format
+msgid ""
+"Raster rastA is within rastB if and only if no points of rastA lie in the "
+"exterior of rastB and at least one point of the interior of rastA lies in "
+"the interior of rastB. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10652
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Within(ST_Polygon(raster), geometry) or "
+"ST_Within(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10658
+#, no-c-format
+msgid ""
+"ST_Within() is the inverse of ST_Contains(). So, ST_Within(rastA, rastB) "
+"implies ST_Contains(rastB, rastA)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10669
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Within(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_within \n"
+"-----+-----+-----------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10673
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Contains\"/>, <xref linkend=\"RT_ST_DWithin\"/>, "
+"<xref linkend=\"RT_ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10684
+#, no-c-format
+msgid "ST_DWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10685
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are within the specified distance of "
+"each other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10691
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>distance_of_srid</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> <paramdef> <type>double precision </"
+"type> <parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10738
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are within the specified distance of "
+"each other. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10742 reference_raster.xml:10835
+#, no-c-format
+msgid ""
+"The distance is specified in units defined by the spatial reference system "
+"of the rasters. For this function to make sense, the source rasters must "
+"both be of the same coordinate projection, having the same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10753
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_DWithin(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10764
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_DWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_dwithin \n"
+"-----+-----+------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10768
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10777
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10778
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are fully within the specified "
+"distance of each other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10784
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10831
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are fully within the specified "
+"distance of each other. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10846
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_DFullyWithin(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10857
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_DFullyWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_dfullywithin \n"
+"-----+-----+-----------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10861
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DWithin\"/>"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_sfcgal.xml.po b/doc/po/ko_KR/reference_sfcgal.xml.po
new file mode 100644
index 0000000..58ce384
--- /dev/null
+++ b/doc/po/ko_KR/reference_sfcgal.xml.po
@@ -0,0 +1,620 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:09+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: para
+#: reference_sfcgal.xml:5
+#, no-c-format
+msgid ""
+"SFCGAL is a C++ wrapper library around CGAL that provides advanced 2D and 3D "
+"functions. For robustness, geometry coordinates have an exact rational "
+"number representation."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:9
+#, no-c-format
+msgid ""
+"Installation instructions of the library can be found on SFCGAL home page "
+"<ulink url=\"http://www.sfcgal.org\">http://www.sfcgal.org</ulink>. To load "
+"the functions execute postgis/sfcgal.sql"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:15
+#, no-c-format
+msgid "SFCGAL Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:18
+#, no-c-format
+msgid "postgis_sfcgal_version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:20
+#, no-c-format
+msgid "Returns the version of SFCGAL in use"
+msgstr ""
+
+#. Tag: funcdef
+#: reference_sfcgal.xml:26
+#, no-c-format
+msgid "text <function>postgis_sfcgal_version</function>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:33 reference_sfcgal.xml:65 reference_sfcgal.xml:158
+#: reference_sfcgal.xml:218 reference_sfcgal.xml:247 reference_sfcgal.xml:276
+#: reference_sfcgal.xml:305 reference_sfcgal.xml:335 reference_sfcgal.xml:377
+#: reference_sfcgal.xml:405
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:35 reference_sfcgal.xml:67 reference_sfcgal.xml:160
+#: reference_sfcgal.xml:249 reference_sfcgal.xml:278 reference_sfcgal.xml:310
+#: reference_sfcgal.xml:337 reference_sfcgal.xml:379 reference_sfcgal.xml:407
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:36 reference_sfcgal.xml:68 reference_sfcgal.xml:161
+#: reference_sfcgal.xml:221 reference_sfcgal.xml:250 reference_sfcgal.xml:279
+#: reference_sfcgal.xml:311 reference_sfcgal.xml:338 reference_sfcgal.xml:380
+#: reference_sfcgal.xml:408
+#, no-c-format
+msgid "&sfcgal_required;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:37 reference_sfcgal.xml:69 reference_sfcgal.xml:162
+#: reference_sfcgal.xml:222 reference_sfcgal.xml:251 reference_sfcgal.xml:280
+#: reference_sfcgal.xml:312 reference_sfcgal.xml:339 reference_sfcgal.xml:381
+#: reference_sfcgal.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:38 reference_sfcgal.xml:70 reference_sfcgal.xml:163
+#: reference_sfcgal.xml:223 reference_sfcgal.xml:252 reference_sfcgal.xml:281
+#: reference_sfcgal.xml:340 reference_sfcgal.xml:382 reference_sfcgal.xml:410
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:39 reference_sfcgal.xml:71 reference_sfcgal.xml:164
+#: reference_sfcgal.xml:224 reference_sfcgal.xml:253 reference_sfcgal.xml:282
+#: reference_sfcgal.xml:341 reference_sfcgal.xml:383 reference_sfcgal.xml:411
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:47
+#, no-c-format
+msgid "ST_Extrude"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:49
+#, no-c-format
+msgid "Extrude a surface to a related volume"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:54
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Extrude</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>z</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:74 reference_sfcgal.xml:167 reference_sfcgal.xml:414
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:75
+#, no-c-format
+msgid ""
+"3D images were generated using the PostGIS <xref linkend=\"ST_AsX3D\"/> and "
+"rendering in HTML using <ulink url=\"http://www.x3dom.org\">X3Dom HTML "
+"Javascript redering library</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:82
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+"  50, 'quad_segs=2'),0,0,30);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:88
+#, no-c-format
+msgid "Original octagon formed from buffering point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:93
+#, no-c-format
+msgid ""
+"ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2'),0,0,30);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:99
+#, no-c-format
+msgid "Hexagon extruded 30 units along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:107
+#, no-c-format
+msgid "SELECT ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)')"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:113
+#, no-c-format
+msgid "Original linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Extrude(\n"
+" ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)'),0,0,10));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:124
+#, no-c-format
+msgid "LineString Extruded along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:134
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:143
+#, no-c-format
+msgid "ST_StraightSkeleton"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:145
+#, no-c-format
+msgid "Compute a straight skeleton from a geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:150
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:168
+#, no-c-format
+msgid ""
+"SELECT ST_StraightSkeleton(ST_GeomFromText('POLYGON (( 190 190, 10 190, 10 "
+"10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:179 reference_sfcgal.xml:453
+#, no-c-format
+msgid "Original polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:188
+#, no-c-format
+msgid "Straight Skeleton of polygon"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:203
+#, no-c-format
+msgid "ST_IsPlanar"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:205
+#, no-c-format
+msgid "Check if a surface is or not planar"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:210
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsPlanar</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:220
+#, no-c-format
+msgid ""
+"Availability: 2.2.0: This was documented in 2.1.0 but got accidentally left "
+"out in 2.1 release."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:232
+#, no-c-format
+msgid "ST_Orientation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:234
+#, no-c-format
+msgid "Determine surface orientation"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:239
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Orientation</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:261
+#, no-c-format
+msgid "ST_ForceLHR"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:263
+#, no-c-format
+msgid "Force LHR orientation"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:268
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:289
+#, no-c-format
+msgid "ST_MinkowskiSum"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:291
+#, no-c-format
+msgid "Performs Minkowski sum"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:296
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinkowskiSum</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:307
+#, no-c-format
+msgid ""
+"This function performs a 2D minkowski sum of a point, line or polygon with a "
+"polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:308
+#, no-c-format
+msgid ""
+"The first parameter can be any 2D geometry (point, linestring, polygon). If "
+"a 3D geometry is passed, it will be converted to 2D by forcing Z to 0, "
+"leading to possible cases of invalidity. The second parameter must be a 2D "
+"polygon."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:319
+#, no-c-format
+msgid "ST_3DIntersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:321
+#, no-c-format
+msgid "Perform 3D intersection"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:326
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DIntersection</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:345
+#, no-c-format
+msgid "Examples: 3D linestring and Polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:346
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(linestring, polygon)) As wkt\n"
+"FROM  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"              wkt\n"
+"--------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8)"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:348
+#, no-c-format
+msgid "Cube (closed Polyhedral Surface) and Polygon Z"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:349
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(\n"
+"                ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'), \n"
+"        'POLYGON Z ((0 0 0, 0 0 0.5, 0 0.5 0.5, 0 0.5 0, 0 0 0))'::geometry))"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:350
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),((0 0.5 0,0 0 0,0 0.5 0.5,0 0.5 0)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:352
+#, no-c-format
+msgid ""
+"Intersection of 2 solids that result in volumetric intersection is also a "
+"solid (ST_Dimension returns 3)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:353
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection( ST_Extrude(ST_Buffer('POINT(10 20)'::"
+"geometry,10,1),0,0,30),\n"
+" ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),2,0,10) ));"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:354
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE Z (((13.3333333333333 13.3333333333333 10,20 20 0,20 20 "
+"10,13.3333333333333 13.3333333333333 10)),\n"
+"         ((20 20 10,16.6666666666667 23.3333333333333 10,13.3333333333333 "
+"13.3333333333333 10,20 20 10)),\n"
+"         ((20 20 0,16.6666666666667 23.3333333333333 10,20 20 10,20 20 0)),\n"
+"         ((13.3333333333333 13.3333333333333 10,10 10 0,20 20 "
+"0,13.3333333333333 13.3333333333333 10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,12 28 10,13.3333333333333 "
+"13.3333333333333 10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((20 20 0,9.99999999999995 30 0,16.6666666666667 23.3333333333333 "
+"10,20 20 0)),\n"
+"         ((10 10 0,9.99999999999995 30 0,20 20 0,10 10 0)),"
+"((13.3333333333333 13.3333333333333 10,12 12 10,10 10 0,13.3333333333333 "
+"13.3333333333333 10)),\n"
+"         ((12 28 10,12 12 10,13.3333333333333 13.3333333333333 10,12 28 "
+"10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,9.99999999999995 30 0,12 28 "
+"10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((10 10 0,0 20 0,9.99999999999995 30 0,10 10 0)),\n"
+"         ((12 12 10,11 11 10,10 10 0,12 12 10)),((12 28 10,11 11 10,12 12 "
+"10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,11 29 10,12 28 10,9.99999999999995 30 0)),"
+"((0 20 0,2 20 10,9.99999999999995 30 0,0 20 0)),\n"
+"         ((10 10 0,2 20 10,0 20 0,10 10 0)),((11 11 10,2 20 10,10 10 0,11 11 "
+"10)),((12 28 10,11 29 10,11 11 10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,2 20 10,11 29 10,9.99999999999995 30 0)),"
+"((11 11 10,11 29 10,2 20 10,11 11 10)))"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:362
+#, no-c-format
+msgid "ST_3DArea"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:364
+#, no-c-format
+msgid "Computes area of 3D geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:369
+#, no-c-format
+msgid ""
+"<funcdef>float<function>ST_3DArea</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:390
+#, no-c-format
+msgid "ST_Tesselate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:392
+#, no-c-format
+msgid ""
+"Perform surface Tesselation of a polygon or polyhedralsurface and returns as "
+"a TIN or collection of TINS"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:397
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Tesselate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:406
+#, no-c-format
+msgid ""
+"Takes as input a surface such a MULTI(POLYGON) or POLYHEDRALSURFACE and "
+"returns a TIN representation via the process of tesselation using triangles."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:420
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )');"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:426
+#, no-c-format
+msgid "Original Cube"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:431
+#, no-c-format
+msgid ""
+"SELECT ST_Tesselate(ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:432
+#, no-c-format
+msgid "ST_AsText output:"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:433
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 1,0 1 1,0 0 0)),((0 1 0,0 0 0,0 1 1,0 1 0)),\n"
+"        ((0 0 0,0 1 0,1 1 0,0 0 0)),\n"
+"        ((1 0 0,0 0 0,1 1 0,1 0 0)),((0 0 1,1 0 0,1 0 1,0 0 1)),\n"
+"        ((0 0 1,0 0 0,1 0 0,0 0 1)),\n"
+"        ((1 1 0,1 1 1,1 0 1,1 1 0)),((1 0 0,1 1 0,1 0 1,1 0 0)),\n"
+"        ((0 1 0,0 1 1,1 1 1,0 1 0)),((1 1 0,0 1 0,1 1 1,1 1 0)),\n"
+"        ((0 1 1,1 0 1,1 1 1,0 1 1)),((0 1 1,0 0 1,1 0 1,0 1 1)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:439
+#, no-c-format
+msgid "Tesselated Cube with triangles colored"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:447
+#, no-c-format
+msgid ""
+"SELECT 'POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, "
+"10 190 ))'::geometry;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:458
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_Tesselate('POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 "
+"160, 120 190, 10 190 ))'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:460
+#, no-c-format
+msgid "ST_AsText output"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:461
+#, no-c-format
+msgid ""
+"TIN(((80 130,50 160,80 70,80 130)),((50 160,10 190,10 70,50 160)),\n"
+"         ((80 70,50 160,10 70,80 70)),((120 160,120 190,50 160,120 160)),\n"
+" ((120 190,10 190,50 160,120 190)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:467
+#, no-c-format
+msgid "Tesselated Polygon"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_transaction.xml.po b/doc/po/ko_KR/reference_transaction.xml.po
new file mode 100644
index 0000000..86f0d83
--- /dev/null
+++ b/doc/po/ko_KR/reference_transaction.xml.po
@@ -0,0 +1,393 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-26 14:23+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis-1/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reference_transaction.xml:3
+#, no-c-format
+msgid "Long Transactions Support"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:5
+#, no-c-format
+msgid ""
+"This module and associated pl/pgsql functions have been implemented to "
+"provide long locking support required by <ulink url=\"http://www."
+"opengeospatial.org/standards/wfs\">Web Feature Service</ulink> specification."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:10
+#, no-c-format
+msgid ""
+"Users must use <ulink url=\"http://www.postgresql.org/docs/current/static/"
+"transaction-iso.html\">serializable transaction level</ulink> otherwise "
+"locking mechanism would break."
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:18
+#, no-c-format
+msgid "AddAuth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:20
+#, no-c-format
+msgid ""
+"<refpurpose>Add an authorization token to be used in current transaction.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_transaction.xml:25
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>AddAuth</function></funcdef> <paramdef><type>text "
+"</type> <parameter>auth_token</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_transaction.xml:33 reference_transaction.xml:83
+#: reference_transaction.xml:130 reference_transaction.xml:177
+#: reference_transaction.xml:241 reference_transaction.xml:284
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:35
+#, no-c-format
+msgid ""
+"<para>Add an authorization token to be used in current transaction.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:37
+#, no-c-format
+msgid ""
+"Creates/adds to a temp table called temp_lock_have_table the current "
+"transaction identifier and authorization token key."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:40 reference_transaction.xml:92
+#: reference_transaction.xml:138 reference_transaction.xml:185
+#: reference_transaction.xml:248 reference_transaction.xml:289
+#, no-c-format
+msgid "Availability: 1.1.3"
+msgstr ""
+
+#. Tag: title
+#: reference_transaction.xml:45 reference_transaction.xml:98
+#: reference_transaction.xml:144 reference_transaction.xml:191
+#: reference_transaction.xml:253 reference_transaction.xml:294
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:47
+#, no-c-format
+msgid ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                BEGIN TRANSACTION;\n"
+"                        SELECT AddAuth('joey');\n"
+"                        UPDATE towns SET the_geom = "
+"ST_Translate(the_geom,2,2) WHERE gid = 353;\n"
+"                COMMIT;\n"
+"\n"
+"\n"
+"                ---Error--\n"
+"                ERROR:  UPDATE where \"gid\" = '353' requires authorization "
+"'priscilla'"
+msgstr ""
+
+#. Tag: title
+#: reference_transaction.xml:52 reference_transaction.xml:105
+#: reference_transaction.xml:151 reference_transaction.xml:198
+#: reference_transaction.xml:260 reference_transaction.xml:301
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:60
+#, no-c-format
+msgid "CheckAuth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:62
+#, no-c-format
+msgid ""
+"Creates trigger on a table to prevent/allow updates and deletes of rows "
+"based on authorization token."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_transaction.xml:66
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>CheckAuth</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_key_column_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CheckAuth</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_key_column_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:85
+#, no-c-format
+msgid ""
+"Creates trigger on a table to prevent/allow updates and deletes of rows "
+"based on authorization token. Identify rows using <rowid_col> column."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:87
+#, no-c-format
+msgid ""
+"If a_schema_name is not passed in, then searches for table in current schema."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:88
+#, no-c-format
+msgid ""
+"If an authorization trigger already exists on this table function errors."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:89
+#, no-c-format
+msgid "If Transaction support is not enabled, function throws an exception."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:100
+#, no-c-format
+msgid ""
+"SELECT CheckAuth('public', 'towns', 'gid');\n"
+"                        result\n"
+"                        ------\n"
+"                        0"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:113
+#, no-c-format
+msgid "DisableLongTransactions"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:115
+#, no-c-format
+msgid ""
+"<refpurpose>Disable long transaction support. This function removes the long "
+"transaction support metadata tables, and drops all triggers attached to lock-"
+"checked tables.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_transaction.xml:122
+#, no-c-format
+msgid ""
+"<funcdef>text <function>DisableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:132
+#, no-c-format
+msgid ""
+"<para>Disable long transaction support. This function removes the long "
+"transaction support metadata tables, and drops all triggers attached to lock-"
+"checked tables.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:135
+#, no-c-format
+msgid ""
+"Drops meta table called <varname>authorization_table</varname> and a view "
+"called <varname>authorized_tables</varname> and all triggers called "
+"<varname>checkauthtrigger</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:146
+#, no-c-format
+msgid ""
+"SELECT DisableLongTransactions();\n"
+"--result--\n"
+"Long transactions support disabled"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:159
+#, no-c-format
+msgid "EnableLongTransactions"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:161
+#, no-c-format
+msgid ""
+"<refpurpose>Enable long transaction support. This function creates the "
+"required metadata tables, needs to be called once before using the other "
+"functions in this section. Calling it twice is harmless.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_transaction.xml:169
+#, no-c-format
+msgid ""
+"<funcdef>text <function>EnableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:179
+#, no-c-format
+msgid ""
+"<para>Enable long transaction support. This function creates the required "
+"metadata tables, needs to be called once before using the other functions in "
+"this section. Calling it twice is harmless.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:183
+#, no-c-format
+msgid ""
+"Creates a meta table called <varname>authorization_table</varname> and a "
+"view called <varname>authorized_tables</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:193
+#, no-c-format
+msgid ""
+"SELECT EnableLongTransactions();\n"
+"--result--\n"
+"Long transactions support enabled"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:206
+#, no-c-format
+msgid "LockRow"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:208
+#, no-c-format
+msgid "Set lock/authorization for specific row in table"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_transaction.xml:212
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>LockRow</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_row_key</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>an_auth_token</parameter></paramdef> "
+"<paramdef><type>timestamp</type> <parameter>expire_dt</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>integer <function>LockRow</"
+"function></funcdef> <paramdef><type>text </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>a_row_key</"
+"parameter></paramdef> <paramdef><type>text</type> <parameter>an_auth_token</"
+"parameter></paramdef> <paramdef><type>timestamp</type> <parameter>expire_dt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>LockRow</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_row_key</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>an_auth_token</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:243
+#, no-c-format
+msgid ""
+"Set lock/authorization for specific row in table <authid> is a text "
+"value, <expires> is a timestamp defaulting to now()+1hour. Returns 1 "
+"if lock has been assigned, 0 otherwise (already locked by other auth)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:255
+#, no-c-format
+msgid ""
+"SELECT LockRow('public', 'towns', '2', 'joey');\n"
+"LockRow\n"
+"-------\n"
+"1\n"
+"\n"
+"--Joey has already locked the record and Priscilla is out of luck\n"
+"SELECT LockRow('public', 'towns', '2', 'priscilla');\n"
+"LockRow\n"
+"-------\n"
+"0"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:268
+#, no-c-format
+msgid "UnlockRows"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:270
+#, no-c-format
+msgid ""
+"<refpurpose>Remove all locks held by specified authorization id. Returns the "
+"number of locks released.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_transaction.xml:276
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>UnlockRows</function></funcdef> "
+"<paramdef><type>text </type> <parameter>auth_token</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:286
+#, no-c-format
+msgid ""
+"<para>Remove all locks held by specified authorization id. Returns the "
+"number of locks released.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:296
+#, no-c-format
+msgid ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                SELECT LockRow('towns', '2', 'priscilla');\n"
+"                SELECT UnLockRows('priscilla');\n"
+"                UnLockRows\n"
+"                ------------\n"
+"                2"
+msgstr ""
diff --git a/doc/po/ko_KR/reference_type.xml.po b/doc/po/ko_KR/reference_type.xml.po
new file mode 100644
index 0000000..532cf5f
--- /dev/null
+++ b/doc/po/ko_KR/reference_type.xml.po
@@ -0,0 +1,318 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# BJ Jang <qgis.tr.kr at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 21:04+0000\n"
+"PO-Revision-Date: 2013-11-28 13:31+0000\n"
+"Last-Translator: BJ Jang <qgis.tr.kr at gmail.com>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis-1/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: para
+#: reference_type.xml:5
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by PostGIS. Note we "
+"describe the casting behavior of these which is very important especially "
+"when designing your own functions."
+msgstr ""
+"이 섹션에서는 PostGIS에 의해 설치된 PostgreSQL의 데이터 유형을 나열합니다. 다"
+"음은 우리가 자신의 함수를 설계할 때 특히 중요한 이들의 캐스팅 동작을 설명합니"
+"다."
+
+#. Tag: para
+#: reference_type.xml:8
+#, no-c-format
+msgid ""
+"A Cast is when one type is coerced into another type. PostgreSQL is unique "
+"from most databases in that it allows you to define casting behavior for "
+"custom types and the functions used for casting. A cast can be specified as "
+"automatic in which case, you do not have to do a CAST(myfoo As otherfootype) "
+"or myfoo::otherfootype if you are feeding it to a function that only works "
+"with otherfootype and there is an automatic cast in place for it."
+msgstr ""
+"캐스트란 한 유형을 다른 유형으로 강제 변환하는 때를 말합니다. PostgreSQL은 사"
+"용자 정의 유형을 위한 캐스팅 동작 및 캐스팅에 사용되는 함수들을 정의할 수 있"
+"도록 한다는 점에서 대부분의 데이터베이스보다 특별합니다. otherfootype 유형만 "
+"처리하거나 자동 캐스트가 포함된 함수에 사용할 때처럼, CAST(myfoo As "
+"otherfootype) 또는 myfoo::otherfootype를 명시적으로 수행할 필요가 없는 상황에"
+"서 캐스트는 자동으로 설정될 수 있습니다. "
+
+#. Tag: para
+#: reference_type.xml:13
+#, no-c-format
+msgid ""
+"The danger of relying on automatic cast behavior is when you have an "
+"overloaded function say one that takes a box2d and one that takes a box3d "
+"but no geometry. What happens is that both functions are equally good to use "
+"with geometry since geometry has an autocast for both -- so you end up with "
+"an ambiguous function error. To force PostgreSQL to choose, you do a "
+"CAST(mygeom As box3d) or mygeom::box3d."
+msgstr ""
+"자동 캐스트 동작을 사용할 때 발생할 수 있는 위험은 하나는 Box2D를 사용하고 "
+"또 하나는 지오메트리가 없는 Box3D를 사용하는 오버로드 된 함수를 사용하는 경"
+"우 입니다. 지오메트리가 두 함수 모두를 위한 자동캐스트를 가지고 있기 때문에 "
+"만약 두 함수 모두 지오메트리와 함께 사용한다면 어떤 일이 발생할까요? -- 결국 "
+"모호한 함수 오류가 발생할 것입니다. 이런 경우 PostgreSQL이 받아들일 수 있도"
+"록 CAST(mygeom As box3d) 또는 mygeom::box3d 캐스트를 사용해야 합니다."
+
+#. Tag: para
+#: reference_type.xml:17
+#, no-c-format
+msgid ""
+"<emphasis>At least as of PostgreSQL 8.3</emphasis> - Everything can be CAST "
+"to text (presumably because of the magical unknown type), so no defined "
+"CASTS for that need to be present for you to CAST an object to text."
+msgstr ""
+"<emphasis>적어도 PostgreSQL 8.3기준에서</emphasis> (아마도 신비한 알 수 없는 "
+"타입 때문에) 모든 객체는 텍스트로 캐스트 될 수 있습니다. 따라서 객체를 텍스트"
+"로 캐스트 하기 위해 별도로 정의된 캐스트는 없습니다."
+
+#. Tag: title
+#: reference_type.xml:20
+#, no-c-format
+msgid "PostgreSQL PostGIS Geometry/Geography/Box Types"
+msgstr "PostgreSQL PostGIS Geometry/Geography/Box 유형"
+
+#. Tag: refname
+#: reference_type.xml:24
+#, no-c-format
+msgid "<refname>box2d</refname>"
+msgstr "<refname>box2d</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:25
+#, no-c-format
+msgid ""
+"A box composed of x min, ymin, xmax, ymax. Often used to return the 2d "
+"enclosing box of a geometry."
+msgstr ""
+"xmin, ymin, xmax, ymax로 구성된 박스. 지오메트리 또는 지오메트리 컬렉션의 2차"
+"원 공간범위-2D Extent를 반환하는데 주로 사용됩니다."
+
+#. Tag: title
+#: reference_type.xml:29 reference_type.xml:40 reference_type.xml:79
+#: reference_type.xml:136 reference_type.xml:155
+#, no-c-format
+msgid "Description"
+msgstr "설명"
+
+#. Tag: para
+#: reference_type.xml:30
+#, no-c-format
+msgid ""
+"box2d is a spatial data type used to represent the enclosing box of a "
+"geometry or set of geometries. ST_Extent in earlier versions prior to "
+"PostGIS 1.4 would return a box2d."
+msgstr ""
+"box2d는 지오메트리나 지오메트리 셋을 둘러싸는 박스를 표현하는데 사용하는 공"
+"간 데이터 타입입니다. PostGIS 1.4 이전 버전으 ST_Extent는 box2d를 반환합니다."
+
+#. Tag: refname
+#: reference_type.xml:35
+#, no-c-format
+msgid "<refname>box3d</refname>"
+msgstr "<refname>box3d</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:36
+#, no-c-format
+msgid ""
+"A box composed of x min, ymin, zmin, xmax, ymax, zmax. Often used to return "
+"the 3d extent of a geometry or collection of geometries."
+msgstr ""
+"xmin, ymin, zmin, xmax, ymax, zmax로 구성된 박스. 지오메트리 또는 지오메트리 "
+"컬렉션의 3차원 공간범위-3D Extent를 반환하는데 주로 사용됩니다."
+
+#. Tag: para
+#: reference_type.xml:41
+#, no-c-format
+msgid ""
+"box3d is a postgis spatial data type used to represent the enclosing box of "
+"a geometry or set of geometries. ST_3DExtent returns a box3d object."
+msgstr ""
+"box3d 지오메트리 또는 지오메트리 셋의 범위를 표현하는데 사용되는 postgis 공"
+"간 데이터 타입입니다. ST_3DExtent는 box3d 객체를 반환합니다."
+
+#. Tag: title
+#: reference_type.xml:45 reference_type.xml:84 reference_type.xml:160
+#, no-c-format
+msgid "Casting Behavior"
+msgstr "캐스팅 동작"
+
+#. Tag: para
+#: reference_type.xml:46 reference_type.xml:85 reference_type.xml:161
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+"이 섹션에는 자동 형변환 뿐만 아니라 이 데이터 유형에 허용되는 명시적 캐스팅"
+"이 나열됩니다. "
+
+#. Tag: entry
+#: reference_type.xml:51 reference_type.xml:90 reference_type.xml:166
+#, no-c-format
+msgid "Cast To"
+msgstr "변환 대상"
+
+#. Tag: entry
+#: reference_type.xml:52 reference_type.xml:91 reference_type.xml:167
+#, no-c-format
+msgid "Behavior"
+msgstr "동작"
+
+#. Tag: entry
+#: reference_type.xml:55 reference_type.xml:94
+#, no-c-format
+msgid "<entry>box</entry>"
+msgstr "<entry>box</entry>"
+
+#. Tag: entry
+#: reference_type.xml:56 reference_type.xml:60 reference_type.xml:64
+#: reference_type.xml:95 reference_type.xml:99 reference_type.xml:103
+#: reference_type.xml:107 reference_type.xml:111 reference_type.xml:115
+#, no-c-format
+msgid "automatic"
+msgstr "자동적"
+
+#. Tag: entry
+#: reference_type.xml:59 reference_type.xml:98
+#, no-c-format
+msgid "<entry>box2d</entry>"
+msgstr "<entry>box2d</entry>"
+
+#. Tag: entry
+#: reference_type.xml:63 reference_type.xml:170
+#, no-c-format
+msgid "<entry>geometry</entry>"
+msgstr "<entry>geometry</entry>"
+
+#. Tag: refname
+#: reference_type.xml:74
+#, no-c-format
+msgid "<refname>geometry</refname>"
+msgstr "<refname>geometry</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:75
+#, no-c-format
+msgid "Planar spatial data type."
+msgstr "평면 공간 데이터 타입."
+
+#. Tag: para
+#: reference_type.xml:80
+#, no-c-format
+msgid ""
+"geometry is a fundamental postgis spatial data type used to represent a "
+"feature in the Euclidean coordinate system."
+msgstr ""
+"geometry는 기초적인 postgis 공간 데이터 타입으로 유클리드 좌표계에서 피처를 "
+"기술하는데 사용됩니다."
+
+#. Tag: entry
+#: reference_type.xml:102
+#, no-c-format
+msgid "<entry>box3d</entry>"
+msgstr "<entry>box3d</entry>"
+
+#. Tag: entry
+#: reference_type.xml:106
+#, no-c-format
+msgid "bytea"
+msgstr "bytea"
+
+#. Tag: entry
+#: reference_type.xml:110
+#, no-c-format
+msgid "<entry>geography</entry>"
+msgstr "<entry>geography</entry>"
+
+#. Tag: entry
+#: reference_type.xml:114
+#, no-c-format
+msgid "text"
+msgstr "text"
+
+#. Tag: title
+#: reference_type.xml:123 reference_type.xml:143 reference_type.xml:179
+#, no-c-format
+msgid "See Also"
+msgstr "관련 정보"
+
+#. Tag: refname
+#: reference_type.xml:130
+#, no-c-format
+msgid "geometry_dump"
+msgstr "geometry_dump"
+
+#. Tag: refpurpose
+#: reference_type.xml:131
+#, no-c-format
+msgid ""
+"A spatial datatype with two fields - geom (holding a geometry object) and "
+"path[] (a 1-d array holding the position of the geometry within the dumped "
+"object.)"
+msgstr ""
+"공간 데이터 타입은 두 필드를 가집니다 - geom(지오메트리 객체를 보관)와 path[]"
+"(1차원 배열로 덤프된 오브젝트에서 지오메트리의 위치를 보관)"
+
+#. Tag: para
+#: reference_type.xml:137
+#, no-c-format
+msgid ""
+"geometry_dump is a compound data type consisting of a geometry object "
+"referenced by the .geom field and path[] a 1-dimensional integer array "
+"(starting at 1 e.g. path[1] to get first element) array that defines the "
+"navigation path within the dumped geometry to find this element. It is used "
+"by the ST_Dump* family of functions as an output type to explode a more "
+"complex geometry into its constituent parts and location of parts."
+msgstr ""
+"geometry_dump은 복합 데이터 타입으로 .geom 필드와 path[]로 구성되는 지오메트"
+"리 오브젝트입니다. path는 1차원 정수 배열(1에서부터 시작. 예: path[1]의 첫번"
+"째 요소)로 부어 넣어진 지오메트리에서의 내비게이션 경로를 정의하는 배열입니"
+"다. 이것은  ST_Dump* 계열의 함수에서 더 복잡한 형상을 이를 구성하는 부분이나 "
+"부분의 위치로 분해하기 위한 출력 타입으로 사용됩니다."
+
+#. Tag: refname
+#: reference_type.xml:150
+#, no-c-format
+msgid "<refname>geography</refname>"
+msgstr "<refname>geography</refname>"
+
+#. Tag: refpurpose
+#: reference_type.xml:151
+#, no-c-format
+msgid "Ellipsoidal spatial data type."
+msgstr "구면 공간 데이터 유형"
+
+#. Tag: para
+#: reference_type.xml:156
+#, no-c-format
+msgid ""
+"geography is a spatial data type used to represent a feature in the round-"
+"earth coordinate system."
+msgstr ""
+"geography는 지구곡면 좌표계에서 피처를 표현하는데 사용되는 공간 데이터 타입입"
+"니다."
+
+#. Tag: entry
+#: reference_type.xml:171
+#, no-c-format
+msgid "explicit"
+msgstr "명시적"
+
+#. Tag: para
+#: reference_type.xml:180
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_Geography\"/>"
+msgstr ", <xref linkend=\"PostGIS_Geography\"/>"
diff --git a/doc/po/ko_KR/release_notes.xml.po b/doc/po/ko_KR/release_notes.xml.po
new file mode 100644
index 0000000..78ed7f9
--- /dev/null
+++ b/doc/po/ko_KR/release_notes.xml.po
@@ -0,0 +1,6523 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:14+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: release_notes.xml:3
+#, no-c-format
+msgid "Appendix"
+msgstr ""
+
+#. Tag: subtitle
+#: release_notes.xml:4
+#, no-c-format
+msgid "Release Notes"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:6
+#, no-c-format
+msgid "Release 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:7
+#, no-c-format
+msgid "Release date: YYYY/MM/DD"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:11
+#, no-c-format
+msgid "Release 2.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:12
+#, no-c-format
+msgid "Release date: 2014-09-10"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:13
+#, no-c-format
+msgid "This is a bug fix and performance improvement release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:15 release_notes.xml:124 release_notes.xml:152
+#: release_notes.xml:271 release_notes.xml:449 release_notes.xml:477
+#: release_notes.xml:536 release_notes.xml:598 release_notes.xml:688
+#: release_notes.xml:889 release_notes.xml:944
+#, no-c-format
+msgid "Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:16
+#, no-c-format
+msgid "#2745, Speedup ST_Simplify calls against points"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:17
+#, no-c-format
+msgid "#2747, Support for GDAL 2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:18
+#, no-c-format
+msgid "#2749, Make rtpostgis_upgrade_20_21.sql ACID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:19
+#, no-c-format
+msgid "#2811, Do not specify index names when loading shapefiles/rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:20
+#, no-c-format
+msgid ""
+"#2829, Shortcut ST_Clip(raster) if geometry fully contains the raster and no "
+"NODATA specified"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:22
+#, no-c-format
+msgid ""
+"#2895, Raise cost of ST_ConvexHull(raster) to 300 for better query plans"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:26 release_notes.xml:87 release_notes.xml:98
+#: release_notes.xml:139 release_notes.xml:395 release_notes.xml:421
+#: release_notes.xml:463 release_notes.xml:487 release_notes.xml:550
+#: release_notes.xml:705 release_notes.xml:719 release_notes.xml:757
+#: release_notes.xml:795 release_notes.xml:826
+#, no-c-format
+msgid "Bug Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:27
+#, no-c-format
+msgid "#2605, armel: _ST_Covers() returns true for point in hole"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:28
+#, no-c-format
+msgid ""
+"#2911, Fix output scale on ST_Rescale/ST_Resample/ST_Resize of rasters with "
+"scale 1/-1 and offset 0/0."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:30
+#, no-c-format
+msgid "Fix crash in ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:31
+#, no-c-format
+msgid ""
+"#2704, ST_GeomFromGML() does not work properly with array of gml:pos (Even "
+"Roualt)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:33
+#, no-c-format
+msgid ""
+"#2708, updategeometrysrid doesn't update srid check when schema not "
+"specified. Patch from Marc Jansen"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:35
+#, no-c-format
+msgid "#2720, lwpoly_add_ring should update maxrings after realloc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:36
+#, no-c-format
+msgid ""
+"#2759, Fix postgis_restore.pl handling of multiline object comments "
+"embedding sql comments"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:38
+#, no-c-format
+msgid ""
+"#2774, fix undefined behavior in ptarray_calculate_gbox_geodetic - Fix "
+"potential memory fault in ST_MakeValid"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:40
+#, no-c-format
+msgid "#2784, Fix handling of bogus argument to --with-sfcgal"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:41
+#, no-c-format
+msgid "#2772, Premature memory free in RASTER_getBandPath (ST_BandPath)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:42
+#, no-c-format
+msgid "#2755, Fix regressions tests against all versions of SFCGAL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:43
+#, no-c-format
+msgid "#2775, lwline_from_lwmpoint leaks memory"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:44
+#, no-c-format
+msgid "#2802, ST_MapAlgebra checks for valid callback function return value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:45
+#, no-c-format
+msgid "#2803, ST_MapAlgebra handles no userarg and STRICT callback function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:46
+#, no-c-format
+msgid "#2834, ST_Estimated_Extent and mixedCase table names (regression bug)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:47
+#, no-c-format
+msgid "#2845, Bad geometry created from ST_AddPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:48
+#, no-c-format
+msgid ""
+"#2870, Binary insert into geography column results geometry being inserted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:49
+#, no-c-format
+msgid "#2872, make install builds documentation (Greg Troxell)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:50
+#, no-c-format
+msgid "#2819, find isfinite or replacement on Centos5 / Solaris"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:51
+#, no-c-format
+msgid "#2899, geocode limit 1 not returning best answer (tiger geocoder)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:52
+#, no-c-format
+msgid "#2903, Unable to compile on FreeBSD"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:53
+#, no-c-format
+msgid ""
+"#2927 reverse_geocode not filling in direction prefix (tiger geocoder) get "
+"rid of deprecated ST_Line_Locate_Point called"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:59
+#, no-c-format
+msgid "Release 2.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:60
+#, no-c-format
+msgid "Release date: 2014/05/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:61
+#, no-c-format
+msgid "This is a bug fix and security release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:63
+#, no-c-format
+msgid "Important changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:64
+#, no-c-format
+msgid ""
+"Starting with this version offline raster access and use of GDAL drivers are "
+"disabled by default."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:69
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling specific GDAL "
+"drivers: POSTGIS_GDAL_ENABLED_DRIVERS. By default, all GDAL drivers are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:75
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling out-db raster "
+"bands: POSTGIS_ENABLE_OUTDB_RASTERS. By default, out-db raster bands are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:81
+#, no-c-format
+msgid ""
+"The environment variables must be set for the PostgreSQL process, and "
+"determines the behavior of the whole cluster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:88
+#, no-c-format
+msgid "#2697, invalid GeoJSON Polygon input crashes server process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:89
+#, no-c-format
+msgid "#2700, Fix dumping of higher-dimension datasets with null rows"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:90
+#, no-c-format
+msgid "#2706, ST_DumpPoints of EMPTY geometries crashes server"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:94
+#, no-c-format
+msgid "Release 2.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:95 release_notes.xml:392
+#, no-c-format
+msgid "Release date: 2014/03/31"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:96
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:99
+#, no-c-format
+msgid "#2666, Error out at configure time if no SQL preprocessor can be found"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:100
+#, no-c-format
+msgid "#2534, st_distance returning incorrect results for large geographies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:101
+#, no-c-format
+msgid "#2539, Check for json-c/json.h presence/usability before json/json.h"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:102
+#, no-c-format
+msgid "#2543, invalid join selectivity error from simple query"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:103
+#, no-c-format
+msgid "#2546, GeoJSON with string coordinates parses incorrectly"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:104
+#, no-c-format
+msgid "#2547, Fix ST_Simplify(TopoGeometry) for hierarchical topogeoms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:105 release_notes.xml:402
+#, no-c-format
+msgid "#2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:107 release_notes.xml:403
+#, no-c-format
+msgid "#2555, Fix parsing issue of range arguments of ST_Reclass"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:108
+#, no-c-format
+msgid "#2556, geography ST_Intersects results depending on insert order"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:109
+#, no-c-format
+msgid "#2580, Do not allow installing postgis twice in the same database"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:110 release_notes.xml:404
+#, no-c-format
+msgid "#2589, Remove use of unnecessary void pointers"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:111
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in one process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:112 release_notes.xml:406
+#, no-c-format
+msgid "#2610, Ensure face splitting algorithm uses the edge index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:113
+#, no-c-format
+msgid ""
+"#2615, EstimatedExtent (and hence, underlying stats) gathering wrong bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:114
+#, no-c-format
+msgid "#2619, Empty rings array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:115
+#, no-c-format
+msgid "#2634, regression in sphere distance code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:116 release_notes.xml:408
+#, no-c-format
+msgid "#2638, Geography distance on M geometries sometimes wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:117
+#, no-c-format
+msgid ""
+"#2648, #2653, Fix topology functions when \"topology\" is not in search_path"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:118
+#, no-c-format
+msgid "#2654, Drop deprecated calls from topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:119
+#, no-c-format
+msgid ""
+"#2655, Let users without topology privileges call postgis_full_version()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:120
+#, no-c-format
+msgid "#2674, Fix missing operator = and hash_raster_ops opclass on raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:121
+#, no-c-format
+msgid ""
+"#2675, #2534, #2636, #2634, #2638, Geography distance issues with tree "
+"optimization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:125
+#, no-c-format
+msgid "#2494, avoid memcopy in GiST index (hayamiz)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:126
+#, no-c-format
+msgid ""
+"#2560, soft upgrade: avoid drop/recreate of aggregates that hadn't changed"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:131
+#, no-c-format
+msgid "Release 2.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:132
+#, no-c-format
+msgid "Release date: 2013/11/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:133
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.0 release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:135 release_notes.xml:411
+#, no-c-format
+msgid "Important Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:136
+#, no-c-format
+msgid ""
+"#2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:140
+#, no-c-format
+msgid "#2396, Make regression tests more endian-agnostic"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:141
+#, no-c-format
+msgid "#2434, Fix ST_Intersection(geog,geog) regression in rare cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:142
+#, no-c-format
+msgid ""
+"#2454, Fix behavior of ST_PixelAsXXX functions regarding "
+"exclude_nodata_value parameter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:143
+#, no-c-format
+msgid "#2489, Fix upgrades from 2.0 leaving stale function signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:144
+#, no-c-format
+msgid "#2525, Fix handling of SRID in nested collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:145
+#, no-c-format
+msgid "#2449, Fix potential infinite loop in index building"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:146
+#, no-c-format
+msgid "#2493, Fix behavior of ST_DumpValues when passed an empty raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:147 release_notes.xml:397
+#, no-c-format
+msgid "#2502, Fix postgis_topology_scripts_installed() install schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:148 release_notes.xml:398
+#, no-c-format
+msgid "#2504, Fix segfault on bogus pgsql2shp call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:149
+#, no-c-format
+msgid ""
+"#2512, Support for foreign tables and materialized views in raster_columns "
+"and raster_overviews"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:153
+#, no-c-format
+msgid "#2478, support for tiger 2013"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:154
+#, no-c-format
+msgid "#2463, support for exact length calculations on arc geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:160
+#, no-c-format
+msgid "Release 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:161
+#, no-c-format
+msgid "Release date: 2013/08/17"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:162
+#, no-c-format
+msgid ""
+"This is a minor release addressing both bug fixes and performance and "
+"functionality enhancements addressing issues since 2.0.3 release. If you are "
+"upgrading from 2.0+, only a soft upgrade is required. If you are upgrading "
+"from 1.5 or earlier, a hard upgrade is required."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:165 release_notes.xml:634
+#, no-c-format
+msgid "Important / Breaking Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:166
+#, no-c-format
+msgid ""
+"#1653, Removed srid parameter from ST_Resample(raster) and variants with "
+"reference raster no longer apply reference raster's SRID."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:168
+#, no-c-format
+msgid ""
+"#1962 ST_Segmentize - As a result of the introduction of geography support, "
+"The construct: <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</"
+"code> will result in ambiguous function error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:172
+#, no-c-format
+msgid "#2026, ST_Union(raster) now unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:173
+#, no-c-format
+msgid "#2089, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:174
+#, no-c-format
+msgid ""
+"#2150, regular_blocking is no longer a constraint. column of same name in "
+"raster_columns now checks for existance of spatially_unique and "
+"coverage_tile constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:177
+#, no-c-format
+msgid ""
+"ST_Intersects(raster, geometry) behaves in the same manner as "
+"ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:179
+#, no-c-format
+msgid ""
+"point variant of ST_SetValue(raster) previously did not check SRID of input "
+"geometry and raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:181
+#, no-c-format
+msgid ""
+"ST_Hillshade parameters azimuth and altitude are now in degrees instead of "
+"radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:183
+#, no-c-format
+msgid ""
+"ST_Slope and ST_Aspect return pixel values in degrees instead of radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:184
+#, no-c-format
+msgid ""
+"#2104, ST_World2RasterCoord, ST_World2RasterCoordX and ST_World2RasterCoordY "
+"renamed to ST_WorldToRasterCoord, ST_WorldToRasterCoordX and "
+"ST_WorldToRasterCoordY. ST_Raster2WorldCoord, ST_Raster2WorldCoordX and "
+"ST_Raster2WorldCoordY renamed to ST_RasterToWorldCoord, "
+"ST_RasterToWorldCoordX and ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:190
+#, no-c-format
+msgid "ST_Estimated_Extent renamed to ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:191
+#, no-c-format
+msgid "ST_Line_Interpolate_Point renamed to ST_LineInterpolatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:192
+#, no-c-format
+msgid "ST_Line_Substring renamed to ST_LineSubstring"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:193
+#, no-c-format
+msgid "ST_Line_Locate_Point renamed to ST_LineLocatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:194
+#, no-c-format
+msgid "ST_Force_XXX renamed to ST_ForceXXX"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:195
+#, no-c-format
+msgid ""
+"ST_MapAlgebraFctNgb and 1 and 2 raster variants of ST_MapAlgebraFct. Use "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:197
+#, no-c-format
+msgid ""
+"1 and 2 raster variants of ST_MapAlgebraExpr. Use expression variants of "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:202 release_notes.xml:661 release_notes.xml:861
+#: release_notes.xml:925 release_notes.xml:1222
+#, no-c-format
+msgid "New Features"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:203
+#, no-c-format
+msgid ""
+"- Refer to http://postgis.net/docs/manual-2.1/"
+"PostGIS_Special_Functions_Index.html#NewFunctions_2_1 for complete list of "
+"new functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:205
+#, no-c-format
+msgid ""
+"#310, ST_DumpPoints converted to a C function (Nathan Wagner) and much faster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:206
+#, no-c-format
+msgid "#739, UpdateRasterSRID()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:207
+#, no-c-format
+msgid ""
+"#945, improved join selectivity, N-D selectivity calculations, user "
+"accessible selectivity and stats reader functions for testing (Paul Ramsey / "
+"OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:210
+#, no-c-format
+msgid "toTopoGeom with TopoGeometry sink (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:211
+#, no-c-format
+msgid "clearTopoGeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:212
+#, no-c-format
+msgid "ST_Segmentize(geography) (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:213
+#, no-c-format
+msgid "ST_DelaunayTriangles (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:214
+#, no-c-format
+msgid "ST_NearestValue, ST_Neighborhood (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:215
+#, no-c-format
+msgid "ST_PixelAsPoint, ST_PixelAsPoints (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:216
+#, no-c-format
+msgid "ST_PixelAsCentroid, ST_PixelAsCentroids (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:217
+#, no-c-format
+msgid "ST_Raster2WorldCoord, ST_World2RasterCoord (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:218
+#, no-c-format
+msgid ""
+"Additional raster/raster spatial relationship functions (ST_Contains, "
+"ST_ContainsProperly, ST_Covers, ST_CoveredBy, ST_Disjoint, ST_Overlaps, "
+"ST_Touches, ST_Within, ST_DWithin, ST_DFullyWithin) (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:222
+#, no-c-format
+msgid ""
+"Added array variants of ST_SetValues() to set many pixel values of a band in "
+"one call (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:224
+#, no-c-format
+msgid "#1293, ST_Resize(raster) to resize rasters based upon width/height"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:225
+#, no-c-format
+msgid "#1627, package tiger_geocoder as a PostgreSQL extension"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:226
+#, no-c-format
+msgid ""
+"#1643, #2076, Upgrade tiger geocoder to support loading tiger 2011 and 2012 "
+"(Regina Obe / Paragon Corporation) Funded by Hunter Systems Group"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:228
+#, no-c-format
+msgid ""
+"GEOMETRYCOLLECTION support for ST_MakeValid (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:229
+#, no-c-format
+msgid "#1709, ST_NotSameAlignmentReason(raster, raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:230
+#, no-c-format
+msgid "#1818, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:231
+#, no-c-format
+msgid "#1856, reverse geocoder rating setting for prefer numbered highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:232
+#, no-c-format
+msgid "ST_PixelOfValue (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:233
+#, no-c-format
+msgid "Casts to/from PostgreSQL geotypes (point/path/polygon)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:234
+#, no-c-format
+msgid ""
+"Added geomval array variant of ST_SetValues() to set many pixel values of a "
+"band using a set of geometries and corresponding values in one call (Bborie "
+"Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:237
+#, no-c-format
+msgid ""
+"ST_Tile(raster) to break up a raster into tiles (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:238
+#, no-c-format
+msgid "#1895, new r-tree node splitting algorithm (Alex Korotkov)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:239
+#, no-c-format
+msgid "#2011, ST_DumpValues to output raster as array (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:240
+#, no-c-format
+msgid ""
+"#2018, ST_Distance support for CircularString, CurvePolygon, MultiCurve, "
+"MultiSurface, CompoundCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:242
+#, no-c-format
+msgid "#2030, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:243
+#, no-c-format
+msgid ""
+"#2193, Utilize PAGC parser as drop in replacement for tiger normalizer "
+"(Steve Woodbridge, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:245
+#, no-c-format
+msgid "#2210, ST_MinConvexHull(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:246
+#, no-c-format
+msgid "lwgeom_from_geojson in liblwgeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:247
+#, no-c-format
+msgid "#1687, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:248
+#, no-c-format
+msgid "#2228, TopoJSON output for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:249
+#, no-c-format
+msgid "#2123, ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:250
+#, no-c-format
+msgid "#613, ST_SetGeoReference with numerical parameters instead of text"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:251
+#, no-c-format
+msgid "#2276, ST_AddBand(raster) variant for out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:252
+#, no-c-format
+msgid "#2280, ST_Summary(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:253
+#, no-c-format
+msgid "#2163, ST_TPI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:254
+#, no-c-format
+msgid "#2164, ST_TRI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:255
+#, no-c-format
+msgid "#2302, ST_Roughness for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:256
+#, no-c-format
+msgid "#2290, ST_ColorMap(raster) to generate RGBA bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:257
+#, no-c-format
+msgid ""
+"#2254, Add SFCGAL backend support. (Backend selection throught postgis."
+"backend var) Functions available both throught GEOS or SFCGAL: "
+"ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, ST_Distance, "
+"ST_3DDistance New functions available only with SFCGAL backend: "
+"ST_3DIntersection, ST_Tesselate, ST_3DArea, ST_Extrude, ST_ForceLHR "
+"ST_Orientation, ST_Minkowski, ST_StraightSkeleton postgis_sfcgal_version New "
+"function available in PostGIS: ST_ForceSFS (Olivier Courtin and Hugo "
+"Mercier / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:272
+#, no-c-format
+msgid ""
+"For detail of new functions and function improvements, please refer to <xref "
+"linkend=\"NewFunctions_2_1\"/>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:273
+#, no-c-format
+msgid ""
+"Much faster raster ST_Union, ST_Clip and many more function additions "
+"operations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:274
+#, no-c-format
+msgid ""
+"For geometry/geography better planner selectivity and a lot more functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:276
+#, no-c-format
+msgid ""
+"#823, tiger geocoder: Make loader_generate_script download portion less "
+"greedy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:278
+#, no-c-format
+msgid ""
+"#826, raster2pgsql no longer defaults to padding tiles. Flag -P can be used "
+"to pad tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:280
+#, no-c-format
+msgid "#1363, ST_AddBand(raster, ...) array version rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:281
+#, no-c-format
+msgid "#1364, ST_Union(raster, ...) aggregate function rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:282
+#, no-c-format
+msgid "#1655, Additional default values for parameters of ST_Slope"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:283
+#, no-c-format
+msgid "#1661, Add aggregate variant of ST_SameAlignment"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:284
+#, no-c-format
+msgid "#1719, Add support for Point and GeometryCollection ST_MakeValid inputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:285
+#, no-c-format
+msgid "#1780, support ST_GeoHash for geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:286
+#, no-c-format
+msgid "#1796, Big performance boost for distance calculations in geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:287
+#, no-c-format
+msgid "#1802, improved function interruptibility."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:288
+#, no-c-format
+msgid ""
+"#1823, add parameter in ST_AsGML to use id column for GML 3 output (become "
+"mandatory since GML 3.2.1)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:290
+#, no-c-format
+msgid ""
+"#1856, tiger geocoder: reverse geocoder rating setting for prefer numbered "
+"highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:292
+#, no-c-format
+msgid "#1938, Refactor basic ST_AddBand to add multiple new bands in one call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:293
+#, no-c-format
+msgid ""
+"#1978, wrong answer when calculating length of a closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:295 release_notes.xml:505
+#, no-c-format
+msgid ""
+"#1989, Preprocess input geometry to just intersection with raster to be "
+"clipped"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:297
+#, no-c-format
+msgid ""
+"#2021, Added multi-band support to ST_Union(raster, ...) aggregate function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:298
+#, no-c-format
+msgid "#2006, better support of ST_Area(geography) over poles and dateline"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:299
+#, no-c-format
+msgid "#2065, ST_Clip(raster, ...) now a C function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:300
+#, no-c-format
+msgid "#2069, Added parameters to ST_Tile(raster) to control padding of tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:301
+#, no-c-format
+msgid ""
+"#2078, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide "
+"solution to handling tiles in a coverage"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:303
+#, no-c-format
+msgid "#2097, Added RANGE uniontype option for ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:304
+#, no-c-format
+msgid ""
+"#2105, Added ST_Transform(raster) variant for aligning output to reference "
+"raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:306
+#, no-c-format
+msgid ""
+"#2119, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(), and "
+"ST_SnapToGrid() no longer require an SRID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:308 release_notes.xml:478
+#, no-c-format
+msgid ""
+"#2141, More verbose output when constraints fail to be added to a raster "
+"column"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:310
+#, no-c-format
+msgid "#2143, Changed blocksize constraint of raster to allow multiple values"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:311
+#, no-c-format
+msgid "#2148, Addition of coverage_tile constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:312
+#, no-c-format
+msgid "#2149, Addition of spatially_unique constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:313
+#, no-c-format
+msgid ""
+"TopologySummary output now includes unregistered layers and a count of "
+"missing TopoGeometry objects from their natural layer."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:315
+#, no-c-format
+msgid ""
+"ST_HillShade(), ST_Aspect() and ST_Slope() have one new optional parameter "
+"to interpolate NODATA pixels before running the operation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:318
+#, no-c-format
+msgid ""
+"Point variant of ST_SetValue(raster) is now a wrapper around geomval variant "
+"of ST_SetValues(rast)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:320
+#, no-c-format
+msgid "Proper support for raster band's isnodata flag in core API and loader."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:321
+#, no-c-format
+msgid "Additional default values for parameters of ST_Aspect and ST_HillShade"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:322
+#, no-c-format
+msgid ""
+"#2178, ST_Summary now advertises presence of known srid with an [S] flag"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:323
+#, no-c-format
+msgid "#2202, Make libjson-c optional (--without-json configure switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:324
+#, no-c-format
+msgid "#2213, Add support libjson-c 0.10+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:325
+#, no-c-format
+msgid "#2231, raster2pgsql supports user naming of filename column with -n"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:326
+#, no-c-format
+msgid "#2200, ST_Union(raster, uniontype) unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:327
+#, no-c-format
+msgid ""
+"#2264, postgis_restore.pl support for restoring into databases with postgis "
+"in a custom schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:329
+#, no-c-format
+msgid ""
+"#2244, emit warning when changing raster's georeference if raster has out-db "
+"bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:331
+#, no-c-format
+msgid ""
+"#2222, add parameter OutAsIn to flag whether ST_AsBinary should return out-"
+"db bands as in-db bands"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:335
+#, no-c-format
+msgid "Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:336 release_notes.xml:580
+#, no-c-format
+msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:337 release_notes.xml:581
+#, no-c-format
+msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:338
+#, no-c-format
+msgid "#1870, align the docs and actual behavior of raster's ST_Intersects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:339 release_notes.xml:587
+#, no-c-format
+msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:340 release_notes.xml:590
+#, no-c-format
+msgid ""
+"#1875, ST_SummaryStats returns NULL for all parameters except count when "
+"count is zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:342
+#, no-c-format
+msgid "#1932, fix raster2pgsql of syntax for index tablespaces"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:343 release_notes.xml:498
+#, no-c-format
+msgid "#1936, ST_GeomFromGML on CurvePolygon causes server crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:344
+#, no-c-format
+msgid ""
+"#1939, remove custom data types: summarystats, histogram, quantile, "
+"valuecount"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:346
+#, no-c-format
+msgid "#1951, remove crash on zero-length linestrings"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:347 release_notes.xml:500
+#, no-c-format
+msgid "#1957, ST_Distance to a one-point LineString returns NULL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:348 release_notes.xml:501
+#, no-c-format
+msgid "#1976, Geography point-in-ring code overhauled for more reliability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:349
+#, no-c-format
+msgid "#1981, cleanup of unused variables causing warnings with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:350 release_notes.xml:508
+#, no-c-format
+msgid "#1996, support POINT EMPTY in GeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:351
+#, no-c-format
+msgid "#2062, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:352 release_notes.xml:519
+#, no-c-format
+msgid "#2057, Fixed linking issue for raster2psql to libpq"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:353
+#, no-c-format
+msgid "#2077, Fixed incorrect values returning from ST_Hillshade()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:354 release_notes.xml:512
+#, no-c-format
+msgid "#2019, ST_FlipCoordinates does not update bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:355
+#, no-c-format
+msgid "#2100, ST_AsRaster may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:356 release_notes.xml:464
+#, no-c-format
+msgid "#2126, Better handling of empty rasters from ST_ConvexHull()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:357 release_notes.xml:425
+#, no-c-format
+msgid "#2165, ST_NumPoints regression failure with CircularString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:358 release_notes.xml:426
+#, no-c-format
+msgid "#2168, ST_Distance is not always commutative"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:359
+#, no-c-format
+msgid "#2182, Fix issue with outdb rasters with no SRID and ST_Resize"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:360 release_notes.xml:472
+#, no-c-format
+msgid ""
+"#2188, Fix function parameter value overflow that caused problems when "
+"copying data from a GDAL dataset"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:362
+#, no-c-format
+msgid ""
+"#2198, Fix incorrect dimensions used when generating bands of out-db rasters "
+"in ST_Tile()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:364 release_notes.xml:428
+#, no-c-format
+msgid "#2201, ST_GeoHash wrong on boundaries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:365
+#, no-c-format
+msgid ""
+"#2203, Changed how rasters with unknown SRID and default geotransform are "
+"handled when passing to GDAL Warp API"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:367
+#, no-c-format
+msgid ""
+"#2215, Fixed raster exclusion constraint for conflicting name of implicit "
+"index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:369
+#, no-c-format
+msgid ""
+"#2251, Fix bad dimensions when rescaling rasters with default geotransform "
+"matrix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:371
+#, no-c-format
+msgid ""
+"#2133, Fix performance regression in expression variant of ST_MapAlgebra"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:372 release_notes.xml:429
+#, no-c-format
+msgid ""
+"#2257, GBOX variables not initialized when testing with empty geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:373 release_notes.xml:430
+#, no-c-format
+msgid "#2271, Prevent parallel make of raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:374
+#, no-c-format
+msgid "#2282, Fix call to undefined function nd_stats_to_grid() in debug mode"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:375 release_notes.xml:433
+#, no-c-format
+msgid "#2307, ST_MakeValid outputs invalid geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:376
+#, no-c-format
+msgid "#2309, Remove confusing INFO message when trying to get SRS info"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:377
+#, no-c-format
+msgid "#2336, FIPS 20 (KS) causes wildcard expansion to wget all files"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:378
+#, no-c-format
+msgid "#2348, Provide raster upgrade path for 2.0 to 2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:379 release_notes.xml:434
+#, no-c-format
+msgid "#2351, st_distance between geographies wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:380
+#, no-c-format
+msgid "#2359, Fix handling of schema name when adding overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:381 release_notes.xml:436
+#, no-c-format
+msgid "#2371, Support GEOS versions with more than 1 digit in micro"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:382
+#, no-c-format
+msgid "#2383, Remove unsafe use of \\' from raster warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:383
+#, no-c-format
+msgid "#2384, Incorrect variable datatypes for ST_Neighborhood"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:385 release_notes.xml:453
+#, no-c-format
+msgid "Known Issues"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:386 release_notes.xml:454
+#, no-c-format
+msgid ""
+"#2111, Raster bands can only reference the first 256 bands of out-db rasters"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:391
+#, no-c-format
+msgid "Release 2.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:393
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.4 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:396
+#, no-c-format
+msgid "#2494, avoid memcpy in GIST index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:399
+#, no-c-format
+msgid "#2528, Fix memory leak in ST_Split / lwline_split_by_line"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:400
+#, no-c-format
+msgid "#2532, Add missing raster/geometry commutator operators"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:401
+#, no-c-format
+msgid "#2533, Remove duplicated signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:405
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:407
+#, no-c-format
+msgid "#2619, Empty ring array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:412
+#, no-c-format
+msgid ""
+"##2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:417
+#, no-c-format
+msgid "Release 2.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:418
+#, no-c-format
+msgid "Release date: 2013/09/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:419
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.3 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:422
+#, no-c-format
+msgid "#2110, Equality operator between EMPTY and point on origin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:423
+#, no-c-format
+msgid "Allow adding points at precision distance with TopoGeo_addPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:424
+#, no-c-format
+msgid "#1968, Fix missing edge from toTopoGeom return"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:427
+#, no-c-format
+msgid "#2186, gui progress bar updates too frequent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:431
+#, no-c-format
+msgid "#2267, Server crash from analyze table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:432
+#, no-c-format
+msgid "#2277, potential segfault removed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:435
+#, no-c-format
+msgid "#2359, Incorrect handling of schema for overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:437
+#, no-c-format
+msgid "#2372, Cannot parse space-padded KML coordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:438
+#, no-c-format
+msgid "Fix build with systemwide liblwgeom installed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:439
+#, no-c-format
+msgid "#2383, Fix unsafe use of \\' in warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:440
+#, no-c-format
+msgid "#2410, Fix segmentize of collinear curve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:441
+#, no-c-format
+msgid "#2412, ST_LineToCurve support for lines with less than 4 vertices"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:442
+#, no-c-format
+msgid "#2415, ST_Multi support for COMPOUNDCURVE and CURVEPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:443
+#, no-c-format
+msgid "#2420, ST_LineToCurve: require at least 8 edges to define a full circle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:444
+#, no-c-format
+msgid "#2423, ST_LineToCurve: require all arc edges to form the same angle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:445
+#, no-c-format
+msgid "#2424, ST_CurveToLine: add support for COMPOUNDCURVE in MULTICURVE"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:446
+#, no-c-format
+msgid "#2427, Make sure to retain first point of curves on ST_CurveToLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:450
+#, no-c-format
+msgid "#2269, Avoid uselessly detoasting full geometries on ANALYZE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:459
+#, no-c-format
+msgid "Release 2.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:460
+#, no-c-format
+msgid "Release date: 2013/03/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:461
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.2 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:465
+#, no-c-format
+msgid "#2134, Make sure to process SRS before passing it off to GDAL functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:466
+#, no-c-format
+msgid "Fix various memory leaks in liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:467
+#, no-c-format
+msgid ""
+"#2173, Fix robustness issue in splitting a line with own vertex also "
+"affecting topology building (#2172)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:468
+#, no-c-format
+msgid "#2174, Fix usage of wrong function lwpoly_free()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:469
+#, no-c-format
+msgid "#2176, Fix robustness issue with ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:470
+#, no-c-format
+msgid "#2184, Properly copy topologies with Z value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:471
+#, no-c-format
+msgid "postgis_restore.pl support for mixed case geometry column name in dumps"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:473
+#, no-c-format
+msgid "#2216, More memory errors in MultiPolygon GeoJSON parsing (with holes)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:474
+#, no-c-format
+msgid "Fix Memory leak in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:479
+#, no-c-format
+msgid "Speedup ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:483
+#, no-c-format
+msgid "Release 2.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:484
+#, no-c-format
+msgid "Release date: 2012/12/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:485
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:488
+#, no-c-format
+msgid ""
+"#1287, Drop of \"gist_geometry_ops\" broke a few clients package of "
+"legacy_gist.sql for these cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:490
+#, no-c-format
+msgid "#1391, Errors during upgrade from 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:491
+#, no-c-format
+msgid "#1828, Poor selectivity estimate on ST_DWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:492
+#, no-c-format
+msgid "#1838, error importing tiger/line data"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:493
+#, no-c-format
+msgid ""
+"#1869, ST_AsBinary is not unique added to legacy_minor/legacy.sql scripts"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:494
+#, no-c-format
+msgid "#1885, Missing field from tabblock table in tiger2010 census_loader.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:495
+#, no-c-format
+msgid "#1891, Use LDFLAGS environment when building liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:496
+#, no-c-format
+msgid "#1900, Fix pgsql2shp for big-endian systems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:497
+#, no-c-format
+msgid "#1932, Fix raster2pgsql for invalid syntax for setting index tablespace"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:499
+#, no-c-format
+msgid "#1955, ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:502
+#, no-c-format
+msgid "#1978, wrong answer calculating length of closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:503
+#, no-c-format
+msgid "#1981, Remove unused but set variables as found with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:504
+#, no-c-format
+msgid "#1987, Restore 1.5.x behaviour of ST_Simplify"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:507
+#, no-c-format
+msgid "#1991, geocode really slow on PostgreSQL 9.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:509
+#, no-c-format
+msgid "#1998, Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:510
+#, no-c-format
+msgid ""
+"#2001, ST_CurveToLine has no effect if the geometry doesn't actually contain "
+"an arc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:511
+#, no-c-format
+msgid "#2015, ST_IsEmpty('POLYGON(EMPTY)') returns False"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:513
+#, no-c-format
+msgid "#2025, Fix side location conflict at TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:514
+#, no-c-format
+msgid "#2026, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:515
+#, no-c-format
+msgid "#2033, Fix adding a splitting point into a 2.5d topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:516
+#, no-c-format
+msgid "#2051, Fix excess of precision in ST_AsGeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:517
+#, no-c-format
+msgid "#2052, Fix buffer overflow in lwgeom_to_geojson"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:518
+#, no-c-format
+msgid "#2056, Fixed lack of SRID check of raster and geometry in ST_SetValue()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:520
+#, no-c-format
+msgid "#2060, Fix \"dimension\" check violation by GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:521
+#, no-c-format
+msgid ""
+"#2072, Removed outdated checks preventing ST_Intersects(raster) from working "
+"on out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:523
+#, no-c-format
+msgid "#2077, Fixed incorrect answers from ST_Hillshade(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:524
+#, no-c-format
+msgid ""
+"#2092, Namespace issue with ST_GeomFromKML,ST_GeomFromGML for libxml 2.8+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:525
+#, no-c-format
+msgid "#2099, Fix double free on exception in ST_OffsetCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:526
+#, no-c-format
+msgid "#2100, ST_AsRaster() may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:527
+#, no-c-format
+msgid "#2108, Ensure ST_Line_Interpolate_Point always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:528
+#, no-c-format
+msgid "#2109, Ensure ST_Centroid always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:529
+#, no-c-format
+msgid "#2117, Ensure ST_PointOnSurface always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:530
+#, no-c-format
+msgid "#2129, Fix SRID in ST_Homogenize output with collection input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:531
+#, no-c-format
+msgid "#2130, Fix memory error in MultiPolygon GeoJson parsing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:533
+#, no-c-format
+msgid "Update URL of Maven jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:537
+#, no-c-format
+msgid ""
+"#1581, ST_Clip(raster, ...) no longer imposes NODATA on a band if the "
+"corresponding band from the source raster did not have NODATA"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:539
+#, no-c-format
+msgid ""
+"#1928, Accept array properties in GML input multi-geom input (Kashif Rasul "
+"and Shoaib Burq / SpacialDB)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:541
+#, no-c-format
+msgid "#2082, Add indices on start_node and end_node of topology edge tables"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:542
+#, no-c-format
+msgid "#2087, Speedup topology.GetRingEdges using a recursive CTE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:546
+#, no-c-format
+msgid "Release 2.0.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:547
+#, no-c-format
+msgid "Release date: 2012/06/22"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:548
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.0 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:551
+#, no-c-format
+msgid "#1264, fix st_dwithin(geog, geog, 0)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:552
+#, no-c-format
+msgid "#1468 shp2pgsql-gui table column schema get shifted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:553
+#, no-c-format
+msgid "#1694, fix building with clang. (vince)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:554
+#, no-c-format
+msgid "#1708, improve restore of pre-PostGIS 2.0 backups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:555
+#, no-c-format
+msgid "#1714, more robust handling of high topology tolerance."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:556
+#, no-c-format
+msgid "#1755, ST_GeographyFromText support for higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:557
+#, no-c-format
+msgid "#1759, loading transformed shapefiles in raster enabled db."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:558
+#, no-c-format
+msgid ""
+"#1761, handling of subdatasets in NetCDF, HDF4 and HDF5 in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:559
+#, no-c-format
+msgid "#1763, topology.toTopoGeom use with custom search_path."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:560
+#, no-c-format
+msgid "#1766, don't let ST_RemEdge* destroy peripheral TopoGeometry objects."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:561
+#, no-c-format
+msgid "#1774, Clearer error on setting an edge geometry to an invalid one."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:562
+#, no-c-format
+msgid "#1775, ST_ChangeEdgeGeom collision detection with 2-vertex target."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:563
+#, no-c-format
+msgid "#1776, fix ST_SymDifference(empty, geom) to return geom."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:564
+#, no-c-format
+msgid "#1779, install SQL comment files."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:565
+#, no-c-format
+msgid "#1782, fix spatial reference string handling in raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:566
+#, no-c-format
+msgid "#1789, fix false edge-node crossing report in ValidateTopology."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:567
+#, no-c-format
+msgid "#1790, fix toTopoGeom handling of duplicated primitives."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:568
+#, no-c-format
+msgid "#1791, fix ST_Azimuth with very close but distinct points."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:569
+#, no-c-format
+msgid "#1797, fix (ValidateTopology(xxx)).* syntax calls."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:570
+#, no-c-format
+msgid "#1805, put back the 900913 SRID entry."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:571
+#, no-c-format
+msgid "#1813, Only show readable relations in metadata tables."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:572
+#, no-c-format
+msgid ""
+"#1819, fix floating point issues with ST_World2RasterCoord and "
+"ST_Raster2WorldCoord variants."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:574
+#, no-c-format
+msgid "#1820 compilation on 9.2beta1."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:575
+#, no-c-format
+msgid "#1822, topology load on PostgreSQL 9.2beta1."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:576
+#, no-c-format
+msgid "#1825, fix prepared geometry cache lookup"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:577
+#, no-c-format
+msgid "#1829, fix uninitialized read in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:578
+#, no-c-format
+msgid ""
+"#1834, revise postgis extension to only backup user specified spatial_ref_sys"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:582
+#, no-c-format
+msgid "#1851, fix spatial_ref_system parameters for EPSG:3844"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:583
+#, no-c-format
+msgid "#1857, fix failure to detect endpoint mismatch in ST_AddEdge*Face*"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:584
+#, no-c-format
+msgid ""
+"#1865, data loss in postgis_restore.pl when data rows have leading dashes."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:586
+#, no-c-format
+msgid "#1867, catch invalid topology name passed to topogeo_add*"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:588
+#, no-c-format
+msgid ""
+"#1873, fix ptarray_locate_point to return interpolated Z/M values for on-the-"
+"line case"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:592
+#, no-c-format
+msgid "#1881, shp2pgsql-gui -- editing a field sometimes triggers removing row"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:594
+#, no-c-format
+msgid ""
+"#1883, Geocoder install fails trying to run create_census_base_tables() "
+"(Brian Panulla)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:599
+#, no-c-format
+msgid "More detailed exception message from topology editing functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:600
+#, no-c-format
+msgid "#1786, improved build dependencies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:601
+#, no-c-format
+msgid "#1806, speedup of ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:602
+#, no-c-format
+msgid "#1812, Add lwgeom_normalize in LIBLWGEOM for more stable testing."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:606
+#, no-c-format
+msgid "Release 2.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:607
+#, no-c-format
+msgid "Release date: 2012/04/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:608
+#, no-c-format
+msgid ""
+"This is a major release. A hard upgrade is required. Yes this means a full "
+"dump reload and some special preparations if you are using obsolete "
+"functions. Refer to <xref linkend=\"hard_upgrade\"/> for details on "
+"upgrading. Refer to <xref linkend=\"NewFunctions_2_0\"/> for more details "
+"and changed/new functions."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:612
+#, no-c-format
+msgid "Testers - Our unsung heroes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:613
+#, no-c-format
+msgid ""
+"We are most indebted to the numerous members in the PostGIS community who "
+"were brave enough to test out the new features in this release. No major "
+"release can be successful without these folk."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:616
+#, no-c-format
+msgid ""
+"Below are those who have been most valiant, provided very detailed and "
+"thorough bug reports, and detailed analysis."
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:620
+#, no-c-format
+msgid "Andrea Peri - Lots of testing on topology, checking for correctness"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:621
+#, no-c-format
+msgid "Andreas Forø Tollefsen - raster testing"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:622
+#, no-c-format
+msgid "Chris English - topology stress testing loader functions"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:623
+#, no-c-format
+msgid "Salvatore Larosa - topology robustness testing"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:624
+#, no-c-format
+msgid ""
+"Brian Hamlin - Benchmarking (also experimental experimental branches before "
+"they are folded into core) , general testing of various pieces including "
+"Tiger and Topology. Testing on various server VMs"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:629
+#, no-c-format
+msgid "Mike Pease - Tiger geocoder testing - very detailed reports of issues"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:630
+#, no-c-format
+msgid "Tom van Tilburg - raster testing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:635
+#, no-c-format
+msgid ""
+"#722, #302, Most deprecated functions removed (over 250 functions) (Regina "
+"Obe, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:636
+#, no-c-format
+msgid "Unknown SRID changed from -1 to 0. (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:637
+#, no-c-format
+msgid ""
+"-- (most deprecated in 1.2) removed non-ST variants buffer, length, "
+"intersects (and internal functions renamed) etc."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:639
+#, no-c-format
+msgid ""
+"-- If you have been using deprecated functions CHANGE your apps or suffer "
+"the consequences. If you don't see a function documented -- it ain't "
+"supported or it is an internal function. Some constraints in older tables "
+"were built with deprecated functions. If you restore you may need to rebuild "
+"table constraints with populate_geometry_columns(). If you have applications "
+"or tools that rely on deprecated functions, please refer to <xref linkend="
+"\"legacy_faq\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:644
+#, no-c-format
+msgid ""
+"#944 geometry_columns is now a view instead of a table (Paul Ramsey, Regina "
+"Obe) for tables created the old way reads (srid, type, dims) constraints for "
+"geometry columns created with type modifiers reads rom column definition"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:649
+#, no-c-format
+msgid ""
+"#1081, #1082, #1084, #1088 - Mangement functions support typmod geometry "
+"column creation functions now default to typmod creation (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:652
+#, no-c-format
+msgid ""
+"#1083 probe_geometry_columns(), rename_geometry_table_constraints(), "
+"fix_geometry_columns(); removed - now obsolete with geometry_column view "
+"(Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:656
+#, no-c-format
+msgid "#817 Renaming old 3D functions to the convention ST_3D (Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:657
+#, no-c-format
+msgid ""
+"#548 (sorta), ST_NumGeometries,ST_GeometryN now returns 1 (or the geometry) "
+"instead of null for single geometries (Sandro Santilli, Maxime van Noppen)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:662
+#, no-c-format
+msgid ""
+"KNN Gist index based centroid (<->) and box (<#>) distance "
+"operators (Paul Ramsey / funded by Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:663
+#, no-c-format
+msgid ""
+"Support for TIN and PolyHedralSurface and enhancement of many functions to "
+"support 3D (Olivier Courtin / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:664
+#, no-c-format
+msgid ""
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/PlanningAndFunding"
+"\">Raster support integrated and documented</ulink> (Pierre Racine, Jorge "
+"Arévalo, Mateusz Loskot, Sandro Santilli, David Zwarg, Regina Obe, Bborie "
+"Park) (Company developer and funding: University Laval, Deimos Space, "
+"CadCorp, Michigan Tech Research Institute, Azavea, Paragon Corporation, UC "
+"Davis Center for Vectorborne Diseases)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:667
+#, no-c-format
+msgid ""
+"Making spatial indexes 3D aware - in progress (Paul Ramsey, Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:668
+#, no-c-format
+msgid ""
+"Topology support improved (more functions), documented, testing (Sandro "
+"Santilli / Faunalia for RT-SIGTA), Andrea Peri, Regina Obe, Jose Carlos "
+"Martinez Llari"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:669
+#, no-c-format
+msgid "3D relationship and measurement support functions (Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:670
+#, no-c-format
+msgid ""
+"ST_3DDistance, ST_3DClosestPoint, ST_3DIntersects, ST_3DShortestLine and "
+"more..."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:671
+#, no-c-format
+msgid "N-Dimensional spatial indexes (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:672
+#, no-c-format
+msgid "ST_Split (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:673
+#, no-c-format
+msgid "ST_IsValidDetail (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:674
+#, no-c-format
+msgid "ST_MakeValid (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:675
+#, no-c-format
+msgid "ST_RemoveRepeatedPoints (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:676
+#, no-c-format
+msgid ""
+"ST_GeometryN and ST_NumGeometries support for non-collections (Sandro "
+"Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:677
+#, no-c-format
+msgid "ST_IsCollection (Sandro Santilli, Maxime van Noppen)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:678
+#, no-c-format
+msgid "ST_SharedPaths (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:679
+#, no-c-format
+msgid "ST_Snap (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:680
+#, no-c-format
+msgid "ST_RelateMatch (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:681
+#, no-c-format
+msgid "ST_ConcaveHull (Regina Obe and Leo Hsu / Paragon Corporation)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:682
+#, no-c-format
+msgid "ST_UnaryUnion (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:683
+#, no-c-format
+msgid "ST_AsX3D (Regina Obe / Arrival 3D funding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:684
+#, no-c-format
+msgid "ST_OffsetCurve (Sandro Santilli, Rafal Magda)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:685
+#, no-c-format
+msgid "ST_GeomFromGeoJSON (Kashif Rasul, Paul Ramsey / Vizzuality funding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:689
+#, no-c-format
+msgid ""
+"Made shape file loader tolerant of truncated multibyte values found in some "
+"free worldwide shapefiles (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:690
+#, no-c-format
+msgid ""
+"Lots of bug fixes and enhancements to shp2pgsql Beefing up regression tests "
+"for loaders Reproject support for both geometry and geography during import "
+"(Jeff Adams / Azavea, Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:694
+#, no-c-format
+msgid ""
+"pgsql2shp conversion from predefined list (Loic Dachary / Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:696
+#, no-c-format
+msgid ""
+"Shp-pgsql GUI loader - support loading multiple files at a time. (Mark "
+"Leslie)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:697
+#, no-c-format
+msgid ""
+"Extras - upgraded tiger_geocoder from using old TIGER format to use new "
+"TIGER shp and file structure format (Stephen Frost)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:698
+#, no-c-format
+msgid ""
+"Extras - revised tiger_geocoder to work with TIGER census 2010 data, "
+"addition of reverse geocoder function, various bug fixes, accuracy "
+"enhancements, limit max result return, speed improvements, loading routines. "
+"(Regina Obe, Leo Hsu / Paragon Corporation / funding provided by Hunter "
+"Systems Group)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:701
+#, no-c-format
+msgid "Overall Documentation proofreading and corrections. (Kasif Rasul)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:702
+#, no-c-format
+msgid ""
+"Cleanup PostGIS JDBC classes, revise to use Maven build. (Maria Arias de "
+"Reyna, Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:706
+#, no-c-format
+msgid "#1335 ST_AddPoint returns incorrect result on Linux (Even Rouault)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:709
+#, no-c-format
+msgid "Release specific credits"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:710
+#, no-c-format
+msgid ""
+"We thank <ulink url=\"http://blog.opengeo.org/2012/02/01/it-goes-up-to-2-0/"
+"\">U.S Department of State Human Information Unit (HIU)</ulink> and <ulink "
+"url=\"http://blog.cartodb.com/post/17318840209/postgis-core-committer-sandro-"
+"santilli-joins-cartodb\">Vizzuality</ulink> for general monetary support to "
+"get PostGIS 2.0 out the door."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:715
+#, no-c-format
+msgid "Release 1.5.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:716
+#, no-c-format
+msgid "Release date: 2012/05/07"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:717
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.3 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:720
+#, no-c-format
+msgid "#547, ST_Contains memory problems (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:721
+#, no-c-format
+msgid "#621, Problem finding intersections with geography (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:722
+#, no-c-format
+msgid "#627, PostGIS/PostgreSQL process die on invalid geometry (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:723
+#, no-c-format
+msgid "#810, Increase accuracy of area calculation (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:724
+#, no-c-format
+msgid ""
+"#852, improve spatial predicates robustness (Sandro Santilli, Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:725
+#, no-c-format
+msgid ""
+"#877, ST_Estimated_Extent returns NULL on empty tables (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:726
+#, no-c-format
+msgid "#1028, ST_AsSVG kills whole postgres server when fails (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:727
+#, no-c-format
+msgid "#1056, Fix boxes of arcs and circle stroking code (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:728
+#, no-c-format
+msgid ""
+"#1121, populate_geometry_columns using deprecated functions (Regin Obe, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:729
+#, no-c-format
+msgid "#1135, improve testsuite predictability (Andreas 'ads' Scherbaum)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:730
+#, no-c-format
+msgid "#1146, images generator crashes (bronaugh)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:731
+#, no-c-format
+msgid "#1170, North Pole intersection fails (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:732
+#, no-c-format
+msgid "#1179, ST_AsText crash with bad value (kjurka)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:733
+#, no-c-format
+msgid "#1184, honour DESTDIR in documentation Makefile (Bryce L Nordgren)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:734
+#, no-c-format
+msgid "#1227, server crash on invalid GML"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:735
+#, no-c-format
+msgid "#1252, SRID appearing in WKT (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:736
+#, no-c-format
+msgid "#1264, st_dwithin(g, g, 0) doesn't work (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:737
+#, no-c-format
+msgid "#1344, allow exporting tables with invalid geometries (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:738
+#, no-c-format
+msgid "#1389, wrong proj4text for SRID 31300 and 31370 (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:739
+#, no-c-format
+msgid "#1406, shp2pgsql crashes when loading into geography (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:740
+#, no-c-format
+msgid "#1595, fixed SRID redundancy in ST_Line_SubString (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:741
+#, no-c-format
+msgid "#1596, check SRID in UpdateGeometrySRID (Mike Toews, Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:742
+#, no-c-format
+msgid "#1602, fix ST_Polygonize to retain Z (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:743
+#, no-c-format
+msgid "#1697, fix crash with EMPTY entries in GiST index (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:744
+#, no-c-format
+msgid "#1772, fix ST_Line_Locate_Point with collapsed input (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:745
+#, no-c-format
+msgid "#1799, Protect ST_Segmentize from max_length=0 (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:746
+#, no-c-format
+msgid "Alter parameter order in 900913 (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:747
+#, no-c-format
+msgid "Support builds with \"gmake\" (Greg Troxel)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:752
+#, no-c-format
+msgid "Release 1.5.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:753
+#, no-c-format
+msgid "Release date: 2011/06/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:754
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.2 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:758
+#, no-c-format
+msgid ""
+"#1056, produce correct bboxes for arc geometries, fixes index errors (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:760
+#, no-c-format
+msgid ""
+"#1007, ST_IsValid crash fix requires GEOS 3.3.0+ or 3.2.3+ (Sandro Santilli, "
+"reported by Birgit Laggner)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:762
+#, no-c-format
+msgid ""
+"#940, support for PostgreSQL 9.1 beta 1 (Regina Obe, Paul Ramsey, patch "
+"submitted by stl)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:764
+#, no-c-format
+msgid ""
+"#845, ST_Intersects precision error (Sandro Santilli, Nicklas Avén) Reported "
+"by cdestigter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:766
+#, no-c-format
+msgid "#884, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:767
+#, no-c-format
+msgid "#779, shp2pgsql -S option seems to fail on points (Jeff Adams)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:768
+#, no-c-format
+msgid "#666, ST_DumpPoints is not null safe (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:769
+#, no-c-format
+msgid "#631, Update NZ projections for grid transformation support (jpalmer)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:770
+#, no-c-format
+msgid ""
+"#630, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson) "
+"Reported by David Bitner"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:772
+#, no-c-format
+msgid "#624, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:773
+#, no-c-format
+msgid ""
+"#609, Bad source code in manual section 5.2 Java Clients (simoc, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:774
+#, no-c-format
+msgid "#604, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:775
+#, no-c-format
+msgid ""
+"#573 ST_Union fails on a group of linestrings Not a PostGIS bug, fixed in "
+"GEOS 3.3.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:777
+#, no-c-format
+msgid ""
+"#457 ST_CollectionExtract returns non-requested type (Nicklas Avén, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:779
+#, no-c-format
+msgid "#441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:780
+#, no-c-format
+msgid ""
+"#411 Ability to backup invalid geometries (Sando Santilli) Reported by "
+"Regione Toscana"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:782
+#, no-c-format
+msgid "#409 ST_AsSVG - degraded (Olivier Courtin) Reported by Sdikiy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:784
+#, no-c-format
+msgid ""
+"#373 Documentation syntax error in hard upgrade (Paul Ramsey) Reported by "
+"psvensso"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:790
+#, no-c-format
+msgid "Release 1.5.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:791
+#, no-c-format
+msgid "Release date: 2010/09/27"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:792
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:796
+#, no-c-format
+msgid ""
+"Loader: fix handling of empty (0-verticed) geometries in shapefiles. (Sandro "
+"Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:797
+#, no-c-format
+msgid ""
+"#536, Geography ST_Intersects, ST_Covers, ST_CoveredBy and Geometry "
+"ST_Equals not using spatial index (Regina Obe, Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:798
+#, no-c-format
+msgid "#573, Improvement to ST_Contains geography (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:799
+#, no-c-format
+msgid ""
+"Loader: Add support for command-q shutdown in Mac GTK build (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:800
+#, no-c-format
+msgid ""
+"#393, Loader: Add temporary patch for large DBF files (Maxime Guillaud, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:801
+#, no-c-format
+msgid "#507, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:802
+#, no-c-format
+msgid ""
+"spatial_ref_sys.sql Add datum conversion for projection SRID 3021 (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:803
+#, no-c-format
+msgid ""
+"Geography - remove crash for case when all geographies are out of the "
+"estimate (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:804
+#, no-c-format
+msgid "#469, Fix for array_aggregation error (Greg Stark, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:805
+#, no-c-format
+msgid ""
+"#532, Temporary geography tables showing up in other user sessions (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:806
+#, no-c-format
+msgid "#562, ST_Dwithin errors for large geographies (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:807
+#, no-c-format
+msgid ""
+"#513, shape loading GUI tries to make spatial index when loading DBF only "
+"mode (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:808
+#, no-c-format
+msgid ""
+"#527, shape loading GUI should always append log messages (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:809
+#, no-c-format
+msgid "#504, shp2pgsql should rename xmin/xmax fields (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:810
+#, no-c-format
+msgid ""
+"#458, postgis_comments being installed in contrib instead of version folder "
+"(Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:811
+#, no-c-format
+msgid ""
+"#474, Analyzing a table with geography column crashes server (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:812
+#, no-c-format
+msgid "#581, LWGEOM-expand produces inconsistent results (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:813
+#, no-c-format
+msgid ""
+"#513, Add dbf filter to shp2pgsql-gui and allow uploading dbf only (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:814
+#, no-c-format
+msgid "Fix further build issues against PostgreSQL 9.0 (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:815
+#, no-c-format
+msgid "#572, Password whitespace for Shape File (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:816
+#, no-c-format
+msgid ""
+"#603, shp2pgsql: \"-w\" produces invalid WKT for MULTI* objects. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:821
+#, no-c-format
+msgid "Release 1.5.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:822
+#, no-c-format
+msgid "Release date: 2010/03/11"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:823
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.4.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:827
+#, no-c-format
+msgid ""
+"#410, update embedded bbox when applying ST_SetPoint, ST_AddPoint "
+"ST_RemovePoint to a linestring (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:828
+#, no-c-format
+msgid ""
+"#411, allow dumping tables with invalid geometries (Sandro Santilli, for "
+"Regione Toscana-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:829
+#, no-c-format
+msgid ""
+"#414, include geography_columns view when running upgrade scripts (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:830
+#, no-c-format
+msgid ""
+"#419, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, "
+"for Lidwala Consulting Engineers)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:831
+#, no-c-format
+msgid "#421, fix computed string length in ST_AsGML() (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:832
+#, no-c-format
+msgid ""
+"#441, fix GML generation with heterogeneous collections (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:833
+#, no-c-format
+msgid ""
+"#443, incorrect coordinate reversal in GML 3 generation (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:834
+#, no-c-format
+msgid ""
+"#450, #451, wrong area calculation for geography features that cross the "
+"date line (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:835
+#, no-c-format
+msgid "Ensure support for upcoming 9.0 PgSQL release (Paul Ramsey)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:840
+#, no-c-format
+msgid "Release 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:841
+#, no-c-format
+msgid "Release date: 2010/02/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:842
+#, no-c-format
+msgid ""
+"This release provides support for geographic coordinates (lat/lon) via a new "
+"GEOGRAPHY type. Also performance enhancements, new input format support (GML,"
+"KML) and general upkeep."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:845 release_notes.xml:912
+#, no-c-format
+msgid "API Stability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:846
+#, no-c-format
+msgid ""
+"The public API of PostGIS will not change during minor (0.0.X) releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:847
+#, no-c-format
+msgid ""
+"The definition of the =~ operator has changed from an exact geometric "
+"equality check to a bounding box equality check."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:851 release_notes.xml:917
+#, no-c-format
+msgid "Compatibility"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:852
+#, no-c-format
+msgid "GEOS, Proj4, and LibXML2 are now mandatory dependencies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:853
+#, no-c-format
+msgid "The library versions below are the minimum requirements for PostGIS 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:854
+#, no-c-format
+msgid "PostgreSQL 8.3 and higher on all platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:855
+#, no-c-format
+msgid "GEOS 3.1 and higher only (GEOS 3.2+ to take advantage of all features)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:856
+#, no-c-format
+msgid "LibXML2 2.5+ related to new ST_GeomFromGML/KML functionality"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:857
+#, no-c-format
+msgid "Proj4 4.5 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:863
+#, no-c-format
+msgid "Added Hausdorff distance calculations (#209) (Vincent Picavet)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:864
+#, no-c-format
+msgid ""
+"Added parameters argument to ST_Buffer operation to support one-sided "
+"buffering and other buffering styles (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:865
+#, no-c-format
+msgid ""
+"Addition of other Distance related visualization and analysis functions "
+"(Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:867
+#, no-c-format
+msgid "ST_ClosestPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:868
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:869
+#, no-c-format
+msgid "ST_LongestLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:870
+#, no-c-format
+msgid "ST_MaxDistance"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:871
+#, no-c-format
+msgid "ST_ShortestLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:873
+#, no-c-format
+msgid "ST_DumpPoints (Maxime van Noppen)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:874
+#, no-c-format
+msgid "KML, GML input via ST_GeomFromGML and ST_GeomFromKML (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:875
+#, no-c-format
+msgid "Extract homogeneous collection with ST_CollectionExtract (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:876
+#, no-c-format
+msgid ""
+"Add measure values to an existing linestring with ST_AddMeasure (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:877
+#, no-c-format
+msgid "History table implementation in utils (George Silva)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:878
+#, no-c-format
+msgid "Geography type and supporting functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:880
+#, no-c-format
+msgid "Spherical algorithms (Dave Skea)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:881
+#, no-c-format
+msgid "Object/index implementation (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:882
+#, no-c-format
+msgid "Selectivity implementation (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:883
+#, no-c-format
+msgid "Serializations to KML, GML and JSON (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:884
+#, no-c-format
+msgid ""
+"ST_Area, ST_Distance, ST_DWithin, ST_GeogFromText, ST_GeogFromWKB, "
+"ST_Intersects, ST_Covers, ST_Buffer (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:890
+#, no-c-format
+msgid "Performance improvements to ST_Distance (Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:891
+#, no-c-format
+msgid "Documentation updates and improvements (Regina Obe, Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:892
+#, no-c-format
+msgid "Testing and quality control (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:893
+#, no-c-format
+msgid "PostGIS 1.5 support PostgreSQL 8.5 trunk (Guillaume Lelarge)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:894
+#, no-c-format
+msgid "Win32 support and improvement of core shp2pgsql-gui (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:895
+#, no-c-format
+msgid "In place 'make check' support (Paul Ramsey)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:899 release_notes.xml:965 release_notes.xml:1150
+#: release_notes.xml:1201 release_notes.xml:1252 release_notes.xml:1386
+#: release_notes.xml:1452 release_notes.xml:1562 release_notes.xml:1669
+#: release_notes.xml:1789 release_notes.xml:1854 release_notes.xml:1901
+#, no-c-format
+msgid "Bug fixes"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:900
+#, no-c-format
+msgid ""
+"http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
+"+1.5.0&order=priority"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:905
+#, no-c-format
+msgid "Release 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:906
+#, no-c-format
+msgid "Release date: 2009/07/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:907
+#, no-c-format
+msgid ""
+"This release provides performance enhancements, improved internal structures "
+"and testing, new features, and upgraded documentation. If you are running "
+"PostGIS 1.1+, a soft upgrade is sufficient otherwise a hard upgrade is "
+"recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:913
+#, no-c-format
+msgid ""
+"As of the 1.4 release series, the public API of PostGIS will not change "
+"during minor releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:918
+#, no-c-format
+msgid "The versions below are the *minimum* requirements for PostGIS 1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:919
+#, no-c-format
+msgid "PostgreSQL 8.2 and higher on all platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:920
+#, no-c-format
+msgid "GEOS 3.0 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:921
+#, no-c-format
+msgid "PROJ4 4.5 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:926
+#, no-c-format
+msgid ""
+"ST_Union() uses high-speed cascaded union when compiled against GEOS 3.1+ "
+"(Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:928
+#, no-c-format
+msgid "ST_ContainsProperly() requires GEOS 3.1+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:929
+#, no-c-format
+msgid ""
+"ST_Intersects(), ST_Contains(), ST_Within() use high-speed cached prepared "
+"geometry against GEOS 3.1+ (Paul Ramsey / funded by Zonar Systems)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:930
+#, no-c-format
+msgid ""
+"Vastly improved documentation and reference manual (Regina Obe & Kevin "
+"Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:931
+#, no-c-format
+msgid "Figures and diagram examples in the reference manual (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:932
+#, no-c-format
+msgid ""
+"ST_IsValidReason() returns readable explanations for validity failures (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:933
+#, no-c-format
+msgid ""
+"ST_GeoHash() returns a geohash.org signature for geometries (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:934
+#, no-c-format
+msgid "GTK+ multi-platform GUI for shape file loading (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:935
+#, no-c-format
+msgid "ST_LineCrossingDirection() returns crossing directions (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:936
+#, no-c-format
+msgid ""
+"ST_LocateBetweenElevations() returns sub-string based on Z-ordinate. (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:937
+#, no-c-format
+msgid ""
+"Geometry parser returns explicit error message about location of syntax "
+"errors (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:938
+#, no-c-format
+msgid "ST_AsGeoJSON() return JSON formatted geometry (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:939
+#, no-c-format
+msgid ""
+"Populate_Geometry_Columns() -- automatically add records to geometry_columns "
+"for TABLES and VIEWS (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:940
+#, no-c-format
+msgid ""
+"ST_MinimumBoundingCircle() -- returns the smallest circle polygon that can "
+"encompass a geometry (Bruce Rindahl)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:945
+#, no-c-format
+msgid ""
+"Core geometry system moved into independent library, liblwgeom. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:946
+#, no-c-format
+msgid ""
+"New build system uses PostgreSQL \"pgxs\" build bootstrapper. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:947
+#, no-c-format
+msgid "Debugging framework formalized and simplified. (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:948
+#, no-c-format
+msgid ""
+"All build-time #defines generated at configure time and placed in headers "
+"for easier cross-platform support (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:949
+#, no-c-format
+msgid "Logging framework formalized and simplified (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:950
+#, no-c-format
+msgid ""
+"Expanded and more stable support for CIRCULARSTRING, COMPOUNDCURVE and "
+"CURVEPOLYGON, better parsing, wider support in functions (Mark Leslie & "
+"Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:951
+#, no-c-format
+msgid "Improved support for OpenSolaris builds (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:952
+#, no-c-format
+msgid "Improved support for MSVC builds (Mateusz Loskot)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:953
+#, no-c-format
+msgid "Updated KML support (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:954
+#, no-c-format
+msgid "Unit testing framework for liblwgeom (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:955
+#, no-c-format
+msgid ""
+"New testing framework to comprehensively exercise every PostGIS function "
+"(Regine Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:956
+#, no-c-format
+msgid ""
+"Performance improvements to all geometry aggregate functions (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:957
+#, no-c-format
+msgid ""
+"Support for the upcoming PostgreSQL 8.4 (Mark Cave-Ayland, Talha Bin Rizwan)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:958
+#, no-c-format
+msgid ""
+"Shp2pgsql and pgsql2shp re-worked to depend on the common parsing/unparsing "
+"code in liblwgeom (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:959
+#, no-c-format
+msgid ""
+"Use of PDF DbLatex to build PDF docs and preliminary instructions for build "
+"(Jean David Techer)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:960
+#, no-c-format
+msgid ""
+"Automated User documentation build (PDF and HTML) and Developer Doxygen "
+"Documentation (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:961
+#, no-c-format
+msgid ""
+"Automated build of document images using ImageMagick from WKT geometry text "
+"files (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:962
+#, no-c-format
+msgid "More attractive CSS for HTML documentation (Dane Springmeyer)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:966
+#, no-c-format
+msgid ""
+"http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
+"+1.4.0&order=priority"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:971
+#, no-c-format
+msgid "Release 1.3.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:972
+#, no-c-format
+msgid "Release date: 2009/05/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:973
+#, no-c-format
+msgid ""
+"If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
+"hard upgrade is recommended. This release adds support for PostgreSQL 8.4, "
+"exporting prj files from the database with shape data, some crash fixes for "
+"shp2pgsql, and several small bug fixes in the handling of \"curve\" types, "
+"logical error importing dbf only files, improved error handling of "
+"AddGeometryColumns."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:980
+#, no-c-format
+msgid "Release 1.3.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:981
+#, no-c-format
+msgid "Release date: 2008/12/15"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:982
+#, no-c-format
+msgid ""
+"If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
+"hard upgrade is recommended. This release is a bug fix release to address a "
+"failure in ST_Force_Collection and related functions that critically affects "
+"using MapServer with LINE layers."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:989
+#, no-c-format
+msgid "Release 1.3.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:990
+#, no-c-format
+msgid "Release date: 2008/11/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:991
+#, no-c-format
+msgid ""
+"This release adds support for GeoJSON output, building with PostgreSQL 8.4, "
+"improves documentation quality and output aesthetics, adds function-level "
+"SQL documentation, and improves performance for some spatial predicates "
+"(point-in-polygon tests)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:996
+#, no-c-format
+msgid ""
+"Bug fixes include removal of crashers in handling circular strings for many "
+"functions, some memory leaks removed, a linear referencing failure for "
+"measures on vertices, and more. See the NEWS file for details."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1003
+#, no-c-format
+msgid "Release 1.3.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1005
+#, no-c-format
+msgid "Release date: 2008/04/12"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1007
+#, no-c-format
+msgid ""
+"This release fixes bugs shp2pgsql, adds enhancements to SVG and KML support, "
+"adds a ST_SimplifyPreserveTopology function, makes the build more sensitive "
+"to GEOS versions, and fixes a handful of severe but rare failure cases."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1014
+#, no-c-format
+msgid "Release 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1016
+#, no-c-format
+msgid "Release date: 2007/12/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1018
+#, no-c-format
+msgid ""
+"This release fixes bugs in ST_EndPoint() and ST_Envelope, improves support "
+"for JDBC building and OS/X, and adds better support for GML output with "
+"ST_AsGML(), including GML3 output."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1024
+#, no-c-format
+msgid "Release 1.3.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1026
+#, no-c-format
+msgid "Release date: 2007/08/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1028
+#, no-c-format
+msgid ""
+"This release fixes some oversights in the previous release around version "
+"numbering, documentation, and tagging."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1033
+#, no-c-format
+msgid "Release 1.3.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1035
+#, no-c-format
+msgid "Release date: 2007/08/09"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1037
+#, no-c-format
+msgid ""
+"This release provides performance enhancements to the relational functions, "
+"adds new relational functions and begins the migration of our function names "
+"to the SQL-MM convention, using the spatial type (SP) prefix."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1043
+#, no-c-format
+msgid "Added Functionality"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1045
+#, no-c-format
+msgid "JDBC: Added Hibernate Dialect (thanks to Norman Barker)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1047
+#, no-c-format
+msgid ""
+"Added ST_Covers and ST_CoveredBy relational functions. Description and "
+"justification of these functions can be found at <ulink url=\"http://lin-ear-"
+"th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html"
+"\">http://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-"
+"spatial.html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1051
+#, no-c-format
+msgid "Added ST_DWithin relational function."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1055
+#, no-c-format
+msgid "Performance Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1057
+#, no-c-format
+msgid ""
+"Added cached and indexed point-in-polygon short-circuits for the functions "
+"ST_Contains, ST_Intersects, ST_Within and ST_Disjoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1060
+#, no-c-format
+msgid ""
+"Added inline index support for relational functions (except ST_Disjoint)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1065
+#, no-c-format
+msgid "Other Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1067
+#, no-c-format
+msgid ""
+"Extended curved geometry support into the geometry accessor and some "
+"processing functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1070
+#, no-c-format
+msgid ""
+"Began migration of functions to the SQL-MM naming convention; using a "
+"spatial type (ST) prefix."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1073
+#, no-c-format
+msgid "Added initial support for PostgreSQL 8.3"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1078
+#, no-c-format
+msgid "Release 1.2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1080
+#, no-c-format
+msgid "Release date: 2007/01/11"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1082
+#, no-c-format
+msgid ""
+"This release provides bug fixes in PostgreSQL 8.2 support and some small "
+"performance enhancements."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1086 release_notes.xml:1114 release_notes.xml:2336
+#, no-c-format
+msgid "Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1088
+#, no-c-format
+msgid "Fixed point-in-polygon shortcut bug in Within()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1090
+#, no-c-format
+msgid "Fixed PostgreSQL 8.2 NULL handling for indexes."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1092
+#, no-c-format
+msgid "Updated RPM spec files."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1094
+#, no-c-format
+msgid "Added short-circuit for Transform() in no-op case."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1096
+#, no-c-format
+msgid ""
+"JDBC: Fixed JTS handling for multi-dimensional geometries (thanks to Thomas "
+"Marti for hint and partial patch). Additionally, now JavaDoc is compiled and "
+"packaged. Fixed classpath problems with GCJ. Fixed pgjdbc 8.2 compatibility, "
+"losing support for jdk 1.3 and older."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1105
+#, no-c-format
+msgid "Release 1.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1107
+#, no-c-format
+msgid "Release date: 2006/12/08"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1109
+#, no-c-format
+msgid ""
+"This release provides type definitions along with serialization/"
+"deserialization capabilities for SQL-MM defined curved geometries, as well "
+"as performance enhancements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1116
+#, no-c-format
+msgid "Added curved geometry type support for serialization/deserialization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1119
+#, no-c-format
+msgid ""
+"Added point-in-polygon shortcircuit to the Contains and Within functions to "
+"improve performance for these cases."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1125
+#, no-c-format
+msgid "Release 1.1.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1127
+#, no-c-format
+msgid "Release date: 2006/11/02"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1129
+#, no-c-format
+msgid ""
+"This is a bugfix release, in particular fixing a critical error with GEOS "
+"interface in 64bit systems. Includes an updated of the SRS parameters and an "
+"improvement in reprojections (take Z in consideration). Upgrade is "
+"<emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1135 release_notes.xml:1186 release_notes.xml:1237
+#: release_notes.xml:1292 release_notes.xml:1371 release_notes.xml:1437
+#: release_notes.xml:1510 release_notes.xml:1654 release_notes.xml:1711
+#: release_notes.xml:1774 release_notes.xml:1832 release_notes.xml:1890
+#: release_notes.xml:1930 release_notes.xml:1982 release_notes.xml:2034
+#: release_notes.xml:2073 release_notes.xml:2110 release_notes.xml:2177
+#: release_notes.xml:2274 release_notes.xml:2328
+#, no-c-format
+msgid "Upgrading"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1137 release_notes.xml:1188 release_notes.xml:1239
+#: release_notes.xml:1294 release_notes.xml:1373 release_notes.xml:1439
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later follow the <link linkend="
+"\"soft_upgrade\">soft upgrade</link> procedure."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1140 release_notes.xml:1191 release_notes.xml:1242
+#: release_notes.xml:1297 release_notes.xml:1376 release_notes.xml:1442
+#: release_notes.xml:1518 release_notes.xml:1659 release_notes.xml:1716
+#: release_notes.xml:1779
+#, no-c-format
+msgid ""
+"If you are upgrading from a release <emphasis>between 1.0.0RC6 and 1.0.2</"
+"emphasis> (inclusive) and really want a live upgrade read the <link linkend="
+"\"rel_1.0.3_upgrading\">upgrade section</link> of the 1.0.3 release notes "
+"chapter."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1145 release_notes.xml:1196 release_notes.xml:1247
+#: release_notes.xml:1302 release_notes.xml:1381 release_notes.xml:1447
+#: release_notes.xml:1523 release_notes.xml:1664 release_notes.xml:1721
+#: release_notes.xml:1784
+#, no-c-format
+msgid ""
+"Upgrade from any release prior to 1.0.0RC6 requires an <link linkend="
+"\"hard_upgrade\">hard upgrade</link>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1152
+#, no-c-format
+msgid "fixed CAPI change that broke 64-bit platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1154
+#, no-c-format
+msgid "loader/dumper: fixed regression tests and usage output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1156
+#, no-c-format
+msgid "Fixed setSRID() bug in JDBC, thanks to Thomas Marti"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1160 release_notes.xml:1344 release_notes.xml:1415
+#: release_notes.xml:1629 release_notes.xml:1755 release_notes.xml:2056
+#: release_notes.xml:2093 release_notes.xml:2145 release_notes.xml:2247
+#: release_notes.xml:2310
+#, no-c-format
+msgid "Other changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1162
+#, no-c-format
+msgid "use Z ordinate in reprojections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1164
+#, no-c-format
+msgid "spatial_ref_sys.sql updated to EPSG 6.11.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1166
+#, no-c-format
+msgid ""
+"Simplified Version.config infrastructure to use a single pack of version "
+"variables for everything."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1169
+#, no-c-format
+msgid "Include the Version.config in loader/dumper USAGE messages"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1172
+#, no-c-format
+msgid "Replace hand-made, fragile JDBC version parser with Properties"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1178
+#, no-c-format
+msgid "Release 1.1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1180
+#, no-c-format
+msgid "Release date: 2006/10/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1182
+#, no-c-format
+msgid ""
+"This is an bugfix release, including a critical segfault on win32. Upgrade "
+"is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1203
+#, no-c-format
+msgid ""
+"Fixed MingW link error that was causing pgsql2shp to segfault on Win32 when "
+"compiled for PostgreSQL 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1206
+#, no-c-format
+msgid "fixed nullpointer Exception in Geometry.equals() method in Java"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1209
+#, no-c-format
+msgid ""
+"Added EJB3Spatial.odt to fulfill the GPL requirement of distributing the "
+"\"preferred form of modification\""
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1212
+#, no-c-format
+msgid "Removed obsolete synchronization from JDBC Jts code."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1214
+#, no-c-format
+msgid ""
+"Updated heavily outdated README files for shp2pgsql/pgsql2shp by merging "
+"them with the manpages."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1217
+#, no-c-format
+msgid ""
+"Fixed version tag in jdbc code that still said \"1.1.3\" in the \"1.1.4\" "
+"release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1224
+#, no-c-format
+msgid "Added -S option for non-multi geometries to shp2pgsql"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1229
+#, no-c-format
+msgid "Release 1.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1231
+#, no-c-format
+msgid "Release date: 2006/09/27"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1233
+#, no-c-format
+msgid ""
+"This is an bugfix release including some improvements in the Java interface. "
+"Upgrade is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1254
+#, no-c-format
+msgid "Fixed support for PostgreSQL 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1256
+#, no-c-format
+msgid "Fixed bug in collect() function discarding SRID of input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1258
+#, no-c-format
+msgid "Added SRID match check in MakeBox2d and MakeBox3d"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1260
+#, no-c-format
+msgid "Fixed regress tests to pass with GEOS-3.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1262
+#, no-c-format
+msgid "Improved pgsql2shp run concurrency."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1266
+#, no-c-format
+msgid "Java changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1268
+#, no-c-format
+msgid ""
+"reworked JTS support to reflect new upstream JTS developers' attitude to "
+"SRID handling. Simplifies code and drops build depend on GNU trove."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1272
+#, no-c-format
+msgid ""
+"Added EJB2 support generously donated by the \"Geodetix s.r.l. Company\" "
+"<ulink url=\"http://www.geodetix.it/\">http://www.geodetix.it/</ulink>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1275
+#, no-c-format
+msgid ""
+"Added EJB3 tutorial / examples donated by Norman Barker <nbarker at ittvis."
+"com>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1278
+#, no-c-format
+msgid "Reorganized java directory layout a little."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1283
+#, no-c-format
+msgid "Release 1.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1285
+#, no-c-format
+msgid "Release date: 2006/06/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1287
+#, no-c-format
+msgid ""
+"This is an bugfix release including also some new functionalities (most "
+"notably long transaction support) and portability enhancements. Upgrade is "
+"<emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1307
+#, no-c-format
+msgid "Bug fixes / correctness"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1309
+#, no-c-format
+msgid "BUGFIX in distance(poly,poly) giving wrong results."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1311
+#, no-c-format
+msgid "BUGFIX in pgsql2shp successful return code."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1313
+#, no-c-format
+msgid "BUGFIX in shp2pgsql handling of MultiLine WKT."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1315
+#, no-c-format
+msgid "BUGFIX in affine() failing to update bounding box."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1317
+#, no-c-format
+msgid ""
+"WKT parser: forbidden construction of multigeometries with EMPTY elements "
+"(still supported for GEOMETRYCOLLECTION)."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1322 release_notes.xml:1398 release_notes.xml:1471
+#, no-c-format
+msgid "New functionalities"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1324
+#, no-c-format
+msgid "NEW Long Transactions support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1326
+#, no-c-format
+msgid "NEW DumpRings() function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1328
+#, no-c-format
+msgid "NEW AsHEXEWKB(geom, XDR|NDR) function."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1332 release_notes.xml:2223
+#, no-c-format
+msgid "JDBC changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1334
+#, no-c-format
+msgid "Improved regression tests: MultiPoint and scientific ordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1337
+#, no-c-format
+msgid "Fixed some minor bugs in jdbc code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1339
+#, no-c-format
+msgid ""
+"Added proper accessor functions for all fields in preparation of making "
+"those fields private later"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1346
+#, no-c-format
+msgid "NEW regress test support for loader/dumper."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1348
+#, no-c-format
+msgid "Added --with-proj-libdir and --with-geos-libdir configure switches."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1351
+#, no-c-format
+msgid "Support for build Tru64 build."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1353
+#, no-c-format
+msgid "Use Jade for generating documentation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1355
+#, no-c-format
+msgid "Don't link pgsql2shp to more libs then required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1357
+#, no-c-format
+msgid "Initial support for PostgreSQL 8.2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1362
+#, no-c-format
+msgid "Release 1.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1364
+#, no-c-format
+msgid "Release date: 2006/03/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1366
+#, no-c-format
+msgid ""
+"This is an bugfix release including some new functions and portability "
+"enhancements. Upgrade is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1388
+#, no-c-format
+msgid "BUGFIX in SnapToGrid() computation of output bounding box"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1390
+#, no-c-format
+msgid "BUGFIX in EnforceRHR()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1392
+#, no-c-format
+msgid "jdbc2 SRID handling fixes in JTS code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1394
+#, no-c-format
+msgid "Fixed support for 64bit archs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1400
+#, no-c-format
+msgid "Regress tests can now be run *before* postgis installation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1403
+#, no-c-format
+msgid "New affine() matrix transformation functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1405
+#, no-c-format
+msgid "New rotate{,X,Y,Z}() function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1407
+#, no-c-format
+msgid "Old translating and scaling functions now use affine() internally"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1410
+#, no-c-format
+msgid ""
+"Embedded access control in estimated_extent() for builds against pgsql >= "
+"8.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1417
+#, no-c-format
+msgid "More portable ./configure script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1419
+#, no-c-format
+msgid "Changed ./run_test script to have more sane default behaviour"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1425
+#, no-c-format
+msgid "Release 1.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1427
+#, no-c-format
+msgid "Release date: 2006/01/23"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1429
+#, no-c-format
+msgid ""
+"This is an important Bugfix release, upgrade is <emphasis>highly "
+"recommended</emphasis>. Previous version contained a bug in postgis_restore."
+"pl preventing <link linkend=\"hard_upgrade\">hard upgrade</link> procedure "
+"to complete and a bug in GEOS-2.2+ connector preventing GeometryCollection "
+"objects to be used in topological operations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1454
+#, no-c-format
+msgid "Fixed a premature exit in postgis_restore.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1456
+#, no-c-format
+msgid "BUGFIX in geometrycollection handling of GEOS-CAPI connector"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1459
+#, no-c-format
+msgid "Solaris 2.7 and MingW support improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1461
+#, no-c-format
+msgid "BUGFIX in line_locate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1463
+#, no-c-format
+msgid "Fixed handling of postgresql paths"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1465
+#, no-c-format
+msgid "BUGFIX in line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1467
+#, no-c-format
+msgid "Added support for localized cluster in regress tester"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1473
+#, no-c-format
+msgid "New Z and M interpolation in line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1475
+#, no-c-format
+msgid "New Z and M interpolation in line_interpolate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1477
+#, no-c-format
+msgid "added NumInteriorRing() alias due to OpenGIS ambiguity"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1482
+#, no-c-format
+msgid "Release 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1484
+#, no-c-format
+msgid "Release date: 2005/12/21"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1486
+#, no-c-format
+msgid ""
+"This is a Minor release, containing many improvements and new things. Most "
+"notably: build procedure greatly simplified; transform() performance "
+"drastically improved; more stable GEOS connectivity (CAPI support); lots of "
+"new functions; draft topology support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1491
+#, no-c-format
+msgid ""
+"It is <emphasis>highly recommended</emphasis> that you upgrade to GEOS-2.2.x "
+"before installing PostGIS, this will ensure future GEOS upgrades won't "
+"require a rebuild of the PostGIS library."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1496
+#, no-c-format
+msgid "Credits"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1498
+#, no-c-format
+msgid ""
+"This release includes code from Mark Cave Ayland for caching of proj4 "
+"objects. Markus Schaber added many improvements in his JDBC2 code. Alex "
+"Bodnaru helped with PostgreSQL source dependency relief and provided Debian "
+"specfiles. Michael Fuhr tested new things on Solaris arch. David Techer and "
+"Gerald Fenoy helped testing GEOS C-API connector. Hartmut Tschauner provided "
+"code for the azimuth() function. Devrim GUNDUZ provided RPM specfiles. Carl "
+"Anderson helped with the new area building functions. See the <link linkend="
+"\"credits_other_contributors\">credits</link> section for more names."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1512
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
+"emphasis> need a dump/reload. Simply sourcing the new lwpostgis_upgrade.sql "
+"script in all your existing databases will work. See the <link linkend="
+"\"soft_upgrade\">soft upgrade</link> chapter for more information."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1528
+#, no-c-format
+msgid "New functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1530
+#, no-c-format
+msgid "scale() and transscale() companion methods to translate()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1532
+#, no-c-format
+msgid "line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1534
+#, no-c-format
+msgid "line_locate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1536
+#, no-c-format
+msgid "M(point)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1538
+#, no-c-format
+msgid "LineMerge(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1540
+#, no-c-format
+msgid "shift_longitude(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1542
+#, no-c-format
+msgid "azimuth(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1544
+#, no-c-format
+msgid "locate_along_measure(geometry, float8)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1546
+#, no-c-format
+msgid "locate_between_measures(geometry, float8, float8)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1548
+#, no-c-format
+msgid "SnapToGrid by point offset (up to 4d support)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1550
+#, no-c-format
+msgid "BuildArea(any_geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1552
+#, no-c-format
+msgid "OGC BdPolyFromText(linestring_wkt, srid)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1554
+#, no-c-format
+msgid "OGC BdMPolyFromText(linestring_wkt, srid)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1556
+#, no-c-format
+msgid "RemovePoint(linestring, offset)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1558
+#, no-c-format
+msgid "ReplacePoint(linestring, offset, point)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1564
+#, no-c-format
+msgid "Fixed memory leak in polygonize()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1566
+#, no-c-format
+msgid "Fixed bug in lwgeom_as_anytype cast functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1568
+#, no-c-format
+msgid ""
+"Fixed USE_GEOS, USE_PROJ and USE_STATS elements of postgis_version() output "
+"to always reflect library state."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1573
+#, no-c-format
+msgid "Function semantic changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1575
+#, no-c-format
+msgid "SnapToGrid doesn't discard higher dimensions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1577
+#, no-c-format
+msgid ""
+"Changed Z() function to return NULL if requested dimension is not available"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1582
+#, no-c-format
+msgid "Performance improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1584
+#, no-c-format
+msgid "Much faster transform() function, caching proj4 objects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1586
+#, no-c-format
+msgid ""
+"Removed automatic call to fix_geometry_columns() in AddGeometryColumns() and "
+"update_geometry_stats()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1591
+#, no-c-format
+msgid "JDBC2 works"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1593
+#, no-c-format
+msgid "Makefile improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1595 release_notes.xml:1631
+#, no-c-format
+msgid "JTS support improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1597
+#, no-c-format
+msgid "Improved regression test system"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1599
+#, no-c-format
+msgid "Basic consistency check method for geometry collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1601
+#, no-c-format
+msgid "Support for (Hex)(E)wkb"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1603
+#, no-c-format
+msgid "Autoprobing DriverWrapper for HexWKB / EWKT switching"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1605
+#, no-c-format
+msgid "fix compile problems in ValueSetter for ancient jdk releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1608
+#, no-c-format
+msgid "fix EWKT constructors to accept SRID=4711; representation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1610
+#, no-c-format
+msgid "added preliminary read-only support for java2d geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1614
+#, no-c-format
+msgid "Other new things"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1616
+#, no-c-format
+msgid ""
+"Full autoconf-based configuration, with PostgreSQL source dependency relief"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1619
+#, no-c-format
+msgid "GEOS C-API support (2.2.0 and higher)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1621
+#, no-c-format
+msgid "Initial support for topology modelling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1623
+#, no-c-format
+msgid "Debian and RPM specfiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1625
+#, no-c-format
+msgid "New lwpostgis_upgrade.sql script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1633
+#, no-c-format
+msgid "Stricter mapping between DBF and SQL integer and string attributes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1636
+#, no-c-format
+msgid "Wider and cleaner regression test suite"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1638
+#, no-c-format
+msgid "old jdbc code removed from release"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1640
+#, no-c-format
+msgid "obsoleted direct use of postgis_proc_upgrade.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1642
+#, no-c-format
+msgid "scripts version unified with release version"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1647
+#, no-c-format
+msgid "Release 1.0.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1649
+#, no-c-format
+msgid "Release date: 2005/12/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1651 release_notes.xml:1887
+#, no-c-format
+msgid "Contains a few bug fixes and improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1656 release_notes.xml:1713
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
+"emphasis> need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1671
+#, no-c-format
+msgid ""
+"Fixed palloc(0) call in collection deserializer (only gives problem with --"
+"enable-cassert)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1674
+#, no-c-format
+msgid "Fixed bbox cache handling bugs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1676
+#, no-c-format
+msgid "Fixed geom_accum(NULL, NULL) segfault"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1678
+#, no-c-format
+msgid "Fixed segfault in addPoint()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1680
+#, no-c-format
+msgid "Fixed short-allocation in lwcollection_clone()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1682
+#, no-c-format
+msgid "Fixed bug in segmentize()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1684
+#, no-c-format
+msgid "Fixed bbox computation of SnapToGrid output"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1688 release_notes.xml:1806 release_notes.xml:1868
+#: release_notes.xml:1914
+#, no-c-format
+msgid "Improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1690
+#, no-c-format
+msgid "Initial support for postgresql 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1692
+#, no-c-format
+msgid "Added missing SRID mismatch checks in GEOS ops"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1697
+#, no-c-format
+msgid "Release 1.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1699
+#, no-c-format
+msgid "Release date: 2005/11/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1701
+#, no-c-format
+msgid ""
+"Contains memory-alignment fixes in the library, a segfault fix in loader's "
+"handling of UTF8 attributes and a few improvements and cleanups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1706
+#, no-c-format
+msgid ""
+"Return code of shp2pgsql changed from previous releases to conform to unix "
+"standards (return 0 on success)."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1726 release_notes.xml:1941 release_notes.xml:1993
+#: release_notes.xml:2042 release_notes.xml:2084 release_notes.xml:2118
+#: release_notes.xml:2185 release_notes.xml:2282
+#, no-c-format
+msgid "Library changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1728
+#, no-c-format
+msgid "Fixed memory alignment problems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1730
+#, no-c-format
+msgid "Fixed computation of null values fraction in analyzer"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1732
+#, no-c-format
+msgid "Fixed a small bug in the getPoint4d_p() low-level function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1735
+#, no-c-format
+msgid "Speedup of serializer functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1737
+#, no-c-format
+msgid "Fixed a bug in force_3dm(), force_3dz() and force_4d()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1741
+#, no-c-format
+msgid "Loader changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1743
+#, no-c-format
+msgid "Fixed return code of shp2pgsql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1745
+#, no-c-format
+msgid "Fixed back-compatibility issue in loader (load of null shapefiles)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1748
+#, no-c-format
+msgid "Fixed handling of trailing dots in dbf numerical attributes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1751
+#, no-c-format
+msgid "Segfault fix in shp2pgsql (utf8 encoding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1757
+#, no-c-format
+msgid "Schema aware postgis_proc_upgrade.pl, support for pgsql 7.2+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1760
+#, no-c-format
+msgid "New \"Reporting Bugs\" chapter in manual"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1765
+#, no-c-format
+msgid "Release 1.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1767
+#, no-c-format
+msgid "Release date: 2005/09/09"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1769
+#, no-c-format
+msgid ""
+"Contains important bug fixes and a few improvements. In particular, it fixes "
+"a memory leak preventing successful build of GiST indexes for large spatial "
+"tables."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1776
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 you <emphasis>DO NOT</emphasis> need "
+"a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1791
+#, no-c-format
+msgid "Memory leak plugged in GiST indexing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1793
+#, no-c-format
+msgid "Segfault fix in transform() handling of proj4 errors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1795
+#, no-c-format
+msgid "Fixed some proj4 texts in spatial_ref_sys (missing +proj)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1797
+#, no-c-format
+msgid ""
+"Loader: fixed string functions usage, reworked NULL objects check, fixed "
+"segfault on MULTILINESTRING input."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1800
+#, no-c-format
+msgid "Fixed bug in MakeLine dimension handling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1802
+#, no-c-format
+msgid "Fixed bug in translate() corrupting output bounding box"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1808
+#, no-c-format
+msgid "Documentation improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1810
+#, no-c-format
+msgid "More robust selectivity estimator"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1812
+#, no-c-format
+msgid "Minor speedup in distance()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1814
+#, no-c-format
+msgid "Minor cleanups"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1816
+#, no-c-format
+msgid "GiST indexing cleanup"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1818
+#, no-c-format
+msgid "Looser syntax acceptance in box3d parser"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1823
+#, no-c-format
+msgid "Release 1.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1825
+#, no-c-format
+msgid "Release date: 2005/08/08"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1827
+#, no-c-format
+msgid ""
+"Contains some bug fixes - <emphasis>including a severe one affecting "
+"correctness of stored geometries</emphasis> - and a few improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1834
+#, no-c-format
+msgid ""
+"Due to a bug in a bounding box computation routine, the upgrade procedure "
+"requires special attention, as bounding boxes cached in the database could "
+"be incorrect."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1838
+#, no-c-format
+msgid ""
+"An <link linkend=\"hard_upgrade\">hard upgrade</link> procedure (dump/"
+"reload) will force recomputation of all bounding boxes (not included in "
+"dumps). This is <emphasis>required</emphasis> if upgrading from releases "
+"prior to 1.0.0RC6."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1843
+#, no-c-format
+msgid ""
+"If you are upgrading from versions 1.0.0RC6 or up, this release includes a "
+"perl script (utils/rebuild_bbox_caches.pl) to force recomputation of "
+"geometries' bounding boxes and invoke all operations required to propagate "
+"eventual changes in them (geometry statistics update, reindexing). Invoke "
+"the script after a make install (run with no args for syntax help). "
+"Optionally run utils/postgis_proc_upgrade.pl to refresh postgis procedures "
+"and functions signatures (see <link linkend=\"soft_upgrade\">Soft upgrade</"
+"link>)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1856
+#, no-c-format
+msgid "Severe bugfix in lwgeom's 2d bounding box computation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1858
+#, no-c-format
+msgid "Bugfix in WKT (-w) POINT handling in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1860
+#, no-c-format
+msgid "Bugfix in dumper on 64bit machines"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1862
+#, no-c-format
+msgid "Bugfix in dumper handling of user-defined queries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1864
+#, no-c-format
+msgid "Bugfix in create_undef.pl script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1870
+#, no-c-format
+msgid "Small performance improvement in canonical input function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1872
+#, no-c-format
+msgid "Minor cleanups in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1874
+#, no-c-format
+msgid "Support for multibyte field names in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1876
+#, no-c-format
+msgid "Improvement in the postgis_restore.pl script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1878
+#, no-c-format
+msgid "New rebuild_bbox_caches.pl util script"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1883
+#, no-c-format
+msgid "Release 1.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1885
+#, no-c-format
+msgid "Release date: 2005/07/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1892 release_notes.xml:1932
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC6 or up you <emphasis>DO NOT</"
+"emphasis> need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1895 release_notes.xml:1935
+#, no-c-format
+msgid ""
+"Upgrading from older releases requires a dump/reload. See the <link linkend="
+"\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1903
+#, no-c-format
+msgid "Fault tolerant btree ops"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1905
+#, no-c-format
+msgid "Memory leak plugged in pg_error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1907
+#, no-c-format
+msgid "Rtree index fix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1909
+#, no-c-format
+msgid "Cleaner build scripts (avoided mix of CFLAGS and CXXFLAGS)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1916
+#, no-c-format
+msgid "New index creation capabilities in loader (-I switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1918
+#, no-c-format
+msgid "Initial support for postgresql 8.1dev"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1923
+#, no-c-format
+msgid "Release 1.0.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1925
+#, no-c-format
+msgid "Release date: 2005/05/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1927
+#, no-c-format
+msgid "Contains a few bug fixes and some improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1943
+#, no-c-format
+msgid "BUGFIX in 3d computation of length_spheroid()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1945
+#, no-c-format
+msgid "BUGFIX in join selectivity estimator"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1949 release_notes.xml:2005
+#, no-c-format
+msgid "Other changes/additions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1951
+#, no-c-format
+msgid "BUGFIX in shp2pgsql escape functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1953
+#, no-c-format
+msgid "better support for concurrent postgis in multiple schemas"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1955
+#, no-c-format
+msgid "documentation fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1957
+#, no-c-format
+msgid "jdbc2: compile with \"-target 1.2 -source 1.2\" by default"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1959
+#, no-c-format
+msgid "NEW -k switch for pgsql2shp"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1961
+#, no-c-format
+msgid "NEW support for custom createdb options in postgis_restore.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1964
+#, no-c-format
+msgid "BUGFIX in pgsql2shp attribute names unicity enforcement"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1966
+#, no-c-format
+msgid "BUGFIX in Paris projections definitions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1968
+#, no-c-format
+msgid "postgis_restore.pl cleanups"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1973
+#, no-c-format
+msgid "Release 1.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1975
+#, no-c-format
+msgid "Release date: 2005/04/19"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1977
+#, no-c-format
+msgid ""
+"Final 1.0.0 release. Contains a few bug fixes, some improvements in the "
+"loader (most notably support for older postgis versions), and more docs."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1984
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC6 you <emphasis>DO NOT</emphasis> "
+"need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1987 release_notes.xml:2078
+#, no-c-format
+msgid ""
+"Upgrading from any other precedent release requires a dump/reload. See the "
+"<link linkend=\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1995
+#, no-c-format
+msgid "BUGFIX in transform() releasing random memory address"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1997
+#, no-c-format
+msgid "BUGFIX in force_3dm() allocating less memory then required"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2000
+#, no-c-format
+msgid "BUGFIX in join selectivity estimator (defaults, leaks, tuplecount, sd)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2007
+#, no-c-format
+msgid "BUGFIX in shp2pgsql escape of values starting with tab or single-quote"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2010
+#, no-c-format
+msgid "NEW manual pages for loader/dumper"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2012
+#, no-c-format
+msgid "NEW shp2pgsql support for old (HWGEOM) postgis versions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2014
+#, no-c-format
+msgid "NEW -p (prepare) flag for shp2pgsql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2016
+#, no-c-format
+msgid "NEW manual chapter about OGC compliancy enforcement"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2018
+#, no-c-format
+msgid "NEW autoconf support for JTS lib"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2020
+#, no-c-format
+msgid "BUGFIX in estimator testers (support for LWGEOM and schema parsing)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2026
+#, no-c-format
+msgid "Release 1.0.0RC6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2028
+#, no-c-format
+msgid "Release date: 2005/03/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2030
+#, no-c-format
+msgid ""
+"Sixth release candidate for 1.0.0. Contains a few bug fixes and cleanups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2036 release_notes.xml:2112 release_notes.xml:2179
+#: release_notes.xml:2276 release_notes.xml:2330
+#, no-c-format
+msgid ""
+"You need a dump/reload to upgrade from precedent releases. See the <link "
+"linkend=\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2044
+#, no-c-format
+msgid "BUGFIX in multi()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2046
+#, no-c-format
+msgid "early return [when noop] from multi()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2050 release_notes.xml:2136 release_notes.xml:2209
+#: release_notes.xml:2301
+#, no-c-format
+msgid "Scripts changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2052
+#, no-c-format
+msgid "dropped {x,y}{min,max}(box2d) functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2058
+#, no-c-format
+msgid "BUGFIX in postgis_restore.pl scrip"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2060
+#, no-c-format
+msgid "BUGFIX in dumper's 64bit support"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2065
+#, no-c-format
+msgid "Release 1.0.0RC5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2067
+#, no-c-format
+msgid "Release date: 2005/03/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2069
+#, no-c-format
+msgid ""
+"Fifth release candidate for 1.0.0. Contains a few bug fixes and a "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2075
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC4 you <emphasis>DO NOT</emphasis> "
+"need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2086
+#, no-c-format
+msgid "BUGFIX (segfaulting) in box3d computation (yes, another!)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2089
+#, no-c-format
+msgid "BUGFIX (segfaulting) in estimated_extent()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2095
+#, no-c-format
+msgid "Small build scripts and utilities refinements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2097
+#, no-c-format
+msgid "Additional performance tips documented."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2102
+#, no-c-format
+msgid "Release 1.0.0RC4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2104
+#, no-c-format
+msgid "Release date: 2005/03/18"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2106
+#, no-c-format
+msgid ""
+"Fourth release candidate for 1.0.0. Contains bug fixes and a few "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2120
+#, no-c-format
+msgid "BUGFIX (segfaulting) in geom_accum()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2122
+#, no-c-format
+msgid "BUGFIX in 64bit architectures support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2124
+#, no-c-format
+msgid "BUGFIX in box3d computation function with collections."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2126
+#, no-c-format
+msgid "NEW subselects support in selectivity estimator."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2128
+#, no-c-format
+msgid "Early return from force_collection."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2130
+#, no-c-format
+msgid "Consistency check fix in SnapToGrid()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2132
+#, no-c-format
+msgid "Box2d output changed back to 15 significant digits."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2138
+#, no-c-format
+msgid "NEW distance_sphere() function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2140
+#, no-c-format
+msgid ""
+"Changed get_proj4_from_srid implementation to use PL/PGSQL instead of SQL."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2147
+#, no-c-format
+msgid "BUGFIX in loader and dumper handling of MultiLine shapes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2149
+#, no-c-format
+msgid "BUGFIX in loader, skipping all but first hole of polygons."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2152
+#, no-c-format
+msgid "jdbc2: code cleanups, Makefile improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2154
+#, no-c-format
+msgid ""
+"FLEX and YACC variables set *after* pgsql Makefile.global is included and "
+"only if the pgsql *stripped* version evaluates to the empty string"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2158
+#, no-c-format
+msgid "Added already generated parser in release"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2160
+#, no-c-format
+msgid "Build scripts refinements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2162
+#, no-c-format
+msgid "improved version handling, central Version.config"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2164
+#, no-c-format
+msgid "improvements in postgis_restore.pl"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2169
+#, no-c-format
+msgid "Release 1.0.0RC3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2171
+#, no-c-format
+msgid "Release date: 2005/02/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2173
+#, no-c-format
+msgid ""
+"Third release candidate for 1.0.0. Contains many bug fixes and improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2187
+#, no-c-format
+msgid "BUGFIX in transform(): missing SRID, better error handling."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2190
+#, no-c-format
+msgid "BUGFIX in memory alignment handling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2192
+#, no-c-format
+msgid ""
+"BUGFIX in force_collection() causing mapserver connector failures on simple "
+"(single) geometry types."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2195
+#, no-c-format
+msgid "BUGFIX in GeometryFromText() missing to add a bbox cache."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2197
+#, no-c-format
+msgid "reduced precision of box2d output."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2199
+#, no-c-format
+msgid "prefixed DEBUG macros with PGIS_ to avoid clash with pgsql one"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2202
+#, no-c-format
+msgid "plugged a leak in GEOS2POSTGIS converter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2204
+#, no-c-format
+msgid "Reduced memory usage by early releasing query-context palloced one."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2211
+#, no-c-format
+msgid "BUGFIX in 72 index bindings."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2213
+#, no-c-format
+msgid ""
+"BUGFIX in probe_geometry_columns() to work with PG72 and support multiple "
+"geometry columns in a single table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2216
+#, no-c-format
+msgid "NEW bool::text cast"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2218
+#, no-c-format
+msgid "Some functions made IMMUTABLE from STABLE, for performance improvement."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2225
+#, no-c-format
+msgid "jdbc2: small patches, box2d/3d tests, revised docs and license."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2228
+#, no-c-format
+msgid "jdbc2: bug fix and testcase in for pgjdbc 8.0 type autoregistration"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2231
+#, no-c-format
+msgid ""
+"jdbc2: Removed use of jdk1.4 only features to enable build with older jdk "
+"releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2234
+#, no-c-format
+msgid "jdbc2: Added support for building against pg72jdbc2.jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2236
+#, no-c-format
+msgid "jdbc2: updated and cleaned makefile"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2238
+#, no-c-format
+msgid "jdbc2: added BETA support for jts geometry classes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2240
+#, no-c-format
+msgid "jdbc2: Skip known-to-fail tests against older PostGIS servers."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2243
+#, no-c-format
+msgid "jdbc2: Fixed handling of measured geometries in EWKT."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2249
+#, no-c-format
+msgid "new performance tips chapter in manual"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2251
+#, no-c-format
+msgid "documentation updates: pgsql72 requirement, lwpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2253
+#, no-c-format
+msgid "few changes in autoconf"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2255
+#, no-c-format
+msgid "BUILDDATE extraction made more portable"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2257
+#, no-c-format
+msgid "fixed spatial_ref_sys.sql to avoid vacuuming the whole database."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2260
+#, no-c-format
+msgid ""
+"spatial_ref_sys: changed Paris entries to match the ones distributed with 0."
+"x."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2266
+#, no-c-format
+msgid "Release 1.0.0RC2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2268
+#, no-c-format
+msgid "Release date: 2005/01/26"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2270
+#, no-c-format
+msgid ""
+"Second release candidate for 1.0.0 containing bug fixes and a few "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2284
+#, no-c-format
+msgid "BUGFIX in pointarray box3d computation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2286
+#, no-c-format
+msgid "BUGFIX in distance_spheroid definition"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2288
+#, no-c-format
+msgid "BUGFIX in transform() missing to update bbox cache"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2290
+#, no-c-format
+msgid "NEW jdbc driver (jdbc2)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2292
+#, no-c-format
+msgid "GEOMETRYCOLLECTION(EMPTY) syntax support for backward compatibility"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2295
+#, no-c-format
+msgid "Faster binary outputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2297
+#, no-c-format
+msgid "Stricter OGC WKB/WKT constructors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2303
+#, no-c-format
+msgid "More correct STABLE, IMMUTABLE, STRICT uses in lwpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2306
+#, no-c-format
+msgid "stricter OGC WKB/WKT constructors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2312
+#, no-c-format
+msgid "Faster and more robust loader (both i18n and not)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2314
+#, no-c-format
+msgid "Initial autoconf script"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2319
+#, no-c-format
+msgid "Release 1.0.0RC1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2321
+#, no-c-format
+msgid "Release date: 2005/01/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2323
+#, no-c-format
+msgid ""
+"This is the first candidate of a major postgis release, with internal "
+"storage of postgis types redesigned to be smaller and faster on indexed "
+"queries."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2338
+#, no-c-format
+msgid "Faster canonical input parsing."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2340
+#, no-c-format
+msgid "Lossless canonical output."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2342
+#, no-c-format
+msgid "EWKB Canonical binary IO with PG>73."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2344
+#, no-c-format
+msgid ""
+"Support for up to 4d coordinates, providing lossless shapefile->postgis-"
+">shapefile conversion."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2347
+#, no-c-format
+msgid ""
+"New function: UpdateGeometrySRID(), AsGML(), SnapToGrid(), ForceRHR(), "
+"estimated_extent(), accum()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2350
+#, no-c-format
+msgid "Vertical positioning indexed operators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2352
+#, no-c-format
+msgid "JOIN selectivity function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2354
+#, no-c-format
+msgid "More geometry constructors / editors."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2356
+#, no-c-format
+msgid "PostGIS extension API."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2358
+#, no-c-format
+msgid "UTF8 support in loader."
+msgstr ""
diff --git a/doc/po/ko_KR/reporting.xml.po b/doc/po/ko_KR/reporting.xml.po
new file mode 100644
index 0000000..0e82590
--- /dev/null
+++ b/doc/po/ko_KR/reporting.xml.po
@@ -0,0 +1,171 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-26 14:23+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis-1/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: reporting.xml:3
+#, no-c-format
+msgid "Reporting Problems"
+msgstr ""
+
+#. Tag: title
+#: reporting.xml:6
+#, no-c-format
+msgid "Reporting Software Bugs"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:8
+#, no-c-format
+msgid ""
+"Reporting bugs effectively is a fundamental way to help PostGIS development. "
+"The most effective bug report is that enabling PostGIS developers to "
+"reproduce it, so it would ideally contain a script triggering it and every "
+"information regarding the environment in which it was detected. Good enough "
+"info can be extracted running <code>SELECT postgis_full_version()</code> "
+"[for postgis] and <code>SELECT version()</code> [for postgresql]."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:16
+#, no-c-format
+msgid ""
+"If you aren't using the latest release, it's worth taking a look at its "
+"<ulink url=\"http://svn.osgeo.org/postgis/trunk/NEWS\">release changelog</"
+"ulink> first, to find out if your bug has already been fixed."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:21
+#, no-c-format
+msgid ""
+"Using the <ulink url=\"http://trac.osgeo.org/postgis/\">PostGIS bug tracker</"
+"ulink> will ensure your reports are not discarded, and will keep you "
+"informed on its handling process. Before reporting a new bug please query "
+"the database to see if it is a known one, and if it is please add any new "
+"information you have about it."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:28
+#, no-c-format
+msgid ""
+"You might want to read Simon Tatham's paper about <ulink url=\"http://www."
+"chiark.greenend.org.uk/~sgtatham/bugs.html\">How to Report Bugs Effectively</"
+"ulink> before filing a new report."
+msgstr ""
+
+#. Tag: title
+#: reporting.xml:34
+#, no-c-format
+msgid "Reporting Documentation Issues"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:36
+#, no-c-format
+msgid ""
+"The documentation should accurately reflect the features and behavior of the "
+"software. If it doesn't, it could be because of a software bug or because "
+"the documentation is in error or deficient."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:40
+#, no-c-format
+msgid ""
+"Documentation issues can also be reported to the <ulink url=\"http://trac."
+"osgeo.org/postgis\">PostGIS bug tracker</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:44
+#, no-c-format
+msgid ""
+"If your revision is trivial, just describe it in a new bug tracker issue, "
+"being specific about its location in the documentation."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:47
+#, no-c-format
+msgid ""
+"If your changes are more extensive, a Subversion patch is definitely "
+"preferred. This is a four step process on Unix (assuming you already have "
+"<ulink url=\"http://subversion.apache.org/\">Subversion</ulink> installed):"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:54
+#, no-c-format
+msgid "Check out a copy of PostGIS' Subversion trunk. On Unix, type:"
+msgstr ""
+
+#. Tag: command
+#: reporting.xml:57
+#, no-c-format
+msgid "svn checkout http://svn.osgeo.org/postgis/trunk/"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:60
+#, no-c-format
+msgid "This will be stored in the directory ./trunk"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:64
+#, no-c-format
+msgid ""
+"Make your changes to the documentation with your favorite text editor. On "
+"Unix, type (for example):"
+msgstr ""
+
+#. Tag: command
+#: reporting.xml:67
+#, no-c-format
+msgid "vim trunk/doc/postgis.xml"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:69
+#, no-c-format
+msgid ""
+"Note that the documentation is written in DocBook XML rather than HTML, so "
+"if you are not familiar with it please follow the example of the rest of the "
+"documentation."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:75
+#, no-c-format
+msgid ""
+"Make a patch file containing the differences from the master copy of the "
+"documentation. On Unix, type:"
+msgstr ""
+
+#. Tag: command
+#: reporting.xml:78
+#, no-c-format
+msgid "svn diff trunk/doc/postgis.xml > doc.patch"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:83
+#, no-c-format
+msgid "Attach the patch to a new issue in bug tracker."
+msgstr ""
diff --git a/doc/po/ko_KR/using_postgis_app.xml.po b/doc/po/ko_KR/using_postgis_app.xml.po
new file mode 100644
index 0000000..ce6aa44
--- /dev/null
+++ b/doc/po/ko_KR/using_postgis_app.xml.po
@@ -0,0 +1,798 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-26 14:23+0000\n"
+"Last-Translator: georgersilva <georger.silva at gmail.com>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis-1/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: using_postgis_app.xml:3
+#, no-c-format
+msgid "Using PostGIS Geometry: Building Applications"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:5
+#, no-c-format
+msgid "Using MapServer"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:7
+#, no-c-format
+msgid ""
+"The Minnesota MapServer is an internet web-mapping server which conforms to "
+"the OpenGIS Web Mapping Server specification."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:12
+#, no-c-format
+msgid ""
+"The MapServer homepage is at <ulink url=\"http://mapserver.org\">http://"
+"mapserver.org</ulink>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:17
+#, no-c-format
+msgid ""
+"The OpenGIS Web Map Specification is at <ulink url=\"http://www."
+"opengeospatial.org/standards/wms\">http://www.opengeospatial.org/standards/"
+"wms</ulink>."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:23
+#, no-c-format
+msgid "Basic Usage"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:25
+#, no-c-format
+msgid ""
+"To use PostGIS with MapServer, you will need to know about how to configure "
+"MapServer, which is beyond the scope of this documentation. This section "
+"will cover specific PostGIS issues and configuration details."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:30
+#, no-c-format
+msgid "To use PostGIS with MapServer, you will need:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:34
+#, no-c-format
+msgid "Version 0.6 or newer of PostGIS."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:38
+#, no-c-format
+msgid "Version 3.5 or newer of MapServer."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:42
+#, no-c-format
+msgid ""
+"MapServer accesses PostGIS/PostgreSQL data like any other PostgreSQL client "
+"-- using the <filename>libpq</filename> interface. This means that MapServer "
+"can be installed on any machine with network access to the PostGIS server, "
+"and use PostGIS as a source of data. The faster the connection between the "
+"systems, the better."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:50
+#, no-c-format
+msgid ""
+"Compile and install MapServer, with whatever options you desire, including "
+"the \"--with-postgis\" configuration option."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:55
+#, no-c-format
+msgid "In your MapServer map file, add a PostGIS layer. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:58
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"widehighways\" \n"
+"  # Connect to a remote spatial database\n"
+"  CONNECTION \"user=dbuser dbname=gisdatabase host=bigserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  # Get the lines from the 'geom' column of the 'roads' table \n"
+"  DATA \"geom from roads using srid=4326 using unique gid\" \n"
+"  STATUS ON\n"
+"  TYPE LINE \n"
+"  # Of the lines in the extents, only render the wide highways \n"
+"  FILTER \"type = 'highway' and numlanes >= 4\" \n"
+"  CLASS \n"
+"    # Make the superhighways brighter and 2 pixels wide\n"
+"    EXPRESSION ([numlanes] >= 6) \n"
+"    STYLE\n"
+"      COLOR 255 22 22 \n"
+"      WIDTH 2 \n"
+"    END\n"
+"  END \n"
+"  CLASS \n"
+"    # All the rest are darker and only 1 pixel wide \n"
+"    EXPRESSION ([numlanes] < 6) \n"
+"    STYLE\n"
+"      COLOR 205 92 82\n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:60
+#, no-c-format
+msgid "In the example above, the PostGIS-specific directives are as follows:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:65
+#, no-c-format
+msgid "CONNECTIONTYPE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:68
+#, no-c-format
+msgid "For PostGIS layers, this is always \"postgis\"."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:73
+#, no-c-format
+msgid "CONNECTION"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:76
+#, no-c-format
+msgid ""
+"The database connection is governed by the a 'connection string' which is a "
+"standard set of keys and values like this (with the default values in <"
+">):"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:80
+#, no-c-format
+msgid ""
+"user=<username> password=<password> dbname=<username> "
+"hostname=<server> port=<5432>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:84
+#, no-c-format
+msgid ""
+"An empty connection string is still valid, and any of the key/value pairs "
+"can be omitted. At a minimum you will generally supply the database name and "
+"username to connect with."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:92
+#, no-c-format
+msgid "DATA"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:95
+#, no-c-format
+msgid ""
+"The form of this parameter is \"<geocolumn> from <tablename> "
+"using srid=<srid> using unique <primary key>\" where the column "
+"is the spatial column to be rendered to the map, the SRID is SRID used by "
+"the column and the primary key is the table primary key (or any other "
+"uniquely-valued column with an index)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:99
+#, no-c-format
+msgid ""
+"You can omit the \"using srid\" and \"using unique\" clauses and MapServer "
+"will automatically determine the correct values if possible, but at the cost "
+"of running a few extra queries on the server for each map draw."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:106
+#, no-c-format
+msgid "PROCESSING"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:109
+#, no-c-format
+msgid ""
+"Putting in a CLOSE_CONNECTION=DEFER if you have multiple layers reuses "
+"existing connections instead of closing them. This improves speed. Refer to "
+"for <ulink url=\"http://blog.cleverelephant.ca/2008/10/mapserverpostgis-"
+"performance-tips.html\">MapServer PostGIS Performance Tips</ulink> for a "
+"more detailed explanation."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:115
+#, no-c-format
+msgid "FILTER"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:118
+#, no-c-format
+msgid ""
+"The filter must be a valid SQL string corresponding to the logic normally "
+"following the \"WHERE\" keyword in a SQL query. So, for example, to render "
+"only roads with 6 or more lanes, use a filter of \"num_lanes >= 6\"."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:128
+#, no-c-format
+msgid ""
+"In your spatial database, ensure you have spatial (GiST) indexes built for "
+"any the layers you will be drawing."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:131
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:135
+#, no-c-format
+msgid ""
+"If you will be querying your layers using MapServer you will also need to "
+"use the \"using unique\" clause in your DATA statement."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:138
+#, no-c-format
+msgid ""
+"MapServer requires unique identifiers for each spatial record when doing "
+"queries, and the PostGIS module of MapServer uses the unique value you "
+"specify in order to provide these unique identifiers. Using the table "
+"primary key is the best practice."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:147
+#, no-c-format
+msgid "Frequently Asked Questions"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:152
+#, no-c-format
+msgid ""
+"When I use an <varname>EXPRESSION</varname> in my map file, the condition "
+"never returns as true, even though I know the values exist in my table."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:158
+#, no-c-format
+msgid ""
+"Unlike shape files, PostGIS field names have to be referenced in EXPRESSIONS "
+"using <emphasis>lower case</emphasis>."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:162
+#, no-c-format
+msgid "EXPRESSION ([numlanes] >= 6)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:168
+#, no-c-format
+msgid ""
+"The FILTER I use for my Shape files is not working for my PostGIS table of "
+"the same data."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:173
+#, no-c-format
+msgid ""
+"Unlike shape files, filters for PostGIS layers use SQL syntax (they are "
+"appended to the SQL statement the PostGIS connector generates for drawing "
+"layers in MapServer)."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:177
+#, no-c-format
+msgid "FILTER \"type = 'highway' and numlanes >= 4\""
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:183
+#, no-c-format
+msgid ""
+"My PostGIS layer draws much slower than my Shape file layer, is this normal?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:188
+#, no-c-format
+msgid ""
+"In general, the more features you are drawing into a given map, the more "
+"likely it is that PostGIS will be slower than Shape files. For maps with "
+"relatively few features (100s), PostGIS will often be faster. For maps with "
+"high feature density (1000s), PostGIS will always be slower."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:194
+#, no-c-format
+msgid ""
+"If you are finding substantial draw performance problems, it is possible "
+"that you have not built a spatial index on your table."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:198
+#, no-c-format
+msgid ""
+"postgis# CREATE INDEX geotable_gix ON geotable USING GIST ( geocolumn ); \n"
+"postgis# VACUUM ANALYZE;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:204
+#, no-c-format
+msgid ""
+"My PostGIS layer draws fine, but queries are really slow. What is wrong?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:209
+#, no-c-format
+msgid ""
+"For queries to be fast, you must have a unique key for your spatial table "
+"and you must have an index on that unique key."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:213
+#, no-c-format
+msgid ""
+"You can specify what unique key for mapserver to use with the <varname>USING "
+"UNIQUE</varname> clause in your <varname>DATA</varname> line:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:217
+#, no-c-format
+msgid "DATA \"geom FROM geotable USING UNIQUE gid\""
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:224
+#, no-c-format
+msgid ""
+"Can I use \"geography\" columns (new in PostGIS 1.5) as a source for "
+"MapServer layers?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:229
+#, no-c-format
+msgid ""
+"Yes! MapServer understands geography columns as being the same as geometry "
+"columns, but always using an SRID of 4326. Just make sure to include a "
+"\"using srid=4326\" clause in your <varname>DATA</varname> statement. "
+"Everything else works exactly the same as with geometry."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:234
+#, no-c-format
+msgid "DATA \"geog FROM geogtable USING SRID=4326 USING UNIQUE gid\""
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:244
+#, no-c-format
+msgid "Advanced Usage"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:246
+#, no-c-format
+msgid ""
+"The <varname>USING</varname> pseudo-SQL clause is used to add some "
+"information to help mapserver understand the results of more complex "
+"queries. More specifically, when either a view or a subselect is used as the "
+"source table (the thing to the right of \"FROM\" in a <varname>DATA</"
+"varname> definition) it is more difficult for mapserver to automatically "
+"determine a unique identifier for each row and also the SRID for the table. "
+"The <varname>USING</varname> clause can provide mapserver with these two "
+"pieces of information as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:255
+#, no-c-format
+msgid ""
+"DATA \"geom FROM (\n"
+"  SELECT \n"
+"    table1.geom AS geom, \n"
+"    table1.gid AS gid, \n"
+"    table2.data AS data \n"
+"  FROM table1 \n"
+"  LEFT JOIN table2 \n"
+"  ON table1.id = table2.id\n"
+") AS new_table USING UNIQUE gid USING SRID=4326\""
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:259
+#, no-c-format
+msgid "USING UNIQUE <uniqueid>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:262
+#, no-c-format
+msgid ""
+"MapServer requires a unique id for each row in order to identify the row "
+"when doing map queries. Normally it identifies the primary key from the "
+"system tables. However, views and subselects don't automatically have an "
+"known unique column. If you want to use MapServer's query functionality, you "
+"need to ensure your view or subselect includes a uniquely valued column, and "
+"declare it with <varname>USING UNIQUE</varname>. For example, you could "
+"explicitly select nee of the table's primary key values for this purpose, or "
+"any other column which is guaranteed to be unique for the result set."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:273
+#, no-c-format
+msgid ""
+"\"Querying a Map\" is the action of clicking on a map to ask for information "
+"about the map features in that location. Don't confuse \"map queries\" with "
+"the SQL query in a <varname>DATA</varname> definition."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:282
+#, no-c-format
+msgid "USING SRID=<srid>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:285
+#, no-c-format
+msgid ""
+"PostGIS needs to know which spatial referencing system is being used by the "
+"geometries in order to return the correct data back to MapServer. Normally "
+"it is possible to find this information in the \"geometry_columns\" table in "
+"the PostGIS database, however, this is not possible for tables which are "
+"created on the fly such as subselects and views. So the <varname>USING "
+"SRID=</varname> option allows the correct SRID to be specified in the "
+"<varname>DATA</varname> definition."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:300
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:302
+#, no-c-format
+msgid ""
+"Lets start with a simple example and work our way up. Consider the following "
+"MapServer layer definition:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:305
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"roads\"\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom from roads\" \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  CLASS \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:307
+#, no-c-format
+msgid ""
+"This layer will display all the road geometries in the roads table as black "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:310
+#, no-c-format
+msgid ""
+"Now lets say we want to show only the highways until we get zoomed in to at "
+"least a 1:100000 scale - the next two layers will achieve this effect:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:314
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\"\n"
+"  MINSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  FILTER \"road_type = 'highway'\" \n"
+"  CLASS \n"
+"    COLOR 0 0 0 \n"
+"  END \n"
+"END \n"
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\" \n"
+"  MAXSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE\n"
+"  CLASSITEM road_type \n"
+"  CLASS \n"
+"    EXPRESSION \"highway\" \n"
+"    STYLE\n"
+"      WIDTH 2 \n"
+"      COLOR 255 0 0  \n"
+"    END\n"
+"  END \n"
+"  CLASS  \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:316
+#, no-c-format
+msgid ""
+"The first layer is used when the scale is greater than 1:100000, and "
+"displays only the roads of type \"highway\" as black lines. The "
+"<varname>FILTER</varname> option causes only roads of type \"highway\" to be "
+"displayed."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:321
+#, no-c-format
+msgid ""
+"The second layer is used when the scale is less than 1:100000, and will "
+"display highways as double-thick red lines, and other roads as regular black "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:325
+#, no-c-format
+msgid ""
+"So, we have done a couple of interesting things using only MapServer "
+"functionality, but our <varname>DATA</varname> SQL statement has remained "
+"simple. Suppose that the name of the road is stored in another table (for "
+"whatever reason) and we need to do a join to get it and label our roads."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:331
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom FROM (SELECT roads.gid AS gid, roads.geom AS geom, \n"
+"        road_names.name as name FROM roads LEFT JOIN road_names ON \n"
+"        roads.road_name_id = road_names.road_name_id) \n"
+"        AS named_roads USING UNIQUE gid USING SRID=4326\" \n"
+"  MAXSCALE 20000 \n"
+"  STATUS ON \n"
+"  TYPE ANNOTATION \n"
+"  LABELITEM name\n"
+"  CLASS \n"
+"    LABEL \n"
+"      ANGLE auto \n"
+"      SIZE 8 \n"
+"      COLOR 0 192 0 \n"
+"      TYPE truetype \n"
+"      FONT arial\n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:333
+#, no-c-format
+msgid ""
+"This annotation layer adds green labels to all the roads when the scale gets "
+"down to 1:20000 or less. It also demonstrates how to use an SQL join in a "
+"<varname>DATA</varname> definition."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:340
+#, no-c-format
+msgid "Java Clients (JDBC)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:342
+#, no-c-format
+msgid ""
+"Java clients can access PostGIS \"geometry\" objects in the PostgreSQL "
+"database either directly as text representations or using the JDBC extension "
+"objects bundled with PostGIS. In order to use the extension objects, the "
+"\"postgis.jar\" file must be in your CLASSPATH along with the \"postgresql."
+"jar\" JDBC driver package."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:348
+#, no-c-format
+msgid ""
+"import java.sql.*; \n"
+"import java.util.*; \n"
+"import java.lang.*; \n"
+"import org.postgis.*; \n"
+"\n"
+"public class JavaGIS { \n"
+"\n"
+"public static void main(String[] args) { \n"
+"\n"
+"  java.sql.Connection conn; \n"
+"\n"
+"  try { \n"
+"    /* \n"
+"    * Load the JDBC driver and establish a connection. \n"
+"    */\n"
+"    Class.forName(\"org.postgresql.Driver\"); \n"
+"    String url = \"jdbc:postgresql://localhost:5432/database\"; \n"
+"    conn = DriverManager.getConnection(url, \"postgres\", \"\"); \n"
+"    /* \n"
+"    * Add the geometry types to the connection. Note that you \n"
+"    * must cast the connection to the pgsql-specific connection \n"
+"    * implementation before calling the addDataType() method. \n"
+"    */\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"geometry\",Class."
+"forName(\"org.postgis.PGgeometry\"));\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"box3d\",Class."
+"forName(\"org.postgis.PGbox3d\"));\n"
+"    /* \n"
+"    * Create a statement and execute a select query. \n"
+"    */ \n"
+"    Statement s = conn.createStatement(); \n"
+"    ResultSet r = s.executeQuery(\"select geom,id from geomtable\"); \n"
+"    while( r.next() ) { \n"
+"      /* \n"
+"      * Retrieve the geometry as an object then cast it to the geometry "
+"type. \n"
+"      * Print things out. \n"
+"      */ \n"
+"      PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"      int id = r.getInt(2); \n"
+"      System.out.println(\"Row \" + id + \":\");\n"
+"      System.out.println(geom.toString()); \n"
+"    } \n"
+"    s.close(); \n"
+"    conn.close(); \n"
+"  } \n"
+"catch( Exception e ) { \n"
+"  e.printStackTrace(); \n"
+"  } \n"
+"} \n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:350
+#, no-c-format
+msgid ""
+"The \"PGgeometry\" object is a wrapper object which contains a specific "
+"topological geometry object (subclasses of the abstract class \"Geometry\") "
+"depending on the type: Point, LineString, Polygon, MultiPoint, "
+"MultiLineString, MultiPolygon."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:355
+#, no-c-format
+msgid ""
+"PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"if( geom.getType() == Geometry.POLYGON ) { \n"
+"  Polygon pl = (Polygon)geom.getGeometry(); \n"
+"  for( int r = 0; r < pl.numRings(); r++) { \n"
+"    LinearRing rng = pl.getRing(r); \n"
+"    System.out.println(\"Ring: \" + r); \n"
+"    for( int p = 0; p < rng.numPoints(); p++ ) { \n"
+"      Point pt = rng.getPoint(p); \n"
+"      System.out.println(\"Point: \" + p);\n"
+"      System.out.println(pt.toString()); \n"
+"    } \n"
+"  } \n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:357
+#, no-c-format
+msgid ""
+"The JavaDoc for the extension objects provides a reference for the various "
+"data accessor functions in the geometric objects."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:362
+#, no-c-format
+msgid "C Clients (libpq)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:364 using_postgis_app.xml:369
+#: using_postgis_app.xml:375
+#, no-c-format
+msgid "<para>...</para>"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:367
+#, no-c-format
+msgid "Text Cursors"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:373
+#, no-c-format
+msgid "Binary Cursors"
+msgstr ""
diff --git a/doc/po/ko_KR/using_postgis_dataman.xml.po b/doc/po/ko_KR/using_postgis_dataman.xml.po
new file mode 100644
index 0000000..54b24e2
--- /dev/null
+++ b/doc/po/ko_KR/using_postgis_dataman.xml.po
@@ -0,0 +1,3911 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# BJ Jang <qgis.tr.kr at gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:16+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: using_postgis_dataman.xml:3
+#, no-c-format
+msgid "Using PostGIS: Data Management and Queries"
+msgstr "PostGIS 사용하기: 데이터 관리 및 쿼리"
+
+#. Tag: title
+#: using_postgis_dataman.xml:6
+#, no-c-format
+msgid "GIS Objects"
+msgstr "GIS 오브젝트"
+
+#. Tag: para
+#: using_postgis_dataman.xml:8
+#, no-c-format
+msgid ""
+"The GIS objects supported by PostGIS are a superset of the \"Simple Features"
+"\" defined by the OpenGIS Consortium (OGC). As of version 0.9, PostGIS "
+"supports all the objects and functions specified in the OGC \"Simple "
+"Features for SQL\" specification."
+msgstr ""
+"PostGIS가 지원하는 GIS 오브젝트들은 OpenGIS 컨소시엄(OGC)에 의해 정의되는 "
+"“simple feature”들의 확장판입니다. 0.9 버전 기준으로, PostGIS는 OGC Simple "
+"Features for SQL”에 명시된 모든 오브젝트와 함수들을 지원합니다. "
+
+#. Tag: para
+#: using_postgis_dataman.xml:13
+#, no-c-format
+msgid ""
+"PostGIS extends the standard with support for 3DZ,3DM and 4D coordinates."
+msgstr "PostGIS e3DZ,3DM와 4D 좌표계 지원과 함께 표준을 확장하였습니다."
+
+#. Tag: title
+#: using_postgis_dataman.xml:17
+#, no-c-format
+msgid "OpenGIS WKB and WKT"
+msgstr "OpenGIS WKB 및 WKT"
+
+#. Tag: para
+#: using_postgis_dataman.xml:19
+#, no-c-format
+msgid ""
+"The OpenGIS specification defines two standard ways of expressing spatial "
+"objects: the Well-Known Text (WKT) form and the Well-Known Binary (WKB) "
+"form. Both WKT and WKB include information about the type of the object and "
+"the coordinates which form the object."
+msgstr ""
+"OpenGIS사양서에는 공간 오브젝트들을 나타내는 두 가지 표준 방법이 정의되어 있"
+"습니다: Well-Known Text (WKT) 형태와 Well-Known Binary (WKB) 형태. WKT와 WKB "
+"모두 오브젝트 타입과 오브젝트를 구성하는 좌표들에 대한 정보를 포함하고 있습니"
+"다."
+
+#. Tag: para
+#: using_postgis_dataman.xml:24
+#, no-c-format
+msgid ""
+"Examples of the text representations (WKT) of the spatial objects of the "
+"features are as follows:"
+msgstr ""
+"피쳐들의 공간 오브젝트들의 텍스트 문자열표현들(WKT) 의 예들로는 다음과 같은 "
+"것들이 있습니다:"
+
+#. Tag: para
+#: using_postgis_dataman.xml:29
+#, no-c-format
+msgid "POINT(0 0)"
+msgstr "POINT(0 0)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:33
+#, no-c-format
+msgid "LINESTRING(0 0,1 1,1 2)"
+msgstr "LINESTRING(0 0,1 1,1 2)"
+
+#. Tag: para
+#: using_postgis_dataman.xml:37
+#, no-c-format
+msgid "POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))"
+msgstr "POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:41
+#, no-c-format
+msgid "MULTIPOINT((0 0),(1 2))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:45
+#, no-c-format
+msgid "MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))"
+msgstr "MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:49
+#, no-c-format
+msgid ""
+"MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 "
+"-2,-2 -1,-1 -1)))"
+msgstr ""
+"MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 "
+"-2,-2 -1,-1 -1)))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:54
+#, no-c-format
+msgid "GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))"
+msgstr "GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))"
+
+#. Tag: para
+#: using_postgis_dataman.xml:58
+#, no-c-format
+msgid ""
+"The OpenGIS specification also requires that the internal storage format of "
+"spatial objects include a spatial referencing system identifier (SRID). The "
+"SRID is required when creating spatial objects for insertion into the "
+"database."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:63 using_postgis_dataman.xml:151
+#, no-c-format
+msgid ""
+"Input/Output of these formats are available using the following interfaces:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:66
+#, no-c-format
+msgid ""
+"bytea WKB = ST_AsBinary(geometry);\n"
+"text WKT = ST_AsText(geometry);\n"
+"geometry = ST_GeomFromWKB(bytea WKB, SRID);\n"
+"geometry = ST_GeometryFromText(text WKT, SRID);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:68
+#, no-c-format
+msgid ""
+"For example, a valid insert statement to create and insert an OGC spatial "
+"object would be:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:71
+#, no-c-format
+msgid ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromText('POINT(-126.4 45.32)', 312), 'A Place');"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:75
+#, no-c-format
+msgid "PostGIS EWKB, EWKT and Canonical Forms"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:77
+#, no-c-format
+msgid ""
+"OGC formats only support 2d geometries, and the associated SRID is *never* "
+"embedded in the input/output representations."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:80
+#, no-c-format
+msgid ""
+"PostGIS extended formats are currently superset of OGC one (every valid WKB/"
+"WKT is a valid EWKB/EWKT) but this might vary in the future, specifically if "
+"OGC comes out with a new format conflicting with our extensions. Thus you "
+"SHOULD NOT rely on this feature!"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:85
+#, no-c-format
+msgid ""
+"PostGIS EWKB/EWKT add 3dm,3dz,4d coordinates support and embedded SRID "
+"information."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:88
+#, no-c-format
+msgid ""
+"Examples of the text representations (EWKT) of the extended spatial objects "
+"of the features are as follows. The * ones are new in this version of "
+"PostGIS:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:93
+#, no-c-format
+msgid "POINT(0 0 0) -- XYZ"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:97
+#, no-c-format
+msgid "SRID=32632;POINT(0 0) -- XY with SRID"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:101
+#, no-c-format
+msgid "POINTM(0 0 0) -- XYM"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:105
+#, no-c-format
+msgid "POINT(0 0 0 0) -- XYZM"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:109
+#, no-c-format
+msgid "SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:113
+#, no-c-format
+msgid "MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:118
+#, no-c-format
+msgid ""
+"POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:123
+#, no-c-format
+msgid ""
+"MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 "
+"0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:128
+#, no-c-format
+msgid "GEOMETRYCOLLECTIONM( POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4 5) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:132
+#, no-c-format
+msgid "MULTICURVE( (0 0, 5 5), CIRCULARSTRING(4 0, 4 4, 8 4) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:136
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 "
+"1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, "
+"1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 "
+"1, 1 1 1, 0 1 1, 0 0 1)) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:142
+#, no-c-format
+msgid "TRIANGLE ((0 0, 0 9, 9 0, 0 0))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:146
+#, no-c-format
+msgid "TIN( ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)) )"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:154
+#, no-c-format
+msgid ""
+"bytea EWKB = ST_AsEWKB(geometry);\n"
+"text EWKT = ST_AsEWKT(geometry);\n"
+"geometry = ST_GeomFromEWKB(bytea EWKB);\n"
+"geometry = ST_GeomFromEWKT(text EWKT);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:156
+#, no-c-format
+msgid ""
+"For example, a valid insert statement to create and insert a PostGIS spatial "
+"object would be:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:159
+#, no-c-format
+msgid ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromEWKT('SRID=312;POINTM(-126.4 45.32 15)'), 'A Place' )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:161
+#, no-c-format
+msgid ""
+"The \"canonical forms\" of a PostgreSQL type are the representations you get "
+"with a simple query (without any function call) and the one which is "
+"guaranteed to be accepted with a simple insert, update or copy. For the "
+"postgis 'geometry' type these are:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:164
+#, no-c-format
+msgid ""
+"- Output\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB (EWKB in hex form)\n"
+"- Input\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB|EWKT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:166
+#, no-c-format
+msgid ""
+"For example this statement reads EWKT and returns HEXEWKB in the process of "
+"canonical ascii input/output:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:169
+#, no-c-format
+msgid ""
+"=# SELECT 'SRID=4;POINT(0 0)'::geometry;\n"
+"\n"
+"geometry\n"
+"----------------------------------------------------\n"
+"01010000200400000000000000000000000000000000000000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:172
+#, no-c-format
+msgid "SQL-MM Part 3"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:174
+#, no-c-format
+msgid ""
+"The SQL Multimedia Applications Spatial specification extends the simple "
+"features for SQL spec by defining a number of circularly interpolated curves."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:178
+#, no-c-format
+msgid ""
+"The SQL-MM definitions include 3dm, 3dz and 4d coordinates, but do not allow "
+"the embedding of SRID information."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:181
+#, no-c-format
+msgid ""
+"The well-known text extensions are not yet fully supported. Examples of some "
+"simple curved geometries are shown below:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:186
+#, no-c-format
+msgid "CIRCULARSTRING(0 0, 1 1, 1 0)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:187
+#, no-c-format
+msgid "CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:188
+#, no-c-format
+msgid ""
+"The CIRCULARSTRING is the basic curve type, similar to a LINESTRING in the "
+"linear world. A single segment required three points, the start and end "
+"points (first and third) and any other point on the arc. The exception to "
+"this is for a closed circle, where the start and end points are the same. In "
+"this case the second point MUST be the center of the arc, ie the opposite "
+"side of the circle. To chain arcs together, the last point of the previous "
+"arc becomes the first point of the next arc, just like in LINESTRING. This "
+"means that a valid circular string must have an odd number of points greated "
+"than 1."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:201
+#, no-c-format
+msgid "COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:202
+#, no-c-format
+msgid ""
+"A compound curve is a single, continuous curve that has both curved "
+"(circular) segments and linear segments. That means that in addition to "
+"having well-formed components, the end point of every component (except the "
+"last) must be coincident with the start point of the following component."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:210
+#, no-c-format
+msgid ""
+"CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:212
+#, no-c-format
+msgid ""
+"Example compound curve in a curve polygon: "
+"CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, "
+"1 4, 0 0)), CIRCULARSTRING(1.7 1, 1.4 0.4, 1.6 0.4, 1.6 0.5, 1.7 1) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:216
+#, no-c-format
+msgid ""
+"A CURVEPOLYGON is just like a polygon, with an outer ring and zero or more "
+"inner rings. The difference is that a ring can take the form of a circular "
+"string, linear string or compound string."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:220
+#, no-c-format
+msgid "As of PostGIS 1.4 PostGIS supports compound curves in a curve polygon."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:224
+#, no-c-format
+msgid "MULTICURVE((0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:225
+#, no-c-format
+msgid ""
+"The MULTICURVE is a collection of curves, which can include linear strings, "
+"circular strings or compound strings."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:230
+#, no-c-format
+msgid ""
+"MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, "
+"3 1, 1 1)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11)))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:233
+#, no-c-format
+msgid ""
+"This is a collection of surfaces, which can be (linear) polygons or curve "
+"polygons."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:239
+#, no-c-format
+msgid ""
+"PostGIS prior to 1.4 does not support compound curves in a curve polygon, "
+"but PostGIS 1.4 and above do support the use of Compound Curves in a Curve "
+"Polygon."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:245
+#, no-c-format
+msgid ""
+"All floating point comparisons within the SQL-MM implementation are "
+"performed to a specified tolerance, currently 1E-8."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:251
+#, no-c-format
+msgid "PostGIS Geography Type"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:253
+#, no-c-format
+msgid ""
+"The geography type provides native support for spatial features represented "
+"on \"geographic\" coordinates (sometimes called \"geodetic\" coordinates, or "
+"\"lat/lon\", or \"lon/lat\"). Geographic coordinates are spherical "
+"coordinates expressed in angular units (degrees)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:255
+#, no-c-format
+msgid ""
+"The basis for the PostGIS geometry type is a plane. The shortest path "
+"between two points on the plane is a straight line. That means calculations "
+"on geometries (areas, distances, lengths, intersections, etc) can be "
+"calculated using cartesian mathematics and straight line vectors."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:257
+#, no-c-format
+msgid ""
+"The basis for the PostGIS geographic type is a sphere. The shortest path "
+"between two points on the sphere is a great circle arc. That means that "
+"calculations on geographies (areas, distances, lengths, intersections, etc) "
+"must be calculated on the sphere, using more complicated mathematics. For "
+"more accurate measurements, the calculations must take the actual spheroidal "
+"shape of the world into account, and the mathematics becomes very "
+"complicated indeed."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:259
+#, no-c-format
+msgid ""
+"Because the underlying mathematics is much more complicated, there are fewer "
+"functions defined for the geography type than for the geometry type. Over "
+"time, as new algorithms are added, the capabilities of the geography type "
+"will expand."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:262
+#, no-c-format
+msgid ""
+"One restriction is that it only supports WGS 84 long lat (SRID:4326). It "
+"uses a new data type called geography. None of the GEOS functions support "
+"this new type. As a workaround one can convert back and forth between "
+"geometry and geography types."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:266
+#, no-c-format
+msgid ""
+"The new geography type uses the PostgreSQL 8.3+ typmod definition format so "
+"that a table with a geography field can be added in a single step. All the "
+"standard OGC formats except for curves are supported."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:270
+#, no-c-format
+msgid "Geography Basics"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:271
+#, no-c-format
+msgid ""
+"The geography type only supports the simplest of simple features. Standard "
+"geometry type data will autocast to geography if it is of SRID 4326. You can "
+"also use the EWKT and EWKB conventions to insert data."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:276
+#, no-c-format
+msgid "POINT: Creating a table with 2d point geometry:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:277
+#, no-c-format
+msgid ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINT,4326) );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:278
+#, no-c-format
+msgid "Creating a table with z coordinate point"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:279
+#, no-c-format
+msgid ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINTZ,4326) );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:282
+#, no-c-format
+msgid "LINESTRING"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:285
+#, no-c-format
+msgid "POLYGON"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:288
+#, no-c-format
+msgid "MULTIPOINT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:291
+#, no-c-format
+msgid "MULTILINESTRING"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:294
+#, no-c-format
+msgid "MULTIPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:297
+#, no-c-format
+msgid "GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:301
+#, no-c-format
+msgid ""
+"The new geography fields don't get registered in the "
+"<varname>geometry_columns</varname>. They get registered in a new view "
+"called geography_columns which is a view against the system catalogs so is "
+"always automatically kept up to date without need for an AddGeom... like "
+"function."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:305
+#, no-c-format
+msgid ""
+"Now, check the \"geography_columns\" view and see that your table is listed."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:307
+#, no-c-format
+msgid ""
+"You can create a new table with a GEOGRAPHY column using the CREATE TABLE "
+"syntax. Unlike GEOMETRY, there is no need to run a separate "
+"AddGeometryColumns() process to register the column in metadata."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:311
+#, no-c-format
+msgid ""
+"CREATE TABLE global_points ( \n"
+"    id SERIAL PRIMARY KEY,\n"
+"    name VARCHAR(64),\n"
+"    location GEOGRAPHY(POINT,4326)\n"
+"  );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:314
+#, no-c-format
+msgid ""
+"Note that the location column has type GEOGRAPHY and that geography type "
+"supports two optional modifier: a type modifier that restricts the kind of "
+"shapes and dimensions allowed in the column; an SRID modifier that restricts "
+"the coordinate reference identifier to a particular number."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:315
+#, no-c-format
+msgid ""
+"Allowable values for the type modifier are: POINT, LINESTRING, POLYGON, "
+"MULTIPOINT, MULTILINESTRING, MULTIPOLYGON. The modifier also supports "
+"dimensionality restrictions through suffixes: Z, M and ZM. So, for example a "
+"modifier of 'LINESTRINGM' would only allow line strings with three "
+"dimensions in, and would treat the third dimension as a measure. Similarly, "
+"'POINTZM' would expect four dimensional data."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:317
+#, no-c-format
+msgid ""
+"The SRID modifier is currently of limited use: only 4326 (WGS84) is allowed "
+"as a value. If you do not specify an SRID, the a value 0 (undefined "
+"spheroid) will be used, and all calculations will proceed using WGS84 "
+"anyways."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:318
+#, no-c-format
+msgid ""
+"In the future, alternate SRIDs will allow calculations on spheroids other "
+"than WGS84."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:319
+#, no-c-format
+msgid ""
+"Once you have created your table, you can see it in the GEOGRAPHY_COLUMNS "
+"table:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:320
+#, no-c-format
+msgid ""
+"-- See the contents of the metadata view\n"
+"SELECT * FROM geography_columns;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:322
+#, no-c-format
+msgid ""
+"You can insert data into the table the same as you would if it was using a "
+"GEOMETRY column:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:324
+#, no-c-format
+msgid ""
+"-- Add some data into the test table\n"
+"INSERT INTO global_points (name, location) VALUES ('Town', "
+"ST_GeographyFromText('SRID=4326;POINT(-110 30)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('Forest', "
+"ST_GeographyFromText('SRID=4326;POINT(-109 29)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('London', "
+"ST_GeographyFromText('SRID=4326;POINT(0 49)') );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:326
+#, no-c-format
+msgid ""
+"Creating an index works the same as GEOMETRY. PostGIS will note that the "
+"column type is GEOGRAPHY and create an appropriate sphere-based index "
+"instead of the usual planar index used for GEOMETRY."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:329
+#, no-c-format
+msgid ""
+"-- Index the test table with a spherical index\n"
+"  CREATE INDEX global_points_gix ON global_points USING GIST ( location );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:332
+#, no-c-format
+msgid ""
+"Query and measurement functions use units of meters. So distance parameters "
+"should be expressed in meters, and return values should be expected in "
+"meters (or square meters for areas)."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:334
+#, no-c-format
+msgid ""
+"-- Show a distance query and note, London is outside the 1000km tolerance\n"
+"  SELECT name FROM global_points WHERE ST_DWithin(location, "
+"ST_GeographyFromText('SRID=4326;POINT(-110 29)'), 1000000);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:337
+#, no-c-format
+msgid ""
+"You can see the power of GEOGRAPHY in action by calculating the how close a "
+"plane flying from Seattle to London (LINESTRING(-122.33 47.606, 0.0 51.5)) "
+"comes to Reykjavik (POINT(-21.96 64.15))."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:339
+#, no-c-format
+msgid ""
+"-- Distance calculation using GEOGRAPHY (122.2km)\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geography, "
+"'POINT(-21.96 64.15)':: geography);"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:342
+#, no-c-format
+msgid ""
+"-- Distance calculation using GEOMETRY (13.3 \"degrees\")\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, "
+"'POINT(-21.96 64.15)':: geometry);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:345
+#, no-c-format
+msgid ""
+"The GEOGRAPHY type calculates the true shortest distance over the sphere "
+"between Reykjavik and the great circle flight path between Seattle and "
+"London."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:347
+#, no-c-format
+msgid ""
+"<ulink url=\"http://gc.kls2.com/cgi-bin/gc?PATH=SEA-LHR\">Great Circle "
+"mapper</ulink> The GEOMETRY type calculates a meaningless cartesian distance "
+"between Reykjavik and the straight line path from Seattle to London plotted "
+"on a flat map of the world. The nominal units of the result might be called "
+"\"degrees\", but the result doesn't correspond to any true angular "
+"difference between the points, so even calling them \"degrees\" is "
+"inaccurate."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:351
+#, no-c-format
+msgid "When to use Geography Data type over Geometry data type"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:352
+#, no-c-format
+msgid ""
+"The new GEOGRAPHY type allows you to store data in longitude/latitude "
+"coordinates, but at a cost: there are fewer functions defined on GEOGRAPHY "
+"than there are on GEOMETRY; those functions that are defined take more CPU "
+"time to execute."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:353
+#, no-c-format
+msgid ""
+"The type you choose should be conditioned on the expected working area of "
+"the application you are building. Will your data span the globe or a large "
+"continental area, or is it local to a state, county or municipality?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:355
+#, no-c-format
+msgid ""
+"If your data is contained in a small area, you might find that choosing an "
+"appropriate projection and using GEOMETRY is the best solution, in terms of "
+"performance and functionality available."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:356
+#, no-c-format
+msgid ""
+"If your data is global or covers a continental region, you may find that "
+"GEOGRAPHY allows you to build a system without having to worry about "
+"projection details. You store your data in longitude/latitude, and use the "
+"functions that have been defined on GEOGRAPHY."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:358
+#, no-c-format
+msgid ""
+"If you don't understand projections, and you don't want to learn about them, "
+"and you're prepared to accept the limitations in functionality available in "
+"GEOGRAPHY, then it might be easier for you to use GEOGRAPHY than GEOMETRY. "
+"Simply load your data up as longitude/latitude and go from there."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:361
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"PostGIS_TypeFunctionMatrix\"/> for compare between "
+"what is supported for Geography vs. Geometry. For a brief listing and "
+"description of Geography functions, refer to <xref linkend="
+"\"PostGIS_GeographyFunctions\"/>"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:367
+#, no-c-format
+msgid "Geography Advanced FAQ"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:371
+#, no-c-format
+msgid "Do you calculate on the sphere or the spheroid?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:375
+#, no-c-format
+msgid ""
+"By default, all distance and area calculations are done on the spheroid. You "
+"should find that the results of calculations in local areas match up will "
+"with local planar results in good local projections. Over larger areas, the "
+"spheroidal calculations will be more accurate than any calculation done on a "
+"projected plane."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:378
+#, no-c-format
+msgid ""
+"All the geography functions have the option of using a sphere calculation, "
+"by setting a final boolean parameter to 'FALSE'. This will somewhat speed up "
+"calculations, particularly for cases where the geometries are very simple."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:384
+#, no-c-format
+msgid "What about the date-line and the poles?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:388
+#, no-c-format
+msgid ""
+"All the calculations have no conception of date-line or poles, the "
+"coordinates are spherical (longitude/latitude) so a shape that crosses the "
+"dateline is, from a calculation point of view, no different from any other "
+"shape."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:396
+#, no-c-format
+msgid "What is the longest arc you can process?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:400
+#, no-c-format
+msgid ""
+"We use great circle arcs as the \"interpolation line\" between two points. "
+"That means any two points are actually joined up two ways, depending on "
+"which direction you travel along the great circle. All our code assumes that "
+"the points are joined by the *shorter* of the two paths along the great "
+"circle. As a consequence, shapes that have arcs of more than 180 degrees "
+"will not be correctly modelled."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:407
+#, no-c-format
+msgid ""
+"Why is it so slow to calculate the area of Europe / Russia / insert big "
+"geographic region here ?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:411
+#, no-c-format
+msgid ""
+"Because the polygon is so darned huge! Big areas are bad for two reasons: "
+"their bounds are huge, so the index tends to pull the feature no matter what "
+"query you run; the number of vertices is huge, and tests (distance, "
+"containment) have to traverse the vertex list at least once and sometimes N "
+"times (with N being the number of vertices in the other candidate feature)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:416
+#, no-c-format
+msgid ""
+"As with GEOMETRY, we recommend that when you have very large polygons, but "
+"are doing queries in small areas, you \"denormalize\" your geometric data "
+"into smaller chunks so that the index can effectively subquery parts of the "
+"object and so queries don't have to pull out the whole object every time. "
+"Just because you *can* store all of Europe in one polygon doesn't mean you "
+"*should*."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:425
+#, no-c-format
+msgid "Using OpenGIS Standards"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:427
+#, no-c-format
+msgid ""
+"The OpenGIS \"Simple Features Specification for SQL\" defines standard GIS "
+"object types, the functions required to manipulate them, and a set of meta-"
+"data tables. In order to ensure that meta-data remain consistent, operations "
+"such as creating and removing a spatial column are carried out through "
+"special procedures defined by OpenGIS."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:433
+#, no-c-format
+msgid ""
+"There are two OpenGIS meta-data tables: <varname>SPATIAL_REF_SYS</varname> "
+"and <varname>GEOMETRY_COLUMNS</varname>. The <varname>SPATIAL_REF_SYS</"
+"varname> table holds the numeric IDs and textual descriptions of coordinate "
+"systems used in the spatial database."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:440
+#, no-c-format
+msgid "The SPATIAL_REF_SYS Table and Spatial Reference Systems"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:442
+#, no-c-format
+msgid ""
+"The spatial_ref_sys table is a PostGIS included and OGC compliant database "
+"table that lists over 3000 known <ulink url=\"http://www.sharpgis.net/"
+"post/2007/05/Spatial-references2c-coordinate-systems2c-projections2c-"
+"datums2c-ellipsoids-e28093-confusing.aspx\">spatial reference systems</"
+"ulink> and details needed to transform/reproject between them."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:446
+#, no-c-format
+msgid ""
+"Although the PostGIS spatial_ref_sys table contains over 3000 of the more "
+"commonly used spatial reference system definitions that can be handled by "
+"the proj library, it does not contain all known to man and you can even "
+"define your own custom projection if you are familiar with proj4 constructs. "
+"Keep in mind that most spatial reference systems are regional and have no "
+"meaning when used outside of the bounds they were intended for."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:449
+#, no-c-format
+msgid ""
+"An excellent resource for finding spatial reference systems not defined in "
+"the core set is <ulink url=\"http://spatialreference.org/\">http://"
+"spatialreference.org/</ulink>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:451
+#, no-c-format
+msgid ""
+"Some of the more commonly used spatial reference systems are: <ulink url="
+"\"http://spatialreference.org/ref/epsg/4326/\">4326 - WGS 84 Long Lat</"
+"ulink>, <ulink url=\"http://spatialreference.org/ref/epsg/4269/\">4269 - NAD "
+"83 Long Lat</ulink>, <ulink url=\"http://spatialreference.org/ref/epsg/3395/"
+"\">3395 - WGS 84 World Mercator</ulink>, <ulink url=\"http://"
+"spatialreference.org/ref/epsg/2163/\">2163 - US National Atlas Equal Area</"
+"ulink>, Spatial reference systems for each NAD 83, WGS 84 UTM zone - UTM "
+"zones are one of the most ideal for measurement, but only cover 6-degree "
+"regions."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:457
+#, no-c-format
+msgid ""
+"Various US state plane spatial reference systems (meter or feet based) - "
+"usually one or 2 exists per US state. Most of the meter ones are in the core "
+"set, but many of the feet based ones or ESRI created ones you will need to "
+"pull from <ulink url=\"http://spatialreference.org\">spatialreference.org</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:461
+#, no-c-format
+msgid ""
+"For details on determining which UTM zone to use for your area of interest, "
+"check out the <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiplpgsqlfunctionsDistance\">utmzone PostGIS plpgsql helper function</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:465
+#, no-c-format
+msgid "The <varname>SPATIAL_REF_SYS</varname> table definition is as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:468
+#, no-c-format
+msgid ""
+"CREATE TABLE spatial_ref_sys (\n"
+"  srid       INTEGER NOT NULL PRIMARY KEY,\n"
+"  auth_name  VARCHAR(256),\n"
+"  auth_srid  INTEGER,\n"
+"  srtext     VARCHAR(2048),\n"
+"  proj4text  VARCHAR(2048)\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:470
+#, no-c-format
+msgid "The <varname>SPATIAL_REF_SYS</varname> columns are as follows:"
+msgstr ""
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:475
+#, no-c-format
+msgid "<ulink url=\"http://en.wikipedia.org/wiki/SRID\">SRID</ulink>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:478
+#, no-c-format
+msgid ""
+"An integer value that uniquely identifies the Spatial Referencing System "
+"(SRS) within the database."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:484
+#, no-c-format
+msgid "AUTH_NAME"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:487
+#, no-c-format
+msgid ""
+"The name of the standard or standards body that is being cited for this "
+"reference system. For example, \"EPSG\" would be a valid <varname>AUTH_NAME</"
+"varname>."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:494
+#, no-c-format
+msgid "AUTH_SRID"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:497
+#, no-c-format
+msgid ""
+"The ID of the Spatial Reference System as defined by the Authority cited in "
+"the <varname>AUTH_NAME</varname>. In the case of EPSG, this is where the "
+"EPSG projection code would go."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:504
+#, no-c-format
+msgid "SRTEXT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:507
+#, no-c-format
+msgid ""
+"The Well-Known Text representation of the Spatial Reference System. An "
+"example of a WKT SRS representation is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:510
+#, no-c-format
+msgid ""
+"PROJCS[\"NAD83 / UTM Zone 10N\",\n"
+"  GEOGCS[\"NAD83\",\n"
+"        DATUM[\"North_American_Datum_1983\",\n"
+"          SPHEROID[\"GRS 1980\",6378137,298.257222101]\n"
+"        ],\n"
+"        PRIMEM[\"Greenwich\",0],\n"
+"        UNIT[\"degree\",0.0174532925199433]\n"
+"  ],\n"
+"  PROJECTION[\"Transverse_Mercator\"],\n"
+"  PARAMETER[\"latitude_of_origin\",0],\n"
+"  PARAMETER[\"central_meridian\",-123],\n"
+"  PARAMETER[\"scale_factor\",0.9996],\n"
+"  PARAMETER[\"false_easting\",500000],\n"
+"  PARAMETER[\"false_northing\",0],\n"
+"  UNIT[\"metre\",1]\n"
+"]"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:512
+#, no-c-format
+msgid ""
+"For a listing of EPSG projection codes and their corresponding WKT "
+"representations, see <ulink url=\"http://www.opengeospatial.org/\">http://"
+"www.opengeospatial.org/</ulink>. For a discussion of WKT in general, see the "
+"OpenGIS \"Coordinate Transformation Services Implementation Specification\" "
+"at <ulink url=\"http://www.opengeospatial.org/standards\">http://www."
+"opengeospatial.org/standards</ulink>. For information on the European "
+"Petroleum Survey Group (EPSG) and their database of spatial reference "
+"systems, see <ulink url=\"http://www.epsg.org/\">http://www.epsg.org</ulink>."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:525
+#, no-c-format
+msgid "PROJ4TEXT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:528
+#, no-c-format
+msgid ""
+"PostGIS uses the Proj4 library to provide coordinate transformation "
+"capabilities. The <varname>PROJ4TEXT</varname> column contains the Proj4 "
+"coordinate definition string for a particular SRID. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:533
+#, no-c-format
+msgid "+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:535
+#, no-c-format
+msgid ""
+"For more information about, see the Proj4 web site at <ulink url=\"http://"
+"trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>. The "
+"<filename>spatial_ref_sys.sql</filename> file contains both <varname>SRTEXT</"
+"varname> and <varname>PROJ4TEXT</varname> definitions for all EPSG "
+"projections."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:546
+#, no-c-format
+msgid "The GEOMETRY_COLUMNS VIEW"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:548
+#, no-c-format
+msgid ""
+"In versions of PostGIS prior to 2.0.0, geometry_columns was a table that "
+"could be directly edited, and sometimes got out of synch with the actual "
+"definition of the geometry columns. In PostGIS 2.0.0, "
+"<varname>GEOMETRY_COLUMNS</varname> became a view with the same front-facing "
+"structure as prior versions, but reading from database system catalogs Its "
+"structure is as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:552
+#, no-c-format
+msgid "\\d geometry_columns"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:553
+#, no-c-format
+msgid ""
+"View \"public.geometry_columns\"\n"
+"      Column       |          Type          | Modifiers\n"
+"-------------------+------------------------+-----------\n"
+" f_table_catalog   | character varying(256) |\n"
+" f_table_schema    | character varying(256) |\n"
+" f_table_name      | character varying(256) |\n"
+" f_geometry_column | character varying(256) |\n"
+" coord_dimension   | integer                |\n"
+" srid              | integer                |\n"
+" type              | character varying(30)  |"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:555
+#, no-c-format
+msgid "The column meanings have not changed from prior versions and are:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:559
+#, no-c-format
+msgid "F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:562
+#, no-c-format
+msgid ""
+"The fully qualified name of the feature table containing the geometry "
+"column. Note that the terms \"catalog\" and \"schema\" are Oracle-ish. There "
+"is not PostgreSQL analogue of \"catalog\" so that column is left blank -- "
+"for \"schema\" the PostgreSQL schema name is used (<varname>public</varname> "
+"is the default)."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:571
+#, no-c-format
+msgid "F_GEOMETRY_COLUMN"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:574
+#, no-c-format
+msgid "The name of the geometry column in the feature table."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:579
+#, no-c-format
+msgid "COORD_DIMENSION"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:582
+#, no-c-format
+msgid "The spatial dimension (2, 3 or 4 dimensional) of the column."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:588
+#, no-c-format
+msgid "<term>SRID</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:591
+#, no-c-format
+msgid ""
+"The ID of the spatial reference system used for the coordinate geometry in "
+"this table. It is a foreign key reference to the <varname>SPATIAL_REF_SYS</"
+"varname>."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:598
+#, no-c-format
+msgid "TYPE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:601
+#, no-c-format
+msgid ""
+"The type of the spatial object. To restrict the spatial column to a single "
+"type, use one of: POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, "
+"MULTIPOLYGON, GEOMETRYCOLLECTION or corresponding XYM versions POINTM, "
+"LINESTRINGM, POLYGONM, MULTIPOINTM, MULTILINESTRINGM, MULTIPOLYGONM, "
+"GEOMETRYCOLLECTIONM. For heterogeneous (mixed-type) collections, you can use "
+"\"GEOMETRY\" as the type."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:610
+#, no-c-format
+msgid ""
+"This attribute is (probably) not part of the OpenGIS specification, but is "
+"required for ensuring type homogeneity."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:620
+#, no-c-format
+msgid "Creating a Spatial Table"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:622
+#, no-c-format
+msgid ""
+"Creating a table with spatial data, can be done in one step. As shown in the "
+"following example which creates a roads table with a 2D linestring geometry "
+"column in WGS84 long lat"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:624
+#, no-c-format
+msgid ""
+"CREATE TABLE ROADS ( ID int4\n"
+"                  , ROAD_NAME varchar(25), geom geometry(LINESTRING,4326) );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:626
+#, no-c-format
+msgid ""
+"We can add additional columns using standard ALTER TABLE command as we do in "
+"this next example where we add a 3-D linestring."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:627
+#, no-c-format
+msgid "ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:629
+#, no-c-format
+msgid ""
+"For backwards compability, you can still create a spatial table in two "
+"stages using the management functions."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:633
+#, no-c-format
+msgid "Create a normal non-spatial table."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:635
+#, no-c-format
+msgid ""
+"For example: <command>CREATE TABLE ROADS ( ID int4, ROAD_NAME varchar(25) )</"
+"command>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:640
+#, no-c-format
+msgid ""
+"Add a spatial column to the table using the OpenGIS \"AddGeometryColumn\" "
+"function. Refer to <xref linkend=\"AddGeometryColumn\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:643
+#, no-c-format
+msgid ""
+"The syntax is: <programlisting>AddGeometryColumn(\n"
+"  <schema_name>,\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")</programlisting> Or, using current schema:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:643
+#, no-c-format
+msgid ""
+"AddGeometryColumn(\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:645
+#, no-c-format
+msgid ""
+"Example1: <command>SELECT AddGeometryColumn('public', 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:648
+#, no-c-format
+msgid ""
+"Example2: <command>SELECT AddGeometryColumn( 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:653
+#, no-c-format
+msgid ""
+"Here is an example of SQL used to create a table and add a spatial column "
+"(assuming that an SRID of 128 exists already):"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:656
+#, no-c-format
+msgid ""
+"CREATE TABLE parks (\n"
+"  park_id    INTEGER,\n"
+"  park_name  VARCHAR,\n"
+"  park_date  DATE,\n"
+"  park_type  VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn('parks', 'park_geom', 128, 'MULTIPOLYGON', 2 );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:658
+#, no-c-format
+msgid ""
+"Here is another example, using the generic \"geometry\" type and the "
+"undefined SRID value of 0:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:661
+#, no-c-format
+msgid ""
+"CREATE TABLE roads (\n"
+"  road_id INTEGER,\n"
+"  road_name VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn( 'roads', 'roads_geom', 0, 'GEOMETRY', 3 );"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:665
+#, no-c-format
+msgid "Manually Registering Geometry Columns in geometry_columns"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:666
+#, no-c-format
+msgid ""
+"The AddGeometryColumn() approach creates a geometry column and also "
+"registers the new column in the geometry_columns table. If your software "
+"utilizes geometry_columns, then any geometry columns you need to query by "
+"must be registered in this view. Starting with PostGIS 2.0, geometry_columns "
+"is no longer editable and all geometry columns are autoregistered."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:670
+#, no-c-format
+msgid ""
+"However they may be registered as a generic geometry column if the column "
+"was not defined as a specific type during creation."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:672
+#, no-c-format
+msgid ""
+"Two of the cases where this may happen, but you can't use AddGeometryColumn, "
+"is in the case of SQL Views and bulk inserts. For these cases, you can "
+"correct the registration in the geometry_columns table by constraining the "
+"column. Note in PostGIS 2.0+ if your column is typmod based, the creation "
+"process would register it correctly, so no need to do anything."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:677
+#, no-c-format
+msgid ""
+"--Lets say you have a view created like this\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395) As geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- For it to register correctly in PostGIS 2.0+ \n"
+"-- You need to cast the geometry\n"
+"--\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Geometry, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- If you know the geometry type for sure is a 2D POLYGON then you could do\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Polygon, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:678
+#, no-c-format
+msgid ""
+"--Lets say you created a derivative table by doing a bulk insert\n"
+"SELECT poi.gid, poi.geom, citybounds.city_name\n"
+"INTO myschema.my_special_pois\n"
+"FROM poi INNER JOIN citybounds ON ST_Intersects(citybounds.geom, poi.geom);\n"
+"\n"
+"--Create 2d index on new table\n"
+"CREATE INDEX idx_myschema_myspecialpois_geom_gist\n"
+"  ON myschema.my_special_pois USING gist(geom);\n"
+"  \n"
+"-- If your points are 3D points or 3M points, \n"
+"-- then you might want to create an nd index instead of a 2d index\n"
+"-- like so\n"
+"CREATE INDEX my_special_pois_geom_gist_nd \n"
+"        ON my_special_pois USING gist(geom gist_geometry_ops_nd);\n"
+"\n"
+"--To manually register this new table's geometry column in geometry_columns\n"
+"-- Note that this approach will work for both PostGIS 2.0+ and PostGIS 1.4+\n"
+"-- For PostGIS 2.0 it will also change the underlying structure of the table "
+"to\n"
+"-- to make the column typmod based.\n"
+"-- For PostGIS prior to 2.0, this technique can also be used to register "
+"views\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass); \n"
+"\n"
+"--If you are using PostGIS 2.0 and for whatever reason, you\n"
+"-- you need the old constraint based definition behavior \n"
+"-- (such as case of inherited tables where all children do not have the same "
+"type and srid)\n"
+"-- set new optional  use_typmod argument to false\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass, "
+"false);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:680
+#, no-c-format
+msgid ""
+"Although the old-constraint based method is still supported, a constraint-"
+"based geomentry column used directly in a view, will not register correctly "
+"in geometry_columns, as will a typmod one. In this example we define a "
+"column using typmod and another using constraints."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:683
+#, no-c-format
+msgid ""
+"CREATE TABLE pois_ny(gid SERIAL PRIMARY KEY\n"
+"   , poi_name text, cat varchar(20)\n"
+"   , geom geometry(POINT,4326) );\n"
+"SELECT AddGeometryColumn('pois_ny', 'geom_2160', 2160, 'POINT', 2, false);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:684
+#, no-c-format
+msgid "If we run in psql"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:685
+#, no-c-format
+msgid "\\d pois_ny;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:686
+#, no-c-format
+msgid ""
+"We observe they are defined differently -- one is typmod, one is constraint"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:687
+#, no-c-format
+msgid ""
+"Table \"public.pois_ny\"\n"
+"  Column   |         Type          |                       Modifiers\n"
+"\n"
+"-----------+-----------------------"
+"+------------------------------------------------------\n"
+" gid       | integer               | not null default "
+"nextval('pois_ny_gid_seq'::regclass)\n"
+" poi_name  | text                  |\n"
+" cat       | character varying(20) |\n"
+" geom      | geometry(Point,4326)  |\n"
+" geom_2160 | geometry              |\n"
+"Indexes:\n"
+"    \"pois_ny_pkey\" PRIMARY KEY, btree (gid)\n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_2160\" CHECK (st_ndims(geom_2160) = 2)\n"
+"    \"enforce_geotype_geom_2160\" CHECK (geometrytype(geom_2160) = 'POINT'::"
+"text \n"
+"        OR geom_2160 IS NULL)\n"
+"    \"enforce_srid_geom_2160\" CHECK (st_srid(geom_2160) = 2160)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:688
+#, no-c-format
+msgid "In geometry_columns, they both register correctly"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:689
+#, no-c-format
+msgid ""
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'pois_ny';"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:690
+#, no-c-format
+msgid ""
+"f_table_name | f_geometry_column | srid | type\n"
+"-------------+-------------------+------+-------\n"
+"pois_ny      | geom              | 4326 | POINT\n"
+"pois_ny      | geom_2160         | 2160 | POINT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:691
+#, no-c-format
+msgid "However -- if we were to create a view like this"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:692
+#, no-c-format
+msgid ""
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT * \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"  \n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:693
+#, no-c-format
+msgid ""
+"The typmod based geom view column registers correctly, but the constraint "
+"based one does not."
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:695
+#, no-c-format
+msgid ""
+"f_table_name   | f_geometry_column | srid |   type\n"
+"------------------+-------------------+------+----------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         |    0 | GEOMETRY"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:697
+#, no-c-format
+msgid ""
+"This may change in future versions of PostGIS, but for now To force the "
+"constraint based view column to register correctly, we need to do this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:699
+#, no-c-format
+msgid ""
+"DROP VIEW vw_pois_ny_parks;\n"
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT gid, poi_name, cat\n"
+"  , geom\n"
+"  , geom_2160::geometry(POINT,2160) As geom_2160 \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:700
+#, no-c-format
+msgid ""
+"f_table_name   | f_geometry_column | srid | type\n"
+"------------------+-------------------+------+-------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         | 2160 | POINT"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:704
+#, no-c-format
+msgid "Ensuring OpenGIS compliancy of geometries"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:706
+#, no-c-format
+msgid ""
+"PostGIS is compliant with the Open Geospatial Consortium’s (OGC) OpenGIS "
+"Specifications. As such, many PostGIS methods require, or more accurately, "
+"assume that geometries that are operated on are both simple and valid. For "
+"example, it does not make sense to calculate the area of a polygon that has "
+"a hole defined outside of the polygon, or to construct a polygon from a non-"
+"simple boundary line."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:713
+#, no-c-format
+msgid ""
+"According to the OGC Specifications, a <emphasis>simple</emphasis> geometry "
+"is one that has no anomalous geometric points, such as self intersection or "
+"self tangency and primarily refers to 0 or 1-dimensional geometries (i.e. "
+"<varname>[MULTI]POINT, [MULTI]LINESTRING</varname>). Geometry validity, on "
+"the other hand, primarily refers to 2-dimensional geometries (i.e. "
+"<varname>[MULTI]POLYGON)</varname> and defines the set of assertions that "
+"characterizes a valid polygon. The description of each geometric class "
+"includes specific conditions that further detail geometric simplicity and "
+"validity."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:723
+#, no-c-format
+msgid ""
+"A <varname>POINT</varname> is inheritably <emphasis>simple</emphasis> as a 0-"
+"dimensional geometry object."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:726
+#, no-c-format
+msgid ""
+"<varname>MULTIPOINT</varname>s are <emphasis>simple</emphasis> if no two "
+"coordinates (<varname>POINT</varname>s) are equal (have identical coordinate "
+"values)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:730
+#, no-c-format
+msgid ""
+"A <varname>LINESTRING</varname> is <emphasis>simple</emphasis> if it does "
+"not pass through the same <varname>POINT</varname> twice (except for the "
+"endpoints, in which case it is referred to as a linear ring and additionally "
+"considered closed)."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:745
+#, no-c-format
+msgid "<emphasis>(a)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:755
+#, no-c-format
+msgid "<emphasis>(b)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:767
+#, no-c-format
+msgid "<emphasis>(c)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:777
+#, no-c-format
+msgid "<emphasis>(d)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:787
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(a)</emphasis> and <emphasis role=\"bold\">(c)</"
+"emphasis> are simple <varname>LINESTRING</varname>s, <emphasis role=\"bold"
+"\">(b)</emphasis> and <emphasis role=\"bold\">(d)</emphasis> are not."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:796
+#, no-c-format
+msgid ""
+"A <varname>MULTILINESTRING</varname> is <emphasis>simple</emphasis> only if "
+"all of its elements are simple and the only intersection between any two "
+"elements occurs at <varname>POINT</varname>s that are on the boundaries of "
+"both elements."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:811
+#, no-c-format
+msgid "<emphasis>(e)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:821
+#, no-c-format
+msgid "<emphasis>(f)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:831
+#, no-c-format
+msgid "<emphasis>(g)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:841
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(e)</emphasis> and <emphasis role=\"bold\">(f)</"
+"emphasis> are simple <varname>MULTILINESTRING</varname>s, <emphasis role="
+"\"bold\">(g)</emphasis> is not."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:850
+#, no-c-format
+msgid ""
+"By definition, a <varname>POLYGON</varname> is always <emphasis>simple</"
+"emphasis>. It is <emphasis>valid</emphasis> if no two rings in the boundary "
+"(made up of an exterior ring and interior rings) cross. The boundary of a "
+"<varname>POLYGON</varname> may intersect at a <varname>POINT</varname> but "
+"only as a tangent (i.e. not on a line). A <varname>POLYGON</varname> may not "
+"have cut lines or spikes and the interior rings must be contained entirely "
+"within the exterior ring."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:868
+#, no-c-format
+msgid "<emphasis>(h)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:878
+#, no-c-format
+msgid "<emphasis>(i)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:888
+#, no-c-format
+msgid "<emphasis>(j)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:900
+#, no-c-format
+msgid "<emphasis>(k)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:910
+#, no-c-format
+msgid "<emphasis>(l)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:920
+#, no-c-format
+msgid "<emphasis>(m)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:929
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(h)</emphasis> and <emphasis role=\"bold\">(i)</"
+"emphasis> are valid <varname>POLYGON</varname>s, <emphasis role=\"bold\">(j-"
+"m)</emphasis> cannot be represented as single <varname>POLYGON</varname>s, "
+"but <emphasis role=\"bold\">(j)</emphasis> and <emphasis role=\"bold\">(m)</"
+"emphasis> could be represented as a valid <varname>MULTIPOLYGON</varname>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:941
+#, no-c-format
+msgid ""
+"A <varname>MULTIPOLYGON</varname> is <emphasis>valid</emphasis> if and only "
+"if all of its elements are valid and the interiors of no two elements "
+"intersect. The boundaries of any two elements may touch, but only at a "
+"finite number of <varname>POINT</varname>s."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:956
+#, no-c-format
+msgid "<emphasis>(n)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:966
+#, no-c-format
+msgid "<emphasis>(o)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:976
+#, no-c-format
+msgid "<emphasis>(p)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:985
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(n)</emphasis> and <emphasis role=\"bold\">(o)</"
+"emphasis> are not valid <varname>MULTIPOLYGON</varname>s. <emphasis role="
+"\"bold\">(p)</emphasis>, however, is valid."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:994
+#, no-c-format
+msgid ""
+"Most of the functions implemented by the GEOS library rely on the assumption "
+"that your geometries are valid as specified by the OpenGIS Simple Feature "
+"Specification. To check simplicity or validity of geometries you can use the "
+"<link linkend=\"ST_IsSimple\">ST_IsSimple()</link> and <link linkend="
+"\"ST_IsValid\">ST_IsValid()</link>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1000
+#, no-c-format
+msgid ""
+"-- Typically, it doesn't make sense to check\n"
+"-- for validity on linear features since it will always return TRUE.\n"
+"-- But in this example, PostGIS extends the definition of the OGC IsValid\n"
+"-- by returning false if a LineString has less than 2 *distinct* vertices.\n"
+"gisdb=# SELECT\n"
+"   ST_IsValid('LINESTRING(0 0, 1 1)'),\n"
+"   ST_IsValid('LINESTRING(0 0, 0 0, 0 0)');\n"
+"\n"
+" st_isvalid | st_isvalid\n"
+"------------+-----------\n"
+"      t     |     f"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1002
+#, no-c-format
+msgid ""
+"By default, PostGIS does not apply this validity check on geometry input, "
+"because testing for validity needs lots of CPU time for complex geometries, "
+"especially polygons. If you do not trust your data sources, you can manually "
+"enforce such a check to your tables by adding a check constraint:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1008
+#, no-c-format
+msgid ""
+"ALTER TABLE mytable\n"
+"  ADD CONSTRAINT geometry_valid_check\n"
+"        CHECK (ST_IsValid(the_geom));"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1010
+#, no-c-format
+msgid ""
+"If you encounter any strange error messages such as \"GEOS Intersection() "
+"threw an error!\" or \"JTS Intersection() threw an error!\" when calling "
+"PostGIS functions with valid input geometries, you likely found an error in "
+"either PostGIS or one of the libraries it uses, and you should contact the "
+"PostGIS developers. The same is true if a PostGIS function returns an "
+"invalid geometry for valid input."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1018
+#, no-c-format
+msgid ""
+"Strictly compliant OGC geometries cannot have Z or M values. The <link "
+"linkend=\"ST_IsValid\">ST_IsValid()</link> function won't consider higher "
+"dimensioned geometries invalid! Invocations of <link linkend="
+"\"AddGeometryColumn\">AddGeometryColumn()</link> will add a constraint "
+"checking geometry dimensions, so it is enough to specify 2 there."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1028
+#, no-c-format
+msgid "Dimensionally Extended 9 Intersection Model (DE-9IM)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1030
+#, no-c-format
+msgid ""
+"It is sometimes the case that the typical spatial predicates (<xref linkend="
+"\"ST_Contains\"/>, <xref linkend=\"ST_Crosses\"/>, <xref linkend="
+"\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>, ...) are insufficient "
+"in and of themselves to adequately provide that desired spatial filter."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1042
+#, no-c-format
+msgid ""
+"For example, consider a linear dataset representing a road network. It may "
+"be the task of a GIS analyst to identify all road segments that cross each "
+"other, not at a point, but on a line, perhaps invalidating some business "
+"rule. In this case, <xref linkend=\"ST_Crosses\"/> does not adequately "
+"provide the necessary spatial filter since, for linear features, it returns "
+"<varname>true</varname> only where they cross at a point."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1049
+#, no-c-format
+msgid ""
+"One two-step solution might be to first perform the actual intersection "
+"(<xref linkend=\"ST_Intersection\"/>) of pairs of road segments that "
+"spatially intersect (<xref linkend=\"ST_Intersects\"/>), and then compare "
+"the intersection's <xref linkend=\"ST_GeometryType\"/> with "
+"'<varname>LINESTRING</varname>' (properly dealing with cases that return "
+"<varname>GEOMETRYCOLLECTION</varname>s of <varname>[MULTI]POINT</varname>s, "
+"<varname>[MULTI]LINESTRING</varname>s, etc.)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1057
+#, no-c-format
+msgid "A more elegant / faster solution may indeed be desirable."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1071
+#, no-c-format
+msgid ""
+"A second [theoretical] example may be that of a GIS analyst trying to locate "
+"all wharfs or docks that intersect a lake's boundary on a line and where "
+"only one end of the wharf is up on shore. In other words, where a wharf is "
+"within, but not completely within a lake, intersecting the boundary of a "
+"lake on a line, and where the wharf's endpoints are both completely within "
+"and on the boundary of the lake. The analyst may need to use a combination "
+"of spatial predicates to isolate the sought after features:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1082
+#, no-c-format
+msgid "(lake, wharf) = TRUE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1086
+#, no-c-format
+msgid "(lake, wharf) = FALSE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1090
+#, no-c-format
+msgid "(<xref linkend=\"ST_Intersection\"/>(wharf, lake)) = 'LINESTRING'"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1095
+#, no-c-format
+msgid ""
+"(<xref linkend=\"ST_Multi\"/>(<xref linkend=\"ST_Intersection\"/>(<xref "
+"linkend=\"ST_Boundary\"/>(wharf), <xref linkend=\"ST_Boundary\"/>(lake)))) = "
+"1"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1098
+#, no-c-format
+msgid "... (needless to say, this could get quite complicated)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1107
+#, no-c-format
+msgid ""
+"So enters the Dimensionally Extended 9 Intersection Model, or DE-9IM for "
+"short."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1111
+#, no-c-format
+msgid "Theory"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1113
+#, no-c-format
+msgid ""
+"According to the <ulink url=\"http://www.opengeospatial.org/standards/sfs"
+"\">OpenGIS Simple Features Implementation Specification for SQL</ulink>, "
+"\"the basic approach to comparing two geometries is to make pair-wise tests "
+"of the intersections between the Interiors, Boundaries and Exteriors of the "
+"two geometries and to classify the relationship between the two geometries "
+"based on the entries in the resulting 'intersection' matrix.\""
+msgstr ""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1124
+#, no-c-format
+msgid "<glossterm>Boundary</glossterm>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1127
+#, no-c-format
+msgid ""
+"The boundary of a geometry is the set of geometries of the next lower "
+"dimension. For <varname>POINT</varname>s, which have a dimension of 0, the "
+"boundary is the empty set. The boundary of a <varname>LINESTRING</varname> "
+"are the two endpoints. For <varname>POLYGON</varname>s, the boundary is the "
+"linework that make up the exterior and interior rings."
+msgstr ""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1138
+#, no-c-format
+msgid "<glossterm>Interior</glossterm>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1141
+#, no-c-format
+msgid ""
+"The interior of a geometry are those points of a geometry that are left when "
+"the boundary is removed. For <varname>POINT</varname>s, the interior is the "
+"<varname>POINT</varname> itself. The interior of a <varname>LINESTRING</"
+"varname> are the set of real points between the endpoints. For "
+"<varname>POLYGON</varname>s, the interior is the areal surface inside the "
+"polygon."
+msgstr ""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1152
+#, no-c-format
+msgid "<glossterm>Exterior</glossterm>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1155
+#, no-c-format
+msgid ""
+"The exterior of a geometry is the universe, an areal surface, not on the "
+"interior or boundary of the geometry."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1162
+#, no-c-format
+msgid ""
+"Given geometry <emphasis>a</emphasis>, where the <emphasis>I(a)</emphasis>, "
+"<emphasis>B(a)</emphasis>, and <emphasis>E(a)</emphasis> are the "
+"<emphasis>Interior</emphasis>, <emphasis>Boundary</emphasis>, and "
+"<emphasis>Exterior</emphasis> of a, the mathematical representation of the "
+"matrix is:"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1174 using_postgis_dataman.xml:1184
+#: using_postgis_dataman.xml:1268 using_postgis_dataman.xml:1281
+#, no-c-format
+msgid "<emphasis role=\"bold\">Interior</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1190
+#: using_postgis_dataman.xml:1271 using_postgis_dataman.xml:1304
+#, no-c-format
+msgid "<emphasis role=\"bold\">Boundary</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1196
+#: using_postgis_dataman.xml:1274 using_postgis_dataman.xml:1327
+#, no-c-format
+msgid "<emphasis role=\"bold\">Exterior</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1185
+#, no-c-format
+msgid "dim( I(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1186
+#, no-c-format
+msgid "dim( I(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1187
+#, no-c-format
+msgid "dim( I(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1191
+#, no-c-format
+msgid "dim( B(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1192
+#, no-c-format
+msgid "dim( B(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1193
+#, no-c-format
+msgid "dim( B(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1197
+#, no-c-format
+msgid "dim( E(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1198
+#, no-c-format
+msgid "dim( E(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1199
+#, no-c-format
+msgid "dim( E(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1206
+#, no-c-format
+msgid ""
+"Where <emphasis>dim(a)</emphasis> is the dimension of <emphasis>a</emphasis> "
+"as specified by <xref linkend=\"ST_Dimension\"/> but has the domain of "
+"<literal>{0,1,2,T,F,*}</literal>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1213
+#, no-c-format
+msgid "<literal>0</literal> => point"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1217
+#, no-c-format
+msgid "<literal>1</literal> => line"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1221
+#, no-c-format
+msgid "<literal>2</literal> => area"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1225
+#, no-c-format
+msgid "<literal>T</literal> => <literal>{0,1,2}</literal>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1230
+#, no-c-format
+msgid "<literal>F</literal> => empty set"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1234
+#, no-c-format
+msgid "<literal>*</literal> => don't care"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1238
+#, no-c-format
+msgid "Visually, for two overlapping polygonal geometries, this looks like:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1285 using_postgis_dataman.xml:1297
+#: using_postgis_dataman.xml:1331 using_postgis_dataman.xml:1343
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">2</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1291 using_postgis_dataman.xml:1308
+#: using_postgis_dataman.xml:1320 using_postgis_dataman.xml:1337
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">1</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1314
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">0</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1355
+#, no-c-format
+msgid ""
+"Read from left to right and from top to bottom, the dimensional matrix is "
+"represented, '<emphasis role=\"bold\">212101212</emphasis>'."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1358
+#, no-c-format
+msgid ""
+"A relate matrix that would therefore represent our first example of two "
+"lines that intersect on a line would be: '<emphasis role=\"bold\">1*1***1**</"
+"emphasis>'"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1362
+#, no-c-format
+msgid ""
+"-- Identify road segments that cross on a line\n"
+"SELECT a.id\n"
+"FROM roads a, roads b\n"
+"WHERE a.id != b.id \n"
+"AND a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '1*1***1**');"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1364
+#, no-c-format
+msgid ""
+"A relate matrix that represents the second example of wharfs partly on the "
+"lake's shoreline would be '<emphasis role=\"bold\">102101FF2</emphasis>'"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1368
+#, no-c-format
+msgid ""
+"-- Identify wharfs partly on a lake's shoreline\n"
+"SELECT a.lake_id, b.wharf_id\n"
+"FROM lakes a, wharfs b\n"
+"WHERE a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '102101FF2');"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1370
+#, no-c-format
+msgid "For more information or reading, see:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1374
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.opengeospatial.org/standards/sfs\">OpenGIS Simple "
+"Features Implementation Specification for SQL</ulink> (version 1.1, section "
+"2.1.13.2)"
+msgstr ""
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:1379
+#, no-c-format
+msgid ""
+"Dimensionally Extended Nine-Intersection Model (DE-9IM) by Christian Strobl"
+msgstr ""
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:1383
+#, no-c-format
+msgid "GeoTools: Point Set Theory and the DE-9IM Matrix"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1386
+#, no-c-format
+msgid "<emphasis>Encyclopedia of GIS</emphasis> By Hui Xiong"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1396
+#, no-c-format
+msgid "Loading GIS (Vector) Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1398
+#, no-c-format
+msgid ""
+"Once you have created a spatial table, you are ready to upload GIS data to "
+"the database. Currently, there are two ways to get data into a PostGIS/"
+"PostgreSQL database: using formatted SQL statements or using the Shape file "
+"loader/dumper."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1404
+#, no-c-format
+msgid "Loading Data Using SQL"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1406
+#, no-c-format
+msgid ""
+"If you can convert your data to a text representation, then using formatted "
+"SQL might be the easiest way to get your data into PostGIS. As with Oracle "
+"and other SQL databases, data can be bulk loaded by piping a large text file "
+"full of SQL \"INSERT\" statements into the SQL terminal monitor."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1412
+#, no-c-format
+msgid ""
+"A data upload file (<filename>roads.sql</filename> for example) might look "
+"like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1415
+#, no-c-format
+msgid ""
+"BEGIN;\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (1,ST_GeomFromText('LINESTRING(191232 243118,191108 "
+"243242)',-1),'Jeff Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (2,ST_GeomFromText('LINESTRING(189141 244158,189265 "
+"244817)',-1),'Geordie Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (3,ST_GeomFromText('LINESTRING(192783 228138,192612 "
+"229814)',-1),'Paul St');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (4,ST_GeomFromText('LINESTRING(189412 252431,189631 "
+"259122)',-1),'Graeme Ave');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (5,ST_GeomFromText('LINESTRING(190131 224148,190871 "
+"228134)',-1),'Phil Tce');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (6,ST_GeomFromText('LINESTRING(198231 263418,198213 "
+"268322)',-1),'Dave Cres');\n"
+"COMMIT;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1417
+#, no-c-format
+msgid ""
+"The data file can be piped into PostgreSQL very easily using the \"psql\" "
+"SQL terminal monitor:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1420
+#, no-c-format
+msgid "psql -d [database] -f roads.sql"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1424
+#, no-c-format
+msgid "shp2pgsql: Using the ESRI Shapefile Loader"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1426
+#, no-c-format
+msgid ""
+"The <filename>shp2pgsql</filename> data loader converts ESRI Shape files "
+"into SQL suitable for insertion into a PostGIS/PostgreSQL database either in "
+"geometry or geography format. The loader has several operating modes "
+"distinguished by command line flags:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1431
+#, no-c-format
+msgid ""
+"In addition to the shp2pgsql command-line loader, there is an "
+"<filename>shp2pgsql-gui</filename> graphical interface with most of the "
+"options as the command-line loader, but may be easier to use for one-off non-"
+"scripted loading or if you are new to PostGIS. It can also be configured as "
+"a plugin to PgAdminIII."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1438
+#, no-c-format
+msgid "(c|a|d|p) These are mutually exclusive options:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1443
+#, no-c-format
+msgid "<term>-c</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1445
+#, no-c-format
+msgid ""
+"Creates a new table and populates it from the shapefile. <emphasis>This is "
+"the default mode.</emphasis>"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1453
+#, no-c-format
+msgid "<term>-a</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1455
+#, no-c-format
+msgid ""
+"Appends data from the Shape file into the database table. Note that to use "
+"this option to load multiple files, the files must have the same attributes "
+"and same data types."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1464 using_postgis_dataman.xml:1853
+#, no-c-format
+msgid "<term>-d</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1466
+#, no-c-format
+msgid ""
+"Drops the database table before creating a new table with the data in the "
+"Shape file."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1474
+#, no-c-format
+msgid "<term>-p</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1476
+#, no-c-format
+msgid ""
+"Only produces the table creation SQL code, without adding any actual data. "
+"This can be used if you need to completely separate the table creation and "
+"data loading steps."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1489
+#, no-c-format
+msgid "<term>-?</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1491
+#, no-c-format
+msgid "Display help screen."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1498
+#, no-c-format
+msgid "<term>-D</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1500
+#, no-c-format
+msgid ""
+"Use the PostgreSQL \"dump\" format for the output data. This can be combined "
+"with -a, -c and -d. It is much faster to load than the default \"insert\" "
+"SQL format. Use this for very large data sets."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1509
+#, no-c-format
+msgid "-s [<FROM_SRID%gt;:]<SRID>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1511
+#, no-c-format
+msgid ""
+"Creates and populates the geometry tables with the specified SRID. "
+"Optionally specifies that the input shapefile uses the given FROM_SRID, in "
+"which case the geometries will be reprojected to the target SRID. FROM_SRID "
+"cannot be specified with -D."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1522
+#, no-c-format
+msgid "<term>-k</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1524
+#, no-c-format
+msgid ""
+"Keep identifiers' case (column, schema and attributes). Note that attributes "
+"in Shapefile are all UPPERCASE."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1532
+#, no-c-format
+msgid "<term>-i</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1534
+#, no-c-format
+msgid ""
+"Coerce all integers to standard 32-bit integers, do not create 64-bit "
+"bigints, even if the DBF header signature appears to warrant it."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1542
+#, no-c-format
+msgid "<term>-I</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1544
+#, no-c-format
+msgid "Create a GiST index on the geometry column."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1551
+#, no-c-format
+msgid "<term>-m</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1553
+#, no-c-format
+msgid ""
+"-m <filename>a_file_name</filename> Specify a file containing a set of "
+"mappings of (long) column names to 10 character DBF column names. The "
+"content of the file is one or more lines of two names separated by white "
+"space and no trailing or leading space. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1558
+#, no-c-format
+msgid ""
+"COLUMNNAME DBFFIELD1\n"
+"AVERYLONGCOLUMNNAME DBFFIELD2"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1564
+#, no-c-format
+msgid "<term>-S</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1566
+#, no-c-format
+msgid ""
+"Generate simple geometries instead of MULTI geometries. Will only succeed if "
+"all the geometries are actually single (I.E. a MULTIPOLYGON with a single "
+"shell, or or a MULTIPOINT with a single vertex)."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1575
+#, no-c-format
+msgid "-t <dimensionality>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1577
+#, no-c-format
+msgid ""
+"Force the output geometry to have the specified dimensionality. Use the "
+"following strings to indicate the dimensionality: 2D, 3DZ, 3DM, 4D."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1581
+#, no-c-format
+msgid ""
+"If the input has fewer dimensions that specified, the output will have those "
+"dimensions filled in with zeroes. If the input has more dimensions that "
+"specified, the unwanted dimensions will be stripped."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1590
+#, no-c-format
+msgid "<term>-w</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1592
+#, no-c-format
+msgid ""
+"Output WKT format, instead of WKB. Note that this can introduce coordinate "
+"drifts due to loss of precision."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1600
+#, no-c-format
+msgid "<term>-e</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1602
+#, no-c-format
+msgid ""
+"Execute each statement on its own, without using a transaction. This allows "
+"loading of the majority of good data when there are some bad geometries that "
+"generate errors. Note that this cannot be used with the -D flag as the \"dump"
+"\" format always uses a transaction."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1612
+#, no-c-format
+msgid "-W <encoding>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1614
+#, no-c-format
+msgid ""
+"Specify encoding of the input data (dbf file). When used, all attributes of "
+"the dbf are converted from the specified encoding to UTF8. The resulting SQL "
+"output will contain a <code>SET CLIENT_ENCODING to UTF8</code> command, so "
+"that the backend will be able to reconvert from UTF8 to whatever encoding "
+"the database is configured to use internally."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1624
+#, no-c-format
+msgid "-N <policy>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1626
+#, no-c-format
+msgid "NULL geometries handling policy (insert*,skip,abort)"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1632
+#, no-c-format
+msgid "<term>-n</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1634
+#, no-c-format
+msgid ""
+"-n Only import DBF file. If your data has no corresponding shapefile, it "
+"will automatically switch to this mode and load just the dbf. So setting "
+"this flag is only needed if you have a full shapefile set, and you only want "
+"the attribute data and no geometry."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1642
+#, no-c-format
+msgid "<term>-G</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1644
+#, no-c-format
+msgid ""
+"Use geography type instead of geometry (requires lon/lat data) in WGS84 long "
+"lat (SRID=4326)"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1650
+#, no-c-format
+msgid "-T <tablespace>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1652
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table. Indexes will still use the default "
+"tablespace unless the -X parameter is also used. The PostgreSQL "
+"documentation has a good description on when to use custom tablespaces."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1660
+#, no-c-format
+msgid "-X <tablespace>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1662
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table's indexes. This applies to the "
+"primary key index, and the GIST spatial index if -I is also used."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1670
+#, no-c-format
+msgid ""
+"An example session using the loader to create an input file and uploading it "
+"might look like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1675
+#, no-c-format
+msgid ""
+"# shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > "
+"roads.sql\n"
+"# psql -d roadsdb -f roads.sql"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1677
+#, no-c-format
+msgid "A conversion and upload can be done all in one step using UNIX pipes:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1681
+#, no-c-format
+msgid "# shp2pgsql shaperoads.shp myschema.roadstable | psql -d roadsdb"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1686
+#, no-c-format
+msgid "Retrieving GIS Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1688
+#, no-c-format
+msgid ""
+"Data can be extracted from the database using either SQL or the Shape file "
+"loader/dumper. In the section on SQL we will discuss some of the operators "
+"available to do comparisons and queries on spatial tables."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1694
+#, no-c-format
+msgid "Using SQL to Retrieve Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1696
+#, no-c-format
+msgid ""
+"The most straightforward means of pulling data out of the database is to use "
+"a SQL select query to reduce the number of RECORDS and COLUMNS returned and "
+"dump the resulting columns into a parsable text file:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1701
+#, no-c-format
+msgid ""
+"db=# SELECT road_id, ST_AsText(road_geom) AS geom, road_name FROM roads;\n"
+"\n"
+"road_id | geom                                    | road_name\n"
+"--------+-----------------------------------------+-----------\n"
+"          1 | LINESTRING(191232 243118,191108 243242) | Jeff Rd\n"
+"          2 | LINESTRING(189141 244158,189265 244817) | Geordie Rd\n"
+"          3 | LINESTRING(192783 228138,192612 229814) | Paul St\n"
+"          4 | LINESTRING(189412 252431,189631 259122) | Graeme Ave\n"
+"          5 | LINESTRING(190131 224148,190871 228134) | Phil Tce\n"
+"          6 | LINESTRING(198231 263418,198213 268322) | Dave Cres\n"
+"          7 | LINESTRING(218421 284121,224123 241231) | Chris Way\n"
+"(6 rows)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1703
+#, no-c-format
+msgid ""
+"However, there will be times when some kind of restriction is necessary to "
+"cut down the number of fields returned. In the case of attribute-based "
+"restrictions, just use the same SQL syntax as normal with a non-spatial "
+"table. In the case of spatial restrictions, the following operators are "
+"available/useful:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1711
+#, no-c-format
+msgid "&&"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1714
+#, no-c-format
+msgid ""
+"This operator tells whether the bounding box of one geometry intersects the "
+"bounding box of another."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1720
+#, no-c-format
+msgid "ST_OrderingEquals"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1723
+#, no-c-format
+msgid ""
+"This tests whether two geometries are geometrically identical. For example, "
+"if 'POLYGON((0 0,1 1,1 0,0 0))' is the same as 'POLYGON((0 0,1 1,1 0,0 "
+"0))' (it is)."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1730
+#, no-c-format
+msgid "<term>=</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1733
+#, no-c-format
+msgid ""
+"This operator is a little more naive, it only tests whether the bounding "
+"boxes of two geometries are the same."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1739
+#, no-c-format
+msgid ""
+"Next, you can use these operators in queries. Note that when specifying "
+"geometries and boxes on the SQL command line, you must explicitly turn the "
+"string representations into geometries by using the \"ST_GeomFromText()\" "
+"function. The 312 is a fictitious spatial reference system that matches our "
+"data. So, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1745
+#, no-c-format
+msgid ""
+"SELECT road_id, road_name\n"
+"  FROM roads\n"
+"  WHERE ST_OrderingEquals(roads_geom , ST_GeomFromText('LINESTRING(191232 "
+"243118,191108 243242)',312) ) ;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1747
+#, no-c-format
+msgid ""
+"The above query would return the single record from the \"ROADS_GEOM\" table "
+"in which the geometry was equal to that value."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1750
+#, no-c-format
+msgid ""
+"When using the \"&&\" operator, you can specify either a BOX3D as "
+"the comparison feature or a GEOMETRY. When you specify a GEOMETRY, however, "
+"its bounding box will be used for the comparison."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1755
+#, no-c-format
+msgid ""
+"SELECT road_id, road_name\n"
+"FROM roads\n"
+"WHERE roads_geom && ST_GeomFromText('POLYGON((...))',312);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1757
+#, no-c-format
+msgid ""
+"The above query will use the bounding box of the polygon for comparison "
+"purposes."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1760
+#, no-c-format
+msgid ""
+"The most common spatial query will probably be a \"frame-based\" query, used "
+"by client software, like data browsers and web mappers, to grab a \"map frame"
+"\" worth of data for display. Using a \"BOX3D\" object for the frame, such a "
+"query looks like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(roads_geom) AS geom\n"
+"FROM roads\n"
+"WHERE\n"
+"  roads_geom && ST_MakeEnvelope(191232, 243117,191232, 243119,312);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1767
+#, no-c-format
+msgid ""
+"Note the use of the SRID 312, to specify the projection of the envelope."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1771
+#, no-c-format
+msgid "Using the Dumper"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1773
+#, no-c-format
+msgid ""
+"The <filename>pgsql2shp</filename> table dumper connects directly to the "
+"database and converts a table (possibly defined by a query) into a shape "
+"file. The basic syntax is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1777
+#, no-c-format
+msgid ""
+"pgsql2shp [<options>] <database> [<schema>.]<table>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1779
+#, no-c-format
+msgid "pgsql2shp [<options>] <database> <query>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1781
+#, no-c-format
+msgid "The commandline options are:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1785
+#, no-c-format
+msgid "-f <filename>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1788
+#, no-c-format
+msgid "Write the output to a particular filename."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1793
+#, no-c-format
+msgid "-h <host>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1796
+#, no-c-format
+msgid "The database host to connect to."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1801
+#, no-c-format
+msgid "-p <port>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1804
+#, no-c-format
+msgid "The port to connect to on the database host."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1809
+#, no-c-format
+msgid "-P <password>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1812
+#, no-c-format
+msgid "The password to use when connecting to the database."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1817
+#, no-c-format
+msgid "-u <user>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1820
+#, no-c-format
+msgid "The username to use when connecting to the database."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1825
+#, no-c-format
+msgid "-g <geometry column>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1828
+#, no-c-format
+msgid ""
+"In the case of tables with multiple geometry columns, the geometry column to "
+"use when writing the shape file."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1834
+#, no-c-format
+msgid "<term>-b</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1837
+#, no-c-format
+msgid ""
+"Use a binary cursor. This will make the operation faster, but will not work "
+"if any NON-geometry attribute in the table lacks a cast to text."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1844
+#, no-c-format
+msgid "<term>-r</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1847
+#, no-c-format
+msgid ""
+"Raw mode. Do not drop the <varname>gid</varname> field, or escape column "
+"names."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1856
+#, no-c-format
+msgid ""
+"For backward compatibility: write a 3-dimensional shape file when dumping "
+"from old (pre-1.0.0) postgis databases (the default is to write a 2-"
+"dimensional shape file in that case). Starting from postgis-1.0.0+, "
+"dimensions are fully encoded."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1864
+#, no-c-format
+msgid "-m <varname>filename</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1866
+#, no-c-format
+msgid ""
+"Remap identifiers to ten character names. The content of the file is lines "
+"of two symbols separated by a single white space and no trailing or leading "
+"space: VERYLONGSYMBOL SHORTONE ANOTHERVERYLONGSYMBOL SHORTER etc."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1879
+#, no-c-format
+msgid "Building Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1881
+#, no-c-format
+msgid ""
+"Indexes are what make using a spatial database for large data sets possible. "
+"Without indexing, any search for a feature would require a \"sequential scan"
+"\" of every record in the database. Indexing speeds up searching by "
+"organizing the data into a search tree which can be quickly traversed to "
+"find a particular record. PostgreSQL supports three kinds of indexes by "
+"default: B-Tree indexes, R-Tree indexes, and GiST indexes."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1891
+#, no-c-format
+msgid ""
+"B-Trees are used for data which can be sorted along one axis; for example, "
+"numbers, letters, dates. GIS data cannot be rationally sorted along one axis "
+"(which is greater, (0,0) or (0,1) or (1,0)?) so B-Tree indexing is of no use "
+"for us."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1898
+#, no-c-format
+msgid ""
+"R-Trees break up data into rectangles, and sub-rectangles, and sub-sub "
+"rectangles, etc. R-Trees are used by some spatial databases to index GIS "
+"data, but the PostgreSQL R-Tree implementation is not as robust as the GiST "
+"implementation."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1905
+#, no-c-format
+msgid ""
+"GiST (Generalized Search Trees) indexes break up data into \"things to one "
+"side\", \"things which overlap\", \"things which are inside\" and can be "
+"used on a wide range of data-types, including GIS data. PostGIS uses an R-"
+"Tree index implemented on top of GiST to index GIS data."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1914
+#, no-c-format
+msgid "GiST Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1916
+#, no-c-format
+msgid ""
+"GiST stands for \"Generalized Search Tree\" and is a generic form of "
+"indexing. In addition to GIS indexing, GiST is used to speed up searches on "
+"all kinds of irregular data structures (integer arrays, spectral data, etc) "
+"which are not amenable to normal B-Tree indexing."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1921
+#, no-c-format
+msgid ""
+"Once a GIS data table exceeds a few thousand rows, you will want to build an "
+"index to speed up spatial searches of the data (unless all your searches are "
+"based on attributes, in which case you'll want to build a normal index on "
+"the attribute fields)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1926
+#, no-c-format
+msgid ""
+"The syntax for building a GiST index on a \"geometry\" column is as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1929
+#, no-c-format
+msgid "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1930
+#, no-c-format
+msgid ""
+"The above syntax will always build a 2D-index. To get the an n-dimensional "
+"index supported in PostGIS 2.0+ for the geometry type, you can create one "
+"using this syntax"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1931
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield] "
+"gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1933
+#, no-c-format
+msgid ""
+"Building a spatial index is a computationally intensive exercise: on tables "
+"of around 1 million rows, on a 300MHz Solaris machine, we have found "
+"building a GiST index takes about 1 hour. After building an index, it is "
+"important to force PostgreSQL to collect table statistics, which are used to "
+"optimize query plans:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1939
+#, no-c-format
+msgid ""
+"VACUUM ANALYZE [table_name] [(column_name)];\n"
+"-- This is only needed for PostgreSQL 7.4 installations and below\n"
+"SELECT UPDATE_GEOMETRY_STATS([table_name], [column_name]);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1941
+#, no-c-format
+msgid ""
+"GiST indexes have two advantages over R-Tree indexes in PostgreSQL. Firstly, "
+"GiST indexes are \"null safe\", meaning they can index columns which include "
+"null values. Secondly, GiST indexes support the concept of \"lossiness\" "
+"which is important when dealing with GIS objects larger than the PostgreSQL "
+"8K page size. Lossiness allows PostgreSQL to store only the \"important\" "
+"part of an object in an index -- in the case of GIS objects, just the "
+"bounding box. GIS objects larger than 8K will cause R-Tree indexes to fail "
+"in the process of being built."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1953
+#, no-c-format
+msgid "Using Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1955
+#, no-c-format
+msgid ""
+"Ordinarily, indexes invisibly speed up data access: once the index is built, "
+"the query planner transparently decides when to use index information to "
+"speed up a query plan. Unfortunately, the PostgreSQL query planner does not "
+"optimize the use of GiST indexes well, so sometimes searches which should "
+"use a spatial index instead default to a sequence scan of the whole table."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1962
+#, no-c-format
+msgid ""
+"If you find your spatial indexes are not being used (or your attribute "
+"indexes, for that matter) there are a couple things you can do:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1968
+#, no-c-format
+msgid ""
+"Firstly, make sure statistics are gathered about the number and "
+"distributions of values in a table, to provide the query planner with better "
+"information to make decisions around index usage. For PostgreSQL 7.4 "
+"installations and below this is done by running "
+"<command>update_geometry_stats([table_name, column_name])</command> (compute "
+"distribution) and <command>VACUUM ANALYZE [table_name] [column_name]</"
+"command> (compute number of values). Starting with PostgreSQL 8.0 running "
+"<command>VACUUM ANALYZE</command> will do both operations. You should "
+"regularly vacuum your databases anyways -- many PostgreSQL DBAs have "
+"<command>VACUUM</command> run as an off-peak cron job on a regular basis."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1982
+#, no-c-format
+msgid ""
+"If vacuuming does not work, you can force the planner to use the index "
+"information by using the <command>SET ENABLE_SEQSCAN=OFF</command> command. "
+"You should only use this command sparingly, and only on spatially indexed "
+"queries: generally speaking, the planner knows better than you do about when "
+"to use normal B-Tree indexes. Once you have run your query, you should "
+"consider setting <varname>ENABLE_SEQSCAN</varname> back on, so that other "
+"queries will utilize the planner as normal."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1992
+#, no-c-format
+msgid ""
+"As of version 0.6, it should not be necessary to force the planner to use "
+"the index with <varname>ENABLE_SEQSCAN</varname>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1999
+#, no-c-format
+msgid ""
+"If you find the planner wrong about the cost of sequential vs index scans "
+"try reducing the value of random_page_cost in postgresql.conf or using SET "
+"random_page_cost=#. Default value for the parameter is 4, try setting it to "
+"1 or 2. Decrementing the value makes the planner more inclined of using "
+"Index scans."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2010
+#, no-c-format
+msgid "Complex Queries"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2012
+#, no-c-format
+msgid ""
+"The <emphasis>raison d'etre</emphasis> of spatial database functionality is "
+"performing queries inside the database which would ordinarily require "
+"desktop GIS functionality. Using PostGIS effectively requires knowing what "
+"spatial functions are available, and ensuring that appropriate indexes are "
+"in place to provide good performance. The SRID of 312 used in these examples "
+"is purely for demonstration. You should be using a REAL SRID listed in the "
+"the spatial_ref_sys table and one that matches the projection of your data. "
+"If your data has no spatial reference system specified, you should be "
+"THINKING very thoughtfully why it doesn't and maybe it should. If your "
+"reason is because you are modeling something that doesn't have a geographic "
+"spatial reference system defined such as the internals of a molecule or a "
+"good location on Mars to transport the human race in the event of a nuclear "
+"holocaust, then simply leave out the SRID or make one up and insert it in "
+"the <varname>spatial_ref_sys</varname> table."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2026
+#, no-c-format
+msgid "Taking Advantage of Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2028
+#, no-c-format
+msgid ""
+"When constructing a query it is important to remember that only the bounding-"
+"box-based operators such as && can take advantage of the GiST "
+"spatial index. Functions such as <varname>ST_Distance()</varname> cannot use "
+"the index to optimize their operation. For example, the following query "
+"would be quite slow on a large table:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2035
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_Distance(the_geom, ST_GeomFromText('POINT(100000 200000)', 312)) "
+"< 100"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2037
+#, no-c-format
+msgid ""
+"This query is selecting all the geometries in geom_table which are within "
+"100 units of the point (100000, 200000). It will be slow because it is "
+"calculating the distance between each point in the table and our specified "
+"point, ie. one <varname>ST_Distance()</varname> calculation for each row in "
+"the table. We can avoid this by using the && operator to reduce the "
+"number of distance calculations required:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2044
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_DWithin(the_geom,  ST_MakeEnvelope(90900, 190900, 100100, "
+"200100,312), 100)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2046
+#, no-c-format
+msgid ""
+"This query selects the same geometries, but it does it in a more efficient "
+"way. Assuming there is a GiST index on the_geom, the query planner will "
+"recognize that it can use the index to reduce the number of rows before "
+"calculating the result of the <varname>ST_distance()</varname> function. "
+"Notice that the <varname>ST_MakeEnvelope</varname> geometry which is used in "
+"the && operation is a 200 unit square box centered on the original "
+"point - this is our \"query box\". The && operator uses the index to "
+"quickly reduce the result set down to only those geometries which have "
+"bounding boxes that overlap the \"query box\". Assuming that our query box "
+"is much smaller than the extents of the entire geometry table, this will "
+"drastically reduce the number of distance calculations that need to be done."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2060
+#, no-c-format
+msgid "Change in Behavior"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2062
+#, no-c-format
+msgid ""
+"As of PostGIS 1.3.0, most of the Geometry Relationship Functions, with the "
+"notable exceptions of ST_Disjoint and ST_Relate, include implicit bounding "
+"box overlap operators."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2069
+#, no-c-format
+msgid "Examples of Spatial SQL"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2071
+#, no-c-format
+msgid ""
+"The examples in this section will make use of two tables, a table of linear "
+"roads, and a table of polygonal municipality boundaries. The table "
+"definitions for the <varname>bc_roads</varname> table is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2075
+#, no-c-format
+msgid ""
+"Column      | Type              | Description\n"
+"------------+-------------------+-------------------\n"
+"gid         | integer           | Unique ID\n"
+"name        | character varying | Road Name\n"
+"the_geom    | geometry          | Location Geometry (Linestring)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2077
+#, no-c-format
+msgid ""
+"The table definition for the <varname>bc_municipality</varname> table is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2080
+#, no-c-format
+msgid ""
+"Column     | Type              | Description\n"
+"-----------+-------------------+-------------------\n"
+"gid        | integer           | Unique ID\n"
+"code       | integer           | Unique ID\n"
+"name       | character varying | City / Town Name\n"
+"the_geom   | geometry          | Location Geometry (Polygon)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2085
+#, no-c-format
+msgid "What is the total length of all roads, expressed in kilometers?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2090
+#, no-c-format
+msgid "You can answer this question with a very simple piece of SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2093
+#, no-c-format
+msgid ""
+"SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM bc_roads;\n"
+"\n"
+"km_roads\n"
+"------------------\n"
+"70842.1243039643\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2099
+#, no-c-format
+msgid "How large is the city of Prince George, in hectares?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2103
+#, no-c-format
+msgid ""
+"This query combines an attribute condition (on the municipality name) with a "
+"spatial calculation (of the area):"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2107
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM bc_municipality\n"
+"WHERE name = 'PRINCE GEORGE';\n"
+"\n"
+"hectares\n"
+"------------------\n"
+"32657.9103824927\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2113
+#, no-c-format
+msgid "What is the largest municipality in the province, by area?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2118
+#, no-c-format
+msgid ""
+"This query brings a spatial measurement into the query condition. There are "
+"several ways of approaching this problem, but the most efficient is below:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2122
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  name,\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM\n"
+"  bc_municipality\n"
+"ORDER BY hectares DESC\n"
+"LIMIT 1;\n"
+"\n"
+"name           | hectares\n"
+"---------------+-----------------\n"
+"TUMBLER RIDGE  | 155020.02556131\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2124
+#, no-c-format
+msgid ""
+"Note that in order to answer this query we have to calculate the area of "
+"every polygon. If we were doing this a lot it would make sense to add an "
+"area column to the table that we could separately index for performance. By "
+"ordering the results in a descending direction, and them using the "
+"PostgreSQL \"LIMIT\" command we can easily pick off the largest value "
+"without using an aggregate function like max()."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2136
+#, no-c-format
+msgid "What is the length of roads fully contained within each municipality?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2141
+#, no-c-format
+msgid ""
+"This is an example of a \"spatial join\", because we are bringing together "
+"data from two tables (doing a join) but using a spatial interaction "
+"condition (\"contained\") as the join condition rather than the usual "
+"relational approach of joining on a common key:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2147
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  m.name,\n"
+"  sum(ST_Length(r.the_geom))/1000 as roads_km\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE\n"
+"  ST_Contains(m.the_geom,r.the_geom)\n"
+"GROUP BY m.name\n"
+"ORDER BY roads_km;\n"
+"\n"
+"name                        | roads_km\n"
+"----------------------------+------------------\n"
+"SURREY                      | 1539.47553551242\n"
+"VANCOUVER                   | 1450.33093486576\n"
+"LANGLEY DISTRICT            | 833.793392535662\n"
+"BURNABY                     | 773.769091404338\n"
+"PRINCE GEORGE               | 694.37554369147\n"
+"..."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2149
+#, no-c-format
+msgid ""
+"This query takes a while, because every road in the table is summarized into "
+"the final result (about 250K roads for our particular example table). For "
+"smaller overlays (several thousand records on several hundred) the response "
+"can be very fast."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2158
+#, no-c-format
+msgid "Create a new table with all the roads within the city of Prince George."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2163
+#, no-c-format
+msgid ""
+"This is an example of an \"overlay\", which takes in two tables and outputs "
+"a new table that consists of spatially clipped or cut resultants. Unlike the "
+"\"spatial join\" demonstrated above, this query actually creates new "
+"geometries. An overlay is like a turbo-charged spatial join, and is useful "
+"for more exact analysis work:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2170
+#, no-c-format
+msgid ""
+"CREATE TABLE pg_roads as\n"
+"SELECT\n"
+"  ST_Intersection(r.the_geom, m.the_geom) AS intersection_geom,\n"
+"  ST_Length(r.the_geom) AS rd_orig_length,\n"
+"  r.*\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE  m.name = 'PRINCE GEORGE' AND ST_Intersects(r.the_geom, m.the_geom);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2176
+#, no-c-format
+msgid "What is the length in kilometers of \"Douglas St\" in Victoria?"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2181
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  sum(ST_Length(r.the_geom))/1000 AS kilometers\n"
+"FROM\n"
+"  bc_roads r,\n"
+"  bc_municipality m\n"
+"WHERE  r.name = 'Douglas St' AND m.name = 'VICTORIA'\n"
+"        AND ST_Contains(m.the_geom, r.the_geom) ;\n"
+"\n"
+"kilometers\n"
+"------------------\n"
+"4.89151904172838\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2187
+#, no-c-format
+msgid "What is the largest municipality polygon that has a hole?"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2192
+#, no-c-format
+msgid ""
+"SELECT gid, name, ST_Area(the_geom) AS area\n"
+"FROM bc_municipality\n"
+"WHERE ST_NRings(the_geom) > 1\n"
+"ORDER BY area DESC LIMIT 1;\n"
+"\n"
+"gid  | name         | area\n"
+"-----+--------------+------------------\n"
+"12   | SPALLUMCHEEN | 257374619.430216\n"
+"(1 row)"
+msgstr ""
diff --git a/doc/po/ko_KR/using_raster_dataman.xml.po b/doc/po/ko_KR/using_raster_dataman.xml.po
new file mode 100644
index 0000000..671353e
--- /dev/null
+++ b/doc/po/ko_KR/using_raster_dataman.xml.po
@@ -0,0 +1,1590 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-18 11:17+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/postgis/"
+"language/ko_KR/)\n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Tag: title
+#: using_raster_dataman.xml:3
+#, no-c-format
+msgid "Raster Data Management, Queries, and Applications"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:5
+#, no-c-format
+msgid "Loading and Creating Rasters"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:6
+#, no-c-format
+msgid ""
+"For most use cases, you will create PostGIS rasters by loading existing "
+"raster files using the packaged <varname>raster2pgsql</varname> raster "
+"loader."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:9
+#, no-c-format
+msgid "Using raster2pgsql to load rasters"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:10
+#, no-c-format
+msgid ""
+"The <varname>raster2pgsql</varname> is a raster loader executable that loads "
+"GDAL supported raster formats into sql suitable for loading into a PostGIS "
+"raster table. It is capable of loading folders of raster files as well as "
+"creating overviews of rasters."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:13
+#, no-c-format
+msgid ""
+"Since the raster2pgsql is compiled as part of PostGIS most often (unless you "
+"compile your own GDAL library), the raster types supported by the executable "
+"will be the same as those compiled in the GDAL dependency library. To get a "
+"list of raster types your particular raster2pgsql supports use the <varname>-"
+"G</varname> switch. These should be the same as those provided by your "
+"PostGIS install documented here <xref linkend=\"RT_ST_GDALDrivers\"/> if you "
+"are using the same gdal library for both."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:16
+#, no-c-format
+msgid ""
+"The older version of this tool was a python script. The executable has "
+"replaced the python script. If you still find the need for the Python script "
+"Examples of the python one can be found at <ulink url=\"http://trac.osgeo."
+"org/gdal/wiki/frmts_wtkraster.html\">GDAL PostGIS Raster Driver Usage</"
+"ulink>. Please note that the raster2pgsql python script may not work with "
+"future versions of PostGIS raster and is no longer supported."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:21
+#, no-c-format
+msgid ""
+"When creating overviews of a specific factor from a set of rasters that are "
+"aligned, it is possible for the overviews to not align. Visit <ulink url="
+"\"http://trac.osgeo.org/postgis/ticket/1764\">http://trac.osgeo.org/postgis/"
+"ticket/1764</ulink> for an example where the overviews do not align."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:23
+#, no-c-format
+msgid "EXAMPLE USAGE:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:24
+#, no-c-format
+msgid ""
+"raster2pgsql <varname>raster_options_go_here</varname> <varname>raster_file</"
+"varname> <varname>someschema</varname>.<varname>sometable</varname> > out."
+"sql"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:28
+#, no-c-format
+msgid "<term>-?</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:30
+#, no-c-format
+msgid ""
+"Display help screen. Help will also display if you don't pass in any "
+"arguments."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:37
+#, no-c-format
+msgid "<term>-G</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:39
+#, no-c-format
+msgid "Print the supported raster formats."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:46
+#, no-c-format
+msgid "(c|a|d|p) These are mutually exclusive options:"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:51
+#, no-c-format
+msgid "<term>-c</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:53
+#, no-c-format
+msgid ""
+"Create new table and populate it with raster(s), <emphasis>this is the "
+"default mode</emphasis>"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:60
+#, no-c-format
+msgid "<term>-a</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:62
+#, no-c-format
+msgid "Append raster(s) to an existing table."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:69
+#, no-c-format
+msgid "<term>-d</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:71
+#, no-c-format
+msgid "Drop table, create new one and populate it with raster(s)"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:78
+#, no-c-format
+msgid "<term>-p</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:80
+#, no-c-format
+msgid "Prepare mode, only create the table."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:91
+#, no-c-format
+msgid ""
+"Raster processing: Applying constraints for proper registering in raster "
+"catalogs"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:96
+#, no-c-format
+msgid "<term>-C</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:98
+#, no-c-format
+msgid ""
+"Apply raster constraints -- srid, pixelsize etc. to ensure raster is "
+"properly registered in <varname>raster_columns</varname> view."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:104
+#, no-c-format
+msgid "<term>-x</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:106
+#, no-c-format
+msgid ""
+"Disable setting the max extent constraint. Only applied if -C flag is also "
+"used."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:112
+#, no-c-format
+msgid "<term>-r</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:114
+#, no-c-format
+msgid ""
+"Set the constraints (spatially unique and coverage tile) for regular "
+"blocking. Only applied if -C flag is also used."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:125
+#, no-c-format
+msgid ""
+"Raster processing: Optional parameters used to manipulate input raster "
+"dataset"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:130
+#, no-c-format
+msgid "-s <SRID>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:132
+#, no-c-format
+msgid ""
+"Assign output raster with specified SRID. If not provided or is zero, "
+"raster's metadata will be checked to determine an appropriate SRID."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:139
+#, no-c-format
+msgid "-b BAND"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:141
+#, no-c-format
+msgid ""
+"Index (1-based) of band to extract from raster. For more than one band "
+"index, separate with comma (,). If unspecified, all bands of raster will be "
+"extracted."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:149
+#, no-c-format
+msgid "-t TILE_SIZE"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:151
+#, no-c-format
+msgid ""
+"Cut raster into tiles to be inserted one per table row. <varname>TILE_SIZE</"
+"varname> is expressed as WIDTHxHEIGHT or set to the value \"auto\" to allow "
+"the loader to compute an appropriate tile size using the first raster and "
+"applied to all rasters."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:158
+#, no-c-format
+msgid "-R, --register"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:160
+#, no-c-format
+msgid "Register the raster as a filesystem (out-db) raster."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:161
+#, no-c-format
+msgid ""
+"Only the metadata of the raster and path location to the raster is stored in "
+"the database (not the pixels)."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:166
+#, no-c-format
+msgid "-l <varname>OVERVIEW_FACTOR</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:167
+#, no-c-format
+msgid ""
+"Create overview of the raster. For more than one factor, separate with "
+"comma(,). Overview table name follows the pattern o_<varname>overview "
+"factor</varname>_<varname>table</varname>, where <varname>overview factor</"
+"varname> is a placeholder for numerical overview factor and <varname>table</"
+"varname> is replaced with the base table name. Created overview is stored in "
+"the database and is not affected by -R. Note that your generated sql file "
+"will contain both the main table and overview tables."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:175
+#, no-c-format
+msgid "-N <varname>NODATA</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:177
+#, no-c-format
+msgid "NODATA value to use on bands without a NODATA value."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:189
+#, no-c-format
+msgid "Optional parameters used to manipulate database objects"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:194
+#, no-c-format
+msgid "<term>-q</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:196
+#, no-c-format
+msgid "Wrap PostgreSQL identifiers in quotes"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:201
+#, no-c-format
+msgid "-f COLUMN"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:203
+#, no-c-format
+msgid "Specify name of destination raster column, default is 'rast'"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:209
+#, no-c-format
+msgid "<term>-F</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:211
+#, no-c-format
+msgid "Add a column with the name of the file"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:216
+#, no-c-format
+msgid "<term>-I</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:218
+#, no-c-format
+msgid "Create a GiST index on the raster column."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:225
+#, no-c-format
+msgid "<term>-M</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:227
+#, no-c-format
+msgid "Vacuum analyze the raster table."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:234
+#, no-c-format
+msgid "-T <varname>tablespace</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:236
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table. Note that indices (including the "
+"primary key) will still use the default tablespace unless the -X flag is "
+"also used."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:245
+#, no-c-format
+msgid "-X <varname>tablespace</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:247
+#, no-c-format
+msgid ""
+"Specify the tablespace for the table's new index. This applies to the "
+"primary key and the spatial index if the -I flag is used."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:256
+#, no-c-format
+msgid "<term>-Y</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:258
+#, no-c-format
+msgid "Use copy statements instead of insert statements."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:269
+#, no-c-format
+msgid "<term>-e</term>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:270
+#, no-c-format
+msgid "Execute each statement individually, do not use a transaction."
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:274
+#, no-c-format
+msgid "-E ENDIAN"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:275
+#, no-c-format
+msgid ""
+"Control endianness of generated binary output of raster; specify 0 for XDR "
+"and 1 for NDR (default); only NDR output is supported now"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:279
+#, no-c-format
+msgid "-V <varname>version</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:280
+#, no-c-format
+msgid ""
+"Specify version of output format. Default is 0. Only 0 is supported at this "
+"time."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:283
+#, no-c-format
+msgid ""
+"An example session using the loader to create an input file and uploading it "
+"chunked in 100x100 tiles might look like this:"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:284
+#, no-c-format
+msgid ""
+"You can leave the schema name out e.g <varname>demelevation</varname> "
+"instead of <varname>public.demelevation</varname> and the raster table will "
+"be created in the default schema of the database or user"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:286
+#, no-c-format
+msgid ""
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
+"sql\n"
+"psql -d gisdb -f elev.sql"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:288
+#, no-c-format
+msgid "A conversion and upload can be done all in one step using UNIX pipes:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:290
+#, no-c-format
+msgid ""
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
+"-d gisdb"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:292
+#, no-c-format
+msgid ""
+"Load rasters Massachusetts state plane meters aerial tiles into a schema "
+"called <varname>aerial</varname> and create a full view, 2 and 4 level "
+"overview tables, use copy mode for inserting (no intermediary file just "
+"straight to db), and -e don't force everything in a transaction (good if you "
+"want to see data in tables right away without waiting). Break up the rasters "
+"into 128x128 pixel tiles and apply raster constraints. Use copy mode instead "
+"of table insert. (-F) Include a field called filename to hold the name of "
+"the file the tiles were cut from."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:294
+#, no-c-format
+msgid ""
+"raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128  -l 2,4 bostonaerials2008/*."
+"jpg aerials.boston | psql -U postgres -d gisdb -h localhost -p 5432"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:296
+#, no-c-format
+msgid ""
+"--get a list of raster types supported:\n"
+"raster2pgsql -G"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:298
+#, no-c-format
+msgid "The -G commands outputs a list something like"
+msgstr ""
+
+#. Tag: screen
+#: using_raster_dataman.xml:299
+#, no-c-format
+msgid ""
+"Available GDAL raster formats:\n"
+"  Virtual Raster\n"
+"  GeoTIFF\n"
+"  National Imagery Transmission Format\n"
+"  Raster Product Format TOC format\n"
+"  ECRG TOC format\n"
+"  Erdas Imagine Images (.img)\n"
+"  CEOS SAR Image\n"
+"  CEOS Image\n"
+"  JAXA PALSAR Product Reader (Level 1.1/1.5)\n"
+"  Ground-based SAR Applications Testbed File Format (.gff)\n"
+"  ELAS\n"
+"  Arc/Info Binary Grid\n"
+"  Arc/Info ASCII Grid\n"
+"  GRASS ASCII Grid\n"
+"  SDTS Raster\n"
+"  DTED Elevation Raster\n"
+"  Portable Network Graphics\n"
+"  JPEG JFIF\n"
+"  In Memory Raster\n"
+"  Japanese DEM (.mem)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Envisat Image Format\n"
+"  Maptech BSB Nautical Charts\n"
+"  X11 PixMap Format\n"
+"  MS Windows Device Independent Bitmap\n"
+"  SPOT DIMAP\n"
+"  AirSAR Polarimetric Image\n"
+"  RadarSat 2 XML Product\n"
+"  PCIDSK Database File\n"
+"  PCRaster Raster File\n"
+"  ILWIS Raster Map\n"
+"  SGI Image File Format 1.0\n"
+"  SRTMHGT File Format\n"
+"  Leveller heightfield\n"
+"  Terragen heightfield\n"
+"  USGS Astrogeology ISIS cube (Version 3)\n"
+"  USGS Astrogeology ISIS cube (Version 2)\n"
+"  NASA Planetary Data System\n"
+"  EarthWatch .TIL\n"
+"  ERMapper .ers Labelled\n"
+"  NOAA Polar Orbiter Level 1b Data Set\n"
+"  FIT Image\n"
+"  GRIdded Binary (.grb)\n"
+"  Raster Matrix Format\n"
+"  EUMETSAT Archive native (.nat)\n"
+"  Idrisi Raster A.1\n"
+"  Intergraph Raster\n"
+"  Golden Software ASCII Grid (.grd)\n"
+"  Golden Software Binary Grid (.grd)\n"
+"  Golden Software 7 Binary Grid (.grd)\n"
+"  COSAR Annotated Binary Matrix (TerraSAR-X)\n"
+"  TerraSAR-X Product\n"
+"  DRDC COASP SAR Processor Raster\n"
+"  R Object Data Store\n"
+"  Portable Pixmap Format (netpbm)\n"
+"  USGS DOQ (Old Style)\n"
+"  USGS DOQ (New Style)\n"
+"  ENVI .hdr Labelled\n"
+"  ESRI .hdr Labelled\n"
+"  Generic Binary (.hdr Labelled)\n"
+"  PCI .aux Labelled\n"
+"  Vexcel MFF Raster\n"
+"  Vexcel MFF2 (HKV) Raster\n"
+"  Fuji BAS Scanner Image\n"
+"  GSC Geogrid\n"
+"  EOSAT FAST Format\n"
+"  VTP .bt (Binary Terrain) 1.3 Format\n"
+"  Erdas .LAN/.GIS\n"
+"  Convair PolGASP\n"
+"  Image Data and Analysis\n"
+"  NLAPS Data Format\n"
+"  Erdas Imagine Raw\n"
+"  DIPEx\n"
+"  FARSITE v.4 Landscape File (.lcp)\n"
+"  NOAA Vertical Datum .GTX\n"
+"  NADCON .los/.las Datum Grid Shift\n"
+"  NTv2 Datum Grid Shift\n"
+"  ACE2\n"
+"  Snow Data Assimilation System\n"
+"  Swedish Grid RIK (.rik)\n"
+"  USGS Optional ASCII DEM (and CDED)\n"
+"  GeoSoft Grid Exchange Format\n"
+"  Northwood Numeric Grid Format .grd/.tab\n"
+"  Northwood Classified Grid Format .grc/.tab\n"
+"  ARC Digitized Raster Graphics\n"
+"  Standard Raster Product (ASRP/USRP)\n"
+"  Magellan topo (.blx)\n"
+"  SAGA GIS Binary Grid (.sdat)\n"
+"  Kml Super Overlay\n"
+"  ASCII Gridded XYZ\n"
+"  HF2/HFZ heightfield raster\n"
+"  OziExplorer Image File\n"
+"  USGS LULC Composite Theme Grid\n"
+"  Arc/Info Export E00 GRID\n"
+"  ZMap Plus Grid\n"
+"  NOAA NGS Geoid Height Grids"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:302
+#, no-c-format
+msgid "Creating rasters using PostGIS raster functions"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:303
+#, no-c-format
+msgid ""
+"On many occasions, you'll want to create rasters and raster tables right in "
+"the database. There are a plethora of functions to do that. The general "
+"steps to follow."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:305
+#, no-c-format
+msgid ""
+"Create a table with a raster column to hold the new raster records which can "
+"be accomplished with:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:306
+#, no-c-format
+msgid "CREATE TABLE myrasters(rid serial primary key, rast raster);"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:309
+#, no-c-format
+msgid ""
+"There are many functions to help with that goal. If you are creating rasters "
+"not as a derivative of other rasters, you will want to start with: <xref "
+"linkend=\"RT_ST_MakeEmptyRaster\"/>, followed by <xref linkend="
+"\"RT_ST_AddBand\"/>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:311
+#, no-c-format
+msgid ""
+"You can also create rasters from geometries. To achieve that you'll want to "
+"use <xref linkend=\"RT_ST_AsRaster\"/> perhaps accompanied with other "
+"functions such as <xref linkend=\"RT_ST_Union\"/> or <xref linkend="
+"\"RT_ST_MapAlgebraFct2\"/> or any of the family of other map algebra "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:313
+#, no-c-format
+msgid ""
+"There are even many more options for creating new raster tables from "
+"existing tables. For example you can create a raster table in a different "
+"projection from an existing one using <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:315
+#, no-c-format
+msgid ""
+"Once you are done populating your table initially, you'll want to create a "
+"spatial index on the raster column with something like:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:316
+#, no-c-format
+msgid ""
+"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING "
+"gist( ST_ConvexHull(rast) );"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:317
+#, no-c-format
+msgid ""
+"Note the use of <xref linkend=\"RT_ST_ConvexHull\"/> since most raster "
+"operators are based on the convex hull of the rasters."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:318
+#, no-c-format
+msgid ""
+"Pre-2.0 versions of PostGIS raster were based on the envelop rather than the "
+"convex hull. For the spatial indexes to work properly you'll need to drop "
+"those and replace with convex hull based index."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:319
+#, no-c-format
+msgid ""
+"Apply raster constraints using <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:324
+#, no-c-format
+msgid "Raster Catalogs"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:325
+#, no-c-format
+msgid ""
+"There are two raster catalog views that come packaged with PostGIS. Both "
+"views utilize information embedded in the constraints of the raster tables. "
+"As a result the catalog views are always consistent with the raster data in "
+"the tables since the constraints are enforced."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:329
+#, no-c-format
+msgid ""
+"<varname>raster_columns</varname> this view catalogs all the raster table "
+"columns in your database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:332
+#, no-c-format
+msgid ""
+"<varname>raster_overviews</varname> this view catalogs all the raster table "
+"columns in your database that serve as overviews for a finer grained table. "
+"Tables of this type are generated when you use the <varname>-l</varname> "
+"switch during load."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:336
+#, no-c-format
+msgid "Raster Columns Catalog"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:337
+#, no-c-format
+msgid ""
+"The <varname>raster_columns</varname> is a catalog of all raster table "
+"columns in your database that are of type raster. It is a view utilizing the "
+"constraints on the tables so the information is always consistent even if "
+"you restore one raster table from a backup of another database. The "
+"following columns exist in the <varname>raster_columns</varname> catalog."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:339
+#, no-c-format
+msgid ""
+"If you created your tables not with the loader or forgot to specify the "
+"<varname>-C</varname> flag during load, you can enforce the constraints "
+"after the fact using <xref linkend=\"RT_AddRasterConstraints\"/> so that the "
+"<varname>raster_columns</varname> catalog registers the common information "
+"about your raster tiles."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:344
+#, no-c-format
+msgid ""
+"<varname>r_table_catalog</varname> The database the table is in. This will "
+"always read the current database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:347
+#, no-c-format
+msgid ""
+"<varname>r_table_schema</varname> The database schema the raster table "
+"belongs to."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:350
+#, no-c-format
+msgid "<varname>r_table_name</varname> raster table"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:353
+#, no-c-format
+msgid ""
+"<varname>r_raster_column</varname> the column in the <varname>r_table_name</"
+"varname> table that is of type raster. There is nothing in PostGIS "
+"preventing you from having multiple raster columns per table so its possible "
+"to have a raster table listed multiple times with a different raster column "
+"for each."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:356
+#, no-c-format
+msgid ""
+"<varname>srid</varname> The spatial reference identifier of the raster. "
+"Should be an entry in the <xref linkend=\"spatial_ref_sys\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:359
+#, no-c-format
+msgid ""
+"<varname>scale_x</varname> The scaling between geometric spatial coordinates "
+"and pixel. This is only available if all tiles in the raster column have the "
+"same <varname>scale_x</varname> and this constraint is applied. Refer to "
+"<xref linkend=\"RT_ST_ScaleX\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:362
+#, no-c-format
+msgid ""
+"<varname>scale_y</varname> The scaling between geometric spatial coordinates "
+"and pixel. This is only available if all tiles in the raster column have the "
+"same <varname>scale_y</varname> and the <varname>scale_y</varname> "
+"constraint is applied. Refer to <xref linkend=\"RT_ST_ScaleY\"/> for more "
+"details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:365
+#, no-c-format
+msgid ""
+"<varname>blocksize_x</varname> The width (number of pixels across) of each "
+"raster tile . Refer to <xref linkend=\"RT_ST_Width\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:368
+#, no-c-format
+msgid ""
+"<varname>blocksize_y</varname> The width (number of pixels down) of each "
+"raster tile . Refer to <xref linkend=\"RT_ST_Height\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:371
+#, no-c-format
+msgid ""
+"<varname>same_alignment</varname> A boolean that is true if all the raster "
+"tiles have the same alignment . Refer to <xref linkend=\"RT_ST_SameAlignment"
+"\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:374
+#, no-c-format
+msgid ""
+"<varname>regular_blocking</varname> If the raster column has the spatially "
+"unique and coverage tile constraints, the value with be TRUE. Otherwise, it "
+"will be FALSE."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:377
+#, no-c-format
+msgid ""
+"<varname>num_bands</varname> The number of bands in each tile of your raster "
+"set. This is the same information as what is provided by"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:380
+#, no-c-format
+msgid ""
+"<varname>pixel_types</varname> An array defining the pixel type for each "
+"band. You will have the same number of elements in this array as you have "
+"number of bands. The pixel_types are one of the following defined in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:383
+#, no-c-format
+msgid ""
+"<varname>nodata_values</varname> An array of double precision numbers "
+"denoting the <varname>nodata_value</varname> for each band. You will have "
+"the same number of elements in this array as you have number of bands. These "
+"numbers define the pixel value for each band that should be ignored for most "
+"operations. This is similar information provided by <xref linkend="
+"\"RT_ST_BandNoDataValue\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:386
+#, no-c-format
+msgid ""
+"<varname>out_db</varname> An array of boolean flags indicating if the raster "
+"bands data is maintained outside the database. You will have the same number "
+"of elements in this array as you have number of bands."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:389
+#, no-c-format
+msgid ""
+"<varname>extent</varname> This is the extent of all the raster rows in your "
+"raster set. If you plan to load more data that will change the extent of the "
+"set, you'll want to run the <xref linkend=\"RT_DropRasterConstraints\"/> "
+"function before load and then reapply constraints with <xref linkend="
+"\"RT_AddRasterConstraints\"/> after load."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:392
+#, no-c-format
+msgid ""
+"<varname>spatial_index</varname> A boolean that is true if raster column has "
+"a spatial index."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:397
+#, no-c-format
+msgid "Raster Overviews"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:398
+#, no-c-format
+msgid ""
+"<varname>raster_overviews</varname> catalogs information about raster table "
+"columns used for overviews and additional information about them that is "
+"useful to know when utilizing overviews. Overview tables are cataloged in "
+"both <varname>raster_columns</varname> and <varname>raster_overviews</"
+"varname> because they are rasters in their own right but also serve an "
+"additional special purpose of being a lower resolution caricature of a "
+"higher resolution table. These are generated along-side the main raster "
+"table when you use the <varname>-l</varname> switch in raster loading or can "
+"be generated manually using <xref linkend=\"RT_AddOverviewConstraints\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:399
+#, no-c-format
+msgid ""
+"Overview tables contain the same constraints as other raster tables as well "
+"as additional informational only constraints specific to overviews."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:400
+#, no-c-format
+msgid ""
+"The information in <varname>raster_overviews</varname> does not duplicate "
+"the information in <varname>raster_columns</varname>. If you need the "
+"information about an overview table present in <varname>raster_columns</"
+"varname> you can join the <varname>raster_overviews</varname> and "
+"<varname>raster_columns</varname> together to get the full set of "
+"information you need."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:401
+#, no-c-format
+msgid "Two main reasons for overviews are:"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:403
+#, no-c-format
+msgid ""
+"Low resolution representation of the core tables commonly used for fast "
+"mapping zoom-out."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:404
+#, no-c-format
+msgid ""
+"Computations are generally faster to do on them than their higher resolution "
+"parents because there are fewer records and each pixel covers more "
+"territory. Though the computations are not as accurate as the high-res "
+"tables they support, they can be sufficient in many rule-of-thumb "
+"computations."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:407
+#, no-c-format
+msgid ""
+"The <varname>raster_overviews</varname> catalog contains the following "
+"columns of information."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:410
+#, no-c-format
+msgid ""
+"<varname>o_table_catalog</varname> The database the overview table is in. "
+"This will always read the current database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:413
+#, no-c-format
+msgid ""
+"<varname>o_table_schema</varname> The database schema the overview raster "
+"table belongs to."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:416
+#, no-c-format
+msgid "<varname>o_table_name</varname> raster overview table name"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:419
+#, no-c-format
+msgid ""
+"<varname>o_raster_column</varname> the raster column in the overview table."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:423
+#, no-c-format
+msgid ""
+"<varname>r_table_catalog</varname> The database the raster table that this "
+"overview services is in. This will always read the current database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:426
+#, no-c-format
+msgid ""
+"<varname>r_table_schema</varname> The database schema the raster table that "
+"this overview services belongs to."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:429
+#, no-c-format
+msgid ""
+"<varname>r_table_name</varname> raster table that this overview services."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:432
+#, no-c-format
+msgid ""
+"<varname>r_raster_column</varname> the raster column that this overview "
+"column services."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:435
+#, no-c-format
+msgid ""
+"<varname>overview_factor</varname> - this is the pyramid level of the "
+"overview table. The higher the number the lower the resolution of the table. "
+"raster2pgsql if given a folder of images, will compute overview of each "
+"image file and load separately. Level 1 is assumed and always the original "
+"file. Level 2 is will have each tile represent 4 of the original. So for "
+"example if you have a folder of 5000x5000 pixel image files that you chose "
+"to chunk 125x125, for each image file your base table will have (5000*5000)/"
+"(125*125) records = 1600, your (l=2) <varname>o_2</varname> table will have "
+"ceiling(1600/Power(2,2)) = 400 rows, your (l=3) <varname>o_3</varname> will "
+"have ceiling(1600/Power(2,3) ) = 200 rows. If your pixels aren't divisible "
+"by the size of your tiles, you'll get some scrap tiles (tiles not completely "
+"filled). Note that each overview tile generated by raster2pgsql has the same "
+"number of pixels as its parent, but is of a lower resolution where each "
+"pixel of it represents (Power(2,overview_factor) pixels of the original)."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:447
+#, no-c-format
+msgid "Building Custom Applications with PostGIS Raster"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:448
+#, no-c-format
+msgid ""
+"The fact that PostGIS raster provides you with SQL functions to render "
+"rasters in known image formats gives you a lot of optoins for rendering "
+"them. For example you can use OpenOffice / LibreOffice for rendering as "
+"demonstrated in <ulink url=\"http://www.postgresonline.com/journal/"
+"archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports."
+"html\">Rendering PostGIS Raster graphics with LibreOffice Base Reports</"
+"ulink>. In addition you can use a wide variety of languages as demonstrated "
+"in this section."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:451
+#, no-c-format
+msgid ""
+"PHP Example Outputting using ST_AsPNG in concert with other raster functions"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:452
+#, no-c-format
+msgid ""
+"In this section, we'll demonstrate how to use the PHP PostgreSQL driver and "
+"the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output "
+"band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
+"an img src html tag."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:455 using_raster_dataman.xml:467
+#, no-c-format
+msgid ""
+"The sample query demonstrates how to combine a whole bunch of raster "
+"functions together to grab all tiles that intersect a particular wgs 84 "
+"bounding box and then unions with <xref linkend=\"RT_ST_Union\"/> the "
+"intersecting tiles together returning all bands, transforms to user "
+"specified projection using <xref linkend=\"RT_ST_Transform\"/>, and then "
+"outputs the results as a png using <xref linkend=\"RT_ST_AsPNG\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:458
+#, no-c-format
+msgid ""
+"You would call the below using <programlisting>http://mywebserver/"
+"test_raster.php?srid=2249</programlisting> to get the raster image in "
+"Massachusetts state plane feet."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:459
+#, no-c-format
+msgid ""
+"<![CDATA[<?php\n"
+"/** contents of test_raster.php **/\n"
+"$conn_str ='dbname=mydb host=localhost port=5432 user=myuser "
+"password=mypwd';\n"
+"$dbconn = pg_connect($conn_str);\n"
+"header('Content-Type: image/png');  \n"
+"/**If a particular projection was requested use it otherwise use mass state "
+"plane meters **/\n"
+"if (!empty( $_REQUEST['srid'] ) && is_numeric( $_REQUEST['srid']) ){\n"
+"                $input_srid = intval($_REQUEST['srid']);\n"
+"}\n"
+"else { $input_srid = 26986; }\n"
+"/** The set bytea_output may be needed for PostgreSQL 9.0+, but not for 8.4 "
+"**/\n"
+"$sql = \"set bytea_output='escape';\n"
+"SELECT ST_AsPNG(ST_Transform(\n"
+"                        ST_AddBand(ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                ,$input_srid) ) As new_rast\n"
+" FROM aerials.boston \n"
+"        WHERE \n"
+"         ST_Intersects(rast, ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, "
+"-71.1210, 42.218,4326),26986) )\"; \n"
+"$result = pg_query($sql);\n"
+"$row = pg_fetch_row($result);\n"
+"pg_free_result($result);\n"
+"if ($row === false) return;\n"
+"echo pg_unescape_bytea($row[0]);\n"
+"?>]]>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:462
+#, no-c-format
+msgid ""
+"ASP.NET C# Example Outputting using ST_AsPNG in concert with other raster "
+"functions"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:463
+#, no-c-format
+msgid ""
+"In this section, we'll demonstrate how to use Npgsql PostgreSQL .NET driver "
+"and the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output "
+"band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
+"an img src html tag."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:466
+#, no-c-format
+msgid ""
+"You will need the npgsql .NET PostgreSQL driver for this exercise which you "
+"can get the latest of from <ulink url=\"http://npgsql.projects.postgresql."
+"org/\">http://npgsql.projects.postgresql.org/</ulink>. Just download the "
+"latest and drop into your ASP.NET bin folder and you'll be good to go."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:470
+#, no-c-format
+msgid ""
+"This is same example as <xref linkend=\"RT_PHP_Output\"/> except implemented "
+"in C#."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:471
+#, no-c-format
+msgid ""
+"You would call the below using <programlisting>http://mywebserver/TestRaster."
+"ashx?srid=2249</programlisting> to get the raster image in Massachusetts "
+"state plane feet."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:472
+#, no-c-format
+msgid ""
+"-- web.config connection string section --\n"
+"<![CDATA[<connectionStrings>\n"
+"    <add name=\"DSN\" \n"
+"        connectionString=\"server=localhost;database=mydb;Port=5432;User "
+"Id=myuser;password=mypwd\"/>\n"
+"</connectionStrings>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:473
+#, no-c-format
+msgid ""
+"// Code for TestRaster.ashx\n"
+"<![CDATA[<%@ WebHandler Language=\"C#\" Class=\"TestRaster\" %>\n"
+"using System;\n"
+"using System.Data;\n"
+"using System.Web;\n"
+"using Npgsql;\n"
+"\n"
+"public class TestRaster : IHttpHandler\n"
+"{\n"
+"        public void ProcessRequest(HttpContext context)\n"
+"        {\n"
+"                \n"
+"                context.Response.ContentType = \"image/png\";\n"
+"                context.Response.BinaryWrite(GetResults(context));\n"
+"                \n"
+"        }\n"
+"\n"
+"        public bool IsReusable {\n"
+"                get { return false; }\n"
+"        }\n"
+"\n"
+"        public byte[] GetResults(HttpContext context)\n"
+"        {\n"
+"                byte[] result = null;\n"
+"                NpgsqlCommand command;\n"
+"                string sql = null;\n"
+"                int input_srid = 26986;\n"
+"        try {\n"
+"                    using (NpgsqlConnection conn = new "
+"NpgsqlConnection(System.Configuration.ConfigurationManager."
+"ConnectionStrings[\"DSN\"].ConnectionString)) {\n"
+"                            conn.Open();\n"
+"\n"
+"                if (context.Request[\"srid\"] != null)\n"
+"                {\n"
+"                    input_srid = Convert.ToInt32(context.Request[\"srid"
+"\"]);  \n"
+"                }\n"
+"                sql = @\"SELECT ST_AsPNG(\n"
+"                            ST_Transform(\n"
+"                                        ST_AddBand(\n"
+"                                ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                                    ,:input_srid) ) As "
+"new_rast \n"
+"                        FROM aerials.boston \n"
+"                                WHERE \n"
+"                                    ST_Intersects(rast, \n"
+"                                    ST_Transform(ST_MakeEnvelope(-71.1217, "
+"42.227, -71.1210, 42.218,4326),26986) )\";\n"
+"                            command = new NpgsqlCommand(sql, conn);\n"
+"                command.Parameters.Add(new NpgsqlParameter(\"input_srid\", "
+"input_srid));\n"
+"           \n"
+"                        \n"
+"                            result = (byte[]) command.ExecuteScalar();\n"
+"                conn.Close();\n"
+"                        }\n"
+"\n"
+"                }\n"
+"        catch (Exception ex)\n"
+"        {\n"
+"            result = null;\n"
+"            context.Response.Write(ex.Message.Trim());\n"
+"        }\n"
+"                return result;\n"
+"        }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:476
+#, no-c-format
+msgid "Java console app that outputs raster query as Image file"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:477
+#, no-c-format
+msgid ""
+"This is a simple java console app that takes a query that returns one image "
+"and outputs to specified file."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:478
+#, no-c-format
+msgid ""
+"You can download the latest PostgreSQL JDBC drivers from <ulink url=\"http://"
+"jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/download."
+"html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:479
+#, no-c-format
+msgid "You can compile the following code using a command something like:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:480
+#, no-c-format
+msgid ""
+"set env CLASSPATH .:..\\postgresql-9.0-801.jdbc4.jar\n"
+"javac SaveQueryImage.java\n"
+"jar cfm SaveQueryImage.jar Manifest.txt *.class"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:481
+#, no-c-format
+msgid "And call it from the command-line with something like"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:482
+#, no-c-format
+msgid ""
+"java -jar SaveQueryImage.jar \"SELECT "
+"ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10, 'quad_segs=2'),150, 150, "
+"'8BUI',100));\" \"test.png\""
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:483
+#, no-c-format
+msgid ""
+"-- Manifest.txt --\n"
+"<![CDATA[Class-Path: postgresql-9.0-801.jdbc4.jar\n"
+"Main-Class: SaveQueryImage]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:484
+#, no-c-format
+msgid ""
+"// Code for SaveQueryImage.java\n"
+"<![CDATA[import java.sql.Connection;\n"
+"import java.sql.SQLException;\n"
+"import java.sql.PreparedStatement;\n"
+"import java.sql.ResultSet;\n"
+"import java.io.*;\n"
+"\n"
+"public class SaveQueryImage {\n"
+"  public static void main(String[] argv) {\n"
+"      System.out.println(\"Checking if Driver is registered with "
+"DriverManager.\");\n"
+"      \n"
+"      try {\n"
+"        //java.sql.DriverManager.registerDriver (new org.postgresql."
+"Driver());\n"
+"        Class.forName(\"org.postgresql.Driver\");\n"
+"      } \n"
+"      catch (ClassNotFoundException cnfe) {\n"
+"        System.out.println(\"Couldn't find the driver!\");\n"
+"        cnfe.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }\n"
+"      \n"
+"      Connection conn = null;\n"
+"      \n"
+"      try {\n"
+"        conn = DriverManager.getConnection(\"jdbc:postgresql://"
+"localhost:5432/mydb\",\"myuser\", \"mypwd\");\n"
+"        conn.setAutoCommit(false);\n"
+"\n"
+"        PreparedStatement sGetImg = conn.prepareStatement(argv[0]);\n"
+"                \n"
+"        ResultSet rs = sGetImg.executeQuery();\n"
+"                \n"
+"                FileOutputStream fout;\n"
+"                try\n"
+"                {\n"
+"                        rs.next();\n"
+"                        /** Output to file name requested by user **/\n"
+"                        fout = new FileOutputStream(new File(argv[1]) );\n"
+"                        fout.write(rs.getBytes(1));\n"
+"                        fout.close();\n"
+"                }\n"
+"                catch(Exception e)\n"
+"                {\n"
+"                        System.out.println(\"Can't create file\");\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"                \n"
+"        rs.close();\n"
+"                sGetImg.close();\n"
+"        conn.close();\n"
+"      } \n"
+"      catch (SQLException se) {\n"
+"        System.out.println(\"Couldn't connect: print out a stack trace and "
+"exit.\");\n"
+"        se.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }   \n"
+"  }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:488
+#, no-c-format
+msgid "Use PLPython to dump out images via SQL"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:489
+#, no-c-format
+msgid ""
+"This is a plpython stored function that creates a file in the server "
+"directory for each record. Requires you have plpython installed. Should work "
+"fine with both plpythonu and plpython3u."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:491
+#, no-c-format
+msgid ""
+"<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, "
+"param_filepath text)\n"
+"RETURNS text\n"
+"AS $$\n"
+"f = open(param_filepath, 'wb+')\n"
+"f.write(param_bytes)\n"
+"return param_filepath\n"
+"$$ LANGUAGE plpythonu;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:492
+#, no-c-format
+msgid ""
+"--write out 5 images to the PostgreSQL server in varying sizes\n"
+"-- note the postgresql daemon account needs to have write access to folder\n"
+"-- this echos back the file names created;\n"
+" SELECT write_file(ST_AsPNG(\n"
+"        ST_AsRaster(ST_Buffer(ST_Point(1,5),j*5, 'quad_segs=2'),150*j, "
+"150*j, '8BUI',100)),\n"
+"         'C:/temp/slices'|| j || '.png')\n"
+"         FROM generate_series(1,5) As j;\n"
+"         \n"
+"     write_file\n"
+"---------------------\n"
+" C:/temp/slices1.png\n"
+" C:/temp/slices2.png\n"
+" C:/temp/slices3.png\n"
+" C:/temp/slices4.png\n"
+" C:/temp/slices5.png"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:495
+#, no-c-format
+msgid "Outputting Rasters with PSQL"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:496
+#, no-c-format
+msgid ""
+"Sadly PSQL doesn't have easy to use built-in functionality for outputting "
+"binaries. This is a bit of a hack and based on one of the suggestions "
+"outlined in <ulink url=\"http://people.planetpostgresql.org/andrew/index."
+"php?/archives/196-Clever-trick-challenge.html\">Clever Trick Challenge -- "
+"Outputting bytea with psql</ulink> that piggy backs on PostgreSQL somewhat "
+"legacy large object support. To use first launch your psql commandline "
+"connected to your database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:499
+#, no-c-format
+msgid ""
+"Unlike the python approach, this approach creates the file on your local "
+"computer."
+msgstr ""
+
+#. Tag: screen
+#: using_raster_dataman.xml:500
+#, no-c-format
+msgid ""
+"SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes\n"
+" FROM \n"
+" ( VALUES (lo_create(0), \n"
+"   ST_AsPNG( (SELECT rast FROM aerials.boston WHERE rid=1) ) \n"
+"  ) ) As v(oid,png);\n"
+"-- you'll get an output something like --\n"
+"   oid   | num_bytes\n"
+"---------+-----------\n"
+" 2630819 |     74860\n"
+" \n"
+"-- next note the oid and do this replacing the c:/test.png to file path "
+"location\n"
+"-- on your local computer\n"
+" \\lo_export 2630819 'C:/temp/aerial_samp.png'\n"
+" \n"
+"-- this deletes the file from large object storage on db\n"
+"SELECT lo_unlink(2630819);"
+msgstr ""
diff --git a/doc/po/pl/Makefile b/doc/po/pl/Makefile
new file mode 100644
index 0000000..0693327
--- /dev/null
+++ b/doc/po/pl/Makefile
@@ -0,0 +1,2 @@
+DOCSUFFIX=-pl
+include ../Makefile.local
diff --git a/doc/po/pl/extras.xml.po b/doc/po/pl/extras.xml.po
new file mode 100644
index 0000000..8af826d
--- /dev/null
+++ b/doc/po/pl/extras.xml.po
@@ -0,0 +1,40 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-10-14 22:34+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: extras.xml:3
+#, no-c-format
+msgid "PostGIS Extras"
+msgstr ""
+
+#. Tag: para
+#: extras.xml:5
+#, no-c-format
+msgid ""
+"This chapter documents features found in the extras folder of the PostGIS "
+"source tarballs and source repository. These are not always packaged with "
+"PostGIS binary releases, but are usually plpgsql based or standard shell "
+"scripts that can be run as is."
+msgstr ""
+
+#. Tag: chapter
+#: extras.xml:6
+#, no-c-format
+msgid "&extras_tigergeocoder;"
+msgstr ""
diff --git a/doc/po/pl/extras_address_standardizer.xml.po b/doc/po/pl/extras_address_standardizer.xml.po
new file mode 100644
index 0000000..cc2ae49
--- /dev/null
+++ b/doc/po/pl/extras_address_standardizer.xml.po
@@ -0,0 +1,853 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-13 18:05+0000\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: extras_address_standardizer.xml:3
+#, no-c-format
+msgid "Address Standardizer"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:4
+#, no-c-format
+msgid ""
+"This is a fork of the <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-11."
+"html\">PAGC standardizer</ulink> (original code for this portion was <ulink "
+"url=\"http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/"
+"postgresql\">PAGC PostgreSQL Address Standardizer</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:5
+#, no-c-format
+msgid ""
+"The address standardizer is a single line address parser that takes an input "
+"address and normalizes it based on a set of rules stored in a table and "
+"helper lex and gaz tables."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:6
+#, no-c-format
+msgid ""
+"The code is built into a single postgresql extension library called "
+"<code>address_standardizer</code> which can be installed with <code>CREATE "
+"EXTENSION address_standardizer;</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:7
+#, no-c-format
+msgid ""
+"The code for this extension can be found in the PostGIS <filename>extensions/"
+"address_standardizer</filename> and is currently self-contained."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:8
+#, no-c-format
+msgid ""
+"For installation instructions refer to: <xref linkend="
+"\"installing_pagc_address_standardizer\"/>."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:9
+#, no-c-format
+msgid "How the Parser Works"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:10
+#, no-c-format
+msgid ""
+"The parser works from right to left looking first at the macro elements for "
+"postcode, state/province, city, and then looks micro elements to determine "
+"if we are dealing with a house number street or intersection or landmark. It "
+"currently does not look for a country code or name, but that could be "
+"introduced in the future."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:17
+#, no-c-format
+msgid "Country code"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:18
+#, no-c-format
+msgid ""
+"Assumed to be US or CA based on: postcode as US or Canada state/province as "
+"US or Canada else US"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:21
+#, no-c-format
+msgid "Postcode/zipcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:22
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c and are relatively simple to make "
+"changes to if needed."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:27
+#, no-c-format
+msgid "State/province"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:28
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c but could get moved into includes in "
+"the future for easier maintenance."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:37
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by Address "
+"Standardizer extension. Note we describe the casting behavior of these which "
+"is very important especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:42
+#, no-c-format
+msgid "Address Standardizer Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:45
+#, no-c-format
+msgid "stdaddr"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:46
+#, no-c-format
+msgid ""
+"A composite type that consists of the elements of an address. This is the "
+"return type for <varname>standardize_address</varname> function."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:49 extras_address_standardizer.xml:152
+#: extras_address_standardizer.xml:214 extras_address_standardizer.xml:256
+#: extras_address_standardizer.xml:314 extras_address_standardizer.xml:369
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:50
+#, no-c-format
+msgid ""
+"A composite type that consists of elements of an address. This is the return "
+"type for <xref linkend=\"standardize_address\"/> function. Some descriptions "
+"for elements are borrowed from <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#ss12.1\">PAGC Postal Attributes</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:51
+#, no-c-format
+msgid ""
+"The token numbers denote the reference number in the <varname>rules</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:52 extras_address_standardizer.xml:321
+#: extras_address_standardizer.xml:375
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:55
+#, no-c-format
+msgid "building"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:57
+#, no-c-format
+msgid ""
+"is text (token number <code>0</code>): Refers to building number or name. "
+"Unparsed building identifiers and types. Generally blank for most addresses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:60
+#, no-c-format
+msgid "house_num"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:62
+#, no-c-format
+msgid ""
+"is a text (token number <code>1</code>): This is the street number on a "
+"street. Example <emphasis>75</emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:65
+#, no-c-format
+msgid "predir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:66
+#, no-c-format
+msgid ""
+"is text (token number <code>2</code>): STREET NAME PRE-DIRECTIONAL such as "
+"North, South, East, West etc."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:68
+#, no-c-format
+msgid "qual"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:70
+#, no-c-format
+msgid ""
+"is text (token number <code>3</code>): STREET NAME PRE-MODIFIER Example "
+"<emphasis>OLD</emphasis> in <code>3715 OLD HIGHWAY 99</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:73
+#, no-c-format
+msgid "pretype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:75
+#, no-c-format
+msgid "is text (token number <code>4</code>): STREET PREFIX TYPE"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:78
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:80
+#, no-c-format
+msgid "is text (token number <code>5</code>): STREET NAME"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:83
+#, no-c-format
+msgid "suftype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:85
+#, no-c-format
+msgid ""
+"is text (token number <code>6</code>): STREET POST TYPE e.g. St, Ave, Cir. A "
+"street type following the root street name. Example <emphasis>STREET</"
+"emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:88
+#, no-c-format
+msgid "sufdir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:90
+#, no-c-format
+msgid ""
+"is text (token number <code>7</code>): STREET POST-DIRECTIONAL A directional "
+"modifier that follows the street name.. Example <emphasis>WEST</emphasis> in "
+"<code>3715 TENTH AVENUE WEST</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:93
+#, no-c-format
+msgid "ruralroute"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:95
+#, no-c-format
+msgid ""
+"is text (token number <code>8</code>): RURAL ROUTE . Example <emphasis>8</"
+"emphasis> in <code>RR 7</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:98
+#, no-c-format
+msgid "extra"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:100
+#, no-c-format
+msgid "is text: Extra information like Floor number."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:103
+#, no-c-format
+msgid "city"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:105
+#, no-c-format
+msgid "is text (token number <code>10</code>): Example Boston."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:108
+#, no-c-format
+msgid "state"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:110
+#, no-c-format
+msgid ""
+"is text (token number <code>11</code>): Example <code>MASSACHUSETTS</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:113
+#, no-c-format
+msgid "country"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:115
+#, no-c-format
+msgid "is text (token number <code>12</code>): Example <code>USA</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:118
+#, no-c-format
+msgid "postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:120
+#, no-c-format
+msgid ""
+"is text POSTAL CODE (ZIP CODE) (token number <code>13</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:123
+#, no-c-format
+msgid "<term>box</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:125
+#, no-c-format
+msgid ""
+"is text POSTAL BOX NUMBER (token number <code>14 and 15</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:128
+#, no-c-format
+msgid "unit"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:130
+#, no-c-format
+msgid ""
+"is text Apartment number or Suite Number (token number <code>17</code>): "
+"Example <emphasis>3B</emphasis> in <code>APT 3B</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:141
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL table formats used by the "
+"address_standardizer for normalizing addresses. Note that these tables do "
+"not need to be named the same as what is referenced here. You can have "
+"different lex, gaz, rules tables for each country for example or for your "
+"custom geocoder. The names of these tables get passed into the address "
+"standardizer functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:145
+#, no-c-format
+msgid "Address Standardizer Tables"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:148
+#, no-c-format
+msgid "rules table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:149
+#, no-c-format
+msgid ""
+"The rules table contains a set of rules that maps address input sequence "
+"tokens to standardized output sequence"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:153
+#, no-c-format
+msgid ""
+"A rules table must have at least the following columns, though you are "
+"allowed to add more for your own uses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:157 extras_address_standardizer.xml:220
+#: extras_address_standardizer.xml:262
+#, no-c-format
+msgid "<term>id</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:159 extras_address_standardizer.xml:222
+#: extras_address_standardizer.xml:264
+#, no-c-format
+msgid "Primary key of table"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:162
+#, no-c-format
+msgid "rule"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:164
+#, no-c-format
+msgid ""
+"text field denoting the rule. Details at <ulink url=\"http://www.pagcgeo.org/"
+"docs/html/pagc-12.html#--r-rec--\">PAGC Address Standardizer Rule records</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:165
+#, no-c-format
+msgid ""
+"A rule consists of a set of non-negative integers representing input tokens, "
+"terminated by a -1, followed by an equal number of non-negative integers "
+"representing postal attributes, terminated by a -1, followed by an integer "
+"representing a rule type, followed by an integer representing the rank of "
+"the rule. The rules are ranked from 0 (lowest) to 17 (highest)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:166
+#, no-c-format
+msgid ""
+"So for example the rule <code>2 0 2 22 3 -1 5 5 6 7 3 -1 2 6</code> maps to "
+"sequence of tokens <emphasis>TYPE NUMBER TYPE DIRECT QUALIF</emphasis> to "
+"the output sequence <emphasis>STREET STREET SUFTYP SUFDIR QUALIF</emphasis>. "
+"The rule is an ARC_C rule of rank 6."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:171
+#, no-c-format
+msgid "Each rule has a rule type which is denoted by one of following:"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:174
+#, no-c-format
+msgid "MACRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:176
+#, no-c-format
+msgid "(token number = \"0\"). The class of rules for parsing MACRO clauses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:180
+#, no-c-format
+msgid "MICRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:182
+#, no-c-format
+msgid ""
+"(token number = \"1\"). The class of rules for parsing full MICRO clauses "
+"(ie ARC_C plus CIVIC_C). These rules are not used in the build phase."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:186
+#, no-c-format
+msgid "ARC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:188
+#, no-c-format
+msgid ""
+"(token number = \"2\"). The class of rules for parsing MICRO clauses, "
+"excluding the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:192
+#, no-c-format
+msgid "CIVIC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:194
+#, no-c-format
+msgid ""
+"(token number = \"3\"). The class of rules for parsing the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:198
+#, no-c-format
+msgid "EXTRA_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:200
+#, no-c-format
+msgid ""
+"(token number = \"4\"). The class of rules for parsing EXTRA attributes - "
+"attributes excluded from geocoding. These rules are not used in the build "
+"phase."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:210
+#, no-c-format
+msgid "lex table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:211
+#, no-c-format
+msgid ""
+"A lex table is used to classify alphanumeric input and associate that input "
+"with (a) input tokens ( See Input Tokens) and (b) standardized "
+"representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:215
+#, no-c-format
+msgid ""
+"A lex (short for lexicon) table is used to classify alphanumeric input and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. Things you will find in these tables are <code>ONE</code> "
+"mapped to stdworkd: <code>1</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:217
+#, no-c-format
+msgid "A lex has at least the following columns in the table. You may add"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:225 extras_address_standardizer.xml:267
+#, no-c-format
+msgid "<term>seq</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:227 extras_address_standardizer.xml:269
+#, no-c-format
+msgid "integer: definition number?"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:231 extras_address_standardizer.xml:272
+#, no-c-format
+msgid "word"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:233 extras_address_standardizer.xml:274
+#, no-c-format
+msgid "text: the input word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:236 extras_address_standardizer.xml:277
+#, no-c-format
+msgid "stdword"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:238 extras_address_standardizer.xml:279
+#, no-c-format
+msgid "text: the standardized replacement word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:241 extras_address_standardizer.xml:282
+#, no-c-format
+msgid "token"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:243 extras_address_standardizer.xml:284
+#, no-c-format
+msgid ""
+"integer: the kind of word it is. Only if it is used in this context will it "
+"be replaced. Refer to <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12."
+"html#--i-tok--\">PAGC Tokens</ulink>."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:252
+#, no-c-format
+msgid "gaz table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:253
+#, no-c-format
+msgid ""
+"A gaz table is used to standardize place names and associate that input with "
+"(a) input tokens ( See Input Tokens) and (b) standardized representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:257
+#, no-c-format
+msgid ""
+"A gaz (short for gazeteer) table is used to classify place names and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. For example if you are in US, you may load these with State "
+"Names and associated abbreviations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:259
+#, no-c-format
+msgid ""
+"A gaz table has at least the following columns in the table. You may add "
+"more columns if you wish for your own purposes."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:295
+#, no-c-format
+msgid "Address Standardizer Functions"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:298
+#, no-c-format
+msgid "parse_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:300
+#, no-c-format
+msgid "Takes a 1 line address and breaks into parts"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_address_standardizer.xml:305
+#, no-c-format
+msgid ""
+"<funcdef>record <function>parse_address</function></funcdef> "
+"<paramdef><type>text </type> <parameter>address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:316
+#, no-c-format
+msgid ""
+"Returns takes as input an address, and returns a record output consisting of "
+"fields <emphasis>num</emphasis>, <emphasis>street</emphasis>, "
+"<emphasis>street2</emphasis>, <emphasis>address1</emphasis>, <emphasis>city</"
+"emphasis>, <emphasis>state</emphasis>, <emphasis>zip</emphasis>, "
+"<emphasis>zipplus</emphasis>, <emphasis>country</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:320 extras_address_standardizer.xml:374
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:326 extras_address_standardizer.xml:380
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:328
+#, no-c-format
+msgid ""
+"SELECT num, street, city, zip, zipplus FROM parse_address('1 Devonshire "
+"Place, Boston, MA 02109-1234');\n"
+" num |      street      |  city  |  zip  | zipplus\n"
+"-----+------------------+--------+-------+---------\n"
+" 1   | Devonshire Place | Boston | 02109 | 1234"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:334 extras_address_standardizer.xml:391
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:342
+#, no-c-format
+msgid "standardize_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:344
+#, no-c-format
+msgid ""
+"Returns an stdaddr form of an input address utilizing lex, gaz, and rule "
+"tables."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_address_standardizer.xml:348
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>stdaddr <function>standardize_address</function></"
+"funcdef> <paramdef><type>text </type> <parameter>lextab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>gaztab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rultab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>address</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>stdaddr "
+"<function>standardize_address</function></funcdef> <paramdef><type>text </"
+"type> <parameter>lextab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>gaztab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rultab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>micro</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>macro</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:371
+#, no-c-format
+msgid ""
+"Returns an <xref linkend=\"stdaddr\"/> form of an input address utilizing "
+"<xref linkend=\"lextab\"/> table name, <xref linkend=\"gaztab\"/>, and <xref "
+"linkend=\"rulestab\"/> table names and an address."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:382
+#, no-c-format
+msgid ""
+"SELECT *  FROM standardize_address('tiger.pagc_lex', \n"
+"                           'tiger.pagc_gaz', 'tiger.pagc_rules', 'One "
+"Devonshire Place, PH 301, Boston, MA 02109-1234');"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:384
+#, no-c-format
+msgid ""
+"Make easier to read we'll dump output using hstore extension CREATE "
+"EXTENSION hstore; you need to install"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:385
+#, no-c-format
+msgid ""
+"SELECT (each(hstore(p))).*  \n"
+" FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz', \n"
+"   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA "
+"02109-1234') As p;"
+msgstr ""
+
+#. Tag: screen
+#: extras_address_standardizer.xml:386
+#, no-c-format
+msgid ""
+"key     |      value\n"
+"------------+-----------------\n"
+" box        |\n"
+" city       | BOSTON\n"
+" name       | DEVONSHIRE\n"
+" qual       |\n"
+" unit       | # PENTHOUSE 301\n"
+" extra      |\n"
+" state      | MA\n"
+" predir     |\n"
+" sufdir     |\n"
+" country    | USA\n"
+" pretype    |\n"
+" suftype    | PL\n"
+" building   |\n"
+" postcode   | 02109\n"
+" house_num  | 1\n"
+" ruralroute |\n"
+"(16 rows)"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"rulestab\"/>, <xref linkend=\"lextab\"/>, <xref linkend="
+"\"gaztab\"/>, <xref linkend=\"Pagc_Normalize_Address\"/>"
+msgstr ""
diff --git a/doc/po/pl/extras_historytable.xml.po b/doc/po/pl/extras_historytable.xml.po
new file mode 100644
index 0000000..96b6753
--- /dev/null
+++ b/doc/po/pl/extras_historytable.xml.po
@@ -0,0 +1,262 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: extras_historytable.xml:3
+#, no-c-format
+msgid "History Tracking"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:6
+#, no-c-format
+msgid ""
+"Suppose you have a table of data that represents the current state of a "
+"particular geographic feature. A parcels table, or a roads table, or a fruit "
+"trees table, whatever. Generally, GIS tools understand a table as a single "
+"entity into which they can update, insert and delete rows from. How you do "
+"allow common GIS tools to work against your data, while maintaining an audit "
+"trail of what changes have been made, by whom, and what the past state of "
+"the data is?"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:10
+#, no-c-format
+msgid ""
+"This <varname>history_table</varname> extra module provides some utility "
+"functions for creating and maintaining history."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:14
+#, no-c-format
+msgid ""
+"The <varname>history_table</varname> was also packaged in PostGIS 1.5, but "
+"added to the documentation in PostGIS 2.0. This package is written in "
+"plpgsql and located in the <varname>extras/history_table</varname> of "
+"PostGIS source tar balls and source repository."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:15
+#, no-c-format
+msgid ""
+"If you have a table 'roads', this module will maintain a 'roads_history' "
+"side table, which contains all the columns of the parent table, and the "
+"following additional columns:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:16
+#, no-c-format
+msgid ""
+"history_id      | integer                     | not null default \n"
+" date_added      | timestamp without time zone | not null default now()\n"
+" date_deleted    | timestamp without time zone | \n"
+" last_operation  | character varying(30)       | not null\n"
+" active_user     | character varying(90)       | not null default "
+"\"current_user\"()\n"
+" current_version | text                        | not null"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:20
+#, no-c-format
+msgid ""
+"When you insert a new record into 'roads' a record is automatically inserted "
+"into 'roads_history', with the 'date_added' filled in the 'date_deleted' set "
+"to NULL, a unique 'history_id', a 'last_operation' of 'INSERT' and "
+"'active_user' set."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:23
+#, no-c-format
+msgid ""
+"When you delete a record in 'roads', the record in the history table is "
+"*not* deleted, but the 'date_deleted' is set to the current date."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:26
+#, no-c-format
+msgid ""
+"When you update a record in 'roads', the current record has 'date_deleted' "
+"filled in and a new record is created with the 'date_added' set and "
+"'date_deleted' NULL."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:30
+#, no-c-format
+msgid ""
+"With this information maintained, it is possible to retrieve the history of "
+"any record in the roads table:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:31
+#, no-c-format
+msgid "SELECT * FROM roads_history WHERE roads_pk = 111;"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:33
+#, no-c-format
+msgid "Or, to retrieve a view of the roads table at any point in the past:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:34
+#, no-c-format
+msgid ""
+"SELECT * FROM roads_history \n"
+"    WHERE date_added < 'January 1, 2001' AND \n"
+"        ( date_deleted >= 'January 1, 2001' OR date_deleted IS NULL );"
+msgstr ""
+
+#. Tag: refname
+#: extras_historytable.xml:38
+#, no-c-format
+msgid "Postgis_Install_History"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_historytable.xml:39
+#, no-c-format
+msgid ""
+"Creates a table that will hold some interesting values for managing history "
+"tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_historytable.xml:44
+#, no-c-format
+msgid ""
+"<funcdef>void <function>Postgis_Install_History</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: extras_historytable.xml:52 extras_historytable.xml:92
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:54
+#, no-c-format
+msgid ""
+"Creates a table that will hold some interesting values for managing history "
+"tables. Creates a table called <varname>historic_information</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:58 extras_historytable.xml:100
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: title
+#: extras_historytable.xml:63 extras_historytable.xml:105
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:65
+#, no-c-format
+msgid "SELECT postgis_install_history();"
+msgstr ""
+
+#. Tag: title
+#: extras_historytable.xml:71 extras_historytable.xml:113
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_historytable.xml:77
+#, no-c-format
+msgid "Postgis_Enable_History"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_historytable.xml:78
+#, no-c-format
+msgid ""
+"Registers a tablein the history_information table for tracking and also adds "
+"in side line history table and insert, update, delete rules on the table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_historytable.xml:83
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Postgis_Enable_History</function></funcdef> "
+"<paramdef><type>text </type> <parameter>p_schema</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>p_table</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:94
+#, no-c-format
+msgid ""
+"Registers a table in the history_information table for tracking and also "
+"adds in side line history table with same name as table but prefixed with "
+"<varname>history</varname> in the same schema as the original table. Puts in "
+"insert, update, delete rules on the table. Any inserts,updates,deletes of "
+"the geometry are recorded in the history table."
+msgstr ""
+
+#. Tag: para
+#: extras_historytable.xml:97
+#, no-c-format
+msgid ""
+"This function currently relies on a geometry column being registered in "
+"<varname>geometry_columns</varname> and fails if the geometry column is not "
+"present in <varname>geometry_columns</varname> table."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_historytable.xml:107
+#, no-c-format
+msgid ""
+"CREATE TABLE roads(gid SERIAL PRIMARY KEY, road_name varchar(150));\n"
+"SELECT AddGeometryColumn('roads', 'geom', 26986, 'LINESTRING', 2);\n"
+"                                \n"
+"SELECT postgis_enable_history('public', 'roads', 'geom') As register_table;\n"
+"register_table\n"
+"--------------\n"
+"t\n"
+"\n"
+"INSERT INTO roads(road_name, geom) \n"
+"  VALUES('Test Street', ST_GeomFromText('LINESTRING(231660.5 832170,231647 "
+"832202,231627.5 832250.5)',26986));\n"
+"\n"
+"-- check transaction detail --\n"
+"SELECT date_added, last_operation, current_version \n"
+"FROM roads_history \n"
+"WHERE road_name = 'Test Street' ORDER BY date_added DESC;\n"
+"\n"
+"       date_added       | last_operation | current_version\n"
+"------------------------+----------------+-----------------\n"
+" 2011-02-07 12:44:36.92 | INSERT         | 2"
+msgstr ""
diff --git a/doc/po/pl/extras_tigergeocoder.xml.po b/doc/po/pl/extras_tigergeocoder.xml.po
new file mode 100644
index 0000000..35eda32
--- /dev/null
+++ b/doc/po/pl/extras_tigergeocoder.xml.po
@@ -0,0 +1,2328 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: para
+#: extras_tigergeocoder.xml:6
+#, no-c-format
+msgid ""
+"A plpgsql based geocoder written to work with the <ulink url=\"http://www."
+"census.gov/geo/www/tiger/\">TIGER (Topologically Integrated Geographic "
+"Encoding and Referencing system ) / Line and Master Address database export</"
+"ulink> released by the US Census Bureau."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:7
+#, no-c-format
+msgid ""
+"There are four components to the geocoder: the data loader functions, the "
+"address normalizer, the address geocoder, and the reverse geocoder. The "
+"latest version updated to use the TIGER 2011 and 2012 census data is located "
+"in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder. It "
+"defaults to downloading and installing TIGER 2012 files."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:8
+#, no-c-format
+msgid ""
+"Although it is designed specifically for the US, a lot of the concepts and "
+"functions are applicable and can be adapted to work with other country "
+"address and road networks."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:9
+#, no-c-format
+msgid ""
+"The script builds a schema called <varname>tiger</varname> to house all the "
+"tiger related functions, reusable lookup data such as road type prefixes, "
+"suffixes, states, various control tables for managing data load, and "
+"skeleton base tables from which all the tiger loaded tables inherit from."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:10
+#, no-c-format
+msgid ""
+"Another schema called <varname>tiger_data</varname> is also created which "
+"houses all the census data for each state that the loader downloads from "
+"Census site and loads into the database. In the current model, each set of "
+"state tables is prefixed with the state code e.g <varname>ma_addr</varname>, "
+"<varname>ma_edges</varname> etc with constraints to enforce only that state "
+"data. Each of these tables inherits from the tables <varname>addr</varname>, "
+"<varname>faces</varname>, <varname>edges</varname>, etc located in the "
+"<varname>tiger schema</varname>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:12
+#, no-c-format
+msgid ""
+"All the geocode functions only reference the base tables, so there is no "
+"requirement that the data schema be called <varname>tiger_data</varname> or "
+"that data can't be further partitioned into other schemas -- e.g a different "
+"schema for each state, as long as all the tables inherit from the tables in "
+"the <varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:16
+#, no-c-format
+msgid ""
+"If you are using tiger geocoder (tiger_2010), you can upgrade the scripts "
+"using the accompanying upgrade_geocoder.bat / .sh scripts in tiger_2011. One "
+"major change between <varname>tiger_2010</varname> and <varname>tiger_2011/"
+"tiger_2012</varname> is that the county and <varname>county</varname> and "
+"<varname>state</varname> tables are no longer broken out by state. We'll be "
+"refining the upgrade scripts until release. If you have data from tiger_2010 "
+"and want replace with tiger_2012 refer to <xref linkend="
+"\"upgrade_tiger_geocoder\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:23
+#, no-c-format
+msgid ""
+"New in PostGIS 2.1.0 release is ability to install tiger geocoder with "
+"PostgreSQL extension model if you are running PostgreSQL 9.1+. Refer to "
+"<xref linkend=\"install_tiger_geocoder_extension\"/> for details."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:25
+#, no-c-format
+msgid ""
+"Also new in PostGIS 2.1.0 is integration with pagc address standardizer "
+"PostgreSQL extension which source can be downloaded from <ulink url=\"http://"
+"sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql\">PAGC "
+"PostgreSQL address standardizer extension</ulink> and after install and "
+"install of the library in your PostGIS database, you can use the <xref "
+"linkend=\"Pagc_Normalize_Address\"/> function as a drop in replacement for "
+"in-built <xref linkend=\"Normalize_Address\"/>. Refer to <xref linkend="
+"\"installing_pagc_address_standardizer\"/> for compile and installation "
+"instructions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:29
+#, no-c-format
+msgid "Design:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:30
+#, no-c-format
+msgid ""
+"The goal of this project is to build a fully functional geocoder that can "
+"process an arbitrary United States address string and using normalized TIGER "
+"census data, produce a point geometry and rating reflecting the location of "
+"the given address and likeliness of the location. The higher the rating "
+"number the worse the result."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:32
+#, no-c-format
+msgid ""
+"The <varname>reverse_geocode</varname> function, introduced in PostGIS 2.0.0 "
+"is useful for deriving the street address and cross streets of a GPS "
+"location."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:33
+#, no-c-format
+msgid ""
+"The geocoder should be simple for anyone familiar with PostGIS to install "
+"and use, and should be easily installable and usable on all platforms "
+"supported by PostGIS."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:34
+#, no-c-format
+msgid ""
+"It should be robust enough to function properly despite formatting and "
+"spelling errors."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:35
+#, no-c-format
+msgid ""
+"It should be extensible enough to be used with future data updates, or "
+"alternate data sources with a minimum of coding changes."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:37
+#, no-c-format
+msgid ""
+"The <varname>tiger</varname> schema must be added to the database search "
+"path for the functions to work properly."
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:41
+#, no-c-format
+msgid "Tiger Geocoder"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:43
+#, no-c-format
+msgid ""
+"There are a couple other open source geocoders for PostGIS, that unlike "
+"tiger geocoder have the advantage of multi-country geocoding support"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:45
+#, no-c-format
+msgid ""
+"<ulink url=\"http://wiki.openstreetmap.org/wiki/Nominatim\">Nominatim</"
+"ulink> and uses OpenStreetMap gazeteer formatted data. It requires osm2pgsql "
+"for loading the data, PostgreSQL 8.4+ and PostGIS 1.5+ to function. It is "
+"packaged as a webservice interface and seems designed to be called as a "
+"webservice. Just like the tiger geocoder, it has both a geocoder and a "
+"reverse geocoder component. From the documentation, it is unclear if it has "
+"a pure SQL interface like the tiger geocoder, or if a good deal of the logic "
+"is implemented in the web interface."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:48
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.gisgraphy.com/\">GIS Graphy</ulink> also utilizes "
+"PostGIS and like Nominatim works with OpenStreetMap (OSM) data. It comes "
+"with a loader to load OSM data and similar to Nominatim is capable of "
+"geocoding not just US. Much like Nominatim, it runs as a webservice and "
+"relies on Java 1.5, Servlet apps, Solr. GisGraphy is cross-platform and also "
+"has a reverse geocoder among some other neat features."
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:53
+#, no-c-format
+msgid "Drop_Indexes_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:55
+#, no-c-format
+msgid ""
+"<refpurpose>Generates a script that drops all non-primary key and non-unique "
+"indexes on tiger schema and user specified schema. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:60
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:68 extras_tigergeocoder.xml:110
+#: extras_tigergeocoder.xml:152 extras_tigergeocoder.xml:208
+#: extras_tigergeocoder.xml:270 extras_tigergeocoder.xml:315
+#: extras_tigergeocoder.xml:355 extras_tigergeocoder.xml:394
+#: extras_tigergeocoder.xml:439 extras_tigergeocoder.xml:497
+#: extras_tigergeocoder.xml:554 extras_tigergeocoder.xml:609
+#: extras_tigergeocoder.xml:654 extras_tigergeocoder.xml:733
+#: extras_tigergeocoder.xml:818 extras_tigergeocoder.xml:865
+#: extras_tigergeocoder.xml:937 extras_tigergeocoder.xml:1002
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:70
+#, no-c-format
+msgid ""
+"<para>Generates a script that drops all non-primary key and non-unique "
+"indexes on tiger schema and user specified schema. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:71
+#, no-c-format
+msgid ""
+"This is useful for minimizing index bloat that may confuse the query planner "
+"or take up unnecessary space. Use in combination with <xref linkend="
+"\"Install_Missing_Indexes\"/> to add just the indexes used by the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:74 extras_tigergeocoder.xml:158
+#: extras_tigergeocoder.xml:277 extras_tigergeocoder.xml:359
+#: extras_tigergeocoder.xml:402 extras_tigergeocoder.xml:457
+#: extras_tigergeocoder.xml:617 extras_tigergeocoder.xml:891
+#: extras_tigergeocoder.xml:963
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:81 extras_tigergeocoder.xml:122
+#: extras_tigergeocoder.xml:165 extras_tigergeocoder.xml:409
+#: extras_tigergeocoder.xml:464 extras_tigergeocoder.xml:522
+#: extras_tigergeocoder.xml:577 extras_tigergeocoder.xml:624
+#: extras_tigergeocoder.xml:700 extras_tigergeocoder.xml:784
+#: extras_tigergeocoder.xml:828 extras_tigergeocoder.xml:896
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:82
+#, no-c-format
+msgid ""
+"SELECT drop_indexes_generate_script() As actionsql;\n"
+"actionsql\n"
+"---------------------------------------------------------\n"
+"DROP INDEX tiger.idx_tiger_countysub_lookup_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_edges_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_faces_countyfp;\n"
+"DROP INDEX tiger.tiger_place_the_geom_gist;\n"
+"DROP INDEX tiger.tiger_edges_the_geom_gist;\n"
+"DROP INDEX tiger.tiger_state_the_geom_gist;\n"
+"DROP INDEX tiger.idx_tiger_addr_least_address;\n"
+"DROP INDEX tiger.idx_tiger_addr_tlid;\n"
+"DROP INDEX tiger.idx_tiger_addr_zip;\n"
+"DROP INDEX tiger.idx_tiger_county_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_county_lookup_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_county_lookup_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_county_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_county_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_county_the_geom_gist;\n"
+"DROP INDEX tiger.idx_tiger_countysub_lookup_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_countyfp;\n"
+"DROP INDEX tiger.idx_tiger_cousub_cousubfp;\n"
+"DROP INDEX tiger.idx_tiger_cousub_lower_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_snd_name;\n"
+"DROP INDEX tiger.idx_tiger_cousub_the_geom_gist;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_least_address;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_tlid;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_addr_zip;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_countyfp;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lookup_lower_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lookup_snd_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_lower_name;\n"
+"DROP INDEX tiger_data.idx_tiger_data_ma_county_snd_name;\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:88 extras_tigergeocoder.xml:129
+#: extras_tigergeocoder.xml:172 extras_tigergeocoder.xml:239
+#: extras_tigergeocoder.xml:293 extras_tigergeocoder.xml:332
+#: extras_tigergeocoder.xml:372 extras_tigergeocoder.xml:416
+#: extras_tigergeocoder.xml:474 extras_tigergeocoder.xml:532
+#: extras_tigergeocoder.xml:586 extras_tigergeocoder.xml:631
+#: extras_tigergeocoder.xml:710 extras_tigergeocoder.xml:796
+#: extras_tigergeocoder.xml:839 extras_tigergeocoder.xml:911
+#: extras_tigergeocoder.xml:979 extras_tigergeocoder.xml:1019
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:89 extras_tigergeocoder.xml:417
+#, no-c-format
+msgid ", <xref linkend=\"Missing_Indexes_Generate_Script\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:95
+#, no-c-format
+msgid "Drop_Nation_Tables_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:97
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that start "
+"with <varname>county_all</varname>, <varname>state_all</varname> or stae "
+"code followed by <varname>county</varname> or <varname>state</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:102
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_Nation_Tables_Generate_Script</function></"
+"funcdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:112
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that start "
+"with <varname>county_all</varname>, <varname>state_all</varname> or stae "
+"code followed by <varname>county</varname> or <varname>state</varname>. This "
+"is needed if you are upgrading from <varname>tiger_2010</varname> to "
+"<varname>tiger_2011</varname> data."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:115 extras_tigergeocoder.xml:320
+#: extras_tigergeocoder.xml:571 extras_tigergeocoder.xml:742
+#: extras_tigergeocoder.xml:1006
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:123
+#, no-c-format
+msgid ""
+"SELECT drop_nation_tables_generate_script();\n"
+"DROP TABLE tiger_data.county_all;\n"
+"DROP TABLE tiger_data.county_all_lookup;\n"
+"DROP TABLE tiger_data.state_all;\n"
+"DROP TABLE tiger_data.ma_county;\n"
+"DROP TABLE tiger_data.ma_state;"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:136
+#, no-c-format
+msgid "Drop_State_Tables_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:138
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that are "
+"prefixed with the state abbreviation. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:143
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
+"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:154
+#, no-c-format
+msgid ""
+"Generates a script that drops all tables in the specified schema that are "
+"prefixed with the state abbreviation. Defaults schema to "
+"<varname>tiger_data</varname> if no schema is specified. This function is "
+"useful for dropping tables of a state just before you reload a state in case "
+"something went wrong during your previous load."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:166
+#, no-c-format
+msgid ""
+"SELECT drop_state_tables_generate_script('PA');\n"
+"DROP TABLE tiger_data.pa_addr;\n"
+"DROP TABLE tiger_data.pa_county;\n"
+"DROP TABLE tiger_data.pa_county_lookup;\n"
+"DROP TABLE tiger_data.pa_cousub;\n"
+"DROP TABLE tiger_data.pa_edges;\n"
+"DROP TABLE tiger_data.pa_faces;\n"
+"DROP TABLE tiger_data.pa_featnames;\n"
+"DROP TABLE tiger_data.pa_place;\n"
+"DROP TABLE tiger_data.pa_state;\n"
+"DROP TABLE tiger_data.pa_zip_lookup_base;\n"
+"DROP TABLE tiger_data.pa_zip_state;\n"
+"DROP TABLE tiger_data.pa_zip_state_loc;"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:178
+#, no-c-format
+msgid "Geocode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:180
+#, no-c-format
+msgid ""
+"Takes in an address as a string (or other normalized address) and outputs a "
+"set of possible locations which include a point geometry in NAD 83 long lat, "
+"a normalized address for each, and the rating. The lower the rating the more "
+"likely the match. Results are sorted by lowest rating first. Can optionally "
+"pass in maximum results, defaults to 10, and restrict_region (defaults to "
+"NULL)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_tigergeocoder.xml:185
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>geocode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>address</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_results=10</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>geocode</function></funcdef> <paramdef><type>norm_addy </type> "
+"<parameter>in_addy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>max_results=10</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>geometry </type> "
+"<parameter>restrict_region=NULL</parameter></paramdef> "
+"<paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>OUT geomout</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>OUT rating</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:210
+#, no-c-format
+msgid ""
+"Takes in an address as a string (or already normalized address) and outputs "
+"a set of possible locations which include a point geometry in NAD 83 long "
+"lat, a <varname>normalized_address</varname> (addy) for each, and the "
+"rating. The lower the rating the more likely the match. Results are sorted "
+"by lowest rating first. Uses Tiger data (edges,faces,addr), PostgreSQL fuzzy "
+"string matching (soundex,levenshtein) and PostGIS line interpolation "
+"functions to interpolate address along the Tiger edges. The higher the "
+"rating the less likely the geocode is right. The geocoded point is defaulted "
+"to offset 10 meters from center-line off to side (L/R) of street address is "
+"located on."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:214
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 to support Tiger 2010 structured data and revised some logic "
+"to improve speed, accuracy of geocoding, and to offset point from centerline "
+"to side of street address is located on. New parameter max_results useful "
+"for specifying ot just return the best result."
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:220 extras_tigergeocoder.xml:283
+#: extras_tigergeocoder.xml:365
+#, no-c-format
+msgid "Examples: Basic"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:221
+#, no-c-format
+msgid ""
+"The below examples timings are on a 3.0 GHZ single processor Windows 7 "
+"machine with 2GB ram running PostgreSQL 9.1rc1/PostGIS 2.0 loaded with all "
+"of MA,MN,CA, RI state Tiger data loaded."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:222
+#, no-c-format
+msgid "Exact matches are faster to compute (61ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:223
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_X(g.geomout) As lon, ST_Y(g.geomout) As lat, \n"
+"        (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('75 State Street, Boston MA 02109') As g;  \n"
+" rating |        lon        |       lat        | stno | street | styp |  "
+"city  | st |  zip  \n"
+"--------+-------------------+------------------+------+--------+------"
+"+--------+----+-------\n"
+"      0 | -71.0556722990239 | 42.3589914927049 |   75 | State  | St   | "
+"Boston | MA | 02109"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:224
+#, no-c-format
+msgid ""
+"Even if zip is not passed in the geocoder can guess (took about 122-150 ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:225
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"        (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('226 Hanover Street, Boston, MA',1) As g;  \n"
+" rating |         wktlonlat         | stno | street  | styp |  city  | st |  "
+"zip  \n"
+"--------+---------------------------+------+---------+------+--------+----"
+"+-------\n"
+"      1 | POINT(-71.05528 42.36316) |  226 | Hanover | St   | Boston | MA | "
+"02113"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:226
+#, no-c-format
+msgid ""
+"Can handle misspellings and provides more than one possible solution with "
+"ratings and takes longer (500ms)."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:227
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"    (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, (addy).location As city, (addy)."
+"stateabbrev As st,(addy).zip \n"
+"        FROM geocode('31 - 37 Stewart Street, Boston, MA 02116') As g; \n"
+" rating |         wktlonlat         | stno | street | styp |  city  | st |  "
+"zip  \n"
+"--------+---------------------------+------+--------+------+--------+----"
+"+-------\n"
+"     70 | POINT(-71.06459 42.35113) |   31 | Stuart | St   | Boston | MA | "
+"02116"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:229
+#, no-c-format
+msgid ""
+"Using to do a batch geocode of addresses. Easiest is to set "
+"<varname>max_results=1</varname>. Only process those not yet geocoded (have "
+"no rating)."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:230
+#, no-c-format
+msgid ""
+"CREATE TABLE addresses_to_geocode(addid serial PRIMARY KEY, address text,\n"
+"                lon numeric, lat numeric, new_address text, rating "
+"integer);\n"
+"\n"
+"INSERT INTO addresses_to_geocode(address)\n"
+"VALUES ('529 Main Street, Boston MA, 02129'),\n"
+" ('77 Massachusetts Avenue, Cambridge, MA 02139'),\n"
+" ('25 Wizard of Oz, Walaford, KS 99912323'),\n"
+" ('26 Capen Street, Medford, MA'),\n"
+" ('124 Mount Auburn St, Cambridge, Massachusetts 02138'),\n"
+" ('950 Main Street, Worcester, MA 01610');\n"
+" \n"
+"-- only update the first 3 addresses (323-704 ms -  there are caching and "
+"shared memory effects so first geocode you do is always slower) --\n"
+"-- for large numbers of addresses you don't want to update all at once\n"
+"-- since the whole geocode must commit at once \n"
+"-- For this example we rejoin with LEFT JOIN \n"
+"-- and set to rating to -1 rating if no match \n"
+"-- to ensure we don't regeocode a bad address \n"
+"UPDATE addresses_to_geocode\n"
+"  SET  (rating, new_address, lon, lat) \n"
+"        = ( COALESCE((g.geo).rating,-1), pprint_addy((g.geo).addy),\n"
+"           ST_X((g.geo).geomout)::numeric(8,5), ST_Y((g.geo).geomout)::"
+"numeric(8,5) )\n"
+"FROM (SELECT addid \n"
+"        FROM addresses_to_geocode \n"
+"        WHERE rating IS NULL ORDER BY addid LIMIT 3) As a\n"
+"        LEFT JOIN (SELECT addid, (geocode(address,1)) As geo\n"
+"    FROM addresses_to_geocode As ag\n"
+"        WHERE ag.rating IS NULL ORDER BY addid LIMIT 3) As g ON a.addid = g."
+"addid\n"
+"WHERE a.addid = addresses_to_geocode.addid;\n"
+"\n"
+"result\n"
+"-----\n"
+"Query returned successfully: 3 rows affected, 480 ms execution time.\n"
+"\n"
+"SELECT * FROM addresses_to_geocode WHERE rating is not null;\n"
+"\n"
+" addid |                   address                    |    lon    |   lat    "
+"|                new_address                | rating \n"
+"-------+----------------------------------------------+-----------+----------"
+"+-------------------------------------------+--------\n"
+"     1 | 529 Main Street, Boston MA, 02129            | -71.07181 | 42.38359 "
+"| 529 Main St, Boston, MA 02129             |      0\n"
+"     2 | 77 Massachusetts Avenue, Cambridge, MA 02139 | -71.09428 | 42.35988 "
+"| 77 Massachusetts Ave, Cambridge, MA 02139 |      0\n"
+"     3 | 25 Wizard of Oz, Walaford, KS 99912323       |           |          "
+"|                                           |     -1"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:233
+#, no-c-format
+msgid "Examples: Using Geometry filter"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:234
+#, no-c-format
+msgid ""
+"SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
+"    (addy).address As stno, (addy).streetname As street, \n"
+"        (addy).streettypeabbrev As styp, \n"
+"        (addy).location As city, (addy).stateabbrev As st,(addy).zip \n"
+"  FROM geocode('100 Federal Street, MA',\n"
+"                3, \n"
+"                (SELECT ST_Union(the_geom) \n"
+"                        FROM place WHERE statefp = '25' AND name = 'Lynn')::"
+"geometry\n"
+"                ) As g;\n"
+"\n"
+" rating |        wktlonlat         | stno | street  | styp | city | st |  "
+"zip\n"
+"--------+--------------------------+------+---------+------+------+----"
+"+-------\n"
+"      8 | POINT(-70.96796 42.4659) |  100 | Federal | St   | Lynn | MA | "
+"01905\n"
+"Total query runtime: 245 ms."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:240
+#, no-c-format
+msgid ""
+", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_SnapToGrid\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:246
+#, no-c-format
+msgid "Geocode_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:248
+#, no-c-format
+msgid ""
+"Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
+"of possible locations on the first cross street that is at the intersection, "
+"also includes a point geometry in NAD 83 long lat, a normalized address for "
+"each location, and the rating. The lower the rating the more likely the "
+"match. Results are sorted by lowest rating first. Can optionally pass in "
+"maximum results, defaults to 10"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:254
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>geocode_intersection</function></funcdef> "
+"<paramdef><type>text </type> <parameter> roadway1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> roadway2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> in_state</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> in_city</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter> in_zip</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>max_results=10</parameter></paramdef> <paramdef><type>norm_addy </"
+"type> <parameter>OUT addy</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>OUT geomout</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>OUT rating</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:272
+#, no-c-format
+msgid ""
+"Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
+"of possible locations on the first cross street that is at the intersection, "
+"also includes a point geometry in NAD 83 long lat, a normalized address for "
+"each location, and the rating. The lower the rating the more likely the "
+"match. Results are sorted by lowest rating first. Can optionally pass in "
+"maximum results, defaults to 10. Returns <varname>normalized_address</"
+"varname> (addy) for each, geomout as the point location in nad 83 long lat, "
+"and the rating. The lower the rating the more likely the match. Results are "
+"sorted by lowest rating first. Uses Tiger data (edges,faces,addr), "
+"PostgreSQL fuzzy string matching (soundex,levenshtein)"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:284
+#, no-c-format
+msgid ""
+"The below examples timings are on a 3.0 GHZ single processor Windows 7 "
+"machine with 2GB ram running PostgreSQL 9.0/PostGIS 1.5 loaded with all of "
+"MA state Tiger data loaded. Currently a bit slow (3000 ms)"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:285
+#, no-c-format
+msgid ""
+"Testing on Windows 2003 64-bit 8GB on PostGIS 2.0 PostgreSQL 64-bit Tiger "
+"2011 data loaded -- (41ms)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:286
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(addy), st_astext(geomout),rating \n"
+"                        FROM geocode_intersection( 'Haverford St','Germania "
+"St', 'MA', 'Boston', '02130',1); \n"
+"           pprint_addy            |         st_astext          | rating\n"
+"----------------------------------+----------------------------+--------\n"
+"98 Haverford St, Boston, MA 02130 | POINT(-71.101375 42.31376) |      0"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:287
+#, no-c-format
+msgid ""
+"Even if zip is not passed in the geocoder can guess (took about 3500 ms on "
+"the windows 7 box), on the windows 2003 64-bit 741 ms"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:288
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(addy), st_astext(geomout),rating \n"
+"                                FROM geocode_intersection('Weld', 'School', "
+"'MA', 'Boston');\n"
+"          pprint_addy          |        st_astext         | rating\n"
+"-------------------------------+--------------------------+--------\n"
+" 98 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3\n"
+" 99 Weld Ave, Boston, MA 02119 | POINT(-71.099 42.314234) |      3"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:294
+#, no-c-format
+msgid ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:300
+#, no-c-format
+msgid "Get_Geocode_Setting"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:302
+#, no-c-format
+msgid ""
+"Returns value of specific setting stored in tiger.geocode_settings table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:307
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Get_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:317
+#, no-c-format
+msgid ""
+"Returns value of specific setting stored in tiger.geocode_settings table. "
+"Settings allow you to toggle debugging of functions. Later plans will be to "
+"control rating with settings. Current list of settings are as follows:"
+msgstr ""
+
+#. Tag: screen
+#: extras_tigergeocoder.xml:318
+#, no-c-format
+msgid ""
+"name              | setting |  unit   | category  "
+"|                                                             short_desc\n"
+"--------------------------------+---------+---------+-----------"
+"+------------------------------------------------------------------------------------------------------\n"
+" debug_geocode_address          | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_addresss is "
+"called if true\n"
+" debug_geocode_intersection     | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_intersection is "
+"called if true\n"
+" debug_normalize_address        | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries \n"
+"                                |         |         |           |   and "
+"intermediate expressions when normalize_address is called if true\n"
+" debug_reverse_geocode          | false   | boolean | debug     | if true, "
+"outputs debug information in notice log such as queries \n"
+"                                                                |  and "
+"intermediate expressions when reverse_geocode\n"
+" reverse_geocode_numbered_roads | 0       | integer | rating    | For state "
+"and county highways, 0 - no preference in name\n"
+"                                |         |         |           |  , 1 - "
+"prefer the numbered highway name, 2 - prefer local state/county name\n"
+" use_pagc_address_parser        | false   | boolean | normalize | If set to "
+"true, will try to use the pagc_address normalizer instead of tiger built one"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:326 extras_tigergeocoder.xml:1012
+#, no-c-format
+msgid "Example return debugging setting"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:327
+#, no-c-format
+msgid ""
+"SELECT get_geocode_setting('debug_geocode_address) As result;\n"
+"result\n"
+"---------\n"
+"false"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:339
+#, no-c-format
+msgid "Get_Tract"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:341
+#, no-c-format
+msgid ""
+"Returns census tract or field from tract table of where the geometry is "
+"located. Default to returning short name of tract."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:346
+#, no-c-format
+msgid ""
+"<funcdef>text <function>get_tract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter> loc_geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter> output_field=name</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:357
+#, no-c-format
+msgid ""
+"Given a geometry will return the census tract location of that geometry. NAD "
+"83 long lat is assumed if no spatial ref sys is specified."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:366
+#, no-c-format
+msgid ""
+"SELECT get_tract(ST_Point(-71.101375, 42.31376) ) As tract_name;\n"
+"tract_name\n"
+"---------\n"
+"1203.01"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:367
+#, no-c-format
+msgid ""
+"--this one returns the tiger geoid\n"
+"SELECT get_tract(ST_Point(-71.101375, 42.31376), 'tract_id' ) As tract_id;\n"
+"tract_id\n"
+"---------\n"
+"25025120301"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:373
+#, no-c-format
+msgid "<para>></para>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:379
+#, no-c-format
+msgid "Install_Missing_Indexes"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:381
+#, no-c-format
+msgid ""
+"Finds all tables with key columns used in geocoder joins and filter "
+"conditions that are missing used indexes on those columns and will add them."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:386
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Install_Missing_Indexes</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:396
+#, no-c-format
+msgid ""
+"Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
+"varname> schemas with key columns used in geocoder joins and filters that "
+"are missing indexes on those columns and will output the SQL DDL to define "
+"the index for those tables and then execute the generated script. This is a "
+"helper function that adds new indexes needed to make queries faster that may "
+"have been missing during the load process. This function is a companion to "
+"<xref linkend=\"Missing_Indexes_Generate_Script\"/> that in addition to "
+"generating the create index script, also executes it. It is called as part "
+"of the <filename>update_geocode.sql</filename> upgrade script."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:410
+#, no-c-format
+msgid ""
+"SELECT install_missing_indexes();\n"
+"                 install_missing_indexes\n"
+"-------------------------\n"
+" t"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:423
+#, no-c-format
+msgid "Loader_Generate_Census_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:425
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger census state tract, bg, and tabblocks data tables, "
+"stage and load into <varname>tiger_data</varname> schema. Each state script "
+"is returned as a separate record."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:430
+#, no-c-format
+msgid ""
+"<funcdef>setof text <function>loader_generate_census_script</function></"
+"funcdef> <paramdef><type>text[]</type> <parameter>param_states</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:441
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data census state <varname>tract</varname>, block "
+"groups <varname>bg</varname>, and <varname>tabblocks</varname> data tables, "
+"stage and load into <varname>tiger_data</varname> schema. Each state script "
+"is returned as a separate record."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:442
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the "
+"data. Note the smallest unit it does is a whole state. It will only process "
+"the files in the staging and temp folders."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502
+#, no-c-format
+msgid ""
+"It uses the following control tables to control the process and different OS "
+"shell syntax variations."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:448 extras_tigergeocoder.xml:506
+#: extras_tigergeocoder.xml:562
+#, no-c-format
+msgid ""
+"<varname>loader_variables</varname> keeps track of various variables such as "
+"census site, year, data and staging schemas"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:451 extras_tigergeocoder.xml:509
+#, no-c-format
+msgid ""
+"<varname>loader_platform</varname> profiles of various platforms and where "
+"the various executables are located. Comes with windows and linux. More can "
+"be added."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:454 extras_tigergeocoder.xml:512
+#: extras_tigergeocoder.xml:568
+#, no-c-format
+msgid ""
+"<varname>loader_lookuptables</varname> each record defines a kind of table "
+"(state, county), whether to process records in it and how to load them in. "
+"Defines the steps to import data, stage data, add, removes columns, indexes, "
+"and constraints for each. Each table is prefixed with the state and inherits "
+"from a table in the tiger schema. e.g. creates <varname>tiger_data.ma_faces</"
+"varname> which inherits from <varname>tiger.faces</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:458
+#, no-c-format
+msgid ""
+"includes this logic, but if you installed tiger geocoder prior to PostGIS "
+"2.0.0 alpha5, you'll need to run this on the states you have already done to "
+"get these additional tables."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:465
+#, no-c-format
+msgid ""
+"Generate script to load up data for select states in Windows shell script "
+"format."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:466
+#, no-c-format
+msgid ""
+"SELECT loader_generate_census_script(ARRAY['MA'], 'windows');\n"
+"-- result --\n"
+"set STATEDIR=\"\\gisdata\\www2.census.gov\\geo\\pvs\\tiger2010st"
+"\\25_Massachusetts\"\n"
+"set TMPDIR=\\gisdata\\temp\\\n"
+"set UNZIPTOOL=\"C:\\Program Files\\7-Zip\\7z.exe\"\n"
+"set WGETTOOL=\"C:\\wget\\wget.exe\"\n"
+"set PGBIN=C:\\projects\\pg\\pg91win\\bin\\\n"
+"set PGPORT=5432\n"
+"set PGHOST=localhost\n"
+"set PGUSER=postgres\n"
+"set PGPASSWORD=yourpasswordhere\n"
+"set PGDATABASE=tiger_postgis20\n"
+"set PSQL=\"%PGBIN%psql\"\n"
+"set SHP2PGSQL=\"%PGBIN%shp2pgsql\"\n"
+"cd \\gisdata\n"
+"\n"
+"%WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --"
+"no-parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --"
+"mirror --reject=html\n"
+"del %TMPDIR%\\*.* /Q\n"
+"%PSQL% -c \"DROP SCHEMA tiger_staging CASCADE;\"\n"
+"%PSQL% -c \"CREATE SCHEMA tiger_staging;\"\n"
+"cd %STATEDIR%\n"
+"for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% \n"
+"cd %TMPDIR%        \n"
+"%PSQL% -c \"CREATE TABLE tiger_data.MA_tract(CONSTRAINT pk_MA_tract PRIMARY "
+"KEY (tract_id) ) INHERITS(tiger.tract); \" \n"
+"%SHP2PGSQL% -c -s 4269 -g the_geom   -W \"latin1\" tl_2010_25_tract10.dbf "
+"tiger_staging.ma_tract10 | %PSQL%\n"
+"%PSQL% -c \"ALTER TABLE tiger_staging.MA_tract10 RENAME geoid10 TO "
+"tract_id;  SELECT loader_load_staged_data(lower('MA_tract10'), "
+"lower('MA_tract')); \"\n"
+"%PSQL% -c \"CREATE INDEX tiger_data_MA_tract_the_geom_gist ON tiger_data."
+"MA_tract USING gist(the_geom);\"\n"
+"%PSQL% -c \"VACUUM ANALYZE tiger_data.MA_tract;\"\n"
+"%PSQL% -c \"ALTER TABLE tiger_data.MA_tract ADD CONSTRAINT chk_statefp CHECK "
+"(statefp = '25');\"\n"
+":"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:467 extras_tigergeocoder.xml:525
+#, no-c-format
+msgid "Generate sh script"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:468
+#, no-c-format
+msgid ""
+"STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts\" \n"
+"TMPDIR=\"/gisdata/temp/\"\n"
+"UNZIPTOOL=unzip\n"
+"WGETTOOL=\"/usr/bin/wget\"\n"
+"export PGBIN=/usr/pgsql-9.0/bin\n"
+"export PGPORT=5432\n"
+"export PGHOST=localhost\n"
+"export PGUSER=postgres\n"
+"export PGPASSWORD=yourpasswordhere\n"
+"export PGDATABASE=geocoder\n"
+"PSQL=${PGBIN}/psql\n"
+"SHP2PGSQL=${PGBIN}/shp2pgsql\n"
+"cd /gisdata\n"
+"\n"
+"wget http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --no-"
+"parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --mirror --"
+"reject=html\n"
+"rm -f ${TMPDIR}/*.*\n"
+"${PSQL} -c \"DROP SCHEMA tiger_staging CASCADE;\"\n"
+"${PSQL} -c \"CREATE SCHEMA tiger_staging;\"\n"
+"cd $STATEDIR\n"
+"for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:481
+#, no-c-format
+msgid "Loader_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:483
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data, stage and load into <varname>tiger_data</"
+"varname> schema. Each state script is returned as a separate record. Latest "
+"version supports Tiger 2010 structural changes and also loads census tract, "
+"block groups, and blocks tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:488
+#, no-c-format
+msgid ""
+"<funcdef>setof text <function>loader_generate_script</function></funcdef> "
+"<paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:499
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform for the specified states "
+"that will download Tiger data, stage and load into <varname>tiger_data</"
+"varname> schema. Each state script is returned as a separate record."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:500
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the "
+"data. Note the smallest unit it does is a whole state, but you can overwrite "
+"this by downloading the files yourself. It will only process the files in "
+"the staging and temp folders."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:515
+#, no-c-format
+msgid ""
+"Availability: 2.0.0 to support Tiger 2010 structured data and load census "
+"tract (tract), block groups (bg), and blocks (tabblocks) tables ."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:523
+#, no-c-format
+msgid ""
+"Generate script to load up data for 2 states in Windows shell script format."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:524
+#, no-c-format
+msgid ""
+"SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;\n"
+"-- result --\n"
+"set STATEDIR=\"\\gisdata\\www2.census.gov\\geo\\pvs\\tiger2010st"
+"\\44_Rhode_Island\"\n"
+"set TMPDIR=\\gisdata\\temp\\\n"
+"set UNZIPTOOL=\"C:\\Program Files\\7-Zip\\7z.exe\"\n"
+"set WGETTOOL=\"C:\\wget\\wget.exe\"\n"
+"set PGBIN=C:\\Program Files\\PostgreSQL\\8.4\\bin\\\n"
+"set PGPORT=5432\n"
+"set PGHOST=localhost\n"
+"set PGUSER=postgres\n"
+"set PGPASSWORD=yourpasswordhere\n"
+"set PGDATABASE=geocoder\n"
+"set PSQL=\"%PGBIN%psql\"\n"
+"set SHP2PGSQL=\"%PGBIN%shp2pgsql\"\n"
+"\n"
+"%WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-"
+"parent --relative --recursive --level=2 --accept=zip,txt --mirror --"
+"reject=html\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:526
+#, no-c-format
+msgid ""
+"SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;\n"
+"-- result --\n"
+"STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island\" \n"
+"TMPDIR=\"/gisdata/temp/\"\n"
+"UNZIPTOOL=unzip\n"
+"PGPORT=5432\n"
+"PGHOST=localhost\n"
+"PGUSER=postgres\n"
+"PGPASSWORD=yourpasswordhere\n"
+"PGDATABASE=geocoder\n"
+"PSQL=psql\n"
+"SHP2PGSQ=shp2pgsql\n"
+"\n"
+"wget http://www2.census.gov/geo/pvs/tiger2010st/44_Rhode_Island/ --no-parent "
+"--relative --recursive --level=2 --accept=zip,txt --mirror --reject=html\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:539
+#, no-c-format
+msgid "Loader_Generate_Nation_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:541
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform that loads in the county "
+"and state lookup tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:546
+#, no-c-format
+msgid ""
+"<funcdef>text <function>loader_generate_nation_script</function></funcdef> "
+"<paramdef><type>text</type> <parameter>os</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:556
+#, no-c-format
+msgid ""
+"Generates a shell script for the specified platform that loads in the "
+"<varname>county_all</varname>, <varname>county_all_lookup</varname>, "
+"<varname>state_all</varname> tables into <varname>tiger_data</varname> "
+"schema. These inherit respectively from the <varname>county</varname>, "
+"<varname>county_lookup</varname>, <varname>state</varname> tables in "
+"<varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:557
+#, no-c-format
+msgid ""
+"It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
+"downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the data."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:558
+#, no-c-format
+msgid ""
+"It uses the following control tables <varname>tiger.loader_platform</"
+"varname>, <varname>tiger.loader_variables</varname>, and <varname>tiger."
+"loader_lookuptables</varname> to control the process and different OS shell "
+"syntax variations."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:565
+#, no-c-format
+msgid ""
+"<varname>loader_platform</varname> profiles of various platforms and where "
+"the various executables are located. Comes with windows and linux/unix. More "
+"can be added."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:572
+#, no-c-format
+msgid ""
+"If you were running <varname>tiger_2010</varname> version and you want to "
+"reload as state with <varname>tiger_2011</varname>, you'll need to for the "
+"very first load generate and run drop statements <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/> before you run this script."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:578
+#, no-c-format
+msgid "Generate script script to load nation data Windows."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:579
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:580
+#, no-c-format
+msgid "Generate script to load up data for Linux/Unix systems."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:581
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:593
+#, no-c-format
+msgid "Missing_Indexes_Generate_Script"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:595
+#, no-c-format
+msgid ""
+"Finds all tables with key columns used in geocoder joins that are missing "
+"indexes on those columns and will output the SQL DDL to define the index for "
+"those tables."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:601
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:611
+#, no-c-format
+msgid ""
+"Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
+"varname> schemas with key columns used in geocoder joins that are missing "
+"indexes on those columns and will output the SQL DDL to define the index for "
+"those tables. This is a helper function that adds new indexes needed to make "
+"queries faster that may have been missing during the load process. As the "
+"geocoder is improved, this function will be updated to accommodate new "
+"indexes being used. If this function outputs nothing, it means all your "
+"tables have what we think are the key indexes already in place."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:625
+#, no-c-format
+msgid ""
+"SELECT missing_indexes_generate_script();\n"
+"-- output: This was run on a database that was created before many "
+"corrections were made to the loading script ---\n"
+"CREATE INDEX idx_tiger_county_countyfp ON tiger.county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_cousub_countyfp ON tiger.cousub USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_edges_tfidr ON tiger.edges USING btree(tfidr);\n"
+"CREATE INDEX idx_tiger_edges_tfidl ON tiger.edges USING btree(tfidl);\n"
+"CREATE INDEX idx_tiger_zip_lookup_all_zip ON tiger.zip_lookup_all USING "
+"btree(zip);\n"
+"CREATE INDEX idx_tiger_data_ma_county_countyfp ON tiger_data.ma_county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_cousub_countyfp ON tiger_data.ma_cousub USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_edges_countyfp ON tiger_data.ma_edges USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_data_ma_faces_countyfp ON tiger_data.ma_faces USING "
+"btree(countyfp);"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:632
+#, no-c-format
+msgid ", <xref linkend=\"Install_Missing_Indexes\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:638
+#, no-c-format
+msgid "Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:640
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data)."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:646
+#, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:656 extras_tigergeocoder.xml:735
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This is the first step in the "
+"geocoding process to get all addresses into normalized postal form. No other "
+"data is required aside from what is packaged with the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:658
+#, no-c-format
+msgid ""
+"This function just uses the various direction/state/suffix lookup tables "
+"preloaded with the tiger_geocoder and located in the <varname>tiger</"
+"varname> schema, so it doesn't need you to download tiger census data or any "
+"other additional data to make use of it. You may find the need to add more "
+"abbreviations or alternative namings to the various lookup tables in the "
+"<varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:660 extras_tigergeocoder.xml:739
+#, no-c-format
+msgid ""
+"It uses various control lookup tables located in <varname>tiger</varname> "
+"schema to normalize the input address."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:661 extras_tigergeocoder.xml:740
+#, no-c-format
+msgid ""
+"Fields in the <varname>norm_addy</varname> type object returned by this "
+"function in this order where () indicates a field required by the geocoder, "
+"[] indicates an optional field:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:662 extras_tigergeocoder.xml:744
+#, no-c-format
+msgid ""
+"(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] "
+"[internal] [location] [stateAbbrev] [zip]"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:665 extras_tigergeocoder.xml:750
+#, no-c-format
+msgid "<varname>address</varname> is an integer: The street number"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:668 extras_tigergeocoder.xml:753
+#, no-c-format
+msgid ""
+"<varname>predirAbbrev</varname> is varchar: Directional prefix of road such "
+"as N, S, E, W etc. These are controlled using the <varname>direction_lookup</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:671 extras_tigergeocoder.xml:756
+#, no-c-format
+msgid "<varname>streetName</varname> varchar"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:674 extras_tigergeocoder.xml:759
+#, no-c-format
+msgid ""
+"<varname>streetTypeAbbrev</varname> varchar abbreviated version of street "
+"type: e.g. St, Ave, Cir. These are controlled using the "
+"<varname>street_type_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:677 extras_tigergeocoder.xml:762
+#, no-c-format
+msgid ""
+"<varname>postdirAbbrev</varname> varchar abbreviated directional suffice of "
+"road N, S, E, W etc. These are controlled using the "
+"<varname>direction_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:680 extras_tigergeocoder.xml:765
+#, no-c-format
+msgid ""
+"<varname>internal</varname> varchar internal address such as an apartment or "
+"suite number."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:683 extras_tigergeocoder.xml:768
+#, no-c-format
+msgid ""
+"<varname>location</varname> varchar usually a city or governing province."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:686 extras_tigergeocoder.xml:771
+#, no-c-format
+msgid ""
+"<varname>stateAbbrev</varname> varchar two character US State. e.g MA, NY, "
+"MI. These are controlled by the <varname>state_lookup</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:689 extras_tigergeocoder.xml:774
+#, no-c-format
+msgid "<varname>zip</varname> varchar 5-digit zipcode. e.g. 02109."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:692 extras_tigergeocoder.xml:777
+#, no-c-format
+msgid ""
+"<varname>parsed</varname> boolean - denotes if addess was formed from "
+"normalize process. The normalize_address function sets this to true before "
+"returning the address."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:701
+#, no-c-format
+msgid ""
+"Output select fields. Use <xref linkend=\"Pprint_Addy\"/> if you want a "
+"pretty textual output."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:702
+#, no-c-format
+msgid ""
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM (SELECT address, normalize_address(address) As na\n"
+"        FROM addresses_to_geocode) As g;\n"
+"        \n"
+"                        orig                         |  streetname   | "
+"streettypeabbrev \n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 28 Capen Street, Medford, MA                        | Capen         | St\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | Mount Auburn  | St\n"
+" 950 Main Street, Worcester, MA 01610                | Main          | St\n"
+" 529 Main Street, Boston MA, 02129                   | Main          | St\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | Massachusetts | Ave\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | Wizard of Oz  |"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:711
+#, no-c-format
+msgid ", <xref linkend=\"Pprint_Addy\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:717
+#, no-c-format
+msgid "Pagc_Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:719
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data). Requires address_standardizer extension."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:725
+#, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>pagc_normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:737
+#, no-c-format
+msgid ""
+"This function just uses the various pagc_* lookup tables preloaded with the "
+"tiger_geocoder and located in the <varname>tiger</varname> schema, so it "
+"doesn't need you to download tiger census data or any other additional data "
+"to make use of it. You may find the need to add more abbreviations or "
+"alternative namings to the various lookup tables in the <varname>tiger</"
+"varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:741
+#, no-c-format
+msgid ""
+"There are slight variations in casing and formatting over the <xref linkend="
+"\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:743
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:745
+#, no-c-format
+msgid ""
+"The native standardaddr of address_standardizer extension is at this time a "
+"bit richer than norm_addy since its designed to support international "
+"addresses (including country). standardaddr equivalent fields are:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:746
+#, no-c-format
+msgid "house_num,predir, name, suftype, sufdir, unit, city, state, postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:785
+#, no-c-format
+msgid "Single call example"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:786
+#, no-c-format
+msgid ""
+"SELECT addy.*\n"
+"FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS "
+"addy;\n"
+"\n"
+"        \n"
+" address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | "
+"internal  |  location   | stateabbrev | zip | parsed\n"
+"---------+--------------+------------+------------------+---------------"
+"+-----------+-------------+-------------+-----+--------\n"
+"    9000 | E            | ROO        | ST               |               | "
+"SUITE 999 | SPRINGFIELD | CO          |     | t"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:788
+#, no-c-format
+msgid ""
+"Batch call. There are currently speed issues with the way "
+"postgis_tiger_geocoder wraps the address_standardizer. These will hopefully "
+"be resolved in later editions. To work around them, if you need speed for "
+"batch geocoding to call generate a normaddy in batch mode, you are "
+"encouraged to directly call the address_standardizer standardize_address "
+"function as shown below which is similar exercise to what we did in <xref "
+"linkend=\"Normalize_Address\"/> that uses data created in <xref linkend="
+"\"Geocode\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:792
+#, no-c-format
+msgid ""
+"WITH g AS (SELECT address, ROW((sa).house_num, (sa).predir, (sa).name\n"
+"  , (sa).suftype, (sa).sufdir, (sa).unit , (sa).city, (sa).state, (sa)."
+"postcode, true)::norm_addy As na\n"
+" FROM (SELECT address, standardize_address('tiger.pagc_lex'\n"
+"       , 'tiger.pagc_gaz'\n"
+"       , 'tiger.pagc_rules', address) As sa\n"
+"        FROM addresses_to_geocode) As g)\n"
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM  g;\n"
+" \n"
+" orig                                                |  streetname   | "
+"streettypeabbrev\n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 529 Main Street, Boston MA, 02129                   | MAIN          | ST\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | MASSACHUSETTS | AVE\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | WIZARD OF     |\n"
+" 26 Capen Street, Medford, MA                        | CAPEN         | ST\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | MOUNT AUBURN  | ST\n"
+" 950 Main Street, Worcester, MA 01610                | MAIN          | ST"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:797 extras_tigergeocoder.xml:913
+#, no-c-format
+msgid ", <xref linkend=\"Geocode\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:803
+#, no-c-format
+msgid "Pprint_Addy"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:805
+#, no-c-format
+msgid ""
+"Given a <varname>norm_addy</varname> composite type object, returns a pretty "
+"print representation of it. Usually used in conjunction with "
+"normalize_address."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:810
+#, no-c-format
+msgid ""
+"<funcdef>varchar <function>pprint_addy</function></funcdef> "
+"<paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:820
+#, no-c-format
+msgid ""
+"Given a <varname>norm_addy</varname> composite type object, returns a pretty "
+"print representation of it. No other data is required aside from what is "
+"packaged with the geocoder."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:821
+#, no-c-format
+msgid "Usually used in conjunction with <xref linkend=\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:829
+#, no-c-format
+msgid "Pretty print a single address"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:830
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"            pretty_address\n"
+"---------------------------------------\n"
+" 202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:832
+#, no-c-format
+msgid "Pretty print address a table of addresses"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:833
+#, no-c-format
+msgid ""
+"SELECT address As orig, pprint_addy(normalize_address(address)) As "
+"pretty_address\n"
+"        FROM addresses_to_geocode;\n"
+"        \n"
+"                        orig                         |              "
+"pretty_address\n"
+"-----------------------------------------------------"
+"+-------------------------------------------\n"
+" 529 Main Street, Boston MA, 02129                   | 529 Main St, Boston "
+"MA, 02129\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | 77 Massachusetts Ave, "
+"Cambridge, MA 02139\n"
+" 28 Capen Street, Medford, MA                        | 28 Capen St, Medford, "
+"MA\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | 124 Mount Auburn St, "
+"Cambridge, MA 02138\n"
+" 950 Main Street, Worcester, MA 01610                | 950 Main St, "
+"Worcester, MA 01610"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:846
+#, no-c-format
+msgid "Reverse_Geocode"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:848
+#, no-c-format
+msgid ""
+"Takes a geometry point in a known spatial ref sys and returns a record "
+"containing an array of theoretically possible addresses and an array of "
+"cross streets. If include_strnum_range = true, includes the street range in "
+"the cross streets."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:853
+#, no-c-format
+msgid ""
+"<funcdef>record <function>Reverse_Geocode</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>include_strnum_range=false</parameter></paramdef> "
+"<paramdef><type>geometry[] </type> <parameter>OUT intpt</parameter></"
+"paramdef> <paramdef><type>norm_addy[] </type> <parameter>OUT addy</"
+"parameter></paramdef> <paramdef><type>varchar[] </type> <parameter>OUT "
+"street</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:867
+#, no-c-format
+msgid ""
+"Takes a geometry point in a known spatial ref and returns a record "
+"containing an array of theoretically possible addresses and an array of "
+"cross streets. If include_strnum_range = true, includes the street range in "
+"the cross streets. include_strnum_range defaults to false if not passed in. "
+"Addresses are sorted according to which road a point is closest to so first "
+"address is most likely the right one."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:870
+#, no-c-format
+msgid ""
+"Why do we say theoretical instead of actual addresses. The Tiger data "
+"doesn't have real addresses, but just street ranges. As such the theoretical "
+"address is an interpolated address based on the street ranges. Like for "
+"example interpolating one of my addresses returns a 26 Court St. and 26 "
+"Court Sq., though there is no such place as 26 Court Sq. This is because a "
+"point may be at a corner of 2 streets and thus the logic interpolates along "
+"both streets. The logic also assumes addresses are equally spaced along a "
+"street, which of course is wrong since you can have a municipal building "
+"taking up a good chunk of the street range and the rest of the buildings are "
+"clustered at the end."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:875
+#, no-c-format
+msgid ""
+"Note: Hmm this function relies on Tiger data. If you have not loaded data "
+"covering the region of this point, then hmm you will get a record filled "
+"with NULLS."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:876
+#, no-c-format
+msgid "Returned elements of the record are as follows:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:879
+#, no-c-format
+msgid ""
+"<varname>intpt</varname> is an array of points: These are the center line "
+"points on the street closest to the input point. There are as many points as "
+"there are addresses."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:882
+#, no-c-format
+msgid ""
+"<varname>addy</varname> is an array of norm_addy (normalized addresses): "
+"These are an array of possible addresses that fit the input point. The first "
+"one in the array is most likely. Generally there should be only one, except "
+"in the case when a point is at the corner of 2 or 3 streets, or the point is "
+"somewhere on the road and not off to the side."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:886
+#, no-c-format
+msgid ""
+"<varname>street</varname> an array of varchar: These are cross streets (or "
+"the street) (streets that intersect or are the street the point is projected "
+"to be on)."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:897
+#, no-c-format
+msgid ""
+"Example of a point at the corner of two streets, but closest to one. This is "
+"approximate location of MIT: 77 Massachusetts Ave, Cambridge, MA 02139 Note "
+"that although we don't have 3 streets, PostgreSQL will just return null for "
+"entries above our upper bound so safe to use. This includes street ranges"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:899
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, "
+"pprint_addy(r.addy[3]) As st3, \n"
+"                array_to_string(r.street, ',') As cross_streets \n"
+"        FROM reverse_geocode(ST_GeomFromText('POINT(-71.093902 "
+"42.359446)',4269),true) As r;\n"
+"       \n"
+" result\n"
+" ------\n"
+"      st1                                  | st2 | st3 |               "
+"cross_streets\n"
+"-------------------------------------------+-----+-----"
+"+----------------------------------------------\n"
+" 67 Massachusetts Ave, Cambridge, MA 02139 |     |     | 67 - 127 "
+"Massachusetts Ave,32 - 88 Vassar St"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:901
+#, no-c-format
+msgid ""
+"Here we choose not to include the address ranges for the cross streets and "
+"picked a location really really close to a corner of 2 streets thus could be "
+"known by two different addresses."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:903
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, \n"
+"pprint_addy(r.addy[3]) As st3, array_to_string(r.street, ',') As cross_str\n"
+"FROM reverse_geocode(ST_GeomFromText('POINT(-71.06941 42.34225)',4269)) As "
+"r;\n"
+"\n"
+"result\n"
+"--------\n"
+"               st1               |               st2               | st3 | "
+"cross_str\n"
+"---------------------------------+---------------------------------+-----"
+"+------------------------\n"
+" 5 Bradford St, Boston, MA 02118 | 49 Waltham St, Boston, MA 02118 |     | "
+"Waltham St"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:905
+#, no-c-format
+msgid ""
+"For this one we reuse our geocoded example from <xref linkend=\"Geocode\"/> "
+"and we only want the primary address and at most 2 cross streets."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:906
+#, no-c-format
+msgid ""
+"SELECT actual_addr, lon, lat, pprint_addy((rg).addy[1]) As int_addr1, \n"
+"        (rg).street[1] As cross1, (rg).street[2] As cross2\n"
+"FROM (SELECT address As actual_addr, lon, lat,\n"
+"    reverse_geocode( ST_SetSRID(ST_Point(lon,lat),4326) ) As rg\n"
+"    FROM addresses_to_geocode WHERE rating > -1) As foo;\n"
+"\n"
+"                     actual_addr                     |    lon    |   lat    "
+"|                 int_addr1                 |     cross1      |   cross2   \n"
+"-----------------------------------------------------+-----------+----------"
+"+-------------------------------------------+-----------------+------------\n"
+" 529 Main Street, Boston MA, 02129                   | -71.07181 | 42.38359 "
+"| 527 Main St, Boston, MA 02129             | Medford St      | \n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | -71.09428 | 42.35988 "
+"| 77 Massachusetts Ave, Cambridge, MA 02139 | Vassar St       | \n"
+" 26 Capen Street, Medford, MA                        | -71.12377 | 42.41101 "
+"| 9 Edison Ave, Medford, MA 02155           | Capen St        | Tesla Ave\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | -71.12304 | 42.37328 "
+"| 3 University Rd, Cambridge, MA 02138      | Mount Auburn St | \n"
+" 950 Main Street, Worcester, MA 01610                | -71.82368 | 42.24956 "
+"| 3 Maywood St, Worcester, MA 01603         | Main St         | Maywood Pl"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:919
+#, no-c-format
+msgid "Topology_Load_Tiger"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:921
+#, no-c-format
+msgid ""
+"Loads a defined region of tiger data into a PostGIS Topology and "
+"transforming the tiger data to spatial reference of the topology and "
+"snapping to the precision tolerance of the topology."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:927
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Topology_Load_Tiger</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topo_name</parameter></paramdef> "
+"<paramdef><type>varchar </type> <parameter>region_type</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>region_id</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:939
+#, no-c-format
+msgid ""
+"Loads a defined region of tiger data into a PostGIS Topology. The faces, "
+"nodes and edges are transformed to the spatial reference system of the "
+"target topology and points are snapped to the tolerance of the target "
+"topology. The created faces, nodes, edges maintain the same ids as the "
+"original Tiger data faces, nodes, edges so that datasets can be in the "
+"future be more easily reconciled with tiger data. Returns summary details "
+"about the process."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:942
+#, no-c-format
+msgid ""
+"This would be useful for example for redistricting data where you require "
+"the newly formed polygons to follow the center lines of streets and for the "
+"resulting polygons not to overlap."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:944
+#, no-c-format
+msgid ""
+"This function relies on Tiger data as well as the installation of the "
+"PostGIS topology module. For more information, refer to <xref linkend="
+"\"Topology\"/> and <xref linkend=\"installation_configuration\"/>. If you "
+"have not loaded data covering the region of interest, then no topology "
+"records will be created. This function will also fail if you have not "
+"created a topology using the topology functions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:946
+#, no-c-format
+msgid ""
+"Most topology validation errors are a result of tolerance issues where after "
+"transformation the edges points don't quite line up or overlap. To remedy "
+"the situation you may want to increase or lower the precision if you get "
+"topology validation failures."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:948
+#, no-c-format
+msgid "Required arguments:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:951
+#, no-c-format
+msgid ""
+"<varname>topo_name</varname> The name of an existing PostGIS topology to "
+"load data into."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:954
+#, no-c-format
+msgid ""
+"<varname>region_type</varname> The type of bounding region. Currently only "
+"<varname>place</varname> and <varname>county</varname> are supported. Plan "
+"is to have several more. This is the table to look into to define the region "
+"bounds. e.g <varname>tiger.place</varname>, <varname>tiger.county</varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:957
+#, no-c-format
+msgid ""
+"<varname>region_id</varname> This is what TIGER calls the geoid. It is the "
+"unique identifier of the region in the table. For place it is the "
+"<varname>plcidfp</varname> column in <varname>tiger.place</varname>. For "
+"county it is the <varname>cntyidfp</varname> column in <varname>tiger."
+"county</varname>"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:966
+#, no-c-format
+msgid "Example: Boston, Massachusetts Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:967
+#, no-c-format
+msgid ""
+"Create a topology for Boston, Massachusetts in Mass State Plane Feet (2249) "
+"with tolerance 0.25 feet and then load in Boston city tiger faces, edges, "
+"nodes."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:969
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('topo_boston', 2249, 0.25);\n"
+"createtopology\n"
+"--------------\n"
+"   15\n"
+"-- 60,902 ms ~ 1 minute on windows 7 desktop running 9.1 (with 5 states "
+"tiger data loaded) \n"
+"SELECT tiger.topology_load_tiger('topo_boston', 'place', '2507000'); \n"
+"-- topology_loader_tiger --\n"
+"29722 edges holding in temporary. 11108 faces added. 1875 edges of faces "
+"added.  20576 nodes added.  \n"
+"19962 nodes contained in a face.  0 edge start end corrected.  31597 edges "
+"added. \n"
+" \n"
+"-- 41 ms --\n"
+"SELECT topology.TopologySummary('topo_boston');\n"
+" -- topologysummary--\n"
+"Topology topo_boston (15), SRID 2249, precision 0.25\n"
+"20576 nodes, 31597 edges, 11109 faces, 0 topogeoms in 0 layers\n"
+"\n"
+"-- 28,797 ms to validate yeh returned no errors --\n"
+"SELECT * FROM \n"
+"    topology.ValidateTopology('topo_boston'); \n"
+"    \n"
+"       error       |   id1    |    id2\n"
+"-------------------+----------+-----------"
+msgstr ""
+
+#. Tag: title
+#: extras_tigergeocoder.xml:973
+#, no-c-format
+msgid "Example: Suffolk, Massachusetts Topology"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:974
+#, no-c-format
+msgid ""
+"Create a topology for Suffolk, Massachusetts in Mass State Plane Meters "
+"(26986) with tolerance 0.25 meters and then load in Suffolk county tiger "
+"faces, edges, nodes."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:976
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);\n"
+"-- this took 56,275 ms ~ 1 minute on Windows 7 32-bit with 5 states of tiger "
+"loaded\n"
+"-- must have been warmed up after loading boston\n"
+"SELECT tiger.topology_load_tiger('topo_suffolk', 'county', '25025');  \n"
+"-- topology_loader_tiger --\n"
+" 36003 edges holding in temporary. 13518 faces added. 2172 edges of faces "
+"added. \n"
+" 24761 nodes added.  24075 nodes contained in a face.  0 edge start end "
+"corrected.  38175 edges added. \n"
+"-- 31 ms --\n"
+"SELECT topology.TopologySummary('topo_suffolk');\n"
+" -- topologysummary--\n"
+" Topology topo_suffolk (14), SRID 26986, precision 0.25\n"
+"24761 nodes, 38175 edges, 13519 faces, 0 topogeoms in 0 layers\n"
+"\n"
+"-- 33,606 ms to validate --\n"
+"SELECT * FROM \n"
+"    topology.ValidateTopology('topo_suffolk'); \n"
+"    \n"
+"       error       |   id1    |    id2\n"
+"-------------------+----------+-----------\n"
+" coincident nodes  | 81045651 |  81064553\n"
+" edge crosses node | 81045651 |  85737793\n"
+" edge crosses node | 81045651 |  85742215\n"
+" edge crosses node | 81045651 | 620628939\n"
+" edge crosses node | 81064553 |  85697815\n"
+" edge crosses node | 81064553 |  85728168\n"
+" edge crosses node | 81064553 |  85733413"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:980
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopoGeom\"/>, <xref linkend=\"TopologySummary\"/>, "
+"<xref linkend=\"ValidateTopology\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:986
+#, no-c-format
+msgid "Set_Geocode_Setting"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:988
+#, no-c-format
+msgid "Sets a setting that affects behavior of geocoder functions."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:993
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Set_Geocode_Setting</function></funcdef> "
+"<paramdef><type>text </type> <parameter> setting_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter> setting_value</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:1004
+#, no-c-format
+msgid ""
+"Sets value of specific setting stored in <varname>tiger.geocode_settings</"
+"varname> table. Settings allow you to toggle debugging of functions. Later "
+"plans will be to control rating with settings. Current list of settings are "
+"listed in <xref linkend=\"Get_Geocode_Setting\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:1013
+#, no-c-format
+msgid ""
+"If you run <xref linkend=\"Geocode\"/> when this function is true, the "
+"NOTICE log will output timing and queries."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:1014
+#, no-c-format
+msgid ""
+"SELECT set_geocode_setting('debug_geocode_address', 'true') As result;\n"
+"result\n"
+"---------\n"
+"true"
+msgstr ""
diff --git a/doc/po/pl/extras_topology.xml.po b/doc/po/pl/extras_topology.xml.po
new file mode 100644
index 0000000..b5518e9
--- /dev/null
+++ b/doc/po/pl/extras_topology.xml.po
@@ -0,0 +1,4706 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Jakub Bobrowski <jb at 5dstudio.pl>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-02 21:58+0000\n"
+"Last-Translator: Jakub Bobrowski <jb at 5dstudio.pl>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: extras_topology.xml:3
+#, no-c-format
+msgid "Topology"
+msgstr "Topologia"
+
+#. Tag: para
+#: extras_topology.xml:4
+#, no-c-format
+msgid ""
+"The PostGIS Topology types and functions are used to manage topological "
+"objects such as faces, edges and nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:5
+#, no-c-format
+msgid ""
+"Sandro Santilli's presentation at PostGIS Day Paris 2011 conference gives a "
+"good synopsis of PostGIS Topology and where it is headed <ulink url=\"http://"
+"strk.keybit.net/projects/postgis/Paris2011_TopologyWithPostGIS_2_0.pdf"
+"\">Topology with PostGIS 2.0 slide deck</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:6
+#, no-c-format
+msgid ""
+"Vincent Picavet provides a good synopsis and overview of what is Topology, "
+"how is it used, and various FOSS4G tools that support it in <ulink url="
+"\"http://2010.foss4g.org/presentations/3555.pdf\">State of the art of FOSS4G "
+"for topology and network analysis</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:7
+#, no-c-format
+msgid ""
+"An example of a topologically based GIS database is the <ulink url=\"http://"
+"www.census.gov/geo/www/tiger/overview.html\">US Census Topologically "
+"Integrated Geographic Encoding and Reference System (TIGER)</ulink> "
+"database. If you want to experiment with PostGIS topology and need some "
+"data, check out <xref linkend=\"Topology_Load_Tiger\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:8
+#, no-c-format
+msgid ""
+"The PostGIS topology module has existed in prior versions of PostGIS but was "
+"never part of the Official PostGIS documentation. In PostGIS 2.0.0 major "
+"cleanup is going on to remove use of all deprecated functions in it, fix "
+"known usability issues, better document the features and functions, add new "
+"functions, and enhance to closer conform to SQL-MM standards."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:10
+#, no-c-format
+msgid ""
+"Details of this project can be found at <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/UsersWikiPostgisTopology\">PostGIS Topology Wiki</ulink>"
+msgstr ""
+"Szczegóły tego projektu można znaleźć pod adresem <ulink url=\"http://trac."
+"osgeo.org/postgis/wiki/UsersWikiPostgisTopology\">PostGIS Topology Wiki</"
+"ulink>"
+
+#. Tag: para
+#: extras_topology.xml:11
+#, no-c-format
+msgid ""
+"All functions and tables associated with this module are installed in a "
+"schema called <varname>topology</varname>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:12
+#, no-c-format
+msgid ""
+"Functions that are defined in SQL/MM standard are prefixed with ST_ and "
+"functions specific to PostGIS are not prefixed."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:13
+#, no-c-format
+msgid ""
+"To build PostGIS 2.0 with topology support, compile with the --with-topology "
+"option as described in <xref linkend=\"postgis_installation\"/>. Some "
+"functions depend on GEOS 3.3+ so you should compile with GEOS 3.3+ to fully "
+"utilize the topology support."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:18
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by PostGIS Topology. "
+"Note we describe the casting behavior of these which is very important "
+"especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:23
+#, no-c-format
+msgid "Topology Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:27
+#, no-c-format
+msgid "getfaceedges_returntype"
+msgstr "getfaceedges_returntype"
+
+#. Tag: refpurpose
+#: extras_topology.xml:28
+#, no-c-format
+msgid ""
+"A composite type that consists of a sequence number and edge number. This is "
+"the return type for <varname>ST_GetFaceEdges</varname>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:31 extras_topology.xml:50 extras_topology.xml:99
+#: extras_topology.xml:138 extras_topology.xml:163 extras_topology.xml:240
+#: extras_topology.xml:287 extras_topology.xml:328 extras_topology.xml:367
+#: extras_topology.xml:404 extras_topology.xml:474 extras_topology.xml:522
+#: extras_topology.xml:570 extras_topology.xml:614 extras_topology.xml:662
+#: extras_topology.xml:708 extras_topology.xml:754 extras_topology.xml:809
+#: extras_topology.xml:855 extras_topology.xml:902 extras_topology.xml:959
+#: extras_topology.xml:1017 extras_topology.xml:1089 extras_topology.xml:1157
+#: extras_topology.xml:1223 extras_topology.xml:1278 extras_topology.xml:1326
+#: extras_topology.xml:1373 extras_topology.xml:1416 extras_topology.xml:1470
+#: extras_topology.xml:1564 extras_topology.xml:1659 extras_topology.xml:1701
+#: extras_topology.xml:1743 extras_topology.xml:1786 extras_topology.xml:1836
+#: extras_topology.xml:1880 extras_topology.xml:1932 extras_topology.xml:1990
+#: extras_topology.xml:2031 extras_topology.xml:2088 extras_topology.xml:2134
+#: extras_topology.xml:2206 extras_topology.xml:2260 extras_topology.xml:2331
+#: extras_topology.xml:2407 extras_topology.xml:2452 extras_topology.xml:2484
+#: extras_topology.xml:2522 extras_topology.xml:2570 extras_topology.xml:2665
+#: extras_topology.xml:2719 extras_topology.xml:2782 extras_topology.xml:2831
+#, no-c-format
+msgid "Description"
+msgstr "Opis"
+
+#. Tag: para
+#: extras_topology.xml:32
+#, no-c-format
+msgid ""
+"A composite type that consists of a sequence number and edge number. This is "
+"the return type for <varname>ST_GetFaceEdges</varname> function."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:35
+#, no-c-format
+msgid ""
+"<varname>sequence</varname> is an integer: Refers to a topology defined in "
+"the topology.topology table which defines the topology schema and srid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:38
+#, no-c-format
+msgid "<varname>edge</varname> is an integer: The identifier of an edge."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:46
+#, fuzzy, no-c-format
+msgid "TopoGeometry"
+msgstr "topogeometry"
+
+#. Tag: refpurpose
+#: extras_topology.xml:47
+#, no-c-format
+msgid "A composite type representing a topologically defined geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:51
+#, no-c-format
+msgid ""
+"A composite type that refers to a topology geometry in a specific topology "
+"layer, having a specific type and a specific id. The elements of a "
+"TopoGeometry are the properties: topology_id, layer_id, id integer, type "
+"integer."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:54
+#, no-c-format
+msgid ""
+"<varname>topology_id</varname> is an integer: Refers to a topology defined "
+"in the topology.topology table which defines the topology schema and srid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:57
+#, no-c-format
+msgid ""
+"<varname>layer_id</varname> is an integer: The layer_id in the layers table "
+"that the TopoGeometry belongs to. The combination of topology_id, layer_id "
+"provides a unique reference in the topology.layers table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:60
+#, no-c-format
+msgid ""
+"<varname>id</varname> is an integer: The id is the autogenerated sequence "
+"number that uniquely defines the topogeometry in the respective topology "
+"layer."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:63
+#, no-c-format
+msgid ""
+"<varname>type</varname> integer between 1 - 4 that defines the geometry "
+"type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:69
+#, no-c-format
+msgid "Casting Behavior"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:70
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:75
+#, no-c-format
+msgid "Cast To"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:76
+#, no-c-format
+msgid "Behavior"
+msgstr ""
+
+#. Tag: entry
+#: extras_topology.xml:79
+#, no-c-format
+msgid "geometry"
+msgstr "geometry"
+
+#. Tag: entry
+#: extras_topology.xml:80
+#, no-c-format
+msgid "automatic"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:149
+#: extras_topology.xml:173 extras_topology.xml:265 extras_topology.xml:305
+#: extras_topology.xml:345 extras_topology.xml:382 extras_topology.xml:423
+#: extras_topology.xml:499 extras_topology.xml:548 extras_topology.xml:587
+#: extras_topology.xml:636 extras_topology.xml:677 extras_topology.xml:723
+#: extras_topology.xml:769 extras_topology.xml:830 extras_topology.xml:877
+#: extras_topology.xml:933 extras_topology.xml:990 extras_topology.xml:1062
+#: extras_topology.xml:1130 extras_topology.xml:1197 extras_topology.xml:1246
+#: extras_topology.xml:1295 extras_topology.xml:1345 extras_topology.xml:1393
+#: extras_topology.xml:1442 extras_topology.xml:1488 extras_topology.xml:1542
+#: extras_topology.xml:1586 extras_topology.xml:1636 extras_topology.xml:1674
+#: extras_topology.xml:1716 extras_topology.xml:1758 extras_topology.xml:1809
+#: extras_topology.xml:1854 extras_topology.xml:1904 extras_topology.xml:1957
+#: extras_topology.xml:2006 extras_topology.xml:2065 extras_topology.xml:2108
+#: extras_topology.xml:2183 extras_topology.xml:2218 extras_topology.xml:2290
+#: extras_topology.xml:2380 extras_topology.xml:2421 extras_topology.xml:2471
+#: extras_topology.xml:2541 extras_topology.xml:2588 extras_topology.xml:2697
+#: extras_topology.xml:2746 extras_topology.xml:2807 extras_topology.xml:2857
+#, no-c-format
+msgid "See Also"
+msgstr "Zobacz także"
+
+#. Tag: refname
+#: extras_topology.xml:95
+#, no-c-format
+msgid "validatetopology_returntype"
+msgstr "validatetopology_returntype"
+
+#. Tag: refpurpose
+#: extras_topology.xml:96
+#, no-c-format
+msgid ""
+"A composite type that consists of an error message and id1 and id2 to denote "
+"location of error. This is the return type for <varname>ValidateTopology</"
+"varname>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:100
+#, no-c-format
+msgid ""
+"A composite type that consists of an error message and two integers. The "
+"<xref linkend=\"ValidateTopology\"/> function returns a set of these to "
+"denote validation errors and the id1 and id2 to denote the ids of the "
+"topology objects involved in the error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:103
+#, no-c-format
+msgid "<varname>error</varname> is varchar: Denotes type of error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:104
+#, no-c-format
+msgid ""
+"Current error descriptors are: coincident nodes, edge crosses node, edge not "
+"simple, edge end node geometry mis-match, edge start node geometry mismatch, "
+"face overlaps face,face within face,"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:107
+#, no-c-format
+msgid ""
+"<varname>id1</varname> is an integer: Denotes identifier of edge / face / "
+"nodes in error."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:110
+#, no-c-format
+msgid ""
+"<varname>id2</varname> is an integer: For errors that involve 2 objects "
+"denotes the secondary edge / or node"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:125
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL domains installed by PostGIS Topology. "
+"Domains can be used like object types as return objects of functions or "
+"table columns. The distinction between a domain and a type is that a domain "
+"is an existing type with a check constraint bound to it."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:130
+#, no-c-format
+msgid "Topology Domains"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:134
+#, no-c-format
+msgid "TopoElement"
+msgstr "TopoElement"
+
+#. Tag: refpurpose
+#: extras_topology.xml:135
+#, no-c-format
+msgid ""
+"An array of 2 integers generally used to identify a TopoGeometry component."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:139
+#, no-c-format
+msgid ""
+"An array of 2 integers used to represent the id (first element) and type "
+"(second element) of a topology primitive or the id (first element) and layer "
+"(second element) of a TopoGeometry. Sets of such pairs are used to define "
+"TopoGeometry objects (either simple or hierarchical)."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:142 extras_topology.xml:167 extras_topology.xml:258
+#: extras_topology.xml:298 extras_topology.xml:339 extras_topology.xml:377
+#: extras_topology.xml:417 extras_topology.xml:488 extras_topology.xml:538
+#: extras_topology.xml:581 extras_topology.xml:630 extras_topology.xml:823
+#: extras_topology.xml:870 extras_topology.xml:926 extras_topology.xml:983
+#: extras_topology.xml:1055 extras_topology.xml:1123 extras_topology.xml:1191
+#: extras_topology.xml:1240 extras_topology.xml:1387 extras_topology.xml:1436
+#: extras_topology.xml:1482 extras_topology.xml:1534 extras_topology.xml:1579
+#: extras_topology.xml:1628 extras_topology.xml:1668 extras_topology.xml:1710
+#: extras_topology.xml:1752 extras_topology.xml:1802 extras_topology.xml:1848
+#: extras_topology.xml:2059 extras_topology.xml:2102 extras_topology.xml:2177
+#: extras_topology.xml:2371 extras_topology.xml:2417 extras_topology.xml:2465
+#: extras_topology.xml:2534 extras_topology.xml:2581 extras_topology.xml:2688
+#: extras_topology.xml:2751 extras_topology.xml:2800 extras_topology.xml:2850
+#, no-c-format
+msgid "Examples"
+msgstr "Przykłady"
+
+#. Tag: programlisting
+#: extras_topology.xml:143
+#, fuzzy, no-c-format
+msgid ""
+"SELECT te[1] AS id, te[2] AS type FROM\n"
+"( SELECT ARRAY[1,2]::topology.topoelement AS te ) f;\n"
+" id | type\n"
+"----+------\n"
+"  1 |    2"
+msgstr ""
+"SELECT ARRAY[1,2]::topology.topoelement;\n"
+"  te\n"
+"-------\n"
+" {1,2}"
+
+#. Tag: programlisting
+#: extras_topology.xml:144
+#, no-c-format
+msgid ""
+"SELECT ARRAY[1,2]::topology.topoelement;\n"
+"  te\n"
+"-------\n"
+" {1,2}"
+msgstr ""
+"SELECT ARRAY[1,2]::topology.topoelement;\n"
+"  te\n"
+"-------\n"
+" {1,2}"
+
+#. Tag: programlisting
+#: extras_topology.xml:145
+#, no-c-format
+msgid ""
+"--Example of what happens when you try to case a 3 element array to "
+"topoelement\n"
+"-- NOTE: topoement has to be a 2 element array so fails dimension check\n"
+"SELECT ARRAY[1,2,3]::topology.topoelement;\n"
+"ERROR:  value for domain topology.topoelement violates check constraint "
+"\"dimensions\""
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:150 extras_topology.xml:2422 extras_topology.xml:2542
+#, no-c-format
+msgid ", <xref linkend=\"topoelementarray\"/>"
+msgstr ", <xref linkend=\"topoelementarray\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:159
+#, no-c-format
+msgid "TopoElementArray"
+msgstr "TopoElementArray"
+
+#. Tag: refpurpose
+#: extras_topology.xml:160
+#, no-c-format
+msgid "An array of TopoElement objects"
+msgstr "Tablica obiektów TopoElement"
+
+#. Tag: para
+#: extras_topology.xml:164
+#, no-c-format
+msgid ""
+"An array of 1 or more TopoElement objects, generally used to pass around "
+"components of TopoGeometry objects."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:168
+#, no-c-format
+msgid ""
+"SELECT '{{1,2},{4,3}}'::topology.topoelementarray As tea;\n"
+"  tea\n"
+"-------\n"
+"{{1,2},{4,3}}\n"
+"\n"
+"-- more verbose equivalent --\n"
+"SELECT ARRAY[ARRAY[1,2], ARRAY[4,3]]::topology.topoelementarray As tea;\n"
+"\n"
+"  tea\n"
+"-------\n"
+"{{1,2},{4,3}}\n"
+"\n"
+"--using the array agg function packaged with topology --\n"
+"SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
+"  FROM generate_series(1,4) As e CROSS JOIN generate_series(1,3) As t;\n"
+"  tea\n"
+"--------------------------------------------------------------------------\n"
+"{{1,1},{1,2},{1,3},{2,1},{2,2},{2,3},{3,1},{3,2},{3,3},{4,1},{4,2},{4,3}}"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:169
+#, no-c-format
+msgid ""
+"SELECT '{{1,2,4},{3,4,5}}'::topology.topoelementarray As tea;\n"
+"ERROR:  value for domain topology.topoelementarray violates check constraint "
+"\"dimensions\""
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:174
+#, no-c-format
+msgid ""
+", <xref linkend=\"GetTopoGeomElementArray\"/>, <xref linkend="
+"\"TopoElementArray_Agg\"/>"
+msgstr ""
+", <xref linkend=\"GetTopoGeomElementArray\"/>, <xref linkend="
+"\"TopoElementArray_Agg\"/>"
+
+#. Tag: para
+#: extras_topology.xml:186
+#, no-c-format
+msgid ""
+"This section lists the Topology functions for building new Topology schemas, "
+"validating topologies, and managing TopoGeometry Columns"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:189
+#, no-c-format
+msgid "Topology and TopoGeometry Management"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:192
+#, no-c-format
+msgid "AddTopoGeometryColumn"
+msgstr "AddTopoGeometryColumn"
+
+#. Tag: refpurpose
+#: extras_topology.xml:193
+#, no-c-format
+msgid ""
+"Adds a topogeometry column to an existing table, registers this new column "
+"as a layer in topology.layer and returns the new layer_id."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:197
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>child_layer</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>feature_type</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>child_layer</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:242
+#, no-c-format
+msgid ""
+"Each TopoGeometry object belongs to a specific Layer of a specific Topology. "
+"Before creating a TopoGeometry object you need to create its TopologyLayer. "
+"A Topology Layer is an association of a feature-table with the topology. It "
+"also contain type and hierarchy information. We create a layer using the "
+"AddTopoGeometryColumn() function:"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:244
+#, no-c-format
+msgid ""
+"This function will both add the requested column to the table and add a "
+"record to the topology.layer table with all the given info."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:245
+#, no-c-format
+msgid ""
+"If you don't specify [child_layer] (or set it to NULL) this layer would "
+"contain Basic TopoGeometries (composed by primitive topology elements). "
+"Otherwise this layer will contain hierarchical TopoGeometries (composed by "
+"TopoGeometries from the child_layer)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:248
+#, no-c-format
+msgid ""
+"Once the layer is created (it's id is returned by the AddTopoGeometryColumn "
+"function) you're ready to construct TopoGeometry objects in it"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:249
+#, no-c-format
+msgid ""
+"Valid <varname>feature_type</varname>s are: POINT, LINE, POLYGON, COLLECTION"
+msgstr ""
+"Prawidłowymi <varname>feature_type</varname> są: POINT, LINE, POLYGON, "
+"COLLECTION"
+
+#. Tag: para
+#: extras_topology.xml:252 extras_topology.xml:293 extras_topology.xml:334
+#: extras_topology.xml:410 extras_topology.xml:483 extras_topology.xml:575
+#: extras_topology.xml:817 extras_topology.xml:864 extras_topology.xml:1233
+#: extras_topology.xml:1381 extras_topology.xml:1430 extras_topology.xml:1476
+#: extras_topology.xml:1663 extras_topology.xml:1747 extras_topology.xml:1842
+#: extras_topology.xml:2268 extras_topology.xml:2529 extras_topology.xml:2576
+#: extras_topology.xml:2791 extras_topology.xml:2841
+#, no-c-format
+msgid "Availability: 1.?"
+msgstr "Dostępność: 1.?"
+
+#. Tag: programlisting
+#: extras_topology.xml:259
+#, no-c-format
+msgid ""
+"-- Note for this example we created our new table in the ma_topo schema \n"
+"-- though we could have created it in a different schema -- in which case "
+"topology_name and schema_name would be different \n"
+"CREATE SCHEMA ma;\n"
+"CREATE TABLE ma.parcels(gid serial, parcel_id varchar(20) PRIMARY KEY, "
+"address text);\n"
+"SELECT topology.AddTopoGeometryColumn('ma_topo', 'ma', 'parcels', 'topo', "
+"'POLYGON');"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:260
+#, no-c-format
+msgid ""
+"CREATE SCHEMA ri;\n"
+"CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);\n"
+"SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', "
+"'LINE');"
+msgstr ""
+"CREATE SCHEMA ri;\n"
+"CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);\n"
+"SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', "
+"'LINE');"
+
+#. Tag: para
+#: extras_topology.xml:267
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopoGeom\"/>"
+msgstr ", <xref linkend=\"CreateTopoGeom\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:272
+#, no-c-format
+msgid "DropTopology"
+msgstr "DropTopology"
+
+#. Tag: refpurpose
+#: extras_topology.xml:274
+#, no-c-format
+msgid ""
+"Use with caution: Drops a topology schema and deletes its reference from "
+"topology.topology table and references to tables in that schema from the "
+"geometry_columns table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:279
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>DropTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>integer <function>DropTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:289
+#, no-c-format
+msgid ""
+"Drops a topology schema and deletes its reference from topology.topology "
+"table and references to tables in that schema from the geometry_columns "
+"table. This function should be USED WITH CAUTION, as it could destroy data "
+"you care about. If the schema does not exist, it just removes reference "
+"entries the named schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:299
+#, no-c-format
+msgid ""
+"Cascade drops the ma_topo schema and removes all references to it in "
+"topology.topology and geometry_columns."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:300
+#, no-c-format
+msgid "SELECT topology.DropTopology('ma_topo');"
+msgstr "SELECT topology.DropTopology('ma_topo');"
+
+#. Tag: refname
+#: extras_topology.xml:311
+#, no-c-format
+msgid "DropTopoGeometryColumn"
+msgstr "DropTopoGeometryColumn"
+
+#. Tag: refpurpose
+#: extras_topology.xml:313
+#, no-c-format
+msgid ""
+"Drops the topogeometry column from the table named <varname>table_name</"
+"varname> in schema <varname>schema_name</varname> and unregisters the "
+"columns from topology.layer table."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:318
+#, no-c-format
+msgid ""
+"<funcdef>text <function>DropTopoGeometryColumn</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>DropTopoGeometryColumn</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:330
+#, no-c-format
+msgid ""
+"Drops the topogeometry column from the table named <varname>table_name</"
+"varname> in schema <varname>schema_name</varname> and unregisters the "
+"columns from topology.layer table. Returns summary of drop status. NOTE: it "
+"first sets all values to NULL before dropping to bypass referential "
+"integrity checks."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:340
+#, no-c-format
+msgid ""
+"SELECT topology.DropTopoGeometryColumn('ma_topo', 'parcel_topo', 'topo');"
+msgstr ""
+"SELECT topology.DropTopoGeometryColumn('ma_topo', 'parcel_topo', 'topo');"
+
+#. Tag: refname
+#: extras_topology.xml:352
+#, no-c-format
+msgid "TopologySummary"
+msgstr "TopologySummary"
+
+#. Tag: refpurpose
+#: extras_topology.xml:354
+#, no-c-format
+msgid ""
+"Takes a topology name and provides summary totals of types of objects in "
+"topology"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:359
+#, no-c-format
+msgid ""
+"<funcdef>text <function>TopologySummary</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>TopologySummary</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:369
+#, no-c-format
+msgid ""
+"Takes a topology name and provides summary totals of types of objects in "
+"topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:372 extras_topology.xml:533 extras_topology.xml:671
+#: extras_topology.xml:717 extras_topology.xml:763 extras_topology.xml:1705
+#: extras_topology.xml:2001 extras_topology.xml:2054 extras_topology.xml:2172
+#: extras_topology.xml:2412 extras_topology.xml:2683
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr "Dostępność: 2.0.0"
+
+#. Tag: programlisting
+#: extras_topology.xml:378
+#, no-c-format
+msgid ""
+"SELECT topology.topologysummary('city_data');\n"
+"                    topologysummary                     \n"
+"--------------------------------------------------------\n"
+" Topology city_data (329), SRID 4326, precision: 0\n"
+" 22 nodes, 24 edges, 10 faces, 29 topogeoms in 5 layers\n"
+" Layer 1, type Polygonal (3), 9 topogeoms\n"
+"  Deploy: features.land_parcels.feature\n"
+" Layer 2, type Puntal (1), 8 topogeoms\n"
+"  Deploy: features.traffic_signs.feature\n"
+" Layer 3, type Lineal (2), 8 topogeoms\n"
+"  Deploy: features.city_streets.feature\n"
+" Layer 4, type Polygonal (3), 3 topogeoms\n"
+"  Hierarchy level 1, child layer 1\n"
+"  Deploy: features.big_parcels.feature\n"
+" Layer 5, type Puntal (1), 1 topogeoms\n"
+"  Hierarchy level 1, child layer 2\n"
+"  Deploy: features.big_signs.feature"
+msgstr ""
+"SELECT topology.topologysummary('city_data');\n"
+"                    topologysummary                     \n"
+"--------------------------------------------------------\n"
+" Topology city_data (329), SRID 4326, precision: 0\n"
+" 22 nodes, 24 edges, 10 faces, 29 topogeoms in 5 layers\n"
+" Layer 1, type Polygonal (3), 9 topogeoms\n"
+"  Deploy: features.land_parcels.feature\n"
+" Layer 2, type Puntal (1), 8 topogeoms\n"
+"  Deploy: features.traffic_signs.feature\n"
+" Layer 3, type Lineal (2), 8 topogeoms\n"
+"  Deploy: features.city_streets.feature\n"
+" Layer 4, type Polygonal (3), 3 topogeoms\n"
+"  Hierarchy level 1, child layer 1\n"
+"  Deploy: features.big_parcels.feature\n"
+" Layer 5, type Puntal (1), 1 topogeoms\n"
+"  Hierarchy level 1, child layer 2\n"
+"  Deploy: features.big_signs.feature"
+
+#. Tag: refname
+#: extras_topology.xml:389
+#, no-c-format
+msgid "ValidateTopology"
+msgstr "ValidateTopology"
+
+#. Tag: refpurpose
+#: extras_topology.xml:391
+#, no-c-format
+msgid ""
+"Returns a set of validatetopology_returntype objects detailing issues with "
+"topology"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:396
+#, no-c-format
+msgid ""
+"<funcdef>setof validatetopology_returntype <function>ValidateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef>"
+msgstr ""
+"<funcdef>setof validatetopology_returntype <function>ValidateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:406
+#, no-c-format
+msgid ""
+"Returns a set of <xref linkend=\"validatetopology_returntype\"/> objects "
+"detailing issues with topology. Refer to <xref linkend="
+"\"validatetopology_returntype\"/> for listing of possible errors."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:412
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 more efficient edge crossing detection and fixes for false "
+"positives that were existent in prior versions."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:418
+#, no-c-format
+msgid ""
+"SELECT * FROM  topology.ValidateTopology('ma_topo');\n"
+"      error        | id1 | id2\n"
+"-------------------+-----+-----\n"
+"face without edges |   0 |"
+msgstr ""
+"SELECT * FROM  topology.ValidateTopology('ma_topo');\n"
+"      error        | id1 | id2\n"
+"-------------------+-----+-----\n"
+"face without edges |   0 |"
+
+#. Tag: para
+#: extras_topology.xml:424
+#, no-c-format
+msgid ", <xref linkend=\"Topology_Load_Tiger\"/>"
+msgstr ", <xref linkend=\"Topology_Load_Tiger\"/>"
+
+#. Tag: para
+#: extras_topology.xml:432
+#, no-c-format
+msgid "This section covers the topology functions for creating new topologies."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:435
+#, no-c-format
+msgid "Topology Constructors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:439
+#, no-c-format
+msgid "CreateTopology"
+msgstr "CreateTopology"
+
+#. Tag: refpurpose
+#: extras_topology.xml:440
+#, no-c-format
+msgid ""
+"Creates a new topology schema and registers this new schema in the topology."
+"topology table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:444
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>CreateTopology</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>integer <function>CreateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>hasz</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>integer <function>CreateTopology</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>integer <function>CreateTopology</"
+"function></funcdef> <paramdef><type>varchar </type> "
+"<parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CreateTopology</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>topology_schema_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>tolerance</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>hasz</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:476
+#, no-c-format
+msgid ""
+"Creates a new schema with name <varname>topology_name</varname> consisting "
+"of tables (<varname>edge_data</varname>,<varname>face</varname>,"
+"<varname>node</varname>, <varname>relation</varname> and registers this new "
+"topology in the topology.topology table. It returns the id of the topology "
+"in the topology table. The srid is the spatial reference identified as "
+"defined in spatial_ref_sys table for that topology. Topologies must be "
+"uniquely named. The tolerance is measured in the units of the spatial "
+"reference system. If the tolerance is not specified defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:480
+#, no-c-format
+msgid ""
+"This is similar to the SQL/MM <xref linkend=\"ST_InitTopoGeo\"/> but a bit "
+"more functional. <varname>hasz</varname> defaults to false if not specified."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:489
+#, no-c-format
+msgid ""
+"This example creates a new schema called ma_topo that will store edges, "
+"faces, and relations in Massachusetts State Plane meters. The tolerance "
+"represents 1/2 meter since the spatial reference system is a meter based "
+"spatial reference system"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:491
+#, no-c-format
+msgid "SELECT topology.CreateTopology('ma_topo',26986, 0.5);"
+msgstr "SELECT topology.CreateTopology('ma_topo',26986, 0.5);"
+
+#. Tag: para
+#: extras_topology.xml:493
+#, no-c-format
+msgid "Create Rhode Island topology in State Plane ft"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:494
+#, no-c-format
+msgid ""
+"SELECT topology.CreateTopology('ri_topo',3438) As topoid;\n"
+"topoid\n"
+"------\n"
+"2"
+msgstr ""
+"SELECT topology.CreateTopology('ri_topo',3438) As topoid;\n"
+"topoid\n"
+"------\n"
+"2"
+
+#. Tag: para
+#: extras_topology.xml:501
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_InitTopoGeo\"/>, <xref linkend=\"Topology_Load_Tiger\"/>"
+msgstr ""
+", <xref linkend=\"ST_InitTopoGeo\"/>, <xref linkend=\"Topology_Load_Tiger\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:507
+#, no-c-format
+msgid "CopyTopology"
+msgstr "CopyTopology"
+
+#. Tag: refpurpose
+#: extras_topology.xml:508
+#, no-c-format
+msgid ""
+"Makes a copy of a topology structure (nodes, edges, faces, layers and "
+"TopoGeometries)."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:513
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>CopyTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>existing_topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>new_name</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>CopyTopology</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>existing_topology_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>new_name</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:524
+#, no-c-format
+msgid ""
+"Creates a new topology with name <varname>new_topology_name</varname> and "
+"SRID and precision taken from <varname>existing_topology_name</varname>, "
+"copies all nodes, edges and faces in there, copies layers and their "
+"TopoGeometries too."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:528
+#, no-c-format
+msgid ""
+"The new rows in topology.layer will contain synthesized values for "
+"schema_name, table_name and feature_column. This is because the TopoGeometry "
+"will only exist as a definition but won't be available in any user-level "
+"table yet."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:539
+#, no-c-format
+msgid "This example makes a backup of a topology called ma_topo"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:542
+#, no-c-format
+msgid "SELECT topology.CopyTopology('ma_topo', 'ma_topo_bakup');"
+msgstr "SELECT topology.CopyTopology('ma_topo', 'ma_topo_bakup');"
+
+#. Tag: para
+#: extras_topology.xml:550 extras_topology.xml:2066
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopology\"/>"
+msgstr ", <xref linkend=\"CreateTopology\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:556
+#, no-c-format
+msgid "ST_InitTopoGeo"
+msgstr "ST_InitTopoGeo"
+
+#. Tag: refpurpose
+#: extras_topology.xml:557
+#, no-c-format
+msgid ""
+"Creates a new topology schema and registers this new schema in the topology."
+"topology table and details summary of process."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:562
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_InitTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_InitTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:572
+#, no-c-format
+msgid ""
+"This is an SQL-MM equivalent of CreateTopology but lacks the spatial "
+"reference and tolerance options of CreateTopology and outputs a text "
+"description of creation instead of topology id."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:576
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.17"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:582
+#, no-c-format
+msgid ""
+"SELECT topology.ST_InitTopoGeo('topo_schema_to_create') AS topocreation;\n"
+"                      astopocreation\n"
+"------------------------------------------------------------\n"
+" Topology-Geometry 'topo_schema_to_create' (id:7) created."
+msgstr ""
+"SELECT topology.ST_InitTopoGeo('topo_schema_to_create') AS topocreation;\n"
+"                      astopocreation\n"
+"------------------------------------------------------------\n"
+" Topology-Geometry 'topo_schema_to_create' (id:7) created."
+
+#. Tag: refname
+#: extras_topology.xml:596
+#, no-c-format
+msgid "ST_CreateTopoGeo"
+msgstr "ST_CreateTopoGeo"
+
+#. Tag: refpurpose
+#: extras_topology.xml:598
+#, no-c-format
+msgid ""
+"<refpurpose>Adds a collection of geometries to a given empty topology and "
+"returns a message detailing success.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:605
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_CreateTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acollection</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_CreateTopoGeo</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acollection</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:616
+#, no-c-format
+msgid ""
+"<para>Adds a collection of geometries to a given empty topology and returns "
+"a message detailing success.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:620
+#, no-c-format
+msgid "Useful for populating an empty topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:624 extras_topology.xml:920 extras_topology.xml:977
+#: extras_topology.xml:1049 extras_topology.xml:1117 extras_topology.xml:1288
+#: extras_topology.xml:1338 extras_topology.xml:1796 extras_topology.xml:1898
+#: extras_topology.xml:1952 extras_topology.xml:2367
+#, no-c-format
+msgid "Availability: 2.0"
+msgstr "Dostępność: 2.0"
+
+#. Tag: para
+#: extras_topology.xml:625
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details -- X.3.18"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:631
+#, no-c-format
+msgid ""
+"-- Populate topology --\n"
+"SELECT topology.ST_CreateTopoGeo('ri_topo', \n"
+" ST_GeomFromText('MULTILINESTRING((384744 236928,384750 236923,384769 "
+"236911,384799 236895,384811 236890,384833 236884,\n"
+"  384844 236882,384866 236881,384879 236883,384954 236898,385087 "
+"236932,385117 236938,\n"
+"  385167 236938,385203 236941,385224 236946,385233 236950,385241 "
+"236956,385254 236971,\n"
+"  385260 236979,385268 236999,385273 237018,385273 237037,385271 "
+"237047,385267 237057,\n"
+"  385225 237125,385210 237144,385192 237161,385167 237192,385162 "
+"237202,385159 237214,\n"
+"  385159 237227,385162 237241,385166 237256,385196 237324,385209 "
+"237345,385234 237375,\n"
+"  385237 237383,385238 237399,385236 237407,385227 237419,385213 "
+"237430,385193 237439,\n"
+"  385174 237451,385170 237455,385169 237460,385171 237475,385181 "
+"237503,385190 237521,\n"
+"  385200 237533,385206 237538,385213 237541,385221 237542,385235 "
+"237540,385242 237541,\n"
+"  385249 237544,385260 237555,385270 237570,385289 237584,385292 "
+"237589,385291 237596,385284 237630))',3438) \n"
+"  );\n"
+"\n"
+"      st_createtopogeo\n"
+"----------------------------\n"
+" Topology ri_topo populated\n"
+" \n"
+" \n"
+"-- create tables and topo geometries --\n"
+"CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);\n"
+"\n"
+"SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', "
+"'LINE');"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:637
+#, no-c-format
+msgid ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>"
+msgstr ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:643
+#, no-c-format
+msgid "TopoGeo_AddPoint"
+msgstr "TopoGeo_AddPoint"
+
+#. Tag: refpurpose
+#: extras_topology.xml:645
+#, no-c-format
+msgid ""
+"Adds a point to an existing topology using a tolerance and possibly "
+"splitting an existing edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:652
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>TopoGeo_AddPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>TopoGeo_AddPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:664
+#, no-c-format
+msgid ""
+"Adds a point to an existing topology and return its identifier. The given "
+"point will snap to existing nodes or edges within given tolerance. An "
+"existing edge may be split by the snapped point."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:678
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddNode\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+msgstr ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddNode\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:689
+#, no-c-format
+msgid "TopoGeo_AddLineString"
+msgstr "TopoGeo_AddLineString"
+
+#. Tag: refpurpose
+#: extras_topology.xml:691
+#, no-c-format
+msgid ""
+"Adds a linestring to an existing topology using a tolerance and possibly "
+"splitting existing edges/faces. Returns edge identifiers"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:698
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>SETOF integer <function>TopoGeo_AddLineString</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>TopoGeo_AddLineString</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:710
+#, no-c-format
+msgid ""
+"Adds a linestring to an existing topology and return a set of edge "
+"identifiers forming it up. The given line will snap to existing nodes or "
+"edges within given tolerance. Existing edges and faces may be split by the "
+"line."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:724
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddEdge\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+msgstr ""
+", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddEdge\"/>, <xref "
+"linkend=\"CreateTopology\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:735
+#, no-c-format
+msgid "TopoGeo_AddPolygon"
+msgstr "TopoGeo_AddPolygon"
+
+#. Tag: refpurpose
+#: extras_topology.xml:737
+#, no-c-format
+msgid ""
+"Adds a polygon to an existing topology using a tolerance and possibly "
+"splitting existing edges/faces."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:744
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoly</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:756
+#, no-c-format
+msgid ""
+"Adds a polygon to an existing topology and return a set of face identifiers "
+"forming it up. The boundary of the given polygon will snap to existing nodes "
+"or edges within given tolerance. Existing edges and faces may be split by "
+"the boundary of the new polygon."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:770
+#, no-c-format
+msgid ""
+", <xref linkend=\"TopoGeo_AddLineString\"/>, <xref linkend=\"AddFace\"/>, "
+"<xref linkend=\"CreateTopology\"/>"
+msgstr ""
+", <xref linkend=\"TopoGeo_AddLineString\"/>, <xref linkend=\"AddFace\"/>, "
+"<xref linkend=\"CreateTopology\"/>"
+
+#. Tag: para
+#: extras_topology.xml:785
+#, no-c-format
+msgid ""
+"This section covers topology functions for adding, moving, deleting, and "
+"splitting edges, faces, and nodes. All of these functions are defined by ISO "
+"SQL/MM."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:788
+#, no-c-format
+msgid "Topology Editors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:792
+#, no-c-format
+msgid "ST_AddIsoNode"
+msgstr "ST_AddIsoNode"
+
+#. Tag: refpurpose
+#: extras_topology.xml:794
+#, no-c-format
+msgid ""
+"Adds an isolated node to a face in a topology and returns the nodeid of the "
+"new node. If face is null, the node is still created."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:799
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_AddIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:811
+#, no-c-format
+msgid ""
+"Adds an isolated node with point location <varname>apoint</varname> to an "
+"existing face with faceid <varname>aface</varname> to a topology "
+"<varname>atopology</varname> and returns the nodeid of the new node."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:812
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology, the <varname>apoint</varname> is not a point geometry, the "
+"point is null, or the point intersects an existing edge (even at the "
+"boundaries) then an exception is thrown. If the point already exists as a "
+"node, an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:814
+#, no-c-format
+msgid ""
+"If <varname>aface</varname> is not null and the <varname>apoint</varname> is "
+"not within the face, then an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:818
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X+1.3.1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:831
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>, "
+"<xref linkend=\"ST_Intersects\"/>"
+msgstr ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>, "
+"<xref linkend=\"ST_Intersects\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:837
+#, no-c-format
+msgid "ST_AddIsoEdge"
+msgstr "ST_AddIsoEdge"
+
+#. Tag: refpurpose
+#: extras_topology.xml:839
+#, no-c-format
+msgid ""
+"<refpurpose>Adds an isolated edge defined by geometry <varname>alinestring</"
+"varname> to a topology connecting two existing isolated nodes "
+"<varname>anode</varname> and <varname>anothernode</varname> and returns the "
+"edge id of the new edge.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:844
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddIsoEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>alinestring</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_AddIsoEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>alinestring</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:857
+#, no-c-format
+msgid ""
+"<para>Adds an isolated edge defined by geometry <varname>alinestring</"
+"varname> to a topology connecting two existing isolated nodes "
+"<varname>anode</varname> and <varname>anothernode</varname> and returns the "
+"edge id of the new edge.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:858
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the <varname>alinestring</varname> "
+"geometry is not the same as the topology, any of the input arguments are "
+"null, or the nodes are contained in more than one face, or the nodes are "
+"start or end nodes of an existing edge, then an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:860
+#, no-c-format
+msgid ""
+"If the <varname>alinestring</varname> is not within the face of the face the "
+"<varname>anode</varname> and <varname>anothernode</varname> belong to, then "
+"an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:861
+#, no-c-format
+msgid ""
+"If the <varname>anode</varname> and <varname>anothernode</varname> are not "
+"the start and end points of the <varname>alinestring</varname> then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:865
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.4"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:878
+#, no-c-format
+msgid ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_Within\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:884
+#, no-c-format
+msgid "ST_AddEdgeNewFaces"
+msgstr "ST_AddEdgeNewFaces"
+
+#. Tag: refpurpose
+#: extras_topology.xml:886
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, delete the original "
+"face and replace it with two new faces."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:891
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddEdgeNewFaces</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_AddEdgeNewFaces</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:904
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, delete the original "
+"face and replace it with two new faces. Returns the id of the newly added "
+"edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:910 extras_topology.xml:968 extras_topology.xml:1031
+#: extras_topology.xml:1099
+#, no-c-format
+msgid "Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:914 extras_topology.xml:972
+#, no-c-format
+msgid ""
+"If any arguments are null, the given nodes are unknown (must already exist "
+"in the <varname>node</varname> table of the topology schema) , the "
+"<varname>acurve</varname> is not a <varname>LINESTRING</varname>, the "
+"<varname>anode</varname> and <varname>anothernode</varname> are not the "
+"start and endpoints of <varname>acurve</varname> then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:917 extras_topology.xml:975 extras_topology.xml:1170
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the <varname>acurve</varname> "
+"geometry is not the same as the topology an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:921
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.12"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:941
+#, no-c-format
+msgid "ST_AddEdgeModFace"
+msgstr "ST_AddEdgeModFace"
+
+#. Tag: refpurpose
+#: extras_topology.xml:943
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, modify the original "
+"face and add a new face."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:948
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_AddEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_AddEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anothernode</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:961
+#, no-c-format
+msgid ""
+"Add a new edge and, if in doing so it splits a face, modify the original "
+"face and add a new face. Unless the face being split is the Universal Face, "
+"the new face will be on the right side of the newly added edge. Returns the "
+"id of the newly added edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:978
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.13"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:998
+#, no-c-format
+msgid "ST_RemEdgeNewFace"
+msgstr "ST_RemEdgeNewFace"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1000
+#, no-c-format
+msgid ""
+"<refpurpose>Removes an edge and, if the removed edge separated two faces, "
+"delete the original faces and replace them with a new face.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1008
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_RemEdgeNewFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_RemEdgeNewFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1019
+#, no-c-format
+msgid ""
+"<para>Removes an edge and, if the removed edge separated two faces, delete "
+"the original faces and replace them with a new face.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1024
+#, no-c-format
+msgid ""
+"Returns the id of a newly created face or NULL, if no new face is created. "
+"No new face is created when the removed edge is dangling or isolated or "
+"confined with the universe face (possibly making the universe flood into the "
+"face on the other side)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1035 extras_topology.xml:1103
+#, no-c-format
+msgid ""
+"Refuses to remove an edge partecipating in the definition of an existing "
+"TopoGeometry. Refuses to heal two faces if any TopoGeometry is defined by "
+"only one of them (and not the other)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1042 extras_topology.xml:1110
+#, no-c-format
+msgid ""
+"If any arguments are null, the given edge is unknown (must already exist in "
+"the <varname>edge</varname> table of the topology schema), the topology name "
+"is invalid then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1050
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.14"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1070
+#, no-c-format
+msgid "ST_RemEdgeModFace"
+msgstr "ST_RemEdgeModFace"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1072
+#, no-c-format
+msgid ""
+"Removes an edge and, if the removed edge separated two faces, delete one of "
+"the them and modify the other to take the space of both."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1080
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_RemEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_RemEdgeModFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1091
+#, no-c-format
+msgid ""
+"Removes an edge and, if the removed edge separated two faces, delete one of "
+"the them and modify the other to take the space of both. Preferentially "
+"keeps the face on the right, to be symmetric with ST_AddEdgeModFace also "
+"keeping it. Returns the id of the face remaining in place of the removed "
+"edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1118
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.15"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1138
+#, no-c-format
+msgid "ST_ChangeEdgeGeom"
+msgstr "ST_ChangeEdgeGeom"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1140
+#, no-c-format
+msgid ""
+"<refpurpose>Changes the shape of an edge without affecting the topology "
+"structure.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1147
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_ChangeEdgeGeom</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acurve</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_ChangeEdgeGeom</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>acurve</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1159
+#, no-c-format
+msgid ""
+"<para>Changes the shape of an edge without affecting the topology structure."
+"</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1162
+#, no-c-format
+msgid ""
+"If any arguments are null, the given edge does not exist in the "
+"<varname>node</varname> table of the topology schema, the <varname>acurve</"
+"varname> is not a <varname>LINESTRING</varname>, the <varname>anode</"
+"varname> and <varname>anothernode</varname> are not the start and endpoints "
+"of <varname>acurve</varname> or the modification would change the underlying "
+"topology then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1171
+#, no-c-format
+msgid ""
+"If the new <varname>acurve</varname> is not simple, then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1173
+#, no-c-format
+msgid ""
+"If moving the edge from old to new position would hit an obstacle then an "
+"error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1179
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr "Dostępność: 1.1.0"
+
+#. Tag: para
+#: extras_topology.xml:1182
+#, no-c-format
+msgid "Enhanced: 2.0.0 adds topological consistency enforcement"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1186
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details X.3.6"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1192
+#, no-c-format
+msgid ""
+"SELECT topology.ST_ChangeEdgeGeom('ma_topo', 1,  \n"
+"                ST_GeomFromText('LINESTRING(227591.9 893900.4,227622.6 "
+"893844.3,227641.6 893816.6, 227704.5 893778.5)', 26986) );\n"
+" ----\n"
+" Edge 1 changed"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1206
+#, no-c-format
+msgid "ST_ModEdgeSplit"
+msgstr "ST_ModEdgeSplit"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1208
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, modifying the "
+"original edge and adding a new edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1213
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_ModEdgeSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1225
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, modifying the "
+"original edge and adding a new edge. Updates all existing joined edges and "
+"relationships accordingly. Returns the identifier of the newly added node."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1234
+#, no-c-format
+msgid "Changed: 2.0 - In prior versions, this was misnamed ST_ModEdgesSplit"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1235 extras_topology.xml:1289 extras_topology.xml:1339
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.9"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1241
+#, no-c-format
+msgid ""
+"-- Add an edge --\n"
+" SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227592 "
+"893910, 227600 893910)', 26986) ) As edgeid;\n"
+" \n"
+"-- edgeid-\n"
+"3\n"
+"\n"
+"\n"
+"-- Split the edge  --\n"
+"SELECT topology.ST_ModEdgeSplit('ma_topo',  3, "
+"ST_SetSRID(ST_Point(227594,893910),26986)  ) As node_id;\n"
+"        node_id\n"
+"-------------------------\n"
+"7"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1247
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ModEdgeHeal\"/>, <xref linkend=\"ST_NewEdgeHeal\"/>, "
+"<xref linkend=\"AddEdge\"/>"
+msgstr ""
+", <xref linkend=\"ST_ModEdgeHeal\"/>, <xref linkend=\"ST_NewEdgeHeal\"/>, "
+"<xref linkend=\"AddEdge\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:1258
+#, no-c-format
+msgid "ST_ModEdgeHeal"
+msgstr "ST_ModEdgeHeal"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1260
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, modifying the first "
+"edge and deleting the second edge. Returns the id of the deleted node."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1268
+#, no-c-format
+msgid ""
+"<funcdef>int <function>ST_ModEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+msgstr ""
+"<funcdef>int <function>ST_ModEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1280
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, modifying the first "
+"edge and deleting the second edge. Returns the id of the deleted node. "
+"Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1305
+#, no-c-format
+msgid "ST_NewEdgeHeal"
+msgstr "ST_NewEdgeHeal"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1307
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, deleting both edges, "
+"and replacing them with an edge whose direction is the same as the first "
+"edge provided."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1316
+#, no-c-format
+msgid ""
+"<funcdef>int <function>ST_NewEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+msgstr ""
+"<funcdef>int <function>ST_NewEdgeHeal</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1328
+#, no-c-format
+msgid ""
+"Heal two edges by deleting the node connecting them, deleting both edges, "
+"and replacing them with an edge whose direction is the same as the first "
+"edge provided. Returns the id of the new edge replacing the healed ones. "
+"Updates all existing joined edges and relationships accordingly."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1356
+#, no-c-format
+msgid "ST_MoveIsoNode"
+msgstr "ST_MoveIsoNode"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1358
+#, no-c-format
+msgid ""
+"Moves an isolated node in a topology from one point to another. If new "
+"<varname>apoint</varname> geometry exists as a node an error is thrown. "
+"REturns description of move."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1363
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_MoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_MoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1375
+#, no-c-format
+msgid ""
+"Moves an isolated node in a topology from one point to another. If new "
+"<varname>apoint</varname> geometry exists as a node an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1376
+#, no-c-format
+msgid ""
+"If any arguments are null, the <varname>apoint</varname> is not a point, the "
+"existing node is not isolated (is a start or end point of an existing edge), "
+"new node location intersects an existing edge (even at the end points) then "
+"an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1377
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology an exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1382
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1388
+#, no-c-format
+msgid ""
+"-- Add an isolated node with no face  --\n"
+"SELECT topology.ST_AddIsoNode('ma_topo',  NULL, "
+"ST_GeomFromText('POINT(227579 893916)', 26986) ) As nodeid;\n"
+" nodeid\n"
+"--------\n"
+"      7\n"
+"-- Move the new node --\n"
+"SELECT topology.ST_MoveIsoNode('ma_topo', 7,  "
+"ST_GeomFromText('POINT(227579.5 893916.5)', 26986) ) As descrip; \n"
+"                      descrip\n"
+"----------------------------------------------------\n"
+"Isolated Node 7 moved to location 227579.5,893916.5"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1399
+#, no-c-format
+msgid "ST_NewEdgesSplit"
+msgstr "ST_NewEdgesSplit"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1401
+#, no-c-format
+msgid ""
+"Split an edge by creating a new node along an existing edge, deleting the "
+"original edge and replacing it with two new edges. Returns the id of the new "
+"node created that joins the new edges."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1406
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1418
+#, no-c-format
+msgid ""
+"Split an edge with edge id <varname>anedge</varname> by creating a new node "
+"with point location <varname>apoint</varname> along current edge, deleting "
+"the original edge and replacing it with two new edges. Returns the id of the "
+"new node created that joins the new edges. Updates all existing joined edges "
+"and relationships accordingly."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1426
+#, no-c-format
+msgid ""
+"If the spatial reference system (srid) of the point geometry is not the same "
+"as the topology, the <varname>apoint</varname> is not a point geometry, the "
+"point is null, the point already exists as a node, the edge does not "
+"correspond to an existing edge or the point is not within the edge then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1431
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.8"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1437
+#, no-c-format
+msgid ""
+"-- Add an edge  --\n"
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575 "
+"893917,227592 893900)', 26986) ) As edgeid;\n"
+"-- result-\n"
+"edgeid\n"
+"------\n"
+"        2\n"
+"-- Split the new edge --\n"
+"SELECT topology.ST_NewEdgesSplit('ma_topo', 2,  "
+"ST_GeomFromText('POINT(227578.5 893913.5)', 26986) ) As newnodeid; \n"
+" newnodeid\n"
+"---------\n"
+"       6"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1454
+#, no-c-format
+msgid "ST_RemoveIsoNode"
+msgstr "ST_RemoveIsoNode"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1456
+#, no-c-format
+msgid ""
+"<refpurpose>Removes an isolated node and returns description of action. If "
+"the node is not isolated (is start or end of an edge), then an exception is "
+"thrown.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1461
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1472
+#, no-c-format
+msgid ""
+"<para>Removes an isolated node and returns description of action. If the "
+"node is not isolated (is start or end of an edge), then an exception is "
+"thrown.</para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1477
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X+1.3.3"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1483
+#, no-c-format
+msgid ""
+"-- Add an isolated node with no face  --\n"
+"SELECT topology.ST_RemoveIsoNode('ma_topo',  7 ) As result;\n"
+"         result\n"
+"-------------------------\n"
+" Isolated node 7 removed"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1495
+#, no-c-format
+msgid "Topology Accessors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1498
+#, no-c-format
+msgid "GetEdgeByPoint"
+msgstr "GetEdgeByPoint"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1500
+#, no-c-format
+msgid "Find the edge-id of an edge that intersects a given point"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1505
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetEdgeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>GetEdgeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+
+#. Tag: title
+#: extras_topology.xml:1516
+#, no-c-format
+msgid "Retrieve the id of an edge that intersects a Point"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1518
+#, no-c-format
+msgid ""
+"The function returns an integer (id-edge) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 then the point has to intersect the edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1519 extras_topology.xml:1567
+#, no-c-format
+msgid ""
+"If the point is the location of a node, then an exception is thrown. To "
+"avoid this run the GetNodeByPoint function."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1520
+#, no-c-format
+msgid "If the point doesn't intersect an edge, returns 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1521
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and there is more than one edge near the point then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1526
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function use ST_Intersects otherwise uses ST_DWithin."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1529 extras_topology.xml:1576 extras_topology.xml:1623
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr "Dostępność: 2.0.0 - wymaga GEOS >= 3.3.0."
+
+#. Tag: para
+#: extras_topology.xml:1535 extras_topology.xml:1629
+#, no-c-format
+msgid "These examples use edges we created in <xref linkend=\"AddEdge\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1536
+#, no-c-format
+msgid ""
+"SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology."
+"GetEdgeByPoint('ma_topo',geom,0) As withnotol\n"
+"FROM ST_GeomFromEWKT('SRID=26986;POINT(227622.6 893843)') As geom;\n"
+" with1mtol | withnotol\n"
+"-----------+-----------\n"
+"         2 |         0"
+msgstr ""
+"SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology."
+"GetEdgeByPoint('ma_topo',geom,0) As withnotol\n"
+"FROM ST_GeomFromEWKT('SRID=26986;POINT(227622.6 893843)') As geom;\n"
+" with1mtol | withnotol\n"
+"-----------+-----------\n"
+"         2 |         0"
+
+#. Tag: programlisting
+#: extras_topology.xml:1537
+#, no-c-format
+msgid ""
+"SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As nearnode\n"
+"FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+"\n"
+"-- get error --\n"
+"ERROR:  Two or more edges found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1544
+#, no-c-format
+msgid ", <xref linkend=\"GetNodeByPoint\"/>"
+msgstr ", <xref linkend=\"GetNodeByPoint\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:1550
+#, no-c-format
+msgid "GetFaceByPoint"
+msgstr "GetFaceByPoint"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1551
+#, no-c-format
+msgid "Find the face-id of a face that intersects a given point"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1555
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetFaceByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>GetFaceByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1565
+#, no-c-format
+msgid "Retrieve the id of a face that intersects a Point."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1566
+#, no-c-format
+msgid ""
+"The function returns an integer (id-face) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 then the point has to intersect the face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1568
+#, no-c-format
+msgid "If the point doesn't intersect a face, returns 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1569
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and there is more than one face near the point then an "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1573
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function uses ST_Intersects otherwise uses ST_DWithin."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1580
+#, no-c-format
+msgid "These examples use edges faces created in <xref linkend=\"AddFace\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1581
+#, no-c-format
+msgid ""
+"SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology."
+"GetFaceByPoint('ma_topo',geom,0) As withnotol\n"
+"        FROM ST_GeomFromEWKT('POINT(234604.6 899382.0)') As geom;\n"
+"        \n"
+"         with1mtol | withnotol\n"
+"        -----------+-----------\n"
+"                         1 |         0"
+msgstr ""
+"SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology."
+"GetFaceByPoint('ma_topo',geom,0) As withnotol\n"
+"        FROM ST_GeomFromEWKT('POINT(234604.6 899382.0)') As geom;\n"
+"        \n"
+"         with1mtol | withnotol\n"
+"        -----------+-----------\n"
+"                         1 |         0"
+
+#. Tag: programlisting
+#: extras_topology.xml:1582
+#, no-c-format
+msgid ""
+"SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode\n"
+"        FROM ST_GeomFromEWKT('POINT(227591.9 893900.4)') As geom;\n"
+"        \n"
+"-- get error --\n"
+"ERROR:  Two or more faces found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1587
+#, no-c-format
+msgid ""
+", <xref linkend=\"GetNodeByPoint\"/>, <xref linkend=\"GetEdgeByPoint\"/>"
+msgstr ""
+", <xref linkend=\"GetNodeByPoint\"/>, <xref linkend=\"GetEdgeByPoint\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:1593
+#, no-c-format
+msgid "GetNodeByPoint"
+msgstr "GetNodeByPoint"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1595
+#, no-c-format
+msgid "Find the id of a node at a point location"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1600
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetNodeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>GetNodeByPoint</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
+
+#. Tag: title
+#: extras_topology.xml:1611
+#, no-c-format
+msgid "Retrieve the id of a node at a point location"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1613
+#, no-c-format
+msgid ""
+"The function return an integer (id-node) given a topology, a POINT and a "
+"tolerance. If tolerance = 0 mean exactly intersection otherwise retrieve the "
+"node from an interval."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1614
+#, no-c-format
+msgid "If there isn't a node at the point, it return 0 (zero)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1615
+#, no-c-format
+msgid ""
+"If use tolerance > 0 and near the point there are more than one node it "
+"throw an exception."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1620
+#, no-c-format
+msgid ""
+"If tolerance = 0, the function use ST_Intersects otherwise will use "
+"ST_DWithin."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1630
+#, no-c-format
+msgid ""
+"SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode \n"
+" FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+"  nearnode\n"
+"----------\n"
+"        2"
+msgstr ""
+"SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode \n"
+" FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+"  nearnode\n"
+"----------\n"
+"        2"
+
+#. Tag: programlisting
+#: extras_topology.xml:1631
+#, no-c-format
+msgid ""
+"SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance\n"
+" FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;\n"
+" \n"
+" ----get error--\n"
+" ERROR:  Two or more nodes found"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1638
+#, no-c-format
+msgid ", <xref linkend=\"GetEdgeByPoint\"/>"
+msgstr ", <xref linkend=\"GetEdgeByPoint\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:1644
+#, no-c-format
+msgid "GetTopologyID"
+msgstr "GetTopologyID"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1646
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the id of a topology in the topology.topology table "
+"given the name of the topology.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1651 extras_topology.xml:1693
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>GetTopologyID</function></funcdef> "
+"<paramdef><type>varchar</type> <parameter>toponame</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>GetTopologyID</function></funcdef> "
+"<paramdef><type>varchar</type> <parameter>toponame</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1661
+#, no-c-format
+msgid ""
+"<para>Returns the id of a topology in the topology.topology table given the "
+"name of the topology.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1669
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologyID('ma_topo') As topo_id;\n"
+" topo_id\n"
+"---------\n"
+"       1"
+msgstr ""
+"SELECT topology.GetTopologyID('ma_topo') As topo_id;\n"
+" topo_id\n"
+"---------\n"
+"       1"
+
+#. Tag: para
+#: extras_topology.xml:1675
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologySRID\"/>"
+msgstr ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologySRID\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:1686
+#, no-c-format
+msgid "GetTopologySRID"
+msgstr "GetTopologySRID"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1688
+#, no-c-format
+msgid ""
+"Returns the SRID of a topology in the topology.topology table given the name "
+"of the topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1703
+#, no-c-format
+msgid ""
+"Returns the spatial reference id of a topology in the topology.topology "
+"table given the name of the topology."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1711
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologySRID('ma_topo') As SRID;\n"
+" SRID\n"
+"-------\n"
+"  4326"
+msgstr ""
+"SELECT topology.GetTopologySRID('ma_topo') As SRID;\n"
+" SRID\n"
+"-------\n"
+"  4326"
+
+#. Tag: para
+#: extras_topology.xml:1717
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologyID\"/>"
+msgstr ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
+"<xref linkend=\"GetTopologyID\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:1728
+#, no-c-format
+msgid "GetTopologyName"
+msgstr "GetTopologyName"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1730
+#, no-c-format
+msgid "Returns the name of a topology (schema) given the id of the topology."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1735
+#, no-c-format
+msgid ""
+"<funcdef>varchar <function>GetTopologyName</function></funcdef> "
+"<paramdef><type>integer</type> <parameter>topology_id</parameter></paramdef>"
+msgstr ""
+"<funcdef>varchar <function>GetTopologyName</function></funcdef> "
+"<paramdef><type>integer</type> <parameter>topology_id</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1745
+#, no-c-format
+msgid ""
+"Returns the topology name (schema) of a topology from the topology.topology "
+"table given the topology id of the topology."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1753
+#, no-c-format
+msgid ""
+"SELECT topology.GetTopologyName(1) As topo_name;\n"
+" topo_name\n"
+"-----------\n"
+" ma_topo"
+msgstr ""
+"SELECT topology.GetTopologyName(1) As topo_name;\n"
+" topo_name\n"
+"-----------\n"
+" ma_topo"
+
+#. Tag: para
+#: extras_topology.xml:1759
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyID\"/>, <xref "
+"linkend=\"GetTopologySRID\"/>"
+msgstr ""
+", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyID\"/>, <xref "
+"linkend=\"GetTopologySRID\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:1770
+#, no-c-format
+msgid "ST_GetFaceEdges"
+msgstr "ST_GetFaceEdges"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1772
+#, no-c-format
+msgid "Returns a set of ordered edges that bound <varname>aface</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1777
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>ST_GetFaceEdges</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>aface</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>getfaceedges_returntype <function>ST_GetFaceEdges</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>aface</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1788
+#, no-c-format
+msgid ""
+"Returns a set of ordered edges that bound <varname>aface</varname>. Each "
+"output consists of a sequence and edgeid. Sequence numbers start with value "
+"1."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1790
+#, no-c-format
+msgid ""
+"Enumeration of each ring edges start from the edge with smallest identifier. "
+"Order of edges follows a left-hand-rule (bound face is on the left of each "
+"directed edge)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1797
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.5"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1803
+#, no-c-format
+msgid ""
+"-- Returns the edges bounding face 1\n"
+"SELECT (topology.ST_GetFaceEdges('tt', 1)).*;\n"
+"-- result --\n"
+" sequence | edge\n"
+"----------+------\n"
+"        1 |   -4\n"
+"        2 |    5\n"
+"        3 |    7\n"
+"        4 |   -6\n"
+"        5 |    1\n"
+"        6 |    2\n"
+"        7 |    3\n"
+"(7 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1804
+#, no-c-format
+msgid ""
+"-- Returns the sequenc, edge id\n"
+"-- , and geometry of the edges that bound face 1\n"
+"-- If you just need geom and seq, can use ST_GetFaceGeometry\n"
+"SELECT t.seq, t.edge, geom\n"
+"FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge)\n"
+"        INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1810
+#, no-c-format
+msgid ", <xref linkend=\"AddFace\"/>, <xref linkend=\"ST_GetFaceGeometry\"/>"
+msgstr ", <xref linkend=\"AddFace\"/>, <xref linkend=\"ST_GetFaceGeometry\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:1820
+#, no-c-format
+msgid "ST_GetFaceGeometry"
+msgstr "ST_GetFaceGeometry"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1822
+#, no-c-format
+msgid "Returns the polygon in the given topology with the specified face id."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1827
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1838
+#, no-c-format
+msgid ""
+"Returns the polygon in the given topology with the specified face id. Builds "
+"the polygon from the edges making up the face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1843
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.16"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:1849
+#, no-c-format
+msgid ""
+"-- Returns the wkt of the polygon added with AddFace\n"
+"SELECT ST_AsText(topology.ST_GetFaceGeometry('ma_topo', 1)) As facegeomwkt;\n"
+"-- result --\n"
+"               facegeomwkt\n"
+"\n"
+"--------------------------------------------------------------------------------\n"
+" POLYGON((234776.9 899563.7,234896.5 899456.7,234914 899436.4,234946.6 "
+"899356.9,\n"
+"234872.5 899328.7,234891 899285.4,234992.5 899145,234890.6 899069,\n"
+"234755.2 899255.4,234612.7 899379.4,234776.9 899563.7))"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1861
+#, no-c-format
+msgid "GetRingEdges"
+msgstr "GetRingEdges"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1863
+#, no-c-format
+msgid "Returns an ordered set of edges forming a ring with the given edge ."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1870
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>GetRingEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aring</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_edges=null</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>getfaceedges_returntype <function>GetRingEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aring</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>max_edges=null</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1882
+#, no-c-format
+msgid ""
+"Returns an ordered set of edges forming a ring with the given edge. Each "
+"output consists of a sequence and a signed edge id. Sequence numbers start "
+"with value 1. A negative edge identifier means that the given edge is taken "
+"backward. You can pass a negative edge id to start walking backward."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1890
+#, no-c-format
+msgid ""
+"If <varname>max_edges</varname> is not null no more than those records are "
+"returned by that function. This is meant to be a safety parameter when "
+"dealing with possibly invalid topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1905
+#, no-c-format
+msgid ", <xref linkend=\"GetNodeEdges\"/>"
+msgstr ", <xref linkend=\"GetNodeEdges\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:1914
+#, no-c-format
+msgid "GetNodeEdges"
+msgstr "GetNodeEdges"
+
+#. Tag: refpurpose
+#: extras_topology.xml:1916
+#, no-c-format
+msgid "Returns an ordered set of edges incident to the given node."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1923
+#, no-c-format
+msgid ""
+"<funcdef>getfaceedges_returntype <function>GetNodeEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+msgstr ""
+"<funcdef>getfaceedges_returntype <function>GetNodeEdges</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1934
+#, no-c-format
+msgid ""
+"Returns an ordered set of edges incident to the given node. Each output "
+"consists of a sequence and a signed edge id. Sequence numbers start with "
+"value 1. A positive edge starts at the given node. A negative edge ends into "
+"the given node. Closed edges will appear twice (with both signs). Order is "
+"clockwise starting from northbound."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1945
+#, no-c-format
+msgid ""
+"This function computes ordering rather than deriving from metadata and is "
+"thus usable to build edge ring linking."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1958
+#, no-c-format
+msgid ", <xref linkend=\"ST_Azimuth\"/>"
+msgstr ", <xref linkend=\"ST_Azimuth\"/>"
+
+#. Tag: para
+#: extras_topology.xml:1971
+#, no-c-format
+msgid ""
+"This section covers the functions for processing topologies in non-standard "
+"ways."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:1974
+#, no-c-format
+msgid "Topology Processing"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:1977
+#, no-c-format
+msgid "Polygonize"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:1978
+#, no-c-format
+msgid "Find and register all faces defined by topology edges"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:1982
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Polygonize</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef>"
+msgstr ""
+"<funcdef>text <function>Polygonize</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:1992
+#, no-c-format
+msgid "Register all faces that can be built out a topology edge primitives."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1993
+#, no-c-format
+msgid "The target topology is assumed to contain no self-intersecting edges."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1994
+#, no-c-format
+msgid ""
+"Already known faces are recognized, so it is safe to call Polygonize "
+"multiple times on the same topology."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:1995 extras_topology.xml:2148
+#, no-c-format
+msgid ""
+"This function does not use nor set the next_left_edge and next_right_edge "
+"fields of the edge table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2007
+#, no-c-format
+msgid ", <xref linkend=\"ST_Polygonize\"/>"
+msgstr ", <xref linkend=\"ST_Polygonize\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:2013
+#, no-c-format
+msgid "AddNode"
+msgstr "AddNode"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2015
+#, no-c-format
+msgid ""
+"Adds a point node to the node table in the specified topology schema and "
+"returns the nodeid of new node. If point already exists as node, the "
+"existing nodeid is returned."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2020
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allowEdgeSplitting=false</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>computeContainingFace=false</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>AddNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allowEdgeSplitting=false</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>computeContainingFace=false</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2033
+#, no-c-format
+msgid ""
+"Adds a point node to the node table in the specified topology schema. The "
+"<xref linkend=\"AddEdge\"/> function automatically adds start and end points "
+"of an edge when called so not necessary to explicitly add nodes of an edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2040
+#, no-c-format
+msgid ""
+"If any edge crossing the node is found either an exception is raised or the "
+"edge is splitted, depending on the <varname>allowEdgeSplitting</varname> "
+"parameter value."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2046
+#, no-c-format
+msgid ""
+"If <varname>computeContainingFace</varname> is true a newly added node would "
+"get the correct containing face computed."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2051
+#, no-c-format
+msgid ""
+"If the <varname>apoint</varname> geometry already exists as a node, the node "
+"is not added but the existing nodeid is returned."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2060
+#, no-c-format
+msgid ""
+"SELECT topology.AddNode('ma_topo', ST_GeomFromText('POINT(227641.6 "
+"893816.5)', 26986) ) As nodeid;\n"
+"-- result --\n"
+"nodeid\n"
+"--------\n"
+" 4"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2072
+#, no-c-format
+msgid "AddEdge"
+msgstr "AddEdge"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2074
+#, no-c-format
+msgid ""
+"Adds a linestring edge to the edge table and associated start and end points "
+"to the point nodes table of the specified topology schema using the "
+"specified linestring geometry and returns the edgeid of the new (or "
+"existing) edge."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2079
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>AddEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2090
+#, no-c-format
+msgid ""
+"Adds an edge to the edge table and associated nodes to the nodes table of "
+"the specified <varname>toponame</varname> schema using the specified "
+"linestring geometry and returns the edgeid of the new or existing record. "
+"The newly added edge has \"universe\" face on both sides and links to itself."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2092
+#, no-c-format
+msgid ""
+"If the <varname>aline</varname> geometry crosses, overlaps, contains or is "
+"contained by an existing linestring edge, then an error is thrown and the "
+"edge is not added."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2093
+#, no-c-format
+msgid ""
+"The geometry of <varname>aline</varname> must have the same <varname>srid</"
+"varname> as defined for the topology otherwise an invalid spatial reference "
+"sys error will be thrown."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2097
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr "Dostępność: 2.0.0 wymaga GEOS >= 3.3.0."
+
+#. Tag: programlisting
+#: extras_topology.xml:2103
+#, no-c-format
+msgid ""
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 "
+"893917.2,227591.9 893900.4)', 26986) ) As edgeid;\n"
+"-- result-\n"
+"edgeid\n"
+"--------\n"
+" 1\n"
+"                                \n"
+"SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.9 "
+"893900.4,227622.6 893844.2,227641.6 893816.5,\n"
+" 227704.5 893778.5)', 26986) ) As edgeid;\n"
+"-- result --\n"
+"edgeid\n"
+"--------\n"
+" 2\n"
+" \n"
+" SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.2 "
+"893900, 227591.9 893900.4,\n"
+"  227704.5 893778.5)', 26986) ) As edgeid;\n"
+" -- gives error --\n"
+" ERROR:  Edge intersects (not on endpoints) with existing edge 1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2109
+#, no-c-format
+msgid ", <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ", <xref linkend=\"spatial_ref_sys\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:2115
+#, no-c-format
+msgid "AddFace"
+msgstr "AddFace"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2117
+#, no-c-format
+msgid ""
+"<refpurpose>Registers a face primitive to a topology and get it's identifier."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2124
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>AddFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apolygon</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>force_new=false</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>AddFace</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apolygon</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>force_new=false</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2136
+#, no-c-format
+msgid ""
+"<para>Registers a face primitive to a topology and get it's identifier.</"
+"para>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2140
+#, no-c-format
+msgid ""
+"For a newly added face, the edges forming its boundaries and the ones "
+"contained in the face will be updated to have correct values in the "
+"left_face and right_face fields. Isolated nodes contained in the face will "
+"also be updated to have a correct containing_face field value."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2152
+#, no-c-format
+msgid ""
+"The target topology is assumed to be valid (containing no self-intersecting "
+"edges). An exception is raised if: The polygon boundary is not fully defined "
+"by existing edges or the polygon overlaps an existing face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2154
+#, no-c-format
+msgid ""
+"If the <varname>apolygon</varname> geometry already exists as a face, then: "
+"if <varname>force_new</varname> is false (the default) the face id of the "
+"existing face is returned; if <varname>force_new</varname> is true a new id "
+"will be assigned to the newly registered face."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2162
+#, no-c-format
+msgid ""
+"When a new registration of an existing face is performed (force_new=true), "
+"no action will be taken to resolve dangling references to the existing face "
+"in the edge, node an relation tables, nor will the MBR field of the existing "
+"face record be updated. It is up to the caller to deal with that."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2169
+#, no-c-format
+msgid ""
+"The <varname>apolygon</varname> geometry must have the same <varname>srid</"
+"varname> as defined for the topology otherwise an invalid spatial reference "
+"sys error will be thrown."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2178
+#, no-c-format
+msgid ""
+"-- first add the edges we use generate_series as an iterator (the below \n"
+"-- will only work for polygons with < 10000 points because of our max in "
+"gs) \n"
+"SELECT topology.AddEdge('ma_topo', ST_MakeLine(ST_PointN(geom,i), "
+"ST_PointN(geom, i + 1) )) As edgeid\n"
+"    FROM (SELECT  ST_NPoints(geom) AS npt, geom\n"
+"            FROM \n"
+"                (SELECT ST_Boundary(ST_GeomFromText('POLYGON((234896.5 "
+"899456.7,234914 899436.4,234946.6 899356.9,234872.5 899328.7,\n"
+"                234891 899285.4,234992.5 899145, 234890.6 899069,234755.2 "
+"899255.4,\n"
+"                234612.7 899379.4,234776.9 899563.7,234896.5 899456.7))', "
+"26986) )  As geom\n"
+"            )  As geoms) As facen CROSS JOIN generate_series(1,10000) As i\n"
+"         WHERE i < npt;\n"
+"-- result --\n"
+" edgeid\n"
+"--------\n"
+"      3\n"
+"      4\n"
+"      5\n"
+"      6\n"
+"      7\n"
+"      8\n"
+"      9\n"
+"     10\n"
+"     11\n"
+"     12\n"
+"(10 rows)\n"
+"-- then add the face -\n"
+"                                \n"
+"SELECT topology.AddFace('ma_topo', \n"
+"    ST_GeomFromText('POLYGON((234896.5 899456.7,234914 899436.4,234946.6 "
+"899356.9,234872.5 899328.7,\n"
+"    234891 899285.4,234992.5 899145, 234890.6 899069,234755.2 899255.4,\n"
+"    234612.7 899379.4,234776.9 899563.7,234896.5 899456.7))', 26986) ) As "
+"faceid;\n"
+"-- result --\n"
+"faceid\n"
+"--------\n"
+" 1"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2184
+#, no-c-format
+msgid ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"spatial_ref_sys\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:2190
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2191
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2197
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>TopoGeometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2207
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm on each component edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2210
+#, no-c-format
+msgid "The returned geometry may be non-simple or non-valid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2211
+#, no-c-format
+msgid "Splitting component edges may help retaining simplicity/validity."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2213
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2214 extras_topology.xml:2740
+#, fuzzy, no-c-format
+msgid "Availability: 2.1.0"
+msgstr "Dostępność: 2.0.0"
+
+#. Tag: para
+#: extras_topology.xml:2219
+#, fuzzy, no-c-format
+msgid ""
+"Geometry <xref linkend=\"ST_Simplify\"/>, <xref linkend=\"ST_IsSimple\"/>, "
+"<xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_ModEdgeSplit\"/>"
+msgstr ""
+", <xref linkend=\"ST_ModEdgeHeal\"/>, <xref linkend=\"ST_NewEdgeHeal\"/>, "
+"<xref linkend=\"AddEdge\"/>"
+
+#. Tag: para
+#: extras_topology.xml:2229
+#, no-c-format
+msgid ""
+"This section covers the topology functions for creating new topogeometries."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2232
+#, no-c-format
+msgid "TopoGeometry Constructors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2235
+#, no-c-format
+msgid "CreateTopoGeom"
+msgstr "CreateTopoGeom"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2237
+#, no-c-format
+msgid ""
+"Creates a new topo geometry object from topo element array - tg_type: 1:"
+"[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2241
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>tg_type</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>topoelementarray</type> <parameter>tg_objs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>CreateTopoGeom</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>tg_type</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>layer_id</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>tg_type</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>topoelementarray</type> <parameter>tg_objs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>CreateTopoGeom</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>tg_type</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>layer_id</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:2262
+#, no-c-format
+msgid ""
+"Creates a topogeometry object for layer denoted by layer_id and registers it "
+"in the relations table in the <varname>toponame</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2263
+#, no-c-format
+msgid ""
+"tg_type is an integer: 1:[multi]point (punctal), 2:[multi]line (lineal), 3:"
+"[multi]poly (areal), 4:collection. layer_id is the layer id in the topology."
+"layer table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2264
+#, no-c-format
+msgid ""
+"punctal layers are formed from set of nodes, lineal layers are formed from a "
+"set of edges, areal layers are formed from a set of faces, and collections "
+"can be formed from a mixture of nodes, edges, and faces."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2266
+#, no-c-format
+msgid ""
+"Omitting the array of components generates an empty TopoGeometry object."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2273
+#, no-c-format
+msgid "Examples: Form from existing edges"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2274
+#, no-c-format
+msgid ""
+"Create a topogeom in ri_topo schema for layer 2 (our ri_roads), of type (2) "
+"LINE, for the first edge (we loaded in <varname>ST_CreateTopoGeo</varname>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2275
+#, no-c-format
+msgid ""
+"INSERT INTO ri.ri_roads(road_name, topo) VALUES('Unknown', topology."
+"CreateTopoGeom('ri_topo',2,2,'{{1,2}}'::topology.topoelementarray);"
+msgstr ""
+"INSERT INTO ri.ri_roads(road_name, topo) VALUES('Unknown', topology."
+"CreateTopoGeom('ri_topo',2,2,'{{1,2}}'::topology.topoelementarray);"
+
+#. Tag: title
+#: extras_topology.xml:2280
+#, no-c-format
+msgid "Examples: Convert an areal geometry to best guess topogeometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2281
+#, no-c-format
+msgid ""
+"Lets say we have geometries that should be formed from a collection of "
+"faces. We have for example blockgroups table and want to know the topo "
+"geometry of each block group. If our data was perfectly aligned, we could do "
+"this:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2283
+#, no-c-format
+msgid ""
+"-- create our topo geometry column --\n"
+"SELECT topology.AddTopoGeometryColumn(\n"
+"        'topo_boston', \n"
+"        'boston', 'blockgroups', 'topo', 'POLYGON');\n"
+"        \n"
+"-- addtopgeometrycolumn --\n"
+"1\n"
+"        \n"
+"-- update our column assuming \n"
+"-- everything is perfectly aligned with our edges\n"
+"UPDATE boston.blockgroups AS bg\n"
+"        SET topo = topology.CreateTopoGeom('topo_boston'\n"
+"        ,3,1\n"
+"        , foo.bfaces)\n"
+"FROM (SELECT b.gid,  topology.TopoElementArray_Agg(ARRAY[f.face_id,3]) As "
+"bfaces\n"
+"        FROM boston.blockgroups As b\n"
+"            INNER JOIN topo_boston.face As f ON b.geom && f.mbr\n"
+"        WHERE ST_Covers(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"            GROUP BY b.gid) As foo\n"
+"WHERE foo.gid = bg.gid;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2285
+#, no-c-format
+msgid ""
+"--the world is rarely perfect allow for some error\n"
+"--count the face if 50% of it falls \n"
+"-- within what we think is our blockgroup boundary\n"
+"UPDATE boston.blockgroups AS bg\n"
+"        SET topo = topology.CreateTopoGeom('topo_boston'\n"
+"        ,3,1\n"
+"        , foo.bfaces)\n"
+"FROM (SELECT b.gid,  topology.TopoElementArray_Agg(ARRAY[f.face_id,3]) As "
+"bfaces\n"
+"        FROM boston.blockgroups As b\n"
+"            INNER JOIN topo_boston.face As f ON b.geom && f.mbr\n"
+"        WHERE ST_Covers(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"                OR\n"
+" (  ST_Intersects(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))\n"
+"            AND ST_Area(ST_Intersection(b.geom, topology."
+"ST_GetFaceGeometry('topo_boston', f.face_id) ) ) > \n"
+"                ST_Area(topology.ST_GetFaceGeometry('topo_boston', f."
+"face_id))*0.5\n"
+"                )\n"
+"            GROUP BY b.gid) As foo\n"
+"WHERE foo.gid = bg.gid; \n"
+"\n"
+"-- and if we wanted to convert our topogeometry back\n"
+"-- to a denomalized geometry aligned with our faces and edges \n"
+"-- cast the topo to a geometry\n"
+"-- The really cool thing is my new geometries\n"
+"-- are now aligned with my tiger street centerlines\n"
+"UPDATE boston.blockgroups SET new_geom = topo::geometry;"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2291
+#, no-c-format
+msgid ""
+", <xref linkend=\"toTopoGeom\"/> <xref linkend=\"ST_CreateTopoGeo\"/>, <xref "
+"linkend=\"ST_GetFaceGeometry\"/>, <xref linkend=\"topoelementarray\"/>, "
+"<xref linkend=\"TopoElementArray_Agg\"/>"
+msgstr ""
+", <xref linkend=\"toTopoGeom\"/> <xref linkend=\"ST_CreateTopoGeo\"/>, <xref "
+"linkend=\"ST_GetFaceGeometry\"/>, <xref linkend=\"topoelementarray\"/>, "
+"<xref linkend=\"TopoElementArray_Agg\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:2304 extras_topology.xml:2480
+#, no-c-format
+msgid "toTopoGeom"
+msgstr "toTopoGeom"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2306
+#, no-c-format
+msgid "Converts a simple Geometry into a topo geometry"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2312
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>topogeometry <function>toTopoGeom</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>toTopoGeom</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>topogeometry </type> "
+"<parameter>topogeom</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>float8</type> <parameter>tolerance</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>tg_type</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>topoelementarray</type> <parameter>tg_objs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>CreateTopoGeom</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>tg_type</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>layer_id</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:2333
+#, no-c-format
+msgid "Converts a simple Geometry into a <xref linkend=\"topogeometry\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2337
+#, no-c-format
+msgid ""
+"Topological primitives required to represent the input geometry will be "
+"added to the underlying topology, possibly splitting existing ones, and they "
+"will be associated with the output TopoGeometry in the <varname>relation</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2344
+#, no-c-format
+msgid ""
+"Existing TopoGeometry objects (with the possible exception of "
+"<varname>topogeom</varname>, if given) will retain their shapes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2349
+#, no-c-format
+msgid ""
+"When <varname>tolerance</varname> is given it will be used to snap the input "
+"geometry to existing primitives."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2354
+#, no-c-format
+msgid ""
+"In the first form a new TopoGeometry will be created for the given layer "
+"(<varname>layer_id</varname>) of the given topology (<varname>toponame</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2359
+#, no-c-format
+msgid ""
+"In the second form the primitives resulting from the conversion will be "
+"added to the pre-existing TopoGeometry (<varname>topogeom</varname>), "
+"possibly adding space to its final shape. To have the new shape completely "
+"replace the old one see <xref linkend=\"clearTopoGeom\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2368
+#, no-c-format
+msgid "Enhanced: 2.1.0 adds the version taking an existing TopoGeometry."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2372
+#, no-c-format
+msgid "This is a full self-contained workflow"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2373
+#, no-c-format
+msgid ""
+"-- do this if you don't have a topology setup already\n"
+"-- creates topology not allowing any tolerance\n"
+"SELECT topology.CreateTopology('topo_boston_test', 2249);\n"
+"-- create a new table\n"
+"CREATE TABLE nei_topo(gid serial primary key, nei varchar(30));\n"
+"--add a topogeometry column to it\n"
+"SELECT topology.AddTopoGeometryColumn('topo_boston_test', 'public', "
+"'nei_topo', 'topo', 'MULTIPOLYGON') As new_layer_id;\n"
+"new_layer_id\n"
+"-----------\n"
+"1\n"
+"\n"
+"--use new layer id in populating the new topogeometry column\n"
+"-- we add the topogeoms to the new layer with 0 tolerance\n"
+"INSERT INTO nei_topo(nei, topo)\n"
+"SELECT nei,  topology.toTopoGeom(geom, 'topo_boston_test', 1)\n"
+"FROM neighborhoods\n"
+"WHERE gid BETWEEN 1 and 15;\n"
+"\n"
+"--use to verify what has happened --\n"
+"SELECT * FROM \n"
+"    topology.TopologySummary('topo_boston_test'); \n"
+"    \n"
+"-- summary--\n"
+"Topology topo_boston_test (5), SRID 2249, precision 0\n"
+"61 nodes, 87 edges, 35 faces, 15 topogeoms in 1 layers\n"
+"Layer 1, type Polygonal (3), 15 topogeoms\n"
+" Deploy: public.nei_topo.topo"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2375
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);\n"
+"\n"
+"-- Get the no-one-lands left by the above operation\n"
+"-- I think GRASS calls this \"polygon0 layer\"\n"
+"SELECT ST_GetFaceGeometry('topo_boston_test', f.face_id) \n"
+"  FROM topo_boston_test.face f\n"
+"  WHERE f.face_id > 0 -- don't consider the universe face\n"
+"  AND NOT EXISTS ( -- check that no TopoGeometry references the face\n"
+"    SELECT * FROM topo_boston_test.relation\n"
+"    WHERE layer_id = 1 AND element_id = f.face_id\n"
+"  );"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2381
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom"
+"\"/>, <xref linkend=\"TopologySummary\"/>, <xref linkend=\"clearTopoGeom\"/>"
+msgstr ""
+",<xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom\"/"
+">, <xref linkend=\"TopologySummary\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:2393
+#, no-c-format
+msgid "TopoElementArray_Agg"
+msgstr "TopoElementArray_Agg"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2394
+#, no-c-format
+msgid ""
+"Returns a <varname>topoelementarray</varname> for a set of element_id, type "
+"arrays (topoelements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2399
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray <function>TopoElementArray_Agg</function></"
+"funcdef> <paramdef><type>topoelement set</type> <parameter>tefield</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>topoelementarray <function>TopoElementArray_Agg</function></"
+"funcdef> <paramdef><type>topoelement set</type> <parameter>tefield</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2409
+#, no-c-format
+msgid ""
+"Used to create a <xref linkend=\"topoelementarray\"/> from a set of <xref "
+"linkend=\"topoelement\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2418
+#, no-c-format
+msgid ""
+"SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
+"  FROM generate_series(1,3) As e CROSS JOIN generate_series(1,4) As t;\n"
+"  tea\n"
+"--------------------------------------------------------------------------\n"
+"{{1,1},{1,2},{1,3},{1,4},{2,1},{2,2},{2,3},{2,4},{3,1},{3,2},{3,3},{3,4}}"
+msgstr ""
+"SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
+"  FROM generate_series(1,3) As e CROSS JOIN generate_series(1,4) As t;\n"
+"  tea\n"
+"--------------------------------------------------------------------------\n"
+"{{1,1},{1,2},{1,3},{1,4},{2,1},{2,2},{2,3},{2,4},{3,1},{3,2},{3,3},{3,4}}"
+
+#. Tag: para
+#: extras_topology.xml:2430
+#, no-c-format
+msgid ""
+"This section covers the topology functions for editing existing "
+"topogeometries."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2433
+#, fuzzy, no-c-format
+msgid "TopoGeometry Editors"
+msgstr "AddTopoGeometryColumn"
+
+#. Tag: refname
+#: extras_topology.xml:2437
+#, fuzzy, no-c-format
+msgid "clearTopoGeom"
+msgstr "CreateTopoGeom"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2439
+#, no-c-format
+msgid "Clears the content of a topo geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2444
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>topogeometry <function>clearTopoGeom</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>topogeom</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2454
+#, no-c-format
+msgid ""
+"Clears the content a <xref linkend=\"topogeometry\"/> turning it into an "
+"empty one. Mostly useful in conjunction with <xref linkend=\"toTopoGeom\"/> "
+"to replace the shape of existing objects and any dependent object in higher "
+"hierarchical levels."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2462
+#, fuzzy, no-c-format
+msgid "Availability: 2.1"
+msgstr "Dostępność: 2.0"
+
+#. Tag: programlisting
+#: extras_topology.xml:2466
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2481
+#, no-c-format
+msgid "Adds a geometry shape to an existing topo geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2485
+#, fuzzy, no-c-format
+msgid "Refer to <xref linkend=\"toTopoGeom\"/>"
+msgstr ", <xref linkend=\"CreateTopoGeom\"/>"
+
+#. Tag: title
+#: extras_topology.xml:2495
+#, no-c-format
+msgid "TopoGeometry Accessors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2499
+#, no-c-format
+msgid "GetTopoGeomElementArray"
+msgstr "GetTopoGeomElementArray"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2501
+#, no-c-format
+msgid ""
+"Returns a <varname>topoelementarray</varname> (an array of topoelements) "
+"containing the topological elements and type of the given TopoGeometry "
+"(primitive elements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2506
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray <function>GetTopoGeomElementArray</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>topoelementarray <function>GetTopoGeomElementArray</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+
+#. Tag: funcprototype
+#: extras_topology.xml:2514
+#, no-c-format
+msgid ""
+"<funcdef>topoelementarray topoelement <function>GetTopoGeomElementArray</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>topoelementarray topoelement <function>GetTopoGeomElementArray</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2524
+#, no-c-format
+msgid ""
+"Returns a <xref linkend=\"topoelementarray\"/> containing the topological "
+"elements and type of the given TopoGeometry (primitive elements). This is "
+"similar to GetTopoGeomElements except it returns the elements as an array "
+"rather than as a dataset."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2526 extras_topology.xml:2573
+#, no-c-format
+msgid ""
+"tg_id is the topogeometry id of the topogeometry object in the topology in "
+"the layer denoted by <varname>layer_id</varname> in the topology.layer table."
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2547
+#, no-c-format
+msgid "GetTopoGeomElements"
+msgstr "GetTopoGeomElements"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2549
+#, no-c-format
+msgid ""
+"Returns a set of <varname>topoelement</varname> objects containing the "
+"topological element_id,element_type of the given TopoGeometry (primitive "
+"elements)"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2554
+#, no-c-format
+msgid ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></"
+"paramdef>"
+
+#. Tag: funcprototype
+#: extras_topology.xml:2562
+#, no-c-format
+msgid ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2572
+#, no-c-format
+msgid ""
+"Returns a set of element_id,element_type (topoelements) for a given "
+"topogeometry object in <varname>toponame</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2589
+#, no-c-format
+msgid ", <xref linkend=\"topoelement\"/>"
+msgstr ", <xref linkend=\"topoelement\"/>"
+
+#. Tag: title
+#: extras_topology.xml:2597
+#, no-c-format
+msgid "TopoGeometry Outputs"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2600
+#, no-c-format
+msgid "AsGML"
+msgstr "AsGML"
+
+#. Tag: refpurpose
+#: extras_topology.xml:2602
+#, no-c-format
+msgid "Returns the GML representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_topology.xml:2606
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>AsGML</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>AsGML</function></funcdef> <paramdef><type>topogeometry </type> "
+"<parameter>tg</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>nsprefix_in</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>precision</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>options</parameter></paramdef> <paramdef><type>regclass </"
+"type> <parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nsprefix_in</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>precision</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>idprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>idprefix</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>gmlversion</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>AsGML</function></"
+"funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nsprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>AsGML</function></funcdef> <paramdef><type>topogeometry </type> "
+"<parameter>tg</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>nsprefix_in</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>precision</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>options</parameter></paramdef> <paramdef><type>regclass </"
+"type> <parameter>visitedTable</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nsprefix_in</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>precision</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>visitedTable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>idprefix</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</"
+"function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>precision</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>options</"
+"parameter></paramdef> <paramdef><type>regclass </type> "
+"<parameter>visitedTable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>idprefix</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>gmlversion</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: extras_topology.xml:2667
+#, no-c-format
+msgid ""
+"Returns the GML representation of a topogeometry in version GML3 format. If "
+"no <varname>nsprefix_in</varname> is specified then <varname>gml</varname> "
+"is used. Pass in an empty string for nsprefix to get a non-qualified name "
+"space. The precision (default: 15) and options (default 1) parameters, if "
+"given, are passed untouched to the underlying call to ST_AsGML."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2669
+#, no-c-format
+msgid ""
+"The <varname>visitedTable</varname> parameter, if given, is used for keeping "
+"track of the visited Node and Edge elements so to use cross-references "
+"(xlink:xref) rather than duplicating definitions. The table is expected to "
+"have (at least) two integer fields: 'element_type' and 'element_id'. The "
+"calling user must have both read and write privileges on the given table. "
+"For best performance, an index should be defined on <varname>element_type</"
+"varname> and <varname>element_id</varname>, in that order. Such index would "
+"be created automatically by adding a unique constraint to the fields. "
+"Example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2675
+#, no-c-format
+msgid ""
+"CREATE TABLE visited (\n"
+"  element_type integer, element_id integer,\n"
+"  unique(element_type, element_id)\n"
+");"
+msgstr ""
+"CREATE TABLE visited (\n"
+"  element_type integer, element_id integer,\n"
+"  unique(element_type, element_id)\n"
+");"
+
+#. Tag: para
+#: extras_topology.xml:2678
+#, no-c-format
+msgid ""
+"The <varname>idprefix</varname> parameter, if given, will be prepended to "
+"Edge and Node tag identifiers."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2680
+#, no-c-format
+msgid ""
+"The <varname>gmlver</varname> parameter, if given, will be passed to the "
+"underlying ST_AsGML. Defaults to 3."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2689
+#, no-c-format
+msgid ""
+"This uses the topo geometry we created in <xref linkend=\"CreateTopoGeom\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2690
+#, no-c-format
+msgid ""
+"SELECT topology.AsGML(topo) As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<gml:TopoCurve>\n"
+"    <gml:directedEdge>\n"
+"        <gml:Edge gml:id=\"E1\">\n"
+"            <gml:directedNode orientation=\"-\">\n"
+"                <gml:Node gml:id=\"N1\"/>\n"
+"            </gml:directedNode>\n"
+"            <gml:directedNode></gml:directedNode>\n"
+"            <gml:curveProperty>\n"
+"                <gml:Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <gml:segments>\n"
+"                        <gml:LineStringSegment>\n"
+"                            <gml:posList srsDimension=\"2\">384744 236928 "
+"384750 236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</gml:posList>\n"
+"                        </gml:LineStringSegment>\n"
+"                    </gml:segments>\n"
+"                </gml:Curve>\n"
+"            </gml:curveProperty>\n"
+"        </gml:Edge>\n"
+"    </gml:directedEdge>\n"
+"</gml:TopoCurve>]]>"
+msgstr ""
+"SELECT topology.AsGML(topo) As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<gml:TopoCurve>\n"
+"    <gml:directedEdge>\n"
+"        <gml:Edge gml:id=\"E1\">\n"
+"            <gml:directedNode orientation=\"-\">\n"
+"                <gml:Node gml:id=\"N1\"/>\n"
+"            </gml:directedNode>\n"
+"            <gml:directedNode></gml:directedNode>\n"
+"            <gml:curveProperty>\n"
+"                <gml:Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <gml:segments>\n"
+"                        <gml:LineStringSegment>\n"
+"                            <gml:posList srsDimension=\"2\">384744 236928 "
+"384750 236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</gml:posList>\n"
+"                        </gml:LineStringSegment>\n"
+"                    </gml:segments>\n"
+"                </gml:Curve>\n"
+"            </gml:curveProperty>\n"
+"        </gml:Edge>\n"
+"    </gml:directedEdge>\n"
+"</gml:TopoCurve>]]>"
+
+#. Tag: para
+#: extras_topology.xml:2691
+#, no-c-format
+msgid "Same exercise as previous without namespace"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2692
+#, no-c-format
+msgid ""
+"SELECT topology.AsGML(topo,'') As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<TopoCurve>\n"
+"    <directedEdge>\n"
+"        <Edge id=\"E1\">\n"
+"            <directedNode orientation=\"-\">\n"
+"                <Node id=\"N1\"/>\n"
+"            </directedNode>\n"
+"            <directedNode></directedNode>\n"
+"            <curveProperty>\n"
+"                <Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <segments>\n"
+"                        <LineStringSegment>\n"
+"                            <posList srsDimension=\"2\">384744 236928 384750 "
+"236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</posList>\n"
+"                         </LineStringSegment>\n"
+"                    </segments>\n"
+"                </Curve>\n"
+"            </curveProperty>\n"
+"        </Edge>\n"
+"    </directedEdge>\n"
+"</TopoCurve>]]>"
+msgstr ""
+"SELECT topology.AsGML(topo,'') As rdgml \n"
+"  FROM ri.roads \n"
+"  WHERE road_name = 'Unknown';\n"
+"  \n"
+"-- rdgml--\n"
+"<![CDATA[<TopoCurve>\n"
+"    <directedEdge>\n"
+"        <Edge id=\"E1\">\n"
+"            <directedNode orientation=\"-\">\n"
+"                <Node id=\"N1\"/>\n"
+"            </directedNode>\n"
+"            <directedNode></directedNode>\n"
+"            <curveProperty>\n"
+"                <Curve srsName=\"urn:ogc:def:crs:EPSG::3438\">\n"
+"                    <segments>\n"
+"                        <LineStringSegment>\n"
+"                            <posList srsDimension=\"2\">384744 236928 384750 "
+"236923 384769 236911 384799 236895 384811 236890 \n"
+"                            384833 236884 384844 236882 384866 236881 384879 "
+"236883 384954 236898 385087 236932 385117 236938 \n"
+"                            385167 236938 385203 236941 385224 236946 385233 "
+"236950 385241 236956 385254 236971 \n"
+"                            385260 236979 385268 236999 385273 237018 385273 "
+"237037 385271 237047 385267 237057 385225 237125 \n"
+"                            385210 237144 385192 237161 385167 237192 385162 "
+"237202 385159 237214 385159 237227 385162 237241 \n"
+"                            385166 237256 385196 237324 385209 237345 385234 "
+"237375 385237 237383 385238 237399 385236 237407 \n"
+"                            385227 237419 385213 237430 385193 237439 385174 "
+"237451 385170 237455 385169 237460 385171 237475 \n"
+"                            385181 237503 385190 237521 385200 237533 385206 "
+"237538 385213 237541 385221 237542 385235 237540 385242 237541 \n"
+"                            385249 237544 385260 237555 385270 237570 385289 "
+"237584 385292 237589 385291 237596 385284 237630</posList>\n"
+"                         </LineStringSegment>\n"
+"                    </segments>\n"
+"                </Curve>\n"
+"            </curveProperty>\n"
+"        </Edge>\n"
+"    </directedEdge>\n"
+"</TopoCurve>]]>"
+
+#. Tag: para
+#: extras_topology.xml:2698
+#, no-c-format
+msgid ", <xref linkend=\"ST_CreateTopoGeo\"/>"
+msgstr ", <xref linkend=\"ST_CreateTopoGeo\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:2703
+#, no-c-format
+msgid "AsTopoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2705
+#, no-c-format
+msgid "Returns the TopoJSON representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2710
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>text <function>AsTopoJSON</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>edgeMapTable</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2721
+#, no-c-format
+msgid ""
+"Returns the TopoJSON representation of a topogeometry. If "
+"<varname>edgeMapTable</varname> is not null, it will be used as a lookup/"
+"storage mapping of edge identifiers to arc indices. This is to be able to "
+"allow for a compact \"arcs\" array in the final document."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2724
+#, no-c-format
+msgid ""
+"The table, if given, is expected to have an \"arc_id\" field of type \"serial"
+"\" and an \"edge_id\" of type integer; the code will query the table for "
+"\"edge_id\" so it is recommended to add an index on that field."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2729
+#, no-c-format
+msgid ""
+"Arc indices in the TopoJSONjoutput are 0-based but they are 1-based in the "
+"\"edgeMapTable\" table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2735
+#, no-c-format
+msgid ""
+"A full TopoJSON document will be need to contain, in addition to the "
+"snippets returned by this function, the actual arcs plus some headers. See "
+"the <ulink url=\"http://github.com/mbostock/topojson/wiki/Specification"
+"\">TopoJSON specification</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2752
+#, no-c-format
+msgid ""
+"CREATE TEMP TABLE edgemap(arc_id serial, edge_id int unique);\n"
+"\n"
+"-- header\n"
+"SELECT '{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], "
+"\"translate\": [0,0] }, \"objects\": {'\n"
+"\n"
+"-- objects\n"
+"UNION ALL SELECT '\"' || feature_name || '\": ' || AsTopoJSON(feature, "
+"'edgemap')\n"
+"FROM features.big_parcels WHERE feature_name = 'P3P4';\n"
+"\n"
+"-- arcs\n"
+"WITH edges AS ( \n"
+"  SELECT m.arc_id, e.geom FROM edgemap m, city_data.edge e\n"
+"  WHERE e.edge_id = m.edge_id\n"
+"), points AS (\n"
+"  SELECT arc_id, (st_dumppoints(geom)).* FROM edges\n"
+"), compare AS (\n"
+"  SELECT p2.arc_id,\n"
+"         CASE WHEN p1.path IS NULL THEN p2.geom\n"
+"              ELSE ST_Translate(p2.geom, -ST_X(p1.geom), -ST_Y(p1.geom))\n"
+"         END AS geom\n"
+"  FROM points p2 LEFT OUTER JOIN points p1\n"
+"  ON ( p1.arc_id = p2.arc_id AND p2.path[1] = p1.path[1]+1 )\n"
+"  ORDER BY arc_id, p2.path\n"
+"), arcsdump AS (\n"
+"  SELECT arc_id, (regexp_matches( ST_AsGeoJSON(geom), '\\[.*\\]'))[1] as t\n"
+"  FROM compare\n"
+"), arcs AS (\n"
+"  SELECT arc_id, '[' || array_to_string(array_agg(t), ',') || ']' as a FROM "
+"arcsdump\n"
+"  GROUP BY arc_id\n"
+"  ORDER BY arc_id\n"
+")\n"
+"SELECT '}, \"arcs\": [' UNION ALL\n"
+"SELECT array_to_string(array_agg(a), E',\\n') from arcs\n"
+"\n"
+"-- footer\n"
+"UNION ALL SELECT ']}'::text as t;\n"
+"\n"
+"-- Result:\n"
+"{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], \"translate\": "
+"[0,0] }, \"objects\": {\n"
+"\"P3P4\": { \"type\": \"MultiPolygon\", \"arcs\": [[[-1]],"
+"[[6,5,-5,-4,-3,1]]]}\n"
+"}, \"arcs\": [\n"
+" [[25,30],[6,0],[0,10],[-14,0],[0,-10],[8,0]],\n"
+" [[35,6],[0,8]],\n"
+" [[35,6],[12,0]],\n"
+" [[47,6],[0,8]],\n"
+" [[47,14],[0,8]],\n"
+" [[35,22],[12,0]],\n"
+" [[35,14],[0,8]]\n"
+" ]}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2760
+#, no-c-format
+msgid ""
+"This section lists the Topology functions used to check relationships "
+"between topogeometries and topology primitives"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2763
+#, no-c-format
+msgid "Topology Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2766
+#, no-c-format
+msgid "Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2768 extras_topology.xml:2817
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2773 extras_topology.xml:2822
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>boolean <function>Equals</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg1</parameter></paramdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg2</parameter></paramdef>"
+msgstr ""
+"<funcdef>integer <function>AddEdge</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef>"
+
+#. Tag: para
+#: extras_topology.xml:2784
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives: faces, edges, nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2788
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2795 extras_topology.xml:2845
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2802 extras_topology.xml:2852
+#, no-c-format
+msgid "<!--TODO: Need example -->"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2809
+#, fuzzy, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>"
+msgstr ", <xref linkend=\"ST_Azimuth\"/>"
+
+#. Tag: refname
+#: extras_topology.xml:2815
+#, no-c-format
+msgid "Intersects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2833
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries share primitives or primitives intersect"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2837
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies. Also not currently supported for hierarchichal topogeometries "
+"(topogeometries composed of other topogeometries)."
+msgstr ""
+
+#~ msgid ""
+#~ "<funcdef>text <function>ST_ModEdgeSplit</function></funcdef> "
+#~ "<paramdef><type>varchar </type> <parameter>atopology</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></"
+#~ "paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></"
+#~ "paramdef>"
+#~ msgstr ""
+#~ "<funcdef>text <function>ST_ModEdgeSplit</function></funcdef> "
+#~ "<paramdef><type>varchar </type> <parameter>atopology</parameter></"
+#~ "paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></"
+#~ "paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></"
+#~ "paramdef>"
+
+#~ msgid ""
+#~ "<funcdef>topogeometry <function>toTopoGeom</function></funcdef> "
+#~ "<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+#~ "<paramdef><type>varchar </type> <parameter>toponame</parameter></"
+#~ "paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+#~ "paramdef> <paramdef choice=\"opt\"><type>float8</type> "
+#~ "<parameter>tolerance</parameter></paramdef>"
+#~ msgstr ""
+#~ "<funcdef>topogeometry <function>toTopoGeom</function></funcdef> "
+#~ "<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+#~ "<paramdef><type>varchar </type> <parameter>toponame</parameter></"
+#~ "paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+#~ "paramdef> <paramdef choice=\"opt\"><type>float8</type> "
+#~ "<parameter>tolerance</parameter></paramdef>"
diff --git a/doc/po/pl/faq.xml.po b/doc/po/pl/faq.xml.po
new file mode 100644
index 0000000..9164fdd
--- /dev/null
+++ b/doc/po/pl/faq.xml.po
@@ -0,0 +1,778 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: faq.xml:3
+#, no-c-format
+msgid "PostGIS Frequently Asked Questions"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:8
+#, no-c-format
+msgid ""
+"Where can I find tutorials, guides and workshops on working with PostGIS"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:12
+#, no-c-format
+msgid ""
+"OpenGeo has a step by step tutorial guide workshop <ulink url=\"http://"
+"workshops.boundlessgeo.com/postgis-intro/\">Introduction to PostGIS</ulink>. "
+"It includes packaged data as well as intro to working with OpenGeo Suite. It "
+"is probably the best tutorial on PostGIS."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:13
+#, no-c-format
+msgid ""
+"BostonGIS also has a <ulink url=\"http://www.bostongis.com/PrinterFriendly."
+"aspx?content_name=postgis_tut01\">PostGIS almost idiot's guide on getting "
+"started</ulink>. That one is more focused on the windows user."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:18
+#, no-c-format
+msgid ""
+"My applications and desktop tools worked with PostGIS 1.5,but they don't "
+"work with PostGIS 2.0. How do I fix this?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:22
+#, no-c-format
+msgid ""
+"A lot of deprecated functions were removed from the PostGIS code base in "
+"PostGIS 2.0. This has affected applications in addition to third-party tools "
+"such as Geoserver, MapServer, QuantumGIS, and OpenJump to name a few. There "
+"are a couple of ways to resolve this. For the third-party apps, you can try "
+"to upgrade to the latest versions of these which have many of these issues "
+"fixed. For your own code, you can change your code to not use the functions "
+"removed. Most of these functions are non ST_ aliases of ST_Union, ST_Length "
+"etc. and as a last resort, install the whole of <varname>legacy.sql</"
+"varname> or just the portions of <varname>legacy.sql</varname> you need."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:28
+#, no-c-format
+msgid ""
+"The <varname>legacy.sql</varname> file is located in the same folder as "
+"postgis.sql. You can install this file after you have installed postgis.sql "
+"and spatial_ref_sys.sql to get back all the 200 some-odd old functions we "
+"removed."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:35
+#, no-c-format
+msgid ""
+"When I load OpenStreetMap data with osm2pgsql, I'm getting an error failed: "
+"ERROR: operator class \"gist_geometry_ops\" does not exist for access method "
+"\"gist\" Error occurred. This worked fine in PostGIS 1.5."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:40
+#, no-c-format
+msgid ""
+"In PostGIS 2, the default geometry operator class gist_geometry_ops was "
+"changed to gist_geometry_ops_2d and the gist_geometry_ops was completely "
+"removed. This was done because PostGIS 2 also introduced Nd spatial indexes "
+"for 3D support and the old name was deemed confusing and a misnomer."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:41
+#, no-c-format
+msgid ""
+"Some older applications that as part of the process create tables and "
+"indexes, explicitly referenced the operator class name. This was unnecessary "
+"if you want the default 2D index. So if you manage said good, change index "
+"creation from:"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:42
+#, no-c-format
+msgid "BAD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:43
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_my_table_geom ON my_table USING gist(geom "
+"gist_geometry_ops);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:44
+#, no-c-format
+msgid "To GOOD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:45
+#, no-c-format
+msgid "CREATE INDEX idx_my_table_geom ON my_table USING gist(geom);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:47
+#, no-c-format
+msgid ""
+"The only case where you WILL need to specify the operator class is if you "
+"want a 3D spatial index as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:48
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_my_super3d_geom ON my_super3d USING gist(geom "
+"gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:50
+#, no-c-format
+msgid ""
+"If you are unfortunate to be stuck with compiled code you can't change that "
+"has the old gist_geometry_ops hard-coded, then you can create the old class "
+"using the <filename>legacy_gist.sql</filename> packaged in PostGIS 2.0.2+. "
+"However if you use this fix, you are advised to at a later point drop the "
+"index and recreate it without the operator class. This will save you grief "
+"in the future when you need to upgrade again."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:56
+#, no-c-format
+msgid ""
+"I'm running PostgreSQL 9.0 and I can no longer read/view geometries in "
+"OpenJump, Safe FME, and some other tools?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:60
+#, no-c-format
+msgid ""
+"In PostgreSQL 9.0+, the default encoding for bytea data has been changed to "
+"hex and older JDBC drivers still assume escape format. This has affected "
+"some applications such as Java applications using older JDBC drivers or .NET "
+"applications that use the older npgsql driver that expect the old behavior "
+"of ST_AsBinary. There are two approaches to getting this to work again."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:64
+#, no-c-format
+msgid ""
+"You can upgrade your JDBC driver to the latest PostgreSQL 9.0 version which "
+"you can get from <ulink url=\"http://jdbc.postgresql.org/download.html"
+"\">http://jdbc.postgresql.org/download.html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:66
+#, no-c-format
+msgid ""
+"If you are running a .NET app, you can use Npgsql 2.0.11 or higher which you "
+"can download from <ulink url=\"http://pgfoundry.org/frs/?"
+"group_id=1000140\">http://pgfoundry.org/frs/?group_id=1000140</ulink> and as "
+"described on <ulink url=\"http://fxjr.blogspot.com/2010/11/npgsql-2011-"
+"released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released blog entry</"
+"ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:70
+#, no-c-format
+msgid ""
+"If upgrading your PostgreSQL driver is not an option, then you can set the "
+"default back to the old behavior with the following change:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:71
+#, no-c-format
+msgid "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:78
+#, no-c-format
+msgid ""
+"I tried to use PgAdmin to view my geometry column and it is blank, what "
+"gives?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:82
+#, no-c-format
+msgid ""
+"PgAdmin doesn't show anything for large geometries. The best ways to verify "
+"you do have data in your geometry columns are?"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:85
+#, no-c-format
+msgid ""
+"-- this should return no records if all your geom fields are filled "
+"in        \n"
+"SELECT somefield FROM mytable WHERE geom IS NULL;"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:87
+#, no-c-format
+msgid ""
+"-- To tell just how large your geometry is do a query of the form\n"
+"--which will tell you the most number of points you have in any of your "
+"geometry columns\n"
+"SELECT MAX(ST_NPoints(geom)) FROM sometable;"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:93
+#, no-c-format
+msgid "What kind of geometric objects can I store?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:97
+#, no-c-format
+msgid ""
+"You can store point, line, polygon, multipoint, multiline, multipolygon, and "
+"geometrycollections. In PostGIS 2.0 and above you can also store TINS and "
+"Polyhedral Surfaces in the basic geometry type. These are specified in the "
+"Open GIS Well Known Text Format (with XYZ,XYM,XYZM extensions). There are "
+"three data types currently supported. The standard OGC geometry data type "
+"which uses a planar coordinate system for measurement, the geography data "
+"type which uses a geodetic coordinate system (not OGC, but you'll find a "
+"similar type in Microsoft SQL Server 2008+). Only WGS 84 long lat "
+"(SRID:4326) is supported by the geography data type. The newest family "
+"member of the PostGIS spatial type family is raster for storing and "
+"analyzing raster data. Raster has its very own FAQ. Refer to <xref linkend="
+"\"RT_FAQ\"/> and <xref linkend=\"RT_reference\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:110
+#, no-c-format
+msgid "I'm all confused. Which data store should I use geometry or geography?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:114
+#, no-c-format
+msgid ""
+"Short Answer: geography is a new data type that supports long range "
+"distances measurements, but most computations on it are currently slower "
+"than they are on geometry. If you use geography -- you don't need to learn "
+"much about planar coordinate systems. Geography is generally best if all you "
+"care about is measuring distances and lengths and you have data from all "
+"over the world. Geometry data type is an older data type that has many more "
+"functions supporting it, enjoys greater support from third party tools, and "
+"operations on it are generally faster -- sometimes as much as 10 fold faster "
+"for larger geometries. Geometry is best if you are pretty comfortable with "
+"spatial reference systems or you are dealing with localized data where all "
+"your data fits in a single <link linkend=\"spatial_ref_sys\">spatial "
+"reference system (SRID)</link>, or you need to do a lot of spatial "
+"processing. Note: It is fairly easy to do one-off conversions between the "
+"two types to gain the benefits of each. Refer to <xref linkend="
+"\"PostGIS_TypeFunctionMatrix\"/> to see what is currently supported and what "
+"is not."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:125
+#, no-c-format
+msgid ""
+"Long Answer: Refer to our more lengthy discussion in the <xref linkend="
+"\"PostGIS_GeographyVSGeometry\"/> and <link linkend="
+"\"PostGIS_TypeFunctionMatrix\">function type matrix</link>."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:133
+#, no-c-format
+msgid ""
+"I have more intense questions about geography, such as how big of a "
+"geographic region can I stuff in a geography column and still get reasonable "
+"answers. Are there limitations such as poles, everything in the field must "
+"fit in a hemisphere (like SQL Server 2008 has), speed etc?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:137
+#, no-c-format
+msgid ""
+"Your questions are too deep and complex to be adequately answered in this "
+"section. Please refer to our <xref linkend=\"PostGIS_Geography_AdvancedFAQ\"/"
+">."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:144
+#, no-c-format
+msgid "How do I insert a GIS object into the database?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:148
+#, no-c-format
+msgid ""
+"First, you need to create a table with a column of type \"geometry\" or "
+"\"geography\" to hold your GIS data. Storing geography type data is a little "
+"different than storing geometry. Refer to <xref linkend=\"Geography_Basics\"/"
+"> for details on storing geography."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:152
+#, no-c-format
+msgid ""
+"For geometry: Connect to your database with <filename>psql</filename> and "
+"try the following SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:156
+#, no-c-format
+msgid ""
+"CREATE TABLE gtest ( gid serial primary key, name varchar(20)\n"
+"        , geom geometry(LINESTRING) );"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:158
+#, no-c-format
+msgid ""
+"If the geometry column definition fails, you probably have not loaded the "
+"PostGIS functions and objects into this database or are using a pre-2.0 "
+"version of PostGIS. See the <xref linkend=\"PGInstall\"/>."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:162
+#, no-c-format
+msgid ""
+"Then, you can insert a geometry into the table using a SQL insert statement. "
+"The GIS object itself is formatted using the OpenGIS Consortium \"well-known "
+"text\" format:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:166
+#, no-c-format
+msgid ""
+"INSERT INTO gtest (ID, NAME, GEOM) \n"
+"VALUES (\n"
+"  1, \n"
+"  'First Geometry', \n"
+"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)')\n"
+");"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:168
+#, no-c-format
+msgid ""
+"For more information about other GIS objects, see the <link linkend="
+"\"RefObject\">object reference</link>."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:171
+#, no-c-format
+msgid "To view your GIS data in the table:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:173
+#, no-c-format
+msgid "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:175
+#, no-c-format
+msgid "The return value should look something like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:177
+#, no-c-format
+msgid ""
+"id | name           | geom\n"
+"----+----------------+-----------------------------\n"
+"  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:183
+#, no-c-format
+msgid "How do I construct a spatial query?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:187
+#, no-c-format
+msgid ""
+"The same way you construct any other database query, as an SQL combination "
+"of return values, functions, and boolean tests."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:190
+#, no-c-format
+msgid ""
+"For spatial queries, there are two issues that are important to keep in mind "
+"while constructing your query: is there a spatial index you can make use of; "
+"and, are you doing expensive calculations on a large number of geometries."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:195
+#, no-c-format
+msgid ""
+"In general, you will want to use the \"intersects operator\" (&&) "
+"which tests whether the bounding boxes of features intersect. The reason the "
+"&& operator is useful is because if a spatial index is available to "
+"speed up the test, the && operator will make use of this. This can "
+"make queries much much faster."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:202
+#, no-c-format
+msgid ""
+"You will also make use of spatial functions, such as Distance(), "
+"ST_Intersects(), ST_Contains() and ST_Within(), among others, to narrow down "
+"the results of your search. Most spatial queries include both an indexed "
+"test and a spatial function test. The index test serves to limit the number "
+"of return tuples to only tuples that <emphasis>might</emphasis> meet the "
+"condition of interest. The spatial functions are then use to test the "
+"condition exactly."
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:210
+#, no-c-format
+msgid ""
+"SELECT id, the_geom \n"
+"FROM thetable \n"
+"WHERE \n"
+"  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:216
+#, no-c-format
+msgid "How do I speed up spatial queries on large tables?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:220
+#, no-c-format
+msgid ""
+"Fast queries on large tables is the <emphasis>raison d'etre</emphasis> of "
+"spatial databases (along with transaction support) so having a good index is "
+"important."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:224
+#, no-c-format
+msgid ""
+"To build a spatial index on a table with a <varname>geometry</varname> "
+"column, use the \"CREATE INDEX\" function as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:228
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:230
+#, no-c-format
+msgid ""
+"The \"USING GIST\" option tells the server to use a GiST (Generalized Search "
+"Tree) index."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:234
+#, no-c-format
+msgid ""
+"GiST indexes are assumed to be lossy. Lossy indexes uses a proxy object (in "
+"the spatial case, a bounding box) for building the index."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:239
+#, no-c-format
+msgid ""
+"You should also ensure that the PostgreSQL query planner has enough "
+"information about your index to make rational decisions about when to use "
+"it. To do this, you have to \"gather statistics\" on your geometry tables."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:244
+#, no-c-format
+msgid ""
+"For PostgreSQL 8.0.x and greater, just run the <command>VACUUM ANALYZE</"
+"command> command."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:247
+#, no-c-format
+msgid ""
+"For PostgreSQL 7.4.x and below, run the <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command> command."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:254
+#, no-c-format
+msgid "Why aren't PostgreSQL R-Tree indexes supported?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:258
+#, no-c-format
+msgid ""
+"Early versions of PostGIS used the PostgreSQL R-Tree indexes. However, "
+"PostgreSQL R-Trees have been completely discarded since version 0.6, and "
+"spatial indexing is provided with an R-Tree-over-GiST scheme."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:263
+#, no-c-format
+msgid ""
+"Our tests have shown search speed for native R-Tree and GiST to be "
+"comparable. Native PostgreSQL R-Trees have two limitations which make them "
+"undesirable for use with GIS features (note that these limitations are due "
+"to the current PostgreSQL native R-Tree implementation, not the R-Tree "
+"concept in general):"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:271
+#, no-c-format
+msgid ""
+"R-Tree indexes in PostgreSQL cannot handle features which are larger than 8K "
+"in size. GiST indexes can, using the \"lossy\" trick of substituting the "
+"bounding box for the feature itself."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:278
+#, no-c-format
+msgid ""
+"R-Tree indexes in PostgreSQL are not \"null safe\", so building an index on "
+"a geometry column which contains null geometries will fail."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:288
+#, no-c-format
+msgid ""
+"Why should I use the <varname>AddGeometryColumn()</varname> function and all "
+"the other OpenGIS stuff?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:293
+#, no-c-format
+msgid ""
+"If you do not want to use the OpenGIS support functions, you do not have to. "
+"Simply create tables as in older versions, defining your geometry columns in "
+"the CREATE statement. All your geometries will have SRIDs of -1, and the "
+"OpenGIS meta-data tables will <emphasis>not</emphasis> be filled in "
+"properly. However, this will cause most applications based on PostGIS to "
+"fail, and it is generally suggested that you do use "
+"<varname>AddGeometryColumn()</varname> to create geometry tables."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:302
+#, no-c-format
+msgid ""
+"MapServer is one application which makes use of the "
+"<varname>geometry_columns</varname> meta-data. Specifically, MapServer can "
+"use the SRID of the geometry column to do on-the-fly reprojection of "
+"features into the correct map projection."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:311
+#, no-c-format
+msgid ""
+"What is the best way to find all objects within a radius of another object?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:316
+#, no-c-format
+msgid ""
+"To use the database most efficiently, it is best to do radius queries which "
+"combine the radius test with a bounding box test: the bounding box test uses "
+"the spatial index, giving fast access to a subset of data which the radius "
+"test is then applied to."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:321
+#, no-c-format
+msgid ""
+"The <varname>ST_DWithin(geometry, geometry, distance)</varname> function is "
+"a handy way of performing an indexed distance search. It works by creating a "
+"search rectangle large enough to enclose the distance radius, then "
+"performing an exact distance search on the indexed subset of results."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:327
+#, no-c-format
+msgid ""
+"For example, to find all objects with 100 meters of POINT(1000 1000) the "
+"following query would work well:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:330
+#, no-c-format
+msgid ""
+"SELECT * FROM geotable \n"
+"WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:336
+#, no-c-format
+msgid "How do I perform a coordinate reprojection as part of a query?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:341
+#, no-c-format
+msgid ""
+"To perform a reprojection, both the source and destination coordinate "
+"systems must be defined in the SPATIAL_REF_SYS table, and the geometries "
+"being reprojected must already have an SRID set on them. Once that is done, "
+"a reprojection is as simple as referring to the desired destination SRID. "
+"The below projects a geometry to NAD 83 long lat. The below will only work "
+"if the srid of the_geom is not -1 (not undefined spatial ref)"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:348
+#, no-c-format
+msgid "SELECT ST_Transform(the_geom,4269) FROM geotable;"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:354
+#, no-c-format
+msgid ""
+"I did an ST_AsEWKT and ST_AsText on my rather large geometry and it returned "
+"blank field. What gives?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:358
+#, no-c-format
+msgid ""
+"You are probably using PgAdmin or some other tool that doesn't output large "
+"text. If your geometry is big enough, it will appear blank in these tools. "
+"Use PSQL if you really need to see it or output it in WKT."
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:361
+#, no-c-format
+msgid ""
+"--To check number of geometries are really blank\n"
+"                                SELECT count(gid) FROM geotable WHERE "
+"the_geom IS NULL;"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:367
+#, no-c-format
+msgid ""
+"When I do an ST_Intersects, it says my two geometries don't intersect when I "
+"KNOW THEY DO. What gives?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:371
+#, no-c-format
+msgid ""
+"This generally happens in two common cases. Your geometry is invalid -- "
+"check <xref linkend=\"ST_IsValid\"/> or you are assuming they intersect "
+"because ST_AsText truncates the numbers and you have lots of decimals after "
+"it is not showing you."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:379
+#, no-c-format
+msgid ""
+"I am releasing software that uses PostGIS, does that mean my software has to "
+"be licensed using the GPL like PostGIS? Will I have to publish all my code "
+"if I use PostGIS?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:383
+#, no-c-format
+msgid ""
+"Almost certainly not. As an example, consider Oracle database running on "
+"Linux. Linux is GPL, Oracle is not, does Oracle running on Linux have to be "
+"distributed using the GPL? No. So your software can use a PostgreSQL/PostGIS "
+"database as much as it wants and be under any license you like."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:384
+#, no-c-format
+msgid ""
+"The only exception would be if you made changes to the PostGIS source code, "
+"and distributed your changed version of PostGIS. In that case you would have "
+"to share the code of your changed PostGIS (but not the code of applications "
+"running on top of it). Even in this limited case, you would still only have "
+"to distribute source code to people you distributed binaries to. The GPL "
+"does not require that you <emphasis>publish</emphasis> your source code, "
+"only that you share it with people you give binaries to."
+msgstr ""
diff --git a/doc/po/pl/faq_raster.xml.po b/doc/po/pl/faq_raster.xml.po
new file mode 100644
index 0000000..496ea8c
--- /dev/null
+++ b/doc/po/pl/faq_raster.xml.po
@@ -0,0 +1,715 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: faq_raster.xml:3
+#, no-c-format
+msgid "PostGIS Raster Frequently Asked Questions"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:9
+#, no-c-format
+msgid "Where can I find out more about the PostGIS Raster Project?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:13
+#, no-c-format
+msgid ""
+"Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster"
+"\">PostGIS Raster home page</ulink>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:19
+#, no-c-format
+msgid ""
+"Are there any books or tutorials to get me started with this wonderful "
+"invention?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:23
+#, no-c-format
+msgid ""
+"There is a full length beginner tutorial <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/WKTRasterTutorial01\"> Intersecting vector buffers with large "
+"raster coverage using PostGIS Raster</ulink>. Jorge has a series of blog "
+"articles on PostGIS Raster that demonstrate how to load raster data as well "
+"as cross compare to same tasks in Oracle GeoRaster. Check out <ulink url="
+"\"http://gis4free.wordpress.com/category/postgis-raster/\">Jorge's PostGIS "
+"Raster / Oracle GeoRaster Series</ulink>. There is a whole chapter (more "
+"than 35 pages of content) dedicated to PostGIS Raster with free code and "
+"data downloads at <ulink url=\"http://www.postgis.us/chapter_13\">PostGIS in "
+"Action - Raster chapter</ulink>. You can <ulink url=\"http://www.postgis.us/"
+"page_buy_book\">buy PostGIS in Action</ulink> now from Manning in hard-copy "
+"(significant discounts for bulk purchases) or just the E-book format. You "
+"can also buy from Amazon and various other book distributors. All hard-copy "
+"books come with a free coupon to download the E-book version."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:30
+#, no-c-format
+msgid ""
+"Here is a review from a PostGIS Raster user <ulink url=\"http://"
+"fuzzytolerance.info/code/postgis-raster-ftw/\">PostGIS raster applied to "
+"land classification urban forestry</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:37
+#, no-c-format
+msgid "How do I install Raster support in my PostGIS database?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:41
+#, no-c-format
+msgid ""
+"The easiest is to download binaries for PostGIS and Raster which are "
+"currently available for windows and latest versions of Mac OSX. First you "
+"need a working PostGIS 2.0.0 or above and be running PostgreSQL 8.4, 9.0, or "
+"9.1. Note in PostGIS 2.0 PostGIS Raster is fully integrated, so it will be "
+"compiled when you compile PostGIS."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:43
+#, no-c-format
+msgid ""
+"Instructions for installing and running under windows are available at "
+"<ulink url=\"http://gis4free.wordpress.com/2011/03/10/how-to-install-and-"
+"configure-postgis-raster-on-windows/\">How to Install and Configure PostGIS "
+"raster on windows</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:44
+#, no-c-format
+msgid ""
+"If you are on windows, you can compile yourself, or use the <ulink url="
+"\"http://postgis.net/windows_downloads\">pre-compiled PostGIS Raster windows "
+"binaries</ulink>. If you are on Mac OSX Leopard or Snow Leopard, there are "
+"binaries available at <ulink url=\"http://www.kyngchaos.com/software/postgres"
+"\">Kyng Chaos Mac OSX PostgreSQL/GIS binaries</ulink>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:50
+#, no-c-format
+msgid ""
+"Then to enable raster support in your database, run the rtpostgis.sql file "
+"in your database. To upgrade an existing install use "
+"rtpostgis_upgrade_minor..sql instead of rtpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:51
+#, no-c-format
+msgid ""
+"For other platforms, you generally need to compile yourself. Dependencies "
+"are PostGIS and GDAL. For more details about compiling from source, please "
+"refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"Documentation01#a2.3-CompilingandInstallingfromSources\">Installing PostGIS "
+"Raster from source (in prior versions of PostGIS)</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:57
+#, no-c-format
+msgid ""
+"I get error could not load library \"C:/Program Files/PostgreSQL/8.4/lib/"
+"rtpostgis.dll\": The specified module could not be found. or could not load "
+"library on Linux when trying to run rtpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:62
+#, no-c-format
+msgid ""
+"rtpostgis.so/dll is built with dependency on libgdal.dll/so. Make sure for "
+"Windows you have libgdal-1.dll in the bin folder of your PostgreSQL install. "
+"For Linux libgdal has to be in your path or bin folder."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:64
+#, no-c-format
+msgid ""
+"You may also run into different errors if you don't have PostGIS installed "
+"in your database. Make sure to install PostGIS first in your database before "
+"trying to install the raster support."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:71
+#, no-c-format
+msgid "How do I load Raster data into PostGIS?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:75
+#, no-c-format
+msgid ""
+"The latest version of PostGIS comes packaged with a <varname>raster2pgsql</"
+"varname> raster loader executable capable of loading many kinds of rasters "
+"and also generating lower resolution overviews without any additional "
+"software. Please refer to <xref linkend=\"RT_Raster_Loader\"/> for more "
+"details. Pre-2.0 versions came with a <varname>raster2pgsql.py</varname> "
+"that required python with numpy and GDAL. This is no longer needed."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:81
+#, no-c-format
+msgid "What kind of raster file formats can I load into my database?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:85
+#, no-c-format
+msgid ""
+"Any that your GDAL library supports. GDAL supported formats are documented "
+"<ulink url=\"http://www.gdal.org/formats_list.html\">GDAL File Formats</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:86
+#, no-c-format
+msgid ""
+"Your particular GDAL install may not support all formats. To verify the ones "
+"supported by your particular GDAL install, you can use"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:87
+#, no-c-format
+msgid "raster2pgsql -G"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:93
+#, no-c-format
+msgid "Can I export my PostGIS raster data to other raster formats?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:97
+#, no-c-format
+msgid "<para>Yes</para>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:98
+#, no-c-format
+msgid ""
+"GDAL 1.7+ has a PostGIS raster driver, but is only compiled in if you choose "
+"to compile with PostgreSQL support."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:99
+#, no-c-format
+msgid ""
+"The driver currently doesn't support irregularly blocked rasters, although "
+"you can store irregularly blocked rasters in PostGIS raster data type."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:101
+#, no-c-format
+msgid ""
+"If you are compiling from source, you need to include in your configure "
+"<programlisting>--with-pg=path/to/pg_config</programlisting> to enable the "
+"driver. Refer to <ulink url=\"http://trac.osgeo.org/gdal/wiki/BuildHints"
+"\">GDAL Build Hints</ulink> for tips on building GDAL against in various OS "
+"platforms."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:106
+#, no-c-format
+msgid ""
+"If your version of GDAL is compiled with the PostGIS Raster driver you "
+"should see PostGIS Raster in list when you do"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:108
+#, no-c-format
+msgid "gdalinfo --formats"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:110
+#, no-c-format
+msgid "To get a summary about your raster via GDAL use gdalinfo:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:111
+#, no-c-format
+msgid ""
+"gdalinfo  \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' "
+"password='whatever' schema='someschema' table=sometable\""
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:114
+#, no-c-format
+msgid ""
+"To export data to other raster formats, use gdal_translate the below will "
+"export all data from a table to a PNG file at 10% size."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:116
+#, no-c-format
+msgid ""
+"Depending on your pixel band types, some translations may not work if the "
+"export format does not support that Pixel type. For example floating point "
+"band types and 32 bit unsigned ints will not translate easily to JPG or some "
+"others."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:119
+#, no-c-format
+msgid "Here is an example simple translation"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:120
+#, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable\" C:\\somefile.png"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:121
+#, no-c-format
+msgid ""
+"You can also use SQL where clauses in your export using the where=... in "
+"your driver connection string. Below are some using a where clause"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:123
+#, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='filename=\\'abcd.sid\\''\" \" C:\\somefile.png"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:124
+#, no-c-format
+msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='ST_Intersects(rast, "
+"ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" C:\\intersectregion.png"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:125
+#, no-c-format
+msgid ""
+"To see more examples and syntax refer to <ulink url=\"http://trac.osgeo.org/"
+"gdal/wiki/frmts_wtkraster.html#a3.2-Readingrasterdatafromthedatabase"
+"\">Reading Raster Data of PostGIS Raster section</ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:130
+#, no-c-format
+msgid ""
+"Are their binaries of GDAL available already compiled with PostGIS Raster "
+"suppport?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:132
+#, no-c-format
+msgid ""
+"Yes. Check out the page <ulink url=\"http://trac.osgeo.org/gdal/wiki/"
+"DownloadingGdalBinaries\">GDAL Binaries</ulink> page. Any compiled with "
+"PostgreSQL support should have PostGIS Raster in them."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:134
+#, no-c-format
+msgid ""
+"PostGIS Raster is undergoing many changes. If you want to get the latest "
+"nightly build for Windows -- then check out the Tamas Szekeres nightly "
+"builds built with Visual Studio which contain GDAL trunk, Python Bindings "
+"and MapServer executables and PostGIS Raster driver built-in. Just click the "
+"SDK bat and run your commands from there. <ulink url=\"http://vbkto.dyndns."
+"org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink>. Also available are VS "
+"project files."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:138
+#, no-c-format
+msgid ""
+"<ulink url=\"http://fwtools.maptools.org/\">FWTools latest stable version "
+"for Windows is compiled with Raster support</ulink>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:144
+#, no-c-format
+msgid "What tools can I use to view PostGIS raster data?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:148
+#, no-c-format
+msgid ""
+"You can use MapServer compiled with GDAL 1.7+ and PostGIS Raster driver "
+"support to view Raster data. QuantumGIS (QGIS) now supports viewing of "
+"PostGIS Raster if you have PostGIS raster driver installed."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:150
+#, no-c-format
+msgid ""
+"In theory any tool that renders data using GDAL can support PostGIS raster "
+"data or support it with fairly minimal effort. Again for Windows, Tamas' "
+"binaries <ulink url=\"http://vbkto.dyndns.org/sdk/\">http://vbkto.dyndns.org/"
+"sdk/</ulink> are a good choice if you don't want the hassle of having to "
+"setup to compile your own."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:157
+#, no-c-format
+msgid "How can I add a PostGIS raster layer to my MapServer map?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:161
+#, no-c-format
+msgid ""
+"First you need GDAL 1.7 or higher compiled with PostGIS raster support. GDAL "
+"1.8 or above is preferred since many issues have been fixed in 1.8 and more "
+"PostGIS raster issues fixed in trunk version."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:163
+#, no-c-format
+msgid ""
+"You can much like you can with any other raster. Refer to <ulink url="
+"\"http://mapserver.org/input/raster.html\">MapServer Raster processing "
+"options</ulink> for list of various processing functions you can use with "
+"MapServer raster layers."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:166
+#, no-c-format
+msgid ""
+"What makes PostGIS raster data particularly interesting, is that since each "
+"tile can have various standard database columns, you can segment it in your "
+"data source"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:168
+#, no-c-format
+msgid ""
+"Below is an example of how you would define a PostGIS raster layer in "
+"MapServer."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:169
+#, no-c-format
+msgid ""
+"The mode=2 is required for tiled rasters and was added in PostGIS 2.0 and "
+"GDAL 1.8 drivers. This does not exist in GDAL 1.7 drivers."
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:170
+#, no-c-format
+msgid ""
+"-- displaying raster with standard raster options\n"
+"LAYER\n"
+"        NAME coolwktraster\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        PROCESSING \"SCALE=AUTO\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"        CLASS\n"
+"                NAME \"boring\"\n"
+"                EXPRESSION ([pixel] < 20)\n"
+"                COLOR 250 250 250\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"mildly interesting\"\n"
+"                EXPRESSION ([pixel] > 20 AND [pixel] < 1000)\n"
+"                COLOR 255 0 0\n"
+"        END\n"
+"        CLASS\n"
+"                NAME \"very interesting\"\n"
+"                EXPRESSION ([pixel] >= 1000)\n"
+"                COLOR 0 255 0\n"
+"        END\n"
+"END"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:172
+#, no-c-format
+msgid ""
+"-- displaying raster with standard raster options and a where clause\n"
+"LAYER\n"
+"        NAME soil_survey2009\n"
+"        TYPE raster\n"
+"        STATUS ON\n"
+"        DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"                schema='someschema' table='cooltable' "
+"where='survey_year=2009' mode='2'\"        \n"
+"        PROCESSING \"NODATA=0\"\n"
+"        #... other standard raster processing functions here\n"
+"        #... classes are optional but useful for 1 band data\n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:180
+#, no-c-format
+msgid "What functions can I currently use with my raster data?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:184
+#, no-c-format
+msgid ""
+"Refer to the list of <xref linkend=\"RT_reference\"/>. There are more, but "
+"this is still a work in progress."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:186
+#, no-c-format
+msgid ""
+"Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"PlanningAndFunding\">PostGIS Raster roadmap page</ulink> for details of what "
+"you can expect in the future."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:194
+#, no-c-format
+msgid ""
+"I am getting error ERROR: function st_intersects(raster, unknown) is not "
+"unique or st_union(geometry,text) is not unique. How do I fix?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:198
+#, no-c-format
+msgid ""
+"The function is not unique error happens if one of your arguments is a "
+"textual representation of a geometry instead of a geometry. In these cases, "
+"PostgreSQL marks the textual representation as an unknown type, which means "
+"it can fall into the st_intersects(raster, geometry) or st_intersects(raster,"
+"raster) thus resulting in a non-unique case since both functions can in "
+"theory support your request. To prevent this, you need to cast the geometry "
+"to a geometry."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:199
+#, no-c-format
+msgid "For example if your code looks like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:200
+#, no-c-format
+msgid ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:201
+#, no-c-format
+msgid ""
+"Cast the textual geometry representation to a geometry by changing your code "
+"to this:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:202
+#, no-c-format
+msgid ""
+"SELECT rast\n"
+" FROM my_raster\n"
+"   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:208
+#, no-c-format
+msgid ""
+"How is PostGIS Raster different from Oracle GeoRaster (SDO_GEORASTER) and "
+"SDO_RASTER types?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:212
+#, no-c-format
+msgid ""
+"For a more extensive discussion on this topic, check out Jorge Arévalo "
+"<ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-georaster-part-"
+"i/\">Oracle GeoRaster and PostGIS Raster: First impressions </ulink>"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:213
+#, no-c-format
+msgid ""
+"The major advantage of one-georeference-by-raster over one-georeference-by-"
+"layer is to allow:"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:214
+#, no-c-format
+msgid ""
+"* coverages to be not necessarily rectangular (which is often the case of "
+"raster coverage covering large extents. See the possible raster arrangements "
+"in the documentation)"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:215
+#, no-c-format
+msgid ""
+"* rasters to overlaps (which is necessary to implement lossless vector to "
+"raster conversion)"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:216
+#, no-c-format
+msgid ""
+"These arrangements are possible in Oracle as well, but they imply the "
+"storage of multiple SDO_GEORASTER objects linked to as many SDO_RASTER "
+"tables. A complex coverage can lead to hundreds of tables in the database. "
+"With PostGIS Raster you can store a similar raster arrangement into a unique "
+"table."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:221
+#, no-c-format
+msgid ""
+"It's a bit like if PostGIS would force you to store only full rectangular "
+"vector coverage without gaps or overlaps (a perfect rectangular topological "
+"layer). This is very practical in some applications but practice has shown "
+"that it is not realistic or desirable for most geographical coverages. "
+"Vector structures needs the flexibility to store discontinuous and non-"
+"rectangular coverages. We think it is a big advantage that raster structure "
+"should benefit as well."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:229
+#, no-c-format
+msgid ""
+"raster2pgsql load of large file fails with String of N bytes is too long for "
+"encoding conversion?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:233
+#, no-c-format
+msgid ""
+"raster2pgsql doesn't make any connections to your database when generating "
+"the file to load. If your database has set an explicit client encoding "
+"different from your database encoding, then when loading large raster files "
+"(above 30 MB in size), you may run into a <code>bytes is too long for "
+"encoding conversion</code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:235
+#, no-c-format
+msgid ""
+"This generally happens if for example you have your database in UTF8, but to "
+"support windows apps, you have the client encoding set to <code>WIN1252</"
+"code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:236
+#, no-c-format
+msgid ""
+"To work around this make sure the client encoding is the same as your "
+"database encoding during load. You can do this by explicitly setting the "
+"encoding in your load script. Example, if you are on windows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:237
+#, no-c-format
+msgid "set PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:238
+#, no-c-format
+msgid "If you are on Unix/Linux"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:239
+#, no-c-format
+msgid "export PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:240
+#, no-c-format
+msgid ""
+"Gory details of this issue are detailed in <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/2209\">http://trac.osgeo.org/postgis/ticket/2209</ulink>"
+msgstr ""
diff --git a/doc/po/pl/installation.xml.po b/doc/po/pl/installation.xml.po
new file mode 100644
index 0000000..0424cb0
--- /dev/null
+++ b/doc/po/pl/installation.xml.po
@@ -0,0 +1,2953 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: installation.xml:3
+#, no-c-format
+msgid "PostGIS Installation"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:5
+#, no-c-format
+msgid "This chapter details the steps required to install PostGIS."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:10
+#, no-c-format
+msgid "Short Version"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:11
+#, no-c-format
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:12
+#, no-c-format
+msgid ""
+"tar xvfz postgis-&last_release_version;.tar.gz\n"
+"cd postgis-&last_release_version;\n"
+"./configure\n"
+"make\n"
+"make install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:13
+#, no-c-format
+msgid ""
+"Once postgis is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:14
+#, no-c-format
+msgid ""
+"The raster support is currently optional, but installed by default. For "
+"enabling using the PostgreSQL 9.1+ extensions model raster is required. "
+"Using the extension enable process is preferred and more user-friendly. To "
+"spatially enable your database:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:15
+#, no-c-format
+msgid ""
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_topology;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_tiger_geocoder;\"\n"
+"-- if you built with sfcgal support --\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_sfcgal;\""
+msgstr ""
+
+#. Tag: para
+#: installation.xml:18
+#, no-c-format
+msgid ""
+"Please refer to <xref linkend=\"make_install_postgis_extensions\"/> for more "
+"details about querying installed/available extensions and upgrading "
+"extensions, or switching from a non-extension install to an extension "
+"install."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:20
+#, no-c-format
+msgid ""
+"For those running who decided for some reason not to compile with raster "
+"support, or just are old-fashioned, here are longer more painful "
+"instructions for you:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:21
+#, no-c-format
+msgid ""
+"All the .sql files once installed will be installed in share/contrib/postgis-"
+"&last_minor_version; folder of your PostgreSQL install"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:24
+#, no-c-format
+msgid ""
+"createdb yourdatabase\n"
+"createlang plpgsql yourdatabase\n"
+"psql -d yourdatabase -f postgis.sql\n"
+"psql -d yourdatabase -f postgis_comments.sql\n"
+"psql -d yourdatabase -f spatial_ref_sys.sql\n"
+"psql -d yourdatabase -f rtpostgis.sql\n"
+"psql -d yourdatabase -f raster_comments.sql\n"
+"psql -d yourdatabase -f topology.sql\n"
+"psql -d yourdatabase -f topology_comments.sql\n"
+"--if you built with sfcgal support --\n"
+"psql -d yourdatabase -f sfcgal.sql\n"
+"psql -d yourdatabase -f sfcgal_comments.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:26
+#, no-c-format
+msgid ""
+"The rest of this chapter goes into detail each of the above installation "
+"steps."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:33
+#, no-c-format
+msgid "Install Requirements"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:35
+#, no-c-format
+msgid "PostGIS has the following requirements for building and usage:"
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:40
+#, no-c-format
+msgid "Required"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:45
+#, no-c-format
+msgid ""
+"PostgreSQL &min_postgres_version; or higher. A complete installation of "
+"PostgreSQL (including server headers) is required. PostgreSQL is available "
+"from <ulink url=\"http://www.postgresql.org\"> http://www.postgresql.org </"
+"ulink> ."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:54
+#, no-c-format
+msgid ""
+"For a full PostgreSQL / PostGIS support matrix and PostGIS/GEOS support "
+"matrix refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiPostgreSQLPostGIS\">http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiPostgreSQLPostGIS</ulink>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:60
+#, no-c-format
+msgid ""
+"GNU C compiler (<filename>gcc</filename>). Some other ANSI C compilers can "
+"be used to compile PostGIS, but we find far fewer problems when compiling "
+"with <filename>gcc</filename>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:68
+#, no-c-format
+msgid ""
+"GNU Make (<filename>gmake</filename> or <filename>make</filename>). For many "
+"systems, GNU <filename>make</filename> is the default version of make. Check "
+"the version by invoking <filename>make -v</filename>. Other versions of "
+"<filename>make</filename> may not process the PostGIS <filename>Makefile</"
+"filename> properly."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:78
+#, no-c-format
+msgid ""
+"Proj4 reprojection library, version 4.6.0 or greater. The Proj4 library is "
+"used to provide coordinate reprojection support within PostGIS. Proj4 is "
+"available for download from <ulink url=\"http://trac.osgeo.org/proj/\"> "
+"http://trac.osgeo.org/proj/ </ulink> ."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:90
+#, no-c-format
+msgid ""
+"GEOS geometry library, version 3.3 or greater, but GEOS 3.4+ is recommended "
+"to take full advantage of all the new functions and features. Without GEOS "
+"3.4, you will be missing some major enhancements such as ST_Triangles and "
+"long-running function interruption, and improvements to geometry validation "
+"and making geometries valid such as ST_ValidDetail and ST_MakeValid. GEOS "
+"3.3.2+ is also required for topology support. GEOS is available for download "
+"from <ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/ "
+"</ulink> and 3.4+ is backward-compatible with older versions so fairly safe "
+"to upgrade."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:100
+#, no-c-format
+msgid ""
+"LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports "
+"functions (ST_GeomFromGML and ST_GeomFromKML). LibXML2 is available for "
+"download from <ulink url=\"http://xmlsoft.org/downloads.html\">http://"
+"xmlsoft.org/downloads.html</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:107
+#, no-c-format
+msgid ""
+"JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON "
+"via the function ST_GeomFromGeoJson. JSON-C is available for download from "
+"<ulink url=\"https://github.com/json-c/json-c/releases\">https://github.com/"
+"json-c/json-c/releases/</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:115
+#, no-c-format
+msgid ""
+"GDAL, version 1.8 or higher (1.9 or higher is strongly recommended since "
+"some things will not work well or behavior differently with lower versions). "
+"This is required for raster support and to be able to install with "
+"<code>CREATE EXTENSION postgis</code> so highly recommended for those "
+"running 9.1+. <ulink url=\"http://trac.osgeo.org/gdal/wiki/DownloadSource"
+"\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:123
+#, no-c-format
+msgid "Optional"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:128
+#, no-c-format
+msgid ""
+"GDAL (pseudo optional) only if you don't want raster and don't care about "
+"installing with <code>CREATE EXTENSION postgis</code> can you leave it out. "
+"Keep in mind other extensions may have a requires postgis extension which "
+"will prevent you from installing them unless you install postgis as an "
+"extension. So it is highly recommended you compile with GDAL support."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:134
+#, no-c-format
+msgid ""
+"GTK (requires GTK+2.0, 2.8+) to compile the shp2pgsql-gui shape file loader. "
+"<ulink url=\"http://www.gtk.org/\"> http://www.gtk.org/ </ulink> ."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:144
+#, no-c-format
+msgid ""
+"SFCGAL, version 1.0 (or higher) could be used to provide additional 2D and "
+"3D advanced analysis functions to PostGIS cf <xref linkend=\"reference_sfcgal"
+"\"/>. And also allow to use SFCGAL rather than GEOS for some 2D functions "
+"provided by both backends (like ST_Intersection or ST_Area, for instance). A "
+"PostgreSQL configuration variable <code>postgis.backend</code> allow end "
+"user to control which backend he want to use if SFCGAL is installed (GEOS by "
+"default). Nota: SFCGAL 1.0 require at least CGAL 4.1 and Boost 1.46 (cf: "
+"<ulink url=\"http://oslandia.github.io/SFCGAL/installation.html\">http://"
+"oslandia.github.io/SFCGAL/installation.html</ulink>) <ulink url=\"https://"
+"github.com/Oslandia/SFCGAL\">https://github.com/Oslandia/SFCGAL</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:152
+#, no-c-format
+msgid ""
+"In order to build the <xref linkend=\"Address_Standardizer\"/> you will also "
+"need PCRE <ulink url=\"http://www.pcre.org\">http://www.pcre.org</ulink> "
+"(which generally is already installed on nix systems). <code>Regex::"
+"Assemble</code> perl CPAN package is only needed if you want to rebuild the "
+"data encoded in <filename>parseaddress-stcities.h</filename>. <xref linkend="
+"\"Address_Standardizer\"/> will automatically be built if it detects a PCRE "
+"library, or you pass in a valid <varname>--with-pcre-dir=/path/to/pcre</"
+"varname> during configure."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:159
+#, no-c-format
+msgid ""
+"CUnit (<filename>CUnit</filename>). This is needed for regression testing. "
+"<ulink url=\"http://cunit.sourceforge.net/\">http://cunit.sourceforge.net/</"
+"ulink>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:165
+#, no-c-format
+msgid ""
+"Apache Ant (<filename>ant</filename>) is required for building any of the "
+"drivers under the <filename>java</filename> directory. Ant is available from "
+"<ulink url=\"http://ant.apache.org\"> http://ant.apache.org </ulink> ."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:177
+#, no-c-format
+msgid ""
+"DocBook (<filename>xsltproc</filename>) is required for building the "
+"documentation. Docbook is available from <ulink url=\"http://www.docbook.org/"
+"\"> http://www.docbook.org/ </ulink> ."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:188
+#, no-c-format
+msgid ""
+"DBLatex (<filename>dblatex</filename>) is required for building the "
+"documentation in PDF format. DBLatex is available from <ulink url=\"http://"
+"dblatex.sourceforge.net/\"> http://dblatex.sourceforge.net/ </ulink> ."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:199
+#, no-c-format
+msgid ""
+"ImageMagick (<filename>convert</filename>) is required to generate the "
+"images used in the documentation. ImageMagick is available from <ulink url="
+"\"http://www.imagemagick.org/\"> http://www.imagemagick.org/ </ulink> ."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:212
+#, no-c-format
+msgid "Getting the Source"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:214
+#, no-c-format
+msgid ""
+"Retrieve the PostGIS source archive from the downloads website <ulink url="
+"\"&postgis_download_url;\"> &postgis_download_url; </ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:221
+#, no-c-format
+msgid ""
+"wget &postgis_download_url;\n"
+"tar -xvzf postgis-&last_release_version;.tar.gz"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:223
+#, no-c-format
+msgid ""
+"This will create a directory called <varname>postgis-&last_release_version;</"
+"varname> in the current working directory."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:229
+#, no-c-format
+msgid ""
+"Alternatively, checkout the source from the <ulink url=\"http://subversion."
+"apache.org/\"> svn </ulink> repository <ulink url=\"http://svn.osgeo.org/"
+"postgis/trunk/\"> http://svn.osgeo.org/postgis/trunk/ </ulink> ."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:241
+#, no-c-format
+msgid ""
+"svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-"
+"&last_release_version;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:243
+#, no-c-format
+msgid ""
+"Change into the newly created <varname>postgis-&last_release_version;</"
+"varname> directory to continue the installation."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:251
+#, no-c-format
+msgid "Compiling and Install from Source: Detailed"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:254
+#, no-c-format
+msgid ""
+"Many OS systems now include pre-built packages for PostgreSQL/PostGIS. In "
+"many cases compilation is only necessary if you want the most bleeding edge "
+"versions or you are a package maintainer."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:259
+#, no-c-format
+msgid ""
+"This section includes general compilation instructions, if you are compiling "
+"for Windows etc or another OS, you may find additional more detailed help at "
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiInstall\">PostGIS "
+"User contributed compile guides</ulink> and <ulink url=\"http://trac.osgeo."
+"org/postgis/wiki/DevWikiMain\">PostGIS Dev Wiki</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:261
+#, no-c-format
+msgid ""
+"Pre-Built Packages for various OS are listed in <ulink url=\"http://trac."
+"osgeo.org/postgis/wiki/UsersWikiPackages\">PostGIS Pre-built Packages</ulink>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:262
+#, no-c-format
+msgid ""
+"If you are a windows user, you can get stable builds via Stackbuilder or "
+"<ulink url=\"http://www.postgis.org/download/windows/\">PostGIS Windows "
+"download site</ulink> We also have <ulink url=\"http://www.postgis.org/"
+"download/windows/experimental.php\">very bleeding-edge windows experimental "
+"builds</ulink> that are built usually once or twice a week or whenever "
+"anything exciting happens. You can use these to experiment with the in "
+"progress releases of PostGIS"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:267
+#, no-c-format
+msgid ""
+"The PostGIS module is an extension to the PostgreSQL backend server. As "
+"such, PostGIS &last_release_version; <emphasis>requires</emphasis> full "
+"PostgreSQL server headers access in order to compile. It can be built "
+"against PostgreSQL versions &min_postgres_version; or higher. Earlier "
+"versions of PostgreSQL are <emphasis>not</emphasis> supported."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:275
+#, no-c-format
+msgid ""
+"Refer to the PostgreSQL installation guides if you haven't already installed "
+"PostgreSQL. <ulink url=\"http://www.postgresql.org\"> http://www.postgresql."
+"org </ulink> ."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:285
+#, no-c-format
+msgid ""
+"For GEOS functionality, when you install PostgresSQL you may need to "
+"explicitly link PostgreSQL against the standard C++ library:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:290
+#, no-c-format
+msgid "LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE]"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:292
+#, no-c-format
+msgid ""
+"This is a workaround for bogus C++ exceptions interaction with older "
+"development tools. If you experience weird problems (backend unexpectedly "
+"closed or similar things) try this trick. This will require recompiling your "
+"PostgreSQL from scratch, of course."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:300
+#, no-c-format
+msgid ""
+"The following steps outline the configuration and compilation of the PostGIS "
+"source. They are written for Linux users and will not work on Windows or Mac."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:307
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:309
+#, no-c-format
+msgid ""
+"As with most linux installations, the first step is to generate the Makefile "
+"that will be used to build the source code. This is done by running the "
+"shell script"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:319
+#, no-c-format
+msgid ""
+"With no additional parameters, this command will attempt to automatically "
+"locate the required components and libraries needed to build the PostGIS "
+"source code on your system. Although this is the most common usage of "
+"<command>./configure</command>, the script accepts several parameters for "
+"those who have the required libraries and programs in non-standard locations."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:328
+#, no-c-format
+msgid ""
+"The following list shows only the most commonly used parameters. For a "
+"complete list, use the <command>--help</command> or <command>--help=short</"
+"command> parameters."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:338
+#, no-c-format
+msgid ""
+"This is the location the PostGIS libraries and SQL scripts will be installed "
+"to. By default, this location is the same as the detected PostgreSQL "
+"installation."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:345
+#, no-c-format
+msgid ""
+"This parameter is currently broken, as the package will only install into "
+"the PostgreSQL installation directory. Visit <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/635\"> http://trac.osgeo.org/postgis/ticket/635 </ulink> "
+"to track this bug."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:360
+#, no-c-format
+msgid ""
+"PostgreSQL provides a utility called <command>pg_config</command> to enable "
+"extensions like PostGIS to locate the PostgreSQL installation directory. Use "
+"this parameter (<command>--with-pgconfig=/path/to/pg_config</command>) to "
+"manually specify a particular PostgreSQL installation that PostGIS will "
+"build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:374
+#, no-c-format
+msgid ""
+"GDAL, a required library, provides functionality needed for raster support "
+"<command>gdal-config</command> to enable software installations to locate "
+"the GDAL installation directory. Use this parameter (<command>--with-"
+"gdalconfig=/path/to/gdal-config</command>) to manually specify a particular "
+"GDAL installation that PostGIS will build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:388
+#, no-c-format
+msgid ""
+"GEOS, a required geometry library, provides a utility called <command>geos-"
+"config</command> to enable software installations to locate the GEOS "
+"installation directory. Use this parameter (<command>--with-geosconfig=/path/"
+"to/geos-config</command>) to manually specify a particular GEOS installation "
+"that PostGIS will build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:402
+#, no-c-format
+msgid ""
+"LibXML is the library required for doing GeomFromKML/GML processes. It "
+"normally is found if you have libxml installed, but if not or you want a "
+"specific version used, you'll need to point PostGIS at a specific "
+"<filename>xml2-config</filename> confi file to enable software installations "
+"to locate the LibXML installation directory. Use this parameter (<command>>--"
+"with-xml2config=/path/to/xml2-config</command>) to manually specify a "
+"particular LibXML installation that PostGIS will build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:420
+#, no-c-format
+msgid ""
+"Proj4 is a reprojection library required by PostGIS. Use this parameter "
+"(<command>--with-projdir=/path/to/projdir</command>) to manually specify a "
+"particular Proj4 installation directory that PostGIS will build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:432
+#, no-c-format
+msgid "Directory where iconv is installed."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:441
+#, no-c-format
+msgid ""
+"<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink> is an MIT-"
+"licensed JSON library required by PostGIS ST_GeomFromJSON support. Use this "
+"parameter (<command>--with-jsondir=/path/to/jsondir</command>) to manually "
+"specify a particular JSON-C installation directory that PostGIS will build "
+"against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:453
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.pcre.org/\">PCRE</ulink> is an BSD-licensed Perl "
+"Compatible Regular Expression library required by address_standardizer "
+"extension. Use this parameter (<command>--with-pcredir=/path/to/pcredir</"
+"command>) to manually specify a particular PCRE installation directory that "
+"PostGIS will build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:465
+#, no-c-format
+msgid ""
+"Compile the data import GUI (requires GTK+2.0). This will create shp2pgsql-"
+"gui graphical interface to shp2pgsql."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:474
+#, no-c-format
+msgid ""
+"Compile with raster support. This will build rtpostgis-"
+"&last_release_version; library and rtpostgis.sql file. This may not be "
+"required in final release as plan is to build in raster support by default."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:483
+#, no-c-format
+msgid ""
+"Compile with topology support. This will build the topology.sql file. There "
+"is no corresponding library as all logic needed for topology is in postgis-"
+"&last_release_version; library."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:492
+#, no-c-format
+msgid ""
+"By default PostGIS will try to detect gettext support and compile with it, "
+"however if you run into incompatibility issues that cause breakage of "
+"loader, you can disable it entirely with this command. Refer to ticket "
+"<ulink url=\"http://trac.osgeo.org/postgis/ticket/748\">http://trac.osgeo."
+"org/postgis/ticket/748</ulink> for an example issue solved by configuring "
+"with this. NOTE: that you aren't missing much by turning this off. This is "
+"used for international help/label support for the GUI loader which is not "
+"yet documented and still experimental."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:503
+#, no-c-format
+msgid ""
+"By default PostGIS will not install with sfcgal support without this switch. "
+"<varname>PATH</varname> is an optional argument that allows to specify an "
+"alternate PATH to sfcgal-config."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:511
+#, no-c-format
+msgid ""
+"If you obtained PostGIS from the SVN <ulink url=\"http://svn.osgeo.org/"
+"postgis/trunk/\"> repository </ulink> , the first step is really to run the "
+"script"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:523
+#, no-c-format
+msgid ""
+"This script will generate the <command>configure</command> script that in "
+"turn is used to customize the installation of PostGIS."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:528
+#, no-c-format
+msgid ""
+"If you instead obtained PostGIS as a tarball, running <command>./autogen.sh</"
+"command> is not necessary as <command>configure</command> has already been "
+"generated."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:537
+#, no-c-format
+msgid "Building"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:539
+#, no-c-format
+msgid ""
+"Once the Makefile has been generated, building PostGIS is as simple as "
+"running"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:548
+#, no-c-format
+msgid ""
+"The last line of the output should be \"<code>PostGIS was built "
+"successfully. Ready to install.</code>\""
+msgstr ""
+
+#. Tag: para
+#: installation.xml:553
+#, no-c-format
+msgid ""
+"As of PostGIS v1.4.0, all the functions have comments generated from the "
+"documentation. If you wish to install these comments into your spatial "
+"databases later, run the command which requires docbook. The "
+"postgis_comments.sql and other package comments files raster_comments.sql, "
+"topology_comments.sql are also packaged in the tar.gz distribution in the "
+"doc folder so no need to make comments if installing from the tar ball."
+msgstr ""
+
+#. Tag: command
+#: installation.xml:563 installation.xml:587
+#, no-c-format
+msgid "make comments"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:566
+#, no-c-format
+msgid ""
+"Introduced in PostGIS 2.0. This generates html cheat sheets suitable for "
+"quick reference or for student handouts. This requires xsltproc to build and "
+"will generate 4 files in doc folder <filename>topology_cheatsheet.html</"
+"filename>, <filename>tiger_geocoder_cheatsheet.html</filename>, "
+"<filename>raster_cheatsheet.html</filename>, <filename>postgis_cheatsheet."
+"html</filename>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:571
+#, no-c-format
+msgid ""
+"You can download some pre-built ones available in html and pdf from <ulink "
+"url=\"http://www.postgis.us/study_guides\">PostGIS / PostgreSQL Study "
+"Guides</ulink>"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:574
+#, no-c-format
+msgid "make cheatsheets"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:579
+#, no-c-format
+msgid "Building PostGIS Extensions and Deploying them"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:581
+#, no-c-format
+msgid ""
+"The PostGIS extensions are built and installed automatically if you are "
+"using PostgreSQL 9.1+."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:584
+#, no-c-format
+msgid ""
+"If you are building from source repository, you need to build the function "
+"descriptions first. These get built if you have docbook installed. You can "
+"also manually build with the statement:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:589
+#, no-c-format
+msgid ""
+"Building the comments is not necessary if you are building from a release "
+"tar ball since these are packaged pre-built with the tar ball already."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:590
+#, no-c-format
+msgid ""
+"If you are building against PostgreSQL 9.1, the extensions should "
+"automatically build as part of the make install process. You can if needed "
+"build from the extensions folders or copy files if you need them on a "
+"different server."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:592
+#, no-c-format
+msgid ""
+"cd extensions\n"
+"cd postgis\n"
+"make clean\n"
+"make \n"
+"make install\n"
+"cd ..\n"
+"cd postgis_topology\n"
+"make clean\n"
+"make \n"
+"make install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:593
+#, no-c-format
+msgid ""
+"The extension files will always be the same for the same version of PostGIS "
+"regardless of OS, so it is fine to copy over the extension files from one OS "
+"to another as long as you have the PostGIS binaries already installed on "
+"your servers."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:595
+#, no-c-format
+msgid ""
+"If you want to install the extensions manually on a separate server "
+"different from your development, You need to copy the following files from "
+"the extensions folder into the <filename>PostgreSQL / share / extension</"
+"filename> folder of your PostgreSQL install as well as the needed binaries "
+"for regular PostGIS if you don't have them already on the server."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:602
+#, no-c-format
+msgid ""
+"These are the control files that denote information such as the version of "
+"the extension to install if not specified. <filename>postgis.control, "
+"postgis_topology.control</filename>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:608
+#, no-c-format
+msgid ""
+"All the files in the /sql folder of each extension. Note that these need to "
+"be copied to the root of the PostgreSQL share/extension folder "
+"<filename>extensions/postgis/sql/*.sql</filename>, <filename>extensions/"
+"postgis_topology/sql/*.sql</filename>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:614
+#, no-c-format
+msgid ""
+"Once you do that, you should see <varname>postgis</varname>, "
+"<varname>postgis_topology</varname> as available extensions in PgAdmin -> "
+"extensions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:615
+#, no-c-format
+msgid ""
+"If you are using psql, you can verify that the extensions are installed by "
+"running this query:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:616
+#, no-c-format
+msgid ""
+"SELECT name, default_version,installed_version \n"
+"FROM pg_available_extensions WHERE name LIKE 'postgis%' ;\n"
+"      name       | default_version | installed_version\n"
+"-----------------+-----------------+-------------------\n"
+"postgis          | &last_release_version;     | &last_release_version;\n"
+"postgis_topology | &last_release_version;      |"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:618
+#, no-c-format
+msgid ""
+"If you have the extension installed in the database you are querying, you'll "
+"see mention in the <varname>installed_version</varname> column. If you get "
+"no records back, it means you don't have postgis extensions installed on the "
+"server at all. PgAdmin III 1.14+ will also provide this information in the "
+"<varname>extensions</varname> section of the database browser tree and will "
+"even allow upgrade or uninstall by right-clicking."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:622
+#, no-c-format
+msgid ""
+"If you have the extensions available, you can install postgis extension in "
+"your database of choice by either using pgAdmin extension interface or "
+"running these sql commands:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:623
+#, no-c-format
+msgid ""
+"CREATE EXTENSION postgis;\n"
+"CREATE EXTENSION postgis_topology;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:625
+#, no-c-format
+msgid ""
+"In psql you can use to see what versions you have installed and also what "
+"schema they are installed."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:626
+#, no-c-format
+msgid ""
+"\\connect mygisdb\n"
+"\\x \n"
+"\\dx postgis*"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:628
+#, no-c-format
+msgid ""
+"List of installed extensions\n"
+"-[ RECORD 1 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis\n"
+"Version     | &last_release_version;\n"
+"Schema      | public\n"
+"Description | PostGIS geometry, geography, and raster spat..\n"
+"-[ RECORD 2 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_tiger_geocoder\n"
+"Version     | &last_release_version;\n"
+"Schema      | tiger\n"
+"Description | PostGIS tiger geocoder and reverse geocoder\n"
+"-[ RECORD 3 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_topology\n"
+"Version     | &last_release_version;\n"
+"Schema      | topology\n"
+"Description | PostGIS topology spatial types and functions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:630
+#, no-c-format
+msgid ""
+"Extension tables <varname>spatial_ref_sys</varname>, <varname>layer</"
+"varname>, <varname>topology</varname> can not be explicitly backed up. They "
+"can only be backed up when the respective <varname>postgis</varname> or "
+"<varname>postgis_topology</varname> extension is backed up, which only seems "
+"to happen when you backup the whole database. As of PostGIS 2.0.1, only srid "
+"records not packaged with PostGIS are backed up when the database is backed "
+"up so don't go around changing srids we package and expect your changes to "
+"be there. Put in a ticket if you find an issue. The structures of extension "
+"tables are never backed up since they are created with <code>CREATE "
+"EXTENSION</code> and assumed to be the same for a given version of an "
+"extension. These behaviors are built into the current PostgreSQL extension "
+"model, so nothing we can do about it."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:635
+#, no-c-format
+msgid ""
+"If you installed &last_release_version;, without using our wonderful "
+"extension system, you can change it to be extension based by first upgrading "
+"to the latest micro version running the upgrade scripts: "
+"<filename>postgis_upgrade_22_minor.sql</filename>,"
+"<filename>raster_upgrade_22_minor.sql</filename>,"
+"<filename>topology_upgrade_22_minor.sql</filename>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:636
+#, no-c-format
+msgid ""
+"If you installed postgis without raster support, you'll need to install "
+"raster support first (using the full <filename>rtpostgis.sql</filename>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:637
+#, no-c-format
+msgid ""
+"Then you can run the below commands to package the functions in their "
+"respective extension."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:638
+#, no-c-format
+msgid ""
+"CREATE EXTENSION postgis FROM unpackaged;\n"
+"CREATE EXTENSION postgis_topology FROM unpackaged;\n"
+"CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:644
+#, no-c-format
+msgid "Testing"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:646
+#, no-c-format
+msgid "If you wish to test the PostGIS build, run"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:651
+#, no-c-format
+msgid "make check"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:654
+#, no-c-format
+msgid ""
+"The above command will run through various checks and regression tests using "
+"the generated library against an actual PostgreSQL database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:660
+#, no-c-format
+msgid ""
+"If you configured PostGIS using non-standard PostgreSQL, GEOS, or Proj4 "
+"locations, you may need to add their library locations to the "
+"LD_LIBRARY_PATH environment variable."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:668
+#, no-c-format
+msgid ""
+"Currently, the <command>make check</command> relies on the <code>PATH</code> "
+"and <code>PGPORT</code> environment variables when performing the checks - "
+"it does <emphasis>not</emphasis> use the PostgreSQL version that may have "
+"been specified using the configuration parameter <command>--with-pgconfig</"
+"command>. So make sure to modify your PATH to match the detected PostgreSQL "
+"installation during configuration or be prepared to deal with the impending "
+"headaches."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:680
+#, no-c-format
+msgid ""
+"If successful, the output of the test should be similar to the following:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:685
+#, no-c-format
+msgid ""
+"CUnit - A Unit testing framework for C - Version 2.1-0\n"
+"     http://cunit.sourceforge.net/\n"
+"\n"
+"\n"
+"Suite: print_suite\n"
+"  Test: test_lwprint_default_format ... passed\n"
+"  Test: test_lwprint_format_orders ... passed\n"
+"  Test: test_lwprint_optional_format ... passed\n"
+"  Test: test_lwprint_oddball_formats ... passed\n"
+"  Test: test_lwprint_bad_formats ... passed\n"
+"Suite: misc\n"
+"  Test: test_misc_force_2d ... passed\n"
+"  Test: test_misc_simplify ... passed\n"
+"  Test: test_misc_count_vertices ... passed\n"
+"  Test: test_misc_area ... passed\n"
+"  Test: test_misc_wkb ... passed\n"
+"Suite: ptarray\n"
+"  Test: test_ptarray_append_point ... passed\n"
+"  Test: test_ptarray_append_ptarray ... passed\n"
+"  Test: test_ptarray_locate_point ... passed\n"
+"  Test: test_ptarray_isccw ... passed\n"
+"  Test: test_ptarray_signed_area ... passed\n"
+"  Test: test_ptarray_desegmentize ... passed\n"
+"  Test: test_ptarray_insert_point ... passed\n"
+"  Test: test_ptarray_contains_point ... passed\n"
+"  Test: test_ptarrayarc_contains_point ... passed\n"
+"Suite: PostGIS Computational Geometry Suite\n"
+"  Test: test_lw_segment_side ... passed\n"
+"  Test: test_lw_segment_intersects ... passed\n"
+"  Test: test_lwline_crossing_short_lines ... passed\n"
+"  Test: test_lwline_crossing_long_lines ... passed\n"
+"  Test: test_lwline_crossing_bugs ... passed\n"
+"  Test: test_lwpoint_set_ordinate ... passed\n"
+"  Test: test_lwpoint_get_ordinate ... passed\n"
+"  Test: test_point_interpolate ... passed\n"
+"  Test: test_lwline_clip ... passed\n"
+"  Test: test_lwline_clip_big ... passed\n"
+"  Test: test_lwmline_clip ... passed\n"
+"  Test: test_geohash_point ... passed\n"
+"  Test: test_geohash_precision ... passed\n"
+"  Test: test_geohash ... passed\n"
+"  Test: test_geohash_point_as_int ... passed\n"
+"  Test: test_isclosed ... passed\n"
+"Suite: buildarea\n"
+"  Test: buildarea1 ... passed\n"
+"  Test: buildarea2 ... passed\n"
+"  Test: buildarea3 ... passed\n"
+"  Test: buildarea4 ... passed\n"
+"  Test: buildarea4b ... passed\n"
+"  Test: buildarea5 ... passed\n"
+"  Test: buildarea6 ... passed\n"
+"  Test: buildarea7 ... passed\n"
+"Suite: clean\n"
+"  Test: test_lwgeom_make_valid ... passed\n"
+"Suite: PostGIS Measures Suite\n"
+"  Test: test_mindistance2d_tolerance ... passed\n"
+"  Test: test_rect_tree_contains_point ... passed\n"
+"  Test: test_rect_tree_intersects_tree ... passed\n"
+"  Test: test_lwgeom_segmentize2d ... passed\n"
+"  Test: test_lwgeom_locate_along ... passed\n"
+"  Test: test_lw_dist2d_pt_arc ... passed\n"
+"  Test: test_lw_dist2d_seg_arc ... passed\n"
+"  Test: test_lw_dist2d_arc_arc ... passed\n"
+"  Test: test_lw_arc_length ... passed\n"
+"  Test: test_lw_dist2d_pt_ptarrayarc ... passed\n"
+"  Test: test_lw_dist2d_ptarray_ptarrayarc ... passed\n"
+"Suite: node\n"
+"  Test: test_lwgeom_node ... passed\n"
+"Suite: WKT Out Suite\n"
+"  Test: test_wkt_out_point ... passed\n"
+"  Test: test_wkt_out_linestring ... passed\n"
+"  Test: test_wkt_out_polygon ... passed\n"
+"  Test: test_wkt_out_multipoint ... passed\n"
+"  Test: test_wkt_out_multilinestring ... passed\n"
+"  Test: test_wkt_out_multipolygon ... passed\n"
+"  Test: test_wkt_out_collection ... passed\n"
+"  Test: test_wkt_out_circularstring ... passed\n"
+"  Test: test_wkt_out_compoundcurve ... passed\n"
+"  Test: test_wkt_out_curvpolygon ... passed\n"
+"  Test: test_wkt_out_multicurve ... passed\n"
+"  Test: test_wkt_out_multisurface ... passed\n"
+"Suite: WKT In Suite\n"
+"  Test: test_wkt_in_point ... passed\n"
+"  Test: test_wkt_in_linestring ... passed\n"
+"  Test: test_wkt_in_polygon ... passed\n"
+"  Test: test_wkt_in_multipoint ... passed\n"
+"  Test: test_wkt_in_multilinestring ... passed\n"
+"  Test: test_wkt_in_multipolygon ... passed\n"
+"  Test: test_wkt_in_collection ... passed\n"
+"  Test: test_wkt_in_circularstring ... passed\n"
+"  Test: test_wkt_in_compoundcurve ... passed\n"
+"  Test: test_wkt_in_curvpolygon ... passed\n"
+"  Test: test_wkt_in_multicurve ... passed\n"
+"  Test: test_wkt_in_multisurface ... passed\n"
+"  Test: test_wkt_in_tin ... passed\n"
+"  Test: test_wkt_in_polyhedralsurface ... passed\n"
+"  Test: test_wkt_in_errlocation ... passed\n"
+"Suite: WKB Out Suite\n"
+"  Test: test_wkb_out_point ... passed\n"
+"  Test: test_wkb_out_linestring ... passed\n"
+"  Test: test_wkb_out_polygon ... passed\n"
+"  Test: test_wkb_out_multipoint ... passed\n"
+"  Test: test_wkb_out_multilinestring ... passed\n"
+"  Test: test_wkb_out_multipolygon ... passed\n"
+"  Test: test_wkb_out_collection ... passed\n"
+"  Test: test_wkb_out_circularstring ... passed\n"
+"  Test: test_wkb_out_compoundcurve ... passed\n"
+"  Test: test_wkb_out_curvpolygon ... passed\n"
+"  Test: test_wkb_out_multicurve ... passed\n"
+"  Test: test_wkb_out_multisurface ... passed\n"
+"  Test: test_wkb_out_polyhedralsurface ... passed\n"
+":\n"
+"Suite: Geodetic Suite\n"
+"  Test: test_sphere_direction ... passed\n"
+"  Test: test_sphere_project ... passed\n"
+"  Test: test_lwgeom_area_sphere ... passed\n"
+"  Test: test_signum ... passed\n"
+"  Test: test_gbox_from_spherical_coordinates ... passed\n"
+":\n"
+"  Test: test_geos_noop ... passed\n"
+"Suite: Internal Spatial Trees\n"
+"  Test: test_tree_circ_create ... passed\n"
+"  Test: test_tree_circ_pip ... passed\n"
+"  Test: test_tree_circ_pip2 ... passed\n"
+"  Test: test_tree_circ_distance ... passed\n"
+"Suite: triangulate\n"
+"  Test: test_lwgeom_delaunay_triangulation ... passed\n"
+"Suite: stringbuffer\n"
+"  Test: test_stringbuffer_append ... passed\n"
+"  Test: test_stringbuffer_aprintf ... passed\n"
+"Suite: surface\n"
+"  Test: triangle_parse ... passed\n"
+"  Test: tin_parse ... passed\n"
+"  Test: polyhedralsurface_parse ... passed\n"
+"  Test: surface_dimension ... passed\n"
+"Suite: homogenize\n"
+"  Test: test_coll_point ... passed\n"
+"  Test: test_coll_line ... passed\n"
+"  Test: test_coll_poly ... passed\n"
+"  Test: test_coll_coll ... passed\n"
+"  Test: test_geom ... passed\n"
+"  Test: test_coll_curve ... passed\n"
+"Suite: force_sfs\n"
+"  Test: test_sfs_11 ... passed\n"
+"  Test: test_sfs_12 ... passed\n"
+"  Test: test_sqlmm ... passed\n"
+"Suite: out_gml\n"
+"  Test: out_gml_test_precision ... passed\n"
+"  Test: out_gml_test_srid ... passed\n"
+"  Test: out_gml_test_dims ... passed\n"
+"  Test: out_gml_test_geodetic ... passed\n"
+"  Test: out_gml_test_geoms ... passed\n"
+"  Test: out_gml_test_geoms_prefix ... passed\n"
+"  Test: out_gml_test_geoms_nodims ... passed\n"
+"  Test: out_gml2_extent ... passed\n"
+"  Test: out_gml3_extent ... passed\n"
+"Suite: KML Out Suite\n"
+"  Test: out_kml_test_precision ... passed\n"
+"  Test: out_kml_test_dims ... passed\n"
+"  Test: out_kml_test_geoms ... passed\n"
+"  Test: out_kml_test_prefix ... passed\n"
+"Suite: GeoJson Out Suite\n"
+"  Test: out_geojson_test_precision ... passed\n"
+"  Test: out_geojson_test_dims ... passed\n"
+"  Test: out_geojson_test_srid ... passed\n"
+"  Test: out_geojson_test_bbox ... passed\n"
+"  Test: out_geojson_test_geoms ... passed\n"
+"Suite: SVG Out Suite\n"
+"  Test: out_svg_test_precision ... passed\n"
+"  Test: out_svg_test_dims ... passed\n"
+"  Test: out_svg_test_relative ... passed\n"
+"  Test: out_svg_test_geoms ... passed\n"
+"  Test: out_svg_test_srid ... passed\n"
+"Suite: X3D Out Suite\n"
+"  Test: out_x3d3_test_precision ... passed\n"
+"  Test: out_x3d3_test_geoms ... passed\n"
+"\n"
+"--Run Summary: Type      Total     Ran  Passed  Failed\n"
+"               suites       27      27     n/a       0\n"
+"               tests       198     198     198       0\n"
+"               asserts    1728    1728    1728       0\n"
+"\n"
+"Creating database 'postgis_reg' \n"
+"Loading PostGIS into 'postgis_reg' \n"
+"PostgreSQL 9.3beta1 on x86_64-unknown-linux-gnu, compiled by gcc (Debian "
+"4.4.5-8) 4.4.5, 64-bit\n"
+"  Postgis 2.1.0SVN - r11415 - 2013-05-11 02:48:21\n"
+"  GEOS: 3.4.0dev-CAPI-1.8.0 r3797\n"
+"  PROJ: Rel. 4.7.1, 23 September 2009\n"
+"\n"
+"Running tests\n"
+"\n"
+" loader/Point .............. ok \n"
+" loader/PointM .............. ok \n"
+" loader/PointZ .............. ok \n"
+" loader/MultiPoint .............. ok \n"
+" loader/MultiPointM .............. ok \n"
+" loader/MultiPointZ .............. ok \n"
+" loader/Arc .............. ok \n"
+" loader/ArcM .............. ok \n"
+" loader/ArcZ .............. ok \n"
+" loader/Polygon .............. ok \n"
+" loader/PolygonM .............. ok \n"
+" loader/PolygonZ .............. ok \n"
+" loader/TSTPolygon ......... ok \n"
+" loader/TSIPolygon ......... ok \n"
+" loader/TSTIPolygon ......... ok \n"
+" loader/PointWithSchema ..... ok \n"
+" loader/NoTransPoint ......... ok \n"
+" loader/NotReallyMultiPoint ......... ok \n"
+" loader/MultiToSinglePoint ......... ok \n"
+" loader/ReprojectPts ........ ok \n"
+" loader/ReprojectPtsGeog ........ ok \n"
+" loader/Latin1 .... ok \n"
+" binary .. ok \n"
+" regress .. ok \n"
+" regress_index .. ok \n"
+" regress_index_nulls .. ok \n"
+" regress_selectivity .. ok \n"
+" lwgeom_regress .. ok \n"
+" regress_lrs .. ok \n"
+" removepoint .. ok \n"
+" setpoint .. ok \n"
+" simplify .. ok \n"
+" snaptogrid .. ok \n"
+" summary .. ok \n"
+" affine .. ok \n"
+" empty .. ok \n"
+" measures .. ok \n"
+" legacy .. ok \n"
+" long_xact .. ok \n"
+" ctors .. ok \n"
+" sql-mm-serialize .. ok \n"
+" sql-mm-circularstring .. ok \n"
+" sql-mm-compoundcurve .. ok \n"
+" sql-mm-curvepoly .. ok \n"
+" sql-mm-general .. ok \n"
+" sql-mm-multicurve .. ok \n"
+" sql-mm-multisurface .. ok \n"
+" polyhedralsurface .. ok \n"
+" polygonize .. ok \n"
+" postgis_type_name .. ok \n"
+" geography .. ok \n"
+" out_geometry .. ok \n"
+" out_geography .. ok \n"
+" in_geohash .. ok \n"
+" in_gml .. ok \n"
+" in_kml .. ok \n"
+" iscollection .. ok \n"
+" regress_ogc .. ok \n"
+" regress_ogc_cover .. ok \n"
+" regress_ogc_prep .. ok \n"
+" regress_bdpoly .. ok \n"
+" regress_proj .. ok \n"
+" regress_management .. ok \n"
+" dump .. ok \n"
+" dumppoints .. ok \n"
+" boundary .. ok \n"
+" wmsservers .. ok \n"
+" wkt .. ok \n"
+" wkb .. ok \n"
+" tickets .. ok \n"
+" typmod .. ok \n"
+" remove_repeated_points .. ok \n"
+" split .. ok \n"
+" relate .. ok \n"
+" bestsrid .. ok \n"
+" concave_hull .. ok \n"
+" hausdorff .. ok \n"
+" regress_buffer_params .. ok \n"
+" offsetcurve .. ok \n"
+" relatematch .. ok \n"
+" isvaliddetail .. ok \n"
+" sharedpaths .. ok \n"
+" snap .. ok \n"
+" node .. ok \n"
+" unaryunion .. ok \n"
+" clean .. ok \n"
+" relate_bnr .. ok \n"
+" delaunaytriangles .. ok \n"
+" in_geojson .. ok \n"
+" uninstall .. ok (4112)\n"
+"\n"
+"Run tests: 90"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:689
+#, no-c-format
+msgid "Installation"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:691
+#, no-c-format
+msgid "To install PostGIS, type"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:696
+#, no-c-format
+msgid "make install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:699
+#, no-c-format
+msgid ""
+"This will copy the PostGIS installation files into their appropriate "
+"subdirectory specified by the <command>--prefix</command> configuration "
+"parameter. In particular:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:707
+#, no-c-format
+msgid ""
+"The loader and dumper binaries are installed in <filename>[prefix]/bin</"
+"filename>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:714
+#, no-c-format
+msgid ""
+"The SQL files, such as <filename>postgis.sql</filename>, are installed in "
+"<filename>[prefix]/share/contrib</filename>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:721
+#, no-c-format
+msgid ""
+"The PostGIS libraries are installed in <filename>[prefix]/lib</filename>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:728
+#, no-c-format
+msgid ""
+"If you previously ran the <command>make comments</command> command to "
+"generate the <filename>postgis_comments.sql</filename>, "
+"<filename>raster_comments.sql</filename> file, install the sql file by "
+"running"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:735
+#, no-c-format
+msgid "make comments-install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:739
+#, no-c-format
+msgid ""
+"<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</"
+"filename>, <filename>topology_comments.sql</filename> was separated from the "
+"typical build and installation targets since with it comes the extra "
+"dependency of <command>xsltproc</command>."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:749
+#, no-c-format
+msgid "Create a spatially-enabled database on PostgreSQL lower than 9.1"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:751
+#, no-c-format
+msgid ""
+"The first step in creating a PostGIS database is to create a simple "
+"PostgreSQL database."
+msgstr ""
+
+#. Tag: command
+#: installation.xml:757 installation.xml:854
+#, no-c-format
+msgid "createdb [yourdatabase]"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:760
+#, no-c-format
+msgid ""
+"Many of the PostGIS functions are written in the PL/pgSQL procedural "
+"language. As such, the next step to create a PostGIS database is to enable "
+"the PL/pgSQL language in your new database. This is accomplish by the "
+"command below command. For PostgreSQL 8.4+, this is generally already "
+"installed"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:768
+#, no-c-format
+msgid "createlang plpgsql [yourdatabase]"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:771
+#, no-c-format
+msgid ""
+"Now load the PostGIS object and function definitions into your database by "
+"loading the <filename>postgis.sql</filename> definitions file (located in "
+"<filename>[prefix]/share/contrib</filename> as specified during the "
+"configuration step)."
+msgstr ""
+
+#. Tag: command
+#: installation.xml:779
+#, no-c-format
+msgid "psql -d [yourdatabase] -f postgis.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:782
+#, no-c-format
+msgid ""
+"For a complete set of EPSG coordinate system definition identifiers, you can "
+"also load the <filename>spatial_ref_sys.sql</filename> definitions file and "
+"populate the <varname>spatial_ref_sys</varname> table. This will permit you "
+"to perform ST_Transform() operations on geometries."
+msgstr ""
+
+#. Tag: command
+#: installation.xml:790
+#, no-c-format
+msgid "psql -d [yourdatabase] -f spatial_ref_sys.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:793
+#, no-c-format
+msgid ""
+"If you wish to add comments to the PostGIS functions, the final step is to "
+"load the <filename>postgis_comments.sql</filename> into your spatial "
+"database. The comments can be viewed by simply typing <command>\\dd "
+"[function_name]</command> from a <command>psql</command> terminal window."
+msgstr ""
+
+#. Tag: command
+#: installation.xml:801
+#, no-c-format
+msgid "psql -d [yourdatabase] -f postgis_comments.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:804
+#, no-c-format
+msgid "Install raster support"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:809
+#, no-c-format
+msgid "psql -d [yourdatabase] -f rtpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:812
+#, no-c-format
+msgid ""
+"Install raster support comments. This will provide quick help info for each "
+"raster function using psql or PgAdmin or any other PostgreSQL tool that can "
+"show function comments"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:818
+#, no-c-format
+msgid "psql -d [yourdatabase] -f raster_comments.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:820
+#, no-c-format
+msgid "Install topology support"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:825
+#, no-c-format
+msgid "psql -d [yourdatabase] -f topology/topology.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:828
+#, no-c-format
+msgid ""
+"Install topology support comments. This will provide quick help info for "
+"each topology function / type using psql or PgAdmin or any other PostgreSQL "
+"tool that can show function comments"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:834
+#, no-c-format
+msgid "psql -d [yourdatabase] -f topology/topology_comments.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:837 installation.xml:874
+#, no-c-format
+msgid ""
+"If you plan to restore an old backup from prior versions in this new db, run:"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:838 installation.xml:875
+#, no-c-format
+msgid "psql -d [yourdatabase] -f legacy.sql"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:839
+#, no-c-format
+msgid ""
+"There is an alternative <filename>legacy_minimal.sql</filename> you can run "
+"instead which will install barebones needed to recover tables and work with "
+"apps like MapServer and GeoServer. If you have views that use things like "
+"distance / length etc, you'll need the full blown <filename>legacy.sql</"
+"filename>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:842 installation.xml:877
+#, no-c-format
+msgid ""
+"You can later run <filename>uninstall_legacy.sql</filename> to get rid of "
+"the deprecated functions after you are done with restoring and cleanup."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:846
+#, no-c-format
+msgid "Creating a spatial database using EXTENSIONS"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:848
+#, no-c-format
+msgid ""
+"If you are using PostgreSQL 9.1+ and have compiled and installed the "
+"extensions/ postgis modules, you can create a spatial database the new way."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:857
+#, no-c-format
+msgid ""
+"The core postgis extension installs PostGIS geometry, geography, raster, "
+"spatial_ref_sys and all the functions and comments with a simple: "
+"<programlisting>CREATE EXTENSION postgis;</programlisting> command."
+msgstr ""
+
+#. Tag: command
+#: installation.xml:863
+#, no-c-format
+msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
+msgstr ""
+
+#. Tag: para
+#: installation.xml:866
+#, no-c-format
+msgid ""
+"Topology is packaged as a separate extension and installable with command:"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:871
+#, no-c-format
+msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
+msgstr ""
+
+#. Tag: title
+#: installation.xml:880
+#, no-c-format
+msgid "Installing and Using the address standardizer"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:881
+#, no-c-format
+msgid ""
+"The <code>address_standardizer</code> extension used to be a separate "
+"package that required separate download. From PostGIS 2.2 on, it is now "
+"bundled in. For more information about the address_standardize, what it "
+"does, and how to configure it for your needs, refer to <xref linkend="
+"\"Address_Standardizer\"/>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:883
+#, no-c-format
+msgid ""
+"This standardizer can be used in conjunction with the PostGIS packaged tiger "
+"geocoder extension as a replacement for the <xref linkend=\"Normalize_Address"
+"\"/> discussed. To use as replacement refer to <xref linkend="
+"\"tiger_pagc_address_standardizing\"/>. You can also use it as a building "
+"block for your own geocoder or use it to standardize your addresses for "
+"easier compare of addresses."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:887
+#, no-c-format
+msgid ""
+"The address standardizer relies on PCRE which is usually already installed "
+"on many Nix systems, but you can download the latest at: <ulink url=\"http://"
+"www.pcre.org\">http://www.pcre.org</ulink>. If during <xref linkend="
+"\"installation_configuration\"/>, PCRE is found, then the address "
+"standardizer extension will automatically be built. If you have a custom "
+"pcre install you want to use instead, pass to configure <code>--with-"
+"pcredir=/path/to/pcre</code> where <filename>/path/to/pcre</filename> is the "
+"root folder for your pcre include and lib directories."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:890
+#, no-c-format
+msgid ""
+"For Windows users, the PostGIS 2.1+ bundle is packaged with the "
+"address_standardizer already so no need to compile and can move straight to "
+"<code>CREATE EXTENSION</code> step."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:893
+#, no-c-format
+msgid ""
+"Once you have installed, you can connect to your database and run the SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:894
+#, no-c-format
+msgid "CREATE EXTENSION address_standardizer;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:896
+#, no-c-format
+msgid "The following test requires no rules, gaz, or lex tables"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:897
+#, no-c-format
+msgid ""
+"SELECT num, street, city, state, zip \n"
+" FROM parse_address('1 Devonshire Place, Boston, MA 02109');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:898
+#, no-c-format
+msgid "Output should be"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:899
+#, no-c-format
+msgid ""
+"num |         street         |  city  | state |  zip\n"
+"-----+------------------------+--------+-------+-------\n"
+" 1   | Devonshire Place PH301 | Boston | MA    | 02109"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:901
+#, no-c-format
+msgid "Installing Regex::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:902
+#, no-c-format
+msgid ""
+"Perl Regex:Assemble is no longer needed for compiling address_standardizer "
+"extension since the files it generates are part of the source tree. However "
+"if you need to edit the <filename>usps-st-city-orig.txt</filename> or "
+"<filename>usps-st-city-orig.txt usps-st-city-adds.tx</filename>, you need to "
+"rebuild <filename>parseaddress-stcities.h</filename> which does require "
+"Regex:Assemble."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:903
+#, no-c-format
+msgid "cpan Regexp::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:904
+#, no-c-format
+msgid "or if you are on Ubuntu / Debian you might need to do"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:905
+#, no-c-format
+msgid "sudo perl -MCPAN -e \"install Regexp::Assemble\""
+msgstr ""
+
+#. Tag: title
+#: installation.xml:910
+#, no-c-format
+msgid "Installing, Upgrading Tiger Geocoder and loading data"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:912
+#, no-c-format
+msgid ""
+"Extras like Tiger geocoder may not be packaged in your PostGIS distribution, "
+"but will always be available in the postgis-&last_release_version;.tar.gz "
+"file. The instructions provided here are also available in the "
+"<filename>extras/tiger_geocoder/tiger_2011/README</filename>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:913
+#, no-c-format
+msgid ""
+"If you are on Windows and you don't have tar installed, you can use <ulink "
+"url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink> to unzip the "
+"PostGIS tarball."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:915
+#, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Using Extension"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:916
+#, no-c-format
+msgid ""
+"If you are using PostgreSQL 9.1+ and PostGIS 2.1.0, you can take advantage "
+"of the new extension model for installing tiger geocoder. To do so:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:918
+#, no-c-format
+msgid ""
+"First get binaries for PostGIS 2.1.0 or compile and install as usual. This "
+"should install the necessary extension files as well for tiger geocoder."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:919
+#, no-c-format
+msgid ""
+"Connect to your database via psql or pgAdmin or some other tool and run the "
+"following SQL commands. Note that if you are installing in a database that "
+"already has postgis, you don't need to do the first step. If you have "
+"<varname>fuzzystrmatch</varname> extension already installed, you don't need "
+"to do the second step either."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:920
+#, no-c-format
+msgid ""
+"CREATE EXTENSION postgis;                \n"
+"CREATE EXTENSION fuzzystrmatch;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:921
+#, no-c-format
+msgid ""
+"To confirm your install is working correctly, run this sql in your database:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:922
+#, no-c-format
+msgid ""
+"SELECT na.address, na.streetname,na.streettypeabbrev, na.zip\n"
+"        FROM normalize_address('1 Devonshire Place, Boston, MA 02109') AS na;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:923
+#, no-c-format
+msgid "Which should output"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:924
+#, no-c-format
+msgid ""
+"address | streetname | streettypeabbrev |  zip\n"
+"---------+------------+------------------+-------\n"
+"           1 | Devonshire | Pl               | 02109"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:926
+#, no-c-format
+msgid ""
+"Create a new record in <varname>tiger.loader_platform</varname> table with "
+"the paths of your executables and server."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:927
+#, no-c-format
+msgid ""
+"So for example to create a profile called debbie that follows <code>sh</"
+"code> convention. You would do:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:928
+#, no-c-format
+msgid ""
+"INSERT INTO tiger.loader_platform(os, declare_sect, pgbin, wget, "
+"unzip_command, psql, path_sep, \n"
+"                   loader, environ_set_command, county_process_command)\n"
+"SELECT 'debbie', declare_sect, pgbin, wget, unzip_command, psql, path_sep, \n"
+"           loader, environ_set_command, county_process_command\n"
+"  FROM tiger.loader_platform\n"
+"  WHERE os = 'sh';"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:929
+#, no-c-format
+msgid ""
+"And then edit the paths in the <emphasis>declare_sect</emphasis> column to "
+"those that fit Debbie's pg, unzip,shp2pgsql, psql, etc path locations."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:931
+#, no-c-format
+msgid ""
+"If you don't edit this <varname>loader_platform</varname> table, it will "
+"just contain common case locations of items and you'll have to edit the "
+"generated script after the script is generated."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:933
+#, no-c-format
+msgid ""
+"Then run the <xref linkend=\"Loader_Generate_Nation_Script\"/> and <xref "
+"linkend=\"Loader_Generate_Script\"/> SQL functions make sure to use the name "
+"of your custom profile. So for example to do the nation load using our new "
+"profile we would:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:934
+#, no-c-format
+msgid "SELECT Loader_Generate_Nation_Script('debbie');"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:937
+#, no-c-format
+msgid "Converting a Tiger Geocoder Regular Install to Extension Model"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:938
+#, no-c-format
+msgid ""
+"If you installed the tiger geocoder without using the extension model, you "
+"can convert to the extension model as follows:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:940
+#, no-c-format
+msgid ""
+"Follow instructions in <xref linkend=\"upgrade_tiger_geocoder\"/> for the "
+"non-extension model upgrade."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:941
+#, no-c-format
+msgid ""
+"Connect to your database with psql or pgAdmin and run the following command:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:942
+#, no-c-format
+msgid "CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:949
+#, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Not Using Extensions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:950
+#, no-c-format
+msgid "First install PostGIS using the prior instructions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:954 installation.xml:1014
+#, no-c-format
+msgid ""
+"If you don't have an extras folder, download <ulink url="
+"\"&postgis_download_url;\">&postgis_download_url;</ulink>"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:959 installation.xml:1019
+#, no-c-format
+msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:963 installation.xml:1023
+#, no-c-format
+msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:966
+#, no-c-format
+msgid ""
+"Edit the <filename>tiger_loader_2012.sql</filename> to the paths of your "
+"executables server etc or alternatively you can update the "
+"<varname>loader_platform</varname> table once installed. If you don't edit "
+"this file or the <varname>loader_platform</varname> table, it will just "
+"contain common case locations of items and you'll have to edit the generated "
+"script after the fact when you run the <xref linkend="
+"\"Loader_Generate_Nation_Script\"/> and <xref linkend="
+"\"Loader_Generate_Script\"/> SQL functions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:968
+#, no-c-format
+msgid ""
+"If you are installing Tiger geocoder for the first time edit either the "
+"<filename>create_geocode.bat</filename> script If you are on windows or the "
+"<filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with "
+"your PostgreSQL specific settings and run the corresponding script from the "
+"commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:972
+#, no-c-format
+msgid ""
+"Verify that you now have a <varname>tiger</varname> schema in your database "
+"and that it is part of your database search_path. If it is not, add it with "
+"a command something along the line of:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:972
+#, no-c-format
+msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:973
+#, no-c-format
+msgid ""
+"The normalizing address functionality works more or less without any data "
+"except for tricky addresses. Run this test and verify things look like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:974
+#, no-c-format
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"pretty_address\n"
+"---------------------------------------\n"
+"202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:977
+#, no-c-format
+msgid "Using Address Standardizer Extension with Tiger geocoder"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:978
+#, no-c-format
+msgid ""
+"One of the many complaints of folks is the address normalizer function <xref "
+"linkend=\"Normalize_Address\"/> function that normalizes an address for "
+"prepping before geocoding. The normalizer is far from perfect and trying to "
+"patch its imperfectness takes a vast amount of resources. As such we have "
+"integrated with another project that has a much better address standardizer "
+"engine. To use this new address_standardizer, you compile the extension as "
+"described in <xref linkend=\"installing_pagc_address_standardizer\"/> and "
+"install as an extension in your database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:981
+#, no-c-format
+msgid ""
+"Once you install this extension in the same database as you have installed "
+"<code>postgis_tiger_geocoder</code>, then the <xref linkend="
+"\"Pagc_Normalize_Address\"/> can be used instead of <xref linkend="
+"\"Normalize_Address\"/>. This extension is tiger agnostic, so can be used "
+"with other data sources such as international addresses. The tiger geocoder "
+"extension does come packaged with its own custom versions of <xref linkend="
+"\"rulestab\"/> ( <code>tiger.pagc_rules</code>) , <xref linkend=\"gaztab\"/> "
+"(<code>tiger.pagc_gaz</code>), and <xref linkend=\"lextab\"/> (<code>tiger."
+"pagc_lex</code>). These you can add and update to improve your standardizing "
+"experience for your own needs."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:984
+#, no-c-format
+msgid "Loading Tiger Data"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:985
+#, no-c-format
+msgid ""
+"The instructions for loading data are available in a more detailed form in "
+"the <filename>extras/tiger_geocoder/tiger_2011/README</filename>. This just "
+"includes the general steps."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:986
+#, no-c-format
+msgid ""
+"The load process downloads data from the census website for the respective "
+"nation files, states requested, extracts the files, and then loads each "
+"state into its own separate set of state tables. Each state table inherits "
+"from the tables defined in <varname>tiger</varname> schema so that its "
+"sufficient to just query those tables to access all the data and drop a set "
+"of state tables at any time using the <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/> if you need to reload a state or "
+"just don't need a state anymore."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:988
+#, no-c-format
+msgid "In order to be able to load data you'll need the following tools:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:990
+#, no-c-format
+msgid "A tool to unzip the zip files from census website."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:991
+#, no-c-format
+msgid ""
+"For Unix like systems: <varname>unzip</varname> executable which is usually "
+"already installed on most Unix like platforms."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:992
+#, no-c-format
+msgid ""
+"For Windows, 7-zip which is a free compress/uncompress tool you can download "
+"from <ulink url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:994
+#, no-c-format
+msgid ""
+"<filename>shp2pgsql</filename> commandline which is installed by default "
+"when you install PostGIS."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:995
+#, no-c-format
+msgid ""
+"<filename>wget</filename> which is a web grabber tool usually installed on "
+"most Unix/Linux systems."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:996
+#, no-c-format
+msgid ""
+"If you are on windows, you can get pre-compiled binaries from <ulink url="
+"\"http://gnuwin32.sourceforge.net/packages/wget.htm\">http://gnuwin32."
+"sourceforge.net/packages/wget.htm</ulink>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:999
+#, no-c-format
+msgid ""
+"If you are upgrading from tiger_2010, you'll need to first generate and run "
+"<xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>. Before you load any "
+"state data, you need to load the nation wide data which you do with <xref "
+"linkend=\"Loader_Generate_Nation_Script\"/>. Which will generate a loader "
+"script for you. <xref linkend=\"Loader_Generate_Nation_Script\"/> is a one-"
+"time step that should be done for upgrading (from 2010) and for new installs."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1001
+#, no-c-format
+msgid ""
+"To load state data refer to <xref linkend=\"Loader_Generate_Script\"/> to "
+"generate a data load script for your platform for the states you desire. "
+"Note that you can install these piecemeal. You don't have to load all the "
+"states you want all at once. You can load them as you need them."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1004
+#, no-c-format
+msgid ""
+"After the states you desire have been loaded, make sure to run the: "
+"<programlisting>SELECT install_missing_indexes();</programlisting> as "
+"described in <xref linkend=\"Install_Missing_Indexes\"/>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1006
+#, no-c-format
+msgid ""
+"To test that things are working as they should, try to run a geocode on an "
+"address in your state using <xref linkend=\"Geocode\"/>"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1009
+#, no-c-format
+msgid "Upgrading your Tiger Geocoder Install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1010
+#, no-c-format
+msgid ""
+"If you have Tiger Geocoder packaged with 2.0+ already installed, you can "
+"upgrade the functions at any time even from an interim tar ball if there are "
+"fixes you badly need. This will only work for Tiger geocoder not installed "
+"with extensions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1026
+#, no-c-format
+msgid ""
+"Locate the <filename>upgrade_geocoder.bat</filename> script If you are on "
+"windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/"
+"Unix/Mac OSX. Edit the file to have your postgis database credentials."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1029
+#, no-c-format
+msgid ""
+"If you are upgrading from 2010 or 2011, make sure to unremark out the loader "
+"script line so you get the latest script for loading 2012 data."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1030
+#, no-c-format
+msgid "Then run th corresponding script from the commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1034
+#, no-c-format
+msgid ""
+"Next drop all nation tables and load up the new ones. Generate a drop script "
+"with this SQL statement as detailed in <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1035
+#, no-c-format
+msgid "SELECT drop_nation_tables_generate_script();"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1036
+#, no-c-format
+msgid "Run the generated drop SQL statements."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1037
+#, no-c-format
+msgid ""
+"Generate a nation load script with this SELECT statement as detailed in "
+"<xref linkend=\"Loader_Generate_Nation_Script\"/>"
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:1038
+#, no-c-format
+msgid "For windows"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1039
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:1040
+#, no-c-format
+msgid "For unix/linux"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1041
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1042
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on "
+"how to run the generate script. This only needs to be done once."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1043
+#, no-c-format
+msgid ""
+"You can have a mix of 2010/2011 state tables and can upgrade each state "
+"separately. Before you upgrade a state to 2011, you first need to drop the "
+"2010 tables for that state using <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/>."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1049
+#, no-c-format
+msgid "Create a spatially-enabled database from a template"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1051
+#, no-c-format
+msgid ""
+"Some packaged distributions of PostGIS (in particular the Win32 installers "
+"for PostGIS >= 1.1.5) load the PostGIS functions into a template database "
+"called <varname>template_postgis</varname>. If the "
+"<varname>template_postgis</varname> database exists in your PostgreSQL "
+"installation then it is possible for users and/or applications to create "
+"spatially-enabled databases using a single command. Note that in both cases, "
+"the database user must have been granted the privilege to create new "
+"databases."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1062
+#, no-c-format
+msgid "From the shell:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1066
+#, no-c-format
+msgid "# createdb -T template_postgis my_spatial_db"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1068
+#, no-c-format
+msgid "From SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1072
+#, no-c-format
+msgid "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1076
+#, no-c-format
+msgid "Upgrading"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1078
+#, no-c-format
+msgid ""
+"Upgrading existing spatial databases can be tricky as it requires "
+"replacement or introduction of new PostGIS object definitions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1083
+#, no-c-format
+msgid ""
+"Unfortunately not all definitions can be easily replaced in a live database, "
+"so sometimes your best bet is a dump/reload process."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1088
+#, no-c-format
+msgid ""
+"PostGIS provides a SOFT UPGRADE procedure for minor or bugfix releases, and "
+"a HARD UPGRADE procedure for major releases."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1093
+#, no-c-format
+msgid ""
+"Before attempting to upgrade PostGIS, it is always worth to backup your "
+"data. If you use the -Fc flag to pg_dump you will always be able to restore "
+"the dump with a HARD UPGRADE."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1100
+#, no-c-format
+msgid "Soft upgrade"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1102
+#, no-c-format
+msgid ""
+"If you installed your database using extensions, you'll need to upgrade "
+"using the extension model as well. If you installed using the old sql script "
+"way, then you should upgrade using the sql script way. Please refer to the "
+"appropriate."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1105
+#, no-c-format
+msgid "Soft Upgrade Pre 9.1+ or without extensions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1106
+#, no-c-format
+msgid ""
+"This section applies only to those who installed PostGIS not using "
+"extensions. If you have extensions and try to upgrade with this approach "
+"you'll get messages like:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1107
+#, no-c-format
+msgid "can't drop ... because postgis extension depends on it"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1108
+#, no-c-format
+msgid ""
+"After compiling and installing (make install) you should find a "
+"<filename>postgis_upgrade.sql</filename> and <filename>rtpostgis_upgrade."
+"sql</filename> in the installation folders. For example <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. Install the "
+"<filename>postgis_upgrade.sql</filename>. If you have raster functionality "
+"installed, you will also need to install the <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. If you are moving "
+"from PostGIS 1.* to PostGIS 2.* or from PostGIS 2.* prior to r7409, you need "
+"to do a HARD UPGRADE."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1112
+#, no-c-format
+msgid "psql -f postgis_upgrade.sql -d your_spatial_database"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1114
+#, no-c-format
+msgid ""
+"The same procedure applies to raster and topology extensions, with upgrade "
+"files named <filename>rtpostgis_upgrade*.sql</filename> and "
+"<filename>topology_upgrade*.sql</filename> respectively. If you need them:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1122
+#, no-c-format
+msgid "psql -f rtpostgis_upgrade.sql -d your_spatial_database"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1123
+#, no-c-format
+msgid "psql -f topology_upgrade.sql -d your_spatial_database"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1126
+#, no-c-format
+msgid ""
+"If you can't find the <filename>postgis_upgrade*.sql</filename> specific for "
+"upgrading your version you are using a version too early for a soft upgrade "
+"and need to do a HARD UPGRADE."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1132
+#, no-c-format
+msgid ""
+"The <xref linkend=\"PostGIS_Full_Version\"/> function should inform you "
+"about the need to run this kind of upgrade using a \"procs need upgrade\" "
+"message."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1139
+#, no-c-format
+msgid "Soft Upgrade 9.1+ using extensions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1140
+#, no-c-format
+msgid ""
+"If you originally installed PostGIS with extensions, then you need to "
+"upgrade using extensions as well. Doing a minor upgrade with extensions, is "
+"fairly painless."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1141
+#, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;\";"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1142
+#, no-c-format
+msgid "If you get an error notice something like:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1143
+#, no-c-format
+msgid "No migration path defined for ... to &last_release_version;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1144
+#, no-c-format
+msgid ""
+"Then you'll need to backup your database, create a fresh one as described in "
+"<xref linkend=\"create_new_db_extensions\"/> and then restore your backup "
+"ontop of this new database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1145
+#, no-c-format
+msgid "If you get a notice message like:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1146
+#, no-c-format
+msgid ""
+"Version \"&last_release_version;\" of extension \"postgis\" is already "
+"installed"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1147
+#, no-c-format
+msgid ""
+"Then everything is already up to date and you can safely ignore it. "
+"<emphasis role=\"bold\">UNLESS</emphasis> you're attempting to upgrade from "
+"an SVN version to the next (which doesn't get a new version number); in that "
+"case you can append \"next\" to the version string, and next time you'll "
+"need to drop the \"next\" suffix again:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1153
+#, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;next\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;next\";"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1154
+#, no-c-format
+msgid ""
+"If you installed PostGIS originally without a version specified, you can "
+"often skip the reinstallation of postgis extension before restoring since "
+"the backup just has <code>CREATE EXTENSION postgis</code> and thus picks up "
+"the newest latest version during restore."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1161
+#, no-c-format
+msgid "Hard upgrade"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1163
+#, no-c-format
+msgid ""
+"By HARD UPGRADE we mean full dump/reload of postgis-enabled databases. You "
+"need a HARD UPGRADE when PostGIS objects' internal storage changes or when "
+"SOFT UPGRADE is not possible. The <link linkend=\"release_notes\">Release "
+"Notes</link> appendix reports for each version whether you need a dump/"
+"reload (HARD UPGRADE) to upgrade."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1172
+#, no-c-format
+msgid ""
+"The dump/reload process is assisted by the postgis_restore.pl script which "
+"takes care of skipping from the dump all definitions which belong to PostGIS "
+"(including old ones), allowing you to restore your schemas and data into a "
+"database with PostGIS installed without getting duplicate symbol errors or "
+"bringing forward deprecated objects."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1181
+#, no-c-format
+msgid ""
+"Supplementary instructions for windows users are available at <ulink url="
+"\"http://trac.osgeo.org/postgis/wiki/UsersWikiWinUpgrade\">Windows Hard "
+"upgrade</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1184
+#, no-c-format
+msgid "The Procedure is as follows:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1192
+#, no-c-format
+msgid ""
+"Create a \"custom-format\" dump of the database you want to upgrade (let's "
+"call it <varname>olddb</varname>) include binary blobs (-b) and verbose (-v) "
+"output. The user can be the owner of the db, need not be postgres super "
+"account."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1200
+#, no-c-format
+msgid ""
+"pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb."
+"backup\" olddb"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1206
+#, no-c-format
+msgid ""
+"Do a fresh install of PostGIS in a new database -- we'll refer to this "
+"database as <varname>newdb</varname>. Please refer to <xref linkend="
+"\"create_new_db\"/> and <xref linkend=\"create_new_db_extensions\"/> for "
+"instructions on how to do this."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1213
+#, no-c-format
+msgid ""
+"The spatial_ref_sys entries found in your dump will be restored, but they "
+"will not override existing ones in spatial_ref_sys. This is to ensure that "
+"fixes in the official set will be properly propagated to restored databases. "
+"If for any reason you really want your own overrides of standard entries "
+"just don't load the spatial_ref_sys.sql file when creating the new db."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1223
+#, no-c-format
+msgid ""
+"If your database is really old or you know you've been using long deprecated "
+"functions in your views and functions, you might need to load "
+"<filename>legacy.sql</filename> for all your functions and views etc. to "
+"properly come back. Only do this if _really_ needed. Consider upgrading your "
+"views and functions before dumping instead, if possible. The deprecated "
+"functions can be later removed by loading <filename>uninstall_legacy.sql</"
+"filename>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1239
+#, no-c-format
+msgid ""
+"Restore your backup into your fresh <varname>newdb</varname> database using "
+"postgis_restore.pl. Unexpected errors, if any, will be printed to the "
+"standard error stream by psql. Keep a log of those."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1247
+#, no-c-format
+msgid ""
+"perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost "
+"-p 5432 -U postgres newdb 2> errors.txt"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1253
+#, no-c-format
+msgid "Errors may arise in the following cases:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1259
+#, no-c-format
+msgid ""
+"Some of your views or functions make use of deprecated PostGIS objects. In "
+"order to fix this you may try loading <filename>legacy.sql</filename> script "
+"prior to restore or you'll have to restore to a version of PostGIS which "
+"still contains those objects and try a migration again after porting your "
+"code. If the <filename>legacy.sql</filename> way works for you, don't forget "
+"to fix your code to stop using deprecated functions and drop them loading "
+"<filename>uninstall_legacy.sql</filename>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1271
+#, no-c-format
+msgid ""
+"Some custom records of spatial_ref_sys in dump file have an invalid SRID "
+"value. Valid SRID values are bigger than 0 and smaller than 999000. Values "
+"in the 999000.999999 range are reserved for internal use while values > "
+"999999 can't be used at all. All your custom records with invalid SRIDs will "
+"be retained, with those > 999999 moved into the reserved range, but the "
+"spatial_ref_sys table would loose a check constraint guarding for that "
+"invariant to hold and possibly also its primary key ( when multiple invalid "
+"SRIDS get converted to the same reserved SRID value )."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1285
+#, no-c-format
+msgid ""
+"In order to fix this you should copy your custom SRS to a SRID with a valid "
+"value (maybe in the 910000..910999 range), convert all your tables to the "
+"new srid (see <xref linkend=\"UpdateGeometrySRID\"/>), delete the invalid "
+"entry from spatial_ref_sys and re-construct the check(s) with:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1292
+#, no-c-format
+msgid ""
+"ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check "
+"(srid > 0 AND srid < 999000 );"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1294
+#, no-c-format
+msgid "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1305
+#, no-c-format
+msgid "Common Problems during installation"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1306
+#, no-c-format
+msgid ""
+"There are several things to check when your installation or upgrade doesn't "
+"go as you expected."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1313
+#, no-c-format
+msgid ""
+"Check that you have installed PostgreSQL &min_postgres_version; or newer, "
+"and that you are compiling against the same version of the PostgreSQL source "
+"as the version of PostgreSQL that is running. Mix-ups can occur when your "
+"(Linux) distribution has already installed PostgreSQL, or you have otherwise "
+"installed PostgreSQL before and forgotten about it. PostGIS will only work "
+"with PostgreSQL &min_postgres_version; or newer, and strange, unexpected "
+"error messages will result if you use an older version. To check the version "
+"of PostgreSQL which is running, connect to the database using psql and run "
+"this query:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1326
+#, no-c-format
+msgid "SELECT version();"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1328
+#, no-c-format
+msgid ""
+"If you are running an RPM based distribution, you can check for the "
+"existence of pre-installed packages using the <command>rpm</command> command "
+"as follows: <command>rpm -qa | grep postgresql</command>"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1336
+#, no-c-format
+msgid ""
+"If your upgrade fails, make sure you are restoring into a database that "
+"already has PostGIS installed."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1337
+#, no-c-format
+msgid "SELECT postgis_full_version();"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1341
+#, no-c-format
+msgid ""
+"Also check that configure has correctly detected the location and version of "
+"PostgreSQL, the Proj4 library and the GEOS library."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1348
+#, no-c-format
+msgid ""
+"The output from configure is used to generate the <filename>postgis_config."
+"h</filename> file. Check that the <varname>POSTGIS_PGSQL_VERSION</varname>, "
+"<varname>POSTGIS_PROJ_VERSION</varname> and <varname>POSTGIS_GEOS_VERSION</"
+"varname> variables have been set correctly."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1361
+#, no-c-format
+msgid "JDBC"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1363
+#, no-c-format
+msgid ""
+"The JDBC extensions provide Java objects corresponding to the internal "
+"PostGIS types. These objects can be used to write Java clients which query "
+"the PostGIS database and draw or do calculations on the GIS data in PostGIS."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1372
+#, no-c-format
+msgid ""
+"Enter the <filename>java/jdbc</filename> sub-directory of the PostGIS "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1379
+#, no-c-format
+msgid ""
+"Run the <filename>ant</filename> command. Copy the <filename>postgis.jar</"
+"filename> file to wherever you keep your java libraries."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1387
+#, no-c-format
+msgid ""
+"The JDBC extensions require a PostgreSQL JDBC driver to be present in the "
+"current CLASSPATH during the build process. If the PostgreSQL JDBC driver is "
+"located elsewhere, you may pass the location of the JDBC driver JAR "
+"separately using the -D parameter like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1394
+#, no-c-format
+msgid "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1396
+#, no-c-format
+msgid ""
+"PostgreSQL JDBC drivers can be downloaded from <ulink url=\"http://jdbc."
+"postgresql.org\"> http://jdbc.postgresql.org </ulink> ."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1406
+#, no-c-format
+msgid "Loader/Dumper"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1408
+#, no-c-format
+msgid ""
+"The data loader and dumper are built and installed automatically as part of "
+"the PostGIS build. To build and install them manually:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1413
+#, no-c-format
+msgid ""
+"# cd postgis-&last_release_version;/loader\n"
+"# make\n"
+"# make install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1415
+#, no-c-format
+msgid ""
+"The loader is called <filename>shp2pgsql</filename> and converts ESRI Shape "
+"files into SQL suitable for loading in PostGIS/PostgreSQL. The dumper is "
+"called <filename>pgsql2shp</filename> and converts PostGIS tables (or "
+"queries) into ESRI Shape files. For more verbose documentation, see the "
+"online help, and the manual pages."
+msgstr ""
diff --git a/doc/po/pl/introduction.xml.po b/doc/po/pl/introduction.xml.po
new file mode 100644
index 0000000..4f96e05
--- /dev/null
+++ b/doc/po/pl/introduction.xml.po
@@ -0,0 +1,619 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# wotankeld <arek.matoszka at gmail.com>, 2013
+# Mateusz Łoskot <mateusz at loskot.net>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-12-07 13:59+0000\n"
+"Last-Translator: wotankeld <arek.matoszka at gmail.com>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: introduction.xml:3
+#, no-c-format
+msgid "Introduction"
+msgstr "Wprowadzenie"
+
+#. Tag: para
+#: introduction.xml:5
+#, no-c-format
+msgid ""
+"PostGIS was developed by Refractions Research Inc, as a spatial database "
+"technology research project. Refractions is a GIS and database consulting "
+"company in Victoria, British Columbia, Canada, specializing in data "
+"integration and custom software development. We plan on supporting and "
+"developing PostGIS to support a range of important GIS functionality, "
+"including full OpenGIS support, advanced topological constructs (coverages, "
+"surfaces, networks), desktop user interface tools for viewing and editing "
+"GIS data, and web-based access tools."
+msgstr ""
+"PostGIS w ramach projektu badawczego prowadzonego przes firmę Refractions "
+"Research Inc, którego celem było stworzenie bazy danych przestrzennych. "
+"Refractions to kanadyjska firma z siedzibą w Wiktorii, Kolumbia Brytyjska, "
+"która specjalizuje się w tworzeniu systemów informacji przestrzennej, baz "
+"danych przestrzennych oraz rozwoju w oprogramowania celowego.\n"
+"\n"
+"Naszym zamiarem jest wspieranie projektu PostGIS dla rozwoju nowych funkcji "
+"do analiz przestrzennych,  zapewnienie wsparcia dla specyfikacji OpenGIS i "
+"tworzenia zaawansowanych konstrukcji topologicznych (pokrycia, powierzchnie, "
+"sieci) oraz dostarczenie przyjaznego interfejsu użytkownika do przeglądania "
+"i edycji danych przestrzennych, jak również dostępu do danych online."
+
+#. Tag: para
+#: introduction.xml:15
+#, no-c-format
+msgid ""
+"PostGIS is an incubation project of the OSGeo Foundation. PostGIS is being "
+"continually improved and funded by many FOSS4G Developers as well as "
+"corporations all over the world that gain great benefit from its "
+"functionality and versatility."
+msgstr ""
+"PostGIS został zgłoszony do inkubatora projektów przy Fundacji OSGeo.  "
+"PostGIS podlega ciągłemu rozwojowi, które jest wspierane przez licznych "
+"programistów i entuzjastów FOSS4G, jak również przez korporacje na całym "
+"świecie, które doceniają funkcjonalność i wszechstronność PostGIS."
+
+#. Tag: title
+#: introduction.xml:21
+#, no-c-format
+msgid "Project Steering Committee"
+msgstr "Komitet Wykonawczy Projektu"
+
+#. Tag: para
+#: introduction.xml:22
+#, no-c-format
+msgid ""
+"The PostGIS Project Steering Committee (PSC) coordinates the general "
+"direction, release cycles, documentation, and outreach efforts for the "
+"PostGIS project. In addition the PSC provides general user support, accepts "
+"and approves patches from the general PostGIS community and votes on "
+"miscellaneous issues involving PostGIS such as developer commit access, new "
+"PSC members or significant API changes."
+msgstr ""
+"W ramach projektu PostGIS, komitet wykonawczy (Project Steering Committee, "
+"PSC) koordynuje generalny kierunek prac, cykl kolejnych wydań nowych wersji "
+"oprogramowania, tworzenie dokumentacji, oraz adresuje potrzeby społeczności "
+"skupionej wokół projektu PostGIS.\n"
+"Dodatkowo, komitet przyjmuje, akceptuje i zatwierdza wszelkie zmiany "
+"zgłaszane do projektu przez ogół użytkowników i programistów "
+"zainteresowanych PostGIS. Komitet również przeprowadza głosowania nad "
+"istotnymi decyzjami, takimi jak nadanie nowemu programiście praw zapisu do "
+"repozytorium kodu źródłowego, zgłoszenie nowego członka do komitetu "
+"wykonawczego lub istotnych zmian w interfejsie programowania aplikacji "
+"(Application Programming Interface, API)."
+
+#. Tag: term
+#: introduction.xml:31
+#, no-c-format
+msgid "Mark Cave-Ayland"
+msgstr "Mark Cave-Ayland"
+
+#. Tag: para
+#: introduction.xml:33
+#, no-c-format
+msgid ""
+"Coordinates bug fixing and maintenance effort, alignment of PostGIS with "
+"PostgreSQL releases, spatial index selectivity and binding, loader/dumper, "
+"and Shapefile GUI Loader, integration of new and new function enhancements."
+msgstr ""
+"Koordynuje naprawę błędów i przyjmowanie poprawek, synchronizuje wydania "
+"nowych wersji PostGIS wraz z wydaniami PostgreSQL, pracuje nad integracją "
+"indeksów przestrzennych, programów ładujących i zrzucających dane, "
+"tworzeniem graficznego programu Shapefile Loader oraz integrację nowych "
+"funkcji i usprawnień."
+
+#. Tag: term
+#: introduction.xml:40
+#, no-c-format
+msgid "Regina Obe"
+msgstr "Regina Obe"
+
+#. Tag: para
+#: introduction.xml:42
+#, no-c-format
+msgid ""
+"Buildbot Maintenance, windows production and experimental builds, "
+"Documentation, general user support on PostGIS newsgroup, X3D support, Tiger "
+"Geocoder Support, management functions, and smoke testing new functionality "
+"or major code changes."
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:49
+#, no-c-format
+msgid "Bborie Park"
+msgstr "Bborie Park"
+
+#. Tag: para
+#: introduction.xml:51
+#, no-c-format
+msgid ""
+"Raster development, integration with GDAL, raster loader, user support, "
+"general bug fixing, testing on various OS (Slackware, Mac, Windows, and more)"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:56
+#, no-c-format
+msgid "Paul Ramsey (Chair)"
+msgstr "Paul Ramsey (Lider)"
+
+#. Tag: para
+#: introduction.xml:58
+#, fuzzy, no-c-format
+msgid ""
+"Co-founder of PostGIS project. General bug fixing, geography support, "
+"geography and geometry index support (2D, 3D, nD index and anything spatial "
+"index), underlying geometry internal structures, PointCloud (in "
+"development), GEOS functionality integration and alignment with GEOS "
+"releases, loader/dumper, and Shapefile GUI loader."
+msgstr ""
+"Współzałożyciel projektu PostGIS. Ogólne poprawki błędów, wsparcie dla "
+"danych geograficznych, wsparcie dla indeksów przestrzennych geometrycznych i "
+"geograficznych (indeksy 2D, 3D, nD oraz pełny), wewnętrzne struktury dla "
+"podstawowych typów geometrii, integracja funkcji GEOS oraz dostosowanie do "
+"wersji GEOS, loader/dumper, GUI do ładowania plików Shapefile"
+
+#. Tag: term
+#: introduction.xml:64
+#, no-c-format
+msgid "Sandro Santilli"
+msgstr "Sandro Santilli"
+
+#. Tag: para
+#: introduction.xml:67
+#, no-c-format
+msgid ""
+"Bug fixes and maintenance and integration of new GEOS functionality and "
+"alignment with GEOS releases, Topology support, and Raster framework and low "
+"level api functions."
+msgstr ""
+"Poprawki błędów i utrzymaniowe, integracja nowych funkcji GEOS oraz "
+"dostosowanie do różnych wersji GEOS, wsparcie dla topologii, framework dla "
+"rastrów oraz funkcje api niskiego poziomu"
+
+#. Tag: title
+#: introduction.xml:74
+#, fuzzy, no-c-format
+msgid "Core Contributors Present"
+msgstr "Autorzy byli i obecni"
+
+#. Tag: term
+#: introduction.xml:77
+#, no-c-format
+msgid "Jorge Arévalo"
+msgstr "Jorge Arévalo"
+
+#. Tag: para
+#: introduction.xml:79
+#, no-c-format
+msgid "Raster development, GDAL driver support, loader"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:84
+#, no-c-format
+msgid "Nicklas Avén"
+msgstr "Nicklas Avén"
+
+#. Tag: para
+#: introduction.xml:87
+#, no-c-format
+msgid ""
+"Distance function enhancements (including 3D distance and relationship "
+"functions) and additions, Tiny WKB output format (TWKB) (in development) and "
+"general user support"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:92
+#, no-c-format
+msgid "Olivier Courtin"
+msgstr "Olivier Courtin"
+
+#. Tag: para
+#: introduction.xml:94
+#, no-c-format
+msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:99
+#, no-c-format
+msgid "Mateusz Loskot"
+msgstr "Mateusz Łoskot"
+
+#. Tag: para
+#: introduction.xml:101
+#, no-c-format
+msgid ""
+"CMake support for PostGIS, built original raster loader in python and low "
+"level raster api functions"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:106
+#, no-c-format
+msgid "Pierre Racine"
+msgstr "Pierre Racine"
+
+#. Tag: para
+#: introduction.xml:108
+#, no-c-format
+msgid "Raster overall architecture, prototyping, programming support"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:113
+#, no-c-format
+msgid "David Zwarg"
+msgstr "David Zwarg"
+
+#. Tag: para
+#: introduction.xml:115
+#, no-c-format
+msgid "Raster development (mostly map algebra analytic functions)"
+msgstr ""
+
+#. Tag: title
+#: introduction.xml:121
+#, fuzzy, no-c-format
+msgid "Core Contributors Past"
+msgstr "Autorzy byli i obecni"
+
+#. Tag: term
+#: introduction.xml:125
+#, no-c-format
+msgid "Chris Hodgson"
+msgstr "Chris Hodgson"
+
+#. Tag: para
+#: introduction.xml:127
+#, no-c-format
+msgid ""
+"Prior PSC Member. General development, site and buildbot maintenance, OSGeo "
+"incubation management"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:131
+#, no-c-format
+msgid "Kevin Neufeld"
+msgstr "Kevin Neufeld"
+
+#. Tag: para
+#: introduction.xml:133
+#, no-c-format
+msgid ""
+"Prior PSC Member. Documentation and documentation support tools, buildbot "
+"maintenance, advanced user support on PostGIS newsgroup, and PostGIS "
+"maintenance function enhancements."
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:139
+#, no-c-format
+msgid "Dave Blasby"
+msgstr "Dave Blasby"
+
+#. Tag: para
+#: introduction.xml:142
+#, no-c-format
+msgid ""
+"The original developer/Co-founder of PostGIS. Dave wrote the server side "
+"objects, index bindings, and many of the server side analytical functions."
+msgstr ""
+"Developer / współzałożyciel projektu PostGIS. Dave przygotował obiekty po "
+"stronie serwera, index bindings oraz wiele z funkcji analitycznych po "
+"stronie serwera."
+
+#. Tag: term
+#: introduction.xml:149
+#, no-c-format
+msgid "Jeff Lounsbury"
+msgstr "Jeff Lounsbury"
+
+#. Tag: para
+#: introduction.xml:151
+#, no-c-format
+msgid ""
+"Original development of the Shape file loader/dumper. Current PostGIS "
+"Project Owner representative."
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:157
+#, no-c-format
+msgid "Mark Leslie"
+msgstr "Mark Leslie"
+
+#. Tag: para
+#: introduction.xml:159
+#, no-c-format
+msgid ""
+"Ongoing maintenance and development of core functions. Enhanced curve "
+"support. Shapefile GUI loader."
+msgstr ""
+
+#. Tag: title
+#: introduction.xml:165
+#, fuzzy, no-c-format
+msgid "Other Contributors"
+msgstr "Inni ofiarodawcy: osoby prywatne"
+
+#. Tag: term
+#: introduction.xml:168
+#, no-c-format
+msgid "Individual Contributors"
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:171
+#, fuzzy, no-c-format
+msgid ""
+"In alphabetical order: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas "
+"Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, "
+"Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. "
+"Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David "
+"Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald "
+"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, "
+"Jason Smith, Jeff Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus "
+"Foerster, Kris Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de "
+"Reyna, Mark Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, "
+"Michael Fuhr, Nathan Wagner, Nathaniel Clay, Nikita Shulga, Norman Vine, "
+"Rafal Magda, Ralph Mason, Richard Greenwood, Silvio Grosso, Steffen Macke, "
+"Stephen Frost, Tom van Tilburg, Vincent Mora, Vincent Picavet"
+msgstr ""
+"W kolejności alfabetycznej:  Alex Bodnaru, Alex Mayrhofer, Andrea Peri, "
+"Andreas Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben "
+"Jubb, Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce "
+"L. Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, "
+"David Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, "
+"Gerald Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild "
+"Nystuen, Jeff Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus "
+"Foerster, Kris Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de "
+"Reyna, Mark Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, "
+"Michael Fuhr, Nikita Shulga, Norman Vine, Rafal Magda, Ralph Mason, Richard "
+"Greenwood, Silvio Grosso, Steffen Macke, Stephen Frost, Tom van Tilburg, "
+"Vincent Picavet"
+
+#. Tag: term
+#: introduction.xml:232
+#, fuzzy, no-c-format
+msgid "Corporate Sponsors"
+msgstr "Inni ofiarodawcy: sponsorzy korporacyjni"
+
+#. Tag: para
+#: introduction.xml:235
+#, no-c-format
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the PostGIS project"
+msgstr ""
+"Podmioty korporacyjne, które wniosły wkład do projektu PostGIS w postaci "
+"developmentu, hostingu lub wsparcia finansowego"
+
+#. Tag: para
+#: introduction.xml:236
+#, fuzzy, no-c-format
+msgid ""
+"In alphabetical order: Arrival 3D, Associazione Italiana per l'Informazione "
+"Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, "
+"City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos "
+"Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala "
+"Consulting Engineers, LisaSoft, Logical Tracking & Tracing International "
+"AG, Michigan Tech Research Institute, Natural Resources Canada, Norwegian "
+"Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Palantir "
+"Technologies, Paragon Corporation, R3 GIS, Refractions Research, Regione "
+"Toscana-SIGTA, Safe Software, Sirius Corporation plc, Stadt Uster, UC Davis "
+"Center for Vectorborne Diseases, University of Laval, U.S Department of "
+"State (HIU), Vizzuality, Zonar Systems"
+msgstr ""
+"W kolejności alfabetycznej: Arrival 3D, Associazione Italiana per "
+"l'Informazione Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, "
+"Cadcorp, CampToCamp, City of Boston (DND), Clever Elephant Solutions, "
+"Cooperativa Alveo, Deimos Space, Faunalia, Geographic Data BC, Hunter "
+"Systems Group, Lidwala Consulting Engineers, LisaSoft, Logical Tracking "
+"& Tracing International AG, Michigan Tech Research Institute, Norwegian "
+"Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Paragon "
+"Corporation, R3 GIS,, Refractions Research, Regione Toscana-SIGTA, Safe "
+"Software, Sirius Corporation plc, Stadt Uster, UC Davis Center for "
+"Vectorborne Diseases, University of Laval, U.S Department of State (HIU), "
+"Vizzuality, Zonar Systems"
+
+#. Tag: term
+#: introduction.xml:277
+#, no-c-format
+msgid "Crowd Funding Campaigns"
+msgstr "Kampanie corwdfundingowe"
+
+#. Tag: para
+#: introduction.xml:280
+#, fuzzy, no-c-format
+msgid ""
+"Crowd funding campaigns are campaigns we run to get badly wanted features "
+"funded that can service a large number of people. Each campaign is "
+"specifically focused on a particular feature or set of features. Each "
+"sponsor chips in a small fraction of the needed funding and with enough "
+"people/organizations contributing, we have the funds to pay for the work "
+"that will help many. If you have an idea for a feature you think many others "
+"would be willing to co-fund, please post to the <ulink url=\"http://postgis."
+"net/mailman/listinfo/postgis-users\">PostGIS newsgroup</ulink> your thoughts "
+"and together we can make it happen."
+msgstr ""
+"Kampanie crowdfundingowe są organizowane aby pozyskać fundusze na rozwój "
+"najpotrzebniejszych funkcji, które służą dużej liczbie użytkowników. Każda "
+"kampania skupia się na konkretnej funkcji lub grupie funkcji. Każdy sponsor "
+"wpłaca małą część potrzebnych środków i przy udziale odpowiedniej liczby "
+"ludzi/organizacji uzyskujemy wystarczającą ilość środków, aby opłacić pracę, "
+"z której rezultatów skorzysta wiele osób. Jeśli masz pomysł na funkcję i "
+"uważasz, że inni byli by skłonni wesprzeć jej rozwój finansowo opisz swój "
+"pomysł na <ulink url=\"http://www.postgis.org/mailman/listinfo/postgis-users"
+"\">PostGIS newsgroup</ulink> i razem możemy sprawić, że Twój pomysł zostanie "
+"zrealizowany."
+
+#. Tag: para
+#: introduction.xml:281
+#, no-c-format
+msgid ""
+"PostGIS 2.0.0 was the first release we tried this strategy. We used <ulink "
+"url=\"http://www.pledgebank.com\">PledgeBank</ulink> and we got two "
+"successful campaigns out of it."
+msgstr ""
+"PostGIS 2.0.0 był pierwszym wydaniem, w którym wypróbowaliśmy taką "
+"strategię. Skorzystaliśmy z <ulink url=\"http://www.pledgebank.com"
+"\">PledgeBank</ulink> i przeprowadzilśmy dwie udane kampanie."
+
+#. Tag: para
+#: introduction.xml:282
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink> - 10 plus sponsors each "
+"contributed $250 USD to build toTopoGeometry function and beef up topology "
+"support in 2.0.0. It happened."
+msgstr ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink>  - ponad 10 sponsorów wpłaciło "
+"po 250$ w celu stworzenia funkcji toTopoGeometry oraz rozbudowy wsparcia dla "
+"topologii w wersji 2.0.0. To naprawdę się wydarzyło."
+
+#. Tag: para
+#: introduction.xml:283
+#, fuzzy, no-c-format
+msgid ""
+"<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
+"\"bold\">postgis64windows</emphasis></ulink> - 20 someodd sponsors each "
+"contributed $100 USD to pay for the work needed to work out PostGIS 64-bit "
+"issues on windows. It happened. We now have a 64-bit release for PostGIS "
+"2.0.1 available on PostgreSQL stack builder."
+msgstr ""
+"<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
+"\"bold\">postgistopology</emphasis></ulink>  - ponad 10 sponsorów wpłaciło "
+"po 250$ w celu stworzenia funkcji toTopoGeometry oraz rozbudowy wsparcia dla "
+"topologii w wersji 2.0.0. To naprawdę się wydarzyło."
+
+#. Tag: term
+#: introduction.xml:288
+#, no-c-format
+msgid "Important Support Libraries"
+msgstr "Istotne biblioteki wspierające"
+
+#. Tag: para
+#: introduction.xml:291
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink> geometry "
+"operations library, and the algorithmic work of Martin Davis in making it "
+"all work, ongoing maintenance and support of Mateusz Loskot, Sandro Santilli "
+"(strk), Paul Ramsey and others."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:296
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> Geospatial Data "
+"Abstraction Library, by Frank Warmerdam and others is used to power much of "
+"the raster functionality introduced in PostGIS 2.0.0. In kind, improvements "
+"needed in GDAL to support PostGIS are contributed back to the GDAL project."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:301
+#, no-c-format
+msgid ""
+"The <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> cartographic "
+"projection library, and the work of Gerald Evenden and Frank Warmerdam in "
+"creating and maintaining it."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:305
+#, no-c-format
+msgid ""
+"Last but not least, the <ulink url=\"http://www.postgresql.org\">PostgreSQL "
+"DBMS</ulink>, The giant that PostGIS stands on. Much of the speed and "
+"flexibility of PostGIS would not be possible without the extensibility, "
+"great query planner, GIST index, and plethora of SQL features provided by "
+"PostgreSQL."
+msgstr ""
+
+#. Tag: title
+#: introduction.xml:314
+#, no-c-format
+msgid "More Information"
+msgstr "Więcej informacji"
+
+#. Tag: para
+#: introduction.xml:318
+#, no-c-format
+msgid ""
+"The latest software, documentation and news items are available at the "
+"PostGIS web site, <ulink url=\"http://postgis.net\">http://postgis.net</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:324
+#, no-c-format
+msgid ""
+"More information about the GEOS geometry operations library is available "
+"at<ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:330
+#, no-c-format
+msgid ""
+"More information about the Proj4 reprojection library is available at <ulink "
+"url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:336
+#, no-c-format
+msgid ""
+"More information about the PostgreSQL database server is available at the "
+"PostgreSQL main site <ulink url=\"http://www.postgresql.org\">http://www."
+"postgresql.org</ulink>."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:342
+#, no-c-format
+msgid ""
+"More information about GiST indexing is available at the PostgreSQL GiST "
+"development site, <ulink url=\"http://www.sai.msu.su/~megera/postgres/gist/"
+"\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:348
+#, no-c-format
+msgid ""
+"More information about MapServer internet map server is available at <ulink "
+"url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
+msgstr ""
+
+#. Tag: para
+#: introduction.xml:354
+#, no-c-format
+msgid ""
+"The "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple "
+"Features for Specification for SQL</ulink>" is available at the OpenGIS "
+"Consortium web site: <ulink url=\"http://www.opengeospatial.org/\">http://"
+"www.opengeospatial.org/</ulink>."
+msgstr ""
diff --git a/doc/po/pl/performance_tips.xml.po b/doc/po/pl/performance_tips.xml.po
new file mode 100644
index 0000000..befc9b2
--- /dev/null
+++ b/doc/po/pl/performance_tips.xml.po
@@ -0,0 +1,465 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: performance_tips.xml:3
+#, no-c-format
+msgid "Performance tips"
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:6
+#, no-c-format
+msgid "Small tables of large geometries"
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:9
+#, no-c-format
+msgid "Problem description"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:11
+#, no-c-format
+msgid ""
+"Current PostgreSQL versions (including 8.0) suffer from a query optimizer "
+"weakness regarding TOAST tables. TOAST tables are a kind of \"extension room"
+"\" used to store large (in the sense of data size) values that do not fit "
+"into normal data pages (like long texts, images or complex geometries with "
+"lots of vertices), see <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/storage-toast.html\">the PostgreSQL Documentation for TOAST</ulink> "
+"for more information)."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:19
+#, no-c-format
+msgid ""
+"The problem appears if you happen to have a table with rather large "
+"geometries, but not too much rows of them (like a table containing the "
+"boundaries of all European countries in high resolution). Then the table "
+"itself is small, but it uses lots of TOAST space. In our example case, the "
+"table itself had about 80 rows and used only 3 data pages, but the TOAST "
+"table used 8225 pages."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:26
+#, no-c-format
+msgid ""
+"Now issue a query where you use the geometry operator && to search "
+"for a bounding box that matches only very few of those rows. Now the query "
+"optimizer sees that the table has only 3 pages and 80 rows. He estimates "
+"that a sequential scan on such a small table is much faster than using an "
+"index. And so he decides to ignore the GIST index. Usually, this estimation "
+"is correct. But in our case, the && operator has to fetch every "
+"geometry from disk to compare the bounding boxes, thus reading all TOAST "
+"pages, too."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:35
+#, no-c-format
+msgid ""
+"To see whether your suffer from this bug, use the \"EXPLAIN ANALYZE\" "
+"postgresql command. For more information and the technical details, you can "
+"read the thread on the postgres performance mailing list: http://archives."
+"postgresql.org/pgsql-performance/2005-02/msg00030.php"
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:43
+#, no-c-format
+msgid "Workarounds"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:45
+#, no-c-format
+msgid ""
+"The PostgreSQL people are trying to solve this issue by making the query "
+"estimation TOAST-aware. For now, here are two workarounds:"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:48
+#, no-c-format
+msgid ""
+"The first workaround is to force the query planner to use the index. Send "
+"\"SET enable_seqscan TO off;\" to the server before issuing the query. This "
+"basically forces the query planner to avoid sequential scans whenever "
+"possible. So it uses the GIST index as usual. But this flag has to be set on "
+"every connection, and it causes the query planner to make misestimations in "
+"other cases, so you should \"SET enable_seqscan TO on;\" after the query."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:56
+#, no-c-format
+msgid ""
+"The second workaround is to make the sequential scan as fast as the query "
+"planner thinks. This can be achieved by creating an additional column that "
+"\"caches\" the bbox, and matching against this. In our example, the commands "
+"are like:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:61
+#, no-c-format
+msgid ""
+"SELECT "
+"AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
+"UPDATE mytable SET bbox = ST_Envelope(ST_Force2D(the_geom));"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:63
+#, no-c-format
+msgid ""
+"Now change your query to use the && operator against bbox instead of "
+"geom_column, like:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:66
+#, no-c-format
+msgid ""
+"SELECT geom_column \n"
+"FROM mytable \n"
+"WHERE bbox && ST_SetSRID('BOX3D(0 0,1 1)'::box3d,4326);"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:68
+#, no-c-format
+msgid ""
+"Of course, if you change or add rows to mytable, you have to keep the bbox "
+"\"in sync\". The most transparent way to do this would be triggers, but you "
+"also can modify your application to keep the bbox column current or run the "
+"UPDATE query above after every modification."
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:77
+#, no-c-format
+msgid "CLUSTERing on geometry indices"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:79
+#, no-c-format
+msgid ""
+"For tables that are mostly read-only, and where a single index is used for "
+"the majority of queries, PostgreSQL offers the CLUSTER command. This command "
+"physically reorders all the data rows in the same order as the index "
+"criteria, yielding two performance advantages: First, for index range scans, "
+"the number of seeks on the data table is drastically reduced. Second, if "
+"your working set concentrates to some small intervals on the indices, you "
+"have a more efficient caching because the data rows are spread along fewer "
+"data pages. (Feel invited to read the CLUSTER command documentation from the "
+"PostgreSQL manual at this point.)"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:89
+#, no-c-format
+msgid ""
+"However, currently PostgreSQL does not allow clustering on PostGIS GIST "
+"indices because GIST indices simply ignores NULL values, you get an error "
+"message like:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:93
+#, no-c-format
+msgid ""
+"lwgeom=# CLUSTER my_geom_index ON my_table; \n"
+"ERROR: cannot cluster when index access method does not handle null values\n"
+"HINT: You may be able to work around this by marking column \"the_geom\" NOT "
+"NULL."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:95
+#, no-c-format
+msgid ""
+"As the HINT message tells you, one can work around this deficiency by adding "
+"a \"not null\" constraint to the table:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:98
+#, no-c-format
+msgid ""
+"lwgeom=# ALTER TABLE my_table ALTER COLUMN the_geom SET not null; \n"
+"ALTER TABLE"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:100
+#, no-c-format
+msgid ""
+"Of course, this will not work if you in fact need NULL values in your "
+"geometry column. Additionally, you must use the above method to add the "
+"constraint, using a CHECK constraint like \"ALTER TABLE blubb ADD CHECK "
+"(geometry is not null);\" will not work."
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:107
+#, no-c-format
+msgid "Avoiding dimension conversion"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:109
+#, no-c-format
+msgid ""
+"Sometimes, you happen to have 3D or 4D data in your table, but always access "
+"it using OpenGIS compliant ST_AsText() or ST_AsBinary() functions that only "
+"output 2D geometries. They do this by internally calling the ST_Force2D() "
+"function, which introduces a significant overhead for large geometries. To "
+"avoid this overhead, it may be feasible to pre-drop those additional "
+"dimensions once and forever:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:116
+#, no-c-format
+msgid ""
+"UPDATE mytable SET the_geom = ST_Force2D(the_geom); \n"
+"VACUUM FULL ANALYZE mytable;"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:118
+#, no-c-format
+msgid ""
+"Note that if you added your geometry column using AddGeometryColumn() "
+"there'll be a constraint on geometry dimension. To bypass it you will need "
+"to drop the constraint. Remember to update the entry in the geometry_columns "
+"table and recreate the constraint afterwards."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:124
+#, no-c-format
+msgid ""
+"In case of large tables, it may be wise to divide this UPDATE into smaller "
+"portions by constraining the UPDATE to a part of the table via a WHERE "
+"clause and your primary key or another feasible criteria, and running a "
+"simple \"VACUUM;\" between your UPDATEs. This drastically reduces the need "
+"for temporary disk space. Additionally, if you have mixed dimension "
+"geometries, restricting the UPDATE by \"WHERE dimension(the_geom)>2\" "
+"skips re-writing of geometries that already are in 2D."
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:136
+#, no-c-format
+msgid "Tuning your configuration"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:138
+#, no-c-format
+msgid ""
+"These tips are taken from Kevin Neufeld's presentation \"Tips for the "
+"PostGIS Power User\" at the FOSS4G 2007 conference. Depending on your use of "
+"PostGIS (for example, static data and complex analysis vs frequently updated "
+"data and lots of users) these changes can provide significant speedups to "
+"your queries."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:144
+#, no-c-format
+msgid ""
+"For a more tips (and better formatting), the original presentation is at "
+"<ulink url=\"http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117\"> http://2007.foss4g.org/presentations/view.php?"
+"abstract_id=117</ulink>."
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:151
+#, no-c-format
+msgid "Startup"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:153
+#, no-c-format
+msgid "These settings are configured in postgresql.conf:"
+msgstr ""
+
+#. Tag: ulink
+#: performance_tips.xml:158
+#, no-c-format
+msgid "checkpoint_segments"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:163
+#, no-c-format
+msgid ""
+"Maximum number of log file segments between automatic WAL checkpoints (each "
+"segment is normally 16MB); default is 3"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:169
+#, no-c-format
+msgid ""
+"Set to at least 10 or 30 for databases with heavy write activity, or more "
+"for large database loads. Another article on the topic worth reading <ulink "
+"url=\"http://www.westnet.com/~gsmith/content/postgresql/chkp-bgw-83.htm"
+"\">Greg Smith: Checkpoint and Background writer</ulink>"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:175
+#, no-c-format
+msgid "Possibly store the xlog on a separate disk device"
+msgstr ""
+
+#. Tag: ulink
+#: performance_tips.xml:182
+#, no-c-format
+msgid "constraint_exclusion"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:187
+#, no-c-format
+msgid ""
+"Default: off (prior to PostgreSQL 8.4 and for PostgreSQL 8.4+ is set to "
+"partition)"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:192
+#, no-c-format
+msgid ""
+"This is generally used for table partitioning. If you are running PostgreSQL "
+"versions below 8.4, set to \"on\" to ensure the query planner will optimize "
+"as desired. As of PostgreSQL 8.4, the default for this is set to \"partition"
+"\" which is ideal for PostgreSQL 8.4 and above since it will force the "
+"planner to only analyze tables for constraint consideration if they are in "
+"an inherited hierarchy and not pay the planner penalty otherwise."
+msgstr ""
+
+#. Tag: ulink
+#: performance_tips.xml:202
+#, no-c-format
+msgid "shared_buffers"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:207
+#, no-c-format
+msgid "Default: ~32MB"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:212
+#, no-c-format
+msgid "Set to about 1/3 to 3/4 of available RAM"
+msgstr ""
+
+#. Tag: title
+#: performance_tips.xml:220
+#, no-c-format
+msgid "Runtime"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:222
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-WORK-MEM\">work_mem</ulink> (the memory used for sort "
+"operations and complex queries)"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:228
+#, no-c-format
+msgid "Default: 1MB"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:233
+#, no-c-format
+msgid "Adjust up for large dbs, complex queries, lots of RAM"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:238
+#, no-c-format
+msgid "Adjust down for many concurrent users or low RAM."
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:243
+#, no-c-format
+msgid "If you have lots of RAM and few developers:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:245
+#, no-c-format
+msgid "SET work_mem TO 1200000;"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:250
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.postgresql.org/docs/current/static/runtime-config-"
+"resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</ulink> (used "
+"for VACUUM, CREATE INDEX, etc.)"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:256
+#, no-c-format
+msgid "Default: 16MB"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:261
+#, no-c-format
+msgid "Generally too low - ties up I/O, locks objects while swapping memory"
+msgstr ""
+
+#. Tag: para
+#: performance_tips.xml:266
+#, no-c-format
+msgid ""
+"Recommend 32MB to 256MB on production servers w/lots of RAM, but depends on "
+"the # of concurrent users. If you have lots of RAM and few developers:"
+msgstr ""
+
+#. Tag: programlisting
+#: performance_tips.xml:269
+#, no-c-format
+msgid "SET maintainence_work_mem TO 1200000;"
+msgstr ""
diff --git a/doc/po/pl/postgis.xml.po b/doc/po/pl/postgis.xml.po
new file mode 100644
index 0000000..8dddbb2
--- /dev/null
+++ b/doc/po/pl/postgis.xml.po
@@ -0,0 +1,77 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Jakub Bobrowski <jb at 5dstudio.pl>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-10-14 22:36+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: postgis.xml:127
+#, no-c-format
+msgid "PostGIS &last_release_version; Manual"
+msgstr "PostGIS &last_release_version;. Podręcznik"
+
+#. Tag: corpauthor
+#: postgis.xml:131
+#, no-c-format
+msgid "The PostGIS Development Group"
+msgstr ""
+
+#. Tag: affiliation
+#: postgis.xml:137
+#, no-c-format
+msgid ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>British Columbia</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
+msgstr ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>British Columbia</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
+
+#. Tag: para
+#: postgis.xml:151
+#, no-c-format
+msgid ""
+"PostGIS is an extension to the PostgreSQL object-relational database system "
+"which allows GIS (Geographic Information Systems) objects to be stored in "
+"the database. PostGIS includes support for GiST-based R-Tree spatial "
+"indexes, and functions for analysis and processing of GIS objects."
+msgstr ""
+"PostGIS jest rozszerzeniem relacyjno-obiektowego systemu bazy danych "
+"PostgreSQL, który pozwala na przechowywanie obiektów GIS (Geographic "
+"Information Systems) w bazie danych. PostGIS posiada wsparcie dla indeksów "
+"przestrzennych opartych na algorytmach GiST i R-Tree, oraz funkcje "
+"pozwalające na analizowanie i przetwarzanie obiektów GIS."
+
+#. Tag: para
+#: postgis.xml:160
+#, no-c-format
+msgid "This is the manual for version &last_release_version;"
+msgstr "Podręcznik dla wersji &last_release_version;"
+
+#. Tag: para
+#: postgis.xml:161
+#, no-c-format
+msgid ""
+"This work is licensed under a <ulink url=\"http://creativecommons.org/"
+"licenses/by-sa/3.0/\">Creative Commons Attribution-Share Alike 3.0 License</"
+"ulink>. Feel free to use this material any way you like, but we ask that you "
+"attribute credit to the PostGIS Project and wherever possible, a link back "
+"to <ulink url=\"http://postgis.net\">http://postgis.net</ulink>."
+msgstr ""
diff --git a/doc/po/pl/reference.xml.po b/doc/po/pl/reference.xml.po
new file mode 100644
index 0000000..7f4f760
--- /dev/null
+++ b/doc/po/pl/reference.xml.po
@@ -0,0 +1,57 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference.xml:3
+#, no-c-format
+msgid "PostGIS Reference"
+msgstr ""
+
+#. Tag: para
+#: reference.xml:5
+#, no-c-format
+msgid ""
+"The functions given below are the ones which a user of PostGIS is likely to "
+"need. There are other functions which are required support functions to the "
+"PostGIS objects which are not of use to a general user."
+msgstr ""
+
+#. Tag: para
+#: reference.xml:11
+#, no-c-format
+msgid ""
+"PostGIS has begun a transition from the existing naming convention to an SQL-"
+"MM-centric convention. As a result, most of the functions that you know and "
+"love have been renamed using the standard spatial type (ST) prefix. Previous "
+"functions are still available, though are not listed in this document where "
+"updated functions are equivalent. The non ST_ functions not listed in this "
+"documentation are deprecated and will be removed in a future release so STOP "
+"USING THEM."
+msgstr ""
+
+#. Tag: chapter
+#: reference.xml:16
+#, no-c-format
+msgid ""
+"&reference_type; &reference_guc; &reference_management; "
+"&reference_constructor; &reference_accessor; &reference_editor; "
+"&reference_output; &reference_operator; &reference_measure; "
+"&reference_sfcgal; &reference_processing; &reference_lrs; "
+"&reference_transaction; &reference_misc; &reference_exception;"
+msgstr ""
diff --git a/doc/po/pl/reference_accessor.xml.po b/doc/po/pl/reference_accessor.xml.po
new file mode 100644
index 0000000..925e534
--- /dev/null
+++ b/doc/po/pl/reference_accessor.xml.po
@@ -0,0 +1,3382 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_accessor.xml:4
+#, no-c-format
+msgid "Geometry Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:8
+#, no-c-format
+msgid "GeometryType"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:10
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the type of the geometry as a string. Eg: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:16
+#, no-c-format
+msgid ""
+"<funcdef>text <function>GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:24 reference_accessor.xml:81
+#: reference_accessor.xml:129 reference_accessor.xml:177
+#: reference_accessor.xml:225 reference_accessor.xml:276
+#: reference_accessor.xml:328 reference_accessor.xml:377
+#: reference_accessor.xml:438 reference_accessor.xml:489
+#: reference_accessor.xml:548 reference_accessor.xml:607
+#: reference_accessor.xml:662 reference_accessor.xml:706
+#: reference_accessor.xml:757 reference_accessor.xml:814
+#: reference_accessor.xml:879 reference_accessor.xml:931
+#: reference_accessor.xml:990 reference_accessor.xml:1036
+#: reference_accessor.xml:1071 reference_accessor.xml:1110
+#: reference_accessor.xml:1150 reference_accessor.xml:1194
+#: reference_accessor.xml:1256 reference_accessor.xml:1297
+#: reference_accessor.xml:1341 reference_accessor.xml:1398
+#: reference_accessor.xml:1454 reference_accessor.xml:1497
+#: reference_accessor.xml:1550 reference_accessor.xml:1617
+#: reference_accessor.xml:1660 reference_accessor.xml:1705
+#: reference_accessor.xml:1751 reference_accessor.xml:1793
+#: reference_accessor.xml:1838 reference_accessor.xml:1884
+#: reference_accessor.xml:1926 reference_accessor.xml:1972
+#: reference_accessor.xml:2013
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:26
+#, no-c-format
+msgid ""
+"<para>Returns the type of the geometry as a string. Eg: 'LINESTRING', "
+"'POLYGON', 'MULTIPOINT', etc.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:29
+#, no-c-format
+msgid ""
+"OGC SPEC s2.1.1.1 - Returns the name of the instantiable subtype of Geometry "
+"of which this Geometry instance is a member. The name of the instantiable "
+"subtype of Geometry is returned as a string."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:35
+#, no-c-format
+msgid ""
+"This function also indicates if the geometry is measured, by returning a "
+"string of the form 'POINTM'."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:38 reference_accessor.xml:391
+#: reference_accessor.xml:1155
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:39 reference_accessor.xml:135
+#: reference_accessor.xml:393 reference_accessor.xml:500
+#: reference_accessor.xml:553 reference_accessor.xml:833
+#: reference_accessor.xml:999 reference_accessor.xml:1263
+#: reference_accessor.xml:1305 reference_accessor.xml:1414
+#: reference_accessor.xml:1756
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:40 reference_accessor.xml:137
+#: reference_accessor.xml:234 reference_accessor.xml:396
+#: reference_accessor.xml:562 reference_accessor.xml:627
+#: reference_accessor.xml:673 reference_accessor.xml:1077
+#: reference_accessor.xml:1115 reference_accessor.xml:1417
+#: reference_accessor.xml:1462 reference_accessor.xml:1506
+#: reference_accessor.xml:1670 reference_accessor.xml:1715
+#: reference_accessor.xml:1803 reference_accessor.xml:1848
+#: reference_accessor.xml:1936 reference_accessor.xml:1978
+#: reference_accessor.xml:2023
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:41 reference_accessor.xml:96
+#: reference_accessor.xml:138 reference_accessor.xml:232
+#: reference_accessor.xml:337 reference_accessor.xml:395
+#: reference_accessor.xml:444 reference_accessor.xml:502
+#: reference_accessor.xml:561 reference_accessor.xml:626
+#: reference_accessor.xml:771 reference_accessor.xml:1001
+#: reference_accessor.xml:1041 reference_accessor.xml:1076
+#: reference_accessor.xml:1114 reference_accessor.xml:1159
+#: reference_accessor.xml:1262 reference_accessor.xml:1358
+#: reference_accessor.xml:1416 reference_accessor.xml:1504
+#: reference_accessor.xml:1625 reference_accessor.xml:1669
+#: reference_accessor.xml:1714 reference_accessor.xml:1758
+#: reference_accessor.xml:1802 reference_accessor.xml:1847
+#: reference_accessor.xml:1892 reference_accessor.xml:1935
+#: reference_accessor.xml:1977 reference_accessor.xml:2022
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:42 reference_accessor.xml:139
+#: reference_accessor.xml:190 reference_accessor.xml:397
+#: reference_accessor.xml:445 reference_accessor.xml:565
+#: reference_accessor.xml:1078 reference_accessor.xml:1160
+#: reference_accessor.xml:1265 reference_accessor.xml:1359
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:43 reference_accessor.xml:140
+#: reference_accessor.xml:191 reference_accessor.xml:398
+#: reference_accessor.xml:1161
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:49 reference_accessor.xml:101
+#: reference_accessor.xml:145 reference_accessor.xml:195
+#: reference_accessor.xml:244 reference_accessor.xml:298
+#: reference_accessor.xml:342 reference_accessor.xml:450
+#: reference_accessor.xml:508 reference_accessor.xml:632
+#: reference_accessor.xml:680 reference_accessor.xml:725
+#: reference_accessor.xml:776 reference_accessor.xml:840
+#: reference_accessor.xml:896 reference_accessor.xml:956
+#: reference_accessor.xml:1007 reference_accessor.xml:1045
+#: reference_accessor.xml:1083 reference_accessor.xml:1120
+#: reference_accessor.xml:1166 reference_accessor.xml:1206
+#: reference_accessor.xml:1269 reference_accessor.xml:1310
+#: reference_accessor.xml:1365 reference_accessor.xml:1426
+#: reference_accessor.xml:1467 reference_accessor.xml:1516
+#: reference_accessor.xml:1573 reference_accessor.xml:1631
+#: reference_accessor.xml:1675 reference_accessor.xml:1720
+#: reference_accessor.xml:1764 reference_accessor.xml:1808
+#: reference_accessor.xml:1853 reference_accessor.xml:1897
+#: reference_accessor.xml:1941 reference_accessor.xml:1983
+#: reference_accessor.xml:2028
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:51
+#, no-c-format
+msgid ""
+"SELECT GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+" geometrytype\n"
+"--------------\n"
+" LINESTRING"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:52
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        POLYHEDRALSURFACE"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:53
+#, no-c-format
+msgid ""
+"SELECT GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" TIN"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:58 reference_accessor.xml:106
+#: reference_accessor.xml:152 reference_accessor.xml:200
+#: reference_accessor.xml:250 reference_accessor.xml:303
+#: reference_accessor.xml:347 reference_accessor.xml:417
+#: reference_accessor.xml:461 reference_accessor.xml:515
+#: reference_accessor.xml:582 reference_accessor.xml:638
+#: reference_accessor.xml:731 reference_accessor.xml:782
+#: reference_accessor.xml:846 reference_accessor.xml:903
+#: reference_accessor.xml:963 reference_accessor.xml:1013
+#: reference_accessor.xml:1050 reference_accessor.xml:1088
+#: reference_accessor.xml:1127 reference_accessor.xml:1171
+#: reference_accessor.xml:1211 reference_accessor.xml:1234
+#: reference_accessor.xml:1274 reference_accessor.xml:1315
+#: reference_accessor.xml:1372 reference_accessor.xml:1432
+#: reference_accessor.xml:1472 reference_accessor.xml:1522
+#: reference_accessor.xml:1579 reference_accessor.xml:1637
+#: reference_accessor.xml:1682 reference_accessor.xml:1727
+#: reference_accessor.xml:1770 reference_accessor.xml:1815
+#: reference_accessor.xml:1860 reference_accessor.xml:1903
+#: reference_accessor.xml:1948 reference_accessor.xml:1990
+#: reference_accessor.xml:2035
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:64
+#, no-c-format
+msgid "ST_Boundary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:66
+#, no-c-format
+msgid "Returns the closure of the combinatorial boundary of this Geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:72
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Boundary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:83
+#, no-c-format
+msgid ""
+"Returns the closure of the combinatorial boundary of this Geometry. The "
+"combinatorial boundary is defined as described in section 3.12.3.2 of the "
+"OGC SPEC. Because the result of this function is a closure, and hence "
+"topologically closed, the resulting boundary can be represented using "
+"representational geometry primitives as discussed in the OGC SPEC, section "
+"3.12.2."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:90
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:92
+#, no-c-format
+msgid ""
+"Prior to 2.0.0, this function throws an exception if used with "
+"<varname>GEOMETRYCOLLECTION</varname>. From 2.0.0 up it will return NULL "
+"instead (unsupported input)."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:94
+#, no-c-format
+msgid "&sfs_compliant; OGC SPEC s2.1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:95
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.14"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:97
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for Triangle was introduced"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:103
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 "
+"1)')));\n"
+"st_astext\n"
+"-----------\n"
+"MULTIPOINT(1 1,-1 1)\n"
+"\n"
+"SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 "
+"1))')));\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(1 1,0 0,-1 1,1 1)\n"
+"\n"
+"--Using a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, "
+"1 1 1))')));\n"
+"\n"
+"st_asewkt\n"
+"-----------------------------------\n"
+"LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)\n"
+"\n"
+"--Using a 3d multilinestring\n"
+"SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('MULTILINESTRING((1 1 1,0 0 "
+"0.5, -1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"MULTIPOINT(-1 1 1,1 1 0.75)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:108
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakePolygon\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:114
+#, no-c-format
+msgid "ST_CoordDim"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:116
+#, no-c-format
+msgid ""
+"<refpurpose>Return the coordinate dimension of the ST_Geometry value.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:121
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_CoordDim</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:131
+#, no-c-format
+msgid "<para>Return the coordinate dimension of the ST_Geometry value.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:133
+#, no-c-format
+msgid "This is the MM compliant alias name for <xref linkend=\"ST_NDims\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:136
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:147
+#, no-c-format
+msgid ""
+"SELECT ST_CoordDim('CIRCULARSTRING(1 2 3, 1 3 4, 5 6 7, 8 9 10, 11 12 "
+"13)');\n"
+"                        ---result--\n"
+"                                3\n"
+"\n"
+"                                SELECT ST_CoordDim(ST_Point(1,2));\n"
+"                        --result--\n"
+"                                2"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:160
+#, no-c-format
+msgid "ST_Dimension"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:162
+#, no-c-format
+msgid ""
+"The inherent dimension of this Geometry object, which must be less than or "
+"equal to the coordinate dimension."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:168
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Dimension</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:179
+#, no-c-format
+msgid ""
+"The inherent dimension of this Geometry object, which must be less than or "
+"equal to the coordinate dimension. OGC SPEC s2.1.1.1 - returns 0 for "
+"<varname>POINT</varname>, 1 for <varname>LINESTRING</varname>, 2 for "
+"<varname>POLYGON</varname>, and the largest dimension of the components of a "
+"<varname>GEOMETRYCOLLECTION</varname>. If unknown (empty geometry) null is "
+"returned."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:187
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.2"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:188
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces and TINs was introduced. No "
+"longer throws an exception if given empty geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:189
+#, no-c-format
+msgid ""
+"Prior to 2.0.0, this function throws an exception if used with empty "
+"geometry."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:197
+#, no-c-format
+msgid ""
+"SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))');\n"
+"ST_Dimension\n"
+"-----------\n"
+"1"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:208
+#, no-c-format
+msgid "ST_EndPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:210
+#, no-c-format
+msgid ""
+"Returns the last point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:216
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_EndPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:227
+#, no-c-format
+msgid ""
+"Returns the last point of a <varname>LINESTRING</varname> geometry as a "
+"<varname>POINT</varname> or <varname>NULL</varname> if the input parameter "
+"is not a <varname>LINESTRING</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:231
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.4"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:235 reference_accessor.xml:1507
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring. The older behavior was an "
+"undocumented feature, but people who assumed they had their data stored as "
+"LINESTRING may experience these returning NULL in 2.0 now."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:246
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::"
+"geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(3 3)\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_EndPoint('POINT(1 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--3d endpoint\n"
+"SELECT ST_AsEWKT(ST_EndPoint('LINESTRING(1 1 2, 1 2 3, 0 0 5)'));\n"
+"  st_asewkt\n"
+"--------------\n"
+" POINT(0 0 5)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:252
+#, no-c-format
+msgid ", <xref linkend=\"ST_StartPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:259
+#, no-c-format
+msgid "ST_Envelope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:261
+#, no-c-format
+msgid ""
+"Returns a geometry representing the double precision (float8) bounding box "
+"of the supplied geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:267
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:278
+#, no-c-format
+msgid ""
+"Returns the float8 minimum bounding box for the supplied geometry, as a "
+"geometry. The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>)). (PostGIS will add a "
+"<varname>ZMIN</varname>/<varname>ZMAX</varname> coordinate as well)."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:288
+#, no-c-format
+msgid ""
+"Degenerate cases (vertical lines, points) will return a geometry of lower "
+"dimension than <varname>POLYGON</varname>, ie. <varname>POINT</varname> or "
+"<varname>LINESTRING</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:292
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 behavior changed to output double precision instead of "
+"float4"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:293 reference_accessor.xml:671
+#: reference_accessor.xml:769 reference_accessor.xml:1460
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:294
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.15"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:300
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(1 3)\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('LINESTRING(0 0, 1 3)'::geometry));\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 3,1 3,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000001 1, 1.0000001 0, 0 "
+"0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000000001 1, "
+"1.0000000001 0, 0 0))'::geometry));\n"
+"                                                  st_astext\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))\n"
+"(1 row)\n"
+"        \n"
+"SELECT Box3D(geom), Box2D(geom), ST_AsText(ST_Envelope(geom)) As "
+"envelopewkt\n"
+"        FROM (SELECT 'POLYGON((0 0, 0 1000012333334.34545678, 1.0000001 1, "
+"1.0000001 0, 0 0))'::geometry As geom) As foo;\n"
+"\n"
+"<!-- TODO: Fix examples to reflect new behavior -->"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:305
+#, no-c-format
+msgid ", <xref linkend=\"Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:311
+#, no-c-format
+msgid "ST_ExteriorRing"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:313
+#, no-c-format
+msgid ""
+"Returns a line string representing the exterior ring of the "
+"<varname>POLYGON</varname> geometry. Return NULL if the geometry is not a "
+"polygon. Will not work with MULTIPOLYGON"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:319
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ExteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:330
+#, no-c-format
+msgid ""
+"Returns a line string representing the exterior ring of the "
+"<varname>POLYGON</varname> geometry. Return NULL if the geometry is not a "
+"polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:333
+#, no-c-format
+msgid "Only works with POLYGON geometry types"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:335 reference_accessor.xml:715
+#, no-c-format
+msgid "&sfs_compliant; 2.1.5.1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:336
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.3, 8.3.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:343
+#, no-c-format
+msgid ""
+"--If you have a table of polygons\n"
+"SELECT gid, ST_ExteriorRing(the_geom) AS ering\n"
+"FROM sometable;\n"
+"\n"
+"--If you have a table of MULTIPOLYGONs\n"
+"--and want to return a MULTILINESTRING composed of the exterior rings of "
+"each polygon\n"
+"SELECT gid, ST_Collect(ST_ExteriorRing(the_geom)) AS erings\n"
+"        FROM (SELECT gid, (ST_Dump(the_geom)).geom As the_geom\n"
+"                        FROM sometable) As foo\n"
+"GROUP BY gid;\n"
+"\n"
+"--3d Example\n"
+"SELECT ST_AsEWKT(\n"
+"        ST_ExteriorRing(\n"
+"        ST_GeomFromEWKT('POLYGON((0 0 1, 1 1 1, 1 2 1, 1 1 1, 0 0 1))')\n"
+"        )\n"
+");\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"LINESTRING(0 0 1,1 1 1,1 2 1,1 1 1,0 0 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:349
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_NumInteriorRings\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:359
+#, no-c-format
+msgid "ST_GeometryN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:361
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
+"(MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, "
+"POLYHEDRALSURFACE Otherwise, return NULL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:368
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeometryN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:379
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
+"(MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, "
+"POLYHEDRALSURFACE Otherwise, return NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:384 reference_accessor.xml:1405
+#, no-c-format
+msgid ""
+"Index is 1-based as for OGC specs since version 0.8.0. Previous versions "
+"implemented this as 0-based instead."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:389
+#, no-c-format
+msgid ""
+"If you want to extract all geometries, of a geometry, ST_Dump is more "
+"efficient and will also work for singular geoms."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:392
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Prior versions would return NULL for singular geometries. "
+"This was changed to return the geometry for ST_GeometryN(..,1) case."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:394
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.1.5"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:404
+#, no-c-format
+msgid "Standard Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:406
+#, no-c-format
+msgid ""
+"--Extracting a subset of points from a 3d multipoint\n"
+"SELECT n, ST_AsEWKT(ST_GeometryN(the_geom, n)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('MULTIPOINT(1 2 7, 3 4 7, 5 6 7, 8 9 10)') ),\n"
+"( ST_GeomFromEWKT('MULTICURVE(CIRCULARSTRING(2.5 2.5,4.5 2.5, 3.5 3.5), (10 "
+"11, 12 11))') )\n"
+"        )As foo(the_geom)\n"
+"        CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);\n"
+"\n"
+" n |               geomewkt\n"
+"---+-----------------------------------------\n"
+" 1 | POINT(1 2 7)\n"
+" 2 | POINT(3 4 7)\n"
+" 3 | POINT(5 6 7)\n"
+" 4 | POINT(8 9 10)\n"
+" 1 | CIRCULARSTRING(2.5 2.5,4.5 2.5,3.5 3.5)\n"
+" 2 | LINESTRING(10 11,12 11)\n"
+"\n"
+"\n"
+"--Extracting all geometries (useful when you want to assign an id)\n"
+"SELECT gid, n, ST_GeometryN(the_geom, n)\n"
+"FROM sometable CROSS JOIN generate_series(1,100) n\n"
+"WHERE n <= ST_NumGeometries(the_geom);"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:409
+#, no-c-format
+msgid "Polyhedral Surfaces, TIN and Triangle Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:410
+#, no-c-format
+msgid ""
+"-- Polyhedral surface example\n"
+"-- Break a Polyhedral surface into its faces\n"
+"SELECT ST_AsEWKT(ST_GeometryN(p_geom,3)) As geom_ewkt\n"
+"  FROM (SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")')  AS p_geom )  AS a;\n"
+"\n"
+"                geom_ewkt\n"
+"------------------------------------------\n"
+" POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:412
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT ST_AsEWKT(ST_GeometryN(geom,2)) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+"-- result --\n"
+"                 wkt\n"
+"-------------------------------------\n"
+" TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:419 reference_accessor.xml:1276
+#, no-c-format
+msgid ", <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:425
+#, no-c-format
+msgid "ST_GeometryType"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:426
+#, no-c-format
+msgid "Return the geometry type of the ST_Geometry value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:431
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeometryType</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:440
+#, no-c-format
+msgid ""
+"Returns the type of the geometry as a string. EG: 'ST_Linestring', "
+"'ST_Polygon','ST_MultiPolygon' etc. This function differs from "
+"GeometryType(geometry) in the case of the string and ST in front that is "
+"returned, as well as the fact that it will not indicate whether the geometry "
+"is measured."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:442 reference_accessor.xml:563
+#: reference_accessor.xml:1074
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:443
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:452
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                        --result\n"
+"                        ST_LineString"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:454 reference_accessor.xml:456
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                        --result\n"
+"                        ST_PolyhedralSurface"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:458
+#, no-c-format
+msgid ""
+"SELECT ST_GeometryType(geom) as result\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')  AS geom\n"
+"    ) AS g;\n"
+" result\n"
+"--------\n"
+" ST_Tin"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:471
+#, no-c-format
+msgid "ST_InteriorRingN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:473
+#, no-c-format
+msgid ""
+"Return the Nth interior linestring ring of the polygon geometry. Return NULL "
+"if the geometry is not a polygon or the given N is out of range."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:480
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_InteriorRingN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:491
+#, no-c-format
+msgid ""
+"Return the Nth interior linestring ring of the polygon geometry. Return NULL "
+"if the geometry is not a polygon or the given N is out of range. index "
+"starts at 1."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:497
+#, no-c-format
+msgid ""
+"This will not work for MULTIPOLYGONs. Use in conjunction with ST_Dump for "
+"MULTIPOLYGONS"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:501
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.6, 8.3.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:510
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_InteriorRingN(the_geom, 1)) As the_geom\n"
+"FROM (SELECT ST_BuildArea(\n"
+"                ST_Collect(ST_Buffer(ST_Point(1,2), 20,3),\n"
+"                        ST_Buffer(ST_Point(1, 2), 10,3))) As the_geom\n"
+"                )  as foo"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:517
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend="
+"\"ST_NumInteriorRing\"/>,"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:530
+#, no-c-format
+msgid "ST_IsClosed"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:532
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
+"and end points are coincident. For Polyhedral surface is closed (volumetric)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:539
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsClosed</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:550
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
+"and end points are coincident. For Polyhedral Surfaces, it tells you if the "
+"surface is areal (open) or volumetric (closed)."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:554
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.5, 9.3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:556
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of <function>ST_IsClosed(<varname>NULL</varname>)</"
+"function> to be 0, while PostGIS returns <varname>NULL</varname>."
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:570
+#, no-c-format
+msgid "Line String and Point Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:572
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 0 1, 1 1, 0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTILINESTRING((0 0, 0 1, 1 1, 0 0),(0 0, 1 "
+"1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('POINT(0 0)'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsClosed('MULTIPOINT((0 0), (1 1))'::geometry);\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_accessor.xml:576
+#, no-c-format
+msgid "Polyhedral Surface Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:578
+#, no-c-format
+msgid ""
+"-- A cube --\n"
+"                SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 "
+"0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" t\n"
+"\n"
+"\n"
+" -- Same as cube but missing a side --\n"
+" SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)) )'));\n"
+"\n"
+" st_isclosed\n"
+"-------------\n"
+" f"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:590
+#, no-c-format
+msgid "ST_IsCollection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:592
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the argument is a collection "
+"(<varname>MULTI*</varname>, <varname>GEOMETRYCOLLECTION</varname>, ...)"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:599
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:609
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the geometry type of the argument is "
+"either:"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:612
+#, no-c-format
+msgid "GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:613
+#, no-c-format
+msgid "MULTI{POINT,POLYGON,LINESTRING,CURVE,SURFACE}"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:614
+#, no-c-format
+msgid "COMPOUNDCURVE"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:619
+#, no-c-format
+msgid ""
+"This function analyzes the type of the geometry. This means that it will "
+"return <varname>TRUE</varname> on collections that are empty or that contain "
+"a single element."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:634
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_IsCollection('LINESTRING(0 0, 1 1)'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT EMPTY'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('MULTIPOINT((0 0), (42 42))'::geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_IsCollection('GEOMETRYCOLLECTION(POINT(0 0))'::"
+"geometry);\n"
+" st_iscollection\n"
+"-------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:646
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:648
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is an empty geometrycollection, polygon, point "
+"etc."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:654
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:664
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is an empty geometry. If true, then this "
+"Geometry represents an empty geometry collection, polygon, point etc."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:667
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsEmpty(NULL) to be 0, while PostGIS returns "
+"NULL."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:672
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.7"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:674
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:682
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON EMPTY'));\n"
+" st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+"\n"
+" st_isempty\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))')) = "
+"false;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsEmpty(ST_GeomFromText('CIRCULARSTRING EMPTY'));\n"
+"  st_isempty\n"
+"------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:689
+#, no-c-format
+msgid "ST_IsRing"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:691
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
+"both closed and simple."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:697
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:708
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
+"both <xref linkend=\"ST_IsClosed\"/> (<function>ST_StartPoint(<parameter>g</"
+"parameter>)</function> <function>~=</function> "
+"<function>ST_Endpoint(<parameter>g</parameter>)</function>) and <xref "
+"linkend=\"ST_IsSimple\"/> (does not self intersect)."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:716
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.6"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:718
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of <function>ST_IsRing(<varname>NULL</varname>)</"
+"function> to be 0, while PostGIS returns <varname>NULL</varname>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:727
+#, no-c-format
+msgid ""
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 1, 1 0, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" t         | t           | t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
+"FROM (SELECT 'LINESTRING(0 0, 0 1, 1 0, 1 1, 0 0)'::geometry AS the_geom) AS "
+"foo;\n"
+" st_isring | st_isclosed | st_issimple\n"
+"-----------+-------------+-------------\n"
+" f         | t           | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:733
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_StartPoint\"/>, <xref "
+"linkend=\"ST_EndPoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:741
+#, no-c-format
+msgid "ST_IsSimple"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:743
+#, no-c-format
+msgid ""
+"Returns (TRUE) if this Geometry has no anomalous geometric points, such as "
+"self intersection or self tangency."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:749
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsSimple</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:759
+#, no-c-format
+msgid ""
+"Returns true if this Geometry has no anomalous geometric points, such as "
+"self intersection or self tangency. For more information on the OGC's "
+"definition of geometry simplicity and validity, refer to <link linkend="
+"\"OGC_Validity\">\"Ensuring OpenGIS compliancy of geometries\"</link>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:765
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsSimple(NULL) to be 0, while PostGIS "
+"returns NULL."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:770
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.8"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:778
+#, no-c-format
+msgid ""
+"SELECT ST_IsSimple(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
+" st_issimple\n"
+"-------------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+" SELECT ST_IsSimple(ST_GeomFromText('LINESTRING(1 1,2 2,2 3.5,1 3,1 2,2 "
+"1)'));\n"
+" st_issimple\n"
+"-------------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:790
+#, no-c-format
+msgid "ST_IsValid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:792
+#, no-c-format
+msgid ""
+"Returns <varname>true</varname> if the <varname>ST_Geometry</varname> is "
+"well formed."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:798
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_IsValid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>flags</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:816
+#, no-c-format
+msgid ""
+"Test if an ST_Geometry value is well formed. For geometries that are "
+"invalid, the PostgreSQL NOTICE will provide details of why it is not valid. "
+"For more information on the OGC's definition of geometry simplicity and "
+"validity, refer to <link linkend=\"OGC_Validity\">\"Ensuring OpenGIS "
+"compliancy of geometries\"</link>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:822
+#, no-c-format
+msgid ""
+"SQL-MM defines the result of ST_IsValid(NULL) to be 0, while PostGIS returns "
+"NULL."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:826
+#, no-c-format
+msgid ""
+"The version accepting flags is available starting with 2.0.0 and requires "
+"GEOS >= 3.3.0. Such version does not print a NOTICE explaining the "
+"invalidity. Allowed <varname>flags</varname> are documented in <xref linkend="
+"\"ST_IsValidDetail\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:834
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:842
+#, no-c-format
+msgid ""
+"SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,\n"
+"        ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As "
+"bad_poly\n"
+"--results\n"
+"NOTICE:  Self-intersection at or near point 0 0\n"
+" good_line | bad_poly\n"
+"-----------+----------\n"
+" t         | f"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:848
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/"
+">, <xref linkend=\"ST_Summary\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:859
+#, no-c-format
+msgid "ST_IsValidReason"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:861
+#, no-c-format
+msgid ""
+"Returns text stating if a geometry is valid or not and if not valid, a "
+"reason why."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:865
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_IsValidReason</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_IsValidReason</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>flags</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:881
+#, no-c-format
+msgid ""
+"Returns text stating if a geometry is valid or not an if not valid, a reason "
+"why."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:883
+#, no-c-format
+msgid ""
+"Useful in combination with ST_IsValid to generate a detailed report of "
+"invalid geometries and reasons."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:885
+#, no-c-format
+msgid ""
+"Allowed <varname>flags</varname> are documented in <xref linkend="
+"\"ST_IsValidDetail\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:889
+#, no-c-format
+msgid "Availability: 1.4 - requires GEOS >= 3.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:890
+#, no-c-format
+msgid ""
+"Availability: 2.0 - requires GEOS >= 3.3.0 for the version taking flags."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:898
+#, no-c-format
+msgid ""
+"--First 3 Rejects from a successful quintuplet experiment\n"
+"SELECT gid, ST_IsValidReason(the_geom) as validity_info\n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      validity_info\n"
+"------+--------------------------\n"
+" 5330 | Self-intersection [32 5]\n"
+" 5340 | Self-intersection [42 5]\n"
+" 5350 | Self-intersection [52 5]\n"
+"\n"
+" --simple example\n"
+"SELECT ST_IsValidReason('LINESTRING(220227 150406,2220227 150407,222020 "
+"150410)');\n"
+"\n"
+" st_isvalidreason\n"
+"------------------\n"
+" Valid Geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:905
+#, no-c-format
+msgid ", <xref linkend=\"ST_Summary\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:911
+#, no-c-format
+msgid "ST_IsValidDetail"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:913
+#, no-c-format
+msgid ""
+"Returns a valid_detail (valid,reason,location) row stating if a geometry is "
+"valid or not and if not valid, a reason why and a location where."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:917
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>valid_detail "
+"<function>ST_IsValidDetail</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>flags</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:933
+#, no-c-format
+msgid ""
+"Returns a valid_detail row, formed by a boolean (valid) stating if a "
+"geometry is valid, a varchar (reason) stating a reason why it is invalid and "
+"a geometry (location) pointing out where it is invalid."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:935
+#, no-c-format
+msgid ""
+"Useful to substitute and improve the combination of ST_IsValid and "
+"ST_IsValidReason to generate a detailed report of invalid geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:937
+#, no-c-format
+msgid "The 'flags' argument is a bitfield. It can have the following values:"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:941
+#, no-c-format
+msgid ""
+"1: Consider self-intersecting rings forming holes as valid. This is also "
+"know as \"the ESRI flag\". Note that this is against the OGC model."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:950
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:958
+#, no-c-format
+msgid ""
+"--First 3 Rejects from a successful quintuplet experiment\n"
+"SELECT gid, reason(ST_IsValidDetail(the_geom)), "
+"ST_AsText(location(ST_IsValidDetail(the_geom))) as location \n"
+"FROM\n"
+"(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
+"the_geom, gid\n"
+"FROM (SELECT ST_Buffer(ST_MakePoint(x1*10,y1), z1) As buff, x1*10 + y1*100 + "
+"z1*1000 As gid\n"
+"        FROM generate_series(-4,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,8) z1\n"
+"        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
+"        FROM generate_series(-3,6) x1\n"
+"        CROSS JOIN generate_series(2,5) y1\n"
+"        CROSS JOIN generate_series(1,10) z1\n"
+"        WHERE x1 > y1*0.75 AND z1 < x1*y1) As f\n"
+"ON (ST_Area(e.buff) > 78 AND ST_Contains(e.buff, f.line))\n"
+"GROUP BY gid, e.buff) As quintuplet_experiment\n"
+"WHERE ST_IsValid(the_geom) = false\n"
+"ORDER BY gid\n"
+"LIMIT 3;\n"
+"\n"
+" gid  |      reason       |  location\n"
+"------+-------------------+-------------\n"
+" 5330 | Self-intersection | POINT(32 5)\n"
+" 5340 | Self-intersection | POINT(42 5)\n"
+" 5350 | Self-intersection | POINT(52 5)\n"
+"\n"
+" --simple example\n"
+"SELECT * FROM ST_IsValidDetail('LINESTRING(220227 150406,2220227 "
+"150407,222020 150410)');\n"
+"\n"
+" valid | reason | location\n"
+"-------+--------+----------\n"
+" t     |        |"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:965
+#, no-c-format
+msgid ", <xref linkend=\"ST_IsValidReason\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:974
+#, no-c-format
+msgid "ST_M"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:976
+#, no-c-format
+msgid ""
+"<refpurpose>Return the M coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:982
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_M</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:992
+#, no-c-format
+msgid ""
+"<para>Return the M coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:996
+#, no-c-format
+msgid ""
+"This is not (yet) part of the OGC spec, but is listed here to complete the "
+"point coordinate extractor function list."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1000 reference_accessor.xml:1891
+#, no-c-format
+msgid "&sqlmm_compliant;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1008
+#, no-c-format
+msgid ""
+"SELECT ST_M(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_m\n"
+"------\n"
+"        4\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1015
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1021
+#, no-c-format
+msgid "ST_NDims"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1022
+#, no-c-format
+msgid ""
+"Returns coordinate dimension of the geometry as a small int. Values are: 2,3 "
+"or 4."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1028
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NDims</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1038
+#, no-c-format
+msgid ""
+"Returns the coordinate dimension of the geometry. PostGIS supports 2 - (x,"
+"y) , 3 - (x,y,z) or 2D with measure - x,y,m, and 4 - 3D with measure space x,"
+"y,z,m"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1047
+#, no-c-format
+msgid ""
+"SELECT ST_NDims(ST_GeomFromText('POINT(1 1)')) As d2point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINT(1 1 2)')) As d3point,\n"
+"        ST_NDims(ST_GeomFromEWKT('POINTM(1 1 0.5)')) As d2pointm;\n"
+"\n"
+"         d2point | d3point | d2pointm\n"
+"---------+---------+----------\n"
+"           2 |       3 |        3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1051
+#, no-c-format
+msgid ", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1057
+#, no-c-format
+msgid "ST_NPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1058
+#, no-c-format
+msgid "Return the number of points (vertexes) in a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1063
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1073
+#, no-c-format
+msgid "Return the number of points in a geometry. Works for all geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1075
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1085
+#, no-c-format
+msgid ""
+"SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 "
+"29.31,77.29 29.07)'));\n"
+"--result\n"
+"4\n"
+"\n"
+"--Polygon in 3D space\n"
+"SELECT ST_NPoints(ST_GeomFromEWKT('LINESTRING(77.29 29.07 1,77.42 29.26 "
+"0,77.27 29.31 -1,77.29 29.07 3)'))\n"
+"--result\n"
+"4"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1096
+#, no-c-format
+msgid "ST_NRings"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1097
+#, no-c-format
+msgid ""
+"If the geometry is a polygon or multi-polygon returns the number of rings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1102
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1112
+#, no-c-format
+msgid ""
+"If the geometry is a polygon or multi-polygon returns the number of rings. "
+"Unlike NumInteriorRings, it counts the outer rings as well."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1122
+#, no-c-format
+msgid ""
+"SELECT ST_NRings(the_geom) As Nrings, ST_NumInteriorRings(the_geom) As "
+"ninterrings\n"
+"                                        FROM (SELECT "
+"ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))') As the_geom) As foo;\n"
+"         nrings | ninterrings\n"
+"--------+-------------\n"
+"          1 |           0\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1135
+#, no-c-format
+msgid "ST_NumGeometries"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1136
+#, no-c-format
+msgid ""
+"If geometry is a GEOMETRYCOLLECTION (or MULTI*) return the number of "
+"geometries, for single geometries will return 1, otherwise return NULL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1142
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumGeometries</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1152
+#, no-c-format
+msgid ""
+"Returns the number of Geometries. If geometry is a GEOMETRYCOLLECTION (or "
+"MULTI*) return the number of geometries, for single geometries will return "
+"1, otherwise return NULL."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1156
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this would return NULL if the geometry was "
+"not a collection/MULTI type. 2.0.0+ now returns 1 for single geometries e.g "
+"POLYGON, LINESTRING, POINT."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1158
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.1.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1168
+#, no-c-format
+msgid ""
+"--Prior versions would have returned NULL for this -- in 2.0.0 this returns "
+"1\n"
+"SELECT ST_NumGeometries(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"--result\n"
+"1\n"
+"\n"
+"--Geometry Collection Example - multis count as one geom in a collection\n"
+"SELECT ST_NumGeometries(ST_GeomFromEWKT('GEOMETRYCOLLECTION(MULTIPOINT(-2 "
+"3 , -2 2),\n"
+"LINESTRING(5 5 ,10 10),\n"
+"POLYGON((-7 4.2,-7.1 5,-7.1 4.3,-7 4.2)))'));\n"
+"--result\n"
+"3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1173
+#, no-c-format
+msgid ", <xref linkend=\"ST_Multi\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1179
+#, no-c-format
+msgid "ST_NumInteriorRings"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1180
+#, no-c-format
+msgid ""
+"Return the number of interior rings of the a polygon in the geometry. This "
+"will work with POLYGON and return NULL for a MULTIPOLYGON type or any other "
+"type"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1186
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumInteriorRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1196
+#, no-c-format
+msgid ""
+"Return the number of interior rings of the first polygon in the geometry. "
+"This will work with both POLYGON and MULTIPOLYGON types but only looks at "
+"the first polygon. Return NULL if there is no polygon in the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1201
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.2.5"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1202
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions it would return the number of interior "
+"rings for the first POLYGON in a MULTIPOLYGON."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1208
+#, no-c-format
+msgid ""
+"--If you have a regular polygon\n"
+"SELECT gid, field1, field2, ST_NumInteriorRings(the_geom) AS numholes\n"
+"FROM sometable;\n"
+"\n"
+"--If you have multipolygons\n"
+"--And you want to know the total number of interior rings in the "
+"MULTIPOLYGON\n"
+"SELECT gid, field1, field2, SUM(ST_NumInteriorRings(the_geom)) AS numholes\n"
+"FROM (SELECT gid, field1, field2, (ST_Dump(the_geom)).geom As the_geom\n"
+"        FROM sometable) As foo\n"
+"GROUP BY gid, field1,field2;"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1219
+#, no-c-format
+msgid "ST_NumInteriorRing"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1220
+#, no-c-format
+msgid ""
+"Return the number of interior rings of a polygon in the geometry. Synonym "
+"for ST_NumInteriorRings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1226
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumInteriorRing</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1242
+#, no-c-format
+msgid "ST_NumPatches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1243
+#, no-c-format
+msgid ""
+"Return the number of faces on a Polyhedral Surface. Will return null for non-"
+"polyhedral geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1248
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumPatches</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1258
+#, no-c-format
+msgid ""
+"Return the number of faces on a Polyhedral Surface. Will return null for non-"
+"polyhedral geometries. This is an alias for ST_NumGeometries to support MM "
+"naming. Faster to use ST_NumGeometries if you don't care about MM convention."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1261 reference_accessor.xml:1356
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1264 reference_accessor.xml:1357
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: ?"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1271
+#, no-c-format
+msgid ""
+"SELECT ST_NumPatches(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )'));\n"
+"                --result\n"
+"                6"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1282
+#, no-c-format
+msgid "ST_NumPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1283
+#, no-c-format
+msgid ""
+"Return the number of points in an ST_LineString or ST_CircularString value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1289
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1299
+#, no-c-format
+msgid ""
+"Return the number of points in an ST_LineString or ST_CircularString value. "
+"Prior to 1.4 only works with Linestrings as the specs state. From 1.4 "
+"forward this is an alias for ST_NPoints which returns number of vertexes for "
+"not just line strings. Consider using ST_NPoints instead which is multi-"
+"purpose and works with many geometry types."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1306
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1312
+#, no-c-format
+msgid ""
+"SELECT ST_NumPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
+"29.26,77.27 29.31,77.29 29.07)'));\n"
+"                --result\n"
+"                4"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1323
+#, no-c-format
+msgid "ST_PatchN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1325
+#, no-c-format
+msgid ""
+"Return the 1-based Nth geometry (face) if the geometry is a "
+"POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1332
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PatchN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1343
+#, no-c-format
+msgid ""
+">Return the 1-based Nth geometry (face) if the geometry is a "
+"POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL. This returns "
+"the same answer as ST_GeometryN for Polyhedral Surfaces. Using ST_GemoetryN "
+"is faster."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1349
+#, no-c-format
+msgid "Index is 1-based."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1353
+#, no-c-format
+msgid ""
+"If you want to extract all geometries, of a geometry, ST_Dump is more "
+"efficient."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1367
+#, no-c-format
+msgid ""
+"--Extract the 2nd face of the polyhedral surface\n"
+"SELECT ST_AsEWKT(ST_PatchN(geom, 2)) As geomewkt\n"
+"FROM (\n"
+"VALUES (ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )')) ) As foo(geom);\n"
+"\n"
+"              geomewkt\n"
+"---+-----------------------------------------\n"
+" POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1374
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
+"linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1380
+#, no-c-format
+msgid "ST_PointN"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1382
+#, no-c-format
+msgid ""
+"Return the Nth point in the first linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1389
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PointN</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1400
+#, no-c-format
+msgid ""
+"Return the Nth point in a single linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1410
+#, no-c-format
+msgid ""
+"If you want to get the nth point of each line string in a multilinestring, "
+"use in conjunction with ST_Dump"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1415
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.5, 7.3.5"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1418
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1428
+#, no-c-format
+msgid ""
+"-- Extract all POINTs from a LINESTRING\n"
+"SELECT ST_AsText(\n"
+"   ST_PointN(\n"
+"          column1,\n"
+"          generate_series(1, ST_NPoints(column1))\n"
+"   ))\n"
+"FROM ( VALUES ('LINESTRING(0 0, 1 1, 2 2)'::geometry) ) AS foo;\n"
+"\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 0)\n"
+" POINT(1 1)\n"
+" POINT(2 2)\n"
+"(3 rows)\n"
+"\n"
+"--Example circular string\n"
+"SELECT ST_AsText(ST_PointN(ST_GeomFromText('CIRCULARSTRING(1 2, 3 2, 1 "
+"2)'),2));\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"POINT(3 2)"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1440
+#, no-c-format
+msgid "ST_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1441
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier for the ST_Geometry as defined in "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1446
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1456
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier for the ST_Geometry as defined in "
+"spatial_ref_sys table. <xref linkend=\"spatial_ref_sys\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1457
+#, no-c-format
+msgid ""
+"spatial_ref_sys table is a table that catalogs all spatial reference systems "
+"known to PostGIS and is used for transformations from one spatial reference "
+"system to another. So verifying you have the right spatial reference system "
+"identifier is important if you plan to ever transform your geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1461
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1469
+#, no-c-format
+msgid ""
+"SELECT ST_SRID(ST_GeomFromText('POINT(-71.1043 42.315)',4326));\n"
+"                --result\n"
+"                4326"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1474
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1480
+#, no-c-format
+msgid "ST_StartPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1482
+#, no-c-format
+msgid ""
+"Returns the first point of a <varname>LINESTRING</varname> geometry as a "
+"<varname>POINT</varname>."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1488
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_StartPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1499
+#, no-c-format
+msgid ""
+"Returns the first point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname> "
+"or <varname>NULL</varname> if the input parameter is not a "
+"<varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1503
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1518
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_StartPoint('LINESTRING(0 1, 0 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 1)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_StartPoint('POINT(0 1)'::geometry) IS NULL AS is_null;\n"
+"  is_null\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"--3d line\n"
+"SELECT ST_AsEWKT(ST_StartPoint('LINESTRING(0 1 1, 0 2 2)'::geometry));\n"
+" st_asewkt\n"
+"------------\n"
+" POINT(0 1 1)\n"
+"(1 row)\n"
+"\n"
+"-- circular linestring --\n"
+"SELECT ST_AsText(ST_StartPoint('CIRCULARSTRING(5 2,-3 1.999999, -2 1, -4 2, "
+"5 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(5 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1524
+#, no-c-format
+msgid ", <xref linkend=\"ST_PointN\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1529
+#, no-c-format
+msgid "ST_Summary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1531
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_accessor.xml:1537
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_Summary</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1552
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1554
+#, no-c-format
+msgid ""
+"Flags shown square brackets after the geometry type have the following "
+"meaning:"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1558
+#, no-c-format
+msgid "M: has M ordinate"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1559
+#, no-c-format
+msgid "Z: has Z ordinate"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1560
+#, no-c-format
+msgid "B: has a cached bounding box"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1561
+#, no-c-format
+msgid "G: is geodetic (geography)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1562
+#, no-c-format
+msgid "S: has spatial reference system"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1566
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1567
+#, no-c-format
+msgid "Enhanced: 2.0.0 added support for geography"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1568
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 S flag to denote if has a known spatial reference system"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1575
+#, no-c-format
+msgid ""
+"=# SELECT ST_Summary(ST_GeomFromText('LINESTRING(0 0, 1 1)')) as geom,\n"
+"        ST_Summary(ST_GeogFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) "
+"geog;\n"
+"            geom             |          geog    \n"
+"-----------------------------+--------------------------\n"
+" LineString[B] with 2 points | Polygon[BGS] with 1 rings\n"
+"                             | ring 0 has 5 points\n"
+"                             :\n"
+"(1 row)\n"
+"\n"
+"\n"
+"=# SELECT ST_Summary(ST_GeogFromText('LINESTRING(0 0 1, 1 1 1)')) As "
+"geog_line,\n"
+"        ST_Summary(ST_GeomFromText('SRID=4326;POLYGON((0 0 1, 1 1 2, 1 2 3, "
+"1 1 1, 0 0 1))')) As geom_poly;\n"
+";\n"
+"           geog_line             |        geom_poly\n"
+"-------------------------------- +--------------------------\n"
+" LineString[ZBGS] with 2 points | Polygon[ZBS] with 1 rings\n"
+"                                :    ring 0 has 5 points\n"
+"                                :\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1581
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_AddBBox\"/>, <xref linkend=\"ST_Force_3DM\"/>, "
+"<xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force2D\"/>, <xref "
+"linkend=\"geography\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1590
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_IsValidReason\"/>, "
+"<xref linkend=\"ST_IsValidDetail\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1601
+#, no-c-format
+msgid "ST_X"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1603
+#, no-c-format
+msgid ""
+"<refpurpose>Return the X coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1609
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_X</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1619
+#, no-c-format
+msgid ""
+"<para>Return the X coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1622
+#, no-c-format
+msgid ""
+"If you want to get the max min x values of any geometry look at ST_XMin, "
+"ST_XMax functions."
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1624
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1632
+#, no-c-format
+msgid ""
+"SELECT ST_X(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_x\n"
+"------\n"
+"        1\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+" st_y\n"
+"------\n"
+"  1.5\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1639
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_Z\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1645
+#, no-c-format
+msgid "ST_XMax"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1647
+#, no-c-format
+msgid ""
+"<refpurpose>Returns X maxima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1652
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_XMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1662
+#, no-c-format
+msgid "<para>Returns X maxima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1665 reference_accessor.xml:1710
+#: reference_accessor.xml:1798 reference_accessor.xml:1843
+#: reference_accessor.xml:1931 reference_accessor.xml:2018
+#, no-c-format
+msgid ""
+"Although this function is only defined for box3d, it will work for box2d and "
+"geometry because of the auto-casting behavior defined for geometries and "
+"box2d. However you can not feed it a geometry or box2d text representation, "
+"since that will not auto-cast."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1677
+#, no-c-format
+msgid ""
+"SELECT ST_XMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmax\n"
+"-------\n"
+"4\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmax\n"
+"-------\n"
+"5\n"
+"\n"
+"SELECT ST_XMax(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmax\n"
+"-------\n"
+"3\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_XMax('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_XMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmax\n"
+"--------\n"
+"220288.248780547"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1684 reference_accessor.xml:1729
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1690
+#, no-c-format
+msgid "ST_XMin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1692
+#, no-c-format
+msgid ""
+"<refpurpose>Returns X minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1697
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_XMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1707
+#, no-c-format
+msgid "<para>Returns X minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1722
+#, no-c-format
+msgid ""
+"SELECT ST_XMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_xmin\n"
+"-------\n"
+"1\n"
+"\n"
+"SELECT ST_XMin(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_xmin\n"
+"-------\n"
+"-3\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_XMin('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_XMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_xmin\n"
+"--------\n"
+"220186.995121892"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1735
+#, no-c-format
+msgid "ST_Y"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1737
+#, no-c-format
+msgid ""
+"<refpurpose>Return the Y coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1743
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Y</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1753
+#, no-c-format
+msgid ""
+"<para>Return the Y coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1757
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_Y(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_y\n"
+"------\n"
+"        2\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Y(ST_Centroid(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)')));\n"
+" st_y\n"
+"------\n"
+"  1.5\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1772
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
+"linkend=\"ST_X\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/"
+">, <xref linkend=\"ST_Z\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1778
+#, no-c-format
+msgid "ST_YMax"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1780
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Y maxima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1785
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_YMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1795
+#, no-c-format
+msgid "<para>Returns Y maxima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1810
+#, no-c-format
+msgid ""
+"SELECT ST_YMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_ymax\n"
+"-------\n"
+"5\n"
+"\n"
+"SELECT ST_YMax(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_ymax\n"
+"-------\n"
+"6\n"
+"\n"
+"SELECT ST_YMax(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_ymax\n"
+"-------\n"
+"4\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_YMax('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_YMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_ymax\n"
+"--------\n"
+"150506.126829327"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1817
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
+"\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1823
+#, no-c-format
+msgid "ST_YMin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1825
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Y minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1830
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_YMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1840
+#, no-c-format
+msgid "<para>Returns Y minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1855
+#, no-c-format
+msgid ""
+"SELECT ST_YMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_ymin\n"
+"-------\n"
+"2\n"
+"\n"
+"SELECT ST_YMin(ST_GeomFromText('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_ymin\n"
+"-------\n"
+"3\n"
+"\n"
+"SELECT ST_YMin(CAST('BOX(-3 2, 3 4)' As box2d));\n"
+"st_ymin\n"
+"-------\n"
+"2\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_YMin('LINESTRING(1 3, 5 6)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_YMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_ymin\n"
+"--------\n"
+"150406"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1862
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1868
+#, no-c-format
+msgid "ST_Z"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1870
+#, no-c-format
+msgid ""
+"<refpurpose>Return the Z coordinate of the point, or NULL if not available. "
+"Input must be a point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1876
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Z</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>a_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1886
+#, no-c-format
+msgid ""
+"<para>Return the Z coordinate of the point, or NULL if not available. Input "
+"must be a point.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1898
+#, no-c-format
+msgid ""
+"SELECT ST_Z(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_z\n"
+"------\n"
+"        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1905
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/"
+">, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1911
+#, no-c-format
+msgid "ST_ZMax"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1913 reference_accessor.xml:2000
+#, no-c-format
+msgid ""
+"<refpurpose>Returns Z minima of a bounding box 2d or 3d or a geometry.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1918
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_ZMax</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1928
+#, no-c-format
+msgid "Returns Z maxima of a bounding box 2d or 3d or a geometry."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1943
+#, no-c-format
+msgid ""
+"SELECT ST_ZMax('BOX3D(1 2 3, 4 5 6)');\n"
+"st_zmax\n"
+"-------\n"
+"6\n"
+"\n"
+"SELECT ST_ZMax(ST_GeomFromEWKT('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_zmax\n"
+"-------\n"
+"7\n"
+"\n"
+"SELECT ST_ZMax('BOX3D(-3 2 1, 3 4 1)' );\n"
+"st_zmax\n"
+"-------\n"
+"1\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_ZMax('LINESTRING(1 3 4, 5 6 7)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_ZMax(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_zmax\n"
+"--------\n"
+"3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1950
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
+"\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_ZMax\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1956
+#, no-c-format
+msgid "ST_Zmflag"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_accessor.xml:1958
+#, no-c-format
+msgid ""
+"<refpurpose>Returns ZM (dimension semantic) flag of the geometries as a "
+"small int. Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:1964
+#, no-c-format
+msgid ""
+"<funcdef>smallint <function>ST_Zmflag</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1974
+#, no-c-format
+msgid ""
+"<para>Returns ZM (dimension semantic) flag of the geometries as a small int. "
+"Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:1985
+#, no-c-format
+msgid ""
+"SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRING(1 2, 3 4)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 0\n"
+"\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRINGM(1 2 3, 3 4 3)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 1\n"
+"\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('CIRCULARSTRING(1 2 3, 3 4 3, 5 6 3)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 2\n"
+"SELECT ST_Zmflag(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
+" st_zmflag\n"
+"-----------\n"
+"                 3"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1992
+#, no-c-format
+msgid ", <xref linkend=\"ST_NDims\"/>, <xref linkend=\"ST_Dimension\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_accessor.xml:1998
+#, no-c-format
+msgid "ST_ZMin"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_accessor.xml:2005
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_ZMin</function></funcdef> <paramdef><type>box3d "
+"</type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:2015
+#, no-c-format
+msgid "<para>Returns Z minima of a bounding box 2d or 3d or a geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_accessor.xml:2030
+#, no-c-format
+msgid ""
+"SELECT ST_ZMin('BOX3D(1 2 3, 4 5 6)');\n"
+"st_zmin\n"
+"-------\n"
+"3\n"
+"\n"
+"SELECT ST_ZMin(ST_GeomFromEWKT('LINESTRING(1 3 4, 5 6 7)'));\n"
+"st_zmin\n"
+"-------\n"
+"4\n"
+"\n"
+"SELECT ST_ZMin('BOX3D(-3 2 1, 3 4 1)' );\n"
+"st_zmin\n"
+"-------\n"
+"1\n"
+"--Observe THIS DOES NOT WORK because it will try to autocast the string "
+"representation to a BOX3D\n"
+"SELECT ST_ZMin('LINESTRING(1 3 4, 5 6 7)');\n"
+"\n"
+"--ERROR:  BOX3D parser - doesnt start with BOX3D(\n"
+"\n"
+"SELECT ST_ZMin(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)'));\n"
+"st_zmin\n"
+"--------\n"
+"1"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:2037
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_XMin\"/>, <xref "
+"linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin"
+"\"/>, <xref linkend=\"ST_ZMax\"/>"
+msgstr ""
diff --git a/doc/po/pl/reference_constructor.xml.po b/doc/po/pl/reference_constructor.xml.po
new file mode 100644
index 0000000..92339ac
--- /dev/null
+++ b/doc/po/pl/reference_constructor.xml.po
@@ -0,0 +1,3760 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Jakub Bobrowski <jb at 5dstudio.pl>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-03 10:44+0000\n"
+"Last-Translator: Jakub Bobrowski <jb at 5dstudio.pl>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_constructor.xml:3
+#, no-c-format
+msgid "Geometry Constructors"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:6
+#, no-c-format
+msgid "ST_BdPolyFromText"
+msgstr "ST_BdPolyFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:8
+#, no-c-format
+msgid ""
+"<refpurpose>Construct a Polygon given an arbitrary collection of closed "
+"linestrings as a MultiLineString Well-Known text representation.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: title
+#: reference_constructor.xml:23 reference_constructor.xml:72
+#: reference_constructor.xml:123 reference_constructor.xml:159
+#: reference_constructor.xml:188 reference_constructor.xml:215
+#: reference_constructor.xml:267 reference_constructor.xml:318
+#: reference_constructor.xml:366 reference_constructor.xml:409
+#: reference_constructor.xml:438 reference_constructor.xml:481
+#: reference_constructor.xml:555 reference_constructor.xml:594
+#: reference_constructor.xml:645 reference_constructor.xml:677
+#: reference_constructor.xml:730 reference_constructor.xml:777
+#: reference_constructor.xml:822 reference_constructor.xml:860
+#: reference_constructor.xml:905 reference_constructor.xml:964
+#: reference_constructor.xml:1032 reference_constructor.xml:1092
+#: reference_constructor.xml:1131 reference_constructor.xml:1188
+#: reference_constructor.xml:1259 reference_constructor.xml:1304
+#: reference_constructor.xml:1385 reference_constructor.xml:1428
+#: reference_constructor.xml:1470 reference_constructor.xml:1531
+#: reference_constructor.xml:1592 reference_constructor.xml:1646
+#: reference_constructor.xml:1697 reference_constructor.xml:1740
+#: reference_constructor.xml:1796 reference_constructor.xml:1845
+#: reference_constructor.xml:1899 reference_constructor.xml:1942
+#: reference_constructor.xml:1965
+#, no-c-format
+msgid "Description"
+msgstr "Opis"
+
+#. Tag: para
+#: reference_constructor.xml:25
+#, no-c-format
+msgid ""
+"<para>Construct a Polygon given an arbitrary collection of closed "
+"linestrings as a MultiLineString Well-Known text representation.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:30
+#, no-c-format
+msgid ""
+"Throws an error if WKT is not a MULTILINESTRING. Throws an error if output "
+"is a MULTIPOLYGON; use ST_BdMPolyFromText in that case, or see "
+"ST_BuildArea() for a postgis-specific approach."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:36 reference_constructor.xml:88
+#: reference_constructor.xml:281 reference_constructor.xml:921
+#: reference_constructor.xml:989 reference_constructor.xml:1055
+#: reference_constructor.xml:1486 reference_constructor.xml:1608
+#: reference_constructor.xml:1910
+#, no-c-format
+msgid "&sfs_compliant; s3.2.6.2"
+msgstr "&sfs_compliant; s3.2.6.2"
+
+#. Tag: para
+#: reference_constructor.xml:38 reference_constructor.xml:90
+#, no-c-format
+msgid "Availability: 1.1.0 - requires GEOS >= 2.1.0."
+msgstr "Dostępność: 1.1.0 - wymaga GEOS >= 2.1.0."
+
+#. Tag: title
+#: reference_constructor.xml:42 reference_constructor.xml:94
+#: reference_constructor.xml:135 reference_constructor.xml:165
+#: reference_constructor.xml:230 reference_constructor.xml:288
+#: reference_constructor.xml:332 reference_constructor.xml:380
+#: reference_constructor.xml:450 reference_constructor.xml:566
+#: reference_constructor.xml:698 reference_constructor.xml:746
+#: reference_constructor.xml:791 reference_constructor.xml:830
+#: reference_constructor.xml:868 reference_constructor.xml:928
+#: reference_constructor.xml:996 reference_constructor.xml:1060
+#: reference_constructor.xml:1100 reference_constructor.xml:1147
+#: reference_constructor.xml:1400 reference_constructor.xml:1435
+#: reference_constructor.xml:1493 reference_constructor.xml:1554
+#: reference_constructor.xml:1615 reference_constructor.xml:1709
+#: reference_constructor.xml:1764 reference_constructor.xml:1814
+#: reference_constructor.xml:1863 reference_constructor.xml:1915
+#, no-c-format
+msgid "Examples"
+msgstr "Przykłady"
+
+#. Tag: programlisting
+#: reference_constructor.xml:44 reference_constructor.xml:96
+#, no-c-format
+msgid "Forthcoming"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:48 reference_constructor.xml:100
+#: reference_constructor.xml:139 reference_constructor.xml:169
+#: reference_constructor.xml:193 reference_constructor.xml:235
+#: reference_constructor.xml:295 reference_constructor.xml:345
+#: reference_constructor.xml:386 reference_constructor.xml:414
+#: reference_constructor.xml:454 reference_constructor.xml:534
+#: reference_constructor.xml:573 reference_constructor.xml:621
+#: reference_constructor.xml:652 reference_constructor.xml:702
+#: reference_constructor.xml:753 reference_constructor.xml:798
+#: reference_constructor.xml:837 reference_constructor.xml:875
+#: reference_constructor.xml:935 reference_constructor.xml:1003
+#: reference_constructor.xml:1067 reference_constructor.xml:1107
+#: reference_constructor.xml:1154 reference_constructor.xml:1231
+#: reference_constructor.xml:1274 reference_constructor.xml:1338
+#: reference_constructor.xml:1404 reference_constructor.xml:1441
+#: reference_constructor.xml:1500 reference_constructor.xml:1561
+#: reference_constructor.xml:1622 reference_constructor.xml:1673
+#: reference_constructor.xml:1713 reference_constructor.xml:1768
+#: reference_constructor.xml:1821 reference_constructor.xml:1870
+#: reference_constructor.xml:1922 reference_constructor.xml:1946
+#: reference_constructor.xml:1969
+#, no-c-format
+msgid "See Also"
+msgstr "Zobacz także"
+
+#. Tag: para
+#: reference_constructor.xml:49
+#, no-c-format
+msgid ", <xref linkend=\"ST_BdMPolyFromText\"/>"
+msgstr ", <xref linkend=\"ST_BdMPolyFromText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:55
+#, no-c-format
+msgid "ST_BdMPolyFromText"
+msgstr "ST_BdMPolyFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:56
+#, no-c-format
+msgid ""
+"Construct a MultiPolygon given an arbitrary collection of closed linestrings "
+"as a MultiLineString text representation Well-Known text representation."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:63
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BdMPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdMPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:74
+#, no-c-format
+msgid ""
+"Construct a Polygon given an arbitrary collection of closed linestrings, "
+"polygons, MultiLineStrings as Well-Known text representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:79
+#, no-c-format
+msgid ""
+"Throws an error if WKT is not a MULTILINESTRING. Forces MULTIPOLYGON output "
+"even when result is really only composed by a single POLYGON; use <link "
+"linkend=\"ST_BdPolyFromText\">ST_BdPolyFromText</link> if you're sure a "
+"single POLYGON will result from operation, or see <link linkend="
+"\"ST_BuildArea\">ST_BuildArea()</link> for a postgis-specific approach."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:101
+#, no-c-format
+msgid ", <xref linkend=\"ST_BdPolyFromText\"/>"
+msgstr ", <xref linkend=\"ST_BdPolyFromText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:107
+#, no-c-format
+msgid "ST_Box2dFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:109
+#, no-c-format
+msgid "<refpurpose>Return a BOX2D from a GeoHash string.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Box2dFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:125
+#, no-c-format
+msgid "<para>Return a BOX2D from a GeoHash string.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:127
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_Box2dFromGeoHash "
+"returns a BOX2D based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:129
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_Box2dFromGeoHash will use "
+"that many characters from the GeoHash to create the BOX2D. Lower precision "
+"values results in larger BOX2Ds and larger values increase the precision."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:131 reference_constructor.xml:446
+#: reference_constructor.xml:1705
+#, fuzzy, no-c-format
+msgid "Availability: 2.1.0"
+msgstr "Dostępność: 1.5"
+
+#. Tag: programlisting
+#: reference_constructor.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0');\n"
+"\n"
+"                st_geomfromgeohash\n"
+"--------------------------------------------------\n"
+" BOX(-115.172816 36.114646,-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 0);\n"
+"\n"
+" st_box2dfromgeohash\n"
+"----------------------\n"
+" BOX(-180 -90,180 90)\n"
+"\n"
+" SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10);\n"
+"                            st_box2dfromgeohash\n"
+"---------------------------------------------------------------------------\n"
+" BOX(-115.17282128334 36.1146408319473,-115.172810554504 36.1146461963654)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:141
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:147
+#, no-c-format
+msgid "ST_GeogFromText"
+msgstr "ST_GeogFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:148 reference_constructor.xml:177
+#, no-c-format
+msgid ""
+"Return a specified geography value from Well-Known Text representation or "
+"extended (WKT)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:152
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeogFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geography <function>ST_GeogFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:160
+#, no-c-format
+msgid ""
+"Returns a geography object from the well-known text or extended well-known "
+"representation. SRID 4326 is assumed. This is an alias for "
+"ST_GeographyFromText. Points are always expressed in long lat form."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:166
+#, no-c-format
+msgid ""
+"--- converting lon lat coords to geography\n"
+"ALTER TABLE sometable ADD COLUMN geog geography(POINT,4326);\n"
+"UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' "
+"|| lat || ')');"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:170
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeographyFromText\"/>"
+msgstr ", <xref linkend=\"ST_GeographyFromText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:176
+#, no-c-format
+msgid "ST_GeographyFromText"
+msgstr "ST_GeographyFromText"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:181
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeographyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geography <function>ST_GeographyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:189
+#, no-c-format
+msgid ""
+"Returns a geography object from the well-known text representation. SRID "
+"4326 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:194
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>"
+msgstr ", <xref linkend=\"ST_AsText\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:200
+#, no-c-format
+msgid "ST_GeogFromWKB"
+msgstr "ST_GeogFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:201
+#, no-c-format
+msgid ""
+"Creates a geography instance from a Well-Known Binary geometry "
+"representation (WKB) or extended Well Known Binary (EWKB)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:207
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:217
+#, no-c-format
+msgid ""
+"The <varname>ST_GeogFromWKB</varname> function, takes a well-known binary "
+"representation (WKB) of a geometry or PostGIS Extended WKB and creates an "
+"instance of the appropriate geography type. This function plays the role of "
+"the Geometry Factory in SQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:222
+#, no-c-format
+msgid "If SRID is not specified, it defaults to 4326 (WGS 84 long lat)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:224 reference_constructor.xml:326
+#: reference_constructor.xml:374 reference_constructor.xml:691
+#: reference_constructor.xml:741 reference_constructor.xml:1810
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:232
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table\n"
+"SELECT ST_AsText(\n"
+"ST_GeogFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@')\n"
+");\n"
+"                                          st_astext\n"
+"------------------------------------------------------\n"
+" LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:237
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsBinary\"/>"
+msgstr ", <xref linkend=\"ST_AsBinary\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:244
+#, no-c-format
+msgid "ST_GeomCollFromText"
+msgstr "ST_GeomCollFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:246
+#, no-c-format
+msgid ""
+"Makes a collection Geometry from collection WKT with the given SRID. If SRID "
+"is not give, it defaults to 0."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:251
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomCollFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomCollFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:269
+#, no-c-format
+msgid ""
+"Makes a collection Geometry from the Well-Known-Text (WKT) representation "
+"with the given SRID. If SRID is not give, it defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:272 reference_constructor.xml:1475
+#: reference_constructor.xml:1536 reference_constructor.xml:1597
+#: reference_constructor.xml:1905
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:274
+#, no-c-format
+msgid "Returns null if the WKT is not a GEOMETRYCOLLECTION"
+msgstr "Zwraca null jeśli WKT nie jest GEOMETRYCOLLECTION"
+
+#. Tag: para
+#: reference_constructor.xml:276
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are collections, don't "
+"use this function. It is slower than ST_GeomFromText since it adds an "
+"additional validation step."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:282
+#, no-c-format
+msgid "&sqlmm_compliant;"
+msgstr "&sqlmm_compliant;"
+
+#. Tag: programlisting
+#: reference_constructor.xml:290
+#, no-c-format
+msgid ""
+"SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 "
+"4))');"
+msgstr ""
+"SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 "
+"4))');"
+
+#. Tag: para
+#: reference_constructor.xml:297 reference_constructor.xml:1624
+#, no-c-format
+msgid ", <xref linkend=\"ST_SRID\"/>"
+msgstr ", <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:304
+#, no-c-format
+msgid "ST_GeomFromEWKB"
+msgstr "ST_GeomFromEWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:305
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Extended Well-Known Binary "
+"representation (EWKB)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:310
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:319
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
+"binary (EWKT) representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:321
+#, no-c-format
+msgid ""
+"The EWKB format is not an OGC standard, but a PostGIS specific format that "
+"includes the spatial reference system (SRID) identifier"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:324 reference_constructor.xml:372
+#: reference_constructor.xml:501 reference_constructor.xml:648
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:325 reference_constructor.xml:373
+#: reference_constructor.xml:503 reference_constructor.xml:562
+#: reference_constructor.xml:608 reference_constructor.xml:863
+#: reference_constructor.xml:1199 reference_constructor.xml:1316
+#: reference_constructor.xml:1395 reference_constructor.xml:1809
+#: reference_constructor.xml:1857
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_constructor.xml:327 reference_constructor.xml:375
+#: reference_constructor.xml:504
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_constructor.xml:328 reference_constructor.xml:376
+#: reference_constructor.xml:505
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: para
+#: reference_constructor.xml:333
+#, no-c-format
+msgid ""
+"line string binary rep 0f LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932) in NAD 83 long lat (4269)."
+msgstr ""
+"line string binary rep 0f LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932) in NAD 83 long lat (4269)."
+
+#. Tag: para
+#: reference_constructor.xml:335
+#, no-c-format
+msgid ""
+"NOTE: Even though byte arrays are delimited with \\ and may have ', we need "
+"to escape both out with \\ and '' if standard_conforming_strings is off. So "
+"it does not look exactly like its AsEWKB representation."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:337
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\"
+"\\000\\\\003\\\\000\\\\000\\\\000\\\\344J=\n"
+"\\\\013B\\\\312Q\\\\300n\\\\303(\\\\010\\\\036!E@''\\\\277E''K\n"
+"\\\\312Q\\\\300\\\\366{b\\\\235*!E@\\\\225|\\\\354.P\\\\312Q\n"
+"\\\\300p\\\\231\\\\323e1!E@');"
+msgstr ""
+"SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\"
+"\\000\\\\003\\\\000\\\\000\\\\000\\\\344J=\n"
+"\\\\013B\\\\312Q\\\\300n\\\\303(\\\\010\\\\036!E@''\\\\277E''K\n"
+"\\\\312Q\\\\300\\\\366{b\\\\235*!E@\\\\225|\\\\354.P\\\\312Q\n"
+"\\\\300p\\\\231\\\\323e1!E@');"
+
+#. Tag: para
+#: reference_constructor.xml:339
+#, no-c-format
+msgid ""
+"In PostgreSQL 9.1+ - standard_conforming_strings is set to on by default, "
+"where as in past versions it was set to on. You can change defaults as "
+"needed for a single query or at the database or server level. Below is how "
+"you would do it with standard_conforming_strings = on. In this case we "
+"escape the ' with standard ansi ', but slashes are not escaped"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:342
+#, no-c-format
+msgid ""
+"set standard_conforming_strings = on;\n"
+"SELECT ST_GeomFromEWKB('\\001\\002\\000\\000 "
+"\\255\\020\\000\\000\\003\\000\\000\\000\\344J=\\012\\013B\n"
+"    \\312Q\\300n\\303(\\010\\036!E@''\\277E''K\\012\\312Q\\300\\366{b\\235*!"
+"E@\\225|\\354.P\\312Q\\012\\300p\\231\\323e1')"
+msgstr ""
+"set standard_conforming_strings = on;\n"
+"SELECT ST_GeomFromEWKB('\\001\\002\\000\\000 "
+"\\255\\020\\000\\000\\003\\000\\000\\000\\344J=\\012\\013B\n"
+"    \\312Q\\300n\\303(\\010\\036!E@''\\277E''K\\012\\312Q\\300\\366{b\\235*!"
+"E@\\225|\\354.P\\312Q\\012\\300p\\231\\323e1')"
+
+#. Tag: para
+#: reference_constructor.xml:346
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
+msgstr ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:352
+#, no-c-format
+msgid "ST_GeomFromEWKT"
+msgstr "ST_GeomFromEWKT"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:353
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Extended Well-Known Text "
+"representation (EWKT)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:358
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> "
+"<paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:367
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
+"text (EWKT) representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:369
+#, no-c-format
+msgid ""
+"The EWKT format is not an OGC standard, but an PostGIS specific format that "
+"includes the spatial reference system (SRID) identifier"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:381
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTILINESTRING((-71.160281 "
+"42.258729,-71.160837 42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTIPOLYGON(((-71.1031880899493 "
+"42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))');"
+msgstr ""
+"SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTILINESTRING((-71.160281 "
+"42.258729,-71.160837 42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromEWKT('SRID=4269;MULTIPOLYGON(((-71.1031880899493 "
+"42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))');"
+
+#. Tag: programlisting
+#: reference_constructor.xml:382
+#, no-c-format
+msgid ""
+"--3d circular string\n"
+"SELECT ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 150505 "
+"2,220227 150406 3)');"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:383
+#, no-c-format
+msgid ""
+"--Polyhedral Surface example\n"
+"SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"        ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), \n"
+"        ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  \n"
+"        ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) \n"
+")');"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:387
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:392
+#, no-c-format
+msgid "ST_GeometryFromText"
+msgstr "ST_GeometryFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:393 reference_constructor.xml:1954
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Text representation "
+"(WKT). This is an alias name for ST_GeomFromText"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:396
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeometryFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeometryFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:410 reference_constructor.xml:1855
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr "&sfs_compliant;"
+
+#. Tag: para
+#: reference_constructor.xml:411 reference_constructor.xml:690
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.40"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.40"
+
+#. Tag: refname
+#: reference_constructor.xml:422
+#, fuzzy, no-c-format
+msgid "ST_GeomFromGeoHash"
+msgstr "ST_GeomFromGeoJSON"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:424
+#, no-c-format
+msgid "Return a geometry from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:429
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:440
+#, no-c-format
+msgid ""
+"Return a geometry from a GeoHash string. The geometry will be a polygon "
+"representing the GeoHash bounds."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:442
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_GeomFromGeoHash "
+"returns a polygon based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:444
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_GeomFromGeoHash will use "
+"that many characters from the GeoHash to create the polygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:451
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"                                                        st_astext\n"
+"--------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.172816 36.114646,-115.172816 36.114646,-115.172816 "
+"36.114646,-115.172816 36.114646,-115.172816 36.114646))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"                                                          st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.3125 36.03515625,-115.3125 36.2109375,-114.9609375 "
+"36.2109375,-114.9609375 36.03515625,-115.3125 36.03515625))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                                                                                       st_astext\n"
+"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.17282128334 36.1146408319473,-115.17282128334 "
+"36.1146461963654,-115.172810554504 36.1146461963654,-115.172810554504 "
+"36.1146408319473,-115.17282128334 36.1146408319473))\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:456
+#, fuzzy, no-c-format
+msgid ""
+",<xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:462
+#, no-c-format
+msgid "ST_GeomFromGML"
+msgstr "ST_GeomFromGML"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:463
+#, no-c-format
+msgid ""
+"Takes as input GML representation of geometry and outputs a PostGIS geometry "
+"object"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:467
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></"
+"funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromGML</function></funcdef> <paramdef><type>text </type> "
+"<parameter>geomgml</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></"
+"funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromGML</function></funcdef> <paramdef><type>text </type> "
+"<parameter>geomgml</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:482
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC GML representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:483
+#, no-c-format
+msgid ""
+"ST_GeomFromGML works only for GML Geometry fragments. It throws an error if "
+"you try to use it on a whole GML document."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:484
+#, no-c-format
+msgid ""
+"OGC GML versions supported: <itemizedlist> <listitem> <para>GML 3.2.1 "
+"Namespace</para> </listitem> <listitem> <para>GML 3.1.1 Simple Features "
+"profile SF-2 (with GML 3.1.0 and 3.0.0 backward compatibility)</para> </"
+"listitem> <listitem> <para>GML 2.1.2</para> </listitem> </itemizedlist> OGC "
+"GML standards, cf: <ulink url=\"http://www.opengeospatial.org/standards/gml"
+"\">http://www.opengeospatial.org/standards/gml</ulink>:"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:500 reference_constructor.xml:647
+#, no-c-format
+msgid "Availability: 1.5, requires libxml2 1.6+"
+msgstr "Dostępność: 1.5, wymaga libxml2 1.6+"
+
+#. Tag: para
+#: reference_constructor.xml:502 reference_constructor.xml:649
+#, no-c-format
+msgid "Enhanced: 2.0.0 default srid optional parameter added."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:506
+#, no-c-format
+msgid ""
+"GML allow mixed dimensions (2D and 3D inside the same MultiGeometry for "
+"instance). As PostGIS geometries don't, ST_GeomFromGML convert the whole "
+"geometry to 2D if a missing Z dimension is found once."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:508
+#, no-c-format
+msgid ""
+"GML support mixed SRS inside the same MultiGeometry. As PostGIS geometries "
+"don't, ST_GeomFromGML, in this case, reproject all subgeometries to the SRS "
+"root node. If no srsName attribute available for the GML root node, the "
+"function throw an error."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:510
+#, no-c-format
+msgid ""
+"ST_GeomFromGML function is not pedantic about an explicit GML namespace. You "
+"could avoid to mention it explicitly for common usages. But you need it if "
+"you want to use XLink feature inside GML."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:512
+#, no-c-format
+msgid "ST_GeomFromGML function not support SQL/MM curves geometries."
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:518 reference_constructor.xml:616
+#, no-c-format
+msgid "Examples - A single geometry with srsName"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:519
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromGML('<![CDATA[\n"
+"                <gml:LineString srsName=\"EPSG:4269\">\n"
+"                        <gml:coordinates>\n"
+"                                -71.16028,42.258729 -71.160837,42.259112 "
+"-71.161143,42.25932\n"
+"                        </gml:coordinates>\n"
+"                </gml:LineString>']]>);"
+msgstr ""
+"SELECT ST_GeomFromGML('<![CDATA[\n"
+"                <gml:LineString srsName=\"EPSG:4269\">\n"
+"                        <gml:coordinates>\n"
+"                                -71.16028,42.258729 -71.160837,42.259112 "
+"-71.161143,42.25932\n"
+"                        </gml:coordinates>\n"
+"                </gml:LineString>']]>);"
+
+#. Tag: title
+#: reference_constructor.xml:523
+#, no-c-format
+msgid "Examples - XLink usage"
+msgstr "Przykłady - użycie XLink"
+
+#. Tag: programlisting
+#: reference_constructor.xml:524
+#, no-c-format
+msgid ""
+"SELECT <![CDATA[ST_GeomFromGML('\n"
+"                <gml:LineString xmlns:gml=\"http://www.opengis.net/gml\" \n"
+"                                xmlns:xlink=\"http://www.w3.org/1999/xlink"
+"\"\n"
+"                                srsName=\"urn:ogc:def:crs:EPSG::4269\">\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point gml:id=\"p1\"><gml:pos>42.258729 "
+"-71.16028</gml:pos></gml:Point>\n"
+"                        </gml:pointProperty>\n"
+"                        <gml:pos>42.259112 -71.160837</gml:pos>\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point xlink:type=\"simple\" xlink:href="
+"\"#p1\"/>\n"
+"                        </gml:pointProperty>\n"
+"                </gml:LineString>');]]>);"
+msgstr ""
+"SELECT <![CDATA[ST_GeomFromGML('\n"
+"                <gml:LineString xmlns:gml=\"http://www.opengis.net/gml\" \n"
+"                                xmlns:xlink=\"http://www.w3.org/1999/xlink"
+"\"\n"
+"                                srsName=\"urn:ogc:def:crs:EPSG::4269\">\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point gml:id=\"p1\"><gml:pos>42.258729 "
+"-71.16028</gml:pos></gml:Point>\n"
+"                        </gml:pointProperty>\n"
+"                        <gml:pos>42.259112 -71.160837</gml:pos>\n"
+"                        <gml:pointProperty>\n"
+"                                <gml:Point xlink:type=\"simple\" xlink:href="
+"\"#p1\"/>\n"
+"                        </gml:pointProperty>\n"
+"                </gml:LineString>');]]>);"
+
+#. Tag: title
+#: reference_constructor.xml:528
+#, no-c-format
+msgid "Examples - Polyhedral Surface"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:529
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(<![CDATA[ST_GeomFromGML('\n"
+"<gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"      <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 0 1 0 1 1 0 1 "
+"0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 0 1 0 1 1 "
+"0 1 0 0 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 0 1 0 0 1 0 "
+"1 0 0 1 0 0 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">1 1 0 1 1 1 1 0 "
+"1 1 0 0 1 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 1 0 0 1 1 1 1 "
+"1 1 1 0 0 1 0</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"  <gml:PolygonPatch>\n"
+"    <gml:exterior>\n"
+"            <gml:LinearRing><gml:posList srsDimension=\"3\">0 0 1 1 0 1 1 1 "
+"1 0 1 1 0 0 1</gml:posList></gml:LinearRing>\n"
+"    </gml:exterior>\n"
+"  </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>']]>));\n"
+"\n"
+"-- result --\n"
+" POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:535
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
+msgstr ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:541
+#, no-c-format
+msgid "ST_GeomFromGeoJSON"
+msgstr "ST_GeomFromGeoJSON"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:542
+#, no-c-format
+msgid ""
+"Takes as input a geojson representation of a geometry and outputs a PostGIS "
+"geometry object"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:547
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomjson</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomjson</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:556
+#, no-c-format
+msgid "Constructs a PostGIS geometry object from the GeoJSON representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:557
+#, no-c-format
+msgid ""
+"ST_GeomFromGeoJSON works only for JSON Geometry fragments. It throws an "
+"error if you try to use it on a whole JSON document."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:559
+#, no-c-format
+msgid "Availability: 2.0.0 requires - JSON-C >= 0.9"
+msgstr "Dostępność: 2.0.0 wymaga - JSON-C >= 0.9"
+
+#. Tag: para
+#: reference_constructor.xml:560
+#, no-c-format
+msgid ""
+"If you do not have JSON-C enabled, support you will get an error notice "
+"instead of seeing an output. To enable JSON-C, run configure --with-jsondir=/"
+"path/to/json-c. See <xref linkend=\"installation_configuration\"/> for "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:567
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":"
+"[-48.23456,20.12345]}')) As wkt;\n"
+"wkt\n"
+"------\n"
+"POINT(-48.23456 20.12345)"
+msgstr ""
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":"
+"[-48.23456,20.12345]}')) As wkt;\n"
+"wkt\n"
+"------\n"
+"POINT(-48.23456 20.12345)"
+
+#. Tag: programlisting
+#: reference_constructor.xml:568
+#, no-c-format
+msgid ""
+"-- a 3D linestring\n"
+"SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"LineString\",\"coordinates"
+"\":[[1,2,3],[4,5,6],[7,8,9]]}')) As wkt;\n"
+"\n"
+"wkt\n"
+"-------------------\n"
+"LINESTRING(1 2,4 5,7 8)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:574
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend="
+"\"installation_configuration\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend="
+"\"installation_configuration\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:580
+#, no-c-format
+msgid "ST_GeomFromKML"
+msgstr "ST_GeomFromKML"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:581
+#, no-c-format
+msgid ""
+"Takes as input KML representation of geometry and outputs a PostGIS geometry "
+"object"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:586
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomkml</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomkml</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:595
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC KML representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:596
+#, no-c-format
+msgid ""
+"ST_GeomFromKML works only for KML Geometry fragments. It throws an error if "
+"you try to use it on a whole KML document."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:597
+#, no-c-format
+msgid ""
+"OGC KML versions supported: <itemizedlist> <listitem> <para>KML 2.2.0 "
+"Namespace</para> </listitem> </itemizedlist> OGC KML standards, cf: <ulink "
+"url=\"http://www.opengeospatial.org/standards/kml\">http://www."
+"opengeospatial.org/standards/kml</ulink>:"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:607
+#, no-c-format
+msgid "Availability: 1.5,libxml2 2.6+"
+msgstr "Dostępność: 1.5, libxml2 2.6+"
+
+#. Tag: para
+#: reference_constructor.xml:610
+#, no-c-format
+msgid "ST_GeomFromKML function not support SQL/MM curves geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:617
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromKML('<![CDATA[\n"
+"                <LineString>\n"
+"                        <coordinates>-71.1663,42.2614 \n"
+"                                -71.1667,42.2616</coordinates>\n"
+"                </LineString>']]>);"
+msgstr ""
+"SELECT ST_GeomFromKML('<![CDATA[\n"
+"                <LineString>\n"
+"                        <coordinates>-71.1663,42.2614 \n"
+"                                -71.1667,42.2616</coordinates>\n"
+"                </LineString>']]>);"
+
+#. Tag: para
+#: reference_constructor.xml:622
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsKML\"/>"
+msgstr ", <xref linkend=\"ST_AsKML\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:628
+#, no-c-format
+msgid "ST_GMLToSQL"
+msgstr "ST_GMLToSQL"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:629
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from GML representation. This is an "
+"alias name for ST_GeomFromGML"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:632
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_GMLToSQL</"
+"function></funcdef> <paramdef><type>text </type> <parameter>geomgml</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_GMLToSQL</"
+"function></funcdef> <paramdef><type>text </type> <parameter>geomgml</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:646
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.50 (except for curves support)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:653
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
+msgstr ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:659
+#, no-c-format
+msgid "ST_GeomFromText"
+msgstr "ST_GeomFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:660
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Text representation "
+"(WKT)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:663
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:679
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry object from the OGC Well-Known text "
+"representation."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:683
+#, no-c-format
+msgid ""
+"There are 2 variants of ST_GeomFromText function, the first takes no SRID "
+"and returns a geometry with no defined spatial reference system. The second "
+"takes a spatial reference id as the second argument and returns an "
+"ST_Geometry that includes this srid as part of its meta-data. The srid must "
+"be defined in the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:689 reference_constructor.xml:1759
+#, no-c-format
+msgid "&sfs_compliant; s3.2.6.2 - option SRID is from the conformance suite."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:692
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards. This "
+"should now be written as ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:699
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)',4269);\n"
+"\n"
+"SELECT ST_GeomFromText('MULTILINESTRING((-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromText('POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromText('MULTIPOLYGON(((-71.1031880899493 42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))',4326);\n"
+"\n"
+"SELECT ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406)');"
+msgstr ""
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)');\n"
+"SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932)',4269);\n"
+"\n"
+"SELECT ST_GeomFromText('MULTILINESTRING((-71.160281 42.258729,-71.160837 "
+"42.259113,-71.161144 42.25932))');\n"
+"\n"
+"SELECT ST_GeomFromText('POINT(-71.064544 42.28787)');\n"
+"\n"
+"SELECT ST_GeomFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"\n"
+"SELECT ST_GeomFromText('MULTIPOLYGON(((-71.1031880899493 42.3152774590236,\n"
+"-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,\n"
+"-71.1023097974109 42.3151969047397,-71.1019285062273 42.3147384934248,\n"
+"-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,\n"
+"-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,\n"
+"-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,\n"
+"-71.103396240451 42.3138632439557,-71.1041521907712 42.3141153348029,\n"
+"-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,\n"
+"-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,\n"
+"-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,\n"
+"-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,\n"
+"-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,\n"
+"-71.1041375307579 42.3147318674446,-71.1041492906949 42.3147711126569,\n"
+"-71.1041598612795 42.314808571739,-71.1042515013869 42.3151287620809,\n"
+"-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,\n"
+"-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,\n"
+"-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,\n"
+"-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,\n"
+"-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,\n"
+"-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,\n"
+"-71.1031880899493 42.3152774590236)),\n"
+"((-71.1043632495873 42.315113108546,-71.1043583974082 42.3151211109857,\n"
+"-71.1043443253471 42.3150676015829,-71.1043850704575 "
+"42.3150793250568,-71.1043632495873 42.315113108546)))',4326);\n"
+"\n"
+"SELECT ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406)');"
+
+#. Tag: para
+#: reference_constructor.xml:703
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:709
+#, no-c-format
+msgid "ST_GeomFromWKB"
+msgstr "ST_GeomFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:710
+#, no-c-format
+msgid ""
+"Creates a geometry instance from a Well-Known Binary geometry representation "
+"(WKB) and optional SRID."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:715 reference_constructor.xml:1781
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromWKB</function></funcdef> <paramdef><type>bytea </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_GeomFromWKB</function></funcdef> <paramdef><type>bytea </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:732
+#, no-c-format
+msgid ""
+"The <varname>ST_GeomFromWKB</varname> function, takes a well-known binary "
+"representation of a geometry and a Spatial Reference System ID "
+"(<varname>SRID</varname>) and creates an instance of the appropriate "
+"geometry type. This function plays the role of the Geometry Factory in SQL. "
+"This is an alternate name for ST_WKBToSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:738
+#, no-c-format
+msgid "If SRID is not specified, it defaults to 0 (Unknown)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:739
+#, no-c-format
+msgid ""
+"&sfs_compliant; s3.2.7.2 - the optional SRID is from the conformance suite"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:740
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.41"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.41"
+
+#. Tag: programlisting
+#: reference_constructor.xml:748
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromWKB(E'\\\\001\\\\002\\\\000\\\\000\\\\000\\\\002\\\\000\\\\000\\"
+"\\000\\\\037\\\\205\\\\353Q\\\\270~\\\\\\\\\\\\300\\\\323Mb\\\\020X\\\\231C@"
+"\\\\020X9\\\\264\\\\310~\\\\\\\\\\\\300)\\\\\\\\\\\\217\\\\302\\\\365\\"
+"\\230C@',4326)\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+" SRID=4326;LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:755
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
+msgstr ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:762
+#, fuzzy, no-c-format
+msgid "ST_GeomFromTWKB"
+msgstr "ST_GeomFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:763
+#, no-c-format
+msgid ""
+"Creates a geometry instance from a Tiny Well-Known Binary geometry "
+"representation (TWKB)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:769
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromTWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:779
+#, no-c-format
+msgid ""
+"The <varname>ST_GeomFromTWKB</varname> function, takes a tiny well-known "
+"binary representation of a geometry and creates an instance of the "
+"appropriate geometry type."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:783
+#, no-c-format
+msgid "SRID always defaults to 0 (Unknown)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:785
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So a 3D geoemtry in TWKB will "
+"always be a GeometryZ, like PointZ when converted to PostGIS geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:793
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromTWKB(E'\\\\x304202f7f40dbce4040105')\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+"LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromTWKB(\n"
+"          ST_AsTWKB('POINT(2 5)'::geometry,0)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:800
+#, fuzzy, no-c-format
+msgid ""
+",<xref linkend=\"ST_AsTWKB\"/>,<xref linkend=\"ST_AsTWKBAgg\"/>,<xref "
+"linkend=\"ST_WKBToSQL\"/>, <xref linkend=\"ST_AsBinary\"/>, <xref linkend="
+"\"ST_GeomFromEWKB\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:806
+#, fuzzy, no-c-format
+msgid "ST_LineFromEncodedPolyline"
+msgstr "ST_LineFromMultiPoint"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:808
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:813
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromEncodedPolyline</function></funcdef> "
+"<paramdef><type>text </type> <parameter>polyline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:824
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:825
+#, no-c-format
+msgid ""
+"See http://developers.google.com/maps/documentation/utilities/"
+"polylinealgorithm"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:832
+#, no-c-format
+msgid ""
+"--Create a line string from a polyline\n"
+"SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|"
+"U_ulLnnqC_mqNvxq`@'));\n"
+"--result--\n"
+"LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:845
+#, no-c-format
+msgid "ST_LineFromMultiPoint"
+msgstr "ST_LineFromMultiPoint"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:847
+#, no-c-format
+msgid ""
+"<refpurpose>Creates a LineString from a MultiPoint geometry.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:852
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aMultiPoint</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aMultiPoint</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:862
+#, no-c-format
+msgid "<para>Creates a LineString from a MultiPoint geometry.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:870
+#, no-c-format
+msgid ""
+"--Create a 3d line string from a 3d multipoint\n"
+"SELECT ST_AsEWKT(ST_LineFromMultiPoint(ST_GeomFromEWKT('MULTIPOINT(1 2 3, 4 "
+"5 6, 7 8 9)')));\n"
+"--result--\n"
+"LINESTRING(1 2 3,4 5 6,7 8 9)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:877
+#, no-c-format
+msgid ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
+msgstr ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:883
+#, no-c-format
+msgid "ST_LineFromText"
+msgstr "ST_LineFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:885
+#, no-c-format
+msgid ""
+"Makes a Geometry from WKT representation with the given SRID. If SRID is not "
+"given, it defaults to 0."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:890
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LineFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LineFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:907
+#, no-c-format
+msgid ""
+"Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0. If WKT passed in is not a LINESTRING, then null is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:911 reference_constructor.xml:977
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:916
+#, no-c-format
+msgid ""
+"If you know all your geometries are LINESTRINGS, its more efficient to just "
+"use ST_GeomFromText. This just calls ST_GeomFromText and adds additional "
+"validation that it returns a linestring."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:922
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.8"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.2.8"
+
+#. Tag: programlisting
+#: reference_constructor.xml:930
+#, no-c-format
+msgid ""
+"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, "
+"ST_LineFromText('POINT(1 2)') AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, "
+"ST_LineFromText('POINT(1 2)') AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+
+#. Tag: refname
+#: reference_constructor.xml:943
+#, no-c-format
+msgid "ST_LineFromWKB"
+msgstr "ST_LineFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:945
+#, no-c-format
+msgid "Makes a <varname>LINESTRING</varname> from WKB with the given SRID"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:949
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_LineFromWKB</"
+"function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_LineFromWKB</"
+"function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:966
+#, no-c-format
+msgid ""
+"The <varname>ST_LineFromWKB</varname> function, takes a well-known binary "
+"representation of geometry and a Spatial Reference System ID (<varname>SRID</"
+"varname>) and creates an instance of the appropriate geometry type - in this "
+"case, a <varname>LINESTRING</varname> geometry. This function plays the role "
+"of the Geometry Factory in SQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:972
+#, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>LINESTRING</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:982
+#, no-c-format
+msgid ""
+"If you know all your geometries are <varname>LINESTRING</varname>s, its more "
+"efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function just "
+"calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation that "
+"it returns a linestring."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:990 reference_constructor.xml:1056
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.2.9"
+msgstr "&sqlmm_compliant; SQL-MM 3: 7.2.9"
+
+#. Tag: programlisting
+#: reference_constructor.xml:998
+#, no-c-format
+msgid ""
+"SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) "
+"AS aline,\n"
+"                ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)'))) "
+"IS NULL AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+"SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) "
+"AS aline,\n"
+"                ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('POINT(1 2)'))) "
+"IS NULL AS null_return;\n"
+"aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+
+#. Tag: para
+#: reference_constructor.xml:1005
+#, no-c-format
+msgid ", <xref linkend=\"ST_LinestringFromWKB\"/>"
+msgstr ", <xref linkend=\"ST_LinestringFromWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1011
+#, no-c-format
+msgid "ST_LinestringFromWKB"
+msgstr "ST_LinestringFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1013
+#, no-c-format
+msgid "Makes a geometry from WKB with the given SRID."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1017
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LinestringFromWKB</function></funcdef> <paramdef><type>bytea </"
+"type> <parameter>WKB</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></"
+"funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_LinestringFromWKB</function></funcdef> <paramdef><type>bytea </"
+"type> <parameter>WKB</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1034
+#, no-c-format
+msgid ""
+"The <varname>ST_LinestringFromWKB</varname> function, takes a well-known "
+"binary representation of geometry and a Spatial Reference System ID "
+"(<varname>SRID</varname>) and creates an instance of the appropriate "
+"geometry type - in this case, a <varname>LINESTRING</varname> geometry. This "
+"function plays the role of the Geometry Factory in SQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1040
+#, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>LINESTRING</varname> geometry. This an alias for <xref linkend="
+"\"ST_LineFromWKB\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1045
+#, no-c-format
+msgid "OGC SPEC 3.2.6.2 - optional SRID is from the conformance suite."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1049
+#, no-c-format
+msgid ""
+"If you know all your geometries are <varname>LINESTRING</varname>s, it's "
+"more efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function "
+"just calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation "
+"that it returns a <varname>LINESTRING</varname>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1062
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_LineStringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"  ) AS aline,\n"
+"  ST_LinestringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('POINT(1 2)'))\n"
+"  ) IS NULL AS null_return;\n"
+"   aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+msgstr ""
+"SELECT\n"
+"  ST_LineStringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"  ) AS aline,\n"
+"  ST_LinestringFromWKB(\n"
+"        ST_AsBinary(ST_GeomFromText('POINT(1 2)'))\n"
+"  ) IS NULL AS null_return;\n"
+"   aline                            | null_return\n"
+"------------------------------------------------\n"
+"010200000002000000000000000000F ... | t"
+
+#. Tag: para
+#: reference_constructor.xml:1069 reference_constructor.xml:1823
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineFromWKB\"/>"
+msgstr ", <xref linkend=\"ST_LineFromWKB\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1075
+#, no-c-format
+msgid "ST_MakeBox2D"
+msgstr "ST_MakeBox2D"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1077
+#, no-c-format
+msgid "Creates a BOX2D defined by the given point geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1083
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pointLowLeft</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pointUpRight</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pointLowLeft</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pointUpRight</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1094
+#, no-c-format
+msgid ""
+"Creates a BOX2D defined by the given point geometries. This is useful for "
+"doing range queries"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1102
+#, no-c-format
+msgid ""
+"--Return all features that fall reside or partly reside in a US national "
+"atlas coordinate bounding box\n"
+"--It is assumed here that the geometries are stored with SRID = 2163 (US "
+"National atlas equal area)\n"
+"SELECT feature_id, feature_name, the_geom\n"
+"FROM features\n"
+"WHERE the_geom && ST_SetSRID(ST_MakeBox2D(ST_Point(-989502.1875, "
+"528439.5625),\n"
+"        ST_Point(-987121.375 ,529933.1875)),2163)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1109
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1115
+#, no-c-format
+msgid "ST_3DMakeBox"
+msgstr "ST_3DMakeBox"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1117
+#, no-c-format
+msgid "Creates a BOX3D defined by the given 3d point geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1122
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>point3DLowLeftBottom</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>point3DUpRightTop</parameter></paramdef>"
+msgstr ""
+"<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>point3DLowLeftBottom</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>point3DUpRightTop</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1133
+#, no-c-format
+msgid "Creates a BOX3D defined by the given 2 3D point geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1140
+#, no-c-format
+msgid "This function supports 3d and will not drop the z-index."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1142
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_MakeBox3D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1149
+#, no-c-format
+msgid ""
+"SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
+"        ST_MakePoint(-987121.375 ,529933.1875, 10)) As abb3d\n"
+"\n"
+"--bb3d--\n"
+"--------\n"
+"BOX3D(-989502.1875 528439.5625 10,-987121.375 529933.1875 10)"
+msgstr ""
+"SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
+"        ST_MakePoint(-987121.375 ,529933.1875, 10)) As abb3d\n"
+"\n"
+"--bb3d--\n"
+"--------\n"
+"BOX3D(-989502.1875 528439.5625 10,-987121.375 529933.1875 10)"
+
+#. Tag: para
+#: reference_constructor.xml:1156
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1162
+#, no-c-format
+msgid "ST_MakeLine"
+msgstr "ST_MakeLine"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1164
+#, no-c-format
+msgid "Creates a Linestring from point or line geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1168
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geoms</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_MakeLine</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</"
+"parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MakeLine</function></funcdef> <paramdef><type>geometry[]</type> "
+"<parameter>geoms_array</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geoms</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry <function>ST_MakeLine</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</"
+"parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MakeLine</function></funcdef> <paramdef><type>geometry[]</type> "
+"<parameter>geoms_array</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1190
+#, no-c-format
+msgid ""
+"ST_MakeLine comes in 3 forms: a spatial aggregate that takes rows of point-"
+"or-line geometries and returns a line string, a function that takes an array "
+"of point-or-lines, and a regular function that takes two point-or-line "
+"geometries. You might want to use a subselect to order points before feeding "
+"them to the aggregate version of this function."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1195
+#, no-c-format
+msgid "When adding line components a common node is removed from the output."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1200
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_MakeLine(geomarray) was introduced. ST_MakeLine "
+"aggregate functions was enhanced to handle more points faster."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1201
+#, no-c-format
+msgid ""
+"Availability: 2.0.0 - Support for linestring input elements was introduced"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1205
+#, no-c-format
+msgid "Examples: Spatial Aggregate version"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1206
+#, no-c-format
+msgid ""
+"This example takes a sequence of GPS points and creates one record for each "
+"gps travel where the geometry field is a line string composed of the gps "
+"points in the order of the travel."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1210
+#, no-c-format
+msgid ""
+"-- For pre-PostgreSQL 9.0 - this usually works, \n"
+"-- but the planner may on occasion choose not to respect the order of the "
+"subquery\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom) As newgeom\n"
+"        FROM (SELECT gps_track,gps_time, the_geom\n"
+"                        FROM gps_points ORDER BY gps_track, gps_time) As "
+"gps\n"
+"        GROUP BY gps.gps_track;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1212
+#, no-c-format
+msgid ""
+"-- If you are using PostgreSQL 9.0+ \n"
+"-- (you can use the new ORDER BY support for aggregates)\n"
+"-- this is a guaranteed way to get a correctly ordered linestring\n"
+"-- Your order by part can order by more than one column if needed\n"
+"SELECT gps.gps_track, ST_MakeLine(gps.the_geom ORDER BY gps_time) As "
+"newgeom\n"
+"        FROM gps_points As gps\n"
+"        GROUP BY gps.gps_track;"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1215
+#, no-c-format
+msgid "Examples: Non-Spatial Aggregate version"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1217
+#, no-c-format
+msgid ""
+"First example is a simple one off line string composed of 2 points. The "
+"second formulates line strings from 2 points a user draws. The third is a "
+"one-off that joins 2 3d points to create a line in 3d space."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1219
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(1 2,3 4)\n"
+"\n"
+"SELECT userpoints.id, ST_MakeLine(startpoint, endpoint) As drawn_line\n"
+"        FROM userpoints ;\n"
+"\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ST_MakePoint(1,2,3), ST_MakePoint(3,4,5)));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" LINESTRING(1 2 3,3 4 5)"
+msgstr ""
+"SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(1 2,3 4)\n"
+"\n"
+"SELECT userpoints.id, ST_MakeLine(startpoint, endpoint) As drawn_line\n"
+"        FROM userpoints ;\n"
+"\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ST_MakePoint(1,2,3), ST_MakePoint(3,4,5)));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" LINESTRING(1 2 3,3 4 5)"
+
+#. Tag: title
+#: reference_constructor.xml:1223
+#, no-c-format
+msgid "Examples: Using Array version"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1225
+#, no-c-format
+msgid ""
+"SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations "
+"ORDER BY visit_time));\n"
+"\n"
+"--Making a 3d line with 3 3-d points\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),\n"
+"                                ST_MakePoint(3,4,5), "
+"ST_MakePoint(6,6,6)]));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+"LINESTRING(1 2 3,3 4 5,6 6 6)"
+msgstr ""
+"SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations "
+"ORDER BY visit_time));\n"
+"\n"
+"--Making a 3d line with 3 3-d points\n"
+"SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),\n"
+"                                ST_MakePoint(3,4,5), "
+"ST_MakePoint(6,6,6)]));\n"
+"                st_asewkt\n"
+"-------------------------\n"
+"LINESTRING(1 2 3,3 4 5,6 6 6)"
+
+#. Tag: para
+#: reference_constructor.xml:1232
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_MakePoint\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_MakePoint\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1239
+#, no-c-format
+msgid "ST_MakeEnvelope"
+msgstr "ST_MakeEnvelope"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1241
+#, no-c-format
+msgid ""
+"Creates a rectangular Polygon formed from the given minimums and maximums. "
+"Input values must be in SRS specified by the SRID."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1247
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>xmin</parameter></"
+"paramdef> <paramdef><type>double precision</type> <parameter>ymin</"
+"parameter></paramdef> <paramdef><type>double precision</type> "
+"<parameter>xmax</parameter></paramdef> <paramdef><type>double precision</"
+"type> <parameter>ymax</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>xmin</parameter></"
+"paramdef> <paramdef><type>double precision</type> <parameter>ymin</"
+"parameter></paramdef> <paramdef><type>double precision</type> "
+"<parameter>xmax</parameter></paramdef> <paramdef><type>double precision</"
+"type> <parameter>ymax</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1261
+#, no-c-format
+msgid ""
+"Creates a rectangular Polygon formed from the minima and maxima. by the "
+"given shell. Input values must be in SRS specified by the SRID. If no SRID "
+"is specified the unknown spatial reference system is assumed"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1264
+#, no-c-format
+msgid "Availability: 1.5"
+msgstr "Dostępność: 1.5"
+
+#. Tag: para
+#: reference_constructor.xml:1265
+#, no-c-format
+msgid ""
+"Enhanced: 2.0: Ability to specify an envelope without specifying an SRID was "
+"introduced."
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1270
+#, no-c-format
+msgid "Example: Building a bounding box polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1271
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((10 10, 10 11, 11 11, 11 10, 10 10))"
+msgstr ""
+"SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((10 10, 10 11, 11 11, 11 10, 10 10))"
+
+#. Tag: para
+#: reference_constructor.xml:1275
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
+msgstr ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1281
+#, no-c-format
+msgid "ST_MakePolygon"
+msgstr "ST_MakePolygon"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1283
+#, no-c-format
+msgid ""
+"Creates a Polygon formed by the given shell. Input geometries must be closed "
+"LINESTRINGS."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1289
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1295
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>outerlinestring</parameter></"
+"paramdef> <paramdef><type>geometry[]</type> <parameter>interiorlinestrings</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>outerlinestring</parameter></"
+"paramdef> <paramdef><type>geometry[]</type> <parameter>interiorlinestrings</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1306
+#, no-c-format
+msgid ""
+"Creates a Polygon formed by the given shell. Input geometries must be closed "
+"LINESTRINGS. Comes in 2 variants."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1308
+#, no-c-format
+msgid "Variant 1: takes one closed linestring."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1309
+#, no-c-format
+msgid ""
+"Variant 2: Creates a Polygon formed by the given shell and array of holes. "
+"You can construct a geometry array using ST_Accum or the PostgreSQL ARRAY[] "
+"and ARRAY() constructs. Input geometries must be closed LINESTRINGS."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1313
+#, no-c-format
+msgid ""
+"This function will not accept a MULTILINESTRING. Use <xref linkend="
+"\"ST_LineMerge\"/> or <xref linkend=\"ST_Dump\"/> to generate line strings."
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1320
+#, no-c-format
+msgid "Examples: Single closed LINESTRING"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1321
+#, no-c-format
+msgid ""
+"--2d line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 "
+"29.5, 75.15 29.53)'));\n"
+"--If linestring is not closed\n"
+"--you can add the start point to close it\n"
+"SELECT ST_MakePolygon(ST_AddPoint(foo.open_line, ST_StartPoint(foo."
+"open_line)))\n"
+"FROM (\n"
+"SELECT ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5)') As "
+"open_line) As foo;\n"
+"\n"
+"--3d closed line\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53 1,77 29 1,77.6 "
+"29.5 1, 75.15 29.53 1)'));\n"
+"\n"
+"st_asewkt\n"
+"-----------\n"
+"POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))\n"
+"\n"
+"--measured line --\n"
+"SELECT ST_MakePolygon(ST_GeomFromText('LINESTRINGM(75.15 29.53 1,77 29 "
+"1,77.6 29.5 2, 75.15 29.53 2)'));\n"
+"\n"
+"st_asewkt\n"
+"----------\n"
+"POLYGONM((75.15 29.53 1,77 29 1,77.6 29.5 2,75.15 29.53 2))"
+msgstr ""
+
+#. Tag: title
+#: reference_constructor.xml:1324
+#, no-c-format
+msgid "Examples: Outter shell with inner shells"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1326
+#, no-c-format
+msgid "Build a donut with an ant hole"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1327
+#, no-c-format
+msgid ""
+"SELECT ST_MakePolygon(\n"
+"                ST_ExteriorRing(ST_Buffer(foo.line,10)),\n"
+"        ARRAY[ST_Translate(foo.line,1,1),\n"
+"                ST_ExteriorRing(ST_Buffer(ST_MakePoint(20,20),1)) ]\n"
+"        )\n"
+"FROM\n"
+"        (SELECT ST_ExteriorRing(ST_Buffer(ST_MakePoint(10,10),10,10))\n"
+"                As line )\n"
+"                As foo;"
+msgstr ""
+"SELECT ST_MakePolygon(\n"
+"                ST_ExteriorRing(ST_Buffer(foo.line,10)),\n"
+"        ARRAY[ST_Translate(foo.line,1,1),\n"
+"                ST_ExteriorRing(ST_Buffer(ST_MakePoint(20,20),1)) ]\n"
+"        )\n"
+"FROM\n"
+"        (SELECT ST_ExteriorRing(ST_Buffer(ST_MakePoint(10,10),10,10))\n"
+"                As line )\n"
+"                As foo;"
+
+#. Tag: para
+#: reference_constructor.xml:1328
+#, no-c-format
+msgid ""
+"Build province boundaries with holes representing lakes in the province from "
+"a set of province polygons/multipolygons and water line strings this is an "
+"example of using PostGIS ST_Accum"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1332
+#, no-c-format
+msgid ""
+"The use of CASE because feeding a null array into ST_MakePolygon results in "
+"NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1334
+#, no-c-format
+msgid ""
+"the use of left join to guarantee we get all provinces back even if they "
+"have no lakes"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1335
+#, no-c-format
+msgid ""
+"SELECT p.gid, p.province_name,\n"
+"                CASE WHEN\n"
+"                        ST_Accum(w.the_geom) IS NULL THEN p.the_geom\n"
+"                ELSE  ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)), "
+"ST_Accum(w.the_geom)) END\n"
+"        FROM\n"
+"                provinces p LEFT JOIN waterlines w\n"
+"                        ON (ST_Within(w.the_geom, p.the_geom) AND "
+"ST_IsClosed(w.the_geom))\n"
+"        GROUP BY p.gid, p.province_name, p.the_geom;\n"
+"\n"
+"        --Same example above but utilizing a correlated subquery\n"
+"        --and PostgreSQL built-in ARRAY() function that converts a row set "
+"to an array\n"
+"\n"
+"        SELECT p.gid,  p.province_name, CASE WHEN\n"
+"                EXISTS(SELECT w.the_geom\n"
+"                        FROM waterlines w\n"
+"                        WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                        AND ST_IsClosed(w.the_geom))\n"
+"                THEN\n"
+"                ST_MakePolygon(ST_LineMerge(ST_Boundary(p.the_geom)),\n"
+"                        ARRAY(SELECT w.the_geom\n"
+"                                FROM waterlines w\n"
+"                                WHERE ST_Within(w.the_geom, p.the_geom)\n"
+"                                AND ST_IsClosed(w.the_geom)))\n"
+"                ELSE p.the_geom END As the_geom\n"
+"        FROM\n"
+"                provinces p;"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1339
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, "
+"<xref linkend=\"ST_IsClosed\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_BuildArea\"/>"
+msgstr ""
+", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, "
+"<xref linkend=\"ST_IsClosed\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_BuildArea\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1352
+#, no-c-format
+msgid "ST_MakePoint"
+msgstr "ST_MakePoint"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1354
+#, no-c-format
+msgid "Creates a 2D,3DZ or 4D point geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1359
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1366
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1374
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>m</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
+"<paramdef><type>double precision</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>z</parameter></paramdef> "
+"<paramdef><type>double precision</type> <parameter>m</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1387
+#, no-c-format
+msgid ""
+"Creates a 2D,3DZ or 4D point geometry (geometry with measure). "
+"<varname>ST_MakePoint</varname> while not being OGC compliant is generally "
+"faster and more precise than <xref linkend=\"ST_GeomFromText\"/> and <xref "
+"linkend=\"ST_PointFromText\"/>. It is also easier to use if you have raw "
+"coordinates rather than WKT."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1393
+#, no-c-format
+msgid "Note x is longitude and y is latitude"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1394
+#, no-c-format
+msgid ""
+"Use <xref linkend=\"ST_MakePointM\"/> if you need to make a point with x,y,m."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1401
+#, no-c-format
+msgid ""
+"--Return point with unknown SRID\n"
+"SELECT ST_MakePoint(-71.1043443253471, 42.3150676015829);\n"
+"\n"
+"--Return point marked as WGS 84 long lat\n"
+"SELECT ST_SetSRID(ST_MakePoint(-71.1043443253471, 42.3150676015829),4326);\n"
+"\n"
+"--Return a 3D point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get z of point\n"
+"SELECT ST_Z(ST_MakePoint(1, 2,1.5));\n"
+"result\n"
+"-------\n"
+"1.5"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1405
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_MakePointM\"/>"
+msgstr ""
+", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_MakePointM\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1411
+#, no-c-format
+msgid "ST_MakePointM"
+msgstr "ST_MakePointM"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1413
+#, no-c-format
+msgid "Creates a point geometry with an x y and m coordinate."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1418
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakePointM</function></funcdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>m</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_MakePointM</function></funcdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>m</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1430
+#, no-c-format
+msgid "Creates a point with x, y and measure coordinates."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1431
+#, no-c-format
+msgid "Note x is longitude and y is latitude."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1436
+#, no-c-format
+msgid ""
+"We use ST_AsEWKT in these examples to show the text representation instead "
+"of ST_AsText because ST_AsText does not support returning M."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1438
+#, no-c-format
+msgid ""
+"--Return EWKT representation of point with unknown SRID\n"
+"SELECT ST_AsEWKT(ST_MakePointM(-71.1043443253471, 42.3150676015829, 10));\n"
+"\n"
+"--result\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return EWKT representation of point with measure marked as WGS 84 long "
+"lat\n"
+"SELECT ST_AsEWKT(ST_SetSRID(ST_MakePointM(-71.1043443253471, "
+"42.3150676015829,10),4326));\n"
+"\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+"SRID=4326;POINTM(-71.1043443253471 42.3150676015829 10)\n"
+"\n"
+"--Return a 3d point (e.g. has altitude)\n"
+"SELECT ST_MakePoint(1, 2,1.5);\n"
+"\n"
+"--Get m of point\n"
+"SELECT ST_M(ST_MakePointM(-71.1043443253471, 42.3150676015829,10));\n"
+"result\n"
+"-------\n"
+"10"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1442
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
+msgstr ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1448
+#, no-c-format
+msgid "ST_MLineFromText"
+msgstr "ST_MLineFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1450
+#, no-c-format
+msgid "Return a specified ST_MultiLineString value from WKT representation."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1454
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MLineFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MLineFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1472
+#, no-c-format
+msgid ""
+"Makes a Geometry from Well-Known-Text (WKT) with the given SRID. If SRID is "
+"not give, it defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1478
+#, no-c-format
+msgid "Returns null if the WKT is not a MULTILINESTRING"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1481 reference_constructor.xml:1542
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are points, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1487
+#, no-c-format
+msgid "&sqlmm_compliant;SQL-MM 3: 9.4.4"
+msgstr "&sqlmm_compliant;SQL-MM 3: 9.4.4"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1495
+#, no-c-format
+msgid "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
+msgstr "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
+
+#. Tag: refname
+#: reference_constructor.xml:1508
+#, no-c-format
+msgid "ST_MPointFromText"
+msgstr "ST_MPointFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1510 reference_constructor.xml:1880
+#, no-c-format
+msgid ""
+"<refpurpose>Makes a Geometry from WKT with the given SRID. If SRID is not "
+"give, it defaults to 0.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1515
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MPointFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_MPointFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1533
+#, no-c-format
+msgid ""
+"<para>Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1539
+#, no-c-format
+msgid "Returns null if the WKT is not a MULTIPOINT"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1547
+#, no-c-format
+msgid "&sfs_compliant; 3.2.6.2"
+msgstr "&sfs_compliant; 3.2.6.2"
+
+#. Tag: para
+#: reference_constructor.xml:1548
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.2.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 9.2.4"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1556
+#, no-c-format
+msgid ""
+"SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
+"SELECT ST_MPointFromText('MULTIPOINT(-70.9590 42.1180, -70.9611 42.1223)', "
+"4326);"
+msgstr ""
+"SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
+"SELECT ST_MPointFromText('MULTIPOINT(-70.9590 42.1180, -70.9611 42.1223)', "
+"4326);"
+
+#. Tag: refname
+#: reference_constructor.xml:1569
+#, no-c-format
+msgid "ST_MPolyFromText"
+msgstr "ST_MPolyFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1571
+#, no-c-format
+msgid ""
+"Makes a MultiPolygon Geometry from WKT with the given SRID. If SRID is not "
+"give, it defaults to 0."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1576
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MPolyFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_MPolyFromText</"
+"function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1594
+#, no-c-format
+msgid ""
+"Makes a MultiPolygon from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1600
+#, no-c-format
+msgid "Throws an error if the WKT is not a MULTIPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1603
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are multipolygons, don't "
+"use this function. It is slower than ST_GeomFromText since it adds an "
+"additional validation step."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1609
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 9.6.4"
+msgstr "&sqlmm_compliant; SQL-MM 3: 9.6.4"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1617
+#, no-c-format
+msgid ""
+"SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),"
+"(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))');\n"
+"SELECt ST_MPolyFromText('MULTIPOLYGON(((-70.916 42.1002,-70.9468 "
+"42.0946,-70.9765 42.0872,-70.9754 42.0875,-70.9749 42.0879,-70.9752 "
+"42.0881,-70.9754 42.0891,-70.9758 42.0894,-70.9759 42.0897,-70.9759 "
+"42.0899,-70.9754 42.0902,-70.9756 42.0906,-70.9753 42.0907,-70.9753 "
+"42.0917,-70.9757 42.0924,-70.9755 42.0928,-70.9755 42.0942,-70.9751 "
+"42.0948,-70.9755 42.0953,-70.9751 42.0958,-70.9751 42.0962,-70.9759 "
+"42.0983,-70.9767 42.0987,-70.9768 42.0991,-70.9771 42.0997,-70.9771 "
+"42.1003,-70.9768 42.1005,-70.977 42.1011,-70.9766 42.1019,-70.9768 "
+"42.1026,-70.9769 42.1033,-70.9775 42.1042,-70.9773 42.1043,-70.9776 "
+"42.1043,-70.9778 42.1048,-70.9773 42.1058,-70.9774 42.1061,-70.9779 "
+"42.1065,-70.9782 42.1078,-70.9788 42.1085,-70.9798 42.1087,-70.9806 "
+"42.109,-70.9807 42.1093,-70.9806 42.1099,-70.9809 42.1109,-70.9808 "
+"42.1112,-70.9798 42.1116,-70.9792 42.1127,-70.979 42.1129,-70.9787 "
+"42.1134,-70.979 42.1139,-70.9791 42.1141,-70.9987 42.1116,-71.0022 42.1273,\n"
+"        -70.9408 42.1513,-70.9315 42.1165,-70.916 42.1002)))',4326);"
+msgstr ""
+"SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),"
+"(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))');\n"
+"SELECt ST_MPolyFromText('MULTIPOLYGON(((-70.916 42.1002,-70.9468 "
+"42.0946,-70.9765 42.0872,-70.9754 42.0875,-70.9749 42.0879,-70.9752 "
+"42.0881,-70.9754 42.0891,-70.9758 42.0894,-70.9759 42.0897,-70.9759 "
+"42.0899,-70.9754 42.0902,-70.9756 42.0906,-70.9753 42.0907,-70.9753 "
+"42.0917,-70.9757 42.0924,-70.9755 42.0928,-70.9755 42.0942,-70.9751 "
+"42.0948,-70.9755 42.0953,-70.9751 42.0958,-70.9751 42.0962,-70.9759 "
+"42.0983,-70.9767 42.0987,-70.9768 42.0991,-70.9771 42.0997,-70.9771 "
+"42.1003,-70.9768 42.1005,-70.977 42.1011,-70.9766 42.1019,-70.9768 "
+"42.1026,-70.9769 42.1033,-70.9775 42.1042,-70.9773 42.1043,-70.9776 "
+"42.1043,-70.9778 42.1048,-70.9773 42.1058,-70.9774 42.1061,-70.9779 "
+"42.1065,-70.9782 42.1078,-70.9788 42.1085,-70.9798 42.1087,-70.9806 "
+"42.109,-70.9807 42.1093,-70.9806 42.1099,-70.9809 42.1109,-70.9808 "
+"42.1112,-70.9798 42.1116,-70.9792 42.1127,-70.979 42.1129,-70.9787 "
+"42.1134,-70.979 42.1139,-70.9791 42.1141,-70.9987 42.1116,-71.0022 42.1273,\n"
+"        -70.9408 42.1513,-70.9315 42.1165,-70.916 42.1002)))',4326);"
+
+#. Tag: refname
+#: reference_constructor.xml:1630
+#, no-c-format
+msgid "ST_Point"
+msgstr "ST_Point"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1632
+#, no-c-format
+msgid ""
+"Returns an ST_Point with the given coordinate values. OGC alias for "
+"ST_MakePoint."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1637
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Point</function></funcdef> "
+"<paramdef><type>float </type> <parameter>x_lon</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>y_lat</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Point</function></funcdef> "
+"<paramdef><type>float </type> <parameter>x_lon</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>y_lat</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1648
+#, no-c-format
+msgid ""
+"Returns an ST_Point with the given coordinate values. MM compliant alias for "
+"ST_MakePoint that takes just an x and y."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1651
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.2"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.2"
+
+#. Tag: title
+#: reference_constructor.xml:1657
+#, no-c-format
+msgid "Examples: Geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1659
+#, no-c-format
+msgid "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
+msgstr "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
+
+#. Tag: title
+#: reference_constructor.xml:1663
+#, no-c-format
+msgid "Examples: Geography"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1665
+#, no-c-format
+msgid ""
+"SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) "
+"As geography);"
+msgstr ""
+"SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) "
+"As geography);"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1666
+#, no-c-format
+msgid ""
+"-- the :: is PostgreSQL short-hand for casting.\n"
+"SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)::"
+"geography;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1668
+#, no-c-format
+msgid ""
+"--If your point coordinates are in a different spatial reference from WGS-84 "
+"long lat, then you need to transform before casting\n"
+"-- This example we convert a point in Pennsylvania State Plane feet to WGS "
+"84 and then geography\n"
+"SELECT ST_Transform(ST_SetSRID(ST_Point(3637510, 3014852),2273),4326)::"
+"geography;"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1675
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+msgstr ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1681
+#, fuzzy, no-c-format
+msgid "ST_PointFromGeoHash"
+msgstr "ST_PointFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1683
+#, no-c-format
+msgid "Return a point from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1688
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>point <function>ST_PointFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1699
+#, no-c-format
+msgid ""
+"Return a point from a GeoHash string. The point represents the center point "
+"of the GeoHash."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1701
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_PointFromGeoHash "
+"returns a point based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1703
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_PointFromGeoHash will use "
+"that many characters from the GeoHash to create the point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1710
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"          st_astext\n"
+"------------------------------\n"
+" POINT(-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"             st_astext\n"
+"-----------------------------------\n"
+" POINT(-115.13671875 36.123046875)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                 st_astext\n"
+"-------------------------------------------\n"
+" POINT(-115.172815918922 36.1146435141563)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1715
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_GeomFromGeoHash"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1721
+#, no-c-format
+msgid "ST_PointFromText"
+msgstr "ST_PointFromText"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1722
+#, no-c-format
+msgid ""
+"Makes a point Geometry from WKT with the given SRID. If SRID is not given, "
+"it defaults to unknown."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1726
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PointFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PointFromText</function></funcdef> <paramdef><type>text </type> "
+"<parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1742
+#, no-c-format
+msgid ""
+"Constructs a PostGIS ST_Geometry point object from the OGC Well-Known text "
+"representation. If SRID is not give, it defaults to unknown (currently 0). "
+"If geometry is not a WKT point representation, returns null. If completely "
+"invalid WKT, then throws an error."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1748
+#, no-c-format
+msgid ""
+"There are 2 variants of ST_PointFromText function, the first takes no SRID "
+"and returns a geometry with no defined spatial reference system. The second "
+"takes a spatial reference id as the second argument and returns an "
+"ST_Geometry that includes this srid as part of its meta-data. The srid must "
+"be defined in the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1755
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are points, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step. If you are building points from long lat coordinates and "
+"care more about performance and accuracy than OGC compliance, use <xref "
+"linkend=\"ST_MakePoint\"/> or OGC compliant alias <xref linkend=\"ST_Point\"/"
+">."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1760
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.8"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.8"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)', 4326);"
+msgstr ""
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
+"SELECT ST_PointFromText('POINT(-71.064544 42.28787)', 4326);"
+
+#. Tag: para
+#: reference_constructor.xml:1769
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1775
+#, no-c-format
+msgid "ST_PointFromWKB"
+msgstr "ST_PointFromWKB"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1777
+#, no-c-format
+msgid "Makes a geometry from WKB with the given SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1798
+#, no-c-format
+msgid ""
+"The <varname>ST_PointFromWKB</varname> function, takes a well-known binary "
+"representation of geometry and a Spatial Reference System ID (<varname>SRID</"
+"varname>) and creates an instance of the appropriate geometry type - in this "
+"case, a <varname>POINT</varname> geometry. This function plays the role of "
+"the Geometry Factory in SQL."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1804
+#, no-c-format
+msgid ""
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
+"returned if the input <varname>bytea</varname> does not represent a "
+"<varname>POINT</varname> geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1807
+#, no-c-format
+msgid "&sfs_compliant; s3.2.7.2"
+msgstr "&sfs_compliant; s3.2.7.2"
+
+#. Tag: para
+#: reference_constructor.xml:1808
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 6.1.9"
+msgstr "&sqlmm_compliant; SQL-MM 3: 6.1.9"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1816
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('LINESTRING(2 5, 2 6)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"-----------\n"
+"\n"
+"(1 row)"
+msgstr ""
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('POINT(2 5)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_PointFromWKB(\n"
+"          ST_AsEWKB('LINESTRING(2 5, 2 6)'::geometry)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"-----------\n"
+"\n"
+"(1 row)"
+
+#. Tag: refname
+#: reference_constructor.xml:1829
+#, no-c-format
+msgid "ST_Polygon"
+msgstr "ST_Polygon"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1831
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a polygon built from the specified linestring and SRID.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1836
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aLineString</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>aLineString</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1847
+#, no-c-format
+msgid ""
+"<para>Returns a polygon built from the specified linestring and SRID.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1851
+#, no-c-format
+msgid ""
+"ST_Polygon is similar to first version oST_MakePolygon except it also sets "
+"the spatial ref sys (SRID) of the polygon. Will not work with "
+"MULTILINESTRINGS so use LineMerge to merge multilines. Also does not create "
+"polygons with holes. Use ST_MakePolygon for that."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1856
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.3.2"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.3.2"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1865
+#, no-c-format
+msgid ""
+"--a 2d polygon\n"
+"SELECT ST_Polygon(ST_GeomFromText('LINESTRING(75.15 29.53,77 29,77.6 29.5, "
+"75.15 29.53)'), 4326);\n"
+"\n"
+"--result--\n"
+"POLYGON((75.15 29.53,77 29,77.6 29.5,75.15 29.53))\n"
+"--a 3d polygon\n"
+"SELECT ST_AsEWKT(ST_Polygon(ST_GeomFromEWKT('LINESTRING(75.15 29.53 1,77 29 "
+"1,77.6 29.5 1, 75.15 29.53 1)'), 4326));\n"
+"\n"
+"result\n"
+"------\n"
+"SRID=4326;POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1))"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1872
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref "
+"linkend=\"ST_MakePolygon\"/>"
+
+#. Tag: refname
+#: reference_constructor.xml:1878
+#, no-c-format
+msgid "ST_PolygonFromText"
+msgstr "ST_PolygonFromText"
+
+#. Tag: funcsynopsis
+#: reference_constructor.xml:1885
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PolygonFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></"
+"funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_PolygonFromText</function></funcdef> <paramdef><type>text </"
+"type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_constructor.xml:1901
+#, no-c-format
+msgid ""
+"Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
+"defaults to 0. Returns null if WKT is not a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1908
+#, no-c-format
+msgid ""
+"If you are absolutely sure all your WKT geometries are polygons, don't use "
+"this function. It is slower than ST_GeomFromText since it adds an additional "
+"validation step."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1911
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.3.6"
+msgstr "&sqlmm_compliant; SQL-MM 3: 8.3.6"
+
+#. Tag: programlisting
+#: reference_constructor.xml:1917
+#, no-c-format
+msgid ""
+"SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"st_polygonfromtext\n"
+"------------------\n"
+"010300000001000000050000006...\n"
+"\n"
+"\n"
+"SELECT ST_PolygonFromText('POINT(1 2)') IS NULL as point_is_notpoly;\n"
+"\n"
+"point_is_not_poly\n"
+"----------\n"
+"t"
+msgstr ""
+"SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 "
+"42.3902909739571,-71.1776820268866 42.3903701743239,\n"
+"-71.1776063012595 42.3903825660754,-71.1775826583081 "
+"42.3903033653531,-71.1776585052917 42.3902909739571))');\n"
+"st_polygonfromtext\n"
+"------------------\n"
+"010300000001000000050000006...\n"
+"\n"
+"\n"
+"SELECT ST_PolygonFromText('POINT(1 2)') IS NULL as point_is_notpoly;\n"
+"\n"
+"point_is_not_poly\n"
+"----------\n"
+"t"
+
+#. Tag: refname
+#: reference_constructor.xml:1930
+#, no-c-format
+msgid "ST_WKBToSQL"
+msgstr "ST_WKBToSQL"
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1931
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from Well-Known Binary representation "
+"(WKB). This is an alias name for ST_GeomFromWKB that takes no srid"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1935
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1943
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.36"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.36"
+
+#. Tag: refname
+#: reference_constructor.xml:1953
+#, no-c-format
+msgid "ST_WKTToSQL"
+msgstr "ST_WKTToSQL"
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1958
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> "
+"<paramdef><type>text </type> <parameter>WKT</parameter></paramdef>"
+
+#. Tag: para
+#: reference_constructor.xml:1966
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.34"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.34"
diff --git a/doc/po/pl/reference_editor.xml.po b/doc/po/pl/reference_editor.xml.po
new file mode 100644
index 0000000..3b6d16c
--- /dev/null
+++ b/doc/po/pl/reference_editor.xml.po
@@ -0,0 +1,2880 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Jakub Bobrowski <jb at 5dstudio.pl>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-02 14:22+0000\n"
+"Last-Translator: Jakub Bobrowski <jb at 5dstudio.pl>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_editor.xml:3
+#, no-c-format
+msgid "Geometry Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:7
+#, no-c-format
+msgid "ST_AddPoint"
+msgstr "ST_AddPoint"
+
+#. Tag: refpurpose
+#: reference_editor.xml:8
+#, no-c-format
+msgid ""
+"Adds a point to a LineString before point <position> (0-based index)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:13
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef>"
+
+#. Tag: funcprototype
+#: reference_editor.xml:20
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>position</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_AddPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>point</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>position</parameter></paramdef>"
+
+#. Tag: title
+#: reference_editor.xml:30 reference_editor.xml:89 reference_editor.xml:148
+#: reference_editor.xml:194 reference_editor.xml:237 reference_editor.xml:280
+#: reference_editor.xml:321 reference_editor.xml:362 reference_editor.xml:416
+#: reference_editor.xml:445 reference_editor.xml:491 reference_editor.xml:536
+#: reference_editor.xml:578 reference_editor.xml:629 reference_editor.xml:672
+#: reference_editor.xml:706 reference_editor.xml:739 reference_editor.xml:783
+#: reference_editor.xml:832 reference_editor.xml:879 reference_editor.xml:928
+#: reference_editor.xml:992 reference_editor.xml:1052
+#: reference_editor.xml:1094 reference_editor.xml:1137
+#: reference_editor.xml:1214 reference_editor.xml:1292
+#: reference_editor.xml:1428 reference_editor.xml:1511
+#: reference_editor.xml:1565
+#, no-c-format
+msgid "Description"
+msgstr "Opis"
+
+#. Tag: para
+#: reference_editor.xml:32
+#, no-c-format
+msgid ""
+"Adds a point to a LineString before point <position> (0-based index). "
+"Third parameter can be omitted or set to -1 for appending."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:35 reference_editor.xml:543 reference_editor.xml:709
+#: reference_editor.xml:1099
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr "Dostępność: 1.1.0"
+
+#. Tag: para
+#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:159
+#: reference_editor.xml:202 reference_editor.xml:244 reference_editor.xml:326
+#: reference_editor.xml:372 reference_editor.xml:421 reference_editor.xml:454
+#: reference_editor.xml:500 reference_editor.xml:710 reference_editor.xml:792
+#: reference_editor.xml:842 reference_editor.xml:890 reference_editor.xml:941
+#: reference_editor.xml:1007 reference_editor.xml:1101
+#: reference_editor.xml:1245 reference_editor.xml:1519
+#: reference_editor.xml:1578
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: title
+#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:164
+#: reference_editor.xml:207 reference_editor.xml:250 reference_editor.xml:291
+#: reference_editor.xml:332 reference_editor.xml:378 reference_editor.xml:459
+#: reference_editor.xml:506 reference_editor.xml:548 reference_editor.xml:600
+#: reference_editor.xml:644 reference_editor.xml:680 reference_editor.xml:714
+#: reference_editor.xml:745 reference_editor.xml:801 reference_editor.xml:848
+#: reference_editor.xml:897 reference_editor.xml:949 reference_editor.xml:1014
+#: reference_editor.xml:1066 reference_editor.xml:1105
+#: reference_editor.xml:1153 reference_editor.xml:1250
+#: reference_editor.xml:1326 reference_editor.xml:1456
+#: reference_editor.xml:1524 reference_editor.xml:1584
+#, no-c-format
+msgid "Examples"
+msgstr "Przykłady"
+
+#. Tag: programlisting
+#: reference_editor.xml:41
+#, no-c-format
+msgid ""
+"--guarantee all linestrings in a table are closed\n"
+"                --by adding the start point of each linestring to the end of "
+"the line string\n"
+"                --only for those that are not closed\n"
+"                UPDATE sometable\n"
+"                SET the_geom = ST_AddPoint(the_geom, "
+"ST_StartPoint(the_geom))\n"
+"                FROM sometable\n"
+"                WHERE ST_IsClosed(the_geom) = false;\n"
+"\n"
+"                --Adding point to a 3-d line\n"
+"                SELECT ST_AsEWKT(ST_AddPoint(ST_GeomFromEWKT('LINESTRING(0 0 "
+"1, 1 1 1)'), ST_MakePoint(1, 2, 3)));\n"
+"\n"
+"                --result\n"
+"                st_asewkt\n"
+"                ----------\n"
+"                LINESTRING(0 0 1,1 1 1,1 2 3)"
+msgstr ""
+
+#. Tag: title
+#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:171
+#: reference_editor.xml:214 reference_editor.xml:257 reference_editor.xml:298
+#: reference_editor.xml:339 reference_editor.xml:387 reference_editor.xml:465
+#: reference_editor.xml:512 reference_editor.xml:553 reference_editor.xml:605
+#: reference_editor.xml:649 reference_editor.xml:685 reference_editor.xml:718
+#: reference_editor.xml:808 reference_editor.xml:855 reference_editor.xml:904
+#: reference_editor.xml:956 reference_editor.xml:1021
+#: reference_editor.xml:1071 reference_editor.xml:1109
+#: reference_editor.xml:1161 reference_editor.xml:1257
+#: reference_editor.xml:1401 reference_editor.xml:1478
+#: reference_editor.xml:1537 reference_editor.xml:1591
+#, no-c-format
+msgid "See Also"
+msgstr "Zobacz także"
+
+#. Tag: para
+#: reference_editor.xml:45
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetPoint\"/>"
+msgstr ", <xref linkend=\"ST_SetPoint\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:51
+#, no-c-format
+msgid "ST_Affine"
+msgstr "ST_Affine"
+
+#. Tag: refpurpose
+#: reference_editor.xml:53
+#, no-c-format
+msgid ""
+"<refpurpose>Applies a 3d affine transformation to the geometry to do things "
+"like translate, rotate, scale in one step.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:57
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Affine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>a</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>b</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>c</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>d</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>e</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>f</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>g</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>h</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>i</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>xoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>yoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>zoff</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Affine</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>a</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>b</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>d</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>e</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>xoff</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>yoff</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Affine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>a</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>b</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>c</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>d</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>e</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>f</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>g</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>h</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>i</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>xoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>yoff</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>zoff</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Affine</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>a</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>b</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>d</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>e</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>xoff</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>yoff</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:91
+#, no-c-format
+msgid ""
+"<para>Applies a 3d affine transformation to the geometry to do things like "
+"translate, rotate, scale in one step.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:92
+#, no-c-format
+msgid ""
+"Version 1: The call <programlisting>ST_Affine(geom, a, b, c, d, e, f, g, h, "
+"i, xoff, yoff, zoff) </programlisting> represents the transformation matrix "
+"<programlisting>/ a  b  c  xoff \\\n"
+"| d  e  f  yoff |\n"
+"| g  h  i  zoff |\n"
+"\\ 0  0  0     1 /</programlisting> and the vertices are transformed as "
+"follows: <programlisting>x' = a*x + b*y + c*z + xoff\n"
+"y' = d*x + e*y + f*z + yoff\n"
+"z' = g*x + h*y + i*z + zoff</programlisting> All of the translate / scale "
+"functions below are expressed via such an affine transformation."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:99
+#, no-c-format
+msgid ""
+"Version 2: Applies a 2d affine transformation to the geometry. The call "
+"<programlisting>ST_Affine(geom, a, b, d, e, xoff, yoff)</programlisting> "
+"represents the transformation matrix <programlisting>/  a  b  0  xoff  "
+"\\       /  a  b  xoff  \\\n"
+"|  d  e  0  yoff  | rsp.  |  d  e  yoff  |\n"
+"|  0  0  1     0  |       \\  0  0     1  /\n"
+"\\  0  0  0     1  /</programlisting> and the vertices are transformed as "
+"follows: <programlisting>x' = a*x + b*y + xoff\n"
+"y' = d*x + e*y + yoff\n"
+"z' = z </programlisting> This method is a subcase of the 3D method above."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:105 reference_editor.xml:789 reference_editor.xml:839
+#: reference_editor.xml:887 reference_editor.xml:936 reference_editor.xml:1005
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:106
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from Affine to ST_Affine in 1.2.2"
+msgstr ""
+"Dostępność: 1.1.2. Nazwa zmieniona z Affine na ST_Affine w wersji 1.2.2"
+
+#. Tag: para
+#: reference_editor.xml:107 reference_editor.xml:939 reference_editor.xml:1001
+#: reference_editor.xml:1446 reference_editor.xml:1516
+#: reference_editor.xml:1574
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:109 reference_editor.xml:158 reference_editor.xml:200
+#: reference_editor.xml:243 reference_editor.xml:371 reference_editor.xml:418
+#: reference_editor.xml:455 reference_editor.xml:794 reference_editor.xml:841
+#: reference_editor.xml:889 reference_editor.xml:943 reference_editor.xml:1006
+#: reference_editor.xml:1451
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_editor.xml:110 reference_editor.xml:419 reference_editor.xml:795
+#: reference_editor.xml:843 reference_editor.xml:891 reference_editor.xml:944
+#: reference_editor.xml:1009
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: para
+#: reference_editor.xml:112 reference_editor.xml:157 reference_editor.xml:201
+#: reference_editor.xml:245 reference_editor.xml:286 reference_editor.xml:327
+#: reference_editor.xml:373 reference_editor.xml:420 reference_editor.xml:502
+#: reference_editor.xml:793 reference_editor.xml:942 reference_editor.xml:1008
+#: reference_editor.xml:1149 reference_editor.xml:1450
+#: reference_editor.xml:1520 reference_editor.xml:1579
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: programlisting
+#: reference_editor.xml:119
+#, no-c-format
+msgid ""
+"--Rotate a 3d line 180 degrees about the z axis.  Note this is long-hand for "
+"doing ST_Rotate();\n"
+" SELECT ST_AsEWKT(ST_Affine(the_geom,  cos(pi()), -sin(pi()), 0,  sin(pi()), "
+"cos(pi()), 0,  0, 0, 1,  0, 0, 0)) As using_affine,\n"
+"         ST_AsEWKT(ST_Rotate(the_geom, pi())) As using_rotate\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
+"the_geom) As foo;\n"
+"        using_affine         |        using_rotate\n"
+"-----------------------------+-----------------------------\n"
+" LINESTRING(-1 -2 3,-1 -4 3) | LINESTRING(-1 -2 3,-1 -4 3)\n"
+"(1 row)\n"
+"\n"
+"--Rotate a 3d line 180 degrees in both the x and z axis\n"
+"SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), "
+"cos(pi()), -sin(pi()), 0, sin(pi()), cos(pi()), 0, 0, 0))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
+"the_geom) As foo;\n"
+"           st_asewkt\n"
+"-------------------------------\n"
+" LINESTRING(-1 -2 -3,-1 -4 -3)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:126
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Scale\"/>, <xref linkend=\"ST_Translate\"/>, <xref "
+"linkend=\"ST_TransScale\"/>"
+msgstr ""
+", <xref linkend=\"ST_Scale\"/>, <xref linkend=\"ST_Translate\"/>, <xref "
+"linkend=\"ST_TransScale\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:132
+#, fuzzy, no-c-format
+msgid "ST_Force2D"
+msgstr "ST_Force_2D"
+
+#. Tag: refpurpose
+#: reference_editor.xml:134
+#, no-c-format
+msgid ""
+"Forces the geometries into a \"2-dimensional mode\" so that all output "
+"representations will only have the X and Y coordinates."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:140
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:150
+#, no-c-format
+msgid ""
+"Forces the geometries into a \"2-dimensional mode\" so that all output "
+"representations will only have the X and Y coordinates. This is useful for "
+"force OGC-compliant output (since OGC only specifies 2-D geometries)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:155 reference_editor.xml:198 reference_editor.xml:241
+#: reference_editor.xml:367 reference_editor.xml:453 reference_editor.xml:1448
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:156
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_2D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:166
+#, fuzzy, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Force2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                st_asewkt\n"
+"-------------------------------------\n"
+"CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"2,1 3 2,1 1 2))'));\n"
+"\n"
+"                                  st_asewkt\n"
+"----------------------------------------------\n"
+" POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))"
+msgstr ""
+"SELECT ST_AsEWKT(ST_Force_2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                st_asewkt\n"
+"-------------------------------------\n"
+"CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force_2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"2,1 3 2,1 1 2))'));\n"
+"\n"
+"                                  st_asewkt\n"
+"----------------------------------------------\n"
+" POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))"
+
+#. Tag: refname
+#: reference_editor.xml:179
+#, fuzzy, no-c-format
+msgid "ST_Force3D"
+msgstr "ST_Force_3D"
+
+#. Tag: refpurpose
+#: reference_editor.xml:181
+#, no-c-format
+msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force3DZ."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:186
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:196
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:199
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:209
+#, fuzzy, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"                SELECT "
+"ST_AsEWKT(ST_Force3D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 "
+"7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"1))'));\n"
+"\n"
+"                                                 st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+"SELECT ST_AsEWKT(ST_Force_2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                st_asewkt\n"
+"-------------------------------------\n"
+"CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force_2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"2,1 3 2,1 1 2))'));\n"
+"\n"
+"                                  st_asewkt\n"
+"----------------------------------------------\n"
+" POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))"
+
+#. Tag: para
+#: reference_editor.xml:216
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3DZ\"/>"
+msgstr ""
+", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3DZ\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:222
+#, fuzzy, no-c-format
+msgid "ST_Force3DZ"
+msgstr "ST_Force_3DZ"
+
+#. Tag: refpurpose
+#: reference_editor.xml:224
+#, no-c-format
+msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force3D."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:229
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3DZ</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_3DZ</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:239
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZ mode. This is a synonym for ST_Force3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:242
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DZ."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:252
+#, fuzzy, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"-----------------------------------------------\n"
+" CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"1))'));\n"
+"\n"
+"                                                 st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+"SELECT ST_AsEWKT(ST_Force_2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                st_asewkt\n"
+"-------------------------------------\n"
+"CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force_2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"2,1 3 2,1 1 2))'));\n"
+"\n"
+"                                  st_asewkt\n"
+"----------------------------------------------\n"
+" POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))"
+
+#. Tag: para
+#: reference_editor.xml:259 reference_editor.xml:341
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>"
+msgstr ""
+", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:265
+#, fuzzy, no-c-format
+msgid "ST_Force3DM"
+msgstr "ST_Force_3DM"
+
+#. Tag: refpurpose
+#: reference_editor.xml:267
+#, no-c-format
+msgid "Forces the geometries into XYM mode."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:272
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force3DM</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_3DM</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:282
+#, no-c-format
+msgid ""
+"Forces the geometries into XYM mode. If a geometry has no M component, then "
+"a 0 M coordinate is tacked on. If it has a Z component, then Z is removed"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:285
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DM."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:293
+#, fuzzy, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                   st_asewkt\n"
+"------------------------------------------------\n"
+" CIRCULARSTRINGM(1 1 0,2 3 0,4 5 0,6 7 0,5 6 0)\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 "
+"1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                  st_asewkt\n"
+"---------------------------------------------------------------\n"
+" POLYGONM((0 0 0,0 5 0,5 0 0,0 0 0),(1 1 0,3 1 0,1 3 0,1 1 0))"
+msgstr ""
+"SELECT ST_AsEWKT(ST_Force_2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                st_asewkt\n"
+"-------------------------------------\n"
+"CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force_2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"2,1 3 2,1 1 2))'));\n"
+"\n"
+"                                  st_asewkt\n"
+"----------------------------------------------\n"
+" POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))"
+
+#. Tag: para
+#: reference_editor.xml:300 reference_editor.xml:389
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+"linkend=\"ST_Force_3D\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:306
+#, fuzzy, no-c-format
+msgid "ST_Force4D"
+msgstr "ST_Force_4D"
+
+#. Tag: refpurpose
+#: reference_editor.xml:308
+#, no-c-format
+msgid "Forces the geometries into XYZM mode."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:313
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Force4D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_4D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:323
+#, no-c-format
+msgid ""
+"Forces the geometries into XYZM mode. 0 is tacked on for missing Z and M "
+"dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:325
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_4D."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:334
+#, fuzzy, no-c-format
+msgid ""
+"--Nothing happens to an already 3D geometry\n"
+"SELECT ST_AsEWKT(ST_Force4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+" CIRCULARSTRING(1 1 2 0,2 3 2 0,4 5 2 0,6 7 2 0,5 6 2 0)\n"
+"\n"
+"\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 "
+"1 1,3 1 1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                                          st_asewkt\n"
+"--------------------------------------------------------------------------------------\n"
+" MULTILINESTRING((0 0 0 1,0 5 0 2,5 0 0 3,0 0 0 4),(1 1 0 1,3 1 0 1,1 3 0 "
+"1,1 1 0 1))"
+msgstr ""
+"SELECT ST_AsEWKT(ST_Force_2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
+"                st_asewkt\n"
+"-------------------------------------\n"
+"CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
+"\n"
+"SELECT  ST_AsEWKT(ST_Force_2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"2,1 3 2,1 1 2))'));\n"
+"\n"
+"                                  st_asewkt\n"
+"----------------------------------------------\n"
+" POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))"
+
+#. Tag: refname
+#: reference_editor.xml:347
+#, fuzzy, no-c-format
+msgid "ST_ForceCollection"
+msgstr "ST_Force_Collection"
+
+#. Tag: refpurpose
+#: reference_editor.xml:349
+#, no-c-format
+msgid "Converts the geometry into a GEOMETRYCOLLECTION."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:354
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCollection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_Collection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:364
+#, no-c-format
+msgid ""
+"Converts the geometry into a GEOMETRYCOLLECTION. This is useful for "
+"simplifying the WKB representation."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:368
+#, no-c-format
+msgid ""
+"Availability: 1.2.2, prior to 1.3.4 this function will crash with Curves. "
+"This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:369
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_Collection."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:380
+#, no-c-format
+msgid ""
+"SELECT  ST_AsEWKT(ST_ForceCollection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 "
+"1,3 1 1,1 3 1,1 1 1))'));\n"
+"\n"
+"                                                                   st_asewkt\n"
+"----------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1 3 1,1 1 "
+"1)))\n"
+"\n"
+"\n"
+"  SELECT ST_AsText(ST_ForceCollection('CIRCULARSTRING(220227 150406,2220227 "
+"150407,220227 150406)'));\n"
+"                                                                   st_astext\n"
+"--------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CIRCULARSTRING(220227 150406,2220227 150407,220227 "
+"150406))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:382
+#, no-c-format
+msgid ""
+"-- POLYHEDRAL example --\n"
+"SELECT ST_AsEWKT(ST_ForceCollection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 "
+"1 0,0 0 0)),\n"
+" ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+" ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+" ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+" ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+" ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))'))\n"
+"\n"
+"                                                                   st_asewkt\n"
+"----------------------------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(\n"
+"  POLYGON((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+"  POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
+"  POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
+"  POLYGON((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
+"  POLYGON((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),\n"
+"  POLYGON((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))\n"
+")"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:396
+#, fuzzy, no-c-format
+msgid "ST_ForceSFS"
+msgstr "ST_Force_2D"
+
+#. Tag: refpurpose
+#: reference_editor.xml:398
+#, no-c-format
+msgid "Forces the geometries to use SFS 1.1 geometry types only."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:402
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_ForceSFS</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_ForceSFS</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>version</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
+"type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
+
+#. Tag: refname
+#: reference_editor.xml:428
+#, no-c-format
+msgid "ST_ForceRHR"
+msgstr "ST_ForceRHR"
+
+#. Tag: refpurpose
+#: reference_editor.xml:430
+#, no-c-format
+msgid ""
+"Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
+"Rule."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:436
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_ForceRHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>ST_ForceRHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:447
+#, no-c-format
+msgid ""
+"Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
+"Rule. In GIS terminology, this means that the area that is bounded by the "
+"polygon is to the right of the boundary. In particular, the exterior ring is "
+"orientated in a clockwise direction and the interior rings in a counter-"
+"clockwise direction."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:461
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(\n"
+"  ST_ForceRHR(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'\n"
+"  )\n"
+");\n"
+"                                                  st_asewkt\n"
+"--------------------------------------------------------------\n"
+" POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 2,1 3 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:467
+#, no-c-format
+msgid ", <xref linkend=\"ST_Polygonize\"/>, <xref linkend=\"ST_Reverse\"/>"
+msgstr ", <xref linkend=\"ST_Polygonize\"/>, <xref linkend=\"ST_Reverse\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:475
+#, fuzzy, no-c-format
+msgid "ST_ForceCurve"
+msgstr "ST_Force_2D"
+
+#. Tag: refpurpose
+#: reference_editor.xml:477
+#, no-c-format
+msgid "Upcasts a geometry into its curved type, if applicable."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:482
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCurve</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Force_2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:493
+#, no-c-format
+msgid ""
+"Turns a geometry into its curved representation, if applicable: lines become "
+"compoundcurves, multilines become multicurves polygons become curvepolygons "
+"multipolygons become multisurfaces. If the geometry input is already a "
+"curved representation returns back same as input."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:499
+#, fuzzy, no-c-format
+msgid "Availability: 2.2.0"
+msgstr "Dostępność: 2.0"
+
+#. Tag: programlisting
+#: reference_editor.xml:508
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_ForceCurve(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'::geometry\n"
+"  )\n"
+");\n"
+"                              st_astext\n"
+"----------------------------------------------------------------------\n"
+" CURVEPOLYGON Z ((0 0 2,5 0 2,0 5 2,0 0 2),(1 1 2,1 3 2,3 1 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:520
+#, no-c-format
+msgid "ST_LineMerge"
+msgstr "ST_LineMerge"
+
+#. Tag: refpurpose
+#: reference_editor.xml:522
+#, no-c-format
+msgid ""
+"Returns a (set of) LineString(s) formed by sewing together a MULTILINESTRING."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:528
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineMerge</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>amultilinestring</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LineMerge</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>amultilinestring</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:538
+#, no-c-format
+msgid ""
+"Returns a (set of) LineString(s) formed by sewing together the constituent "
+"line work of a MULTILINESTRING."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:540
+#, no-c-format
+msgid ""
+"Only use with MULTILINESTRING/LINESTRINGs. If you feed a polygon or geometry "
+"collection into this function, it will return an empty GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:544
+#, no-c-format
+msgid "requires GEOS >= 2.1.0"
+msgstr "wymaga GEOS >= 2.1.0"
+
+#. Tag: programlisting
+#: reference_editor.xml:550
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LineMerge(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 "
+"-33,-46 -32))')\n"
+"                )\n"
+");\n"
+"st_astext\n"
+"--------------------------------------------------------------------------------------------------\n"
+"LINESTRING(-29 -27,-30 -29.7,-36 -31,-45 -33,-46 -32)\n"
+"(1 row)\n"
+"\n"
+"--If can't be merged - original MULTILINESTRING is returned\n"
+"SELECT ST_AsText(ST_LineMerge(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 "
+"-33.2,-46 -32))')\n"
+")\n"
+");\n"
+"st_astext\n"
+"----------------\n"
+"MULTILINESTRING((-45.2 -33.2,-46 -32),(-29 -27,-30 -29.7,-36 -31,-45 -33))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:554
+#, fuzzy, no-c-format
+msgid ", <xref linkend=\"ST_LineSubstring\"/>"
+msgstr ", <xref linkend=\"ST_Line_Substring\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:560
+#, no-c-format
+msgid "ST_CollectionExtract"
+msgstr "ST_CollectionExtract"
+
+#. Tag: refpurpose
+#: reference_editor.xml:562
+#, no-c-format
+msgid ""
+"Given a (multi)geometry, returns a (multi)geometry consisting only of "
+"elements of the specified type."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:569
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_CollectionExtract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>type</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_CollectionExtract</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>type</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:580
+#, no-c-format
+msgid ""
+"Given a (multi)geometry, returns a (multi)geometry consisting only of "
+"elements of the specified type. Sub-geometries that are not the specified "
+"type are ignored. If there are no sub-geometries of the right type, an EMPTY "
+"geometry will be returned. Only points, lines and polygons are supported. "
+"Type numbers are 1 == POINT, 2 == LINESTRING, 3 == POLYGON."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:586
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr "Dostępność: 1.5.0"
+
+#. Tag: para
+#: reference_editor.xml:588
+#, no-c-format
+msgid ""
+"Prior to 1.5.3 this function returned non-collection inputs untouched, no "
+"matter type. In 1.5.3 non-matching single geometries result in a NULL "
+"return. In of 2.0.0 every case of missing match results in a typed EMPTY "
+"return."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:594 reference_editor.xml:635
+#, no-c-format
+msgid ""
+"When specifying 3 == POLYGON a multipolygon is returned even when the edges "
+"are shared. This results in an invalid multipolygon for many cases such as "
+"applying this function on an <xref linkend=\"ST_Split\"/> result."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:602
+#, no-c-format
+msgid ""
+"-- Constants: 1 == POINT, 2 == LINESTRING, 3 == POLYGON\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 "
+"0)))'),1));\n"
+"st_astext\n"
+"---------------\n"
+"MULTIPOINT(0 0)\n"
+"(1 row)\n"
+"\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(LINESTRING(0 "
+"0, 1 1)),LINESTRING(2 2, 3 3))'),2));\n"
+"st_astext\n"
+"---------------\n"
+"MULTILINESTRING((0 0, 1 1), (2 2, 3 3))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:606
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_CollectionHomogenize\"/>"
+msgstr ""
+", <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_CollectionHomogenize\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:612
+#, no-c-format
+msgid "ST_CollectionHomogenize"
+msgstr "ST_CollectionHomogenize"
+
+#. Tag: refpurpose
+#: reference_editor.xml:614
+#, no-c-format
+msgid ""
+"Given a geometry collection, returns the \"simplest\" representation of the "
+"contents."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:621
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_CollectionHomogenize</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>collection</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:631
+#, no-c-format
+msgid ""
+"Given a geometry collection, returns the \"simplest\" representation of the "
+"contents. Singletons will be returned as singletons. Collections that are "
+"homogeneous will be returned as the appropriate multi-type."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:639
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr "Dostępność: 2.0"
+
+#. Tag: programlisting
+#: reference_editor.xml:646
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 "
+"0))'));        \n"
+"\n"
+"        st_astext\n"
+"        ------------\n"
+"         POINT(0 0)\n"
+"        (1 row)\n"
+"\n"
+"  SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0),"
+"POINT(1 1))'));        \n"
+"\n"
+"        st_astext\n"
+"        ---------------------\n"
+"         MULTIPOINT(0 0,1 1)\n"
+"        (1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:650
+#, no-c-format
+msgid ", <xref linkend=\"ST_CollectionExtract\"/>"
+msgstr ", <xref linkend=\"ST_CollectionExtract\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:656
+#, no-c-format
+msgid "ST_Multi"
+msgstr "ST_Multi"
+
+#. Tag: refpurpose
+#: reference_editor.xml:658
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the geometry as a MULTI* geometry. If the geometry is "
+"already a MULTI*, it is returned unchanged.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:664
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Multi</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:674
+#, no-c-format
+msgid ""
+"<para>Returns the geometry as a MULTI* geometry. If the geometry is already "
+"a MULTI*, it is returned unchanged.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:682
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Multi(ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))')));\n"
+"                        st_astext\n"
+"                        --------------------------------------------------------------------------------------------------\n"
+"                        MULTIPOLYGON(((743238 2967416,743238 2967450,743265 "
+"2967450,743265.625 2967416,\n"
+"                        743238 2967416)))\n"
+"                        (1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:692
+#, no-c-format
+msgid "ST_RemovePoint"
+msgstr "ST_RemovePoint"
+
+#. Tag: refpurpose
+#: reference_editor.xml:693
+#, no-c-format
+msgid "Removes point from a linestring. Offset is 0-based."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:697
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RemovePoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>offset</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:708
+#, no-c-format
+msgid ""
+"Removes point from a linestring. Useful for turning a closed ring into an "
+"open line string"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:715
+#, no-c-format
+msgid ""
+"--guarantee no LINESTRINGS are closed\n"
+"--by removing the end point.  The below assumes the_geom is of type "
+"LINESTRING\n"
+"UPDATE sometable\n"
+"        SET the_geom = ST_RemovePoint(the_geom, ST_NPoints(the_geom) - 1)\n"
+"        FROM sometable\n"
+"        WHERE ST_IsClosed(the_geom) = true;"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:719
+#, no-c-format
+msgid ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>"
+msgstr ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:725
+#, no-c-format
+msgid "ST_Reverse"
+msgstr "ST_Reverse"
+
+#. Tag: refpurpose
+#: reference_editor.xml:726
+#, no-c-format
+msgid "Returns the geometry with vertex order reversed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:731
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Reverse</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Reverse</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:741
+#, no-c-format
+msgid "Can be used on any geometry and reverses the order of the vertexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:746
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom) as line, ST_AsText(ST_Reverse(the_geom)) As "
+"reverseline\n"
+"FROM\n"
+"(SELECT ST_MakeLine(ST_MakePoint(1,2),\n"
+"                ST_MakePoint(1,10)) As the_geom) as foo;\n"
+"--result\n"
+"                line         |     reverseline\n"
+"---------------------+----------------------\n"
+"LINESTRING(1 2,1 10) | LINESTRING(1 10,1 2)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:752
+#, no-c-format
+msgid "ST_Rotate"
+msgstr "ST_Rotate"
+
+#. Tag: refpurpose
+#: reference_editor.xml:754
+#, no-c-format
+msgid "Rotate a geometry rotRadians counter-clockwise about an origin."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:758
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Rotate</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>x0</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>y0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Rotate</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>rotRadians</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>pointOrigin</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Rotate</"
+"function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>x0</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>y0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Rotate</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>rotRadians</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>pointOrigin</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:785
+#, no-c-format
+msgid ""
+"Rotates geometry rotRadians counter-clockwise about the origin. The rotation "
+"origin can be specified either as a POINT geometry, or as x and y "
+"coordinates. If the origin is not specified, the geometry is rotated about "
+"POINT(0 0)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:790
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 additional parameters for specifying the origin of rotation "
+"were added."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:791
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from Rotate to ST_Rotate in 1.2.2"
+msgstr ""
+"Dostępność: 1.1.2. Nazwę zmieniono z Rotate na ST_Rotate w wersji 1.2.2"
+
+#. Tag: programlisting
+#: reference_editor.xml:803
+#, no-c-format
+msgid ""
+"--Rotate 180 degrees\n"
+"SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()));\n"
+"               st_asewkt\n"
+"---------------------------------------\n"
+" LINESTRING(-50 -160,-50 -50,-100 -50)\n"
+"(1 row)\n"
+"\n"
+"--Rotate 30 degrees counter-clockwise at x=50, y=160\n"
+"SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()/6, 50, "
+"160));\n"
+"                                 st_asewkt\n"
+"---------------------------------------------------------------------------\n"
+" LINESTRING(50 160,105 64.7372055837117,148.301270189222 89.7372055837117)\n"
+"(1 row)\n"
+"\n"
+"--Rotate 60 degrees clockwise from centroid\n"
+"SELECT ST_AsEWKT(ST_Rotate(geom, -pi()/3, ST_Centroid(geom)))\n"
+"FROM (SELECT 'LINESTRING (50 160, 50 50, 100 50)'::geometry AS geom) AS "
+"foo;\n"
+"                           st_asewkt\n"
+"--------------------------------------------------------------\n"
+" LINESTRING(116.4225 130.6721,21.1597 75.6721,46.1597 32.3708)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:810
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>, <xref "
+"linkend=\"ST_RotateZ\"/>"
+msgstr ""
+", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>, <xref "
+"linkend=\"ST_RotateZ\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:816
+#, no-c-format
+msgid "ST_RotateX"
+msgstr "ST_RotateX"
+
+#. Tag: refpurpose
+#: reference_editor.xml:818
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the X axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:823
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateX</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:834
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the X axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:836
+#, no-c-format
+msgid ""
+"<code>ST_RotateX(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, "
+"sin(rotRadians), cos(rotRadians), 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:840
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateX to ST_RotateX in 1.2.2"
+msgstr ""
+"Dostępność: 1.1.2. Nazwa zmieniona z RotateX na ST_RotateX w wersji 1.2.2"
+
+#. Tag: programlisting
+#: reference_editor.xml:850
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along x-axis\n"
+"SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(1 -3 2,1 -1 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:857
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
+msgstr ", <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:863
+#, no-c-format
+msgid "ST_RotateY"
+msgstr "ST_RotateY"
+
+#. Tag: refpurpose
+#: reference_editor.xml:865
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the Y axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:870
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateY</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_RotateY</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:881
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the y axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:883
+#, no-c-format
+msgid ""
+"<code>ST_RotateY(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -"
+"sin(rotRadians), 0, cos(rotRadians), 0, 0, 0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:886
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateY to ST_RotateY in 1.2.2"
+msgstr ""
+"Dostępność: 1.1.2. Nazwa zmieniona z RotateY na ST_RotateY w wersji 1.2.2"
+
+#. Tag: programlisting
+#: reference_editor.xml:899
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along y-axis\n"
+" SELECT ST_AsEWKT(ST_RotateY(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(3 2 -1,1 1 -1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:906
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateZ\"/>"
+msgstr ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateZ\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:912
+#, no-c-format
+msgid "ST_RotateZ"
+msgstr "ST_RotateZ"
+
+#. Tag: refpurpose
+#: reference_editor.xml:914
+#, no-c-format
+msgid "Rotate a geometry rotRadians about the Z axis."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:919
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RotateZ</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_RotateZ</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:930
+#, no-c-format
+msgid "Rotate a geometry geomA - rotRadians about the Z axis."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:932
+#, no-c-format
+msgid "This is a synonym for ST_Rotate"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:933
+#, no-c-format
+msgid ""
+"<code>ST_RotateZ(geomA, rotRadians)</code> is short-hand for <code>SELECT "
+"ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), "
+"cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
+msgstr ""
+"<code>ST_RotateZ(geomA, rotRadians)</code> is short-hand for <code>SELECT "
+"ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), "
+"cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
+
+#. Tag: para
+#: reference_editor.xml:938
+#, no-c-format
+msgid "Availability: 1.1.2. Name changed from RotateZ to ST_RotateZ in 1.2.2"
+msgstr ""
+"Dostępność: 1.1.2. Nazwa zmieniona z RotateZ na ST_RotateZ w wersji 1.2.2"
+
+#. Tag: programlisting
+#: reference_editor.xml:951
+#, no-c-format
+msgid ""
+"--Rotate a line 90 degrees along z-axis\n"
+"SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
+"                 st_asewkt\n"
+"---------------------------\n"
+" LINESTRING(-2 1 3,-1 1 1)\n"
+"\n"
+" --Rotate a curved circle around z-axis\n"
+"SELECT ST_AsEWKT(ST_RotateZ(the_geom, pi()/2))\n"
+"FROM (SELECT ST_LineToCurve(ST_Buffer(ST_GeomFromText('POINT(234 567)'), 3)) "
+"As the_geom) As foo;\n"
+"\n"
+"                                                                                                           st_asewkt\n"
+"----------------------------------------------------------------------------------------------------------------------------\n"
+" CURVEPOLYGON(CIRCULARSTRING(-567 237,-564.87867965644 236.12132034356,-564 "
+"234,-569.12132034356 231.87867965644,-567 237))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:958
+#, no-c-format
+msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>"
+msgstr ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:964
+#, no-c-format
+msgid "ST_Scale"
+msgstr "ST_Scale"
+
+#. Tag: refpurpose
+#: reference_editor.xml:966
+#, no-c-format
+msgid ""
+"<refpurpose>Scales the geometry to a new size by multiplying the ordinates "
+"with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:973
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>ZFactor</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Scale</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>XFactor</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>YFactor</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>ZFactor</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Scale</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>XFactor</"
+"parameter></paramdef> <paramdef><type>float</type> <parameter>YFactor</"
+"parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:994
+#, no-c-format
+msgid ""
+"<para>Scales the geometry to a new size by multiplying the ordinates with "
+"the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:998
+#, no-c-format
+msgid ""
+"<code>ST_Scale(geomA, XFactor, YFactor, ZFactor)</code> is short-hand for "
+"<code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, "
+"0)</code>."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1004 reference_editor.xml:1577
+#, no-c-format
+msgid "Availability: 1.1.0."
+msgstr "Dostępność: 1.1.0"
+
+#. Tag: programlisting
+#: reference_editor.xml:1016
+#, no-c-format
+msgid ""
+"--Version 1: scale X, Y, Z\n"
+"SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, "
+"0.75, 0.8));\n"
+"                          st_asewkt\n"
+"--------------------------------------\n"
+" LINESTRING(0.5 1.5 2.4,0.5 0.75 0.8)\n"
+"\n"
+"--Version 2: Scale X Y\n"
+" SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, "
+"0.75));\n"
+"                        st_asewkt\n"
+"----------------------------------\n"
+" LINESTRING(0.5 1.5 3,0.5 0.75 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1023
+#, no-c-format
+msgid ", <xref linkend=\"ST_TransScale\"/>"
+msgstr ", <xref linkend=\"ST_TransScale\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:1029
+#, no-c-format
+msgid "ST_Segmentize"
+msgstr "ST_Segmentize"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1031
+#, no-c-format
+msgid ""
+"Return a modified geometry/geography having no segment longer than the given "
+"distance. Distance computation is performed in 2d only. For geometry, length "
+"units are in units of spatial reference. For geography, units are in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1037
+#, fuzzy, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geography "
+"<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
+"type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
+"type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:1054
+#, no-c-format
+msgid ""
+"Returns a modified geometry having no segment longer than the given "
+"<varname>max_segment_length</varname>. Distance computation is performed in "
+"2d only. For geometry, length units are in units of spatial reference. For "
+"geography, units are in meters."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1057 reference_editor.xml:1518
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr "Dostępność: 1.2.2"
+
+#. Tag: para
+#: reference_editor.xml:1058
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1059
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 As a result of the introduction of geography support: The "
+"construct <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</code> "
+"will result in ambiguous function error. You need to have properly typed "
+"object e.g. a geometry/geography column, use ST_GeomFromText, "
+"ST_GeogFromText or <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)'::"
+"geometry,0.5);</code>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1061
+#, no-c-format
+msgid ""
+"This will only increase segments. It will not lengthen segments shorter than "
+"max length"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1068
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Segmentize(\n"
+"ST_GeomFromText('MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45 "
+"-33,-46 -32))')\n"
+"                ,5)\n"
+");\n"
+"st_astext\n"
+"--------------------------------------------------------------------------------------------------\n"
+"MULTILINESTRING((-29 -27,-30 -29.7,-34.886615700134 -30.758766735029,-36 "
+"-31,\n"
+"-40.8809353009198 -32.0846522890933,-45 -33),\n"
+"(-45 -33,-46 -32))\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_Segmentize(ST_GeomFromText('POLYGON((-29 28, -30 40, -29 "
+"28))'),10));\n"
+"st_astext\n"
+"-----------------------\n"
+"POLYGON((-29 28,-29.8304547985374 37.9654575824488,-30 40,-29.1695452014626 "
+"30.0345424175512,-29 28))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:1078
+#, no-c-format
+msgid "ST_SetPoint"
+msgstr "ST_SetPoint"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1079
+#, no-c-format
+msgid "Replace point N of linestring with given point. Index is 0-based."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1084
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SetPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>zerobasedposition</parameter></"
+"paramdef> <paramdef><type>geometry</type> <parameter>point</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_SetPoint</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>zerobasedposition</parameter></"
+"paramdef> <paramdef><type>geometry</type> <parameter>point</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1096
+#, no-c-format
+msgid ""
+"Replace point N of linestring with given point. Index is 0-based. This is "
+"especially useful in triggers when trying to maintain relationship of joints "
+"when one vertex moves."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1106
+#, no-c-format
+msgid ""
+"--Change first point in line string from -1 3 to -1 1\n"
+"SELECT ST_AsText(ST_SetPoint('LINESTRING(-1 2,-1 3)', 0, 'POINT(-1 1)'));\n"
+"           st_astext\n"
+"-----------------------\n"
+" LINESTRING(-1 1,-1 3)\n"
+"\n"
+"---Change last point in a line string (lets play with 3d linestring this "
+"time)\n"
+"SELECT ST_AsEWKT(ST_SetPoint(foo.the_geom, ST_NumPoints(foo.the_geom) - 1, "
+"ST_GeomFromEWKT('POINT(-1 1 3)')))\n"
+"FROM (SELECT ST_GeomFromEWKT('LINESTRING(-1 2 3,-1 3 4, 5 6 7)') As "
+"the_geom) As foo;\n"
+"           st_asewkt\n"
+"-----------------------\n"
+"LINESTRING(-1 2 3,-1 3 4,-1 1 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1110
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>, <xref "
+"linkend=\"ST_PointN\"/>, <xref linkend=\"ST_RemovePoint\"/>"
+msgstr ""
+", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>, <xref "
+"linkend=\"ST_PointN\"/>, <xref linkend=\"ST_RemovePoint\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:1116
+#, no-c-format
+msgid "ST_SetSRID"
+msgstr "ST_SetSRID"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1118
+#, no-c-format
+msgid "Sets the SRID on a geometry to a particular integer value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1124
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1139
+#, no-c-format
+msgid ""
+"Sets the SRID on a geometry to a particular integer value. Useful in "
+"constructing bounding boxes for queries."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1143
+#, no-c-format
+msgid ""
+"This function does not transform the geometry coordinates in any way - it "
+"simply sets the meta data defining the spatial reference system the geometry "
+"is assumed to be in. Use <xref linkend=\"ST_Transform\"/> if you want to "
+"transform the geometry into a new projection."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1148
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr "&sfs_compliant;"
+
+#. Tag: para
+#: reference_editor.xml:1154
+#, no-c-format
+msgid "-- Mark a point as WGS 84 long lat --"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1155
+#, no-c-format
+msgid ""
+"SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) As wgs84long_lat;\n"
+"-- the ewkt representation (wrap with ST_AsEWKT) -\n"
+"SRID=4326;POINT(-123.365556 48.428611)"
+msgstr ""
+"SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) As wgs84long_lat;\n"
+"-- the ewkt representation (wrap with ST_AsEWKT) -\n"
+"SRID=4326;POINT(-123.365556 48.428611)"
+
+#. Tag: para
+#: reference_editor.xml:1156
+#, no-c-format
+msgid ""
+"-- Mark a point as WGS 84 long lat and then transform to web mercator "
+"(Spherical Mercator) --"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1157
+#, no-c-format
+msgid ""
+"SELECT ST_Transform(ST_SetSRID(ST_Point(-123.365556, 48.428611),4326),3785) "
+"As spere_merc;\n"
+"-- the ewkt representation (wrap with ST_AsEWKT) -\n"
+"SRID=3785;POINT(-13732990.8753491 6178458.96425423)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1163
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_SRID\"/>, <xref linkend=\"ST_Transform\"/>, <xref linkend="
+"\"UpdateGeometrySRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_SRID\"/>, <xref linkend=\"ST_Transform\"/>, <xref linkend="
+"\"UpdateGeometrySRID\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:1170
+#, no-c-format
+msgid "ST_SnapToGrid"
+msgstr "ST_SnapToGrid"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1172
+#, no-c-format
+msgid "Snap all points of the input geometry to a regular grid."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1178
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_SnapToGrid</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originY</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeY</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>size</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_SnapToGrid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>pointOrigin</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeZ</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeM</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_SnapToGrid</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>originY</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeX</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>sizeY</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>geometry </"
+"type> <parameter>geomA</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>size</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_SnapToGrid</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>pointOrigin</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeY</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeZ</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>sizeM</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:1216
+#, no-c-format
+msgid ""
+"Variant 1,2,3: Snap all points of the input geometry to the grid defined by "
+"its origin and cell size. Remove consecutive points falling on the same "
+"cell, eventually returning NULL if output points are not enough to define a "
+"geometry of the given type. Collapsed geometries in a collection are "
+"stripped from it. Useful for reducing precision."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1224
+#, no-c-format
+msgid ""
+"Variant 4: Introduced 1.1.0 - Snap all points of the input geometry to the "
+"grid defined by its origin (the second argument, must be a point) and cell "
+"sizes. Specify 0 as size for any dimension you don't want to snap to a grid."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1230
+#, no-c-format
+msgid ""
+"The returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1235
+#, no-c-format
+msgid ""
+"Before release 1.1.0 this function always returned a 2d geometry. Starting "
+"at 1.1.0 the returned geometry will have same dimensionality as the input "
+"one with higher dimension values untouched. Use the version taking a second "
+"geometry argument to define all grid dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1242
+#, no-c-format
+msgid "Availability: 1.0.0RC1"
+msgstr "Dostępność: 1.0.0RC1"
+
+#. Tag: para
+#: reference_editor.xml:1243
+#, no-c-format
+msgid "Availability: 1.1.0 - Z and M support"
+msgstr "Dostępność: 1.1.0 - wsparcie dla Z i M"
+
+#. Tag: programlisting
+#: reference_editor.xml:1252
+#, no-c-format
+msgid ""
+"--Snap your geometries to a precision grid of 10^-3\n"
+"UPDATE mytable\n"
+"   SET the_geom = ST_SnapToGrid(the_geom, 0.001);\n"
+"\n"
+"SELECT ST_AsText(ST_SnapToGrid(\n"
+"                        ST_GeomFromText('LINESTRING(1.1115678 2.123, "
+"4.111111 3.2374897, 4.11112 3.23748667)'),\n"
+"                        0.001)\n"
+"                );\n"
+"                          st_astext\n"
+"-------------------------------------\n"
+" LINESTRING(1.112 2.123,4.111 3.237)\n"
+" --Snap a 4d geometry\n"
+"SELECT ST_AsEWKT(ST_SnapToGrid(\n"
+"        ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 2.3456 1.11111,\n"
+"                4.111111 3.2374897 3.1234 1.1111, -1.11111112 2.123 2.3456 "
+"1.1111112)'),\n"
+" ST_GeomFromEWKT('POINT(1.12 2.22 3.2 4.4444)'),\n"
+" 0.1, 0.1, 0.1, 0.01) );\n"
+"                                                                  st_asewkt\n"
+"------------------------------------------------------------------------------\n"
+" LINESTRING(-1.08 2.12 2.3 1.1144,4.12 3.22 3.1 1.1144,-1.08 2.12 2.3 "
+"1.1144)\n"
+"\n"
+"\n"
+"--With a 4d geometry - the ST_SnapToGrid(geom,size) only touches x and y "
+"coords but keeps m and z the same\n"
+"SELECT ST_AsEWKT(ST_SnapToGrid(ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 "
+"3 2.3456,\n"
+"                4.111111 3.2374897 3.1234 1.1111)'),\n"
+"           0.01)      );\n"
+"                                                st_asewkt\n"
+"---------------------------------------------------------\n"
+" LINESTRING(-1.11 2.12 3 2.3456,4.11 3.24 3.1234 1.1111)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1259
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_Simplify\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
+"linkend=\"ST_Simplify\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:1272
+#, no-c-format
+msgid "ST_Snap"
+msgstr "ST_Snap"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1274
+#, no-c-format
+msgid ""
+"Snap segments and vertices of input geometry to vertices of a reference "
+"geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1282
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Snap</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>reference</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Snap</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>reference</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1294
+#, no-c-format
+msgid ""
+"Snaps the vertices and segments of a geometry another Geometry's vertices. A "
+"snap distance tolerance is used to control where snapping is performed."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1299
+#, no-c-format
+msgid ""
+"Snapping one geometry to another can improve robustness for overlay "
+"operations by eliminating nearly-coincident edges (which cause problems "
+"during noding and intersection calculation)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1306
+#, no-c-format
+msgid ""
+"Too much snapping can result in invalid topology being created, so the "
+"number and location of snapped vertices is decided using heuristics to "
+"determine when it is safe to snap. This can result in some potential snaps "
+"being omitted, however."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1315
+#, no-c-format
+msgid ""
+"The returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>) and validity (see <xref linkend=\"ST_IsValid\"/>)."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1322
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr "Dostępność: 2.0.0 wymaga GEOS >= 3.3.0."
+
+#. Tag: para
+#: reference_editor.xml:1339
+#, no-c-format
+msgid "A multipolygon shown with a linestring (before any snapping)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1350
+#, no-c-format
+msgid ""
+"A multipolygon snapped to linestring to tolerance: 1.01 of distance. The new "
+"multipolygon is shown with reference linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1354
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Snap(poly,line, ST_Distance(poly,line)*1.01)) AS "
+"polysnapped\n"
+"FROM (SELECT \n"
+"   ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )), \n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+" MULTIPOLYGON(((26 125,26 200,126 200,126 125,101 100,26 125),\n"
+" (51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+msgstr ""
+"SELECT ST_AsText(ST_Snap(poly,line, ST_Distance(poly,line)*1.01)) AS "
+"polysnapped\n"
+"FROM (SELECT \n"
+"   ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )), \n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+" MULTIPOLYGON(((26 125,26 200,126 200,126 125,101 100,26 125),\n"
+" (51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+
+#. Tag: para
+#: reference_editor.xml:1361
+#, no-c-format
+msgid ""
+"A multipolygon snapped to linestring to tolerance: 1.25 of distance. The new "
+"multipolygon is shown with reference linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1365
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"    ST_Snap(poly,line, ST_Distance(poly,line)*1.25)\n"
+"  ) AS polysnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"    (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )),\n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+"MULTIPOLYGON(((5 107,26 200,126 200,126 125,101 100,54 84,5 107),\n"
+"(51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+msgstr ""
+"SELECT ST_AsText(\n"
+"    ST_Snap(poly,line, ST_Distance(poly,line)*1.25)\n"
+"  ) AS polysnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"    (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      ( 51 150, 101 150, 76 175, 51 150 )),\n"
+"      (( 151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"                \n"
+"        ) As foo;\n"
+"\n"
+"                             polysnapped\n"
+"---------------------------------------------------------------------\n"
+"MULTIPOLYGON(((5 107,26 200,126 200,126 125,101 100,54 84,5 107),\n"
+"(51 150,101 150,76 175,51 150)),((151 100,151 200,176 175,151 100)))"
+
+#. Tag: para
+#: reference_editor.xml:1374
+#, no-c-format
+msgid ""
+"The linestring snapped to the original multipolygon at tolerance 1.01 of "
+"distance. The new linestring is shown with reference multipolygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1378
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"   ST_Snap(line, poly, ST_Distance(poly,line)*1.01)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100)))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"        ) As foo;\n"
+"\n"
+"              linesnapped\n"
+"----------------------------------------\n"
+" LINESTRING(5 107,26 125,54 84,101 100)"
+msgstr ""
+"SELECT ST_AsText(\n"
+"   ST_Snap(line, poly, ST_Distance(poly,line)*1.01)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     ((26 125, 26 200, 126 200, 126 125, 26 125),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100)))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As line\n"
+"        ) As foo;\n"
+"\n"
+"              linesnapped\n"
+"----------------------------------------\n"
+" LINESTRING(5 107,26 125,54 84,101 100)"
+
+#. Tag: para
+#: reference_editor.xml:1386
+#, no-c-format
+msgid ""
+"The linestring snapped to the original multipolygon at tolerance 1.25 of "
+"distance. The new linestring is shown with reference multipolygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1390
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+" ST_Snap(line, poly, ST_Distance(poly,line)*1.25)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As "
+"line        \n"
+"        ) As foo;\n"
+"              linesnapped\n"
+"---------------------------------------\n"
+"LINESTRING(26 125,54 84,101 100)"
+msgstr ""
+"SELECT ST_AsText(\n"
+" ST_Snap(line, poly, ST_Distance(poly,line)*1.25)\n"
+"  ) AS linesnapped\n"
+"FROM (SELECT \n"
+"  ST_GeomFromText('MULTIPOLYGON(\n"
+"     (( 26 125, 26 200, 126 200, 126 125, 26 125 ),\n"
+"      (51 150, 101 150, 76 175, 51 150 )), \n"
+"      ((151 100, 151 200, 176 175, 151 100 )))') As poly,\n"
+"       ST_GeomFromText('LINESTRING (5 107, 54 84, 101 100)') As "
+"line        \n"
+"        ) As foo;\n"
+"              linesnapped\n"
+"---------------------------------------\n"
+"LINESTRING(26 125,54 84,101 100)"
+
+#. Tag: refname
+#: reference_editor.xml:1411
+#, no-c-format
+msgid "ST_Transform"
+msgstr "ST_Transform"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1413
+#, no-c-format
+msgid ""
+"Returns a new geometry with its coordinates transformed to the SRID "
+"referenced by the integer parameter."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1419
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Transform</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Transform</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1430
+#, no-c-format
+msgid ""
+"Returns a new geometry with its coordinates transformed to spatial reference "
+"system referenced by the SRID integer parameter. The destination SRID must "
+"exist in the <varname>SPATIAL_REF_SYS</varname> table."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1433
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a geometry from one spatial reference system to "
+"another, while ST_SetSRID() simply changes the SRID identifier of the "
+"geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1438
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with Proj support. Use <xref linkend="
+"\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1442
+#, no-c-format
+msgid ""
+"If using more than one transformation, it is useful to have a functional "
+"index on the commonly used transformations to take advantage of index usage."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1449
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.6"
+msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.6"
+
+#. Tag: para
+#: reference_editor.xml:1457
+#, no-c-format
+msgid "Change Mass state plane US feet geometry to WGS 84 long lat"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1458
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Transform(ST_GeomFromText('POLYGON((743238 "
+"2967416,743238 2967450,\n"
+"        743265 2967450,743265.625 2967416,743238 2967416))',2249),4326)) As "
+"wgs_geom;\n"
+"\n"
+" wgs_geom\n"
+"---------------------------\n"
+" POLYGON((-71.1776848522251 42.3902896512902,-71.1776843766326 "
+"42.3903829478009,\n"
+"-71.1775844305465 42.3903826677917,-71.1775825927231 "
+"42.3902893647987,-71.177684\n"
+"8522251 42.3902896512902));\n"
+"(1 row)\n"
+"\n"
+"--3D Circular String example\n"
+"SELECT ST_AsEWKT(ST_Transform(ST_GeomFromEWKT('SRID=2249;"
+"CIRCULARSTRING(743238 2967416 1,743238 2967450 2,743265 2967450 3,743265.625 "
+"2967416 3,743238 2967416 4)'),4326));\n"
+"\n"
+"                                 st_asewkt\n"
+"--------------------------------------------------------------------------------------\n"
+" SRID=4326;CIRCULARSTRING(-71.1776848522251 42.3902896512902 "
+"1,-71.1776843766326 42.3903829478009 2,\n"
+" -71.1775844305465 42.3903826677917 3,\n"
+" -71.1775825927231 42.3902893647987 3,-71.1776848522251 42.3902896512902 4)"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1459
+#, no-c-format
+msgid ""
+"Example of creating a partial functional index. For tables where you are not "
+"sure all the geometries will be filled in, its best to use a partial index "
+"that leaves out null geometries which will both conserve space and make your "
+"index smaller and more efficient."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1461
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_the_geom_26986_parcels\n"
+"  ON parcels\n"
+"  USING gist\n"
+"  (ST_Transform(the_geom, 26986))\n"
+"  WHERE the_geom IS NOT NULL;"
+msgstr ""
+"CREATE INDEX idx_the_geom_26986_parcels\n"
+"  ON parcels\n"
+"  USING gist\n"
+"  (ST_Transform(the_geom, 26986))\n"
+"  WHERE the_geom IS NOT NULL;"
+
+#. Tag: title
+#: reference_editor.xml:1465
+#, no-c-format
+msgid "Configuring transformation behaviour"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1466
+#, no-c-format
+msgid ""
+"Sometimes coordinate transformation involving a grid-shift can fail, for "
+"example if PROJ.4 has not been built with grid-shift files or the coordinate "
+"does not lie within the range for which the grid shift is defined. By "
+"default, PostGIS will throw an error if a grid shift file is not present, "
+"but this behaviour can be configured on a per-SRID basis by altering the "
+"proj4text value within the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1467
+#, no-c-format
+msgid ""
+"For example, the proj4text parameter +datum=NAD87 is a shorthand form for "
+"the following +nadgrids parameter:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1468
+#, no-c-format
+msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat"
+msgstr "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat"
+
+#. Tag: para
+#: reference_editor.xml:1469
+#, no-c-format
+msgid ""
+"The @ prefix means no error is reported if the files are not present, but if "
+"the end of the list is reached with no file having been appropriate (ie. "
+"found and overlapping) then an error is issued."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1470
+#, no-c-format
+msgid ""
+"If, conversely, you wanted to ensure that at least the standard files were "
+"present, but that if all files were scanned without a hit a null "
+"transformation is applied you could use:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1471
+#, no-c-format
+msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null"
+msgstr "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null"
+
+#. Tag: para
+#: reference_editor.xml:1472
+#, no-c-format
+msgid ""
+"The null grid shift file is a valid grid shift file covering the whole world "
+"and applying no shift. So for a complete example, if you wanted to alter "
+"PostGIS so that transformations to SRID 4267 that didn't lie within the "
+"correct range did not throw an ERROR, you would use the following:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1473
+#, no-c-format
+msgid ""
+"UPDATE spatial_ref_sys SET proj4text = '+proj=longlat +ellps=clrk66 "
+"+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null +no_defs' WHERE srid "
+"= 4267;"
+msgstr ""
+"UPDATE spatial_ref_sys SET proj4text = '+proj=longlat +ellps=clrk66 "
+"+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null +no_defs' WHERE srid "
+"= 4267;"
+
+#. Tag: para
+#: reference_editor.xml:1480
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"UpdateGeometrySRID\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"UpdateGeometrySRID\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:1486
+#, no-c-format
+msgid "ST_Translate"
+msgstr "ST_Translate"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1488
+#, no-c-format
+msgid ""
+"Translates the geometry to a new location using the numeric parameters as "
+"offsets. Ie: ST_Translate(geom, X, Y) or ST_Translate(geom, X, Y,Z)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:1493
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Translate</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltax</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltay</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Translate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltax</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltay</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltaz</parameter></paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>geometry <function>ST_Translate</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltax</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>deltay</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Translate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltax</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltay</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>deltaz</parameter></paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_editor.xml:1513
+#, no-c-format
+msgid ""
+"Returns a new geometry whose coordinates are translated delta x,delta y,"
+"delta z units. Units are based on the units defined in spatial reference "
+"(SRID) for this geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1525
+#, no-c-format
+msgid "Move a point 1 degree longitude"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1526
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 "
+"42.37)',4326),1,0)) As wgs_transgeomtxt;\n"
+"\n"
+"        wgs_transgeomtxt\n"
+"        ---------------------\n"
+"        POINT(-70.01 42.37)"
+msgstr ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 "
+"42.37)',4326),1,0)) As wgs_transgeomtxt;\n"
+"\n"
+"        wgs_transgeomtxt\n"
+"        ---------------------\n"
+"        POINT(-70.01 42.37)"
+
+#. Tag: para
+#: reference_editor.xml:1527
+#, no-c-format
+msgid "Move a linestring 1 degree longitude and 1/2 degree latitude"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1528
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 "
+"42.37,-71.11 42.38)',4326),1,0.5)) As wgs_transgeomtxt;\n"
+"                   wgs_transgeomtxt\n"
+"        ---------------------------------------\n"
+"        LINESTRING(-70.01 42.87,-70.11 42.88)"
+msgstr ""
+"SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 "
+"42.37,-71.11 42.38)',4326),1,0.5)) As wgs_transgeomtxt;\n"
+"                   wgs_transgeomtxt\n"
+"        ---------------------------------------\n"
+"        LINESTRING(-70.01 42.87,-70.11 42.88)"
+
+#. Tag: para
+#: reference_editor.xml:1529
+#, no-c-format
+msgid "Move a 3d point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1530
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' As geometry), 5, 12,3));\n"
+"        st_asewkt\n"
+"        ---------\n"
+"        POINT(5 12 3)"
+msgstr ""
+"SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' As geometry), 5, 12,3));\n"
+"        st_asewkt\n"
+"        ---------\n"
+"        POINT(5 12 3)"
+
+#. Tag: para
+#: reference_editor.xml:1531
+#, no-c-format
+msgid "Move a curve and a point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1532
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Translate(ST_Collect('CURVEPOLYGON(CIRCULARSTRING(4 "
+"3,3.12 0.878,1 0,-1.121 5.1213,6 7, 8 9,4 3))','POINT(1 3)'),1,2));\n"
+"                                                                                                                 st_astext\n"
+"------------------------------------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CURVEPOLYGON(CIRCULARSTRING(5 5,4.12 2.878,2 2,-0.121 "
+"7.1213,7 9,9 11,5 5)),POINT(2 5))"
+msgstr ""
+"SELECT ST_AsText(ST_Translate(ST_Collect('CURVEPOLYGON(CIRCULARSTRING(4 "
+"3,3.12 0.878,1 0,-1.121 5.1213,6 7, 8 9,4 3))','POINT(1 3)'),1,2));\n"
+"                                                                                                                 st_astext\n"
+"------------------------------------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CURVEPOLYGON(CIRCULARSTRING(5 5,4.12 2.878,2 2,-0.121 "
+"7.1213,7 9,9 11,5 5)),POINT(2 5))"
+
+#. Tag: para
+#: reference_editor.xml:1538
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+
+#. Tag: refname
+#: reference_editor.xml:1544
+#, no-c-format
+msgid "ST_TransScale"
+msgstr "ST_TransScale"
+
+#. Tag: refpurpose
+#: reference_editor.xml:1546
+#, no-c-format
+msgid ""
+"<refpurpose>Translates the geometry using the deltaX and deltaY args, then "
+"scales it using the XFactor, YFactor args, working in 2D only.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:1553
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_TransScale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaX</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaY</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_TransScale</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaX</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>deltaY</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef>"
+
+#. Tag: para
+#: reference_editor.xml:1567
+#, no-c-format
+msgid ""
+"<para>Translates the geometry using the deltaX and deltaY args, then scales "
+"it using the XFactor, YFactor args, working in 2D only.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1570
+#, no-c-format
+msgid ""
+"<code>ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor)</code> is short-"
+"hand for <code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, "
+"deltaX*XFactor, deltaY*YFactor, 0)</code>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:1586
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_TransScale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"0.5, 1, 1, 2));\n"
+"                  st_asewkt\n"
+"-----------------------------\n"
+" LINESTRING(1.5 6 3,1.5 4 1)\n"
+"\n"
+"\n"
+"--Buffer a point to get an approximation of a circle, convert to curve and "
+"then translate 1,2 and scale it 3,4\n"
+"  SELECT ST_AsText(ST_Transscale(ST_LineToCurve(ST_Buffer('POINT(234 567)', "
+"3)),1,2,3,4));\n"
+"                                                                                                                  st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" CURVEPOLYGON(CIRCULARSTRING(714 2276,711.363961030679 2267.51471862576,705 "
+"2264,698.636038969321 2284.48528137424,714 2276))"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:1593
+#, no-c-format
+msgid ", <xref linkend=\"ST_Translate\"/>"
+msgstr ", <xref linkend=\"ST_Translate\"/>"
diff --git a/doc/po/pl/reference_exception.xml.po b/doc/po/pl/reference_exception.xml.po
new file mode 100644
index 0000000..f0d4d7e
--- /dev/null
+++ b/doc/po/pl/reference_exception.xml.po
@@ -0,0 +1,238 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Jakub Bobrowski <jb at 5dstudio.pl>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2014-01-03 08:07+0000\n"
+"Last-Translator: Jakub Bobrowski <jb at 5dstudio.pl>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_exception.xml:3
+#, no-c-format
+msgid "Exceptional Functions"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:4
+#, no-c-format
+msgid ""
+"These functions are rarely used functions that should only be used if your "
+"data is corrupted in someway. They are used for troubleshooting corruption "
+"and also fixing things that should under normal circumstances, never happen."
+msgstr ""
+
+#. Tag: refname
+#: reference_exception.xml:9
+#, no-c-format
+msgid "PostGIS_AddBBox"
+msgstr "PostGIS_AddBBox"
+
+#. Tag: refpurpose
+#: reference_exception.xml:11
+#, no-c-format
+msgid "Add bounding box to the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_exception.xml:16
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>PostGIS_AddBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>PostGIS_AddBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: title
+#: reference_exception.xml:24 reference_exception.xml:70
+#: reference_exception.xml:119
+#, no-c-format
+msgid "Description"
+msgstr "Opis"
+
+#. Tag: para
+#: reference_exception.xml:26
+#, no-c-format
+msgid ""
+"Add bounding box to the geometry. This would make bounding box based queries "
+"faster, but will increase the size of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:31
+#, no-c-format
+msgid ""
+"Bounding boxes are automatically added to geometries so in general this is "
+"not needed unless the generated bounding box somehow becomes corrupted or "
+"you have an old install that is lacking bounding boxes. Then you need to "
+"drop the old and readd."
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:35 reference_exception.xml:83
+#: reference_exception.xml:124
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: title
+#: reference_exception.xml:40 reference_exception.xml:88
+#: reference_exception.xml:129
+#, no-c-format
+msgid "Examples"
+msgstr "Przykłady"
+
+#. Tag: programlisting
+#: reference_exception.xml:42
+#, no-c-format
+msgid ""
+"UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE PostGIS_HasBBox(the_geom) = false;"
+msgstr ""
+"UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE PostGIS_HasBBox(the_geom) = false;"
+
+#. Tag: title
+#: reference_exception.xml:47 reference_exception.xml:95
+#: reference_exception.xml:136
+#, no-c-format
+msgid "See Also"
+msgstr "Zobacz także"
+
+#. Tag: para
+#: reference_exception.xml:49
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_HasBBox\"/>"
+msgstr ", <xref linkend=\"PostGIS_HasBBox\"/>"
+
+#. Tag: refname
+#: reference_exception.xml:55
+#, no-c-format
+msgid "PostGIS_DropBBox"
+msgstr "PostGIS_DropBBox"
+
+#. Tag: refpurpose
+#: reference_exception.xml:57
+#, no-c-format
+msgid "Drop the bounding box cache from the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_exception.xml:62
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>PostGIS_DropBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>PostGIS_DropBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_exception.xml:72
+#, no-c-format
+msgid ""
+"Drop the bounding box cache from the geometry. This reduces geometry size, "
+"but makes bounding-box based queries slower. It is also used to drop a "
+"corrupt bounding box. A tale-tell sign of a corrupt cached bounding box is "
+"when your ST_Intersects and other relation queries leave out geometries that "
+"rightfully should return true."
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:77
+#, no-c-format
+msgid ""
+"Bounding boxes are automatically added to geometries and improve speed of "
+"queries so in general this is not needed unless the generated bounding box "
+"somehow becomes corrupted or you have an old install that is lacking "
+"bounding boxes. Then you need to drop the old and readd. This kind of "
+"corruption has been observed in 8.3-8.3.6 series whereby cached bboxes were "
+"not always recalculated when a geometry changed and upgrading to a newer "
+"version without a dump reload will not correct already corrupted boxes. So "
+"one can manually correct using below and readd the bbox or do a dump reload."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_exception.xml:90
+#, no-c-format
+msgid ""
+"--This example drops bounding boxes where the cached box is not correct\n"
+"                        --The force to ST_AsBinary before applying Box2D "
+"forces a recalculation of the box, and Box2D applied to the table geometry "
+"always\n"
+"                        -- returns the cached bounding box.\n"
+"                        UPDATE sometable\n"
+" SET the_geom =  PostGIS_DropBBox(the_geom)\n"
+" WHERE Not (Box2D(ST_AsBinary(the_geom)) = Box2D(the_geom));\n"
+"\n"
+"        UPDATE sometable\n"
+" SET the_geom =  PostGIS_AddBBox(the_geom)\n"
+" WHERE Not PostGIS_HasBBOX(the_geom);"
+msgstr ""
+
+#. Tag: para
+#: reference_exception.xml:97
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_HasBBox\"/>, <xref linkend=\"Box2D\"/>"
+msgstr ", <xref linkend=\"PostGIS_HasBBox\"/>, <xref linkend=\"Box2D\"/>"
+
+#. Tag: refname
+#: reference_exception.xml:104
+#, no-c-format
+msgid "PostGIS_HasBBox"
+msgstr "PostGIS_HasBBox"
+
+#. Tag: refpurpose
+#: reference_exception.xml:106
+#, no-c-format
+msgid "Returns TRUE if the bbox of this geometry is cached, FALSE otherwise."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_exception.xml:111
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>PostGIS_HasBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+"<funcdef>boolean <function>PostGIS_HasBBox</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+
+#. Tag: para
+#: reference_exception.xml:121
+#, no-c-format
+msgid ""
+"Returns TRUE if the bbox of this geometry is cached, FALSE otherwise. Use "
+"<xref linkend=\"PostGIS_AddBBox\"/> and <xref linkend=\"PostGIS_DropBBox\"/> "
+"to control caching."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_exception.xml:131
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM sometable WHERE PostGIS_HasBBox(the_geom) = false;"
+msgstr ""
+"SELECT the_geom\n"
+"FROM sometable WHERE PostGIS_HasBBox(the_geom) = false;"
+
+#. Tag: para
+#: reference_exception.xml:138
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_DropBBox\"/>"
+msgstr ", <xref linkend=\"PostGIS_DropBBox\"/>"
diff --git a/doc/po/pl/reference_guc.xml.po b/doc/po/pl/reference_guc.xml.po
new file mode 100644
index 0000000..d93022a
--- /dev/null
+++ b/doc/po/pl/reference_guc.xml.po
@@ -0,0 +1,409 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-10-13 17:58+0000\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: para
+#: reference_guc.xml:5
+#, no-c-format
+msgid ""
+"This section lists custom PostGIS Grand Unified Custom Variables(GUC). These "
+"can be set globally, by database, by session or by transaction. Best set at "
+"global or database level."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:8
+#, no-c-format
+msgid "PostGIS Grand Unified Custom Variables (GUCs)"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:12
+#, no-c-format
+msgid "postgis.backend"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:13
+#, no-c-format
+msgid ""
+"The backend to service a function where GEOS and SFCGAL overlap. Options: "
+"geos or sfcgal. Defaults to geos."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:17 reference_guc.xml:45 reference_guc.xml:95
+#: reference_guc.xml:180
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:18
+#, no-c-format
+msgid ""
+"This GUC is only relevant if you compiled PostGIS with sfcgal support. By "
+"default <varname>geos</varname> backend is used for functions where both "
+"GEOS and SFCGAL have the same named function. This variable allows you to "
+"override and make sfcgal the backend to service the request."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:19
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:23 reference_guc.xml:69 reference_guc.xml:146
+#: reference_guc.xml:206
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:24
+#, no-c-format
+msgid "Sets backend just for life of connection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:25
+#, no-c-format
+msgid "set postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:27
+#, no-c-format
+msgid "Sets backend for new connections to database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:28
+#, no-c-format
+msgid "ALTER DATABASE mygisdb SET postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:31 reference_guc.xml:79 reference_guc.xml:159
+#: reference_guc.xml:213
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:38
+#, no-c-format
+msgid "postgis.gdal_datapath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:39
+#, no-c-format
+msgid ""
+"A configuration option to assign the value of GDAL's GDAL_DATA option. If "
+"not set, the environmentally set GDAL_DATA variable is used."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:46
+#, no-c-format
+msgid ""
+"A PostgreSQL GUC variable for setting the value of GDAL's GDAL_DATA option. "
+"The <varname>postgis.gdal_datapath</varname> value should be the complete "
+"physical path to GDAL's data files."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:49
+#, no-c-format
+msgid ""
+"This configuration option is of most use for Windows platforms where GDAL's "
+"data files path is not hard-coded. This option should also be set when "
+"GDAL's data files are not located in GDAL's expected path."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:54
+#, no-c-format
+msgid ""
+"This option can be set in PostgreSQL's configuration file postgresql.conf. "
+"It can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:58 reference_guc.xml:141 reference_guc.xml:201
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:61
+#, no-c-format
+msgid ""
+"Additional information about GDAL_DATA is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:70
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_datapath</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:72
+#, no-c-format
+msgid ""
+"SET postgis.gdal_datapath TO '/usr/local/share/gdal.hidden';\n"
+"SET postgis.gdal_datapath TO default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:74
+#, no-c-format
+msgid "Setting on windows for a particular database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:75
+#, no-c-format
+msgid ""
+"ALTER DATABASE gisdb\n"
+"SET postgis.gdal_datapath = 'C:/Program Files/PostgreSQL/9.3/gdal-data';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:80
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:88
+#, no-c-format
+msgid "postgis.gdal_enabled_drivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:89
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:96
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP. This option "
+"can be set in PostgreSQL's configuration file: postgresql.conf. It can also "
+"be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:100
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.gdal_enabled_drivers</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_GDAL_ENABLED_DRIVERS</varname> with the list of enabled "
+"drivers to the process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:104
+#, no-c-format
+msgid ""
+"Enabled GDAL specified drivers can be specified by the driver's short-name "
+"or code. Driver short-names or codes can be found at <ulink url=\"http://www."
+"gdal.org/formats_list.html\">GDAL Raster Formats</ulink>. Multiple drivers "
+"can be specified by putting a space between each driver."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:109
+#, no-c-format
+msgid ""
+"There are three special codes available for <varname>postgis."
+"gdal_enabled_drivers</varname>. The codes are case-sensitive."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:114
+#, no-c-format
+msgid ""
+"<varname>DISABLE_ALL</varname> disables all GDAL drivers. If present, "
+"<varname>DISABLE_ALL</varname> overrides all other values in "
+"<varname>postgis.gdal_enabled_drivers</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:117
+#, no-c-format
+msgid "<varname>ENABLE_ALL</varname> enables all GDAL drivers."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:120
+#, no-c-format
+msgid ""
+"<varname>VSICURL</varname> enables GDAL's <varname>/vsicurl/</varname> "
+"virtual file system."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:124
+#, no-c-format
+msgid ""
+"When <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL, "
+"attempts to use out-db rasters, ST_FromGDALRaster(), ST_AsGDALRaster(), "
+"ST_AsTIFF(), ST_AsJPEG() and ST_AsPNG() will result in error messages."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:130
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.gdal_enabled_drivers</"
+"varname> is set to DISABLE_ALL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:136
+#, no-c-format
+msgid ""
+"Additional information about GDAL_SKIP is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:147
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_enabled_drivers</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:149
+#, no-c-format
+msgid ""
+"SET postgis.gdal_enabled_drivers TO 'GTiff PNG JPEG';\n"
+"SET postgis.gdal_enabled_drivers = default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:151
+#, no-c-format
+msgid "Enable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:152
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:154
+#, no-c-format
+msgid "Disable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:155
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'DISABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:160
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>, "
+"<xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsJPEG\"/>, <xref "
+"linkend=\"postgis_enable_outdb_rasters\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:173
+#, no-c-format
+msgid "postgis.enable_outdb_rasters"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:174
+#, no-c-format
+msgid "A boolean configuration option to enable access to out-db raster bands."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:181
+#, no-c-format
+msgid ""
+"A boolean configuration option to enable access to out-db raster bands. This "
+"option can be set in PostgreSQL's configuration file: postgresql.conf. It "
+"can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:185
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.enable_outdb_rasters</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_ENABLE_OUTDB_RASTERS</varname> with a non-zero value to the "
+"process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:190
+#, no-c-format
+msgid ""
+"Even if <varname>postgis.enable_outdb_rasters</varname> is True, the GUC "
+"<varname>postgis.enable_outdb_rasters</varname> determines the accessible "
+"raster formats."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:196
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.enable_outdb_rasters</"
+"varname> is set to False."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:207
+#, no-c-format
+msgid "Set and reset <varname>postgis.enable_outdb_rasters</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:209
+#, no-c-format
+msgid ""
+"SET postgis.enable_outdb_rasters TO True;\n"
+"SET postgis.enable_outdb_rasters = default;\n"
+"SET postgis.enable_outdb_rasters = True;\n"
+"SET postgis.enable_outdb_rasters = False;"
+msgstr ""
diff --git a/doc/po/pl/reference_lrs.xml.po b/doc/po/pl/reference_lrs.xml.po
new file mode 100644
index 0000000..f9f3646
--- /dev/null
+++ b/doc/po/pl/reference_lrs.xml.po
@@ -0,0 +1,898 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Jakub Bobrowski <jb at 5dstudio.pl>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-03 08:17+0000\n"
+"Last-Translator: Jakub Bobrowski <jb at 5dstudio.pl>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_lrs.xml:3
+#, no-c-format
+msgid "Linear Referencing"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:7
+#, fuzzy, no-c-format
+msgid "ST_LineInterpolatePoint"
+msgstr "ST_Line_Interpolate_Point"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:9
+#, no-c-format
+msgid ""
+"Returns a point interpolated along a line. Second argument is a float8 "
+"between 0 and 1 representing fraction of total length of linestring the "
+"point has to be located."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:15
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineInterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Line_Interpolate_Point</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></"
+"paramdef>"
+
+#. Tag: title
+#: reference_lrs.xml:24 reference_lrs.xml:86 reference_lrs.xml:138
+#: reference_lrs.xml:205 reference_lrs.xml:263 reference_lrs.xml:314
+#: reference_lrs.xml:359 reference_lrs.xml:403
+#, no-c-format
+msgid "Description"
+msgstr "Opis"
+
+#. Tag: para
+#: reference_lrs.xml:26
+#, no-c-format
+msgid ""
+"Returns a point interpolated along a line. First argument must be a "
+"LINESTRING. Second argument is a float8 between 0 and 1 representing "
+"fraction of total linestring length the point has to be located."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:30 reference_lrs.xml:149
+#, no-c-format
+msgid ""
+"See <xref linkend=\"ST_LineLocatePoint\"/> for computing the line location "
+"nearest to a Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:34
+#, no-c-format
+msgid ""
+"Since release 1.1.1 this function also interpolates M and Z values (when "
+"present), while prior releases set them to 0.0."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:38
+#, no-c-format
+msgid "Availability: 0.8.2, Z and M supported added in 1.1.1"
+msgstr "Dostępność: 0.8.2 - wsparcie dla Z i M dodano w wersji 1.1.1"
+
+#. Tag: para
+#: reference_lrs.xml:39
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Interpolate_Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:40 reference_lrs.xml:160 reference_lrs.xml:322
+#: reference_lrs.xml:365 reference_lrs.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: title
+#: reference_lrs.xml:45 reference_lrs.xml:103 reference_lrs.xml:164
+#: reference_lrs.xml:228 reference_lrs.xml:279 reference_lrs.xml:326
+#: reference_lrs.xml:369 reference_lrs.xml:413
+#, no-c-format
+msgid "Examples"
+msgstr "Przykłady"
+
+#. Tag: para
+#: reference_lrs.xml:51
+#, no-c-format
+msgid "A linestring with the interpolated point at 20% position (0.20)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:54
+#, no-c-format
+msgid ""
+"--Return point 20% along 2d line\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.20))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(25 50, 100 125, 150 190)') "
+"as the_line) As foo;\n"
+"   st_asewkt\n"
+"----------------\n"
+" POINT(51.5974135047432 76.5974135047432)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:55
+#, no-c-format
+msgid ""
+"--Return point mid-way of 3d line\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.5))\n"
+"        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6, 6 7 8)') as "
+"the_line) As foo;\n"
+"\n"
+"        st_asewkt\n"
+"--------------------\n"
+" POINT(3.5 4.5 5.5)\n"
+"\n"
+"\n"
+"--find closest point on a line to a point or other geometry\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+"FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
+"foo;\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(3 4)"
+msgstr ""
+
+#. Tag: title
+#: reference_lrs.xml:60 reference_lrs.xml:110 reference_lrs.xml:178
+#: reference_lrs.xml:234 reference_lrs.xml:286 reference_lrs.xml:333
+#: reference_lrs.xml:375
+#, no-c-format
+msgid "See Also"
+msgstr "Zobacz także"
+
+#. Tag: para
+#: reference_lrs.xml:62
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref "
+"linkend=\"ST_LineLocatePoint\"/>"
+msgstr ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref "
+"linkend=\"ST_Line_Locate_Point\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:68
+#, fuzzy, no-c-format
+msgid "ST_LineLocatePoint"
+msgstr "ST_Line_Locate_Point"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:70
+#, no-c-format
+msgid ""
+"Returns a float between 0 and 1 representing the location of the closest "
+"point on LineString to the given Point, as a fraction of total 2d line "
+"length."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:77
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>float <function>ST_LineLocatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></"
+"paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_Line_Locate_Point</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></"
+"paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:88
+#, no-c-format
+msgid ""
+"Returns a float between 0 and 1 representing the location of the closest "
+"point on LineString to the given Point, as a fraction of total <link linkend="
+"\"ST_Length2D\">2d line</link> length."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:92
+#, fuzzy, no-c-format
+msgid ""
+"You can use the returned location to extract a Point (<xref linkend="
+"\"ST_LineInterpolatePoint\"/>) or a substring (<xref linkend="
+"\"ST_LineSubstring\"/>)."
+msgstr ""
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_Line_Interpolate_Point"
+"\"/>, <xref linkend=\"ST_Line_Substring\"/>"
+
+#. Tag: para
+#: reference_lrs.xml:95
+#, no-c-format
+msgid "This is useful for approximating numbers of addresses"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:97
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr "Dostępność: 1.1.0"
+
+#. Tag: para
+#: reference_lrs.xml:98
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Locate_Point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:105
+#, no-c-format
+msgid ""
+"--Rough approximation of finding the street number of a point along the "
+"street\n"
+"--Note the whole foo thing is just to generate dummy data that looks\n"
+"--like house centroids and street\n"
+"--We use ST_DWithin to exclude\n"
+"--houses too far away from the street to be considered on the street\n"
+"SELECT ST_AsText(house_loc) As as_text_house_loc,\n"
+"        startstreet_num +\n"
+"                CAST( (endstreet_num - startstreet_num)\n"
+"                        * ST_LineLocatePoint(street_line, house_loc) As "
+"integer) As street_num\n"
+"FROM\n"
+"(SELECT ST_GeomFromText('LINESTRING(1 2, 3 4)') As street_line,\n"
+"        ST_MakePoint(x*1.01,y*1.03) As house_loc, 10 As startstreet_num,\n"
+"                20 As endstreet_num\n"
+"FROM generate_series(1,3) x CROSS JOIN generate_series(2,4) As y)\n"
+"As foo\n"
+"WHERE ST_DWithin(street_line, house_loc, 0.2);\n"
+"\n"
+" as_text_house_loc | street_num\n"
+"-------------------+------------\n"
+" POINT(1.01 2.06)  |         10\n"
+" POINT(2.02 3.09)  |         15\n"
+" POINT(3.03 4.12)  |         20\n"
+"\n"
+" --find closest point on a line to a point or other geometry\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+"FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
+"foo;\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(3 4)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:112
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_LineInterpolatePoint\"/"
+">, <xref linkend=\"ST_LineSubstring\"/>"
+msgstr ""
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_Line_Interpolate_Point"
+"\"/>, <xref linkend=\"ST_Line_Substring\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:118
+#, fuzzy, no-c-format
+msgid "ST_LineSubstring"
+msgstr "ST_Line_Substring"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:120
+#, no-c-format
+msgid ""
+"Return a linestring being a substring of the input one starting and ending "
+"at the given fractions of total 2d length. Second and third arguments are "
+"float8 values between 0 and 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:128
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineSubstring</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>startfraction</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Line_Substring</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>startfraction</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:140
+#, no-c-format
+msgid ""
+"Return a linestring being a substring of the input one starting and ending "
+"at the given fractions of total 2d length. Second and third arguments are "
+"float8 values between 0 and 1. This only works with LINESTRINGs. To use with "
+"contiguous MULTILINESTRINGs use in conjunction with <xref linkend="
+"\"ST_LineMerge\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:146
+#, no-c-format
+msgid ""
+"If 'start' and 'end' have the same value this is equivalent to <xref linkend="
+"\"ST_LineInterpolatePoint\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:153
+#, no-c-format
+msgid ""
+"Since release 1.1.1 this function also interpolates M and Z values (when "
+"present), while prior releases set them to unspecified values."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:158
+#, no-c-format
+msgid "Availability: 1.1.0, Z and M supported added in 1.1.1"
+msgstr "Dostępność: 1.1.0 - wsparcie dla Z i M"
+
+#. Tag: para
+#: reference_lrs.xml:159
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Substring."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:170
+#, no-c-format
+msgid "A linestring seen with 1/3 midrange overlaid (0.333, 0.666)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:173
+#, no-c-format
+msgid ""
+"--Return the approximate 1/3 mid-range part of a linestring\n"
+"SELECT ST_AsText(ST_Line_SubString(ST_GeomFromText('LINESTRING(25 50, 100 "
+"125, 150 190)'), 0.333, 0.666));\n"
+"\n"
+"                                                                                   st_astext\n"
+"------------------------------------------------------------------------------------------------\n"
+"LINESTRING(69.2846934853974 94.2846934853974,100 125,111.700356260683 "
+"140.210463138888)\n"
+"\n"
+"--The below example simulates a while loop in\n"
+"--SQL using PostgreSQL generate_series() to cut all\n"
+"--linestrings in a table to 100 unit segments\n"
+"-- of which no segment is longer than 100 units\n"
+"-- units are measured in the SRID units of measurement\n"
+"-- It also assumes all geometries are LINESTRING or contiguous "
+"MULTILINESTRING\n"
+"--and no geometry is longer than 100 units*10000\n"
+"--for better performance you can reduce the 10000\n"
+"--to match max number of segments you expect\n"
+"\n"
+"SELECT field1, field2, ST_LineSubstring(the_geom, 100.00*n/length,\n"
+"  CASE\n"
+"        WHEN 100.00*(n+1) < length THEN 100.00*(n+1)/length\n"
+"        ELSE 1\n"
+"  END) As the_geom\n"
+"FROM\n"
+"  (SELECT sometable.field1, sometable.field2,\n"
+"  ST_LineMerge(sometable.the_geom) AS the_geom,\n"
+"  ST_Length(sometable.the_geom) As length\n"
+"  FROM sometable\n"
+"  ) AS t\n"
+"CROSS JOIN generate_series(0,10000) AS n\n"
+"WHERE n*100.00/length < 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:180
+#, fuzzy, no-c-format
+msgid ""
+", <xref linkend=\"ST_LineInterpolatePoint\"/>, <xref linkend=\"ST_LineMerge"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_Line_Interpolate_Point\"/>, <xref linkend=\"ST_LineMerge"
+"\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:186
+#, no-c-format
+msgid "ST_LocateAlong"
+msgstr "ST_LocateAlong"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:188
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry collection value with elements that "
+"match the specified measure. Polygonal elements are not supported.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:195
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateAlong</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>ageom_with_measure</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_measure</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LocateAlong</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>ageom_with_measure</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>a_measure</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:207
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry collection value with elements that match "
+"the specified measure. Polygonal elements are not supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:211
+#, no-c-format
+msgid ""
+"If an offset is provided, the resultant will be offset to the left or right "
+"of the input line by the specified number of units. A positive offset will "
+"be to the left, and a negative one to the right."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:216 reference_lrs.xml:269
+#, no-c-format
+msgid ""
+"Semantic is specified by: ISO/IEC CD 13249-3:200x(E) - Text for Continuation "
+"CD Editing Meeting"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:219
+#, no-c-format
+msgid "Availability: 1.1.0 by old name ST_Locate_Along_Measure."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:220
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 in prior versions this used to be called "
+"ST_Locate_Along_Measure. The old name has been deprecated and will be "
+"removed in the future but is still available."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:221
+#, no-c-format
+msgid "Use this function only for geometries with an M component"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:223 reference_lrs.xml:275
+#, no-c-format
+msgid "&M_support;"
+msgstr "&M_support;"
+
+#. Tag: programlisting
+#: reference_lrs.xml:229
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"                (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"                                                 st_asewkt\n"
+"-----------------------------------------------------------\n"
+" MULTIPOINT M (1 2 3)\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsText((ST_Dump(the_geom)).geom)\n"
+"        FROM\n"
+"        (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"        (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"   st_asewkt\n"
+"---------------\n"
+" POINTM(1 2 3)\n"
+" POINTM(9 4 3)\n"
+" POINTM(1 2 3)"
+msgstr ""
+"SELECT ST_AsText(the_geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"                (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"                                                 st_asewkt\n"
+"-----------------------------------------------------------\n"
+" MULTIPOINT M (1 2 3)\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsText((ST_Dump(the_geom)).geom)\n"
+"        FROM\n"
+"        (SELECT ST_LocateAlong(\n"
+"                        ST_GeomFromText('MULTILINESTRINGM((1 2 3, 3 4 2, 9 4 "
+"3),\n"
+"        (1 2 3, 5 4 5))'),3) As the_geom) As foo;\n"
+"\n"
+"   st_asewkt\n"
+"---------------\n"
+" POINTM(1 2 3)\n"
+" POINTM(9 4 3)\n"
+" POINTM(1 2 3)"
+
+#. Tag: para
+#: reference_lrs.xml:236
+#, no-c-format
+msgid ", <xref linkend=\"ST_LocateBetween\"/>"
+msgstr ", <xref linkend=\"ST_LocateBetween\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:242
+#, no-c-format
+msgid "ST_LocateBetween"
+msgstr "ST_LocateBetween"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:244
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry collection value with elements that "
+"match the specified range of measures inclusively. Polygonal elements are "
+"not supported.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:251
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateBetween</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>measure_start</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_end</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LocateBetween</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>measure_start</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_end</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:265
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry collection value with elements that match "
+"the specified range of measures inclusively. Polygonal elements are not "
+"supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:272
+#, no-c-format
+msgid "Availability: 1.1.0 by old name ST_Locate_Between_Measures."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:273
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions this used to be called "
+"ST_Locate_Between_Measures. The old name has been deprecated and will be "
+"removed in the future but is still available for backward compatibility."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_lrs.xml:281
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(the_geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetween(\n"
+"                        ST_GeomFromText('MULTILINESTRING M ((1 2 3, 3 4 2, 9 "
+"4 3),\n"
+"                (1 2 3, 5 4 5))'),1.5, 3) As the_geom) As foo;\n"
+"\n"
+"                                                         st_asewkt\n"
+"------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION M (LINESTRING M (1 2 3,3 4 2,9 4 3),POINT M (1 2 3))\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsText((ST_Dump(the_geom)).geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetween(\n"
+"                        ST_GeomFromText('MULTILINESTRING M ((1 2 3, 3 4 2, 9 "
+"4 3),\n"
+"                (1 2 3, 5 4 5))'),1.5, 3) As the_geom) As foo;\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+" LINESTRING M (1 2 3,3 4 2,9 4 3)\n"
+" POINT M (1 2 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:288
+#, no-c-format
+msgid ", <xref linkend=\"ST_LocateAlong\"/>"
+msgstr ", <xref linkend=\"ST_LocateAlong\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:294
+#, no-c-format
+msgid "ST_LocateBetweenElevations"
+msgstr "ST_LocateBetweenElevations"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:296
+#, no-c-format
+msgid ""
+"Return a derived geometry (collection) value with elements that intersect "
+"the specified range of elevations inclusively. Only 3D, 4D LINESTRINGS and "
+"MULTILINESTRINGS are supported."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:303
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>elevation_start</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>elevation_end</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>elevation_start</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>elevation_end</parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:316
+#, no-c-format
+msgid ""
+"Return a derived geometry (collection) value with elements that intersect "
+"the specified range of elevations inclusively. Only 3D, 3DM LINESTRINGS and "
+"MULTILINESTRINGS are supported."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:320
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr "Dostępność: 1.4.0"
+
+#. Tag: programlisting
+#: reference_lrs.xml:328
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6)'),2,4)) As "
+"ewelev;\n"
+"                                                                   ewelev\n"
+"----------------------------------------------------------------\n"
+"        MULTILINESTRING((1 2 3,2 3 4))\n"
+"\n"
+"SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9)) As ewelev;\n"
+"\n"
+"                                ewelev\n"
+"----------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(POINT(1 2 6),LINESTRING(6.1 7.1 6,7 8 9))\n"
+"\n"
+"--Geometry collections are difficult animals so dump them\n"
+"--to make them more digestable\n"
+"SELECT ST_AsEWKT((ST_Dump(the_geom)).geom)\n"
+"                FROM\n"
+"                (SELECT ST_LocateBetweenElevations(\n"
+"                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 "
+"9)'),6,9) As the_geom) As foo;\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"POINT(1 2 6)\n"
+"LINESTRING(6.1 7.1 6,7 8 9)"
+msgstr ""
+
+#. Tag: refname
+#: reference_lrs.xml:342
+#, no-c-format
+msgid "ST_InterpolatePoint"
+msgstr "ST_InterpolatePoint"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:344
+#, no-c-format
+msgid ""
+"<refpurpose>Return the value of the measure dimension of a geometry at the "
+"point closed to the provided point.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:349
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_InterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef>"
+msgstr ""
+"<funcdef>float <function>ST_InterpolatePoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>point</parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:361
+#, no-c-format
+msgid ""
+"<para>Return the value of the measure dimension of a geometry at the point "
+"closed to the provided point.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:363
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr "Dostępność: 2.0.0"
+
+#. Tag: programlisting
+#: reference_lrs.xml:371
+#, no-c-format
+msgid ""
+"SELECT ST_InterpolatePoint('LINESTRING M (0 0 0, 10 0 20)', 'POINT(5 5)');\n"
+" st_interpolatepoint \n"
+" ---------------------\n"
+"                                    10"
+msgstr ""
+"SELECT ST_InterpolatePoint('LINESTRING M (0 0 0, 10 0 20)', 'POINT(5 5)');\n"
+" st_interpolatepoint \n"
+" ---------------------\n"
+"                                    10"
+
+#. Tag: para
+#: reference_lrs.xml:377
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_LocateAlong\"/>, <xref linkend=\"ST_LocateBetween\"/>"
+msgstr ""
+", <xref linkend=\"ST_LocateAlong\"/>, <xref linkend=\"ST_LocateBetween\"/>"
+
+#. Tag: refname
+#: reference_lrs.xml:385
+#, no-c-format
+msgid "ST_AddMeasure"
+msgstr "ST_AddMeasure"
+
+#. Tag: refpurpose
+#: reference_lrs.xml:387
+#, no-c-format
+msgid ""
+"<refpurpose>Return a derived geometry with measure elements linearly "
+"interpolated between the start and end points. If the geometry has no "
+"measure dimension, one is added. If the geometry has a measure dimension, it "
+"is over-written with new values. Only LINESTRINGS and MULTILINESTRINGS are "
+"supported.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_lrs.xml:392
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_AddMeasure</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_start</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>measure_end</"
+"parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_AddMeasure</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom_mline</parameter></"
+"paramdef> <paramdef><type>float </type> <parameter>measure_start</"
+"parameter></paramdef> <paramdef><type>float </type> <parameter>measure_end</"
+"parameter></paramdef>"
+
+#. Tag: para
+#: reference_lrs.xml:405
+#, no-c-format
+msgid ""
+"<para>Return a derived geometry with measure elements linearly interpolated "
+"between the start and end points. If the geometry has no measure dimension, "
+"one is added. If the geometry has a measure dimension, it is over-written "
+"with new values. Only LINESTRINGS and MULTILINESTRINGS are supported.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:407
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr "Dostępność: 1.5.0"
+
+#. Tag: programlisting
+#: reference_lrs.xml:415
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0, 2 0, 4 0)'),1,4)) As ewelev;\n"
+"           ewelev             \n"
+"--------------------------------\n"
+" LINESTRINGM(1 0 1,2 0 2,4 0 4)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRING(1 0 4 10,2 0 4 20,4 0 4 40)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRINGM(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRINGM(1 0 10,2 0 20,4 0 40)\n"
+" \n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('MULTILINESTRINGM((1 0 4, 2 0 4, 4 0 4),(1 0 4, 2 0 4, 4 0 "
+"4))'),10,70)) As ewelev;\n"
+"                             ewelev                              \n"
+"-----------------------------------------------------------------\n"
+" MULTILINESTRINGM((1 0 10,2 0 20,4 0 40),(1 0 40,2 0 50,4 0 70))"
+msgstr ""
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0, 2 0, 4 0)'),1,4)) As ewelev;\n"
+"           ewelev             \n"
+"--------------------------------\n"
+" LINESTRINGM(1 0 1,2 0 2,4 0 4)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRING(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRING(1 0 4 10,2 0 4 20,4 0 4 40)\n"
+"\n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('LINESTRINGM(1 0 4, 2 0 4, 4 0 4)'),10,40)) As ewelev;\n"
+"                 ewelev                 \n"
+"----------------------------------------\n"
+" LINESTRINGM(1 0 10,2 0 20,4 0 40)\n"
+" \n"
+"SELECT ST_AsText(ST_AddMeasure(\n"
+"ST_GeomFromEWKT('MULTILINESTRINGM((1 0 4, 2 0 4, 4 0 4),(1 0 4, 2 0 4, 4 0 "
+"4))'),10,70)) As ewelev;\n"
+"                             ewelev                              \n"
+"-----------------------------------------------------------------\n"
+" MULTILINESTRINGM((1 0 10,2 0 20,4 0 40),(1 0 40,2 0 50,4 0 70))"
diff --git a/doc/po/pl/reference_management.xml.po b/doc/po/pl/reference_management.xml.po
new file mode 100644
index 0000000..550ba2d
--- /dev/null
+++ b/doc/po/pl/reference_management.xml.po
@@ -0,0 +1,1204 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_management.xml:3
+#, no-c-format
+msgid "Management Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:7
+#, no-c-format
+msgid "AddGeometryColumn"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:9
+#, no-c-format
+msgid ""
+"Adds a geometry column to an existing table of attributes. By default uses "
+"type modifier to define rather than constraints. Pass in false for "
+"use_typmod to get old check constraint based behavior"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_management.xml:15
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>varchar </type> <parameter>type</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>dimension</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>AddGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>type</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>dimension</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>use_typmod=true</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: title
+#: reference_management.xml:92 reference_management.xml:188
+#: reference_management.xml:254 reference_management.xml:298
+#: reference_management.xml:344 reference_management.xml:386
+#: reference_management.xml:427 reference_management.xml:458
+#: reference_management.xml:499 reference_management.xml:540
+#: reference_management.xml:583 reference_management.xml:631
+#: reference_management.xml:677 reference_management.xml:726
+#: reference_management.xml:863
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:94
+#, no-c-format
+msgid ""
+"Adds a geometry column to an existing table of attributes. The "
+"<varname>schema_name</varname> is the name of the table schema. The "
+"<varname>srid</varname> must be an integer value reference to an entry in "
+"the SPATIAL_REF_SYS table. The <varname>type</varname> must be a string "
+"corresponding to the geometry type, eg, 'POLYGON' or 'MULTILINESTRING' . An "
+"error is thrown if the schemaname doesn't exist (or not visible in the "
+"current search_path) or the specified SRID, geometry type, or dimension is "
+"invalid."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:104
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function no longer updates geometry_columns since "
+"geometry_columns is a view that reads from system catalogs. It by default "
+"also does not create constraints, but instead uses the built in type "
+"modifier behavior of PostgreSQL. So for example building a wgs84 POINT "
+"column with this function is now equivalent to: <code>ALTER TABLE some_table "
+"ADD COLUMN geom geometry(Point,4326);</code>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:107
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 If you require the old behavior of constraints use the "
+"default <varname>use_typmod</varname>, but set it to false."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:111
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Views can no longer be manually registered in "
+"geometry_columns, however views built against geometry typmod tables "
+"geometries and used without wrapper functions will register themselves "
+"correctly because they inherit the typmod behavior of their parent table "
+"column. Views that use geometry functions that output other geometries will "
+"need to be cast to typmod geometries for these view geometry columns to be "
+"registered correctly in geometry_columns. Refer to <xref linkend="
+"\"Manual_Register_Spatial_Column\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:117 reference_management.xml:194
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:118 reference_management.xml:195
+#: reference_management.xml:869
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:119 reference_management.xml:196
+#: reference_management.xml:870
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:120
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 use_typmod argument introduced. Defaults to creating typmod "
+"geometry column instead of constraint-based."
+msgstr ""
+
+#. Tag: title
+#: reference_management.xml:124 reference_management.xml:203
+#: reference_management.xml:267 reference_management.xml:306
+#: reference_management.xml:351 reference_management.xml:393
+#: reference_management.xml:433 reference_management.xml:464
+#: reference_management.xml:506 reference_management.xml:548
+#: reference_management.xml:600 reference_management.xml:646
+#: reference_management.xml:683 reference_management.xml:784
+#: reference_management.xml:873
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:126
+#, no-c-format
+msgid ""
+"-- Create schema to hold data\n"
+"CREATE SCHEMA my_schema;\n"
+"-- Create a new simple PostgreSQL table\n"
+"CREATE TABLE my_schema.my_spatial_table (id serial);\n"
+"\n"
+"-- Describing the table shows a simple table with a single \"id\" column.\n"
+"postgis=# \\d my_schema.my_spatial_table\n"
+"                                                         Table \"my_schema."
+"my_spatial_table\"\n"
+" Column |  Type   |                                Modifiers\n"
+"--------+---------"
+"+-------------------------------------------------------------------------\n"
+" id     | integer | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+"\n"
+"-- Add a spatial column to the table\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom',4326,'POINT',2);\n"
+"\n"
+"-- Add a point using the old constraint based behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);\n"
+"\n"
+"--Add a curvepolygon using old constraint behavior\n"
+"SELECT AddGeometryColumn "
+"('my_schema','my_spatial_table','geomcp_c',4326,'CURVEPOLYGON',2, false);\n"
+"\n"
+"-- Describe the table again reveals the addition of a new geometry columns.\n"
+"\\d my_schema.my_spatial_table\n"
+"                            addgeometrycolumn                            \n"
+"-------------------------------------------------------------------------\n"
+" my_schema.my_spatial_table.geomcp_c SRID:4326 TYPE:CURVEPOLYGON DIMS:2 \n"
+"(1 row)\n"
+"\n"
+"                                    Table \"my_schema.my_spatial_table\"\n"
+"  Column  |         Type         |                                "
+"Modifiers                                \n"
+"----------+----------------------"
+"+-------------------------------------------------------------------------\n"
+" id       | integer              | not null default nextval('my_schema."
+"my_spatial_table_id_seq'::regclass)\n"
+" geom     | geometry(Point,4326) | \n"
+" geom_c   | geometry             | \n"
+" geomcp_c | geometry             | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_c\" CHECK (st_ndims(geom_c) = 2)\n"
+"    \"enforce_dims_geomcp_c\" CHECK (st_ndims(geomcp_c) = 2)\n"
+"    \"enforce_geotype_geom_c\" CHECK (geometrytype(geom_c) = 'POINT'::text "
+"OR geom_c IS NULL)\n"
+"    \"enforce_geotype_geomcp_c\" CHECK (geometrytype(geomcp_c) = "
+"'CURVEPOLYGON'::text OR geomcp_c IS NULL)\n"
+"    \"enforce_srid_geom_c\" CHECK (st_srid(geom_c) = 4326)\n"
+"    \"enforce_srid_geomcp_c\" CHECK (st_srid(geomcp_c) = 4326)\n"
+"    \n"
+"-- geometry_columns view also registers the new columns --\n"
+"SELECT f_geometry_column As col_name, type, srid, coord_dimension As ndims \n"
+"    FROM geometry_columns\n"
+"    WHERE f_table_name = 'my_spatial_table' AND f_table_schema = "
+"'my_schema';\n"
+"\n"
+" col_name |     type     | srid | ndims \n"
+"----------+--------------+------+-------\n"
+" geom     | Point        | 4326 |     2\n"
+" geom_c   | Point        | 4326 |     2\n"
+" geomcp_c | CurvePolygon | 4326 |     2"
+msgstr ""
+
+#. Tag: title
+#: reference_management.xml:130 reference_management.xml:208
+#: reference_management.xml:272 reference_management.xml:312
+#: reference_management.xml:357 reference_management.xml:399
+#: reference_management.xml:470 reference_management.xml:512
+#: reference_management.xml:554 reference_management.xml:606
+#: reference_management.xml:652 reference_management.xml:689
+#: reference_management.xml:886
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:132
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/"
+">, <xref linkend=\"Manual_Register_Spatial_Column\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:138
+#, no-c-format
+msgid "DropGeometryColumn"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:140
+#, no-c-format
+msgid "Removes a geometry column from a spatial table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_management.xml:145
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>DropGeometryColumn</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>DropGeometryColumn</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:190
+#, no-c-format
+msgid ""
+"Removes a geometry column from a spatial table. Note that schema_name will "
+"need to match the f_table_schema field of the table's row in the "
+"geometry_columns table."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:198
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function is provided for backward compatibility. Now "
+"that since geometry_columns is now a view against the system catalogs, you "
+"can drop a geometry column like any other table column using <code>ALTER "
+"TABLE</code>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:205
+#, no-c-format
+msgid ""
+"SELECT DropGeometryColumn ('my_schema','my_spatial_table','geom');\n"
+"                        ----RESULT output ---\n"
+"                                          dropgeometrycolumn\n"
+"------------------------------------------------------\n"
+" my_schema.my_spatial_table.geom effectively removed.\n"
+" \n"
+"-- In PostGIS 2.0+ the above is also equivalent to the standard\n"
+"-- the standard alter table.  Both will deregister from geometry_columns\n"
+"ALTER TABLE my_schema.my_spatial_table DROP column geom;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:210
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryTable\"/>, <xref linkend=\"geometry_columns\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:216
+#, no-c-format
+msgid "DropGeometryTable"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:218
+#, no-c-format
+msgid "Drops a table and all its references in geometry_columns."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_management.xml:223
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropGeometryTable</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>DropGeometryTable</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:256
+#, no-c-format
+msgid ""
+"Drops a table and all its references in geometry_columns. Note: uses "
+"current_schema() on schema-aware pgsql installations if schema is not "
+"provided."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:261
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 This function is provided for backward compatibility. Now "
+"that since geometry_columns is now a view against the system catalogs, you "
+"can drop a table with geometry columns like any other table using <code>DROP "
+"TABLE</code>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:269
+#, no-c-format
+msgid ""
+"SELECT DropGeometryTable ('my_schema','my_spatial_table');\n"
+"----RESULT output ---\n"
+"my_schema.my_spatial_table dropped.\n"
+"                        \n"
+"-- The above is now equivalent to --\n"
+"DROP TABLE my_schema.my_spatial_table;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:274
+#, no-c-format
+msgid ""
+", <xref linkend=\"DropGeometryColumn\"/>, <xref linkend=\"geometry_columns\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:281
+#, no-c-format
+msgid "PostGIS_Full_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:283
+#, no-c-format
+msgid "Reports full postgis version and build configuration infos."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:289
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Full_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:300
+#, no-c-format
+msgid ""
+"Reports full postgis version and build configuration infos. Also informs "
+"about synchronization between libraries and scripts suggesting upgrades as "
+"needed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:308
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Full_Version();\n"
+"                                                           postgis_full_version\n"
+"----------------------------------------------------------------------------------\n"
+"POSTGIS=\"2.2.0dev r12699\" GEOS=\"3.5.0dev-CAPI-1.9.0 r3989\" SFCGAL="
+"\"1.0.4\" PROJ=\"Rel. 4.8.0, 6 March 2012\" \n"
+"GDAL=\"GDAL 1.11.0, released 2014/04/16\" LIBXML=\"2.7.8\" LIBJSON=\"0.12\" "
+"RASTER\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:314
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:327
+#, no-c-format
+msgid "PostGIS_GEOS_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:329
+#, no-c-format
+msgid "Returns the version number of the GEOS library."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:335
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GEOS_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:346
+#, no-c-format
+msgid ""
+"Returns the version number of the GEOS library, or <varname>NULL</varname> "
+"if GEOS support is not enabled."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:353
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GEOS_Version();\n"
+" postgis_geos_version\n"
+"----------------------\n"
+" 3.1.0-CAPI-1.5.0\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:359
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:369
+#, no-c-format
+msgid "PostGIS_LibXML_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:371
+#, no-c-format
+msgid "Returns the version number of the libxml2 library."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:377
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_LibXML_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:388
+#, no-c-format
+msgid "Returns the version number of the LibXML2 library."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:389
+#, no-c-format
+msgid "Availability: 1.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:395
+#, no-c-format
+msgid ""
+"SELECT PostGIS_LibXML_Version();\n"
+" postgis_libxml_version\n"
+"----------------------\n"
+" 2.7.6\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:401
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Lib_Version\"/>, <xref linkend="
+"\"PostGIS_PROJ_Version\"/>, <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:411
+#, no-c-format
+msgid "PostGIS_Lib_Build_Date"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:413
+#, no-c-format
+msgid "<refpurpose>Returns build date of the PostGIS library.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:418
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:429
+#, no-c-format
+msgid "<para>Returns build date of the PostGIS library.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:435
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Lib_Build_Date();\n"
+" postgis_lib_build_date\n"
+"------------------------\n"
+" 2008-06-21 17:53:21\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:441
+#, no-c-format
+msgid "PostGIS_Lib_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:443
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the version number of the PostGIS library.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:449
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Lib_Version</function></funcdef> <paramdef></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:460
+#, no-c-format
+msgid "<para>Returns the version number of the PostGIS library.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:466
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Lib_Version();\n"
+" postgis_lib_version\n"
+"---------------------\n"
+" 1.3.3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:472
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_LibXML_Version\"/>, <xref linkend=\"PostGIS_PROJ_Version\"/>, "
+"<xref linkend=\"PostGIS_Version\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:482
+#, no-c-format
+msgid "PostGIS_PROJ_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:484
+#, no-c-format
+msgid "Returns the version number of the PROJ4 library."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:490
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_PROJ_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:501
+#, no-c-format
+msgid ""
+"Returns the version number of the PROJ4 library, or <varname>NULL</varname> "
+"if PROJ4 support is not enabled."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:508
+#, no-c-format
+msgid ""
+"SELECT PostGIS_PROJ_Version();\n"
+"  postgis_proj_version\n"
+"-------------------------\n"
+" Rel. 4.4.9, 29 Oct 2004\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:514 reference_management.xml:556
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_Version\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:524
+#, no-c-format
+msgid "PostGIS_Scripts_Build_Date"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:526
+#, no-c-format
+msgid "<refpurpose>Returns build date of the PostGIS scripts.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:531
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:542
+#, no-c-format
+msgid "<para>Returns build date of the PostGIS scripts.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:544
+#, no-c-format
+msgid "Availability: 1.0.0RC1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:550
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Build_Date();\n"
+"  postgis_scripts_build_date\n"
+"-------------------------\n"
+" 2007-08-18 09:09:26\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:566
+#, no-c-format
+msgid "PostGIS_Scripts_Installed"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:568
+#, no-c-format
+msgid ""
+"<refpurpose>Returns version of the postgis scripts installed in this "
+"database.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:574
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Installed</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:585
+#, no-c-format
+msgid ""
+"<para>Returns version of the postgis scripts installed in this database.</"
+"para>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:589
+#, no-c-format
+msgid ""
+"If the output of this function doesn't match the output of <xref linkend="
+"\"PostGIS_Scripts_Released\"/> you probably missed to properly upgrade an "
+"existing database. See the <link linkend=\"upgrading\">Upgrading</link> "
+"section for more info."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:596 reference_management.xml:642
+#, no-c-format
+msgid "Availability: 0.9.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:602
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Installed();\n"
+"  postgis_scripts_installed\n"
+"-------------------------\n"
+" 1.5.0SVN\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:608
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Scripts_Released\"/>, <xref linkend="
+"\"PostGIS_Version\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:614
+#, no-c-format
+msgid "PostGIS_Scripts_Released"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:616
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the version number of the postgis.sql script released "
+"with the installed postgis lib.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:622
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Scripts_Released</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:633
+#, no-c-format
+msgid ""
+"<para>Returns the version number of the postgis.sql script released with the "
+"installed postgis lib.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:637
+#, no-c-format
+msgid ""
+"Starting with version 1.1.0 this function returns the same value of <xref "
+"linkend=\"PostGIS_Lib_Version\"/>. Kept for backward compatibility."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:648
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Scripts_Released();\n"
+"  postgis_scripts_released\n"
+"-------------------------\n"
+" 1.3.4SVN\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:654
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Scripts_Installed\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:660
+#, no-c-format
+msgid "PostGIS_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:662
+#, no-c-format
+msgid ""
+"<refpurpose>Returns PostGIS version number and compile-time options.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_management.xml:668
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Version</function></funcdef> <paramdef></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:679
+#, no-c-format
+msgid "<para>Returns PostGIS version number and compile-time options.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:685
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Version();\n"
+"                        postgis_version\n"
+"---------------------------------------\n"
+" 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:691
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_GEOS_Version\"/>, <xref linkend="
+"\"PostGIS_Lib_Version\"/>, <xref linkend=\"PostGIS_LibXML_Version\"/>, <xref "
+"linkend=\"PostGIS_PROJ_Version\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:701
+#, no-c-format
+msgid "Populate_Geometry_Columns"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:703
+#, no-c-format
+msgid ""
+"Ensures geometry columns are defined with type modifiers or have appropriate "
+"spatial constraints This ensures they will be registered correctly in "
+"<varname>geometry_columns</varname> view. By default will convert all "
+"geometry columns with no type modifier to ones with type modifiers. To get "
+"old behavior set <varname>use_typmod=false</varname>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_management.xml:709
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>Populate_Geometry_Columns</"
+"function></funcdef> <paramdef><type>boolean </type> "
+"<parameter>use_typmod=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>int <function>Populate_Geometry_Columns</function></"
+"funcdef> <paramdef><type>oid</type> <parameter>relation_oid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>use_typmod=true</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:728
+#, no-c-format
+msgid ""
+"Ensures geometry columns have appropriate type modifiers or spatial "
+"constraints to ensure they are registered correctly in "
+"<varname>geometry_columns</varname> table."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:730
+#, no-c-format
+msgid ""
+"For backwards compatibility and for spatial needs such as tble inheritance "
+"where each child table may have different geometry type, the old check "
+"constraint behavior is still supported. If you need the old behavior, you "
+"need to pass in the new optional argument as false "
+"<varname>use_typmod=false</varname>. When this is done geometry columns will "
+"be created with no type modifiers but will have 3 constraints defined. In "
+"particular, this means that every geometry column belonging to a table has "
+"at least three constraints:"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:738
+#, no-c-format
+msgid ""
+"<varname>enforce_dims_the_geom</varname> - ensures every geometry has the "
+"same dimension (see <xref linkend=\"ST_NDims\"/>)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:744
+#, no-c-format
+msgid ""
+"<varname>enforce_geotype_the_geom</varname> - ensures every geometry is of "
+"the same type (see <xref linkend=\"GeometryType\"/>)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:750
+#, no-c-format
+msgid ""
+"<varname>enforce_srid_the_geom</varname> - ensures every geometry is in the "
+"same projection (see <xref linkend=\"ST_SRID\"/>)"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:756
+#, no-c-format
+msgid ""
+"If a table <varname>oid</varname> is provided, this function tries to "
+"determine the srid, dimension, and geometry type of all geometry columns in "
+"the table, adding constraints as necessary. If successful, an appropriate "
+"row is inserted into the geometry_columns table, otherwise, the exception is "
+"caught and an error notice is raised describing the problem."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:763
+#, no-c-format
+msgid ""
+"If the <varname>oid</varname> of a view is provided, as with a table oid, "
+"this function tries to determine the srid, dimension, and type of all the "
+"geometries in the view, inserting appropriate entries into the "
+"<varname>geometry_columns</varname> table, but nothing is done to enforce "
+"constraints."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:769
+#, no-c-format
+msgid ""
+"The parameterless variant is a simple wrapper for the parameterized variant "
+"that first truncates and repopulates the geometry_columns table for every "
+"spatial table and view in the database, adding spatial constraints to tables "
+"where appropriate. It returns a summary of the number of geometry columns "
+"detected in the database and the number that were inserted into the "
+"<varname>geometry_columns</varname> table. The parameterized version simply "
+"returns the number of rows inserted into the <varname>geometry_columns</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:777
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:778
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 By default, now uses type modifiers instead of check "
+"constraints to constrain geometry types. You can still use check constraint "
+"behavior instead by using the new <varname>use_typmod</varname> and setting "
+"it to false."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:780
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 <varname>use_typmod</varname> optional argument was "
+"introduced that allows controlling if columns are created with typmodifiers "
+"or with check constraints."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:786
+#, no-c-format
+msgid ""
+"CREATE TABLE public.myspatial_table(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 "
+"4)',4326) );\n"
+"-- This will now use typ modifiers.  For this to work, there must exist "
+"data\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table'::regclass);\n"
+"\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"                        \n"
+"                        \n"
+"\\d myspatial_table\n"
+"\n"
+"                                   Table \"public.myspatial_table\"\n"
+" Column |           Type            |                           "
+"Modifiers                           \n"
+"--------+---------------------------"
+"+---------------------------------------------------------------\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
+" geom   | geometry(LineString,4326) |"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:788
+#, no-c-format
+msgid ""
+"-- This will change the geometry columns to use constraints if they are not "
+"typmod or have constraints already.  \n"
+"--For this to work, there must exist data\n"
+"CREATE TABLE public.myspatial_table_cs(gid serial, geom geometry);\n"
+"INSERT INTO myspatial_table_cs(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, "
+"3 4)',4326) );\n"
+"SELECT Populate_Geometry_Columns('public.myspatial_table_cs'::regclass, "
+"false);\n"
+"populate_geometry_columns\n"
+"--------------------------\n"
+"                        1\n"
+"\\d myspatial_table_cs\n"
+"\n"
+"                          Table \"public.myspatial_table_cs\"\n"
+" Column |   Type   |                            "
+"Modifiers                             \n"
+"--------+----------"
+"+------------------------------------------------------------------\n"
+" gid    | integer  | not null default nextval('myspatial_table_cs_gid_seq'::"
+"regclass)\n"
+" geom   | geometry | \n"
+"Check constraints:\n"
+"    \"enforce_dims_geom\" CHECK (st_ndims(geom) = 2)\n"
+"    \"enforce_geotype_geom\" CHECK (geometrytype(geom) = 'LINESTRING'::text "
+"OR geom IS NULL)\n"
+"    \"enforce_srid_geom\" CHECK (st_srid(geom) = 4326)"
+msgstr ""
+
+#. Tag: refname
+#: reference_management.xml:803
+#, no-c-format
+msgid "UpdateGeometrySRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_management.xml:805
+#, no-c-format
+msgid ""
+"Updates the SRID of all features in a geometry column, geometry_columns "
+"metadata and srid. If it was enforced with constraints, the constraints will "
+"be updated with new srid constraint. If the old was enforced by type "
+"definition, the type definition will be changed."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_management.xml:811
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
+"funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>column_name</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </"
+"type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar "
+"</type> <parameter>column_name</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>UpdateGeometrySRID</"
+"function></funcdef> <paramdef><type>varchar </type> <parameter>catalog_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </"
+"type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer "
+"</type> <parameter>srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:865
+#, no-c-format
+msgid ""
+"Updates the SRID of all features in a geometry column, updating constraints "
+"and reference in geometry_columns. Note: uses current_schema() on schema-"
+"aware pgsql installations if schema is not provided."
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:874
+#, no-c-format
+msgid ""
+"This will change the srid of the roads table to 4326 from whatever it was "
+"before"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:875
+#, no-c-format
+msgid "SELECT UpdateGeometrySRID('roads','geom',4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:877
+#, no-c-format
+msgid "The prior example is equivalent to this DDL statement"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:878
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+"  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) \n"
+"    USING ST_SetSRID(geom,4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:880
+#, no-c-format
+msgid ""
+"If you got the projection wrong (or brought it in as unknown) in load and "
+"you wanted to transform to web mercator all in one shot You can do this with "
+"DDL but there is no equivalent PostGIS management function to do so in one "
+"go."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:883
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+" ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857) USING "
+"ST_Transform(ST_SetSRID(geom,4326),3857) ;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:888
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
diff --git a/doc/po/pl/reference_measure.xml.po b/doc/po/pl/reference_measure.xml.po
new file mode 100644
index 0000000..1f5c922
--- /dev/null
+++ b/doc/po/pl/reference_measure.xml.po
@@ -0,0 +1,5035 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_measure.xml:3
+#, no-c-format
+msgid "Spatial Relationships and Measurements"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:6
+#, no-c-format
+msgid "ST_3DClosestPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:8
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional point on g1 that is closest to g2. This is the "
+"first point of the 3D shortest line."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:144
+#: reference_measure.xml:196 reference_measure.xml:253
+#: reference_measure.xml:303 reference_measure.xml:372
+#: reference_measure.xml:418 reference_measure.xml:490
+#: reference_measure.xml:549 reference_measure.xml:620
+#: reference_measure.xml:738 reference_measure.xml:811
+#: reference_measure.xml:963 reference_measure.xml:1044
+#: reference_measure.xml:1126 reference_measure.xml:1186
+#: reference_measure.xml:1352 reference_measure.xml:1487
+#: reference_measure.xml:1565 reference_measure.xml:1635
+#: reference_measure.xml:1690 reference_measure.xml:1736
+#: reference_measure.xml:1785 reference_measure.xml:1838
+#: reference_measure.xml:1920 reference_measure.xml:1984
+#: reference_measure.xml:2033 reference_measure.xml:2093
+#: reference_measure.xml:2159 reference_measure.xml:2210
+#: reference_measure.xml:2243 reference_measure.xml:2288
+#: reference_measure.xml:2340 reference_measure.xml:2391
+#: reference_measure.xml:2443 reference_measure.xml:2531
+#: reference_measure.xml:2574 reference_measure.xml:2665
+#: reference_measure.xml:2714 reference_measure.xml:2751
+#: reference_measure.xml:2793 reference_measure.xml:2840
+#: reference_measure.xml:2906 reference_measure.xml:2972
+#: reference_measure.xml:3015 reference_measure.xml:3094
+#: reference_measure.xml:3242
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:29
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional point on g1 that is closest to g2. This is the "
+"first point of the 3D shortest line. The 3D length of the 3D shortest line "
+"is the 3D distance."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:149
+#: reference_measure.xml:211 reference_measure.xml:266
+#: reference_measure.xml:312 reference_measure.xml:377
+#: reference_measure.xml:431 reference_measure.xml:2038
+#: reference_measure.xml:2247 reference_measure.xml:2302
+#: reference_measure.xml:2399 reference_measure.xml:2755
+#: reference_measure.xml:2801
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:151
+#: reference_measure.xml:213 reference_measure.xml:268
+#: reference_measure.xml:314 reference_measure.xml:379
+#: reference_measure.xml:433 reference_measure.xml:500
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:35 reference_measure.xml:103
+#: reference_measure.xml:154 reference_measure.xml:210
+#: reference_measure.xml:260 reference_measure.xml:311
+#: reference_measure.xml:381 reference_measure.xml:430
+#: reference_measure.xml:2847
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:39 reference_measure.xml:107
+#: reference_measure.xml:158 reference_measure.xml:218
+#: reference_measure.xml:318 reference_measure.xml:385
+#: reference_measure.xml:437 reference_measure.xml:507
+#: reference_measure.xml:564 reference_measure.xml:646
+#: reference_measure.xml:748 reference_measure.xml:849
+#: reference_measure.xml:1002 reference_measure.xml:1080
+#: reference_measure.xml:1155 reference_measure.xml:1252
+#: reference_measure.xml:1387 reference_measure.xml:1510
+#: reference_measure.xml:1660 reference_measure.xml:1702
+#: reference_measure.xml:1751 reference_measure.xml:1799
+#: reference_measure.xml:1856 reference_measure.xml:1954
+#: reference_measure.xml:2003 reference_measure.xml:2044
+#: reference_measure.xml:2253 reference_measure.xml:2307
+#: reference_measure.xml:2359 reference_measure.xml:2405
+#: reference_measure.xml:2453 reference_measure.xml:2546
+#: reference_measure.xml:2596 reference_measure.xml:2761
+#: reference_measure.xml:2805 reference_measure.xml:2942
+#: reference_measure.xml:2982 reference_measure.xml:3031
+#: reference_measure.xml:3144 reference_measure.xml:3274
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:44
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:45
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" cp3d_line_pt                                                                        "
+"|               cp2d_line_pt\n"
+"-----------------------------------------------------------"
+"+------------------------------------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | "
+"POINT(73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:49
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:50
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt, \n"
+"                ST_AsEWKT(ST_ClosestPoint(line,pt)) As cp2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       cp3d_line_pt                        | cp2d_line_pt\n"
+"-----------------------------------------------------------+--------------\n"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | POINT(50 75)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:54
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d closest point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:55
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DClosestPoint(poly, mline)) As cp3d,\n"
+"    ST_AsEWKT(ST_ClosestPoint(poly, mline)) As cp2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   cp3d                    |     cp2d\n"
+"-------------------------------------------+--------------\n"
+" POINT(39.993580415989 54.1889925532825 5) | POINT(20 40)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:65 reference_measure.xml:114
+#: reference_measure.xml:164 reference_measure.xml:223
+#: reference_measure.xml:276 reference_measure.xml:344
+#: reference_measure.xml:391 reference_measure.xml:463
+#: reference_measure.xml:523 reference_measure.xml:595
+#: reference_measure.xml:709 reference_measure.xml:783
+#: reference_measure.xml:936 reference_measure.xml:1007
+#: reference_measure.xml:1088 reference_measure.xml:1160
+#: reference_measure.xml:1457 reference_measure.xml:1516
+#: reference_measure.xml:1594 reference_measure.xml:1710
+#: reference_measure.xml:1758 reference_measure.xml:1806
+#: reference_measure.xml:1861 reference_measure.xml:1959
+#: reference_measure.xml:2009 reference_measure.xml:2051
+#: reference_measure.xml:2135 reference_measure.xml:2187
+#: reference_measure.xml:2219 reference_measure.xml:2262
+#: reference_measure.xml:2314 reference_measure.xml:2366
+#: reference_measure.xml:2412 reference_measure.xml:2506
+#: reference_measure.xml:2551 reference_measure.xml:2638
+#: reference_measure.xml:2691 reference_measure.xml:2727
+#: reference_measure.xml:2768 reference_measure.xml:2811
+#: reference_measure.xml:2864 reference_measure.xml:2948
+#: reference_measure.xml:2988 reference_measure.xml:3065
+#: reference_measure.xml:3285
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:67
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ClosestPoint\"/>, <xref linkend=\"ST_3DDistance\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:72
+#, no-c-format
+msgid "ST_3DDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:74
+#, no-c-format
+msgid ""
+"For geometry type Returns the 3-dimensional cartesian minimum distance "
+"(based on spatial ref) between two geometries in projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:79
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:94
+#, no-c-format
+msgid ""
+"For geometry type returns the 3-dimensional minimum cartesian distance "
+"between two geometries in projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:100 reference_measure.xml:152
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM ?"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:101 reference_measure.xml:503
+#: reference_measure.xml:1574 reference_measure.xml:2124
+#: reference_measure.xml:2172
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:109
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_3d,\n"
+"                ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),2163),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),2163)\n"
+"                ) As dist_2d;\n"
+"\n"
+"     dist_3d      |     dist_2d\n"
+"------------------+-----------------\n"
+" 127.295059324629 | 126.66425605671"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:110
+#, no-c-format
+msgid ""
+"-- Multilinestring and polygon both 3d and 2d distance\n"
+"-- Same example as 3D closest point example\n"
+"SELECT ST_3DDistance(poly, mline) As dist3d,\n"
+"    ST_Distance(poly, mline) As dist2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"      dist3d       | dist2d\n"
+"-------------------+--------\n"
+" 0.716635696066337 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:116
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DClosestPoint\"/>, <xref linkend=\"ST_3DDWithin\"/>, "
+"<xref linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_3DShortestLine\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:122
+#, no-c-format
+msgid "ST_3DDWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:124
+#, no-c-format
+msgid ""
+"For 3d (z) geometry type Returns true if two geometries 3d distance is "
+"within number of units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:128
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DDWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:146
+#, no-c-format
+msgid ""
+"For geometry type returns true if the 3d distance between two objects is "
+"within distance_of_srid specified projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:160
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DDWithin(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        126.8\n"
+"                ) As within_dist_3d,\n"
+"ST_DWithin(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        126.8\n"
+"                ) As within_dist_2d;\n"
+"\n"
+" within_dist_3d | within_dist_2d\n"
+"----------------+----------------\n"
+" f              | t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:166
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:172
+#, no-c-format
+msgid "ST_3DDFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:174
+#, no-c-format
+msgid ""
+"Returns true if all of the 3D geometries are within the specified distance "
+"of one another."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:180
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DDFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:198
+#, no-c-format
+msgid ""
+"Returns true if the 3D geometries are fully within the specified distance of "
+"one another. The distance is specified in units defined by the spatial "
+"reference system of the geometries. For this function to make sense, the "
+"source geometries must both be of the same coordinate projection, having the "
+"same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:205 reference_measure.xml:262
+#: reference_measure.xml:1242 reference_measure.xml:1847
+#: reference_measure.xml:1933 reference_measure.xml:2108
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:219
+#, no-c-format
+msgid ""
+"-- This compares the difference between fully within and distance within as "
+"well\n"
+"                -- as the distance fully within for the 2D footprint of the "
+"line/point vs. the 3d fully within\n"
+"                SELECT ST_3DDFullyWithin(geom_a, geom_b, 10) as "
+"D3DFullyWithin10, ST_3DDWithin(geom_a, geom_b, 10) as D3DWithin10, \n"
+"        ST_DFullyWithin(geom_a, geom_b, 20) as D2DFullyWithin20, \n"
+"        ST_3DDFullyWithin(geom_a, geom_b, 20) as D3DFullyWithin20 from \n"
+"                (select ST_GeomFromEWKT('POINT(1 1 2)') as geom_a,\n"
+"                ST_GeomFromEWKT('LINESTRING(1 5 2, 2 7 20, 1 9 100, 14 12 "
+"3)') as geom_b) t1;\n"
+" d3dfullywithin10 | d3dwithin10 | d2dfullywithin20 | d3dfullywithin20\n"
+"------------------+-------------+------------------+------------------\n"
+" f                | t           | t                | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:225
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:231
+#, no-c-format
+msgid "ST_3DIntersects"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:233
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries \"spatially intersect\" in 3d - only for "
+"points and linestrings"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:239
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_3DIntersects</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>geomA</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>geomB</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:254 reference_measure.xml:2096
+#, no-c-format
+msgid ""
+"Overlaps, Touches, Within all imply spatial intersection. If any of the "
+"aforementioned returns true, then the geometries also spatially intersect. "
+"Disjoint implies false for spatial intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:269
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: ?"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:272 reference_measure.xml:2127
+#: reference_measure.xml:2176
+#, no-c-format
+msgid "Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:273
+#, no-c-format
+msgid ""
+"SELECT ST_3DIntersects(pt, line), ST_Intersects(pt,line) \n"
+"        FROM (SELECT 'POINT(0 0 2)'::geometry As pt, \n"
+"                'LINESTRING (0 0 1, 0 2 3 )'::geometry As line) As foo;\n"
+" st_3dintersects | st_intersects\n"
+"-----------------+---------------\n"
+" f               | t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:283
+#, no-c-format
+msgid "ST_3DLongestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:285
+#, no-c-format
+msgid "Returns the 3-dimensional longest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:290
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DLongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:305
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional longest line between two geometries. The function "
+"will only return the first longest line if more than one. The line returned "
+"will always start in g1 and end in g2. The 3D length of the line this "
+"function returns will always be the same as <xref linkend=\"ST_3DMaxDistance"
+"\"/> returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:323
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:324
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"           lol3d_line_pt           |       lol2d_line_pt\n"
+"-----------------------------------+----------------------------\n"
+" LINESTRING(50 75 1000,100 100 30) | LINESTRING(98 190,100 100)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:328
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:329
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
+"                ST_AsEWKT(ST_LongestLine(line,pt)) As lol2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"          lol3d_line_pt          |      lol2d_line_pt\n"
+"---------------------------------+--------------------------\n"
+" LINESTRING(98 190 1,50 74 1000) | LINESTRING(98 190,50 74)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:333
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d longest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:334
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DLongestLine(poly, mline)) As lol3d,\n"
+"    ST_AsEWKT(ST_LongestLine(poly, mline)) As lol2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"            lol3d             |          lol2d\n"
+"------------------------------+--------------------------\n"
+" LINESTRING(175 150 5,1 10 2) | LINESTRING(175 150,1 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:346
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_3DShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:352
+#, no-c-format
+msgid "ST_3DMaxDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:354
+#, no-c-format
+msgid ""
+"For geometry type Returns the 3-dimensional cartesian maximum distance "
+"(based on spatial ref) between two geometries in projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:359
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DMaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:374
+#, no-c-format
+msgid ""
+"For geometry type returns the 3-dimensional maximum cartesian distance "
+"between two geometries in projected units (spatial ref units)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:387
+#, no-c-format
+msgid ""
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (3D point and line compared 2D point and line)\n"
+"-- Note: currently no vertical datum support so Z is not transformed and "
+"assumed to be same units as final.\n"
+"SELECT ST_3DMaxDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_3d,\n"
+"                ST_MaxDistance(\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                ) As dist_2d;\n"
+"\n"
+"     dist_3d      |     dist_2d\n"
+"------------------+------------------\n"
+" 24383.7467488441 | 22247.8472107251"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:398
+#, no-c-format
+msgid "ST_3DShortestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:400
+#, no-c-format
+msgid "Returns the 3-dimensional shortest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:405
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DShortestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:420
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional shortest line between two geometries. The function "
+"will only return the first shortest line if more than one, that the function "
+"finds. If g1 and g2 intersects in just one point the function will return a "
+"line with both start and end in that intersection-point. If g1 and g2 are "
+"intersecting with more than one point the function will return a line with "
+"start and end in the same point but it can be any of the intersecting "
+"points. The line returned will always start in g1 and end in g2. The 3D "
+"length of the line this function returns will always be the same as <xref "
+"linkend=\"ST_3DDistance\"/> returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:442
+#, no-c-format
+msgid "linestring and point -- both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:443
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'POINT(100 100 30)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"1000)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+" shl3d_line_pt                                                                                         "
+"|               shl2d_line_pt\n"
+"----------------------------------------------------------------------------"
+"+------------------------------------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30)  "
+"| LINESTRING(73.0769230769231 115.384615384615,100 100)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:447
+#, no-c-format
+msgid "linestring and multipoint -- both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:448
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
+"                ST_AsEWKT(ST_ShortestLine(line,pt)) As shl2d_line_pt\n"
+"        FROM (SELECT 'MULTIPOINT(100 100 30, 50 74 1000)'::geometry As pt, \n"
+"                        'LINESTRING (20 80 20, 98 190 1, 110 180 3, 50 75 "
+"900)'::geometry As line\n"
+"                ) As foo;\n"
+"        \n"
+"                \n"
+"                       shl3d_line_pt                                       | "
+"shl2d_line_pt\n"
+"---------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(54.6993798867619 128.935022917228 11.5475869506606,100 100 30) | "
+"LINESTRING(50 75,50 74)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:452
+#, no-c-format
+msgid "Multilinestring and polygon both 3d and 2d shortest line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:453
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_3DShortestLine(poly, mline)) As shl3d,\n"
+"    ST_AsEWKT(ST_ShortestLine(poly, mline)) As shl2d \n"
+"        FROM (SELECT  ST_GeomFromEWKT('POLYGON((175 150 5, 20 40 5, 35 45 5, "
+"50 60 5, 100 100 5, 175 150 5))') As poly,\n"
+"                ST_GeomFromEWKT('MULTILINESTRING((175 155 2, 20 40 20, 50 60 "
+"-2, 125 100 1, 175 155 1),\n"
+"                (1 10 2, 5 20 1))') As mline ) As foo;\n"
+"                   shl3d                                                                           "
+"|     shl2d\n"
+"---------------------------------------------------------------------------------------------------"
+"+------------------------\n"
+" LINESTRING(39.993580415989 54.1889925532825 5,40.4078575708294 "
+"53.6052383805529 5.03423778139177) | LINESTRING(20 40,20 40)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:465
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
+"<xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:470
+#, no-c-format
+msgid "ST_Area"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:472
+#, no-c-format
+msgid ""
+"Returns the area of the surface if it is a polygon or multi-polygon. For "
+"\"geometry\" type area is in SRID units. For \"geography\" area is in square "
+"meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:476
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Area</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Area</function></"
+"funcdef> <paramdef><type>geography </type><parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:492
+#, no-c-format
+msgid ""
+"Returns the area of the geometry if it is a polygon or multi-polygon. Return "
+"the area measurement of an ST_Surface or ST_MultiSurface value. For geometry "
+"Area is in the units of the srid. For geography area is in square meters and "
+"defaults to measuring about the spheroid of the geography (currently only "
+"WGS84). To measure around the faster but less accurate sphere -- "
+"ST_Area(geog,false)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:497
+#, no-c-format
+msgid "Enhanced: 2.0.0 - support for 2D polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:498 reference_measure.xml:641
+#: reference_measure.xml:1571 reference_measure.xml:1947
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:499
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.2, 9.5.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:501
+#, no-c-format
+msgid ""
+"For polyhedral surfaces, only supports 2D polyhedral surfaces (not 2.5D). "
+"For 2.5D, may give a non-zero answer, but only for the faces that sit "
+"completely in XY plane."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:508
+#, no-c-format
+msgid ""
+"Return area in square feet for a plot of Massachusetts land and multiply by "
+"conversion to get square meters. Note this is in square feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:511
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |     sqm\n"
+"---------+-------------\n"
+" 928.625 | 86.27208552"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:512
+#, no-c-format
+msgid ""
+"Return area square feet and transform to Massachusetts state plane meters "
+"(26986) to get square meters. Note this is in square feet because 2249 is "
+"Mass State Plane Feet and transformed area is in square meters since 26986 "
+"is state plane mass meters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:515
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As "
+"sqm\n"
+"                FROM (SELECT\n"
+"                ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
+"                        743265 2967450,743265.625 2967416,743238 "
+"2967416))',2249) ) As foo(the_geom);\n"
+"  sqft   |       sqm\n"
+"---------+------------------\n"
+" 928.625 | 86.2724304199219"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:517
+#, no-c-format
+msgid ""
+"Return area square feet and square meters using Geography data type. Note "
+"that we transform to our geometry to geography (before you can do that make "
+"sure your geometry is in WGS 84 long lat 4326). Geography always measures in "
+"meters. This is just for demonstration to compare. Normally your table will "
+"be stored in geography data type already."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:520
+#, no-c-format
+msgid ""
+"SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,"
+"false)/POWER(0.3048,2) As sqft_sphere, ST_Area(the_geog) As sqm_spheroid\n"
+"                FROM (SELECT\n"
+"                geography(\n"
+"                ST_Transform(\n"
+"                        ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,743265.625 2967416,743238 2967416))',\n"
+"                                2249\n"
+"                                ) ,4326\n"
+"                        )\n"
+"                )\n"
+"        ) As foo(the_geog);\n"
+" sqft_spheroid   |   sqft_sphere    |   sqm_spheroid\n"
+"-----------------+------------------+------------------\n"
+"928.684405217197 | 927.186481558724 | 86.2776044452694\n"
+"\n"
+" --if your data is in geography already\n"
+" SELECT ST_Area(the_geog)/POWER(0.3048,2) As  sqft, ST_Area(the_geog) As "
+"sqm\n"
+"        FROM somegeogtable;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:524
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeographyFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
+"<xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:530
+#, no-c-format
+msgid "ST_Azimuth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:532
+#, no-c-format
+msgid ""
+"Returns the north-based azimuth as the angle in radians measured clockwise "
+"from the vertical on pointA to pointB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:535
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Azimuth</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>pointA</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>pointB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Azimuth</"
+"function></funcdef> <paramdef><type>geography </type><parameter>pointA</"
+"parameter></paramdef> <paramdef><type>geography </type><parameter>pointB</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:551
+#, no-c-format
+msgid ""
+"Returns the azimuth in radians of the segment defined by the given point-"
+"geometries, or NULL if the two points are coincident. The azimuth is north-"
+"based and is measured clockwise: North = 0; East = PI/2; South = PI; West = "
+"3PI/2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:554
+#, no-c-format
+msgid ""
+"The Azimuth is mathematical concept defined as the angle, in this case "
+"measured in radian, between a reference plane and a point."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:557
+#, no-c-format
+msgid "Availability: 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:558
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:559
+#, no-c-format
+msgid ""
+"Azimuth is especially useful in conjunction with ST_Translate for shifting "
+"an object along its perpendicular axis. See upgis_lineshift <ulink url="
+"\"http://trac.osgeo.org/postgis/wiki/UsersWikiplpgsqlfunctions"
+"\">Plpgsqlfunctions PostGIS wiki section</ulink> for example of this."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:565
+#, no-c-format
+msgid "Geometry Azimuth in degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:566
+#, no-c-format
+msgid ""
+"SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as "
+"degA_B,\n"
+"        ST_Azimuth(ST_Point(75,100), ST_Point(25,45))/(2*pi())*360 As "
+"degB_A;\n"
+"        \n"
+"-- NOTE easier to remember syntax using PostgreSQL built-in degrees function "
+"--\n"
+"-- Both yield same answer --\n"
+"SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degA_B,\n"
+"        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As degB_A;\n"
+"\n"
+"      dega_b       |     degb_a\n"
+"------------------+------------------\n"
+" 42.2736890060937 | 222.273689006094"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:576
+#, no-c-format
+msgid ""
+"Green: the start Point(25,45) with its vertical. Yellow: degA_B as the path "
+"to travel (azimuth)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:585
+#, no-c-format
+msgid ""
+"Green: the start Point(75,100) with its vertical. Yellow: degB_A as the path "
+"to travel (azimuth)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:596
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Translate\"/>, <xref linkend=\"ST_Project\"/>, <ulink "
+"url=\"http://www.postgresql.org/docs/current/interactive/functions-math.html"
+"\">PostgreSQL Math Functions</ulink>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:603
+#, no-c-format
+msgid "ST_Centroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:605
+#, no-c-format
+msgid "Returns the geometric center of a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:610
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Centroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:622
+#, no-c-format
+msgid ""
+"Computes the geometric center of a geometry, or equivalently, the center of "
+"mass of the geometry as a <varname>POINT</varname>. For [<varname>MULTI</"
+"varname>]<varname>POINT</varname>s, this is computed as the arithmetic mean "
+"of the input coordinates. For [<varname>MULTI</varname>]<varname>LINESTRING</"
+"varname>s, this is computed as the weighted length of each line segment. For "
+"[<varname>MULTI</varname>]<varname>POLYGON</varname>s, \"weight\" is thought "
+"in terms of area. If an empty geometry is supplied, an empty "
+"<varname>GEOMETRYCOLLECTION</varname> is returned. If <varname>NULL</"
+"varname> is supplied, <varname>NULL</varname> is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:634
+#, no-c-format
+msgid ""
+"The centroid is equal to the centroid of the set of component Geometries of "
+"highest dimension (since the lower-dimension geometries contribute zero "
+"\"weight\" to the centroid)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:638
+#, no-c-format
+msgid ""
+"Computation will be more accurate if performed by the GEOS module (enabled "
+"at compile time)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:642
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.4, 9.5.5"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:648
+#, no-c-format
+msgid ""
+"In each of the following illustrations, the blue dot represents the centroid "
+"of the source geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:661
+#, no-c-format
+msgid "Centroid of a <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:672
+#, no-c-format
+msgid "Centroid of a <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:685
+#, no-c-format
+msgid "Centroid of a <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:696
+#, no-c-format
+msgid "Centroid of a <varname>GEOMETRYCOLLECTION</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:705
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 "
+"1, 0 3, 1 1, 2 0, 6 0, 7 8, 9 8, 10 6 )'));\n"
+"                                st_astext\n"
+"------------------------------------------\n"
+" POINT(2.30769230769231 3.30769230769231)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:717
+#, no-c-format
+msgid "ST_ClosestPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:719
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the 2-dimensional point on g1 that is closest to g2. "
+"This is the first point of the shortest line.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:725
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClosestPoint</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:740
+#, no-c-format
+msgid ""
+"<para>Returns the 2-dimensional point on g1 that is closest to g2. This is "
+"the first point of the shortest line.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:743
+#, no-c-format
+msgid ""
+"If you have a 3D Geometry, you may prefer to use <xref linkend="
+"\"ST_3DClosestPoint\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:744 reference_measure.xml:1699
+#: reference_measure.xml:1852 reference_measure.xml:2448
+#: reference_measure.xml:3027
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:758
+#, no-c-format
+msgid ""
+"Closest between point and linestring is the point itself, but closest point "
+"between a linestring and point is the point on line string that is closest."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:762
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_ClosestPoint(pt,line)) AS cp_pt_line, \n"
+"        ST_AsText(ST_ClosestPoint(line,pt)) As cp_line_pt\n"
+"FROM (SELECT 'POINT(100 100)'::geometry As pt, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry As "
+"line\n"
+"        ) As foo;\n"
+"\n"
+"        \n"
+"   cp_pt_line   |                cp_line_pt\n"
+"----------------+------------------------------------------\n"
+" POINT(100 100) | POINT(73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:770
+#, no-c-format
+msgid "closest point on polygon A to polygon B"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:773
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"                ST_ClosestPoint(\n"
+"                        ST_GeomFromText('POLYGON((175 150, 20 40, 50 60, 125 "
+"100, 175 150))'),\n"
+"                        ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                        ) \n"
+"                ) As ptwkt;\n"
+"                \n"
+"                  ptwkt\n"
+"------------------------------------------\n"
+" POINT(140.752120669087 125.695053378061)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:785
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
+"linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_MaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:791
+#, no-c-format
+msgid "ST_Contains"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:793
+#, no-c-format
+msgid ""
+"Returns true if and only if no points of B lie in the exterior of A, and at "
+"least one point of the interior of B lies in the interior of A."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:798
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:813
+#, no-c-format
+msgid ""
+"Geometry A contains Geometry B if and only if no points of B lie in the "
+"exterior of A, and at least one point of the interior of B lies in the "
+"interior of A. An important subtlety of this definition is that A does not "
+"contain its boundary, but A does contain itself. Contrast that to <xref "
+"linkend=\"ST_ContainsProperly\"/> where geometry A does not Contain Properly "
+"itself."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:817
+#, no-c-format
+msgid ""
+"Returns TRUE if geometry B is completely inside geometry A. For this "
+"function to make sense, the source geometries must both be of the same "
+"coordinate projection, having the same SRID. ST_Contains is the inverse of "
+"ST_Within. So ST_Contains(A,B) implies ST_Within(B,A) except in the case of "
+"invalid geometries where the result is always false regardless or not "
+"defined."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:822 reference_measure.xml:1049
+#: reference_measure.xml:1131 reference_measure.xml:1496
+#: reference_measure.xml:2579 reference_measure.xml:2932
+#: reference_measure.xml:3249
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:825 reference_measure.xml:987
+#: reference_measure.xml:1052 reference_measure.xml:1134
+#: reference_measure.xml:1238 reference_measure.xml:1493
+#: reference_measure.xml:3130 reference_measure.xml:3252
+#, no-c-format
+msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:829 reference_measure.xml:991
+#: reference_measure.xml:1060 reference_measure.xml:1138
+#: reference_measure.xml:3256
+#, no-c-format
+msgid ""
+"Do not use this function with invalid geometries. You will get unexpected "
+"results."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:832
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Contains."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:837 reference_measure.xml:1071
+#: reference_measure.xml:1146 reference_measure.xml:1502
+#: reference_measure.xml:2117 reference_measure.xml:2588
+#: reference_measure.xml:3264
+#, no-c-format
+msgid ""
+"NOTE: this is the \"allowable\" version that returns a boolean, not an "
+"integer."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:840
+#, no-c-format
+msgid ""
+"&sfs_compliant; s2.1.1.2 // s2.1.13.3 - same as within(geometry B, geometry "
+"A)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:842
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.31"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:844 reference_measure.xml:1075
+#: reference_measure.xml:1150
+#, no-c-format
+msgid ""
+"There are certain subtleties to ST_Contains and ST_Within that are not "
+"intuitively obvious. For details check out <ulink url=\"http://lin-ear-th-"
+"inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html"
+"\">Subtleties of OGC Covers, Contains, Within</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:851
+#, no-c-format
+msgid ""
+"The <function>ST_Contains</function> predicate returns <varname>TRUE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:863
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:873 reference_measure.xml:3208
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>POINT</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:884 reference_measure.xml:924
+#: reference_measure.xml:3177
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:894 reference_measure.xml:2625
+#: reference_measure.xml:3157 reference_measure.xml:3167
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:902
+#, no-c-format
+msgid ""
+"The <function>ST_Contains</function> predicate returns <varname>FALSE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:914
+#, no-c-format
+msgid "<varname>POLYGON</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:932
+#, no-c-format
+msgid ""
+"-- A circle within a circle\n"
+"SELECT ST_Contains(smallc, bigc) As smallcontainsbig,\n"
+"           ST_Contains(bigc,smallc) As bigcontainssmall,\n"
+"           ST_Contains(bigc, ST_Union(smallc, bigc)) as bigcontainsunion,\n"
+"           ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion,\n"
+"           ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"           ST_Contains(bigc, ST_ExteriorRing(bigc)) As bigcontainsexterior\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"                         ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As "
+"bigc) As foo;\n"
+"\n"
+"-- Result\n"
+"  smallcontainsbig | bigcontainssmall | bigcontainsunion | bigisunion | "
+"bigcoversexterior | bigcontainsexterior\n"
+"------------------+------------------+------------------+------------"
+"+-------------------+---------------------\n"
+" f                | t                | t                | t          | "
+"t        | f\n"
+"\n"
+"-- Example demonstrating difference between contains and contains properly\n"
+"SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
+"acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
+"   ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+"FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
+"                         ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
+"                         ( ST_Point(1,1) )\n"
+"          ) As foo(geomA);\n"
+"\n"
+"  geomtype    | acontainsa | acontainspropa | acontainsba | acontainspropba\n"
+"--------------+------------+----------------+-------------"
+"+-----------------\n"
+"ST_Polygon    | t          | f              | f           | f\n"
+"ST_LineString | t          | f              | f           | f\n"
+"ST_Point      | t          | t              | f           | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:937
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ContainsProperly\"/>, <xref linkend=\"ST_Covers\"/>, "
+"<xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Equals\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:943
+#, no-c-format
+msgid "ST_ContainsProperly"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:945
+#, no-c-format
+msgid ""
+"Returns true if B intersects the interior of A but not the boundary (or "
+"exterior). A does not contain properly itself, but does contain itself."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:950
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_ContainsProperly</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:965
+#, no-c-format
+msgid ""
+"Returns true if B intersects the interior of A but not the boundary (or "
+"exterior)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:967
+#, no-c-format
+msgid "A does not contain properly itself, but does contain itself."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:968
+#, no-c-format
+msgid ""
+"Every point of the other geometry is a point of this geometry's interior. "
+"The DE-9IM Intersection Matrix for the two geometries matches [T**FF*FF*] "
+"used in <xref linkend=\"ST_Relate\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:972
+#, no-c-format
+msgid ""
+"From JTS docs slightly reworded: The advantage to using this predicate over "
+"<xref linkend=\"ST_Contains\"/> and <xref linkend=\"ST_Intersects\"/> is "
+"that it can be computed efficiently, with no need to compute topology at "
+"individual points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:974
+#, no-c-format
+msgid ""
+"An example use case for this predicate is computing the intersections of a "
+"set of geometries with a large polygonal geometry. Since intersection is a "
+"fairly slow operation, it can be more efficient to use containsProperly to "
+"filter out test geometries which lie wholly inside the area. In these cases "
+"the intersection is known a priori to be exactly the original test geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:984
+#, no-c-format
+msgid "Availability: 1.4.0 - requires GEOS >= 3.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:994
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_ContainsProperly."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1003
+#, no-c-format
+msgid ""
+"--a circle within a circle\n"
+"        SELECT ST_ContainsProperly(smallc, bigc) As smallcontainspropbig,\n"
+"        ST_ContainsProperly(bigc,smallc) As bigcontainspropsmall,\n"
+"        ST_ContainsProperly(bigc, ST_Union(smallc, bigc)) as "
+"bigcontainspropunion,\n"
+"        ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion,\n"
+"        ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"        ST_ContainsProperly(bigc, ST_ExteriorRing(bigc)) As "
+"bigcontainsexterior\n"
+"        FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As "
+"smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+"  smallcontainspropbig | bigcontainspropsmall | bigcontainspropunion | "
+"bigisunion | bigcoversexterior | bigcontainsexterior\n"
+"------------------+------------------+------------------+------------"
+"+-------------------+---------------------\n"
+" f                     | t                    | f                    | "
+"t          | t                 | f\n"
+"\n"
+" --example demonstrating difference between contains and contains properly\n"
+" SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
+"acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
+" ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+" FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
+"                  ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
+"                  ( ST_Point(1,1) )\n"
+"        ) As foo(geomA);\n"
+"\n"
+"  geomtype    | acontainsa | acontainspropa | acontainsba | acontainspropba\n"
+"--------------+------------+----------------+-------------"
+"+-----------------\n"
+"ST_Polygon    | t          | f              | f           | f\n"
+"ST_LineString | t          | f              | f           | f\n"
+"ST_Point      | t          | t              | f           | f"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1008
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_Contains\"/>, <xref "
+"linkend=\"ST_Covers\"/>, <xref linkend=\"ST_CoveredBy\"/>, <xref linkend="
+"\"ST_Equals\"/>, <xref linkend=\"ST_Relate\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1014
+#, no-c-format
+msgid "ST_Covers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1016
+#, no-c-format
+msgid "Returns 1 (TRUE) if no point in Geometry B is outside Geometry A"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1021
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogpolyA</"
+"parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>geogpointB</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1046
+#, no-c-format
+msgid ""
+"Returns 1 (TRUE) if no point in Geometry/Geography B is outside Geometry/"
+"Geography A"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1056
+#, no-c-format
+msgid "For geography only Polygon covers point is supported."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1063
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Covers."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1068 reference_measure.xml:1140
+#, no-c-format
+msgid "Availability: 1.2.2 - requires GEOS >= 3.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1069
+#, no-c-format
+msgid "Availability: 1.5 - support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1074 reference_measure.xml:1149
+#, no-c-format
+msgid "Not an OGC standard, but Oracle has it too."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1081
+#, no-c-format
+msgid "Geometry example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1082
+#, no-c-format
+msgid ""
+"--a circle covering a circle\n"
+"SELECT ST_Covers(smallc,smallc) As smallinsmall,\n"
+"        ST_Covers(smallc, bigc) As smallcoversbig,\n"
+"        ST_Covers(bigc, ST_ExteriorRing(bigc)) As bigcoversexterior,\n"
+"        ST_Contains(bigc, ST_ExteriorRing(bigc)) As bigcontainsexterior\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+" smallinsmall | smallcoversbig | bigcoversexterior | bigcontainsexterior\n"
+"--------------+----------------+-------------------+---------------------\n"
+" t            | f              | t                 | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1083
+#, no-c-format
+msgid "Geeography Example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1084
+#, no-c-format
+msgid ""
+"-- a point with a 300 meter buffer compared to a point, a point and its 10 "
+"meter buffer\n"
+"SELECT ST_Covers(geog_poly, geog_pt) As poly_covers_pt, \n"
+"        ST_Covers(ST_Buffer(geog_pt,10), geog_pt) As buff_10m_covers_cent\n"
+"        FROM (SELECT ST_Buffer(ST_GeogFromText('SRID=4326;POINT(-99.327 "
+"31.4821)'), 300) As geog_poly,\n"
+"                                ST_GeogFromText('SRID=4326;POINT(-99.33 "
+"31.483)') As geog_pt ) As foo;\n"
+"                                \n"
+" poly_covers_pt | buff_10m_covers_cent\n"
+"----------------+------------------\n"
+" f              | t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1089
+#, no-c-format
+msgid ", <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1095
+#, no-c-format
+msgid "ST_CoveredBy"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1097
+#, no-c-format
+msgid ""
+"<refpurpose>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
+"Geometry/Geography B</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1102
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geogA</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geogB</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1128
+#, no-c-format
+msgid ""
+"<para>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
+"Geometry/Geography B</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1141
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_CoveredBy."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1156
+#, no-c-format
+msgid ""
+"--a circle coveredby a circle\n"
+"SELECT ST_CoveredBy(smallc,smallc) As smallinsmall,\n"
+"        ST_CoveredBy(smallc, bigc) As smallcoveredbybig,\n"
+"        ST_CoveredBy(ST_ExteriorRing(bigc), bigc) As exteriorcoveredbybig,\n"
+"        ST_Within(ST_ExteriorRing(bigc),bigc) As exeriorwithinbig\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(1 2)'), 20) As bigc) As foo;\n"
+"        --Result\n"
+" smallinsmall | smallcoveredbybig | exteriorcoveredbybig | exeriorwithinbig\n"
+"--------------+-------------------+----------------------"
+"+------------------\n"
+" t            | t                 | t                    | f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1161
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref "
+"linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1167
+#, no-c-format
+msgid "ST_Crosses"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1169
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the supplied geometries have some, but "
+"not all, interior points in common."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1175
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Crosses</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type><parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1188
+#, no-c-format
+msgid ""
+"<function>ST_Crosses</function> takes two geometry objects and returns "
+"<varname>TRUE</varname> if their intersection \"spatially cross\", that is, "
+"the geometries have some, but not all interior points in common. The "
+"intersection of the interiors of the geometries must not be the empty set "
+"and must have a dimensionality less than the the maximum dimension of the "
+"two input geometries. Additionally, the intersection of the two geometries "
+"must not equal either of the source geometries. Otherwise, it returns "
+"<varname>FALSE</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1197
+#, no-c-format
+msgid "In mathematical terms, this is expressed as:"
+msgstr ""
+
+#. Tag: remark
+#: reference_measure.xml:1199
+#, no-c-format
+msgid ""
+"TODO: Insert appropriate MathML markup here or use a gif. Simple HTML markup "
+"does not work well in both IE and Firefox."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1210
+#, no-c-format
+msgid "The DE-9IM Intersection Matrix for the two geometries is:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1214
+#, no-c-format
+msgid ""
+"<markup>T*T******</markup> (for Point/Line, Point/Area, and Line/Area "
+"situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1219
+#, no-c-format
+msgid ""
+"<markup>T*****T**</markup> (for Line/Point, Area/Point, and Area/Line "
+"situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1224
+#, no-c-format
+msgid "<markup>0********</markup> (for Line/Line situations)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1228
+#, no-c-format
+msgid "For any other combination of dimensions this predicate returns false."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1231
+#, no-c-format
+msgid ""
+"The OpenGIS Simple Features Specification defines this predicate only for "
+"Point/Line, Point/Area, Line/Line, and Line/Area situations. JTS / GEOS "
+"extends the definition to apply to Line/Point, Area/Point and Area/Line "
+"situations as well. This makes the relation symmetric."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1247
+#, no-c-format
+msgid "&sfs_compliant; s2.1.13.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1248
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.29"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1254 reference_measure.xml:2597
+#, no-c-format
+msgid "The following illustrations all return <varname>TRUE</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1266
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1276
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1288
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>POLYGON</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1298 reference_measure.xml:2617
+#: reference_measure.xml:3188 reference_measure.xml:3198
+#, no-c-format
+msgid "<varname>LINESTRING</varname> / <varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1306
+#, no-c-format
+msgid ""
+"Consider a situation where a user has two tables: a table of roads and a "
+"table of highways."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1314
+#, no-c-format
+msgid ""
+"CREATE TABLE roads (\n"
+"  id serial NOT NULL,\n"
+"  the_geom geometry,\n"
+"  CONSTRAINT roads_pkey PRIMARY KEY (road_id)\n"
+");"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1318
+#, no-c-format
+msgid ""
+"CREATE TABLE highways (\n"
+"  id serial NOT NULL,\n"
+"  the_gem geometry,\n"
+"  CONSTRAINT roads_pkey PRIMARY KEY (road_id)\n"
+");"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1325
+#, no-c-format
+msgid ""
+"To determine a list of roads that cross a highway, use a query similiar to:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1329
+#, no-c-format
+msgid ""
+"SELECT roads.id\n"
+"FROM roads, highways\n"
+"WHERE ST_Crosses(roads.the_geom, highways.the_geom);"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1336
+#, no-c-format
+msgid "ST_LineCrossingDirection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1338
+#, no-c-format
+msgid ""
+"Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
+"crossing behavior. 0 is no crossing."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1343
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_LineCrossingDirection</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>linestringA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>linestringB</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1354
+#, no-c-format
+msgid ""
+"Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
+"crossing behavior. 0 is no crossing. This is only supported for "
+"<varname>LINESTRING</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1355
+#, no-c-format
+msgid "Definition of integer constants is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1358
+#, no-c-format
+msgid "0: LINE NO CROSS"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1361
+#, no-c-format
+msgid "-1: LINE CROSS LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1364
+#, no-c-format
+msgid "1: LINE CROSS RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1367
+#, no-c-format
+msgid "-2: LINE MULTICROSS END LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1370
+#, no-c-format
+msgid "2: LINE MULTICROSS END RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1373
+#, no-c-format
+msgid "-3: LINE MULTICROSS END SAME FIRST LEFT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1376
+#, no-c-format
+msgid "3: LINE MULTICROSS END SAME FIRST RIGHT"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1380
+#, no-c-format
+msgid "Availability: 1.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1398
+#, no-c-format
+msgid ""
+"Line 1 (green), Line 2 ball is start point, triangle are end points. Query "
+"below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1402
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+"SELECT\n"
+" ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+" ST_GeomFromText('LINESTRING(171 154,20 140,71 74,161 53)') As line2\n"
+"        ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"           3 |          -3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1412 reference_measure.xml:1426
+#: reference_measure.xml:1440
+#, no-c-format
+msgid ""
+"Line 1 (green), Line 2 (blue) ball is start point, triangle are end points. "
+"Query below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1416
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+" SELECT\n"
+"  ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"  ST_GeomFromText('LINESTRING (171 154, 20 140, 71 74, 2.99 90.16)') As "
+"line2\n"
+") As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"           2 |          -2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1430
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"        ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (\n"
+" SELECT\n"
+"  ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"  ST_GeomFromText('LINESTRING (20 140, 71 74, 161 53)') As line2\n"
+"  ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"          -1 |          1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1444
+#, no-c-format
+msgid ""
+"SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
+"          ST_LineCrossingDirection(foo.line2, foo.line1) As l2_cross_l1\n"
+"FROM (SELECT\n"
+"        ST_GeomFromText('LINESTRING(25 169,89 114,40 70,86 43)') As line1,\n"
+"        ST_GeomFromText('LINESTRING(2.99 90.16,71 74,20 140,171 154)') As "
+"line2\n"
+"        ) As foo;\n"
+"\n"
+" l1_cross_l2 | l2_cross_l1\n"
+"-------------+-------------\n"
+"          -2 |          2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1452
+#, no-c-format
+msgid ""
+"SELECT s1.gid, s2.gid, ST_LineCrossingDirection(s1.the_geom, s2.the_geom)\n"
+"        FROM streets s1 CROSS JOIN streets s2 ON (s1.gid != s2.gid AND s1."
+"the_geom && s2.the_geom )\n"
+"WHERE ST_CrossingDirection(s1.the_geom, s2.the_geom) > 0;"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1465
+#, no-c-format
+msgid "ST_Disjoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1467
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries do not \"spatially intersect\" - if they do "
+"not share any space together."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1473
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> "
+"<type>geometry</type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry</type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1488
+#, no-c-format
+msgid ""
+"Overlaps, Touches, Within all imply geometries are not spatially disjoint. "
+"If any of the aforementioned returns true, then the geometries are not "
+"spatially disjoint. Disjoint implies false for spatial intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1498
+#, no-c-format
+msgid "This function call does not use indexes"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1505
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - a.Relate(b, 'FF*FF****')"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1507
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.26"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1512
+#, no-c-format
+msgid ""
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" t\n"
+"(1 row)\n"
+"SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::"
+"geometry);\n"
+" st_disjoint\n"
+"---------------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1517
+#, no-c-format
+msgid "<para>ST_Intersects</para>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1523
+#, no-c-format
+msgid "ST_Distance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1525
+#, no-c-format
+msgid ""
+"For geometry type Returns the 2-dimensional cartesian minimum distance "
+"(based on spatial ref) between two geometries in projected units. For "
+"geography type defaults to return spheroidal minimum distance between two "
+"geographies in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1529
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Distance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Distance</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>gg1</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>gg2</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Distance</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1567
+#, no-c-format
+msgid ""
+"For geometry type returns the 2-dimensional minimum cartesian distance "
+"between two geometries in projected units (spatial ref units). For geography "
+"type defaults to return the minimum distance around WGS 84 spheroid between "
+"two geographies in meters. Pass in false to return answer in sphere instead "
+"of spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1572
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.23"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1573 reference_measure.xml:2039
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1576
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 geography support was introduced in 1.5. Speed "
+"improvements for planar to better handle large or many vertex geometries"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1577 reference_measure.xml:1949
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 improved speed for geography. See <ulink url=\"http://blog."
+"opengeo.org/2012/07/12/making-geography-faster/\">Making Geography faster</"
+"ulink> for details."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1578
+#, no-c-format
+msgid "Enhanced: 2.1.0 - support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1582
+#, no-c-format
+msgid "Basic Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1584
+#, no-c-format
+msgid ""
+"--Geometry example - units in planar degrees 4326 is WGS 84 long lat "
+"unit=degrees\n"
+"SELECT ST_Distance(\n"
+"                ST_GeomFromText('POINT(-72.1235 42.3521)',4326),\n"
+"                ST_GeomFromText('LINESTRING(-72.1260 42.45, -72.123 "
+"42.1546)', 4326)\n"
+"        );\n"
+"st_distance\n"
+"-----------------\n"
+"0.00150567726382282\n"
+"\n"
+"-- Geometry example - units in meters (SRID: 26986 Massachusetts state plane "
+"meters) (most accurate for Massachusetts)\n"
+"SELECT ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),26986),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),26986)\n"
+"                );\n"
+"st_distance\n"
+"-----------------\n"
+"123.797937878454\n"
+"\n"
+"-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
+"area) (least accurate)\n"
+"SELECT ST_Distance(\n"
+"                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
+"42.3521)',4326),2163),\n"
+"                        ST_Transform(ST_GeomFromText('LINESTRING(-72.1260 "
+"42.45, -72.123 42.1546)', 4326),2163)\n"
+"                );\n"
+"\n"
+"st_distance\n"
+"------------------\n"
+"126.664256056812"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1587 reference_measure.xml:2131
+#: reference_measure.xml:2182
+#, no-c-format
+msgid "Geography Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1588
+#, no-c-format
+msgid ""
+"-- same as geometry example but note units in meters - use sphere for "
+"slightly faster less accurate\n"
+"SELECT ST_Distance(gg1, gg2) As spheroid_dist, ST_Distance(gg1, gg2, false) "
+"As sphere_dist \n"
+"FROM (SELECT\n"
+"        ST_GeographyFromText('SRID=4326;POINT(-72.1235 42.3521)') As gg1,\n"
+"        ST_GeographyFromText('SRID=4326;LINESTRING(-72.1260 42.45, -72.123 "
+"42.1546)') As gg2\n"
+"        ) As foo  ;\n"
+"\n"
+"  spheroid_dist   |   sphere_dist\n"
+"------------------+------------------\n"
+" 123.802076746848 | 123.475736916397"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1596
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_Distance_Sphere\"/>, "
+"<xref linkend=\"ST_Distance_Spheroid\"/>, <xref linkend=\"ST_MaxDistance\"/"
+">, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1602
+#, no-c-format
+msgid "ST_HausdorffDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1604
+#, no-c-format
+msgid ""
+"Returns the Hausdorff distance between two geometries. Basically a measure "
+"of how similar or dissimilar 2 geometries are. Units are in the units of the "
+"spatial reference system of the geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1609
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_HausdorffDistance</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_HausdorffDistance</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </"
+"type> <parameter>g2</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>densifyFrac</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1637
+#, no-c-format
+msgid ""
+"Implements algorithm for computing a distance metric which can be thought of "
+"as the \"Discrete Hausdorff Distance\". This is the Hausdorff distance "
+"restricted to discrete points for one of the geometries. <ulink url=\"http://"
+"en.wikipedia.org/wiki/Hausdorff_distance\">Wikipedia article on Hausdorff "
+"distance</ulink> <ulink url=\"http://lin-ear-th-inking.blogspot.com/2009/01/"
+"computing-geometric-similarity.html\">Martin Davis note on how Hausdorff "
+"Distance calculation was used to prove correctness of the "
+"CascadePolygonUnion approach.</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1640
+#, no-c-format
+msgid ""
+"When densifyFrac is specified, this function performs a segment "
+"densification before computing the discrete hausdorff distance. The "
+"densifyFrac parameter sets the fraction by which to densify each segment. "
+"Each segment will be split into a number of equal-length subsegments, whose "
+"fraction of the total length is closest to the given fraction."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1645
+#, no-c-format
+msgid ""
+"The current implementation supports only vertices as the discrete locations. "
+"This could be extended to allow an arbitrary density of points to be used."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1650
+#, no-c-format
+msgid ""
+"This algorithm is NOT equivalent to the standard Hausdorff distance. "
+"However, it computes an approximation that is correct for a large subset of "
+"useful cases. One important part of this subset is Linestrings that are "
+"roughly parallel to each other, and roughly equal in length. This is a "
+"useful metric for line matching."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1655
+#, no-c-format
+msgid "Availability: 1.5.0 - requires GEOS >= 3.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1661
+#, no-c-format
+msgid ""
+"For each building, find the parcel that best represents it. First we require "
+"the parcel intersect with the geometry. DISTINCT ON guarantees we get each "
+"building listed only once, the ORDER BY .. ST_HausdorffDistance gives us a "
+"preference of parcel that is most similar to the building."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1663
+#, no-c-format
+msgid ""
+"SELECT DISTINCT ON(buildings.gid) buildings.gid, parcels.parcel_id \n"
+"   FROM buildings INNER JOIN parcels ON ST_Intersects(buildings.geom,parcels."
+"geom) \n"
+"     ORDER BY buildings.gid, ST_HausdorffDistance(buildings.geom, parcels."
+"geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1665
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_HausdorffDistance(\n"
+"                                'LINESTRING (0 0, 2 0)'::geometry,\n"
+"                                'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                         1\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1666
+#, no-c-format
+msgid ""
+"postgis=# SELECT st_hausdorffdistance('LINESTRING (130 0, 0 0, 0 150)'::"
+"geometry, 'LINESTRING (10 10, 10 150, 130 10)'::geometry, 0.5);\n"
+" st_hausdorffdistance\n"
+" ----------------------\n"
+"                                        70\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1673
+#, no-c-format
+msgid "ST_MaxDistance"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1675
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional largest distance between two geometries in "
+"projected units."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1681
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_MaxDistance</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1694
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional maximum distance between two geometries in "
+"projected units. If g1 and g2 is the same geometry the function will return "
+"the distance between the two vertices most far from each other in that "
+"geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1704
+#, no-c-format
+msgid "Basic furthest distance the point is to any part of the line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1705
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 "
+"2 )'::geometry);\n"
+"   st_maxdistance\n"
+"-----------------\n"
+" 2\n"
+"(1 row)\n"
+"\n"
+"postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 2, 2 "
+"2 )'::geometry);\n"
+"  st_maxdistance  \n"
+"------------------\n"
+" 2.82842712474619\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1711
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1717
+#, no-c-format
+msgid "ST_Distance_Sphere"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1719
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat geometries. Uses a "
+"spherical earth and radius of 6370986 meters. Faster than "
+"ST_Distance_Spheroid <xref linkend=\"ST_Distance_Spheroid\"/>, but less "
+"accurate. PostGIS versions prior to 1.5 only implemented for points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1727
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Distance_Sphere</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1738
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat points. Uses a "
+"spherical earth and radius of 6370986 meters. Faster than <xref linkend="
+"\"ST_Distance_Spheroid\"/>, but less accurate. PostGIS Versions prior to 1.5 "
+"only implemented for points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1743
+#, no-c-format
+msgid ""
+"This function currently does not look at the SRID of a geometry and will "
+"always assume its in WGS 84 long lat. Prior versions of this function only "
+"support points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1746 reference_measure.xml:1794
+#, no-c-format
+msgid ""
+"Availability: 1.5 - support for other geometry types besides points was "
+"introduced. Prior versions only work with points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1753
+#, no-c-format
+msgid ""
+"SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,\n"
+"round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As dist_utm11_meters,\n"
+"round(CAST(ST_Distance(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 "
+"38)', 4326)) As numeric),5) As dist_degrees,\n"
+"round(CAST(ST_Distance(ST_Transform(the_geom,32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As min_dist_line_point_meters\n"
+"FROM\n"
+"        (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', "
+"4326) As the_geom) as foo;\n"
+"         dist_meters | dist_utm11_meters | dist_degrees | "
+"min_dist_line_point_meters\n"
+"        -------------+-------------------+--------------"
+"+----------------------------\n"
+"                70424.47 |          70438.00 |      0.72900 "
+"|                   65871.18"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1760
+#, no-c-format
+msgid ", <xref linkend=\"ST_Distance_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1766
+#, no-c-format
+msgid "ST_Distance_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1768
+#, no-c-format
+msgid ""
+"Returns the minimum distance between two lon/lat geometries given a "
+"particular spheroid. PostGIS versions prior to 1.5 only support points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1775
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Distance_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</"
+"parameter></paramdef> <paramdef><type>spheroid </type> "
+"<parameter>measurement_spheroid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1787
+#, no-c-format
+msgid ""
+"Returns minimum distance in meters between two lon/lat geometries given a "
+"particular spheroid. See the explanation of spheroids given for <xref "
+"linkend=\"ST_Length_Spheroid\"/>. PostGIS version prior to 1.5 only support "
+"points."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1791
+#, no-c-format
+msgid ""
+"This function currently does not look at the SRID of a geometry and will "
+"always assume its represented in the coordinates of the passed in spheroid. "
+"Prior versions of this function only support points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1801
+#, no-c-format
+msgid ""
+"SELECT round(CAST(\n"
+"                ST_Distance_Spheroid(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326), 'SPHEROID[\"WGS "
+"84\",6378137,298.257223563]')\n"
+"                        As numeric),2) As dist_meters_spheroid,\n"
+"                round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As "
+"dist_meters_sphere,\n"
+"round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
+"                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
+"As numeric),2) As dist_utm11_meters\n"
+"FROM\n"
+"        (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', "
+"4326) As the_geom) as foo;\n"
+" dist_meters_spheroid | dist_meters_sphere | dist_utm11_meters\n"
+"----------------------+--------------------+-------------------\n"
+"                         70454.92 |           70424.47 |          70438.00"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1808
+#, no-c-format
+msgid ", <xref linkend=\"ST_Distance_Sphere\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1814
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1816
+#, no-c-format
+msgid ""
+"Returns true if all of the geometries are within the specified distance of "
+"one another"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1822
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_DFullyWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1840
+#, no-c-format
+msgid ""
+"Returns true if the geometries is fully within the specified distance of one "
+"another. The distance is specified in units defined by the spatial reference "
+"system of the geometries. For this function to make sense, the source "
+"geometries must both be of the same coordinate projection, having the same "
+"SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1857
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_DFullyWithin(geom_a, geom_b, 10) as DFullyWithin10, "
+"ST_DWithin(geom_a, geom_b, 10) as DWithin10, ST_DFullyWithin(geom_a, geom_b, "
+"20) as DFullyWithin20 from \n"
+"                (select ST_GeomFromText('POINT(1 1)') as geom_a,"
+"ST_GeomFromText('LINESTRING(1 5, 2 7, 1 9, 14 12)') as geom_b) t1;\n"
+"   \n"
+"-----------------\n"
+" DFullyWithin10 | DWithin10 | DFullyWithin20 |\n"
+"---------------+----------+---------------+\n"
+" f             | t        | t             |"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1863
+#, no-c-format
+msgid ", <xref linkend=\"ST_DWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1869
+#, no-c-format
+msgid "ST_DWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1871
+#, no-c-format
+msgid ""
+"Returns true if the geometries are within the specified distance of one "
+"another. For geometry units are in those of spatial reference and For "
+"geography units are in meters and measurement is defaulted to "
+"use_spheroid=true (measure around spheroid), for faster check, "
+"use_spheroid=false to measure along sphere."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:1877
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_of_srid</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> "
+"<parameter>gg2</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>distance_meters</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>gg1</parameter></paramdef> "
+"<paramdef><type>geography </type> <parameter>gg2</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>distance_meters</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>use_spheroid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1922
+#, no-c-format
+msgid ""
+"Returns true if the geometries are within the specified distance of one "
+"another."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1924
+#, no-c-format
+msgid ""
+"For Geometries: The distance is specified in units defined by the spatial "
+"reference system of the geometries. For this function to make sense, the "
+"source geometries must both be of the same coordinate projection, having the "
+"same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1929
+#, no-c-format
+msgid ""
+"For geography units are in meters and measurement is defaulted to "
+"use_spheroid=true (measure around WGS 84 spheroid), for faster check, "
+"use_spheroid=false to measure along sphere."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1939
+#, no-c-format
+msgid ""
+"Prior to 1.3, ST_Expand was commonly used in conjunction with && and "
+"ST_Distance to achieve the same effect and in pre-1.3.4 this function was "
+"basically short-hand for that construct. From 1.3.4, ST_DWithin uses a more "
+"short-circuit distance function which should make it more efficient than "
+"prior versions for larger buffer regions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1945
+#, no-c-format
+msgid "Use ST_3DDWithin if you have 3D geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1948
+#, no-c-format
+msgid "Availability: 1.5.0 support for geography was introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1950
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1955
+#, no-c-format
+msgid ""
+"--Find the nearest hospital to each school\n"
+"--that is within 3000 units of the school.\n"
+"-- We do an ST_DWithin search to utilize indexes to limit our search list\n"
+"-- that the non-indexable ST_Distance needs to process\n"
+"--If the units of the spatial reference is meters then units would be "
+"meters\n"
+"SELECT DISTINCT ON (s.gid) s.gid, s.school_name, s.the_geom, h."
+"hospital_name\n"
+"        FROM schools s\n"
+"                LEFT JOIN hospitals h ON ST_DWithin(s.the_geom, h.the_geom, "
+"3000)\n"
+"        ORDER BY s.gid, ST_Distance(s.the_geom, h.the_geom);\n"
+"\n"
+"--The schools with no close hospitals\n"
+"--Find all schools with no hospital within 3000 units\n"
+"--away from the school.  Units is in units of spatial ref (e.g. meters, "
+"feet, degrees)\n"
+"SELECT s.gid, s.school_name\n"
+"        FROM schools s\n"
+"                LEFT JOIN hospitals h ON ST_DWithin(s.the_geom, h.the_geom, "
+"3000)\n"
+"        WHERE h.gid IS NULL;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1961
+#, no-c-format
+msgid ", <xref linkend=\"ST_Expand\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:1967
+#, no-c-format
+msgid "ST_Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:1969
+#, no-c-format
+msgid ""
+"Returns true if the given geometries represent the same geometry. "
+"Directionality is ignored."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:1975
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Equals</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1986
+#, no-c-format
+msgid ""
+"Returns TRUE if the given Geometries are \"spatially equal\". Use this for a "
+"'better' answer than '='. Note by spatially equal we mean ST_Within(A,B) = "
+"true and ST_Within(B,A) = true and also mean ordering of points can be "
+"different but represent the same geometry structure. To verify the order of "
+"points is consistent, use ST_OrderingEquals (it must be noted "
+"ST_OrderingEquals is a little more stringent than simply verifying order of "
+"points are the same)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1995
+#, no-c-format
+msgid ""
+"This function will return false if either geometry is invalid even if they "
+"are binary equal."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1998
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1999
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.24"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2005
+#, no-c-format
+msgid ""
+"SELECT ST_Equals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_equals\n"
+"-----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Equals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 10)')),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_equals\n"
+"-----------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2011
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Reverse\"/>, "
+"<xref linkend=\"ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2018
+#, no-c-format
+msgid "ST_HasArc"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2020
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if a geometry or geometry collection contains a "
+"circular string</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2025
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_HasArc</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2035
+#, no-c-format
+msgid ""
+"<para>Returns true if a geometry or geometry collection contains a circular "
+"string</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2037
+#, no-c-format
+msgid "Availability: 1.2.3?"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2046
+#, no-c-format
+msgid ""
+"SELECT ST_HasArc(ST_Collect('LINESTRING(1 2, 3 4, 5 6)', 'CIRCULARSTRING(1 "
+"1, 2 3, 4 5, 6 7, 5 6)'));\n"
+"                st_hasarc\n"
+"                --------\n"
+"                t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2053
+#, no-c-format
+msgid ", <xref linkend=\"ST_LineToCurve\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2059
+#, no-c-format
+msgid "<refname>ST_Intersects</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2061
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries/Geography \"spatially intersect in 2D\" - "
+"(share any portion of space) and FALSE if they don't (they are Disjoint). "
+"For geography -- tolerance is 0.00001 meters (so any points that close are "
+"considered to intersect)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2067
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2094
+#, no-c-format
+msgid ""
+"If a geometry or geography shares any portion of space then they intersect. "
+"For geography -- tolerance is 0.00001 meters (so any points that are close "
+"are considered to intersect)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2101
+#, no-c-format
+msgid ""
+"Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument for "
+"geometry version. The geography version supports GEOMETRYCOLLECTION since "
+"its a thin wrapper around distance implementation."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2105
+#, no-c-format
+msgid "Performed by the GEOS module (for geometry), geography is native"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2106
+#, no-c-format
+msgid "Availability: 1.5 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2113
+#, no-c-format
+msgid ""
+"For geography, this function has a distance tolerance of about 0.00001 "
+"meters and uses the sphere rather than spheroid calculation."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2120
+#, no-c-format
+msgid ""
+"&sfs_compliant; s2.1.1.2 //s2.1.13.3 - ST_Intersects(g1, g2 ) --> Not "
+"(ST_Disjoint(g1, g2 ))"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2123
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.27"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2128
+#, no-c-format
+msgid ""
+"SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
+"geometry);\n"
+" st_intersects\n"
+"---------------\n"
+" f\n"
+"(1 row)\n"
+"SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::"
+"geometry);\n"
+" st_intersects\n"
+"---------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2132
+#, no-c-format
+msgid ""
+"SELECT ST_Intersects(\n"
+"                ST_GeographyFromText('SRID=4326;LINESTRING(-43.23456 "
+"72.4567,-43.23456 72.4568)'),\n"
+"                ST_GeographyFromText('SRID=4326;POINT(-43.23456 "
+"72.4567772)')\n"
+"                );\n"
+"\n"
+" st_intersects\n"
+"---------------\n"
+"t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2136
+#, no-c-format
+msgid ", <xref linkend=\"ST_Disjoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2141
+#, no-c-format
+msgid "ST_Length"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2143
+#, no-c-format
+msgid ""
+"Returns the 2d length of the geometry if it is a linestring or "
+"multilinestring. geometry are in units of spatial reference and geography "
+"are in meters (default spheroid)"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2146
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Length</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>a_2dlinestring</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float "
+"<function>ST_Length</function></funcdef> <paramdef><type>geography </"
+"type><parameter>geog</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type><parameter>use_spheroid=true</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2161
+#, no-c-format
+msgid ""
+"For geometry: Returns the cartesian 2D length of the geometry if it is a "
+"linestring, multilinestring, ST_Curve, ST_MultiCurve. 0 is returned for "
+"areal geometries. For areal geometries use ST_Perimeter. Geometry: "
+"Measurements are in the units of the spatial reference system of the "
+"geometry. Geography: Units are in meters and also acts as a Perimeter "
+"function for areal geogs."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2165
+#, no-c-format
+msgid ""
+"Currently for geometry this is an alias for ST_Length2D, but this may change "
+"to support higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2166
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Breaking change -- in prior versions applying this to a MULTI/"
+"POLYGON of type geography would give you the perimeter of the POLYGON/"
+"MULTIPOLYGON. In 2.0.0 this was changed to return 0 to be in line with "
+"geometry behavior. Please use ST_Perimeter if you want the perimeter of a "
+"polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2168
+#, no-c-format
+msgid ""
+"For geography measurement defaults spheroid measurement. To use the faster "
+"less accurate sphere use ST_Length(gg,false);"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2169 reference_measure.xml:2674
+#, no-c-format
+msgid "&sfs_compliant; s2.1.5.1"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2170
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.2, 9.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2171
+#, no-c-format
+msgid "Availability: 1.5.0 geography support was introduced in 1.5."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2177
+#, no-c-format
+msgid ""
+"Return length in feet for line string. Note this is in feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2179
+#, no-c-format
+msgid ""
+"SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 "
+"2967450,743265 2967450,\n"
+"743265.625 2967416,743238 2967416)',2249));\n"
+"st_length\n"
+"---------\n"
+" 122.630744000095\n"
+"\n"
+"\n"
+"--Transforming WGS 84 linestring to Massachusetts state plane meters\n"
+"SELECT ST_Length(\n"
+"        ST_Transform(\n"
+"                ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45, "
+"-72.1240 42.45666, -72.123 42.1546)'),\n"
+"                26986\n"
+"        )\n"
+");\n"
+"st_length\n"
+"---------\n"
+"34309.4563576191"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2183
+#, no-c-format
+msgid "Return length of WGS 84 geography line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2184
+#, no-c-format
+msgid ""
+"-- default calculation is using a sphere rather than spheroid\n"
+"SELECT ST_Length(the_geog) As length_spheroid,  ST_Length(the_geog,false) As "
+"length_sphere\n"
+"FROM (SELECT ST_GeographyFromText(\n"
+"'SRID=4326;LINESTRING(-72.1260 42.45, -72.1240 42.45666, -72.123 42.1546)') "
+"As the_geog)\n"
+" As foo;\n"
+" length_spheroid  |  length_sphere\n"
+"------------------+------------------\n"
+" 34310.5703627305 | 34346.2060960742\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2188
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Length_Spheroid\"/"
+">, <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2194
+#, no-c-format
+msgid "ST_Length2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2196
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring. This is an alias for <varname>ST_Length</"
+"varname></refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2202
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_2dlinestring</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2212
+#, no-c-format
+msgid ""
+"<para>Returns the 2-dimensional length of the geometry if it is a linestring "
+"or multi-linestring. This is an alias for <varname>ST_Length</varname></para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2221
+#, no-c-format
+msgid ", <xref linkend=\"ST_3DLength\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2227
+#, no-c-format
+msgid "ST_3DLength"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2229
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2235
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DLength</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_3dlinestring</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2245
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
+"linestring or multi-linestring. For 2-d lines it will just return the 2-d "
+"length (same as ST_Length and ST_Length2D)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2248
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Length3D"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2255
+#, no-c-format
+msgid ""
+"Return length in feet for a 3D cable. Note this is in feet because 2249 is "
+"Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2257
+#, no-c-format
+msgid ""
+"SELECT ST_3DLength(ST_GeomFromText('LINESTRING(743238 2967416 1,743238 "
+"2967450 1,743265 2967450 3,\n"
+"743265.625 2967416 3,743238 2967416 3)',2249));\n"
+"ST_3DLength\n"
+"-----------\n"
+"122.704716741457"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2264
+#, no-c-format
+msgid ", <xref linkend=\"ST_Length2D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2270
+#, no-c-format
+msgid "ST_Length_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2272
+#, no-c-format
+msgid ""
+"Calculates the 2D or 3D length of a linestring/multilinestring on an "
+"ellipsoid. This is useful if the coordinates of the geometry are in "
+"longitude/latitude and a length is desired without reprojection."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2279
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2290
+#, no-c-format
+msgid ""
+"Calculates the length of a geometry on an ellipsoid. This is useful if the "
+"coordinates of the geometry are in longitude/latitude and a length is "
+"desired without reprojection. The ellipsoid is a separate database type and "
+"can be constructed as follows:"
+msgstr ""
+
+#. Tag: literallayout
+#: reference_measure.xml:2296 reference_measure.xml:2348
+#, no-c-format
+msgid ""
+"SPHEROID[<NAME>,<SEMI-MAJOR\n"
+"                  AXIS>,<INVERSE FLATTENING>]"
+msgstr ""
+
+#. Tag: literallayout
+#: reference_measure.xml:2299 reference_measure.xml:2351
+#, no-c-format
+msgid "SPHEROID[\"GRS_1980\",6378137,298.257222101]"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2300 reference_measure.xml:2352
+#, no-c-format
+msgid "Will return 0 for anything that is not a MULTILINESTRING or LINESTRING"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2309
+#, no-c-format
+msgid ""
+"SELECT ST_Length_Spheroid( geometry_column,\n"
+"                          'SPHEROID[\"GRS_1980\",6378137,298.257222101]' )\n"
+"                          FROM geometry_table;\n"
+"\n"
+"SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
+"        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646\n"
+"\n"
+" --3D\n"
+"SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
+"        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"\n"
+"         tot_len      |    len_line1    |    len_line2\n"
+"------------------+-----------------+------------------\n"
+" 85204.5259107402 | 13986.876097711 | 71217.6498130292"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2316
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_3DLength_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2322
+#, no-c-format
+msgid "ST_Length2D_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2324
+#, no-c-format
+msgid ""
+"Calculates the 2D length of a linestring/multilinestring on an ellipsoid. "
+"This is useful if the coordinates of the geometry are in longitude/latitude "
+"and a length is desired without reprojection."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2331
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Length2D_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2342
+#, no-c-format
+msgid ""
+"Calculates the 2D length of a geometry on an ellipsoid. This is useful if "
+"the coordinates of the geometry are in longitude/latitude and a length is "
+"desired without reprojection. The ellipsoid is a separate database type and "
+"can be constructed as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2353
+#, no-c-format
+msgid ""
+"This is much like <xref linkend=\"ST_Length_Spheroid\"/> and <xref linkend="
+"\"ST_3DLength_Spheroid\"/> except it will throw away the Z coordinate in "
+"calculations."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2361
+#, no-c-format
+msgid ""
+"SELECT ST_Length2D_Spheroid( geometry_column,\n"
+"                          'SPHEROID[\"GRS_1980\",6378137,298.257222101]' )\n"
+"                          FROM geometry_table;\n"
+"\n"
+"SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
+"        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646\n"
+"\n"
+" --3D Observe same answer\n"
+"SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
+"ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
+"        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
+"CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
+"as foo;\n"
+"\n"
+"        tot_len      |    len_line1     |    len_line2\n"
+"------------------+------------------+------------------\n"
+" 85204.5207562955 | 13986.8725229309 | 71217.6482333646"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2368
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Length_Spheroid\"/>, <xref linkend="
+"\"ST_3DLength_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2374
+#, no-c-format
+msgid "ST_3DLength_Spheroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2376
+#, no-c-format
+msgid ""
+"<refpurpose>Calculates the length of a geometry on an ellipsoid, taking the "
+"elevation into account. This is just an alias for ST_Length_Spheroid.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2382
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DLength_Spheroid</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
+"paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2393
+#, no-c-format
+msgid ""
+"<para>Calculates the length of a geometry on an ellipsoid, taking the "
+"elevation into account. This is just an alias for ST_Length_Spheroid.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2397
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this used to return 0 for anything that is "
+"not a MULTILINESTRING or LINESTRING and in 2.0.0 on returns the perimeter of "
+"if given a polgon."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2398
+#, no-c-format
+msgid "This function is just an alias for ST_Length_Spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2400
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In prior versions this used to be called ST_Length3d_Spheroid"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2407
+#, no-c-format
+msgid "See ST_Length_Spheroid"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2414
+#, no-c-format
+msgid ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_Length_Spheroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2420
+#, no-c-format
+msgid "ST_LongestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2422
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional longest line points of two geometries. The "
+"function will only return the first longest line if more than one, that the "
+"function finds. The line returned will always start in g1 and end in g2. The "
+"length of the line this function returns will always be the same as "
+"st_maxdistance returns for g1 and g2."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2430
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LongestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2445
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional longest line between the points of two geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2463
+#, no-c-format
+msgid "Longest line between point and line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2466
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine('POINT(100 100)'::geometry, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry)\n"
+"        ) As lline;\n"
+"\n"
+"        \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(100 100,98 190)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2474
+#, no-c-format
+msgid "longest line between polygon and polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2477
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_LongestLine(\n"
+"                ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ) \n"
+"        ) As llinewkt;\n"
+"                \n"
+"   lline\n"
+"-----------------\n"
+"LINESTRING(20 40,121.111404660392 186.629392246051)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2493
+#, no-c-format
+msgid ""
+"longest straight distance to travel from one part of an elegant city to the "
+"other Note the max distance = to the length of the line."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2497
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LongestLine(c.the_geom, c.the_geom)) As llinewkt, \n"
+"        ST_MaxDistance(c.the_geom,c.the_geom) As max_dist, \n"
+"        ST_Length(ST_LongestLine(c.the_geom, c.the_geom)) As lenll \n"
+"FROM (SELECT ST_BuildArea(ST_Collect(the_geom)) As the_geom\n"
+"        FROM (SELECT ST_Translate(ST_SnapToGrid(ST_Buffer(ST_Point(50 ,"
+"generate_series(50,190, 50) \n"
+"                        ),40, 'quad_segs=2'),1), x, 0)  As the_geom \n"
+"                        FROM generate_series(1,100,50) As x)  AS foo\n"
+") As c;\n"
+"                \n"
+"          llinewkt          |     max_dist     |      lenll\n"
+"---------------------------+------------------+------------------\n"
+" LINESTRING(23 22,129 178) | 188.605408193933 | 188.605408193933"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2508
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_LongestLine\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2514
+#, no-c-format
+msgid "ST_OrderingEquals"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2516
+#, no-c-format
+msgid ""
+"Returns true if the given geometries represent the same geometry and points "
+"are in the same directional order."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2522
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_OrderingEquals</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2533
+#, no-c-format
+msgid ""
+"ST_OrderingEquals compares two geometries and returns t (TRUE) if the "
+"geometries are equal and the coordinates are in the same order; otherwise it "
+"returns f (FALSE)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2538
+#, no-c-format
+msgid ""
+"This function is implemented as per the ArcSDE SQL specification rather than "
+"SQL-MM. http://edndoc.esri.com/arcsde/9.1/sql_api/sqlapi3."
+"htm#ST_OrderingEquals"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2542
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.43"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2548
+#, no-c-format
+msgid ""
+"SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 0 0, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_OrderingEquals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 "
+"10)')),\n"
+"                ST_GeomFromText('LINESTRING(0 0, 0 0, 10 10)'));\n"
+" st_orderingequals\n"
+"-----------\n"
+" f\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2552
+#, no-c-format
+msgid ", <xref linkend=\"ST_Reverse\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2558
+#, no-c-format
+msgid "ST_Overlaps"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2560
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries share space, are of the same dimension, but "
+"are not completely contained by each other."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2565
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2576
+#, no-c-format
+msgid ""
+"Returns TRUE if the Geometries \"spatially overlap\". By that we mean they "
+"intersect, but one does not completely contain another."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2581 reference_measure.xml:2914
+#: reference_measure.xml:2928
+#, no-c-format
+msgid "Do not call with a GeometryCollection as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2583
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Overlaps."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2591 reference_measure.xml:2934
+#: reference_measure.xml:3139
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2592
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.32"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2608
+#, no-c-format
+msgid "<varname>MULTIPOINT</varname> / <varname>MULTIPOINT</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2632
+#, no-c-format
+msgid ""
+"--a point on a line is contained by the line and is of a lower dimension, "
+"and therefore does not overlap the line\n"
+"                        nor crosses\n"
+"\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b,\n"
+"        ST_Crosses(a,b) As a_crosses_b,\n"
+"                ST_Intersects(a, b) As a_intersects_b, ST_Contains(b,a) As "
+"b_contains_a\n"
+"FROM (SELECT ST_GeomFromText('POINT(1 0.5)') As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"        As foo\n"
+"\n"
+"a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a\n"
+"------------+-------------+----------------+--------------\n"
+"f           | f           | t              | t\n"
+"\n"
+"--a line that is partly contained by circle, but not fully is defined as "
+"intersecting and crossing,\n"
+"-- but since of different dimension it does not overlap\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b,\n"
+"        ST_Intersects(a, b) As a_intersects_b,\n"
+"        ST_Contains(a,b) As a_contains_b\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"        As foo;\n"
+"\n"
+" a_overlap_b | a_crosses_b | a_intersects_b | a_contains_b\n"
+"-------------+-------------+----------------+--------------\n"
+" f           | t           | t              | f\n"
+"\n"
+" -- a 2-dimensional bent hot dog (aka buffered line string) that intersects "
+"a circle,\n"
+" --        but is not fully contained by the circle is defined as "
+"overlapping since they are of the same dimension,\n"
+"--        but it does not cross, because the intersection of the 2 is of the "
+"same dimension\n"
+"--        as the maximum dimension of the 2\n"
+"\n"
+"SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b, "
+"ST_Intersects(a, b) As a_intersects_b,\n"
+"ST_Contains(b,a) As b_contains_a,\n"
+"ST_Dimension(a) As dim_a, ST_Dimension(b) as dim_b, "
+"ST_Dimension(ST_Intersection(a,b)) As dima_intersection_b\n"
+"FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a,\n"
+"        ST_Buffer(ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)'),0.5)  As b)\n"
+"        As foo;\n"
+"\n"
+" a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a | dim_a | dim_b | "
+"dima_intersection_b\n"
+"-------------+-------------+----------------+--------------+-------+-------"
+"+---------------------\n"
+" t           | f           | t              | f            |     2 |     2 "
+"|              2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2640
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Crosses\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Intersects\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2645
+#, no-c-format
+msgid "ST_Perimeter"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2647
+#, no-c-format
+msgid ""
+"Return the length measurement of the boundary of an ST_Surface or "
+"ST_MultiSurface geometry or geography. (Polygon, Multipolygon). geometry "
+"measurement is in units of spatial reference and geography is in meters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2651
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float <function>ST_Perimeter</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Perimeter</"
+"function></funcdef> <paramdef><type>geography </type><parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2667
+#, no-c-format
+msgid ""
+"Returns the 2D perimeter of the geometry/geography if it is a ST_Surface, "
+"ST_MultiSurface (Polygon, Multipolygon). 0 is returned for non-areal "
+"geometries. For linestrings use ST_Length. Measurements for geometry are in "
+"the units of the spatial reference system of the geometry. Measurements for "
+"geography are in meters. If <varname>use_spheroid</varname> is set to false, "
+"then will model earth as a sphere instead of a spheroid."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2672
+#, no-c-format
+msgid ""
+"Currently this is an alias for ST_Perimeter2D, but this may change to "
+"support higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2675
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 8.1.3, 9.5.4"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2676
+#, no-c-format
+msgid "Availability 2.0.0: Support for geography was introduced"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2680
+#, no-c-format
+msgid "Examples: Geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2681
+#, no-c-format
+msgid ""
+"Return perimeter in feet for polygon and multipolygon. Note this is in feet "
+"because 2249 is Mass State Plane Feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2683
+#, no-c-format
+msgid ""
+"SELECT ST_Perimeter(ST_GeomFromText('POLYGON((743238 2967416,743238 "
+"2967450,743265 2967450,\n"
+"743265.625 2967416,743238 2967416))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 122.630744000095\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((763104.471273676 "
+"2949418.44119003,\n"
+"763104.477769673 2949418.42538203,\n"
+"763104.189609677 2949418.22343004,763104.471273676 2949418.44119003)),\n"
+"((763104.471273676 2949418.44119003,763095.804579742 2949436.33850239,\n"
+"763086.132105649 2949451.46730207,763078.452329651 2949462.11549407,\n"
+"763075.354136904 2949466.17407812,763064.362142565 2949477.64291974,\n"
+"763059.953961626 2949481.28983009,762994.637609571 2949532.04103014,\n"
+"762990.568508415 2949535.06640477,762986.710889563 2949539.61421415,\n"
+"763117.237897679 2949709.50493431,763235.236617789 2949617.95619822,\n"
+"763287.718121842 2949562.20592617,763111.553321674 2949423.91664605,\n"
+"763104.471273676 2949418.44119003)))', 2249));\n"
+"st_perimeter\n"
+"---------\n"
+" 845.227713366825\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2686
+#, no-c-format
+msgid "Examples: Geography"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2687
+#, no-c-format
+msgid ""
+"Return perimeter in meters and feet for polygon and multipolygon. Note this "
+"is geography (WGS 84 long lat)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2688
+#, no-c-format
+msgid ""
+"SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog)/0.3048 As "
+"per_ft \n"
+"FROM ST_GeogFromText('POLYGON((-71.1776848522251 "
+"42.3902896512902,-71.1776843766326 42.3903829478009,\n"
+"-71.1775844305465 42.3903826677917,-71.1775825927231 "
+"42.3902893647987,-71.1776848522251 42.3902896512902))') As geog;\n"
+"\n"
+"   per_meters    |      per_ft\n"
+"-----------------+------------------\n"
+"37.3790462565251 | 122.634666195949\n"
+"\n"
+"\n"
+"-- Multipolygon example --\n"
+"SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog,false) As "
+"per_sphere_meters,  ST_Perimeter(geog)/0.3048 As per_ft \n"
+"FROM ST_GeogFromText('MULTIPOLYGON(((-71.1044543107478 "
+"42.340674480411,-71.1044542869917 42.3406744369506,\n"
+"-71.1044553562977 42.340673886454,-71.1044543107478 42.340674480411)),\n"
+"((-71.1044543107478 42.340674480411,-71.1044860600303 "
+"42.3407237015564,-71.1045215770124 42.3407653385914,\n"
+"-71.1045498002983 42.3407946553165,-71.1045611902745 "
+"42.3408058316308,-71.1046016507427 42.340837442371,\n"
+"-71.104617893173 42.3408475056957,-71.1048586153981 "
+"42.3409875993595,-71.1048736143677 42.3409959528211,\n"
+"-71.1048878050242 42.3410084812078,-71.1044020965803 42.3414730072048,\n"
+"-71.1039672113619 42.3412202916693,-71.1037740497748 42.3410666421308,\n"
+"-71.1044280218456 42.3406894151355,-71.1044543107478 42.340674480411)))') As "
+"geog;\n"
+"\n"
+"    per_meters    | per_sphere_meters |      per_ft\n"
+"------------------+-------------------+------------------\n"
+" 257.634283683311 |  257.412311446337 | 845.256836231335"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2692
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_Length\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2698
+#, no-c-format
+msgid "ST_Perimeter2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2700
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon. This is currently an alias for ST_Perimeter."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2706
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_Perimeter2D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2716
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2721
+#, no-c-format
+msgid ""
+"This is currently an alias for ST_Perimeter. In future versions ST_Perimeter "
+"may return the highest dimension perimeter for a geometry. This is still "
+"under consideration"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2735
+#, no-c-format
+msgid "ST_3DPerimeter"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2737
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2743
+#, no-c-format
+msgid ""
+"<funcdef>float <function>ST_3DPerimeter</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2753
+#, no-c-format
+msgid ""
+"Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
+"multi-polygon. If the geometry is 2-dimensional, then the 2-dimensional "
+"perimeter is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2756
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Perimeter3D"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2762
+#, no-c-format
+msgid ""
+"Perimeter of a slightly elevated polygon in the air in Massachusetts state "
+"plane feet"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2763
+#, no-c-format
+msgid ""
+"SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), "
+"ST_Perimeter(the_geom) FROM\n"
+"                        (SELECT ST_GeomFromEWKT('SRID=2249;POLYGON((743238 "
+"2967416 2,743238 2967450 1,\n"
+"743265.625 2967416 1,743238 2967416 2))') As the_geom) As foo;\n"
+"\n"
+"  ST_3DPerimeter  |  st_perimeter2d  |   st_perimeter\n"
+"------------------+------------------+------------------\n"
+" 105.465793597674 | 105.432997272188 | 105.432997272188"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2770
+#, no-c-format
+msgid ", <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Perimeter2D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2776
+#, no-c-format
+msgid "ST_PointOnSurface"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2778
+#, no-c-format
+msgid "Returns a <varname>POINT</varname> guaranteed to lie on the surface."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2783
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PointOnSurface</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2795
+#, no-c-format
+msgid "Returns a <varname>POINT</varname> guaranteed to intersect a surface."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2797
+#, no-c-format
+msgid "&sfs_compliant; s3.2.14.2 // s3.2.18.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2798
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3: 8.1.5, 9.5.6. According to the specs, "
+"ST_PointOnSurface works for surface geometries (POLYGONs, MULTIPOLYGONS, "
+"CURVED POLYGONS). So PostGIS seems to be extending what the spec allows "
+"here. Most databases Oracle,DB II, ESRI SDE seem to only support this "
+"function for surfaces. SQL Server 2008 like PostGIS supports for all common "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2807
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PointOnSurface('POINT(0 5)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_PointOnSurface('LINESTRING(0 5, 0 10)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(0 5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(ST_PointOnSurface('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'::"
+"geometry));\n"
+"   st_astext\n"
+"----------------\n"
+" POINT(2.5 2.5)\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, "
+"0 10 2)')));\n"
+"   st_asewkt\n"
+"----------------\n"
+" POINT(0 0 1)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2813
+#, no-c-format
+msgid ", <xref linkend=\"ST_Point_Inside_Circle\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2819
+#, no-c-format
+msgid "ST_Project"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2821
+#, no-c-format
+msgid ""
+"Returns a <varname>POINT</varname> projected from a start point using a "
+"distance in meters and bearing (azimuth) in radians."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2826
+#, no-c-format
+msgid ""
+"<funcdef>geography <function>ST_Project</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>distance</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>azimuth</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2842
+#, no-c-format
+msgid ""
+"Returns a <varname>POINT</varname> projected from a start point using an "
+"azimuth (bearing) measured in radians and distance measured in meters."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2843
+#, no-c-format
+msgid ""
+"Distance, azimuth and projection are all aspects of the same operation, "
+"describing (or in the case of projection, constructing) the relationship "
+"between two points on the world."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2844
+#, no-c-format
+msgid ""
+"The azimuth is sometimes called the heading or the bearing in navigation. It "
+"is measured relative to true north (azimuth zero). East is azimuth 90 "
+"(<varname>pi/2</varname>), south is azimuth 180 (<varname>pi</varname>), "
+"west is azimuth 270 (<varname>pi*1.5</varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2845
+#, no-c-format
+msgid "The distance is given in meters."
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2852
+#, no-c-format
+msgid ""
+"Example: Using degrees - projected point 100,000 meters and bearing 45 "
+"degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2854
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, "
+"radians(45.0)));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2858
+#, no-c-format
+msgid ""
+"Example: Using radians - projected point 100,000 meters and bearing pi/4 (45 "
+"degrees)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2860
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, pi()/4));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2866
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <ulink url=\"http://www.postgresql.org/"
+"docs/current/interactive/functions-math.html\">PostgreSQL Math Functions</"
+"ulink>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2872
+#, no-c-format
+msgid "ST_Relate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2874
+#, no-c-format
+msgid ""
+"Returns true if this Geometry is spatially related to anotherGeometry, by "
+"testing for intersections between the Interior, Boundary and Exterior of the "
+"two geometries as specified by the values in the intersectionMatrixPattern. "
+"If no intersectionMatrixPattern is passed in, then returns the maximum "
+"intersectionMatrixPattern that relates the 2 geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_measure.xml:2882
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Relate</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>intersectionMatrixPattern</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text "
+"<function>ST_Relate</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geomB</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>text <function>ST_Relate</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>BoundaryNodeRule</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2908
+#, no-c-format
+msgid ""
+"Version 1: Takes geomA, geomB, intersectionMatrix and Returns 1 (TRUE) if "
+"this Geometry is spatially related to anotherGeometry, by testing for "
+"intersections between the Interior, Boundary and Exterior of the two "
+"geometries as specified by the values in the <ulink url=\"http://en."
+"wikipedia.org/wiki/DE-9IM\">DE-9IM matrix pattern</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2913
+#, no-c-format
+msgid ""
+"This is especially useful for testing compound checks of intersection, "
+"crosses, etc in one step."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2916
+#, no-c-format
+msgid ""
+"This is the \"allowable\" version that returns a boolean, not an integer. "
+"This is defined in OGC spec"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2919
+#, no-c-format
+msgid ""
+"This DOES NOT automagically include an index call. The reason for that is "
+"some relationships are anti e.g. Disjoint. If you are using a relationship "
+"pattern that requires intersection, then include the && index call."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2924
+#, no-c-format
+msgid ""
+"Version 2: Takes geomA and geomB and returns the <xref linkend=\"DE-9IM\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2926
+#, no-c-format
+msgid ""
+"Version 3: same as version 2 bu allows to specify a boundary node rule (1:"
+"OGC/MOD2, 2:Endpoint, 3:MultivalentEndpoint, 4:MonovalentEndpoint)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2930
+#, no-c-format
+msgid "not in OGC spec, but implied. see s2.1.13.2"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2935
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2936
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 - added support for specifying boundary node rule (requires "
+"GEOS >= 3.0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2943
+#, no-c-format
+msgid ""
+"--Find all compounds that intersect and not touch a poly (interior "
+"intersects)\n"
+"SELECT l.* , b.name As poly_name\n"
+"        FROM polys As b\n"
+"INNER JOIN compounds As l\n"
+"ON (p.the_geom && b.the_geom\n"
+"AND ST_Relate(l.the_geom, b.the_geom,'T********'));\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2));\n"
+"st_relate\n"
+"-----------\n"
+"0FFFFF212\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('LINESTRING(1 2, 3 4)'), "
+"ST_GeometryFromText('LINESTRING(5 6, 7 8)'));\n"
+"st_relate\n"
+"-----------\n"
+"FF1FF0102\n"
+"\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '0FFFFF212');\n"
+"st_relate\n"
+"-----------\n"
+"t\n"
+"\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '*FF*FF212');\n"
+"st_relate\n"
+"-----------\n"
+"t"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2950
+#, no-c-format
+msgid ""
+", <xref linkend=\"DE-9IM\"/>, <xref linkend=\"ST_Disjoint\"/>, <xref linkend="
+"\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2956
+#, no-c-format
+msgid "ST_RelateMatch"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2958
+#, no-c-format
+msgid ""
+"Returns true if intersectionMattrixPattern1 implies "
+"intersectionMatrixPattern2"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:2963
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_RelateMatch</function></funcdef> "
+"<paramdef><type>text </type> <parameter>intersectionMatrix</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>intersectionMatrixPattern</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2974
+#, no-c-format
+msgid ""
+"Takes intersectionMatrix and intersectionMatrixPattern and Returns true if "
+"the intersectionMatrix satisfies the intersectionMatrixPattern. For more "
+"information refer to <xref linkend=\"DE-9IM\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2977
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2983
+#, no-c-format
+msgid ""
+"SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ;\n"
+"-- result --\n"
+"t\n"
+"--example of common intersection matrix patterns and example matrices\n"
+"-- comparing relationships of involving one invalid geometry and ( a line "
+"and polygon that intersect at interior and boundary)\n"
+"SELECT mat.name, pat.name, ST_RelateMatch(mat.val, pat.val) As satisfied\n"
+"    FROM \n"
+"        ( VALUES ('Equality', 'T1FF1FFF1'),\n"
+"                ('Overlaps', 'T*T***T**'),\n"
+"                ('Within', 'T*F**F***'),\n"
+"                ('Disjoint', 'FF*FF****') As pat(name,val)\n"
+"        CROSS JOIN \n"
+"            (        VALUES ('Self intersections (invalid)', '111111111'),\n"
+"                    ('IE2_BI1_BB0_BE1_EI1_EE2', 'FF2101102'),\n"
+"                    ('IB1_IE1_BB0_BE0_EI2_EI1_EE2', 'F11F00212')\n"
+"            ) As mat(name,val);"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2989
+#, no-c-format
+msgid ", <xref linkend=\"ST_Relate\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:2995
+#, no-c-format
+msgid "ST_ShortestLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:2997
+#, no-c-format
+msgid "Returns the 2-dimensional shortest line between two geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3002
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ShortestLine</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3017
+#, no-c-format
+msgid ""
+"Returns the 2-dimensional shortest line between two geometries. The function "
+"will only return the first shortest line if more than one, that the function "
+"finds. If g1 and g2 intersects in just one point the function will return a "
+"line with both start and end in that intersection-point. If g1 and g2 are "
+"intersecting with more than one point the function will return a line with "
+"start and end in the same point but it can be any of the intersecting "
+"points. The line returned will always start in g1 and end in g2. The length "
+"of the line this function returns will always be the same as st_distance "
+"returns for g1 and g2."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3041
+#, no-c-format
+msgid "Shortest line between point and linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3044
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"        ST_ShortestLine('POINT(100 100)'::geometry, \n"
+"                'LINESTRING (20 80, 98 190, 110 180, 50 75 )'::geometry)\n"
+"        ) As sline;\n"
+"\n"
+"        \n"
+"   sline\n"
+"-----------------\n"
+"LINESTRING(100 100,73.0769230769231 115.384615384615)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3052
+#, no-c-format
+msgid "shortest line between polygon and polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3055
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"                ST_ShortestLine(\n"
+"                        ST_GeomFromText('POLYGON((175 150, 20 40, 50 60, 125 "
+"100, 175 150))'),\n"
+"                        ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                        ) \n"
+"                ) As slinewkt;\n"
+"                \n"
+" LINESTRING(140.752120669087 125.695053378061,121.111404660392 "
+"153.370607753949)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3067
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
+"linkend=\"ST_MaxDistance\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:3073
+#, no-c-format
+msgid "ST_Touches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:3075
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the geometries have at least one point in "
+"common, but their interiors do not intersect."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3081
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Touches</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3096
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if the only points in common between "
+"<parameter>g1</parameter> and <parameter>g2</parameter> lie in the union of "
+"the boundaries of <parameter>g1</parameter> and <parameter>g2</parameter>. "
+"The <function>ST_Touches</function> relation applies to all Area/Area, Line/"
+"Line, Line/Area, Point/Area and Point/Line pairs of relationships, but "
+"<emphasis>not</emphasis> to the Point/Point pair."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3103
+#, no-c-format
+msgid "In mathematical terms, this predicate is expressed as:"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3113
+#, no-c-format
+msgid "The allowable DE-9IM Intersection Matrices for the two geometries are:"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3117
+#, no-c-format
+msgid "FT*******"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3121
+#, no-c-format
+msgid "F**T*****"
+msgstr ""
+
+#. Tag: markup
+#: reference_measure.xml:3125
+#, no-c-format
+msgid "F***T****"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3134
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"using an index, use <function>_ST_Touches</function> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3140
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.28"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3146
+#, no-c-format
+msgid ""
+"The <function>ST_Touches</function> predicate returns <varname>TRUE</"
+"varname> in all the following illustrations."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3216
+#, no-c-format
+msgid ""
+"SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(1 1)'::"
+"geometry);\n"
+" st_touches\n"
+"------------\n"
+" f\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(0 2)'::"
+"geometry);\n"
+" st_touches\n"
+"------------\n"
+" t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_measure.xml:3222
+#, no-c-format
+msgid "ST_Within"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_measure.xml:3224
+#, no-c-format
+msgid "Returns true if the geometry A is completely inside geometry B"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_measure.xml:3229
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Within</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3244
+#, no-c-format
+msgid ""
+"Returns TRUE if geometry A is completely inside geometry B. For this "
+"function to make sense, the source geometries must both be of the same "
+"coordinate projection, having the same SRID. It is a given that if "
+"ST_Within(A,B) is true and ST_Within(B,A) is true, then the two geometries "
+"are considered spatially equal."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3259
+#, no-c-format
+msgid ""
+"This function call will automatically include a bounding box comparison that "
+"will make use of any indexes that are available on the geometries. To avoid "
+"index use, use the function _ST_Within."
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3267
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - a.Relate(b, 'T*F**F***')"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3270
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.30"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:3275
+#, no-c-format
+msgid ""
+"--a circle within a circle\n"
+"SELECT ST_Within(smallc,smallc) As smallinsmall,\n"
+"        ST_Within(smallc, bigc) As smallinbig,\n"
+"        ST_Within(bigc,smallc) As biginsmall,\n"
+"        ST_Within(ST_Union(smallc, bigc), bigc) as unioninbig,\n"
+"        ST_Within(bigc, ST_Union(smallc, bigc)) as biginunion,\n"
+"        ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion\n"
+"FROM\n"
+"(\n"
+"SELECT ST_Buffer(ST_GeomFromText('POINT(50 50)'), 20) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(50 50)'), 40) As bigc) As foo;\n"
+"--Result\n"
+" smallinsmall | smallinbig | biginsmall | unioninbig | biginunion | "
+"bigisunion\n"
+"--------------+------------+------------+------------+------------"
+"+------------\n"
+" t            | t          | f          | t          | t          | t\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:3286
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>, <xref linkend=\"ST_IsValid\"/>"
+msgstr ""
diff --git a/doc/po/pl/reference_misc.xml.po b/doc/po/pl/reference_misc.xml.po
new file mode 100644
index 0000000..838c791
--- /dev/null
+++ b/doc/po/pl/reference_misc.xml.po
@@ -0,0 +1,867 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_misc.xml:3
+#, no-c-format
+msgid "Miscellaneous Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:7
+#, no-c-format
+msgid "ST_Accum"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:9
+#, no-c-format
+msgid "<refpurpose>Aggregate. Constructs an array of geometries.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:14
+#, no-c-format
+msgid ""
+"<funcdef>geometry[] <function>ST_Accum</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:22 reference_misc.xml:64 reference_misc.xml:106
+#: reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:285
+#: reference_misc.xml:339 reference_misc.xml:392 reference_misc.xml:434
+#: reference_misc.xml:486
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:24
+#, no-c-format
+msgid "<para>Aggregate. Constructs an array of geometries.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:25 reference_misc.xml:68 reference_misc.xml:109
+#: reference_misc.xml:251 reference_misc.xml:305 reference_misc.xml:351
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:353
+#: reference_misc.xml:444
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:27 reference_misc.xml:69 reference_misc.xml:110
+#: reference_misc.xml:183 reference_misc.xml:354 reference_misc.xml:445
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:28 reference_misc.xml:70 reference_misc.xml:111
+#: reference_misc.xml:252 reference_misc.xml:306 reference_misc.xml:355
+#: reference_misc.xml:446
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:29 reference_misc.xml:71 reference_misc.xml:112
+#: reference_misc.xml:253 reference_misc.xml:307 reference_misc.xml:356
+#: reference_misc.xml:447
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:34 reference_misc.xml:76 reference_misc.xml:118
+#: reference_misc.xml:188 reference_misc.xml:258 reference_misc.xml:312
+#: reference_misc.xml:360 reference_misc.xml:404 reference_misc.xml:453
+#: reference_misc.xml:497
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:36
+#, no-c-format
+msgid ""
+"SELECT (ST_Accum(the_geom)) As all_em, ST_AsText((ST_Accum(the_geom))[1]) As "
+"grabone,\n"
+"(ST_Accum(the_geom))[2:4] as grab_rest\n"
+"                        FROM (SELECT ST_MakePoint(a*CAST(random()*10 As "
+"integer), a*CAST(random()*10 As integer), a*CAST(random()*10 As integer)) As "
+"the_geom\n"
+"                                FROM generate_series(1,4) a) As foo;\n"
+"\n"
+"all_em|grabone   | grab_rest\n"
+"\n"
+"-------------------------------------------------------------------------------"
+"+\n"
+"\n"
+" {0101000080000000000000144000000000000024400000000000001040:\n"
+" 0101000080000000000\n"
+"00018400000000000002C400000000000003040:\n"
+"0101000080000000000000354000000000000038400000000000001840:\n"
+"010100008000000000000040400000000000003C400000000000003040} |\n"
+" POINT(5 10) | {010100008000000000000018400000000000002C400000000000003040:\n"
+" 0101000080000000000000354000000000000038400000000000001840:\n"
+" 010100008000000000000040400000000000003C400000000000003040}\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_misc.xml:41 reference_misc.xml:83 reference_misc.xml:125
+#: reference_misc.xml:195 reference_misc.xml:264 reference_misc.xml:318
+#: reference_misc.xml:365 reference_misc.xml:411 reference_misc.xml:460
+#: reference_misc.xml:504
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:49
+#, no-c-format
+msgid "Box2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:51
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a BOX2D representing the maximum extents of the geometry."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:56
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>Box2D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:66
+#, no-c-format
+msgid ""
+"<para>Returns a BOX2D representing the maximum extents of the geometry.</"
+"para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:78
+#, no-c-format
+msgid ""
+"SELECT Box2D(ST_GeomFromText('LINESTRING(1 2, 3 4, 5 6)'));\n"
+"        box2d\n"
+"        ---------\n"
+"        BOX(1 2,5 6)\n"
+"\n"
+"        SELECT Box2D(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"150505,220227 150406)'));\n"
+"        box2d\n"
+"        --------\n"
+"        BOX(220186.984375 150406,220288.25 150506.140625)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:85
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:91
+#, no-c-format
+msgid "Box3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:93
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a BOX3D representing the maximum extents of the geometry."
+"</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:98
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>geometry "
+"</type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:108
+#, no-c-format
+msgid ""
+"<para>Returns a BOX3D representing the maximum extents of the geometry.</"
+"para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:120
+#, no-c-format
+msgid ""
+"SELECT Box3D(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 5, 5 6 5)'));\n"
+"        Box3d\n"
+"        ---------\n"
+"        BOX3D(1 2 3,5 6 5)\n"
+"\n"
+"        SELECT Box3D(ST_GeomFromEWKT('CIRCULARSTRING(220268 150415 1,220227 "
+"150505 1,220227 150406 1)'));\n"
+"        Box3d\n"
+"        --------\n"
+"        BOX3D(220227 150406 1,220268 150415 1)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:127
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:133
+#, no-c-format
+msgid "ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:135
+#, no-c-format
+msgid ""
+"<refpurpose>Return the 'estimated' extent of the given spatial table. The "
+"estimated is taken from the geometry column's statistics. The current schema "
+"will be used if not specified.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_misc.xml:141
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>box2d <function>ST_EstimatedExtent</function></"
+"funcdef> <paramdef><type>text </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>geocolumn_name</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_EstimatedExtent</function></funcdef> <paramdef><type>text </"
+"type> <parameter>table_name</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>geocolumn_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:160
+#, no-c-format
+msgid ""
+"<para>Return the 'estimated' extent of the given spatial table. The "
+"estimated is taken from the geometry column's statistics. The current schema "
+"will be used if not specified.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:164
+#, no-c-format
+msgid ""
+"For PostgreSQL>=8.0.0 statistics are gathered by VACUUM ANALYZE and "
+"resulting extent will be about 95% of the real one."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:169
+#, no-c-format
+msgid ""
+"In absence of statistics (empty table or no ANALYZE called) this function "
+"returns NULL. Prior to version 1.5.4 an exception was thrown instead."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:177
+#, no-c-format
+msgid ""
+"For PostgreSQL<8.0.0 statistics are gathered by update_geometry_stats() "
+"and resulting extent will be exact."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:180
+#, no-c-format
+msgid "Availability: 1.0.0"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:181
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Estimated_Extent."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:190
+#, no-c-format
+msgid ""
+"SELECT ST_EstimatedExtent('ny', 'edges', 'the_geom');\n"
+"--result--\n"
+"BOX(-8877653 4912316,-8010225.5 5589284)\n"
+"\n"
+"SELECT ST_EstimatedExtent('feature_poly', 'the_geom');\n"
+"--result--\n"
+"BOX(-124.659652709961 24.6830825805664,-67.7798080444336 49.0012092590332)"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:202
+#, no-c-format
+msgid "ST_Expand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:203
+#, no-c-format
+msgid ""
+"Returns bounding box expanded in all directions from the bounding box of the "
+"input geometry. Uses double-precision"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_misc.xml:207
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Expand</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>box2d "
+"<function>ST_Expand</function></funcdef> <paramdef><type>box2d </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float</type> "
+"<parameter>units_to_expand</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>box3d <function>ST_Expand</function></funcdef> "
+"<paramdef><type>box3d </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>units_to_expand</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:231
+#, no-c-format
+msgid ""
+"This function returns a bounding box expanded in all directions from the "
+"bounding box of the input geometry, by an amount specified in the second "
+"argument. Uses double-precision. Very useful for distance() queries, or "
+"bounding box queries to add an index filter to the query."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:235
+#, no-c-format
+msgid ""
+"There are 3 variants of this. The one that takes a geometry will return a "
+"POLYGON geometry representation of the bounding box and is the most commonly "
+"used variant."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:237
+#, no-c-format
+msgid ""
+"ST_Expand is similar in concept to ST_Buffer except while buffer expands the "
+"geometry in all directions, ST_Expand expands the bounding box an x,y,z unit "
+"amount."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:239
+#, no-c-format
+msgid ""
+"Units are in the units of the spatial reference system in use denoted by the "
+"SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:242
+#, no-c-format
+msgid ""
+"Pre 1.3, ST_Expand was used in conjunction with distance to do indexable "
+"queries. Something of the form <code>the_geom && ST_Expand('POINT(10 "
+"20)', 10) AND ST_Distance(the_geom, 'POINT(10 20)') < 10</code> Post 1.2, "
+"this was replaced with the easier ST_DWithin construct."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:248
+#, no-c-format
+msgid ""
+"Availability: 1.5.0 behavior changed to output double precision instead of "
+"float4 coordinates."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:259
+#, no-c-format
+msgid ""
+"Examples below use US National Atlas Equal Area (SRID=2163) which is a meter "
+"projection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:260
+#, no-c-format
+msgid ""
+"<!-- TODO: fix results of documentation to reflect new behavior -->\n"
+"--10 meter expanded box around bbox of a linestring\n"
+"SELECT CAST(ST_Expand(ST_GeomFromText('LINESTRING(2312980 110676,2312923 "
+"110701,2312892 110714)', 2163),10) As box2d);\n"
+"                                         st_expand\n"
+"------------------------------------\n"
+" BOX(2312882 110666,2312990 110724)\n"
+"\n"
+"--10 meter expanded 3d box of a 3d box\n"
+"SELECT ST_Expand(CAST('BOX3D(778783 2951741 1,794875 2970042.61545891 10)' "
+"As box3d),10)\n"
+"                                                          st_expand\n"
+"-----------------------------------------------------\n"
+" BOX3D(778773 2951731 -9,794885 2970052.61545891 20)\n"
+"\n"
+" --10 meter geometry astext rep of a expand box around a point geometry\n"
+" SELECT ST_AsEWKT(ST_Expand(ST_GeomFromEWKT('SRID=2163;POINT(2312980 "
+"110676)'),10));\n"
+"                                                                                        st_asewkt\n"
+"-------------------------------------------------------------------------------------------------\n"
+" SRID=2163;POLYGON((2312970 110666,2312970 110686,2312990 110686,2312990 "
+"110666,2312970 110666))"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:265
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:271
+#, no-c-format
+msgid "ST_Extent"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:272
+#, no-c-format
+msgid ""
+"an aggregate function that returns the bounding box that bounds rows of "
+"geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:277
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Extent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:287
+#, no-c-format
+msgid ""
+"ST_Extent returns a bounding box that encloses a set of geometries. The "
+"ST_Extent function is an \"aggregate\" function in the terminology of SQL. "
+"That means that it operates on lists of data, in the same way the SUM() and "
+"AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:290 reference_misc.xml:344
+#, no-c-format
+msgid ""
+"Since it returns a bounding box, the spatial Units are in the units of the "
+"spatial reference system in use denoted by the SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:291
+#, no-c-format
+msgid ""
+"ST_Extent is similar in concept to Oracle Spatial/Locator's SDO_AGGR_MBR"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:293
+#, no-c-format
+msgid ""
+"Since ST_Extent returns a bounding box, the SRID meta-data is lost. Use "
+"ST_SetSRID to force it back into a geometry with SRID meta data. The "
+"coordinates are in the units of the spatial ref of the orginal geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:298
+#, no-c-format
+msgid ""
+"ST_Extent will return boxes with only an x and y component even with (x,y,z) "
+"coordinate geometries. To maintain x,y,z use ST_3DExtent instead."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:302
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:313
+#, no-c-format
+msgid "Examples below use Massachusetts State Plane ft (SRID=2249)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:314
+#, no-c-format
+msgid ""
+"SELECT ST_Extent(the_geom) as bextent FROM sometable;\n"
+"                                         st_bextent\n"
+"------------------------------------\n"
+"BOX(739651.875 2908247.25,794875.8125 2970042.75)\n"
+"\n"
+"\n"
+"--Return extent of each category of geometries\n"
+"SELECT ST_Extent(the_geom) as bextent\n"
+"FROM sometable\n"
+"GROUP BY category ORDER BY category;\n"
+"\n"
+"                                          bextent                       "
+"|         name\n"
+"----------------------------------------------------+----------------\n"
+" BOX(778783.5625 2951741.25,794875.8125 2970042.75) | A\n"
+" BOX(751315.8125 2919164.75,765202.6875 2935417.25) | B\n"
+" BOX(739651.875 2917394.75,756688.375 2935866)      | C\n"
+"\n"
+" --Force back into a geometry\n"
+" -- and render the extended text representation of that geometry\n"
+"SELECT ST_SetSRID(ST_Extent(the_geom),2249) as bextent FROM sometable;\n"
+"\n"
+"                                bextent\n"
+"--------------------------------------------------------------------------------\n"
+" SRID=2249;POLYGON((739651.875 2908247.25,739651.875 2970042.75,794875.8125 "
+"2970042.75,\n"
+" 794875.8125 2908247.25,739651.875 2908247.25))"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:319
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_3DExtent\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:325
+#, no-c-format
+msgid "ST_3DExtent"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:326
+#, no-c-format
+msgid ""
+"an aggregate function that returns the box3D bounding box that bounds rows "
+"of geometries."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:331
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>ST_3DExtent</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:341
+#, no-c-format
+msgid ""
+"ST_3DExtent returns a box3d (includes Z coordinate) bounding box that "
+"encloses a set of geometries. The ST_3DExtent function is an \"aggregate\" "
+"function in the terminology of SQL. That means that it operates on lists of "
+"data, in the same way the SUM() and AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:347
+#, no-c-format
+msgid ""
+"Since ST_3DExtent returns a bounding box, the SRID meta-data is lost. Use "
+"ST_SetSRID to force it back into a geometry with SRID meta data. The "
+"coordinates are in the units of the spatial ref of the orginal geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:352
+#, no-c-format
+msgid "Changed: 2.0.0 In prior versions this used to be called ST_Extent3D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:361
+#, no-c-format
+msgid ""
+"SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
+"FROM (SELECT ST_MakePoint(x,y,z) As the_geom\n"
+"        FROM generate_series(1,3) As x\n"
+"                CROSS JOIN generate_series(1,2) As y\n"
+"                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
+"          b3extent\n"
+"--------------------\n"
+" BOX3D(1 1 0,3 2 2)\n"
+"\n"
+"--Get the extent of various elevated circular strings\n"
+"SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
+"FROM (SELECT "
+"ST_Translate(ST_Force_3DZ(ST_LineToCurve(ST_Buffer(ST_MakePoint(x,"
+"y),1))),0,0,z) As the_geom\n"
+"        FROM generate_series(1,3) As x\n"
+"                CROSS JOIN generate_series(1,2) As y\n"
+"                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
+"\n"
+"        b3extent\n"
+"--------------------\n"
+" BOX3D(1 0 0,4 2 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:366
+#, no-c-format
+msgid ", <xref linkend=\"ST_Force_3DZ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:373
+#, no-c-format
+msgid "Find_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:375
+#, no-c-format
+msgid ""
+"The syntax is find_srid(a_db_schema, a_table, a_column) and the function "
+"returns the integer SRID of the specified column by searching through the "
+"GEOMETRY_COLUMNS table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:382
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>Find_SRID</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>a_schema_name</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>varchar </type> "
+"<parameter>a_geomfield_name</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:394
+#, no-c-format
+msgid ""
+"The syntax is find_srid(<db/schema>, <table>, <column>) "
+"and the function returns the integer SRID of the specified column by "
+"searching through the GEOMETRY_COLUMNS table. If the geometry column has not "
+"been properly added with the AddGeometryColumns() function, this function "
+"will not work either."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:406
+#, no-c-format
+msgid ""
+"SELECT Find_SRID('public', 'tiger_us_state_2007', 'the_geom_4269');\n"
+"find_srid\n"
+"----------\n"
+"4269"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:419
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:421
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the geometry takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:426
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:436
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the geometry takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:437
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:438
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:440
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:441
+#, no-c-format
+msgid ""
+"pg_column_size returns how much space a geometry would take in a column "
+"considering compression, so may be lower than ST_MemSize"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:448
+#, no-c-format
+msgid ""
+"Changed: 2.2.0 name changed to ST_MemSize to follow naming convention. In "
+"prior versions this function was called ST_Mem_Size, old name deprecated "
+"though still available."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:455
+#, no-c-format
+msgid ""
+"--Return how much byte space Boston takes up  in our Mass data set\n"
+"SELECT pg_size_pretty(SUM(ST_MemSize(the_geom))) as totgeomsum,\n"
+"pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE "
+"0 END)) As bossum,\n"
+"CAST(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 "
+"END)*1.00 /\n"
+"                SUM(ST_MemSize(the_geom))*100 As numeric(10,2)) As perbos\n"
+"FROM towns;\n"
+"\n"
+"totgeomsum        bossum        perbos\n"
+"----------        ------        ------\n"
+"1522 kB                30 kB        1.99\n"
+"\n"
+"\n"
+"SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"150505,220227 150406)'));\n"
+"\n"
+"---\n"
+"73\n"
+"\n"
+"--What percentage of our table is taken up by just the geometry\n"
+"SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, "
+"sum(ST_MemSize(the_geom)) As geomsize,\n"
+"sum(ST_MemSize(the_geom))*1.00/pg_total_relation_size('public."
+"neighborhoods')*100 As pergeom\n"
+"FROM neighborhoods;\n"
+"fulltable_size geomsize  pergeom\n"
+"------------------------------------------------\n"
+"262144         96238         36.71188354492187500000"
+msgstr ""
+
+#. Tag: refname
+#: reference_misc.xml:468
+#, no-c-format
+msgid "ST_Point_Inside_Circle"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_misc.xml:470
+#, no-c-format
+msgid ""
+"Is the point geometry insert circle defined by center_x, center_y, radius"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_misc.xml:475
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_Point_Inside_Circle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_x</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>center_y</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:488
+#, no-c-format
+msgid ""
+"The syntax for this functions is point_inside_circle(<geometry>,<"
+"circle_center_x>,<circle_center_y>,<radius>). Returns the "
+"true if the geometry is a point and is inside the circle. Returns false "
+"otherwise."
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:492
+#, no-c-format
+msgid "This only works for points as the name suggests"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_misc.xml:499
+#, no-c-format
+msgid ""
+"SELECT ST_Point_Inside_Circle(ST_Point(1,2), 0.5, 2, 3);\n"
+" st_point_inside_circle\n"
+"------------------------\n"
+" t"
+msgstr ""
diff --git a/doc/po/pl/reference_operator.xml.po b/doc/po/pl/reference_operator.xml.po
new file mode 100644
index 0000000..c4ccc62
--- /dev/null
+++ b/doc/po/pl/reference_operator.xml.po
@@ -0,0 +1,1639 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# Jakub Bobrowski <jb at 5dstudio.pl>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-04 22:00+0000\n"
+"Last-Translator: Jakub Bobrowski <jb at 5dstudio.pl>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_operator.xml:3
+#, no-c-format
+msgid "Operators"
+msgstr "Operatory"
+
+#. Tag: refname
+#: reference_operator.xml:6
+#, no-c-format
+msgid "&&"
+msgstr "&&"
+
+#. Tag: refpurpose
+#: reference_operator.xml:8
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's 2D bounding box intersects B's 2D "
+"bounding box."
+msgstr ""
+"Zwraca <varname>TRUE</varname> jeśli dwuwymiarowe (2D) pole ograniczające "
+"obiektu A przecina dwuwymiarowe (2D) pole ograniczające obiektu B."
+
+#. Tag: funcsynopsis
+#: reference_operator.xml:12
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>geography </type> <parameter>A</"
+"parameter> </paramdef> <paramdef> <type>geography </type> <parameter>B</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>geography </type> <parameter>A</"
+"parameter> </paramdef> <paramdef> <type>geography </type> <parameter>B</"
+"parameter> </paramdef> </funcprototype>"
+
+#. Tag: title
+#: reference_operator.xml:50 reference_operator.xml:111
+#: reference_operator.xml:176 reference_operator.xml:234
+#: reference_operator.xml:295 reference_operator.xml:353
+#: reference_operator.xml:406 reference_operator.xml:475
+#: reference_operator.xml:546 reference_operator.xml:599
+#: reference_operator.xml:654 reference_operator.xml:712
+#: reference_operator.xml:765 reference_operator.xml:818
+#: reference_operator.xml:883 reference_operator.xml:950
+#, no-c-format
+msgid "Description"
+msgstr "Opis"
+
+#. Tag: para
+#: reference_operator.xml:52
+#, no-c-format
+msgid ""
+"The <varname>&&</varname> operator returns <varname>TRUE</varname> "
+"if the 2D bounding box of geometry A intersects the 2D bounding box of "
+"geometry B."
+msgstr ""
+"Operator <varname>&&</varname> zwraca <varname>TRUE</varname> jeśli "
+"dwuwymiarowe (2D) pole ograniczające geometrii A przecina dwuwymiarowe (2D) "
+"pole ograniczające geometrii B."
+
+#. Tag: para
+#: reference_operator.xml:54 reference_operator.xml:115
+#: reference_operator.xml:182 reference_operator.xml:243
+#: reference_operator.xml:301 reference_operator.xml:358
+#: reference_operator.xml:411 reference_operator.xml:551
+#: reference_operator.xml:605 reference_operator.xml:660
+#: reference_operator.xml:717 reference_operator.xml:770
+#: reference_operator.xml:823
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:57
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:58
+#, no-c-format
+msgid "Availability: 1.5.0 support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:59 reference_operator.xml:119
+#: reference_operator.xml:240 reference_operator.xml:492
+#, no-c-format
+msgid "&curve_support;"
+msgstr "&curve_support;"
+
+#. Tag: para
+#: reference_operator.xml:60 reference_operator.xml:120
+#: reference_operator.xml:241 reference_operator.xml:493
+#: reference_operator.xml:827
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: title
+#: reference_operator.xml:64 reference_operator.xml:187
+#: reference_operator.xml:248 reference_operator.xml:306
+#: reference_operator.xml:363 reference_operator.xml:416
+#: reference_operator.xml:502 reference_operator.xml:556
+#: reference_operator.xml:611 reference_operator.xml:665
+#: reference_operator.xml:722 reference_operator.xml:775
+#: reference_operator.xml:843 reference_operator.xml:900
+#: reference_operator.xml:964
+#, no-c-format
+msgid "Examples"
+msgstr "Przykłady"
+
+#. Tag: programlisting
+#: reference_operator.xml:66
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 && tbl2.column2 AS "
+"overlaps\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (2, 'LINESTRING(0 1, 0 5)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps\n"
+"---------+---------+----------\n"
+"           1 |       3 | t\n"
+"           2 |       3 | f\n"
+"(2 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 && tbl2.column2 AS "
+"overlaps\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (2, 'LINESTRING(0 1, 0 5)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps\n"
+"---------+---------+----------\n"
+"           1 |       3 | t\n"
+"           2 |       3 | f\n"
+"(2 rows)"
+
+#. Tag: title
+#: reference_operator.xml:71 reference_operator.xml:139
+#: reference_operator.xml:193 reference_operator.xml:254
+#: reference_operator.xml:312 reference_operator.xml:369
+#: reference_operator.xml:422 reference_operator.xml:508
+#: reference_operator.xml:562 reference_operator.xml:617
+#: reference_operator.xml:671 reference_operator.xml:728
+#: reference_operator.xml:781 reference_operator.xml:848
+#: reference_operator.xml:916 reference_operator.xml:968
+#, no-c-format
+msgid "See Also"
+msgstr "Zobacz także"
+
+#. Tag: para
+#: reference_operator.xml:73
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>, <xref "
+"linkend=\"ST_Geometry_Contain\"/>, <xref linkend=\"ST_Geometry_Contained\"/>"
+msgstr ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>, <xref "
+"linkend=\"ST_Geometry_Contain\"/>, <xref linkend=\"ST_Geometry_Contained\"/>"
+
+#. Tag: refname
+#: reference_operator.xml:85
+#, no-c-format
+msgid "&&&"
+msgstr "&&&"
+
+#. Tag: refpurpose
+#: reference_operator.xml:87
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's 3D bounding box intersects B's 3D "
+"bounding box."
+msgstr ""
+"Zwraca <varname>TRUE</varname>  jeśli trójwymiarowe (3D) pole ograniczające "
+"obiektu A przecina trójwymiarowe (3D) pole ograniczające obiektu B."
+
+#. Tag: funcprototype
+#: reference_operator.xml:92
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&&&</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>&&&</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:113
+#, no-c-format
+msgid ""
+"The <varname>&&&</varname> operator returns <varname>TRUE</"
+"varname> if the n-D bounding box of geometry A intersects the n-D bounding "
+"box of geometry B."
+msgstr ""
+"Operator <varname>&&&</varname> zwraca <varname>TRUE</"
+"varname>jesli n-wymiarowe (n-D) pole ograniczające geometrii A przecina n-"
+"wymiarowe (n-D) pole ograniczające geometrii B."
+
+#. Tag: para
+#: reference_operator.xml:118
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr "Dostępność: 2.0.0"
+
+#. Tag: para
+#: reference_operator.xml:121
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: para
+#: reference_operator.xml:122
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: title
+#: reference_operator.xml:126
+#, no-c-format
+msgid "Examples: 3D LineStrings"
+msgstr "Przykłady: 3D LineStrings"
+
+#. Tag: programlisting
+#: reference_operator.xml:128
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3d, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING Z(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING Z(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING Z(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3d | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3d, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING Z(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING Z(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING Z(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3d | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+
+#. Tag: title
+#: reference_operator.xml:132
+#, no-c-format
+msgid "Examples: 3M LineStrings"
+msgstr "Przykłady: 3M LineStrings"
+
+#. Tag: programlisting
+#: reference_operator.xml:134
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3zm, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING M(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING M(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING M(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3zm | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &&& tbl2.column2 "
+"AS overlaps_3zm, \n"
+"                                    tbl1.column2 && tbl2.column2 AS "
+"overlaps_2d\n"
+"FROM ( VALUES\n"
+"        (1, 'LINESTRING M(0 0 1, 3 3 2)'::geometry),\n"
+"        (2, 'LINESTRING M(1 2 0, 0 5 -1)'::geometry)) AS tbl1,\n"
+"( VALUES\n"
+"        (3, 'LINESTRING M(1 2 1, 4 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overlaps_3zm | overlaps_2d\n"
+"---------+---------+-------------+-------------\n"
+"       1 |       3 | t           | t\n"
+"       2 |       3 | f           | t"
+
+#. Tag: refname
+#: reference_operator.xml:147
+#, no-c-format
+msgid "&<"
+msgstr "&<"
+
+#. Tag: refpurpose
+#: reference_operator.xml:149
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is to the "
+"left of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:154
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:178
+#, no-c-format
+msgid ""
+"The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A overlaps or is to the left of the bounding "
+"box of geometry B, or more accurately, overlaps or is NOT to the right of "
+"the bounding box of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:189
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &< tbl2.column2 AS "
+"overleft\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overleft\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &< tbl2.column2 AS "
+"overleft\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overleft\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+
+#. Tag: para
+#: reference_operator.xml:195
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overbelow\"/>"
+msgstr ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overbelow\"/>"
+
+#. Tag: refname
+#: reference_operator.xml:205
+#, no-c-format
+msgid "&<|"
+msgstr "&<|"
+
+#. Tag: refpurpose
+#: reference_operator.xml:207
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is below B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:212
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>&<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:236
+#, no-c-format
+msgid ""
+"The <varname>&<|</varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of geometry A overlaps or is below of the bounding box "
+"of geometry B, or more accurately, overlaps or is NOT above the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:250
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &<| tbl2.column2 AS "
+"overbelow\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overbelow\n"
+"---------+---------+-----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &<| tbl2.column2 AS "
+"overbelow\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overbelow\n"
+"---------+---------+-----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+
+#. Tag: para
+#: reference_operator.xml:256
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overright\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+
+#. Tag: refname
+#: reference_operator.xml:266
+#, no-c-format
+msgid "&>"
+msgstr "&>"
+
+#. Tag: refpurpose
+#: reference_operator.xml:268
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A' bounding box overlaps or is to the "
+"right of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:273
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:297
+#, no-c-format
+msgid ""
+"The <varname>&></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A overlaps or is to the right of the bounding "
+"box of geometry B, or more accurately, overlaps or is NOT to the left of the "
+"bounding box of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:308
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &> tbl2.column2 AS "
+"overright\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overright\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | t\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 &> tbl2.column2 AS "
+"overright\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(6 0, 6 1)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overright\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | t\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+
+#. Tag: para
+#: reference_operator.xml:314
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+", <xref linkend=\"ST_Geometry_Overabove\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+
+#. Tag: refname
+#: reference_operator.xml:324
+#, no-c-format
+msgid "<<"
+msgstr "<<"
+
+#. Tag: refpurpose
+#: reference_operator.xml:326
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly to the left "
+"of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:331
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function><<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function><<</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:355
+#, no-c-format
+msgid ""
+"The <varname><<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the left of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:365
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 << tbl2.column2 AS "
+"left\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 2, 1 5)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 3)'::geometry),\n"
+"        (3, 'LINESTRING (6 0, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 2, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | left\n"
+"---------+---------+------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 << tbl2.column2 AS "
+"left\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 2, 1 5)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 3)'::geometry),\n"
+"        (3, 'LINESTRING (6 0, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 2, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | left\n"
+"---------+---------+------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+
+#. Tag: para
+#: reference_operator.xml:371 reference_operator.xml:564
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Above\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+msgstr ""
+", <xref linkend=\"ST_Geometry_Above\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+
+#. Tag: refname
+#: reference_operator.xml:377
+#, no-c-format
+msgid "<<|"
+msgstr "<<|"
+
+#. Tag: refpurpose
+#: reference_operator.xml:379
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly below B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:384
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function><<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function><<|</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:408
+#, no-c-format
+msgid ""
+"The <varname><<|</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly below the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:418
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 <<| tbl2.column2 AS "
+"below\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | below\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 <<| tbl2.column2 AS "
+"below\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | below\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+
+#. Tag: para
+#: reference_operator.xml:424
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Above\"/"
+">"
+msgstr ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Above\"/"
+">"
+
+#. Tag: refname
+#: reference_operator.xml:430
+#, no-c-format
+msgid "="
+msgstr "="
+
+#. Tag: refpurpose
+#: reference_operator.xml:432
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_operator.xml:436
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>=</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>=</function></"
+"funcdef> <paramdef> <type>geography </type> <parameter>A</parameter> </"
+"paramdef> <paramdef> <type>geography </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+"<funcprototype> <funcdef>boolean <function>=</function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>=</function></"
+"funcdef> <paramdef> <type>geography </type> <parameter>A</parameter> </"
+"paramdef> <paramdef> <type>geography </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype>"
+
+#. Tag: para
+#: reference_operator.xml:477
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry/geography A is the same as the bounding box of "
+"geometry/geography B. PostgreSQL uses the =, <, and > operators "
+"defined for geometries to perform internal orderings and comparison of "
+"geometries (ie. in a GROUP BY or ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:482
+#, no-c-format
+msgid ""
+"This is cause for a lot of confusion. When you compare geometryA = geometryB "
+"it will return true even when the geometries are clearly different IF their "
+"bounding boxes are the same. To check for true equality use <xref linkend="
+"\"ST_OrderingEquals\"/> or <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:489
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:494
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 , the bounding box of geometries was changed to use double "
+"precision instead of float4 precision of prior. The side effect of this is "
+"that in particular points in prior versions that were a little different may "
+"have returned true in prior versions and false in 2.0+ since their float4 "
+"boxes would be the same but there float8 (double precision), would be "
+"different."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:504
+#, no-c-format
+msgid ""
+"SELECT 'LINESTRING(0 0, 0 1, 1 0)'::geometry = 'LINESTRING(1 1, 0 0)'::"
+"geometry;\n"
+" ?column?\n"
+"----------\n"
+" t\n"
+"(1 row)\n"
+"\n"
+"SELECT ST_AsText(column1)\n"
+"FROM ( VALUES\n"
+"        ('LINESTRING(0 0, 1 1)'::geometry),\n"
+"        ('LINESTRING(1 1, 0 0)'::geometry)) AS foo;\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(0 0,1 1)\n"
+" LINESTRING(1 1,0 0)\n"
+"(2 rows)\n"
+"\n"
+"-- Note: the GROUP BY uses the \"=\" to compare for geometry equivalency.\n"
+"SELECT ST_AsText(column1)\n"
+"FROM ( VALUES\n"
+"        ('LINESTRING(0 0, 1 1)'::geometry),\n"
+"        ('LINESTRING(1 1, 0 0)'::geometry)) AS foo\n"
+"GROUP BY column1;\n"
+"          st_astext\n"
+"---------------------\n"
+" LINESTRING(0 0,1 1)\n"
+"(1 row)\n"
+"\n"
+"-- In versions prior to 2.0, this used to return true --\n"
+" SELECT ST_GeomFromText('POINT(1707296.37 4820536.77)') =\n"
+"        ST_GeomFromText('POINT(1707296.27 4820536.87)') As pt_intersect;\n"
+"        \n"
+"--pt_intersect --\n"
+"f"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:510
+#, no-c-format
+msgid ", <xref linkend=\"ST_OrderingEquals\"/>"
+msgstr ", <xref linkend=\"ST_OrderingEquals\"/>"
+
+#. Tag: refname
+#: reference_operator.xml:517
+#, no-c-format
+msgid ">>"
+msgstr ">>"
+
+#. Tag: refpurpose
+#: reference_operator.xml:519
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly to the right "
+"of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:524
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:548
+#, no-c-format
+msgid ""
+"The <varname>>></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the right of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:558
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 >> tbl2.column2 AS "
+"right\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | right\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 >> tbl2.column2 AS "
+"right\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (1 4, 1 7)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 4 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | right\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+
+#. Tag: refname
+#: reference_operator.xml:570
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr "<refname>@</refname>"
+
+#. Tag: refpurpose
+#: reference_operator.xml:572
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:577
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>@</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>@</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:601
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry A is completely contained by the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:613
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 @ tbl2.column2 AS contained\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (2 2, 4 4)'::geometry),\n"
+"        (4, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contained\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 @ tbl2.column2 AS contained\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (2 2, 4 4)'::geometry),\n"
+"        (4, 'LINESTRING (1 1, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contained\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+
+#. Tag: para
+#: reference_operator.xml:619 reference_operator.xml:783
+#, no-c-format
+msgid ", <xref linkend=\"geometry_overlaps\"/>"
+msgstr ", <xref linkend=\"geometry_overlaps\"/>"
+
+#. Tag: refname
+#: reference_operator.xml:625
+#, no-c-format
+msgid "|&>"
+msgstr "|&>"
+
+#. Tag: refpurpose
+#: reference_operator.xml:627
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box overlaps or is above B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:632
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>|&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>|&></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:656
+#, no-c-format
+msgid ""
+"The <varname>|&></varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of geometry A overlaps or is above the bounding box of "
+"geometry B, or more accurately, overlaps or is NOT below the bounding box of "
+"geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:667
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |&> tbl2.column2 AS "
+"overabove\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overabove\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |&> tbl2.column2 AS "
+"overabove\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING(6 0, 6 4)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING(0 0, 3 3)'::geometry),\n"
+"        (3, 'LINESTRING(0 1, 0 5)'::geometry),\n"
+"        (4, 'LINESTRING(1 2, 4 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | overabove\n"
+"---------+---------+-----------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+
+#. Tag: para
+#: reference_operator.xml:673
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+msgstr ""
+", <xref linkend=\"ST_Geometry_Overright\"/>, <xref linkend="
+"\"ST_Geometry_Overbelow\"/>, <xref linkend=\"ST_Geometry_Overleft\"/>"
+
+#. Tag: refname
+#: reference_operator.xml:683
+#, no-c-format
+msgid "|>>"
+msgstr "|>>"
+
+#. Tag: refpurpose
+#: reference_operator.xml:685
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is strictly above B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:690
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>|>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>|>></function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:714
+#, no-c-format
+msgid ""
+"The <varname>|>></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of geometry A is strictly to the right of the bounding box "
+"of geometry B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:724
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |>> tbl2.column2 AS "
+"above\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 4, 1 7)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 2)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | above\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 |>> tbl2.column2 AS "
+"above\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (1 4, 1 7)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 2)'::geometry),\n"
+"        (3, 'LINESTRING (6 1, 6 5)'::geometry),\n"
+"        (4, 'LINESTRING (2 3, 5 6)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | above\n"
+"---------+---------+-------\n"
+"           1 |       2 | t\n"
+"           1 |       3 | f\n"
+"           1 |       4 | f\n"
+"(3 rows)"
+
+#. Tag: para
+#: reference_operator.xml:730
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+msgstr ""
+", <xref linkend=\"ST_Geometry_Right\"/>, <xref linkend=\"ST_Geometry_Below\"/"
+">"
+
+#. Tag: refname
+#: reference_operator.xml:736
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr "<refname>~</refname>"
+
+#. Tag: refpurpose
+#: reference_operator.xml:738
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box contains B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:743
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>~</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:767
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry A completely contains the bounding box of geometry "
+"B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:777
+#, no-c-format
+msgid ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 ~ tbl2.column2 AS contains\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (1 1, 2 2)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contains\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+msgstr ""
+"SELECT tbl1.column1, tbl2.column1, tbl1.column2 ~ tbl2.column2 AS contains\n"
+"FROM\n"
+"  ( VALUES\n"
+"        (1, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl1,\n"
+"  ( VALUES\n"
+"        (2, 'LINESTRING (0 0, 4 4)'::geometry),\n"
+"        (3, 'LINESTRING (1 1, 2 2)'::geometry),\n"
+"        (4, 'LINESTRING (0 0, 3 3)'::geometry)) AS tbl2;\n"
+"\n"
+" column1 | column1 | contains\n"
+"---------+---------+----------\n"
+"           1 |       2 | f\n"
+"           1 |       3 | t\n"
+"           1 |       4 | t\n"
+"(3 rows)"
+
+#. Tag: refname
+#: reference_operator.xml:789
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr "<refname>~=</refname>"
+
+#. Tag: refpurpose
+#: reference_operator.xml:791
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:796
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>geometry "
+"</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </"
+"type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:820
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of geometry/geography A is the same as the bounding box of "
+"geometry/geography B."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:826
+#, no-c-format
+msgid "Availability: 1.5.0 changed behavior"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:830
+#, no-c-format
+msgid ""
+"This operator has changed behavior in PostGIS 1.5 from testing for actual "
+"geometric equality to only checking for bounding box equality. To complicate "
+"things it also depends on if you have done a hard or soft upgrade which "
+"behavior your database has. To find out which behavior your database has you "
+"can run the query below. To check for true equality use <xref linkend="
+"\"ST_OrderingEquals\"/> or <xref linkend=\"ST_Equals\"/> and to check for "
+"bounding box equality <xref linkend=\"ST_Geometry_EQ\"/>; operator is a "
+"safer option."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:844
+#, no-c-format
+msgid ""
+"select 'LINESTRING(0 0, 1 1)'::geometry ~= 'LINESTRING(0 1, 1 0)'::geometry "
+"as equality;\n"
+" equality   |\n"
+"-----------------+\n"
+"          t    |"
+msgstr ""
+"select 'LINESTRING(0 0, 1 1)'::geometry ~= 'LINESTRING(0 1, 1 0)'::geometry "
+"as equality;\n"
+" equality   |\n"
+"-----------------+\n"
+"          t    |"
+
+#. Tag: para
+#: reference_operator.xml:845
+#, no-c-format
+msgid ""
+"The above can be used to test if you have the new or old behavior of ~= "
+"operator."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:849
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Geometry_EQ\"/>"
+msgstr ""
+", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Geometry_EQ\"/>"
+
+#. Tag: refname
+#: reference_operator.xml:855
+#, no-c-format
+msgid "<->"
+msgstr "<->"
+
+#. Tag: refpurpose
+#: reference_operator.xml:857
+#, no-c-format
+msgid ""
+"Returns the distance between two points. For point / point checks it uses "
+"floating point accuracy (as opposed to the double precision accuracy of the "
+"underlying point geometry). For other geometry types the distance between "
+"the floating point bounding box centroids is returned. Useful for doing "
+"distance ordering and nearest neighbor limits using KNN gist functionality."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:864
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function><-></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>double precision <function><-></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:885
+#, no-c-format
+msgid ""
+"The <varname><-></varname> operator returns distance between two "
+"points read from the spatial index for points (float precision). For other "
+"geometries it returns the distance from centroid of bounding box of "
+"geometries. Useful for doing nearest neighbor <emphasis role=\"strong"
+"\">approximate</emphasis> distance ordering."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:888 reference_operator.xml:954
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries. It is different from other operators that use spatial indexes in "
+"that the spatial index is only used when the operator is in the ORDER BY "
+"clause."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:891
+#, no-c-format
+msgid ""
+"Index only kicks in if one of the geometries is a constant (not in a "
+"subquery/cte). e.g. 'SRID=3005;POINT(1011102 450541)'::geometry instead of a."
+"geom"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:892
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://workshops.opengeo.org/postgis-intro/knn.html"
+"\">OpenGeo workshop: Nearest-Neighbour Searching</ulink> for real live "
+"example."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:894 reference_operator.xml:959
+#, no-c-format
+msgid "Availability: 2.0.0 only available for PostgreSQL 9.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:901
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
+"geometry) as d,edabbr, vaabbr \n"
+"FROM va2005 \n"
+"ORDER BY d limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 5579.67450712005 | ALQ    | 001\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  7691.2205404848 | ALQ    | 003\n"
+" 7900.75451037313 | ALQ    | 122\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  12089.665931705 | ALQ    | 127\n"
+" 18472.5531479404 | ALQ    | 002\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:902
+#, no-c-format
+msgid "Then the KNN raw answer:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:905
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT st_distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
+"geometry) as d,edabbr, vaabbr \n"
+"FROM va2005 \n"
+"ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5579.67450712005 | ALQ    | 001\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  12089.665931705 | ALQ    | 127\n"
+"  24795.264503022 | ALQ    | 124\n"
+" 24587.6584922302 | ALQ    | 123\n"
+" 26764.2555463114 | ALQ    | 125\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:906
+#, no-c-format
+msgid ""
+"Note the misordering in the actual distances and the different entries that "
+"actually show up in the top 10."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:910
+#, no-c-format
+msgid "Finally the hybrid:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:913
+#, no-c-format
+msgid ""
+"<![CDATA[WITH index_query AS (\n"
+"  SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,"
+"edabbr, vaabbr\n"
+"          FROM va2005\n"
+"  ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry LIMIT 100) \n"
+"  SELECT * \n"
+"          FROM index_query \n"
+"  ORDER BY d limit 10;]]>\n"
+"\n"
+"        d         | edabbr | vaabbr\n"
+"------------------+--------+--------\n"
+"                0 | ALQ    | 128\n"
+" 5541.57712511724 | ALQ    | 129A\n"
+" 5579.67450712005 | ALQ    | 001\n"
+"  6083.4207708641 | ALQ    | 131\n"
+"  7691.2205404848 | ALQ    | 003\n"
+" 7900.75451037313 | ALQ    | 122\n"
+" 8694.20710669982 | ALQ    | 129B\n"
+" 9564.24289057111 | ALQ    | 130\n"
+"  12089.665931705 | ALQ    | 127\n"
+" 18472.5531479404 | ALQ    | 002\n"
+"(10 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:917
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_box\"/>"
+msgstr ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_box\"/>"
+
+#. Tag: refname
+#: reference_operator.xml:923
+#, no-c-format
+msgid "<#>"
+msgstr "<#>"
+
+#. Tag: refpurpose
+#: reference_operator.xml:925
+#, no-c-format
+msgid ""
+"Returns the distance between bounding box of 2 geometries. For point / point "
+"checks it's almost the same as distance (though may be different since the "
+"bounding box is at floating point accuracy and geometries are double "
+"precision). Useful for doing distance ordering and nearest neighbor limits "
+"using KNN gist functionality."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_operator.xml:931
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function><#></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+"<funcdef>double precision <function><#></function></funcdef> "
+"<paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
+
+#. Tag: para
+#: reference_operator.xml:952
+#, no-c-format
+msgid ""
+"The <varname><#></varname> KNN GIST operator returns distance between "
+"two floating point bounding boxes read from the spatial index if available. "
+"Useful for doing nearest neighbor <emphasis role=\"strong\">approximate</"
+"emphasis> distance ordering."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:957
+#, no-c-format
+msgid ""
+"Index only kicks in if one of the geometries is a constant e.g. ORDER BY "
+"(ST_GeomFromText('POINT(1 2)') <#> geom) instead of g1.geom <#>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_operator.xml:965
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT *\n"
+"FROM (\n"
+"SELECT b.tlid, b.mtfcc, \n"
+"        b.geom <#> ST_GeomFromText('LINESTRING(746149 2948672,745954 "
+"2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249) As b_dist, \n"
+"                ST_Distance(b.geom, ST_GeomFromText('LINESTRING(746149 "
+"2948672,745954 2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249)) As act_dist\n"
+"    FROM bos_roads As b \n"
+"    ORDER BY b_dist, b.tlid\n"
+"    LIMIT 100) As foo\n"
+"    ORDER BY act_dist, tlid LIMIT 10;]]>\n"
+"\n"
+"   tlid    | mtfcc |      b_dist      |     act_dist\n"
+"-----------+-------+------------------+------------------\n"
+"  85732027 | S1400 |                0 |                0\n"
+"  85732029 | S1400 |                0 |                0\n"
+"  85732031 | S1400 |                0 |                0\n"
+"  85734335 | S1400 |                0 |                0\n"
+"  85736037 | S1400 |                0 |                0\n"
+" 624683742 | S1400 |                0 | 128.528874268666\n"
+"  85719343 | S1400 | 260.839270432962 | 260.839270432962\n"
+"  85741826 | S1400 | 164.759294123275 | 260.839270432962\n"
+"  85732032 | S1400 |           277.75 | 311.830282365264\n"
+"  85735592 | S1400 |           222.25 | 311.830282365264\n"
+"(10 rows)"
+msgstr ""
+"<![CDATA[SELECT *\n"
+"FROM (\n"
+"SELECT b.tlid, b.mtfcc, \n"
+"        b.geom <#> ST_GeomFromText('LINESTRING(746149 2948672,745954 "
+"2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249) As b_dist, \n"
+"                ST_Distance(b.geom, ST_GeomFromText('LINESTRING(746149 "
+"2948672,745954 2948576,\n"
+"                745787 2948499,745740 2948468,745712 2948438,\n"
+"                745690 2948384,745677 2948319)',2249)) As act_dist\n"
+"    FROM bos_roads As b \n"
+"    ORDER BY b_dist, b.tlid\n"
+"    LIMIT 100) As foo\n"
+"    ORDER BY act_dist, tlid LIMIT 10;]]>\n"
+"\n"
+"   tlid    | mtfcc |      b_dist      |     act_dist\n"
+"-----------+-------+------------------+------------------\n"
+"  85732027 | S1400 |                0 |                0\n"
+"  85732029 | S1400 |                0 |                0\n"
+"  85732031 | S1400 |                0 |                0\n"
+"  85734335 | S1400 |                0 |                0\n"
+"  85736037 | S1400 |                0 |                0\n"
+" 624683742 | S1400 |                0 | 128.528874268666\n"
+"  85719343 | S1400 | 260.839270432962 | 260.839270432962\n"
+"  85741826 | S1400 | 164.759294123275 | 260.839270432962\n"
+"  85732032 | S1400 |           277.75 | 311.830282365264\n"
+"  85735592 | S1400 |           222.25 | 311.830282365264\n"
+"(10 rows)"
+
+#. Tag: para
+#: reference_operator.xml:969
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_centroid"
+"\"/>"
+msgstr ""
+", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_centroid"
+"\"/>"
diff --git a/doc/po/pl/reference_output.xml.po b/doc/po/pl/reference_output.xml.po
new file mode 100644
index 0000000..137bc2c
--- /dev/null
+++ b/doc/po/pl/reference_output.xml.po
@@ -0,0 +1,2081 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-14 21:54+0000\n"
+"PO-Revision-Date: 2014-10-14 22:36+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_output.xml:4
+#, no-c-format
+msgid "Geometry Outputs"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:7
+#, no-c-format
+msgid "ST_AsBinary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:8
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the geometry/geography "
+"without SRID meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:12
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsBinary</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsBinary</function></funcdef> <paramdef><type>geography </type> "
+"<parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type><parameter>NDR_or_XDR</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:35 reference_output.xml:109 reference_output.xml:162
+#: reference_output.xml:238 reference_output.xml:339 reference_output.xml:440
+#: reference_output.xml:496 reference_output.xml:561 reference_output.xml:604
+#: reference_output.xml:707 reference_output.xml:755 reference_output.xml:813
+#: reference_output.xml:879 reference_output.xml:944 reference_output.xml:988
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:37
+#, no-c-format
+msgid ""
+"Returns the Well-Known Binary representation of the geometry. There are 2 "
+"variants of the function. The first variant takes no endian encoding "
+"parameter and defaults to server machine endian. The second variant takes a "
+"second argument denoting the encoding - using little-endian ('NDR') or big-"
+"endian ('XDR') encoding."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:40 reference_output.xml:113
+#, no-c-format
+msgid ""
+"This is useful in binary cursors to pull data out of the database without "
+"converting it to a string representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:44
+#, no-c-format
+msgid ""
+"The WKB spec does not include the SRID. To get the WKB with SRID format use "
+"ST_AsEWKB"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:47
+#, no-c-format
+msgid ""
+"ST_AsBinary is the reverse of <xref linkend=\"ST_GeomFromWKB\"/> for "
+"geometry. Use <xref linkend=\"ST_GeomFromWKB\"/> to convert to a postgis "
+"geometry from ST_AsBinary representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:51
+#, no-c-format
+msgid ""
+"The default behavior in PostgreSQL 9.0 has been changed to output bytea in "
+"hex encoding. ST_AsBinary is the reverse of <xref linkend=\"ST_GeomFromWKB\"/"
+"> for geometry. If your GUI tools require the old behavior, then SET "
+"bytea_output='escape' in your database."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:55 reference_output.xml:121
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:56
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for higher coordinate dimensions was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:57
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for specifying endian with geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:58 reference_output.xml:279 reference_output.xml:383
+#, no-c-format
+msgid "Availability: 1.5.0 geography support was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:59
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 Inputs to this function can not be unknown -- must be "
+"geometry. Constructs such as <code>ST_AsBinary('POINT(1 2)')</code> are no "
+"longer valid and you will get an <code>n st_asbinary(unknown) is not unique "
+"error</code>. Code like that needs to be changed to "
+"<code>ST_AsBinary('POINT(1 2)'::geometry);</code>. If that is not possible, "
+"then install <filename>legacy.sql</filename>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:61 reference_output.xml:771
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.1"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:62
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.37"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:63 reference_output.xml:123 reference_output.xml:177
+#: reference_output.xml:449 reference_output.xml:721 reference_output.xml:773
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:64 reference_output.xml:124 reference_output.xml:178
+#: reference_output.xml:390 reference_output.xml:664
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:65 reference_output.xml:125 reference_output.xml:179
+#: reference_output.xml:391 reference_output.xml:667
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:66 reference_output.xml:122 reference_output.xml:176
+#: reference_output.xml:281 reference_output.xml:389 reference_output.xml:448
+#: reference_output.xml:523 reference_output.xml:662
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:71 reference_output.xml:130 reference_output.xml:184
+#: reference_output.xml:285 reference_output.xml:453 reference_output.xml:527
+#: reference_output.xml:580 reference_output.xml:725 reference_output.xml:778
+#: reference_output.xml:842 reference_output.xml:896 reference_output.xml:961
+#: reference_output.xml:997
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:73
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\001\\003\\000\\000\\000\\001\\000\\000\\000\\005\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\360?\\000\\000\\000\\000\\000\\000\n"
+"\\360?\\000\\000\\000\\000\\000\\000\\360?\\000\\000\n"
+"\\000\\000\\000\\000\\360?\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:74
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asbinary\n"
+"--------------------------------\n"
+"\\000\\000\\000\\000\\003\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\n"
+"\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:79 reference_output.xml:138 reference_output.xml:191
+#: reference_output.xml:409 reference_output.xml:531 reference_output.xml:729
+#: reference_output.xml:785 reference_output.xml:901 reference_output.xml:966
+#: reference_output.xml:1002
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:80
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsTWKB\"/>, <xref "
+"linkend=\"ST_AsText\"/>,"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:90
+#, no-c-format
+msgid "ST_AsEWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:91
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the geometry with SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:95
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:110
+#, no-c-format
+msgid ""
+"Returns the Well-Known Binary representation of the geometry with SRID "
+"metadata. There are 2 variants of the function. The first variant takes no "
+"endian encoding parameter and defaults to little endian. The second variant "
+"takes a second argument denoting the encoding - using little-endian ('NDR') "
+"or big-endian ('XDR') encoding."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:116
+#, no-c-format
+msgid ""
+"The WKB spec does not include the SRID. To get the OGC WKB format use "
+"ST_AsBinary"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:119
+#, no-c-format
+msgid ""
+"ST_AsEWKB is the reverse of ST_GeomFromEWKB. Use ST_GeomFromEWKB to convert "
+"to a postgis geometry from ST_AsEWKB representation."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:132
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                   st_asewkb\n"
+"--------------------------------\n"
+"\\001\\003\\000\\000 \\346\\020\\000\\000\\001\\000\n"
+"\\000\\000\\005\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\360?\\000\\000\\000\\000\\000\\000\\360?\n"
+"\\000\\000\\000\\000\\000\\000\\360?\\000\\000\\000\\000\\000\n"
+"\\000\\360?\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:133
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
+"'XDR');\n"
+"                   st_asewkb\n"
+"--------------------------------\n"
+"\\000 "
+"\\000\\000\\003\\000\\000\\020\\346\\000\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\\n"
+"000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000?\n"
+"\\360\\000\\000\\000\\000\\000\\000?\\360\\000\\000\\000\\000\\000\\000?"
+"\\360\\000\\000\\000\\000\n"
+"\\000\\000?"
+"\\360\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\n"
+"\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:139
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:144
+#, no-c-format
+msgid "ST_AsEWKT"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:145
+#, no-c-format
+msgid ""
+"Return the Well-Known Text (WKT) representation of the geometry with SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:149
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsEWKT</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsEWKT</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:164
+#, no-c-format
+msgid ""
+"Returns the Well-Known Text representation of the geometry prefixed with the "
+"SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:167
+#, no-c-format
+msgid ""
+"The WKT spec does not include the SRID. To get the OGC WKT format use "
+"ST_AsText"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:169 reference_output.xml:763
+#, no-c-format
+msgid ""
+"WKT format does not maintain precision so to prevent floating truncation, "
+"use ST_AsBinary or ST_AsEWKB format for transport."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:173
+#, no-c-format
+msgid ""
+"ST_AsEWKT is the reverse of <xref linkend=\"ST_GeomFromEWKT\"/>. Use <xref "
+"linkend=\"ST_GeomFromEWKT\"/> to convert to a postgis geometry from "
+"ST_AsEWKT representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:175
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Geography, Polyhedral surfaces, Triangles and "
+"TIN was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:186
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT('0103000020E61000000100000005000000000000\n"
+"                        000000000000000000000000000000000000000000000000000000\n"
+"                        F03F000000000000F03F000000000000F03F000000000000F03\n"
+"                        F000000000000000000000000000000000000000000000000'::"
+"geometry);\n"
+"\n"
+"                   st_asewkt\n"
+"--------------------------------\n"
+"SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)\n"
+"\n"
+"SELECT "
+"ST_AsEWKT('0108000080030000000000000060E30A4100000000785C0241000000000000F03F0000000018\n"
+"E20A4100000000485F024100000000000000400000000018\n"
+"E20A4100000000305C02410000000000000840')\n"
+"\n"
+"--st_asewkt---\n"
+"CIRCULARSTRING(220268 150415 1,220227 150505 2,220227 150406 3)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:192
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:201
+#, no-c-format
+msgid "ST_AsGeoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:203
+#, no-c-format
+msgid "Return the geometry as a GeoJSON element."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:207
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsGeoJSON</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>gj_version</"
+"parameter></paramdef> <paramdef><type>geography </type> <parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:240
+#, no-c-format
+msgid ""
+"Return the geometry as a Geometry Javascript Object Notation (GeoJSON) "
+"element. (Cf <ulink url=\"http://geojson.org/geojson-spec.html\">GeoJSON "
+"specifications 1.0</ulink>). 2D and 3D Geometries are both supported. "
+"GeoJSON only support SFS 1.1 geometry type (no curve support for example)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:246
+#, no-c-format
+msgid ""
+"The gj_version parameter is the major version of the GeoJSON spec. If "
+"specified, must be 1. This represents the spec version of GeoJSON."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:248
+#, no-c-format
+msgid ""
+"The third argument may be used to reduce the maximum number of decimal "
+"places used in output (defaults to 15)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:251
+#, no-c-format
+msgid ""
+"The last 'options' argument could be used to add Bbox or Crs in GeoJSON "
+"output:"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:255
+#, no-c-format
+msgid "0: means no option (default value)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:259
+#, no-c-format
+msgid "1: GeoJSON Bbox"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:263
+#, no-c-format
+msgid "2: GeoJSON Short CRS (e.g EPSG:4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:267
+#, no-c-format
+msgid "4: GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:271
+#, no-c-format
+msgid "Version 1: ST_AsGeoJSON(geom) / precision=15 version=1 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:272
+#, no-c-format
+msgid "Version 2: ST_AsGeoJSON(geom, precision) / version=1 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:273
+#, no-c-format
+msgid "Version 3: ST_AsGeoJSON(geom, precision, options) / version=1"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:274
+#, no-c-format
+msgid "Version 4: ST_AsGeoJSON(gj_version, geom) / precision=15 options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:275
+#, no-c-format
+msgid "Version 5: ST_AsGeoJSON(gj_version, geom, precision) /options=0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:276
+#, no-c-format
+msgid "Version 6: ST_AsGeoJSON(gj_version, geom, precision,options)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:278
+#, no-c-format
+msgid "Availability: 1.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:280
+#, no-c-format
+msgid "Changed: 2.0.0 support default args and named args."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:286
+#, no-c-format
+msgid ""
+"GeoJSON format is generally more efficient than other formats for use in "
+"ajax mapping. One popular javascript client that supports this is Open "
+"Layers. Example of its use is <ulink url=\"http://openlayers.org/dev/"
+"examples/vector-formats.html\">OpenLayers GeoJSON Example</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:291
+#, no-c-format
+msgid ""
+"SELECT ST_AsGeoJSON(the_geom) from fe_edges limit 1;\n"
+"                                           st_asgeojson\n"
+"-----------------------------------------------------------------------------------------------------------\n"
+"\n"
+"{\"type\":\"MultiLineString\",\"coordinates\":"
+"[[[-89.734634999999997,31.492072000000000],\n"
+"[-89.734955999999997,31.492237999999997]]]}\n"
+"(1 row)\n"
+"--3d point\n"
+"SELECT ST_AsGeoJSON('LINESTRING(1 2 3, 4 5 6)');\n"
+"\n"
+"st_asgeojson\n"
+"-----------------------------------------------------------------------------------------\n"
+" {\"type\":\"LineString\",\"coordinates\":[[1,2,3],[4,5,6]]}"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:296
+#, no-c-format
+msgid "ST_AsGML"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:297
+#, no-c-format
+msgid "Return the geometry as a GML version 2 or 3 element."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:301
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsGML</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>id=null</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>text <function>ST_AsGML</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>id=null</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:341
+#, no-c-format
+msgid ""
+"Return the geometry as a Geography Markup Language (GML) element. The "
+"version parameter, if specified, may be either 2 or 3. If no version "
+"parameter is specified then the default is assumed to be 2. The precision "
+"argument may be used to reduce the maximum number of decimal places "
+"(<varname>maxdecimaldigits</varname>) used in output (defaults to 15)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:346
+#, no-c-format
+msgid "GML 2 refer to 2.1.2 version, GML 3 to 3.1.1 version"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:347
+#, no-c-format
+msgid ""
+"The 'options' argument is a bitfield. It could be used to define CRS output "
+"type in GML output, and to declare data as lat/lon:"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:351
+#, no-c-format
+msgid "0: GML Short CRS (e.g EPSG:4326), default value"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:355
+#, no-c-format
+msgid "1: GML Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:359
+#, no-c-format
+msgid "2: For GML 3 only, remove srsDimension attribute from output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:363
+#, no-c-format
+msgid ""
+"4: For GML 3 only, use <LineString> rather than <Curve> tag for "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:367
+#, no-c-format
+msgid ""
+"16: Declare that datas are lat/lon (e.g srid=4326). Default is to assume "
+"that data are planars. This option is useful for GML 3.1.1 output only, "
+"related to axis order. So if you set it, it will swap the coordinates so "
+"order is lat lon instead of database lon lat."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:373
+#, no-c-format
+msgid "32: Output the box of the geometry (envelope)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:378
+#, no-c-format
+msgid ""
+"The 'namespace prefix' argument may be used to specify a custom namespace "
+"prefix or no prefix (if empty). If null or omitted 'gml' prefix is used"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:382
+#, no-c-format
+msgid "Availability: 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:384
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 prefix support was introduced. Option 4 for GML3 was "
+"introduced to allow using LineString instead of Curve tag for lines. GML3 "
+"Support for Polyhedral surfaces and TINS was introduced. Option 32 was "
+"introduced to output the box."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:385
+#, no-c-format
+msgid "Changed: 2.0.0 use default named args"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:386
+#, no-c-format
+msgid "Enhanced: 2.1.0 id support was introduced, for GML 3."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:388
+#, no-c-format
+msgid "Only version 3+ of ST_AsGML supports Polyhedral Surfaces and TINS."
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:395
+#, no-c-format
+msgid "Examples: Version 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:396
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsGML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"                st_asgml\n"
+"                --------\n"
+"                <gml:Polygon srsName=\"EPSG:4326\"><gml:outerBoundaryIs><gml:"
+"LinearRing><gml:coordinates>0,0 0,1 1,1 1,0 0,0</gml:coordinates></gml:"
+"LinearRing></gml:outerBoundaryIs></gml:Polygon>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:399
+#, no-c-format
+msgid "Examples: Version 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:400
+#, no-c-format
+msgid ""
+"-- Flip coordinates and output extended EPSG (16 | 1)--\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('POINT(5.234234233242 "
+"6.34534534534)',4326), 5, 17);\n"
+"                        st_asgml\n"
+"                        --------\n"
+"                <gml:Point srsName=\"urn:ogc:def:crs:EPSG::4326\"><gml:"
+"pos>6.34535 5.23423</gml:pos></gml:Point>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:401
+#, no-c-format
+msgid ""
+"-- Output the envelope (32) --\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('LINESTRING(1 2, 3 4, 10 "
+"20)',4326), 5, 32);\n"
+"                st_asgml\n"
+"                --------\n"
+"        <gml:Envelope srsName=\"EPSG:4326\">\n"
+"                <gml:lowerCorner>1 2</gml:lowerCorner>\n"
+"                <gml:upperCorner>10 20</gml:upperCorner>\n"
+"        </gml:Envelope>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:403
+#, no-c-format
+msgid ""
+"-- Output the envelope (32) , reverse (lat lon instead of lon lat) (16), "
+"long srs (1)= 32 | 16 | 1 = 49 --\n"
+"<![CDATA[SELECT ST_AsGML(3, ST_GeomFromText('LINESTRING(1 2, 3 4, 10 "
+"20)',4326), 5, 49);\n"
+"        st_asgml\n"
+"        --------\n"
+"<gml:Envelope srsName=\"urn:ogc:def:crs:EPSG::4326\">\n"
+"        <gml:lowerCorner>2 1</gml:lowerCorner>\n"
+"        <gml:upperCorner>20 10</gml:upperCorner>\n"
+"</gml:Envelope>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:405
+#, no-c-format
+msgid ""
+"-- Polyhedral Example --\n"
+"SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )'));\n"
+"        st_asgml\n"
+"        --------\n"
+"<![CDATA[ <gml:PolyhedralSurface>\n"
+"<gml:polygonPatches>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 0 0 "
+"1 0 1 1 0 1 0 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 0 1 "
+"0 1 1 0 1 0 0 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 0 1 0 "
+"0 1 0 1 0 0 1 0 0 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">1 1 0 1 1 "
+"1 1 0 1 1 0 0 1 1 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 1 0 0 1 "
+"1 1 1 1 1 1 0 0 1 0</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"   <gml:PolygonPatch>\n"
+"                <gml:exterior>\n"
+"                          <gml:LinearRing>\n"
+"                                   <gml:posList srsDimension=\"3\">0 0 1 1 0 "
+"1 1 1 1 0 1 1 0 0 1</gml:posList>\n"
+"                          </gml:LinearRing>\n"
+"                </gml:exterior>\n"
+"   </gml:PolygonPatch>\n"
+"</gml:polygonPatches>\n"
+"</gml:PolyhedralSurface>]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:418
+#, no-c-format
+msgid "ST_AsHEXEWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:420
+#, no-c-format
+msgid ""
+"Returns a Geometry in HEXEWKB format (as text) using either little-endian "
+"(NDR) or big-endian (XDR) encoding."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:425
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsHEXEWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>NDRorXDR</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsHEXEWKB</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:442
+#, no-c-format
+msgid ""
+"Returns a Geometry in HEXEWKB format (as text) using either little-endian "
+"(NDR) or big-endian (XDR) encoding. If no encoding is specified, then NDR is "
+"used."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:446
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:454
+#, no-c-format
+msgid ""
+"SELECT ST_AsHEXEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"                which gives same answer as\n"
+"\n"
+"                SELECT ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326)::text;\n"
+"\n"
+"                st_ashexewkb\n"
+"                --------\n"
+"                0103000020E6100000010000000500\n"
+"                00000000000000000000000000000000\n"
+"                00000000000000000000000000000000F03F\n"
+"                000000000000F03F000000000000F03F000000000000F03\n"
+"                F000000000000000000000000000000000000000000000000"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:460
+#, no-c-format
+msgid "ST_AsKML"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:462
+#, no-c-format
+msgid ""
+"Return the geometry as a KML element. Several variants. Default version=2, "
+"default precision=15"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:466
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsKML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nprefix=NULL</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:498
+#, no-c-format
+msgid ""
+"Return the geometry as a Keyhole Markup Language (KML) element. There are "
+"several variants of this function. maximum number of decimal places used in "
+"output (defaults to 15), version default to 2 and default namespace is no "
+"prefix."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:502
+#, no-c-format
+msgid ""
+"Version 1: ST_AsKML(geom_or_geog, maxdecimaldigits) / version=2 / "
+"maxdecimaldigits=15"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:503
+#, no-c-format
+msgid ""
+"Version 2: ST_AsKML(version, geom_or_geog, maxdecimaldigits, nprefix) "
+"maxdecimaldigits=15 / nprefix=NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:506
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with Proj support. Use <xref linkend="
+"\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:510
+#, no-c-format
+msgid ""
+"Availability: 1.2.2 - later variants that include version param came in 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:513
+#, no-c-format
+msgid "Enhanced: 2.0.0 - Add prefix namespace. Default is no prefix"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:516
+#, no-c-format
+msgid "Changed: 2.0.0 - uses default args and supports named args"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:520
+#, no-c-format
+msgid "AsKML output will not work with geometries that do not have an SRID"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:528
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsKML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
+"0))',4326));\n"
+"\n"
+"                st_askml\n"
+"                --------\n"
+"                <Polygon><outerBoundaryIs><LinearRing><coordinates>0,0 0,1 "
+"1,1 1,0 0,0</coordinates></LinearRing></outerBoundaryIs></Polygon>\n"
+"\n"
+"                --3d linestring\n"
+"                SELECT ST_AsKML('SRID=4326;LINESTRING(1 2 3, 4 5 6)');\n"
+"                <LineString><coordinates>1,2,3 4,5,6</coordinates></"
+"LineString>\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:533
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsGML\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:538
+#, no-c-format
+msgid "ST_AsSVG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:540
+#, no-c-format
+msgid ""
+"Returns a Geometry in SVG path data given a geometry or geography object."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:544
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
+"<paramdef><type>geography </type> <parameter>geog</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:563
+#, no-c-format
+msgid ""
+"Return the geometry as Scalar Vector Graphics (SVG) path data. Use 1 as "
+"second argument to have the path data implemented in terms of relative "
+"moves, the default (or 0) uses absolute moves. Third argument may be used to "
+"reduce the maximum number of decimal digits used in output (defaults to 15). "
+"Point geometries will be rendered as cx/cy when 'rel' arg is 0, x/y when "
+"'rel' is 1. Multipoint geometries are delimited by commas (\",\"), "
+"GeometryCollection geometries are delimited by semicolons (\";\")."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:573
+#, no-c-format
+msgid ""
+"Availability: 1.2.2. Availability: 1.4.0 Changed in PostGIS 1.4.0 to include "
+"L command in absolute path to conform to <ulink url=\"http://www.w3.org/TR/"
+"SVG/paths.html#PathDataBNF\">http://www.w3.org/TR/SVG/paths."
+"html#PathDataBNF</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:576
+#, no-c-format
+msgid "Changed: 2.0.0 to use default args and support named args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:581
+#, no-c-format
+msgid ""
+"SELECT ST_AsSVG(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
+"\n"
+"                st_assvg\n"
+"                --------\n"
+"                M 0 0 L 0 -1 1 -1 1 0 Z"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:587
+#, no-c-format
+msgid "ST_AsX3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:589
+#, no-c-format
+msgid ""
+"Returns a Geometry in X3D xml node element format: ISO-IEC-19776-1.2-"
+"X3DEncodings-XML"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:594
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsX3D</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:606
+#, no-c-format
+msgid ""
+"Returns a geometry as an X3D xml formatted node element <ulink url=\"http://"
+"www.web3d.org/standards/number/19776-1\">http://www.web3d.org/standards/"
+"number/19776-1</ulink>. If <varname>maxdecimaldigits</varname> (precision) "
+"is not specified then defaults to 15."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:608
+#, no-c-format
+msgid ""
+"There are various options for translating PostGIS geometries to X3D since "
+"X3D geometry types don't map directly to PostGIS geometry types and some "
+"newer X3D types that might be better mappings we ahve avoided since most "
+"rendering tools don't currently support them. These are the mappings we have "
+"settled on. Feel free to post a bug ticket if you have thoughts on the idea "
+"or ways we can allow people to denote their preferred mappings."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:610
+#, no-c-format
+msgid "Below is how we currently map PostGIS 2D/3D types to X3D types"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:617
+#, no-c-format
+msgid "PostGIS Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:618
+#, no-c-format
+msgid "2D X3D Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:619
+#, no-c-format
+msgid "3D X3D Type"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:624
+#, no-c-format
+msgid "LINESTRING"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:625 reference_output.xml:630
+#, no-c-format
+msgid "not yet implemented - will be PolyLine2D"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:626
+#, no-c-format
+msgid "LineSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:629
+#, no-c-format
+msgid "MULTILINESTRING"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:631
+#, no-c-format
+msgid "IndexedLineSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:634
+#, no-c-format
+msgid "MULTIPOINT"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:635
+#, no-c-format
+msgid "Polypoint2D"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:636
+#, no-c-format
+msgid "PointSet"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:639
+#, no-c-format
+msgid "POINT"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:640 reference_output.xml:641
+#, no-c-format
+msgid "outputs the space delimited coordinates"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:644
+#, no-c-format
+msgid "(MULTI) POLYGON, POLYHEDRALSURFACE"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:645
+#, no-c-format
+msgid "Invalid X3D markup"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:646
+#, no-c-format
+msgid "IndexedFaceSet (inner rings currently output as another faceset)"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:649
+#, no-c-format
+msgid "<entry>TIN</entry>"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:650
+#, no-c-format
+msgid "TriangleSet2D (Not Yet Implemented)"
+msgstr ""
+
+#. Tag: entry
+#: reference_output.xml:651
+#, no-c-format
+msgid "IndexedTriangleSet"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:656
+#, no-c-format
+msgid ""
+"2D geometry support not yet complete. Inner rings currently just drawn as "
+"separate polygons. We are working on these."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:657
+#, no-c-format
+msgid ""
+"Lots of advancements happening in 3D space particularly with <ulink url="
+"\"http://www.web3d.org/x3d/wiki/index.php/X3D_and_HTML5#Goals:"
+"_X3D_and_HTML5\">X3D Integration with HTML5</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:658
+#, no-c-format
+msgid ""
+"There is also a nice open source X3D viewer you can use to view rendered "
+"geometries. Free Wrl <ulink url=\"http://freewrl.sourceforge.net/\">http://"
+"freewrl.sourceforge.net/</ulink> binaries available for Mac, Linux, and "
+"Windows. Use the FreeWRL_Launcher packaged to view the geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:659
+#, no-c-format
+msgid ""
+"Also check out <ulink url=\"https://github.com/robe2/postgis_x3d_viewer"
+"\">PostGIS minimalist X3D viewer</ulink> that utilizes this function and "
+"<ulink url=\"http://www.x3dom.org/\">x3dDom html/js open source toolkit</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:660
+#, no-c-format
+msgid "Availability: 2.0.0: ISO-IEC-19776-1.2-X3DEncodings-XML"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:672
+#, no-c-format
+msgid ""
+"Example: Create a fully functional X3D document - This will generate a cube "
+"that is viewable in FreeWrl and other X3D viewers."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:673
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/"
+"specifications/x3d-3.0.dtd\">\n"
+"<X3D>\n"
+"  <Scene>\n"
+"    <Transform>\n"
+"      <Shape>\n"
+"       <Appearance>\n"
+"            <Material emissiveColor=''0 0 1''/>   \n"
+"       </Appearance> ' || \n"
+"       ST_AsX3D( ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )')) ||\n"
+"      '</Shape>\n"
+"    </Transform>\n"
+"  </Scene>\n"
+"</X3D>' As x3ddoc;]]>\n"
+"\n"
+"                x3ddoc\n"
+"                --------\n"
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.0//EN\" \"http://www.web3d.org/"
+"specifications/x3d-3.0.dtd\">\n"
+"<X3D>\n"
+"  <Scene>\n"
+"    <Transform>\n"
+"      <Shape>\n"
+"       <Appearance>\n"
+"            <Material emissiveColor='0 0 1'/>   \n"
+"       </Appearance> \n"
+"       <IndexedFaceSet  coordIndex='0 1 2 3 -1 4 5 6 7 -1 8 9 10 11 -1 12 13 "
+"14 15 -1 16 17 18 19 -1 20 21 22 23'>\n"
+"            <Coordinate point='0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 "
+"0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 "
+"0 1 1 0 1 1 1 1 0 1 1' />\n"
+"      </IndexedFaceSet>\n"
+"      </Shape>\n"
+"    </Transform>\n"
+"  </Scene>\n"
+"</X3D>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:676
+#, no-c-format
+msgid "Example: An Octagon elevated 3 Units and decimal precision of 6"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:677
+#, no-c-format
+msgid ""
+"SELECT ST_AsX3D(\n"
+"ST_Translate(\n"
+"    ST_Force_3d(\n"
+"        ST_Buffer(ST_Point(10,10),5, 'quad_segs=2')), 0,0,\n"
+"    3)\n"
+"  ,6) As x3dfrag;\n"
+"\n"
+"x3dfrag\n"
+"--------\n"
+"<![CDATA[<IndexedFaceSet coordIndex=\"0 1 2 3 4 5 6 7\">\n"
+"    <Coordinate point=\"15 10 3 13.535534 6.464466 3 10 5 3 6.464466 "
+"6.464466 3 5 10 3 6.464466 13.535534 3 10 15 3 13.535534 13.535534 3 \" />\n"
+"</IndexedFaceSet>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:680
+#, no-c-format
+msgid "Example: TIN"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:681
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsX3D(ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )')) As x3dfrag;]]>\n"
+"\n"
+"                x3dfrag\n"
+"                --------\n"
+"<![CDATA[<IndexedTriangleSet  index='0 1 2 3 4 5'><Coordinate point='0 0 0 0 "
+"0 1 0 1 0 0 0 0 0 1 0 1 1 0'/></IndexedTriangleSet>]]>"
+msgstr ""
+
+#. Tag: title
+#: reference_output.xml:684
+#, no-c-format
+msgid "Example: Closed multilinestring (the boundary of a polygon with holes)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:685
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsX3D(\n"
+"                    ST_GeomFromEWKT('MULTILINESTRING((20 0 10,16 -12 10,0 "
+"-16 10,-12 -12 10,-20 0 10,-12 16 10,0 24 10,16 16 10,20 0 10),\n"
+"  (12 0 10,8 8 10,0 12 10,-8 8 10,-8 0 10,-8 -4 10,0 -8 10,8 -4 10,12 0 "
+"10))') \n"
+") As x3dfrag;]]>\n"
+"\n"
+"                x3dfrag\n"
+"                --------\n"
+"<![CDATA[<IndexedLineSet  coordIndex='0 1 2 3 4 5 6 7 0 -1 8 9 10 11 12 13 "
+"14 15 8'>\n"
+"    <Coordinate point='20 0 10 16 -12 10 0 -16 10 -12 -12 10 -20 0 10 -12 16 "
+"10 0 24 10 16 16 10 12 0 10 8 8 10 0 12 10 -8 8 10 -8 0 10 -8 -4 10 0 -8 10 "
+"8 -4 10 ' />\n"
+" </IndexedLineSet>]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:691
+#, no-c-format
+msgid "ST_GeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:693
+#, no-c-format
+msgid "Return a GeoHash representation of the geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:698
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoHash</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxchars=full_precision_of_point</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:709
+#, no-c-format
+msgid ""
+"Return a GeoHash representation (<ulink url=\"http://en.wikipedia.org/wiki/"
+"Geohash\">http://en.wikipedia.org/wiki/Geohash</ulink>) of the geometry. A "
+"GeoHash encodes a point into a text form that is sortable and searchable "
+"based on prefixing. A shorter GeoHash is a less precise representation of a "
+"point. It can also be thought of as a box, that contains the actual point."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:711
+#, no-c-format
+msgid ""
+"If no <varname>maxchars</varname> is specficified ST_GeoHash returns a "
+"GeoHash based on full precision of the input geometry type. Points return a "
+"GeoHash with 20 characters of precision (about enough to hold the full "
+"double precision of the input). Other types return a GeoHash with a variable "
+"amount of precision, based on the size of the feature. Larger features are "
+"represented with less precision, smaller features with more precision. The "
+"idea is that the box implied by the GeoHash will always contain the input "
+"feature."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:713
+#, no-c-format
+msgid ""
+"If <varname>maxchars</varname> is specified ST_GeoHash returns a GeoHash "
+"with at most that many characters so a possibly lower precision "
+"representation of the input geometry. For non-points, the starting point of "
+"the calculation is the center of the bounding box of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:715
+#, no-c-format
+msgid "Availability: 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:718
+#, no-c-format
+msgid ""
+"ST_GeoHash will not work with geometries that are not in geographic (lon/"
+"lat) coordinates."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:726
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326));\n"
+"\n"
+"         st_geohash\n"
+"----------------------\n"
+" c0w3hf1s70w3hf1s70w3\n"
+"\n"
+"SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326),5);\n"
+"\n"
+" st_geohash\n"
+"------------\n"
+" c0w3h\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:737
+#, no-c-format
+msgid "ST_AsText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:738
+#, no-c-format
+msgid ""
+"Return the Well-Known Text (WKT) representation of the geometry/geography "
+"without SRID metadata."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:742
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsText</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:757
+#, no-c-format
+msgid "Returns the Well-Known Text representation of the geometry/geography."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:760
+#, no-c-format
+msgid ""
+"The WKT spec does not include the SRID. To get the SRID as part of the data, "
+"use the non-standard PostGIS <xref linkend=\"ST_AsEWKT\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:767
+#, no-c-format
+msgid ""
+"ST_AsText is the reverse of <xref linkend=\"ST_GeomFromText\"/>. Use <xref "
+"linkend=\"ST_GeomFromText\"/> to convert to a postgis geometry from "
+"ST_AsText representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:770
+#, no-c-format
+msgid "Availability: 1.5 - support for geography was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:772
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:780
+#, no-c-format
+msgid ""
+"SELECT ST_AsText('01030000000100000005000000000000000000\n"
+"000000000000000000000000000000000000000000000000\n"
+"F03F000000000000F03F000000000000F03F000000000000F03\n"
+"F000000000000000000000000000000000000000000000000');\n"
+"\n"
+"                   st_astext\n"
+"--------------------------------\n"
+" POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:787
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsEWKT\"/>, <xref "
+"linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:794
+#, no-c-format
+msgid "ST_AsLatLonText"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:795
+#, no-c-format
+msgid "Return the Degrees, Minutes, Seconds representation of the given point."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:799
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>text <function>ST_AsLatLonText</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsLatLonText</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>format</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:815
+#, no-c-format
+msgid "Returns the Degrees, Minutes, Seconds representation of the point."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:818
+#, no-c-format
+msgid ""
+"It is assumed the point is in a lat/lon projection. The X (lon) and Y (lat) "
+"coordinates are normalized in the output to the \"normal\" range (-180 to "
+"+180 for lon, -90 to +90 for lat)."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:821
+#, no-c-format
+msgid ""
+"The text parameter is a format string containing the format for the "
+"resulting text, similar to a date format string. Valid tokens are \"D\" for "
+"degrees, \"M\" for minutes, \"S\" for seconds, and \"C\" for cardinal "
+"direction (NSEW). DMS tokens may be repeated to indicate desired width and "
+"precision (\"SSS.SSSS\" means \" 1.0023\")."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:826
+#, no-c-format
+msgid ""
+"\"M\", \"S\", and \"C\" are optional. If \"C\" is omitted, degrees are shown "
+"with a \"-\" sign if south or west. If \"S\" is omitted, minutes will be "
+"shown as decimal with as many digits of precision as you specify. If \"M\" "
+"is also omitted, degrees are shown as decimal with as many digits precision "
+"as you specify."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:831
+#, no-c-format
+msgid ""
+"If the format string is omitted (or zero-length) a default format will be "
+"used."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:837
+#, no-c-format
+msgid "Availability: 2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:843
+#, no-c-format
+msgid "Default format."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:844
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:845
+#, no-c-format
+msgid "Providing a format (same as the default)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:846
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"C'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" 2°19'29.928\"S 3°14'3.243\"W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:847
+#, no-c-format
+msgid "Characters other than D, M, S, C and . are just passed through."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:848
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D degrees, M "
+"minutes, S seconds to the C'));\n"
+"                                   st_aslatlontext                                    \n"
+"--------------------------------------------------------------------------------------\n"
+" 2 degrees, 19 minutes, 30 seconds to the S 3 degrees, 14 minutes, 3 seconds "
+"to the W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:849
+#, no-c-format
+msgid "Signed degrees instead of cardinal directions."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:850
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"'));\n"
+"      st_aslatlontext       \n"
+"----------------------------\n"
+" -2°19'29.928\" -3°14'3.243\""
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:851
+#, no-c-format
+msgid "Decimal degrees."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:852
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees "
+"C'));\n"
+"          st_aslatlontext          \n"
+"-----------------------------------\n"
+" 2.3250 degrees S 3.2342 degrees W"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:853
+#, no-c-format
+msgid "Excessively large values are normalized."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:854
+#, no-c-format
+msgid ""
+"SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));\n"
+"        st_aslatlontext        \n"
+"-------------------------------\n"
+" 72°19'29.928\"S 57°45'56.757\"E"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:862
+#, no-c-format
+msgid "ST_AsTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:863
+#, no-c-format
+msgid "Returns the geometry as TWKB, Tiny WKB"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:868
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsTWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID=null</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>include "
+"sizes=false</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include bounding boxes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:880 reference_output.xml:946
+#, no-c-format
+msgid ""
+"Returns the geometry in TWKB format. TWKB is a new compressed binary format."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:881 reference_output.xml:948
+#, no-c-format
+msgid ""
+"The second parameter is an integer used to define the number of coordinate "
+"decimals in the output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:882 reference_output.xml:949
+#, no-c-format
+msgid ""
+"The third parameter is optional. It is used to give each TWKB-geometry an "
+"unique ID"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:883 reference_output.xml:950
+#, no-c-format
+msgid ""
+"The fourth parameter is optional. If it is set to true, the size of the "
+"geometry is included"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:885
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/TWKB/Specification\">https://github.com/TWKB/Specification</"
+"ulink> , and code for building a client can be found <ulink url=\"https://"
+"github.com/TWKB/twkb.js\">https://github.com/TWKB/twkb.js</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:888
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So PointM and PointZ will give "
+"the same twkb representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:891 reference_output.xml:956 reference_output.xml:993
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:897
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKB('LINESTRING(1 1,5 5)'::geometry,0,1);\n"
+"                 st_astwkb                  \n"
+"--------------------------------------------\n"
+"\\x0142020202020808"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:902 reference_output.xml:967
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_AsEWKB\"/>, <xref "
+"linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:908
+#, no-c-format
+msgid "ST_AsTWKBAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:909
+#, no-c-format
+msgid "Aggregates the geometries and returns as TWKB"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:913
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>include sizes</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include sizes</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>include bounding boxes</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:947
+#, no-c-format
+msgid ""
+"This is the aggregate version of ST_AsTWKB. It aggregates and returns the "
+"geometry in TWKB-format. In the resulting TWKB-geometry each individual ID "
+"of the input geometries is stored."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:952
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/nicklasaven/TWKB\">https://github.com/nicklasaven/TWKB</ulink> , "
+"and code for building a client can be found <ulink url=\"https://github.com/"
+"nicklasaven/twkb_web\">https://github.com/nicklasaven/twkb_web</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:962
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKBAgg(geom,0,id) FROM\n"
+"(SELECT 'LINESTRING(1 1,5 5)'::geometry geom, 1 AS id\n"
+"UNION ALL\n"
+"SELECT 'LINESTRING(6 5, 1 7)'::geometry AS geom, 2 AS id) foo;\n"
+"                               st_astwkbagg                                \n"
+"----------------------------------------------------------------------------\n"
+"\\x015602020202020808040202000904"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:973
+#, no-c-format
+msgid "ST_AsEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:974
+#, no-c-format
+msgid "Returns an Encoded Polyline from a LineString geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:979
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsEncodedPolyline</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:990
+#, no-c-format
+msgid "Returns the geometry as an Encoded Polyline."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:998
+#, no-c-format
+msgid ""
+"ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 "
+"40.7,-126.453 43.252)'));\n"
+"--result--\n"
+"|_p~iF~ps|U_ulLnnqC_mqNvxq`@"
+msgstr ""
diff --git a/doc/po/pl/reference_processing.xml.po b/doc/po/pl/reference_processing.xml.po
new file mode 100644
index 0000000..20c69ed
--- /dev/null
+++ b/doc/po/pl/reference_processing.xml.po
@@ -0,0 +1,3989 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_processing.xml:3
+#, no-c-format
+msgid "Geometry Processing"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:6
+#, no-c-format
+msgid "ST_Buffer"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:8
+#, no-c-format
+msgid ""
+"(T) For geometry: Returns a geometry that represents all points whose "
+"distance from this Geometry is less than or equal to distance. Calculations "
+"are in the Spatial Reference System of this Geometry. For geography: Uses a "
+"planar transform wrapper. Introduced in 1.5 support for different end cap "
+"and mitre settings to control shape. buffer_style options: quad_segs=#,"
+"endcap=round|flat|square,join=round|mitre|bevel,mitre_limit=#.#"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:16
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Buffer</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>radius_of_buffer</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Buffer</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>num_seg_quarter_circle</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer</parameter></paramdef> <paramdef><type>text </"
+"type> <parameter>buffer_style_parameters</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geography <function>ST_Buffer</"
+"function></funcdef> <paramdef><type>geography </type> <parameter>g1</"
+"parameter></paramdef> <paramdef><type>float </type> "
+"<parameter>radius_of_buffer_in_meters</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:47 reference_processing.xml:221
+#: reference_processing.xml:300 reference_processing.xml:355
+#: reference_processing.xml:421 reference_processing.xml:570
+#: reference_processing.xml:638 reference_processing.xml:686
+#: reference_processing.xml:785 reference_processing.xml:865
+#: reference_processing.xml:923 reference_processing.xml:992
+#: reference_processing.xml:1039 reference_processing.xml:1091
+#: reference_processing.xml:1156 reference_processing.xml:1198
+#: reference_processing.xml:1257 reference_processing.xml:1304
+#: reference_processing.xml:1363 reference_processing.xml:1415
+#: reference_processing.xml:1469 reference_processing.xml:1622
+#: reference_processing.xml:1658 reference_processing.xml:1735
+#: reference_processing.xml:1785 reference_processing.xml:1830
+#: reference_processing.xml:1872 reference_processing.xml:1984
+#: reference_processing.xml:2077 reference_processing.xml:2146
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:49
+#, no-c-format
+msgid ""
+"Returns a geometry/geography that represents all points whose distance from "
+"this Geometry/geography is less than or equal to distance."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:51
+#, no-c-format
+msgid ""
+"Geometry: Calculations are in the Spatial Reference System of the geometry. "
+"Introduced in 1.5 support for different end cap and mitre settings to "
+"control shape."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:54
+#, no-c-format
+msgid ""
+"Negative radii: For polygons, a negative radius can be used, which will "
+"shrink the polygon rather than expanding it."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:55
+#, no-c-format
+msgid ""
+"Geography: For geography this is really a thin wrapper around the geometry "
+"implementation. It first determines the best SRID that fits the bounding box "
+"of the geography object (favoring UTM, Lambert Azimuthal Equal Area (LAEA) "
+"north/south pole, and falling back on mercator in worst case scenario) and "
+"then buffers in that planar spatial ref and retransforms back to WGS84 "
+"geography."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:57
+#, no-c-format
+msgid ""
+"For geography this may not behave as expected if object is sufficiently "
+"large that it falls between two UTM zones or crosses the dateline"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:59
+#, no-c-format
+msgid ""
+"Availability: 1.5 - ST_Buffer was enhanced to support different endcaps and "
+"join types. These are useful for example to convert road linestrings into "
+"polygon roads with flat or square edges instead of rounded edges. Thin "
+"wrapper for geography was added. - requires GEOS >= 3.2 to take advantage "
+"of advanced geometry functionality."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:62
+#, no-c-format
+msgid ""
+"The optional third parameter (currently only applies to geometry) can either "
+"specify number of segments used to approximate a quarter circle (integer "
+"case, defaults to 8) or a list of blank-separated key=value pairs (string "
+"case) to tweak operations as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:66 reference_processing.xml:1492
+#, no-c-format
+msgid ""
+"'quad_segs=#' : number of segments used to approximate a quarter circle "
+"(defaults to 8)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:69
+#, no-c-format
+msgid ""
+"'endcap=round|flat|square' : endcap style (defaults to \"round\", needs "
+"GEOS-3.2 or higher for a different value). 'butt' is also accepted as a "
+"synonym for 'flat'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:72
+#, no-c-format
+msgid ""
+"'join=round|mitre|bevel' : join style (defaults to \"round\", needs GEOS-3.2 "
+"or higher for a different value). 'miter' is also accepted as a synonym for "
+"'mitre'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:75
+#, no-c-format
+msgid ""
+"'mitre_limit=#.#' : mitre ratio limit (only affects mitered join style). "
+"'miter_limit' is also accepted as a synonym for 'mitre_limit'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:80
+#, no-c-format
+msgid "Units of radius are measured in units of the spatial reference system."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:81
+#, no-c-format
+msgid ""
+"The inputs can be POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
+"POLYGONS, MULTIPOLYGONS, and GeometryCollections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:82
+#, no-c-format
+msgid ""
+"This function ignores the third dimension (z) and will always give a 2-d "
+"buffer even when presented with a 3d-geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:84 reference_processing.xml:309
+#: reference_processing.xml:1509 reference_processing.xml:1839
+#: reference_processing.xml:2097
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:85 reference_processing.xml:589
+#: reference_processing.xml:796 reference_processing.xml:1116
+#: reference_processing.xml:1995 reference_processing.xml:2106
+#, no-c-format
+msgid "&sfs_compliant; s2.1.1.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:86
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.17"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:88
+#, no-c-format
+msgid ""
+"People often make the mistake of using this function to try to do radius "
+"searches. Creating a buffer to to a radius search is slow and pointless. Use "
+"<xref linkend=\"ST_DWithin\"/> instead."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:93 reference_processing.xml:238
+#: reference_processing.xml:317 reference_processing.xml:391
+#: reference_processing.xml:459 reference_processing.xml:595
+#: reference_processing.xml:652 reference_processing.xml:803
+#: reference_processing.xml:1007 reference_processing.xml:1120
+#: reference_processing.xml:1273 reference_processing.xml:1321
+#: reference_processing.xml:1432 reference_processing.xml:1518
+#: reference_processing.xml:1755 reference_processing.xml:1801
+#: reference_processing.xml:1845 reference_processing.xml:1888
+#: reference_processing.xml:2003 reference_processing.xml:2113
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:104
+#, no-c-format
+msgid "quad_segs=8 (default)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:107
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=8');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:115
+#, no-c-format
+msgid "quad_segs=2 (lame)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:127
+#, no-c-format
+msgid "endcap=round join=round (default)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:130
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=round join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:138
+#, no-c-format
+msgid "endcap=square"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:141
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=square join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:149
+#, no-c-format
+msgid "endcap=flat"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:152
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'endcap=flat join=round');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:161
+#, no-c-format
+msgid "join=bevel"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:164
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=bevel');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:172
+#, no-c-format
+msgid "join=mitre mitre_limit=5.0 (default mitre limit)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:175
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=mitre mitre_limit=5.0');"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:183
+#, no-c-format
+msgid "join=mitre mitre_limit=1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:186
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(\n"
+" ST_GeomFromText(\n"
+"  'LINESTRING(50 50,150 150,150 50)'\n"
+" ), 10, 'join=mitre mitre_limit=1.0');"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:193
+#, no-c-format
+msgid ""
+"--A buffered point approximates a circle\n"
+"-- A buffered point forcing approximation of (see diagram)\n"
+"-- 2 points per circle is poly with 8 sides (see diagram)\n"
+"SELECT ST_NPoints(ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50)) As "
+"promisingcircle_pcount,\n"
+"ST_NPoints(ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50, 2)) As "
+"lamecircle_pcount;\n"
+"\n"
+"promisingcircle_pcount | lamecircle_pcount\n"
+"------------------------+-------------------\n"
+"                         33 |                9\n"
+"\n"
+"--A lighter but lamer circle\n"
+"-- only 2 points per quarter circle is an octagon\n"
+"--Below is a 100 meter octagon\n"
+"-- Note coordinates are in NAD 83 long lat which we transform\n"
+"to Mass state plane meter and then buffer to get measurements in meters;\n"
+"SELECT ST_AsText(ST_Buffer(\n"
+"ST_Transform(\n"
+"ST_SetSRID(ST_MakePoint(-71.063526, 42.35785),4269), 26986)\n"
+",100,2)) As octagon;\n"
+"----------------------\n"
+"POLYGON((236057.59057465 900908.759918696,236028.301252769 "
+"900838.049240578,235\n"
+"957.59057465 900808.759918696,235886.879896532 "
+"900838.049240578,235857.59057465\n"
+"900908.759918696,235886.879896532 900979.470596815,235957.59057465 "
+"901008.759918\n"
+"696,236028.301252769 900979.470596815,236057.59057465 900908.759918696))"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:197 reference_processing.xml:272
+#: reference_processing.xml:321 reference_processing.xml:398
+#: reference_processing.xml:548 reference_processing.xml:611
+#: reference_processing.xml:659 reference_processing.xml:760
+#: reference_processing.xml:843 reference_processing.xml:902
+#: reference_processing.xml:970 reference_processing.xml:1014
+#: reference_processing.xml:1134 reference_processing.xml:1176
+#: reference_processing.xml:1230 reference_processing.xml:1280
+#: reference_processing.xml:1334 reference_processing.xml:1387
+#: reference_processing.xml:1438 reference_processing.xml:1600
+#: reference_processing.xml:1636 reference_processing.xml:1706
+#: reference_processing.xml:1762 reference_processing.xml:1806
+#: reference_processing.xml:1850 reference_processing.xml:1959
+#: reference_processing.xml:2044 reference_processing.xml:2120
+#: reference_processing.xml:2174
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:199
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
+"linkend=\"ST_Transform\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:205
+#, no-c-format
+msgid "ST_BuildArea"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:207
+#, no-c-format
+msgid ""
+"Creates an areal geometry formed by the constituent linework of given "
+"geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:213
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_BuildArea</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>A</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:223
+#, no-c-format
+msgid ""
+"Creates an areal geometry formed by the constituent linework of given "
+"geometry. The return type can be a Polygon or MultiPolygon, depending on "
+"input. If the input lineworks do not form polygons NULL is returned. The "
+"inputs can be LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS, and "
+"GeometryCollections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:228
+#, no-c-format
+msgid "This function will assume all inner geometries represent holes"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:231 reference_processing.xml:1375
+#, no-c-format
+msgid ""
+"Input linework must be correctly noded for this function to work properly"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:234
+#, no-c-format
+msgid "Availability: 1.1.0 - requires GEOS >= 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:248
+#, no-c-format
+msgid "This will create a donut"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:251
+#, no-c-format
+msgid ""
+"SELECT ST_BuildArea(ST_Collect(smallc,bigc))\n"
+"FROM (SELECT\n"
+"        ST_Buffer(\n"
+"          ST_GeomFromText('POINT(100 90)'), 25) As smallc,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As bigc) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:260
+#, no-c-format
+msgid ""
+"This will create a gaping hole inside the circle with prongs sticking out"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:263
+#, no-c-format
+msgid ""
+"SELECT ST_BuildArea(ST_Collect(line,circle))\n"
+"FROM (SELECT\n"
+"        ST_Buffer(\n"
+"                ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)),\n"
+"                                5)  As line,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"\n"
+"--this creates the same gaping hole\n"
+"--but using linestrings instead of polygons\n"
+"SELECT ST_BuildArea(\n"
+"        ST_Collect(ST_ExteriorRing(line),ST_ExteriorRing(circle))\n"
+"        )\n"
+"FROM (SELECT ST_Buffer(\n"
+"        ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190))\n"
+"                ,5)  As line,\n"
+"        ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:274
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MakePolygon\"/>, <xref linkend=\"ST_BdPolyFromText\"/>, "
+"<xref linkend=\"ST_BdMPolyFromText\"/>wrappers to this function with "
+"standard OGC interface"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:285
+#, no-c-format
+msgid "ST_ClipByBox2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:286
+#, no-c-format
+msgid "Returns the portion of a geometry falling within a rectangle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:291
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClipByBox2D</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>box2d</type> <parameter>box</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:302
+#, no-c-format
+msgid ""
+"Clips a geometry by a 2D box in a fast but possibly dirty way. The output "
+"geometry is not guaranteed to be valid (self-intersections for a polygon may "
+"be introduced). Topologically invalid input geometries do not result in "
+"exceptions being thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:310
+#, no-c-format
+msgid "Requires GEOS 3.5.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:312
+#, no-c-format
+msgid "Availability: 2.2.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:318
+#, no-c-format
+msgid ""
+"-- Rely on implicit cast from geometry to box2d for the second parameter\n"
+"SELECT ST_ClipByBox2D(the_geom, ST_MakeEnvelope(0,0,10,10)) FROM mytab;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:322
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeBox2D\"/>, <xref linkend=\"ST_MakeEnvelope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:332
+#, no-c-format
+msgid "ST_Collect"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:333
+#, no-c-format
+msgid ""
+"Return a specified ST_Geometry value from a collection of other geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:337
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Collect</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Collect</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:356
+#, no-c-format
+msgid ""
+"Output type can be a MULTI* or a GEOMETRYCOLLECTION. Comes in 2 variants. "
+"Variant 1 collects 2 geometries. Variant 2 is an aggregate function that "
+"takes a set of geometries and collects them into a single ST_Geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:360
+#, no-c-format
+msgid ""
+"Aggregate version: This function returns a GEOMETRYCOLLECTION or a MULTI "
+"object from a set of geometries. The ST_Collect() function is an \"aggregate"
+"\" function in the terminology of PostgreSQL. That means that it operates on "
+"rows of data, in the same way the SUM() and AVG() functions do. For example, "
+"\"SELECT ST_Collect(GEOM) FROM GEOMTABLE GROUP BY ATTRCOLUMN\" will return a "
+"separate GEOMETRYCOLLECTION for each distinct value of ATTRCOLUMN."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:368
+#, no-c-format
+msgid ""
+"Non-Aggregate version: This function returns a geometry being a collection "
+"of two input geometries. Output type can be a MULTI* or a GEOMETRYCOLLECTION."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:372
+#, no-c-format
+msgid ""
+"ST_Collect and ST_Union are often interchangeable. ST_Collect is in general "
+"orders of magnitude faster than ST_Union because it does not try to dissolve "
+"boundaries or validate that a constructed MultiPolgon doesn't have "
+"overlapping regions. It merely rolls up single geometries into MULTI and "
+"MULTI or mixed geometry types into Geometry Collections. Unfortunately "
+"geometry collections are not well-supported by GIS tools. To prevent "
+"ST_Collect from returning a Geometry Collection when collecting MULTI "
+"geometries, one can use the below trick that utilizes <xref linkend=\"ST_Dump"
+"\"/> to expand the MULTIs out to singles and then regroup them."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:383
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_Collect(geomarray) was introduced. ST_Collect was "
+"enhanced to handle more geometries faster."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:384 reference_processing.xml:591
+#: reference_processing.xml:646 reference_processing.xml:698
+#: reference_processing.xml:889 reference_processing.xml:944
+#: reference_processing.xml:1002 reference_processing.xml:1042
+#: reference_processing.xml:1161 reference_processing.xml:1225
+#: reference_processing.xml:1268 reference_processing.xml:1422
+#: reference_processing.xml:1632 reference_processing.xml:1747
+#: reference_processing.xml:2166
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:385
+#, no-c-format
+msgid ""
+"&curve_support; This method supports Circular Strings and Curves, but will "
+"never return a MULTICURVE or MULTI as one would expect and PostGIS does not "
+"currently support those."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:392
+#, no-c-format
+msgid ""
+"Aggregate example (<ulink url=\"http://postgis.refractions.net/pipermail/"
+"postgis-users/2008-June/020331.html\">http://postgis.refractions.net/"
+"pipermail/postgis-users/2008-June/020331.html</ulink>)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:393
+#, no-c-format
+msgid ""
+"SELECT stusps,\n"
+"           ST_Multi(ST_Collect(f.the_geom)) as singlegeom\n"
+"         FROM (SELECT stusps, (ST_Dump(the_geom)).geom As the_geom\n"
+"                                FROM\n"
+"                                somestatetable ) As f\n"
+"GROUP BY stusps"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:394 reference_processing.xml:2116
+#, no-c-format
+msgid "Non-Aggregate example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:395
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
+"        ST_GeomFromText('POINT(-2 3)') ));\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(1 2,-2 3)\n"
+"\n"
+"--Collect 2 d points\n"
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
+"                ST_GeomFromText('POINT(1 2)') ) );\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(1 2,1 2)\n"
+"\n"
+"--Collect 3d points\n"
+"SELECT ST_AsEWKT(ST_Collect(ST_GeomFromEWKT('POINT(1 2 3)'),\n"
+"                ST_GeomFromEWKT('POINT(1 2 4)') ) );\n"
+"\n"
+"                st_asewkt\n"
+"-------------------------\n"
+" MULTIPOINT(1 2 3,1 2 4)\n"
+"\n"
+" --Example with curves\n"
+"SELECT ST_AsText(ST_Collect(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)'),\n"
+"ST_GeomFromText('CIRCULARSTRING(220227 150406,2220227 150407,220227 "
+"150406)')));\n"
+"                                                                                                                                st_astext\n"
+"------------------------------------------------------------------------------------\n"
+" GEOMETRYCOLLECTION(CIRCULARSTRING(220268 150415,220227 150505,220227 "
+"150406),\n"
+" CIRCULARSTRING(220227 150406,2220227 150407,220227 150406))\n"
+"\n"
+"--New ST_Collect array construct\n"
+"SELECT ST_Collect(ARRAY(SELECT the_geom FROM sometable));\n"
+"\n"
+"SELECT ST_AsText(ST_Collect(ARRAY[ST_GeomFromText('LINESTRING(1 2, 3 4)'),\n"
+"                        ST_GeomFromText('LINESTRING(3 4, 4 5)')])) As "
+"wktcollect;\n"
+"\n"
+"--wkt collect --\n"
+"MULTILINESTRING((1 2,3 4),(3 4,4 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:399
+#, no-c-format
+msgid ", <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:404
+#, no-c-format
+msgid "ST_ConcaveHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:405
+#, no-c-format
+msgid ""
+"The concave hull of a geometry represents a possibly concave geometry that "
+"encloses all geometries within the set. You can think of it as shrink "
+"wrapping."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:411
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConcaveHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>target_percent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>allow_holes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:422
+#, no-c-format
+msgid ""
+"The concave hull of a geometry represents a possibly concave geometry that "
+"encloses all geometries within the set. Defaults to false for allowing "
+"polygons with holes. The result is never higher than a single polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:426
+#, no-c-format
+msgid ""
+"The target_percent is the target percent of area of convex hull the PostGIS "
+"solution will try to approach before giving up or exiting. One can think of "
+"the concave hull as the geometry you get by vacuum sealing a set of "
+"geometries. The target_percent of 1 will give you the same answer as the "
+"convex hull. A target_percent between 0 and 0.99 will give you something "
+"that should have a smaller area than the convex hull. This is different from "
+"a convex hull which is more like wrapping a rubber band around the set of "
+"geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:431
+#, no-c-format
+msgid ""
+"It is usually used with MULTI and Geometry Collections. Although it is not "
+"an aggregate - you can use it in conjunction with ST_Collect or ST_Union to "
+"get the concave hull of a set of points/linestring/polygons "
+"ST_ConcaveHull(ST_Collect(somepointfield), 0.80)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:436
+#, no-c-format
+msgid ""
+"It is much slower to compute than convex hull but encloses the geometry "
+"better and is also useful for image recognition."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:439 reference_processing.xml:587
+#: reference_processing.xml:792 reference_processing.xml:1111
+#: reference_processing.xml:1991
+#, no-c-format
+msgid "Performed by the GEOS module"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:440
+#, no-c-format
+msgid ""
+"Note - If you are using with points, linestrings, or geometry collections "
+"use ST_Collect. If you are using with polygons, use ST_Union since it may "
+"fail with invalid geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:443
+#, no-c-format
+msgid ""
+"Note - The smaller you make the target percent, the longer it takes to "
+"process the concave hull and more likely to run into topological exceptions. "
+"Also the more floating points and number of points you accrue. First try a "
+"0.99 which does a first hop, is usually very fast, sometimes as fast as "
+"computing the convex hull, and usually gives much better than 99% of shrink "
+"since it almost always overshoots. Second hope of 0.98 it slower, others get "
+"slower usually quadratically. To reduce precision and float points, use "
+"<xref linkend=\"ST_SimplifyPreserveTopology\"/> or <xref linkend="
+"\"ST_SnapToGrid\"/> after ST_ConcaveHull. ST_SnapToGrid is a bit faster, but "
+"could result in invalid geometries where as ST_SimplifyPreserveTopology "
+"almost always preserves the validity of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:448
+#, no-c-format
+msgid ""
+"More real world examples and brief explanation of the technique are shown "
+"<ulink url=\"http://www.bostongis.com/postgis_concavehull.snippet\">http://"
+"www.bostongis.com/postgis_concavehull.snippet</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:451
+#, no-c-format
+msgid ""
+"Also check out Simon Greener's article on demonstrating ConcaveHull "
+"introduced in Oracle 11G R2. <ulink url=\"http://www.spatialdbadvisor.com/"
+"oracle_spatial_tips_tricks/172/concave-hull-geometries-in-"
+"oracle-11gr2\">http://www.spatialdbadvisor.com/"
+"oracle_spatial_tips_tricks/172/concave-hull-geometries-in-oracle-11gr2</"
+"ulink>. The solution we get at 0.75 target percent of convex hull is similar "
+"to the shape Simon gets with Oracle SDO_CONCAVEHULL_BOUNDARY."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:455 reference_processing.xml:1044
+#: reference_processing.xml:1630 reference_processing.xml:1883
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:460
+#, no-c-format
+msgid ""
+"--Get estimate of infected area based on point observations\n"
+"SELECT d.disease_type,\n"
+"        ST_ConcaveHull(ST_Collect(d.pnt_geom), 0.99) As geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:470
+#, no-c-format
+msgid "ST_ConcaveHull of 2 polygons encased in target 100% shrink concave hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:473
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull \n"
+"-- at target 100% shrink (this is the same as convex hull - since no "
+"shrink)\n"
+"SELECT \n"
+"        ST_ConcaveHull(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ), 1)  \n"
+"         As convexhull;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:480
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull at target 90% of convex hull area"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:484
+#, no-c-format
+msgid ""
+"-- geometries overlaid with concavehull at target 90% shrink\n"
+"SELECT \n"
+"        ST_ConcaveHull(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ), 0.9)  \n"
+"         As target_90;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:493
+#, no-c-format
+msgid "L Shape points overlaid with convex hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:496
+#, no-c-format
+msgid ""
+"-- this produces a table of 42 points that form an L shape\n"
+"SELECT (ST_DumpPoints(ST_GeomFromText(\n"
+"'MULTIPOINT(14 14,34 14,54 14,74 14,94 14,114 14,134 14,\n"
+"150 14,154 14,154 6,134 6,114 6,94 6,74 6,54 6,34 6,\n"
+"14 6,10 6,8 6,7 7,6 8,6 10,6 30,6 50,6 70,6 90,6 110,6 130,\n"
+"6 150,6 170,6 190,6 194,14 194,14 174,14 154,14 134,14 114,\n"
+"14 94,14 74,14 54,14 34,14 14)'))).geom \n"
+"        INTO TABLE l_shape;\n"
+"\n"
+"SELECT ST_ConvexHull(ST_Collect(geom))\n"
+"FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:503
+#, no-c-format
+msgid "ST_ConcaveHull of L points at target 99% of convex hull"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:506
+#, no-c-format
+msgid ""
+"SELECT ST_ConcaveHull(ST_Collect(geom), 0.99)\n"
+"        FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:515
+#, no-c-format
+msgid "Concave Hull of L points at target 80% convex hull area"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:518
+#, no-c-format
+msgid ""
+"-- Concave Hull L shape points\n"
+"        -- at target 80% of convexhull\n"
+"        SELECT ST_ConcaveHull(ST_Collect(geom), 0.80)\n"
+"        FROM l_shape;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:527
+#, no-c-format
+msgid "multilinestring overlaid with Convex hull"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:535
+#, no-c-format
+msgid ""
+"multilinestring with overlaid with Concave hull of linestrings at 99% target "
+"-- first hop"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:539
+#, no-c-format
+msgid ""
+"SELECT ST_ConcaveHull(ST_GeomFromText('MULTILINESTRING((106 164,30 112,74 "
+"70,82 112,130 94,\n"
+"        130 62,122 40,156 32,162 76,172 88),\n"
+"(132 178,134 148,128 136,96 128,132 108,150 130,\n"
+"170 142,174 110,156 96,158 90,158 88),\n"
+"(22 64,66 28,94 38,94 68,114 76,112 30,\n"
+"132 10,168 18,178 34,186 52,184 74,190 100,\n"
+"190 122,182 148,178 170,176 184,156 164,146 178,\n"
+"132 186,92 182,56 158,36 150,62 150,76 128,88 118))'),0.99)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:549
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend="
+"\"ST_SimplifyPreserveTopology\"/>, <xref linkend=\"ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:555
+#, no-c-format
+msgid "ST_ConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:556
+#, no-c-format
+msgid ""
+"<refpurpose>The convex hull of a geometry represents the minimum convex "
+"geometry that encloses all geometries within the set.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:562
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:571
+#, no-c-format
+msgid ""
+"<para>The convex hull of a geometry represents the minimum convex geometry "
+"that encloses all geometries within the set.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:574
+#, no-c-format
+msgid ""
+"One can think of the convex hull as the geometry you get by wrapping an "
+"elastic band around a set of geometries. This is different from a concave "
+"hull which is analogous to shrink-wrapping your geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:578
+#, no-c-format
+msgid ""
+"It is usually used with MULTI and Geometry Collections. Although it is not "
+"an aggregate - you can use it in conjunction with ST_Collect to get the "
+"convex hull of a set of points. ST_ConvexHull(ST_Collect(somepointfield))."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:583
+#, no-c-format
+msgid ""
+"It is often used to determine an affected area based on a set of point "
+"observations."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:590
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.16"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:596
+#, no-c-format
+msgid ""
+"--Get estimate of infected area based on point observations\n"
+"SELECT d.disease_type,\n"
+"        ST_ConvexHull(ST_Collect(d.the_geom)) As the_geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:604
+#, no-c-format
+msgid ""
+"Convex Hull of a MultiLinestring and a MultiPoint seen together with the "
+"MultiLinestring and MultiPoint"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:607
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_ConvexHull(\n"
+"        ST_Collect(\n"
+"                ST_GeomFromText('MULTILINESTRING((100 190,10 8),(150 10, 20 "
+"30))'),\n"
+"                        ST_GeomFromText('MULTIPOINT(50 5, 150 30, 50 10, 10 "
+"10)')\n"
+"                        )) );\n"
+"---st_astext--\n"
+"POLYGON((50 5,10 8,10 10,100 190,150 30,150 10,50 5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:612
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_ConcaveHull\"/>, <xref linkend="
+"\"ST_MinimumBoundingCircle\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:618
+#, no-c-format
+msgid "ST_CurveToLine"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:620
+#, no-c-format
+msgid "Converts a CIRCULARSTRING/CURVEDPOLYGON to a LINESTRING/POLYGON"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:624
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_CurveToLine</function></"
+"funcdef> <paramdef><type>geometry</type> <parameter>curveGeom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_CurveToLine</function></funcdef> <paramdef><type>geometry</"
+"type> <parameter>curveGeom</parameter></paramdef> <paramdef><type>integer</"
+"type> <parameter>segments_per_qtr_circle</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:640
+#, no-c-format
+msgid ""
+"Converst a CIRCULAR STRING to regular LINESTRING or CURVEPOLYGON to POLYGON. "
+"Useful for outputting to devices that can't support CIRCULARSTRING geometry "
+"types"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:641
+#, no-c-format
+msgid ""
+"Converts a given geometry to a linear geometry. Each curved geometry or "
+"segment is converted into a linear approximation using the default value of "
+"32 segments per quarter circle"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:643 reference_processing.xml:1160
+#, no-c-format
+msgid "Availability: 1.2.2?"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:644
+#, no-c-format
+msgid "&sfs_compliant;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:645
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 7.1.7"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:647 reference_processing.xml:886
+#: reference_processing.xml:941 reference_processing.xml:1041
+#: reference_processing.xml:1162
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:654
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)')));\n"
+"\n"
+"--Result --\n"
+" LINESTRING(220268 150415,220269.95064912 150416.539364228,220271.823415575 "
+"150418.17258804,220273.613787707 150419.895736857,\n"
+" 220275.317452352 150421.704659462,220276.930305234 "
+"150423.594998003,220278.448460847 150425.562198489,\n"
+" 220279.868261823 150427.60152176,220281.186287736 "
+"150429.708054909,220282.399363347 150431.876723113,\n"
+" 220283.50456625 150434.10230186,220284.499233914 "
+"150436.379429536,220285.380970099 150438.702620341,220286.147650624 "
+"150441.066277505,\n"
+" 220286.797428488 150443.464706771,220287.328738321 "
+"150445.892130112,220287.740300149 150448.342699654,\n"
+" 220288.031122486 150450.810511759,220288.200504713 "
+"150453.289621251,220288.248038775 150455.77405574,\n"
+" 220288.173610157 150458.257830005,220287.977398166 "
+"150460.734960415,220287.659875492 150463.199479347,\n"
+" 220287.221807076 150465.64544956,220286.664248262 "
+"150468.066978495,220285.988542259 150470.458232479,220285.196316903 "
+"150472.81345077,\n"
+" 220284.289480732 150475.126959442,220283.270218395 "
+"150477.39318505,220282.140985384 150479.606668057,\n"
+" 220280.90450212 150481.762075989,220279.5637474 "
+"150483.85421628,220278.12195122 150485.87804878,\n"
+" 220276.582586992 150487.828697901,220274.949363179 "
+"150489.701464356,220273.226214362 150491.491836488,\n"
+" 220271.417291757 150493.195501133,220269.526953216 "
+"150494.808354014,220267.559752731 150496.326509628,\n"
+" 220265.520429459 150497.746310603,220263.41389631 "
+"150499.064336517,220261.245228106 150500.277412127,\n"
+" 220259.019649359 150501.38261503,220256.742521683 "
+"150502.377282695,220254.419330878 150503.259018879,\n"
+" 220252.055673714 150504.025699404,220249.657244448 "
+"150504.675477269,220247.229821107 150505.206787101,\n"
+" 220244.779251566 150505.61834893,220242.311439461 "
+"150505.909171266,220239.832329968 150506.078553494,\n"
+" 220237.347895479 150506.126087555,220234.864121215 "
+"150506.051658938,220232.386990804 150505.855446946,\n"
+" 220229.922471872 150505.537924272,220227.47650166 "
+"150505.099855856,220225.054972724 150504.542297043,\n"
+" 220222.663718741 150503.86659104,220220.308500449 150503.074365683,\n"
+" 220217.994991777 150502.167529512,220215.72876617 150501.148267175,\n"
+" 220213.515283163 150500.019034164,220211.35987523 150498.7825509,\n"
+" 220209.267734939 150497.441796181,220207.243902439 150496,\n"
+" 220205.293253319 150494.460635772,220203.420486864 "
+"150492.82741196,220201.630114732 150491.104263143,\n"
+" 220199.926450087 150489.295340538,220198.313597205 "
+"150487.405001997,220196.795441592 150485.437801511,\n"
+" 220195.375640616 150483.39847824,220194.057614703 "
+"150481.291945091,220192.844539092 150479.123276887,220191.739336189 "
+"150476.89769814,\n"
+" 220190.744668525 150474.620570464,220189.86293234 "
+"150472.297379659,220189.096251815 150469.933722495,\n"
+" 220188.446473951 150467.535293229,220187.915164118 "
+"150465.107869888,220187.50360229 150462.657300346,\n"
+" 220187.212779953 150460.189488241,220187.043397726 "
+"150457.710378749,220186.995863664 150455.22594426,\n"
+" 220187.070292282 150452.742169995,220187.266504273 "
+"150450.265039585,220187.584026947 150447.800520653,\n"
+" 220188.022095363 150445.35455044,220188.579654177 "
+"150442.933021505,220189.25536018 150440.541767521,\n"
+" 220190.047585536 150438.18654923,220190.954421707 "
+"150435.873040558,220191.973684044 150433.60681495,\n"
+" 220193.102917055 150431.393331943,220194.339400319 "
+"150429.237924011,220195.680155039 150427.14578372,220197.12195122 "
+"150425.12195122,\n"
+" 220198.661315447 150423.171302099,220200.29453926 "
+"150421.298535644,220202.017688077 150419.508163512,220203.826610682 "
+"150417.804498867,\n"
+" 220205.716949223 150416.191645986,220207.684149708 "
+"150414.673490372,220209.72347298 150413.253689397,220211.830006129 "
+"150411.935663483,\n"
+" 220213.998674333 150410.722587873,220216.22425308 "
+"150409.61738497,220218.501380756 150408.622717305,220220.824571561 "
+"150407.740981121,\n"
+" 220223.188228725 150406.974300596,220225.586657991 150406.324522731,220227 "
+"150406)\n"
+"\n"
+"--3d example\n"
+"SELECT ST_AsEWKT(ST_CurveToLine(ST_GeomFromEWKT('CIRCULARSTRING(220268 "
+"150415 1,220227 150505 2,220227 150406 3)')));\n"
+"Output\n"
+"------\n"
+" LINESTRING(220268 150415 1,220269.95064912 150416.539364228 "
+"1.0181172856673,\n"
+" 220271.823415575 150418.17258804 1.03623457133459,220273.613787707 "
+"150419.895736857 1.05435185700189,....AD INFINITUM ....\n"
+"        220225.586657991 150406.324522731 1.32611114201132,220227 150406 3)\n"
+"\n"
+"--use only 2 segments to approximate quarter circle\n"
+"SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
+"150415,220227 150505,220227 150406)'),2));\n"
+"st_astext\n"
+"------------------------------\n"
+" LINESTRING(220268 150415,220287.740300149 150448.342699654,220278.12195122 "
+"150485.87804878,\n"
+" 220244.779251566 150505.61834893,220207.243902439 150496,220187.50360229 "
+"150462.657300346,\n"
+" 220197.12195122 150425.12195122,220227 150406)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:667
+#, no-c-format
+msgid "ST_DelaunayTriangles"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:669
+#, no-c-format
+msgid "Return a Delaunay triangulation around the given input points."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:676
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_DelaunayTriangles</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>tolerance</parameter></paramdef> "
+"<paramdef><type>int4 </type> <parameter>flags</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:688
+#, no-c-format
+msgid ""
+"Return a <ulink url=\"http://en.wikipedia.org/wiki/Delaunay_triangulation"
+"\">Delaunay triangulation</ulink> around the vertices of the input geometry. "
+"Output is a COLLECTION of polygons (for flags=0) or a MULTILINESTRING (for "
+"flags=1) or TIN (for flags=2). The tolerance, if any, is used to snap input "
+"vertices togheter."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:697
+#, no-c-format
+msgid "Availability: 2.1.0 - requires GEOS >= 3.4.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:699 reference_processing.xml:888
+#: reference_processing.xml:943 reference_processing.xml:1046
+#: reference_processing.xml:1750
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:703
+#, no-c-format
+msgid "2D Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:712
+#, no-c-format
+msgid "Original polygons"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:715
+#, no-c-format
+msgid ""
+"-- our original geometry --\n"
+"        ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                )"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:723
+#, no-c-format
+msgid ""
+"ST_DelaunayTriangles of 2 polygons: delaunay triangle polygons each triangle "
+"themed in different color"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:726
+#, no-c-format
+msgid ""
+"-- geometries overlaid multilinestring triangles\n"
+"SELECT \n"
+"        ST_DelaunayTriangles(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                )) \n"
+"         As  dtriag;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:733
+#, no-c-format
+msgid "-- delaunay triangles as multilinestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:736
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_DelaunayTriangles(\n"
+"                ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, \n"
+"                        50 60, 125 100, 175 150))'),\n"
+"                ST_Buffer(ST_GeomFromText('POINT(110 170)'), 20)\n"
+"                ),0.001,1) \n"
+"         As  dtriag;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:744
+#, no-c-format
+msgid "-- delaunay triangles of 45 points as 55 triangle polygons"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:747
+#, no-c-format
+msgid ""
+"-- this produces a table of 42 points that form an L shape\n"
+"SELECT (ST_DumpPoints(ST_GeomFromText(\n"
+"'MULTIPOINT(14 14,34 14,54 14,74 14,94 14,114 14,134 14,\n"
+"150 14,154 14,154 6,134 6,114 6,94 6,74 6,54 6,34 6,\n"
+"14 6,10 6,8 6,7 7,6 8,6 10,6 30,6 50,6 70,6 90,6 110,6 130,\n"
+"6 150,6 170,6 190,6 194,14 194,14 174,14 154,14 134,14 114,\n"
+"14 94,14 74,14 54,14 34,14 14)'))).geom \n"
+"        INTO TABLE l_shape;\n"
+"-- output as individual polygon triangles\n"
+"SELECT ST_AsText((ST_Dump(geom)).geom) As wkt\n"
+"FROM ( SELECT ST_DelaunayTriangles(ST_Collect(geom)) As geom\n"
+"FROM l_shape) As foo;\n"
+"\n"
+"---wkt ---\n"
+"POLYGON((6 194,6 190,14 194,6 194))\n"
+"POLYGON((14 194,6 190,14 174,14 194))\n"
+"POLYGON((14 194,14 174,154 14,14 194))\n"
+"POLYGON((154 14,14 174,14 154,154 14))\n"
+"POLYGON((154 14,14 154,150 14,154 14))\n"
+"POLYGON((154 14,150 14,154 6,154 14))\n"
+":\n"
+":"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:756
+#, no-c-format
+msgid "3D Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:757
+#, no-c-format
+msgid ""
+"-- 3D multipoint --\n"
+"SELECT ST_AsText(ST_DelaunayTriangles(ST_GeomFromText(\n"
+"'MULTIPOINT Z(14 14 10,\n"
+"150 14 100,34 6 25, 20 10 150)'))) As wkt;\n"
+"\n"
+"-----wkt----\n"
+"GEOMETRYCOLLECTION Z (POLYGON Z ((14 14 10,20 10 150,34 6 25,14 14 10))\n"
+" ,POLYGON Z ((14 14 10,34 6 25,150 14 100,14 14 10)))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:761 reference_processing.xml:1388
+#, no-c-format
+msgid ", <xref linkend=\"ST_Dump\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:768
+#, no-c-format
+msgid "ST_Difference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:770
+#, no-c-format
+msgid ""
+"Returns a geometry that represents that part of geometry A that does not "
+"intersect with geometry B."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:776
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Difference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:787
+#, no-c-format
+msgid ""
+"Returns a geometry that represents that part of geometry A that does not "
+"intersect with geometry B. One can think of this as GeometryA - "
+"ST_Intersection(A,B). If A is completely contained in B then an empty "
+"geometry collection is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:790
+#, no-c-format
+msgid "Note - order matters. B - A will always return a portion of B"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:794 reference_processing.xml:1993
+#, no-c-format
+msgid "Do not call with a GeometryCollection as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:797
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.20"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:798 reference_processing.xml:1997
+#, no-c-format
+msgid ""
+"&Z_support; However it seems to only consider x y when doing the difference "
+"and tacks back on the Z-Index"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:815
+#, no-c-format
+msgid "The original linestrings shown together."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:827
+#, no-c-format
+msgid "The difference of the two linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:836
+#, no-c-format
+msgid ""
+"--Safe for 2d. This is same geometries as what is shown for "
+"st_symdifference\n"
+"SELECT ST_AsText(\n"
+"        ST_Difference(\n"
+"                        ST_GeomFromText('LINESTRING(50 100, 50 200)'),\n"
+"                        ST_GeomFromText('LINESTRING(50 50, 50 150)')\n"
+"                )\n"
+"        );\n"
+"\n"
+"st_astext\n"
+"---------\n"
+"LINESTRING(50 150,50 200)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:838
+#, no-c-format
+msgid ""
+"--When used in 3d doesn't quite do the right thing\n"
+"SELECT ST_AsEWKT(ST_Difference(ST_GeomFromEWKT('MULTIPOINT(-118.58 38.38 "
+"5,-118.60 38.329 6,-118.614 38.281 7)'), ST_GeomFromEWKT('POINT(-118.614 "
+"38.281 5)')));\n"
+"st_asewkt\n"
+"---------\n"
+"MULTIPOINT(-118.6 38.329 6,-118.58 38.38 5)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:851
+#, no-c-format
+msgid "ST_Dump"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:852
+#, no-c-format
+msgid ""
+"Returns a set of geometry_dump (geom,path) rows, that make up a geometry g1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:857
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[] <function>ST_Dump</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:866
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of geometry_dump "
+"rows, formed by a geometry (geom) and an array of integers (path). When the "
+"input geometry is a simple type (POINT,LINESTRING,POLYGON) a single record "
+"will be returned with an empty path array and the input geometry as geom. "
+"When the input geometry is a collection or multi it will return a record for "
+"each of the collection components, and the path will express the position of "
+"the component inside the collection."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:875
+#, no-c-format
+msgid ""
+"ST_Dump is useful for expanding geometries. It is the reverse of a GROUP BY "
+"in that it creates new rows. For example it can be use to expand "
+"MULTIPOLYGONS into POLYGONS."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:879 reference_processing.xml:939
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
+"introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:880
+#, no-c-format
+msgid "Availability: PostGIS 1.0.0RC1. Requires PostgreSQL 7.3 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:882
+#, no-c-format
+msgid ""
+"Prior to 1.3.4, this function crashes if used with geometries that contain "
+"CURVES. This is fixed in 1.3.4+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:887 reference_processing.xml:942
+#: reference_processing.xml:1045 reference_processing.xml:1631
+#: reference_processing.xml:1749
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:893
+#, no-c-format
+msgid "Standard Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:894
+#, no-c-format
+msgid ""
+"SELECT sometable.field1, sometable.field1,\n"
+"      (ST_Dump(sometable.the_geom)).geom AS the_geom\n"
+"FROM sometable;\n"
+"\n"
+"-- Break a compound curve into its constituent linestrings and "
+"circularstrings\n"
+"SELECT ST_AsEWKT(a.geom), ST_HasArc(a.geom)\n"
+"  FROM ( SELECT (ST_Dump(p_geom)).geom AS geom\n"
+"         FROM (SELECT ST_GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 "
+"1, 1 0),(1 0, 0 1))') AS p_geom) AS b\n"
+"        ) AS a;\n"
+"          st_asewkt          | st_hasarc\n"
+"-----------------------------+----------\n"
+" CIRCULARSTRING(0 0,1 1,1 0) | t\n"
+" LINESTRING(1 0,0 1)         | f\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:896 reference_processing.xml:964
+#, no-c-format
+msgid "Polyhedral Surfaces, TIN and Triangle Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:897
+#, no-c-format
+msgid ""
+"-- Polyhedral surface example\n"
+"-- Break a Polyhedral surface into its faces\n"
+"SELECT (a.p_geom).path[1] As path, ST_AsEWKT((a.p_geom).geom) As geom_ewkt\n"
+"  FROM (SELECT ST_Dump(ST_GeomFromEWKT('POLYHEDRALSURFACE( \n"
+"((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)),  ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) \n"
+")') ) AS p_geom )  AS a;\n"
+"\n"
+" path |                geom_ewkt\n"
+"------+------------------------------------------\n"
+"    1 | POLYGON((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0))\n"
+"    2 | POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))\n"
+"    3 | POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0))\n"
+"    4 | POLYGON((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0))\n"
+"    5 | POLYGON((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0))\n"
+"    6 | POLYGON((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:899
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_Dump( ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+" path |                 wkt\n"
+"------+-------------------------------------\n"
+" {1}  | TRIANGLE((0 0 0,0 0 1,0 1 0,0 0 0))\n"
+" {2}  | TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:903
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend="
+"\"ST_Collect\"/>, <xref linkend=\"ST_Collect\"/>, <xref linkend="
+"\"ST_GeometryN\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:909
+#, no-c-format
+msgid "ST_DumpPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:910
+#, no-c-format
+msgid ""
+"Returns a set of geometry_dump (geom,path) rows of all points that make up a "
+"geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:915
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[]<function>ST_DumpPoints</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:924
+#, no-c-format
+msgid ""
+"This set-returning function (SRF) returns a set of <varname>geometry_dump</"
+"varname> rows formed by a geometry (<varname>geom</varname>) and an array of "
+"integers (<varname>path</varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:927
+#, no-c-format
+msgid ""
+"The <parameter>geom</parameter> component of <varname>geometry_dump</"
+"varname> are all the <varname>POINT</varname>s that make up the supplied "
+"geometry"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:930
+#, no-c-format
+msgid ""
+"The <parameter>path</parameter> component of <varname>geometry_dump</"
+"varname> (an <varname>integer[]</varname>) is an index reference enumerating "
+"the <varname>POINT</varname>s of the supplied geometry. For example, if a "
+"<varname>LINESTRING</varname> is supplied, a path of <varname>{i}</varname> "
+"is returned where <varname>i</varname> is the <varname>nth</varname> "
+"coordinate in the <varname>LINESTRING</varname>. If a <varname>POLYGON</"
+"varname> is supplied, a path of <varname>{i,j}</varname> is returned where "
+"<varname>i</varname> is the ring number (1 is outer; inner rings follow) and "
+"<varname>j</varname> enumerates the <varname>POINT</varname>s (again 1-based "
+"index)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:938
+#, no-c-format
+msgid "Enhanced: 2.1.0 Faster speed. Reimplemented as native-C."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:940
+#, no-c-format
+msgid "Availability: 1.5.0"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:947
+#, no-c-format
+msgid "Classic Explode a Table of LineStrings into nodes"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:948
+#, no-c-format
+msgid ""
+"SELECT edge_id, (dp).path[1] As index, ST_AsText((dp).geom) As wktnode\n"
+"FROM (SELECT 1 As edge_id\n"
+"        , ST_DumpPoints(ST_GeomFromText('LINESTRING(1 2, 3 4, 10 10)')) AS "
+"dp\n"
+"     UNION ALL\n"
+"     SELECT 2 As edge_id\n"
+"        , ST_DumpPoints(ST_GeomFromText('LINESTRING(3 5, 5 6, 9 10)')) AS "
+"dp\n"
+"   ) As foo;\n"
+" edge_id | index |    wktnode\n"
+"---------+-------+--------------\n"
+"       1 |     1 | POINT(1 2)\n"
+"       1 |     2 | POINT(3 4)\n"
+"       1 |     3 | POINT(10 10)\n"
+"       2 |     1 | POINT(3 5)\n"
+"       2 |     2 | POINT(5 6)\n"
+"       2 |     3 | POINT(9 10)"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:951
+#, no-c-format
+msgid "Standard Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:961
+#, no-c-format
+msgid ""
+"SELECT path, ST_AsText(geom) \n"
+"FROM (\n"
+"  SELECT (ST_DumpPoints(g.geom)).* \n"
+"  FROM\n"
+"    (SELECT \n"
+"       'GEOMETRYCOLLECTION(\n"
+"          POINT ( 0 1 ), \n"
+"          LINESTRING ( 0 3, 3 4 ),\n"
+"          POLYGON (( 2 0, 2 3, 0 2, 2 0 )),\n"
+"          POLYGON (( 3 0, 3 3, 6 3, 6 0, 3 0 ), \n"
+"                   ( 5 1, 4 2, 5 2, 5 1 )),\n"
+"          MULTIPOLYGON (\n"
+"                  (( 0 5, 0 8, 4 8, 4 5, 0 5 ), \n"
+"                   ( 1 6, 3 6, 2 7, 1 6 )), \n"
+"                  (( 5 4, 5 8, 6 7, 5 4 ))\n"
+"          )\n"
+"        )'::geometry AS geom\n"
+"    ) AS g\n"
+"  ) j;\n"
+"  \n"
+"   path    | st_astext  \n"
+"-----------+------------\n"
+" {1,1}     | POINT(0 1)\n"
+" {2,1}     | POINT(0 3)\n"
+" {2,2}     | POINT(3 4)\n"
+" {3,1,1}   | POINT(2 0)\n"
+" {3,1,2}   | POINT(2 3)\n"
+" {3,1,3}   | POINT(0 2)\n"
+" {3,1,4}   | POINT(2 0)\n"
+" {4,1,1}   | POINT(3 0)\n"
+" {4,1,2}   | POINT(3 3)\n"
+" {4,1,3}   | POINT(6 3)\n"
+" {4,1,4}   | POINT(6 0)\n"
+" {4,1,5}   | POINT(3 0)\n"
+" {4,2,1}   | POINT(5 1)\n"
+" {4,2,2}   | POINT(4 2)\n"
+" {4,2,3}   | POINT(5 2)\n"
+" {4,2,4}   | POINT(5 1)\n"
+" {5,1,1,1} | POINT(0 5)\n"
+" {5,1,1,2} | POINT(0 8)\n"
+" {5,1,1,3} | POINT(4 8)\n"
+" {5,1,1,4} | POINT(4 5)\n"
+" {5,1,1,5} | POINT(0 5)\n"
+" {5,1,2,1} | POINT(1 6)\n"
+" {5,1,2,2} | POINT(3 6)\n"
+" {5,1,2,3} | POINT(2 7)\n"
+" {5,1,2,4} | POINT(1 6)\n"
+" {5,2,1,1} | POINT(5 4)\n"
+" {5,2,1,2} | POINT(5 8)\n"
+" {5,2,1,3} | POINT(6 7)\n"
+" {5,2,1,4} | POINT(5 4)\n"
+"(29 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:965
+#, no-c-format
+msgid ""
+"-- Polyhedral surface cube --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
+"1, 0 1 0, 0 0 0)), \n"
+"((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 "
+"0)), \n"
+"((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 "
+"1)) )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+"  path   |     wkt\n"
+"---------+--------------\n"
+" {1,1,1} | POINT(0 0 0)\n"
+" {1,1,2} | POINT(0 0 1)\n"
+" {1,1,3} | POINT(0 1 1)\n"
+" {1,1,4} | POINT(0 1 0)\n"
+" {1,1,5} | POINT(0 0 0)\n"
+" {2,1,1} | POINT(0 0 0)\n"
+" {2,1,2} | POINT(0 1 0)\n"
+" {2,1,3} | POINT(1 1 0)\n"
+" {2,1,4} | POINT(1 0 0)\n"
+" {2,1,5} | POINT(0 0 0)\n"
+" {3,1,1} | POINT(0 0 0)\n"
+" {3,1,2} | POINT(1 0 0)\n"
+" {3,1,3} | POINT(1 0 1)\n"
+" {3,1,4} | POINT(0 0 1)\n"
+" {3,1,5} | POINT(0 0 0)\n"
+" {4,1,1} | POINT(1 1 0)\n"
+" {4,1,2} | POINT(1 1 1)\n"
+" {4,1,3} | POINT(1 0 1)\n"
+" {4,1,4} | POINT(1 0 0)\n"
+" {4,1,5} | POINT(1 1 0)\n"
+" {5,1,1} | POINT(0 1 0)\n"
+" {5,1,2} | POINT(0 1 1)\n"
+" {5,1,3} | POINT(1 1 1)\n"
+" {5,1,4} | POINT(1 1 0)\n"
+" {5,1,5} | POINT(0 1 0)\n"
+" {6,1,1} | POINT(0 0 1)\n"
+" {6,1,2} | POINT(1 0 1)\n"
+" {6,1,3} | POINT(1 1 1)\n"
+" {6,1,4} | POINT(0 1 1)\n"
+" {6,1,5} | POINT(0 0 1)\n"
+"(30 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:966
+#, no-c-format
+msgid ""
+"-- Triangle --                \n"
+"SELECT (g.gdump).path, ST_AsText((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints( ST_GeomFromEWKT('TRIANGLE ((\n"
+"                0 0, \n"
+"                0 9, \n"
+"                9 0, \n"
+"                0 0\n"
+"            ))') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+" path |    wkt\n"
+"------+------------\n"
+" {1}  | POINT(0 0)\n"
+" {2}  | POINT(0 9)\n"
+" {3}  | POINT(9 0)\n"
+" {4}  | POINT(0 0)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:967
+#, no-c-format
+msgid ""
+"-- TIN --                \n"
+"SELECT (g.gdump).path, ST_AsEWKT((g.gdump).geom) as wkt\n"
+"  FROM\n"
+"    (SELECT \n"
+"       ST_DumpPoints( ST_GeomFromEWKT('TIN (((\n"
+"                0 0 0, \n"
+"                0 0 1, \n"
+"                0 1 0, \n"
+"                0 0 0\n"
+"            )), ((\n"
+"                0 0 0, \n"
+"                0 1 0, \n"
+"                1 1 0, \n"
+"                0 0 0\n"
+"            ))\n"
+"            )') ) AS gdump\n"
+"    ) AS g;\n"
+"-- result --\n"
+"  path   |     wkt\n"
+"---------+--------------\n"
+" {1,1,1} | POINT(0 0 0)\n"
+" {1,1,2} | POINT(0 0 1)\n"
+" {1,1,3} | POINT(0 1 0)\n"
+" {1,1,4} | POINT(0 0 0)\n"
+" {2,1,1} | POINT(0 0 0)\n"
+" {2,1,2} | POINT(0 1 0)\n"
+" {2,1,3} | POINT(1 1 0)\n"
+" {2,1,4} | POINT(0 0 0)\n"
+"(8 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:971
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
+"\"/>, <xref linkend=\"ST_DumpRings\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:976
+#, no-c-format
+msgid "ST_DumpRings"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:978
+#, no-c-format
+msgid ""
+"Returns a set of <varname>geometry_dump</varname> rows, representing the "
+"exterior and interior rings of a polygon."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:984
+#, no-c-format
+msgid ""
+"<funcdef>geometry_dump[] <function>ST_DumpRings</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:994
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of "
+"<varname>geometry_dump</varname> rows, defined as an <varname>integer[]</"
+"varname> and a <varname>geometry</varname>, aliased \"path\" and \"geom\" "
+"respectively. The \"path\" field holds the polygon ring index containing a "
+"single integer: 0 for the shell, >0 for holes. The \"geom\" field contains "
+"the corresponding ring as a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1000
+#, no-c-format
+msgid "Availability: PostGIS 1.1.3. Requires PostgreSQL 7.3 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1001
+#, no-c-format
+msgid ""
+"This only works for POLYGON geometries. It will not work for MULTIPOLYGONS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1009
+#, no-c-format
+msgid ""
+"SELECT sometable.field1, sometable.field1,\n"
+"          (ST_DumpRings(sometable.the_geom)).geom As the_geom\n"
+"FROM sometableOfpolys;\n"
+"\n"
+"SELECT ST_AsEWKT(geom) As the_geom, path\n"
+"        FROM ST_DumpRings(\n"
+"                ST_GeomFromEWKT('POLYGON((-8149064 5133092 1,-8149064 "
+"5132986 1,-8148996 5132839 1,-8148972 5132767 1,-8148958 5132508 1,-8148941 "
+"5132466 1,-8148924 5132394 1,\n"
+"                -8148903 5132210 1,-8148930 5131967 1,-8148992 5131978 "
+"1,-8149237 5132093 1,-8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 "
+"1,\n"
+"                -8150305 5132788 1,-8149064 5133092 1),\n"
+"                (-8149362 5132394 1,-8149446 5132501 1,-8149548 5132597 "
+"1,-8149695 5132675 1,-8149362 5132394 1))')\n"
+"                )  as foo;\n"
+" path |                                            the_geom\n"
+"----------------------------------------------------------------------------------------------------------------\n"
+"  {0} | POLYGON((-8149064 5133092 1,-8149064 5132986 1,-8148996 5132839 "
+"1,-8148972 5132767 1,-8148958 5132508 1,\n"
+"          |          -8148941 5132466 1,-8148924 5132394 1,\n"
+"          |          -8148903 5132210 1,-8148930 5131967 1,\n"
+"          |          -8148992 5131978 1,-8149237 5132093 1,\n"
+"          |          -8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 "
+"1,-8150305 5132788 1,-8149064 5133092 1))\n"
+"  {1} | POLYGON((-8149362 5132394 1,-8149446 5132501 1,\n"
+"          |          -8149548 5132597 1,-8149695 5132675 1,-8149362 5132394 "
+"1))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1016
+#, no-c-format
+msgid ""
+", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
+"\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref linkend=\"ST_InteriorRingN"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1022
+#, no-c-format
+msgid "ST_FlipCoordinates"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1023
+#, no-c-format
+msgid ""
+"Returns a version of the given geometry with X and Y axis flipped. Useful "
+"for people who have built latitude/longitude features and need to fix them."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1031
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_FlipCoordinates</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1040
+#, no-c-format
+msgid "Returns a version of the given geometry with X and Y axis flipped."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1043
+#, no-c-format
+msgid "&M_support;"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1050
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1051
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"SELECT ST_AsEWKT(ST_FlipCoordinates(GeomFromEWKT('POINT(1 2)')));\n"
+" st_asewkt  \n"
+"------------\n"
+"POINT(2 1)\n"
+"                 ]]>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1058
+#, no-c-format
+msgid "ST_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1060
+#, no-c-format
+msgid ""
+"(T) Returns a geometry that represents the shared portion of geomA and "
+"geomB. The geography implementation does a transform to geometry to do the "
+"intersection and then transform back to WGS84."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:1065
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Intersection</function></"
+"funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </"
+"paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geography "
+"<function>ST_Intersection</function></funcdef> <paramdef> <type>geography</"
+"type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</"
+"type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1092
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the point set intersection of the "
+"Geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1095
+#, no-c-format
+msgid ""
+"In other words - that portion of geometry A and geometry B that is shared "
+"between the two geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1098
+#, no-c-format
+msgid ""
+"If the geometries do not share any space (are disjoint), then an empty "
+"geometry collection is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1100
+#, no-c-format
+msgid ""
+"ST_Intersection in conjunction with ST_Intersects is very useful for "
+"clipping geometries such as in bounding box, buffer, region queries where "
+"you only want to return that portion of a geometry that sits in a country or "
+"region of interest."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1103
+#, no-c-format
+msgid ""
+"Geography: For geography this is really a thin wrapper around the geometry "
+"implementation. It first determines the best SRID that fits the bounding box "
+"of the 2 geography objects (if geography objects are within one half zone "
+"UTM but not same UTM will pick one of those) (favoring UTM or Lambert "
+"Azimuthal Equal Area (LAEA) north/south pole, and falling back on mercator "
+"in worst case scenario) and then intersection in that best fit planar "
+"spatial ref and retransforms back to WGS84 geography."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1106
+#, no-c-format
+msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1109
+#, no-c-format
+msgid ""
+"If working with 3D geometries, you may want to use SFGCAL based <xref "
+"linkend=\"ST_3DIntersection\"/> which does a proper 3D intersection for 3D "
+"geometries. Although this function works with Z-coordinate, it does an "
+"averaging of Z-Coordinate values when <code>postgis.backend=geos</code>. "
+"<code>postgis.backend=sfcgal</code>, it will return a 2D geometry regardless "
+"ignoring the Z-Coordinate. Refer to <xref linkend=\"postgis_backend\"/> for "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1112
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1114
+#, no-c-format
+msgid "Availability: 1.5 support for geography data type was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1117
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.18"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1121
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, "
+"0 2 )'::geometry));\n"
+" st_astext\n"
+"---------------\n"
+"GEOMETRYCOLLECTION EMPTY\n"
+"(1 row)\n"
+"SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, "
+"0 2 )'::geometry));\n"
+" st_astext\n"
+"---------------\n"
+"POINT(0 0)\n"
+"(1 row)\n"
+"\n"
+"---Clip all lines (trails) by country (here we assume country geom are "
+"POLYGON or MULTIPOLYGONS)\n"
+"-- NOTE: we are only keeping intersections that result in a LINESTRING or "
+"MULTILINESTRING because we don't\n"
+"-- care about trails that just share a point\n"
+"-- the dump is needed to expand a geometry collection into individual single "
+"MULT* parts\n"
+"-- the below is fairly generic and will work for polys, etc. by just "
+"changing the where clause\n"
+"SELECT clipped.gid, clipped.f_name, clipped_geom\n"
+"FROM (SELECT trails.gid, trails.f_name, (ST_Dump(ST_Intersection(country."
+"the_geom, trails.the_geom))).geom As clipped_geom\n"
+"FROM country\n"
+"        INNER JOIN trails\n"
+"        ON ST_Intersects(country.the_geom, trails.the_geom))  As clipped\n"
+"        WHERE ST_Dimension(clipped.clipped_geom) = 1 ;\n"
+"\n"
+"--For polys e.g. polygon landmarks, you can also use the sometimes faster "
+"hack that buffering anything by 0.0\n"
+"-- except a polygon results in an empty geometry collection\n"
+"--(so a geometry collection containing polys, lines and points)\n"
+"-- buffered by 0.0 would only leave the polygons and dissolve the collection "
+"shell\n"
+"SELECT poly.gid,  ST_Multi(ST_Buffer(\n"
+"                                ST_Intersection(country.the_geom, poly."
+"the_geom),\n"
+"                                0.0)\n"
+"                                ) As clipped_geom\n"
+"FROM country\n"
+"        INNER JOIN poly\n"
+"        ON ST_Intersects(country.the_geom, poly.the_geom)\n"
+"        WHERE Not ST_IsEmpty(ST_Buffer(ST_Intersection(country.the_geom, "
+"poly.the_geom),0.0));"
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1125
+#, no-c-format
+msgid "Examples: 2.5Dish"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1126
+#, no-c-format
+msgid ""
+"Geos is the default backend if not set. Note this is not a true "
+"intersection, compare to the same example using <xref linkend="
+"\"ST_3DIntersection\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1127
+#, no-c-format
+msgid ""
+"set postgis.backend=geos; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"               st_astext\n"
+"---------------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8,0 0 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1129
+#, no-c-format
+msgid ""
+"If your PostGIS is compiled with sfcgal support, have option of using "
+"sfcgal, but note if basically cases down both geometries to 2D before doing "
+"intersection and returns the ST_Force2D equivalent result which is a 2D "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1131
+#, no-c-format
+msgid ""
+"set postgis.backend=sfcgal; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"                     wkt\n"
+"----------------------------------------------\n"
+" MULTILINESTRING((0.5 0.5,0 0),(1 1,0.5 0.5))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1135
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Difference\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Dump\"/>, <xref linkend=\"ST_Force2D\"/>, <xref linkend="
+"\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Multi\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1141
+#, no-c-format
+msgid "ST_LineToCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1143
+#, no-c-format
+msgid "Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1148
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineToCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomANoncircular</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1158
+#, no-c-format
+msgid ""
+"Converts plain LINESTRING/POLYGONS to CIRCULAR STRINGs and Curved Polygons. "
+"Note much fewer points are needed to describe the curved equivalent."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1167
+#, no-c-format
+msgid "Examples: 2D"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1169
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_LineToCurve(foo.the_geom)) As curvedastext,ST_AsText(foo."
+"the_geom) As non_curvedastext\n"
+"        FROM (SELECT ST_Buffer('POINT(1 3)'::geometry, 3) As the_geom) As "
+"foo;\n"
+"\n"
+"curvedatext                                                            "
+"non_curvedastext\n"
+"--------------------------------------------------------------------|-----------------------------------------------------------------\n"
+"CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359, | "
+"POLYGON((4 3,3.94235584120969 2.41472903395162,3.77163859753386 "
+"1.85194970290473,\n"
+"1 0,-1.12132034355965 5.12132034355963,4 3))                        |  "
+"3.49440883690764 1.33328930094119,3.12132034355964 0.878679656440359,\n"
+"                                                                    |  "
+"2.66671069905881 0.505591163092366,2.14805029709527 0.228361402466141,\n"
+"                                                                    |  "
+"1.58527096604839 0.0576441587903094,1 0,\n"
+"                                                                    |  "
+"0.414729033951621 0.0576441587903077,-0.148050297095264 0.228361402466137,\n"
+"                                                                    |  "
+"-0.666710699058802 0.505591163092361,-1.12132034355964 0.878679656440353,\n"
+"                                                                    |  "
+"-1.49440883690763 1.33328930094119,-1.77163859753386 1.85194970290472\n"
+"                                                                    |  --"
+"ETC-- ,3.94235584120969 3.58527096604839,4 3))\n"
+"--3D example\n"
+"SELECT ST_AsEWKT(ST_LineToCurve(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 8, 5 "
+"6 4, 7 8 4, 9 10 4)')));\n"
+"\n"
+"                         st_asewkt\n"
+"------------------------------------\n"
+" CIRCULARSTRING(1 2 3,5 6 4,9 10 4)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1184
+#, no-c-format
+msgid "ST_MakeValid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1185
+#, no-c-format
+msgid "Attempts to make an invalid geometry valid without losing vertices."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1190
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MakeValid</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1199
+#, no-c-format
+msgid ""
+"The function attempts to create a valid representation of a given invalid "
+"geometry without losing any of the input vertices. Already-valid geometries "
+"are returned without further intervention."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1205
+#, no-c-format
+msgid ""
+"Supported inputs are: POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
+"POLYGONS, MULTIPOLYGONS and GEOMETRYCOLLECTIONS containing any mix of them."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1211
+#, no-c-format
+msgid ""
+"In case of full or partial dimensional collapses, the output geometry may be "
+"a collection of lower-to-equal dimension geometries or a geometry of lower "
+"dimension."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1217
+#, no-c-format
+msgid ""
+"Single polygons may become multi-geometries in case of self-intersections."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1221
+#, no-c-format
+msgid "Availability: 2.0.0, requires GEOS-3.3.0"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1222
+#, no-c-format
+msgid "Enhanced: 2.0.1, speed improvements requires GEOS-3.3.4"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1223
+#, no-c-format
+msgid "Enhanced: 2.1.0 added support for GEOMETRYCOLLECTION and MULTIPOINT."
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1240
+#, no-c-format
+msgid "ST_MemUnion"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1242
+#, no-c-format
+msgid ""
+"Same as ST_Union, only memory-friendly (uses less memory and more processor "
+"time)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1248
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MemUnion</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>geomfield</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1259
+#, no-c-format
+msgid "Some useful description here."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1263
+#, no-c-format
+msgid ""
+"Same as ST_Union, only memory-friendly (uses less memory and more processor "
+"time). This aggregate function works by unioning the geometries one at a "
+"time to previous result as opposed to ST_Union aggregate which first creates "
+"an array and then unions"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1275
+#, no-c-format
+msgid "See ST_Union"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1288
+#, no-c-format
+msgid "ST_MinimumBoundingCircle"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1289
+#, no-c-format
+msgid ""
+"Returns the smallest circle polygon that can fully contain a geometry. "
+"Default uses 48 segments per quarter circle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1295
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinimumBoundingCircle</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>num_segs_per_qt_circ=48</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1305
+#, no-c-format
+msgid "Returns the smallest circle polygon that can fully contain a geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1306
+#, no-c-format
+msgid ""
+"The circle is approximated by a polygon with a default of 48 segments per "
+"quarter circle. This number can be increased with little performance penalty "
+"to obtain a more accurate result."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1308
+#, no-c-format
+msgid ""
+"It is often used with MULTI and Geometry Collections. Although it is not an "
+"aggregate - you can use it in conjunction with ST_Collect to get the minimum "
+"bounding circle of a set of geometries. "
+"ST_MinimumBoundingCircle(ST_Collect(somepointfield))."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1313
+#, no-c-format
+msgid ""
+"The ratio of the area of a polygon divided by the area of its Minimum "
+"Bounding Circle is often referred to as the Roeck test."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1315
+#, no-c-format
+msgid "Availability: 1.4.0 - requires GEOS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1322
+#, no-c-format
+msgid ""
+"SELECT d.disease_type,\n"
+"        ST_MinimumBoundingCircle(ST_Collect(d.the_geom)) As the_geom\n"
+"        FROM disease_obs As d\n"
+"        GROUP BY d.disease_type;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1328
+#, no-c-format
+msgid ""
+"Minimum bounding circle of a point and linestring. Using 8 segs to "
+"approximate a quarter circle"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1331
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_MinimumBoundingCircle(\n"
+"                ST_Collect(\n"
+"                        ST_GeomFromEWKT('LINESTRING(55 75,125 150)'),\n"
+"                                ST_Point(20, 80)), 8\n"
+"                                )) As wktmbc;\n"
+"wktmbc\n"
+"-----------\n"
+"POLYGON((135.59714732062 115,134.384753327498 "
+"102.690357210921,130.79416296937 90.8537670908995,124.963360620072 "
+"79.9451031602111,117.116420743937 70.3835792560632,107.554896839789 "
+"62.5366393799277,96.6462329091006 56.70583703063,84.8096427890789 "
+"53.115246672502,72.5000000000001 51.9028526793802,60.1903572109213 "
+"53.1152466725019,48.3537670908996 56.7058370306299,37.4451031602112 "
+"62.5366393799276,27.8835792560632 70.383579256063,20.0366393799278 "
+"79.9451031602109,14.20583703063 90.8537670908993,10.615246672502 "
+"102.690357210921,9.40285267938019 115,10.6152466725019 "
+"127.309642789079,14.2058370306299 139.1462329091,20.0366393799275 "
+"150.054896839789,27.883579256063 159.616420743937,\n"
+"37.4451031602108 167.463360620072,48.3537670908992 "
+"173.29416296937,60.190357210921 176.884753327498,\n"
+"72.4999999999998 178.09714732062,84.8096427890786 "
+"176.884753327498,96.6462329091003 173.29416296937,107.554896839789 "
+"167.463360620072,\n"
+"117.116420743937 159.616420743937,124.963360620072 "
+"150.054896839789,130.79416296937 139.146232909101,134.384753327498 "
+"127.309642789079,135.59714732062 115))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1335
+#, no-c-format
+msgid ", <xref linkend=\"ST_ConvexHull\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1341
+#, no-c-format
+msgid "ST_Polygonize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1343
+#, no-c-format
+msgid ""
+"Aggregate. Creates a GeometryCollection containing possible polygons formed "
+"from the constituent linework of a set of geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:1349
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Polygonize</function></"
+"funcdef> <paramdef><type>geometry set</type> <parameter>geomfield</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Polygonize</function></funcdef> <paramdef><type>geometry[]</"
+"type> <parameter>geom_array</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1365
+#, no-c-format
+msgid ""
+"Creates a GeometryCollection containing possible polygons formed from the "
+"constituent linework of a set of geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1370
+#, no-c-format
+msgid ""
+"Geometry Collections are often difficult to deal with with third party "
+"tools, so use ST_Polygonize in conjunction with <xref linkend=\"ST_Dump\"/> "
+"to dump the polygons out into individual polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1378
+#, no-c-format
+msgid "Availability: 1.0.0RC1 - requires GEOS >= 2.1.0."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1382
+#, no-c-format
+msgid "Examples: Polygonizing single linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1383
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(ST_Polygonize(the_geom_4269)) As geomtextrep\n"
+"FROM (SELECT the_geom_4269 FROM ma.suffolk_edges ORDER BY tlid LIMIT 45) As "
+"foo;\n"
+"\n"
+"geomtextrep\n"
+"-------------------------------------\n"
+" SRID=4269;GEOMETRYCOLLECTION(POLYGON((-71.040878 42.285678,-71.040943 "
+"42.2856,-71.04096 42.285752,-71.040878 42.285678)),\n"
+" POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 "
+"42.354358,-71.171794 42.354971,-71.170511 42.354855,\n"
+" -71.17112 42.354238,-71.17166 42.353675)))\n"
+"(1 row)\n"
+"\n"
+"--Use ST_Dump to dump out the polygonize geoms into individual polygons\n"
+"SELECT ST_AsEWKT((ST_Dump(foofoo.polycoll)).geom) As geomtextrep\n"
+"FROM (SELECT ST_Polygonize(the_geom_4269) As polycoll\n"
+"        FROM (SELECT the_geom_4269 FROM ma.suffolk_edges\n"
+"                ORDER BY tlid LIMIT 45) As foo) As foofoo;\n"
+"\n"
+"geomtextrep\n"
+"------------------------\n"
+" SRID=4269;POLYGON((-71.040878 42.285678,-71.040943 42.2856,-71.04096 "
+"42.285752,\n"
+"-71.040878 42.285678))\n"
+" SRID=4269;POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 "
+"42.354358\n"
+",-71.171794 42.354971,-71.170511 42.354855,-71.17112 42.354238,-71.17166 "
+"42.353675))\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1397
+#, no-c-format
+msgid "ST_Node"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1399
+#, no-c-format
+msgid "Node a set of linestrings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1406
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Node</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1417
+#, no-c-format
+msgid ""
+"Fully node a set of linestrings using the least possible number of nodes "
+"while preserving all of the input ones."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1424 reference_processing.xml:2168
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1426
+#, no-c-format
+msgid ""
+"Due to a bug in GEOS up to 3.3.1 this function fails to node self-"
+"intersecting lines. This is fixed with GEOS 3.3.2 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1433
+#, no-c-format
+msgid ""
+"SELECT ST_AsEWKT(\n"
+"                ST_Node('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'::"
+"geometry)\n"
+"        ) As  output;\n"
+"output\n"
+"-----------\n"
+"MULTILINESTRING((0 0 0,5 5 4.5),(5 5 4.5,10 10 10,0 10 5,5 5 4.5),(5 5 "
+"4.5,10 0 3))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1448
+#, no-c-format
+msgid "ST_OffsetCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1450
+#, no-c-format
+msgid ""
+"Return an offset line at a given distance and side from an input line. "
+"Useful for computing parallel lines about a center line"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1458
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_OffsetCurve</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>line</parameter></paramdef> "
+"<paramdef><type>float </type> <parameter>signed_distance</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>style_parameters=''</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1471
+#, no-c-format
+msgid ""
+"Return an offset line at a given distance and side from an input line. All "
+"points of the returned geometries are not further than the given distance "
+"from the input geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1477
+#, no-c-format
+msgid ""
+"For positive distance the offset will be at the left side of the input line "
+"and retain the same direction. For a negative distance it'll be at the right "
+"side and in the opposite direction."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1483
+#, no-c-format
+msgid ""
+"Availability: 2.0 - requires GEOS >= 3.2, improved with GEOS >= 3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1487
+#, no-c-format
+msgid ""
+"The optional third parameter allows specifying a list of blank-separated "
+"key=value pairs to tweak operations as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1495
+#, no-c-format
+msgid ""
+"'join=round|mitre|bevel' : join style (defaults to \"round\"). 'miter' is "
+"also accepted as a synonym for 'mitre'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1498
+#, no-c-format
+msgid ""
+"'mitre_limit=#.#' : mitre ratio limit (only affects mitred join style). "
+"'miter_limit' is also accepted as a synonym for 'mitre_limit'."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1503
+#, no-c-format
+msgid ""
+"Units of distance are measured in units of the spatial reference system."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1507
+#, no-c-format
+msgid "The inputs can only be LINESTRINGS."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1511
+#, no-c-format
+msgid ""
+"This function ignores the third dimension (z) and will always give a 2-d "
+"result even when presented with a 3d-geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1519
+#, no-c-format
+msgid "Compute an open buffer around roads"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1520
+#, no-c-format
+msgid ""
+"SELECT ST_Union(\n"
+" ST_OffsetCurve(f.the_geom,  f.width/2, 'quad_segs=4 join=round'),\n"
+" ST_OffsetCurve(f.the_geom, -f.width/2, 'quad_segs=4 join=round')\n"
+") as track\n"
+"FROM someroadstable;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1530
+#, no-c-format
+msgid "15, 'quad_segs=4 join=round' original line and its offset 15 units."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1534
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)'),\n"
+"        15, 'quad_segs=4 join=round'));\n"
+"--output --\n"
+"LINESTRING(164 1,18 1,12.2597485145237 2.1418070123307,\n"
+"        7.39339828220179 5.39339828220179,\n"
+"        5.39339828220179 7.39339828220179,\n"
+"        2.14180701233067 12.2597485145237,1 18,1 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1541
+#, no-c-format
+msgid "-15, 'quad_segs=4 join=round' original line and its offset -15 units"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1545
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(geom,\n"
+"        -15, 'quad_segs=4 join=round')) As notsocurvy\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- notsocurvy --\n"
+"LINESTRING(31 195,31 31,164 31)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1554
+#, no-c-format
+msgid ""
+"double-offset to get more curvy, note the first reverses direction, so -30 + "
+"15 = -15"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1557
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_OffsetCurve(geom,\n"
+"        -30, 'quad_segs=4 join=round'), -15, 'quad_segs=4 join=round')) As "
+"morecurvy\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- morecurvy --\n"
+"LINESTRING(164 31,46 31,40.2597485145236 32.1418070123307,\n"
+"35.3933982822018 35.3933982822018,\n"
+"32.1418070123307 40.2597485145237,31 46,31 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1564
+#, no-c-format
+msgid ""
+"double-offset to get more curvy,combined with regular offset 15 to get "
+"parallel lines. Overlaid with original."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1567
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(\n"
+"        ST_OffsetCurve(geom, 15, 'quad_segs=4 join=round'), \n"
+"        ST_OffsetCurve(ST_OffsetCurve(geom,\n"
+"        -30, 'quad_segs=4 join=round'), -15, 'quad_segs=4 join=round')\n"
+"        )\n"
+") As parallel_curves\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- parallel curves  --\n"
+"MULTILINESTRING((164 1,18 1,12.2597485145237 2.1418070123307,\n"
+"7.39339828220179 5.39339828220179,5.39339828220179 7.39339828220179,\n"
+"2.14180701233067 12.2597485145237,1 18,1 195),\n"
+"(164 31,46 31,40.2597485145236 32.1418070123307,35.3933982822018 "
+"35.3933982822018,\n"
+"32.1418070123307 40.2597485145237,31 46,31 195))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1576
+#, no-c-format
+msgid "15, 'quad_segs=4 join=bevel' shown with original line"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1579
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)'), \n"
+"                15, 'quad_segs=4 join=bevel'));\n"
+"-- output --\n"
+"LINESTRING(164 1,18 1,7.39339828220179 5.39339828220179,\n"
+"        5.39339828220179 7.39339828220179,1 18,1 195)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1587
+#, no-c-format
+msgid "15,-15 collected, join=mitre mitre_limit=2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1590
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Collect(\n"
+"        ST_OffsetCurve(geom, 15, 'quad_segs=4 join=mitre mitre_limit=2.2'),\n"
+"        ST_OffsetCurve(geom, -15, 'quad_segs=4 join=mitre mitre_limit=2.2')\n"
+"        ) )\n"
+"        FROM ST_GeomFromText(\n"
+"'LINESTRING(164 16,144 16,124 16,104 16,84 16,64 16,\n"
+"        44 16,24 16,20 16,18 16,17 17,\n"
+"        16 18,16 20,16 40,16 60,16 80,16 100,\n"
+"        16 120,16 140,16 160,16 180,16 195)') As geom;\n"
+"-- output --\n"
+"MULTILINESTRING((164 1,11.7867965644036 1,1 11.7867965644036,1 195),\n"
+"        (31 195,31 31,164 31))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1607
+#, no-c-format
+msgid "ST_RemoveRepeatedPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1608
+#, no-c-format
+msgid "Returns a version of the given geometry with duplicated points removed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1614
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_RemoveRepeatedPoints</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1623
+#, no-c-format
+msgid ""
+"Returns a version of the given geometry with duplicated points removed. Will "
+"actually do something only with (multi)lines, (multi)polygons and "
+"multipoints but you can safely call it with any kind of geometry. Since "
+"simplification occurs on a object-by-object basis you can also feed a "
+"GeometryCollection to this function."
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1643
+#, no-c-format
+msgid "ST_SharedPaths"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1644
+#, no-c-format
+msgid ""
+"Returns a collection containing paths shared by the two input linestrings/"
+"multilinestrings."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1649
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SharedPaths</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>lineal1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>lineal2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1659
+#, no-c-format
+msgid ""
+"Returns a collection containing paths shared by the two input geometries. "
+"Those going in the same direction are in the first element of the "
+"collection, those going in the opposite direction are in the second element. "
+"The paths themselves are given in the direction of the first geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1664
+#, no-c-format
+msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
+msgstr ""
+
+#. Tag: title
+#: reference_processing.xml:1667
+#, no-c-format
+msgid "Examples: Finding shared paths"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1677
+#, no-c-format
+msgid "A multilinestring and a linestring"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1688
+#, no-c-format
+msgid ""
+"The shared path of multilinestring and linestring overlaid with original "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1691
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_SharedPaths(\n"
+"    ST_GeomFromText('MULTILINESTRING((26 125,26 200,126 200,126 125,26 "
+"125),\n"
+"            (51 150,101 150,76 175,51 150))'),\n"
+"         ST_GeomFromText('LINESTRING(151 100,126 156.25,126 125,90 161, 76 "
+"175)')\n"
+"         )\n"
+"  ) As wkt\n"
+"\n"
+"                                wkt\n"
+"-------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(MULTILINESTRING((126 156.25,126 125),\n"
+" (101 150,90 161),(90 161,76 175)),MULTILINESTRING EMPTY)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1697
+#, no-c-format
+msgid ""
+"-- same example but linestring orientation flipped\n"
+"SELECT ST_AsText(\n"
+"  ST_SharedPaths(\n"
+"   ST_GeomFromText('LINESTRING(76 175,90 161,126 125,126 156.25,151 100)'),\n"
+"   ST_GeomFromText('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),\n"
+"            (51 150,101 150,76 175,51 150))')\n"
+"         )\n"
+"  ) As wkt\n"
+"\n"
+"                                wkt\n"
+"-------------------------------------------------------------\n"
+"GEOMETRYCOLLECTION(MULTILINESTRING EMPTY,\n"
+"MULTILINESTRING((76 175,90 161),(90 161,101 150),(126 125,126 156.25)))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1707
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1717
+#, no-c-format
+msgid "ST_Shift_Longitude"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1719
+#, no-c-format
+msgid ""
+"<refpurpose>Reads every point/vertex in every component of every feature in "
+"a geometry, and if the longitude coordinate is <0, adds 360 to it. The "
+"result would be a 0-360 version of the data to be plotted in a 180 centric "
+"map</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1727
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Shift_Longitude</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1737
+#, no-c-format
+msgid ""
+"<para>Reads every point/vertex in every component of every feature in a "
+"geometry, and if the longitude coordinate is <0, adds 360 to it. The "
+"result would be a 0-360 version of the data to be plotted in a 180 centric "
+"map</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1741
+#, no-c-format
+msgid "This is only useful for data in long lat e.g. 4326 (WGS 84 long lat)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1743
+#, no-c-format
+msgid ""
+"Pre-1.3.4 bug prevented this from working for MULTIPOINT. 1.3.4+ works with "
+"MULTIPOINT as well."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1748
+#, no-c-format
+msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1757
+#, no-c-format
+msgid ""
+"--3d points\n"
+"SELECT ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(-118.58 "
+"38.38 10)'))) As geomA,\n"
+"        ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(241.42 "
+"38.38 10)'))) As geomb\n"
+"geomA                                                          geomB\n"
+"----------                                                  -----------\n"
+"SRID=4326;POINT(241.42 38.38 10) SRID=4326;POINT(-118.58 38.38 10)\n"
+"\n"
+"--regular line string\n"
+"SELECT ST_AsText(ST_Shift_Longitude(ST_GeomFromText('LINESTRING(-118.58 "
+"38.38, -118.20 38.45)')))\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"LINESTRING(241.42 38.38,241.8 38.45)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1763
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_AsEWKT\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1769
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1770
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1776
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1786
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will actually do something only with (multi)lines and "
+"(multi)polygons but you can safely call it with any kind of geometry. Since "
+"simplification occurs on a object-by-object basis you can also feed a "
+"GeometryCollection to this function."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1793
+#, no-c-format
+msgid ""
+"Note that returned geometry might loose its simplicity (see <xref linkend="
+"\"ST_IsSimple\"/>)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1795
+#, no-c-format
+msgid ""
+"Note topology may not be preserved and may result in invalid geometries. Use "
+"(see <xref linkend=\"ST_SimplifyPreserveTopology\"/>) to preserve topology."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1797
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1802
+#, no-c-format
+msgid "A circle simplified too much becomes a triangle, medium an octagon,"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1803
+#, no-c-format
+msgid ""
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_Simplify(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_Simplify(the_geom,0.5)) As np05_notquitecircle,\n"
+"ST_NPoints(ST_Simplify(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_Simplify(the_geom,10)) As np10_triangle,\n"
+"(ST_Simplify(the_geom,100) is null) As  np100_geometrygoesaway\n"
+"FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
+"-result\n"
+" np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | "
+"np10_triangle | np100_geometrygoesaway\n"
+"-----------+-------------------+---------------------+-------------"
+"+---------------+------------------------\n"
+"                49 |                33 |                  17 |           9 "
+"|             4 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1807
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_SimplifyPreserveTopology\"/>, Topology <xref linkend="
+"\"TP_ST_Simplify\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1813
+#, no-c-format
+msgid "ST_SimplifyPreserveTopology"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1814
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will avoid creating derived geometries (polygons in "
+"particular) that are invalid."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1821
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SimplifyPreserveTopology</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1831
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" version of the given geometry using the Douglas-"
+"Peucker algorithm. Will avoid creating derived geometries (polygons in "
+"particular) that are invalid. Will actually do something only with "
+"(multi)lines and (multi)polygons but you can safely call it with any kind of "
+"geometry. Since simplification occurs on a object-by-object basis you can "
+"also feed a GeometryCollection to this function."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1840
+#, no-c-format
+msgid "Requires GEOS 3.0.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1841
+#, no-c-format
+msgid "Availability: 1.3.3"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1846
+#, no-c-format
+msgid ""
+"Same example as Simplify, but we see Preserve Topology prevents "
+"oversimplification. The circle can at most become a square."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1847
+#, no-c-format
+msgid ""
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.5)) As "
+"np05_notquitecircle,\n"
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,10)) As np10_square,\n"
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,100)) As  np100_stillsquare\n"
+"FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
+"\n"
+"--result--\n"
+" np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | "
+"np10_square | np100_stillsquare\n"
+"-----------+-------------------+---------------------+-------------"
+"+---------------+-------------------\n"
+"                49 |                33 |                  17 |           9 "
+"|             5 |                 5"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1857
+#, no-c-format
+msgid "ST_Split"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1858
+#, no-c-format
+msgid "Returns a collection of geometries resulting by splitting a geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1863
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Split</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>input</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>blade</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1873
+#, no-c-format
+msgid ""
+"The function supports splitting a line by point, a line by line, a polygon "
+"by line. The returned geometry is always a collection."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1877
+#, no-c-format
+msgid ""
+"Think of this function as the opposite of ST_Union. Theoretically applying "
+"ST_Union to the elements of the returned collection should always yield the "
+"original geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1884
+#, no-c-format
+msgid ""
+"To improve the robustness of ST_Split it may be convenient to <xref linkend="
+"\"ST_Snap\"/> the input to the blade in advance using a very low tolerance. "
+"Otherwise the internally used coordinate grid may cause tolerance problems, "
+"where coordinates of input and blade do not fall onto each other and the "
+"input is not being split correctly (see <ulink url=\"http://trac.osgeo.org/"
+"postgis/ticket/2192\">#2192</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1889
+#, no-c-format
+msgid "Polygon Cut by Line"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1901 reference_processing.xml:1935
+#, no-c-format
+msgid "Before Split"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1913 reference_processing.xml:1947
+#, no-c-format
+msgid "After split"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1922
+#, no-c-format
+msgid ""
+"-- this creates a geometry collection consisting of the 2 halves of the "
+"polygon\n"
+"-- this is similar to the example we demonstrated in ST_BuildArea\n"
+"SELECT ST_Split(circle, line)\n"
+"FROM (SELECT \n"
+"    ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)) As line,\n"
+"    ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"    \n"
+"-- result --\n"
+" GEOMETRYCOLLECTION(POLYGON((150 90,149.039264020162 "
+"80.2454838991936,146.193976625564 70.8658283817455,..), POLYGON(..)))\n"
+" \n"
+"-- To convert to individual polygons, you can use ST_Dump or ST_GeometryN\n"
+"SELECT ST_AsText((ST_Dump(ST_Split(circle, line))).geom) As wkt\n"
+"FROM (SELECT \n"
+"    ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)) As line,\n"
+"    ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;\n"
+"    \n"
+"-- result --\n"
+"wkt\n"
+"---------------\n"
+"POLYGON((150 90,149.039264020162 80.2454838991936,..))\n"
+"POLYGON((60.1371179574584 60.1371179574584,58.4265193848728 "
+"62.2214883490198,53.8060233744357 ..))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1923
+#, no-c-format
+msgid "Multilinestring Cut by point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1956
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Split(mline, pt)) As wktcut\n"
+"        FROM (SELECT \n"
+"    ST_GeomFromText('MULTILINESTRING((10 10, 190 190), (15 15, 30 30, 100 "
+"90))') As mline,\n"
+"    ST_Point(30,30) As pt) As foo;\n"
+"    \n"
+"wktcut\n"
+"------\n"
+"GEOMETRYCOLLECTION(\n"
+"    LINESTRING(10 10,30 30),\n"
+"    LINESTRING(30 30,190 190),\n"
+"    LINESTRING(15 15,30 30),\n"
+"    LINESTRING(30 30,100 90)\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1960
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_BuildArea\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
+"linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:1966
+#, no-c-format
+msgid "ST_SymDifference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:1968
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the portions of A and B that do not "
+"intersect. It is called a symmetric difference because ST_SymDifference(A,B) "
+"= ST_SymDifference(B,A)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:1975
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_SymDifference</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1986
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the portions of A and B that do not "
+"intersect. It is called a symmetric difference because ST_SymDifference(A,B) "
+"= ST_SymDifference(B,A). One can think of this as ST_Union(geomA,geomB) - "
+"ST_Intersection(A,B)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1996
+#, no-c-format
+msgid "&sqlmm_compliant; SQL-MM 3: 5.1.21"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2016
+#, no-c-format
+msgid "The original linestrings shown together"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2028
+#, no-c-format
+msgid "The symmetric difference of the two linestrings"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2037
+#, no-c-format
+msgid ""
+"--Safe for 2d - symmetric difference of 2 linestrings\n"
+"SELECT ST_AsText(\n"
+"        ST_SymDifference(\n"
+"                ST_GeomFromText('LINESTRING(50 100, 50 200)'),\n"
+"                ST_GeomFromText('LINESTRING(50 50, 50 150)')\n"
+"        )\n"
+");\n"
+"\n"
+"st_astext\n"
+"---------\n"
+"MULTILINESTRING((50 150,50 200),(50 50,50 100))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2039
+#, no-c-format
+msgid ""
+"--When used in 3d doesn't quite do the right thing\n"
+"SELECT ST_AsEWKT(ST_SymDifference(ST_GeomFromEWKT('LINESTRING(1 2 1, 1 4 "
+"2)'),\n"
+"        ST_GeomFromEWKT('LINESTRING(1 1 3, 1 3 4)')))\n"
+"\n"
+"st_astext\n"
+"------------\n"
+"MULTILINESTRING((1 3 2.75,1 4 2),(1 1 3,1 2 2.25))"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2046
+#, no-c-format
+msgid ", <xref linkend=\"ST_Intersection\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:2053
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:2054
+#, no-c-format
+msgid ""
+"Returns a geometry that represents the point set union of the Geometries."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_processing.xml:2059
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1field</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"<function>ST_Union</function></funcdef> <paramdef><type>geometry</type> "
+"<parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> "
+"<parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>geometry <function>ST_Union</function></funcdef> "
+"<paramdef><type>geometry[]</type> <parameter>g1_array</parameter></paramdef> "
+"</funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2078
+#, no-c-format
+msgid ""
+"Output type can be a MULTI*, single geometry, or Geometry Collection. Comes "
+"in 2 variants. Variant 1 unions 2 geometries resulting in a new geometry "
+"with no intersecting regions. Variant 2 is an aggregate function that takes "
+"a set of geometries and unions them into a single ST_Geometry resulting in "
+"no intersecting regions."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2082
+#, no-c-format
+msgid ""
+"Aggregate version: This function returns a MULTI geometry or NON-MULTI "
+"geometry from a set of geometries. The ST_Union() function is an \"aggregate"
+"\" function in the terminology of PostgreSQL. That means that it operates on "
+"rows of data, in the same way the SUM() and AVG() functions do and like most "
+"aggregates, it also ignores NULL geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2088
+#, no-c-format
+msgid ""
+"Non-Aggregate version: This function returns a geometry being a union of two "
+"input geometries. Output type can be a MULTI*, NON-MULTI or "
+"GEOMETRYCOLLECTION. If any are NULL, then NULL is returned."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2092
+#, no-c-format
+msgid ""
+"ST_Collect and ST_Union are often interchangeable. ST_Union is in general "
+"orders of magnitude slower than ST_Collect because it tries to dissolve "
+"boundaries and reorder geometries to ensure that a constructed Multi* "
+"doesn't have intersecting regions."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2098
+#, no-c-format
+msgid ""
+"NOTE: this function was formerly called GeomUnion(), which was renamed from "
+"\"Union\" because UNION is an SQL reserved word."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2101
+#, no-c-format
+msgid ""
+"Availability: 1.4.0 - ST_Union was enhanced. ST_Union(geomarray) was "
+"introduced and also faster aggregate collection in PostgreSQL. If you are "
+"using GEOS 3.1.0+ ST_Union will use the faster Cascaded Union algorithm "
+"described in <ulink url=\"http://blog.cleverelephant.ca/2009/01/must-faster-"
+"unions-in-postgis-14.html\">http://blog.cleverelephant.ca/2009/01/must-"
+"faster-unions-in-postgis-14.html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2107
+#, no-c-format
+msgid "Aggregate version is not explicitly defined in OGC SPEC."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2108
+#, no-c-format
+msgid ""
+"&sqlmm_compliant; SQL-MM 3: 5.1.19 the z-index (elevation) when polygons are "
+"involved."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2114
+#, no-c-format
+msgid "Aggregate example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2115
+#, no-c-format
+msgid ""
+"SELECT stusps,\n"
+"           ST_Multi(ST_Union(f.the_geom)) as singlegeom\n"
+"         FROM sometable As f\n"
+"GROUP BY stusps"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:2117
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
+"        ST_GeomFromText('POINT(-2 3)') ) )\n"
+"\n"
+"st_astext\n"
+"----------\n"
+"MULTIPOINT(-2 3,1 2)\n"
+"\n"
+"\n"
+"SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
+"                ST_GeomFromText('POINT(1 2)') ) );\n"
+"st_astext\n"
+"----------\n"
+"POINT(1 2)\n"
+"\n"
+"--3d example - sort of supports 3d (and with mixed dimensions!)\n"
+"SELECT ST_AsEWKT(st_union(the_geom))\n"
+"FROM\n"
+"(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2,-7.1 4.2,-7.1 4.3,\n"
+"-7 4.2))') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom\n"
+"UNION ALL\n"
+"        SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 "
+"5,-7.1 4.2 5,-7.1 4.3 5,-7 4.2 5)));\n"
+"\n"
+"--3d example not mixing dimensions\n"
+"SELECT ST_AsEWKT(st_union(the_geom))\n"
+"FROM\n"
+"(SELECT ST_GeomFromEWKT('POLYGON((-7 4.2 2,-7.1 4.2 3,-7.1 4.3 2,\n"
+"-7 4.2 2))') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('POINT(5 5 5)') as the_geom\n"
+"UNION ALL\n"
+"        SELECT ST_GeomFromEWKT('POINT(-2 3 1)') as the_geom\n"
+"UNION ALL\n"
+"SELECT ST_GeomFromEWKT('LINESTRING(5 5 5, 10 10 10)') as the_geom ) as foo;\n"
+"\n"
+"st_asewkt\n"
+"---------\n"
+"GEOMETRYCOLLECTION(POINT(-2 3 1),LINESTRING(5 5 5,10 10 10),POLYGON((-7 4.2 "
+"2,-7.1 4.2 3,-7.1 4.3 2,-7 4.2 2)))\n"
+"\n"
+"--Examples using new Array construct\n"
+"SELECT ST_Union(ARRAY(SELECT the_geom FROM sometable));\n"
+"\n"
+"SELECT ST_AsText(ST_Union(ARRAY[ST_GeomFromText('LINESTRING(1 2, 3 4)'),\n"
+"                        ST_GeomFromText('LINESTRING(3 4, 4 5)')])) As "
+"wktunion;\n"
+"\n"
+"--wktunion---\n"
+"MULTILINESTRING((3 4,4 5),(1 2,3 4))"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:2130
+#, no-c-format
+msgid "ST_UnaryUnion"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:2132
+#, no-c-format
+msgid "Like ST_Union, but working at the geometry component level."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:2137
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_UnaryUnion</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2148
+#, no-c-format
+msgid ""
+"Unlike ST_Union, ST_UnaryUnion does dissolve boundaries between components "
+"of a multipolygon (invalid) and does perform union between the components of "
+"a geometrycollection. Each components of the input geometry is assumed to be "
+"valid, so you won't get a valid multipolygon out of a bow-tie polygon "
+"(invalid)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2158
+#, no-c-format
+msgid ""
+"You may use this function to node a set of linestrings. You may mix "
+"ST_UnaryUnion with ST_Collect to fine-tune how many geometries at once you "
+"want to dissolve to be nice on both memory size and CPU time, finding the "
+"balance between ST_Union and ST_MemUnion."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2176
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MemUnion\"/>, <xref linkend=\"ST_Collect\"/>, <xref "
+"linkend=\"ST_Node\"/>"
+msgstr ""
diff --git a/doc/po/pl/reference_raster.xml.po b/doc/po/pl/reference_raster.xml.po
new file mode 100644
index 0000000..02af63e
--- /dev/null
+++ b/doc/po/pl/reference_raster.xml.po
@@ -0,0 +1,16704 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_raster.xml:3
+#, no-c-format
+msgid "Raster Reference"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5
+#, no-c-format
+msgid ""
+"The functions given below are the ones which a user of PostGIS Raster is "
+"likely to need and which are currently available in PostGIS Raster. There "
+"are other functions which are required support functions to the raster "
+"objects which are not of use to a general user."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9
+#, no-c-format
+msgid ""
+"<varname>raster</varname> is a new PostGIS type for storing and analyzing "
+"raster data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10
+#, no-c-format
+msgid ""
+"For loading rasters from raster files please refer to <xref linkend="
+"\"RT_Loading_Rasters\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:12
+#, no-c-format
+msgid ""
+"For the examples in this reference we will be using a raster table of dummy "
+"rasters - Formed with the following code"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:13
+#, no-c-format
+msgid ""
+"CREATE TABLE dummy_rast(rid integer, rast raster);\n"
+"INSERT INTO dummy_rast(rid, rast)\n"
+"VALUES (1,\n"
+"('01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0000' -- nBands (uint16 0)\n"
+"||\n"
+"'0000000000000040' -- scaleX (float64 2)\n"
+"||\n"
+"'0000000000000840' -- scaleY (float64 3)\n"
+"||\n"
+"'000000000000E03F' -- ipX (float64 0.5)\n"
+"||\n"
+"'000000000000E03F' -- ipY (float64 0.5)\n"
+"||\n"
+"'0000000000000000' -- skewX (float64 0)\n"
+"||\n"
+"'0000000000000000' -- skewY (float64 0)\n"
+"||\n"
+"'00000000' -- SRID (int32 0)\n"
+"||\n"
+"'0A00' -- width (uint16 10)\n"
+"||\n"
+"'1400' -- height (uint16 20)\n"
+")::raster\n"
+"),\n"
+"-- Raster: 5 x 5 pixels, 3 bands, PT_8BUI pixel type, NODATA = 0\n"
+"(2,  ('01000003009A9999999999A93F9A9999999999A9BF000000E02B274A' ||\n"
+"'41000000007719564100000000000000000000000000000000FFFFFFFF050005000400FDFEFDFEFEFDFEFEFDF9FAFEF' "
+"||\n"
+"'EFCF9FBFDFEFEFDFCFAFEFEFE04004E627AADD16076B4F9FE6370A9F5FE59637AB0E54F58617087040046566487A1506CA2E3FA5A6CAFFBFE4D566DA4CB3E454C5665')::"
+"raster);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:17
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types specifically created to support "
+"raster functionality."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:20
+#, no-c-format
+msgid "Raster Support Data types"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:24
+#, no-c-format
+msgid "geomval"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:25
+#, no-c-format
+msgid ""
+"A spatial datatype with two fields - geom (holding a geometry object) and "
+"val (holding a double precision pixel value from a raster band)."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:30 reference_raster.xml:49 reference_raster.xml:121
+#: reference_raster.xml:171 reference_raster.xml:211 reference_raster.xml:257
+#: reference_raster.xml:354 reference_raster.xml:536 reference_raster.xml:710
+#: reference_raster.xml:777 reference_raster.xml:846 reference_raster.xml:889
+#: reference_raster.xml:924 reference_raster.xml:961 reference_raster.xml:1002
+#: reference_raster.xml:1058 reference_raster.xml:1103
+#: reference_raster.xml:1209 reference_raster.xml:1418
+#: reference_raster.xml:1505 reference_raster.xml:1601
+#: reference_raster.xml:1668 reference_raster.xml:1733
+#: reference_raster.xml:1775 reference_raster.xml:1825
+#: reference_raster.xml:1864 reference_raster.xml:1898
+#: reference_raster.xml:1935 reference_raster.xml:1978
+#: reference_raster.xml:2013 reference_raster.xml:2047
+#: reference_raster.xml:2097 reference_raster.xml:2151
+#: reference_raster.xml:2188 reference_raster.xml:2228
+#: reference_raster.xml:2283 reference_raster.xml:2338
+#: reference_raster.xml:2384 reference_raster.xml:2419
+#: reference_raster.xml:2455 reference_raster.xml:2491
+#: reference_raster.xml:2526 reference_raster.xml:2565
+#: reference_raster.xml:2599 reference_raster.xml:2633
+#: reference_raster.xml:2677 reference_raster.xml:2739
+#: reference_raster.xml:2794 reference_raster.xml:2835
+#: reference_raster.xml:2882 reference_raster.xml:2924
+#: reference_raster.xml:2975 reference_raster.xml:3010
+#: reference_raster.xml:3085 reference_raster.xml:3128
+#: reference_raster.xml:3174 reference_raster.xml:3232
+#: reference_raster.xml:3275 reference_raster.xml:3326
+#: reference_raster.xml:3369 reference_raster.xml:3441
+#: reference_raster.xml:3528 reference_raster.xml:3615
+#: reference_raster.xml:3703 reference_raster.xml:3788
+#: reference_raster.xml:3914 reference_raster.xml:4010
+#: reference_raster.xml:4062 reference_raster.xml:4110
+#: reference_raster.xml:4153 reference_raster.xml:4200
+#: reference_raster.xml:4244 reference_raster.xml:4282
+#: reference_raster.xml:4357 reference_raster.xml:4426
+#: reference_raster.xml:4494 reference_raster.xml:4571
+#: reference_raster.xml:4643 reference_raster.xml:4722
+#: reference_raster.xml:4830 reference_raster.xml:4865
+#: reference_raster.xml:4932 reference_raster.xml:4997
+#: reference_raster.xml:5110 reference_raster.xml:5231
+#: reference_raster.xml:5297 reference_raster.xml:5376
+#: reference_raster.xml:5522 reference_raster.xml:5565
+#: reference_raster.xml:5611 reference_raster.xml:5696
+#: reference_raster.xml:5787 reference_raster.xml:5875
+#: reference_raster.xml:5986 reference_raster.xml:6179
+#: reference_raster.xml:6455 reference_raster.xml:6599
+#: reference_raster.xml:6836 reference_raster.xml:7042
+#: reference_raster.xml:7166 reference_raster.xml:7492
+#: reference_raster.xml:7610 reference_raster.xml:7723
+#: reference_raster.xml:7865 reference_raster.xml:7951
+#: reference_raster.xml:8023 reference_raster.xml:8087
+#: reference_raster.xml:8158 reference_raster.xml:8233
+#: reference_raster.xml:8316 reference_raster.xml:8387
+#: reference_raster.xml:8443 reference_raster.xml:8518
+#: reference_raster.xml:8589 reference_raster.xml:8673
+#: reference_raster.xml:8765 reference_raster.xml:8847
+#: reference_raster.xml:8901 reference_raster.xml:8975
+#: reference_raster.xml:9023 reference_raster.xml:9075
+#: reference_raster.xml:9117 reference_raster.xml:9165
+#: reference_raster.xml:9216 reference_raster.xml:9264
+#: reference_raster.xml:9306 reference_raster.xml:9380
+#: reference_raster.xml:9425 reference_raster.xml:9470
+#: reference_raster.xml:9515 reference_raster.xml:9584
+#: reference_raster.xml:9631 reference_raster.xml:9704
+#: reference_raster.xml:9772 reference_raster.xml:9861
+#: reference_raster.xml:9946 reference_raster.xml:10027
+#: reference_raster.xml:10108 reference_raster.xml:10237
+#: reference_raster.xml:10321 reference_raster.xml:10401
+#: reference_raster.xml:10520 reference_raster.xml:10567
+#: reference_raster.xml:10639 reference_raster.xml:10736
+#: reference_raster.xml:10829
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:31
+#, no-c-format
+msgid ""
+"geomval is a compound data type consisting of a geometry object referenced "
+"by the .geom field and val, a double precision value that represents the "
+"pixel value at a particular geometric location in a raster band. It is used "
+"by the ST_DumpAsPolygon and Raster intersection family of functions as an "
+"output type to explode a raster band into geometry polygons."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:37 reference_raster.xml:107 reference_raster.xml:157
+#: reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:340
+#: reference_raster.xml:389 reference_raster.xml:584 reference_raster.xml:725
+#: reference_raster.xml:803 reference_raster.xml:863 reference_raster.xml:899
+#: reference_raster.xml:936 reference_raster.xml:974 reference_raster.xml:1022
+#: reference_raster.xml:1073 reference_raster.xml:1123
+#: reference_raster.xml:1253 reference_raster.xml:1470
+#: reference_raster.xml:1560 reference_raster.xml:1621
+#: reference_raster.xml:1697 reference_raster.xml:1748
+#: reference_raster.xml:1796 reference_raster.xml:1843
+#: reference_raster.xml:1877 reference_raster.xml:1913
+#: reference_raster.xml:1956 reference_raster.xml:1992
+#: reference_raster.xml:2026 reference_raster.xml:2070
+#: reference_raster.xml:2130 reference_raster.xml:2167
+#: reference_raster.xml:2205 reference_raster.xml:2250
+#: reference_raster.xml:2309 reference_raster.xml:2363
+#: reference_raster.xml:2398 reference_raster.xml:2434
+#: reference_raster.xml:2470 reference_raster.xml:2505
+#: reference_raster.xml:2539 reference_raster.xml:2578
+#: reference_raster.xml:2612 reference_raster.xml:2647
+#: reference_raster.xml:2697 reference_raster.xml:2754
+#: reference_raster.xml:2809 reference_raster.xml:2860
+#: reference_raster.xml:2895 reference_raster.xml:2950
+#: reference_raster.xml:2988 reference_raster.xml:3063
+#: reference_raster.xml:3100 reference_raster.xml:3142
+#: reference_raster.xml:3200 reference_raster.xml:3243
+#: reference_raster.xml:3294 reference_raster.xml:3337
+#: reference_raster.xml:3388 reference_raster.xml:3463
+#: reference_raster.xml:3553 reference_raster.xml:3647
+#: reference_raster.xml:3718 reference_raster.xml:3867
+#: reference_raster.xml:3932 reference_raster.xml:4088
+#: reference_raster.xml:4123 reference_raster.xml:4172
+#: reference_raster.xml:4217 reference_raster.xml:4257
+#: reference_raster.xml:4295 reference_raster.xml:4387
+#: reference_raster.xml:4452 reference_raster.xml:4521
+#: reference_raster.xml:4599 reference_raster.xml:4673
+#: reference_raster.xml:4795 reference_raster.xml:4843
+#: reference_raster.xml:4884 reference_raster.xml:4953
+#: reference_raster.xml:5014 reference_raster.xml:5145
+#: reference_raster.xml:5246 reference_raster.xml:5333
+#: reference_raster.xml:5393 reference_raster.xml:5540
+#: reference_raster.xml:5650 reference_raster.xml:5741
+#: reference_raster.xml:5832 reference_raster.xml:5912
+#: reference_raster.xml:6142 reference_raster.xml:6376
+#: reference_raster.xml:6520 reference_raster.xml:6767
+#: reference_raster.xml:7003 reference_raster.xml:7116
+#: reference_raster.xml:7408 reference_raster.xml:7567
+#: reference_raster.xml:7690 reference_raster.xml:7823
+#: reference_raster.xml:7894 reference_raster.xml:7982
+#: reference_raster.xml:8055 reference_raster.xml:8125
+#: reference_raster.xml:8194 reference_raster.xml:8276
+#: reference_raster.xml:8355 reference_raster.xml:8410
+#: reference_raster.xml:8479 reference_raster.xml:8550
+#: reference_raster.xml:8625 reference_raster.xml:8718
+#: reference_raster.xml:8815 reference_raster.xml:8858
+#: reference_raster.xml:8943 reference_raster.xml:8991
+#: reference_raster.xml:9042 reference_raster.xml:9092
+#: reference_raster.xml:9137 reference_raster.xml:9190
+#: reference_raster.xml:9236 reference_raster.xml:9279
+#: reference_raster.xml:9318 reference_raster.xml:9529
+#: reference_raster.xml:9597 reference_raster.xml:9650
+#: reference_raster.xml:9716 reference_raster.xml:9807
+#: reference_raster.xml:9892 reference_raster.xml:9973
+#: reference_raster.xml:10054 reference_raster.xml:10138
+#: reference_raster.xml:10267 reference_raster.xml:10348
+#: reference_raster.xml:10428 reference_raster.xml:10541
+#: reference_raster.xml:10585 reference_raster.xml:10672
+#: reference_raster.xml:10767 reference_raster.xml:10860
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:44
+#, no-c-format
+msgid "addbandarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:45
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_AddBand function "
+"defining the attributes and initial value of the new band.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:50
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_AddBand function defining "
+"the attributes and initial value of the new band.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:55
+#, no-c-format
+msgid "<parameter>index </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:60
+#, no-c-format
+msgid ""
+"1-based value indicating the position where the new band will be added "
+"amongst the raster's bands. If NULL, the new band will be added at the end "
+"of the raster's bands."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:67
+#, no-c-format
+msgid "<parameter>pixeltype </parameter> <type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:72
+#, no-c-format
+msgid ""
+"Pixel type of the new band. One of defined pixel types as described in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:79
+#, no-c-format
+msgid "<parameter>initialvalue </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:84
+#, no-c-format
+msgid "Initial value that all pixels of new band will be set to."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:91
+#, no-c-format
+msgid "<parameter>nodataval </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:96
+#, no-c-format
+msgid ""
+"NODATA value of the new band. If NULL, the new band will not have a NODATA "
+"value assigned."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:116
+#, no-c-format
+msgid "rastbandarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:117
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type for use when needing to express a raster and a "
+"band index of that raster.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:122
+#, no-c-format
+msgid ""
+"<para>A composite type for use when needing to express a raster and a band "
+"index of that raster.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:128
+#, no-c-format
+msgid "<parameter>rast </parameter> <type>raster</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:133
+#, no-c-format
+msgid "The raster in question/"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:140 reference_raster.xml:360
+#, no-c-format
+msgid "<parameter>nband </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:145
+#, no-c-format
+msgid "1-based value indicating the band of raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:166
+#, no-c-format
+msgid "raster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:167
+#, no-c-format
+msgid "raster spatial data type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:172
+#, no-c-format
+msgid ""
+"raster is a spatial data type used to represent raster data such as those "
+"imported from jpegs, tiffs, pngs, digital elevation models. Each raster has "
+"1 or more bands each having a set of pixel values. Rasters can be "
+"georeferenced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:175
+#, no-c-format
+msgid ""
+"Requires PostGIS be compiled with GDAL support. Currently rasters can be "
+"implicitly converted to geometry type, but the conversion returns the <xref "
+"linkend=\"RT_ST_ConvexHull\"/> of the raster. This auto casting may be "
+"removed in the near future so don't rely on it."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:181
+#, no-c-format
+msgid "Casting Behavior"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:182
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:187
+#, no-c-format
+msgid "Cast To"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:188
+#, no-c-format
+msgid "Behavior"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:191
+#, no-c-format
+msgid "geometry"
+msgstr ""
+
+#. Tag: entry
+#: reference_raster.xml:192
+#, no-c-format
+msgid "automatic"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:207
+#, no-c-format
+msgid "reclassarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:208
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_Reclass function "
+"defining the behavior of reclassification.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:212
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_Reclass function defining "
+"the behavior of reclassification.</para>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:215
+#, no-c-format
+msgid "<parameter>nband </parameter><type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:216
+#, no-c-format
+msgid "The band number of band to reclassify."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:219
+#, no-c-format
+msgid "<parameter>reclassexpr </parameter><type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:220
+#, no-c-format
+msgid ""
+"range expression consisting of comma delimited range:map_range mappings. : "
+"to define mapping that defines how to map old band values to new band "
+"values. ( means >, ) means less than, ] < or equal, [ means > or "
+"equal"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:221
+#, no-c-format
+msgid ""
+"1. [a-b] = a <= x <= b\n"
+"\n"
+"2. (a-b] = a < x <= b\n"
+"\n"
+"3. [a-b) = a <= x < b\n"
+"\n"
+"4. (a-b) = a < x < b"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:222
+#, no-c-format
+msgid "( notation is optional so a-b means the same as (a-b)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:227
+#, no-c-format
+msgid "<parameter>pixeltype </parameter><type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:228
+#, no-c-format
+msgid ""
+"One of defined pixel types as described in <xref linkend="
+"\"RT_ST_BandPixelType\"/>"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:231
+#, no-c-format
+msgid "<parameter>nodataval </parameter><type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:232
+#, no-c-format
+msgid ""
+"Value to treat as no data. For image outputs that support transparency, "
+"these will be blank."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:237
+#, no-c-format
+msgid "Example: Reclassify band 2 as an 8BUI where 255 is nodata value"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:238
+#, no-c-format
+msgid ""
+"SELECT ROW(2, '0-100:1-10, 101-500:11-150,501 - 10000: 151-254', '8BUI', "
+"255)::reclassarg;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:241
+#, no-c-format
+msgid "Example: Reclassify band 1 as an 1BB and no nodata value defined"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:242
+#, no-c-format
+msgid "SELECT ROW(1, '0-100]:0, (100-255:1', '1BB', NULL)::reclassarg;"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:252
+#, no-c-format
+msgid "summarystats"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:253
+#, no-c-format
+msgid ""
+"A composite type returned by the ST_SummaryStats and ST_SummaryStatsAgg "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:258
+#, no-c-format
+msgid ""
+"A composite type returned by the <xref linkend=\"RT_ST_SummaryStats\"/> and "
+"<xref linkend=\"RT_ST_SummaryStatsAgg\"/> functions."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:263
+#, no-c-format
+msgid "<parameter>count </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:268
+#, no-c-format
+msgid "Number of pixels counted for the summary statistics."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:275
+#, no-c-format
+msgid "<parameter>sum </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:280
+#, no-c-format
+msgid "Sum of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:287
+#, no-c-format
+msgid "<parameter>mean </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:292
+#, no-c-format
+msgid "Arithmetic mean of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:299
+#, no-c-format
+msgid "<parameter>stddev </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:304
+#, no-c-format
+msgid "Standard deviation of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:311
+#, no-c-format
+msgid "<parameter>min </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:316
+#, no-c-format
+msgid "Minimum value of counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:323
+#, no-c-format
+msgid "<parameter>max </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:328
+#, no-c-format
+msgid "Maximum value of counted pixel values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:341
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:349
+#, no-c-format
+msgid "unionarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:350
+#, no-c-format
+msgid ""
+"<refpurpose>A composite type used as input into the ST_Union function "
+"defining the bands to be processed and behavior of the UNION operation.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:355
+#, no-c-format
+msgid ""
+"<para>A composite type used as input into the ST_Union function defining the "
+"bands to be processed and behavior of the UNION operation.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:365
+#, no-c-format
+msgid "1-based value indicating the band of each input raster to be processed."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:372
+#, no-c-format
+msgid "<parameter>uniontype </parameter> <type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:377
+#, no-c-format
+msgid ""
+"Type of UNION operation. One of defined types as described in <xref linkend="
+"\"RT_ST_Union\"/>."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:399
+#, no-c-format
+msgid "Raster Management"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:402
+#, no-c-format
+msgid "AddRasterConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:404
+#, no-c-format
+msgid ""
+"Adds raster constraints to a loaded raster table for a specific column that "
+"constrains spatial ref, scaling, blocksize, alignment, bands, band type and "
+"a flag to denote if raster column is regularly blocked. The table must be "
+"loaded with data for the constraints to be inferred. Returns true of the "
+"constraint setting was accomplished and if issues a notice."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:408
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>VARIADIC constraints</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>scale_x=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter> </paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:538
+#, no-c-format
+msgid ""
+"Generates constraints on a raster column that are used to display "
+"information in the <varname>raster_columns</varname> raster catalog. The "
+"<varname>rastschema</varname> is the name of the table schema the table "
+"resides in. The <varname>srid</varname> must be an integer value reference "
+"to an entry in the SPATIAL_REF_SYS table."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:543
+#, no-c-format
+msgid ""
+"<varname>raster2pgsql</varname> loader uses this function to register raster "
+"tables"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:544
+#, no-c-format
+msgid ""
+"Valid constraint names to pass in: refer to <xref linkend=\"RT_Raster_Columns"
+"\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:546
+#, no-c-format
+msgid "<varname>blocksize</varname> sets both X and Y blocksize"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:547
+#, no-c-format
+msgid ""
+"<varname>blocksize_x</varname> sets X tile (width in pixels of each tile)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:548
+#, no-c-format
+msgid ""
+"<varname>blocksize_y</varname> sets Y tile (height in pixels of each tile)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:549
+#, no-c-format
+msgid ""
+"<varname>extent</varname> computes extent of whole table and applys "
+"constraint all rasters must be within that extent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:551
+#, no-c-format
+msgid "<varname>num_bands</varname> number of bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:552
+#, no-c-format
+msgid ""
+"<varname>pixel_types</varname> reads array of pixel types for each band "
+"ensure all band n have same pixel type"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:553
+#, no-c-format
+msgid ""
+"<varname>regular_blocking</varname> sets spatially unique (no two rasters "
+"can be spatially the same) and coverage tile (raster is aligned to a "
+"coverage) constraints"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:554
+#, no-c-format
+msgid ""
+"<varname>same_alignment</varname> ensures they all have same alignment "
+"meaning any two tiles you compare will return true for. Refer to"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:555
+#, no-c-format
+msgid "<varname>srid</varname> ensures all have same srid"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:556
+#, no-c-format
+msgid "More -- any listed as inputs into the above functions"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:559
+#, no-c-format
+msgid ""
+"This function infers the constraints from the data already present in the "
+"table. As such for it to work, you must create the raster column first and "
+"then load it with data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:564
+#, no-c-format
+msgid ""
+"If you need to load more data in your tables after you have already applied "
+"constraints, you may want to run the DropRasterConstraints if the extent of "
+"your data has changed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:568 reference_raster.xml:717 reference_raster.xml:793
+#: reference_raster.xml:859 reference_raster.xml:1511
+#: reference_raster.xml:1902 reference_raster.xml:2932
+#: reference_raster.xml:3089 reference_raster.xml:3132
+#: reference_raster.xml:3189 reference_raster.xml:4873
+#: reference_raster.xml:4936 reference_raster.xml:5131
+#: reference_raster.xml:5235 reference_raster.xml:5305
+#: reference_raster.xml:5527 reference_raster.xml:6000
+#: reference_raster.xml:7062 reference_raster.xml:7261
+#: reference_raster.xml:7525 reference_raster.xml:7644
+#: reference_raster.xml:7773 reference_raster.xml:7871
+#: reference_raster.xml:7959 reference_raster.xml:8043
+#: reference_raster.xml:8182 reference_raster.xml:8257
+#: reference_raster.xml:8344 reference_raster.xml:8467
+#: reference_raster.xml:8538 reference_raster.xml:8613
+#: reference_raster.xml:8699 reference_raster.xml:8795
+#: reference_raster.xml:8923 reference_raster.xml:9387
+#: reference_raster.xml:9639 reference_raster.xml:9711
+#: reference_raster.xml:10530
+#, no-c-format
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:572
+#, no-c-format
+msgid "Examples: Apply all possible constraints on column based on data"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:574
+#, no-c-format
+msgid ""
+"CREATE TABLE myrasters(rid SERIAL primary key, rast raster);\n"
+"INSERT INTO myrasters(rast)\n"
+"SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, "
+"0,4326), 1, '8BSI'::text, -129, NULL);\n"
+"\n"
+"SELECT AddRasterConstraints('myrasters'::name, 'rast'::name);\n"
+"\n"
+"\n"
+"-- verify if registered correctly in the raster_columns view --\n"
+"SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, "
+"pixel_types, nodata_values\n"
+"        FROM raster_columns\n"
+"        WHERE r_table_name = 'myrasters';\n"
+"        \n"
+" srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | "
+"pixel_types| nodata_values\n"
+"------+---------+---------+-------------+-------------+-----------"
+"+-------------+---------------\n"
+" 4326 |       2 |       2 |        1000 |        1000 |         1 | "
+"{8BSI}      | {0}"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:578
+#, no-c-format
+msgid "Examples: Apply single constraint"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:580
+#, no-c-format
+msgid ""
+"CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);\n"
+"INSERT INTO myrasters2(rast)\n"
+"SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, "
+"0,4326), 1, '8BSI'::text, -129, NULL);\n"
+"\n"
+"SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::"
+"name,'regular_blocking', 'blocksize');\n"
+"-- get notice--\n"
+"NOTICE:  Adding regular blocking constraint\n"
+"NOTICE:  Adding blocksize-X constraint\n"
+"NOTICE:  Adding blocksize-Y constraint"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:586
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/"
+">, <xref linkend=\"RT_DropRasterConstraints\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:592
+#, no-c-format
+msgid "DropRasterConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:594
+#, no-c-format
+msgid ""
+"Drops PostGIS raster constraints that refer to a raster table column. Useful "
+"if you need to reload data or update your raster column data."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:598
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropRasterConstraints</function></"
+"funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>blocksize_x</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>blocksize_y</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>same_alignment</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>regular_blocking</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>srid=true</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>scale_x=true</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>scale_y=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>blocksize_x=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>nodata_values=true</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>out_db=true</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>extent=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropRasterConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>rastschema</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>text[] </"
+"type> <parameter>constraints</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:711
+#, no-c-format
+msgid ""
+"Drops PostGIS raster constraints that refer to a raster table column that "
+"were added by <xref linkend=\"RT_AddRasterConstraints\"/>. Useful if you "
+"need to load more data or update your raster column data. You do not need to "
+"do this if you want to get rid of a raster table or a raster column."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:713
+#, no-c-format
+msgid "To drop a raster table use the standard"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:713
+#, no-c-format
+msgid "DROP TABLE mytable"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:714
+#, no-c-format
+msgid ""
+"To drop just a raster column and leave the rest of the table, use standard "
+"SQL"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:714
+#, no-c-format
+msgid "ALTER TABLE mytable DROP COLUMN rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:715
+#, no-c-format
+msgid ""
+"the table will disappear from the <varname>raster_columns</varname> catalog "
+"if the column or table is dropped. However if only the constraints are "
+"dropped, the raster column will still be listed in the "
+"<varname>raster_columns</varname> catalog, but there will be no other "
+"information about it aside from the column name and table."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:720 reference_raster.xml:797 reference_raster.xml:894
+#: reference_raster.xml:930 reference_raster.xml:968 reference_raster.xml:1515
+#: reference_raster.xml:1614 reference_raster.xml:1688
+#: reference_raster.xml:1789 reference_raster.xml:1837
+#: reference_raster.xml:1870 reference_raster.xml:1906
+#: reference_raster.xml:1949 reference_raster.xml:1985
+#: reference_raster.xml:2019 reference_raster.xml:2159
+#: reference_raster.xml:2197 reference_raster.xml:2240
+#: reference_raster.xml:2299 reference_raster.xml:2353
+#: reference_raster.xml:2391 reference_raster.xml:2426
+#: reference_raster.xml:2462 reference_raster.xml:2498
+#: reference_raster.xml:2534 reference_raster.xml:2571
+#: reference_raster.xml:2605 reference_raster.xml:2639
+#: reference_raster.xml:2690 reference_raster.xml:2747
+#: reference_raster.xml:2802 reference_raster.xml:2853
+#: reference_raster.xml:2888 reference_raster.xml:2943
+#: reference_raster.xml:2981 reference_raster.xml:3056
+#: reference_raster.xml:3093 reference_raster.xml:3137
+#: reference_raster.xml:3195 reference_raster.xml:3238
+#: reference_raster.xml:3289 reference_raster.xml:3332
+#: reference_raster.xml:3383 reference_raster.xml:3450
+#: reference_raster.xml:3544 reference_raster.xml:3636
+#: reference_raster.xml:3711 reference_raster.xml:3924
+#: reference_raster.xml:4019 reference_raster.xml:4082
+#: reference_raster.xml:4116 reference_raster.xml:4164
+#: reference_raster.xml:4207 reference_raster.xml:4288
+#: reference_raster.xml:4381 reference_raster.xml:4445
+#: reference_raster.xml:4513 reference_raster.xml:4591
+#: reference_raster.xml:4668 reference_raster.xml:4747
+#: reference_raster.xml:4836 reference_raster.xml:4877
+#: reference_raster.xml:4947 reference_raster.xml:5009
+#: reference_raster.xml:5239 reference_raster.xml:5388
+#: reference_raster.xml:5531 reference_raster.xml:5584
+#: reference_raster.xml:5824 reference_raster.xml:6265
+#: reference_raster.xml:7066 reference_raster.xml:7529
+#: reference_raster.xml:7777 reference_raster.xml:8048
+#: reference_raster.xml:8120 reference_raster.xml:8187
+#: reference_raster.xml:8349 reference_raster.xml:8405
+#: reference_raster.xml:8472 reference_raster.xml:8543
+#: reference_raster.xml:8618 reference_raster.xml:8853
+#: reference_raster.xml:8986 reference_raster.xml:9037
+#: reference_raster.xml:9086 reference_raster.xml:9129
+#: reference_raster.xml:9185 reference_raster.xml:9230
+#: reference_raster.xml:9274 reference_raster.xml:9313
+#: reference_raster.xml:9391 reference_raster.xml:9436
+#: reference_raster.xml:9481 reference_raster.xml:9644
+#: reference_raster.xml:9800 reference_raster.xml:9887
+#: reference_raster.xml:9968 reference_raster.xml:10049
+#: reference_raster.xml:10130 reference_raster.xml:10262
+#: reference_raster.xml:10343 reference_raster.xml:10423
+#: reference_raster.xml:10580 reference_raster.xml:10667
+#: reference_raster.xml:10762 reference_raster.xml:10855
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:722
+#, no-c-format
+msgid ""
+"SELECT DropRasterConstraints ('myrasters','rast');\n"
+"----RESULT output ---\n"
+"t\n"
+"\n"
+"-- verify change in raster_columns --\n"
+"SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, "
+"pixel_types, nodata_values\n"
+"        FROM raster_columns\n"
+"        WHERE r_table_name = 'myrasters';\n"
+"        \n"
+" srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | "
+"pixel_types| nodata_values\n"
+"------+---------+---------+-------------+-------------+-----------"
+"+-------------+---------------\n"
+"    0 |         |         |             |             |           "
+"|             |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:733
+#, no-c-format
+msgid "AddOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:735
+#, no-c-format
+msgid "Tag a raster column as being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:739
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>reftable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refcolumn</"
+"parameter></paramdef> <paramdef><type>int </type> <parameter>ovfactor</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddOverviewConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>ovcolumn</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>reftable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>refcolumn</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>ovfactor</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:779
+#, no-c-format
+msgid ""
+"Adds constraints on a raster column that are used to display information in "
+"the <varname>raster_overviews</varname> raster catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:783
+#, no-c-format
+msgid ""
+"The <varname>ovfactor</varname> parameter represents the scale multiplier in "
+"the overview column: higher overview factors have lower resolution."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:787
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> and <varname>refschema</varname> "
+"parameters are omitted, the first table found scanning the "
+"<varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:799
+#, no-c-format
+msgid ""
+"CREATE TABLE res1 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r1;\n"
+"\n"
+"CREATE TABLE res2 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(500, 500, 0, 0, 4),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r2;\n"
+"\n"
+"SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);\n"
+"\n"
+"-- verify if registered correctly in the raster_overviews view --\n"
+"SELECT o_table_name ot, o_raster_column oc,\n"
+"       r_table_name rt, r_raster_column rc,\n"
+"       overview_factor f\n"
+"FROM raster_overviews WHERE o_table_name = 'res2';\n"
+"  ot  | oc |  rt  | rc | f\n"
+"------+----+------+----+---\n"
+" res2 | r2 | res1 | r1 | 2\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:805
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_DropOverviewConstraints\"/>, <xref linkend="
+"\"RT_CreateOverview\"/>, <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:816
+#, no-c-format
+msgid "DropOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:818
+#, no-c-format
+msgid "Untag a raster column from being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:822
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropOverviewConstraints</function></funcdef> <paramdef><type>name "
+"</type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>ovcolumn</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:848
+#, no-c-format
+msgid ""
+"Remove from a raster column the constraints used to show it as being an "
+"overview of another in the <varname>raster_overviews</varname> raster "
+"catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:853
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> parameter is omitted, the first table "
+"found scanning the <varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:865
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_DropRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:875
+#, no-c-format
+msgid "PostGIS_GDAL_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:876
+#, no-c-format
+msgid "Reports the version of the GDAL library in use by PostGIS."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:881
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GDAL_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:890
+#, no-c-format
+msgid ""
+"Reports the version of the GDAL library in use by PostGIS. Will also check "
+"and report if GDAL can find its data files."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:895
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GDAL_Version();\n"
+"       postgis_gdal_version        \n"
+"-----------------------------------\n"
+" GDAL 1.11dev, released 2013/04/13"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:908
+#, no-c-format
+msgid "PostGIS_Raster_Lib_Build_Date"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:910
+#, no-c-format
+msgid "Reports full raster library build date."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:915
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Build_Date</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:926
+#, no-c-format
+msgid "Reports raster build date"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:932
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Raster_Lib_Build_Date();\n"
+"postgis_raster_lib_build_date\n"
+"-----------------------------\n"
+"2010-04-28 21:15:10"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:944
+#, no-c-format
+msgid "PostGIS_Raster_Lib_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:946
+#, no-c-format
+msgid ""
+"<refpurpose>Reports full raster version and build configuration infos.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:952
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_Raster_Lib_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:963
+#, no-c-format
+msgid "<para>Reports full raster version and build configuration infos.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:970
+#, no-c-format
+msgid ""
+"SELECT PostGIS_Raster_Lib_Version();\n"
+"postgis_raster_lib_version\n"
+"-----------------------------\n"
+" 2.0.0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:984
+#, no-c-format
+msgid "ST_GDALDrivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:986
+#, no-c-format
+msgid ""
+"Returns a list of raster formats supported by your lib gdal. These are the "
+"formats you can output your raster using ST_AsGDALRaster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:991
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>ST_GDALDrivers</function></funcdef> "
+"<paramdef><type>integer </type> <parameter>OUT idx</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>OUT short_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT long_name</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>OUT create_options</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1004
+#, no-c-format
+msgid ""
+"Returns a list of raster formats short_name,long_name and creator options of "
+"each format supported by your lib gdal. Use the short_name as input in the "
+"<varname>format</varname> parameter of <xref linkend=\"RT_ST_AsGDALRaster\"/"
+">. Options vary depending on what drivers your libgdal was compiled with. "
+"<varname>create_options</varname> returns an xml formatted set of "
+"CreationOptionList/Option consisting of name and optional <varname>type</"
+"varname>, <varname>description</varname> and set of <varname>VALUE</varname> "
+"for each creator option for the specific driver."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1007 reference_raster.xml:1438
+#: reference_raster.xml:5631 reference_raster.xml:5729
+#: reference_raster.xml:5820 reference_raster.xml:5900
+#, no-c-format
+msgid "Availability: 2.0.0 - requires GDAL >= 1.6.0."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1011
+#, no-c-format
+msgid "Examples: List of Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1013
+#, no-c-format
+msgid ""
+"SELECT short_name, long_name\n"
+"FROM st_gdaldrivers()\n"
+"ORDER BY short_name;\n"
+"  short_name    |              long_name\n"
+"----------------+--------------------------------------\n"
+"AAIGrid         | Arc/Info ASCII Grid\n"
+"DTED            | DTED Elevation Raster\n"
+"EHdr            | ESRI .hdr Labelled\n"
+"FIT             | FIT Image\n"
+"GIF             | Graphics Interchange Format (.gif)\n"
+"GSAG            | Golden Software ASCII Grid (.grd)\n"
+"GSBG            | Golden Software Binary Grid (.grd)\n"
+"GTiff           | GeoTIFF\n"
+"HF2             | HF2/HFZ heightfield raster\n"
+"HFA             | Erdas Imagine Images (.img)\n"
+"ILWIS           | ILWIS Raster Map\n"
+"INGR            | Intergraph Raster\n"
+"JPEG            | JPEG JFIF\n"
+"KMLSUPEROVERLAY | Kml Super Overlay\n"
+"NITF            | National Imagery Transmission Format\n"
+"PNG             | Portable Network Graphics\n"
+"R               | R Object Data Store\n"
+"SAGA            | SAGA GIS Binary Grid (.sdat)\n"
+"SRTMHGT         | SRTMHGT File Format\n"
+"USGSDEM         | USGS Optional ASCII DEM (and CDED)\n"
+"VRT             | Virtual Raster\n"
+"XPM             | X11 PixMap Format"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1015
+#, no-c-format
+msgid "Example: List of options for each driver"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1016
+#, no-c-format
+msgid ""
+"-- Output the create options XML column of JPEG as a table  --\n"
+"-- Note you can use these creator options in ST_AsGDALRaster options "
+"argument\n"
+"SELECT (xpath('@name', g.opt))[1]::text As oname,\n"
+"       (xpath('@type', g.opt))[1]::text As otype,\n"
+"       (xpath('@description', g.opt))[1]::text As descrip\n"
+"FROM (SELECT unnest(xpath('/CreationOptionList/Option', create_options::"
+"xml)) As opt\n"
+"FROM  st_gdaldrivers()\n"
+"WHERE short_name = 'JPEG') As g;\n"
+"\n"
+"    oname    |  otype  |           descrip\n"
+"-------------+---------+-----------------------------\n"
+" PROGRESSIVE | boolean |\n"
+" QUALITY     | int     | good=100, bad=0, default=75\n"
+" WORLDFILE   | boolean |"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1018
+#, no-c-format
+msgid ""
+"-- raw xml output for creator options for GeoTiff --\n"
+"SELECT create_options\n"
+"FROM st_gdaldrivers()\n"
+"WHERE short_name = 'GTiff';\n"
+"\n"
+"<![CDATA[<CreationOptionList>\n"
+"    <Option name=\"COMPRESS\" type=\"string-select\">\n"
+"        <Value>NONE</Value>\n"
+"        <Value>LZW</Value>\n"
+"        <Value>PACKBITS</Value>\n"
+"        <Value>JPEG</Value>\n"
+"        <Value>CCITTRLE</Value>\n"
+"        <Value>CCITTFAX3</Value>\n"
+"        <Value>CCITTFAX4</Value>\n"
+"        <Value>DEFLATE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"PREDICTOR\" type=\"int\" description=\"Predictor Type\"/"
+">\n"
+"    <Option name=\"JPEG_QUALITY\" type=\"int\" description=\"JPEG quality "
+"1-100\" default=\"75\"/>\n"
+"    <Option name=\"ZLEVEL\" type=\"int\" description=\"DEFLATE compression "
+"level 1-9\" default=\"6\"/>\n"
+"    <Option name=\"NBITS\" type=\"int\" description=\"BITS for sub-byte "
+"files (1-7), sub-uint16 (9-15), sub-uint32 (17-31)\"/>\n"
+"    <Option name=\"INTERLEAVE\" type=\"string-select\" default=\"PIXEL\">\n"
+"        <Value>BAND</Value>\n"
+"        <Value>PIXEL</Value>\n"
+"    </Option>\n"
+"    <Option name=\"TILED\" type=\"boolean\" description=\"Switch to tiled "
+"format\"/>\n"
+"    <Option name=\"TFW\" type=\"boolean\" description=\"Write out world file"
+"\"/>\n"
+"    <Option name=\"RPB\" type=\"boolean\" description=\"Write out .RPB (RPC) "
+"file\"/>\n"
+"    <Option name=\"BLOCKXSIZE\" type=\"int\" description=\"Tile Width\"/>\n"
+"    <Option name=\"BLOCKYSIZE\" type=\"int\" description=\"Tile/Strip Height"
+"\"/>\n"
+"    <Option name=\"PHOTOMETRIC\" type=\"string-select\">\n"
+"        <Value>MINISBLACK</Value>\n"
+"        <Value>MINISWHITE</Value>\n"
+"        <Value>PALETTE</Value>\n"
+"        <Value>RGB</Value>\n"
+"        <Value>CMYK</Value>\n"
+"        <Value>YCBCR</Value>\n"
+"        <Value>CIELAB</Value>\n"
+"        <Value>ICCLAB</Value>\n"
+"        <Value>ITULAB</Value>\n"
+"    </Option>\n"
+"    <Option name=\"SPARSE_OK\" type=\"boolean\" description=\"Can newly "
+"created files have missing blocks?\" default=\"FALSE\"/>\n"
+"    <Option name=\"ALPHA\" type=\"boolean\" description=\"Mark first "
+"extrasample as being alpha\"/>\n"
+"    <Option name=\"PROFILE\" type=\"string-select\" default=\"GDALGeoTIFF"
+"\">\n"
+"        <Value>GDALGeoTIFF</Value>\n"
+"        <Value>GeoTIFF</Value>\n"
+"        <Value>BASELINE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"PIXELTYPE\" type=\"string-select\">\n"
+"        <Value>DEFAULT</Value>\n"
+"        <Value>SIGNEDBYTE</Value>\n"
+"    </Option>\n"
+"    <Option name=\"BIGTIFF\" type=\"string-select\" description=\"Force "
+"creation of BigTIFF file\">\n"
+"        <Value>YES</Value>\n"
+"        <Value>NO</Value>\n"
+"        <Value>IF_NEEDED</Value>\n"
+"        <Value>IF_SAFER</Value>\n"
+"    </Option>\n"
+"    <Option name=\"ENDIANNESS\" type=\"string-select\" default=\"NATIVE\" "
+"description=\"Force endianness of created file. For DEBUG purpose mostly\">\n"
+"        <Value>NATIVE</Value>\n"
+"        <Value>INVERTED</Value>\n"
+"        <Value>LITTLE</Value>\n"
+"        <Value>BIG</Value>\n"
+"    </Option>\n"
+"    <Option name=\"COPY_SRC_OVERVIEWS\" type=\"boolean\" default=\"NO\" "
+"description=\"Force copy of overviews of source dataset (CreateCopy())\"/>\n"
+"</CreationOptionList>]]>\n"
+"\n"
+"-- Output the create options XML column for GTiff as a table  --\n"
+"SELECT (xpath('@name', g.opt))[1]::text As oname,\n"
+"       (xpath('@type', g.opt))[1]::text As otype,\n"
+"       (xpath('@description', g.opt))[1]::text As descrip,\n"
+"       array_to_string(xpath('Value/text()', g.opt),', ') As vals \n"
+"FROM (SELECT unnest(xpath('/CreationOptionList/Option', create_options::"
+"xml)) As opt\n"
+"FROM  st_gdaldrivers()\n"
+"WHERE short_name = 'GTiff') As g;\n"
+"\n"
+"       oname        |     otype     |                               "
+"descrip                                |                                   "
+"vals                                    \n"
+"--------------------+---------------"
+"+----------------------------------------------------------------------"
+"+---------------------------------------------------------------------------\n"
+" COMPRESS           | string-select "
+"|                                                                      | "
+"NONE, LZW, PACKBITS, JPEG, CCITTRLE, CCITTFAX3, CCITTFAX4, DEFLATE\n"
+" PREDICTOR          | int           | Predictor "
+"Type                                                       | \n"
+" JPEG_QUALITY       | int           | JPEG quality "
+"1-100                                                   | \n"
+" ZLEVEL             | int           | DEFLATE compression level "
+"1-9                                        | \n"
+" NBITS              | int           | BITS for sub-byte files (1-7), sub-"
+"uint16 (9-15), sub-uint32 (17-31) | \n"
+" INTERLEAVE         | string-select "
+"|                                                                      | "
+"BAND, PIXEL\n"
+" TILED              | boolean       | Switch to tiled "
+"format                                               | \n"
+" TFW                | boolean       | Write out world "
+"file                                                 | \n"
+" RPB                | boolean       | Write out .RPB (RPC) "
+"file                                            | \n"
+" BLOCKXSIZE         | int           | Tile "
+"Width                                                           | \n"
+" BLOCKYSIZE         | int           | Tile/Strip "
+"Height                                                    | \n"
+" PHOTOMETRIC        | string-select "
+"|                                                                      | "
+"MINISBLACK, MINISWHITE, PALETTE, RGB, CMYK, YCBCR, CIELAB, ICCLAB, ITULAB\n"
+" SPARSE_OK          | boolean       | Can newly created files have missing "
+"blocks?                         | \n"
+" ALPHA              | boolean       | Mark first extrasample as being "
+"alpha                                | \n"
+" PROFILE            | string-select "
+"|                                                                      | "
+"GDALGeoTIFF, GeoTIFF, BASELINE\n"
+" PIXELTYPE          | string-select "
+"|                                                                      | "
+"DEFAULT, SIGNEDBYTE\n"
+" BIGTIFF            | string-select | Force creation of BigTIFF "
+"file                                       | YES, NO, IF_NEEDED, IF_SAFER\n"
+" ENDIANNESS         | string-select | Force endianness of created file. For "
+"DEBUG purpose mostly           | NATIVE, INVERTED, LITTLE, BIG\n"
+" COPY_SRC_OVERVIEWS | boolean       | Force copy of overviews of source "
+"dataset (CreateCopy())             | \n"
+"(19 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1024 reference_raster.xml:2506
+#, no-c-format
+msgid ", <xref linkend=\"ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1030
+#, no-c-format
+msgid "UpdateRasterSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1031
+#, no-c-format
+msgid "Change the SRID of all rasters in the user-specified column and table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1037
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>UpdateRasterSRID</function></"
+"funcdef> <paramdef><type>name </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>column_name</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>new_srid</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>UpdateRasterSRID</function></funcdef> <paramdef><type>name </type> "
+"<parameter>table_name</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>column_name</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>new_srid</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1060
+#, no-c-format
+msgid ""
+"Change the SRID of all rasters in the user-specified column and table. The "
+"function will drop all appropriate column constraints (extent, alignment and "
+"SRID) before changing the SRID of the specified column's rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1065
+#, no-c-format
+msgid ""
+"The data (band pixel values) of the rasters are not touched by this "
+"function. Only the raster's metadata is changed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1070 reference_raster.xml:1684
+#: reference_raster.xml:1785 reference_raster.xml:2235
+#: reference_raster.xml:2530 reference_raster.xml:2685
+#: reference_raster.xml:3234 reference_raster.xml:3284
+#: reference_raster.xml:3328 reference_raster.xml:3378
+#: reference_raster.xml:3535 reference_raster.xml:3632
+#: reference_raster.xml:3817 reference_raster.xml:3920
+#: reference_raster.xml:4016 reference_raster.xml:6261
+#: reference_raster.xml:6725 reference_raster.xml:6842
+#: reference_raster.xml:8116 reference_raster.xml:8401
+#: reference_raster.xml:8849 reference_raster.xml:8982
+#: reference_raster.xml:9033 reference_raster.xml:9270
+#: reference_raster.xml:9524 reference_raster.xml:9796
+#: reference_raster.xml:9883 reference_raster.xml:9964
+#: reference_raster.xml:10045 reference_raster.xml:10126
+#: reference_raster.xml:10339 reference_raster.xml:10419
+#: reference_raster.xml:10576 reference_raster.xml:10663
+#: reference_raster.xml:10758 reference_raster.xml:10851
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1082
+#, no-c-format
+msgid "ST_CreateOverview"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1083
+#, no-c-format
+msgid "Create an reduced resolution version of a given raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1091
+#, no-c-format
+msgid ""
+"<funcdef>regclass <function>ST_CreateOverview</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>factor</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algo='NearestNeighbor'</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1105
+#, no-c-format
+msgid ""
+"Create an overview table with resampled tiles from the source table. Output "
+"tiles will have the same size of input tiles and cover the same spatial "
+"extent with a lower resolution (pixel size will be 1/<varname>factor</"
+"varname> of the original in both directions)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1112
+#, no-c-format
+msgid ""
+"The overview table will be made available in the <varname>raster_overviews</"
+"varname> catalog and will have raster constraints enforced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1118 reference_raster.xml:1743
+#: reference_raster.xml:4726
+#, no-c-format
+msgid ""
+"Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', "
+"'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/"
+"gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1120 reference_raster.xml:1745
+#: reference_raster.xml:1944 reference_raster.xml:5005
+#: reference_raster.xml:5384
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_AddRasterConstraints\"/>, <xref linkend=\"RT_Raster_Overviews\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1135
+#, no-c-format
+msgid "Raster Constructors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1139
+#, no-c-format
+msgid "ST_AddBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1140
+#, no-c-format
+msgid ""
+"Returns a raster with the new band(s) of given type added with given initial "
+"value in the given index location. If no index is specified, the band is "
+"added to the end."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1146
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>(1) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>addbandarg[] </type> <parameter>addbandargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>(2) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(3) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(4) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(5) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>torast</parameter></"
+"paramdef> <paramdef><type>raster[] </type> <parameter>fromrasts</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>fromband=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>torastindex=at_end</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(6) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(7) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>index=at_end</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1211
+#, no-c-format
+msgid ""
+"Returns a raster with a new band added in given position (index), of given "
+"type, of given initial value, and of given nodata value. If no index is "
+"specified, the band is added to the end. If no <varname>fromband</varname> "
+"is specified, band 1 is assumed. Pixel type is a string representation of "
+"one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. "
+"If an existing index is specified all subsequent bands >= that index are "
+"incremented by 1. If an initial value greater than the max of the pixel type "
+"is specified, then the initial value is set to the highest value allowed by "
+"the pixel type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1215
+#, no-c-format
+msgid ""
+"For the variant that takes an array of <xref linkend=\"addbandarg\"/> "
+"(Variant 1), a specific addbandarg's index value is relative to the raster "
+"at the time when the band described by that addbandarg is being added to the "
+"raster. See the Multiple New Bands example below."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1219
+#, no-c-format
+msgid ""
+"For the variant that takes an array of rasters (Variant 5), if "
+"<varname>torast</varname> is NULL then the <varname>fromband</varname> band "
+"of each raster in the array is accumulated into a new raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1223
+#, no-c-format
+msgid ""
+"For the variants that take <varname>outdbfile</varname> (Variants 6 and 7), "
+"the value must include the full path to the raster file. The file must also "
+"be accessible to the postgres server process."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1227
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for addbandarg added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1228
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for new out-db bands added."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1232
+#, no-c-format
+msgid "Examples: Single New Band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1234
+#, no-c-format
+msgid ""
+"-- Add another band of type 8 bit unsigned integer with pixels initialized "
+"to 200\n"
+"UPDATE dummy_rast\n"
+"    SET rast = ST_AddBand(rast,'8BUI'::text,200)  \n"
+"WHERE rid = 1;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1236
+#, no-c-format
+msgid ""
+"-- Create an empty raster 100x100 units, with upper left  right at 0, add 2 "
+"bands (band 1 is 0/1 boolean bit switch, band2 allows values 0-15)\n"
+"-- uses addbandargs\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"    VALUES(10, ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 1, -1, 0, 0, "
+"0), \n"
+"        ARRAY[\n"
+"                ROW(1, '1BB'::text, 0, NULL),\n"
+"                ROW(2, '4BUI'::text, 0, NULL)\n"
+"                        ]::addbandarg[]\n"
+"     )\n"
+"    );\n"
+"    \n"
+"-- output meta data of raster bands to verify all is right --\n"
+"SELECT  (bmd).*\n"
+"FROM (SELECT ST_BandMetaData(rast,generate_series(1,2)) As bmd \n"
+"    FROM dummy_rast WHERE rid = 10) AS foo;\n"
+" --result --   \n"
+" pixeltype | nodatavalue | isoutdb | path\n"
+"-----------+----------------+-------------+---------+------\n"
+" 1BB       |             | f       |\n"
+" 4BUI      |             | f       |\n"
+" \n"
+" \n"
+"-- output meta data of raster -\n"
+"SELECT  (rmd).width, (rmd).height, (rmd).numbands\n"
+"FROM (SELECT ST_MetaData(rast) As rmd \n"
+"    FROM dummy_rast WHERE rid = 10) AS foo;\n"
+"-- result --\n"
+" upperleftx | upperlefty | width | height | scalex | scaley | skewx | skewy "
+"| srid | numbands\n"
+"------------+------------+-------+--------+------------+------------+-------"
+"+-------+------+----------\n"
+"          0 |          0 |   100 |    100 |      1 |     -1 |     0 |     0 "
+"|   0 |        2"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1240
+#, no-c-format
+msgid "Examples: Multiple New Bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1242
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                ARRAY[\n"
+"                        ROW(NULL, '8BUI', 255, 0),\n"
+"                        ROW(NULL, '16BUI', 1, 2),\n"
+"                        ROW(2, '32BUI', 100, 12),\n"
+"                        ROW(2, '32BF', 3.14, -1)\n"
+"                ]::addbandarg[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |           0 | f       | \n"
+"       2 | 32BF      |          -1 | f       | \n"
+"       3 | 32BUI     |          12 | f       | \n"
+"       4 | 16BUI     |           2 | f       |"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1244
+#, no-c-format
+msgid ""
+"-- Aggregate the 1st band of a table of like rasters into a single raster \n"
+"-- with as many bands as there are test_types and as many rows (new rasters) "
+"as there are mice\n"
+"-- NOTE: The ORDER BY test_type is only supported in PostgreSQL 9.0+\n"
+"-- for 8.4 and below it usually works to order your data in a subselect (but "
+"not guaranteed)\n"
+"-- The resulting raster will have a band for each test_type alphabetical by "
+"test_type\n"
+"-- For mouse lovers: No mice were harmed in this exercise\n"
+"SELECT\n"
+"        mouse,\n"
+"        ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1) As rast \n"
+"FROM mice_studies\n"
+"GROUP BY mouse;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1248
+#, no-c-format
+msgid "Examples: New Out-db band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1249
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                '/home/raster/mytestraster.tif'::text, NULL::int[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       2 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       3 | 8BUI      |             | t       | /home/raster/mytestraster.tif"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1254
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"RT_ST_MetaData\"/>, <xref "
+"linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1267
+#, no-c-format
+msgid "ST_AsRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1268
+#, no-c-format
+msgid "Converts a PostGIS geometry to a PostGIS raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1272
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>touched=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_AsRaster</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geom</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>ref</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>pixeltype=ARRAY['8BUI']</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>boolean </type> <parameter>touched=false</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>value=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>gridx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridy=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>pixeltype</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>upperleftx=NULL</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>upperlefty=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef><type>text[] </type> <parameter>pixeltype=ARRAY['8BUI']</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>value=ARRAY[1]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=ARRAY[0]</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>touched=false</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>value=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>value=ARRAY[1]</"
+"parameter></paramdef> <paramdef><type>double precision[] </type> "
+"<parameter>nodataval=ARRAY[0]</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>upperleftx=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>upperlefty=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>touched=false</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1420
+#, no-c-format
+msgid ""
+"Converts a PostGIS geometry to a PostGIS raster. The many variants offers "
+"three groups of possibilities for setting the alignment and pixelsize of the "
+"resulting raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1422
+#, no-c-format
+msgid ""
+"The first group, composed of the two first variants, produce a raster having "
+"the same alignment (<varname>scalex</varname>, <varname>scaley</varname>, "
+"<varname>gridx</varname> and <varname>gridy</varname>), pixel type and "
+"nodata value as the provided reference raster. You generally pass this "
+"reference raster by joining the table containing the geometry with the table "
+"containing the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1424
+#, no-c-format
+msgid ""
+"The second group, composed of four variants, let you set the dimensions of "
+"the raster by providing the parameters of a pixel size (<varname>scalex</"
+"varname> & <varname>scaley</varname> and <varname>skewx</varname> & "
+"<varname>skewy</varname>). The <varname>width</varname> & "
+"<varname>height</varname> of the resulting raster will be adjusted to fit "
+"the extent of the geometry. In most cases, you must cast integer "
+"<varname>scalex</varname> & <varname>scaley</varname> arguments to "
+"double precision so that PostgreSQL choose the right variant."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1426
+#, no-c-format
+msgid ""
+"The third group, composed of four variants, let you fix the dimensions of "
+"the raster by providing the dimensions of the raster (<varname>width</"
+"varname> & <varname>height</varname>). The parameters of the pixel size "
+"(<varname>scalex</varname> & <varname>scaley</varname> and "
+"<varname>skewx</varname> & <varname>skewy</varname>) of the resulting "
+"raster will be adjusted to fit the extent of the geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1428
+#, no-c-format
+msgid ""
+"The two first variants of each of those two last groups let you specify the "
+"alignment with an arbitrary corner of the alignment grid (<varname>gridx</"
+"varname> & <varname>gridy</varname>) and the two last variants takes the "
+"upper left corner (<varname>upperleftx</varname> & <varname>upperlefty</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1430
+#, no-c-format
+msgid ""
+"Each group of variant allows producing a one band raster or a multiple bands "
+"raster. To produce a multiple bands raster, you must provide an array of "
+"pixel types (<varname>pixeltype[]</varname>), an array of initial values "
+"(<varname>value</varname>) and an array of nodata values "
+"(<varname>nodataval</varname>). If not provided pixeltyped defaults to 8BUI, "
+"values to 1 and nodataval to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1432
+#, no-c-format
+msgid ""
+"The output raster will be in the same spatial reference as the source "
+"geometry. The only exception is for variants with a reference raster. In "
+"this case the resulting raster will get the same SRID as the reference "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1434
+#, no-c-format
+msgid ""
+"The optional <varname>touched</varname> parameter defaults to false and maps "
+"to the GDAL ALL_TOUCHED rasterization option, which determines if pixels "
+"touched by lines or polygons will be burned. Not just those on the line "
+"render path, or whose center point is within the polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1436
+#, no-c-format
+msgid ""
+"This is particularly useful for rendering jpegs and pngs of geometries "
+"directly from the database when using in combination with <xref linkend="
+"\"RT_ST_AsPNG\"/> and other <xref linkend=\"RT_ST_AsGDALRaster\"/> family of "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1440
+#, no-c-format
+msgid ""
+"Not yet capable of rendering complex geometry types such as curves, TINS, "
+"and PolyhedralSurfaces, but should be able too once GDAL can."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1445
+#, no-c-format
+msgid "Examples: Output geometries as PNG files"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1451
+#, no-c-format
+msgid "black circle"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1454
+#, no-c-format
+msgid ""
+"-- this will output a black circle taking up 150 x 150 pixels --\n"
+"SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10),150, 150, '2BUI'));"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1461
+#, no-c-format
+msgid "example from buffer rendered with just PostGIS"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1465
+#, no-c-format
+msgid ""
+"-- the bands map to RGB bands - the value (118,154,118) - teal  --\n"
+"SELECT ST_AsPNG(\n"
+"        ST_AsRaster(\n"
+"                ST_Buffer(\n"
+"                        ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), "
+"10,'join=bevel'), \n"
+"                        200,200,ARRAY['8BUI', '8BUI', '8BUI'], "
+"ARRAY[118,154,118], ARRAY[0,0,0]));"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1471
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, "
+"<xref linkend=\"RT_ST_AsJPEG\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1477
+#, no-c-format
+msgid "ST_Band"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1478
+#, no-c-format
+msgid ""
+"Returns one or more bands of an existing raster as a new raster. Useful for "
+"building new rasters from existing rasters."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1482
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = "
+"ARRAY[1]</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Band</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>nbands</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>character </type> "
+"<parameter>delimiter=,</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1507
+#, no-c-format
+msgid ""
+"Returns one or more bands of an existing raster as a new raster. Useful for "
+"building new rasters from existing rasters or export of only selected bands "
+"of a raster or rearranging the order of bands in a raster. If no band is "
+"specified, band 1 is assumed. Used as a helper function in various functions "
+"such as for deleting a band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1509
+#, no-c-format
+msgid ""
+"For the <code>nbands</code> as text variant of function, the default "
+"delimiter is <code>,</code> which means you can ask for <code>'1,2,3'</code> "
+"and if you wanted to use a different delimeter you would do "
+"<code>ST_Band(rast, '1 at 2@3', '@')</code>. For asking for multiple bands, we "
+"strongly suggest you use the array form of this function e.g. "
+"<code>ST_Band(rast, '{1,2,3}'::int[]);</code> since the <code>text</code> "
+"list of bands form may be removed in future versions of PostGIS."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1517
+#, no-c-format
+msgid ""
+"-- Make 2 new rasters: 1 containing band 1 of dummy, second containing band "
+"2 of dummy and then reclassified as a 2BUI\n"
+"SELECT ST_NumBands(rast1) As numb1, ST_BandPixelType(rast1) As pix1, \n"
+" ST_NumBands(rast2) As numb2,  ST_BandPixelType(rast2) As pix2\n"
+"FROM (\n"
+"    SELECT ST_Band(rast) As rast1, ST_Reclass(ST_Band(rast,3), '100-200):1, "
+"[200-254:2', '2BUI') As rast2\n"
+"        FROM dummy_rast\n"
+"        WHERE rid = 2) As foo;\n"
+"        \n"
+" numb1 | pix1 | numb2 | pix2\n"
+"-------+------+-------+------\n"
+"     1 | 8BUI |     1 | 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1519
+#, no-c-format
+msgid ""
+"-- Return bands 2 and 3. Using array cast syntax\n"
+"SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"num_bands\n"
+"----------\n"
+"2\n"
+"    \n"
+"-- Return bands 2 and 3. Use array to define bands\n"
+"SELECT ST_NumBands(ST_Band(rast, ARRAY[2,3])) As num_bands\n"
+"    FROM dummy_rast \n"
+"WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1529
+#, no-c-format
+msgid "original (column rast)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1538
+#, no-c-format
+msgid "dupe_band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1547
+#, no-c-format
+msgid "sing_band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1555
+#, no-c-format
+msgid ""
+"--Make a new raster with 2nd band of original and 1st band repeated twice,\n"
+"and another with just the third band\n"
+"SELECT rast, ST_Band(rast, ARRAY[2,1,1]) As dupe_band,  \n"
+"        ST_Band(rast, 3) As sing_band \n"
+"FROM samples.than_chunked \n"
+"WHERE rid=35;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1561
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, "
+"<xref linkend=\"RT_reference\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1567
+#, no-c-format
+msgid "ST_MakeEmptyRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1568
+#, no-c-format
+msgid ""
+"Returns an empty raster (having no bands) of given dimensions (width & "
+"height), upperleft X and Y, pixel size and rotation (scalex, scaley, skewx "
+"& skewy) and reference system (srid). If a raster is passed in, returns "
+"a new raster with the same size, alignment and SRID. If srid is left out, "
+"the spatial ref is set to unknown (0)."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1572
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MakeEmptyRaster</function></funcdef> <paramdef><type>integer </"
+"type> <parameter>width</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>height</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperleftx</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>upperlefty</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef><type>float8 </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>float8 </type> "
+"<parameter>skewy</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</"
+"function></funcdef> <paramdef><type>integer </type> <parameter>width</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>height</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperlefty</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>pixelsize</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1602
+#, no-c-format
+msgid ""
+"Returns an empty raster (having no band) of given dimensions (width & "
+"height) and georeferenced in spatial (or world) coordinates with upper left "
+"X (upperleftx), upper left Y (upperlefty), pixel size and rotation (scalex, "
+"scaley, skewx & skewy) and reference system (srid)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1605
+#, no-c-format
+msgid ""
+"The last version use a single parameter to specify the pixel size "
+"(pixelsize). scalex is set to this argument and scaley is set to the "
+"negative value of this argument. skewx and skewy are set to 0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1607
+#, no-c-format
+msgid ""
+"If an existing raster is passed in, it returns a new raster with the same "
+"meta data settings (without the bands)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1609
+#, no-c-format
+msgid ""
+"If no srid is specified it defaults to 0. After you create an empty raster "
+"you probably want to add bands to it and maybe edit it. Refer to <xref "
+"linkend=\"RT_ST_AddBand\"/> to define bands and <xref linkend="
+"\"RT_ST_SetValue\"/> to set initial pixel values."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1616
+#, no-c-format
+msgid ""
+"INSERT INTO dummy_rast(rid,rast)\n"
+"VALUES(3, ST_MakeEmptyRaster( 100, 100, 0.0005, 0.0005, 1, 1, 0, 0, "
+"4326) );\n"
+"\n"
+"--use an existing raster as template for new raster\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"SELECT 4, ST_MakeEmptyRaster(rast)\n"
+"FROM dummy_rast WHERE rid = 3;\n"
+"\n"
+"-- output meta data of rasters we just added\n"
+"SELECT rid, (md).*\n"
+"FROM (SELECT rid, ST_MetaData(rast) As md \n"
+"        FROM dummy_rast\n"
+"        WHERE rid IN(3,4)) As foo;\n"
+"        \n"
+"-- output --\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands\n"
+"-----+------------+------------+-------+--------+------------+------------"
+"+-------+-------+------+----------\n"
+"   3 |     0.0005 |     0.0005 |   100 |    100 |          1 |          1 "
+"|    0  |     0 | 4326 |        0\n"
+"   4 |     0.0005 |     0.0005 |   100 |    100 |          1 |          1 "
+"|    0  |     0 | 4326 |        0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1622
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MetaData\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, "
+"<xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_SetValue\"/>, <xref "
+"linkend=\"RT_ST_SkewX\"/>, , <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1629
+#, no-c-format
+msgid "ST_Tile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1630
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a set of rasters resulting from the split of the input "
+"raster based upon the desired dimensions of the output rasters.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1634
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>int[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof raster "
+"<function>ST_Tile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>padwithnodata=FALSE</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1670
+#, no-c-format
+msgid ""
+"<para>Returns a set of rasters resulting from the split of the input raster "
+"based upon the desired dimensions of the output rasters.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1674
+#, no-c-format
+msgid ""
+"If <varname>padwithnodata</varname> = FALSE, edge tiles on the right and "
+"bottom sides of the raster may have different dimensions than the rest of "
+"the tiles. If <varname>padwithnodata</varname> = TRUE, all tiles will have "
+"the same dimensions with the possibilty that edge tiles being padded with "
+"NODATA values. If raster band(s) do not have NODATA value(s) specified, one "
+"can be specified by setting <varname>nodataval</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1679
+#, no-c-format
+msgid ""
+"If a specified band of the input raster is out-of-db, the corresponding band "
+"in the output rasters will also be out-of-db."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1690
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{1,1,1},{1,1,1},{1,1,1}}\")\n"
+" (2,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{2,2,2},{2,2,2},{2,2,2}}\")\n"
+" (2,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{3,3,3},{3,3,3},{3,3,3}}\")\n"
+" (2,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{4,4,4},{4,4,4},{4,4,4}}\")\n"
+" (2,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{5,5,5},{5,5,5},{5,5,5}}\")\n"
+" (2,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{6,6,6},{6,6,6},{6,6,6}}\")\n"
+" (2,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{7,7,7},{7,7,7},{7,7,7}}\")\n"
+" (2,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{8,8,8},{8,8,8},{8,8,8}}\")\n"
+" (2,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{9,9,9},{9,9,9},{9,9,9}}\")\n"
+" (2,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(18 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1692
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, 2) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(9 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1698
+#, no-c-format
+msgid ", <xref linkend=\"RT_Retile\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1708
+#, no-c-format
+msgid "ST_Retile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1709
+#, no-c-format
+msgid ""
+"Return a set of configured tiles from an arbitrarily tiled raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1717
+#, no-c-format
+msgid ""
+"<funcdef>SETOF raster <function>ST_Retile</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>ext</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfx</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfy</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>tw</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>th</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algo='NearestNeighbor'</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1735
+#, no-c-format
+msgid ""
+"Return a set of tiles having the specified scale (<varname>sfx</varname>, "
+"<varname>sfy</varname>) and max size (<varname>tw</varname>, <varname>th</"
+"varname>) and covering the specified extent (<varname>ext</varname>) with "
+"data coming from the specified raster coverage (<varname>tab</varname>, "
+"<varname>col</varname>)."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1759
+#, no-c-format
+msgid "ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1760
+#, no-c-format
+msgid "Returns a raster from a supported GDAL raster file."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1765
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_FromGDALRaster</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>gdaldata</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=NULL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1777
+#, no-c-format
+msgid ""
+"Returns a raster from a supported GDAL raster file. <varname>gdaldata</"
+"varname> is of type bytea and should be the contents of the GDAL raster file."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1781
+#, no-c-format
+msgid ""
+"If <varname>srid</varname> is NULL, the function will try to autmatically "
+"assign the SRID from the GDAL raster. If <varname>srid</varname> is "
+"provided, the value provided will override any automatically assigned SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT "
+"ST_AsPNG(ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, "
+"0.1, -0.1, 0, 0, 4326), 1, '8BUI', 1, 0), 2, '8BUI', 2, 0), 3, '8BUI', 3, "
+"0)) AS png\n"
+"),\n"
+"bar AS (\n"
+"        SELECT 1 AS rid, ST_FromGDALRaster(png) AS rast FROM foo\n"
+"        UNION ALL\n"
+"        SELECT 2 AS rid, ST_FromGDALRaster(png, 3310) AS rast FROM foo\n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        ST_Metadata(rast) AS metadata,\n"
+"        ST_SummaryStats(rast, 1) AS stats1,\n"
+"        ST_SummaryStats(rast, 2) AS stats2,\n"
+"        ST_SummaryStats(rast, 3) AS stats3\n"
+"FROM bar\n"
+"ORDER BY rid;\n"
+"\n"
+" rid |         metadata          |    stats1     |    stats2     |     "
+"stats3     \n"
+"-----+---------------------------+---------------+---------------"
+"+----------------\n"
+"   1 | (0,0,2,2,1,-1,0,0,0,3)    | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"   2 | (0,0,2,2,1,-1,0,0,3310,3) | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1806
+#, no-c-format
+msgid "Raster Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1810
+#, no-c-format
+msgid "ST_GeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1811
+#, no-c-format
+msgid ""
+"Returns the georeference meta data in GDAL or ESRI format as commonly seen "
+"in a world file. Default is GDAL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1816
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoReference</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1827
+#, no-c-format
+msgid ""
+"Returns the georeference meta data including carriage return in GDAL or ESRI "
+"format as commonly seen in a <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">world file</ulink>. Default is GDAL if no type specified. type "
+"is string 'GDAL' or 'ESRI'."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1829 reference_raster.xml:4065
+#, no-c-format
+msgid "Difference between format representations is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1830 reference_raster.xml:4066
+#, no-c-format
+msgid "<varname>GDAL</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1831
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx\n"
+"upperlefty"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1832 reference_raster.xml:4068
+#, no-c-format
+msgid "<varname>ESRI</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1833
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx + scalex*0.5\n"
+"upperlefty + scaley*0.5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1839
+#, no-c-format
+msgid ""
+"SELECT ST_GeoReference(rast, 'ESRI') As esri_ref, ST_GeoReference(rast, "
+"'GDAL') As gdal_ref\n"
+" FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"   esri_ref   |   gdal_ref\n"
+"--------------+--------------\n"
+" 2.0000000000 | 2.0000000000\n"
+" 0.0000000000 : 0.0000000000\n"
+" 0.0000000000 : 0.0000000000\n"
+" 3.0000000000 : 3.0000000000\n"
+" 1.5000000000 : 0.5000000000\n"
+" 2.0000000000 : 0.5000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1844
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1850
+#, no-c-format
+msgid "ST_Height"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1851
+#, no-c-format
+msgid "Returns the height of the raster in pixels."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1856
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Height</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1866
+#, no-c-format
+msgid "Returns the height of the raster."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1872
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Height(rast) As rastheight\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastheight\n"
+"-----+------------\n"
+"   1 |         20\n"
+"   2 |          5"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1884
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1885
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1890
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1900
+#, no-c-format
+msgid ""
+"<para>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1908
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"f          |\n"
+"                       \n"
+"                        \n"
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"t          |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1920
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1922
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the raster takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1927
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1937
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the raster takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1938
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1939
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables. "
+"pg_column_size might return lower because it returns the compressed size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1941
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1951
+#, no-c-format
+msgid ""
+"SELECT ST_MemSize(ST_AsRaster(ST_Buffer(ST_Point(1,5),10,1000),150, 150, "
+"'8BUI')) As rast_mem;\n"
+"                \n"
+"                rast_mem\n"
+"                --------\n"
+"                22568"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1964
+#, no-c-format
+msgid "ST_MetaData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1965
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster object such as pixel size, rotation "
+"(skew), upper, lower left, etc."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1970
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_MetaData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1980
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster object such as pixel size, rotation "
+"(skew), upper, lower left, etc. Columns returned: upperleftx | upperlefty | "
+"width | height | scalex | scaley | skewx | skewy | srid | numbands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1987
+#, no-c-format
+msgid ""
+"SELECT rid, (foo.md).*  \n"
+" FROM (SELECT rid, ST_MetaData(rast) As md\n"
+"FROM dummy_rast) As foo;\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands\n"
+" ----+------------+------------+-------+--------+--------+-----------+-------"
+"+-------+------+-------\n"
+"   1 |        0.5 |        0.5 |    10 |     20 |      2 |      3 "
+"|                0 |     0 |    0 |        0\n"
+"   2 | 3427927.75 |    5793244 |     5 |      5 |   0.05 |  -0.05 "
+"|                0 |     0 |    0 |        3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1993 reference_raster.xml:4844
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_NumBands\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1999
+#, no-c-format
+msgid "ST_NumBands"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2000
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the number of bands in the raster object.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2005
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_NumBands</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2015
+#, no-c-format
+msgid "<para>Returns the number of bands in the raster object.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2021
+#, no-c-format
+msgid ""
+"SELECT rid, ST_NumBands(rast) As numbands\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid | numbands\n"
+"----+----------\n"
+"  1 |        0\n"
+"  2 |        3"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2033
+#, no-c-format
+msgid "ST_PixelHeight"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2034
+#, no-c-format
+msgid ""
+"Returns the pixel height in geometric units of the spatial reference system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2039
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_PixelHeight</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2049
+#, no-c-format
+msgid ""
+"Returns the height of a pixel in geometric units of the spatial reference "
+"system. In the common case where there is no skew, the pixel height is just "
+"the scale ratio between geometric coordinates and raster pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2051
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"RT_ST_PixelWidth\"/> for a diagrammatic "
+"visualization of the relationship."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2055 reference_raster.xml:2115
+#, no-c-format
+msgid "Examples: Rasters with no skew"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2057
+#, no-c-format
+msgid ""
+"SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
+" ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) As "
+"skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"FROM dummy_rast;\n"
+"\n"
+" rastheight | pixheight | scalex | scaley | skewx | skewy\n"
+"------------+-----------+--------+--------+-------+----------\n"
+"         20 |         3 |      2 |      3 |     0 |        0\n"
+"          5 |      0.05 |   0.05 |  -0.05 |     0 |        0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2062 reference_raster.xml:2122
+#, no-c-format
+msgid "Examples: Rasters with skew different than 0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2064
+#, no-c-format
+msgid ""
+"SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
+" ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) As "
+"skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"FROM (SELECT ST_SetSKew(rast,0.5,0.5) As rast\n"
+"        FROM dummy_rast) As skewed;\n"
+"\n"
+"rastheight |     pixheight     | scalex | scaley | skewx | skewy\n"
+"-----------+-------------------+--------+--------+-------+----------\n"
+"        20 |  3.04138126514911 |      2 |      3 |   0.5 |      0.5\n"
+"         5 | 0.502493781056044 |   0.05 |  -0.05 |   0.5 |      0.5"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2071 reference_raster.xml:2131
+#: reference_raster.xml:4124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2083
+#, no-c-format
+msgid "ST_PixelWidth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2084
+#, no-c-format
+msgid ""
+"Returns the pixel width in geometric units of the spatial reference system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2089
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_PixelWidth</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2099
+#, no-c-format
+msgid ""
+"Returns the width of a pixel in geometric units of the spatial reference "
+"system. In the common case where there is no skew, the pixel width is just "
+"the scale ratio between geometric coordinates and raster pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2101
+#, no-c-format
+msgid "The following diagram demonstrates the relationship:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2108
+#, no-c-format
+msgid "Pixel Width: Pixel size in the i direction"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2108
+#, no-c-format
+msgid "Pixel Height: Pixel size in the j direction"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2117
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
+"        ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) "
+"As skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"        FROM dummy_rast;\n"
+"        \n"
+"        rastwidth | pixwidth | scalex | scaley | skewx | skewy\n"
+"        -----------+----------+--------+--------+-------+----------\n"
+"        10 |        2 |      2 |      3 |     0 |        0\n"
+"         5 |     0.05 |   0.05 |  -0.05 |     0 |        0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2124
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
+"        ST_ScaleX(rast) As scalex, ST_ScaleY(rast) As scaley, ST_SkewX(rast) "
+"As skewx,\n"
+"        ST_SkewY(rast) As skewy\n"
+"        FROM (SELECT ST_SetSkew(rast,0.5,0.5) As rast\n"
+"        FROM dummy_rast) As skewed;\n"
+"        \n"
+"        rastwidth |     pixwidth      | scalex | scaley | skewx | skewy\n"
+"        -----------+-------------------+--------+--------+-------"
+"+----------\n"
+"        10 |  2.06155281280883 |      2 |      3 |   0.5 |      0.5\n"
+"         5 | 0.502493781056044 |   0.05 |  -0.05 |   0.5 |      0.5"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2137
+#, no-c-format
+msgid "ST_ScaleX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2138
+#, no-c-format
+msgid ""
+"Returns the X component of the pixel width in units of coordinate reference "
+"system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2143
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_ScaleX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2153
+#, no-c-format
+msgid ""
+"Returns the X component of the pixel width in units of coordinate reference "
+"system. Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file"
+"\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2155
+#, no-c-format
+msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeX."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2161
+#, no-c-format
+msgid ""
+"SELECT rid, ST_ScaleX(rast) As rastpixwidth\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastpixwidth\n"
+"-----+--------------\n"
+"   1 |            2\n"
+"   2 |         0.05"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2174
+#, no-c-format
+msgid "ST_ScaleY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2175
+#, no-c-format
+msgid ""
+"Returns the Y component of the pixel height in units of coordinate reference "
+"system."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2180
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_ScaleY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2190
+#, no-c-format
+msgid ""
+"Returns the Y component of the pixel height in units of coordinate reference "
+"system. May be negative. Refer to <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2193
+#, no-c-format
+msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeY."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2199
+#, no-c-format
+msgid ""
+"SELECT rid, ST_ScaleY(rast) As rastpixheight\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | rastpixheight\n"
+"-----+---------------\n"
+"   1 |             3\n"
+"   2 |         -0.05"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2212
+#, no-c-format
+msgid "ST_RasterToWorldCoord"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2213
+#, no-c-format
+msgid ""
+"Returns the raster's upper left corner as geometric X and Y (longitude and "
+"latitude) given a column and row. Column and row starts at 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2218
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_RasterToWorldCoord</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>yrow</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2230
+#, no-c-format
+msgid ""
+"Returns the upper left corner as geometric X and Y (longitude and latitude) "
+"given a column and row. Returned X and Y are in geometric units of the "
+"georeferenced raster. Numbering of column and row starts at 1 but if either "
+"parameter is passed a zero, a negative number or a number greater than the "
+"respective dimension of the raster, it will return coordinates outside of "
+"the raster assuming the raster's grid is applicable outside the raster's "
+"bounds."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2242
+#, no-c-format
+msgid ""
+"-- non-skewed raster\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_RasterToWorldCoord(rast,1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast,2, 2)).*\n"
+"FROM dummy_rast\n"
+"\n"
+" rid | longitude  | latitude | longitude |  latitude  \n"
+"-----+------------+----------+-----------+------------\n"
+"   1 |        0.5 |      0.5 |       2.5 |        3.5\n"
+"   2 | 3427927.75 |  5793244 | 3427927.8 | 5793243.95"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2244
+#, no-c-format
+msgid ""
+"-- skewed raster\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_RasterToWorldCoord(rast, 1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast, 2, 3)).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                rid,\n"
+"                ST_SetSkew(rast, 100.5, 0) As rast\n"
+"        FROM dummy_rast\n"
+") As foo\n"
+"\n"
+" rid | longitude  | latitude | longitude | latitude  \n"
+"-----+------------+----------+-----------+-----------\n"
+"   1 |        0.5 |      0.5 |     203.5 |       6.5\n"
+"   2 | 3427927.75 |  5793244 | 3428128.8 | 5793243.9"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2251
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2261
+#, no-c-format
+msgid "ST_RasterToWorldCoordX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2262
+#, no-c-format
+msgid ""
+"Returns the geometric X coordinate upper left of a raster, column and row. "
+"Numbering of columns and rows starts at 1."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2267
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordX</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_RasterToWorldCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2285
+#, no-c-format
+msgid ""
+"Returns the upper left X coordinate of a raster column row in geometric "
+"units of the georeferenced raster. Numbering of columns and rows starts at 1 "
+"but if you pass in a negative number or number higher than number of columns "
+"in raster, it will give you coordinates outside of the raster file to left "
+"or right with the assumption that the skew and pixel sizes are same as "
+"selected raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2290
+#, no-c-format
+msgid ""
+"For non-skewed rasters, providing the X column is sufficient. For skewed "
+"rasters, the georeferenced coordinate is a function of the ST_ScaleX and "
+"ST_SkewX and row and column. An error will be raised if you give just the X "
+"column for a skewed raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2294
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordX"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2301
+#, no-c-format
+msgid ""
+"-- non-skewed raster providing column is "
+"sufficient                                        \n"
+"SELECT rid, ST_RasterToWorldCoordX(rast,1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast,2) As x2coord,\n"
+"        ST_ScaleX(rast) As pixelx\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |  x1coord   |  x2coord  | pixelx\n"
+"-----+------------+-----------+--------\n"
+"   1 |        0.5 |       2.5 |      2\n"
+"   2 | 3427927.75 | 3427927.8 |   0.05"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2303
+#, no-c-format
+msgid ""
+"-- for fun lets skew it                                \n"
+"SELECT rid, ST_RasterToWorldCoordX(rast, 1, 1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast, 2, 3) As x2coord,\n"
+"        ST_ScaleX(rast) As pixelx\n"
+"FROM (SELECT rid, ST_SetSkew(rast, 100.5, 0) As rast FROM dummy_rast) As "
+"foo;\n"
+"\n"
+" rid |  x1coord   |  x2coord  | pixelx\n"
+"-----+------------+-----------+--------\n"
+"   1 |        0.5 |     203.5 |      2\n"
+"   2 | 3427927.75 | 3428128.8 |   0.05"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2310
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2316
+#, no-c-format
+msgid "ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2317
+#, no-c-format
+msgid ""
+"Returns the geometric Y coordinate upper left corner of a raster, column and "
+"row. Numbering of columns and rows starts at 1."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2322
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordY</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
+"<function>ST_RasterToWorldCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>yrow</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2340
+#, no-c-format
+msgid ""
+"Returns the upper left Y coordinate of a raster column row in geometric "
+"units of the georeferenced raster. Numbering of columns and rows starts at 1 "
+"but if you pass in a negative number or number higher than number of columns/"
+"rows in raster, it will give you coordinates outside of the raster file to "
+"left or right with the assumption that the skew and pixel sizes are same as "
+"selected raster tile."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2345
+#, no-c-format
+msgid ""
+"For non-skewed rasters, providing the Y column is sufficient. For skewed "
+"rasters, the georeferenced coordinate is a function of the ST_ScaleY and "
+"ST_SkewY and row and column. An error will be raised if you give just the Y "
+"row for a skewed raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2349
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordY"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2355
+#, no-c-format
+msgid ""
+"-- non-skewed raster providing row is "
+"sufficient                                        \n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,3) As y2coord,\n"
+"        ST_ScaleY(rast) As pixely\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | y1coord |  y2coord  | pixely\n"
+"-----+---------+-----------+--------\n"
+"   1 |     0.5 |       6.5 |      3\n"
+"   2 | 5793244 | 5793243.9 |  -0.05"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2357
+#, no-c-format
+msgid ""
+"-- for fun lets skew it                                \n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,2,3) As y2coord,\n"
+"        ST_ScaleY(rast) As pixely\n"
+"FROM (SELECT rid, ST_SetSkew(rast,0,100.5) As rast FROM dummy_rast) As foo;\n"
+"\n"
+" rid | y1coord |  y2coord  | pixely\n"
+"-----+---------+-----------+--------\n"
+"   1 |     0.5 |       107 |      3\n"
+"   2 | 5793244 | 5793344.4 |  -0.05"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2364
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2370
+#, no-c-format
+msgid "ST_Rotation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2371
+#, no-c-format
+msgid "Returns the rotation of the raster in radian."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2376
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_Rotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2386
+#, no-c-format
+msgid ""
+"Returns the uniform rotation of the raster in radian. If a raster does not "
+"have uniform rotation, NaN is returned. Refer to <ulink url=\"http://en."
+"wikipedia.org/wiki/World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2393
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Rotation(ST_SetScale(ST_SetSkew(rast, sqrt(2)), sqrt(2))) as "
+"rot FROM dummy_rast;\n"
+"\n"
+" rid |        rot \n"
+"-----+-------------------\n"
+"   1 | 0.785398163397448\n"
+"   2 | 0.785398163397448"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2399
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetScale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2405
+#, no-c-format
+msgid "ST_SkewX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2406
+#, no-c-format
+msgid "Returns the georeference X skew (or rotation parameter)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2411
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SkewX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2421
+#, no-c-format
+msgid ""
+"Returns the georeference X skew (or rotation parameter). Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2428 reference_raster.xml:2464
+#, no-c-format
+msgid ""
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | skewx | skewy |       georef\n"
+"-----+-------+-------+--------------------\n"
+"   1 |     0 |     0 | 2.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 3.0000000000\n"
+"                     : 0.5000000000\n"
+"                     : 0.5000000000\n"
+"                     :\n"
+"   2 |     0 |     0 | 0.0500000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : -0.0500000000\n"
+"                     : 3427927.7500000000\n"
+"                     : 5793244.0000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2435
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2441
+#, no-c-format
+msgid "ST_SkewY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2442
+#, no-c-format
+msgid "Returns the georeference Y skew (or rotation parameter)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2447
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SkewY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2457
+#, no-c-format
+msgid ""
+"Returns the georeference Y skew (or rotation parameter). Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2471
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2477
+#, no-c-format
+msgid "ST_SRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2478
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier of the raster as defined in "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2483
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_SRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2493
+#, no-c-format
+msgid ""
+"Returns the spatial reference identifier of the raster object as defined in "
+"the spatial_ref_sys table."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2494
+#, no-c-format
+msgid ""
+"From PostGIS 2.0+ the srid of a non-georeferenced raster/geometry is 0 "
+"instead of the prior -1."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2500
+#, no-c-format
+msgid ""
+"SELECT ST_SRID(rast) As srid\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"srid\n"
+"----------------\n"
+"0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2512
+#, no-c-format
+msgid "ST_Summary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2513
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the raster.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2518
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2528
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the raster.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2535
+#, no-c-format
+msgid ""
+"SELECT ST_Summary(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, "
+"0, 0)\n"
+"                                , 1, '8BUI', 1, 0\n"
+"                        )\n"
+"                        , 2, '32BF', 0, -9999\n"
+"                )\n"
+"                , 3, '16BSI', 0, NULL\n"
+"        )\n"
+");\n"
+"\n"
+"                            st_summary                            \n"
+"------------------------------------------------------------------\n"
+" Raster of 10x10 pixels has 3 bands and extent of BOX(0 -10,10 0)+\n"
+"     band 1 of pixtype 8BUI is in-db with NODATA value of 0      +\n"
+"     band 2 of pixtype 32BF is in-db with NODATA value of -9999  +\n"
+"     band 3 of pixtype 16BSI is in-db with no NODATA value\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2540
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandMetaData\"/>, <xref linkend=\"ST_Summary\"/> "
+"<xref linkend=\"ST_Extent\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2551
+#, no-c-format
+msgid "ST_UpperLeftX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2552
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the upper left X coordinate of raster in projected "
+"spatial ref.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2557
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_UpperLeftX</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2567
+#, no-c-format
+msgid ""
+"<para>Returns the upper left X coordinate of raster in projected spatial ref."
+"</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2573
+#, no-c-format
+msgid ""
+"SELECt rid, ST_UpperLeftX(rast) As ulx\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |    ulx\n"
+"-----+------------\n"
+"   1 |        0.5\n"
+"   2 | 3427927.75"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2579 reference_raster.xml:2613
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2585
+#, no-c-format
+msgid "ST_UpperLeftY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2586
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the upper left Y coordinate of raster in projected "
+"spatial ref.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2591
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_UpperLeftY</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2601
+#, no-c-format
+msgid ""
+"<para>Returns the upper left Y coordinate of raster in projected spatial ref."
+"</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2607
+#, no-c-format
+msgid ""
+"SELECT rid, ST_UpperLeftY(rast) As uly\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |   uly\n"
+"-----+---------\n"
+"   1 |     0.5\n"
+"   2 | 5793244"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2619
+#, no-c-format
+msgid "ST_Width"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2620
+#, no-c-format
+msgid "<refpurpose>Returns the width of the raster in pixels.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2625
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Width</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2635
+#, no-c-format
+msgid "<para>Returns the width of the raster in pixels.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2641
+#, no-c-format
+msgid ""
+"SELECT ST_Width(rast) As rastwidth\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"rastwidth\n"
+"----------------\n"
+"10"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2655
+#, no-c-format
+msgid "ST_WorldToRasterCoord"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2656
+#, no-c-format
+msgid ""
+"Returns the upper left corner as column and row given geometric X and Y "
+"(longitude and latitude) or a point geometry expressed in the spatial "
+"reference coordinate system of the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2660
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>record <function>ST_WorldToRasterCoord</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>record "
+"<function>ST_WorldToRasterCoord</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>longitude</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>latitude</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2679
+#, no-c-format
+msgid ""
+"Returns the upper left corner as column and row given geometric X and Y "
+"(longitude and latitude) or a point geometry. This function works regardless "
+"of whether or not the geometric X and Y or point geometry is outside the "
+"extent of the raster. Geometric X and Y must be expressed in the spatial "
+"reference coordinate system of the raster."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2692
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        rid,\n"
+"        (ST_WorldToRasterCoord(rast,3427927.8,20.5)).*,\n"
+"        (ST_WorldToRasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',"
+"ST_SRID(rast)))).*\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | columnx |   rowy    | columnx |   rowy    \n"
+"-----+---------+-----------+---------+-----------\n"
+"   1 | 1713964 |         7 | 1713964 |         7\n"
+"   2 |       2 | 115864471 |       2 | 115864471"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2698
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_WorldToRasterCoordY\"/>, <xref linkend="
+"\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend=\"RT_ST_RasterToWorldCoordY\"/"
+">, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2710
+#, no-c-format
+msgid "ST_WorldToRasterCoordX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2711
+#, no-c-format
+msgid ""
+"Returns the column in the raster of the point geometry (pt) or a X and Y "
+"world coordinate (xw, yw) represented in world spatial reference system of "
+"raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2716
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordX</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2741
+#, no-c-format
+msgid ""
+"Returns the column in the raster of the point geometry (pt) or a X and Y "
+"world coordinate (xw, yw). A point, or (both xw and yw world coordinates are "
+"required if a raster is skewed). If a raster is not skewed then xw is "
+"sufficient. World coordinates are in the spatial reference coordinate system "
+"of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2743
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordX"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2749
+#, no-c-format
+msgid ""
+"SELECT rid, ST_WorldToRasterCoordX(rast,3427927.8) As xcoord, \n"
+"                ST_WorldToRasterCoordX(rast,3427927.8,20.5) As "
+"xcoord_xwyw, \n"
+"                ST_WorldToRasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 "
+"20.5)',ST_SRID(rast))) As ptxcoord\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid | xcoord  |  xcoord_xwyw   | ptxcoord\n"
+"-----+---------+---------+----------\n"
+"   1 | 1713964 | 1713964 |  1713964\n"
+"   2 |       1 |       1 |        1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2755 reference_raster.xml:2810
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SRID"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2765
+#, no-c-format
+msgid "ST_WorldToRasterCoordY"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2766
+#, no-c-format
+msgid ""
+"Returns the row in the raster of the point geometry (pt) or a X and Y world "
+"coordinate (xw, yw) represented in world spatial reference system of raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2771
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordY</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2796
+#, no-c-format
+msgid ""
+"Returns the row in the raster of the point geometry (pt) or a X and Y world "
+"coordinate (xw, yw). A point, or (both xw and yw world coordinates are "
+"required if a raster is skewed). If a raster is not skewed then xw is "
+"sufficient. World coordinates are in the spatial reference coordinate system "
+"of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2798
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordY"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2804
+#, no-c-format
+msgid ""
+"SELECT rid, ST_WorldToRasterCoordY(rast,20.5) As ycoord, \n"
+"                ST_WorldToRasterCoordY(rast,3427927.8,20.5) As "
+"ycoord_xwyw, \n"
+"                ST_WorldToRasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 "
+"20.5)',ST_SRID(rast))) As ptycoord\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |  ycoord   | ycoord_xwyw | ptycoord\n"
+"-----+-----------+-------------+-----------\n"
+"   1 |         7 |           7 |         7\n"
+"   2 | 115864471 |   115864471 | 115864471"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:2817
+#, no-c-format
+msgid "Raster Band Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2820
+#, no-c-format
+msgid "ST_BandMetaData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2821
+#, no-c-format
+msgid ""
+"Returns basic meta data for a specific raster band. band num 1 is assumed if "
+"none-specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2826
+#, no-c-format
+msgid ""
+"<funcdef>record <function>ST_BandMetaData</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type><parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2837
+#, no-c-format
+msgid ""
+"Returns basic meta data about a raster band. Columns returned pixeltype | "
+"nodatavalue | isoutdb | path."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2841
+#, no-c-format
+msgid "If raster contains no bands then an error is thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2846
+#, no-c-format
+msgid "If band has no NODATA value, nodatavalue will be NULL."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2855
+#, no-c-format
+msgid ""
+"SELECT rid, (foo.md).*  \n"
+" FROM (SELECT rid, ST_BandMetaData(rast,1) As md\n"
+"FROM dummy_rast WHERE rid=2) As foo;\n"
+"\n"
+" rid | pixeltype | nodatavalue | isoutdb | path\n"
+"-----+-----------+----------------+-------------+---------+------\n"
+"   2 | 8BUI      |           0 | f       |"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2861
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2867
+#, no-c-format
+msgid "ST_BandNoDataValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2868
+#, no-c-format
+msgid ""
+"Returns the value in a given band that represents no data. If no band num 1 "
+"is assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2873
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_BandNoDataValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2884 reference_raster.xml:3012
+#, no-c-format
+msgid "Returns the value that represents no data for the band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2890
+#, no-c-format
+msgid ""
+"SELECT ST_BandNoDataValue(rast,1) As bnval1, \n"
+"    ST_BandNoDataValue(rast,2) As bnval2, ST_BandNoDataValue(rast,3) As "
+"bnval3\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" bnval1 | bnval2 | bnval3\n"
+"--------+--------+--------\n"
+"      0 |      0 |      0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2903
+#, no-c-format
+msgid "ST_BandIsNoData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2904
+#, no-c-format
+msgid "Returns true if the band is filled with only nodata values."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:2908
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>forceChecking=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2925
+#, no-c-format
+msgid ""
+"Returns true if the band is filled with only nodata values. Band 1 is "
+"assumed if not specified. If the last argument is TRUE, the entire band is "
+"checked pixel by pixel. Otherwise, the function simply returns the value of "
+"the isnodata flag for the band. The default value for this parameter is "
+"FALSE, if not specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2935
+#, no-c-format
+msgid ""
+"If the flag is dirty (this is, the result is different using TRUE as last "
+"parameter and not using it) you should update the raster to set this flag to "
+"true, by using ST_SetBandIsNodata(), or ST_SetBandNodataValue() with TRUE as "
+"last argument. See <xref linkend=\"RT_ST_SetBandIsNoData\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2945
+#, no-c-format
+msgid ""
+"-- Create dummy table with one raster column\n"
+"create table dummy_rast (rid integer, rast raster);\n"
+"\n"
+"-- Add raster with two bands, one pixel/band. In the first band, nodatavalue "
+"= pixel value = 3.\n"
+"-- In the second band, nodatavalue = 13, pixel value = 4\n"
+"insert into dummy_rast values(1,\n"
+"(\n"
+"'01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0200' -- nBands (uint16 0)\n"
+"||\n"
+"'17263529ED684A3F' -- scaleX (float64 0.000805965234044584)\n"
+"||\n"
+"'F9253529ED684ABF' -- scaleY (float64 -0.00080596523404458)\n"
+"||\n"
+"'1C9F33CE69E352C0' -- ipX (float64 -75.5533328537098)\n"
+"||\n"
+"'718F0E9A27A44840' -- ipY (float64 49.2824585505576)\n"
+"||\n"
+"'ED50EB853EC32B3F' -- skewX (float64 0.000211812383858707)\n"
+"||\n"
+"'7550EB853EC32B3F' -- skewY (float64 0.000211812383858704)\n"
+"||\n"
+"'E6100000' -- SRID (int32 4326)\n"
+"||\n"
+"'0100' -- width (uint16 1)\n"
+"||\n"
+"'0100' -- height (uint16 1)\n"
+"||\n"
+"'6' -- hasnodatavalue and isnodata value set to true.\n"
+"||\n"
+"'2' -- first band type (4BUI) \n"
+"||\n"
+"'03' -- novalue==3\n"
+"||\n"
+"'03' -- pixel(0,0)==3 (same that nodata)\n"
+"||\n"
+"'0' -- hasnodatavalue set to false\n"
+"||\n"
+"'5' -- second band type (16BSI)\n"
+"||\n"
+"'0D00' -- novalue==13\n"
+"||\n"
+"'0400' -- pixel(0,0)==4\n"
+")::raster\n"
+");\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"true\n"
+"select st_bandisnodata(rast, 2) from dummy_rast where rid = 1; -- Expected "
+"false"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2951
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_SetBandIsNoData\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2960
+#, no-c-format
+msgid "ST_BandPath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2961
+#, no-c-format
+msgid ""
+"Returns system file path to a band stored in file system. If no bandnum "
+"specified, 1 is assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2966
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_BandPath</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2977
+#, no-c-format
+msgid ""
+"Returns system file path to a band. Throws an error if called with an in db "
+"band."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2983
+#, no-c-format
+msgid "<!-- TODO: -->"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2995
+#, no-c-format
+msgid "ST_BandPixelType"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2996
+#, no-c-format
+msgid ""
+"Returns the type of pixel for given band. If no bandnum specified, 1 is "
+"assumed."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3001
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_BandPixelType</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3013
+#, no-c-format
+msgid "There are 11 pixel types. Pixel Types supported are as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3016
+#, no-c-format
+msgid "1BB - 1-bit boolean"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3020
+#, no-c-format
+msgid "2BUI - 2-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3024
+#, no-c-format
+msgid "4BUI - 4-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3028
+#, no-c-format
+msgid "8BSI - 8-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3031
+#, no-c-format
+msgid "8BUI - 8-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3034
+#, no-c-format
+msgid "16BSI - 16-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3037
+#, no-c-format
+msgid "16BUI - 16-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3040
+#, no-c-format
+msgid "32BSI - 32-bit signed integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3043
+#, no-c-format
+msgid "32BUI - 32-bit unsigned integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3046
+#, no-c-format
+msgid "32BF - 32-bit float"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3049
+#, no-c-format
+msgid "64BF - 64-bit float"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3058
+#, no-c-format
+msgid ""
+"SELECT ST_BandPixelType(rast,1) As btype1, \n"
+"    ST_BandPixelType(rast,2) As btype2, ST_BandPixelType(rast,3) As btype3\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" btype1 | btype2 | btype3\n"
+"--------+--------+--------\n"
+" 8BUI   | 8BUI   | 8BUI"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3070
+#, no-c-format
+msgid "ST_HasNoBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3071
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if there is no band with given band number. If no "
+"band number is specified, then band number 1 is assumed.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3076
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_HasNoBand</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum=1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3087
+#, no-c-format
+msgid ""
+"<para>Returns true if there is no band with given band number. If no band "
+"number is specified, then band number 1 is assumed.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3095
+#, no-c-format
+msgid ""
+"SELECT rid, ST_HasNoBand(rast) As hb1, ST_HasNoBand(rast,2) as hb2, \n"
+"ST_HasNoBand(rast,4) as hb4, ST_NumBands(rast) As numbands \n"
+"FROM dummy_rast;\n"
+"\n"
+"rid | hb1 | hb2 | hb4 | numbands\n"
+"-----+-----+-----+-----+----------\n"
+"1 | t   | t   | t   |        0\n"
+"2 | f   | f   | t   |        3"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3108
+#, no-c-format
+msgid "Raster Pixel Accessors and Setters"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3112
+#, no-c-format
+msgid "ST_PixelAsPolygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3113
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the polygon geometry that bounds the pixel for a "
+"particular row and column.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3118
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPolygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3130
+#, no-c-format
+msgid ""
+"<para>Returns the polygon geometry that bounds the pixel for a particular "
+"row and column.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3138
+#, no-c-format
+msgid ""
+"-- get raster pixel polygon\n"
+"SELECT i,j, ST_AsText(ST_PixelAsPolygon(foo.rast, i,j)) As b1pgeom\n"
+"FROM dummy_rast As foo \n"
+"        CROSS JOIN generate_series(1,2) As i \n"
+"        CROSS JOIN generate_series(1,1) As j\n"
+"WHERE rid=2;\n"
+"\n"
+" i | j |                                                    b1pgeom\n"
+"---+---"
+"+-----------------------------------------------------------------------------\n"
+" 1 | 1 | POLYGON((3427927.75 5793244,3427927.8 5793244,3427927.8 "
+"5793243.95,...\n"
+" 2 | 1 | POLYGON((3427927.8 5793244,3427927.85 5793244,3427927.85 "
+"5793243.95, .."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3143
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend="
+"\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>, <xref linkend=\"RT_ST_Intersection\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3158
+#, no-c-format
+msgid "ST_PixelAsPolygons"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3159
+#, no-c-format
+msgid ""
+"Returns the polygon geometry that bounds every pixel of a raster band along "
+"with the value, the X and the Y raster coordinates of each pixel."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3164
+#, no-c-format
+msgid ""
+"<funcdef>setof record <function>ST_PixelAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3176
+#, no-c-format
+msgid ""
+"Returns the polygon geometry that bounds every pixel of a raster band along "
+"with the value (double precision), the X and the Y raster coordinates "
+"(integers) of each pixel."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3179
+#, no-c-format
+msgid ""
+"ST_PixelAsPolygons returns one polygon geometry for every pixel. This is "
+"different than ST_DumpAsPolygons where each geometry represents one or more "
+"pixels with the same pixel value."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3184
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3190
+#, no-c-format
+msgid "Enhanced: 2.1.0 exclude_nodata_value optional argument was added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3191 reference_raster.xml:3285
+#: reference_raster.xml:3379
+#, no-c-format
+msgid "Changed: 2.1.1 Changed behavior of exclude_nodata_value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3196
+#, no-c-format
+msgid ""
+"-- get raster pixel polygon\n"
+"SELECT (gv).x, (gv).y, (gv).val, ST_AsText((gv).geom) geom\n"
+"FROM (SELECT ST_PixelAsPolygons(\n"
+"                 ST_SetValue(ST_SetValue(ST_AddBand(ST_MakeEmptyRaster(2, 2, "
+"0, 0, 0.001, -0.001, 0.001, 0.001, 4269), \n"
+"                                                    '8BUI'::text, 1, 0), \n"
+"                                         2, 2, 10), \n"
+"                             1, 1, NULL)\n"
+") gv \n"
+") foo;\n"
+"\n"
+" x | y | val |                geom\n"
+"---+---"
+"+-----------------------------------------------------------------------------\n"
+" 1 | 1 |     | POLYGON((0 0,0.001 0.001,0.002 0,0.001 -0.001,0 0))\n"
+" 1 | 2 |   1 | POLYGON((0.001 -0.001,0.002 0,0.003 -0.001,0.002 -0.002,0.001 "
+"-0.001))\n"
+" 2 | 1 |   1 | POLYGON((0.001 0.001,0.002 0.002,0.003 0.001,0.002 0,0.001 "
+"0.001))\n"
+" 2 | 2 |  10 | POLYGON((0.002 0,0.003 0.001,0.004 0,0.003 -0.001,0.002 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3201
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3215
+#, no-c-format
+msgid "ST_PixelAsPoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3216
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a point geometry of the pixel's upper-left corner.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3222
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPoint</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3233
+#, no-c-format
+msgid "<para>Returns a point geometry of the pixel's upper-left corner.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3239
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PixelAsPoint(rast, 1, 1)) FROM dummy_rast WHERE rid = "
+"1;\n"
+"\n"
+"   st_astext    \n"
+"----------------\n"
+" POINT(0.5 0.5)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3244
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3258
+#, no-c-format
+msgid "ST_PixelAsPoints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3259
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a point geometry for each pixel of a raster band along "
+"with the value, the X and the Y raster coordinates of each pixel. The "
+"coordinates of the point geometry are of the pixel's upper-left corner.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3265
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsPoints</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3276
+#, no-c-format
+msgid ""
+"<para>Returns a point geometry for each pixel of a raster band along with "
+"the value, the X and the Y raster coordinates of each pixel. The coordinates "
+"of the point geometry are of the pixel's upper-left corner.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3280 reference_raster.xml:3374
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as points."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3290
+#, no-c-format
+msgid ""
+"SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsPoints(rast, 1)).* "
+"FROM dummy_rast WHERE rid = 2) foo;\n"
+"\n"
+" x | y | val |          st_astext           \n"
+"---+---+-----+------------------------------\n"
+" 1 | 1 | 253 | POINT(3427927.75 5793244)\n"
+" 2 | 1 | 254 | POINT(3427927.8 5793244)\n"
+" 3 | 1 | 253 | POINT(3427927.85 5793244)\n"
+" 4 | 1 | 254 | POINT(3427927.9 5793244)\n"
+" 5 | 1 | 254 | POINT(3427927.95 5793244)\n"
+" 1 | 2 | 253 | POINT(3427927.75 5793243.95)\n"
+" 2 | 2 | 254 | POINT(3427927.8 5793243.95)\n"
+" 3 | 2 | 254 | POINT(3427927.85 5793243.95)\n"
+" 4 | 2 | 253 | POINT(3427927.9 5793243.95)\n"
+" 5 | 2 | 249 | POINT(3427927.95 5793243.95)\n"
+" 1 | 3 | 250 | POINT(3427927.75 5793243.9)\n"
+" 2 | 3 | 254 | POINT(3427927.8 5793243.9)\n"
+" 3 | 3 | 254 | POINT(3427927.85 5793243.9)\n"
+" 4 | 3 | 252 | POINT(3427927.9 5793243.9)\n"
+" 5 | 3 | 249 | POINT(3427927.95 5793243.9)\n"
+" 1 | 4 | 251 | POINT(3427927.75 5793243.85)\n"
+" 2 | 4 | 253 | POINT(3427927.8 5793243.85)\n"
+" 3 | 4 | 254 | POINT(3427927.85 5793243.85)\n"
+" 4 | 4 | 254 | POINT(3427927.9 5793243.85)\n"
+" 5 | 4 | 253 | POINT(3427927.95 5793243.85)\n"
+" 1 | 5 | 252 | POINT(3427927.75 5793243.8)\n"
+" 2 | 5 | 250 | POINT(3427927.8 5793243.8)\n"
+" 3 | 5 | 254 | POINT(3427927.85 5793243.8)\n"
+" 4 | 5 | 254 | POINT(3427927.9 5793243.8)\n"
+" 5 | 5 | 254 | POINT(3427927.95 5793243.8)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3295
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3309
+#, no-c-format
+msgid "ST_PixelAsCentroid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3310
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the centroid (point geometry) of the area represented by "
+"a pixel.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3316
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsCentroid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3327
+#, no-c-format
+msgid ""
+"<para>Returns the centroid (point geometry) of the area represented by a "
+"pixel.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3333
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_PixelAsCentroid(rast, 1, 1)) FROM dummy_rast WHERE rid = "
+"1;\n"
+"\n"
+"  st_astext   \n"
+"--------------\n"
+" POINT(1.5 2)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3338
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroids\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3352
+#, no-c-format
+msgid "ST_PixelAsCentroids"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3353
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the centroid (point geometry) for each pixel of a raster "
+"band along with the value, the X and the Y raster coordinates of each pixel. "
+"The point geometry is the centroid of the area represented by a pixel.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:3359
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_PixelAsCentroids</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3370
+#, no-c-format
+msgid ""
+"<para>Returns the centroid (point geometry) for each pixel of a raster band "
+"along with the value, the X and the Y raster coordinates of each pixel. The "
+"point geometry is the centroid of the area represented by a pixel.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3384
+#, no-c-format
+msgid ""
+"SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsCentroids(rast, "
+"1)).* FROM dummy_rast WHERE rid = 2) foo;\n"
+" x | y | val |           st_astext            \n"
+"---+---+-----+--------------------------------\n"
+" 1 | 1 | 253 | POINT(3427927.775 5793243.975)\n"
+" 2 | 1 | 254 | POINT(3427927.825 5793243.975)\n"
+" 3 | 1 | 253 | POINT(3427927.875 5793243.975)\n"
+" 4 | 1 | 254 | POINT(3427927.925 5793243.975)\n"
+" 5 | 1 | 254 | POINT(3427927.975 5793243.975)\n"
+" 1 | 2 | 253 | POINT(3427927.775 5793243.925)\n"
+" 2 | 2 | 254 | POINT(3427927.825 5793243.925)\n"
+" 3 | 2 | 254 | POINT(3427927.875 5793243.925)\n"
+" 4 | 2 | 253 | POINT(3427927.925 5793243.925)\n"
+" 5 | 2 | 249 | POINT(3427927.975 5793243.925)\n"
+" 1 | 3 | 250 | POINT(3427927.775 5793243.875)\n"
+" 2 | 3 | 254 | POINT(3427927.825 5793243.875)\n"
+" 3 | 3 | 254 | POINT(3427927.875 5793243.875)\n"
+" 4 | 3 | 252 | POINT(3427927.925 5793243.875)\n"
+" 5 | 3 | 249 | POINT(3427927.975 5793243.875)\n"
+" 1 | 4 | 251 | POINT(3427927.775 5793243.825)\n"
+" 2 | 4 | 253 | POINT(3427927.825 5793243.825)\n"
+" 3 | 4 | 254 | POINT(3427927.875 5793243.825)\n"
+" 4 | 4 | 254 | POINT(3427927.925 5793243.825)\n"
+" 5 | 4 | 253 | POINT(3427927.975 5793243.825)\n"
+" 1 | 5 | 252 | POINT(3427927.775 5793243.775)\n"
+" 2 | 5 | 250 | POINT(3427927.825 5793243.775)\n"
+" 3 | 5 | 254 | POINT(3427927.875 5793243.775)\n"
+" 4 | 5 | 254 | POINT(3427927.925 5793243.775)\n"
+" 5 | 5 | 254 | POINT(3427927.975 5793243.775)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3389
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
+"\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref "
+"linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3403
+#, no-c-format
+msgid "ST_Value"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3404
+#, no-c-format
+msgid ""
+"Returns the value of a given band in a given columnx, rowy pixel or at a "
+"particular geometric point. Band numbers start at 1 and assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to false, "
+"then all pixels include <varname>nodata</varname> pixels are considered to "
+"intersect and return value. If <varname>exclude_nodata_value</varname> is "
+"not passed in then reads it from metadata of raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3408
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Value</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3443
+#, no-c-format
+msgid ""
+"Returns the value of a given band in a given columnx, rowy pixel or at a "
+"given geometry point. Band numbers start at 1 and band is assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to true, "
+"then only non <varname>nodata</varname> pixels are considered. If "
+"<varname>exclude_nodata_value</varname> is set to false, then all pixels are "
+"considered."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3446
+#, no-c-format
+msgid "Enhanced: 2.0.0 exclude_nodata_value optional argument was added."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3451
+#, no-c-format
+msgid ""
+"-- get raster values at particular postgis geometry points\n"
+"-- the srid of your geometry should be same as for your raster\n"
+"SELECT rid, ST_Value(rast, foo.pt_geom) As b1pval, ST_Value(rast, 2, foo."
+"pt_geom) As b2pval\n"
+"FROM dummy_rast CROSS JOIN (SELECT ST_SetSRID(ST_Point(3427927.77, "
+"5793243.76), 0) As pt_geom) As foo\n"
+"WHERE rid=2;\n"
+"\n"
+" rid | b1pval | b2pval\n"
+"-----+--------+--------\n"
+"   2 |    252 |     79\n"
+"   \n"
+"   \n"
+"-- general fictitious example using a real table\n"
+"SELECT rid, ST_Value(rast, 3, sometable.geom) As b3pval\n"
+"FROM sometable\n"
+"WHERE ST_Intersects(rast,sometable.geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3452
+#, no-c-format
+msgid ""
+"SELECT rid, ST_Value(rast, 1, 1, 1) As b1pval, \n"
+"    ST_Value(rast, 2, 1, 1) As b2pval, ST_Value(rast, 3, 1, 1) As b3pval\n"
+"FROM dummy_rast\n"
+"WHERE rid=2;\n"
+"\n"
+" rid | b1pval | b2pval | b3pval\n"
+"-----+--------+--------+--------\n"
+"   2 |    253 |     78 |     70"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3454
+#, no-c-format
+msgid ""
+"--- Get all values in bands 1,2,3 of each pixel --\n"
+"SELECT x, y, ST_Value(rast, 1, x, y) As b1val, \n"
+"        ST_Value(rast, 2, x, y) As b2val, ST_Value(rast, 3, x, y) As b3val\n"
+"FROM dummy_rast CROSS JOIN\n"
+"generate_series(1, 1000) As x CROSS JOIN generate_series(1, 1000) As y\n"
+"WHERE rid =  2 AND x <= ST_Width(rast) AND y <= ST_Height(rast);\n"
+"\n"
+" x | y | b1val | b2val | b3val\n"
+"---+---+-------+-------+-------\n"
+" 1 | 1 |   253 |    78 |    70\n"
+" 1 | 2 |   253 |    96 |    80\n"
+" 1 | 3 |   250 |    99 |    90\n"
+" 1 | 4 |   251 |    89 |    77\n"
+" 1 | 5 |   252 |    79 |    62\n"
+" 2 | 1 |   254 |    98 |    86\n"
+" 2 | 2 |   254 |   118 |   108\n"
+" :\n"
+" :"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3456
+#, no-c-format
+msgid ""
+"--- Get all values in bands 1,2,3 of each pixel same as above but returning "
+"the upper left point point of each pixel --\n"
+"SELECT ST_AsText(ST_SetSRID(\n"
+"        ST_Point(ST_UpperLeftX(rast) + ST_ScaleX(rast)*x, \n"
+"                ST_UpperLeftY(rast) + ST_ScaleY(rast)*y), \n"
+"                ST_SRID(rast))) As uplpt\n"
+"    , ST_Value(rast, 1, x, y) As b1val, \n"
+"        ST_Value(rast, 2, x, y) As b2val, ST_Value(rast, 3, x, y) As b3val\n"
+"FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000) As x CROSS JOIN generate_series(1,1000) As y\n"
+"WHERE rid =  2 AND x <= ST_Width(rast) AND y <= ST_Height(rast);\n"
+"\n"
+"            uplpt            | b1val | b2val | b3val\n"
+"-----------------------------+-------+-------+-------\n"
+" POINT(3427929.25 5793245.5) |   253 |    78 |    70\n"
+" POINT(3427929.25 5793247)   |   253 |    96 |    80\n"
+" POINT(3427929.25 5793248.5) |   250 |    99 |    90\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3457
+#, no-c-format
+msgid ""
+"--- Get a polygon formed by union of all pixels \n"
+"        that fall in a particular value range and intersect particular "
+"polygon --\n"
+"SELECT ST_AsText(ST_Union(pixpolyg)) As shadow\n"
+"FROM (SELECT ST_Translate(ST_MakeEnvelope(\n"
+"                ST_UpperLeftX(rast), ST_UpperLeftY(rast), \n"
+"                        ST_UpperLeftX(rast) + ST_ScaleX(rast),\n"
+"                        ST_UpperLeftY(rast) + ST_ScaleY(rast), 0\n"
+"                        ), ST_ScaleX(rast)*x, ST_ScaleY(rast)*y\n"
+"                ) As pixpolyg, ST_Value(rast, 2, x, y) As b2val\n"
+"        FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000) As x CROSS JOIN generate_series(1,1000) As y\n"
+"WHERE rid =  2 \n"
+"        AND x <= ST_Width(rast) AND y <= ST_Height(rast)) As foo\n"
+"WHERE  \n"
+"        ST_Intersects(\n"
+"                pixpolyg, \n"
+"                ST_GeomFromText('POLYGON((3427928 5793244,3427927.75 "
+"5793243.75,3427928 5793243.75,3427928 5793244))',0)\n"
+"                ) AND b2val != 254;\n"
+"\n"
+"\n"
+"                shadow\n"
+"------------------------------------------------------------------------------------\n"
+" MULTIPOLYGON(((3427928 5793243.9,3427928 5793243.85,3427927.95 "
+"5793243.85,3427927.95 5793243.9,\n"
+" 3427927.95 5793243.95,3427928 5793243.95,3427928.05 5793243.95,3427928.05 "
+"5793243.9,3427928 5793243.9)),((3427927.95 5793243.9,3427927.95 579324\n"
+"3.85,3427927.9 5793243.85,3427927.85 5793243.85,3427927.85 "
+"5793243.9,3427927.9 5793243.9,3427927.9 5793243.95,\n"
+"3427927.95 5793243.95,3427927.95 5793243.9)),((3427927.85 "
+"5793243.75,3427927.85 5793243.7,3427927.8 5793243.7,3427927.8 5793243.75\n"
+",3427927.8 5793243.8,3427927.8 5793243.85,3427927.85 5793243.85,3427927.85 "
+"5793243.8,3427927.85 5793243.75)),\n"
+"((3427928.05 5793243.75,3427928.05 5793243.7,3427928 5793243.7,3427927.95 "
+"5793243.7,3427927.95 5793243.75,3427927.95 5793243.8,3427\n"
+"927.95 5793243.85,3427928 5793243.85,3427928 5793243.8,3427928.05 "
+"5793243.8,\n"
+"3427928.05 5793243.75)),((3427927.95 5793243.75,3427927.95 "
+"5793243.7,3427927.9 5793243.7,3427927.85 5793243.7,\n"
+"3427927.85 5793243.75,3427927.85 5793243.8,3427927.85 5793243.85,3427927.9 "
+"5793243.85,\n"
+"3427927.95 5793243.85,3427927.95 5793243.8,3427927.95 5793243.75)))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3459
+#, no-c-format
+msgid ""
+"--- Checking all the pixels of a large raster tile can take a long time.\n"
+"--- You can dramatically improve speed at some lose of precision by orders "
+"of magnitude \n"
+"--  by sampling pixels using the step optional parameter of "
+"generate_series.  \n"
+"--  This next example does the same as previous but by checking 1 for every "
+"4 (2x2) pixels and putting in the last checked\n"
+"--  putting in the checked pixel as the value for subsequent 4\n"
+"        \n"
+"SELECT ST_AsText(ST_Union(pixpolyg)) As shadow\n"
+"FROM (SELECT ST_Translate(ST_MakeEnvelope(\n"
+"                ST_UpperLeftX(rast), ST_UpperLeftY(rast), \n"
+"                        ST_UpperLeftX(rast) + ST_ScaleX(rast)*2,\n"
+"                        ST_UpperLeftY(rast) + ST_ScaleY(rast)*2, 0\n"
+"                        ), ST_ScaleX(rast)*x, ST_ScaleY(rast)*y\n"
+"                ) As pixpolyg, ST_Value(rast, 2, x, y) As b2val\n"
+"        FROM dummy_rast CROSS JOIN\n"
+"generate_series(1,1000,2) As x CROSS JOIN generate_series(1,1000,2) As y\n"
+"WHERE rid =  2 \n"
+"        AND x <= ST_Width(rast)  AND y <= ST_Height(rast)  ) As foo\n"
+"WHERE  \n"
+"        ST_Intersects(\n"
+"                pixpolyg, \n"
+"                ST_GeomFromText('POLYGON((3427928 5793244,3427927.75 "
+"5793243.75,3427928 5793243.75,3427928 5793244))',0)\n"
+"                ) AND b2val != 254;\n"
+"\n"
+"                shadow\n"
+"------------------------------------------------------------------------------------\n"
+" MULTIPOLYGON(((3427927.9 5793243.85,3427927.8 5793243.85,3427927.8 "
+"5793243.95,\n"
+" 3427927.9 5793243.95,3427928 5793243.95,3427928.1 5793243.95,3427928.1 "
+"5793243.85,3427928 5793243.85,3427927.9 5793243.85)),\n"
+" ((3427927.9 5793243.65,3427927.8 5793243.65,3427927.8 5793243.75,3427927.8 "
+"5793243.85,3427927.9 5793243.85,\n"
+" 3427928 5793243.85,3427928 5793243.75,3427928.1 5793243.75,3427928.1 "
+"5793243.65,3427928 5793243.65,3427927.9 5793243.65)))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3464
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_DumpAsPolygons\"/>, <xref linkend=\"RT_ST_NumBands\"/"
+">, <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_ScaleX\"/"
+">, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>, <xref linkend=\"RT_ST_SRID\"/>, <xref "
+"linkend=\"ST_AsText\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_MakeEnvelope\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Intersection\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3485
+#, no-c-format
+msgid "ST_NearestValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3486
+#, no-c-format
+msgid ""
+"Returns the nearest non-<varname>NODATA</varname> value of a given band's "
+"pixel specified by a columnx and rowy or a geometric point expressed in the "
+"same spatial reference coordinate system as the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3492
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3529
+#, no-c-format
+msgid ""
+"Returns the nearest non-<varname>NODATA</varname> value of a given band in a "
+"given columnx, rowy pixel or at a specific geometric point. If the columnx, "
+"rowy pixel or the pixel at the specified geometric point is <varname>NODATA</"
+"varname>, the function will find the nearest pixel to the columnx, rowy "
+"pixel or geometric point whose value is not <varname>NODATA</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3532 reference_raster.xml:3619
+#, no-c-format
+msgid ""
+"Band numbers start at 1 and <varname>bandnum</varname> is assumed to be 1 if "
+"not specified. If <varname>exclude_nodata_value</varname> is set to false, "
+"then all pixels include <varname>nodata</varname> pixels are considered to "
+"intersect and return value. If <varname>exclude_nodata_value</varname> is "
+"not passed in then reads it from metadata of raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3537
+#, no-c-format
+msgid "ST_NearestValue is a drop-in replacement for ST_Value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3546
+#, no-c-format
+msgid ""
+"-- pixel 2x2 has value\n"
+"SELECT\n"
+"        ST_Value(rast, 2, 2) AS value,\n"
+"        ST_NearestValue(rast, 2, 2) AS nearestvalue\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_AddBand(\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                '8BUI'::"
+"text, 1, 0\n"
+"                                                        ),\n"
+"                                                        1, 1, 0.\n"
+"                                                ),\n"
+"                                                2, 3, 0.\n"
+"                                        ),\n"
+"                                        3, 5, 0.\n"
+"                                ),\n"
+"                                4, 2, 0.\n"
+"                        ),\n"
+"                        5, 4, 0.\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+" value | nearestvalue \n"
+"-------+--------------\n"
+"     1 |            1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3548
+#, no-c-format
+msgid ""
+"-- pixel 2x3 is NODATA\n"
+"SELECT\n"
+"        ST_Value(rast, 2, 3) AS value,\n"
+"        ST_NearestValue(rast, 2, 3) AS nearestvalue\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_AddBand(\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                '8BUI'::"
+"text, 1, 0\n"
+"                                                        ),\n"
+"                                                        1, 1, 0.\n"
+"                                                ),\n"
+"                                                2, 3, 0.\n"
+"                                        ),\n"
+"                                        3, 5, 0.\n"
+"                                ),\n"
+"                                4, 2, 0.\n"
+"                        ),\n"
+"                        5, 4, 0.\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+" value | nearestvalue \n"
+"-------+--------------\n"
+"       |            1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3554
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3564
+#, no-c-format
+msgid "ST_Neighborhood"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3565
+#, no-c-format
+msgid ""
+"Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
+"values around a given band's pixel specified by either a columnX and rowY or "
+"a geometric point expressed in the same spatial reference coordinate system "
+"as the raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3571
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceY</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3616
+#, no-c-format
+msgid ""
+"Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
+"values around a given band's pixel specified by either a columnX and rowY or "
+"a geometric point expressed in the same spatial reference coordinate system "
+"as the raster. The <varname>distanceX</varname> and <varname>distanceY</"
+"varname> parameters define the number of pixels around the specified pixel "
+"in the X and Y axes, e.g. I want all values within 3 pixel distance along "
+"the X axis and 2 pixel distance along the Y axis around my pixel of "
+"interest. The center value of the 2-D array will be the value at the pixel "
+"specified by the columnX and rowY or the geometric point."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3623
+#, no-c-format
+msgid ""
+"The number of elements along each axis of the returning 2-D array is 2 * "
+"(<varname>distanceX</varname>|<varname>distanceY</varname>) + 1. So for a "
+"<varname>distanceX</varname> and <varname>distanceY</varname> of 1, the "
+"returning array will be 3x3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3628
+#, no-c-format
+msgid ""
+"The 2-D array output can be passed to any of the raster processing builtin "
+"functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3638
+#, no-c-format
+msgid ""
+"-- pixel 2x2 has value\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 2, 2, 1, 1)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"         st_neighborhood         \n"
+"---------------------------------\n"
+" {{NULL,1,1},{1,1,NULL},{1,1,1}}"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3640
+#, no-c-format
+msgid ""
+"-- pixel 2x3 is NODATA\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 2, 3, 1, 1)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"       st_neighborhood        \n"
+"------------------------------\n"
+" {{1,1,1},{1,NULL,1},{1,1,1}}"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3642
+#, no-c-format
+msgid ""
+"-- pixel 3x3 has value\n"
+"-- exclude_nodata_value = FALSE\n"
+"SELECT\n"
+"        ST_Neighborhood(rast, 3, 3, 1, 1, false)\n"
+"FROM (\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, "
+"0),\n"
+"                                '8BUI'::text, 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [0, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 0, 1],\n"
+"                                [1, 0, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 0],\n"
+"                                [1, 1, 0, 1, 1]\n"
+"                        ]::double precision[],\n"
+"                        1\n"
+"                ) AS rast\n"
+") AS foo\n"
+"\n"
+"      st_neighborhood      \n"
+"---------------------------\n"
+" {{1,0,1},{1,1,1},{0,1,1}}"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3648
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
+"linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend="
+"\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref linkend="
+"\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3665
+#, no-c-format
+msgid "ST_SetValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3666
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the value of a given band in "
+"a given columnx, rowy pixel or the pixels that intersect a particular "
+"geometry. Band numbers start at 1 and assumed to be 1 if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3670
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3704
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the specified pixels' values "
+"to new value for the designed band given the raster's row and column or a "
+"geometry. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3707
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Geometry variant of ST_SetValue() now supports any geometry "
+"type, not just point. The geometry variant is a wrapper around the geomval[] "
+"variant of ST_SetValues()"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3713
+#, no-c-format
+msgid ""
+"-- Geometry example\n"
+"SELECT (foo.geomval).val, ST_AsText(ST_Union((foo.geomval).geom))\n"
+"FROM (SELECT ST_DumpAsPolygons(\n"
+"                ST_SetValue(rast,1,\n"
+"                                ST_Point(3427927.75, 5793243.95),\n"
+"                                50)\n"
+"                        ) As geomval\n"
+"FROM dummy_rast\n"
+"where rid = 2) As foo\n"
+"WHERE (foo.geomval).val < 250\n"
+"GROUP BY (foo.geomval).val;\n"
+"\n"
+" val |                                                     st_astext\n"
+"-----+-------------------------------------------------------------------\n"
+"  50 | POLYGON((3427927.75 5793244,3427927.75 5793243.95,3427927.8 "
+"579324 ...\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 57932 ..."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3715
+#, no-c-format
+msgid ""
+"-- Store the changed raster --\n"
+"        UPDATE dummy_rast SET rast = ST_SetValue(rast,1, "
+"ST_Point(3427927.75, 5793243.95),100)\n"
+"                WHERE rid = 2   ;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3719 reference_raster.xml:9319
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DumpAsPolygons\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3725
+#, no-c-format
+msgid "ST_SetValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3726
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting the values of a given band."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3730
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>boolean[][] </type> "
+"<parameter>noset=NULL</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>double precision[][] </type> <parameter>newvalueset</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>nosetvalue</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetValues</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>rowy</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>newvalue</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geomval[] </type> <parameter>geomvalset</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3789
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting specified pixels to new "
+"value(s) for the designated band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3793
+#, no-c-format
+msgid ""
+"If <varname>keepnodata</varname> is TRUE, those pixels whose values are "
+"NODATA will not be set with the corresponding value in <varname>newvalueset</"
+"varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3797
+#, no-c-format
+msgid ""
+"For Variant 1, the specific pixels to be set are determined by the "
+"<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates and "
+"the dimensions of the <varname>newvalueset</varname> array. <varname>noset</"
+"varname> can be used to prevent pixels with values present in "
+"<varname>newvalueset</varname> from being set (due to PostgreSQL not "
+"permitting ragged/jagged arrays). See example Variant 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3801
+#, no-c-format
+msgid ""
+"Variant 2 is like Variant 1 but with a simple double precision "
+"<varname>nosetvalue</varname> instead of a boolean <varname>noset</varname> "
+"array. Elements in <varname>newvalueset</varname> with the "
+"<varname>nosetvalue</varname> value with be skipped. See example Variant 2."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3805
+#, no-c-format
+msgid ""
+"For Variant 3, the specific pixels to be set are determined by the "
+"<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates, "
+"<varname>width</varname> and <varname>height</varname>. See example Variant "
+"3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3809
+#, no-c-format
+msgid ""
+"Variant 4 is the same as Variant 3 with the exception that it assumes that "
+"the first band's pixels of <varname>rast</varname> will be set."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3813
+#, no-c-format
+msgid ""
+"For Variant 5, an array of <xref linkend=\"geomval\"/> is used to determine "
+"the specific pixels to be set. If all the geometries in the array are of "
+"type POINT or MULTIPOINT, the function uses a shortcut where the longitude "
+"and latitude of each point is used to set a pixel directly. Otherwise, the "
+"geometries are converted to rasters and then iterated through in one pass. "
+"See example Variant 5."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3822 reference_raster.xml:6730
+#: reference_raster.xml:8262 reference_raster.xml:8705
+#: reference_raster.xml:8802 reference_raster.xml:8930
+#, no-c-format
+msgid "Examples: Variant 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3824
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 2, 2, ARRAY[[9, 9], [9, 9]]::double precision[]"
+"[]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3826
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 9 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   9\n"
+" 1 | 2 |   9\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3828
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1,\n"
+"                                ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][],\n"
+"                                ARRAY[[false], [true]]::boolean[][]\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   9\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3830
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"|   | 1 | 1 |          |   | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 9 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_SetValue(\n"
+"                                ST_AddBand(\n"
+"                                        ST_MakeEmptyRaster(3, 3, 0, 0, 1, "
+"-1, 0, 0, 0),\n"
+"                                        1, '8BUI', 1, 0\n"
+"                                ),\n"
+"                                1, 1, 1, NULL\n"
+"                        ),\n"
+"                        1, 1, 1,\n"
+"                                ARRAY[[9, 9, 9], [9, NULL, 9], [9, 9, 9]]::"
+"double precision[][],\n"
+"                                ARRAY[[false], [true]]::boolean[][],\n"
+"                                TRUE\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   \n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   9\n"
+" 2 | 1 |   9\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   9\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3835 reference_raster.xml:8269
+#: reference_raster.xml:8710 reference_raster.xml:8807
+#: reference_raster.xml:8935
+#, no-c-format
+msgid "Examples: Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3837
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[-1, -1, -1], [-1, 9, 9], [-1, 9, "
+"9]]::double precision[][], -1\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3839
+#, no-c-format
+msgid ""
+"/*\n"
+"This example is like the previous one.  Instead of nosetvalue = -1, "
+"nosetvalue = NULL\n"
+"\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[[NULL, NULL, NULL], [NULL, 9, 9], "
+"[NULL, 9, 9]]::double precision[][], NULL::double precision\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3844 reference_raster.xml:4788
+#, no-c-format
+msgid "Examples: Variant 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3846
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |    =>    | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '8BUI', 1, 0\n"
+"                        ),\n"
+"                        1, 2, 2, 2, 2, 9\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |   9\n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3848
+#, no-c-format
+msgid ""
+"/*\n"
+"The ST_SetValues() does the following...\n"
+"\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 1 | 1 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 |   | 1 |    =>    | 1 |   | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"| 1 | 1 | 1 |          | 1 | 9 | 9 |\n"
+"+ - + - + - +          + - + - + - +\n"
+"*/\n"
+"SELECT\n"
+"        (poly).x,\n"
+"        (poly).y,\n"
+"        (poly).val\n"
+"FROM (\n"
+"SELECT\n"
+"        ST_PixelAsPolygons(\n"
+"                ST_SetValues(\n"
+"                        ST_SetValue(\n"
+"                                ST_AddBand(\n"
+"                                        ST_MakeEmptyRaster(3, 3, 0, 0, 1, "
+"-1, 0, 0, 0),\n"
+"                                        1, '8BUI', 1, 0\n"
+"                                ),\n"
+"                                1, 2, 2, NULL\n"
+"                        ),\n"
+"                        1, 2, 2, 2, 2, 9, TRUE\n"
+"                )\n"
+"        ) AS poly\n"
+") foo\n"
+"ORDER BY 1, 2;\n"
+"\n"
+" x | y | val \n"
+"---+---+-----\n"
+" 1 | 1 |   1\n"
+" 1 | 2 |   1\n"
+" 1 | 3 |   1\n"
+" 2 | 1 |   1\n"
+" 2 | 2 |    \n"
+" 2 | 3 |   9\n"
+" 3 | 1 |   1\n"
+" 3 | 2 |   9\n"
+" 3 | 3 |   9"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:3853
+#, no-c-format
+msgid "Examples: Variant 5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3855
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        rid, gid, ST_DumpValues(ST_SetValue(rast, 1, geom, gid))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"ORDER BY rid, gid;\n"
+"\n"
+" rid | gid |                                                                "
+"st_dumpvalues                                                                \n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,NULL,1,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,"
+"NULL}}\")\n"
+"   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,"
+"NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   3 | (1,\"{{3,3,3,3,3},{3,NULL,NULL,NULL,NULL},{3,NULL,NULL,NULL,"
+"NULL},{3,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   4 | (1,\"{{4,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,"
+"NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,4}}\")\n"
+"(4 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3857
+#, no-c-format
+msgid ""
+"The following shows that geomvals later in the array can overwrite prior "
+"geomvals"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3858
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 1\n"
+"        AND t3.gid = 2\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3860
+#, no-c-format
+msgid "This example is the opposite of the prior example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3861
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 2\n"
+"        AND t3.gid = 1\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   2 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,1,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3868
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_PixelAsPolygons"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3878
+#, no-c-format
+msgid "ST_DumpValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3879
+#, no-c-format
+msgid "Get the values of the specified band as a 2-dimension array."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3885
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_DumpValues</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer[] </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision[][] "
+"<function>ST_DumpValues</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rast</parameter> </paramdef> <paramdef> <type>integer </type> "
+"<parameter>nband</parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3916
+#, no-c-format
+msgid ""
+"Get the values of the specified band as a 2-dimension array. If "
+"<varname>nband</varname> is NULL or not provided, all raster bands are "
+"processed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3926
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast)).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"     2 | {{3,3,3},{3,3,3},{3,3,3}}\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3928
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast, ARRAY[3, 1])).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3933
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_SetValues\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3944
+#, no-c-format
+msgid "ST_PixelOfValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3945
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3951
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>double precision[] </type> <parameter>search</"
+"parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </"
+"type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4012
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4021
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        (pixels).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_PixelOfValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_SetValue(\n"
+"                                                                ST_AddBand(\n"
+"                                                                        ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                        '8BUI'::"
+"text, 1, 0\n"
+"                                                                ),\n"
+"                                                                1, 1, 0\n"
+"                                                        ),\n"
+"                                                        2, 3, 0\n"
+"                                                ),\n"
+"                                                3, 5, 0\n"
+"                                        ),\n"
+"                                        4, 2, 0\n"
+"                                ),\n"
+"                                5, 4, 255\n"
+"                        )\n"
+"                , 1, ARRAY[1, 255]) AS pixels\n"
+") AS foo\n"
+"\n"
+" val | x | y \n"
+"-----+---+---\n"
+"   1 | 1 | 2\n"
+"   1 | 1 | 3\n"
+"   1 | 1 | 4\n"
+"   1 | 1 | 5\n"
+"   1 | 2 | 1\n"
+"   1 | 2 | 2\n"
+"   1 | 2 | 4\n"
+"   1 | 2 | 5\n"
+"   1 | 3 | 1\n"
+"   1 | 3 | 2\n"
+"   1 | 3 | 3\n"
+"   1 | 3 | 4\n"
+"   1 | 4 | 1\n"
+"   1 | 4 | 3\n"
+"   1 | 4 | 4\n"
+"   1 | 4 | 5\n"
+"   1 | 5 | 1\n"
+"   1 | 5 | 2\n"
+"   1 | 5 | 3\n"
+" 255 | 5 | 4\n"
+"   1 | 5 | 5"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4029
+#, no-c-format
+msgid "Raster Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4033
+#, no-c-format
+msgid "ST_SetGeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4034
+#, no-c-format
+msgid ""
+"Set Georeference 6 georeference parameters in a single call. Numbers should "
+"be separated by white space. Accepts inputs in GDAL or ESRI format. Default "
+"is GDAL."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4038
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>georefcoords</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>format=GDAL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>upperlefty</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scalex</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scaley</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>skewy</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4064
+#, no-c-format
+msgid ""
+"Set Georeference 6 georeference parameters in a single call. Accepts inputs "
+"in 'GDAL' or 'ESRI' format. Default is GDAL. If 6 coordinates are not "
+"provided will return null."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4067
+#, no-c-format
+msgid "scalex skewy skewx scaley upperleftx upperlefty"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4069
+#, no-c-format
+msgid ""
+"scalex skewy skewx scaley upperleftx + scalex*0.5 upperlefty + scaley*0.5"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4072
+#, no-c-format
+msgid ""
+"If the raster has out-db bands, changing the georeference may result in "
+"incorrect access of the band's externally stored data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4077
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Addition of ST_SetGeoReference(raster, double "
+"precision, ...) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4084
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        0 AS rid, (ST_Metadata(rast)).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        1, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 0.1 0.1', "
+"'GDAL'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 5.1 -4.9', "
+"'ESRI'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3, (ST_Metadata(ST_SetGeoReference(rast, 1, 1, 10, -10, 0.001, "
+"0.001))).*\n"
+"FROM foo\n"
+"\n"
+" rid |     upperleftx     |     upperlefty     | width | height | scalex | "
+"scaley | skewx | skewy | srid | numbands \n"
+"-----+--------------------+--------------------+-------+--------+--------"
+"+--------+-------+-------+------+----------\n"
+"   0 |                  0 |                  0 |     5 |      5 |      1 "
+"|     -1 |     0 |     0 |    0 |        0\n"
+"   1 |                0.1 |                0.1 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   2 | 0.0999999999999996 | 0.0999999999999996 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   3 |                  1 |                  1 |     5 |      5 |     10 "
+"|    -10 | 0.001 | 0.001 |    0 |        0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4089
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4095
+#, no-c-format
+msgid "ST_SetRotation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4096
+#, no-c-format
+msgid "Set the rotation of the raster in radian."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4101
+#, no-c-format
+msgid ""
+"<funcdef>float8 <function>ST_SetRotation</function></funcdef> "
+"<paramdef><type>raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8</type> <parameter>rotation</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4112
+#, no-c-format
+msgid ""
+"Uniformly rotate the raster. Rotation is in radian. Refer to <ulink url="
+"\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4118
+#, no-c-format
+msgid ""
+"SELECT \n"
+"  ST_ScaleX(rast1), ST_ScaleY(rast1), ST_SkewX(rast1), ST_SkewY(rast1),\n"
+"  ST_ScaleX(rast2), ST_ScaleY(rast2), ST_SkewX(rast2), ST_SkewY(rast2) \n"
+"FROM (\n"
+"  SELECT ST_SetRotation(rast, 15) AS rast1, rast as rast2 FROM dummy_rast\n"
+") AS foo;\n"
+"      st_scalex      |      st_scaley      |      st_skewx      |      "
+"st_skewy      | st_scalex | st_scaley | st_skewx | st_skewy\n"
+"---------------------+---------------------+--------------------"
+"+--------------------+-----------+-----------+----------+----------\n"
+"   -1.51937582571764 |   -2.27906373857646 |   1.95086352047135 |   "
+"1.30057568031423 |         2 |         3 |        0 |        0\n"
+" -0.0379843956429411 | -0.0379843956429411 | 0.0325143920078558 | "
+"0.0325143920078558 |      0.05 |     -0.05 |        0 |        0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4131
+#, no-c-format
+msgid "ST_SetScale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4132
+#, no-c-format
+msgid ""
+"Sets the X and Y size of pixels in units of coordinate reference system. "
+"Number units/pixel width/height."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4136
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>xy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetScale</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>x</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>y</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4155
+#, no-c-format
+msgid ""
+"Sets the X and Y size of pixels in units of coordinate reference system. "
+"Number units/pixel width/height. If only one unit passed in, assumed X and Y "
+"are the same number."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4158
+#, no-c-format
+msgid ""
+"ST_SetScale is different from <xref linkend=\"RT_ST_Rescale\"/> in that "
+"ST_SetScale do not resample the raster to match the raster extent. It only "
+"changes the metadata (or georeference) of the raster to correct an "
+"originally mis-specified scaling. ST_Rescale results in a raster having "
+"different width and height computed to fit the geographic extent of the "
+"input raster. ST_SetScale do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4160
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In WKTRaster versions this was called ST_SetPixelSize. This "
+"was changed in 2.0.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4166
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetScale(rast, 1.5)\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT ST_ScaleX(rast) As pixx, ST_ScaleY(rast) As pixy, Box3D(rast) As "
+"newbox\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" pixx | pixy |                    newbox\n"
+"------+------+----------------------------------------------\n"
+"  1.5 |  1.5 | BOX(3427927.75 5793244 0, 3427935.25 5793251.5 0)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4167
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetScale(rast, 1.5, 0.55)\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT ST_ScaleX(rast) As pixx, ST_ScaleY(rast) As pixy, Box3D(rast) As "
+"newbox\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" pixx | pixy |                   newbox\n"
+"------+------+--------------------------------------------\n"
+"  1.5 | 0.55 | BOX(3427927.75 5793244 0,3427935.25 5793247 0)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4173
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_Box3D\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4179
+#, no-c-format
+msgid "ST_SetSkew"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4180
+#, no-c-format
+msgid ""
+"Sets the georeference X and Y skew (or rotation parameter). If only one is "
+"passed in, sets X and Y to the same value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4184
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>skewxy</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_SetSkew</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewy</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4202
+#, no-c-format
+msgid ""
+"Sets the georeference X and Y skew (or rotation parameter). If only one is "
+"passed in, sets X and Y to the same value. Refer to <ulink url=\"http://en."
+"wikipedia.org/wiki/World_file\">World File</ulink> for more details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4209
+#, no-c-format
+msgid ""
+"-- Example 1                    \n"
+"UPDATE dummy_rast SET rast = ST_SetSkew(rast,1,2) WHERE rid = 1;\n"
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast WHERE rid = 1;\n"
+"\n"
+"rid | skewx | skewy |    georef\n"
+"----+-------+-------+--------------\n"
+"  1 |     1 |     2 | 2.0000000000\n"
+"                    : 2.0000000000\n"
+"                    : 1.0000000000\n"
+"                    : 3.0000000000\n"
+"                    : 0.5000000000\n"
+"                    : 0.5000000000"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4211
+#, no-c-format
+msgid ""
+"-- Example 2 set both to same number:\n"
+"UPDATE dummy_rast SET rast = ST_SetSkew(rast,0) WHERE rid = 1;\n"
+"SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
+"    ST_GeoReference(rast) as georef\n"
+"FROM dummy_rast WHERE rid = 1;\n"
+"                        \n"
+" rid | skewx | skewy |    georef\n"
+"-----+-------+-------+--------------\n"
+"   1 |     0 |     0 | 2.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 0.0000000000\n"
+"                     : 3.0000000000\n"
+"                     : 0.5000000000\n"
+"                     : 0.5000000000"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4218
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetGeoReference\"/>, <xref linkend=\"RT_ST_SkewX\"/"
+">, <xref linkend=\"RT_ST_SkewY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4224
+#, no-c-format
+msgid "ST_SetSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4226
+#, no-c-format
+msgid ""
+"Sets the SRID of a raster to a particular integer srid defined in the "
+"spatial_ref_sys table."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4231
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetSRID</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4246
+#, no-c-format
+msgid "Sets the SRID on a raster to a particular integer value."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4249
+#, no-c-format
+msgid ""
+"This function does not transform the raster in any way - it simply sets meta "
+"data defining the spatial ref of the coordinate reference system that it's "
+"currently in. Useful for transformations later."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4259
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4266
+#, no-c-format
+msgid "ST_SetUpperLeft"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4267
+#, no-c-format
+msgid ""
+"Sets the value of the upper left corner of the pixel to projected X and Y "
+"coordinates."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4272
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetUpperLeft</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>y</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4284
+#, no-c-format
+msgid ""
+"Set the value of the upper left corner of raster to the projected X "
+"coordinates"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4290
+#, no-c-format
+msgid ""
+"SELECT ST_SetUpperLeft(rast,-71.01,42.37)  \n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4296
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4302
+#, no-c-format
+msgid "ST_Resample"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4303
+#, no-c-format
+msgid ""
+"Resample a raster using a specified resampling algorithm, new dimensions, an "
+"arbitrary grid corner and a set of raster georeferencing attributes defined "
+"or borrowed from another raster."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4309
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>double "
+"precision </type> <parameter>scalex=0</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>scaley=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>ref</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
+"type> <parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>usescale=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>ref</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>usescale</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4359
+#, no-c-format
+msgid ""
+"Resample a raster using a specified resampling algorithm, new dimensions "
+"(width & height), a grid corner (gridx & gridy) and a set of raster "
+"georeferencing attributes (scalex, scaley, skewx & skewy) defined or "
+"borrowed from another raster. If using a reference raster, the two rasters "
+"must have the same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4363
+#, no-c-format
+msgid ""
+"New pixel values are computed using the NearestNeighbor (English or American "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor which is the fastest but produce the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4367 reference_raster.xml:4434
+#, no-c-format
+msgid ""
+"A maxerror percent of 0.125 is used if no <varname>maxerr</varname> is "
+"specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4372 reference_raster.xml:4436
+#: reference_raster.xml:4504 reference_raster.xml:4582
+#, no-c-format
+msgid ""
+"Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp "
+"resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4376 reference_raster.xml:4440
+#: reference_raster.xml:4508 reference_raster.xml:4586
+#: reference_raster.xml:4742
+#, no-c-format
+msgid "Availability: 2.0.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4377
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 Parameter srid removed. Variants with a reference raster no "
+"longer applies the reference raster's SRID. Use ST_Transform() to reproject "
+"raster. Works on rasters with no SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4383
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_Width(orig) AS orig_width,\n"
+"        ST_Width(reduce_100) AS new_width\n"
+"FROM (\n"
+"        SELECT\n"
+"                rast AS orig,\n"
+"                ST_Resample(rast,100,100) AS reduce_100\n"
+"        FROM aerials.boston \n"
+"        WHERE ST_Intersects(rast,\n"
+"                ST_Transform(\n"
+"                        ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, "
+"4326),26986)\n"
+"        )\n"
+"        LIMIT 1\n"
+") AS foo;\n"
+"\n"
+" orig_width | new_width\n"
+"------------+-------------\n"
+"        200 |         100"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4388
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Resize\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4398
+#, no-c-format
+msgid "ST_Rescale"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4399
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its scale (or pixel size). New pixel "
+"values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4404
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Rescale</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Rescale</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scalex</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4428
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its scale (or pixel size). New pixel "
+"values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4430
+#, no-c-format
+msgid ""
+"<varname>scalex</varname> and <varname>scaley</varname> define the new pixel "
+"size. scaley must often be negative to get well oriented raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4432
+#, no-c-format
+msgid ""
+"When the new scalex or scaley is not a divisor of the raster width or "
+"height, the extent of the resulting raster is expanded to encompass the "
+"extent of the provided raster. If you want to be sure to retain exact input "
+"extent see <xref linkend=\"RT_ST_Resize\"/>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4438
+#, no-c-format
+msgid ""
+"ST_Rescale is different from <xref linkend=\"RT_ST_SetScale\"/> in that "
+"ST_SetScale do not resample the raster to match the raster extent. "
+"ST_SetScale only changes the metadata (or georeference) of the raster to "
+"correct an originally mis-specified scaling. ST_Rescale results in a raster "
+"having different width and height computed to fit the geographic extent of "
+"the input raster. ST_SetScale do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4441 reference_raster.xml:4509
+#: reference_raster.xml:4587
+#, no-c-format
+msgid "Changed: 2.1.0 Works on rasters with no SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4446
+#, no-c-format
+msgid ""
+"A simple example rescaling a raster from a pixel size of 0.001 degree to a "
+"pixel size of 0.0015 degree."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4448
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_PixelWidth(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0)) width\n"
+"\n"
+"   width\n"
+"----------\n"
+"0.001\n"
+"\n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_PixelWidth(ST_Rescale(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, "
+"0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015)) width\n"
+"\n"
+"   width\n"
+"----------\n"
+"0.0015"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4453
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_SetScale\"/>, "
+"<xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4466
+#, no-c-format
+msgid "ST_Reskew"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4467
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its skew (or rotation parameters). New "
+"pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
+"Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4472
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reskew</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>skewxy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reskew</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>skewx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>skewy</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4496
+#, no-c-format
+msgid ""
+"Resample a raster by adjusting only its skew (or rotation parameters). New "
+"pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4498
+#, no-c-format
+msgid ""
+"<varname>skewx</varname> and <varname>skewy</varname> define the new skew."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4500 reference_raster.xml:4578
+#, no-c-format
+msgid ""
+"The extent of the new raster will encompass the extent of the provided "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4502 reference_raster.xml:4580
+#, no-c-format
+msgid ""
+"A maxerror percent of 0.125 if no <varname>maxerr</varname> is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4506
+#, no-c-format
+msgid ""
+"ST_Reskew is different from <xref linkend=\"RT_ST_SetSkew\"/> in that "
+"ST_SetSkew do not resample the raster to match the raster extent. ST_SetSkew "
+"only changes the metadata (or georeference) of the raster to correct an "
+"originally mis-specified skew. ST_Reskew results in a raster having "
+"different width and height computed to fit the geographic extent of the "
+"input raster. ST_SetSkew do not modify the width, nor the height of the "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4514
+#, no-c-format
+msgid ""
+"A simple example reskewing a raster from a skew of 0.0 to a skew of 0.0015."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4516
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_Rotation(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0))\n"
+"                                        \n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_Rotation(ST_Reskew(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, "
+"0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4522
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, "
+"<xref linkend=\"RT_ST_SetRotation\"/>, <xref linkend=\"RT_ST_SkewX\"/>, "
+"<xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4528
+#, no-c-format
+msgid "ST_SnapToGrid"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4529
+#, no-c-format
+msgid ""
+"Resample a raster by snapping it to a grid. New pixel values are computed "
+"using the NearestNeighbor (english or american spelling), Bilinear, Cubic, "
+"CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4534
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>gridx</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>gridy</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scalex=DEFAULT 0</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>scaley=DEFAULT 0</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>gridx</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>gridy</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scalexy</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4573
+#, no-c-format
+msgid ""
+"Resample a raster by snapping it to a grid defined by an arbitrary pixel "
+"corner (gridx & gridy) and optionally a pixel size (scalex & "
+"scaley). New pixel values are computed using the NearestNeighbor (english or "
+"american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling "
+"algorithm. The default is NearestNeighbor which is the fastest but results "
+"in the worst interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4575
+#, no-c-format
+msgid ""
+"<varname>gridx</varname> and <varname>gridy</varname> define any arbitrary "
+"pixel corner of the new grid. This is not necessarily the upper left corner "
+"of the new raster and it does not have to be inside or on the edge of the "
+"new raster extent."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4577
+#, no-c-format
+msgid ""
+"You can optionnal define the pixel size of the new grid with "
+"<varname>scalex</varname> and <varname>scaley</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4584
+#, no-c-format
+msgid ""
+"Use <xref linkend=\"RT_ST_Resample\"/> if you need more control over the "
+"grid parameters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4592
+#, no-c-format
+msgid "A simple example snapping a raster to a slightly different grid."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4594
+#, no-c-format
+msgid ""
+"-- the original raster pixel size\n"
+"SELECT ST_UpperLeftX(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 0.001, "
+"-0.001, 0, 0, 4269), '8BUI'::text, 1, 0))\n"
+"                                        \n"
+"-- the rescaled raster raster pixel size\n"
+"SELECT ST_UpperLeftX(ST_SnapToGrid(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, "
+"0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0002, 0.0002))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4600
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4606
+#, no-c-format
+msgid "ST_Resize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4607
+#, no-c-format
+msgid "Resize a raster to a new width/height"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4611
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Resize</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>percentwidth</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>percentheight</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbor</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4645
+#, no-c-format
+msgid ""
+"Resize a raster to a new width/height. The new width/height can be specified "
+"in exact number of pixels or a percentage of the raster's width/height. The "
+"extent of the the new raster will be the same as the extent of the provided "
+"raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4649
+#, no-c-format
+msgid ""
+"New pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4653
+#, no-c-format
+msgid "Variant 1 expects the actual width/height of the output raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4657
+#, no-c-format
+msgid ""
+"Variant 2 expects decimal values between zero (0) and one (1) indicating the "
+"percentage of the input raster's width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4661
+#, no-c-format
+msgid ""
+"Variant 3 takes either the actual width/height of the output raster or a "
+"textual percentage (\"20%\") indicating the percentage of the input raster's "
+"width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4665
+#, no-c-format
+msgid "Availability: 2.1.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4669
+#, no-c-format
+msgid ""
+"WITH foo AS(\n"
+"SELECT\n"
+"        1 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , '50%', '500') AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 500, 100) AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 0.25, 0.9) AS rast\n"
+"), bar AS (\n"
+"        SELECT rid, ST_Metadata(rast) AS meta, rast FROM foo\n"
+")\n"
+"SELECT rid, (meta).* FROM bar\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands \n"
+"-----+------------+------------+-------+--------+--------+--------+-------"
+"+-------+------+----------\n"
+"   1 |          0 |          0 |   500 |    500 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   2 |          0 |          0 |   500 |    100 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   3 |          0 |          0 |   250 |    900 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4674
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_Reskew\"/>, <xref "
+"linkend=\"RT_ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4685
+#, no-c-format
+msgid "ST_Transform"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4686
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified resampling algorithm. Options are "
+"NearestNeighbor, Bilinear, Cubic, CubicSpline, Lanczos defaulting to "
+"NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4690
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Transform</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>algorithm=NearestNeighbor</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>alignto</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4724
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified pixel warping algorithm. Uses "
+"'NearestNeighbor' if no algorithm is specified and maxerror percent of 0.125 "
+"if no maxerr is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4728
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a raster (and resamples the pixel values) from "
+"one spatial reference system to another, while ST_SetSRID() simply changes "
+"the SRID identifier of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4732
+#, no-c-format
+msgid ""
+"Unlike the other variants, Variant 3 requires a reference raster as "
+"<varname>alignto</varname>. The transformed raster will be transformed to "
+"the spatial reference system (SRID) of the reference raster and be aligned "
+"(ST_SameAlignment = TRUE) to the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4737
+#, no-c-format
+msgid ""
+"If you find your transformation support is not working right, you may need "
+"to set the environment variable PROJSO to the .so or .dll projection library "
+"your PostGIS is using. This just needs to have the name of the file. So for "
+"example on windows, you would in Control Panel -> System -> Environment "
+"Variables add a system variable called <varname>PROJSO</varname> and set it "
+"to <varname>libproj.dll</varname> (if you are using proj 4.6.1). You'll have "
+"to restart your PostgreSQL service/daemon after this change."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4743
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of ST_Transform(rast, alignto) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4749
+#, no-c-format
+msgid ""
+"SELECT ST_Width(mass_stm) As w_before, ST_Width(wgs_84) As w_after,\n"
+"  ST_Height(mass_stm) As h_before, ST_Height(wgs_84) As h_after\n"
+"        FROM \n"
+"        ( SELECT rast As mass_stm, ST_Transform(rast,4326) As wgs_84\n"
+"  ,  ST_Transform(rast,4326, 'Bilinear') AS wgs_84_bilin\n"
+"                FROM aerials.o_2_boston \n"
+"                        WHERE ST_Intersects(rast,\n"
+"                                ST_Transform(ST_MakeEnvelope(-71.128, "
+"42.2392,-71.1277, 42.2397, 4326),26986) )\n"
+"                LIMIT 1) As foo;\n"
+"                                                \n"
+" w_before | w_after | h_before | h_after\n"
+"----------+---------+----------+---------\n"
+"      200 |     228 |      200 |     170"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4759
+#, no-c-format
+msgid "original mass state plane meters (mass_stm)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4768
+#, no-c-format
+msgid "After transform to wgs 84 long lat (wgs_84)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4777
+#, no-c-format
+msgid ""
+"After transform to wgs 84 long lat with bilinear algorithm instead of NN "
+"default (wgs_84_bilin)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4790
+#, no-c-format
+msgid ""
+"The following shows the difference between using ST_Transform(raster, srid) "
+"and ST_Transform(raster, alignto)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, "
+"600000, 100, -100, 0, 0, 2163), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 300, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                ST_Transform(rast, 4269) AS alignto\n"
+"        FROM foo\n"
+"        LIMIT 1\n"
+"), baz AS (\n"
+"        SELECT\n"
+"                rid,\n"
+"                rast,\n"
+"                ST_Transform(rast, 4269) AS not_aligned,\n"
+"                ST_Transform(rast, alignto) AS aligned\n"
+"        FROM foo\n"
+"        CROSS JOIN bar\n"
+")\n"
+"SELECT\n"
+"        ST_SameAlignment(rast) AS rast,\n"
+"        ST_SameAlignment(not_aligned) AS not_aligned,\n"
+"        ST_SameAlignment(aligned) AS aligned\n"
+"FROM baz\n"
+"\n"
+" rast | not_aligned | aligned \n"
+"------+-------------+---------\n"
+" t    | f           | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4796
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetSRID\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4802
+#, no-c-format
+msgid "Raster Band Editors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4806
+#, no-c-format
+msgid "ST_SetBandNoDataValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4807
+#, no-c-format
+msgid ""
+"Sets the value for the given band that represents no data. Band 1 is assumed "
+"if no band is specified. To mark a band as having no nodata value, set the "
+"nodata value = NULL."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4811
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_SetBandNoDataValue</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodatavalue</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_SetBandNoDataValue</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>nodatavalue</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>forcechecking=false</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4832
+#, no-c-format
+msgid ""
+"Sets the value that represents no data for the band. Band 1 is assumed if "
+"not specified. This will affect results from <xref linkend=\"RT_ST_Polygon\"/"
+">, <xref linkend=\"RT_ST_DumpAsPolygons\"/>, and the ST_PixelAs...() "
+"functions."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4838
+#, no-c-format
+msgid ""
+"-- change just first band no data value\n"
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetBandNoDataValue(rast,1, 254)  \n"
+"WHERE rid = 2;\n"
+"\n"
+"-- change no data band value of bands 1,2,3\n"
+"UPDATE dummy_rast \n"
+"        SET rast = \n"
+"                ST_SetBandNoDataValue(\n"
+"                        ST_SetBandNoDataValue(\n"
+"                                ST_SetBandNoDataValue(\n"
+"                                        rast,1, 254)\n"
+"                                ,2,99),\n"
+"                                3,108)  \n"
+"                WHERE rid = 2;\n"
+"                \n"
+"-- wipe out the nodata value this will ensure all pixels are considered for "
+"all processing functions\n"
+"UPDATE dummy_rast \n"
+"        SET rast = ST_SetBandNoDataValue(rast,1, NULL)  \n"
+"WHERE rid = 2;"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4850
+#, no-c-format
+msgid "ST_SetBandIsNoData"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4851
+#, no-c-format
+msgid "Sets the isnodata flag of the band to TRUE."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:4856
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_SetBandIsNoData</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4867
+#, no-c-format
+msgid ""
+"Sets the isnodata flag for the band to true. Band 1 is assumed if not "
+"specified. This function should be called only when the flag is considered "
+"dirty. That is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/"
+"> is different using TRUE as last argument and without using it"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4879
+#, no-c-format
+msgid ""
+"-- Create dummy table with one raster column\n"
+"create table dummy_rast (rid integer, rast raster);\n"
+"\n"
+"-- Add raster with two bands, one pixel/band. In the first band, nodatavalue "
+"= pixel value = 3.\n"
+"-- In the second band, nodatavalue = 13, pixel value = 4\n"
+"insert into dummy_rast values(1,\n"
+"(\n"
+"'01' -- little endian (uint8 ndr)\n"
+"|| \n"
+"'0000' -- version (uint16 0)\n"
+"||\n"
+"'0200' -- nBands (uint16 0)\n"
+"||\n"
+"'17263529ED684A3F' -- scaleX (float64 0.000805965234044584)\n"
+"||\n"
+"'F9253529ED684ABF' -- scaleY (float64 -0.00080596523404458)\n"
+"||\n"
+"'1C9F33CE69E352C0' -- ipX (float64 -75.5533328537098)\n"
+"||\n"
+"'718F0E9A27A44840' -- ipY (float64 49.2824585505576)\n"
+"||\n"
+"'ED50EB853EC32B3F' -- skewX (float64 0.000211812383858707)\n"
+"||\n"
+"'7550EB853EC32B3F' -- skewY (float64 0.000211812383858704)\n"
+"||\n"
+"'E6100000' -- SRID (int32 4326)\n"
+"||\n"
+"'0100' -- width (uint16 1)\n"
+"||\n"
+"'0100' -- height (uint16 1)\n"
+"||\n"
+"'4' -- hasnodatavalue set to true, isnodata value set to false (when it "
+"should be true)\n"
+"||\n"
+"'2' -- first band type (4BUI) \n"
+"||\n"
+"'03' -- novalue==3\n"
+"||\n"
+"'03' -- pixel(0,0)==3 (same that nodata)\n"
+"||\n"
+"'0' -- hasnodatavalue set to false\n"
+"||\n"
+"'5' -- second band type (16BSI)\n"
+"||\n"
+"'0D00' -- novalue==13\n"
+"||\n"
+"'0400' -- pixel(0,0)==4\n"
+")::raster\n"
+");\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"false\n"
+"select st_bandisnodata(rast, 1, TRUE) from dummy_rast where rid = 1; -- "
+"Expected true\n"
+"\n"
+"-- The isnodata flag is dirty. We are going to set it to true\n"
+"update dummy_rast set rast = st_setbandisnodata(rast, 1) where rid = 1;\n"
+"\n"
+"\n"
+"select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected "
+"true"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4885
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_BandIsNoData\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:4894
+#, no-c-format
+msgid "Raster Band Statistics and Analytics"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4898
+#, no-c-format
+msgid "ST_Count"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4899
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a raster or raster coverage. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the nodata value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4903
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_Count</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4934
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a raster or raster coverage. "
+"If no band is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4935
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>nodata</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4939
+#, no-c-format
+msgid ""
+"The ST_Count(rastertable, rastercolumn, ...) variants are deprecated as of "
+"2.2.0. Use <xref linkend=\"RT_ST_CountAgg\"/> instead."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4949
+#, no-c-format
+msgid ""
+"--example will count all pixels not 249 and one will count all pixels.  --\n"
+"SELECT rid, ST_Count(ST_SetBandNoDataValue(rast,249)) As exclude_nodata, \n"
+"        ST_Count(ST_SetBandNoDataValue(rast,249),false) As include_nodata\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"                                    \n"
+"rid | exclude_nodata | include_nodata\n"
+"-----+----------------+----------------\n"
+"   2 |             23 |             25"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4954 reference_raster.xml:5015
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4964
+#, no-c-format
+msgid "ST_CountAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4965
+#, no-c-format
+msgid ""
+"Aggregate. Returns the number of pixels in a given band of a set of rasters. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the NODATA value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4971
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>double precision </type> "
+"<parameter>sample_percent</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_CountAgg</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4999
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a set of rasters. If no band "
+"is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5000
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>NODATA</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5003
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between zero (0) and one (1)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5010
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        ST_CountAgg(rast, 1, TRUE)\n"
+"FROM foo;\n"
+"\n"
+" st_countagg \n"
+"-------------\n"
+"          20\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5025
+#, no-c-format
+msgid "ST_Histogram"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5026
+#, no-c-format
+msgid ""
+"Returns a set of record summarizing a raster or raster coverage data "
+"distribution separate bin ranges. Number of bins are autocomputed if not "
+"specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5030
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>integer </type> <parameter>bins=autocomputed</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bins</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>right</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>SETOF record <function>ST_Histogram</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>right</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>bins</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>right</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_Histogram</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>bins</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>right</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Histogram</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>bins=autocomputed</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>width=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>right=false</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>bins</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>width=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>right=false</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5112
+#, no-c-format
+msgid ""
+"Returns set of records consisting of min, max, count, percent for a given "
+"raster band for each bin. If no band is specified <varname>nband</varname> "
+"defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5113
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>nodata</"
+"varname> value . Set <varname>exclude_nodata_value</varname> to false to get "
+"count all pixels."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5117
+#, no-c-format
+msgid "<parameter>width </parameter><type>double precision[]</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5118
+#, no-c-format
+msgid ""
+"width: an array indicating the width of each category/bin. If the number of "
+"bins is greater than the number of widths, the widths are repeated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5119
+#, no-c-format
+msgid ""
+"Example: 9 bins, widths are [a, b, c] will have the output be [a, b, c, a, "
+"b, c, a, b, c]"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5122
+#, no-c-format
+msgid "<parameter>bins </parameter><type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5123
+#, no-c-format
+msgid ""
+"Number of breakouts -- this is the number of records you'll get back from "
+"the function if specified. If not specified then the number of breakouts is "
+"autocomputed."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:5127
+#, no-c-format
+msgid "<parameter>right </parameter><type>boolean</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5128
+#, no-c-format
+msgid ""
+"compute the histogram from the right rather than from the left (default). "
+"This changes the criteria for evaluating a value x from [a, b) to (a, b]"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5135
+#, no-c-format
+msgid ""
+"Example: Single raster tile - compute histograms for bands 1, 2, 3 and "
+"autocompute bins"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5136
+#, no-c-format
+msgid ""
+"SELECT band, (stats).*\n"
+"FROM (SELECT rid, band, ST_Histogram(rast, band) As stats\n"
+"    FROM dummy_rast CROSS JOIN generate_series(1,3) As band\n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+" band |  min  |  max  | count | percent\n"
+"------+-------+-------+-------+---------\n"
+"    1 |   249 |   250 |     2 |    0.08\n"
+"    1 |   250 |   251 |     2 |    0.08\n"
+"    1 |   251 |   252 |     1 |    0.04\n"
+"    1 |   252 |   253 |     2 |    0.08\n"
+"    1 |   253 |   254 |    18 |    0.72\n"
+"    2 |    78 | 113.2 |    11 |    0.44\n"
+"    2 | 113.2 | 148.4 |     4 |    0.16\n"
+"    2 | 148.4 | 183.6 |     4 |    0.16\n"
+"    2 | 183.6 | 218.8 |     1 |    0.04\n"
+"    2 | 218.8 |   254 |     5 |     0.2\n"
+"    3 |    62 | 100.4 |    11 |    0.44\n"
+"    3 | 100.4 | 138.8 |     5 |     0.2\n"
+"    3 | 138.8 | 177.2 |     4 |    0.16\n"
+"    3 | 177.2 | 215.6 |     1 |    0.04\n"
+"    3 | 215.6 |   254 |     4 |    0.16"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5140
+#, no-c-format
+msgid "Example: Just band 2 but for 6 bins"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5141
+#, no-c-format
+msgid ""
+"SELECT (stats).*\n"
+"FROM (SELECT rid, ST_Histogram(rast, 2,6) As stats\n"
+"    FROM dummy_rast \n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+"    min     |    max     | count | percent\n"
+"------------+------------+-------+---------\n"
+"         78 | 107.333333 |     9 |    0.36\n"
+" 107.333333 | 136.666667 |     6 |    0.24\n"
+" 136.666667 |        166 |     0 |       0\n"
+"        166 | 195.333333 |     4 |    0.16\n"
+" 195.333333 | 224.666667 |     1 |    0.04\n"
+" 224.666667 |        254 |     5 |     0.2\n"
+"(6 rows)\n"
+"    \n"
+"-- Same as previous but we explicitly control the pixel value range of each "
+"bin.  \n"
+"SELECT (stats).*\n"
+"FROM (SELECT rid, ST_Histogram(rast, 2,6,ARRAY[0.5,1,4,100,5]) As stats\n"
+"    FROM dummy_rast \n"
+"     WHERE rid=2) As foo;\n"
+"     \n"
+"  min  |  max  | count | percent\n"
+"-------+-------+-------+----------\n"
+"    78 |  78.5 |     1 |     0.08\n"
+"  78.5 |  79.5 |     1 |     0.04\n"
+"  79.5 |  83.5 |     0 |        0\n"
+"  83.5 | 183.5 |    17 |   0.0068\n"
+" 183.5 | 188.5 |     0 |        0\n"
+" 188.5 |   254 |     6 | 0.003664\n"
+"(6 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5146
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5156
+#, no-c-format
+msgid "ST_Quantile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5157
+#, no-c-format
+msgid ""
+"<refpurpose>Compute quantiles for a raster or raster table coverage in the "
+"context of the sample or population. Thus, a value could be examined to be "
+"at the raster's 25%, 50%, 75% percentile.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5161
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>quantiles=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>quantiles</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Quantile</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>quantile</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>quantile=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>quantile</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>double precision <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>quantile</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>double precision <function>ST_Quantile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>quantile</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_Quantile</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </"
+"type> <parameter>quantiles=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>double precision[] </type> <parameter>quantiles</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5233
+#, no-c-format
+msgid ""
+"<para>Compute quantiles for a raster or raster table coverage in the context "
+"of the sample or population. Thus, a value could be examined to be at the "
+"raster's 25%, 50%, 75% percentile.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5234 reference_raster.xml:5526
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to false, will also count "
+"pixels with no data."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5241
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
+"--Example will consider only pixels of band 1 that are not 249 and in named "
+"quantiles --\n"
+"\n"
+"SELECT (pvq).*\n"
+"FROM (SELECT ST_Quantile(rast, ARRAY[0.25,0.75]) As pvq\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvq).quantile;\n"
+"                                                                \n"
+" quantile | value\n"
+"----------+-------\n"
+"     0.25 |   253\n"
+"     0.75 |   254\n"
+"   \n"
+"SELECT ST_Quantile(rast, 0.75) As value\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"value\n"
+"------\n"
+"  254"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5242
+#, no-c-format
+msgid ""
+"--real live example.  Quantile of all pixels in band 2 intersecting a "
+"geometry\n"
+"SELECT rid, (ST_Quantile(rast,2)).* As pvc\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"            )\n"
+"ORDER BY value, quantile,rid\n"
+";\n"
+"                                \n"
+"    \n"
+" rid | quantile | value\n"
+"-----+----------+-------\n"
+"   1 |        0 |     0\n"
+"   2 |        0 |     0\n"
+"  14 |        0 |     1\n"
+"  15 |        0 |     2\n"
+"  14 |     0.25 |    37\n"
+"   1 |     0.25 |    42\n"
+"  15 |     0.25 |    47\n"
+"   2 |     0.25 |    50\n"
+"  14 |      0.5 |    56\n"
+"   1 |      0.5 |    64\n"
+"  15 |      0.5 |    66\n"
+"   2 |      0.5 |    77\n"
+"  14 |     0.75 |    81\n"
+"  15 |     0.75 |    87\n"
+"   1 |     0.75 |    94\n"
+"   2 |     0.75 |   106\n"
+"  14 |        1 |   199\n"
+"   1 |        1 |   244\n"
+"   2 |        1 |   255\n"
+"  15 |        1 |   255"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5247
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5258
+#, no-c-format
+msgid "ST_SummaryStats"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5259
+#, no-c-format
+msgid ""
+"Returns summarystats consisting of count, sum, mean, stddev, min, max for a "
+"given raster band of a raster or raster coverage. Band 1 is assumed is no "
+"band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5263
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5299 reference_raster.xml:5378
+#, no-c-format
+msgid ""
+"Returns <xref linkend=\"summarystats\"/> consisting of count, sum, mean, "
+"stddev, min, max for a given raster band of a raster or raster coverage. If "
+"no band is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5301
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>nodata</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to false to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5303
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to lower than 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5308
+#, no-c-format
+msgid ""
+"The ST_SummaryStats(rastertable, rastercolumn, ...) variants are deprecated "
+"as of 2.2.0. Use <xref linkend=\"RT_ST_SummaryStatsAgg\"/> instead."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5316
+#, no-c-format
+msgid "Example: Single raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5317
+#, no-c-format
+msgid ""
+"SELECT rid, band, (stats).*\n"
+"FROM (SELECT rid, band, ST_SummaryStats(rast, band) As stats\n"
+"    FROM dummy_rast CROSS JOIN generate_series(1,3) As band\n"
+"     WHERE rid=2) As foo;\n"
+"                                    \n"
+" rid | band | count | sum  |    mean    |  stddev   | min | max\n"
+"-----+------+-------+------+------------+-----------+-----+-----\n"
+"   2 |    1 |    23 | 5821 | 253.086957 |  1.248061 | 250 | 254\n"
+"   2 |    2 |    25 | 3682 |     147.28 | 59.862188 |  78 | 254\n"
+"   2 |    3 |    25 | 3290 |      131.6 | 61.647384 |  62 | 254"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5321
+#, no-c-format
+msgid "Example: Summarize pixels that intersect buildings of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5322
+#, no-c-format
+msgid ""
+"This example took 574ms on PostGIS windows 64-bit with all of Boston "
+"Buildings and aerial Tiles (tiles each 150x150 pixels ~ 134,000 tiles), "
+"~102,000 building records"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5324
+#, no-c-format
+msgid ""
+"WITH \n"
+"-- our features of interest\n"
+"   feat AS (SELECT gid As building_id, geom_26986 As geom FROM buildings AS "
+"b \n"
+"    WHERE gid IN(100, 103,150)\n"
+"   ),\n"
+"-- clip band 2 of raster tiles to boundaries of builds\n"
+"-- then get stats for these clipped regions\n"
+"   b_stats AS\n"
+"        (SELECT  building_id, (stats).*\n"
+"FROM (SELECT building_id, ST_SummaryStats(ST_Clip(rast,2,geom)) As stats\n"
+"    FROM aerials.boston\n"
+"                INNER JOIN feat\n"
+"        ON ST_Intersects(feat.geom,rast) \n"
+" ) As foo\n"
+" )\n"
+"-- finally summarize stats\n"
+"SELECT building_id, SUM(count) As num_pixels\n"
+"  , MIN(min) As min_pval\n"
+"  ,  MAX(max) As max_pval\n"
+"  , SUM(mean*count)/SUM(count) As avg_pval\n"
+"        FROM b_stats\n"
+" WHERE count > 0\n"
+"        GROUP BY building_id\n"
+"        ORDER BY building_id;\n"
+" building_id | num_pixels | min_pval | max_pval |     avg_pval\n"
+"-------------+------------+----------+----------+------------------\n"
+"         100 |       1090 |        1 |      255 | 61.0697247706422\n"
+"         103 |        655 |        7 |      182 | 70.5038167938931\n"
+"         150 |        895 |        2 |      252 | 185.642458100559"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5328
+#, no-c-format
+msgid "Example: Raster coverage"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5329
+#, no-c-format
+msgid ""
+"-- stats for each band --\n"
+"SELECT band, (stats).*\n"
+"FROM (SELECT band, ST_SummaryStats('o_4_boston','rast', band) As stats\n"
+"    FROM generate_series(1,3) As band) As foo;\n"
+"                                    \n"
+" band |  count  |  sum   |       mean       |      stddev      | min | max\n"
+"------+---------+--------+------------------+------------------+-----+-----\n"
+"    1 | 8450000 | 725799 | 82.7064349112426 | 45.6800222638537 |   0 | 255\n"
+"    2 | 8450000 | 700487 | 81.4197705325444 | 44.2161184161765 |   0 | 255\n"
+"    3 | 8450000 | 575943 |  74.682739408284 | 44.2143885481407 |   0 | 255\n"
+"    \n"
+"-- For a table -- will get better speed if set sampling to less than 100%\n"
+"-- Here we set to 25% and get a much faster answer\n"
+"SELECT band, (stats).*\n"
+"FROM (SELECT band, ST_SummaryStats('o_4_boston','rast', band,true,0.25) As "
+"stats\n"
+"    FROM generate_series(1,3) As band) As foo;\n"
+"                                    \n"
+" band |  count  |  sum   |       mean       |      stddev      | min | max\n"
+"------+---------+--------+------------------+------------------+-----+-----\n"
+"    1 | 2112500 | 180686 | 82.6890480473373 | 45.6961043857248 |   0 | 255\n"
+"    2 | 2112500 | 174571 |  81.448503668639 | 44.2252623171821 |   0 | 255\n"
+"    3 | 2112500 | 144364 | 74.6765884023669 | 44.2014869384578 |   0 | 255"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5334
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_Count\"/"
+">, <xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5345
+#, no-c-format
+msgid "ST_SummaryStatsAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5346
+#, no-c-format
+msgid ""
+"Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, "
+"max for a given raster band of a set of raster. Band 1 is assumed is no band "
+"is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5350
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStatsAgg</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5380
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>NODATA</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to False to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5382
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between 0 and 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5389
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        (stats).count,\n"
+"        round((stats).sum::numeric, 3),\n"
+"        round((stats).mean::numeric, 3),\n"
+"        round((stats).stddev::numeric, 3),\n"
+"        round((stats).min::numeric, 3),\n"
+"        round((stats).max::numeric, 3)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats\n"
+"        FROM foo\n"
+") bar;\n"
+"\n"
+" count |  round  | round  | round |  round  | round \n"
+"-------+---------+--------+-------+---------+-------\n"
+"    20 | -68.584 | -3.429 | 6.571 | -10.000 | 3.142\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5394
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_Count\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5405
+#, no-c-format
+msgid "ST_ValueCount"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5406
+#, no-c-format
+msgid ""
+"Returns a set of records containing a pixel band value and count of the "
+"number of pixels in a given band of a raster (or a raster coverage) that "
+"have a given set of values. If no band is specified defaults to band 1. By "
+"default nodata value pixels are not counted. and all other values in the "
+"pixel are output and pixel band values are rounded to the nearest integer."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5411
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision[] </"
+"type> <parameter>searchvalues</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>OUT value</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>OUT count</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>searchvalue</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>roundto=0</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>SETOF record "
+"<function>ST_ValueCount</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>searchvalues</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>roundto=0</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>OUT value</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>OUT count</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>SETOF record <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>searchvalues</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>roundto=0</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>OUT value</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>OUT count</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>bigint<function>ST_ValueCount</"
+"function></funcdef> <paramdef><type>text </type> <parameter>rastertable</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>rastercolumn</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bigint <function>ST_ValueCount</function></funcdef> "
+"<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>searchvalue</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>roundto=0</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5524
+#, no-c-format
+msgid ""
+"Returns a set of records with columns <varname>value</varname> "
+"<varname>count</varname> which contain the pixel band value and count of "
+"pixels in the raster tile or raster coverage of selected band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5525
+#, no-c-format
+msgid ""
+"If no band is specified <varname>nband</varname> defaults to 1. If no "
+"<varname>searchvalues</varname> are specified, will return all pixel values "
+"found in the raster or raster coverage. If one searchvalue is given, will "
+"return an integer instead of records denoting the count of pixels having "
+"that pixel band value"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5533
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
+"--Example will count only pixels of band 1 that are not 249. --\n"
+"\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+"                                                                \n"
+" value | count\n"
+"-------+-------\n"
+"   250 |     2\n"
+"   251 |     1\n"
+"   252 |     2\n"
+"   253 |     6\n"
+"   254 |    12\n"
+"   \n"
+"-- Example will coount all pixels of band 1 including 249 --\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast,1,false) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+"                                    \n"
+" value | count\n"
+"-------+-------\n"
+"   249 |     2\n"
+"   250 |     2\n"
+"   251 |     1\n"
+"   252 |     2\n"
+"   253 |     6\n"
+"   254 |    12\n"
+"   \n"
+"-- Example will count only non-nodata value pixels of band 2\n"
+"SELECT (pvc).*\n"
+"FROM (SELECT ST_ValueCount(rast,2) As pvc\n"
+"    FROM dummy_rast WHERE rid=2) As foo\n"
+"    ORDER BY (pvc).value;\n"
+" value | count\n"
+"-------+-------\n"
+"    78 |     1\n"
+"    79 |     1\n"
+"    88 |     1\n"
+"    89 |     1\n"
+"    96 |     1\n"
+"    97 |     1\n"
+"    98 |     1\n"
+"    99 |     2\n"
+"   112 |     2\n"
+":"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5534
+#, no-c-format
+msgid ""
+"--real live example.  Count all the pixels in an aerial raster tile band 2 "
+"intersecting a geometry \n"
+"-- and return only the pixel band values that have a count > 500\n"
+"SELECT (pvc).value, SUM((pvc).count) As total\n"
+"FROM (SELECT ST_ValueCount(rast,2) As pvc\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"             ) \n"
+"        ) As foo\n"
+"    GROUP BY (pvc).value\n"
+"    HAVING SUM((pvc).count) > 500\n"
+"    ORDER BY (pvc).value;\n"
+"    \n"
+" value | total\n"
+"-------+-----\n"
+"    51 | 502\n"
+"    54 | 521"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5536
+#, no-c-format
+msgid ""
+"-- Just return count of pixels in each raster tile that have value of 100 of "
+"tiles that intersect  a specific geometry --\n"
+"SELECT rid, ST_ValueCount(rast,2,100) As count\n"
+"    FROM o_4_boston \n"
+"        WHERE ST_Intersects(rast, \n"
+"            ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 "
+"892200,224706 892151,224486 892151))',26986)\n"
+"             ) ;\n"
+"\n"
+" rid | count\n"
+"-----+-------\n"
+"   1 |    56\n"
+"   2 |    95\n"
+"  14 |    37\n"
+"  15 |    64"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5541
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5547
+#, no-c-format
+msgid "Raster Outputs"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5550
+#, no-c-format
+msgid "ST_AsBinary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5551
+#, no-c-format
+msgid ""
+"Return the Well-Known Binary (WKB) representation of the raster without SRID "
+"meta data."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:5556
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>outasin=FALSE</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5567
+#, no-c-format
+msgid ""
+"Returns the Binary representation of the raster. If <varname>outasin</"
+"varname> is TRUE, out-db bands are treated as in-db."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5571
+#, no-c-format
+msgid ""
+"This is useful in binary cursors to pull data out of the database without "
+"converting it to a string representation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5576
+#, no-c-format
+msgid ""
+"By default, WKB output contains the external file path for out-db bands. If "
+"the client does not have access to the raster file underlying an out-db "
+"band, set <varname>outasin</varname> to TRUE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5580
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of <varname>outasin</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5586
+#, no-c-format
+msgid ""
+"SELECT ST_AsBinary(rast) As rastbin FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                                         rastbin\n"
+"---------------------------------------------------------------------------------\n"
+"\\001\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000@"
+"\\000\\000\\000\\000\\000\\000\\010@\\\n"
+"000\\000\\000\\000\\000\\000\\340?\\000\\000\\000\\000\\000\\000\\340?"
+"\\000\\000\\000\\000\\000\\00\n"
+"0\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\012\\000\\000\\000\\012\\000\\024\\000"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5593
+#, no-c-format
+msgid "ST_AsGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5594
+#, no-c-format
+msgid ""
+"Return the raster tile in the designated GDAL Raster format. Raster formats "
+"are one of those supported by your compiled library. Use ST_GDALRasters() to "
+"get a list of formats supported by your library."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:5599
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>format</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5613
+#, no-c-format
+msgid ""
+"Returns the raster tile in the designated format. Arguments are itemized "
+"below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5616
+#, no-c-format
+msgid ""
+"<varname>format</varname> format to output. This is dependent on the drivers "
+"compiled in your libgdal library. Generally available are 'JPEG', 'GTIff', "
+"'PNG'. Use <xref linkend=\"RT_ST_GDALDrivers\"/> to get a list of formats "
+"supported by your library."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5621
+#, no-c-format
+msgid ""
+"<varname>options</varname> text array of GDAL options. Valid options are "
+"dependent on the format. Refer to <ulink url=\"http://www.gdal.org/"
+"frmt_various.html\">GDAL Raster format options</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5626
+#, no-c-format
+msgid ""
+"<varname>srs</varname> The proj4text or srtext (from spatial_ref_sys) to "
+"embed in the image"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5635
+#, no-c-format
+msgid "JPEG Output Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5637
+#, no-c-format
+msgid ""
+"SELECT ST_AsGDALRaster(rast, 'JPEG') As rastjpg\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY['QUALITY=50']) As rastjpg\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5642
+#, no-c-format
+msgid "GTIFF Output Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5644
+#, no-c-format
+msgid ""
+"SELECT ST_AsGDALRaster(rast, 'GTiff') As rastjpg\n"
+"FROM dummy_rast WHERE rid=2;\n"
+"\n"
+"-- Out GeoTiff with jpeg compression, 90% quality\n"
+"SELECT ST_AsGDALRaster(rast, 'GTiff',  \n"
+"  ARRAY['COMPRESS=JPEG', 'JPEG_QUALITY=90'], \n"
+"  4269) As rasttiff\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5651
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5657
+#, no-c-format
+msgid "ST_AsJPEG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5658
+#, no-c-format
+msgid ""
+"Return the raster tile selected bands as a single Joint Photographic Exports "
+"Group (JPEG) image (byte array). If no band is specified and 1 or more than "
+"3 bands, then only the first band is used. If only 3 bands then all 3 bands "
+"are used and mapped to RGB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5662
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>quality</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsJPEG</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer[] </type> <parameter>nbands</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>quality</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5698
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Joint Photographic "
+"Exports Group Image (JPEG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if "
+"you need to export as less common raster types. If no band is specified and "
+"1 or more than 3 bands, then only the first band is used. If 3 bands then "
+"all 3 bands are used. There are many variants of the function with many "
+"options. These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5701 reference_raster.xml:5792
+#, no-c-format
+msgid "<varname>nband</varname> is for single band exports."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5706
+#, no-c-format
+msgid ""
+"<varname>nbands</varname> is an array of bands to export (note that max is 3 "
+"for JPEG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band "
+"3 to Red, band 2 to green and band 1 to blue"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5711
+#, no-c-format
+msgid ""
+"<varname>quality</varname> number from 0 to 100. The higher the number the "
+"crisper the image."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5716
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL options as defined for JPEG "
+"(look at create_options for JPEG <xref linkend=\"RT_ST_GDALDrivers\"/>). For "
+"JPEG valid ones are <varname>PROGRESSIVE</varname> ON or OFF and "
+"<varname>QUALITY</varname> a range from 0 to 100 and default to 75. Refer to "
+"<ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL Raster format "
+"options</ulink> for more details."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5733
+#, no-c-format
+msgid "Examples: Output"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5735
+#, no-c-format
+msgid ""
+"-- output first 3 bands 75% quality\n"
+"SELECT ST_AsJPEG(rast) As rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"-- output only first band as 90% quality\n"
+"SELECT ST_AsJPEG(rast,1,90) As rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;\n"
+"    \n"
+"-- output first 3 bands (but make band 2 Red, band 1 green, and band 3 blue, "
+"progressive and 90% quality\n"
+"SELECT ST_AsJPEG(rast,ARRAY[2,1,3],ARRAY['QUALITY=90','PROGRESSIVE=ON']) As "
+"rastjpg\n"
+"    FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5742
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_AsGDALRaster"
+"\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5748
+#, no-c-format
+msgid "ST_AsPNG"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5749
+#, no-c-format
+msgid ""
+"Return the raster tile selected bands as a single portable network graphics "
+"(PNG) image (byte array). If 1, 3, or 4 bands in raster and no bands are "
+"specified, then all bands are used. If more 2 or more than 4 bands and no "
+"bands specified, then only band 1 is used. Bands are mapped to RGB or RGBA "
+"space."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5753
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
+"<parameter>nbands</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>compression</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5789
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Portable Network "
+"Graphics Image (PNG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if you need "
+"to export as less common raster types. If no band is specified, then the "
+"first 3 bands are exported. There are many variants of the function with "
+"many options. If no <varname>srid</varname> is specified then then srid of "
+"the raster is used. These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5797 reference_raster.xml:5880
+#, no-c-format
+msgid ""
+"<varname>nbands</varname> is an array of bands to export (note that max is 3 "
+"for PNG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band "
+"3 to Red, band 2 to green and band 1 to blue"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5802
+#, no-c-format
+msgid ""
+"<varname>compression</varname> number from 1 to 9. The higher the number the "
+"greater the compression."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5807
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL options as defined for PNG "
+"(look at create_options for PNG of <xref linkend=\"RT_ST_GDALDrivers\"/>). "
+"For PNG valid one is only ZLEVEL (amount of time to spend on compression -- "
+"default 6) e.g. ARRAY['ZLEVEL=9']. WORLDFILE is not allowed since the "
+"function would have to output two outputs. Refer to <ulink url=\"http://www."
+"gdal.org/frmt_various.html\">GDAL Raster format options</ulink> for more "
+"details."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5826
+#, no-c-format
+msgid ""
+"SELECT ST_AsPNG(rast) As rastpng\n"
+"FROM dummy_rast WHERE rid=2;\n"
+"\n"
+"-- export the first 3 bands and map band 3 to Red, band 1 to Green, band 2 "
+"to blue\n"
+"SELECT ST_AsPNG(rast, ARRAY[3,1,2]) As rastpng\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5833
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ColorMap\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_Raster_Applications\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5839
+#, no-c-format
+msgid "ST_AsTIFF"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5840
+#, no-c-format
+msgid ""
+"Return the raster selected bands as a single TIFF image (byte array). If no "
+"band is specified, then will try to use all bands."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5844
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>options=''</"
+"parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>compression=''</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>srid=sameassource</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
+"<paramdef><type>text[] </type> <parameter>options</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid=sameassource</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5877
+#, no-c-format
+msgid ""
+"Returns the selected bands of the raster as a single Tagged Image File "
+"Format (TIFF). If no band is specified, will try to use all bands. This is a "
+"wrapper around <xref linkend=\"RT_ST_AsGDALRaster\"/>. Use <xref linkend="
+"\"RT_ST_AsGDALRaster\"/> if you need to export as less common raster types. "
+"There are many variants of the function with many options. If no spatial "
+"reference SRS text is present, the spatial reference of the raster is used. "
+"These are itemized below:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5885
+#, no-c-format
+msgid ""
+"<varname>compression</varname> Compression expression -- JPEG90 (or some "
+"other percent), LZW, JPEG, DEFLATE9."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5890
+#, no-c-format
+msgid ""
+"<varname>options</varname> text Array of GDAL create options as defined for "
+"GTiff (look at create_options for GTiff of <xref linkend=\"RT_ST_GDALDrivers"
+"\"/>). or refer to <ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL "
+"Raster format options</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5895
+#, no-c-format
+msgid ""
+"<varname>srid</varname> srid of spatial_ref_sys of the raster. This is used "
+"to populate the georeference information"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5904
+#, no-c-format
+msgid "Examples: Use jpeg compression 90%"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5906
+#, no-c-format
+msgid ""
+"SELECT ST_AsTIFF(rast, 'JPEG90') As rasttiff\n"
+"FROM dummy_rast WHERE rid=2;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5913
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5919
+#, no-c-format
+msgid "Raster Processing"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:5922
+#, no-c-format
+msgid "Map Algebra"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5926
+#, no-c-format
+msgid "ST_Clip"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5927
+#, no-c-format
+msgid ""
+"Returns the raster clipped by the input geometry. If band number not is "
+"specified, all bands are processed. If <varname>crop</varname> is not "
+"specified or TRUE, the output raster is cropped."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5931
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5988
+#, no-c-format
+msgid ""
+"Returns a raster that is clipped by the input geometry <varname>geom</"
+"varname>. If band index is not specified, all bands are processed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5992
+#, no-c-format
+msgid ""
+"Rasters resulting from ST_Clip must have a nodata value assigned for areas "
+"clipped, one for each band. If none are provided and the input raster do not "
+"have a nodata value defined, nodata values of the resulting raster are set "
+"to ST_MinPossibleValue(ST_BandPixelType(rast, band)). When the number of "
+"nodata value in the array is smaller than the number of band, the last one "
+"in the array is used for the remaining bands. If the number of nodata value "
+"is greater than the number of band, the extra nodata values are ignored. All "
+"variants accepting an array of nodata values also accept a single value "
+"which will be assigned to each band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5996
+#, no-c-format
+msgid ""
+"If <varname>crop</varname> is not specified, true is assumed meaning the "
+"output raster is cropped to the intersection of the <varname>geom</"
+"varname>and <varname>rast</varname> extents. If <varname>crop</varname> is "
+"set to false, the new raster gets the same extent as <varname>rast</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6002
+#, no-c-format
+msgid "Enhanced: 2.1.0 Rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6004
+#, no-c-format
+msgid ""
+"Examples here use Massachusetts aerial data available on MassGIS site <ulink "
+"url=\"http://www.mass.gov/mgis/colororthos2008.htm\">MassGIS Aerial Orthos</"
+"ulink>. Coordinates are in Massachusetts State Plane Meters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6010
+#, no-c-format
+msgid "Examples: 1 band clipping"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6012
+#, no-c-format
+msgid ""
+"-- Clip the first band of an aerial tile by a 20 meter buffer.\n"
+"SELECT ST_Clip(rast, 1,\n"
+"                ST_Buffer(ST_Centroid(ST_Envelope(rast)),20)\n"
+"        ) from aerials.boston\n"
+"WHERE rid = 4;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6014
+#, no-c-format
+msgid ""
+"-- Demonstrate effect of crop on final dimensions of raster\n"
+"-- Note how final extent is clipped to that of the geometry\n"
+"-- if crop = true\n"
+"SELECT ST_XMax(ST_Envelope(ST_Clip(rast, 1, clipper, true))) As "
+"xmax_w_trim,\n"
+"        ST_XMax(clipper) As xmax_clipper,\n"
+"        ST_XMax(ST_Envelope(ST_Clip(rast, 1, clipper, false))) As "
+"xmax_wo_trim,\n"
+"        ST_XMax(ST_Envelope(rast)) As xmax_rast_orig\n"
+"FROM (SELECT rast, ST_Buffer(ST_Centroid(ST_Envelope(rast)),6) As clipper\n"
+"        FROM aerials.boston\n"
+"WHERE rid = 6) As foo;\n"
+"\n"
+"   xmax_w_trim    |   xmax_clipper   |   xmax_wo_trim   |  xmax_rast_orig\n"
+"------------------+------------------+------------------+------------------\n"
+" 230657.436173996 | 230657.436173996 | 230666.436173996 | 230666.436173996"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6028 reference_raster.xml:6071
+#: reference_raster.xml:6114
+#, no-c-format
+msgid "Full raster tile before clipping"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6042 reference_raster.xml:6128
+#, no-c-format
+msgid "After Clipping"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6055
+#, no-c-format
+msgid ""
+"Examples: 1 band clipping with no crop and add back other bands unchanged"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6057
+#, no-c-format
+msgid ""
+"-- Same example as before, but we need to set crop to false to be able to "
+"use ST_AddBand\n"
+"-- because ST_AddBand requires all bands be the same Width and height\n"
+"SELECT ST_AddBand(ST_Clip(rast, 1,\n"
+"                ST_Buffer(ST_Centroid(ST_Envelope(rast)),20),false\n"
+"        ), ARRAY[ST_Band(rast,2),ST_Band(rast,3)] ) from aerials.boston\n"
+"WHERE rid = 6;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6085
+#, no-c-format
+msgid "After Clipping - surreal"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6098
+#, no-c-format
+msgid "Examples: Clip all bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6100
+#, no-c-format
+msgid ""
+"-- Clip all bands of an aerial tile by a 20 meter buffer.\n"
+"-- Only difference is we don't specify a specific band to clip\n"
+"-- so all bands are clipped\n"
+"SELECT ST_Clip(rast,\n"
+"          ST_Buffer(ST_Centroid(ST_Envelope(rast)), 20), \n"
+"          false\n"
+"        ) from aerials.boston\n"
+"WHERE rid = 4;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6143
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Intersection\"/"
+">"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6153
+#, no-c-format
+msgid "ST_ColorMap"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6154
+#, no-c-format
+msgid ""
+"Creates a new raster of up to four 8BUI bands (grayscale, RGB, RGBA) from "
+"the source raster and a specified band. Band 1 is assumed if not specified."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:6159
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>colormap=grayscale</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>method=INTERPOLATE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:6169
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>colormap</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>method=INTERPOLATE</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6181
+#, no-c-format
+msgid ""
+"Apply a <varname>colormap</varname> to the band at <varname>nband</varname> "
+"of <varname>rast</varname> resulting a new raster comprised of up to four "
+"8BUI bands. The number of 8BUI bands in the new raster is determined by the "
+"number of color components defined in <varname>colormap</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6185
+#, no-c-format
+msgid "If <varname>nband</varname> is not specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6187
+#, no-c-format
+msgid ""
+"<varname>colormap</varname> can be a keyword of a pre-defined colormap or a "
+"set of lines defining the value and the color components."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6191
+#, no-c-format
+msgid "Valid pre-defined <varname>colormap</varname> keyword:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6197
+#, no-c-format
+msgid ""
+"<varname>grayscale</varname> or <varname>greyscale</varname> for a one 8BUI "
+"band raster of shades of gray."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6202
+#, no-c-format
+msgid ""
+"<varname>pseudocolor</varname> for a four 8BUI (RGBA) band raster with "
+"colors going from blue to green to red."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6207
+#, no-c-format
+msgid ""
+"<varname>fire</varname> for a four 8BUI (RGBA) band raster with colors going "
+"from black to red to pale yellow."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6212
+#, no-c-format
+msgid ""
+"<varname>bluered</varname> for a four 8BUI (RGBA) band raster with colors "
+"going from blue to pale white to red."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6218
+#, no-c-format
+msgid ""
+"Users can pass a set of entries (one per line) to <varname>colormap</"
+"varname> to specify custom colormaps. Each entry generally consists of five "
+"values: the pixel value and corresponding Red, Green, Blue, Alpha components "
+"(color components between 0 and 255). Percent values can be used instead of "
+"pixel values where 0% and 100% are the minimum and maximum values found in "
+"the raster band. Values can be separated with commas (','), tabs, colons "
+"(':') and/or spaces. The pixel value can be set to <emphasis>nv</emphasis>, "
+"<emphasis>null</emphasis> or <emphasis>nodata</emphasis> for the NODATA "
+"value. An example is provided below."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6222
+#, no-c-format
+msgid ""
+"5 0 0 0 255\n"
+"4 100:50 55 255\n"
+"1 150,100 150 255\n"
+"0% 255 255 255 255\n"
+"nv 0 0 0 0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6224
+#, no-c-format
+msgid ""
+"The syntax of <varname>colormap</varname> is similar to that of the color-"
+"relief mode of GDAL <ulink url=\"http://www.gdal.org/gdaldem."
+"html#gdaldem_color_relief\">gdaldem</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6228
+#, no-c-format
+msgid "Valid keywords for <varname>method</varname>:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6234
+#, no-c-format
+msgid ""
+"<varname>INTERPOLATE</varname> to use linear interpolation to smoothly blend "
+"the colors between the given pixel values"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6239
+#, no-c-format
+msgid ""
+"<varname>EXACT</varname> to strictly match only those pixels values found in "
+"the colormap. Pixels whose value does not match a colormap entry will be set "
+"to 0 0 0 0 (RGBA)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6244
+#, no-c-format
+msgid ""
+"<varname>NEAREST</varname> to use the colormap entry whose value is closest "
+"to the pixel value"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6251
+#, no-c-format
+msgid ""
+"A great reference for colormaps is <ulink url=\"http://www.colorbrewer2.org"
+"\">ColorBrewer</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6256
+#, no-c-format
+msgid ""
+"The resulting bands of new raster will have no NODATA value set. Use <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/> to set a NODATA value if one is "
+"needed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6266
+#, no-c-format
+msgid "This is a junk table to play with"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6268
+#, no-c-format
+msgid ""
+"-- setup test raster table --\n"
+"DROP TABLE IF EXISTS funky_shapes;\n"
+"CREATE TABLE funky_shapes(rast raster);\n"
+"\n"
+"INSERT INTO funky_shapes(rast)\n"
+"WITH ref AS (\n"
+"        SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_Union(rast)\n"
+"FROM (\n"
+"        SELECT \n"
+"                ST_AsRaster(\n"
+"                        ST_Rotate(\n"
+"                                ST_Buffer(\n"
+"                                        ST_GeomFromText('LINESTRING(0 2,50 "
+"50,150 150,125 50)'),\n"
+"                                        i*2\n"
+"                                ),\n"
+"                                pi() * i * 0.125, ST_Point(50,50)\n"
+"                        ),\n"
+"                        ref.rast, '8BUI'::text, i * 5\n"
+"                ) AS rast\n"
+"        FROM ref\n"
+"        CROSS JOIN generate_series(1, 10, 3) AS i\n"
+") AS shapes;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6270
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_NumBands(rast) As n_orig,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'greyscale')) As ngrey,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'pseudocolor')) As npseudo,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'fire')) As nfire,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'bluered')) As nbluered,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As nred\n"
+"FROM funky_shapes;"
+msgstr ""
+
+#. Tag: screen
+#: reference_raster.xml:6272
+#, no-c-format
+msgid ""
+"n_orig | ngrey | npseudo | nfire | nbluered | nred\n"
+"--------+-------+---------+-------+----------+------\n"
+"      1 |     1 |       4 |     4 |        4 |    3"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6276
+#, no-c-format
+msgid "Examples: Compare different color map looks using ST_AsPNG"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6277
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_AsPNG(rast) As orig_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1,'greyscale')) As grey_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'pseudocolor')) As pseudo_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'nfire')) As fire_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'bluered')) As bluered_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As red_png\n"
+"FROM funky_shapes;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6291
+#, no-c-format
+msgid "orig_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6305
+#, no-c-format
+msgid "grey_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6319
+#, no-c-format
+msgid "pseudo_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6335
+#, no-c-format
+msgid "fire_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6349
+#, no-c-format
+msgid "bluered_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6363
+#, no-c-format
+msgid "red_png"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6377
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsRaster\"/> <xref linkend=\"RT_ST_MapAlgebra\"/>, "
+"<xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6391
+#, no-c-format
+msgid "ST_Intersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6392
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a raster or a set of geometry-pixelvalue pairs "
+"representing the shared portion of two rasters or the geometrical "
+"intersection of a vectorization of the raster and a geometry.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6396
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>band_num=1</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof geomval "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band_num</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Intersection</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>double precision[] </type> <parameter>nodataval</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef choice=\"opt\"><type>text "
+"</type> <parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision[] </type> <parameter>nodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Intersection</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num1</parameter></paramdef> <paramdef><type>raster </"
+"type> <parameter>rast2</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>band_num2</parameter></paramdef> <paramdef><type>double "
+"precision[] </type> <parameter>nodataval</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Intersection</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast1</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num1</"
+"parameter></paramdef> <paramdef><type>raster </type> <parameter>rast2</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>band_num2</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>returnband='BOTH'</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision[] </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6456
+#, no-c-format
+msgid ""
+"<para>Returns a raster or a set of geometry-pixelvalue pairs representing "
+"the shared portion of two rasters or the geometrical intersection of a "
+"vectorization of the raster and a geometry.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6460
+#, no-c-format
+msgid ""
+"The first three variants, returning a setof geomval, works in vector space. "
+"The raster is first vectorized (using ST_DumpAsPolygon) into a set of "
+"geomval rows and those rows are then intersected with the geometry using the "
+"ST_Intersection(geometry, geometry) PostGIS function. Geometries "
+"intersecting only with a nodata value area of a raster returns an empty "
+"geometry. They are normally excluded from the results by the proper usage of "
+"ST_Intersect in the WHERE clause."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6464
+#, no-c-format
+msgid ""
+"You can access the geometry and the value parts of the resulting set of "
+"geomval by surrounding them with parenthesis and adding '.geom' or '.val' at "
+"the end of the expression. e.g. (ST_Intersection(rast, geom)).geom"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6468
+#, no-c-format
+msgid ""
+"The other variants, returning a raster, works in raster space. They are "
+"using the two rasters version of ST_MapAlgebraExpr to perform the "
+"intersection."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6472
+#, no-c-format
+msgid ""
+"The extent of the resulting raster corresponds to the geometrical "
+"intersection of the two raster extents. The resulting raster includes "
+"'BAND1', 'BAND2' or 'BOTH' bands, following what is passed as the "
+"<varname>returnband</varname> parameter. Nodata value areas present in any "
+"band results in nodata value areas in every bands of the result. In other "
+"words, any pixel intersecting with a nodata value pixel becomes a nodata "
+"value pixel in the result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6476
+#, no-c-format
+msgid ""
+"Rasters resulting from ST_Intersection must have a nodata value assigned for "
+"areas not intersecting. You can define or replace the nodata value for any "
+"resulting band by providing a <varname>nodataval[]</varname> array of one or "
+"two nodata values depending if you request 'BAND1', 'BAND2' or 'BOTH' bands. "
+"The first value in the array replace the nodata value in the first band and "
+"the second value replace the nodata value in the second band. If one input "
+"band do not have a nodata value defined and none are provided as an array, "
+"one is chosen using the ST_MinPossibleValue function. All variant accepting "
+"an array of nodata value can also accept a single value which will be "
+"assigned to each requested band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6480
+#, no-c-format
+msgid "In all variants, if no band number is specified band 1 is assumed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6485
+#, no-c-format
+msgid ""
+"To get more control on the resulting extent or on what to return when "
+"encountering a nodata value, use the two rasters version of <xref linkend="
+"\"RT_ST_MapAlgebraExpr2\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6491
+#, no-c-format
+msgid ""
+"To compute the intersection of a raster band with a geometry in raster "
+"space, use <xref linkend=\"RT_ST_Clip\"/>. ST_Clip works on multiple bands "
+"rasters and does not return a band corresponding to the rasterized geometry."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6497
+#, no-c-format
+msgid ""
+"ST_Intersection should be used in conjunction with ST_Intersects and an "
+"index on the raster column and/or the geometry column."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6502
+#, no-c-format
+msgid ""
+"Enhanced: 2.0.0 - Intersection in the raster space was introduced. In "
+"earlier pre-2.0.0 versions, only intersection performed in vector space were "
+"supported."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6508
+#, no-c-format
+msgid "Examples: Geometry, Raster -- resulting in geometry vals"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6510
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        foo.rid,\n"
+"        foo.gid,\n"
+"        ST_AsText((foo.geomval).geom) As geomwkt,\n"
+"        (foo.geomval).val\n"
+"FROM (\n"
+"        SELECT\n"
+"                A.rid,\n"
+"                g.gid,\n"
+"                ST_Intersection(A.rast, g.geom) As geomval\n"
+"        FROM dummy_rast AS A\n"
+"        CROSS JOIN (\n"
+"                VALUES\n"
+"                        (1, ST_Point(3427928, 5793243.85) ),\n"
+"                        (2, ST_GeomFromText('LINESTRING(3427927.85 "
+"5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)')),\n"
+"                        (3, ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"        ) As g(gid,geom)\n"
+"        WHERE A.rid = 2\n"
+") As foo;\n"
+"\n"
+" rid | gid |      "
+"geomwkt                                                                                                "
+"| val\n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------\n"
+"   2 |   1 | POINT(3427928 "
+"5793243.85)                                                                        "
+"| 249\n"
+"   2 |   1 | POINT(3427928 "
+"5793243.85)                                                                        "
+"| 253\n"
+"   2 |   2 | POINT(3427927.85 "
+"5793243.75)                                                                | "
+"254\n"
+"   2 |   2 | POINT(3427927.8 "
+"5793243.8)                                                                        "
+"| 251\n"
+"   2 |   2 | POINT(3427927.8 "
+"5793243.8)                                                                        "
+"| 253\n"
+"   2 |   2 | LINESTRING(3427927.8 5793243.75,3427927.8 5793243.8)           "
+"| 252\n"
+"   2 |   2 | MULTILINESTRING((3427927.8 5793243.8,3427927.8 5793243.75),...) "
+"| 250\n"
+"   2 |   3 | GEOMETRYCOLLECTION EMPTY"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6514
+#, no-c-format
+msgid "Example: Raster, Geometry -- resulting is a raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6515
+#, no-c-format
+msgid "Examples coming soon"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6521
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Intersects\"/>, <xref linkend="
+"\"RT_ST_MapAlgebraExpr2\"/>, <xref linkend=\"RT_ST_Clip\"/>, <xref linkend="
+"\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:6533 reference_raster.xml:6780
+#, no-c-format
+msgid "ST_MapAlgebra"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6534
+#, no-c-format
+msgid ""
+"Callback function version - Returns a one-band raster given one or more "
+"input rasters, band indexes and one user-specified callback function."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6540
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>rastbandarg[] </type> <parameter>rastbandargset</parameter></"
+"paramdef> <paramdef><type>regprocedure </type> <parameter>callbackfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=FIRST</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>raster </type> <parameter>customextent=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>distancex=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancey=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text[] </type> <parameter>VARIADIC "
+"userargs=NULL</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>raster </type> "
+"<parameter>customextent=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>distancex=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>distancey=0</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> "
+"<parameter>VARIADIC userargs=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6601
+#, no-c-format
+msgid ""
+"Returns a one-band raster given one or more input rasters, band indexes and "
+"one user-specified callback function."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6607
+#, no-c-format
+msgid "rast,rast1,rast2, rastbandargset"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6609
+#, no-c-format
+msgid "Rasters on which the map algebra process is evaluated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6610
+#, no-c-format
+msgid ""
+"<varname>rastbandargset</varname> allows the use of a map algebra operation "
+"on many rasters and/or many bands. See example Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6615
+#, no-c-format
+msgid "nband, nband1, nband2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6617
+#, no-c-format
+msgid ""
+"Band numbers of the raster to be evaluated. nband can be an integer or "
+"integer[] denoting the bands. nband1 is band on rast1 and nband2 is band on "
+"rast2 for hte 2 raster/2band case."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6623
+#, no-c-format
+msgid "callbackfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6625
+#, no-c-format
+msgid ""
+"The <varname>callbackfunc</varname> parameter must be the name and signature "
+"of an SQL or PL/pgSQL function, cast to a regprocedure. An example PL/pgSQL "
+"function example is: <programlisting>\n"
+"CREATE OR REPLACE FUNCTION sample_callbackfunc(value double precision[][][], "
+"position integer[][], VARIADIC userargs text[])\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        BEGIN\n"
+"                RETURN 0;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE;\n"
+"                                                                        </"
+"programlisting> The <varname>callbackfunc</varname> must have three "
+"arguments: a 3-dimension double precision array, a 2-dimension integer array "
+"and a variadic 1-dimension text array. The first argument <varname>value</"
+"varname> is the set of values (as double precision) from all input rasters. "
+"The three dimensions (where indexes are 1-based) are: raster #, row y, "
+"column x. The second argument <varname>position</varname> is the set of "
+"pixel positions from the output raster and input rasters. The outer "
+"dimension (where indexes are 0-based) is the raster #. The position at outer "
+"dimension index 0 is the output raster's pixel position. For each outer "
+"dimension, there are two elements in the inner dimension for X and Y. The "
+"third argument <varname>userargs</varname> is for passing through any user-"
+"specified arguments."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6632
+#, no-c-format
+msgid ""
+"Passing a <type>regprocedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is: <programlisting>\n"
+"'sample_callbackfunc(double precision[], integer[], text[])'::regprocedure\n"
+"                                                                        </"
+"programlisting> Note that the argument contains the name of the function, "
+"the types of the function arguments, quotes around the name and argument "
+"types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6644 reference_raster.xml:6894
+#: reference_raster.xml:7189 reference_raster.xml:7743
+#, no-c-format
+msgid "pixeltype"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6646
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, the one band of the new raster "
+"will be of that pixeltype. If pixeltype is passed NULL or left out, the new "
+"raster band will have the same pixeltype as the specified band of the first "
+"raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the "
+"specified band of the appropriate raster (for extent types: SECOND, LAST). "
+"If in doubt, always specify <varname>pixeltype</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6649
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6656 reference_raster.xml:6902
+#: reference_raster.xml:7198
+#, no-c-format
+msgid "extenttype"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6658
+#, no-c-format
+msgid ""
+"Possible values are INTERSECTION (default), UNION, FIRST (default for one "
+"raster variants), SECOND, LAST, CUSTOM."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6665
+#, no-c-format
+msgid "customextent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6667
+#, no-c-format
+msgid ""
+"If <varname>extentype</varname> is CUSTOM, a raster must be provided for "
+"<varname>customextent</varname>. See example 4 of Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6674
+#, no-c-format
+msgid "distancex"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6676
+#, no-c-format
+msgid ""
+"The distance in pixels from the reference cell. So width of resulting matrix "
+"would be <code>2*distancex + 1</code>.If not specified only the reference "
+"cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6683
+#, no-c-format
+msgid "distancey"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6685
+#, no-c-format
+msgid ""
+"The distance in pixels from reference cell in y direction. Height of "
+"resulting matrix would be <code>2*distancey + 1</code> .If not specified "
+"only the reference cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6692
+#, no-c-format
+msgid "userargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6694
+#, no-c-format
+msgid ""
+"The third argument to the <varname>callbackfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments are passed "
+"through to the specified <varname>callbackfunc</varname>, and are contained "
+"in the <varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6702 reference_raster.xml:7518
+#: reference_raster.xml:7637
+#, no-c-format
+msgid ""
+"For more information about the VARIADIC keyword, please refer to the "
+"PostgreSQL documentation and the \"SQL Functions with Variable Numbers of "
+"Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6708
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>callbackfunc</varname> is "
+"required, regardless of whether you choose to pass any arguments to the "
+"callback function for processing or not."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6713
+#, no-c-format
+msgid ""
+"Variant 1 accepts an array of <varname>rastbandarg</varname> allowing the "
+"use of a map algebra operation on many rasters and/or many bands. See "
+"example Variant 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6717
+#, no-c-format
+msgid ""
+"Variants 2 and 3 operate upon one or more bands of one raster. See example "
+"Variant 2 and 3."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6721
+#, no-c-format
+msgid ""
+"Variant 4 operate upon two rasters with one band per raster. See example "
+"Variant 4."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6732 reference_raster.xml:6754
+#, no-c-format
+msgid "One raster, one band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6733
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(rast, 1)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6735 reference_raster.xml:6751
+#, no-c-format
+msgid "One raster, several bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6736
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(rast, 3), ROW(rast, 1), ROW(rast, 3), ROW(rast, "
+"2)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6738
+#, no-c-format
+msgid "Several rasters, several bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6739
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(t1.rast, 3), ROW(t2.rast, 1), ROW(t2.rast, 3), "
+"ROW(t1.rast, 2)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6741
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage with neighborhood. This query only "
+"works with PostgreSQL 9.1 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6742
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rid,\n"
+"        ST_MapAlgebra(\n"
+"                ARRAY[ROW(ST_Union(t2.rast), 1)]::rastbandarg[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure,\n"
+"                '32BUI',\n"
+"                'CUSTOM', t1.rast,\n"
+"                1, 1\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 4\n"
+"        AND t2.rid BETWEEN 0 AND 8\n"
+"        AND ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rid, t1.rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6744
+#, no-c-format
+msgid ""
+"Example like the prior one for tiles of a coverage with neighborhood but "
+"works with PostgreSQL 9.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6745
+#, no-c-format
+msgid ""
+"WITH src AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"WITH foo AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_Union(t2.rast) AS rast\n"
+"        FROM src t1\n"
+"        JOIN src t2\n"
+"                ON ST_Intersects(t1.rast, t2.rast)\n"
+"                AND t2.rid BETWEEN 0 AND 8\n"
+"        WHERE t1.rid = 4\n"
+"        GROUP BY t1.rid\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_MapAlgebra(\n"
+"                        ARRAY[ROW(t2.rast, 1)]::rastbandarg[],\n"
+"                        'raster_nmapalgebra_test(double precision[], int[], "
+"text[])'::regprocedure,\n"
+"                        '32BUI',\n"
+"                        'CUSTOM', t1.rast,\n"
+"                        1, 1\n"
+"                ) AS rast\n"
+"        FROM src t1\n"
+"        JOIN foo t2\n"
+"                ON t1.rid = t2.rid \n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_Metadata(rast)),\n"
+"        (ST_BandMetadata(rast, 1)),\n"
+"        ST_Value(rast, 1, 1, 1)\n"
+"FROM bar;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6749
+#, no-c-format
+msgid "Examples: Variants 2 and 3"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6752
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                rast, ARRAY[3, 1, 3, 2]::integer[],\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6755
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                rast, 2,\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6759
+#, no-c-format
+msgid "Examples: Variant 4"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6761
+#, no-c-format
+msgid "Two rasters, two bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6762
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                'sample_callbackfunc(double precision[], int[], text[])'::"
+"regprocedure\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6769
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra_expr\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:6781
+#, no-c-format
+msgid ""
+"<refpurpose>Expression version - Returns a one-band raster given one or two "
+"input rasters, band indexes and one or more user-specified SQL expressions.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:6787
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebra</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>expression</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6838
+#, no-c-format
+msgid ""
+"<para>Expression version - Returns a one-band raster given one or two input "
+"rasters, band indexes and one or more user-specified SQL expressions.</para>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6846
+#, no-c-format
+msgid "Description: Variants 1 and 2 (one raster)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6848
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If <varname>nband</varname> is not "
+"provided, band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6852 reference_raster.xml:7054
+#: reference_raster.xml:7502
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL, then the new raster "
+"band will have the same pixeltype as the input <varname>rast</varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6857
+#, no-c-format
+msgid "Keywords permitted for <varname>expression</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6860
+#, no-c-format
+msgid "<varname>[rast]</varname> - Pixel value of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6863
+#, no-c-format
+msgid "<varname>[rast.val]</varname> - Pixel value of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6866
+#, no-c-format
+msgid ""
+"<varname>[rast.x]</varname> - 1-based pixel column of the pixel of interest"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6869
+#, no-c-format
+msgid ""
+"<varname>[rast.y]</varname> - 1-based pixel row of the pixel of interest"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6878
+#, no-c-format
+msgid "Description: Variants 3 and 4 (two raster)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6880 reference_raster.xml:7174
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation to the two bands defined by the <varname>expression</"
+"varname> on the two input raster bands <varname>rast1</varname>, "
+"(<varname>rast2</varname>). If no <varname>band1</varname>, <varname>band2</"
+"varname> is specified band 1 is assumed. The resulting raster will be "
+"aligned (scale, skew and pixel corners) on the grid defined by the first "
+"raster. The resulting raster will have the extent defined by the "
+"<varname>extenttype</varname> parameter."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6886 reference_raster.xml:7180
+#, no-c-format
+msgid "expression"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6888 reference_raster.xml:7182
+#, no-c-format
+msgid ""
+"A PostgreSQL algebraic expression involving the two rasters and PostgreSQL "
+"defined functions/operators that will define the pixel value when pixels "
+"intersect. e.g. (([rast1] + [rast2])/2.0)::integer"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6896 reference_raster.xml:7191
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, left out or set to NULL. If not passed in "
+"or set to NULL, will default to the pixeltype of the first raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6904 reference_raster.xml:7200
+#, no-c-format
+msgid "Controls the extent of resulting raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6910 reference_raster.xml:7203
+#, no-c-format
+msgid ""
+"<varname>INTERSECTION</varname> - The extent of the new raster is the "
+"intersection of the two rasters. This is the default."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6915 reference_raster.xml:7208
+#, no-c-format
+msgid ""
+"<varname>UNION</varname> - The extent of the new raster is the union of the "
+"two rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6920 reference_raster.xml:7213
+#, no-c-format
+msgid ""
+"<varname>FIRST</varname> - The extent of the new raster is the same as the "
+"one of the first raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6925 reference_raster.xml:7218
+#, no-c-format
+msgid ""
+"<varname>SECOND</varname> - The extent of the new raster is the same as the "
+"one of the second raster."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6933 reference_raster.xml:7227
+#, no-c-format
+msgid "nodata1expr"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6935 reference_raster.xml:7229
+#, no-c-format
+msgid ""
+"An algebraic expression involving only <varname>rast2</varname> or a "
+"constant that defines what to return when pixels of <varname>rast1</varname> "
+"are nodata values and spatially corresponding rast2 pixels have values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6941 reference_raster.xml:7236
+#, no-c-format
+msgid "nodata2expr"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6943 reference_raster.xml:7238
+#, no-c-format
+msgid ""
+"An algebraic expression involving only <varname>rast1</varname> or a "
+"constant that defines what to return when pixels of <varname>rast2</varname> "
+"are nodata values and spatially corresponding rast1 pixels have values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6949 reference_raster.xml:7245
+#, no-c-format
+msgid "nodatanodataval"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6951 reference_raster.xml:7247
+#, no-c-format
+msgid ""
+"A numeric constant to return when spatially corresponding rast1 and rast2 "
+"pixels are both nodata values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6959
+#, no-c-format
+msgid ""
+"Keywords permitted in <varname>expression</varname>, <varname>nodata1expr</"
+"varname> and <varname>nodata2expr</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6962
+#, no-c-format
+msgid ""
+"<varname>[rast1]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6965
+#, no-c-format
+msgid ""
+"<varname>[rast1.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6968
+#, no-c-format
+msgid ""
+"<varname>[rast1.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6971
+#, no-c-format
+msgid ""
+"<varname>[rast1.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6974
+#, no-c-format
+msgid ""
+"<varname>[rast2]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6977
+#, no-c-format
+msgid ""
+"<varname>[rast2.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6980
+#, no-c-format
+msgid ""
+"<varname>[rast2.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6983
+#, no-c-format
+msgid ""
+"<varname>[rast2.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6991
+#, no-c-format
+msgid "Examples: Variants 1 and 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6993
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 1, 1, 0, 0, 0), "
+"'32BF', 1, -1) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(rast, 1, NULL, 'ceil([rast]*[rast.x]/[rast.y]+[rast."
+"val])')\n"
+"FROM foo"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6997
+#, no-c-format
+msgid "Examples: Variant 3 and 4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6999
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                '([rast2] + [rast1.val]) / 2'\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7005
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7015 reference_raster.xml:7129
+#, no-c-format
+msgid "ST_MapAlgebraExpr"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7016
+#, no-c-format
+msgid ""
+"1 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the input raster band and of "
+"pixeltype provided. Band 1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7020
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7045 reference_raster.xml:7169
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra_expr\"/> "
+"instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7050
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If no <varname>band</varname> is "
+"specified band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7058
+#, no-c-format
+msgid ""
+"In the expression you can use the term <varname>[rast]</varname> to refer to "
+"the pixel value of the original band, <varname>[rast.x]</varname> to refer "
+"to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to "
+"the 1-based pixel row index."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7068 reference_raster.xml:7267
+#: reference_raster.xml:7531
+#, no-c-format
+msgid ""
+"Create a new 1 band raster from our original that is a function of modulo 2 "
+"of the original raster band."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7069
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,"
+"NULL,'mod([rast],2)') WHERE rid = 2;\n"
+"\n"
+"SELECT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 3) AS i\n"
+"CROSS JOIN generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7071
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to be 0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7072
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"UPDATE dummy_rast SET\n"
+"        map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN [rast] BETWEEN "
+"100 and 250 THEN 1 WHEN [rast] = 252 THEN 2 WHEN [rast] BETWEEN 253 and 254 "
+"THEN 3 ELSE 0 END', '0')\n"
+"WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast2, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 5) AS i\n"
+"CROSS JOIN generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT\n"
+"        ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7086 reference_raster.xml:7546
+#, no-c-format
+msgid "original (column rast-view)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7100 reference_raster.xml:7554
+#, no-c-format
+msgid "rast_view_ma"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7111 reference_raster.xml:7562
+#, no-c-format
+msgid ""
+"Create a new 3 band raster same pixel type from our original 3 band raster "
+"with first band altered by map algebra and remaining 2 bands unaltered."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7112
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(rast_view),\n"
+"                                ST_MapAlgebraExpr(rast_view,1,"
+"NULL,'tan([rast])*[rast]')\n"
+"                        ), \n"
+"                        ST_Band(rast_view,2)\n"
+"                ),\n"
+"                ST_Band(rast_view, 3) As rast_view_ma\n"
+"        )\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7117
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref "
+"linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7130
+#, no-c-format
+msgid ""
+"2 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the two input raster bands and of "
+"pixeltype provided. band 1 of each raster is assumed if no band numbers are "
+"specified. The resulting raster will be aligned (scale, skew and pixel "
+"corners) on the grid defined by the first raster and have its extent defined "
+"by the \"extenttype\" parameter. Values for \"extenttype\" can be: "
+"INTERSECTION, UNION, FIRST, SECOND."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7136
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7254
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or no pixel type "
+"specified, then the new raster band will have the same pixeltype as the "
+"input <varname>rast1</varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7257
+#, no-c-format
+msgid ""
+"Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> "
+"to refer to the pixel value of the original raster bands and <varname>[rast1."
+"x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row "
+"positions of the pixels."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7265
+#, no-c-format
+msgid "Example: 2 Band Intersection and Union"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7268
+#, no-c-format
+msgid ""
+"--Create a cool set of rasters --\n"
+"DROP TABLE IF EXISTS fun_shapes; \n"
+"CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast "
+"raster);\n"
+"\n"
+"-- Insert some cool shapes around Boston in Massachusetts state plane meters "
+"--\n"
+"INSERT INTO fun_shapes(fun_name, rast)\n"
+"VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, "
+"901930,26986),200,200,'8BUI',0,0));\n"
+"\n"
+"INSERT INTO fun_shapes(fun_name,rast)\n"
+"WITH ref(rast) AS (SELECT rast FROM fun_shapes WHERE fun_name = 'ref' ) \n"
+"SELECT 'area' AS fun_name, ST_AsRaster(ST_Buffer(ST_SetSRID(ST_Point(236229, "
+"900930),26986), 1000), \n"
+"                        ref.rast,'8BUI', 10, 0) As rast\n"
+"FROM ref\n"
+"UNION ALL\n"
+"SELECT 'rand bubbles', \n"
+"                         ST_AsRaster( \n"
+"                         (SELECT ST_Collect(geom)\n"
+"        FROM (SELECT ST_Buffer(ST_SetSRID(ST_Point(236229 + i*random()*100, "
+"900930 + j*random()*100),26986), random()*20) As geom\n"
+"                        FROM generate_series(1,10) As i, "
+"generate_series(1,10) As j\n"
+"                        ) As foo ), ref.rast,'8BUI', 200, 0) \n"
+"FROM ref;\n"
+"\n"
+"--map them -\n"
+"SELECT  ST_MapAlgebraExpr(\n"
+"                area.rast, bub.rast, '[rast2.val]', '8BUI', 'INTERSECTION', "
+"'[rast2.val]', '[rast1.val]') As interrast,\n"
+"                ST_MapAlgebraExpr(\n"
+"                        area.rast, bub.rast, '[rast2.val]', '8BUI', 'UNION', "
+"'[rast2.val]', '[rast1.val]') As unionrast\n"
+"FROM \n"
+"  (SELECT rast FROM fun_shapes WHERE\n"
+" fun_name = 'area') As area\n"
+"CROSS JOIN  (SELECT rast \n"
+"FROM fun_shapes WHERE\n"
+" fun_name = 'rand bubbles') As bub"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7282
+#, no-c-format
+msgid "mapalgebra intersection"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7296
+#, no-c-format
+msgid "map algebra union"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7309 reference_raster.xml:7648
+#, no-c-format
+msgid "Example: Overlaying rasters on a canvas as separate bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7310
+#, no-c-format
+msgid ""
+"-- we use ST_AsPNG to render the image so all single band ones look grey --\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(1,5),10) As geom\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 10,'join=bevel') As geom\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 150,150 "
+"50)'), 5,'join=bevel') As geom\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS (SELECT ST_AddBand(ST_MakeEmptyRaster(200, \n"
+"        200, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            ),\n"
+"   rbands AS (SELECT ARRAY(SELECT ST_MapAlgebraExpr(canvas.rast, "
+"ST_AsRaster(m.geom, canvas.rast, '8BUI', 100),\n"
+"                 '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1."
+"val]') As rast\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"                ORDER BY m.bnum) As rasts\n"
+"                )\n"
+"          SELECT rasts[1] As rast1 , rasts[2] As rast2, rasts[3] As rast3, "
+"ST_AddBand(\n"
+"                    ST_AddBand(rasts[1],rasts[2]), rasts[3]) As final_rast\n"
+"            FROM rbands;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7323
+#, no-c-format
+msgid "rast1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7336
+#, no-c-format
+msgid "rast2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7352
+#, no-c-format
+msgid "rast3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7366
+#, no-c-format
+msgid "final_rast"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7379
+#, no-c-format
+msgid ""
+"Example: Overlay 2 meter boundary of select parcels over an aerial imagery"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7381
+#, no-c-format
+msgid ""
+"-- Create new 3 band raster composed of first 2 clipped bands, and overlay "
+"of 3rd band with our geometry\n"
+"-- This query took 3.6 seconds on PostGIS windows 64-bit install\n"
+"WITH pr AS\n"
+"-- Note the order of operation: we clip all the rasters to dimensions of our "
+"region\n"
+"(SELECT ST_Clip(rast,ST_Expand(geom,50) ) As rast, g.geom\n"
+"        FROM aerials.o_2_boston AS r INNER JOIN\n"
+"-- union our parcels of interest so they form a single geometry we can later "
+"intersect with\n"
+"                (SELECT ST_Union(ST_Transform(the_geom,26986)) AS geom \n"
+"                  FROM landparcels WHERE pid IN('0303890000', '0303900000')) "
+"As g\n"
+"                ON ST_Intersects(rast::geometry, ST_Expand(g.geom,50))\n"
+"),\n"
+"-- we then union the raster shards together\n"
+"-- ST_Union on raster is kinda of slow but much faster the smaller you can "
+"get the rasters\n"
+"-- therefore we want to clip first and then union\n"
+"prunion AS\n"
+"(SELECT ST_AddBand(NULL, ARRAY[ST_Union(rast,1),ST_Union(rast,2),"
+"ST_Union(rast,3)] ) As clipped,geom\n"
+"FROM pr\n"
+"GROUP BY geom)\n"
+"-- return our final raster which is the unioned shard with \n"
+"-- with the overlay of our parcel boundaries\n"
+"-- add first 2 bands, then mapalgebra of 3rd band + geometry\n"
+"SELECT ST_AddBand(ST_Band(clipped,ARRAY[1,2])\n"
+"        , ST_MapAlgebraExpr(ST_Band(clipped,3), "
+"ST_AsRaster(ST_Buffer(ST_Boundary(geom),2),clipped, '8BUI',250),\n"
+"         '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1.val]') ) As "
+"rast\n"
+"FROM prunion;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7395
+#, no-c-format
+msgid "The blue lines are the boundaries of select parcels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7409
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref "
+"linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Union\"/>, <xref "
+"linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7426 reference_raster.xml:7579
+#, no-c-format
+msgid "ST_MapAlgebraFct"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7427
+#, no-c-format
+msgid ""
+"1 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the input raster band and of pixeltype prodived. Band "
+"1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7431
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7495 reference_raster.xml:7613
+#: reference_raster.xml:7726
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra\"/> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7500
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>onerasteruserfunc</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified, band "
+"1 is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7504
+#, no-c-format
+msgid ""
+"The <varname>onerasteruserfunc</varname> parameter must be the name and "
+"signature of a SQL or PL/pgSQL function, cast to a regprocedure. A very "
+"simple and quite useless PL/pgSQL function example is: "
+"<programlisting>CREATE OR REPLACE FUNCTION simple_function(pixel FLOAT, pos "
+"INTEGER[], VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>userfunction</varname> may accept two or three arguments: a float "
+"value, an optional integer array, and a variadic text array. The first "
+"argument is the value of an individual raster cell (regardless of the raster "
+"datatype). The second argument is the position of the current processing "
+"cell in the form '{x,y}'. The third argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct\"/> shall be passed "
+"through to the <varname>userfunction</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7509
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(float,integer[],"
+"text[])'::regprocedure</programlisting>Note that the argument contains the "
+"name of the function, the types of the function arguments, quotes around the "
+"name and argument types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7513
+#, no-c-format
+msgid ""
+"The third argument to the <varname>userfunction</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct\"/> call are passed through to the specified "
+"<varname>userfunction</varname>, and are contained in the <varname>args</"
+"varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7522
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>userfunction</varname> is "
+"required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7532
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"CREATE FUNCTION mod_fct(pixel float, pos integer[], variadic args text[])\n"
+"RETURNS float\n"
+"AS $$\n"
+"BEGIN\n"
+"    RETURN pixel::integer % 2;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE;\n"
+"\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraFct(rast,NULL,'mod_fct(float,"
+"integer[],text[])'::regprocedure) WHERE rid = 2;\n"
+"\n"
+"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
+"mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7534
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to a passed parameter to the user "
+"function (0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7535
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"CREATE FUNCTION classify_fct(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"DECLARE\n"
+"    nodata float := 0;\n"
+"BEGIN\n"
+"    IF NOT args[1] IS NULL THEN\n"
+"        nodata := args[1];\n"
+"    END IF;\n"
+"    IF pixel < 251 THEN\n"
+"        RETURN 1;\n"
+"    ELSIF pixel = 252 THEN\n"
+"        RETURN 2;\n"
+"    ELSIF pixel > 252 THEN\n"
+"        RETURN 3;\n"
+"    ELSE\n"
+"        RETURN nodata;\n"
+"    END IF;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"UPDATE dummy_rast SET map_rast2 = "
+"ST_MapAlgebraFct(rast,'2BUI','classify_fct(float,integer[],text[])'::"
+"regprocedure, '0') WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
+"j) As mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
+"generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7563
+#, no-c-format
+msgid ""
+"CREATE FUNCTION rast_plus_tan(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"BEGIN\n"
+"        RETURN tan(pixel) * pixel;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"\n"
+"SELECT ST_AddBand(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(rast_view),\n"
+"                        ST_MapAlgebraFct(rast_view,1,"
+"NULL,'rast_plus_tan(float,integer[],text[])'::regprocedure)\n"
+"                ), \n"
+"                ST_Band(rast_view,2)\n"
+"        ),\n"
+"        ST_Band(rast_view, 3) As rast_view_ma\n"
+")\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7568 reference_raster.xml:7691
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference"
+"\"/>, <xref linkend=\"RT_ST_SetValue\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7580
+#, no-c-format
+msgid ""
+"2 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the 2 input raster bands and of pixeltype prodived. "
+"Band 1 is assumed if no band is specified. Extent type defaults to "
+"INTERSECTION if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7584
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band1</parameter></paramdef> <paramdef><type>raster</type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band2</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7618
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>tworastuserfunc</varname> on the input raster "
+"<varname>rast1</varname>, <varname>rast2</varname>. If no <varname>band1</"
+"varname> or <varname>band2</varname> is specified, band 1 is assumed. The "
+"new raster will have the same georeference, width, and height as the "
+"original rasters but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7621
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or left out, then the "
+"new raster band will have the same pixeltype as the input <varname>rast1</"
+"varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7624
+#, no-c-format
+msgid ""
+"The <varname>tworastuserfunc</varname> parameter must be the name and "
+"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
+"PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION "
+"simple_function_for_two_rasters(pixel1 FLOAT, pixel2 FLOAT, pos INTEGER[], "
+"VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>tworastuserfunc</varname> may accept three or four arguments: a "
+"double precision value, a double precision value, an optional integer array, "
+"and a variadic text array. The first argument is the value of an individual "
+"raster cell in <varname>rast1</varname> (regardless of the raster datatype). "
+"The second argument is an individual raster cell value in <varname>rast2</"
+"varname>. The third argument is the position of the current processing cell "
+"in the form '{x,y}'. The fourth argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct2\"/> shall be passed "
+"through to the <varname>tworastuserfunc</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7630
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(double precision, "
+"double precision, integer[], text[])'::regprocedure</programlisting>Note "
+"that the argument contains the name of the function, the types of the "
+"function arguments, quotes around the name and argument types, and a cast to "
+"a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7633
+#, no-c-format
+msgid ""
+"The third argument to the <varname>tworastuserfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct2\"/> call are passed through to the specified "
+"<varname>tworastuserfunc</varname>, and are contained in the "
+"<varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7641
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>tworastuserfunc</varname> "
+"is required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7649
+#, no-c-format
+msgid ""
+"-- define our user defined function --\n"
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_union(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN ((rast1 + rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN NULL;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN rast2;\n"
+"                        ELSE\n"
+"                                RETURN rast1;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"\n"
+"-- prep our test table of rasters\n"
+"DROP TABLE IF EXISTS map_shapes;\n"
+"CREATE TABLE map_shapes(rid serial PRIMARY KEY, rast raster, bnum integer, "
+"descrip text);\n"
+"INSERT INTO map_shapes(rast,bnum, descrip)\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(90,90),30) As geom, 'circle' "
+"As descrip\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 15) As geom, 'big road' As descrip\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Translate(ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 "
+"150,150 50)'), 8,'join=bevel'), 10,-6) As geom, 'small road' As descrip\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS ( SELECT ST_AddBand(ST_MakeEmptyRaster(250, \n"
+"        250, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0 ) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            )\n"
+"-- return our rasters aligned with our canvas\n"
+"SELECT ST_AsRaster(m.geom, canvas.rast, '8BUI', 240) As rast, bnum, descrip\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"UNION ALL \n"
+"SELECT canvas.rast, 4, 'canvas'\n"
+"FROM canvas;\n"
+"\n"
+"-- Map algebra on single band rasters and then collect with ST_AddBand\n"
+"INSERT INTO map_shapes(rast,bnum,descrip)\n"
+"SELECT ST_AddBand(ST_AddBand(rasts[1], rasts[2]),rasts[3]), 4, 'map bands "
+"overlay fct union (canvas)'\n"
+"        FROM (SELECT ARRAY(SELECT ST_MapAlgebraFct(m1.rast, m2.rast, \n"
+"                        'raster_mapalgebra_union(double precision, double "
+"precision, integer[], text[])'::regprocedure, '8BUI', 'FIRST')\n"
+"                FROM map_shapes As m1 CROSS JOIN map_shapes As m2\n"
+"                        WHERE m1.descrip = 'canvas' AND m2.descrip <> "
+"'canvas' ORDER BY m2.bnum) As rasts) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7662
+#, no-c-format
+msgid "map bands overlay (canvas) (R: small road, G: circle, B: big road)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7674
+#, no-c-format
+msgid "User Defined function that takes extra args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7675
+#, no-c-format
+msgid ""
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_userargs(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN least(userargs[1]::integer,(rast1 + "
+"rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN userargs[2]::integer;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN greatest(rast2,random()*userargs[3]::"
+"integer)::integer;\n"
+"                        ELSE\n"
+"                                RETURN greatest(rast1, random()*userargs[4]::"
+"integer)::integer;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' VOLATILE COST 1000;\n"
+"        \n"
+"SELECT ST_MapAlgebraFct(m1.rast, 1, m1.rast, 3,\n"
+"                        'raster_mapalgebra_userargs(double precision, double "
+"precision, integer[], text[])'::regprocedure,\n"
+"                                '8BUI', 'INTERSECT', "
+"'100','200','200','0') \n"
+"                FROM map_shapes As m1\n"
+"                        WHERE m1.descrip = 'map bands overlay fct union "
+"(canvas)';"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7683
+#, no-c-format
+msgid "user defined with extra args and different bands from same raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7702
+#, no-c-format
+msgid "ST_MapAlgebraFctNgb"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7703
+#, no-c-format
+msgid ""
+"1-band version: Map Algebra Nearest Neighbor using user-defined PostgreSQL "
+"function. Return a raster which values are the result of a PLPGSQL user "
+"function involving a neighborhood of values from the input raster band."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7708
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
+"args</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7731
+#, no-c-format
+msgid ""
+"(one raster version) Return a raster which values are the result of a "
+"PLPGSQL user function involving a neighborhood of values from the input "
+"raster band. The user function takes the neighborhood of pixel values as an "
+"array of numbers, for each pixel, returns the result from the user function, "
+"replacing pixel value of currently inspected pixel with the function result."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7735
+#, no-c-format
+msgid "rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7736
+#, no-c-format
+msgid "Raster on which the user function is evaluated."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7739
+#, no-c-format
+msgid "band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7740
+#, no-c-format
+msgid "Band number of the raster to be evaluated. Default to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7744
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL. If not passed "
+"in or set to NULL, will default to the pixeltype of the <varname>rast</"
+"varname>. Results are truncated if they are larger than what is allowed for "
+"the pixeltype."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7747
+#, no-c-format
+msgid "ngbwidth"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7748
+#, no-c-format
+msgid "The width of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7751
+#, no-c-format
+msgid "ngbheight"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7752
+#, no-c-format
+msgid "The height of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7755
+#, no-c-format
+msgid "onerastngbuserfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7756
+#, no-c-format
+msgid ""
+"PLPGSQL/psql user function to apply to neighborhood pixels of a single band "
+"of a raster. The first element is a 2-dimensional array of numbers "
+"representing the rectangular pixel neighborhood"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7759
+#, no-c-format
+msgid "nodatamode"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7761
+#, no-c-format
+msgid ""
+"Defines what value to pass to the function for a neighborhood pixel that is "
+"nodata or NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7762
+#, no-c-format
+msgid ""
+"'ignore': any NODATA values encountered in the neighborhood are ignored by "
+"the computation -- this flag must be sent to the user callback function, and "
+"the user function decides how to ignore it."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7763
+#, no-c-format
+msgid ""
+"'NULL': any NODATA values encountered in the neighborhood will cause the "
+"resulting pixel to be NULL -- the user callback function is skipped in this "
+"case."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7764
+#, no-c-format
+msgid ""
+"'value': any NODATA values encountered in the neighborhood are replaced by "
+"the reference pixel (the one in the center of the neighborhood). Note that "
+"if this value is NODATA, the behavior is the same as 'NULL' (for the "
+"affected neighborhood)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7768
+#, no-c-format
+msgid "args"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7769
+#, no-c-format
+msgid "Arguments to pass into the user function."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7779
+#, no-c-format
+msgid ""
+"Examples utilize the katrina raster loaded as a single tile described in "
+"<ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">http://"
+"trac.osgeo.org/gdal/wiki/frmts_wtkraster.html</ulink> and then prepared in "
+"the <xref linkend=\"RT_ST_Rescale\"/> examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7781
+#, no-c-format
+msgid ""
+"--\n"
+"-- A simple 'callback' user function that averages up all the values in a "
+"neighborhood.\n"
+"--\n"
+"CREATE OR REPLACE FUNCTION rast_avg(matrix float[][], nodatamode text, "
+"variadic args text[])\n"
+"    RETURNS float AS\n"
+"    $$\n"
+"    DECLARE\n"
+"                _matrix float[][];\n"
+"        x1 integer;\n"
+"        x2 integer;\n"
+"        y1 integer;\n"
+"        y2 integer;\n"
+"        sum float;\n"
+"    BEGIN\n"
+"                _matrix := matrix;\n"
+"        sum := 0;\n"
+"        FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP\n"
+"            FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP\n"
+"                sum := sum + _matrix[x][y];\n"
+"            END LOOP;\n"
+"        END LOOP;\n"
+"        RETURN (sum*1.0/(array_upper(matrix,1)*array_upper(matrix,2) ))::"
+"integer ;\n"
+"    END;\n"
+"    $$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"    \n"
+"-- now we apply to our raster averaging pixels within 2 pixels of each other "
+"in X and Y direction --\n"
+"SELECT ST_MapAlgebraFctNgb(rast, 1,  '8BUI', 4,4,\n"
+"                'rast_avg(float[][], text, text[])'::regprocedure, 'NULL', "
+"NULL) As nn_with_border\n"
+"        FROM katrinas_rescaled \n"
+"        limit 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7795
+#, no-c-format
+msgid "First band of our raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7809
+#, no-c-format
+msgid "new raster after averaging pixels withing 4x4 pixels of each other"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7824
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraExpr\"/>, <xref linkend=\"RT_ST_Rescale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7834
+#, no-c-format
+msgid "ST_Reclass"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7835
+#, no-c-format
+msgid ""
+"Creates a new raster composed of band types reclassified from original. The "
+"nband is the band to be changed. If nband is not specified assumed to be 1. "
+"All other bands are returned unchanged. Use case: convert a 16BUI band to a "
+"8BUI and so forth for simpler rendering as viewable formats."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7839
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>reclassarg[] </type> <parameter>VARIADIC reclassargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7867
+#, no-c-format
+msgid ""
+"Creates a new raster formed by applying a valid PostgreSQL algebraic "
+"operation defined by the <varname>reclassexpr</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified band 1 "
+"is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster. Bands not designated will come back "
+"unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid "
+"reclassification expressions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7869
+#, no-c-format
+msgid ""
+"The bands of the new raster will have pixel type of <varname>pixeltype</"
+"varname>. If <varname>reclassargset</varname> is passed in then each "
+"reclassarg defines behavior of each band generated."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7875
+#, no-c-format
+msgid "Examples Basic"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7876
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 2 is converted from 8BUI to "
+"4BUI and all values from 101-254 are set to nodata value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7877
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN reclass_rast raster;\n"
+"UPDATE dummy_rast SET reclass_rast = ST_Reclass(rast,2,'0-87:1-10, "
+"88-100:11-15, 101-254:0-0', '4BUI',0) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row, ST_Value(rast,2,i,j) As origval, \n"
+"    ST_Value(reclass_rast, 2, i, j) As reclassval, \n"
+"    ST_Value(reclass_rast, 2, i, j, false) As reclassval_include_nodata\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" col | row | origval | reclassval | reclassval_include_nodata\n"
+"-----+-----+---------+------------+---------------------------\n"
+"   1 |   1 |      78 |          9 |                         9\n"
+"   2 |   1 |      98 |         14 |                        14\n"
+"   3 |   1 |     122 |            |                         0\n"
+"   1 |   2 |      96 |         14 |                        14\n"
+"   2 |   2 |     118 |            |                         0\n"
+"   3 |   2 |     180 |            |                         0\n"
+"   1 |   3 |      99 |         15 |                        15\n"
+"   2 |   3 |     112 |            |                         0\n"
+"   3 |   3 |     169 |            |                         0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7881
+#, no-c-format
+msgid "Example: Advanced using multiple reclassargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7883
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 1,2,3 is converted to "
+"1BB,4BUI, 4BUI respectively and reclassified. Note this uses the variadic "
+"<varname>reclassarg</varname> argument which can take as input an indefinite "
+"number of reclassargs (theoretically as many bands as you have)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7884
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET reclass_rast = \n"
+"    ST_Reclass(rast,\n"
+"        ROW(2,'0-87]:1-10, (87-100]:11-15, (101-254]:0-0', '4BUI',NULL)::"
+"reclassarg,\n"
+"        ROW(1,'0-253]:1, 254:0', '1BB', NULL)::reclassarg,\n"
+"        ROW(3,'0-70]:1, (70-86:2, [86-150):3, [150-255:4', '4BUI', NULL)::"
+"reclassarg\n"
+"        ) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row,ST_Value(rast,1,i,j) As ov1,  "
+"ST_Value(reclass_rast, 1, i, j) As rv1, \n"
+"    ST_Value(rast,2,i,j) As ov2, ST_Value(reclass_rast, 2, i, j) As rv2, \n"
+"    ST_Value(rast,3,i,j) As ov3, ST_Value(reclass_rast, 3, i, j) As rv3\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+"col | row | ov1 | rv1 | ov2 | rv2 | ov3 | rv3\n"
+"----+-----+-----+-----+-----+-----+-----+-----\n"
+"  1 |   1 | 253 |   1 |  78 |   9 |  70 |   1\n"
+"  2 |   1 | 254 |   0 |  98 |  14 |  86 |   3\n"
+"  3 |   1 | 253 |   1 | 122 |   0 | 100 |   3\n"
+"  1 |   2 | 253 |   1 |  96 |  14 |  80 |   2\n"
+"  2 |   2 | 254 |   0 | 118 |   0 | 108 |   3\n"
+"  3 |   2 | 254 |   0 | 180 |   0 | 162 |   4\n"
+"  1 |   3 | 250 |   1 |  99 |  15 |  90 |   3\n"
+"  2 |   3 | 254 |   0 | 112 |   0 | 108 |   3\n"
+"  3 |   3 | 254 |   0 | 169 |   0 | 175 |   4"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7888
+#, no-c-format
+msgid ""
+"Example: Advanced Map a single band 32BF raster to multiple viewable bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7889
+#, no-c-format
+msgid ""
+"Create a new 3 band (8BUI,8BUI,8BUI viewable raster) from a raster that has "
+"only one 32bf band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7890
+#, no-c-format
+msgid ""
+"ALTER TABLE wind ADD COLUMN rast_view raster;\n"
+"UPDATE wind \n"
+"        set rast_view = ST_AddBand( NULL,\n"
+"        ARRAY[\n"
+"                ST_Reclass(rast, 1,'0.1-10]:1-10,9-10]:11,(11-33:0'::text, "
+"'8BUI'::text,0),\n"
+"                ST_Reclass(rast,1, '11-33):0-255,[0-32:0,(34-1000:0'::text, "
+"'8BUI'::text,0),  \n"
+"                ST_Reclass(rast,1,'0-32]:0,(32-100:100-255'::text, '8BUI'::"
+"text,0)\n"
+"                ]\n"
+"                );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7895
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Band\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, "
+"<xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"reclassarg\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7908
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7909
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"1 or more bands."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7914
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7920
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7927
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7934
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7941
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7953
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"at least one band. The resulting raster's extent is the extent of the whole "
+"set. In the case of intersection, the resulting value is defined by "
+"<varname>uniontype</varname> which is one of the following: LAST (default), "
+"FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7956
+#, no-c-format
+msgid ""
+"In order for rasters to be unioned, they most all have the same alignment. "
+"Use <xref linkend=\"RT_ST_SameAlignment\"/> and <xref linkend="
+"\"RT_ST_NotSameAlignmentReason\"/> for more details and help. One way to fix "
+"alignment issues is to use <xref linkend=\"RT_ST_Resample\"/> and use the "
+"same reference raster for alignment."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7960
+#, no-c-format
+msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7961
+#, no-c-format
+msgid "Availability: 2.1.0 ST_Union(rast, unionarg) variant was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7962
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast) (variant 1) unions all bands of all input "
+"rasters. Prior versions of PostGIS assumed the first band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7963
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast, uniontype) (variant 4) unions all bands of "
+"all input rasters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7966
+#, no-c-format
+msgid "Examples: Reconstitute a single band chunked raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7967
+#, no-c-format
+msgid ""
+"-- this creates a single band from first band of raster tiles\n"
+"-- that form the original file system tile\n"
+"SELECT filename, ST_Union(rast,1) As file_rast\n"
+"FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7971 reference_raster.xml:7975
+#, no-c-format
+msgid ""
+"Examples: Return a multi-band raster that is the union of tiles intersecting "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7972
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"-- Note: In 2.0, this would have just returned a single band raster\n"
+"-- , new union works on all bands by default\n"
+"-- this is equivalent to unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), "
+"ROW(3, 'LAST')]::unionarg[]\n"
+"SELECT ST_Union(rast)\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7976
+#, no-c-format
+msgid ""
+"Here we use the longer syntax if we only wanted a subset of bands or we want "
+"to change order of bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7977
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"SELECT ST_Union(rast,ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::"
+"unionarg[])\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7983
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7996
+#, no-c-format
+msgid "Built-in Map Algebra Callback Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8000
+#, no-c-format
+msgid "ST_Distinct4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8001
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the number of unique pixel values "
+"in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8005
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Distinct4ma</function></"
+"funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Distinct4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][] </type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8025
+#, no-c-format
+msgid ""
+"Calculate the number of unique pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8028 reference_raster.xml:8167
+#: reference_raster.xml:8242 reference_raster.xml:8327
+#: reference_raster.xml:8452 reference_raster.xml:8523
+#: reference_raster.xml:8598
+#, no-c-format
+msgid ""
+"Variant 1 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8032 reference_raster.xml:8171
+#: reference_raster.xml:8246 reference_raster.xml:8333
+#: reference_raster.xml:8456 reference_raster.xml:8527
+#: reference_raster.xml:8602
+#, no-c-format
+msgid ""
+"Variant 2 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8038 reference_raster.xml:8177
+#: reference_raster.xml:8252 reference_raster.xml:8339
+#: reference_raster.xml:8462 reference_raster.xml:8533
+#: reference_raster.xml:8608
+#, no-c-format
+msgid ""
+"Use of Variant 1 is discouraged since <xref linkend=\"RT_ST_MapAlgebraFctNgb"
+"\"/> has been deprecated as of 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8044 reference_raster.xml:8183
+#: reference_raster.xml:8258 reference_raster.xml:8345
+#: reference_raster.xml:8468 reference_raster.xml:8539
+#: reference_raster.xml:8614
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8050
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8056 reference_raster.xml:8480
+#: reference_raster.xml:8551
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8071
+#, no-c-format
+msgid "ST_InvDistWeight4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8072
+#, no-c-format
+msgid ""
+"Raster processing function that interpolates a pixel's value from the "
+"pixel's neighborhood."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8077
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8089
+#, no-c-format
+msgid ""
+"Calculate an interpolated value for a pixel using the Inverse Distance "
+"Weighted method."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8091
+#, no-c-format
+msgid ""
+"There are two optional parameters that can be passed through "
+"<varname>userargs</varname>. The first parameter is the power factor "
+"(variable k in the equation below) between 0 and 1 used in the Inverse "
+"Distance Weighted equation. If not specified, default value is 1. The second "
+"parameter is the weight percentage applied only when the value of the pixel "
+"of interest is included with the interpolated value from the neighborhood. "
+"If not specified and the pixel of interest has a value, that value is "
+"returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8095
+#, no-c-format
+msgid "The basic inverse distance weight equation is:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8104
+#, no-c-format
+msgid "k = power factor, a real number between 0 and 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8113 reference_raster.xml:8398
+#, no-c-format
+msgid ""
+"This function is a specialized callback function for use as a callback "
+"parameter to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8121 reference_raster.xml:8406
+#, no-c-format
+msgid "-- NEEDS EXAMPLE"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8126
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8135
+#, no-c-format
+msgid "ST_Max4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8136
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the maximum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8140
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Max4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Max4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8160
+#, no-c-format
+msgid "Calculate the maximum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8162 reference_raster.xml:8237
+#: reference_raster.xml:8322 reference_raster.xml:8447
+#: reference_raster.xml:8593
+#, no-c-format
+msgid ""
+"For Variant 2, a substitution value for NODATA pixels can be specified by "
+"passing that value to userargs."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8189
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      254\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8195
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8210
+#, no-c-format
+msgid "ST_Mean4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8211
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the mean pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8215
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Mean4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8235
+#, no-c-format
+msgid "Calculate the mean pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8264
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_mean4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8271
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"              ST_MapAlgebra(rast, 1, 'st_mean4ma(double precision[][][], "
+"integer[][], text[])'::regprocedure,'32BF', 'FIRST', NULL, 1, 1)\n"
+"       ,  2, 2)\n"
+"  FROM dummy_rast \n"
+"   WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8277
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8291
+#, no-c-format
+msgid "ST_Min4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8292
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the minimum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8298
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Min4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Min4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8318
+#, no-c-format
+msgid "Calculate the minimum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8351
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      250\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8356
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8371
+#, no-c-format
+msgid "ST_MinDist4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8372
+#, no-c-format
+msgid ""
+"Raster processing function that returns the minimum distance (in number of "
+"pixels) between the pixel of interest and a neighboring pixel with value."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8377
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8389
+#, no-c-format
+msgid ""
+"Return the shortest distance (in number of pixels) between the pixel of "
+"interest and the closest pixel with value in the neighborhood."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8392
+#, no-c-format
+msgid ""
+"The intent of this function is to provide an informative data point that "
+"helps infer the usefulness of the pixel of interest's interpolated value "
+"from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is "
+"particularly useful when the neighborhood is sparsely populated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8411
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8420
+#, no-c-format
+msgid "ST_Range4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8421
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the range of pixel values in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8425
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Range4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Range4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8445
+#, no-c-format
+msgid "Calculate the range of pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8474
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        4\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8495
+#, no-c-format
+msgid "ST_StdDev4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8496
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the standard deviation of pixel "
+"values in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8500
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_StdDev4ma</function></funcdef> <paramdef><type>double "
+"precision[][][]</type> <parameter>value</parameter></paramdef> "
+"<paramdef><type>integer[][] </type> <parameter>pos</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8520
+#, no-c-format
+msgid ""
+"Calculate the standard deviation of pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8545
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_stddev4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 1.30170822143555\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8566
+#, no-c-format
+msgid "ST_Sum4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8567
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the sum of all pixel values in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8571
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Sum4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8591
+#, no-c-format
+msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8620
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |     2279\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8626
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:8642
+#, no-c-format
+msgid "DEM (Elevation)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8646
+#, no-c-format
+msgid "ST_Aspect"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8647
+#, no-c-format
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8650
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8675
+#, no-c-format
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the aspect equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8677
+#, no-c-format
+msgid ""
+"<varname>units</varname> indicates the units of the aspect. Possible values "
+"are: RADIANS, DEGREES (default)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8681
+#, no-c-format
+msgid ""
+"When <varname>units</varname> = RADIANS, values are between 0 and 2 * pi "
+"radians measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8685
+#, no-c-format
+msgid ""
+"When <varname>units</varname> = DEGREES, values are between 0 and 360 "
+"degrees measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8689
+#, no-c-format
+msgid "If slope of pixel is zero, aspect of pixel is -1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8694
+#, no-c-format
+msgid ""
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Aspect_Images.html"
+"\">ERDAS Field Guide - Aspect Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8700 reference_raster.xml:8796
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional "
+"<varname>interpolate_nodata</varname> function parameter"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8701 reference_raster.xml:8925
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, return values were in radians. Now, return "
+"values default to degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8706
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Aspect(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                    st_dumpvalues                                                                   \n"
+"                                  \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"----------------------------------\n"
+" (1,\"{{315,341.565063476562,0,18.4349479675293,45},"
+"{288.434936523438,315,0,45,71.5650482177734},{270,270,-1,90,90},"
+"{251.565048217773,225,180,135,108.434951782227},{225,198.43495178\n"
+"2227,180,161.565048217773,135}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8712 reference_raster.xml:8809
+#: reference_raster.xml:8937
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage. This query only works with "
+"PostgreSQL 9.1 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8714
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Aspect(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8719
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8732
+#, no-c-format
+msgid "ST_HillShade"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8733
+#, no-c-format
+msgid ""
+"Returns the hypothetical illumination of an elevation raster band using "
+"provided azimuth, altitude, brightness and scale inputs."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8736
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_HillShade</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>azimuth=315</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>altitude=45</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>max_bright=255</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_HillShade</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>azimuth=315</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>altitude=45</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>max_bright=255</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scale=1.0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8767
+#, no-c-format
+msgid ""
+"Returns the hypothetical illumination of an elevation raster band using the "
+"azimuth, altitude, brightness, and scale inputs. Utilizes map algebra and "
+"applies the hill shade equation to neighboring pixels. Return pixel values "
+"are between 0 and 255."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8769
+#, no-c-format
+msgid ""
+"<varname>azimuth</varname> is a value between 0 and 360 degrees measured "
+"clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8773
+#, no-c-format
+msgid ""
+"<varname>altitude</varname> is a value between 0 and 90 degrees where 0 "
+"degrees is at the horizon and 90 degrees is directly overhead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8777
+#, no-c-format
+msgid ""
+"<varname>max_bright</varname> is a value between 0 and 255 with 0 as no "
+"brightness and 255 as max brightness."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8781 reference_raster.xml:8909
+#, no-c-format
+msgid ""
+"<varname>scale</varname> is the ratio of vertical units to horizontal. For "
+"Feet:LatLon use scale=370400, for Meters:LatLon use scale=111120."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8785
+#, no-c-format
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the hillshade illumination."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8790
+#, no-c-format
+msgid ""
+"For more information about Hillshade, please refer to <ulink url=\"http://"
+"webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How%20Hillshade"
+"%20works\">How hillshade works</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8797
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, azimuth and altitude were expressed in "
+"radians. Now, azimuth and altitude are expressed in degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8803
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Hillshade(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                                       st_dumpvalues                                                \n"
+"                                                                       \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"-----------------------------------------------------------------------\n"
+" (1,\"{{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,251.32763671875,220.749786376953,147.224319458008,NULL},"
+"{NULL,220.749786376953,180.312225341797,67.7497863769531,NULL},"
+"{NULL,147.224319458008\n"
+",67.7497863769531,43.1210060119629,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8811
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Hillshade(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8816
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_Aspect\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8829
+#, no-c-format
+msgid "ST_Roughness"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8830
+#, no-c-format
+msgid "Returns a raster with the calculated \"roughness\" of a DEM."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8835
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Roughness</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype="
+"\"32BF\"</parameter> </paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type> <parameter> interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8848
+#, no-c-format
+msgid ""
+"Calculates the \"roughness\" of a DEM, by subtracting the maximum from the "
+"minimum for a given area."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8854 reference_raster.xml:8987
+#: reference_raster.xml:9038
+#, no-c-format
+msgid "-- needs examples"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8859
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8872
+#, no-c-format
+msgid "ST_Slope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8873
+#, no-c-format
+msgid ""
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8876
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Slope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Slope</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>units=DEGREES</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8903
+#, no-c-format
+msgid ""
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the slope equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8905
+#, no-c-format
+msgid ""
+"<varname>units</varname> indicates the units of the slope. Possible values "
+"are: RADIANS, DEGREES (default), PERCENT."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8913
+#, no-c-format
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the surface slope."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8918
+#, no-c-format
+msgid ""
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Slope_Images.html\">ERDAS "
+"Field Guide - Slope Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8924
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional <varname>units</"
+"varname>, <varname>scale</varname>, <varname>interpolate_nodata</varname> "
+"function parameters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8931
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Slope(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                            st_dumpvalues                                                                                                                                           \n"
+"                                                                     \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"---------------------------------------------------------------------\n"
+" (1,"
+"\"{{10.0249881744385,21.5681285858154,26.5650520324707,21.5681285858154,10.0249881744385},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},\n"
+"{26.5650520324707,36.8698959350586,0,36.8698959350586,26.5650520324707},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},"
+"{10.0249881744385,21.\n"
+"5681285858154,26.5650520324707,21.5681285858154,10.0249881744385}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8939
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Slope(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8944
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8957
+#, no-c-format
+msgid "ST_TPI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8958
+#, no-c-format
+msgid "Returns a raster with the calculated Topographic Position Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8963
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_TPI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8977
+#, no-c-format
+msgid ""
+"Calculates the Topographic Position Index, which is defined as the folcal "
+"mean with radius of one minus the center cell."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8980 reference_raster.xml:9030
+#, no-c-format
+msgid "This function only supports a focalmean radius of one."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8992
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9005
+#, no-c-format
+msgid "ST_TRI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9006
+#, no-c-format
+msgid "Returns a raster with the calculated Terrain Ruggedness Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9011
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_TRI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9025
+#, no-c-format
+msgid ""
+"Terrain Ruggedness Index is calculated by comparing a central pixel with its "
+"neighbors, taking the absolute values of the differences, and averaging the "
+"result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9043
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9057
+#, no-c-format
+msgid "Raster to Geometry"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9061
+#, no-c-format
+msgid "Box3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9062
+#, no-c-format
+msgid "Returns the box 3d representation of the enclosing box of the raster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9067
+#, no-c-format
+msgid ""
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9077
+#, no-c-format
+msgid "Returns the box representing the extent of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9078
+#, no-c-format
+msgid ""
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</"
+"varname>, <varname>MAXY</varname>))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9082
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of "
+"box3d. Since box2d is a deprecated type, this was changed to box3d."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9088
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        rid,\n"
+"        Box3D(rast) AS rastbox\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid |        rastbox\n"
+"----+-------------------------------------------------\n"
+"1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
+"2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9101
+#, no-c-format
+msgid "ST_ConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9102
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster including pixel values equal "
+"to BandNoDataValue. For regular shaped and non-skewed rasters, this gives "
+"the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9109
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9119
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster including the NoDataBandValue "
+"band pixels. For regular shaped and non-skewed rasters, this gives more or "
+"less the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9123
+#, no-c-format
+msgid ""
+"ST_Envelope floors the coordinates and hence add a little buffer around the "
+"raster so the answer is subtly different from ST_ConvexHull which does not "
+"floor."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9130
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram "
+"of this."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9131
+#, no-c-format
+msgid ""
+"-- Note envelope and convexhull are more or less the same\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 "
+"0,20 60,0 60,0 0))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9132
+#, no-c-format
+msgid ""
+"-- now we skew the raster \n"
+"-- note how the convex hull and envelope are now different\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
+"        FROM dummy_rast WHERE rid=1) As foo;\n"
+"        \n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 "
+"0,22 61,0 61,0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9138
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MinConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/"
+">, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9149
+#, no-c-format
+msgid "ST_DumpAsPolygons"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9150
+#, no-c-format
+msgid ""
+"Returns a set of geomval (geom,val) rows, from a given raster band. If no "
+"band number is specified, band num defaults to 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9155
+#, no-c-format
+msgid ""
+"<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9166
+#, no-c-format
+msgid ""
+"This is a set-returning function (SRF). It returns a set of geomval rows, "
+"formed by a geometry (geom) and a pixel band value (val). Each polygon is "
+"the union of all pixels for that band that have the same pixel value denoted "
+"by val."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9170
+#, no-c-format
+msgid ""
+"ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a "
+"GROUP BY in that it creates new rows. For example it can be used to expand a "
+"single raster into multiple POLYGONS/MULTIPOLYGONS."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9174
+#, no-c-format
+msgid "Availability: Requires GDAL 1.7 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9175
+#, no-c-format
+msgid ""
+"If there is a no data value set for a band, pixels with that value will not "
+"be returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9176
+#, no-c-format
+msgid ""
+"If you only care about count of pixels with a given value in a raster, it is "
+"faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9178
+#, no-c-format
+msgid ""
+"This is different than ST_PixelAsPolygons where one geometry is returned for "
+"each pixel regardless of pixel value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9186
+#, no-c-format
+msgid ""
+"SELECT val, ST_AsText(geom) As geomwkt\n"
+"FROM (\n"
+"SELECT (ST_DumpAsPolygons(rast)).*\n"
+"FROM dummy_rast \n"
+"WHERE rid = 2\n"
+") As foo\n"
+"WHERE val BETWEEN 249 and 251\n"
+"ORDER BY val;\n"
+"\n"
+" val |                                                       geomwkt\n"
+"-----"
+"+--------------------------------------------------------------------------\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 "
+"5793243.85,\n"
+"                 3427928 5793243.95,3427927.95 5793243.95))\n"
+" 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 "
+"5793243.85,\n"
+"                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
+" 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 "
+"5793243.75,\n"
+"                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
+" 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 "
+"5793243.8,\n"
+"                 3427927.8 5793243.85,3427927.75 5793243.85))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9191
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref "
+"linkend=\"RT_ST_ValueCount\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9202
+#, no-c-format
+msgid "ST_Envelope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9203
+#, no-c-format
+msgid "Returns the polygon representation of the extent of the raster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9208
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9218
+#, no-c-format
+msgid ""
+"Returns the polygon representation of the extent of the raster in spatial "
+"coordinate units defined by srid. It is a float8 minimum bounding box "
+"represented as a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9220
+#, no-c-format
+msgid ""
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9232
+#, no-c-format
+msgid ""
+"SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |                                         envgeomwkt\n"
+"-----+--------------------------------------------------------------------\n"
+"   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
+"   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
+"                   3427928 5793244,3427927 5793244, 3427927 5793243))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9237
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9247
+#, no-c-format
+msgid "ST_MinConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9248
+#, no-c-format
+msgid "Return the convex hull geometry of the raster excluding NODATA pixels."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9255
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=NULL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9266
+#, no-c-format
+msgid ""
+"Return the convex hull geometry of the raster excluding NODATA pixels. If "
+"<varname>nband</varname> is NULL, all bands of the raster are considered."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9275
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_SetValues(\n"
+"                                ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(9, "
+"9, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0), 2, '8BUI', 1, 0),\n"
+"                                1, 1, 1,\n"
+"                                ARRAY[\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 1],\n"
+"                                        [0, 0, 0, 1, 1, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0]\n"
+"                                ]::double precision[][]\n"
+"                        ),\n"
+"                        2, 1, 1,\n"
+"                        ARRAY[\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [1, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 1, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 1, 0, 0, 0, 0, 0, 0]\n"
+"                        ]::double precision[][]\n"
+"                ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_AsText(ST_ConvexHull(rast)) AS hull,\n"
+"        ST_AsText(ST_MinConvexHull(rast)) AS mhull,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 1)) AS mhull_1,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 2)) AS mhull_2\n"
+"FROM foo\n"
+"\n"
+"               hull               |                mhull                "
+"|               mhull_1               |               "
+"mhull_2               \n"
+"----------------------------------+-------------------------------------"
+"+-------------------------------------"
+"+-------------------------------------\n"
+" POLYGON((0 0,9 0,9 -9,0 -9,0 0)) | POLYGON((0 -3,9 -3,9 -9,0 -9,0 -3)) | "
+"POLYGON((3 -3,9 -3,9 -6,3 -6,3 -3)) | POLYGON((0 -3,6 -3,6 -9,0 -9,0 -3))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9280
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_ConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/>, "
+"<xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9291
+#, no-c-format
+msgid "ST_Polygon"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9292
+#, no-c-format
+msgid ""
+"Returns a multipolygon geometry formed by the union of pixels that have a "
+"pixel value that is not no data value. If no band number is specified, band "
+"num defaults to 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9297
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9307
+#, no-c-format
+msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9308
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning "
+"multipolygon is ensured to be valid."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9309
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions would sometimes return a polygon, changed "
+"to always return multipolygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9314
+#, no-c-format
+msgid ""
+"-- by default no data band value is 0 or not set, so polygon will return a "
+"square polygon        \n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"--------------------------------------------\n"
+"MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 "
+"5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
+"                 \n"
+"                 \n"
+"-- now we change the no data value of first band\n"
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
+"WHERE rid = 2;\n"
+"SELECt rid, ST_BandNoDataValue(rast)\n"
+"from dummy_rast where rid = 2;\n"
+"\n"
+"-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------------------------------\n"
+"MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 "
+"5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 "
+"5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 "
+"5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 "
+"5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),"
+"((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 "
+"5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 "
+"5793244,3427927.8 5793243.9,3427927.8 5793243.85,3427927.85 "
+"5793243.85,3427927.85 5793243.8,3427927.85 5793243.75,3427927.8 "
+"5793243.75)))\n"
+"\n"
+"-- Or if you want the no data value different for just one time\n"
+"\n"
+"SELECT ST_AsText(\n"
+"        ST_Polygon(\n"
+"                ST_SetBandNoDataValue(rast,1,252)\n"
+"                )\n"
+"        ) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid =2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------\n"
+"MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 "
+"5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 "
+"5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 "
+"5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 "
+"5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 "
+"5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 "
+"5793243.9,3427927.9 5793243.9)))"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9331
+#, no-c-format
+msgid "Raster Operators"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9334
+#, no-c-format
+msgid "&&"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9336
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding "
+"box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9340
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> "
+"</paramdef> <paramdef> <type>geometry </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>&"
+"&</function></funcdef> <paramdef> <type>geometry </type> <parameter>B</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>A</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9382
+#, no-c-format
+msgid ""
+"The <varname>&&</varname> operator returns <varname>TRUE</varname> "
+"if the bounding box of raster/geometr A intersects the bounding box of "
+"raster/geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9384 reference_raster.xml:9636
+#: reference_raster.xml:10646 reference_raster.xml:10747
+#: reference_raster.xml:10840
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"rasters."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9393
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As "
+"intersect\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B LIMIT 3;\n"
+"\n"
+" a_rid | b_rid | intersect\n"
+"-------+-------+---------\n"
+"     2 |     2 | t\n"
+"     2 |     3 | f\n"
+"     2 |     1 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9399
+#, no-c-format
+msgid "&<"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9401
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is to the left of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9406
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9427
+#, no-c-format
+msgid ""
+"The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of raster A overlaps or is to the left of the bounding box "
+"of raster B, or more accurately, overlaps or is NOT to the right of the "
+"bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9431 reference_raster.xml:9476
+#, no-c-format
+msgid ""
+"This operand will make use of any indexes that may be available on the "
+"geometries."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9438
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast &< B.rast As overleft\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+"a_rid | b_rid | overleft\n"
+"------+-------+----------\n"
+"    2 |     2 | t\n"
+"    2 |     3 | f\n"
+"    2 |     1 | f\n"
+"    3 |     2 | t\n"
+"    3 |     3 | t\n"
+"    3 |     1 | f\n"
+"    1 |     2 | t\n"
+"    1 |     3 | t\n"
+"    1 |     1 | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9444
+#, no-c-format
+msgid "&>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9446
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is to the right of B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9451
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>&></function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9472
+#, no-c-format
+msgid ""
+"The <varname>&></varname> operator returns <varname>TRUE</varname> if "
+"the bounding box of raster A overlaps or is to the right of the bounding box "
+"of raster B, or more accurately, overlaps or is NOT to the left of the "
+"bounding box of raster B."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9483
+#, no-c-format
+msgid ""
+"SELECT A.rid As a_rid, B.rid As b_rid, A.rast &> B.rast As overright\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+" a_rid | b_rid | overright\n"
+"-------+-------+----------\n"
+"     2 |     2 | t\n"
+"     2 |     3 | t\n"
+"     2 |     1 | t\n"
+"     3 |     2 | f\n"
+"     3 |     3 | t\n"
+"     3 |     1 | f\n"
+"     1 |     2 | f\n"
+"     1 |     3 | t\n"
+"     1 |     1 | t"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9489
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9491
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9496
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>=</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9517
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B. "
+"PostgreSQL uses the =, <, and > operators defined for rasters to "
+"perform internal orderings and comparison of rasters (ie. in a GROUP BY or "
+"ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9521
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"rasters. Use <xref linkend=\"RT_Raster_Same\"/> instead. This operator "
+"exists mostly so one can group by the raster column."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9537
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9539
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's. "
+"Uses double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9543
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9586
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contained by bounding box of raster/"
+"geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9589 reference_raster.xml:9709
+#, no-c-format
+msgid "This operand will use spatial indexes on the rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9591
+#, no-c-format
+msgid "Availability: 2.0.0 raster @ raster, raster @ geometry introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9592
+#, no-c-format
+msgid "Availability: 2.0.5 geometry @ raster introduced"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9605
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9607
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9612
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9633
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9645
+#, no-c-format
+msgid ""
+"Very useful usecase is for taking two sets of single band rasters that are "
+"of the same chunk but represent different themes and creating a multi-band "
+"raster"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9646
+#, no-c-format
+msgid ""
+"SELECT ST_AddBand(prec.rast, alt.rast) As new_rast\n"
+"    FROM prec INNER JOIN alt ON (prec.rast ~= alt.rast);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9651
+#, no-c-format
+msgid ", <xref linkend=\"RT_Raster_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9657
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9659
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contains B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9663
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9706
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contains bounding box of raster/geometr "
+"B."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9724
+#, no-c-format
+msgid "Raster and Raster Band Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9728
+#, no-c-format
+msgid "ST_Contains"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9729
+#, no-c-format
+msgid ""
+"Return true if no points of raster rastB lie in the exterior of raster rastA "
+"and at least one point of the interior of rastB lies in the interior of "
+"rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9735
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Contains</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9774
+#, no-c-format
+msgid ""
+"Raster rastA contains rastB if and only if no points of rastB lie in the "
+"exterior of rastA and at least one point of the interior of rastB lies in "
+"the interior of rastA. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9779 reference_raster.xml:9872
+#: reference_raster.xml:9953 reference_raster.xml:10034
+#: reference_raster.xml:10244 reference_raster.xml:10328
+#: reference_raster.xml:10408
+#, no-c-format
+msgid ""
+"This function will make use of any indexes that may be available on the "
+"rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9785
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Contains(ST_Polygon(raster), geometry) or "
+"ST_Contains(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9791
+#, no-c-format
+msgid ""
+"ST_Contains() is the inverse of ST_Within(). So, ST_Contains(rastA, rastB) "
+"implies ST_Within(rastB, rastA)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9802
+#, no-c-format
+msgid ""
+"-- specified band numbers\n"
+"SELECT r1.rid, r2.rid, ST_Contains(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;\n"
+"\n"
+"NOTICE:  The first raster provided has no bands\n"
+" rid | rid | st_contains \n"
+"-----+-----+-------------\n"
+"   1 |   1 | \n"
+"   1 |   2 | f"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9804
+#, no-c-format
+msgid ""
+"-- no band numbers specified\n"
+"SELECT r1.rid, r2.rid, ST_Contains(r1.rast, r2.rast) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 1;\n"
+" rid | rid | st_contains \n"
+"-----+-----+-------------\n"
+"   1 |   1 | t\n"
+"   1 |   2 | f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9808
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Within\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9817
+#, no-c-format
+msgid "ST_ContainsProperly"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9818
+#, no-c-format
+msgid ""
+"Return true if rastB intersects the interior of rastA but not the boundary "
+"or exterior of rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9824
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_ContainsProperly</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_ContainsProperly</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </"
+"type> <parameter>rastB</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9863
+#, no-c-format
+msgid ""
+"Raster rastA contains properly rastB if rastB intersects the interior of "
+"rastA but not the boundary or exterior of rastA. If the band number is not "
+"provided (or set to NULL), only the convex hull of the raster is considered "
+"in the test. If the band number is provided, only those pixels with value "
+"(not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9867
+#, no-c-format
+msgid "Raster rastA does not contain properly itself but does contain itself."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9878
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_ContainsProperly(ST_Polygon(raster), geometry) or "
+"ST_ContainsProperly(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9889
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_ContainsProperly(r1.rast, 1, r2.rast, 1) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_containsproperly \n"
+"-----+-----+---------------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9893
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Contains\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9902
+#, no-c-format
+msgid "ST_Covers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9903
+#, no-c-format
+msgid "Return true if no points of raster rastB lie outside raster rastA."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9909
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9948
+#, no-c-format
+msgid ""
+"Raster rastA covers rastB if and only if no points of rastB lie in the "
+"exterior of rastA. If the band number is not provided (or set to NULL), only "
+"the convex hull of the raster is considered in the test. If the band number "
+"is provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9959
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Covers(ST_Polygon(raster), geometry) or "
+"ST_Covers(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9970
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Covers(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_covers \n"
+"-----+-----+-----------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9974
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_CoveredBy\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9983
+#, no-c-format
+msgid "ST_CoveredBy"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9984
+#, no-c-format
+msgid "Return true if no points of raster rastA lie outside raster rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9990
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10029
+#, no-c-format
+msgid ""
+"Raster rastA is covered by rastB if and only if no points of rastA lie in "
+"the exterior of rastB. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10040
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_CoveredBy(ST_Polygon(raster), geometry) or "
+"ST_CoveredBy(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10051
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_CoveredBy(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_coveredby \n"
+"-----+-----+--------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10055
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Covers\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10064
+#, no-c-format
+msgid "ST_Disjoint"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10065
+#, no-c-format
+msgid "Return true if raster rastA does not spatially intersect rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10071
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Disjoint</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Disjoint</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10110
+#, no-c-format
+msgid ""
+"Raster rastA and rastB are disjointed if they do not share any space "
+"together. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10115
+#, no-c-format
+msgid "This function does NOT use any indexes."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10121
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Disjoint(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10132
+#, no-c-format
+msgid ""
+"-- rid = 1 has no bands, hence the NOTICE and the NULL value for "
+"st_disjoint\n"
+"SELECT r1.rid, r2.rid, ST_Disjoint(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
+"r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+"NOTICE:  The second raster provided has no bands\n"
+" rid | rid | st_disjoint \n"
+"-----+-----+-------------\n"
+"   2 |   1 | \n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10134
+#, no-c-format
+msgid ""
+"-- this time, without specifying band numbers\n"
+"SELECT r1.rid, r2.rid, ST_Disjoint(r1.rast, r2.rast) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_disjoint \n"
+"-----+-----+-------------\n"
+"   2 |   1 | t\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10147
+#, no-c-format
+msgid "ST_Intersects"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10148
+#, no-c-format
+msgid "Return true if raster rastA spatially intersects raster rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10152
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_Intersects</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> </funcprototype> <funcprototype> "
+"<funcdef>boolean <function>ST_Intersects</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>rast</parameter> </paramdef> <paramdef> "
+"<type>integer </type> <parameter>nband</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>geommin</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Intersects</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rast</"
+"parameter> </paramdef> <paramdef> <type>geometry </type> <parameter>geommin</"
+"parameter> </paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
+"funcdef> <paramdef> <type>geometry </type> <parameter>geommin</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef choice=\"opt\"> <type>integer </type> "
+"<parameter>nband=NULL</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10239
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially intersects raster rastB. If the band "
+"number is not provided (or set to NULL), only the convex hull of the raster "
+"is considered in the test. If the band number is provided, only those pixels "
+"with value (not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10249
+#, no-c-format
+msgid "Enhanced: 2.0.0 support raster/raster intersects was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10254
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 The behavior of the ST_Intersects(raster, geometry) variants "
+"changed to match that of ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10263
+#, no-c-format
+msgid ""
+"-- different bands of same raster\n"
+"SELECT ST_Intersects(rast, 2, rast, 3) FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" st_intersects \n"
+"---------------\n"
+" t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10268
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Disjoint\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10277
+#, no-c-format
+msgid "ST_Overlaps"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10278
+#, no-c-format
+msgid ""
+"Return true if raster rastA and rastB intersect but one does not completely "
+"contain the other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10284
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Overlaps</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10323
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially overlaps raster rastB. This means that "
+"rastA and rastB intersect but one does not completely contain the other. If "
+"the band number is not provided (or set to NULL), only the convex hull of "
+"the raster is considered in the test. If the band number is provided, only "
+"those pixels with value (not NODATA) are considered in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10334
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Overlaps(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10345
+#, no-c-format
+msgid ""
+"-- comparing different bands of same raster\n"
+"SELECT ST_Overlaps(rast, 1, rast, 2) FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" st_overlaps \n"
+"-------------\n"
+" f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10357
+#, no-c-format
+msgid "ST_Touches"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10358
+#, no-c-format
+msgid ""
+"Return true if raster rastA and rastB have at least one point in common but "
+"their interiors do not intersect."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10364
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Touches</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Touches</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10403
+#, no-c-format
+msgid ""
+"Return true if raster rastA spatially touches raster rastB. This means that "
+"rastA and rastB have at least one point in common but their interiors do not "
+"intersect. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10414
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Touches(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10425
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Touches(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_touches \n"
+"-----+-----+------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | f"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10437
+#, no-c-format
+msgid "ST_SameAlignment"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10439
+#, no-c-format
+msgid ""
+"Returns true if rasters have same skew, scale, spatial ref, and offset "
+"(pixels can be put on same grid without cutting into pixels) and false if "
+"they don't with notice detailing issue."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10443
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_SameAlignment</function></funcdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx1</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly1</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex1</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley1</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx1</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy1</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>ulx2</parameter> </paramdef> <paramdef> "
+"<type>double precision </type> <parameter>uly2</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>scalex2</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> <parameter>scaley2</"
+"parameter> </paramdef> <paramdef> <type>double precision </type> "
+"<parameter>skewx2</parameter> </paramdef> <paramdef> <type>double precision "
+"</type> <parameter>skewy2</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
+"funcdef> <paramdef> <type>raster set </type> <parameter>rastfield</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10522
+#, no-c-format
+msgid ""
+"Non-Aggregate version (Variants 1 and 2): Returns true if the two rasters "
+"(either provided directly or made using the values for upperleft, scale, "
+"skew and srid) have the same scale, skew, srid and at least one of any of "
+"the four corners of any pixel of one raster falls on any corner of the grid "
+"of the other raster. Returns false if they don't and a NOTICE detailing the "
+"alignment issue."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10526
+#, no-c-format
+msgid ""
+"Aggregate version (Variant 3): From a set of rasters, returns true if all "
+"rasters in the set are aligned. The ST_SameAlignment() function is an "
+"\"aggregate\" function in the terminology of PostgreSQL. That means that it "
+"operates on rows of data, in the same way the SUM() and AVG() functions do."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10531
+#, no-c-format
+msgid "Enhanced: 2.1.0 addition of Aggegrate variant"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:10535
+#, no-c-format
+msgid "Examples: Rasters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10537
+#, no-c-format
+msgid ""
+"SELECT ST_SameAlignment(\n"
+"        ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"        ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0)\n"
+") as sm;\n"
+"\n"
+"sm\n"
+"----\n"
+"t"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10538
+#, no-c-format
+msgid ""
+"SELECT ST_SameAlignment(A.rast,b.rast)\n"
+" FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;\n"
+"\n"
+" NOTICE:  The two rasters provided have different SRIDs\n"
+"NOTICE:  The two rasters provided have different SRIDs\n"
+" st_samealignment\n"
+"------------------\n"
+" t\n"
+" f\n"
+" f\n"
+" f"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10542
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_NotSameAlignmentReason\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10552
+#, no-c-format
+msgid "ST_NotSameAlignmentReason"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10553
+#, no-c-format
+msgid ""
+"<refpurpose>Returns text stating if rasters are aligned and if not aligned, "
+"a reason why.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:10558
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_NotSameAlignmentReason</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rastA</parameter></paramdef> "
+"<paramdef><type>raster </type><parameter>rastB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10568
+#, no-c-format
+msgid ""
+"<para>Returns text stating if rasters are aligned and if not aligned, a "
+"reason why.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10571
+#, no-c-format
+msgid ""
+"If there are several reasons why the rasters are not aligned, only one "
+"reason (the first test to fail) will be returned."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10581
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_SameAlignment(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        ),\n"
+"        ST_NotSameAlignmentReason(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        )\n"
+";\n"
+"\n"
+" st_samealignment |            st_notsamealignmentreason            \n"
+"------------------+-------------------------------------------------\n"
+" f                | The rasters have different scales on the X axis\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10586
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SameAlignment\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10595
+#, no-c-format
+msgid "ST_Within"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10596
+#, no-c-format
+msgid ""
+"Return true if no points of raster rastA lie in the exterior of raster rastB "
+"and at least one point of the interior of rastA lies in the interior of "
+"rastB."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10602
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_Within</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>ST_Within</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</"
+"parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10641
+#, no-c-format
+msgid ""
+"Raster rastA is within rastB if and only if no points of rastA lie in the "
+"exterior of rastB and at least one point of the interior of rastA lies in "
+"the interior of rastB. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10652
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_Within(ST_Polygon(raster), geometry) or "
+"ST_Within(geometry, ST_Polygon(raster))."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10658
+#, no-c-format
+msgid ""
+"ST_Within() is the inverse of ST_Contains(). So, ST_Within(rastA, rastB) "
+"implies ST_Contains(rastB, rastA)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10669
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_Within(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
+"CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_within \n"
+"-----+-----+-----------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10673
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Contains\"/>, <xref linkend=\"RT_ST_DWithin\"/>, "
+"<xref linkend=\"RT_ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10684
+#, no-c-format
+msgid "ST_DWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10685
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are within the specified distance of "
+"each other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10691
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> "
+"<paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> "
+"<paramdef> <type>double precision </type> <parameter>distance_of_srid</"
+"parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>ST_DWithin</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>rastB</parameter> </paramdef> <paramdef> <type>double precision </"
+"type> <parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10738
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are within the specified distance of "
+"each other. If the band number is not provided (or set to NULL), only the "
+"convex hull of the raster is considered in the test. If the band number is "
+"provided, only those pixels with value (not NODATA) are considered in the "
+"test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10742 reference_raster.xml:10835
+#, no-c-format
+msgid ""
+"The distance is specified in units defined by the spatial reference system "
+"of the rasters. For this function to make sense, the source rasters must "
+"both be of the same coordinate projection, having the same SRID."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10753
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_DWithin(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10764
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_DWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_dwithin \n"
+"-----+-----+------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10768
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DFullyWithin\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10777
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10778
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are fully within the specified "
+"distance of each other."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:10784
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </"
+"paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </"
+"paramdef> <paramdef> <type>double precision </type> "
+"<parameter>distance_of_srid</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10831
+#, no-c-format
+msgid ""
+"Return true if rasters rastA and rastB are fully within the specified "
+"distance of each other. If the band number is not provided (or set to NULL), "
+"only the convex hull of the raster is considered in the test. If the band "
+"number is provided, only those pixels with value (not NODATA) are considered "
+"in the test."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10846
+#, no-c-format
+msgid ""
+"To test the spatial relationship of a raster and a geometry, use ST_Polygon "
+"on the raster, e.g. ST_DFullyWithin(ST_Polygon(raster), geometry)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10857
+#, no-c-format
+msgid ""
+"SELECT r1.rid, r2.rid, ST_DFullyWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
+"dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
+"\n"
+" rid | rid | st_dfullywithin \n"
+"-----+-----+-----------------\n"
+"   2 |   1 | f\n"
+"   2 |   2 | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10861
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_DWithin\"/>"
+msgstr ""
diff --git a/doc/po/pl/reference_sfcgal.xml.po b/doc/po/pl/reference_sfcgal.xml.po
new file mode 100644
index 0000000..dd871f3
--- /dev/null
+++ b/doc/po/pl/reference_sfcgal.xml.po
@@ -0,0 +1,621 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: para
+#: reference_sfcgal.xml:5
+#, no-c-format
+msgid ""
+"SFCGAL is a C++ wrapper library around CGAL that provides advanced 2D and 3D "
+"functions. For robustness, geometry coordinates have an exact rational "
+"number representation."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:9
+#, no-c-format
+msgid ""
+"Installation instructions of the library can be found on SFCGAL home page "
+"<ulink url=\"http://www.sfcgal.org\">http://www.sfcgal.org</ulink>. To load "
+"the functions execute postgis/sfcgal.sql"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:15
+#, no-c-format
+msgid "SFCGAL Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:18
+#, no-c-format
+msgid "postgis_sfcgal_version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:20
+#, no-c-format
+msgid "Returns the version of SFCGAL in use"
+msgstr ""
+
+#. Tag: funcdef
+#: reference_sfcgal.xml:26
+#, no-c-format
+msgid "text <function>postgis_sfcgal_version</function>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:33 reference_sfcgal.xml:65 reference_sfcgal.xml:158
+#: reference_sfcgal.xml:218 reference_sfcgal.xml:247 reference_sfcgal.xml:276
+#: reference_sfcgal.xml:305 reference_sfcgal.xml:335 reference_sfcgal.xml:377
+#: reference_sfcgal.xml:405
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:35 reference_sfcgal.xml:67 reference_sfcgal.xml:160
+#: reference_sfcgal.xml:249 reference_sfcgal.xml:278 reference_sfcgal.xml:310
+#: reference_sfcgal.xml:337 reference_sfcgal.xml:379 reference_sfcgal.xml:407
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:36 reference_sfcgal.xml:68 reference_sfcgal.xml:161
+#: reference_sfcgal.xml:221 reference_sfcgal.xml:250 reference_sfcgal.xml:279
+#: reference_sfcgal.xml:311 reference_sfcgal.xml:338 reference_sfcgal.xml:380
+#: reference_sfcgal.xml:408
+#, no-c-format
+msgid "&sfcgal_required;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:37 reference_sfcgal.xml:69 reference_sfcgal.xml:162
+#: reference_sfcgal.xml:222 reference_sfcgal.xml:251 reference_sfcgal.xml:280
+#: reference_sfcgal.xml:312 reference_sfcgal.xml:339 reference_sfcgal.xml:381
+#: reference_sfcgal.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:38 reference_sfcgal.xml:70 reference_sfcgal.xml:163
+#: reference_sfcgal.xml:223 reference_sfcgal.xml:252 reference_sfcgal.xml:281
+#: reference_sfcgal.xml:340 reference_sfcgal.xml:382 reference_sfcgal.xml:410
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:39 reference_sfcgal.xml:71 reference_sfcgal.xml:164
+#: reference_sfcgal.xml:224 reference_sfcgal.xml:253 reference_sfcgal.xml:282
+#: reference_sfcgal.xml:341 reference_sfcgal.xml:383 reference_sfcgal.xml:411
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:47
+#, no-c-format
+msgid "ST_Extrude"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:49
+#, no-c-format
+msgid "Extrude a surface to a related volume"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:54
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Extrude</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>z</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:74 reference_sfcgal.xml:167 reference_sfcgal.xml:414
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:75
+#, no-c-format
+msgid ""
+"3D images were generated using the PostGIS <xref linkend=\"ST_AsX3D\"/> and "
+"rendering in HTML using <ulink url=\"http://www.x3dom.org\">X3Dom HTML "
+"Javascript redering library</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:82
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+"  50, 'quad_segs=2'),0,0,30);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:88
+#, no-c-format
+msgid "Original octagon formed from buffering point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:93
+#, no-c-format
+msgid ""
+"ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2'),0,0,30);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:99
+#, no-c-format
+msgid "Hexagon extruded 30 units along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:107
+#, no-c-format
+msgid "SELECT ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)')"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:113
+#, no-c-format
+msgid "Original linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Extrude(\n"
+" ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)'),0,0,10));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:124
+#, no-c-format
+msgid "LineString Extruded along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:134
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:143
+#, no-c-format
+msgid "ST_StraightSkeleton"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:145
+#, no-c-format
+msgid "Compute a straight skeleton from a geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:150
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:168
+#, no-c-format
+msgid ""
+"SELECT ST_StraightSkeleton(ST_GeomFromText('POLYGON (( 190 190, 10 190, 10 "
+"10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:179 reference_sfcgal.xml:453
+#, no-c-format
+msgid "Original polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:188
+#, no-c-format
+msgid "Straight Skeleton of polygon"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:203
+#, no-c-format
+msgid "ST_IsPlanar"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:205
+#, no-c-format
+msgid "Check if a surface is or not planar"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:210
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsPlanar</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:220
+#, no-c-format
+msgid ""
+"Availability: 2.2.0: This was documented in 2.1.0 but got accidentally left "
+"out in 2.1 release."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:232
+#, no-c-format
+msgid "ST_Orientation"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:234
+#, no-c-format
+msgid "Determine surface orientation"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:239
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_Orientation</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:261
+#, no-c-format
+msgid "ST_ForceLHR"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:263
+#, no-c-format
+msgid "Force LHR orientation"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:268
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:289
+#, no-c-format
+msgid "ST_MinkowskiSum"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:291
+#, no-c-format
+msgid "Performs Minkowski sum"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:296
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinkowskiSum</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:307
+#, no-c-format
+msgid ""
+"This function performs a 2D minkowski sum of a point, line or polygon with a "
+"polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:308
+#, no-c-format
+msgid ""
+"The first parameter can be any 2D geometry (point, linestring, polygon). If "
+"a 3D geometry is passed, it will be converted to 2D by forcing Z to 0, "
+"leading to possible cases of invalidity. The second parameter must be a 2D "
+"polygon."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:319
+#, no-c-format
+msgid "ST_3DIntersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:321
+#, no-c-format
+msgid "Perform 3D intersection"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:326
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DIntersection</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:345
+#, no-c-format
+msgid "Examples: 3D linestring and Polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:346
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(linestring, polygon)) As wkt\n"
+"FROM  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"              wkt\n"
+"--------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8)"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:348
+#, no-c-format
+msgid "Cube (closed Polyhedral Surface) and Polygon Z"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:349
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(\n"
+"                ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'), \n"
+"        'POLYGON Z ((0 0 0, 0 0 0.5, 0 0.5 0.5, 0 0.5 0, 0 0 0))'::geometry))"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:350
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),((0 0.5 0,0 0 0,0 0.5 0.5,0 0.5 0)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:352
+#, no-c-format
+msgid ""
+"Intersection of 2 solids that result in volumetric intersection is also a "
+"solid (ST_Dimension returns 3)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:353
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection( ST_Extrude(ST_Buffer('POINT(10 20)'::"
+"geometry,10,1),0,0,30),\n"
+" ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),2,0,10) ));"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:354
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE Z (((13.3333333333333 13.3333333333333 10,20 20 0,20 20 "
+"10,13.3333333333333 13.3333333333333 10)),\n"
+"         ((20 20 10,16.6666666666667 23.3333333333333 10,13.3333333333333 "
+"13.3333333333333 10,20 20 10)),\n"
+"         ((20 20 0,16.6666666666667 23.3333333333333 10,20 20 10,20 20 0)),\n"
+"         ((13.3333333333333 13.3333333333333 10,10 10 0,20 20 "
+"0,13.3333333333333 13.3333333333333 10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,12 28 10,13.3333333333333 "
+"13.3333333333333 10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((20 20 0,9.99999999999995 30 0,16.6666666666667 23.3333333333333 "
+"10,20 20 0)),\n"
+"         ((10 10 0,9.99999999999995 30 0,20 20 0,10 10 0)),"
+"((13.3333333333333 13.3333333333333 10,12 12 10,10 10 0,13.3333333333333 "
+"13.3333333333333 10)),\n"
+"         ((12 28 10,12 12 10,13.3333333333333 13.3333333333333 10,12 28 "
+"10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,9.99999999999995 30 0,12 28 "
+"10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((10 10 0,0 20 0,9.99999999999995 30 0,10 10 0)),\n"
+"         ((12 12 10,11 11 10,10 10 0,12 12 10)),((12 28 10,11 11 10,12 12 "
+"10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,11 29 10,12 28 10,9.99999999999995 30 0)),"
+"((0 20 0,2 20 10,9.99999999999995 30 0,0 20 0)),\n"
+"         ((10 10 0,2 20 10,0 20 0,10 10 0)),((11 11 10,2 20 10,10 10 0,11 11 "
+"10)),((12 28 10,11 29 10,11 11 10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,2 20 10,11 29 10,9.99999999999995 30 0)),"
+"((11 11 10,11 29 10,2 20 10,11 11 10)))"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:362
+#, no-c-format
+msgid "ST_3DArea"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:364
+#, no-c-format
+msgid "Computes area of 3D geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:369
+#, no-c-format
+msgid ""
+"<funcdef>float<function>ST_3DArea</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:390
+#, no-c-format
+msgid "ST_Tesselate"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:392
+#, no-c-format
+msgid ""
+"Perform surface Tesselation of a polygon or polyhedralsurface and returns as "
+"a TIN or collection of TINS"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:397
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Tesselate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:406
+#, no-c-format
+msgid ""
+"Takes as input a surface such a MULTI(POLYGON) or POLYHEDRALSURFACE and "
+"returns a TIN representation via the process of tesselation using triangles."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:420
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )');"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:426
+#, no-c-format
+msgid "Original Cube"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:431
+#, no-c-format
+msgid ""
+"SELECT ST_Tesselate(ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:432
+#, no-c-format
+msgid "ST_AsText output:"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:433
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 1,0 1 1,0 0 0)),((0 1 0,0 0 0,0 1 1,0 1 0)),\n"
+"        ((0 0 0,0 1 0,1 1 0,0 0 0)),\n"
+"        ((1 0 0,0 0 0,1 1 0,1 0 0)),((0 0 1,1 0 0,1 0 1,0 0 1)),\n"
+"        ((0 0 1,0 0 0,1 0 0,0 0 1)),\n"
+"        ((1 1 0,1 1 1,1 0 1,1 1 0)),((1 0 0,1 1 0,1 0 1,1 0 0)),\n"
+"        ((0 1 0,0 1 1,1 1 1,0 1 0)),((1 1 0,0 1 0,1 1 1,1 1 0)),\n"
+"        ((0 1 1,1 0 1,1 1 1,0 1 1)),((0 1 1,0 0 1,1 0 1,0 1 1)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:439
+#, no-c-format
+msgid "Tesselated Cube with triangles colored"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:447
+#, no-c-format
+msgid ""
+"SELECT 'POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, "
+"10 190 ))'::geometry;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:458
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_Tesselate('POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 "
+"160, 120 190, 10 190 ))'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:460
+#, no-c-format
+msgid "ST_AsText output"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:461
+#, no-c-format
+msgid ""
+"TIN(((80 130,50 160,80 70,80 130)),((50 160,10 190,10 70,50 160)),\n"
+"         ((80 70,50 160,10 70,80 70)),((120 160,120 190,50 160,120 160)),\n"
+" ((120 190,10 190,50 160,120 190)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:467
+#, no-c-format
+msgid "Tesselated Polygon"
+msgstr ""
diff --git a/doc/po/pl/reference_transaction.xml.po b/doc/po/pl/reference_transaction.xml.po
new file mode 100644
index 0000000..00647c5
--- /dev/null
+++ b/doc/po/pl/reference_transaction.xml.po
@@ -0,0 +1,394 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reference_transaction.xml:3
+#, no-c-format
+msgid "Long Transactions Support"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:5
+#, no-c-format
+msgid ""
+"This module and associated pl/pgsql functions have been implemented to "
+"provide long locking support required by <ulink url=\"http://www."
+"opengeospatial.org/standards/wfs\">Web Feature Service</ulink> specification."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:10
+#, no-c-format
+msgid ""
+"Users must use <ulink url=\"http://www.postgresql.org/docs/current/static/"
+"transaction-iso.html\">serializable transaction level</ulink> otherwise "
+"locking mechanism would break."
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:18
+#, no-c-format
+msgid "AddAuth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:20
+#, no-c-format
+msgid ""
+"<refpurpose>Add an authorization token to be used in current transaction.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_transaction.xml:25
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>AddAuth</function></funcdef> <paramdef><type>text "
+"</type> <parameter>auth_token</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_transaction.xml:33 reference_transaction.xml:83
+#: reference_transaction.xml:130 reference_transaction.xml:177
+#: reference_transaction.xml:241 reference_transaction.xml:284
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:35
+#, no-c-format
+msgid ""
+"<para>Add an authorization token to be used in current transaction.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:37
+#, no-c-format
+msgid ""
+"Creates/adds to a temp table called temp_lock_have_table the current "
+"transaction identifier and authorization token key."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:40 reference_transaction.xml:92
+#: reference_transaction.xml:138 reference_transaction.xml:185
+#: reference_transaction.xml:248 reference_transaction.xml:289
+#, no-c-format
+msgid "Availability: 1.1.3"
+msgstr ""
+
+#. Tag: title
+#: reference_transaction.xml:45 reference_transaction.xml:98
+#: reference_transaction.xml:144 reference_transaction.xml:191
+#: reference_transaction.xml:253 reference_transaction.xml:294
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:47
+#, no-c-format
+msgid ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                BEGIN TRANSACTION;\n"
+"                        SELECT AddAuth('joey');\n"
+"                        UPDATE towns SET the_geom = "
+"ST_Translate(the_geom,2,2) WHERE gid = 353;\n"
+"                COMMIT;\n"
+"\n"
+"\n"
+"                ---Error--\n"
+"                ERROR:  UPDATE where \"gid\" = '353' requires authorization "
+"'priscilla'"
+msgstr ""
+
+#. Tag: title
+#: reference_transaction.xml:52 reference_transaction.xml:105
+#: reference_transaction.xml:151 reference_transaction.xml:198
+#: reference_transaction.xml:260 reference_transaction.xml:301
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:60
+#, no-c-format
+msgid "CheckAuth"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:62
+#, no-c-format
+msgid ""
+"Creates trigger on a table to prevent/allow updates and deletes of rows "
+"based on authorization token."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_transaction.xml:66
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>CheckAuth</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_key_column_name</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>CheckAuth</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_key_column_name</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:85
+#, no-c-format
+msgid ""
+"Creates trigger on a table to prevent/allow updates and deletes of rows "
+"based on authorization token. Identify rows using <rowid_col> column."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:87
+#, no-c-format
+msgid ""
+"If a_schema_name is not passed in, then searches for table in current schema."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:88
+#, no-c-format
+msgid ""
+"If an authorization trigger already exists on this table function errors."
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:89
+#, no-c-format
+msgid "If Transaction support is not enabled, function throws an exception."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:100
+#, no-c-format
+msgid ""
+"SELECT CheckAuth('public', 'towns', 'gid');\n"
+"                        result\n"
+"                        ------\n"
+"                        0"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:113
+#, no-c-format
+msgid "DisableLongTransactions"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:115
+#, no-c-format
+msgid ""
+"<refpurpose>Disable long transaction support. This function removes the long "
+"transaction support metadata tables, and drops all triggers attached to lock-"
+"checked tables.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_transaction.xml:122
+#, no-c-format
+msgid ""
+"<funcdef>text <function>DisableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:132
+#, no-c-format
+msgid ""
+"<para>Disable long transaction support. This function removes the long "
+"transaction support metadata tables, and drops all triggers attached to lock-"
+"checked tables.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:135
+#, no-c-format
+msgid ""
+"Drops meta table called <varname>authorization_table</varname> and a view "
+"called <varname>authorized_tables</varname> and all triggers called "
+"<varname>checkauthtrigger</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:146
+#, no-c-format
+msgid ""
+"SELECT DisableLongTransactions();\n"
+"--result--\n"
+"Long transactions support disabled"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:159
+#, no-c-format
+msgid "EnableLongTransactions"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:161
+#, no-c-format
+msgid ""
+"<refpurpose>Enable long transaction support. This function creates the "
+"required metadata tables, needs to be called once before using the other "
+"functions in this section. Calling it twice is harmless.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_transaction.xml:169
+#, no-c-format
+msgid ""
+"<funcdef>text <function>EnableLongTransactions</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:179
+#, no-c-format
+msgid ""
+"<para>Enable long transaction support. This function creates the required "
+"metadata tables, needs to be called once before using the other functions in "
+"this section. Calling it twice is harmless.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:183
+#, no-c-format
+msgid ""
+"Creates a meta table called <varname>authorization_table</varname> and a "
+"view called <varname>authorized_tables</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:193
+#, no-c-format
+msgid ""
+"SELECT EnableLongTransactions();\n"
+"--result--\n"
+"Long transactions support enabled"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:206
+#, no-c-format
+msgid "LockRow"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:208
+#, no-c-format
+msgid "Set lock/authorization for specific row in table"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_transaction.xml:212
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>integer <function>LockRow</function></funcdef> "
+"<paramdef><type>text </type> <parameter>a_schema_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_table_name</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>a_row_key</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>an_auth_token</parameter></paramdef> "
+"<paramdef><type>timestamp</type> <parameter>expire_dt</parameter></paramdef> "
+"</funcprototype> <funcprototype> <funcdef>integer <function>LockRow</"
+"function></funcdef> <paramdef><type>text </type> <parameter>a_table_name</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>a_row_key</"
+"parameter></paramdef> <paramdef><type>text</type> <parameter>an_auth_token</"
+"parameter></paramdef> <paramdef><type>timestamp</type> <parameter>expire_dt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>LockRow</function></funcdef> <paramdef><type>text </type> "
+"<parameter>a_table_name</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>a_row_key</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>an_auth_token</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:243
+#, no-c-format
+msgid ""
+"Set lock/authorization for specific row in table <authid> is a text "
+"value, <expires> is a timestamp defaulting to now()+1hour. Returns 1 "
+"if lock has been assigned, 0 otherwise (already locked by other auth)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:255
+#, no-c-format
+msgid ""
+"SELECT LockRow('public', 'towns', '2', 'joey');\n"
+"LockRow\n"
+"-------\n"
+"1\n"
+"\n"
+"--Joey has already locked the record and Priscilla is out of luck\n"
+"SELECT LockRow('public', 'towns', '2', 'priscilla');\n"
+"LockRow\n"
+"-------\n"
+"0"
+msgstr ""
+
+#. Tag: refname
+#: reference_transaction.xml:268
+#, no-c-format
+msgid "UnlockRows"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_transaction.xml:270
+#, no-c-format
+msgid ""
+"<refpurpose>Remove all locks held by specified authorization id. Returns the "
+"number of locks released.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_transaction.xml:276
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>UnlockRows</function></funcdef> "
+"<paramdef><type>text </type> <parameter>auth_token</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_transaction.xml:286
+#, no-c-format
+msgid ""
+"<para>Remove all locks held by specified authorization id. Returns the "
+"number of locks released.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_transaction.xml:296
+#, no-c-format
+msgid ""
+"SELECT LockRow('towns', '353', 'priscilla');\n"
+"                SELECT LockRow('towns', '2', 'priscilla');\n"
+"                SELECT UnLockRows('priscilla');\n"
+"                UnLockRows\n"
+"                ------------\n"
+"                2"
+msgstr ""
diff --git a/doc/po/pl/reference_type.xml.po b/doc/po/pl/reference_type.xml.po
new file mode 100644
index 0000000..2dd34bf
--- /dev/null
+++ b/doc/po/pl/reference_type.xml.po
@@ -0,0 +1,279 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 21:04+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: para
+#: reference_type.xml:5
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by PostGIS. Note we "
+"describe the casting behavior of these which is very important especially "
+"when designing your own functions."
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:8
+#, no-c-format
+msgid ""
+"A Cast is when one type is coerced into another type. PostgreSQL is unique "
+"from most databases in that it allows you to define casting behavior for "
+"custom types and the functions used for casting. A cast can be specified as "
+"automatic in which case, you do not have to do a CAST(myfoo As otherfootype) "
+"or myfoo::otherfootype if you are feeding it to a function that only works "
+"with otherfootype and there is an automatic cast in place for it."
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:13
+#, no-c-format
+msgid ""
+"The danger of relying on automatic cast behavior is when you have an "
+"overloaded function say one that takes a box2d and one that takes a box3d "
+"but no geometry. What happens is that both functions are equally good to use "
+"with geometry since geometry has an autocast for both -- so you end up with "
+"an ambiguous function error. To force PostgreSQL to choose, you do a "
+"CAST(mygeom As box3d) or mygeom::box3d."
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:17
+#, no-c-format
+msgid ""
+"<emphasis>At least as of PostgreSQL 8.3</emphasis> - Everything can be CAST "
+"to text (presumably because of the magical unknown type), so no defined "
+"CASTS for that need to be present for you to CAST an object to text."
+msgstr ""
+
+#. Tag: title
+#: reference_type.xml:20
+#, no-c-format
+msgid "PostgreSQL PostGIS Geometry/Geography/Box Types"
+msgstr ""
+
+#. Tag: refname
+#: reference_type.xml:24
+#, no-c-format
+msgid "<refname>box2d</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_type.xml:25
+#, no-c-format
+msgid ""
+"A box composed of x min, ymin, xmax, ymax. Often used to return the 2d "
+"enclosing box of a geometry."
+msgstr ""
+
+#. Tag: title
+#: reference_type.xml:29 reference_type.xml:40 reference_type.xml:79
+#: reference_type.xml:136 reference_type.xml:155
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:30
+#, no-c-format
+msgid ""
+"box2d is a spatial data type used to represent the enclosing box of a "
+"geometry or set of geometries. ST_Extent in earlier versions prior to "
+"PostGIS 1.4 would return a box2d."
+msgstr ""
+
+#. Tag: refname
+#: reference_type.xml:35
+#, no-c-format
+msgid "<refname>box3d</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_type.xml:36
+#, no-c-format
+msgid ""
+"A box composed of x min, ymin, zmin, xmax, ymax, zmax. Often used to return "
+"the 3d extent of a geometry or collection of geometries."
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:41
+#, no-c-format
+msgid ""
+"box3d is a postgis spatial data type used to represent the enclosing box of "
+"a geometry or set of geometries. ST_3DExtent returns a box3d object."
+msgstr ""
+
+#. Tag: title
+#: reference_type.xml:45 reference_type.xml:84 reference_type.xml:160
+#, no-c-format
+msgid "Casting Behavior"
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:46 reference_type.xml:85 reference_type.xml:161
+#, no-c-format
+msgid ""
+"This section lists the automatic as well as explicit casts allowed for this "
+"data type"
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:51 reference_type.xml:90 reference_type.xml:166
+#, no-c-format
+msgid "Cast To"
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:52 reference_type.xml:91 reference_type.xml:167
+#, no-c-format
+msgid "Behavior"
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:55 reference_type.xml:94
+#, no-c-format
+msgid "<entry>box</entry>"
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:56 reference_type.xml:60 reference_type.xml:64
+#: reference_type.xml:95 reference_type.xml:99 reference_type.xml:103
+#: reference_type.xml:107 reference_type.xml:111 reference_type.xml:115
+#, no-c-format
+msgid "automatic"
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:59 reference_type.xml:98
+#, no-c-format
+msgid "<entry>box2d</entry>"
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:63 reference_type.xml:170
+#, no-c-format
+msgid "<entry>geometry</entry>"
+msgstr ""
+
+#. Tag: refname
+#: reference_type.xml:74
+#, no-c-format
+msgid "<refname>geometry</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_type.xml:75
+#, no-c-format
+msgid "Planar spatial data type."
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:80
+#, no-c-format
+msgid ""
+"geometry is a fundamental postgis spatial data type used to represent a "
+"feature in the Euclidean coordinate system."
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:102
+#, no-c-format
+msgid "<entry>box3d</entry>"
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:106
+#, no-c-format
+msgid "bytea"
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:110
+#, no-c-format
+msgid "<entry>geography</entry>"
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:114
+#, no-c-format
+msgid "text"
+msgstr ""
+
+#. Tag: title
+#: reference_type.xml:123 reference_type.xml:143 reference_type.xml:179
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_type.xml:130
+#, no-c-format
+msgid "geometry_dump"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_type.xml:131
+#, no-c-format
+msgid ""
+"A spatial datatype with two fields - geom (holding a geometry object) and "
+"path[] (a 1-d array holding the position of the geometry within the dumped "
+"object.)"
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:137
+#, no-c-format
+msgid ""
+"geometry_dump is a compound data type consisting of a geometry object "
+"referenced by the .geom field and path[] a 1-dimensional integer array "
+"(starting at 1 e.g. path[1] to get first element) array that defines the "
+"navigation path within the dumped geometry to find this element. It is used "
+"by the ST_Dump* family of functions as an output type to explode a more "
+"complex geometry into its constituent parts and location of parts."
+msgstr ""
+
+#. Tag: refname
+#: reference_type.xml:150
+#, no-c-format
+msgid "<refname>geography</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_type.xml:151
+#, no-c-format
+msgid "Ellipsoidal spatial data type."
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:156
+#, no-c-format
+msgid ""
+"geography is a spatial data type used to represent a feature in the round-"
+"earth coordinate system."
+msgstr ""
+
+#. Tag: entry
+#: reference_type.xml:171
+#, no-c-format
+msgid "explicit"
+msgstr ""
+
+#. Tag: para
+#: reference_type.xml:180
+#, no-c-format
+msgid ", <xref linkend=\"PostGIS_Geography\"/>"
+msgstr ""
diff --git a/doc/po/pl/release_notes.xml.po b/doc/po/pl/release_notes.xml.po
new file mode 100644
index 0000000..b8b6fdc
--- /dev/null
+++ b/doc/po/pl/release_notes.xml.po
@@ -0,0 +1,6524 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: release_notes.xml:3
+#, no-c-format
+msgid "Appendix"
+msgstr ""
+
+#. Tag: subtitle
+#: release_notes.xml:4
+#, no-c-format
+msgid "Release Notes"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:6
+#, no-c-format
+msgid "Release 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:7
+#, no-c-format
+msgid "Release date: YYYY/MM/DD"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:11
+#, no-c-format
+msgid "Release 2.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:12
+#, no-c-format
+msgid "Release date: 2014-09-10"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:13
+#, no-c-format
+msgid "This is a bug fix and performance improvement release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:15 release_notes.xml:124 release_notes.xml:152
+#: release_notes.xml:271 release_notes.xml:449 release_notes.xml:477
+#: release_notes.xml:536 release_notes.xml:598 release_notes.xml:688
+#: release_notes.xml:889 release_notes.xml:944
+#, no-c-format
+msgid "Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:16
+#, no-c-format
+msgid "#2745, Speedup ST_Simplify calls against points"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:17
+#, no-c-format
+msgid "#2747, Support for GDAL 2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:18
+#, no-c-format
+msgid "#2749, Make rtpostgis_upgrade_20_21.sql ACID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:19
+#, no-c-format
+msgid "#2811, Do not specify index names when loading shapefiles/rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:20
+#, no-c-format
+msgid ""
+"#2829, Shortcut ST_Clip(raster) if geometry fully contains the raster and no "
+"NODATA specified"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:22
+#, no-c-format
+msgid ""
+"#2895, Raise cost of ST_ConvexHull(raster) to 300 for better query plans"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:26 release_notes.xml:87 release_notes.xml:98
+#: release_notes.xml:139 release_notes.xml:395 release_notes.xml:421
+#: release_notes.xml:463 release_notes.xml:487 release_notes.xml:550
+#: release_notes.xml:705 release_notes.xml:719 release_notes.xml:757
+#: release_notes.xml:795 release_notes.xml:826
+#, no-c-format
+msgid "Bug Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:27
+#, no-c-format
+msgid "#2605, armel: _ST_Covers() returns true for point in hole"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:28
+#, no-c-format
+msgid ""
+"#2911, Fix output scale on ST_Rescale/ST_Resample/ST_Resize of rasters with "
+"scale 1/-1 and offset 0/0."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:30
+#, no-c-format
+msgid "Fix crash in ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:31
+#, no-c-format
+msgid ""
+"#2704, ST_GeomFromGML() does not work properly with array of gml:pos (Even "
+"Roualt)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:33
+#, no-c-format
+msgid ""
+"#2708, updategeometrysrid doesn't update srid check when schema not "
+"specified. Patch from Marc Jansen"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:35
+#, no-c-format
+msgid "#2720, lwpoly_add_ring should update maxrings after realloc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:36
+#, no-c-format
+msgid ""
+"#2759, Fix postgis_restore.pl handling of multiline object comments "
+"embedding sql comments"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:38
+#, no-c-format
+msgid ""
+"#2774, fix undefined behavior in ptarray_calculate_gbox_geodetic - Fix "
+"potential memory fault in ST_MakeValid"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:40
+#, no-c-format
+msgid "#2784, Fix handling of bogus argument to --with-sfcgal"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:41
+#, no-c-format
+msgid "#2772, Premature memory free in RASTER_getBandPath (ST_BandPath)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:42
+#, no-c-format
+msgid "#2755, Fix regressions tests against all versions of SFCGAL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:43
+#, no-c-format
+msgid "#2775, lwline_from_lwmpoint leaks memory"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:44
+#, no-c-format
+msgid "#2802, ST_MapAlgebra checks for valid callback function return value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:45
+#, no-c-format
+msgid "#2803, ST_MapAlgebra handles no userarg and STRICT callback function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:46
+#, no-c-format
+msgid "#2834, ST_Estimated_Extent and mixedCase table names (regression bug)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:47
+#, no-c-format
+msgid "#2845, Bad geometry created from ST_AddPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:48
+#, no-c-format
+msgid ""
+"#2870, Binary insert into geography column results geometry being inserted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:49
+#, no-c-format
+msgid "#2872, make install builds documentation (Greg Troxell)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:50
+#, no-c-format
+msgid "#2819, find isfinite or replacement on Centos5 / Solaris"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:51
+#, no-c-format
+msgid "#2899, geocode limit 1 not returning best answer (tiger geocoder)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:52
+#, no-c-format
+msgid "#2903, Unable to compile on FreeBSD"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:53
+#, no-c-format
+msgid ""
+"#2927 reverse_geocode not filling in direction prefix (tiger geocoder) get "
+"rid of deprecated ST_Line_Locate_Point called"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:59
+#, no-c-format
+msgid "Release 2.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:60
+#, no-c-format
+msgid "Release date: 2014/05/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:61
+#, no-c-format
+msgid "This is a bug fix and security release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:63
+#, no-c-format
+msgid "Important changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:64
+#, no-c-format
+msgid ""
+"Starting with this version offline raster access and use of GDAL drivers are "
+"disabled by default."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:69
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling specific GDAL "
+"drivers: POSTGIS_GDAL_ENABLED_DRIVERS. By default, all GDAL drivers are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:75
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling out-db raster "
+"bands: POSTGIS_ENABLE_OUTDB_RASTERS. By default, out-db raster bands are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:81
+#, no-c-format
+msgid ""
+"The environment variables must be set for the PostgreSQL process, and "
+"determines the behavior of the whole cluster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:88
+#, no-c-format
+msgid "#2697, invalid GeoJSON Polygon input crashes server process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:89
+#, no-c-format
+msgid "#2700, Fix dumping of higher-dimension datasets with null rows"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:90
+#, no-c-format
+msgid "#2706, ST_DumpPoints of EMPTY geometries crashes server"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:94
+#, no-c-format
+msgid "Release 2.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:95 release_notes.xml:392
+#, no-c-format
+msgid "Release date: 2014/03/31"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:96
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:99
+#, no-c-format
+msgid "#2666, Error out at configure time if no SQL preprocessor can be found"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:100
+#, no-c-format
+msgid "#2534, st_distance returning incorrect results for large geographies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:101
+#, no-c-format
+msgid "#2539, Check for json-c/json.h presence/usability before json/json.h"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:102
+#, no-c-format
+msgid "#2543, invalid join selectivity error from simple query"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:103
+#, no-c-format
+msgid "#2546, GeoJSON with string coordinates parses incorrectly"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:104
+#, no-c-format
+msgid "#2547, Fix ST_Simplify(TopoGeometry) for hierarchical topogeoms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:105 release_notes.xml:402
+#, no-c-format
+msgid "#2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:107 release_notes.xml:403
+#, no-c-format
+msgid "#2555, Fix parsing issue of range arguments of ST_Reclass"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:108
+#, no-c-format
+msgid "#2556, geography ST_Intersects results depending on insert order"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:109
+#, no-c-format
+msgid "#2580, Do not allow installing postgis twice in the same database"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:110 release_notes.xml:404
+#, no-c-format
+msgid "#2589, Remove use of unnecessary void pointers"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:111
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in one process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:112 release_notes.xml:406
+#, no-c-format
+msgid "#2610, Ensure face splitting algorithm uses the edge index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:113
+#, no-c-format
+msgid ""
+"#2615, EstimatedExtent (and hence, underlying stats) gathering wrong bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:114
+#, no-c-format
+msgid "#2619, Empty rings array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:115
+#, no-c-format
+msgid "#2634, regression in sphere distance code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:116 release_notes.xml:408
+#, no-c-format
+msgid "#2638, Geography distance on M geometries sometimes wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:117
+#, no-c-format
+msgid ""
+"#2648, #2653, Fix topology functions when \"topology\" is not in search_path"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:118
+#, no-c-format
+msgid "#2654, Drop deprecated calls from topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:119
+#, no-c-format
+msgid ""
+"#2655, Let users without topology privileges call postgis_full_version()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:120
+#, no-c-format
+msgid "#2674, Fix missing operator = and hash_raster_ops opclass on raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:121
+#, no-c-format
+msgid ""
+"#2675, #2534, #2636, #2634, #2638, Geography distance issues with tree "
+"optimization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:125
+#, no-c-format
+msgid "#2494, avoid memcopy in GiST index (hayamiz)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:126
+#, no-c-format
+msgid ""
+"#2560, soft upgrade: avoid drop/recreate of aggregates that hadn't changed"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:131
+#, no-c-format
+msgid "Release 2.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:132
+#, no-c-format
+msgid "Release date: 2013/11/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:133
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.0 release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:135 release_notes.xml:411
+#, no-c-format
+msgid "Important Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:136
+#, no-c-format
+msgid ""
+"#2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:140
+#, no-c-format
+msgid "#2396, Make regression tests more endian-agnostic"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:141
+#, no-c-format
+msgid "#2434, Fix ST_Intersection(geog,geog) regression in rare cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:142
+#, no-c-format
+msgid ""
+"#2454, Fix behavior of ST_PixelAsXXX functions regarding "
+"exclude_nodata_value parameter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:143
+#, no-c-format
+msgid "#2489, Fix upgrades from 2.0 leaving stale function signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:144
+#, no-c-format
+msgid "#2525, Fix handling of SRID in nested collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:145
+#, no-c-format
+msgid "#2449, Fix potential infinite loop in index building"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:146
+#, no-c-format
+msgid "#2493, Fix behavior of ST_DumpValues when passed an empty raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:147 release_notes.xml:397
+#, no-c-format
+msgid "#2502, Fix postgis_topology_scripts_installed() install schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:148 release_notes.xml:398
+#, no-c-format
+msgid "#2504, Fix segfault on bogus pgsql2shp call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:149
+#, no-c-format
+msgid ""
+"#2512, Support for foreign tables and materialized views in raster_columns "
+"and raster_overviews"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:153
+#, no-c-format
+msgid "#2478, support for tiger 2013"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:154
+#, no-c-format
+msgid "#2463, support for exact length calculations on arc geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:160
+#, no-c-format
+msgid "Release 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:161
+#, no-c-format
+msgid "Release date: 2013/08/17"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:162
+#, no-c-format
+msgid ""
+"This is a minor release addressing both bug fixes and performance and "
+"functionality enhancements addressing issues since 2.0.3 release. If you are "
+"upgrading from 2.0+, only a soft upgrade is required. If you are upgrading "
+"from 1.5 or earlier, a hard upgrade is required."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:165 release_notes.xml:634
+#, no-c-format
+msgid "Important / Breaking Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:166
+#, no-c-format
+msgid ""
+"#1653, Removed srid parameter from ST_Resample(raster) and variants with "
+"reference raster no longer apply reference raster's SRID."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:168
+#, no-c-format
+msgid ""
+"#1962 ST_Segmentize - As a result of the introduction of geography support, "
+"The construct: <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</"
+"code> will result in ambiguous function error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:172
+#, no-c-format
+msgid "#2026, ST_Union(raster) now unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:173
+#, no-c-format
+msgid "#2089, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:174
+#, no-c-format
+msgid ""
+"#2150, regular_blocking is no longer a constraint. column of same name in "
+"raster_columns now checks for existance of spatially_unique and "
+"coverage_tile constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:177
+#, no-c-format
+msgid ""
+"ST_Intersects(raster, geometry) behaves in the same manner as "
+"ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:179
+#, no-c-format
+msgid ""
+"point variant of ST_SetValue(raster) previously did not check SRID of input "
+"geometry and raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:181
+#, no-c-format
+msgid ""
+"ST_Hillshade parameters azimuth and altitude are now in degrees instead of "
+"radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:183
+#, no-c-format
+msgid ""
+"ST_Slope and ST_Aspect return pixel values in degrees instead of radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:184
+#, no-c-format
+msgid ""
+"#2104, ST_World2RasterCoord, ST_World2RasterCoordX and ST_World2RasterCoordY "
+"renamed to ST_WorldToRasterCoord, ST_WorldToRasterCoordX and "
+"ST_WorldToRasterCoordY. ST_Raster2WorldCoord, ST_Raster2WorldCoordX and "
+"ST_Raster2WorldCoordY renamed to ST_RasterToWorldCoord, "
+"ST_RasterToWorldCoordX and ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:190
+#, no-c-format
+msgid "ST_Estimated_Extent renamed to ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:191
+#, no-c-format
+msgid "ST_Line_Interpolate_Point renamed to ST_LineInterpolatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:192
+#, no-c-format
+msgid "ST_Line_Substring renamed to ST_LineSubstring"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:193
+#, no-c-format
+msgid "ST_Line_Locate_Point renamed to ST_LineLocatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:194
+#, no-c-format
+msgid "ST_Force_XXX renamed to ST_ForceXXX"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:195
+#, no-c-format
+msgid ""
+"ST_MapAlgebraFctNgb and 1 and 2 raster variants of ST_MapAlgebraFct. Use "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:197
+#, no-c-format
+msgid ""
+"1 and 2 raster variants of ST_MapAlgebraExpr. Use expression variants of "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:202 release_notes.xml:661 release_notes.xml:861
+#: release_notes.xml:925 release_notes.xml:1222
+#, no-c-format
+msgid "New Features"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:203
+#, no-c-format
+msgid ""
+"- Refer to http://postgis.net/docs/manual-2.1/"
+"PostGIS_Special_Functions_Index.html#NewFunctions_2_1 for complete list of "
+"new functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:205
+#, no-c-format
+msgid ""
+"#310, ST_DumpPoints converted to a C function (Nathan Wagner) and much faster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:206
+#, no-c-format
+msgid "#739, UpdateRasterSRID()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:207
+#, no-c-format
+msgid ""
+"#945, improved join selectivity, N-D selectivity calculations, user "
+"accessible selectivity and stats reader functions for testing (Paul Ramsey / "
+"OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:210
+#, no-c-format
+msgid "toTopoGeom with TopoGeometry sink (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:211
+#, no-c-format
+msgid "clearTopoGeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:212
+#, no-c-format
+msgid "ST_Segmentize(geography) (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:213
+#, no-c-format
+msgid "ST_DelaunayTriangles (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:214
+#, no-c-format
+msgid "ST_NearestValue, ST_Neighborhood (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:215
+#, no-c-format
+msgid "ST_PixelAsPoint, ST_PixelAsPoints (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:216
+#, no-c-format
+msgid "ST_PixelAsCentroid, ST_PixelAsCentroids (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:217
+#, no-c-format
+msgid "ST_Raster2WorldCoord, ST_World2RasterCoord (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:218
+#, no-c-format
+msgid ""
+"Additional raster/raster spatial relationship functions (ST_Contains, "
+"ST_ContainsProperly, ST_Covers, ST_CoveredBy, ST_Disjoint, ST_Overlaps, "
+"ST_Touches, ST_Within, ST_DWithin, ST_DFullyWithin) (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:222
+#, no-c-format
+msgid ""
+"Added array variants of ST_SetValues() to set many pixel values of a band in "
+"one call (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:224
+#, no-c-format
+msgid "#1293, ST_Resize(raster) to resize rasters based upon width/height"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:225
+#, no-c-format
+msgid "#1627, package tiger_geocoder as a PostgreSQL extension"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:226
+#, no-c-format
+msgid ""
+"#1643, #2076, Upgrade tiger geocoder to support loading tiger 2011 and 2012 "
+"(Regina Obe / Paragon Corporation) Funded by Hunter Systems Group"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:228
+#, no-c-format
+msgid ""
+"GEOMETRYCOLLECTION support for ST_MakeValid (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:229
+#, no-c-format
+msgid "#1709, ST_NotSameAlignmentReason(raster, raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:230
+#, no-c-format
+msgid "#1818, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:231
+#, no-c-format
+msgid "#1856, reverse geocoder rating setting for prefer numbered highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:232
+#, no-c-format
+msgid "ST_PixelOfValue (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:233
+#, no-c-format
+msgid "Casts to/from PostgreSQL geotypes (point/path/polygon)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:234
+#, no-c-format
+msgid ""
+"Added geomval array variant of ST_SetValues() to set many pixel values of a "
+"band using a set of geometries and corresponding values in one call (Bborie "
+"Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:237
+#, no-c-format
+msgid ""
+"ST_Tile(raster) to break up a raster into tiles (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:238
+#, no-c-format
+msgid "#1895, new r-tree node splitting algorithm (Alex Korotkov)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:239
+#, no-c-format
+msgid "#2011, ST_DumpValues to output raster as array (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:240
+#, no-c-format
+msgid ""
+"#2018, ST_Distance support for CircularString, CurvePolygon, MultiCurve, "
+"MultiSurface, CompoundCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:242
+#, no-c-format
+msgid "#2030, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:243
+#, no-c-format
+msgid ""
+"#2193, Utilize PAGC parser as drop in replacement for tiger normalizer "
+"(Steve Woodbridge, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:245
+#, no-c-format
+msgid "#2210, ST_MinConvexHull(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:246
+#, no-c-format
+msgid "lwgeom_from_geojson in liblwgeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:247
+#, no-c-format
+msgid "#1687, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:248
+#, no-c-format
+msgid "#2228, TopoJSON output for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:249
+#, no-c-format
+msgid "#2123, ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:250
+#, no-c-format
+msgid "#613, ST_SetGeoReference with numerical parameters instead of text"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:251
+#, no-c-format
+msgid "#2276, ST_AddBand(raster) variant for out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:252
+#, no-c-format
+msgid "#2280, ST_Summary(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:253
+#, no-c-format
+msgid "#2163, ST_TPI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:254
+#, no-c-format
+msgid "#2164, ST_TRI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:255
+#, no-c-format
+msgid "#2302, ST_Roughness for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:256
+#, no-c-format
+msgid "#2290, ST_ColorMap(raster) to generate RGBA bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:257
+#, no-c-format
+msgid ""
+"#2254, Add SFCGAL backend support. (Backend selection throught postgis."
+"backend var) Functions available both throught GEOS or SFCGAL: "
+"ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, ST_Distance, "
+"ST_3DDistance New functions available only with SFCGAL backend: "
+"ST_3DIntersection, ST_Tesselate, ST_3DArea, ST_Extrude, ST_ForceLHR "
+"ST_Orientation, ST_Minkowski, ST_StraightSkeleton postgis_sfcgal_version New "
+"function available in PostGIS: ST_ForceSFS (Olivier Courtin and Hugo "
+"Mercier / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:272
+#, no-c-format
+msgid ""
+"For detail of new functions and function improvements, please refer to <xref "
+"linkend=\"NewFunctions_2_1\"/>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:273
+#, no-c-format
+msgid ""
+"Much faster raster ST_Union, ST_Clip and many more function additions "
+"operations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:274
+#, no-c-format
+msgid ""
+"For geometry/geography better planner selectivity and a lot more functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:276
+#, no-c-format
+msgid ""
+"#823, tiger geocoder: Make loader_generate_script download portion less "
+"greedy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:278
+#, no-c-format
+msgid ""
+"#826, raster2pgsql no longer defaults to padding tiles. Flag -P can be used "
+"to pad tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:280
+#, no-c-format
+msgid "#1363, ST_AddBand(raster, ...) array version rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:281
+#, no-c-format
+msgid "#1364, ST_Union(raster, ...) aggregate function rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:282
+#, no-c-format
+msgid "#1655, Additional default values for parameters of ST_Slope"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:283
+#, no-c-format
+msgid "#1661, Add aggregate variant of ST_SameAlignment"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:284
+#, no-c-format
+msgid "#1719, Add support for Point and GeometryCollection ST_MakeValid inputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:285
+#, no-c-format
+msgid "#1780, support ST_GeoHash for geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:286
+#, no-c-format
+msgid "#1796, Big performance boost for distance calculations in geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:287
+#, no-c-format
+msgid "#1802, improved function interruptibility."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:288
+#, no-c-format
+msgid ""
+"#1823, add parameter in ST_AsGML to use id column for GML 3 output (become "
+"mandatory since GML 3.2.1)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:290
+#, no-c-format
+msgid ""
+"#1856, tiger geocoder: reverse geocoder rating setting for prefer numbered "
+"highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:292
+#, no-c-format
+msgid "#1938, Refactor basic ST_AddBand to add multiple new bands in one call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:293
+#, no-c-format
+msgid ""
+"#1978, wrong answer when calculating length of a closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:295 release_notes.xml:505
+#, no-c-format
+msgid ""
+"#1989, Preprocess input geometry to just intersection with raster to be "
+"clipped"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:297
+#, no-c-format
+msgid ""
+"#2021, Added multi-band support to ST_Union(raster, ...) aggregate function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:298
+#, no-c-format
+msgid "#2006, better support of ST_Area(geography) over poles and dateline"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:299
+#, no-c-format
+msgid "#2065, ST_Clip(raster, ...) now a C function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:300
+#, no-c-format
+msgid "#2069, Added parameters to ST_Tile(raster) to control padding of tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:301
+#, no-c-format
+msgid ""
+"#2078, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide "
+"solution to handling tiles in a coverage"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:303
+#, no-c-format
+msgid "#2097, Added RANGE uniontype option for ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:304
+#, no-c-format
+msgid ""
+"#2105, Added ST_Transform(raster) variant for aligning output to reference "
+"raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:306
+#, no-c-format
+msgid ""
+"#2119, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(), and "
+"ST_SnapToGrid() no longer require an SRID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:308 release_notes.xml:478
+#, no-c-format
+msgid ""
+"#2141, More verbose output when constraints fail to be added to a raster "
+"column"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:310
+#, no-c-format
+msgid "#2143, Changed blocksize constraint of raster to allow multiple values"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:311
+#, no-c-format
+msgid "#2148, Addition of coverage_tile constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:312
+#, no-c-format
+msgid "#2149, Addition of spatially_unique constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:313
+#, no-c-format
+msgid ""
+"TopologySummary output now includes unregistered layers and a count of "
+"missing TopoGeometry objects from their natural layer."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:315
+#, no-c-format
+msgid ""
+"ST_HillShade(), ST_Aspect() and ST_Slope() have one new optional parameter "
+"to interpolate NODATA pixels before running the operation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:318
+#, no-c-format
+msgid ""
+"Point variant of ST_SetValue(raster) is now a wrapper around geomval variant "
+"of ST_SetValues(rast)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:320
+#, no-c-format
+msgid "Proper support for raster band's isnodata flag in core API and loader."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:321
+#, no-c-format
+msgid "Additional default values for parameters of ST_Aspect and ST_HillShade"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:322
+#, no-c-format
+msgid ""
+"#2178, ST_Summary now advertises presence of known srid with an [S] flag"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:323
+#, no-c-format
+msgid "#2202, Make libjson-c optional (--without-json configure switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:324
+#, no-c-format
+msgid "#2213, Add support libjson-c 0.10+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:325
+#, no-c-format
+msgid "#2231, raster2pgsql supports user naming of filename column with -n"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:326
+#, no-c-format
+msgid "#2200, ST_Union(raster, uniontype) unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:327
+#, no-c-format
+msgid ""
+"#2264, postgis_restore.pl support for restoring into databases with postgis "
+"in a custom schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:329
+#, no-c-format
+msgid ""
+"#2244, emit warning when changing raster's georeference if raster has out-db "
+"bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:331
+#, no-c-format
+msgid ""
+"#2222, add parameter OutAsIn to flag whether ST_AsBinary should return out-"
+"db bands as in-db bands"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:335
+#, no-c-format
+msgid "Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:336 release_notes.xml:580
+#, no-c-format
+msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:337 release_notes.xml:581
+#, no-c-format
+msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:338
+#, no-c-format
+msgid "#1870, align the docs and actual behavior of raster's ST_Intersects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:339 release_notes.xml:587
+#, no-c-format
+msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:340 release_notes.xml:590
+#, no-c-format
+msgid ""
+"#1875, ST_SummaryStats returns NULL for all parameters except count when "
+"count is zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:342
+#, no-c-format
+msgid "#1932, fix raster2pgsql of syntax for index tablespaces"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:343 release_notes.xml:498
+#, no-c-format
+msgid "#1936, ST_GeomFromGML on CurvePolygon causes server crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:344
+#, no-c-format
+msgid ""
+"#1939, remove custom data types: summarystats, histogram, quantile, "
+"valuecount"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:346
+#, no-c-format
+msgid "#1951, remove crash on zero-length linestrings"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:347 release_notes.xml:500
+#, no-c-format
+msgid "#1957, ST_Distance to a one-point LineString returns NULL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:348 release_notes.xml:501
+#, no-c-format
+msgid "#1976, Geography point-in-ring code overhauled for more reliability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:349
+#, no-c-format
+msgid "#1981, cleanup of unused variables causing warnings with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:350 release_notes.xml:508
+#, no-c-format
+msgid "#1996, support POINT EMPTY in GeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:351
+#, no-c-format
+msgid "#2062, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:352 release_notes.xml:519
+#, no-c-format
+msgid "#2057, Fixed linking issue for raster2psql to libpq"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:353
+#, no-c-format
+msgid "#2077, Fixed incorrect values returning from ST_Hillshade()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:354 release_notes.xml:512
+#, no-c-format
+msgid "#2019, ST_FlipCoordinates does not update bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:355
+#, no-c-format
+msgid "#2100, ST_AsRaster may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:356 release_notes.xml:464
+#, no-c-format
+msgid "#2126, Better handling of empty rasters from ST_ConvexHull()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:357 release_notes.xml:425
+#, no-c-format
+msgid "#2165, ST_NumPoints regression failure with CircularString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:358 release_notes.xml:426
+#, no-c-format
+msgid "#2168, ST_Distance is not always commutative"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:359
+#, no-c-format
+msgid "#2182, Fix issue with outdb rasters with no SRID and ST_Resize"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:360 release_notes.xml:472
+#, no-c-format
+msgid ""
+"#2188, Fix function parameter value overflow that caused problems when "
+"copying data from a GDAL dataset"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:362
+#, no-c-format
+msgid ""
+"#2198, Fix incorrect dimensions used when generating bands of out-db rasters "
+"in ST_Tile()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:364 release_notes.xml:428
+#, no-c-format
+msgid "#2201, ST_GeoHash wrong on boundaries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:365
+#, no-c-format
+msgid ""
+"#2203, Changed how rasters with unknown SRID and default geotransform are "
+"handled when passing to GDAL Warp API"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:367
+#, no-c-format
+msgid ""
+"#2215, Fixed raster exclusion constraint for conflicting name of implicit "
+"index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:369
+#, no-c-format
+msgid ""
+"#2251, Fix bad dimensions when rescaling rasters with default geotransform "
+"matrix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:371
+#, no-c-format
+msgid ""
+"#2133, Fix performance regression in expression variant of ST_MapAlgebra"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:372 release_notes.xml:429
+#, no-c-format
+msgid ""
+"#2257, GBOX variables not initialized when testing with empty geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:373 release_notes.xml:430
+#, no-c-format
+msgid "#2271, Prevent parallel make of raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:374
+#, no-c-format
+msgid "#2282, Fix call to undefined function nd_stats_to_grid() in debug mode"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:375 release_notes.xml:433
+#, no-c-format
+msgid "#2307, ST_MakeValid outputs invalid geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:376
+#, no-c-format
+msgid "#2309, Remove confusing INFO message when trying to get SRS info"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:377
+#, no-c-format
+msgid "#2336, FIPS 20 (KS) causes wildcard expansion to wget all files"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:378
+#, no-c-format
+msgid "#2348, Provide raster upgrade path for 2.0 to 2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:379 release_notes.xml:434
+#, no-c-format
+msgid "#2351, st_distance between geographies wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:380
+#, no-c-format
+msgid "#2359, Fix handling of schema name when adding overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:381 release_notes.xml:436
+#, no-c-format
+msgid "#2371, Support GEOS versions with more than 1 digit in micro"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:382
+#, no-c-format
+msgid "#2383, Remove unsafe use of \\' from raster warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:383
+#, no-c-format
+msgid "#2384, Incorrect variable datatypes for ST_Neighborhood"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:385 release_notes.xml:453
+#, no-c-format
+msgid "Known Issues"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:386 release_notes.xml:454
+#, no-c-format
+msgid ""
+"#2111, Raster bands can only reference the first 256 bands of out-db rasters"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:391
+#, no-c-format
+msgid "Release 2.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:393
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.4 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:396
+#, no-c-format
+msgid "#2494, avoid memcpy in GIST index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:399
+#, no-c-format
+msgid "#2528, Fix memory leak in ST_Split / lwline_split_by_line"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:400
+#, no-c-format
+msgid "#2532, Add missing raster/geometry commutator operators"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:401
+#, no-c-format
+msgid "#2533, Remove duplicated signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:405
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:407
+#, no-c-format
+msgid "#2619, Empty ring array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:412
+#, no-c-format
+msgid ""
+"##2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:417
+#, no-c-format
+msgid "Release 2.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:418
+#, no-c-format
+msgid "Release date: 2013/09/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:419
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.3 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:422
+#, no-c-format
+msgid "#2110, Equality operator between EMPTY and point on origin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:423
+#, no-c-format
+msgid "Allow adding points at precision distance with TopoGeo_addPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:424
+#, no-c-format
+msgid "#1968, Fix missing edge from toTopoGeom return"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:427
+#, no-c-format
+msgid "#2186, gui progress bar updates too frequent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:431
+#, no-c-format
+msgid "#2267, Server crash from analyze table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:432
+#, no-c-format
+msgid "#2277, potential segfault removed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:435
+#, no-c-format
+msgid "#2359, Incorrect handling of schema for overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:437
+#, no-c-format
+msgid "#2372, Cannot parse space-padded KML coordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:438
+#, no-c-format
+msgid "Fix build with systemwide liblwgeom installed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:439
+#, no-c-format
+msgid "#2383, Fix unsafe use of \\' in warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:440
+#, no-c-format
+msgid "#2410, Fix segmentize of collinear curve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:441
+#, no-c-format
+msgid "#2412, ST_LineToCurve support for lines with less than 4 vertices"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:442
+#, no-c-format
+msgid "#2415, ST_Multi support for COMPOUNDCURVE and CURVEPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:443
+#, no-c-format
+msgid "#2420, ST_LineToCurve: require at least 8 edges to define a full circle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:444
+#, no-c-format
+msgid "#2423, ST_LineToCurve: require all arc edges to form the same angle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:445
+#, no-c-format
+msgid "#2424, ST_CurveToLine: add support for COMPOUNDCURVE in MULTICURVE"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:446
+#, no-c-format
+msgid "#2427, Make sure to retain first point of curves on ST_CurveToLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:450
+#, no-c-format
+msgid "#2269, Avoid uselessly detoasting full geometries on ANALYZE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:459
+#, no-c-format
+msgid "Release 2.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:460
+#, no-c-format
+msgid "Release date: 2013/03/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:461
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.2 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:465
+#, no-c-format
+msgid "#2134, Make sure to process SRS before passing it off to GDAL functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:466
+#, no-c-format
+msgid "Fix various memory leaks in liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:467
+#, no-c-format
+msgid ""
+"#2173, Fix robustness issue in splitting a line with own vertex also "
+"affecting topology building (#2172)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:468
+#, no-c-format
+msgid "#2174, Fix usage of wrong function lwpoly_free()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:469
+#, no-c-format
+msgid "#2176, Fix robustness issue with ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:470
+#, no-c-format
+msgid "#2184, Properly copy topologies with Z value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:471
+#, no-c-format
+msgid "postgis_restore.pl support for mixed case geometry column name in dumps"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:473
+#, no-c-format
+msgid "#2216, More memory errors in MultiPolygon GeoJSON parsing (with holes)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:474
+#, no-c-format
+msgid "Fix Memory leak in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:479
+#, no-c-format
+msgid "Speedup ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:483
+#, no-c-format
+msgid "Release 2.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:484
+#, no-c-format
+msgid "Release date: 2012/12/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:485
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:488
+#, no-c-format
+msgid ""
+"#1287, Drop of \"gist_geometry_ops\" broke a few clients package of "
+"legacy_gist.sql for these cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:490
+#, no-c-format
+msgid "#1391, Errors during upgrade from 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:491
+#, no-c-format
+msgid "#1828, Poor selectivity estimate on ST_DWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:492
+#, no-c-format
+msgid "#1838, error importing tiger/line data"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:493
+#, no-c-format
+msgid ""
+"#1869, ST_AsBinary is not unique added to legacy_minor/legacy.sql scripts"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:494
+#, no-c-format
+msgid "#1885, Missing field from tabblock table in tiger2010 census_loader.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:495
+#, no-c-format
+msgid "#1891, Use LDFLAGS environment when building liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:496
+#, no-c-format
+msgid "#1900, Fix pgsql2shp for big-endian systems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:497
+#, no-c-format
+msgid "#1932, Fix raster2pgsql for invalid syntax for setting index tablespace"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:499
+#, no-c-format
+msgid "#1955, ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:502
+#, no-c-format
+msgid "#1978, wrong answer calculating length of closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:503
+#, no-c-format
+msgid "#1981, Remove unused but set variables as found with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:504
+#, no-c-format
+msgid "#1987, Restore 1.5.x behaviour of ST_Simplify"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:507
+#, no-c-format
+msgid "#1991, geocode really slow on PostgreSQL 9.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:509
+#, no-c-format
+msgid "#1998, Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:510
+#, no-c-format
+msgid ""
+"#2001, ST_CurveToLine has no effect if the geometry doesn't actually contain "
+"an arc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:511
+#, no-c-format
+msgid "#2015, ST_IsEmpty('POLYGON(EMPTY)') returns False"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:513
+#, no-c-format
+msgid "#2025, Fix side location conflict at TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:514
+#, no-c-format
+msgid "#2026, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:515
+#, no-c-format
+msgid "#2033, Fix adding a splitting point into a 2.5d topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:516
+#, no-c-format
+msgid "#2051, Fix excess of precision in ST_AsGeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:517
+#, no-c-format
+msgid "#2052, Fix buffer overflow in lwgeom_to_geojson"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:518
+#, no-c-format
+msgid "#2056, Fixed lack of SRID check of raster and geometry in ST_SetValue()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:520
+#, no-c-format
+msgid "#2060, Fix \"dimension\" check violation by GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:521
+#, no-c-format
+msgid ""
+"#2072, Removed outdated checks preventing ST_Intersects(raster) from working "
+"on out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:523
+#, no-c-format
+msgid "#2077, Fixed incorrect answers from ST_Hillshade(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:524
+#, no-c-format
+msgid ""
+"#2092, Namespace issue with ST_GeomFromKML,ST_GeomFromGML for libxml 2.8+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:525
+#, no-c-format
+msgid "#2099, Fix double free on exception in ST_OffsetCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:526
+#, no-c-format
+msgid "#2100, ST_AsRaster() may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:527
+#, no-c-format
+msgid "#2108, Ensure ST_Line_Interpolate_Point always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:528
+#, no-c-format
+msgid "#2109, Ensure ST_Centroid always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:529
+#, no-c-format
+msgid "#2117, Ensure ST_PointOnSurface always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:530
+#, no-c-format
+msgid "#2129, Fix SRID in ST_Homogenize output with collection input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:531
+#, no-c-format
+msgid "#2130, Fix memory error in MultiPolygon GeoJson parsing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:533
+#, no-c-format
+msgid "Update URL of Maven jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:537
+#, no-c-format
+msgid ""
+"#1581, ST_Clip(raster, ...) no longer imposes NODATA on a band if the "
+"corresponding band from the source raster did not have NODATA"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:539
+#, no-c-format
+msgid ""
+"#1928, Accept array properties in GML input multi-geom input (Kashif Rasul "
+"and Shoaib Burq / SpacialDB)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:541
+#, no-c-format
+msgid "#2082, Add indices on start_node and end_node of topology edge tables"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:542
+#, no-c-format
+msgid "#2087, Speedup topology.GetRingEdges using a recursive CTE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:546
+#, no-c-format
+msgid "Release 2.0.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:547
+#, no-c-format
+msgid "Release date: 2012/06/22"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:548
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.0 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:551
+#, no-c-format
+msgid "#1264, fix st_dwithin(geog, geog, 0)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:552
+#, no-c-format
+msgid "#1468 shp2pgsql-gui table column schema get shifted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:553
+#, no-c-format
+msgid "#1694, fix building with clang. (vince)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:554
+#, no-c-format
+msgid "#1708, improve restore of pre-PostGIS 2.0 backups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:555
+#, no-c-format
+msgid "#1714, more robust handling of high topology tolerance."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:556
+#, no-c-format
+msgid "#1755, ST_GeographyFromText support for higher dimensions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:557
+#, no-c-format
+msgid "#1759, loading transformed shapefiles in raster enabled db."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:558
+#, no-c-format
+msgid ""
+"#1761, handling of subdatasets in NetCDF, HDF4 and HDF5 in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:559
+#, no-c-format
+msgid "#1763, topology.toTopoGeom use with custom search_path."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:560
+#, no-c-format
+msgid "#1766, don't let ST_RemEdge* destroy peripheral TopoGeometry objects."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:561
+#, no-c-format
+msgid "#1774, Clearer error on setting an edge geometry to an invalid one."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:562
+#, no-c-format
+msgid "#1775, ST_ChangeEdgeGeom collision detection with 2-vertex target."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:563
+#, no-c-format
+msgid "#1776, fix ST_SymDifference(empty, geom) to return geom."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:564
+#, no-c-format
+msgid "#1779, install SQL comment files."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:565
+#, no-c-format
+msgid "#1782, fix spatial reference string handling in raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:566
+#, no-c-format
+msgid "#1789, fix false edge-node crossing report in ValidateTopology."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:567
+#, no-c-format
+msgid "#1790, fix toTopoGeom handling of duplicated primitives."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:568
+#, no-c-format
+msgid "#1791, fix ST_Azimuth with very close but distinct points."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:569
+#, no-c-format
+msgid "#1797, fix (ValidateTopology(xxx)).* syntax calls."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:570
+#, no-c-format
+msgid "#1805, put back the 900913 SRID entry."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:571
+#, no-c-format
+msgid "#1813, Only show readable relations in metadata tables."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:572
+#, no-c-format
+msgid ""
+"#1819, fix floating point issues with ST_World2RasterCoord and "
+"ST_Raster2WorldCoord variants."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:574
+#, no-c-format
+msgid "#1820 compilation on 9.2beta1."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:575
+#, no-c-format
+msgid "#1822, topology load on PostgreSQL 9.2beta1."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:576
+#, no-c-format
+msgid "#1825, fix prepared geometry cache lookup"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:577
+#, no-c-format
+msgid "#1829, fix uninitialized read in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:578
+#, no-c-format
+msgid ""
+"#1834, revise postgis extension to only backup user specified spatial_ref_sys"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:582
+#, no-c-format
+msgid "#1851, fix spatial_ref_system parameters for EPSG:3844"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:583
+#, no-c-format
+msgid "#1857, fix failure to detect endpoint mismatch in ST_AddEdge*Face*"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:584
+#, no-c-format
+msgid ""
+"#1865, data loss in postgis_restore.pl when data rows have leading dashes."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:586
+#, no-c-format
+msgid "#1867, catch invalid topology name passed to topogeo_add*"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:588
+#, no-c-format
+msgid ""
+"#1873, fix ptarray_locate_point to return interpolated Z/M values for on-the-"
+"line case"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:592
+#, no-c-format
+msgid "#1881, shp2pgsql-gui -- editing a field sometimes triggers removing row"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:594
+#, no-c-format
+msgid ""
+"#1883, Geocoder install fails trying to run create_census_base_tables() "
+"(Brian Panulla)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:599
+#, no-c-format
+msgid "More detailed exception message from topology editing functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:600
+#, no-c-format
+msgid "#1786, improved build dependencies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:601
+#, no-c-format
+msgid "#1806, speedup of ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:602
+#, no-c-format
+msgid "#1812, Add lwgeom_normalize in LIBLWGEOM for more stable testing."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:606
+#, no-c-format
+msgid "Release 2.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:607
+#, no-c-format
+msgid "Release date: 2012/04/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:608
+#, no-c-format
+msgid ""
+"This is a major release. A hard upgrade is required. Yes this means a full "
+"dump reload and some special preparations if you are using obsolete "
+"functions. Refer to <xref linkend=\"hard_upgrade\"/> for details on "
+"upgrading. Refer to <xref linkend=\"NewFunctions_2_0\"/> for more details "
+"and changed/new functions."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:612
+#, no-c-format
+msgid "Testers - Our unsung heroes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:613
+#, no-c-format
+msgid ""
+"We are most indebted to the numerous members in the PostGIS community who "
+"were brave enough to test out the new features in this release. No major "
+"release can be successful without these folk."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:616
+#, no-c-format
+msgid ""
+"Below are those who have been most valiant, provided very detailed and "
+"thorough bug reports, and detailed analysis."
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:620
+#, no-c-format
+msgid "Andrea Peri - Lots of testing on topology, checking for correctness"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:621
+#, no-c-format
+msgid "Andreas Forø Tollefsen - raster testing"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:622
+#, no-c-format
+msgid "Chris English - topology stress testing loader functions"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:623
+#, no-c-format
+msgid "Salvatore Larosa - topology robustness testing"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:624
+#, no-c-format
+msgid ""
+"Brian Hamlin - Benchmarking (also experimental experimental branches before "
+"they are folded into core) , general testing of various pieces including "
+"Tiger and Topology. Testing on various server VMs"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:629
+#, no-c-format
+msgid "Mike Pease - Tiger geocoder testing - very detailed reports of issues"
+msgstr ""
+
+#. Tag: member
+#: release_notes.xml:630
+#, no-c-format
+msgid "Tom van Tilburg - raster testing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:635
+#, no-c-format
+msgid ""
+"#722, #302, Most deprecated functions removed (over 250 functions) (Regina "
+"Obe, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:636
+#, no-c-format
+msgid "Unknown SRID changed from -1 to 0. (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:637
+#, no-c-format
+msgid ""
+"-- (most deprecated in 1.2) removed non-ST variants buffer, length, "
+"intersects (and internal functions renamed) etc."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:639
+#, no-c-format
+msgid ""
+"-- If you have been using deprecated functions CHANGE your apps or suffer "
+"the consequences. If you don't see a function documented -- it ain't "
+"supported or it is an internal function. Some constraints in older tables "
+"were built with deprecated functions. If you restore you may need to rebuild "
+"table constraints with populate_geometry_columns(). If you have applications "
+"or tools that rely on deprecated functions, please refer to <xref linkend="
+"\"legacy_faq\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:644
+#, no-c-format
+msgid ""
+"#944 geometry_columns is now a view instead of a table (Paul Ramsey, Regina "
+"Obe) for tables created the old way reads (srid, type, dims) constraints for "
+"geometry columns created with type modifiers reads rom column definition"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:649
+#, no-c-format
+msgid ""
+"#1081, #1082, #1084, #1088 - Mangement functions support typmod geometry "
+"column creation functions now default to typmod creation (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:652
+#, no-c-format
+msgid ""
+"#1083 probe_geometry_columns(), rename_geometry_table_constraints(), "
+"fix_geometry_columns(); removed - now obsolete with geometry_column view "
+"(Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:656
+#, no-c-format
+msgid "#817 Renaming old 3D functions to the convention ST_3D (Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:657
+#, no-c-format
+msgid ""
+"#548 (sorta), ST_NumGeometries,ST_GeometryN now returns 1 (or the geometry) "
+"instead of null for single geometries (Sandro Santilli, Maxime van Noppen)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:662
+#, no-c-format
+msgid ""
+"KNN Gist index based centroid (<->) and box (<#>) distance "
+"operators (Paul Ramsey / funded by Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:663
+#, no-c-format
+msgid ""
+"Support for TIN and PolyHedralSurface and enhancement of many functions to "
+"support 3D (Olivier Courtin / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:664
+#, no-c-format
+msgid ""
+"<ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/PlanningAndFunding"
+"\">Raster support integrated and documented</ulink> (Pierre Racine, Jorge "
+"Arévalo, Mateusz Loskot, Sandro Santilli, David Zwarg, Regina Obe, Bborie "
+"Park) (Company developer and funding: University Laval, Deimos Space, "
+"CadCorp, Michigan Tech Research Institute, Azavea, Paragon Corporation, UC "
+"Davis Center for Vectorborne Diseases)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:667
+#, no-c-format
+msgid ""
+"Making spatial indexes 3D aware - in progress (Paul Ramsey, Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:668
+#, no-c-format
+msgid ""
+"Topology support improved (more functions), documented, testing (Sandro "
+"Santilli / Faunalia for RT-SIGTA), Andrea Peri, Regina Obe, Jose Carlos "
+"Martinez Llari"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:669
+#, no-c-format
+msgid "3D relationship and measurement support functions (Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:670
+#, no-c-format
+msgid ""
+"ST_3DDistance, ST_3DClosestPoint, ST_3DIntersects, ST_3DShortestLine and "
+"more..."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:671
+#, no-c-format
+msgid "N-Dimensional spatial indexes (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:672
+#, no-c-format
+msgid "ST_Split (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:673
+#, no-c-format
+msgid "ST_IsValidDetail (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:674
+#, no-c-format
+msgid "ST_MakeValid (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:675
+#, no-c-format
+msgid "ST_RemoveRepeatedPoints (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:676
+#, no-c-format
+msgid ""
+"ST_GeometryN and ST_NumGeometries support for non-collections (Sandro "
+"Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:677
+#, no-c-format
+msgid "ST_IsCollection (Sandro Santilli, Maxime van Noppen)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:678
+#, no-c-format
+msgid "ST_SharedPaths (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:679
+#, no-c-format
+msgid "ST_Snap (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:680
+#, no-c-format
+msgid "ST_RelateMatch (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:681
+#, no-c-format
+msgid "ST_ConcaveHull (Regina Obe and Leo Hsu / Paragon Corporation)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:682
+#, no-c-format
+msgid "ST_UnaryUnion (Sandro Santilli / Faunalia for RT-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:683
+#, no-c-format
+msgid "ST_AsX3D (Regina Obe / Arrival 3D funding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:684
+#, no-c-format
+msgid "ST_OffsetCurve (Sandro Santilli, Rafal Magda)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:685
+#, no-c-format
+msgid "ST_GeomFromGeoJSON (Kashif Rasul, Paul Ramsey / Vizzuality funding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:689
+#, no-c-format
+msgid ""
+"Made shape file loader tolerant of truncated multibyte values found in some "
+"free worldwide shapefiles (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:690
+#, no-c-format
+msgid ""
+"Lots of bug fixes and enhancements to shp2pgsql Beefing up regression tests "
+"for loaders Reproject support for both geometry and geography during import "
+"(Jeff Adams / Azavea, Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:694
+#, no-c-format
+msgid ""
+"pgsql2shp conversion from predefined list (Loic Dachary / Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:696
+#, no-c-format
+msgid ""
+"Shp-pgsql GUI loader - support loading multiple files at a time. (Mark "
+"Leslie)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:697
+#, no-c-format
+msgid ""
+"Extras - upgraded tiger_geocoder from using old TIGER format to use new "
+"TIGER shp and file structure format (Stephen Frost)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:698
+#, no-c-format
+msgid ""
+"Extras - revised tiger_geocoder to work with TIGER census 2010 data, "
+"addition of reverse geocoder function, various bug fixes, accuracy "
+"enhancements, limit max result return, speed improvements, loading routines. "
+"(Regina Obe, Leo Hsu / Paragon Corporation / funding provided by Hunter "
+"Systems Group)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:701
+#, no-c-format
+msgid "Overall Documentation proofreading and corrections. (Kasif Rasul)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:702
+#, no-c-format
+msgid ""
+"Cleanup PostGIS JDBC classes, revise to use Maven build. (Maria Arias de "
+"Reyna, Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:706
+#, no-c-format
+msgid "#1335 ST_AddPoint returns incorrect result on Linux (Even Rouault)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:709
+#, no-c-format
+msgid "Release specific credits"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:710
+#, no-c-format
+msgid ""
+"We thank <ulink url=\"http://blog.opengeo.org/2012/02/01/it-goes-up-to-2-0/"
+"\">U.S Department of State Human Information Unit (HIU)</ulink> and <ulink "
+"url=\"http://blog.cartodb.com/post/17318840209/postgis-core-committer-sandro-"
+"santilli-joins-cartodb\">Vizzuality</ulink> for general monetary support to "
+"get PostGIS 2.0 out the door."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:715
+#, no-c-format
+msgid "Release 1.5.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:716
+#, no-c-format
+msgid "Release date: 2012/05/07"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:717
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.3 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:720
+#, no-c-format
+msgid "#547, ST_Contains memory problems (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:721
+#, no-c-format
+msgid "#621, Problem finding intersections with geography (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:722
+#, no-c-format
+msgid "#627, PostGIS/PostgreSQL process die on invalid geometry (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:723
+#, no-c-format
+msgid "#810, Increase accuracy of area calculation (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:724
+#, no-c-format
+msgid ""
+"#852, improve spatial predicates robustness (Sandro Santilli, Nicklas Avén)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:725
+#, no-c-format
+msgid ""
+"#877, ST_Estimated_Extent returns NULL on empty tables (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:726
+#, no-c-format
+msgid "#1028, ST_AsSVG kills whole postgres server when fails (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:727
+#, no-c-format
+msgid "#1056, Fix boxes of arcs and circle stroking code (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:728
+#, no-c-format
+msgid ""
+"#1121, populate_geometry_columns using deprecated functions (Regin Obe, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:729
+#, no-c-format
+msgid "#1135, improve testsuite predictability (Andreas 'ads' Scherbaum)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:730
+#, no-c-format
+msgid "#1146, images generator crashes (bronaugh)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:731
+#, no-c-format
+msgid "#1170, North Pole intersection fails (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:732
+#, no-c-format
+msgid "#1179, ST_AsText crash with bad value (kjurka)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:733
+#, no-c-format
+msgid "#1184, honour DESTDIR in documentation Makefile (Bryce L Nordgren)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:734
+#, no-c-format
+msgid "#1227, server crash on invalid GML"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:735
+#, no-c-format
+msgid "#1252, SRID appearing in WKT (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:736
+#, no-c-format
+msgid "#1264, st_dwithin(g, g, 0) doesn't work (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:737
+#, no-c-format
+msgid "#1344, allow exporting tables with invalid geometries (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:738
+#, no-c-format
+msgid "#1389, wrong proj4text for SRID 31300 and 31370 (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:739
+#, no-c-format
+msgid "#1406, shp2pgsql crashes when loading into geography (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:740
+#, no-c-format
+msgid "#1595, fixed SRID redundancy in ST_Line_SubString (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:741
+#, no-c-format
+msgid "#1596, check SRID in UpdateGeometrySRID (Mike Toews, Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:742
+#, no-c-format
+msgid "#1602, fix ST_Polygonize to retain Z (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:743
+#, no-c-format
+msgid "#1697, fix crash with EMPTY entries in GiST index (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:744
+#, no-c-format
+msgid "#1772, fix ST_Line_Locate_Point with collapsed input (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:745
+#, no-c-format
+msgid "#1799, Protect ST_Segmentize from max_length=0 (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:746
+#, no-c-format
+msgid "Alter parameter order in 900913 (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:747
+#, no-c-format
+msgid "Support builds with \"gmake\" (Greg Troxel)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:752
+#, no-c-format
+msgid "Release 1.5.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:753
+#, no-c-format
+msgid "Release date: 2011/06/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:754
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.2 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:758
+#, no-c-format
+msgid ""
+"#1056, produce correct bboxes for arc geometries, fixes index errors (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:760
+#, no-c-format
+msgid ""
+"#1007, ST_IsValid crash fix requires GEOS 3.3.0+ or 3.2.3+ (Sandro Santilli, "
+"reported by Birgit Laggner)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:762
+#, no-c-format
+msgid ""
+"#940, support for PostgreSQL 9.1 beta 1 (Regina Obe, Paul Ramsey, patch "
+"submitted by stl)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:764
+#, no-c-format
+msgid ""
+"#845, ST_Intersects precision error (Sandro Santilli, Nicklas Avén) Reported "
+"by cdestigter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:766
+#, no-c-format
+msgid "#884, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:767
+#, no-c-format
+msgid "#779, shp2pgsql -S option seems to fail on points (Jeff Adams)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:768
+#, no-c-format
+msgid "#666, ST_DumpPoints is not null safe (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:769
+#, no-c-format
+msgid "#631, Update NZ projections for grid transformation support (jpalmer)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:770
+#, no-c-format
+msgid ""
+"#630, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson) "
+"Reported by David Bitner"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:772
+#, no-c-format
+msgid "#624, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:773
+#, no-c-format
+msgid ""
+"#609, Bad source code in manual section 5.2 Java Clients (simoc, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:774
+#, no-c-format
+msgid "#604, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:775
+#, no-c-format
+msgid ""
+"#573 ST_Union fails on a group of linestrings Not a PostGIS bug, fixed in "
+"GEOS 3.3.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:777
+#, no-c-format
+msgid ""
+"#457 ST_CollectionExtract returns non-requested type (Nicklas Avén, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:779
+#, no-c-format
+msgid "#441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:780
+#, no-c-format
+msgid ""
+"#411 Ability to backup invalid geometries (Sando Santilli) Reported by "
+"Regione Toscana"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:782
+#, no-c-format
+msgid "#409 ST_AsSVG - degraded (Olivier Courtin) Reported by Sdikiy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:784
+#, no-c-format
+msgid ""
+"#373 Documentation syntax error in hard upgrade (Paul Ramsey) Reported by "
+"psvensso"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:790
+#, no-c-format
+msgid "Release 1.5.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:791
+#, no-c-format
+msgid "Release date: 2010/09/27"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:792
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.5.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:796
+#, no-c-format
+msgid ""
+"Loader: fix handling of empty (0-verticed) geometries in shapefiles. (Sandro "
+"Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:797
+#, no-c-format
+msgid ""
+"#536, Geography ST_Intersects, ST_Covers, ST_CoveredBy and Geometry "
+"ST_Equals not using spatial index (Regina Obe, Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:798
+#, no-c-format
+msgid "#573, Improvement to ST_Contains geography (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:799
+#, no-c-format
+msgid ""
+"Loader: Add support for command-q shutdown in Mac GTK build (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:800
+#, no-c-format
+msgid ""
+"#393, Loader: Add temporary patch for large DBF files (Maxime Guillaud, Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:801
+#, no-c-format
+msgid "#507, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:802
+#, no-c-format
+msgid ""
+"spatial_ref_sys.sql Add datum conversion for projection SRID 3021 (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:803
+#, no-c-format
+msgid ""
+"Geography - remove crash for case when all geographies are out of the "
+"estimate (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:804
+#, no-c-format
+msgid "#469, Fix for array_aggregation error (Greg Stark, Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:805
+#, no-c-format
+msgid ""
+"#532, Temporary geography tables showing up in other user sessions (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:806
+#, no-c-format
+msgid "#562, ST_Dwithin errors for large geographies (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:807
+#, no-c-format
+msgid ""
+"#513, shape loading GUI tries to make spatial index when loading DBF only "
+"mode (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:808
+#, no-c-format
+msgid ""
+"#527, shape loading GUI should always append log messages (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:809
+#, no-c-format
+msgid "#504, shp2pgsql should rename xmin/xmax fields (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:810
+#, no-c-format
+msgid ""
+"#458, postgis_comments being installed in contrib instead of version folder "
+"(Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:811
+#, no-c-format
+msgid ""
+"#474, Analyzing a table with geography column crashes server (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:812
+#, no-c-format
+msgid "#581, LWGEOM-expand produces inconsistent results (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:813
+#, no-c-format
+msgid ""
+"#513, Add dbf filter to shp2pgsql-gui and allow uploading dbf only (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:814
+#, no-c-format
+msgid "Fix further build issues against PostgreSQL 9.0 (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:815
+#, no-c-format
+msgid "#572, Password whitespace for Shape File (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:816
+#, no-c-format
+msgid ""
+"#603, shp2pgsql: \"-w\" produces invalid WKT for MULTI* objects. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:821
+#, no-c-format
+msgid "Release 1.5.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:822
+#, no-c-format
+msgid "Release date: 2010/03/11"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:823
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"1.4.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient "
+"otherwise a hard upgrade is recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:827
+#, no-c-format
+msgid ""
+"#410, update embedded bbox when applying ST_SetPoint, ST_AddPoint "
+"ST_RemovePoint to a linestring (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:828
+#, no-c-format
+msgid ""
+"#411, allow dumping tables with invalid geometries (Sandro Santilli, for "
+"Regione Toscana-SIGTA)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:829
+#, no-c-format
+msgid ""
+"#414, include geography_columns view when running upgrade scripts (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:830
+#, no-c-format
+msgid ""
+"#419, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, "
+"for Lidwala Consulting Engineers)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:831
+#, no-c-format
+msgid "#421, fix computed string length in ST_AsGML() (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:832
+#, no-c-format
+msgid ""
+"#441, fix GML generation with heterogeneous collections (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:833
+#, no-c-format
+msgid ""
+"#443, incorrect coordinate reversal in GML 3 generation (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:834
+#, no-c-format
+msgid ""
+"#450, #451, wrong area calculation for geography features that cross the "
+"date line (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:835
+#, no-c-format
+msgid "Ensure support for upcoming 9.0 PgSQL release (Paul Ramsey)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:840
+#, no-c-format
+msgid "Release 1.5.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:841
+#, no-c-format
+msgid "Release date: 2010/02/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:842
+#, no-c-format
+msgid ""
+"This release provides support for geographic coordinates (lat/lon) via a new "
+"GEOGRAPHY type. Also performance enhancements, new input format support (GML,"
+"KML) and general upkeep."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:845 release_notes.xml:912
+#, no-c-format
+msgid "API Stability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:846
+#, no-c-format
+msgid ""
+"The public API of PostGIS will not change during minor (0.0.X) releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:847
+#, no-c-format
+msgid ""
+"The definition of the =~ operator has changed from an exact geometric "
+"equality check to a bounding box equality check."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:851 release_notes.xml:917
+#, no-c-format
+msgid "Compatibility"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:852
+#, no-c-format
+msgid "GEOS, Proj4, and LibXML2 are now mandatory dependencies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:853
+#, no-c-format
+msgid "The library versions below are the minimum requirements for PostGIS 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:854
+#, no-c-format
+msgid "PostgreSQL 8.3 and higher on all platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:855
+#, no-c-format
+msgid "GEOS 3.1 and higher only (GEOS 3.2+ to take advantage of all features)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:856
+#, no-c-format
+msgid "LibXML2 2.5+ related to new ST_GeomFromGML/KML functionality"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:857
+#, no-c-format
+msgid "Proj4 4.5 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:863
+#, no-c-format
+msgid "Added Hausdorff distance calculations (#209) (Vincent Picavet)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:864
+#, no-c-format
+msgid ""
+"Added parameters argument to ST_Buffer operation to support one-sided "
+"buffering and other buffering styles (Sandro Santilli)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:865
+#, no-c-format
+msgid ""
+"Addition of other Distance related visualization and analysis functions "
+"(Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:867
+#, no-c-format
+msgid "ST_ClosestPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:868
+#, no-c-format
+msgid "ST_DFullyWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:869
+#, no-c-format
+msgid "ST_LongestLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:870
+#, no-c-format
+msgid "ST_MaxDistance"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:871
+#, no-c-format
+msgid "ST_ShortestLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:873
+#, no-c-format
+msgid "ST_DumpPoints (Maxime van Noppen)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:874
+#, no-c-format
+msgid "KML, GML input via ST_GeomFromGML and ST_GeomFromKML (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:875
+#, no-c-format
+msgid "Extract homogeneous collection with ST_CollectionExtract (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:876
+#, no-c-format
+msgid ""
+"Add measure values to an existing linestring with ST_AddMeasure (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:877
+#, no-c-format
+msgid "History table implementation in utils (George Silva)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:878
+#, no-c-format
+msgid "Geography type and supporting functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:880
+#, no-c-format
+msgid "Spherical algorithms (Dave Skea)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:881
+#, no-c-format
+msgid "Object/index implementation (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:882
+#, no-c-format
+msgid "Selectivity implementation (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:883
+#, no-c-format
+msgid "Serializations to KML, GML and JSON (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:884
+#, no-c-format
+msgid ""
+"ST_Area, ST_Distance, ST_DWithin, ST_GeogFromText, ST_GeogFromWKB, "
+"ST_Intersects, ST_Covers, ST_Buffer (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:890
+#, no-c-format
+msgid "Performance improvements to ST_Distance (Nicklas Aven)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:891
+#, no-c-format
+msgid "Documentation updates and improvements (Regina Obe, Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:892
+#, no-c-format
+msgid "Testing and quality control (Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:893
+#, no-c-format
+msgid "PostGIS 1.5 support PostgreSQL 8.5 trunk (Guillaume Lelarge)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:894
+#, no-c-format
+msgid "Win32 support and improvement of core shp2pgsql-gui (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:895
+#, no-c-format
+msgid "In place 'make check' support (Paul Ramsey)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:899 release_notes.xml:965 release_notes.xml:1150
+#: release_notes.xml:1201 release_notes.xml:1252 release_notes.xml:1386
+#: release_notes.xml:1452 release_notes.xml:1562 release_notes.xml:1669
+#: release_notes.xml:1789 release_notes.xml:1854 release_notes.xml:1901
+#, no-c-format
+msgid "Bug fixes"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:900
+#, no-c-format
+msgid ""
+"http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
+"+1.5.0&order=priority"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:905
+#, no-c-format
+msgid "Release 1.4.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:906
+#, no-c-format
+msgid "Release date: 2009/07/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:907
+#, no-c-format
+msgid ""
+"This release provides performance enhancements, improved internal structures "
+"and testing, new features, and upgraded documentation. If you are running "
+"PostGIS 1.1+, a soft upgrade is sufficient otherwise a hard upgrade is "
+"recommended."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:913
+#, no-c-format
+msgid ""
+"As of the 1.4 release series, the public API of PostGIS will not change "
+"during minor releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:918
+#, no-c-format
+msgid "The versions below are the *minimum* requirements for PostGIS 1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:919
+#, no-c-format
+msgid "PostgreSQL 8.2 and higher on all platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:920
+#, no-c-format
+msgid "GEOS 3.0 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:921
+#, no-c-format
+msgid "PROJ4 4.5 and higher only"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:926
+#, no-c-format
+msgid ""
+"ST_Union() uses high-speed cascaded union when compiled against GEOS 3.1+ "
+"(Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:928
+#, no-c-format
+msgid "ST_ContainsProperly() requires GEOS 3.1+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:929
+#, no-c-format
+msgid ""
+"ST_Intersects(), ST_Contains(), ST_Within() use high-speed cached prepared "
+"geometry against GEOS 3.1+ (Paul Ramsey / funded by Zonar Systems)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:930
+#, no-c-format
+msgid ""
+"Vastly improved documentation and reference manual (Regina Obe & Kevin "
+"Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:931
+#, no-c-format
+msgid "Figures and diagram examples in the reference manual (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:932
+#, no-c-format
+msgid ""
+"ST_IsValidReason() returns readable explanations for validity failures (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:933
+#, no-c-format
+msgid ""
+"ST_GeoHash() returns a geohash.org signature for geometries (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:934
+#, no-c-format
+msgid "GTK+ multi-platform GUI for shape file loading (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:935
+#, no-c-format
+msgid "ST_LineCrossingDirection() returns crossing directions (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:936
+#, no-c-format
+msgid ""
+"ST_LocateBetweenElevations() returns sub-string based on Z-ordinate. (Paul "
+"Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:937
+#, no-c-format
+msgid ""
+"Geometry parser returns explicit error message about location of syntax "
+"errors (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:938
+#, no-c-format
+msgid "ST_AsGeoJSON() return JSON formatted geometry (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:939
+#, no-c-format
+msgid ""
+"Populate_Geometry_Columns() -- automatically add records to geometry_columns "
+"for TABLES and VIEWS (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:940
+#, no-c-format
+msgid ""
+"ST_MinimumBoundingCircle() -- returns the smallest circle polygon that can "
+"encompass a geometry (Bruce Rindahl)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:945
+#, no-c-format
+msgid ""
+"Core geometry system moved into independent library, liblwgeom. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:946
+#, no-c-format
+msgid ""
+"New build system uses PostgreSQL \"pgxs\" build bootstrapper. (Mark Cave-"
+"Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:947
+#, no-c-format
+msgid "Debugging framework formalized and simplified. (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:948
+#, no-c-format
+msgid ""
+"All build-time #defines generated at configure time and placed in headers "
+"for easier cross-platform support (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:949
+#, no-c-format
+msgid "Logging framework formalized and simplified (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:950
+#, no-c-format
+msgid ""
+"Expanded and more stable support for CIRCULARSTRING, COMPOUNDCURVE and "
+"CURVEPOLYGON, better parsing, wider support in functions (Mark Leslie & "
+"Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:951
+#, no-c-format
+msgid "Improved support for OpenSolaris builds (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:952
+#, no-c-format
+msgid "Improved support for MSVC builds (Mateusz Loskot)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:953
+#, no-c-format
+msgid "Updated KML support (Olivier Courtin)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:954
+#, no-c-format
+msgid "Unit testing framework for liblwgeom (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:955
+#, no-c-format
+msgid ""
+"New testing framework to comprehensively exercise every PostGIS function "
+"(Regine Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:956
+#, no-c-format
+msgid ""
+"Performance improvements to all geometry aggregate functions (Paul Ramsey)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:957
+#, no-c-format
+msgid ""
+"Support for the upcoming PostgreSQL 8.4 (Mark Cave-Ayland, Talha Bin Rizwan)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:958
+#, no-c-format
+msgid ""
+"Shp2pgsql and pgsql2shp re-worked to depend on the common parsing/unparsing "
+"code in liblwgeom (Mark Cave-Ayland)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:959
+#, no-c-format
+msgid ""
+"Use of PDF DbLatex to build PDF docs and preliminary instructions for build "
+"(Jean David Techer)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:960
+#, no-c-format
+msgid ""
+"Automated User documentation build (PDF and HTML) and Developer Doxygen "
+"Documentation (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:961
+#, no-c-format
+msgid ""
+"Automated build of document images using ImageMagick from WKT geometry text "
+"files (Kevin Neufeld)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:962
+#, no-c-format
+msgid "More attractive CSS for HTML documentation (Dane Springmeyer)"
+msgstr ""
+
+#. Tag: ulink
+#: release_notes.xml:966
+#, no-c-format
+msgid ""
+"http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
+"+1.4.0&order=priority"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:971
+#, no-c-format
+msgid "Release 1.3.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:972
+#, no-c-format
+msgid "Release date: 2009/05/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:973
+#, no-c-format
+msgid ""
+"If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
+"hard upgrade is recommended. This release adds support for PostgreSQL 8.4, "
+"exporting prj files from the database with shape data, some crash fixes for "
+"shp2pgsql, and several small bug fixes in the handling of \"curve\" types, "
+"logical error importing dbf only files, improved error handling of "
+"AddGeometryColumns."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:980
+#, no-c-format
+msgid "Release 1.3.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:981
+#, no-c-format
+msgid "Release date: 2008/12/15"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:982
+#, no-c-format
+msgid ""
+"If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
+"hard upgrade is recommended. This release is a bug fix release to address a "
+"failure in ST_Force_Collection and related functions that critically affects "
+"using MapServer with LINE layers."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:989
+#, no-c-format
+msgid "Release 1.3.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:990
+#, no-c-format
+msgid "Release date: 2008/11/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:991
+#, no-c-format
+msgid ""
+"This release adds support for GeoJSON output, building with PostgreSQL 8.4, "
+"improves documentation quality and output aesthetics, adds function-level "
+"SQL documentation, and improves performance for some spatial predicates "
+"(point-in-polygon tests)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:996
+#, no-c-format
+msgid ""
+"Bug fixes include removal of crashers in handling circular strings for many "
+"functions, some memory leaks removed, a linear referencing failure for "
+"measures on vertices, and more. See the NEWS file for details."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1003
+#, no-c-format
+msgid "Release 1.3.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1005
+#, no-c-format
+msgid "Release date: 2008/04/12"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1007
+#, no-c-format
+msgid ""
+"This release fixes bugs shp2pgsql, adds enhancements to SVG and KML support, "
+"adds a ST_SimplifyPreserveTopology function, makes the build more sensitive "
+"to GEOS versions, and fixes a handful of severe but rare failure cases."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1014
+#, no-c-format
+msgid "Release 1.3.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1016
+#, no-c-format
+msgid "Release date: 2007/12/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1018
+#, no-c-format
+msgid ""
+"This release fixes bugs in ST_EndPoint() and ST_Envelope, improves support "
+"for JDBC building and OS/X, and adds better support for GML output with "
+"ST_AsGML(), including GML3 output."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1024
+#, no-c-format
+msgid "Release 1.3.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1026
+#, no-c-format
+msgid "Release date: 2007/08/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1028
+#, no-c-format
+msgid ""
+"This release fixes some oversights in the previous release around version "
+"numbering, documentation, and tagging."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1033
+#, no-c-format
+msgid "Release 1.3.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1035
+#, no-c-format
+msgid "Release date: 2007/08/09"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1037
+#, no-c-format
+msgid ""
+"This release provides performance enhancements to the relational functions, "
+"adds new relational functions and begins the migration of our function names "
+"to the SQL-MM convention, using the spatial type (SP) prefix."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1043
+#, no-c-format
+msgid "Added Functionality"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1045
+#, no-c-format
+msgid "JDBC: Added Hibernate Dialect (thanks to Norman Barker)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1047
+#, no-c-format
+msgid ""
+"Added ST_Covers and ST_CoveredBy relational functions. Description and "
+"justification of these functions can be found at <ulink url=\"http://lin-ear-"
+"th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html"
+"\">http://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-"
+"spatial.html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1051
+#, no-c-format
+msgid "Added ST_DWithin relational function."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1055
+#, no-c-format
+msgid "Performance Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1057
+#, no-c-format
+msgid ""
+"Added cached and indexed point-in-polygon short-circuits for the functions "
+"ST_Contains, ST_Intersects, ST_Within and ST_Disjoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1060
+#, no-c-format
+msgid ""
+"Added inline index support for relational functions (except ST_Disjoint)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1065
+#, no-c-format
+msgid "Other Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1067
+#, no-c-format
+msgid ""
+"Extended curved geometry support into the geometry accessor and some "
+"processing functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1070
+#, no-c-format
+msgid ""
+"Began migration of functions to the SQL-MM naming convention; using a "
+"spatial type (ST) prefix."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1073
+#, no-c-format
+msgid "Added initial support for PostgreSQL 8.3"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1078
+#, no-c-format
+msgid "Release 1.2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1080
+#, no-c-format
+msgid "Release date: 2007/01/11"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1082
+#, no-c-format
+msgid ""
+"This release provides bug fixes in PostgreSQL 8.2 support and some small "
+"performance enhancements."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1086 release_notes.xml:1114 release_notes.xml:2336
+#, no-c-format
+msgid "Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1088
+#, no-c-format
+msgid "Fixed point-in-polygon shortcut bug in Within()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1090
+#, no-c-format
+msgid "Fixed PostgreSQL 8.2 NULL handling for indexes."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1092
+#, no-c-format
+msgid "Updated RPM spec files."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1094
+#, no-c-format
+msgid "Added short-circuit for Transform() in no-op case."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1096
+#, no-c-format
+msgid ""
+"JDBC: Fixed JTS handling for multi-dimensional geometries (thanks to Thomas "
+"Marti for hint and partial patch). Additionally, now JavaDoc is compiled and "
+"packaged. Fixed classpath problems with GCJ. Fixed pgjdbc 8.2 compatibility, "
+"losing support for jdk 1.3 and older."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1105
+#, no-c-format
+msgid "Release 1.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1107
+#, no-c-format
+msgid "Release date: 2006/12/08"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1109
+#, no-c-format
+msgid ""
+"This release provides type definitions along with serialization/"
+"deserialization capabilities for SQL-MM defined curved geometries, as well "
+"as performance enhancements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1116
+#, no-c-format
+msgid "Added curved geometry type support for serialization/deserialization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1119
+#, no-c-format
+msgid ""
+"Added point-in-polygon shortcircuit to the Contains and Within functions to "
+"improve performance for these cases."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1125
+#, no-c-format
+msgid "Release 1.1.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1127
+#, no-c-format
+msgid "Release date: 2006/11/02"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1129
+#, no-c-format
+msgid ""
+"This is a bugfix release, in particular fixing a critical error with GEOS "
+"interface in 64bit systems. Includes an updated of the SRS parameters and an "
+"improvement in reprojections (take Z in consideration). Upgrade is "
+"<emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1135 release_notes.xml:1186 release_notes.xml:1237
+#: release_notes.xml:1292 release_notes.xml:1371 release_notes.xml:1437
+#: release_notes.xml:1510 release_notes.xml:1654 release_notes.xml:1711
+#: release_notes.xml:1774 release_notes.xml:1832 release_notes.xml:1890
+#: release_notes.xml:1930 release_notes.xml:1982 release_notes.xml:2034
+#: release_notes.xml:2073 release_notes.xml:2110 release_notes.xml:2177
+#: release_notes.xml:2274 release_notes.xml:2328
+#, no-c-format
+msgid "Upgrading"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1137 release_notes.xml:1188 release_notes.xml:1239
+#: release_notes.xml:1294 release_notes.xml:1373 release_notes.xml:1439
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later follow the <link linkend="
+"\"soft_upgrade\">soft upgrade</link> procedure."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1140 release_notes.xml:1191 release_notes.xml:1242
+#: release_notes.xml:1297 release_notes.xml:1376 release_notes.xml:1442
+#: release_notes.xml:1518 release_notes.xml:1659 release_notes.xml:1716
+#: release_notes.xml:1779
+#, no-c-format
+msgid ""
+"If you are upgrading from a release <emphasis>between 1.0.0RC6 and 1.0.2</"
+"emphasis> (inclusive) and really want a live upgrade read the <link linkend="
+"\"rel_1.0.3_upgrading\">upgrade section</link> of the 1.0.3 release notes "
+"chapter."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1145 release_notes.xml:1196 release_notes.xml:1247
+#: release_notes.xml:1302 release_notes.xml:1381 release_notes.xml:1447
+#: release_notes.xml:1523 release_notes.xml:1664 release_notes.xml:1721
+#: release_notes.xml:1784
+#, no-c-format
+msgid ""
+"Upgrade from any release prior to 1.0.0RC6 requires an <link linkend="
+"\"hard_upgrade\">hard upgrade</link>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1152
+#, no-c-format
+msgid "fixed CAPI change that broke 64-bit platforms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1154
+#, no-c-format
+msgid "loader/dumper: fixed regression tests and usage output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1156
+#, no-c-format
+msgid "Fixed setSRID() bug in JDBC, thanks to Thomas Marti"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1160 release_notes.xml:1344 release_notes.xml:1415
+#: release_notes.xml:1629 release_notes.xml:1755 release_notes.xml:2056
+#: release_notes.xml:2093 release_notes.xml:2145 release_notes.xml:2247
+#: release_notes.xml:2310
+#, no-c-format
+msgid "Other changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1162
+#, no-c-format
+msgid "use Z ordinate in reprojections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1164
+#, no-c-format
+msgid "spatial_ref_sys.sql updated to EPSG 6.11.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1166
+#, no-c-format
+msgid ""
+"Simplified Version.config infrastructure to use a single pack of version "
+"variables for everything."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1169
+#, no-c-format
+msgid "Include the Version.config in loader/dumper USAGE messages"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1172
+#, no-c-format
+msgid "Replace hand-made, fragile JDBC version parser with Properties"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1178
+#, no-c-format
+msgid "Release 1.1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1180
+#, no-c-format
+msgid "Release date: 2006/10/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1182
+#, no-c-format
+msgid ""
+"This is an bugfix release, including a critical segfault on win32. Upgrade "
+"is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1203
+#, no-c-format
+msgid ""
+"Fixed MingW link error that was causing pgsql2shp to segfault on Win32 when "
+"compiled for PostgreSQL 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1206
+#, no-c-format
+msgid "fixed nullpointer Exception in Geometry.equals() method in Java"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1209
+#, no-c-format
+msgid ""
+"Added EJB3Spatial.odt to fulfill the GPL requirement of distributing the "
+"\"preferred form of modification\""
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1212
+#, no-c-format
+msgid "Removed obsolete synchronization from JDBC Jts code."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1214
+#, no-c-format
+msgid ""
+"Updated heavily outdated README files for shp2pgsql/pgsql2shp by merging "
+"them with the manpages."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1217
+#, no-c-format
+msgid ""
+"Fixed version tag in jdbc code that still said \"1.1.3\" in the \"1.1.4\" "
+"release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1224
+#, no-c-format
+msgid "Added -S option for non-multi geometries to shp2pgsql"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1229
+#, no-c-format
+msgid "Release 1.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1231
+#, no-c-format
+msgid "Release date: 2006/09/27"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1233
+#, no-c-format
+msgid ""
+"This is an bugfix release including some improvements in the Java interface. "
+"Upgrade is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1254
+#, no-c-format
+msgid "Fixed support for PostgreSQL 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1256
+#, no-c-format
+msgid "Fixed bug in collect() function discarding SRID of input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1258
+#, no-c-format
+msgid "Added SRID match check in MakeBox2d and MakeBox3d"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1260
+#, no-c-format
+msgid "Fixed regress tests to pass with GEOS-3.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1262
+#, no-c-format
+msgid "Improved pgsql2shp run concurrency."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1266
+#, no-c-format
+msgid "Java changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1268
+#, no-c-format
+msgid ""
+"reworked JTS support to reflect new upstream JTS developers' attitude to "
+"SRID handling. Simplifies code and drops build depend on GNU trove."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1272
+#, no-c-format
+msgid ""
+"Added EJB2 support generously donated by the \"Geodetix s.r.l. Company\" "
+"<ulink url=\"http://www.geodetix.it/\">http://www.geodetix.it/</ulink>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1275
+#, no-c-format
+msgid ""
+"Added EJB3 tutorial / examples donated by Norman Barker <nbarker at ittvis."
+"com>"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1278
+#, no-c-format
+msgid "Reorganized java directory layout a little."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1283
+#, no-c-format
+msgid "Release 1.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1285
+#, no-c-format
+msgid "Release date: 2006/06/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1287
+#, no-c-format
+msgid ""
+"This is an bugfix release including also some new functionalities (most "
+"notably long transaction support) and portability enhancements. Upgrade is "
+"<emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1307
+#, no-c-format
+msgid "Bug fixes / correctness"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1309
+#, no-c-format
+msgid "BUGFIX in distance(poly,poly) giving wrong results."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1311
+#, no-c-format
+msgid "BUGFIX in pgsql2shp successful return code."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1313
+#, no-c-format
+msgid "BUGFIX in shp2pgsql handling of MultiLine WKT."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1315
+#, no-c-format
+msgid "BUGFIX in affine() failing to update bounding box."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1317
+#, no-c-format
+msgid ""
+"WKT parser: forbidden construction of multigeometries with EMPTY elements "
+"(still supported for GEOMETRYCOLLECTION)."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1322 release_notes.xml:1398 release_notes.xml:1471
+#, no-c-format
+msgid "New functionalities"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1324
+#, no-c-format
+msgid "NEW Long Transactions support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1326
+#, no-c-format
+msgid "NEW DumpRings() function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1328
+#, no-c-format
+msgid "NEW AsHEXEWKB(geom, XDR|NDR) function."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1332 release_notes.xml:2223
+#, no-c-format
+msgid "JDBC changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1334
+#, no-c-format
+msgid "Improved regression tests: MultiPoint and scientific ordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1337
+#, no-c-format
+msgid "Fixed some minor bugs in jdbc code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1339
+#, no-c-format
+msgid ""
+"Added proper accessor functions for all fields in preparation of making "
+"those fields private later"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1346
+#, no-c-format
+msgid "NEW regress test support for loader/dumper."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1348
+#, no-c-format
+msgid "Added --with-proj-libdir and --with-geos-libdir configure switches."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1351
+#, no-c-format
+msgid "Support for build Tru64 build."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1353
+#, no-c-format
+msgid "Use Jade for generating documentation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1355
+#, no-c-format
+msgid "Don't link pgsql2shp to more libs then required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1357
+#, no-c-format
+msgid "Initial support for PostgreSQL 8.2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1362
+#, no-c-format
+msgid "Release 1.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1364
+#, no-c-format
+msgid "Release date: 2006/03/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1366
+#, no-c-format
+msgid ""
+"This is an bugfix release including some new functions and portability "
+"enhancements. Upgrade is <emphasis>encouraged</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1388
+#, no-c-format
+msgid "BUGFIX in SnapToGrid() computation of output bounding box"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1390
+#, no-c-format
+msgid "BUGFIX in EnforceRHR()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1392
+#, no-c-format
+msgid "jdbc2 SRID handling fixes in JTS code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1394
+#, no-c-format
+msgid "Fixed support for 64bit archs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1400
+#, no-c-format
+msgid "Regress tests can now be run *before* postgis installation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1403
+#, no-c-format
+msgid "New affine() matrix transformation functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1405
+#, no-c-format
+msgid "New rotate{,X,Y,Z}() function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1407
+#, no-c-format
+msgid "Old translating and scaling functions now use affine() internally"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1410
+#, no-c-format
+msgid ""
+"Embedded access control in estimated_extent() for builds against pgsql >= "
+"8.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1417
+#, no-c-format
+msgid "More portable ./configure script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1419
+#, no-c-format
+msgid "Changed ./run_test script to have more sane default behaviour"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1425
+#, no-c-format
+msgid "Release 1.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1427
+#, no-c-format
+msgid "Release date: 2006/01/23"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1429
+#, no-c-format
+msgid ""
+"This is an important Bugfix release, upgrade is <emphasis>highly "
+"recommended</emphasis>. Previous version contained a bug in postgis_restore."
+"pl preventing <link linkend=\"hard_upgrade\">hard upgrade</link> procedure "
+"to complete and a bug in GEOS-2.2+ connector preventing GeometryCollection "
+"objects to be used in topological operations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1454
+#, no-c-format
+msgid "Fixed a premature exit in postgis_restore.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1456
+#, no-c-format
+msgid "BUGFIX in geometrycollection handling of GEOS-CAPI connector"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1459
+#, no-c-format
+msgid "Solaris 2.7 and MingW support improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1461
+#, no-c-format
+msgid "BUGFIX in line_locate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1463
+#, no-c-format
+msgid "Fixed handling of postgresql paths"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1465
+#, no-c-format
+msgid "BUGFIX in line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1467
+#, no-c-format
+msgid "Added support for localized cluster in regress tester"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1473
+#, no-c-format
+msgid "New Z and M interpolation in line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1475
+#, no-c-format
+msgid "New Z and M interpolation in line_interpolate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1477
+#, no-c-format
+msgid "added NumInteriorRing() alias due to OpenGIS ambiguity"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1482
+#, no-c-format
+msgid "Release 1.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1484
+#, no-c-format
+msgid "Release date: 2005/12/21"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1486
+#, no-c-format
+msgid ""
+"This is a Minor release, containing many improvements and new things. Most "
+"notably: build procedure greatly simplified; transform() performance "
+"drastically improved; more stable GEOS connectivity (CAPI support); lots of "
+"new functions; draft topology support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1491
+#, no-c-format
+msgid ""
+"It is <emphasis>highly recommended</emphasis> that you upgrade to GEOS-2.2.x "
+"before installing PostGIS, this will ensure future GEOS upgrades won't "
+"require a rebuild of the PostGIS library."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1496
+#, no-c-format
+msgid "Credits"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1498
+#, no-c-format
+msgid ""
+"This release includes code from Mark Cave Ayland for caching of proj4 "
+"objects. Markus Schaber added many improvements in his JDBC2 code. Alex "
+"Bodnaru helped with PostgreSQL source dependency relief and provided Debian "
+"specfiles. Michael Fuhr tested new things on Solaris arch. David Techer and "
+"Gerald Fenoy helped testing GEOS C-API connector. Hartmut Tschauner provided "
+"code for the azimuth() function. Devrim GUNDUZ provided RPM specfiles. Carl "
+"Anderson helped with the new area building functions. See the <link linkend="
+"\"credits_other_contributors\">credits</link> section for more names."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1512
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
+"emphasis> need a dump/reload. Simply sourcing the new lwpostgis_upgrade.sql "
+"script in all your existing databases will work. See the <link linkend="
+"\"soft_upgrade\">soft upgrade</link> chapter for more information."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1528
+#, no-c-format
+msgid "New functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1530
+#, no-c-format
+msgid "scale() and transscale() companion methods to translate()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1532
+#, no-c-format
+msgid "line_substring()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1534
+#, no-c-format
+msgid "line_locate_point()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1536
+#, no-c-format
+msgid "M(point)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1538
+#, no-c-format
+msgid "LineMerge(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1540
+#, no-c-format
+msgid "shift_longitude(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1542
+#, no-c-format
+msgid "azimuth(geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1544
+#, no-c-format
+msgid "locate_along_measure(geometry, float8)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1546
+#, no-c-format
+msgid "locate_between_measures(geometry, float8, float8)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1548
+#, no-c-format
+msgid "SnapToGrid by point offset (up to 4d support)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1550
+#, no-c-format
+msgid "BuildArea(any_geometry)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1552
+#, no-c-format
+msgid "OGC BdPolyFromText(linestring_wkt, srid)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1554
+#, no-c-format
+msgid "OGC BdMPolyFromText(linestring_wkt, srid)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1556
+#, no-c-format
+msgid "RemovePoint(linestring, offset)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1558
+#, no-c-format
+msgid "ReplacePoint(linestring, offset, point)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1564
+#, no-c-format
+msgid "Fixed memory leak in polygonize()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1566
+#, no-c-format
+msgid "Fixed bug in lwgeom_as_anytype cast functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1568
+#, no-c-format
+msgid ""
+"Fixed USE_GEOS, USE_PROJ and USE_STATS elements of postgis_version() output "
+"to always reflect library state."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1573
+#, no-c-format
+msgid "Function semantic changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1575
+#, no-c-format
+msgid "SnapToGrid doesn't discard higher dimensions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1577
+#, no-c-format
+msgid ""
+"Changed Z() function to return NULL if requested dimension is not available"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1582
+#, no-c-format
+msgid "Performance improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1584
+#, no-c-format
+msgid "Much faster transform() function, caching proj4 objects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1586
+#, no-c-format
+msgid ""
+"Removed automatic call to fix_geometry_columns() in AddGeometryColumns() and "
+"update_geometry_stats()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1591
+#, no-c-format
+msgid "JDBC2 works"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1593
+#, no-c-format
+msgid "Makefile improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1595 release_notes.xml:1631
+#, no-c-format
+msgid "JTS support improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1597
+#, no-c-format
+msgid "Improved regression test system"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1599
+#, no-c-format
+msgid "Basic consistency check method for geometry collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1601
+#, no-c-format
+msgid "Support for (Hex)(E)wkb"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1603
+#, no-c-format
+msgid "Autoprobing DriverWrapper for HexWKB / EWKT switching"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1605
+#, no-c-format
+msgid "fix compile problems in ValueSetter for ancient jdk releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1608
+#, no-c-format
+msgid "fix EWKT constructors to accept SRID=4711; representation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1610
+#, no-c-format
+msgid "added preliminary read-only support for java2d geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1614
+#, no-c-format
+msgid "Other new things"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1616
+#, no-c-format
+msgid ""
+"Full autoconf-based configuration, with PostgreSQL source dependency relief"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1619
+#, no-c-format
+msgid "GEOS C-API support (2.2.0 and higher)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1621
+#, no-c-format
+msgid "Initial support for topology modelling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1623
+#, no-c-format
+msgid "Debian and RPM specfiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1625
+#, no-c-format
+msgid "New lwpostgis_upgrade.sql script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1633
+#, no-c-format
+msgid "Stricter mapping between DBF and SQL integer and string attributes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1636
+#, no-c-format
+msgid "Wider and cleaner regression test suite"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1638
+#, no-c-format
+msgid "old jdbc code removed from release"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1640
+#, no-c-format
+msgid "obsoleted direct use of postgis_proc_upgrade.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1642
+#, no-c-format
+msgid "scripts version unified with release version"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1647
+#, no-c-format
+msgid "Release 1.0.6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1649
+#, no-c-format
+msgid "Release date: 2005/12/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1651 release_notes.xml:1887
+#, no-c-format
+msgid "Contains a few bug fixes and improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1656 release_notes.xml:1713
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
+"emphasis> need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1671
+#, no-c-format
+msgid ""
+"Fixed palloc(0) call in collection deserializer (only gives problem with --"
+"enable-cassert)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1674
+#, no-c-format
+msgid "Fixed bbox cache handling bugs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1676
+#, no-c-format
+msgid "Fixed geom_accum(NULL, NULL) segfault"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1678
+#, no-c-format
+msgid "Fixed segfault in addPoint()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1680
+#, no-c-format
+msgid "Fixed short-allocation in lwcollection_clone()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1682
+#, no-c-format
+msgid "Fixed bug in segmentize()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1684
+#, no-c-format
+msgid "Fixed bbox computation of SnapToGrid output"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1688 release_notes.xml:1806 release_notes.xml:1868
+#: release_notes.xml:1914
+#, no-c-format
+msgid "Improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1690
+#, no-c-format
+msgid "Initial support for postgresql 8.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1692
+#, no-c-format
+msgid "Added missing SRID mismatch checks in GEOS ops"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1697
+#, no-c-format
+msgid "Release 1.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1699
+#, no-c-format
+msgid "Release date: 2005/11/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1701
+#, no-c-format
+msgid ""
+"Contains memory-alignment fixes in the library, a segfault fix in loader's "
+"handling of UTF8 attributes and a few improvements and cleanups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1706
+#, no-c-format
+msgid ""
+"Return code of shp2pgsql changed from previous releases to conform to unix "
+"standards (return 0 on success)."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1726 release_notes.xml:1941 release_notes.xml:1993
+#: release_notes.xml:2042 release_notes.xml:2084 release_notes.xml:2118
+#: release_notes.xml:2185 release_notes.xml:2282
+#, no-c-format
+msgid "Library changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1728
+#, no-c-format
+msgid "Fixed memory alignment problems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1730
+#, no-c-format
+msgid "Fixed computation of null values fraction in analyzer"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1732
+#, no-c-format
+msgid "Fixed a small bug in the getPoint4d_p() low-level function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1735
+#, no-c-format
+msgid "Speedup of serializer functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1737
+#, no-c-format
+msgid "Fixed a bug in force_3dm(), force_3dz() and force_4d()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1741
+#, no-c-format
+msgid "Loader changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1743
+#, no-c-format
+msgid "Fixed return code of shp2pgsql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1745
+#, no-c-format
+msgid "Fixed back-compatibility issue in loader (load of null shapefiles)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1748
+#, no-c-format
+msgid "Fixed handling of trailing dots in dbf numerical attributes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1751
+#, no-c-format
+msgid "Segfault fix in shp2pgsql (utf8 encoding)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1757
+#, no-c-format
+msgid "Schema aware postgis_proc_upgrade.pl, support for pgsql 7.2+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1760
+#, no-c-format
+msgid "New \"Reporting Bugs\" chapter in manual"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1765
+#, no-c-format
+msgid "Release 1.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1767
+#, no-c-format
+msgid "Release date: 2005/09/09"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1769
+#, no-c-format
+msgid ""
+"Contains important bug fixes and a few improvements. In particular, it fixes "
+"a memory leak preventing successful build of GiST indexes for large spatial "
+"tables."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1776
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.3 you <emphasis>DO NOT</emphasis> need "
+"a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1791
+#, no-c-format
+msgid "Memory leak plugged in GiST indexing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1793
+#, no-c-format
+msgid "Segfault fix in transform() handling of proj4 errors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1795
+#, no-c-format
+msgid "Fixed some proj4 texts in spatial_ref_sys (missing +proj)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1797
+#, no-c-format
+msgid ""
+"Loader: fixed string functions usage, reworked NULL objects check, fixed "
+"segfault on MULTILINESTRING input."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1800
+#, no-c-format
+msgid "Fixed bug in MakeLine dimension handling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1802
+#, no-c-format
+msgid "Fixed bug in translate() corrupting output bounding box"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1808
+#, no-c-format
+msgid "Documentation improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1810
+#, no-c-format
+msgid "More robust selectivity estimator"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1812
+#, no-c-format
+msgid "Minor speedup in distance()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1814
+#, no-c-format
+msgid "Minor cleanups"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1816
+#, no-c-format
+msgid "GiST indexing cleanup"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1818
+#, no-c-format
+msgid "Looser syntax acceptance in box3d parser"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1823
+#, no-c-format
+msgid "Release 1.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1825
+#, no-c-format
+msgid "Release date: 2005/08/08"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1827
+#, no-c-format
+msgid ""
+"Contains some bug fixes - <emphasis>including a severe one affecting "
+"correctness of stored geometries</emphasis> - and a few improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1834
+#, no-c-format
+msgid ""
+"Due to a bug in a bounding box computation routine, the upgrade procedure "
+"requires special attention, as bounding boxes cached in the database could "
+"be incorrect."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1838
+#, no-c-format
+msgid ""
+"An <link linkend=\"hard_upgrade\">hard upgrade</link> procedure (dump/"
+"reload) will force recomputation of all bounding boxes (not included in "
+"dumps). This is <emphasis>required</emphasis> if upgrading from releases "
+"prior to 1.0.0RC6."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1843
+#, no-c-format
+msgid ""
+"If you are upgrading from versions 1.0.0RC6 or up, this release includes a "
+"perl script (utils/rebuild_bbox_caches.pl) to force recomputation of "
+"geometries' bounding boxes and invoke all operations required to propagate "
+"eventual changes in them (geometry statistics update, reindexing). Invoke "
+"the script after a make install (run with no args for syntax help). "
+"Optionally run utils/postgis_proc_upgrade.pl to refresh postgis procedures "
+"and functions signatures (see <link linkend=\"soft_upgrade\">Soft upgrade</"
+"link>)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1856
+#, no-c-format
+msgid "Severe bugfix in lwgeom's 2d bounding box computation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1858
+#, no-c-format
+msgid "Bugfix in WKT (-w) POINT handling in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1860
+#, no-c-format
+msgid "Bugfix in dumper on 64bit machines"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1862
+#, no-c-format
+msgid "Bugfix in dumper handling of user-defined queries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1864
+#, no-c-format
+msgid "Bugfix in create_undef.pl script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1870
+#, no-c-format
+msgid "Small performance improvement in canonical input function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1872
+#, no-c-format
+msgid "Minor cleanups in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1874
+#, no-c-format
+msgid "Support for multibyte field names in loader"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1876
+#, no-c-format
+msgid "Improvement in the postgis_restore.pl script"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1878
+#, no-c-format
+msgid "New rebuild_bbox_caches.pl util script"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1883
+#, no-c-format
+msgid "Release 1.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1885
+#, no-c-format
+msgid "Release date: 2005/07/04"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1892 release_notes.xml:1932
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC6 or up you <emphasis>DO NOT</"
+"emphasis> need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1895 release_notes.xml:1935
+#, no-c-format
+msgid ""
+"Upgrading from older releases requires a dump/reload. See the <link linkend="
+"\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1903
+#, no-c-format
+msgid "Fault tolerant btree ops"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1905
+#, no-c-format
+msgid "Memory leak plugged in pg_error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1907
+#, no-c-format
+msgid "Rtree index fix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1909
+#, no-c-format
+msgid "Cleaner build scripts (avoided mix of CFLAGS and CXXFLAGS)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1916
+#, no-c-format
+msgid "New index creation capabilities in loader (-I switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1918
+#, no-c-format
+msgid "Initial support for postgresql 8.1dev"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1923
+#, no-c-format
+msgid "Release 1.0.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1925
+#, no-c-format
+msgid "Release date: 2005/05/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1927
+#, no-c-format
+msgid "Contains a few bug fixes and some improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1943
+#, no-c-format
+msgid "BUGFIX in 3d computation of length_spheroid()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1945
+#, no-c-format
+msgid "BUGFIX in join selectivity estimator"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1949 release_notes.xml:2005
+#, no-c-format
+msgid "Other changes/additions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1951
+#, no-c-format
+msgid "BUGFIX in shp2pgsql escape functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1953
+#, no-c-format
+msgid "better support for concurrent postgis in multiple schemas"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1955
+#, no-c-format
+msgid "documentation fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1957
+#, no-c-format
+msgid "jdbc2: compile with \"-target 1.2 -source 1.2\" by default"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1959
+#, no-c-format
+msgid "NEW -k switch for pgsql2shp"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1961
+#, no-c-format
+msgid "NEW support for custom createdb options in postgis_restore.pl"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1964
+#, no-c-format
+msgid "BUGFIX in pgsql2shp attribute names unicity enforcement"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1966
+#, no-c-format
+msgid "BUGFIX in Paris projections definitions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1968
+#, no-c-format
+msgid "postgis_restore.pl cleanups"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:1973
+#, no-c-format
+msgid "Release 1.0.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1975
+#, no-c-format
+msgid "Release date: 2005/04/19"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1977
+#, no-c-format
+msgid ""
+"Final 1.0.0 release. Contains a few bug fixes, some improvements in the "
+"loader (most notably support for older postgis versions), and more docs."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1984
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC6 you <emphasis>DO NOT</emphasis> "
+"need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1987 release_notes.xml:2078
+#, no-c-format
+msgid ""
+"Upgrading from any other precedent release requires a dump/reload. See the "
+"<link linkend=\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1995
+#, no-c-format
+msgid "BUGFIX in transform() releasing random memory address"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:1997
+#, no-c-format
+msgid "BUGFIX in force_3dm() allocating less memory then required"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2000
+#, no-c-format
+msgid "BUGFIX in join selectivity estimator (defaults, leaks, tuplecount, sd)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2007
+#, no-c-format
+msgid "BUGFIX in shp2pgsql escape of values starting with tab or single-quote"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2010
+#, no-c-format
+msgid "NEW manual pages for loader/dumper"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2012
+#, no-c-format
+msgid "NEW shp2pgsql support for old (HWGEOM) postgis versions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2014
+#, no-c-format
+msgid "NEW -p (prepare) flag for shp2pgsql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2016
+#, no-c-format
+msgid "NEW manual chapter about OGC compliancy enforcement"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2018
+#, no-c-format
+msgid "NEW autoconf support for JTS lib"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2020
+#, no-c-format
+msgid "BUGFIX in estimator testers (support for LWGEOM and schema parsing)"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2026
+#, no-c-format
+msgid "Release 1.0.0RC6"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2028
+#, no-c-format
+msgid "Release date: 2005/03/30"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2030
+#, no-c-format
+msgid ""
+"Sixth release candidate for 1.0.0. Contains a few bug fixes and cleanups."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2036 release_notes.xml:2112 release_notes.xml:2179
+#: release_notes.xml:2276 release_notes.xml:2330
+#, no-c-format
+msgid ""
+"You need a dump/reload to upgrade from precedent releases. See the <link "
+"linkend=\"upgrading\">upgrading</link> chapter for more informations."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2044
+#, no-c-format
+msgid "BUGFIX in multi()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2046
+#, no-c-format
+msgid "early return [when noop] from multi()"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2050 release_notes.xml:2136 release_notes.xml:2209
+#: release_notes.xml:2301
+#, no-c-format
+msgid "Scripts changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2052
+#, no-c-format
+msgid "dropped {x,y}{min,max}(box2d) functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2058
+#, no-c-format
+msgid "BUGFIX in postgis_restore.pl scrip"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2060
+#, no-c-format
+msgid "BUGFIX in dumper's 64bit support"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2065
+#, no-c-format
+msgid "Release 1.0.0RC5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2067
+#, no-c-format
+msgid "Release date: 2005/03/25"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2069
+#, no-c-format
+msgid ""
+"Fifth release candidate for 1.0.0. Contains a few bug fixes and a "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2075
+#, no-c-format
+msgid ""
+"If you are upgrading from release 1.0.0RC4 you <emphasis>DO NOT</emphasis> "
+"need a dump/reload."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2086
+#, no-c-format
+msgid "BUGFIX (segfaulting) in box3d computation (yes, another!)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2089
+#, no-c-format
+msgid "BUGFIX (segfaulting) in estimated_extent()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2095
+#, no-c-format
+msgid "Small build scripts and utilities refinements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2097
+#, no-c-format
+msgid "Additional performance tips documented."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2102
+#, no-c-format
+msgid "Release 1.0.0RC4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2104
+#, no-c-format
+msgid "Release date: 2005/03/18"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2106
+#, no-c-format
+msgid ""
+"Fourth release candidate for 1.0.0. Contains bug fixes and a few "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2120
+#, no-c-format
+msgid "BUGFIX (segfaulting) in geom_accum()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2122
+#, no-c-format
+msgid "BUGFIX in 64bit architectures support."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2124
+#, no-c-format
+msgid "BUGFIX in box3d computation function with collections."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2126
+#, no-c-format
+msgid "NEW subselects support in selectivity estimator."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2128
+#, no-c-format
+msgid "Early return from force_collection."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2130
+#, no-c-format
+msgid "Consistency check fix in SnapToGrid()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2132
+#, no-c-format
+msgid "Box2d output changed back to 15 significant digits."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2138
+#, no-c-format
+msgid "NEW distance_sphere() function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2140
+#, no-c-format
+msgid ""
+"Changed get_proj4_from_srid implementation to use PL/PGSQL instead of SQL."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2147
+#, no-c-format
+msgid "BUGFIX in loader and dumper handling of MultiLine shapes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2149
+#, no-c-format
+msgid "BUGFIX in loader, skipping all but first hole of polygons."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2152
+#, no-c-format
+msgid "jdbc2: code cleanups, Makefile improvements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2154
+#, no-c-format
+msgid ""
+"FLEX and YACC variables set *after* pgsql Makefile.global is included and "
+"only if the pgsql *stripped* version evaluates to the empty string"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2158
+#, no-c-format
+msgid "Added already generated parser in release"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2160
+#, no-c-format
+msgid "Build scripts refinements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2162
+#, no-c-format
+msgid "improved version handling, central Version.config"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2164
+#, no-c-format
+msgid "improvements in postgis_restore.pl"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2169
+#, no-c-format
+msgid "Release 1.0.0RC3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2171
+#, no-c-format
+msgid "Release date: 2005/02/24"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2173
+#, no-c-format
+msgid ""
+"Third release candidate for 1.0.0. Contains many bug fixes and improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2187
+#, no-c-format
+msgid "BUGFIX in transform(): missing SRID, better error handling."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2190
+#, no-c-format
+msgid "BUGFIX in memory alignment handling"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2192
+#, no-c-format
+msgid ""
+"BUGFIX in force_collection() causing mapserver connector failures on simple "
+"(single) geometry types."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2195
+#, no-c-format
+msgid "BUGFIX in GeometryFromText() missing to add a bbox cache."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2197
+#, no-c-format
+msgid "reduced precision of box2d output."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2199
+#, no-c-format
+msgid "prefixed DEBUG macros with PGIS_ to avoid clash with pgsql one"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2202
+#, no-c-format
+msgid "plugged a leak in GEOS2POSTGIS converter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2204
+#, no-c-format
+msgid "Reduced memory usage by early releasing query-context palloced one."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2211
+#, no-c-format
+msgid "BUGFIX in 72 index bindings."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2213
+#, no-c-format
+msgid ""
+"BUGFIX in probe_geometry_columns() to work with PG72 and support multiple "
+"geometry columns in a single table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2216
+#, no-c-format
+msgid "NEW bool::text cast"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2218
+#, no-c-format
+msgid "Some functions made IMMUTABLE from STABLE, for performance improvement."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2225
+#, no-c-format
+msgid "jdbc2: small patches, box2d/3d tests, revised docs and license."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2228
+#, no-c-format
+msgid "jdbc2: bug fix and testcase in for pgjdbc 8.0 type autoregistration"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2231
+#, no-c-format
+msgid ""
+"jdbc2: Removed use of jdk1.4 only features to enable build with older jdk "
+"releases."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2234
+#, no-c-format
+msgid "jdbc2: Added support for building against pg72jdbc2.jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2236
+#, no-c-format
+msgid "jdbc2: updated and cleaned makefile"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2238
+#, no-c-format
+msgid "jdbc2: added BETA support for jts geometry classes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2240
+#, no-c-format
+msgid "jdbc2: Skip known-to-fail tests against older PostGIS servers."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2243
+#, no-c-format
+msgid "jdbc2: Fixed handling of measured geometries in EWKT."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2249
+#, no-c-format
+msgid "new performance tips chapter in manual"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2251
+#, no-c-format
+msgid "documentation updates: pgsql72 requirement, lwpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2253
+#, no-c-format
+msgid "few changes in autoconf"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2255
+#, no-c-format
+msgid "BUILDDATE extraction made more portable"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2257
+#, no-c-format
+msgid "fixed spatial_ref_sys.sql to avoid vacuuming the whole database."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2260
+#, no-c-format
+msgid ""
+"spatial_ref_sys: changed Paris entries to match the ones distributed with 0."
+"x."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2266
+#, no-c-format
+msgid "Release 1.0.0RC2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2268
+#, no-c-format
+msgid "Release date: 2005/01/26"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2270
+#, no-c-format
+msgid ""
+"Second release candidate for 1.0.0 containing bug fixes and a few "
+"improvements."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2284
+#, no-c-format
+msgid "BUGFIX in pointarray box3d computation"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2286
+#, no-c-format
+msgid "BUGFIX in distance_spheroid definition"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2288
+#, no-c-format
+msgid "BUGFIX in transform() missing to update bbox cache"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2290
+#, no-c-format
+msgid "NEW jdbc driver (jdbc2)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2292
+#, no-c-format
+msgid "GEOMETRYCOLLECTION(EMPTY) syntax support for backward compatibility"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2295
+#, no-c-format
+msgid "Faster binary outputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2297
+#, no-c-format
+msgid "Stricter OGC WKB/WKT constructors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2303
+#, no-c-format
+msgid "More correct STABLE, IMMUTABLE, STRICT uses in lwpostgis.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2306
+#, no-c-format
+msgid "stricter OGC WKB/WKT constructors"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2312
+#, no-c-format
+msgid "Faster and more robust loader (both i18n and not)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2314
+#, no-c-format
+msgid "Initial autoconf script"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:2319
+#, no-c-format
+msgid "Release 1.0.0RC1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2321
+#, no-c-format
+msgid "Release date: 2005/01/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2323
+#, no-c-format
+msgid ""
+"This is the first candidate of a major postgis release, with internal "
+"storage of postgis types redesigned to be smaller and faster on indexed "
+"queries."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2338
+#, no-c-format
+msgid "Faster canonical input parsing."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2340
+#, no-c-format
+msgid "Lossless canonical output."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2342
+#, no-c-format
+msgid "EWKB Canonical binary IO with PG>73."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2344
+#, no-c-format
+msgid ""
+"Support for up to 4d coordinates, providing lossless shapefile->postgis-"
+">shapefile conversion."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2347
+#, no-c-format
+msgid ""
+"New function: UpdateGeometrySRID(), AsGML(), SnapToGrid(), ForceRHR(), "
+"estimated_extent(), accum()."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2350
+#, no-c-format
+msgid "Vertical positioning indexed operators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2352
+#, no-c-format
+msgid "JOIN selectivity function."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2354
+#, no-c-format
+msgid "More geometry constructors / editors."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2356
+#, no-c-format
+msgid "PostGIS extension API."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:2358
+#, no-c-format
+msgid "UTF8 support in loader."
+msgstr ""
diff --git a/doc/po/pl/reporting.xml.po b/doc/po/pl/reporting.xml.po
new file mode 100644
index 0000000..cbb7554
--- /dev/null
+++ b/doc/po/pl/reporting.xml.po
@@ -0,0 +1,172 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: reporting.xml:3
+#, no-c-format
+msgid "Reporting Problems"
+msgstr ""
+
+#. Tag: title
+#: reporting.xml:6
+#, no-c-format
+msgid "Reporting Software Bugs"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:8
+#, no-c-format
+msgid ""
+"Reporting bugs effectively is a fundamental way to help PostGIS development. "
+"The most effective bug report is that enabling PostGIS developers to "
+"reproduce it, so it would ideally contain a script triggering it and every "
+"information regarding the environment in which it was detected. Good enough "
+"info can be extracted running <code>SELECT postgis_full_version()</code> "
+"[for postgis] and <code>SELECT version()</code> [for postgresql]."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:16
+#, no-c-format
+msgid ""
+"If you aren't using the latest release, it's worth taking a look at its "
+"<ulink url=\"http://svn.osgeo.org/postgis/trunk/NEWS\">release changelog</"
+"ulink> first, to find out if your bug has already been fixed."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:21
+#, no-c-format
+msgid ""
+"Using the <ulink url=\"http://trac.osgeo.org/postgis/\">PostGIS bug tracker</"
+"ulink> will ensure your reports are not discarded, and will keep you "
+"informed on its handling process. Before reporting a new bug please query "
+"the database to see if it is a known one, and if it is please add any new "
+"information you have about it."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:28
+#, no-c-format
+msgid ""
+"You might want to read Simon Tatham's paper about <ulink url=\"http://www."
+"chiark.greenend.org.uk/~sgtatham/bugs.html\">How to Report Bugs Effectively</"
+"ulink> before filing a new report."
+msgstr ""
+
+#. Tag: title
+#: reporting.xml:34
+#, no-c-format
+msgid "Reporting Documentation Issues"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:36
+#, no-c-format
+msgid ""
+"The documentation should accurately reflect the features and behavior of the "
+"software. If it doesn't, it could be because of a software bug or because "
+"the documentation is in error or deficient."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:40
+#, no-c-format
+msgid ""
+"Documentation issues can also be reported to the <ulink url=\"http://trac."
+"osgeo.org/postgis\">PostGIS bug tracker</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:44
+#, no-c-format
+msgid ""
+"If your revision is trivial, just describe it in a new bug tracker issue, "
+"being specific about its location in the documentation."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:47
+#, no-c-format
+msgid ""
+"If your changes are more extensive, a Subversion patch is definitely "
+"preferred. This is a four step process on Unix (assuming you already have "
+"<ulink url=\"http://subversion.apache.org/\">Subversion</ulink> installed):"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:54
+#, no-c-format
+msgid "Check out a copy of PostGIS' Subversion trunk. On Unix, type:"
+msgstr ""
+
+#. Tag: command
+#: reporting.xml:57
+#, no-c-format
+msgid "svn checkout http://svn.osgeo.org/postgis/trunk/"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:60
+#, no-c-format
+msgid "This will be stored in the directory ./trunk"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:64
+#, no-c-format
+msgid ""
+"Make your changes to the documentation with your favorite text editor. On "
+"Unix, type (for example):"
+msgstr ""
+
+#. Tag: command
+#: reporting.xml:67
+#, no-c-format
+msgid "vim trunk/doc/postgis.xml"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:69
+#, no-c-format
+msgid ""
+"Note that the documentation is written in DocBook XML rather than HTML, so "
+"if you are not familiar with it please follow the example of the rest of the "
+"documentation."
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:75
+#, no-c-format
+msgid ""
+"Make a patch file containing the differences from the master copy of the "
+"documentation. On Unix, type:"
+msgstr ""
+
+#. Tag: command
+#: reporting.xml:78
+#, no-c-format
+msgid "svn diff trunk/doc/postgis.xml > doc.patch"
+msgstr ""
+
+#. Tag: para
+#: reporting.xml:83
+#, no-c-format
+msgid "Attach the patch to a new issue in bug tracker."
+msgstr ""
diff --git a/doc/po/pl/using_postgis_app.xml.po b/doc/po/pl/using_postgis_app.xml.po
new file mode 100644
index 0000000..2131552
--- /dev/null
+++ b/doc/po/pl/using_postgis_app.xml.po
@@ -0,0 +1,799 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: using_postgis_app.xml:3
+#, no-c-format
+msgid "Using PostGIS Geometry: Building Applications"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:5
+#, no-c-format
+msgid "Using MapServer"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:7
+#, no-c-format
+msgid ""
+"The Minnesota MapServer is an internet web-mapping server which conforms to "
+"the OpenGIS Web Mapping Server specification."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:12
+#, no-c-format
+msgid ""
+"The MapServer homepage is at <ulink url=\"http://mapserver.org\">http://"
+"mapserver.org</ulink>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:17
+#, no-c-format
+msgid ""
+"The OpenGIS Web Map Specification is at <ulink url=\"http://www."
+"opengeospatial.org/standards/wms\">http://www.opengeospatial.org/standards/"
+"wms</ulink>."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:23
+#, no-c-format
+msgid "Basic Usage"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:25
+#, no-c-format
+msgid ""
+"To use PostGIS with MapServer, you will need to know about how to configure "
+"MapServer, which is beyond the scope of this documentation. This section "
+"will cover specific PostGIS issues and configuration details."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:30
+#, no-c-format
+msgid "To use PostGIS with MapServer, you will need:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:34
+#, no-c-format
+msgid "Version 0.6 or newer of PostGIS."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:38
+#, no-c-format
+msgid "Version 3.5 or newer of MapServer."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:42
+#, no-c-format
+msgid ""
+"MapServer accesses PostGIS/PostgreSQL data like any other PostgreSQL client "
+"-- using the <filename>libpq</filename> interface. This means that MapServer "
+"can be installed on any machine with network access to the PostGIS server, "
+"and use PostGIS as a source of data. The faster the connection between the "
+"systems, the better."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:50
+#, no-c-format
+msgid ""
+"Compile and install MapServer, with whatever options you desire, including "
+"the \"--with-postgis\" configuration option."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:55
+#, no-c-format
+msgid "In your MapServer map file, add a PostGIS layer. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:58
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"widehighways\" \n"
+"  # Connect to a remote spatial database\n"
+"  CONNECTION \"user=dbuser dbname=gisdatabase host=bigserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  # Get the lines from the 'geom' column of the 'roads' table \n"
+"  DATA \"geom from roads using srid=4326 using unique gid\" \n"
+"  STATUS ON\n"
+"  TYPE LINE \n"
+"  # Of the lines in the extents, only render the wide highways \n"
+"  FILTER \"type = 'highway' and numlanes >= 4\" \n"
+"  CLASS \n"
+"    # Make the superhighways brighter and 2 pixels wide\n"
+"    EXPRESSION ([numlanes] >= 6) \n"
+"    STYLE\n"
+"      COLOR 255 22 22 \n"
+"      WIDTH 2 \n"
+"    END\n"
+"  END \n"
+"  CLASS \n"
+"    # All the rest are darker and only 1 pixel wide \n"
+"    EXPRESSION ([numlanes] < 6) \n"
+"    STYLE\n"
+"      COLOR 205 92 82\n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:60
+#, no-c-format
+msgid "In the example above, the PostGIS-specific directives are as follows:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:65
+#, no-c-format
+msgid "CONNECTIONTYPE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:68
+#, no-c-format
+msgid "For PostGIS layers, this is always \"postgis\"."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:73
+#, no-c-format
+msgid "CONNECTION"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:76
+#, no-c-format
+msgid ""
+"The database connection is governed by the a 'connection string' which is a "
+"standard set of keys and values like this (with the default values in <"
+">):"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:80
+#, no-c-format
+msgid ""
+"user=<username> password=<password> dbname=<username> "
+"hostname=<server> port=<5432>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:84
+#, no-c-format
+msgid ""
+"An empty connection string is still valid, and any of the key/value pairs "
+"can be omitted. At a minimum you will generally supply the database name and "
+"username to connect with."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:92
+#, no-c-format
+msgid "DATA"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:95
+#, no-c-format
+msgid ""
+"The form of this parameter is \"<geocolumn> from <tablename> "
+"using srid=<srid> using unique <primary key>\" where the column "
+"is the spatial column to be rendered to the map, the SRID is SRID used by "
+"the column and the primary key is the table primary key (or any other "
+"uniquely-valued column with an index)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:99
+#, no-c-format
+msgid ""
+"You can omit the \"using srid\" and \"using unique\" clauses and MapServer "
+"will automatically determine the correct values if possible, but at the cost "
+"of running a few extra queries on the server for each map draw."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:106
+#, no-c-format
+msgid "PROCESSING"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:109
+#, no-c-format
+msgid ""
+"Putting in a CLOSE_CONNECTION=DEFER if you have multiple layers reuses "
+"existing connections instead of closing them. This improves speed. Refer to "
+"for <ulink url=\"http://blog.cleverelephant.ca/2008/10/mapserverpostgis-"
+"performance-tips.html\">MapServer PostGIS Performance Tips</ulink> for a "
+"more detailed explanation."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:115
+#, no-c-format
+msgid "FILTER"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:118
+#, no-c-format
+msgid ""
+"The filter must be a valid SQL string corresponding to the logic normally "
+"following the \"WHERE\" keyword in a SQL query. So, for example, to render "
+"only roads with 6 or more lanes, use a filter of \"num_lanes >= 6\"."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:128
+#, no-c-format
+msgid ""
+"In your spatial database, ensure you have spatial (GiST) indexes built for "
+"any the layers you will be drawing."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:131
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:135
+#, no-c-format
+msgid ""
+"If you will be querying your layers using MapServer you will also need to "
+"use the \"using unique\" clause in your DATA statement."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:138
+#, no-c-format
+msgid ""
+"MapServer requires unique identifiers for each spatial record when doing "
+"queries, and the PostGIS module of MapServer uses the unique value you "
+"specify in order to provide these unique identifiers. Using the table "
+"primary key is the best practice."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:147
+#, no-c-format
+msgid "Frequently Asked Questions"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:152
+#, no-c-format
+msgid ""
+"When I use an <varname>EXPRESSION</varname> in my map file, the condition "
+"never returns as true, even though I know the values exist in my table."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:158
+#, no-c-format
+msgid ""
+"Unlike shape files, PostGIS field names have to be referenced in EXPRESSIONS "
+"using <emphasis>lower case</emphasis>."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:162
+#, no-c-format
+msgid "EXPRESSION ([numlanes] >= 6)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:168
+#, no-c-format
+msgid ""
+"The FILTER I use for my Shape files is not working for my PostGIS table of "
+"the same data."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:173
+#, no-c-format
+msgid ""
+"Unlike shape files, filters for PostGIS layers use SQL syntax (they are "
+"appended to the SQL statement the PostGIS connector generates for drawing "
+"layers in MapServer)."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:177
+#, no-c-format
+msgid "FILTER \"type = 'highway' and numlanes >= 4\""
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:183
+#, no-c-format
+msgid ""
+"My PostGIS layer draws much slower than my Shape file layer, is this normal?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:188
+#, no-c-format
+msgid ""
+"In general, the more features you are drawing into a given map, the more "
+"likely it is that PostGIS will be slower than Shape files. For maps with "
+"relatively few features (100s), PostGIS will often be faster. For maps with "
+"high feature density (1000s), PostGIS will always be slower."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:194
+#, no-c-format
+msgid ""
+"If you are finding substantial draw performance problems, it is possible "
+"that you have not built a spatial index on your table."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:198
+#, no-c-format
+msgid ""
+"postgis# CREATE INDEX geotable_gix ON geotable USING GIST ( geocolumn ); \n"
+"postgis# VACUUM ANALYZE;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:204
+#, no-c-format
+msgid ""
+"My PostGIS layer draws fine, but queries are really slow. What is wrong?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:209
+#, no-c-format
+msgid ""
+"For queries to be fast, you must have a unique key for your spatial table "
+"and you must have an index on that unique key."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:213
+#, no-c-format
+msgid ""
+"You can specify what unique key for mapserver to use with the <varname>USING "
+"UNIQUE</varname> clause in your <varname>DATA</varname> line:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:217
+#, no-c-format
+msgid "DATA \"geom FROM geotable USING UNIQUE gid\""
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:224
+#, no-c-format
+msgid ""
+"Can I use \"geography\" columns (new in PostGIS 1.5) as a source for "
+"MapServer layers?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:229
+#, no-c-format
+msgid ""
+"Yes! MapServer understands geography columns as being the same as geometry "
+"columns, but always using an SRID of 4326. Just make sure to include a "
+"\"using srid=4326\" clause in your <varname>DATA</varname> statement. "
+"Everything else works exactly the same as with geometry."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:234
+#, no-c-format
+msgid "DATA \"geog FROM geogtable USING SRID=4326 USING UNIQUE gid\""
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:244
+#, no-c-format
+msgid "Advanced Usage"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:246
+#, no-c-format
+msgid ""
+"The <varname>USING</varname> pseudo-SQL clause is used to add some "
+"information to help mapserver understand the results of more complex "
+"queries. More specifically, when either a view or a subselect is used as the "
+"source table (the thing to the right of \"FROM\" in a <varname>DATA</"
+"varname> definition) it is more difficult for mapserver to automatically "
+"determine a unique identifier for each row and also the SRID for the table. "
+"The <varname>USING</varname> clause can provide mapserver with these two "
+"pieces of information as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:255
+#, no-c-format
+msgid ""
+"DATA \"geom FROM (\n"
+"  SELECT \n"
+"    table1.geom AS geom, \n"
+"    table1.gid AS gid, \n"
+"    table2.data AS data \n"
+"  FROM table1 \n"
+"  LEFT JOIN table2 \n"
+"  ON table1.id = table2.id\n"
+") AS new_table USING UNIQUE gid USING SRID=4326\""
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:259
+#, no-c-format
+msgid "USING UNIQUE <uniqueid>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:262
+#, no-c-format
+msgid ""
+"MapServer requires a unique id for each row in order to identify the row "
+"when doing map queries. Normally it identifies the primary key from the "
+"system tables. However, views and subselects don't automatically have an "
+"known unique column. If you want to use MapServer's query functionality, you "
+"need to ensure your view or subselect includes a uniquely valued column, and "
+"declare it with <varname>USING UNIQUE</varname>. For example, you could "
+"explicitly select nee of the table's primary key values for this purpose, or "
+"any other column which is guaranteed to be unique for the result set."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:273
+#, no-c-format
+msgid ""
+"\"Querying a Map\" is the action of clicking on a map to ask for information "
+"about the map features in that location. Don't confuse \"map queries\" with "
+"the SQL query in a <varname>DATA</varname> definition."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_app.xml:282
+#, no-c-format
+msgid "USING SRID=<srid>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:285
+#, no-c-format
+msgid ""
+"PostGIS needs to know which spatial referencing system is being used by the "
+"geometries in order to return the correct data back to MapServer. Normally "
+"it is possible to find this information in the \"geometry_columns\" table in "
+"the PostGIS database, however, this is not possible for tables which are "
+"created on the fly such as subselects and views. So the <varname>USING "
+"SRID=</varname> option allows the correct SRID to be specified in the "
+"<varname>DATA</varname> definition."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:300
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:302
+#, no-c-format
+msgid ""
+"Lets start with a simple example and work our way up. Consider the following "
+"MapServer layer definition:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:305
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  NAME \"roads\"\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom from roads\" \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  CLASS \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:307
+#, no-c-format
+msgid ""
+"This layer will display all the road geometries in the roads table as black "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:310
+#, no-c-format
+msgid ""
+"Now lets say we want to show only the highways until we get zoomed in to at "
+"least a 1:100000 scale - the next two layers will achieve this effect:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:314
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\"\n"
+"  MINSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE \n"
+"  FILTER \"road_type = 'highway'\" \n"
+"  CLASS \n"
+"    COLOR 0 0 0 \n"
+"  END \n"
+"END \n"
+"LAYER \n"
+"  CONNECTIONTYPE postgis \n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\"\n"
+"  PROCESSING \"CLOSE_CONNECTION=DEFER\"\n"
+"  DATA \"geom from roads\" \n"
+"  MAXSCALE 100000 \n"
+"  STATUS ON \n"
+"  TYPE LINE\n"
+"  CLASSITEM road_type \n"
+"  CLASS \n"
+"    EXPRESSION \"highway\" \n"
+"    STYLE\n"
+"      WIDTH 2 \n"
+"      COLOR 255 0 0  \n"
+"    END\n"
+"  END \n"
+"  CLASS  \n"
+"    STYLE\n"
+"      COLOR 0 0 0 \n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:316
+#, no-c-format
+msgid ""
+"The first layer is used when the scale is greater than 1:100000, and "
+"displays only the roads of type \"highway\" as black lines. The "
+"<varname>FILTER</varname> option causes only roads of type \"highway\" to be "
+"displayed."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:321
+#, no-c-format
+msgid ""
+"The second layer is used when the scale is less than 1:100000, and will "
+"display highways as double-thick red lines, and other roads as regular black "
+"lines."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:325
+#, no-c-format
+msgid ""
+"So, we have done a couple of interesting things using only MapServer "
+"functionality, but our <varname>DATA</varname> SQL statement has remained "
+"simple. Suppose that the name of the road is stored in another table (for "
+"whatever reason) and we need to do a join to get it and label our roads."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:331
+#, no-c-format
+msgid ""
+"LAYER \n"
+"  CONNECTIONTYPE postgis\n"
+"  CONNECTION \"user=theuser password=thepass dbname=thedb host=theserver\" \n"
+"  DATA \"geom FROM (SELECT roads.gid AS gid, roads.geom AS geom, \n"
+"        road_names.name as name FROM roads LEFT JOIN road_names ON \n"
+"        roads.road_name_id = road_names.road_name_id) \n"
+"        AS named_roads USING UNIQUE gid USING SRID=4326\" \n"
+"  MAXSCALE 20000 \n"
+"  STATUS ON \n"
+"  TYPE ANNOTATION \n"
+"  LABELITEM name\n"
+"  CLASS \n"
+"    LABEL \n"
+"      ANGLE auto \n"
+"      SIZE 8 \n"
+"      COLOR 0 192 0 \n"
+"      TYPE truetype \n"
+"      FONT arial\n"
+"    END\n"
+"  END \n"
+"END"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:333
+#, no-c-format
+msgid ""
+"This annotation layer adds green labels to all the roads when the scale gets "
+"down to 1:20000 or less. It also demonstrates how to use an SQL join in a "
+"<varname>DATA</varname> definition."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:340
+#, no-c-format
+msgid "Java Clients (JDBC)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:342
+#, no-c-format
+msgid ""
+"Java clients can access PostGIS \"geometry\" objects in the PostgreSQL "
+"database either directly as text representations or using the JDBC extension "
+"objects bundled with PostGIS. In order to use the extension objects, the "
+"\"postgis.jar\" file must be in your CLASSPATH along with the \"postgresql."
+"jar\" JDBC driver package."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:348
+#, no-c-format
+msgid ""
+"import java.sql.*; \n"
+"import java.util.*; \n"
+"import java.lang.*; \n"
+"import org.postgis.*; \n"
+"\n"
+"public class JavaGIS { \n"
+"\n"
+"public static void main(String[] args) { \n"
+"\n"
+"  java.sql.Connection conn; \n"
+"\n"
+"  try { \n"
+"    /* \n"
+"    * Load the JDBC driver and establish a connection. \n"
+"    */\n"
+"    Class.forName(\"org.postgresql.Driver\"); \n"
+"    String url = \"jdbc:postgresql://localhost:5432/database\"; \n"
+"    conn = DriverManager.getConnection(url, \"postgres\", \"\"); \n"
+"    /* \n"
+"    * Add the geometry types to the connection. Note that you \n"
+"    * must cast the connection to the pgsql-specific connection \n"
+"    * implementation before calling the addDataType() method. \n"
+"    */\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"geometry\",Class."
+"forName(\"org.postgis.PGgeometry\"));\n"
+"    ((org.postgresql.PGConnection)conn).addDataType(\"box3d\",Class."
+"forName(\"org.postgis.PGbox3d\"));\n"
+"    /* \n"
+"    * Create a statement and execute a select query. \n"
+"    */ \n"
+"    Statement s = conn.createStatement(); \n"
+"    ResultSet r = s.executeQuery(\"select geom,id from geomtable\"); \n"
+"    while( r.next() ) { \n"
+"      /* \n"
+"      * Retrieve the geometry as an object then cast it to the geometry "
+"type. \n"
+"      * Print things out. \n"
+"      */ \n"
+"      PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"      int id = r.getInt(2); \n"
+"      System.out.println(\"Row \" + id + \":\");\n"
+"      System.out.println(geom.toString()); \n"
+"    } \n"
+"    s.close(); \n"
+"    conn.close(); \n"
+"  } \n"
+"catch( Exception e ) { \n"
+"  e.printStackTrace(); \n"
+"  } \n"
+"} \n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:350
+#, no-c-format
+msgid ""
+"The \"PGgeometry\" object is a wrapper object which contains a specific "
+"topological geometry object (subclasses of the abstract class \"Geometry\") "
+"depending on the type: Point, LineString, Polygon, MultiPoint, "
+"MultiLineString, MultiPolygon."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_app.xml:355
+#, no-c-format
+msgid ""
+"PGgeometry geom = (PGgeometry)r.getObject(1); \n"
+"if( geom.getType() == Geometry.POLYGON ) { \n"
+"  Polygon pl = (Polygon)geom.getGeometry(); \n"
+"  for( int r = 0; r < pl.numRings(); r++) { \n"
+"    LinearRing rng = pl.getRing(r); \n"
+"    System.out.println(\"Ring: \" + r); \n"
+"    for( int p = 0; p < rng.numPoints(); p++ ) { \n"
+"      Point pt = rng.getPoint(p); \n"
+"      System.out.println(\"Point: \" + p);\n"
+"      System.out.println(pt.toString()); \n"
+"    } \n"
+"  } \n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:357
+#, no-c-format
+msgid ""
+"The JavaDoc for the extension objects provides a reference for the various "
+"data accessor functions in the geometric objects."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:362
+#, no-c-format
+msgid "C Clients (libpq)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_app.xml:364 using_postgis_app.xml:369
+#: using_postgis_app.xml:375
+#, no-c-format
+msgid "<para>...</para>"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:367
+#, no-c-format
+msgid "Text Cursors"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_app.xml:373
+#, no-c-format
+msgid "Binary Cursors"
+msgstr ""
diff --git a/doc/po/pl/using_postgis_dataman.xml.po b/doc/po/pl/using_postgis_dataman.xml.po
new file mode 100644
index 0000000..077051b
--- /dev/null
+++ b/doc/po/pl/using_postgis_dataman.xml.po
@@ -0,0 +1,3900 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 16:31+0000\n"
+"Last-Translator: Sandro Santilli <strk at keybit.net>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: using_postgis_dataman.xml:3
+#, no-c-format
+msgid "Using PostGIS: Data Management and Queries"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:6
+#, no-c-format
+msgid "GIS Objects"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:8
+#, no-c-format
+msgid ""
+"The GIS objects supported by PostGIS are a superset of the \"Simple Features"
+"\" defined by the OpenGIS Consortium (OGC). As of version 0.9, PostGIS "
+"supports all the objects and functions specified in the OGC \"Simple "
+"Features for SQL\" specification."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:13
+#, no-c-format
+msgid ""
+"PostGIS extends the standard with support for 3DZ,3DM and 4D coordinates."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:17
+#, no-c-format
+msgid "OpenGIS WKB and WKT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:19
+#, no-c-format
+msgid ""
+"The OpenGIS specification defines two standard ways of expressing spatial "
+"objects: the Well-Known Text (WKT) form and the Well-Known Binary (WKB) "
+"form. Both WKT and WKB include information about the type of the object and "
+"the coordinates which form the object."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:24
+#, no-c-format
+msgid ""
+"Examples of the text representations (WKT) of the spatial objects of the "
+"features are as follows:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:29
+#, no-c-format
+msgid "POINT(0 0)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:33
+#, no-c-format
+msgid "LINESTRING(0 0,1 1,1 2)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:37
+#, no-c-format
+msgid "POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:41
+#, no-c-format
+msgid "MULTIPOINT((0 0),(1 2))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:45
+#, no-c-format
+msgid "MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:49
+#, no-c-format
+msgid ""
+"MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 "
+"-2,-2 -1,-1 -1)))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:54
+#, no-c-format
+msgid "GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:58
+#, no-c-format
+msgid ""
+"The OpenGIS specification also requires that the internal storage format of "
+"spatial objects include a spatial referencing system identifier (SRID). The "
+"SRID is required when creating spatial objects for insertion into the "
+"database."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:63 using_postgis_dataman.xml:151
+#, no-c-format
+msgid ""
+"Input/Output of these formats are available using the following interfaces:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:66
+#, no-c-format
+msgid ""
+"bytea WKB = ST_AsBinary(geometry);\n"
+"text WKT = ST_AsText(geometry);\n"
+"geometry = ST_GeomFromWKB(bytea WKB, SRID);\n"
+"geometry = ST_GeometryFromText(text WKT, SRID);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:68
+#, no-c-format
+msgid ""
+"For example, a valid insert statement to create and insert an OGC spatial "
+"object would be:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:71
+#, no-c-format
+msgid ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromText('POINT(-126.4 45.32)', 312), 'A Place');"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:75
+#, no-c-format
+msgid "PostGIS EWKB, EWKT and Canonical Forms"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:77
+#, no-c-format
+msgid ""
+"OGC formats only support 2d geometries, and the associated SRID is *never* "
+"embedded in the input/output representations."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:80
+#, no-c-format
+msgid ""
+"PostGIS extended formats are currently superset of OGC one (every valid WKB/"
+"WKT is a valid EWKB/EWKT) but this might vary in the future, specifically if "
+"OGC comes out with a new format conflicting with our extensions. Thus you "
+"SHOULD NOT rely on this feature!"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:85
+#, no-c-format
+msgid ""
+"PostGIS EWKB/EWKT add 3dm,3dz,4d coordinates support and embedded SRID "
+"information."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:88
+#, no-c-format
+msgid ""
+"Examples of the text representations (EWKT) of the extended spatial objects "
+"of the features are as follows. The * ones are new in this version of "
+"PostGIS:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:93
+#, no-c-format
+msgid "POINT(0 0 0) -- XYZ"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:97
+#, no-c-format
+msgid "SRID=32632;POINT(0 0) -- XY with SRID"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:101
+#, no-c-format
+msgid "POINTM(0 0 0) -- XYM"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:105
+#, no-c-format
+msgid "POINT(0 0 0 0) -- XYZM"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:109
+#, no-c-format
+msgid "SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:113
+#, no-c-format
+msgid "MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:118
+#, no-c-format
+msgid ""
+"POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:123
+#, no-c-format
+msgid ""
+"MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 "
+"0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:128
+#, no-c-format
+msgid "GEOMETRYCOLLECTIONM( POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4 5) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:132
+#, no-c-format
+msgid "MULTICURVE( (0 0, 5 5), CIRCULARSTRING(4 0, 4 4, 8 4) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:136
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 "
+"1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, "
+"1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 "
+"1, 1 1 1, 0 1 1, 0 0 1)) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:142
+#, no-c-format
+msgid "TRIANGLE ((0 0, 0 9, 9 0, 0 0))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:146
+#, no-c-format
+msgid "TIN( ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)) )"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:154
+#, no-c-format
+msgid ""
+"bytea EWKB = ST_AsEWKB(geometry);\n"
+"text EWKT = ST_AsEWKT(geometry);\n"
+"geometry = ST_GeomFromEWKB(bytea EWKB);\n"
+"geometry = ST_GeomFromEWKT(text EWKT);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:156
+#, no-c-format
+msgid ""
+"For example, a valid insert statement to create and insert a PostGIS spatial "
+"object would be:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:159
+#, no-c-format
+msgid ""
+"INSERT INTO geotable ( the_geom, the_name )\n"
+"  VALUES ( ST_GeomFromEWKT('SRID=312;POINTM(-126.4 45.32 15)'), 'A Place' )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:161
+#, no-c-format
+msgid ""
+"The \"canonical forms\" of a PostgreSQL type are the representations you get "
+"with a simple query (without any function call) and the one which is "
+"guaranteed to be accepted with a simple insert, update or copy. For the "
+"postgis 'geometry' type these are:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:164
+#, no-c-format
+msgid ""
+"- Output\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB (EWKB in hex form)\n"
+"- Input\n"
+"  - binary: EWKB\n"
+"        ascii: HEXEWKB|EWKT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:166
+#, no-c-format
+msgid ""
+"For example this statement reads EWKT and returns HEXEWKB in the process of "
+"canonical ascii input/output:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:169
+#, no-c-format
+msgid ""
+"=# SELECT 'SRID=4;POINT(0 0)'::geometry;\n"
+"\n"
+"geometry\n"
+"----------------------------------------------------\n"
+"01010000200400000000000000000000000000000000000000\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:172
+#, no-c-format
+msgid "SQL-MM Part 3"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:174
+#, no-c-format
+msgid ""
+"The SQL Multimedia Applications Spatial specification extends the simple "
+"features for SQL spec by defining a number of circularly interpolated curves."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:178
+#, no-c-format
+msgid ""
+"The SQL-MM definitions include 3dm, 3dz and 4d coordinates, but do not allow "
+"the embedding of SRID information."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:181
+#, no-c-format
+msgid ""
+"The well-known text extensions are not yet fully supported. Examples of some "
+"simple curved geometries are shown below:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:186
+#, no-c-format
+msgid "CIRCULARSTRING(0 0, 1 1, 1 0)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:187
+#, no-c-format
+msgid "CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:188
+#, no-c-format
+msgid ""
+"The CIRCULARSTRING is the basic curve type, similar to a LINESTRING in the "
+"linear world. A single segment required three points, the start and end "
+"points (first and third) and any other point on the arc. The exception to "
+"this is for a closed circle, where the start and end points are the same. In "
+"this case the second point MUST be the center of the arc, ie the opposite "
+"side of the circle. To chain arcs together, the last point of the previous "
+"arc becomes the first point of the next arc, just like in LINESTRING. This "
+"means that a valid circular string must have an odd number of points greated "
+"than 1."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:201
+#, no-c-format
+msgid "COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:202
+#, no-c-format
+msgid ""
+"A compound curve is a single, continuous curve that has both curved "
+"(circular) segments and linear segments. That means that in addition to "
+"having well-formed components, the end point of every component (except the "
+"last) must be coincident with the start point of the following component."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:210
+#, no-c-format
+msgid ""
+"CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:212
+#, no-c-format
+msgid ""
+"Example compound curve in a curve polygon: "
+"CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, "
+"1 4, 0 0)), CIRCULARSTRING(1.7 1, 1.4 0.4, 1.6 0.4, 1.6 0.5, 1.7 1) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:216
+#, no-c-format
+msgid ""
+"A CURVEPOLYGON is just like a polygon, with an outer ring and zero or more "
+"inner rings. The difference is that a ring can take the form of a circular "
+"string, linear string or compound string."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:220
+#, no-c-format
+msgid "As of PostGIS 1.4 PostGIS supports compound curves in a curve polygon."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:224
+#, no-c-format
+msgid "MULTICURVE((0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:225
+#, no-c-format
+msgid ""
+"The MULTICURVE is a collection of curves, which can include linear strings, "
+"circular strings or compound strings."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:230
+#, no-c-format
+msgid ""
+"MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, "
+"3 1, 1 1)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11)))"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:233
+#, no-c-format
+msgid ""
+"This is a collection of surfaces, which can be (linear) polygons or curve "
+"polygons."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:239
+#, no-c-format
+msgid ""
+"PostGIS prior to 1.4 does not support compound curves in a curve polygon, "
+"but PostGIS 1.4 and above do support the use of Compound Curves in a Curve "
+"Polygon."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:245
+#, no-c-format
+msgid ""
+"All floating point comparisons within the SQL-MM implementation are "
+"performed to a specified tolerance, currently 1E-8."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:251
+#, no-c-format
+msgid "PostGIS Geography Type"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:253
+#, no-c-format
+msgid ""
+"The geography type provides native support for spatial features represented "
+"on \"geographic\" coordinates (sometimes called \"geodetic\" coordinates, or "
+"\"lat/lon\", or \"lon/lat\"). Geographic coordinates are spherical "
+"coordinates expressed in angular units (degrees)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:255
+#, no-c-format
+msgid ""
+"The basis for the PostGIS geometry type is a plane. The shortest path "
+"between two points on the plane is a straight line. That means calculations "
+"on geometries (areas, distances, lengths, intersections, etc) can be "
+"calculated using cartesian mathematics and straight line vectors."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:257
+#, no-c-format
+msgid ""
+"The basis for the PostGIS geographic type is a sphere. The shortest path "
+"between two points on the sphere is a great circle arc. That means that "
+"calculations on geographies (areas, distances, lengths, intersections, etc) "
+"must be calculated on the sphere, using more complicated mathematics. For "
+"more accurate measurements, the calculations must take the actual spheroidal "
+"shape of the world into account, and the mathematics becomes very "
+"complicated indeed."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:259
+#, no-c-format
+msgid ""
+"Because the underlying mathematics is much more complicated, there are fewer "
+"functions defined for the geography type than for the geometry type. Over "
+"time, as new algorithms are added, the capabilities of the geography type "
+"will expand."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:262
+#, no-c-format
+msgid ""
+"One restriction is that it only supports WGS 84 long lat (SRID:4326). It "
+"uses a new data type called geography. None of the GEOS functions support "
+"this new type. As a workaround one can convert back and forth between "
+"geometry and geography types."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:266
+#, no-c-format
+msgid ""
+"The new geography type uses the PostgreSQL 8.3+ typmod definition format so "
+"that a table with a geography field can be added in a single step. All the "
+"standard OGC formats except for curves are supported."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:270
+#, no-c-format
+msgid "Geography Basics"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:271
+#, no-c-format
+msgid ""
+"The geography type only supports the simplest of simple features. Standard "
+"geometry type data will autocast to geography if it is of SRID 4326. You can "
+"also use the EWKT and EWKB conventions to insert data."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:276
+#, no-c-format
+msgid "POINT: Creating a table with 2d point geometry:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:277
+#, no-c-format
+msgid ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINT,4326) );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:278
+#, no-c-format
+msgid "Creating a table with z coordinate point"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:279
+#, no-c-format
+msgid ""
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINTZ,4326) );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:282
+#, no-c-format
+msgid "LINESTRING"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:285
+#, no-c-format
+msgid "POLYGON"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:288
+#, no-c-format
+msgid "MULTIPOINT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:291
+#, no-c-format
+msgid "MULTILINESTRING"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:294
+#, no-c-format
+msgid "MULTIPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:297
+#, no-c-format
+msgid "GEOMETRYCOLLECTION"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:301
+#, no-c-format
+msgid ""
+"The new geography fields don't get registered in the "
+"<varname>geometry_columns</varname>. They get registered in a new view "
+"called geography_columns which is a view against the system catalogs so is "
+"always automatically kept up to date without need for an AddGeom... like "
+"function."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:305
+#, no-c-format
+msgid ""
+"Now, check the \"geography_columns\" view and see that your table is listed."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:307
+#, no-c-format
+msgid ""
+"You can create a new table with a GEOGRAPHY column using the CREATE TABLE "
+"syntax. Unlike GEOMETRY, there is no need to run a separate "
+"AddGeometryColumns() process to register the column in metadata."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:311
+#, no-c-format
+msgid ""
+"CREATE TABLE global_points ( \n"
+"    id SERIAL PRIMARY KEY,\n"
+"    name VARCHAR(64),\n"
+"    location GEOGRAPHY(POINT,4326)\n"
+"  );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:314
+#, no-c-format
+msgid ""
+"Note that the location column has type GEOGRAPHY and that geography type "
+"supports two optional modifier: a type modifier that restricts the kind of "
+"shapes and dimensions allowed in the column; an SRID modifier that restricts "
+"the coordinate reference identifier to a particular number."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:315
+#, no-c-format
+msgid ""
+"Allowable values for the type modifier are: POINT, LINESTRING, POLYGON, "
+"MULTIPOINT, MULTILINESTRING, MULTIPOLYGON. The modifier also supports "
+"dimensionality restrictions through suffixes: Z, M and ZM. So, for example a "
+"modifier of 'LINESTRINGM' would only allow line strings with three "
+"dimensions in, and would treat the third dimension as a measure. Similarly, "
+"'POINTZM' would expect four dimensional data."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:317
+#, no-c-format
+msgid ""
+"The SRID modifier is currently of limited use: only 4326 (WGS84) is allowed "
+"as a value. If you do not specify an SRID, the a value 0 (undefined "
+"spheroid) will be used, and all calculations will proceed using WGS84 "
+"anyways."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:318
+#, no-c-format
+msgid ""
+"In the future, alternate SRIDs will allow calculations on spheroids other "
+"than WGS84."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:319
+#, no-c-format
+msgid ""
+"Once you have created your table, you can see it in the GEOGRAPHY_COLUMNS "
+"table:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:320
+#, no-c-format
+msgid ""
+"-- See the contents of the metadata view\n"
+"SELECT * FROM geography_columns;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:322
+#, no-c-format
+msgid ""
+"You can insert data into the table the same as you would if it was using a "
+"GEOMETRY column:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:324
+#, no-c-format
+msgid ""
+"-- Add some data into the test table\n"
+"INSERT INTO global_points (name, location) VALUES ('Town', "
+"ST_GeographyFromText('SRID=4326;POINT(-110 30)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('Forest', "
+"ST_GeographyFromText('SRID=4326;POINT(-109 29)') );\n"
+"INSERT INTO global_points (name, location) VALUES ('London', "
+"ST_GeographyFromText('SRID=4326;POINT(0 49)') );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:326
+#, no-c-format
+msgid ""
+"Creating an index works the same as GEOMETRY. PostGIS will note that the "
+"column type is GEOGRAPHY and create an appropriate sphere-based index "
+"instead of the usual planar index used for GEOMETRY."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:329
+#, no-c-format
+msgid ""
+"-- Index the test table with a spherical index\n"
+"  CREATE INDEX global_points_gix ON global_points USING GIST ( location );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:332
+#, no-c-format
+msgid ""
+"Query and measurement functions use units of meters. So distance parameters "
+"should be expressed in meters, and return values should be expected in "
+"meters (or square meters for areas)."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:334
+#, no-c-format
+msgid ""
+"-- Show a distance query and note, London is outside the 1000km tolerance\n"
+"  SELECT name FROM global_points WHERE ST_DWithin(location, "
+"ST_GeographyFromText('SRID=4326;POINT(-110 29)'), 1000000);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:337
+#, no-c-format
+msgid ""
+"You can see the power of GEOGRAPHY in action by calculating the how close a "
+"plane flying from Seattle to London (LINESTRING(-122.33 47.606, 0.0 51.5)) "
+"comes to Reykjavik (POINT(-21.96 64.15))."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:339
+#, no-c-format
+msgid ""
+"-- Distance calculation using GEOGRAPHY (122.2km)\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geography, "
+"'POINT(-21.96 64.15)':: geography);"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:342
+#, no-c-format
+msgid ""
+"-- Distance calculation using GEOMETRY (13.3 \"degrees\")\n"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, "
+"'POINT(-21.96 64.15)':: geometry);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:345
+#, no-c-format
+msgid ""
+"The GEOGRAPHY type calculates the true shortest distance over the sphere "
+"between Reykjavik and the great circle flight path between Seattle and "
+"London."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:347
+#, no-c-format
+msgid ""
+"<ulink url=\"http://gc.kls2.com/cgi-bin/gc?PATH=SEA-LHR\">Great Circle "
+"mapper</ulink> The GEOMETRY type calculates a meaningless cartesian distance "
+"between Reykjavik and the straight line path from Seattle to London plotted "
+"on a flat map of the world. The nominal units of the result might be called "
+"\"degrees\", but the result doesn't correspond to any true angular "
+"difference between the points, so even calling them \"degrees\" is "
+"inaccurate."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:351
+#, no-c-format
+msgid "When to use Geography Data type over Geometry data type"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:352
+#, no-c-format
+msgid ""
+"The new GEOGRAPHY type allows you to store data in longitude/latitude "
+"coordinates, but at a cost: there are fewer functions defined on GEOGRAPHY "
+"than there are on GEOMETRY; those functions that are defined take more CPU "
+"time to execute."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:353
+#, no-c-format
+msgid ""
+"The type you choose should be conditioned on the expected working area of "
+"the application you are building. Will your data span the globe or a large "
+"continental area, or is it local to a state, county or municipality?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:355
+#, no-c-format
+msgid ""
+"If your data is contained in a small area, you might find that choosing an "
+"appropriate projection and using GEOMETRY is the best solution, in terms of "
+"performance and functionality available."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:356
+#, no-c-format
+msgid ""
+"If your data is global or covers a continental region, you may find that "
+"GEOGRAPHY allows you to build a system without having to worry about "
+"projection details. You store your data in longitude/latitude, and use the "
+"functions that have been defined on GEOGRAPHY."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:358
+#, no-c-format
+msgid ""
+"If you don't understand projections, and you don't want to learn about them, "
+"and you're prepared to accept the limitations in functionality available in "
+"GEOGRAPHY, then it might be easier for you to use GEOGRAPHY than GEOMETRY. "
+"Simply load your data up as longitude/latitude and go from there."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:361
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"PostGIS_TypeFunctionMatrix\"/> for compare between "
+"what is supported for Geography vs. Geometry. For a brief listing and "
+"description of Geography functions, refer to <xref linkend="
+"\"PostGIS_GeographyFunctions\"/>"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:367
+#, no-c-format
+msgid "Geography Advanced FAQ"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:371
+#, no-c-format
+msgid "Do you calculate on the sphere or the spheroid?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:375
+#, no-c-format
+msgid ""
+"By default, all distance and area calculations are done on the spheroid. You "
+"should find that the results of calculations in local areas match up will "
+"with local planar results in good local projections. Over larger areas, the "
+"spheroidal calculations will be more accurate than any calculation done on a "
+"projected plane."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:378
+#, no-c-format
+msgid ""
+"All the geography functions have the option of using a sphere calculation, "
+"by setting a final boolean parameter to 'FALSE'. This will somewhat speed up "
+"calculations, particularly for cases where the geometries are very simple."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:384
+#, no-c-format
+msgid "What about the date-line and the poles?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:388
+#, no-c-format
+msgid ""
+"All the calculations have no conception of date-line or poles, the "
+"coordinates are spherical (longitude/latitude) so a shape that crosses the "
+"dateline is, from a calculation point of view, no different from any other "
+"shape."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:396
+#, no-c-format
+msgid "What is the longest arc you can process?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:400
+#, no-c-format
+msgid ""
+"We use great circle arcs as the \"interpolation line\" between two points. "
+"That means any two points are actually joined up two ways, depending on "
+"which direction you travel along the great circle. All our code assumes that "
+"the points are joined by the *shorter* of the two paths along the great "
+"circle. As a consequence, shapes that have arcs of more than 180 degrees "
+"will not be correctly modelled."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:407
+#, no-c-format
+msgid ""
+"Why is it so slow to calculate the area of Europe / Russia / insert big "
+"geographic region here ?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:411
+#, no-c-format
+msgid ""
+"Because the polygon is so darned huge! Big areas are bad for two reasons: "
+"their bounds are huge, so the index tends to pull the feature no matter what "
+"query you run; the number of vertices is huge, and tests (distance, "
+"containment) have to traverse the vertex list at least once and sometimes N "
+"times (with N being the number of vertices in the other candidate feature)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:416
+#, no-c-format
+msgid ""
+"As with GEOMETRY, we recommend that when you have very large polygons, but "
+"are doing queries in small areas, you \"denormalize\" your geometric data "
+"into smaller chunks so that the index can effectively subquery parts of the "
+"object and so queries don't have to pull out the whole object every time. "
+"Just because you *can* store all of Europe in one polygon doesn't mean you "
+"*should*."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:425
+#, no-c-format
+msgid "Using OpenGIS Standards"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:427
+#, no-c-format
+msgid ""
+"The OpenGIS \"Simple Features Specification for SQL\" defines standard GIS "
+"object types, the functions required to manipulate them, and a set of meta-"
+"data tables. In order to ensure that meta-data remain consistent, operations "
+"such as creating and removing a spatial column are carried out through "
+"special procedures defined by OpenGIS."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:433
+#, no-c-format
+msgid ""
+"There are two OpenGIS meta-data tables: <varname>SPATIAL_REF_SYS</varname> "
+"and <varname>GEOMETRY_COLUMNS</varname>. The <varname>SPATIAL_REF_SYS</"
+"varname> table holds the numeric IDs and textual descriptions of coordinate "
+"systems used in the spatial database."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:440
+#, no-c-format
+msgid "The SPATIAL_REF_SYS Table and Spatial Reference Systems"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:442
+#, no-c-format
+msgid ""
+"The spatial_ref_sys table is a PostGIS included and OGC compliant database "
+"table that lists over 3000 known <ulink url=\"http://www.sharpgis.net/"
+"post/2007/05/Spatial-references2c-coordinate-systems2c-projections2c-"
+"datums2c-ellipsoids-e28093-confusing.aspx\">spatial reference systems</"
+"ulink> and details needed to transform/reproject between them."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:446
+#, no-c-format
+msgid ""
+"Although the PostGIS spatial_ref_sys table contains over 3000 of the more "
+"commonly used spatial reference system definitions that can be handled by "
+"the proj library, it does not contain all known to man and you can even "
+"define your own custom projection if you are familiar with proj4 constructs. "
+"Keep in mind that most spatial reference systems are regional and have no "
+"meaning when used outside of the bounds they were intended for."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:449
+#, no-c-format
+msgid ""
+"An excellent resource for finding spatial reference systems not defined in "
+"the core set is <ulink url=\"http://spatialreference.org/\">http://"
+"spatialreference.org/</ulink>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:451
+#, no-c-format
+msgid ""
+"Some of the more commonly used spatial reference systems are: <ulink url="
+"\"http://spatialreference.org/ref/epsg/4326/\">4326 - WGS 84 Long Lat</"
+"ulink>, <ulink url=\"http://spatialreference.org/ref/epsg/4269/\">4269 - NAD "
+"83 Long Lat</ulink>, <ulink url=\"http://spatialreference.org/ref/epsg/3395/"
+"\">3395 - WGS 84 World Mercator</ulink>, <ulink url=\"http://"
+"spatialreference.org/ref/epsg/2163/\">2163 - US National Atlas Equal Area</"
+"ulink>, Spatial reference systems for each NAD 83, WGS 84 UTM zone - UTM "
+"zones are one of the most ideal for measurement, but only cover 6-degree "
+"regions."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:457
+#, no-c-format
+msgid ""
+"Various US state plane spatial reference systems (meter or feet based) - "
+"usually one or 2 exists per US state. Most of the meter ones are in the core "
+"set, but many of the feet based ones or ESRI created ones you will need to "
+"pull from <ulink url=\"http://spatialreference.org\">spatialreference.org</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:461
+#, no-c-format
+msgid ""
+"For details on determining which UTM zone to use for your area of interest, "
+"check out the <ulink url=\"http://trac.osgeo.org/postgis/wiki/"
+"UsersWikiplpgsqlfunctionsDistance\">utmzone PostGIS plpgsql helper function</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:465
+#, no-c-format
+msgid "The <varname>SPATIAL_REF_SYS</varname> table definition is as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:468
+#, no-c-format
+msgid ""
+"CREATE TABLE spatial_ref_sys (\n"
+"  srid       INTEGER NOT NULL PRIMARY KEY,\n"
+"  auth_name  VARCHAR(256),\n"
+"  auth_srid  INTEGER,\n"
+"  srtext     VARCHAR(2048),\n"
+"  proj4text  VARCHAR(2048)\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:470
+#, no-c-format
+msgid "The <varname>SPATIAL_REF_SYS</varname> columns are as follows:"
+msgstr ""
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:475
+#, no-c-format
+msgid "<ulink url=\"http://en.wikipedia.org/wiki/SRID\">SRID</ulink>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:478
+#, no-c-format
+msgid ""
+"An integer value that uniquely identifies the Spatial Referencing System "
+"(SRS) within the database."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:484
+#, no-c-format
+msgid "AUTH_NAME"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:487
+#, no-c-format
+msgid ""
+"The name of the standard or standards body that is being cited for this "
+"reference system. For example, \"EPSG\" would be a valid <varname>AUTH_NAME</"
+"varname>."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:494
+#, no-c-format
+msgid "AUTH_SRID"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:497
+#, no-c-format
+msgid ""
+"The ID of the Spatial Reference System as defined by the Authority cited in "
+"the <varname>AUTH_NAME</varname>. In the case of EPSG, this is where the "
+"EPSG projection code would go."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:504
+#, no-c-format
+msgid "SRTEXT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:507
+#, no-c-format
+msgid ""
+"The Well-Known Text representation of the Spatial Reference System. An "
+"example of a WKT SRS representation is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:510
+#, no-c-format
+msgid ""
+"PROJCS[\"NAD83 / UTM Zone 10N\",\n"
+"  GEOGCS[\"NAD83\",\n"
+"        DATUM[\"North_American_Datum_1983\",\n"
+"          SPHEROID[\"GRS 1980\",6378137,298.257222101]\n"
+"        ],\n"
+"        PRIMEM[\"Greenwich\",0],\n"
+"        UNIT[\"degree\",0.0174532925199433]\n"
+"  ],\n"
+"  PROJECTION[\"Transverse_Mercator\"],\n"
+"  PARAMETER[\"latitude_of_origin\",0],\n"
+"  PARAMETER[\"central_meridian\",-123],\n"
+"  PARAMETER[\"scale_factor\",0.9996],\n"
+"  PARAMETER[\"false_easting\",500000],\n"
+"  PARAMETER[\"false_northing\",0],\n"
+"  UNIT[\"metre\",1]\n"
+"]"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:512
+#, no-c-format
+msgid ""
+"For a listing of EPSG projection codes and their corresponding WKT "
+"representations, see <ulink url=\"http://www.opengeospatial.org/\">http://"
+"www.opengeospatial.org/</ulink>. For a discussion of WKT in general, see the "
+"OpenGIS \"Coordinate Transformation Services Implementation Specification\" "
+"at <ulink url=\"http://www.opengeospatial.org/standards\">http://www."
+"opengeospatial.org/standards</ulink>. For information on the European "
+"Petroleum Survey Group (EPSG) and their database of spatial reference "
+"systems, see <ulink url=\"http://www.epsg.org/\">http://www.epsg.org</ulink>."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:525
+#, no-c-format
+msgid "PROJ4TEXT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:528
+#, no-c-format
+msgid ""
+"PostGIS uses the Proj4 library to provide coordinate transformation "
+"capabilities. The <varname>PROJ4TEXT</varname> column contains the Proj4 "
+"coordinate definition string for a particular SRID. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:533
+#, no-c-format
+msgid "+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:535
+#, no-c-format
+msgid ""
+"For more information about, see the Proj4 web site at <ulink url=\"http://"
+"trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>. The "
+"<filename>spatial_ref_sys.sql</filename> file contains both <varname>SRTEXT</"
+"varname> and <varname>PROJ4TEXT</varname> definitions for all EPSG "
+"projections."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:546
+#, no-c-format
+msgid "The GEOMETRY_COLUMNS VIEW"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:548
+#, no-c-format
+msgid ""
+"In versions of PostGIS prior to 2.0.0, geometry_columns was a table that "
+"could be directly edited, and sometimes got out of synch with the actual "
+"definition of the geometry columns. In PostGIS 2.0.0, "
+"<varname>GEOMETRY_COLUMNS</varname> became a view with the same front-facing "
+"structure as prior versions, but reading from database system catalogs Its "
+"structure is as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:552
+#, no-c-format
+msgid "\\d geometry_columns"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:553
+#, no-c-format
+msgid ""
+"View \"public.geometry_columns\"\n"
+"      Column       |          Type          | Modifiers\n"
+"-------------------+------------------------+-----------\n"
+" f_table_catalog   | character varying(256) |\n"
+" f_table_schema    | character varying(256) |\n"
+" f_table_name      | character varying(256) |\n"
+" f_geometry_column | character varying(256) |\n"
+" coord_dimension   | integer                |\n"
+" srid              | integer                |\n"
+" type              | character varying(30)  |"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:555
+#, no-c-format
+msgid "The column meanings have not changed from prior versions and are:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:559
+#, no-c-format
+msgid "F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:562
+#, no-c-format
+msgid ""
+"The fully qualified name of the feature table containing the geometry "
+"column. Note that the terms \"catalog\" and \"schema\" are Oracle-ish. There "
+"is not PostgreSQL analogue of \"catalog\" so that column is left blank -- "
+"for \"schema\" the PostgreSQL schema name is used (<varname>public</varname> "
+"is the default)."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:571
+#, no-c-format
+msgid "F_GEOMETRY_COLUMN"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:574
+#, no-c-format
+msgid "The name of the geometry column in the feature table."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:579
+#, no-c-format
+msgid "COORD_DIMENSION"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:582
+#, no-c-format
+msgid "The spatial dimension (2, 3 or 4 dimensional) of the column."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:588
+#, no-c-format
+msgid "<term>SRID</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:591
+#, no-c-format
+msgid ""
+"The ID of the spatial reference system used for the coordinate geometry in "
+"this table. It is a foreign key reference to the <varname>SPATIAL_REF_SYS</"
+"varname>."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:598
+#, no-c-format
+msgid "TYPE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:601
+#, no-c-format
+msgid ""
+"The type of the spatial object. To restrict the spatial column to a single "
+"type, use one of: POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, "
+"MULTIPOLYGON, GEOMETRYCOLLECTION or corresponding XYM versions POINTM, "
+"LINESTRINGM, POLYGONM, MULTIPOINTM, MULTILINESTRINGM, MULTIPOLYGONM, "
+"GEOMETRYCOLLECTIONM. For heterogeneous (mixed-type) collections, you can use "
+"\"GEOMETRY\" as the type."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:610
+#, no-c-format
+msgid ""
+"This attribute is (probably) not part of the OpenGIS specification, but is "
+"required for ensuring type homogeneity."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:620
+#, no-c-format
+msgid "Creating a Spatial Table"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:622
+#, no-c-format
+msgid ""
+"Creating a table with spatial data, can be done in one step. As shown in the "
+"following example which creates a roads table with a 2D linestring geometry "
+"column in WGS84 long lat"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:624
+#, no-c-format
+msgid ""
+"CREATE TABLE ROADS ( ID int4\n"
+"                  , ROAD_NAME varchar(25), geom geometry(LINESTRING,4326) );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:626
+#, no-c-format
+msgid ""
+"We can add additional columns using standard ALTER TABLE command as we do in "
+"this next example where we add a 3-D linestring."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:627
+#, no-c-format
+msgid "ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:629
+#, no-c-format
+msgid ""
+"For backwards compability, you can still create a spatial table in two "
+"stages using the management functions."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:633
+#, no-c-format
+msgid "Create a normal non-spatial table."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:635
+#, no-c-format
+msgid ""
+"For example: <command>CREATE TABLE ROADS ( ID int4, ROAD_NAME varchar(25) )</"
+"command>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:640
+#, no-c-format
+msgid ""
+"Add a spatial column to the table using the OpenGIS \"AddGeometryColumn\" "
+"function. Refer to <xref linkend=\"AddGeometryColumn\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:643
+#, no-c-format
+msgid ""
+"The syntax is: <programlisting>AddGeometryColumn(\n"
+"  <schema_name>,\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")</programlisting> Or, using current schema:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:643
+#, no-c-format
+msgid ""
+"AddGeometryColumn(\n"
+"  <table_name>,\n"
+"  <column_name>,\n"
+"  <srid>,\n"
+"  <type>,\n"
+"  <dimension>\n"
+")"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:645
+#, no-c-format
+msgid ""
+"Example1: <command>SELECT AddGeometryColumn('public', 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:648
+#, no-c-format
+msgid ""
+"Example2: <command>SELECT AddGeometryColumn( 'roads', 'geom', 423, "
+"'LINESTRING', 2)</command>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:653
+#, no-c-format
+msgid ""
+"Here is an example of SQL used to create a table and add a spatial column "
+"(assuming that an SRID of 128 exists already):"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:656
+#, no-c-format
+msgid ""
+"CREATE TABLE parks (\n"
+"  park_id    INTEGER,\n"
+"  park_name  VARCHAR,\n"
+"  park_date  DATE,\n"
+"  park_type  VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn('parks', 'park_geom', 128, 'MULTIPOLYGON', 2 );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:658
+#, no-c-format
+msgid ""
+"Here is another example, using the generic \"geometry\" type and the "
+"undefined SRID value of 0:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:661
+#, no-c-format
+msgid ""
+"CREATE TABLE roads (\n"
+"  road_id INTEGER,\n"
+"  road_name VARCHAR\n"
+");\n"
+"SELECT AddGeometryColumn( 'roads', 'roads_geom', 0, 'GEOMETRY', 3 );"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:665
+#, no-c-format
+msgid "Manually Registering Geometry Columns in geometry_columns"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:666
+#, no-c-format
+msgid ""
+"The AddGeometryColumn() approach creates a geometry column and also "
+"registers the new column in the geometry_columns table. If your software "
+"utilizes geometry_columns, then any geometry columns you need to query by "
+"must be registered in this view. Starting with PostGIS 2.0, geometry_columns "
+"is no longer editable and all geometry columns are autoregistered."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:670
+#, no-c-format
+msgid ""
+"However they may be registered as a generic geometry column if the column "
+"was not defined as a specific type during creation."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:672
+#, no-c-format
+msgid ""
+"Two of the cases where this may happen, but you can't use AddGeometryColumn, "
+"is in the case of SQL Views and bulk inserts. For these cases, you can "
+"correct the registration in the geometry_columns table by constraining the "
+"column. Note in PostGIS 2.0+ if your column is typmod based, the creation "
+"process would register it correctly, so no need to do anything."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:677
+#, no-c-format
+msgid ""
+"--Lets say you have a view created like this\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395) As geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- For it to register correctly in PostGIS 2.0+ \n"
+"-- You need to cast the geometry\n"
+"--\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Geometry, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;\n"
+"        \n"
+"-- If you know the geometry type for sure is a 2D POLYGON then you could do\n"
+"DROP VIEW public.vwmytablemercator;\n"
+"CREATE VIEW  public.vwmytablemercator AS\n"
+"        SELECT gid, ST_Transform(geom,3395)::geometry(Polygon, 3395) As "
+"geom, f_name\n"
+"        FROM public.mytable;"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:678
+#, no-c-format
+msgid ""
+"--Lets say you created a derivative table by doing a bulk insert\n"
+"SELECT poi.gid, poi.geom, citybounds.city_name\n"
+"INTO myschema.my_special_pois\n"
+"FROM poi INNER JOIN citybounds ON ST_Intersects(citybounds.geom, poi.geom);\n"
+"\n"
+"--Create 2d index on new table\n"
+"CREATE INDEX idx_myschema_myspecialpois_geom_gist\n"
+"  ON myschema.my_special_pois USING gist(geom);\n"
+"  \n"
+"-- If your points are 3D points or 3M points, \n"
+"-- then you might want to create an nd index instead of a 2d index\n"
+"-- like so\n"
+"CREATE INDEX my_special_pois_geom_gist_nd \n"
+"        ON my_special_pois USING gist(geom gist_geometry_ops_nd);\n"
+"\n"
+"--To manually register this new table's geometry column in geometry_columns\n"
+"-- Note that this approach will work for both PostGIS 2.0+ and PostGIS 1.4+\n"
+"-- For PostGIS 2.0 it will also change the underlying structure of the table "
+"to\n"
+"-- to make the column typmod based.\n"
+"-- For PostGIS prior to 2.0, this technique can also be used to register "
+"views\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass); \n"
+"\n"
+"--If you are using PostGIS 2.0 and for whatever reason, you\n"
+"-- you need the old constraint based definition behavior \n"
+"-- (such as case of inherited tables where all children do not have the same "
+"type and srid)\n"
+"-- set new optional  use_typmod argument to false\n"
+"SELECT populate_geometry_columns('myschema.my_special_pois'::regclass, "
+"false);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:680
+#, no-c-format
+msgid ""
+"Although the old-constraint based method is still supported, a constraint-"
+"based geomentry column used directly in a view, will not register correctly "
+"in geometry_columns, as will a typmod one. In this example we define a "
+"column using typmod and another using constraints."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:683
+#, no-c-format
+msgid ""
+"CREATE TABLE pois_ny(gid SERIAL PRIMARY KEY\n"
+"   , poi_name text, cat varchar(20)\n"
+"   , geom geometry(POINT,4326) );\n"
+"SELECT AddGeometryColumn('pois_ny', 'geom_2160', 2160, 'POINT', 2, false);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:684
+#, no-c-format
+msgid "If we run in psql"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:685
+#, no-c-format
+msgid "\\d pois_ny;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:686
+#, no-c-format
+msgid ""
+"We observe they are defined differently -- one is typmod, one is constraint"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:687
+#, no-c-format
+msgid ""
+"Table \"public.pois_ny\"\n"
+"  Column   |         Type          |                       Modifiers\n"
+"\n"
+"-----------+-----------------------"
+"+------------------------------------------------------\n"
+" gid       | integer               | not null default "
+"nextval('pois_ny_gid_seq'::regclass)\n"
+" poi_name  | text                  |\n"
+" cat       | character varying(20) |\n"
+" geom      | geometry(Point,4326)  |\n"
+" geom_2160 | geometry              |\n"
+"Indexes:\n"
+"    \"pois_ny_pkey\" PRIMARY KEY, btree (gid)\n"
+"Check constraints:\n"
+"    \"enforce_dims_geom_2160\" CHECK (st_ndims(geom_2160) = 2)\n"
+"    \"enforce_geotype_geom_2160\" CHECK (geometrytype(geom_2160) = 'POINT'::"
+"text \n"
+"        OR geom_2160 IS NULL)\n"
+"    \"enforce_srid_geom_2160\" CHECK (st_srid(geom_2160) = 2160)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:688
+#, no-c-format
+msgid "In geometry_columns, they both register correctly"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:689
+#, no-c-format
+msgid ""
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'pois_ny';"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:690
+#, no-c-format
+msgid ""
+"f_table_name | f_geometry_column | srid | type\n"
+"-------------+-------------------+------+-------\n"
+"pois_ny      | geom              | 4326 | POINT\n"
+"pois_ny      | geom_2160         | 2160 | POINT"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:691
+#, no-c-format
+msgid "However -- if we were to create a view like this"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:692
+#, no-c-format
+msgid ""
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT * \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"  \n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:693
+#, no-c-format
+msgid ""
+"The typmod based geom view column registers correctly, but the constraint "
+"based one does not."
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:695
+#, no-c-format
+msgid ""
+"f_table_name   | f_geometry_column | srid |   type\n"
+"------------------+-------------------+------+----------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         |    0 | GEOMETRY"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:697
+#, no-c-format
+msgid ""
+"This may change in future versions of PostGIS, but for now To force the "
+"constraint based view column to register correctly, we need to do this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:699
+#, no-c-format
+msgid ""
+"DROP VIEW vw_pois_ny_parks;\n"
+"CREATE VIEW vw_pois_ny_parks AS \n"
+"SELECT gid, poi_name, cat\n"
+"  , geom\n"
+"  , geom_2160::geometry(POINT,2160) As geom_2160 \n"
+"  FROM pois_ny \n"
+"  WHERE cat='park';\n"
+"SELECT f_table_name, f_geometry_column, srid, type \n"
+"        FROM geometry_columns \n"
+"        WHERE f_table_name = 'vw_pois_ny_parks';"
+msgstr ""
+
+#. Tag: screen
+#: using_postgis_dataman.xml:700
+#, no-c-format
+msgid ""
+"f_table_name   | f_geometry_column | srid | type\n"
+"------------------+-------------------+------+-------\n"
+" vw_pois_ny_parks | geom              | 4326 | POINT\n"
+" vw_pois_ny_parks | geom_2160         | 2160 | POINT"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:704
+#, no-c-format
+msgid "Ensuring OpenGIS compliancy of geometries"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:706
+#, no-c-format
+msgid ""
+"PostGIS is compliant with the Open Geospatial Consortium’s (OGC) OpenGIS "
+"Specifications. As such, many PostGIS methods require, or more accurately, "
+"assume that geometries that are operated on are both simple and valid. For "
+"example, it does not make sense to calculate the area of a polygon that has "
+"a hole defined outside of the polygon, or to construct a polygon from a non-"
+"simple boundary line."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:713
+#, no-c-format
+msgid ""
+"According to the OGC Specifications, a <emphasis>simple</emphasis> geometry "
+"is one that has no anomalous geometric points, such as self intersection or "
+"self tangency and primarily refers to 0 or 1-dimensional geometries (i.e. "
+"<varname>[MULTI]POINT, [MULTI]LINESTRING</varname>). Geometry validity, on "
+"the other hand, primarily refers to 2-dimensional geometries (i.e. "
+"<varname>[MULTI]POLYGON)</varname> and defines the set of assertions that "
+"characterizes a valid polygon. The description of each geometric class "
+"includes specific conditions that further detail geometric simplicity and "
+"validity."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:723
+#, no-c-format
+msgid ""
+"A <varname>POINT</varname> is inheritably <emphasis>simple</emphasis> as a 0-"
+"dimensional geometry object."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:726
+#, no-c-format
+msgid ""
+"<varname>MULTIPOINT</varname>s are <emphasis>simple</emphasis> if no two "
+"coordinates (<varname>POINT</varname>s) are equal (have identical coordinate "
+"values)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:730
+#, no-c-format
+msgid ""
+"A <varname>LINESTRING</varname> is <emphasis>simple</emphasis> if it does "
+"not pass through the same <varname>POINT</varname> twice (except for the "
+"endpoints, in which case it is referred to as a linear ring and additionally "
+"considered closed)."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:745
+#, no-c-format
+msgid "<emphasis>(a)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:755
+#, no-c-format
+msgid "<emphasis>(b)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:767
+#, no-c-format
+msgid "<emphasis>(c)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:777
+#, no-c-format
+msgid "<emphasis>(d)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:787
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(a)</emphasis> and <emphasis role=\"bold\">(c)</"
+"emphasis> are simple <varname>LINESTRING</varname>s, <emphasis role=\"bold"
+"\">(b)</emphasis> and <emphasis role=\"bold\">(d)</emphasis> are not."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:796
+#, no-c-format
+msgid ""
+"A <varname>MULTILINESTRING</varname> is <emphasis>simple</emphasis> only if "
+"all of its elements are simple and the only intersection between any two "
+"elements occurs at <varname>POINT</varname>s that are on the boundaries of "
+"both elements."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:811
+#, no-c-format
+msgid "<emphasis>(e)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:821
+#, no-c-format
+msgid "<emphasis>(f)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:831
+#, no-c-format
+msgid "<emphasis>(g)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:841
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(e)</emphasis> and <emphasis role=\"bold\">(f)</"
+"emphasis> are simple <varname>MULTILINESTRING</varname>s, <emphasis role="
+"\"bold\">(g)</emphasis> is not."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:850
+#, no-c-format
+msgid ""
+"By definition, a <varname>POLYGON</varname> is always <emphasis>simple</"
+"emphasis>. It is <emphasis>valid</emphasis> if no two rings in the boundary "
+"(made up of an exterior ring and interior rings) cross. The boundary of a "
+"<varname>POLYGON</varname> may intersect at a <varname>POINT</varname> but "
+"only as a tangent (i.e. not on a line). A <varname>POLYGON</varname> may not "
+"have cut lines or spikes and the interior rings must be contained entirely "
+"within the exterior ring."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:868
+#, no-c-format
+msgid "<emphasis>(h)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:878
+#, no-c-format
+msgid "<emphasis>(i)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:888
+#, no-c-format
+msgid "<emphasis>(j)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:900
+#, no-c-format
+msgid "<emphasis>(k)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:910
+#, no-c-format
+msgid "<emphasis>(l)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:920
+#, no-c-format
+msgid "<emphasis>(m)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:929
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(h)</emphasis> and <emphasis role=\"bold\">(i)</"
+"emphasis> are valid <varname>POLYGON</varname>s, <emphasis role=\"bold\">(j-"
+"m)</emphasis> cannot be represented as single <varname>POLYGON</varname>s, "
+"but <emphasis role=\"bold\">(j)</emphasis> and <emphasis role=\"bold\">(m)</"
+"emphasis> could be represented as a valid <varname>MULTIPOLYGON</varname>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:941
+#, no-c-format
+msgid ""
+"A <varname>MULTIPOLYGON</varname> is <emphasis>valid</emphasis> if and only "
+"if all of its elements are valid and the interiors of no two elements "
+"intersect. The boundaries of any two elements may touch, but only at a "
+"finite number of <varname>POINT</varname>s."
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:956
+#, no-c-format
+msgid "<emphasis>(n)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:966
+#, no-c-format
+msgid "<emphasis>(o)</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:976
+#, no-c-format
+msgid "<emphasis>(p)</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:985
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">(n)</emphasis> and <emphasis role=\"bold\">(o)</"
+"emphasis> are not valid <varname>MULTIPOLYGON</varname>s. <emphasis role="
+"\"bold\">(p)</emphasis>, however, is valid."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:994
+#, no-c-format
+msgid ""
+"Most of the functions implemented by the GEOS library rely on the assumption "
+"that your geometries are valid as specified by the OpenGIS Simple Feature "
+"Specification. To check simplicity or validity of geometries you can use the "
+"<link linkend=\"ST_IsSimple\">ST_IsSimple()</link> and <link linkend="
+"\"ST_IsValid\">ST_IsValid()</link>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1000
+#, no-c-format
+msgid ""
+"-- Typically, it doesn't make sense to check\n"
+"-- for validity on linear features since it will always return TRUE.\n"
+"-- But in this example, PostGIS extends the definition of the OGC IsValid\n"
+"-- by returning false if a LineString has less than 2 *distinct* vertices.\n"
+"gisdb=# SELECT\n"
+"   ST_IsValid('LINESTRING(0 0, 1 1)'),\n"
+"   ST_IsValid('LINESTRING(0 0, 0 0, 0 0)');\n"
+"\n"
+" st_isvalid | st_isvalid\n"
+"------------+-----------\n"
+"      t     |     f"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1002
+#, no-c-format
+msgid ""
+"By default, PostGIS does not apply this validity check on geometry input, "
+"because testing for validity needs lots of CPU time for complex geometries, "
+"especially polygons. If you do not trust your data sources, you can manually "
+"enforce such a check to your tables by adding a check constraint:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1008
+#, no-c-format
+msgid ""
+"ALTER TABLE mytable\n"
+"  ADD CONSTRAINT geometry_valid_check\n"
+"        CHECK (ST_IsValid(the_geom));"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1010
+#, no-c-format
+msgid ""
+"If you encounter any strange error messages such as \"GEOS Intersection() "
+"threw an error!\" or \"JTS Intersection() threw an error!\" when calling "
+"PostGIS functions with valid input geometries, you likely found an error in "
+"either PostGIS or one of the libraries it uses, and you should contact the "
+"PostGIS developers. The same is true if a PostGIS function returns an "
+"invalid geometry for valid input."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1018
+#, no-c-format
+msgid ""
+"Strictly compliant OGC geometries cannot have Z or M values. The <link "
+"linkend=\"ST_IsValid\">ST_IsValid()</link> function won't consider higher "
+"dimensioned geometries invalid! Invocations of <link linkend="
+"\"AddGeometryColumn\">AddGeometryColumn()</link> will add a constraint "
+"checking geometry dimensions, so it is enough to specify 2 there."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1028
+#, no-c-format
+msgid "Dimensionally Extended 9 Intersection Model (DE-9IM)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1030
+#, no-c-format
+msgid ""
+"It is sometimes the case that the typical spatial predicates (<xref linkend="
+"\"ST_Contains\"/>, <xref linkend=\"ST_Crosses\"/>, <xref linkend="
+"\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>, ...) are insufficient "
+"in and of themselves to adequately provide that desired spatial filter."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1042
+#, no-c-format
+msgid ""
+"For example, consider a linear dataset representing a road network. It may "
+"be the task of a GIS analyst to identify all road segments that cross each "
+"other, not at a point, but on a line, perhaps invalidating some business "
+"rule. In this case, <xref linkend=\"ST_Crosses\"/> does not adequately "
+"provide the necessary spatial filter since, for linear features, it returns "
+"<varname>true</varname> only where they cross at a point."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1049
+#, no-c-format
+msgid ""
+"One two-step solution might be to first perform the actual intersection "
+"(<xref linkend=\"ST_Intersection\"/>) of pairs of road segments that "
+"spatially intersect (<xref linkend=\"ST_Intersects\"/>), and then compare "
+"the intersection's <xref linkend=\"ST_GeometryType\"/> with "
+"'<varname>LINESTRING</varname>' (properly dealing with cases that return "
+"<varname>GEOMETRYCOLLECTION</varname>s of <varname>[MULTI]POINT</varname>s, "
+"<varname>[MULTI]LINESTRING</varname>s, etc.)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1057
+#, no-c-format
+msgid "A more elegant / faster solution may indeed be desirable."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1071
+#, no-c-format
+msgid ""
+"A second [theoretical] example may be that of a GIS analyst trying to locate "
+"all wharfs or docks that intersect a lake's boundary on a line and where "
+"only one end of the wharf is up on shore. In other words, where a wharf is "
+"within, but not completely within a lake, intersecting the boundary of a "
+"lake on a line, and where the wharf's endpoints are both completely within "
+"and on the boundary of the lake. The analyst may need to use a combination "
+"of spatial predicates to isolate the sought after features:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1082
+#, no-c-format
+msgid "(lake, wharf) = TRUE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1086
+#, no-c-format
+msgid "(lake, wharf) = FALSE"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1090
+#, no-c-format
+msgid "(<xref linkend=\"ST_Intersection\"/>(wharf, lake)) = 'LINESTRING'"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1095
+#, no-c-format
+msgid ""
+"(<xref linkend=\"ST_Multi\"/>(<xref linkend=\"ST_Intersection\"/>(<xref "
+"linkend=\"ST_Boundary\"/>(wharf), <xref linkend=\"ST_Boundary\"/>(lake)))) = "
+"1"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1098
+#, no-c-format
+msgid "... (needless to say, this could get quite complicated)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1107
+#, no-c-format
+msgid ""
+"So enters the Dimensionally Extended 9 Intersection Model, or DE-9IM for "
+"short."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1111
+#, no-c-format
+msgid "Theory"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1113
+#, no-c-format
+msgid ""
+"According to the <ulink url=\"http://www.opengeospatial.org/standards/sfs"
+"\">OpenGIS Simple Features Implementation Specification for SQL</ulink>, "
+"\"the basic approach to comparing two geometries is to make pair-wise tests "
+"of the intersections between the Interiors, Boundaries and Exteriors of the "
+"two geometries and to classify the relationship between the two geometries "
+"based on the entries in the resulting 'intersection' matrix.\""
+msgstr ""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1124
+#, no-c-format
+msgid "<glossterm>Boundary</glossterm>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1127
+#, no-c-format
+msgid ""
+"The boundary of a geometry is the set of geometries of the next lower "
+"dimension. For <varname>POINT</varname>s, which have a dimension of 0, the "
+"boundary is the empty set. The boundary of a <varname>LINESTRING</varname> "
+"are the two endpoints. For <varname>POLYGON</varname>s, the boundary is the "
+"linework that make up the exterior and interior rings."
+msgstr ""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1138
+#, no-c-format
+msgid "<glossterm>Interior</glossterm>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1141
+#, no-c-format
+msgid ""
+"The interior of a geometry are those points of a geometry that are left when "
+"the boundary is removed. For <varname>POINT</varname>s, the interior is the "
+"<varname>POINT</varname> itself. The interior of a <varname>LINESTRING</"
+"varname> are the set of real points between the endpoints. For "
+"<varname>POLYGON</varname>s, the interior is the areal surface inside the "
+"polygon."
+msgstr ""
+
+#. Tag: glossterm
+#: using_postgis_dataman.xml:1152
+#, no-c-format
+msgid "<glossterm>Exterior</glossterm>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1155
+#, no-c-format
+msgid ""
+"The exterior of a geometry is the universe, an areal surface, not on the "
+"interior or boundary of the geometry."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1162
+#, no-c-format
+msgid ""
+"Given geometry <emphasis>a</emphasis>, where the <emphasis>I(a)</emphasis>, "
+"<emphasis>B(a)</emphasis>, and <emphasis>E(a)</emphasis> are the "
+"<emphasis>Interior</emphasis>, <emphasis>Boundary</emphasis>, and "
+"<emphasis>Exterior</emphasis> of a, the mathematical representation of the "
+"matrix is:"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1174 using_postgis_dataman.xml:1184
+#: using_postgis_dataman.xml:1268 using_postgis_dataman.xml:1281
+#, no-c-format
+msgid "<emphasis role=\"bold\">Interior</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1190
+#: using_postgis_dataman.xml:1271 using_postgis_dataman.xml:1304
+#, no-c-format
+msgid "<emphasis role=\"bold\">Boundary</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1196
+#: using_postgis_dataman.xml:1274 using_postgis_dataman.xml:1327
+#, no-c-format
+msgid "<emphasis role=\"bold\">Exterior</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1185
+#, no-c-format
+msgid "dim( I(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1186
+#, no-c-format
+msgid "dim( I(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1187
+#, no-c-format
+msgid "dim( I(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1191
+#, no-c-format
+msgid "dim( B(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1192
+#, no-c-format
+msgid "dim( B(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1193
+#, no-c-format
+msgid "dim( B(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1197
+#, no-c-format
+msgid "dim( E(a) ∩ I(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1198
+#, no-c-format
+msgid "dim( E(a) ∩ B(b) )"
+msgstr ""
+
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1199
+#, no-c-format
+msgid "dim( E(a) ∩ E(b) )"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1206
+#, no-c-format
+msgid ""
+"Where <emphasis>dim(a)</emphasis> is the dimension of <emphasis>a</emphasis> "
+"as specified by <xref linkend=\"ST_Dimension\"/> but has the domain of "
+"<literal>{0,1,2,T,F,*}</literal>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1213
+#, no-c-format
+msgid "<literal>0</literal> => point"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1217
+#, no-c-format
+msgid "<literal>1</literal> => line"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1221
+#, no-c-format
+msgid "<literal>2</literal> => area"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1225
+#, no-c-format
+msgid "<literal>T</literal> => <literal>{0,1,2}</literal>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1230
+#, no-c-format
+msgid "<literal>F</literal> => empty set"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1234
+#, no-c-format
+msgid "<literal>*</literal> => don't care"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1238
+#, no-c-format
+msgid "Visually, for two overlapping polygonal geometries, this looks like:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1285 using_postgis_dataman.xml:1297
+#: using_postgis_dataman.xml:1331 using_postgis_dataman.xml:1343
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">2</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1291 using_postgis_dataman.xml:1308
+#: using_postgis_dataman.xml:1320 using_postgis_dataman.xml:1337
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">1</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1314
+#, no-c-format
+msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">0</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1355
+#, no-c-format
+msgid ""
+"Read from left to right and from top to bottom, the dimensional matrix is "
+"represented, '<emphasis role=\"bold\">212101212</emphasis>'."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1358
+#, no-c-format
+msgid ""
+"A relate matrix that would therefore represent our first example of two "
+"lines that intersect on a line would be: '<emphasis role=\"bold\">1*1***1**</"
+"emphasis>'"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1362
+#, no-c-format
+msgid ""
+"-- Identify road segments that cross on a line\n"
+"SELECT a.id\n"
+"FROM roads a, roads b\n"
+"WHERE a.id != b.id \n"
+"AND a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '1*1***1**');"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1364
+#, no-c-format
+msgid ""
+"A relate matrix that represents the second example of wharfs partly on the "
+"lake's shoreline would be '<emphasis role=\"bold\">102101FF2</emphasis>'"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1368
+#, no-c-format
+msgid ""
+"-- Identify wharfs partly on a lake's shoreline\n"
+"SELECT a.lake_id, b.wharf_id\n"
+"FROM lakes a, wharfs b\n"
+"WHERE a.geom && b.geom\n"
+"AND ST_Relate(a.geom, b.geom, '102101FF2');"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1370
+#, no-c-format
+msgid "For more information or reading, see:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1374
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.opengeospatial.org/standards/sfs\">OpenGIS Simple "
+"Features Implementation Specification for SQL</ulink> (version 1.1, section "
+"2.1.13.2)"
+msgstr ""
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:1379
+#, no-c-format
+msgid ""
+"Dimensionally Extended Nine-Intersection Model (DE-9IM) by Christian Strobl"
+msgstr ""
+
+#. Tag: ulink
+#: using_postgis_dataman.xml:1383
+#, no-c-format
+msgid "GeoTools: Point Set Theory and the DE-9IM Matrix"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1386
+#, no-c-format
+msgid "<emphasis>Encyclopedia of GIS</emphasis> By Hui Xiong"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1396
+#, no-c-format
+msgid "Loading GIS (Vector) Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1398
+#, no-c-format
+msgid ""
+"Once you have created a spatial table, you are ready to upload GIS data to "
+"the database. Currently, there are two ways to get data into a PostGIS/"
+"PostgreSQL database: using formatted SQL statements or using the Shape file "
+"loader/dumper."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1404
+#, no-c-format
+msgid "Loading Data Using SQL"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1406
+#, no-c-format
+msgid ""
+"If you can convert your data to a text representation, then using formatted "
+"SQL might be the easiest way to get your data into PostGIS. As with Oracle "
+"and other SQL databases, data can be bulk loaded by piping a large text file "
+"full of SQL \"INSERT\" statements into the SQL terminal monitor."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1412
+#, no-c-format
+msgid ""
+"A data upload file (<filename>roads.sql</filename> for example) might look "
+"like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1415
+#, no-c-format
+msgid ""
+"BEGIN;\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (1,ST_GeomFromText('LINESTRING(191232 243118,191108 "
+"243242)',-1),'Jeff Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (2,ST_GeomFromText('LINESTRING(189141 244158,189265 "
+"244817)',-1),'Geordie Rd');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (3,ST_GeomFromText('LINESTRING(192783 228138,192612 "
+"229814)',-1),'Paul St');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (4,ST_GeomFromText('LINESTRING(189412 252431,189631 "
+"259122)',-1),'Graeme Ave');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (5,ST_GeomFromText('LINESTRING(190131 224148,190871 "
+"228134)',-1),'Phil Tce');\n"
+"INSERT INTO roads (road_id, roads_geom, road_name)\n"
+"  VALUES (6,ST_GeomFromText('LINESTRING(198231 263418,198213 "
+"268322)',-1),'Dave Cres');\n"
+"COMMIT;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1417
+#, no-c-format
+msgid ""
+"The data file can be piped into PostgreSQL very easily using the \"psql\" "
+"SQL terminal monitor:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1420
+#, no-c-format
+msgid "psql -d [database] -f roads.sql"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1424
+#, no-c-format
+msgid "shp2pgsql: Using the ESRI Shapefile Loader"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1426
+#, no-c-format
+msgid ""
+"The <filename>shp2pgsql</filename> data loader converts ESRI Shape files "
+"into SQL suitable for insertion into a PostGIS/PostgreSQL database either in "
+"geometry or geography format. The loader has several operating modes "
+"distinguished by command line flags:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1431
+#, no-c-format
+msgid ""
+"In addition to the shp2pgsql command-line loader, there is an "
+"<filename>shp2pgsql-gui</filename> graphical interface with most of the "
+"options as the command-line loader, but may be easier to use for one-off non-"
+"scripted loading or if you are new to PostGIS. It can also be configured as "
+"a plugin to PgAdminIII."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1438
+#, no-c-format
+msgid "(c|a|d|p) These are mutually exclusive options:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1443
+#, no-c-format
+msgid "<term>-c</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1445
+#, no-c-format
+msgid ""
+"Creates a new table and populates it from the shapefile. <emphasis>This is "
+"the default mode.</emphasis>"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1453
+#, no-c-format
+msgid "<term>-a</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1455
+#, no-c-format
+msgid ""
+"Appends data from the Shape file into the database table. Note that to use "
+"this option to load multiple files, the files must have the same attributes "
+"and same data types."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1464 using_postgis_dataman.xml:1853
+#, no-c-format
+msgid "<term>-d</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1466
+#, no-c-format
+msgid ""
+"Drops the database table before creating a new table with the data in the "
+"Shape file."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1474
+#, no-c-format
+msgid "<term>-p</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1476
+#, no-c-format
+msgid ""
+"Only produces the table creation SQL code, without adding any actual data. "
+"This can be used if you need to completely separate the table creation and "
+"data loading steps."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1489
+#, no-c-format
+msgid "<term>-?</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1491
+#, no-c-format
+msgid "Display help screen."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1498
+#, no-c-format
+msgid "<term>-D</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1500
+#, no-c-format
+msgid ""
+"Use the PostgreSQL \"dump\" format for the output data. This can be combined "
+"with -a, -c and -d. It is much faster to load than the default \"insert\" "
+"SQL format. Use this for very large data sets."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1509
+#, no-c-format
+msgid "-s [<FROM_SRID%gt;:]<SRID>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1511
+#, no-c-format
+msgid ""
+"Creates and populates the geometry tables with the specified SRID. "
+"Optionally specifies that the input shapefile uses the given FROM_SRID, in "
+"which case the geometries will be reprojected to the target SRID. FROM_SRID "
+"cannot be specified with -D."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1522
+#, no-c-format
+msgid "<term>-k</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1524
+#, no-c-format
+msgid ""
+"Keep identifiers' case (column, schema and attributes). Note that attributes "
+"in Shapefile are all UPPERCASE."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1532
+#, no-c-format
+msgid "<term>-i</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1534
+#, no-c-format
+msgid ""
+"Coerce all integers to standard 32-bit integers, do not create 64-bit "
+"bigints, even if the DBF header signature appears to warrant it."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1542
+#, no-c-format
+msgid "<term>-I</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1544
+#, no-c-format
+msgid "Create a GiST index on the geometry column."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1551
+#, no-c-format
+msgid "<term>-m</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1553
+#, no-c-format
+msgid ""
+"-m <filename>a_file_name</filename> Specify a file containing a set of "
+"mappings of (long) column names to 10 character DBF column names. The "
+"content of the file is one or more lines of two names separated by white "
+"space and no trailing or leading space. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1558
+#, no-c-format
+msgid ""
+"COLUMNNAME DBFFIELD1\n"
+"AVERYLONGCOLUMNNAME DBFFIELD2"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1564
+#, no-c-format
+msgid "<term>-S</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1566
+#, no-c-format
+msgid ""
+"Generate simple geometries instead of MULTI geometries. Will only succeed if "
+"all the geometries are actually single (I.E. a MULTIPOLYGON with a single "
+"shell, or or a MULTIPOINT with a single vertex)."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1575
+#, no-c-format
+msgid "-t <dimensionality>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1577
+#, no-c-format
+msgid ""
+"Force the output geometry to have the specified dimensionality. Use the "
+"following strings to indicate the dimensionality: 2D, 3DZ, 3DM, 4D."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1581
+#, no-c-format
+msgid ""
+"If the input has fewer dimensions that specified, the output will have those "
+"dimensions filled in with zeroes. If the input has more dimensions that "
+"specified, the unwanted dimensions will be stripped."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1590
+#, no-c-format
+msgid "<term>-w</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1592
+#, no-c-format
+msgid ""
+"Output WKT format, instead of WKB. Note that this can introduce coordinate "
+"drifts due to loss of precision."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1600
+#, no-c-format
+msgid "<term>-e</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1602
+#, no-c-format
+msgid ""
+"Execute each statement on its own, without using a transaction. This allows "
+"loading of the majority of good data when there are some bad geometries that "
+"generate errors. Note that this cannot be used with the -D flag as the \"dump"
+"\" format always uses a transaction."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1612
+#, no-c-format
+msgid "-W <encoding>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1614
+#, no-c-format
+msgid ""
+"Specify encoding of the input data (dbf file). When used, all attributes of "
+"the dbf are converted from the specified encoding to UTF8. The resulting SQL "
+"output will contain a <code>SET CLIENT_ENCODING to UTF8</code> command, so "
+"that the backend will be able to reconvert from UTF8 to whatever encoding "
+"the database is configured to use internally."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1624
+#, no-c-format
+msgid "-N <policy>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1626
+#, no-c-format
+msgid "NULL geometries handling policy (insert*,skip,abort)"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1632
+#, no-c-format
+msgid "<term>-n</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1634
+#, no-c-format
+msgid ""
+"-n Only import DBF file. If your data has no corresponding shapefile, it "
+"will automatically switch to this mode and load just the dbf. So setting "
+"this flag is only needed if you have a full shapefile set, and you only want "
+"the attribute data and no geometry."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1642
+#, no-c-format
+msgid "<term>-G</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1644
+#, no-c-format
+msgid ""
+"Use geography type instead of geometry (requires lon/lat data) in WGS84 long "
+"lat (SRID=4326)"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1650
+#, no-c-format
+msgid "-T <tablespace>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1652
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table. Indexes will still use the default "
+"tablespace unless the -X parameter is also used. The PostgreSQL "
+"documentation has a good description on when to use custom tablespaces."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1660
+#, no-c-format
+msgid "-X <tablespace>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1662
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table's indexes. This applies to the "
+"primary key index, and the GIST spatial index if -I is also used."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1670
+#, no-c-format
+msgid ""
+"An example session using the loader to create an input file and uploading it "
+"might look like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1675
+#, no-c-format
+msgid ""
+"# shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > "
+"roads.sql\n"
+"# psql -d roadsdb -f roads.sql"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1677
+#, no-c-format
+msgid "A conversion and upload can be done all in one step using UNIX pipes:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1681
+#, no-c-format
+msgid "# shp2pgsql shaperoads.shp myschema.roadstable | psql -d roadsdb"
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1686
+#, no-c-format
+msgid "Retrieving GIS Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1688
+#, no-c-format
+msgid ""
+"Data can be extracted from the database using either SQL or the Shape file "
+"loader/dumper. In the section on SQL we will discuss some of the operators "
+"available to do comparisons and queries on spatial tables."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1694
+#, no-c-format
+msgid "Using SQL to Retrieve Data"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1696
+#, no-c-format
+msgid ""
+"The most straightforward means of pulling data out of the database is to use "
+"a SQL select query to reduce the number of RECORDS and COLUMNS returned and "
+"dump the resulting columns into a parsable text file:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1701
+#, no-c-format
+msgid ""
+"db=# SELECT road_id, ST_AsText(road_geom) AS geom, road_name FROM roads;\n"
+"\n"
+"road_id | geom                                    | road_name\n"
+"--------+-----------------------------------------+-----------\n"
+"          1 | LINESTRING(191232 243118,191108 243242) | Jeff Rd\n"
+"          2 | LINESTRING(189141 244158,189265 244817) | Geordie Rd\n"
+"          3 | LINESTRING(192783 228138,192612 229814) | Paul St\n"
+"          4 | LINESTRING(189412 252431,189631 259122) | Graeme Ave\n"
+"          5 | LINESTRING(190131 224148,190871 228134) | Phil Tce\n"
+"          6 | LINESTRING(198231 263418,198213 268322) | Dave Cres\n"
+"          7 | LINESTRING(218421 284121,224123 241231) | Chris Way\n"
+"(6 rows)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1703
+#, no-c-format
+msgid ""
+"However, there will be times when some kind of restriction is necessary to "
+"cut down the number of fields returned. In the case of attribute-based "
+"restrictions, just use the same SQL syntax as normal with a non-spatial "
+"table. In the case of spatial restrictions, the following operators are "
+"available/useful:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1711
+#, no-c-format
+msgid "&&"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1714
+#, no-c-format
+msgid ""
+"This operator tells whether the bounding box of one geometry intersects the "
+"bounding box of another."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1720
+#, no-c-format
+msgid "ST_OrderingEquals"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1723
+#, no-c-format
+msgid ""
+"This tests whether two geometries are geometrically identical. For example, "
+"if 'POLYGON((0 0,1 1,1 0,0 0))' is the same as 'POLYGON((0 0,1 1,1 0,0 "
+"0))' (it is)."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1730
+#, no-c-format
+msgid "<term>=</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1733
+#, no-c-format
+msgid ""
+"This operator is a little more naive, it only tests whether the bounding "
+"boxes of two geometries are the same."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1739
+#, no-c-format
+msgid ""
+"Next, you can use these operators in queries. Note that when specifying "
+"geometries and boxes on the SQL command line, you must explicitly turn the "
+"string representations into geometries by using the \"ST_GeomFromText()\" "
+"function. The 312 is a fictitious spatial reference system that matches our "
+"data. So, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1745
+#, no-c-format
+msgid ""
+"SELECT road_id, road_name\n"
+"  FROM roads\n"
+"  WHERE ST_OrderingEquals(roads_geom , ST_GeomFromText('LINESTRING(191232 "
+"243118,191108 243242)',312) ) ;"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1747
+#, no-c-format
+msgid ""
+"The above query would return the single record from the \"ROADS_GEOM\" table "
+"in which the geometry was equal to that value."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1750
+#, no-c-format
+msgid ""
+"When using the \"&&\" operator, you can specify either a BOX3D as "
+"the comparison feature or a GEOMETRY. When you specify a GEOMETRY, however, "
+"its bounding box will be used for the comparison."
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1755
+#, no-c-format
+msgid ""
+"SELECT road_id, road_name\n"
+"FROM roads\n"
+"WHERE roads_geom && ST_GeomFromText('POLYGON((...))',312);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1757
+#, no-c-format
+msgid ""
+"The above query will use the bounding box of the polygon for comparison "
+"purposes."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1760
+#, no-c-format
+msgid ""
+"The most common spatial query will probably be a \"frame-based\" query, used "
+"by client software, like data browsers and web mappers, to grab a \"map frame"
+"\" worth of data for display. Using a \"BOX3D\" object for the frame, such a "
+"query looks like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1765
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(roads_geom) AS geom\n"
+"FROM roads\n"
+"WHERE\n"
+"  roads_geom && ST_MakeEnvelope(191232, 243117,191232, 243119,312);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1767
+#, no-c-format
+msgid ""
+"Note the use of the SRID 312, to specify the projection of the envelope."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1771
+#, no-c-format
+msgid "Using the Dumper"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1773
+#, no-c-format
+msgid ""
+"The <filename>pgsql2shp</filename> table dumper connects directly to the "
+"database and converts a table (possibly defined by a query) into a shape "
+"file. The basic syntax is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1777
+#, no-c-format
+msgid ""
+"pgsql2shp [<options>] <database> [<schema>.]<table>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1779
+#, no-c-format
+msgid "pgsql2shp [<options>] <database> <query>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1781
+#, no-c-format
+msgid "The commandline options are:"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1785
+#, no-c-format
+msgid "-f <filename>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1788
+#, no-c-format
+msgid "Write the output to a particular filename."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1793
+#, no-c-format
+msgid "-h <host>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1796
+#, no-c-format
+msgid "The database host to connect to."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1801
+#, no-c-format
+msgid "-p <port>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1804
+#, no-c-format
+msgid "The port to connect to on the database host."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1809
+#, no-c-format
+msgid "-P <password>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1812
+#, no-c-format
+msgid "The password to use when connecting to the database."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1817
+#, no-c-format
+msgid "-u <user>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1820
+#, no-c-format
+msgid "The username to use when connecting to the database."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1825
+#, no-c-format
+msgid "-g <geometry column>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1828
+#, no-c-format
+msgid ""
+"In the case of tables with multiple geometry columns, the geometry column to "
+"use when writing the shape file."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1834
+#, no-c-format
+msgid "<term>-b</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1837
+#, no-c-format
+msgid ""
+"Use a binary cursor. This will make the operation faster, but will not work "
+"if any NON-geometry attribute in the table lacks a cast to text."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1844
+#, no-c-format
+msgid "<term>-r</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1847
+#, no-c-format
+msgid ""
+"Raw mode. Do not drop the <varname>gid</varname> field, or escape column "
+"names."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1856
+#, no-c-format
+msgid ""
+"For backward compatibility: write a 3-dimensional shape file when dumping "
+"from old (pre-1.0.0) postgis databases (the default is to write a 2-"
+"dimensional shape file in that case). Starting from postgis-1.0.0+, "
+"dimensions are fully encoded."
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1864
+#, no-c-format
+msgid "-m <varname>filename</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1866
+#, no-c-format
+msgid ""
+"Remap identifiers to ten character names. The content of the file is lines "
+"of two symbols separated by a single white space and no trailing or leading "
+"space: VERYLONGSYMBOL SHORTONE ANOTHERVERYLONGSYMBOL SHORTER etc."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1879
+#, no-c-format
+msgid "Building Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1881
+#, no-c-format
+msgid ""
+"Indexes are what make using a spatial database for large data sets possible. "
+"Without indexing, any search for a feature would require a \"sequential scan"
+"\" of every record in the database. Indexing speeds up searching by "
+"organizing the data into a search tree which can be quickly traversed to "
+"find a particular record. PostgreSQL supports three kinds of indexes by "
+"default: B-Tree indexes, R-Tree indexes, and GiST indexes."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1891
+#, no-c-format
+msgid ""
+"B-Trees are used for data which can be sorted along one axis; for example, "
+"numbers, letters, dates. GIS data cannot be rationally sorted along one axis "
+"(which is greater, (0,0) or (0,1) or (1,0)?) so B-Tree indexing is of no use "
+"for us."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1898
+#, no-c-format
+msgid ""
+"R-Trees break up data into rectangles, and sub-rectangles, and sub-sub "
+"rectangles, etc. R-Trees are used by some spatial databases to index GIS "
+"data, but the PostgreSQL R-Tree implementation is not as robust as the GiST "
+"implementation."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1905
+#, no-c-format
+msgid ""
+"GiST (Generalized Search Trees) indexes break up data into \"things to one "
+"side\", \"things which overlap\", \"things which are inside\" and can be "
+"used on a wide range of data-types, including GIS data. PostGIS uses an R-"
+"Tree index implemented on top of GiST to index GIS data."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1914
+#, no-c-format
+msgid "GiST Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1916
+#, no-c-format
+msgid ""
+"GiST stands for \"Generalized Search Tree\" and is a generic form of "
+"indexing. In addition to GIS indexing, GiST is used to speed up searches on "
+"all kinds of irregular data structures (integer arrays, spectral data, etc) "
+"which are not amenable to normal B-Tree indexing."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1921
+#, no-c-format
+msgid ""
+"Once a GIS data table exceeds a few thousand rows, you will want to build an "
+"index to speed up spatial searches of the data (unless all your searches are "
+"based on attributes, in which case you'll want to build a normal index on "
+"the attribute fields)."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1926
+#, no-c-format
+msgid ""
+"The syntax for building a GiST index on a \"geometry\" column is as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1929
+#, no-c-format
+msgid "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1930
+#, no-c-format
+msgid ""
+"The above syntax will always build a 2D-index. To get the an n-dimensional "
+"index supported in PostGIS 2.0+ for the geometry type, you can create one "
+"using this syntax"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1931
+#, no-c-format
+msgid ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield] "
+"gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1933
+#, no-c-format
+msgid ""
+"Building a spatial index is a computationally intensive exercise: on tables "
+"of around 1 million rows, on a 300MHz Solaris machine, we have found "
+"building a GiST index takes about 1 hour. After building an index, it is "
+"important to force PostgreSQL to collect table statistics, which are used to "
+"optimize query plans:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1939
+#, no-c-format
+msgid ""
+"VACUUM ANALYZE [table_name] [(column_name)];\n"
+"-- This is only needed for PostgreSQL 7.4 installations and below\n"
+"SELECT UPDATE_GEOMETRY_STATS([table_name], [column_name]);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1941
+#, no-c-format
+msgid ""
+"GiST indexes have two advantages over R-Tree indexes in PostgreSQL. Firstly, "
+"GiST indexes are \"null safe\", meaning they can index columns which include "
+"null values. Secondly, GiST indexes support the concept of \"lossiness\" "
+"which is important when dealing with GIS objects larger than the PostgreSQL "
+"8K page size. Lossiness allows PostgreSQL to store only the \"important\" "
+"part of an object in an index -- in the case of GIS objects, just the "
+"bounding box. GIS objects larger than 8K will cause R-Tree indexes to fail "
+"in the process of being built."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:1953
+#, no-c-format
+msgid "Using Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1955
+#, no-c-format
+msgid ""
+"Ordinarily, indexes invisibly speed up data access: once the index is built, "
+"the query planner transparently decides when to use index information to "
+"speed up a query plan. Unfortunately, the PostgreSQL query planner does not "
+"optimize the use of GiST indexes well, so sometimes searches which should "
+"use a spatial index instead default to a sequence scan of the whole table."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1962
+#, no-c-format
+msgid ""
+"If you find your spatial indexes are not being used (or your attribute "
+"indexes, for that matter) there are a couple things you can do:"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1968
+#, no-c-format
+msgid ""
+"Firstly, make sure statistics are gathered about the number and "
+"distributions of values in a table, to provide the query planner with better "
+"information to make decisions around index usage. For PostgreSQL 7.4 "
+"installations and below this is done by running "
+"<command>update_geometry_stats([table_name, column_name])</command> (compute "
+"distribution) and <command>VACUUM ANALYZE [table_name] [column_name]</"
+"command> (compute number of values). Starting with PostgreSQL 8.0 running "
+"<command>VACUUM ANALYZE</command> will do both operations. You should "
+"regularly vacuum your databases anyways -- many PostgreSQL DBAs have "
+"<command>VACUUM</command> run as an off-peak cron job on a regular basis."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1982
+#, no-c-format
+msgid ""
+"If vacuuming does not work, you can force the planner to use the index "
+"information by using the <command>SET ENABLE_SEQSCAN=OFF</command> command. "
+"You should only use this command sparingly, and only on spatially indexed "
+"queries: generally speaking, the planner knows better than you do about when "
+"to use normal B-Tree indexes. Once you have run your query, you should "
+"consider setting <varname>ENABLE_SEQSCAN</varname> back on, so that other "
+"queries will utilize the planner as normal."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1992
+#, no-c-format
+msgid ""
+"As of version 0.6, it should not be necessary to force the planner to use "
+"the index with <varname>ENABLE_SEQSCAN</varname>."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1999
+#, no-c-format
+msgid ""
+"If you find the planner wrong about the cost of sequential vs index scans "
+"try reducing the value of random_page_cost in postgresql.conf or using SET "
+"random_page_cost=#. Default value for the parameter is 4, try setting it to "
+"1 or 2. Decrementing the value makes the planner more inclined of using "
+"Index scans."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2010
+#, no-c-format
+msgid "Complex Queries"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2012
+#, no-c-format
+msgid ""
+"The <emphasis>raison d'etre</emphasis> of spatial database functionality is "
+"performing queries inside the database which would ordinarily require "
+"desktop GIS functionality. Using PostGIS effectively requires knowing what "
+"spatial functions are available, and ensuring that appropriate indexes are "
+"in place to provide good performance. The SRID of 312 used in these examples "
+"is purely for demonstration. You should be using a REAL SRID listed in the "
+"the spatial_ref_sys table and one that matches the projection of your data. "
+"If your data has no spatial reference system specified, you should be "
+"THINKING very thoughtfully why it doesn't and maybe it should. If your "
+"reason is because you are modeling something that doesn't have a geographic "
+"spatial reference system defined such as the internals of a molecule or a "
+"good location on Mars to transport the human race in the event of a nuclear "
+"holocaust, then simply leave out the SRID or make one up and insert it in "
+"the <varname>spatial_ref_sys</varname> table."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2026
+#, no-c-format
+msgid "Taking Advantage of Indexes"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2028
+#, no-c-format
+msgid ""
+"When constructing a query it is important to remember that only the bounding-"
+"box-based operators such as && can take advantage of the GiST "
+"spatial index. Functions such as <varname>ST_Distance()</varname> cannot use "
+"the index to optimize their operation. For example, the following query "
+"would be quite slow on a large table:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2035
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_Distance(the_geom, ST_GeomFromText('POINT(100000 200000)', 312)) "
+"< 100"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2037
+#, no-c-format
+msgid ""
+"This query is selecting all the geometries in geom_table which are within "
+"100 units of the point (100000, 200000). It will be slow because it is "
+"calculating the distance between each point in the table and our specified "
+"point, ie. one <varname>ST_Distance()</varname> calculation for each row in "
+"the table. We can avoid this by using the && operator to reduce the "
+"number of distance calculations required:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2044
+#, no-c-format
+msgid ""
+"SELECT the_geom\n"
+"FROM geom_table\n"
+"WHERE ST_DWithin(the_geom,  ST_MakeEnvelope(90900, 190900, 100100, "
+"200100,312), 100)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2046
+#, no-c-format
+msgid ""
+"This query selects the same geometries, but it does it in a more efficient "
+"way. Assuming there is a GiST index on the_geom, the query planner will "
+"recognize that it can use the index to reduce the number of rows before "
+"calculating the result of the <varname>ST_distance()</varname> function. "
+"Notice that the <varname>ST_MakeEnvelope</varname> geometry which is used in "
+"the && operation is a 200 unit square box centered on the original "
+"point - this is our \"query box\". The && operator uses the index to "
+"quickly reduce the result set down to only those geometries which have "
+"bounding boxes that overlap the \"query box\". Assuming that our query box "
+"is much smaller than the extents of the entire geometry table, this will "
+"drastically reduce the number of distance calculations that need to be done."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2060
+#, no-c-format
+msgid "Change in Behavior"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2062
+#, no-c-format
+msgid ""
+"As of PostGIS 1.3.0, most of the Geometry Relationship Functions, with the "
+"notable exceptions of ST_Disjoint and ST_Relate, include implicit bounding "
+"box overlap operators."
+msgstr ""
+
+#. Tag: title
+#: using_postgis_dataman.xml:2069
+#, no-c-format
+msgid "Examples of Spatial SQL"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2071
+#, no-c-format
+msgid ""
+"The examples in this section will make use of two tables, a table of linear "
+"roads, and a table of polygonal municipality boundaries. The table "
+"definitions for the <varname>bc_roads</varname> table is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2075
+#, no-c-format
+msgid ""
+"Column      | Type              | Description\n"
+"------------+-------------------+-------------------\n"
+"gid         | integer           | Unique ID\n"
+"name        | character varying | Road Name\n"
+"the_geom    | geometry          | Location Geometry (Linestring)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2077
+#, no-c-format
+msgid ""
+"The table definition for the <varname>bc_municipality</varname> table is:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2080
+#, no-c-format
+msgid ""
+"Column     | Type              | Description\n"
+"-----------+-------------------+-------------------\n"
+"gid        | integer           | Unique ID\n"
+"code       | integer           | Unique ID\n"
+"name       | character varying | City / Town Name\n"
+"the_geom   | geometry          | Location Geometry (Polygon)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2085
+#, no-c-format
+msgid "What is the total length of all roads, expressed in kilometers?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2090
+#, no-c-format
+msgid "You can answer this question with a very simple piece of SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2093
+#, no-c-format
+msgid ""
+"SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM bc_roads;\n"
+"\n"
+"km_roads\n"
+"------------------\n"
+"70842.1243039643\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2099
+#, no-c-format
+msgid "How large is the city of Prince George, in hectares?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2103
+#, no-c-format
+msgid ""
+"This query combines an attribute condition (on the municipality name) with a "
+"spatial calculation (of the area):"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2107
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM bc_municipality\n"
+"WHERE name = 'PRINCE GEORGE';\n"
+"\n"
+"hectares\n"
+"------------------\n"
+"32657.9103824927\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2113
+#, no-c-format
+msgid "What is the largest municipality in the province, by area?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2118
+#, no-c-format
+msgid ""
+"This query brings a spatial measurement into the query condition. There are "
+"several ways of approaching this problem, but the most efficient is below:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2122
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  name,\n"
+"  ST_Area(the_geom)/10000 AS hectares\n"
+"FROM\n"
+"  bc_municipality\n"
+"ORDER BY hectares DESC\n"
+"LIMIT 1;\n"
+"\n"
+"name           | hectares\n"
+"---------------+-----------------\n"
+"TUMBLER RIDGE  | 155020.02556131\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2124
+#, no-c-format
+msgid ""
+"Note that in order to answer this query we have to calculate the area of "
+"every polygon. If we were doing this a lot it would make sense to add an "
+"area column to the table that we could separately index for performance. By "
+"ordering the results in a descending direction, and them using the "
+"PostgreSQL \"LIMIT\" command we can easily pick off the largest value "
+"without using an aggregate function like max()."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2136
+#, no-c-format
+msgid "What is the length of roads fully contained within each municipality?"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2141
+#, no-c-format
+msgid ""
+"This is an example of a \"spatial join\", because we are bringing together "
+"data from two tables (doing a join) but using a spatial interaction "
+"condition (\"contained\") as the join condition rather than the usual "
+"relational approach of joining on a common key:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2147
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  m.name,\n"
+"  sum(ST_Length(r.the_geom))/1000 as roads_km\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE\n"
+"  ST_Contains(m.the_geom,r.the_geom)\n"
+"GROUP BY m.name\n"
+"ORDER BY roads_km;\n"
+"\n"
+"name                        | roads_km\n"
+"----------------------------+------------------\n"
+"SURREY                      | 1539.47553551242\n"
+"VANCOUVER                   | 1450.33093486576\n"
+"LANGLEY DISTRICT            | 833.793392535662\n"
+"BURNABY                     | 773.769091404338\n"
+"PRINCE GEORGE               | 694.37554369147\n"
+"..."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2149
+#, no-c-format
+msgid ""
+"This query takes a while, because every road in the table is summarized into "
+"the final result (about 250K roads for our particular example table). For "
+"smaller overlays (several thousand records on several hundred) the response "
+"can be very fast."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2158
+#, no-c-format
+msgid "Create a new table with all the roads within the city of Prince George."
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2163
+#, no-c-format
+msgid ""
+"This is an example of an \"overlay\", which takes in two tables and outputs "
+"a new table that consists of spatially clipped or cut resultants. Unlike the "
+"\"spatial join\" demonstrated above, this query actually creates new "
+"geometries. An overlay is like a turbo-charged spatial join, and is useful "
+"for more exact analysis work:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2170
+#, no-c-format
+msgid ""
+"CREATE TABLE pg_roads as\n"
+"SELECT\n"
+"  ST_Intersection(r.the_geom, m.the_geom) AS intersection_geom,\n"
+"  ST_Length(r.the_geom) AS rd_orig_length,\n"
+"  r.*\n"
+"FROM\n"
+"  bc_roads AS r,\n"
+"  bc_municipality AS m\n"
+"WHERE  m.name = 'PRINCE GEORGE' AND ST_Intersects(r.the_geom, m.the_geom);"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2176
+#, no-c-format
+msgid "What is the length in kilometers of \"Douglas St\" in Victoria?"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2181
+#, no-c-format
+msgid ""
+"SELECT\n"
+"  sum(ST_Length(r.the_geom))/1000 AS kilometers\n"
+"FROM\n"
+"  bc_roads r,\n"
+"  bc_municipality m\n"
+"WHERE  r.name = 'Douglas St' AND m.name = 'VICTORIA'\n"
+"        AND ST_Contains(m.the_geom, r.the_geom) ;\n"
+"\n"
+"kilometers\n"
+"------------------\n"
+"4.89151904172838\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:2187
+#, no-c-format
+msgid "What is the largest municipality polygon that has a hole?"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:2192
+#, no-c-format
+msgid ""
+"SELECT gid, name, ST_Area(the_geom) AS area\n"
+"FROM bc_municipality\n"
+"WHERE ST_NRings(the_geom) > 1\n"
+"ORDER BY area DESC LIMIT 1;\n"
+"\n"
+"gid  | name         | area\n"
+"-----+--------------+------------------\n"
+"12   | SPALLUMCHEEN | 257374619.430216\n"
+"(1 row)"
+msgstr ""
diff --git a/doc/po/pl/using_raster_dataman.xml.po b/doc/po/pl/using_raster_dataman.xml.po
new file mode 100644
index 0000000..c764fc7
--- /dev/null
+++ b/doc/po/pl/using_raster_dataman.xml.po
@@ -0,0 +1,1657 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Translators:
+# wotankeld <arek.matoszka at gmail.com>, 2013-2014
+msgid ""
+msgstr ""
+"Project-Id-Version: PostGIS\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-01-21 10:49+0000\n"
+"Last-Translator: wotankeld <arek.matoszka at gmail.com>\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/postgis-1/"
+"language/pl/)\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#. Tag: title
+#: using_raster_dataman.xml:3
+#, no-c-format
+msgid "Raster Data Management, Queries, and Applications"
+msgstr "Zarządzanie danymi rastrowymi, kwerendy i aplikacje"
+
+#. Tag: title
+#: using_raster_dataman.xml:5
+#, no-c-format
+msgid "Loading and Creating Rasters"
+msgstr "Wczytywanie i tworzenie rastrów"
+
+#. Tag: para
+#: using_raster_dataman.xml:6
+#, no-c-format
+msgid ""
+"For most use cases, you will create PostGIS rasters by loading existing "
+"raster files using the packaged <varname>raster2pgsql</varname> raster "
+"loader."
+msgstr ""
+"W większości przypadków tworzenie rastrów w PostGIS będzie odbywa się "
+"poprzez wczytywanie istniejących plików rastrowych używając pakietu "
+"<varname>raster2pgsql</varname>."
+
+#. Tag: title
+#: using_raster_dataman.xml:9
+#, no-c-format
+msgid "Using raster2pgsql to load rasters"
+msgstr "Wykorzystanie raster2pgsql do wczytywania plików rastrowych."
+
+#. Tag: para
+#: using_raster_dataman.xml:10
+#, no-c-format
+msgid ""
+"The <varname>raster2pgsql</varname> is a raster loader executable that loads "
+"GDAL supported raster formats into sql suitable for loading into a PostGIS "
+"raster table. It is capable of loading folders of raster files as well as "
+"creating overviews of rasters."
+msgstr ""
+"<varname>raster2pgsql</varname> jest programem wykonywalnym, które wczytuje "
+"pliki rastrowe obsługiwane przez GDAL jako sql dostosowany do ładowania "
+"danych do tabeli rastrów PostGIS. Program potrafi zarówno wczytywać foldery "
+"plików rastrowych jak i tworzyć przegląd rastrów."
+
+#. Tag: para
+#: using_raster_dataman.xml:13
+#, no-c-format
+msgid ""
+"Since the raster2pgsql is compiled as part of PostGIS most often (unless you "
+"compile your own GDAL library), the raster types supported by the executable "
+"will be the same as those compiled in the GDAL dependency library. To get a "
+"list of raster types your particular raster2pgsql supports use the <varname>-"
+"G</varname> switch. These should be the same as those provided by your "
+"PostGIS install documented here <xref linkend=\"RT_ST_GDALDrivers\"/> if you "
+"are using the same gdal library for both."
+msgstr ""
+"Ponieważ raster2pgsql jest kompilowany najczęściej jako część PostGIS (z "
+"wyłączeniem sytuacji, kiedy użytkownik sam kompiluje bibliotekę GDAL), "
+"obsługiwane przez niego formaty rastrów będą zgodne zależną biblioteką GDAL. "
+"Aby uzyskać listę obsługiwanych formatów należy użyć opcji  <varname>-G</"
+"varname>. Lista obsługiwanych formatów, zakładając, że w obu przypadkach "
+"używana jest ta sama wersja biblioteki GDAL, powinna być zgodna z "
+"dokumentacją PostGIS dostępną tutaj  <xref linkend=\"RT_ST_GDALDrivers\"/>."
+
+#. Tag: para
+#: using_raster_dataman.xml:16
+#, no-c-format
+msgid ""
+"The older version of this tool was a python script. The executable has "
+"replaced the python script. If you still find the need for the Python script "
+"Examples of the python one can be found at <ulink url=\"http://trac.osgeo."
+"org/gdal/wiki/frmts_wtkraster.html\">GDAL PostGIS Raster Driver Usage</"
+"ulink>. Please note that the raster2pgsql python script may not work with "
+"future versions of PostGIS raster and is no longer supported."
+msgstr ""
+"Poprzednie wersje narzędzia były stworzone jako skrypty w języku python. "
+"Obecnie pliki wykonywalne zastąpiły te skrypty. Jeżeli nadal potrzebujesz "
+"przykładów skryptów wykorzystujących starą wersję narzędzie, możesz je "
+"znaleźć w <ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html"
+"\">GDAL PostGIS Raster Driver Usage</ulink>. Proszę jednak zwrócić uwagę, na "
+"fakt, iż raster2pgsql w wersji python może nie działać w kolejnych wersjach "
+"PostGIS i nie jest będzie dłużej wspierany."
+
+#. Tag: para
+#: using_raster_dataman.xml:21
+#, no-c-format
+msgid ""
+"When creating overviews of a specific factor from a set of rasters that are "
+"aligned, it is possible for the overviews to not align. Visit <ulink url="
+"\"http://trac.osgeo.org/postgis/ticket/1764\">http://trac.osgeo.org/postgis/"
+"ticket/1764</ulink> for an example where the overviews do not align."
+msgstr ""
+"Tworząc podglądy rastrów dla zbioru przylegających do siebie rastrów, przy "
+"określonym współczyniku, możliwym jest, że podglądy rastrów nie będą do "
+"siebie przylegać. Odwiedź  <ulink url=\"http://trac.osgeo.org/postgis/"
+"ticket/1764\">http://trac.osgeo.org/postgis/ticket/1764</ulink> aby zobaczyć "
+"przykład, w którym podglądy nie przylegają do siebie."
+
+#. Tag: para
+#: using_raster_dataman.xml:23
+#, no-c-format
+msgid "EXAMPLE USAGE:"
+msgstr "Przykłady użycia:"
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:24
+#, no-c-format
+msgid ""
+"raster2pgsql <varname>raster_options_go_here</varname> <varname>raster_file</"
+"varname> <varname>someschema</varname>.<varname>sometable</varname> > out."
+"sql"
+msgstr ""
+"raster2pgsql <varname>opcje</varname> <varname>plik_rastra</varname> "
+"<varname>nazwa_schematu</varname>.<varname>nazwa_tabeli</varname> > out."
+"sql"
+
+#. Tag: term
+#: using_raster_dataman.xml:28
+#, no-c-format
+msgid "<term>-?</term>"
+msgstr "<term>-?</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:30
+#, no-c-format
+msgid ""
+"Display help screen. Help will also display if you don't pass in any "
+"arguments."
+msgstr ""
+"Wyświetla ekran pomocy. Pomoc zostanie wyświetlona również w sytuacji gdy "
+"nie zostanie podany żaden argument."
+
+#. Tag: term
+#: using_raster_dataman.xml:37
+#, no-c-format
+msgid "<term>-G</term>"
+msgstr "<term>-G</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:39
+#, no-c-format
+msgid "Print the supported raster formats."
+msgstr "Wyświetla na ekranie listę wspieranych formatów rastrowych."
+
+#. Tag: term
+#: using_raster_dataman.xml:46
+#, no-c-format
+msgid "(c|a|d|p) These are mutually exclusive options:"
+msgstr "(c|a|d|p) Są opcjami wzajemnie wykluczającymi się:"
+
+#. Tag: term
+#: using_raster_dataman.xml:51
+#, no-c-format
+msgid "<term>-c</term>"
+msgstr "<term>-c</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:53
+#, no-c-format
+msgid ""
+"Create new table and populate it with raster(s), <emphasis>this is the "
+"default mode</emphasis>"
+msgstr ""
+"Tworzy nową tabelę i wypełnia ją rastrem (rastrami), <emphasis>jest to tryb "
+"domyślny</emphasis>"
+
+#. Tag: term
+#: using_raster_dataman.xml:60
+#, no-c-format
+msgid "<term>-a</term>"
+msgstr "<term>-a</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:62
+#, no-c-format
+msgid "Append raster(s) to an existing table."
+msgstr "Dopisuje raster (rastry) do istniejącej tabeli."
+
+#. Tag: term
+#: using_raster_dataman.xml:69
+#, no-c-format
+msgid "<term>-d</term>"
+msgstr "<term>-d</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:71
+#, no-c-format
+msgid "Drop table, create new one and populate it with raster(s)"
+msgstr "Usuwa istniejącą tabelę, tworzy nową i wypełnia ją rastrem (rastrami)"
+
+#. Tag: term
+#: using_raster_dataman.xml:78
+#, no-c-format
+msgid "<term>-p</term>"
+msgstr "<term>-p</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:80
+#, no-c-format
+msgid "Prepare mode, only create the table."
+msgstr "Tryb przygotowania, tworzy tabelę."
+
+#. Tag: term
+#: using_raster_dataman.xml:91
+#, no-c-format
+msgid ""
+"Raster processing: Applying constraints for proper registering in raster "
+"catalogs"
+msgstr ""
+"Przetwarzanie rastrów: Stosowanie ograniczeń w celu poprawnej rejestracji w "
+"katalogach rastrów"
+
+#. Tag: term
+#: using_raster_dataman.xml:96
+#, no-c-format
+msgid "<term>-C</term>"
+msgstr "<term>-C</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:98
+#, no-c-format
+msgid ""
+"Apply raster constraints -- srid, pixelsize etc. to ensure raster is "
+"properly registered in <varname>raster_columns</varname> view."
+msgstr ""
+"Użyj ograniczenia -- srid, rozmiar_piksela itd. aby zapewnić poprawną "
+"rejestrację rastra w widoku <varname>raster_columns</varname>."
+
+#. Tag: term
+#: using_raster_dataman.xml:104
+#, no-c-format
+msgid "<term>-x</term>"
+msgstr "<term>-x</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:106
+#, no-c-format
+msgid ""
+"Disable setting the max extent constraint. Only applied if -C flag is also "
+"used."
+msgstr ""
+"Wyłącza ustawienie ograniczenia maksymalnego zakresu przestrzennego. Używane "
+"wyłącznie jeżeli użyto też flagi -C."
+
+#. Tag: term
+#: using_raster_dataman.xml:112
+#, no-c-format
+msgid "<term>-r</term>"
+msgstr "<term>-r</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:114
+#, fuzzy, no-c-format
+msgid ""
+"Set the constraints (spatially unique and coverage tile) for regular "
+"blocking. Only applied if -C flag is also used."
+msgstr ""
+"Wyłącza ustawienie ograniczenia maksymalnego zakresu przestrzennego. Używane "
+"wyłącznie jeżeli użyto też flagi -C."
+
+#. Tag: term
+#: using_raster_dataman.xml:125
+#, no-c-format
+msgid ""
+"Raster processing: Optional parameters used to manipulate input raster "
+"dataset"
+msgstr ""
+"Przetwarzanie rastrów: Opcjonalne parametry stosowane do manipulowania "
+"rastrowymi danymi wejściowymi."
+
+#. Tag: term
+#: using_raster_dataman.xml:130
+#, no-c-format
+msgid "-s <SRID>"
+msgstr "-s <SRID>"
+
+#. Tag: para
+#: using_raster_dataman.xml:132
+#, no-c-format
+msgid ""
+"Assign output raster with specified SRID. If not provided or is zero, "
+"raster's metadata will be checked to determine an appropriate SRID."
+msgstr ""
+"Przypisuje rastrowi wynikowemu określony SRID. Jeżeli wartość nie podana "
+"albo równa 0, metadane rastra zostaną sprawdzone w celu ustalenia "
+"odpowiedniego SRID."
+
+#. Tag: term
+#: using_raster_dataman.xml:139
+#, no-c-format
+msgid "-b BAND"
+msgstr "-b ZAKRES"
+
+#. Tag: para
+#: using_raster_dataman.xml:141
+#, no-c-format
+msgid ""
+"Index (1-based) of band to extract from raster. For more than one band "
+"index, separate with comma (,). If unspecified, all bands of raster will be "
+"extracted."
+msgstr ""
+"Indeks (numerowany od 1) zakresu, który będzie wydobyty z rastra. Dla więcej "
+"niż jednego zakresu należy numery rozdzielić przecinkiem (,). Jeżeli wartość "
+"nie podana użyte będą wszystkie zakresy rastra."
+
+#. Tag: term
+#: using_raster_dataman.xml:149
+#, no-c-format
+msgid "-t TILE_SIZE"
+msgstr "-t ROZMIAR_KAFLA"
+
+#. Tag: para
+#: using_raster_dataman.xml:151
+#, fuzzy, no-c-format
+msgid ""
+"Cut raster into tiles to be inserted one per table row. <varname>TILE_SIZE</"
+"varname> is expressed as WIDTHxHEIGHT or set to the value \"auto\" to allow "
+"the loader to compute an appropriate tile size using the first raster and "
+"applied to all rasters."
+msgstr ""
+"Dzieli raster na kafle celem ładowania ich pojedynczo jako wiersze w tabeli. "
+"<varname>ROZMIAR_KAFLA</varname> jest wyrażony jako SZEROKOŚĆxWYSOKOŚĆ."
+
+#. Tag: term
+#: using_raster_dataman.xml:158
+#, no-c-format
+msgid "-R, --register"
+msgstr "-R, --register"
+
+#. Tag: para
+#: using_raster_dataman.xml:160
+#, no-c-format
+msgid "Register the raster as a filesystem (out-db) raster."
+msgstr "Rejestruje raster jako raster w systemie plikowym (out-db)."
+
+#. Tag: para
+#: using_raster_dataman.xml:161
+#, no-c-format
+msgid ""
+"Only the metadata of the raster and path location to the raster is stored in "
+"the database (not the pixels)."
+msgstr ""
+"Jedynie metadane i ścieżka dostępu do pliku rastrowego są przechowywane w "
+"bazie danych (nie wartości pikseli)."
+
+#. Tag: term
+#: using_raster_dataman.xml:166
+#, no-c-format
+msgid "-l <varname>OVERVIEW_FACTOR</varname>"
+msgstr "-l <varname>WSPÓŁCZYNNIK</varname>"
+
+#. Tag: para
+#: using_raster_dataman.xml:167
+#, fuzzy, no-c-format
+msgid ""
+"Create overview of the raster. For more than one factor, separate with "
+"comma(,). Overview table name follows the pattern o_<varname>overview "
+"factor</varname>_<varname>table</varname>, where <varname>overview factor</"
+"varname> is a placeholder for numerical overview factor and <varname>table</"
+"varname> is replaced with the base table name. Created overview is stored in "
+"the database and is not affected by -R. Note that your generated sql file "
+"will contain both the main table and overview tables."
+msgstr ""
+"Tworzy przegląd rastra. W przypadku więcej niż jednego współczynnika, należy "
+"je rozdzielić przecinkiem (,). Nazwa tabeli przeglądu jest tworzona zgodnie "
+"ze wzorcem: o_<varname>WSPÓŁCZYNNIK</varname>_<varname>tabela</varname>. "
+"Utworzony przegląd jest przechowywany w bazie danych i nie jest podatny na "
+"flagę -R. Należy zauważyć, że wygenerowany plik sql będzie zawierała zarówno "
+"główną tabelę, jak i tabele przeglądów."
+
+#. Tag: term
+#: using_raster_dataman.xml:175
+#, no-c-format
+msgid "-N <varname>NODATA</varname>"
+msgstr "-N <varname>NODATA</varname>"
+
+#. Tag: para
+#: using_raster_dataman.xml:177
+#, no-c-format
+msgid "NODATA value to use on bands without a NODATA value."
+msgstr "NODATA wartość, która zostanie użyta dla zakresów bez wartości NODATA."
+
+#. Tag: term
+#: using_raster_dataman.xml:189
+#, no-c-format
+msgid "Optional parameters used to manipulate database objects"
+msgstr "Opcjonalne parametru używane do manipulacji obiektami bazodanowymi."
+
+#. Tag: term
+#: using_raster_dataman.xml:194
+#, no-c-format
+msgid "<term>-q</term>"
+msgstr "<term>-q</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:196
+#, no-c-format
+msgid "Wrap PostgreSQL identifiers in quotes"
+msgstr "Opakowuje identyfikatory PostgreSQL w cudzysłowy"
+
+#. Tag: term
+#: using_raster_dataman.xml:201
+#, no-c-format
+msgid "-f COLUMN"
+msgstr "-f KOLMUNA"
+
+#. Tag: para
+#: using_raster_dataman.xml:203
+#, no-c-format
+msgid "Specify name of destination raster column, default is 'rast'"
+msgstr ""
+"Określa nazwę docelowej kolumny rastrowej, domyślnie przyjmuje wartość 'rast'"
+
+#. Tag: term
+#: using_raster_dataman.xml:209
+#, no-c-format
+msgid "<term>-F</term>"
+msgstr "<term>-F</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:211
+#, no-c-format
+msgid "Add a column with the name of the file"
+msgstr "Dodaje kolumnę z nazwą pliku"
+
+#. Tag: term
+#: using_raster_dataman.xml:216
+#, no-c-format
+msgid "<term>-I</term>"
+msgstr "<term>-I</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:218
+#, no-c-format
+msgid "Create a GiST index on the raster column."
+msgstr "Tworzy indeks GiST na kolumnie rastrowej."
+
+#. Tag: term
+#: using_raster_dataman.xml:225
+#, no-c-format
+msgid "<term>-M</term>"
+msgstr "<term>-M</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:227
+#, no-c-format
+msgid "Vacuum analyze the raster table."
+msgstr "Wykonuje VACUUM i ANALYZE na tabeli rastrowej."
+
+#. Tag: term
+#: using_raster_dataman.xml:234
+#, no-c-format
+msgid "-T <varname>tablespace</varname>"
+msgstr "-T <varname>przestrzeń_tabel</varname>"
+
+#. Tag: para
+#: using_raster_dataman.xml:236
+#, no-c-format
+msgid ""
+"Specify the tablespace for the new table. Note that indices (including the "
+"primary key) will still use the default tablespace unless the -X flag is "
+"also used."
+msgstr ""
+"Określa przestrzeń tabel dla tworzonej tabeli. Należy zauważyć, że indeksy "
+"(włączając klucz główny) w dalszym ciągu będą używały domyślnej przestrzeni "
+"tabel, chyba że użyta zostanie dodatkowo flaga -X."
+
+#. Tag: term
+#: using_raster_dataman.xml:245
+#, no-c-format
+msgid "-X <varname>tablespace</varname>"
+msgstr "-X <varname>przestrzeń_tabel</varname>"
+
+#. Tag: para
+#: using_raster_dataman.xml:247
+#, no-c-format
+msgid ""
+"Specify the tablespace for the table's new index. This applies to the "
+"primary key and the spatial index if the -I flag is used."
+msgstr ""
+"Określa przestrzeń tabel dla tworzonych indeksów. Dotyczy klucza głównego "
+"oraz, jeśli użyto flagi -I,  indeksu przestrzennego."
+
+#. Tag: term
+#: using_raster_dataman.xml:256
+#, no-c-format
+msgid "<term>-Y</term>"
+msgstr "<term>-Y</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:258
+#, no-c-format
+msgid "Use copy statements instead of insert statements."
+msgstr "Używa instrukcji copy zamiast instrukcji insert."
+
+#. Tag: term
+#: using_raster_dataman.xml:269
+#, no-c-format
+msgid "<term>-e</term>"
+msgstr "<term>-e</term>"
+
+#. Tag: para
+#: using_raster_dataman.xml:270
+#, no-c-format
+msgid "Execute each statement individually, do not use a transaction."
+msgstr "Wykonuje każdą instrukcję osobno, nie korzystając z transakcji."
+
+#. Tag: term
+#: using_raster_dataman.xml:274
+#, no-c-format
+msgid "-E ENDIAN"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:275
+#, no-c-format
+msgid ""
+"Control endianness of generated binary output of raster; specify 0 for XDR "
+"and 1 for NDR (default); only NDR output is supported now"
+msgstr ""
+
+#. Tag: term
+#: using_raster_dataman.xml:279
+#, no-c-format
+msgid "-V <varname>version</varname>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:280
+#, no-c-format
+msgid ""
+"Specify version of output format. Default is 0. Only 0 is supported at this "
+"time."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:283
+#, no-c-format
+msgid ""
+"An example session using the loader to create an input file and uploading it "
+"chunked in 100x100 tiles might look like this:"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:284
+#, no-c-format
+msgid ""
+"You can leave the schema name out e.g <varname>demelevation</varname> "
+"instead of <varname>public.demelevation</varname> and the raster table will "
+"be created in the default schema of the database or user"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:286
+#, no-c-format
+msgid ""
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
+"sql\n"
+"psql -d gisdb -f elev.sql"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:288
+#, no-c-format
+msgid "A conversion and upload can be done all in one step using UNIX pipes:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:290
+#, no-c-format
+msgid ""
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
+"-d gisdb"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:292
+#, no-c-format
+msgid ""
+"Load rasters Massachusetts state plane meters aerial tiles into a schema "
+"called <varname>aerial</varname> and create a full view, 2 and 4 level "
+"overview tables, use copy mode for inserting (no intermediary file just "
+"straight to db), and -e don't force everything in a transaction (good if you "
+"want to see data in tables right away without waiting). Break up the rasters "
+"into 128x128 pixel tiles and apply raster constraints. Use copy mode instead "
+"of table insert. (-F) Include a field called filename to hold the name of "
+"the file the tiles were cut from."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:294
+#, no-c-format
+msgid ""
+"raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128  -l 2,4 bostonaerials2008/*."
+"jpg aerials.boston | psql -U postgres -d gisdb -h localhost -p 5432"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:296
+#, no-c-format
+msgid ""
+"--get a list of raster types supported:\n"
+"raster2pgsql -G"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:298
+#, no-c-format
+msgid "The -G commands outputs a list something like"
+msgstr ""
+
+#. Tag: screen
+#: using_raster_dataman.xml:299
+#, no-c-format
+msgid ""
+"Available GDAL raster formats:\n"
+"  Virtual Raster\n"
+"  GeoTIFF\n"
+"  National Imagery Transmission Format\n"
+"  Raster Product Format TOC format\n"
+"  ECRG TOC format\n"
+"  Erdas Imagine Images (.img)\n"
+"  CEOS SAR Image\n"
+"  CEOS Image\n"
+"  JAXA PALSAR Product Reader (Level 1.1/1.5)\n"
+"  Ground-based SAR Applications Testbed File Format (.gff)\n"
+"  ELAS\n"
+"  Arc/Info Binary Grid\n"
+"  Arc/Info ASCII Grid\n"
+"  GRASS ASCII Grid\n"
+"  SDTS Raster\n"
+"  DTED Elevation Raster\n"
+"  Portable Network Graphics\n"
+"  JPEG JFIF\n"
+"  In Memory Raster\n"
+"  Japanese DEM (.mem)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Graphics Interchange Format (.gif)\n"
+"  Envisat Image Format\n"
+"  Maptech BSB Nautical Charts\n"
+"  X11 PixMap Format\n"
+"  MS Windows Device Independent Bitmap\n"
+"  SPOT DIMAP\n"
+"  AirSAR Polarimetric Image\n"
+"  RadarSat 2 XML Product\n"
+"  PCIDSK Database File\n"
+"  PCRaster Raster File\n"
+"  ILWIS Raster Map\n"
+"  SGI Image File Format 1.0\n"
+"  SRTMHGT File Format\n"
+"  Leveller heightfield\n"
+"  Terragen heightfield\n"
+"  USGS Astrogeology ISIS cube (Version 3)\n"
+"  USGS Astrogeology ISIS cube (Version 2)\n"
+"  NASA Planetary Data System\n"
+"  EarthWatch .TIL\n"
+"  ERMapper .ers Labelled\n"
+"  NOAA Polar Orbiter Level 1b Data Set\n"
+"  FIT Image\n"
+"  GRIdded Binary (.grb)\n"
+"  Raster Matrix Format\n"
+"  EUMETSAT Archive native (.nat)\n"
+"  Idrisi Raster A.1\n"
+"  Intergraph Raster\n"
+"  Golden Software ASCII Grid (.grd)\n"
+"  Golden Software Binary Grid (.grd)\n"
+"  Golden Software 7 Binary Grid (.grd)\n"
+"  COSAR Annotated Binary Matrix (TerraSAR-X)\n"
+"  TerraSAR-X Product\n"
+"  DRDC COASP SAR Processor Raster\n"
+"  R Object Data Store\n"
+"  Portable Pixmap Format (netpbm)\n"
+"  USGS DOQ (Old Style)\n"
+"  USGS DOQ (New Style)\n"
+"  ENVI .hdr Labelled\n"
+"  ESRI .hdr Labelled\n"
+"  Generic Binary (.hdr Labelled)\n"
+"  PCI .aux Labelled\n"
+"  Vexcel MFF Raster\n"
+"  Vexcel MFF2 (HKV) Raster\n"
+"  Fuji BAS Scanner Image\n"
+"  GSC Geogrid\n"
+"  EOSAT FAST Format\n"
+"  VTP .bt (Binary Terrain) 1.3 Format\n"
+"  Erdas .LAN/.GIS\n"
+"  Convair PolGASP\n"
+"  Image Data and Analysis\n"
+"  NLAPS Data Format\n"
+"  Erdas Imagine Raw\n"
+"  DIPEx\n"
+"  FARSITE v.4 Landscape File (.lcp)\n"
+"  NOAA Vertical Datum .GTX\n"
+"  NADCON .los/.las Datum Grid Shift\n"
+"  NTv2 Datum Grid Shift\n"
+"  ACE2\n"
+"  Snow Data Assimilation System\n"
+"  Swedish Grid RIK (.rik)\n"
+"  USGS Optional ASCII DEM (and CDED)\n"
+"  GeoSoft Grid Exchange Format\n"
+"  Northwood Numeric Grid Format .grd/.tab\n"
+"  Northwood Classified Grid Format .grc/.tab\n"
+"  ARC Digitized Raster Graphics\n"
+"  Standard Raster Product (ASRP/USRP)\n"
+"  Magellan topo (.blx)\n"
+"  SAGA GIS Binary Grid (.sdat)\n"
+"  Kml Super Overlay\n"
+"  ASCII Gridded XYZ\n"
+"  HF2/HFZ heightfield raster\n"
+"  OziExplorer Image File\n"
+"  USGS LULC Composite Theme Grid\n"
+"  Arc/Info Export E00 GRID\n"
+"  ZMap Plus Grid\n"
+"  NOAA NGS Geoid Height Grids"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:302
+#, no-c-format
+msgid "Creating rasters using PostGIS raster functions"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:303
+#, no-c-format
+msgid ""
+"On many occasions, you'll want to create rasters and raster tables right in "
+"the database. There are a plethora of functions to do that. The general "
+"steps to follow."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:305
+#, no-c-format
+msgid ""
+"Create a table with a raster column to hold the new raster records which can "
+"be accomplished with:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:306
+#, no-c-format
+msgid "CREATE TABLE myrasters(rid serial primary key, rast raster);"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:309
+#, no-c-format
+msgid ""
+"There are many functions to help with that goal. If you are creating rasters "
+"not as a derivative of other rasters, you will want to start with: <xref "
+"linkend=\"RT_ST_MakeEmptyRaster\"/>, followed by <xref linkend="
+"\"RT_ST_AddBand\"/>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:311
+#, no-c-format
+msgid ""
+"You can also create rasters from geometries. To achieve that you'll want to "
+"use <xref linkend=\"RT_ST_AsRaster\"/> perhaps accompanied with other "
+"functions such as <xref linkend=\"RT_ST_Union\"/> or <xref linkend="
+"\"RT_ST_MapAlgebraFct2\"/> or any of the family of other map algebra "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:313
+#, no-c-format
+msgid ""
+"There are even many more options for creating new raster tables from "
+"existing tables. For example you can create a raster table in a different "
+"projection from an existing one using <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:315
+#, no-c-format
+msgid ""
+"Once you are done populating your table initially, you'll want to create a "
+"spatial index on the raster column with something like:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:316
+#, no-c-format
+msgid ""
+"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING "
+"gist( ST_ConvexHull(rast) );"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:317
+#, no-c-format
+msgid ""
+"Note the use of <xref linkend=\"RT_ST_ConvexHull\"/> since most raster "
+"operators are based on the convex hull of the rasters."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:318
+#, no-c-format
+msgid ""
+"Pre-2.0 versions of PostGIS raster were based on the envelop rather than the "
+"convex hull. For the spatial indexes to work properly you'll need to drop "
+"those and replace with convex hull based index."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:319
+#, no-c-format
+msgid ""
+"Apply raster constraints using <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:324
+#, no-c-format
+msgid "Raster Catalogs"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:325
+#, no-c-format
+msgid ""
+"There are two raster catalog views that come packaged with PostGIS. Both "
+"views utilize information embedded in the constraints of the raster tables. "
+"As a result the catalog views are always consistent with the raster data in "
+"the tables since the constraints are enforced."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:329
+#, no-c-format
+msgid ""
+"<varname>raster_columns</varname> this view catalogs all the raster table "
+"columns in your database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:332
+#, no-c-format
+msgid ""
+"<varname>raster_overviews</varname> this view catalogs all the raster table "
+"columns in your database that serve as overviews for a finer grained table. "
+"Tables of this type are generated when you use the <varname>-l</varname> "
+"switch during load."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:336
+#, no-c-format
+msgid "Raster Columns Catalog"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:337
+#, no-c-format
+msgid ""
+"The <varname>raster_columns</varname> is a catalog of all raster table "
+"columns in your database that are of type raster. It is a view utilizing the "
+"constraints on the tables so the information is always consistent even if "
+"you restore one raster table from a backup of another database. The "
+"following columns exist in the <varname>raster_columns</varname> catalog."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:339
+#, no-c-format
+msgid ""
+"If you created your tables not with the loader or forgot to specify the "
+"<varname>-C</varname> flag during load, you can enforce the constraints "
+"after the fact using <xref linkend=\"RT_AddRasterConstraints\"/> so that the "
+"<varname>raster_columns</varname> catalog registers the common information "
+"about your raster tiles."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:344
+#, no-c-format
+msgid ""
+"<varname>r_table_catalog</varname> The database the table is in. This will "
+"always read the current database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:347
+#, no-c-format
+msgid ""
+"<varname>r_table_schema</varname> The database schema the raster table "
+"belongs to."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:350
+#, no-c-format
+msgid "<varname>r_table_name</varname> raster table"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:353
+#, no-c-format
+msgid ""
+"<varname>r_raster_column</varname> the column in the <varname>r_table_name</"
+"varname> table that is of type raster. There is nothing in PostGIS "
+"preventing you from having multiple raster columns per table so its possible "
+"to have a raster table listed multiple times with a different raster column "
+"for each."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:356
+#, no-c-format
+msgid ""
+"<varname>srid</varname> The spatial reference identifier of the raster. "
+"Should be an entry in the <xref linkend=\"spatial_ref_sys\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:359
+#, no-c-format
+msgid ""
+"<varname>scale_x</varname> The scaling between geometric spatial coordinates "
+"and pixel. This is only available if all tiles in the raster column have the "
+"same <varname>scale_x</varname> and this constraint is applied. Refer to "
+"<xref linkend=\"RT_ST_ScaleX\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:362
+#, no-c-format
+msgid ""
+"<varname>scale_y</varname> The scaling between geometric spatial coordinates "
+"and pixel. This is only available if all tiles in the raster column have the "
+"same <varname>scale_y</varname> and the <varname>scale_y</varname> "
+"constraint is applied. Refer to <xref linkend=\"RT_ST_ScaleY\"/> for more "
+"details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:365
+#, no-c-format
+msgid ""
+"<varname>blocksize_x</varname> The width (number of pixels across) of each "
+"raster tile . Refer to <xref linkend=\"RT_ST_Width\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:368
+#, no-c-format
+msgid ""
+"<varname>blocksize_y</varname> The width (number of pixels down) of each "
+"raster tile . Refer to <xref linkend=\"RT_ST_Height\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:371
+#, no-c-format
+msgid ""
+"<varname>same_alignment</varname> A boolean that is true if all the raster "
+"tiles have the same alignment . Refer to <xref linkend=\"RT_ST_SameAlignment"
+"\"/> for more details."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:374
+#, no-c-format
+msgid ""
+"<varname>regular_blocking</varname> If the raster column has the spatially "
+"unique and coverage tile constraints, the value with be TRUE. Otherwise, it "
+"will be FALSE."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:377
+#, no-c-format
+msgid ""
+"<varname>num_bands</varname> The number of bands in each tile of your raster "
+"set. This is the same information as what is provided by"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:380
+#, no-c-format
+msgid ""
+"<varname>pixel_types</varname> An array defining the pixel type for each "
+"band. You will have the same number of elements in this array as you have "
+"number of bands. The pixel_types are one of the following defined in <xref "
+"linkend=\"RT_ST_BandPixelType\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:383
+#, no-c-format
+msgid ""
+"<varname>nodata_values</varname> An array of double precision numbers "
+"denoting the <varname>nodata_value</varname> for each band. You will have "
+"the same number of elements in this array as you have number of bands. These "
+"numbers define the pixel value for each band that should be ignored for most "
+"operations. This is similar information provided by <xref linkend="
+"\"RT_ST_BandNoDataValue\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:386
+#, no-c-format
+msgid ""
+"<varname>out_db</varname> An array of boolean flags indicating if the raster "
+"bands data is maintained outside the database. You will have the same number "
+"of elements in this array as you have number of bands."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:389
+#, no-c-format
+msgid ""
+"<varname>extent</varname> This is the extent of all the raster rows in your "
+"raster set. If you plan to load more data that will change the extent of the "
+"set, you'll want to run the <xref linkend=\"RT_DropRasterConstraints\"/> "
+"function before load and then reapply constraints with <xref linkend="
+"\"RT_AddRasterConstraints\"/> after load."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:392
+#, no-c-format
+msgid ""
+"<varname>spatial_index</varname> A boolean that is true if raster column has "
+"a spatial index."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:397
+#, no-c-format
+msgid "Raster Overviews"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:398
+#, no-c-format
+msgid ""
+"<varname>raster_overviews</varname> catalogs information about raster table "
+"columns used for overviews and additional information about them that is "
+"useful to know when utilizing overviews. Overview tables are cataloged in "
+"both <varname>raster_columns</varname> and <varname>raster_overviews</"
+"varname> because they are rasters in their own right but also serve an "
+"additional special purpose of being a lower resolution caricature of a "
+"higher resolution table. These are generated along-side the main raster "
+"table when you use the <varname>-l</varname> switch in raster loading or can "
+"be generated manually using <xref linkend=\"RT_AddOverviewConstraints\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:399
+#, no-c-format
+msgid ""
+"Overview tables contain the same constraints as other raster tables as well "
+"as additional informational only constraints specific to overviews."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:400
+#, no-c-format
+msgid ""
+"The information in <varname>raster_overviews</varname> does not duplicate "
+"the information in <varname>raster_columns</varname>. If you need the "
+"information about an overview table present in <varname>raster_columns</"
+"varname> you can join the <varname>raster_overviews</varname> and "
+"<varname>raster_columns</varname> together to get the full set of "
+"information you need."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:401
+#, no-c-format
+msgid "Two main reasons for overviews are:"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:403
+#, no-c-format
+msgid ""
+"Low resolution representation of the core tables commonly used for fast "
+"mapping zoom-out."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:404
+#, no-c-format
+msgid ""
+"Computations are generally faster to do on them than their higher resolution "
+"parents because there are fewer records and each pixel covers more "
+"territory. Though the computations are not as accurate as the high-res "
+"tables they support, they can be sufficient in many rule-of-thumb "
+"computations."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:407
+#, no-c-format
+msgid ""
+"The <varname>raster_overviews</varname> catalog contains the following "
+"columns of information."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:410
+#, no-c-format
+msgid ""
+"<varname>o_table_catalog</varname> The database the overview table is in. "
+"This will always read the current database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:413
+#, no-c-format
+msgid ""
+"<varname>o_table_schema</varname> The database schema the overview raster "
+"table belongs to."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:416
+#, no-c-format
+msgid "<varname>o_table_name</varname> raster overview table name"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:419
+#, no-c-format
+msgid ""
+"<varname>o_raster_column</varname> the raster column in the overview table."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:423
+#, no-c-format
+msgid ""
+"<varname>r_table_catalog</varname> The database the raster table that this "
+"overview services is in. This will always read the current database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:426
+#, no-c-format
+msgid ""
+"<varname>r_table_schema</varname> The database schema the raster table that "
+"this overview services belongs to."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:429
+#, no-c-format
+msgid ""
+"<varname>r_table_name</varname> raster table that this overview services."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:432
+#, no-c-format
+msgid ""
+"<varname>r_raster_column</varname> the raster column that this overview "
+"column services."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:435
+#, no-c-format
+msgid ""
+"<varname>overview_factor</varname> - this is the pyramid level of the "
+"overview table. The higher the number the lower the resolution of the table. "
+"raster2pgsql if given a folder of images, will compute overview of each "
+"image file and load separately. Level 1 is assumed and always the original "
+"file. Level 2 is will have each tile represent 4 of the original. So for "
+"example if you have a folder of 5000x5000 pixel image files that you chose "
+"to chunk 125x125, for each image file your base table will have (5000*5000)/"
+"(125*125) records = 1600, your (l=2) <varname>o_2</varname> table will have "
+"ceiling(1600/Power(2,2)) = 400 rows, your (l=3) <varname>o_3</varname> will "
+"have ceiling(1600/Power(2,3) ) = 200 rows. If your pixels aren't divisible "
+"by the size of your tiles, you'll get some scrap tiles (tiles not completely "
+"filled). Note that each overview tile generated by raster2pgsql has the same "
+"number of pixels as its parent, but is of a lower resolution where each "
+"pixel of it represents (Power(2,overview_factor) pixels of the original)."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:447
+#, no-c-format
+msgid "Building Custom Applications with PostGIS Raster"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:448
+#, no-c-format
+msgid ""
+"The fact that PostGIS raster provides you with SQL functions to render "
+"rasters in known image formats gives you a lot of optoins for rendering "
+"them. For example you can use OpenOffice / LibreOffice for rendering as "
+"demonstrated in <ulink url=\"http://www.postgresonline.com/journal/"
+"archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports."
+"html\">Rendering PostGIS Raster graphics with LibreOffice Base Reports</"
+"ulink>. In addition you can use a wide variety of languages as demonstrated "
+"in this section."
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:451
+#, no-c-format
+msgid ""
+"PHP Example Outputting using ST_AsPNG in concert with other raster functions"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:452
+#, no-c-format
+msgid ""
+"In this section, we'll demonstrate how to use the PHP PostgreSQL driver and "
+"the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output "
+"band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
+"an img src html tag."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:455 using_raster_dataman.xml:467
+#, no-c-format
+msgid ""
+"The sample query demonstrates how to combine a whole bunch of raster "
+"functions together to grab all tiles that intersect a particular wgs 84 "
+"bounding box and then unions with <xref linkend=\"RT_ST_Union\"/> the "
+"intersecting tiles together returning all bands, transforms to user "
+"specified projection using <xref linkend=\"RT_ST_Transform\"/>, and then "
+"outputs the results as a png using <xref linkend=\"RT_ST_AsPNG\"/>."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:458
+#, no-c-format
+msgid ""
+"You would call the below using <programlisting>http://mywebserver/"
+"test_raster.php?srid=2249</programlisting> to get the raster image in "
+"Massachusetts state plane feet."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:459
+#, no-c-format
+msgid ""
+"<![CDATA[<?php\n"
+"/** contents of test_raster.php **/\n"
+"$conn_str ='dbname=mydb host=localhost port=5432 user=myuser "
+"password=mypwd';\n"
+"$dbconn = pg_connect($conn_str);\n"
+"header('Content-Type: image/png');  \n"
+"/**If a particular projection was requested use it otherwise use mass state "
+"plane meters **/\n"
+"if (!empty( $_REQUEST['srid'] ) && is_numeric( $_REQUEST['srid']) ){\n"
+"                $input_srid = intval($_REQUEST['srid']);\n"
+"}\n"
+"else { $input_srid = 26986; }\n"
+"/** The set bytea_output may be needed for PostgreSQL 9.0+, but not for 8.4 "
+"**/\n"
+"$sql = \"set bytea_output='escape';\n"
+"SELECT ST_AsPNG(ST_Transform(\n"
+"                        ST_AddBand(ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                ,$input_srid) ) As new_rast\n"
+" FROM aerials.boston \n"
+"        WHERE \n"
+"         ST_Intersects(rast, ST_Transform(ST_MakeEnvelope(-71.1217, 42.227, "
+"-71.1210, 42.218,4326),26986) )\"; \n"
+"$result = pg_query($sql);\n"
+"$row = pg_fetch_row($result);\n"
+"pg_free_result($result);\n"
+"if ($row === false) return;\n"
+"echo pg_unescape_bytea($row[0]);\n"
+"?>]]>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:462
+#, no-c-format
+msgid ""
+"ASP.NET C# Example Outputting using ST_AsPNG in concert with other raster "
+"functions"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:463
+#, no-c-format
+msgid ""
+"In this section, we'll demonstrate how to use Npgsql PostgreSQL .NET driver "
+"and the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output "
+"band 1,2,3 of a raster to a PHP request stream that can then be embedded in "
+"an img src html tag."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:466
+#, no-c-format
+msgid ""
+"You will need the npgsql .NET PostgreSQL driver for this exercise which you "
+"can get the latest of from <ulink url=\"http://npgsql.projects.postgresql."
+"org/\">http://npgsql.projects.postgresql.org/</ulink>. Just download the "
+"latest and drop into your ASP.NET bin folder and you'll be good to go."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:470
+#, no-c-format
+msgid ""
+"This is same example as <xref linkend=\"RT_PHP_Output\"/> except implemented "
+"in C#."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:471
+#, no-c-format
+msgid ""
+"You would call the below using <programlisting>http://mywebserver/TestRaster."
+"ashx?srid=2249</programlisting> to get the raster image in Massachusetts "
+"state plane feet."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:472
+#, no-c-format
+msgid ""
+"-- web.config connection string section --\n"
+"<![CDATA[<connectionStrings>\n"
+"    <add name=\"DSN\" \n"
+"        connectionString=\"server=localhost;database=mydb;Port=5432;User "
+"Id=myuser;password=mypwd\"/>\n"
+"</connectionStrings>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:473
+#, no-c-format
+msgid ""
+"// Code for TestRaster.ashx\n"
+"<![CDATA[<%@ WebHandler Language=\"C#\" Class=\"TestRaster\" %>\n"
+"using System;\n"
+"using System.Data;\n"
+"using System.Web;\n"
+"using Npgsql;\n"
+"\n"
+"public class TestRaster : IHttpHandler\n"
+"{\n"
+"        public void ProcessRequest(HttpContext context)\n"
+"        {\n"
+"                \n"
+"                context.Response.ContentType = \"image/png\";\n"
+"                context.Response.BinaryWrite(GetResults(context));\n"
+"                \n"
+"        }\n"
+"\n"
+"        public bool IsReusable {\n"
+"                get { return false; }\n"
+"        }\n"
+"\n"
+"        public byte[] GetResults(HttpContext context)\n"
+"        {\n"
+"                byte[] result = null;\n"
+"                NpgsqlCommand command;\n"
+"                string sql = null;\n"
+"                int input_srid = 26986;\n"
+"        try {\n"
+"                    using (NpgsqlConnection conn = new "
+"NpgsqlConnection(System.Configuration.ConfigurationManager."
+"ConnectionStrings[\"DSN\"].ConnectionString)) {\n"
+"                            conn.Open();\n"
+"\n"
+"                if (context.Request[\"srid\"] != null)\n"
+"                {\n"
+"                    input_srid = Convert.ToInt32(context.Request[\"srid"
+"\"]);  \n"
+"                }\n"
+"                sql = @\"SELECT ST_AsPNG(\n"
+"                            ST_Transform(\n"
+"                                        ST_AddBand(\n"
+"                                ST_Union(rast,1), ARRAY[ST_Union(rast,2),"
+"ST_Union(rast,3)])\n"
+"                                                    ,:input_srid) ) As "
+"new_rast \n"
+"                        FROM aerials.boston \n"
+"                                WHERE \n"
+"                                    ST_Intersects(rast, \n"
+"                                    ST_Transform(ST_MakeEnvelope(-71.1217, "
+"42.227, -71.1210, 42.218,4326),26986) )\";\n"
+"                            command = new NpgsqlCommand(sql, conn);\n"
+"                command.Parameters.Add(new NpgsqlParameter(\"input_srid\", "
+"input_srid));\n"
+"           \n"
+"                        \n"
+"                            result = (byte[]) command.ExecuteScalar();\n"
+"                conn.Close();\n"
+"                        }\n"
+"\n"
+"                }\n"
+"        catch (Exception ex)\n"
+"        {\n"
+"            result = null;\n"
+"            context.Response.Write(ex.Message.Trim());\n"
+"        }\n"
+"                return result;\n"
+"        }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:476
+#, no-c-format
+msgid "Java console app that outputs raster query as Image file"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:477
+#, no-c-format
+msgid ""
+"This is a simple java console app that takes a query that returns one image "
+"and outputs to specified file."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:478
+#, no-c-format
+msgid ""
+"You can download the latest PostgreSQL JDBC drivers from <ulink url=\"http://"
+"jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/download."
+"html</ulink>"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:479
+#, no-c-format
+msgid "You can compile the following code using a command something like:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:480
+#, no-c-format
+msgid ""
+"set env CLASSPATH .:..\\postgresql-9.0-801.jdbc4.jar\n"
+"javac SaveQueryImage.java\n"
+"jar cfm SaveQueryImage.jar Manifest.txt *.class"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:481
+#, no-c-format
+msgid "And call it from the command-line with something like"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:482
+#, no-c-format
+msgid ""
+"java -jar SaveQueryImage.jar \"SELECT "
+"ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10, 'quad_segs=2'),150, 150, "
+"'8BUI',100));\" \"test.png\""
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:483
+#, no-c-format
+msgid ""
+"-- Manifest.txt --\n"
+"<![CDATA[Class-Path: postgresql-9.0-801.jdbc4.jar\n"
+"Main-Class: SaveQueryImage]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:484
+#, no-c-format
+msgid ""
+"// Code for SaveQueryImage.java\n"
+"<![CDATA[import java.sql.Connection;\n"
+"import java.sql.SQLException;\n"
+"import java.sql.PreparedStatement;\n"
+"import java.sql.ResultSet;\n"
+"import java.io.*;\n"
+"\n"
+"public class SaveQueryImage {\n"
+"  public static void main(String[] argv) {\n"
+"      System.out.println(\"Checking if Driver is registered with "
+"DriverManager.\");\n"
+"      \n"
+"      try {\n"
+"        //java.sql.DriverManager.registerDriver (new org.postgresql."
+"Driver());\n"
+"        Class.forName(\"org.postgresql.Driver\");\n"
+"      } \n"
+"      catch (ClassNotFoundException cnfe) {\n"
+"        System.out.println(\"Couldn't find the driver!\");\n"
+"        cnfe.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }\n"
+"      \n"
+"      Connection conn = null;\n"
+"      \n"
+"      try {\n"
+"        conn = DriverManager.getConnection(\"jdbc:postgresql://"
+"localhost:5432/mydb\",\"myuser\", \"mypwd\");\n"
+"        conn.setAutoCommit(false);\n"
+"\n"
+"        PreparedStatement sGetImg = conn.prepareStatement(argv[0]);\n"
+"                \n"
+"        ResultSet rs = sGetImg.executeQuery();\n"
+"                \n"
+"                FileOutputStream fout;\n"
+"                try\n"
+"                {\n"
+"                        rs.next();\n"
+"                        /** Output to file name requested by user **/\n"
+"                        fout = new FileOutputStream(new File(argv[1]) );\n"
+"                        fout.write(rs.getBytes(1));\n"
+"                        fout.close();\n"
+"                }\n"
+"                catch(Exception e)\n"
+"                {\n"
+"                        System.out.println(\"Can't create file\");\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"                \n"
+"        rs.close();\n"
+"                sGetImg.close();\n"
+"        conn.close();\n"
+"      } \n"
+"      catch (SQLException se) {\n"
+"        System.out.println(\"Couldn't connect: print out a stack trace and "
+"exit.\");\n"
+"        se.printStackTrace();\n"
+"        System.exit(1);\n"
+"      }   \n"
+"  }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:488
+#, no-c-format
+msgid "Use PLPython to dump out images via SQL"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:489
+#, no-c-format
+msgid ""
+"This is a plpython stored function that creates a file in the server "
+"directory for each record. Requires you have plpython installed. Should work "
+"fine with both plpythonu and plpython3u."
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:491
+#, no-c-format
+msgid ""
+"<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, "
+"param_filepath text)\n"
+"RETURNS text\n"
+"AS $$\n"
+"f = open(param_filepath, 'wb+')\n"
+"f.write(param_bytes)\n"
+"return param_filepath\n"
+"$$ LANGUAGE plpythonu;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: using_raster_dataman.xml:492
+#, no-c-format
+msgid ""
+"--write out 5 images to the PostgreSQL server in varying sizes\n"
+"-- note the postgresql daemon account needs to have write access to folder\n"
+"-- this echos back the file names created;\n"
+" SELECT write_file(ST_AsPNG(\n"
+"        ST_AsRaster(ST_Buffer(ST_Point(1,5),j*5, 'quad_segs=2'),150*j, "
+"150*j, '8BUI',100)),\n"
+"         'C:/temp/slices'|| j || '.png')\n"
+"         FROM generate_series(1,5) As j;\n"
+"         \n"
+"     write_file\n"
+"---------------------\n"
+" C:/temp/slices1.png\n"
+" C:/temp/slices2.png\n"
+" C:/temp/slices3.png\n"
+" C:/temp/slices4.png\n"
+" C:/temp/slices5.png"
+msgstr ""
+
+#. Tag: title
+#: using_raster_dataman.xml:495
+#, no-c-format
+msgid "Outputting Rasters with PSQL"
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:496
+#, no-c-format
+msgid ""
+"Sadly PSQL doesn't have easy to use built-in functionality for outputting "
+"binaries. This is a bit of a hack and based on one of the suggestions "
+"outlined in <ulink url=\"http://people.planetpostgresql.org/andrew/index."
+"php?/archives/196-Clever-trick-challenge.html\">Clever Trick Challenge -- "
+"Outputting bytea with psql</ulink> that piggy backs on PostgreSQL somewhat "
+"legacy large object support. To use first launch your psql commandline "
+"connected to your database."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:499
+#, no-c-format
+msgid ""
+"Unlike the python approach, this approach creates the file on your local "
+"computer."
+msgstr ""
+
+#. Tag: screen
+#: using_raster_dataman.xml:500
+#, no-c-format
+msgid ""
+"SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes\n"
+" FROM \n"
+" ( VALUES (lo_create(0), \n"
+"   ST_AsPNG( (SELECT rast FROM aerials.boston WHERE rid=1) ) \n"
+"  ) ) As v(oid,png);\n"
+"-- you'll get an output something like --\n"
+"   oid   | num_bytes\n"
+"---------+-----------\n"
+" 2630819 |     74860\n"
+" \n"
+"-- next note the oid and do this replacing the c:/test.png to file path "
+"location\n"
+"-- on your local computer\n"
+" \\lo_export 2630819 'C:/temp/aerial_samp.png'\n"
+" \n"
+"-- this deletes the file from large object storage on db\n"
+"SELECT lo_unlink(2630819);"
+msgstr ""
diff --git a/doc/po/pt_BR/extras.xml.po b/doc/po/pt_BR/extras.xml.po
index 475a773..7b2916c 100644
--- a/doc/po/pt_BR/extras.xml.po
+++ b/doc/po/pt_BR/extras.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -14,3 +14,25 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: extras.xml:3
+#, no-c-format
+msgid "PostGIS Extras"
+msgstr ""
+
+#. Tag: para
+#: extras.xml:5
+#, no-c-format
+msgid ""
+"This chapter documents features found in the extras folder of the PostGIS "
+"source tarballs and source repository. These are not always packaged with "
+"PostGIS binary releases, but are usually plpgsql based or standard shell "
+"scripts that can be run as is."
+msgstr ""
+
+#. Tag: chapter
+#: extras.xml:6
+#, no-c-format
+msgid "&extras_tigergeocoder;"
+msgstr ""
diff --git a/doc/po/pt_BR/extras_address_standardizer.xml.po b/doc/po/pt_BR/extras_address_standardizer.xml.po
new file mode 100644
index 0000000..53f7946
--- /dev/null
+++ b/doc/po/pt_BR/extras_address_standardizer.xml.po
@@ -0,0 +1,851 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: extras_address_standardizer.xml:3
+#, no-c-format
+msgid "Address Standardizer"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:4
+#, no-c-format
+msgid ""
+"This is a fork of the <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-11."
+"html\">PAGC standardizer</ulink> (original code for this portion was <ulink "
+"url=\"http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/"
+"postgresql\">PAGC PostgreSQL Address Standardizer</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:5
+#, no-c-format
+msgid ""
+"The address standardizer is a single line address parser that takes an input "
+"address and normalizes it based on a set of rules stored in a table and "
+"helper lex and gaz tables."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:6
+#, no-c-format
+msgid ""
+"The code is built into a single postgresql extension library called "
+"<code>address_standardizer</code> which can be installed with <code>CREATE "
+"EXTENSION address_standardizer;</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:7
+#, no-c-format
+msgid ""
+"The code for this extension can be found in the PostGIS <filename>extensions/"
+"address_standardizer</filename> and is currently self-contained."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:8
+#, no-c-format
+msgid ""
+"For installation instructions refer to: <xref linkend="
+"\"installing_pagc_address_standardizer\"/>."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:9
+#, no-c-format
+msgid "How the Parser Works"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:10
+#, no-c-format
+msgid ""
+"The parser works from right to left looking first at the macro elements for "
+"postcode, state/province, city, and then looks micro elements to determine "
+"if we are dealing with a house number street or intersection or landmark. It "
+"currently does not look for a country code or name, but that could be "
+"introduced in the future."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:17
+#, no-c-format
+msgid "Country code"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:18
+#, no-c-format
+msgid ""
+"Assumed to be US or CA based on: postcode as US or Canada state/province as "
+"US or Canada else US"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:21
+#, no-c-format
+msgid "Postcode/zipcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:22
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c and are relatively simple to make "
+"changes to if needed."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:27
+#, no-c-format
+msgid "State/province"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:28
+#, no-c-format
+msgid ""
+"These are recognized using Perl compatible regular expressions. These regexs "
+"are currently in the parseaddress-api.c but could get moved into includes in "
+"the future for easier maintenance."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:37
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL data types installed by Address "
+"Standardizer extension. Note we describe the casting behavior of these which "
+"is very important especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:42
+#, no-c-format
+msgid "Address Standardizer Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:45
+#, no-c-format
+msgid "stdaddr"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:46
+#, no-c-format
+msgid ""
+"A composite type that consists of the elements of an address. This is the "
+"return type for <varname>standardize_address</varname> function."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:49 extras_address_standardizer.xml:152
+#: extras_address_standardizer.xml:214 extras_address_standardizer.xml:256
+#: extras_address_standardizer.xml:314 extras_address_standardizer.xml:369
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:50
+#, no-c-format
+msgid ""
+"A composite type that consists of elements of an address. This is the return "
+"type for <xref linkend=\"standardize_address\"/> function. Some descriptions "
+"for elements are borrowed from <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#ss12.1\">PAGC Postal Attributes</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:51
+#, no-c-format
+msgid ""
+"The token numbers denote the reference number in the <varname>rules</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:52 extras_address_standardizer.xml:321
+#: extras_address_standardizer.xml:375
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:55
+#, no-c-format
+msgid "building"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:57
+#, no-c-format
+msgid ""
+"is text (token number <code>0</code>): Refers to building number or name. "
+"Unparsed building identifiers and types. Generally blank for most addresses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:60
+#, no-c-format
+msgid "house_num"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:62
+#, no-c-format
+msgid ""
+"is a text (token number <code>1</code>): This is the street number on a "
+"street. Example <emphasis>75</emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:65
+#, no-c-format
+msgid "predir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:66
+#, no-c-format
+msgid ""
+"is text (token number <code>2</code>): STREET NAME PRE-DIRECTIONAL such as "
+"North, South, East, West etc."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:68
+#, no-c-format
+msgid "qual"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:70
+#, no-c-format
+msgid ""
+"is text (token number <code>3</code>): STREET NAME PRE-MODIFIER Example "
+"<emphasis>OLD</emphasis> in <code>3715 OLD HIGHWAY 99</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:73
+#, no-c-format
+msgid "pretype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:75
+#, no-c-format
+msgid "is text (token number <code>4</code>): STREET PREFIX TYPE"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:78
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:80
+#, no-c-format
+msgid "is text (token number <code>5</code>): STREET NAME"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:83
+#, no-c-format
+msgid "suftype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:85
+#, no-c-format
+msgid ""
+"is text (token number <code>6</code>): STREET POST TYPE e.g. St, Ave, Cir. A "
+"street type following the root street name. Example <emphasis>STREET</"
+"emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:88
+#, no-c-format
+msgid "sufdir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:90
+#, no-c-format
+msgid ""
+"is text (token number <code>7</code>): STREET POST-DIRECTIONAL A directional "
+"modifier that follows the street name.. Example <emphasis>WEST</emphasis> in "
+"<code>3715 TENTH AVENUE WEST</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:93
+#, no-c-format
+msgid "ruralroute"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:95
+#, no-c-format
+msgid ""
+"is text (token number <code>8</code>): RURAL ROUTE . Example <emphasis>8</"
+"emphasis> in <code>RR 7</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:98
+#, no-c-format
+msgid "extra"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:100
+#, no-c-format
+msgid "is text: Extra information like Floor number."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:103
+#, no-c-format
+msgid "city"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:105
+#, no-c-format
+msgid "is text (token number <code>10</code>): Example Boston."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:108
+#, no-c-format
+msgid "state"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:110
+#, no-c-format
+msgid ""
+"is text (token number <code>11</code>): Example <code>MASSACHUSETTS</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:113
+#, no-c-format
+msgid "country"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:115
+#, no-c-format
+msgid "is text (token number <code>12</code>): Example <code>USA</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:118
+#, no-c-format
+msgid "postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:120
+#, no-c-format
+msgid ""
+"is text POSTAL CODE (ZIP CODE) (token number <code>13</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:123
+#, no-c-format
+msgid "<term>box</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:125
+#, no-c-format
+msgid ""
+"is text POSTAL BOX NUMBER (token number <code>14 and 15</code>): Example "
+"<code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:128
+#, no-c-format
+msgid "unit"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:130
+#, no-c-format
+msgid ""
+"is text Apartment number or Suite Number (token number <code>17</code>): "
+"Example <emphasis>3B</emphasis> in <code>APT 3B</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:141
+#, no-c-format
+msgid ""
+"This section lists the PostgreSQL table formats used by the "
+"address_standardizer for normalizing addresses. Note that these tables do "
+"not need to be named the same as what is referenced here. You can have "
+"different lex, gaz, rules tables for each country for example or for your "
+"custom geocoder. The names of these tables get passed into the address "
+"standardizer functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:145
+#, no-c-format
+msgid "Address Standardizer Tables"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:148
+#, no-c-format
+msgid "rules table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:149
+#, no-c-format
+msgid ""
+"The rules table contains a set of rules that maps address input sequence "
+"tokens to standardized output sequence"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:153
+#, no-c-format
+msgid ""
+"A rules table must have at least the following columns, though you are "
+"allowed to add more for your own uses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:157 extras_address_standardizer.xml:220
+#: extras_address_standardizer.xml:262
+#, no-c-format
+msgid "<term>id</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:159 extras_address_standardizer.xml:222
+#: extras_address_standardizer.xml:264
+#, no-c-format
+msgid "Primary key of table"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:162
+#, no-c-format
+msgid "rule"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:164
+#, no-c-format
+msgid ""
+"text field denoting the rule. Details at <ulink url=\"http://www.pagcgeo.org/"
+"docs/html/pagc-12.html#--r-rec--\">PAGC Address Standardizer Rule records</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:165
+#, no-c-format
+msgid ""
+"A rule consists of a set of non-negative integers representing input tokens, "
+"terminated by a -1, followed by an equal number of non-negative integers "
+"representing postal attributes, terminated by a -1, followed by an integer "
+"representing a rule type, followed by an integer representing the rank of "
+"the rule. The rules are ranked from 0 (lowest) to 17 (highest)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:166
+#, no-c-format
+msgid ""
+"So for example the rule <code>2 0 2 22 3 -1 5 5 6 7 3 -1 2 6</code> maps to "
+"sequence of tokens <emphasis>TYPE NUMBER TYPE DIRECT QUALIF</emphasis> to "
+"the output sequence <emphasis>STREET STREET SUFTYP SUFDIR QUALIF</emphasis>. "
+"The rule is an ARC_C rule of rank 6."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:171
+#, no-c-format
+msgid "Each rule has a rule type which is denoted by one of following:"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:174
+#, no-c-format
+msgid "MACRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:176
+#, no-c-format
+msgid "(token number = \"0\"). The class of rules for parsing MACRO clauses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:180
+#, no-c-format
+msgid "MICRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:182
+#, no-c-format
+msgid ""
+"(token number = \"1\"). The class of rules for parsing full MICRO clauses "
+"(ie ARC_C plus CIVIC_C). These rules are not used in the build phase."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:186
+#, no-c-format
+msgid "ARC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:188
+#, no-c-format
+msgid ""
+"(token number = \"2\"). The class of rules for parsing MICRO clauses, "
+"excluding the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:192
+#, no-c-format
+msgid "CIVIC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:194
+#, no-c-format
+msgid ""
+"(token number = \"3\"). The class of rules for parsing the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:198
+#, no-c-format
+msgid "EXTRA_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:200
+#, no-c-format
+msgid ""
+"(token number = \"4\"). The class of rules for parsing EXTRA attributes - "
+"attributes excluded from geocoding. These rules are not used in the build "
+"phase."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:210
+#, no-c-format
+msgid "lex table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:211
+#, no-c-format
+msgid ""
+"A lex table is used to classify alphanumeric input and associate that input "
+"with (a) input tokens ( See Input Tokens) and (b) standardized "
+"representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:215
+#, no-c-format
+msgid ""
+"A lex (short for lexicon) table is used to classify alphanumeric input and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. Things you will find in these tables are <code>ONE</code> "
+"mapped to stdworkd: <code>1</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:217
+#, no-c-format
+msgid "A lex has at least the following columns in the table. You may add"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:225 extras_address_standardizer.xml:267
+#, no-c-format
+msgid "<term>seq</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:227 extras_address_standardizer.xml:269
+#, no-c-format
+msgid "integer: definition number?"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:231 extras_address_standardizer.xml:272
+#, no-c-format
+msgid "word"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:233 extras_address_standardizer.xml:274
+#, no-c-format
+msgid "text: the input word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:236 extras_address_standardizer.xml:277
+#, no-c-format
+msgid "stdword"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:238 extras_address_standardizer.xml:279
+#, no-c-format
+msgid "text: the standardized replacement word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:241 extras_address_standardizer.xml:282
+#, no-c-format
+msgid "token"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:243 extras_address_standardizer.xml:284
+#, no-c-format
+msgid ""
+"integer: the kind of word it is. Only if it is used in this context will it "
+"be replaced. Refer to <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12."
+"html#--i-tok--\">PAGC Tokens</ulink>."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:252
+#, no-c-format
+msgid "gaz table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:253
+#, no-c-format
+msgid ""
+"A gaz table is used to standardize place names and associate that input with "
+"(a) input tokens ( See Input Tokens) and (b) standardized representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:257
+#, no-c-format
+msgid ""
+"A gaz (short for gazeteer) table is used to classify place names and "
+"associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/"
+"pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized "
+"representations. For example if you are in US, you may load these with State "
+"Names and associated abbreviations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:259
+#, no-c-format
+msgid ""
+"A gaz table has at least the following columns in the table. You may add "
+"more columns if you wish for your own purposes."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:295
+#, no-c-format
+msgid "Address Standardizer Functions"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:298
+#, no-c-format
+msgid "parse_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:300
+#, no-c-format
+msgid "Takes a 1 line address and breaks into parts"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_address_standardizer.xml:305
+#, no-c-format
+msgid ""
+"<funcdef>record <function>parse_address</function></funcdef> "
+"<paramdef><type>text </type> <parameter>address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:316
+#, no-c-format
+msgid ""
+"Returns takes as input an address, and returns a record output consisting of "
+"fields <emphasis>num</emphasis>, <emphasis>street</emphasis>, "
+"<emphasis>street2</emphasis>, <emphasis>address1</emphasis>, <emphasis>city</"
+"emphasis>, <emphasis>state</emphasis>, <emphasis>zip</emphasis>, "
+"<emphasis>zipplus</emphasis>, <emphasis>country</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:320 extras_address_standardizer.xml:374
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:326 extras_address_standardizer.xml:380
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:328
+#, no-c-format
+msgid ""
+"SELECT num, street, city, zip, zipplus FROM parse_address('1 Devonshire "
+"Place, Boston, MA 02109-1234');\n"
+" num |      street      |  city  |  zip  | zipplus\n"
+"-----+------------------+--------+-------+---------\n"
+" 1   | Devonshire Place | Boston | 02109 | 1234"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:334 extras_address_standardizer.xml:391
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:342
+#, no-c-format
+msgid "standardize_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:344
+#, no-c-format
+msgid ""
+"Returns an stdaddr form of an input address utilizing lex, gaz, and rule "
+"tables."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_address_standardizer.xml:348
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>stdaddr <function>standardize_address</function></"
+"funcdef> <paramdef><type>text </type> <parameter>lextab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>gaztab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>rultab</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>address</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>stdaddr "
+"<function>standardize_address</function></funcdef> <paramdef><type>text </"
+"type> <parameter>lextab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>gaztab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rultab</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>micro</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>macro</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:371
+#, no-c-format
+msgid ""
+"Returns an <xref linkend=\"stdaddr\"/> form of an input address utilizing "
+"<xref linkend=\"lextab\"/> table name, <xref linkend=\"gaztab\"/>, and <xref "
+"linkend=\"rulestab\"/> table names and an address."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:382
+#, no-c-format
+msgid ""
+"SELECT *  FROM standardize_address('tiger.pagc_lex', \n"
+"                           'tiger.pagc_gaz', 'tiger.pagc_rules', 'One "
+"Devonshire Place, PH 301, Boston, MA 02109-1234');"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:384
+#, no-c-format
+msgid ""
+"Make easier to read we'll dump output using hstore extension CREATE "
+"EXTENSION hstore; you need to install"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:385
+#, no-c-format
+msgid ""
+"SELECT (each(hstore(p))).*  \n"
+" FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz', \n"
+"   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA "
+"02109-1234') As p;"
+msgstr ""
+
+#. Tag: screen
+#: extras_address_standardizer.xml:386
+#, no-c-format
+msgid ""
+"key     |      value\n"
+"------------+-----------------\n"
+" box        |\n"
+" city       | BOSTON\n"
+" name       | DEVONSHIRE\n"
+" qual       |\n"
+" unit       | # PENTHOUSE 301\n"
+" extra      |\n"
+" state      | MA\n"
+" predir     |\n"
+" sufdir     |\n"
+" country    | USA\n"
+" pretype    |\n"
+" suftype    | PL\n"
+" building   |\n"
+" postcode   | 02109\n"
+" house_num  | 1\n"
+" ruralroute |\n"
+"(16 rows)"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:393
+#, no-c-format
+msgid ""
+", <xref linkend=\"rulestab\"/>, <xref linkend=\"lextab\"/>, <xref linkend="
+"\"gaztab\"/>, <xref linkend=\"Pagc_Normalize_Address\"/>"
+msgstr ""
diff --git a/doc/po/pt_BR/extras_historytable.xml.po b/doc/po/pt_BR/extras_historytable.xml.po
index ba16bf1..6c19e54 100644
--- a/doc/po/pt_BR/extras_historytable.xml.po
+++ b/doc/po/pt_BR/extras_historytable.xml.po
@@ -1,25 +1,28 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Dauro Lima Sobrinho <daurolima at gmail.com>, 2013
+# Thiago lima santos leão <th1agol1ma12 at gmail.com>, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"PO-Revision-Date: 2013-11-27 20:23+0000\n"
+"Last-Translator: Dauro Lima Sobrinho <daurolima at gmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
+"postgis-1/language/pt_BR/)\n"
+"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #. Tag: title
 #: extras_historytable.xml:3
 #, no-c-format
 msgid "History Tracking"
-msgstr ""
+msgstr "Histórico de Rastreamento"
 
 #. Tag: para
 #: extras_historytable.xml:6
@@ -33,6 +36,14 @@ msgid ""
 "trail of what changes have been made, by whom, and what the past state of "
 "the data is?"
 msgstr ""
+"Suponha que você tenha uma tabela que representa o estado atual de uma "
+"funcionalidade geográfica em particular. Uma tabela de parcelas, or uma "
+"tabela de estradas, or uma tabela de árvores frutíferas, seja o que for. "
+"Geralmente, ferramentas SIG entendem uma tabela como uma entidade única que "
+"pode atualizar, inserir e apagar registros. Como você permite que "
+"ferramentas SIG comuns a trabalhar com os seus dados, mantendo uma trilha de "
+"auditoria de que mudanças foram feitas, por quem, e em que estado o dado "
+"estava?"
 
 #. Tag: para
 #: extras_historytable.xml:10
@@ -41,6 +52,8 @@ msgid ""
 "This <varname>history_table</varname> extra module provides some utility "
 "functions for creating and maintaining history."
 msgstr ""
+"Este <varname>history_table</varname> módulo extra oferece algumas "
+"funcionalidade úteis para criar e manter histórico."
 
 #. Tag: para
 #: extras_historytable.xml:14
@@ -51,6 +64,10 @@ msgid ""
 "plpgsql and located in the <varname>extras/history_table</varname> of "
 "PostGIS source tar balls and source repository."
 msgstr ""
+"A <varname>history_table</varname> também foi empacotada no PostGIS 1.5, mas "
+"adicionada a documentação no PostGIS 2.0. Esse pacote é escrito em plpgsql e "
+"está localizado em <varname>extras/history_table</varname> do código fonte e "
+"do repositório PostGIS."
 
 #. Tag: para
 #: extras_historytable.xml:15
@@ -60,6 +77,9 @@ msgid ""
 "side table, which contains all the columns of the parent table, and the "
 "following additional columns:"
 msgstr ""
+"Se você tem a tabela 'roads', este módulo manterá a 'roads_history' "
+"lateralmente, que contém todas as colunas da tabela pai, e as colunas "
+"adicionais abaixo:"
 
 #. Tag: programlisting
 #: extras_historytable.xml:16
@@ -73,6 +93,17 @@ msgid ""
 "\"current_user\"()\n"
 " current_version | text                        | not null"
 msgstr ""
+"history_id | integer | not null default \n"
+"\n"
+"date_added | timestamp without time zone | not null default now()\n"
+"\n"
+"date_deleted | timestamp without time zone | \n"
+"\n"
+"last_operation | character varying(30) | not null\n"
+"\n"
+"active_user | character varying(90) | not null default \"current_user\"()\n"
+"\n"
+"current_version | text | not null"
 
 #. Tag: para
 #: extras_historytable.xml:20
@@ -83,6 +114,10 @@ msgid ""
 "to NULL, a unique 'history_id', a 'last_operation' of 'INSERT' and "
 "'active_user' set."
 msgstr ""
+"Quando você insere um novo registro em 'roads' uma gravação é "
+"automativamente inserida em 'roads_history', com a 'date_added' preenchido, "
+"a 'date_deleted' com NULL, um único 'history_id', uma 'last_operation' de "
+"'INSERT' e 'active_user' set."
 
 #. Tag: para
 #: extras_historytable.xml:23
@@ -91,6 +126,8 @@ msgid ""
 "When you delete a record in 'roads', the record in the history table is "
 "*not* deleted, but the 'date_deleted' is set to the current date."
 msgstr ""
+"Quando você apaga uma gravação em 'roads', a gravação na tabela histórica "
+"*não* é apagada, mas a 'date_deleted' e determinada com a data atual."
 
 #. Tag: para
 #: extras_historytable.xml:26
@@ -100,6 +137,9 @@ msgid ""
 "filled in and a new record is created with the 'date_added' set and "
 "'date_deleted' NULL."
 msgstr ""
+"Quando você atualização uma gravação em 'roads', a gravação atual tem "
+"'date_deleted' preenchido e uma nova gravação é criada com determinação da "
+"'date-added' e 'date_deleted' NULL."
 
 #. Tag: para
 #: extras_historytable.xml:30
@@ -108,18 +148,20 @@ msgid ""
 "With this information maintained, it is possible to retrieve the history of "
 "any record in the roads table:"
 msgstr ""
+"Com essas informações mantidas, é possível recuperar o histórico de qualquer "
+"gravação na tabela roads:"
 
 #. Tag: programlisting
 #: extras_historytable.xml:31
 #, no-c-format
 msgid "SELECT * FROM roads_history WHERE roads_pk = 111;"
-msgstr ""
+msgstr "SELECT * FROM roads_history WHERE roads_pk = 111;"
 
 #. Tag: para
 #: extras_historytable.xml:33
 #, no-c-format
 msgid "Or, to retrieve a view of the roads table at any point in the past:"
-msgstr ""
+msgstr "Ou, recuperar uma visão da table roads em qualquer ponto do passado:"
 
 #. Tag: programlisting
 #: extras_historytable.xml:34
@@ -129,12 +171,17 @@ msgid ""
 "    WHERE date_added < 'January 1, 2001' AND \n"
 "        ( date_deleted >= 'January 1, 2001' OR date_deleted IS NULL );"
 msgstr ""
+"SELECT * FROM roads_history\n"
+"\n"
+"WHERE date_added < 'January 1, 2001' AND \n"
+"\n"
+"( date_deleted >= 'January 1, 2001' OR date_deleted IS NULL );"
 
 #. Tag: refname
 #: extras_historytable.xml:38
 #, no-c-format
 msgid "Postgis_Install_History"
-msgstr ""
+msgstr "Postgis_Install_History"
 
 #. Tag: refpurpose
 #: extras_historytable.xml:39
@@ -143,6 +190,8 @@ msgid ""
 "Creates a table that will hold some interesting values for managing history "
 "tables."
 msgstr ""
+"Cria uma tabela que irá armazenar alguns valores interessantes para o "
+"gerenciamento de tabelas de histórico."
 
 #. Tag: funcprototype
 #: extras_historytable.xml:44
@@ -151,12 +200,14 @@ msgid ""
 "<funcdef>void <function>Postgis_Install_History</function></funcdef> "
 "<paramdef></paramdef>"
 msgstr ""
+"<funcdef>void <function>Postgis_Install_History</function></funcdef> "
+"<paramdef></paramdef>"
 
 #. Tag: title
 #: extras_historytable.xml:52 extras_historytable.xml:92
 #, no-c-format
 msgid "Description"
-msgstr ""
+msgstr "Descrição"
 
 #. Tag: para
 #: extras_historytable.xml:54
@@ -165,36 +216,39 @@ msgid ""
 "Creates a table that will hold some interesting values for managing history "
 "tables. Creates a table called <varname>historic_information</varname>"
 msgstr ""
+"Cria uma tabela que irá armazenar alguns valores interessantes para o "
+"gerenciamento de tabelas de histórico.\n"
+"Cria uma tabela chamada <varname>historic_information</varname>"
 
 #. Tag: para
 #: extras_historytable.xml:58 extras_historytable.xml:100
 #, no-c-format
 msgid "Availability: 1.5.0"
-msgstr ""
+msgstr "Disponibilidade: 1.5.0"
 
 #. Tag: title
 #: extras_historytable.xml:63 extras_historytable.xml:105
 #, no-c-format
 msgid "Examples"
-msgstr ""
+msgstr "Exemplos"
 
 #. Tag: programlisting
 #: extras_historytable.xml:65
 #, no-c-format
 msgid "SELECT postgis_install_history();"
-msgstr ""
+msgstr "SELECT postgis_install_history();"
 
 #. Tag: title
 #: extras_historytable.xml:71 extras_historytable.xml:113
 #, no-c-format
 msgid "See Also"
-msgstr ""
+msgstr "Veja também."
 
 #. Tag: refname
 #: extras_historytable.xml:77
 #, no-c-format
 msgid "Postgis_Enable_History"
-msgstr ""
+msgstr "Postgis_Enable_History"
 
 #. Tag: refpurpose
 #: extras_historytable.xml:78
@@ -203,6 +257,8 @@ msgid ""
 "Registers a tablein the history_information table for tracking and also adds "
 "in side line history table and insert, update, delete rules on the table."
 msgstr ""
+"Registra na tabela history_information para rastreamento e também para "
+"adicionar na tabela history e inserir, atualizar e apagar regras na tabela."
 
 #. Tag: funcprototype
 #: extras_historytable.xml:83
@@ -212,6 +268,9 @@ msgid ""
 "<paramdef><type>text </type> <parameter>p_schema</parameter></paramdef> "
 "<paramdef><type>text </type> <parameter>p_table</parameter></paramdef>"
 msgstr ""
+"<funcdef>boolean <function>Postgis_Enable_History</function></funcdef> "
+"<paramdef><type>text </type> <parameter>p_schema</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>p_table</parameter></paramdef>"
 
 #. Tag: para
 #: extras_historytable.xml:94
@@ -223,6 +282,11 @@ msgid ""
 "insert, update, delete rules on the table. Any inserts,updates,deletes of "
 "the geometry are recorded in the history table."
 msgstr ""
+"Registra na table history_information para rastreamento e também para "
+"adicionar na tabela history com o mesmo nome da tabela, mas com o prefixo "
+"<varname>history</varname> no mesmo esquema como tabela original. Coloca nas "
+"regras de  inserção, atualização e deleção na tabela. Qualquer inserção, "
+"atualização e deleção de uma geometria são gravadas na tabela de histórico."
 
 #. Tag: para
 #: extras_historytable.xml:97
@@ -232,6 +296,9 @@ msgid ""
 "<varname>geometry_columns</varname> and fails if the geometry column is not "
 "present in <varname>geometry_columns</varname> table."
 msgstr ""
+"Esta função atualmente depende da coluna geometria sendo registrada em "
+"<varname>geometry_columns</varname> e falhas se a coluna geometria não "
+"estiver presente na table <varname>geometry_columns</varname>."
 
 #. Tag: programlisting
 #: extras_historytable.xml:107
@@ -258,3 +325,30 @@ msgid ""
 "------------------------+----------------+-----------------\n"
 " 2011-02-07 12:44:36.92 | INSERT         | 2"
 msgstr ""
+"CREATE TABLE roads(gid SERIAL PRIMARY KEY, road_name varchar(150));\n"
+"\n"
+"SELECT AddGeometryColumn('roads', 'geom', 26986, 'LINESTRING', 2);\n"
+"\n"
+"SELECT postgis_enable_history('public', 'roads', 'geom') As register_table;\n"
+"\n"
+"register_table\n"
+"\n"
+"--------------\n"
+"\n"
+"INSERT INTO roads(road_name, geom) \n"
+"VALUES('Test Street', ST_GeomFromText('LINESTRING(231660.5 832170,231647 "
+"832202,231627.5 832250.5)',26986));\n"
+"\n"
+"-- checagem detalhada da transação --\n"
+"\n"
+"SELECT date_added, last_operation, current_version \n"
+"\n"
+"FROM roads_history \n"
+"\n"
+"WHERE road_name = 'Test Street' ORDER BY date_added DESC;\n"
+"\n"
+"date_added | last_operation | current_version\n"
+"\n"
+"------------------------+----------------+-----------------\n"
+"\n"
+"2011-02-07 12:44:36.92 | INSERT | 2"
diff --git a/doc/po/pt_BR/extras_tigergeocoder.xml.po b/doc/po/pt_BR/extras_tigergeocoder.xml.po
index 4084fcd..f23a48d 100644
--- a/doc/po/pt_BR/extras_tigergeocoder.xml.po
+++ b/doc/po/pt_BR/extras_tigergeocoder.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -22,24 +22,22 @@ msgid ""
 "A plpgsql based geocoder written to work with the <ulink url=\"http://www."
 "census.gov/geo/www/tiger/\">TIGER (Topologically Integrated Geographic "
 "Encoding and Referencing system ) / Line and Master Address database export</"
-"ulink> released by the US Census Bureau. In versions prior to 2008 the TIGER "
-"files were released in ASCII format. The older geocoder used to work with "
-"that format and is available in PostGIS source 1.5 and below in "
-"<varname>extras/tiger_geocoder/tiger_2006andbefore</varname>."
+"ulink> released by the US Census Bureau."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:8
+#: extras_tigergeocoder.xml:7
 #, no-c-format
 msgid ""
 "There are four components to the geocoder: the data loader functions, the "
 "address normalizer, the address geocoder, and the reverse geocoder. The "
-"latest version updated to use the TIGER 2011 census data is located in the "
-"<varname>extras/tiger_geocoder/tiger_2011</varname> folder."
+"latest version updated to use the TIGER 2011 and 2012 census data is located "
+"in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder. It "
+"defaults to downloading and installing TIGER 2012 files."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:9
+#: extras_tigergeocoder.xml:8
 #, no-c-format
 msgid ""
 "Although it is designed specifically for the US, a lot of the concepts and "
@@ -48,7 +46,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:10
+#: extras_tigergeocoder.xml:9
 #, no-c-format
 msgid ""
 "The script builds a schema called <varname>tiger</varname> to house all the "
@@ -58,7 +56,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:11
+#: extras_tigergeocoder.xml:10
 #, no-c-format
 msgid ""
 "Another schema called <varname>tiger_data</varname> is also created which "
@@ -72,7 +70,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:13
+#: extras_tigergeocoder.xml:12
 #, no-c-format
 msgid ""
 "All the geocode functions only reference the base tables, so there is no "
@@ -83,29 +81,53 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:17
+#: extras_tigergeocoder.xml:16
 #, no-c-format
 msgid ""
 "If you are using tiger geocoder (tiger_2010), you can upgrade the scripts "
 "using the accompanying upgrade_geocoder.bat / .sh scripts in tiger_2011. One "
-"major change between <varname>tiger_2010</varname> and <varname>tiger_2011</"
-"varname> is that the county and <varname>county</varname> and "
+"major change between <varname>tiger_2010</varname> and <varname>tiger_2011/"
+"tiger_2012</varname> is that the county and <varname>county</varname> and "
 "<varname>state</varname> tables are no longer broken out by state. We'll be "
 "refining the upgrade scripts until release. If you have data from tiger_2010 "
-"and want replace with tiger_2011 refer to <xref linkend="
+"and want replace with tiger_2012 refer to <xref linkend="
 "\"upgrade_tiger_geocoder\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:24
+#: extras_tigergeocoder.xml:23
 #, no-c-format
-msgid "Design:"
+msgid ""
+"New in PostGIS 2.1.0 release is ability to install tiger geocoder with "
+"PostgreSQL extension model if you are running PostgreSQL 9.1+. Refer to "
+"<xref linkend=\"install_tiger_geocoder_extension\"/> for details."
 msgstr ""
 
 #. Tag: para
 #: extras_tigergeocoder.xml:25
 #, no-c-format
 msgid ""
+"Also new in PostGIS 2.1.0 is integration with pagc address standardizer "
+"PostgreSQL extension which source can be downloaded from <ulink url=\"http://"
+"sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql\">PAGC "
+"PostgreSQL address standardizer extension</ulink> and after install and "
+"install of the library in your PostGIS database, you can use the <xref "
+"linkend=\"Pagc_Normalize_Address\"/> function as a drop in replacement for "
+"in-built <xref linkend=\"Normalize_Address\"/>. Refer to <xref linkend="
+"\"installing_pagc_address_standardizer\"/> for compile and installation "
+"instructions."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:29
+#, no-c-format
+msgid "Design:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:30
+#, no-c-format
+msgid ""
 "The goal of this project is to build a fully functional geocoder that can "
 "process an arbitrary United States address string and using normalized TIGER "
 "census data, produce a point geometry and rating reflecting the location of "
@@ -114,7 +136,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:27
+#: extras_tigergeocoder.xml:32
 #, no-c-format
 msgid ""
 "The <varname>reverse_geocode</varname> function, introduced in PostGIS 2.0.0 "
@@ -123,7 +145,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:28
+#: extras_tigergeocoder.xml:33
 #, no-c-format
 msgid ""
 "The geocoder should be simple for anyone familiar with PostGIS to install "
@@ -132,7 +154,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:29
+#: extras_tigergeocoder.xml:34
 #, no-c-format
 msgid ""
 "It should be robust enough to function properly despite formatting and "
@@ -140,7 +162,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:30
+#: extras_tigergeocoder.xml:35
 #, no-c-format
 msgid ""
 "It should be extensible enough to be used with future data updates, or "
@@ -148,7 +170,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:32
+#: extras_tigergeocoder.xml:37
 #, no-c-format
 msgid ""
 "The <varname>tiger</varname> schema must be added to the database search "
@@ -156,13 +178,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:36
+#: extras_tigergeocoder.xml:41
 #, no-c-format
 msgid "Tiger Geocoder"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:38
+#: extras_tigergeocoder.xml:43
 #, no-c-format
 msgid ""
 "There are a couple other open source geocoders for PostGIS, that unlike "
@@ -170,7 +192,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:40
+#: extras_tigergeocoder.xml:45
 #, no-c-format
 msgid ""
 "<ulink url=\"http://wiki.openstreetmap.org/wiki/Nominatim\">Nominatim</"
@@ -184,7 +206,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:43
+#: extras_tigergeocoder.xml:48
 #, no-c-format
 msgid ""
 "<ulink url=\"http://www.gisgraphy.com/\">GIS Graphy</ulink> also utilizes "
@@ -196,13 +218,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:48
+#: extras_tigergeocoder.xml:53
 #, no-c-format
 msgid "Drop_Indexes_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:50
+#: extras_tigergeocoder.xml:55
 #, no-c-format
 msgid ""
 "<refpurpose>Generates a script that drops all non-primary key and non-unique "
@@ -211,7 +233,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:55
+#: extras_tigergeocoder.xml:60
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef> "
@@ -220,21 +242,21 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:63 extras_tigergeocoder.xml:106
-#: extras_tigergeocoder.xml:148 extras_tigergeocoder.xml:204
-#: extras_tigergeocoder.xml:266 extras_tigergeocoder.xml:311
-#: extras_tigergeocoder.xml:351 extras_tigergeocoder.xml:390
-#: extras_tigergeocoder.xml:435 extras_tigergeocoder.xml:493
-#: extras_tigergeocoder.xml:550 extras_tigergeocoder.xml:605
-#: extras_tigergeocoder.xml:650 extras_tigergeocoder.xml:728
-#: extras_tigergeocoder.xml:775 extras_tigergeocoder.xml:847
-#: extras_tigergeocoder.xml:912
+#: extras_tigergeocoder.xml:68 extras_tigergeocoder.xml:110
+#: extras_tigergeocoder.xml:152 extras_tigergeocoder.xml:208
+#: extras_tigergeocoder.xml:270 extras_tigergeocoder.xml:315
+#: extras_tigergeocoder.xml:355 extras_tigergeocoder.xml:394
+#: extras_tigergeocoder.xml:439 extras_tigergeocoder.xml:497
+#: extras_tigergeocoder.xml:554 extras_tigergeocoder.xml:609
+#: extras_tigergeocoder.xml:654 extras_tigergeocoder.xml:733
+#: extras_tigergeocoder.xml:818 extras_tigergeocoder.xml:865
+#: extras_tigergeocoder.xml:937 extras_tigergeocoder.xml:1002
 #, no-c-format
 msgid "Description"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:65
+#: extras_tigergeocoder.xml:70
 #, no-c-format
 msgid ""
 "<para>Generates a script that drops all non-primary key and non-unique "
@@ -243,7 +265,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:66
+#: extras_tigergeocoder.xml:71
 #, no-c-format
 msgid ""
 "This is useful for minimizing index bloat that may confuse the query planner "
@@ -252,28 +274,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:69 extras_tigergeocoder.xml:154
-#: extras_tigergeocoder.xml:273 extras_tigergeocoder.xml:355
-#: extras_tigergeocoder.xml:398 extras_tigergeocoder.xml:453
-#: extras_tigergeocoder.xml:613 extras_tigergeocoder.xml:801
-#: extras_tigergeocoder.xml:873
+#: extras_tigergeocoder.xml:74 extras_tigergeocoder.xml:158
+#: extras_tigergeocoder.xml:277 extras_tigergeocoder.xml:359
+#: extras_tigergeocoder.xml:402 extras_tigergeocoder.xml:457
+#: extras_tigergeocoder.xml:617 extras_tigergeocoder.xml:891
+#: extras_tigergeocoder.xml:963
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:76 extras_tigergeocoder.xml:118
-#: extras_tigergeocoder.xml:161 extras_tigergeocoder.xml:405
-#: extras_tigergeocoder.xml:460 extras_tigergeocoder.xml:518
-#: extras_tigergeocoder.xml:573 extras_tigergeocoder.xml:620
-#: extras_tigergeocoder.xml:696 extras_tigergeocoder.xml:738
-#: extras_tigergeocoder.xml:806
+#: extras_tigergeocoder.xml:81 extras_tigergeocoder.xml:122
+#: extras_tigergeocoder.xml:165 extras_tigergeocoder.xml:409
+#: extras_tigergeocoder.xml:464 extras_tigergeocoder.xml:522
+#: extras_tigergeocoder.xml:577 extras_tigergeocoder.xml:624
+#: extras_tigergeocoder.xml:700 extras_tigergeocoder.xml:784
+#: extras_tigergeocoder.xml:828 extras_tigergeocoder.xml:896
 #, no-c-format
 msgid "Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:77
+#: extras_tigergeocoder.xml:82
 #, no-c-format
 msgid ""
 "SELECT drop_indexes_generate_script() As actionsql;\n"
@@ -313,33 +335,33 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:83 extras_tigergeocoder.xml:125
-#: extras_tigergeocoder.xml:168 extras_tigergeocoder.xml:235
-#: extras_tigergeocoder.xml:289 extras_tigergeocoder.xml:328
-#: extras_tigergeocoder.xml:368 extras_tigergeocoder.xml:412
-#: extras_tigergeocoder.xml:470 extras_tigergeocoder.xml:528
-#: extras_tigergeocoder.xml:582 extras_tigergeocoder.xml:627
-#: extras_tigergeocoder.xml:706 extras_tigergeocoder.xml:749
-#: extras_tigergeocoder.xml:821 extras_tigergeocoder.xml:889
-#: extras_tigergeocoder.xml:929
+#: extras_tigergeocoder.xml:88 extras_tigergeocoder.xml:129
+#: extras_tigergeocoder.xml:172 extras_tigergeocoder.xml:239
+#: extras_tigergeocoder.xml:293 extras_tigergeocoder.xml:332
+#: extras_tigergeocoder.xml:372 extras_tigergeocoder.xml:416
+#: extras_tigergeocoder.xml:474 extras_tigergeocoder.xml:532
+#: extras_tigergeocoder.xml:586 extras_tigergeocoder.xml:631
+#: extras_tigergeocoder.xml:710 extras_tigergeocoder.xml:796
+#: extras_tigergeocoder.xml:839 extras_tigergeocoder.xml:911
+#: extras_tigergeocoder.xml:979 extras_tigergeocoder.xml:1019
 #, no-c-format
 msgid "See Also"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:84 extras_tigergeocoder.xml:413
+#: extras_tigergeocoder.xml:89 extras_tigergeocoder.xml:417
 #, no-c-format
 msgid ", <xref linkend=\"Missing_Indexes_Generate_Script\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:90
+#: extras_tigergeocoder.xml:95
 #, no-c-format
 msgid "Drop_Nation_Tables_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:92
+#: extras_tigergeocoder.xml:97
 #, no-c-format
 msgid ""
 "Generates a script that drops all tables in the specified schema that start "
@@ -348,17 +370,16 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:97 extras_tigergeocoder.xml:139
+#: extras_tigergeocoder.xml:102
 #, no-c-format
 msgid ""
-"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
-"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<funcdef>text <function>Drop_Nation_Tables_Generate_Script</function></"
+"funcdef> <paramdef choice=\"opt\"><type>text </type> "
 "<parameter>param_schema=tiger_data</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:108
+#: extras_tigergeocoder.xml:112
 #, no-c-format
 msgid ""
 "Generates a script that drops all tables in the specified schema that start "
@@ -369,14 +390,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:111 extras_tigergeocoder.xml:316
-#: extras_tigergeocoder.xml:567 extras_tigergeocoder.xml:916
+#: extras_tigergeocoder.xml:115 extras_tigergeocoder.xml:320
+#: extras_tigergeocoder.xml:571 extras_tigergeocoder.xml:742
+#: extras_tigergeocoder.xml:1006
 #, no-c-format
 msgid "Availability: 2.1.0"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:119
+#: extras_tigergeocoder.xml:123
 #, no-c-format
 msgid ""
 "SELECT drop_nation_tables_generate_script();\n"
@@ -388,13 +410,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:132
+#: extras_tigergeocoder.xml:136
 #, no-c-format
 msgid "Drop_State_Tables_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:134
+#: extras_tigergeocoder.xml:138
 #, no-c-format
 msgid ""
 "Generates a script that drops all tables in the specified schema that are "
@@ -402,8 +424,18 @@ msgid ""
 "<varname>tiger_data</varname> if no schema is specified."
 msgstr ""
 
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:143
+#, no-c-format
+msgid ""
+"<funcdef>text <function>Drop_State_Tables_Generate_Script</function></"
+"funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
 #. Tag: para
-#: extras_tigergeocoder.xml:150
+#: extras_tigergeocoder.xml:154
 #, no-c-format
 msgid ""
 "Generates a script that drops all tables in the specified schema that are "
@@ -414,7 +446,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:162
+#: extras_tigergeocoder.xml:166
 #, no-c-format
 msgid ""
 "SELECT drop_state_tables_generate_script('PA');\n"
@@ -433,13 +465,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:174
+#: extras_tigergeocoder.xml:178
 #, no-c-format
 msgid "Geocode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:176
+#: extras_tigergeocoder.xml:180
 #, no-c-format
 msgid ""
 "Takes in an address as a string (or other normalized address) and outputs a "
@@ -451,7 +483,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_tigergeocoder.xml:181
+#: extras_tigergeocoder.xml:185
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>setof record <function>geocode</function></funcdef> "
@@ -475,7 +507,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:206
+#: extras_tigergeocoder.xml:210
 #, no-c-format
 msgid ""
 "Takes in an address as a string (or already normalized address) and outputs "
@@ -491,7 +523,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:210
+#: extras_tigergeocoder.xml:214
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 to support Tiger 2010 structured data and revised some logic "
@@ -501,14 +533,14 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:216 extras_tigergeocoder.xml:279
-#: extras_tigergeocoder.xml:361
+#: extras_tigergeocoder.xml:220 extras_tigergeocoder.xml:283
+#: extras_tigergeocoder.xml:365
 #, no-c-format
 msgid "Examples: Basic"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:217
+#: extras_tigergeocoder.xml:221
 #, no-c-format
 msgid ""
 "The below examples timings are on a 3.0 GHZ single processor Windows 7 "
@@ -517,13 +549,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:218
+#: extras_tigergeocoder.xml:222
 #, no-c-format
 msgid "Exact matches are faster to compute (61ms)"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:219
+#: extras_tigergeocoder.xml:223
 #, no-c-format
 msgid ""
 "SELECT g.rating, ST_X(g.geomout) As lon, ST_Y(g.geomout) As lat, \n"
@@ -540,14 +572,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:220
+#: extras_tigergeocoder.xml:224
 #, no-c-format
 msgid ""
 "Even if zip is not passed in the geocoder can guess (took about 122-150 ms)"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:221
+#: extras_tigergeocoder.xml:225
 #, no-c-format
 msgid ""
 "SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
@@ -564,7 +596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:222
+#: extras_tigergeocoder.xml:226
 #, no-c-format
 msgid ""
 "Can handle misspellings and provides more than one possible solution with "
@@ -572,7 +604,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:223
+#: extras_tigergeocoder.xml:227
 #, no-c-format
 msgid ""
 "SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
@@ -589,7 +621,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:225
+#: extras_tigergeocoder.xml:229
 #, no-c-format
 msgid ""
 "Using to do a batch geocode of addresses. Easiest is to set "
@@ -598,7 +630,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:226
+#: extras_tigergeocoder.xml:230
 #, no-c-format
 msgid ""
 "CREATE TABLE addresses_to_geocode(addid serial PRIMARY KEY, address text,\n"
@@ -653,13 +685,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:229
+#: extras_tigergeocoder.xml:233
 #, no-c-format
 msgid "Examples: Using Geometry filter"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:230
+#: extras_tigergeocoder.xml:234
 #, no-c-format
 msgid ""
 "SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
@@ -683,7 +715,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:236
+#: extras_tigergeocoder.xml:240
 #, no-c-format
 msgid ""
 ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
@@ -692,13 +724,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:242
+#: extras_tigergeocoder.xml:246
 #, no-c-format
 msgid "Geocode_Intersection"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:244
+#: extras_tigergeocoder.xml:248
 #, no-c-format
 msgid ""
 "Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
@@ -710,7 +742,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:250
+#: extras_tigergeocoder.xml:254
 #, no-c-format
 msgid ""
 "<funcdef>setof record <function>geocode_intersection</function></funcdef> "
@@ -727,7 +759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:268
+#: extras_tigergeocoder.xml:272
 #, no-c-format
 msgid ""
 "Takes in 2 streets that intersect and a state, city, zip, and outputs a set "
@@ -743,7 +775,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:280
+#: extras_tigergeocoder.xml:284
 #, no-c-format
 msgid ""
 "The below examples timings are on a 3.0 GHZ single processor Windows 7 "
@@ -752,7 +784,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:281
+#: extras_tigergeocoder.xml:285
 #, no-c-format
 msgid ""
 "Testing on Windows 2003 64-bit 8GB on PostGIS 2.0 PostgreSQL 64-bit Tiger "
@@ -760,7 +792,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:282
+#: extras_tigergeocoder.xml:286
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(addy), st_astext(geomout),rating \n"
@@ -772,7 +804,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:283
+#: extras_tigergeocoder.xml:287
 #, no-c-format
 msgid ""
 "Even if zip is not passed in the geocoder can guess (took about 3500 ms on "
@@ -780,7 +812,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:284
+#: extras_tigergeocoder.xml:288
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(addy), st_astext(geomout),rating \n"
@@ -793,26 +825,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:290
+#: extras_tigergeocoder.xml:294
 #, no-c-format
 msgid ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:296
+#: extras_tigergeocoder.xml:300
 #, no-c-format
 msgid "Get_Geocode_Setting"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:298
+#: extras_tigergeocoder.xml:302
 #, no-c-format
 msgid ""
 "Returns value of specific setting stored in tiger.geocode_settings table."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:303
+#: extras_tigergeocoder.xml:307
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Get_Geocode_Setting</function></funcdef> "
@@ -820,7 +852,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:313
+#: extras_tigergeocoder.xml:317
 #, no-c-format
 msgid ""
 "Returns value of specific setting stored in tiger.geocode_settings table. "
@@ -829,39 +861,43 @@ msgid ""
 msgstr ""
 
 #. Tag: screen
-#: extras_tigergeocoder.xml:314
-#, no-c-format
-msgid ""
-"name       | category |        "
-"short_desc                                                           \n"
-"----------------------------+----------"
-"+----------------------------------------------------------------------------------\n"
-" debug_geocode_address      | debug    | outputs debug information in notice "
-"log such as queries \n"
-"                                       |  when geocode_addresss is called if "
-"true\n"
-" debug_geocode_intersection | debug    | outputs debug information in notice "
-"log such as queries \n"
-"                                       |  when geocode_intersection is "
+#: extras_tigergeocoder.xml:318
+#, no-c-format
+msgid ""
+"name              | setting |  unit   | category  "
+"|                                                             short_desc\n"
+"--------------------------------+---------+---------+-----------"
+"+------------------------------------------------------------------------------------------------------\n"
+" debug_geocode_address          | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_addresss is "
 "called if true\n"
-" debug_normalize_address    | debug    | outputs debug information in notice "
-"log such as queries \n"
-"                                       |  and intermediate expressions when "
-"normalize_address is called if true\n"
-" debug_reverse_geocode      | debug    | if true, outputs debug information "
-"in notice log \n"
-"                                         such as queries and intermediate "
-"expressions when reverse_geocode"
+" debug_geocode_intersection     | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries when geocode_intersection is "
+"called if true\n"
+" debug_normalize_address        | false   | boolean | debug     | outputs "
+"debug information in notice log such as queries \n"
+"                                |         |         |           |   and "
+"intermediate expressions when normalize_address is called if true\n"
+" debug_reverse_geocode          | false   | boolean | debug     | if true, "
+"outputs debug information in notice log such as queries \n"
+"                                                                |  and "
+"intermediate expressions when reverse_geocode\n"
+" reverse_geocode_numbered_roads | 0       | integer | rating    | For state "
+"and county highways, 0 - no preference in name\n"
+"                                |         |         |           |  , 1 - "
+"prefer the numbered highway name, 2 - prefer local state/county name\n"
+" use_pagc_address_parser        | false   | boolean | normalize | If set to "
+"true, will try to use the pagc_address normalizer instead of tiger built one"
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:322 extras_tigergeocoder.xml:922
+#: extras_tigergeocoder.xml:326 extras_tigergeocoder.xml:1012
 #, no-c-format
 msgid "Example return debugging setting"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:323
+#: extras_tigergeocoder.xml:327
 #, no-c-format
 msgid ""
 "SELECT get_geocode_setting('debug_geocode_address) As result;\n"
@@ -871,13 +907,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:335
+#: extras_tigergeocoder.xml:339
 #, no-c-format
 msgid "Get_Tract"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:337
+#: extras_tigergeocoder.xml:341
 #, no-c-format
 msgid ""
 "Returns census tract or field from tract table of where the geometry is "
@@ -885,7 +921,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:342
+#: extras_tigergeocoder.xml:346
 #, no-c-format
 msgid ""
 "<funcdef>text <function>get_tract</function></funcdef> "
@@ -895,7 +931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:353
+#: extras_tigergeocoder.xml:357
 #, no-c-format
 msgid ""
 "Given a geometry will return the census tract location of that geometry. NAD "
@@ -903,7 +939,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:362
+#: extras_tigergeocoder.xml:366
 #, no-c-format
 msgid ""
 "SELECT get_tract(ST_Point(-71.101375, 42.31376) ) As tract_name;\n"
@@ -913,7 +949,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:363
+#: extras_tigergeocoder.xml:367
 #, no-c-format
 msgid ""
 "--this one returns the tiger geoid\n"
@@ -924,19 +960,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:369
+#: extras_tigergeocoder.xml:373
 #, no-c-format
 msgid "<para>></para>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:375
+#: extras_tigergeocoder.xml:379
 #, no-c-format
 msgid "Install_Missing_Indexes"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:377
+#: extras_tigergeocoder.xml:381
 #, no-c-format
 msgid ""
 "Finds all tables with key columns used in geocoder joins and filter "
@@ -944,7 +980,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:382
+#: extras_tigergeocoder.xml:386
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>Install_Missing_Indexes</function></funcdef> "
@@ -952,7 +988,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:392
+#: extras_tigergeocoder.xml:396
 #, no-c-format
 msgid ""
 "Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
@@ -967,7 +1003,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:406
+#: extras_tigergeocoder.xml:410
 #, no-c-format
 msgid ""
 "SELECT install_missing_indexes();\n"
@@ -977,13 +1013,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:419
+#: extras_tigergeocoder.xml:423
 #, no-c-format
 msgid "Loader_Generate_Census_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:421
+#: extras_tigergeocoder.xml:425
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform for the specified states "
@@ -993,7 +1029,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:426
+#: extras_tigergeocoder.xml:430
 #, no-c-format
 msgid ""
 "<funcdef>setof text <function>loader_generate_census_script</function></"
@@ -1002,7 +1038,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:437
+#: extras_tigergeocoder.xml:441
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform for the specified states "
@@ -1013,7 +1049,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:438
+#: extras_tigergeocoder.xml:442
 #, no-c-format
 msgid ""
 "It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
@@ -1023,7 +1059,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:440 extras_tigergeocoder.xml:498
+#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502
 #, no-c-format
 msgid ""
 "It uses the following control tables to control the process and different OS "
@@ -1031,8 +1067,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502
-#: extras_tigergeocoder.xml:558
+#: extras_tigergeocoder.xml:448 extras_tigergeocoder.xml:506
+#: extras_tigergeocoder.xml:562
 #, no-c-format
 msgid ""
 "<varname>loader_variables</varname> keeps track of various variables such as "
@@ -1040,7 +1076,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:447 extras_tigergeocoder.xml:505
+#: extras_tigergeocoder.xml:451 extras_tigergeocoder.xml:509
 #, no-c-format
 msgid ""
 "<varname>loader_platform</varname> profiles of various platforms and where "
@@ -1049,8 +1085,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:450 extras_tigergeocoder.xml:508
-#: extras_tigergeocoder.xml:564
+#: extras_tigergeocoder.xml:454 extras_tigergeocoder.xml:512
+#: extras_tigergeocoder.xml:568
 #, no-c-format
 msgid ""
 "<varname>loader_lookuptables</varname> each record defines a kind of table "
@@ -1062,7 +1098,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:454
+#: extras_tigergeocoder.xml:458
 #, no-c-format
 msgid ""
 "includes this logic, but if you installed tiger geocoder prior to PostGIS "
@@ -1071,7 +1107,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:461
+#: extras_tigergeocoder.xml:465
 #, no-c-format
 msgid ""
 "Generate script to load up data for select states in Windows shell script "
@@ -1079,7 +1115,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:462
+#: extras_tigergeocoder.xml:466
 #, no-c-format
 msgid ""
 "SELECT loader_generate_census_script(ARRAY['MA'], 'windows');\n"
@@ -1113,8 +1149,8 @@ msgid ""
 "%SHP2PGSQL% -c -s 4269 -g the_geom   -W \"latin1\" tl_2010_25_tract10.dbf "
 "tiger_staging.ma_tract10 | %PSQL%\n"
 "%PSQL% -c \"ALTER TABLE tiger_staging.MA_tract10 RENAME geoid10 TO "
-"tract_id;  SELECT loader_load_staged_data(lower('MA_tract10'), lower"
-"('MA_tract')); \"\n"
+"tract_id;  SELECT loader_load_staged_data(lower('MA_tract10'), "
+"lower('MA_tract')); \"\n"
 "%PSQL% -c \"CREATE INDEX tiger_data_MA_tract_the_geom_gist ON tiger_data."
 "MA_tract USING gist(the_geom);\"\n"
 "%PSQL% -c \"VACUUM ANALYZE tiger_data.MA_tract;\"\n"
@@ -1124,13 +1160,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:463 extras_tigergeocoder.xml:521
+#: extras_tigergeocoder.xml:467 extras_tigergeocoder.xml:525
 #, no-c-format
 msgid "Generate sh script"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:464
+#: extras_tigergeocoder.xml:468
 #, no-c-format
 msgid ""
 "STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts\" \n"
@@ -1160,13 +1196,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:477
+#: extras_tigergeocoder.xml:481
 #, no-c-format
 msgid "Loader_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:479
+#: extras_tigergeocoder.xml:483
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform for the specified states "
@@ -1177,7 +1213,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:484
+#: extras_tigergeocoder.xml:488
 #, no-c-format
 msgid ""
 "<funcdef>setof text <function>loader_generate_script</function></funcdef> "
@@ -1186,7 +1222,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:495
+#: extras_tigergeocoder.xml:499
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform for the specified states "
@@ -1195,7 +1231,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:496
+#: extras_tigergeocoder.xml:500
 #, no-c-format
 msgid ""
 "It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
@@ -1206,7 +1242,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:511
+#: extras_tigergeocoder.xml:515
 #, no-c-format
 msgid ""
 "Availability: 2.0.0 to support Tiger 2010 structured data and load census "
@@ -1214,14 +1250,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:519
+#: extras_tigergeocoder.xml:523
 #, no-c-format
 msgid ""
 "Generate script to load up data for 2 states in Windows shell script format."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:520
+#: extras_tigergeocoder.xml:524
 #, no-c-format
 msgid ""
 "SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;\n"
@@ -1248,7 +1284,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:522
+#: extras_tigergeocoder.xml:526
 #, no-c-format
 msgid ""
 "SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;\n"
@@ -1271,13 +1307,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:535
+#: extras_tigergeocoder.xml:539
 #, no-c-format
 msgid "Loader_Generate_Nation_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:537
+#: extras_tigergeocoder.xml:541
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform that loads in the county "
@@ -1285,7 +1321,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:542
+#: extras_tigergeocoder.xml:546
 #, no-c-format
 msgid ""
 "<funcdef>text <function>loader_generate_nation_script</function></funcdef> "
@@ -1293,7 +1329,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:552
+#: extras_tigergeocoder.xml:556
 #, no-c-format
 msgid ""
 "Generates a shell script for the specified platform that loads in the "
@@ -1305,7 +1341,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:553
+#: extras_tigergeocoder.xml:557
 #, no-c-format
 msgid ""
 "It uses unzip on Linux (7-zip on Windows by default) and wget to do the "
@@ -1313,7 +1349,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:554
+#: extras_tigergeocoder.xml:558
 #, no-c-format
 msgid ""
 "It uses the following control tables <varname>tiger.loader_platform</"
@@ -1323,7 +1359,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:561
+#: extras_tigergeocoder.xml:565
 #, no-c-format
 msgid ""
 "<varname>loader_platform</varname> profiles of various platforms and where "
@@ -1332,7 +1368,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:568
+#: extras_tigergeocoder.xml:572
 #, no-c-format
 msgid ""
 "If you were running <varname>tiger_2010</varname> version and you want to "
@@ -1342,37 +1378,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:574
+#: extras_tigergeocoder.xml:578
 #, no-c-format
 msgid "Generate script script to load nation data Windows."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:575
+#: extras_tigergeocoder.xml:579
 #, no-c-format
 msgid "SELECT loader_generate_nation_script('windows');"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:576
+#: extras_tigergeocoder.xml:580
 #, no-c-format
 msgid "Generate script to load up data for Linux/Unix systems."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:577
+#: extras_tigergeocoder.xml:581
 #, no-c-format
 msgid "SELECT loader_generate_nation_script('sh');"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:589
+#: extras_tigergeocoder.xml:593
 #, no-c-format
 msgid "Missing_Indexes_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:591
+#: extras_tigergeocoder.xml:595
 #, no-c-format
 msgid ""
 "Finds all tables with key columns used in geocoder joins that are missing "
@@ -1381,7 +1417,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:597
+#: extras_tigergeocoder.xml:601
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef> "
@@ -1389,7 +1425,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:607
+#: extras_tigergeocoder.xml:611
 #, no-c-format
 msgid ""
 "Finds all tables in <varname>tiger</varname> and <varname>tiger_data</"
@@ -1403,20 +1439,20 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:621
+#: extras_tigergeocoder.xml:625
 #, no-c-format
 msgid ""
 "SELECT missing_indexes_generate_script();\n"
 "-- output: This was run on a database that was created before many "
 "corrections were made to the loading script ---\n"
-"CREATE INDEX idx_tiger_county_countyfp ON tiger.county USING btree"
-"(countyfp);\n"
-"CREATE INDEX idx_tiger_cousub_countyfp ON tiger.cousub USING btree"
-"(countyfp);\n"
+"CREATE INDEX idx_tiger_county_countyfp ON tiger.county USING "
+"btree(countyfp);\n"
+"CREATE INDEX idx_tiger_cousub_countyfp ON tiger.cousub USING "
+"btree(countyfp);\n"
 "CREATE INDEX idx_tiger_edges_tfidr ON tiger.edges USING btree(tfidr);\n"
 "CREATE INDEX idx_tiger_edges_tfidl ON tiger.edges USING btree(tfidl);\n"
-"CREATE INDEX idx_tiger_zip_lookup_all_zip ON tiger.zip_lookup_all USING btree"
-"(zip);\n"
+"CREATE INDEX idx_tiger_zip_lookup_all_zip ON tiger.zip_lookup_all USING "
+"btree(zip);\n"
 "CREATE INDEX idx_tiger_data_ma_county_countyfp ON tiger_data.ma_county USING "
 "btree(countyfp);\n"
 "CREATE INDEX idx_tiger_data_ma_cousub_countyfp ON tiger_data.ma_cousub USING "
@@ -1428,19 +1464,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:628
+#: extras_tigergeocoder.xml:632
 #, no-c-format
 msgid ", <xref linkend=\"Install_Missing_Indexes\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:634
+#: extras_tigergeocoder.xml:638
 #, no-c-format
 msgid "Normalize_Address"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:636
+#: extras_tigergeocoder.xml:640
 #, no-c-format
 msgid ""
 "Given a textual street address, returns a composite <varname>norm_addy</"
@@ -1451,7 +1487,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:642
+#: extras_tigergeocoder.xml:646
 #, no-c-format
 msgid ""
 "<funcdef>norm_addy <function>normalize_address</function></funcdef> "
@@ -1459,7 +1495,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:652
+#: extras_tigergeocoder.xml:656 extras_tigergeocoder.xml:735
 #, no-c-format
 msgid ""
 "Given a textual street address, returns a composite <varname>norm_addy</"
@@ -1470,7 +1506,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:654
+#: extras_tigergeocoder.xml:658
 #, no-c-format
 msgid ""
 "This function just uses the various direction/state/suffix lookup tables "
@@ -1482,7 +1518,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:656
+#: extras_tigergeocoder.xml:660 extras_tigergeocoder.xml:739
 #, no-c-format
 msgid ""
 "It uses various control lookup tables located in <varname>tiger</varname> "
@@ -1490,7 +1526,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:657
+#: extras_tigergeocoder.xml:661 extras_tigergeocoder.xml:740
 #, no-c-format
 msgid ""
 "Fields in the <varname>norm_addy</varname> type object returned by this "
@@ -1499,7 +1535,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:658
+#: extras_tigergeocoder.xml:662 extras_tigergeocoder.xml:744
 #, no-c-format
 msgid ""
 "(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] "
@@ -1507,13 +1543,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:661
+#: extras_tigergeocoder.xml:665 extras_tigergeocoder.xml:750
 #, no-c-format
 msgid "<varname>address</varname> is an integer: The street number"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:664
+#: extras_tigergeocoder.xml:668 extras_tigergeocoder.xml:753
 #, no-c-format
 msgid ""
 "<varname>predirAbbrev</varname> is varchar: Directional prefix of road such "
@@ -1522,13 +1558,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:667
+#: extras_tigergeocoder.xml:671 extras_tigergeocoder.xml:756
 #, no-c-format
 msgid "<varname>streetName</varname> varchar"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:670
+#: extras_tigergeocoder.xml:674 extras_tigergeocoder.xml:759
 #, no-c-format
 msgid ""
 "<varname>streetTypeAbbrev</varname> varchar abbreviated version of street "
@@ -1537,7 +1573,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:673
+#: extras_tigergeocoder.xml:677 extras_tigergeocoder.xml:762
 #, no-c-format
 msgid ""
 "<varname>postdirAbbrev</varname> varchar abbreviated directional suffice of "
@@ -1546,7 +1582,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:676
+#: extras_tigergeocoder.xml:680 extras_tigergeocoder.xml:765
 #, no-c-format
 msgid ""
 "<varname>internal</varname> varchar internal address such as an apartment or "
@@ -1554,14 +1590,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:679
+#: extras_tigergeocoder.xml:683 extras_tigergeocoder.xml:768
 #, no-c-format
 msgid ""
 "<varname>location</varname> varchar usually a city or governing province."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:682
+#: extras_tigergeocoder.xml:686 extras_tigergeocoder.xml:771
 #, no-c-format
 msgid ""
 "<varname>stateAbbrev</varname> varchar two character US State. e.g MA, NY, "
@@ -1569,13 +1605,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:685
+#: extras_tigergeocoder.xml:689 extras_tigergeocoder.xml:774
 #, no-c-format
 msgid "<varname>zip</varname> varchar 5-digit zipcode. e.g. 02109."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:688
+#: extras_tigergeocoder.xml:692 extras_tigergeocoder.xml:777
 #, no-c-format
 msgid ""
 "<varname>parsed</varname> boolean - denotes if addess was formed from "
@@ -1584,7 +1620,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:697
+#: extras_tigergeocoder.xml:701
 #, no-c-format
 msgid ""
 "Output select fields. Use <xref linkend=\"Pprint_Addy\"/> if you want a "
@@ -1592,7 +1628,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:698
+#: extras_tigergeocoder.xml:702
 #, no-c-format
 msgid ""
 "SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
@@ -1612,19 +1648,154 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:707
+#: extras_tigergeocoder.xml:711
 #, no-c-format
 msgid ", <xref linkend=\"Pprint_Addy\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:713
+#: extras_tigergeocoder.xml:717
+#, no-c-format
+msgid "Pagc_Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:719
+#, no-c-format
+msgid ""
+"Given a textual street address, returns a composite <varname>norm_addy</"
+"varname> type that has road suffix, prefix and type standardized, street, "
+"streetname etc. broken into separate fields. This function will work with "
+"just the lookup data packaged with the tiger_geocoder (no need for tiger "
+"census data). Requires address_standardizer extension."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:725
+#, no-c-format
+msgid ""
+"<funcdef>norm_addy <function>pagc_normalize_address</function></funcdef> "
+"<paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:737
+#, no-c-format
+msgid ""
+"This function just uses the various pagc_* lookup tables preloaded with the "
+"tiger_geocoder and located in the <varname>tiger</varname> schema, so it "
+"doesn't need you to download tiger census data or any other additional data "
+"to make use of it. You may find the need to add more abbreviations or "
+"alternative namings to the various lookup tables in the <varname>tiger</"
+"varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:741
+#, no-c-format
+msgid ""
+"There are slight variations in casing and formatting over the <xref linkend="
+"\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:743
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:745
+#, no-c-format
+msgid ""
+"The native standardaddr of address_standardizer extension is at this time a "
+"bit richer than norm_addy since its designed to support international "
+"addresses (including country). standardaddr equivalent fields are:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:746
+#, no-c-format
+msgid "house_num,predir, name, suftype, sufdir, unit, city, state, postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:785
+#, no-c-format
+msgid "Single call example"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:786
+#, no-c-format
+msgid ""
+"SELECT addy.*\n"
+"FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS "
+"addy;\n"
+"\n"
+"        \n"
+" address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | "
+"internal  |  location   | stateabbrev | zip | parsed\n"
+"---------+--------------+------------+------------------+---------------"
+"+-----------+-------------+-------------+-----+--------\n"
+"    9000 | E            | ROO        | ST               |               | "
+"SUITE 999 | SPRINGFIELD | CO          |     | t"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:788
+#, no-c-format
+msgid ""
+"Batch call. There are currently speed issues with the way "
+"postgis_tiger_geocoder wraps the address_standardizer. These will hopefully "
+"be resolved in later editions. To work around them, if you need speed for "
+"batch geocoding to call generate a normaddy in batch mode, you are "
+"encouraged to directly call the address_standardizer standardize_address "
+"function as shown below which is similar exercise to what we did in <xref "
+"linkend=\"Normalize_Address\"/> that uses data created in <xref linkend="
+"\"Geocode\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:792
+#, no-c-format
+msgid ""
+"WITH g AS (SELECT address, ROW((sa).house_num, (sa).predir, (sa).name\n"
+"  , (sa).suftype, (sa).sufdir, (sa).unit , (sa).city, (sa).state, (sa)."
+"postcode, true)::norm_addy As na\n"
+" FROM (SELECT address, standardize_address('tiger.pagc_lex'\n"
+"       , 'tiger.pagc_gaz'\n"
+"       , 'tiger.pagc_rules', address) As sa\n"
+"        FROM addresses_to_geocode) As g)\n"
+"SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+" FROM  g;\n"
+" \n"
+" orig                                                |  streetname   | "
+"streettypeabbrev\n"
+"-----------------------------------------------------+---------------"
+"+------------------\n"
+" 529 Main Street, Boston MA, 02129                   | MAIN          | ST\n"
+" 77 Massachusetts Avenue, Cambridge, MA 02139        | MASSACHUSETTS | AVE\n"
+" 25 Wizard of Oz, Walaford, KS 99912323              | WIZARD OF     |\n"
+" 26 Capen Street, Medford, MA                        | CAPEN         | ST\n"
+" 124 Mount Auburn St, Cambridge, Massachusetts 02138 | MOUNT AUBURN  | ST\n"
+" 950 Main Street, Worcester, MA 01610                | MAIN          | ST"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:797 extras_tigergeocoder.xml:913
+#, no-c-format
+msgid ", <xref linkend=\"Geocode\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:803
 #, no-c-format
 msgid "Pprint_Addy"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:715
+#: extras_tigergeocoder.xml:805
 #, no-c-format
 msgid ""
 "Given a <varname>norm_addy</varname> composite type object, returns a pretty "
@@ -1633,7 +1804,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:720
+#: extras_tigergeocoder.xml:810
 #, no-c-format
 msgid ""
 "<funcdef>varchar <function>pprint_addy</function></funcdef> "
@@ -1641,7 +1812,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:730
+#: extras_tigergeocoder.xml:820
 #, no-c-format
 msgid ""
 "Given a <varname>norm_addy</varname> composite type object, returns a pretty "
@@ -1650,19 +1821,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:731
+#: extras_tigergeocoder.xml:821
 #, no-c-format
 msgid "Usually used in conjunction with <xref linkend=\"Normalize_Address\"/>."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:739
+#: extras_tigergeocoder.xml:829
 #, no-c-format
 msgid "Pretty print a single address"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:740
+#: extras_tigergeocoder.xml:830
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
@@ -1673,13 +1844,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:742
+#: extras_tigergeocoder.xml:832
 #, no-c-format
 msgid "Pretty print address a table of addresses"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:743
+#: extras_tigergeocoder.xml:833
 #, no-c-format
 msgid ""
 "SELECT address As orig, pprint_addy(normalize_address(address)) As "
@@ -1703,13 +1874,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:756
+#: extras_tigergeocoder.xml:846
 #, no-c-format
 msgid "Reverse_Geocode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:758
+#: extras_tigergeocoder.xml:848
 #, no-c-format
 msgid ""
 "Takes a geometry point in a known spatial ref sys and returns a record "
@@ -1719,7 +1890,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:763
+#: extras_tigergeocoder.xml:853
 #, no-c-format
 msgid ""
 "<funcdef>record <function>Reverse_Geocode</function></funcdef> "
@@ -1733,7 +1904,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:777
+#: extras_tigergeocoder.xml:867
 #, no-c-format
 msgid ""
 "Takes a geometry point in a known spatial ref and returns a record "
@@ -1745,7 +1916,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:780
+#: extras_tigergeocoder.xml:870
 #, no-c-format
 msgid ""
 "Why do we say theoretical instead of actual addresses. The Tiger data "
@@ -1761,7 +1932,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:785
+#: extras_tigergeocoder.xml:875
 #, no-c-format
 msgid ""
 "Note: Hmm this function relies on Tiger data. If you have not loaded data "
@@ -1770,13 +1941,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:786
+#: extras_tigergeocoder.xml:876
 #, no-c-format
 msgid "Returned elements of the record are as follows:"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:789
+#: extras_tigergeocoder.xml:879
 #, no-c-format
 msgid ""
 "<varname>intpt</varname> is an array of points: These are the center line "
@@ -1785,7 +1956,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:792
+#: extras_tigergeocoder.xml:882
 #, no-c-format
 msgid ""
 "<varname>addy</varname> is an array of norm_addy (normalized addresses): "
@@ -1796,7 +1967,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:796
+#: extras_tigergeocoder.xml:886
 #, no-c-format
 msgid ""
 "<varname>street</varname> an array of varchar: These are cross streets (or "
@@ -1805,7 +1976,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:807
+#: extras_tigergeocoder.xml:897
 #, no-c-format
 msgid ""
 "Example of a point at the corner of two streets, but closest to one. This is "
@@ -1815,7 +1986,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:809
+#: extras_tigergeocoder.xml:899
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, "
@@ -1835,7 +2006,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:811
+#: extras_tigergeocoder.xml:901
 #, no-c-format
 msgid ""
 "Here we choose not to include the address ranges for the cross streets and "
@@ -1844,7 +2015,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:813
+#: extras_tigergeocoder.xml:903
 #, no-c-format
 msgid ""
 "SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, \n"
@@ -1863,7 +2034,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:815
+#: extras_tigergeocoder.xml:905
 #, no-c-format
 msgid ""
 "For this one we reuse our geocoded example from <xref linkend=\"Geocode\"/> "
@@ -1871,7 +2042,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:816
+#: extras_tigergeocoder.xml:906
 #, no-c-format
 msgid ""
 "SELECT actual_addr, lon, lat, pprint_addy((rg).addy[1]) As int_addr1, \n"
@@ -1896,20 +2067,14 @@ msgid ""
 "| 3 Maywood St, Worcester, MA 01603         | Main St         | Maywood Pl"
 msgstr ""
 
-#. Tag: para
-#: extras_tigergeocoder.xml:823
-#, no-c-format
-msgid ", <xref linkend=\"Geocode\"/>"
-msgstr ""
-
 #. Tag: refname
-#: extras_tigergeocoder.xml:829
+#: extras_tigergeocoder.xml:919
 #, no-c-format
 msgid "Topology_Load_Tiger"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:831
+#: extras_tigergeocoder.xml:921
 #, no-c-format
 msgid ""
 "Loads a defined region of tiger data into a PostGIS Topology and "
@@ -1918,7 +2083,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:837
+#: extras_tigergeocoder.xml:927
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Topology_Load_Tiger</function></funcdef> "
@@ -1929,7 +2094,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:849
+#: extras_tigergeocoder.xml:939
 #, no-c-format
 msgid ""
 "Loads a defined region of tiger data into a PostGIS Topology. The faces, "
@@ -1942,7 +2107,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:852
+#: extras_tigergeocoder.xml:942
 #, no-c-format
 msgid ""
 "This would be useful for example for redistricting data where you require "
@@ -1951,7 +2116,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:854
+#: extras_tigergeocoder.xml:944
 #, no-c-format
 msgid ""
 "This function relies on Tiger data as well as the installation of the "
@@ -1963,7 +2128,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:856
+#: extras_tigergeocoder.xml:946
 #, no-c-format
 msgid ""
 "Most topology validation errors are a result of tolerance issues where after "
@@ -1973,13 +2138,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:858
+#: extras_tigergeocoder.xml:948
 #, no-c-format
 msgid "Required arguments:"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:861
+#: extras_tigergeocoder.xml:951
 #, no-c-format
 msgid ""
 "<varname>topo_name</varname> The name of an existing PostGIS topology to "
@@ -1987,7 +2152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:864
+#: extras_tigergeocoder.xml:954
 #, no-c-format
 msgid ""
 "<varname>region_type</varname> The type of bounding region. Currently only "
@@ -1997,7 +2162,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:867
+#: extras_tigergeocoder.xml:957
 #, no-c-format
 msgid ""
 "<varname>region_id</varname> This is what TIGER calls the geoid. It is the "
@@ -2008,13 +2173,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:876
+#: extras_tigergeocoder.xml:966
 #, no-c-format
 msgid "Example: Boston, Massachusetts Topology"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:877
+#: extras_tigergeocoder.xml:967
 #, no-c-format
 msgid ""
 "Create a topology for Boston, Massachusetts in Mass State Plane Feet (2249) "
@@ -2023,7 +2188,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:879
+#: extras_tigergeocoder.xml:969
 #, no-c-format
 msgid ""
 "SELECT topology.CreateTopology('topo_boston', 2249, 0.25);\n"
@@ -2054,13 +2219,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:883
+#: extras_tigergeocoder.xml:973
 #, no-c-format
 msgid "Example: Suffolk, Massachusetts Topology"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:884
+#: extras_tigergeocoder.xml:974
 #, no-c-format
 msgid ""
 "Create a topology for Suffolk, Massachusetts in Mass State Plane Meters "
@@ -2069,7 +2234,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:886
+#: extras_tigergeocoder.xml:976
 #, no-c-format
 msgid ""
 "SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);\n"
@@ -2104,7 +2269,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:890
+#: extras_tigergeocoder.xml:980
 #, no-c-format
 msgid ""
 ", <xref linkend=\"CreateTopoGeom\"/>, <xref linkend=\"TopologySummary\"/>, "
@@ -2112,19 +2277,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:896
+#: extras_tigergeocoder.xml:986
 #, no-c-format
 msgid "Set_Geocode_Setting"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:898
+#: extras_tigergeocoder.xml:988
 #, no-c-format
 msgid "Sets a setting that affects behavior of geocoder functions."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:903
+#: extras_tigergeocoder.xml:993
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Set_Geocode_Setting</function></funcdef> "
@@ -2133,7 +2298,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:914
+#: extras_tigergeocoder.xml:1004
 #, no-c-format
 msgid ""
 "Sets value of specific setting stored in <varname>tiger.geocode_settings</"
@@ -2143,7 +2308,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:923
+#: extras_tigergeocoder.xml:1013
 #, no-c-format
 msgid ""
 "If you run <xref linkend=\"Geocode\"/> when this function is true, the "
@@ -2151,7 +2316,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:924
+#: extras_tigergeocoder.xml:1014
 #, no-c-format
 msgid ""
 "SELECT set_geocode_setting('debug_geocode_address', 'true') As result;\n"
diff --git a/doc/po/pt_BR/extras_topology.xml.po b/doc/po/pt_BR/extras_topology.xml.po
index e9243a7..c102290 100644
--- a/doc/po/pt_BR/extras_topology.xml.po
+++ b/doc/po/pt_BR/extras_topology.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -136,21 +136,23 @@ msgstr ""
 
 #. Tag: title
 #: extras_topology.xml:31 extras_topology.xml:50 extras_topology.xml:99
-#: extras_topology.xml:138 extras_topology.xml:159 extras_topology.xml:236
-#: extras_topology.xml:283 extras_topology.xml:324 extras_topology.xml:363
-#: extras_topology.xml:400 extras_topology.xml:470 extras_topology.xml:518
-#: extras_topology.xml:566 extras_topology.xml:610 extras_topology.xml:658
-#: extras_topology.xml:704 extras_topology.xml:750 extras_topology.xml:805
-#: extras_topology.xml:851 extras_topology.xml:898 extras_topology.xml:955
-#: extras_topology.xml:1013 extras_topology.xml:1085 extras_topology.xml:1153
-#: extras_topology.xml:1219 extras_topology.xml:1273 extras_topology.xml:1321
-#: extras_topology.xml:1368 extras_topology.xml:1411 extras_topology.xml:1465
-#: extras_topology.xml:1559 extras_topology.xml:1654 extras_topology.xml:1696
-#: extras_topology.xml:1738 extras_topology.xml:1781 extras_topology.xml:1830
-#: extras_topology.xml:1874 extras_topology.xml:1926 extras_topology.xml:1984
-#: extras_topology.xml:2025 extras_topology.xml:2082 extras_topology.xml:2128
-#: extras_topology.xml:2219 extras_topology.xml:2281 extras_topology.xml:2329
-#: extras_topology.xml:2377 extras_topology.xml:2425 extras_topology.xml:2519
+#: extras_topology.xml:138 extras_topology.xml:163 extras_topology.xml:240
+#: extras_topology.xml:287 extras_topology.xml:328 extras_topology.xml:367
+#: extras_topology.xml:404 extras_topology.xml:474 extras_topology.xml:522
+#: extras_topology.xml:570 extras_topology.xml:614 extras_topology.xml:662
+#: extras_topology.xml:708 extras_topology.xml:754 extras_topology.xml:809
+#: extras_topology.xml:855 extras_topology.xml:902 extras_topology.xml:959
+#: extras_topology.xml:1017 extras_topology.xml:1089 extras_topology.xml:1157
+#: extras_topology.xml:1223 extras_topology.xml:1278 extras_topology.xml:1326
+#: extras_topology.xml:1373 extras_topology.xml:1416 extras_topology.xml:1470
+#: extras_topology.xml:1564 extras_topology.xml:1659 extras_topology.xml:1701
+#: extras_topology.xml:1743 extras_topology.xml:1786 extras_topology.xml:1836
+#: extras_topology.xml:1880 extras_topology.xml:1932 extras_topology.xml:1990
+#: extras_topology.xml:2031 extras_topology.xml:2088 extras_topology.xml:2134
+#: extras_topology.xml:2206 extras_topology.xml:2260 extras_topology.xml:2331
+#: extras_topology.xml:2407 extras_topology.xml:2452 extras_topology.xml:2484
+#: extras_topology.xml:2522 extras_topology.xml:2570 extras_topology.xml:2665
+#: extras_topology.xml:2719 extras_topology.xml:2782 extras_topology.xml:2831
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -180,26 +182,23 @@ msgstr ""
 #. Tag: refname
 #: extras_topology.xml:46
 #, no-c-format
-msgid "topogeometry"
+msgid "TopoGeometry"
 msgstr ""
 
 #. Tag: refpurpose
 #: extras_topology.xml:47
 #, no-c-format
-msgid ""
-"A composite type that refers to a topology geometry in a specific topology, "
-"layer, having specific type (1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:"
-"collection) with specific identifier id in the topology. The id uniquely "
-"defines the topogeometry in the topology."
+msgid "A composite type representing a topologically defined geometry"
 msgstr ""
 
 #. Tag: para
 #: extras_topology.xml:51
 #, no-c-format
 msgid ""
-"A composite type that refers to a topology geometry in a specific topology, "
-"layer, having specific type with specific id. The elements of a topogeometry "
-"are the properties: topology_id,layer_id,id integer,type integer."
+"A composite type that refers to a topology geometry in a specific topology "
+"layer, having a specific type and a specific id. The elements of a "
+"TopoGeometry are the properties: topology_id, layer_id, id integer, type "
+"integer."
 msgstr ""
 
 #. Tag: para
@@ -215,7 +214,7 @@ msgstr ""
 #, no-c-format
 msgid ""
 "<varname>layer_id</varname> is an integer: The layer_id in the layers table "
-"that hte topogeometry belongs to. The combination of topology_id, layer_id "
+"that the TopoGeometry belongs to. The combination of topology_id, layer_id "
 "provides a unique reference in the topology.layers table."
 msgstr ""
 
@@ -223,16 +222,17 @@ msgstr ""
 #: extras_topology.xml:60
 #, no-c-format
 msgid ""
-"<varname>type</varname> integer between 1 - 4 that defines the geometry "
-"type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+"<varname>id</varname> is an integer: The id is the autogenerated sequence "
+"number that uniquely defines the topogeometry in the respective topology "
+"layer."
 msgstr ""
 
 #. Tag: para
 #: extras_topology.xml:63
 #, no-c-format
 msgid ""
-"<varname>id</varname> is an integer: The id is the autogenerated sequence "
-"number that uniquely defines the topogeometry in the respective topology."
+"<varname>type</varname> integer between 1 - 4 that defines the geometry "
+"type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
 msgstr ""
 
 #. Tag: title
@@ -274,23 +274,24 @@ msgid "automatic"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:148
-#: extras_topology.xml:169 extras_topology.xml:261 extras_topology.xml:301
-#: extras_topology.xml:341 extras_topology.xml:378 extras_topology.xml:419
-#: extras_topology.xml:495 extras_topology.xml:544 extras_topology.xml:583
-#: extras_topology.xml:632 extras_topology.xml:673 extras_topology.xml:719
-#: extras_topology.xml:765 extras_topology.xml:826 extras_topology.xml:873
-#: extras_topology.xml:929 extras_topology.xml:986 extras_topology.xml:1058
-#: extras_topology.xml:1126 extras_topology.xml:1193 extras_topology.xml:1241
-#: extras_topology.xml:1290 extras_topology.xml:1340 extras_topology.xml:1388
-#: extras_topology.xml:1437 extras_topology.xml:1483 extras_topology.xml:1537
-#: extras_topology.xml:1581 extras_topology.xml:1631 extras_topology.xml:1669
-#: extras_topology.xml:1711 extras_topology.xml:1753 extras_topology.xml:1803
-#: extras_topology.xml:1848 extras_topology.xml:1898 extras_topology.xml:1951
-#: extras_topology.xml:2000 extras_topology.xml:2059 extras_topology.xml:2102
-#: extras_topology.xml:2177 extras_topology.xml:2249 extras_topology.xml:2307
-#: extras_topology.xml:2343 extras_topology.xml:2396 extras_topology.xml:2443
-#: extras_topology.xml:2551
+#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:149
+#: extras_topology.xml:173 extras_topology.xml:265 extras_topology.xml:305
+#: extras_topology.xml:345 extras_topology.xml:382 extras_topology.xml:423
+#: extras_topology.xml:499 extras_topology.xml:548 extras_topology.xml:587
+#: extras_topology.xml:636 extras_topology.xml:677 extras_topology.xml:723
+#: extras_topology.xml:769 extras_topology.xml:830 extras_topology.xml:877
+#: extras_topology.xml:933 extras_topology.xml:990 extras_topology.xml:1062
+#: extras_topology.xml:1130 extras_topology.xml:1197 extras_topology.xml:1246
+#: extras_topology.xml:1295 extras_topology.xml:1345 extras_topology.xml:1393
+#: extras_topology.xml:1442 extras_topology.xml:1488 extras_topology.xml:1542
+#: extras_topology.xml:1586 extras_topology.xml:1636 extras_topology.xml:1674
+#: extras_topology.xml:1716 extras_topology.xml:1758 extras_topology.xml:1809
+#: extras_topology.xml:1854 extras_topology.xml:1904 extras_topology.xml:1957
+#: extras_topology.xml:2006 extras_topology.xml:2065 extras_topology.xml:2108
+#: extras_topology.xml:2183 extras_topology.xml:2218 extras_topology.xml:2290
+#: extras_topology.xml:2380 extras_topology.xml:2421 extras_topology.xml:2471
+#: extras_topology.xml:2541 extras_topology.xml:2588 extras_topology.xml:2697
+#: extras_topology.xml:2746 extras_topology.xml:2807 extras_topology.xml:2857
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -384,25 +385,27 @@ msgstr ""
 #: extras_topology.xml:139
 #, no-c-format
 msgid ""
-"An array of 2 integers used to represent the id and type of a topology "
-"primitive or the id and layer of a TopoGeometry. Sets of such pairs are used "
-"to define TopoGeometry objects (either simple or hierarchical)."
+"An array of 2 integers used to represent the id (first element) and type "
+"(second element) of a topology primitive or the id (first element) and layer "
+"(second element) of a TopoGeometry. Sets of such pairs are used to define "
+"TopoGeometry objects (either simple or hierarchical)."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:142 extras_topology.xml:163 extras_topology.xml:254
-#: extras_topology.xml:294 extras_topology.xml:335 extras_topology.xml:373
-#: extras_topology.xml:413 extras_topology.xml:484 extras_topology.xml:534
-#: extras_topology.xml:577 extras_topology.xml:626 extras_topology.xml:819
-#: extras_topology.xml:866 extras_topology.xml:922 extras_topology.xml:979
-#: extras_topology.xml:1051 extras_topology.xml:1119 extras_topology.xml:1187
-#: extras_topology.xml:1235 extras_topology.xml:1382 extras_topology.xml:1431
-#: extras_topology.xml:1477 extras_topology.xml:1529 extras_topology.xml:1574
-#: extras_topology.xml:1623 extras_topology.xml:1663 extras_topology.xml:1705
-#: extras_topology.xml:1747 extras_topology.xml:1796 extras_topology.xml:1842
-#: extras_topology.xml:2053 extras_topology.xml:2096 extras_topology.xml:2171
-#: extras_topology.xml:2300 extras_topology.xml:2339 extras_topology.xml:2389
-#: extras_topology.xml:2436 extras_topology.xml:2542
+#: extras_topology.xml:142 extras_topology.xml:167 extras_topology.xml:258
+#: extras_topology.xml:298 extras_topology.xml:339 extras_topology.xml:377
+#: extras_topology.xml:417 extras_topology.xml:488 extras_topology.xml:538
+#: extras_topology.xml:581 extras_topology.xml:630 extras_topology.xml:823
+#: extras_topology.xml:870 extras_topology.xml:926 extras_topology.xml:983
+#: extras_topology.xml:1055 extras_topology.xml:1123 extras_topology.xml:1191
+#: extras_topology.xml:1240 extras_topology.xml:1387 extras_topology.xml:1436
+#: extras_topology.xml:1482 extras_topology.xml:1534 extras_topology.xml:1579
+#: extras_topology.xml:1628 extras_topology.xml:1668 extras_topology.xml:1710
+#: extras_topology.xml:1752 extras_topology.xml:1802 extras_topology.xml:1848
+#: extras_topology.xml:2059 extras_topology.xml:2102 extras_topology.xml:2177
+#: extras_topology.xml:2371 extras_topology.xml:2417 extras_topology.xml:2465
+#: extras_topology.xml:2534 extras_topology.xml:2581 extras_topology.xml:2688
+#: extras_topology.xml:2751 extras_topology.xml:2800 extras_topology.xml:2850
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -411,6 +414,17 @@ msgstr ""
 #: extras_topology.xml:143
 #, no-c-format
 msgid ""
+"SELECT te[1] AS id, te[2] AS type FROM\n"
+"( SELECT ARRAY[1,2]::topology.topoelement AS te ) f;\n"
+" id | type\n"
+"----+------\n"
+"  1 |    2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:144
+#, no-c-format
+msgid ""
 "SELECT ARRAY[1,2]::topology.topoelement;\n"
 "  te\n"
 "-------\n"
@@ -418,7 +432,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:144
+#: extras_topology.xml:145
 #, no-c-format
 msgid ""
 "--Example of what happens when you try to case a 3 element array to "
@@ -429,20 +443,26 @@ msgid ""
 "\"dimensions\""
 msgstr ""
 
+#. Tag: para
+#: extras_topology.xml:150 extras_topology.xml:2422 extras_topology.xml:2542
+#, no-c-format
+msgid ", <xref linkend=\"topoelementarray\"/>"
+msgstr ""
+
 #. Tag: refname
-#: extras_topology.xml:155
+#: extras_topology.xml:159
 #, no-c-format
 msgid "TopoElementArray"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:156
+#: extras_topology.xml:160
 #, no-c-format
 msgid "An array of TopoElement objects"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:160
+#: extras_topology.xml:164
 #, no-c-format
 msgid ""
 "An array of 1 or more TopoElement objects, generally used to pass around "
@@ -450,7 +470,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:164
+#: extras_topology.xml:168
 #, no-c-format
 msgid ""
 "SELECT '{{1,2},{4,3}}'::topology.topoelementarray As tea;\n"
@@ -474,7 +494,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:165
+#: extras_topology.xml:169
 #, no-c-format
 msgid ""
 "SELECT '{{1,2,4},{3,4,5}}'::topology.topoelementarray As tea;\n"
@@ -483,7 +503,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:170
+#: extras_topology.xml:174
 #, no-c-format
 msgid ""
 ", <xref linkend=\"GetTopoGeomElementArray\"/>, <xref linkend="
@@ -491,7 +511,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:182
+#: extras_topology.xml:186
 #, no-c-format
 msgid ""
 "This section lists the Topology functions for building new Topology schemas, "
@@ -499,19 +519,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:185
+#: extras_topology.xml:189
 #, no-c-format
 msgid "Topology and TopoGeometry Management"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:188
+#: extras_topology.xml:192
 #, no-c-format
 msgid "AddTopoGeometryColumn"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:189
+#: extras_topology.xml:193
 #, no-c-format
 msgid ""
 "Adds a topogeometry column to an existing table, registers this new column "
@@ -519,7 +539,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:193
+#: extras_topology.xml:197
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></"
@@ -541,7 +561,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:238
+#: extras_topology.xml:242
 #, no-c-format
 msgid ""
 "Each TopoGeometry object belongs to a specific Layer of a specific Topology. "
@@ -552,7 +572,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:240
+#: extras_topology.xml:244
 #, no-c-format
 msgid ""
 "This function will both add the requested column to the table and add a "
@@ -560,7 +580,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:241
+#: extras_topology.xml:245
 #, no-c-format
 msgid ""
 "If you don't specify [child_layer] (or set it to NULL) this layer would "
@@ -570,7 +590,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:244
+#: extras_topology.xml:248
 #, no-c-format
 msgid ""
 "Once the layer is created (it's id is returned by the AddTopoGeometryColumn "
@@ -578,25 +598,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:245
+#: extras_topology.xml:249
 #, no-c-format
 msgid ""
 "Valid <varname>feature_type</varname>s are: POINT, LINE, POLYGON, COLLECTION"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:248 extras_topology.xml:289 extras_topology.xml:330
-#: extras_topology.xml:406 extras_topology.xml:479 extras_topology.xml:571
-#: extras_topology.xml:813 extras_topology.xml:860 extras_topology.xml:1228
-#: extras_topology.xml:1376 extras_topology.xml:1425 extras_topology.xml:1471
-#: extras_topology.xml:1658 extras_topology.xml:1742 extras_topology.xml:1836
-#: extras_topology.xml:2227 extras_topology.xml:2384 extras_topology.xml:2431
+#: extras_topology.xml:252 extras_topology.xml:293 extras_topology.xml:334
+#: extras_topology.xml:410 extras_topology.xml:483 extras_topology.xml:575
+#: extras_topology.xml:817 extras_topology.xml:864 extras_topology.xml:1233
+#: extras_topology.xml:1381 extras_topology.xml:1430 extras_topology.xml:1476
+#: extras_topology.xml:1663 extras_topology.xml:1747 extras_topology.xml:1842
+#: extras_topology.xml:2268 extras_topology.xml:2529 extras_topology.xml:2576
+#: extras_topology.xml:2791 extras_topology.xml:2841
 #, no-c-format
 msgid "Availability: 1.?"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:255
+#: extras_topology.xml:259
 #, no-c-format
 msgid ""
 "-- Note for this example we created our new table in the ma_topo schema \n"
@@ -610,7 +631,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:256
+#: extras_topology.xml:260
 #, no-c-format
 msgid ""
 "CREATE SCHEMA ri;\n"
@@ -620,19 +641,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:263
+#: extras_topology.xml:267
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopoGeom\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:268
+#: extras_topology.xml:272
 #, no-c-format
 msgid "DropTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:270
+#: extras_topology.xml:274
 #, no-c-format
 msgid ""
 "Use with caution: Drops a topology schema and deletes its reference from "
@@ -641,7 +662,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:275
+#: extras_topology.xml:279
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>DropTopology</function></funcdef> "
@@ -650,7 +671,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:285
+#: extras_topology.xml:289
 #, no-c-format
 msgid ""
 "Drops a topology schema and deletes its reference from topology.topology "
@@ -661,7 +682,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:295
+#: extras_topology.xml:299
 #, no-c-format
 msgid ""
 "Cascade drops the ma_topo schema and removes all references to it in "
@@ -669,19 +690,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:296
+#: extras_topology.xml:300
 #, no-c-format
 msgid "SELECT topology.DropTopology('ma_topo');"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:307
+#: extras_topology.xml:311
 #, no-c-format
 msgid "DropTopoGeometryColumn"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:309
+#: extras_topology.xml:313
 #, no-c-format
 msgid ""
 "Drops the topogeometry column from the table named <varname>table_name</"
@@ -690,7 +711,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:314
+#: extras_topology.xml:318
 #, no-c-format
 msgid ""
 "<funcdef>text <function>DropTopoGeometryColumn</function></funcdef> "
@@ -701,7 +722,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:326
+#: extras_topology.xml:330
 #, no-c-format
 msgid ""
 "Drops the topogeometry column from the table named <varname>table_name</"
@@ -712,20 +733,20 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:336
+#: extras_topology.xml:340
 #, no-c-format
 msgid ""
 "SELECT topology.DropTopoGeometryColumn('ma_topo', 'parcel_topo', 'topo');"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:348
+#: extras_topology.xml:352
 #, no-c-format
 msgid "TopologySummary"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:350
+#: extras_topology.xml:354
 #, no-c-format
 msgid ""
 "Takes a topology name and provides summary totals of types of objects in "
@@ -733,7 +754,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:355
+#: extras_topology.xml:359
 #, no-c-format
 msgid ""
 "<funcdef>text <function>TopologySummary</function></funcdef> "
@@ -742,7 +763,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:365
+#: extras_topology.xml:369
 #, no-c-format
 msgid ""
 "Takes a topology name and provides summary totals of types of objects in "
@@ -750,16 +771,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:368 extras_topology.xml:529 extras_topology.xml:667
-#: extras_topology.xml:713 extras_topology.xml:759 extras_topology.xml:1700
-#: extras_topology.xml:1995 extras_topology.xml:2048 extras_topology.xml:2166
-#: extras_topology.xml:2334 extras_topology.xml:2537
+#: extras_topology.xml:372 extras_topology.xml:533 extras_topology.xml:671
+#: extras_topology.xml:717 extras_topology.xml:763 extras_topology.xml:1705
+#: extras_topology.xml:2001 extras_topology.xml:2054 extras_topology.xml:2172
+#: extras_topology.xml:2412 extras_topology.xml:2683
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:374
+#: extras_topology.xml:378
 #, no-c-format
 msgid ""
 "SELECT topology.topologysummary('city_data');\n"
@@ -782,13 +803,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:385
+#: extras_topology.xml:389
 #, no-c-format
 msgid "ValidateTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:387
+#: extras_topology.xml:391
 #, no-c-format
 msgid ""
 "Returns a set of validatetopology_returntype objects detailing issues with "
@@ -796,7 +817,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:392
+#: extras_topology.xml:396
 #, no-c-format
 msgid ""
 "<funcdef>setof validatetopology_returntype <function>ValidateTopology</"
@@ -805,7 +826,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:402
+#: extras_topology.xml:406
 #, no-c-format
 msgid ""
 "Returns a set of <xref linkend=\"validatetopology_returntype\"/> objects "
@@ -814,7 +835,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:408
+#: extras_topology.xml:412
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 more efficient edge crossing detection and fixes for false "
@@ -822,7 +843,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:414
+#: extras_topology.xml:418
 #, no-c-format
 msgid ""
 "SELECT * FROM  topology.ValidateTopology('ma_topo');\n"
@@ -832,31 +853,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:420
+#: extras_topology.xml:424
 #, no-c-format
 msgid ", <xref linkend=\"Topology_Load_Tiger\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:428
+#: extras_topology.xml:432
 #, no-c-format
 msgid "This section covers the topology functions for creating new topologies."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:431
+#: extras_topology.xml:435
 #, no-c-format
 msgid "Topology Constructors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:435
+#: extras_topology.xml:439
 #, no-c-format
 msgid "CreateTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:436
+#: extras_topology.xml:440
 #, no-c-format
 msgid ""
 "Creates a new topology schema and registers this new schema in the topology."
@@ -864,7 +885,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:440
+#: extras_topology.xml:444
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>integer <function>CreateTopology</function></"
@@ -888,7 +909,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:472
+#: extras_topology.xml:476
 #, no-c-format
 msgid ""
 "Creates a new schema with name <varname>topology_name</varname> consisting "
@@ -902,7 +923,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:476
+#: extras_topology.xml:480
 #, no-c-format
 msgid ""
 "This is similar to the SQL/MM <xref linkend=\"ST_InitTopoGeo\"/> but a bit "
@@ -910,7 +931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:485
+#: extras_topology.xml:489
 #, no-c-format
 msgid ""
 "This example creates a new schema called ma_topo that will store edges, "
@@ -920,19 +941,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:487
+#: extras_topology.xml:491
 #, no-c-format
 msgid "SELECT topology.CreateTopology('ma_topo',26986, 0.5);"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:489
+#: extras_topology.xml:493
 #, no-c-format
 msgid "Create Rhode Island topology in State Plane ft"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:490
+#: extras_topology.xml:494
 #, no-c-format
 msgid ""
 "SELECT topology.CreateTopology('ri_topo',3438) As topoid;\n"
@@ -942,20 +963,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:497
+#: extras_topology.xml:501
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_InitTopoGeo\"/>, <xref linkend=\"Topology_Load_Tiger\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:503
+#: extras_topology.xml:507
 #, no-c-format
 msgid "CopyTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:504
+#: extras_topology.xml:508
 #, no-c-format
 msgid ""
 "Makes a copy of a topology structure (nodes, edges, faces, layers and "
@@ -963,7 +984,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:509
+#: extras_topology.xml:513
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>CopyTopology</function></funcdef> "
@@ -973,7 +994,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:520
+#: extras_topology.xml:524
 #, no-c-format
 msgid ""
 "Creates a new topology with name <varname>new_topology_name</varname> and "
@@ -983,7 +1004,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:524
+#: extras_topology.xml:528
 #, no-c-format
 msgid ""
 "The new rows in topology.layer will contain synthesized values for "
@@ -993,31 +1014,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:535
+#: extras_topology.xml:539
 #, no-c-format
 msgid "This example makes a backup of a topology called ma_topo"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:538
+#: extras_topology.xml:542
 #, no-c-format
 msgid "SELECT topology.CopyTopology('ma_topo', 'ma_topo_bakup');"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:546 extras_topology.xml:2060
+#: extras_topology.xml:550 extras_topology.xml:2066
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopology\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:552
+#: extras_topology.xml:556
 #, no-c-format
 msgid "ST_InitTopoGeo"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:553
+#: extras_topology.xml:557
 #, no-c-format
 msgid ""
 "Creates a new topology schema and registers this new schema in the topology."
@@ -1025,7 +1046,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:558
+#: extras_topology.xml:562
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_InitTopoGeo</function></funcdef> "
@@ -1034,7 +1055,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:568
+#: extras_topology.xml:572
 #, no-c-format
 msgid ""
 "This is an SQL-MM equivalent of CreateTopology but lacks the spatial "
@@ -1043,14 +1064,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:572
+#: extras_topology.xml:576
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.17"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:578
+#: extras_topology.xml:582
 #, no-c-format
 msgid ""
 "SELECT topology.ST_InitTopoGeo('topo_schema_to_create') AS topocreation;\n"
@@ -1060,13 +1081,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:592
+#: extras_topology.xml:596
 #, no-c-format
 msgid "ST_CreateTopoGeo"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:594
+#: extras_topology.xml:598
 #, no-c-format
 msgid ""
 "<refpurpose>Adds a collection of geometries to a given empty topology and "
@@ -1074,7 +1095,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:601
+#: extras_topology.xml:605
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_CreateTopoGeo</function></funcdef> "
@@ -1084,7 +1105,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:612
+#: extras_topology.xml:616
 #, no-c-format
 msgid ""
 "<para>Adds a collection of geometries to a given empty topology and returns "
@@ -1092,29 +1113,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:616
+#: extras_topology.xml:620
 #, no-c-format
 msgid "Useful for populating an empty topology."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:620 extras_topology.xml:916 extras_topology.xml:973
-#: extras_topology.xml:1045 extras_topology.xml:1113 extras_topology.xml:1283
-#: extras_topology.xml:1333 extras_topology.xml:1790 extras_topology.xml:1892
-#: extras_topology.xml:1946 extras_topology.xml:2297
+#: extras_topology.xml:624 extras_topology.xml:920 extras_topology.xml:977
+#: extras_topology.xml:1049 extras_topology.xml:1117 extras_topology.xml:1288
+#: extras_topology.xml:1338 extras_topology.xml:1796 extras_topology.xml:1898
+#: extras_topology.xml:1952 extras_topology.xml:2367
 #, no-c-format
 msgid "Availability: 2.0"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:621
+#: extras_topology.xml:625
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details -- X.3.18"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:627
+#: extras_topology.xml:631
 #, no-c-format
 msgid ""
 "-- Populate topology --\n"
@@ -1154,19 +1175,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:633
+#: extras_topology.xml:637
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:639
+#: extras_topology.xml:643
 #, no-c-format
 msgid "TopoGeo_AddPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:641
+#: extras_topology.xml:645
 #, no-c-format
 msgid ""
 "Adds a point to an existing topology using a tolerance and possibly "
@@ -1174,7 +1195,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:648
+#: extras_topology.xml:652
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>TopoGeo_AddPoint</function></funcdef> "
@@ -1185,7 +1206,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:660
+#: extras_topology.xml:664
 #, no-c-format
 msgid ""
 "Adds a point to an existing topology and return its identifier. The given "
@@ -1194,7 +1215,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:674
+#: extras_topology.xml:678
 #, no-c-format
 msgid ""
 ", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddNode\"/>, <xref "
@@ -1202,24 +1223,24 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:685
+#: extras_topology.xml:689
 #, no-c-format
 msgid "TopoGeo_AddLineString"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:687
+#: extras_topology.xml:691
 #, no-c-format
 msgid ""
 "Adds a linestring to an existing topology using a tolerance and possibly "
-"splitting existing edges/faces."
+"splitting existing edges/faces. Returns edge identifiers"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:694
+#: extras_topology.xml:698
 #, no-c-format
 msgid ""
-"<funcdef>integer <function>TopoGeo_AddLineString</function></funcdef> "
+"<funcdef>SETOF integer <function>TopoGeo_AddLineString</function></funcdef> "
 "<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
 "<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</"
@@ -1227,7 +1248,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:706
+#: extras_topology.xml:710
 #, no-c-format
 msgid ""
 "Adds a linestring to an existing topology and return a set of edge "
@@ -1237,7 +1258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:720
+#: extras_topology.xml:724
 #, no-c-format
 msgid ""
 ", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddEdge\"/>, <xref "
@@ -1245,13 +1266,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:731
+#: extras_topology.xml:735
 #, no-c-format
 msgid "TopoGeo_AddPolygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:733
+#: extras_topology.xml:737
 #, no-c-format
 msgid ""
 "Adds a polygon to an existing topology using a tolerance and possibly "
@@ -1259,18 +1280,18 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:740
+#: extras_topology.xml:744
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> "
 "<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
-"<paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>apoly</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</"
 "parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:752
+#: extras_topology.xml:756
 #, no-c-format
 msgid ""
 "Adds a polygon to an existing topology and return a set of face identifiers "
@@ -1280,7 +1301,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:766
+#: extras_topology.xml:770
 #, no-c-format
 msgid ""
 ", <xref linkend=\"TopoGeo_AddLineString\"/>, <xref linkend=\"AddFace\"/>, "
@@ -1288,7 +1309,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:781
+#: extras_topology.xml:785
 #, no-c-format
 msgid ""
 "This section covers topology functions for adding, moving, deleting, and "
@@ -1297,19 +1318,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:784
+#: extras_topology.xml:788
 #, no-c-format
 msgid "Topology Editors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:788
+#: extras_topology.xml:792
 #, no-c-format
 msgid "ST_AddIsoNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:790
+#: extras_topology.xml:794
 #, no-c-format
 msgid ""
 "Adds an isolated node to a face in a topology and returns the nodeid of the "
@@ -1317,7 +1338,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:795
+#: extras_topology.xml:799
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_AddIsoNode</function></funcdef> "
@@ -1327,7 +1348,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:807
+#: extras_topology.xml:811
 #, no-c-format
 msgid ""
 "Adds an isolated node with point location <varname>apoint</varname> to an "
@@ -1336,7 +1357,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:808
+#: extras_topology.xml:812
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the point geometry is not the same "
@@ -1347,7 +1368,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:810
+#: extras_topology.xml:814
 #, no-c-format
 msgid ""
 "If <varname>aface</varname> is not null and the <varname>apoint</varname> is "
@@ -1355,13 +1376,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:814
+#: extras_topology.xml:818
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X+1.3.1"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:827
+#: extras_topology.xml:831
 #, no-c-format
 msgid ""
 ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>, "
@@ -1369,13 +1390,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:833
+#: extras_topology.xml:837
 #, no-c-format
 msgid "ST_AddIsoEdge"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:835
+#: extras_topology.xml:839
 #, no-c-format
 msgid ""
 "<refpurpose>Adds an isolated edge defined by geometry <varname>alinestring</"
@@ -1385,7 +1406,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:840
+#: extras_topology.xml:844
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_AddIsoEdge</function></funcdef> "
@@ -1397,7 +1418,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:853
+#: extras_topology.xml:857
 #, no-c-format
 msgid ""
 "<para>Adds an isolated edge defined by geometry <varname>alinestring</"
@@ -1407,7 +1428,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:854
+#: extras_topology.xml:858
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the <varname>alinestring</varname> "
@@ -1417,7 +1438,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:856
+#: extras_topology.xml:860
 #, no-c-format
 msgid ""
 "If the <varname>alinestring</varname> is not within the face of the face the "
@@ -1426,7 +1447,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:857
+#: extras_topology.xml:861
 #, no-c-format
 msgid ""
 "If the <varname>anode</varname> and <varname>anothernode</varname> are not "
@@ -1435,26 +1456,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:861
+#: extras_topology.xml:865
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.4"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:874
+#: extras_topology.xml:878
 #, no-c-format
 msgid ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:880
+#: extras_topology.xml:884
 #, no-c-format
 msgid "ST_AddEdgeNewFaces"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:882
+#: extras_topology.xml:886
 #, no-c-format
 msgid ""
 "Add a new edge and, if in doing so it splits a face, delete the original "
@@ -1462,7 +1483,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:887
+#: extras_topology.xml:891
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_AddEdgeNewFaces</function></funcdef> "
@@ -1474,7 +1495,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:900
+#: extras_topology.xml:904
 #, no-c-format
 msgid ""
 "Add a new edge and, if in doing so it splits a face, delete the original "
@@ -1483,14 +1504,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:906 extras_topology.xml:964 extras_topology.xml:1027
-#: extras_topology.xml:1095
+#: extras_topology.xml:910 extras_topology.xml:968 extras_topology.xml:1031
+#: extras_topology.xml:1099
 #, no-c-format
 msgid "Updates all existing joined edges and relationships accordingly."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:910 extras_topology.xml:968
+#: extras_topology.xml:914 extras_topology.xml:972
 #, no-c-format
 msgid ""
 "If any arguments are null, the given nodes are unknown (must already exist "
@@ -1501,7 +1522,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:913 extras_topology.xml:971 extras_topology.xml:1166
+#: extras_topology.xml:917 extras_topology.xml:975 extras_topology.xml:1170
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the <varname>acurve</varname> "
@@ -1509,20 +1530,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:917
+#: extras_topology.xml:921
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.12"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:937
+#: extras_topology.xml:941
 #, no-c-format
 msgid "ST_AddEdgeModFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:939
+#: extras_topology.xml:943
 #, no-c-format
 msgid ""
 "Add a new edge and, if in doing so it splits a face, modify the original "
@@ -1530,7 +1551,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:944
+#: extras_topology.xml:948
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_AddEdgeModFace</function></funcdef> "
@@ -1542,7 +1563,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:957
+#: extras_topology.xml:961
 #, no-c-format
 msgid ""
 "Add a new edge and, if in doing so it splits a face, modify the original "
@@ -1552,20 +1573,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:974
+#: extras_topology.xml:978
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.13"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:994
+#: extras_topology.xml:998
 #, no-c-format
 msgid "ST_RemEdgeNewFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:996
+#: extras_topology.xml:1000
 #, no-c-format
 msgid ""
 "<refpurpose>Removes an edge and, if the removed edge separated two faces, "
@@ -1573,7 +1594,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1004
+#: extras_topology.xml:1008
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_RemEdgeNewFace</function></funcdef> "
@@ -1582,7 +1603,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1015
+#: extras_topology.xml:1019
 #, no-c-format
 msgid ""
 "<para>Removes an edge and, if the removed edge separated two faces, delete "
@@ -1590,7 +1611,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1020
+#: extras_topology.xml:1024
 #, no-c-format
 msgid ""
 "Returns the id of a newly created face or NULL, if no new face is created. "
@@ -1600,7 +1621,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1031 extras_topology.xml:1099
+#: extras_topology.xml:1035 extras_topology.xml:1103
 #, no-c-format
 msgid ""
 "Refuses to remove an edge partecipating in the definition of an existing "
@@ -1609,7 +1630,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1038 extras_topology.xml:1106
+#: extras_topology.xml:1042 extras_topology.xml:1110
 #, no-c-format
 msgid ""
 "If any arguments are null, the given edge is unknown (must already exist in "
@@ -1618,20 +1639,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1046
+#: extras_topology.xml:1050
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.14"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1066
+#: extras_topology.xml:1070
 #, no-c-format
 msgid "ST_RemEdgeModFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1068
+#: extras_topology.xml:1072
 #, no-c-format
 msgid ""
 "Removes an edge and, if the removed edge separated two faces, delete one of "
@@ -1639,7 +1660,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1076
+#: extras_topology.xml:1080
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_RemEdgeModFace</function></funcdef> "
@@ -1648,7 +1669,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1087
+#: extras_topology.xml:1091
 #, no-c-format
 msgid ""
 "Removes an edge and, if the removed edge separated two faces, delete one of "
@@ -1659,20 +1680,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1114
+#: extras_topology.xml:1118
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.15"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1134
+#: extras_topology.xml:1138
 #, no-c-format
 msgid "ST_ChangeEdgeGeom"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1136
+#: extras_topology.xml:1140
 #, no-c-format
 msgid ""
 "<refpurpose>Changes the shape of an edge without affecting the topology "
@@ -1680,7 +1701,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1143
+#: extras_topology.xml:1147
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_ChangeEdgeGeom</function></funcdef> "
@@ -1690,7 +1711,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1155
+#: extras_topology.xml:1159
 #, no-c-format
 msgid ""
 "<para>Changes the shape of an edge without affecting the topology structure."
@@ -1698,7 +1719,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1158
+#: extras_topology.xml:1162
 #, no-c-format
 msgid ""
 "If any arguments are null, the given edge does not exist in the "
@@ -1710,14 +1731,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1167
+#: extras_topology.xml:1171
 #, no-c-format
 msgid ""
 "If the new <varname>acurve</varname> is not simple, then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1169
+#: extras_topology.xml:1173
 #, no-c-format
 msgid ""
 "If moving the edge from old to new position would hit an obstacle then an "
@@ -1725,26 +1746,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1175
+#: extras_topology.xml:1179
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1178
+#: extras_topology.xml:1182
 #, no-c-format
 msgid "Enhanced: 2.0.0 adds topological consistency enforcement"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1182
+#: extras_topology.xml:1186
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details X.3.6"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1188
+#: extras_topology.xml:1192
 #, no-c-format
 msgid ""
 "SELECT topology.ST_ChangeEdgeGeom('ma_topo', 1,  \n"
@@ -1755,13 +1776,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1202
+#: extras_topology.xml:1206
 #, no-c-format
 msgid "ST_ModEdgeSplit"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1204
+#: extras_topology.xml:1208
 #, no-c-format
 msgid ""
 "Split an edge by creating a new node along an existing edge, modifying the "
@@ -1769,39 +1790,39 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1209
+#: extras_topology.xml:1213
 #, no-c-format
 msgid ""
-"<funcdef>text <function>ST_ModEdgeSplit</function></funcdef> "
+"<funcdef>integer <function>ST_ModEdgeSplit</function></funcdef> "
 "<paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> "
 "<paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1221
+#: extras_topology.xml:1225
 #, no-c-format
 msgid ""
 "Split an edge by creating a new node along an existing edge, modifying the "
 "original edge and adding a new edge. Updates all existing joined edges and "
-"relationships accordingly."
+"relationships accordingly. Returns the identifier of the newly added node."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1229
+#: extras_topology.xml:1234
 #, no-c-format
 msgid "Changed: 2.0 - In prior versions, this was misnamed ST_ModEdgesSplit"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1230 extras_topology.xml:1284 extras_topology.xml:1334
+#: extras_topology.xml:1235 extras_topology.xml:1289 extras_topology.xml:1339
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.9"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1236
+#: extras_topology.xml:1241
 #, no-c-format
 msgid ""
 "-- Add an edge --\n"
@@ -1813,15 +1834,15 @@ msgid ""
 "\n"
 "\n"
 "-- Split the edge  --\n"
-"SELECT topology.ST_ModEdgeSplit('ma_topo',  3, ST_SetSRID(ST_Point"
-"(227594,893910),26986)  ) As result;\n"
-"         result\n"
+"SELECT topology.ST_ModEdgeSplit('ma_topo',  3, "
+"ST_SetSRID(ST_Point(227594,893910),26986)  ) As node_id;\n"
+"        node_id\n"
 "-------------------------\n"
 "7"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1242
+#: extras_topology.xml:1247
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ModEdgeHeal\"/>, <xref linkend=\"ST_NewEdgeHeal\"/>, "
@@ -1829,13 +1850,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1253
+#: extras_topology.xml:1258
 #, no-c-format
 msgid "ST_ModEdgeHeal"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1255
+#: extras_topology.xml:1260
 #, no-c-format
 msgid ""
 "Heal two edges by deleting the node connecting them, modifying the first "
@@ -1843,7 +1864,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1263
+#: extras_topology.xml:1268
 #, no-c-format
 msgid ""
 "<funcdef>int <function>ST_ModEdgeHeal</function></funcdef> "
@@ -1853,7 +1874,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1275
+#: extras_topology.xml:1280
 #, no-c-format
 msgid ""
 "Heal two edges by deleting the node connecting them, modifying the first "
@@ -1862,13 +1883,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1300
+#: extras_topology.xml:1305
 #, no-c-format
 msgid "ST_NewEdgeHeal"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1302
+#: extras_topology.xml:1307
 #, no-c-format
 msgid ""
 "Heal two edges by deleting the node connecting them, deleting both edges, "
@@ -1877,7 +1898,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1311
+#: extras_topology.xml:1316
 #, no-c-format
 msgid ""
 "<funcdef>int <function>ST_NewEdgeHeal</function></funcdef> "
@@ -1887,7 +1908,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1323
+#: extras_topology.xml:1328
 #, no-c-format
 msgid ""
 "Heal two edges by deleting the node connecting them, deleting both edges, "
@@ -1897,13 +1918,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1351
+#: extras_topology.xml:1356
 #, no-c-format
 msgid "ST_MoveIsoNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1353
+#: extras_topology.xml:1358
 #, no-c-format
 msgid ""
 "Moves an isolated node in a topology from one point to another. If new "
@@ -1912,7 +1933,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1358
+#: extras_topology.xml:1363
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_MoveIsoNode</function></funcdef> "
@@ -1922,7 +1943,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1370
+#: extras_topology.xml:1375
 #, no-c-format
 msgid ""
 "Moves an isolated node in a topology from one point to another. If new "
@@ -1930,7 +1951,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1371
+#: extras_topology.xml:1376
 #, no-c-format
 msgid ""
 "If any arguments are null, the <varname>apoint</varname> is not a point, the "
@@ -1940,7 +1961,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1372
+#: extras_topology.xml:1377
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the point geometry is not the same "
@@ -1948,37 +1969,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1377
+#: extras_topology.xml:1382
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.2"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1383
+#: extras_topology.xml:1388
 #, no-c-format
 msgid ""
 "-- Add an isolated node with no face  --\n"
-"SELECT topology.ST_AddIsoNode('ma_topo',  NULL, ST_GeomFromText('POINT"
-"(227579 893916)', 26986) ) As nodeid;\n"
+"SELECT topology.ST_AddIsoNode('ma_topo',  NULL, "
+"ST_GeomFromText('POINT(227579 893916)', 26986) ) As nodeid;\n"
 " nodeid\n"
 "--------\n"
 "      7\n"
 "-- Move the new node --\n"
-"SELECT topology.ST_MoveIsoNode('ma_topo', 7,  ST_GeomFromText('POINT"
-"(227579.5 893916.5)', 26986) ) As descrip; \n"
+"SELECT topology.ST_MoveIsoNode('ma_topo', 7,  "
+"ST_GeomFromText('POINT(227579.5 893916.5)', 26986) ) As descrip; \n"
 "                      descrip\n"
 "----------------------------------------------------\n"
 "Isolated Node 7 moved to location 227579.5,893916.5"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1394
+#: extras_topology.xml:1399
 #, no-c-format
 msgid "ST_NewEdgesSplit"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1396
+#: extras_topology.xml:1401
 #, no-c-format
 msgid ""
 "Split an edge by creating a new node along an existing edge, deleting the "
@@ -1987,7 +2008,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1401
+#: extras_topology.xml:1406
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> "
@@ -1997,7 +2018,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1413
+#: extras_topology.xml:1418
 #, no-c-format
 msgid ""
 "Split an edge with edge id <varname>anedge</varname> by creating a new node "
@@ -2008,7 +2029,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1421
+#: extras_topology.xml:1426
 #, no-c-format
 msgid ""
 "If the spatial reference system (srid) of the point geometry is not the same "
@@ -2019,13 +2040,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1426
+#: extras_topology.xml:1431
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.8"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1432
+#: extras_topology.xml:1437
 #, no-c-format
 msgid ""
 "-- Add an edge  --\n"
@@ -2036,21 +2057,21 @@ msgid ""
 "------\n"
 "        2\n"
 "-- Split the new edge --\n"
-"SELECT topology.ST_NewEdgesSplit('ma_topo', 2,  ST_GeomFromText('POINT"
-"(227578.5 893913.5)', 26986) ) As newnodeid; \n"
+"SELECT topology.ST_NewEdgesSplit('ma_topo', 2,  "
+"ST_GeomFromText('POINT(227578.5 893913.5)', 26986) ) As newnodeid; \n"
 " newnodeid\n"
 "---------\n"
 "       6"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1449
+#: extras_topology.xml:1454
 #, no-c-format
 msgid "ST_RemoveIsoNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1451
+#: extras_topology.xml:1456
 #, no-c-format
 msgid ""
 "<refpurpose>Removes an isolated node and returns description of action. If "
@@ -2059,7 +2080,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1456
+#: extras_topology.xml:1461
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> "
@@ -2068,7 +2089,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1467
+#: extras_topology.xml:1472
 #, no-c-format
 msgid ""
 "<para>Removes an isolated node and returns description of action. If the "
@@ -2077,14 +2098,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1472
+#: extras_topology.xml:1477
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X+1.3.3"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1478
+#: extras_topology.xml:1483
 #, no-c-format
 msgid ""
 "-- Add an isolated node with no face  --\n"
@@ -2095,25 +2116,25 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1490
+#: extras_topology.xml:1495
 #, no-c-format
 msgid "Topology Accessors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1493
+#: extras_topology.xml:1498
 #, no-c-format
 msgid "GetEdgeByPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1495
+#: extras_topology.xml:1500
 #, no-c-format
 msgid "Find the edge-id of an edge that intersects a given point"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1500
+#: extras_topology.xml:1505
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>GetEdgeByPoint</function></funcdef> "
@@ -2123,13 +2144,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1511
+#: extras_topology.xml:1516
 #, no-c-format
 msgid "Retrieve the id of an edge that intersects a Point"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1513
+#: extras_topology.xml:1518
 #, no-c-format
 msgid ""
 "The function returns an integer (id-edge) given a topology, a POINT and a "
@@ -2137,7 +2158,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1514 extras_topology.xml:1562
+#: extras_topology.xml:1519 extras_topology.xml:1567
 #, no-c-format
 msgid ""
 "If the point is the location of a node, then an exception is thrown. To "
@@ -2145,13 +2166,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1515
+#: extras_topology.xml:1520
 #, no-c-format
 msgid "If the point doesn't intersect an edge, returns 0 (zero)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1516
+#: extras_topology.xml:1521
 #, no-c-format
 msgid ""
 "If use tolerance > 0 and there is more than one edge near the point then an "
@@ -2159,26 +2180,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1521
+#: extras_topology.xml:1526
 #, no-c-format
 msgid ""
 "If tolerance = 0, the function use ST_Intersects otherwise uses ST_DWithin."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1524 extras_topology.xml:1571 extras_topology.xml:1618
+#: extras_topology.xml:1529 extras_topology.xml:1576 extras_topology.xml:1623
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1530 extras_topology.xml:1624
+#: extras_topology.xml:1535 extras_topology.xml:1629
 #, no-c-format
 msgid "These examples use edges we created in <xref linkend=\"AddEdge\"/>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1531
+#: extras_topology.xml:1536
 #, no-c-format
 msgid ""
 "SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology."
@@ -2190,7 +2211,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1532
+#: extras_topology.xml:1537
 #, no-c-format
 msgid ""
 "SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As nearnode\n"
@@ -2201,25 +2222,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1539
+#: extras_topology.xml:1544
 #, no-c-format
 msgid ", <xref linkend=\"GetNodeByPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1545
+#: extras_topology.xml:1550
 #, no-c-format
 msgid "GetFaceByPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1546
+#: extras_topology.xml:1551
 #, no-c-format
 msgid "Find the face-id of a face that intersects a given point"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1550
+#: extras_topology.xml:1555
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>GetFaceByPoint</function></funcdef> "
@@ -2229,13 +2250,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1560
+#: extras_topology.xml:1565
 #, no-c-format
 msgid "Retrieve the id of a face that intersects a Point."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1561
+#: extras_topology.xml:1566
 #, no-c-format
 msgid ""
 "The function returns an integer (id-face) given a topology, a POINT and a "
@@ -2243,13 +2264,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1563
+#: extras_topology.xml:1568
 #, no-c-format
 msgid "If the point doesn't intersect a face, returns 0 (zero)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1564
+#: extras_topology.xml:1569
 #, no-c-format
 msgid ""
 "If use tolerance > 0 and there is more than one face near the point then an "
@@ -2257,20 +2278,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1568
+#: extras_topology.xml:1573
 #, no-c-format
 msgid ""
 "If tolerance = 0, the function uses ST_Intersects otherwise uses ST_DWithin."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1575
+#: extras_topology.xml:1580
 #, no-c-format
 msgid "These examples use edges faces created in <xref linkend=\"AddFace\"/>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1576
+#: extras_topology.xml:1581
 #, no-c-format
 msgid ""
 "SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology."
@@ -2283,7 +2304,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1577
+#: extras_topology.xml:1582
 #, no-c-format
 msgid ""
 "SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode\n"
@@ -2294,26 +2315,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1582
+#: extras_topology.xml:1587
 #, no-c-format
 msgid ""
 ", <xref linkend=\"GetNodeByPoint\"/>, <xref linkend=\"GetEdgeByPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1588
+#: extras_topology.xml:1593
 #, no-c-format
 msgid "GetNodeByPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1590
+#: extras_topology.xml:1595
 #, no-c-format
 msgid "Find the id of a node at a point location"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1595
+#: extras_topology.xml:1600
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>GetNodeByPoint</function></funcdef> "
@@ -2323,13 +2344,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1606
+#: extras_topology.xml:1611
 #, no-c-format
 msgid "Retrieve the id of a node at a point location"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1608
+#: extras_topology.xml:1613
 #, no-c-format
 msgid ""
 "The function return an integer (id-node) given a topology, a POINT and a "
@@ -2338,13 +2359,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1609
+#: extras_topology.xml:1614
 #, no-c-format
 msgid "If there isn't a node at the point, it return 0 (zero)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1610
+#: extras_topology.xml:1615
 #, no-c-format
 msgid ""
 "If use tolerance > 0 and near the point there are more than one node it "
@@ -2352,7 +2373,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1615
+#: extras_topology.xml:1620
 #, no-c-format
 msgid ""
 "If tolerance = 0, the function use ST_Intersects otherwise will use "
@@ -2360,7 +2381,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1625
+#: extras_topology.xml:1630
 #, no-c-format
 msgid ""
 "SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode \n"
@@ -2371,7 +2392,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1626
+#: extras_topology.xml:1631
 #, no-c-format
 msgid ""
 "SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance\n"
@@ -2382,19 +2403,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1633
+#: extras_topology.xml:1638
 #, no-c-format
 msgid ", <xref linkend=\"GetEdgeByPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1639
+#: extras_topology.xml:1644
 #, no-c-format
 msgid "GetTopologyID"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1641
+#: extras_topology.xml:1646
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the id of a topology in the topology.topology table "
@@ -2402,7 +2423,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1646 extras_topology.xml:1688
+#: extras_topology.xml:1651 extras_topology.xml:1693
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>GetTopologyID</function></funcdef> "
@@ -2410,7 +2431,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1656
+#: extras_topology.xml:1661
 #, no-c-format
 msgid ""
 "<para>Returns the id of a topology in the topology.topology table given the "
@@ -2418,7 +2439,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1664
+#: extras_topology.xml:1669
 #, no-c-format
 msgid ""
 "SELECT topology.GetTopologyID('ma_topo') As topo_id;\n"
@@ -2428,7 +2449,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1670
+#: extras_topology.xml:1675
 #, no-c-format
 msgid ""
 ", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
@@ -2436,13 +2457,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1681
+#: extras_topology.xml:1686
 #, no-c-format
 msgid "GetTopologySRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1683
+#: extras_topology.xml:1688
 #, no-c-format
 msgid ""
 "Returns the SRID of a topology in the topology.topology table given the name "
@@ -2450,7 +2471,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1698
+#: extras_topology.xml:1703
 #, no-c-format
 msgid ""
 "Returns the spatial reference id of a topology in the topology.topology "
@@ -2458,7 +2479,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1706
+#: extras_topology.xml:1711
 #, no-c-format
 msgid ""
 "SELECT topology.GetTopologySRID('ma_topo') As SRID;\n"
@@ -2468,7 +2489,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1712
+#: extras_topology.xml:1717
 #, no-c-format
 msgid ""
 ", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, "
@@ -2476,19 +2497,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1723
+#: extras_topology.xml:1728
 #, no-c-format
 msgid "GetTopologyName"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1725
+#: extras_topology.xml:1730
 #, no-c-format
 msgid "Returns the name of a topology (schema) given the id of the topology."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1730
+#: extras_topology.xml:1735
 #, no-c-format
 msgid ""
 "<funcdef>varchar <function>GetTopologyName</function></funcdef> "
@@ -2496,7 +2517,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1740
+#: extras_topology.xml:1745
 #, no-c-format
 msgid ""
 "Returns the topology name (schema) of a topology from the topology.topology "
@@ -2504,7 +2525,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1748
+#: extras_topology.xml:1753
 #, no-c-format
 msgid ""
 "SELECT topology.GetTopologyName(1) As topo_name;\n"
@@ -2514,7 +2535,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1754
+#: extras_topology.xml:1759
 #, no-c-format
 msgid ""
 ", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyID\"/>, <xref "
@@ -2522,21 +2543,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1765
+#: extras_topology.xml:1770
 #, no-c-format
 msgid "ST_GetFaceEdges"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1767
+#: extras_topology.xml:1772
 #, no-c-format
-msgid ""
-"Returns a set of ordered edges that bound <varname>aface</varname> includes "
-"the sequence order."
+msgid "Returns a set of ordered edges that bound <varname>aface</varname>."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1772
+#: extras_topology.xml:1777
 #, no-c-format
 msgid ""
 "<funcdef>getfaceedges_returntype <function>ST_GetFaceEdges</function></"
@@ -2546,30 +2565,32 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1783
+#: extras_topology.xml:1788
 #, no-c-format
 msgid ""
-"Returns a set of ordered edges that bound <varname>aface</varname> includes "
-"the sequence order. Each output consists of a sequence and edgeid. Sequence "
-"numbers start with value 1."
+"Returns a set of ordered edges that bound <varname>aface</varname>. Each "
+"output consists of a sequence and edgeid. Sequence numbers start with value "
+"1."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1785
+#: extras_topology.xml:1790
 #, no-c-format
 msgid ""
-"Enumeration of each ring edges start from the edge with smallest identifier."
+"Enumeration of each ring edges start from the edge with smallest identifier. "
+"Order of edges follows a left-hand-rule (bound face is on the left of each "
+"directed edge)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1791
+#: extras_topology.xml:1797
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.5"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1797
+#: extras_topology.xml:1803
 #, no-c-format
 msgid ""
 "-- Returns the edges bounding face 1\n"
@@ -2588,7 +2609,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1798
+#: extras_topology.xml:1804
 #, no-c-format
 msgid ""
 "-- Returns the sequenc, edge id\n"
@@ -2600,25 +2621,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1804
+#: extras_topology.xml:1810
 #, no-c-format
 msgid ", <xref linkend=\"AddFace\"/>, <xref linkend=\"ST_GetFaceGeometry\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1814
+#: extras_topology.xml:1820
 #, no-c-format
 msgid "ST_GetFaceGeometry"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1816
+#: extras_topology.xml:1822
 #, no-c-format
 msgid "Returns the polygon in the given topology with the specified face id."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1821
+#: extras_topology.xml:1827
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> "
@@ -2627,7 +2648,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1832
+#: extras_topology.xml:1838
 #, no-c-format
 msgid ""
 "Returns the polygon in the given topology with the specified face id. Builds "
@@ -2635,14 +2656,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1837
+#: extras_topology.xml:1843
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.16"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1843
+#: extras_topology.xml:1849
 #, no-c-format
 msgid ""
 "-- Returns the wkt of the polygon added with AddFace\n"
@@ -2658,19 +2679,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1855
+#: extras_topology.xml:1861
 #, no-c-format
 msgid "GetRingEdges"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1857
+#: extras_topology.xml:1863
 #, no-c-format
 msgid "Returns an ordered set of edges forming a ring with the given edge ."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1864
+#: extras_topology.xml:1870
 #, no-c-format
 msgid ""
 "<funcdef>getfaceedges_returntype <function>GetRingEdges</function></funcdef> "
@@ -2681,7 +2702,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1876
+#: extras_topology.xml:1882
 #, no-c-format
 msgid ""
 "Returns an ordered set of edges forming a ring with the given edge. Each "
@@ -2691,7 +2712,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1884
+#: extras_topology.xml:1890
 #, no-c-format
 msgid ""
 "If <varname>max_edges</varname> is not null no more than those records are "
@@ -2700,25 +2721,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1899
+#: extras_topology.xml:1905
 #, no-c-format
 msgid ", <xref linkend=\"GetNodeEdges\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1908
+#: extras_topology.xml:1914
 #, no-c-format
 msgid "GetNodeEdges"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1910
+#: extras_topology.xml:1916
 #, no-c-format
 msgid "Returns an ordered set of edges incident to the given node."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1917
+#: extras_topology.xml:1923
 #, no-c-format
 msgid ""
 "<funcdef>getfaceedges_returntype <function>GetNodeEdges</function></funcdef> "
@@ -2727,7 +2748,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1928
+#: extras_topology.xml:1934
 #, no-c-format
 msgid ""
 "Returns an ordered set of edges incident to the given node. Each output "
@@ -2738,7 +2759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1939
+#: extras_topology.xml:1945
 #, no-c-format
 msgid ""
 "This function computes ordering rather than deriving from metadata and is "
@@ -2746,13 +2767,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1952
+#: extras_topology.xml:1958
 #, no-c-format
 msgid ", <xref linkend=\"ST_Azimuth\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1965
+#: extras_topology.xml:1971
 #, no-c-format
 msgid ""
 "This section covers the functions for processing topologies in non-standard "
@@ -2760,25 +2781,25 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1968
+#: extras_topology.xml:1974
 #, no-c-format
 msgid "Topology Processing"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1971
+#: extras_topology.xml:1977
 #, no-c-format
 msgid "Polygonize"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1972
+#: extras_topology.xml:1978
 #, no-c-format
 msgid "Find and register all faces defined by topology edges"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1976
+#: extras_topology.xml:1982
 #, no-c-format
 msgid ""
 "<funcdef>text <function>Polygonize</function></funcdef> "
@@ -2786,19 +2807,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1986
+#: extras_topology.xml:1992
 #, no-c-format
 msgid "Register all faces that can be built out a topology edge primitives."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1987
+#: extras_topology.xml:1993
 #, no-c-format
 msgid "The target topology is assumed to contain no self-intersecting edges."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1988
+#: extras_topology.xml:1994
 #, no-c-format
 msgid ""
 "Already known faces are recognized, so it is safe to call Polygonize "
@@ -2806,7 +2827,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1989 extras_topology.xml:2142
+#: extras_topology.xml:1995 extras_topology.xml:2148
 #, no-c-format
 msgid ""
 "This function does not use nor set the next_left_edge and next_right_edge "
@@ -2814,19 +2835,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2001
+#: extras_topology.xml:2007
 #, no-c-format
 msgid ", <xref linkend=\"ST_Polygonize\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2007
+#: extras_topology.xml:2013
 #, no-c-format
 msgid "AddNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2009
+#: extras_topology.xml:2015
 #, no-c-format
 msgid ""
 "Adds a point node to the node table in the specified topology schema and "
@@ -2835,7 +2856,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2014
+#: extras_topology.xml:2020
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>AddNode</function></funcdef> "
@@ -2848,7 +2869,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2027
+#: extras_topology.xml:2033
 #, no-c-format
 msgid ""
 "Adds a point node to the node table in the specified topology schema. The "
@@ -2857,7 +2878,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2034
+#: extras_topology.xml:2040
 #, no-c-format
 msgid ""
 "If any edge crossing the node is found either an exception is raised or the "
@@ -2866,7 +2887,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2040
+#: extras_topology.xml:2046
 #, no-c-format
 msgid ""
 "If <varname>computeContainingFace</varname> is true a newly added node would "
@@ -2874,7 +2895,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2045
+#: extras_topology.xml:2051
 #, no-c-format
 msgid ""
 "If the <varname>apoint</varname> geometry already exists as a node, the node "
@@ -2882,7 +2903,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2054
+#: extras_topology.xml:2060
 #, no-c-format
 msgid ""
 "SELECT topology.AddNode('ma_topo', ST_GeomFromText('POINT(227641.6 "
@@ -2894,13 +2915,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2066
+#: extras_topology.xml:2072
 #, no-c-format
 msgid "AddEdge"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2068
+#: extras_topology.xml:2074
 #, no-c-format
 msgid ""
 "Adds a linestring edge to the edge table and associated start and end points "
@@ -2910,7 +2931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2073
+#: extras_topology.xml:2079
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>AddEdge</function></funcdef> "
@@ -2919,7 +2940,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2084
+#: extras_topology.xml:2090
 #, no-c-format
 msgid ""
 "Adds an edge to the edge table and associated nodes to the nodes table of "
@@ -2929,7 +2950,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2086
+#: extras_topology.xml:2092
 #, no-c-format
 msgid ""
 "If the <varname>aline</varname> geometry crosses, overlaps, contains or is "
@@ -2938,7 +2959,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2087
+#: extras_topology.xml:2093
 #, no-c-format
 msgid ""
 "The geometry of <varname>aline</varname> must have the same <varname>srid</"
@@ -2947,13 +2968,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2091
+#: extras_topology.xml:2097
 #, no-c-format
 msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2097
+#: extras_topology.xml:2103
 #, no-c-format
 msgid ""
 "SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 "
@@ -2979,19 +3000,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2103
+#: extras_topology.xml:2109
 #, no-c-format
 msgid ", <xref linkend=\"spatial_ref_sys\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2109
+#: extras_topology.xml:2115
 #, no-c-format
 msgid "AddFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2111
+#: extras_topology.xml:2117
 #, no-c-format
 msgid ""
 "<refpurpose>Registers a face primitive to a topology and get it's identifier."
@@ -2999,7 +3020,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2118
+#: extras_topology.xml:2124
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>AddFace</function></funcdef> "
@@ -3010,7 +3031,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2130
+#: extras_topology.xml:2136
 #, no-c-format
 msgid ""
 "<para>Registers a face primitive to a topology and get it's identifier.</"
@@ -3018,7 +3039,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2134
+#: extras_topology.xml:2140
 #, no-c-format
 msgid ""
 "For a newly added face, the edges forming its boundaries and the ones "
@@ -3028,7 +3049,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2146
+#: extras_topology.xml:2152
 #, no-c-format
 msgid ""
 "The target topology is assumed to be valid (containing no self-intersecting "
@@ -3037,7 +3058,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2148
+#: extras_topology.xml:2154
 #, no-c-format
 msgid ""
 "If the <varname>apolygon</varname> geometry already exists as a face, then: "
@@ -3047,7 +3068,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2156
+#: extras_topology.xml:2162
 #, no-c-format
 msgid ""
 "When a new registration of an existing face is performed (force_new=true), "
@@ -3057,7 +3078,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2163
+#: extras_topology.xml:2169
 #, no-c-format
 msgid ""
 "The <varname>apolygon</varname> geometry must have the same <varname>srid</"
@@ -3066,14 +3087,14 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2172
+#: extras_topology.xml:2178
 #, no-c-format
 msgid ""
 "-- first add the edges we use generate_series as an iterator (the below \n"
 "-- will only work for polygons with < 10000 points because of our max in "
 "gs) \n"
-"SELECT topology.AddEdge('ma_topo', ST_MakeLine(ST_PointN(geom,i), ST_PointN"
-"(geom, i + 1) )) As edgeid\n"
+"SELECT topology.AddEdge('ma_topo', ST_MakeLine(ST_PointN(geom,i), "
+"ST_PointN(geom, i + 1) )) As edgeid\n"
 "    FROM (SELECT  ST_NPoints(geom) AS npt, geom\n"
 "            FROM \n"
 "                (SELECT ST_Boundary(ST_GeomFromText('POLYGON((234896.5 "
@@ -3113,33 +3134,96 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2178
+#: extras_topology.xml:2184
 #, no-c-format
 msgid ""
 ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"spatial_ref_sys\"/>"
 msgstr ""
 
+#. Tag: refname
+#: extras_topology.xml:2190
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2191
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2197
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_Simplify</function></funcdef> "
+"<paramdef><type>TopoGeometry</type> <parameter>geomA</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
 #. Tag: para
-#: extras_topology.xml:2188
+#: extras_topology.xml:2207
+#, no-c-format
+msgid ""
+"Returns a \"simplified\" geometry version of the given TopoGeometry using "
+"the Douglas-Peucker algorithm on each component edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2210
+#, no-c-format
+msgid "The returned geometry may be non-simple or non-valid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2211
+#, no-c-format
+msgid "Splitting component edges may help retaining simplicity/validity."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2213
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2214 extras_topology.xml:2740
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2219
+#, no-c-format
+msgid ""
+"Geometry <xref linkend=\"ST_Simplify\"/>, <xref linkend=\"ST_IsSimple\"/>, "
+"<xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_ModEdgeSplit\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2229
 #, no-c-format
 msgid ""
 "This section covers the topology functions for creating new topogeometries."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2191
+#: extras_topology.xml:2232
 #, no-c-format
 msgid "TopoGeometry Constructors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2194
+#: extras_topology.xml:2235
 #, no-c-format
 msgid "CreateTopoGeom"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2196
+#: extras_topology.xml:2237
 #, no-c-format
 msgid ""
 "Creates a new topo geometry object from topo element array - tg_type: 1:"
@@ -3147,7 +3231,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:2200
+#: extras_topology.xml:2241
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></"
@@ -3163,7 +3247,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2221 extras_topology.xml:2283
+#: extras_topology.xml:2262
 #, no-c-format
 msgid ""
 "Creates a topogeometry object for layer denoted by layer_id and registers it "
@@ -3171,7 +3255,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2222
+#: extras_topology.xml:2263
 #, no-c-format
 msgid ""
 "tg_type is an integer: 1:[multi]point (punctal), 2:[multi]line (lineal), 3:"
@@ -3180,7 +3264,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2223
+#: extras_topology.xml:2264
 #, no-c-format
 msgid ""
 "punctal layers are formed from set of nodes, lineal layers are formed from a "
@@ -3189,20 +3273,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2225
+#: extras_topology.xml:2266
 #, no-c-format
 msgid ""
 "Omitting the array of components generates an empty TopoGeometry object."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2232
+#: extras_topology.xml:2273
 #, no-c-format
 msgid "Examples: Form from existing edges"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2233
+#: extras_topology.xml:2274
 #, no-c-format
 msgid ""
 "Create a topogeom in ri_topo schema for layer 2 (our ri_roads), of type (2) "
@@ -3210,7 +3294,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2234
+#: extras_topology.xml:2275
 #, no-c-format
 msgid ""
 "INSERT INTO ri.ri_roads(road_name, topo) VALUES('Unknown', topology."
@@ -3218,13 +3302,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2239
+#: extras_topology.xml:2280
 #, no-c-format
 msgid "Examples: Convert an areal geometry to best guess topogeometry"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2240
+#: extras_topology.xml:2281
 #, no-c-format
 msgid ""
 "Lets say we have geometries that should be formed from a collection of "
@@ -3234,7 +3318,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2242
+#: extras_topology.xml:2283
 #, no-c-format
 msgid ""
 "-- create our topo geometry column --\n"
@@ -3262,7 +3346,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2244
+#: extras_topology.xml:2285
 #, no-c-format
 msgid ""
 "--the world is rarely perfect allow for some error\n"
@@ -3281,8 +3365,8 @@ msgid ""
 "                OR\n"
 " (  ST_Intersects(b.geom, topology.ST_GetFaceGeometry('topo_boston', f."
 "face_id))\n"
-"            AND ST_Area(ST_Intersection(b.geom, topology.ST_GetFaceGeometry"
-"('topo_boston', f.face_id) ) ) > \n"
+"            AND ST_Area(ST_Intersection(b.geom, topology."
+"ST_GetFaceGeometry('topo_boston', f.face_id) ) ) > \n"
 "                ST_Area(topology.ST_GetFaceGeometry('topo_boston', f."
 "face_id))*0.5\n"
 "                )\n"
@@ -3298,7 +3382,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2250
+#: extras_topology.xml:2291
 #, no-c-format
 msgid ""
 ", <xref linkend=\"toTopoGeom\"/> <xref linkend=\"ST_CreateTopoGeo\"/>, <xref "
@@ -3307,40 +3391,60 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2263
+#: extras_topology.xml:2304 extras_topology.xml:2480
 #, no-c-format
 msgid "toTopoGeom"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2265
+#: extras_topology.xml:2306
 #, no-c-format
-msgid "Creates a new topo geometry from a simple geometry"
+msgid "Converts a simple Geometry into a topo geometry"
 msgstr ""
 
-#. Tag: funcprototype
-#: extras_topology.xml:2270
+#. Tag: funcsynopsis
+#: extras_topology.xml:2312
 #, no-c-format
 msgid ""
-"<funcdef>topogeometry <function>toTopoGeom</function></funcdef> "
-"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
-"<paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> "
-"<paramdef><type>integer</type> <parameter>layer_id</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</"
-"parameter></paramdef>"
+"<funcprototype> <funcdef>topogeometry <function>toTopoGeom</function></"
+"funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry "
+"<function>toTopoGeom</function></funcdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>topogeometry </type> "
+"<parameter>topogeom</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>float8</type> <parameter>tolerance</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2333
+#, no-c-format
+msgid "Converts a simple Geometry into a <xref linkend=\"topogeometry\"/>."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2287
+#: extras_topology.xml:2337
 #, no-c-format
 msgid ""
 "Topological primitives required to represent the input geometry will be "
-"added, possibly splitting existing ones. Pre-existing TopoGeometry objects "
-"will retain their shapes."
+"added to the underlying topology, possibly splitting existing ones, and they "
+"will be associated with the output TopoGeometry in the <varname>relation</"
+"varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2344
+#, no-c-format
+msgid ""
+"Existing TopoGeometry objects (with the possible exception of "
+"<varname>topogeom</varname>, if given) will retain their shapes."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2292
+#: extras_topology.xml:2349
 #, no-c-format
 msgid ""
 "When <varname>tolerance</varname> is given it will be used to snap the input "
@@ -3348,13 +3452,38 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2301
+#: extras_topology.xml:2354
+#, no-c-format
+msgid ""
+"In the first form a new TopoGeometry will be created for the given layer "
+"(<varname>layer_id</varname>) of the given topology (<varname>toponame</"
+"varname>)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2359
+#, no-c-format
+msgid ""
+"In the second form the primitives resulting from the conversion will be "
+"added to the pre-existing TopoGeometry (<varname>topogeom</varname>), "
+"possibly adding space to its final shape. To have the new shape completely "
+"replace the old one see <xref linkend=\"clearTopoGeom\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2368
+#, no-c-format
+msgid "Enhanced: 2.1.0 adds the version taking an existing TopoGeometry."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2372
 #, no-c-format
 msgid "This is a full self-contained workflow"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2302
+#: extras_topology.xml:2373
 #, no-c-format
 msgid ""
 "-- do this if you don't have a topology setup already\n"
@@ -3387,22 +3516,40 @@ msgid ""
 " Deploy: public.nei_topo.topo"
 msgstr ""
 
+#. Tag: programlisting
+#: extras_topology.xml:2375
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);\n"
+"\n"
+"-- Get the no-one-lands left by the above operation\n"
+"-- I think GRASS calls this \"polygon0 layer\"\n"
+"SELECT ST_GetFaceGeometry('topo_boston_test', f.face_id) \n"
+"  FROM topo_boston_test.face f\n"
+"  WHERE f.face_id > 0 -- don't consider the universe face\n"
+"  AND NOT EXISTS ( -- check that no TopoGeometry references the face\n"
+"    SELECT * FROM topo_boston_test.relation\n"
+"    WHERE layer_id = 1 AND element_id = f.face_id\n"
+"  );"
+msgstr ""
+
 #. Tag: para
-#: extras_topology.xml:2308
+#: extras_topology.xml:2381
 #, no-c-format
 msgid ""
-",<xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom\"/"
-">, <xref linkend=\"TopologySummary\"/>"
+", <xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom"
+"\"/>, <xref linkend=\"TopologySummary\"/>, <xref linkend=\"clearTopoGeom\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2315
+#: extras_topology.xml:2393
 #, no-c-format
 msgid "TopoElementArray_Agg"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2316
+#: extras_topology.xml:2394
 #, no-c-format
 msgid ""
 "Returns a <varname>topoelementarray</varname> for a set of element_id, type "
@@ -3410,7 +3557,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2321
+#: extras_topology.xml:2399
 #, no-c-format
 msgid ""
 "<funcdef>topoelementarray <function>TopoElementArray_Agg</function></"
@@ -3419,7 +3566,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2331
+#: extras_topology.xml:2409
 #, no-c-format
 msgid ""
 "Used to create a <xref linkend=\"topoelementarray\"/> from a set of <xref "
@@ -3427,7 +3574,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2340
+#: extras_topology.xml:2418
 #, no-c-format
 msgid ""
 "SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
@@ -3438,25 +3585,90 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2344 extras_topology.xml:2397
+#: extras_topology.xml:2430
 #, no-c-format
-msgid ", <xref linkend=\"topoelementarray\"/>"
+msgid ""
+"This section covers the topology functions for editing existing "
+"topogeometries."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2350
+#: extras_topology.xml:2433
+#, no-c-format
+msgid "TopoGeometry Editors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2437
+#, no-c-format
+msgid "clearTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2439
+#, no-c-format
+msgid "Clears the content of a topo geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2444
+#, no-c-format
+msgid ""
+"<funcdef>topogeometry <function>clearTopoGeom</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>topogeom</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2454
+#, no-c-format
+msgid ""
+"Clears the content a <xref linkend=\"topogeometry\"/> turning it into an "
+"empty one. Mostly useful in conjunction with <xref linkend=\"toTopoGeom\"/> "
+"to replace the shape of existing objects and any dependent object in higher "
+"hierarchical levels."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2462
+#, no-c-format
+msgid "Availability: 2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2466
+#, no-c-format
+msgid ""
+"-- Shrink all TopoGeometry polygons by 10 meters\n"
+"UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2481
+#, no-c-format
+msgid "Adds a geometry shape to an existing topo geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2485
+#, no-c-format
+msgid "Refer to <xref linkend=\"toTopoGeom\"/>"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2495
 #, no-c-format
 msgid "TopoGeometry Accessors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2354
+#: extras_topology.xml:2499
 #, no-c-format
 msgid "GetTopoGeomElementArray"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2356
+#: extras_topology.xml:2501
 #, no-c-format
 msgid ""
 "Returns a <varname>topoelementarray</varname> (an array of topoelements) "
@@ -3465,7 +3677,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2361
+#: extras_topology.xml:2506
 #, no-c-format
 msgid ""
 "<funcdef>topoelementarray <function>GetTopoGeomElementArray</function></"
@@ -3476,7 +3688,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2369
+#: extras_topology.xml:2514
 #, no-c-format
 msgid ""
 "<funcdef>topoelementarray topoelement <function>GetTopoGeomElementArray</"
@@ -3485,7 +3697,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2379
+#: extras_topology.xml:2524
 #, no-c-format
 msgid ""
 "Returns a <xref linkend=\"topoelementarray\"/> containing the topological "
@@ -3495,7 +3707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2381 extras_topology.xml:2428
+#: extras_topology.xml:2526 extras_topology.xml:2573
 #, no-c-format
 msgid ""
 "tg_id is the topogeometry id of the topogeometry object in the topology in "
@@ -3503,13 +3715,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2402
+#: extras_topology.xml:2547
 #, no-c-format
 msgid "GetTopoGeomElements"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2404
+#: extras_topology.xml:2549
 #, no-c-format
 msgid ""
 "Returns a set of <varname>topoelement</varname> objects containing the "
@@ -3518,7 +3730,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2409
+#: extras_topology.xml:2554
 #, no-c-format
 msgid ""
 "<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
@@ -3529,7 +3741,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2417
+#: extras_topology.xml:2562
 #, no-c-format
 msgid ""
 "<funcdef>setof topoelement <function>GetTopoGeomElements</function></"
@@ -3538,7 +3750,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2427
+#: extras_topology.xml:2572
 #, no-c-format
 msgid ""
 "Returns a set of element_id,element_type (topoelements) for a given "
@@ -3546,31 +3758,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2444
+#: extras_topology.xml:2589
 #, no-c-format
 msgid ", <xref linkend=\"topoelement\"/>"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2451
+#: extras_topology.xml:2597
 #, no-c-format
 msgid "TopoGeometry Outputs"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2454
+#: extras_topology.xml:2600
 #, no-c-format
 msgid "AsGML"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2456
+#: extras_topology.xml:2602
 #, no-c-format
 msgid "Returns the GML representation of a topogeometry."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:2460
+#: extras_topology.xml:2606
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>AsGML</function></funcdef> "
@@ -3617,7 +3829,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2521
+#: extras_topology.xml:2667
 #, no-c-format
 msgid ""
 "Returns the GML representation of a topogeometry in version GML3 format. If "
@@ -3628,7 +3840,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2523
+#: extras_topology.xml:2669
 #, no-c-format
 msgid ""
 "The <varname>visitedTable</varname> parameter, if given, is used for keeping "
@@ -3643,7 +3855,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2529
+#: extras_topology.xml:2675
 #, no-c-format
 msgid ""
 "CREATE TABLE visited (\n"
@@ -3653,7 +3865,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2532
+#: extras_topology.xml:2678
 #, no-c-format
 msgid ""
 "The <varname>idprefix</varname> parameter, if given, will be prepended to "
@@ -3661,7 +3873,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2534
+#: extras_topology.xml:2680
 #, no-c-format
 msgid ""
 "The <varname>gmlver</varname> parameter, if given, will be passed to the "
@@ -3669,14 +3881,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2543
+#: extras_topology.xml:2689
 #, no-c-format
 msgid ""
 "This uses the topo geometry we created in <xref linkend=\"CreateTopoGeom\"/>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2544
+#: extras_topology.xml:2690
 #, no-c-format
 msgid ""
 "SELECT topology.AsGML(topo) As rdgml \n"
@@ -3723,13 +3935,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2545
+#: extras_topology.xml:2691
 #, no-c-format
 msgid "Same exercise as previous without namespace"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2546
+#: extras_topology.xml:2692
 #, no-c-format
 msgid ""
 "SELECT topology.AsGML(topo,'') As rdgml \n"
@@ -3776,7 +3988,221 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2552
+#: extras_topology.xml:2698
 #, no-c-format
 msgid ", <xref linkend=\"ST_CreateTopoGeo\"/>"
 msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2703
+#, no-c-format
+msgid "AsTopoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2705
+#, no-c-format
+msgid "Returns the TopoJSON representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2710
+#, no-c-format
+msgid ""
+"<funcdef>text <function>AsTopoJSON</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> "
+"<paramdef><type>regclass </type> <parameter>edgeMapTable</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2721
+#, no-c-format
+msgid ""
+"Returns the TopoJSON representation of a topogeometry. If "
+"<varname>edgeMapTable</varname> is not null, it will be used as a lookup/"
+"storage mapping of edge identifiers to arc indices. This is to be able to "
+"allow for a compact \"arcs\" array in the final document."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2724
+#, no-c-format
+msgid ""
+"The table, if given, is expected to have an \"arc_id\" field of type \"serial"
+"\" and an \"edge_id\" of type integer; the code will query the table for "
+"\"edge_id\" so it is recommended to add an index on that field."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2729
+#, no-c-format
+msgid ""
+"Arc indices in the TopoJSONjoutput are 0-based but they are 1-based in the "
+"\"edgeMapTable\" table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2735
+#, no-c-format
+msgid ""
+"A full TopoJSON document will be need to contain, in addition to the "
+"snippets returned by this function, the actual arcs plus some headers. See "
+"the <ulink url=\"http://github.com/mbostock/topojson/wiki/Specification"
+"\">TopoJSON specification</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2752
+#, no-c-format
+msgid ""
+"CREATE TEMP TABLE edgemap(arc_id serial, edge_id int unique);\n"
+"\n"
+"-- header\n"
+"SELECT '{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], "
+"\"translate\": [0,0] }, \"objects\": {'\n"
+"\n"
+"-- objects\n"
+"UNION ALL SELECT '\"' || feature_name || '\": ' || AsTopoJSON(feature, "
+"'edgemap')\n"
+"FROM features.big_parcels WHERE feature_name = 'P3P4';\n"
+"\n"
+"-- arcs\n"
+"WITH edges AS ( \n"
+"  SELECT m.arc_id, e.geom FROM edgemap m, city_data.edge e\n"
+"  WHERE e.edge_id = m.edge_id\n"
+"), points AS (\n"
+"  SELECT arc_id, (st_dumppoints(geom)).* FROM edges\n"
+"), compare AS (\n"
+"  SELECT p2.arc_id,\n"
+"         CASE WHEN p1.path IS NULL THEN p2.geom\n"
+"              ELSE ST_Translate(p2.geom, -ST_X(p1.geom), -ST_Y(p1.geom))\n"
+"         END AS geom\n"
+"  FROM points p2 LEFT OUTER JOIN points p1\n"
+"  ON ( p1.arc_id = p2.arc_id AND p2.path[1] = p1.path[1]+1 )\n"
+"  ORDER BY arc_id, p2.path\n"
+"), arcsdump AS (\n"
+"  SELECT arc_id, (regexp_matches( ST_AsGeoJSON(geom), '\\[.*\\]'))[1] as t\n"
+"  FROM compare\n"
+"), arcs AS (\n"
+"  SELECT arc_id, '[' || array_to_string(array_agg(t), ',') || ']' as a FROM "
+"arcsdump\n"
+"  GROUP BY arc_id\n"
+"  ORDER BY arc_id\n"
+")\n"
+"SELECT '}, \"arcs\": [' UNION ALL\n"
+"SELECT array_to_string(array_agg(a), E',\\n') from arcs\n"
+"\n"
+"-- footer\n"
+"UNION ALL SELECT ']}'::text as t;\n"
+"\n"
+"-- Result:\n"
+"{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], \"translate\": "
+"[0,0] }, \"objects\": {\n"
+"\"P3P4\": { \"type\": \"MultiPolygon\", \"arcs\": [[[-1]],"
+"[[6,5,-5,-4,-3,1]]]}\n"
+"}, \"arcs\": [\n"
+" [[25,30],[6,0],[0,10],[-14,0],[0,-10],[8,0]],\n"
+" [[35,6],[0,8]],\n"
+" [[35,6],[12,0]],\n"
+" [[47,6],[0,8]],\n"
+" [[47,14],[0,8]],\n"
+" [[35,22],[12,0]],\n"
+" [[35,14],[0,8]]\n"
+" ]}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2760
+#, no-c-format
+msgid ""
+"This section lists the Topology functions used to check relationships "
+"between topogeometries and topology primitives"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2763
+#, no-c-format
+msgid "Topology Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2766
+#, no-c-format
+msgid "Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2768 extras_topology.xml:2817
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2773 extras_topology.xml:2822
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>Equals</function></funcdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg1</parameter></paramdef> "
+"<paramdef><type>topogeometry </type> <parameter>tg2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2784
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries are composed of the same topology "
+"primitives: faces, edges, nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2788
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2795 extras_topology.xml:2845
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2802 extras_topology.xml:2852
+#, no-c-format
+msgid "<!--TODO: Need example -->"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2809
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2815
+#, no-c-format
+msgid "Intersects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2833
+#, no-c-format
+msgid ""
+"Returns true if two topogeometries share primitives or primitives intersect"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2837
+#, no-c-format
+msgid ""
+"This function not supported for topogeometries that are geometry "
+"collections. It also can not compare topogeometries from different "
+"topologies. Also not currently supported for hierarchichal topogeometries "
+"(topogeometries composed of other topogeometries)."
+msgstr ""
diff --git a/doc/po/pt_BR/faq.xml.po b/doc/po/pt_BR/faq.xml.po
index 9f432fb..be110e5 100644
--- a/doc/po/pt_BR/faq.xml.po
+++ b/doc/po/pt_BR/faq.xml.po
@@ -1,36 +1,69 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Dauro Lima Sobrinho <daurolima at gmail.com>, 2013-2014
+# georgersilva <georger.silva at gmail.com>, 2013
+# Marcelo Soares Souza <marcelo at juntadados.org>, 2014
+# Omar Fernando Pessoa <omar.pessoa at gmail.com>, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-07-28 21:12+0000\n"
+"Last-Translator: Dauro Lima Sobrinho <daurolima at gmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
+"postgis-1/language/pt_BR/)\n"
+"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #. Tag: title
 #: faq.xml:3
 #, no-c-format
 msgid "PostGIS Frequently Asked Questions"
-msgstr ""
+msgstr "Perguntas frequentes PostGIS"
 
 #. Tag: para
 #: faq.xml:8
 #, no-c-format
 msgid ""
+"Where can I find tutorials, guides and workshops on working with PostGIS"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:12
+#, no-c-format
+msgid ""
+"OpenGeo has a step by step tutorial guide workshop <ulink url=\"http://"
+"workshops.boundlessgeo.com/postgis-intro/\">Introduction to PostGIS</ulink>. "
+"It includes packaged data as well as intro to working with OpenGeo Suite. It "
+"is probably the best tutorial on PostGIS."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:13
+#, no-c-format
+msgid ""
+"BostonGIS also has a <ulink url=\"http://www.bostongis.com/PrinterFriendly."
+"aspx?content_name=postgis_tut01\">PostGIS almost idiot's guide on getting "
+"started</ulink>. That one is more focused on the windows user."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:18
+#, no-c-format
+msgid ""
 "My applications and desktop tools worked with PostGIS 1.5,but they don't "
 "work with PostGIS 2.0. How do I fix this?"
 msgstr ""
+"Minhas aplicações e ferramentas desktop funcionavam com PostGIS 1.5, mas não "
+"funcionam com o PostGIS 2.0. Como corrigir isto?"
 
 #. Tag: para
-#: faq.xml:12
+#: faq.xml:22
 #, no-c-format
 msgid ""
 "A lot of deprecated functions were removed from the PostGIS code base in "
@@ -43,9 +76,20 @@ msgid ""
 "etc. and as a last resort, install the whole of <varname>legacy.sql</"
 "varname> or just the portions of <varname>legacy.sql</varname> you need."
 msgstr ""
+"Muitas funcionalidades obsoletas foram removidos da base de código do "
+"PostGIS na versão 2.0. Isto afetou aplicações e em especial, ferramentas de "
+"terceiros, como Geoserver, MapServer, QuantumGIS e OpenJump, para citar "
+"alguns casos. Existem algumas maneiras de resolver isto. Para aplicações de "
+"terceiros, você pode tentar atualizar para as versões mais atuais, muitas "
+"das quais corrigiram estes problemas. Para seu próprio código, você pode "
+"alterá-lo para não utilizar as funções removidas. A maior parte destas "
+"funções não possuem o prefixo ST_ de ST_Union, ST_Length, etc. Como um "
+"último recurso, você pode instalar todo o script legado <varname>legacy.sql</"
+"varname> ou apenas as porções de <varname>legacy.sql</varname> que você "
+"precisa."
 
 #. Tag: para
-#: faq.xml:18
+#: faq.xml:28
 #, no-c-format
 msgid ""
 "The <varname>legacy.sql</varname> file is located in the same folder as "
@@ -53,17 +97,108 @@ msgid ""
 "and spatial_ref_sys.sql to get back all the 200 some-odd old functions we "
 "removed."
 msgstr ""
+"O arquivo <varname>legacy.sql</varname> está localizado na mesma pasta em "
+"que o arquivo postgis.sql. Você pode instalar este arquivo após a instalação "
+"do postgis.sql e spatial_ref_sys.sql, para ter de volta todas 200 funções "
+"que foram removidas."
+
+#. Tag: para
+#: faq.xml:35
+#, no-c-format
+msgid ""
+"When I load OpenStreetMap data with osm2pgsql, I'm getting an error failed: "
+"ERROR: operator class \"gist_geometry_ops\" does not exist for access method "
+"\"gist\" Error occurred. This worked fine in PostGIS 1.5."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:40
+#, no-c-format
+msgid ""
+"In PostGIS 2, the default geometry operator class gist_geometry_ops was "
+"changed to gist_geometry_ops_2d and the gist_geometry_ops was completely "
+"removed. This was done because PostGIS 2 also introduced Nd spatial indexes "
+"for 3D support and the old name was deemed confusing and a misnomer."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:41
+#, no-c-format
+msgid ""
+"Some older applications that as part of the process create tables and "
+"indexes, explicitly referenced the operator class name. This was unnecessary "
+"if you want the default 2D index. So if you manage said good, change index "
+"creation from:"
+msgstr ""
 
 #. Tag: para
-#: faq.xml:24
+#: faq.xml:42
+#, no-c-format
+msgid "BAD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:43
+#, fuzzy, no-c-format
+msgid ""
+"CREATE INDEX idx_my_table_geom ON my_table USING gist(geom "
+"gist_geometry_ops);"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:44
+#, no-c-format
+msgid "To GOOD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:45
+#, fuzzy, no-c-format
+msgid "CREATE INDEX idx_my_table_geom ON my_table USING gist(geom);"
+msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
+
+#. Tag: para
+#: faq.xml:47
+#, no-c-format
+msgid ""
+"The only case where you WILL need to specify the operator class is if you "
+"want a 3D spatial index as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:48
+#, no-c-format
+msgid ""
+"CREATE INDEX idx_my_super3d_geom ON my_super3d USING gist(geom "
+"gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:50
+#, no-c-format
+msgid ""
+"If you are unfortunate to be stuck with compiled code you can't change that "
+"has the old gist_geometry_ops hard-coded, then you can create the old class "
+"using the <filename>legacy_gist.sql</filename> packaged in PostGIS 2.0.2+. "
+"However if you use this fix, you are advised to at a later point drop the "
+"index and recreate it without the operator class. This will save you grief "
+"in the future when you need to upgrade again."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:56
 #, no-c-format
 msgid ""
 "I'm running PostgreSQL 9.0 and I can no longer read/view geometries in "
 "OpenJump, Safe FME, and some other tools?"
 msgstr ""
+"Estou rodando PostgreSQL 9.0 e não mais posso ler/visualizar geometrias no "
+"OpenJump, Safe FME e outras ferramentas?"
 
 #. Tag: para
-#: faq.xml:28
+#: faq.xml:60
 #, no-c-format
 msgid ""
 "In PostgreSQL 9.0+, the default encoding for bytea data has been changed to "
@@ -72,18 +207,26 @@ msgid ""
 "applications that use the older npgsql driver that expect the old behavior "
 "of ST_AsBinary. There are two approaches to getting this to work again."
 msgstr ""
+"No PostgreSQL 9.0+, o encoding padrão para dados bytea foi alterado para hex "
+"e outros drivers JDBC ainda assumem o formato escapado. Isto afetou "
+"aplicações Java utilizando drivers antigos JDBC ou aplicações .NET que usam "
+"drivers antigos npgsql e esperam o comportamento antigo de ST_AsBInary. "
+"Existem duas formas de resolver este problema."
 
 #. Tag: para
-#: faq.xml:32
+#: faq.xml:64
 #, no-c-format
 msgid ""
 "You can upgrade your JDBC driver to the latest PostgreSQL 9.0 version which "
 "you can get from <ulink url=\"http://jdbc.postgresql.org/download.html"
 "\">http://jdbc.postgresql.org/download.html</ulink>"
 msgstr ""
+"Você pode atualizar seu driver JDBC para a última versão do PostgreSQL 9.0, "
+"que você obter em <ulink url=\"http://jdbc.postgresql.org/download.html"
+"\">http://jdbc.postgresql.org/download.html</ulink>."
 
 #. Tag: para
-#: faq.xml:34
+#: faq.xml:66
 #, no-c-format
 msgid ""
 "If you are running a .NET app, you can use Npgsql 2.0.11 or higher which you "
@@ -93,48 +236,64 @@ msgid ""
 "released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released blog entry</"
 "ulink>"
 msgstr ""
+"Se você está utilizando uma aplicação .NET, você pode usar o driver Npgsql "
+"2.0.11 ou melhor, que você fazer o download em <ulink url=\"http://pgfoundry."
+"org/frs/?group_id=1000140\">http://pgfoundry.org/frs/?group_id=1000140</"
+"ulink> e descrito em <ulink url=\"http://fxjr.blogspot.com/2010/11/"
+"npgsql-2011-released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released "
+"blog entry</ulink>."
 
 #. Tag: para
-#: faq.xml:38
+#: faq.xml:70
 #, no-c-format
 msgid ""
 "If upgrading your PostgreSQL driver is not an option, then you can set the "
 "default back to the old behavior with the following change:"
 msgstr ""
+"Se realizar um upgrade dos drivers PostgreSQL não é uma opção, então você "
+"pode setar o valor padrão para o comportamento antigo, usando a seguinte "
+"mudança:"
 
 #. Tag: programlisting
-#: faq.xml:39
+#: faq.xml:71
 #, no-c-format
 msgid "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
-msgstr ""
+msgstr "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
 
 #. Tag: para
-#: faq.xml:46
+#: faq.xml:78
 #, no-c-format
 msgid ""
 "I tried to use PgAdmin to view my geometry column and it is blank, what "
 "gives?"
 msgstr ""
+"Tentei usar o PgAdmin para visualizar minhas colunas geométricas e ela está "
+"em branco?"
 
 #. Tag: para
-#: faq.xml:50
+#: faq.xml:82
 #, no-c-format
 msgid ""
 "PgAdmin doesn't show anything for large geometries. The best ways to verify "
 "you do have data in your geometry columns are?"
 msgstr ""
+"PgAdmin não mostra nada para grandes colunas. A melhor maneira de garantir "
+"que você tem dados em suas colunas geométricas são"
 
 #. Tag: programlisting
-#: faq.xml:53
+#: faq.xml:85
 #, no-c-format
 msgid ""
 "-- this should return no records if all your geom fields are filled "
 "in        \n"
 "SELECT somefield FROM mytable WHERE geom IS NULL;"
 msgstr ""
+"-- isto deve retornar zero registros se todos os seus campos geométricos "
+"estão preencidos \n"
+"SELECT somefield FROM mytable WHERE geom IS NULL;"
 
 #. Tag: programlisting
-#: faq.xml:55
+#: faq.xml:87
 #, no-c-format
 msgid ""
 "-- To tell just how large your geometry is do a query of the form\n"
@@ -142,15 +301,18 @@ msgid ""
 "geometry columns\n"
 "SELECT MAX(ST_NPoints(geom)) FROM sometable;"
 msgstr ""
+"-- Para ter uma ideia do tamanho de sua geometria, faça a query que vai lhe "
+"dizer o numero de pontos em suas colunas\n"
+"SELECT MAX(ST_NPoints(geom)) FROM tabela;"
 
 #. Tag: para
-#: faq.xml:61
+#: faq.xml:93
 #, no-c-format
 msgid "What kind of geometric objects can I store?"
-msgstr ""
+msgstr "Quais tipos de objetos geométricos posso armazenar?"
 
 #. Tag: para
-#: faq.xml:65
+#: faq.xml:97
 #, no-c-format
 msgid ""
 "You can store point, line, polygon, multipoint, multiline, multipolygon, and "
@@ -166,15 +328,29 @@ msgid ""
 "analyzing raster data. Raster has its very own FAQ. Refer to <xref linkend="
 "\"RT_FAQ\"/> and <xref linkend=\"RT_reference\"/> for more details."
 msgstr ""
+"Você pode armazenar pontos, linhas, polígonos, multipontos, multilinhas, "
+"multipolígonos e coleções geométricas. No PostGIS 2.0 ou melhor, você também "
+"pode armazenar TINS, superfícies polihédricas no tipo de geometria básico. "
+"Estes dados estão especificados no padrão Open GIS Well Known Text (com XYZ, "
+"XYM, XYZM). Existem três tipos de dados suportados. A geometria OGC padrão, "
+"que utiliza um sistema de coordenadas plano para medidas, o tipo de dados "
+"geografia, que utiliza um sistema de coordenadas geodésico (não faz parte do "
+"padrão OGC, mas existe um tipo similar no Microsoft SQL Server 2008+). "
+"Apenas o datum WGS 84 long lat (SRID 4326) é suportado pelo tipo dados "
+"geografia. O mais novo tipo de dados da família PostGIS é o raster, para "
+"armazenar e analisar dados em grade regular. Existe um FAQ somente para "
+"rasters, disponível em <xref linkend=\"RT_FAQ\"/> e <xref linkend="
+"\"RT_reference\"/> para maiores detalhes."
 
 #. Tag: para
-#: faq.xml:78
+#: faq.xml:110
 #, no-c-format
 msgid "I'm all confused. Which data store should I use geometry or geography?"
 msgstr ""
+"Estou confuso. Qual tipo de dados devo utilizar, geometria ou geografia?"
 
 #. Tag: para
-#: faq.xml:82
+#: faq.xml:114
 #, no-c-format
 msgid ""
 "Short Answer: geography is a new data type that supports long range "
@@ -194,18 +370,37 @@ msgid ""
 "\"PostGIS_TypeFunctionMatrix\"/> to see what is currently supported and what "
 "is not."
 msgstr ""
+"Resposta curta: geography é um novo tipo de dados que suporta medições de "
+"distância de longo alcance, mas a maioria dos cálculos sobre ele estão "
+"atualmente mais lento do que são na geometry. Se você usar geography -- você "
+"não precisará aprender muito sobre sistemas de coordenadas planar. Geography "
+"é geralmente melhor se tudo o que importa é a medição de distâncias e "
+"comprimentos e você tem dados de todo o mundo. Tipo de dado geometry é um "
+"tipo mais antigo de dados que possúi mais funções que o suportam, goza de "
+"maior apoio de ferramentas de terceiros, e as operações nele contidas são "
+"geralmente mais rápidas -- às vezes até 10 vezes mais rápido para geometrias "
+"maiores. Geometry é melhor se você se sentir confortável com sistemas de "
+"referência espacial ou se estiver lidando com dados localizados onde todos "
+"seus dados se encaixam em um único <link linkend=\"spatial_ref_sys\">Sistema "
+"Espacial de Referência (SRID)</link>, ou você precisará fazer muito "
+"processamento espacial. Nota: É bastante fácil de fazer conversões pontuais "
+"entre dois tipos para ganhar os benefícios de cada. Consulte <xref linkend="
+"\"PostGIS_TypeFunctionMatrix\"/> para ver o que é, e não é suportado."
 
 #. Tag: para
-#: faq.xml:93
+#: faq.xml:125
 #, no-c-format
 msgid ""
 "Long Answer: Refer to our more lengthy discussion in the <xref linkend="
 "\"PostGIS_GeographyVSGeometry\"/> and <link linkend="
 "\"PostGIS_TypeFunctionMatrix\">function type matrix</link>."
 msgstr ""
+"Resposta longa: Se refere a nossa mais longa discurssão no <xref linkend="
+"\"PostGIS_GeographyVSGeometry\"/> e <link linkend="
+"\"PostGIS_TypeFunctionMatrix\"> tipo de função matriz</link>."
 
 #. Tag: para
-#: faq.xml:101
+#: faq.xml:133
 #, no-c-format
 msgid ""
 "I have more intense questions about geography, such as how big of a "
@@ -213,24 +408,32 @@ msgid ""
 "answers. Are there limitations such as poles, everything in the field must "
 "fit in a hemisphere (like SQL Server 2008 has), speed etc?"
 msgstr ""
+"Tenho questões mais aprofundadas sobre geography, tais como quão grande a "
+"geografia de uma região pode ser adicionada em uma coluna geography e "
+"continua razoavelmente responsiva. Existem limitações tais como pólos, tudo "
+"no campo deve caber em um hemisfério (como SQL Server 2008 tem), velocidade "
+"etc?"
 
 #. Tag: para
-#: faq.xml:105
+#: faq.xml:137
 #, no-c-format
 msgid ""
 "Your questions are too deep and complex to be adequately answered in this "
 "section. Please refer to our <xref linkend=\"PostGIS_Geography_AdvancedFAQ\"/"
 ">."
 msgstr ""
+"Suas perguntas são profundas e complexas para serem respondindas de forma "
+"adequada nesta seção. Por favor, refira-se ao documento <xref linkend="
+"\"PostGIS_Geography_AdvancedFAQ\"/>."
 
 #. Tag: para
-#: faq.xml:112
+#: faq.xml:144
 #, no-c-format
 msgid "How do I insert a GIS object into the database?"
-msgstr ""
+msgstr "Como insiro um objeto GIS dentro do banco de dados?"
 
 #. Tag: para
-#: faq.xml:116
+#: faq.xml:148
 #, no-c-format
 msgid ""
 "First, you need to create a table with a column of type \"geometry\" or "
@@ -238,81 +441,105 @@ msgid ""
 "different than storing geometry. Refer to <xref linkend=\"Geography_Basics\"/"
 "> for details on storing geography."
 msgstr ""
+"Primeiramente, você precisa criar uma tabela com uma coluna do tipo "
+"\"geometry\" ou \"geography\" para armazenar seus dados GIS. O armazenamento "
+"do dado do tipo \"geography\" é um pouco diferente do tipo \"geometry\". "
+"Consulte o documento <xref linkend=\"Geography_Basics\"/> para detalhes."
 
 #. Tag: para
-#: faq.xml:120
+#: faq.xml:152
 #, no-c-format
 msgid ""
 "For geometry: Connect to your database with <filename>psql</filename> and "
 "try the following SQL:"
 msgstr ""
+"Para geometrias: conecte seu banco de dados com <filename>psql</filename> e "
+"tente o seguinte SQL:"
 
 #. Tag: programlisting
-#: faq.xml:124
+#: faq.xml:156
 #, no-c-format
 msgid ""
-"CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
-"SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
+"CREATE TABLE gtest ( gid serial primary key, name varchar(20)\n"
+"        , geom geometry(LINESTRING) );"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:126
-#, no-c-format
+#: faq.xml:158
+#, fuzzy, no-c-format
 msgid ""
-"If the geometry column addition fails, you probably have not loaded the "
-"PostGIS functions and objects into this database. See the <xref linkend="
-"\"PGInstall\"/>."
+"If the geometry column definition fails, you probably have not loaded the "
+"PostGIS functions and objects into this database or are using a pre-2.0 "
+"version of PostGIS. See the <xref linkend=\"PGInstall\"/>."
 msgstr ""
+"Se a adição da coluna geométrica falhar, provavelmente você não instalou o "
+"PostGIS dentro deste banco de dados. Veja <xref linkedn=\"PGInstall\"/>"
 
 #. Tag: para
-#: faq.xml:130
+#: faq.xml:162
 #, no-c-format
 msgid ""
 "Then, you can insert a geometry into the table using a SQL insert statement. "
 "The GIS object itself is formatted using the OpenGIS Consortium \"well-known "
 "text\" format:"
 msgstr ""
+"Após a criação da tabela, você pode inserir uma geometria através de um "
+"comando SQL INSERT. O objeto GIS em si é formatado utilizando o formato OGC "
+"WKT (\"well known text\"):"
 
 #. Tag: programlisting
-#: faq.xml:134
-#, no-c-format
+#: faq.xml:166
+#, fuzzy, no-c-format
 msgid ""
 "INSERT INTO gtest (ID, NAME, GEOM) \n"
 "VALUES (\n"
 "  1, \n"
 "  'First Geometry', \n"
-"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1)\n"
+"  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)')\n"
 ");"
 msgstr ""
+"INSERT INTO gtest (ID, NAME, GEOM) \n"
+"\n"
+"VALUES (\n"
+"\n"
+"1, \n"
+"\n"
+"'First Geometry', \n"
+"\n"
+"ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1)\n"
+"\n"
+");"
 
 #. Tag: para
-#: faq.xml:136
+#: faq.xml:168
 #, no-c-format
 msgid ""
 "For more information about other GIS objects, see the <link linkend="
 "\"RefObject\">object reference</link>."
 msgstr ""
+"Para maiores informações sobre outros objetos GIS, veja a <link linkend="
+"\"RefObject\">referência de objetos</link>."
 
 #. Tag: para
-#: faq.xml:139
+#: faq.xml:171
 #, no-c-format
 msgid "To view your GIS data in the table:"
-msgstr ""
+msgstr "Para visualizar seus dados GIS na tabela:"
 
 #. Tag: programlisting
-#: faq.xml:141
+#: faq.xml:173
 #, no-c-format
 msgid "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
-msgstr ""
+msgstr "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
 
 #. Tag: para
-#: faq.xml:143
+#: faq.xml:175
 #, no-c-format
 msgid "The return value should look something like this:"
-msgstr ""
+msgstr "O valor de retorno deve se parecer com algum assim:"
 
 #. Tag: programlisting
-#: faq.xml:145
+#: faq.xml:177
 #, no-c-format
 msgid ""
 "id | name           | geom\n"
@@ -320,32 +547,46 @@ msgid ""
 "  1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
 "(1 row)"
 msgstr ""
+"id | name | geom\n"
+"\n"
+"----+----------------+-----------------------------\n"
+"\n"
+"1 | First Geometry | LINESTRING(2 3,4 5,6 5,7 8) \n"
+"\n"
+"(1 row)"
 
 #. Tag: para
-#: faq.xml:151
+#: faq.xml:183
 #, no-c-format
 msgid "How do I construct a spatial query?"
-msgstr ""
+msgstr "Como construo uma pesquisa geoespacial?"
 
 #. Tag: para
-#: faq.xml:155
+#: faq.xml:187
 #, no-c-format
 msgid ""
 "The same way you construct any other database query, as an SQL combination "
 "of return values, functions, and boolean tests."
 msgstr ""
+"Da mesma forma como você constrói qualquer pesquisa no banco de dados, com "
+"SQL em uma combinação de valores de retorno, funções e testes de álgebra "
+"booleana."
 
 #. Tag: para
-#: faq.xml:158
+#: faq.xml:190
 #, no-c-format
 msgid ""
 "For spatial queries, there are two issues that are important to keep in mind "
 "while constructing your query: is there a spatial index you can make use of; "
 "and, are you doing expensive calculations on a large number of geometries."
 msgstr ""
+"Para pesquisas geoespaciais, existem duas questões que são importantes de se "
+"ter em mente durante sua construção: existe um índice geoespacial que você "
+"pode utilizar; e, você está realizando cálculos computacionalmente caros em "
+"um número grande de geometrias."
 
 #. Tag: para
-#: faq.xml:163
+#: faq.xml:195
 #, no-c-format
 msgid ""
 "In general, you will want to use the \"intersects operator\" (&&) "
@@ -354,9 +595,14 @@ msgid ""
 "speed up the test, the && operator will make use of this. This can "
 "make queries much much faster."
 msgstr ""
+"Em geral, você vai querer utilizar os operadores de interseção (&&) "
+"que testa se os retângulos envolventes de feições se intersecionam. A razão "
+"que torna o operador && útil é que existe um índice geoespacial para "
+"acelear a resolução do teste, que será utilizado pelo operador. Isto pode "
+"tornar as pesquisas muito mais rápidas."
 
 #. Tag: para
-#: faq.xml:170
+#: faq.xml:202
 #, no-c-format
 msgid ""
 "You will also make use of spatial functions, such as Distance(), "
@@ -367,9 +613,16 @@ msgid ""
 "condition of interest. The spatial functions are then use to test the "
 "condition exactly."
 msgstr ""
+"Você ainda pode usar funções geoespaciais, como ST_Distance(), "
+"ST_Intersects(), ST_Contains() e ST_Within(), entre outras, para filtrar "
+"ainda mais os resultados de sua pesquisa. A maior parte das pesquisas "
+"geoespaciais incluem ambos testes: um teste indexado e um teste de função "
+"geoespacial. O teste indexado serve para limitar o número de tuplas para as "
+"que <emphasis>podem</emphasis> ter a condição de interesse. As funções "
+"geoespaciais servem para testar a condição exatamente como esperado."
 
 #. Tag: programlisting
-#: faq.xml:178
+#: faq.xml:210
 #, no-c-format
 msgid ""
 "SELECT id, the_geom \n"
@@ -377,95 +630,124 @@ msgid ""
 "WHERE \n"
 "  ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
 msgstr ""
+"SELECT id, the_geom\n"
+"\n"
+"FROM thetable \n"
+"\n"
+"WHERE \n"
+"\n"
+"ST_Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');"
 
 #. Tag: para
-#: faq.xml:184
+#: faq.xml:216
 #, no-c-format
 msgid "How do I speed up spatial queries on large tables?"
-msgstr ""
+msgstr "Como acelero pesquisas geoespaciais em grandes tabelas?"
 
 #. Tag: para
-#: faq.xml:188
+#: faq.xml:220
 #, no-c-format
 msgid ""
 "Fast queries on large tables is the <emphasis>raison d'etre</emphasis> of "
 "spatial databases (along with transaction support) so having a good index is "
 "important."
 msgstr ""
+"Pesquisas rápidas em tabelas grandes é a <emphasis>raison d'etre</emphasis> "
+"de banco de dados geoespaciais (bem como suporte a transações), então ter um "
+"bom índice é importante."
 
 #. Tag: para
-#: faq.xml:192
+#: faq.xml:224
 #, no-c-format
 msgid ""
 "To build a spatial index on a table with a <varname>geometry</varname> "
 "column, use the \"CREATE INDEX\" function as follows:"
 msgstr ""
+"Para criar um índice espacial em uma tabela com uma coluna "
+"<varname>geometry</varname>, utilize a função \"CREATE INDEX\" que segue "
+"abaixo:"
 
 #. Tag: programlisting
-#: faq.xml:196
+#: faq.xml:228
 #, no-c-format
 msgid ""
 "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
 msgstr ""
+"CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
 
 #. Tag: para
-#: faq.xml:198
+#: faq.xml:230
 #, no-c-format
 msgid ""
 "The \"USING GIST\" option tells the server to use a GiST (Generalized Search "
 "Tree) index."
 msgstr ""
+"A opção \"USING GIST\" diz ao servidor que utilize um indice GIST "
+"(Generalized Search Tree)."
 
 #. Tag: para
-#: faq.xml:202
+#: faq.xml:234
 #, no-c-format
 msgid ""
 "GiST indexes are assumed to be lossy. Lossy indexes uses a proxy object (in "
 "the spatial case, a bounding box) for building the index."
 msgstr ""
+"Índeces GIST são assumidamente lossy. Índices lossy usam um objeto de busca "
+"(em casos espaciais, uma bounding box) para contruir o índice."
 
 #. Tag: para
-#: faq.xml:207
+#: faq.xml:239
 #, no-c-format
 msgid ""
 "You should also ensure that the PostgreSQL query planner has enough "
 "information about your index to make rational decisions about when to use "
 "it. To do this, you have to \"gather statistics\" on your geometry tables."
 msgstr ""
+"Você também deveria garantir que o plano de acesso do PostgreSQL tem "
+"informações suficientes sobre seu índice para fazer decisões racionais sobre "
+"quando utilizá-lo. Para fazer isso, você deve atualizar as estatísticas nas "
+"suas tabelas geométricas."
 
 #. Tag: para
-#: faq.xml:212
+#: faq.xml:244
 #, no-c-format
 msgid ""
 "For PostgreSQL 8.0.x and greater, just run the <command>VACUUM ANALYZE</"
 "command> command."
 msgstr ""
+"Para o PostgreSQL 8.0.x ou posterior, apenas executeo o comando "
+"<command>VACUUM ANALYZE</command>."
 
 #. Tag: para
-#: faq.xml:215
+#: faq.xml:247
 #, no-c-format
 msgid ""
-"For PostgreSQL 7.4.x and below, run the <command>SELECT UPDATE_GEOMETRY_STATS"
-"()</command> command."
+"For PostgreSQL 7.4.x and below, run the <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command> command."
 msgstr ""
+"Para o PostgreSQL 7.4.x ou anterior, execute o comando <command>SELECT "
+"UPDATE_GEOMETRY_STATS()</command>."
 
 #. Tag: para
-#: faq.xml:222
+#: faq.xml:254
 #, no-c-format
 msgid "Why aren't PostgreSQL R-Tree indexes supported?"
-msgstr ""
+msgstr "Por que o índice do PostgreSQL R-Tree não é suportado?"
 
 #. Tag: para
-#: faq.xml:226
+#: faq.xml:258
 #, no-c-format
 msgid ""
 "Early versions of PostGIS used the PostgreSQL R-Tree indexes. However, "
 "PostgreSQL R-Trees have been completely discarded since version 0.6, and "
 "spatial indexing is provided with an R-Tree-over-GiST scheme."
 msgstr ""
+"Versões mais recentes do PostGIS no PostgreSQL usam indice R-Tree. Por outro "
+"lado, PostgreSQL R-Trees foi totalmente descontinuado desde a versão 0.6, e "
+"índice espacial é provido com um esquema R-Tree-over-GIST"
 
 #. Tag: para
-#: faq.xml:231
+#: faq.xml:263
 #, no-c-format
 msgid ""
 "Our tests have shown search speed for native R-Tree and GiST to be "
@@ -474,34 +756,45 @@ msgid ""
 "to the current PostgreSQL native R-Tree implementation, not the R-Tree "
 "concept in general):"
 msgstr ""
+"Nossos testes tem mostrado que a velocidade de busca para o índice nativo R-"
+"Tree e o GIST são comparáveis. O nativo R-Tree tem duas limitações que dele "
+"indesejável para utlizar com funcionalidades GIS (note que essa limitação é "
+"devido a atual implementação do PostgreSQL, não do conceito R-Tree em geral):"
 
 #. Tag: para
-#: faq.xml:239
+#: faq.xml:271
 #, no-c-format
 msgid ""
 "R-Tree indexes in PostgreSQL cannot handle features which are larger than 8K "
 "in size. GiST indexes can, using the \"lossy\" trick of substituting the "
 "bounding box for the feature itself."
 msgstr ""
+"Índices R-Tree no PostgreSQL não podem manipular funcionalidades que são "
+"maiores que 8K em tamanho. Já os índices GIST podem, utilizando o truque "
+"\"lossy\" de substituição da bounding pela própria funcionalidade."
 
 #. Tag: para
-#: faq.xml:246
+#: faq.xml:278
 #, no-c-format
 msgid ""
 "R-Tree indexes in PostgreSQL are not \"null safe\", so building an index on "
 "a geometry column which contains null geometries will fail."
 msgstr ""
+"Índices R-Tree no PostgreSQL não são \"null sage\", então construir um "
+"índice em uma coluna geometry que contenha null, falhará."
 
 #. Tag: para
-#: faq.xml:256
+#: faq.xml:288
 #, no-c-format
 msgid ""
 "Why should I use the <varname>AddGeometryColumn()</varname> function and all "
 "the other OpenGIS stuff?"
 msgstr ""
+"Porque eu devo utilizar a função <varname>AddGeometryColumn()</varname> e "
+"todas as outras coisas do OpenGIS?"
 
 #. Tag: para
-#: faq.xml:261
+#: faq.xml:293
 #, no-c-format
 msgid ""
 "If you do not want to use the OpenGIS support functions, you do not have to. "
@@ -512,9 +805,16 @@ msgid ""
 "fail, and it is generally suggested that you do use "
 "<varname>AddGeometryColumn()</varname> to create geometry tables."
 msgstr ""
+"Se você não quer utlizar o suporte à funções OpenGIS, você não precisa. "
+"Simplesmente crie tabelas como nas versões antigas, definindo as colunas "
+"geometry no comando CREATE. Todas suas geometrias terão SRIDs de -1, e as "
+"tabelas de metadados do OpenGIS <emphasis>não</emphasis> serão preenchidas "
+"apropriadamente. No entanto, causará falha na maioria das aplicações "
+"baseadas no PostGIS, e é geralmente aconselhado que utilize "
+"<varname>AddGeometryColumn()</varname> para criar tabelas geometry."
 
 #. Tag: para
-#: faq.xml:270
+#: faq.xml:302
 #, no-c-format
 msgid ""
 "MapServer is one application which makes use of the "
@@ -522,16 +822,22 @@ msgid ""
 "use the SRID of the geometry column to do on-the-fly reprojection of "
 "features into the correct map projection."
 msgstr ""
+"MapServer é uma aplicação que faz uso de <varname>geometry_columns</varname> "
+"metadado. Especificamente, MapServer pode user SRID da coluna geometry para "
+"fazer reprojeção on-the-fly das funcionalidades dentro de uma correta "
+"projeção no mapa."
 
 #. Tag: para
-#: faq.xml:279
+#: faq.xml:311
 #, no-c-format
 msgid ""
 "What is the best way to find all objects within a radius of another object?"
 msgstr ""
+"Qual é a melhor maneira de achar todos os objetos dentre um radius e outro "
+"objeto?"
 
 #. Tag: para
-#: faq.xml:284
+#: faq.xml:316
 #, no-c-format
 msgid ""
 "To use the database most efficiently, it is best to do radius queries which "
@@ -539,9 +845,13 @@ msgid ""
 "the spatial index, giving fast access to a subset of data which the radius "
 "test is then applied to."
 msgstr ""
+"Para usar a base de dados mais eficientemente, é melhor fazer radius queries "
+"que combine com teste radius com teste bounding box: o teste bounding box "
+"usa índice espacial, dando rapidez no acesso para subconjunto de dados que o "
+"teste radius é aplicada."
 
 #. Tag: para
-#: faq.xml:289
+#: faq.xml:321
 #, no-c-format
 msgid ""
 "The <varname>ST_DWithin(geometry, geometry, distance)</varname> function is "
@@ -549,31 +859,41 @@ msgid ""
 "search rectangle large enough to enclose the distance radius, then "
 "performing an exact distance search on the indexed subset of results."
 msgstr ""
+"A função <varname>ST_DWithin(geometry, geometry, distance)</varname> é uma "
+"forma conveniente de realizar uma busca distante no índice. Ele trabalha "
+"criando retângulo de busca suficiente para encobrir todo o raio, depois "
+"realiza uma busca exata da distância no subconjunto de resultados do índice."
 
 #. Tag: para
-#: faq.xml:295
+#: faq.xml:327
 #, no-c-format
 msgid ""
 "For example, to find all objects with 100 meters of POINT(1000 1000) the "
 "following query would work well:"
 msgstr ""
+"Por exemplo, para encontrar todos os objetos com 100 metros de POINT(1000 "
+"1000) a query a seguir trabalharia corretamente:"
 
 #. Tag: programlisting
-#: faq.xml:298
+#: faq.xml:330
 #, no-c-format
 msgid ""
 "SELECT * FROM geotable \n"
 "WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
 msgstr ""
+"SELECT * FROM geotable\n"
+"\n"
+"WHERE ST_DWithin(geocolumn, 'POINT(1000 1000)', 100.0);"
 
 #. Tag: para
-#: faq.xml:304
+#: faq.xml:336
 #, no-c-format
 msgid "How do I perform a coordinate reprojection as part of a query?"
 msgstr ""
+"Como posso fazer uma reprojeção de coordenadas como parte de uma query?"
 
 #. Tag: para
-#: faq.xml:309
+#: faq.xml:341
 #, no-c-format
 msgid ""
 "To perform a reprojection, both the source and destination coordinate "
@@ -583,49 +903,66 @@ msgid ""
 "The below projects a geometry to NAD 83 long lat. The below will only work "
 "if the srid of the_geom is not -1 (not undefined spatial ref)"
 msgstr ""
+"Para realizar uma reprojeção, ambos as coordenadas fonte e destino devem "
+"estar definidas na tabela SPATIAL_REF_SYS, e a geometria reprojetada deve já "
+"ter um SRID setado para ela. Uma vez isso feito, a reprojeção é taõ simples "
+"quanto referenciar um SRID de destino desejado. The below projects a "
+"geometry to NAD 83 long lat. Abaixo apenas trabalhará se o srid do the_geom "
+"não for -1 (não indefinido spatial ref)"
 
 #. Tag: programlisting
-#: faq.xml:316
+#: faq.xml:348
 #, no-c-format
 msgid "SELECT ST_Transform(the_geom,4269) FROM geotable;"
-msgstr ""
+msgstr "SELECT ST_Transform(the_geom,4269) FROM geotable;"
 
 #. Tag: para
-#: faq.xml:322
+#: faq.xml:354
 #, no-c-format
 msgid ""
 "I did an ST_AsEWKT and ST_AsText on my rather large geometry and it returned "
 "blank field. What gives?"
 msgstr ""
+"Faço uma ST_AsEWKT e ST_AsText na minha maior geometria e isso me retorna em "
+"branco. O que acontece?"
 
 #. Tag: para
-#: faq.xml:326
+#: faq.xml:358
 #, no-c-format
 msgid ""
 "You are probably using PgAdmin or some other tool that doesn't output large "
 "text. If your geometry is big enough, it will appear blank in these tools. "
 "Use PSQL if you really need to see it or output it in WKT."
 msgstr ""
+"Vocês está provavelmente utilizando PgAdmin ou outra ferramenta que não "
+"retorna grandes textos. Se sua geometria é muito grande, aparecerá vazio "
+"nessas ferramentas. Use PSQL se você realmente precisa ver isso ou retornar "
+"em WKT."
 
 #. Tag: programlisting
-#: faq.xml:329
+#: faq.xml:361
 #, no-c-format
 msgid ""
 "--To check number of geometries are really blank\n"
 "                                SELECT count(gid) FROM geotable WHERE "
 "the_geom IS NULL;"
 msgstr ""
+"Para verificar o de geometrias que realmente estão vazias:\n"
+"\n"
+"SELECT count(gid) FROM geotable WHERE the_geom IS NULL;"
 
 #. Tag: para
-#: faq.xml:335
+#: faq.xml:367
 #, no-c-format
 msgid ""
 "When I do an ST_Intersects, it says my two geometries don't intersect when I "
 "KNOW THEY DO. What gives?"
 msgstr ""
+"Quando eu faço um ST_Intersects, tenho o retorno que minhas duas geometrias "
+"não intersectam quando EU SEI QUE SIM. O que acontece?"
 
 #. Tag: para
-#: faq.xml:339
+#: faq.xml:371
 #, no-c-format
 msgid ""
 "This generally happens in two common cases. Your geometry is invalid -- "
@@ -633,18 +970,25 @@ msgid ""
 "because ST_AsText truncates the numbers and you have lots of decimals after "
 "it is not showing you."
 msgstr ""
+"Isso geralmente acontece em dois casos comuns. Sua geometri é inválida -- "
+"verifique <xref linkend=\"ST_IsValid\"/> ou or você está assumindo que elas "
+"intesectam porque ST_AsText trucou os números e você tem muitos decimais que "
+"não estão sendo exibidos a você."
 
 #. Tag: para
-#: faq.xml:347
+#: faq.xml:379
 #, no-c-format
 msgid ""
 "I am releasing software that uses PostGIS, does that mean my software has to "
 "be licensed using the GPL like PostGIS? Will I have to publish all my code "
 "if I use PostGIS?"
 msgstr ""
+"Estou liberando software que usa PostGIS, o que significa  que meu software "
+"foi licenciado utilizado a GPL como PostGIS? Terei que publicar todo o meu "
+"código se utilizar o PostGIS?"
 
 #. Tag: para
-#: faq.xml:351
+#: faq.xml:383
 #, no-c-format
 msgid ""
 "Almost certainly not. As an example, consider Oracle database running on "
@@ -652,9 +996,14 @@ msgid ""
 "distributed using the GPL? No. So your software can use a PostgreSQL/PostGIS "
 "database as much as it wants and be under any license you like."
 msgstr ""
+"Com certeza não. Como exemplo, considere uma base de dados Oracle rodando no "
+"Linux. Linux é GPL. Oracle não, com o Oracle rodando no Linux tenho que "
+"distribuí-lo usando GPL? Não. Então seu software pode utilizar bases de "
+"dados PostgreSQL/PostGIS o quanto quiser e estar sob qualquer licença que "
+"queira."
 
 #. Tag: para
-#: faq.xml:352
+#: faq.xml:384
 #, no-c-format
 msgid ""
 "The only exception would be if you made changes to the PostGIS source code, "
@@ -665,3 +1014,18 @@ msgid ""
 "does not require that you <emphasis>publish</emphasis> your source code, "
 "only that you share it with people you give binaries to."
 msgstr ""
+"A única exceção seria se você fizer mudanças no código fonte do PostGIS, e "
+"distribuir a versão da sua mudança do PostGIS. Neste caso você teria que "
+"cmpartilhar o código da sua mudança do PostGIS (mas não o código da "
+"aplicação que está rodando). Mesmo neste caso limitado, você apenas teria "
+"que distribuir o código fonte para pessoas que também distribuem binários. A "
+"GPL não exige que você <emphasis>publique</emphasis> seu código fonte, "
+"apenas que compartilhe com pessoas que distribuem binários também."
+
+#~ msgid ""
+#~ "CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
+#~ "SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
+#~ msgstr ""
+#~ "CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
+#~ "\n"
+#~ "SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
diff --git a/doc/po/pt_BR/faq_raster.xml.po b/doc/po/pt_BR/faq_raster.xml.po
index 6785b18..c7f80b2 100644
--- a/doc/po/pt_BR/faq_raster.xml.po
+++ b/doc/po/pt_BR/faq_raster.xml.po
@@ -1,31 +1,35 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Dauro Lima Sobrinho <daurolima at gmail.com>, 2013
+# georgersilva <georger.silva at gmail.com>, 2013
+# Omar Fernando Pessoa <omar.pessoa at gmail.com>, 2013
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2013-11-27 15:09+0000\n"
+"Last-Translator: Dauro Lima Sobrinho <daurolima at gmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
+"postgis-1/language/pt_BR/)\n"
+"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #. Tag: title
 #: faq_raster.xml:3
 #, no-c-format
 msgid "PostGIS Raster Frequently Asked Questions"
-msgstr ""
+msgstr "Perguntas frequentes PostGIS Raster"
 
 #. Tag: para
 #: faq_raster.xml:9
 #, no-c-format
 msgid "Where can I find out more about the PostGIS Raster Project?"
-msgstr ""
+msgstr "Onde posso saber mais sobre o projeto PostGIS Raster?"
 
 #. Tag: para
 #: faq_raster.xml:13
@@ -34,6 +38,8 @@ msgid ""
 "Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster"
 "\">PostGIS Raster home page</ulink>."
 msgstr ""
+"Consulte o sítio <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster"
+"\"> PostGIS Raster </ulink>."
 
 #. Tag: para
 #: faq_raster.xml:19
@@ -42,6 +48,7 @@ msgid ""
 "Are there any books or tutorials to get me started with this wonderful "
 "invention?"
 msgstr ""
+"Existem livros ou tutoriais para aprender sobre esta maravilhosa invenção?"
 
 #. Tag: para
 #: faq_raster.xml:23
@@ -62,6 +69,21 @@ msgid ""
 "can also buy from Amazon and various other book distributors. All hard-copy "
 "books come with a free coupon to download the E-book version."
 msgstr ""
+"Existe um tutorial completo para iniciantes <ulink url=\"http://trac.osgeo."
+"org/postgis/wiki/WKTRasterTutorial01\"> Interseção de buffers de vetores com "
+"grande cobertura de varredura usando PostGIS Raster</ulink>. Jorge tem uma "
+"série de artigos no blog do PostGIS Raster que demonstram como carregar "
+"dados raster bem como comparar as mesmas tarefas no Oracle GeoRaster. "
+"Confira <ulink url=\"http://gis4free.wordpress.com/category/postgis-raster/"
+"\"> Artigos de Jorge: PostGIS Raster / Oracle GeoRaster</ulink>. Há um "
+"capítulo inteiro (mais de 35 páginas de conteúdo) dedicado a PostGIS Raster "
+"com código livre e dados para download em <ulink url=\"http://www.postgis.us/"
+"chapter_13\"> PostGIS em Ação - Capítulo Raster</ulink>. Você pode <ulink "
+"url=\"http://www.postgis.us/page_buy_book\"> comprar a cópia impressa "
+"PostGIS em Ação </ulink> agora de Manning (descontos significativos para "
+"compras em massa) ou apenas o formato E-book. Você também pode comprar na "
+"Amazon e outros distribuidores de livros. Todos os manuais impressos vêm com "
+"um cupom para baixar a versão E-book."
 
 #. Tag: para
 #: faq_raster.xml:30
@@ -71,12 +93,15 @@ msgid ""
 "fuzzytolerance.info/code/postgis-raster-ftw/\">PostGIS raster applied to "
 "land classification urban forestry</ulink>"
 msgstr ""
+"Comentário de um usuário PostGIS Raster <ulink url=\"http://fuzzytolerance."
+"info/code/postgis-raster-ftw/\"> raster PostGIS aplicado ao solo - "
+"classificação de silvicultura urbana </ulink>"
 
 #. Tag: para
 #: faq_raster.xml:37
 #, no-c-format
 msgid "How do I install Raster support in my PostGIS database?"
-msgstr ""
+msgstr "Como instalar o suporte a raster no meu banco de dados PostGIS?"
 
 #. Tag: para
 #: faq_raster.xml:41
@@ -88,6 +113,11 @@ msgid ""
 "9.1. Note in PostGIS 2.0 PostGIS Raster is fully integrated, so it will be "
 "compiled when you compile PostGIS."
 msgstr ""
+"A forma mais simples é realizar o download dos binários para o PostGIS e "
+"para o Raster, que estão disponíveis para Windows e últimas versões de Mac "
+"OSX. Primeiro você precisa de um PostGIS 2.0.0 ou maior e estar rodando "
+"PostgreSQL 8.4, 9.0 ou 9.1. No PostGIS 2.0, o PostGIS Raster está totalmente "
+"integrado, então ele também será compilado quando você compilar o PostGIS."
 
 #. Tag: para
 #: faq_raster.xml:43
@@ -98,18 +128,27 @@ msgid ""
 "configure-postgis-raster-on-windows/\">How to Install and Configure PostGIS "
 "raster on windows</ulink>"
 msgstr ""
+"Instruções para instalação no Windows estão disponíveis em <ulink url="
+"\"http://gis4free.wordpress.com/2011/03/10/how-to-install-and-configure-"
+"postgis-raster-on-windows/\">Como instalar e configurar o PostGIS Raster no "
+"Windows</ulink>"
 
 #. Tag: para
 #: faq_raster.xml:44
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
 "If you are on windows, you can compile yourself, or use the <ulink url="
-"\"http://www.postgis.org/download/windows/experimental.php#wktraster\">pre-"
-"compiled PostGIS Raster windows binaries</ulink>. If you are on Mac OSX "
-"Leopard or Snow Leopard, there are binaries available at <ulink url=\"http://"
-"www.kyngchaos.com/software/postgres\">Kyng Chaos Mac OSX PostgreSQL/GIS "
-"binaries</ulink>."
+"\"http://postgis.net/windows_downloads\">pre-compiled PostGIS Raster windows "
+"binaries</ulink>. If you are on Mac OSX Leopard or Snow Leopard, there are "
+"binaries available at <ulink url=\"http://www.kyngchaos.com/software/postgres"
+"\">Kyng Chaos Mac OSX PostgreSQL/GIS binaries</ulink>."
 msgstr ""
+"Se estiver usando Windows, você pode compilar você mesmo, ou usar a versão "
+"<ulink url=\"http://www.postgis.org/download/windows/experimental."
+"php#wktraster\">pre-compilada de PostGIS Raster para Windows</ulink>. Se "
+"você estiver em Mac OSX Leopard ou Snow Leopard, há binários disponíveis em "
+"<ulink url=\"http://www.kyngchaos.com/software/postgres\"> Kyng Chaos Mac "
+"OSX PostgreSQL / GIS binários </ulink>."
 
 #. Tag: para
 #: faq_raster.xml:50
@@ -119,6 +158,9 @@ msgid ""
 "in your database. To upgrade an existing install use "
 "rtpostgis_upgrade_minor..sql instead of rtpostgis.sql"
 msgstr ""
+"Para habilitar o suporte a rasters em seu banco de dados, rode o arquivo "
+"rtpostgis.sql. Para atualizar uma instalação existente, utilize o script "
+"rtpostgis_upgrade_minor.sql ao invés do arquivo rtpostgis.sql."
 
 #. Tag: para
 #: faq_raster.xml:51
@@ -130,6 +172,12 @@ msgid ""
 "Documentation01#a2.3-CompilingandInstallingfromSources\">Installing PostGIS "
 "Raster from source (in prior versions of PostGIS)</ulink>"
 msgstr ""
+"Em outras plataformas, você geralmente precisará compilar as dependências "
+"você mesmo. As dependências são PostGIS e GDAL. Para maiores detalhes sobre "
+"a compilação dos fontes, refira ao link <ulink url=\"http://trac.osgeo.org/"
+"postgis/wiki/WKTRaster/Documentation01#a2.3-CompilingandInstallingfromSources"
+"\">Instalando o PostGIS Raster do fonte (em versões anteriores do PostGIS)</"
+"ulink>"
 
 #. Tag: para
 #: faq_raster.xml:57
@@ -139,6 +187,10 @@ msgid ""
 "rtpostgis.dll\": The specified module could not be found. or could not load "
 "library on Linux when trying to run rtpostgis.sql"
 msgstr ""
+"Recebo um erro que não foi possível carregar a biblioteca \"C:/Program Files/"
+"PblostgreSQL/8.4/lib/rtpostgis.dll\": O módulo especificado não pode ser "
+"encontrado ou não foi possível carregar a biblioteca no linux ao executar "
+"rtpostgis.sql"
 
 #. Tag: para
 #: faq_raster.xml:62
@@ -148,6 +200,10 @@ msgid ""
 "Windows you have libgdal-1.dll in the bin folder of your PostgreSQL install. "
 "For Linux libgdal has to be in your path or bin folder."
 msgstr ""
+"rtpostgis.so/dll é construído com dependências da libgdal.so/dll. Tenha "
+"certeza no Windows que você tenha o arquivo libgdal-1.dll na pasta bin de "
+"sua instalação do PostgreSQL. Para Linux, a libgdal deve estar no PATH ou na "
+"pasta bin."
 
 #. Tag: para
 #: faq_raster.xml:64
@@ -157,12 +213,15 @@ msgid ""
 "in your database. Make sure to install PostGIS first in your database before "
 "trying to install the raster support."
 msgstr ""
+"Você também pode encontrar erros diferentes se você não tem o PostGIS "
+"instalado em seu banco de dados. Tenha certeza de instalar primeiro o "
+"PostGIS em seu banco de dados antes de tentar instalar o suporte a raster."
 
 #. Tag: para
 #: faq_raster.xml:71
 #, no-c-format
 msgid "How do I load Raster data into PostGIS?"
-msgstr ""
+msgstr "Como carrego dados raster dentro de meu banco PostGIS?"
 
 #. Tag: para
 #: faq_raster.xml:75
@@ -175,12 +234,19 @@ msgid ""
 "details. Pre-2.0 versions came with a <varname>raster2pgsql.py</varname> "
 "that required python with numpy and GDAL. This is no longer needed."
 msgstr ""
+"A última versão do PostGIS vem com o carregador <varname>raster2pgsql</"
+"varname>, capaz de importar vários tipos de rasters, também capaz de gerar "
+"visões de menor resolução sem qualquer outro software adicional. Refira ao "
+"<xref linkend=\"RT_Raster_Loader\"/> para maiores detalhes. Versões "
+"anteriores a 2.0 também vem com um script <varname>raster2pgsql.py</"
+"varname>,  que requer Python, com suporte a numpy e GDAL. Isto não é mais "
+"necessário."
 
 #. Tag: para
 #: faq_raster.xml:81
 #, no-c-format
 msgid "What kind of raster file formats can I load into my database?"
-msgstr ""
+msgstr "Quais tipos de arquivos raster posso carregar em meu banco de dados?"
 
 #. Tag: para
 #: faq_raster.xml:85
@@ -190,6 +256,9 @@ msgid ""
 "<ulink url=\"http://www.gdal.org/formats_list.html\">GDAL File Formats</"
 "ulink>."
 msgstr ""
+"Qualquer raster que sua biblioteca GDAL suporte. Os formatos suportados pela "
+"GDAL estão documentados em <ulink url=\"http://www.gdal.org/formats_list.html"
+"\">GDAL File Formats</ulink>."
 
 #. Tag: para
 #: faq_raster.xml:86
@@ -198,24 +267,28 @@ msgid ""
 "Your particular GDAL install may not support all formats. To verify the ones "
 "supported by your particular GDAL install, you can use"
 msgstr ""
+"Sua instalação específica da GDAL pode não suportar todos os formatos. Para "
+"verificar os formatos suportados em sua instalação, você pode usar"
 
 #. Tag: programlisting
 #: faq_raster.xml:87
 #, no-c-format
 msgid "raster2pgsql -G"
-msgstr ""
+msgstr "raster2pgsql -G"
 
 #. Tag: para
 #: faq_raster.xml:93
 #, no-c-format
 msgid "Can I export my PostGIS raster data to other raster formats?"
 msgstr ""
+"Posso exportar meus dados raster do banco de dados para outros formatos "
+"raster?"
 
 #. Tag: para
 #: faq_raster.xml:97
 #, no-c-format
 msgid "<para>Yes</para>"
-msgstr ""
+msgstr "<para>Sim</para>"
 
 #. Tag: para
 #: faq_raster.xml:98
@@ -224,6 +297,8 @@ msgid ""
 "GDAL 1.7+ has a PostGIS raster driver, but is only compiled in if you choose "
 "to compile with PostgreSQL support."
 msgstr ""
+"GDAL 1.7+ tem um driver para PostGIS, mas somente é compilado se você "
+"habilitar esta opção no momento da compilação."
 
 #. Tag: para
 #: faq_raster.xml:99
@@ -232,6 +307,8 @@ msgid ""
 "The driver currently doesn't support irregularly blocked rasters, although "
 "you can store irregularly blocked rasters in PostGIS raster data type."
 msgstr ""
+"O driver não suporte rasters irregulares, apesar de ser possível de armazená-"
+"los no tipo de dados do PostGIS."
 
 #. Tag: para
 #: faq_raster.xml:101
@@ -243,6 +320,11 @@ msgid ""
 "\">GDAL Build Hints</ulink> for tips on building GDAL against in various OS "
 "platforms."
 msgstr ""
+"Se você está compilando os fontes, você precisa incluir em sua configuração "
+"<programlisting>--with-pg=caminho/para/pg_config</programlisting> para "
+"habilitar o driver. Veja <ulink url=\"http://trac.osgeo.org/gdal/wiki/"
+"BuildHints\">GDAL Build Hints</ulink> para dicas sobre como compilar a GDAL "
+"em várias plataformas e sistemas operacionais."
 
 #. Tag: para
 #: faq_raster.xml:106
@@ -251,18 +333,20 @@ msgid ""
 "If your version of GDAL is compiled with the PostGIS Raster driver you "
 "should see PostGIS Raster in list when you do"
 msgstr ""
+"Se sua versão da GDAL for compilada com o driver PostGIS, você deve ver "
+"PostGIS Raster na lista quando executar"
 
 #. Tag: programlisting
 #: faq_raster.xml:108
 #, no-c-format
 msgid "gdalinfo --formats"
-msgstr ""
+msgstr "gdalinfo --formats"
 
 #. Tag: para
 #: faq_raster.xml:110
 #, no-c-format
 msgid "To get a summary about your raster via GDAL use gdalinfo:"
-msgstr ""
+msgstr "Para visualizar um sumário sobre seu raster via GDAL use gdalinfo:"
 
 #. Tag: programlisting
 #: faq_raster.xml:111
@@ -271,6 +355,8 @@ msgid ""
 "gdalinfo  \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' "
 "password='whatever' schema='someschema' table=sometable\""
 msgstr ""
+"gdalinfo \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' "
+"password='whatever' schema='someschema' table=sometable\""
 
 #. Tag: para
 #: faq_raster.xml:114
@@ -279,6 +365,9 @@ msgid ""
 "To export data to other raster formats, use gdal_translate the below will "
 "export all data from a table to a PNG file at 10% size."
 msgstr ""
+"Para exportar dados para outros formatos raster, use gdal_translate. O "
+"comando abaixo irá exportar todos os dados de uma tabela para um arquivo PNG "
+"com 10% de seu tamanho."
 
 #. Tag: para
 #: faq_raster.xml:116
@@ -289,21 +378,28 @@ msgid ""
 "band types and 32 bit unsigned ints will not translate easily to JPG or some "
 "others."
 msgstr ""
+"Dependendo do tipo de bandas, algumas conversões (via GDAL) podem não "
+"funcionar, se o formato não suportar este tipo de banda. Por exemplo, bandas "
+"de ponto flutuante e inteiros de 32 bits sem sinal não serão facilmente "
+"convertidas em JPGs e alguns outros."
 
 #. Tag: para
 #: faq_raster.xml:119
 #, no-c-format
 msgid "Here is an example simple translation"
-msgstr ""
+msgstr "Aqui está um exemplo de uma simples conversão"
 
 #. Tag: programlisting
 #: faq_raster.xml:120
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable\" C:\\somefile.png"
+msgstr ""
 "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' "
 "user='postgres' password=whatever' schema='someschema' table=sometable\" C:"
 "\\somefile.png"
-msgstr ""
 
 #. Tag: para
 #: faq_raster.xml:121
@@ -312,25 +408,35 @@ msgid ""
 "You can also use SQL where clauses in your export using the where=... in "
 "your driver connection string. Below are some using a where clause"
 msgstr ""
+"Você também pode usar clausulas SQL na sua exportação, com o parametro "
+"where=... em sua string de conexão. Abaixo estão alguns exemplos com a "
+"clausula where"
 
 #. Tag: programlisting
 #: faq_raster.xml:123
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='filename=\\'abcd.sid\\''\" \" C:\\somefile.png"
+msgstr ""
 "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' "
 "user='postgres' password=whatever' schema='someschema' table=sometable where="
 "\"owner='jimmy'\" \" C:\\somefile.png"
-msgstr ""
 
 #. Tag: programlisting
 #: faq_raster.xml:124
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
+"gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 "
+"dbname='mygisdb' user='postgres' password='whatever' schema='someschema' "
+"table=sometable where='ST_Intersects(rast, "
+"ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" C:\\intersectregion.png"
+msgstr ""
 "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' "
 "user='postgres' password=whatever' schema='someschema' table=sometable "
 "where='ST_Intersects(rast, ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" "
 "C:\\intersectregion.png"
-msgstr ""
 
 #. Tag: para
 #: faq_raster.xml:125
@@ -340,6 +446,10 @@ msgid ""
 "gdal/wiki/frmts_wtkraster.html#a3.2-Readingrasterdatafromthedatabase"
 "\">Reading Raster Data of PostGIS Raster section</ulink>"
 msgstr ""
+"Para visualizar mais exemplos e a sintaxe, confira a seção <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html#a3.2-"
+"Readingrasterdatafromthedatabase\">Reading Raster Data of PostGIS Raster "
+"section</ulink>"
 
 #. Tag: para
 #: faq_raster.xml:130
@@ -347,7 +457,7 @@ msgstr ""
 msgid ""
 "Are their binaries of GDAL available already compiled with PostGIS Raster "
 "suppport?"
-msgstr ""
+msgstr "Existem binários pré-compilados já com suporte ao PostGIS Raster?"
 
 #. Tag: para
 #: faq_raster.xml:132
@@ -357,26 +467,14 @@ msgid ""
 "DownloadingGdalBinaries\">GDAL Binaries</ulink> page. Any compiled with "
 "PostgreSQL support should have PostGIS Raster in them."
 msgstr ""
+"Sim. Cheque a página <ulink url=\"http://trac.osgeo.org/gdal/wiki/"
+"DownloadingGdalBinaries\">GDAL Binaries</ulink>. Qualquer um destes deve ter "
+"suporte ao PostGIS Raster."
 
 #. Tag: para
 #: faq_raster.xml:134
 #, no-c-format
 msgid ""
-"We know for sure the following windows binaries have PostGIS Raster built in."
-msgstr ""
-
-#. Tag: para
-#: faq_raster.xml:135
-#, no-c-format
-msgid ""
-"<ulink url=\"http://fwtools.maptools.org/\">FWTools latest stable version "
-"for Windows is compiled with Raster support</ulink>."
-msgstr ""
-
-#. Tag: para
-#: faq_raster.xml:136
-#, no-c-format
-msgid ""
 "PostGIS Raster is undergoing many changes. If you want to get the latest "
 "nightly build for Windows -- then check out the Tamas Szekeres nightly "
 "builds built with Visual Studio which contain GDAL trunk, Python Bindings "
@@ -385,24 +483,44 @@ msgid ""
 "org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink>. Also available are VS "
 "project files."
 msgstr ""
+"O PostGIS Raster está passando por muitas mudanças. Se você desejar a versão "
+"diária para Windows, cheque as builds feitas por Tamas Szekeres com Visual "
+"Studio, que contém o trunk GDAL, suporte a Python, MapServer e o driver "
+"PostGIS embutido. Clique no bat SDK e rode seus comandos a partir daí. "
+"<ulink url=\"http://vbkto.dyndns.org/sdk/\">http://vbkto.dyndns.org/sdk/</"
+"ulink>. Também estão disponíveis os projetos do Visual Studio."
+
+#. Tag: para
+#: faq_raster.xml:138
+#, no-c-format
+msgid ""
+"<ulink url=\"http://fwtools.maptools.org/\">FWTools latest stable version "
+"for Windows is compiled with Raster support</ulink>."
+msgstr ""
+"<ulink url=\"http://fwtools.maptools.org/\">Última versão estável para "
+"Windows é compilada com suporte ao PostGIS Raster</ulink>"
 
 #. Tag: para
-#: faq_raster.xml:145
+#: faq_raster.xml:144
 #, no-c-format
 msgid "What tools can I use to view PostGIS raster data?"
 msgstr ""
+"Quais ferramentas posso usar para visualizar os dados do PostGIS Raster?"
 
 #. Tag: para
-#: faq_raster.xml:149
+#: faq_raster.xml:148
 #, no-c-format
 msgid ""
 "You can use MapServer compiled with GDAL 1.7+ and PostGIS Raster driver "
 "support to view Raster data. QuantumGIS (QGIS) now supports viewing of "
 "PostGIS Raster if you have PostGIS raster driver installed."
 msgstr ""
+"Você pode utilizar o MapServer compilado com GDAL 1.7+ e o suporte ao "
+"PostGIS Raster. QuantumGIS (QGIS) também suporta a visualização de rasters "
+"no PostGIS se o driver estiver instalado."
 
 #. Tag: para
-#: faq_raster.xml:151
+#: faq_raster.xml:150
 #, no-c-format
 msgid ""
 "In theory any tool that renders data using GDAL can support PostGIS raster "
@@ -411,24 +529,34 @@ msgid ""
 "sdk/</ulink> are a good choice if you don't want the hassle of having to "
 "setup to compile your own."
 msgstr ""
+"Na teoria, qualquer ferramenta que consiga renderizar dados utilizando a "
+"GDAL pode suportar o driver PostGIS com pouco esforço. Para Windows, os "
+"binários construídos por Tamas <ulink url=\"http://vbkto.dyndns.org/sdk/"
+"\">http://vbkto.dyndns.org/sdk/</ulink> são uma boa opção se você não deseja "
+"o trabalho de compilar tudo você mesmo."
 
 #. Tag: para
-#: faq_raster.xml:158
+#: faq_raster.xml:157
 #, no-c-format
 msgid "How can I add a PostGIS raster layer to my MapServer map?"
 msgstr ""
+"Como posso adicionar uma camada PostGIS Raster em meu mapa do MapServer?"
 
 #. Tag: para
-#: faq_raster.xml:162
+#: faq_raster.xml:161
 #, no-c-format
 msgid ""
 "First you need GDAL 1.7 or higher compiled with PostGIS raster support. GDAL "
 "1.8 or above is preferred since many issues have been fixed in 1.8 and more "
 "PostGIS raster issues fixed in trunk version."
 msgstr ""
+"Primeiro você precisa da GDAL 1.7 ou maior, compilada com suporte ao PostGIS "
+"Raster. GDAL 1.8 ou maior é preferida, já que muitos problemas foram "
+"solucionados e muitas pendências com o PostGIS Raster resolvidas na versão "
+"trunk."
 
 #. Tag: para
-#: faq_raster.xml:164
+#: faq_raster.xml:163
 #, no-c-format
 msgid ""
 "You can much like you can with any other raster. Refer to <ulink url="
@@ -436,34 +564,45 @@ msgid ""
 "options</ulink> for list of various processing functions you can use with "
 "MapServer raster layers."
 msgstr ""
+"Você pode gostar muito do que pode ser feito com qualquer outro raster. "
+"Referência <ulink url=\"http://mapserver.org/input/raster.html\">MapServer "
+"Raster processing options</ulink> para listar várias funções de "
+"processamento que você pode utilizar com MapServer raster layers."
 
 #. Tag: para
-#: faq_raster.xml:167
+#: faq_raster.xml:166
 #, no-c-format
 msgid ""
 "What makes PostGIS raster data particularly interesting, is that since each "
 "tile can have various standard database columns, you can segment it in your "
 "data source"
 msgstr ""
+"O que torna o PostGIS Raster tão interessante, é que cada tile pode ocupar "
+"diversas colunas padrão e você pode segmentar sua fonte de dados"
 
 #. Tag: para
-#: faq_raster.xml:169
+#: faq_raster.xml:168
 #, no-c-format
 msgid ""
 "Below is an example of how you would define a PostGIS raster layer in "
 "MapServer."
 msgstr ""
+"Abaixo está um exemplo de como você pode definir uma camada PostGIS Raster "
+"no MapServer."
 
 #. Tag: para
-#: faq_raster.xml:170
+#: faq_raster.xml:169
 #, no-c-format
 msgid ""
 "The mode=2 is required for tiled rasters and was added in PostGIS 2.0 and "
 "GDAL 1.8 drivers. This does not exist in GDAL 1.7 drivers."
 msgstr ""
+"O mode=2 é obrigatório para rasters dividos em tiles e este suporte foi "
+"adicionado no PostGIS 2.0 e nos drivers GDAL 1.8. Este suporte não existe na "
+"versão GDAL 1.7."
 
 #. Tag: programlisting
-#: faq_raster.xml:171
+#: faq_raster.xml:170
 #, no-c-format
 msgid ""
 "-- displaying raster with standard raster options\n"
@@ -495,9 +634,63 @@ msgid ""
 "        END\n"
 "END"
 msgstr ""
+"-- exibindo raster com opções padrões\n"
+"\n"
+"LAYER\n"
+"\n"
+"NAME coolwktraster\n"
+"\n"
+"TYPE raster\n"
+"\n"
+"STATUS ON\n"
+"\n"
+"DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"\n"
+"schema='someschema' table='cooltable' mode='2'\" \n"
+"\n"
+"PROCESSING \"NODATA=0\"\n"
+"\n"
+"PROCESSING \"SCALE=AUTO\"\n"
+"\n"
+"#... aqui, outras funções padrões de processamento raster\n"
+"\n"
+"#... classes são opcionais, mas úteis para 1 banda de dados\n"
+"\n"
+"CLASS\n"
+"\n"
+"NAME \"boring\"\n"
+"\n"
+"EXPRESSION ([pixel] < 20)\n"
+"\n"
+"COLOR 250 250 250\n"
+"\n"
+"END\n"
+"\n"
+"CLASS\n"
+"\n"
+"NAME \"mildly interesting\"\n"
+"\n"
+"EXPRESSION ([pixel] > 20 AND [pixel] < 1000)\n"
+"\n"
+"COLOR 255 0 0\n"
+"\n"
+"END\n"
+"\n"
+"CLASS\n"
+"\n"
+"NAME \"very interesting\"\n"
+"\n"
+"EXPRESSION ([pixel] >= 1000)\n"
+"\n"
+"COLOR 0 255 0\n"
+"\n"
+"END\n"
+"\n"
+"END"
 
 #. Tag: programlisting
-#: faq_raster.xml:173
+#: faq_raster.xml:172
 #, no-c-format
 msgid ""
 "-- displaying raster with standard raster options and a where clause\n"
@@ -514,40 +707,70 @@ msgid ""
 "        #... classes are optional but useful for 1 band data\n"
 "END"
 msgstr ""
+"-- exibindo raster com opções padrões e cláusula where\n"
+"\n"
+"LAYER\n"
+"\n"
+"NAME soil_survey2009\n"
+"\n"
+"TYPE raster\n"
+"\n"
+"STATUS ON\n"
+"\n"
+"DATA \"PG:host=localhost port=5432 dbname='somedb' user='someuser' "
+"password='whatever' \n"
+"\n"
+"schema='someschema' table='cooltable' where='survey_year=2009' mode='2'\" \n"
+"\n"
+"PROCESSING \"NODATA=0\"\n"
+"\n"
+"#... aqui, outras funções padrões de processamento raster\n"
+"\n"
+"#... classes são opcionais, mas úteis para 1 banda de dados\n"
+"\n"
+"END"
 
 #. Tag: para
-#: faq_raster.xml:181
+#: faq_raster.xml:180
 #, no-c-format
 msgid "What functions can I currently use with my raster data?"
-msgstr ""
+msgstr "Quais funcionalidades posso usar atualmente em meus dados raster?"
 
 #. Tag: para
-#: faq_raster.xml:185
+#: faq_raster.xml:184
 #, no-c-format
 msgid ""
 "Refer to the list of <xref linkend=\"RT_reference\"/>. There are more, but "
 "this is still a work in progress."
 msgstr ""
+"Se refere a lista <xref linkend=\"RT_reference\"/>. Existem mais, mas ainda "
+"está trabalhando na melhoria."
 
 #. Tag: para
-#: faq_raster.xml:187
+#: faq_raster.xml:186
 #, no-c-format
 msgid ""
 "Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
 "PlanningAndFunding\">PostGIS Raster roadmap page</ulink> for details of what "
 "you can expect in the future."
 msgstr ""
+"Se refere a <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"PlanningAndFunding\">PostGIS Raster roadmap page</ulink> para detalhes do "
+"que você pode esperar para o futuro."
 
 #. Tag: para
-#: faq_raster.xml:195
+#: faq_raster.xml:194
 #, no-c-format
 msgid ""
 "I am getting error ERROR: function st_intersects(raster, unknown) is not "
 "unique or st_union(geometry,text) is not unique. How do I fix?"
 msgstr ""
+"Estou recebendo um erro ERROR: function st_intersects(raster, unknow) is not "
+"unique or st_union(geometry, text) is not unique. Como posso consertar este "
+"problema?"
 
 #. Tag: para
-#: faq_raster.xml:199
+#: faq_raster.xml:198
 #, no-c-format
 msgid ""
 "The function is not unique error happens if one of your arguments is a "
@@ -558,83 +781,115 @@ msgid ""
 "theory support your request. To prevent this, you need to cast the geometry "
 "to a geometry."
 msgstr ""
+"Este erro ocorre se um de seus argumentos é uma representação textual de uma "
+"geometria ao invés de um objeto GEOMETRY. Nestes casos, PostgreSQL marca a "
+"representação textual como um tipo desconhecido, que significa que pode "
+"utilizar as funções st_intersects(raster, geometry) ou st_intersects(raster, "
+"raster), resultando em uma função não única, já que ambas, em teoria, "
+"poderiam suportar o pedido do usuário. Para prevenir isto, você deve "
+"converter sua representação textual da geometria para uma geometria de "
+"verdade (data type GEOMETRY)."
 
 #. Tag: para
-#: faq_raster.xml:200
+#: faq_raster.xml:199
 #, no-c-format
 msgid "For example if your code looks like this:"
-msgstr ""
+msgstr "Por exemplo, se seu código se parece com isto:"
 
 #. Tag: programlisting
-#: faq_raster.xml:201
+#: faq_raster.xml:200
 #, no-c-format
 msgid ""
 "SELECT rast\n"
 " FROM my_raster\n"
 "   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
 msgstr ""
+"SELECT rast\n"
+"\n"
+"FROM my_raster\n"
+"\n"
+"WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)');"
 
 #. Tag: para
-#: faq_raster.xml:202
+#: faq_raster.xml:201
 #, no-c-format
 msgid ""
 "Cast the textual geometry representation to a geometry by changing your code "
 "to this:"
 msgstr ""
+"Converta a representação textual geométrica para uma geometria, alterando "
+"seu código assim:"
 
 #. Tag: programlisting
-#: faq_raster.xml:203
+#: faq_raster.xml:202
 #, no-c-format
 msgid ""
 "SELECT rast\n"
 " FROM my_raster\n"
 "   WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)'::geometry);"
 msgstr ""
+"SELECT rast\n"
+"\n"
+"FROM my_raster\n"
+"\n"
+"WHERE ST_Intersects(rast, 'SRID=4326;POINT(-10 10)'::geometry);"
 
 #. Tag: para
-#: faq_raster.xml:211
+#: faq_raster.xml:208
 #, no-c-format
 msgid ""
 "How is PostGIS Raster different from Oracle GeoRaster (SDO_GEORASTER) and "
 "SDO_RASTER types?"
 msgstr ""
+"Como o PostGIS Raster é diferente do tipo Oracle GeoRaster (SDO_GEORASTER) e "
+"do tipo SDO_RASTER?"
 
 #. Tag: para
-#: faq_raster.xml:215
+#: faq_raster.xml:212
 #, no-c-format
 msgid ""
 "For a more extensive discussion on this topic, check out Jorge Arévalo "
 "<ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-georaster-part-"
 "i/\">Oracle GeoRaster and PostGIS Raster: First impressions </ulink>"
 msgstr ""
+"Para uma discurssão mais extensa sobre esse tópico, verifique Jorge Arévalo "
+"<ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-georaster-part-"
+"i/\"> Oracle GeoRaster e PostGIS Raster: Primeiras impressões </ulink>"
 
 #. Tag: para
-#: faq_raster.xml:216
+#: faq_raster.xml:213
 #, no-c-format
 msgid ""
 "The major advantage of one-georeference-by-raster over one-georeference-by-"
 "layer is to allow:"
 msgstr ""
+"A maior vantagem do one-georeference-by-raster sobre one-georeference-by-"
+"layer é permitir:"
 
 #. Tag: para
-#: faq_raster.xml:217
+#: faq_raster.xml:214
 #, no-c-format
 msgid ""
 "* coverages to be not necessarily rectangular (which is often the case of "
 "raster coverage covering large extents. See the possible raster arrangements "
 "in the documentation)"
 msgstr ""
+"* coberturas não são necessariamente retangulares (que é frequentemente o "
+"caso do raster coverage cobrindo grandes extensões. Veja a possibilidade de "
+"arranjos raster na documentação)"
 
 #. Tag: para
-#: faq_raster.xml:218
+#: faq_raster.xml:215
 #, no-c-format
 msgid ""
 "* rasters to overlaps (which is necessary to implement lossless vector to "
 "raster conversion)"
 msgstr ""
+"* rasters para sobreposição (que é necessário para implementar perda de "
+"menos vetores para conversões raster)"
 
 #. Tag: para
-#: faq_raster.xml:219
+#: faq_raster.xml:216
 #, no-c-format
 msgid ""
 "These arrangements are possible in Oracle as well, but they imply the "
@@ -643,9 +898,14 @@ msgid ""
 "With PostGIS Raster you can store a similar raster arrangement into a unique "
 "table."
 msgstr ""
+"Estes arranjos também são possíveis no Oracle, mas eles implicam no "
+"armazenamento de múltiplos objetos SDO_GEORASTER conectados a muitas tabelas "
+"SDO_RASTER. Uma cobertura complexa pode liderar para centenas de tabelas no "
+"banco de dados. Com PostGIS Raster vocẽ pode gravar um arranjo raster "
+"similar dentro de uma única tabela."
 
 #. Tag: para
-#: faq_raster.xml:224
+#: faq_raster.xml:221
 #, no-c-format
 msgid ""
 "It's a bit like if PostGIS would force you to store only full rectangular "
@@ -656,3 +916,80 @@ msgid ""
 "rectangular coverages. We think it is a big advantage that raster structure "
 "should benefit as well."
 msgstr ""
+"É um pouco como se o PostGIS forçasse você a gravar apenas cobertura "
+"vetorial retangular cheia sem lacunas e sobreposições (uma perfeita camada "
+"topologica retangular). Isso é muito prático em algumas aplicações, mas na "
+"prática tem mostrado que não é realista ou desejável para a maioria das "
+"cobertura geográficas. Estruturas vetoriais necessitam da flexibilidade para "
+"gravar coberturas descontínuas e não retangulares. Nós acreditamos que uma "
+"grande vantagem que estruturas raster deveriam beneficiar também."
+
+#. Tag: para
+#: faq_raster.xml:229
+#, no-c-format
+msgid ""
+"raster2pgsql load of large file fails with String of N bytes is too long for "
+"encoding conversion?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:233
+#, no-c-format
+msgid ""
+"raster2pgsql doesn't make any connections to your database when generating "
+"the file to load. If your database has set an explicit client encoding "
+"different from your database encoding, then when loading large raster files "
+"(above 30 MB in size), you may run into a <code>bytes is too long for "
+"encoding conversion</code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:235
+#, no-c-format
+msgid ""
+"This generally happens if for example you have your database in UTF8, but to "
+"support windows apps, you have the client encoding set to <code>WIN1252</"
+"code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:236
+#, no-c-format
+msgid ""
+"To work around this make sure the client encoding is the same as your "
+"database encoding during load. You can do this by explicitly setting the "
+"encoding in your load script. Example, if you are on windows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:237
+#, no-c-format
+msgid "set PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:238
+#, no-c-format
+msgid "If you are on Unix/Linux"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:239
+#, no-c-format
+msgid "export PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:240
+#, no-c-format
+msgid ""
+"Gory details of this issue are detailed in <ulink url=\"http://trac.osgeo."
+"org/postgis/ticket/2209\">http://trac.osgeo.org/postgis/ticket/2209</ulink>"
+msgstr ""
+
+#~ msgid ""
+#~ "We know for sure the following windows binaries have PostGIS Raster built "
+#~ "in."
+#~ msgstr ""
+#~ "Temos certeza que os seguintes binários Windows tem suporte ao PostGIS "
+#~ "Raster."
diff --git a/doc/po/pt_BR/installation.xml.po b/doc/po/pt_BR/installation.xml.po
index 70b7b67..96f793e 100644
--- a/doc/po/pt_BR/installation.xml.po
+++ b/doc/po/pt_BR/installation.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-12 07:23+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -16,9 +16,9 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: installation.xml:3 installation.xml:231 installation.xml:640
+#: installation.xml:3
 #, no-c-format
-msgid "Installation"
+msgid "PostGIS Installation"
 msgstr ""
 
 #. Tag: para
@@ -36,40 +36,80 @@ msgstr ""
 #. Tag: para
 #: installation.xml:11
 #, no-c-format
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:12
+#, no-c-format
 msgid ""
-"The raster support is currently optional, but installed by default. For "
-"installing using the PostgreSQL 9.1+ extensions model it is required. Please "
-"refer to <xref linkend=\"make_install_postgis_extensions\"/> if you are "
-"using PostgreSQL 9.1+."
+"tar xvfz postgis-&last_release_version;.tar.gz\n"
+"cd postgis-&last_release_version;\n"
+"./configure\n"
+"make\n"
+"make install"
 msgstr ""
 
 #. Tag: para
 #: installation.xml:13
 #, no-c-format
 msgid ""
-"All the .sql files once installed will be installed in share/contrib/postgis-"
-"&last_release_version; folder of your PostgreSQL install"
+"Once postgis is installed, it needs to be enabled in each individual "
+"database you want to use it in."
 msgstr ""
 
 #. Tag: para
+#: installation.xml:14
+#, no-c-format
+msgid ""
+"The raster support is currently optional, but installed by default. For "
+"enabling using the PostgreSQL 9.1+ extensions model raster is required. "
+"Using the extension enable process is preferred and more user-friendly. To "
+"spatially enable your database:"
+msgstr ""
+
+#. Tag: programlisting
 #: installation.xml:15
 #, no-c-format
 msgid ""
-"The <varname>postgis_comments.sql</varname>, <varname>raster_comments.sql</"
-"varname>, <varname>topology_comments.sql</varname> generate quick help tips "
-"for each function that can be accessed via pgAdmin III or psql. In psql with "
-"a command of the form e.g.<varname>\\dd ST_SetPoint</varname>"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_topology;\"\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_tiger_geocoder;\"\n"
+"-- if you built with sfcgal support --\n"
+"psql -d yourdatabase -c \"CREATE EXTENSION postgis_sfcgal;\""
+msgstr ""
+
+#. Tag: para
+#: installation.xml:18
+#, no-c-format
+msgid ""
+"Please refer to <xref linkend=\"make_install_postgis_extensions\"/> for more "
+"details about querying installed/available extensions and upgrading "
+"extensions, or switching from a non-extension install to an extension "
+"install."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:20
+#, no-c-format
+msgid ""
+"For those running who decided for some reason not to compile with raster "
+"support, or just are old-fashioned, here are longer more painful "
+"instructions for you:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:21
+#, no-c-format
+msgid ""
+"All the .sql files once installed will be installed in share/contrib/postgis-"
+"&last_minor_version; folder of your PostgreSQL install"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:17
+#: installation.xml:24
 #, no-c-format
 msgid ""
-"tar xvfz postgis-&last_release_version;.tar.gz\n"
-"cd postgis-&last_release_version;\n"
-"./configure --with-raster --with-topology --with-gui\n"
-"make\n"
-"make install\n"
 "createdb yourdatabase\n"
 "createlang plpgsql yourdatabase\n"
 "psql -d yourdatabase -f postgis.sql\n"
@@ -77,23 +117,15 @@ msgid ""
 "psql -d yourdatabase -f spatial_ref_sys.sql\n"
 "psql -d yourdatabase -f rtpostgis.sql\n"
 "psql -d yourdatabase -f raster_comments.sql\n"
-"psql -d yourdatabase -f topology/topology.sql\n"
-"psql -d yourdatabase -f doc/topology_comments.sql"
-msgstr ""
-
-#. Tag: para
-#: installation.xml:18
-#, no-c-format
-msgid ""
-"<filename>topology_comments.sql</filename> since its an optional feature is "
-"not installed by <command>make install</command> or <command>make comments-"
-"install</command>. However if you do a <command>make comments</command> or "
-"<command>make topology_comments.sql</command>, it will be generated in the "
-"docs folder"
+"psql -d yourdatabase -f topology.sql\n"
+"psql -d yourdatabase -f topology_comments.sql\n"
+"--if you built with sfcgal support --\n"
+"psql -d yourdatabase -f sfcgal.sql\n"
+"psql -d yourdatabase -f sfcgal_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:27
+#: installation.xml:26
 #, no-c-format
 msgid ""
 "The rest of this chapter goes into detail each of the above installation "
@@ -101,25 +133,25 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:34
+#: installation.xml:33
 #, no-c-format
-msgid "Requirements"
+msgid "Install Requirements"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:36
+#: installation.xml:35
 #, no-c-format
 msgid "PostGIS has the following requirements for building and usage:"
 msgstr ""
 
 #. Tag: emphasis
-#: installation.xml:41
+#: installation.xml:40
 #, no-c-format
 msgid "Required"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:46
+#: installation.xml:45
 #, no-c-format
 msgid ""
 "PostgreSQL &min_postgres_version; or higher. A complete installation of "
@@ -129,7 +161,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:55
+#: installation.xml:54
 #, no-c-format
 msgid ""
 "For a full PostgreSQL / PostGIS support matrix and PostGIS/GEOS support "
@@ -139,7 +171,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:61
+#: installation.xml:60
 #, no-c-format
 msgid ""
 "GNU C compiler (<filename>gcc</filename>). Some other ANSI C compilers can "
@@ -148,7 +180,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:69
+#: installation.xml:68
 #, no-c-format
 msgid ""
 "GNU Make (<filename>gmake</filename> or <filename>make</filename>). For many "
@@ -159,7 +191,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:79
+#: installation.xml:78
 #, no-c-format
 msgid ""
 "Proj4 reprojection library, version 4.6.0 or greater. The Proj4 library is "
@@ -169,7 +201,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:91
+#: installation.xml:90
 #, no-c-format
 msgid ""
 "GEOS geometry library, version 3.3 or greater, but GEOS 3.4+ is recommended "
@@ -184,7 +216,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:101
+#: installation.xml:100
 #, no-c-format
 msgid ""
 "LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports "
@@ -194,33 +226,46 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:108
+#: installation.xml:107
 #, no-c-format
 msgid ""
 "JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON "
 "via the function ST_GeomFromGeoJson. JSON-C is available for download from "
-"<ulink url=\"http://oss.metaparadigm.com/json-c/\">http://oss.metaparadigm."
-"com/json-c/</ulink>."
+"<ulink url=\"https://github.com/json-c/json-c/releases\">https://github.com/"
+"json-c/json-c/releases/</ulink>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:116
+#: installation.xml:115
 #, no-c-format
 msgid ""
 "GDAL, version 1.8 or higher (1.9 or higher is strongly recommended since "
 "some things will not work well or behavior differently with lower versions). "
-"This is required for raster support. <ulink url=\"http://trac.osgeo.org/gdal/"
-"wiki/DownloadSource\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
+"This is required for raster support and to be able to install with "
+"<code>CREATE EXTENSION postgis</code> so highly recommended for those "
+"running 9.1+. <ulink url=\"http://trac.osgeo.org/gdal/wiki/DownloadSource"
+"\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
 msgstr ""
 
 #. Tag: emphasis
-#: installation.xml:124
+#: installation.xml:123
 #, no-c-format
 msgid "Optional"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:129
+#: installation.xml:128
+#, no-c-format
+msgid ""
+"GDAL (pseudo optional) only if you don't want raster and don't care about "
+"installing with <code>CREATE EXTENSION postgis</code> can you leave it out. "
+"Keep in mind other extensions may have a requires postgis extension which "
+"will prevent you from installing them unless you install postgis as an "
+"extension. So it is highly recommended you compile with GDAL support."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:134
 #, no-c-format
 msgid ""
 "GTK (requires GTK+2.0, 2.8+) to compile the shp2pgsql-gui shape file loader. "
@@ -228,7 +273,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:139
+#: installation.xml:144
+#, no-c-format
+msgid ""
+"SFCGAL, version 1.0 (or higher) could be used to provide additional 2D and "
+"3D advanced analysis functions to PostGIS cf <xref linkend=\"reference_sfcgal"
+"\"/>. And also allow to use SFCGAL rather than GEOS for some 2D functions "
+"provided by both backends (like ST_Intersection or ST_Area, for instance). A "
+"PostgreSQL configuration variable <code>postgis.backend</code> allow end "
+"user to control which backend he want to use if SFCGAL is installed (GEOS by "
+"default). Nota: SFCGAL 1.0 require at least CGAL 4.1 and Boost 1.46 (cf: "
+"<ulink url=\"http://oslandia.github.io/SFCGAL/installation.html\">http://"
+"oslandia.github.io/SFCGAL/installation.html</ulink>) <ulink url=\"https://"
+"github.com/Oslandia/SFCGAL\">https://github.com/Oslandia/SFCGAL</ulink>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:152
+#, no-c-format
+msgid ""
+"In order to build the <xref linkend=\"Address_Standardizer\"/> you will also "
+"need PCRE <ulink url=\"http://www.pcre.org\">http://www.pcre.org</ulink> "
+"(which generally is already installed on nix systems). <code>Regex::"
+"Assemble</code> perl CPAN package is only needed if you want to rebuild the "
+"data encoded in <filename>parseaddress-stcities.h</filename>. <xref linkend="
+"\"Address_Standardizer\"/> will automatically be built if it detects a PCRE "
+"library, or you pass in a valid <varname>--with-pcre-dir=/path/to/pcre</"
+"varname> during configure."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:159
 #, no-c-format
 msgid ""
 "CUnit (<filename>CUnit</filename>). This is needed for regression testing. "
@@ -237,7 +312,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:145
+#: installation.xml:165
 #, no-c-format
 msgid ""
 "Apache Ant (<filename>ant</filename>) is required for building any of the "
@@ -246,7 +321,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:157
+#: installation.xml:177
 #, no-c-format
 msgid ""
 "DocBook (<filename>xsltproc</filename>) is required for building the "
@@ -255,7 +330,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:168
+#: installation.xml:188
 #, no-c-format
 msgid ""
 "DBLatex (<filename>dblatex</filename>) is required for building the "
@@ -264,7 +339,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:179
+#: installation.xml:199
 #, no-c-format
 msgid ""
 "ImageMagick (<filename>convert</filename>) is required to generate the "
@@ -273,31 +348,29 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:192
+#: installation.xml:212
 #, no-c-format
 msgid "Getting the Source"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:194
+#: installation.xml:214
 #, no-c-format
 msgid ""
 "Retrieve the PostGIS source archive from the downloads website <ulink url="
-"\"http://www.postgis.org/download/postgis-&last_release_version;.tar.gz\"> "
-"http://www.postgis.org/download/postgis-&last_release_version;.tar.gz </"
-"ulink>"
+"\"&postgis_download_url;\"> &postgis_download_url; </ulink>"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:201
+#: installation.xml:221
 #, no-c-format
 msgid ""
-"wget http://www.postgis.org/download/postgis-&last_release_version;.tar.gz\n"
+"wget &postgis_download_url;\n"
 "tar -xvzf postgis-&last_release_version;.tar.gz"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:203
+#: installation.xml:223
 #, no-c-format
 msgid ""
 "This will create a directory called <varname>postgis-&last_release_version;</"
@@ -305,7 +378,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:209
+#: installation.xml:229
 #, no-c-format
 msgid ""
 "Alternatively, checkout the source from the <ulink url=\"http://subversion."
@@ -314,7 +387,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:221
+#: installation.xml:241
 #, no-c-format
 msgid ""
 "svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-"
@@ -322,15 +395,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:223
+#: installation.xml:243
 #, no-c-format
 msgid ""
 "Change into the newly created <varname>postgis-&last_release_version;</"
 "varname> directory to continue the installation."
 msgstr ""
 
+#. Tag: title
+#: installation.xml:251
+#, no-c-format
+msgid "Compiling and Install from Source: Detailed"
+msgstr ""
+
 #. Tag: para
-#: installation.xml:234
+#: installation.xml:254
 #, no-c-format
 msgid ""
 "Many OS systems now include pre-built packages for PostgreSQL/PostGIS. In "
@@ -339,7 +418,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:239
+#: installation.xml:259
 #, no-c-format
 msgid ""
 "This section includes general compilation instructions, if you are compiling "
@@ -350,7 +429,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:241
+#: installation.xml:261
 #, no-c-format
 msgid ""
 "Pre-Built Packages for various OS are listed in <ulink url=\"http://trac."
@@ -358,7 +437,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:242
+#: installation.xml:262
 #, no-c-format
 msgid ""
 "If you are a windows user, you can get stable builds via Stackbuilder or "
@@ -371,7 +450,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:247
+#: installation.xml:267
 #, no-c-format
 msgid ""
 "The PostGIS module is an extension to the PostgreSQL backend server. As "
@@ -382,7 +461,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:255
+#: installation.xml:275
 #, no-c-format
 msgid ""
 "Refer to the PostgreSQL installation guides if you haven't already installed "
@@ -391,7 +470,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:265
+#: installation.xml:285
 #, no-c-format
 msgid ""
 "For GEOS functionality, when you install PostgresSQL you may need to "
@@ -399,13 +478,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:270
+#: installation.xml:290
 #, no-c-format
 msgid "LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE]"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:272
+#: installation.xml:292
 #, no-c-format
 msgid ""
 "This is a workaround for bogus C++ exceptions interaction with older "
@@ -415,7 +494,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:280
+#: installation.xml:300
 #, no-c-format
 msgid ""
 "The following steps outline the configuration and compilation of the PostGIS "
@@ -423,13 +502,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:287
+#: installation.xml:307
 #, no-c-format
 msgid "Configuration"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:289
+#: installation.xml:309
 #, no-c-format
 msgid ""
 "As with most linux installations, the first step is to generate the Makefile "
@@ -438,7 +517,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:299
+#: installation.xml:319
 #, no-c-format
 msgid ""
 "With no additional parameters, this command will attempt to automatically "
@@ -449,7 +528,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:308
+#: installation.xml:328
 #, no-c-format
 msgid ""
 "The following list shows only the most commonly used parameters. For a "
@@ -458,7 +537,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:318
+#: installation.xml:338
 #, no-c-format
 msgid ""
 "This is the location the PostGIS libraries and SQL scripts will be installed "
@@ -467,7 +546,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:325
+#: installation.xml:345
 #, no-c-format
 msgid ""
 "This parameter is currently broken, as the package will only install into "
@@ -477,7 +556,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:340
+#: installation.xml:360
 #, no-c-format
 msgid ""
 "PostgreSQL provides a utility called <command>pg_config</command> to enable "
@@ -488,7 +567,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:354
+#: installation.xml:374
 #, no-c-format
 msgid ""
 "GDAL, a required library, provides functionality needed for raster support "
@@ -499,7 +578,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:368
+#: installation.xml:388
 #, no-c-format
 msgid ""
 "GEOS, a required geometry library, provides a utility called <command>geos-"
@@ -510,7 +589,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:382
+#: installation.xml:402
 #, no-c-format
 msgid ""
 "LibXML is the library required for doing GeomFromKML/GML processes. It "
@@ -523,7 +602,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:400
+#: installation.xml:420
 #, no-c-format
 msgid ""
 "Proj4 is a reprojection library required by PostGIS. Use this parameter "
@@ -532,13 +611,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:412
+#: installation.xml:432
 #, no-c-format
 msgid "Directory where iconv is installed."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:421
+#: installation.xml:441
 #, no-c-format
 msgid ""
 "<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink> is an MIT-"
@@ -549,7 +628,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:433
+#: installation.xml:453
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.pcre.org/\">PCRE</ulink> is an BSD-licensed Perl "
+"Compatible Regular Expression library required by address_standardizer "
+"extension. Use this parameter (<command>--with-pcredir=/path/to/pcredir</"
+"command>) to manually specify a particular PCRE installation directory that "
+"PostGIS will build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:465
 #, no-c-format
 msgid ""
 "Compile the data import GUI (requires GTK+2.0). This will create shp2pgsql-"
@@ -557,7 +647,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:442
+#: installation.xml:474
 #, no-c-format
 msgid ""
 "Compile with raster support. This will build rtpostgis-"
@@ -566,7 +656,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:451
+#: installation.xml:483
 #, no-c-format
 msgid ""
 "Compile with topology support. This will build the topology.sql file. There "
@@ -575,7 +665,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:460
+#: installation.xml:492
 #, no-c-format
 msgid ""
 "By default PostGIS will try to detect gettext support and compile with it, "
@@ -589,7 +679,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:470
+#: installation.xml:503
+#, no-c-format
+msgid ""
+"By default PostGIS will not install with sfcgal support without this switch. "
+"<varname>PATH</varname> is an optional argument that allows to specify an "
+"alternate PATH to sfcgal-config."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:511
 #, no-c-format
 msgid ""
 "If you obtained PostGIS from the SVN <ulink url=\"http://svn.osgeo.org/"
@@ -598,7 +697,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:482
+#: installation.xml:523
 #, no-c-format
 msgid ""
 "This script will generate the <command>configure</command> script that in "
@@ -606,7 +705,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:487
+#: installation.xml:528
 #, no-c-format
 msgid ""
 "If you instead obtained PostGIS as a tarball, running <command>./autogen.sh</"
@@ -615,13 +714,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:496
+#: installation.xml:537
 #, no-c-format
 msgid "Building"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:498
+#: installation.xml:539
 #, no-c-format
 msgid ""
 "Once the Makefile has been generated, building PostGIS is as simple as "
@@ -629,7 +728,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:507
+#: installation.xml:548
 #, no-c-format
 msgid ""
 "The last line of the output should be \"<code>PostGIS was built "
@@ -637,7 +736,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:512
+#: installation.xml:553
 #, no-c-format
 msgid ""
 "As of PostGIS v1.4.0, all the functions have comments generated from the "
@@ -649,13 +748,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:522 installation.xml:544
+#: installation.xml:563 installation.xml:587
 #, no-c-format
 msgid "make comments"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:525
+#: installation.xml:566
 #, no-c-format
 msgid ""
 "Introduced in PostGIS 2.0. This generates html cheat sheets suitable for "
@@ -667,7 +766,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:530
+#: installation.xml:571
 #, no-c-format
 msgid ""
 "You can download some pre-built ones available in html and pdf from <ulink "
@@ -676,19 +775,19 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:533
+#: installation.xml:574
 #, no-c-format
 msgid "make cheatsheets"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:538
+#: installation.xml:579
 #, no-c-format
 msgid "Building PostGIS Extensions and Deploying them"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:540
+#: installation.xml:581
 #, no-c-format
 msgid ""
 "The PostGIS extensions are built and installed automatically if you are "
@@ -696,7 +795,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:543
+#: installation.xml:584
 #, no-c-format
 msgid ""
 "If you are building from source repository, you need to build the function "
@@ -705,7 +804,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:545
+#: installation.xml:589
 #, no-c-format
 msgid ""
 "Building the comments is not necessary if you are building from a release "
@@ -713,7 +812,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:546
+#: installation.xml:590
 #, no-c-format
 msgid ""
 "If you are building against PostgreSQL 9.1, the extensions should "
@@ -723,7 +822,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:548
+#: installation.xml:592
 #, no-c-format
 msgid ""
 "cd extensions\n"
@@ -739,7 +838,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:549
+#: installation.xml:593
 #, no-c-format
 msgid ""
 "The extension files will always be the same for the same version of PostGIS "
@@ -749,7 +848,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:551
+#: installation.xml:595
 #, no-c-format
 msgid ""
 "If you want to install the extensions manually on a separate server "
@@ -760,7 +859,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:558
+#: installation.xml:602
 #, no-c-format
 msgid ""
 "These are the control files that denote information such as the version of "
@@ -769,7 +868,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:564
+#: installation.xml:608
 #, no-c-format
 msgid ""
 "All the files in the /sql folder of each extension. Note that these need to "
@@ -779,7 +878,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:570
+#: installation.xml:614
 #, no-c-format
 msgid ""
 "Once you do that, you should see <varname>postgis</varname>, "
@@ -788,7 +887,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:571
+#: installation.xml:615
 #, no-c-format
 msgid ""
 "If you are using psql, you can verify that the extensions are installed by "
@@ -796,7 +895,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:572
+#: installation.xml:616
 #, no-c-format
 msgid ""
 "SELECT name, default_version,installed_version \n"
@@ -808,7 +907,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:574
+#: installation.xml:618
 #, no-c-format
 msgid ""
 "If you have the extension installed in the database you are querying, you'll "
@@ -820,7 +919,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:578
+#: installation.xml:622
 #, no-c-format
 msgid ""
 "If you have the extensions available, you can install postgis extension in "
@@ -829,15 +928,58 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:579
+#: installation.xml:623
 #, no-c-format
 msgid ""
 "CREATE EXTENSION postgis;\n"
-"CREATE EXTENSION postgis_topology;"
+"CREATE EXTENSION postgis_topology;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:581
+#: installation.xml:625
+#, no-c-format
+msgid ""
+"In psql you can use to see what versions you have installed and also what "
+"schema they are installed."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:626
+#, no-c-format
+msgid ""
+"\\connect mygisdb\n"
+"\\x \n"
+"\\dx postgis*"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:628
+#, no-c-format
+msgid ""
+"List of installed extensions\n"
+"-[ RECORD 1 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis\n"
+"Version     | &last_release_version;\n"
+"Schema      | public\n"
+"Description | PostGIS geometry, geography, and raster spat..\n"
+"-[ RECORD 2 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_tiger_geocoder\n"
+"Version     | &last_release_version;\n"
+"Schema      | tiger\n"
+"Description | PostGIS tiger geocoder and reverse geocoder\n"
+"-[ RECORD 3 ]-------------------------------------------------\n"
+"-\n"
+"Name        | postgis_topology\n"
+"Version     | &last_release_version;\n"
+"Schema      | topology\n"
+"Description | PostGIS topology spatial types and functions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:630
 #, no-c-format
 msgid ""
 "Extension tables <varname>spatial_ref_sys</varname>, <varname>layer</"
@@ -855,19 +997,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:586
+#: installation.xml:635
 #, no-c-format
 msgid ""
 "If you installed &last_release_version;, without using our wonderful "
 "extension system, you can change it to be extension based by first upgrading "
 "to the latest micro version running the upgrade scripts: "
-"<filename>postgis_upgrade_20_minor.sql</filename>,"
-"<filename>raster_upgrade_20_minor.sql</filename>,"
-"<filename>topology_upgrade_20_minor.sql</filename>."
+"<filename>postgis_upgrade_22_minor.sql</filename>,"
+"<filename>raster_upgrade_22_minor.sql</filename>,"
+"<filename>topology_upgrade_22_minor.sql</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:587
+#: installation.xml:636
 #, no-c-format
 msgid ""
 "If you installed postgis without raster support, you'll need to install "
@@ -875,7 +1017,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:588
+#: installation.xml:637
 #, no-c-format
 msgid ""
 "Then you can run the below commands to package the functions in their "
@@ -883,33 +1025,34 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:589
+#: installation.xml:638
 #, no-c-format
 msgid ""
 "CREATE EXTENSION postgis FROM unpackaged;\n"
-"CREATE EXTENSION postgis_topology FROM unpackaged;"
+"CREATE EXTENSION postgis_topology FROM unpackaged;\n"
+"CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:595
+#: installation.xml:644
 #, no-c-format
 msgid "Testing"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:597
+#: installation.xml:646
 #, no-c-format
 msgid "If you wish to test the PostGIS build, run"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:602
+#: installation.xml:651
 #, no-c-format
 msgid "make check"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:605
+#: installation.xml:654
 #, no-c-format
 msgid ""
 "The above command will run through various checks and regression tests using "
@@ -917,7 +1060,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:611
+#: installation.xml:660
 #, no-c-format
 msgid ""
 "If you configured PostGIS using non-standard PostgreSQL, GEOS, or Proj4 "
@@ -926,7 +1069,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:619
+#: installation.xml:668
 #, no-c-format
 msgid ""
 "Currently, the <command>make check</command> relies on the <code>PATH</code> "
@@ -939,18 +1082,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:631
+#: installation.xml:680
 #, no-c-format
 msgid ""
 "If successful, the output of the test should be similar to the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:636
+#: installation.xml:685
 #, no-c-format
 msgid ""
 "CUnit - A Unit testing framework for C - Version 2.1-0\n"
-"         http://cunit.sourceforge.net/\n"
+"     http://cunit.sourceforge.net/\n"
 "\n"
 "\n"
 "Suite: print_suite\n"
@@ -959,15 +1102,22 @@ msgid ""
 "  Test: test_lwprint_optional_format ... passed\n"
 "  Test: test_lwprint_oddball_formats ... passed\n"
 "  Test: test_lwprint_bad_formats ... passed\n"
-"Suite: Misc Suite\n"
+"Suite: misc\n"
 "  Test: test_misc_force_2d ... passed\n"
 "  Test: test_misc_simplify ... passed\n"
 "  Test: test_misc_count_vertices ... passed\n"
 "  Test: test_misc_area ... passed\n"
 "  Test: test_misc_wkb ... passed\n"
-"Suite: PointArray Suite\n"
+"Suite: ptarray\n"
 "  Test: test_ptarray_append_point ... passed\n"
 "  Test: test_ptarray_append_ptarray ... passed\n"
+"  Test: test_ptarray_locate_point ... passed\n"
+"  Test: test_ptarray_isccw ... passed\n"
+"  Test: test_ptarray_signed_area ... passed\n"
+"  Test: test_ptarray_desegmentize ... passed\n"
+"  Test: test_ptarray_insert_point ... passed\n"
+"  Test: test_ptarray_contains_point ... passed\n"
+"  Test: test_ptarrayarc_contains_point ... passed\n"
 "Suite: PostGIS Computational Geometry Suite\n"
 "  Test: test_lw_segment_side ... passed\n"
 "  Test: test_lw_segment_intersects ... passed\n"
@@ -983,107 +1133,271 @@ msgid ""
 "  Test: test_geohash_point ... passed\n"
 "  Test: test_geohash_precision ... passed\n"
 "  Test: test_geohash ... passed\n"
+"  Test: test_geohash_point_as_int ... passed\n"
 "  Test: test_isclosed ... passed\n"
+"Suite: buildarea\n"
+"  Test: buildarea1 ... passed\n"
+"  Test: buildarea2 ... passed\n"
+"  Test: buildarea3 ... passed\n"
+"  Test: buildarea4 ... passed\n"
+"  Test: buildarea4b ... passed\n"
+"  Test: buildarea5 ... passed\n"
+"  Test: buildarea6 ... passed\n"
+"  Test: buildarea7 ... passed\n"
+"Suite: clean\n"
+"  Test: test_lwgeom_make_valid ... passed\n"
 "Suite: PostGIS Measures Suite\n"
 "  Test: test_mindistance2d_tolerance ... passed\n"
 "  Test: test_rect_tree_contains_point ... passed\n"
 "  Test: test_rect_tree_intersects_tree ... passed\n"
 "  Test: test_lwgeom_segmentize2d ... passed\n"
+"  Test: test_lwgeom_locate_along ... passed\n"
+"  Test: test_lw_dist2d_pt_arc ... passed\n"
+"  Test: test_lw_dist2d_seg_arc ... passed\n"
+"  Test: test_lw_dist2d_arc_arc ... passed\n"
+"  Test: test_lw_arc_length ... passed\n"
+"  Test: test_lw_dist2d_pt_ptarrayarc ... passed\n"
+"  Test: test_lw_dist2d_ptarray_ptarrayarc ... passed\n"
+"Suite: node\n"
+"  Test: test_lwgeom_node ... passed\n"
 "Suite: WKT Out Suite\n"
 "  Test: test_wkt_out_point ... passed\n"
 "  Test: test_wkt_out_linestring ... passed\n"
 "  Test: test_wkt_out_polygon ... passed\n"
 "  Test: test_wkt_out_multipoint ... passed\n"
 "  Test: test_wkt_out_multilinestring ... passed\n"
+"  Test: test_wkt_out_multipolygon ... passed\n"
+"  Test: test_wkt_out_collection ... passed\n"
+"  Test: test_wkt_out_circularstring ... passed\n"
+"  Test: test_wkt_out_compoundcurve ... passed\n"
+"  Test: test_wkt_out_curvpolygon ... passed\n"
+"  Test: test_wkt_out_multicurve ... passed\n"
+"  Test: test_wkt_out_multisurface ... passed\n"
+"Suite: WKT In Suite\n"
+"  Test: test_wkt_in_point ... passed\n"
+"  Test: test_wkt_in_linestring ... passed\n"
+"  Test: test_wkt_in_polygon ... passed\n"
+"  Test: test_wkt_in_multipoint ... passed\n"
+"  Test: test_wkt_in_multilinestring ... passed\n"
+"  Test: test_wkt_in_multipolygon ... passed\n"
+"  Test: test_wkt_in_collection ... passed\n"
+"  Test: test_wkt_in_circularstring ... passed\n"
+"  Test: test_wkt_in_compoundcurve ... passed\n"
+"  Test: test_wkt_in_curvpolygon ... passed\n"
+"  Test: test_wkt_in_multicurve ... passed\n"
+"  Test: test_wkt_in_multisurface ... passed\n"
+"  Test: test_wkt_in_tin ... passed\n"
+"  Test: test_wkt_in_polyhedralsurface ... passed\n"
+"  Test: test_wkt_in_errlocation ... passed\n"
+"Suite: WKB Out Suite\n"
+"  Test: test_wkb_out_point ... passed\n"
+"  Test: test_wkb_out_linestring ... passed\n"
+"  Test: test_wkb_out_polygon ... passed\n"
+"  Test: test_wkb_out_multipoint ... passed\n"
+"  Test: test_wkb_out_multilinestring ... passed\n"
+"  Test: test_wkb_out_multipolygon ... passed\n"
+"  Test: test_wkb_out_collection ... passed\n"
+"  Test: test_wkb_out_circularstring ... passed\n"
+"  Test: test_wkb_out_compoundcurve ... passed\n"
+"  Test: test_wkb_out_curvpolygon ... passed\n"
+"  Test: test_wkb_out_multicurve ... passed\n"
+"  Test: test_wkb_out_multisurface ... passed\n"
+"  Test: test_wkb_out_polyhedralsurface ... passed\n"
 ":\n"
+"Suite: Geodetic Suite\n"
+"  Test: test_sphere_direction ... passed\n"
+"  Test: test_sphere_project ... passed\n"
+"  Test: test_lwgeom_area_sphere ... passed\n"
+"  Test: test_signum ... passed\n"
+"  Test: test_gbox_from_spherical_coordinates ... passed\n"
 ":\n"
-"--Run Summary: Type      Total     Ran  Passed  Failed\n"
-"               suites       17      17     n/a       0\n"
-"               tests       143     143     143       0\n"
-"               asserts    1228    1228    1228       0\n"
+"  Test: test_geos_noop ... passed\n"
+"Suite: Internal Spatial Trees\n"
+"  Test: test_tree_circ_create ... passed\n"
+"  Test: test_tree_circ_pip ... passed\n"
+"  Test: test_tree_circ_pip2 ... passed\n"
+"  Test: test_tree_circ_distance ... passed\n"
+"Suite: triangulate\n"
+"  Test: test_lwgeom_delaunay_triangulation ... passed\n"
+"Suite: stringbuffer\n"
+"  Test: test_stringbuffer_append ... passed\n"
+"  Test: test_stringbuffer_aprintf ... passed\n"
+"Suite: surface\n"
+"  Test: triangle_parse ... passed\n"
+"  Test: tin_parse ... passed\n"
+"  Test: polyhedralsurface_parse ... passed\n"
+"  Test: surface_dimension ... passed\n"
+"Suite: homogenize\n"
+"  Test: test_coll_point ... passed\n"
+"  Test: test_coll_line ... passed\n"
+"  Test: test_coll_poly ... passed\n"
+"  Test: test_coll_coll ... passed\n"
+"  Test: test_geom ... passed\n"
+"  Test: test_coll_curve ... passed\n"
+"Suite: force_sfs\n"
+"  Test: test_sfs_11 ... passed\n"
+"  Test: test_sfs_12 ... passed\n"
+"  Test: test_sqlmm ... passed\n"
+"Suite: out_gml\n"
+"  Test: out_gml_test_precision ... passed\n"
+"  Test: out_gml_test_srid ... passed\n"
+"  Test: out_gml_test_dims ... passed\n"
+"  Test: out_gml_test_geodetic ... passed\n"
+"  Test: out_gml_test_geoms ... passed\n"
+"  Test: out_gml_test_geoms_prefix ... passed\n"
+"  Test: out_gml_test_geoms_nodims ... passed\n"
+"  Test: out_gml2_extent ... passed\n"
+"  Test: out_gml3_extent ... passed\n"
+"Suite: KML Out Suite\n"
+"  Test: out_kml_test_precision ... passed\n"
+"  Test: out_kml_test_dims ... passed\n"
+"  Test: out_kml_test_geoms ... passed\n"
+"  Test: out_kml_test_prefix ... passed\n"
+"Suite: GeoJson Out Suite\n"
+"  Test: out_geojson_test_precision ... passed\n"
+"  Test: out_geojson_test_dims ... passed\n"
+"  Test: out_geojson_test_srid ... passed\n"
+"  Test: out_geojson_test_bbox ... passed\n"
+"  Test: out_geojson_test_geoms ... passed\n"
+"Suite: SVG Out Suite\n"
+"  Test: out_svg_test_precision ... passed\n"
+"  Test: out_svg_test_dims ... passed\n"
+"  Test: out_svg_test_relative ... passed\n"
+"  Test: out_svg_test_geoms ... passed\n"
+"  Test: out_svg_test_srid ... passed\n"
+"Suite: X3D Out Suite\n"
+"  Test: out_x3d3_test_precision ... passed\n"
+"  Test: out_x3d3_test_geoms ... passed\n"
 "\n"
+"--Run Summary: Type      Total     Ran  Passed  Failed\n"
+"               suites       27      27     n/a       0\n"
+"               tests       198     198     198       0\n"
+"               asserts    1728    1728    1728       0\n"
 "\n"
-"Creating spatial db postgis_reg\n"
-" Postgis 2.0.0SVN - 2011-01-11 15:33:37\n"
-"   GEOS: 3.3.0-CAPI-1.7.0\n"
-"   PROJ: Rel. 4.6.1, 21 August 2008\n"
+"Creating database 'postgis_reg' \n"
+"Loading PostGIS into 'postgis_reg' \n"
+"PostgreSQL 9.3beta1 on x86_64-unknown-linux-gnu, compiled by gcc (Debian "
+"4.4.5-8) 4.4.5, 64-bit\n"
+"  Postgis 2.1.0SVN - r11415 - 2013-05-11 02:48:21\n"
+"  GEOS: 3.4.0dev-CAPI-1.8.0 r3797\n"
+"  PROJ: Rel. 4.7.1, 23 September 2009\n"
 "\n"
 "Running tests\n"
 "\n"
-" loader/Point.............. ok\n"
-" loader/PointM.............. ok\n"
-" loader/PointZ.............. ok\n"
-" loader/MultiPoint.............. ok\n"
-" loader/MultiPointM.............. ok\n"
-" loader/MultiPointZ.............. ok\n"
-" loader/Arc.............. ok\n"
-" loader/ArcM.............. ok\n"
-" loader/ArcZ.......... ok\n"
-" loader/Polygon.............. ok\n"
-" loader/PolygonM.............. ok\n"
-" loader/PolygonZ.............. ok\n"
-" regress. ok\n"
-" regress_index. ok\n"
-" regress_index_nulls. ok\n"
-" lwgeom_regress. ok\n"
-" regress_lrs. ok\n"
-" removepoint. ok\n"
-" setpoint. ok\n"
-" simplify. ok\n"
-" snaptogrid. ok\n"
-" affine. ok\n"
-" measures. ok\n"
-" long_xact. ok\n"
-" ctors. ok\n"
-" sql-mm-serialize. ok\n"
-" sql-mm-circularstring. ok\n"
-" sql-mm-compoundcurve. ok\n"
-" sql-mm-curvepoly. ok\n"
-" sql-mm-general. ok\n"
-" sql-mm-multicurve. ok\n"
-" sql-mm-multisurface. ok\n"
-" polyhedralsurface. ok\n"
-" out_geometry. ok\n"
-" out_geography. ok\n"
-" in_gml. ok\n"
-" in_kml. ok\n"
-" iscollection. ok\n"
-" regress_ogc. ok\n"
-" regress_ogc_cover. ok\n"
-" regress_ogc_prep. ok\n"
-" regress_bdpoly. ok\n"
-" regress_proj. ok\n"
-" dump. ok\n"
-" dumppoints. ok\n"
-" wmsservers_new. ok\n"
-" tickets. ok\n"
-" remove_repeated_points. ok\n"
-" split. ok\n"
-" relatematch. ok\n"
-" regress_buffer_params. ok\n"
-" hausdorff. ok\n"
-" clean. ok\n"
-" sharedpaths. ok\n"
-" snap. ok\n"
+" loader/Point .............. ok \n"
+" loader/PointM .............. ok \n"
+" loader/PointZ .............. ok \n"
+" loader/MultiPoint .............. ok \n"
+" loader/MultiPointM .............. ok \n"
+" loader/MultiPointZ .............. ok \n"
+" loader/Arc .............. ok \n"
+" loader/ArcM .............. ok \n"
+" loader/ArcZ .............. ok \n"
+" loader/Polygon .............. ok \n"
+" loader/PolygonM .............. ok \n"
+" loader/PolygonZ .............. ok \n"
+" loader/TSTPolygon ......... ok \n"
+" loader/TSIPolygon ......... ok \n"
+" loader/TSTIPolygon ......... ok \n"
+" loader/PointWithSchema ..... ok \n"
+" loader/NoTransPoint ......... ok \n"
+" loader/NotReallyMultiPoint ......... ok \n"
+" loader/MultiToSinglePoint ......... ok \n"
+" loader/ReprojectPts ........ ok \n"
+" loader/ReprojectPtsGeog ........ ok \n"
+" loader/Latin1 .... ok \n"
+" binary .. ok \n"
+" regress .. ok \n"
+" regress_index .. ok \n"
+" regress_index_nulls .. ok \n"
+" regress_selectivity .. ok \n"
+" lwgeom_regress .. ok \n"
+" regress_lrs .. ok \n"
+" removepoint .. ok \n"
+" setpoint .. ok \n"
+" simplify .. ok \n"
+" snaptogrid .. ok \n"
+" summary .. ok \n"
+" affine .. ok \n"
+" empty .. ok \n"
+" measures .. ok \n"
+" legacy .. ok \n"
+" long_xact .. ok \n"
+" ctors .. ok \n"
+" sql-mm-serialize .. ok \n"
+" sql-mm-circularstring .. ok \n"
+" sql-mm-compoundcurve .. ok \n"
+" sql-mm-curvepoly .. ok \n"
+" sql-mm-general .. ok \n"
+" sql-mm-multicurve .. ok \n"
+" sql-mm-multisurface .. ok \n"
+" polyhedralsurface .. ok \n"
+" polygonize .. ok \n"
+" postgis_type_name .. ok \n"
+" geography .. ok \n"
+" out_geometry .. ok \n"
+" out_geography .. ok \n"
+" in_geohash .. ok \n"
+" in_gml .. ok \n"
+" in_kml .. ok \n"
+" iscollection .. ok \n"
+" regress_ogc .. ok \n"
+" regress_ogc_cover .. ok \n"
+" regress_ogc_prep .. ok \n"
+" regress_bdpoly .. ok \n"
+" regress_proj .. ok \n"
+" regress_management .. ok \n"
+" dump .. ok \n"
+" dumppoints .. ok \n"
+" boundary .. ok \n"
+" wmsservers .. ok \n"
+" wkt .. ok \n"
+" wkb .. ok \n"
+" tickets .. ok \n"
+" typmod .. ok \n"
+" remove_repeated_points .. ok \n"
+" split .. ok \n"
+" relate .. ok \n"
+" bestsrid .. ok \n"
+" concave_hull .. ok \n"
+" hausdorff .. ok \n"
+" regress_buffer_params .. ok \n"
+" offsetcurve .. ok \n"
+" relatematch .. ok \n"
+" isvaliddetail .. ok \n"
+" sharedpaths .. ok \n"
+" snap .. ok \n"
+" node .. ok \n"
+" unaryunion .. ok \n"
+" clean .. ok \n"
+" relate_bnr .. ok \n"
+" delaunaytriangles .. ok \n"
+" in_geojson .. ok \n"
+" uninstall .. ok (4112)\n"
 "\n"
-"Run tests: 55\n"
-"Failed: 0"
+"Run tests: 90"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:689
+#, no-c-format
+msgid "Installation"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:642
+#: installation.xml:691
 #, no-c-format
 msgid "To install PostGIS, type"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:647
+#: installation.xml:696
 #, no-c-format
 msgid "make install"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:650
+#: installation.xml:699
 #, no-c-format
 msgid ""
 "This will copy the PostGIS installation files into their appropriate "
@@ -1092,7 +1406,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:658
+#: installation.xml:707
 #, no-c-format
 msgid ""
 "The loader and dumper binaries are installed in <filename>[prefix]/bin</"
@@ -1100,7 +1414,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:665
+#: installation.xml:714
 #, no-c-format
 msgid ""
 "The SQL files, such as <filename>postgis.sql</filename>, are installed in "
@@ -1108,14 +1422,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:672
+#: installation.xml:721
 #, no-c-format
 msgid ""
 "The PostGIS libraries are installed in <filename>[prefix]/lib</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:679
+#: installation.xml:728
 #, no-c-format
 msgid ""
 "If you previously ran the <command>make comments</command> command to "
@@ -1125,13 +1439,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:686
+#: installation.xml:735
 #, no-c-format
 msgid "make comments-install"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:690
+#: installation.xml:739
 #, no-c-format
 msgid ""
 "<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</"
@@ -1141,13 +1455,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:700
+#: installation.xml:749
 #, no-c-format
 msgid "Create a spatially-enabled database on PostgreSQL lower than 9.1"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:702
+#: installation.xml:751
 #, no-c-format
 msgid ""
 "The first step in creating a PostGIS database is to create a simple "
@@ -1155,13 +1469,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:708 installation.xml:805
+#: installation.xml:757 installation.xml:854
 #, no-c-format
 msgid "createdb [yourdatabase]"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:711
+#: installation.xml:760
 #, no-c-format
 msgid ""
 "Many of the PostGIS functions are written in the PL/pgSQL procedural "
@@ -1172,13 +1486,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:719
+#: installation.xml:768
 #, no-c-format
 msgid "createlang plpgsql [yourdatabase]"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:722
+#: installation.xml:771
 #, no-c-format
 msgid ""
 "Now load the PostGIS object and function definitions into your database by "
@@ -1188,13 +1502,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:730
+#: installation.xml:779
 #, no-c-format
 msgid "psql -d [yourdatabase] -f postgis.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:733
+#: installation.xml:782
 #, no-c-format
 msgid ""
 "For a complete set of EPSG coordinate system definition identifiers, you can "
@@ -1204,13 +1518,13 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:741
+#: installation.xml:790
 #, no-c-format
 msgid "psql -d [yourdatabase] -f spatial_ref_sys.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:744
+#: installation.xml:793
 #, no-c-format
 msgid ""
 "If you wish to add comments to the PostGIS functions, the final step is to "
@@ -1220,25 +1534,25 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:752
+#: installation.xml:801
 #, no-c-format
 msgid "psql -d [yourdatabase] -f postgis_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:755
+#: installation.xml:804
 #, no-c-format
 msgid "Install raster support"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:760
+#: installation.xml:809
 #, no-c-format
 msgid "psql -d [yourdatabase] -f rtpostgis.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:763
+#: installation.xml:812
 #, no-c-format
 msgid ""
 "Install raster support comments. This will provide quick help info for each "
@@ -1247,25 +1561,25 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:769
+#: installation.xml:818
 #, no-c-format
 msgid "psql -d [yourdatabase] -f raster_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:771
+#: installation.xml:820
 #, no-c-format
 msgid "Install topology support"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:776
+#: installation.xml:825
 #, no-c-format
 msgid "psql -d [yourdatabase] -f topology/topology.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:779
+#: installation.xml:828
 #, no-c-format
 msgid ""
 "Install topology support comments. This will provide quick help info for "
@@ -1274,26 +1588,26 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:785
+#: installation.xml:834
 #, no-c-format
 msgid "psql -d [yourdatabase] -f topology/topology_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:788 installation.xml:825
+#: installation.xml:837 installation.xml:874
 #, no-c-format
 msgid ""
 "If you plan to restore an old backup from prior versions in this new db, run:"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:789 installation.xml:826
+#: installation.xml:838 installation.xml:875
 #, no-c-format
 msgid "psql -d [yourdatabase] -f legacy.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:790
+#: installation.xml:839
 #, no-c-format
 msgid ""
 "There is an alternative <filename>legacy_minimal.sql</filename> you can run "
@@ -1304,7 +1618,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:793 installation.xml:828
+#: installation.xml:842 installation.xml:877
 #, no-c-format
 msgid ""
 "You can later run <filename>uninstall_legacy.sql</filename> to get rid of "
@@ -1312,13 +1626,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:797
+#: installation.xml:846
 #, no-c-format
 msgid "Creating a spatial database using EXTENSIONS"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:799
+#: installation.xml:848
 #, no-c-format
 msgid ""
 "If you are using PostgreSQL 9.1+ and have compiled and installed the "
@@ -1326,7 +1640,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:808
+#: installation.xml:857
 #, no-c-format
 msgid ""
 "The core postgis extension installs PostGIS geometry, geography, raster, "
@@ -1335,45 +1649,172 @@ msgid ""
 msgstr ""
 
 #. Tag: command
-#: installation.xml:814
+#: installation.xml:863
 #, no-c-format
 msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:817
+#: installation.xml:866
 #, no-c-format
 msgid ""
 "Topology is packaged as a separate extension and installable with command:"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:822
+#: installation.xml:871
 #, no-c-format
 msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:832
+#: installation.xml:880
+#, no-c-format
+msgid "Installing and Using the address standardizer"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:881
+#, no-c-format
+msgid ""
+"The <code>address_standardizer</code> extension used to be a separate "
+"package that required separate download. From PostGIS 2.2 on, it is now "
+"bundled in. For more information about the address_standardize, what it "
+"does, and how to configure it for your needs, refer to <xref linkend="
+"\"Address_Standardizer\"/>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:883
+#, no-c-format
+msgid ""
+"This standardizer can be used in conjunction with the PostGIS packaged tiger "
+"geocoder extension as a replacement for the <xref linkend=\"Normalize_Address"
+"\"/> discussed. To use as replacement refer to <xref linkend="
+"\"tiger_pagc_address_standardizing\"/>. You can also use it as a building "
+"block for your own geocoder or use it to standardize your addresses for "
+"easier compare of addresses."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:887
+#, no-c-format
+msgid ""
+"The address standardizer relies on PCRE which is usually already installed "
+"on many Nix systems, but you can download the latest at: <ulink url=\"http://"
+"www.pcre.org\">http://www.pcre.org</ulink>. If during <xref linkend="
+"\"installation_configuration\"/>, PCRE is found, then the address "
+"standardizer extension will automatically be built. If you have a custom "
+"pcre install you want to use instead, pass to configure <code>--with-"
+"pcredir=/path/to/pcre</code> where <filename>/path/to/pcre</filename> is the "
+"root folder for your pcre include and lib directories."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:890
+#, no-c-format
+msgid ""
+"For Windows users, the PostGIS 2.1+ bundle is packaged with the "
+"address_standardizer already so no need to compile and can move straight to "
+"<code>CREATE EXTENSION</code> step."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:893
+#, no-c-format
+msgid ""
+"Once you have installed, you can connect to your database and run the SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:894
+#, no-c-format
+msgid "CREATE EXTENSION address_standardizer;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:896
+#, no-c-format
+msgid "The following test requires no rules, gaz, or lex tables"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:897
+#, no-c-format
+msgid ""
+"SELECT num, street, city, state, zip \n"
+" FROM parse_address('1 Devonshire Place, Boston, MA 02109');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:898
+#, no-c-format
+msgid "Output should be"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:899
+#, no-c-format
+msgid ""
+"num |         street         |  city  | state |  zip\n"
+"-----+------------------------+--------+-------+-------\n"
+" 1   | Devonshire Place PH301 | Boston | MA    | 02109"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:901
+#, no-c-format
+msgid "Installing Regex::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:902
+#, no-c-format
+msgid ""
+"Perl Regex:Assemble is no longer needed for compiling address_standardizer "
+"extension since the files it generates are part of the source tree. However "
+"if you need to edit the <filename>usps-st-city-orig.txt</filename> or "
+"<filename>usps-st-city-orig.txt usps-st-city-adds.tx</filename>, you need to "
+"rebuild <filename>parseaddress-stcities.h</filename> which does require "
+"Regex:Assemble."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:903
+#, no-c-format
+msgid "cpan Regexp::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:904
+#, no-c-format
+msgid "or if you are on Ubuntu / Debian you might need to do"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:905
+#, no-c-format
+msgid "sudo perl -MCPAN -e \"install Regexp::Assemble\""
+msgstr ""
+
+#. Tag: title
+#: installation.xml:910
 #, no-c-format
 msgid "Installing, Upgrading Tiger Geocoder and loading data"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:834
+#: installation.xml:912
 #, no-c-format
 msgid ""
-"The Tiger geocoder does not get installed / upgraded with the core PostGIS "
-"scripts because it is only of regional use. In fact nothing located in the "
-"extras folder is installed by default with the regular PostGIS install / "
-"upgrade. Extras like Tiger geocoder may also not be packaged in your PostGIS "
-"distribution, but will always be available in the postgis-"
-"&last_release_version;.tar.gz file. The instructions provided here are also "
-"available in the <filename>extras/tiger_geocoder/tiger_2010/README</filename>"
+"Extras like Tiger geocoder may not be packaged in your PostGIS distribution, "
+"but will always be available in the postgis-&last_release_version;.tar.gz "
+"file. The instructions provided here are also available in the "
+"<filename>extras/tiger_geocoder/tiger_2011/README</filename>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:836
+#: installation.xml:913
 #, no-c-format
 msgid ""
 "If you are on Windows and you don't have tar installed, you can use <ulink "
@@ -1382,197 +1823,309 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:838
+#: installation.xml:915
 #, no-c-format
-msgid "Tiger Geocoder Enabling your PostGIS database"
+msgid "Tiger Geocoder Enabling your PostGIS database: Using Extension"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:839
+#: installation.xml:916
 #, no-c-format
-msgid "First install PostGIS using the prior instructions."
+msgid ""
+"If you are using PostgreSQL 9.1+ and PostGIS 2.1.0, you can take advantage "
+"of the new extension model for installing tiger geocoder. To do so:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:843 installation.xml:870
+#: installation.xml:918
 #, no-c-format
 msgid ""
-"If you don't have an extras folder, download <ulink url=\"http://www.postgis."
-"org/download/postgis-&last_release_version;.tar.gz\">http://www.postgis.org/"
-"download/postgis-&last_release_version;.tar.gz</ulink>"
+"First get binaries for PostGIS 2.1.0 or compile and install as usual. This "
+"should install the necessary extension files as well for tiger geocoder."
 msgstr ""
 
-#. Tag: command
-#: installation.xml:848 installation.xml:875
+#. Tag: para
+#: installation.xml:919
 #, no-c-format
-msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgid ""
+"Connect to your database via psql or pgAdmin or some other tool and run the "
+"following SQL commands. Note that if you are installing in a database that "
+"already has postgis, you don't need to do the first step. If you have "
+"<varname>fuzzystrmatch</varname> extension already installed, you don't need "
+"to do the second step either."
 msgstr ""
 
-#. Tag: command
-#: installation.xml:852 installation.xml:879
+#. Tag: programlisting
+#: installation.xml:920
 #, no-c-format
-msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgid ""
+"CREATE EXTENSION postgis;                \n"
+"CREATE EXTENSION fuzzystrmatch;\n"
+"CREATE EXTENSION postgis_tiger_geocoder;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:855
+#: installation.xml:921
+#, no-c-format
+msgid ""
+"To confirm your install is working correctly, run this sql in your database:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:922
 #, no-c-format
 msgid ""
-"Edit the <filename>tiger_loader.sql</filename> to the paths of your "
-"executables server etc."
+"SELECT na.address, na.streetname,na.streettypeabbrev, na.zip\n"
+"        FROM normalize_address('1 Devonshire Place, Boston, MA 02109') AS na;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:856
+#: installation.xml:923
+#, no-c-format
+msgid "Which should output"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:924
 #, no-c-format
 msgid ""
-"If you are installing Tiger geocoder for the first time edit either the "
-"<filename>create_geocode.bat</filename> script If you are on windows or the "
-"<filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with "
-"your PostgreSQL specific settings and run the corresponding script from the "
-"commandline. If you don't edit this file, it will just contain common case "
-"locations of items. You can edit the generated script after the fact when "
-"you run the <xref linkend=\"Loader_Generate_Script\"/> command."
+"address | streetname | streettypeabbrev |  zip\n"
+"---------+------------+------------------+-------\n"
+"           1 | Devonshire | Pl               | 02109"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:859
+#: installation.xml:926
 #, no-c-format
 msgid ""
-"Verify that you now have a <varname>tiger</varname> schema in your database "
-"and that it is part of your database search_path. If it is not, add it with "
-"a command something along the line of:"
+"Create a new record in <varname>tiger.loader_platform</varname> table with "
+"the paths of your executables and server."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:927
+#, no-c-format
+msgid ""
+"So for example to create a profile called debbie that follows <code>sh</"
+"code> convention. You would do:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:859
+#: installation.xml:928
 #, no-c-format
-msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
+msgid ""
+"INSERT INTO tiger.loader_platform(os, declare_sect, pgbin, wget, "
+"unzip_command, psql, path_sep, \n"
+"                   loader, environ_set_command, county_process_command)\n"
+"SELECT 'debbie', declare_sect, pgbin, wget, unzip_command, psql, path_sep, \n"
+"           loader, environ_set_command, county_process_command\n"
+"  FROM tiger.loader_platform\n"
+"  WHERE os = 'sh';"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:860
+#: installation.xml:929
 #, no-c-format
 msgid ""
-"The normalizing address functionality works more or less without any data "
-"except for tricky addresses. Run this test and verify things look like this:"
+"And then edit the paths in the <emphasis>declare_sect</emphasis> column to "
+"those that fit Debbie's pg, unzip,shp2pgsql, psql, etc path locations."
 msgstr ""
 
-#. Tag: programlisting
-#: installation.xml:861
+#. Tag: para
+#: installation.xml:931
 #, no-c-format
 msgid ""
-"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
-"Nevada 89101')) As pretty_address;\n"
-"pretty_address\n"
-"---------------------------------------\n"
-"202 E Fremont St, Las Vegas, NV 89101"
+"If you don't edit this <varname>loader_platform</varname> table, it will "
+"just contain common case locations of items and you'll have to edit the "
+"generated script after the script is generated."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:933
+#, no-c-format
+msgid ""
+"Then run the <xref linkend=\"Loader_Generate_Nation_Script\"/> and <xref "
+"linkend=\"Loader_Generate_Script\"/> SQL functions make sure to use the name "
+"of your custom profile. So for example to do the nation load using our new "
+"profile we would:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:934
+#, no-c-format
+msgid "SELECT Loader_Generate_Nation_Script('debbie');"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:865
+#: installation.xml:937
 #, no-c-format
-msgid "Upgrading your Tiger Geocoder Install"
+msgid "Converting a Tiger Geocoder Regular Install to Extension Model"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:866
+#: installation.xml:938
 #, no-c-format
 msgid ""
-"If you have Tiger Geocoder packaged with 2.0+ already installed, you can "
-"upgrade the functions at any time even from an interim tar ball if there are "
-"fixes you badly need."
+"If you installed the tiger geocoder without using the extension model, you "
+"can convert to the extension model as follows:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:882
+#: installation.xml:940
 #, no-c-format
 msgid ""
-"Locate the <filename>upgrade_geocoder.bat</filename> script If you are on "
-"windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/"
-"Unix/Mac OSX. Edit the file to have your postgis database credientials and "
-"run then corresponding script from the commandline."
+"Follow instructions in <xref linkend=\"upgrade_tiger_geocoder\"/> for the "
+"non-extension model upgrade."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:885
+#: installation.xml:941
 #, no-c-format
 msgid ""
-"Next drop all nation tables and load up the new ones. Generate a drop script "
-"with this SQL statement as detailed in <xref linkend="
-"\"Drop_Nation_Tables_Generate_Script\"/>"
+"Connect to your database with psql or pgAdmin and run the following command:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:886
+#: installation.xml:942
 #, no-c-format
-msgid "SELECT drop_nation_tables_generate_script();"
+msgid "CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:949
+#, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Not Using Extensions"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:887
+#: installation.xml:950
 #, no-c-format
-msgid "Run the generated drop SQL statements."
+msgid "First install PostGIS using the prior instructions."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:888
+#: installation.xml:954 installation.xml:1014
 #, no-c-format
 msgid ""
-"Generate a nation load script with this SELECT statement as detailed in "
-"<xref linkend=\"Loader_Generate_Nation_Script\"/>"
+"If you don't have an extras folder, download <ulink url="
+"\"&postgis_download_url;\">&postgis_download_url;</ulink>"
 msgstr ""
 
-#. Tag: emphasis
-#: installation.xml:889
+#. Tag: command
+#: installation.xml:959 installation.xml:1019
 #, no-c-format
-msgid "For windows"
+msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:963 installation.xml:1023
+#, no-c-format
+msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:966
+#, no-c-format
+msgid ""
+"Edit the <filename>tiger_loader_2012.sql</filename> to the paths of your "
+"executables server etc or alternatively you can update the "
+"<varname>loader_platform</varname> table once installed. If you don't edit "
+"this file or the <varname>loader_platform</varname> table, it will just "
+"contain common case locations of items and you'll have to edit the generated "
+"script after the fact when you run the <xref linkend="
+"\"Loader_Generate_Nation_Script\"/> and <xref linkend="
+"\"Loader_Generate_Script\"/> SQL functions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:968
+#, no-c-format
+msgid ""
+"If you are installing Tiger geocoder for the first time edit either the "
+"<filename>create_geocode.bat</filename> script If you are on windows or the "
+"<filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with "
+"your PostgreSQL specific settings and run the corresponding script from the "
+"commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:972
+#, no-c-format
+msgid ""
+"Verify that you now have a <varname>tiger</varname> schema in your database "
+"and that it is part of your database search_path. If it is not, add it with "
+"a command something along the line of:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:890
+#: installation.xml:972
 #, no-c-format
-msgid "SELECT loader_generate_nation_script('windows');"
+msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
 msgstr ""
 
-#. Tag: emphasis
-#: installation.xml:891
+#. Tag: para
+#: installation.xml:973
 #, no-c-format
-msgid "For unix/linux"
+msgid ""
+"The normalizing address functionality works more or less without any data "
+"except for tricky addresses. Run this test and verify things look like this:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:892
+#: installation.xml:974
 #, no-c-format
-msgid "SELECT loader_generate_nation_script('sh');"
+msgid ""
+"SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, "
+"Nevada 89101')) As pretty_address;\n"
+"pretty_address\n"
+"---------------------------------------\n"
+"202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:977
+#, no-c-format
+msgid "Using Address Standardizer Extension with Tiger geocoder"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:893
+#: installation.xml:978
 #, no-c-format
 msgid ""
-"Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on "
-"how to run the generate script. This only needs to be done once."
+"One of the many complaints of folks is the address normalizer function <xref "
+"linkend=\"Normalize_Address\"/> function that normalizes an address for "
+"prepping before geocoding. The normalizer is far from perfect and trying to "
+"patch its imperfectness takes a vast amount of resources. As such we have "
+"integrated with another project that has a much better address standardizer "
+"engine. To use this new address_standardizer, you compile the extension as "
+"described in <xref linkend=\"installing_pagc_address_standardizer\"/> and "
+"install as an extension in your database."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:894
+#: installation.xml:981
 #, no-c-format
 msgid ""
-"You can have a mix of 2010/2011 state tables and can upgrade each state "
-"separately. Before you upgrade a state to 2011, you first need to drop the "
-"2010 tables for that state using <xref linkend="
-"\"Drop_State_Tables_Generate_Script\"/>."
+"Once you install this extension in the same database as you have installed "
+"<code>postgis_tiger_geocoder</code>, then the <xref linkend="
+"\"Pagc_Normalize_Address\"/> can be used instead of <xref linkend="
+"\"Normalize_Address\"/>. This extension is tiger agnostic, so can be used "
+"with other data sources such as international addresses. The tiger geocoder "
+"extension does come packaged with its own custom versions of <xref linkend="
+"\"rulestab\"/> ( <code>tiger.pagc_rules</code>) , <xref linkend=\"gaztab\"/> "
+"(<code>tiger.pagc_gaz</code>), and <xref linkend=\"lextab\"/> (<code>tiger."
+"pagc_lex</code>). These you can add and update to improve your standardizing "
+"experience for your own needs."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:897
+#: installation.xml:984
 #, no-c-format
 msgid "Loading Tiger Data"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:898
+#: installation.xml:985
 #, no-c-format
 msgid ""
 "The instructions for loading data are available in a more detailed form in "
@@ -1581,7 +2134,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:899
+#: installation.xml:986
 #, no-c-format
 msgid ""
 "The load process downloads data from the census website for the respective "
@@ -1595,19 +2148,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:901
+#: installation.xml:988
 #, no-c-format
 msgid "In order to be able to load data you'll need the following tools:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:903
+#: installation.xml:990
 #, no-c-format
 msgid "A tool to unzip the zip files from census website."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:904
+#: installation.xml:991
 #, no-c-format
 msgid ""
 "For Unix like systems: <varname>unzip</varname> executable which is usually "
@@ -1615,7 +2168,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:905
+#: installation.xml:992
 #, no-c-format
 msgid ""
 "For Windows, 7-zip which is a free compress/uncompress tool you can download "
@@ -1623,7 +2176,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:907
+#: installation.xml:994
 #, no-c-format
 msgid ""
 "<filename>shp2pgsql</filename> commandline which is installed by default "
@@ -1631,7 +2184,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:908
+#: installation.xml:995
 #, no-c-format
 msgid ""
 "<filename>wget</filename> which is a web grabber tool usually installed on "
@@ -1639,7 +2192,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:909
+#: installation.xml:996
 #, no-c-format
 msgid ""
 "If you are on windows, you can get pre-compiled binaries from <ulink url="
@@ -1648,28 +2201,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:912
+#: installation.xml:999
 #, no-c-format
 msgid ""
 "If you are upgrading from tiger_2010, you'll need to first generate and run "
 "<xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>. Before you load any "
 "state data, you need to load the nation wide data which you do with <xref "
 "linkend=\"Loader_Generate_Nation_Script\"/>. Which will generate a loader "
-"script for you."
+"script for you. <xref linkend=\"Loader_Generate_Nation_Script\"/> is a one-"
+"time step that should be done for upgrading (from 2010) and for new installs."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:914
+#: installation.xml:1001
 #, no-c-format
 msgid ""
-"To load data refer to <xref linkend=\"Loader_Generate_Script\"/> to generate "
-"a data load script for your platform for the states you desire. Note that "
-"you can install these piecemeal. You don't have to load all the states you "
-"want all at once. You can load them as you need them."
+"To load state data refer to <xref linkend=\"Loader_Generate_Script\"/> to "
+"generate a data load script for your platform for the states you desire. "
+"Note that you can install these piecemeal. You don't have to load all the "
+"states you want all at once. You can load them as you need them."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:917
+#: installation.xml:1004
 #, no-c-format
 msgid ""
 "After the states you desire have been loaded, make sure to run the: "
@@ -1678,7 +2232,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:919
+#: installation.xml:1006
 #, no-c-format
 msgid ""
 "To test that things are working as they should, try to run a geocode on an "
@@ -1686,13 +2240,123 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:924
+#: installation.xml:1009
+#, no-c-format
+msgid "Upgrading your Tiger Geocoder Install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1010
+#, no-c-format
+msgid ""
+"If you have Tiger Geocoder packaged with 2.0+ already installed, you can "
+"upgrade the functions at any time even from an interim tar ball if there are "
+"fixes you badly need. This will only work for Tiger geocoder not installed "
+"with extensions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1026
+#, no-c-format
+msgid ""
+"Locate the <filename>upgrade_geocoder.bat</filename> script If you are on "
+"windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/"
+"Unix/Mac OSX. Edit the file to have your postgis database credentials."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1029
+#, no-c-format
+msgid ""
+"If you are upgrading from 2010 or 2011, make sure to unremark out the loader "
+"script line so you get the latest script for loading 2012 data."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1030
+#, no-c-format
+msgid "Then run th corresponding script from the commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1034
+#, no-c-format
+msgid ""
+"Next drop all nation tables and load up the new ones. Generate a drop script "
+"with this SQL statement as detailed in <xref linkend="
+"\"Drop_Nation_Tables_Generate_Script\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1035
+#, no-c-format
+msgid "SELECT drop_nation_tables_generate_script();"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1036
+#, no-c-format
+msgid "Run the generated drop SQL statements."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1037
+#, no-c-format
+msgid ""
+"Generate a nation load script with this SELECT statement as detailed in "
+"<xref linkend=\"Loader_Generate_Nation_Script\"/>"
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:1038
+#, no-c-format
+msgid "For windows"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1039
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:1040
+#, no-c-format
+msgid "For unix/linux"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1041
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1042
+#, no-c-format
+msgid ""
+"Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on "
+"how to run the generate script. This only needs to be done once."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1043
+#, no-c-format
+msgid ""
+"You can have a mix of 2010/2011 state tables and can upgrade each state "
+"separately. Before you upgrade a state to 2011, you first need to drop the "
+"2010 tables for that state using <xref linkend="
+"\"Drop_State_Tables_Generate_Script\"/>."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1049
 #, no-c-format
 msgid "Create a spatially-enabled database from a template"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:926
+#: installation.xml:1051
 #, no-c-format
 msgid ""
 "Some packaged distributions of PostGIS (in particular the Win32 installers "
@@ -1706,37 +2370,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:937
+#: installation.xml:1062
 #, no-c-format
 msgid "From the shell:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:941
+#: installation.xml:1066
 #, no-c-format
 msgid "# createdb -T template_postgis my_spatial_db"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:943
+#: installation.xml:1068
 #, no-c-format
 msgid "From SQL:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:947
+#: installation.xml:1072
 #, no-c-format
 msgid "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:951
+#: installation.xml:1076
 #, no-c-format
 msgid "Upgrading"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:953
+#: installation.xml:1078
 #, no-c-format
 msgid ""
 "Upgrading existing spatial databases can be tricky as it requires "
@@ -1744,7 +2408,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:958
+#: installation.xml:1083
 #, no-c-format
 msgid ""
 "Unfortunately not all definitions can be easily replaced in a live database, "
@@ -1752,7 +2416,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:963
+#: installation.xml:1088
 #, no-c-format
 msgid ""
 "PostGIS provides a SOFT UPGRADE procedure for minor or bugfix releases, and "
@@ -1760,7 +2424,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:968
+#: installation.xml:1093
 #, no-c-format
 msgid ""
 "Before attempting to upgrade PostGIS, it is always worth to backup your "
@@ -1769,13 +2433,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:975
+#: installation.xml:1100
 #, no-c-format
 msgid "Soft upgrade"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:977
+#: installation.xml:1102
 #, no-c-format
 msgid ""
 "If you installed your database using extensions, you'll need to upgrade "
@@ -1785,13 +2449,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:980
+#: installation.xml:1105
 #, no-c-format
 msgid "Soft Upgrade Pre 9.1+ or without extensions"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:981
+#: installation.xml:1106
 #, no-c-format
 msgid ""
 "This section applies only to those who installed PostGIS not using "
@@ -1800,31 +2464,34 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:982
+#: installation.xml:1107
 #, no-c-format
 msgid "can't drop ... because postgis extension depends on it"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:983
+#: installation.xml:1108
 #, no-c-format
 msgid ""
-"After compiling you should find several <filename>postgis_upgrade*.sql</"
-"filename> files. Install the one for your version of PostGIS. For example "
-"<filename>postgis_upgrade_13_to_15.sql</filename> should be used if you are "
-"upgrading from PostGIS 1.3 to 1.5. If you are moving from PostGIS 1.* to "
-"PostGIS 2.* or from PostGIS 2.* prior to r7409, you need to do a HARD "
-"UPGRADE."
+"After compiling and installing (make install) you should find a "
+"<filename>postgis_upgrade.sql</filename> and <filename>rtpostgis_upgrade."
+"sql</filename> in the installation folders. For example <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. Install the "
+"<filename>postgis_upgrade.sql</filename>. If you have raster functionality "
+"installed, you will also need to install the <filename>/usr/share/"
+"postgresql/9.3/contrib/postgis_upgrade.sql</filename>. If you are moving "
+"from PostGIS 1.* to PostGIS 2.* or from PostGIS 2.* prior to r7409, you need "
+"to do a HARD UPGRADE."
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:989
+#: installation.xml:1112
 #, no-c-format
-msgid "psql -f postgis_upgrade_20_minor.sql -d your_spatial_database"
+msgid "psql -f postgis_upgrade.sql -d your_spatial_database"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:991
+#: installation.xml:1114
 #, no-c-format
 msgid ""
 "The same procedure applies to raster and topology extensions, with upgrade "
@@ -1833,19 +2500,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:999
+#: installation.xml:1122
 #, no-c-format
-msgid "psql -f rtpostgis_upgrade_20_minor.sql -d your_spatial_database"
+msgid "psql -f rtpostgis_upgrade.sql -d your_spatial_database"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1000
+#: installation.xml:1123
 #, no-c-format
-msgid "psql -f topology_upgrade_20_minor.sql -d your_spatial_database"
+msgid "psql -f topology_upgrade.sql -d your_spatial_database"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1003
+#: installation.xml:1126
 #, no-c-format
 msgid ""
 "If you can't find the <filename>postgis_upgrade*.sql</filename> specific for "
@@ -1854,7 +2521,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1009
+#: installation.xml:1132
 #, no-c-format
 msgid ""
 "The <xref linkend=\"PostGIS_Full_Version\"/> function should inform you "
@@ -1863,13 +2530,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1016
+#: installation.xml:1139
 #, no-c-format
 msgid "Soft Upgrade 9.1+ using extensions"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1017
+#: installation.xml:1140
 #, no-c-format
 msgid ""
 "If you originally installed PostGIS with extensions, then you need to "
@@ -1878,7 +2545,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1018
+#: installation.xml:1141
 #, no-c-format
 msgid ""
 "ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
@@ -1886,45 +2553,77 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1019
+#: installation.xml:1142
 #, no-c-format
 msgid "If you get an error notice something like:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1020
+#: installation.xml:1143
 #, no-c-format
 msgid "No migration path defined for ... to &last_release_version;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1021
+#: installation.xml:1144
 #, no-c-format
 msgid ""
 "Then you'll need to backup your database, create a fresh one as described in "
 "<xref linkend=\"create_new_db_extensions\"/> and then restore your backup "
-"ontop of this new database. You might get a message that <code>postgis "
-"extension</code> already installed which you can safely ignore."
+"ontop of this new database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1145
+#, no-c-format
+msgid "If you get a notice message like:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1146
+#, no-c-format
+msgid ""
+"Version \"&last_release_version;\" of extension \"postgis\" is already "
+"installed"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1023
+#: installation.xml:1147
+#, no-c-format
+msgid ""
+"Then everything is already up to date and you can safely ignore it. "
+"<emphasis role=\"bold\">UNLESS</emphasis> you're attempting to upgrade from "
+"an SVN version to the next (which doesn't get a new version number); in that "
+"case you can append \"next\" to the version string, and next time you'll "
+"need to drop the \"next\" suffix again:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1153
+#, no-c-format
+msgid ""
+"ALTER EXTENSION postgis UPDATE TO \"&last_release_version;next\";\n"
+"ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;next\";"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1154
 #, no-c-format
 msgid ""
 "If you installed PostGIS originally without a version specified, you can "
 "often skip the reinstallation of postgis extension before restoring since "
 "the backup just has <code>CREATE EXTENSION postgis</code> and thus picks up "
-"the newest latest version during restore. ."
+"the newest latest version during restore."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1030
+#: installation.xml:1161
 #, no-c-format
 msgid "Hard upgrade"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1032
+#: installation.xml:1163
 #, no-c-format
 msgid ""
 "By HARD UPGRADE we mean full dump/reload of postgis-enabled databases. You "
@@ -1935,7 +2634,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1041
+#: installation.xml:1172
 #, no-c-format
 msgid ""
 "The dump/reload process is assisted by the postgis_restore.pl script which "
@@ -1946,7 +2645,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1050
+#: installation.xml:1181
 #, no-c-format
 msgid ""
 "Supplementary instructions for windows users are available at <ulink url="
@@ -1955,13 +2654,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1053
+#: installation.xml:1184
 #, no-c-format
 msgid "The Procedure is as follows:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1061
+#: installation.xml:1192
 #, no-c-format
 msgid ""
 "Create a \"custom-format\" dump of the database you want to upgrade (let's "
@@ -1971,7 +2670,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1069
+#: installation.xml:1200
 #, no-c-format
 msgid ""
 "pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb."
@@ -1979,7 +2678,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1075
+#: installation.xml:1206
 #, no-c-format
 msgid ""
 "Do a fresh install of PostGIS in a new database -- we'll refer to this "
@@ -1989,7 +2688,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1082
+#: installation.xml:1213
 #, no-c-format
 msgid ""
 "The spatial_ref_sys entries found in your dump will be restored, but they "
@@ -2000,7 +2699,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1092
+#: installation.xml:1223
 #, no-c-format
 msgid ""
 "If your database is really old or you know you've been using long deprecated "
@@ -2013,7 +2712,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1108
+#: installation.xml:1239
 #, no-c-format
 msgid ""
 "Restore your backup into your fresh <varname>newdb</varname> database using "
@@ -2022,7 +2721,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1116
+#: installation.xml:1247
 #, no-c-format
 msgid ""
 "perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost "
@@ -2030,13 +2729,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1122
+#: installation.xml:1253
 #, no-c-format
 msgid "Errors may arise in the following cases:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1128
+#: installation.xml:1259
 #, no-c-format
 msgid ""
 "Some of your views or functions make use of deprecated PostGIS objects. In "
@@ -2049,7 +2748,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1140
+#: installation.xml:1271
 #, no-c-format
 msgid ""
 "Some custom records of spatial_ref_sys in dump file have an invalid SRID "
@@ -2063,7 +2762,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1154
+#: installation.xml:1285
 #, no-c-format
 msgid ""
 "In order to fix this you should copy your custom SRS to a SRID with a valid "
@@ -2073,7 +2772,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1161
+#: installation.xml:1292
 #, no-c-format
 msgid ""
 "ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check "
@@ -2081,19 +2780,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1163
+#: installation.xml:1294
 #, no-c-format
 msgid "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1174
+#: installation.xml:1305
 #, no-c-format
-msgid "Common Problems"
+msgid "Common Problems during installation"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1175
+#: installation.xml:1306
 #, no-c-format
 msgid ""
 "There are several things to check when your installation or upgrade doesn't "
@@ -2101,7 +2800,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1182
+#: installation.xml:1313
 #, no-c-format
 msgid ""
 "Check that you have installed PostgreSQL &min_postgres_version; or newer, "
@@ -2116,13 +2815,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1195
+#: installation.xml:1326
 #, no-c-format
 msgid "SELECT version();"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1197
+#: installation.xml:1328
 #, no-c-format
 msgid ""
 "If you are running an RPM based distribution, you can check for the "
@@ -2131,7 +2830,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1205
+#: installation.xml:1336
 #, no-c-format
 msgid ""
 "If your upgrade fails, make sure you are restoring into a database that "
@@ -2139,13 +2838,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1206
+#: installation.xml:1337
 #, no-c-format
 msgid "SELECT postgis_full_version();"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1210
+#: installation.xml:1341
 #, no-c-format
 msgid ""
 "Also check that configure has correctly detected the location and version of "
@@ -2153,7 +2852,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1217
+#: installation.xml:1348
 #, no-c-format
 msgid ""
 "The output from configure is used to generate the <filename>postgis_config."
@@ -2163,13 +2862,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1230
+#: installation.xml:1361
 #, no-c-format
 msgid "JDBC"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1232
+#: installation.xml:1363
 #, no-c-format
 msgid ""
 "The JDBC extensions provide Java objects corresponding to the internal "
@@ -2178,7 +2877,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1241
+#: installation.xml:1372
 #, no-c-format
 msgid ""
 "Enter the <filename>java/jdbc</filename> sub-directory of the PostGIS "
@@ -2186,7 +2885,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1248
+#: installation.xml:1379
 #, no-c-format
 msgid ""
 "Run the <filename>ant</filename> command. Copy the <filename>postgis.jar</"
@@ -2194,7 +2893,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1256
+#: installation.xml:1387
 #, no-c-format
 msgid ""
 "The JDBC extensions require a PostgreSQL JDBC driver to be present in the "
@@ -2204,13 +2903,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1263
+#: installation.xml:1394
 #, no-c-format
 msgid "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1265
+#: installation.xml:1396
 #, no-c-format
 msgid ""
 "PostgreSQL JDBC drivers can be downloaded from <ulink url=\"http://jdbc."
@@ -2218,13 +2917,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1275
+#: installation.xml:1406
 #, no-c-format
 msgid "Loader/Dumper"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1277
+#: installation.xml:1408
 #, no-c-format
 msgid ""
 "The data loader and dumper are built and installed automatically as part of "
@@ -2232,7 +2931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1282
+#: installation.xml:1413
 #, no-c-format
 msgid ""
 "# cd postgis-&last_release_version;/loader\n"
@@ -2241,7 +2940,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1284
+#: installation.xml:1415
 #, no-c-format
 msgid ""
 "The loader is called <filename>shp2pgsql</filename> and converts ESRI Shape "
diff --git a/doc/po/pt_BR/introduction.xml.po b/doc/po/pt_BR/introduction.xml.po
index 35e697f..5d14ed4 100644
--- a/doc/po/pt_BR/introduction.xml.po
+++ b/doc/po/pt_BR/introduction.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -34,12 +34,15 @@ msgid ""
 "surfaces, networks), desktop user interface tools for viewing and editing "
 "GIS data, and web-based access tools."
 msgstr ""
-"O PostGIS foi desenvolvido pela Refractions Research Inc, como uma tecnologia de banco de dados espacial."
-"Refractions é uma empresa de SIG e consultoria em banco de dados, localizada em Victoria, na Colúmbia "
-"Britânica - Canadá, especializada em integração de dados e desenvolvimento customizado de software. Nós "
-"planejamos e suportamos o desenvolvimento do PostGIS para uma ampla de funcionalidades de SIG, incluindo "
-"suporte a padrões abertos, construções topológicas avançadas (coberturas, superfícies, redes), ferramentas "
-"desktop com interface gráfica para visualização e edição de dados GIS e ferramentas para o acesso web."
+"O PostGIS foi desenvolvido pela Refractions Research Inc, como uma "
+"tecnologia de banco de dados espacial.Refractions é uma empresa de SIG e "
+"consultoria em banco de dados, localizada em Victoria, na Colúmbia Britânica "
+"- Canadá, especializada em integração de dados e desenvolvimento customizado "
+"de software. Nós planejamos e suportamos o desenvolvimento do PostGIS para "
+"uma ampla de funcionalidades de SIG, incluindo suporte a padrões abertos, "
+"construções topológicas avançadas (coberturas, superfícies, redes), "
+"ferramentas desktop com interface gráfica para visualização e edição de "
+"dados GIS e ferramentas para o acesso web."
 
 #. Tag: para
 #: introduction.xml:15
@@ -50,9 +53,10 @@ msgid ""
 "corporations all over the world that gain great benefit from its "
 "functionality and versatility."
 msgstr ""
-"PostGIS é um projeto sob a tutela da fundação OSGeo. PostGIS é melhorado de forma contínua e "
-"financiado por muitos desenvolvedores FOSS4G, bem como por corporações por todo o mundo que se beneficiam "
-"de suas funcionalidades e versatilidade."
+"PostGIS é um projeto sob a tutela da fundação OSGeo. PostGIS é melhorado de "
+"forma contínua e financiado por muitos desenvolvedores FOSS4G, bem como por "
+"corporações por todo o mundo que se beneficiam de suas funcionalidades e "
+"versatilidade."
 
 #. Tag: title
 #: introduction.xml:21
@@ -71,11 +75,13 @@ msgid ""
 "miscellaneous issues involving PostGIS such as developer commit access, new "
 "PSC members or significant API changes."
 msgstr ""
-"O Comitê Diretor do Projeto PostGIS (PSC - Project Steering Comitee, em inglês) é responsável "
-"pela direção geral, ciclos de lançamento, documentação e os esforços para o projeto. Além disso, o "
-"comitê dá suporte ao usuário comum, aceita e aprova novas melhorias da comunidade e vota em questões "
-"diversas envolvendo o PostGIS, como por exemplo, uma permissão de commit direta, novos membros do comitê e "
-"mudanças significativas da API (Application Programming Interface)."
+"O Comitê Diretor do Projeto PostGIS (PSC - Project Steering Comitee, em "
+"inglês) é responsável pela direção geral, ciclos de lançamento, documentação "
+"e os esforços para o projeto. Além disso, o comitê dá suporte ao usuário "
+"comum, aceita e aprova novas melhorias da comunidade e vota em questões "
+"diversas envolvendo o PostGIS, como por exemplo, uma permissão de commit "
+"direta, novos membros do comitê e mudanças significativas da API "
+"(Application Programming Interface)."
 
 #. Tag: term
 #: introduction.xml:31
@@ -91,9 +97,10 @@ msgid ""
 "PostgreSQL releases, spatial index selectivity and binding, loader/dumper, "
 "and Shapefile GUI Loader, integration of new and new function enhancements."
 msgstr ""
-"Coordena o esforço de manutençao e correção de bugs, alinhando as novas versões do PostGIS com "
-"as novas versões do PostgreSQL, seletividade dos índices espaciais, importador/exportador, "
-"e o Shapefile GUI Loader, integração de novas funções e novas melhorias."
+"Coordena o esforço de manutençao e correção de bugs, alinhando as novas "
+"versões do PostGIS com as novas versões do PostgreSQL, seletividade dos "
+"índices espaciais, importador/exportador, e o Shapefile GUI Loader, "
+"integração de novas funções e novas melhorias."
 
 #. Tag: term
 #: introduction.xml:40
@@ -110,249 +117,273 @@ msgid ""
 "Geocoder Support, management functions, and smoke testing new functionality "
 "or major code changes."
 msgstr ""
-"Manutenção do Buildbot, produção das versões experimentais e versões Windows, "
-"documentação, suporte ao usuário na lista de emails do PostGIS, suporte à X3D, "
-"suporte ao TIGER Geocoder, funções de gerenciamento e testes para novas funcionalidades ou grandes "
-"mudanças de código."
+"Manutenção do Buildbot, produção das versões experimentais e versões "
+"Windows, documentação, suporte ao usuário na lista de emails do PostGIS, "
+"suporte à X3D, suporte ao TIGER Geocoder, funções de gerenciamento e testes "
+"para novas funcionalidades ou grandes mudanças de código."
 
 #. Tag: term
 #: introduction.xml:49
 #, no-c-format
-msgid "Paul Ramsey (Chair)"
-msgstr "Paul Ramsey (Presidente)"
+msgid "Bborie Park"
+msgstr ""
 
 #. Tag: para
 #: introduction.xml:51
 #, no-c-format
 msgid ""
+"Raster development, integration with GDAL, raster loader, user support, "
+"general bug fixing, testing on various OS (Slackware, Mac, Windows, and more)"
+msgstr ""
+
+#. Tag: term
+#: introduction.xml:56
+#, no-c-format
+msgid "Paul Ramsey (Chair)"
+msgstr "Paul Ramsey (Presidente)"
+
+#. Tag: para
+#: introduction.xml:58
+#, fuzzy, no-c-format
+msgid ""
 "Co-founder of PostGIS project. General bug fixing, geography support, "
 "geography and geometry index support (2D, 3D, nD index and anything spatial "
-"index), underlying geometry internal structures, GEOS functionality "
-"integration and alignment with GEOS releases, loader/dumper, and Shapefile "
-"GUI loader."
+"index), underlying geometry internal structures, PointCloud (in "
+"development), GEOS functionality integration and alignment with GEOS "
+"releases, loader/dumper, and Shapefile GUI loader."
 msgstr ""
-"Co-fundador do projeto PostGIS. Correção de bugs em geral, suporte ao tipo 'geografia', "
-"suporte a índices geográficos e geométricos (índices 2D, 3D, nD e qualquer índice espacial), "
-"estruturas internas geométricas, integração com as funcionalidades da GEOS e alinhamento com seu ciclo "
-"de lançamento, importador/exportador e importador GUI."
+"Co-fundador do projeto PostGIS. Correção de bugs em geral, suporte ao tipo "
+"'geografia', suporte a índices geográficos e geométricos (índices 2D, 3D, nD "
+"e qualquer índice espacial), estruturas internas geométricas, integração com "
+"as funcionalidades da GEOS e alinhamento com seu ciclo de lançamento, "
+"importador/exportador e importador GUI."
 
 #. Tag: term
-#: introduction.xml:57
+#: introduction.xml:64
 #, no-c-format
 msgid "Sandro Santilli"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:60
+#: introduction.xml:67
 #, no-c-format
 msgid ""
 "Bug fixes and maintenance and integration of new GEOS functionality and "
 "alignment with GEOS releases, Topology support, and Raster framework and low "
 "level api functions."
 msgstr ""
-"Correção de bugs e manutenção, integração de novas funcionalidades da GEOS e alinhamento com o ciclo de vida "
-"da mesma, suporte a Topologia, framework RASTER e funções de baixo nível."
+"Correção de bugs e manutenção, integração de novas funcionalidades da GEOS e "
+"alinhamento com o ciclo de vida da mesma, suporte a Topologia, framework "
+"RASTER e funções de baixo nível."
 
 #. Tag: title
-#: introduction.xml:67
-#, no-c-format
-msgid "Contributors Past and Present"
+#: introduction.xml:74
+#, fuzzy, no-c-format
+msgid "Core Contributors Present"
 msgstr "Colaboradores Passado e Presente"
 
 #. Tag: term
-#: introduction.xml:71
+#: introduction.xml:77
 #, no-c-format
-msgid "Chris Hodgson"
+msgid "Jorge Arévalo"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:73
+#: introduction.xml:79
 #, no-c-format
-msgid ""
-"Prior PSC Member. General development, site and buildbot maintenance, OSGeo "
-"incubation management"
-msgstr ""
-"Antigo membro do comitê. Desenvolvimento em geral, manutenção do website e buildbot, "
-"gerente da incubação na OSGeo."
+msgid "Raster development, GDAL driver support, loader"
+msgstr "Desenvolvimento Raster, suporte do driver GDAL e importador."
 
 #. Tag: term
-#: introduction.xml:77
+#: introduction.xml:84
 #, no-c-format
-msgid "Kevin Neufeld"
+msgid "Nicklas Avén"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:79
-#, no-c-format
+#: introduction.xml:87
+#, fuzzy, no-c-format
 msgid ""
-"Prior PSC Member. Documentation and documentation support tools, advanced "
-"user support on PostGIS newsgroup, and PostGIS maintenance function "
-"enhancements."
+"Distance function enhancements (including 3D distance and relationship "
+"functions) and additions, Tiny WKB output format (TWKB) (in development) and "
+"general user support"
 msgstr ""
-"Antigo membro do comitê. Documentação e suporte a ferramentas de documentação, suporte ao usuário avançado "
-"nas listas de discussão e melhorias em funções do PostGIS."
+"Melhorias nas funções de distância (incluindo distância em 3D e funções de "
+"relacionamento) e somas, testes em windows e suporte geral na lista de "
+"emails."
 
 #. Tag: term
-#: introduction.xml:85
+#: introduction.xml:92
 #, no-c-format
-msgid "Dave Blasby"
+msgid "Olivier Courtin"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:88
+#: introduction.xml:94
 #, no-c-format
-msgid ""
-"The original developer/Co-founder of PostGIS. Dave wrote the server side "
-"objects, index bindings, and many of the server side analytical functions."
+msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
 msgstr ""
-"Desenvolvedor original e co-fundador do PostGIS. Dave escreveu os objetos do servidor, chamadas de índices e muitas das funcionalidades analíticas presentes no servidor."
+"Funções para entrada e saída de XML (KML, GML)/GeoJSon, suporte a 3D e "
+"correção de bugs."
 
 #. Tag: term
-#: introduction.xml:95
+#: introduction.xml:99
 #, no-c-format
-msgid "Jeff Lounsbury"
+msgid "Mateusz Loskot"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:97
+#: introduction.xml:101
 #, no-c-format
 msgid ""
-"Original development of the Shape file loader/dumper. Current PostGIS "
-"Project Owner representative."
+"CMake support for PostGIS, built original raster loader in python and low "
+"level raster api functions"
 msgstr ""
-"Desenvolvedor original do importador/exportador de shapefiles. Atual representante do Dono do Projeto."
 
 #. Tag: term
-#: introduction.xml:102
+#: introduction.xml:106
 #, no-c-format
-msgid "Olivier Courtin"
+msgid "Pierre Racine"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:104
+#: introduction.xml:108
 #, no-c-format
-msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
-msgstr ""
-"Funções para entrada e saída de XML (KML, GML)/GeoJSon, suporte a 3D e correção de bugs."
+msgid "Raster overall architecture, prototyping, programming support"
+msgstr "Arquitetura Raster, prototipação e suporte ao desenvolvimento."
 
 #. Tag: term
-#: introduction.xml:109
+#: introduction.xml:113
 #, no-c-format
-msgid "Mark Leslie"
+msgid "David Zwarg"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:111
+#: introduction.xml:115
 #, no-c-format
-msgid ""
-"Ongoing maintenance and development of core functions. Enhanced curve "
-"support. Shapefile GUI loader."
+msgid "Raster development (mostly map algebra analytic functions)"
 msgstr ""
-"Manutenção e desenvolvimento de funções do núcleo. Melhorias para o suporte a curvas e no importador GUI."
 
-#. Tag: term
-#: introduction.xml:116
-#, no-c-format
-msgid "Pierre Racine"
-msgstr ""
-
-#. Tag: para
-#: introduction.xml:118
-#, no-c-format
-msgid "Raster overall architecture, prototyping, programming support"
-msgstr "Arquitetura Raster, prototipação e suporte ao desenvolvimento."
+#. Tag: title
+#: introduction.xml:121
+#, fuzzy, no-c-format
+msgid "Core Contributors Past"
+msgstr "Colaboradores Passado e Presente"
 
 #. Tag: term
-#: introduction.xml:123
+#: introduction.xml:125
 #, no-c-format
-msgid "Nicklas Avén"
+msgid "Chris Hodgson"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:126
+#: introduction.xml:127
 #, no-c-format
 msgid ""
-"Distance function enhancements (including 3D distance and relationship "
-"functions) and additions, Windows testing, and general user support"
+"Prior PSC Member. General development, site and buildbot maintenance, OSGeo "
+"incubation management"
 msgstr ""
-"Melhorias nas funções de distância (incluindo distância em 3D e funções de relacionamento) e somas, "
-"testes em windows e suporte geral na lista de emails."
+"Antigo membro do comitê. Desenvolvimento em geral, manutenção do website e "
+"buildbot, gerente da incubação na OSGeo."
 
 #. Tag: term
 #: introduction.xml:131
 #, no-c-format
-msgid "Jorge Arévalo"
+msgid "Kevin Neufeld"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:134
-#, no-c-format
-msgid "Raster development, GDAL driver support, loader"
+#: introduction.xml:133
+#, fuzzy, no-c-format
+msgid ""
+"Prior PSC Member. Documentation and documentation support tools, buildbot "
+"maintenance, advanced user support on PostGIS newsgroup, and PostGIS "
+"maintenance function enhancements."
 msgstr ""
-"Desenvolvimento Raster, suporte do driver GDAL e importador."
+"Antigo membro do comitê. Documentação e suporte a ferramentas de "
+"documentação, suporte ao usuário avançado nas listas de discussão e "
+"melhorias em funções do PostGIS."
 
 #. Tag: term
 #: introduction.xml:139
 #, no-c-format
-msgid "Bborie Park"
+msgid "Dave Blasby"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:141
+#: introduction.xml:142
 #, no-c-format
-msgid "Raster development, raster loader"
+msgid ""
+"The original developer/Co-founder of PostGIS. Dave wrote the server side "
+"objects, index bindings, and many of the server side analytical functions."
 msgstr ""
-"Desenvolvimento raster, importador raster."
+"Desenvolvedor original e co-fundador do PostGIS. Dave escreveu os objetos do "
+"servidor, chamadas de índices e muitas das funcionalidades analíticas "
+"presentes no servidor."
 
 #. Tag: term
-#: introduction.xml:146
+#: introduction.xml:149
 #, no-c-format
-msgid "Mateusz Loskot"
+msgid "Jeff Lounsbury"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:148
+#: introduction.xml:151
 #, no-c-format
-msgid "Raster loader, low level raster api functions"
+msgid ""
+"Original development of the Shape file loader/dumper. Current PostGIS "
+"Project Owner representative."
 msgstr ""
-"Desenvolvimento no importador raster e suporte a funções de baixo nível da API raster."
+"Desenvolvedor original do importador/exportador de shapefiles. Atual "
+"representante do Dono do Projeto."
 
 #. Tag: term
-#: introduction.xml:153
+#: introduction.xml:157
 #, no-c-format
-msgid "David Zwarg"
+msgid "Mark Leslie"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:156
+#: introduction.xml:159
 #, no-c-format
-msgid "Raster development"
-msgstr "Desenvolvimento Raster"
+msgid ""
+"Ongoing maintenance and development of core functions. Enhanced curve "
+"support. Shapefile GUI loader."
+msgstr ""
+"Manutenção e desenvolvimento de funções do núcleo. Melhorias para o suporte "
+"a curvas e no importador GUI."
+
+#. Tag: title
+#: introduction.xml:165
+#, fuzzy, no-c-format
+msgid "Other Contributors"
+msgstr "Outros colaboradores: indivíduos"
 
 #. Tag: term
-#: introduction.xml:161
+#: introduction.xml:168
 #, no-c-format
-msgid "Other contributors: Individuals"
-msgstr "Outros colaboradores: indivíduos"
+msgid "Individual Contributors"
+msgstr ""
 
 #. Tag: para
-#: introduction.xml:164
-#, no-c-format
+#: introduction.xml:171
+#, fuzzy, no-c-format
 msgid ""
 "In alphabetical order: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas "
 "Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, "
 "Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. "
 "Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David "
 "Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald "
-"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, Jeff "
-"Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus Foerster, Kris Jurka, "
-"Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de Reyna, Mark Sondheim, "
-"Markus Schaber, Maxime Guillaud, Maxime van Noppen, Michael Fuhr, Nikita "
-"Shulga, Norman Vine, Rafal Magda, Ralph Mason, Richard Greenwood, Silvio "
-"Grosso, Steffen Macke, Stephen Frost, Tom van Tilburg, Vincent Picavet"
-msgstr ""
-"Em ordem alfabética: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas "
-"Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, "
+"Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, "
+"Jason Smith, Jeff Adams, Jose Carlos Martinez Llari, Kashif Rasul, Klaus "
+"Foerster, Kris Jurka, Leo Hsu, Loic Dachary, Luca S. Percich, Maria Arias de "
+"Reyna, Mark Sondheim, Markus Schaber, Maxime Guillaud, Maxime van Noppen, "
+"Michael Fuhr, Nathan Wagner, Nathaniel Clay, Nikita Shulga, Norman Vine, "
+"Rafal Magda, Ralph Mason, Richard Greenwood, Silvio Grosso, Steffen Macke, "
+"Stephen Frost, Tom van Tilburg, Vincent Mora, Vincent Picavet"
+msgstr ""
+"Em ordem alfabética: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas Forø "
+"Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, "
 "Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. "
 "Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David "
 "Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald "
@@ -364,35 +395,36 @@ msgstr ""
 "Grosso, Steffen Macke, Stephen Frost, Tom van Tilburg, Vincent Picavet"
 
 #. Tag: term
-#: introduction.xml:221
-#, no-c-format
-msgid "Other contributors: Corporate Sponsors"
+#: introduction.xml:232
+#, fuzzy, no-c-format
+msgid "Corporate Sponsors"
 msgstr "Outros colaboradores: Patrocinadores"
 
 #. Tag: para
-#: introduction.xml:224
+#: introduction.xml:235
 #, no-c-format
 msgid ""
 "These are corporate entities that have contributed developer time, hosting, "
 "or direct monetary funding to the PostGIS project"
 msgstr ""
-"Estas são entidades corporativas que contribuiram com horas home, hospedagem ou suporte monetário direto "
-"ao projeto PostGIS"
+"Estas são entidades corporativas que contribuiram com horas home, hospedagem "
+"ou suporte monetário direto ao projeto PostGIS"
 
 #. Tag: para
-#: introduction.xml:225
-#, no-c-format
+#: introduction.xml:236
+#, fuzzy, no-c-format
 msgid ""
 "In alphabetical order: Arrival 3D, Associazione Italiana per l'Informazione "
 "Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, "
 "City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos "
 "Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala "
 "Consulting Engineers, LisaSoft, Logical Tracking & Tracing International "
-"AG, Michigan Tech Research Institute, Norwegian Forest and Landscape "
-"Institute, OpenGeo, OSGeo, Oslandia, Paragon Corporation, R3 GIS,, "
-"Refractions Research, Regione Toscana-SIGTA, Safe Software, Sirius "
-"Corporation plc, Stadt Uster, UC Davis Center for Vectorborne Diseases, "
-"University of Laval, U.S Department of State (HIU), Vizzuality, Zonar Systems"
+"AG, Michigan Tech Research Institute, Natural Resources Canada, Norwegian "
+"Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Palantir "
+"Technologies, Paragon Corporation, R3 GIS, Refractions Research, Regione "
+"Toscana-SIGTA, Safe Software, Sirius Corporation plc, Stadt Uster, UC Davis "
+"Center for Vectorborne Diseases, University of Laval, U.S Department of "
+"State (HIU), Vizzuality, Zonar Systems"
 msgstr ""
 "Em ordem alfabética: Arrival 3D, Associazione Italiana per l'Informazione "
 "Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, "
@@ -406,14 +438,14 @@ msgstr ""
 "University of Laval, U.S Department of State (HIU), Vizzuality, Zonar Systems"
 
 #. Tag: term
-#: introduction.xml:265
+#: introduction.xml:277
 #, no-c-format
 msgid "Crowd Funding Campaigns"
 msgstr "Campanhas de financiamento coletivo"
 
 #. Tag: para
-#: introduction.xml:268
-#, no-c-format
+#: introduction.xml:280
+#, fuzzy, no-c-format
 msgid ""
 "Crowd funding campaigns are campaigns we run to get badly wanted features "
 "funded that can service a large number of people. Each campaign is "
@@ -421,21 +453,22 @@ msgid ""
 "sponsor chips in a small fraction of the needed funding and with enough "
 "people/organizations contributing, we have the funds to pay for the work "
 "that will help many. If you have an idea for a feature you think many others "
-"would be willing to co-fund, please post to the <ulink url=\"http://www."
-"postgis.org/mailman/listinfo/postgis-users\">PostGIS newsgroup</ulink> your "
-"thoughts and together we can make it happen."
+"would be willing to co-fund, please post to the <ulink url=\"http://postgis."
+"net/mailman/listinfo/postgis-users\">PostGIS newsgroup</ulink> your thoughts "
+"and together we can make it happen."
 msgstr ""
-"Campanhas de financiamento coletivo são esforços que conduzimos para conseguirmos "
-"implementar funções que são desejadas pela comunidade em geral. Cada campanha "
-"é focada em um conjunto particular de funcionalidades. Cada patrocinador contribui "
-"com uma fração do valor que precisamos e caso pessoas/entidades suficientes contribuam "
-"custeamos o trabalho que irá beneficar muitos. Se você tem alguma idéia para uma funcionalidade "
-"que você acredite que outros estejam dispostos a financiar, poste uma mensagem no link "
-"<ulink url=\"http://www.postgis.org/mailman/listinfo/postgis-users\">grupo PostGIS</ulink> com suas idéias "
-"e juntos podemos fazer acontecer."
+"Campanhas de financiamento coletivo são esforços que conduzimos para "
+"conseguirmos implementar funções que são desejadas pela comunidade em geral. "
+"Cada campanha é focada em um conjunto particular de funcionalidades. Cada "
+"patrocinador contribui com uma fração do valor que precisamos e caso pessoas/"
+"entidades suficientes contribuam custeamos o trabalho que irá beneficar "
+"muitos. Se você tem alguma idéia para uma funcionalidade que você acredite "
+"que outros estejam dispostos a financiar, poste uma mensagem no link <ulink "
+"url=\"http://www.postgis.org/mailman/listinfo/postgis-users\">grupo PostGIS</"
+"ulink> com suas idéias e juntos podemos fazer acontecer."
 
 #. Tag: para
-#: introduction.xml:269
+#: introduction.xml:281
 #, no-c-format
 msgid ""
 "PostGIS 2.0.0 was the first release we tried this strategy. We used <ulink "
@@ -443,11 +476,11 @@ msgid ""
 "successful campaigns out of it."
 msgstr ""
 "A versão 2.0.0 foi a primeira em que testamos esta estratégia. Utilizamos o "
-"<ulink url=\"http://www.pledgebank.com\">PledgeBank</ulink> e conseguimos realizar duas "
-"campanhas bem sucedidas."
+"<ulink url=\"http://www.pledgebank.com\">PledgeBank</ulink> e conseguimos "
+"realizar duas campanhas bem sucedidas."
 
 #. Tag: para
-#: introduction.xml:270
+#: introduction.xml:282
 #, no-c-format
 msgid ""
 "<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
@@ -456,68 +489,74 @@ msgid ""
 "support in 2.0.0. It happened."
 msgstr ""
 "<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role="
-"\"bold\">postgistopology</emphasis></ulink> - 10 patrocinadores, cada um contribuiu com USD $250,00 para "
-"a construção da função toTopoGeometry e melhorias gerais no suporte a topologia da versão 2.0.0. Aconteceu!"
+"\"bold\">postgistopology</emphasis></ulink> - 10 patrocinadores, cada um "
+"contribuiu com USD $250,00 para a construção da função toTopoGeometry e "
+"melhorias gerais no suporte a topologia da versão 2.0.0. Aconteceu!"
 
 #. Tag: para
-#: introduction.xml:271
-#, no-c-format
+#: introduction.xml:283
+#, fuzzy, no-c-format
 msgid ""
 "<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
 "\"bold\">postgis64windows</emphasis></ulink> - 20 someodd sponsors each "
 "contributed $100 USD to pay for the work needed to work out PostGIS 64-bit "
-"on windows issues. It happened. We now have a 64-bit beta release for "
-"PostGIS 2.0.0 and a final one planned for release that will be available on "
-"PostgreSQL stack builder."
+"issues on windows. It happened. We now have a 64-bit release for PostGIS "
+"2.0.1 available on PostgreSQL stack builder."
 msgstr ""
 "<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role="
-"\"bold\">postgis64windows</emphasis></ulink> - 20 patrocinadores, contribuiram cada um "
-"com USD $100 para custear o trabalho necessário para um lançamento do PostGIS 64-bits para Windows. "
-"Aconteceu e agora temos uma release beta 64bits disponível para o PostGIS 2.0.0 e uma versão final planejada "
-"que será disponibilizada junto com o stack builder."
+"\"bold\">postgis64windows</emphasis></ulink> - 20 patrocinadores, "
+"contribuiram cada um com USD $100 para custear o trabalho necessário para um "
+"lançamento do PostGIS 64-bits para Windows. Aconteceu e agora temos uma "
+"release beta 64bits disponível para o PostGIS 2.0.0 e uma versão final "
+"planejada que será disponibilizada junto com o stack builder."
 
 #. Tag: term
-#: introduction.xml:276
+#: introduction.xml:288
 #, no-c-format
 msgid "Important Support Libraries"
 msgstr "Bibliotecas importantes"
 
 #. Tag: para
-#: introduction.xml:279
+#: introduction.xml:291
 #, no-c-format
 msgid ""
 "The <ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink> geometry "
 "operations library, and the algorithmic work of Martin Davis in making it "
 "all work, ongoing maintenance and support of Mateusz Loskot, Sandro Santilli "
 "(strk), Paul Ramsey and others."
-msgstr "A <ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink>, biblioteca geométrica e o trabalho em algoritmos "
-"de Martin Davis, manutenção autal de Mateusz Loskot, Sandro Santilli (strk), Paul Ramsey e outros."
+msgstr ""
+"A <ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink>, biblioteca "
+"geométrica e o trabalho em algoritmos de Martin Davis, manutenção autal de "
+"Mateusz Loskot, Sandro Santilli (strk), Paul Ramsey e outros."
 
 #. Tag: para
-#: introduction.xml:284
+#: introduction.xml:296
 #, no-c-format
 msgid ""
 "The <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> Geospatial Data "
 "Abstraction Library, by Frank Warmerdam and others is used to power much of "
 "the raster functionality introduced in PostGIS 2.0.0. In kind, improvements "
 "needed in GDAL to support PostGIS are contributed back to the GDAL project."
-msgstr "A <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink>, Geospatial Data Abstraction Library "
-"(Biblioteca de abstração de dados geoespaciais), por Frank Wamerdam e outros é utilizada para rodar muitas das "
-"funcionalidades raster introduzidas na versão 2.0.0. Em tempo, as melhorias necessárias na GDAL para suportar o "
-"PostGIS tem sido contribuídas de volta para o projeto."
+msgstr ""
+"A <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink>, Geospatial Data "
+"Abstraction Library (Biblioteca de abstração de dados geoespaciais), por "
+"Frank Wamerdam e outros é utilizada para rodar muitas das funcionalidades "
+"raster introduzidas na versão 2.0.0. Em tempo, as melhorias necessárias na "
+"GDAL para suportar o PostGIS tem sido contribuídas de volta para o projeto."
 
 #. Tag: para
-#: introduction.xml:289
+#: introduction.xml:301
 #, no-c-format
 msgid ""
 "The <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> cartographic "
 "projection library, and the work of Gerald Evenden and Frank Warmerdam in "
 "creating and maintaining it."
-msgstr "A biblioteca <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> e o trabalho de Gerald Evenden "
-"e Frank Wamerdam em sua criação e manutenção."
+msgstr ""
+"A biblioteca <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> e o "
+"trabalho de Gerald Evenden e Frank Wamerdam em sua criação e manutenção."
 
 #. Tag: para
-#: introduction.xml:293
+#: introduction.xml:305
 #, no-c-format
 msgid ""
 "Last but not least, the <ulink url=\"http://www.postgresql.org\">PostgreSQL "
@@ -525,85 +564,106 @@ msgid ""
 "flexibility of PostGIS would not be possible without the extensibility, "
 "great query planner, GIST index, and plethora of SQL features provided by "
 "PostgreSQL."
-msgstr "Por último, mas não menos importante, o <ulink url=\"http://www.postgresql.org\">PostgreSQL "
-"DBMS</ulink>, o gigante sobre qual o PostGIS se apóia. Muito da velocidade e flexibilidade do PostGIS não seria "
-"possível sem a extensibilidade, um grande analisador de consultas, índice GIST e uma variedade de funcionalidades SQL dadas "
-"pelos PostgreSQl."
+msgstr ""
+"Por último, mas não menos importante, o <ulink url=\"http://www.postgresql."
+"org\">PostgreSQL DBMS</ulink>, o gigante sobre qual o PostGIS se apóia. "
+"Muito da velocidade e flexibilidade do PostGIS não seria possível sem a "
+"extensibilidade, um grande analisador de consultas, índice GIST e uma "
+"variedade de funcionalidades SQL dadas pelos PostgreSQl."
 
 #. Tag: title
-#: introduction.xml:302
+#: introduction.xml:314
 #, no-c-format
 msgid "More Information"
 msgstr "Mais informações"
 
 #. Tag: para
-#: introduction.xml:306
-#, no-c-format
+#: introduction.xml:318
+#, fuzzy, no-c-format
 msgid ""
 "The latest software, documentation and news items are available at the "
-"PostGIS web site, <ulink url=\"http://www.postgis.org\">http://www.postgis."
-"org</ulink>."
-msgstr "A última versão, documentação e novidades estão disponíveis no "
-"site do PostGIS, <ulink url=\"http://www.postgis.org\">http://www.postgis."
-"org</ulink>."
+"PostGIS web site, <ulink url=\"http://postgis.net\">http://postgis.net</"
+"ulink>."
+msgstr ""
+"A última versão, documentação e novidades estão disponíveis no site do "
+"PostGIS, <ulink url=\"http://www.postgis.org\">http://www.postgis.org</"
+"ulink>."
 
 #. Tag: para
-#: introduction.xml:312
+#: introduction.xml:324
 #, no-c-format
 msgid ""
 "More information about the GEOS geometry operations library is available "
 "at<ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/</"
 "ulink>."
-msgstr "Mais informações sobre a biblioteca GEOS estão disponíveis em "
-"<ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/</ulink>."
+msgstr ""
+"Mais informações sobre a biblioteca GEOS estão disponíveis em <ulink url="
+"\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/</ulink>."
 
 #. Tag: para
-#: introduction.xml:318
+#: introduction.xml:330
 #, no-c-format
 msgid ""
-"More information about the Proj4 reprojection library is available at "
-"<ulink url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
+"More information about the Proj4 reprojection library is available at <ulink "
+"url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
 msgstr ""
-"Mais informações sobre a biblioteca Proj4 estão disponíveis em "
-"<ulink url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
+"Mais informações sobre a biblioteca Proj4 estão disponíveis em <ulink url="
+"\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
 
 #. Tag: para
-#: introduction.xml:324
+#: introduction.xml:336
 #, no-c-format
 msgid ""
 "More information about the PostgreSQL database server is available at the "
 "PostgreSQL main site <ulink url=\"http://www.postgresql.org\">http://www."
 "postgresql.org</ulink>."
-msgstr "Mais informações sobre o PostgreSQL estão disponíveis em <ulink url=\"http://www.postgresql.org\">http://www."
-"postgresql.org</ulink>."
+msgstr ""
+"Mais informações sobre o PostgreSQL estão disponíveis em <ulink url=\"http://"
+"www.postgresql.org\">http://www.postgresql.org</ulink>."
 
 #. Tag: para
-#: introduction.xml:330
+#: introduction.xml:342
 #, no-c-format
 msgid ""
 "More information about GiST indexing is available at the PostgreSQL GiST "
 "development site, <ulink url=\"http://www.sai.msu.su/~megera/postgres/gist/"
 "\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
-msgstr "Mais informações sobre o índice GiST estão disponíveis no site de desenvolvimento do PostgreSQL em <ulink url=\"http://www.sai.msu.su/~megera/postgres/gist/"
-"\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
+msgstr ""
+"Mais informações sobre o índice GiST estão disponíveis no site de "
+"desenvolvimento do PostgreSQL em <ulink url=\"http://www.sai.msu.su/~megera/"
+"postgres/gist/\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
 
 #. Tag: para
-#: introduction.xml:336
+#: introduction.xml:348
 #, no-c-format
 msgid ""
 "More information about MapServer internet map server is available at <ulink "
 "url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
-msgstr "Mais informações sobre o MapServer estão disponíveis em <ulink "
-"url=\"http://mapserver.org/\">http://mapserver.org</ulink>"
+msgstr ""
+"Mais informações sobre o MapServer estão disponíveis em <ulink url=\"http://"
+"mapserver.org/\">http://mapserver.org</ulink>"
 
 #. Tag: para
-#: introduction.xml:342
+#: introduction.xml:354
 #, no-c-format
 msgid ""
 "The "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple "
 "Features for Specification for SQL</ulink>" is available at the OpenGIS "
 "Consortium web site: <ulink url=\"http://www.opengeospatial.org/\">http://"
 "www.opengeospatial.org/</ulink>."
-msgstr "As especificações "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple "
-"Features for Specification for SQL</ulink>" estão disponíveis no site da OGC: "
-"<ulink url=\"http://www.opengeospatial.org/\">http://www.opengeospatial.org/</ulink>."
+msgstr ""
+"As especificações "<ulink url=\"http://www.opengeospatial.org/standards/"
+"sfs\">Simple Features for Specification for SQL</ulink>" estão "
+"disponíveis no site da OGC: <ulink url=\"http://www.opengeospatial.org/"
+"\">http://www.opengeospatial.org/</ulink>."
+
+#~ msgid "Raster development, raster loader"
+#~ msgstr "Desenvolvimento raster, importador raster."
+
+#~ msgid "Raster loader, low level raster api functions"
+#~ msgstr ""
+#~ "Desenvolvimento no importador raster e suporte a funções de baixo nível "
+#~ "da API raster."
+
+#~ msgid "Raster development"
+#~ msgstr "Desenvolvimento Raster"
diff --git a/doc/po/pt_BR/performance_tips.xml.po b/doc/po/pt_BR/performance_tips.xml.po
index b03dee1..91b2e3e 100644
--- a/doc/po/pt_BR/performance_tips.xml.po
+++ b/doc/po/pt_BR/performance_tips.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -122,9 +122,9 @@ msgstr ""
 #: performance_tips.xml:61
 #, no-c-format
 msgid ""
-"SELECT AddGeometryColumn"
-"('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
-"UPDATE mytable SET bbox = ST_Envelope(ST_Force_2d(the_geom));"
+"SELECT "
+"AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
+"UPDATE mytable SET bbox = ST_Envelope(ST_Force2D(the_geom));"
 msgstr ""
 
 #. Tag: para
@@ -232,7 +232,7 @@ msgstr ""
 msgid ""
 "Sometimes, you happen to have 3D or 4D data in your table, but always access "
 "it using OpenGIS compliant ST_AsText() or ST_AsBinary() functions that only "
-"output 2D geometries. They do this by internally calling the ST_Force_2d() "
+"output 2D geometries. They do this by internally calling the ST_Force2D() "
 "function, which introduces a significant overhead for large geometries. To "
 "avoid this overhead, it may be feasible to pre-drop those additional "
 "dimensions once and forever:"
@@ -242,7 +242,7 @@ msgstr ""
 #: performance_tips.xml:116
 #, no-c-format
 msgid ""
-"UPDATE mytable SET the_geom = ST_Force_2d(the_geom); \n"
+"UPDATE mytable SET the_geom = ST_Force2D(the_geom); \n"
 "VACUUM FULL ANALYZE mytable;"
 msgstr ""
 
diff --git a/doc/po/pt_BR/postgis.xml.po b/doc/po/pt_BR/postgis.xml.po
index b6bdc14..24ca75d 100644
--- a/doc/po/pt_BR/postgis.xml.po
+++ b/doc/po/pt_BR/postgis.xml.po
@@ -1,28 +1,36 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Marcelo Soares Souza <marcelo at juntadados.org>, 2014
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
+"PO-Revision-Date: 2014-02-05 16:36+0000\n"
+"Last-Translator: Marcelo Soares Souza <marcelo at juntadados.org>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
+"postgis-1/language/pt_BR/)\n"
+"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #. Tag: title
-#: postgis.xml:106
+#: postgis.xml:127
 #, no-c-format
 msgid "PostGIS &last_release_version; Manual"
+msgstr "PostGIS &last_release_version; Manual"
+
+#. Tag: corpauthor
+#: postgis.xml:131
+#, no-c-format
+msgid "The PostGIS Development Group"
 msgstr ""
 
 #. Tag: affiliation
-#: postgis.xml:114
+#: postgis.xml:137
 #, no-c-format
 msgid ""
 "<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
@@ -30,9 +38,13 @@ msgid ""
 "state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
 "address>"
 msgstr ""
+"<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</"
+"ulink></orgname> <address><city>Victoria</city> <state>British Columbia</"
+"state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></"
+"address>"
 
 #. Tag: para
-#: postgis.xml:124
+#: postgis.xml:151
 #, no-c-format
 msgid ""
 "PostGIS is an extension to the PostgreSQL object-relational database system "
@@ -40,20 +52,31 @@ msgid ""
 "the database. PostGIS includes support for GiST-based R-Tree spatial "
 "indexes, and functions for analysis and processing of GIS objects."
 msgstr ""
+"PostGIS é uma extensão para o sistema de banco de dados objeto-relacional "
+"PostgreSQL que permite que objetos SIG (Sistema de Informação Geográfica) "
+"sejam armazenados em banco de dados. O PostGIS inclui suporte a índices "
+"espaciais baseado em GiST R-Tree, e funções para analise e processamento de "
+"objetos SIG."
 
 #. Tag: para
-#: postgis.xml:133
+#: postgis.xml:160
 #, no-c-format
 msgid "This is the manual for version &last_release_version;"
-msgstr ""
+msgstr "Este é o manual para a versão &last_release_version;"
 
 #. Tag: para
-#: postgis.xml:134
-#, no-c-format
+#: postgis.xml:161
+#, fuzzy, no-c-format
 msgid ""
 "This work is licensed under a <ulink url=\"http://creativecommons.org/"
 "licenses/by-sa/3.0/\">Creative Commons Attribution-Share Alike 3.0 License</"
 "ulink>. Feel free to use this material any way you like, but we ask that you "
 "attribute credit to the PostGIS Project and wherever possible, a link back "
-"to <ulink url=\"http://www.postgis.org\">http://www.postgis.org</ulink>."
+"to <ulink url=\"http://postgis.net\">http://postgis.net</ulink>."
 msgstr ""
+"Este trabalho esta licenciado sobre a <ulink url=\"http://creativecommons."
+"org/licenses/by-sa/3.0/\">Creative Commons Attribution-Share Alike 3.0 "
+"License</ulink>. Sinta-se livre para utilizar este material como quiser, mas "
+"pedimos que você atribua o crédito ao projeto PostGIS e sempre que possível "
+"cite o link <ulink url=\"http://www.postgis.org\">http://www.postgis.org</"
+"ulink>."
diff --git a/doc/po/pt_BR/reference.xml.po b/doc/po/pt_BR/reference.xml.po
index 2f39761..2049587 100644
--- a/doc/po/pt_BR/reference.xml.po
+++ b/doc/po/pt_BR/reference.xml.po
@@ -1,25 +1,27 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Marcelo Soares Souza <marcelo at juntadados.org>, 2014
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-02-05 17:53+0000\n"
+"Last-Translator: Marcelo Soares Souza <marcelo at juntadados.org>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
+"postgis-1/language/pt_BR/)\n"
+"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #. Tag: title
 #: reference.xml:3
 #, no-c-format
 msgid "PostGIS Reference"
-msgstr ""
+msgstr "Referência do PostGIS"
 
 #. Tag: para
 #: reference.xml:5
@@ -29,6 +31,9 @@ msgid ""
 "need. There are other functions which are required support functions to the "
 "PostGIS objects which are not of use to a general user."
 msgstr ""
+"As funções descritas abaixo são as que um usuário do PostGIS devem precisar. "
+"Existem outras funções que são necessárias para suportar os objetos PostGIS "
+"mas que não são de uso comum pelo usuário."
 
 #. Tag: para
 #: reference.xml:11
@@ -42,14 +47,26 @@ msgid ""
 "documentation are deprecated and will be removed in a future release so STOP "
 "USING THEM."
 msgstr ""
+"O PostGIS iniciou uma transição da convenção de nomenclatura existente para "
+"uma convenção em torno do SQL-MM. Como resultado, a maioria das funções que "
+"você conhece e ama foram renomeadas usando o padrão de tipo espacial (com o "
+"prefixo ST). As funções anteriores ainda existem, porém não são listadas "
+"nesta documentação onde as funções atualizadas são equivalentes. As funções "
+"que não possuem prefixo ST_ não listadas nesta documentação estão obsoletas "
+"e serão removidas em futuros lançamentos, então PAREM DE UTILIZÁ-LAS."
 
 #. Tag: chapter
 #: reference.xml:16
-#, no-c-format
+#, fuzzy, no-c-format
 msgid ""
+"&reference_type; &reference_guc; &reference_management; "
+"&reference_constructor; &reference_accessor; &reference_editor; "
+"&reference_output; &reference_operator; &reference_measure; "
+"&reference_sfcgal; &reference_processing; &reference_lrs; "
+"&reference_transaction; &reference_misc; &reference_exception;"
+msgstr ""
 "&reference_type; &reference_management; &reference_constructor; "
 "&reference_accessor; &reference_editor; &reference_output; "
 "&reference_operator; &reference_measure; &reference_processing; "
 "&reference_lrs; &reference_transaction; &reference_misc; "
 "&reference_exception;"
-msgstr ""
diff --git a/doc/po/pt_BR/reference_accessor.xml.po b/doc/po/pt_BR/reference_accessor.xml.po
index eee2bd4..52e915c 100644
--- a/doc/po/pt_BR/reference_accessor.xml.po
+++ b/doc/po/pt_BR/reference_accessor.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -45,26 +45,26 @@ msgstr ""
 
 #. Tag: title
 #: reference_accessor.xml:24 reference_accessor.xml:81
-#: reference_accessor.xml:128 reference_accessor.xml:176
-#: reference_accessor.xml:224 reference_accessor.xml:273
-#: reference_accessor.xml:325 reference_accessor.xml:374
-#: reference_accessor.xml:435 reference_accessor.xml:486
-#: reference_accessor.xml:545 reference_accessor.xml:604
-#: reference_accessor.xml:659 reference_accessor.xml:703
-#: reference_accessor.xml:754 reference_accessor.xml:811
-#: reference_accessor.xml:876 reference_accessor.xml:928
-#: reference_accessor.xml:987 reference_accessor.xml:1033
-#: reference_accessor.xml:1068 reference_accessor.xml:1107
-#: reference_accessor.xml:1147 reference_accessor.xml:1193
-#: reference_accessor.xml:1232 reference_accessor.xml:1265
-#: reference_accessor.xml:1306 reference_accessor.xml:1350
-#: reference_accessor.xml:1407 reference_accessor.xml:1460
-#: reference_accessor.xml:1503 reference_accessor.xml:1554
-#: reference_accessor.xml:1618 reference_accessor.xml:1661
-#: reference_accessor.xml:1706 reference_accessor.xml:1752
-#: reference_accessor.xml:1794 reference_accessor.xml:1839
-#: reference_accessor.xml:1885 reference_accessor.xml:1927
-#: reference_accessor.xml:1973 reference_accessor.xml:2014
+#: reference_accessor.xml:129 reference_accessor.xml:177
+#: reference_accessor.xml:225 reference_accessor.xml:276
+#: reference_accessor.xml:328 reference_accessor.xml:377
+#: reference_accessor.xml:438 reference_accessor.xml:489
+#: reference_accessor.xml:548 reference_accessor.xml:607
+#: reference_accessor.xml:662 reference_accessor.xml:706
+#: reference_accessor.xml:757 reference_accessor.xml:814
+#: reference_accessor.xml:879 reference_accessor.xml:931
+#: reference_accessor.xml:990 reference_accessor.xml:1036
+#: reference_accessor.xml:1071 reference_accessor.xml:1110
+#: reference_accessor.xml:1150 reference_accessor.xml:1194
+#: reference_accessor.xml:1256 reference_accessor.xml:1297
+#: reference_accessor.xml:1341 reference_accessor.xml:1398
+#: reference_accessor.xml:1454 reference_accessor.xml:1497
+#: reference_accessor.xml:1550 reference_accessor.xml:1617
+#: reference_accessor.xml:1660 reference_accessor.xml:1705
+#: reference_accessor.xml:1751 reference_accessor.xml:1793
+#: reference_accessor.xml:1838 reference_accessor.xml:1884
+#: reference_accessor.xml:1926 reference_accessor.xml:1972
+#: reference_accessor.xml:2013
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -95,8 +95,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:38 reference_accessor.xml:388
-#: reference_accessor.xml:1152
+#: reference_accessor.xml:38 reference_accessor.xml:391
+#: reference_accessor.xml:1155
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -104,89 +104,90 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:39 reference_accessor.xml:134
-#: reference_accessor.xml:390 reference_accessor.xml:497
-#: reference_accessor.xml:550 reference_accessor.xml:830
-#: reference_accessor.xml:996 reference_accessor.xml:1272
-#: reference_accessor.xml:1314 reference_accessor.xml:1423
-#: reference_accessor.xml:1757
+#: reference_accessor.xml:39 reference_accessor.xml:135
+#: reference_accessor.xml:393 reference_accessor.xml:500
+#: reference_accessor.xml:553 reference_accessor.xml:833
+#: reference_accessor.xml:999 reference_accessor.xml:1263
+#: reference_accessor.xml:1305 reference_accessor.xml:1414
+#: reference_accessor.xml:1756
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:40 reference_accessor.xml:136
-#: reference_accessor.xml:393 reference_accessor.xml:559
-#: reference_accessor.xml:624 reference_accessor.xml:670
-#: reference_accessor.xml:1074 reference_accessor.xml:1112
-#: reference_accessor.xml:1426 reference_accessor.xml:1468
-#: reference_accessor.xml:1671 reference_accessor.xml:1716
-#: reference_accessor.xml:1804 reference_accessor.xml:1849
-#: reference_accessor.xml:1937 reference_accessor.xml:1979
-#: reference_accessor.xml:2024
+#: reference_accessor.xml:40 reference_accessor.xml:137
+#: reference_accessor.xml:234 reference_accessor.xml:396
+#: reference_accessor.xml:562 reference_accessor.xml:627
+#: reference_accessor.xml:673 reference_accessor.xml:1077
+#: reference_accessor.xml:1115 reference_accessor.xml:1417
+#: reference_accessor.xml:1462 reference_accessor.xml:1506
+#: reference_accessor.xml:1670 reference_accessor.xml:1715
+#: reference_accessor.xml:1803 reference_accessor.xml:1848
+#: reference_accessor.xml:1936 reference_accessor.xml:1978
+#: reference_accessor.xml:2023
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: para
 #: reference_accessor.xml:41 reference_accessor.xml:96
-#: reference_accessor.xml:137 reference_accessor.xml:231
-#: reference_accessor.xml:334 reference_accessor.xml:392
-#: reference_accessor.xml:441 reference_accessor.xml:499
-#: reference_accessor.xml:558 reference_accessor.xml:623
-#: reference_accessor.xml:768 reference_accessor.xml:998
-#: reference_accessor.xml:1038 reference_accessor.xml:1073
-#: reference_accessor.xml:1111 reference_accessor.xml:1156
-#: reference_accessor.xml:1271 reference_accessor.xml:1367
-#: reference_accessor.xml:1425 reference_accessor.xml:1510
-#: reference_accessor.xml:1626 reference_accessor.xml:1670
-#: reference_accessor.xml:1715 reference_accessor.xml:1759
-#: reference_accessor.xml:1803 reference_accessor.xml:1848
-#: reference_accessor.xml:1893 reference_accessor.xml:1936
-#: reference_accessor.xml:1978 reference_accessor.xml:2023
+#: reference_accessor.xml:138 reference_accessor.xml:232
+#: reference_accessor.xml:337 reference_accessor.xml:395
+#: reference_accessor.xml:444 reference_accessor.xml:502
+#: reference_accessor.xml:561 reference_accessor.xml:626
+#: reference_accessor.xml:771 reference_accessor.xml:1001
+#: reference_accessor.xml:1041 reference_accessor.xml:1076
+#: reference_accessor.xml:1114 reference_accessor.xml:1159
+#: reference_accessor.xml:1262 reference_accessor.xml:1358
+#: reference_accessor.xml:1416 reference_accessor.xml:1504
+#: reference_accessor.xml:1625 reference_accessor.xml:1669
+#: reference_accessor.xml:1714 reference_accessor.xml:1758
+#: reference_accessor.xml:1802 reference_accessor.xml:1847
+#: reference_accessor.xml:1892 reference_accessor.xml:1935
+#: reference_accessor.xml:1977 reference_accessor.xml:2022
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:42 reference_accessor.xml:138
-#: reference_accessor.xml:189 reference_accessor.xml:394
-#: reference_accessor.xml:442 reference_accessor.xml:562
-#: reference_accessor.xml:1075 reference_accessor.xml:1157
-#: reference_accessor.xml:1274 reference_accessor.xml:1368
+#: reference_accessor.xml:42 reference_accessor.xml:139
+#: reference_accessor.xml:190 reference_accessor.xml:397
+#: reference_accessor.xml:445 reference_accessor.xml:565
+#: reference_accessor.xml:1078 reference_accessor.xml:1160
+#: reference_accessor.xml:1265 reference_accessor.xml:1359
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:43 reference_accessor.xml:139
-#: reference_accessor.xml:190 reference_accessor.xml:395
-#: reference_accessor.xml:1158
+#: reference_accessor.xml:43 reference_accessor.xml:140
+#: reference_accessor.xml:191 reference_accessor.xml:398
+#: reference_accessor.xml:1161
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:49 reference_accessor.xml:100
-#: reference_accessor.xml:144 reference_accessor.xml:194
-#: reference_accessor.xml:241 reference_accessor.xml:295
-#: reference_accessor.xml:339 reference_accessor.xml:447
-#: reference_accessor.xml:505 reference_accessor.xml:629
-#: reference_accessor.xml:677 reference_accessor.xml:722
-#: reference_accessor.xml:773 reference_accessor.xml:837
-#: reference_accessor.xml:893 reference_accessor.xml:953
-#: reference_accessor.xml:1004 reference_accessor.xml:1042
-#: reference_accessor.xml:1080 reference_accessor.xml:1117
-#: reference_accessor.xml:1163 reference_accessor.xml:1204
-#: reference_accessor.xml:1278 reference_accessor.xml:1319
-#: reference_accessor.xml:1374 reference_accessor.xml:1432
-#: reference_accessor.xml:1473 reference_accessor.xml:1520
-#: reference_accessor.xml:1574 reference_accessor.xml:1632
-#: reference_accessor.xml:1676 reference_accessor.xml:1721
-#: reference_accessor.xml:1765 reference_accessor.xml:1809
-#: reference_accessor.xml:1854 reference_accessor.xml:1898
-#: reference_accessor.xml:1942 reference_accessor.xml:1984
-#: reference_accessor.xml:2029
+#: reference_accessor.xml:49 reference_accessor.xml:101
+#: reference_accessor.xml:145 reference_accessor.xml:195
+#: reference_accessor.xml:244 reference_accessor.xml:298
+#: reference_accessor.xml:342 reference_accessor.xml:450
+#: reference_accessor.xml:508 reference_accessor.xml:632
+#: reference_accessor.xml:680 reference_accessor.xml:725
+#: reference_accessor.xml:776 reference_accessor.xml:840
+#: reference_accessor.xml:896 reference_accessor.xml:956
+#: reference_accessor.xml:1007 reference_accessor.xml:1045
+#: reference_accessor.xml:1083 reference_accessor.xml:1120
+#: reference_accessor.xml:1166 reference_accessor.xml:1206
+#: reference_accessor.xml:1269 reference_accessor.xml:1310
+#: reference_accessor.xml:1365 reference_accessor.xml:1426
+#: reference_accessor.xml:1467 reference_accessor.xml:1516
+#: reference_accessor.xml:1573 reference_accessor.xml:1631
+#: reference_accessor.xml:1675 reference_accessor.xml:1720
+#: reference_accessor.xml:1764 reference_accessor.xml:1808
+#: reference_accessor.xml:1853 reference_accessor.xml:1897
+#: reference_accessor.xml:1941 reference_accessor.xml:1983
+#: reference_accessor.xml:2028
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -243,27 +244,27 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:58 reference_accessor.xml:105
-#: reference_accessor.xml:151 reference_accessor.xml:199
-#: reference_accessor.xml:247 reference_accessor.xml:300
-#: reference_accessor.xml:344 reference_accessor.xml:414
-#: reference_accessor.xml:458 reference_accessor.xml:512
-#: reference_accessor.xml:579 reference_accessor.xml:635
-#: reference_accessor.xml:728 reference_accessor.xml:779
-#: reference_accessor.xml:843 reference_accessor.xml:900
-#: reference_accessor.xml:960 reference_accessor.xml:1010
-#: reference_accessor.xml:1047 reference_accessor.xml:1085
-#: reference_accessor.xml:1124 reference_accessor.xml:1168
-#: reference_accessor.xml:1209 reference_accessor.xml:1243
-#: reference_accessor.xml:1283 reference_accessor.xml:1324
-#: reference_accessor.xml:1381 reference_accessor.xml:1438
-#: reference_accessor.xml:1478 reference_accessor.xml:1526
-#: reference_accessor.xml:1580 reference_accessor.xml:1638
-#: reference_accessor.xml:1683 reference_accessor.xml:1728
-#: reference_accessor.xml:1771 reference_accessor.xml:1816
-#: reference_accessor.xml:1861 reference_accessor.xml:1904
-#: reference_accessor.xml:1949 reference_accessor.xml:1991
-#: reference_accessor.xml:2036
+#: reference_accessor.xml:58 reference_accessor.xml:106
+#: reference_accessor.xml:152 reference_accessor.xml:200
+#: reference_accessor.xml:250 reference_accessor.xml:303
+#: reference_accessor.xml:347 reference_accessor.xml:417
+#: reference_accessor.xml:461 reference_accessor.xml:515
+#: reference_accessor.xml:582 reference_accessor.xml:638
+#: reference_accessor.xml:731 reference_accessor.xml:782
+#: reference_accessor.xml:846 reference_accessor.xml:903
+#: reference_accessor.xml:963 reference_accessor.xml:1013
+#: reference_accessor.xml:1050 reference_accessor.xml:1088
+#: reference_accessor.xml:1127 reference_accessor.xml:1171
+#: reference_accessor.xml:1211 reference_accessor.xml:1234
+#: reference_accessor.xml:1274 reference_accessor.xml:1315
+#: reference_accessor.xml:1372 reference_accessor.xml:1432
+#: reference_accessor.xml:1472 reference_accessor.xml:1522
+#: reference_accessor.xml:1579 reference_accessor.xml:1637
+#: reference_accessor.xml:1682 reference_accessor.xml:1727
+#: reference_accessor.xml:1770 reference_accessor.xml:1815
+#: reference_accessor.xml:1860 reference_accessor.xml:1903
+#: reference_accessor.xml:1948 reference_accessor.xml:1990
+#: reference_accessor.xml:2035
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -327,8 +328,14 @@ msgstr ""
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.14"
 msgstr ""
 
+#. Tag: para
+#: reference_accessor.xml:97
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for Triangle was introduced"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_accessor.xml:102
+#: reference_accessor.xml:103
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 "
@@ -361,19 +368,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:107
+#: reference_accessor.xml:108
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakePolygon\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:113
+#: reference_accessor.xml:114
 #, no-c-format
 msgid "ST_CoordDim"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:115
+#: reference_accessor.xml:116
 #, no-c-format
 msgid ""
 "<refpurpose>Return the coordinate dimension of the ST_Geometry value.</"
@@ -381,7 +388,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:120
+#: reference_accessor.xml:121
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_CoordDim</function></funcdef> "
@@ -389,25 +396,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:130
+#: reference_accessor.xml:131
 #, no-c-format
 msgid "<para>Return the coordinate dimension of the ST_Geometry value.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:132
+#: reference_accessor.xml:133
 #, no-c-format
 msgid "This is the MM compliant alias name for <xref linkend=\"ST_NDims\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:135
+#: reference_accessor.xml:136
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:146
+#: reference_accessor.xml:147
 #, no-c-format
 msgid ""
 "SELECT ST_CoordDim('CIRCULARSTRING(1 2 3, 1 3 4, 5 6 7, 8 9 10, 11 12 "
@@ -421,13 +428,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:159
+#: reference_accessor.xml:160
 #, no-c-format
 msgid "ST_Dimension"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:161
+#: reference_accessor.xml:162
 #, no-c-format
 msgid ""
 "The inherent dimension of this Geometry object, which must be less than or "
@@ -435,7 +442,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:167
+#: reference_accessor.xml:168
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_Dimension</function></funcdef> "
@@ -443,7 +450,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:178
+#: reference_accessor.xml:179
 #, no-c-format
 msgid ""
 "The inherent dimension of this Geometry object, which must be less than or "
@@ -455,13 +462,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:186
+#: reference_accessor.xml:187
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.2"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:187
+#: reference_accessor.xml:188
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces and TINs was introduced. No "
@@ -469,7 +476,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:188
+#: reference_accessor.xml:189
 #, no-c-format
 msgid ""
 "Prior to 2.0.0, this function throws an exception if used with empty "
@@ -477,7 +484,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:196
+#: reference_accessor.xml:197
 #, no-c-format
 msgid ""
 "SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))');\n"
@@ -487,21 +494,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:207
+#: reference_accessor.xml:208
 #, no-c-format
 msgid "ST_EndPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:209
+#: reference_accessor.xml:210
 #, no-c-format
 msgid ""
-"Returns the last point of a <varname>LINESTRING</varname> geometry as a "
-"<varname>POINT</varname>."
+"Returns the last point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname>."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:215
+#: reference_accessor.xml:216
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_EndPoint</function></funcdef> "
@@ -509,7 +516,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:226
+#: reference_accessor.xml:227
 #, no-c-format
 msgid ""
 "Returns the last point of a <varname>LINESTRING</varname> geometry as a "
@@ -518,13 +525,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:230
+#: reference_accessor.xml:231
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.4"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:232 reference_accessor.xml:1511
+#: reference_accessor.xml:235 reference_accessor.xml:1507
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
@@ -536,7 +543,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:243
+#: reference_accessor.xml:246
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::"
@@ -561,19 +568,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:249
+#: reference_accessor.xml:252
 #, no-c-format
 msgid ", <xref linkend=\"ST_StartPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:256
+#: reference_accessor.xml:259
 #, no-c-format
 msgid "ST_Envelope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:258
+#: reference_accessor.xml:261
 #, no-c-format
 msgid ""
 "Returns a geometry representing the double precision (float8) bounding box "
@@ -581,7 +588,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:264
+#: reference_accessor.xml:267
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Envelope</function></funcdef> "
@@ -589,7 +596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:275
+#: reference_accessor.xml:278
 #, no-c-format
 msgid ""
 "Returns the float8 minimum bounding box for the supplied geometry, as a "
@@ -602,7 +609,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:285
+#: reference_accessor.xml:288
 #, no-c-format
 msgid ""
 "Degenerate cases (vertical lines, points) will return a geometry of lower "
@@ -611,7 +618,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:289
+#: reference_accessor.xml:292
 #, no-c-format
 msgid ""
 "Availability: 1.5.0 behavior changed to output double precision instead of "
@@ -619,20 +626,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:290 reference_accessor.xml:668
-#: reference_accessor.xml:766 reference_accessor.xml:1466
+#: reference_accessor.xml:293 reference_accessor.xml:671
+#: reference_accessor.xml:769 reference_accessor.xml:1460
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.1"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:291
+#: reference_accessor.xml:294
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.15"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:297
+#: reference_accessor.xml:300
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));\n"
@@ -671,19 +678,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:302
+#: reference_accessor.xml:305
 #, no-c-format
 msgid ", <xref linkend=\"Box3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:308
+#: reference_accessor.xml:311
 #, no-c-format
 msgid "ST_ExteriorRing"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:310
+#: reference_accessor.xml:313
 #, no-c-format
 msgid ""
 "Returns a line string representing the exterior ring of the "
@@ -692,7 +699,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:316
+#: reference_accessor.xml:319
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ExteriorRing</function></funcdef> "
@@ -700,7 +707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:327
+#: reference_accessor.xml:330
 #, no-c-format
 msgid ""
 "Returns a line string representing the exterior ring of the "
@@ -709,25 +716,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:330
+#: reference_accessor.xml:333
 #, no-c-format
 msgid "Only works with POLYGON geometry types"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:332 reference_accessor.xml:712
+#: reference_accessor.xml:335 reference_accessor.xml:715
 #, no-c-format
 msgid "&sfs_compliant; 2.1.5.1"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:333
+#: reference_accessor.xml:336
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.2.3, 8.3.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:340
+#: reference_accessor.xml:343
 #, no-c-format
 msgid ""
 "--If you have a table of polygons\n"
@@ -755,20 +762,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:346
+#: reference_accessor.xml:349
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_NumInteriorRings\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:356
+#: reference_accessor.xml:359
 #, no-c-format
 msgid "ST_GeometryN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:358
+#: reference_accessor.xml:361
 #, no-c-format
 msgid ""
 "Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
@@ -777,7 +784,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:365
+#: reference_accessor.xml:368
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeometryN</function></funcdef> "
@@ -786,7 +793,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:376
+#: reference_accessor.xml:379
 #, no-c-format
 msgid ""
 "Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, "
@@ -795,7 +802,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:381 reference_accessor.xml:1414
+#: reference_accessor.xml:384 reference_accessor.xml:1405
 #, no-c-format
 msgid ""
 "Index is 1-based as for OGC specs since version 0.8.0. Previous versions "
@@ -803,7 +810,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:386
+#: reference_accessor.xml:389
 #, no-c-format
 msgid ""
 "If you want to extract all geometries, of a geometry, ST_Dump is more "
@@ -811,7 +818,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:389
+#: reference_accessor.xml:392
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 Prior versions would return NULL for singular geometries. "
@@ -819,19 +826,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:391
+#: reference_accessor.xml:394
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.1.5"
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:401
+#: reference_accessor.xml:404
 #, no-c-format
 msgid "Standard Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:403
+#: reference_accessor.xml:406
 #, no-c-format
 msgid ""
 "--Extracting a subset of points from a 3d multipoint\n"
@@ -861,13 +868,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:406
+#: reference_accessor.xml:409
 #, no-c-format
 msgid "Polyhedral Surfaces, TIN and Triangle Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:407
+#: reference_accessor.xml:410
 #, no-c-format
 msgid ""
 "-- Polyhedral surface example\n"
@@ -888,7 +895,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:409
+#: reference_accessor.xml:412
 #, no-c-format
 msgid ""
 "-- TIN --                \n"
@@ -915,25 +922,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:416 reference_accessor.xml:1285
+#: reference_accessor.xml:419 reference_accessor.xml:1276
 #, no-c-format
 msgid ", <xref linkend=\"ST_NumGeometries\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:422
+#: reference_accessor.xml:425
 #, no-c-format
 msgid "ST_GeometryType"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:423
+#: reference_accessor.xml:426
 #, no-c-format
 msgid "Return the geometry type of the ST_Geometry value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:428
+#: reference_accessor.xml:431
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_GeometryType</function></funcdef> "
@@ -941,30 +948,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:437
+#: reference_accessor.xml:440
 #, no-c-format
 msgid ""
 "Returns the type of the geometry as a string. EG: 'ST_Linestring', "
-"'ST_Polygon','ST_MultiPolygon' etc. This function differs from GeometryType"
-"(geometry) in the case of the string and ST in front that is returned, as "
-"well as the fact that it will not indicate whether the geometry is measured."
+"'ST_Polygon','ST_MultiPolygon' etc. This function differs from "
+"GeometryType(geometry) in the case of the string and ST in front that is "
+"returned, as well as the fact that it will not indicate whether the geometry "
+"is measured."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:439 reference_accessor.xml:560
-#: reference_accessor.xml:1071
+#: reference_accessor.xml:442 reference_accessor.xml:563
+#: reference_accessor.xml:1074
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:440
+#: reference_accessor.xml:443
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:449
+#: reference_accessor.xml:452
 #, no-c-format
 msgid ""
 "SELECT ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
@@ -974,7 +982,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:451 reference_accessor.xml:453
+#: reference_accessor.xml:454 reference_accessor.xml:456
 #, no-c-format
 msgid ""
 "SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 "
@@ -989,7 +997,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:455
+#: reference_accessor.xml:458
 #, no-c-format
 msgid ""
 "SELECT ST_GeometryType(geom) as result\n"
@@ -1014,13 +1022,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:468
+#: reference_accessor.xml:471
 #, no-c-format
 msgid "ST_InteriorRingN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:470
+#: reference_accessor.xml:473
 #, no-c-format
 msgid ""
 "Return the Nth interior linestring ring of the polygon geometry. Return NULL "
@@ -1028,7 +1036,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:477
+#: reference_accessor.xml:480
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_InteriorRingN</function></funcdef> "
@@ -1037,7 +1045,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:488
+#: reference_accessor.xml:491
 #, no-c-format
 msgid ""
 "Return the Nth interior linestring ring of the polygon geometry. Return NULL "
@@ -1046,7 +1054,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:494
+#: reference_accessor.xml:497
 #, no-c-format
 msgid ""
 "This will not work for MULTIPOLYGONs. Use in conjunction with ST_Dump for "
@@ -1054,13 +1062,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:498
+#: reference_accessor.xml:501
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.2.6, 8.3.5"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:507
+#: reference_accessor.xml:510
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_InteriorRingN(the_geom, 1)) As the_geom\n"
@@ -1071,7 +1079,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:514
+#: reference_accessor.xml:517
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend="
@@ -1079,13 +1087,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:527
+#: reference_accessor.xml:530
 #, no-c-format
 msgid "ST_IsClosed"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:529
+#: reference_accessor.xml:532
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
@@ -1093,7 +1101,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:536
+#: reference_accessor.xml:539
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsClosed</function></funcdef> "
@@ -1101,7 +1109,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:547
+#: reference_accessor.xml:550
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start "
@@ -1110,13 +1118,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:551
+#: reference_accessor.xml:554
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.5, 9.3.3"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:553
+#: reference_accessor.xml:556
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of <function>ST_IsClosed(<varname>NULL</varname>)</"
@@ -1124,13 +1132,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:567
+#: reference_accessor.xml:570
 #, no-c-format
 msgid "Line String and Point Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:569
+#: reference_accessor.xml:572
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);\n"
@@ -1166,13 +1174,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:573
+#: reference_accessor.xml:576
 #, no-c-format
 msgid "Polyhedral Surface Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:575
+#: reference_accessor.xml:578
 #, no-c-format
 msgid ""
 "-- A cube --\n"
@@ -1203,13 +1211,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:587
+#: reference_accessor.xml:590
 #, no-c-format
 msgid "ST_IsCollection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:589
+#: reference_accessor.xml:592
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the argument is a collection "
@@ -1217,7 +1225,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:596
+#: reference_accessor.xml:599
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsCollection</function></funcdef> "
@@ -1225,7 +1233,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:606
+#: reference_accessor.xml:609
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the geometry type of the argument is "
@@ -1233,25 +1241,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:609
+#: reference_accessor.xml:612
 #, no-c-format
 msgid "GEOMETRYCOLLECTION"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:610
+#: reference_accessor.xml:613
 #, no-c-format
 msgid "MULTI{POINT,POLYGON,LINESTRING,CURVE,SURFACE}"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:611
+#: reference_accessor.xml:614
 #, no-c-format
 msgid "COMPOUNDCURVE"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:616
+#: reference_accessor.xml:619
 #, no-c-format
 msgid ""
 "This function analyzes the type of the geometry. This means that it will "
@@ -1260,7 +1268,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:631
+#: reference_accessor.xml:634
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_IsCollection('LINESTRING(0 0, 1 1)'::geometry);\n"
@@ -1296,13 +1304,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:643
+#: reference_accessor.xml:646
 #, no-c-format
 msgid "ST_IsEmpty"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:645
+#: reference_accessor.xml:648
 #, no-c-format
 msgid ""
 "Returns true if this Geometry is an empty geometrycollection, polygon, point "
@@ -1310,7 +1318,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:651
+#: reference_accessor.xml:654
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
@@ -1318,7 +1326,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:661
+#: reference_accessor.xml:664
 #, no-c-format
 msgid ""
 "Returns true if this Geometry is an empty geometry. If true, then this "
@@ -1326,7 +1334,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:664
+#: reference_accessor.xml:667
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of ST_IsEmpty(NULL) to be 0, while PostGIS returns "
@@ -1334,22 +1342,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:669
+#: reference_accessor.xml:672
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.7"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:671
+#: reference_accessor.xml:674
 #, no-c-format
 msgid ""
-"Changed: 2.0.0 In prior versions of PostGIS ST_GeomFromText"
-"('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now illegal in PostGIS "
-"2.0.0 to better conform with SQL/MM standards"
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:679
+#: reference_accessor.xml:682
 #, no-c-format
 msgid ""
 "SELECT ST_IsEmpty(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'));\n"
@@ -1386,13 +1394,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:686
+#: reference_accessor.xml:689
 #, no-c-format
 msgid "ST_IsRing"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:688
+#: reference_accessor.xml:691
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
@@ -1400,7 +1408,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:694
+#: reference_accessor.xml:697
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsRing</function></funcdef> "
@@ -1408,24 +1416,24 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:705
+#: reference_accessor.xml:708
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is "
 "both <xref linkend=\"ST_IsClosed\"/> (<function>ST_StartPoint(<parameter>g</"
-"parameter>)</function> <function>~=</function> <function>ST_Endpoint"
-"(<parameter>g</parameter>)</function>) and <xref linkend=\"ST_IsSimple\"/> "
-"(does not self intersect)."
+"parameter>)</function> <function>~=</function> "
+"<function>ST_Endpoint(<parameter>g</parameter>)</function>) and <xref "
+"linkend=\"ST_IsSimple\"/> (does not self intersect)."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:713
+#: reference_accessor.xml:716
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.6"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:715
+#: reference_accessor.xml:718
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of <function>ST_IsRing(<varname>NULL</varname>)</"
@@ -1433,7 +1441,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:724
+#: reference_accessor.xml:727
 #, no-c-format
 msgid ""
 "SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
@@ -1454,7 +1462,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:730
+#: reference_accessor.xml:733
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_StartPoint\"/>, <xref "
@@ -1462,13 +1470,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:738
+#: reference_accessor.xml:741
 #, no-c-format
 msgid "ST_IsSimple"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:740
+#: reference_accessor.xml:743
 #, no-c-format
 msgid ""
 "Returns (TRUE) if this Geometry has no anomalous geometric points, such as "
@@ -1476,7 +1484,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:746
+#: reference_accessor.xml:749
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsSimple</function></funcdef> "
@@ -1484,7 +1492,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:756
+#: reference_accessor.xml:759
 #, no-c-format
 msgid ""
 "Returns true if this Geometry has no anomalous geometric points, such as "
@@ -1494,7 +1502,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:762
+#: reference_accessor.xml:765
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of ST_IsSimple(NULL) to be 0, while PostGIS "
@@ -1502,13 +1510,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:767
+#: reference_accessor.xml:770
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.8"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:775
+#: reference_accessor.xml:778
 #, no-c-format
 msgid ""
 "SELECT ST_IsSimple(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
@@ -1526,13 +1534,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:787
+#: reference_accessor.xml:790
 #, no-c-format
 msgid "ST_IsValid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:789
+#: reference_accessor.xml:792
 #, no-c-format
 msgid ""
 "Returns <varname>true</varname> if the <varname>ST_Geometry</varname> is "
@@ -1540,7 +1548,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:795
+#: reference_accessor.xml:798
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> "
@@ -1552,7 +1560,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:813
+#: reference_accessor.xml:816
 #, no-c-format
 msgid ""
 "Test if an ST_Geometry value is well formed. For geometries that are "
@@ -1563,7 +1571,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:819
+#: reference_accessor.xml:822
 #, no-c-format
 msgid ""
 "SQL-MM defines the result of ST_IsValid(NULL) to be 0, while PostGIS returns "
@@ -1571,7 +1579,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:823
+#: reference_accessor.xml:826
 #, no-c-format
 msgid ""
 "The version accepting flags is available starting with 2.0.0 and requires "
@@ -1581,13 +1589,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:831
+#: reference_accessor.xml:834
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.9"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:839
+#: reference_accessor.xml:842
 #, no-c-format
 msgid ""
 "SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,\n"
@@ -1601,7 +1609,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:845
+#: reference_accessor.xml:848
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/"
@@ -1609,13 +1617,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:856
+#: reference_accessor.xml:859
 #, no-c-format
 msgid "ST_IsValidReason"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:858
+#: reference_accessor.xml:861
 #, no-c-format
 msgid ""
 "Returns text stating if a geometry is valid or not and if not valid, a "
@@ -1623,7 +1631,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:862
+#: reference_accessor.xml:865
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_IsValidReason</function></"
@@ -1635,7 +1643,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:878
+#: reference_accessor.xml:881
 #, no-c-format
 msgid ""
 "Returns text stating if a geometry is valid or not an if not valid, a reason "
@@ -1643,7 +1651,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:880
+#: reference_accessor.xml:883
 #, no-c-format
 msgid ""
 "Useful in combination with ST_IsValid to generate a detailed report of "
@@ -1651,7 +1659,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:882
+#: reference_accessor.xml:885
 #, no-c-format
 msgid ""
 "Allowed <varname>flags</varname> are documented in <xref linkend="
@@ -1659,20 +1667,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:886
+#: reference_accessor.xml:889
 #, no-c-format
 msgid "Availability: 1.4 - requires GEOS >= 3.1.0."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:887
+#: reference_accessor.xml:890
 #, no-c-format
 msgid ""
 "Availability: 2.0 - requires GEOS >= 3.3.0 for the version taking flags."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:895
+#: reference_accessor.xml:898
 #, no-c-format
 msgid ""
 "--First 3 Rejects from a successful quintuplet experiment\n"
@@ -1686,8 +1694,9 @@ msgid ""
 "        CROSS JOIN generate_series(2,5) y1\n"
 "        CROSS JOIN generate_series(1,8) z1\n"
 "        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
-"        INNER JOIN (SELECT ST_Translate(ST_ExteriorRing(ST_Buffer"
-"(ST_MakePoint(x1*10,y1), z1)),y1*1, z1*2) As line\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
 "        FROM generate_series(-3,6) x1\n"
 "        CROSS JOIN generate_series(2,5) y1\n"
 "        CROSS JOIN generate_series(1,10) z1\n"
@@ -1714,19 +1723,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:902
+#: reference_accessor.xml:905
 #, no-c-format
 msgid ", <xref linkend=\"ST_Summary\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:908
+#: reference_accessor.xml:911
 #, no-c-format
 msgid "ST_IsValidDetail"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:910
+#: reference_accessor.xml:913
 #, no-c-format
 msgid ""
 "Returns a valid_detail (valid,reason,location) row stating if a geometry is "
@@ -1734,7 +1743,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:914
+#: reference_accessor.xml:917
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></"
@@ -1746,7 +1755,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:930
+#: reference_accessor.xml:933
 #, no-c-format
 msgid ""
 "Returns a valid_detail row, formed by a boolean (valid) stating if a "
@@ -1755,7 +1764,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:932
+#: reference_accessor.xml:935
 #, no-c-format
 msgid ""
 "Useful to substitute and improve the combination of ST_IsValid and "
@@ -1763,13 +1772,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:934
+#: reference_accessor.xml:937
 #, no-c-format
 msgid "The 'flags' argument is a bitfield. It can have the following values:"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:938
+#: reference_accessor.xml:941
 #, no-c-format
 msgid ""
 "1: Consider self-intersecting rings forming holes as valid. This is also "
@@ -1777,18 +1786,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:947
+#: reference_accessor.xml:950
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:955
+#: reference_accessor.xml:958
 #, no-c-format
 msgid ""
 "--First 3 Rejects from a successful quintuplet experiment\n"
-"SELECT gid, reason(ST_IsValidDetail(the_geom)), ST_AsText(location"
-"(ST_IsValidDetail(the_geom))) as location \n"
+"SELECT gid, reason(ST_IsValidDetail(the_geom)), "
+"ST_AsText(location(ST_IsValidDetail(the_geom))) as location \n"
 "FROM\n"
 "(SELECT ST_MakePolygon(ST_ExteriorRing(e.buff), ST_Accum(f.line)) As "
 "the_geom, gid\n"
@@ -1798,8 +1807,9 @@ msgid ""
 "        CROSS JOIN generate_series(2,5) y1\n"
 "        CROSS JOIN generate_series(1,8) z1\n"
 "        WHERE x1 > y1*0.5 AND z1 < x1*y1) As e\n"
-"        INNER JOIN (SELECT ST_Translate(ST_ExteriorRing(ST_Buffer"
-"(ST_MakePoint(x1*10,y1), z1)),y1*1, z1*2) As line\n"
+"        INNER JOIN (SELECT "
+"ST_Translate(ST_ExteriorRing(ST_Buffer(ST_MakePoint(x1*10,y1), z1)),y1*1, "
+"z1*2) As line\n"
 "        FROM generate_series(-3,6) x1\n"
 "        CROSS JOIN generate_series(2,5) y1\n"
 "        CROSS JOIN generate_series(1,10) z1\n"
@@ -1826,19 +1836,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:962
+#: reference_accessor.xml:965
 #, no-c-format
 msgid ", <xref linkend=\"ST_IsValidReason\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:971
+#: reference_accessor.xml:974
 #, no-c-format
 msgid "ST_M"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:973
+#: reference_accessor.xml:976
 #, no-c-format
 msgid ""
 "<refpurpose>Return the M coordinate of the point, or NULL if not available. "
@@ -1846,7 +1856,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:979
+#: reference_accessor.xml:982
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_M</function></funcdef> <paramdef><type>geometry "
@@ -1854,7 +1864,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:989
+#: reference_accessor.xml:992
 #, no-c-format
 msgid ""
 "<para>Return the M coordinate of the point, or NULL if not available. Input "
@@ -1862,7 +1872,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:993
+#: reference_accessor.xml:996
 #, no-c-format
 msgid ""
 "This is not (yet) part of the OGC spec, but is listed here to complete the "
@@ -1870,13 +1880,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:997 reference_accessor.xml:1892
+#: reference_accessor.xml:1000 reference_accessor.xml:1891
 #, no-c-format
 msgid "&sqlmm_compliant;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1005
+#: reference_accessor.xml:1008
 #, no-c-format
 msgid ""
 "SELECT ST_M(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -1887,7 +1897,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1012
+#: reference_accessor.xml:1015
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/"
@@ -1895,13 +1905,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1018
+#: reference_accessor.xml:1021
 #, no-c-format
 msgid "ST_NDims"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1019
+#: reference_accessor.xml:1022
 #, no-c-format
 msgid ""
 "Returns coordinate dimension of the geometry as a small int. Values are: 2,3 "
@@ -1909,7 +1919,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1025
+#: reference_accessor.xml:1028
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NDims</function></funcdef> "
@@ -1917,7 +1927,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1035
+#: reference_accessor.xml:1038
 #, no-c-format
 msgid ""
 "Returns the coordinate dimension of the geometry. PostGIS supports 2 - (x,"
@@ -1926,7 +1936,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1044
+#: reference_accessor.xml:1047
 #, no-c-format
 msgid ""
 "SELECT ST_NDims(ST_GeomFromText('POINT(1 1)')) As d2point,\n"
@@ -1939,25 +1949,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1048
+#: reference_accessor.xml:1051
 #, no-c-format
 msgid ", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1054
+#: reference_accessor.xml:1057
 #, no-c-format
 msgid "ST_NPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1055
+#: reference_accessor.xml:1058
 #, no-c-format
 msgid "Return the number of points (vertexes) in a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1060
+#: reference_accessor.xml:1063
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NPoints</function></funcdef> "
@@ -1965,13 +1975,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1070
+#: reference_accessor.xml:1073
 #, no-c-format
 msgid "Return the number of points in a geometry. Works for all geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1072
+#: reference_accessor.xml:1075
 #, no-c-format
 msgid ""
 "Prior to 1.3.4, this function crashes if used with geometries that contain "
@@ -1979,7 +1989,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1082
+#: reference_accessor.xml:1085
 #, no-c-format
 msgid ""
 "SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 "
@@ -1995,20 +2005,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1093
+#: reference_accessor.xml:1096
 #, no-c-format
 msgid "ST_NRings"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1094
+#: reference_accessor.xml:1097
 #, no-c-format
 msgid ""
 "If the geometry is a polygon or multi-polygon returns the number of rings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1099
+#: reference_accessor.xml:1102
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NRings</function></funcdef> "
@@ -2016,7 +2026,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1109
+#: reference_accessor.xml:1112
 #, no-c-format
 msgid ""
 "If the geometry is a polygon or multi-polygon returns the number of rings. "
@@ -2024,13 +2034,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1119
+#: reference_accessor.xml:1122
 #, no-c-format
 msgid ""
 "SELECT ST_NRings(the_geom) As Nrings, ST_NumInteriorRings(the_geom) As "
 "ninterrings\n"
-"                                        FROM (SELECT ST_GeomFromText('POLYGON"
-"((1 2, 3 4, 5 6, 1 2))') As the_geom) As foo;\n"
+"                                        FROM (SELECT "
+"ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))') As the_geom) As foo;\n"
 "         nrings | ninterrings\n"
 "--------+-------------\n"
 "          1 |           0\n"
@@ -2038,13 +2048,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1132
+#: reference_accessor.xml:1135
 #, no-c-format
 msgid "ST_NumGeometries"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1133
+#: reference_accessor.xml:1136
 #, no-c-format
 msgid ""
 "If geometry is a GEOMETRYCOLLECTION (or MULTI*) return the number of "
@@ -2052,7 +2062,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1139
+#: reference_accessor.xml:1142
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumGeometries</function></funcdef> "
@@ -2060,7 +2070,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1149
+#: reference_accessor.xml:1152
 #, no-c-format
 msgid ""
 "Returns the number of Geometries. If geometry is a GEOMETRYCOLLECTION (or "
@@ -2069,7 +2079,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1153
+#: reference_accessor.xml:1156
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 In prior versions this would return NULL if the geometry was "
@@ -2078,13 +2088,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1155
+#: reference_accessor.xml:1158
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.1.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1165
+#: reference_accessor.xml:1168
 #, no-c-format
 msgid ""
 "--Prior versions would have returned NULL for this -- in 2.0.0 this returns "
@@ -2104,29 +2114,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1170
+#: reference_accessor.xml:1173
 #, no-c-format
 msgid ", <xref linkend=\"ST_Multi\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1176
+#: reference_accessor.xml:1179
 #, no-c-format
 msgid "ST_NumInteriorRings"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1177
+#: reference_accessor.xml:1180
 #, no-c-format
 msgid ""
-"<refpurpose>Return the number of interior rings of the first polygon in the "
-"geometry. This will work with both POLYGON and MULTIPOLYGON types but only "
-"looks at the first polygon. Return NULL if there is no polygon in the "
-"geometry.</refpurpose>"
+"Return the number of interior rings of the a polygon in the geometry. This "
+"will work with POLYGON and return NULL for a MULTIPOLYGON type or any other "
+"type"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1185
+#: reference_accessor.xml:1186
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumInteriorRings</function></funcdef> "
@@ -2134,23 +2143,30 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1195
+#: reference_accessor.xml:1196
 #, no-c-format
 msgid ""
-"<para>Return the number of interior rings of the first polygon in the "
-"geometry. This will work with both POLYGON and MULTIPOLYGON types but only "
-"looks at the first polygon. Return NULL if there is no polygon in the "
-"geometry.</para>"
+"Return the number of interior rings of the first polygon in the geometry. "
+"This will work with both POLYGON and MULTIPOLYGON types but only looks at "
+"the first polygon. Return NULL if there is no polygon in the geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1200 reference_accessor.xml:1239
+#: reference_accessor.xml:1201
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.2.5"
 msgstr ""
 
+#. Tag: para
+#: reference_accessor.xml:1202
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 - in prior versions it would return the number of interior "
+"rings for the first POLYGON in a MULTIPOLYGON."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_accessor.xml:1206
+#: reference_accessor.xml:1208
 #, no-c-format
 msgid ""
 "--If you have a regular polygon\n"
@@ -2167,44 +2183,35 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1217
+#: reference_accessor.xml:1219
 #, no-c-format
 msgid "ST_NumInteriorRing"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1218
+#: reference_accessor.xml:1220
 #, no-c-format
 msgid ""
-"Return the number of interior rings of the first polygon in the geometry. "
-"Synonym to ST_NumInteriorRings."
+"Return the number of interior rings of a polygon in the geometry. Synonym "
+"for ST_NumInteriorRings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1224
+#: reference_accessor.xml:1226
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumInteriorRing</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
 msgstr ""
 
-#. Tag: para
-#: reference_accessor.xml:1234
-#, no-c-format
-msgid ""
-"Return the number of interior rings of the first polygon in the geometry. "
-"Synonym to ST_NumInteriorRings. The OpenGIS specs are ambiguous about the "
-"exact function naming, so we provide both spellings."
-msgstr ""
-
 #. Tag: refname
-#: reference_accessor.xml:1251
+#: reference_accessor.xml:1242
 #, no-c-format
 msgid "ST_NumPatches"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1252
+#: reference_accessor.xml:1243
 #, no-c-format
 msgid ""
 "Return the number of faces on a Polyhedral Surface. Will return null for non-"
@@ -2212,7 +2219,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1257
+#: reference_accessor.xml:1248
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumPatches</function></funcdef> "
@@ -2220,7 +2227,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1267
+#: reference_accessor.xml:1258
 #, no-c-format
 msgid ""
 "Return the number of faces on a Polyhedral Surface. Will return null for non-"
@@ -2229,19 +2236,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1270 reference_accessor.xml:1365
+#: reference_accessor.xml:1261 reference_accessor.xml:1356
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1273 reference_accessor.xml:1366
+#: reference_accessor.xml:1264 reference_accessor.xml:1357
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: ?"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1280
+#: reference_accessor.xml:1271
 #, no-c-format
 msgid ""
 "SELECT ST_NumPatches(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 "
@@ -2256,20 +2263,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1291
+#: reference_accessor.xml:1282
 #, no-c-format
 msgid "ST_NumPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1292
+#: reference_accessor.xml:1283
 #, no-c-format
 msgid ""
 "Return the number of points in an ST_LineString or ST_CircularString value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1298
+#: reference_accessor.xml:1289
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumPoints</function></funcdef> "
@@ -2277,7 +2284,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1308
+#: reference_accessor.xml:1299
 #, no-c-format
 msgid ""
 "Return the number of points in an ST_LineString or ST_CircularString value. "
@@ -2288,13 +2295,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1315
+#: reference_accessor.xml:1306
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1321
+#: reference_accessor.xml:1312
 #, no-c-format
 msgid ""
 "SELECT ST_NumPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 "
@@ -2304,13 +2311,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1332
+#: reference_accessor.xml:1323
 #, no-c-format
 msgid "ST_PatchN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1334
+#: reference_accessor.xml:1325
 #, no-c-format
 msgid ""
 "Return the 1-based Nth geometry (face) if the geometry is a "
@@ -2318,7 +2325,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1341
+#: reference_accessor.xml:1332
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PatchN</function></funcdef> "
@@ -2327,7 +2334,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1352
+#: reference_accessor.xml:1343
 #, no-c-format
 msgid ""
 ">Return the 1-based Nth geometry (face) if the geometry is a "
@@ -2337,13 +2344,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1358
+#: reference_accessor.xml:1349
 #, no-c-format
 msgid "Index is 1-based."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1362
+#: reference_accessor.xml:1353
 #, no-c-format
 msgid ""
 "If you want to extract all geometries, of a geometry, ST_Dump is more "
@@ -2351,7 +2358,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1376
+#: reference_accessor.xml:1367
 #, no-c-format
 msgid ""
 "--Extract the 2nd face of the polyhedral surface\n"
@@ -2371,7 +2378,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1383
+#: reference_accessor.xml:1374
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
@@ -2379,22 +2386,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1389
+#: reference_accessor.xml:1380
 #, no-c-format
 msgid "ST_PointN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1391
+#: reference_accessor.xml:1382
 #, no-c-format
 msgid ""
-"<refpurpose>Return the Nth point in the first linestring or circular "
-"linestring in the geometry. Return NULL if there is no linestring in the "
-"geometry.</refpurpose>"
+"Return the Nth point in the first linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1398
+#: reference_accessor.xml:1389
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PointN</function></funcdef> "
@@ -2403,15 +2409,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1409
+#: reference_accessor.xml:1400
 #, no-c-format
 msgid ""
-"<para>Return the Nth point in the first linestring or circular linestring in "
-"the geometry. Return NULL if there is no linestring in the geometry.</para>"
+"Return the Nth point in a single linestring or circular linestring in the "
+"geometry. Return NULL if there is no linestring in the geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1419
+#: reference_accessor.xml:1410
 #, no-c-format
 msgid ""
 "If you want to get the nth point of each line string in a multilinestring, "
@@ -2419,13 +2425,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1424
+#: reference_accessor.xml:1415
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.5, 7.3.5"
 msgstr ""
 
+#. Tag: para
+#: reference_accessor.xml:1418
+#, no-c-format
+msgid ""
+"Changed: 2.0.0 no longer works with single geometry multilinestrings. In "
+"older versions of PostGIS -- a single line multilinestring would work "
+"happily with this function and return the start point. In 2.0.0 it just "
+"returns NULL like any other multilinestring."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_accessor.xml:1434
+#: reference_accessor.xml:1428
 #, no-c-format
 msgid ""
 "-- Extract all POINTs from a LINESTRING\n"
@@ -2453,13 +2469,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1446
+#: reference_accessor.xml:1440
 #, no-c-format
 msgid "ST_SRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1447
+#: reference_accessor.xml:1441
 #, no-c-format
 msgid ""
 "Returns the spatial reference identifier for the ST_Geometry as defined in "
@@ -2467,7 +2483,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1452
+#: reference_accessor.xml:1446
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_SRID</function></funcdef> "
@@ -2475,7 +2491,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1462
+#: reference_accessor.xml:1456
 #, no-c-format
 msgid ""
 "Returns the spatial reference identifier for the ST_Geometry as defined in "
@@ -2483,7 +2499,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1463
+#: reference_accessor.xml:1457
 #, no-c-format
 msgid ""
 "spatial_ref_sys table is a table that catalogs all spatial reference systems "
@@ -2493,13 +2509,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1467
+#: reference_accessor.xml:1461
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.5"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1475
+#: reference_accessor.xml:1469
 #, no-c-format
 msgid ""
 "SELECT ST_SRID(ST_GeomFromText('POINT(-71.1043 42.315)',4326));\n"
@@ -2508,7 +2524,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1480
+#: reference_accessor.xml:1474
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -2516,13 +2532,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1486
+#: reference_accessor.xml:1480
 #, no-c-format
 msgid "ST_StartPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1488
+#: reference_accessor.xml:1482
 #, no-c-format
 msgid ""
 "Returns the first point of a <varname>LINESTRING</varname> geometry as a "
@@ -2530,7 +2546,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1494
+#: reference_accessor.xml:1488
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_StartPoint</function></funcdef> "
@@ -2538,22 +2554,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1505
+#: reference_accessor.xml:1499
 #, no-c-format
 msgid ""
-"Returns the first point of a <varname>LINESTRING</varname> geometry as a "
-"<varname>POINT</varname> or <varname>NULL</varname> if the input parameter "
-"is not a <varname>LINESTRING</varname>."
+"Returns the first point of a <varname>LINESTRING</varname> or "
+"<varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname> "
+"or <varname>NULL</varname> if the input parameter is not a "
+"<varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1509
+#: reference_accessor.xml:1503
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1522
+#: reference_accessor.xml:1518
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_StartPoint('LINESTRING(0 1, 0 2)'::geometry));\n"
@@ -2573,23 +2590,30 @@ msgid ""
 " st_asewkt\n"
 "------------\n"
 " POINT(0 1 1)\n"
-"(1 row)"
+"(1 row)\n"
+"\n"
+"-- circular linestring --\n"
+"SELECT ST_AsText(ST_StartPoint('CIRCULARSTRING(5 2,-3 1.999999, -2 1, -4 2, "
+"5 2)'::geometry));\n"
+" st_astext\n"
+"------------\n"
+" POINT(5 2)"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1528
+#: reference_accessor.xml:1524
 #, no-c-format
 msgid ", <xref linkend=\"ST_PointN\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1533
+#: reference_accessor.xml:1529
 #, no-c-format
 msgid "ST_Summary"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1535
+#: reference_accessor.xml:1531
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a text summary of the contents of the geometry.</"
@@ -2597,7 +2621,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:1541
+#: reference_accessor.xml:1537
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_Summary</function></funcdef> "
@@ -2608,13 +2632,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1556
+#: reference_accessor.xml:1552
 #, no-c-format
 msgid "<para>Returns a text summary of the contents of the geometry.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1558
+#: reference_accessor.xml:1554
 #, no-c-format
 msgid ""
 "Flags shown square brackets after the geometry type have the following "
@@ -2622,37 +2646,56 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1562
+#: reference_accessor.xml:1558
 #, no-c-format
 msgid "M: has M ordinate"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1563
+#: reference_accessor.xml:1559
 #, no-c-format
 msgid "Z: has Z ordinate"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1564
+#: reference_accessor.xml:1560
 #, no-c-format
 msgid "B: has a cached bounding box"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1565
+#: reference_accessor.xml:1561
 #, no-c-format
 msgid "G: is geodetic (geography)"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1569
+#: reference_accessor.xml:1562
 #, no-c-format
-msgid "Availability: 1.2.2 - 2.0.0 added support for geography"
+msgid "S: has spatial reference system"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1566
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1567
+#, no-c-format
+msgid "Enhanced: 2.0.0 added support for geography"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1568
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 S flag to denote if has a known spatial reference system"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1576
+#: reference_accessor.xml:1575
 #, no-c-format
 msgid ""
 "=# SELECT ST_Summary(ST_GeomFromText('LINESTRING(0 0, 1 1)')) as geom,\n"
@@ -2660,36 +2703,36 @@ msgid ""
 "geog;\n"
 "            geom             |          geog    \n"
 "-----------------------------+--------------------------\n"
-" LineString[B] with 2 points | Polygon[BG] with 1 rings\n"
-"                             :    ring 0 has 5 points\n"
+" LineString[B] with 2 points | Polygon[BGS] with 1 rings\n"
+"                             | ring 0 has 5 points\n"
 "                             :\n"
 "(1 row)\n"
 "\n"
 "\n"
 "=# SELECT ST_Summary(ST_GeogFromText('LINESTRING(0 0 1, 1 1 1)')) As "
 "geog_line,\n"
-"        ST_Summary(ST_GeomFromText('POLYGON((0 0 1, 1 1 2, 1 2 3, 1 1 1, 0 0 "
-"1))')) As geom_poly;\n"
+"        ST_Summary(ST_GeomFromText('SRID=4326;POLYGON((0 0 1, 1 1 2, 1 2 3, "
+"1 1 1, 0 0 1))')) As geom_poly;\n"
 ";\n"
-"           geog_line           |        geom_poly\n"
-"-------------------------------+--------------------------\n"
-" LineString[ZBG] with 2 points | Polygon[ZB] with 1 rings\n"
-"                               :    ring 0 has 5 points\n"
-"                               :\n"
+"           geog_line             |        geom_poly\n"
+"-------------------------------- +--------------------------\n"
+" LineString[ZBGS] with 2 points | Polygon[ZBS] with 1 rings\n"
+"                                :    ring 0 has 5 points\n"
+"                                :\n"
 "(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1582
+#: reference_accessor.xml:1581
 #, no-c-format
 msgid ""
 ", <xref linkend=\"PostGIS_AddBBox\"/>, <xref linkend=\"ST_Force_3DM\"/>, "
-"<xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force_2D\"/>, <xref "
+"<xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force2D\"/>, <xref "
 "linkend=\"geography\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1591
+#: reference_accessor.xml:1590
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_IsValidReason\"/>, "
@@ -2697,13 +2740,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1602
+#: reference_accessor.xml:1601
 #, no-c-format
 msgid "ST_X"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1604
+#: reference_accessor.xml:1603
 #, no-c-format
 msgid ""
 "<refpurpose>Return the X coordinate of the point, or NULL if not available. "
@@ -2711,7 +2754,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1610
+#: reference_accessor.xml:1609
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_X</function></funcdef> <paramdef><type>geometry "
@@ -2719,7 +2762,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1620
+#: reference_accessor.xml:1619
 #, no-c-format
 msgid ""
 "<para>Return the X coordinate of the point, or NULL if not available. Input "
@@ -2727,7 +2770,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1623
+#: reference_accessor.xml:1622
 #, no-c-format
 msgid ""
 "If you want to get the max min x values of any geometry look at ST_XMin, "
@@ -2735,13 +2778,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1625
+#: reference_accessor.xml:1624
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1633
+#: reference_accessor.xml:1632
 #, no-c-format
 msgid ""
 "SELECT ST_X(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -2758,7 +2801,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1640
+#: reference_accessor.xml:1639
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
@@ -2767,13 +2810,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1646
+#: reference_accessor.xml:1645
 #, no-c-format
 msgid "ST_XMax"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1648
+#: reference_accessor.xml:1647
 #, no-c-format
 msgid ""
 "<refpurpose>Returns X maxima of a bounding box 2d or 3d or a geometry.</"
@@ -2781,7 +2824,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1653
+#: reference_accessor.xml:1652
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_XMax</function></funcdef> <paramdef><type>box3d "
@@ -2789,15 +2832,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1663
+#: reference_accessor.xml:1662
 #, no-c-format
 msgid "<para>Returns X maxima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1666 reference_accessor.xml:1711
-#: reference_accessor.xml:1799 reference_accessor.xml:1844
-#: reference_accessor.xml:1932 reference_accessor.xml:2019
+#: reference_accessor.xml:1665 reference_accessor.xml:1710
+#: reference_accessor.xml:1798 reference_accessor.xml:1843
+#: reference_accessor.xml:1931 reference_accessor.xml:2018
 #, no-c-format
 msgid ""
 "Although this function is only defined for box3d, it will work for box2d and "
@@ -2807,7 +2850,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1678
+#: reference_accessor.xml:1677
 #, no-c-format
 msgid ""
 "SELECT ST_XMax('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2838,7 +2881,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1685 reference_accessor.xml:1730
+#: reference_accessor.xml:1684 reference_accessor.xml:1729
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
@@ -2846,13 +2889,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1691
+#: reference_accessor.xml:1690
 #, no-c-format
 msgid "ST_XMin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1693
+#: reference_accessor.xml:1692
 #, no-c-format
 msgid ""
 "<refpurpose>Returns X minima of a bounding box 2d or 3d or a geometry.</"
@@ -2860,7 +2903,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1698
+#: reference_accessor.xml:1697
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_XMin</function></funcdef> <paramdef><type>box3d "
@@ -2868,13 +2911,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1708
+#: reference_accessor.xml:1707
 #, no-c-format
 msgid "<para>Returns X minima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1723
+#: reference_accessor.xml:1722
 #, no-c-format
 msgid ""
 "SELECT ST_XMin('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2905,13 +2948,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1736
+#: reference_accessor.xml:1735
 #, no-c-format
 msgid "ST_Y"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1738
+#: reference_accessor.xml:1737
 #, no-c-format
 msgid ""
 "<refpurpose>Return the Y coordinate of the point, or NULL if not available. "
@@ -2919,7 +2962,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1744
+#: reference_accessor.xml:1743
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Y</function></funcdef> <paramdef><type>geometry "
@@ -2927,7 +2970,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1754
+#: reference_accessor.xml:1753
 #, no-c-format
 msgid ""
 "<para>Return the Y coordinate of the point, or NULL if not available. Input "
@@ -2935,13 +2978,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1758
+#: reference_accessor.xml:1757
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1766
+#: reference_accessor.xml:1765
 #, no-c-format
 msgid ""
 "SELECT ST_Y(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -2958,7 +3001,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1773
+#: reference_accessor.xml:1772
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref "
@@ -2967,13 +3010,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1779
+#: reference_accessor.xml:1778
 #, no-c-format
 msgid "ST_YMax"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1781
+#: reference_accessor.xml:1780
 #, no-c-format
 msgid ""
 "<refpurpose>Returns Y maxima of a bounding box 2d or 3d or a geometry.</"
@@ -2981,7 +3024,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1786
+#: reference_accessor.xml:1785
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_YMax</function></funcdef> <paramdef><type>box3d "
@@ -2989,13 +3032,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1796
+#: reference_accessor.xml:1795
 #, no-c-format
 msgid "<para>Returns Y maxima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1811
+#: reference_accessor.xml:1810
 #, no-c-format
 msgid ""
 "SELECT ST_YMax('BOX3D(1 2 3, 4 5 6)');\n"
@@ -3026,7 +3069,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1818
+#: reference_accessor.xml:1817
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend="
@@ -3034,13 +3077,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1824
+#: reference_accessor.xml:1823
 #, no-c-format
 msgid "ST_YMin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1826
+#: reference_accessor.xml:1825
 #, no-c-format
 msgid ""
 "<refpurpose>Returns Y minima of a bounding box 2d or 3d or a geometry.</"
@@ -3048,7 +3091,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1831
+#: reference_accessor.xml:1830
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_YMin</function></funcdef> <paramdef><type>box3d "
@@ -3056,13 +3099,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1841
+#: reference_accessor.xml:1840
 #, no-c-format
 msgid "<para>Returns Y minima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1856
+#: reference_accessor.xml:1855
 #, no-c-format
 msgid ""
 "SELECT ST_YMin('BOX3D(1 2 3, 4 5 6)');\n"
@@ -3093,7 +3136,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1863
+#: reference_accessor.xml:1862
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
@@ -3101,13 +3144,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1869
+#: reference_accessor.xml:1868
 #, no-c-format
 msgid "ST_Z"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1871
+#: reference_accessor.xml:1870
 #, no-c-format
 msgid ""
 "<refpurpose>Return the Z coordinate of the point, or NULL if not available. "
@@ -3115,7 +3158,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1877
+#: reference_accessor.xml:1876
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Z</function></funcdef> <paramdef><type>geometry "
@@ -3123,7 +3166,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1887
+#: reference_accessor.xml:1886
 #, no-c-format
 msgid ""
 "<para>Return the Z coordinate of the point, or NULL if not available. Input "
@@ -3131,7 +3174,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1899
+#: reference_accessor.xml:1898
 #, no-c-format
 msgid ""
 "SELECT ST_Z(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -3142,7 +3185,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1906
+#: reference_accessor.xml:1905
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/"
@@ -3150,13 +3193,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1912
+#: reference_accessor.xml:1911
 #, no-c-format
 msgid "ST_ZMax"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1914 reference_accessor.xml:2001
+#: reference_accessor.xml:1913 reference_accessor.xml:2000
 #, no-c-format
 msgid ""
 "<refpurpose>Returns Z minima of a bounding box 2d or 3d or a geometry.</"
@@ -3164,7 +3207,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1919
+#: reference_accessor.xml:1918
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_ZMax</function></funcdef> <paramdef><type>box3d "
@@ -3172,13 +3215,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1929
+#: reference_accessor.xml:1928
 #, no-c-format
 msgid "Returns Z maxima of a bounding box 2d or 3d or a geometry."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1944
+#: reference_accessor.xml:1943
 #, no-c-format
 msgid ""
 "SELECT ST_ZMax('BOX3D(1 2 3, 4 5 6)');\n"
@@ -3209,7 +3252,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1951
+#: reference_accessor.xml:1950
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend="
@@ -3217,13 +3260,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1957
+#: reference_accessor.xml:1956
 #, no-c-format
 msgid "ST_Zmflag"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1959
+#: reference_accessor.xml:1958
 #, no-c-format
 msgid ""
 "<refpurpose>Returns ZM (dimension semantic) flag of the geometries as a "
@@ -3231,7 +3274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1965
+#: reference_accessor.xml:1964
 #, no-c-format
 msgid ""
 "<funcdef>smallint <function>ST_Zmflag</function></funcdef> "
@@ -3239,7 +3282,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1975
+#: reference_accessor.xml:1974
 #, no-c-format
 msgid ""
 "<para>Returns ZM (dimension semantic) flag of the geometries as a small int. "
@@ -3247,7 +3290,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1986
+#: reference_accessor.xml:1985
 #, no-c-format
 msgid ""
 "SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRING(1 2, 3 4)'));\n"
@@ -3271,19 +3314,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1993
+#: reference_accessor.xml:1992
 #, no-c-format
 msgid ", <xref linkend=\"ST_NDims\"/>, <xref linkend=\"ST_Dimension\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1999
+#: reference_accessor.xml:1998
 #, no-c-format
 msgid "ST_ZMin"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:2006
+#: reference_accessor.xml:2005
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_ZMin</function></funcdef> <paramdef><type>box3d "
@@ -3291,13 +3334,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:2016
+#: reference_accessor.xml:2015
 #, no-c-format
 msgid "<para>Returns Z minima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:2031
+#: reference_accessor.xml:2030
 #, no-c-format
 msgid ""
 "SELECT ST_ZMin('BOX3D(1 2 3, 4 5 6)');\n"
@@ -3328,7 +3371,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:2038
+#: reference_accessor.xml:2037
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_XMin\"/>, <xref "
diff --git a/doc/po/pt_BR/reference_constructor.xml.po b/doc/po/pt_BR/reference_constructor.xml.po
index 90b6563..df0e84c 100644
--- a/doc/po/pt_BR/reference_constructor.xml.po
+++ b/doc/po/pt_BR/reference_constructor.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -46,23 +46,26 @@ msgstr ""
 
 #. Tag: title
 #: reference_constructor.xml:23 reference_constructor.xml:72
-#: reference_constructor.xml:119 reference_constructor.xml:148
-#: reference_constructor.xml:175 reference_constructor.xml:227
-#: reference_constructor.xml:278 reference_constructor.xml:326
-#: reference_constructor.xml:369 reference_constructor.xml:400
-#: reference_constructor.xml:474 reference_constructor.xml:513
-#: reference_constructor.xml:564 reference_constructor.xml:596
-#: reference_constructor.xml:649 reference_constructor.xml:695
-#: reference_constructor.xml:740 reference_constructor.xml:799
-#: reference_constructor.xml:867 reference_constructor.xml:927
-#: reference_constructor.xml:966 reference_constructor.xml:1023
-#: reference_constructor.xml:1094 reference_constructor.xml:1139
-#: reference_constructor.xml:1220 reference_constructor.xml:1263
-#: reference_constructor.xml:1305 reference_constructor.xml:1366
-#: reference_constructor.xml:1427 reference_constructor.xml:1481
-#: reference_constructor.xml:1535 reference_constructor.xml:1591
-#: reference_constructor.xml:1640 reference_constructor.xml:1694
-#: reference_constructor.xml:1737 reference_constructor.xml:1760
+#: reference_constructor.xml:123 reference_constructor.xml:159
+#: reference_constructor.xml:188 reference_constructor.xml:215
+#: reference_constructor.xml:267 reference_constructor.xml:318
+#: reference_constructor.xml:366 reference_constructor.xml:409
+#: reference_constructor.xml:438 reference_constructor.xml:481
+#: reference_constructor.xml:555 reference_constructor.xml:594
+#: reference_constructor.xml:645 reference_constructor.xml:677
+#: reference_constructor.xml:730 reference_constructor.xml:777
+#: reference_constructor.xml:822 reference_constructor.xml:860
+#: reference_constructor.xml:905 reference_constructor.xml:964
+#: reference_constructor.xml:1032 reference_constructor.xml:1092
+#: reference_constructor.xml:1131 reference_constructor.xml:1188
+#: reference_constructor.xml:1259 reference_constructor.xml:1304
+#: reference_constructor.xml:1385 reference_constructor.xml:1428
+#: reference_constructor.xml:1470 reference_constructor.xml:1531
+#: reference_constructor.xml:1592 reference_constructor.xml:1646
+#: reference_constructor.xml:1697 reference_constructor.xml:1740
+#: reference_constructor.xml:1796 reference_constructor.xml:1845
+#: reference_constructor.xml:1899 reference_constructor.xml:1942
+#: reference_constructor.xml:1965
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -80,16 +83,16 @@ msgstr ""
 #, no-c-format
 msgid ""
 "Throws an error if WKT is not a MULTILINESTRING. Throws an error if output "
-"is a MULTIPOLYGON; use ST_BdMPolyFromText in that case, or see ST_BuildArea"
-"() for a postgis-specific approach."
+"is a MULTIPOLYGON; use ST_BdMPolyFromText in that case, or see "
+"ST_BuildArea() for a postgis-specific approach."
 msgstr ""
 
 #. Tag: para
 #: reference_constructor.xml:36 reference_constructor.xml:88
-#: reference_constructor.xml:241 reference_constructor.xml:756
-#: reference_constructor.xml:824 reference_constructor.xml:890
-#: reference_constructor.xml:1321 reference_constructor.xml:1443
-#: reference_constructor.xml:1705
+#: reference_constructor.xml:281 reference_constructor.xml:921
+#: reference_constructor.xml:989 reference_constructor.xml:1055
+#: reference_constructor.xml:1486 reference_constructor.xml:1608
+#: reference_constructor.xml:1910
 #, no-c-format
 msgid "&sfs_compliant; s3.2.6.2"
 msgstr ""
@@ -102,18 +105,20 @@ msgstr ""
 
 #. Tag: title
 #: reference_constructor.xml:42 reference_constructor.xml:94
-#: reference_constructor.xml:125 reference_constructor.xml:190
-#: reference_constructor.xml:248 reference_constructor.xml:292
-#: reference_constructor.xml:340 reference_constructor.xml:485
-#: reference_constructor.xml:617 reference_constructor.xml:665
-#: reference_constructor.xml:703 reference_constructor.xml:763
-#: reference_constructor.xml:831 reference_constructor.xml:895
-#: reference_constructor.xml:935 reference_constructor.xml:982
-#: reference_constructor.xml:1235 reference_constructor.xml:1270
-#: reference_constructor.xml:1328 reference_constructor.xml:1389
-#: reference_constructor.xml:1450 reference_constructor.xml:1559
-#: reference_constructor.xml:1609 reference_constructor.xml:1658
-#: reference_constructor.xml:1710
+#: reference_constructor.xml:135 reference_constructor.xml:165
+#: reference_constructor.xml:230 reference_constructor.xml:288
+#: reference_constructor.xml:332 reference_constructor.xml:380
+#: reference_constructor.xml:450 reference_constructor.xml:566
+#: reference_constructor.xml:698 reference_constructor.xml:746
+#: reference_constructor.xml:791 reference_constructor.xml:830
+#: reference_constructor.xml:868 reference_constructor.xml:928
+#: reference_constructor.xml:996 reference_constructor.xml:1060
+#: reference_constructor.xml:1100 reference_constructor.xml:1147
+#: reference_constructor.xml:1400 reference_constructor.xml:1435
+#: reference_constructor.xml:1493 reference_constructor.xml:1554
+#: reference_constructor.xml:1615 reference_constructor.xml:1709
+#: reference_constructor.xml:1764 reference_constructor.xml:1814
+#: reference_constructor.xml:1863 reference_constructor.xml:1915
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -126,23 +131,26 @@ msgstr ""
 
 #. Tag: title
 #: reference_constructor.xml:48 reference_constructor.xml:100
-#: reference_constructor.xml:129 reference_constructor.xml:153
-#: reference_constructor.xml:195 reference_constructor.xml:255
-#: reference_constructor.xml:305 reference_constructor.xml:346
-#: reference_constructor.xml:374 reference_constructor.xml:453
-#: reference_constructor.xml:492 reference_constructor.xml:540
-#: reference_constructor.xml:571 reference_constructor.xml:621
-#: reference_constructor.xml:672 reference_constructor.xml:710
-#: reference_constructor.xml:770 reference_constructor.xml:838
-#: reference_constructor.xml:902 reference_constructor.xml:942
-#: reference_constructor.xml:989 reference_constructor.xml:1066
-#: reference_constructor.xml:1109 reference_constructor.xml:1173
-#: reference_constructor.xml:1239 reference_constructor.xml:1276
-#: reference_constructor.xml:1335 reference_constructor.xml:1396
-#: reference_constructor.xml:1457 reference_constructor.xml:1508
-#: reference_constructor.xml:1563 reference_constructor.xml:1616
-#: reference_constructor.xml:1665 reference_constructor.xml:1717
-#: reference_constructor.xml:1741 reference_constructor.xml:1764
+#: reference_constructor.xml:139 reference_constructor.xml:169
+#: reference_constructor.xml:193 reference_constructor.xml:235
+#: reference_constructor.xml:295 reference_constructor.xml:345
+#: reference_constructor.xml:386 reference_constructor.xml:414
+#: reference_constructor.xml:454 reference_constructor.xml:534
+#: reference_constructor.xml:573 reference_constructor.xml:621
+#: reference_constructor.xml:652 reference_constructor.xml:702
+#: reference_constructor.xml:753 reference_constructor.xml:798
+#: reference_constructor.xml:837 reference_constructor.xml:875
+#: reference_constructor.xml:935 reference_constructor.xml:1003
+#: reference_constructor.xml:1067 reference_constructor.xml:1107
+#: reference_constructor.xml:1154 reference_constructor.xml:1231
+#: reference_constructor.xml:1274 reference_constructor.xml:1338
+#: reference_constructor.xml:1404 reference_constructor.xml:1441
+#: reference_constructor.xml:1500 reference_constructor.xml:1561
+#: reference_constructor.xml:1622 reference_constructor.xml:1673
+#: reference_constructor.xml:1713 reference_constructor.xml:1768
+#: reference_constructor.xml:1821 reference_constructor.xml:1870
+#: reference_constructor.xml:1922 reference_constructor.xml:1946
+#: reference_constructor.xml:1969
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -204,11 +212,94 @@ msgstr ""
 #. Tag: refname
 #: reference_constructor.xml:107
 #, no-c-format
+msgid "ST_Box2dFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:109
+#, no-c-format
+msgid "<refpurpose>Return a BOX2D from a GeoHash string.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:114
+#, no-c-format
+msgid ""
+"<funcdef>box2d <function>ST_Box2dFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:125
+#, no-c-format
+msgid "<para>Return a BOX2D from a GeoHash string.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:127
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_Box2dFromGeoHash "
+"returns a BOX2D based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:129
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_Box2dFromGeoHash will use "
+"that many characters from the GeoHash to create the BOX2D. Lower precision "
+"values results in larger BOX2Ds and larger values increase the precision."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:131 reference_constructor.xml:446
+#: reference_constructor.xml:1705
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0');\n"
+"\n"
+"                st_geomfromgeohash\n"
+"--------------------------------------------------\n"
+" BOX(-115.172816 36.114646,-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 0);\n"
+"\n"
+" st_box2dfromgeohash\n"
+"----------------------\n"
+" BOX(-180 -90,180 90)\n"
+"\n"
+" SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10);\n"
+"                            st_box2dfromgeohash\n"
+"---------------------------------------------------------------------------\n"
+" BOX(-115.17282128334 36.1146408319473,-115.172810554504 36.1146461963654)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:141
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_GeomFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:147
+#, no-c-format
 msgid "ST_GeogFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:108 reference_constructor.xml:137
+#: reference_constructor.xml:148 reference_constructor.xml:177
 #, no-c-format
 msgid ""
 "Return a specified geography value from Well-Known Text representation or "
@@ -216,7 +307,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:112
+#: reference_constructor.xml:152
 #, no-c-format
 msgid ""
 "<funcdef>geography <function>ST_GeogFromText</function></funcdef> "
@@ -224,7 +315,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:120
+#: reference_constructor.xml:160
 #, no-c-format
 msgid ""
 "Returns a geography object from the well-known text or extended well-known "
@@ -233,7 +324,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:126
+#: reference_constructor.xml:166
 #, no-c-format
 msgid ""
 "--- converting lon lat coords to geography\n"
@@ -243,19 +334,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:130
+#: reference_constructor.xml:170
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeographyFromText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:136
+#: reference_constructor.xml:176
 #, no-c-format
 msgid "ST_GeographyFromText"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:141
+#: reference_constructor.xml:181
 #, no-c-format
 msgid ""
 "<funcdef>geography <function>ST_GeographyFromText</function></funcdef> "
@@ -263,7 +354,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:149
+#: reference_constructor.xml:189
 #, no-c-format
 msgid ""
 "Returns a geography object from the well-known text representation. SRID "
@@ -271,19 +362,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:154
+#: reference_constructor.xml:194
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:160
+#: reference_constructor.xml:200
 #, no-c-format
 msgid "ST_GeogFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:161
+#: reference_constructor.xml:201
 #, no-c-format
 msgid ""
 "Creates a geography instance from a Well-Known Binary geometry "
@@ -291,7 +382,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:167
+#: reference_constructor.xml:207
 #, no-c-format
 msgid ""
 "<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> "
@@ -299,7 +390,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:177
+#: reference_constructor.xml:217
 #, no-c-format
 msgid ""
 "The <varname>ST_GeogFromWKB</varname> function, takes a well-known binary "
@@ -309,21 +400,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:182
+#: reference_constructor.xml:222
 #, no-c-format
 msgid "If SRID is not specified, it defaults to 4326 (WGS 84 long lat)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:184 reference_constructor.xml:286
-#: reference_constructor.xml:334 reference_constructor.xml:610
-#: reference_constructor.xml:660 reference_constructor.xml:1605
+#: reference_constructor.xml:224 reference_constructor.xml:326
+#: reference_constructor.xml:374 reference_constructor.xml:691
+#: reference_constructor.xml:741 reference_constructor.xml:1810
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:192
+#: reference_constructor.xml:232
 #, no-c-format
 msgid ""
 "--Although bytea rep contains single \\, these need to be escaped when "
@@ -341,27 +432,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:197
+#: reference_constructor.xml:237
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsBinary\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:204
+#: reference_constructor.xml:244
 #, no-c-format
 msgid "ST_GeomCollFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:206
+#: reference_constructor.xml:246
 #, no-c-format
 msgid ""
 "Makes a collection Geometry from collection WKT with the given SRID. If SRID "
-"is not give, it defaults to -1."
+"is not give, it defaults to 0."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:211
+#: reference_constructor.xml:251
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></"
@@ -373,29 +464,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:229
+#: reference_constructor.xml:269
 #, no-c-format
 msgid ""
 "Makes a collection Geometry from the Well-Known-Text (WKT) representation "
-"with the given SRID. If SRID is not give, it defaults to -1."
+"with the given SRID. If SRID is not give, it defaults to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:232 reference_constructor.xml:1310
-#: reference_constructor.xml:1371 reference_constructor.xml:1432
-#: reference_constructor.xml:1700
+#: reference_constructor.xml:272 reference_constructor.xml:1475
+#: reference_constructor.xml:1536 reference_constructor.xml:1597
+#: reference_constructor.xml:1905
 #, no-c-format
 msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:234
+#: reference_constructor.xml:274
 #, no-c-format
 msgid "Returns null if the WKT is not a GEOMETRYCOLLECTION"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:236
+#: reference_constructor.xml:276
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are collections, don't "
@@ -404,13 +495,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:242
+#: reference_constructor.xml:282
 #, no-c-format
 msgid "&sqlmm_compliant;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:250
+#: reference_constructor.xml:290
 #, no-c-format
 msgid ""
 "SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 "
@@ -418,19 +509,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:257 reference_constructor.xml:1459
+#: reference_constructor.xml:297 reference_constructor.xml:1624
 #, no-c-format
 msgid ", <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:264
+#: reference_constructor.xml:304
 #, no-c-format
 msgid "ST_GeomFromEWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:265
+#: reference_constructor.xml:305
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Extended Well-Known Binary "
@@ -438,7 +529,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:270
+#: reference_constructor.xml:310
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> "
@@ -446,7 +537,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:279
+#: reference_constructor.xml:319
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
@@ -454,7 +545,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:281
+#: reference_constructor.xml:321
 #, no-c-format
 msgid ""
 "The EWKB format is not an OGC standard, but a PostGIS specific format that "
@@ -462,39 +553,39 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:284 reference_constructor.xml:332
-#: reference_constructor.xml:420 reference_constructor.xml:567
+#: reference_constructor.xml:324 reference_constructor.xml:372
+#: reference_constructor.xml:501 reference_constructor.xml:648
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:285 reference_constructor.xml:333
-#: reference_constructor.xml:422 reference_constructor.xml:481
-#: reference_constructor.xml:527 reference_constructor.xml:698
-#: reference_constructor.xml:1034 reference_constructor.xml:1151
-#: reference_constructor.xml:1230 reference_constructor.xml:1604
-#: reference_constructor.xml:1652
+#: reference_constructor.xml:325 reference_constructor.xml:373
+#: reference_constructor.xml:503 reference_constructor.xml:562
+#: reference_constructor.xml:608 reference_constructor.xml:863
+#: reference_constructor.xml:1199 reference_constructor.xml:1316
+#: reference_constructor.xml:1395 reference_constructor.xml:1809
+#: reference_constructor.xml:1857
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:287 reference_constructor.xml:335
-#: reference_constructor.xml:423
+#: reference_constructor.xml:327 reference_constructor.xml:375
+#: reference_constructor.xml:504
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:288 reference_constructor.xml:336
-#: reference_constructor.xml:424
+#: reference_constructor.xml:328 reference_constructor.xml:376
+#: reference_constructor.xml:505
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:293
+#: reference_constructor.xml:333
 #, no-c-format
 msgid ""
 "line string binary rep 0f LINESTRING(-71.160281 42.258729,-71.160837 "
@@ -502,7 +593,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:295
+#: reference_constructor.xml:335
 #, no-c-format
 msgid ""
 "NOTE: Even though byte arrays are delimited with \\ and may have ', we need "
@@ -511,7 +602,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:297
+#: reference_constructor.xml:337
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\"
@@ -522,7 +613,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:299
+#: reference_constructor.xml:339
 #, no-c-format
 msgid ""
 "In PostgreSQL 9.1+ - standard_conforming_strings is set to on by default, "
@@ -533,7 +624,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:302
+#: reference_constructor.xml:342
 #, no-c-format
 msgid ""
 "set standard_conforming_strings = on;\n"
@@ -544,19 +635,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:306
+#: reference_constructor.xml:346
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:312
+#: reference_constructor.xml:352
 #, no-c-format
 msgid "ST_GeomFromEWKT"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:313
+#: reference_constructor.xml:353
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Extended Well-Known Text "
@@ -564,7 +655,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:318
+#: reference_constructor.xml:358
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> "
@@ -572,7 +663,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:327
+#: reference_constructor.xml:367
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known "
@@ -580,7 +671,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:329
+#: reference_constructor.xml:369
 #, no-c-format
 msgid ""
 "The EWKT format is not an OGC standard, but an PostGIS specific format that "
@@ -588,7 +679,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:341
+#: reference_constructor.xml:381
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 "
@@ -631,7 +722,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:342
+#: reference_constructor.xml:382
 #, no-c-format
 msgid ""
 "--3d circular string\n"
@@ -640,7 +731,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:343
+#: reference_constructor.xml:383
 #, no-c-format
 msgid ""
 "--Polyhedral Surface example\n"
@@ -655,20 +746,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:347
+#: reference_constructor.xml:387
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:352
+#: reference_constructor.xml:392
 #, no-c-format
 msgid "ST_GeometryFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:353 reference_constructor.xml:1749
+#: reference_constructor.xml:393 reference_constructor.xml:1954
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Well-Known Text representation "
@@ -676,7 +767,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:356
+#: reference_constructor.xml:396
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></"
@@ -688,25 +779,104 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:370 reference_constructor.xml:1650
+#: reference_constructor.xml:410 reference_constructor.xml:1855
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:371 reference_constructor.xml:609
+#: reference_constructor.xml:411 reference_constructor.xml:690
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.40"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:381
+#: reference_constructor.xml:422
+#, no-c-format
+msgid "ST_GeomFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:424
+#, no-c-format
+msgid "Return a geometry from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:429
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:440
+#, no-c-format
+msgid ""
+"Return a geometry from a GeoHash string. The geometry will be a polygon "
+"representing the GeoHash bounds."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:442
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_GeomFromGeoHash "
+"returns a polygon based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:444
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_GeomFromGeoHash will use "
+"that many characters from the GeoHash to create the polygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:451
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"                                                        st_astext\n"
+"--------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.172816 36.114646,-115.172816 36.114646,-115.172816 "
+"36.114646,-115.172816 36.114646,-115.172816 36.114646))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"                                                          st_astext\n"
+"------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.3125 36.03515625,-115.3125 36.2109375,-114.9609375 "
+"36.2109375,-114.9609375 36.03515625,-115.3125 36.03515625))\n"
+"\n"
+"SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                                                                                       st_astext\n"
+"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+" POLYGON((-115.17282128334 36.1146408319473,-115.17282128334 "
+"36.1146461963654,-115.172810554504 36.1146461963654,-115.172810554504 "
+"36.1146408319473,-115.17282128334 36.1146408319473))\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:456
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:462
 #, no-c-format
 msgid "ST_GeomFromGML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:382
+#: reference_constructor.xml:463
 #, no-c-format
 msgid ""
 "Takes as input GML representation of geometry and outputs a PostGIS geometry "
@@ -714,7 +884,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:386
+#: reference_constructor.xml:467
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></"
@@ -726,14 +896,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:401
+#: reference_constructor.xml:482
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC GML representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:402
+#: reference_constructor.xml:483
 #, no-c-format
 msgid ""
 "ST_GeomFromGML works only for GML Geometry fragments. It throws an error if "
@@ -741,7 +911,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:403
+#: reference_constructor.xml:484
 #, no-c-format
 msgid ""
 "OGC GML versions supported: <itemizedlist> <listitem> <para>GML 3.2.1 "
@@ -753,19 +923,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:419 reference_constructor.xml:566
+#: reference_constructor.xml:500 reference_constructor.xml:647
 #, no-c-format
 msgid "Availability: 1.5, requires libxml2 1.6+"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:421 reference_constructor.xml:568
+#: reference_constructor.xml:502 reference_constructor.xml:649
 #, no-c-format
 msgid "Enhanced: 2.0.0 default srid optional parameter added."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:425
+#: reference_constructor.xml:506
 #, no-c-format
 msgid ""
 "GML allow mixed dimensions (2D and 3D inside the same MultiGeometry for "
@@ -774,7 +944,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:427
+#: reference_constructor.xml:508
 #, no-c-format
 msgid ""
 "GML support mixed SRS inside the same MultiGeometry. As PostGIS geometries "
@@ -784,7 +954,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:429
+#: reference_constructor.xml:510
 #, no-c-format
 msgid ""
 "ST_GeomFromGML function is not pedantic about an explicit GML namespace. You "
@@ -793,19 +963,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:431
+#: reference_constructor.xml:512
 #, no-c-format
 msgid "ST_GeomFromGML function not support SQL/MM curves geometries."
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:437 reference_constructor.xml:535
+#: reference_constructor.xml:518 reference_constructor.xml:616
 #, no-c-format
 msgid "Examples - A single geometry with srsName"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:438
+#: reference_constructor.xml:519
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromGML('<![CDATA[\n"
@@ -818,13 +988,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:442
+#: reference_constructor.xml:523
 #, no-c-format
 msgid "Examples - XLink usage"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:443
+#: reference_constructor.xml:524
 #, no-c-format
 msgid ""
 "SELECT <![CDATA[ST_GeomFromGML('\n"
@@ -845,13 +1015,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:447
+#: reference_constructor.xml:528
 #, no-c-format
 msgid "Examples - Polyhedral Surface"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:448
+#: reference_constructor.xml:529
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(<![CDATA[ST_GeomFromGML('\n"
@@ -906,19 +1076,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:454
+#: reference_constructor.xml:535
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:460
+#: reference_constructor.xml:541
 #, no-c-format
 msgid "ST_GeomFromGeoJSON"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:461
+#: reference_constructor.xml:542
 #, no-c-format
 msgid ""
 "Takes as input a geojson representation of a geometry and outputs a PostGIS "
@@ -926,7 +1096,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:466
+#: reference_constructor.xml:547
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> "
@@ -934,13 +1104,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:475
+#: reference_constructor.xml:556
 #, no-c-format
 msgid "Constructs a PostGIS geometry object from the GeoJSON representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:476
+#: reference_constructor.xml:557
 #, no-c-format
 msgid ""
 "ST_GeomFromGeoJSON works only for JSON Geometry fragments. It throws an "
@@ -948,13 +1118,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:478
+#: reference_constructor.xml:559
 #, no-c-format
 msgid "Availability: 2.0.0 requires - JSON-C >= 0.9"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:479
+#: reference_constructor.xml:560
 #, no-c-format
 msgid ""
 "If you do not have JSON-C enabled, support you will get an error notice "
@@ -964,7 +1134,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:486
+#: reference_constructor.xml:567
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":"
@@ -975,7 +1145,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:487
+#: reference_constructor.xml:568
 #, no-c-format
 msgid ""
 "-- a 3D linestring\n"
@@ -988,7 +1158,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:493
+#: reference_constructor.xml:574
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend="
@@ -996,13 +1166,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:499
+#: reference_constructor.xml:580
 #, no-c-format
 msgid "ST_GeomFromKML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:500
+#: reference_constructor.xml:581
 #, no-c-format
 msgid ""
 "Takes as input KML representation of geometry and outputs a PostGIS geometry "
@@ -1010,7 +1180,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:505
+#: reference_constructor.xml:586
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> "
@@ -1018,14 +1188,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:514
+#: reference_constructor.xml:595
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC KML representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:515
+#: reference_constructor.xml:596
 #, no-c-format
 msgid ""
 "ST_GeomFromKML works only for KML Geometry fragments. It throws an error if "
@@ -1033,7 +1203,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:516
+#: reference_constructor.xml:597
 #, no-c-format
 msgid ""
 "OGC KML versions supported: <itemizedlist> <listitem> <para>KML 2.2.0 "
@@ -1043,19 +1213,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:526
+#: reference_constructor.xml:607
 #, no-c-format
 msgid "Availability: 1.5,libxml2 2.6+"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:529
+#: reference_constructor.xml:610
 #, no-c-format
 msgid "ST_GeomFromKML function not support SQL/MM curves geometries."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:536
+#: reference_constructor.xml:617
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromKML('<![CDATA[\n"
@@ -1066,19 +1236,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:541
+#: reference_constructor.xml:622
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsKML\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:547
+#: reference_constructor.xml:628
 #, no-c-format
 msgid "ST_GMLToSQL"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:548
+#: reference_constructor.xml:629
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from GML representation. This is an "
@@ -1086,7 +1256,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:551
+#: reference_constructor.xml:632
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> "
@@ -1098,25 +1268,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:565
+#: reference_constructor.xml:646
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.50 (except for curves support)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:572
+#: reference_constructor.xml:653
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:578
+#: reference_constructor.xml:659
 #, no-c-format
 msgid "ST_GeomFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:579
+#: reference_constructor.xml:660
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Well-Known Text representation "
@@ -1124,7 +1294,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:582
+#: reference_constructor.xml:663
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></"
@@ -1136,7 +1306,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:598
+#: reference_constructor.xml:679
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry object from the OGC Well-Known text "
@@ -1144,7 +1314,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:602
+#: reference_constructor.xml:683
 #, no-c-format
 msgid ""
 "There are 2 variants of ST_GeomFromText function, the first takes no SRID "
@@ -1155,23 +1325,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:608 reference_constructor.xml:1554
+#: reference_constructor.xml:689 reference_constructor.xml:1759
 #, no-c-format
 msgid "&sfs_compliant; s3.2.6.2 - option SRID is from the conformance suite."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:611
+#: reference_constructor.xml:692
 #, no-c-format
 msgid ""
-"Changed: 2.0.0 In prior versions of PostGIS ST_GeomFromText"
-"('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now illegal in PostGIS "
-"2.0.0 to better conform with SQL/MM standards. This should now be written as "
-"ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
+"Changed: 2.0.0 In prior versions of PostGIS "
+"ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now "
+"illegal in PostGIS 2.0.0 to better conform with SQL/MM standards. This "
+"should now be written as ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:618
+#: reference_constructor.xml:699
 #, no-c-format
 msgid ""
 "SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 "
@@ -1219,19 +1389,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:622
+#: reference_constructor.xml:703
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:628
+#: reference_constructor.xml:709
 #, no-c-format
 msgid "ST_GeomFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:629
+#: reference_constructor.xml:710
 #, no-c-format
 msgid ""
 "Creates a geometry instance from a Well-Known Binary geometry representation "
@@ -1239,7 +1409,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:634 reference_constructor.xml:1576
+#: reference_constructor.xml:715 reference_constructor.xml:1781
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></"
@@ -1251,7 +1421,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:651
+#: reference_constructor.xml:732
 #, no-c-format
 msgid ""
 "The <varname>ST_GeomFromWKB</varname> function, takes a well-known binary "
@@ -1262,26 +1432,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:657
+#: reference_constructor.xml:738
 #, no-c-format
-msgid "If SRID is not specified, it defaults to -1 (Unknown)."
+msgid "If SRID is not specified, it defaults to 0 (Unknown)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:658
+#: reference_constructor.xml:739
 #, no-c-format
 msgid ""
 "&sfs_compliant; s3.2.7.2 - the optional SRID is from the conformance suite"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:659
+#: reference_constructor.xml:740
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.41"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:667
+#: reference_constructor.xml:748
 #, no-c-format
 msgid ""
 "--Although bytea rep contains single \\, these need to be escaped when "
@@ -1311,26 +1481,154 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:674
+#: reference_constructor.xml:755
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:680
+#: reference_constructor.xml:762
+#, no-c-format
+msgid "ST_GeomFromTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:763
+#, no-c-format
+msgid ""
+"Creates a geometry instance from a Tiny Well-Known Binary geometry "
+"representation (TWKB)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:769
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_GeomFromTWKB</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:779
+#, no-c-format
+msgid ""
+"The <varname>ST_GeomFromTWKB</varname> function, takes a tiny well-known "
+"binary representation of a geometry and creates an instance of the "
+"appropriate geometry type."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:783
+#, no-c-format
+msgid "SRID always defaults to 0 (Unknown)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:785
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So a 3D geoemtry in TWKB will "
+"always be a GeometryZ, like PointZ when converted to PostGIS geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:793
+#, no-c-format
+msgid ""
+"--Although bytea rep contains single \\, these need to be escaped when "
+"inserting into a table \n"
+"                -- unless standard_conforming_strings is set to on.\n"
+"SELECT ST_AsEWKT(\n"
+"ST_GeomFromTWKB(E'\\\\x304202f7f40dbce4040105')\n"
+");\n"
+"                                          st_asewkt\n"
+"------------------------------------------------------\n"
+"LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+"(1 row)\n"
+"\n"
+"SELECT\n"
+"  ST_AsText(\n"
+"        ST_GeomFromTWKB(\n"
+"          ST_AsTWKB('POINT(2 5)'::geometry,0)\n"
+"        )\n"
+"  );\n"
+" st_astext\n"
+"------------\n"
+" POINT(2 5)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:800
+#, no-c-format
+msgid ""
+",<xref linkend=\"ST_AsTWKB\"/>,<xref linkend=\"ST_AsTWKBAgg\"/>,<xref "
+"linkend=\"ST_WKBToSQL\"/>, <xref linkend=\"ST_AsBinary\"/>, <xref linkend="
+"\"ST_GeomFromEWKB\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:806
+#, no-c-format
+msgid "ST_LineFromEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:808
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:813
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_LineFromEncodedPolyline</function></funcdef> "
+"<paramdef><type>text </type> <parameter>polyline</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:824
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:825
+#, no-c-format
+msgid ""
+"See http://developers.google.com/maps/documentation/utilities/"
+"polylinealgorithm"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:832
+#, no-c-format
+msgid ""
+"--Create a line string from a polyline\n"
+"SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|"
+"U_ulLnnqC_mqNvxq`@'));\n"
+"--result--\n"
+"LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:845
 #, no-c-format
 msgid "ST_LineFromMultiPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:682
+#: reference_constructor.xml:847
 #, no-c-format
 msgid ""
 "<refpurpose>Creates a LineString from a MultiPoint geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:687
+#: reference_constructor.xml:852
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> "
@@ -1339,13 +1637,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:697
+#: reference_constructor.xml:862
 #, no-c-format
 msgid "<para>Creates a LineString from a MultiPoint geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:705
+#: reference_constructor.xml:870
 #, no-c-format
 msgid ""
 "--Create a 3d line string from a 3d multipoint\n"
@@ -1356,27 +1654,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:712
+#: reference_constructor.xml:877
 #, no-c-format
 msgid ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:718
+#: reference_constructor.xml:883
 #, no-c-format
 msgid "ST_LineFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:720
+#: reference_constructor.xml:885
 #, no-c-format
 msgid ""
 "Makes a Geometry from WKT representation with the given SRID. If SRID is not "
-"given, it defaults to -1."
+"given, it defaults to 0."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:725
+#: reference_constructor.xml:890
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></"
@@ -1388,21 +1686,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:742
+#: reference_constructor.xml:907
 #, no-c-format
 msgid ""
 "Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
-"defaults to -1. If WKT passed in is not a LINESTRING, then null is returned."
+"defaults to 0. If WKT passed in is not a LINESTRING, then null is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:746 reference_constructor.xml:812
+#: reference_constructor.xml:911 reference_constructor.xml:977
 #, no-c-format
 msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:751
+#: reference_constructor.xml:916
 #, no-c-format
 msgid ""
 "If you know all your geometries are LINESTRINGS, its more efficient to just "
@@ -1411,36 +1709,36 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:757
+#: reference_constructor.xml:922
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.8"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:765
+#: reference_constructor.xml:930
 #, no-c-format
 msgid ""
-"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, ST_LineFromText"
-"('POINT(1 2)') AS null_return;\n"
+"SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, "
+"ST_LineFromText('POINT(1 2)') AS null_return;\n"
 "aline                            | null_return\n"
 "------------------------------------------------\n"
 "010200000002000000000000000000F ... | t"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:778
+#: reference_constructor.xml:943
 #, no-c-format
 msgid "ST_LineFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:780
+#: reference_constructor.xml:945
 #, no-c-format
 msgid "Makes a <varname>LINESTRING</varname> from WKB with the given SRID"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:784
+#: reference_constructor.xml:949
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></"
@@ -1452,7 +1750,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:801
+#: reference_constructor.xml:966
 #, no-c-format
 msgid ""
 "The <varname>ST_LineFromWKB</varname> function, takes a well-known binary "
@@ -1463,16 +1761,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:807
+#: reference_constructor.xml:972
 #, no-c-format
 msgid ""
-"If an SRID is not specified, it defaults to -1. <varname>NULL</varname> is "
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
 "returned if the input <varname>bytea</varname> does not represent a "
 "<varname>LINESTRING</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:817
+#: reference_constructor.xml:982
 #, no-c-format
 msgid ""
 "If you know all your geometries are <varname>LINESTRING</varname>s, its more "
@@ -1482,13 +1780,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:825 reference_constructor.xml:891
+#: reference_constructor.xml:990 reference_constructor.xml:1056
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.9"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:833
+#: reference_constructor.xml:998
 #, no-c-format
 msgid ""
 "SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) "
@@ -1501,25 +1799,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:840
+#: reference_constructor.xml:1005
 #, no-c-format
 msgid ", <xref linkend=\"ST_LinestringFromWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:846
+#: reference_constructor.xml:1011
 #, no-c-format
 msgid "ST_LinestringFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:848
+#: reference_constructor.xml:1013
 #, no-c-format
 msgid "Makes a geometry from WKB with the given SRID."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:852
+#: reference_constructor.xml:1017
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></"
@@ -1531,7 +1829,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:869
+#: reference_constructor.xml:1034
 #, no-c-format
 msgid ""
 "The <varname>ST_LinestringFromWKB</varname> function, takes a well-known "
@@ -1542,23 +1840,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:875
+#: reference_constructor.xml:1040
 #, no-c-format
 msgid ""
-"If an SRID is not specified, it defaults to -1. <varname>NULL</varname> is "
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
 "returned if the input <varname>bytea</varname> does not represent a "
 "<varname>LINESTRING</varname> geometry. This an alias for <xref linkend="
 "\"ST_LineFromWKB\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:880
+#: reference_constructor.xml:1045
 #, no-c-format
 msgid "OGC SPEC 3.2.6.2 - optional SRID is from the conformance suite."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:884
+#: reference_constructor.xml:1049
 #, no-c-format
 msgid ""
 "If you know all your geometries are <varname>LINESTRING</varname>s, it's "
@@ -1568,7 +1866,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:897
+#: reference_constructor.xml:1062
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -1584,25 +1882,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:904 reference_constructor.xml:1618
+#: reference_constructor.xml:1069 reference_constructor.xml:1823
 #, no-c-format
 msgid ", <xref linkend=\"ST_LineFromWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:910
+#: reference_constructor.xml:1075
 #, no-c-format
 msgid "ST_MakeBox2D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:912
+#: reference_constructor.xml:1077
 #, no-c-format
 msgid "Creates a BOX2D defined by the given point geometries."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:918
+#: reference_constructor.xml:1083
 #, no-c-format
 msgid ""
 "<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> "
@@ -1612,7 +1910,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:929
+#: reference_constructor.xml:1094
 #, no-c-format
 msgid ""
 "Creates a BOX2D defined by the given point geometries. This is useful for "
@@ -1620,7 +1918,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:937
+#: reference_constructor.xml:1102
 #, no-c-format
 msgid ""
 "--Return all features that fall reside or partly reside in a US national "
@@ -1635,7 +1933,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:944
+#: reference_constructor.xml:1109
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -1643,19 +1941,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:950
+#: reference_constructor.xml:1115
 #, no-c-format
 msgid "ST_3DMakeBox"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:952
+#: reference_constructor.xml:1117
 #, no-c-format
 msgid "Creates a BOX3D defined by the given 3d point geometries."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:957
+#: reference_constructor.xml:1122
 #, no-c-format
 msgid ""
 "<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> "
@@ -1665,25 +1963,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:968
+#: reference_constructor.xml:1133
 #, no-c-format
 msgid "Creates a BOX3D defined by the given 2 3D point geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:975
+#: reference_constructor.xml:1140
 #, no-c-format
 msgid "This function supports 3d and will not drop the z-index."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:977
+#: reference_constructor.xml:1142
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_MakeBox3D"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:984
+#: reference_constructor.xml:1149
 #, no-c-format
 msgid ""
 "SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
@@ -1695,25 +1993,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:991
+#: reference_constructor.xml:1156
 #, no-c-format
 msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:997
+#: reference_constructor.xml:1162
 #, no-c-format
 msgid "ST_MakeLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:999
+#: reference_constructor.xml:1164
 #, no-c-format
 msgid "Creates a Linestring from point or line geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1003
+#: reference_constructor.xml:1168
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> "
@@ -1727,7 +2025,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1025
+#: reference_constructor.xml:1190
 #, no-c-format
 msgid ""
 "ST_MakeLine comes in 3 forms: a spatial aggregate that takes rows of point-"
@@ -1738,13 +2036,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1030
+#: reference_constructor.xml:1195
 #, no-c-format
 msgid "When adding line components a common node is removed from the output."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1035
+#: reference_constructor.xml:1200
 #, no-c-format
 msgid ""
 "Availability: 1.4.0 - ST_MakeLine(geomarray) was introduced. ST_MakeLine "
@@ -1752,20 +2050,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1036
+#: reference_constructor.xml:1201
 #, no-c-format
 msgid ""
 "Availability: 2.0.0 - Support for linestring input elements was introduced"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1040
+#: reference_constructor.xml:1205
 #, no-c-format
 msgid "Examples: Spatial Aggregate version"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1041
+#: reference_constructor.xml:1206
 #, no-c-format
 msgid ""
 "This example takes a sequence of GPS points and creates one record for each "
@@ -1774,7 +2072,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1045
+#: reference_constructor.xml:1210
 #, no-c-format
 msgid ""
 "-- For pre-PostgreSQL 9.0 - this usually works, \n"
@@ -1788,7 +2086,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1047
+#: reference_constructor.xml:1212
 #, no-c-format
 msgid ""
 "-- If you are using PostgreSQL 9.0+ \n"
@@ -1802,13 +2100,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1050
+#: reference_constructor.xml:1215
 #, no-c-format
 msgid "Examples: Non-Spatial Aggregate version"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1052
+#: reference_constructor.xml:1217
 #, no-c-format
 msgid ""
 "First example is a simple one off line string composed of 2 points. The "
@@ -1817,7 +2115,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1054
+#: reference_constructor.xml:1219
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
@@ -1835,13 +2133,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1058
+#: reference_constructor.xml:1223
 #, no-c-format
 msgid "Examples: Using Array version"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1060
+#: reference_constructor.xml:1225
 #, no-c-format
 msgid ""
 "SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations "
@@ -1849,15 +2147,15 @@ msgid ""
 "\n"
 "--Making a 3d line with 3 3-d points\n"
 "SELECT ST_AsEWKT(ST_MakeLine(ARRAY[ST_MakePoint(1,2,3),\n"
-"                                ST_MakePoint(3,4,5), ST_MakePoint"
-"(6,6,6)]));\n"
+"                                ST_MakePoint(3,4,5), "
+"ST_MakePoint(6,6,6)]));\n"
 "                st_asewkt\n"
 "-------------------------\n"
 "LINESTRING(1 2 3,3 4 5,6 6 6)"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1067
+#: reference_constructor.xml:1232
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref "
@@ -1865,13 +2163,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1074
+#: reference_constructor.xml:1239
 #, no-c-format
 msgid "ST_MakeEnvelope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1076
+#: reference_constructor.xml:1241
 #, no-c-format
 msgid ""
 "Creates a rectangular Polygon formed from the given minimums and maximums. "
@@ -1879,7 +2177,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1082
+#: reference_constructor.xml:1247
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> "
@@ -1892,7 +2190,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1096
+#: reference_constructor.xml:1261
 #, no-c-format
 msgid ""
 "Creates a rectangular Polygon formed from the minima and maxima. by the "
@@ -1901,13 +2199,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1099
+#: reference_constructor.xml:1264
 #, no-c-format
 msgid "Availability: 1.5"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1100
+#: reference_constructor.xml:1265
 #, no-c-format
 msgid ""
 "Enhanced: 2.0: Ability to specify an envelope without specifying an SRID was "
@@ -1915,13 +2213,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1105
+#: reference_constructor.xml:1270
 #, no-c-format
 msgid "Example: Building a bounding box polygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1106
+#: reference_constructor.xml:1271
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
@@ -1932,19 +2230,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1110
+#: reference_constructor.xml:1275
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1116
+#: reference_constructor.xml:1281
 #, no-c-format
 msgid "ST_MakePolygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1118
+#: reference_constructor.xml:1283
 #, no-c-format
 msgid ""
 "Creates a Polygon formed by the given shell. Input geometries must be closed "
@@ -1952,7 +2250,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1124
+#: reference_constructor.xml:1289
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
@@ -1960,7 +2258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1130
+#: reference_constructor.xml:1295
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePolygon</function></funcdef> "
@@ -1970,7 +2268,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1141
+#: reference_constructor.xml:1306
 #, no-c-format
 msgid ""
 "Creates a Polygon formed by the given shell. Input geometries must be closed "
@@ -1978,13 +2276,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1143
+#: reference_constructor.xml:1308
 #, no-c-format
 msgid "Variant 1: takes one closed linestring."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1144
+#: reference_constructor.xml:1309
 #, no-c-format
 msgid ""
 "Variant 2: Creates a Polygon formed by the given shell and array of holes. "
@@ -1993,7 +2291,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1148
+#: reference_constructor.xml:1313
 #, no-c-format
 msgid ""
 "This function will not accept a MULTILINESTRING. Use <xref linkend="
@@ -2001,13 +2299,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1155
+#: reference_constructor.xml:1320
 #, no-c-format
 msgid "Examples: Single closed LINESTRING"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1156
+#: reference_constructor.xml:1321
 #, no-c-format
 msgid ""
 "--2d line\n"
@@ -2039,19 +2337,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1159
+#: reference_constructor.xml:1324
 #, no-c-format
 msgid "Examples: Outter shell with inner shells"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1161
+#: reference_constructor.xml:1326
 #, no-c-format
 msgid "Build a donut with an ant hole"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1162
+#: reference_constructor.xml:1327
 #, no-c-format
 msgid ""
 "SELECT ST_MakePolygon(\n"
@@ -2066,7 +2364,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1163
+#: reference_constructor.xml:1328
 #, no-c-format
 msgid ""
 "Build province boundaries with holes representing lakes in the province from "
@@ -2075,7 +2373,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1167
+#: reference_constructor.xml:1332
 #, no-c-format
 msgid ""
 "The use of CASE because feeding a null array into ST_MakePolygon results in "
@@ -2083,7 +2381,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1169
+#: reference_constructor.xml:1334
 #, no-c-format
 msgid ""
 "the use of left join to guarantee we get all provinces back even if they "
@@ -2091,7 +2389,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1170
+#: reference_constructor.xml:1335
 #, no-c-format
 msgid ""
 "SELECT p.gid, p.province_name,\n"
@@ -2101,8 +2399,8 @@ msgid ""
 "ST_Accum(w.the_geom)) END\n"
 "        FROM\n"
 "                provinces p LEFT JOIN waterlines w\n"
-"                        ON (ST_Within(w.the_geom, p.the_geom) AND ST_IsClosed"
-"(w.the_geom))\n"
+"                        ON (ST_Within(w.the_geom, p.the_geom) AND "
+"ST_IsClosed(w.the_geom))\n"
 "        GROUP BY p.gid, p.province_name, p.the_geom;\n"
 "\n"
 "        --Same example above but utilizing a correlated subquery\n"
@@ -2126,7 +2424,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1174
+#: reference_constructor.xml:1339
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, "
@@ -2135,19 +2433,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1187
+#: reference_constructor.xml:1352
 #, no-c-format
 msgid "ST_MakePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1189
+#: reference_constructor.xml:1354
 #, no-c-format
 msgid "Creates a 2D,3DZ or 4D point geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1194
+#: reference_constructor.xml:1359
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
@@ -2156,7 +2454,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1201
+#: reference_constructor.xml:1366
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
@@ -2166,7 +2464,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1209
+#: reference_constructor.xml:1374
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePoint</function></funcdef> "
@@ -2177,7 +2475,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1222
+#: reference_constructor.xml:1387
 #, no-c-format
 msgid ""
 "Creates a 2D,3DZ or 4D point geometry (geometry with measure). "
@@ -2188,20 +2486,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1228
+#: reference_constructor.xml:1393
 #, no-c-format
 msgid "Note x is longitude and y is latitude"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1229
+#: reference_constructor.xml:1394
 #, no-c-format
 msgid ""
 "Use <xref linkend=\"ST_MakePointM\"/> if you need to make a point with x,y,m."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1236
+#: reference_constructor.xml:1401
 #, no-c-format
 msgid ""
 "--Return point with unknown SRID\n"
@@ -2221,7 +2519,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1240
+#: reference_constructor.xml:1405
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
@@ -2229,19 +2527,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1246
+#: reference_constructor.xml:1411
 #, no-c-format
 msgid "ST_MakePointM"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1248
+#: reference_constructor.xml:1413
 #, no-c-format
 msgid "Creates a point geometry with an x y and m coordinate."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1253
+#: reference_constructor.xml:1418
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakePointM</function></funcdef> "
@@ -2251,19 +2549,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1265
+#: reference_constructor.xml:1430
 #, no-c-format
 msgid "Creates a point with x, y and measure coordinates."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1266
+#: reference_constructor.xml:1431
 #, no-c-format
 msgid "Note x is longitude and y is latitude."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1271
+#: reference_constructor.xml:1436
 #, no-c-format
 msgid ""
 "We use ST_AsEWKT in these examples to show the text representation instead "
@@ -2271,7 +2569,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1273
+#: reference_constructor.xml:1438
 #, no-c-format
 msgid ""
 "--Return EWKT representation of point with unknown SRID\n"
@@ -2302,25 +2600,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1277
+#: reference_constructor.xml:1442
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1283
+#: reference_constructor.xml:1448
 #, no-c-format
 msgid "ST_MLineFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1285
+#: reference_constructor.xml:1450
 #, no-c-format
 msgid "Return a specified ST_MultiLineString value from WKT representation."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1289
+#: reference_constructor.xml:1454
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></"
@@ -2332,21 +2630,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1307
+#: reference_constructor.xml:1472
 #, no-c-format
 msgid ""
 "Makes a Geometry from Well-Known-Text (WKT) with the given SRID. If SRID is "
-"not give, it defaults to -1."
+"not give, it defaults to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1313
+#: reference_constructor.xml:1478
 #, no-c-format
 msgid "Returns null if the WKT is not a MULTILINESTRING"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1316 reference_constructor.xml:1377
+#: reference_constructor.xml:1481 reference_constructor.xml:1542
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are points, don't use "
@@ -2355,33 +2653,33 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1322
+#: reference_constructor.xml:1487
 #, no-c-format
 msgid "&sqlmm_compliant;SQL-MM 3: 9.4.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1330
+#: reference_constructor.xml:1495
 #, no-c-format
 msgid "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1343
+#: reference_constructor.xml:1508
 #, no-c-format
 msgid "ST_MPointFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1345 reference_constructor.xml:1675
+#: reference_constructor.xml:1510 reference_constructor.xml:1880
 #, no-c-format
 msgid ""
 "<refpurpose>Makes a Geometry from WKT with the given SRID. If SRID is not "
-"give, it defaults to -1.</refpurpose>"
+"give, it defaults to 0.</refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1350
+#: reference_constructor.xml:1515
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></"
@@ -2393,33 +2691,33 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1368
+#: reference_constructor.xml:1533
 #, no-c-format
 msgid ""
 "<para>Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
-"defaults to -1.</para>"
+"defaults to 0.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1374
+#: reference_constructor.xml:1539
 #, no-c-format
 msgid "Returns null if the WKT is not a MULTIPOINT"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1382
+#: reference_constructor.xml:1547
 #, no-c-format
 msgid "&sfs_compliant; 3.2.6.2"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1383
+#: reference_constructor.xml:1548
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.2.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1391
+#: reference_constructor.xml:1556
 #, no-c-format
 msgid ""
 "SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
@@ -2428,21 +2726,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1404
+#: reference_constructor.xml:1569
 #, no-c-format
 msgid "ST_MPolyFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1406
+#: reference_constructor.xml:1571
 #, no-c-format
 msgid ""
 "Makes a MultiPolygon Geometry from WKT with the given SRID. If SRID is not "
-"give, it defaults to -1."
+"give, it defaults to 0."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1411
+#: reference_constructor.xml:1576
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></"
@@ -2454,21 +2752,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1429
+#: reference_constructor.xml:1594
 #, no-c-format
 msgid ""
 "Makes a MultiPolygon from WKT with the given SRID. If SRID is not give, it "
-"defaults to -1."
+"defaults to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1435
+#: reference_constructor.xml:1600
 #, no-c-format
 msgid "Throws an error if the WKT is not a MULTIPOLYGON"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1438
+#: reference_constructor.xml:1603
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are multipolygons, don't "
@@ -2477,13 +2775,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1444
+#: reference_constructor.xml:1609
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.6.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1452
+#: reference_constructor.xml:1617
 #, no-c-format
 msgid ""
 "SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),"
@@ -2506,13 +2804,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1465
+#: reference_constructor.xml:1630
 #, no-c-format
 msgid "ST_Point"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1467
+#: reference_constructor.xml:1632
 #, no-c-format
 msgid ""
 "Returns an ST_Point with the given coordinate values. OGC alias for "
@@ -2520,7 +2818,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1472
+#: reference_constructor.xml:1637
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Point</function></funcdef> "
@@ -2529,7 +2827,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1483
+#: reference_constructor.xml:1648
 #, no-c-format
 msgid ""
 "Returns an ST_Point with the given coordinate values. MM compliant alias for "
@@ -2537,31 +2835,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1486
+#: reference_constructor.xml:1651
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.2"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1492
+#: reference_constructor.xml:1657
 #, no-c-format
 msgid "Examples: Geometry"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1494
+#: reference_constructor.xml:1659
 #, no-c-format
 msgid "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1498
+#: reference_constructor.xml:1663
 #, no-c-format
 msgid "Examples: Geography"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1500
+#: reference_constructor.xml:1665
 #, no-c-format
 msgid ""
 "SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) "
@@ -2569,7 +2867,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1501
+#: reference_constructor.xml:1666
 #, no-c-format
 msgid ""
 "-- the :: is PostgreSQL short-hand for casting.\n"
@@ -2578,7 +2876,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1503
+#: reference_constructor.xml:1668
 #, no-c-format
 msgid ""
 "--If your point coordinates are in a different spatial reference from WGS-84 "
@@ -2590,7 +2888,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1510
+#: reference_constructor.xml:1675
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -2598,13 +2896,88 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1516
+#: reference_constructor.xml:1681
+#, no-c-format
+msgid "ST_PointFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1683
+#, no-c-format
+msgid "Return a point from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1688
+#, no-c-format
+msgid ""
+"<funcdef>point <function>ST_PointFromGeoHash</function></funcdef> "
+"<paramdef><type>text </type> <parameter>geohash</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1699
+#, no-c-format
+msgid ""
+"Return a point from a GeoHash string. The point represents the center point "
+"of the GeoHash."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1701
+#, no-c-format
+msgid ""
+"If no <varname>precision</varname> is specficified ST_PointFromGeoHash "
+"returns a point based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1703
+#, no-c-format
+msgid ""
+"If <varname>precision</varname> is specified ST_PointFromGeoHash will use "
+"that many characters from the GeoHash to create the point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1710
+#, no-c-format
+msgid ""
+"<![CDATA[SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+"          st_astext\n"
+"------------------------------\n"
+" POINT(-115.172816 36.114646)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+"             st_astext\n"
+"-----------------------------------\n"
+" POINT(-115.13671875 36.123046875)\n"
+"\n"
+"SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+"                 st_astext\n"
+"-------------------------------------------\n"
+" POINT(-115.172815918922 36.1146435141563)\n"
+"                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1715
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_GeomFromGeoHash"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1721
 #, no-c-format
 msgid "ST_PointFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1517
+#: reference_constructor.xml:1722
 #, no-c-format
 msgid ""
 "Makes a point Geometry from WKT with the given SRID. If SRID is not given, "
@@ -2612,7 +2985,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1521
+#: reference_constructor.xml:1726
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></"
@@ -2624,17 +2997,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1537
+#: reference_constructor.xml:1742
 #, no-c-format
 msgid ""
 "Constructs a PostGIS ST_Geometry point object from the OGC Well-Known text "
-"representation. If SRID is not give, it defaults to unknown (currently -1). "
+"representation. If SRID is not give, it defaults to unknown (currently 0). "
 "If geometry is not a WKT point representation, returns null. If completely "
 "invalid WKT, then throws an error."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1543
+#: reference_constructor.xml:1748
 #, no-c-format
 msgid ""
 "There are 2 variants of ST_PointFromText function, the first takes no SRID "
@@ -2645,7 +3018,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1550
+#: reference_constructor.xml:1755
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are points, don't use "
@@ -2657,13 +3030,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1555
+#: reference_constructor.xml:1760
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.8"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1560
+#: reference_constructor.xml:1765
 #, no-c-format
 msgid ""
 "SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
@@ -2671,7 +3044,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1564
+#: reference_constructor.xml:1769
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref "
@@ -2679,19 +3052,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1570
+#: reference_constructor.xml:1775
 #, no-c-format
 msgid "ST_PointFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1572
+#: reference_constructor.xml:1777
 #, no-c-format
 msgid "Makes a geometry from WKB with the given SRID"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1593
+#: reference_constructor.xml:1798
 #, no-c-format
 msgid ""
 "The <varname>ST_PointFromWKB</varname> function, takes a well-known binary "
@@ -2702,28 +3075,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1599
+#: reference_constructor.xml:1804
 #, no-c-format
 msgid ""
-"If an SRID is not specified, it defaults to -1. <varname>NULL</varname> is "
+"If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is "
 "returned if the input <varname>bytea</varname> does not represent a "
 "<varname>POINT</varname> geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1602
+#: reference_constructor.xml:1807
 #, no-c-format
 msgid "&sfs_compliant; s3.2.7.2"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1603
+#: reference_constructor.xml:1808
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.9"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1611
+#: reference_constructor.xml:1816
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -2750,13 +3123,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1624
+#: reference_constructor.xml:1829
 #, no-c-format
 msgid "ST_Polygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1626
+#: reference_constructor.xml:1831
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a polygon built from the specified linestring and SRID.</"
@@ -2764,7 +3137,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1631
+#: reference_constructor.xml:1836
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Polygon</function></funcdef> "
@@ -2774,14 +3147,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1642
+#: reference_constructor.xml:1847
 #, no-c-format
 msgid ""
 "<para>Returns a polygon built from the specified linestring and SRID.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1646
+#: reference_constructor.xml:1851
 #, no-c-format
 msgid ""
 "ST_Polygon is similar to first version oST_MakePolygon except it also sets "
@@ -2791,13 +3164,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1651
+#: reference_constructor.xml:1856
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.3.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1660
+#: reference_constructor.xml:1865
 #, no-c-format
 msgid ""
 "--a 2d polygon\n"
@@ -2816,7 +3189,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1667
+#: reference_constructor.xml:1872
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref "
@@ -2825,13 +3198,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1673
+#: reference_constructor.xml:1878
 #, no-c-format
 msgid "ST_PolygonFromText"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1680
+#: reference_constructor.xml:1885
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></"
@@ -2843,15 +3216,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1696
+#: reference_constructor.xml:1901
 #, no-c-format
 msgid ""
 "Makes a Geometry from WKT with the given SRID. If SRID is not give, it "
-"defaults to -1. Returns null if WKT is not a polygon."
+"defaults to 0. Returns null if WKT is not a polygon."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1703
+#: reference_constructor.xml:1908
 #, no-c-format
 msgid ""
 "If you are absolutely sure all your WKT geometries are polygons, don't use "
@@ -2860,13 +3233,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1706
+#: reference_constructor.xml:1911
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.3.6"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1712
+#: reference_constructor.xml:1917
 #, no-c-format
 msgid ""
 "SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 "
@@ -2886,13 +3259,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1725
+#: reference_constructor.xml:1930
 #, no-c-format
 msgid "ST_WKBToSQL"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1726
+#: reference_constructor.xml:1931
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from Well-Known Binary representation "
@@ -2900,7 +3273,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1730
+#: reference_constructor.xml:1935
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> "
@@ -2908,19 +3281,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1738
+#: reference_constructor.xml:1943
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.36"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1748
+#: reference_constructor.xml:1953
 #, no-c-format
 msgid "ST_WKTToSQL"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1753
+#: reference_constructor.xml:1958
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> "
@@ -2928,7 +3301,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1761
+#: reference_constructor.xml:1966
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.34"
 msgstr ""
diff --git a/doc/po/pt_BR/reference_editor.xml.po b/doc/po/pt_BR/reference_editor.xml.po
index cebc1c0..b77c445 100644
--- a/doc/po/pt_BR/reference_editor.xml.po
+++ b/doc/po/pt_BR/reference_editor.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -55,16 +55,17 @@ msgstr ""
 
 #. Tag: title
 #: reference_editor.xml:30 reference_editor.xml:89 reference_editor.xml:148
-#: reference_editor.xml:193 reference_editor.xml:235 reference_editor.xml:277
-#: reference_editor.xml:317 reference_editor.xml:357 reference_editor.xml:407
-#: reference_editor.xml:453 reference_editor.xml:495 reference_editor.xml:543
-#: reference_editor.xml:582 reference_editor.xml:616 reference_editor.xml:649
-#: reference_editor.xml:693 reference_editor.xml:742 reference_editor.xml:789
-#: reference_editor.xml:838 reference_editor.xml:902 reference_editor.xml:962
-#: reference_editor.xml:1004 reference_editor.xml:1047
-#: reference_editor.xml:1124 reference_editor.xml:1202
-#: reference_editor.xml:1338 reference_editor.xml:1421
-#: reference_editor.xml:1475
+#: reference_editor.xml:194 reference_editor.xml:237 reference_editor.xml:280
+#: reference_editor.xml:321 reference_editor.xml:362 reference_editor.xml:416
+#: reference_editor.xml:445 reference_editor.xml:491 reference_editor.xml:536
+#: reference_editor.xml:578 reference_editor.xml:629 reference_editor.xml:672
+#: reference_editor.xml:706 reference_editor.xml:739 reference_editor.xml:783
+#: reference_editor.xml:832 reference_editor.xml:879 reference_editor.xml:928
+#: reference_editor.xml:992 reference_editor.xml:1052
+#: reference_editor.xml:1094 reference_editor.xml:1137
+#: reference_editor.xml:1214 reference_editor.xml:1292
+#: reference_editor.xml:1428 reference_editor.xml:1511
+#: reference_editor.xml:1565
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -78,36 +79,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:35 reference_editor.xml:460 reference_editor.xml:619
-#: reference_editor.xml:1009
+#: reference_editor.xml:35 reference_editor.xml:543 reference_editor.xml:709
+#: reference_editor.xml:1099
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:158
-#: reference_editor.xml:200 reference_editor.xml:241 reference_editor.xml:321
-#: reference_editor.xml:366 reference_editor.xml:416 reference_editor.xml:620
-#: reference_editor.xml:702 reference_editor.xml:752 reference_editor.xml:800
-#: reference_editor.xml:851 reference_editor.xml:917 reference_editor.xml:1011
-#: reference_editor.xml:1155 reference_editor.xml:1429
-#: reference_editor.xml:1488
+#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:159
+#: reference_editor.xml:202 reference_editor.xml:244 reference_editor.xml:326
+#: reference_editor.xml:372 reference_editor.xml:421 reference_editor.xml:454
+#: reference_editor.xml:500 reference_editor.xml:710 reference_editor.xml:792
+#: reference_editor.xml:842 reference_editor.xml:890 reference_editor.xml:941
+#: reference_editor.xml:1007 reference_editor.xml:1101
+#: reference_editor.xml:1245 reference_editor.xml:1519
+#: reference_editor.xml:1578
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:163
-#: reference_editor.xml:205 reference_editor.xml:247 reference_editor.xml:287
-#: reference_editor.xml:327 reference_editor.xml:372 reference_editor.xml:421
-#: reference_editor.xml:465 reference_editor.xml:514 reference_editor.xml:554
-#: reference_editor.xml:590 reference_editor.xml:624 reference_editor.xml:655
-#: reference_editor.xml:711 reference_editor.xml:758 reference_editor.xml:807
-#: reference_editor.xml:859 reference_editor.xml:924 reference_editor.xml:976
-#: reference_editor.xml:1015 reference_editor.xml:1063
-#: reference_editor.xml:1160 reference_editor.xml:1236
-#: reference_editor.xml:1366 reference_editor.xml:1434
-#: reference_editor.xml:1494
+#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:164
+#: reference_editor.xml:207 reference_editor.xml:250 reference_editor.xml:291
+#: reference_editor.xml:332 reference_editor.xml:378 reference_editor.xml:459
+#: reference_editor.xml:506 reference_editor.xml:548 reference_editor.xml:600
+#: reference_editor.xml:644 reference_editor.xml:680 reference_editor.xml:714
+#: reference_editor.xml:745 reference_editor.xml:801 reference_editor.xml:848
+#: reference_editor.xml:897 reference_editor.xml:949 reference_editor.xml:1014
+#: reference_editor.xml:1066 reference_editor.xml:1105
+#: reference_editor.xml:1153 reference_editor.xml:1250
+#: reference_editor.xml:1326 reference_editor.xml:1456
+#: reference_editor.xml:1524 reference_editor.xml:1584
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -121,8 +123,8 @@ msgid ""
 "the line string\n"
 "                --only for those that are not closed\n"
 "                UPDATE sometable\n"
-"                SET the_geom = ST_AddPoint(the_geom, ST_StartPoint"
-"(the_geom))\n"
+"                SET the_geom = ST_AddPoint(the_geom, "
+"ST_StartPoint(the_geom))\n"
 "                FROM sometable\n"
 "                WHERE ST_IsClosed(the_geom) = false;\n"
 "\n"
@@ -137,16 +139,17 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:170
-#: reference_editor.xml:212 reference_editor.xml:254 reference_editor.xml:294
-#: reference_editor.xml:334 reference_editor.xml:381 reference_editor.xml:427
-#: reference_editor.xml:470 reference_editor.xml:519 reference_editor.xml:559
-#: reference_editor.xml:595 reference_editor.xml:628 reference_editor.xml:718
-#: reference_editor.xml:765 reference_editor.xml:814 reference_editor.xml:866
-#: reference_editor.xml:931 reference_editor.xml:981 reference_editor.xml:1019
-#: reference_editor.xml:1071 reference_editor.xml:1167
-#: reference_editor.xml:1311 reference_editor.xml:1388
-#: reference_editor.xml:1447 reference_editor.xml:1501
+#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:171
+#: reference_editor.xml:214 reference_editor.xml:257 reference_editor.xml:298
+#: reference_editor.xml:339 reference_editor.xml:387 reference_editor.xml:465
+#: reference_editor.xml:512 reference_editor.xml:553 reference_editor.xml:605
+#: reference_editor.xml:649 reference_editor.xml:685 reference_editor.xml:718
+#: reference_editor.xml:808 reference_editor.xml:855 reference_editor.xml:904
+#: reference_editor.xml:956 reference_editor.xml:1021
+#: reference_editor.xml:1071 reference_editor.xml:1109
+#: reference_editor.xml:1161 reference_editor.xml:1257
+#: reference_editor.xml:1401 reference_editor.xml:1478
+#: reference_editor.xml:1537 reference_editor.xml:1591
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -241,8 +244,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:105 reference_editor.xml:699 reference_editor.xml:749
-#: reference_editor.xml:797 reference_editor.xml:846 reference_editor.xml:915
+#: reference_editor.xml:105 reference_editor.xml:789 reference_editor.xml:839
+#: reference_editor.xml:887 reference_editor.xml:936 reference_editor.xml:1005
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -256,9 +259,9 @@ msgid "Availability: 1.1.2. Name changed from Affine to ST_Affine in 1.2.2"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:107 reference_editor.xml:849 reference_editor.xml:911
-#: reference_editor.xml:1356 reference_editor.xml:1426
-#: reference_editor.xml:1484
+#: reference_editor.xml:107 reference_editor.xml:939 reference_editor.xml:1001
+#: reference_editor.xml:1446 reference_editor.xml:1516
+#: reference_editor.xml:1574
 #, no-c-format
 msgid ""
 "Prior to 1.3.4, this function crashes if used with geometries that contain "
@@ -266,28 +269,30 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:109 reference_editor.xml:157 reference_editor.xml:198
-#: reference_editor.xml:240 reference_editor.xml:365 reference_editor.xml:417
-#: reference_editor.xml:704 reference_editor.xml:751 reference_editor.xml:799
-#: reference_editor.xml:853 reference_editor.xml:916 reference_editor.xml:1361
+#: reference_editor.xml:109 reference_editor.xml:158 reference_editor.xml:200
+#: reference_editor.xml:243 reference_editor.xml:371 reference_editor.xml:418
+#: reference_editor.xml:455 reference_editor.xml:794 reference_editor.xml:841
+#: reference_editor.xml:889 reference_editor.xml:943 reference_editor.xml:1006
+#: reference_editor.xml:1451
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:110 reference_editor.xml:705 reference_editor.xml:753
-#: reference_editor.xml:801 reference_editor.xml:854 reference_editor.xml:919
+#: reference_editor.xml:110 reference_editor.xml:419 reference_editor.xml:795
+#: reference_editor.xml:843 reference_editor.xml:891 reference_editor.xml:944
+#: reference_editor.xml:1009
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:112 reference_editor.xml:156 reference_editor.xml:199
-#: reference_editor.xml:242 reference_editor.xml:282 reference_editor.xml:322
-#: reference_editor.xml:367 reference_editor.xml:703 reference_editor.xml:852
-#: reference_editor.xml:918 reference_editor.xml:1059
-#: reference_editor.xml:1360 reference_editor.xml:1430
-#: reference_editor.xml:1489
+#: reference_editor.xml:112 reference_editor.xml:157 reference_editor.xml:201
+#: reference_editor.xml:245 reference_editor.xml:286 reference_editor.xml:327
+#: reference_editor.xml:373 reference_editor.xml:420 reference_editor.xml:502
+#: reference_editor.xml:793 reference_editor.xml:942 reference_editor.xml:1008
+#: reference_editor.xml:1149 reference_editor.xml:1450
+#: reference_editor.xml:1520 reference_editor.xml:1579
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
@@ -309,8 +314,8 @@ msgid ""
 "(1 row)\n"
 "\n"
 "--Rotate a 3d line 180 degrees in both the x and z axis\n"
-"SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), cos"
-"(pi()), -sin(pi()), 0, sin(pi()), cos(pi()), 0, 0, 0))\n"
+"SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), "
+"cos(pi()), -sin(pi()), 0, sin(pi()), cos(pi()), 0, 0, 0))\n"
 "        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 1 4 3)') As "
 "the_geom) As foo;\n"
 "           st_asewkt\n"
@@ -330,7 +335,7 @@ msgstr ""
 #. Tag: refname
 #: reference_editor.xml:132
 #, no-c-format
-msgid "ST_Force_2D"
+msgid "ST_Force2D"
 msgstr ""
 
 #. Tag: refpurpose
@@ -345,7 +350,7 @@ msgstr ""
 #: reference_editor.xml:140
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_2D</function></funcdef> "
+"<funcdef>geometry <function>ST_Force2D</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
@@ -359,23 +364,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:155 reference_editor.xml:197 reference_editor.xml:239
-#: reference_editor.xml:362 reference_editor.xml:415 reference_editor.xml:1358
+#: reference_editor.xml:155 reference_editor.xml:198 reference_editor.xml:241
+#: reference_editor.xml:367 reference_editor.xml:453 reference_editor.xml:1448
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:156
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_2D."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:165
+#: reference_editor.xml:166
 #, no-c-format
 msgid ""
-"SELECT ST_AsEWKT(ST_Force_2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"SELECT ST_AsEWKT(ST_Force2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
 "5 2, 6 7 2, 5 6 2)')));\n"
 "                st_asewkt\n"
 "-------------------------------------\n"
 "CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
+"SELECT  ST_AsEWKT(ST_Force2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 "
 "2,1 3 2,1 1 2))'));\n"
 "\n"
 "                                  st_asewkt\n"
@@ -384,46 +395,53 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:178
+#: reference_editor.xml:179
 #, no-c-format
-msgid "ST_Force_3D"
+msgid "ST_Force3D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:180
+#: reference_editor.xml:181
 #, no-c-format
-msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ."
+msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force3DZ."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:185
+#: reference_editor.xml:186
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_3D</function></funcdef> "
+"<funcdef>geometry <function>ST_Force3D</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:195
+#: reference_editor.xml:196
 #, no-c-format
 msgid ""
 "Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ. If a "
 "geometry has no Z component, then a 0 Z coordinate is tacked on."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:199
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3D."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:207
+#: reference_editor.xml:209
 #, no-c-format
 msgid ""
 "--Nothing happens to an already 3D geometry\n"
-"                SELECT ST_AsEWKT(ST_Force_3D(ST_GeomFromEWKT('CIRCULARSTRING"
-"(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
+"                SELECT "
+"ST_AsEWKT(ST_Force3D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 "
+"7 2, 5 6 2)')));\n"
 "                                   st_asewkt\n"
 "-----------------------------------------------\n"
 " CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
 "\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"SELECT  ST_AsEWKT(ST_Force3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
 "1))'));\n"
 "\n"
 "                                                 st_asewkt\n"
@@ -432,54 +450,60 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:214
+#: reference_editor.xml:216
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
 "linkend=\"ST_Force_3DZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:220
+#: reference_editor.xml:222
 #, no-c-format
-msgid "ST_Force_3DZ"
+msgid "ST_Force3DZ"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:222
+#: reference_editor.xml:224
 #, no-c-format
-msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force_3D."
+msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force3D."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:227
+#: reference_editor.xml:229
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_3DZ</function></funcdef> "
+"<funcdef>geometry <function>ST_Force3DZ</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:237
+#: reference_editor.xml:239
 #, no-c-format
 msgid ""
-"Forces the geometries into XYZ mode. This is a synonym for ST_Force_3DZ. If "
-"a geometry has no Z component, then a 0 Z coordinate is tacked on."
+"Forces the geometries into XYZ mode. This is a synonym for ST_Force3DZ. If a "
+"geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:242
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DZ."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:249
+#: reference_editor.xml:252
 #, no-c-format
 msgid ""
 "--Nothing happens to an already 3D geometry\n"
-"SELECT ST_AsEWKT(ST_Force_3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, "
-"4 5 2, 6 7 2, 5 6 2)')));\n"
+"SELECT ST_AsEWKT(ST_Force3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
 "                                   st_asewkt\n"
 "-----------------------------------------------\n"
 " CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
 "\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
+"SELECT  ST_AsEWKT(ST_Force3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 "
 "1))'));\n"
 "\n"
 "                                                 st_asewkt\n"
@@ -488,54 +512,60 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:256 reference_editor.xml:336
+#: reference_editor.xml:259 reference_editor.xml:341
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
 "linkend=\"ST_Force_3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:262
+#: reference_editor.xml:265
 #, no-c-format
-msgid "ST_Force_3DM"
+msgid "ST_Force3DM"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:264
+#: reference_editor.xml:267
 #, no-c-format
 msgid "Forces the geometries into XYM mode."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:269
+#: reference_editor.xml:272
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_3DM</function></funcdef> "
+"<funcdef>geometry <function>ST_Force3DM</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:279
+#: reference_editor.xml:282
 #, no-c-format
 msgid ""
 "Forces the geometries into XYM mode. If a geometry has no M component, then "
 "a 0 M coordinate is tacked on. If it has a Z component, then Z is removed"
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:285
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DM."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:289
+#: reference_editor.xml:293
 #, no-c-format
 msgid ""
 "--Nothing happens to an already 3D geometry\n"
-"SELECT ST_AsEWKT(ST_Force_3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, "
-"4 5 2, 6 7 2, 5 6 2)')));\n"
+"SELECT ST_AsEWKT(ST_Force3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"5 2, 6 7 2, 5 6 2)')));\n"
 "                                   st_asewkt\n"
 "------------------------------------------------\n"
 " CIRCULARSTRINGM(1 1 0,2 3 0,4 5 0,6 7 0,5 6 0)\n"
 "\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 "
+"SELECT  ST_AsEWKT(ST_Force3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 "
 "1,1 3 1,1 1 1))'));\n"
 "\n"
 "                                                  st_asewkt\n"
@@ -544,47 +574,53 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:296 reference_editor.xml:383
+#: reference_editor.xml:300 reference_editor.xml:389
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
+", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref "
 "linkend=\"ST_Force_3D\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:302
+#: reference_editor.xml:306
 #, no-c-format
-msgid "ST_Force_4D"
+msgid "ST_Force4D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:304
+#: reference_editor.xml:308
 #, no-c-format
 msgid "Forces the geometries into XYZM mode."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:309
+#: reference_editor.xml:313
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_4D</function></funcdef> "
+"<funcdef>geometry <function>ST_Force4D</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:319
+#: reference_editor.xml:323
 #, no-c-format
 msgid ""
 "Forces the geometries into XYZM mode. 0 is tacked on for missing Z and M "
 "dimensions."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:325
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_4D."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:329
+#: reference_editor.xml:334
 #, no-c-format
 msgid ""
 "--Nothing happens to an already 3D geometry\n"
-"SELECT ST_AsEWKT(ST_Force_4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
+"SELECT ST_AsEWKT(ST_Force4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 "
 "5 2, 6 7 2, 5 6 2)')));\n"
 "                                                st_asewkt\n"
 "---------------------------------------------------------\n"
@@ -592,7 +628,7 @@ msgid ""
 "\n"
 "\n"
 "\n"
-"SELECT  ST_AsEWKT(ST_Force_4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 "
+"SELECT  ST_AsEWKT(ST_Force4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 "
 "1 1,3 1 1,1 3 1,1 1 1))'));\n"
 "\n"
 "                                                                          st_asewkt\n"
@@ -602,27 +638,27 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:342
+#: reference_editor.xml:347
 #, no-c-format
-msgid "ST_Force_Collection"
+msgid "ST_ForceCollection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:344
+#: reference_editor.xml:349
 #, no-c-format
 msgid "Converts the geometry into a GEOMETRYCOLLECTION."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:349
+#: reference_editor.xml:354
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Force_Collection</function></funcdef> "
+"<funcdef>geometry <function>ST_ForceCollection</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:359
+#: reference_editor.xml:364
 #, no-c-format
 msgid ""
 "Converts the geometry into a GEOMETRYCOLLECTION. This is useful for "
@@ -630,19 +666,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:363
+#: reference_editor.xml:368
 #, no-c-format
 msgid ""
 "Availability: 1.2.2, prior to 1.3.4 this function will crash with Curves. "
 "This is fixed in 1.3.4+"
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:369
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_Collection."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:374
+#: reference_editor.xml:380
 #, no-c-format
 msgid ""
-"SELECT  ST_AsEWKT(ST_Force_Collection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 "
-"1 1,3 1 1,1 3 1,1 1 1))'));\n"
+"SELECT  ST_AsEWKT(ST_ForceCollection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 "
+"1,3 1 1,1 3 1,1 1 1))'));\n"
 "\n"
 "                                                                   st_asewkt\n"
 "----------------------------------------------------------------------------------\n"
@@ -650,7 +692,7 @@ msgid ""
 "1)))\n"
 "\n"
 "\n"
-"  SELECT ST_AsText(ST_Force_Collection('CIRCULARSTRING(220227 150406,2220227 "
+"  SELECT ST_AsText(ST_ForceCollection('CIRCULARSTRING(220227 150406,2220227 "
 "150407,220227 150406)'));\n"
 "                                                                   st_astext\n"
 "--------------------------------------------------------------------------------\n"
@@ -660,12 +702,12 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:376
+#: reference_editor.xml:382
 #, no-c-format
 msgid ""
 "-- POLYHEDRAL example --\n"
-"SELECT ST_AsEWKT(ST_Force_Collection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 "
-"1,0 1 0,0 0 0)),\n"
+"SELECT ST_AsEWKT(ST_ForceCollection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 "
+"1 0,0 0 0)),\n"
 " ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
 " ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
 " ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
@@ -685,13 +727,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:390
+#: reference_editor.xml:396
+#, no-c-format
+msgid "ST_ForceSFS"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:398
+#, no-c-format
+msgid "Forces the geometries to use SFS 1.1 geometry types only."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:402
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>geometry <function>ST_ForceSFS</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>geometry <function>ST_ForceSFS</"
+"function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>version</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:428
 #, no-c-format
 msgid "ST_ForceRHR"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:392
+#: reference_editor.xml:430
 #, no-c-format
 msgid ""
 "Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
@@ -699,7 +765,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:398
+#: reference_editor.xml:436
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_ForceRHR</function></funcdef> "
@@ -707,7 +773,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:409
+#: reference_editor.xml:447
 #, no-c-format
 msgid ""
 "Forces the orientation of the vertices in a polygon to follow the Right-Hand-"
@@ -718,7 +784,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:423
+#: reference_editor.xml:461
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(\n"
@@ -734,26 +800,78 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:429
+#: reference_editor.xml:467
 #, no-c-format
 msgid ", <xref linkend=\"ST_Polygonize\"/>, <xref linkend=\"ST_Reverse\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:437
+#: reference_editor.xml:475
+#, no-c-format
+msgid "ST_ForceCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:477
+#, no-c-format
+msgid "Upcasts a geometry into its curved type, if applicable."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:482
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ForceCurve</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:493
+#, no-c-format
+msgid ""
+"Turns a geometry into its curved representation, if applicable: lines become "
+"compoundcurves, multilines become multicurves polygons become curvepolygons "
+"multipolygons become multisurfaces. If the geometry input is already a "
+"curved representation returns back same as input."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:499
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:508
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(\n"
+"  ST_ForceCurve(\n"
+"        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 "
+"2))'::geometry\n"
+"  )\n"
+");\n"
+"                              st_astext\n"
+"----------------------------------------------------------------------\n"
+" CURVEPOLYGON Z ((0 0 2,5 0 2,0 5 2,0 0 2),(1 1 2,1 3 2,3 1 2,1 1 2))\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:520
 #, no-c-format
 msgid "ST_LineMerge"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:439
+#: reference_editor.xml:522
 #, no-c-format
 msgid ""
 "Returns a (set of) LineString(s) formed by sewing together a MULTILINESTRING."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:445
+#: reference_editor.xml:528
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LineMerge</function></funcdef> "
@@ -762,7 +880,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:455
+#: reference_editor.xml:538
 #, no-c-format
 msgid ""
 "Returns a (set of) LineString(s) formed by sewing together the constituent "
@@ -770,7 +888,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:457
+#: reference_editor.xml:540
 #, no-c-format
 msgid ""
 "Only use with MULTILINESTRING/LINESTRINGs. If you feed a polygon or geometry "
@@ -778,13 +896,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:461
+#: reference_editor.xml:544
 #, no-c-format
 msgid "requires GEOS >= 2.1.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:467
+#: reference_editor.xml:550
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_LineMerge(\n"
@@ -809,19 +927,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:471
+#: reference_editor.xml:554
 #, no-c-format
-msgid ", <xref linkend=\"ST_Line_Substring\"/>"
+msgid ", <xref linkend=\"ST_LineSubstring\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:477
+#: reference_editor.xml:560
 #, no-c-format
 msgid "ST_CollectionExtract"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:479
+#: reference_editor.xml:562
 #, no-c-format
 msgid ""
 "Given a (multi)geometry, returns a (multi)geometry consisting only of "
@@ -829,7 +947,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:486
+#: reference_editor.xml:569
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_CollectionExtract</function></funcdef> "
@@ -839,7 +957,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:497
+#: reference_editor.xml:580
 #, no-c-format
 msgid ""
 "Given a (multi)geometry, returns a (multi)geometry consisting only of "
@@ -850,13 +968,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:503
+#: reference_editor.xml:586
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:505
+#: reference_editor.xml:588
 #, no-c-format
 msgid ""
 "Prior to 1.5.3 this function returned non-collection inputs untouched, no "
@@ -865,20 +983,31 @@ msgid ""
 "return."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:594 reference_editor.xml:635
+#, no-c-format
+msgid ""
+"When specifying 3 == POLYGON a multipolygon is returned even when the edges "
+"are shared. This results in an invalid multipolygon for many cases such as "
+"applying this function on an <xref linkend=\"ST_Split\"/> result."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:516
+#: reference_editor.xml:602
 #, no-c-format
 msgid ""
 "-- Constants: 1 == POINT, 2 == LINESTRING, 3 == POLYGON\n"
-"SELECT ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION"
-"(GEOMETRYCOLLECTION(POINT(0 0)))'),1));\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 "
+"0)))'),1));\n"
 "st_astext\n"
 "---------------\n"
 "MULTIPOINT(0 0)\n"
 "(1 row)\n"
 "\n"
-"SELECT ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION"
-"(GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1)),LINESTRING(2 2, 3 3))'),2));\n"
+"SELECT "
+"ST_AsText(ST_CollectionExtract(ST_GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(LINESTRING(0 "
+"0, 1 1)),LINESTRING(2 2, 3 3))'),2));\n"
 "st_astext\n"
 "---------------\n"
 "MULTILINESTRING((0 0, 1 1), (2 2, 3 3))\n"
@@ -886,20 +1015,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:520
+#: reference_editor.xml:606
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_CollectionHomogenize\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:526
+#: reference_editor.xml:612
 #, no-c-format
 msgid "ST_CollectionHomogenize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:528
+#: reference_editor.xml:614
 #, no-c-format
 msgid ""
 "Given a geometry collection, returns the \"simplest\" representation of the "
@@ -907,7 +1036,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:535
+#: reference_editor.xml:621
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_CollectionHomogenize</function></funcdef> "
@@ -915,7 +1044,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:545
+#: reference_editor.xml:631
 #, no-c-format
 msgid ""
 "Given a geometry collection, returns the \"simplest\" representation of the "
@@ -924,13 +1053,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:549
+#: reference_editor.xml:639
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:556
+#: reference_editor.xml:646
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 "
@@ -951,19 +1080,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:560
+#: reference_editor.xml:650
 #, no-c-format
 msgid ", <xref linkend=\"ST_CollectionExtract\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:566
+#: reference_editor.xml:656
 #, no-c-format
 msgid "ST_Multi"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:568
+#: reference_editor.xml:658
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the geometry as a MULTI* geometry. If the geometry is "
@@ -971,7 +1100,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:574
+#: reference_editor.xml:664
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Multi</function></funcdef> "
@@ -979,7 +1108,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:584
+#: reference_editor.xml:674
 #, no-c-format
 msgid ""
 "<para>Returns the geometry as a MULTI* geometry. If the geometry is already "
@@ -987,7 +1116,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:592
+#: reference_editor.xml:682
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Multi(ST_GeomFromText('POLYGON((743238 2967416,743238 "
@@ -1003,19 +1132,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:602
+#: reference_editor.xml:692
 #, no-c-format
 msgid "ST_RemovePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:603
+#: reference_editor.xml:693
 #, no-c-format
 msgid "Removes point from a linestring. Offset is 0-based."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:607
+#: reference_editor.xml:697
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RemovePoint</function></funcdef> "
@@ -1024,7 +1153,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:618
+#: reference_editor.xml:708
 #, no-c-format
 msgid ""
 "Removes point from a linestring. Useful for turning a closed ring into an "
@@ -1032,7 +1161,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:625
+#: reference_editor.xml:715
 #, no-c-format
 msgid ""
 "--guarantee no LINESTRINGS are closed\n"
@@ -1045,25 +1174,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:629
+#: reference_editor.xml:719
 #, no-c-format
 msgid ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:635
+#: reference_editor.xml:725
 #, no-c-format
 msgid "ST_Reverse"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:636
+#: reference_editor.xml:726
 #, no-c-format
 msgid "Returns the geometry with vertex order reversed."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:641
+#: reference_editor.xml:731
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Reverse</function></funcdef> "
@@ -1071,13 +1200,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:651
+#: reference_editor.xml:741
 #, no-c-format
 msgid "Can be used on any geometry and reverses the order of the vertexes."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:656
+#: reference_editor.xml:746
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(the_geom) as line, ST_AsText(ST_Reverse(the_geom)) As "
@@ -1092,19 +1221,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:662
+#: reference_editor.xml:752
 #, no-c-format
 msgid "ST_Rotate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:664
+#: reference_editor.xml:754
 #, no-c-format
 msgid "Rotate a geometry rotRadians counter-clockwise about an origin."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:668
+#: reference_editor.xml:758
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> "
@@ -1123,7 +1252,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:695
+#: reference_editor.xml:785
 #, no-c-format
 msgid ""
 "Rotates geometry rotRadians counter-clockwise about the origin. The rotation "
@@ -1133,7 +1262,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:700
+#: reference_editor.xml:790
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 additional parameters for specifying the origin of rotation "
@@ -1141,13 +1270,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:701
+#: reference_editor.xml:791
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from Rotate to ST_Rotate in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:713
+#: reference_editor.xml:803
 #, no-c-format
 msgid ""
 "--Rotate 180 degrees\n"
@@ -1176,7 +1305,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:720
+#: reference_editor.xml:810
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>, <xref "
@@ -1184,19 +1313,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:726
+#: reference_editor.xml:816
 #, no-c-format
 msgid "ST_RotateX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:728
+#: reference_editor.xml:818
 #, no-c-format
 msgid "Rotate a geometry rotRadians about the X axis."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:733
+#: reference_editor.xml:823
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RotateX</function></funcdef> "
@@ -1205,58 +1334,58 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:744
+#: reference_editor.xml:834
 #, no-c-format
 msgid "Rotate a geometry geomA - rotRadians about the X axis."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:746
+#: reference_editor.xml:836
 #, no-c-format
 msgid ""
-"<code>ST_RotateX(geomA, rotRadians)</code> is short-hand for <code>ST_Affine"
-"(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), "
-"cos(rotRadians), 0, 0, 0)</code>."
+"<code>ST_RotateX(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, "
+"sin(rotRadians), cos(rotRadians), 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:750
+#: reference_editor.xml:840
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from RotateX to ST_RotateX in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:760
+#: reference_editor.xml:850
 #, no-c-format
 msgid ""
 "--Rotate a line 90 degrees along x-axis\n"
-"SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi"
-"()/2));\n"
+"SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
 "                 st_asewkt\n"
 "---------------------------\n"
 " LINESTRING(1 -3 2,1 -1 1)"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:767
+#: reference_editor.xml:857
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:773
+#: reference_editor.xml:863
 #, no-c-format
 msgid "ST_RotateY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:775
+#: reference_editor.xml:865
 #, no-c-format
 msgid "Rotate a geometry rotRadians about the Y axis."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:780
+#: reference_editor.xml:870
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RotateY</function></funcdef> "
@@ -1265,58 +1394,58 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:791
+#: reference_editor.xml:881
 #, no-c-format
 msgid "Rotate a geometry geomA - rotRadians about the y axis."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:793
+#: reference_editor.xml:883
 #, no-c-format
 msgid ""
-"<code>ST_RotateY(geomA, rotRadians)</code> is short-hand for <code>ST_Affine"
-"(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -sin(rotRadians), 0, "
-"cos(rotRadians), 0, 0, 0)</code>."
+"<code>ST_RotateY(geomA, rotRadians)</code> is short-hand for "
+"<code>ST_Affine(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -"
+"sin(rotRadians), 0, cos(rotRadians), 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:796
+#: reference_editor.xml:886
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from RotateY to ST_RotateY in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:809
+#: reference_editor.xml:899
 #, no-c-format
 msgid ""
 "--Rotate a line 90 degrees along y-axis\n"
-" SELECT ST_AsEWKT(ST_RotateY(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi"
-"()/2));\n"
+" SELECT ST_AsEWKT(ST_RotateY(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
 "                 st_asewkt\n"
 "---------------------------\n"
 " LINESTRING(3 2 -1,1 1 -1)"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:816
+#: reference_editor.xml:906
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:822
+#: reference_editor.xml:912
 #, no-c-format
 msgid "ST_RotateZ"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:824
+#: reference_editor.xml:914
 #, no-c-format
 msgid "Rotate a geometry rotRadians about the Z axis."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:829
+#: reference_editor.xml:919
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RotateZ</function></funcdef> "
@@ -1325,39 +1454,39 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:840
+#: reference_editor.xml:930
 #, no-c-format
 msgid "Rotate a geometry geomA - rotRadians about the Z axis."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:842
+#: reference_editor.xml:932
 #, no-c-format
 msgid "This is a synonym for ST_Rotate"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:843
+#: reference_editor.xml:933
 #, no-c-format
 msgid ""
 "<code>ST_RotateZ(geomA, rotRadians)</code> is short-hand for <code>SELECT "
-"ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), cos"
-"(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
+"ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), "
+"cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:848
+#: reference_editor.xml:938
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from RotateZ to ST_RotateZ in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:861
+#: reference_editor.xml:951
 #, no-c-format
 msgid ""
 "--Rotate a line 90 degrees along z-axis\n"
-"SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi"
-"()/2));\n"
+"SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
+"pi()/2));\n"
 "                 st_asewkt\n"
 "---------------------------\n"
 " LINESTRING(-2 1 3,-1 1 1)\n"
@@ -1374,19 +1503,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:868
+#: reference_editor.xml:958
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:874
+#: reference_editor.xml:964
 #, no-c-format
 msgid "ST_Scale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:876
+#: reference_editor.xml:966
 #, no-c-format
 msgid ""
 "<refpurpose>Scales the geometry to a new size by multiplying the ordinates "
@@ -1395,7 +1524,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:883
+#: reference_editor.xml:973
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> "
@@ -1411,7 +1540,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:904
+#: reference_editor.xml:994
 #, no-c-format
 msgid ""
 "<para>Scales the geometry to a new size by multiplying the ordinates with "
@@ -1419,22 +1548,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:908
+#: reference_editor.xml:998
 #, no-c-format
 msgid ""
 "<code>ST_Scale(geomA, XFactor, YFactor, ZFactor)</code> is short-hand for "
-"<code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, 0)"
-"</code>."
+"<code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, "
+"0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:914 reference_editor.xml:1487
+#: reference_editor.xml:1004 reference_editor.xml:1577
 #, no-c-format
 msgid "Availability: 1.1.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:926
+#: reference_editor.xml:1016
 #, no-c-format
 msgid ""
 "--Version 1: scale X, Y, Z\n"
@@ -1453,19 +1582,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:933
+#: reference_editor.xml:1023
 #, no-c-format
 msgid ", <xref linkend=\"ST_TransScale\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:939
+#: reference_editor.xml:1029
 #, no-c-format
 msgid "ST_Segmentize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:941
+#: reference_editor.xml:1031
 #, no-c-format
 msgid ""
 "Return a modified geometry/geography having no segment longer than the given "
@@ -1474,20 +1603,20 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:947
+#: reference_editor.xml:1037
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></"
 "funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
 "paramdef> <paramdef><type>float </type> <parameter>max_segment_length</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry "
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geography "
 "<function>ST_Segmentize</function></funcdef> <paramdef><type>geography </"
 "type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> "
 "<parameter>max_segment_length</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:964
+#: reference_editor.xml:1054
 #, no-c-format
 msgid ""
 "Returns a modified geometry having no segment longer than the given "
@@ -1497,19 +1626,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:967 reference_editor.xml:1428
+#: reference_editor.xml:1057 reference_editor.xml:1518
 #, no-c-format
 msgid "Availability: 1.2.2"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:968
+#: reference_editor.xml:1058
 #, no-c-format
 msgid "Enhanced: 2.1.0 support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:969
+#: reference_editor.xml:1059
 #, no-c-format
 msgid ""
 "Changed: 2.1.0 As a result of the introduction of geography support: The "
@@ -1521,7 +1650,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:971
+#: reference_editor.xml:1061
 #, no-c-format
 msgid ""
 "This will only increase segments. It will not lengthen segments shorter than "
@@ -1529,7 +1658,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:978
+#: reference_editor.xml:1068
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Segmentize(\n"
@@ -1555,19 +1684,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:988
+#: reference_editor.xml:1078
 #, no-c-format
 msgid "ST_SetPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:989
+#: reference_editor.xml:1079
 #, no-c-format
 msgid "Replace point N of linestring with given point. Index is 0-based."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:994
+#: reference_editor.xml:1084
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SetPoint</function></funcdef> "
@@ -1578,7 +1707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1006
+#: reference_editor.xml:1096
 #, no-c-format
 msgid ""
 "Replace point N of linestring with given point. Index is 0-based. This is "
@@ -1587,7 +1716,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1016
+#: reference_editor.xml:1106
 #, no-c-format
 msgid ""
 "--Change first point in line string from -1 3 to -1 1\n"
@@ -1608,7 +1737,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1020
+#: reference_editor.xml:1110
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>, <xref "
@@ -1616,19 +1745,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1026
+#: reference_editor.xml:1116
 #, no-c-format
 msgid "ST_SetSRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1028
+#: reference_editor.xml:1118
 #, no-c-format
 msgid "Sets the SRID on a geometry to a particular integer value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1034
+#: reference_editor.xml:1124
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SetSRID</function></funcdef> "
@@ -1637,7 +1766,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1049
+#: reference_editor.xml:1139
 #, no-c-format
 msgid ""
 "Sets the SRID on a geometry to a particular integer value. Useful in "
@@ -1645,7 +1774,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1053
+#: reference_editor.xml:1143
 #, no-c-format
 msgid ""
 "This function does not transform the geometry coordinates in any way - it "
@@ -1655,19 +1784,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1058
+#: reference_editor.xml:1148
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1064
+#: reference_editor.xml:1154
 #, no-c-format
 msgid "-- Mark a point as WGS 84 long lat --"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1065
+#: reference_editor.xml:1155
 #, no-c-format
 msgid ""
 "SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) As wgs84long_lat;\n"
@@ -1676,7 +1805,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1066
+#: reference_editor.xml:1156
 #, no-c-format
 msgid ""
 "-- Mark a point as WGS 84 long lat and then transform to web mercator "
@@ -1684,7 +1813,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1067
+#: reference_editor.xml:1157
 #, no-c-format
 msgid ""
 "SELECT ST_Transform(ST_SetSRID(ST_Point(-123.365556, 48.428611),4326),3785) "
@@ -1694,7 +1823,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1073
+#: reference_editor.xml:1163
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
@@ -1703,19 +1832,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1080
+#: reference_editor.xml:1170
 #, no-c-format
 msgid "ST_SnapToGrid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1082
+#: reference_editor.xml:1172
 #, no-c-format
 msgid "Snap all points of the input geometry to a regular grid."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:1088
+#: reference_editor.xml:1178
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_SnapToGrid</function></"
@@ -1743,7 +1872,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1126
+#: reference_editor.xml:1216
 #, no-c-format
 msgid ""
 "Variant 1,2,3: Snap all points of the input geometry to the grid defined by "
@@ -1754,7 +1883,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1134
+#: reference_editor.xml:1224
 #, no-c-format
 msgid ""
 "Variant 4: Introduced 1.1.0 - Snap all points of the input geometry to the "
@@ -1763,7 +1892,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1140
+#: reference_editor.xml:1230
 #, no-c-format
 msgid ""
 "The returned geometry might loose its simplicity (see <xref linkend="
@@ -1771,7 +1900,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1145
+#: reference_editor.xml:1235
 #, no-c-format
 msgid ""
 "Before release 1.1.0 this function always returned a 2d geometry. Starting "
@@ -1781,19 +1910,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1152
+#: reference_editor.xml:1242
 #, no-c-format
 msgid "Availability: 1.0.0RC1"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1153
+#: reference_editor.xml:1243
 #, no-c-format
 msgid "Availability: 1.1.0 - Z and M support"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1162
+#: reference_editor.xml:1252
 #, no-c-format
 msgid ""
 "--Snap your geometries to a precision grid of 10^-3\n"
@@ -1833,7 +1962,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1169
+#: reference_editor.xml:1259
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
@@ -1842,13 +1971,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1182
+#: reference_editor.xml:1272
 #, no-c-format
 msgid "ST_Snap"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1184
+#: reference_editor.xml:1274
 #, no-c-format
 msgid ""
 "Snap segments and vertices of input geometry to vertices of a reference "
@@ -1856,7 +1985,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1192
+#: reference_editor.xml:1282
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Snap</function></funcdef> "
@@ -1866,7 +1995,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1204
+#: reference_editor.xml:1294
 #, no-c-format
 msgid ""
 "Snaps the vertices and segments of a geometry another Geometry's vertices. A "
@@ -1874,7 +2003,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1209
+#: reference_editor.xml:1299
 #, no-c-format
 msgid ""
 "Snapping one geometry to another can improve robustness for overlay "
@@ -1883,7 +2012,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1216
+#: reference_editor.xml:1306
 #, no-c-format
 msgid ""
 "Too much snapping can result in invalid topology being created, so the "
@@ -1893,7 +2022,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1225
+#: reference_editor.xml:1315
 #, no-c-format
 msgid ""
 "The returned geometry might loose its simplicity (see <xref linkend="
@@ -1901,19 +2030,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1232
+#: reference_editor.xml:1322
 #, no-c-format
 msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1249
+#: reference_editor.xml:1339
 #, no-c-format
 msgid "A multipolygon shown with a linestring (before any snapping)"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1260
+#: reference_editor.xml:1350
 #, no-c-format
 msgid ""
 "A multipolygon snapped to linestring to tolerance: 1.01 of distance. The new "
@@ -1921,7 +2050,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1264
+#: reference_editor.xml:1354
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Snap(poly,line, ST_Distance(poly,line)*1.01)) AS "
@@ -1942,7 +2071,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1271
+#: reference_editor.xml:1361
 #, no-c-format
 msgid ""
 "A multipolygon snapped to linestring to tolerance: 1.25 of distance. The new "
@@ -1950,7 +2079,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1275
+#: reference_editor.xml:1365
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -1972,7 +2101,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1284
+#: reference_editor.xml:1374
 #, no-c-format
 msgid ""
 "The linestring snapped to the original multipolygon at tolerance 1.01 of "
@@ -1980,7 +2109,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1288
+#: reference_editor.xml:1378
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -2000,7 +2129,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1296
+#: reference_editor.xml:1386
 #, no-c-format
 msgid ""
 "The linestring snapped to the original multipolygon at tolerance 1.25 of "
@@ -2008,7 +2137,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1300
+#: reference_editor.xml:1390
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -2028,13 +2157,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1321
+#: reference_editor.xml:1411
 #, no-c-format
 msgid "ST_Transform"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1323
+#: reference_editor.xml:1413
 #, no-c-format
 msgid ""
 "Returns a new geometry with its coordinates transformed to the SRID "
@@ -2042,7 +2171,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1329
+#: reference_editor.xml:1419
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Transform</function></funcdef> "
@@ -2051,7 +2180,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1340
+#: reference_editor.xml:1430
 #, no-c-format
 msgid ""
 "Returns a new geometry with its coordinates transformed to spatial reference "
@@ -2060,7 +2189,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1343
+#: reference_editor.xml:1433
 #, no-c-format
 msgid ""
 "ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
@@ -2070,7 +2199,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1348
+#: reference_editor.xml:1438
 #, no-c-format
 msgid ""
 "Requires PostGIS be compiled with Proj support. Use <xref linkend="
@@ -2078,7 +2207,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1352
+#: reference_editor.xml:1442
 #, no-c-format
 msgid ""
 "If using more than one transformation, it is useful to have a functional "
@@ -2086,19 +2215,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1359
+#: reference_editor.xml:1449
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.6"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1367
+#: reference_editor.xml:1457
 #, no-c-format
 msgid "Change Mass state plane US feet geometry to WGS 84 long lat"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1368
+#: reference_editor.xml:1458
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Transform(ST_GeomFromText('POLYGON((743238 "
@@ -2116,9 +2245,9 @@ msgid ""
 "(1 row)\n"
 "\n"
 "--3D Circular String example\n"
-"SELECT ST_AsEWKT(ST_Transform(ST_GeomFromEWKT('SRID=2249;CIRCULARSTRING"
-"(743238 2967416 1,743238 2967450 2,743265 2967450 3,743265.625 2967416 "
-"3,743238 2967416 4)'),4326));\n"
+"SELECT ST_AsEWKT(ST_Transform(ST_GeomFromEWKT('SRID=2249;"
+"CIRCULARSTRING(743238 2967416 1,743238 2967450 2,743265 2967450 3,743265.625 "
+"2967416 3,743238 2967416 4)'),4326));\n"
 "\n"
 "                                 st_asewkt\n"
 "--------------------------------------------------------------------------------------\n"
@@ -2129,7 +2258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1369
+#: reference_editor.xml:1459
 #, no-c-format
 msgid ""
 "Example of creating a partial functional index. For tables where you are not "
@@ -2139,7 +2268,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1371
+#: reference_editor.xml:1461
 #, no-c-format
 msgid ""
 "CREATE INDEX idx_the_geom_26986_parcels\n"
@@ -2150,13 +2279,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:1375
+#: reference_editor.xml:1465
 #, no-c-format
 msgid "Configuring transformation behaviour"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1376
+#: reference_editor.xml:1466
 #, no-c-format
 msgid ""
 "Sometimes coordinate transformation involving a grid-shift can fail, for "
@@ -2168,7 +2297,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1377
+#: reference_editor.xml:1467
 #, no-c-format
 msgid ""
 "For example, the proj4text parameter +datum=NAD87 is a shorthand form for "
@@ -2176,13 +2305,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1378
+#: reference_editor.xml:1468
 #, no-c-format
 msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1379
+#: reference_editor.xml:1469
 #, no-c-format
 msgid ""
 "The @ prefix means no error is reported if the files are not present, but if "
@@ -2191,7 +2320,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1380
+#: reference_editor.xml:1470
 #, no-c-format
 msgid ""
 "If, conversely, you wanted to ensure that at least the standard files were "
@@ -2200,13 +2329,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1381
+#: reference_editor.xml:1471
 #, no-c-format
 msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1382
+#: reference_editor.xml:1472
 #, no-c-format
 msgid ""
 "The null grid shift file is a valid grid shift file covering the whole world "
@@ -2216,7 +2345,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1383
+#: reference_editor.xml:1473
 #, no-c-format
 msgid ""
 "UPDATE spatial_ref_sys SET proj4text = '+proj=longlat +ellps=clrk66 "
@@ -2225,7 +2354,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1390
+#: reference_editor.xml:1480
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -2233,13 +2362,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1396
+#: reference_editor.xml:1486
 #, no-c-format
 msgid "ST_Translate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1398
+#: reference_editor.xml:1488
 #, no-c-format
 msgid ""
 "Translates the geometry to a new location using the numeric parameters as "
@@ -2247,7 +2376,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:1403
+#: reference_editor.xml:1493
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Translate</function></"
@@ -2263,7 +2392,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1423
+#: reference_editor.xml:1513
 #, no-c-format
 msgid ""
 "Returns a new geometry whose coordinates are translated delta x,delta y,"
@@ -2272,13 +2401,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1435
+#: reference_editor.xml:1525
 #, no-c-format
 msgid "Move a point 1 degree longitude"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1436
+#: reference_editor.xml:1526
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 "
@@ -2290,13 +2419,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1437
+#: reference_editor.xml:1527
 #, no-c-format
 msgid "Move a linestring 1 degree longitude and 1/2 degree latitude"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1438
+#: reference_editor.xml:1528
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 "
@@ -2307,13 +2436,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1439
+#: reference_editor.xml:1529
 #, no-c-format
 msgid "Move a 3d point"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1440
+#: reference_editor.xml:1530
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' As geometry), 5, 12,3));\n"
@@ -2323,13 +2452,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1441
+#: reference_editor.xml:1531
 #, no-c-format
 msgid "Move a curve and a point"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1442
+#: reference_editor.xml:1532
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Translate(ST_Collect('CURVEPOLYGON(CIRCULARSTRING(4 "
@@ -2341,19 +2470,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1448
+#: reference_editor.xml:1538
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1454
+#: reference_editor.xml:1544
 #, no-c-format
 msgid "ST_TransScale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1456
+#: reference_editor.xml:1546
 #, no-c-format
 msgid ""
 "<refpurpose>Translates the geometry using the deltaX and deltaY args, then "
@@ -2361,7 +2490,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1463
+#: reference_editor.xml:1553
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_TransScale</function></funcdef> "
@@ -2373,7 +2502,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1477
+#: reference_editor.xml:1567
 #, no-c-format
 msgid ""
 "<para>Translates the geometry using the deltaX and deltaY args, then scales "
@@ -2381,7 +2510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1480
+#: reference_editor.xml:1570
 #, no-c-format
 msgid ""
 "<code>ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor)</code> is short-"
@@ -2390,7 +2519,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1496
+#: reference_editor.xml:1586
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_TransScale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), "
@@ -2411,7 +2540,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1503
+#: reference_editor.xml:1593
 #, no-c-format
 msgid ", <xref linkend=\"ST_Translate\"/>"
 msgstr ""
diff --git a/doc/po/pt_BR/reference_guc.xml.po b/doc/po/pt_BR/reference_guc.xml.po
new file mode 100644
index 0000000..ba1e2c8
--- /dev/null
+++ b/doc/po/pt_BR/reference_guc.xml.po
@@ -0,0 +1,407 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: para
+#: reference_guc.xml:5
+#, no-c-format
+msgid ""
+"This section lists custom PostGIS Grand Unified Custom Variables(GUC). These "
+"can be set globally, by database, by session or by transaction. Best set at "
+"global or database level."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:8
+#, no-c-format
+msgid "PostGIS Grand Unified Custom Variables (GUCs)"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:12
+#, no-c-format
+msgid "postgis.backend"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:13
+#, no-c-format
+msgid ""
+"The backend to service a function where GEOS and SFCGAL overlap. Options: "
+"geos or sfcgal. Defaults to geos."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:17 reference_guc.xml:45 reference_guc.xml:95
+#: reference_guc.xml:180
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:18
+#, no-c-format
+msgid ""
+"This GUC is only relevant if you compiled PostGIS with sfcgal support. By "
+"default <varname>geos</varname> backend is used for functions where both "
+"GEOS and SFCGAL have the same named function. This variable allows you to "
+"override and make sfcgal the backend to service the request."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:19
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:23 reference_guc.xml:69 reference_guc.xml:146
+#: reference_guc.xml:206
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:24
+#, no-c-format
+msgid "Sets backend just for life of connection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:25
+#, no-c-format
+msgid "set postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:27
+#, no-c-format
+msgid "Sets backend for new connections to database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:28
+#, no-c-format
+msgid "ALTER DATABASE mygisdb SET postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:31 reference_guc.xml:79 reference_guc.xml:159
+#: reference_guc.xml:213
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:38
+#, no-c-format
+msgid "postgis.gdal_datapath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:39
+#, no-c-format
+msgid ""
+"A configuration option to assign the value of GDAL's GDAL_DATA option. If "
+"not set, the environmentally set GDAL_DATA variable is used."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:46
+#, no-c-format
+msgid ""
+"A PostgreSQL GUC variable for setting the value of GDAL's GDAL_DATA option. "
+"The <varname>postgis.gdal_datapath</varname> value should be the complete "
+"physical path to GDAL's data files."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:49
+#, no-c-format
+msgid ""
+"This configuration option is of most use for Windows platforms where GDAL's "
+"data files path is not hard-coded. This option should also be set when "
+"GDAL's data files are not located in GDAL's expected path."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:54
+#, no-c-format
+msgid ""
+"This option can be set in PostgreSQL's configuration file postgresql.conf. "
+"It can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:58 reference_guc.xml:141 reference_guc.xml:201
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:61
+#, no-c-format
+msgid ""
+"Additional information about GDAL_DATA is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:70
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_datapath</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:72
+#, no-c-format
+msgid ""
+"SET postgis.gdal_datapath TO '/usr/local/share/gdal.hidden';\n"
+"SET postgis.gdal_datapath TO default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:74
+#, no-c-format
+msgid "Setting on windows for a particular database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:75
+#, no-c-format
+msgid ""
+"ALTER DATABASE gisdb\n"
+"SET postgis.gdal_datapath = 'C:/Program Files/PostgreSQL/9.3/gdal-data';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:80
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:88
+#, no-c-format
+msgid "postgis.gdal_enabled_drivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:89
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:96
+#, no-c-format
+msgid ""
+"A configuration option to set the enabled GDAL drivers in the PostGIS "
+"environment. Affects the GDAL configuration variable GDAL_SKIP. This option "
+"can be set in PostgreSQL's configuration file: postgresql.conf. It can also "
+"be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:100
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.gdal_enabled_drivers</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_GDAL_ENABLED_DRIVERS</varname> with the list of enabled "
+"drivers to the process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:104
+#, no-c-format
+msgid ""
+"Enabled GDAL specified drivers can be specified by the driver's short-name "
+"or code. Driver short-names or codes can be found at <ulink url=\"http://www."
+"gdal.org/formats_list.html\">GDAL Raster Formats</ulink>. Multiple drivers "
+"can be specified by putting a space between each driver."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:109
+#, no-c-format
+msgid ""
+"There are three special codes available for <varname>postgis."
+"gdal_enabled_drivers</varname>. The codes are case-sensitive."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:114
+#, no-c-format
+msgid ""
+"<varname>DISABLE_ALL</varname> disables all GDAL drivers. If present, "
+"<varname>DISABLE_ALL</varname> overrides all other values in "
+"<varname>postgis.gdal_enabled_drivers</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:117
+#, no-c-format
+msgid "<varname>ENABLE_ALL</varname> enables all GDAL drivers."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:120
+#, no-c-format
+msgid ""
+"<varname>VSICURL</varname> enables GDAL's <varname>/vsicurl/</varname> "
+"virtual file system."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:124
+#, no-c-format
+msgid ""
+"When <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL, "
+"attempts to use out-db rasters, ST_FromGDALRaster(), ST_AsGDALRaster(), "
+"ST_AsTIFF(), ST_AsJPEG() and ST_AsPNG() will result in error messages."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:130
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.gdal_enabled_drivers</"
+"varname> is set to DISABLE_ALL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:136
+#, no-c-format
+msgid ""
+"Additional information about GDAL_SKIP is available at GDAL's <ulink url="
+"\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:147
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_enabled_drivers</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:149
+#, no-c-format
+msgid ""
+"SET postgis.gdal_enabled_drivers TO 'GTiff PNG JPEG';\n"
+"SET postgis.gdal_enabled_drivers = default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:151
+#, no-c-format
+msgid "Enable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:152
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:154
+#, no-c-format
+msgid "Disable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:155
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'DISABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:160
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>, "
+"<xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsJPEG\"/>, <xref "
+"linkend=\"postgis_enable_outdb_rasters\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:173
+#, no-c-format
+msgid "postgis.enable_outdb_rasters"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:174
+#, no-c-format
+msgid "A boolean configuration option to enable access to out-db raster bands."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:181
+#, no-c-format
+msgid ""
+"A boolean configuration option to enable access to out-db raster bands. This "
+"option can be set in PostgreSQL's configuration file: postgresql.conf. It "
+"can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:185
+#, no-c-format
+msgid ""
+"The initial value of <varname>postgis.enable_outdb_rasters</varname> may "
+"also be set by passing the environment variable "
+"<varname>POSTGIS_ENABLE_OUTDB_RASTERS</varname> with a non-zero value to the "
+"process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:190
+#, no-c-format
+msgid ""
+"Even if <varname>postgis.enable_outdb_rasters</varname> is True, the GUC "
+"<varname>postgis.enable_outdb_rasters</varname> determines the accessible "
+"raster formats."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:196
+#, no-c-format
+msgid ""
+"In the standard PostGIS installation, <varname>postgis.enable_outdb_rasters</"
+"varname> is set to False."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:207
+#, no-c-format
+msgid "Set and reset <varname>postgis.enable_outdb_rasters</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:209
+#, no-c-format
+msgid ""
+"SET postgis.enable_outdb_rasters TO True;\n"
+"SET postgis.enable_outdb_rasters = default;\n"
+"SET postgis.enable_outdb_rasters = True;\n"
+"SET postgis.enable_outdb_rasters = False;"
+msgstr ""
diff --git a/doc/po/pt_BR/reference_lrs.xml.po b/doc/po/pt_BR/reference_lrs.xml.po
index ee87a47..1914c80 100644
--- a/doc/po/pt_BR/reference_lrs.xml.po
+++ b/doc/po/pt_BR/reference_lrs.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -24,7 +24,7 @@ msgstr ""
 #. Tag: refname
 #: reference_lrs.xml:7
 #, no-c-format
-msgid "ST_Line_Interpolate_Point"
+msgid "ST_LineInterpolatePoint"
 msgstr ""
 
 #. Tag: refpurpose
@@ -40,16 +40,16 @@ msgstr ""
 #: reference_lrs.xml:15
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Line_Interpolate_Point</function></funcdef> "
+"<funcdef>geometry <function>ST_LineInterpolatePoint</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
 "paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></"
 "paramdef>"
 msgstr ""
 
 #. Tag: title
-#: reference_lrs.xml:24 reference_lrs.xml:85 reference_lrs.xml:136
-#: reference_lrs.xml:202 reference_lrs.xml:260 reference_lrs.xml:311
-#: reference_lrs.xml:356 reference_lrs.xml:400
+#: reference_lrs.xml:24 reference_lrs.xml:86 reference_lrs.xml:138
+#: reference_lrs.xml:205 reference_lrs.xml:263 reference_lrs.xml:314
+#: reference_lrs.xml:359 reference_lrs.xml:403
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -64,10 +64,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:30 reference_lrs.xml:147
+#: reference_lrs.xml:30 reference_lrs.xml:149
 #, no-c-format
 msgid ""
-"See <xref linkend=\"ST_Line_Locate_Point\"/> for computing the line location "
+"See <xref linkend=\"ST_LineLocatePoint\"/> for computing the line location "
 "nearest to a Point."
 msgstr ""
 
@@ -86,32 +86,38 @@ msgid "Availability: 0.8.2, Z and M supported added in 1.1.1"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:39 reference_lrs.xml:157 reference_lrs.xml:319
-#: reference_lrs.xml:362 reference_lrs.xml:406
+#: reference_lrs.xml:39
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Interpolate_Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:40 reference_lrs.xml:160 reference_lrs.xml:322
+#: reference_lrs.xml:365 reference_lrs.xml:409
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_lrs.xml:44 reference_lrs.xml:101 reference_lrs.xml:161
-#: reference_lrs.xml:225 reference_lrs.xml:276 reference_lrs.xml:323
-#: reference_lrs.xml:366 reference_lrs.xml:410
+#: reference_lrs.xml:45 reference_lrs.xml:103 reference_lrs.xml:164
+#: reference_lrs.xml:228 reference_lrs.xml:279 reference_lrs.xml:326
+#: reference_lrs.xml:369 reference_lrs.xml:413
 #, no-c-format
 msgid "Examples"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:50
+#: reference_lrs.xml:51
 #, no-c-format
 msgid "A linestring with the interpolated point at 20% position (0.20)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:53
+#: reference_lrs.xml:54
 #, no-c-format
 msgid ""
 "--Return point 20% along 2d line\n"
-"SELECT ST_AsEWKT(ST_Line_Interpolate_Point(the_line, 0.20))\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.20))\n"
 "        FROM (SELECT ST_GeomFromEWKT('LINESTRING(25 50, 100 125, 150 190)') "
 "as the_line) As foo;\n"
 "   st_asewkt\n"
@@ -120,11 +126,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:54
+#: reference_lrs.xml:55
 #, no-c-format
 msgid ""
 "--Return point mid-way of 3d line\n"
-"SELECT ST_AsEWKT(ST_Line_Interpolate_Point(the_line, 0.5))\n"
+"SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.5))\n"
 "        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6, 6 7 8)') as "
 "the_line) As foo;\n"
 "\n"
@@ -134,8 +140,8 @@ msgid ""
 "\n"
 "\n"
 "--find closest point on a line to a point or other geometry\n"
-" SELECT ST_AsText(ST_Line_Interpolate_Point(foo.the_line, "
-"ST_Line_Locate_Point(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
 "FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
 "foo;\n"
 "   st_astext\n"
@@ -144,29 +150,29 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_lrs.xml:59 reference_lrs.xml:108 reference_lrs.xml:175
-#: reference_lrs.xml:231 reference_lrs.xml:283 reference_lrs.xml:330
-#: reference_lrs.xml:372
+#: reference_lrs.xml:60 reference_lrs.xml:110 reference_lrs.xml:178
+#: reference_lrs.xml:234 reference_lrs.xml:286 reference_lrs.xml:333
+#: reference_lrs.xml:375
 #, no-c-format
 msgid "See Also"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:61
+#: reference_lrs.xml:62
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref "
-"linkend=\"ST_Line_Locate_Point\"/>"
+"linkend=\"ST_LineLocatePoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:67
+#: reference_lrs.xml:68
 #, no-c-format
-msgid "ST_Line_Locate_Point"
+msgid "ST_LineLocatePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:69
+#: reference_lrs.xml:70
 #, no-c-format
 msgid ""
 "Returns a float between 0 and 1 representing the location of the closest "
@@ -175,17 +181,17 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:76
+#: reference_lrs.xml:77
 #, no-c-format
 msgid ""
-"<funcdef>float <function>ST_Line_Locate_Point</function></funcdef> "
+"<funcdef>float <function>ST_LineLocatePoint</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
 "paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></"
 "paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:87
+#: reference_lrs.xml:88
 #, no-c-format
 msgid ""
 "Returns a float between 0 and 1 representing the location of the closest "
@@ -194,28 +200,34 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:91
+#: reference_lrs.xml:92
 #, no-c-format
 msgid ""
 "You can use the returned location to extract a Point (<xref linkend="
-"\"ST_Line_Interpolate_Point\"/>) or a substring (<xref linkend="
-"\"ST_Line_Substring\"/>)."
+"\"ST_LineInterpolatePoint\"/>) or a substring (<xref linkend="
+"\"ST_LineSubstring\"/>)."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:94
+#: reference_lrs.xml:95
 #, no-c-format
 msgid "This is useful for approximating numbers of addresses"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:96
+#: reference_lrs.xml:97
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
+#. Tag: para
+#: reference_lrs.xml:98
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Locate_Point."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_lrs.xml:103
+#: reference_lrs.xml:105
 #, no-c-format
 msgid ""
 "--Rough approximation of finding the street number of a point along the "
@@ -227,7 +239,7 @@ msgid ""
 "SELECT ST_AsText(house_loc) As as_text_house_loc,\n"
 "        startstreet_num +\n"
 "                CAST( (endstreet_num - startstreet_num)\n"
-"                        * ST_Line_Locate_Point(street_line, house_loc) As "
+"                        * ST_LineLocatePoint(street_line, house_loc) As "
 "integer) As street_num\n"
 "FROM\n"
 "(SELECT ST_GeomFromText('LINESTRING(1 2, 3 4)') As street_line,\n"
@@ -244,8 +256,8 @@ msgid ""
 " POINT(3.03 4.12)  |         20\n"
 "\n"
 " --find closest point on a line to a point or other geometry\n"
-" SELECT ST_AsText(ST_Line_Interpolate_Point(foo.the_line, "
-"ST_Line_Locate_Point(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+" SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, "
+"ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
 "FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As "
 "foo;\n"
 "   st_astext\n"
@@ -254,21 +266,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:110
+#: reference_lrs.xml:112
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_Line_Interpolate_Point"
-"\"/>, <xref linkend=\"ST_Line_Substring\"/>"
+", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_LineInterpolatePoint\"/"
+">, <xref linkend=\"ST_LineSubstring\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:116
+#: reference_lrs.xml:118
 #, no-c-format
-msgid "ST_Line_Substring"
+msgid "ST_LineSubstring"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:118
+#: reference_lrs.xml:120
 #, no-c-format
 msgid ""
 "Return a linestring being a substring of the input one starting and ending "
@@ -277,10 +289,10 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:126
+#: reference_lrs.xml:128
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Line_Substring</function></funcdef> "
+"<funcdef>geometry <function>ST_LineSubstring</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>a_linestring</parameter></"
 "paramdef> <paramdef><type>float </type> <parameter>startfraction</"
 "parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</"
@@ -288,7 +300,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:138
+#: reference_lrs.xml:140
 #, no-c-format
 msgid ""
 "Return a linestring being a substring of the input one starting and ending "
@@ -299,15 +311,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:144
+#: reference_lrs.xml:146
 #, no-c-format
 msgid ""
 "If 'start' and 'end' have the same value this is equivalent to <xref linkend="
-"\"ST_Line_Interpolate_Point\"/>."
+"\"ST_LineInterpolatePoint\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:151
+#: reference_lrs.xml:153
 #, no-c-format
 msgid ""
 "Since release 1.1.1 this function also interpolates M and Z values (when "
@@ -315,19 +327,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:156
+#: reference_lrs.xml:158
 #, no-c-format
 msgid "Availability: 1.1.0, Z and M supported added in 1.1.1"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:167
+#: reference_lrs.xml:159
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Substring."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:170
 #, no-c-format
 msgid "A linestring seen with 1/3 midrange overlaid (0.333, 0.666)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:170
+#: reference_lrs.xml:173
 #, no-c-format
 msgid ""
 "--Return the approximate 1/3 mid-range part of a linestring\n"
@@ -350,7 +368,7 @@ msgid ""
 "--for better performance you can reduce the 10000\n"
 "--to match max number of segments you expect\n"
 "\n"
-"SELECT field1, field2, ST_Line_Substring(the_geom, 100.00*n/length,\n"
+"SELECT field1, field2, ST_LineSubstring(the_geom, 100.00*n/length,\n"
 "  CASE\n"
 "        WHEN 100.00*(n+1) < length THEN 100.00*(n+1)/length\n"
 "        ELSE 1\n"
@@ -366,21 +384,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:177
+#: reference_lrs.xml:180
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Line_Interpolate_Point\"/>, <xref linkend=\"ST_LineMerge"
+", <xref linkend=\"ST_LineInterpolatePoint\"/>, <xref linkend=\"ST_LineMerge"
 "\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:183
+#: reference_lrs.xml:186
 #, no-c-format
 msgid "ST_LocateAlong"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:185
+#: reference_lrs.xml:188
 #, no-c-format
 msgid ""
 "<refpurpose>Return a derived geometry collection value with elements that "
@@ -389,7 +407,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:192
+#: reference_lrs.xml:195
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LocateAlong</function></funcdef> "
@@ -400,7 +418,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:204
+#: reference_lrs.xml:207
 #, no-c-format
 msgid ""
 "<para>Return a derived geometry collection value with elements that match "
@@ -408,7 +426,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:208
+#: reference_lrs.xml:211
 #, no-c-format
 msgid ""
 "If an offset is provided, the resultant will be offset to the left or right "
@@ -417,7 +435,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:213 reference_lrs.xml:266
+#: reference_lrs.xml:216 reference_lrs.xml:269
 #, no-c-format
 msgid ""
 "Semantic is specified by: ISO/IEC CD 13249-3:200x(E) - Text for Continuation "
@@ -425,13 +443,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:216
+#: reference_lrs.xml:219
 #, no-c-format
 msgid "Availability: 1.1.0 by old name ST_Locate_Along_Measure."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:217
+#: reference_lrs.xml:220
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 in prior versions this used to be called "
@@ -440,19 +458,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:218
+#: reference_lrs.xml:221
 #, no-c-format
 msgid "Use this function only for geometries with an M component"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:220 reference_lrs.xml:272
+#: reference_lrs.xml:223 reference_lrs.xml:275
 #, no-c-format
 msgid "&M_support;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:226
+#: reference_lrs.xml:229
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(the_geom)\n"
@@ -483,19 +501,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:233
+#: reference_lrs.xml:236
 #, no-c-format
 msgid ", <xref linkend=\"ST_LocateBetween\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:239
+#: reference_lrs.xml:242
 #, no-c-format
 msgid "ST_LocateBetween"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:241
+#: reference_lrs.xml:244
 #, no-c-format
 msgid ""
 "<refpurpose>Return a derived geometry collection value with elements that "
@@ -504,7 +522,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:248
+#: reference_lrs.xml:251
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LocateBetween</function></funcdef> "
@@ -516,7 +534,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:262
+#: reference_lrs.xml:265
 #, no-c-format
 msgid ""
 "<para>Return a derived geometry collection value with elements that match "
@@ -525,13 +543,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:269
+#: reference_lrs.xml:272
 #, no-c-format
 msgid "Availability: 1.1.0 by old name ST_Locate_Between_Measures."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:270
+#: reference_lrs.xml:273
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 - in prior versions this used to be called "
@@ -540,7 +558,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:278
+#: reference_lrs.xml:281
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(the_geom)\n"
@@ -570,19 +588,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:285
+#: reference_lrs.xml:288
 #, no-c-format
 msgid ", <xref linkend=\"ST_LocateAlong\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:291
+#: reference_lrs.xml:294
 #, no-c-format
 msgid "ST_LocateBetweenElevations"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:293
+#: reference_lrs.xml:296
 #, no-c-format
 msgid ""
 "Return a derived geometry (collection) value with elements that intersect "
@@ -591,7 +609,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:300
+#: reference_lrs.xml:303
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef> "
@@ -602,7 +620,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:313
+#: reference_lrs.xml:316
 #, no-c-format
 msgid ""
 "Return a derived geometry (collection) value with elements that intersect "
@@ -611,13 +629,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:317
+#: reference_lrs.xml:320
 #, no-c-format
 msgid "Availability: 1.4.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:325
+#: reference_lrs.xml:328
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
@@ -650,13 +668,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:339
+#: reference_lrs.xml:342
 #, no-c-format
 msgid "ST_InterpolatePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:341
+#: reference_lrs.xml:344
 #, no-c-format
 msgid ""
 "<refpurpose>Return the value of the measure dimension of a geometry at the "
@@ -664,7 +682,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:346
+#: reference_lrs.xml:349
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_InterpolatePoint</function></funcdef> "
@@ -673,7 +691,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:358
+#: reference_lrs.xml:361
 #, no-c-format
 msgid ""
 "<para>Return the value of the measure dimension of a geometry at the point "
@@ -681,13 +699,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:360
+#: reference_lrs.xml:363
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:368
+#: reference_lrs.xml:371
 #, no-c-format
 msgid ""
 "SELECT ST_InterpolatePoint('LINESTRING M (0 0 0, 10 0 20)', 'POINT(5 5)');\n"
@@ -697,20 +715,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:374
+#: reference_lrs.xml:377
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_LocateAlong\"/>, <xref linkend=\"ST_LocateBetween\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:382
+#: reference_lrs.xml:385
 #, no-c-format
 msgid "ST_AddMeasure"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:384
+#: reference_lrs.xml:387
 #, no-c-format
 msgid ""
 "<refpurpose>Return a derived geometry with measure elements linearly "
@@ -721,7 +739,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:389
+#: reference_lrs.xml:392
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_AddMeasure</function></funcdef> "
@@ -732,7 +750,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:402
+#: reference_lrs.xml:405
 #, no-c-format
 msgid ""
 "<para>Return a derived geometry with measure elements linearly interpolated "
@@ -742,13 +760,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:404
+#: reference_lrs.xml:407
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:412
+#: reference_lrs.xml:415
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_AddMeasure(\n"
diff --git a/doc/po/pt_BR/reference_management.xml.po b/doc/po/pt_BR/reference_management.xml.po
index 1cc7153..a5b8f11 100644
--- a/doc/po/pt_BR/reference_management.xml.po
+++ b/doc/po/pt_BR/reference_management.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -78,7 +78,7 @@ msgstr ""
 #: reference_management.xml:499 reference_management.xml:540
 #: reference_management.xml:583 reference_management.xml:631
 #: reference_management.xml:677 reference_management.xml:726
-#: reference_management.xml:862
+#: reference_management.xml:863
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -139,14 +139,14 @@ msgstr ""
 
 #. Tag: para
 #: reference_management.xml:118 reference_management.xml:195
-#: reference_management.xml:868
+#: reference_management.xml:869
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
 #: reference_management.xml:119 reference_management.xml:196
-#: reference_management.xml:869
+#: reference_management.xml:870
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
@@ -167,6 +167,7 @@ msgstr ""
 #: reference_management.xml:506 reference_management.xml:548
 #: reference_management.xml:600 reference_management.xml:646
 #: reference_management.xml:683 reference_management.xml:784
+#: reference_management.xml:873
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -249,7 +250,7 @@ msgstr ""
 #: reference_management.xml:470 reference_management.xml:512
 #: reference_management.xml:554 reference_management.xml:606
 #: reference_management.xml:652 reference_management.xml:689
-#: reference_management.xml:873
+#: reference_management.xml:886
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -439,8 +440,10 @@ msgid ""
 "SELECT PostGIS_Full_Version();\n"
 "                                                           postgis_full_version\n"
 "----------------------------------------------------------------------------------\n"
-" POSTGIS=\"1.3.3\" GEOS=\"3.1.0-CAPI-1.5.0\" PROJ=\"Rel. 4.4.9, 29 Oct "
-"2004\" USE_STATS\n"
+"POSTGIS=\"2.2.0dev r12699\" GEOS=\"3.5.0dev-CAPI-1.9.0 r3989\" SFCGAL="
+"\"1.0.4\" PROJ=\"Rel. 4.8.0, 6 March 2012\" \n"
+"GDAL=\"GDAL 1.11.0, released 2014/04/16\" LIBXML=\"2.7.8\" LIBJSON=\"0.12\" "
+"RASTER\n"
 "(1 row)"
 msgstr ""
 
@@ -1059,8 +1062,8 @@ msgid ""
 "Modifiers                           \n"
 "--------+---------------------------"
 "+---------------------------------------------------------------\n"
-" gid    | integer                   | not null default nextval"
-"('myspatial_table_gid_seq'::regclass)\n"
+" gid    | integer                   | not null default "
+"nextval('myspatial_table_gid_seq'::regclass)\n"
 " geom   | geometry(LineString,4326) |"
 msgstr ""
 
@@ -1107,11 +1110,13 @@ msgstr ""
 #, no-c-format
 msgid ""
 "Updates the SRID of all features in a geometry column, geometry_columns "
-"metadata and srid table constraint"
+"metadata and srid. If it was enforced with constraints, the constraints will "
+"be updated with new srid constraint. If the old was enforced by type "
+"definition, the type definition will be changed."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_management.xml:810
+#: reference_management.xml:811
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></"
@@ -1134,10 +1139,64 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_management.xml:864
+#: reference_management.xml:865
 #, no-c-format
 msgid ""
 "Updates the SRID of all features in a geometry column, updating constraints "
 "and reference in geometry_columns. Note: uses current_schema() on schema-"
 "aware pgsql installations if schema is not provided."
 msgstr ""
+
+#. Tag: para
+#: reference_management.xml:874
+#, no-c-format
+msgid ""
+"This will change the srid of the roads table to 4326 from whatever it was "
+"before"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:875
+#, no-c-format
+msgid "SELECT UpdateGeometrySRID('roads','geom',4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:877
+#, no-c-format
+msgid "The prior example is equivalent to this DDL statement"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:878
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+"  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) \n"
+"    USING ST_SetSRID(geom,4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:880
+#, no-c-format
+msgid ""
+"If you got the projection wrong (or brought it in as unknown) in load and "
+"you wanted to transform to web mercator all in one shot You can do this with "
+"DDL but there is no equivalent PostGIS management function to do so in one "
+"go."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:883
+#, no-c-format
+msgid ""
+"ALTER TABLE roads \n"
+" ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857) USING "
+"ST_Transform(ST_SetSRID(geom,4326),3857) ;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:888
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
diff --git a/doc/po/pt_BR/reference_measure.xml.po b/doc/po/pt_BR/reference_measure.xml.po
index b1ea344..c6b2853 100644
--- a/doc/po/pt_BR/reference_measure.xml.po
+++ b/doc/po/pt_BR/reference_measure.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -45,30 +45,30 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:143
-#: reference_measure.xml:195 reference_measure.xml:252
-#: reference_measure.xml:302 reference_measure.xml:371
-#: reference_measure.xml:417 reference_measure.xml:489
-#: reference_measure.xml:547 reference_measure.xml:621
-#: reference_measure.xml:739 reference_measure.xml:812
-#: reference_measure.xml:964 reference_measure.xml:1045
-#: reference_measure.xml:1127 reference_measure.xml:1187
-#: reference_measure.xml:1353 reference_measure.xml:1488
-#: reference_measure.xml:1566 reference_measure.xml:1627
-#: reference_measure.xml:1679 reference_measure.xml:1726
-#: reference_measure.xml:1775 reference_measure.xml:1828
-#: reference_measure.xml:1910 reference_measure.xml:1973
-#: reference_measure.xml:2022 reference_measure.xml:2082
-#: reference_measure.xml:2145 reference_measure.xml:2195
-#: reference_measure.xml:2228 reference_measure.xml:2273
-#: reference_measure.xml:2325 reference_measure.xml:2376
-#: reference_measure.xml:2428 reference_measure.xml:2516
-#: reference_measure.xml:2559 reference_measure.xml:2651
-#: reference_measure.xml:2700 reference_measure.xml:2737
-#: reference_measure.xml:2779 reference_measure.xml:2826
-#: reference_measure.xml:2884 reference_measure.xml:2950
-#: reference_measure.xml:2993 reference_measure.xml:3072
-#: reference_measure.xml:3220
+#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:144
+#: reference_measure.xml:196 reference_measure.xml:253
+#: reference_measure.xml:303 reference_measure.xml:372
+#: reference_measure.xml:418 reference_measure.xml:490
+#: reference_measure.xml:549 reference_measure.xml:620
+#: reference_measure.xml:738 reference_measure.xml:811
+#: reference_measure.xml:963 reference_measure.xml:1044
+#: reference_measure.xml:1126 reference_measure.xml:1186
+#: reference_measure.xml:1352 reference_measure.xml:1487
+#: reference_measure.xml:1565 reference_measure.xml:1635
+#: reference_measure.xml:1690 reference_measure.xml:1736
+#: reference_measure.xml:1785 reference_measure.xml:1838
+#: reference_measure.xml:1920 reference_measure.xml:1984
+#: reference_measure.xml:2033 reference_measure.xml:2093
+#: reference_measure.xml:2159 reference_measure.xml:2210
+#: reference_measure.xml:2243 reference_measure.xml:2288
+#: reference_measure.xml:2340 reference_measure.xml:2391
+#: reference_measure.xml:2443 reference_measure.xml:2531
+#: reference_measure.xml:2574 reference_measure.xml:2665
+#: reference_measure.xml:2714 reference_measure.xml:2751
+#: reference_measure.xml:2793 reference_measure.xml:2840
+#: reference_measure.xml:2906 reference_measure.xml:2972
+#: reference_measure.xml:3015 reference_measure.xml:3094
+#: reference_measure.xml:3242
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -83,57 +83,57 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:148
-#: reference_measure.xml:210 reference_measure.xml:265
-#: reference_measure.xml:311 reference_measure.xml:376
-#: reference_measure.xml:430 reference_measure.xml:2027
-#: reference_measure.xml:2232 reference_measure.xml:2287
-#: reference_measure.xml:2384 reference_measure.xml:2741
-#: reference_measure.xml:2787
+#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:149
+#: reference_measure.xml:211 reference_measure.xml:266
+#: reference_measure.xml:312 reference_measure.xml:377
+#: reference_measure.xml:431 reference_measure.xml:2038
+#: reference_measure.xml:2247 reference_measure.xml:2302
+#: reference_measure.xml:2399 reference_measure.xml:2755
+#: reference_measure.xml:2801
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:150
-#: reference_measure.xml:212 reference_measure.xml:267
-#: reference_measure.xml:313 reference_measure.xml:378
-#: reference_measure.xml:432 reference_measure.xml:499
+#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:151
+#: reference_measure.xml:213 reference_measure.xml:268
+#: reference_measure.xml:314 reference_measure.xml:379
+#: reference_measure.xml:433 reference_measure.xml:500
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:35 reference_measure.xml:102
-#: reference_measure.xml:153 reference_measure.xml:209
-#: reference_measure.xml:259 reference_measure.xml:310
-#: reference_measure.xml:380 reference_measure.xml:429
+#: reference_measure.xml:35 reference_measure.xml:103
+#: reference_measure.xml:154 reference_measure.xml:210
+#: reference_measure.xml:260 reference_measure.xml:311
+#: reference_measure.xml:381 reference_measure.xml:430
+#: reference_measure.xml:2847
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:39 reference_measure.xml:106
-#: reference_measure.xml:157 reference_measure.xml:217
-#: reference_measure.xml:317 reference_measure.xml:384
-#: reference_measure.xml:436 reference_measure.xml:505
-#: reference_measure.xml:563 reference_measure.xml:647
-#: reference_measure.xml:749 reference_measure.xml:850
-#: reference_measure.xml:1003 reference_measure.xml:1081
-#: reference_measure.xml:1156 reference_measure.xml:1253
-#: reference_measure.xml:1388 reference_measure.xml:1511
-#: reference_measure.xml:1580 reference_measure.xml:1652
-#: reference_measure.xml:1693 reference_measure.xml:1741
-#: reference_measure.xml:1789 reference_measure.xml:1846
-#: reference_measure.xml:1943 reference_measure.xml:1992
-#: reference_measure.xml:2033 reference_measure.xml:2238
-#: reference_measure.xml:2292 reference_measure.xml:2344
-#: reference_measure.xml:2390 reference_measure.xml:2438
-#: reference_measure.xml:2531 reference_measure.xml:2581
-#: reference_measure.xml:2747 reference_measure.xml:2791
-#: reference_measure.xml:2836 reference_measure.xml:2920
-#: reference_measure.xml:2960 reference_measure.xml:3009
-#: reference_measure.xml:3122 reference_measure.xml:3252
+#: reference_measure.xml:39 reference_measure.xml:107
+#: reference_measure.xml:158 reference_measure.xml:218
+#: reference_measure.xml:318 reference_measure.xml:385
+#: reference_measure.xml:437 reference_measure.xml:507
+#: reference_measure.xml:564 reference_measure.xml:646
+#: reference_measure.xml:748 reference_measure.xml:849
+#: reference_measure.xml:1002 reference_measure.xml:1080
+#: reference_measure.xml:1155 reference_measure.xml:1252
+#: reference_measure.xml:1387 reference_measure.xml:1510
+#: reference_measure.xml:1660 reference_measure.xml:1702
+#: reference_measure.xml:1751 reference_measure.xml:1799
+#: reference_measure.xml:1856 reference_measure.xml:1954
+#: reference_measure.xml:2003 reference_measure.xml:2044
+#: reference_measure.xml:2253 reference_measure.xml:2307
+#: reference_measure.xml:2359 reference_measure.xml:2405
+#: reference_measure.xml:2453 reference_measure.xml:2546
+#: reference_measure.xml:2596 reference_measure.xml:2761
+#: reference_measure.xml:2805 reference_measure.xml:2942
+#: reference_measure.xml:2982 reference_measure.xml:3031
+#: reference_measure.xml:3144 reference_measure.xml:3274
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -160,8 +160,8 @@ msgid ""
 "|               cp2d_line_pt\n"
 "-----------------------------------------------------------"
 "+------------------------------------------\n"
-" POINT(54.6993798867619 128.935022917228 11.5475869506606) | POINT"
-"(73.0769230769231 115.384615384615)"
+" POINT(54.6993798867619 128.935022917228 11.5475869506606) | "
+"POINT(73.0769230769231 115.384615384615)"
 msgstr ""
 
 #. Tag: para
@@ -210,29 +210,29 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:65 reference_measure.xml:113
-#: reference_measure.xml:163 reference_measure.xml:222
-#: reference_measure.xml:275 reference_measure.xml:343
-#: reference_measure.xml:390 reference_measure.xml:462
-#: reference_measure.xml:521 reference_measure.xml:596
-#: reference_measure.xml:710 reference_measure.xml:784
-#: reference_measure.xml:937 reference_measure.xml:1008
-#: reference_measure.xml:1089 reference_measure.xml:1161
-#: reference_measure.xml:1458 reference_measure.xml:1517
-#: reference_measure.xml:1586 reference_measure.xml:1700
-#: reference_measure.xml:1748 reference_measure.xml:1796
-#: reference_measure.xml:1851 reference_measure.xml:1948
-#: reference_measure.xml:1998 reference_measure.xml:2040
-#: reference_measure.xml:2121 reference_measure.xml:2172
-#: reference_measure.xml:2204 reference_measure.xml:2247
-#: reference_measure.xml:2299 reference_measure.xml:2351
-#: reference_measure.xml:2397 reference_measure.xml:2491
-#: reference_measure.xml:2536 reference_measure.xml:2623
-#: reference_measure.xml:2677 reference_measure.xml:2713
-#: reference_measure.xml:2754 reference_measure.xml:2797
-#: reference_measure.xml:2842 reference_measure.xml:2926
-#: reference_measure.xml:2966 reference_measure.xml:3043
-#: reference_measure.xml:3263
+#: reference_measure.xml:65 reference_measure.xml:114
+#: reference_measure.xml:164 reference_measure.xml:223
+#: reference_measure.xml:276 reference_measure.xml:344
+#: reference_measure.xml:391 reference_measure.xml:463
+#: reference_measure.xml:523 reference_measure.xml:595
+#: reference_measure.xml:709 reference_measure.xml:783
+#: reference_measure.xml:936 reference_measure.xml:1007
+#: reference_measure.xml:1088 reference_measure.xml:1160
+#: reference_measure.xml:1457 reference_measure.xml:1516
+#: reference_measure.xml:1594 reference_measure.xml:1710
+#: reference_measure.xml:1758 reference_measure.xml:1806
+#: reference_measure.xml:1861 reference_measure.xml:1959
+#: reference_measure.xml:2009 reference_measure.xml:2051
+#: reference_measure.xml:2135 reference_measure.xml:2187
+#: reference_measure.xml:2219 reference_measure.xml:2262
+#: reference_measure.xml:2314 reference_measure.xml:2366
+#: reference_measure.xml:2412 reference_measure.xml:2506
+#: reference_measure.xml:2551 reference_measure.xml:2638
+#: reference_measure.xml:2691 reference_measure.xml:2727
+#: reference_measure.xml:2768 reference_measure.xml:2811
+#: reference_measure.xml:2864 reference_measure.xml:2948
+#: reference_measure.xml:2988 reference_measure.xml:3065
+#: reference_measure.xml:3285
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -277,13 +277,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:100 reference_measure.xml:151
+#: reference_measure.xml:100 reference_measure.xml:152
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM ?"
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:101 reference_measure.xml:503
+#: reference_measure.xml:1574 reference_measure.xml:2124
+#: reference_measure.xml:2172
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:108
+#: reference_measure.xml:109
 #, no-c-format
 msgid ""
 "-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
@@ -291,10 +299,10 @@ msgid ""
 "-- Note: currently no vertical datum support so Z is not transformed and "
 "assumed to be same units as final.\n"
 "SELECT ST_3DDistance(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 4)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
 "                ) As dist_3d,\n"
 "                ST_Distance(\n"
 "                        ST_Transform(ST_GeomFromText('POINT(-72.1235 "
@@ -309,7 +317,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:109
+#: reference_measure.xml:110
 #, no-c-format
 msgid ""
 "-- Multilinestring and polygon both 3d and 2d distance\n"
@@ -327,7 +335,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:115
+#: reference_measure.xml:116
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DClosestPoint\"/>, <xref linkend=\"ST_3DDWithin\"/>, "
@@ -336,13 +344,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:121
+#: reference_measure.xml:122
 #, no-c-format
 msgid "ST_3DDWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:123
+#: reference_measure.xml:124
 #, no-c-format
 msgid ""
 "For 3d (z) geometry type Returns true if two geometries 3d distance is "
@@ -350,7 +358,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:127
+#: reference_measure.xml:128
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_3DDWithin</function></funcdef> "
@@ -361,7 +369,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:145
+#: reference_measure.xml:146
 #, no-c-format
 msgid ""
 "For geometry type returns true if the 3d distance between two objects is "
@@ -369,7 +377,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:159
+#: reference_measure.xml:160
 #, no-c-format
 msgid ""
 "-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
@@ -377,17 +385,17 @@ msgid ""
 "-- Note: currently no vertical datum support so Z is not transformed and "
 "assumed to be same units as final.\n"
 "SELECT ST_3DDWithin(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 4)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
 "                        126.8\n"
 "                ) As within_dist_3d,\n"
 "ST_DWithin(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 4)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 4)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),\n"
 "                        126.8\n"
 "                ) As within_dist_2d;\n"
 "\n"
@@ -397,7 +405,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:165
+#: reference_measure.xml:166
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
@@ -405,13 +413,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:171
+#: reference_measure.xml:172
 #, no-c-format
 msgid "ST_3DDFullyWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:173
+#: reference_measure.xml:174
 #, no-c-format
 msgid ""
 "Returns true if all of the 3D geometries are within the specified distance "
@@ -419,7 +427,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:179
+#: reference_measure.xml:180
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_3DDFullyWithin</function></funcdef> "
@@ -430,7 +438,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:197
+#: reference_measure.xml:198
 #, no-c-format
 msgid ""
 "Returns true if the 3D geometries are fully within the specified distance of "
@@ -441,9 +449,9 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:204 reference_measure.xml:261
-#: reference_measure.xml:1243 reference_measure.xml:1837
-#: reference_measure.xml:1923 reference_measure.xml:2095
+#: reference_measure.xml:205 reference_measure.xml:262
+#: reference_measure.xml:1242 reference_measure.xml:1847
+#: reference_measure.xml:1933 reference_measure.xml:2108
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -451,7 +459,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:218
+#: reference_measure.xml:219
 #, no-c-format
 msgid ""
 "-- This compares the difference between fully within and distance within as "
@@ -471,7 +479,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:224
+#: reference_measure.xml:225
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
@@ -479,13 +487,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:230
+#: reference_measure.xml:231
 #, no-c-format
 msgid "ST_3DIntersects"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:232
+#: reference_measure.xml:233
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries \"spatially intersect\" in 3d - only for "
@@ -493,7 +501,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:238
+#: reference_measure.xml:239
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_3DIntersects</function></funcdef> <paramdef> "
@@ -502,7 +510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:253 reference_measure.xml:2083
+#: reference_measure.xml:254 reference_measure.xml:2096
 #, no-c-format
 msgid ""
 "Overlaps, Touches, Within all imply spatial intersection. If any of the "
@@ -511,20 +519,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:268
+#: reference_measure.xml:269
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: ?"
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:271 reference_measure.xml:2113
-#: reference_measure.xml:2161
+#: reference_measure.xml:272 reference_measure.xml:2127
+#: reference_measure.xml:2176
 #, no-c-format
 msgid "Geometry Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:272
+#: reference_measure.xml:273
 #, no-c-format
 msgid ""
 "SELECT ST_3DIntersects(pt, line), ST_Intersects(pt,line) \n"
@@ -537,19 +545,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:282
+#: reference_measure.xml:283
 #, no-c-format
 msgid "ST_3DLongestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:284
+#: reference_measure.xml:285
 #, no-c-format
 msgid "Returns the 3-dimensional longest line between two geometries"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:289
+#: reference_measure.xml:290
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_3DLongestLine</function></funcdef> "
@@ -558,7 +566,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:304
+#: reference_measure.xml:305
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional longest line between two geometries. The function "
@@ -569,13 +577,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:322
+#: reference_measure.xml:323
 #, no-c-format
 msgid "linestring and point -- both 3d and 2d longest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:323
+#: reference_measure.xml:324
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
@@ -592,13 +600,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:327
+#: reference_measure.xml:328
 #, no-c-format
 msgid "linestring and multipoint -- both 3d and 2d longest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:328
+#: reference_measure.xml:329
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
@@ -615,13 +623,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:332
+#: reference_measure.xml:333
 #, no-c-format
 msgid "Multilinestring and polygon both 3d and 2d longest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:333
+#: reference_measure.xml:334
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DLongestLine(poly, mline)) As lol3d,\n"
@@ -637,7 +645,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:345
+#: reference_measure.xml:346
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
@@ -645,13 +653,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:351
+#: reference_measure.xml:352
 #, no-c-format
 msgid "ST_3DMaxDistance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:353
+#: reference_measure.xml:354
 #, no-c-format
 msgid ""
 "For geometry type Returns the 3-dimensional cartesian maximum distance "
@@ -659,7 +667,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:358
+#: reference_measure.xml:359
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_3DMaxDistance</function></funcdef> "
@@ -668,7 +676,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:373
+#: reference_measure.xml:374
 #, no-c-format
 msgid ""
 "For geometry type returns the 3-dimensional maximum cartesian distance "
@@ -676,7 +684,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:386
+#: reference_measure.xml:387
 #, no-c-format
 msgid ""
 "-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal "
@@ -684,16 +692,16 @@ msgid ""
 "-- Note: currently no vertical datum support so Z is not transformed and "
 "assumed to be same units as final.\n"
 "SELECT ST_3DMaxDistance(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 10000)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
 "                ) As dist_3d,\n"
 "                ST_MaxDistance(\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT"
-"(-72.1235 42.3521 10000)'),2163),\n"
-"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING"
-"(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"POINT(-72.1235 42.3521 10000)'),2163),\n"
+"                        ST_Transform(ST_GeomFromEWKT('SRID=4326;"
+"LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163)\n"
 "                ) As dist_2d;\n"
 "\n"
 "     dist_3d      |     dist_2d\n"
@@ -702,7 +710,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:392
+#: reference_measure.xml:393
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, "
@@ -710,19 +718,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:397
+#: reference_measure.xml:398
 #, no-c-format
 msgid "ST_3DShortestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:399
+#: reference_measure.xml:400
 #, no-c-format
 msgid "Returns the 3-dimensional shortest line between two geometries"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:404
+#: reference_measure.xml:405
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_3DShortestLine</function></funcdef> "
@@ -731,7 +739,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:419
+#: reference_measure.xml:420
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional shortest line between two geometries. The function "
@@ -746,13 +754,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:441
+#: reference_measure.xml:442
 #, no-c-format
 msgid "linestring and point -- both 3d and 2d shortest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:442
+#: reference_measure.xml:443
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
@@ -772,13 +780,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:446
+#: reference_measure.xml:447
 #, no-c-format
 msgid "linestring and multipoint -- both 3d and 2d shortest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:447
+#: reference_measure.xml:448
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
@@ -798,13 +806,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:451
+#: reference_measure.xml:452
 #, no-c-format
 msgid "Multilinestring and polygon both 3d and 2d shortest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:452
+#: reference_measure.xml:453
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_3DShortestLine(poly, mline)) As shl3d,\n"
@@ -823,7 +831,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:464
+#: reference_measure.xml:465
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, "
@@ -831,13 +839,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:469
+#: reference_measure.xml:470
 #, no-c-format
 msgid "ST_Area"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:471
+#: reference_measure.xml:472
 #, no-c-format
 msgid ""
 "Returns the area of the surface if it is a polygon or multi-polygon. For "
@@ -846,7 +854,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:475
+#: reference_measure.xml:476
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_Area</function></funcdef> "
@@ -858,38 +866,38 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:491
+#: reference_measure.xml:492
 #, no-c-format
 msgid ""
 "Returns the area of the geometry if it is a polygon or multi-polygon. Return "
 "the area measurement of an ST_Surface or ST_MultiSurface value. For geometry "
 "Area is in the units of the srid. For geography area is in square meters and "
 "defaults to measuring about the spheroid of the geography (currently only "
-"WGS84). To measure around the faster but less accurate sphere -- ST_Area"
-"(geog,false)."
+"WGS84). To measure around the faster but less accurate sphere -- "
+"ST_Area(geog,false)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:496
+#: reference_measure.xml:497
 #, no-c-format
 msgid "Enhanced: 2.0.0 - support for 2D polyhedral surfaces was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:497 reference_measure.xml:642
-#: reference_measure.xml:1572 reference_measure.xml:1937
+#: reference_measure.xml:498 reference_measure.xml:641
+#: reference_measure.xml:1571 reference_measure.xml:1947
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:498
+#: reference_measure.xml:499
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.2, 9.5.3"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:500
+#: reference_measure.xml:501
 #, no-c-format
 msgid ""
 "For polyhedral surfaces, only supports 2D polyhedral surfaces (not 2.5D). "
@@ -898,7 +906,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:506
+#: reference_measure.xml:508
 #, no-c-format
 msgid ""
 "Return area in square feet for a plot of Massachusetts land and multiply by "
@@ -907,7 +915,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:509
+#: reference_measure.xml:511
 #, no-c-format
 msgid ""
 "SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm\n"
@@ -921,7 +929,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:510
+#: reference_measure.xml:512
 #, no-c-format
 msgid ""
 "Return area square feet and transform to Massachusetts state plane meters "
@@ -931,7 +939,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:513
+#: reference_measure.xml:515
 #, no-c-format
 msgid ""
 "SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As "
@@ -946,7 +954,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:515
+#: reference_measure.xml:517
 #, no-c-format
 msgid ""
 "Return area square feet and square meters using Geography data type. Note "
@@ -957,7 +965,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:518
+#: reference_measure.xml:520
 #, no-c-format
 msgid ""
 "SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,"
@@ -983,7 +991,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:522
+#: reference_measure.xml:524
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeographyFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, "
@@ -991,22 +999,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:528
+#: reference_measure.xml:530
 #, no-c-format
 msgid "ST_Azimuth"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:530
+#: reference_measure.xml:532
 #, no-c-format
 msgid ""
-"Returns the angle in radians from the horizontal of the vector defined by "
-"pointA and pointB. Angle is computed clockwise from down-to-up: on the "
-"clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2."
+"Returns the north-based azimuth as the angle in radians measured clockwise "
+"from the vertical on pointA to pointB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:533
+#: reference_measure.xml:535
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_Azimuth</function></funcdef> "
@@ -1019,16 +1026,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:549
+#: reference_measure.xml:551
 #, no-c-format
 msgid ""
-"Returns the azimuth of the segment defined by the given Point geometries, or "
-"NULL if the two points are coincident. Return value is in radians. Angle is "
-"computed clockwise from down-to-up: on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2"
+"Returns the azimuth in radians of the segment defined by the given point-"
+"geometries, or NULL if the two points are coincident. The azimuth is north-"
+"based and is measured clockwise: North = 0; East = PI/2; South = PI; West = "
+"3PI/2."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:553
+#: reference_measure.xml:554
 #, no-c-format
 msgid ""
 "The Azimuth is mathematical concept defined as the angle, in this case "
@@ -1036,19 +1044,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:556
+#: reference_measure.xml:557
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:557
+#: reference_measure.xml:558
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:558
+#: reference_measure.xml:559
 #, no-c-format
 msgid ""
 "Azimuth is especially useful in conjunction with ST_Translate for shifting "
@@ -1058,69 +1066,70 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:564
+#: reference_measure.xml:565
 #, no-c-format
 msgid "Geometry Azimuth in degrees"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:565
+#: reference_measure.xml:566
 #, no-c-format
 msgid ""
-"SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as degAz,\n"
+"SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as "
+"degA_B,\n"
 "        ST_Azimuth(ST_Point(75,100), ST_Point(25,45))/(2*pi())*360 As "
-"degAzrev;\n"
+"degB_A;\n"
 "        \n"
 "-- NOTE easier to remember syntax using PostgreSQL built-in degrees function "
 "--\n"
 "-- Both yield same answer --\n"
-"SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degAz,\n"
-"        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As "
-"degAzrev;\n"
+"SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degA_B,\n"
+"        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As degB_A;\n"
 "\n"
-"      degaz       |     degazrev\n"
+"      dega_b       |     degb_a\n"
 "------------------+------------------\n"
 " 42.2736890060937 | 222.273689006094"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:575
+#: reference_measure.xml:576
 #, no-c-format
 msgid ""
-"degAz is path to travel (azimuth), horizontal line (which starts at the "
-"start point and ends where we want the end point to fall) and points (start "
-"point: 25,45 is in green)"
+"Green: the start Point(25,45) with its vertical. Yellow: degA_B as the path "
+"to travel (azimuth)."
 msgstr ""
 
 #. Tag: para
 #: reference_measure.xml:585
 #, no-c-format
 msgid ""
-"degAzrev is azimuth curve shown, horizontal line (which starts at the start "
-"point and ends where we want the end point to fall) and points (start point: "
-"75,100 is in green)"
+"Green: the start Point(75,100) with its vertical. Yellow: degB_A as the path "
+"to travel (azimuth)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:597
+#: reference_measure.xml:596
 #, no-c-format
-msgid ", <xref linkend=\"ST_Translate\"/>"
+msgid ""
+", <xref linkend=\"ST_Translate\"/>, <xref linkend=\"ST_Project\"/>, <ulink "
+"url=\"http://www.postgresql.org/docs/current/interactive/functions-math.html"
+"\">PostgreSQL Math Functions</ulink>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:604
+#: reference_measure.xml:603
 #, no-c-format
 msgid "ST_Centroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:606
+#: reference_measure.xml:605
 #, no-c-format
 msgid "Returns the geometric center of a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:611
+#: reference_measure.xml:610
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Centroid</function></funcdef> "
@@ -1128,12 +1137,12 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:623
+#: reference_measure.xml:622
 #, no-c-format
 msgid ""
 "Computes the geometric center of a geometry, or equivalently, the center of "
 "mass of the geometry as a <varname>POINT</varname>. For [<varname>MULTI</"
-"varname>]<varname>POINT</varname>s, this is computed as the arithmetric mean "
+"varname>]<varname>POINT</varname>s, this is computed as the arithmetic mean "
 "of the input coordinates. For [<varname>MULTI</varname>]<varname>LINESTRING</"
 "varname>s, this is computed as the weighted length of each line segment. For "
 "[<varname>MULTI</varname>]<varname>POLYGON</varname>s, \"weight\" is thought "
@@ -1143,7 +1152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:635
+#: reference_measure.xml:634
 #, no-c-format
 msgid ""
 "The centroid is equal to the centroid of the set of component Geometries of "
@@ -1152,7 +1161,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:639
+#: reference_measure.xml:638
 #, no-c-format
 msgid ""
 "Computation will be more accurate if performed by the GEOS module (enabled "
@@ -1160,13 +1169,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:643
+#: reference_measure.xml:642
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.4, 9.5.5"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:649
+#: reference_measure.xml:648
 #, no-c-format
 msgid ""
 "In each of the following illustrations, the blue dot represents the centroid "
@@ -1174,31 +1183,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:662
+#: reference_measure.xml:661
 #, no-c-format
 msgid "Centroid of a <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:673
+#: reference_measure.xml:672
 #, no-c-format
 msgid "Centroid of a <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:686
+#: reference_measure.xml:685
 #, no-c-format
 msgid "Centroid of a <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:697
+#: reference_measure.xml:696
 #, no-c-format
 msgid "Centroid of a <varname>GEOMETRYCOLLECTION</varname>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:706
+#: reference_measure.xml:705
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 "
@@ -1210,13 +1219,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:718
+#: reference_measure.xml:717
 #, no-c-format
 msgid "ST_ClosestPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:720
+#: reference_measure.xml:719
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the 2-dimensional point on g1 that is closest to g2. "
@@ -1224,7 +1233,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:726
+#: reference_measure.xml:725
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ClosestPoint</function></funcdef> "
@@ -1233,7 +1242,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:741
+#: reference_measure.xml:740
 #, no-c-format
 msgid ""
 "<para>Returns the 2-dimensional point on g1 that is closest to g2. This is "
@@ -1241,7 +1250,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:744
+#: reference_measure.xml:743
 #, no-c-format
 msgid ""
 "If you have a 3D Geometry, you may prefer to use <xref linkend="
@@ -1249,15 +1258,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:745 reference_measure.xml:1690
-#: reference_measure.xml:1842 reference_measure.xml:2433
-#: reference_measure.xml:3005
+#: reference_measure.xml:744 reference_measure.xml:1699
+#: reference_measure.xml:1852 reference_measure.xml:2448
+#: reference_measure.xml:3027
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:759
+#: reference_measure.xml:758
 #, no-c-format
 msgid ""
 "Closest between point and linestring is the point itself, but closest point "
@@ -1265,7 +1274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:763
+#: reference_measure.xml:762
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_ClosestPoint(pt,line)) AS cp_pt_line, \n"
@@ -1282,13 +1291,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:771
+#: reference_measure.xml:770
 #, no-c-format
 msgid "closest point on polygon A to polygon B"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:774
+#: reference_measure.xml:773
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -1305,7 +1314,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:786
+#: reference_measure.xml:785
 #, no-c-format
 msgid ""
 ",<xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
@@ -1313,13 +1322,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:792
+#: reference_measure.xml:791
 #, no-c-format
 msgid "ST_Contains"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:794
+#: reference_measure.xml:793
 #, no-c-format
 msgid ""
 "Returns true if and only if no points of B lie in the exterior of A, and at "
@@ -1327,7 +1336,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:799
+#: reference_measure.xml:798
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Contains</function></funcdef> "
@@ -1336,7 +1345,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:814
+#: reference_measure.xml:813
 #, no-c-format
 msgid ""
 "Geometry A contains Geometry B if and only if no points of B lie in the "
@@ -1348,7 +1357,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:818
+#: reference_measure.xml:817
 #, no-c-format
 msgid ""
 "Returns TRUE if geometry B is completely inside geometry A. For this "
@@ -1360,27 +1369,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:823 reference_measure.xml:1050
-#: reference_measure.xml:1132 reference_measure.xml:1497
-#: reference_measure.xml:2564 reference_measure.xml:2910
-#: reference_measure.xml:3227
+#: reference_measure.xml:822 reference_measure.xml:1049
+#: reference_measure.xml:1131 reference_measure.xml:1496
+#: reference_measure.xml:2579 reference_measure.xml:2932
+#: reference_measure.xml:3249
 #, no-c-format
 msgid "Performed by the GEOS module"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:826 reference_measure.xml:988
-#: reference_measure.xml:1053 reference_measure.xml:1135
-#: reference_measure.xml:1239 reference_measure.xml:1494
-#: reference_measure.xml:3108 reference_measure.xml:3230
+#: reference_measure.xml:825 reference_measure.xml:987
+#: reference_measure.xml:1052 reference_measure.xml:1134
+#: reference_measure.xml:1238 reference_measure.xml:1493
+#: reference_measure.xml:3130 reference_measure.xml:3252
 #, no-c-format
 msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:830 reference_measure.xml:992
-#: reference_measure.xml:1061 reference_measure.xml:1139
-#: reference_measure.xml:3234
+#: reference_measure.xml:829 reference_measure.xml:991
+#: reference_measure.xml:1060 reference_measure.xml:1138
+#: reference_measure.xml:3256
 #, no-c-format
 msgid ""
 "Do not use this function with invalid geometries. You will get unexpected "
@@ -1388,7 +1397,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:833
+#: reference_measure.xml:832
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -1397,10 +1406,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:838 reference_measure.xml:1072
-#: reference_measure.xml:1147 reference_measure.xml:1503
-#: reference_measure.xml:2104 reference_measure.xml:2573
-#: reference_measure.xml:3242
+#: reference_measure.xml:837 reference_measure.xml:1071
+#: reference_measure.xml:1146 reference_measure.xml:1502
+#: reference_measure.xml:2117 reference_measure.xml:2588
+#: reference_measure.xml:3264
 #, no-c-format
 msgid ""
 "NOTE: this is the \"allowable\" version that returns a boolean, not an "
@@ -1408,7 +1417,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:841
+#: reference_measure.xml:840
 #, no-c-format
 msgid ""
 "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - same as within(geometry B, geometry "
@@ -1416,14 +1425,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:843
+#: reference_measure.xml:842
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.31"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:845 reference_measure.xml:1076
-#: reference_measure.xml:1151
+#: reference_measure.xml:844 reference_measure.xml:1075
+#: reference_measure.xml:1150
 #, no-c-format
 msgid ""
 "There are certain subtleties to ST_Contains and ST_Within that are not "
@@ -1433,7 +1442,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:852
+#: reference_measure.xml:851
 #, no-c-format
 msgid ""
 "The <function>ST_Contains</function> predicate returns <varname>TRUE</"
@@ -1441,33 +1450,33 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:864
+#: reference_measure.xml:863
 #, no-c-format
 msgid "<varname>LINESTRING</varname> / <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:874 reference_measure.xml:3186
+#: reference_measure.xml:873 reference_measure.xml:3208
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>POINT</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:885 reference_measure.xml:925
-#: reference_measure.xml:3155
+#: reference_measure.xml:884 reference_measure.xml:924
+#: reference_measure.xml:3177
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:895 reference_measure.xml:2610
-#: reference_measure.xml:3135 reference_measure.xml:3145
+#: reference_measure.xml:894 reference_measure.xml:2625
+#: reference_measure.xml:3157 reference_measure.xml:3167
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:903
+#: reference_measure.xml:902
 #, no-c-format
 msgid ""
 "The <function>ST_Contains</function> predicate returns <varname>FALSE</"
@@ -1475,13 +1484,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:915
+#: reference_measure.xml:914
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:933
+#: reference_measure.xml:932
 #, no-c-format
 msgid ""
 "-- A circle within a circle\n"
@@ -1506,8 +1515,8 @@ msgid ""
 "-- Example demonstrating difference between contains and contains properly\n"
 "SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
 "acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
-"   ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, ST_ContainsProperly"
-"(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+"   ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
 "FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
 "                         ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
 "                         ( ST_Point(1,1) )\n"
@@ -1522,7 +1531,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:938
+#: reference_measure.xml:937
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ContainsProperly\"/>, <xref linkend=\"ST_Covers\"/>, "
@@ -1531,13 +1540,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:944
+#: reference_measure.xml:943
 #, no-c-format
 msgid "ST_ContainsProperly"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:946
+#: reference_measure.xml:945
 #, no-c-format
 msgid ""
 "Returns true if B intersects the interior of A but not the boundary (or "
@@ -1545,7 +1554,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:951
+#: reference_measure.xml:950
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_ContainsProperly</function></funcdef> "
@@ -1554,7 +1563,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:966
+#: reference_measure.xml:965
 #, no-c-format
 msgid ""
 "Returns true if B intersects the interior of A but not the boundary (or "
@@ -1562,13 +1571,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:968
+#: reference_measure.xml:967
 #, no-c-format
 msgid "A does not contain properly itself, but does contain itself."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:969
+#: reference_measure.xml:968
 #, no-c-format
 msgid ""
 "Every point of the other geometry is a point of this geometry's interior. "
@@ -1577,7 +1586,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:973
+#: reference_measure.xml:972
 #, no-c-format
 msgid ""
 "From JTS docs slightly reworded: The advantage to using this predicate over "
@@ -1587,7 +1596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:975
+#: reference_measure.xml:974
 #, no-c-format
 msgid ""
 "An example use case for this predicate is computing the intersections of a "
@@ -1598,13 +1607,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:985
+#: reference_measure.xml:984
 #, no-c-format
 msgid "Availability: 1.4.0 - requires GEOS >= 3.1.0."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:995
+#: reference_measure.xml:994
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -1613,7 +1622,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1004
+#: reference_measure.xml:1003
 #, no-c-format
 msgid ""
 "--a circle within a circle\n"
@@ -1639,8 +1648,8 @@ msgid ""
 " --example demonstrating difference between contains and contains properly\n"
 " SELECT ST_GeometryType(geomA) As geomtype, ST_Contains(geomA,geomA) AS "
 "acontainsa, ST_ContainsProperly(geomA, geomA) AS acontainspropa,\n"
-" ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, ST_ContainsProperly"
-"(geomA, ST_Boundary(geomA)) As acontainspropba\n"
+" ST_Contains(geomA, ST_Boundary(geomA)) As acontainsba, "
+"ST_ContainsProperly(geomA, ST_Boundary(geomA)) As acontainspropba\n"
 " FROM (VALUES ( ST_Buffer(ST_Point(1,1), 5,1) ),\n"
 "                  ( ST_MakeLine(ST_Point(1,1), ST_Point(-1,-1) ) ),\n"
 "                  ( ST_Point(1,1) )\n"
@@ -1655,7 +1664,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1009
+#: reference_measure.xml:1008
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_Contains\"/>, <xref "
@@ -1664,19 +1673,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1015
+#: reference_measure.xml:1014
 #, no-c-format
 msgid "ST_Covers"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1017
+#: reference_measure.xml:1016
 #, no-c-format
 msgid "Returns 1 (TRUE) if no point in Geometry B is outside Geometry A"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1022
+#: reference_measure.xml:1021
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
@@ -1689,7 +1698,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1047
+#: reference_measure.xml:1046
 #, no-c-format
 msgid ""
 "Returns 1 (TRUE) if no point in Geometry/Geography B is outside Geometry/"
@@ -1697,13 +1706,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1057
+#: reference_measure.xml:1056
 #, no-c-format
 msgid "For geography only Polygon covers point is supported."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1064
+#: reference_measure.xml:1063
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -1712,31 +1721,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1069 reference_measure.xml:1141
+#: reference_measure.xml:1068 reference_measure.xml:1140
 #, no-c-format
 msgid "Availability: 1.2.2 - requires GEOS >= 3.0"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1070
+#: reference_measure.xml:1069
 #, no-c-format
 msgid "Availability: 1.5 - support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1075 reference_measure.xml:1150
+#: reference_measure.xml:1074 reference_measure.xml:1149
 #, no-c-format
 msgid "Not an OGC standard, but Oracle has it too."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1082
+#: reference_measure.xml:1081
 #, no-c-format
 msgid "Geometry example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1083
+#: reference_measure.xml:1082
 #, no-c-format
 msgid ""
 "--a circle covering a circle\n"
@@ -1754,13 +1763,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1084
+#: reference_measure.xml:1083
 #, no-c-format
 msgid "Geeography Example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1085
+#: reference_measure.xml:1084
 #, no-c-format
 msgid ""
 "-- a point with a 300 meter buffer compared to a point, a point and its 10 "
@@ -1778,19 +1787,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1090
+#: reference_measure.xml:1089
 #, no-c-format
 msgid ", <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1096
+#: reference_measure.xml:1095
 #, no-c-format
 msgid "ST_CoveredBy"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1098
+#: reference_measure.xml:1097
 #, no-c-format
 msgid ""
 "<refpurpose>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
@@ -1798,7 +1807,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1103
+#: reference_measure.xml:1102
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
@@ -1811,7 +1820,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1129
+#: reference_measure.xml:1128
 #, no-c-format
 msgid ""
 "<para>Returns 1 (TRUE) if no point in Geometry/Geography A is outside "
@@ -1819,7 +1828,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1142
+#: reference_measure.xml:1141
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -1828,7 +1837,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1157
+#: reference_measure.xml:1156
 #, no-c-format
 msgid ""
 "--a circle coveredby a circle\n"
@@ -1847,7 +1856,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1162
+#: reference_measure.xml:1161
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref "
@@ -1855,13 +1864,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1168
+#: reference_measure.xml:1167
 #, no-c-format
 msgid "ST_Crosses"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1170
+#: reference_measure.xml:1169
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the supplied geometries have some, but "
@@ -1869,7 +1878,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1176
+#: reference_measure.xml:1175
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Crosses</function></funcdef> "
@@ -1878,7 +1887,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1189
+#: reference_measure.xml:1188
 #, no-c-format
 msgid ""
 "<function>ST_Crosses</function> takes two geometry objects and returns "
@@ -1892,13 +1901,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1198
+#: reference_measure.xml:1197
 #, no-c-format
 msgid "In mathematical terms, this is expressed as:"
 msgstr ""
 
 #. Tag: remark
-#: reference_measure.xml:1200
+#: reference_measure.xml:1199
 #, no-c-format
 msgid ""
 "TODO: Insert appropriate MathML markup here or use a gif. Simple HTML markup "
@@ -1906,13 +1915,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1211
+#: reference_measure.xml:1210
 #, no-c-format
 msgid "The DE-9IM Intersection Matrix for the two geometries is:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1215
+#: reference_measure.xml:1214
 #, no-c-format
 msgid ""
 "<markup>T*T******</markup> (for Point/Line, Point/Area, and Line/Area "
@@ -1920,7 +1929,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1220
+#: reference_measure.xml:1219
 #, no-c-format
 msgid ""
 "<markup>T*****T**</markup> (for Line/Point, Area/Point, and Area/Line "
@@ -1928,19 +1937,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1225
+#: reference_measure.xml:1224
 #, no-c-format
 msgid "<markup>0********</markup> (for Line/Line situations)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1229
+#: reference_measure.xml:1228
 #, no-c-format
 msgid "For any other combination of dimensions this predicate returns false."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1232
+#: reference_measure.xml:1231
 #, no-c-format
 msgid ""
 "The OpenGIS Simple Features Specification defines this predicate only for "
@@ -1950,50 +1959,50 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1248
+#: reference_measure.xml:1247
 #, no-c-format
 msgid "&sfs_compliant; s2.1.13.3"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1249
+#: reference_measure.xml:1248
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.29"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1255 reference_measure.xml:2582
+#: reference_measure.xml:1254 reference_measure.xml:2597
 #, no-c-format
 msgid "The following illustrations all return <varname>TRUE</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1267
+#: reference_measure.xml:1266
 #, no-c-format
 msgid "<varname>MULTIPOINT</varname> / <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1277
+#: reference_measure.xml:1276
 #, no-c-format
 msgid "<varname>MULTIPOINT</varname> / <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1289
+#: reference_measure.xml:1288
 #, no-c-format
 msgid "<varname>LINESTRING</varname> / <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1299 reference_measure.xml:2602
-#: reference_measure.xml:3166 reference_measure.xml:3176
+#: reference_measure.xml:1298 reference_measure.xml:2617
+#: reference_measure.xml:3188 reference_measure.xml:3198
 #, no-c-format
 msgid "<varname>LINESTRING</varname> / <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1307
+#: reference_measure.xml:1306
 #, no-c-format
 msgid ""
 "Consider a situation where a user has two tables: a table of roads and a "
@@ -2001,7 +2010,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1315
+#: reference_measure.xml:1314
 #, no-c-format
 msgid ""
 "CREATE TABLE roads (\n"
@@ -2012,7 +2021,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1319
+#: reference_measure.xml:1318
 #, no-c-format
 msgid ""
 "CREATE TABLE highways (\n"
@@ -2023,14 +2032,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1326
+#: reference_measure.xml:1325
 #, no-c-format
 msgid ""
 "To determine a list of roads that cross a highway, use a query similiar to:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1330
+#: reference_measure.xml:1329
 #, no-c-format
 msgid ""
 "SELECT roads.id\n"
@@ -2039,13 +2048,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1337
+#: reference_measure.xml:1336
 #, no-c-format
 msgid "ST_LineCrossingDirection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1339
+#: reference_measure.xml:1338
 #, no-c-format
 msgid ""
 "Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
@@ -2053,7 +2062,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1344
+#: reference_measure.xml:1343
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_LineCrossingDirection</function></funcdef> "
@@ -2063,7 +2072,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1355
+#: reference_measure.xml:1354
 #, no-c-format
 msgid ""
 "Given 2 linestrings, returns a number between -3 and 3 denoting what kind of "
@@ -2072,61 +2081,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1356
+#: reference_measure.xml:1355
 #, no-c-format
 msgid "Definition of integer constants is as follows:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1359
+#: reference_measure.xml:1358
 #, no-c-format
 msgid "0: LINE NO CROSS"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1362
+#: reference_measure.xml:1361
 #, no-c-format
 msgid "-1: LINE CROSS LEFT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1365
+#: reference_measure.xml:1364
 #, no-c-format
 msgid "1: LINE CROSS RIGHT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1368
+#: reference_measure.xml:1367
 #, no-c-format
 msgid "-2: LINE MULTICROSS END LEFT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1371
+#: reference_measure.xml:1370
 #, no-c-format
 msgid "2: LINE MULTICROSS END RIGHT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1374
+#: reference_measure.xml:1373
 #, no-c-format
 msgid "-3: LINE MULTICROSS END SAME FIRST LEFT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1377
+#: reference_measure.xml:1376
 #, no-c-format
 msgid "3: LINE MULTICROSS END SAME FIRST RIGHT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1381
+#: reference_measure.xml:1380
 #, no-c-format
 msgid "Availability: 1.4"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1399
+#: reference_measure.xml:1398
 #, no-c-format
 msgid ""
 "Line 1 (green), Line 2 ball is start point, triangle are end points. Query "
@@ -2134,7 +2143,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1403
+#: reference_measure.xml:1402
 #, no-c-format
 msgid ""
 "SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
@@ -2151,8 +2160,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1413 reference_measure.xml:1427
-#: reference_measure.xml:1441
+#: reference_measure.xml:1412 reference_measure.xml:1426
+#: reference_measure.xml:1440
 #, no-c-format
 msgid ""
 "Line 1 (green), Line 2 (blue) ball is start point, triangle are end points. "
@@ -2160,7 +2169,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1417
+#: reference_measure.xml:1416
 #, no-c-format
 msgid ""
 "SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
@@ -2178,7 +2187,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1431
+#: reference_measure.xml:1430
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -2196,7 +2205,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1445
+#: reference_measure.xml:1444
 #, no-c-format
 msgid ""
 "SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
@@ -2213,7 +2222,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1453
+#: reference_measure.xml:1452
 #, no-c-format
 msgid ""
 "SELECT s1.gid, s2.gid, ST_LineCrossingDirection(s1.the_geom, s2.the_geom)\n"
@@ -2223,13 +2232,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1466
+#: reference_measure.xml:1465
 #, no-c-format
 msgid "ST_Disjoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1468
+#: reference_measure.xml:1467
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries do not \"spatially intersect\" - if they do "
@@ -2237,7 +2246,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1474
+#: reference_measure.xml:1473
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> "
@@ -2246,7 +2255,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1489
+#: reference_measure.xml:1488
 #, no-c-format
 msgid ""
 "Overlaps, Touches, Within all imply geometries are not spatially disjoint. "
@@ -2255,25 +2264,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1499
+#: reference_measure.xml:1498
 #, no-c-format
 msgid "This function call does not use indexes"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1506
+#: reference_measure.xml:1505
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - a.Relate(b, 'FF*FF****')"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1508
+#: reference_measure.xml:1507
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.26"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1513
+#: reference_measure.xml:1512
 #, no-c-format
 msgid ""
 "SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
@@ -2291,19 +2300,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1518
+#: reference_measure.xml:1517
 #, no-c-format
 msgid "<para>ST_Intersects</para>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1524
+#: reference_measure.xml:1523
 #, no-c-format
 msgid "ST_Distance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1526
+#: reference_measure.xml:1525
 #, no-c-format
 msgid ""
 "For geometry type Returns the 2-dimensional cartesian minimum distance "
@@ -2313,7 +2322,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1530
+#: reference_measure.xml:1529
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_Distance</function></funcdef> "
@@ -2330,7 +2339,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1568
+#: reference_measure.xml:1567
 #, no-c-format
 msgid ""
 "For geometry type returns the 2-dimensional minimum cartesian distance "
@@ -2341,13 +2350,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1573
+#: reference_measure.xml:1572
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.23"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1575
+#: reference_measure.xml:1573 reference_measure.xml:2039
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1576
 #, no-c-format
 msgid ""
 "Availability: 1.5.0 geography support was introduced in 1.5. Speed "
@@ -2355,7 +2370,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1576 reference_measure.xml:1939
+#: reference_measure.xml:1577 reference_measure.xml:1949
 #, no-c-format
 msgid ""
 "Enhanced: 2.1.0 improved speed for geography. See <ulink url=\"http://blog."
@@ -2363,9 +2378,21 @@ msgid ""
 "ulink> for details."
 msgstr ""
 
-#. Tag: programlisting
+#. Tag: para
+#: reference_measure.xml:1578
+#, no-c-format
+msgid "Enhanced: 2.1.0 - support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: title
 #: reference_measure.xml:1582
 #, no-c-format
+msgid "Basic Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1584
+#, no-c-format
 msgid ""
 "--Geometry example - units in planar degrees 4326 is WGS 84 long lat "
 "unit=degrees\n"
@@ -2401,9 +2428,21 @@ msgid ""
 "\n"
 "st_distance\n"
 "------------------\n"
-"126.664256056812\n"
-"\n"
-"-- Geography example -- same but note units in meters - use sphere for "
+"126.664256056812"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1587 reference_measure.xml:2131
+#: reference_measure.xml:2182
+#, no-c-format
+msgid "Geography Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1588
+#, no-c-format
+msgid ""
+"-- same as geometry example but note units in meters - use sphere for "
 "slightly faster less accurate\n"
 "SELECT ST_Distance(gg1, gg2) As spheroid_dist, ST_Distance(gg1, gg2, false) "
 "As sphere_dist \n"
@@ -2419,7 +2458,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1588
+#: reference_measure.xml:1596
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_Distance_Sphere\"/>, "
@@ -2428,13 +2467,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1594
+#: reference_measure.xml:1602
 #, no-c-format
 msgid "ST_HausdorffDistance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1596
+#: reference_measure.xml:1604
 #, no-c-format
 msgid ""
 "Returns the Hausdorff distance between two geometries. Basically a measure "
@@ -2443,7 +2482,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1601
+#: reference_measure.xml:1609
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_HausdorffDistance</function></"
@@ -2457,7 +2496,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1629
+#: reference_measure.xml:1637
 #, no-c-format
 msgid ""
 "Implements algorithm for computing a distance metric which can be thought of "
@@ -2471,7 +2510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1632
+#: reference_measure.xml:1640
 #, no-c-format
 msgid ""
 "When densifyFrac is specified, this function performs a segment "
@@ -2482,7 +2521,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1637
+#: reference_measure.xml:1645
 #, no-c-format
 msgid ""
 "The current implementation supports only vertices as the discrete locations. "
@@ -2490,7 +2529,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1642
+#: reference_measure.xml:1650
 #, no-c-format
 msgid ""
 "This algorithm is NOT equivalent to the standard Hausdorff distance. "
@@ -2501,16 +2540,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1647
+#: reference_measure.xml:1655
 #, no-c-format
 msgid "Availability: 1.5.0 - requires GEOS >= 3.2.0"
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:1661
+#, no-c-format
+msgid ""
+"For each building, find the parcel that best represents it. First we require "
+"the parcel intersect with the geometry. DISTINCT ON guarantees we get each "
+"building listed only once, the ORDER BY .. ST_HausdorffDistance gives us a "
+"preference of parcel that is most similar to the building."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:1654
+#: reference_measure.xml:1663
 #, no-c-format
 msgid ""
-"postgis=# SELECT st_HausdorffDistance(\n"
+"SELECT DISTINCT ON(buildings.gid) buildings.gid, parcels.parcel_id \n"
+"   FROM buildings INNER JOIN parcels ON ST_Intersects(buildings.geom,parcels."
+"geom) \n"
+"     ORDER BY buildings.gid, ST_HausdorffDistance(buildings.geom, parcels."
+"geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1665
+#, no-c-format
+msgid ""
+"postgis=# SELECT ST_HausdorffDistance(\n"
 "                                'LINESTRING (0 0, 2 0)'::geometry,\n"
 "                                'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);\n"
 " st_hausdorffdistance\n"
@@ -2520,7 +2580,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1655
+#: reference_measure.xml:1666
 #, no-c-format
 msgid ""
 "postgis=# SELECT st_hausdorffdistance('LINESTRING (130 0, 0 0, 0 150)'::"
@@ -2532,13 +2592,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1662
+#: reference_measure.xml:1673
 #, no-c-format
 msgid "ST_MaxDistance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1664
+#: reference_measure.xml:1675
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional largest distance between two geometries in "
@@ -2546,7 +2606,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1670
+#: reference_measure.xml:1681
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_MaxDistance</function></funcdef> "
@@ -2555,23 +2615,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1681
-#, no-c-format
-msgid "Some useful description here."
-msgstr ""
-
-#. Tag: para
-#: reference_measure.xml:1685
+#: reference_measure.xml:1694
 #, no-c-format
 msgid ""
-"Returns the 2-dimensional maximum distance between two linestrings in "
+"Returns the 2-dimensional maximum distance between two geometries in "
 "projected units. If g1 and g2 is the same geometry the function will return "
 "the distance between the two vertices most far from each other in that "
 "geometry."
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:1704
+#, no-c-format
+msgid "Basic furthest distance the point is to any part of the line"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:1695
+#: reference_measure.xml:1705
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 "
@@ -2590,19 +2650,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1701
+#: reference_measure.xml:1711
 #, no-c-format
-msgid ", <xref linkend=\"ST_LongestLine\"/>"
+msgid ""
+", <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_DFullyWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1707
+#: reference_measure.xml:1717
 #, no-c-format
 msgid "ST_Distance_Sphere"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1709
+#: reference_measure.xml:1719
 #, no-c-format
 msgid ""
 "Returns minimum distance in meters between two lon/lat geometries. Uses a "
@@ -2612,7 +2673,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1717
+#: reference_measure.xml:1727
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Distance_Sphere</function></funcdef> "
@@ -2622,7 +2683,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1728
+#: reference_measure.xml:1738
 #, no-c-format
 msgid ""
 "Returns minimum distance in meters between two lon/lat points. Uses a "
@@ -2632,7 +2693,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1733
+#: reference_measure.xml:1743
 #, no-c-format
 msgid ""
 "This function currently does not look at the SRID of a geometry and will "
@@ -2641,7 +2702,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1736 reference_measure.xml:1784
+#: reference_measure.xml:1746 reference_measure.xml:1794
 #, no-c-format
 msgid ""
 "Availability: 1.5 - support for other geometry types besides points was "
@@ -2649,11 +2710,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1743
+#: reference_measure.xml:1753
 #, no-c-format
 msgid ""
-"SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), ST_GeomFromText"
-"('POINT(-118 38)',4326)) As numeric),2) As dist_meters,\n"
+"SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,\n"
 "round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),\n"
 "                ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) "
 "As numeric),2) As dist_utm11_meters,\n"
@@ -2674,19 +2735,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1750
+#: reference_measure.xml:1760
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1756
+#: reference_measure.xml:1766
 #, no-c-format
 msgid "ST_Distance_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1758
+#: reference_measure.xml:1768
 #, no-c-format
 msgid ""
 "Returns the minimum distance between two lon/lat geometries given a "
@@ -2694,7 +2755,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1765
+#: reference_measure.xml:1775
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Distance_Spheroid</function></funcdef> "
@@ -2705,7 +2766,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1777
+#: reference_measure.xml:1787
 #, no-c-format
 msgid ""
 "Returns minimum distance in meters between two lon/lat geometries given a "
@@ -2715,7 +2776,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1781
+#: reference_measure.xml:1791
 #, no-c-format
 msgid ""
 "This function currently does not look at the SRID of a geometry and will "
@@ -2724,12 +2785,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1791
+#: reference_measure.xml:1801
 #, no-c-format
 msgid ""
 "SELECT round(CAST(\n"
-"                ST_Distance_Spheroid(ST_Centroid(the_geom), ST_GeomFromText"
-"('POINT(-118 38)',4326), 'SPHEROID[\"WGS 84\",6378137,298.257223563]')\n"
+"                ST_Distance_Spheroid(ST_Centroid(the_geom), "
+"ST_GeomFromText('POINT(-118 38)',4326), 'SPHEROID[\"WGS "
+"84\",6378137,298.257223563]')\n"
 "                        As numeric),2) As dist_meters_spheroid,\n"
 "                round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), "
 "ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As "
@@ -2746,19 +2808,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1798
+#: reference_measure.xml:1808
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance_Sphere\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1804
+#: reference_measure.xml:1814
 #, no-c-format
 msgid "ST_DFullyWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1806
+#: reference_measure.xml:1816
 #, no-c-format
 msgid ""
 "Returns true if all of the geometries are within the specified distance of "
@@ -2766,7 +2828,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1812
+#: reference_measure.xml:1822
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_DFullyWithin</function></funcdef> "
@@ -2777,7 +2839,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1830
+#: reference_measure.xml:1840
 #, no-c-format
 msgid ""
 "Returns true if the geometries is fully within the specified distance of one "
@@ -2788,7 +2850,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1847
+#: reference_measure.xml:1857
 #, no-c-format
 msgid ""
 "postgis=# SELECT ST_DFullyWithin(geom_a, geom_b, 10) as DFullyWithin10, "
@@ -2804,19 +2866,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1853
+#: reference_measure.xml:1863
 #, no-c-format
 msgid ", <xref linkend=\"ST_DWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1859
+#: reference_measure.xml:1869
 #, no-c-format
 msgid "ST_DWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1861
+#: reference_measure.xml:1871
 #, no-c-format
 msgid ""
 "Returns true if the geometries are within the specified distance of one "
@@ -2827,7 +2889,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1867
+#: reference_measure.xml:1877
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
@@ -2848,7 +2910,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1912
+#: reference_measure.xml:1922
 #, no-c-format
 msgid ""
 "Returns true if the geometries are within the specified distance of one "
@@ -2856,7 +2918,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1914
+#: reference_measure.xml:1924
 #, no-c-format
 msgid ""
 "For Geometries: The distance is specified in units defined by the spatial "
@@ -2866,7 +2928,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1919
+#: reference_measure.xml:1929
 #, no-c-format
 msgid ""
 "For geography units are in meters and measurement is defaulted to "
@@ -2875,7 +2937,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1929
+#: reference_measure.xml:1939
 #, no-c-format
 msgid ""
 "Prior to 1.3, ST_Expand was commonly used in conjunction with && and "
@@ -2886,19 +2948,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1935
+#: reference_measure.xml:1945
 #, no-c-format
 msgid "Use ST_3DDWithin if you have 3D geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1938
+#: reference_measure.xml:1948
 #, no-c-format
 msgid "Availability: 1.5.0 support for geography was introduced"
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:1950
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for curved geometries was introduced."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:1944
+#: reference_measure.xml:1955
 #, no-c-format
 msgid ""
 "--Find the nearest hospital to each school\n"
@@ -2926,19 +2994,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1950
+#: reference_measure.xml:1961
 #, no-c-format
 msgid ", <xref linkend=\"ST_Expand\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1956
+#: reference_measure.xml:1967
 #, no-c-format
 msgid "ST_Equals"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1958
+#: reference_measure.xml:1969
 #, no-c-format
 msgid ""
 "Returns true if the given geometries represent the same geometry. "
@@ -2946,7 +3014,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1964
+#: reference_measure.xml:1975
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Equals</function></funcdef> "
@@ -2955,7 +3023,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1975
+#: reference_measure.xml:1986
 #, no-c-format
 msgid ""
 "Returns TRUE if the given Geometries are \"spatially equal\". Use this for a "
@@ -2968,7 +3036,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1984
+#: reference_measure.xml:1995
 #, no-c-format
 msgid ""
 "This function will return false if either geometry is invalid even if they "
@@ -2976,19 +3044,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1987
+#: reference_measure.xml:1998
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1988
+#: reference_measure.xml:1999
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.24"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1994
+#: reference_measure.xml:2005
 #, no-c-format
 msgid ""
 "SELECT ST_Equals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
@@ -3007,7 +3075,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2000
+#: reference_measure.xml:2011
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Reverse\"/>, "
@@ -3015,13 +3083,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2007
+#: reference_measure.xml:2018
 #, no-c-format
 msgid "ST_HasArc"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2009
+#: reference_measure.xml:2020
 #, no-c-format
 msgid ""
 "<refpurpose>Returns true if a geometry or geometry collection contains a "
@@ -3029,7 +3097,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2014
+#: reference_measure.xml:2025
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_HasArc</function></funcdef> "
@@ -3037,7 +3105,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2024
+#: reference_measure.xml:2035
 #, no-c-format
 msgid ""
 "<para>Returns true if a geometry or geometry collection contains a circular "
@@ -3045,19 +3113,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2026
+#: reference_measure.xml:2037
 #, no-c-format
 msgid "Availability: 1.2.3?"
 msgstr ""
 
-#. Tag: para
-#: reference_measure.xml:2028
-#, no-c-format
-msgid "&curve_support;"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_measure.xml:2035
+#: reference_measure.xml:2046
 #, no-c-format
 msgid ""
 "SELECT ST_HasArc(ST_Collect('LINESTRING(1 2, 3 4, 5 6)', 'CIRCULARSTRING(1 "
@@ -3068,19 +3130,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2042
+#: reference_measure.xml:2053
 #, no-c-format
 msgid ", <xref linkend=\"ST_LineToCurve\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2048
+#: reference_measure.xml:2059
 #, no-c-format
 msgid "<refname>ST_Intersects</refname>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2050
+#: reference_measure.xml:2061
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries/Geography \"spatially intersect in 2D\" - "
@@ -3090,7 +3152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:2056
+#: reference_measure.xml:2067
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
@@ -3103,7 +3165,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2088
+#: reference_measure.xml:2094
+#, no-c-format
+msgid ""
+"If a geometry or geography shares any portion of space then they intersect. "
+"For geography -- tolerance is 0.00001 meters (so any points that are close "
+"are considered to intersect)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2101
 #, no-c-format
 msgid ""
 "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument for "
@@ -3112,19 +3183,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2092
+#: reference_measure.xml:2105
 #, no-c-format
 msgid "Performed by the GEOS module (for geometry), geography is native"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2093
+#: reference_measure.xml:2106
 #, no-c-format
 msgid "Availability: 1.5 support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2100
+#: reference_measure.xml:2113
 #, no-c-format
 msgid ""
 "For geography, this function has a distance tolerance of about 0.00001 "
@@ -3132,7 +3203,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2107
+#: reference_measure.xml:2120
 #, no-c-format
 msgid ""
 "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - ST_Intersects(g1, g2 ) --> Not "
@@ -3140,13 +3211,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2110
+#: reference_measure.xml:2123
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.27"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2114
+#: reference_measure.xml:2128
 #, no-c-format
 msgid ""
 "SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::"
@@ -3163,14 +3234,8 @@ msgid ""
 "(1 row)"
 msgstr ""
 
-#. Tag: title
-#: reference_measure.xml:2117 reference_measure.xml:2167
-#, no-c-format
-msgid "Geography Examples"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_measure.xml:2118
+#: reference_measure.xml:2132
 #, no-c-format
 msgid ""
 "SELECT ST_Intersects(\n"
@@ -3186,19 +3251,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2122
+#: reference_measure.xml:2136
 #, no-c-format
 msgid ", <xref linkend=\"ST_Disjoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2127
+#: reference_measure.xml:2141
 #, no-c-format
 msgid "ST_Length"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2129
+#: reference_measure.xml:2143
 #, no-c-format
 msgid ""
 "Returns the 2d length of the geometry if it is a linestring or "
@@ -3207,7 +3272,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:2132
+#: reference_measure.xml:2146
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>float <function>ST_Length</function></funcdef> "
@@ -3220,7 +3285,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2147
+#: reference_measure.xml:2161
 #, no-c-format
 msgid ""
 "For geometry: Returns the cartesian 2D length of the geometry if it is a "
@@ -3232,7 +3297,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2151
+#: reference_measure.xml:2165
 #, no-c-format
 msgid ""
 "Currently for geometry this is an alias for ST_Length2D, but this may change "
@@ -3240,7 +3305,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2152
+#: reference_measure.xml:2166
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 Breaking change -- in prior versions applying this to a MULTI/"
@@ -3251,7 +3316,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2154
+#: reference_measure.xml:2168
 #, no-c-format
 msgid ""
 "For geography measurement defaults spheroid measurement. To use the faster "
@@ -3259,25 +3324,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2155 reference_measure.xml:2660
+#: reference_measure.xml:2169 reference_measure.xml:2674
 #, no-c-format
 msgid "&sfs_compliant; s2.1.5.1"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2156
+#: reference_measure.xml:2170
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.2, 9.3.4"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2157
+#: reference_measure.xml:2171
 #, no-c-format
 msgid "Availability: 1.5.0 geography support was introduced in 1.5."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2162
+#: reference_measure.xml:2177
 #, no-c-format
 msgid ""
 "Return length in feet for line string. Note this is in feet because 2249 is "
@@ -3285,7 +3350,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2164
+#: reference_measure.xml:2179
 #, no-c-format
 msgid ""
 "SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 "
@@ -3310,13 +3375,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2168
+#: reference_measure.xml:2183
 #, no-c-format
 msgid "Return length of WGS 84 geography line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2169
+#: reference_measure.xml:2184
 #, no-c-format
 msgid ""
 "-- default calculation is using a sphere rather than spheroid\n"
@@ -3333,7 +3398,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2173
+#: reference_measure.xml:2188
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Length_Spheroid\"/"
@@ -3341,13 +3406,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2179
+#: reference_measure.xml:2194
 #, no-c-format
 msgid "ST_Length2D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2181
+#: reference_measure.xml:2196
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the 2-dimensional length of the geometry if it is a "
@@ -3356,7 +3421,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2187
+#: reference_measure.xml:2202
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Length2D</function></funcdef> "
@@ -3365,7 +3430,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2197
+#: reference_measure.xml:2212
 #, no-c-format
 msgid ""
 "<para>Returns the 2-dimensional length of the geometry if it is a linestring "
@@ -3373,19 +3438,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2206
+#: reference_measure.xml:2221
 #, no-c-format
 msgid ", <xref linkend=\"ST_3DLength\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2212
+#: reference_measure.xml:2227
 #, no-c-format
 msgid "ST_3DLength"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2214
+#: reference_measure.xml:2229
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
@@ -3393,7 +3458,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2220
+#: reference_measure.xml:2235
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_3DLength</function></funcdef> "
@@ -3402,7 +3467,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2230
+#: reference_measure.xml:2245
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional or 2-dimensional length of the geometry if it is a "
@@ -3411,13 +3476,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2233
+#: reference_measure.xml:2248
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Length3D"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2240
+#: reference_measure.xml:2255
 #, no-c-format
 msgid ""
 "Return length in feet for a 3D cable. Note this is in feet because 2249 is "
@@ -3425,7 +3490,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2242
+#: reference_measure.xml:2257
 #, no-c-format
 msgid ""
 "SELECT ST_3DLength(ST_GeomFromText('LINESTRING(743238 2967416 1,743238 "
@@ -3437,19 +3502,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2249
+#: reference_measure.xml:2264
 #, no-c-format
 msgid ", <xref linkend=\"ST_Length2D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2255
+#: reference_measure.xml:2270
 #, no-c-format
 msgid "ST_Length_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2257
+#: reference_measure.xml:2272
 #, no-c-format
 msgid ""
 "Calculates the 2D or 3D length of a linestring/multilinestring on an "
@@ -3458,7 +3523,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2264
+#: reference_measure.xml:2279
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Length_Spheroid</function></funcdef> "
@@ -3468,7 +3533,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2275
+#: reference_measure.xml:2290
 #, no-c-format
 msgid ""
 "Calculates the length of a geometry on an ellipsoid. This is useful if the "
@@ -3478,7 +3543,7 @@ msgid ""
 msgstr ""
 
 #. Tag: literallayout
-#: reference_measure.xml:2281 reference_measure.xml:2333
+#: reference_measure.xml:2296 reference_measure.xml:2348
 #, no-c-format
 msgid ""
 "SPHEROID[<NAME>,<SEMI-MAJOR\n"
@@ -3486,19 +3551,19 @@ msgid ""
 msgstr ""
 
 #. Tag: literallayout
-#: reference_measure.xml:2284 reference_measure.xml:2336
+#: reference_measure.xml:2299 reference_measure.xml:2351
 #, no-c-format
 msgid "SPHEROID[\"GRS_1980\",6378137,298.257222101]"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2285 reference_measure.xml:2337
+#: reference_measure.xml:2300 reference_measure.xml:2352
 #, no-c-format
 msgid "Will return 0 for anything that is not a MULTILINESTRING or LINESTRING"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2294
+#: reference_measure.xml:2309
 #, no-c-format
 msgid ""
 "SELECT ST_Length_Spheroid( geometry_column,\n"
@@ -3508,8 +3573,8 @@ msgid ""
 "SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
 "ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
 "ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
-"                          FROM (SELECT ST_GeomFromText('MULTILINESTRING"
-"((-118.584 38.374,-118.583 38.5),\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
 "        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
 "CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
 "as foo;\n"
@@ -3521,8 +3586,8 @@ msgid ""
 "SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,\n"
 "ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
 "ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
-"                          FROM (SELECT ST_GeomFromEWKT('MULTILINESTRING"
-"((-118.584 38.374 20,-118.583 38.5 30),\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
 "        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
 "CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
 "as foo;\n"
@@ -3533,20 +3598,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2301
+#: reference_measure.xml:2316
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_3DLength_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2307
+#: reference_measure.xml:2322
 #, no-c-format
 msgid "ST_Length2D_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2309
+#: reference_measure.xml:2324
 #, no-c-format
 msgid ""
 "Calculates the 2D length of a linestring/multilinestring on an ellipsoid. "
@@ -3555,7 +3620,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2316
+#: reference_measure.xml:2331
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Length2D_Spheroid</function></funcdef> "
@@ -3565,7 +3630,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2327
+#: reference_measure.xml:2342
 #, no-c-format
 msgid ""
 "Calculates the 2D length of a geometry on an ellipsoid. This is useful if "
@@ -3575,7 +3640,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2338
+#: reference_measure.xml:2353
 #, no-c-format
 msgid ""
 "This is much like <xref linkend=\"ST_Length_Spheroid\"/> and <xref linkend="
@@ -3584,7 +3649,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2346
+#: reference_measure.xml:2361
 #, no-c-format
 msgid ""
 "SELECT ST_Length2D_Spheroid( geometry_column,\n"
@@ -3594,8 +3659,8 @@ msgid ""
 "SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
 "ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
 "ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
-"                          FROM (SELECT ST_GeomFromText('MULTILINESTRING"
-"((-118.584 38.374,-118.583 38.5),\n"
+"                          FROM (SELECT "
+"ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),\n"
 "        (-71.05957 42.3589 , -71.061 43))') As the_geom,\n"
 "CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
 "as foo;\n"
@@ -3607,8 +3672,8 @@ msgid ""
 "SELECT ST_Length2D_Spheroid( the_geom, sph_m ) As tot_len,\n"
 "ST_Length2D_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,\n"
 "ST_Length2D_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2\n"
-"                          FROM (SELECT ST_GeomFromEWKT('MULTILINESTRING"
-"((-118.584 38.374 20,-118.583 38.5 30),\n"
+"                          FROM (SELECT "
+"ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),\n"
 "        (-71.05957 42.3589 75, -71.061 43 90))') As the_geom,\n"
 "CAST('SPHEROID[\"GRS_1980\",6378137,298.257222101]' As spheroid) As sph_m)  "
 "as foo;\n"
@@ -3619,7 +3684,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2353
+#: reference_measure.xml:2368
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Length_Spheroid\"/>, <xref linkend="
@@ -3627,13 +3692,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2359
+#: reference_measure.xml:2374
 #, no-c-format
 msgid "ST_3DLength_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2361
+#: reference_measure.xml:2376
 #, no-c-format
 msgid ""
 "<refpurpose>Calculates the length of a geometry on an ellipsoid, taking the "
@@ -3642,7 +3707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2367
+#: reference_measure.xml:2382
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_3DLength_Spheroid</function></funcdef> "
@@ -3652,7 +3717,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2378
+#: reference_measure.xml:2393
 #, no-c-format
 msgid ""
 "<para>Calculates the length of a geometry on an ellipsoid, taking the "
@@ -3660,7 +3725,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2382
+#: reference_measure.xml:2397
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 In prior versions this used to return 0 for anything that is "
@@ -3669,38 +3734,38 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2383
+#: reference_measure.xml:2398
 #, no-c-format
 msgid "This function is just an alias for ST_Length_Spheroid."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2385
+#: reference_measure.xml:2400
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 In prior versions this used to be called ST_Length3d_Spheroid"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2392
+#: reference_measure.xml:2407
 #, no-c-format
 msgid "See ST_Length_Spheroid"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2399
+#: reference_measure.xml:2414
 #, no-c-format
 msgid ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_Length_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2405
+#: reference_measure.xml:2420
 #, no-c-format
 msgid "ST_LongestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2407
+#: reference_measure.xml:2422
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional longest line points of two geometries. The "
@@ -3711,7 +3776,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2415
+#: reference_measure.xml:2430
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LongestLine</function></funcdef> "
@@ -3720,20 +3785,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2430
+#: reference_measure.xml:2445
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional longest line between the points of two geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2448
+#: reference_measure.xml:2463
 #, no-c-format
 msgid "Longest line between point and line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2451
+#: reference_measure.xml:2466
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -3748,13 +3813,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2459
+#: reference_measure.xml:2474
 #, no-c-format
 msgid "longest line between polygon and polygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2462
+#: reference_measure.xml:2477
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -3771,7 +3836,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2478
+#: reference_measure.xml:2493
 #, no-c-format
 msgid ""
 "longest straight distance to travel from one part of an elegant city to the "
@@ -3779,7 +3844,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2482
+#: reference_measure.xml:2497
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_LongestLine(c.the_geom, c.the_geom)) As llinewkt, \n"
@@ -3798,20 +3863,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2493
+#: reference_measure.xml:2508
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_LongestLine\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2499
+#: reference_measure.xml:2514
 #, no-c-format
 msgid "ST_OrderingEquals"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2501
+#: reference_measure.xml:2516
 #, no-c-format
 msgid ""
 "Returns true if the given geometries represent the same geometry and points "
@@ -3819,7 +3884,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2507
+#: reference_measure.xml:2522
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_OrderingEquals</function></funcdef> "
@@ -3828,7 +3893,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2518
+#: reference_measure.xml:2533
 #, no-c-format
 msgid ""
 "ST_OrderingEquals compares two geometries and returns t (TRUE) if the "
@@ -3837,7 +3902,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2523
+#: reference_measure.xml:2538
 #, no-c-format
 msgid ""
 "This function is implemented as per the ArcSDE SQL specification rather than "
@@ -3846,13 +3911,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2527
+#: reference_measure.xml:2542
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.43"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2533
+#: reference_measure.xml:2548
 #, no-c-format
 msgid ""
 "SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
@@ -3879,19 +3944,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2537
+#: reference_measure.xml:2552
 #, no-c-format
 msgid ", <xref linkend=\"ST_Reverse\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2543
+#: reference_measure.xml:2558
 #, no-c-format
 msgid "ST_Overlaps"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2545
+#: reference_measure.xml:2560
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries share space, are of the same dimension, but "
@@ -3899,7 +3964,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2550
+#: reference_measure.xml:2565
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Overlaps</function></funcdef> "
@@ -3908,7 +3973,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2561
+#: reference_measure.xml:2576
 #, no-c-format
 msgid ""
 "Returns TRUE if the Geometries \"spatially overlap\". By that we mean they "
@@ -3916,14 +3981,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2566 reference_measure.xml:2892
-#: reference_measure.xml:2906
+#: reference_measure.xml:2581 reference_measure.xml:2914
+#: reference_measure.xml:2928
 #, no-c-format
 msgid "Do not call with a GeometryCollection as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2568
+#: reference_measure.xml:2583
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -3932,26 +3997,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2576 reference_measure.xml:2912
-#: reference_measure.xml:3117
+#: reference_measure.xml:2591 reference_measure.xml:2934
+#: reference_measure.xml:3139
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2577
+#: reference_measure.xml:2592
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.32"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2593
+#: reference_measure.xml:2608
 #, no-c-format
 msgid "<varname>MULTIPOINT</varname> / <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2617
+#: reference_measure.xml:2632
 #, no-c-format
 msgid ""
 "--a point on a line is contained by the line and is of a lower dimension, "
@@ -3962,8 +4027,8 @@ msgid ""
 "        ST_Crosses(a,b) As a_crosses_b,\n"
 "                ST_Intersects(a, b) As a_intersects_b, ST_Contains(b,a) As "
 "b_contains_a\n"
-"FROM (SELECT ST_GeomFromText('POINT(1 0.5)') As a, ST_GeomFromText"
-"('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
+"FROM (SELECT ST_GeomFromText('POINT(1 0.5)') As a, "
+"ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)')  As b)\n"
 "        As foo\n"
 "\n"
 "a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a\n"
@@ -3995,8 +4060,8 @@ msgid ""
 "SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b, "
 "ST_Intersects(a, b) As a_intersects_b,\n"
 "ST_Contains(b,a) As b_contains_a,\n"
-"ST_Dimension(a) As dim_a, ST_Dimension(b) as dim_b, ST_Dimension"
-"(ST_Intersection(a,b)) As dima_intersection_b\n"
+"ST_Dimension(a) As dim_a, ST_Dimension(b) as dim_b, "
+"ST_Dimension(ST_Intersection(a,b)) As dima_intersection_b\n"
 "FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a,\n"
 "        ST_Buffer(ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)'),0.5)  As b)\n"
 "        As foo;\n"
@@ -4010,7 +4075,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2625
+#: reference_measure.xml:2640
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Crosses\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
@@ -4018,13 +4083,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2630
+#: reference_measure.xml:2645
 #, no-c-format
 msgid "ST_Perimeter"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2632
+#: reference_measure.xml:2647
 #, no-c-format
 msgid ""
 "Return the length measurement of the boundary of an ST_Surface or "
@@ -4032,26 +4097,20 @@ msgid ""
 "measurement is in units of spatial reference and geography is in meters."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_measure.xml:2637
-#, no-c-format
-msgid ""
-"<funcdef>float <function>ST_Perimeter</function></funcdef> "
-"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef>"
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_measure.xml:2643
+#. Tag: funcsynopsis
+#: reference_measure.xml:2651
 #, no-c-format
 msgid ""
-"<funcdef>float <function>ST_Perimeter</function></funcdef> "
-"<paramdef><type>geography </type><parameter>geog</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>boolean </type><parameter>use_spheroid=true</"
-"parameter></paramdef>"
+"<funcprototype> <funcdef>float <function>ST_Perimeter</function></funcdef> "
+"<paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>float <function>ST_Perimeter</"
+"function></funcdef> <paramdef><type>geography </type><parameter>geog</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2653
+#: reference_measure.xml:2667
 #, no-c-format
 msgid ""
 "Returns the 2D perimeter of the geometry/geography if it is a ST_Surface, "
@@ -4063,7 +4122,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2658
+#: reference_measure.xml:2672
 #, no-c-format
 msgid ""
 "Currently this is an alias for ST_Perimeter2D, but this may change to "
@@ -4071,25 +4130,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2661
+#: reference_measure.xml:2675
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.3, 9.5.4"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2662
+#: reference_measure.xml:2676
 #, no-c-format
 msgid "Availability 2.0.0: Support for geography was introduced"
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:2666
+#: reference_measure.xml:2680
 #, no-c-format
 msgid "Examples: Geometry"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2667
+#: reference_measure.xml:2681
 #, no-c-format
 msgid ""
 "Return perimeter in feet for polygon and multipolygon. Note this is in feet "
@@ -4097,7 +4156,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2669
+#: reference_measure.xml:2683
 #, no-c-format
 msgid ""
 "SELECT ST_Perimeter(ST_GeomFromText('POLYGON((743238 2967416,743238 "
@@ -4127,13 +4186,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:2672
+#: reference_measure.xml:2686
 #, no-c-format
 msgid "Examples: Geography"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2673
+#: reference_measure.xml:2687
 #, no-c-format
 msgid ""
 "Return perimeter in meters and feet for polygon and multipolygon. Note this "
@@ -4141,7 +4200,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2674
+#: reference_measure.xml:2688
 #, no-c-format
 msgid ""
 "SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog)/0.3048 As "
@@ -4179,19 +4238,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2678
+#: reference_measure.xml:2692
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_Length\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2684
+#: reference_measure.xml:2698
 #, no-c-format
 msgid "ST_Perimeter2D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2686
+#: reference_measure.xml:2700
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
@@ -4199,7 +4258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2692
+#: reference_measure.xml:2706
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_Perimeter2D</function></funcdef> "
@@ -4207,7 +4266,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2702
+#: reference_measure.xml:2716
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional perimeter of the geometry, if it is a polygon or "
@@ -4215,7 +4274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2707
+#: reference_measure.xml:2721
 #, no-c-format
 msgid ""
 "This is currently an alias for ST_Perimeter. In future versions ST_Perimeter "
@@ -4224,13 +4283,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2721
+#: reference_measure.xml:2735
 #, no-c-format
 msgid "ST_3DPerimeter"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2723
+#: reference_measure.xml:2737
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
@@ -4238,7 +4297,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2729
+#: reference_measure.xml:2743
 #, no-c-format
 msgid ""
 "<funcdef>float <function>ST_3DPerimeter</function></funcdef> "
@@ -4246,7 +4305,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2739
+#: reference_measure.xml:2753
 #, no-c-format
 msgid ""
 "Returns the 3-dimensional perimeter of the geometry, if it is a polygon or "
@@ -4255,13 +4314,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2742
+#: reference_measure.xml:2756
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Perimeter3D"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2748
+#: reference_measure.xml:2762
 #, no-c-format
 msgid ""
 "Perimeter of a slightly elevated polygon in the air in Massachusetts state "
@@ -4269,11 +4328,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2749
+#: reference_measure.xml:2763
 #, no-c-format
 msgid ""
-"SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), ST_Perimeter"
-"(the_geom) FROM\n"
+"SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), "
+"ST_Perimeter(the_geom) FROM\n"
 "                        (SELECT ST_GeomFromEWKT('SRID=2249;POLYGON((743238 "
 "2967416 2,743238 2967450 1,\n"
 "743265.625 2967416 1,743238 2967416 2))') As the_geom) As foo;\n"
@@ -4284,25 +4343,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2756
+#: reference_measure.xml:2770
 #, no-c-format
 msgid ", <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Perimeter2D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2762
+#: reference_measure.xml:2776
 #, no-c-format
 msgid "ST_PointOnSurface"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2764
+#: reference_measure.xml:2778
 #, no-c-format
 msgid "Returns a <varname>POINT</varname> guaranteed to lie on the surface."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2769
+#: reference_measure.xml:2783
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PointOnSurface</function></funcdef> "
@@ -4310,19 +4369,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2781
+#: reference_measure.xml:2795
 #, no-c-format
 msgid "Returns a <varname>POINT</varname> guaranteed to intersect a surface."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2783
+#: reference_measure.xml:2797
 #, no-c-format
 msgid "&sfs_compliant; s3.2.14.2 // s3.2.18.2"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2784
+#: reference_measure.xml:2798
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3: 8.1.5, 9.5.6. According to the specs, "
@@ -4334,7 +4393,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2793
+#: reference_measure.xml:2807
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_PointOnSurface('POINT(0 5)'::geometry));\n"
@@ -4365,27 +4424,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2799
+#: reference_measure.xml:2813
 #, no-c-format
 msgid ", <xref linkend=\"ST_Point_Inside_Circle\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2805
+#: reference_measure.xml:2819
 #, no-c-format
 msgid "ST_Project"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2807
+#: reference_measure.xml:2821
 #, no-c-format
 msgid ""
 "Returns a <varname>POINT</varname> projected from a start point using a "
-"bearing and distance."
+"distance in meters and bearing (azimuth) in radians."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2812
+#: reference_measure.xml:2826
 #, no-c-format
 msgid ""
 "<funcdef>geography <function>ST_Project</function></funcdef> "
@@ -4395,15 +4454,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2828
+#: reference_measure.xml:2842
 #, no-c-format
 msgid ""
 "Returns a <varname>POINT</varname> projected from a start point using an "
-"azimuth (bearing) and distance."
+"azimuth (bearing) measured in radians and distance measured in meters."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2829
+#: reference_measure.xml:2843
 #, no-c-format
 msgid ""
 "Distance, azimuth and projection are all aspects of the same operation, "
@@ -4412,45 +4471,77 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2830
+#: reference_measure.xml:2844
 #, no-c-format
 msgid ""
 "The azimuth is sometimes called the heading or the bearing in navigation. It "
-"is measured relative to true north (azimuth zero). East is azimuth 90, south "
-"is azimuth 180, west is azimuth 270."
+"is measured relative to true north (azimuth zero). East is azimuth 90 "
+"(<varname>pi/2</varname>), south is azimuth 180 (<varname>pi</varname>), "
+"west is azimuth 270 (<varname>pi*1.5</varname>)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2831
+#: reference_measure.xml:2845
 #, no-c-format
 msgid "The distance is given in meters."
 msgstr ""
 
+#. Tag: title
+#: reference_measure.xml:2852
+#, no-c-format
+msgid ""
+"Example: Using degrees - projected point 100,000 meters and bearing 45 "
+"degrees"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:2838
+#: reference_measure.xml:2854
 #, no-c-format
 msgid ""
-"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, 45));\n"
-"                  st_astext\n"
-"        ------------------------------------------\n"
-"         POINT(0.63523102912532 0.63947233472882)\n"
-"        (1 row)"
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, "
+"radians(45.0)));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2858
+#, no-c-format
+msgid ""
+"Example: Using radians - projected point 100,000 meters and bearing pi/4 (45 "
+"degrees)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2860
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, pi()/4));\n"
+"                          st_astext\n"
+"------------------------------------------\n"
+" POINT(0.63523102912532 0.63947233472882)\n"
+"(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2844
+#: reference_measure.xml:2866
 #, no-c-format
-msgid ", <xref linkend=\"ST_Distance\"/>"
+msgid ""
+", <xref linkend=\"ST_Distance\"/>, <ulink url=\"http://www.postgresql.org/"
+"docs/current/interactive/functions-math.html\">PostgreSQL Math Functions</"
+"ulink>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2850
+#: reference_measure.xml:2872
 #, no-c-format
 msgid "ST_Relate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2852
+#: reference_measure.xml:2874
 #, no-c-format
 msgid ""
 "Returns true if this Geometry is spatially related to anotherGeometry, by "
@@ -4461,7 +4552,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:2860
+#: reference_measure.xml:2882
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Relate</function></funcdef> "
@@ -4480,7 +4571,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2886
+#: reference_measure.xml:2908
 #, no-c-format
 msgid ""
 "Version 1: Takes geomA, geomB, intersectionMatrix and Returns 1 (TRUE) if "
@@ -4491,7 +4582,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2891
+#: reference_measure.xml:2913
 #, no-c-format
 msgid ""
 "This is especially useful for testing compound checks of intersection, "
@@ -4499,7 +4590,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2894
+#: reference_measure.xml:2916
 #, no-c-format
 msgid ""
 "This is the \"allowable\" version that returns a boolean, not an integer. "
@@ -4507,7 +4598,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2897
+#: reference_measure.xml:2919
 #, no-c-format
 msgid ""
 "This DOES NOT automagically include an index call. The reason for that is "
@@ -4516,14 +4607,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2902
+#: reference_measure.xml:2924
 #, no-c-format
 msgid ""
 "Version 2: Takes geomA and geomB and returns the <xref linkend=\"DE-9IM\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2904
+#: reference_measure.xml:2926
 #, no-c-format
 msgid ""
 "Version 3: same as version 2 bu allows to specify a boundary node rule (1:"
@@ -4531,19 +4622,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2908
+#: reference_measure.xml:2930
 #, no-c-format
 msgid "not in OGC spec, but implied. see s2.1.13.2"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2913
+#: reference_measure.xml:2935
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2914
+#: reference_measure.xml:2936
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 - added support for specifying boundary node rule (requires "
@@ -4551,7 +4642,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2921
+#: reference_measure.xml:2943
 #, no-c-format
 msgid ""
 "--Find all compounds that intersect and not touch a poly (interior "
@@ -4562,8 +4653,8 @@ msgid ""
 "ON (p.the_geom && b.the_geom\n"
 "AND ST_Relate(l.the_geom, b.the_geom,'T********'));\n"
 "\n"
-"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), ST_Buffer"
-"(ST_GeometryFromText('POINT(1 2)'),2));\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2));\n"
 "st_relate\n"
 "-----------\n"
 "0FFFFF212\n"
@@ -4575,21 +4666,21 @@ msgid ""
 "FF1FF0102\n"
 "\n"
 "\n"
-"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), ST_Buffer"
-"(ST_GeometryFromText('POINT(1 2)'),2), '0FFFFF212');\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '0FFFFF212');\n"
 "st_relate\n"
 "-----------\n"
 "t\n"
 "\n"
-"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), ST_Buffer"
-"(ST_GeometryFromText('POINT(1 2)'),2), '*FF*FF212');\n"
+"SELECT ST_Relate(ST_GeometryFromText('POINT(1 2)'), "
+"ST_Buffer(ST_GeometryFromText('POINT(1 2)'),2), '*FF*FF212');\n"
 "st_relate\n"
 "-----------\n"
 "t"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2928
+#: reference_measure.xml:2950
 #, no-c-format
 msgid ""
 ", <xref linkend=\"DE-9IM\"/>, <xref linkend=\"ST_Disjoint\"/>, <xref linkend="
@@ -4597,13 +4688,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2934
+#: reference_measure.xml:2956
 #, no-c-format
 msgid "ST_RelateMatch"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2936
+#: reference_measure.xml:2958
 #, no-c-format
 msgid ""
 "Returns true if intersectionMattrixPattern1 implies "
@@ -4611,7 +4702,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2941
+#: reference_measure.xml:2963
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_RelateMatch</function></funcdef> "
@@ -4621,7 +4712,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2952
+#: reference_measure.xml:2974
 #, no-c-format
 msgid ""
 "Takes intersectionMatrix and intersectionMatrixPattern and Returns true if "
@@ -4630,13 +4721,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2955
+#: reference_measure.xml:2977
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2961
+#: reference_measure.xml:2983
 #, no-c-format
 msgid ""
 "SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ;\n"
@@ -4659,25 +4750,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2967
+#: reference_measure.xml:2989
 #, no-c-format
 msgid ", <xref linkend=\"ST_Relate\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2973
+#: reference_measure.xml:2995
 #, no-c-format
 msgid "ST_ShortestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2975
+#: reference_measure.xml:2997
 #, no-c-format
 msgid "Returns the 2-dimensional shortest line between two geometries"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2980
+#: reference_measure.xml:3002
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ShortestLine</function></funcdef> "
@@ -4686,7 +4777,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2995
+#: reference_measure.xml:3017
 #, no-c-format
 msgid ""
 "Returns the 2-dimensional shortest line between two geometries. The function "
@@ -4701,13 +4792,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3019
+#: reference_measure.xml:3041
 #, no-c-format
 msgid "Shortest line between point and linestring"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3022
+#: reference_measure.xml:3044
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -4722,13 +4813,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3030
+#: reference_measure.xml:3052
 #, no-c-format
 msgid "shortest line between polygon and polygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3033
+#: reference_measure.xml:3055
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -4744,7 +4835,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3045
+#: reference_measure.xml:3067
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref "
@@ -4752,13 +4843,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:3051
+#: reference_measure.xml:3073
 #, no-c-format
 msgid "ST_Touches"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:3053
+#: reference_measure.xml:3075
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the geometries have at least one point in "
@@ -4766,7 +4857,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:3059
+#: reference_measure.xml:3081
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Touches</function></funcdef> "
@@ -4775,7 +4866,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3074
+#: reference_measure.xml:3096
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if the only points in common between "
@@ -4787,37 +4878,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3081
+#: reference_measure.xml:3103
 #, no-c-format
 msgid "In mathematical terms, this predicate is expressed as:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3091
+#: reference_measure.xml:3113
 #, no-c-format
 msgid "The allowable DE-9IM Intersection Matrices for the two geometries are:"
 msgstr ""
 
 #. Tag: markup
-#: reference_measure.xml:3095
+#: reference_measure.xml:3117
 #, no-c-format
 msgid "FT*******"
 msgstr ""
 
 #. Tag: markup
-#: reference_measure.xml:3099
+#: reference_measure.xml:3121
 #, no-c-format
 msgid "F**T*****"
 msgstr ""
 
 #. Tag: markup
-#: reference_measure.xml:3103
+#: reference_measure.xml:3125
 #, no-c-format
 msgid "F***T****"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3112
+#: reference_measure.xml:3134
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -4826,13 +4917,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3118
+#: reference_measure.xml:3140
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.28"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3124
+#: reference_measure.xml:3146
 #, no-c-format
 msgid ""
 "The <function>ST_Touches</function> predicate returns <varname>TRUE</"
@@ -4840,7 +4931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3194
+#: reference_measure.xml:3216
 #, no-c-format
 msgid ""
 "SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(1 1)'::"
@@ -4859,19 +4950,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:3200
+#: reference_measure.xml:3222
 #, no-c-format
 msgid "ST_Within"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:3202
+#: reference_measure.xml:3224
 #, no-c-format
 msgid "Returns true if the geometry A is completely inside geometry B"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:3207
+#: reference_measure.xml:3229
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Within</function></funcdef> "
@@ -4880,18 +4971,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3222
+#: reference_measure.xml:3244
 #, no-c-format
 msgid ""
 "Returns TRUE if geometry A is completely inside geometry B. For this "
 "function to make sense, the source geometries must both be of the same "
-"coordinate projection, having the same SRID. It is a given that if ST_Within"
-"(A,B) is true and ST_Within(B,A) is true, then the two geometries are "
-"considered spatially equal."
+"coordinate projection, having the same SRID. It is a given that if "
+"ST_Within(A,B) is true and ST_Within(B,A) is true, then the two geometries "
+"are considered spatially equal."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3237
+#: reference_measure.xml:3259
 #, no-c-format
 msgid ""
 "This function call will automatically include a bounding box comparison that "
@@ -4900,19 +4991,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3245
+#: reference_measure.xml:3267
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - a.Relate(b, 'T*F**F***')"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3248
+#: reference_measure.xml:3270
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.30"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3253
+#: reference_measure.xml:3275
 #, no-c-format
 msgid ""
 "--a circle within a circle\n"
@@ -4936,7 +5027,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3264
+#: reference_measure.xml:3286
 #, no-c-format
 msgid ", <xref linkend=\"ST_Equals\"/>, <xref linkend=\"ST_IsValid\"/>"
 msgstr ""
diff --git a/doc/po/pt_BR/reference_misc.xml.po b/doc/po/pt_BR/reference_misc.xml.po
index 3c28a7a..558b463 100644
--- a/doc/po/pt_BR/reference_misc.xml.po
+++ b/doc/po/pt_BR/reference_misc.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -44,9 +44,9 @@ msgstr ""
 
 #. Tag: title
 #: reference_misc.xml:22 reference_misc.xml:64 reference_misc.xml:106
-#: reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:289
-#: reference_misc.xml:343 reference_misc.xml:396 reference_misc.xml:438
-#: reference_misc.xml:488
+#: reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:285
+#: reference_misc.xml:339 reference_misc.xml:392 reference_misc.xml:434
+#: reference_misc.xml:486
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -59,7 +59,7 @@ msgstr ""
 
 #. Tag: para
 #: reference_misc.xml:25 reference_misc.xml:68 reference_misc.xml:109
-#: reference_misc.xml:255 reference_misc.xml:309 reference_misc.xml:355
+#: reference_misc.xml:251 reference_misc.xml:305 reference_misc.xml:351
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -67,40 +67,40 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:357
-#: reference_misc.xml:447
+#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:353
+#: reference_misc.xml:444
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
 #: reference_misc.xml:27 reference_misc.xml:69 reference_misc.xml:110
-#: reference_misc.xml:183 reference_misc.xml:358 reference_misc.xml:448
+#: reference_misc.xml:183 reference_misc.xml:354 reference_misc.xml:445
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: para
 #: reference_misc.xml:28 reference_misc.xml:70 reference_misc.xml:111
-#: reference_misc.xml:256 reference_misc.xml:310 reference_misc.xml:359
-#: reference_misc.xml:449
+#: reference_misc.xml:252 reference_misc.xml:306 reference_misc.xml:355
+#: reference_misc.xml:446
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
 #: reference_misc.xml:29 reference_misc.xml:71 reference_misc.xml:112
-#: reference_misc.xml:257 reference_misc.xml:311 reference_misc.xml:360
-#: reference_misc.xml:450
+#: reference_misc.xml:253 reference_misc.xml:307 reference_misc.xml:356
+#: reference_misc.xml:447
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: title
 #: reference_misc.xml:34 reference_misc.xml:76 reference_misc.xml:118
-#: reference_misc.xml:188 reference_misc.xml:262 reference_misc.xml:316
-#: reference_misc.xml:364 reference_misc.xml:408 reference_misc.xml:455
-#: reference_misc.xml:499
+#: reference_misc.xml:188 reference_misc.xml:258 reference_misc.xml:312
+#: reference_misc.xml:360 reference_misc.xml:404 reference_misc.xml:453
+#: reference_misc.xml:497
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -135,9 +135,9 @@ msgstr ""
 
 #. Tag: title
 #: reference_misc.xml:41 reference_misc.xml:83 reference_misc.xml:125
-#: reference_misc.xml:195 reference_misc.xml:268 reference_misc.xml:322
-#: reference_misc.xml:369 reference_misc.xml:415 reference_misc.xml:462
-#: reference_misc.xml:506
+#: reference_misc.xml:195 reference_misc.xml:264 reference_misc.xml:318
+#: reference_misc.xml:365 reference_misc.xml:411 reference_misc.xml:460
+#: reference_misc.xml:504
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -414,20 +414,12 @@ msgstr ""
 #: reference_misc.xml:248
 #, no-c-format
 msgid ""
-"Bounding boxes of all geometries are currently 2-d even if they are 3-"
-"dimensional geometries."
-msgstr ""
-
-#. Tag: para
-#: reference_misc.xml:252
-#, no-c-format
-msgid ""
 "Availability: 1.5.0 behavior changed to output double precision instead of "
 "float4 coordinates."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:263
+#: reference_misc.xml:259
 #, no-c-format
 msgid ""
 "Examples below use US National Atlas Equal Area (SRID=2163) which is a meter "
@@ -435,7 +427,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:264
+#: reference_misc.xml:260
 #, no-c-format
 msgid ""
 "<!-- TODO: fix results of documentation to reflect new behavior -->\n"
@@ -463,7 +455,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:269
+#: reference_misc.xml:265
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"ST_DWithin\"/>, <xref "
@@ -472,13 +464,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:275
+#: reference_misc.xml:271
 #, no-c-format
 msgid "ST_Extent"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:276
+#: reference_misc.xml:272
 #, no-c-format
 msgid ""
 "an aggregate function that returns the bounding box that bounds rows of "
@@ -486,7 +478,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:281
+#: reference_misc.xml:277
 #, no-c-format
 msgid ""
 "<funcdef>box2d <function>ST_Extent</function></funcdef> "
@@ -495,7 +487,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:291
+#: reference_misc.xml:287
 #, no-c-format
 msgid ""
 "ST_Extent returns a bounding box that encloses a set of geometries. The "
@@ -505,7 +497,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:294 reference_misc.xml:348
+#: reference_misc.xml:290 reference_misc.xml:344
 #, no-c-format
 msgid ""
 "Since it returns a bounding box, the spatial Units are in the units of the "
@@ -513,14 +505,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:295
+#: reference_misc.xml:291
 #, no-c-format
 msgid ""
 "ST_Extent is similar in concept to Oracle Spatial/Locator's SDO_AGGR_MBR"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:297
+#: reference_misc.xml:293
 #, no-c-format
 msgid ""
 "Since ST_Extent returns a bounding box, the SRID meta-data is lost. Use "
@@ -529,7 +521,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:302
+#: reference_misc.xml:298
 #, no-c-format
 msgid ""
 "ST_Extent will return boxes with only an x and y component even with (x,y,z) "
@@ -537,19 +529,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:306
+#: reference_misc.xml:302
 #, no-c-format
 msgid "Availability: 1.4.0"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:317
+#: reference_misc.xml:313
 #, no-c-format
 msgid "Examples below use Massachusetts State Plane ft (SRID=2249)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:318
+#: reference_misc.xml:314
 #, no-c-format
 msgid ""
 "SELECT ST_Extent(the_geom) as bextent FROM sometable;\n"
@@ -582,7 +574,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:323
+#: reference_misc.xml:319
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_3DExtent\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref "
@@ -590,13 +582,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:329
+#: reference_misc.xml:325
 #, no-c-format
 msgid "ST_3DExtent"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:330
+#: reference_misc.xml:326
 #, no-c-format
 msgid ""
 "an aggregate function that returns the box3D bounding box that bounds rows "
@@ -604,7 +596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:335
+#: reference_misc.xml:331
 #, no-c-format
 msgid ""
 "<funcdef>box3d <function>ST_3DExtent</function></funcdef> "
@@ -613,7 +605,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:345
+#: reference_misc.xml:341
 #, no-c-format
 msgid ""
 "ST_3DExtent returns a box3d (includes Z coordinate) bounding box that "
@@ -623,7 +615,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:351
+#: reference_misc.xml:347
 #, no-c-format
 msgid ""
 "Since ST_3DExtent returns a bounding box, the SRID meta-data is lost. Use "
@@ -632,13 +624,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:356
+#: reference_misc.xml:352
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Extent3D"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:365
+#: reference_misc.xml:361
 #, no-c-format
 msgid ""
 "SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
@@ -652,8 +644,9 @@ msgid ""
 "\n"
 "--Get the extent of various elevated circular strings\n"
 "SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
-"FROM (SELECT ST_Translate(ST_Force_3DZ(ST_LineToCurve(ST_Buffer(ST_MakePoint"
-"(x,y),1))),0,0,z) As the_geom\n"
+"FROM (SELECT "
+"ST_Translate(ST_Force_3DZ(ST_LineToCurve(ST_Buffer(ST_MakePoint(x,"
+"y),1))),0,0,z) As the_geom\n"
 "        FROM generate_series(1,3) As x\n"
 "                CROSS JOIN generate_series(1,2) As y\n"
 "                CROSS JOIN generate_series(0,2) As Z) As foo;\n"
@@ -664,28 +657,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:370
+#: reference_misc.xml:366
 #, no-c-format
 msgid ", <xref linkend=\"ST_Force_3DZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:377
+#: reference_misc.xml:373
 #, no-c-format
 msgid "Find_SRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:379
+#: reference_misc.xml:375
 #, no-c-format
 msgid ""
-"The syntax is find_srid(<db/schema>, <table>, <column>) "
-"and the function returns the integer SRID of the specified column by "
-"searching through the GEOMETRY_COLUMNS table."
+"The syntax is find_srid(a_db_schema, a_table, a_column) and the function "
+"returns the integer SRID of the specified column by searching through the "
+"GEOMETRY_COLUMNS table."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:386
+#: reference_misc.xml:382
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>Find_SRID</function></funcdef> "
@@ -696,7 +689,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:398
+#: reference_misc.xml:394
 #, no-c-format
 msgid ""
 "The syntax is find_srid(<db/schema>, <table>, <column>) "
@@ -707,7 +700,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:410
+#: reference_misc.xml:406
 #, no-c-format
 msgid ""
 "SELECT Find_SRID('public', 'tiger_us_state_2007', 'the_geom_4269');\n"
@@ -717,13 +710,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:423
+#: reference_misc.xml:419
 #, no-c-format
-msgid "ST_Mem_Size"
+msgid "ST_MemSize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:425
+#: reference_misc.xml:421
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the amount of space (in bytes) the geometry takes.</"
@@ -731,55 +724,72 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:430
+#: reference_misc.xml:426
 #, no-c-format
 msgid ""
-"<funcdef>integer <function>ST_Mem_Size</function></funcdef> "
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
 "<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:440
+#: reference_misc.xml:436
 #, no-c-format
 msgid "<para>Returns the amount of space (in bytes) the geometry takes.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:441
+#: reference_misc.xml:437
 #, no-c-format
 msgid ""
-"This is a nice compliment to PostgreSQL built in functions pg_size_pretty, "
-"pg_relation_size, pg_total_relation_size."
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:442
+#: reference_misc.xml:438
 #, no-c-format
 msgid ""
 "pg_relation_size which gives the byte size of a table may return byte size "
-"lower than ST_Mem_Size. This is because pg_relation_size does not add "
-"toasted table contribution and large geometries are stored in TOAST tables."
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:444
+#: reference_misc.xml:440
 #, no-c-format
 msgid ""
 "pg_total_relation_size - includes, the table, the toasted tables, and the "
 "indexes."
 msgstr ""
 
+#. Tag: para
+#: reference_misc.xml:441
+#, no-c-format
+msgid ""
+"pg_column_size returns how much space a geometry would take in a column "
+"considering compression, so may be lower than ST_MemSize"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:448
+#, no-c-format
+msgid ""
+"Changed: 2.2.0 name changed to ST_MemSize to follow naming convention. In "
+"prior versions this function was called ST_Mem_Size, old name deprecated "
+"though still available."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_misc.xml:457
+#: reference_misc.xml:455
 #, no-c-format
 msgid ""
 "--Return how much byte space Boston takes up  in our Mass data set\n"
-"SELECT pg_size_pretty(SUM(ST_Mem_Size(the_geom))) as totgeomsum,\n"
-"pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN st_mem_size(the_geom) ELSE "
+"SELECT pg_size_pretty(SUM(ST_MemSize(the_geom))) as totgeomsum,\n"
+"pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE "
 "0 END)) As bossum,\n"
-"CAST(SUM(CASE WHEN town = 'BOSTON' THEN st_mem_size(the_geom) ELSE 0 END)"
-"*1.00 /\n"
-"                SUM(st_mem_size(the_geom))*100 As numeric(10,2)) As perbos\n"
+"CAST(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 "
+"END)*1.00 /\n"
+"                SUM(ST_MemSize(the_geom))*100 As numeric(10,2)) As perbos\n"
 "FROM towns;\n"
 "\n"
 "totgeomsum        bossum        perbos\n"
@@ -787,16 +797,16 @@ msgid ""
 "1522 kB                30 kB        1.99\n"
 "\n"
 "\n"
-"SELECT ST_Mem_Size(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
+"SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 "
 "150505,220227 150406)'));\n"
 "\n"
 "---\n"
 "73\n"
 "\n"
 "--What percentage of our table is taken up by just the geometry\n"
-"SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, sum"
-"(ST_Mem_Size(the_geom)) As geomsize,\n"
-"sum(ST_Mem_Size(the_geom))*1.00/pg_total_relation_size('public."
+"SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, "
+"sum(ST_MemSize(the_geom)) As geomsize,\n"
+"sum(ST_MemSize(the_geom))*1.00/pg_total_relation_size('public."
 "neighborhoods')*100 As pergeom\n"
 "FROM neighborhoods;\n"
 "fulltable_size geomsize  pergeom\n"
@@ -805,20 +815,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:470
+#: reference_misc.xml:468
 #, no-c-format
 msgid "ST_Point_Inside_Circle"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:472
+#: reference_misc.xml:470
 #, no-c-format
 msgid ""
 "Is the point geometry insert circle defined by center_x, center_y, radius"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:477
+#: reference_misc.xml:475
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_Point_Inside_Circle</function></funcdef> "
@@ -829,7 +839,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:490
+#: reference_misc.xml:488
 #, no-c-format
 msgid ""
 "The syntax for this functions is point_inside_circle(<geometry>,<"
@@ -839,13 +849,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:494
+#: reference_misc.xml:492
 #, no-c-format
 msgid "This only works for points as the name suggests"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:501
+#: reference_misc.xml:499
 #, no-c-format
 msgid ""
 "SELECT ST_Point_Inside_Circle(ST_Point(1,2), 0.5, 2, 3);\n"
diff --git a/doc/po/pt_BR/reference_operator.xml.po b/doc/po/pt_BR/reference_operator.xml.po
index 43f6de8..5c9d747 100644
--- a/doc/po/pt_BR/reference_operator.xml.po
+++ b/doc/po/pt_BR/reference_operator.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -56,7 +56,7 @@ msgstr ""
 #: reference_operator.xml:546 reference_operator.xml:599
 #: reference_operator.xml:654 reference_operator.xml:712
 #: reference_operator.xml:765 reference_operator.xml:818
-#: reference_operator.xml:883 reference_operator.xml:949
+#: reference_operator.xml:883 reference_operator.xml:950
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
 #: reference_operator.xml:502 reference_operator.xml:556
 #: reference_operator.xml:611 reference_operator.xml:665
 #: reference_operator.xml:722 reference_operator.xml:775
-#: reference_operator.xml:843 reference_operator.xml:899
-#: reference_operator.xml:963
+#: reference_operator.xml:843 reference_operator.xml:900
+#: reference_operator.xml:964
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -151,7 +151,7 @@ msgstr ""
 #: reference_operator.xml:562 reference_operator.xml:617
 #: reference_operator.xml:671 reference_operator.xml:728
 #: reference_operator.xml:781 reference_operator.xml:848
-#: reference_operator.xml:915 reference_operator.xml:967
+#: reference_operator.xml:916 reference_operator.xml:968
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -1092,7 +1092,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:888 reference_operator.xml:953
+#: reference_operator.xml:888 reference_operator.xml:954
 #, no-c-format
 msgid ""
 "This operand will make use of any indexes that may be available on the "
@@ -1111,13 +1111,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:893 reference_operator.xml:958
+#: reference_operator.xml:892
+#, no-c-format
+msgid ""
+"Refer to <ulink url=\"http://workshops.opengeo.org/postgis-intro/knn.html"
+"\">OpenGeo workshop: Nearest-Neighbour Searching</ulink> for real live "
+"example."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:894 reference_operator.xml:959
 #, no-c-format
 msgid "Availability: 2.0.0 only available for PostgreSQL 9.1+"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:900
+#: reference_operator.xml:901
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
@@ -1141,13 +1150,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:901
+#: reference_operator.xml:902
 #, no-c-format
 msgid "Then the KNN raw answer:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:904
+#: reference_operator.xml:905
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT st_distance(geom, 'SRID=3005;POINT(1011102 450541)'::"
@@ -1171,7 +1180,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:905
+#: reference_operator.xml:906
 #, no-c-format
 msgid ""
 "Note the misordering in the actual distances and the different entries that "
@@ -1179,13 +1188,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:909
+#: reference_operator.xml:910
 #, no-c-format
 msgid "Finally the hybrid:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:912
+#: reference_operator.xml:913
 #, no-c-format
 msgid ""
 "<![CDATA[WITH index_query AS (\n"
@@ -1213,20 +1222,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:916
+#: reference_operator.xml:917
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_box\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_operator.xml:922
+#: reference_operator.xml:923
 #, no-c-format
 msgid "<#>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_operator.xml:924
+#: reference_operator.xml:925
 #, no-c-format
 msgid ""
 "Returns the distance between bounding box of 2 geometries. For point / point "
@@ -1237,7 +1246,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_operator.xml:930
+#: reference_operator.xml:931
 #, no-c-format
 msgid ""
 "<funcdef>double precision <function><#></function></funcdef> "
@@ -1246,7 +1255,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:951
+#: reference_operator.xml:952
 #, no-c-format
 msgid ""
 "The <varname><#></varname> KNN GIST operator returns distance between "
@@ -1256,7 +1265,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:956
+#: reference_operator.xml:957
 #, no-c-format
 msgid ""
 "Index only kicks in if one of the geometries is a constant e.g. ORDER BY "
@@ -1264,7 +1273,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:964
+#: reference_operator.xml:965
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT *\n"
@@ -1299,7 +1308,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:968
+#: reference_operator.xml:969
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_centroid"
diff --git a/doc/po/pt_BR/reference_output.xml.po b/doc/po/pt_BR/reference_output.xml.po
index 6ac7c56..48991aa 100644
--- a/doc/po/pt_BR/reference_output.xml.po
+++ b/doc/po/pt_BR/reference_output.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-14 21:54+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -54,10 +54,11 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:35 reference_output.xml:108 reference_output.xml:161
-#: reference_output.xml:233 reference_output.xml:335 reference_output.xml:436
-#: reference_output.xml:492 reference_output.xml:557 reference_output.xml:600
-#: reference_output.xml:702 reference_output.xml:751 reference_output.xml:809
+#: reference_output.xml:35 reference_output.xml:109 reference_output.xml:162
+#: reference_output.xml:238 reference_output.xml:339 reference_output.xml:440
+#: reference_output.xml:496 reference_output.xml:561 reference_output.xml:604
+#: reference_output.xml:707 reference_output.xml:755 reference_output.xml:813
+#: reference_output.xml:879 reference_output.xml:944 reference_output.xml:988
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -74,7 +75,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:40 reference_output.xml:112
+#: reference_output.xml:40 reference_output.xml:113
 #, no-c-format
 msgid ""
 "This is useful in binary cursors to pull data out of the database without "
@@ -109,7 +110,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:55 reference_output.xml:120
+#: reference_output.xml:55 reference_output.xml:121
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -131,7 +132,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:58 reference_output.xml:274 reference_output.xml:379
+#: reference_output.xml:58 reference_output.xml:279 reference_output.xml:383
 #, no-c-format
 msgid "Availability: 1.5.0 geography support was introduced."
 msgstr ""
@@ -143,13 +144,13 @@ msgid ""
 "Changed: 2.0.0 Inputs to this function can not be unknown -- must be "
 "geometry. Constructs such as <code>ST_AsBinary('POINT(1 2)')</code> are no "
 "longer valid and you will get an <code>n st_asbinary(unknown) is not unique "
-"error</code>. Code like that needs to be changed to <code>ST_AsBinary('POINT"
-"(1 2)'::geometry);</code>. If that is not possible, then install "
-"<filename>legacy.sql</filename>."
+"error</code>. Code like that needs to be changed to "
+"<code>ST_AsBinary('POINT(1 2)'::geometry);</code>. If that is not possible, "
+"then install <filename>legacy.sql</filename>."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:61 reference_output.xml:767
+#: reference_output.xml:61 reference_output.xml:771
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.1"
 msgstr ""
@@ -161,39 +162,40 @@ msgid "&sqlmm_compliant; SQL-MM 3: 5.1.37"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:63 reference_output.xml:122 reference_output.xml:176
-#: reference_output.xml:445 reference_output.xml:716 reference_output.xml:769
+#: reference_output.xml:63 reference_output.xml:123 reference_output.xml:177
+#: reference_output.xml:449 reference_output.xml:721 reference_output.xml:773
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:64 reference_output.xml:123 reference_output.xml:177
-#: reference_output.xml:386 reference_output.xml:659
+#: reference_output.xml:64 reference_output.xml:124 reference_output.xml:178
+#: reference_output.xml:390 reference_output.xml:664
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:65 reference_output.xml:124 reference_output.xml:178
-#: reference_output.xml:387 reference_output.xml:662
+#: reference_output.xml:65 reference_output.xml:125 reference_output.xml:179
+#: reference_output.xml:391 reference_output.xml:667
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:66 reference_output.xml:121 reference_output.xml:175
-#: reference_output.xml:276 reference_output.xml:385 reference_output.xml:444
-#: reference_output.xml:519 reference_output.xml:657
+#: reference_output.xml:66 reference_output.xml:122 reference_output.xml:176
+#: reference_output.xml:281 reference_output.xml:389 reference_output.xml:448
+#: reference_output.xml:523 reference_output.xml:662
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:71 reference_output.xml:129 reference_output.xml:183
-#: reference_output.xml:280 reference_output.xml:449 reference_output.xml:523
-#: reference_output.xml:576 reference_output.xml:720 reference_output.xml:774
-#: reference_output.xml:838
+#: reference_output.xml:71 reference_output.xml:130 reference_output.xml:184
+#: reference_output.xml:285 reference_output.xml:453 reference_output.xml:527
+#: reference_output.xml:580 reference_output.xml:725 reference_output.xml:778
+#: reference_output.xml:842 reference_output.xml:896 reference_output.xml:961
+#: reference_output.xml:997
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -237,9 +239,10 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:79 reference_output.xml:137 reference_output.xml:190
-#: reference_output.xml:405 reference_output.xml:527 reference_output.xml:724
-#: reference_output.xml:781
+#: reference_output.xml:79 reference_output.xml:138 reference_output.xml:191
+#: reference_output.xml:409 reference_output.xml:531 reference_output.xml:729
+#: reference_output.xml:785 reference_output.xml:901 reference_output.xml:966
+#: reference_output.xml:1002
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -247,17 +250,19 @@ msgstr ""
 #. Tag: para
 #: reference_output.xml:80
 #, no-c-format
-msgid ", <xref linkend=\"ST_AsText\"/>,"
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsTWKB\"/>, <xref "
+"linkend=\"ST_AsText\"/>,"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:89
+#: reference_output.xml:90
 #, no-c-format
 msgid "ST_AsEWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:90
+#: reference_output.xml:91
 #, no-c-format
 msgid ""
 "Return the Well-Known Binary (WKB) representation of the geometry with SRID "
@@ -265,7 +270,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:94
+#: reference_output.xml:95
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bytea <function>ST_AsEWKB</function></funcdef> "
@@ -277,7 +282,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:109
+#: reference_output.xml:110
 #, no-c-format
 msgid ""
 "Returns the Well-Known Binary representation of the geometry with SRID "
@@ -288,7 +293,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:115
+#: reference_output.xml:116
 #, no-c-format
 msgid ""
 "The WKB spec does not include the SRID. To get the OGC WKB format use "
@@ -296,7 +301,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:118
+#: reference_output.xml:119
 #, no-c-format
 msgid ""
 "ST_AsEWKB is the reverse of ST_GeomFromEWKB. Use ST_GeomFromEWKB to convert "
@@ -304,7 +309,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:131
+#: reference_output.xml:132
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
@@ -324,7 +329,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:132
+#: reference_output.xml:133
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), "
@@ -342,7 +347,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:138
+#: reference_output.xml:139
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
@@ -350,13 +355,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:143
+#: reference_output.xml:144
 #, no-c-format
 msgid "ST_AsEWKT"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:144
+#: reference_output.xml:145
 #, no-c-format
 msgid ""
 "Return the Well-Known Text (WKT) representation of the geometry with SRID "
@@ -364,7 +369,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:148
+#: reference_output.xml:149
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsEWKT</function></funcdef> "
@@ -375,7 +380,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:163
+#: reference_output.xml:164
 #, no-c-format
 msgid ""
 "Returns the Well-Known Text representation of the geometry prefixed with the "
@@ -383,7 +388,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:166
+#: reference_output.xml:167
 #, no-c-format
 msgid ""
 "The WKT spec does not include the SRID. To get the OGC WKT format use "
@@ -391,7 +396,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:168 reference_output.xml:759
+#: reference_output.xml:169 reference_output.xml:763
 #, no-c-format
 msgid ""
 "WKT format does not maintain precision so to prevent floating truncation, "
@@ -399,7 +404,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:172
+#: reference_output.xml:173
 #, no-c-format
 msgid ""
 "ST_AsEWKT is the reverse of <xref linkend=\"ST_GeomFromEWKT\"/>. Use <xref "
@@ -408,7 +413,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:174
+#: reference_output.xml:175
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Geography, Polyhedral surfaces, Triangles and "
@@ -416,7 +421,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:185
+#: reference_output.xml:186
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT('0103000020E61000000100000005000000000000\n"
@@ -430,8 +435,8 @@ msgid ""
 "SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0))\n"
 "(1 row)\n"
 "\n"
-"SELECT ST_AsEWKT"
-"('0108000080030000000000000060E30A4100000000785C0241000000000000F03F0000000018\n"
+"SELECT "
+"ST_AsEWKT('0108000080030000000000000060E30A4100000000785C0241000000000000F03F0000000018\n"
 "E20A4100000000485F024100000000000000400000000018\n"
 "E20A4100000000305C02410000000000000840')\n"
 "\n"
@@ -440,25 +445,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:191
+#: reference_output.xml:192
 #, no-c-format
-msgid "<para>,</para>"
+msgid ""
+", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsText\"/>, <xref "
+"linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:196
+#: reference_output.xml:201
 #, no-c-format
 msgid "ST_AsGeoJSON"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:198
+#: reference_output.xml:203
 #, no-c-format
 msgid "Return the geometry as a GeoJSON element."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:202
+#: reference_output.xml:207
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsGeoJSON</function></funcdef> "
@@ -487,7 +494,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:235
+#: reference_output.xml:240
 #, no-c-format
 msgid ""
 "Return the geometry as a Geometry Javascript Object Notation (GeoJSON) "
@@ -497,7 +504,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:241
+#: reference_output.xml:246
 #, no-c-format
 msgid ""
 "The gj_version parameter is the major version of the GeoJSON spec. If "
@@ -505,7 +512,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:243
+#: reference_output.xml:248
 #, no-c-format
 msgid ""
 "The third argument may be used to reduce the maximum number of decimal "
@@ -513,7 +520,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:246
+#: reference_output.xml:251
 #, no-c-format
 msgid ""
 "The last 'options' argument could be used to add Bbox or Crs in GeoJSON "
@@ -521,79 +528,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:250
+#: reference_output.xml:255
 #, no-c-format
 msgid "0: means no option (default value)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:254
+#: reference_output.xml:259
 #, no-c-format
 msgid "1: GeoJSON Bbox"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:258
+#: reference_output.xml:263
 #, no-c-format
 msgid "2: GeoJSON Short CRS (e.g EPSG:4326)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:262
+#: reference_output.xml:267
 #, no-c-format
 msgid "4: GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:266
+#: reference_output.xml:271
 #, no-c-format
 msgid "Version 1: ST_AsGeoJSON(geom) / precision=15 version=1 options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:267
+#: reference_output.xml:272
 #, no-c-format
 msgid "Version 2: ST_AsGeoJSON(geom, precision) / version=1 options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:268
+#: reference_output.xml:273
 #, no-c-format
 msgid "Version 3: ST_AsGeoJSON(geom, precision, options) / version=1"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:269
+#: reference_output.xml:274
 #, no-c-format
 msgid "Version 4: ST_AsGeoJSON(gj_version, geom) / precision=15 options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:270
+#: reference_output.xml:275
 #, no-c-format
 msgid "Version 5: ST_AsGeoJSON(gj_version, geom, precision) /options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:271
+#: reference_output.xml:276
 #, no-c-format
 msgid "Version 6: ST_AsGeoJSON(gj_version, geom, precision,options)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:273
+#: reference_output.xml:278
 #, no-c-format
 msgid "Availability: 1.3.4"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:275
+#: reference_output.xml:280
 #, no-c-format
 msgid "Changed: 2.0.0 support default args and named args."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:281
+#: reference_output.xml:286
 #, no-c-format
 msgid ""
 "GeoJSON format is generally more efficient than other formats for use in "
@@ -603,7 +610,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:286
+#: reference_output.xml:291
 #, no-c-format
 msgid ""
 "SELECT ST_AsGeoJSON(the_geom) from fe_edges limit 1;\n"
@@ -623,26 +630,36 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:291
+#: reference_output.xml:296
 #, no-c-format
 msgid "ST_AsGML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:292
+#: reference_output.xml:297
 #, no-c-format
 msgid "Return the geometry as a GML version 2 or 3 element."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:296
+#: reference_output.xml:301
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsGML</function></funcdef> "
-"<paramdef><type>integer </type> <parameter>version</parameter></paramdef> "
 "<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>integer </type> "
 "<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>options=0</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></"
+"funcdef> <paramdef><type>integer </type> <parameter>version</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt"
 "\"><type>integer </type> <parameter>options=0</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
@@ -659,7 +676,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:337
+#: reference_output.xml:341
 #, no-c-format
 msgid ""
 "Return the geometry as a Geography Markup Language (GML) element. The "
@@ -670,13 +687,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:342
+#: reference_output.xml:346
 #, no-c-format
 msgid "GML 2 refer to 2.1.2 version, GML 3 to 3.1.1 version"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:343
+#: reference_output.xml:347
 #, no-c-format
 msgid ""
 "The 'options' argument is a bitfield. It could be used to define CRS output "
@@ -684,25 +701,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:347
+#: reference_output.xml:351
 #, no-c-format
 msgid "0: GML Short CRS (e.g EPSG:4326), default value"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:351
+#: reference_output.xml:355
 #, no-c-format
 msgid "1: GML Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:355
+#: reference_output.xml:359
 #, no-c-format
 msgid "2: For GML 3 only, remove srsDimension attribute from output."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:359
+#: reference_output.xml:363
 #, no-c-format
 msgid ""
 "4: For GML 3 only, use <LineString> rather than <Curve> tag for "
@@ -710,7 +727,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:363
+#: reference_output.xml:367
 #, no-c-format
 msgid ""
 "16: Declare that datas are lat/lon (e.g srid=4326). Default is to assume "
@@ -720,13 +737,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:369
+#: reference_output.xml:373
 #, no-c-format
 msgid "32: Output the box of the geometry (envelope)."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:374
+#: reference_output.xml:378
 #, no-c-format
 msgid ""
 "The 'namespace prefix' argument may be used to specify a custom namespace "
@@ -734,13 +751,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:378
+#: reference_output.xml:382
 #, no-c-format
 msgid "Availability: 1.3.2"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:380
+#: reference_output.xml:384
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 prefix support was introduced. Option 4 for GML3 was "
@@ -750,31 +767,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:381
+#: reference_output.xml:385
 #, no-c-format
 msgid "Changed: 2.0.0 use default named args"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:382
+#: reference_output.xml:386
 #, no-c-format
 msgid "Enhanced: 2.1.0 id support was introduced, for GML 3."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:384
+#: reference_output.xml:388
 #, no-c-format
 msgid "Only version 3+ of ST_AsGML supports Polyhedral Surfaces and TINS."
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:391
+#: reference_output.xml:395
 #, no-c-format
 msgid "Examples: Version 2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:392
+#: reference_output.xml:396
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_AsGML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
@@ -787,13 +804,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:395
+#: reference_output.xml:399
 #, no-c-format
 msgid "Examples: Version 3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:396
+#: reference_output.xml:400
 #, no-c-format
 msgid ""
 "-- Flip coordinates and output extended EPSG (16 | 1)--\n"
@@ -806,7 +823,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:397
+#: reference_output.xml:401
 #, no-c-format
 msgid ""
 "-- Output the envelope (32) --\n"
@@ -821,7 +838,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:399
+#: reference_output.xml:403
 #, no-c-format
 msgid ""
 "-- Output the envelope (32) , reverse (lat lon instead of lon lat) (16), "
@@ -837,7 +854,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:401
+#: reference_output.xml:405
 #, no-c-format
 msgid ""
 "-- Polyhedral Example --\n"
@@ -905,13 +922,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:414
+#: reference_output.xml:418
 #, no-c-format
 msgid "ST_AsHEXEWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:416
+#: reference_output.xml:420
 #, no-c-format
 msgid ""
 "Returns a Geometry in HEXEWKB format (as text) using either little-endian "
@@ -919,7 +936,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:421
+#: reference_output.xml:425
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsHEXEWKB</function></funcdef> "
@@ -931,7 +948,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:438
+#: reference_output.xml:442
 #, no-c-format
 msgid ""
 "Returns a Geometry in HEXEWKB format (as text) using either little-endian "
@@ -940,13 +957,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:442
+#: reference_output.xml:446
 #, no-c-format
 msgid "Availability: 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:450
+#: reference_output.xml:454
 #, no-c-format
 msgid ""
 "SELECT ST_AsHEXEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
@@ -966,13 +983,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:456
+#: reference_output.xml:460
 #, no-c-format
 msgid "ST_AsKML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:458
+#: reference_output.xml:462
 #, no-c-format
 msgid ""
 "Return the geometry as a KML element. Several variants. Default version=2, "
@@ -980,7 +997,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:462
+#: reference_output.xml:466
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> "
@@ -1007,7 +1024,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:494
+#: reference_output.xml:498
 #, no-c-format
 msgid ""
 "Return the geometry as a Keyhole Markup Language (KML) element. There are "
@@ -1017,7 +1034,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:498
+#: reference_output.xml:502
 #, no-c-format
 msgid ""
 "Version 1: ST_AsKML(geom_or_geog, maxdecimaldigits) / version=2 / "
@@ -1025,7 +1042,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:499
+#: reference_output.xml:503
 #, no-c-format
 msgid ""
 "Version 2: ST_AsKML(version, geom_or_geog, maxdecimaldigits, nprefix) "
@@ -1033,7 +1050,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:502
+#: reference_output.xml:506
 #, no-c-format
 msgid ""
 "Requires PostGIS be compiled with Proj support. Use <xref linkend="
@@ -1041,32 +1058,32 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:506
+#: reference_output.xml:510
 #, no-c-format
 msgid ""
 "Availability: 1.2.2 - later variants that include version param came in 1.3.2"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:509
+#: reference_output.xml:513
 #, no-c-format
 msgid "Enhanced: 2.0.0 - Add prefix namespace. Default is no prefix"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:512
+#: reference_output.xml:516
 #, no-c-format
 msgid "Changed: 2.0.0 - uses default args and supports named args"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:516
+#: reference_output.xml:520
 #, no-c-format
 msgid "AsKML output will not work with geometries that do not have an SRID"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:524
+#: reference_output.xml:528
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_AsKML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 "
@@ -1085,26 +1102,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:529
+#: reference_output.xml:533
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsGML\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:534
+#: reference_output.xml:538
 #, no-c-format
 msgid "ST_AsSVG"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:536
+#: reference_output.xml:540
 #, no-c-format
 msgid ""
 "Returns a Geometry in SVG path data given a geometry or geography object."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:540
+#: reference_output.xml:544
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> "
@@ -1120,7 +1137,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:559
+#: reference_output.xml:563
 #, no-c-format
 msgid ""
 "Return the geometry as Scalar Vector Graphics (SVG) path data. Use 1 as "
@@ -1133,7 +1150,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:569
+#: reference_output.xml:573
 #, no-c-format
 msgid ""
 "Availability: 1.2.2. Availability: 1.4.0 Changed in PostGIS 1.4.0 to include "
@@ -1143,13 +1160,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:572
+#: reference_output.xml:576
 #, no-c-format
 msgid "Changed: 2.0.0 to use default args and support named args"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:577
+#: reference_output.xml:581
 #, no-c-format
 msgid ""
 "SELECT ST_AsSVG(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
@@ -1160,13 +1177,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:583
+#: reference_output.xml:587
 #, no-c-format
 msgid "ST_AsX3D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:585
+#: reference_output.xml:589
 #, no-c-format
 msgid ""
 "Returns a Geometry in X3D xml node element format: ISO-IEC-19776-1.2-"
@@ -1174,7 +1191,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_output.xml:590
+#: reference_output.xml:594
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_AsX3D</function></funcdef> "
@@ -1185,19 +1202,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:602
+#: reference_output.xml:606
 #, no-c-format
 msgid ""
 "Returns a geometry as an X3D xml formatted node element <ulink url=\"http://"
-"web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/"
-"EncodingOfNodes.html\">http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-"
-"X3DEncodings-XML/Part01/EncodingOfNodes.html</ulink>. If "
-"<varname>maxdecimaldigits</varname> (precision) is not specified then "
-"defaults to 15."
+"www.web3d.org/standards/number/19776-1\">http://www.web3d.org/standards/"
+"number/19776-1</ulink>. If <varname>maxdecimaldigits</varname> (precision) "
+"is not specified then defaults to 15."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:604
+#: reference_output.xml:608
 #, no-c-format
 msgid ""
 "There are various options for translating PostGIS geometries to X3D since "
@@ -1209,127 +1224,127 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:606
+#: reference_output.xml:610
 #, no-c-format
 msgid "Below is how we currently map PostGIS 2D/3D types to X3D types"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:613
+#: reference_output.xml:617
 #, no-c-format
 msgid "PostGIS Type"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:614
+#: reference_output.xml:618
 #, no-c-format
 msgid "2D X3D Type"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:615
+#: reference_output.xml:619
 #, no-c-format
 msgid "3D X3D Type"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:620
+#: reference_output.xml:624
 #, no-c-format
 msgid "LINESTRING"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:621 reference_output.xml:626
+#: reference_output.xml:625 reference_output.xml:630
 #, no-c-format
 msgid "not yet implemented - will be PolyLine2D"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:622
+#: reference_output.xml:626
 #, no-c-format
 msgid "LineSet"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:625
+#: reference_output.xml:629
 #, no-c-format
 msgid "MULTILINESTRING"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:627
+#: reference_output.xml:631
 #, no-c-format
 msgid "IndexedLineSet"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:630
+#: reference_output.xml:634
 #, no-c-format
 msgid "MULTIPOINT"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:631
+#: reference_output.xml:635
 #, no-c-format
 msgid "Polypoint2D"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:632
+#: reference_output.xml:636
 #, no-c-format
 msgid "PointSet"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:635
+#: reference_output.xml:639
 #, no-c-format
 msgid "POINT"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:636 reference_output.xml:637
+#: reference_output.xml:640 reference_output.xml:641
 #, no-c-format
 msgid "outputs the space delimited coordinates"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:640
+#: reference_output.xml:644
 #, no-c-format
 msgid "(MULTI) POLYGON, POLYHEDRALSURFACE"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:641
+#: reference_output.xml:645
 #, no-c-format
 msgid "Invalid X3D markup"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:642
+#: reference_output.xml:646
 #, no-c-format
 msgid "IndexedFaceSet (inner rings currently output as another faceset)"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:645
+#: reference_output.xml:649
 #, no-c-format
 msgid "<entry>TIN</entry>"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:646
+#: reference_output.xml:650
 #, no-c-format
 msgid "TriangleSet2D (Not Yet Implemented)"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:647
+#: reference_output.xml:651
 #, no-c-format
 msgid "IndexedTriangleSet"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:652
+#: reference_output.xml:656
 #, no-c-format
 msgid ""
 "2D geometry support not yet complete. Inner rings currently just drawn as "
@@ -1337,7 +1352,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:653
+#: reference_output.xml:657
 #, no-c-format
 msgid ""
 "Lots of advancements happening in 3D space particularly with <ulink url="
@@ -1346,7 +1361,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:654
+#: reference_output.xml:658
 #, no-c-format
 msgid ""
 "There is also a nice open source X3D viewer you can use to view rendered "
@@ -1356,13 +1371,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:655
+#: reference_output.xml:659
+#, no-c-format
+msgid ""
+"Also check out <ulink url=\"https://github.com/robe2/postgis_x3d_viewer"
+"\">PostGIS minimalist X3D viewer</ulink> that utilizes this function and "
+"<ulink url=\"http://www.x3dom.org/\">x3dDom html/js open source toolkit</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:660
 #, no-c-format
 msgid "Availability: 2.0.0: ISO-IEC-19776-1.2-X3DEncodings-XML"
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:667
+#: reference_output.xml:672
 #, no-c-format
 msgid ""
 "Example: Create a fully functional X3D document - This will generate a cube "
@@ -1370,7 +1395,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:668
+#: reference_output.xml:673
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
@@ -1420,13 +1445,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:671
+#: reference_output.xml:676
 #, no-c-format
 msgid "Example: An Octagon elevated 3 Units and decimal precision of 6"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:672
+#: reference_output.xml:677
 #, no-c-format
 msgid ""
 "SELECT ST_AsX3D(\n"
@@ -1445,13 +1470,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:675
+#: reference_output.xml:680
 #, no-c-format
 msgid "Example: TIN"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:676
+#: reference_output.xml:681
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_AsX3D(ST_GeomFromEWKT('TIN (((\n"
@@ -1474,13 +1499,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:679
+#: reference_output.xml:684
 #, no-c-format
 msgid "Example: Closed multilinestring (the boundary of a polygon with holes)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:680
+#: reference_output.xml:685
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_AsX3D(\n"
@@ -1501,19 +1526,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:686
+#: reference_output.xml:691
 #, no-c-format
 msgid "ST_GeoHash"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:688
+#: reference_output.xml:693
 #, no-c-format
-msgid "Return a GeoHash representation (geohash.org) of the geometry."
+msgid "Return a GeoHash representation of the geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_output.xml:693
+#: reference_output.xml:698
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_GeoHash</function></funcdef> "
@@ -1523,17 +1548,18 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:704
+#: reference_output.xml:709
 #, no-c-format
 msgid ""
-"Return a GeoHash representation (geohash.org) of the geometry. A GeoHash "
-"encodes a point into a text form that is sortable and searchable based on "
-"prefixing. A shorter GeoHash is a less precise representation of a point. It "
-"can also be thought of as a box, that contains the actual point."
+"Return a GeoHash representation (<ulink url=\"http://en.wikipedia.org/wiki/"
+"Geohash\">http://en.wikipedia.org/wiki/Geohash</ulink>) of the geometry. A "
+"GeoHash encodes a point into a text form that is sortable and searchable "
+"based on prefixing. A shorter GeoHash is a less precise representation of a "
+"point. It can also be thought of as a box, that contains the actual point."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:706
+#: reference_output.xml:711
 #, no-c-format
 msgid ""
 "If no <varname>maxchars</varname> is specficified ST_GeoHash returns a "
@@ -1547,7 +1573,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:708
+#: reference_output.xml:713
 #, no-c-format
 msgid ""
 "If <varname>maxchars</varname> is specified ST_GeoHash returns a GeoHash "
@@ -1557,13 +1583,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:710
+#: reference_output.xml:715
 #, no-c-format
 msgid "Availability: 1.4.0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:713
+#: reference_output.xml:718
 #, no-c-format
 msgid ""
 "ST_GeoHash will not work with geometries that are not in geographic (lon/"
@@ -1571,7 +1597,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:721
+#: reference_output.xml:726
 #, no-c-format
 msgid ""
 "<![CDATA[SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326));\n"
@@ -1589,13 +1615,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:733
+#: reference_output.xml:737
 #, no-c-format
 msgid "ST_AsText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:734
+#: reference_output.xml:738
 #, no-c-format
 msgid ""
 "Return the Well-Known Text (WKT) representation of the geometry/geography "
@@ -1603,7 +1629,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:738
+#: reference_output.xml:742
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsText</function></funcdef> "
@@ -1614,13 +1640,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:753
+#: reference_output.xml:757
 #, no-c-format
 msgid "Returns the Well-Known Text representation of the geometry/geography."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:756
+#: reference_output.xml:760
 #, no-c-format
 msgid ""
 "The WKT spec does not include the SRID. To get the SRID as part of the data, "
@@ -1628,7 +1654,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:763
+#: reference_output.xml:767
 #, no-c-format
 msgid ""
 "ST_AsText is the reverse of <xref linkend=\"ST_GeomFromText\"/>. Use <xref "
@@ -1637,19 +1663,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:766
+#: reference_output.xml:770
 #, no-c-format
 msgid "Availability: 1.5 - support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:768
+#: reference_output.xml:772
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:776
+#: reference_output.xml:780
 #, no-c-format
 msgid ""
 "SELECT ST_AsText('01030000000100000005000000000000000000\n"
@@ -1664,7 +1690,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:783
+#: reference_output.xml:787
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsEWKT\"/>, <xref "
@@ -1672,19 +1698,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:790
+#: reference_output.xml:794
 #, no-c-format
 msgid "ST_AsLatLonText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:791
+#: reference_output.xml:795
 #, no-c-format
 msgid "Return the Degrees, Minutes, Seconds representation of the given point."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:795
+#: reference_output.xml:799
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>text <function>ST_AsLatLonText</function></funcdef> "
@@ -1696,13 +1722,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:811
+#: reference_output.xml:815
 #, no-c-format
 msgid "Returns the Degrees, Minutes, Seconds representation of the point."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:814
+#: reference_output.xml:818
 #, no-c-format
 msgid ""
 "It is assumed the point is in a lat/lon projection. The X (lon) and Y (lat) "
@@ -1711,7 +1737,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:817
+#: reference_output.xml:821
 #, no-c-format
 msgid ""
 "The text parameter is a format string containing the format for the "
@@ -1722,7 +1748,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:822
+#: reference_output.xml:826
 #, no-c-format
 msgid ""
 "\"M\", \"S\", and \"C\" are optional. If \"C\" is omitted, degrees are shown "
@@ -1733,7 +1759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:827
+#: reference_output.xml:831
 #, no-c-format
 msgid ""
 "If the format string is omitted (or zero-length) a default format will be "
@@ -1741,19 +1767,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:833
+#: reference_output.xml:837
 #, no-c-format
 msgid "Availability: 2.0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:839
+#: reference_output.xml:843
 #, no-c-format
 msgid "Default format."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:840
+#: reference_output.xml:844
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)'));\n"
@@ -1763,13 +1789,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:841
+#: reference_output.xml:845
 #, no-c-format
 msgid "Providing a format (same as the default)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:842
+#: reference_output.xml:846
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"C'));\n"
@@ -1779,13 +1805,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:843
+#: reference_output.xml:847
 #, no-c-format
 msgid "Characters other than D, M, S, C and . are just passed through."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:844
+#: reference_output.xml:848
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D degrees, M "
@@ -1797,13 +1823,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:845
+#: reference_output.xml:849
 #, no-c-format
 msgid "Signed degrees instead of cardinal directions."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:846
+#: reference_output.xml:850
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"'));\n"
@@ -1813,13 +1839,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:847
+#: reference_output.xml:851
 #, no-c-format
 msgid "Decimal degrees."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:848
+#: reference_output.xml:852
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees "
@@ -1830,13 +1856,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:849
+#: reference_output.xml:853
 #, no-c-format
 msgid "Excessively large values are normalized."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:850
+#: reference_output.xml:854
 #, no-c-format
 msgid ""
 "SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));\n"
@@ -1844,3 +1870,210 @@ msgid ""
 "-------------------------------\n"
 " 72°19'29.928\"S 57°45'56.757\"E"
 msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:862
+#, no-c-format
+msgid "ST_AsTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:863
+#, no-c-format
+msgid "Returns the geometry as TWKB, Tiny WKB"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:868
+#, no-c-format
+msgid ""
+"<funcdef>bytea <function>ST_AsTWKB</function></funcdef> "
+"<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID=null</"
+"parameter></paramdef> <paramdef><type>boolean </type> <parameter>include "
+"sizes=false</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include bounding boxes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:880 reference_output.xml:946
+#, no-c-format
+msgid ""
+"Returns the geometry in TWKB format. TWKB is a new compressed binary format."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:881 reference_output.xml:948
+#, no-c-format
+msgid ""
+"The second parameter is an integer used to define the number of coordinate "
+"decimals in the output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:882 reference_output.xml:949
+#, no-c-format
+msgid ""
+"The third parameter is optional. It is used to give each TWKB-geometry an "
+"unique ID"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:883 reference_output.xml:950
+#, no-c-format
+msgid ""
+"The fourth parameter is optional. If it is set to true, the size of the "
+"geometry is included"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:885
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/TWKB/Specification\">https://github.com/TWKB/Specification</"
+"ulink> , and code for building a client can be found <ulink url=\"https://"
+"github.com/TWKB/twkb.js\">https://github.com/TWKB/twkb.js</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:888
+#, no-c-format
+msgid ""
+"TWKB doesn't make any difference of Z and M. So PointM and PointZ will give "
+"the same twkb representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:891 reference_output.xml:956 reference_output.xml:993
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:897
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKB('LINESTRING(1 1,5 5)'::geometry,0,1);\n"
+"                 st_astwkb                  \n"
+"--------------------------------------------\n"
+"\\x0142020202020808"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:902 reference_output.xml:967
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_AsEWKB\"/>, <xref "
+"linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:908
+#, no-c-format
+msgid "ST_AsTWKBAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:909
+#, no-c-format
+msgid "Aggregates the geometries and returns as TWKB"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:913
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> "
+"<paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>decimaldigits</parameter></"
+"paramdef> <paramdef><type>int8 </type> <parameter>geometryID</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>include sizes</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
+"<function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</"
+"type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> "
+"<parameter>geometryID</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>include sizes</parameter></paramdef> <paramdef><type>boolean </"
+"type> <parameter>include bounding boxes</parameter></paramdef> </"
+"funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:947
+#, no-c-format
+msgid ""
+"This is the aggregate version of ST_AsTWKB. It aggregates and returns the "
+"geometry in TWKB-format. In the resulting TWKB-geometry each individual ID "
+"of the input geometries is stored."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:952
+#, no-c-format
+msgid ""
+"TWKB is still a moving target. The format is described <ulink url=\"https://"
+"github.com/nicklasaven/TWKB\">https://github.com/nicklasaven/TWKB</ulink> , "
+"and code for building a client can be found <ulink url=\"https://github.com/"
+"nicklasaven/twkb_web\">https://github.com/nicklasaven/twkb_web</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:962
+#, no-c-format
+msgid ""
+"SELECT ST_AsTWKBAgg(geom,0,id) FROM\n"
+"(SELECT 'LINESTRING(1 1,5 5)'::geometry geom, 1 AS id\n"
+"UNION ALL\n"
+"SELECT 'LINESTRING(6 5, 1 7)'::geometry AS geom, 2 AS id) foo;\n"
+"                               st_astwkbagg                                \n"
+"----------------------------------------------------------------------------\n"
+"\\x015602020202020808040202000904"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:973
+#, no-c-format
+msgid "ST_AsEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:974
+#, no-c-format
+msgid "Returns an Encoded Polyline from a LineString geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:979
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_AsEncodedPolyline</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:990
+#, no-c-format
+msgid "Returns the geometry as an Encoded Polyline."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:998
+#, no-c-format
+msgid ""
+"ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 "
+"40.7,-126.453 43.252)'));\n"
+"--result--\n"
+"|_p~iF~ps|U_ulLnnqC_mqNvxq`@"
+msgstr ""
diff --git a/doc/po/pt_BR/reference_processing.xml.po b/doc/po/pt_BR/reference_processing.xml.po
index 06fd42e..d6c4258 100644
--- a/doc/po/pt_BR/reference_processing.xml.po
+++ b/doc/po/pt_BR/reference_processing.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -64,20 +64,20 @@ msgstr ""
 
 #. Tag: title
 #: reference_processing.xml:47 reference_processing.xml:221
-#: reference_processing.xml:307 reference_processing.xml:373
-#: reference_processing.xml:522 reference_processing.xml:590
-#: reference_processing.xml:638 reference_processing.xml:736
-#: reference_processing.xml:816 reference_processing.xml:874
-#: reference_processing.xml:942 reference_processing.xml:989
-#: reference_processing.xml:1041 reference_processing.xml:1093
-#: reference_processing.xml:1133 reference_processing.xml:1192
-#: reference_processing.xml:1239 reference_processing.xml:1298
-#: reference_processing.xml:1350 reference_processing.xml:1404
-#: reference_processing.xml:1557 reference_processing.xml:1593
-#: reference_processing.xml:1670 reference_processing.xml:1720
-#: reference_processing.xml:1766 reference_processing.xml:1808
-#: reference_processing.xml:1919 reference_processing.xml:2012
-#: reference_processing.xml:2081
+#: reference_processing.xml:300 reference_processing.xml:355
+#: reference_processing.xml:421 reference_processing.xml:570
+#: reference_processing.xml:638 reference_processing.xml:686
+#: reference_processing.xml:785 reference_processing.xml:865
+#: reference_processing.xml:923 reference_processing.xml:992
+#: reference_processing.xml:1039 reference_processing.xml:1091
+#: reference_processing.xml:1156 reference_processing.xml:1198
+#: reference_processing.xml:1257 reference_processing.xml:1304
+#: reference_processing.xml:1363 reference_processing.xml:1415
+#: reference_processing.xml:1469 reference_processing.xml:1622
+#: reference_processing.xml:1658 reference_processing.xml:1735
+#: reference_processing.xml:1785 reference_processing.xml:1830
+#: reference_processing.xml:1872 reference_processing.xml:1984
+#: reference_processing.xml:2077 reference_processing.xml:2146
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -149,7 +149,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:66 reference_processing.xml:1427
+#: reference_processing.xml:66 reference_processing.xml:1492
 #, no-c-format
 msgid ""
 "'quad_segs=#' : number of segments used to approximate a quarter circle "
@@ -205,17 +205,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:84 reference_processing.xml:1444
-#: reference_processing.xml:1732 reference_processing.xml:1775
-#: reference_processing.xml:2032
+#: reference_processing.xml:84 reference_processing.xml:309
+#: reference_processing.xml:1509 reference_processing.xml:1839
+#: reference_processing.xml:2097
 #, no-c-format
 msgid "Performed by the GEOS module."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:85 reference_processing.xml:541
-#: reference_processing.xml:747 reference_processing.xml:1063
-#: reference_processing.xml:1930 reference_processing.xml:2041
+#: reference_processing.xml:85 reference_processing.xml:589
+#: reference_processing.xml:796 reference_processing.xml:1116
+#: reference_processing.xml:1995 reference_processing.xml:2106
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.3"
 msgstr ""
@@ -237,15 +237,15 @@ msgstr ""
 
 #. Tag: title
 #: reference_processing.xml:93 reference_processing.xml:238
-#: reference_processing.xml:343 reference_processing.xml:411
-#: reference_processing.xml:547 reference_processing.xml:604
-#: reference_processing.xml:754 reference_processing.xml:957
-#: reference_processing.xml:1067 reference_processing.xml:1104
-#: reference_processing.xml:1208 reference_processing.xml:1256
-#: reference_processing.xml:1367 reference_processing.xml:1453
-#: reference_processing.xml:1690 reference_processing.xml:1737
-#: reference_processing.xml:1781 reference_processing.xml:1823
-#: reference_processing.xml:1938 reference_processing.xml:2048
+#: reference_processing.xml:317 reference_processing.xml:391
+#: reference_processing.xml:459 reference_processing.xml:595
+#: reference_processing.xml:652 reference_processing.xml:803
+#: reference_processing.xml:1007 reference_processing.xml:1120
+#: reference_processing.xml:1273 reference_processing.xml:1321
+#: reference_processing.xml:1432 reference_processing.xml:1518
+#: reference_processing.xml:1755 reference_processing.xml:1801
+#: reference_processing.xml:1845 reference_processing.xml:1888
+#: reference_processing.xml:2003 reference_processing.xml:2113
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -413,19 +413,20 @@ msgstr ""
 
 #. Tag: title
 #: reference_processing.xml:197 reference_processing.xml:272
-#: reference_processing.xml:350 reference_processing.xml:500
-#: reference_processing.xml:563 reference_processing.xml:611
-#: reference_processing.xml:711 reference_processing.xml:794
-#: reference_processing.xml:853 reference_processing.xml:920
-#: reference_processing.xml:964 reference_processing.xml:1071
-#: reference_processing.xml:1111 reference_processing.xml:1165
-#: reference_processing.xml:1215 reference_processing.xml:1269
-#: reference_processing.xml:1322 reference_processing.xml:1373
-#: reference_processing.xml:1535 reference_processing.xml:1571
-#: reference_processing.xml:1641 reference_processing.xml:1697
-#: reference_processing.xml:1742 reference_processing.xml:1786
-#: reference_processing.xml:1894 reference_processing.xml:1979
-#: reference_processing.xml:2055 reference_processing.xml:2109
+#: reference_processing.xml:321 reference_processing.xml:398
+#: reference_processing.xml:548 reference_processing.xml:611
+#: reference_processing.xml:659 reference_processing.xml:760
+#: reference_processing.xml:843 reference_processing.xml:902
+#: reference_processing.xml:970 reference_processing.xml:1014
+#: reference_processing.xml:1134 reference_processing.xml:1176
+#: reference_processing.xml:1230 reference_processing.xml:1280
+#: reference_processing.xml:1334 reference_processing.xml:1387
+#: reference_processing.xml:1438 reference_processing.xml:1600
+#: reference_processing.xml:1636 reference_processing.xml:1706
+#: reference_processing.xml:1762 reference_processing.xml:1806
+#: reference_processing.xml:1850 reference_processing.xml:1959
+#: reference_processing.xml:2044 reference_processing.xml:2120
+#: reference_processing.xml:2174
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -478,7 +479,7 @@ msgid "This function will assume all inner geometries represent holes"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:231 reference_processing.xml:1310
+#: reference_processing.xml:231 reference_processing.xml:1375
 #, no-c-format
 msgid ""
 "Input linework must be correctly noded for this function to work properly"
@@ -546,20 +547,77 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:284
+#: reference_processing.xml:285
+#, no-c-format
+msgid "ST_ClipByBox2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:286
+#, no-c-format
+msgid "Returns the portion of a geometry falling within a rectangle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:291
+#, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_ClipByBox2D</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>box2d</type> <parameter>box</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:302
+#, no-c-format
+msgid ""
+"Clips a geometry by a 2D box in a fast but possibly dirty way. The output "
+"geometry is not guaranteed to be valid (self-intersections for a polygon may "
+"be introduced). Topologically invalid input geometries do not result in "
+"exceptions being thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:310
+#, no-c-format
+msgid "Requires GEOS 3.5.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:312
+#, no-c-format
+msgid "Availability: 2.2.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:318
+#, no-c-format
+msgid ""
+"-- Rely on implicit cast from geometry to box2d for the second parameter\n"
+"SELECT ST_ClipByBox2D(the_geom, ST_MakeEnvelope(0,0,10,10)) FROM mytab;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:322
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeBox2D\"/>, <xref linkend=\"ST_MakeEnvelope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:332
 #, no-c-format
 msgid "ST_Collect"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:285
+#: reference_processing.xml:333
 #, no-c-format
 msgid ""
 "Return a specified ST_Geometry value from a collection of other geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:289
+#: reference_processing.xml:337
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> "
@@ -574,7 +632,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:308
+#: reference_processing.xml:356
 #, no-c-format
 msgid ""
 "Output type can be a MULTI* or a GEOMETRYCOLLECTION. Comes in 2 variants. "
@@ -583,7 +641,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:312
+#: reference_processing.xml:360
 #, no-c-format
 msgid ""
 "Aggregate version: This function returns a GEOMETRYCOLLECTION or a MULTI "
@@ -595,7 +653,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:320
+#: reference_processing.xml:368
 #, no-c-format
 msgid ""
 "Non-Aggregate version: This function returns a geometry being a collection "
@@ -603,7 +661,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:324
+#: reference_processing.xml:372
 #, no-c-format
 msgid ""
 "ST_Collect and ST_Union are often interchangeable. ST_Collect is in general "
@@ -618,7 +676,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:335
+#: reference_processing.xml:383
 #, no-c-format
 msgid ""
 "Availability: 1.4.0 - ST_Collect(geomarray) was introduced. ST_Collect was "
@@ -626,20 +684,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:336 reference_processing.xml:543
-#: reference_processing.xml:598 reference_processing.xml:650
-#: reference_processing.xml:840 reference_processing.xml:894
-#: reference_processing.xml:952 reference_processing.xml:992
-#: reference_processing.xml:1098 reference_processing.xml:1160
-#: reference_processing.xml:1203 reference_processing.xml:1357
-#: reference_processing.xml:1567 reference_processing.xml:1682
-#: reference_processing.xml:2101
+#: reference_processing.xml:384 reference_processing.xml:591
+#: reference_processing.xml:646 reference_processing.xml:698
+#: reference_processing.xml:889 reference_processing.xml:944
+#: reference_processing.xml:1002 reference_processing.xml:1042
+#: reference_processing.xml:1161 reference_processing.xml:1225
+#: reference_processing.xml:1268 reference_processing.xml:1422
+#: reference_processing.xml:1632 reference_processing.xml:1747
+#: reference_processing.xml:2166
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:337
+#: reference_processing.xml:385
 #, no-c-format
 msgid ""
 "&curve_support; This method supports Circular Strings and Curves, but will "
@@ -648,7 +706,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:344
+#: reference_processing.xml:392
 #, no-c-format
 msgid ""
 "Aggregate example (<ulink url=\"http://postgis.refractions.net/pipermail/"
@@ -657,7 +715,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:345
+#: reference_processing.xml:393
 #, no-c-format
 msgid ""
 "SELECT stusps,\n"
@@ -669,13 +727,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:346 reference_processing.xml:2051
+#: reference_processing.xml:394 reference_processing.xml:2116
 #, no-c-format
 msgid "Non-Aggregate example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:347
+#: reference_processing.xml:395
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
@@ -724,19 +782,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:351
+#: reference_processing.xml:399
 #, no-c-format
 msgid ", <xref linkend=\"ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:356
+#: reference_processing.xml:404
 #, no-c-format
 msgid "ST_ConcaveHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:357
+#: reference_processing.xml:405
 #, no-c-format
 msgid ""
 "The concave hull of a geometry represents a possibly concave geometry that "
@@ -745,7 +803,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:363
+#: reference_processing.xml:411
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ConcaveHull</function></funcdef> "
@@ -756,7 +814,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:374
+#: reference_processing.xml:422
 #, no-c-format
 msgid ""
 "The concave hull of a geometry represents a possibly concave geometry that "
@@ -765,7 +823,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:378
+#: reference_processing.xml:426
 #, no-c-format
 msgid ""
 "The target_percent is the target percent of area of convex hull the PostGIS "
@@ -779,17 +837,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:383
+#: reference_processing.xml:431
 #, no-c-format
 msgid ""
 "It is usually used with MULTI and Geometry Collections. Although it is not "
 "an aggregate - you can use it in conjunction with ST_Collect or ST_Union to "
-"get the concave hull of a set of points/linestring/polygons ST_ConcaveHull"
-"(ST_Collect(somepointfield), 0.80)."
+"get the concave hull of a set of points/linestring/polygons "
+"ST_ConcaveHull(ST_Collect(somepointfield), 0.80)."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:388
+#: reference_processing.xml:436
 #, no-c-format
 msgid ""
 "It is much slower to compute than convex hull but encloses the geometry "
@@ -797,15 +855,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:391 reference_processing.xml:539
-#: reference_processing.xml:743 reference_processing.xml:1059
-#: reference_processing.xml:1926
+#: reference_processing.xml:439 reference_processing.xml:587
+#: reference_processing.xml:792 reference_processing.xml:1111
+#: reference_processing.xml:1991
 #, no-c-format
 msgid "Performed by the GEOS module"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:392
+#: reference_processing.xml:440
 #, no-c-format
 msgid ""
 "Note - If you are using with points, linestrings, or geometry collections "
@@ -814,7 +872,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:395
+#: reference_processing.xml:443
 #, no-c-format
 msgid ""
 "Note - The smaller you make the target percent, the longer it takes to "
@@ -831,7 +889,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:400
+#: reference_processing.xml:448
 #, no-c-format
 msgid ""
 "More real world examples and brief explanation of the technique are shown "
@@ -840,7 +898,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:403
+#: reference_processing.xml:451
 #, no-c-format
 msgid ""
 "Also check out Simon Greener's article on demonstrating ConcaveHull "
@@ -853,14 +911,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:407 reference_processing.xml:994
-#: reference_processing.xml:1565 reference_processing.xml:1819
+#: reference_processing.xml:455 reference_processing.xml:1044
+#: reference_processing.xml:1630 reference_processing.xml:1883
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:412
+#: reference_processing.xml:460
 #, no-c-format
 msgid ""
 "--Get estimate of infected area based on point observations\n"
@@ -871,13 +929,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:422
+#: reference_processing.xml:470
 #, no-c-format
 msgid "ST_ConcaveHull of 2 polygons encased in target 100% shrink concave hull"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:425
+#: reference_processing.xml:473
 #, no-c-format
 msgid ""
 "-- geometries overlaid with concavehull \n"
@@ -893,14 +951,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:432
+#: reference_processing.xml:480
 #, no-c-format
 msgid ""
 "-- geometries overlaid with concavehull at target 90% of convex hull area"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:436
+#: reference_processing.xml:484
 #, no-c-format
 msgid ""
 "-- geometries overlaid with concavehull at target 90% shrink\n"
@@ -914,13 +972,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:445
+#: reference_processing.xml:493
 #, no-c-format
 msgid "L Shape points overlaid with convex hull"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:448
+#: reference_processing.xml:496
 #, no-c-format
 msgid ""
 "-- this produces a table of 42 points that form an L shape\n"
@@ -937,13 +995,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:455
+#: reference_processing.xml:503
 #, no-c-format
 msgid "ST_ConcaveHull of L points at target 99% of convex hull"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:458
+#: reference_processing.xml:506
 #, no-c-format
 msgid ""
 "SELECT ST_ConcaveHull(ST_Collect(geom), 0.99)\n"
@@ -951,13 +1009,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:467
+#: reference_processing.xml:515
 #, no-c-format
 msgid "Concave Hull of L points at target 80% convex hull area"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:470
+#: reference_processing.xml:518
 #, no-c-format
 msgid ""
 "-- Concave Hull L shape points\n"
@@ -967,13 +1025,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:479
+#: reference_processing.xml:527
 #, no-c-format
 msgid "multilinestring overlaid with Convex hull"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:487
+#: reference_processing.xml:535
 #, no-c-format
 msgid ""
 "multilinestring with overlaid with Concave hull of linestrings at 99% target "
@@ -981,7 +1039,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:491
+#: reference_processing.xml:539
 #, no-c-format
 msgid ""
 "SELECT ST_ConcaveHull(ST_GeomFromText('MULTILINESTRING((106 164,30 112,74 "
@@ -996,7 +1054,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:501
+#: reference_processing.xml:549
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend="
@@ -1004,13 +1062,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:507
+#: reference_processing.xml:555
 #, no-c-format
 msgid "ST_ConvexHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:508
+#: reference_processing.xml:556
 #, no-c-format
 msgid ""
 "<refpurpose>The convex hull of a geometry represents the minimum convex "
@@ -1018,7 +1076,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:514
+#: reference_processing.xml:562
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
@@ -1026,7 +1084,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:523
+#: reference_processing.xml:571
 #, no-c-format
 msgid ""
 "<para>The convex hull of a geometry represents the minimum convex geometry "
@@ -1034,7 +1092,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:526
+#: reference_processing.xml:574
 #, no-c-format
 msgid ""
 "One can think of the convex hull as the geometry you get by wrapping an "
@@ -1043,7 +1101,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:530
+#: reference_processing.xml:578
 #, no-c-format
 msgid ""
 "It is usually used with MULTI and Geometry Collections. Although it is not "
@@ -1052,7 +1110,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:535
+#: reference_processing.xml:583
 #, no-c-format
 msgid ""
 "It is often used to determine an affected area based on a set of point "
@@ -1060,13 +1118,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:542
+#: reference_processing.xml:590
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.16"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:548
+#: reference_processing.xml:596
 #, no-c-format
 msgid ""
 "--Get estimate of infected area based on point observations\n"
@@ -1077,7 +1135,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:556
+#: reference_processing.xml:604
 #, no-c-format
 msgid ""
 "Convex Hull of a MultiLinestring and a MultiPoint seen together with the "
@@ -1085,7 +1143,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:559
+#: reference_processing.xml:607
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_ConvexHull(\n"
@@ -1100,7 +1158,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:564
+#: reference_processing.xml:612
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_ConcaveHull\"/>, <xref linkend="
@@ -1108,19 +1166,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:570
+#: reference_processing.xml:618
 #, no-c-format
 msgid "ST_CurveToLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:572
+#: reference_processing.xml:620
 #, no-c-format
 msgid "Converts a CIRCULARSTRING/CURVEDPOLYGON to a LINESTRING/POLYGON"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:576
+#: reference_processing.xml:624
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_CurveToLine</function></"
@@ -1133,7 +1191,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:592
+#: reference_processing.xml:640
 #, no-c-format
 msgid ""
 "Converst a CIRCULAR STRING to regular LINESTRING or CURVEPOLYGON to POLYGON. "
@@ -1142,7 +1200,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:593
+#: reference_processing.xml:641
 #, no-c-format
 msgid ""
 "Converts a given geometry to a linear geometry. Each curved geometry or "
@@ -1151,33 +1209,33 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:595 reference_processing.xml:1097
+#: reference_processing.xml:643 reference_processing.xml:1160
 #, no-c-format
 msgid "Availability: 1.2.2?"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:596
+#: reference_processing.xml:644
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:597
+#: reference_processing.xml:645
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.7"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:599 reference_processing.xml:837
-#: reference_processing.xml:891 reference_processing.xml:991
-#: reference_processing.xml:1099
+#: reference_processing.xml:647 reference_processing.xml:886
+#: reference_processing.xml:941 reference_processing.xml:1041
+#: reference_processing.xml:1162
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:606
+#: reference_processing.xml:654
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 "
@@ -1284,19 +1342,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:619
+#: reference_processing.xml:667
 #, no-c-format
 msgid "ST_DelaunayTriangles"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:621
+#: reference_processing.xml:669
 #, no-c-format
 msgid "Return a Delaunay triangulation around the given input points."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:628
+#: reference_processing.xml:676
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_DelaunayTriangles</function></funcdef> "
@@ -1306,35 +1364,44 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:640
+#: reference_processing.xml:688
 #, no-c-format
 msgid ""
 "Return a <ulink url=\"http://en.wikipedia.org/wiki/Delaunay_triangulation"
 "\">Delaunay triangulation</ulink> around the vertices of the input geometry. "
 "Output is a COLLECTION of polygons (for flags=0) or a MULTILINESTRING (for "
-"flags=1). The tolerance, if any, is used to snap input vertices togheter."
+"flags=1) or TIN (for flags=2). The tolerance, if any, is used to snap input "
+"vertices togheter."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:649
+#: reference_processing.xml:697
 #, no-c-format
 msgid "Availability: 2.1.0 - requires GEOS >= 3.4.0."
 msgstr ""
 
+#. Tag: para
+#: reference_processing.xml:699 reference_processing.xml:888
+#: reference_processing.xml:943 reference_processing.xml:1046
+#: reference_processing.xml:1750
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
 #. Tag: title
-#: reference_processing.xml:654
+#: reference_processing.xml:703
 #, no-c-format
 msgid "2D Examples"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:663
+#: reference_processing.xml:712
 #, no-c-format
 msgid "Original polygons"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:666
+#: reference_processing.xml:715
 #, no-c-format
 msgid ""
 "-- our original geometry --\n"
@@ -1345,7 +1412,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:674
+#: reference_processing.xml:723
 #, no-c-format
 msgid ""
 "ST_DelaunayTriangles of 2 polygons: delaunay triangle polygons each triangle "
@@ -1353,7 +1420,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:677
+#: reference_processing.xml:726
 #, no-c-format
 msgid ""
 "-- geometries overlaid multilinestring triangles\n"
@@ -1367,13 +1434,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:684
+#: reference_processing.xml:733
 #, no-c-format
 msgid "-- delaunay triangles as multilinestring"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:687
+#: reference_processing.xml:736
 #, no-c-format
 msgid ""
 "SELECT \n"
@@ -1386,13 +1453,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:695
+#: reference_processing.xml:744
 #, no-c-format
 msgid "-- delaunay triangles of 45 points as 55 triangle polygons"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:698
+#: reference_processing.xml:747
 #, no-c-format
 msgid ""
 "-- this produces a table of 42 points that form an L shape\n"
@@ -1420,13 +1487,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:707
+#: reference_processing.xml:756
 #, no-c-format
 msgid "3D Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:708
+#: reference_processing.xml:757
 #, no-c-format
 msgid ""
 "-- 3D multipoint --\n"
@@ -1440,19 +1507,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:712 reference_processing.xml:1323
+#: reference_processing.xml:761 reference_processing.xml:1388
 #, no-c-format
 msgid ", <xref linkend=\"ST_Dump\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:719
+#: reference_processing.xml:768
 #, no-c-format
 msgid "ST_Difference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:721
+#: reference_processing.xml:770
 #, no-c-format
 msgid ""
 "Returns a geometry that represents that part of geometry A that does not "
@@ -1460,7 +1527,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:727
+#: reference_processing.xml:776
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Difference</function></funcdef> "
@@ -1469,7 +1536,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:738
+#: reference_processing.xml:787
 #, no-c-format
 msgid ""
 "Returns a geometry that represents that part of geometry A that does not "
@@ -1479,25 +1546,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:741
+#: reference_processing.xml:790
 #, no-c-format
 msgid "Note - order matters. B - A will always return a portion of B"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:745 reference_processing.xml:1928
+#: reference_processing.xml:794 reference_processing.xml:1993
 #, no-c-format
 msgid "Do not call with a GeometryCollection as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:748
+#: reference_processing.xml:797
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.20"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:749 reference_processing.xml:1932
+#: reference_processing.xml:798 reference_processing.xml:1997
 #, no-c-format
 msgid ""
 "&Z_support; However it seems to only consider x y when doing the difference "
@@ -1505,19 +1572,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:766
+#: reference_processing.xml:815
 #, no-c-format
 msgid "The original linestrings shown together."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:778
+#: reference_processing.xml:827
 #, no-c-format
 msgid "The difference of the two linestrings"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:787
+#: reference_processing.xml:836
 #, no-c-format
 msgid ""
 "--Safe for 2d. This is same geometries as what is shown for "
@@ -1535,7 +1602,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:789
+#: reference_processing.xml:838
 #, no-c-format
 msgid ""
 "--When used in 3d doesn't quite do the right thing\n"
@@ -1548,20 +1615,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:802
+#: reference_processing.xml:851
 #, no-c-format
 msgid "ST_Dump"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:803
+#: reference_processing.xml:852
 #, no-c-format
 msgid ""
 "Returns a set of geometry_dump (geom,path) rows, that make up a geometry g1."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:808
+#: reference_processing.xml:857
 #, no-c-format
 msgid ""
 "<funcdef>geometry_dump[] <function>ST_Dump</function></funcdef> "
@@ -1569,7 +1636,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:817
+#: reference_processing.xml:866
 #, no-c-format
 msgid ""
 "This is a set-returning function (SRF). It returns a set of geometry_dump "
@@ -1582,7 +1649,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:826
+#: reference_processing.xml:875
 #, no-c-format
 msgid ""
 "ST_Dump is useful for expanding geometries. It is the reverse of a GROUP BY "
@@ -1591,7 +1658,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:830 reference_processing.xml:889
+#: reference_processing.xml:879 reference_processing.xml:939
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was "
@@ -1599,13 +1666,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:831
+#: reference_processing.xml:880
 #, no-c-format
 msgid "Availability: PostGIS 1.0.0RC1. Requires PostgreSQL 7.3 or higher."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:833
+#: reference_processing.xml:882
 #, no-c-format
 msgid ""
 "Prior to 1.3.4, this function crashes if used with geometries that contain "
@@ -1613,28 +1680,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:838 reference_processing.xml:892
-#: reference_processing.xml:995 reference_processing.xml:1566
-#: reference_processing.xml:1684
+#: reference_processing.xml:887 reference_processing.xml:942
+#: reference_processing.xml:1045 reference_processing.xml:1631
+#: reference_processing.xml:1749
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
-#. Tag: para
-#: reference_processing.xml:839 reference_processing.xml:893
-#: reference_processing.xml:996 reference_processing.xml:1685
-#, no-c-format
-msgid "&T_support;"
-msgstr ""
-
 #. Tag: title
-#: reference_processing.xml:844
+#: reference_processing.xml:893
 #, no-c-format
 msgid "Standard Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:845
+#: reference_processing.xml:894
 #, no-c-format
 msgid ""
 "SELECT sometable.field1, sometable.field1,\n"
@@ -1656,13 +1716,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:847 reference_processing.xml:914
+#: reference_processing.xml:896 reference_processing.xml:964
 #, no-c-format
 msgid "Polyhedral Surfaces, TIN and Triangle Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:848
+#: reference_processing.xml:897
 #, no-c-format
 msgid ""
 "-- Polyhedral surface example\n"
@@ -1687,7 +1747,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:850
+#: reference_processing.xml:899
 #, no-c-format
 msgid ""
 "-- TIN --                \n"
@@ -1715,7 +1775,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:854
+#: reference_processing.xml:903
 #, no-c-format
 msgid ""
 ", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend="
@@ -1724,13 +1784,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:860
+#: reference_processing.xml:909
 #, no-c-format
 msgid "ST_DumpPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:861
+#: reference_processing.xml:910
 #, no-c-format
 msgid ""
 "Returns a set of geometry_dump (geom,path) rows of all points that make up a "
@@ -1738,7 +1798,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:866
+#: reference_processing.xml:915
 #, no-c-format
 msgid ""
 "<funcdef>geometry_dump[]<function>ST_DumpPoints</function></funcdef> "
@@ -1746,7 +1806,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:875
+#: reference_processing.xml:924
 #, no-c-format
 msgid ""
 "This set-returning function (SRF) returns a set of <varname>geometry_dump</"
@@ -1755,7 +1815,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:878
+#: reference_processing.xml:927
 #, no-c-format
 msgid ""
 "The <parameter>geom</parameter> component of <varname>geometry_dump</"
@@ -1764,7 +1824,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:881
+#: reference_processing.xml:930
 #, no-c-format
 msgid ""
 "The <parameter>path</parameter> component of <varname>geometry_dump</"
@@ -1780,19 +1840,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:890
+#: reference_processing.xml:938
+#, no-c-format
+msgid "Enhanced: 2.1.0 Faster speed. Reimplemented as native-C."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:940
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:897
+#: reference_processing.xml:947
 #, no-c-format
 msgid "Classic Explode a Table of LineStrings into nodes"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:898
+#: reference_processing.xml:948
 #, no-c-format
 msgid ""
 "SELECT edge_id, (dp).path[1] As index, ST_AsText((dp).geom) As wktnode\n"
@@ -1815,13 +1881,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:901
+#: reference_processing.xml:951
 #, no-c-format
 msgid "Standard Geometry Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:911
+#: reference_processing.xml:961
 #, no-c-format
 msgid ""
 "SELECT path, ST_AsText(geom) \n"
@@ -1879,7 +1945,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:915
+#: reference_processing.xml:965
 #, no-c-format
 msgid ""
 "-- Polyhedral surface cube --                \n"
@@ -1931,7 +1997,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:916
+#: reference_processing.xml:966
 #, no-c-format
 msgid ""
 "-- Triangle --                \n"
@@ -1955,7 +2021,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:917
+#: reference_processing.xml:967
 #, no-c-format
 msgid ""
 "-- TIN --                \n"
@@ -1990,7 +2056,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:921
+#: reference_processing.xml:971
 #, no-c-format
 msgid ""
 ", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
@@ -1998,13 +2064,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:926
+#: reference_processing.xml:976
 #, no-c-format
 msgid "ST_DumpRings"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:928
+#: reference_processing.xml:978
 #, no-c-format
 msgid ""
 "Returns a set of <varname>geometry_dump</varname> rows, representing the "
@@ -2012,7 +2078,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:934
+#: reference_processing.xml:984
 #, no-c-format
 msgid ""
 "<funcdef>geometry_dump[] <function>ST_DumpRings</function></funcdef> "
@@ -2020,7 +2086,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:944
+#: reference_processing.xml:994
 #, no-c-format
 msgid ""
 "This is a set-returning function (SRF). It returns a set of "
@@ -2032,20 +2098,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:950
+#: reference_processing.xml:1000
 #, no-c-format
 msgid "Availability: PostGIS 1.1.3. Requires PostgreSQL 7.3 or higher."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:951
+#: reference_processing.xml:1001
 #, no-c-format
 msgid ""
 "This only works for POLYGON geometries. It will not work for MULTIPOLYGONS"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:959
+#: reference_processing.xml:1009
 #, no-c-format
 msgid ""
 "SELECT sometable.field1, sometable.field1,\n"
@@ -2079,7 +2145,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:966
+#: reference_processing.xml:1016
 #, no-c-format
 msgid ""
 ", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump"
@@ -2088,13 +2154,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:972
+#: reference_processing.xml:1022
 #, no-c-format
 msgid "ST_FlipCoordinates"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:973
+#: reference_processing.xml:1023
 #, no-c-format
 msgid ""
 "Returns a version of the given geometry with X and Y axis flipped. Useful "
@@ -2102,7 +2168,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:981
+#: reference_processing.xml:1031
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_FlipCoordinates</function></funcdef> "
@@ -2110,25 +2176,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:990
+#: reference_processing.xml:1040
 #, no-c-format
 msgid "Returns a version of the given geometry with X and Y axis flipped."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:993
+#: reference_processing.xml:1043
 #, no-c-format
 msgid "&M_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:1000
+#: reference_processing.xml:1050
 #, no-c-format
 msgid "Example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1001
+#: reference_processing.xml:1051
 #, no-c-format
 msgid ""
 "<![CDATA[\n"
@@ -2140,13 +2206,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1008
+#: reference_processing.xml:1058
 #, no-c-format
 msgid "ST_Intersection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1010
+#: reference_processing.xml:1060
 #, no-c-format
 msgid ""
 "(T) Returns a geometry that represents the shared portion of geomA and "
@@ -2155,7 +2221,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:1015
+#: reference_processing.xml:1065
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Intersection</function></"
@@ -2168,7 +2234,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1042
+#: reference_processing.xml:1092
 #, no-c-format
 msgid ""
 "Returns a geometry that represents the point set intersection of the "
@@ -2176,7 +2242,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1045
+#: reference_processing.xml:1095
 #, no-c-format
 msgid ""
 "In other words - that portion of geometry A and geometry B that is shared "
@@ -2184,7 +2250,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1048
+#: reference_processing.xml:1098
 #, no-c-format
 msgid ""
 "If the geometries do not share any space (are disjoint), then an empty "
@@ -2192,7 +2258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1050
+#: reference_processing.xml:1100
 #, no-c-format
 msgid ""
 "ST_Intersection in conjunction with ST_Intersects is very useful for "
@@ -2202,7 +2268,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1053
+#: reference_processing.xml:1103
 #, no-c-format
 msgid ""
 "Geography: For geography this is really a thin wrapper around the geometry "
@@ -2215,25 +2281,44 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1056
+#: reference_processing.xml:1106
 #, no-c-format
 msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1061
+#: reference_processing.xml:1109
+#, no-c-format
+msgid ""
+"If working with 3D geometries, you may want to use SFGCAL based <xref "
+"linkend=\"ST_3DIntersection\"/> which does a proper 3D intersection for 3D "
+"geometries. Although this function works with Z-coordinate, it does an "
+"averaging of Z-Coordinate values when <code>postgis.backend=geos</code>. "
+"<code>postgis.backend=sfcgal</code>, it will return a 2D geometry regardless "
+"ignoring the Z-Coordinate. Refer to <xref linkend=\"postgis_backend\"/> for "
+"details."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1112
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1114
 #, no-c-format
 msgid "Availability: 1.5 support for geography data type was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1064
+#: reference_processing.xml:1117
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.18"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1068
+#: reference_processing.xml:1121
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, "
@@ -2284,29 +2369,87 @@ msgid ""
 "poly.the_geom),0.0));"
 msgstr ""
 
+#. Tag: title
+#: reference_processing.xml:1125
+#, no-c-format
+msgid "Examples: 2.5Dish"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1126
+#, no-c-format
+msgid ""
+"Geos is the default backend if not set. Note this is not a true "
+"intersection, compare to the same example using <xref linkend="
+"\"ST_3DIntersection\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1127
+#, no-c-format
+msgid ""
+"set postgis.backend=geos; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"               st_astext\n"
+"---------------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8,0 0 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1129
+#, no-c-format
+msgid ""
+"If your PostGIS is compiled with sfcgal support, have option of using "
+"sfcgal, but note if basically cases down both geometries to 2D before doing "
+"intersection and returns the ST_Force2D equivalent result which is a 2D "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1131
+#, no-c-format
+msgid ""
+"set postgis.backend=sfcgal; \n"
+"select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+"from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"                     wkt\n"
+"----------------------------------------------\n"
+" MULTILINESTRING((0.5 0.5,0 0),(1 1,0.5 0.5))"
+msgstr ""
+
 #. Tag: para
-#: reference_processing.xml:1072
+#: reference_processing.xml:1135
 #, no-c-format
 msgid ""
-", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
-"linkend=\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref "
-"linkend=\"ST_Multi\"/>"
+", <xref linkend=\"ST_Difference\"/>, <xref linkend=\"ST_Dimension\"/>, <xref "
+"linkend=\"ST_Dump\"/>, <xref linkend=\"ST_Force2D\"/>, <xref linkend="
+"\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Multi\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1078
+#: reference_processing.xml:1141
 #, no-c-format
 msgid "ST_LineToCurve"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1080
+#: reference_processing.xml:1143
 #, no-c-format
 msgid "Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1085
+#: reference_processing.xml:1148
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_LineToCurve</function></funcdef> "
@@ -2315,15 +2458,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1095
+#: reference_processing.xml:1158
 #, no-c-format
 msgid ""
 "Converts plain LINESTRING/POLYGONS to CIRCULAR STRINGs and Curved Polygons. "
 "Note much fewer points are needed to describe the curved equivalent."
 msgstr ""
 
+#. Tag: title
+#: reference_processing.xml:1167
+#, no-c-format
+msgid "Examples: 2D"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_processing.xml:1106
+#: reference_processing.xml:1169
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_LineToCurve(foo.the_geom)) As curvedastext,ST_AsText(foo."
@@ -2334,8 +2483,9 @@ msgid ""
 "curvedatext                                                            "
 "non_curvedastext\n"
 "--------------------------------------------------------------------|-----------------------------------------------------------------\n"
-"CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359, | POLYGON"
-"((4 3,3.94235584120969 2.41472903395162,3.77163859753386 1.85194970290473,\n"
+"CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359, | "
+"POLYGON((4 3,3.94235584120969 2.41472903395162,3.77163859753386 "
+"1.85194970290473,\n"
 "1 0,-1.12132034355965 5.12132034355963,4 3))                        |  "
 "3.49440883690764 1.33328930094119,3.12132034355964 0.878679656440359,\n"
 "                                                                    |  "
@@ -2360,19 +2510,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1119
+#: reference_processing.xml:1184
 #, no-c-format
 msgid "ST_MakeValid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1120
+#: reference_processing.xml:1185
 #, no-c-format
-msgid "Attempts to make an invalid geometry valid w/out loosing vertices."
+msgid "Attempts to make an invalid geometry valid without losing vertices."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1125
+#: reference_processing.xml:1190
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MakeValid</function></funcdef> "
@@ -2380,16 +2530,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1134
+#: reference_processing.xml:1199
 #, no-c-format
 msgid ""
 "The function attempts to create a valid representation of a given invalid "
-"geometry without loosing any of the input vertices. Already-valid geometries "
-"are returned w/out further intervention."
+"geometry without losing any of the input vertices. Already-valid geometries "
+"are returned without further intervention."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1140
+#: reference_processing.xml:1205
 #, no-c-format
 msgid ""
 "Supported inputs are: POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, "
@@ -2397,7 +2547,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1146
+#: reference_processing.xml:1211
 #, no-c-format
 msgid ""
 "In case of full or partial dimensional collapses, the output geometry may be "
@@ -2406,38 +2556,38 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1152
+#: reference_processing.xml:1217
 #, no-c-format
 msgid ""
 "Single polygons may become multi-geometries in case of self-intersections."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1156
+#: reference_processing.xml:1221
 #, no-c-format
 msgid "Availability: 2.0.0, requires GEOS-3.3.0"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1157
+#: reference_processing.xml:1222
 #, no-c-format
-msgid "Enahnced: 2.0.1, speed improvements requires GEOS-3.3.4"
+msgid "Enhanced: 2.0.1, speed improvements requires GEOS-3.3.4"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1158
+#: reference_processing.xml:1223
 #, no-c-format
 msgid "Enhanced: 2.1.0 added support for GEOMETRYCOLLECTION and MULTIPOINT."
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1175
+#: reference_processing.xml:1240
 #, no-c-format
 msgid "ST_MemUnion"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1177
+#: reference_processing.xml:1242
 #, no-c-format
 msgid ""
 "Same as ST_Union, only memory-friendly (uses less memory and more processor "
@@ -2445,7 +2595,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1183
+#: reference_processing.xml:1248
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MemUnion</function></funcdef> "
@@ -2454,13 +2604,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1194
+#: reference_processing.xml:1259
 #, no-c-format
 msgid "Some useful description here."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1198
+#: reference_processing.xml:1263
 #, no-c-format
 msgid ""
 "Same as ST_Union, only memory-friendly (uses less memory and more processor "
@@ -2470,19 +2620,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1210
+#: reference_processing.xml:1275
 #, no-c-format
 msgid "See ST_Union"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1223
+#: reference_processing.xml:1288
 #, no-c-format
 msgid "ST_MinimumBoundingCircle"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1224
+#: reference_processing.xml:1289
 #, no-c-format
 msgid ""
 "Returns the smallest circle polygon that can fully contain a geometry. "
@@ -2490,7 +2640,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1230
+#: reference_processing.xml:1295
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_MinimumBoundingCircle</function></funcdef> "
@@ -2500,13 +2650,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1240
+#: reference_processing.xml:1305
 #, no-c-format
 msgid "Returns the smallest circle polygon that can fully contain a geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1241
+#: reference_processing.xml:1306
 #, no-c-format
 msgid ""
 "The circle is approximated by a polygon with a default of 48 segments per "
@@ -2515,17 +2665,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1243
+#: reference_processing.xml:1308
 #, no-c-format
 msgid ""
 "It is often used with MULTI and Geometry Collections. Although it is not an "
 "aggregate - you can use it in conjunction with ST_Collect to get the minimum "
-"bounding circle of a set of geometries. ST_MinimumBoundingCircle(ST_Collect"
-"(somepointfield))."
+"bounding circle of a set of geometries. "
+"ST_MinimumBoundingCircle(ST_Collect(somepointfield))."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1248
+#: reference_processing.xml:1313
 #, no-c-format
 msgid ""
 "The ratio of the area of a polygon divided by the area of its Minimum "
@@ -2533,13 +2683,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1250
+#: reference_processing.xml:1315
 #, no-c-format
 msgid "Availability: 1.4.0 - requires GEOS"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1257
+#: reference_processing.xml:1322
 #, no-c-format
 msgid ""
 "SELECT d.disease_type,\n"
@@ -2549,7 +2699,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1263
+#: reference_processing.xml:1328
 #, no-c-format
 msgid ""
 "Minimum bounding circle of a point and linestring. Using 8 segs to "
@@ -2557,7 +2707,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1266
+#: reference_processing.xml:1331
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_MinimumBoundingCircle(\n"
@@ -2589,19 +2739,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1270
+#: reference_processing.xml:1335
 #, no-c-format
 msgid ", <xref linkend=\"ST_ConvexHull\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1276
+#: reference_processing.xml:1341
 #, no-c-format
 msgid "ST_Polygonize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1278
+#: reference_processing.xml:1343
 #, no-c-format
 msgid ""
 "Aggregate. Creates a GeometryCollection containing possible polygons formed "
@@ -2609,7 +2759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:1284
+#: reference_processing.xml:1349
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Polygonize</function></"
@@ -2620,7 +2770,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1300
+#: reference_processing.xml:1365
 #, no-c-format
 msgid ""
 "Creates a GeometryCollection containing possible polygons formed from the "
@@ -2628,7 +2778,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1305
+#: reference_processing.xml:1370
 #, no-c-format
 msgid ""
 "Geometry Collections are often difficult to deal with with third party "
@@ -2637,19 +2787,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1313
+#: reference_processing.xml:1378
 #, no-c-format
 msgid "Availability: 1.0.0RC1 - requires GEOS >= 2.1.0."
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:1317
+#: reference_processing.xml:1382
 #, no-c-format
 msgid "Examples: Polygonizing single linestrings"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1318
+#: reference_processing.xml:1383
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(ST_Polygonize(the_geom_4269)) As geomtextrep\n"
@@ -2684,19 +2834,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1332
+#: reference_processing.xml:1397
 #, no-c-format
 msgid "ST_Node"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1334
+#: reference_processing.xml:1399
 #, no-c-format
 msgid "Node a set of linestrings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1341
+#: reference_processing.xml:1406
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Node</function></funcdef> "
@@ -2704,7 +2854,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1352
+#: reference_processing.xml:1417
 #, no-c-format
 msgid ""
 "Fully node a set of linestrings using the least possible number of nodes "
@@ -2712,13 +2862,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1359 reference_processing.xml:2103
+#: reference_processing.xml:1424 reference_processing.xml:2168
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1361
+#: reference_processing.xml:1426
 #, no-c-format
 msgid ""
 "Due to a bug in GEOS up to 3.3.1 this function fails to node self-"
@@ -2726,7 +2876,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1368
+#: reference_processing.xml:1433
 #, no-c-format
 msgid ""
 "SELECT ST_AsEWKT(\n"
@@ -2740,13 +2890,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1383
+#: reference_processing.xml:1448
 #, no-c-format
 msgid "ST_OffsetCurve"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1385
+#: reference_processing.xml:1450
 #, no-c-format
 msgid ""
 "Return an offset line at a given distance and side from an input line. "
@@ -2754,7 +2904,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1393
+#: reference_processing.xml:1458
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_OffsetCurve</function></funcdef> "
@@ -2765,7 +2915,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1406
+#: reference_processing.xml:1471
 #, no-c-format
 msgid ""
 "Return an offset line at a given distance and side from an input line. All "
@@ -2774,7 +2924,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1412
+#: reference_processing.xml:1477
 #, no-c-format
 msgid ""
 "For positive distance the offset will be at the left side of the input line "
@@ -2783,14 +2933,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1418
+#: reference_processing.xml:1483
 #, no-c-format
 msgid ""
 "Availability: 2.0 - requires GEOS >= 3.2, improved with GEOS >= 3.3"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1422
+#: reference_processing.xml:1487
 #, no-c-format
 msgid ""
 "The optional third parameter allows specifying a list of blank-separated "
@@ -2798,7 +2948,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1430
+#: reference_processing.xml:1495
 #, no-c-format
 msgid ""
 "'join=round|mitre|bevel' : join style (defaults to \"round\"). 'miter' is "
@@ -2806,7 +2956,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1433
+#: reference_processing.xml:1498
 #, no-c-format
 msgid ""
 "'mitre_limit=#.#' : mitre ratio limit (only affects mitred join style). "
@@ -2814,20 +2964,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1438
+#: reference_processing.xml:1503
 #, no-c-format
 msgid ""
 "Units of distance are measured in units of the spatial reference system."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1442
+#: reference_processing.xml:1507
 #, no-c-format
 msgid "The inputs can only be LINESTRINGS."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1446
+#: reference_processing.xml:1511
 #, no-c-format
 msgid ""
 "This function ignores the third dimension (z) and will always give a 2-d "
@@ -2835,13 +2985,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1454
+#: reference_processing.xml:1519
 #, no-c-format
 msgid "Compute an open buffer around roads"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1455
+#: reference_processing.xml:1520
 #, no-c-format
 msgid ""
 "SELECT ST_Union(\n"
@@ -2852,13 +3002,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1465
+#: reference_processing.xml:1530
 #, no-c-format
 msgid "15, 'quad_segs=4 join=round' original line and its offset 15 units."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1469
+#: reference_processing.xml:1534
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
@@ -2875,13 +3025,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1476
+#: reference_processing.xml:1541
 #, no-c-format
 msgid "-15, 'quad_segs=4 join=round' original line and its offset -15 units"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1480
+#: reference_processing.xml:1545
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_OffsetCurve(geom,\n"
@@ -2896,7 +3046,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1489
+#: reference_processing.xml:1554
 #, no-c-format
 msgid ""
 "double-offset to get more curvy, note the first reverses direction, so -30 + "
@@ -2904,7 +3054,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1492
+#: reference_processing.xml:1557
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_OffsetCurve(ST_OffsetCurve(geom,\n"
@@ -2922,7 +3072,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1499
+#: reference_processing.xml:1564
 #, no-c-format
 msgid ""
 "double-offset to get more curvy,combined with regular offset 15 to get "
@@ -2930,7 +3080,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1502
+#: reference_processing.xml:1567
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Collect(\n"
@@ -2954,13 +3104,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1511
+#: reference_processing.xml:1576
 #, no-c-format
 msgid "15, 'quad_segs=4 join=bevel' shown with original line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1514
+#: reference_processing.xml:1579
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
@@ -2975,13 +3125,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1522
+#: reference_processing.xml:1587
 #, no-c-format
 msgid "15,-15 collected, join=mitre mitre_limit=2.1"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1525
+#: reference_processing.xml:1590
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Collect(\n"
@@ -2999,19 +3149,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1542
+#: reference_processing.xml:1607
 #, no-c-format
 msgid "ST_RemoveRepeatedPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1543
+#: reference_processing.xml:1608
 #, no-c-format
 msgid "Returns a version of the given geometry with duplicated points removed."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1549
+#: reference_processing.xml:1614
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_RemoveRepeatedPoints</function></funcdef> "
@@ -3019,7 +3169,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1558
+#: reference_processing.xml:1623
 #, no-c-format
 msgid ""
 "Returns a version of the given geometry with duplicated points removed. Will "
@@ -3030,13 +3180,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1578
+#: reference_processing.xml:1643
 #, no-c-format
 msgid "ST_SharedPaths"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1579
+#: reference_processing.xml:1644
 #, no-c-format
 msgid ""
 "Returns a collection containing paths shared by the two input linestrings/"
@@ -3044,7 +3194,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1584
+#: reference_processing.xml:1649
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SharedPaths</function></funcdef> "
@@ -3053,7 +3203,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1594
+#: reference_processing.xml:1659
 #, no-c-format
 msgid ""
 "Returns a collection containing paths shared by the two input geometries. "
@@ -3063,25 +3213,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1599
+#: reference_processing.xml:1664
 #, no-c-format
 msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:1602
+#: reference_processing.xml:1667
 #, no-c-format
 msgid "Examples: Finding shared paths"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1612
+#: reference_processing.xml:1677
 #, no-c-format
 msgid "A multilinestring and a linestring"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1623
+#: reference_processing.xml:1688
 #, no-c-format
 msgid ""
 "The shared path of multilinestring and linestring overlaid with original "
@@ -3089,7 +3239,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1626
+#: reference_processing.xml:1691
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(\n"
@@ -3109,7 +3259,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1632
+#: reference_processing.xml:1697
 #, no-c-format
 msgid ""
 "-- same example but linestring orientation flipped\n"
@@ -3128,20 +3278,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1642
+#: reference_processing.xml:1707
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1652
+#: reference_processing.xml:1717
 #, no-c-format
 msgid "ST_Shift_Longitude"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1654
+#: reference_processing.xml:1719
 #, no-c-format
 msgid ""
 "<refpurpose>Reads every point/vertex in every component of every feature in "
@@ -3151,7 +3301,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1662
+#: reference_processing.xml:1727
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Shift_Longitude</function></funcdef> "
@@ -3159,7 +3309,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1672
+#: reference_processing.xml:1737
 #, no-c-format
 msgid ""
 "<para>Reads every point/vertex in every component of every feature in a "
@@ -3169,13 +3319,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1676
+#: reference_processing.xml:1741
 #, no-c-format
 msgid "This is only useful for data in long lat e.g. 4326 (WGS 84 long lat)"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1678
+#: reference_processing.xml:1743
 #, no-c-format
 msgid ""
 "Pre-1.3.4 bug prevented this from working for MULTIPOINT. 1.3.4+ works with "
@@ -3183,13 +3333,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1683
+#: reference_processing.xml:1748
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1692
+#: reference_processing.xml:1757
 #, no-c-format
 msgid ""
 "--3d points\n"
@@ -3211,19 +3361,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1698
+#: reference_processing.xml:1763
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_AsEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1704
+#: reference_processing.xml:1769
 #, no-c-format
 msgid "ST_Simplify"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1705
+#: reference_processing.xml:1770
 #, no-c-format
 msgid ""
 "Returns a \"simplified\" version of the given geometry using the Douglas-"
@@ -3231,7 +3381,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1711
+#: reference_processing.xml:1776
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Simplify</function></funcdef> "
@@ -3240,7 +3390,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1721
+#: reference_processing.xml:1786
 #, no-c-format
 msgid ""
 "Returns a \"simplified\" version of the given geometry using the Douglas-"
@@ -3251,7 +3401,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1728
+#: reference_processing.xml:1793
 #, no-c-format
 msgid ""
 "Note that returned geometry might loose its simplicity (see <xref linkend="
@@ -3259,7 +3409,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1730
+#: reference_processing.xml:1795
 #, no-c-format
 msgid ""
 "Note topology may not be preserved and may result in invalid geometries. Use "
@@ -3267,26 +3417,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1733
+#: reference_processing.xml:1797
 #, no-c-format
 msgid "Availability: 1.2.2"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1738
+#: reference_processing.xml:1802
 #, no-c-format
 msgid "A circle simplified too much becomes a triangle, medium an octagon,"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1739
+#: reference_processing.xml:1803
 #, no-c-format
 msgid ""
-"SELECT ST_Npoints(the_geom) As np_before, ST_NPoints(ST_Simplify"
-"(the_geom,0.1)) As np01_notbadcircle, ST_NPoints(ST_Simplify(the_geom,0.5)) "
-"As np05_notquitecircle,\n"
-"ST_NPoints(ST_Simplify(the_geom,1)) As np1_octagon, ST_NPoints(ST_Simplify"
-"(the_geom,10)) As np10_triangle,\n"
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_Simplify(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_Simplify(the_geom,0.5)) As np05_notquitecircle,\n"
+"ST_NPoints(ST_Simplify(the_geom,1)) As np1_octagon, "
+"ST_NPoints(ST_Simplify(the_geom,10)) As np10_triangle,\n"
 "(ST_Simplify(the_geom,100) is null) As  np100_geometrygoesaway\n"
 "FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;\n"
 "-result\n"
@@ -3299,19 +3449,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1743
+#: reference_processing.xml:1807
 #, no-c-format
-msgid ", <xref linkend=\"ST_SimplifyPreserveTopology\"/>"
+msgid ""
+", <xref linkend=\"ST_SimplifyPreserveTopology\"/>, Topology <xref linkend="
+"\"TP_ST_Simplify\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1749
+#: reference_processing.xml:1813
 #, no-c-format
 msgid "ST_SimplifyPreserveTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1750
+#: reference_processing.xml:1814
 #, no-c-format
 msgid ""
 "Returns a \"simplified\" version of the given geometry using the Douglas-"
@@ -3320,7 +3472,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1757
+#: reference_processing.xml:1821
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SimplifyPreserveTopology</function></funcdef> "
@@ -3329,31 +3481,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1767
+#: reference_processing.xml:1831
 #, no-c-format
 msgid ""
 "Returns a \"simplified\" version of the given geometry using the Douglas-"
 "Peucker algorithm. Will avoid creating derived geometries (polygons in "
-"particular) that are invalid. Will actually do something only with (multi)"
-"lines and (multi)polygons but you can safely call it with any kind of "
+"particular) that are invalid. Will actually do something only with "
+"(multi)lines and (multi)polygons but you can safely call it with any kind of "
 "geometry. Since simplification occurs on a object-by-object basis you can "
 "also feed a GeometryCollection to this function."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1776
+#: reference_processing.xml:1840
 #, no-c-format
 msgid "Requires GEOS 3.0.0+"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1777
+#: reference_processing.xml:1841
 #, no-c-format
 msgid "Availability: 1.3.3"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1782
+#: reference_processing.xml:1846
 #, no-c-format
 msgid ""
 "Same example as Simplify, but we see Preserve Topology prevents "
@@ -3361,12 +3513,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1783
+#: reference_processing.xml:1847
 #, no-c-format
 msgid ""
-"SELECT ST_Npoints(the_geom) As np_before, ST_NPoints"
-"(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, ST_NPoints"
-"(ST_SimplifyPreserveTopology(the_geom,0.5)) As np05_notquitecircle,\n"
+"SELECT ST_Npoints(the_geom) As np_before, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, "
+"ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.5)) As "
+"np05_notquitecircle,\n"
 "ST_NPoints(ST_SimplifyPreserveTopology(the_geom,1)) As np1_octagon, "
 "ST_NPoints(ST_SimplifyPreserveTopology(the_geom,10)) As np10_square,\n"
 "ST_NPoints(ST_SimplifyPreserveTopology(the_geom,100)) As  np100_stillsquare\n"
@@ -3382,19 +3535,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1793
+#: reference_processing.xml:1857
 #, no-c-format
 msgid "ST_Split"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1794
+#: reference_processing.xml:1858
 #, no-c-format
 msgid "Returns a collection of geometries resulting by splitting a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1799
+#: reference_processing.xml:1863
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Split</function></funcdef> "
@@ -3403,7 +3556,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1809
+#: reference_processing.xml:1873
 #, no-c-format
 msgid ""
 "The function supports splitting a line by point, a line by line, a polygon "
@@ -3411,7 +3564,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1813
+#: reference_processing.xml:1877
 #, no-c-format
 msgid ""
 "Think of this function as the opposite of ST_Union. Theoretically applying "
@@ -3420,25 +3573,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1824
+#: reference_processing.xml:1884
+#, no-c-format
+msgid ""
+"To improve the robustness of ST_Split it may be convenient to <xref linkend="
+"\"ST_Snap\"/> the input to the blade in advance using a very low tolerance. "
+"Otherwise the internally used coordinate grid may cause tolerance problems, "
+"where coordinates of input and blade do not fall onto each other and the "
+"input is not being split correctly (see <ulink url=\"http://trac.osgeo.org/"
+"postgis/ticket/2192\">#2192</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1889
 #, no-c-format
 msgid "Polygon Cut by Line"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1836 reference_processing.xml:1870
+#: reference_processing.xml:1901 reference_processing.xml:1935
 #, no-c-format
 msgid "Before Split"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1848 reference_processing.xml:1882
+#: reference_processing.xml:1913 reference_processing.xml:1947
 #, no-c-format
 msgid "After split"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1857
+#: reference_processing.xml:1922
 #, no-c-format
 msgid ""
 "-- this creates a geometry collection consisting of the 2 halves of the "
@@ -3468,13 +3633,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1858
+#: reference_processing.xml:1923
 #, no-c-format
 msgid "Multilinestring Cut by point"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1891
+#: reference_processing.xml:1956
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Split(mline, pt)) As wktcut\n"
@@ -3494,7 +3659,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1895
+#: reference_processing.xml:1960
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_BuildArea\"/>, <xref linkend=\"ST_Dump\"/>, <xref "
@@ -3502,13 +3667,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1901
+#: reference_processing.xml:1966
 #, no-c-format
 msgid "ST_SymDifference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1903
+#: reference_processing.xml:1968
 #, no-c-format
 msgid ""
 "Returns a geometry that represents the portions of A and B that do not "
@@ -3517,7 +3682,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1910
+#: reference_processing.xml:1975
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_SymDifference</function></funcdef> "
@@ -3526,7 +3691,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1921
+#: reference_processing.xml:1986
 #, no-c-format
 msgid ""
 "Returns a geometry that represents the portions of A and B that do not "
@@ -3536,25 +3701,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1931
+#: reference_processing.xml:1996
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.21"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1951
+#: reference_processing.xml:2016
 #, no-c-format
 msgid "The original linestrings shown together"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1963
+#: reference_processing.xml:2028
 #, no-c-format
 msgid "The symmetric difference of the two linestrings"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1972
+#: reference_processing.xml:2037
 #, no-c-format
 msgid ""
 "--Safe for 2d - symmetric difference of 2 linestrings\n"
@@ -3571,7 +3736,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1974
+#: reference_processing.xml:2039
 #, no-c-format
 msgid ""
 "--When used in 3d doesn't quite do the right thing\n"
@@ -3585,26 +3750,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1981
+#: reference_processing.xml:2046
 #, no-c-format
 msgid ", <xref linkend=\"ST_Intersection\"/>, <xref linkend=\"ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1988
+#: reference_processing.xml:2053
 #, no-c-format
 msgid "ST_Union"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1989
+#: reference_processing.xml:2054
 #, no-c-format
 msgid ""
 "Returns a geometry that represents the point set union of the Geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:1994
+#: reference_processing.xml:2059
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> "
@@ -3619,7 +3784,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2013
+#: reference_processing.xml:2078
 #, no-c-format
 msgid ""
 "Output type can be a MULTI*, single geometry, or Geometry Collection. Comes "
@@ -3630,26 +3795,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2017
+#: reference_processing.xml:2082
 #, no-c-format
 msgid ""
 "Aggregate version: This function returns a MULTI geometry or NON-MULTI "
 "geometry from a set of geometries. The ST_Union() function is an \"aggregate"
 "\" function in the terminology of PostgreSQL. That means that it operates on "
-"rows of data, in the same way the SUM() and AVG() functions do."
+"rows of data, in the same way the SUM() and AVG() functions do and like most "
+"aggregates, it also ignores NULL geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2023
+#: reference_processing.xml:2088
 #, no-c-format
 msgid ""
 "Non-Aggregate version: This function returns a geometry being a union of two "
 "input geometries. Output type can be a MULTI*, NON-MULTI or "
-"GEOMETRYCOLLECTION."
+"GEOMETRYCOLLECTION. If any are NULL, then NULL is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2027
+#: reference_processing.xml:2092
 #, no-c-format
 msgid ""
 "ST_Collect and ST_Union are often interchangeable. ST_Union is in general "
@@ -3659,7 +3825,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2033
+#: reference_processing.xml:2098
 #, no-c-format
 msgid ""
 "NOTE: this function was formerly called GeomUnion(), which was renamed from "
@@ -3667,7 +3833,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2036
+#: reference_processing.xml:2101
 #, no-c-format
 msgid ""
 "Availability: 1.4.0 - ST_Union was enhanced. ST_Union(geomarray) was "
@@ -3679,13 +3845,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2042
+#: reference_processing.xml:2107
 #, no-c-format
 msgid "Aggregate version is not explicitly defined in OGC SPEC."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2043
+#: reference_processing.xml:2108
 #, no-c-format
 msgid ""
 "&sqlmm_compliant; SQL-MM 3: 5.1.19 the z-index (elevation) when polygons are "
@@ -3693,13 +3859,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2049
+#: reference_processing.xml:2114
 #, no-c-format
 msgid "Aggregate example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:2050
+#: reference_processing.xml:2115
 #, no-c-format
 msgid ""
 "SELECT stusps,\n"
@@ -3709,7 +3875,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:2052
+#: reference_processing.xml:2117
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
@@ -3772,19 +3938,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:2065
+#: reference_processing.xml:2130
 #, no-c-format
 msgid "ST_UnaryUnion"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:2067
+#: reference_processing.xml:2132
 #, no-c-format
 msgid "Like ST_Union, but working at the geometry component level."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:2072
+#: reference_processing.xml:2137
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_UnaryUnion</function></funcdef> "
@@ -3792,7 +3958,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2083
+#: reference_processing.xml:2148
 #, no-c-format
 msgid ""
 "Unlike ST_Union, ST_UnaryUnion does dissolve boundaries between components "
@@ -3803,7 +3969,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2093
+#: reference_processing.xml:2158
 #, no-c-format
 msgid ""
 "You may use this function to node a set of linestrings. You may mix "
@@ -3811,3 +3977,11 @@ msgid ""
 "want to dissolve to be nice on both memory size and CPU time, finding the "
 "balance between ST_Union and ST_MemUnion."
 msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:2176
+#, no-c-format
+msgid ""
+", <xref linkend=\"ST_MemUnion\"/>, <xref linkend=\"ST_Collect\"/>, <xref "
+"linkend=\"ST_Node\"/>"
+msgstr ""
diff --git a/doc/po/pt_BR/reference_raster.xml.po b/doc/po/pt_BR/reference_raster.xml.po
index df568ea..cf3ea9b 100644
--- a/doc/po/pt_BR/reference_raster.xml.po
+++ b/doc/po/pt_BR/reference_raster.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -126,62 +126,75 @@ msgstr ""
 #. Tag: title
 #: reference_raster.xml:30 reference_raster.xml:49 reference_raster.xml:121
 #: reference_raster.xml:171 reference_raster.xml:211 reference_raster.xml:257
-#: reference_raster.xml:439 reference_raster.xml:613 reference_raster.xml:652
-#: reference_raster.xml:689 reference_raster.xml:730 reference_raster.xml:820
-#: reference_raster.xml:1022 reference_raster.xml:1109
-#: reference_raster.xml:1203 reference_raster.xml:1248
-#: reference_raster.xml:1287 reference_raster.xml:1321
-#: reference_raster.xml:1356 reference_raster.xml:1390
-#: reference_raster.xml:1435 reference_raster.xml:1489
-#: reference_raster.xml:1526 reference_raster.xml:1566
-#: reference_raster.xml:1621 reference_raster.xml:1673
-#: reference_raster.xml:1717 reference_raster.xml:1752
-#: reference_raster.xml:1788 reference_raster.xml:1824
-#: reference_raster.xml:1859 reference_raster.xml:1893
-#: reference_raster.xml:1927 reference_raster.xml:1971
-#: reference_raster.xml:2033 reference_raster.xml:2087
-#: reference_raster.xml:2122 reference_raster.xml:2162
-#: reference_raster.xml:2209 reference_raster.xml:2251
-#: reference_raster.xml:2305 reference_raster.xml:2340
-#: reference_raster.xml:2415 reference_raster.xml:2458
-#: reference_raster.xml:2504 reference_raster.xml:2556
-#: reference_raster.xml:2599 reference_raster.xml:2644
-#: reference_raster.xml:2687 reference_raster.xml:2753
-#: reference_raster.xml:2829 reference_raster.xml:2916
-#: reference_raster.xml:3004 reference_raster.xml:3081
-#: reference_raster.xml:3215 reference_raster.xml:3254
-#: reference_raster.xml:3293 reference_raster.xml:3336
-#: reference_raster.xml:3383 reference_raster.xml:3427
-#: reference_raster.xml:3465 reference_raster.xml:3540
-#: reference_raster.xml:3595 reference_raster.xml:3657
-#: reference_raster.xml:3735 reference_raster.xml:3800
-#: reference_raster.xml:3887 reference_raster.xml:3926
-#: reference_raster.xml:3996 reference_raster.xml:4102
-#: reference_raster.xml:4222 reference_raster.xml:4283
-#: reference_raster.xml:4438 reference_raster.xml:4480
-#: reference_raster.xml:4517 reference_raster.xml:4602
-#: reference_raster.xml:4693 reference_raster.xml:4781
-#: reference_raster.xml:4842 reference_raster.xml:4900
-#: reference_raster.xml:5031 reference_raster.xml:5093
-#: reference_raster.xml:5138 reference_raster.xml:5183
-#: reference_raster.xml:5222 reference_raster.xml:5287
-#: reference_raster.xml:5401 reference_raster.xml:5513
-#: reference_raster.xml:5651 reference_raster.xml:5747
-#: reference_raster.xml:5984 reference_raster.xml:6080
-#: reference_raster.xml:6172 reference_raster.xml:6284
-#: reference_raster.xml:6334 reference_raster.xml:6419
-#: reference_raster.xml:6480 reference_raster.xml:6530
-#: reference_raster.xml:6580 reference_raster.xml:6630
-#: reference_raster.xml:6679 reference_raster.xml:6729
-#: reference_raster.xml:6779 reference_raster.xml:6829
-#: reference_raster.xml:6893 reference_raster.xml:6956
-#: reference_raster.xml:7000 reference_raster.xml:7045
-#: reference_raster.xml:7112 reference_raster.xml:7201
-#: reference_raster.xml:7286 reference_raster.xml:7367
-#: reference_raster.xml:7448 reference_raster.xml:7577
-#: reference_raster.xml:7661 reference_raster.xml:7741
-#: reference_raster.xml:7860 reference_raster.xml:7932
-#: reference_raster.xml:8029 reference_raster.xml:8122
+#: reference_raster.xml:354 reference_raster.xml:536 reference_raster.xml:710
+#: reference_raster.xml:777 reference_raster.xml:846 reference_raster.xml:889
+#: reference_raster.xml:924 reference_raster.xml:961 reference_raster.xml:1002
+#: reference_raster.xml:1058 reference_raster.xml:1103
+#: reference_raster.xml:1209 reference_raster.xml:1418
+#: reference_raster.xml:1505 reference_raster.xml:1601
+#: reference_raster.xml:1668 reference_raster.xml:1733
+#: reference_raster.xml:1775 reference_raster.xml:1825
+#: reference_raster.xml:1864 reference_raster.xml:1898
+#: reference_raster.xml:1935 reference_raster.xml:1978
+#: reference_raster.xml:2013 reference_raster.xml:2047
+#: reference_raster.xml:2097 reference_raster.xml:2151
+#: reference_raster.xml:2188 reference_raster.xml:2228
+#: reference_raster.xml:2283 reference_raster.xml:2338
+#: reference_raster.xml:2384 reference_raster.xml:2419
+#: reference_raster.xml:2455 reference_raster.xml:2491
+#: reference_raster.xml:2526 reference_raster.xml:2565
+#: reference_raster.xml:2599 reference_raster.xml:2633
+#: reference_raster.xml:2677 reference_raster.xml:2739
+#: reference_raster.xml:2794 reference_raster.xml:2835
+#: reference_raster.xml:2882 reference_raster.xml:2924
+#: reference_raster.xml:2975 reference_raster.xml:3010
+#: reference_raster.xml:3085 reference_raster.xml:3128
+#: reference_raster.xml:3174 reference_raster.xml:3232
+#: reference_raster.xml:3275 reference_raster.xml:3326
+#: reference_raster.xml:3369 reference_raster.xml:3441
+#: reference_raster.xml:3528 reference_raster.xml:3615
+#: reference_raster.xml:3703 reference_raster.xml:3788
+#: reference_raster.xml:3914 reference_raster.xml:4010
+#: reference_raster.xml:4062 reference_raster.xml:4110
+#: reference_raster.xml:4153 reference_raster.xml:4200
+#: reference_raster.xml:4244 reference_raster.xml:4282
+#: reference_raster.xml:4357 reference_raster.xml:4426
+#: reference_raster.xml:4494 reference_raster.xml:4571
+#: reference_raster.xml:4643 reference_raster.xml:4722
+#: reference_raster.xml:4830 reference_raster.xml:4865
+#: reference_raster.xml:4932 reference_raster.xml:4997
+#: reference_raster.xml:5110 reference_raster.xml:5231
+#: reference_raster.xml:5297 reference_raster.xml:5376
+#: reference_raster.xml:5522 reference_raster.xml:5565
+#: reference_raster.xml:5611 reference_raster.xml:5696
+#: reference_raster.xml:5787 reference_raster.xml:5875
+#: reference_raster.xml:5986 reference_raster.xml:6179
+#: reference_raster.xml:6455 reference_raster.xml:6599
+#: reference_raster.xml:6836 reference_raster.xml:7042
+#: reference_raster.xml:7166 reference_raster.xml:7492
+#: reference_raster.xml:7610 reference_raster.xml:7723
+#: reference_raster.xml:7865 reference_raster.xml:7951
+#: reference_raster.xml:8023 reference_raster.xml:8087
+#: reference_raster.xml:8158 reference_raster.xml:8233
+#: reference_raster.xml:8316 reference_raster.xml:8387
+#: reference_raster.xml:8443 reference_raster.xml:8518
+#: reference_raster.xml:8589 reference_raster.xml:8673
+#: reference_raster.xml:8765 reference_raster.xml:8847
+#: reference_raster.xml:8901 reference_raster.xml:8975
+#: reference_raster.xml:9023 reference_raster.xml:9075
+#: reference_raster.xml:9117 reference_raster.xml:9165
+#: reference_raster.xml:9216 reference_raster.xml:9264
+#: reference_raster.xml:9306 reference_raster.xml:9380
+#: reference_raster.xml:9425 reference_raster.xml:9470
+#: reference_raster.xml:9515 reference_raster.xml:9584
+#: reference_raster.xml:9631 reference_raster.xml:9704
+#: reference_raster.xml:9772 reference_raster.xml:9861
+#: reference_raster.xml:9946 reference_raster.xml:10027
+#: reference_raster.xml:10108 reference_raster.xml:10237
+#: reference_raster.xml:10321 reference_raster.xml:10401
+#: reference_raster.xml:10520 reference_raster.xml:10567
+#: reference_raster.xml:10639 reference_raster.xml:10736
+#: reference_raster.xml:10829
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -199,61 +212,73 @@ msgstr ""
 
 #. Tag: title
 #: reference_raster.xml:37 reference_raster.xml:107 reference_raster.xml:157
-#: reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:292
-#: reference_raster.xml:487 reference_raster.xml:628 reference_raster.xml:664
-#: reference_raster.xml:702 reference_raster.xml:750 reference_raster.xml:857
-#: reference_raster.xml:1074 reference_raster.xml:1163
-#: reference_raster.xml:1223 reference_raster.xml:1266
-#: reference_raster.xml:1300 reference_raster.xml:1335
-#: reference_raster.xml:1369 reference_raster.xml:1413
-#: reference_raster.xml:1468 reference_raster.xml:1505
-#: reference_raster.xml:1543 reference_raster.xml:1588
-#: reference_raster.xml:1644 reference_raster.xml:1696
-#: reference_raster.xml:1731 reference_raster.xml:1767
-#: reference_raster.xml:1803 reference_raster.xml:1838
-#: reference_raster.xml:1872 reference_raster.xml:1906
-#: reference_raster.xml:1941 reference_raster.xml:1991
-#: reference_raster.xml:2047 reference_raster.xml:2101
-#: reference_raster.xml:2137 reference_raster.xml:2187
-#: reference_raster.xml:2222 reference_raster.xml:2280
-#: reference_raster.xml:2318 reference_raster.xml:2393
-#: reference_raster.xml:2430 reference_raster.xml:2472
-#: reference_raster.xml:2524 reference_raster.xml:2567
-#: reference_raster.xml:2612 reference_raster.xml:2655
-#: reference_raster.xml:2700 reference_raster.xml:2775
-#: reference_raster.xml:2854 reference_raster.xml:2948
-#: reference_raster.xml:3019 reference_raster.xml:3138
-#: reference_raster.xml:3271 reference_raster.xml:3306
-#: reference_raster.xml:3355 reference_raster.xml:3400
-#: reference_raster.xml:3440 reference_raster.xml:3478
-#: reference_raster.xml:3560 reference_raster.xml:3622
-#: reference_raster.xml:3685 reference_raster.xml:3764
-#: reference_raster.xml:3852 reference_raster.xml:3900
-#: reference_raster.xml:3949 reference_raster.xml:4010
-#: reference_raster.xml:4137 reference_raster.xml:4237
-#: reference_raster.xml:4311 reference_raster.xml:4456
-#: reference_raster.xml:4556 reference_raster.xml:4647
-#: reference_raster.xml:4738 reference_raster.xml:4818
-#: reference_raster.xml:4860 reference_raster.xml:5008
-#: reference_raster.xml:5070 reference_raster.xml:5117
-#: reference_raster.xml:5157 reference_raster.xml:5198
-#: reference_raster.xml:5263 reference_raster.xml:5328
-#: reference_raster.xml:5440 reference_raster.xml:5612
-#: reference_raster.xml:5705 reference_raster.xml:5910
-#: reference_raster.xml:6042 reference_raster.xml:6142
-#: reference_raster.xml:6260 reference_raster.xml:6295
-#: reference_raster.xml:6369 reference_raster.xml:6449
-#: reference_raster.xml:6499 reference_raster.xml:6549
-#: reference_raster.xml:6599 reference_raster.xml:6649
-#: reference_raster.xml:6698 reference_raster.xml:6748
-#: reference_raster.xml:6798 reference_raster.xml:6867
-#: reference_raster.xml:6916 reference_raster.xml:7147
-#: reference_raster.xml:7232 reference_raster.xml:7313
-#: reference_raster.xml:7394 reference_raster.xml:7478
-#: reference_raster.xml:7607 reference_raster.xml:7688
-#: reference_raster.xml:7768 reference_raster.xml:7881
-#: reference_raster.xml:7965 reference_raster.xml:8060
-#: reference_raster.xml:8153
+#: reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:340
+#: reference_raster.xml:389 reference_raster.xml:584 reference_raster.xml:725
+#: reference_raster.xml:803 reference_raster.xml:863 reference_raster.xml:899
+#: reference_raster.xml:936 reference_raster.xml:974 reference_raster.xml:1022
+#: reference_raster.xml:1073 reference_raster.xml:1123
+#: reference_raster.xml:1253 reference_raster.xml:1470
+#: reference_raster.xml:1560 reference_raster.xml:1621
+#: reference_raster.xml:1697 reference_raster.xml:1748
+#: reference_raster.xml:1796 reference_raster.xml:1843
+#: reference_raster.xml:1877 reference_raster.xml:1913
+#: reference_raster.xml:1956 reference_raster.xml:1992
+#: reference_raster.xml:2026 reference_raster.xml:2070
+#: reference_raster.xml:2130 reference_raster.xml:2167
+#: reference_raster.xml:2205 reference_raster.xml:2250
+#: reference_raster.xml:2309 reference_raster.xml:2363
+#: reference_raster.xml:2398 reference_raster.xml:2434
+#: reference_raster.xml:2470 reference_raster.xml:2505
+#: reference_raster.xml:2539 reference_raster.xml:2578
+#: reference_raster.xml:2612 reference_raster.xml:2647
+#: reference_raster.xml:2697 reference_raster.xml:2754
+#: reference_raster.xml:2809 reference_raster.xml:2860
+#: reference_raster.xml:2895 reference_raster.xml:2950
+#: reference_raster.xml:2988 reference_raster.xml:3063
+#: reference_raster.xml:3100 reference_raster.xml:3142
+#: reference_raster.xml:3200 reference_raster.xml:3243
+#: reference_raster.xml:3294 reference_raster.xml:3337
+#: reference_raster.xml:3388 reference_raster.xml:3463
+#: reference_raster.xml:3553 reference_raster.xml:3647
+#: reference_raster.xml:3718 reference_raster.xml:3867
+#: reference_raster.xml:3932 reference_raster.xml:4088
+#: reference_raster.xml:4123 reference_raster.xml:4172
+#: reference_raster.xml:4217 reference_raster.xml:4257
+#: reference_raster.xml:4295 reference_raster.xml:4387
+#: reference_raster.xml:4452 reference_raster.xml:4521
+#: reference_raster.xml:4599 reference_raster.xml:4673
+#: reference_raster.xml:4795 reference_raster.xml:4843
+#: reference_raster.xml:4884 reference_raster.xml:4953
+#: reference_raster.xml:5014 reference_raster.xml:5145
+#: reference_raster.xml:5246 reference_raster.xml:5333
+#: reference_raster.xml:5393 reference_raster.xml:5540
+#: reference_raster.xml:5650 reference_raster.xml:5741
+#: reference_raster.xml:5832 reference_raster.xml:5912
+#: reference_raster.xml:6142 reference_raster.xml:6376
+#: reference_raster.xml:6520 reference_raster.xml:6767
+#: reference_raster.xml:7003 reference_raster.xml:7116
+#: reference_raster.xml:7408 reference_raster.xml:7567
+#: reference_raster.xml:7690 reference_raster.xml:7823
+#: reference_raster.xml:7894 reference_raster.xml:7982
+#: reference_raster.xml:8055 reference_raster.xml:8125
+#: reference_raster.xml:8194 reference_raster.xml:8276
+#: reference_raster.xml:8355 reference_raster.xml:8410
+#: reference_raster.xml:8479 reference_raster.xml:8550
+#: reference_raster.xml:8625 reference_raster.xml:8718
+#: reference_raster.xml:8815 reference_raster.xml:8858
+#: reference_raster.xml:8943 reference_raster.xml:8991
+#: reference_raster.xml:9042 reference_raster.xml:9092
+#: reference_raster.xml:9137 reference_raster.xml:9190
+#: reference_raster.xml:9236 reference_raster.xml:9279
+#: reference_raster.xml:9318 reference_raster.xml:9529
+#: reference_raster.xml:9597 reference_raster.xml:9650
+#: reference_raster.xml:9716 reference_raster.xml:9807
+#: reference_raster.xml:9892 reference_raster.xml:9973
+#: reference_raster.xml:10054 reference_raster.xml:10138
+#: reference_raster.xml:10267 reference_raster.xml:10348
+#: reference_raster.xml:10428 reference_raster.xml:10541
+#: reference_raster.xml:10585 reference_raster.xml:10672
+#: reference_raster.xml:10767 reference_raster.xml:10860
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -370,7 +395,7 @@ msgid "The raster in question/"
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:140 reference_raster.xml:263
+#: reference_raster.xml:140 reference_raster.xml:360
 #, no-c-format
 msgid "<parameter>nband </parameter> <type>integer</type>"
 msgstr ""
@@ -577,20 +602,120 @@ msgstr ""
 #. Tag: refname
 #: reference_raster.xml:252
 #, no-c-format
-msgid "unionarg"
+msgid "summarystats"
 msgstr ""
 
 #. Tag: refpurpose
 #: reference_raster.xml:253
 #, no-c-format
 msgid ""
+"A composite type returned by the ST_SummaryStats and ST_SummaryStatsAgg "
+"functions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:258
+#, no-c-format
+msgid ""
+"A composite type returned by the <xref linkend=\"RT_ST_SummaryStats\"/> and "
+"<xref linkend=\"RT_ST_SummaryStatsAgg\"/> functions."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:263
+#, no-c-format
+msgid "<parameter>count </parameter> <type>integer</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:268
+#, no-c-format
+msgid "Number of pixels counted for the summary statistics."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:275
+#, no-c-format
+msgid "<parameter>sum </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:280
+#, no-c-format
+msgid "Sum of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:287
+#, no-c-format
+msgid "<parameter>mean </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:292
+#, no-c-format
+msgid "Arithmetic mean of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:299
+#, no-c-format
+msgid "<parameter>stddev </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:304
+#, no-c-format
+msgid "Standard deviation of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:311
+#, no-c-format
+msgid "<parameter>min </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:316
+#, no-c-format
+msgid "Minimum value of counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:323
+#, no-c-format
+msgid "<parameter>max </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:328
+#, no-c-format
+msgid "Maximum value of counted pixel values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:341
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:349
+#, no-c-format
+msgid "unionarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:350
+#, no-c-format
+msgid ""
 "<refpurpose>A composite type used as input into the ST_Union function "
 "defining the bands to be processed and behavior of the UNION operation.</"
 "refpurpose>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:258
+#: reference_raster.xml:355
 #, no-c-format
 msgid ""
 "<para>A composite type used as input into the ST_Union function defining the "
@@ -598,19 +723,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:268
+#: reference_raster.xml:365
 #, no-c-format
 msgid "1-based value indicating the band of each input raster to be processed."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:275
+#: reference_raster.xml:372
 #, no-c-format
 msgid "<parameter>uniontype </parameter> <type>text</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:280
+#: reference_raster.xml:377
 #, no-c-format
 msgid ""
 "Type of UNION operation. One of defined types as described in <xref linkend="
@@ -618,19 +743,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:302
+#: reference_raster.xml:399
 #, no-c-format
 msgid "Raster Management"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:305
+#: reference_raster.xml:402
 #, no-c-format
 msgid "AddRasterConstraints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:307
+#: reference_raster.xml:404
 #, no-c-format
 msgid ""
 "Adds raster constraints to a loaded raster table for a specific column that "
@@ -641,7 +766,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:311
+#: reference_raster.xml:408
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>AddRasterConstraints</function></"
@@ -686,7 +811,7 @@ msgid ""
 "<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>boolean </type> <parameter>regular_blocking=true</parameter></"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
 "paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
 "\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
@@ -698,7 +823,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:441
+#: reference_raster.xml:538
 #, no-c-format
 msgid ""
 "Generates constraints on a raster column that are used to display "
@@ -709,7 +834,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:446
+#: reference_raster.xml:543
 #, no-c-format
 msgid ""
 "<varname>raster2pgsql</varname> loader uses this function to register raster "
@@ -717,7 +842,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:447
+#: reference_raster.xml:544
 #, no-c-format
 msgid ""
 "Valid constraint names to pass in: refer to <xref linkend=\"RT_Raster_Columns"
@@ -725,27 +850,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:449
+#: reference_raster.xml:546
 #, no-c-format
 msgid "<varname>blocksize</varname> sets both X and Y blocksize"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:450
+#: reference_raster.xml:547
 #, no-c-format
 msgid ""
 "<varname>blocksize_x</varname> sets X tile (width in pixels of each tile)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:451
+#: reference_raster.xml:548
 #, no-c-format
 msgid ""
 "<varname>blocksize_y</varname> sets Y tile (height in pixels of each tile)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:452
+#: reference_raster.xml:549
 #, no-c-format
 msgid ""
 "<varname>extent</varname> computes extent of whole table and applys "
@@ -753,13 +878,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:454
+#: reference_raster.xml:551
 #, no-c-format
 msgid "<varname>num_bands</varname> number of bands"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:455
+#: reference_raster.xml:552
 #, no-c-format
 msgid ""
 "<varname>pixel_types</varname> reads array of pixel types for each band "
@@ -767,15 +892,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:456
+#: reference_raster.xml:553
 #, no-c-format
 msgid ""
-"<varname>regular_blocking</varname> apply informational flag to denote all "
-"tiles are regularly blocked"
+"<varname>regular_blocking</varname> sets spatially unique (no two rasters "
+"can be spatially the same) and coverage tile (raster is aligned to a "
+"coverage) constraints"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:457
+#: reference_raster.xml:554
 #, no-c-format
 msgid ""
 "<varname>same_alignment</varname> ensures they all have same alignment "
@@ -783,19 +909,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:458
+#: reference_raster.xml:555
 #, no-c-format
 msgid "<varname>srid</varname> ensures all have same srid"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:459
+#: reference_raster.xml:556
 #, no-c-format
 msgid "More -- any listed as inputs into the above functions"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:462
+#: reference_raster.xml:559
 #, no-c-format
 msgid ""
 "This function infers the constraints from the data already present in the "
@@ -804,7 +930,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:467
+#: reference_raster.xml:564
 #, no-c-format
 msgid ""
 "If you need to load more data in your tables after you have already applied "
@@ -813,34 +939,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:471 reference_raster.xml:620 reference_raster.xml:1114
-#: reference_raster.xml:2126 reference_raster.xml:2259
-#: reference_raster.xml:2419 reference_raster.xml:2462
-#: reference_raster.xml:2514 reference_raster.xml:3934
-#: reference_raster.xml:4000 reference_raster.xml:4123
-#: reference_raster.xml:4226 reference_raster.xml:4290
-#: reference_raster.xml:4443 reference_raster.xml:4908
-#: reference_raster.xml:5187 reference_raster.xml:5252
-#: reference_raster.xml:5317 reference_raster.xml:5663
-#: reference_raster.xml:5800 reference_raster.xml:6002
-#: reference_raster.xml:6099 reference_raster.xml:6219
-#: reference_raster.xml:6343 reference_raster.xml:6423
-#: reference_raster.xml:6488 reference_raster.xml:6538
-#: reference_raster.xml:6588 reference_raster.xml:6638
-#: reference_raster.xml:6687 reference_raster.xml:6737
-#: reference_raster.xml:6787 reference_raster.xml:7870
+#: reference_raster.xml:568 reference_raster.xml:717 reference_raster.xml:793
+#: reference_raster.xml:859 reference_raster.xml:1511
+#: reference_raster.xml:1902 reference_raster.xml:2932
+#: reference_raster.xml:3089 reference_raster.xml:3132
+#: reference_raster.xml:3189 reference_raster.xml:4873
+#: reference_raster.xml:4936 reference_raster.xml:5131
+#: reference_raster.xml:5235 reference_raster.xml:5305
+#: reference_raster.xml:5527 reference_raster.xml:6000
+#: reference_raster.xml:7062 reference_raster.xml:7261
+#: reference_raster.xml:7525 reference_raster.xml:7644
+#: reference_raster.xml:7773 reference_raster.xml:7871
+#: reference_raster.xml:7959 reference_raster.xml:8043
+#: reference_raster.xml:8182 reference_raster.xml:8257
+#: reference_raster.xml:8344 reference_raster.xml:8467
+#: reference_raster.xml:8538 reference_raster.xml:8613
+#: reference_raster.xml:8699 reference_raster.xml:8795
+#: reference_raster.xml:8923 reference_raster.xml:9387
+#: reference_raster.xml:9639 reference_raster.xml:9711
+#: reference_raster.xml:10530
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:475
+#: reference_raster.xml:572
 #, no-c-format
 msgid "Examples: Apply all possible constraints on column based on data"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:477
+#: reference_raster.xml:574
 #, no-c-format
 msgid ""
 "CREATE TABLE myrasters(rid SERIAL primary key, rast raster);\n"
@@ -866,13 +995,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:481
+#: reference_raster.xml:578
 #, no-c-format
 msgid "Examples: Apply single constraint"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:483
+#: reference_raster.xml:580
 #, no-c-format
 msgid ""
 "CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);\n"
@@ -884,17 +1013,12 @@ msgid ""
 "name,'regular_blocking', 'blocksize');\n"
 "-- get notice--\n"
 "NOTICE:  Adding regular blocking constraint\n"
-"INFO:  The regular_blocking constraint is just a flag indicating that the "
-"column \"rast\" is regularly blocked.  As no function exist yet to assert "
-"that a raster column is regularly blocked, it is up to the end-user to "
-"ensure that the column is truly regularly blocked.\n"
-"CONTEXT:  PL/pgSQL function \"addrasterconstraints\" line 85 at assignment\n"
 "NOTICE:  Adding blocksize-X constraint\n"
 "NOTICE:  Adding blocksize-Y constraint"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:489
+#: reference_raster.xml:586
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/"
@@ -903,13 +1027,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:495
+#: reference_raster.xml:592
 #, no-c-format
 msgid "DropRasterConstraints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:497
+#: reference_raster.xml:594
 #, no-c-format
 msgid ""
 "Drops PostGIS raster constraints that refer to a raster table column. Useful "
@@ -917,7 +1041,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:501
+#: reference_raster.xml:598
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>DropRasterConstraints</function></"
@@ -951,7 +1075,7 @@ msgid ""
 "<paramdef choice=\"opt\"><type>boolean </type> <parameter>blocksize_y=true</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>same_alignment=true</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>boolean </type> <parameter>regular_blocking=true</parameter></"
+"\"><type>boolean </type> <parameter>regular_blocking=false</parameter></"
 "paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>num_bands=true</parameter></paramdef> <paramdef choice=\"opt"
 "\"><type>boolean </type> <parameter>pixel_types=true</parameter></paramdef> "
@@ -968,7 +1092,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:614
+#: reference_raster.xml:711
 #, no-c-format
 msgid ""
 "Drops PostGIS raster constraints that refer to a raster table column that "
@@ -978,19 +1102,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:616
+#: reference_raster.xml:713
 #, no-c-format
 msgid "To drop a raster table use the standard"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:616
+#: reference_raster.xml:713
 #, no-c-format
 msgid "DROP TABLE mytable"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:617
+#: reference_raster.xml:714
 #, no-c-format
 msgid ""
 "To drop just a raster column and leave the rest of the table, use standard "
@@ -998,13 +1122,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:617
+#: reference_raster.xml:714
 #, no-c-format
 msgid "ALTER TABLE mytable DROP COLUMN rast"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:618
+#: reference_raster.xml:715
 #, no-c-format
 msgid ""
 "the table will disappear from the <varname>raster_columns</varname> catalog "
@@ -1015,57 +1139,64 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:623 reference_raster.xml:658 reference_raster.xml:696
-#: reference_raster.xml:1118 reference_raster.xml:1216
-#: reference_raster.xml:1260 reference_raster.xml:1293
-#: reference_raster.xml:1328 reference_raster.xml:1362
-#: reference_raster.xml:1497 reference_raster.xml:1535
-#: reference_raster.xml:1578 reference_raster.xml:1634
-#: reference_raster.xml:1686 reference_raster.xml:1724
-#: reference_raster.xml:1759 reference_raster.xml:1795
-#: reference_raster.xml:1831 reference_raster.xml:1865
-#: reference_raster.xml:1899 reference_raster.xml:1933
-#: reference_raster.xml:1984 reference_raster.xml:2040
-#: reference_raster.xml:2094 reference_raster.xml:2130
-#: reference_raster.xml:2180 reference_raster.xml:2215
-#: reference_raster.xml:2273 reference_raster.xml:2311
-#: reference_raster.xml:2386 reference_raster.xml:2423
-#: reference_raster.xml:2467 reference_raster.xml:2519
-#: reference_raster.xml:2562 reference_raster.xml:2607
-#: reference_raster.xml:2650 reference_raster.xml:2695
-#: reference_raster.xml:2762 reference_raster.xml:2845
-#: reference_raster.xml:2937 reference_raster.xml:3012
-#: reference_raster.xml:3224 reference_raster.xml:3265
-#: reference_raster.xml:3299 reference_raster.xml:3347
-#: reference_raster.xml:3390 reference_raster.xml:3471
-#: reference_raster.xml:3554 reference_raster.xml:3615
-#: reference_raster.xml:3677 reference_raster.xml:3756
-#: reference_raster.xml:3811 reference_raster.xml:3893
-#: reference_raster.xml:3942 reference_raster.xml:4004
-#: reference_raster.xml:4230 reference_raster.xml:4447
-#: reference_raster.xml:4490 reference_raster.xml:4730
-#: reference_raster.xml:4853 reference_raster.xml:5043
-#: reference_raster.xml:5113 reference_raster.xml:5150
-#: reference_raster.xml:5667 reference_raster.xml:6006
-#: reference_raster.xml:6226 reference_raster.xml:6291
-#: reference_raster.xml:6492 reference_raster.xml:6542
-#: reference_raster.xml:6592 reference_raster.xml:6642
-#: reference_raster.xml:6691 reference_raster.xml:6741
-#: reference_raster.xml:6791 reference_raster.xml:6862
-#: reference_raster.xml:6911 reference_raster.xml:6966
-#: reference_raster.xml:7011 reference_raster.xml:7056
-#: reference_raster.xml:7140 reference_raster.xml:7227
-#: reference_raster.xml:7308 reference_raster.xml:7389
-#: reference_raster.xml:7470 reference_raster.xml:7602
-#: reference_raster.xml:7683 reference_raster.xml:7763
-#: reference_raster.xml:7960 reference_raster.xml:8055
-#: reference_raster.xml:8148
+#: reference_raster.xml:720 reference_raster.xml:797 reference_raster.xml:894
+#: reference_raster.xml:930 reference_raster.xml:968 reference_raster.xml:1515
+#: reference_raster.xml:1614 reference_raster.xml:1688
+#: reference_raster.xml:1789 reference_raster.xml:1837
+#: reference_raster.xml:1870 reference_raster.xml:1906
+#: reference_raster.xml:1949 reference_raster.xml:1985
+#: reference_raster.xml:2019 reference_raster.xml:2159
+#: reference_raster.xml:2197 reference_raster.xml:2240
+#: reference_raster.xml:2299 reference_raster.xml:2353
+#: reference_raster.xml:2391 reference_raster.xml:2426
+#: reference_raster.xml:2462 reference_raster.xml:2498
+#: reference_raster.xml:2534 reference_raster.xml:2571
+#: reference_raster.xml:2605 reference_raster.xml:2639
+#: reference_raster.xml:2690 reference_raster.xml:2747
+#: reference_raster.xml:2802 reference_raster.xml:2853
+#: reference_raster.xml:2888 reference_raster.xml:2943
+#: reference_raster.xml:2981 reference_raster.xml:3056
+#: reference_raster.xml:3093 reference_raster.xml:3137
+#: reference_raster.xml:3195 reference_raster.xml:3238
+#: reference_raster.xml:3289 reference_raster.xml:3332
+#: reference_raster.xml:3383 reference_raster.xml:3450
+#: reference_raster.xml:3544 reference_raster.xml:3636
+#: reference_raster.xml:3711 reference_raster.xml:3924
+#: reference_raster.xml:4019 reference_raster.xml:4082
+#: reference_raster.xml:4116 reference_raster.xml:4164
+#: reference_raster.xml:4207 reference_raster.xml:4288
+#: reference_raster.xml:4381 reference_raster.xml:4445
+#: reference_raster.xml:4513 reference_raster.xml:4591
+#: reference_raster.xml:4668 reference_raster.xml:4747
+#: reference_raster.xml:4836 reference_raster.xml:4877
+#: reference_raster.xml:4947 reference_raster.xml:5009
+#: reference_raster.xml:5239 reference_raster.xml:5388
+#: reference_raster.xml:5531 reference_raster.xml:5584
+#: reference_raster.xml:5824 reference_raster.xml:6265
+#: reference_raster.xml:7066 reference_raster.xml:7529
+#: reference_raster.xml:7777 reference_raster.xml:8048
+#: reference_raster.xml:8120 reference_raster.xml:8187
+#: reference_raster.xml:8349 reference_raster.xml:8405
+#: reference_raster.xml:8472 reference_raster.xml:8543
+#: reference_raster.xml:8618 reference_raster.xml:8853
+#: reference_raster.xml:8986 reference_raster.xml:9037
+#: reference_raster.xml:9086 reference_raster.xml:9129
+#: reference_raster.xml:9185 reference_raster.xml:9230
+#: reference_raster.xml:9274 reference_raster.xml:9313
+#: reference_raster.xml:9391 reference_raster.xml:9436
+#: reference_raster.xml:9481 reference_raster.xml:9644
+#: reference_raster.xml:9800 reference_raster.xml:9887
+#: reference_raster.xml:9968 reference_raster.xml:10049
+#: reference_raster.xml:10130 reference_raster.xml:10262
+#: reference_raster.xml:10343 reference_raster.xml:10423
+#: reference_raster.xml:10580 reference_raster.xml:10667
+#: reference_raster.xml:10762 reference_raster.xml:10855
 #, no-c-format
 msgid "Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:625
+#: reference_raster.xml:722
 #, no-c-format
 msgid ""
 "SELECT DropRasterConstraints ('myrasters','rast');\n"
@@ -1087,19 +1218,203 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:636
+#: reference_raster.xml:733
+#, no-c-format
+msgid "AddOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:735
+#, no-c-format
+msgid "Tag a raster column as being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:739
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>AddOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>reftable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>refcolumn</"
+"parameter></paramdef> <paramdef><type>int </type> <parameter>ovfactor</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>AddOverviewConstraints</function></funcdef> <paramdef><type>name </"
+"type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>ovcolumn</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>reftable</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>refcolumn</parameter></paramdef> <paramdef><type>int </type> "
+"<parameter>ovfactor</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:779
+#, no-c-format
+msgid ""
+"Adds constraints on a raster column that are used to display information in "
+"the <varname>raster_overviews</varname> raster catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:783
+#, no-c-format
+msgid ""
+"The <varname>ovfactor</varname> parameter represents the scale multiplier in "
+"the overview column: higher overview factors have lower resolution."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:787
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> and <varname>refschema</varname> "
+"parameters are omitted, the first table found scanning the "
+"<varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:799
+#, no-c-format
+msgid ""
+"CREATE TABLE res1 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r1;\n"
+"\n"
+"CREATE TABLE res2 AS SELECT\n"
+"ST_AddBand(\n"
+"  ST_MakeEmptyRaster(500, 500, 0, 0, 4),\n"
+"  1, '8BSI'::text, -129, NULL\n"
+") r2;\n"
+"\n"
+"SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);\n"
+"\n"
+"-- verify if registered correctly in the raster_overviews view --\n"
+"SELECT o_table_name ot, o_raster_column oc,\n"
+"       r_table_name rt, r_raster_column rc,\n"
+"       overview_factor f\n"
+"FROM raster_overviews WHERE o_table_name = 'res2';\n"
+"  ot  | oc |  rt  | rc | f\n"
+"------+----+------+----+---\n"
+" res2 | r2 | res1 | r1 | 2\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:805
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_DropOverviewConstraints\"/>, <xref linkend="
+"\"RT_CreateOverview\"/>, <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:816
+#, no-c-format
+msgid "DropOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:818
+#, no-c-format
+msgid "Untag a raster column from being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:822
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>DropOverviewConstraints</"
+"function></funcdef> <paramdef><type>name </type> <parameter>ovschema</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</"
+"parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean "
+"<function>DropOverviewConstraints</function></funcdef> <paramdef><type>name "
+"</type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </"
+"type> <parameter>ovcolumn</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:848
+#, no-c-format
+msgid ""
+"Remove from a raster column the constraints used to show it as being an "
+"overview of another in the <varname>raster_overviews</varname> raster "
+"catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:853
+#, no-c-format
+msgid ""
+"When the <varname>ovschema</varname> parameter is omitted, the first table "
+"found scanning the <varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:865
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_DropRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:875
+#, no-c-format
+msgid "PostGIS_GDAL_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:876
+#, no-c-format
+msgid "Reports the version of the GDAL library in use by PostGIS."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:881
+#, no-c-format
+msgid ""
+"<funcdef>text <function>PostGIS_GDAL_Version</function></funcdef> "
+"<paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:890
+#, no-c-format
+msgid ""
+"Reports the version of the GDAL library in use by PostGIS. Will also check "
+"and report if GDAL can find its data files."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:895
+#, no-c-format
+msgid ""
+"SELECT PostGIS_GDAL_Version();\n"
+"       postgis_gdal_version        \n"
+"-----------------------------------\n"
+" GDAL 1.11dev, released 2013/04/13"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:908
 #, no-c-format
 msgid "PostGIS_Raster_Lib_Build_Date"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:638
+#: reference_raster.xml:910
 #, no-c-format
 msgid "Reports full raster library build date."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:643
+#: reference_raster.xml:915
 #, no-c-format
 msgid ""
 "<funcdef>text <function>PostGIS_Raster_Lib_Build_Date</function></funcdef> "
@@ -1107,13 +1422,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:654
+#: reference_raster.xml:926
 #, no-c-format
 msgid "Reports raster build date"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:660
+#: reference_raster.xml:932
 #, no-c-format
 msgid ""
 "SELECT PostGIS_Raster_Lib_Build_Date();\n"
@@ -1123,13 +1438,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:672
+#: reference_raster.xml:944
 #, no-c-format
 msgid "PostGIS_Raster_Lib_Version"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:674
+#: reference_raster.xml:946
 #, no-c-format
 msgid ""
 "<refpurpose>Reports full raster version and build configuration infos.</"
@@ -1137,7 +1452,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:680
+#: reference_raster.xml:952
 #, no-c-format
 msgid ""
 "<funcdef>text <function>PostGIS_Raster_Lib_Version</function></funcdef> "
@@ -1145,13 +1460,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:691
+#: reference_raster.xml:963
 #, no-c-format
 msgid "<para>Reports full raster version and build configuration infos.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:698
+#: reference_raster.xml:970
 #, no-c-format
 msgid ""
 "SELECT PostGIS_Raster_Lib_Version();\n"
@@ -1161,13 +1476,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:712
+#: reference_raster.xml:984
 #, no-c-format
 msgid "ST_GDALDrivers"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:714
+#: reference_raster.xml:986
 #, no-c-format
 msgid ""
 "Returns a list of raster formats supported by your lib gdal. These are the "
@@ -1175,7 +1490,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:719
+#: reference_raster.xml:991
 #, no-c-format
 msgid ""
 "<funcdef>setof record <function>ST_GDALDrivers</function></funcdef> "
@@ -1187,7 +1502,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:732
+#: reference_raster.xml:1004
 #, no-c-format
 msgid ""
 "Returns a list of raster formats short_name,long_name and creator options of "
@@ -1201,21 +1516,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:735 reference_raster.xml:1042
-#: reference_raster.xml:4537 reference_raster.xml:4635
-#: reference_raster.xml:4726 reference_raster.xml:4806
+#: reference_raster.xml:1007 reference_raster.xml:1438
+#: reference_raster.xml:5631 reference_raster.xml:5729
+#: reference_raster.xml:5820 reference_raster.xml:5900
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GDAL >= 1.6.0."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:739
+#: reference_raster.xml:1011
 #, no-c-format
 msgid "Examples: List of Drivers"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:741
+#: reference_raster.xml:1013
 #, no-c-format
 msgid ""
 "SELECT short_name, long_name\n"
@@ -1248,13 +1563,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:743
+#: reference_raster.xml:1015
 #, no-c-format
 msgid "Example: List of options for each driver"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:744
+#: reference_raster.xml:1016
 #, no-c-format
 msgid ""
 "-- Output the create options XML column of JPEG as a table  --\n"
@@ -1276,7 +1591,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:746
+#: reference_raster.xml:1018
 #, no-c-format
 msgid ""
 "-- raw xml output for creator options for GeoTiff --\n"
@@ -1422,144 +1737,308 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:752 reference_raster.xml:1839
+#: reference_raster.xml:1024 reference_raster.xml:2506
 #, no-c-format
 msgid ", <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:759
-#, no-c-format
-msgid "Raster Constructors"
-msgstr ""
-
 #. Tag: refname
-#: reference_raster.xml:763
+#: reference_raster.xml:1030
 #, no-c-format
-msgid "ST_AddBand"
+msgid "UpdateRasterSRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:764
+#: reference_raster.xml:1031
 #, no-c-format
-msgid ""
-"Returns a raster with the new band(s) of given type added with given initial "
-"value in the given index location. If no index is specified, the band is "
-"added to the end."
+msgid "Change the SRID of all rasters in the user-specified column and table."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:770
+#: reference_raster.xml:1037
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>addbandarg[] </type> <parameter>addbandargset</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
-"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>index</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"<funcprototype> <funcdef>raster <function>UpdateRasterSRID</function></"
+"funcdef> <paramdef><type>name </type> <parameter>schema_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>table_name</parameter></"
+"paramdef> <paramdef><type>name </type> <parameter>column_name</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>new_srid</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
-"<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> "
-"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>torast</parameter></paramdef> "
-"<paramdef><type>raster[] </type> <parameter>fromrasts</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> <parameter>fromband=1</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> "
-"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype>"
+"<function>UpdateRasterSRID</function></funcdef> <paramdef><type>name </type> "
+"<parameter>table_name</parameter></paramdef> <paramdef><type>name </type> "
+"<parameter>column_name</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>new_srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:822
+#: reference_raster.xml:1060
 #, no-c-format
 msgid ""
-"Returns a raster with a new band added in given position (index), of given "
-"type, of given initial value, and of given nodata value. If no index is "
-"specified, the band is added to the end. If no <varname>fromband</varname> "
-"is specified, band 1 is assumed. Pixel type is a string representation of "
-"one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. "
-"If an existing index is specified all subsequent bands >= that index are "
-"incremented by 1. If an initial value greater than the max of the pixel type "
-"is specified, then the initial value is set to the highest value allowed by "
-"the pixel type. The last version add the <varname>fromband</varname> from "
-"<varname>fromrast</varname> raster to <varname>torast</varname> in position "
-"<varname>torastindex</varname>."
+"Change the SRID of all rasters in the user-specified column and table. The "
+"function will drop all appropriate column constraints (extent, alignment and "
+"SRID) before changing the SRID of the specified column's rasters."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:826
+#: reference_raster.xml:1065
 #, no-c-format
 msgid ""
-"For the version that takes an array of <xref linkend=\"addbandarg\"/>, a "
-"specific addbandarg's index value is relative to the raster at the time when "
-"the band described by that addbandarg is being added to the raster. See the "
-"Multiple New Bands example below."
+"The data (band pixel values) of the rasters are not touched by this "
+"function. Only the raster's metadata is changed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:830
+#: reference_raster.xml:1070 reference_raster.xml:1684
+#: reference_raster.xml:1785 reference_raster.xml:2235
+#: reference_raster.xml:2530 reference_raster.xml:2685
+#: reference_raster.xml:3234 reference_raster.xml:3284
+#: reference_raster.xml:3328 reference_raster.xml:3378
+#: reference_raster.xml:3535 reference_raster.xml:3632
+#: reference_raster.xml:3817 reference_raster.xml:3920
+#: reference_raster.xml:4016 reference_raster.xml:6261
+#: reference_raster.xml:6725 reference_raster.xml:6842
+#: reference_raster.xml:8116 reference_raster.xml:8401
+#: reference_raster.xml:8849 reference_raster.xml:8982
+#: reference_raster.xml:9033 reference_raster.xml:9270
+#: reference_raster.xml:9524 reference_raster.xml:9796
+#: reference_raster.xml:9883 reference_raster.xml:9964
+#: reference_raster.xml:10045 reference_raster.xml:10126
+#: reference_raster.xml:10339 reference_raster.xml:10419
+#: reference_raster.xml:10576 reference_raster.xml:10663
+#: reference_raster.xml:10758 reference_raster.xml:10851
 #, no-c-format
-msgid ""
-"For the version that takes an array of bands if <varname>torast</varname> is "
-"NULL, then the <varname>fromband</varname> band of each raster in the array "
-"is accumulated into a new raster."
+msgid "Availability: 2.1.0"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:833
+#. Tag: refname
+#: reference_raster.xml:1082
 #, no-c-format
-msgid "Enhanced: 2.1.0 support addbandarg was introduced."
+msgid "ST_CreateOverview"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:837
+#. Tag: refpurpose
+#: reference_raster.xml:1083
 #, no-c-format
-msgid "Examples: Single New Band versions"
+msgid "Create an reduced resolution version of a given raster coverage."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:839
+#. Tag: funcprototype
+#: reference_raster.xml:1091
 #, no-c-format
 msgid ""
-"-- Add another band of type 8 bit unsigned integer with pixels initialized "
-"to 200\n"
-"UPDATE dummy_rast\n"
-"    SET rast = ST_AddBand(rast,'8BUI'::text,200)  \n"
-"WHERE rid = 1;"
+"<funcdef>regclass <function>ST_CreateOverview</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>factor</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algo='NearestNeighbor'</parameter></paramdef>"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:841
+#. Tag: para
+#: reference_raster.xml:1105
 #, no-c-format
 msgid ""
-"-- Create an empty raster 100x100 units, with upper left  right at 0, add 2 "
-"bands (band 1 is 0/1 boolean bit switch, band2 allows values 0-15)\n"
-"-- uses addbandargs\n"
-"INSERT INTO dummy_rast(rid,rast)\n"
-"    VALUES(10, ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 1, -1, 0, 0, "
-"0), \n"
-"        ARRAY[\n"
-"                ROW(1, '1BB'::text, 0, NULL),\n"
-"                ROW(2, '4BUI'::text, 0, NULL)\n"
-"                        ]::addbandarg[]\n"
-"     )\n"
-"    );\n"
-"    \n"
+"Create an overview table with resampled tiles from the source table. Output "
+"tiles will have the same size of input tiles and cover the same spatial "
+"extent with a lower resolution (pixel size will be 1/<varname>factor</"
+"varname> of the original in both directions)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1112
+#, no-c-format
+msgid ""
+"The overview table will be made available in the <varname>raster_overviews</"
+"varname> catalog and will have raster constraints enforced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1118 reference_raster.xml:1743
+#: reference_raster.xml:4726
+#, no-c-format
+msgid ""
+"Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', "
+"'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/"
+"gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1120 reference_raster.xml:1745
+#: reference_raster.xml:1944 reference_raster.xml:5005
+#: reference_raster.xml:5384
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1124
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend="
+"\"RT_AddRasterConstraints\"/>, <xref linkend=\"RT_Raster_Overviews\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1135
+#, no-c-format
+msgid "Raster Constructors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1139
+#, no-c-format
+msgid "ST_AddBand"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1140
+#, no-c-format
+msgid ""
+"Returns a raster with the new band(s) of given type added with given initial "
+"value in the given index location. If no index is specified, the band is "
+"added to the end."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1146
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>(1) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>addbandarg[] </type> <parameter>addbandargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>(2) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>initialvalue=0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(3) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>initialvalue=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(4) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>torast</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>fromrast</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>fromband=1</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>torastindex=at_end</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>(5) raster <function>ST_AddBand</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>torast</parameter></"
+"paramdef> <paramdef><type>raster[] </type> <parameter>fromrasts</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> "
+"<parameter>fromband=1</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>torastindex=at_end</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(6) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>index</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>(7) raster "
+"<function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>outdbfile</parameter></paramdef> <paramdef><type>integer[] </"
+"type> <parameter>outdbindex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>index=at_end</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1211
+#, no-c-format
+msgid ""
+"Returns a raster with a new band added in given position (index), of given "
+"type, of given initial value, and of given nodata value. If no index is "
+"specified, the band is added to the end. If no <varname>fromband</varname> "
+"is specified, band 1 is assumed. Pixel type is a string representation of "
+"one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. "
+"If an existing index is specified all subsequent bands >= that index are "
+"incremented by 1. If an initial value greater than the max of the pixel type "
+"is specified, then the initial value is set to the highest value allowed by "
+"the pixel type."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1215
+#, no-c-format
+msgid ""
+"For the variant that takes an array of <xref linkend=\"addbandarg\"/> "
+"(Variant 1), a specific addbandarg's index value is relative to the raster "
+"at the time when the band described by that addbandarg is being added to the "
+"raster. See the Multiple New Bands example below."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1219
+#, no-c-format
+msgid ""
+"For the variant that takes an array of rasters (Variant 5), if "
+"<varname>torast</varname> is NULL then the <varname>fromband</varname> band "
+"of each raster in the array is accumulated into a new raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1223
+#, no-c-format
+msgid ""
+"For the variants that take <varname>outdbfile</varname> (Variants 6 and 7), "
+"the value must include the full path to the raster file. The file must also "
+"be accessible to the postgres server process."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1227
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for addbandarg added."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1228
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for new out-db bands added."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1232
+#, no-c-format
+msgid "Examples: Single New Band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1234
+#, no-c-format
+msgid ""
+"-- Add another band of type 8 bit unsigned integer with pixels initialized "
+"to 200\n"
+"UPDATE dummy_rast\n"
+"    SET rast = ST_AddBand(rast,'8BUI'::text,200)  \n"
+"WHERE rid = 1;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1236
+#, no-c-format
+msgid ""
+"-- Create an empty raster 100x100 units, with upper left  right at 0, add 2 "
+"bands (band 1 is 0/1 boolean bit switch, band2 allows values 0-15)\n"
+"-- uses addbandargs\n"
+"INSERT INTO dummy_rast(rid,rast)\n"
+"    VALUES(10, ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 1, -1, 0, 0, "
+"0), \n"
+"        ARRAY[\n"
+"                ROW(1, '1BB'::text, 0, NULL),\n"
+"                ROW(2, '4BUI'::text, 0, NULL)\n"
+"                        ]::addbandarg[]\n"
+"     )\n"
+"    );\n"
+"    \n"
 "-- output meta data of raster bands to verify all is right --\n"
 "SELECT  (bmd).*\n"
 "FROM (SELECT ST_BandMetaData(rast,generate_series(1,2)) As bmd \n"
@@ -1585,13 +2064,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:845
+#: reference_raster.xml:1240
 #, no-c-format
 msgid "Examples: Multiple New Bands"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:847
+#: reference_raster.xml:1242
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -1617,14 +2096,8 @@ msgid ""
 "       4 | 16BUI     |           2 | f       |"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:851
-#, no-c-format
-msgid "Examples: Multi-Band versions"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_raster.xml:853
+#: reference_raster.xml:1244
 #, no-c-format
 msgid ""
 "-- Aggregate the 1st band of a table of like rasters into a single raster \n"
@@ -1636,14 +2109,44 @@ msgid ""
 "-- The resulting raster will have a band for each test_type alphabetical by "
 "test_type\n"
 "-- For mouse lovers: No mice were harmed in this exercise\n"
-"SELECT mouse, ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1 ) As "
-"rast \n"
-"        FROM mice_studies\n"
-"                        GROUP BY mouse;"
+"SELECT\n"
+"        mouse,\n"
+"        ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1) As rast \n"
+"FROM mice_studies\n"
+"GROUP BY mouse;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1248
+#, no-c-format
+msgid "Examples: New Out-db band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1249
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        *\n"
+"FROM ST_BandMetadata(\n"
+"        ST_AddBand(\n"
+"                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+"                '/home/raster/mytestraster.tif'::text, NULL::int[]\n"
+"        ),\n"
+"        ARRAY[]::integer[]\n"
+");\n"
+"\n"
+" bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+"---------+-----------+-------------+---------+------\n"
+"       1 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       2 | 8BUI      |             | t       | /home/raster/mytestraster."
+"tif\n"
+"       3 | 8BUI      |             | t       | /home/raster/mytestraster.tif"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:858
+#: reference_raster.xml:1254
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend="
@@ -1652,19 +2155,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:871
+#: reference_raster.xml:1267
 #, no-c-format
 msgid "ST_AsRaster"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:872
+#: reference_raster.xml:1268
 #, no-c-format
 msgid "Converts a PostGIS geometry to a PostGIS raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:876
+#: reference_raster.xml:1272
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> "
@@ -1810,7 +2313,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1024
+#: reference_raster.xml:1420
 #, no-c-format
 msgid ""
 "Converts a PostGIS geometry to a PostGIS raster. The many variants offers "
@@ -1819,7 +2322,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1026
+#: reference_raster.xml:1422
 #, no-c-format
 msgid ""
 "The first group, composed of the two first variants, produce a raster having "
@@ -1831,7 +2334,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1028
+#: reference_raster.xml:1424
 #, no-c-format
 msgid ""
 "The second group, composed of four variants, let you set the dimensions of "
@@ -1845,7 +2348,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1030
+#: reference_raster.xml:1426
 #, no-c-format
 msgid ""
 "The third group, composed of four variants, let you fix the dimensions of "
@@ -1857,7 +2360,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1032
+#: reference_raster.xml:1428
 #, no-c-format
 msgid ""
 "The two first variants of each of those two last groups let you specify the "
@@ -1868,7 +2371,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1034
+#: reference_raster.xml:1430
 #, no-c-format
 msgid ""
 "Each group of variant allows producing a one band raster or a multiple bands "
@@ -1880,7 +2383,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1036
+#: reference_raster.xml:1432
 #, no-c-format
 msgid ""
 "The output raster will be in the same spatial reference as the source "
@@ -1890,7 +2393,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1038
+#: reference_raster.xml:1434
 #, no-c-format
 msgid ""
 "The optional <varname>touched</varname> parameter defaults to false and maps "
@@ -1900,7 +2403,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1040
+#: reference_raster.xml:1436
 #, no-c-format
 msgid ""
 "This is particularly useful for rendering jpegs and pngs of geometries "
@@ -1910,7 +2413,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1044
+#: reference_raster.xml:1440
 #, no-c-format
 msgid ""
 "Not yet capable of rendering complex geometry types such as curves, TINS, "
@@ -1918,19 +2421,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:1049
+#: reference_raster.xml:1445
 #, no-c-format
 msgid "Examples: Output geometries as PNG files"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1055
+#: reference_raster.xml:1451
 #, no-c-format
 msgid "black circle"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1058
+#: reference_raster.xml:1454
 #, no-c-format
 msgid ""
 "-- this will output a black circle taking up 150 x 150 pixels --\n"
@@ -1938,13 +2441,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1065
+#: reference_raster.xml:1461
 #, no-c-format
 msgid "example from buffer rendered with just PostGIS"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1069
+#: reference_raster.xml:1465
 #, no-c-format
 msgid ""
 "-- the bands map to RGB bands - the value (118,154,118) - teal  --\n"
@@ -1953,12 +2456,12 @@ msgid ""
 "                ST_Buffer(\n"
 "                        ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), "
 "10,'join=bevel'), \n"
-"                        200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY"
-"[118,154,118], ARRAY[0,0,0]));"
+"                        200,200,ARRAY['8BUI', '8BUI', '8BUI'], "
+"ARRAY[118,154,118], ARRAY[0,0,0]));"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1075
+#: reference_raster.xml:1471
 #, no-c-format
 msgid ""
 ", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
@@ -1967,13 +2470,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1081
+#: reference_raster.xml:1477
 #, no-c-format
 msgid "ST_Band"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1082
+#: reference_raster.xml:1478
 #, no-c-format
 msgid ""
 "Returns one or more bands of an existing raster as a new raster. Useful for "
@@ -1981,35 +2484,49 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1086
+#: reference_raster.xml:1482
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = ARRAY[1]"
-"</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_Band</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
-"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>character </type> <parameter>delimiter=,</parameter></paramdef> </"
+"<paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = "
+"ARRAY[1]</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Band</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> </"
 "funcprototype> <funcprototype> <funcdef>raster <function>ST_Band</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
-"paramdef> </funcprototype>"
+"paramdef> <paramdef><type>text </type> <parameter>nbands</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>character </type> "
+"<parameter>delimiter=,</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1111
+#: reference_raster.xml:1507
 #, no-c-format
 msgid ""
-"Returns a single band of an existing raster as a new raster. Useful for "
+"Returns one or more bands of an existing raster as a new raster. Useful for "
 "building new rasters from existing rasters or export of only selected bands "
-"of a raster. If no band is specified, band 1 is assumed. Used as a helper "
-"function in various functions such as for deleting a band."
+"of a raster or rearranging the order of bands in a raster. If no band is "
+"specified, band 1 is assumed. Used as a helper function in various functions "
+"such as for deleting a band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1509
+#, no-c-format
+msgid ""
+"For the <code>nbands</code> as text variant of function, the default "
+"delimiter is <code>,</code> which means you can ask for <code>'1,2,3'</code> "
+"and if you wanted to use a different delimeter you would do "
+"<code>ST_Band(rast, '1 at 2@3', '@')</code>. For asking for multiple bands, we "
+"strongly suggest you use the array form of this function e.g. "
+"<code>ST_Band(rast, '{1,2,3}'::int[]);</code> since the <code>text</code> "
+"list of bands form may be removed in future versions of PostGIS."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1120
+#: reference_raster.xml:1517
 #, no-c-format
 msgid ""
 "-- Make 2 new rasters: 1 containing band 1 of dummy, second containing band "
@@ -2028,11 +2545,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1122
+#: reference_raster.xml:1519
 #, no-c-format
 msgid ""
-"-- Return bands 2 and 3. Use text to define bands\n"
-"SELECT ST_NumBands(ST_Band(rast, '2,3')) As num_bands\n"
+"-- Return bands 2 and 3. Using array cast syntax\n"
+"SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands\n"
 "    FROM dummy_rast WHERE rid=2;\n"
 "    \n"
 "num_bands\n"
@@ -2046,25 +2563,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1132
+#: reference_raster.xml:1529
 #, no-c-format
 msgid "original (column rast)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1141
+#: reference_raster.xml:1538
 #, no-c-format
 msgid "dupe_band"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1150
+#: reference_raster.xml:1547
 #, no-c-format
 msgid "sing_band"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1158
+#: reference_raster.xml:1555
 #, no-c-format
 msgid ""
 "--Make a new raster with 2nd band of original and 1st band repeated twice,\n"
@@ -2076,20 +2593,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1164
+#: reference_raster.xml:1561
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_NumBands\"/>, , <xref linkend=\"RT_ST_Reclass\"/>"
+", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, "
+"<xref linkend=\"RT_reference\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1169
+#: reference_raster.xml:1567
 #, no-c-format
 msgid "ST_MakeEmptyRaster"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1170
+#: reference_raster.xml:1568
 #, no-c-format
 msgid ""
 "Returns an empty raster (having no bands) of given dimensions (width & "
@@ -2100,7 +2618,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1174
+#: reference_raster.xml:1572
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</function></"
@@ -2126,7 +2644,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1204
+#: reference_raster.xml:1602
 #, no-c-format
 msgid ""
 "Returns an empty raster (having no band) of given dimensions (width & "
@@ -2136,7 +2654,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1207
+#: reference_raster.xml:1605
 #, no-c-format
 msgid ""
 "The last version use a single parameter to specify the pixel size "
@@ -2145,7 +2663,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1209
+#: reference_raster.xml:1607
 #, no-c-format
 msgid ""
 "If an existing raster is passed in, it returns a new raster with the same "
@@ -2153,7 +2671,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1211
+#: reference_raster.xml:1609
 #, no-c-format
 msgid ""
 "If no srid is specified it defaults to 0. After you create an empty raster "
@@ -2163,7 +2681,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1218
+#: reference_raster.xml:1616
 #, no-c-format
 msgid ""
 "INSERT INTO dummy_rast(rid,rast)\n"
@@ -2193,7 +2711,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1224
+#: reference_raster.xml:1622
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_MetaData\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, "
@@ -2201,90 +2719,388 @@ msgid ""
 "linkend=\"RT_ST_SkewX\"/>, , <xref linkend=\"RT_ST_SkewY\"/>"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:1229
-#, no-c-format
-msgid "Raster Accessors"
-msgstr ""
-
 #. Tag: refname
-#: reference_raster.xml:1233
+#: reference_raster.xml:1629
 #, no-c-format
-msgid "ST_GeoReference"
+msgid "ST_Tile"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1234
+#: reference_raster.xml:1630
 #, no-c-format
 msgid ""
-"Returns the georeference meta data in GDAL or ESRI format as commonly seen "
-"in a world file. Default is GDAL."
+"<refpurpose>Returns a set of rasters resulting from the split of the input "
+"raster based upon the desired dimensions of the output rasters.</refpurpose>"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:1239
+#. Tag: funcsynopsis
+#: reference_raster.xml:1634
 #, no-c-format
 msgid ""
-"<funcdef>text <function>ST_GeoReference</function></funcdef> "
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
-"parameter></paramdef>"
+"<paramdef><type>int[] </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof raster "
+"<function>ST_Tile</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>height</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>padwithnodata=FALSE</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodataval=NULL</parameter></"
+"paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1250
+#: reference_raster.xml:1670
 #, no-c-format
 msgid ""
-"Returns the georeference meta data including carriage return in GDAL or ESRI "
-"format as commonly seen in a <ulink url=\"http://en.wikipedia.org/wiki/"
-"World_file\">world file</ulink>. Default is GDAL if no type specified. type "
-"is string 'GDAL' or 'ESRI'."
+"<para>Returns a set of rasters resulting from the split of the input raster "
+"based upon the desired dimensions of the output rasters.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1252 reference_raster.xml:3257
+#: reference_raster.xml:1674
 #, no-c-format
-msgid "Difference between format representations is as follows:"
+msgid ""
+"If <varname>padwithnodata</varname> = FALSE, edge tiles on the right and "
+"bottom sides of the raster may have different dimensions than the rest of "
+"the tiles. If <varname>padwithnodata</varname> = TRUE, all tiles will have "
+"the same dimensions with the possibilty that edge tiles being padded with "
+"NODATA values. If raster band(s) do not have NODATA value(s) specified, one "
+"can be specified by setting <varname>nodataval</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1253 reference_raster.xml:3258
+#: reference_raster.xml:1679
 #, no-c-format
-msgid "<varname>GDAL</varname>:"
+msgid ""
+"If a specified band of the input raster is out-of-db, the corresponding band "
+"in the output rasters will also be out-of-db."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1254
+#: reference_raster.xml:1690
 #, no-c-format
 msgid ""
-"scalex \n"
-"skewy \n"
-"skewx\n"
-"scaley\n"
-"upperleftx\n"
-"upperlefty"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:1255 reference_raster.xml:3260
-#, no-c-format
-msgid "<varname>ESRI</varname>:"
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{1,1,1},{1,1,1},{1,1,1}}\")\n"
+" (2,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{2,2,2},{2,2,2},{2,2,2}}\")\n"
+" (2,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{3,3,3},{3,3,3},{3,3,3}}\")\n"
+" (2,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{4,4,4},{4,4,4},{4,4,4}}\")\n"
+" (2,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{5,5,5},{5,5,5},{5,5,5}}\")\n"
+" (2,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{6,6,6},{6,6,6},{6,6,6}}\")\n"
+" (2,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{7,7,7},{7,7,7},{7,7,7}}\")\n"
+" (2,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{8,8,8},{8,8,8},{8,8,8}}\")\n"
+" (2,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{9,9,9},{9,9,9},{9,9,9}}\")\n"
+" (2,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(18 rows)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1256
+#: reference_raster.xml:1692
 #, no-c-format
 msgid ""
-"scalex \n"
-"skewy \n"
-"skewx\n"
-"scaley\n"
-"upperleftx + scalex*0.5\n"
-"upperlefty + scaley*0.5"
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, "
+"0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, "
+"0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, "
+"0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT ST_Union(rast) AS rast FROM foo\n"
+"), baz AS (\n"
+"        SELECT ST_Tile(rast, 3, 3, 2) AS rast FROM bar\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(rast)\n"
+"FROM baz;\n"
+"\n"
+"              st_dumpvalues               \n"
+"------------------------------------------\n"
+" (1,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+" (1,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+" (1,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+" (1,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+" (1,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+" (1,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+" (1,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+" (1,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+" (1,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+"(9 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1698
+#, no-c-format
+msgid ", <xref linkend=\"RT_Retile\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1708
+#, no-c-format
+msgid "ST_Retile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1709
+#, no-c-format
+msgid ""
+"Return a set of configured tiles from an arbitrarily tiled raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1717
+#, no-c-format
+msgid ""
+"<funcdef>SETOF raster <function>ST_Retile</function></funcdef> "
+"<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> "
+"<paramdef><type>name </type> <parameter>col</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>ext</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfx</parameter></paramdef> "
+"<paramdef><type>float8 </type> <parameter>sfy</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>tw</parameter></paramdef> "
+"<paramdef><type>int </type> <parameter>th</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algo='NearestNeighbor'</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1735
+#, no-c-format
+msgid ""
+"Return a set of tiles having the specified scale (<varname>sfx</varname>, "
+"<varname>sfy</varname>) and max size (<varname>tw</varname>, <varname>th</"
+"varname>) and covering the specified extent (<varname>ext</varname>) with "
+"data coming from the specified raster coverage (<varname>tab</varname>, "
+"<varname>col</varname>)."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1759
+#, no-c-format
+msgid "ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1760
+#, no-c-format
+msgid "Returns a raster from a supported GDAL raster file."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1765
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_FromGDALRaster</function></funcdef> "
+"<paramdef><type>bytea </type> <parameter>gdaldata</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=NULL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1777
+#, no-c-format
+msgid ""
+"Returns a raster from a supported GDAL raster file. <varname>gdaldata</"
+"varname> is of type bytea and should be the contents of the GDAL raster file."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1781
+#, no-c-format
+msgid ""
+"If <varname>srid</varname> is NULL, the function will try to autmatically "
+"assign the SRID from the GDAL raster. If <varname>srid</varname> is "
+"provided, the value provided will override any automatically assigned SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT "
+"ST_AsPNG(ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, "
+"0.1, -0.1, 0, 0, 4326), 1, '8BUI', 1, 0), 2, '8BUI', 2, 0), 3, '8BUI', 3, "
+"0)) AS png\n"
+"),\n"
+"bar AS (\n"
+"        SELECT 1 AS rid, ST_FromGDALRaster(png) AS rast FROM foo\n"
+"        UNION ALL\n"
+"        SELECT 2 AS rid, ST_FromGDALRaster(png, 3310) AS rast FROM foo\n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        ST_Metadata(rast) AS metadata,\n"
+"        ST_SummaryStats(rast, 1) AS stats1,\n"
+"        ST_SummaryStats(rast, 2) AS stats2,\n"
+"        ST_SummaryStats(rast, 3) AS stats3\n"
+"FROM bar\n"
+"ORDER BY rid;\n"
+"\n"
+" rid |         metadata          |    stats1     |    stats2     |     "
+"stats3     \n"
+"-----+---------------------------+---------------+---------------"
+"+----------------\n"
+"   1 | (0,0,2,2,1,-1,0,0,0,3)    | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"   2 | (0,0,2,2,1,-1,0,0,3310,3) | (4,4,1,0,1,1) | (4,8,2,0,2,2) | "
+"(4,12,3,0,3,3)\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:1806
+#, no-c-format
+msgid "Raster Accessors"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1810
+#, no-c-format
+msgid "ST_GeoReference"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1811
+#, no-c-format
+msgid ""
+"Returns the georeference meta data in GDAL or ESRI format as commonly seen "
+"in a world file. Default is GDAL."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1816
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_GeoReference</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1827
+#, no-c-format
+msgid ""
+"Returns the georeference meta data including carriage return in GDAL or ESRI "
+"format as commonly seen in a <ulink url=\"http://en.wikipedia.org/wiki/"
+"World_file\">world file</ulink>. Default is GDAL if no type specified. type "
+"is string 'GDAL' or 'ESRI'."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1829 reference_raster.xml:4065
+#, no-c-format
+msgid "Difference between format representations is as follows:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1830 reference_raster.xml:4066
+#, no-c-format
+msgid "<varname>GDAL</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1831
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx\n"
+"upperlefty"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1832 reference_raster.xml:4068
+#, no-c-format
+msgid "<varname>ESRI</varname>:"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1833
+#, no-c-format
+msgid ""
+"scalex \n"
+"skewy \n"
+"skewx\n"
+"scaley\n"
+"upperleftx + scalex*0.5\n"
+"upperlefty + scaley*0.5"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1262
+#: reference_raster.xml:1839
 #, no-c-format
 msgid ""
 "SELECT ST_GeoReference(rast, 'ESRI') As esri_ref, ST_GeoReference(rast, "
@@ -2302,25 +3118,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1267
+#: reference_raster.xml:1844
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1273
+#: reference_raster.xml:1850
 #, no-c-format
 msgid "ST_Height"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1274
+#: reference_raster.xml:1851
 #, no-c-format
 msgid "Returns the height of the raster in pixels."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1279
+#: reference_raster.xml:1856
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_Height</function></funcdef> "
@@ -2328,13 +3144,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1289
+#: reference_raster.xml:1866
 #, no-c-format
 msgid "Returns the height of the raster."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1295
+#: reference_raster.xml:1872
 #, no-c-format
 msgid ""
 "SELECT rid, ST_Height(rast) As rastheight\n"
@@ -2347,13 +3163,125 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1307
+#: reference_raster.xml:1884
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1885
+#, no-c-format
+msgid ""
+"<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1890
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1900
+#, no-c-format
+msgid ""
+"<para>Returns true if the raster is empty (width = 0 and height = 0). "
+"Otherwise, returns false.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1908
+#, no-c-format
+msgid ""
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"f          |\n"
+"                       \n"
+"                        \n"
+"SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
+"st_isempty |\n"
+"-----------+\n"
+"t          |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1920
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1922
+#, no-c-format
+msgid ""
+"<refpurpose>Returns the amount of space (in bytes) the raster takes.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1927
+#, no-c-format
+msgid ""
+"<funcdef>integer <function>ST_MemSize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1937
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the raster takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1938
+#, no-c-format
+msgid ""
+"This is a nice compliment to PostgreSQL built in functions pg_column_size, "
+"pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1939
+#, no-c-format
+msgid ""
+"pg_relation_size which gives the byte size of a table may return byte size "
+"lower than ST_MemSize. This is because pg_relation_size does not add toasted "
+"table contribution and large geometries are stored in TOAST tables. "
+"pg_column_size might return lower because it returns the compressed size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1941
+#, no-c-format
+msgid ""
+"pg_total_relation_size - includes, the table, the toasted tables, and the "
+"indexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1951
+#, no-c-format
+msgid ""
+"SELECT ST_MemSize(ST_AsRaster(ST_Buffer(ST_Point(1,5),10,1000),150, 150, "
+"'8BUI')) As rast_mem;\n"
+"                \n"
+"                rast_mem\n"
+"                --------\n"
+"                22568"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1964
 #, no-c-format
 msgid "ST_MetaData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1308
+#: reference_raster.xml:1965
 #, no-c-format
 msgid ""
 "Returns basic meta data about a raster object such as pixel size, rotation "
@@ -2361,7 +3289,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1313
+#: reference_raster.xml:1970
 #, no-c-format
 msgid ""
 "<funcdef>record <function>ST_MetaData</function></funcdef> "
@@ -2369,7 +3297,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1323
+#: reference_raster.xml:1980
 #, no-c-format
 msgid ""
 "Returns basic meta data about a raster object such as pixel size, rotation "
@@ -2378,7 +3306,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1330
+#: reference_raster.xml:1987
 #, no-c-format
 msgid ""
 "SELECT rid, (foo.md).*  \n"
@@ -2396,26 +3324,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1336 reference_raster.xml:3901
+#: reference_raster.xml:1993 reference_raster.xml:4844
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_NumBands\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1342
+#: reference_raster.xml:1999
 #, no-c-format
 msgid "ST_NumBands"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1343
+#: reference_raster.xml:2000
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the number of bands in the raster object.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1348
+#: reference_raster.xml:2005
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_NumBands</function></funcdef> "
@@ -2423,13 +3351,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1358
+#: reference_raster.xml:2015
 #, no-c-format
 msgid "<para>Returns the number of bands in the raster object.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1364
+#: reference_raster.xml:2021
 #, no-c-format
 msgid ""
 "SELECT rid, ST_NumBands(rast) As numbands\n"
@@ -2442,20 +3370,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1376
+#: reference_raster.xml:2033
 #, no-c-format
 msgid "ST_PixelHeight"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1377
+#: reference_raster.xml:2034
 #, no-c-format
 msgid ""
 "Returns the pixel height in geometric units of the spatial reference system."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1382
+#: reference_raster.xml:2039
 #, no-c-format
 msgid ""
 "<funcdef>double precision <function>ST_PixelHeight</function></funcdef> "
@@ -2463,7 +3391,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1392
+#: reference_raster.xml:2049
 #, no-c-format
 msgid ""
 "Returns the height of a pixel in geometric units of the spatial reference "
@@ -2472,7 +3400,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1394
+#: reference_raster.xml:2051
 #, no-c-format
 msgid ""
 "Refer to <xref linkend=\"RT_ST_PixelWidth\"/> for a diagrammatic "
@@ -2480,13 +3408,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:1398 reference_raster.xml:1453
+#: reference_raster.xml:2055 reference_raster.xml:2115
 #, no-c-format
 msgid "Examples: Rasters with no skew"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1400
+#: reference_raster.xml:2057
 #, no-c-format
 msgid ""
 "SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
@@ -2502,13 +3430,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:1405 reference_raster.xml:1460
+#: reference_raster.xml:2062 reference_raster.xml:2122
 #, no-c-format
 msgid "Examples: Rasters with skew different than 0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1407
+#: reference_raster.xml:2064
 #, no-c-format
 msgid ""
 "SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
@@ -2525,8 +3453,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1414 reference_raster.xml:1469
-#: reference_raster.xml:3307
+#: reference_raster.xml:2071 reference_raster.xml:2131
+#: reference_raster.xml:4124
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
@@ -2534,20 +3462,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1421
+#: reference_raster.xml:2083
 #, no-c-format
 msgid "ST_PixelWidth"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1422
+#: reference_raster.xml:2084
 #, no-c-format
 msgid ""
 "Returns the pixel width in geometric units of the spatial reference system."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1427
+#: reference_raster.xml:2089
 #, no-c-format
 msgid ""
 "<funcdef>double precision <function>ST_PixelWidth</function></funcdef> "
@@ -2555,7 +3483,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1437
+#: reference_raster.xml:2099
 #, no-c-format
 msgid ""
 "Returns the width of a pixel in geometric units of the spatial reference "
@@ -2564,25 +3492,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1439
+#: reference_raster.xml:2101
 #, no-c-format
 msgid "The following diagram demonstrates the relationship:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1446
+#: reference_raster.xml:2108
 #, no-c-format
 msgid "Pixel Width: Pixel size in the i direction"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1446
+#: reference_raster.xml:2108
 #, no-c-format
 msgid "Pixel Height: Pixel size in the j direction"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1455
+#: reference_raster.xml:2117
 #, no-c-format
 msgid ""
 "SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
@@ -2598,7 +3526,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1462
+#: reference_raster.xml:2124
 #, no-c-format
 msgid ""
 "SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
@@ -2616,13 +3544,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1475
+#: reference_raster.xml:2137
 #, no-c-format
 msgid "ST_ScaleX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1476
+#: reference_raster.xml:2138
 #, no-c-format
 msgid ""
 "Returns the X component of the pixel width in units of coordinate reference "
@@ -2630,7 +3558,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1481
+#: reference_raster.xml:2143
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_ScaleX</function></funcdef> "
@@ -2638,7 +3566,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1491
+#: reference_raster.xml:2153
 #, no-c-format
 msgid ""
 "Returns the X component of the pixel width in units of coordinate reference "
@@ -2647,13 +3575,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1493
+#: reference_raster.xml:2155
 #, no-c-format
 msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeX."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1499
+#: reference_raster.xml:2161
 #, no-c-format
 msgid ""
 "SELECT rid, ST_ScaleX(rast) As rastpixwidth\n"
@@ -2666,13 +3594,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1512
+#: reference_raster.xml:2174
 #, no-c-format
 msgid "ST_ScaleY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1513
+#: reference_raster.xml:2175
 #, no-c-format
 msgid ""
 "Returns the Y component of the pixel height in units of coordinate reference "
@@ -2680,7 +3608,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1518
+#: reference_raster.xml:2180
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_ScaleY</function></funcdef> "
@@ -2688,7 +3616,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1528
+#: reference_raster.xml:2190
 #, no-c-format
 msgid ""
 "Returns the Y component of the pixel height in units of coordinate reference "
@@ -2697,13 +3625,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1531
+#: reference_raster.xml:2193
 #, no-c-format
 msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeY."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1537
+#: reference_raster.xml:2199
 #, no-c-format
 msgid ""
 "SELECT rid, ST_ScaleY(rast) As rastpixheight\n"
@@ -2716,13 +3644,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1550
+#: reference_raster.xml:2212
 #, no-c-format
-msgid "ST_Raster2WorldCoord"
+msgid "ST_RasterToWorldCoord"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1551
+#: reference_raster.xml:2213
 #, no-c-format
 msgid ""
 "Returns the raster's upper left corner as geometric X and Y (longitude and "
@@ -2730,17 +3658,17 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1556
+#: reference_raster.xml:2218
 #, no-c-format
 msgid ""
-"<funcdef>record <function>ST_Raster2WorldCoord</function></funcdef> "
+"<funcdef>record <function>ST_RasterToWorldCoord</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>yrow</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1568
+#: reference_raster.xml:2230
 #, no-c-format
 msgid ""
 "Returns the upper left corner as geometric X and Y (longitude and latitude) "
@@ -2752,32 +3680,15 @@ msgid ""
 "bounds."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:1573 reference_raster.xml:1979
-#: reference_raster.xml:2558 reference_raster.xml:2603
-#: reference_raster.xml:2646 reference_raster.xml:2691
-#: reference_raster.xml:2836 reference_raster.xml:2933
-#: reference_raster.xml:3102 reference_raster.xml:3221
-#: reference_raster.xml:5578 reference_raster.xml:6858
-#: reference_raster.xml:6907 reference_raster.xml:7136
-#: reference_raster.xml:7223 reference_raster.xml:7304
-#: reference_raster.xml:7385 reference_raster.xml:7466
-#: reference_raster.xml:7679 reference_raster.xml:7759
-#: reference_raster.xml:7956 reference_raster.xml:8051
-#: reference_raster.xml:8144
-#, no-c-format
-msgid "Availability: 2.1.0"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_raster.xml:1580
+#: reference_raster.xml:2242
 #, no-c-format
 msgid ""
 "-- non-skewed raster\n"
 "SELECT\n"
 "        rid,\n"
-"        (ST_Raster2WorldCoord(rast,1, 1)).*,\n"
-"        (ST_Raster2WorldCoord(rast,2, 2)).*\n"
+"        (ST_RasterToWorldCoord(rast,1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast,2, 2)).*\n"
 "FROM dummy_rast\n"
 "\n"
 " rid | longitude  | latitude | longitude |  latitude  \n"
@@ -2787,14 +3698,14 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1582
+#: reference_raster.xml:2244
 #, no-c-format
 msgid ""
 "-- skewed raster\n"
 "SELECT\n"
 "        rid,\n"
-"        (ST_Raster2WorldCoord(rast, 1, 1)).*,\n"
-"        (ST_Raster2WorldCoord(rast, 2, 3)).*\n"
+"        (ST_RasterToWorldCoord(rast, 1, 1)).*,\n"
+"        (ST_RasterToWorldCoord(rast, 2, 3)).*\n"
 "FROM (\n"
 "        SELECT\n"
 "                rid,\n"
@@ -2809,21 +3720,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1589
+#: reference_raster.xml:2251
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SetSkew"
-"\"/>"
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1599
+#: reference_raster.xml:2261
 #, no-c-format
-msgid "ST_Raster2WorldCoordX"
+msgid "ST_RasterToWorldCoordX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1600
+#: reference_raster.xml:2262
 #, no-c-format
 msgid ""
 "Returns the geometric X coordinate upper left of a raster, column and row. "
@@ -2831,21 +3742,21 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1605
+#: reference_raster.xml:2267
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordX</function></"
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordX</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
 "paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
-"<function>ST_Raster2WorldCoordX</function></funcdef> <paramdef><type>raster "
+"<function>ST_RasterToWorldCoordX</function></funcdef> <paramdef><type>raster "
 "</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
 "type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
 "type> <parameter>yrow</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1623
+#: reference_raster.xml:2285
 #, no-c-format
 msgid ""
 "Returns the upper left X coordinate of a raster column row in geometric "
@@ -2857,7 +3768,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1628
+#: reference_raster.xml:2290
 #, no-c-format
 msgid ""
 "For non-skewed rasters, providing the X column is sufficient. For skewed "
@@ -2866,14 +3777,20 @@ msgid ""
 "column for a skewed raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2294
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordX"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:1636
+#: reference_raster.xml:2301
 #, no-c-format
 msgid ""
 "-- non-skewed raster providing column is "
 "sufficient                                        \n"
-"SELECT rid, ST_Raster2WorldCoordX(rast,1) As x1coord, \n"
-"        ST_Raster2WorldCoordX(rast,2) As x2coord,\n"
+"SELECT rid, ST_RasterToWorldCoordX(rast,1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast,2) As x2coord,\n"
 "        ST_ScaleX(rast) As pixelx\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -2884,12 +3801,12 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1638
+#: reference_raster.xml:2303
 #, no-c-format
 msgid ""
 "-- for fun lets skew it                                \n"
-"SELECT rid, ST_Raster2WorldCoordX(rast, 1, 1) As x1coord, \n"
-"        ST_Raster2WorldCoordX(rast, 2, 3) As x2coord,\n"
+"SELECT rid, ST_RasterToWorldCoordX(rast, 1, 1) As x1coord, \n"
+"        ST_RasterToWorldCoordX(rast, 2, 3) As x2coord,\n"
 "        ST_ScaleX(rast) As pixelx\n"
 "FROM (SELECT rid, ST_SetSkew(rast, 100.5, 0) As rast FROM dummy_rast) As "
 "foo;\n"
@@ -2901,21 +3818,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1645
+#: reference_raster.xml:2310
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SetSkew"
-"\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1651
+#: reference_raster.xml:2316
 #, no-c-format
-msgid "ST_Raster2WorldCoordY"
+msgid "ST_RasterToWorldCoordY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1652
+#: reference_raster.xml:2317
 #, no-c-format
 msgid ""
 "Returns the geometric Y coordinate upper left corner of a raster, column and "
@@ -2923,21 +3840,21 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1657
+#: reference_raster.xml:2322
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordY</function></"
+"<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordY</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
 "paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>float8 "
-"<function>ST_Raster2WorldCoordY</function></funcdef> <paramdef><type>raster "
+"<function>ST_RasterToWorldCoordY</function></funcdef> <paramdef><type>raster "
 "</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
 "type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </"
 "type> <parameter>yrow</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1675
+#: reference_raster.xml:2340
 #, no-c-format
 msgid ""
 "Returns the upper left Y coordinate of a raster column row in geometric "
@@ -2949,7 +3866,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1680
+#: reference_raster.xml:2345
 #, no-c-format
 msgid ""
 "For non-skewed rasters, providing the Y column is sufficient. For skewed "
@@ -2958,14 +3875,20 @@ msgid ""
 "row for a skewed raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2349
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordY"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:1688
+#: reference_raster.xml:2355
 #, no-c-format
 msgid ""
 "-- non-skewed raster providing row is "
 "sufficient                                        \n"
-"SELECT rid, ST_Raster2WorldCoordY(rast,1) As y1coord, \n"
-"        ST_Raster2WorldCoordY(rast,3) As y2coord,\n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,3) As y2coord,\n"
 "        ST_ScaleY(rast) As pixely\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -2976,12 +3899,12 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1690
+#: reference_raster.xml:2357
 #, no-c-format
 msgid ""
 "-- for fun lets skew it                                \n"
-"SELECT rid, ST_Raster2WorldCoordY(rast,1,1) As y1coord, \n"
-"        ST_Raster2WorldCoordY(rast,2,3) As y2coord,\n"
+"SELECT rid, ST_RasterToWorldCoordY(rast,1,1) As y1coord, \n"
+"        ST_RasterToWorldCoordY(rast,2,3) As y2coord,\n"
 "        ST_ScaleY(rast) As pixely\n"
 "FROM (SELECT rid, ST_SetSkew(rast,0,100.5) As rast FROM dummy_rast) As foo;\n"
 "\n"
@@ -2992,27 +3915,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1697
+#: reference_raster.xml:2364
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Raster2WorldCoordX\"/>, <xref linkend=\"RT_ST_SetSkew"
-"\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+", <xref linkend=\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend="
+"\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1703
+#: reference_raster.xml:2370
 #, no-c-format
 msgid "ST_Rotation"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1704
+#: reference_raster.xml:2371
 #, no-c-format
 msgid "Returns the rotation of the raster in radian."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1709
+#: reference_raster.xml:2376
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_Rotation</function></funcdef> "
@@ -3020,7 +3943,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1719
+#: reference_raster.xml:2386
 #, no-c-format
 msgid ""
 "Returns the uniform rotation of the raster in radian. If a raster does not "
@@ -3029,7 +3952,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1726
+#: reference_raster.xml:2393
 #, no-c-format
 msgid ""
 "SELECT rid, ST_Rotation(ST_SetScale(ST_SetSkew(rast, sqrt(2)), sqrt(2))) as "
@@ -3042,25 +3965,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1732
+#: reference_raster.xml:2399
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SetScale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1738
+#: reference_raster.xml:2405
 #, no-c-format
 msgid "ST_SkewX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1739
+#: reference_raster.xml:2406
 #, no-c-format
 msgid "Returns the georeference X skew (or rotation parameter)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1744
+#: reference_raster.xml:2411
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_SkewX</function></funcdef> "
@@ -3068,7 +3991,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1754
+#: reference_raster.xml:2421
 #, no-c-format
 msgid ""
 "Returns the georeference X skew (or rotation parameter). Refer to <ulink url="
@@ -3077,7 +4000,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1761 reference_raster.xml:1797
+#: reference_raster.xml:2428 reference_raster.xml:2464
 #, no-c-format
 msgid ""
 "SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
@@ -3102,25 +4025,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1768
+#: reference_raster.xml:2435
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1774
+#: reference_raster.xml:2441
 #, no-c-format
 msgid "ST_SkewY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1775
+#: reference_raster.xml:2442
 #, no-c-format
 msgid "Returns the georeference Y skew (or rotation parameter)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1780
+#: reference_raster.xml:2447
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_SkewY</function></funcdef> "
@@ -3128,7 +4051,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1790
+#: reference_raster.xml:2457
 #, no-c-format
 msgid ""
 "Returns the georeference Y skew (or rotation parameter). Refer to <ulink url="
@@ -3137,19 +4060,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1804
+#: reference_raster.xml:2471
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1810
+#: reference_raster.xml:2477
 #, no-c-format
 msgid "ST_SRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1811
+#: reference_raster.xml:2478
 #, no-c-format
 msgid ""
 "Returns the spatial reference identifier of the raster as defined in "
@@ -3157,7 +4080,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1816
+#: reference_raster.xml:2483
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_SRID</function></funcdef> "
@@ -3165,7 +4088,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1826
+#: reference_raster.xml:2493
 #, no-c-format
 msgid ""
 "Returns the spatial reference identifier of the raster object as defined in "
@@ -3173,7 +4096,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1827
+#: reference_raster.xml:2494
 #, no-c-format
 msgid ""
 "From PostGIS 2.0+ the srid of a non-georeferenced raster/geometry is 0 "
@@ -3181,7 +4104,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1833
+#: reference_raster.xml:2500
 #, no-c-format
 msgid ""
 "SELECT ST_SRID(rast) As srid\n"
@@ -3193,13 +4116,76 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1845
+#: reference_raster.xml:2512
+#, no-c-format
+msgid "ST_Summary"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2513
+#, no-c-format
+msgid ""
+"<refpurpose>Returns a text summary of the contents of the raster.</"
+"refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2518
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_Summary</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2528
+#, no-c-format
+msgid "<para>Returns a text summary of the contents of the raster.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2535
+#, no-c-format
+msgid ""
+"SELECT ST_Summary(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, "
+"0, 0)\n"
+"                                , 1, '8BUI', 1, 0\n"
+"                        )\n"
+"                        , 2, '32BF', 0, -9999\n"
+"                )\n"
+"                , 3, '16BSI', 0, NULL\n"
+"        )\n"
+");\n"
+"\n"
+"                            st_summary                            \n"
+"------------------------------------------------------------------\n"
+" Raster of 10x10 pixels has 3 bands and extent of BOX(0 -10,10 0)+\n"
+"     band 1 of pixtype 8BUI is in-db with NODATA value of 0      +\n"
+"     band 2 of pixtype 32BF is in-db with NODATA value of -9999  +\n"
+"     band 3 of pixtype 16BSI is in-db with no NODATA value\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2540
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandMetaData\"/>, <xref linkend=\"ST_Summary\"/> "
+"<xref linkend=\"ST_Extent\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2551
 #, no-c-format
 msgid "ST_UpperLeftX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1846
+#: reference_raster.xml:2552
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the upper left X coordinate of raster in projected "
@@ -3207,7 +4193,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1851
+#: reference_raster.xml:2557
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_UpperLeftX</function></funcdef> "
@@ -3215,7 +4201,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1861
+#: reference_raster.xml:2567
 #, no-c-format
 msgid ""
 "<para>Returns the upper left X coordinate of raster in projected spatial ref."
@@ -3223,7 +4209,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1867
+#: reference_raster.xml:2573
 #, no-c-format
 msgid ""
 "SELECt rid, ST_UpperLeftX(rast) As ulx\n"
@@ -3236,19 +4222,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1873 reference_raster.xml:1907
+#: reference_raster.xml:2579 reference_raster.xml:2613
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_Box3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1879
+#: reference_raster.xml:2585
 #, no-c-format
 msgid "ST_UpperLeftY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1880
+#: reference_raster.xml:2586
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the upper left Y coordinate of raster in projected "
@@ -3256,7 +4242,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1885
+#: reference_raster.xml:2591
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_UpperLeftY</function></funcdef> "
@@ -3264,7 +4250,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1895
+#: reference_raster.xml:2601
 #, no-c-format
 msgid ""
 "<para>Returns the upper left Y coordinate of raster in projected spatial ref."
@@ -3272,7 +4258,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1901
+#: reference_raster.xml:2607
 #, no-c-format
 msgid ""
 "SELECT rid, ST_UpperLeftY(rast) As uly\n"
@@ -3285,19 +4271,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1913
+#: reference_raster.xml:2619
 #, no-c-format
 msgid "ST_Width"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1914
+#: reference_raster.xml:2620
 #, no-c-format
 msgid "<refpurpose>Returns the width of the raster in pixels.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1919
+#: reference_raster.xml:2625
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_Width</function></funcdef> "
@@ -3305,13 +4291,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1929
+#: reference_raster.xml:2635
 #, no-c-format
 msgid "<para>Returns the width of the raster in pixels.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1935
+#: reference_raster.xml:2641
 #, no-c-format
 msgid ""
 "SELECT ST_Width(rast) As rastwidth\n"
@@ -3323,13 +4309,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1949
+#: reference_raster.xml:2655
 #, no-c-format
-msgid "ST_World2RasterCoord"
+msgid "ST_WorldToRasterCoord"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1950
+#: reference_raster.xml:2656
 #, no-c-format
 msgid ""
 "Returns the upper left corner as column and row given geometric X and Y "
@@ -3338,22 +4324,22 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1954
+#: reference_raster.xml:2660
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoord</function></"
+"<funcprototype> <funcdef>record <function>ST_WorldToRasterCoord</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
 "paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
-"<function>ST_World2RasterCoord</function></funcdef> <paramdef><type>raster </"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
+"paramdef> </funcprototype> <funcprototype> <funcdef>record "
+"<function>ST_WorldToRasterCoord</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
 "precision </type> <parameter>longitude</parameter></paramdef> "
 "<paramdef><type>double precision </type> <parameter>latitude</parameter></"
 "paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1973
+#: reference_raster.xml:2679
 #, no-c-format
 msgid ""
 "Returns the upper left corner as column and row given geometric X and Y "
@@ -3364,13 +4350,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1986
+#: reference_raster.xml:2692
 #, no-c-format
 msgid ""
 "SELECT\n"
 "        rid,\n"
-"        (ST_World2RasterCoord(rast,3427927.8,20.5)).*,\n"
-"        (ST_World2RasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',"
+"        (ST_WorldToRasterCoord(rast,3427927.8,20.5)).*,\n"
+"        (ST_WorldToRasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',"
 "ST_SRID(rast)))).*\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -3381,22 +4367,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1992
+#: reference_raster.xml:2698
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_World2RasterCoordY\"/>, <xref linkend="
-"\"RT_ST_Raster2WorldCoordX\"/>, <xref linkend=\"RT_ST_Raster2WorldCoordY\"/"
+", <xref linkend=\"RT_ST_WorldToRasterCoordY\"/>, <xref linkend="
+"\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend=\"RT_ST_RasterToWorldCoordY\"/"
 ">, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2004
+#: reference_raster.xml:2710
 #, no-c-format
-msgid "ST_World2RasterCoordX"
+msgid "ST_WorldToRasterCoordX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2005
+#: reference_raster.xml:2711
 #, no-c-format
 msgid ""
 "Returns the column in the raster of the point geometry (pt) or a X and Y "
@@ -3405,25 +4391,25 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2010
+#: reference_raster.xml:2716
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordX</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
-"<function>ST_World2RasterCoordX</function></funcdef> <paramdef><type>raster "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordX</function></funcdef> <paramdef><type>raster "
 "</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
 "precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordX</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>double precision </type> <parameter>xw</"
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
 "parameter></paramdef> <paramdef><type>double precision </type> "
-"<parameter>yw</parameter></paramdef> </funcprototype>"
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2035
+#: reference_raster.xml:2741
 #, no-c-format
 msgid ""
 "Returns the column in the raster of the point geometry (pt) or a X and Y "
@@ -3433,13 +4419,20 @@ msgid ""
 "of the raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2743
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordX"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2042
+#: reference_raster.xml:2749
 #, no-c-format
 msgid ""
-"SELECT rid, ST_World2RasterCoordX(rast,3427927.8) As xcoord, \n"
-"                ST_World2RasterCoordX(rast,3427927.8,20.5) As xcoord_xwyw, \n"
-"                ST_World2RasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 "
+"SELECT rid, ST_WorldToRasterCoordX(rast,3427927.8) As xcoord, \n"
+"                ST_WorldToRasterCoordX(rast,3427927.8,20.5) As "
+"xcoord_xwyw, \n"
+"                ST_WorldToRasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 "
 "20.5)',ST_SRID(rast))) As ptxcoord\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -3450,21 +4443,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2048 reference_raster.xml:2102
+#: reference_raster.xml:2755 reference_raster.xml:2810
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SRID\"/"
-">"
+", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SRID"
+"\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2058
+#: reference_raster.xml:2765
 #, no-c-format
-msgid "ST_World2RasterCoordY"
+msgid "ST_WorldToRasterCoordY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2059
+#: reference_raster.xml:2766
 #, no-c-format
 msgid ""
 "Returns the row in the raster of the point geometry (pt) or a X and Y world "
@@ -3472,25 +4465,25 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2064
+#: reference_raster.xml:2771
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordY</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>integer "
-"<function>ST_World2RasterCoordY</function></funcdef> <paramdef><type>raster "
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer "
+"<function>ST_WorldToRasterCoordY</function></funcdef> <paramdef><type>raster "
 "</type> <parameter>rast</parameter></paramdef> <paramdef><type>double "
 "precision </type> <parameter>xw</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>integer <function>ST_World2RasterCoordY</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>double precision </type> <parameter>xw</"
+"<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
 "parameter></paramdef> <paramdef><type>double precision </type> "
-"<parameter>yw</parameter></paramdef> </funcprototype>"
+"<parameter>xw</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>yw</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2089
+#: reference_raster.xml:2796
 #, no-c-format
 msgid ""
 "Returns the row in the raster of the point geometry (pt) or a X and Y world "
@@ -3500,13 +4493,20 @@ msgid ""
 "of the raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2798
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordY"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2096
+#: reference_raster.xml:2804
 #, no-c-format
 msgid ""
-"SELECT rid, ST_World2RasterCoordY(rast,20.5) As ycoord, \n"
-"                ST_World2RasterCoordY(rast,3427927.8,20.5) As ycoord_xwyw, \n"
-"                ST_World2RasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 "
+"SELECT rid, ST_WorldToRasterCoordY(rast,20.5) As ycoord, \n"
+"                ST_WorldToRasterCoordY(rast,3427927.8,20.5) As "
+"ycoord_xwyw, \n"
+"                ST_WorldToRasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 "
 "20.5)',ST_SRID(rast))) As ptycoord\n"
 "FROM dummy_rast;\n"
 "\n"
@@ -3516,66 +4516,20 @@ msgid ""
 "   2 | 115864471 |   115864471 | 115864471"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:2108
-#, no-c-format
-msgid "ST_IsEmpty"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:2109
-#, no-c-format
-msgid ""
-"<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). "
-"Otherwise, returns false.</refpurpose>"
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:2114
-#, no-c-format
-msgid ""
-"<funcdef>boolean <function>ST_IsEmpty</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:2124
-#, no-c-format
-msgid ""
-"<para>Returns true if the raster is empty (width = 0 and height = 0). "
-"Otherwise, returns false.</para>"
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:2132
-#, no-c-format
-msgid ""
-"SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
-"st_isempty |\n"
-"-----------+\n"
-"f          |\n"
-"                       \n"
-"                        \n"
-"SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
-"st_isempty |\n"
-"-----------+\n"
-"t          |"
-msgstr ""
-
 #. Tag: title
-#: reference_raster.xml:2144
+#: reference_raster.xml:2817
 #, no-c-format
 msgid "Raster Band Accessors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2147
+#: reference_raster.xml:2820
 #, no-c-format
 msgid "ST_BandMetaData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2148
+#: reference_raster.xml:2821
 #, no-c-format
 msgid ""
 "Returns basic meta data for a specific raster band. band num 1 is assumed if "
@@ -3583,7 +4537,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2153
+#: reference_raster.xml:2826
 #, no-c-format
 msgid ""
 "<funcdef>record <function>ST_BandMetaData</function></funcdef> "
@@ -3593,7 +4547,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2164
+#: reference_raster.xml:2837
 #, no-c-format
 msgid ""
 "Returns basic meta data about a raster band. Columns returned pixeltype | "
@@ -3601,19 +4555,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2168
+#: reference_raster.xml:2841
 #, no-c-format
 msgid "If raster contains no bands then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2173
+#: reference_raster.xml:2846
 #, no-c-format
 msgid "If band has no NODATA value, nodatavalue will be NULL."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2182
+#: reference_raster.xml:2855
 #, no-c-format
 msgid ""
 "SELECT rid, (foo.md).*  \n"
@@ -3626,19 +4580,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2188
+#: reference_raster.xml:2861
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2194
+#: reference_raster.xml:2867
 #, no-c-format
 msgid "ST_BandNoDataValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2195
+#: reference_raster.xml:2868
 #, no-c-format
 msgid ""
 "Returns the value in a given band that represents no data. If no band num 1 "
@@ -3646,7 +4600,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2200
+#: reference_raster.xml:2873
 #, no-c-format
 msgid ""
 "<funcdef>double precision <function>ST_BandNoDataValue</function></funcdef> "
@@ -3656,13 +4610,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2211 reference_raster.xml:2342
+#: reference_raster.xml:2884 reference_raster.xml:3012
 #, no-c-format
 msgid "Returns the value that represents no data for the band"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2217
+#: reference_raster.xml:2890
 #, no-c-format
 msgid ""
 "SELECT ST_BandNoDataValue(rast,1) As bnval1, \n"
@@ -3677,19 +4631,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2230
+#: reference_raster.xml:2903
 #, no-c-format
 msgid "ST_BandIsNoData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2231
+#: reference_raster.xml:2904
 #, no-c-format
 msgid "Returns true if the band is filled with only nodata values."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2235
+#: reference_raster.xml:2908
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></"
@@ -3704,7 +4658,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2252
+#: reference_raster.xml:2925
 #, no-c-format
 msgid ""
 "Returns true if the band is filled with only nodata values. Band 1 is "
@@ -3715,19 +4669,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2262
+#: reference_raster.xml:2935
 #, no-c-format
 msgid ""
 "If the flag is dirty (this is, the result is different using TRUE as last "
 "parameter and not using it) you should update the raster to set this flag to "
-"true, by using ST_SetBandIsNodata function, or ST_SetBandNodataValue "
-"function with TRUE as last argument. The loader (raster2pgsql.py) currently "
-"can not properly set the flag while loading raster data. See <xref linkend="
-"\"RT_ST_SetBandIsNoData\"/>."
+"true, by using ST_SetBandIsNodata(), or ST_SetBandNodataValue() with TRUE as "
+"last argument. See <xref linkend=\"RT_ST_SetBandIsNoData\"/>."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2275
+#: reference_raster.xml:2945
 #, no-c-format
 msgid ""
 "-- Create dummy table with one raster column\n"
@@ -3787,7 +4739,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2281
+#: reference_raster.xml:2951
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
@@ -3795,13 +4747,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2290
+#: reference_raster.xml:2960
 #, no-c-format
 msgid "ST_BandPath"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2291
+#: reference_raster.xml:2961
 #, no-c-format
 msgid ""
 "Returns system file path to a band stored in file system. If no bandnum "
@@ -3809,7 +4761,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2296
+#: reference_raster.xml:2966
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_BandPath</function></funcdef> "
@@ -3819,7 +4771,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2307
+#: reference_raster.xml:2977
 #, no-c-format
 msgid ""
 "Returns system file path to a band. Throws an error if called with an in db "
@@ -3827,19 +4779,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2313
+#: reference_raster.xml:2983
 #, no-c-format
 msgid "<!-- TODO: -->"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2325
+#: reference_raster.xml:2995
 #, no-c-format
 msgid "ST_BandPixelType"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2326
+#: reference_raster.xml:2996
 #, no-c-format
 msgid ""
 "Returns the type of pixel for given band. If no bandnum specified, 1 is "
@@ -3847,7 +4799,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2331
+#: reference_raster.xml:3001
 #, no-c-format
 msgid ""
 "<funcdef>text <function>ST_BandPixelType</function></funcdef> "
@@ -3857,79 +4809,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2343
+#: reference_raster.xml:3013
 #, no-c-format
 msgid "There are 11 pixel types. Pixel Types supported are as follows:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2346
+#: reference_raster.xml:3016
 #, no-c-format
 msgid "1BB - 1-bit boolean"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2350
+#: reference_raster.xml:3020
 #, no-c-format
 msgid "2BUI - 2-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2354
+#: reference_raster.xml:3024
 #, no-c-format
 msgid "4BUI - 4-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2358
+#: reference_raster.xml:3028
 #, no-c-format
 msgid "8BSI - 8-bit signed integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2361
+#: reference_raster.xml:3031
 #, no-c-format
 msgid "8BUI - 8-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2364
+#: reference_raster.xml:3034
 #, no-c-format
 msgid "16BSI - 16-bit signed integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2367
+#: reference_raster.xml:3037
 #, no-c-format
 msgid "16BUI - 16-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2370
+#: reference_raster.xml:3040
 #, no-c-format
 msgid "32BSI - 32-bit signed integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2373
+#: reference_raster.xml:3043
 #, no-c-format
 msgid "32BUI - 32-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2376
+#: reference_raster.xml:3046
 #, no-c-format
 msgid "32BF - 32-bit float"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2379
+#: reference_raster.xml:3049
 #, no-c-format
 msgid "64BF - 64-bit float"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2388
+#: reference_raster.xml:3058
 #, no-c-format
 msgid ""
 "SELECT ST_BandPixelType(rast,1) As btype1, \n"
@@ -3943,13 +4895,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2400
+#: reference_raster.xml:3070
 #, no-c-format
 msgid "ST_HasNoBand"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2401
+#: reference_raster.xml:3071
 #, no-c-format
 msgid ""
 "<refpurpose>Returns true if there is no band with given band number. If no "
@@ -3957,7 +4909,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2406
+#: reference_raster.xml:3076
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_HasNoBand</function></funcdef> "
@@ -3966,7 +4918,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2417
+#: reference_raster.xml:3087
 #, no-c-format
 msgid ""
 "<para>Returns true if there is no band with given band number. If no band "
@@ -3974,7 +4926,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2425
+#: reference_raster.xml:3095
 #, no-c-format
 msgid ""
 "SELECT rid, ST_HasNoBand(rast) As hb1, ST_HasNoBand(rast,2) as hb2, \n"
@@ -3988,19 +4940,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:2438
+#: reference_raster.xml:3108
 #, no-c-format
 msgid "Raster Pixel Accessors and Setters"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2442
+#: reference_raster.xml:3112
 #, no-c-format
 msgid "ST_PixelAsPolygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2443
+#: reference_raster.xml:3113
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the polygon geometry that bounds the pixel for a "
@@ -4008,7 +4960,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2448
+#: reference_raster.xml:3118
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsPolygon</function></funcdef> "
@@ -4018,7 +4970,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2460
+#: reference_raster.xml:3130
 #, no-c-format
 msgid ""
 "<para>Returns the polygon geometry that bounds the pixel for a particular "
@@ -4026,7 +4978,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2468
+#: reference_raster.xml:3138
 #, no-c-format
 msgid ""
 "-- get raster pixel polygon\n"
@@ -4046,7 +4998,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2473
+#: reference_raster.xml:3143
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend="
@@ -4056,13 +5008,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2488
+#: reference_raster.xml:3158
 #, no-c-format
 msgid "ST_PixelAsPolygons"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2489
+#: reference_raster.xml:3159
 #, no-c-format
 msgid ""
 "Returns the polygon geometry that bounds every pixel of a raster band along "
@@ -4070,7 +5022,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2494
+#: reference_raster.xml:3164
 #, no-c-format
 msgid ""
 "<funcdef>setof record <function>ST_PixelAsPolygons</function></funcdef> "
@@ -4081,7 +5033,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2506
+#: reference_raster.xml:3176
 #, no-c-format
 msgid ""
 "Returns the polygon geometry that bounds every pixel of a raster band along "
@@ -4090,7 +5042,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2509
+#: reference_raster.xml:3179
 #, no-c-format
 msgid ""
 "ST_PixelAsPolygons returns one polygon geometry for every pixel. This is "
@@ -4099,13 +5051,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2515
+#: reference_raster.xml:3184
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3190
 #, no-c-format
 msgid "Enhanced: 2.1.0 exclude_nodata_value optional argument was added."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:3191 reference_raster.xml:3285
+#: reference_raster.xml:3379
+#, no-c-format
+msgid "Changed: 2.1.1 Changed behavior of exclude_nodata_value."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2520
+#: reference_raster.xml:3196
 #, no-c-format
 msgid ""
 "-- get raster pixel polygon\n"
@@ -4131,7 +5098,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2525
+#: reference_raster.xml:3201
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4141,13 +5108,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2539
+#: reference_raster.xml:3215
 #, no-c-format
 msgid "ST_PixelAsPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2540
+#: reference_raster.xml:3216
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a point geometry of the pixel's upper-left corner.</"
@@ -4155,7 +5122,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2546
+#: reference_raster.xml:3222
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsPoint</function></funcdef> "
@@ -4165,13 +5132,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2557
+#: reference_raster.xml:3233
 #, no-c-format
 msgid "<para>Returns a point geometry of the pixel's upper-left corner.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2563
+#: reference_raster.xml:3239
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_PixelAsPoint(rast, 1, 1)) FROM dummy_rast WHERE rid = "
@@ -4183,7 +5150,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2568
+#: reference_raster.xml:3244
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4193,13 +5160,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2582
+#: reference_raster.xml:3258
 #, no-c-format
 msgid "ST_PixelAsPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2583
+#: reference_raster.xml:3259
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a point geometry for each pixel of a raster band along "
@@ -4209,7 +5176,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2589
+#: reference_raster.xml:3265
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsPoints</function></funcdef> "
@@ -4220,7 +5187,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2600
+#: reference_raster.xml:3276
 #, no-c-format
 msgid ""
 "<para>Returns a point geometry for each pixel of a raster band along with "
@@ -4228,8 +5195,16 @@ msgid ""
 "of the point geometry are of the pixel's upper-left corner.</para>"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:3280 reference_raster.xml:3374
+#, no-c-format
+msgid ""
+"When exclude_nodata_value = TRUE, only those pixels whose values are not "
+"NODATA are returned as points."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2608
+#: reference_raster.xml:3290
 #, no-c-format
 msgid ""
 "SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsPoints(rast, 1)).* "
@@ -4265,7 +5240,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2613
+#: reference_raster.xml:3295
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4275,13 +5250,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2627
+#: reference_raster.xml:3309
 #, no-c-format
 msgid "ST_PixelAsCentroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2628
+#: reference_raster.xml:3310
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the centroid (point geometry) of the area represented by "
@@ -4289,7 +5264,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2634
+#: reference_raster.xml:3316
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsCentroid</function></funcdef> "
@@ -4299,7 +5274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2645
+#: reference_raster.xml:3327
 #, no-c-format
 msgid ""
 "<para>Returns the centroid (point geometry) of the area represented by a "
@@ -4307,7 +5282,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2651
+#: reference_raster.xml:3333
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(ST_PixelAsCentroid(rast, 1, 1)) FROM dummy_rast WHERE rid = "
@@ -4319,7 +5294,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2656
+#: reference_raster.xml:3338
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4328,13 +5303,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2670
+#: reference_raster.xml:3352
 #, no-c-format
 msgid "ST_PixelAsCentroids"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2671
+#: reference_raster.xml:3353
 #, no-c-format
 msgid ""
 "<refpurpose>Returns the centroid (point geometry) for each pixel of a raster "
@@ -4344,7 +5319,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2677
+#: reference_raster.xml:3359
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_PixelAsCentroids</function></funcdef> "
@@ -4355,7 +5330,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2688
+#: reference_raster.xml:3370
 #, no-c-format
 msgid ""
 "<para>Returns the centroid (point geometry) for each pixel of a raster band "
@@ -4364,7 +5339,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2696
+#: reference_raster.xml:3384
 #, no-c-format
 msgid ""
 "SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsCentroids(rast, "
@@ -4399,7 +5374,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2701
+#: reference_raster.xml:3389
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend="
@@ -4408,13 +5383,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2715
+#: reference_raster.xml:3403
 #, no-c-format
 msgid "ST_Value"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2716
+#: reference_raster.xml:3404
 #, no-c-format
 msgid ""
 "Returns the value of a given band in a given columnx, rowy pixel or at a "
@@ -4426,7 +5401,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2720
+#: reference_raster.xml:3408
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>double precision <function>ST_Value</function></"
@@ -4456,7 +5431,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2755
+#: reference_raster.xml:3443
 #, no-c-format
 msgid ""
 "Returns the value of a given band in a given columnx, rowy pixel or at a "
@@ -4468,13 +5443,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2758
+#: reference_raster.xml:3446
 #, no-c-format
 msgid "Enhanced: 2.0.0 exclude_nodata_value optional argument was added."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2763
+#: reference_raster.xml:3451
 #, no-c-format
 msgid ""
 "-- get raster values at particular postgis geometry points\n"
@@ -4497,7 +5472,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2764
+#: reference_raster.xml:3452
 #, no-c-format
 msgid ""
 "SELECT rid, ST_Value(rast, 1, 1, 1) As b1pval, \n"
@@ -4511,7 +5486,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2766
+#: reference_raster.xml:3454
 #, no-c-format
 msgid ""
 "--- Get all values in bands 1,2,3 of each pixel --\n"
@@ -4535,7 +5510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2768
+#: reference_raster.xml:3456
 #, no-c-format
 msgid ""
 "--- Get all values in bands 1,2,3 of each pixel same as above but returning "
@@ -4559,7 +5534,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2769
+#: reference_raster.xml:3457
 #, no-c-format
 msgid ""
 "--- Get a polygon formed by union of all pixels \n"
@@ -4608,7 +5583,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2771
+#: reference_raster.xml:3459
 #, no-c-format
 msgid ""
 "--- Checking all the pixels of a large raster tile can take a long time.\n"
@@ -4651,25 +5626,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2776
+#: reference_raster.xml:3464
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_PixelAsPolygon\"/"
-">, <xref linkend=\"RT_ST_ScaleX\"/>, , <xref linkend=\"RT_ST_ScaleY\"/>, "
-"<xref linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>, "
-"<xref linkend=\"RT_ST_SRID\"/>, <xref linkend=\"ST_AsText\"/>, , <xref "
-"linkend=\"ST_Point\"/>, <xref linkend=\"ST_MakeEnvelope\"/>, <xref linkend="
-"\"ST_Intersects\"/>, <xref linkend=\"ST_Intersection\"/>"
+", <xref linkend=\"RT_ST_DumpAsPolygons\"/>, <xref linkend=\"RT_ST_NumBands\"/"
+">, <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_ScaleX\"/"
+">, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
+"<xref linkend=\"RT_ST_UpperLeftY\"/>, <xref linkend=\"RT_ST_SRID\"/>, <xref "
+"linkend=\"ST_AsText\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend="
+"\"ST_MakeEnvelope\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend="
+"\"ST_Intersection\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2786
+#: reference_raster.xml:3485
 #, no-c-format
 msgid "ST_NearestValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2787
+#: reference_raster.xml:3486
 #, no-c-format
 msgid ""
 "Returns the nearest non-<varname>NODATA</varname> value of a given band's "
@@ -4678,7 +5654,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2793
+#: reference_raster.xml:3492
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>double precision <function>ST_NearestValue</"
@@ -4708,7 +5684,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2830
+#: reference_raster.xml:3529
 #, no-c-format
 msgid ""
 "Returns the nearest non-<varname>NODATA</varname> value of a given band in a "
@@ -4719,7 +5695,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2833 reference_raster.xml:2920
+#: reference_raster.xml:3532 reference_raster.xml:3619
 #, no-c-format
 msgid ""
 "Band numbers start at 1 and <varname>bandnum</varname> is assumed to be 1 if "
@@ -4730,13 +5706,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2838
+#: reference_raster.xml:3537
 #, no-c-format
 msgid "ST_NearestValue is a drop-in replacement for ST_Value."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2847
+#: reference_raster.xml:3546
 #, no-c-format
 msgid ""
 "-- pixel 2x2 has value\n"
@@ -4751,8 +5727,8 @@ msgid ""
 "                                        ST_SetValue(\n"
 "                                                ST_SetValue(\n"
 "                                                        ST_AddBand(\n"
-"                                                                ST_MakeEmptyRaster"
-"(5, 5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
 "                                                                '8BUI'::"
 "text, 1, 0\n"
 "                                                        ),\n"
@@ -4774,7 +5750,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2849
+#: reference_raster.xml:3548
 #, no-c-format
 msgid ""
 "-- pixel 2x3 is NODATA\n"
@@ -4789,8 +5765,8 @@ msgid ""
 "                                        ST_SetValue(\n"
 "                                                ST_SetValue(\n"
 "                                                        ST_AddBand(\n"
-"                                                                ST_MakeEmptyRaster"
-"(5, 5, -2, 2, 1, -1, 0, 0, 0),\n"
+"                                                                ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
 "                                                                '8BUI'::"
 "text, 1, 0\n"
 "                                                        ),\n"
@@ -4812,19 +5788,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2855
+#: reference_raster.xml:3554
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Value\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2865
+#: reference_raster.xml:3564
 #, no-c-format
 msgid "ST_Neighborhood"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2866
+#: reference_raster.xml:3565
 #, no-c-format
 msgid ""
 "Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
@@ -4834,7 +5810,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2872
+#: reference_raster.xml:3571
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</"
@@ -4872,7 +5848,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2917
+#: reference_raster.xml:3616
 #, no-c-format
 msgid ""
 "Returns a 2-D double precision array of the non-<varname>NODATA</varname> "
@@ -4887,7 +5863,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2924
+#: reference_raster.xml:3623
 #, no-c-format
 msgid ""
 "The number of elements along each axis of the returning 2-D array is 2 * "
@@ -4897,15 +5873,15 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2929
+#: reference_raster.xml:3628
 #, no-c-format
 msgid ""
-"The 2-D array output can be passed along to any of the raster processing "
-"builtin functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
+"The 2-D array output can be passed to any of the raster processing builtin "
+"functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2939
+#: reference_raster.xml:3638
 #, no-c-format
 msgid ""
 "-- pixel 2x2 has value\n"
@@ -4936,7 +5912,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2941
+#: reference_raster.xml:3640
 #, no-c-format
 msgid ""
 "-- pixel 2x3 is NODATA\n"
@@ -4967,7 +5943,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2943
+#: reference_raster.xml:3642
 #, no-c-format
 msgid ""
 "-- pixel 3x3 has value\n"
@@ -4998,7 +5974,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2949
+#: reference_raster.xml:3648
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
@@ -5008,66 +5984,68 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2966
+#: reference_raster.xml:3665
 #, no-c-format
 msgid "ST_SetValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2967
+#: reference_raster.xml:3666
 #, no-c-format
 msgid ""
 "Returns modified raster resulting from setting the value of a given band in "
-"a given columnx, rowy pixel or at a pixel that intersects a particular "
-"geometric point. Band numbers start at 1 and assumed to be 1 if not "
-"specified."
+"a given columnx, rowy pixel or the pixels that intersect a particular "
+"geometry. Band numbers start at 1 and assumed to be 1 if not specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2971
+#: reference_raster.xml:3670
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
 "<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
 "<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
-"<parameter>bandnum</parameter></paramdef> <paramdef><type>geometry </type> "
-"<parameter>pt</parameter></paramdef> <paramdef><type>double precision </"
+"<parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> "
+"<parameter>geom</parameter></paramdef> <paramdef><type>double precision </"
 "type> <parameter>newvalue</parameter></paramdef> </funcprototype> "
 "<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> "
 "<paramdef><type>double precision </type> <parameter>newvalue</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
 "<function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> "
 "<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
-"<parameter>bandnum</parameter></paramdef> <paramdef><type>integer </type> "
 "<parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> "
 "<parameter>rowy</parameter></paramdef> <paramdef><type>double precision </"
 "type> <parameter>newvalue</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3005
+#: reference_raster.xml:3704
 #, no-c-format
 msgid ""
-"Returns modified raster resulting from setting the specified pixel value to "
-"new value for the designed band given the row column location or a geometric "
-"point location. If no band is specified, then band 1 is assumed."
+"Returns modified raster resulting from setting the specified pixels' values "
+"to new value for the designed band given the raster's row and column or a "
+"geometry. If no band is specified, then band 1 is assumed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3008
+#: reference_raster.xml:3707
 #, no-c-format
-msgid "Setting by geometry currently only works for points."
+msgid ""
+"Enhanced: 2.1.0 Geometry variant of ST_SetValue() now supports any geometry "
+"type, not just point. The geometry variant is a wrapper around the geomval[] "
+"variant of ST_SetValues()"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3014
+#: reference_raster.xml:3713
 #, no-c-format
 msgid ""
 "-- Geometry example\n"
@@ -5090,36 +6068,36 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3016
+#: reference_raster.xml:3715
 #, no-c-format
 msgid ""
 "-- Store the changed raster --\n"
-"        UPDATE dummy_rast SET rast = ST_SetValue(rast,1, ST_Point"
-"(3427927.75, 5793243.95),100)\n"
+"        UPDATE dummy_rast SET rast = ST_SetValue(rast,1, "
+"ST_Point(3427927.75, 5793243.95),100)\n"
 "                WHERE rid = 2   ;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3020 reference_raster.xml:6296
+#: reference_raster.xml:3719 reference_raster.xml:9319
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_DumpAsPolygons\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3026
+#: reference_raster.xml:3725
 #, no-c-format
 msgid "ST_SetValues"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3027
+#: reference_raster.xml:3726
 #, no-c-format
 msgid ""
 "Returns modified raster resulting from setting the values of a given band."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3031
+#: reference_raster.xml:3730
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
@@ -5157,19 +6135,34 @@ msgid ""
 "<parameter>width</parameter></paramdef> <paramdef><type>integer </type> "
 "<parameter>height</parameter></paramdef> <paramdef><type>double precision </"
 "type> <parameter>newvalue</parameter></paramdef> <paramdef><type>boolean </"
-"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype>"
+"type> <parameter>keepnodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geomval[] </type> <parameter>geomvalset</parameter></"
+"paramdef> <paramdef><type>boolean </type> <parameter>keepnodata=FALSE</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3789
+#, no-c-format
+msgid ""
+"Returns modified raster resulting from setting specified pixels to new "
+"value(s) for the designated band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3082
+#: reference_raster.xml:3793
 #, no-c-format
 msgid ""
-"Returns modified raster resulting from setting specified pixels to new value"
-"(s) for the designated band."
+"If <varname>keepnodata</varname> is TRUE, those pixels whose values are "
+"NODATA will not be set with the corresponding value in <varname>newvalueset</"
+"varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3086
+#: reference_raster.xml:3797
 #, no-c-format
 msgid ""
 "For Variant 1, the specific pixels to be set are determined by the "
@@ -5177,13 +6170,11 @@ msgid ""
 "the dimensions of the <varname>newvalueset</varname> array. <varname>noset</"
 "varname> can be used to prevent pixels with values present in "
 "<varname>newvalueset</varname> from being set (due to PostgreSQL not "
-"permitting ragged/jagged arrays). If <varname>keepnodata</varname> is TRUE, "
-"those pixels whose values are NODATA will not be set with the corresponding "
-"value in <varname>newvalueset</varname>. See example Variant 1."
+"permitting ragged/jagged arrays). See example Variant 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3090
+#: reference_raster.xml:3801
 #, no-c-format
 msgid ""
 "Variant 2 is like Variant 1 but with a simple double precision "
@@ -5193,33 +6184,45 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3094
+#: reference_raster.xml:3805
 #, no-c-format
 msgid ""
 "For Variant 3, the specific pixels to be set are determined by the "
 "<varname>columnx</varname>, <varname>rowy</varname> pixel coordinates, "
-"<varname>width</varname> and <varname>height</varname>. If "
-"<varname>keepnodata</varname> is TRUE, those pixels whose values are NODATA "
-"will not be set with the corresponding value in <varname>newvalueset</"
-"varname>. See example Variant 3."
+"<varname>width</varname> and <varname>height</varname>. See example Variant "
+"3."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3098
+#: reference_raster.xml:3809
 #, no-c-format
 msgid ""
 "Variant 4 is the same as Variant 3 with the exception that it assumes that "
 "the first band's pixels of <varname>rast</varname> will be set."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:3813
+#, no-c-format
+msgid ""
+"For Variant 5, an array of <xref linkend=\"geomval\"/> is used to determine "
+"the specific pixels to be set. If all the geometries in the array are of "
+"type POINT or MULTIPOINT, the function uses a shortcut where the longitude "
+"and latitude of each point is used to set a pixel directly. Otherwise, the "
+"geometries are converted to rasters and then iterated through in one pass. "
+"See example Variant 5."
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:3107 reference_raster.xml:5583
+#: reference_raster.xml:3822 reference_raster.xml:6730
+#: reference_raster.xml:8262 reference_raster.xml:8705
+#: reference_raster.xml:8802 reference_raster.xml:8930
 #, no-c-format
 msgid "Examples: Variant 1"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3109
+#: reference_raster.xml:3824
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5267,7 +6270,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3111
+#: reference_raster.xml:3826
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5315,7 +6318,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3113
+#: reference_raster.xml:3828
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5365,7 +6368,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3115
+#: reference_raster.xml:3830
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5419,13 +6422,15 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3120
+#: reference_raster.xml:3835 reference_raster.xml:8269
+#: reference_raster.xml:8710 reference_raster.xml:8807
+#: reference_raster.xml:8935
 #, no-c-format
 msgid "Examples: Variant 2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3122
+#: reference_raster.xml:3837
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5473,7 +6478,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3124
+#: reference_raster.xml:3839
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5524,13 +6529,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3129
+#: reference_raster.xml:3844 reference_raster.xml:4788
 #, no-c-format
 msgid "Examples: Variant 3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3131
+#: reference_raster.xml:3846
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5577,7 +6582,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3133
+#: reference_raster.xml:3848
 #, no-c-format
 msgid ""
 "/*\n"
@@ -5626,82 +6631,292 @@ msgid ""
 " 3 | 3 |   9"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:3139
+#. Tag: title
+#: reference_raster.xml:3853
 #, no-c-format
-msgid ""
-", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_PixelAsPolygons"
-"\"/>"
+msgid "Examples: Variant 5"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:3149
+#. Tag: programlisting
+#: reference_raster.xml:3855
 #, no-c-format
-msgid "ST_PixelOfValue"
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        rid, gid, ST_DumpValues(ST_SetValue(rast, 1, geom, gid))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"ORDER BY rid, gid;\n"
+"\n"
+" rid | gid |                                                                "
+"st_dumpvalues                                                                \n"
+"-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,NULL,1,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,"
+"NULL}}\")\n"
+"   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,"
+"NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   3 | (1,\"{{3,3,3,3,3},{3,NULL,NULL,NULL,NULL},{3,NULL,NULL,NULL,"
+"NULL},{3,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"   1 |   4 | (1,\"{{4,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,"
+"NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,4}}\")\n"
+"(4 rows)"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:3150
+#. Tag: para
+#: reference_raster.xml:3857
 #, no-c-format
 msgid ""
-"Get the columnx, rowy coordinates of the pixel whose value equals the search "
-"value."
+"The following shows that geomvals later in the array can overwrite prior "
+"geomvals"
 msgstr ""
 
-#. Tag: funcsynopsis
-#: reference_raster.xml:3156
+#. Tag: programlisting
+#: reference_raster.xml:3858
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></"
-"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
-"paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </"
-"paramdef> <paramdef> <type>double precision[] </type> <parameter>search</"
-"parameter> </paramdef> <paramdef> <type>boolean </type> "
-"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
-"funcprototype> <funcprototype> <funcdef>setof record "
-"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
-"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
-"precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> "
-"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
-"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
-"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
-"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </"
-"type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double "
-"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
-"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
-"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
-"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
-"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
-"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
-"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
-"paramdef> </funcprototype>"
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
+"SELECT\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 1\n"
+"        AND t3.gid = 2\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3217
+#: reference_raster.xml:3860
 #, no-c-format
-msgid ""
-"Get the columnx, rowy coordinates of the pixel whose value equals the search "
-"value. If no band is specified, then band 1 is assumed."
+msgid "This example is the opposite of the prior example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3226
+#: reference_raster.xml:3861
 #, no-c-format
 msgid ""
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, "
+"0, 0), 1, '8BUI', 0, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+"        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::"
+"geometry geom UNION ALL\n"
+"        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, "
+"0 0))'::geometry geom UNION ALL\n"
+"        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+")\n"
 "SELECT\n"
-"        (pixels).*\n"
-"FROM (\n"
-"        SELECT\n"
-"                ST_PixelOfValue(\n"
-"                        ST_SetValue(\n"
-"                                ST_SetValue(\n"
-"                                        ST_SetValue(\n"
-"                                                ST_SetValue(\n"
-"                                                        ST_SetValue(\n"
-"                                                                ST_AddBand(\n"
-"                                                                        ST_MakeEmptyRaster"
-"(5, 5, -2, 2, 1, -1, 0, 0, 0),\n"
+"        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, "
+"ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+"FROM foo t1\n"
+"CROSS JOIN bar t2\n"
+"CROSS JOIN bar t3\n"
+"WHERE t2.gid = 2\n"
+"        AND t3.gid = 1\n"
+"ORDER BY t1.rid, t2.gid, t3.gid;\n"
+"\n"
+" rid | gid | gid |                                                    "
+"st_dumpvalues                                                    \n"
+"-----+-----+-----"
+"+---------------------------------------------------------------------------------------------------------------------\n"
+"   1 |   2 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},"
+"{NULL,2,1,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3868
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_PixelAsPolygons"
+"\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3878
+#, no-c-format
+msgid "ST_DumpValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3879
+#, no-c-format
+msgid "Get the values of the specified band as a 2-dimension array."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3885
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_DumpValues</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer[] </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>double precision[][] "
+"<function>ST_DumpValues</function></funcdef> <paramdef> <type>raster </type> "
+"<parameter>rast</parameter> </paramdef> <paramdef> <type>integer </type> "
+"<parameter>nband</parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3916
+#, no-c-format
+msgid ""
+"Get the values of the specified band as a 2-dimension array. If "
+"<varname>nband</varname> is NULL or not provided, all raster bands are "
+"processed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3926
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast)).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"     2 | {{3,3,3},{3,3,3},{3,3,3}}\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3928
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, "
+"0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, "
+"0) AS rast\n"
+")\n"
+"SELECT\n"
+"        (ST_DumpValues(rast, ARRAY[3, 1])).*\n"
+"FROM foo;\n"
+"\n"
+" nband |                       valarray                       \n"
+"-------+------------------------------------------------------\n"
+"     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+"     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+"(2 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3933
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_SetValues\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3944
+#, no-c-format
+msgid "ST_PixelOfValue"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3945
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3951
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></"
+"funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </"
+"paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </"
+"paramdef> <paramdef> <type>double precision[] </type> <parameter>search</"
+"parameter> </paramdef> <paramdef> <type>boolean </type> "
+"<parameter>exclude_nodata_value=true</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </"
+"type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>setof record "
+"<function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>rast</parameter> </paramdef> <paramdef> <type>double "
+"precision </type> <parameter>search</parameter> </paramdef> <paramdef> "
+"<type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4012
+#, no-c-format
+msgid ""
+"Get the columnx, rowy coordinates of the pixel whose value equals the search "
+"value. If no band is specified, then band 1 is assumed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4021
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        (pixels).*\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_PixelOfValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_SetValue(\n"
+"                                                ST_SetValue(\n"
+"                                                        ST_SetValue(\n"
+"                                                                ST_AddBand(\n"
+"                                                                        ST_MakeEmptyRaster(5, "
+"5, -2, 2, 1, -1, 0, 0, 0),\n"
 "                                                                        '8BUI'::"
 "text, 1, 0\n"
 "                                                                ),\n"
@@ -5744,19 +6959,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3234
+#: reference_raster.xml:4029
 #, no-c-format
 msgid "Raster Editors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3238
+#: reference_raster.xml:4033
 #, no-c-format
 msgid "ST_SetGeoReference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3239
+#: reference_raster.xml:4034
 #, no-c-format
 msgid ""
 "Set Georeference 6 georeference parameters in a single call. Numbers should "
@@ -5764,19 +6979,29 @@ msgid ""
 "is GDAL."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:3244
+#. Tag: funcsynopsis
+#: reference_raster.xml:4038
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_SetGeoReference</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>georefcoords</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</"
-"parameter></paramdef>"
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>georefcoords</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>format=GDAL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>upperleftx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>upperlefty</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>scalex</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>scaley</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>skewx</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>skewy</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3256
+#: reference_raster.xml:4064
 #, no-c-format
 msgid ""
 "Set Georeference 6 georeference parameters in a single call. Accepts inputs "
@@ -5785,34 +7010,76 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3259
+#: reference_raster.xml:4067
 #, no-c-format
 msgid "scalex skewy skewx scaley upperleftx upperlefty"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3261
+#: reference_raster.xml:4069
 #, no-c-format
 msgid ""
 "scalex skewy skewx scaley upperleftx + scalex*0.5 upperlefty + scaley*0.5"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4072
+#, no-c-format
+msgid ""
+"If the raster has out-db bands, changing the georeference may result in "
+"incorrect access of the band's externally stored data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4077
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 Addition of ST_SetGeoReference(raster, double "
+"precision, ...) variant"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:3267
+#: reference_raster.xml:4084
 #, no-c-format
 msgid ""
-"UPDATE dummy_rast SET rast = ST_SetGeoReference(rast, '2 0 0 3 0.5 "
-"0.5','GDAL') \n"
-"        WHERE rid=1;\n"
-"        \n"
-"-- same coordinates set in 'ESRI' format\n"
-"UPDATE dummy_rast SET rast = ST_SetGeoReference(rast, '2 0 0 3 1.5 "
-"2','ESRI') \n"
-"        WHERE rid=1;"
+"WITH foo AS (\n"
+"        SELECT ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        0 AS rid, (ST_Metadata(rast)).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        1, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 0.1 0.1', "
+"'GDAL'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 5.1 -4.9', "
+"'ESRI'))).*\n"
+"FROM foo\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3, (ST_Metadata(ST_SetGeoReference(rast, 1, 1, 10, -10, 0.001, "
+"0.001))).*\n"
+"FROM foo\n"
+"\n"
+" rid |     upperleftx     |     upperlefty     | width | height | scalex | "
+"scaley | skewx | skewy | srid | numbands \n"
+"-----+--------------------+--------------------+-------+--------+--------"
+"+--------+-------+-------+------+----------\n"
+"   0 |                  0 |                  0 |     5 |      5 |      1 "
+"|     -1 |     0 |     0 |    0 |        0\n"
+"   1 |                0.1 |                0.1 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   2 | 0.0999999999999996 | 0.0999999999999996 |     5 |      5 |     10 "
+"|    -10 |     0 |     0 |    0 |        0\n"
+"   3 |                  1 |                  1 |     5 |      5 |     10 "
+"|    -10 | 0.001 | 0.001 |    0 |        0"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3272
+#: reference_raster.xml:4089
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
@@ -5820,19 +7087,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3278
+#: reference_raster.xml:4095
 #, no-c-format
 msgid "ST_SetRotation"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3279
+#: reference_raster.xml:4096
 #, no-c-format
 msgid "Set the rotation of the raster in radian."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3284
+#: reference_raster.xml:4101
 #, no-c-format
 msgid ""
 "<funcdef>float8 <function>ST_SetRotation</function></funcdef> "
@@ -5841,7 +7108,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3295
+#: reference_raster.xml:4112
 #, no-c-format
 msgid ""
 "Uniformly rotate the raster. Rotation is in radian. Refer to <ulink url="
@@ -5850,7 +7117,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3301
+#: reference_raster.xml:4118
 #, no-c-format
 msgid ""
 "SELECT \n"
@@ -5870,13 +7137,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3314
+#: reference_raster.xml:4131
 #, no-c-format
 msgid "ST_SetScale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3315
+#: reference_raster.xml:4132
 #, no-c-format
 msgid ""
 "Sets the X and Y size of pixels in units of coordinate reference system. "
@@ -5884,7 +7151,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3319
+#: reference_raster.xml:4136
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> "
@@ -5898,7 +7165,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3338
+#: reference_raster.xml:4155
 #, no-c-format
 msgid ""
 "Sets the X and Y size of pixels in units of coordinate reference system. "
@@ -5907,7 +7174,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3341
+#: reference_raster.xml:4158
 #, no-c-format
 msgid ""
 "ST_SetScale is different from <xref linkend=\"RT_ST_Rescale\"/> in that "
@@ -5920,7 +7187,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3343
+#: reference_raster.xml:4160
 #, no-c-format
 msgid ""
 "Changed: 2.0.0 In WKTRaster versions this was called ST_SetPixelSize. This "
@@ -5928,7 +7195,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3349
+#: reference_raster.xml:4166
 #, no-c-format
 msgid ""
 "UPDATE dummy_rast \n"
@@ -5946,7 +7213,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3350
+#: reference_raster.xml:4167
 #, no-c-format
 msgid ""
 "UPDATE dummy_rast \n"
@@ -5964,19 +7231,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3356
+#: reference_raster.xml:4173
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_Box3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3362
+#: reference_raster.xml:4179
 #, no-c-format
 msgid "ST_SetSkew"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3363
+#: reference_raster.xml:4180
 #, no-c-format
 msgid ""
 "Sets the georeference X and Y skew (or rotation parameter). If only one is "
@@ -5984,7 +7251,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3367
+#: reference_raster.xml:4184
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> "
@@ -5998,7 +7265,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3385
+#: reference_raster.xml:4202
 #, no-c-format
 msgid ""
 "Sets the georeference X and Y skew (or rotation parameter). If only one is "
@@ -6007,7 +7274,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3392
+#: reference_raster.xml:4209
 #, no-c-format
 msgid ""
 "-- Example 1                    \n"
@@ -6027,7 +7294,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3394
+#: reference_raster.xml:4211
 #, no-c-format
 msgid ""
 "-- Example 2 set both to same number:\n"
@@ -6047,7 +7314,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3401
+#: reference_raster.xml:4218
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_SetGeoReference\"/>, <xref linkend=\"RT_ST_SkewX\"/"
@@ -6055,13 +7322,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3407
+#: reference_raster.xml:4224
 #, no-c-format
 msgid "ST_SetSRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3409
+#: reference_raster.xml:4226
 #, no-c-format
 msgid ""
 "Sets the SRID of a raster to a particular integer srid defined in the "
@@ -6069,7 +7336,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3414
+#: reference_raster.xml:4231
 #, no-c-format
 msgid ""
 "<funcdef>raster <function>ST_SetSRID</function></funcdef> "
@@ -6078,13 +7345,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3429
+#: reference_raster.xml:4246
 #, no-c-format
 msgid "Sets the SRID on a raster to a particular integer value."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3432
+#: reference_raster.xml:4249
 #, no-c-format
 msgid ""
 "This function does not transform the raster in any way - it simply sets meta "
@@ -6093,19 +7360,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3442
+#: reference_raster.xml:4259
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3449
+#: reference_raster.xml:4266
 #, no-c-format
 msgid "ST_SetUpperLeft"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3450
+#: reference_raster.xml:4267
 #, no-c-format
 msgid ""
 "Sets the value of the upper left corner of the pixel to projected X and Y "
@@ -6113,7 +7380,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3455
+#: reference_raster.xml:4272
 #, no-c-format
 msgid ""
 "<funcdef>raster <function>ST_SetUpperLeft</function></funcdef> "
@@ -6123,7 +7390,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3467
+#: reference_raster.xml:4284
 #, no-c-format
 msgid ""
 "Set the value of the upper left corner of raster to the projected X "
@@ -6131,7 +7398,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3473
+#: reference_raster.xml:4290
 #, no-c-format
 msgid ""
 "SELECT ST_SetUpperLeft(rast,-71.01,42.37)  \n"
@@ -6140,39 +7407,36 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3479
+#: reference_raster.xml:4296
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_UpperLeftY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3485
+#: reference_raster.xml:4302
 #, no-c-format
 msgid "ST_Resample"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3486
+#: reference_raster.xml:4303
 #, no-c-format
 msgid ""
 "Resample a raster using a specified resampling algorithm, new dimensions, an "
 "arbitrary grid corner and a set of raster georeferencing attributes defined "
-"or borrowed from another raster. New pixel values are computed using the "
-"NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline "
-"or Lanczos resampling algorithm. Default is NearestNeighbor."
+"or borrowed from another raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3490
+#: reference_raster.xml:4309
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
 "<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> <parameter>srid=same_as_rast</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
-"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
 "\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
 "paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
 "<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
@@ -6182,17 +7446,16 @@ msgid ""
 "choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
 "parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
 "<function>ST_Resample</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>integer </type> <parameter>srid=NULL</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> <parameter>scalex=0</"
+"<parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>double "
+"precision </type> <parameter>scalex=0</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>double precision </type> <parameter>scaley=0</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
-"type> <parameter>scaley=0</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>gridx=NULL</parameter></"
+"type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>gridy=NULL</parameter></"
 "paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>gridy=NULL</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>skewx=0</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> <parameter>skewy=0</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>skewx=0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>skewy=0</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
 "<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
 "\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
@@ -6214,27 +7477,28 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3542
+#: reference_raster.xml:4359
 #, no-c-format
 msgid ""
 "Resample a raster using a specified resampling algorithm, new dimensions "
 "(width & height), a grid corner (gridx & gridy) and a set of raster "
 "georeferencing attributes (scalex, scaley, skewx & skewy) defined or "
-"borrowed from another raster."
+"borrowed from another raster. If using a reference raster, the two rasters "
+"must have the same SRID."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3544
+#: reference_raster.xml:4363
 #, no-c-format
 msgid ""
-"New pixel values are computed using the NearestNeighbor (english or american "
+"New pixel values are computed using the NearestNeighbor (English or American "
 "spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. "
 "Default is NearestNeighbor which is the fastest but produce the worst "
 "interpolation."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3546 reference_raster.xml:3603
+#: reference_raster.xml:4367 reference_raster.xml:4434
 #, no-c-format
 msgid ""
 "A maxerror percent of 0.125 is used if no <varname>maxerr</varname> is "
@@ -6242,15 +7506,8 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3548 reference_raster.xml:3607
-#: reference_raster.xml:3667 reference_raster.xml:3746
-#, no-c-format
-msgid "Only works if raster is in a known spatial reference system (SRID)."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:3549 reference_raster.xml:3605
-#: reference_raster.xml:3669 reference_raster.xml:3748
+#: reference_raster.xml:4372 reference_raster.xml:4436
+#: reference_raster.xml:4504 reference_raster.xml:4582
 #, no-c-format
 msgid ""
 "Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp "
@@ -6258,45 +7515,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3550 reference_raster.xml:3611
-#: reference_raster.xml:3673 reference_raster.xml:3752
-#: reference_raster.xml:3805
+#: reference_raster.xml:4376 reference_raster.xml:4440
+#: reference_raster.xml:4508 reference_raster.xml:4586
+#: reference_raster.xml:4742
 #, no-c-format
 msgid "Availability: 2.0.0 Requires GDAL 1.6.1+"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4377
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 Parameter srid removed. Variants with a reference raster no "
+"longer applies the reference raster's SRID. Use ST_Transform() to reproject "
+"raster. Works on rasters with no SRID."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:3556
+#: reference_raster.xml:4383
 #, no-c-format
 msgid ""
-"SELECT ST_Width(orig) As orig_width, ST_Width(reduce_100) As new_width\n"
-" FROM (\n"
-" SELECT rast As orig, ST_Resample(rast,100,100) As reduce_100   \n"
-"  FROM aerials.boston \n"
+"SELECT\n"
+"        ST_Width(orig) AS orig_width,\n"
+"        ST_Width(reduce_100) AS new_width\n"
+"FROM (\n"
+"        SELECT\n"
+"                rast AS orig,\n"
+"                ST_Resample(rast,100,100) AS reduce_100\n"
+"        FROM aerials.boston \n"
 "        WHERE ST_Intersects(rast,\n"
-"          ST_Transform(\n"
-"            ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, "
-"4326),26986) ) \n"
-"                limit 1 ) As foo;\n"
+"                ST_Transform(\n"
+"                        ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, "
+"4326),26986)\n"
+"        )\n"
+"        LIMIT 1\n"
+") AS foo;\n"
+"\n"
 " orig_width | new_width\n"
 "------------+-------------\n"
 "        200 |         100"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3561
+#: reference_raster.xml:4388
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgid ", <xref linkend=\"RT_ST_Resize\"/>, <xref linkend=\"RT_ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3567
+#: reference_raster.xml:4398
 #, no-c-format
 msgid "ST_Rescale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3568
+#: reference_raster.xml:4399
 #, no-c-format
 msgid ""
 "Resample a raster by adjusting only its scale (or pixel size). New pixel "
@@ -6306,7 +7579,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3573
+#: reference_raster.xml:4404
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Rescale</function></funcdef> "
@@ -6326,7 +7599,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3597
+#: reference_raster.xml:4428
 #, no-c-format
 msgid ""
 "Resample a raster by adjusting only its scale (or pixel size). New pixel "
@@ -6337,7 +7610,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3599
+#: reference_raster.xml:4430
 #, no-c-format
 msgid ""
 "<varname>scalex</varname> and <varname>scaley</varname> define the new pixel "
@@ -6345,16 +7618,17 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3601
+#: reference_raster.xml:4432
 #, no-c-format
 msgid ""
 "When the new scalex or scaley is not a divisor of the raster width or "
 "height, the extent of the resulting raster is expanded to encompass the "
-"extent of the provided raster."
+"extent of the provided raster. If you want to be sure to retain exact input "
+"extent see <xref linkend=\"RT_ST_Resize\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3609
+#: reference_raster.xml:4438
 #, no-c-format
 msgid ""
 "ST_Rescale is different from <xref linkend=\"RT_ST_SetScale\"/> in that "
@@ -6367,7 +7641,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3616
+#: reference_raster.xml:4441 reference_raster.xml:4509
+#: reference_raster.xml:4587
+#, no-c-format
+msgid "Changed: 2.1.0 Works on rasters with no SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4446
 #, no-c-format
 msgid ""
 "A simple example rescaling a raster from a pixel size of 0.001 degree to a "
@@ -6375,7 +7656,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3618
+#: reference_raster.xml:4448
 #, no-c-format
 msgid ""
 "-- the original raster pixel size\n"
@@ -6396,21 +7677,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3623
+#: reference_raster.xml:4453
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
-"linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+", <xref linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_SetScale\"/>, "
+"<xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref "
+"linkend=\"RT_ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3629
+#: reference_raster.xml:4466
 #, no-c-format
 msgid "ST_Reskew"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3630
+#: reference_raster.xml:4467
 #, no-c-format
 msgid ""
 "Resample a raster by adjusting only its skew (or rotation parameters). New "
@@ -6420,7 +7702,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3635
+#: reference_raster.xml:4472
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Reskew</function></funcdef> "
@@ -6440,7 +7722,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3659
+#: reference_raster.xml:4496
 #, no-c-format
 msgid ""
 "Resample a raster by adjusting only its skew (or rotation parameters). New "
@@ -6451,14 +7733,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3661
+#: reference_raster.xml:4498
 #, no-c-format
 msgid ""
 "<varname>skewx</varname> and <varname>skewy</varname> define the new skew."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3663 reference_raster.xml:3742
+#: reference_raster.xml:4500 reference_raster.xml:4578
 #, no-c-format
 msgid ""
 "The extent of the new raster will encompass the extent of the provided "
@@ -6466,14 +7748,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3665 reference_raster.xml:3744
+#: reference_raster.xml:4502 reference_raster.xml:4580
 #, no-c-format
 msgid ""
 "A maxerror percent of 0.125 if no <varname>maxerr</varname> is specified."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3671
+#: reference_raster.xml:4506
 #, no-c-format
 msgid ""
 "ST_Reskew is different from <xref linkend=\"RT_ST_SetSkew\"/> in that "
@@ -6486,14 +7768,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3678
+#: reference_raster.xml:4514
 #, no-c-format
 msgid ""
 "A simple example reskewing a raster from a skew of 0.0 to a skew of 0.0015."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3680
+#: reference_raster.xml:4516
 #, no-c-format
 msgid ""
 "-- the original raster pixel size\n"
@@ -6506,7 +7788,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3686
+#: reference_raster.xml:4522
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, "
@@ -6515,13 +7797,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3692
+#: reference_raster.xml:4528
 #, no-c-format
 msgid "ST_SnapToGrid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3693
+#: reference_raster.xml:4529
 #, no-c-format
 msgid ""
 "Resample a raster by snapping it to a grid. New pixel values are computed "
@@ -6530,7 +7812,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3698
+#: reference_raster.xml:4534
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> "
@@ -6566,7 +7848,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3737
+#: reference_raster.xml:4573
 #, no-c-format
 msgid ""
 "Resample a raster by snapping it to a grid defined by an arbitrary pixel "
@@ -6578,7 +7860,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3739
+#: reference_raster.xml:4575
 #, no-c-format
 msgid ""
 "<varname>gridx</varname> and <varname>gridy</varname> define any arbitrary "
@@ -6588,7 +7870,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3741
+#: reference_raster.xml:4577
 #, no-c-format
 msgid ""
 "You can optionnal define the pixel size of the new grid with "
@@ -6596,7 +7878,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3750
+#: reference_raster.xml:4584
 #, no-c-format
 msgid ""
 "Use <xref linkend=\"RT_ST_Resample\"/> if you need more control over the "
@@ -6604,13 +7886,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3757
+#: reference_raster.xml:4592
 #, no-c-format
 msgid "A simple example snapping a raster to a slightly different grid."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3759
+#: reference_raster.xml:4594
 #, no-c-format
 msgid ""
 "-- the original raster pixel size\n"
@@ -6623,7 +7905,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3765
+#: reference_raster.xml:4600
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, "
@@ -6631,86 +7913,260 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3771
+#: reference_raster.xml:4606
 #, no-c-format
-msgid "ST_Transform"
+msgid "ST_Resize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3772
+#: reference_raster.xml:4607
 #, no-c-format
-msgid ""
-"Reprojects a raster in a known spatial reference system to another known "
-"spatial reference system using specified resampling algorithm. Options are "
-"NearestNeighbor, Bilinear, Cubic, CubicSpline, Lanczos defaulting to "
-"NearestNeighbor."
+msgid "Resize a raster to a new width/height"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3776
+#: reference_raster.xml:4611
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
-"<paramdef><type>double precision </type> <parameter>scalex</parameter></"
-"paramdef> <paramdef><type>double precision </type> <parameter>scaley</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<paramdef><type>integer </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
 "<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
 "\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
 "paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_Transform</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
-"<parameter>srid</parameter></paramdef> <paramdef choice=\"opt\"><type>text </"
-"type> <parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef "
-"choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</"
+"<function>ST_Resize</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>percentwidth</parameter></paramdef> <paramdef><type>double "
+"precision </type> <parameter>percentheight</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbor</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
-"type> <parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
-"funcprototype>"
+"type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>width</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>height</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3802
+#: reference_raster.xml:4645
 #, no-c-format
 msgid ""
-"Reprojects a raster in a known spatial reference system to another known "
-"spatial reference system using specified pixel warping algorithm. Uses "
-"'NearestNeighbor' if no algorithm is specified and maxerror percent of 0.125 "
-"if no maxerr is specified."
+"Resize a raster to a new width/height. The new width/height can be specified "
+"in exact number of pixels or a percentage of the raster's width/height. The "
+"extent of the the new raster will be the same as the extent of the provided "
+"raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3804
+#: reference_raster.xml:4649
 #, no-c-format
 msgid ""
-"Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', "
-"'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/"
-"gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+"New pixel values are computed using the NearestNeighbor (english or american "
+"spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The "
+"default is NearestNeighbor which is the fastest but results in the worst "
+"interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4653
+#, no-c-format
+msgid "Variant 1 expects the actual width/height of the output raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3806
+#: reference_raster.xml:4657
 #, no-c-format
 msgid ""
-"If you find your transformation support is not working right, you may need "
-"to set the environment variable PROJSO to the .so or .dll projection library "
-"your PostGIS is using. This just needs to have the name of the file. So for "
-"example on windows, you would in Control Panel -> System -> Environment "
-"Variables add a system variable called <varname>PROJSO</varname> and set it "
-"to <varname>libproj.dll</varname> (if you are using proj 4.6.1). You'll have "
-"to restart your PostgreSQL service/daemon after this change."
+"Variant 2 expects decimal values between zero (0) and one (1) indicating the "
+"percentage of the input raster's width/height."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:3813
+#. Tag: para
+#: reference_raster.xml:4661
 #, no-c-format
 msgid ""
-"SELECT ST_Width(mass_stm) As w_before, ST_Width(wgs_84) As w_after,\n"
-"  ST_Height(mass_stm) As h_before, ST_Height(wgs_84) As h_after\n"
-"        FROM \n"
-"        ( SELECT rast As mass_stm, ST_Transform(rast,4326) As wgs_84\n"
-"  ,  ST_Transform(rast,4326, 'Bilinear') AS wgs_84_bilin\n"
+"Variant 3 takes either the actual width/height of the output raster or a "
+"textual percentage (\"20%\") indicating the percentage of the input raster's "
+"width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4665
+#, no-c-format
+msgid "Availability: 2.1.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4669
+#, no-c-format
+msgid ""
+"WITH foo AS(\n"
+"SELECT\n"
+"        1 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , '50%', '500') AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        2 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 500, 100) AS rast\n"
+"UNION ALL\n"
+"SELECT\n"
+"        3 AS rid, \n"
+"        ST_Resize(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, "
+"0)\n"
+"                        , 1, '8BUI', 255, 0\n"
+"                )\n"
+"        , 0.25, 0.9) AS rast\n"
+"), bar AS (\n"
+"        SELECT rid, ST_Metadata(rast) AS meta, rast FROM foo\n"
+")\n"
+"SELECT rid, (meta).* FROM bar\n"
+"\n"
+" rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | "
+"skewy | srid | numbands \n"
+"-----+------------+------------+-------+--------+--------+--------+-------"
+"+-------+------+----------\n"
+"   1 |          0 |          0 |   500 |    500 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   2 |          0 |          0 |   500 |    100 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"   3 |          0 |          0 |   250 |    900 |      1 |     -1 |     0 "
+"|     0 |    0 |        1\n"
+"(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4674
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_Reskew\"/>, <xref "
+"linkend=\"RT_ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4685
+#, no-c-format
+msgid "ST_Transform"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4686
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified resampling algorithm. Options are "
+"NearestNeighbor, Bilinear, Cubic, CubicSpline, Lanczos defaulting to "
+"NearestNeighbor."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4690
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>srid</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scaley</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Transform</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</"
+"parameter></paramdef> <paramdef><type>double precision </type> "
+"<parameter>scalex</parameter></paramdef> <paramdef><type>double precision </"
+"type> <parameter>scaley</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>algorithm=NearestNeighbor</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>maxerr=0.125</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>alignto</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4724
+#, no-c-format
+msgid ""
+"Reprojects a raster in a known spatial reference system to another known "
+"spatial reference system using specified pixel warping algorithm. Uses "
+"'NearestNeighbor' if no algorithm is specified and maxerror percent of 0.125 "
+"if no maxerr is specified."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4728
+#, no-c-format
+msgid ""
+"ST_Transform is often confused with ST_SetSRID(). ST_Transform actually "
+"changes the coordinates of a raster (and resamples the pixel values) from "
+"one spatial reference system to another, while ST_SetSRID() simply changes "
+"the SRID identifier of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4732
+#, no-c-format
+msgid ""
+"Unlike the other variants, Variant 3 requires a reference raster as "
+"<varname>alignto</varname>. The transformed raster will be transformed to "
+"the spatial reference system (SRID) of the reference raster and be aligned "
+"(ST_SameAlignment = TRUE) to the reference raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4737
+#, no-c-format
+msgid ""
+"If you find your transformation support is not working right, you may need "
+"to set the environment variable PROJSO to the .so or .dll projection library "
+"your PostGIS is using. This just needs to have the name of the file. So for "
+"example on windows, you would in Control Panel -> System -> Environment "
+"Variables add a system variable called <varname>PROJSO</varname> and set it "
+"to <varname>libproj.dll</varname> (if you are using proj 4.6.1). You'll have "
+"to restart your PostgreSQL service/daemon after this change."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4743
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of ST_Transform(rast, alignto) variant"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4749
+#, no-c-format
+msgid ""
+"SELECT ST_Width(mass_stm) As w_before, ST_Width(wgs_84) As w_after,\n"
+"  ST_Height(mass_stm) As h_before, ST_Height(wgs_84) As h_after\n"
+"        FROM \n"
+"        ( SELECT rast As mass_stm, ST_Transform(rast,4326) As wgs_84\n"
+"  ,  ST_Transform(rast,4326, 'Bilinear') AS wgs_84_bilin\n"
 "                FROM aerials.o_2_boston \n"
 "                        WHERE ST_Intersects(rast,\n"
 "                                ST_Transform(ST_MakeEnvelope(-71.128, "
@@ -6723,19 +8179,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3823
+#: reference_raster.xml:4759
 #, no-c-format
 msgid "original mass state plane meters (mass_stm)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3832
+#: reference_raster.xml:4768
 #, no-c-format
 msgid "After transform to wgs 84 long lat (wgs_84)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3841
+#: reference_raster.xml:4777
 #, no-c-format
 msgid ""
 "After transform to wgs 84 long lat with bilinear algorithm instead of NN "
@@ -6743,25 +8199,83 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3853
+#: reference_raster.xml:4790
+#, no-c-format
+msgid ""
+"The following shows the difference between using ST_Transform(raster, srid) "
+"and ST_Transform(raster, alignto)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4791
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, "
+"600000, 100, -100, 0, 0, 2163), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 600000, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599800, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599600, 100, "
+"-100, 0, 0, 2163), 1, '16BUI', 300, 0) AS rast\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                ST_Transform(rast, 4269) AS alignto\n"
+"        FROM foo\n"
+"        LIMIT 1\n"
+"), baz AS (\n"
+"        SELECT\n"
+"                rid,\n"
+"                rast,\n"
+"                ST_Transform(rast, 4269) AS not_aligned,\n"
+"                ST_Transform(rast, alignto) AS aligned\n"
+"        FROM foo\n"
+"        CROSS JOIN bar\n"
+")\n"
+"SELECT\n"
+"        ST_SameAlignment(rast) AS rast,\n"
+"        ST_SameAlignment(not_aligned) AS not_aligned,\n"
+"        ST_SameAlignment(aligned) AS aligned\n"
+"FROM baz\n"
+"\n"
+" rast | not_aligned | aligned \n"
+"------+-------------+---------\n"
+" t    | f           | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4796
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SetSRID\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3859
+#: reference_raster.xml:4802
 #, no-c-format
 msgid "Raster Band Editors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3863
+#: reference_raster.xml:4806
 #, no-c-format
 msgid "ST_SetBandNoDataValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3864
+#: reference_raster.xml:4807
 #, no-c-format
 msgid ""
 "Sets the value for the given band that represents no data. Band 1 is assumed "
@@ -6770,7 +8284,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3868
+#: reference_raster.xml:4811
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_SetBandNoDataValue</function></"
@@ -6786,7 +8300,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3889
+#: reference_raster.xml:4832
 #, no-c-format
 msgid ""
 "Sets the value that represents no data for the band. Band 1 is assumed if "
@@ -6796,7 +8310,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3895
+#: reference_raster.xml:4838
 #, no-c-format
 msgid ""
 "-- change just first band no data value\n"
@@ -6823,52 +8337,39 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3907
+#: reference_raster.xml:4850
 #, no-c-format
 msgid "ST_SetBandIsNoData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3908
+#: reference_raster.xml:4851
 #, no-c-format
-msgid ""
-"Sets the isnodata flag of the band to TRUE. You may want to call this "
-"function if ST_BandIsNoData(rast, band) != ST_BandIsNodata(rast, band, "
-"TRUE). This is, if the isnodata flag is dirty. Band 1 is assumed if no band "
-"is specified."
+msgid "Sets the isnodata flag of the band to TRUE."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3917
+#: reference_raster.xml:4856
 #, no-c-format
 msgid ""
-"<funcdef>integer <function>ST_SetBandIsNoData</function></funcdef> "
+"<funcdef>raster <function>ST_SetBandIsNoData</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
 "parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3928
+#: reference_raster.xml:4867
 #, no-c-format
 msgid ""
 "Sets the isnodata flag for the band to true. Band 1 is assumed if not "
 "specified. This function should be called only when the flag is considered "
-"dirty. This is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/"
+"dirty. That is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/"
 "> is different using TRUE as last argument and without using it"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:3935
-#, no-c-format
-msgid ""
-"Currently, the loader (raster2pgsql.py) is not able to set the isnodata flag "
-"for bands. So, this is the fastest way to set it to TRUE, without changing "
-"any other band value"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_raster.xml:3944
+#: reference_raster.xml:4879
 #, no-c-format
 msgid ""
 "-- Create dummy table with one raster column\n"
@@ -6936,7 +8437,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3950
+#: reference_raster.xml:4885
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend="
@@ -6944,19 +8445,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3959
+#: reference_raster.xml:4894
 #, no-c-format
 msgid "Raster Band Statistics and Analytics"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3962
+#: reference_raster.xml:4898
 #, no-c-format
 msgid "ST_Count"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3963
+#: reference_raster.xml:4899
 #, no-c-format
 msgid ""
 "Returns the number of pixels in a given band of a raster or raster coverage. "
@@ -6965,7 +8466,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3967
+#: reference_raster.xml:4903
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> "
@@ -6990,7 +8491,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3998
+#: reference_raster.xml:4934
 #, no-c-format
 msgid ""
 "Returns the number of pixels in a given band of a raster or raster coverage. "
@@ -6998,7 +8499,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3999
+#: reference_raster.xml:4935
 #, no-c-format
 msgid ""
 "If <varname>exclude_nodata_value</varname> is set to true, will only count "
@@ -7007,8 +8508,16 @@ msgid ""
 "all pixels"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4939
+#, no-c-format
+msgid ""
+"The ST_Count(rastertable, rastercolumn, ...) variants are deprecated as of "
+"2.2.0. Use <xref linkend=\"RT_ST_CountAgg\"/> instead."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:4006
+#: reference_raster.xml:4949
 #, no-c-format
 msgid ""
 "--example will count all pixels not 249 and one will count all pixels.  --\n"
@@ -7021,14 +8530,121 @@ msgid ""
 "   2 |             23 |             25"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4954 reference_raster.xml:5015
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4964
+#, no-c-format
+msgid "ST_CountAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4965
+#, no-c-format
+msgid ""
+"Aggregate. Returns the number of pixels in a given band of a set of rasters. "
+"If no band is specified defaults to band 1. If exclude_nodata_value is set "
+"to true, will only count pixels that are not equal to the NODATA value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4971
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> <paramdef><type>double precision </type> "
+"<parameter>sample_percent</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>bigint "
+"<function>ST_CountAgg</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4999
+#, no-c-format
+msgid ""
+"Returns the number of pixels in a given band of a set of rasters. If no band "
+"is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5000
+#, no-c-format
+msgid ""
+"If <varname>exclude_nodata_value</varname> is set to true, will only count "
+"pixels with value not equal to the <varname>NODATA</varname> value of the "
+"raster. Set <varname>exclude_nodata_value</varname> to false to get count "
+"all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5003
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between zero (0) and one (1)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5010
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        ST_CountAgg(rast, 1, TRUE)\n"
+"FROM foo;\n"
+"\n"
+" st_countagg \n"
+"-------------\n"
+"          20\n"
+"(1 row)"
+msgstr ""
+
 #. Tag: refname
-#: reference_raster.xml:4017
+#: reference_raster.xml:5025
 #, no-c-format
 msgid "ST_Histogram"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4018
+#: reference_raster.xml:5026
 #, no-c-format
 msgid ""
 "Returns a set of record summarizing a raster or raster coverage data "
@@ -7037,7 +8653,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4022
+#: reference_raster.xml:5030
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></"
@@ -7105,7 +8721,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4104
+#: reference_raster.xml:5112
 #, no-c-format
 msgid ""
 "Returns set of records consisting of min, max, count, percent for a given "
@@ -7114,7 +8730,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4105
+#: reference_raster.xml:5113
 #, no-c-format
 msgid ""
 "By default only considers pixel values not equal to the <varname>nodata</"
@@ -7123,13 +8739,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:4109
+#: reference_raster.xml:5117
 #, no-c-format
 msgid "<parameter>width </parameter><type>double precision[]</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4110
+#: reference_raster.xml:5118
 #, no-c-format
 msgid ""
 "width: an array indicating the width of each category/bin. If the number of "
@@ -7137,7 +8753,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4111
+#: reference_raster.xml:5119
 #, no-c-format
 msgid ""
 "Example: 9 bins, widths are [a, b, c] will have the output be [a, b, c, a, "
@@ -7145,13 +8761,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:4114
+#: reference_raster.xml:5122
 #, no-c-format
 msgid "<parameter>bins </parameter><type>integer</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4115
+#: reference_raster.xml:5123
 #, no-c-format
 msgid ""
 "Number of breakouts -- this is the number of records you'll get back from "
@@ -7160,13 +8776,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:4119
+#: reference_raster.xml:5127
 #, no-c-format
 msgid "<parameter>right </parameter><type>boolean</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4120
+#: reference_raster.xml:5128
 #, no-c-format
 msgid ""
 "compute the histogram from the right rather than from the left (default). "
@@ -7174,7 +8790,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4127
+#: reference_raster.xml:5135
 #, no-c-format
 msgid ""
 "Example: Single raster tile - compute histograms for bands 1, 2, 3 and "
@@ -7182,7 +8798,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4128
+#: reference_raster.xml:5136
 #, no-c-format
 msgid ""
 "SELECT band, (stats).*\n"
@@ -7210,13 +8826,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4132
+#: reference_raster.xml:5140
 #, no-c-format
 msgid "Example: Just band 2 but for 6 bins"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4133
+#: reference_raster.xml:5141
 #, no-c-format
 msgid ""
 "SELECT (stats).*\n"
@@ -7253,19 +8869,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4138
+#: reference_raster.xml:5146
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_SummaryStats\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4147
+#: reference_raster.xml:5156
 #, no-c-format
 msgid "ST_Quantile"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4148
+#: reference_raster.xml:5157
 #, no-c-format
 msgid ""
 "<refpurpose>Compute quantiles for a raster or raster table coverage in the "
@@ -7274,7 +8892,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4152
+#: reference_raster.xml:5161
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></"
@@ -7332,7 +8950,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4224
+#: reference_raster.xml:5233
 #, no-c-format
 msgid ""
 "<para>Compute quantiles for a raster or raster table coverage in the context "
@@ -7341,7 +8959,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4225 reference_raster.xml:4442
+#: reference_raster.xml:5234 reference_raster.xml:5526
 #, no-c-format
 msgid ""
 "If <varname>exclude_nodata_value</varname> is set to false, will also count "
@@ -7349,7 +8967,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4232
+#: reference_raster.xml:5241
 #, no-c-format
 msgid ""
 "UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
@@ -7375,7 +8993,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4233
+#: reference_raster.xml:5242
 #, no-c-format
 msgid ""
 "--real live example.  Quantile of all pixels in band 2 intersecting a "
@@ -7415,62 +9033,64 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4238 reference_raster.xml:4457
+#: reference_raster.xml:5247
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend="
+"\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4244
+#: reference_raster.xml:5258
 #, no-c-format
 msgid "ST_SummaryStats"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4245
+#: reference_raster.xml:5259
 #, no-c-format
 msgid ""
-"Returns record consisting of count, sum, mean, stddev, min, max for a given "
-"raster band of a raster or raster coverage. Band 1 is assumed is no band is "
-"specified."
+"Returns summarystats consisting of count, sum, mean, stddev, min, max for a "
+"given raster band of a raster or raster coverage. Band 1 is assumed is no "
+"band is specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4249
+#: reference_raster.xml:5263
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>record <function>ST_SummaryStats</function></"
-"funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
 "paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>record "
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
 "<function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
 "<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>record <function>ST_SummaryStats</function></"
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></"
 "funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></"
 "paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
-"<parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>record <function>ST_SummaryStats</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
 "paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStats</function></funcdef> <paramdef><type>text </type> "
+"<parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>rastercolumn</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</"
 "parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4285
+#: reference_raster.xml:5299 reference_raster.xml:5378
 #, no-c-format
 msgid ""
-"Returns record consisting of count, sum, mean, stddev, min, max for a given "
-"raster band of a raster or raster coverage. If no band is specified "
-"<varname>nband</varname> defaults to 1."
+"Returns <xref linkend=\"summarystats\"/> consisting of count, sum, mean, "
+"stddev, min, max for a given raster band of a raster or raster coverage. If "
+"no band is specified <varname>nband</varname> defaults to 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4287
+#: reference_raster.xml:5301
 #, no-c-format
 msgid ""
 "By default only considers pixel values not equal to the <varname>nodata</"
@@ -7479,21 +9099,29 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4289
+#: reference_raster.xml:5303
 #, no-c-format
 msgid ""
 "By default will sample all pixels. To get faster response, set "
 "<varname>sample_percent</varname> to lower than 1"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:5308
+#, no-c-format
+msgid ""
+"The ST_SummaryStats(rastertable, rastercolumn, ...) variants are deprecated "
+"as of 2.2.0. Use <xref linkend=\"RT_ST_SummaryStatsAgg\"/> instead."
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:4294
+#: reference_raster.xml:5316
 #, no-c-format
 msgid "Example: Single raster tile"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4295
+#: reference_raster.xml:5317
 #, no-c-format
 msgid ""
 "SELECT rid, band, (stats).*\n"
@@ -7509,13 +9137,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4299
+#: reference_raster.xml:5321
 #, no-c-format
 msgid "Example: Summarize pixels that intersect buildings of interest"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4300
+#: reference_raster.xml:5322
 #, no-c-format
 msgid ""
 "This example took 574ms on PostGIS windows 64-bit with all of Boston "
@@ -7524,7 +9152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4302
+#: reference_raster.xml:5324
 #, no-c-format
 msgid ""
 "WITH \n"
@@ -7560,13 +9188,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4306
+#: reference_raster.xml:5328
 #, no-c-format
 msgid "Example: Raster coverage"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4307
+#: reference_raster.xml:5329
 #, no-c-format
 msgid ""
 "-- stats for each band --\n"
@@ -7595,35 +9223,146 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4312
+#: reference_raster.xml:5334
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Clip\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_Count\"/"
+">, <xref linkend=\"RT_ST_Clip\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4321
+#: reference_raster.xml:5345
 #, no-c-format
-msgid "ST_ValueCount"
+msgid "ST_SummaryStatsAgg"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4322
+#: reference_raster.xml:5346
 #, no-c-format
 msgid ""
-"Returns a set of records containing a pixel band value and count of the "
-"number of pixels in a given band of a raster (or a raster coverage) that "
-"have a given set of values. If no band is specified defaults to band 1. By "
-"default nodata value pixels are not counted. and all other values in the "
-"pixel are output and pixel band values are rounded to the nearest integer."
+"Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, "
+"max for a given raster band of a set of raster. Band 1 is assumed is no band "
+"is specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4327
+#: reference_raster.xml:5350
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"<funcprototype> <funcdef>summarystats <function>ST_SummaryStatsAgg</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</"
+"parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> "
+"<paramdef><type>double precision </type> <parameter>sample_percent</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats "
+"<function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> "
+"<parameter>exclude_nodata_value</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5380
+#, no-c-format
+msgid ""
+"By default only considers pixel values not equal to the <varname>NODATA</"
+"varname> value. Set <varname>exclude_nodata_value</varname> to False to get "
+"count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5382
+#, no-c-format
+msgid ""
+"By default will sample all pixels. To get faster response, set "
+"<varname>sample_percent</varname> to value between 0 and 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5389
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT\n"
+"                rast.rast\n"
+"        FROM (\n"
+"                SELECT ST_SetValue(\n"
+"                        ST_SetValue(\n"
+"                                ST_SetValue(\n"
+"                                        ST_AddBand(\n"
+"                                                ST_MakeEmptyRaster(10, 10, "
+"10, 10, 2, 2, 0, 0,0)\n"
+"                                                , 1, '64BF', 0, 0\n"
+"                                        )\n"
+"                                        , 1, 1, 1, -10\n"
+"                                )\n"
+"                                , 1, 5, 4, 0\n"
+"                        )\n"
+"                        , 1, 5, 5, 3.14159\n"
+"                ) AS rast\n"
+"        ) AS rast\n"
+"        FULL JOIN (\n"
+"                SELECT generate_series(1, 10) AS id\n"
+"        ) AS id\n"
+"                ON 1 = 1\n"
+")\n"
+"SELECT\n"
+"        (stats).count,\n"
+"        round((stats).sum::numeric, 3),\n"
+"        round((stats).mean::numeric, 3),\n"
+"        round((stats).stddev::numeric, 3),\n"
+"        round((stats).min::numeric, 3),\n"
+"        round((stats).max::numeric, 3)\n"
+"FROM (\n"
+"        SELECT\n"
+"                ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats\n"
+"        FROM foo\n"
+") bar;\n"
+"\n"
+" count |  round  | round  | round |  round  | round \n"
+"-------+---------+--------+-------+---------+-------\n"
+"    20 | -68.584 | -3.429 | 6.571 | -10.000 | 3.142\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5394
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_Count\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5405
+#, no-c-format
+msgid "ST_ValueCount"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5406
+#, no-c-format
+msgid ""
+"Returns a set of records containing a pixel band value and count of the "
+"number of pixels in a given band of a raster (or a raster coverage) that "
+"have a given set of values. If no band is specified defaults to band 1. By "
+"default nodata value pixels are not counted. and all other values in the "
+"pixel are output and pixel band values are rounded to the nearest integer."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5411
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
 "parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
 "<parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice="
 "\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</"
@@ -7719,7 +9458,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4440
+#: reference_raster.xml:5524
 #, no-c-format
 msgid ""
 "Returns a set of records with columns <varname>value</varname> "
@@ -7728,7 +9467,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4441
+#: reference_raster.xml:5525
 #, no-c-format
 msgid ""
 "If no band is specified <varname>nband</varname> defaults to 1. If no "
@@ -7739,7 +9478,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4449
+#: reference_raster.xml:5533
 #, no-c-format
 msgid ""
 "UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
@@ -7793,7 +9532,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4450
+#: reference_raster.xml:5534
 #, no-c-format
 msgid ""
 "--real live example.  Count all the pixels in an aerial raster tile band 2 "
@@ -7818,7 +9557,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4452
+#: reference_raster.xml:5536
 #, no-c-format
 msgid ""
 "-- Just return count of pixels in each raster tile that have value of 100 of "
@@ -7838,20 +9577,26 @@ msgid ""
 "  15 |    64"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:5541
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:4463
+#: reference_raster.xml:5547
 #, no-c-format
 msgid "Raster Outputs"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4466
+#: reference_raster.xml:5550
 #, no-c-format
 msgid "ST_AsBinary"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4467
+#: reference_raster.xml:5551
 #, no-c-format
 msgid ""
 "Return the Well-Known Binary (WKB) representation of the raster without SRID "
@@ -7859,37 +9604,51 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:4472
+#: reference_raster.xml:5556
 #, no-c-format
 msgid ""
 "<funcdef>bytea <function>ST_AsBinary</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter>outasin=FALSE</"
+"parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4482
+#: reference_raster.xml:5567
 #, no-c-format
 msgid ""
-"Returns the Binary representation of the raster. There are 2 variants of the "
-"function. The first variant takes no endian encoding parameter and defaults "
-"to little endian. The second variant takes a second argument denoting the "
-"encoding - using little-endian ('NDR') or big-endian ('XDR') encoding."
+"Returns the Binary representation of the raster. If <varname>outasin</"
+"varname> is TRUE, out-db bands are treated as in-db."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4485
+#: reference_raster.xml:5571
 #, no-c-format
 msgid ""
 "This is useful in binary cursors to pull data out of the database without "
 "converting it to a string representation."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:5576
+#, no-c-format
+msgid ""
+"By default, WKB output contains the external file path for out-db bands. If "
+"the client does not have access to the raster file underlying an out-db "
+"band, set <varname>outasin</varname> to TRUE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5580
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of <varname>outasin</varname>"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:4492
+#: reference_raster.xml:5586
 #, no-c-format
 msgid ""
-"SELECT ST_AsBinary(rast) As rastbin\n"
-"FROM dummy_rast WHERE rid=1;\n"
+"SELECT ST_AsBinary(rast) As rastbin FROM dummy_rast WHERE rid=1;\n"
 "\n"
 "                                         rastbin\n"
 "---------------------------------------------------------------------------------\n"
@@ -7901,13 +9660,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4499
+#: reference_raster.xml:5593
 #, no-c-format
 msgid "ST_AsGDALRaster"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4500
+#: reference_raster.xml:5594
 #, no-c-format
 msgid ""
 "Return the raster tile in the designated GDAL Raster format. Raster formats "
@@ -7916,7 +9675,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:4505
+#: reference_raster.xml:5599
 #, no-c-format
 msgid ""
 "<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> "
@@ -7928,7 +9687,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4519
+#: reference_raster.xml:5613
 #, no-c-format
 msgid ""
 "Returns the raster tile in the designated format. Arguments are itemized "
@@ -7936,7 +9695,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4522
+#: reference_raster.xml:5616
 #, no-c-format
 msgid ""
 "<varname>format</varname> format to output. This is dependent on the drivers "
@@ -7946,7 +9705,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4527
+#: reference_raster.xml:5621
 #, no-c-format
 msgid ""
 "<varname>options</varname> text array of GDAL options. Valid options are "
@@ -7955,7 +9714,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4532
+#: reference_raster.xml:5626
 #, no-c-format
 msgid ""
 "<varname>srs</varname> The proj4text or srtext (from spatial_ref_sys) to "
@@ -7963,30 +9722,30 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4541
+#: reference_raster.xml:5635
 #, no-c-format
 msgid "JPEG Output Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4543
+#: reference_raster.xml:5637
 #, no-c-format
 msgid ""
 "SELECT ST_AsGDALRaster(rast, 'JPEG') As rastjpg\n"
 "FROM dummy_rast WHERE rid=1;\n"
 "\n"
-"SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY!['QUALITY=50']) As rastjpg\n"
+"SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY['QUALITY=50']) As rastjpg\n"
 "FROM dummy_rast WHERE rid=2;"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4548
+#: reference_raster.xml:5642
 #, no-c-format
 msgid "GTIFF Output Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4550
+#: reference_raster.xml:5644
 #, no-c-format
 msgid ""
 "SELECT ST_AsGDALRaster(rast, 'GTiff') As rastjpg\n"
@@ -8000,19 +9759,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4557
+#: reference_raster.xml:5651
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4563
+#: reference_raster.xml:5657
 #, no-c-format
 msgid "ST_AsJPEG"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4564
+#: reference_raster.xml:5658
 #, no-c-format
 msgid ""
 "Return the raster tile selected bands as a single Joint Photographic Exports "
@@ -8022,7 +9781,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4568
+#: reference_raster.xml:5662
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
@@ -8040,17 +9799,17 @@ msgid ""
 "parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea "
 "<function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> "
 "<parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> "
-"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt\"><type>text"
-"[] </type> <parameter>options=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer[] </type> <parameter>nbands</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>quality</parameter></paramdef> </"
-"funcprototype>"
+"<parameter>nbands</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsJPEG</"
+"function></funcdef> <paramdef><type>raster </type> <parameter>rast</"
+"parameter></paramdef> <paramdef><type>integer[] </type> <parameter>nbands</"
+"parameter></paramdef> <paramdef><type>integer </type> <parameter>quality</"
+"parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4604
+#: reference_raster.xml:5698
 #, no-c-format
 msgid ""
 "Returns the selected bands of the raster as a single Joint Photographic "
@@ -8062,13 +9821,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4607 reference_raster.xml:4698
+#: reference_raster.xml:5701 reference_raster.xml:5792
 #, no-c-format
 msgid "<varname>nband</varname> is for single band exports."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4612
+#: reference_raster.xml:5706
 #, no-c-format
 msgid ""
 "<varname>nbands</varname> is an array of bands to export (note that max is 3 "
@@ -8077,7 +9836,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4617
+#: reference_raster.xml:5711
 #, no-c-format
 msgid ""
 "<varname>quality</varname> number from 0 to 100. The higher the number the "
@@ -8085,7 +9844,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4622
+#: reference_raster.xml:5716
 #, no-c-format
 msgid ""
 "<varname>options</varname> text Array of GDAL options as defined for JPEG "
@@ -8097,13 +9856,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4639
+#: reference_raster.xml:5733
 #, no-c-format
 msgid "Examples: Output"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4641
+#: reference_raster.xml:5735
 #, no-c-format
 msgid ""
 "-- output first 3 bands 75% quality\n"
@@ -8122,7 +9881,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4648
+#: reference_raster.xml:5742
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_AsGDALRaster"
@@ -8130,13 +9889,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4654
+#: reference_raster.xml:5748
 #, no-c-format
 msgid "ST_AsPNG"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4655
+#: reference_raster.xml:5749
 #, no-c-format
 msgid ""
 "Return the raster tile selected bands as a single portable network graphics "
@@ -8147,7 +9906,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4659
+#: reference_raster.xml:5753
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> "
@@ -8175,7 +9934,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4695
+#: reference_raster.xml:5789
 #, no-c-format
 msgid ""
 "Returns the selected bands of the raster as a single Portable Network "
@@ -8187,7 +9946,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4703 reference_raster.xml:4786
+#: reference_raster.xml:5797 reference_raster.xml:5880
 #, no-c-format
 msgid ""
 "<varname>nbands</varname> is an array of bands to export (note that max is 3 "
@@ -8196,7 +9955,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4708
+#: reference_raster.xml:5802
 #, no-c-format
 msgid ""
 "<varname>compression</varname> number from 1 to 9. The higher the number the "
@@ -8204,7 +9963,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4713
+#: reference_raster.xml:5807
 #, no-c-format
 msgid ""
 "<varname>options</varname> text Array of GDAL options as defined for PNG "
@@ -8217,7 +9976,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4732
+#: reference_raster.xml:5826
 #, no-c-format
 msgid ""
 "SELECT ST_AsPNG(rast) As rastpng\n"
@@ -8230,21 +9989,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4739
+#: reference_raster.xml:5833
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend="
-"\"RT_Raster_Applications\"/>"
+", <xref linkend=\"RT_ST_ColorMap\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, "
+"<xref linkend=\"RT_Raster_Applications\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4745
+#: reference_raster.xml:5839
 #, no-c-format
 msgid "ST_AsTIFF"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4746
+#: reference_raster.xml:5840
 #, no-c-format
 msgid ""
 "Return the raster selected bands as a single TIFF image (byte array). If no "
@@ -8252,7 +10011,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4750
+#: reference_raster.xml:5844
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> "
@@ -8280,7 +10039,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4783
+#: reference_raster.xml:5877
 #, no-c-format
 msgid ""
 "Returns the selected bands of the raster as a single Tagged Image File "
@@ -8293,7 +10052,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4791
+#: reference_raster.xml:5885
 #, no-c-format
 msgid ""
 "<varname>compression</varname> Compression expression -- JPEG90 (or some "
@@ -8301,7 +10060,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4796
+#: reference_raster.xml:5890
 #, no-c-format
 msgid ""
 "<varname>options</varname> text Array of GDAL create options as defined for "
@@ -8311,7 +10070,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4801
+#: reference_raster.xml:5895
 #, no-c-format
 msgid ""
 "<varname>srid</varname> srid of spatial_ref_sys of the raster. This is used "
@@ -8319,13 +10078,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4810
+#: reference_raster.xml:5904
 #, no-c-format
 msgid "Examples: Use jpeg compression 90%"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4812
+#: reference_raster.xml:5906
 #, no-c-format
 msgid ""
 "SELECT ST_AsTIFF(rast, 'JPEG90') As rasttiff\n"
@@ -8333,121 +10092,91 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4819
+#: reference_raster.xml:5913
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4825
+#: reference_raster.xml:5919
 #, no-c-format
 msgid "Raster Processing"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:4828
-#, no-c-format
-msgid "Box3D"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:4829
-#, no-c-format
-msgid "Returns the box 3d representation of the enclosing box of the raster."
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:4834
-#, no-c-format
-msgid ""
-"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </"
-"type> <parameter>rast</parameter></paramdef>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:4844
-#, no-c-format
-msgid "Returns the box representing the extent of the raster."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:4845
-#, no-c-format
-msgid ""
-"The polygon is defined by the corner points of the bounding box "
-"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</"
-"varname>, <varname>MAXY</varname>))"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:4849
-#, no-c-format
-msgid ""
-"Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of "
-"box3d. Since box2d is a deprecated type, this was changed to box3d."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:4855
+#. Tag: title
+#: reference_raster.xml:5922
 #, no-c-format
-msgid ""
-"SELECT rid, Box3D(rast) As rastbox\n"
-"FROM dummy_rast;\n"
-"\n"
-"rid |        rastbox\n"
-"----+-------------------------------------------------\n"
-"1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
-"2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
+msgid "Map Algebra"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4867
+#: reference_raster.xml:5926
 #, no-c-format
 msgid "ST_Clip"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4868
+#: reference_raster.xml:5927
 #, no-c-format
 msgid ""
-"Returns the raster clipped by the input geometry. If no band is specified "
-"all bands are returned. If <varname>crop</varname> is not specified, true is "
-"assumed meaning the output raster is cropped."
+"Returns the raster clipped by the input geometry. If band number not is "
+"specified, all bands are processed. If <varname>crop</varname> is not "
+"specified or TRUE, the output raster is cropped."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4873
+#: reference_raster.xml:5931
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> "
 "<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>double precision[] </type> "
 "<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>boolean </type> <parameter>crop=true</parameter></paramdef> </"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
 "funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
 "funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></"
 "paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
-"paramdef> <paramdef><type>boolean </type> <parameter>crop</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_Clip</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
-"<parameter>band</parameter></paramdef> <paramdef><type>geometry </type> "
-"<parameter>geom</parameter></paramdef> <paramdef><type>boolean </type> "
-"<parameter>crop</parameter></paramdef> </funcprototype>"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef> </"
+"funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></"
+"paramdef> <paramdef><type>double precision </type> <parameter>nodataval</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>crop=TRUE</parameter></paramdef> </funcprototype> <funcprototype> "
+"<funcdef>raster <function>ST_Clip</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>boolean </type> <parameter>crop</parameter></paramdef> </"
+"funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4902
+#: reference_raster.xml:5988
 #, no-c-format
 msgid ""
 "Returns a raster that is clipped by the input geometry <varname>geom</"
-"varname>. If no band is specified all bands are returned."
+"varname>. If band index is not specified, all bands are processed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4904
+#: reference_raster.xml:5992
 #, no-c-format
 msgid ""
 "Rasters resulting from ST_Clip must have a nodata value assigned for areas "
@@ -8462,7 +10191,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4906
+#: reference_raster.xml:5996
 #, no-c-format
 msgid ""
 "If <varname>crop</varname> is not specified, true is assumed meaning the "
@@ -8472,7 +10201,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4910
+#: reference_raster.xml:6002
+#, no-c-format
+msgid "Enhanced: 2.1.0 Rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6004
 #, no-c-format
 msgid ""
 "Examples here use Massachusetts aerial data available on MassGIS site <ulink "
@@ -8481,13 +10216,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4914
+#: reference_raster.xml:6010
 #, no-c-format
 msgid "Examples: 1 band clipping"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4915
+#: reference_raster.xml:6012
 #, no-c-format
 msgid ""
 "-- Clip the first band of an aerial tile by a 20 meter buffer.\n"
@@ -8498,7 +10233,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4917
+#: reference_raster.xml:6014
 #, no-c-format
 msgid ""
 "-- Demonstrate effect of crop on final dimensions of raster\n"
@@ -8520,27 +10255,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4927 reference_raster.xml:4957
-#: reference_raster.xml:4988
+#: reference_raster.xml:6028 reference_raster.xml:6071
+#: reference_raster.xml:6114
 #, no-c-format
 msgid "Full raster tile before clipping"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4936 reference_raster.xml:4997
+#: reference_raster.xml:6042 reference_raster.xml:6128
 #, no-c-format
 msgid "After Clipping"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4946
+#: reference_raster.xml:6055
 #, no-c-format
 msgid ""
 "Examples: 1 band clipping with no crop and add back other bands unchanged"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4947
+#: reference_raster.xml:6057
 #, no-c-format
 msgid ""
 "-- Same example as before, but we need to set crop to false to be able to "
@@ -8553,19 +10288,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4966
+#: reference_raster.xml:6085
 #, no-c-format
 msgid "After Clipping - surreal"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4976
+#: reference_raster.xml:6098
 #, no-c-format
 msgid "Examples: Clip all bands"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4977
+#: reference_raster.xml:6100
 #, no-c-format
 msgid ""
 "-- Clip all bands of an aerial tile by a 20 meter buffer.\n"
@@ -8579,489 +10314,345 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5009
+#: reference_raster.xml:6143
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Intersection\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Intersection\"/"
+">"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5015
+#: reference_raster.xml:6153
 #, no-c-format
-msgid "ST_ConvexHull"
+msgid "ST_ColorMap"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5016
+#: reference_raster.xml:6154
 #, no-c-format
 msgid ""
-"Return the convex hull geometry of the raster including pixel values equal "
-"to BandNoDataValue. For regular shaped and non-skewed rasters, this gives "
-"the same result as ST_Envelope so only useful for irregularly shaped or "
-"skewed rasters."
+"Creates a new raster of up to four 8BUI bands (grayscale, RGB, RGBA) from "
+"the source raster and a specified band. Band 1 is assumed if not specified."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:5023
+#: reference_raster.xml:6159
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>colormap=grayscale</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>method=INTERPOLATE</parameter></paramdef>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5033
+#. Tag: funcprototype
+#: reference_raster.xml:6169
 #, no-c-format
 msgid ""
-"Return the convex hull geometry of the raster including the NoDataBandValue "
-"band pixels. For regular shaped and non-skewed rasters, this gives more or "
-"less the same result as ST_Envelope so only useful for irregularly shaped or "
-"skewed rasters."
+"<funcdef>raster <function>ST_ColorMap</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>colormap</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>method=INTERPOLATE</"
+"parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5037
+#: reference_raster.xml:6181
 #, no-c-format
 msgid ""
-"ST_Envelope floors the coordinates and hence add a little buffer around the "
-"raster so the answer is subtly different from ST_ConvexHull which does not "
-"floor."
+"Apply a <varname>colormap</varname> to the band at <varname>nband</varname> "
+"of <varname>rast</varname> resulting a new raster comprised of up to four "
+"8BUI bands. The number of 8BUI bands in the new raster is determined by the "
+"number of color components defined in <varname>colormap</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5044
+#: reference_raster.xml:6185
 #, no-c-format
-msgid ""
-"Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
-"SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram "
-"of this."
+msgid "If <varname>nband</varname> is not specified, then band 1 is assumed."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5052
+#. Tag: para
+#: reference_raster.xml:6187
 #, no-c-format
 msgid ""
-"-- Note envelope and convexhull are more or less the same\n"
-"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
-"        ST_AsText(ST_Envelope(rast)) As env\n"
-"FROM dummy_rast WHERE rid=1;\n"
-"\n"
-"                        convhull                        |                "
-"env\n"
-"\n"
-"--------------------------------------------------------"
-"+-----------------------\n"
-" POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 "
-"0,20 60,0 60,0 0))"
+"<varname>colormap</varname> can be a keyword of a pre-defined colormap or a "
+"set of lines defining the value and the color components."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5059
+#. Tag: para
+#: reference_raster.xml:6191
 #, no-c-format
-msgid ""
-"-- now we skew the raster \n"
-"-- note how the convex hull and envelope are now different\n"
-"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
-"        ST_AsText(ST_Envelope(rast)) As env\n"
-"FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
-"        FROM dummy_rast WHERE rid=1) As foo;\n"
-"        \n"
-"                        convhull                        |                "
-"env\n"
-"\n"
-"--------------------------------------------------------"
-"+------------------------------------\n"
-" POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 "
-"0,22 61,0 61,0 0))"
+msgid "Valid pre-defined <varname>colormap</varname> keyword:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5071
+#: reference_raster.xml:6197
 #, no-c-format
-msgid ", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend=\"ST_AsText\"/>"
+msgid ""
+"<varname>grayscale</varname> or <varname>greyscale</varname> for a one 8BUI "
+"band raster of shades of gray."
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:5077
+#. Tag: para
+#: reference_raster.xml:6202
 #, no-c-format
-msgid "ST_DumpAsPolygons"
+msgid ""
+"<varname>pseudocolor</varname> for a four 8BUI (RGBA) band raster with "
+"colors going from blue to green to red."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:5078
+#. Tag: para
+#: reference_raster.xml:6207
 #, no-c-format
 msgid ""
-"Returns a set of geomval (geom,val) rows, from a given raster band. If no "
-"band number is specified, band num defaults to 1."
+"<varname>fire</varname> for a four 8BUI (RGBA) band raster with colors going "
+"from black to red to pale yellow."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:5083
+#. Tag: para
+#: reference_raster.xml:6212
 #, no-c-format
 msgid ""
-"<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
-"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+"<varname>bluered</varname> for a four 8BUI (RGBA) band raster with colors "
+"going from blue to pale white to red."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5094
+#: reference_raster.xml:6218
 #, no-c-format
 msgid ""
-"This is a set-returning function (SRF). It returns a set of geomval rows, "
-"formed by a geometry (geom) and a pixel band value (val). Each polygon is "
-"the union of all pixels for that band that have the same pixel value denoted "
-"by val."
+"Users can pass a set of entries (one per line) to <varname>colormap</"
+"varname> to specify custom colormaps. Each entry generally consists of five "
+"values: the pixel value and corresponding Red, Green, Blue, Alpha components "
+"(color components between 0 and 255). Percent values can be used instead of "
+"pixel values where 0% and 100% are the minimum and maximum values found in "
+"the raster band. Values can be separated with commas (','), tabs, colons "
+"(':') and/or spaces. The pixel value can be set to <emphasis>nv</emphasis>, "
+"<emphasis>null</emphasis> or <emphasis>nodata</emphasis> for the NODATA "
+"value. An example is provided below."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5098
+#. Tag: programlisting
+#: reference_raster.xml:6222
 #, no-c-format
 msgid ""
-"ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a "
-"GROUP BY in that it creates new rows. For example it can be used to expand a "
-"single raster into multiple POLYGONS/MULTIPOLYGONS."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5102
-#, no-c-format
-msgid "Availability: Requires GDAL 1.7 or higher."
+"5 0 0 0 255\n"
+"4 100:50 55 255\n"
+"1 150,100 150 255\n"
+"0% 255 255 255 255\n"
+"nv 0 0 0 0"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5103
+#: reference_raster.xml:6224
 #, no-c-format
 msgid ""
-"If there is a no data value set for a band, pixels with that value will not "
-"be returned."
+"The syntax of <varname>colormap</varname> is similar to that of the color-"
+"relief mode of GDAL <ulink url=\"http://www.gdal.org/gdaldem."
+"html#gdaldem_color_relief\">gdaldem</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5104
+#: reference_raster.xml:6228
 #, no-c-format
-msgid ""
-"If you only care about count of pixels with a given value in a raster, it is "
-"faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
+msgid "Valid keywords for <varname>method</varname>:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5106
+#: reference_raster.xml:6234
 #, no-c-format
 msgid ""
-"This is different than ST_PixelAsPolygons where one geometry is returned for "
-"each pixel regardless of pixel value."
+"<varname>INTERPOLATE</varname> to use linear interpolation to smoothly blend "
+"the colors between the given pixel values"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5114
+#. Tag: para
+#: reference_raster.xml:6239
 #, no-c-format
 msgid ""
-"SELECT val, ST_AsText(geom) As geomwkt\n"
-"FROM (\n"
-"SELECT (ST_DumpAsPolygons(rast)).*\n"
-"FROM dummy_rast \n"
-"WHERE rid = 2\n"
-") As foo\n"
-"WHERE val BETWEEN 249 and 251\n"
-"ORDER BY val;\n"
-"\n"
-" val |                                                       geomwkt\n"
-"-----"
-"+--------------------------------------------------------------------------\n"
-" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 "
-"5793243.85,\n"
-"                 3427928 5793243.95,3427927.95 5793243.95))\n"
-" 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 "
-"5793243.85,\n"
-"                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
-" 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 "
-"5793243.75,\n"
-"                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
-" 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 "
-"5793243.8,\n"
-"                 3427927.8 5793243.85,3427927.75 5793243.85))"
+"<varname>EXACT</varname> to strictly match only those pixels values found in "
+"the colormap. Pixels whose value does not match a colormap entry will be set "
+"to 0 0 0 0 (RGBA)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5118
+#: reference_raster.xml:6244
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref "
-"linkend=\"RT_ST_ValueCount\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5124
-#, no-c-format
-msgid "ST_Envelope"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5125
-#, no-c-format
-msgid "Returns the polygon representation of the extent of the raster."
+"<varname>NEAREST</varname> to use the colormap entry whose value is closest "
+"to the pixel value"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:5130
+#. Tag: para
+#: reference_raster.xml:6251
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+"A great reference for colormaps is <ulink url=\"http://www.colorbrewer2.org"
+"\">ColorBrewer</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5140
+#: reference_raster.xml:6256
 #, no-c-format
 msgid ""
-"Returns the polygon representation of the extent of the raster in spatial "
-"coordinate units defined by srid. It is a float8 minimum bounding box "
-"represented as a polygon."
+"The resulting bands of new raster will have no NODATA value set. Use <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/> to set a NODATA value if one is "
+"needed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5141
+#: reference_raster.xml:6266
 #, no-c-format
-msgid ""
-"The polygon is defined by the corner points of the bounding box "
-"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
-"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
-"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
-"(<varname>MINX</varname>, <varname>MINY</varname>))"
+msgid "This is a junk table to play with"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5152
+#: reference_raster.xml:6268
 #, no-c-format
 msgid ""
-"SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
-"FROM dummy_rast;\n"
+"-- setup test raster table --\n"
+"DROP TABLE IF EXISTS funky_shapes;\n"
+"CREATE TABLE funky_shapes(rast raster);\n"
 "\n"
-" rid |                                         envgeomwkt\n"
-"-----+--------------------------------------------------------------------\n"
-"   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
-"   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
-"                   3427928 5793244,3427927 5793244, 3427927 5793243))"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5158
-#, no-c-format
-msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5164
-#, no-c-format
-msgid "ST_HillShade"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5165
-#, no-c-format
-msgid ""
-"Returns the hypothetical illumination of an elevation raster band using "
-"provided azimuth, altitude, brightness and elevation scale inputs. Useful "
-"for visualizing terrain."
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:5169
-#, no-c-format
-msgid ""
-"<funcdef>raster <function>ST_HillShade</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
-"<paramdef><type>double precision </type> <parameter>azimuth</parameter></"
-"paramdef> <paramdef><type>double precision </type> <parameter>altitude</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
-"type> <parameter>max_bright=255</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>double precision </type> <parameter>elevation_scale=1</parameter></"
-"paramdef>"
+"INSERT INTO funky_shapes(rast)\n"
+"WITH ref AS (\n"
+"        SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_Union(rast)\n"
+"FROM (\n"
+"        SELECT \n"
+"                ST_AsRaster(\n"
+"                        ST_Rotate(\n"
+"                                ST_Buffer(\n"
+"                                        ST_GeomFromText('LINESTRING(0 2,50 "
+"50,150 150,125 50)'),\n"
+"                                        i*2\n"
+"                                ),\n"
+"                                pi() * i * 0.125, ST_Point(50,50)\n"
+"                        ),\n"
+"                        ref.rast, '8BUI'::text, i * 5\n"
+"                ) AS rast\n"
+"        FROM ref\n"
+"        CROSS JOIN generate_series(1, 10, 3) AS i\n"
+") AS shapes;"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5185
+#. Tag: programlisting
+#: reference_raster.xml:6270
 #, no-c-format
 msgid ""
-"Returns the hypothetical illumination of an elevation raster band using the "
-"azimuth, altitude, brightness, and elevation scale inputs. Utilizes map "
-"algebra and applies the hill shade equation to neighboring pixels."
+"SELECT\n"
+"        ST_NumBands(rast) As n_orig,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'greyscale')) As ngrey,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'pseudocolor')) As npseudo,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'fire')) As nfire,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, 'bluered')) As nbluered,\n"
+"        ST_NumBands(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As nred\n"
+"FROM funky_shapes;"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5186
+#. Tag: screen
+#: reference_raster.xml:6272
 #, no-c-format
 msgid ""
-"The hill shade equation is: <programlisting>max_bright * ( (cos(zenith)*cos"
-"(slope)) + (sin(zenith)*sin(slope)*cos(azimuth - aspect)) )</programlisting>."
+"n_orig | ngrey | npseudo | nfire | nbluered | nred\n"
+"--------+-------+---------+-------+----------+------\n"
+"      1 |     1 |       4 |     4 |        4 |    3"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5192 reference_raster.xml:5257
-#: reference_raster.xml:5322
+#: reference_raster.xml:6276
 #, no-c-format
-msgid "Examples - coming soon"
+msgid "Examples: Compare different color map looks using ST_AsPNG"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5193 reference_raster.xml:5258
-#: reference_raster.xml:5323
-#, no-c-format
-msgid "coming soon"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5207
-#, no-c-format
-msgid "ST_Aspect"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5208
-#, no-c-format
-msgid ""
-"Returns the surface aspect of an elevation raster band. Useful for analyzing "
-"terrain."
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:5212
+#: reference_raster.xml:6277
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Aspect</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+"SELECT\n"
+"        ST_AsPNG(rast) As orig_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1,'greyscale')) As grey_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'pseudocolor')) As pseudo_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'nfire')) As fire_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, 'bluered')) As bluered_png,\n"
+"        ST_AsPNG(ST_ColorMap(rast,1, '\n"
+"100% 255   0   0\n"
+" 80% 160   0   0\n"
+" 50% 130   0   0\n"
+" 30%  30   0   0\n"
+" 20%  60   0   0\n"
+"  0%   0   0   0\n"
+"  nv 255 255 255\n"
+"        ')) As red_png\n"
+"FROM funky_shapes;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5224
+#: reference_raster.xml:6291
 #, no-c-format
-msgid ""
-"Returns the surface aspect of an elevation raster band. Utilizes map algebra "
-"and applies the aspect equation to neighboring pixels."
+msgid "orig_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5226 reference_raster.xml:5291
-#, no-c-format
-msgid "Given the following representation of a 3x3 neighborhood of pixels:"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5232 reference_raster.xml:5297
-#, no-c-format
-msgid "<entry>A</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5233 reference_raster.xml:5298
-#, no-c-format
-msgid "<entry>B</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5234 reference_raster.xml:5299
-#, no-c-format
-msgid "<entry>C</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5237 reference_raster.xml:5302
-#, no-c-format
-msgid "<entry>D</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5238 reference_raster.xml:5303
-#, no-c-format
-msgid "<entry>E</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5239 reference_raster.xml:5304
-#, no-c-format
-msgid "<entry>F</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5242 reference_raster.xml:5307
-#, no-c-format
-msgid "<entry>G</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5243 reference_raster.xml:5308
-#, no-c-format
-msgid "<entry>H</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5244 reference_raster.xml:5309
+#: reference_raster.xml:6305
 #, no-c-format
-msgid "<entry>I</entry>"
+msgid "grey_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5250
-#, no-c-format
-msgid ""
-"The equation for the pixel aspect of cell E is: atan2((((G + 2H + I) - (A + "
-"2B + C)) / 8), -(((C + 2F + I) - (A + 2D + G)) / 8))"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5272
+#: reference_raster.xml:6319
 #, no-c-format
-msgid "ST_Slope"
+msgid "pseudo_png"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:5273
+#. Tag: para
+#: reference_raster.xml:6335
 #, no-c-format
-msgid ""
-"Returns the surface slope of an elevation raster band. Useful for analyzing "
-"terrain."
+msgid "fire_png"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:5277
+#. Tag: para
+#: reference_raster.xml:6349
 #, no-c-format
-msgid ""
-"<funcdef>raster <function>ST_Slope</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+msgid "bluered_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5289
+#: reference_raster.xml:6363
 #, no-c-format
-msgid ""
-"Returns the surface slope of an elevation raster band. Utilizes map algebra "
-"and applies the slope equation to neighboring pixels."
+msgid "red_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5315
+#: reference_raster.xml:6377
 #, no-c-format
 msgid ""
-"The equation for the pixel slope of cell E is: atan(sqrt(((c + 2f + i) - (a "
-"+ 2d + g) / 8)^2 + (((g + 2h + i) - (a + 2b + c)) / 8) ^ 2))"
+", <xref linkend=\"RT_ST_AsRaster\"/> <xref linkend=\"RT_ST_MapAlgebra\"/>, "
+"<xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, <xref "
+"linkend=\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5337
+#: reference_raster.xml:6391
 #, no-c-format
 msgid "ST_Intersection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5338
+#: reference_raster.xml:6392
 #, no-c-format
 msgid ""
 "<refpurpose>Returns a raster or a set of geometry-pixelvalue pairs "
@@ -9070,7 +10661,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5342
+#: reference_raster.xml:6396
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></"
@@ -9115,7 +10706,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5402
+#: reference_raster.xml:6456
 #, no-c-format
 msgid ""
 "<para>Returns a raster or a set of geometry-pixelvalue pairs representing "
@@ -9124,7 +10715,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5404
+#: reference_raster.xml:6460
 #, no-c-format
 msgid ""
 "The first three variants, returning a setof geomval, works in vector space. "
@@ -9137,7 +10728,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5406
+#: reference_raster.xml:6464
 #, no-c-format
 msgid ""
 "You can access the geometry and the value parts of the resulting set of "
@@ -9146,7 +10737,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5408
+#: reference_raster.xml:6468
 #, no-c-format
 msgid ""
 "The other variants, returning a raster, works in raster space. They are "
@@ -9155,7 +10746,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5410
+#: reference_raster.xml:6472
 #, no-c-format
 msgid ""
 "The extent of the resulting raster corresponds to the geometrical "
@@ -9168,7 +10759,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5412
+#: reference_raster.xml:6476
 #, no-c-format
 msgid ""
 "Rasters resulting from ST_Intersection must have a nodata value assigned for "
@@ -9184,13 +10775,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5414
+#: reference_raster.xml:6480
 #, no-c-format
 msgid "In all variants, if no band number is specified band 1 is assumed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5416
+#: reference_raster.xml:6485
 #, no-c-format
 msgid ""
 "To get more control on the resulting extent or on what to return when "
@@ -9199,7 +10790,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5418
+#: reference_raster.xml:6491
 #, no-c-format
 msgid ""
 "To compute the intersection of a raster band with a geometry in raster "
@@ -9208,7 +10799,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5420
+#: reference_raster.xml:6497
 #, no-c-format
 msgid ""
 "ST_Intersection should be used in conjunction with ST_Intersects and an "
@@ -9216,7 +10807,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5422
+#: reference_raster.xml:6502
 #, no-c-format
 msgid ""
 "Enhanced: 2.0.0 - Intersection in the raster space was introduced. In "
@@ -9225,27 +10816,35 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5426
+#: reference_raster.xml:6508
 #, no-c-format
 msgid "Examples: Geometry, Raster -- resulting in geometry vals"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5428
+#: reference_raster.xml:6510
 #, no-c-format
 msgid ""
-"SELECT foo.rid, foo.gid, \n"
-"   ST_AsText((foo.geomval).geom) As geomwkt, (foo.geomval).val\n"
-"FROM\n"
-"        (\n"
-"SELECT A.rid, g.gid , ST_Intersection(A.rast, g.geom) As geomval\n"
-" FROM dummy_rast AS A CROSS JOIN \n"
-"        (VALUES (1, ST_Point(3427928, 5793243.85) ) ,\n"
-"                (2, ST_GeomFromText('LINESTRING(3427927.85 "
-"5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)') ),\n"
-"                (3, ST_GeomFromText('LINESTRING(1 2, 3 4)') )\n"
-"                ) As g(gid,geom)\n"
-"WHERE A.rid =2 ) As foo;\n"
+"SELECT\n"
+"        foo.rid,\n"
+"        foo.gid,\n"
+"        ST_AsText((foo.geomval).geom) As geomwkt,\n"
+"        (foo.geomval).val\n"
+"FROM (\n"
+"        SELECT\n"
+"                A.rid,\n"
+"                g.gid,\n"
+"                ST_Intersection(A.rast, g.geom) As geomval\n"
+"        FROM dummy_rast AS A\n"
+"        CROSS JOIN (\n"
+"                VALUES\n"
+"                        (1, ST_Point(3427928, 5793243.85) ),\n"
+"                        (2, ST_GeomFromText('LINESTRING(3427927.85 "
+"5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)')),\n"
+"                        (3, ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+"        ) As g(gid,geom)\n"
+"        WHERE A.rid = 2\n"
+") As foo;\n"
 "\n"
 " rid | gid |      "
 "geomwkt                                                                                                "
@@ -9275,19 +10874,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5433
+#: reference_raster.xml:6514
 #, no-c-format
 msgid "Example: Raster, Geometry -- resulting is a raster"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5434
+#: reference_raster.xml:6515
 #, no-c-format
 msgid "Examples coming soon"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5441
+#: reference_raster.xml:6521
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Intersects\"/>, <xref linkend="
@@ -9296,21 +10895,21 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5447
+#: reference_raster.xml:6533 reference_raster.xml:6780
 #, no-c-format
 msgid "ST_MapAlgebra"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5448
+#: reference_raster.xml:6534
 #, no-c-format
 msgid ""
-"<refpurpose>Returns a one-band raster given one or more input rasters, band "
-"indexes and one user-specified callback function.</refpurpose>"
+"Callback function version - Returns a one-band raster given one or more "
+"input rasters, band indexes and one user-specified callback function."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5454
+#: reference_raster.xml:6540
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
@@ -9369,20 +10968,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5515
+#: reference_raster.xml:6601
+#, no-c-format
+msgid ""
+"Returns a one-band raster given one or more input rasters, band indexes and "
+"one user-specified callback function."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6607
+#, no-c-format
+msgid "rast,rast1,rast2, rastbandargset"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6609
+#, no-c-format
+msgid "Rasters on which the map algebra process is evaluated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6610
 #, no-c-format
 msgid ""
-"<para>Returns a one-band raster given one or more input rasters, band "
-"indexes and one user-specified callback function.</para>"
+"<varname>rastbandargset</varname> allows the use of a map algebra operation "
+"on many rasters and/or many bands. See example Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6615
+#, no-c-format
+msgid "nband, nband1, nband2"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5519
+#: reference_raster.xml:6617
 #, no-c-format
 msgid ""
-"The <varname>tworastuserfunc</varname> parameter must be the name and "
-"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
-"PL/pgSQL function example is: <programlisting>\n"
+"Band numbers of the raster to be evaluated. nband can be an integer or "
+"integer[] denoting the bands. nband1 is band on rast1 and nband2 is band on "
+"rast2 for hte 2 raster/2band case."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6623
+#, no-c-format
+msgid "callbackfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6625
+#, no-c-format
+msgid ""
+"The <varname>callbackfunc</varname> parameter must be the name and signature "
+"of an SQL or PL/pgSQL function, cast to a regprocedure. An example PL/pgSQL "
+"function example is: <programlisting>\n"
 "CREATE OR REPLACE FUNCTION sample_callbackfunc(value double precision[][][], "
 "position integer[][], VARIADIC userargs text[])\n"
 "        RETURNS double precision\n"
@@ -9391,23 +11031,23 @@ msgid ""
 "                RETURN 0;\n"
 "        END;\n"
 "        $$ LANGUAGE 'plpgsql' IMMUTABLE;\n"
-"                                        </programlisting> The "
-"<varname>callbackfunc</varname> must have three arguments: a 3-dimension "
-"double precision array, a 2-dimension double precision array and a variadic "
-"1-dimension text array. The first argument <varname>value</varname> is the "
-"set of values (as double precision) from all input rasters. The three "
-"dimensions (where indexes are 1-based) are: raster #, row y, column x. The "
-"second argument <varname>position</varname> is the set of pixel positions "
-"from the output raster and input rasters. The outer dimension (where indexes "
-"are 0-based) is the raster #. The position at outer dimension index 0 is the "
-"output raster's pixel position. For each outer dimension, there are two "
-"elements in the inner dimension for X and Y. The third argument "
-"<varname>userargs</varname> is for passing through any user-specified "
-"arguments."
+"                                                                        </"
+"programlisting> The <varname>callbackfunc</varname> must have three "
+"arguments: a 3-dimension double precision array, a 2-dimension integer array "
+"and a variadic 1-dimension text array. The first argument <varname>value</"
+"varname> is the set of values (as double precision) from all input rasters. "
+"The three dimensions (where indexes are 1-based) are: raster #, row y, "
+"column x. The second argument <varname>position</varname> is the set of "
+"pixel positions from the output raster and input rasters. The outer "
+"dimension (where indexes are 0-based) is the raster #. The position at outer "
+"dimension index 0 is the output raster's pixel position. For each outer "
+"dimension, there are two elements in the inner dimension for X and Y. The "
+"third argument <varname>userargs</varname> is for passing through any user-"
+"specified arguments."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5526
+#: reference_raster.xml:6632
 #, no-c-format
 msgid ""
 "Passing a <type>regprocedure</type> argument to a SQL function requires the "
@@ -9415,66 +11055,136 @@ msgid ""
 "type> type. To pass the above example PL/pgSQL function as an argument, the "
 "SQL for the argument is: <programlisting>\n"
 "'sample_callbackfunc(double precision[], integer[], text[])'::regprocedure\n"
-"                                        </programlisting> Note that the "
-"argument contains the name of the function, the types of the function "
-"arguments, quotes around the name and argument types, and a cast to a "
-"<type>regprocedure</type>."
+"                                                                        </"
+"programlisting> Note that the argument contains the name of the function, "
+"the types of the function arguments, quotes around the name and argument "
+"types, and a cast to a <type>regprocedure</type>."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5534
+#. Tag: term
+#: reference_raster.xml:6644 reference_raster.xml:6894
+#: reference_raster.xml:7189 reference_raster.xml:7743
 #, no-c-format
-msgid ""
-"The third argument to the <varname>callbackfunc</varname> is a "
-"<type>variadic text</type> array. All trailing text arguments are passed "
-"through to the specified <varname>callbackfunc</varname>, and are contained "
-"in the <varname>userargs</varname> argument."
+msgid "pixeltype"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5539 reference_raster.xml:5998
-#: reference_raster.xml:6095
+#: reference_raster.xml:6646
 #, no-c-format
 msgid ""
-"For more information about the VARIADIC keyword, please refer to the "
-"PostgreSQL documentation and the \"SQL Functions with Variable Numbers of "
-"Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/"
-"static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
+"If <varname>pixeltype</varname> is passed in, the one band of the new raster "
+"will be of that pixeltype. If pixeltype is passed NULL or left out, the new "
+"raster band will have the same pixeltype as the specified band of the first "
+"raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the "
+"specified band of the appropriate raster (for extent types: SECOND, LAST). "
+"If in doubt, always specify <varname>pixeltype</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5545
+#: reference_raster.xml:6649
 #, no-c-format
 msgid ""
-"The <type>text[]</type> argument to the <varname>callbackfunc</varname> is "
-"required, regardless of whether you choose to pass any arguments to the "
-"callback function for processing or not."
+"The resulting pixel type of the output raster must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6656 reference_raster.xml:6902
+#: reference_raster.xml:7198
+#, no-c-format
+msgid "extenttype"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5550
+#: reference_raster.xml:6658
 #, no-c-format
 msgid ""
-"If <varname>pixeltype</varname> is passed in, the one band of the new raster "
-"will be of that pixeltype. If pixeltype is passed NULL or left out, the new "
-"raster band will have the same pixeltype as the specified band of the first "
-"raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the "
-"specified band of the appropriate raster (for extent types: SECOND, LAST). "
-"If in doubt, always specify <varname>pixeltype</varname>."
+"Possible values are INTERSECTION (default), UNION, FIRST (default for one "
+"raster variants), SECOND, LAST, CUSTOM."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6665
+#, no-c-format
+msgid "customextent"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6667
+#, no-c-format
+msgid ""
+"If <varname>extentype</varname> is CUSTOM, a raster must be provided for "
+"<varname>customextent</varname>. See example 4 of Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6674
+#, no-c-format
+msgid "distancex"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6676
+#, no-c-format
+msgid ""
+"The distance in pixels from the reference cell. So width of resulting matrix "
+"would be <code>2*distancex + 1</code>.If not specified only the reference "
+"cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6683
+#, no-c-format
+msgid "distancey"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6685
+#, no-c-format
+msgid ""
+"The distance in pixels from reference cell in y direction. Height of "
+"resulting matrix would be <code>2*distancey + 1</code> .If not specified "
+"only the reference cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6692
+#, no-c-format
+msgid "userargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6694
+#, no-c-format
+msgid ""
+"The third argument to the <varname>callbackfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments are passed "
+"through to the specified <varname>callbackfunc</varname>, and are contained "
+"in the <varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6702 reference_raster.xml:7518
+#: reference_raster.xml:7637
+#, no-c-format
+msgid ""
+"For more information about the VARIADIC keyword, please refer to the "
+"PostgreSQL documentation and the \"SQL Functions with Variable Numbers of "
+"Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/"
+"static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5554
+#: reference_raster.xml:6708
 #, no-c-format
 msgid ""
-"Possible values for <varname>extenttype</varname> are: INTERSECTION "
-"(default), UNION, FIRST (default for one raster variants), SECOND, LAST, "
-"CUSTOM. If <varname>extentype</varname> is CUSTOM, a raster must be provided "
-"for <varname>customextent</varname>. See example 4 of Variant 1."
+"The <type>text[]</type> argument to the <varname>callbackfunc</varname> is "
+"required, regardless of whether you choose to pass any arguments to the "
+"callback function for processing or not."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5558
+#: reference_raster.xml:6713
 #, no-c-format
 msgid ""
 "Variant 1 accepts an array of <varname>rastbandarg</varname> allowing the "
@@ -9483,7 +11193,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5562
+#: reference_raster.xml:6717
 #, no-c-format
 msgid ""
 "Variants 2 and 3 operate upon one or more bands of one raster. See example "
@@ -9491,18 +11201,23 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5566
+#: reference_raster.xml:6721
 #, no-c-format
 msgid ""
 "Variant 4 operate upon two rasters with one band per raster. See example "
 "Variant 4."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6732 reference_raster.xml:6754
+#, no-c-format
+msgid "One raster, one band"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5585
+#: reference_raster.xml:6733
 #, no-c-format
 msgid ""
-"-- one raster, one band\n"
 "WITH foo AS (\n"
 "        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
 "0, 0), 1, '16BUI', 1, 0) AS rast\n"
@@ -9516,15 +11231,20 @@ msgid ""
 "FROM foo"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6735 reference_raster.xml:6751
+#, no-c-format
+msgid "One raster, several bands"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5587
+#: reference_raster.xml:6736
 #, no-c-format
 msgid ""
-"-- one raster, several bands\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
@@ -9536,23 +11256,29 @@ msgid ""
 "FROM foo"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6738
+#, no-c-format
+msgid "Several rasters, several bands"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5589
+#: reference_raster.xml:6739
 #, no-c-format
 msgid ""
-"-- several rasters, several bands\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast UNION ALL\n"
-"        SELECT 2 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 1, 1, -1, 0, 0, 0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, "
-"'32BUI', 300, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
-"                ARRAY[ROW(t1.rast, 3), ROW(t2.rast, 1), ROW(t2.rast, 3), ROW"
-"(t1.rast, 2)]::rastbandarg[],\n"
+"                ARRAY[ROW(t1.rast, 3), ROW(t2.rast, 1), ROW(t2.rast, 3), "
+"ROW(t1.rast, 2)]::rastbandarg[],\n"
 "                'sample_callbackfunc(double precision[], int[], text[])'::"
 "regprocedure\n"
 "        ) AS rast\n"
@@ -9562,11 +11288,18 @@ msgid ""
 "        AND t2.rid = 2"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6741
+#, no-c-format
+msgid ""
+"Complete example of tiles of a coverage with neighborhood. This query only "
+"works with PostgreSQL 9.1 or higher."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5591
+#: reference_raster.xml:6742
 #, no-c-format
 msgid ""
-"-- complete example of tiles of a coverage with neighborhood\n"
 "WITH foo AS (\n"
 "        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
 "0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
@@ -9599,29 +11332,95 @@ msgid ""
 "                'CUSTOM', t1.rast,\n"
 "                1, 1\n"
 "        ) AS rast\n"
-"FROM raster_nmapalgebra_in t1\n"
-"CROSS JOIN raster_nmapalgebra_in t2\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
 "WHERE t1.rid = 4\n"
 "        AND t2.rid BETWEEN 0 AND 8\n"
 "        AND ST_Intersects(t1.rast, t2.rast)\n"
 "GROUP BY t1.rid, t1.rast"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6744
+#, no-c-format
+msgid ""
+"Example like the prior one for tiles of a coverage with neighborhood but "
+"works with PostgreSQL 9.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6745
+#, no-c-format
+msgid ""
+"WITH src AS (\n"
+"        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, "
+"0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+"        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 2, 0) AS rast UNION ALL\n"
+"        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), "
+"1, '16BUI', 3, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+"        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+"        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, "
+"0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+"\n"
+"        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+"        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+"        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, "
+"0), 1, '16BUI', 300, 0) AS rast\n"
+")\n"
+"WITH foo AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_Union(t2.rast) AS rast\n"
+"        FROM src t1\n"
+"        JOIN src t2\n"
+"                ON ST_Intersects(t1.rast, t2.rast)\n"
+"                AND t2.rid BETWEEN 0 AND 8\n"
+"        WHERE t1.rid = 4\n"
+"        GROUP BY t1.rid\n"
+"), bar AS (\n"
+"        SELECT\n"
+"                t1.rid,\n"
+"                ST_MapAlgebra(\n"
+"                        ARRAY[ROW(t2.rast, 1)]::rastbandarg[],\n"
+"                        'raster_nmapalgebra_test(double precision[], int[], "
+"text[])'::regprocedure,\n"
+"                        '32BUI',\n"
+"                        'CUSTOM', t1.rast,\n"
+"                        1, 1\n"
+"                ) AS rast\n"
+"        FROM src t1\n"
+"        JOIN foo t2\n"
+"                ON t1.rid = t2.rid \n"
+")\n"
+"SELECT\n"
+"        rid,\n"
+"        (ST_Metadata(rast)),\n"
+"        (ST_BandMetadata(rast, 1)),\n"
+"        ST_Value(rast, 1, 1, 1)\n"
+"FROM bar;"
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:5596
+#: reference_raster.xml:6749
 #, no-c-format
 msgid "Examples: Variants 2 and 3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5598
+#: reference_raster.xml:6752
 #, no-c-format
 msgid ""
-"-- one raster, several bands\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
@@ -9633,14 +11432,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5600
+#: reference_raster.xml:6755
 #, no-c-format
 msgid ""
-"-- one raster, one band\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
@@ -9652,23 +11450,29 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5605
+#: reference_raster.xml:6759
 #, no-c-format
 msgid "Examples: Variant 4"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6761
+#, no-c-format
+msgid "Two rasters, two bands"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5607
+#: reference_raster.xml:6762
 #, no-c-format
 msgid ""
-"-- two rasters, two bands\n"
 "WITH foo AS (\n"
-"        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, "
-"'32BUI', 100, 0) AS rast UNION ALL\n"
-"        SELECT 2 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster"
-"(2, 2, 0, 1, 1, -1, 0, 0, 0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, "
-"'32BUI', 300, 0) AS rast\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
 ")\n"
 "SELECT\n"
 "        ST_MapAlgebra(\n"
@@ -9684,58 +11488,94 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5614
-#, no-c-format
-msgid ", <xref linkend=\"RT_ST_Union\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5625 reference_raster.xml:5712
+#: reference_raster.xml:6769
 #, no-c-format
-msgid "ST_MapAlgebraExpr"
+msgid ""
+", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra_expr\"/>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5626
+#: reference_raster.xml:6781
 #, no-c-format
 msgid ""
-"1 raster band version: Creates a new one band raster formed by applying a "
-"valid PostgreSQL algebraic operation on the input raster band and of "
-"pixeltype provided. Band 1 is assumed if no band is specified."
+"<refpurpose>Expression version - Returns a one-band raster given one or two "
+"input rasters, band indexes and one or more user-specified SQL expressions.</"
+"refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5630
+#: reference_raster.xml:6787
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
 "<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband1</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband2</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>expression</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=NULL</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebra</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>expression</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text </type> <parameter>nodata1expr=NULL</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata2expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>nodatanodataval=NULL</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6838
+#, no-c-format
+msgid ""
+"<para>Expression version - Returns a one-band raster given one or two input "
+"rasters, band indexes and one or more user-specified SQL expressions.</para>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6846
+#, no-c-format
+msgid "Description: Variants 1 and 2 (one raster)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5653
+#: reference_raster.xml:6848
 #, no-c-format
 msgid ""
 "Creates a new one band raster formed by applying a valid PostgreSQL "
 "algebraic operation defined by the <varname>expression</varname> on the "
-"input raster (<varname>rast</varname>). If no <varname>band</varname> is "
-"specified band 1 is assumed. The new raster will have the same georeference, "
+"input raster (<varname>rast</varname>). If <varname>nband</varname> is not "
+"provided, band 1 is assumed. The new raster will have the same georeference, "
 "width, and height as the original raster but will only have one band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5655 reference_raster.xml:5988
+#: reference_raster.xml:6852 reference_raster.xml:7054
+#: reference_raster.xml:7502
 #, no-c-format
 msgid ""
 "If <varname>pixeltype</varname> is passed in, then the new raster will have "
@@ -9744,207 +11584,65 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5657
+#: reference_raster.xml:6857
 #, no-c-format
-msgid ""
-"In the expression you can use the term <varname>[rast]</varname> to refer to "
-"the pixel value of the original band, <varname>[rast.x]</varname> to refer "
-"to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to "
-"the 1-based pixel row index."
+msgid "Keywords permitted for <varname>expression</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5669 reference_raster.xml:5806
-#: reference_raster.xml:6008
+#: reference_raster.xml:6860
 #, no-c-format
-msgid ""
-"Create a new 1 band raster from our original that is a function of modulo 2 "
-"of the original raster band."
+msgid "<varname>[rast]</varname> - Pixel value of the pixel of interest"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5670
+#. Tag: para
+#: reference_raster.xml:6863
 #, no-c-format
-msgid ""
-"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
-"UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,NULL,'mod"
-"([rast],2)') WHERE rid = 2;\n"
-"\n"
-"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
-"mapval\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
-"generate_series(1,3) AS j\n"
-"WHERE rid = 2;\n"
-"\n"
-" origval | mapval\n"
-"---------+--------\n"
-"     253 |      1\n"
-"     254 |      0\n"
-"     253 |      1\n"
-"     253 |      1\n"
-"     254 |      0\n"
-"     254 |      0\n"
-"     250 |      0\n"
-"     254 |      0\n"
-"     254 |      0"
+msgid "<varname>[rast.val]</varname> - Pixel value of the pixel of interest"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5671
+#: reference_raster.xml:6866
 #, no-c-format
 msgid ""
-"Create a new 1 band raster of pixel-type 2BUI from our original that is "
-"reclassified and set the nodata value to be 0."
+"<varname>[rast.x]</varname> - 1-based pixel column of the pixel of interest"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5672
+#. Tag: para
+#: reference_raster.xml:6869
 #, no-c-format
 msgid ""
-"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
-"UPDATE dummy_rast SET map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN "
-"[rast] BETWEEN 100 and 250 THEN 1 \n"
-"WHEN [rast] = 252 THEN 2 \n"
-"WHEN [rast] BETWEEN 253 and 254 THEN 3 ELSE 0 END', '0') WHERE rid = 2;\n"
-"\n"
-"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
-"j) As mapval\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
-"generate_series(1,5) AS j\n"
-"WHERE rid = 2;\n"
-"\n"
-" origval | mapval\n"
-"---------+--------\n"
-"     249 |      1\n"
-"     250 |      1\n"
-"     251 |\n"
-"     252 |      2\n"
-"     253 |      3\n"
-"     254 |      3\n"
-"     \n"
-"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
-"FROM dummy_rast WHERE rid = 2;\n"
-"\n"
-" b1pixtyp\n"
-"----------\n"
-" 2BUI"
+"<varname>[rast.y]</varname> - 1-based pixel row of the pixel of interest"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5682 reference_raster.xml:6021
+#. Tag: title
+#: reference_raster.xml:6878
 #, no-c-format
-msgid "original (column rast-view)"
+msgid "Description: Variants 3 and 4 (two raster)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5691 reference_raster.xml:6029
+#: reference_raster.xml:6880 reference_raster.xml:7174
 #, no-c-format
-msgid "rast_view_ma"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5699 reference_raster.xml:6037
-#, no-c-format
-msgid ""
-"Create a new 3 band raster same pixel type from our original 3 band raster "
-"with first band altered by map algebra and remaining 2 bands unaltered."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:5701
-#, no-c-format
-msgid ""
-"SELECT ST_AddBand(\n"
-"ST_AddBand(\n"
-"        ST_AddBand(\n"
-"                ST_MakeEmptyRaster(rast_view),\n"
-"                        ST_MapAlgebraExpr(rast_view,1,NULL,'tan([rast])*"
-"[rast]')\n"
-"                        ), \n"
-"                ST_Band(rast_view,2)\n"
-"                        ),\n"
-"        ST_Band(rast_view, 3) As rast_view_ma\n"
-")\n"
-"FROM wind\n"
-"WHERE rid=167;"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5706
-#, no-c-format
-msgid ""
-", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend="
-"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref "
-"linkend=\"RT_ST_Value\"/>"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5713
-#, no-c-format
-msgid ""
-"2 raster band version: Creates a new one band raster formed by applying a "
-"valid PostgreSQL algebraic operation on the two input raster bands and of "
-"pixeltype provided. band 1 of each raster is assumed if no band numbers are "
-"specified. The resulting raster will be aligned (scale, skew and pixel "
-"corners) on the grid defined by the first raster and have its extent defined "
-"by the \"extenttype\" parameter. Values for \"extenttype\" can be: "
-"INTERSECTION, UNION, FIRST, SECOND."
-msgstr ""
-
-#. Tag: funcsynopsis
-#: reference_raster.xml:5717
-#, no-c-format
-msgid ""
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
-"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>text </type> "
-"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
-"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
-"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
-"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
-"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
-"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>text </type> "
-"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
-"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
-"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5749
-#, no-c-format
-msgid ""
-"Creates a new one band raster formed by applying a valid PostgreSQL "
-"algebraic operation to the two bands defined by the <varname>expression</"
-"varname> on the two input raster bands <varname>rast1</varname>, "
-"(<varname>rast2</varname>). If no <varname>band1</varname>, <varname>band2</"
-"varname> is specified band 1 is assumed. The resulting raster will be "
-"aligned (scale, skew and pixel corners) on the grid defined by the first "
-"raster. The resulting raster will have the extent defined by the "
-"<varname>extenttype</varname> parameter."
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation to the two bands defined by the <varname>expression</"
+"varname> on the two input raster bands <varname>rast1</varname>, "
+"(<varname>rast2</varname>). If no <varname>band1</varname>, <varname>band2</"
+"varname> is specified band 1 is assumed. The resulting raster will be "
+"aligned (scale, skew and pixel corners) on the grid defined by the first "
+"raster. The resulting raster will have the extent defined by the "
+"<varname>extenttype</varname> parameter."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5754
+#: reference_raster.xml:6886 reference_raster.xml:7180
 #, no-c-format
 msgid "expression"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5755
+#: reference_raster.xml:6888 reference_raster.xml:7182
 #, no-c-format
 msgid ""
 "A PostgreSQL algebraic expression involving the two rasters and PostgreSQL "
@@ -9952,14 +11650,8 @@ msgid ""
 "intersect. e.g. (([rast1] + [rast2])/2.0)::integer"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:5758 reference_raster.xml:6190
-#, no-c-format
-msgid "pixeltype"
-msgstr ""
-
 #. Tag: para
-#: reference_raster.xml:5759
+#: reference_raster.xml:6896 reference_raster.xml:7191
 #, no-c-format
 msgid ""
 "The resulting pixel type of the output raster. Must be one listed in <xref "
@@ -9967,20 +11659,14 @@ msgid ""
 "or set to NULL, will default to the pixeltype of the first raster."
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:5762
-#, no-c-format
-msgid "extenttype"
-msgstr ""
-
 #. Tag: para
-#: reference_raster.xml:5763
+#: reference_raster.xml:6904 reference_raster.xml:7200
 #, no-c-format
 msgid "Controls the extent of resulting raster"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5766
+#: reference_raster.xml:6910 reference_raster.xml:7203
 #, no-c-format
 msgid ""
 "<varname>INTERSECTION</varname> - The extent of the new raster is the "
@@ -9988,7 +11674,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5769
+#: reference_raster.xml:6915 reference_raster.xml:7208
 #, no-c-format
 msgid ""
 "<varname>UNION</varname> - The extent of the new raster is the union of the "
@@ -9996,7 +11682,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5772
+#: reference_raster.xml:6920 reference_raster.xml:7213
 #, no-c-format
 msgid ""
 "<varname>FIRST</varname> - The extent of the new raster is the same as the "
@@ -10004,7 +11690,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5775
+#: reference_raster.xml:6925 reference_raster.xml:7218
 #, no-c-format
 msgid ""
 "<varname>SECOND</varname> - The extent of the new raster is the same as the "
@@ -10012,13 +11698,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5781
+#: reference_raster.xml:6933 reference_raster.xml:7227
 #, no-c-format
 msgid "nodata1expr"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5782
+#: reference_raster.xml:6935 reference_raster.xml:7229
 #, no-c-format
 msgid ""
 "An algebraic expression involving only <varname>rast2</varname> or a "
@@ -10027,13 +11713,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5785
+#: reference_raster.xml:6941 reference_raster.xml:7236
 #, no-c-format
 msgid "nodata2expr"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5786
+#: reference_raster.xml:6943 reference_raster.xml:7238
 #, no-c-format
 msgid ""
 "An algebraic expression involving only <varname>rast1</varname> or a "
@@ -10042,13 +11728,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5789
+#: reference_raster.xml:6949 reference_raster.xml:7245
 #, no-c-format
 msgid "nodatanodataval"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5790
+#: reference_raster.xml:6951 reference_raster.xml:7247
 #, no-c-format
 msgid ""
 "A numeric constant to return when spatially corresponding rast1 and rast2 "
@@ -10056,373 +11742,220 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5795
+#: reference_raster.xml:6959
 #, no-c-format
 msgid ""
-"If <varname>pixeltype</varname> is passed in, then the new raster will have "
-"a band of that pixeltype. If pixeltype is passed NULL or no pixel type "
-"specified, then the new raster band will have the same pixeltype as the "
-"input <varname>rast1</varname> band."
+"Keywords permitted in <varname>expression</varname>, <varname>nodata1expr</"
+"varname> and <varname>nodata2expr</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5796
+#: reference_raster.xml:6962
 #, no-c-format
 msgid ""
-"Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> "
-"to refer to the pixel value of the original raster bands and <varname>[rast1."
-"x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row "
-"positions of the pixels."
-msgstr ""
-
-#. Tag: title
-#: reference_raster.xml:5804
-#, no-c-format
-msgid "Example: 2 Band Intersection and Union"
+"<varname>[rast1]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5807
+#. Tag: para
+#: reference_raster.xml:6965
 #, no-c-format
 msgid ""
-"--Create a cool set of rasters --\n"
-"DROP TABLE IF EXISTS fun_shapes; \n"
-"CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast "
-"raster);\n"
-"\n"
-"-- Insert some cool shapes around Boston in Massachusetts state plane meters "
-"--\n"
-"INSERT INTO fun_shapes(fun_name, rast)\n"
-"VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, "
-"901930,26986),200,200,'8BUI',0,0));\n"
-"\n"
-"INSERT INTO fun_shapes(fun_name,rast)\n"
-"WITH ref(rast) AS (SELECT rast FROM fun_shapes WHERE fun_name = 'ref' ) \n"
-"SELECT 'area' AS fun_name, ST_AsRaster(ST_Buffer(ST_SetSRID(ST_Point(236229, "
-"900930),26986), 1000), \n"
-"                        ref.rast,'8BUI', 10, 0) As rast\n"
-"FROM ref\n"
-"UNION ALL\n"
-"SELECT 'rand bubbles', \n"
-"                         ST_AsRaster( \n"
-"                         (SELECT ST_Collect(geom)\n"
-"        FROM (SELECT ST_Buffer(ST_SetSRID(ST_Point(236229 + i*random()*100, "
-"900930 + j*random()*100),26986), random()*20) As geom\n"
-"                        FROM generate_series(1,10) As i, generate_series"
-"(1,10) As j\n"
-"                        ) As foo ), ref.rast,'8BUI', 200, 0) \n"
-"FROM ref;\n"
-"\n"
-"--map them -\n"
-"SELECT  ST_MapAlgebraExpr(\n"
-"                area.rast, bub.rast, '[rast2.val]', '8BUI', 'INTERSECTION', "
-"'[rast2.val]', '[rast1.val]') As interrast,\n"
-"                ST_MapAlgebraExpr(\n"
-"                        area.rast, bub.rast, '[rast2.val]', '8BUI', 'UNION', "
-"'[rast2.val]', '[rast1.val]') As unionrast\n"
-"FROM \n"
-"  (SELECT rast FROM fun_shapes WHERE\n"
-" fun_name = 'area') As area\n"
-"CROSS JOIN  (SELECT rast \n"
-"FROM fun_shapes WHERE\n"
-" fun_name = 'rand bubbles') As bub"
+"<varname>[rast1.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast1</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5817
+#: reference_raster.xml:6968
 #, no-c-format
-msgid "mapalgebra intersection"
+msgid ""
+"<varname>[rast1.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast1</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5826
+#: reference_raster.xml:6971
 #, no-c-format
-msgid "map algebra union"
+msgid ""
+"<varname>[rast1.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast1</varname>"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:5836 reference_raster.xml:6103
+#. Tag: para
+#: reference_raster.xml:6974
 #, no-c-format
-msgid "Example: Overlaying rasters on a canvas as separate bands"
+msgid ""
+"<varname>[rast2]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5837
+#. Tag: para
+#: reference_raster.xml:6977
 #, no-c-format
 msgid ""
-"-- we use ST_AsPNG to render the image so all single band ones look grey --\n"
-"WITH mygeoms \n"
-"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(1,5),10) As geom\n"
-"            UNION ALL\n"
-"            SELECT 3 AS bnum, \n"
-"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
-"50)'), 10,'join=bevel') As geom\n"
-"            UNION ALL\n"
-"            SELECT 1 As bnum, \n"
-"                ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 150,150 "
-"50)'), 5,'join=bevel') As geom\n"
-"            ),\n"
-"   -- define our canvas to be 1 to 1 pixel to geometry\n"
-"   canvas\n"
-"    AS (SELECT ST_AddBand(ST_MakeEmptyRaster(200, \n"
-"        200, \n"
-"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0) , '8BUI'::"
-"text,0) As rast\n"
-"        FROM (SELECT ST_Extent(geom) As e,\n"
-"                    Max(ST_SRID(geom)) As srid \n"
-"                    from mygeoms \n"
-"                    ) As foo\n"
-"            ),\n"
-"   rbands AS (SELECT ARRAY(SELECT ST_MapAlgebraExpr(canvas.rast, ST_AsRaster"
-"(m.geom, canvas.rast, '8BUI', 100),\n"
-"                 '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1."
-"val]') As rast\n"
-"                FROM mygeoms AS m CROSS JOIN canvas\n"
-"                ORDER BY m.bnum) As rasts\n"
-"                )\n"
-"          SELECT rasts[1] As rast1 , rasts[2] As rast2, rasts[3] As rast3, "
-"ST_AddBand(\n"
-"                    ST_AddBand(rasts[1],rasts[2]), rasts[3]) As final_rast\n"
-"            FROM rbands;"
+"<varname>[rast2.val]</varname> - Pixel value of the pixel of interest from "
+"<varname>rast2</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5848
+#: reference_raster.xml:6980
 #, no-c-format
-msgid "rast1"
+msgid ""
+"<varname>[rast2.x]</varname> - 1-based pixel column of the pixel of interest "
+"from <varname>rast2</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5857
+#: reference_raster.xml:6983
 #, no-c-format
-msgid "rast2"
+msgid ""
+"<varname>[rast2.y]</varname> - 1-based pixel row of the pixel of interest "
+"from <varname>rast2</varname>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5868
+#. Tag: title
+#: reference_raster.xml:6991
 #, no-c-format
-msgid "rast3"
+msgid "Examples: Variants 1 and 2"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5878
+#. Tag: programlisting
+#: reference_raster.xml:6993
 #, no-c-format
-msgid "final_rast"
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 1, 1, 0, 0, 0), "
+"'32BF', 1, -1) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(rast, 1, NULL, 'ceil([rast]*[rast.x]/[rast.y]+[rast."
+"val])')\n"
+"FROM foo"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5888
+#: reference_raster.xml:6997
 #, no-c-format
-msgid ""
-"Example: Overlay 2 meter boundary of select parcels over an aerial imagery"
+msgid "Examples: Variant 3 and 4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5889
+#: reference_raster.xml:6999
 #, no-c-format
 msgid ""
-"-- Create new 3 band raster composed of first 2 clipped bands, and overlay "
-"of 3rd band with our geometry\n"
-"-- This query took 3.6 seconds on PostGIS windows 64-bit install\n"
-"WITH pr AS\n"
-"-- Note the order of operation: we clip all the rasters to dimensions of our "
-"region\n"
-"(SELECT ST_Clip(rast,ST_Expand(geom,50) ) As rast, g.geom\n"
-"        FROM aerials.o_2_boston AS r INNER JOIN\n"
-"-- union our parcels of interest so they form a single geometry we can later "
-"intersect with\n"
-"                (SELECT ST_Union(ST_Transform(the_geom,26986)) AS geom \n"
-"                  FROM landparcels WHERE pid IN('0303890000', '0303900000')) "
-"As g\n"
-"                ON ST_Intersects(rast::geometry, ST_Expand(g.geom,50))\n"
-"),\n"
-"-- we then union the raster shards together\n"
-"-- ST_Union on raster is kinda of slow but much faster the smaller you can "
-"get the rasters\n"
-"-- therefore we want to clip first and then union\n"
-"prunion AS\n"
-"(SELECT ST_AddBand(NULL, ARRAY[ST_Union(rast,1),ST_Union(rast,2),ST_Union"
-"(rast,3)] ) As clipped,geom\n"
-"FROM pr\n"
-"GROUP BY geom)\n"
-"-- return our final raster which is the unioned shard with \n"
-"-- with the overlay of our parcel boundaries\n"
-"-- add first 2 bands, then mapalgebra of 3rd band + geometry\n"
-"SELECT ST_AddBand(ST_Band(clipped,ARRAY[1,2])\n"
-"        , ST_MapAlgebraExpr(ST_Band(clipped,3), ST_AsRaster(ST_Buffer"
-"(ST_Boundary(geom),2),clipped, '8BUI',250),\n"
-"         '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1.val]') ) As "
-"rast\n"
-"FROM prunion;"
+"WITH foo AS (\n"
+"        SELECT 1 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, "
+"0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION "
+"ALL\n"
+"        SELECT 2 AS rid, "
+"ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, "
+"0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_MapAlgebra(\n"
+"                t1.rast, 2,\n"
+"                t2.rast, 1,\n"
+"                '([rast2] + [rast1.val]) / 2'\n"
+"        ) AS rast\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE t1.rid = 1\n"
+"        AND t2.rid = 2"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5900
+#: reference_raster.xml:7005
 #, no-c-format
-msgid "The blue lines are the boundaries of select parcels"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5911
-#, no-c-format
-msgid ""
-", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref "
-"linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref "
-"linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, "
-"<xref linkend=\"RT_ST_Value\"/> , <xref linkend=\"RT_ST_Union\"/>, <xref "
-"linkend=\"ST_Union\"/>"
+msgid ", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5918 reference_raster.xml:6049
+#: reference_raster.xml:7015 reference_raster.xml:7129
 #, no-c-format
-msgid "ST_MapAlgebraFct"
+msgid "ST_MapAlgebraExpr"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5919
+#: reference_raster.xml:7016
 #, no-c-format
 msgid ""
-"1 band version - Creates a new one band raster formed by applying a valid "
-"PostgreSQL function on the input raster band and of pixeltype prodived. Band "
-"1 is assumed if no band is specified."
+"1 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the input raster band and of "
+"pixeltype provided. Band 1 is assumed if no band is specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5923
-#, no-c-format
-msgid ""
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
-"type> <parameter>onerasteruserfunc</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
-"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
-"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
-"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
-"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
-"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
-"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
-"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
-"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
-"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
-"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
-"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
-"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
-"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
-"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
-"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
-"args</parameter></paramdef> </funcprototype>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:5986
+#: reference_raster.xml:7020
 #, no-c-format
 msgid ""
-"Creates a new one band raster formed by applying a valid PostgreSQL function "
-"specified by the <varname>onerasteruserfunc</varname> on the input raster "
-"(<varname>rast</varname>). If no <varname>band</varname> is specified, band "
-"1 is assumed. The new raster will have the same georeference, width, and "
-"height as the original raster but will only have one band."
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5990
+#: reference_raster.xml:7045 reference_raster.xml:7169
 #, no-c-format
 msgid ""
-"The <varname>onerasteruserfunc</varname> parameter must be the name and "
-"signature of a SQL or PL/pgSQL function, cast to a regprocedure. A very "
-"simple and quite useless PL/pgSQL function example is: "
-"<programlisting>CREATE OR REPLACE FUNCTION simple_function(pixel FLOAT, pos "
-"INTEGER[], VARIADIC args TEXT[])\n"
-"    RETURNS FLOAT\n"
-"    AS $$ BEGIN\n"
-"        RETURN 0.0;\n"
-"    END; $$\n"
-"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
-"<varname>userfunction</varname> may accept two or three arguments: a float "
-"value, an optional integer array, and a variadic text array. The first "
-"argument is the value of an individual raster cell (regardless of the raster "
-"datatype). The second argument is the position of the current processing "
-"cell in the form '{x,y}'. The third argument indicates that all remaining "
-"parameters to <xref linkend=\"RT_ST_MapAlgebraFct\"/> shall be passed "
-"through to the <varname>userfunction</varname>."
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra_expr\"/> "
+"instead."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5994
+#: reference_raster.xml:7050
 #, no-c-format
 msgid ""
-"Passing a <type>regprodedure</type> argument to a SQL function requires the "
-"full function signature to be passed, then cast to a <type>regprocedure</"
-"type> type. To pass the above example PL/pgSQL function as an argument, the "
-"SQL for the argument is:<programlisting>'simple_function(float,integer[],text"
-"[])'::regprocedure</programlisting>Note that the argument contains the name "
-"of the function, the types of the function arguments, quotes around the name "
-"and argument types, and a cast to a <type>regprocedure</type>."
+"Creates a new one band raster formed by applying a valid PostgreSQL "
+"algebraic operation defined by the <varname>expression</varname> on the "
+"input raster (<varname>rast</varname>). If no <varname>band</varname> is "
+"specified band 1 is assumed. The new raster will have the same georeference, "
+"width, and height as the original raster but will only have one band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5996
+#: reference_raster.xml:7058
 #, no-c-format
 msgid ""
-"The third argument to the <varname>userfunction</varname> is a "
-"<type>variadic text</type> array. All trailing text arguments to any <xref "
-"linkend=\"RT_ST_MapAlgebraFct\"/> call are passed through to the specified "
-"<varname>userfunction</varname>, and are contained in the <varname>args</"
-"varname> argument."
+"In the expression you can use the term <varname>[rast]</varname> to refer to "
+"the pixel value of the original band, <varname>[rast.x]</varname> to refer "
+"to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to "
+"the 1-based pixel row index."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6000
+#: reference_raster.xml:7068 reference_raster.xml:7267
+#: reference_raster.xml:7531
 #, no-c-format
 msgid ""
-"The <type>text[]</type> argument to the <varname>userfunction</varname> is "
-"required, regardless of whether you choose to pass any arguments to your "
-"user function for processing or not."
+"Create a new 1 band raster from our original that is a function of modulo 2 "
+"of the original raster band."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6009
+#: reference_raster.xml:7069
 #, no-c-format
 msgid ""
 "ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
-"CREATE FUNCTION mod_fct(pixel float, pos integer[], variadic args text[])\n"
-"RETURNS float\n"
-"AS $$\n"
-"BEGIN\n"
-"    RETURN pixel::integer % 2;\n"
-"END;\n"
-"$$\n"
-"LANGUAGE 'plpgsql' IMMUTABLE;\n"
-"\n"
-"UPDATE dummy_rast SET map_rast = ST_MapAlgebraFct(rast,NULL,'mod_fct(float,"
-"integer[],text[])'::regprocedure) WHERE rid = 2;\n"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,"
+"NULL,'mod([rast],2)') WHERE rid = 2;\n"
 "\n"
-"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
-"mapval\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
-"generate_series(1,3) AS j\n"
+"SELECT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 3) AS i\n"
+"CROSS JOIN generate_series(1,3) AS j\n"
 "WHERE rid = 2;\n"
 "\n"
 " origval | mapval\n"
@@ -10439,49 +11972,30 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6010
+#: reference_raster.xml:7071
 #, no-c-format
 msgid ""
 "Create a new 1 band raster of pixel-type 2BUI from our original that is "
-"reclassified and set the nodata value to a passed parameter to the user "
-"function (0)."
+"reclassified and set the nodata value to be 0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6011
+#: reference_raster.xml:7072
 #, no-c-format
 msgid ""
 "ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
-"CREATE FUNCTION classify_fct(pixel float, pos integer[], variadic args text"
-"[])\n"
-"RETURNS float\n"
-"AS\n"
-"$$\n"
-"DECLARE\n"
-"    nodata float := 0;\n"
-"BEGIN\n"
-"    IF NOT args[1] IS NULL THEN\n"
-"        nodata := args[1];\n"
-"    END IF;\n"
-"    IF pixel < 251 THEN\n"
-"        RETURN 1;\n"
-"    ELSIF pixel = 252 THEN\n"
-"        RETURN 2;\n"
-"    ELSIF pixel > 252 THEN\n"
-"        RETURN 3;\n"
-"    ELSE\n"
-"        RETURN nodata;\n"
-"    END IF;\n"
-"END;\n"
-"$$\n"
-"LANGUAGE 'plpgsql';\n"
-"UPDATE dummy_rast SET map_rast2 = ST_MapAlgebraFct(rast,'2BUI','classify_fct"
-"(float,integer[],text[])'::regprocedure, '0') WHERE rid = 2;\n"
+"UPDATE dummy_rast SET\n"
+"        map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN [rast] BETWEEN "
+"100 and 250 THEN 1 WHEN [rast] = 252 THEN 2 WHEN [rast] BETWEEN 253 and 254 "
+"THEN 3 ELSE 0 END', '0')\n"
+"WHERE rid = 2;\n"
 "\n"
-"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
-"j) As mapval\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
-"generate_series(1,5) AS j\n"
+"SELECT DISTINCT\n"
+"        ST_Value(rast,1,i,j) As origval,\n"
+"        ST_Value(map_rast2, 1, i, j) As mapval\n"
+"FROM dummy_rast\n"
+"CROSS JOIN generate_series(1, 5) AS i\n"
+"CROSS JOIN generate_series(1,5) AS j\n"
 "WHERE rid = 2;\n"
 "\n"
 " origval | mapval\n"
@@ -10493,1568 +12007,3365 @@ msgid ""
 "     253 |      3\n"
 "     254 |      3\n"
 "     \n"
-"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
-"FROM dummy_rast WHERE rid = 2;\n"
+"SELECT\n"
+"        ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
 "\n"
 " b1pixtyp\n"
 "----------\n"
 " 2BUI"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6038
+#. Tag: para
+#: reference_raster.xml:7086 reference_raster.xml:7546
 #, no-c-format
-msgid ""
-"CREATE FUNCTION rast_plus_tan(pixel float, pos integer[], variadic args text"
-"[])\n"
-"RETURNS float\n"
-"AS\n"
-"$$\n"
-"BEGIN\n"
-"        RETURN tan(pixel) * pixel;\n"
-"END;\n"
-"$$\n"
-"LANGUAGE 'plpgsql';\n"
-"\n"
-"SELECT ST_AddBand(\n"
-"        ST_AddBand(\n"
-"                ST_AddBand(\n"
-"                        ST_MakeEmptyRaster(rast_view),\n"
-"                        ST_MapAlgebraFct(rast_view,1,NULL,'rast_plus_tan"
-"(float,integer[],text[])'::regprocedure)\n"
-"                ), \n"
-"                ST_Band(rast_view,2)\n"
-"        ),\n"
-"        ST_Band(rast_view, 3) As rast_view_ma\n"
-")\n"
-"FROM wind\n"
-"WHERE rid=167;"
+msgid "original (column rast-view)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6043 reference_raster.xml:6143
+#: reference_raster.xml:7100 reference_raster.xml:7554
 #, no-c-format
-msgid ""
-", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference"
-"\"/>, <xref linkend=\"RT_ST_SetValue\"/>"
+msgid "rast_view_ma"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6050
+#. Tag: para
+#: reference_raster.xml:7111 reference_raster.xml:7562
 #, no-c-format
 msgid ""
-"2 band version - Creates a new one band raster formed by applying a valid "
-"PostgreSQL function on the 2 input raster bands and of pixeltype prodived. "
-"Band 1 is assumed if no band is specified. Extent type defaults to "
-"INTERSECTION if not specified."
+"Create a new 3 band raster same pixel type from our original 3 band raster "
+"with first band altered by map algebra and remaining 2 bands unaltered."
 msgstr ""
 
-#. Tag: funcsynopsis
-#: reference_raster.xml:6054
+#. Tag: programlisting
+#: reference_raster.xml:7112
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
-"funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></"
-"paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></"
-"paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</"
-"parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> "
-"<parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice="
-"\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION</parameter></"
-"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
-"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer</type> "
-"<parameter>band1</parameter></paramdef> <paramdef><type>raster</type> "
-"<parameter>rast2</parameter></paramdef> <paramdef><type>integer</type> "
-"<parameter>band2</parameter></paramdef> <paramdef><type>regprocedure</type> "
-"<parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt"
-"\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></"
-"paramdef> <paramdef choice=\"opt\"><type>text</type> "
-"<parameter>extenttype=INTERSECTION</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
-"paramdef> </funcprototype>"
+"SELECT\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(rast_view),\n"
+"                                ST_MapAlgebraExpr(rast_view,1,"
+"NULL,'tan([rast])*[rast]')\n"
+"                        ), \n"
+"                        ST_Band(rast_view,2)\n"
+"                ),\n"
+"                ST_Band(rast_view, 3) As rast_view_ma\n"
+"        )\n"
+"FROM wind\n"
+"WHERE rid=167;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6082
+#: reference_raster.xml:7117
 #, no-c-format
 msgid ""
-"Creates a new one band raster formed by applying a valid PostgreSQL function "
-"specified by the <varname>tworastuserfunc</varname> on the input raster "
-"<varname>rast1</varname>, <varname>rast2</varname>. If no <varname>band1</"
-"varname> or <varname>band2</varname> is specified, band 1 is assumed. The "
-"new raster will have the same georeference, width, and height as the "
-"original rasters but will only have one band."
+", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend="
+"\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref "
+"linkend=\"RT_ST_Value\"/>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6084
+#. Tag: refpurpose
+#: reference_raster.xml:7130
 #, no-c-format
 msgid ""
-"If <varname>pixeltype</varname> is passed in, then the new raster will have "
-"a band of that pixeltype. If pixeltype is passed NULL or left out, then the "
-"new raster band will have the same pixeltype as the input <varname>rast1</"
-"varname> band."
+"2 raster band version: Creates a new one band raster formed by applying a "
+"valid PostgreSQL algebraic operation on the two input raster bands and of "
+"pixeltype provided. band 1 of each raster is assumed if no band numbers are "
+"specified. The resulting raster will be aligned (scale, skew and pixel "
+"corners) on the grid defined by the first raster and have its extent defined "
+"by the \"extenttype\" parameter. Values for \"extenttype\" can be: "
+"INTERSECTION, UNION, FIRST, SECOND."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6086
+#. Tag: funcsynopsis
+#: reference_raster.xml:7136
 #, no-c-format
 msgid ""
-"The <varname>tworastuserfunc</varname> parameter must be the name and "
-"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
-"PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION "
-"simple_function_for_two_rasters(pixel1 FLOAT, pixel2 FLOAT, pos INTEGER[], "
-"VARIADIC args TEXT[])\n"
-"    RETURNS FLOAT\n"
-"    AS $$ BEGIN\n"
-"        RETURN 0.0;\n"
-"    END; $$\n"
-"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
-"<varname>tworastuserfunc</varname> may accept three or four arguments: a "
-"double precision value, a double precision value, an optional integer array, "
-"and a variadic text array. The first argument is the value of an individual "
-"raster cell in <varname>rast1</varname> (regardless of the raster datatype). "
-"The second argument is an individual raster cell value in <varname>rast2</"
-"varname>. The third argument is the position of the current processing cell "
-"in the form '{x,y}'. The fourth argument indicates that all remaining "
-"parameters to <xref linkend=\"RT_ST_MapAlgebraFct2\"/> shall be passed "
-"through to the <varname>tworastuserfunc</varname>."
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></"
+"funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band1</parameter></"
+"paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>integer </type> <parameter>band2</parameter></"
+"paramdef> <paramdef><type>text </type> <parameter>expression</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef "
+"choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>nodata1expr=NULL</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>nodata2expr=NULL</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodatanodataval=NULL</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6091
+#: reference_raster.xml:7254
 #, no-c-format
 msgid ""
-"Passing a <type>regprodedure</type> argument to a SQL function requires the "
-"full function signature to be passed, then cast to a <type>regprocedure</"
-"type> type. To pass the above example PL/pgSQL function as an argument, the "
-"SQL for the argument is:<programlisting>'simple_function(double precision, "
-"double precision, integer[], text[])'::regprocedure</programlisting>Note "
-"that the argument contains the name of the function, the types of the "
-"function arguments, quotes around the name and argument types, and a cast to "
-"a <type>regprocedure</type>."
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or no pixel type "
+"specified, then the new raster band will have the same pixeltype as the "
+"input <varname>rast1</varname> band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6093
+#: reference_raster.xml:7257
 #, no-c-format
 msgid ""
-"The third argument to the <varname>tworastuserfunc</varname> is a "
-"<type>variadic text</type> array. All trailing text arguments to any <xref "
-"linkend=\"RT_ST_MapAlgebraFct2\"/> call are passed through to the specified "
-"<varname>tworastuserfunc</varname>, and are contained in the "
-"<varname>userargs</varname> argument."
+"Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> "
+"to refer to the pixel value of the original raster bands and <varname>[rast1."
+"x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row "
+"positions of the pixels."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6097
+#. Tag: title
+#: reference_raster.xml:7265
 #, no-c-format
-msgid ""
-"The <type>text[]</type> argument to the <varname>tworastuserfunc</varname> "
-"is required, regardless of whether you choose to pass any arguments to your "
-"user function for processing or not."
+msgid "Example: 2 Band Intersection and Union"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6104
+#: reference_raster.xml:7268
 #, no-c-format
 msgid ""
-"-- define our user defined function --\n"
-"CREATE OR REPLACE FUNCTION raster_mapalgebra_union(\n"
-"        rast1 double precision,\n"
-"        rast2 double precision,\n"
-"    pos integer[],\n"
-"        VARIADIC userargs text[]\n"
-")\n"
-"        RETURNS double precision\n"
-"        AS $$\n"
-"        DECLARE\n"
-"        BEGIN\n"
-"                CASE\n"
-"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
-"                                RETURN ((rast1 + rast2)/2.);\n"
-"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
-"                                RETURN NULL;\n"
-"                        WHEN rast1 IS NULL THEN\n"
-"                                RETURN rast2;\n"
-"                        ELSE\n"
-"                                RETURN rast1;\n"
-"                END CASE;\n"
+"--Create a cool set of rasters --\n"
+"DROP TABLE IF EXISTS fun_shapes; \n"
+"CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast "
+"raster);\n"
 "\n"
-"                RETURN NULL;\n"
-"        END;\n"
-"        $$ LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"-- Insert some cool shapes around Boston in Massachusetts state plane meters "
+"--\n"
+"INSERT INTO fun_shapes(fun_name, rast)\n"
+"VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, "
+"901930,26986),200,200,'8BUI',0,0));\n"
 "\n"
-"-- prep our test table of rasters\n"
-"DROP TABLE IF EXISTS map_shapes;\n"
-"CREATE TABLE map_shapes(rid serial PRIMARY KEY, rast raster, bnum integer, "
-"descrip text);\n"
-"INSERT INTO map_shapes(rast,bnum, descrip)\n"
+"INSERT INTO fun_shapes(fun_name,rast)\n"
+"WITH ref(rast) AS (SELECT rast FROM fun_shapes WHERE fun_name = 'ref' ) \n"
+"SELECT 'area' AS fun_name, ST_AsRaster(ST_Buffer(ST_SetSRID(ST_Point(236229, "
+"900930),26986), 1000), \n"
+"                        ref.rast,'8BUI', 10, 0) As rast\n"
+"FROM ref\n"
+"UNION ALL\n"
+"SELECT 'rand bubbles', \n"
+"                         ST_AsRaster( \n"
+"                         (SELECT ST_Collect(geom)\n"
+"        FROM (SELECT ST_Buffer(ST_SetSRID(ST_Point(236229 + i*random()*100, "
+"900930 + j*random()*100),26986), random()*20) As geom\n"
+"                        FROM generate_series(1,10) As i, "
+"generate_series(1,10) As j\n"
+"                        ) As foo ), ref.rast,'8BUI', 200, 0) \n"
+"FROM ref;\n"
+"\n"
+"--map them -\n"
+"SELECT  ST_MapAlgebraExpr(\n"
+"                area.rast, bub.rast, '[rast2.val]', '8BUI', 'INTERSECTION', "
+"'[rast2.val]', '[rast1.val]') As interrast,\n"
+"                ST_MapAlgebraExpr(\n"
+"                        area.rast, bub.rast, '[rast2.val]', '8BUI', 'UNION', "
+"'[rast2.val]', '[rast1.val]') As unionrast\n"
+"FROM \n"
+"  (SELECT rast FROM fun_shapes WHERE\n"
+" fun_name = 'area') As area\n"
+"CROSS JOIN  (SELECT rast \n"
+"FROM fun_shapes WHERE\n"
+" fun_name = 'rand bubbles') As bub"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7282
+#, no-c-format
+msgid "mapalgebra intersection"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7296
+#, no-c-format
+msgid "map algebra union"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7309 reference_raster.xml:7648
+#, no-c-format
+msgid "Example: Overlaying rasters on a canvas as separate bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7310
+#, no-c-format
+msgid ""
+"-- we use ST_AsPNG to render the image so all single band ones look grey --\n"
 "WITH mygeoms \n"
-"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(90,90),30) As geom, 'circle' "
-"As descrip\n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(1,5),10) As geom\n"
 "            UNION ALL\n"
 "            SELECT 3 AS bnum, \n"
 "                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
-"50)'), 15) As geom, 'big road' As descrip\n"
+"50)'), 10,'join=bevel') As geom\n"
 "            UNION ALL\n"
 "            SELECT 1 As bnum, \n"
-"                ST_Translate(ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 "
-"150,150 50)'), 8,'join=bevel'), 10,-6) As geom, 'small road' As descrip\n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 150,150 "
+"50)'), 5,'join=bevel') As geom\n"
 "            ),\n"
 "   -- define our canvas to be 1 to 1 pixel to geometry\n"
 "   canvas\n"
-"    AS ( SELECT ST_AddBand(ST_MakeEmptyRaster(250, \n"
-"        250, \n"
-"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0 ) , '8BUI'::"
+"    AS (SELECT ST_AddBand(ST_MakeEmptyRaster(200, \n"
+"        200, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0) , '8BUI'::"
 "text,0) As rast\n"
 "        FROM (SELECT ST_Extent(geom) As e,\n"
 "                    Max(ST_SRID(geom)) As srid \n"
 "                    from mygeoms \n"
 "                    ) As foo\n"
-"            )\n"
-"-- return our rasters aligned with our canvas\n"
-"SELECT ST_AsRaster(m.geom, canvas.rast, '8BUI', 240) As rast, bnum, descrip\n"
+"            ),\n"
+"   rbands AS (SELECT ARRAY(SELECT ST_MapAlgebraExpr(canvas.rast, "
+"ST_AsRaster(m.geom, canvas.rast, '8BUI', 100),\n"
+"                 '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1."
+"val]') As rast\n"
 "                FROM mygeoms AS m CROSS JOIN canvas\n"
-"UNION ALL \n"
-"SELECT canvas.rast, 4, 'canvas'\n"
-"FROM canvas;\n"
-"\n"
-"-- Map algebra on single band rasters and then collect with ST_AddBand\n"
-"INSERT INTO map_shapes(rast,bnum,descrip)\n"
-"SELECT ST_AddBand(ST_AddBand(rasts[1], rasts[2]),rasts[3]), 4, 'map bands "
-"overlay fct union (canvas)'\n"
-"        FROM (SELECT ARRAY(SELECT ST_MapAlgebraFct(m1.rast, m2.rast, \n"
-"                        'raster_mapalgebra_union(double precision, double "
-"precision, integer[], text[])'::regprocedure, '8BUI', 'FIRST')\n"
-"                FROM map_shapes As m1 CROSS JOIN map_shapes As m2\n"
-"                        WHERE m1.descrip = 'canvas' AND m2.descrip <> "
-"'canvas' ORDER BY m2.bnum) As rasts) As foo;"
+"                ORDER BY m.bnum) As rasts\n"
+"                )\n"
+"          SELECT rasts[1] As rast1 , rasts[2] As rast2, rasts[3] As rast3, "
+"ST_AddBand(\n"
+"                    ST_AddBand(rasts[1],rasts[2]), rasts[3]) As final_rast\n"
+"            FROM rbands;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6115
+#: reference_raster.xml:7323
 #, no-c-format
-msgid "map bands overlay (canvas) (R: small road, G: circle, B: big road)"
+msgid "rast1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7336
+#, no-c-format
+msgid "rast2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7352
+#, no-c-format
+msgid "rast3"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7366
+#, no-c-format
+msgid "final_rast"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6125
+#: reference_raster.xml:7379
 #, no-c-format
-msgid "User Defined function that takes extra args"
+msgid ""
+"Example: Overlay 2 meter boundary of select parcels over an aerial imagery"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6126
+#: reference_raster.xml:7381
 #, no-c-format
 msgid ""
-"CREATE OR REPLACE FUNCTION raster_mapalgebra_userargs(\n"
-"        rast1 double precision,\n"
-"        rast2 double precision,\n"
-"    pos integer[],\n"
-"        VARIADIC userargs text[]\n"
-")\n"
-"        RETURNS double precision\n"
-"        AS $$\n"
-"        DECLARE\n"
-"        BEGIN\n"
-"                CASE\n"
-"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
-"                                RETURN least(userargs[1]::integer,(rast1 + "
-"rast2)/2.);\n"
-"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
-"                                RETURN userargs[2]::integer;\n"
-"                        WHEN rast1 IS NULL THEN\n"
-"                                RETURN greatest(rast2,random()*userargs[3]::"
-"integer)::integer;\n"
-"                        ELSE\n"
-"                                RETURN greatest(rast1, random()*userargs[4]::"
-"integer)::integer;\n"
-"                END CASE;\n"
+"-- Create new 3 band raster composed of first 2 clipped bands, and overlay "
+"of 3rd band with our geometry\n"
+"-- This query took 3.6 seconds on PostGIS windows 64-bit install\n"
+"WITH pr AS\n"
+"-- Note the order of operation: we clip all the rasters to dimensions of our "
+"region\n"
+"(SELECT ST_Clip(rast,ST_Expand(geom,50) ) As rast, g.geom\n"
+"        FROM aerials.o_2_boston AS r INNER JOIN\n"
+"-- union our parcels of interest so they form a single geometry we can later "
+"intersect with\n"
+"                (SELECT ST_Union(ST_Transform(the_geom,26986)) AS geom \n"
+"                  FROM landparcels WHERE pid IN('0303890000', '0303900000')) "
+"As g\n"
+"                ON ST_Intersects(rast::geometry, ST_Expand(g.geom,50))\n"
+"),\n"
+"-- we then union the raster shards together\n"
+"-- ST_Union on raster is kinda of slow but much faster the smaller you can "
+"get the rasters\n"
+"-- therefore we want to clip first and then union\n"
+"prunion AS\n"
+"(SELECT ST_AddBand(NULL, ARRAY[ST_Union(rast,1),ST_Union(rast,2),"
+"ST_Union(rast,3)] ) As clipped,geom\n"
+"FROM pr\n"
+"GROUP BY geom)\n"
+"-- return our final raster which is the unioned shard with \n"
+"-- with the overlay of our parcel boundaries\n"
+"-- add first 2 bands, then mapalgebra of 3rd band + geometry\n"
+"SELECT ST_AddBand(ST_Band(clipped,ARRAY[1,2])\n"
+"        , ST_MapAlgebraExpr(ST_Band(clipped,3), "
+"ST_AsRaster(ST_Buffer(ST_Boundary(geom),2),clipped, '8BUI',250),\n"
+"         '[rast2.val]', '8BUI', 'FIRST', '[rast2.val]', '[rast1.val]') ) As "
+"rast\n"
+"FROM prunion;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7395
+#, no-c-format
+msgid "The blue lines are the boundaries of select parcels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7409
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref "
+"linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref "
+"linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Union\"/>, <xref "
+"linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7426 reference_raster.xml:7579
+#, no-c-format
+msgid "ST_MapAlgebraFct"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7427
+#, no-c-format
+msgid ""
+"1 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the input raster band and of pixeltype prodived. Band "
+"1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7431
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>text</type> "
+"<parameter>pixeltype</parameter></paramdef> <paramdef><type>regprocedure</"
+"type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></"
+"paramdef> <paramdef><type>integer</type> <parameter>band</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>pixeltype</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</"
+"parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC "
+"args</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7495 reference_raster.xml:7613
+#: reference_raster.xml:7726
+#, no-c-format
+msgid ""
+"is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra\"/> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7500
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>onerasteruserfunc</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified, band "
+"1 is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7504
+#, no-c-format
+msgid ""
+"The <varname>onerasteruserfunc</varname> parameter must be the name and "
+"signature of a SQL or PL/pgSQL function, cast to a regprocedure. A very "
+"simple and quite useless PL/pgSQL function example is: "
+"<programlisting>CREATE OR REPLACE FUNCTION simple_function(pixel FLOAT, pos "
+"INTEGER[], VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>userfunction</varname> may accept two or three arguments: a float "
+"value, an optional integer array, and a variadic text array. The first "
+"argument is the value of an individual raster cell (regardless of the raster "
+"datatype). The second argument is the position of the current processing "
+"cell in the form '{x,y}'. The third argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct\"/> shall be passed "
+"through to the <varname>userfunction</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7509
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(float,integer[],"
+"text[])'::regprocedure</programlisting>Note that the argument contains the "
+"name of the function, the types of the function arguments, quotes around the "
+"name and argument types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7513
+#, no-c-format
+msgid ""
+"The third argument to the <varname>userfunction</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct\"/> call are passed through to the specified "
+"<varname>userfunction</varname>, and are contained in the <varname>args</"
+"varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7522
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>userfunction</varname> is "
+"required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7532
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+"CREATE FUNCTION mod_fct(pixel float, pos integer[], variadic args text[])\n"
+"RETURNS float\n"
+"AS $$\n"
+"BEGIN\n"
+"    RETURN pixel::integer % 2;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE;\n"
 "\n"
-"                RETURN NULL;\n"
-"        END;\n"
-"        $$ LANGUAGE 'plpgsql' VOLATILE COST 1000;\n"
-"        \n"
-"SELECT ST_MapAlgebraFct(m1.rast, 1, m1.rast, 3,\n"
-"                        'raster_mapalgebra_userargs(double precision, double "
-"precision, integer[], text[])'::regprocedure,\n"
-"                                '8BUI', 'INTERSECT', "
-"'100','200','200','0') \n"
-"                FROM map_shapes As m1\n"
-"                        WHERE m1.descrip = 'map bands overlay fct union "
-"(canvas)';"
+"UPDATE dummy_rast SET map_rast = ST_MapAlgebraFct(rast,NULL,'mod_fct(float,"
+"integer[],text[])'::regprocedure) WHERE rid = 2;\n"
+"\n"
+"SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As "
+"mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     253 |      1\n"
+"     253 |      1\n"
+"     254 |      0\n"
+"     254 |      0\n"
+"     250 |      0\n"
+"     254 |      0\n"
+"     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7534
+#, no-c-format
+msgid ""
+"Create a new 1 band raster of pixel-type 2BUI from our original that is "
+"reclassified and set the nodata value to a passed parameter to the user "
+"function (0)."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7535
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+"CREATE FUNCTION classify_fct(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"DECLARE\n"
+"    nodata float := 0;\n"
+"BEGIN\n"
+"    IF NOT args[1] IS NULL THEN\n"
+"        nodata := args[1];\n"
+"    END IF;\n"
+"    IF pixel < 251 THEN\n"
+"        RETURN 1;\n"
+"    ELSIF pixel = 252 THEN\n"
+"        RETURN 2;\n"
+"    ELSIF pixel > 252 THEN\n"
+"        RETURN 3;\n"
+"    ELSE\n"
+"        RETURN nodata;\n"
+"    END IF;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"UPDATE dummy_rast SET map_rast2 = "
+"ST_MapAlgebraFct(rast,'2BUI','classify_fct(float,integer[],text[])'::"
+"regprocedure, '0') WHERE rid = 2;\n"
+"\n"
+"SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, "
+"j) As mapval\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN "
+"generate_series(1,5) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" origval | mapval\n"
+"---------+--------\n"
+"     249 |      1\n"
+"     250 |      1\n"
+"     251 |\n"
+"     252 |      2\n"
+"     253 |      3\n"
+"     254 |      3\n"
+"     \n"
+"SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
+"FROM dummy_rast WHERE rid = 2;\n"
+"\n"
+" b1pixtyp\n"
+"----------\n"
+" 2BUI"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7563
+#, no-c-format
+msgid ""
+"CREATE FUNCTION rast_plus_tan(pixel float, pos integer[], variadic args "
+"text[])\n"
+"RETURNS float\n"
+"AS\n"
+"$$\n"
+"BEGIN\n"
+"        RETURN tan(pixel) * pixel;\n"
+"END;\n"
+"$$\n"
+"LANGUAGE 'plpgsql';\n"
+"\n"
+"SELECT ST_AddBand(\n"
+"        ST_AddBand(\n"
+"                ST_AddBand(\n"
+"                        ST_MakeEmptyRaster(rast_view),\n"
+"                        ST_MapAlgebraFct(rast_view,1,"
+"NULL,'rast_plus_tan(float,integer[],text[])'::regprocedure)\n"
+"                ), \n"
+"                ST_Band(rast_view,2)\n"
+"        ),\n"
+"        ST_Band(rast_view, 3) As rast_view_ma\n"
+")\n"
+"FROM wind\n"
+"WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7568 reference_raster.xml:7691
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference"
+"\"/>, <xref linkend=\"RT_ST_SetValue\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7580
+#, no-c-format
+msgid ""
+"2 band version - Creates a new one band raster formed by applying a valid "
+"PostgreSQL function on the 2 input raster bands and of pixeltype prodived. "
+"Band 1 is assumed if no band is specified. Extent type defaults to "
+"INTERSECTION if not specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7584
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></"
+"funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></"
+"paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></"
+"paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice="
+"\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</"
+"type> <parameter>rast1</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band1</parameter></paramdef> <paramdef><type>raster</type> "
+"<parameter>rast2</parameter></paramdef> <paramdef><type>integer</type> "
+"<parameter>band2</parameter></paramdef> <paramdef><type>regprocedure</type> "
+"<parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text</type> "
+"<parameter>extenttype=INTERSECTION</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7618
+#, no-c-format
+msgid ""
+"Creates a new one band raster formed by applying a valid PostgreSQL function "
+"specified by the <varname>tworastuserfunc</varname> on the input raster "
+"<varname>rast1</varname>, <varname>rast2</varname>. If no <varname>band1</"
+"varname> or <varname>band2</varname> is specified, band 1 is assumed. The "
+"new raster will have the same georeference, width, and height as the "
+"original rasters but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7621
+#, no-c-format
+msgid ""
+"If <varname>pixeltype</varname> is passed in, then the new raster will have "
+"a band of that pixeltype. If pixeltype is passed NULL or left out, then the "
+"new raster band will have the same pixeltype as the input <varname>rast1</"
+"varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7624
+#, no-c-format
+msgid ""
+"The <varname>tworastuserfunc</varname> parameter must be the name and "
+"signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example "
+"PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION "
+"simple_function_for_two_rasters(pixel1 FLOAT, pixel2 FLOAT, pos INTEGER[], "
+"VARIADIC args TEXT[])\n"
+"    RETURNS FLOAT\n"
+"    AS $$ BEGIN\n"
+"        RETURN 0.0;\n"
+"    END; $$\n"
+"    LANGUAGE 'plpgsql' IMMUTABLE;</programlisting> The "
+"<varname>tworastuserfunc</varname> may accept three or four arguments: a "
+"double precision value, a double precision value, an optional integer array, "
+"and a variadic text array. The first argument is the value of an individual "
+"raster cell in <varname>rast1</varname> (regardless of the raster datatype). "
+"The second argument is an individual raster cell value in <varname>rast2</"
+"varname>. The third argument is the position of the current processing cell "
+"in the form '{x,y}'. The fourth argument indicates that all remaining "
+"parameters to <xref linkend=\"RT_ST_MapAlgebraFct2\"/> shall be passed "
+"through to the <varname>tworastuserfunc</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7630
+#, no-c-format
+msgid ""
+"Passing a <type>regprodedure</type> argument to a SQL function requires the "
+"full function signature to be passed, then cast to a <type>regprocedure</"
+"type> type. To pass the above example PL/pgSQL function as an argument, the "
+"SQL for the argument is:<programlisting>'simple_function(double precision, "
+"double precision, integer[], text[])'::regprocedure</programlisting>Note "
+"that the argument contains the name of the function, the types of the "
+"function arguments, quotes around the name and argument types, and a cast to "
+"a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7633
+#, no-c-format
+msgid ""
+"The third argument to the <varname>tworastuserfunc</varname> is a "
+"<type>variadic text</type> array. All trailing text arguments to any <xref "
+"linkend=\"RT_ST_MapAlgebraFct2\"/> call are passed through to the specified "
+"<varname>tworastuserfunc</varname>, and are contained in the "
+"<varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7641
+#, no-c-format
+msgid ""
+"The <type>text[]</type> argument to the <varname>tworastuserfunc</varname> "
+"is required, regardless of whether you choose to pass any arguments to your "
+"user function for processing or not."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7649
+#, no-c-format
+msgid ""
+"-- define our user defined function --\n"
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_union(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN ((rast1 + rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN NULL;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN rast2;\n"
+"                        ELSE\n"
+"                                RETURN rast1;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"\n"
+"-- prep our test table of rasters\n"
+"DROP TABLE IF EXISTS map_shapes;\n"
+"CREATE TABLE map_shapes(rid serial PRIMARY KEY, rast raster, bnum integer, "
+"descrip text);\n"
+"INSERT INTO map_shapes(rast,bnum, descrip)\n"
+"WITH mygeoms \n"
+"    AS ( SELECT 2 As bnum, ST_Buffer(ST_Point(90,90),30) As geom, 'circle' "
+"As descrip\n"
+"            UNION ALL\n"
+"            SELECT 3 AS bnum, \n"
+"                ST_Buffer(ST_GeomFromText('LINESTRING(50 50,150 150,150 "
+"50)'), 15) As geom, 'big road' As descrip\n"
+"            UNION ALL\n"
+"            SELECT 1 As bnum, \n"
+"                ST_Translate(ST_Buffer(ST_GeomFromText('LINESTRING(60 50,150 "
+"150,150 50)'), 8,'join=bevel'), 10,-6) As geom, 'small road' As descrip\n"
+"            ),\n"
+"   -- define our canvas to be 1 to 1 pixel to geometry\n"
+"   canvas\n"
+"    AS ( SELECT ST_AddBand(ST_MakeEmptyRaster(250, \n"
+"        250, \n"
+"        ST_XMin(e)::integer, ST_YMax(e)::integer, 1, -1, 0, 0 ) , '8BUI'::"
+"text,0) As rast\n"
+"        FROM (SELECT ST_Extent(geom) As e,\n"
+"                    Max(ST_SRID(geom)) As srid \n"
+"                    from mygeoms \n"
+"                    ) As foo\n"
+"            )\n"
+"-- return our rasters aligned with our canvas\n"
+"SELECT ST_AsRaster(m.geom, canvas.rast, '8BUI', 240) As rast, bnum, descrip\n"
+"                FROM mygeoms AS m CROSS JOIN canvas\n"
+"UNION ALL \n"
+"SELECT canvas.rast, 4, 'canvas'\n"
+"FROM canvas;\n"
+"\n"
+"-- Map algebra on single band rasters and then collect with ST_AddBand\n"
+"INSERT INTO map_shapes(rast,bnum,descrip)\n"
+"SELECT ST_AddBand(ST_AddBand(rasts[1], rasts[2]),rasts[3]), 4, 'map bands "
+"overlay fct union (canvas)'\n"
+"        FROM (SELECT ARRAY(SELECT ST_MapAlgebraFct(m1.rast, m2.rast, \n"
+"                        'raster_mapalgebra_union(double precision, double "
+"precision, integer[], text[])'::regprocedure, '8BUI', 'FIRST')\n"
+"                FROM map_shapes As m1 CROSS JOIN map_shapes As m2\n"
+"                        WHERE m1.descrip = 'canvas' AND m2.descrip <> "
+"'canvas' ORDER BY m2.bnum) As rasts) As foo;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7662
+#, no-c-format
+msgid "map bands overlay (canvas) (R: small road, G: circle, B: big road)"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7674
+#, no-c-format
+msgid "User Defined function that takes extra args"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7675
+#, no-c-format
+msgid ""
+"CREATE OR REPLACE FUNCTION raster_mapalgebra_userargs(\n"
+"        rast1 double precision,\n"
+"        rast2 double precision,\n"
+"    pos integer[],\n"
+"        VARIADIC userargs text[]\n"
+")\n"
+"        RETURNS double precision\n"
+"        AS $$\n"
+"        DECLARE\n"
+"        BEGIN\n"
+"                CASE\n"
+"                        WHEN rast1 IS NOT NULL AND rast2 IS NOT NULL THEN\n"
+"                                RETURN least(userargs[1]::integer,(rast1 + "
+"rast2)/2.);\n"
+"                        WHEN rast1 IS NULL AND rast2 IS NULL THEN\n"
+"                                RETURN userargs[2]::integer;\n"
+"                        WHEN rast1 IS NULL THEN\n"
+"                                RETURN greatest(rast2,random()*userargs[3]::"
+"integer)::integer;\n"
+"                        ELSE\n"
+"                                RETURN greatest(rast1, random()*userargs[4]::"
+"integer)::integer;\n"
+"                END CASE;\n"
+"\n"
+"                RETURN NULL;\n"
+"        END;\n"
+"        $$ LANGUAGE 'plpgsql' VOLATILE COST 1000;\n"
+"        \n"
+"SELECT ST_MapAlgebraFct(m1.rast, 1, m1.rast, 3,\n"
+"                        'raster_mapalgebra_userargs(double precision, double "
+"precision, integer[], text[])'::regprocedure,\n"
+"                                '8BUI', 'INTERSECT', "
+"'100','200','200','0') \n"
+"                FROM map_shapes As m1\n"
+"                        WHERE m1.descrip = 'map bands overlay fct union "
+"(canvas)';"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7683
+#, no-c-format
+msgid "user defined with extra args and different bands from same raster"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7702
+#, no-c-format
+msgid "ST_MapAlgebraFctNgb"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7703
+#, no-c-format
+msgid ""
+"1-band version: Map Algebra Nearest Neighbor using user-defined PostgreSQL "
+"function. Return a raster which values are the result of a PLPGSQL user "
+"function involving a neighborhood of values from the input raster band."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7708
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
+"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
+"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
+"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
+"args</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7731
+#, no-c-format
+msgid ""
+"(one raster version) Return a raster which values are the result of a "
+"PLPGSQL user function involving a neighborhood of values from the input "
+"raster band. The user function takes the neighborhood of pixel values as an "
+"array of numbers, for each pixel, returns the result from the user function, "
+"replacing pixel value of currently inspected pixel with the function result."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7735
+#, no-c-format
+msgid "rast"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7736
+#, no-c-format
+msgid "Raster on which the user function is evaluated."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7739
+#, no-c-format
+msgid "band"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7740
+#, no-c-format
+msgid "Band number of the raster to be evaluated. Default to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7744
+#, no-c-format
+msgid ""
+"The resulting pixel type of the output raster. Must be one listed in <xref "
+"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL. If not passed "
+"in or set to NULL, will default to the pixeltype of the <varname>rast</"
+"varname>. Results are truncated if they are larger than what is allowed for "
+"the pixeltype."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7747
+#, no-c-format
+msgid "ngbwidth"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7748
+#, no-c-format
+msgid "The width of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7751
+#, no-c-format
+msgid "ngbheight"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7752
+#, no-c-format
+msgid "The height of the neighborhood, in cells."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7755
+#, no-c-format
+msgid "onerastngbuserfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7756
+#, no-c-format
+msgid ""
+"PLPGSQL/psql user function to apply to neighborhood pixels of a single band "
+"of a raster. The first element is a 2-dimensional array of numbers "
+"representing the rectangular pixel neighborhood"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7759
+#, no-c-format
+msgid "nodatamode"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7761
+#, no-c-format
+msgid ""
+"Defines what value to pass to the function for a neighborhood pixel that is "
+"nodata or NULL"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7762
+#, no-c-format
+msgid ""
+"'ignore': any NODATA values encountered in the neighborhood are ignored by "
+"the computation -- this flag must be sent to the user callback function, and "
+"the user function decides how to ignore it."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7763
+#, no-c-format
+msgid ""
+"'NULL': any NODATA values encountered in the neighborhood will cause the "
+"resulting pixel to be NULL -- the user callback function is skipped in this "
+"case."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7764
+#, no-c-format
+msgid ""
+"'value': any NODATA values encountered in the neighborhood are replaced by "
+"the reference pixel (the one in the center of the neighborhood). Note that "
+"if this value is NODATA, the behavior is the same as 'NULL' (for the "
+"affected neighborhood)"
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:7768
+#, no-c-format
+msgid "args"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7769
+#, no-c-format
+msgid "Arguments to pass into the user function."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7779
+#, no-c-format
+msgid ""
+"Examples utilize the katrina raster loaded as a single tile described in "
+"<ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">http://"
+"trac.osgeo.org/gdal/wiki/frmts_wtkraster.html</ulink> and then prepared in "
+"the <xref linkend=\"RT_ST_Rescale\"/> examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7781
+#, no-c-format
+msgid ""
+"--\n"
+"-- A simple 'callback' user function that averages up all the values in a "
+"neighborhood.\n"
+"--\n"
+"CREATE OR REPLACE FUNCTION rast_avg(matrix float[][], nodatamode text, "
+"variadic args text[])\n"
+"    RETURNS float AS\n"
+"    $$\n"
+"    DECLARE\n"
+"                _matrix float[][];\n"
+"        x1 integer;\n"
+"        x2 integer;\n"
+"        y1 integer;\n"
+"        y2 integer;\n"
+"        sum float;\n"
+"    BEGIN\n"
+"                _matrix := matrix;\n"
+"        sum := 0;\n"
+"        FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP\n"
+"            FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP\n"
+"                sum := sum + _matrix[x][y];\n"
+"            END LOOP;\n"
+"        END LOOP;\n"
+"        RETURN (sum*1.0/(array_upper(matrix,1)*array_upper(matrix,2) ))::"
+"integer ;\n"
+"    END;\n"
+"    $$\n"
+"LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
+"    \n"
+"-- now we apply to our raster averaging pixels within 2 pixels of each other "
+"in X and Y direction --\n"
+"SELECT ST_MapAlgebraFctNgb(rast, 1,  '8BUI', 4,4,\n"
+"                'rast_avg(float[][], text, text[])'::regprocedure, 'NULL', "
+"NULL) As nn_with_border\n"
+"        FROM katrinas_rescaled \n"
+"        limit 1;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7795
+#, no-c-format
+msgid "First band of our raster"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7809
+#, no-c-format
+msgid "new raster after averaging pixels withing 4x4 pixels of each other"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7824
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebraExpr\"/>, <xref linkend=\"RT_ST_Rescale\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7834
+#, no-c-format
+msgid "ST_Reclass"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7835
+#, no-c-format
+msgid ""
+"Creates a new raster composed of band types reclassified from original. The "
+"nband is the band to be changed. If nband is not specified assumed to be 1. "
+"All other bands are returned unchanged. Use case: convert a 16BUI band to a "
+"8BUI and so forth for simpler rendering as viewable formats."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7839
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>reclassarg[] </type> <parameter>VARIADIC reclassargset</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> "
+"<parameter>pixeltype</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7867
+#, no-c-format
+msgid ""
+"Creates a new raster formed by applying a valid PostgreSQL algebraic "
+"operation defined by the <varname>reclassexpr</varname> on the input raster "
+"(<varname>rast</varname>). If no <varname>band</varname> is specified band 1 "
+"is assumed. The new raster will have the same georeference, width, and "
+"height as the original raster. Bands not designated will come back "
+"unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid "
+"reclassification expressions."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7869
+#, no-c-format
+msgid ""
+"The bands of the new raster will have pixel type of <varname>pixeltype</"
+"varname>. If <varname>reclassargset</varname> is passed in then each "
+"reclassarg defines behavior of each band generated."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7875
+#, no-c-format
+msgid "Examples Basic"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7876
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 2 is converted from 8BUI to "
+"4BUI and all values from 101-254 are set to nodata value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7877
+#, no-c-format
+msgid ""
+"ALTER TABLE dummy_rast ADD COLUMN reclass_rast raster;\n"
+"UPDATE dummy_rast SET reclass_rast = ST_Reclass(rast,2,'0-87:1-10, "
+"88-100:11-15, 101-254:0-0', '4BUI',0) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row, ST_Value(rast,2,i,j) As origval, \n"
+"    ST_Value(reclass_rast, 2, i, j) As reclassval, \n"
+"    ST_Value(reclass_rast, 2, i, j, false) As reclassval_include_nodata\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+" col | row | origval | reclassval | reclassval_include_nodata\n"
+"-----+-----+---------+------------+---------------------------\n"
+"   1 |   1 |      78 |          9 |                         9\n"
+"   2 |   1 |      98 |         14 |                        14\n"
+"   3 |   1 |     122 |            |                         0\n"
+"   1 |   2 |      96 |         14 |                        14\n"
+"   2 |   2 |     118 |            |                         0\n"
+"   3 |   2 |     180 |            |                         0\n"
+"   1 |   3 |      99 |         15 |                        15\n"
+"   2 |   3 |     112 |            |                         0\n"
+"   3 |   3 |     169 |            |                         0"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7881
+#, no-c-format
+msgid "Example: Advanced using multiple reclassargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7883
+#, no-c-format
+msgid ""
+"Create a new raster from the original where band 1,2,3 is converted to "
+"1BB,4BUI, 4BUI respectively and reclassified. Note this uses the variadic "
+"<varname>reclassarg</varname> argument which can take as input an indefinite "
+"number of reclassargs (theoretically as many bands as you have)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7884
+#, no-c-format
+msgid ""
+"UPDATE dummy_rast SET reclass_rast = \n"
+"    ST_Reclass(rast,\n"
+"        ROW(2,'0-87]:1-10, (87-100]:11-15, (101-254]:0-0', '4BUI',NULL)::"
+"reclassarg,\n"
+"        ROW(1,'0-253]:1, 254:0', '1BB', NULL)::reclassarg,\n"
+"        ROW(3,'0-70]:1, (70-86:2, [86-150):3, [150-255:4', '4BUI', NULL)::"
+"reclassarg\n"
+"        ) WHERE rid = 2;\n"
+"\n"
+"SELECT i as col, j as row,ST_Value(rast,1,i,j) As ov1,  "
+"ST_Value(reclass_rast, 1, i, j) As rv1, \n"
+"    ST_Value(rast,2,i,j) As ov2, ST_Value(reclass_rast, 2, i, j) As rv2, \n"
+"    ST_Value(rast,3,i,j) As ov3, ST_Value(reclass_rast, 3, i, j) As rv3\n"
+"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
+"generate_series(1,3) AS j\n"
+"WHERE rid = 2;\n"
+"\n"
+"col | row | ov1 | rv1 | ov2 | rv2 | ov3 | rv3\n"
+"----+-----+-----+-----+-----+-----+-----+-----\n"
+"  1 |   1 | 253 |   1 |  78 |   9 |  70 |   1\n"
+"  2 |   1 | 254 |   0 |  98 |  14 |  86 |   3\n"
+"  3 |   1 | 253 |   1 | 122 |   0 | 100 |   3\n"
+"  1 |   2 | 253 |   1 |  96 |  14 |  80 |   2\n"
+"  2 |   2 | 254 |   0 | 118 |   0 | 108 |   3\n"
+"  3 |   2 | 254 |   0 | 180 |   0 | 162 |   4\n"
+"  1 |   3 | 250 |   1 |  99 |  15 |  90 |   3\n"
+"  2 |   3 | 254 |   0 | 112 |   0 | 108 |   3\n"
+"  3 |   3 | 254 |   0 | 169 |   0 | 175 |   4"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7888
+#, no-c-format
+msgid ""
+"Example: Advanced Map a single band 32BF raster to multiple viewable bands"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7889
+#, no-c-format
+msgid ""
+"Create a new 3 band (8BUI,8BUI,8BUI viewable raster) from a raster that has "
+"only one 32bf band"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7890
+#, no-c-format
+msgid ""
+"ALTER TABLE wind ADD COLUMN rast_view raster;\n"
+"UPDATE wind \n"
+"        set rast_view = ST_AddBand( NULL,\n"
+"        ARRAY[\n"
+"                ST_Reclass(rast, 1,'0.1-10]:1-10,9-10]:11,(11-33:0'::text, "
+"'8BUI'::text,0),\n"
+"                ST_Reclass(rast,1, '11-33):0-255,[0-32:0,(34-1000:0'::text, "
+"'8BUI'::text,0),  \n"
+"                ST_Reclass(rast,1,'0-32]:0,(32-100:100-255'::text, '8BUI'::"
+"text,0)\n"
+"                ]\n"
+"                );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7895
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Band\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, "
+"<xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"reclassarg\"/>, "
+"<xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7908
+#, no-c-format
+msgid "ST_Union"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7909
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"1 or more bands."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7914
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7920
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></"
+"paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7927
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7934
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:7941
+#, no-c-format
+msgid ""
+"<funcdef>raster <function>ST_Union</function></funcdef> "
+"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7953
+#, no-c-format
+msgid ""
+"Returns the union of a set of raster tiles into a single raster composed of "
+"at least one band. The resulting raster's extent is the extent of the whole "
+"set. In the case of intersection, the resulting value is defined by "
+"<varname>uniontype</varname> which is one of the following: LAST (default), "
+"FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7956
+#, no-c-format
+msgid ""
+"In order for rasters to be unioned, they most all have the same alignment. "
+"Use <xref linkend=\"RT_ST_SameAlignment\"/> and <xref linkend="
+"\"RT_ST_NotSameAlignmentReason\"/> for more details and help. One way to fix "
+"alignment issues is to use <xref linkend=\"RT_ST_Resample\"/> and use the "
+"same reference raster for alignment."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7960
+#, no-c-format
+msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7961
+#, no-c-format
+msgid "Availability: 2.1.0 ST_Union(rast, unionarg) variant was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7962
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast) (variant 1) unions all bands of all input "
+"rasters. Prior versions of PostGIS assumed the first band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7963
+#, no-c-format
+msgid ""
+"Enhanced: 2.1.0 ST_Union(rast, uniontype) (variant 4) unions all bands of "
+"all input rasters."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7966
+#, no-c-format
+msgid "Examples: Reconstitute a single band chunked raster tile"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7967
+#, no-c-format
+msgid ""
+"-- this creates a single band from first band of raster tiles\n"
+"-- that form the original file system tile\n"
+"SELECT filename, ST_Union(rast,1) As file_rast\n"
+"FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7971 reference_raster.xml:7975
+#, no-c-format
+msgid ""
+"Examples: Return a multi-band raster that is the union of tiles intersecting "
+"geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7972
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"-- Note: In 2.0, this would have just returned a single band raster\n"
+"-- , new union works on all bands by default\n"
+"-- this is equivalent to unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), "
+"ROW(3, 'LAST')]::unionarg[]\n"
+"SELECT ST_Union(rast)\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7976
+#, no-c-format
+msgid ""
+"Here we use the longer syntax if we only wanted a subset of bands or we want "
+"to change order of bands"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7977
+#, no-c-format
+msgid ""
+"-- this creates a multi band raster collecting all the tiles that intersect "
+"a line\n"
+"SELECT ST_Union(rast,ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::"
+"unionarg[])\n"
+"FROM aerials.boston\n"
+"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
+"88772)',26986) );"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7983
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, "
+"<xref linkend=\"RT_ST_Clip\"/>, <xref linkend=\"ST_Union\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7996
+#, no-c-format
+msgid "Built-in Map Algebra Callback Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8000
+#, no-c-format
+msgid "ST_Distinct4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8001
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the number of unique pixel values "
+"in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8005
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Distinct4ma</function></"
+"funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></"
+"paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double "
+"precision <function>ST_Distinct4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][] </type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8025
+#, no-c-format
+msgid ""
+"Calculate the number of unique pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8028 reference_raster.xml:8167
+#: reference_raster.xml:8242 reference_raster.xml:8327
+#: reference_raster.xml:8452 reference_raster.xml:8523
+#: reference_raster.xml:8598
+#, no-c-format
+msgid ""
+"Variant 1 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8032 reference_raster.xml:8171
+#: reference_raster.xml:8246 reference_raster.xml:8333
+#: reference_raster.xml:8456 reference_raster.xml:8527
+#: reference_raster.xml:8602
+#, no-c-format
+msgid ""
+"Variant 2 is a specialized callback function for use as a callback parameter "
+"to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8038 reference_raster.xml:8177
+#: reference_raster.xml:8252 reference_raster.xml:8339
+#: reference_raster.xml:8462 reference_raster.xml:8533
+#: reference_raster.xml:8608
+#, no-c-format
+msgid ""
+"Use of Variant 1 is discouraged since <xref linkend=\"RT_ST_MapAlgebraFctNgb"
+"\"/> has been deprecated as of 2.1.0."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8044 reference_raster.xml:8183
+#: reference_raster.xml:8258 reference_raster.xml:8345
+#: reference_raster.xml:8468 reference_raster.xml:8539
+#: reference_raster.xml:8614
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of Variant 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8050
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        3\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8056 reference_raster.xml:8480
+#: reference_raster.xml:8551
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8071
+#, no-c-format
+msgid "ST_InvDistWeight4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8072
+#, no-c-format
+msgid ""
+"Raster processing function that interpolates a pixel's value from the "
+"pixel's neighborhood."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8077
+#, no-c-format
+msgid ""
+"<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8089
+#, no-c-format
+msgid ""
+"Calculate an interpolated value for a pixel using the Inverse Distance "
+"Weighted method."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8091
+#, no-c-format
+msgid ""
+"There are two optional parameters that can be passed through "
+"<varname>userargs</varname>. The first parameter is the power factor "
+"(variable k in the equation below) between 0 and 1 used in the Inverse "
+"Distance Weighted equation. If not specified, default value is 1. The second "
+"parameter is the weight percentage applied only when the value of the pixel "
+"of interest is included with the interpolated value from the neighborhood. "
+"If not specified and the pixel of interest has a value, that value is "
+"returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8095
+#, no-c-format
+msgid "The basic inverse distance weight equation is:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8104
+#, no-c-format
+msgid "k = power factor, a real number between 0 and 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8113 reference_raster.xml:8398
+#, no-c-format
+msgid ""
+"This function is a specialized callback function for use as a callback "
+"parameter to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8121 reference_raster.xml:8406
+#, no-c-format
+msgid "-- NEEDS EXAMPLE"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8126
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8135
+#, no-c-format
+msgid "ST_Max4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8136
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the maximum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8140
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Max4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Max4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8160
+#, no-c-format
+msgid "Calculate the maximum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8162 reference_raster.xml:8237
+#: reference_raster.xml:8322 reference_raster.xml:8447
+#: reference_raster.xml:8593
+#, no-c-format
+msgid ""
+"For Variant 2, a substitution value for NODATA pixels can be specified by "
+"passing that value to userargs."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8189
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      254\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8195
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8210
+#, no-c-format
+msgid "ST_Mean4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8211
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the mean pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8215
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Mean4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8235
+#, no-c-format
+msgid "Calculate the mean pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8264
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_mean4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8271
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"              ST_MapAlgebra(rast, 1, 'st_mean4ma(double precision[][][], "
+"integer[][], text[])'::regprocedure,'32BF', 'FIRST', NULL, 1, 1)\n"
+"       ,  2, 2)\n"
+"  FROM dummy_rast \n"
+"   WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 253.222229003906\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8277
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8291
+#, no-c-format
+msgid "ST_Min4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8292
+#, no-c-format
+msgid ""
+"Raster processing function that calculates the minimum pixel value in a "
+"neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8298
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_Min4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Min4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6133
+#: reference_raster.xml:8318
 #, no-c-format
-msgid "user defined with extra args and different bands from same raster"
+msgid "Calculate the minimum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8351
+#, no-c-format
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |      250\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8356
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, "
+"<xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6149
+#: reference_raster.xml:8371
 #, no-c-format
-msgid "ST_MapAlgebraFctNgb"
+msgid "ST_MinDist4ma"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6151
+#: reference_raster.xml:8372
 #, no-c-format
 msgid ""
-"1-band version: Map Algebra Nearest Neighbor using user-defined PostgreSQL "
-"function. Return a raster which values are the result of a PLPGSQL user "
-"function involving a neighborhood of values from the input raster band."
+"Raster processing function that returns the minimum distance (in number of "
+"pixels) between the pixel of interest and a neighboring pixel with value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6156
+#: reference_raster.xml:8377
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> "
-"<paramdef><type>regprocedure </type> <parameter>onerastngbuserfunc</"
-"parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</"
-"parameter></paramdef> <paramdef><type>text[] </type> <parameter>VARIADIC "
-"args</parameter></paramdef>"
+"<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> "
+"<paramdef><type>double precision[][][]</type> <parameter>value</parameter></"
+"paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></"
+"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</"
+"parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6174
+#: reference_raster.xml:8389
 #, no-c-format
 msgid ""
-"(one raster version) Return a raster which values are the result of a "
-"PLPGSQL user function involving a neighborhood of values from the input "
-"raster band. The user function takes the neighborhood of pixel values as an "
-"array of numbers, for each pixel, returns the result from the user function, "
-"replacing pixel value of currently inspected pixel with the function result."
+"Return the shortest distance (in number of pixels) between the pixel of "
+"interest and the closest pixel with value in the neighborhood."
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6182
+#. Tag: para
+#: reference_raster.xml:8392
 #, no-c-format
-msgid "rast"
+msgid ""
+"The intent of this function is to provide an informative data point that "
+"helps infer the usefulness of the pixel of interest's interpolated value "
+"from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is "
+"particularly useful when the neighborhood is sparsely populated."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6183
+#: reference_raster.xml:8411
 #, no-c-format
-msgid "Raster on which the user function is evaluated."
+msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6186
+#. Tag: refname
+#: reference_raster.xml:8420
 #, no-c-format
-msgid "band"
+msgid "ST_Range4ma"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6187
+#. Tag: refpurpose
+#: reference_raster.xml:8421
 #, no-c-format
-msgid "Band number of the raster to be evaluated. Default to 1."
+msgid ""
+"Raster processing function that calculates the range of pixel values in a "
+"neighborhood."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6191
+#. Tag: funcsynopsis
+#: reference_raster.xml:8425
 #, no-c-format
 msgid ""
-"The resulting pixel type of the output raster. Must be one listed in <xref "
-"linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL. If not passed "
-"in or set to NULL, will default to the pixeltype of the <varname>rast</"
-"varname>. Results are truncated if they are larger than what is allowed for "
-"the pixeltype."
+"<funcprototype> <funcdef>float8 <function>ST_Range4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Range4ma</function></funcdef> <paramdef><type>double precision[]"
+"[][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6194
+#. Tag: para
+#: reference_raster.xml:8445
 #, no-c-format
-msgid "ngbwidth"
+msgid "Calculate the range of pixel values in a neighborhood of pixels."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6195
+#. Tag: programlisting
+#: reference_raster.xml:8474
 #, no-c-format
-msgid "The width of the neighborhood, in cells."
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |        4\n"
+"(1 row)"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6198
+#. Tag: refname
+#: reference_raster.xml:8495
 #, no-c-format
-msgid "ngbheight"
+msgid "ST_StdDev4ma"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6199
+#. Tag: refpurpose
+#: reference_raster.xml:8496
 #, no-c-format
-msgid "The height of the neighborhood, in cells."
+msgid ""
+"Raster processing function that calculates the standard deviation of pixel "
+"values in a neighborhood."
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6202
+#. Tag: funcsynopsis
+#: reference_raster.xml:8500
 #, no-c-format
-msgid "onerastngbuserfunc"
+msgid ""
+"<funcprototype> <funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_StdDev4ma</function></funcdef> <paramdef><type>double "
+"precision[][][]</type> <parameter>value</parameter></paramdef> "
+"<paramdef><type>integer[][] </type> <parameter>pos</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></"
+"paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6203
+#: reference_raster.xml:8520
 #, no-c-format
 msgid ""
-"PLPGSQL/psql user function to apply to neighborhood pixels of a single band "
-"of a raster. The first element is a 2-dimensional array of numbers "
-"representing the rectangular pixel neighborhood"
+"Calculate the standard deviation of pixel values in a neighborhood of pixels."
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6207
+#. Tag: programlisting
+#: reference_raster.xml:8545
 #, no-c-format
-msgid "nodatamode"
+msgid ""
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_stddev4ma(float[][],"
+"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid |     st_value\n"
+"-----+------------------\n"
+"   2 | 1.30170822143555\n"
+"(1 row)"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6208
+#. Tag: refname
+#: reference_raster.xml:8566
+#, no-c-format
+msgid "ST_Sum4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8567
 #, no-c-format
 msgid ""
-"Defines what value to pass to the function for a neighborhood pixel that is "
-"nodata or NULL"
+"Raster processing function that calculates the sum of all pixel values in a "
+"neighborhood."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6209
+#. Tag: funcsynopsis
+#: reference_raster.xml:8571
 #, no-c-format
 msgid ""
-"'ignore': any NODATA values encountered in the neighborhood are ignored by "
-"the computation -- this flag must be sent to the user callback function, and "
-"the user function decides how to ignore it."
+"<funcprototype> <funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
+"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
+"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
+"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>double precision "
+"<function>ST_Sum4ma</function></funcdef> <paramdef><type>double precision[][]"
+"[]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[]"
+"[] </type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</"
+"type> <parameter>VARIADIC userargs</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6210
+#: reference_raster.xml:8591
+#, no-c-format
+msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8620
 #, no-c-format
 msgid ""
-"'NULL': any NODATA values encountered in the neighborhood will cause the "
-"resulting pixel to be NULL -- the user callback function is skipped in this "
-"case."
+"SELECT \n"
+"    rid,\n"
+"    st_value(\n"
+"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,"
+"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+"    ) \n"
+"FROM dummy_rast \n"
+"WHERE rid = 2;\n"
+" rid | st_value\n"
+"-----+----------\n"
+"   2 |     2279\n"
+"(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6211
+#: reference_raster.xml:8626
 #, no-c-format
 msgid ""
-"'value': any NODATA values encountered in the neighborhood are replaced by "
-"the reference pixel (the one in the center of the neighborhood). Note that "
-"if this value is NODATA, the behavior is the same as 'NULL' (for the "
-"affected neighborhood)"
+", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, "
+"<xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref "
+"linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref "
+"linkend=\"RT_ST_StdDev4ma\"/>"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:6215
+#. Tag: title
+#: reference_raster.xml:8642
 #, no-c-format
-msgid "args"
+msgid "DEM (Elevation)"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6216
+#. Tag: refname
+#: reference_raster.xml:8646
 #, no-c-format
-msgid "Arguments to pass into the user function."
+msgid "ST_Aspect"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6227
+#. Tag: refpurpose
+#: reference_raster.xml:8647
 #, no-c-format
 msgid ""
-"Examples utilize the katrina raster loaded as a single tile described in "
-"<ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">http://"
-"trac.osgeo.org/gdal/wiki/frmts_wtkraster.html</ulink> and then prepared in "
-"the <xref linkend=\"RT_ST_Rescale\"/> examples"
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6230
+#. Tag: funcsynopsis
+#: reference_raster.xml:8650
 #, no-c-format
 msgid ""
-"--\n"
-"-- A simple 'callback' user function that averages up all the values in a "
-"neighborhood.\n"
-"--\n"
-"CREATE OR REPLACE FUNCTION rast_avg(matrix float[][], nodatamode text, "
-"variadic args text[])\n"
-"    RETURNS float AS\n"
-"    $$\n"
-"    DECLARE\n"
-"                _matrix float[][];\n"
-"        x1 integer;\n"
-"        x2 integer;\n"
-"        y1 integer;\n"
-"        y2 integer;\n"
-"        sum float;\n"
-"    BEGIN\n"
-"                _matrix := matrix;\n"
-"        sum := 0;\n"
-"        FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP\n"
-"            FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP\n"
-"                sum := sum + _matrix[x][y];\n"
-"            END LOOP;\n"
-"        END LOOP;\n"
-"        RETURN (sum*1.0/(array_upper(matrix,1)*array_upper(matrix,2) ))::"
-"integer ;\n"
-"    END;\n"
-"    $$\n"
-"LANGUAGE 'plpgsql' IMMUTABLE COST 1000;\n"
-"    \n"
-"-- now we apply to our raster averaging pixels within 2 pixels of each other "
-"in X and Y direction --\n"
-"SELECT ST_MapAlgebraFctNgb(rast, 1,  '8BUI', 4,4,\n"
-"                'rast_avg(float[][], text, text[])'::regprocedure, 'NULL', "
-"NULL) As nn_with_border\n"
-"        FROM katrinas_rescaled \n"
-"        limit 1;"
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype> "
+"<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>band</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6241
+#: reference_raster.xml:8675
 #, no-c-format
-msgid "First band of our raster"
+msgid ""
+"Returns the aspect (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the aspect equation to neighboring pixels."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6249
+#: reference_raster.xml:8677
 #, no-c-format
-msgid "new raster after averaging pixels withing 4x4 pixels of each other"
+msgid ""
+"<varname>units</varname> indicates the units of the aspect. Possible values "
+"are: RADIANS, DEGREES (default)."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6262
+#: reference_raster.xml:8681
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_MapAlgebraExpr\"/>, <xref linkend=\"RT_ST_Rescale\"/>"
+"When <varname>units</varname> = RADIANS, values are between 0 and 2 * pi "
+"radians measured clockwise from North."
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:6268
+#. Tag: para
+#: reference_raster.xml:8685
 #, no-c-format
-msgid "ST_Polygon"
+msgid ""
+"When <varname>units</varname> = DEGREES, values are between 0 and 360 "
+"degrees measured clockwise from North."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6269
+#. Tag: para
+#: reference_raster.xml:8689
 #, no-c-format
-msgid ""
-"Returns a multipolygon geometry formed by the union of pixels that have a "
-"pixel value that is not no data value. If no band number is specified, band "
-"num defaults to 1."
+msgid "If slope of pixel is zero, aspect of pixel is -1."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6275
+#. Tag: para
+#: reference_raster.xml:8694
 #, no-c-format
 msgid ""
-"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
-"parameter></paramdef>"
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Aspect_Images.html"
+"\">ERDAS Field Guide - Aspect Images</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6285
+#: reference_raster.xml:8700 reference_raster.xml:8796
 #, no-c-format
-msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
+msgid ""
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional "
+"<varname>interpolate_nodata</varname> function parameter"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6286
+#: reference_raster.xml:8701 reference_raster.xml:8925
 #, no-c-format
 msgid ""
-"Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning "
-"multipolygon is ensured to be valid."
+"Changed: 2.1.0 In prior versions, return values were in radians. Now, return "
+"values default to degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8706
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Aspect(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                                                                                                    st_dumpvalues                                                                   \n"
+"                                  \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"----------------------------------\n"
+" (1,\"{{315,341.565063476562,0,18.4349479675293,45},"
+"{288.434936523438,315,0,45,71.5650482177734},{270,270,-1,90,90},"
+"{251.565048217773,225,180,135,108.434951782227},{225,198.43495178\n"
+"2227,180,161.565048217773,135}}\")\n"
+"(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6287
+#: reference_raster.xml:8712 reference_raster.xml:8809
+#: reference_raster.xml:8937
 #, no-c-format
 msgid ""
-"Changed: 2.1.0 In prior versions would sometimes return a polygon, changed "
-"to always return multipolygon."
+"Complete example of tiles of a coverage. This query only works with "
+"PostgreSQL 9.1 or higher."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6292
+#: reference_raster.xml:8714
 #, no-c-format
 msgid ""
-"-- by default no data band value is 0 or not set, so polygon will return a "
-"square polygon        \n"
-"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
-"FROM dummy_rast\n"
-"WHERE rid = 2;\n"
-"\n"
-"geomwkt\n"
-"--------------------------------------------\n"
-"MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 "
-"5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
-"                 \n"
-"                 \n"
-"-- now we change the no data value of first band\n"
-"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
-"WHERE rid = 2;\n"
-"SELECt rid, ST_BandNoDataValue(rast)\n"
-"from dummy_rast where rid = 2;\n"
-"\n"
-"-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
-"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
-"FROM dummy_rast\n"
-"WHERE rid = 2;\n"
-"\n"
-"geomwkt\n"
-"---------------------------------------------------------\n"
-"MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 "
-"5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 "
-"5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 "
-"5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 "
-"5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),"
-"((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 "
-"5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 "
-"5793244,3427927.8 5793243.9,3427927.8 5793243.85,3427927.85 "
-"5793243.85,3427927.85 5793243.8,3427927.85 5793243.75,3427927.8 "
-"5793243.75)))\n"
-"\n"
-"-- Or if you want the no data value different for just one time\n"
-"\n"
-"SELECT ST_AsText(\n"
-"        ST_Polygon(\n"
-"                ST_SetBandNoDataValue(rast,1,252)\n"
-"                )\n"
-"        ) As geomwkt\n"
-"FROM dummy_rast\n"
-"WHERE rid =2;\n"
-"\n"
-"geomwkt\n"
-"---------------------------------\n"
-"MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 "
-"5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 "
-"5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 "
-"5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 "
-"5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 "
-"5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 "
-"5793243.9,3427927.9 5793243.9)))"
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Aspect(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8719
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6302
+#: reference_raster.xml:8732
 #, no-c-format
-msgid "ST_Reclass"
+msgid "ST_HillShade"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6303
+#: reference_raster.xml:8733
 #, no-c-format
 msgid ""
-"Creates a new raster composed of band types reclassified from original. The "
-"nband is the band to be changed. If nband is not specified assumed to be 1. "
-"All other bands are returned unchanged. Use case: convert a 16BUI band to a "
-"8BUI and so forth for simpler rendering as viewable formats."
+"Returns the hypothetical illumination of an elevation raster band using "
+"provided azimuth, altitude, brightness and scale inputs."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:6308
+#: reference_raster.xml:8736
 #, no-c-format
 msgid ""
-"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
+"<funcprototype> <funcdef>raster <function>ST_HillShade</function></funcdef> "
 "<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>azimuth=315</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>altitude=45</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>max_bright=255</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_HillShade</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>band</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
 "<paramdef choice=\"opt\"><type>double precision </type> "
-"<parameter>nodataval=NULL</parameter></paramdef> </funcprototype> "
-"<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> "
-"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>reclassarg[] </type> <parameter>VARIADIC reclassargset</"
-"parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster "
-"<function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> "
-"<parameter>rast</parameter></paramdef> <paramdef><type>text </type> "
-"<parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> "
-"<parameter>pixeltype</parameter></paramdef> </funcprototype>"
+"<parameter>azimuth=315</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>altitude=45</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>max_bright=255</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>double precision </type> <parameter>scale=1.0</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>interpolate_nodata=FALSE</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6336
+#: reference_raster.xml:8767
 #, no-c-format
 msgid ""
-"Creates a new raster formed by applying a valid PostgreSQL algebraic "
-"operation defined by the <varname>reclassexpr</varname> on the input raster "
-"(<varname>rast</varname>). If no <varname>band</varname> is specified band 1 "
-"is assumed. The new raster will have the same georeference, width, and "
-"height as the original raster. Bands not designated will come back "
-"unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid "
-"reclassification expressions."
+"Returns the hypothetical illumination of an elevation raster band using the "
+"azimuth, altitude, brightness, and scale inputs. Utilizes map algebra and "
+"applies the hill shade equation to neighboring pixels. Return pixel values "
+"are between 0 and 255."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6340
+#: reference_raster.xml:8769
 #, no-c-format
 msgid ""
-"The bands of the new raster will have pixel type of <varname>pixeltype</"
-"varname>. If <varname>reclassargset</varname> is passed in then each "
-"reclassarg defines behavior of each band generated."
+"<varname>azimuth</varname> is a value between 0 and 360 degrees measured "
+"clockwise from North."
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6347
+#. Tag: para
+#: reference_raster.xml:8773
 #, no-c-format
-msgid "Examples Basic"
+msgid ""
+"<varname>altitude</varname> is a value between 0 and 90 degrees where 0 "
+"degrees is at the horizon and 90 degrees is directly overhead."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6349
+#: reference_raster.xml:8777
 #, no-c-format
 msgid ""
-"Create a new raster from the original where band 2 is converted from 8BUI to "
-"4BUI and all values from 101-254 are set to nodata value."
+"<varname>max_bright</varname> is a value between 0 and 255 with 0 as no "
+"brightness and 255 as max brightness."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6350
+#. Tag: para
+#: reference_raster.xml:8781 reference_raster.xml:8909
 #, no-c-format
 msgid ""
-"ALTER TABLE dummy_rast ADD COLUMN reclass_rast raster;\n"
-"UPDATE dummy_rast SET reclass_rast = ST_Reclass(rast,2,'0-87:1-10, "
-"88-100:11-15, 101-254:0-0', '4BUI',0) WHERE rid = 2;\n"
-"\n"
-"SELECT i as col, j as row, ST_Value(rast,2,i,j) As origval, \n"
-"    ST_Value(reclass_rast, 2, i, j) As reclassval, \n"
-"    ST_Value(reclass_rast, 2, i, j, false) As reclassval_include_nodata\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
-"generate_series(1,3) AS j\n"
-"WHERE rid = 2;\n"
-"\n"
-" col | row | origval | reclassval | reclassval_include_nodata\n"
-"-----+-----+---------+------------+---------------------------\n"
-"   1 |   1 |      78 |          9 |                         9\n"
-"   2 |   1 |      98 |         14 |                        14\n"
-"   3 |   1 |     122 |            |                         0\n"
-"   1 |   2 |      96 |         14 |                        14\n"
-"   2 |   2 |     118 |            |                         0\n"
-"   3 |   2 |     180 |            |                         0\n"
-"   1 |   3 |      99 |         15 |                        15\n"
-"   2 |   3 |     112 |            |                         0\n"
-"   3 |   3 |     169 |            |                         0"
+"<varname>scale</varname> is the ratio of vertical units to horizontal. For "
+"Feet:LatLon use scale=370400, for Meters:LatLon use scale=111120."
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6354
+#. Tag: para
+#: reference_raster.xml:8785
 #, no-c-format
-msgid "Example: Advanced using multiple reclassargs"
+msgid ""
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the hillshade illumination."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6356
+#: reference_raster.xml:8790
 #, no-c-format
 msgid ""
-"Create a new raster from the original where band 1,2,3 is converted to "
-"1BB,4BUI, 4BUI respectively and reclassified. Note this uses the variadic "
-"<varname>reclassarg</varname> argument which can take as input an indefinite "
-"number of reclassargs (theoretically as many bands as you have)"
+"For more information about Hillshade, please refer to <ulink url=\"http://"
+"webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How%20Hillshade"
+"%20works\">How hillshade works</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8797
+#, no-c-format
+msgid ""
+"Changed: 2.1.0 In prior versions, azimuth and altitude were expressed in "
+"radians. Now, azimuth and altitude are expressed in degrees"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6358
+#: reference_raster.xml:8803
 #, no-c-format
 msgid ""
-"UPDATE dummy_rast SET reclass_rast = \n"
-"    ST_Reclass(rast,\n"
-"        ROW(2,'0-87]:1-10, (87-100]:11-15, (101-254]:0-0', '4BUI',NULL)::"
-"reclassarg,\n"
-"        ROW(1,'0-253]:1, 254:0', '1BB', NULL)::reclassarg,\n"
-"        ROW(3,'0-70]:1, (70-86:2, [86-150):3, [150-255:4', '4BUI', NULL)::"
-"reclassarg\n"
-"        ) WHERE rid = 2;\n"
-"\n"
-"SELECT i as col, j as row,ST_Value(rast,1,i,j) As ov1,  ST_Value"
-"(reclass_rast, 1, i, j) As rv1, \n"
-"    ST_Value(rast,2,i,j) As ov2, ST_Value(reclass_rast, 2, i, j) As rv2, \n"
-"    ST_Value(rast,3,i,j) As ov3, ST_Value(reclass_rast, 3, i, j) As rv3\n"
-"FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN "
-"generate_series(1,3) AS j\n"
-"WHERE rid = 2;\n"
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Hillshade(rast, 1, '32BF'))\n"
+"FROM foo\n"
 "\n"
-"col | row | ov1 | rv1 | ov2 | rv2 | ov3 | rv3\n"
-"----+-----+-----+-----+-----+-----+-----+-----\n"
-"  1 |   1 | 253 |   1 |  78 |   9 |  70 |   1\n"
-"  2 |   1 | 254 |   0 |  98 |  14 |  86 |   3\n"
-"  3 |   1 | 253 |   1 | 122 |   0 | 100 |   3\n"
-"  1 |   2 | 253 |   1 |  96 |  14 |  80 |   2\n"
-"  2 |   2 | 254 |   0 | 118 |   0 | 108 |   3\n"
-"  3 |   2 | 254 |   0 | 180 |   0 | 162 |   4\n"
-"  1 |   3 | 250 |   1 |  99 |  15 |  90 |   3\n"
-"  2 |   3 | 254 |   0 | 112 |   0 | 108 |   3\n"
-"  3 |   3 | 254 |   0 | 169 |   0 | 175 |   4"
+"                                                                                                                       st_dumpvalues                                                \n"
+"                                                                       \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"-----------------------------------------------------------------------\n"
+" (1,\"{{NULL,NULL,NULL,NULL,NULL},"
+"{NULL,251.32763671875,220.749786376953,147.224319458008,NULL},"
+"{NULL,220.749786376953,180.312225341797,67.7497863769531,NULL},"
+"{NULL,147.224319458008\n"
+",67.7497863769531,43.1210060119629,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8811
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Hillshade(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8816
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_Aspect\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8829
+#, no-c-format
+msgid "ST_Roughness"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8830
+#, no-c-format
+msgid "Returns a raster with the calculated \"roughness\" of a DEM."
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6361
+#. Tag: funcprototype
+#: reference_raster.xml:8835
 #, no-c-format
 msgid ""
-"Example: Advanced Map a single band 32BF raster to multiple viewable bands"
+"<funcdef>raster <function>ST_Roughness</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef><type>integer </type> <parameter>nband</parameter></paramdef> "
+"<paramdef><type>raster </type> <parameter>customextent</parameter></"
+"paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype="
+"\"32BF\"</parameter> </paramdef> <paramdef choice=\"opt\"><type>boolean </"
+"type> <parameter> interpolate_nodata=FALSE </parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6363
+#: reference_raster.xml:8848
 #, no-c-format
 msgid ""
-"Create a new 3 band (8BUI,8BUI,8BUI viewable raster) from a raster that has "
-"only one 32bf band"
+"Calculates the \"roughness\" of a DEM, by subtracting the maximum from the "
+"minimum for a given area."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6364
+#: reference_raster.xml:8854 reference_raster.xml:8987
+#: reference_raster.xml:9038
 #, no-c-format
-msgid ""
-"ALTER TABLE wind ADD COLUMN rast_view raster;\n"
-"UPDATE wind \n"
-"        set rast_view = ST_AddBand( NULL,\n"
-"        ARRAY[\n"
-"                ST_Reclass(rast, 1,'0.1-10]:1-10,9-10]:11,(11-33:0'::text, "
-"'8BUI'::text,0),\n"
-"                ST_Reclass(rast,1, '11-33):0-255,[0-32:0,(34-1000:0'::text, "
-"'8BUI'::text,0),  \n"
-"                ST_Reclass(rast,1,'0-32]:0,(32-100:100-255'::text, '8BUI'::"
-"text,0)\n"
-"                ]\n"
-"                ) ;"
+msgid "-- needs examples"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6370
+#: reference_raster.xml:8859
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Band\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, "
-"<xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"reclassarg\"/>, "
-"<xref linkend=\"RT_ST_Value\"/>"
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6376
+#: reference_raster.xml:8872
 #, no-c-format
-msgid "ST_Union"
+msgid "ST_Slope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6377
+#: reference_raster.xml:8873
 #, no-c-format
 msgid ""
-"Returns the union of a set of raster tiles into a single raster composed of "
-"1 or more bands."
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Useful for analyzing terrain."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6382
+#. Tag: funcsynopsis
+#: reference_raster.xml:8876
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
+"<funcprototype> <funcdef>raster <function>ST_Slope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> "
+"<parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>double precision </type> "
+"<parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype> <funcprototype> <funcdef>raster "
+"<function>ST_Slope</function></funcdef> <paramdef><type>raster </type> "
+"<parameter>rast</parameter></paramdef> <paramdef><type>integer </type> "
+"<parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>text </type> <parameter>units=DEGREES</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </"
+"type> <parameter>scale=1.0</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>boolean </type> <parameter>interpolate_nodata=FALSE</parameter></"
+"paramdef> </funcprototype>"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6388
+#. Tag: para
+#: reference_raster.xml:8903
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></"
-"paramdef>"
+"Returns the slope (in degrees by default) of an elevation raster band. "
+"Utilizes map algebra and applies the slope equation to neighboring pixels."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6395
+#. Tag: para
+#: reference_raster.xml:8905
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
+"<varname>units</varname> indicates the units of the slope. Possible values "
+"are: RADIANS, DEGREES (default), PERCENT."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6402
+#. Tag: para
+#: reference_raster.xml:8913
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+"If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels "
+"from the input raster will be interpolated using <xref linkend="
+"\"RT_ST_InvDistWeight4ma\"/> before computing the surface slope."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6409
+#. Tag: para
+#: reference_raster.xml:8918
 #, no-c-format
 msgid ""
-"<funcdef>raster <function>ST_Union</function></funcdef> "
-"<paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> "
-"<paramdef><type>integer</type> <parameter>nband</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
+"For more information about Slope, Aspect and Hillshade, please refer to "
+"<ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?"
+"TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and "
+"<ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/"
+"common/html/wwhelp.htm?context=FieldGuide&file=Slope_Images.html\">ERDAS "
+"Field Guide - Slope Images</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6421
+#: reference_raster.xml:8924
 #, no-c-format
 msgid ""
-"Returns the union of a set of raster tiles into a single raster composed of "
-"at least one band. If <varname>nband</varname> is not specified, band 1 is "
-"assumed. The resulting raster's extent is the extent of the whole set. In "
-"the case of intersection, the resulting value is defined by "
-"<varname>uniontype</varname> which is one of the following: LAST (default), "
-"FIRST, MIN, MAX, COUNT, SUM, MEAN."
+"Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional <varname>units</"
+"varname>, <varname>scale</varname>, <varname>interpolate_nodata</varname> "
+"function parameters"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6424
+#. Tag: programlisting
+#: reference_raster.xml:8931
 #, no-c-format
-msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based)."
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_SetValues(\n"
+"                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), "
+"1, '32BF', 0, -9999),\n"
+"                1, 1, 1, ARRAY[\n"
+"                        [1, 1, 1, 1, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 2, 3, 2, 1],\n"
+"                        [1, 2, 2, 2, 1],\n"
+"                        [1, 1, 1, 1, 1]\n"
+"                ]::double precision[][]\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_DumpValues(ST_Slope(rast, 1, '32BF'))\n"
+"FROM foo\n"
+"\n"
+"                            st_dumpvalues                                                                                                                                           \n"
+"                                                                     \n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+"---------------------------------------------------------------------\n"
+" (1,"
+"\"{{10.0249881744385,21.5681285858154,26.5650520324707,21.5681285858154,10.0249881744385},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},\n"
+"{26.5650520324707,36.8698959350586,0,36.8698959350586,26.5650520324707},"
+"{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},"
+"{10.0249881744385,21.\n"
+"5681285858154,26.5650520324707,21.5681285858154,10.0249881744385}}\")\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8939
+#, no-c-format
+msgid ""
+"WITH foo AS (\n"
+"        SELECT ST_Tile(\n"
+"                ST_SetValues(\n"
+"                        ST_AddBand(\n"
+"                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, "
+"0),\n"
+"                                1, '32BF', 0, -9999\n"
+"                        ),\n"
+"                        1, 1, 1, ARRAY[\n"
+"                                [1, 1, 1, 1, 1, 1],\n"
+"                                [1, 1, 1, 1, 2, 1],\n"
+"                                [1, 2, 2, 3, 3, 1],\n"
+"                                [1, 1, 3, 2, 1, 1],\n"
+"                                [1, 2, 2, 1, 2, 1],\n"
+"                                [1, 1, 1, 1, 1, 1]\n"
+"                        ]::double precision[]\n"
+"                ),\n"
+"                2, 2\n"
+"        ) AS rast\n"
+")\n"
+"SELECT\n"
+"        t1.rast,\n"
+"        ST_Slope(ST_Union(t2.rast), 1, t1.rast)\n"
+"FROM foo t1\n"
+"CROSS JOIN foo t2\n"
+"WHERE ST_Intersects(t1.rast, t2.rast)\n"
+"GROUP BY t1.rast;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6425
+#: reference_raster.xml:8944
 #, no-c-format
 msgid ""
-"Changed: 2.1.0 ST_Union(rast) now unions all bands of all input rasters. "
-"Prior versions only unioned the first band of all input rasters."
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6429
+#. Tag: refname
+#: reference_raster.xml:8957
 #, no-c-format
-msgid "Examples: Reconstitute a single band chunked raster tile"
+msgid "ST_TPI"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6430
+#. Tag: refpurpose
+#: reference_raster.xml:8958
 #, no-c-format
-msgid ""
-"-- this creates a single band from first band of raster tiles\n"
-"-- that form the original file system tile\n"
-"SELECT filename, ST_Union(rast,1) As file_rast\n"
-"FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;"
+msgid "Returns a raster with the calculated Topographic Position Index."
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:6434 reference_raster.xml:6442
+#. Tag: funcprototype
+#: reference_raster.xml:8963
 #, no-c-format
 msgid ""
-"Examples: Return a multi-band raster that is the union of tiles intersecting "
-"geometry"
+"<funcdef>raster <function>ST_TPI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6435
+#: reference_raster.xml:8977
 #, no-c-format
 msgid ""
-"-- this creates a multi band raster collecting all the tiles that intersect "
-"a line -- Note: In 2.0, this would have just returned a single band raster "
-"-- , new union works on all bands by default -- this is equivalent to "
-"unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), ROW(3, 'LAST')]::unionarg[]"
+"Calculates the Topographic Position Index, which is defined as the folcal "
+"mean with radius of one minus the center cell."
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6439
+#. Tag: para
+#: reference_raster.xml:8980 reference_raster.xml:9030
 #, no-c-format
-msgid ""
-"SELECT ST_Union(rast)\n"
-"FROM aerials.boston\n"
-"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
-"88772)',26986) );"
+msgid "This function only supports a focalmean radius of one."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6443
+#: reference_raster.xml:8992
 #, no-c-format
 msgid ""
-"Here we use the longer syntax if we only wanted a subset of bands or we want "
-"to change order of bands"
+", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6444
+#. Tag: refname
+#: reference_raster.xml:9005
+#, no-c-format
+msgid "ST_TRI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9006
+#, no-c-format
+msgid "Returns a raster with the calculated Terrain Ruggedness Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9011
 #, no-c-format
 msgid ""
-"-- this creates a multi band raster collecting all the tiles that intersect "
-"a line\n"
-"SELECT ST_Union(rast,ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::"
-"unionarg[])\n"
-"FROM aerials.boston\n"
-"WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 "
-"88772)',26986) );"
+"<funcdef>raster <function>ST_TRI</function></funcdef> <paramdef><type>raster "
+"</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </"
+"type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> "
+"<parameter>customextent</parameter></paramdef> <paramdef choice=\"opt"
+"\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> "
+"<paramdef choice=\"opt\"><type>boolean </type> <parameter> "
+"interpolate_nodata=FALSE </parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6450
+#: reference_raster.xml:9025
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, "
-"<xref linkend=\"RT_ST_Clip\"/>"
+"Terrain Ruggedness Index is calculated by comparing a central pixel with its "
+"neighbors, taking the absolute values of the differences, and averaging the "
+"result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9043
+#, no-c-format
+msgid ""
+", <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref "
+"linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref "
+"linkend=\"RT_ST_Aspect\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6461
+#: reference_raster.xml:9057
 #, no-c-format
-msgid "Raster Processing Builtin Functions"
+msgid "Raster to Geometry"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6464
+#: reference_raster.xml:9061
 #, no-c-format
-msgid "ST_Min4ma"
+msgid "Box3D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6465
+#: reference_raster.xml:9062
 #, no-c-format
-msgid ""
-"Raster processing function that calculates the minimum pixel value in a "
-"neighborhood."
+msgid "Returns the box 3d representation of the enclosing box of the raster."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6470
+#: reference_raster.xml:9067
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Min4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </"
+"type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6482
+#: reference_raster.xml:9077
 #, no-c-format
-msgid "Calculate the minimum pixel value in a neighborhood of pixels."
+msgid "Returns the box representing the extent of the raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6485 reference_raster.xml:6535
-#: reference_raster.xml:6585 reference_raster.xml:6635
-#: reference_raster.xml:6684 reference_raster.xml:6734
-#: reference_raster.xml:6784 reference_raster.xml:6855
-#: reference_raster.xml:6904
+#: reference_raster.xml:9078
 #, no-c-format
 msgid ""
-"This function is a specialized callback function for use as a callback "
-"parameter to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</"
+"varname>, <varname>MAXY</varname>))"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:6494
+#. Tag: para
+#: reference_raster.xml:9082
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,"
-"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |      250\n"
-"(1 row)"
+"Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of "
+"box3d. Since box2d is a deprecated type, this was changed to box3d."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6500
+#. Tag: programlisting
+#: reference_raster.xml:9088
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
-"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref "
-"linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+"SELECT\n"
+"        rid,\n"
+"        Box3D(rast) AS rastbox\n"
+"FROM dummy_rast;\n"
+"\n"
+"rid |        rastbox\n"
+"----+-------------------------------------------------\n"
+"1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
+"2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6514
+#: reference_raster.xml:9101
 #, no-c-format
-msgid "ST_Max4ma"
+msgid "ST_ConvexHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6515
+#: reference_raster.xml:9102
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the maximum pixel value in a "
-"neighborhood."
+"Return the convex hull geometry of the raster including pixel values equal "
+"to BandNoDataValue. For regular shaped and non-skewed rasters, this gives "
+"the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6520
+#: reference_raster.xml:9109
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Max4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"<funcdef>geometry <function>ST_ConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6532
-#, no-c-format
-msgid "Calculate the maximum pixel value in a neighborhood of pixels."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6544
+#: reference_raster.xml:9119
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,"
-"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |      254\n"
-"(1 row)"
+"Return the convex hull geometry of the raster including the NoDataBandValue "
+"band pixels. For regular shaped and non-skewed rasters, this gives more or "
+"less the same result as ST_Envelope so only useful for irregularly shaped or "
+"skewed rasters."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6550
+#: reference_raster.xml:9123
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref "
-"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref "
-"linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:6564
-#, no-c-format
-msgid "ST_Sum4ma"
+"ST_Envelope floors the coordinates and hence add a little buffer around the "
+"raster so the answer is subtly different from ST_ConvexHull which does not "
+"floor."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6565
+#. Tag: para
+#: reference_raster.xml:9130
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the sum of all pixel values in a "
-"neighborhood."
+"Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/"
+"SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram "
+"of this."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6570
+#. Tag: programlisting
+#: reference_raster.xml:9131
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Sum4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:6582
-#, no-c-format
-msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+"-- Note envelope and convexhull are more or less the same\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM dummy_rast WHERE rid=1;\n"
+"\n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 "
+"0,20 60,0 60,0 0))"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6594
+#: reference_raster.xml:9132
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,"
-"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |     2279\n"
-"(1 row)"
+"-- now we skew the raster \n"
+"-- note how the convex hull and envelope are now different\n"
+"SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+"        ST_AsText(ST_Envelope(rast)) As env\n"
+"FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
+"        FROM dummy_rast WHERE rid=1) As foo;\n"
+"        \n"
+"                        convhull                        |                "
+"env\n"
+"--------------------------------------------------------"
+"+------------------------------------\n"
+" POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 "
+"0,22 61,0 61,0 0))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6600
+#: reference_raster.xml:9138
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
-"linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref "
-"linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+", <xref linkend=\"RT_ST_MinConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/"
+">, <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6614
+#: reference_raster.xml:9149
 #, no-c-format
-msgid "ST_Mean4ma"
+msgid "ST_DumpAsPolygons"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6615
+#: reference_raster.xml:9150
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the mean pixel value in a "
-"neighborhood."
+"Returns a set of geomval (geom,val) rows, from a given raster band. If no "
+"band number is specified, band num defaults to 1."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6620
+#: reference_raster.xml:9155
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Mean4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> "
+"<parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6632
-#, no-c-format
-msgid "Calculate the mean pixel value in a neighborhood of pixels."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6644
+#: reference_raster.xml:9166
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_mean4ma(float[][],"
-"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid |     st_value\n"
-"-----+------------------\n"
-"   2 | 253.222229003906\n"
-"(1 row)"
+"This is a set-returning function (SRF). It returns a set of geomval rows, "
+"formed by a geometry (geom) and a pixel band value (val). Each polygon is "
+"the union of all pixels for that band that have the same pixel value denoted "
+"by val."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6650
+#: reference_raster.xml:9170
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
-"linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref "
-"linkend=\"RT_ST_StdDev4ma\"/>"
+"ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a "
+"GROUP BY in that it creates new rows. For example it can be used to expand a "
+"single raster into multiple POLYGONS/MULTIPOLYGONS."
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:6663
+#. Tag: para
+#: reference_raster.xml:9174
 #, no-c-format
-msgid "ST_Range4ma"
+msgid "Availability: Requires GDAL 1.7 or higher."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6664
+#. Tag: para
+#: reference_raster.xml:9175
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the range of pixel values in a "
-"neighborhood."
+"If there is a no data value set for a band, pixels with that value will not "
+"be returned."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6669
+#. Tag: para
+#: reference_raster.xml:9176
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Range4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"If you only care about count of pixels with a given value in a raster, it is "
+"faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6681
+#: reference_raster.xml:9178
 #, no-c-format
-msgid "Calculate the range of pixel values in a neighborhood of pixels."
+msgid ""
+"This is different than ST_PixelAsPolygons where one geometry is returned for "
+"each pixel regardless of pixel value."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6693
+#: reference_raster.xml:9186
 #, no-c-format
 msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,"
-"text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
+"SELECT val, ST_AsText(geom) As geomwkt\n"
+"FROM (\n"
+"SELECT (ST_DumpAsPolygons(rast)).*\n"
 "FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |        4\n"
-"(1 row)"
+"WHERE rid = 2\n"
+") As foo\n"
+"WHERE val BETWEEN 249 and 251\n"
+"ORDER BY val;\n"
+"\n"
+" val |                                                       geomwkt\n"
+"-----"
+"+--------------------------------------------------------------------------\n"
+" 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 "
+"5793243.85,\n"
+"                 3427928 5793243.95,3427927.95 5793243.95))\n"
+" 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 "
+"5793243.85,\n"
+"                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
+" 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 "
+"5793243.75,\n"
+"                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
+" 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 "
+"5793243.8,\n"
+"                 3427927.8 5793243.85,3427927.75 5793243.85))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6699 reference_raster.xml:6749
-#: reference_raster.xml:6799
+#: reference_raster.xml:9191
 #, no-c-format
 msgid ""
-", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref "
-"linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend="
-"\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref "
+"linkend=\"RT_ST_ValueCount\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6713
+#: reference_raster.xml:9202
 #, no-c-format
-msgid "ST_Distinct4ma"
+msgid "ST_Envelope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6714
+#: reference_raster.xml:9203
 #, no-c-format
-msgid ""
-"Raster processing function that calculates the number of unique pixel values "
-"in a neighborhood."
+msgid "Returns the polygon representation of the extent of the raster."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6719
+#: reference_raster.xml:9208
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_Distinct4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"<funcdef>geometry <function>ST_Envelope</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6731
+#: reference_raster.xml:9218
 #, no-c-format
 msgid ""
-"Calculate the number of unique pixel values in a neighborhood of pixels."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6743
-#, no-c-format
-msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],"
-"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid | st_value\n"
-"-----+----------\n"
-"   2 |        3\n"
-"(1 row)"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:6763
-#, no-c-format
-msgid "ST_StdDev4ma"
+"Returns the polygon representation of the extent of the raster in spatial "
+"coordinate units defined by srid. It is a float8 minimum bounding box "
+"represented as a polygon."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6764
+#. Tag: para
+#: reference_raster.xml:9220
 #, no-c-format
 msgid ""
-"Raster processing function that calculates the standard deviation of pixel "
-"values in a neighborhood."
+"The polygon is defined by the corner points of the bounding box "
+"((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</"
+"varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</"
+"varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), "
+"(<varname>MINX</varname>, <varname>MINY</varname>))"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6769
+#. Tag: programlisting
+#: reference_raster.xml:9232
 #, no-c-format
 msgid ""
-"<funcdef>float8 <function>ST_StdDev4ma</function></funcdef> "
-"<paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> "
-"<paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> "
-"<paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+"SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
+"FROM dummy_rast;\n"
+"\n"
+" rid |                                         envgeomwkt\n"
+"-----+--------------------------------------------------------------------\n"
+"   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
+"   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
+"                   3427928 5793244,3427927 5793244, 3427927 5793243))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6781
-#, no-c-format
-msgid ""
-"Calculate the standard deviation of pixel values in a neighborhood of pixels."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6793
+#: reference_raster.xml:9237
 #, no-c-format
-msgid ""
-"SELECT \n"
-"    rid,\n"
-"    st_value(\n"
-"        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_stddev4ma(float[][],"
-"text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-"    ) \n"
-"FROM dummy_rast \n"
-"WHERE rid = 2;\n"
-" rid |     st_value\n"
-"-----+------------------\n"
-"   2 | 1.30170822143555\n"
-"(1 row)"
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6813
+#: reference_raster.xml:9247
 #, no-c-format
-msgid "ST_InvDistWeight4ma"
+msgid "ST_MinConvexHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6814
+#: reference_raster.xml:9248
 #, no-c-format
-msgid ""
-"Raster processing function that interpolates a pixel's value from the "
-"pixel's neighborhood."
+msgid "Return the convex hull geometry of the raster excluding NODATA pixels."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6819
+#: reference_raster.xml:9255
 #, no-c-format
 msgid ""
-"<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> "
-"<paramdef><type>double precision[][]</type> <parameter>matrix</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
-"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
+"<funcdef>geometry <function>ST_MinConvexHull</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>nband=NULL</"
 "parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6831
+#: reference_raster.xml:9266
 #, no-c-format
 msgid ""
-"Calculate an interpolated value for a pixel using the Inverse Distance "
-"Weighted method."
+"Return the convex hull geometry of the raster excluding NODATA pixels. If "
+"<varname>nband</varname> is NULL, all bands of the raster are considered."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6833
+#. Tag: programlisting
+#: reference_raster.xml:9275
 #, no-c-format
 msgid ""
-"There are two optional parameters that can be passed through <varname>args</"
-"varname>. The first parameter is the power factor (variable k in the "
-"equation below) between 0 and 1 used in the Inverse Distance Weighted "
-"equation. If not specified, default value is 1. The second parameter is the "
-"weight percentage applied only when the value of the pixel of interest is "
-"included with the interpolated value from the neighborhood. If not specified "
-"and the pixel of interest has a value, that value is returned."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:6837
-#, no-c-format
-msgid "The basic inverse distance weight equation is:"
+"WITH foo AS (\n"
+"        SELECT\n"
+"                ST_SetValues(\n"
+"                        ST_SetValues(\n"
+"                                ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(9, "
+"9, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0), 2, '8BUI', 1, 0),\n"
+"                                1, 1, 1,\n"
+"                                ARRAY[\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 1],\n"
+"                                        [0, 0, 0, 1, 1, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 1, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                        [0, 0, 0, 0, 0, 0, 0, 0, 0]\n"
+"                                ]::double precision[][]\n"
+"                        ),\n"
+"                        2, 1, 1,\n"
+"                        ARRAY[\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [1, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 1, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+"                                [0, 0, 1, 0, 0, 0, 0, 0, 0]\n"
+"                        ]::double precision[][]\n"
+"                ) AS rast\n"
+")\n"
+"SELECT\n"
+"        ST_AsText(ST_ConvexHull(rast)) AS hull,\n"
+"        ST_AsText(ST_MinConvexHull(rast)) AS mhull,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 1)) AS mhull_1,\n"
+"        ST_AsText(ST_MinConvexHull(rast, 2)) AS mhull_2\n"
+"FROM foo\n"
+"\n"
+"               hull               |                mhull                "
+"|               mhull_1               |               "
+"mhull_2               \n"
+"----------------------------------+-------------------------------------"
+"+-------------------------------------"
+"+-------------------------------------\n"
+" POLYGON((0 0,9 0,9 -9,0 -9,0 0)) | POLYGON((0 -3,9 -3,9 -9,0 -9,0 -3)) | "
+"POLYGON((3 -3,9 -3,9 -6,3 -6,3 -3)) | POLYGON((0 -3,6 -3,6 -9,0 -9,0 -3))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6846
-#, no-c-format
-msgid "k = power factor, a real number between 0 and 1"
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6863 reference_raster.xml:6912
+#: reference_raster.xml:9280
 #, no-c-format
-msgid "-- NEEDS EXAMPLE"
+msgid ""
+", <xref linkend=\"RT_ST_ConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/>, "
+"<xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6868
+#. Tag: refname
+#: reference_raster.xml:9291
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
+msgid "ST_Polygon"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:6877
+#. Tag: refpurpose
+#: reference_raster.xml:9292
 #, no-c-format
-msgid "ST_MinDist4ma"
+msgid ""
+"Returns a multipolygon geometry formed by the union of pixels that have a "
+"pixel value that is not no data value. If no band number is specified, band "
+"num defaults to 1."
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:6878
+#. Tag: funcprototype
+#: reference_raster.xml:9297
 #, no-c-format
 msgid ""
-"Raster processing function that returns the minimum distance (in number of "
-"pixels) between the pixel of interest and a neighboring pixel with value."
+"<funcdef>geometry <function>ST_Polygon</function></funcdef> "
+"<paramdef><type>raster </type> <parameter>rast</parameter></paramdef> "
+"<paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</"
+"parameter></paramdef>"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6883
+#. Tag: para
+#: reference_raster.xml:9307
 #, no-c-format
-msgid ""
-"<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> "
-"<paramdef><type>double precision[][]</type> <parameter>matrix</parameter></"
-"paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></"
-"paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</"
-"parameter></paramdef>"
+msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6895
+#: reference_raster.xml:9308
 #, no-c-format
 msgid ""
-"Return the shortest distance (in number of pixels) between the pixel of "
-"interest and the closest pixel with value in the neighborhood."
+"Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning "
+"multipolygon is ensured to be valid."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6898
+#: reference_raster.xml:9309
 #, no-c-format
 msgid ""
-"The intent of this function is to provide an informative data point that "
-"helps infer the usefulness of the pixel of interest's interpolated value "
-"from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is "
-"particularly useful when the neighborhood is sparsely populated."
+"Changed: 2.1.0 In prior versions would sometimes return a polygon, changed "
+"to always return multipolygon."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6917
+#. Tag: programlisting
+#: reference_raster.xml:9314
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
+msgid ""
+"-- by default no data band value is 0 or not set, so polygon will return a "
+"square polygon        \n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"--------------------------------------------\n"
+"MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 "
+"5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
+"                 \n"
+"                 \n"
+"-- now we change the no data value of first band\n"
+"UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
+"WHERE rid = 2;\n"
+"SELECt rid, ST_BandNoDataValue(rast)\n"
+"from dummy_rast where rid = 2;\n"
+"\n"
+"-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
+"SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid = 2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------------------------------\n"
+"MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 "
+"5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 "
+"5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 "
+"5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 "
+"5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),"
+"((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 "
+"5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 "
+"5793244,3427927.8 5793243.9,3427927.8 5793243.85,3427927.85 "
+"5793243.85,3427927.85 5793243.8,3427927.85 5793243.75,3427927.8 "
+"5793243.75)))\n"
+"\n"
+"-- Or if you want the no data value different for just one time\n"
+"\n"
+"SELECT ST_AsText(\n"
+"        ST_Polygon(\n"
+"                ST_SetBandNoDataValue(rast,1,252)\n"
+"                )\n"
+"        ) As geomwkt\n"
+"FROM dummy_rast\n"
+"WHERE rid =2;\n"
+"\n"
+"geomwkt\n"
+"---------------------------------\n"
+"MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 "
+"5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 "
+"5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 "
+"5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 "
+"5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 "
+"5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 "
+"5793243.9,3427927.9 5793243.9)))"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6927
+#: reference_raster.xml:9331
 #, no-c-format
 msgid "Raster Operators"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6930
+#: reference_raster.xml:9334
 #, no-c-format
 msgid "&&"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6932
+#: reference_raster.xml:9336
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding "
 "box."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6937
-#, no-c-format
-msgid ""
-"<funcdef>boolean <function>&&</function></funcdef> <paramdef> "
-"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
-"<type>raster </type> <parameter>B</parameter> </paramdef>"
+#. Tag: funcsynopsis
+#: reference_raster.xml:9340
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>&&</function></funcdef> "
+"<paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> "
+"<paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </"
+"funcprototype> <funcprototype> <funcdef>boolean <function>&&</"
+"function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> "
+"</paramdef> <paramdef> <type>geometry </type> <parameter>B</parameter> </"
+"paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>&"
+"&</function></funcdef> <paramdef> <type>geometry </type> <parameter>B</"
+"parameter> </paramdef> <paramdef> <type>raster </type> <parameter>A</"
+"parameter> </paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6958
+#: reference_raster.xml:9382
 #, no-c-format
 msgid ""
 "The <varname>&&</varname> operator returns <varname>TRUE</varname> "
-"if the bounding box of raster A intersects the bounding box of raster B."
+"if the bounding box of raster/geometr A intersects the bounding box of "
+"raster/geometr B."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6960 reference_raster.xml:7939
-#: reference_raster.xml:8040 reference_raster.xml:8133
+#: reference_raster.xml:9384 reference_raster.xml:9636
+#: reference_raster.xml:10646 reference_raster.xml:10747
+#: reference_raster.xml:10840
 #, no-c-format
 msgid ""
 "This operand will make use of any indexes that may be available on the "
@@ -12062,7 +15373,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6968
+#: reference_raster.xml:9393
 #, no-c-format
 msgid ""
 "SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As "
@@ -12077,20 +15388,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6974
+#: reference_raster.xml:9399
 #, no-c-format
 msgid "&<"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6976
+#: reference_raster.xml:9401
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if A's bounding box is to the left of B's."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6981
+#: reference_raster.xml:9406
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>&<</function></funcdef> <paramdef> "
@@ -12099,7 +15410,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7002
+#: reference_raster.xml:9427
 #, no-c-format
 msgid ""
 "The <varname>&<</varname> operator returns <varname>TRUE</varname> if "
@@ -12109,7 +15420,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7006 reference_raster.xml:7051
+#: reference_raster.xml:9431 reference_raster.xml:9476
 #, no-c-format
 msgid ""
 "This operand will make use of any indexes that may be available on the "
@@ -12117,7 +15428,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7013
+#: reference_raster.xml:9438
 #, no-c-format
 msgid ""
 "SELECT A.rid As a_rid, B.rid As b_rid, A.rast &< B.rast As overleft\n"
@@ -12137,20 +15448,20 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7019
+#: reference_raster.xml:9444
 #, no-c-format
 msgid "&>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7021
+#: reference_raster.xml:9446
 #, no-c-format
 msgid ""
 "Returns <varname>TRUE</varname> if A's bounding box is to the right of B's."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:7026
+#: reference_raster.xml:9451
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>&></function></funcdef> <paramdef> "
@@ -12159,7 +15470,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7047
+#: reference_raster.xml:9472
 #, no-c-format
 msgid ""
 "The <varname>&></varname> operator returns <varname>TRUE</varname> if "
@@ -12169,7 +15480,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7058
+#: reference_raster.xml:9483
 #, no-c-format
 msgid ""
 "SELECT A.rid As a_rid, B.rid As b_rid, A.rast &> B.rast As overright\n"
@@ -12188,20 +15499,209 @@ msgid ""
 "     1 |     1 | t"
 msgstr ""
 
+#. Tag: refname
+#: reference_raster.xml:9489
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9491
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9496
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>=</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9517
+#, no-c-format
+msgid ""
+"The <varname>=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B. "
+"PostgreSQL uses the =, <, and > operators defined for rasters to "
+"perform internal orderings and comparison of rasters (ie. in a GROUP BY or "
+"ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9521
+#, no-c-format
+msgid ""
+"This operand will NOT make use of any indexes that may be available on the "
+"rasters. Use <xref linkend=\"RT_Raster_Same\"/> instead. This operator "
+"exists mostly so one can group by the raster column."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9537
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9539
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contained by B's. "
+"Uses double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9543
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9586
+#, no-c-format
+msgid ""
+"The <varname>@</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contained by bounding box of raster/"
+"geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9589 reference_raster.xml:9709
+#, no-c-format
+msgid "This operand will use spatial indexes on the rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9591
+#, no-c-format
+msgid "Availability: 2.0.0 raster @ raster, raster @ geometry introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9592
+#, no-c-format
+msgid "Availability: 2.0.5 geometry @ raster introduced"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9605
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9607
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9612
+#, no-c-format
+msgid ""
+"<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>raster </"
+"type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> "
+"<parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9633
+#, no-c-format
+msgid ""
+"The <varname>~=</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster A is the same as the bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9645
+#, no-c-format
+msgid ""
+"Very useful usecase is for taking two sets of single band rasters that are "
+"of the same chunk but represent different themes and creating a multi-band "
+"raster"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9646
+#, no-c-format
+msgid ""
+"SELECT ST_AddBand(prec.rast, alt.rast) As new_rast\n"
+"    FROM prec INNER JOIN alt ON (prec.rast ~= alt.rast);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9651
+#, no-c-format
+msgid ", <xref linkend=\"RT_Raster_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9657
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9659
+#, no-c-format
+msgid ""
+"Returns <varname>TRUE</varname> if A's bounding box is contains B's. Uses "
+"double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9663
+#, no-c-format
+msgid ""
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> "
+"<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> "
+"<type>raster </type> <parameter>B</parameter> </paramdef> <paramdef> "
+"<type>geometry </type> <parameter>A</parameter> </paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9706
+#, no-c-format
+msgid ""
+"The <varname>~</varname> operator returns <varname>TRUE</varname> if the "
+"bounding box of raster/geometry A is contains bounding box of raster/geometr "
+"B."
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:7064
+#: reference_raster.xml:9724
 #, no-c-format
 msgid "Raster and Raster Band Spatial Relationships"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7068
+#: reference_raster.xml:9728
 #, no-c-format
 msgid "ST_Contains"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7069
+#: reference_raster.xml:9729
 #, no-c-format
 msgid ""
 "Return true if no points of raster rastB lie in the exterior of raster rastA "
@@ -12210,7 +15710,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7075
+#: reference_raster.xml:9735
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> "
@@ -12225,7 +15725,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7114
+#: reference_raster.xml:9774
 #, no-c-format
 msgid ""
 "Raster rastA contains rastB if and only if no points of rastB lie in the "
@@ -12237,10 +15737,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7119 reference_raster.xml:7212
-#: reference_raster.xml:7293 reference_raster.xml:7374
-#: reference_raster.xml:7584 reference_raster.xml:7668
-#: reference_raster.xml:7748
+#: reference_raster.xml:9779 reference_raster.xml:9872
+#: reference_raster.xml:9953 reference_raster.xml:10034
+#: reference_raster.xml:10244 reference_raster.xml:10328
+#: reference_raster.xml:10408
 #, no-c-format
 msgid ""
 "This function will make use of any indexes that may be available on the "
@@ -12248,16 +15748,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7125
+#: reference_raster.xml:9785
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
-"on the raster, e.g. ST_Contains(ST_Polygon(raster), geometry) or ST_Contains"
-"(geometry, ST_Polygon(raster))."
+"on the raster, e.g. ST_Contains(ST_Polygon(raster), geometry) or "
+"ST_Contains(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7131
+#: reference_raster.xml:9791
 #, no-c-format
 msgid ""
 "ST_Contains() is the inverse of ST_Within(). So, ST_Contains(rastA, rastB) "
@@ -12265,7 +15765,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7142
+#: reference_raster.xml:9802
 #, no-c-format
 msgid ""
 "-- specified band numbers\n"
@@ -12280,7 +15780,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7144
+#: reference_raster.xml:9804
 #, no-c-format
 msgid ""
 "-- no band numbers specified\n"
@@ -12293,19 +15793,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7148
+#: reference_raster.xml:9808
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7157
+#: reference_raster.xml:9817
 #, no-c-format
 msgid "ST_ContainsProperly"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7158
+#: reference_raster.xml:9818
 #, no-c-format
 msgid ""
 "Return true if rastB intersects the interior of rastA but not the boundary "
@@ -12313,7 +15813,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7164
+#: reference_raster.xml:9824
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_ContainsProperly</function></"
@@ -12328,7 +15828,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7203
+#: reference_raster.xml:9863
 #, no-c-format
 msgid ""
 "Raster rastA contains properly rastB if rastB intersects the interior of "
@@ -12339,13 +15839,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7207
+#: reference_raster.xml:9867
 #, no-c-format
 msgid "Raster rastA does not contain properly itself but does contain itself."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7218
+#: reference_raster.xml:9878
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12354,7 +15854,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7229
+#: reference_raster.xml:9889
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_ContainsProperly(r1.rast, 1, r2.rast, 1) FROM "
@@ -12367,25 +15867,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7233
+#: reference_raster.xml:9893
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Contains\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7242
+#: reference_raster.xml:9902
 #, no-c-format
 msgid "ST_Covers"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7243
+#: reference_raster.xml:9903
 #, no-c-format
 msgid "Return true if no points of raster rastB lie outside raster rastA."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7249
+#: reference_raster.xml:9909
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> "
@@ -12400,7 +15900,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7288
+#: reference_raster.xml:9948
 #, no-c-format
 msgid ""
 "Raster rastA covers rastB if and only if no points of rastB lie in the "
@@ -12411,16 +15911,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7299
+#: reference_raster.xml:9959
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
-"on the raster, e.g. ST_Covers(ST_Polygon(raster), geometry) or ST_Covers"
-"(geometry, ST_Polygon(raster))."
+"on the raster, e.g. ST_Covers(ST_Polygon(raster), geometry) or "
+"ST_Covers(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7310
+#: reference_raster.xml:9970
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_Covers(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
@@ -12433,25 +15933,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7314
+#: reference_raster.xml:9974
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_CoveredBy\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7323
+#: reference_raster.xml:9983
 #, no-c-format
 msgid "ST_CoveredBy"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7324
+#: reference_raster.xml:9984
 #, no-c-format
 msgid "Return true if no points of raster rastA lie outside raster rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7330
+#: reference_raster.xml:9990
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> "
@@ -12466,7 +15966,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7369
+#: reference_raster.xml:10029
 #, no-c-format
 msgid ""
 "Raster rastA is covered by rastB if and only if no points of rastA lie in "
@@ -12477,7 +15977,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7380
+#: reference_raster.xml:10040
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12486,7 +15986,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7391
+#: reference_raster.xml:10051
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_CoveredBy(r1.rast, 1, r2.rast, 1) FROM dummy_rast "
@@ -12499,25 +15999,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7395
+#: reference_raster.xml:10055
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Covers\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7404
+#: reference_raster.xml:10064
 #, no-c-format
 msgid "ST_Disjoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7405
+#: reference_raster.xml:10065
 #, no-c-format
 msgid "Return true if raster rastA does not spatially intersect rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7411
+#: reference_raster.xml:10071
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Disjoint</function></funcdef> "
@@ -12532,7 +16032,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7450
+#: reference_raster.xml:10110
 #, no-c-format
 msgid ""
 "Raster rastA and rastB are disjointed if they do not share any space "
@@ -12543,13 +16043,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7455
+#: reference_raster.xml:10115
 #, no-c-format
 msgid "This function does NOT use any indexes."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7461
+#: reference_raster.xml:10121
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12557,7 +16057,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7472
+#: reference_raster.xml:10132
 #, no-c-format
 msgid ""
 "-- rid = 1 has no bands, hence the NOTICE and the NULL value for "
@@ -12573,7 +16073,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7474
+#: reference_raster.xml:10134
 #, no-c-format
 msgid ""
 "-- this time, without specifying band numbers\n"
@@ -12587,19 +16087,19 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7487
+#: reference_raster.xml:10147
 #, no-c-format
 msgid "ST_Intersects"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7488
+#: reference_raster.xml:10148
 #, no-c-format
 msgid "Return true if raster rastA spatially intersects raster rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7492
+#: reference_raster.xml:10152
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Intersects</function></"
@@ -12628,7 +16128,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7579
+#: reference_raster.xml:10239
 #, no-c-format
 msgid ""
 "Return true if raster rastA spatially intersects raster rastB. If the band "
@@ -12638,13 +16138,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7589
+#: reference_raster.xml:10249
 #, no-c-format
 msgid "Enhanced: 2.0.0 support raster/raster intersects was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7594
+#: reference_raster.xml:10254
 #, no-c-format
 msgid ""
 "Changed: 2.1.0 The behavior of the ST_Intersects(raster, geometry) variants "
@@ -12652,7 +16152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7603
+#: reference_raster.xml:10263
 #, no-c-format
 msgid ""
 "-- different bands of same raster\n"
@@ -12664,19 +16164,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7608
+#: reference_raster.xml:10268
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Disjoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7617
+#: reference_raster.xml:10277
 #, no-c-format
 msgid "ST_Overlaps"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7618
+#: reference_raster.xml:10278
 #, no-c-format
 msgid ""
 "Return true if raster rastA and rastB intersect but one does not completely "
@@ -12684,7 +16184,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7624
+#: reference_raster.xml:10284
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> "
@@ -12699,7 +16199,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7663
+#: reference_raster.xml:10323
 #, no-c-format
 msgid ""
 "Return true if raster rastA spatially overlaps raster rastB. This means that "
@@ -12710,7 +16210,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7674
+#: reference_raster.xml:10334
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12718,7 +16218,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7685
+#: reference_raster.xml:10345
 #, no-c-format
 msgid ""
 "-- comparing different bands of same raster\n"
@@ -12730,13 +16230,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7697
+#: reference_raster.xml:10357
 #, no-c-format
 msgid "ST_Touches"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7698
+#: reference_raster.xml:10358
 #, no-c-format
 msgid ""
 "Return true if raster rastA and rastB have at least one point in common but "
@@ -12744,7 +16244,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7704
+#: reference_raster.xml:10364
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Touches</function></funcdef> "
@@ -12759,7 +16259,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7743
+#: reference_raster.xml:10403
 #, no-c-format
 msgid ""
 "Return true if raster rastA spatially touches raster rastB. This means that "
@@ -12771,7 +16271,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7754
+#: reference_raster.xml:10414
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -12779,7 +16279,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7765
+#: reference_raster.xml:10425
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_Touches(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
@@ -12792,21 +16292,22 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7777
+#: reference_raster.xml:10437
 #, no-c-format
 msgid "ST_SameAlignment"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7779
+#: reference_raster.xml:10439
 #, no-c-format
 msgid ""
-"Returns true if rasters have same skew, scale, spatial ref and false if they "
-"don't with notice detailing issue."
+"Returns true if rasters have same skew, scale, spatial ref, and offset "
+"(pixels can be put on same grid without cutting into pixels) and false if "
+"they don't with notice detailing issue."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7783
+#: reference_raster.xml:10443
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></"
@@ -12834,7 +16335,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7862
+#: reference_raster.xml:10522
 #, no-c-format
 msgid ""
 "Non-Aggregate version (Variants 1 and 2): Returns true if the two rasters "
@@ -12846,7 +16347,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7866
+#: reference_raster.xml:10526
 #, no-c-format
 msgid ""
 "Aggregate version (Variant 3): From a set of rasters, returns true if all "
@@ -12856,19 +16357,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7871
+#: reference_raster.xml:10531
 #, no-c-format
 msgid "Enhanced: 2.1.0 addition of Aggegrate variant"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:7875
+#: reference_raster.xml:10535
 #, no-c-format
 msgid "Examples: Rasters"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7877
+#: reference_raster.xml:10537
 #, no-c-format
 msgid ""
 "SELECT ST_SameAlignment(\n"
@@ -12882,7 +16383,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7878
+#: reference_raster.xml:10538
 #, no-c-format
 msgid ""
 "SELECT ST_SameAlignment(A.rast,b.rast)\n"
@@ -12899,19 +16400,87 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7882
+#: reference_raster.xml:10542
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_MakeEmptyRaster\"/>"
+msgid ""
+", <xref linkend=\"RT_ST_NotSameAlignmentReason\"/>, <xref linkend="
+"\"RT_ST_MakeEmptyRaster\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7888
+#: reference_raster.xml:10552
+#, no-c-format
+msgid "ST_NotSameAlignmentReason"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10553
+#, no-c-format
+msgid ""
+"<refpurpose>Returns text stating if rasters are aligned and if not aligned, "
+"a reason why.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:10558
+#, no-c-format
+msgid ""
+"<funcdef>text <function>ST_NotSameAlignmentReason</function></funcdef> "
+"<paramdef><type>raster </type><parameter>rastA</parameter></paramdef> "
+"<paramdef><type>raster </type><parameter>rastB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10568
+#, no-c-format
+msgid ""
+"<para>Returns text stating if rasters are aligned and if not aligned, a "
+"reason why.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10571
+#, no-c-format
+msgid ""
+"If there are several reasons why the rasters are not aligned, only one "
+"reason (the first test to fail) will be returned."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10581
+#, no-c-format
+msgid ""
+"SELECT\n"
+"        ST_SameAlignment(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        ),\n"
+"        ST_NotSameAlignmentReason(\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+"                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+"        )\n"
+";\n"
+"\n"
+" st_samealignment |            st_notsamealignmentreason            \n"
+"------------------+-------------------------------------------------\n"
+" f                | The rasters have different scales on the X axis\n"
+"(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10586
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SameAlignment\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10595
 #, no-c-format
 msgid "ST_Within"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7889
+#: reference_raster.xml:10596
 #, no-c-format
 msgid ""
 "Return true if no points of raster rastA lie in the exterior of raster rastB "
@@ -12920,7 +16489,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7895
+#: reference_raster.xml:10602
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_Within</function></funcdef> "
@@ -12935,7 +16504,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7934
+#: reference_raster.xml:10641
 #, no-c-format
 msgid ""
 "Raster rastA is within rastB if and only if no points of rastA lie in the "
@@ -12947,16 +16516,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7945
+#: reference_raster.xml:10652
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
-"on the raster, e.g. ST_Within(ST_Polygon(raster), geometry) or ST_Within"
-"(geometry, ST_Polygon(raster))."
+"on the raster, e.g. ST_Within(ST_Polygon(raster), geometry) or "
+"ST_Within(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7951
+#: reference_raster.xml:10658
 #, no-c-format
 msgid ""
 "ST_Within() is the inverse of ST_Contains(). So, ST_Within(rastA, rastB) "
@@ -12964,7 +16533,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7962
+#: reference_raster.xml:10669
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_Within(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 "
@@ -12977,7 +16546,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7966
+#: reference_raster.xml:10673
 #, no-c-format
 msgid ""
 ", <xref linkend=\"RT_ST_Contains\"/>, <xref linkend=\"RT_ST_DWithin\"/>, "
@@ -12985,13 +16554,13 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7977
+#: reference_raster.xml:10684
 #, no-c-format
 msgid "ST_DWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7978
+#: reference_raster.xml:10685
 #, no-c-format
 msgid ""
 "Return true if rasters rastA and rastB are within the specified distance of "
@@ -12999,7 +16568,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7984
+#: reference_raster.xml:10691
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> "
@@ -13016,7 +16585,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8031
+#: reference_raster.xml:10738
 #, no-c-format
 msgid ""
 "Return true if rasters rastA and rastB are within the specified distance of "
@@ -13027,7 +16596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8035 reference_raster.xml:8128
+#: reference_raster.xml:10742 reference_raster.xml:10835
 #, no-c-format
 msgid ""
 "The distance is specified in units defined by the spatial reference system "
@@ -13036,7 +16605,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8046
+#: reference_raster.xml:10753
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -13044,7 +16613,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:8057
+#: reference_raster.xml:10764
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_DWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
@@ -13057,19 +16626,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8061
+#: reference_raster.xml:10768
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_DFullyWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:8070
+#: reference_raster.xml:10777
 #, no-c-format
 msgid "ST_DFullyWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:8071
+#: reference_raster.xml:10778
 #, no-c-format
 msgid ""
 "Return true if rasters rastA and rastB are fully within the specified "
@@ -13077,7 +16646,7 @@ msgid ""
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:8077
+#: reference_raster.xml:10784
 #, no-c-format
 msgid ""
 "<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></"
@@ -13095,7 +16664,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8124
+#: reference_raster.xml:10831
 #, no-c-format
 msgid ""
 "Return true if rasters rastA and rastB are fully within the specified "
@@ -13106,7 +16675,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8139
+#: reference_raster.xml:10846
 #, no-c-format
 msgid ""
 "To test the spatial relationship of a raster and a geometry, use ST_Polygon "
@@ -13114,7 +16683,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:8150
+#: reference_raster.xml:10857
 #, no-c-format
 msgid ""
 "SELECT r1.rid, r2.rid, ST_DFullyWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM "
@@ -13127,7 +16696,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8154
+#: reference_raster.xml:10861
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_DWithin\"/>"
 msgstr ""
diff --git a/doc/po/pt_BR/reference_sfcgal.xml.po b/doc/po/pt_BR/reference_sfcgal.xml.po
index a9d5ccf..0dee9db 100644
--- a/doc/po/pt_BR/reference_sfcgal.xml.po
+++ b/doc/po/pt_BR/reference_sfcgal.xml.po
@@ -1,52 +1,130 @@
 # SOME DESCRIPTIVE TITLE.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
-#, fuzzy
+# Translators:
+# Dauro Lima Sobrinho <daurolima at gmail.com>, 2014
+# Marcelo Soares Souza <marcelo at juntadados.org>, 2014
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: PostGIS\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2013-05-12 08:39+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: 2014-08-01 21:21+0000\n"
+"Last-Translator: Dauro Lima Sobrinho <daurolima at gmail.com>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
+"postgis-1/language/pt_BR/)\n"
+"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#. Tag: title
-#: reference_sfcgal.xml:4
+#. Tag: para
+#: reference_sfcgal.xml:5
 #, no-c-format
-msgid "Using SFCGAL Advanced 2D/3D functions"
+msgid ""
+"SFCGAL is a C++ wrapper library around CGAL that provides advanced 2D and 3D "
+"functions. For robustness, geometry coordinates have an exact rational "
+"number representation."
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:5
+#: reference_sfcgal.xml:9
 #, no-c-format
-msgid "TODO Introduction part"
+msgid ""
+"Installation instructions of the library can be found on SFCGAL home page "
+"<ulink url=\"http://www.sfcgal.org\">http://www.sfcgal.org</ulink>. To load "
+"the functions execute postgis/sfcgal.sql"
 msgstr ""
 
-#. Tag: para
-#: reference_sfcgal.xml:8
+#. Tag: title
+#: reference_sfcgal.xml:15
 #, no-c-format
-msgid "TODO Install part"
+msgid "SFCGAL Functions"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:14
+#: reference_sfcgal.xml:18
 #, no-c-format
-msgid "ST_Extrude"
+msgid "postgis_sfcgal_version"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:16
+#: reference_sfcgal.xml:20
 #, no-c-format
-msgid "Extrude a surface to a related volume"
+msgid "Returns the version of SFCGAL in use"
 msgstr ""
 
+#. Tag: funcdef
+#: reference_sfcgal.xml:26
+#, no-c-format
+msgid "text <function>postgis_sfcgal_version</function>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:33 reference_sfcgal.xml:65 reference_sfcgal.xml:158
+#: reference_sfcgal.xml:218 reference_sfcgal.xml:247 reference_sfcgal.xml:276
+#: reference_sfcgal.xml:305 reference_sfcgal.xml:335 reference_sfcgal.xml:377
+#: reference_sfcgal.xml:405
+#, no-c-format
+msgid "Description"
+msgstr "Descrição"
+
+#. Tag: para
+#: reference_sfcgal.xml:35 reference_sfcgal.xml:67 reference_sfcgal.xml:160
+#: reference_sfcgal.xml:249 reference_sfcgal.xml:278 reference_sfcgal.xml:310
+#: reference_sfcgal.xml:337 reference_sfcgal.xml:379 reference_sfcgal.xml:407
+#, fuzzy, no-c-format
+msgid "Availability: 2.1.0"
+msgstr "Disponibilidade"
+
+#. Tag: para
+#: reference_sfcgal.xml:36 reference_sfcgal.xml:68 reference_sfcgal.xml:161
+#: reference_sfcgal.xml:221 reference_sfcgal.xml:250 reference_sfcgal.xml:279
+#: reference_sfcgal.xml:311 reference_sfcgal.xml:338 reference_sfcgal.xml:380
+#: reference_sfcgal.xml:408
+#, no-c-format
+msgid "&sfcgal_required;"
+msgstr "&sfcgal_required;"
+
+#. Tag: para
+#: reference_sfcgal.xml:37 reference_sfcgal.xml:69 reference_sfcgal.xml:162
+#: reference_sfcgal.xml:222 reference_sfcgal.xml:251 reference_sfcgal.xml:280
+#: reference_sfcgal.xml:312 reference_sfcgal.xml:339 reference_sfcgal.xml:381
+#: reference_sfcgal.xml:409
+#, no-c-format
+msgid "&Z_support;"
+msgstr "&Z_support;"
+
+#. Tag: para
+#: reference_sfcgal.xml:38 reference_sfcgal.xml:70 reference_sfcgal.xml:163
+#: reference_sfcgal.xml:223 reference_sfcgal.xml:252 reference_sfcgal.xml:281
+#: reference_sfcgal.xml:340 reference_sfcgal.xml:382 reference_sfcgal.xml:410
+#, no-c-format
+msgid "&P_support;"
+msgstr "&P_support;"
+
+#. Tag: para
+#: reference_sfcgal.xml:39 reference_sfcgal.xml:71 reference_sfcgal.xml:164
+#: reference_sfcgal.xml:224 reference_sfcgal.xml:253 reference_sfcgal.xml:282
+#: reference_sfcgal.xml:341 reference_sfcgal.xml:383 reference_sfcgal.xml:411
+#, no-c-format
+msgid "&T_support;"
+msgstr "&T_support;"
+
+#. Tag: refname
+#: reference_sfcgal.xml:47
+#, no-c-format
+msgid "ST_Extrude"
+msgstr "ST_Extrude"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:49
+#, no-c-format
+msgid "Extrude a surface to a related volume"
+msgstr "Extrude uma superfície a um volume relacionado"
+
 #. Tag: funcprototype
-#: reference_sfcgal.xml:21
+#: reference_sfcgal.xml:54
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Extrude</function></funcdef> "
@@ -55,172 +133,522 @@ msgid ""
 "<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
 "<paramdef><type>float</type> <parameter>z</parameter></paramdef>"
 msgstr ""
+"<funcdef>geometry <function>ST_Extrude</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>x</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>y</parameter></paramdef> "
+"<paramdef><type>float</type> <parameter>z</parameter></paramdef>"
 
 #. Tag: title
-#: reference_sfcgal.xml:32 reference_sfcgal.xml:61 reference_sfcgal.xml:90
-#: reference_sfcgal.xml:119 reference_sfcgal.xml:148 reference_sfcgal.xml:177
-#: reference_sfcgal.xml:206
+#: reference_sfcgal.xml:74 reference_sfcgal.xml:167 reference_sfcgal.xml:414
 #, no-c-format
-msgid "Description"
+msgid "Examples"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:34 reference_sfcgal.xml:63 reference_sfcgal.xml:92
-#: reference_sfcgal.xml:121 reference_sfcgal.xml:150 reference_sfcgal.xml:179
-#: reference_sfcgal.xml:208
+#: reference_sfcgal.xml:75
 #, no-c-format
-msgid "Availability"
+msgid ""
+"3D images were generated using the PostGIS <xref linkend=\"ST_AsX3D\"/> and "
+"rendering in HTML using <ulink url=\"http://www.x3dom.org\">X3Dom HTML "
+"Javascript redering library</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:82
+#, no-c-format
+msgid ""
+"SELECT ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+"  50, 'quad_segs=2'),0,0,30);"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:35 reference_sfcgal.xml:64 reference_sfcgal.xml:93
-#: reference_sfcgal.xml:122 reference_sfcgal.xml:151 reference_sfcgal.xml:180
-#: reference_sfcgal.xml:209
+#: reference_sfcgal.xml:88
 #, no-c-format
-msgid "&sfcgal_required;"
+msgid "Original octagon formed from buffering point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:93
+#, no-c-format
+msgid ""
+"ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+" 50, 'quad_segs=2'),0,0,30);"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:36 reference_sfcgal.xml:65 reference_sfcgal.xml:94
-#: reference_sfcgal.xml:123 reference_sfcgal.xml:152 reference_sfcgal.xml:181
-#: reference_sfcgal.xml:210
+#: reference_sfcgal.xml:99
 #, no-c-format
-msgid "&Z_support;"
+msgid "Hexagon extruded 30 units along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:107
+#, no-c-format
+msgid "SELECT ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)')"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:37 reference_sfcgal.xml:66 reference_sfcgal.xml:95
-#: reference_sfcgal.xml:124 reference_sfcgal.xml:153 reference_sfcgal.xml:182
-#: reference_sfcgal.xml:211
+#: reference_sfcgal.xml:113
 #, no-c-format
-msgid "&P_support;"
+msgid "Original linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:118
+#, no-c-format
+msgid ""
+"SELECT ST_Extrude(\n"
+" ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)'),0,0,10));"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:38 reference_sfcgal.xml:67 reference_sfcgal.xml:96
-#: reference_sfcgal.xml:125 reference_sfcgal.xml:154 reference_sfcgal.xml:183
-#: reference_sfcgal.xml:212
+#: reference_sfcgal.xml:124
 #, no-c-format
-msgid "&T_support;"
+msgid "LineString Extruded along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:134
+#, no-c-format
+msgid "See Also"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:46
+#: reference_sfcgal.xml:143
 #, no-c-format
 msgid "ST_StraightSkeleton"
-msgstr ""
+msgstr "ST_StraightSkeleton"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:48
+#: reference_sfcgal.xml:145
 #, no-c-format
 msgid "Compute a straight skeleton from a geometry"
-msgstr ""
+msgstr "Calcule um esqueleto em linha reta de uma geometria"
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:53
+#: reference_sfcgal.xml:150
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> "
 "<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
+"<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:168
+#, no-c-format
+msgid ""
+"SELECT ST_StraightSkeleton(ST_GeomFromText('POLYGON (( 190 190, 10 190, 10 "
+"10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:179 reference_sfcgal.xml:453
+#, no-c-format
+msgid "Original polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:188
+#, fuzzy, no-c-format
+msgid "Straight Skeleton of polygon"
+msgstr "ST_StraightSkeleton"
 
 #. Tag: refname
-#: reference_sfcgal.xml:75
+#: reference_sfcgal.xml:203
 #, no-c-format
 msgid "ST_IsPlanar"
-msgstr ""
+msgstr "ST_IsPlanar"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:77
+#: reference_sfcgal.xml:205
 #, no-c-format
 msgid "Check if a surface is or not planar"
-msgstr ""
+msgstr "Verifique se a superfície é ou não planar"
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:82
+#: reference_sfcgal.xml:210
 #, no-c-format
 msgid ""
 "<funcdef>boolean <function>ST_IsPlanar</function></funcdef> "
 "<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
+"<funcdef>boolean <function>ST_IsPlanar</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_sfcgal.xml:220
+#, no-c-format
+msgid ""
+"Availability: 2.2.0: This was documented in 2.1.0 but got accidentally left "
+"out in 2.1 release."
+msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:104
+#: reference_sfcgal.xml:232
 #, no-c-format
 msgid "ST_Orientation"
-msgstr ""
+msgstr "ST_Orientation"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:106
+#: reference_sfcgal.xml:234
 #, no-c-format
 msgid "Determine surface orientation"
-msgstr ""
+msgstr "Determine orientação da superfície"
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:111
+#: reference_sfcgal.xml:239
 #, no-c-format
 msgid ""
 "<funcdef>integer <function>ST_Orientation</function></funcdef> "
 "<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
+"<funcdef>integer <function>ST_Orientation</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 
 #. Tag: refname
-#: reference_sfcgal.xml:133
+#: reference_sfcgal.xml:261
 #, no-c-format
 msgid "ST_ForceLHR"
-msgstr ""
+msgstr "ST_ForceLHR"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:135
+#: reference_sfcgal.xml:263
 #, no-c-format
 msgid "Force LHR orientation"
-msgstr ""
+msgstr "Orientação força LHR"
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:140
+#: reference_sfcgal.xml:268
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
 "<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 
 #. Tag: refname
-#: reference_sfcgal.xml:161
+#: reference_sfcgal.xml:289
 #, no-c-format
 msgid "ST_MinkowskiSum"
-msgstr ""
+msgstr "ST_MinkowskiSum"
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:163
+#: reference_sfcgal.xml:291
+#, fuzzy, no-c-format
+msgid "Performs Minkowski sum"
+msgstr "Executar soma Minkowski"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:296
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_MinkowskiSum</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_Minkowski</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+
+#. Tag: para
+#: reference_sfcgal.xml:307
 #, no-c-format
-msgid "Perform Minkowski sum"
+msgid ""
+"This function performs a 2D minkowski sum of a point, line or polygon with a "
+"polygon."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_sfcgal.xml:168
+#. Tag: para
+#: reference_sfcgal.xml:308
 #, no-c-format
 msgid ""
+"The first parameter can be any 2D geometry (point, linestring, polygon). If "
+"a 3D geometry is passed, it will be converted to 2D by forcing Z to 0, "
+"leading to possible cases of invalidity. The second parameter must be a 2D "
+"polygon."
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:319
+#, no-c-format
+msgid "ST_3DIntersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:321
+#, fuzzy, no-c-format
+msgid "Perform 3D intersection"
+msgstr "Realize Tesselation superfície"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:326
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>geometry <function>ST_3DIntersection</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
+"<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
 "<funcdef>geometry <function>ST_Minkowski</function></funcdef> "
 "<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> "
 "<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+
+#. Tag: title
+#: reference_sfcgal.xml:345
+#, no-c-format
+msgid "Examples: 3D linestring and Polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:346
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(linestring, polygon)) As wkt\n"
+"FROM  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 "
+"10)') AS linestring\n"
+" CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') "
+"AS polygon;\n"
+"\n"
+"              wkt\n"
+"--------------------------------\n"
+" LINESTRING Z (1 1 8,0.5 0.5 8)"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:348
+#, no-c-format
+msgid "Cube (closed Polyhedral Surface) and Polygon Z"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:349
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection(\n"
+"                ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, "
+"0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'), \n"
+"        'POLYGON Z ((0 0 0, 0 0 0.5, 0 0.5 0.5, 0 0.5 0, 0 0 0))'::geometry))"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:350
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),((0 0.5 0,0 0 0,0 0.5 0.5,0 0.5 0)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:352
+#, no-c-format
+msgid ""
+"Intersection of 2 solids that result in volumetric intersection is also a "
+"solid (ST_Dimension returns 3)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:353
+#, no-c-format
+msgid ""
+"SELECT ST_AsText(ST_3DIntersection( ST_Extrude(ST_Buffer('POINT(10 20)'::"
+"geometry,10,1),0,0,30),\n"
+" ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),2,0,10) ));"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:354
+#, no-c-format
+msgid ""
+"POLYHEDRALSURFACE Z (((13.3333333333333 13.3333333333333 10,20 20 0,20 20 "
+"10,13.3333333333333 13.3333333333333 10)),\n"
+"         ((20 20 10,16.6666666666667 23.3333333333333 10,13.3333333333333 "
+"13.3333333333333 10,20 20 10)),\n"
+"         ((20 20 0,16.6666666666667 23.3333333333333 10,20 20 10,20 20 0)),\n"
+"         ((13.3333333333333 13.3333333333333 10,10 10 0,20 20 "
+"0,13.3333333333333 13.3333333333333 10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,12 28 10,13.3333333333333 "
+"13.3333333333333 10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((20 20 0,9.99999999999995 30 0,16.6666666666667 23.3333333333333 "
+"10,20 20 0)),\n"
+"         ((10 10 0,9.99999999999995 30 0,20 20 0,10 10 0)),"
+"((13.3333333333333 13.3333333333333 10,12 12 10,10 10 0,13.3333333333333 "
+"13.3333333333333 10)),\n"
+"         ((12 28 10,12 12 10,13.3333333333333 13.3333333333333 10,12 28 "
+"10)),\n"
+"         ((16.6666666666667 23.3333333333333 10,9.99999999999995 30 0,12 28 "
+"10,16.6666666666667 23.3333333333333 10)),\n"
+"         ((10 10 0,0 20 0,9.99999999999995 30 0,10 10 0)),\n"
+"         ((12 12 10,11 11 10,10 10 0,12 12 10)),((12 28 10,11 11 10,12 12 "
+"10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,11 29 10,12 28 10,9.99999999999995 30 0)),"
+"((0 20 0,2 20 10,9.99999999999995 30 0,0 20 0)),\n"
+"         ((10 10 0,2 20 10,0 20 0,10 10 0)),((11 11 10,2 20 10,10 10 0,11 11 "
+"10)),((12 28 10,11 29 10,11 11 10,12 28 10)),\n"
+"         ((9.99999999999995 30 0,2 20 10,11 29 10,9.99999999999995 30 0)),"
+"((11 11 10,11 29 10,2 20 10,11 11 10)))"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:191
+#: reference_sfcgal.xml:362
 #, no-c-format
-msgid "ST_Tesselate"
+msgid "ST_3DArea"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:193
+#: reference_sfcgal.xml:364
+#, fuzzy, no-c-format
+msgid "Computes area of 3D geometries"
+msgstr "Calcule um esqueleto em linha reta de uma geometria"
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:369
+#, fuzzy, no-c-format
+msgid ""
+"<funcdef>float<function>ST_3DArea</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>"
+msgstr ""
+"<funcdef>geometry <function>ST_ForceLHR</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: refname
+#: reference_sfcgal.xml:390
+#, no-c-format
+msgid "ST_Tesselate"
+msgstr "ST_Tesselate"
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:392
 #, no-c-format
-msgid "Perform surface Tesselation"
+msgid ""
+"Perform surface Tesselation of a polygon or polyhedralsurface and returns as "
+"a TIN or collection of TINS"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:198
+#: reference_sfcgal.xml:397
 #, no-c-format
 msgid ""
 "<funcdef>geometry <function>ST_Tesselate</function></funcdef> "
 "<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
+"<funcdef>geometry <function>ST_Tesselate</function></funcdef> "
+"<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
+
+#. Tag: para
+#: reference_sfcgal.xml:406
+#, no-c-format
+msgid ""
+"Takes as input a surface such a MULTI(POLYGON) or POLYHEDRALSURFACE and "
+"returns a TIN representation via the process of tesselation using triangles."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:420
+#, no-c-format
+msgid ""
+"SELECT ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 "
+"0 0)), \n"
+"                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 "
+"1, 0 0 1, 0 0 0)), \n"
+"                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 "
+"1, 0 1 1, 0 0 1)) )');"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:426
+#, no-c-format
+msgid "Original Cube"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:431
+#, no-c-format
+msgid ""
+"SELECT ST_Tesselate(ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 "
+"1 1, 0 1 0, 0 0 0)), \n"
+"        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, "
+"0 0 0)), \n"
+"        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+"        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, "
+"0 0 1)) )'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:432
+#, no-c-format
+msgid "ST_AsText output:"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:433
+#, no-c-format
+msgid ""
+"TIN Z (((0 0 0,0 0 1,0 1 1,0 0 0)),((0 1 0,0 0 0,0 1 1,0 1 0)),\n"
+"        ((0 0 0,0 1 0,1 1 0,0 0 0)),\n"
+"        ((1 0 0,0 0 0,1 1 0,1 0 0)),((0 0 1,1 0 0,1 0 1,0 0 1)),\n"
+"        ((0 0 1,0 0 0,1 0 0,0 0 1)),\n"
+"        ((1 1 0,1 1 1,1 0 1,1 1 0)),((1 0 0,1 1 0,1 0 1,1 0 0)),\n"
+"        ((0 1 0,0 1 1,1 1 1,0 1 0)),((1 1 0,0 1 0,1 1 1,1 1 0)),\n"
+"        ((0 1 1,1 0 1,1 1 1,0 1 1)),((0 1 1,0 0 1,1 0 1,0 1 1)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:439
+#, no-c-format
+msgid "Tesselated Cube with triangles colored"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:447
+#, no-c-format
+msgid ""
+"SELECT 'POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, "
+"10 190 ))'::geometry;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:458
+#, no-c-format
+msgid ""
+"SELECT \n"
+"        ST_Tesselate('POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 "
+"160, 120 190, 10 190 ))'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:460
+#, no-c-format
+msgid "ST_AsText output"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:461
+#, no-c-format
+msgid ""
+"TIN(((80 130,50 160,80 70,80 130)),((50 160,10 190,10 70,50 160)),\n"
+"         ((80 70,50 160,10 70,80 70)),((120 160,120 190,50 160,120 160)),\n"
+" ((120 190,10 190,50 160,120 190)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:467
+#, fuzzy, no-c-format
+msgid "Tesselated Polygon"
+msgstr "ST_Tesselate"
+
+#~ msgid "Using SFCGAL Advanced 2D/3D functions"
+#~ msgstr "Utilizando funções SFCGAL 2D/3D avançadas"
+
+#~ msgid "TODO Introduction part"
+#~ msgstr "Parte da Introdução do TODO"
+
+#~ msgid "TODO Install part"
+#~ msgstr "Parte de Instalação do TODO"
diff --git a/doc/po/pt_BR/release_notes.xml.po b/doc/po/pt_BR/release_notes.xml.po
index ec52a79..db67e25 100644
--- a/doc/po/pt_BR/release_notes.xml.po
+++ b/doc/po/pt_BR/release_notes.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -30,159 +30,2305 @@ msgstr ""
 #. Tag: title
 #: release_notes.xml:6
 #, no-c-format
-msgid "Release 2.0.1"
+msgid "Release 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:7
+#, no-c-format
+msgid "Release date: YYYY/MM/DD"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:11
+#, no-c-format
+msgid "Release 2.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:12
+#, no-c-format
+msgid "Release date: 2014-09-10"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:13
+#, no-c-format
+msgid "This is a bug fix and performance improvement release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:15 release_notes.xml:124 release_notes.xml:152
+#: release_notes.xml:271 release_notes.xml:449 release_notes.xml:477
+#: release_notes.xml:536 release_notes.xml:598 release_notes.xml:688
+#: release_notes.xml:889 release_notes.xml:944
+#, no-c-format
+msgid "Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:16
+#, no-c-format
+msgid "#2745, Speedup ST_Simplify calls against points"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:17
+#, no-c-format
+msgid "#2747, Support for GDAL 2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:18
+#, no-c-format
+msgid "#2749, Make rtpostgis_upgrade_20_21.sql ACID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:19
+#, no-c-format
+msgid "#2811, Do not specify index names when loading shapefiles/rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:20
+#, no-c-format
+msgid ""
+"#2829, Shortcut ST_Clip(raster) if geometry fully contains the raster and no "
+"NODATA specified"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:22
+#, no-c-format
+msgid ""
+"#2895, Raise cost of ST_ConvexHull(raster) to 300 for better query plans"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:26 release_notes.xml:87 release_notes.xml:98
+#: release_notes.xml:139 release_notes.xml:395 release_notes.xml:421
+#: release_notes.xml:463 release_notes.xml:487 release_notes.xml:550
+#: release_notes.xml:705 release_notes.xml:719 release_notes.xml:757
+#: release_notes.xml:795 release_notes.xml:826
+#, no-c-format
+msgid "Bug Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:27
+#, no-c-format
+msgid "#2605, armel: _ST_Covers() returns true for point in hole"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:28
+#, no-c-format
+msgid ""
+"#2911, Fix output scale on ST_Rescale/ST_Resample/ST_Resize of rasters with "
+"scale 1/-1 and offset 0/0."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:30
+#, no-c-format
+msgid "Fix crash in ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:31
+#, no-c-format
+msgid ""
+"#2704, ST_GeomFromGML() does not work properly with array of gml:pos (Even "
+"Roualt)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:33
+#, no-c-format
+msgid ""
+"#2708, updategeometrysrid doesn't update srid check when schema not "
+"specified. Patch from Marc Jansen"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:35
+#, no-c-format
+msgid "#2720, lwpoly_add_ring should update maxrings after realloc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:36
+#, no-c-format
+msgid ""
+"#2759, Fix postgis_restore.pl handling of multiline object comments "
+"embedding sql comments"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:38
+#, no-c-format
+msgid ""
+"#2774, fix undefined behavior in ptarray_calculate_gbox_geodetic - Fix "
+"potential memory fault in ST_MakeValid"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:40
+#, no-c-format
+msgid "#2784, Fix handling of bogus argument to --with-sfcgal"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:41
+#, no-c-format
+msgid "#2772, Premature memory free in RASTER_getBandPath (ST_BandPath)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:42
+#, no-c-format
+msgid "#2755, Fix regressions tests against all versions of SFCGAL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:43
+#, no-c-format
+msgid "#2775, lwline_from_lwmpoint leaks memory"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:44
+#, no-c-format
+msgid "#2802, ST_MapAlgebra checks for valid callback function return value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:45
+#, no-c-format
+msgid "#2803, ST_MapAlgebra handles no userarg and STRICT callback function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:46
+#, no-c-format
+msgid "#2834, ST_Estimated_Extent and mixedCase table names (regression bug)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:47
+#, no-c-format
+msgid "#2845, Bad geometry created from ST_AddPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:48
+#, no-c-format
+msgid ""
+"#2870, Binary insert into geography column results geometry being inserted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:49
+#, no-c-format
+msgid "#2872, make install builds documentation (Greg Troxell)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:50
+#, no-c-format
+msgid "#2819, find isfinite or replacement on Centos5 / Solaris"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:51
+#, no-c-format
+msgid "#2899, geocode limit 1 not returning best answer (tiger geocoder)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:52
+#, no-c-format
+msgid "#2903, Unable to compile on FreeBSD"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:53
+#, no-c-format
+msgid ""
+"#2927 reverse_geocode not filling in direction prefix (tiger geocoder) get "
+"rid of deprecated ST_Line_Locate_Point called"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:59
+#, no-c-format
+msgid "Release 2.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:60
+#, no-c-format
+msgid "Release date: 2014/05/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:61
+#, no-c-format
+msgid "This is a bug fix and security release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:63
+#, no-c-format
+msgid "Important changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:64
+#, no-c-format
+msgid ""
+"Starting with this version offline raster access and use of GDAL drivers are "
+"disabled by default."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:69
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling specific GDAL "
+"drivers: POSTGIS_GDAL_ENABLED_DRIVERS. By default, all GDAL drivers are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:75
+#, no-c-format
+msgid ""
+"An environment variable is introduced to allow for enabling out-db raster "
+"bands: POSTGIS_ENABLE_OUTDB_RASTERS. By default, out-db raster bands are "
+"disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:81
+#, no-c-format
+msgid ""
+"The environment variables must be set for the PostgreSQL process, and "
+"determines the behavior of the whole cluster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:88
+#, no-c-format
+msgid "#2697, invalid GeoJSON Polygon input crashes server process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:89
+#, no-c-format
+msgid "#2700, Fix dumping of higher-dimension datasets with null rows"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:90
+#, no-c-format
+msgid "#2706, ST_DumpPoints of EMPTY geometries crashes server"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:94
+#, no-c-format
+msgid "Release 2.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:95 release_notes.xml:392
+#, no-c-format
+msgid "Release date: 2014/03/31"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:96
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:99
+#, no-c-format
+msgid "#2666, Error out at configure time if no SQL preprocessor can be found"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:100
+#, no-c-format
+msgid "#2534, st_distance returning incorrect results for large geographies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:101
+#, no-c-format
+msgid "#2539, Check for json-c/json.h presence/usability before json/json.h"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:102
+#, no-c-format
+msgid "#2543, invalid join selectivity error from simple query"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:103
+#, no-c-format
+msgid "#2546, GeoJSON with string coordinates parses incorrectly"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:104
+#, no-c-format
+msgid "#2547, Fix ST_Simplify(TopoGeometry) for hierarchical topogeoms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:105 release_notes.xml:402
+#, no-c-format
+msgid "#2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:107 release_notes.xml:403
+#, no-c-format
+msgid "#2555, Fix parsing issue of range arguments of ST_Reclass"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:108
+#, no-c-format
+msgid "#2556, geography ST_Intersects results depending on insert order"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:109
+#, no-c-format
+msgid "#2580, Do not allow installing postgis twice in the same database"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:110 release_notes.xml:404
+#, no-c-format
+msgid "#2589, Remove use of unnecessary void pointers"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:111
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in one process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:112 release_notes.xml:406
+#, no-c-format
+msgid "#2610, Ensure face splitting algorithm uses the edge index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:113
+#, no-c-format
+msgid ""
+"#2615, EstimatedExtent (and hence, underlying stats) gathering wrong bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:114
+#, no-c-format
+msgid "#2619, Empty rings array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:115
+#, no-c-format
+msgid "#2634, regression in sphere distance code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:116 release_notes.xml:408
+#, no-c-format
+msgid "#2638, Geography distance on M geometries sometimes wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:117
+#, no-c-format
+msgid ""
+"#2648, #2653, Fix topology functions when \"topology\" is not in search_path"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:118
+#, no-c-format
+msgid "#2654, Drop deprecated calls from topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:119
+#, no-c-format
+msgid ""
+"#2655, Let users without topology privileges call postgis_full_version()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:120
+#, no-c-format
+msgid "#2674, Fix missing operator = and hash_raster_ops opclass on raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:121
+#, no-c-format
+msgid ""
+"#2675, #2534, #2636, #2634, #2638, Geography distance issues with tree "
+"optimization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:125
+#, no-c-format
+msgid "#2494, avoid memcopy in GiST index (hayamiz)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:126
+#, no-c-format
+msgid ""
+"#2560, soft upgrade: avoid drop/recreate of aggregates that hadn't changed"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:131
+#, no-c-format
+msgid "Release 2.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:132
+#, no-c-format
+msgid "Release date: 2013/11/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:133
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.1.0 release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:135 release_notes.xml:411
+#, no-c-format
+msgid "Important Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:136
+#, no-c-format
+msgid ""
+"#2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:140
+#, no-c-format
+msgid "#2396, Make regression tests more endian-agnostic"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:141
+#, no-c-format
+msgid "#2434, Fix ST_Intersection(geog,geog) regression in rare cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:142
+#, no-c-format
+msgid ""
+"#2454, Fix behavior of ST_PixelAsXXX functions regarding "
+"exclude_nodata_value parameter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:143
+#, no-c-format
+msgid "#2489, Fix upgrades from 2.0 leaving stale function signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:144
+#, no-c-format
+msgid "#2525, Fix handling of SRID in nested collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:145
+#, no-c-format
+msgid "#2449, Fix potential infinite loop in index building"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:146
+#, no-c-format
+msgid "#2493, Fix behavior of ST_DumpValues when passed an empty raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:147 release_notes.xml:397
+#, no-c-format
+msgid "#2502, Fix postgis_topology_scripts_installed() install schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:148 release_notes.xml:398
+#, no-c-format
+msgid "#2504, Fix segfault on bogus pgsql2shp call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:149
+#, no-c-format
+msgid ""
+"#2512, Support for foreign tables and materialized views in raster_columns "
+"and raster_overviews"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:153
+#, no-c-format
+msgid "#2478, support for tiger 2013"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:154
+#, no-c-format
+msgid "#2463, support for exact length calculations on arc geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:160
+#, no-c-format
+msgid "Release 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:161
+#, no-c-format
+msgid "Release date: 2013/08/17"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:162
+#, no-c-format
+msgid ""
+"This is a minor release addressing both bug fixes and performance and "
+"functionality enhancements addressing issues since 2.0.3 release. If you are "
+"upgrading from 2.0+, only a soft upgrade is required. If you are upgrading "
+"from 1.5 or earlier, a hard upgrade is required."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:165 release_notes.xml:634
+#, no-c-format
+msgid "Important / Breaking Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:166
+#, no-c-format
+msgid ""
+"#1653, Removed srid parameter from ST_Resample(raster) and variants with "
+"reference raster no longer apply reference raster's SRID."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:168
+#, no-c-format
+msgid ""
+"#1962 ST_Segmentize - As a result of the introduction of geography support, "
+"The construct: <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</"
+"code> will result in ambiguous function error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:172
+#, no-c-format
+msgid "#2026, ST_Union(raster) now unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:173
+#, no-c-format
+msgid "#2089, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:174
+#, no-c-format
+msgid ""
+"#2150, regular_blocking is no longer a constraint. column of same name in "
+"raster_columns now checks for existance of spatially_unique and "
+"coverage_tile constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:177
+#, no-c-format
+msgid ""
+"ST_Intersects(raster, geometry) behaves in the same manner as "
+"ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:179
+#, no-c-format
+msgid ""
+"point variant of ST_SetValue(raster) previously did not check SRID of input "
+"geometry and raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:181
+#, no-c-format
+msgid ""
+"ST_Hillshade parameters azimuth and altitude are now in degrees instead of "
+"radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:183
+#, no-c-format
+msgid ""
+"ST_Slope and ST_Aspect return pixel values in degrees instead of radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:184
+#, no-c-format
+msgid ""
+"#2104, ST_World2RasterCoord, ST_World2RasterCoordX and ST_World2RasterCoordY "
+"renamed to ST_WorldToRasterCoord, ST_WorldToRasterCoordX and "
+"ST_WorldToRasterCoordY. ST_Raster2WorldCoord, ST_Raster2WorldCoordX and "
+"ST_Raster2WorldCoordY renamed to ST_RasterToWorldCoord, "
+"ST_RasterToWorldCoordX and ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:190
+#, no-c-format
+msgid "ST_Estimated_Extent renamed to ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:191
+#, no-c-format
+msgid "ST_Line_Interpolate_Point renamed to ST_LineInterpolatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:192
+#, no-c-format
+msgid "ST_Line_Substring renamed to ST_LineSubstring"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:193
+#, no-c-format
+msgid "ST_Line_Locate_Point renamed to ST_LineLocatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:194
+#, no-c-format
+msgid "ST_Force_XXX renamed to ST_ForceXXX"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:195
+#, no-c-format
+msgid ""
+"ST_MapAlgebraFctNgb and 1 and 2 raster variants of ST_MapAlgebraFct. Use "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:197
+#, no-c-format
+msgid ""
+"1 and 2 raster variants of ST_MapAlgebraExpr. Use expression variants of "
+"ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:202 release_notes.xml:661 release_notes.xml:861
+#: release_notes.xml:925 release_notes.xml:1222
+#, no-c-format
+msgid "New Features"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:203
+#, no-c-format
+msgid ""
+"- Refer to http://postgis.net/docs/manual-2.1/"
+"PostGIS_Special_Functions_Index.html#NewFunctions_2_1 for complete list of "
+"new functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:205
+#, no-c-format
+msgid ""
+"#310, ST_DumpPoints converted to a C function (Nathan Wagner) and much faster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:206
+#, no-c-format
+msgid "#739, UpdateRasterSRID()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:207
+#, no-c-format
+msgid ""
+"#945, improved join selectivity, N-D selectivity calculations, user "
+"accessible selectivity and stats reader functions for testing (Paul Ramsey / "
+"OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:210
+#, no-c-format
+msgid "toTopoGeom with TopoGeometry sink (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:211
+#, no-c-format
+msgid "clearTopoGeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:212
+#, no-c-format
+msgid "ST_Segmentize(geography) (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:213
+#, no-c-format
+msgid "ST_DelaunayTriangles (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:214
+#, no-c-format
+msgid "ST_NearestValue, ST_Neighborhood (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:215
+#, no-c-format
+msgid "ST_PixelAsPoint, ST_PixelAsPoints (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:216
+#, no-c-format
+msgid "ST_PixelAsCentroid, ST_PixelAsCentroids (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:217
+#, no-c-format
+msgid "ST_Raster2WorldCoord, ST_World2RasterCoord (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:218
+#, no-c-format
+msgid ""
+"Additional raster/raster spatial relationship functions (ST_Contains, "
+"ST_ContainsProperly, ST_Covers, ST_CoveredBy, ST_Disjoint, ST_Overlaps, "
+"ST_Touches, ST_Within, ST_DWithin, ST_DFullyWithin) (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:222
+#, no-c-format
+msgid ""
+"Added array variants of ST_SetValues() to set many pixel values of a band in "
+"one call (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:224
+#, no-c-format
+msgid "#1293, ST_Resize(raster) to resize rasters based upon width/height"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:225
+#, no-c-format
+msgid "#1627, package tiger_geocoder as a PostgreSQL extension"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:226
+#, no-c-format
+msgid ""
+"#1643, #2076, Upgrade tiger geocoder to support loading tiger 2011 and 2012 "
+"(Regina Obe / Paragon Corporation) Funded by Hunter Systems Group"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:228
+#, no-c-format
+msgid ""
+"GEOMETRYCOLLECTION support for ST_MakeValid (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:229
+#, no-c-format
+msgid "#1709, ST_NotSameAlignmentReason(raster, raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:230
+#, no-c-format
+msgid "#1818, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:231
+#, no-c-format
+msgid "#1856, reverse geocoder rating setting for prefer numbered highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:232
+#, no-c-format
+msgid "ST_PixelOfValue (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:233
+#, no-c-format
+msgid "Casts to/from PostgreSQL geotypes (point/path/polygon)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:234
+#, no-c-format
+msgid ""
+"Added geomval array variant of ST_SetValues() to set many pixel values of a "
+"band using a set of geometries and corresponding values in one call (Bborie "
+"Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:237
+#, no-c-format
+msgid ""
+"ST_Tile(raster) to break up a raster into tiles (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:238
+#, no-c-format
+msgid "#1895, new r-tree node splitting algorithm (Alex Korotkov)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:239
+#, no-c-format
+msgid "#2011, ST_DumpValues to output raster as array (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:240
+#, no-c-format
+msgid ""
+"#2018, ST_Distance support for CircularString, CurvePolygon, MultiCurve, "
+"MultiSurface, CompoundCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:242
+#, no-c-format
+msgid "#2030, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:243
+#, no-c-format
+msgid ""
+"#2193, Utilize PAGC parser as drop in replacement for tiger normalizer "
+"(Steve Woodbridge, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:245
+#, no-c-format
+msgid "#2210, ST_MinConvexHull(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:246
+#, no-c-format
+msgid "lwgeom_from_geojson in liblwgeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:247
+#, no-c-format
+msgid "#1687, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:248
+#, no-c-format
+msgid "#2228, TopoJSON output for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:249
+#, no-c-format
+msgid "#2123, ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:250
+#, no-c-format
+msgid "#613, ST_SetGeoReference with numerical parameters instead of text"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:251
+#, no-c-format
+msgid "#2276, ST_AddBand(raster) variant for out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:252
+#, no-c-format
+msgid "#2280, ST_Summary(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:253
+#, no-c-format
+msgid "#2163, ST_TPI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:254
+#, no-c-format
+msgid "#2164, ST_TRI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:255
+#, no-c-format
+msgid "#2302, ST_Roughness for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:256
+#, no-c-format
+msgid "#2290, ST_ColorMap(raster) to generate RGBA bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:257
+#, no-c-format
+msgid ""
+"#2254, Add SFCGAL backend support. (Backend selection throught postgis."
+"backend var) Functions available both throught GEOS or SFCGAL: "
+"ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, ST_Distance, "
+"ST_3DDistance New functions available only with SFCGAL backend: "
+"ST_3DIntersection, ST_Tesselate, ST_3DArea, ST_Extrude, ST_ForceLHR "
+"ST_Orientation, ST_Minkowski, ST_StraightSkeleton postgis_sfcgal_version New "
+"function available in PostGIS: ST_ForceSFS (Olivier Courtin and Hugo "
+"Mercier / Oslandia)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:272
+#, no-c-format
+msgid ""
+"For detail of new functions and function improvements, please refer to <xref "
+"linkend=\"NewFunctions_2_1\"/>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:273
+#, no-c-format
+msgid ""
+"Much faster raster ST_Union, ST_Clip and many more function additions "
+"operations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:274
+#, no-c-format
+msgid ""
+"For geometry/geography better planner selectivity and a lot more functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:276
+#, no-c-format
+msgid ""
+"#823, tiger geocoder: Make loader_generate_script download portion less "
+"greedy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:278
+#, no-c-format
+msgid ""
+"#826, raster2pgsql no longer defaults to padding tiles. Flag -P can be used "
+"to pad tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:280
+#, no-c-format
+msgid "#1363, ST_AddBand(raster, ...) array version rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:281
+#, no-c-format
+msgid "#1364, ST_Union(raster, ...) aggregate function rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:282
+#, no-c-format
+msgid "#1655, Additional default values for parameters of ST_Slope"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:283
+#, no-c-format
+msgid "#1661, Add aggregate variant of ST_SameAlignment"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:284
+#, no-c-format
+msgid "#1719, Add support for Point and GeometryCollection ST_MakeValid inputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:285
+#, no-c-format
+msgid "#1780, support ST_GeoHash for geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:286
+#, no-c-format
+msgid "#1796, Big performance boost for distance calculations in geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:287
+#, no-c-format
+msgid "#1802, improved function interruptibility."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:288
+#, no-c-format
+msgid ""
+"#1823, add parameter in ST_AsGML to use id column for GML 3 output (become "
+"mandatory since GML 3.2.1)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:290
+#, no-c-format
+msgid ""
+"#1856, tiger geocoder: reverse geocoder rating setting for prefer numbered "
+"highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:292
+#, no-c-format
+msgid "#1938, Refactor basic ST_AddBand to add multiple new bands in one call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:293
+#, no-c-format
+msgid ""
+"#1978, wrong answer when calculating length of a closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:295 release_notes.xml:505
+#, no-c-format
+msgid ""
+"#1989, Preprocess input geometry to just intersection with raster to be "
+"clipped"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:297
+#, no-c-format
+msgid ""
+"#2021, Added multi-band support to ST_Union(raster, ...) aggregate function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:298
+#, no-c-format
+msgid "#2006, better support of ST_Area(geography) over poles and dateline"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:299
+#, no-c-format
+msgid "#2065, ST_Clip(raster, ...) now a C function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:300
+#, no-c-format
+msgid "#2069, Added parameters to ST_Tile(raster) to control padding of tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:301
+#, no-c-format
+msgid ""
+"#2078, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide "
+"solution to handling tiles in a coverage"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:303
+#, no-c-format
+msgid "#2097, Added RANGE uniontype option for ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:304
+#, no-c-format
+msgid ""
+"#2105, Added ST_Transform(raster) variant for aligning output to reference "
+"raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:306
+#, no-c-format
+msgid ""
+"#2119, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(), and "
+"ST_SnapToGrid() no longer require an SRID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:308 release_notes.xml:478
+#, no-c-format
+msgid ""
+"#2141, More verbose output when constraints fail to be added to a raster "
+"column"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:310
+#, no-c-format
+msgid "#2143, Changed blocksize constraint of raster to allow multiple values"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:311
+#, no-c-format
+msgid "#2148, Addition of coverage_tile constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:312
+#, no-c-format
+msgid "#2149, Addition of spatially_unique constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:313
+#, no-c-format
+msgid ""
+"TopologySummary output now includes unregistered layers and a count of "
+"missing TopoGeometry objects from their natural layer."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:315
+#, no-c-format
+msgid ""
+"ST_HillShade(), ST_Aspect() and ST_Slope() have one new optional parameter "
+"to interpolate NODATA pixels before running the operation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:318
+#, no-c-format
+msgid ""
+"Point variant of ST_SetValue(raster) is now a wrapper around geomval variant "
+"of ST_SetValues(rast)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:320
+#, no-c-format
+msgid "Proper support for raster band's isnodata flag in core API and loader."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:321
+#, no-c-format
+msgid "Additional default values for parameters of ST_Aspect and ST_HillShade"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:322
+#, no-c-format
+msgid ""
+"#2178, ST_Summary now advertises presence of known srid with an [S] flag"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:323
+#, no-c-format
+msgid "#2202, Make libjson-c optional (--without-json configure switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:324
+#, no-c-format
+msgid "#2213, Add support libjson-c 0.10+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:325
+#, no-c-format
+msgid "#2231, raster2pgsql supports user naming of filename column with -n"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:326
+#, no-c-format
+msgid "#2200, ST_Union(raster, uniontype) unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:327
+#, no-c-format
+msgid ""
+"#2264, postgis_restore.pl support for restoring into databases with postgis "
+"in a custom schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:329
+#, no-c-format
+msgid ""
+"#2244, emit warning when changing raster's georeference if raster has out-db "
+"bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:331
+#, no-c-format
+msgid ""
+"#2222, add parameter OutAsIn to flag whether ST_AsBinary should return out-"
+"db bands as in-db bands"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:335
+#, no-c-format
+msgid "Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:336 release_notes.xml:580
+#, no-c-format
+msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:337 release_notes.xml:581
+#, no-c-format
+msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:338
+#, no-c-format
+msgid "#1870, align the docs and actual behavior of raster's ST_Intersects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:339 release_notes.xml:587
+#, no-c-format
+msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:340 release_notes.xml:590
+#, no-c-format
+msgid ""
+"#1875, ST_SummaryStats returns NULL for all parameters except count when "
+"count is zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:342
+#, no-c-format
+msgid "#1932, fix raster2pgsql of syntax for index tablespaces"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:343 release_notes.xml:498
+#, no-c-format
+msgid "#1936, ST_GeomFromGML on CurvePolygon causes server crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:344
+#, no-c-format
+msgid ""
+"#1939, remove custom data types: summarystats, histogram, quantile, "
+"valuecount"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:346
+#, no-c-format
+msgid "#1951, remove crash on zero-length linestrings"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:347 release_notes.xml:500
+#, no-c-format
+msgid "#1957, ST_Distance to a one-point LineString returns NULL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:348 release_notes.xml:501
+#, no-c-format
+msgid "#1976, Geography point-in-ring code overhauled for more reliability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:349
+#, no-c-format
+msgid "#1981, cleanup of unused variables causing warnings with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:350 release_notes.xml:508
+#, no-c-format
+msgid "#1996, support POINT EMPTY in GeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:351
+#, no-c-format
+msgid "#2062, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:352 release_notes.xml:519
+#, no-c-format
+msgid "#2057, Fixed linking issue for raster2psql to libpq"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:353
+#, no-c-format
+msgid "#2077, Fixed incorrect values returning from ST_Hillshade()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:354 release_notes.xml:512
+#, no-c-format
+msgid "#2019, ST_FlipCoordinates does not update bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:355
+#, no-c-format
+msgid "#2100, ST_AsRaster may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:356 release_notes.xml:464
+#, no-c-format
+msgid "#2126, Better handling of empty rasters from ST_ConvexHull()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:357 release_notes.xml:425
+#, no-c-format
+msgid "#2165, ST_NumPoints regression failure with CircularString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:358 release_notes.xml:426
+#, no-c-format
+msgid "#2168, ST_Distance is not always commutative"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:359
+#, no-c-format
+msgid "#2182, Fix issue with outdb rasters with no SRID and ST_Resize"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:360 release_notes.xml:472
+#, no-c-format
+msgid ""
+"#2188, Fix function parameter value overflow that caused problems when "
+"copying data from a GDAL dataset"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:362
+#, no-c-format
+msgid ""
+"#2198, Fix incorrect dimensions used when generating bands of out-db rasters "
+"in ST_Tile()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:364 release_notes.xml:428
+#, no-c-format
+msgid "#2201, ST_GeoHash wrong on boundaries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:365
+#, no-c-format
+msgid ""
+"#2203, Changed how rasters with unknown SRID and default geotransform are "
+"handled when passing to GDAL Warp API"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:367
+#, no-c-format
+msgid ""
+"#2215, Fixed raster exclusion constraint for conflicting name of implicit "
+"index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:369
+#, no-c-format
+msgid ""
+"#2251, Fix bad dimensions when rescaling rasters with default geotransform "
+"matrix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:371
+#, no-c-format
+msgid ""
+"#2133, Fix performance regression in expression variant of ST_MapAlgebra"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:372 release_notes.xml:429
+#, no-c-format
+msgid ""
+"#2257, GBOX variables not initialized when testing with empty geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:373 release_notes.xml:430
+#, no-c-format
+msgid "#2271, Prevent parallel make of raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:374
+#, no-c-format
+msgid "#2282, Fix call to undefined function nd_stats_to_grid() in debug mode"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:375 release_notes.xml:433
+#, no-c-format
+msgid "#2307, ST_MakeValid outputs invalid geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:376
+#, no-c-format
+msgid "#2309, Remove confusing INFO message when trying to get SRS info"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:377
+#, no-c-format
+msgid "#2336, FIPS 20 (KS) causes wildcard expansion to wget all files"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:378
+#, no-c-format
+msgid "#2348, Provide raster upgrade path for 2.0 to 2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:379 release_notes.xml:434
+#, no-c-format
+msgid "#2351, st_distance between geographies wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:380
+#, no-c-format
+msgid "#2359, Fix handling of schema name when adding overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:381 release_notes.xml:436
+#, no-c-format
+msgid "#2371, Support GEOS versions with more than 1 digit in micro"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:382
+#, no-c-format
+msgid "#2383, Remove unsafe use of \\' from raster warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:383
+#, no-c-format
+msgid "#2384, Incorrect variable datatypes for ST_Neighborhood"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:385 release_notes.xml:453
+#, no-c-format
+msgid "Known Issues"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:386 release_notes.xml:454
+#, no-c-format
+msgid ""
+"#2111, Raster bands can only reference the first 256 bands of out-db rasters"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:391
+#, no-c-format
+msgid "Release 2.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:393
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.4 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:396
+#, no-c-format
+msgid "#2494, avoid memcpy in GIST index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:399
+#, no-c-format
+msgid "#2528, Fix memory leak in ST_Split / lwline_split_by_line"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:400
+#, no-c-format
+msgid "#2532, Add missing raster/geometry commutator operators"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:401
+#, no-c-format
+msgid "#2533, Remove duplicated signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:405
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:407
+#, no-c-format
+msgid "#2619, Empty ring array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:412
+#, no-c-format
+msgid ""
+"##2514, Change raster license from GPL v3+ to v2+, allowing distribution of "
+"PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:417
+#, no-c-format
+msgid "Release 2.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:418
+#, no-c-format
+msgid "Release date: 2013/09/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:419
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.3 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:422
+#, no-c-format
+msgid "#2110, Equality operator between EMPTY and point on origin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:423
+#, no-c-format
+msgid "Allow adding points at precision distance with TopoGeo_addPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:424
+#, no-c-format
+msgid "#1968, Fix missing edge from toTopoGeom return"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:427
+#, no-c-format
+msgid "#2186, gui progress bar updates too frequent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:431
+#, no-c-format
+msgid "#2267, Server crash from analyze table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:432
+#, no-c-format
+msgid "#2277, potential segfault removed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:435
+#, no-c-format
+msgid "#2359, Incorrect handling of schema for overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:437
+#, no-c-format
+msgid "#2372, Cannot parse space-padded KML coordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:438
+#, no-c-format
+msgid "Fix build with systemwide liblwgeom installed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:439
+#, no-c-format
+msgid "#2383, Fix unsafe use of \\' in warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:440
+#, no-c-format
+msgid "#2410, Fix segmentize of collinear curve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:441
+#, no-c-format
+msgid "#2412, ST_LineToCurve support for lines with less than 4 vertices"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:442
+#, no-c-format
+msgid "#2415, ST_Multi support for COMPOUNDCURVE and CURVEPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:443
+#, no-c-format
+msgid "#2420, ST_LineToCurve: require at least 8 edges to define a full circle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:444
+#, no-c-format
+msgid "#2423, ST_LineToCurve: require all arc edges to form the same angle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:445
+#, no-c-format
+msgid "#2424, ST_CurveToLine: add support for COMPOUNDCURVE in MULTICURVE"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:446
+#, no-c-format
+msgid "#2427, Make sure to retain first point of curves on ST_CurveToLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:450
+#, no-c-format
+msgid "#2269, Avoid uselessly detoasting full geometries on ANALYZE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:459
+#, no-c-format
+msgid "Release 2.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:460
+#, no-c-format
+msgid "Release date: 2013/03/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:461
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.2 release. If you are using PostGIS 2.0+ a soft upgrade is required. For "
+"users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:465
+#, no-c-format
+msgid "#2134, Make sure to process SRS before passing it off to GDAL functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:466
+#, no-c-format
+msgid "Fix various memory leaks in liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:467
+#, no-c-format
+msgid ""
+"#2173, Fix robustness issue in splitting a line with own vertex also "
+"affecting topology building (#2172)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:468
+#, no-c-format
+msgid "#2174, Fix usage of wrong function lwpoly_free()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:469
+#, no-c-format
+msgid "#2176, Fix robustness issue with ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:470
+#, no-c-format
+msgid "#2184, Properly copy topologies with Z value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:471
+#, no-c-format
+msgid "postgis_restore.pl support for mixed case geometry column name in dumps"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:473
+#, no-c-format
+msgid "#2216, More memory errors in MultiPolygon GeoJSON parsing (with holes)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:474
+#, no-c-format
+msgid "Fix Memory leak in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:479
+#, no-c-format
+msgid "Speedup ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:483
+#, no-c-format
+msgid "Release 2.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:484
+#, no-c-format
+msgid "Release date: 2012/12/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:485
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:488
+#, no-c-format
+msgid ""
+"#1287, Drop of \"gist_geometry_ops\" broke a few clients package of "
+"legacy_gist.sql for these cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:490
+#, no-c-format
+msgid "#1391, Errors during upgrade from 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:491
+#, no-c-format
+msgid "#1828, Poor selectivity estimate on ST_DWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:492
+#, no-c-format
+msgid "#1838, error importing tiger/line data"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:493
+#, no-c-format
+msgid ""
+"#1869, ST_AsBinary is not unique added to legacy_minor/legacy.sql scripts"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:494
+#, no-c-format
+msgid "#1885, Missing field from tabblock table in tiger2010 census_loader.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:495
+#, no-c-format
+msgid "#1891, Use LDFLAGS environment when building liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:496
+#, no-c-format
+msgid "#1900, Fix pgsql2shp for big-endian systems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:497
+#, no-c-format
+msgid "#1932, Fix raster2pgsql for invalid syntax for setting index tablespace"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:499
+#, no-c-format
+msgid "#1955, ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:502
+#, no-c-format
+msgid "#1978, wrong answer calculating length of closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:503
+#, no-c-format
+msgid "#1981, Remove unused but set variables as found with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:504
+#, no-c-format
+msgid "#1987, Restore 1.5.x behaviour of ST_Simplify"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:507
+#, no-c-format
+msgid "#1991, geocode really slow on PostgreSQL 9.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:509
+#, no-c-format
+msgid "#1998, Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:510
+#, no-c-format
+msgid ""
+"#2001, ST_CurveToLine has no effect if the geometry doesn't actually contain "
+"an arc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:511
+#, no-c-format
+msgid "#2015, ST_IsEmpty('POLYGON(EMPTY)') returns False"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:513
+#, no-c-format
+msgid "#2025, Fix side location conflict at TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:514
+#, no-c-format
+msgid "#2026, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:515
+#, no-c-format
+msgid "#2033, Fix adding a splitting point into a 2.5d topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:516
+#, no-c-format
+msgid "#2051, Fix excess of precision in ST_AsGeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:517
+#, no-c-format
+msgid "#2052, Fix buffer overflow in lwgeom_to_geojson"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:518
+#, no-c-format
+msgid "#2056, Fixed lack of SRID check of raster and geometry in ST_SetValue()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:520
+#, no-c-format
+msgid "#2060, Fix \"dimension\" check violation by GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:521
+#, no-c-format
+msgid ""
+"#2072, Removed outdated checks preventing ST_Intersects(raster) from working "
+"on out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:523
+#, no-c-format
+msgid "#2077, Fixed incorrect answers from ST_Hillshade(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:524
+#, no-c-format
+msgid ""
+"#2092, Namespace issue with ST_GeomFromKML,ST_GeomFromGML for libxml 2.8+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:525
+#, no-c-format
+msgid "#2099, Fix double free on exception in ST_OffsetCurve"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:7
+#: release_notes.xml:526
 #, no-c-format
-msgid "Release date: 2012/06/22"
+msgid "#2100, ST_AsRaster() may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:527
+#, no-c-format
+msgid "#2108, Ensure ST_Line_Interpolate_Point always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:528
+#, no-c-format
+msgid "#2109, Ensure ST_Centroid always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:529
+#, no-c-format
+msgid "#2117, Ensure ST_PointOnSurface always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:530
+#, no-c-format
+msgid "#2129, Fix SRID in ST_Homogenize output with collection input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:531
+#, no-c-format
+msgid "#2130, Fix memory error in MultiPolygon GeoJson parsing"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:8
+#: release_notes.xml:533
+#, no-c-format
+msgid "Update URL of Maven jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:537
 #, no-c-format
 msgid ""
-"This is a bug fix release, addressing issues that have been filed since the "
-"2.0.0 release."
+"#1581, ST_Clip(raster, ...) no longer imposes NODATA on a band if the "
+"corresponding band from the source raster did not have NODATA"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:539
+#, no-c-format
+msgid ""
+"#1928, Accept array properties in GML input multi-geom input (Kashif Rasul "
+"and Shoaib Burq / SpacialDB)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:541
+#, no-c-format
+msgid "#2082, Add indices on start_node and end_node of topology edge tables"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:542
+#, no-c-format
+msgid "#2087, Speedup topology.GetRingEdges using a recursive CTE"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:10 release_notes.xml:165 release_notes.xml:179
-#: release_notes.xml:217 release_notes.xml:255 release_notes.xml:286
+#: release_notes.xml:546
 #, no-c-format
-msgid "Bug Fixes"
+msgid "Release 2.0.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:11
+#: release_notes.xml:547
+#, no-c-format
+msgid "Release date: 2012/06/22"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:548
+#, no-c-format
+msgid ""
+"This is a bug fix release, addressing issues that have been filed since the "
+"2.0.0 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:551
 #, no-c-format
 msgid "#1264, fix st_dwithin(geog, geog, 0)."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:12
+#: release_notes.xml:552
 #, no-c-format
 msgid "#1468 shp2pgsql-gui table column schema get shifted"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:13
+#: release_notes.xml:553
 #, no-c-format
 msgid "#1694, fix building with clang. (vince)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:14
+#: release_notes.xml:554
 #, no-c-format
 msgid "#1708, improve restore of pre-PostGIS 2.0 backups."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:15
+#: release_notes.xml:555
 #, no-c-format
 msgid "#1714, more robust handling of high topology tolerance."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:16
+#: release_notes.xml:556
 #, no-c-format
 msgid "#1755, ST_GeographyFromText support for higher dimensions."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:17
+#: release_notes.xml:557
 #, no-c-format
 msgid "#1759, loading transformed shapefiles in raster enabled db."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:18
+#: release_notes.xml:558
 #, no-c-format
 msgid ""
 "#1761, handling of subdatasets in NetCDF, HDF4 and HDF5 in raster2pgsql."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:19
+#: release_notes.xml:559
 #, no-c-format
 msgid "#1763, topology.toTopoGeom use with custom search_path."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:20
+#: release_notes.xml:560
 #, no-c-format
 msgid "#1766, don't let ST_RemEdge* destroy peripheral TopoGeometry objects."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:21
+#: release_notes.xml:561
 #, no-c-format
 msgid "#1774, Clearer error on setting an edge geometry to an invalid one."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:22
+#: release_notes.xml:562
 #, no-c-format
 msgid "#1775, ST_ChangeEdgeGeom collision detection with 2-vertex target."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:23
+#: release_notes.xml:563
 #, no-c-format
 msgid "#1776, fix ST_SymDifference(empty, geom) to return geom."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:24
+#: release_notes.xml:564
 #, no-c-format
 msgid "#1779, install SQL comment files."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:25
+#: release_notes.xml:565
 #, no-c-format
 msgid "#1782, fix spatial reference string handling in raster."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:26
+#: release_notes.xml:566
 #, no-c-format
 msgid "#1789, fix false edge-node crossing report in ValidateTopology."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:27
+#: release_notes.xml:567
 #, no-c-format
 msgid "#1790, fix toTopoGeom handling of duplicated primitives."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:28
+#: release_notes.xml:568
 #, no-c-format
 msgid "#1791, fix ST_Azimuth with very close but distinct points."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:29
+#: release_notes.xml:569
 #, no-c-format
 msgid "#1797, fix (ValidateTopology(xxx)).* syntax calls."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:30
+#: release_notes.xml:570
 #, no-c-format
 msgid "#1805, put back the 900913 SRID entry."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:31
+#: release_notes.xml:571
 #, no-c-format
 msgid "#1813, Only show readable relations in metadata tables."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:32
+#: release_notes.xml:572
 #, no-c-format
 msgid ""
 "#1819, fix floating point issues with ST_World2RasterCoord and "
@@ -190,81 +2336,63 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:34
+#: release_notes.xml:574
 #, no-c-format
 msgid "#1820 compilation on 9.2beta1."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:35
+#: release_notes.xml:575
 #, no-c-format
 msgid "#1822, topology load on PostgreSQL 9.2beta1."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:36
+#: release_notes.xml:576
 #, no-c-format
 msgid "#1825, fix prepared geometry cache lookup"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:37
+#: release_notes.xml:577
 #, no-c-format
 msgid "#1829, fix uninitialized read in GeoJSON parser"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:38
+#: release_notes.xml:578
 #, no-c-format
 msgid ""
 "#1834, revise postgis extension to only backup user specified spatial_ref_sys"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:40
-#, no-c-format
-msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:41
-#, no-c-format
-msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:42
+#: release_notes.xml:582
 #, no-c-format
 msgid "#1851, fix spatial_ref_system parameters for EPSG:3844"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:43
+#: release_notes.xml:583
 #, no-c-format
 msgid "#1857, fix failure to detect endpoint mismatch in ST_AddEdge*Face*"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:44
+#: release_notes.xml:584
 #, no-c-format
 msgid ""
 "#1865, data loss in postgis_restore.pl when data rows have leading dashes."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:46
+#: release_notes.xml:586
 #, no-c-format
 msgid "#1867, catch invalid topology name passed to topogeo_add*"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:47
-#, no-c-format
-msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:48
+#: release_notes.xml:588
 #, no-c-format
 msgid ""
 "#1873, fix ptarray_locate_point to return interpolated Z/M values for on-the-"
@@ -272,72 +2400,57 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:50
-#, no-c-format
-msgid ""
-"#1875, ST_SummaryStats returns NULL for all parameters except count when "
-"count is zero"
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:52
+#: release_notes.xml:592
 #, no-c-format
 msgid "#1881, shp2pgsql-gui -- editing a field sometimes triggers removing row"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:54
+#: release_notes.xml:594
 #, no-c-format
 msgid ""
 "#1883, Geocoder install fails trying to run create_census_base_tables() "
 "(Brian Panulla)"
 msgstr ""
 
-#. Tag: title
-#: release_notes.xml:58 release_notes.xml:148 release_notes.xml:349
-#: release_notes.xml:404
-#, no-c-format
-msgid "Enhancements"
-msgstr ""
-
 #. Tag: para
-#: release_notes.xml:59
+#: release_notes.xml:599
 #, no-c-format
 msgid "More detailed exception message from topology editing functions."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:60
+#: release_notes.xml:600
 #, no-c-format
 msgid "#1786, improved build dependencies"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:61
+#: release_notes.xml:601
 #, no-c-format
 msgid "#1806, speedup of ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:62
+#: release_notes.xml:602
 #, no-c-format
 msgid "#1812, Add lwgeom_normalize in LIBLWGEOM for more stable testing."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:66
+#: release_notes.xml:606
 #, no-c-format
 msgid "Release 2.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:67
+#: release_notes.xml:607
 #, no-c-format
 msgid "Release date: 2012/04/03"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:68
+#: release_notes.xml:608
 #, no-c-format
 msgid ""
 "This is a major release. A hard upgrade is required. Yes this means a full "
@@ -348,13 +2461,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:72
+#: release_notes.xml:612
 #, no-c-format
 msgid "Testers - Our unsung heroes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:73
+#: release_notes.xml:613
 #, no-c-format
 msgid ""
 "We are most indebted to the numerous members in the PostGIS community who "
@@ -363,7 +2476,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:76
+#: release_notes.xml:616
 #, no-c-format
 msgid ""
 "Below are those who have been most valiant, provided very detailed and "
@@ -371,31 +2484,31 @@ msgid ""
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:80
+#: release_notes.xml:620
 #, no-c-format
 msgid "Andrea Peri - Lots of testing on topology, checking for correctness"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:81
+#: release_notes.xml:621
 #, no-c-format
 msgid "Andreas Forø Tollefsen - raster testing"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:82
+#: release_notes.xml:622
 #, no-c-format
 msgid "Chris English - topology stress testing loader functions"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:83
+#: release_notes.xml:623
 #, no-c-format
 msgid "Salvatore Larosa - topology robustness testing"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:84
+#: release_notes.xml:624
 #, no-c-format
 msgid ""
 "Brian Hamlin - Benchmarking (also experimental experimental branches before "
@@ -404,25 +2517,19 @@ msgid ""
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:89
+#: release_notes.xml:629
 #, no-c-format
 msgid "Mike Pease - Tiger geocoder testing - very detailed reports of issues"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:90
+#: release_notes.xml:630
 #, no-c-format
 msgid "Tom van Tilburg - raster testing"
 msgstr ""
 
-#. Tag: title
-#: release_notes.xml:94
-#, no-c-format
-msgid "Important / Breaking Changes"
-msgstr ""
-
 #. Tag: para
-#: release_notes.xml:95
+#: release_notes.xml:635
 #, no-c-format
 msgid ""
 "#722, #302, Most deprecated functions removed (over 250 functions) (Regina "
@@ -430,13 +2537,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:96
+#: release_notes.xml:636
 #, no-c-format
 msgid "Unknown SRID changed from -1 to 0. (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:97
+#: release_notes.xml:637
 #, no-c-format
 msgid ""
 "-- (most deprecated in 1.2) removed non-ST variants buffer, length, "
@@ -444,7 +2551,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:99
+#: release_notes.xml:639
 #, no-c-format
 msgid ""
 "-- If you have been using deprecated functions CHANGE your apps or suffer "
@@ -452,12 +2559,12 @@ msgid ""
 "supported or it is an internal function. Some constraints in older tables "
 "were built with deprecated functions. If you restore you may need to rebuild "
 "table constraints with populate_geometry_columns(). If you have applications "
-"or tools that rely on deprecated functions, please refer to <link linkend="
-"\"legacy_faq\"></link> for more details."
+"or tools that rely on deprecated functions, please refer to <xref linkend="
+"\"legacy_faq\"/> for more details."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:104
+#: release_notes.xml:644
 #, no-c-format
 msgid ""
 "#944 geometry_columns is now a view instead of a table (Paul Ramsey, Regina "
@@ -466,7 +2573,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:109
+#: release_notes.xml:649
 #, no-c-format
 msgid ""
 "#1081, #1082, #1084, #1088 - Mangement functions support typmod geometry "
@@ -474,7 +2581,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:112
+#: release_notes.xml:652
 #, no-c-format
 msgid ""
 "#1083 probe_geometry_columns(), rename_geometry_table_constraints(), "
@@ -483,28 +2590,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:116
+#: release_notes.xml:656
 #, no-c-format
 msgid "#817 Renaming old 3D functions to the convention ST_3D (Nicklas Avén)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:117
+#: release_notes.xml:657
 #, no-c-format
 msgid ""
 "#548 (sorta), ST_NumGeometries,ST_GeometryN now returns 1 (or the geometry) "
 "instead of null for single geometries (Sandro Santilli, Maxime van Noppen)"
 msgstr ""
 
-#. Tag: title
-#: release_notes.xml:121 release_notes.xml:321 release_notes.xml:385
-#: release_notes.xml:682
-#, no-c-format
-msgid "New Features"
-msgstr ""
-
 #. Tag: ulink
-#: release_notes.xml:122
+#: release_notes.xml:662
 #, no-c-format
 msgid ""
 "KNN Gist index based centroid (<->) and box (<#>) distance "
@@ -512,7 +2612,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:123
+#: release_notes.xml:663
 #, no-c-format
 msgid ""
 "Support for TIN and PolyHedralSurface and enhancement of many functions to "
@@ -520,7 +2620,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:124
+#: release_notes.xml:664
 #, no-c-format
 msgid ""
 "<ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/PlanningAndFunding"
@@ -532,14 +2632,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:127
+#: release_notes.xml:667
 #, no-c-format
 msgid ""
 "Making spatial indexes 3D aware - in progress (Paul Ramsey, Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:128
+#: release_notes.xml:668
 #, no-c-format
 msgid ""
 "Topology support improved (more functions), documented, testing (Sandro "
@@ -548,13 +2648,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:129
+#: release_notes.xml:669
 #, no-c-format
 msgid "3D relationship and measurement support functions (Nicklas Avén)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:130
+#: release_notes.xml:670
 #, no-c-format
 msgid ""
 "ST_3DDistance, ST_3DClosestPoint, ST_3DIntersects, ST_3DShortestLine and "
@@ -562,37 +2662,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:131
+#: release_notes.xml:671
 #, no-c-format
 msgid "N-Dimensional spatial indexes (Paul Ramsey / OpenGeo)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:132
+#: release_notes.xml:672
 #, no-c-format
 msgid "ST_Split (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:133
+#: release_notes.xml:673
 #, no-c-format
 msgid "ST_IsValidDetail (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:134
+#: release_notes.xml:674
 #, no-c-format
 msgid "ST_MakeValid (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:135
+#: release_notes.xml:675
 #, no-c-format
 msgid "ST_RemoveRepeatedPoints (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:136
+#: release_notes.xml:676
 #, no-c-format
 msgid ""
 "ST_GeometryN and ST_NumGeometries support for non-collections (Sandro "
@@ -600,61 +2700,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:137
+#: release_notes.xml:677
 #, no-c-format
 msgid "ST_IsCollection (Sandro Santilli, Maxime van Noppen)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:138
+#: release_notes.xml:678
 #, no-c-format
 msgid "ST_SharedPaths (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:139
+#: release_notes.xml:679
 #, no-c-format
 msgid "ST_Snap (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:140
+#: release_notes.xml:680
 #, no-c-format
 msgid "ST_RelateMatch (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:141
+#: release_notes.xml:681
 #, no-c-format
 msgid "ST_ConcaveHull (Regina Obe and Leo Hsu / Paragon Corporation)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:142
+#: release_notes.xml:682
 #, no-c-format
 msgid "ST_UnaryUnion (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:143
+#: release_notes.xml:683
 #, no-c-format
 msgid "ST_AsX3D (Regina Obe / Arrival 3D funding)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:144
+#: release_notes.xml:684
 #, no-c-format
 msgid "ST_OffsetCurve (Sandro Santilli, Rafal Magda)"
 msgstr ""
 
 #. Tag: ulink
-#: release_notes.xml:145
+#: release_notes.xml:685
 #, no-c-format
 msgid "ST_GeomFromGeoJSON (Kashif Rasul, Paul Ramsey / Vizzuality funding)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:149
+#: release_notes.xml:689
 #, no-c-format
 msgid ""
 "Made shape file loader tolerant of truncated multibyte values found in some "
@@ -662,7 +2762,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:150
+#: release_notes.xml:690
 #, no-c-format
 msgid ""
 "Lots of bug fixes and enhancements to shp2pgsql Beefing up regression tests "
@@ -671,14 +2771,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:154
+#: release_notes.xml:694
 #, no-c-format
 msgid ""
 "pgsql2shp conversion from predefined list (Loic Dachary / Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:156
+#: release_notes.xml:696
 #, no-c-format
 msgid ""
 "Shp-pgsql GUI loader - support loading multiple files at a time. (Mark "
@@ -686,7 +2786,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:157
+#: release_notes.xml:697
 #, no-c-format
 msgid ""
 "Extras - upgraded tiger_geocoder from using old TIGER format to use new "
@@ -694,7 +2794,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:158
+#: release_notes.xml:698
 #, no-c-format
 msgid ""
 "Extras - revised tiger_geocoder to work with TIGER census 2010 data, "
@@ -705,13 +2805,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:161
+#: release_notes.xml:701
 #, no-c-format
 msgid "Overall Documentation proofreading and corrections. (Kasif Rasul)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:162
+#: release_notes.xml:702
 #, no-c-format
 msgid ""
 "Cleanup PostGIS JDBC classes, revise to use Maven build. (Maria Arias de "
@@ -719,19 +2819,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:166
+#: release_notes.xml:706
 #, no-c-format
 msgid "#1335 ST_AddPoint returns incorrect result on Linux (Even Rouault)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:169
+#: release_notes.xml:709
 #, no-c-format
 msgid "Release specific credits"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:170
+#: release_notes.xml:710
 #, no-c-format
 msgid ""
 "We thank <ulink url=\"http://blog.opengeo.org/2012/02/01/it-goes-up-to-2-0/"
@@ -742,19 +2842,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:175
+#: release_notes.xml:715
 #, no-c-format
 msgid "Release 1.5.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:176
+#: release_notes.xml:716
 #, no-c-format
 msgid "Release date: 2012/05/07"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:177
+#: release_notes.xml:717
 #, no-c-format
 msgid ""
 "This is a bug fix release, addressing issues that have been filed since the "
@@ -762,57 +2862,57 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:180
+#: release_notes.xml:720
 #, no-c-format
 msgid "#547, ST_Contains memory problems (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:181
+#: release_notes.xml:721
 #, no-c-format
 msgid "#621, Problem finding intersections with geography (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:182
+#: release_notes.xml:722
 #, no-c-format
 msgid "#627, PostGIS/PostgreSQL process die on invalid geometry (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:183
+#: release_notes.xml:723
 #, no-c-format
 msgid "#810, Increase accuracy of area calculation (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:184
+#: release_notes.xml:724
 #, no-c-format
 msgid ""
 "#852, improve spatial predicates robustness (Sandro Santilli, Nicklas Avén)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:185
+#: release_notes.xml:725
 #, no-c-format
 msgid ""
 "#877, ST_Estimated_Extent returns NULL on empty tables (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:186
+#: release_notes.xml:726
 #, no-c-format
 msgid "#1028, ST_AsSVG kills whole postgres server when fails (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:187
+#: release_notes.xml:727
 #, no-c-format
 msgid "#1056, Fix boxes of arcs and circle stroking code (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:188
+#: release_notes.xml:728
 #, no-c-format
 msgid ""
 "#1121, populate_geometry_columns using deprecated functions (Regin Obe, Paul "
@@ -820,133 +2920,133 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:189
+#: release_notes.xml:729
 #, no-c-format
 msgid "#1135, improve testsuite predictability (Andreas 'ads' Scherbaum)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:190
+#: release_notes.xml:730
 #, no-c-format
 msgid "#1146, images generator crashes (bronaugh)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:191
+#: release_notes.xml:731
 #, no-c-format
 msgid "#1170, North Pole intersection fails (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:192
+#: release_notes.xml:732
 #, no-c-format
 msgid "#1179, ST_AsText crash with bad value (kjurka)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:193
+#: release_notes.xml:733
 #, no-c-format
 msgid "#1184, honour DESTDIR in documentation Makefile (Bryce L Nordgren)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:194
+#: release_notes.xml:734
 #, no-c-format
 msgid "#1227, server crash on invalid GML"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:195
+#: release_notes.xml:735
 #, no-c-format
 msgid "#1252, SRID appearing in WKT (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:196
+#: release_notes.xml:736
 #, no-c-format
 msgid "#1264, st_dwithin(g, g, 0) doesn't work (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:197
+#: release_notes.xml:737
 #, no-c-format
 msgid "#1344, allow exporting tables with invalid geometries (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:198
+#: release_notes.xml:738
 #, no-c-format
 msgid "#1389, wrong proj4text for SRID 31300 and 31370 (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:199
+#: release_notes.xml:739
 #, no-c-format
 msgid "#1406, shp2pgsql crashes when loading into geography (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:200
+#: release_notes.xml:740
 #, no-c-format
 msgid "#1595, fixed SRID redundancy in ST_Line_SubString (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:201
+#: release_notes.xml:741
 #, no-c-format
 msgid "#1596, check SRID in UpdateGeometrySRID (Mike Toews, Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:202
+#: release_notes.xml:742
 #, no-c-format
 msgid "#1602, fix ST_Polygonize to retain Z (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:203
+#: release_notes.xml:743
 #, no-c-format
 msgid "#1697, fix crash with EMPTY entries in GiST index (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:204
+#: release_notes.xml:744
 #, no-c-format
 msgid "#1772, fix ST_Line_Locate_Point with collapsed input (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:205
+#: release_notes.xml:745
 #, no-c-format
 msgid "#1799, Protect ST_Segmentize from max_length=0 (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:206
+#: release_notes.xml:746
 #, no-c-format
 msgid "Alter parameter order in 900913 (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:207
+#: release_notes.xml:747
 #, no-c-format
 msgid "Support builds with \"gmake\" (Greg Troxel)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:212
+#: release_notes.xml:752
 #, no-c-format
 msgid "Release 1.5.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:213
+#: release_notes.xml:753
 #, no-c-format
 msgid "Release date: 2011/06/25"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:214
+#: release_notes.xml:754
 #, no-c-format
 msgid ""
 "This is a bug fix release, addressing issues that have been filed since the "
@@ -955,7 +3055,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:218
+#: release_notes.xml:758
 #, no-c-format
 msgid ""
 "#1056, produce correct bboxes for arc geometries, fixes index errors (Paul "
@@ -963,7 +3063,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:220
+#: release_notes.xml:760
 #, no-c-format
 msgid ""
 "#1007, ST_IsValid crash fix requires GEOS 3.3.0+ or 3.2.3+ (Sandro Santilli, "
@@ -971,7 +3071,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:222
+#: release_notes.xml:762
 #, no-c-format
 msgid ""
 "#940, support for PostgreSQL 9.1 beta 1 (Regina Obe, Paul Ramsey, patch "
@@ -979,7 +3079,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:224
+#: release_notes.xml:764
 #, no-c-format
 msgid ""
 "#845, ST_Intersects precision error (Sandro Santilli, Nicklas Avén) Reported "
@@ -987,31 +3087,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:226
+#: release_notes.xml:766
 #, no-c-format
 msgid "#884, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:227
+#: release_notes.xml:767
 #, no-c-format
 msgid "#779, shp2pgsql -S option seems to fail on points (Jeff Adams)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:228
+#: release_notes.xml:768
 #, no-c-format
 msgid "#666, ST_DumpPoints is not null safe (Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:229
+#: release_notes.xml:769
 #, no-c-format
 msgid "#631, Update NZ projections for grid transformation support (jpalmer)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:230
+#: release_notes.xml:770
 #, no-c-format
 msgid ""
 "#630, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson) "
@@ -1019,26 +3119,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:232
+#: release_notes.xml:772
 #, no-c-format
 msgid "#624, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:233
+#: release_notes.xml:773
 #, no-c-format
 msgid ""
 "#609, Bad source code in manual section 5.2 Java Clients (simoc, Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:234
+#: release_notes.xml:774
 #, no-c-format
 msgid "#604, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:235
+#: release_notes.xml:775
 #, no-c-format
 msgid ""
 "#573 ST_Union fails on a group of linestrings Not a PostGIS bug, fixed in "
@@ -1046,7 +3146,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:237
+#: release_notes.xml:777
 #, no-c-format
 msgid ""
 "#457 ST_CollectionExtract returns non-requested type (Nicklas Avén, Paul "
@@ -1054,13 +3154,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:239
+#: release_notes.xml:779
 #, no-c-format
 msgid "#441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:240
+#: release_notes.xml:780
 #, no-c-format
 msgid ""
 "#411 Ability to backup invalid geometries (Sando Santilli) Reported by "
@@ -1068,13 +3168,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:242
+#: release_notes.xml:782
 #, no-c-format
 msgid "#409 ST_AsSVG - degraded (Olivier Courtin) Reported by Sdikiy"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:244
+#: release_notes.xml:784
 #, no-c-format
 msgid ""
 "#373 Documentation syntax error in hard upgrade (Paul Ramsey) Reported by "
@@ -1082,19 +3182,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:250
+#: release_notes.xml:790
 #, no-c-format
 msgid "Release 1.5.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:251
+#: release_notes.xml:791
 #, no-c-format
 msgid "Release date: 2010/09/27"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:252
+#: release_notes.xml:792
 #, no-c-format
 msgid ""
 "This is a bug fix release, addressing issues that have been filed since the "
@@ -1103,7 +3203,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:256
+#: release_notes.xml:796
 #, no-c-format
 msgid ""
 "Loader: fix handling of empty (0-verticed) geometries in shapefiles. (Sandro "
@@ -1111,7 +3211,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:257
+#: release_notes.xml:797
 #, no-c-format
 msgid ""
 "#536, Geography ST_Intersects, ST_Covers, ST_CoveredBy and Geometry "
@@ -1119,20 +3219,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:258
+#: release_notes.xml:798
 #, no-c-format
 msgid "#573, Improvement to ST_Contains geography (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:259
+#: release_notes.xml:799
 #, no-c-format
 msgid ""
 "Loader: Add support for command-q shutdown in Mac GTK build (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:260
+#: release_notes.xml:800
 #, no-c-format
 msgid ""
 "#393, Loader: Add temporary patch for large DBF files (Maxime Guillaud, Paul "
@@ -1140,13 +3240,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:261
+#: release_notes.xml:801
 #, no-c-format
 msgid "#507, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:262
+#: release_notes.xml:802
 #, no-c-format
 msgid ""
 "spatial_ref_sys.sql Add datum conversion for projection SRID 3021 (Paul "
@@ -1154,7 +3254,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:263
+#: release_notes.xml:803
 #, no-c-format
 msgid ""
 "Geography - remove crash for case when all geographies are out of the "
@@ -1162,13 +3262,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:264
+#: release_notes.xml:804
 #, no-c-format
 msgid "#469, Fix for array_aggregation error (Greg Stark, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:265
+#: release_notes.xml:805
 #, no-c-format
 msgid ""
 "#532, Temporary geography tables showing up in other user sessions (Paul "
@@ -1176,13 +3276,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:266
+#: release_notes.xml:806
 #, no-c-format
 msgid "#562, ST_Dwithin errors for large geographies (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:267
+#: release_notes.xml:807
 #, no-c-format
 msgid ""
 "#513, shape loading GUI tries to make spatial index when loading DBF only "
@@ -1190,20 +3290,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:268
+#: release_notes.xml:808
 #, no-c-format
 msgid ""
 "#527, shape loading GUI should always append log messages (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:269
+#: release_notes.xml:809
 #, no-c-format
 msgid "#504, shp2pgsql should rename xmin/xmax fields (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:270
+#: release_notes.xml:810
 #, no-c-format
 msgid ""
 "#458, postgis_comments being installed in contrib instead of version folder "
@@ -1211,20 +3311,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:271
+#: release_notes.xml:811
 #, no-c-format
 msgid ""
 "#474, Analyzing a table with geography column crashes server (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:272
+#: release_notes.xml:812
 #, no-c-format
 msgid "#581, LWGEOM-expand produces inconsistent results (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:273
+#: release_notes.xml:813
 #, no-c-format
 msgid ""
 "#513, Add dbf filter to shp2pgsql-gui and allow uploading dbf only (Paul "
@@ -1232,19 +3332,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:274
+#: release_notes.xml:814
 #, no-c-format
 msgid "Fix further build issues against PostgreSQL 9.0 (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:275
+#: release_notes.xml:815
 #, no-c-format
 msgid "#572, Password whitespace for Shape File (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:276
+#: release_notes.xml:816
 #, no-c-format
 msgid ""
 "#603, shp2pgsql: \"-w\" produces invalid WKT for MULTI* objects. (Mark Cave-"
@@ -1252,19 +3352,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:281
+#: release_notes.xml:821
 #, no-c-format
 msgid "Release 1.5.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:282
+#: release_notes.xml:822
 #, no-c-format
 msgid "Release date: 2010/03/11"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:283
+#: release_notes.xml:823
 #, no-c-format
 msgid ""
 "This is a bug fix release, addressing issues that have been filed since the "
@@ -1273,7 +3373,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:287
+#: release_notes.xml:827
 #, no-c-format
 msgid ""
 "#410, update embedded bbox when applying ST_SetPoint, ST_AddPoint "
@@ -1281,7 +3381,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:288
+#: release_notes.xml:828
 #, no-c-format
 msgid ""
 "#411, allow dumping tables with invalid geometries (Sandro Santilli, for "
@@ -1289,7 +3389,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:289
+#: release_notes.xml:829
 #, no-c-format
 msgid ""
 "#414, include geography_columns view when running upgrade scripts (Paul "
@@ -1297,7 +3397,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:290
+#: release_notes.xml:830
 #, no-c-format
 msgid ""
 "#419, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, "
@@ -1305,27 +3405,27 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:291
+#: release_notes.xml:831
 #, no-c-format
 msgid "#421, fix computed string length in ST_AsGML() (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:292
+#: release_notes.xml:832
 #, no-c-format
 msgid ""
 "#441, fix GML generation with heterogeneous collections (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:293
+#: release_notes.xml:833
 #, no-c-format
 msgid ""
 "#443, incorrect coordinate reversal in GML 3 generation (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:294
+#: release_notes.xml:834
 #, no-c-format
 msgid ""
 "#450, #451, wrong area calculation for geography features that cross the "
@@ -1333,25 +3433,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:295
+#: release_notes.xml:835
 #, no-c-format
 msgid "Ensure support for upcoming 9.0 PgSQL release (Paul Ramsey)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:300
+#: release_notes.xml:840
 #, no-c-format
 msgid "Release 1.5.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:301
+#: release_notes.xml:841
 #, no-c-format
 msgid "Release date: 2010/02/04"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:302
+#: release_notes.xml:842
 #, no-c-format
 msgid ""
 "This release provides support for geographic coordinates (lat/lon) via a new "
@@ -1360,20 +3460,20 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:305 release_notes.xml:372
+#: release_notes.xml:845 release_notes.xml:912
 #, no-c-format
 msgid "API Stability"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:306
+#: release_notes.xml:846
 #, no-c-format
 msgid ""
 "The public API of PostGIS will not change during minor (0.0.X) releases."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:307
+#: release_notes.xml:847
 #, no-c-format
 msgid ""
 "The definition of the =~ operator has changed from an exact geometric "
@@ -1381,55 +3481,55 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:311 release_notes.xml:377
+#: release_notes.xml:851 release_notes.xml:917
 #, no-c-format
 msgid "Compatibility"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:312
+#: release_notes.xml:852
 #, no-c-format
 msgid "GEOS, Proj4, and LibXML2 are now mandatory dependencies"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:313
+#: release_notes.xml:853
 #, no-c-format
 msgid "The library versions below are the minimum requirements for PostGIS 1.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:314
+#: release_notes.xml:854
 #, no-c-format
 msgid "PostgreSQL 8.3 and higher on all platforms"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:315
+#: release_notes.xml:855
 #, no-c-format
 msgid "GEOS 3.1 and higher only (GEOS 3.2+ to take advantage of all features)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:316
+#: release_notes.xml:856
 #, no-c-format
 msgid "LibXML2 2.5+ related to new ST_GeomFromGML/KML functionality"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:317
+#: release_notes.xml:857
 #, no-c-format
 msgid "Proj4 4.5 and higher only"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:323
+#: release_notes.xml:863
 #, no-c-format
 msgid "Added Hausdorff distance calculations (#209) (Vincent Picavet)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:324
+#: release_notes.xml:864
 #, no-c-format
 msgid ""
 "Added parameters argument to ST_Buffer operation to support one-sided "
@@ -1437,7 +3537,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:325
+#: release_notes.xml:865
 #, no-c-format
 msgid ""
 "Addition of other Distance related visualization and analysis functions "
@@ -1445,98 +3545,98 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:327
+#: release_notes.xml:867
 #, no-c-format
 msgid "ST_ClosestPoint"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:328
+#: release_notes.xml:868
 #, no-c-format
 msgid "ST_DFullyWithin"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:329
+#: release_notes.xml:869
 #, no-c-format
 msgid "ST_LongestLine"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:330
+#: release_notes.xml:870
 #, no-c-format
 msgid "ST_MaxDistance"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:331
+#: release_notes.xml:871
 #, no-c-format
 msgid "ST_ShortestLine"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:333
+#: release_notes.xml:873
 #, no-c-format
 msgid "ST_DumpPoints (Maxime van Noppen)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:334
+#: release_notes.xml:874
 #, no-c-format
 msgid "KML, GML input via ST_GeomFromGML and ST_GeomFromKML (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:335
+#: release_notes.xml:875
 #, no-c-format
 msgid "Extract homogeneous collection with ST_CollectionExtract (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:336
+#: release_notes.xml:876
 #, no-c-format
 msgid ""
 "Add measure values to an existing linestring with ST_AddMeasure (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:337
+#: release_notes.xml:877
 #, no-c-format
 msgid "History table implementation in utils (George Silva)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:338
+#: release_notes.xml:878
 #, no-c-format
 msgid "Geography type and supporting functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:340
+#: release_notes.xml:880
 #, no-c-format
 msgid "Spherical algorithms (Dave Skea)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:341
+#: release_notes.xml:881
 #, no-c-format
 msgid "Object/index implementation (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:342
+#: release_notes.xml:882
 #, no-c-format
 msgid "Selectivity implementation (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:343
+#: release_notes.xml:883
 #, no-c-format
 msgid "Serializations to KML, GML and JSON (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:344
+#: release_notes.xml:884
 #, no-c-format
 msgid ""
 "ST_Area, ST_Distance, ST_DWithin, ST_GeogFromText, ST_GeogFromWKB, "
@@ -1544,52 +3644,52 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:350
+#: release_notes.xml:890
 #, no-c-format
 msgid "Performance improvements to ST_Distance (Nicklas Aven)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:351
+#: release_notes.xml:891
 #, no-c-format
 msgid "Documentation updates and improvements (Regina Obe, Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:352
+#: release_notes.xml:892
 #, no-c-format
 msgid "Testing and quality control (Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:353
+#: release_notes.xml:893
 #, no-c-format
 msgid "PostGIS 1.5 support PostgreSQL 8.5 trunk (Guillaume Lelarge)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:354
+#: release_notes.xml:894
 #, no-c-format
 msgid "Win32 support and improvement of core shp2pgsql-gui (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:355
+#: release_notes.xml:895
 #, no-c-format
 msgid "In place 'make check' support (Paul Ramsey)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:359 release_notes.xml:425 release_notes.xml:610
-#: release_notes.xml:661 release_notes.xml:712 release_notes.xml:846
-#: release_notes.xml:912 release_notes.xml:1022 release_notes.xml:1129
-#: release_notes.xml:1249 release_notes.xml:1314 release_notes.xml:1361
+#: release_notes.xml:899 release_notes.xml:965 release_notes.xml:1150
+#: release_notes.xml:1201 release_notes.xml:1252 release_notes.xml:1386
+#: release_notes.xml:1452 release_notes.xml:1562 release_notes.xml:1669
+#: release_notes.xml:1789 release_notes.xml:1854 release_notes.xml:1901
 #, no-c-format
 msgid "Bug fixes"
 msgstr ""
 
 #. Tag: ulink
-#: release_notes.xml:360
+#: release_notes.xml:900
 #, no-c-format
 msgid ""
 "http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
@@ -1597,19 +3697,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:365
+#: release_notes.xml:905
 #, no-c-format
 msgid "Release 1.4.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:366
+#: release_notes.xml:906
 #, no-c-format
 msgid "Release date: 2009/07/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:367
+#: release_notes.xml:907
 #, no-c-format
 msgid ""
 "This release provides performance enhancements, improved internal structures "
@@ -1619,7 +3719,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:373
+#: release_notes.xml:913
 #, no-c-format
 msgid ""
 "As of the 1.4 release series, the public API of PostGIS will not change "
@@ -1627,31 +3727,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:378
+#: release_notes.xml:918
 #, no-c-format
 msgid "The versions below are the *minimum* requirements for PostGIS 1.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:379
+#: release_notes.xml:919
 #, no-c-format
 msgid "PostgreSQL 8.2 and higher on all platforms"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:380
+#: release_notes.xml:920
 #, no-c-format
 msgid "GEOS 3.0 and higher only"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:381
+#: release_notes.xml:921
 #, no-c-format
 msgid "PROJ4 4.5 and higher only"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:386
+#: release_notes.xml:926
 #, no-c-format
 msgid ""
 "ST_Union() uses high-speed cascaded union when compiled against GEOS 3.1+ "
@@ -1659,13 +3759,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:388
+#: release_notes.xml:928
 #, no-c-format
 msgid "ST_ContainsProperly() requires GEOS 3.1+"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:389
+#: release_notes.xml:929
 #, no-c-format
 msgid ""
 "ST_Intersects(), ST_Contains(), ST_Within() use high-speed cached prepared "
@@ -1673,7 +3773,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:390
+#: release_notes.xml:930
 #, no-c-format
 msgid ""
 "Vastly improved documentation and reference manual (Regina Obe & Kevin "
@@ -1681,13 +3781,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:391
+#: release_notes.xml:931
 #, no-c-format
 msgid "Figures and diagram examples in the reference manual (Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:392
+#: release_notes.xml:932
 #, no-c-format
 msgid ""
 "ST_IsValidReason() returns readable explanations for validity failures (Paul "
@@ -1695,26 +3795,26 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:393
+#: release_notes.xml:933
 #, no-c-format
 msgid ""
 "ST_GeoHash() returns a geohash.org signature for geometries (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:394
+#: release_notes.xml:934
 #, no-c-format
 msgid "GTK+ multi-platform GUI for shape file loading (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:395
+#: release_notes.xml:935
 #, no-c-format
 msgid "ST_LineCrossingDirection() returns crossing directions (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:396
+#: release_notes.xml:936
 #, no-c-format
 msgid ""
 "ST_LocateBetweenElevations() returns sub-string based on Z-ordinate. (Paul "
@@ -1722,7 +3822,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:397
+#: release_notes.xml:937
 #, no-c-format
 msgid ""
 "Geometry parser returns explicit error message about location of syntax "
@@ -1730,13 +3830,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:398
+#: release_notes.xml:938
 #, no-c-format
 msgid "ST_AsGeoJSON() return JSON formatted geometry (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:399
+#: release_notes.xml:939
 #, no-c-format
 msgid ""
 "Populate_Geometry_Columns() -- automatically add records to geometry_columns "
@@ -1744,7 +3844,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:400
+#: release_notes.xml:940
 #, no-c-format
 msgid ""
 "ST_MinimumBoundingCircle() -- returns the smallest circle polygon that can "
@@ -1752,7 +3852,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:405
+#: release_notes.xml:945
 #, no-c-format
 msgid ""
 "Core geometry system moved into independent library, liblwgeom. (Mark Cave-"
@@ -1760,7 +3860,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:406
+#: release_notes.xml:946
 #, no-c-format
 msgid ""
 "New build system uses PostgreSQL \"pgxs\" build bootstrapper. (Mark Cave-"
@@ -1768,13 +3868,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:407
+#: release_notes.xml:947
 #, no-c-format
 msgid "Debugging framework formalized and simplified. (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:408
+#: release_notes.xml:948
 #, no-c-format
 msgid ""
 "All build-time #defines generated at configure time and placed in headers "
@@ -1782,13 +3882,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:409
+#: release_notes.xml:949
 #, no-c-format
 msgid "Logging framework formalized and simplified (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:410
+#: release_notes.xml:950
 #, no-c-format
 msgid ""
 "Expanded and more stable support for CIRCULARSTRING, COMPOUNDCURVE and "
@@ -1797,31 +3897,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:411
+#: release_notes.xml:951
 #, no-c-format
 msgid "Improved support for OpenSolaris builds (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:412
+#: release_notes.xml:952
 #, no-c-format
 msgid "Improved support for MSVC builds (Mateusz Loskot)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:413
+#: release_notes.xml:953
 #, no-c-format
 msgid "Updated KML support (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:414
+#: release_notes.xml:954
 #, no-c-format
 msgid "Unit testing framework for liblwgeom (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:415
+#: release_notes.xml:955
 #, no-c-format
 msgid ""
 "New testing framework to comprehensively exercise every PostGIS function "
@@ -1829,21 +3929,21 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:416
+#: release_notes.xml:956
 #, no-c-format
 msgid ""
 "Performance improvements to all geometry aggregate functions (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:417
+#: release_notes.xml:957
 #, no-c-format
 msgid ""
 "Support for the upcoming PostgreSQL 8.4 (Mark Cave-Ayland, Talha Bin Rizwan)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:418
+#: release_notes.xml:958
 #, no-c-format
 msgid ""
 "Shp2pgsql and pgsql2shp re-worked to depend on the common parsing/unparsing "
@@ -1851,7 +3951,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:419
+#: release_notes.xml:959
 #, no-c-format
 msgid ""
 "Use of PDF DbLatex to build PDF docs and preliminary instructions for build "
@@ -1859,7 +3959,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:420
+#: release_notes.xml:960
 #, no-c-format
 msgid ""
 "Automated User documentation build (PDF and HTML) and Developer Doxygen "
@@ -1867,7 +3967,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:421
+#: release_notes.xml:961
 #, no-c-format
 msgid ""
 "Automated build of document images using ImageMagick from WKT geometry text "
@@ -1875,13 +3975,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:422
+#: release_notes.xml:962
 #, no-c-format
 msgid "More attractive CSS for HTML documentation (Dane Springmeyer)"
 msgstr ""
 
 #. Tag: ulink
-#: release_notes.xml:426
+#: release_notes.xml:966
 #, no-c-format
 msgid ""
 "http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS"
@@ -1889,19 +3989,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:431
+#: release_notes.xml:971
 #, no-c-format
 msgid "Release 1.3.6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:432
+#: release_notes.xml:972
 #, no-c-format
 msgid "Release date: 2009/05/04"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:433
+#: release_notes.xml:973
 #, no-c-format
 msgid ""
 "If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
@@ -1913,19 +4013,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:440
+#: release_notes.xml:980
 #, no-c-format
 msgid "Release 1.3.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:441
+#: release_notes.xml:981
 #, no-c-format
 msgid "Release date: 2008/12/15"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:442
+#: release_notes.xml:982
 #, no-c-format
 msgid ""
 "If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a "
@@ -1935,19 +4035,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:449
+#: release_notes.xml:989
 #, no-c-format
 msgid "Release 1.3.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:450
+#: release_notes.xml:990
 #, no-c-format
 msgid "Release date: 2008/11/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:451
+#: release_notes.xml:991
 #, no-c-format
 msgid ""
 "This release adds support for GeoJSON output, building with PostgreSQL 8.4, "
@@ -1957,7 +4057,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:456
+#: release_notes.xml:996
 #, no-c-format
 msgid ""
 "Bug fixes include removal of crashers in handling circular strings for many "
@@ -1966,19 +4066,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:463
+#: release_notes.xml:1003
 #, no-c-format
 msgid "Release 1.3.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:465
+#: release_notes.xml:1005
 #, no-c-format
 msgid "Release date: 2008/04/12"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:467
+#: release_notes.xml:1007
 #, no-c-format
 msgid ""
 "This release fixes bugs shp2pgsql, adds enhancements to SVG and KML support, "
@@ -1987,19 +4087,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:474
+#: release_notes.xml:1014
 #, no-c-format
 msgid "Release 1.3.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:476
+#: release_notes.xml:1016
 #, no-c-format
 msgid "Release date: 2007/12/01"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:478
+#: release_notes.xml:1018
 #, no-c-format
 msgid ""
 "This release fixes bugs in ST_EndPoint() and ST_Envelope, improves support "
@@ -2008,19 +4108,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:484
+#: release_notes.xml:1024
 #, no-c-format
 msgid "Release 1.3.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:486
+#: release_notes.xml:1026
 #, no-c-format
 msgid "Release date: 2007/08/13"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:488
+#: release_notes.xml:1028
 #, no-c-format
 msgid ""
 "This release fixes some oversights in the previous release around version "
@@ -2028,19 +4128,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:493
+#: release_notes.xml:1033
 #, no-c-format
 msgid "Release 1.3.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:495
+#: release_notes.xml:1035
 #, no-c-format
 msgid "Release date: 2007/08/09"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:497
+#: release_notes.xml:1037
 #, no-c-format
 msgid ""
 "This release provides performance enhancements to the relational functions, "
@@ -2049,19 +4149,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:503
+#: release_notes.xml:1043
 #, no-c-format
 msgid "Added Functionality"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:505
+#: release_notes.xml:1045
 #, no-c-format
 msgid "JDBC: Added Hibernate Dialect (thanks to Norman Barker)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:507
+#: release_notes.xml:1047
 #, no-c-format
 msgid ""
 "Added ST_Covers and ST_CoveredBy relational functions. Description and "
@@ -2072,19 +4172,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:511
+#: release_notes.xml:1051
 #, no-c-format
 msgid "Added ST_DWithin relational function."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:515
+#: release_notes.xml:1055
 #, no-c-format
 msgid "Performance Enhancements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:517
+#: release_notes.xml:1057
 #, no-c-format
 msgid ""
 "Added cached and indexed point-in-polygon short-circuits for the functions "
@@ -2092,20 +4192,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:520
+#: release_notes.xml:1060
 #, no-c-format
 msgid ""
 "Added inline index support for relational functions (except ST_Disjoint)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:525
+#: release_notes.xml:1065
 #, no-c-format
 msgid "Other Changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:527
+#: release_notes.xml:1067
 #, no-c-format
 msgid ""
 "Extended curved geometry support into the geometry accessor and some "
@@ -2113,7 +4213,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:530
+#: release_notes.xml:1070
 #, no-c-format
 msgid ""
 "Began migration of functions to the SQL-MM naming convention; using a "
@@ -2121,25 +4221,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:533
+#: release_notes.xml:1073
 #, no-c-format
 msgid "Added initial support for PostgreSQL 8.3"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:538
+#: release_notes.xml:1078
 #, no-c-format
 msgid "Release 1.2.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:540
+#: release_notes.xml:1080
 #, no-c-format
 msgid "Release date: 2007/01/11"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:542
+#: release_notes.xml:1082
 #, no-c-format
 msgid ""
 "This release provides bug fixes in PostgreSQL 8.2 support and some small "
@@ -2147,37 +4247,37 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:546 release_notes.xml:574 release_notes.xml:1796
+#: release_notes.xml:1086 release_notes.xml:1114 release_notes.xml:2336
 #, no-c-format
 msgid "Changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:548
+#: release_notes.xml:1088
 #, no-c-format
 msgid "Fixed point-in-polygon shortcut bug in Within()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:550
+#: release_notes.xml:1090
 #, no-c-format
 msgid "Fixed PostgreSQL 8.2 NULL handling for indexes."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:552
+#: release_notes.xml:1092
 #, no-c-format
 msgid "Updated RPM spec files."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:554
+#: release_notes.xml:1094
 #, no-c-format
 msgid "Added short-circuit for Transform() in no-op case."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:556
+#: release_notes.xml:1096
 #, no-c-format
 msgid ""
 "JDBC: Fixed JTS handling for multi-dimensional geometries (thanks to Thomas "
@@ -2187,19 +4287,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:565
+#: release_notes.xml:1105
 #, no-c-format
 msgid "Release 1.2.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:567
+#: release_notes.xml:1107
 #, no-c-format
 msgid "Release date: 2006/12/08"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:569
+#: release_notes.xml:1109
 #, no-c-format
 msgid ""
 "This release provides type definitions along with serialization/"
@@ -2208,13 +4308,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:576
+#: release_notes.xml:1116
 #, no-c-format
 msgid "Added curved geometry type support for serialization/deserialization"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:579
+#: release_notes.xml:1119
 #, no-c-format
 msgid ""
 "Added point-in-polygon shortcircuit to the Contains and Within functions to "
@@ -2222,19 +4322,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:585
+#: release_notes.xml:1125
 #, no-c-format
 msgid "Release 1.1.6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:587
+#: release_notes.xml:1127
 #, no-c-format
 msgid "Release date: 2006/11/02"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:589
+#: release_notes.xml:1129
 #, no-c-format
 msgid ""
 "This is a bugfix release, in particular fixing a critical error with GEOS "
@@ -2244,20 +4344,20 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:595 release_notes.xml:646 release_notes.xml:697
-#: release_notes.xml:752 release_notes.xml:831 release_notes.xml:897
-#: release_notes.xml:970 release_notes.xml:1114 release_notes.xml:1171
-#: release_notes.xml:1234 release_notes.xml:1292 release_notes.xml:1350
-#: release_notes.xml:1390 release_notes.xml:1442 release_notes.xml:1494
-#: release_notes.xml:1533 release_notes.xml:1570 release_notes.xml:1637
-#: release_notes.xml:1734 release_notes.xml:1788
+#: release_notes.xml:1135 release_notes.xml:1186 release_notes.xml:1237
+#: release_notes.xml:1292 release_notes.xml:1371 release_notes.xml:1437
+#: release_notes.xml:1510 release_notes.xml:1654 release_notes.xml:1711
+#: release_notes.xml:1774 release_notes.xml:1832 release_notes.xml:1890
+#: release_notes.xml:1930 release_notes.xml:1982 release_notes.xml:2034
+#: release_notes.xml:2073 release_notes.xml:2110 release_notes.xml:2177
+#: release_notes.xml:2274 release_notes.xml:2328
 #, no-c-format
 msgid "Upgrading"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:597 release_notes.xml:648 release_notes.xml:699
-#: release_notes.xml:754 release_notes.xml:833 release_notes.xml:899
+#: release_notes.xml:1137 release_notes.xml:1188 release_notes.xml:1239
+#: release_notes.xml:1294 release_notes.xml:1373 release_notes.xml:1439
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.3 or later follow the <link linkend="
@@ -2265,10 +4365,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:600 release_notes.xml:651 release_notes.xml:702
-#: release_notes.xml:757 release_notes.xml:836 release_notes.xml:902
-#: release_notes.xml:978 release_notes.xml:1119 release_notes.xml:1176
-#: release_notes.xml:1239
+#: release_notes.xml:1140 release_notes.xml:1191 release_notes.xml:1242
+#: release_notes.xml:1297 release_notes.xml:1376 release_notes.xml:1442
+#: release_notes.xml:1518 release_notes.xml:1659 release_notes.xml:1716
+#: release_notes.xml:1779
 #, no-c-format
 msgid ""
 "If you are upgrading from a release <emphasis>between 1.0.0RC6 and 1.0.2</"
@@ -2278,10 +4378,10 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:605 release_notes.xml:656 release_notes.xml:707
-#: release_notes.xml:762 release_notes.xml:841 release_notes.xml:907
-#: release_notes.xml:983 release_notes.xml:1124 release_notes.xml:1181
-#: release_notes.xml:1244
+#: release_notes.xml:1145 release_notes.xml:1196 release_notes.xml:1247
+#: release_notes.xml:1302 release_notes.xml:1381 release_notes.xml:1447
+#: release_notes.xml:1523 release_notes.xml:1664 release_notes.xml:1721
+#: release_notes.xml:1784
 #, no-c-format
 msgid ""
 "Upgrade from any release prior to 1.0.0RC6 requires an <link linkend="
@@ -2289,46 +4389,46 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:612
+#: release_notes.xml:1152
 #, no-c-format
 msgid "fixed CAPI change that broke 64-bit platforms"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:614
+#: release_notes.xml:1154
 #, no-c-format
 msgid "loader/dumper: fixed regression tests and usage output"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:616
+#: release_notes.xml:1156
 #, no-c-format
 msgid "Fixed setSRID() bug in JDBC, thanks to Thomas Marti"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:620 release_notes.xml:804 release_notes.xml:875
-#: release_notes.xml:1089 release_notes.xml:1215 release_notes.xml:1516
-#: release_notes.xml:1553 release_notes.xml:1605 release_notes.xml:1707
-#: release_notes.xml:1770
+#: release_notes.xml:1160 release_notes.xml:1344 release_notes.xml:1415
+#: release_notes.xml:1629 release_notes.xml:1755 release_notes.xml:2056
+#: release_notes.xml:2093 release_notes.xml:2145 release_notes.xml:2247
+#: release_notes.xml:2310
 #, no-c-format
 msgid "Other changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:622
+#: release_notes.xml:1162
 #, no-c-format
 msgid "use Z ordinate in reprojections"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:624
+#: release_notes.xml:1164
 #, no-c-format
 msgid "spatial_ref_sys.sql updated to EPSG 6.11.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:626
+#: release_notes.xml:1166
 #, no-c-format
 msgid ""
 "Simplified Version.config infrastructure to use a single pack of version "
@@ -2336,31 +4436,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:629
+#: release_notes.xml:1169
 #, no-c-format
 msgid "Include the Version.config in loader/dumper USAGE messages"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:632
+#: release_notes.xml:1172
 #, no-c-format
 msgid "Replace hand-made, fragile JDBC version parser with Properties"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:638
+#: release_notes.xml:1178
 #, no-c-format
 msgid "Release 1.1.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:640
+#: release_notes.xml:1180
 #, no-c-format
 msgid "Release date: 2006/10/13"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:642
+#: release_notes.xml:1182
 #, no-c-format
 msgid ""
 "This is an bugfix release, including a critical segfault on win32. Upgrade "
@@ -2368,7 +4468,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:663
+#: release_notes.xml:1203
 #, no-c-format
 msgid ""
 "Fixed MingW link error that was causing pgsql2shp to segfault on Win32 when "
@@ -2376,13 +4476,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:666
+#: release_notes.xml:1206
 #, no-c-format
 msgid "fixed nullpointer Exception in Geometry.equals() method in Java"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:669
+#: release_notes.xml:1209
 #, no-c-format
 msgid ""
 "Added EJB3Spatial.odt to fulfill the GPL requirement of distributing the "
@@ -2390,13 +4490,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:672
+#: release_notes.xml:1212
 #, no-c-format
 msgid "Removed obsolete synchronization from JDBC Jts code."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:674
+#: release_notes.xml:1214
 #, no-c-format
 msgid ""
 "Updated heavily outdated README files for shp2pgsql/pgsql2shp by merging "
@@ -2404,7 +4504,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:677
+#: release_notes.xml:1217
 #, no-c-format
 msgid ""
 "Fixed version tag in jdbc code that still said \"1.1.3\" in the \"1.1.4\" "
@@ -2412,25 +4512,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:684
+#: release_notes.xml:1224
 #, no-c-format
 msgid "Added -S option for non-multi geometries to shp2pgsql"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:689
+#: release_notes.xml:1229
 #, no-c-format
 msgid "Release 1.1.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:691
+#: release_notes.xml:1231
 #, no-c-format
 msgid "Release date: 2006/09/27"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:693
+#: release_notes.xml:1233
 #, no-c-format
 msgid ""
 "This is an bugfix release including some improvements in the Java interface. "
@@ -2438,43 +4538,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:714
+#: release_notes.xml:1254
 #, no-c-format
 msgid "Fixed support for PostgreSQL 8.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:716
+#: release_notes.xml:1256
 #, no-c-format
 msgid "Fixed bug in collect() function discarding SRID of input"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:718
+#: release_notes.xml:1258
 #, no-c-format
 msgid "Added SRID match check in MakeBox2d and MakeBox3d"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:720
+#: release_notes.xml:1260
 #, no-c-format
 msgid "Fixed regress tests to pass with GEOS-3.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:722
+#: release_notes.xml:1262
 #, no-c-format
 msgid "Improved pgsql2shp run concurrency."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:726
+#: release_notes.xml:1266
 #, no-c-format
 msgid "Java changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:728
+#: release_notes.xml:1268
 #, no-c-format
 msgid ""
 "reworked JTS support to reflect new upstream JTS developers' attitude to "
@@ -2482,7 +4582,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:732
+#: release_notes.xml:1272
 #, no-c-format
 msgid ""
 "Added EJB2 support generously donated by the \"Geodetix s.r.l. Company\" "
@@ -2490,7 +4590,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:735
+#: release_notes.xml:1275
 #, no-c-format
 msgid ""
 "Added EJB3 tutorial / examples donated by Norman Barker <nbarker at ittvis."
@@ -2498,25 +4598,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:738
+#: release_notes.xml:1278
 #, no-c-format
 msgid "Reorganized java directory layout a little."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:743
+#: release_notes.xml:1283
 #, no-c-format
 msgid "Release 1.1.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:745
+#: release_notes.xml:1285
 #, no-c-format
 msgid "Release date: 2006/06/30"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:747
+#: release_notes.xml:1287
 #, no-c-format
 msgid ""
 "This is an bugfix release including also some new functionalities (most "
@@ -2525,37 +4625,37 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:767
+#: release_notes.xml:1307
 #, no-c-format
 msgid "Bug fixes / correctness"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:769
+#: release_notes.xml:1309
 #, no-c-format
 msgid "BUGFIX in distance(poly,poly) giving wrong results."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:771
+#: release_notes.xml:1311
 #, no-c-format
 msgid "BUGFIX in pgsql2shp successful return code."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:773
+#: release_notes.xml:1313
 #, no-c-format
 msgid "BUGFIX in shp2pgsql handling of MultiLine WKT."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:775
+#: release_notes.xml:1315
 #, no-c-format
 msgid "BUGFIX in affine() failing to update bounding box."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:777
+#: release_notes.xml:1317
 #, no-c-format
 msgid ""
 "WKT parser: forbidden construction of multigeometries with EMPTY elements "
@@ -2563,49 +4663,49 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:782 release_notes.xml:858 release_notes.xml:931
+#: release_notes.xml:1322 release_notes.xml:1398 release_notes.xml:1471
 #, no-c-format
 msgid "New functionalities"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:784
+#: release_notes.xml:1324
 #, no-c-format
 msgid "NEW Long Transactions support."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:786
+#: release_notes.xml:1326
 #, no-c-format
 msgid "NEW DumpRings() function."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:788
+#: release_notes.xml:1328
 #, no-c-format
 msgid "NEW AsHEXEWKB(geom, XDR|NDR) function."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:792 release_notes.xml:1683
+#: release_notes.xml:1332 release_notes.xml:2223
 #, no-c-format
 msgid "JDBC changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:794
+#: release_notes.xml:1334
 #, no-c-format
 msgid "Improved regression tests: MultiPoint and scientific ordinates"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:797
+#: release_notes.xml:1337
 #, no-c-format
 msgid "Fixed some minor bugs in jdbc code"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:799
+#: release_notes.xml:1339
 #, no-c-format
 msgid ""
 "Added proper accessor functions for all fields in preparation of making "
@@ -2613,55 +4713,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:806
+#: release_notes.xml:1346
 #, no-c-format
 msgid "NEW regress test support for loader/dumper."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:808
+#: release_notes.xml:1348
 #, no-c-format
 msgid "Added --with-proj-libdir and --with-geos-libdir configure switches."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:811
+#: release_notes.xml:1351
 #, no-c-format
 msgid "Support for build Tru64 build."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:813
+#: release_notes.xml:1353
 #, no-c-format
 msgid "Use Jade for generating documentation."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:815
+#: release_notes.xml:1355
 #, no-c-format
 msgid "Don't link pgsql2shp to more libs then required."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:817
+#: release_notes.xml:1357
 #, no-c-format
 msgid "Initial support for PostgreSQL 8.2."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:822
+#: release_notes.xml:1362
 #, no-c-format
 msgid "Release 1.1.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:824
+#: release_notes.xml:1364
 #, no-c-format
 msgid "Release date: 2006/03/30"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:826
+#: release_notes.xml:1366
 #, no-c-format
 msgid ""
 "This is an bugfix release including some new functions and portability "
@@ -2669,55 +4769,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:848
+#: release_notes.xml:1388
 #, no-c-format
 msgid "BUGFIX in SnapToGrid() computation of output bounding box"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:850
+#: release_notes.xml:1390
 #, no-c-format
 msgid "BUGFIX in EnforceRHR()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:852
+#: release_notes.xml:1392
 #, no-c-format
 msgid "jdbc2 SRID handling fixes in JTS code"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:854
+#: release_notes.xml:1394
 #, no-c-format
 msgid "Fixed support for 64bit archs"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:860
+#: release_notes.xml:1400
 #, no-c-format
 msgid "Regress tests can now be run *before* postgis installation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:863
+#: release_notes.xml:1403
 #, no-c-format
 msgid "New affine() matrix transformation functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:865
+#: release_notes.xml:1405
 #, no-c-format
 msgid "New rotate{,X,Y,Z}() function"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:867
+#: release_notes.xml:1407
 #, no-c-format
 msgid "Old translating and scaling functions now use affine() internally"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:870
+#: release_notes.xml:1410
 #, no-c-format
 msgid ""
 "Embedded access control in estimated_extent() for builds against pgsql >= "
@@ -2725,31 +4825,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:877
+#: release_notes.xml:1417
 #, no-c-format
 msgid "More portable ./configure script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:879
+#: release_notes.xml:1419
 #, no-c-format
 msgid "Changed ./run_test script to have more sane default behaviour"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:885
+#: release_notes.xml:1425
 #, no-c-format
 msgid "Release 1.1.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:887
+#: release_notes.xml:1427
 #, no-c-format
 msgid "Release date: 2006/01/23"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:889
+#: release_notes.xml:1429
 #, no-c-format
 msgid ""
 "This is an important Bugfix release, upgrade is <emphasis>highly "
@@ -2760,79 +4860,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:914
+#: release_notes.xml:1454
 #, no-c-format
 msgid "Fixed a premature exit in postgis_restore.pl"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:916
+#: release_notes.xml:1456
 #, no-c-format
 msgid "BUGFIX in geometrycollection handling of GEOS-CAPI connector"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:919
+#: release_notes.xml:1459
 #, no-c-format
 msgid "Solaris 2.7 and MingW support improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:921
+#: release_notes.xml:1461
 #, no-c-format
 msgid "BUGFIX in line_locate_point()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:923
+#: release_notes.xml:1463
 #, no-c-format
 msgid "Fixed handling of postgresql paths"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:925
+#: release_notes.xml:1465
 #, no-c-format
 msgid "BUGFIX in line_substring()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:927
+#: release_notes.xml:1467
 #, no-c-format
 msgid "Added support for localized cluster in regress tester"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:933
+#: release_notes.xml:1473
 #, no-c-format
 msgid "New Z and M interpolation in line_substring()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:935
+#: release_notes.xml:1475
 #, no-c-format
 msgid "New Z and M interpolation in line_interpolate_point()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:937
+#: release_notes.xml:1477
 #, no-c-format
 msgid "added NumInteriorRing() alias due to OpenGIS ambiguity"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:942
+#: release_notes.xml:1482
 #, no-c-format
 msgid "Release 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:944
+#: release_notes.xml:1484
 #, no-c-format
 msgid "Release date: 2005/12/21"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:946
+#: release_notes.xml:1486
 #, no-c-format
 msgid ""
 "This is a Minor release, containing many improvements and new things. Most "
@@ -2842,7 +4942,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:951
+#: release_notes.xml:1491
 #, no-c-format
 msgid ""
 "It is <emphasis>highly recommended</emphasis> that you upgrade to GEOS-2.2.x "
@@ -2851,13 +4951,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:956
+#: release_notes.xml:1496
 #, no-c-format
 msgid "Credits"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:958
+#: release_notes.xml:1498
 #, no-c-format
 msgid ""
 "This release includes code from Mark Cave Ayland for caching of proj4 "
@@ -2867,11 +4967,11 @@ msgid ""
 "Gerald Fenoy helped testing GEOS C-API connector. Hartmut Tschauner provided "
 "code for the azimuth() function. Devrim GUNDUZ provided RPM specfiles. Carl "
 "Anderson helped with the new area building functions. See the <link linkend="
-"\"credits\">credits</link> section for more names."
+"\"credits_other_contributors\">credits</link> section for more names."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:972
+#: release_notes.xml:1512
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
@@ -2881,115 +4981,115 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:988
+#: release_notes.xml:1528
 #, no-c-format
 msgid "New functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:990
+#: release_notes.xml:1530
 #, no-c-format
 msgid "scale() and transscale() companion methods to translate()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:992
+#: release_notes.xml:1532
 #, no-c-format
 msgid "line_substring()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:994
+#: release_notes.xml:1534
 #, no-c-format
 msgid "line_locate_point()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:996
+#: release_notes.xml:1536
 #, no-c-format
 msgid "M(point)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:998
+#: release_notes.xml:1538
 #, no-c-format
 msgid "LineMerge(geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1000
+#: release_notes.xml:1540
 #, no-c-format
 msgid "shift_longitude(geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1002
+#: release_notes.xml:1542
 #, no-c-format
 msgid "azimuth(geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1004
+#: release_notes.xml:1544
 #, no-c-format
 msgid "locate_along_measure(geometry, float8)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1006
+#: release_notes.xml:1546
 #, no-c-format
 msgid "locate_between_measures(geometry, float8, float8)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1008
+#: release_notes.xml:1548
 #, no-c-format
 msgid "SnapToGrid by point offset (up to 4d support)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1010
+#: release_notes.xml:1550
 #, no-c-format
 msgid "BuildArea(any_geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1012
+#: release_notes.xml:1552
 #, no-c-format
 msgid "OGC BdPolyFromText(linestring_wkt, srid)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1014
+#: release_notes.xml:1554
 #, no-c-format
 msgid "OGC BdMPolyFromText(linestring_wkt, srid)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1016
+#: release_notes.xml:1556
 #, no-c-format
 msgid "RemovePoint(linestring, offset)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1018
+#: release_notes.xml:1558
 #, no-c-format
 msgid "ReplacePoint(linestring, offset, point)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1024
+#: release_notes.xml:1564
 #, no-c-format
 msgid "Fixed memory leak in polygonize()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1026
+#: release_notes.xml:1566
 #, no-c-format
 msgid "Fixed bug in lwgeom_as_anytype cast functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1028
+#: release_notes.xml:1568
 #, no-c-format
 msgid ""
 "Fixed USE_GEOS, USE_PROJ and USE_STATS elements of postgis_version() output "
@@ -2997,38 +5097,38 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1033
+#: release_notes.xml:1573
 #, no-c-format
 msgid "Function semantic changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1035
+#: release_notes.xml:1575
 #, no-c-format
 msgid "SnapToGrid doesn't discard higher dimensions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1037
+#: release_notes.xml:1577
 #, no-c-format
 msgid ""
 "Changed Z() function to return NULL if requested dimension is not available"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1042
+#: release_notes.xml:1582
 #, no-c-format
 msgid "Performance improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1044
+#: release_notes.xml:1584
 #, no-c-format
 msgid "Much faster transform() function, caching proj4 objects"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1046
+#: release_notes.xml:1586
 #, no-c-format
 msgid ""
 "Removed automatic call to fix_geometry_columns() in AddGeometryColumns() and "
@@ -3036,152 +5136,152 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1051
+#: release_notes.xml:1591
 #, no-c-format
 msgid "JDBC2 works"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1053
+#: release_notes.xml:1593
 #, no-c-format
 msgid "Makefile improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1055 release_notes.xml:1091
+#: release_notes.xml:1595 release_notes.xml:1631
 #, no-c-format
 msgid "JTS support improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1057
+#: release_notes.xml:1597
 #, no-c-format
 msgid "Improved regression test system"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1059
+#: release_notes.xml:1599
 #, no-c-format
 msgid "Basic consistency check method for geometry collections"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1061
+#: release_notes.xml:1601
 #, no-c-format
 msgid "Support for (Hex)(E)wkb"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1063
+#: release_notes.xml:1603
 #, no-c-format
 msgid "Autoprobing DriverWrapper for HexWKB / EWKT switching"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1065
+#: release_notes.xml:1605
 #, no-c-format
 msgid "fix compile problems in ValueSetter for ancient jdk releases."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1068
+#: release_notes.xml:1608
 #, no-c-format
 msgid "fix EWKT constructors to accept SRID=4711; representation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1070
+#: release_notes.xml:1610
 #, no-c-format
 msgid "added preliminary read-only support for java2d geometries"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1074
+#: release_notes.xml:1614
 #, no-c-format
 msgid "Other new things"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1076
+#: release_notes.xml:1616
 #, no-c-format
 msgid ""
 "Full autoconf-based configuration, with PostgreSQL source dependency relief"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1079
+#: release_notes.xml:1619
 #, no-c-format
 msgid "GEOS C-API support (2.2.0 and higher)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1081
+#: release_notes.xml:1621
 #, no-c-format
 msgid "Initial support for topology modelling"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1083
+#: release_notes.xml:1623
 #, no-c-format
 msgid "Debian and RPM specfiles"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1085
+#: release_notes.xml:1625
 #, no-c-format
 msgid "New lwpostgis_upgrade.sql script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1093
+#: release_notes.xml:1633
 #, no-c-format
 msgid "Stricter mapping between DBF and SQL integer and string attributes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1096
+#: release_notes.xml:1636
 #, no-c-format
 msgid "Wider and cleaner regression test suite"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1098
+#: release_notes.xml:1638
 #, no-c-format
 msgid "old jdbc code removed from release"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1100
+#: release_notes.xml:1640
 #, no-c-format
 msgid "obsoleted direct use of postgis_proc_upgrade.pl"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1102
+#: release_notes.xml:1642
 #, no-c-format
 msgid "scripts version unified with release version"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1107
+#: release_notes.xml:1647
 #, no-c-format
 msgid "Release 1.0.6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1109
+#: release_notes.xml:1649
 #, no-c-format
 msgid "Release date: 2005/12/06"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1111 release_notes.xml:1347
+#: release_notes.xml:1651 release_notes.xml:1887
 #, no-c-format
 msgid "Contains a few bug fixes and improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1116 release_notes.xml:1173
+#: release_notes.xml:1656 release_notes.xml:1713
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</"
@@ -3189,7 +5289,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1131
+#: release_notes.xml:1671
 #, no-c-format
 msgid ""
 "Fixed palloc(0) call in collection deserializer (only gives problem with --"
@@ -3197,74 +5297,74 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1134
+#: release_notes.xml:1674
 #, no-c-format
 msgid "Fixed bbox cache handling bugs"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1136
+#: release_notes.xml:1676
 #, no-c-format
 msgid "Fixed geom_accum(NULL, NULL) segfault"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1138
+#: release_notes.xml:1678
 #, no-c-format
 msgid "Fixed segfault in addPoint()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1140
+#: release_notes.xml:1680
 #, no-c-format
 msgid "Fixed short-allocation in lwcollection_clone()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1142
+#: release_notes.xml:1682
 #, no-c-format
 msgid "Fixed bug in segmentize()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1144
+#: release_notes.xml:1684
 #, no-c-format
 msgid "Fixed bbox computation of SnapToGrid output"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1148 release_notes.xml:1266 release_notes.xml:1328
-#: release_notes.xml:1374
+#: release_notes.xml:1688 release_notes.xml:1806 release_notes.xml:1868
+#: release_notes.xml:1914
 #, no-c-format
 msgid "Improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1150
+#: release_notes.xml:1690
 #, no-c-format
 msgid "Initial support for postgresql 8.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1152
+#: release_notes.xml:1692
 #, no-c-format
 msgid "Added missing SRID mismatch checks in GEOS ops"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1157
+#: release_notes.xml:1697
 #, no-c-format
 msgid "Release 1.0.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1159
+#: release_notes.xml:1699
 #, no-c-format
 msgid "Release date: 2005/11/25"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1161
+#: release_notes.xml:1701
 #, no-c-format
 msgid ""
 "Contains memory-alignment fixes in the library, a segfault fix in loader's "
@@ -3272,7 +5372,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1166
+#: release_notes.xml:1706
 #, no-c-format
 msgid ""
 "Return code of shp2pgsql changed from previous releases to conform to unix "
@@ -3280,99 +5380,99 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1186 release_notes.xml:1401 release_notes.xml:1453
-#: release_notes.xml:1502 release_notes.xml:1544 release_notes.xml:1578
-#: release_notes.xml:1645 release_notes.xml:1742
+#: release_notes.xml:1726 release_notes.xml:1941 release_notes.xml:1993
+#: release_notes.xml:2042 release_notes.xml:2084 release_notes.xml:2118
+#: release_notes.xml:2185 release_notes.xml:2282
 #, no-c-format
 msgid "Library changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1188
+#: release_notes.xml:1728
 #, no-c-format
 msgid "Fixed memory alignment problems"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1190
+#: release_notes.xml:1730
 #, no-c-format
 msgid "Fixed computation of null values fraction in analyzer"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1192
+#: release_notes.xml:1732
 #, no-c-format
 msgid "Fixed a small bug in the getPoint4d_p() low-level function"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1195
+#: release_notes.xml:1735
 #, no-c-format
 msgid "Speedup of serializer functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1197
+#: release_notes.xml:1737
 #, no-c-format
 msgid "Fixed a bug in force_3dm(), force_3dz() and force_4d()"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1201
+#: release_notes.xml:1741
 #, no-c-format
 msgid "Loader changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1203
+#: release_notes.xml:1743
 #, no-c-format
 msgid "Fixed return code of shp2pgsql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1205
+#: release_notes.xml:1745
 #, no-c-format
 msgid "Fixed back-compatibility issue in loader (load of null shapefiles)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1208
+#: release_notes.xml:1748
 #, no-c-format
 msgid "Fixed handling of trailing dots in dbf numerical attributes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1211
+#: release_notes.xml:1751
 #, no-c-format
 msgid "Segfault fix in shp2pgsql (utf8 encoding)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1217
+#: release_notes.xml:1757
 #, no-c-format
 msgid "Schema aware postgis_proc_upgrade.pl, support for pgsql 7.2+"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1220
+#: release_notes.xml:1760
 #, no-c-format
 msgid "New \"Reporting Bugs\" chapter in manual"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1225
+#: release_notes.xml:1765
 #, no-c-format
 msgid "Release 1.0.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1227
+#: release_notes.xml:1767
 #, no-c-format
 msgid "Release date: 2005/09/09"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1229
+#: release_notes.xml:1769
 #, no-c-format
 msgid ""
 "Contains important bug fixes and a few improvements. In particular, it fixes "
@@ -3381,7 +5481,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1236
+#: release_notes.xml:1776
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.3 you <emphasis>DO NOT</emphasis> need "
@@ -3389,25 +5489,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1251
+#: release_notes.xml:1791
 #, no-c-format
 msgid "Memory leak plugged in GiST indexing"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1253
+#: release_notes.xml:1793
 #, no-c-format
 msgid "Segfault fix in transform() handling of proj4 errors"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1255
+#: release_notes.xml:1795
 #, no-c-format
 msgid "Fixed some proj4 texts in spatial_ref_sys (missing +proj)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1257
+#: release_notes.xml:1797
 #, no-c-format
 msgid ""
 "Loader: fixed string functions usage, reworked NULL objects check, fixed "
@@ -3415,67 +5515,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1260
+#: release_notes.xml:1800
 #, no-c-format
 msgid "Fixed bug in MakeLine dimension handling"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1262
+#: release_notes.xml:1802
 #, no-c-format
 msgid "Fixed bug in translate() corrupting output bounding box"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1268
+#: release_notes.xml:1808
 #, no-c-format
 msgid "Documentation improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1270
+#: release_notes.xml:1810
 #, no-c-format
 msgid "More robust selectivity estimator"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1272
+#: release_notes.xml:1812
 #, no-c-format
 msgid "Minor speedup in distance()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1274
+#: release_notes.xml:1814
 #, no-c-format
 msgid "Minor cleanups"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1276
+#: release_notes.xml:1816
 #, no-c-format
 msgid "GiST indexing cleanup"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1278
+#: release_notes.xml:1818
 #, no-c-format
 msgid "Looser syntax acceptance in box3d parser"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1283
+#: release_notes.xml:1823
 #, no-c-format
 msgid "Release 1.0.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1285
+#: release_notes.xml:1825
 #, no-c-format
 msgid "Release date: 2005/08/08"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1287
+#: release_notes.xml:1827
 #, no-c-format
 msgid ""
 "Contains some bug fixes - <emphasis>including a severe one affecting "
@@ -3483,7 +5583,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1294
+#: release_notes.xml:1834
 #, no-c-format
 msgid ""
 "Due to a bug in a bounding box computation routine, the upgrade procedure "
@@ -3492,7 +5592,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1298
+#: release_notes.xml:1838
 #, no-c-format
 msgid ""
 "An <link linkend=\"hard_upgrade\">hard upgrade</link> procedure (dump/"
@@ -3502,7 +5602,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1303
+#: release_notes.xml:1843
 #, no-c-format
 msgid ""
 "If you are upgrading from versions 1.0.0RC6 or up, this release includes a "
@@ -3516,79 +5616,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1316
+#: release_notes.xml:1856
 #, no-c-format
 msgid "Severe bugfix in lwgeom's 2d bounding box computation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1318
+#: release_notes.xml:1858
 #, no-c-format
 msgid "Bugfix in WKT (-w) POINT handling in loader"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1320
+#: release_notes.xml:1860
 #, no-c-format
 msgid "Bugfix in dumper on 64bit machines"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1322
+#: release_notes.xml:1862
 #, no-c-format
 msgid "Bugfix in dumper handling of user-defined queries"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1324
+#: release_notes.xml:1864
 #, no-c-format
 msgid "Bugfix in create_undef.pl script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1330
+#: release_notes.xml:1870
 #, no-c-format
 msgid "Small performance improvement in canonical input function"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1332
+#: release_notes.xml:1872
 #, no-c-format
 msgid "Minor cleanups in loader"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1334
+#: release_notes.xml:1874
 #, no-c-format
 msgid "Support for multibyte field names in loader"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1336
+#: release_notes.xml:1876
 #, no-c-format
 msgid "Improvement in the postgis_restore.pl script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1338
+#: release_notes.xml:1878
 #, no-c-format
 msgid "New rebuild_bbox_caches.pl util script"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1343
+#: release_notes.xml:1883
 #, no-c-format
 msgid "Release 1.0.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1345
+#: release_notes.xml:1885
 #, no-c-format
 msgid "Release date: 2005/07/04"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1352 release_notes.xml:1392
+#: release_notes.xml:1892 release_notes.xml:1932
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.0RC6 or up you <emphasis>DO NOT</"
@@ -3596,7 +5696,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1355 release_notes.xml:1395
+#: release_notes.xml:1895 release_notes.xml:1935
 #, no-c-format
 msgid ""
 "Upgrading from older releases requires a dump/reload. See the <link linkend="
@@ -3604,145 +5704,145 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1363
+#: release_notes.xml:1903
 #, no-c-format
 msgid "Fault tolerant btree ops"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1365
+#: release_notes.xml:1905
 #, no-c-format
 msgid "Memory leak plugged in pg_error"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1367
+#: release_notes.xml:1907
 #, no-c-format
 msgid "Rtree index fix"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1369
+#: release_notes.xml:1909
 #, no-c-format
 msgid "Cleaner build scripts (avoided mix of CFLAGS and CXXFLAGS)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1376
+#: release_notes.xml:1916
 #, no-c-format
 msgid "New index creation capabilities in loader (-I switch)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1378
+#: release_notes.xml:1918
 #, no-c-format
 msgid "Initial support for postgresql 8.1dev"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1383
+#: release_notes.xml:1923
 #, no-c-format
 msgid "Release 1.0.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1385
+#: release_notes.xml:1925
 #, no-c-format
 msgid "Release date: 2005/05/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1387
+#: release_notes.xml:1927
 #, no-c-format
 msgid "Contains a few bug fixes and some improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1403
+#: release_notes.xml:1943
 #, no-c-format
 msgid "BUGFIX in 3d computation of length_spheroid()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1405
+#: release_notes.xml:1945
 #, no-c-format
 msgid "BUGFIX in join selectivity estimator"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1409 release_notes.xml:1465
+#: release_notes.xml:1949 release_notes.xml:2005
 #, no-c-format
 msgid "Other changes/additions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1411
+#: release_notes.xml:1951
 #, no-c-format
 msgid "BUGFIX in shp2pgsql escape functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1413
+#: release_notes.xml:1953
 #, no-c-format
 msgid "better support for concurrent postgis in multiple schemas"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1415
+#: release_notes.xml:1955
 #, no-c-format
 msgid "documentation fixes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1417
+#: release_notes.xml:1957
 #, no-c-format
 msgid "jdbc2: compile with \"-target 1.2 -source 1.2\" by default"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1419
+#: release_notes.xml:1959
 #, no-c-format
 msgid "NEW -k switch for pgsql2shp"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1421
+#: release_notes.xml:1961
 #, no-c-format
 msgid "NEW support for custom createdb options in postgis_restore.pl"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1424
+#: release_notes.xml:1964
 #, no-c-format
 msgid "BUGFIX in pgsql2shp attribute names unicity enforcement"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1426
+#: release_notes.xml:1966
 #, no-c-format
 msgid "BUGFIX in Paris projections definitions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1428
+#: release_notes.xml:1968
 #, no-c-format
 msgid "postgis_restore.pl cleanups"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1433
+#: release_notes.xml:1973
 #, no-c-format
 msgid "Release 1.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1435
+#: release_notes.xml:1975
 #, no-c-format
 msgid "Release date: 2005/04/19"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1437
+#: release_notes.xml:1977
 #, no-c-format
 msgid ""
 "Final 1.0.0 release. Contains a few bug fixes, some improvements in the "
@@ -3750,7 +5850,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1444
+#: release_notes.xml:1984
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.0RC6 you <emphasis>DO NOT</emphasis> "
@@ -3758,7 +5858,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1447 release_notes.xml:1538
+#: release_notes.xml:1987 release_notes.xml:2078
 #, no-c-format
 msgid ""
 "Upgrading from any other precedent release requires a dump/reload. See the "
@@ -3766,87 +5866,87 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1455
+#: release_notes.xml:1995
 #, no-c-format
 msgid "BUGFIX in transform() releasing random memory address"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1457
+#: release_notes.xml:1997
 #, no-c-format
 msgid "BUGFIX in force_3dm() allocating less memory then required"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1460
+#: release_notes.xml:2000
 #, no-c-format
 msgid "BUGFIX in join selectivity estimator (defaults, leaks, tuplecount, sd)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1467
+#: release_notes.xml:2007
 #, no-c-format
 msgid "BUGFIX in shp2pgsql escape of values starting with tab or single-quote"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1470
+#: release_notes.xml:2010
 #, no-c-format
 msgid "NEW manual pages for loader/dumper"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1472
+#: release_notes.xml:2012
 #, no-c-format
 msgid "NEW shp2pgsql support for old (HWGEOM) postgis versions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1474
+#: release_notes.xml:2014
 #, no-c-format
 msgid "NEW -p (prepare) flag for shp2pgsql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1476
+#: release_notes.xml:2016
 #, no-c-format
 msgid "NEW manual chapter about OGC compliancy enforcement"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1478
+#: release_notes.xml:2018
 #, no-c-format
 msgid "NEW autoconf support for JTS lib"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1480
+#: release_notes.xml:2020
 #, no-c-format
 msgid "BUGFIX in estimator testers (support for LWGEOM and schema parsing)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1486
+#: release_notes.xml:2026
 #, no-c-format
 msgid "Release 1.0.0RC6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1488
+#: release_notes.xml:2028
 #, no-c-format
 msgid "Release date: 2005/03/30"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1490
+#: release_notes.xml:2030
 #, no-c-format
 msgid ""
 "Sixth release candidate for 1.0.0. Contains a few bug fixes and cleanups."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1496 release_notes.xml:1572 release_notes.xml:1639
-#: release_notes.xml:1736 release_notes.xml:1790
+#: release_notes.xml:2036 release_notes.xml:2112 release_notes.xml:2179
+#: release_notes.xml:2276 release_notes.xml:2330
 #, no-c-format
 msgid ""
 "You need a dump/reload to upgrade from precedent releases. See the <link "
@@ -3854,56 +5954,56 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1504
+#: release_notes.xml:2044
 #, no-c-format
 msgid "BUGFIX in multi()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1506
+#: release_notes.xml:2046
 #, no-c-format
 msgid "early return [when noop] from multi()"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1510 release_notes.xml:1596 release_notes.xml:1669
-#: release_notes.xml:1761
+#: release_notes.xml:2050 release_notes.xml:2136 release_notes.xml:2209
+#: release_notes.xml:2301
 #, no-c-format
 msgid "Scripts changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1512
+#: release_notes.xml:2052
 #, no-c-format
 msgid "dropped {x,y}{min,max}(box2d) functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1518
+#: release_notes.xml:2058
 #, no-c-format
 msgid "BUGFIX in postgis_restore.pl scrip"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1520
+#: release_notes.xml:2060
 #, no-c-format
 msgid "BUGFIX in dumper's 64bit support"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1525
+#: release_notes.xml:2065
 #, no-c-format
 msgid "Release 1.0.0RC5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1527
+#: release_notes.xml:2067
 #, no-c-format
 msgid "Release date: 2005/03/25"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1529
+#: release_notes.xml:2069
 #, no-c-format
 msgid ""
 "Fifth release candidate for 1.0.0. Contains a few bug fixes and a "
@@ -3911,7 +6011,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1535
+#: release_notes.xml:2075
 #, no-c-format
 msgid ""
 "If you are upgrading from release 1.0.0RC4 you <emphasis>DO NOT</emphasis> "
@@ -3919,43 +6019,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1546
+#: release_notes.xml:2086
 #, no-c-format
 msgid "BUGFIX (segfaulting) in box3d computation (yes, another!)."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1549
+#: release_notes.xml:2089
 #, no-c-format
 msgid "BUGFIX (segfaulting) in estimated_extent()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1555
+#: release_notes.xml:2095
 #, no-c-format
 msgid "Small build scripts and utilities refinements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1557
+#: release_notes.xml:2097
 #, no-c-format
 msgid "Additional performance tips documented."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1562
+#: release_notes.xml:2102
 #, no-c-format
 msgid "Release 1.0.0RC4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1564
+#: release_notes.xml:2104
 #, no-c-format
 msgid "Release date: 2005/03/18"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1566
+#: release_notes.xml:2106
 #, no-c-format
 msgid ""
 "Fourth release candidate for 1.0.0. Contains bug fixes and a few "
@@ -3963,80 +6063,80 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1580
+#: release_notes.xml:2120
 #, no-c-format
 msgid "BUGFIX (segfaulting) in geom_accum()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1582
+#: release_notes.xml:2122
 #, no-c-format
 msgid "BUGFIX in 64bit architectures support."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1584
+#: release_notes.xml:2124
 #, no-c-format
 msgid "BUGFIX in box3d computation function with collections."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1586
+#: release_notes.xml:2126
 #, no-c-format
 msgid "NEW subselects support in selectivity estimator."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1588
+#: release_notes.xml:2128
 #, no-c-format
 msgid "Early return from force_collection."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1590
+#: release_notes.xml:2130
 #, no-c-format
 msgid "Consistency check fix in SnapToGrid()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1592
+#: release_notes.xml:2132
 #, no-c-format
 msgid "Box2d output changed back to 15 significant digits."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1598
+#: release_notes.xml:2138
 #, no-c-format
 msgid "NEW distance_sphere() function."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1600
+#: release_notes.xml:2140
 #, no-c-format
 msgid ""
 "Changed get_proj4_from_srid implementation to use PL/PGSQL instead of SQL."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1607
+#: release_notes.xml:2147
 #, no-c-format
 msgid "BUGFIX in loader and dumper handling of MultiLine shapes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1609
+#: release_notes.xml:2149
 #, no-c-format
 msgid "BUGFIX in loader, skipping all but first hole of polygons."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1612
+#: release_notes.xml:2152
 #, no-c-format
 msgid "jdbc2: code cleanups, Makefile improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1614
+#: release_notes.xml:2154
 #, no-c-format
 msgid ""
 "FLEX and YACC variables set *after* pgsql Makefile.global is included and "
@@ -4044,62 +6144,62 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1618
+#: release_notes.xml:2158
 #, no-c-format
 msgid "Added already generated parser in release"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1620
+#: release_notes.xml:2160
 #, no-c-format
 msgid "Build scripts refinements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1622
+#: release_notes.xml:2162
 #, no-c-format
 msgid "improved version handling, central Version.config"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1624
+#: release_notes.xml:2164
 #, no-c-format
 msgid "improvements in postgis_restore.pl"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1629
+#: release_notes.xml:2169
 #, no-c-format
 msgid "Release 1.0.0RC3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1631
+#: release_notes.xml:2171
 #, no-c-format
 msgid "Release date: 2005/02/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1633
+#: release_notes.xml:2173
 #, no-c-format
 msgid ""
 "Third release candidate for 1.0.0. Contains many bug fixes and improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1647
+#: release_notes.xml:2187
 #, no-c-format
 msgid "BUGFIX in transform(): missing SRID, better error handling."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1650
+#: release_notes.xml:2190
 #, no-c-format
 msgid "BUGFIX in memory alignment handling"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1652
+#: release_notes.xml:2192
 #, no-c-format
 msgid ""
 "BUGFIX in force_collection() causing mapserver connector failures on simple "
@@ -4107,43 +6207,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1655
+#: release_notes.xml:2195
 #, no-c-format
 msgid "BUGFIX in GeometryFromText() missing to add a bbox cache."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1657
+#: release_notes.xml:2197
 #, no-c-format
 msgid "reduced precision of box2d output."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1659
+#: release_notes.xml:2199
 #, no-c-format
 msgid "prefixed DEBUG macros with PGIS_ to avoid clash with pgsql one"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1662
+#: release_notes.xml:2202
 #, no-c-format
 msgid "plugged a leak in GEOS2POSTGIS converter"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1664
+#: release_notes.xml:2204
 #, no-c-format
 msgid "Reduced memory usage by early releasing query-context palloced one."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1671
+#: release_notes.xml:2211
 #, no-c-format
 msgid "BUGFIX in 72 index bindings."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1673
+#: release_notes.xml:2213
 #, no-c-format
 msgid ""
 "BUGFIX in probe_geometry_columns() to work with PG72 and support multiple "
@@ -4151,31 +6251,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1676
+#: release_notes.xml:2216
 #, no-c-format
 msgid "NEW bool::text cast"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1678
+#: release_notes.xml:2218
 #, no-c-format
 msgid "Some functions made IMMUTABLE from STABLE, for performance improvement."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1685
+#: release_notes.xml:2225
 #, no-c-format
 msgid "jdbc2: small patches, box2d/3d tests, revised docs and license."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1688
+#: release_notes.xml:2228
 #, no-c-format
 msgid "jdbc2: bug fix and testcase in for pgjdbc 8.0 type autoregistration"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1691
+#: release_notes.xml:2231
 #, no-c-format
 msgid ""
 "jdbc2: Removed use of jdk1.4 only features to enable build with older jdk "
@@ -4183,67 +6283,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1694
+#: release_notes.xml:2234
 #, no-c-format
 msgid "jdbc2: Added support for building against pg72jdbc2.jar"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1696
+#: release_notes.xml:2236
 #, no-c-format
 msgid "jdbc2: updated and cleaned makefile"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1698
+#: release_notes.xml:2238
 #, no-c-format
 msgid "jdbc2: added BETA support for jts geometry classes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1700
+#: release_notes.xml:2240
 #, no-c-format
 msgid "jdbc2: Skip known-to-fail tests against older PostGIS servers."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1703
+#: release_notes.xml:2243
 #, no-c-format
 msgid "jdbc2: Fixed handling of measured geometries in EWKT."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1709
+#: release_notes.xml:2249
 #, no-c-format
 msgid "new performance tips chapter in manual"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1711
+#: release_notes.xml:2251
 #, no-c-format
 msgid "documentation updates: pgsql72 requirement, lwpostgis.sql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1713
+#: release_notes.xml:2253
 #, no-c-format
 msgid "few changes in autoconf"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1715
+#: release_notes.xml:2255
 #, no-c-format
 msgid "BUILDDATE extraction made more portable"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1717
+#: release_notes.xml:2257
 #, no-c-format
 msgid "fixed spatial_ref_sys.sql to avoid vacuuming the whole database."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1720
+#: release_notes.xml:2260
 #, no-c-format
 msgid ""
 "spatial_ref_sys: changed Paris entries to match the ones distributed with 0."
@@ -4251,19 +6351,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1726
+#: release_notes.xml:2266
 #, no-c-format
 msgid "Release 1.0.0RC2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1728
+#: release_notes.xml:2268
 #, no-c-format
 msgid "Release date: 2005/01/26"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1730
+#: release_notes.xml:2270
 #, no-c-format
 msgid ""
 "Second release candidate for 1.0.0 containing bug fixes and a few "
@@ -4271,85 +6371,85 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1744
+#: release_notes.xml:2284
 #, no-c-format
 msgid "BUGFIX in pointarray box3d computation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1746
+#: release_notes.xml:2286
 #, no-c-format
 msgid "BUGFIX in distance_spheroid definition"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1748
+#: release_notes.xml:2288
 #, no-c-format
 msgid "BUGFIX in transform() missing to update bbox cache"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1750
+#: release_notes.xml:2290
 #, no-c-format
 msgid "NEW jdbc driver (jdbc2)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1752
+#: release_notes.xml:2292
 #, no-c-format
 msgid "GEOMETRYCOLLECTION(EMPTY) syntax support for backward compatibility"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1755
+#: release_notes.xml:2295
 #, no-c-format
 msgid "Faster binary outputs"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1757
+#: release_notes.xml:2297
 #, no-c-format
 msgid "Stricter OGC WKB/WKT constructors"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1763
+#: release_notes.xml:2303
 #, no-c-format
 msgid "More correct STABLE, IMMUTABLE, STRICT uses in lwpostgis.sql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1766
+#: release_notes.xml:2306
 #, no-c-format
 msgid "stricter OGC WKB/WKT constructors"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1772
+#: release_notes.xml:2312
 #, no-c-format
 msgid "Faster and more robust loader (both i18n and not)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1774
+#: release_notes.xml:2314
 #, no-c-format
 msgid "Initial autoconf script"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1779
+#: release_notes.xml:2319
 #, no-c-format
 msgid "Release 1.0.0RC1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1781
+#: release_notes.xml:2321
 #, no-c-format
 msgid "Release date: 2005/01/13"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1783
+#: release_notes.xml:2323
 #, no-c-format
 msgid ""
 "This is the first candidate of a major postgis release, with internal "
@@ -4358,25 +6458,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1798
+#: release_notes.xml:2338
 #, no-c-format
 msgid "Faster canonical input parsing."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1800
+#: release_notes.xml:2340
 #, no-c-format
 msgid "Lossless canonical output."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1802
+#: release_notes.xml:2342
 #, no-c-format
 msgid "EWKB Canonical binary IO with PG>73."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1804
+#: release_notes.xml:2344
 #, no-c-format
 msgid ""
 "Support for up to 4d coordinates, providing lossless shapefile->postgis-"
@@ -4384,7 +6484,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1807
+#: release_notes.xml:2347
 #, no-c-format
 msgid ""
 "New function: UpdateGeometrySRID(), AsGML(), SnapToGrid(), ForceRHR(), "
@@ -4392,31 +6492,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1810
+#: release_notes.xml:2350
 #, no-c-format
 msgid "Vertical positioning indexed operators."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1812
+#: release_notes.xml:2352
 #, no-c-format
 msgid "JOIN selectivity function."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1814
+#: release_notes.xml:2354
 #, no-c-format
 msgid "More geometry constructors / editors."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1816
+#: release_notes.xml:2356
 #, no-c-format
 msgid "PostGIS extension API."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1818
+#: release_notes.xml:2358
 #, no-c-format
 msgid "UTF8 support in loader."
 msgstr ""
diff --git a/doc/po/pt_BR/using_postgis_dataman.xml.po b/doc/po/pt_BR/using_postgis_dataman.xml.po
index cc063ac..5e98b51 100644
--- a/doc/po/pt_BR/using_postgis_dataman.xml.po
+++ b/doc/po/pt_BR/using_postgis_dataman.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -89,7 +89,7 @@ msgstr ""
 #. Tag: para
 #: using_postgis_dataman.xml:41
 #, no-c-format
-msgid "MULTIPOINT(0 0,1 2)"
+msgid "MULTIPOINT((0 0),(1 2))"
 msgstr ""
 
 #. Tag: para
@@ -433,9 +433,9 @@ msgstr ""
 #: using_postgis_dataman.xml:212
 #, no-c-format
 msgid ""
-"Example compound curve in a curve polygon: CURVEPOLYGON(COMPOUNDCURVE"
-"(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, 1 4, 0 0)), CIRCULARSTRING"
-"(1.7 1, 1.4 0.4, 1.6 0.4, 1.6 0.5, 1.7 1) )"
+"Example compound curve in a curve polygon: "
+"CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, "
+"1 4, 0 0)), CIRCULARSTRING(1.7 1, 1.4 0.4, 1.6 0.4, 1.6 0.5, 1.7 1) )"
 msgstr ""
 
 #. Tag: para
@@ -593,8 +593,8 @@ msgstr ""
 #: using_postgis_dataman.xml:277
 #, no-c-format
 msgid ""
-"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog geography"
-"(POINT,4326) );"
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINT,4326) );"
 msgstr ""
 
 #. Tag: para
@@ -607,8 +607,8 @@ msgstr ""
 #: using_postgis_dataman.xml:279
 #, no-c-format
 msgid ""
-"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog geography"
-"(POINTZ,4326) );"
+"CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog "
+"geography(POINTZ,4326) );"
 msgstr ""
 
 #. Tag: para
@@ -820,8 +820,8 @@ msgstr ""
 #, no-c-format
 msgid ""
 "-- Distance calculation using GEOMETRY (13.3 \"degrees\")\n"
-"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, 'POINT"
-"(-21.96 64.15)':: geometry);"
+"  SELECT ST_Distance('LINESTRING(-122.33 47.606, 0.0 51.5)'::geometry, "
+"'POINT(-21.96 64.15)':: geometry);"
 msgstr ""
 
 #. Tag: para
@@ -1550,9 +1550,8 @@ msgid ""
 "The AddGeometryColumn() approach creates a geometry column and also "
 "registers the new column in the geometry_columns table. If your software "
 "utilizes geometry_columns, then any geometry columns you need to query by "
-"must be registered in this view. Starting with PoastGIS 2.0, "
-"geometry_columns is no longer editable and all geometry columns are "
-"autoregistered."
+"must be registered in this view. Starting with PostGIS 2.0, geometry_columns "
+"is no longer editable and all geometry columns are autoregistered."
 msgstr ""
 
 #. Tag: para
@@ -1685,8 +1684,8 @@ msgid ""
 "\n"
 "-----------+-----------------------"
 "+------------------------------------------------------\n"
-" gid       | integer               | not null default nextval"
-"('pois_ny_gid_seq'::regclass)\n"
+" gid       | integer               | not null default "
+"nextval('pois_ny_gid_seq'::regclass)\n"
 " poi_name  | text                  |\n"
 " cat       | character varying(20) |\n"
 " geom      | geometry(Point,4326)  |\n"
@@ -1824,8 +1823,8 @@ msgid ""
 "is one that has no anomalous geometric points, such as self intersection or "
 "self tangency and primarily refers to 0 or 1-dimensional geometries (i.e. "
 "<varname>[MULTI]POINT, [MULTI]LINESTRING</varname>). Geometry validity, on "
-"the other hand, primarily refers to 2-dimensional geometries (i.e. <varname>"
-"[MULTI]POLYGON)</varname> and defines the set of assertions that "
+"the other hand, primarily refers to 2-dimensional geometries (i.e. "
+"<varname>[MULTI]POLYGON)</varname> and defines the set of assertions that "
 "characterizes a valid polygon. The description of each geometric class "
 "includes specific conditions that further detail geometric simplicity and "
 "validity."
@@ -1887,8 +1886,8 @@ msgstr ""
 #, no-c-format
 msgid ""
 "<emphasis role=\"bold\">(a)</emphasis> and <emphasis role=\"bold\">(c)</"
-"emphasis> are simple <varname>LINESTRING</varname>s, <emphasis role=\"bold\">"
-"(b)</emphasis> and <emphasis role=\"bold\">(d)</emphasis> are not."
+"emphasis> are simple <varname>LINESTRING</varname>s, <emphasis role=\"bold"
+"\">(b)</emphasis> and <emphasis role=\"bold\">(d)</emphasis> are not."
 msgstr ""
 
 #. Tag: para
@@ -2276,99 +2275,81 @@ msgstr ""
 
 #. Tag: emphasis
 #: using_postgis_dataman.xml:1174 using_postgis_dataman.xml:1184
-#: using_postgis_dataman.xml:1377 using_postgis_dataman.xml:1390
+#: using_postgis_dataman.xml:1268 using_postgis_dataman.xml:1281
 #, no-c-format
 msgid "<emphasis role=\"bold\">Interior</emphasis>"
 msgstr ""
 
 #. Tag: emphasis
-#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1227
-#: using_postgis_dataman.xml:1380 using_postgis_dataman.xml:1413
+#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1190
+#: using_postgis_dataman.xml:1271 using_postgis_dataman.xml:1304
 #, no-c-format
 msgid "<emphasis role=\"bold\">Boundary</emphasis>"
 msgstr ""
 
 #. Tag: emphasis
-#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1270
-#: using_postgis_dataman.xml:1383 using_postgis_dataman.xml:1436
+#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1196
+#: using_postgis_dataman.xml:1274 using_postgis_dataman.xml:1327
 #, no-c-format
 msgid "<emphasis role=\"bold\">Exterior</emphasis>"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1188
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1185
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+msgid "dim( I(a) ∩ I(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1201
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1186
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+msgid "dim( I(a) ∩ B(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1214
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1187
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+msgid "dim( I(a) ∩ E(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1231
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1191
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+msgid "dim( B(a) ∩ I(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1244
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1192
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+msgid "dim( B(a) ∩ B(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1257
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1193
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+msgid "dim( B(a) ∩ E(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1274
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1197
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+msgid "dim( E(a) ∩ I(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1287
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1198
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+msgid "dim( E(a) ∩ B(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1300
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1199
 #, no-c-format
-msgid ""
-"<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:mo> "
-"<mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+msgid "dim( E(a) ∩ E(b) )"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1315
+#: using_postgis_dataman.xml:1206
 #, no-c-format
 msgid ""
 "Where <emphasis>dim(a)</emphasis> is the dimension of <emphasis>a</emphasis> "
@@ -2377,69 +2358,69 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1322
+#: using_postgis_dataman.xml:1213
 #, no-c-format
 msgid "<literal>0</literal> => point"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1326
+#: using_postgis_dataman.xml:1217
 #, no-c-format
 msgid "<literal>1</literal> => line"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1330
+#: using_postgis_dataman.xml:1221
 #, no-c-format
 msgid "<literal>2</literal> => area"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1334
+#: using_postgis_dataman.xml:1225
 #, no-c-format
 msgid "<literal>T</literal> => <literal>{0,1,2}</literal>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1339
+#: using_postgis_dataman.xml:1230
 #, no-c-format
 msgid "<literal>F</literal> => empty set"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1343
+#: using_postgis_dataman.xml:1234
 #, no-c-format
 msgid "<literal>*</literal> => don't care"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1347
+#: using_postgis_dataman.xml:1238
 #, no-c-format
 msgid "Visually, for two overlapping polygonal geometries, this looks like:"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1394 using_postgis_dataman.xml:1406
-#: using_postgis_dataman.xml:1440 using_postgis_dataman.xml:1452
+#: using_postgis_dataman.xml:1285 using_postgis_dataman.xml:1297
+#: using_postgis_dataman.xml:1331 using_postgis_dataman.xml:1343
 #, no-c-format
 msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">2</emphasis>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1400 using_postgis_dataman.xml:1417
-#: using_postgis_dataman.xml:1429 using_postgis_dataman.xml:1446
+#: using_postgis_dataman.xml:1291 using_postgis_dataman.xml:1308
+#: using_postgis_dataman.xml:1320 using_postgis_dataman.xml:1337
 #, no-c-format
 msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">1</emphasis>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1423
+#: using_postgis_dataman.xml:1314
 #, no-c-format
 msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">0</emphasis>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1464
+#: using_postgis_dataman.xml:1355
 #, no-c-format
 msgid ""
 "Read from left to right and from top to bottom, the dimensional matrix is "
@@ -2447,7 +2428,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1467
+#: using_postgis_dataman.xml:1358
 #, no-c-format
 msgid ""
 "A relate matrix that would therefore represent our first example of two "
@@ -2456,7 +2437,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1471
+#: using_postgis_dataman.xml:1362
 #, no-c-format
 msgid ""
 "-- Identify road segments that cross on a line\n"
@@ -2468,7 +2449,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1473
+#: using_postgis_dataman.xml:1364
 #, no-c-format
 msgid ""
 "A relate matrix that represents the second example of wharfs partly on the "
@@ -2476,7 +2457,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1477
+#: using_postgis_dataman.xml:1368
 #, no-c-format
 msgid ""
 "-- Identify wharfs partly on a lake's shoreline\n"
@@ -2487,13 +2468,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1479
+#: using_postgis_dataman.xml:1370
 #, no-c-format
 msgid "For more information or reading, see:"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1483
+#: using_postgis_dataman.xml:1374
 #, no-c-format
 msgid ""
 "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">OpenGIS Simple "
@@ -2502,32 +2483,32 @@ msgid ""
 msgstr ""
 
 #. Tag: ulink
-#: using_postgis_dataman.xml:1488
+#: using_postgis_dataman.xml:1379
 #, no-c-format
 msgid ""
 "Dimensionally Extended Nine-Intersection Model (DE-9IM) by Christian Strobl"
 msgstr ""
 
 #. Tag: ulink
-#: using_postgis_dataman.xml:1492
+#: using_postgis_dataman.xml:1383
 #, no-c-format
 msgid "GeoTools: Point Set Theory and the DE-9IM Matrix"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1495
+#: using_postgis_dataman.xml:1386
 #, no-c-format
 msgid "<emphasis>Encyclopedia of GIS</emphasis> By Hui Xiong"
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1505
+#: using_postgis_dataman.xml:1396
 #, no-c-format
-msgid "Loading GIS Data"
+msgid "Loading GIS (Vector) Data"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1507
+#: using_postgis_dataman.xml:1398
 #, no-c-format
 msgid ""
 "Once you have created a spatial table, you are ready to upload GIS data to "
@@ -2537,13 +2518,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1513 using_postgis_dataman.xml:1789
+#: using_postgis_dataman.xml:1404
 #, no-c-format
-msgid "Using SQL"
+msgid "Loading Data Using SQL"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1515
+#: using_postgis_dataman.xml:1406
 #, no-c-format
 msgid ""
 "If you can convert your data to a text representation, then using formatted "
@@ -2553,7 +2534,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1521
+#: using_postgis_dataman.xml:1412
 #, no-c-format
 msgid ""
 "A data upload file (<filename>roads.sql</filename> for example) might look "
@@ -2561,7 +2542,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1524
+#: using_postgis_dataman.xml:1415
 #, no-c-format
 msgid ""
 "BEGIN;\n"
@@ -2587,7 +2568,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1526
+#: using_postgis_dataman.xml:1417
 #, no-c-format
 msgid ""
 "The data file can be piped into PostgreSQL very easily using the \"psql\" "
@@ -2595,19 +2576,19 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1529
+#: using_postgis_dataman.xml:1420
 #, no-c-format
 msgid "psql -d [database] -f roads.sql"
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1533
+#: using_postgis_dataman.xml:1424
 #, no-c-format
-msgid "Using the Loader"
+msgid "shp2pgsql: Using the ESRI Shapefile Loader"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1535
+#: using_postgis_dataman.xml:1426
 #, no-c-format
 msgid ""
 "The <filename>shp2pgsql</filename> data loader converts ESRI Shape files "
@@ -2617,7 +2598,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1540
+#: using_postgis_dataman.xml:1431
 #, no-c-format
 msgid ""
 "In addition to the shp2pgsql command-line loader, there is an "
@@ -2628,19 +2609,19 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1547
+#: using_postgis_dataman.xml:1438
 #, no-c-format
 msgid "(c|a|d|p) These are mutually exclusive options:"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1552
+#: using_postgis_dataman.xml:1443
 #, no-c-format
 msgid "<term>-c</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1554
+#: using_postgis_dataman.xml:1445
 #, no-c-format
 msgid ""
 "Creates a new table and populates it from the shapefile. <emphasis>This is "
@@ -2648,13 +2629,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1562
+#: using_postgis_dataman.xml:1453
 #, no-c-format
 msgid "<term>-a</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1564
+#: using_postgis_dataman.xml:1455
 #, no-c-format
 msgid ""
 "Appends data from the Shape file into the database table. Note that to use "
@@ -2663,13 +2644,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1573 using_postgis_dataman.xml:1948
+#: using_postgis_dataman.xml:1464 using_postgis_dataman.xml:1853
 #, no-c-format
 msgid "<term>-d</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1575
+#: using_postgis_dataman.xml:1466
 #, no-c-format
 msgid ""
 "Drops the database table before creating a new table with the data in the "
@@ -2677,13 +2658,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1583
+#: using_postgis_dataman.xml:1474
 #, no-c-format
 msgid "<term>-p</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1585
+#: using_postgis_dataman.xml:1476
 #, no-c-format
 msgid ""
 "Only produces the table creation SQL code, without adding any actual data. "
@@ -2692,25 +2673,25 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1598
+#: using_postgis_dataman.xml:1489
 #, no-c-format
 msgid "<term>-?</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1600
+#: using_postgis_dataman.xml:1491
 #, no-c-format
 msgid "Display help screen."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1607
+#: using_postgis_dataman.xml:1498
 #, no-c-format
 msgid "<term>-D</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1609
+#: using_postgis_dataman.xml:1500
 #, no-c-format
 msgid ""
 "Use the PostgreSQL \"dump\" format for the output data. This can be combined "
@@ -2719,13 +2700,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1618
+#: using_postgis_dataman.xml:1509
 #, no-c-format
 msgid "-s [<FROM_SRID%gt;:]<SRID>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1620
+#: using_postgis_dataman.xml:1511
 #, no-c-format
 msgid ""
 "Creates and populates the geometry tables with the specified SRID. "
@@ -2735,13 +2716,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1631
+#: using_postgis_dataman.xml:1522
 #, no-c-format
 msgid "<term>-k</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1633
+#: using_postgis_dataman.xml:1524
 #, no-c-format
 msgid ""
 "Keep identifiers' case (column, schema and attributes). Note that attributes "
@@ -2749,13 +2730,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1641
+#: using_postgis_dataman.xml:1532
 #, no-c-format
 msgid "<term>-i</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1643
+#: using_postgis_dataman.xml:1534
 #, no-c-format
 msgid ""
 "Coerce all integers to standard 32-bit integers, do not create 64-bit "
@@ -2763,25 +2744,49 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1651
+#: using_postgis_dataman.xml:1542
 #, no-c-format
 msgid "<term>-I</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1653
+#: using_postgis_dataman.xml:1544
 #, no-c-format
 msgid "Create a GiST index on the geometry column."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1659
+#: using_postgis_dataman.xml:1551
+#, no-c-format
+msgid "<term>-m</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1553
+#, no-c-format
+msgid ""
+"-m <filename>a_file_name</filename> Specify a file containing a set of "
+"mappings of (long) column names to 10 character DBF column names. The "
+"content of the file is one or more lines of two names separated by white "
+"space and no trailing or leading space. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1558
+#, no-c-format
+msgid ""
+"COLUMNNAME DBFFIELD1\n"
+"AVERYLONGCOLUMNNAME DBFFIELD2"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1564
 #, no-c-format
 msgid "<term>-S</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1661
+#: using_postgis_dataman.xml:1566
 #, no-c-format
 msgid ""
 "Generate simple geometries instead of MULTI geometries. Will only succeed if "
@@ -2790,13 +2795,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1670
+#: using_postgis_dataman.xml:1575
 #, no-c-format
 msgid "-t <dimensionality>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1672
+#: using_postgis_dataman.xml:1577
 #, no-c-format
 msgid ""
 "Force the output geometry to have the specified dimensionality. Use the "
@@ -2804,7 +2809,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1676
+#: using_postgis_dataman.xml:1581
 #, no-c-format
 msgid ""
 "If the input has fewer dimensions that specified, the output will have those "
@@ -2813,13 +2818,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1685
+#: using_postgis_dataman.xml:1590
 #, no-c-format
 msgid "<term>-w</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1687
+#: using_postgis_dataman.xml:1592
 #, no-c-format
 msgid ""
 "Output WKT format, instead of WKB. Note that this can introduce coordinate "
@@ -2827,13 +2832,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1695
+#: using_postgis_dataman.xml:1600
 #, no-c-format
 msgid "<term>-e</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1697
+#: using_postgis_dataman.xml:1602
 #, no-c-format
 msgid ""
 "Execute each statement on its own, without using a transaction. This allows "
@@ -2843,13 +2848,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1707
+#: using_postgis_dataman.xml:1612
 #, no-c-format
 msgid "-W <encoding>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1709
+#: using_postgis_dataman.xml:1614
 #, no-c-format
 msgid ""
 "Specify encoding of the input data (dbf file). When used, all attributes of "
@@ -2860,25 +2865,25 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1719
+#: using_postgis_dataman.xml:1624
 #, no-c-format
 msgid "-N <policy>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1721
+#: using_postgis_dataman.xml:1626
 #, no-c-format
 msgid "NULL geometries handling policy (insert*,skip,abort)"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1727
+#: using_postgis_dataman.xml:1632
 #, no-c-format
 msgid "<term>-n</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1729
+#: using_postgis_dataman.xml:1634
 #, no-c-format
 msgid ""
 "-n Only import DBF file. If your data has no corresponding shapefile, it "
@@ -2888,13 +2893,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1737
+#: using_postgis_dataman.xml:1642
 #, no-c-format
 msgid "<term>-G</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1739
+#: using_postgis_dataman.xml:1644
 #, no-c-format
 msgid ""
 "Use geography type instead of geometry (requires lon/lat data) in WGS84 long "
@@ -2902,13 +2907,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1745
+#: using_postgis_dataman.xml:1650
 #, no-c-format
 msgid "-T <tablespace>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1747
+#: using_postgis_dataman.xml:1652
 #, no-c-format
 msgid ""
 "Specify the tablespace for the new table. Indexes will still use the default "
@@ -2917,13 +2922,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1755
+#: using_postgis_dataman.xml:1660
 #, no-c-format
 msgid "-X <tablespace>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1757
+#: using_postgis_dataman.xml:1662
 #, no-c-format
 msgid ""
 "Specify the tablespace for the new table's indexes. This applies to the "
@@ -2931,7 +2936,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1765
+#: using_postgis_dataman.xml:1670
 #, no-c-format
 msgid ""
 "An example session using the loader to create an input file and uploading it "
@@ -2939,7 +2944,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1770
+#: using_postgis_dataman.xml:1675
 #, no-c-format
 msgid ""
 "# shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > "
@@ -2948,25 +2953,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1772
+#: using_postgis_dataman.xml:1677
 #, no-c-format
 msgid "A conversion and upload can be done all in one step using UNIX pipes:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1776
+#: using_postgis_dataman.xml:1681
 #, no-c-format
 msgid "# shp2pgsql shaperoads.shp myschema.roadstable | psql -d roadsdb"
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1781
+#: using_postgis_dataman.xml:1686
 #, no-c-format
 msgid "Retrieving GIS Data"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1783
+#: using_postgis_dataman.xml:1688
 #, no-c-format
 msgid ""
 "Data can be extracted from the database using either SQL or the Shape file "
@@ -2974,8 +2979,14 @@ msgid ""
 "available to do comparisons and queries on spatial tables."
 msgstr ""
 
+#. Tag: title
+#: using_postgis_dataman.xml:1694
+#, no-c-format
+msgid "Using SQL to Retrieve Data"
+msgstr ""
+
 #. Tag: para
-#: using_postgis_dataman.xml:1791
+#: using_postgis_dataman.xml:1696
 #, no-c-format
 msgid ""
 "The most straightforward means of pulling data out of the database is to use "
@@ -2984,7 +2995,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1796
+#: using_postgis_dataman.xml:1701
 #, no-c-format
 msgid ""
 "db=# SELECT road_id, ST_AsText(road_geom) AS geom, road_name FROM roads;\n"
@@ -3002,7 +3013,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1798
+#: using_postgis_dataman.xml:1703
 #, no-c-format
 msgid ""
 "However, there will be times when some kind of restriction is necessary to "
@@ -3013,13 +3024,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1806
+#: using_postgis_dataman.xml:1711
 #, no-c-format
 msgid "&&"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1809
+#: using_postgis_dataman.xml:1714
 #, no-c-format
 msgid ""
 "This operator tells whether the bounding box of one geometry intersects the "
@@ -3027,13 +3038,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1815
+#: using_postgis_dataman.xml:1720
 #, no-c-format
 msgid "ST_OrderingEquals"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1818
+#: using_postgis_dataman.xml:1723
 #, no-c-format
 msgid ""
 "This tests whether two geometries are geometrically identical. For example, "
@@ -3042,13 +3053,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1825
+#: using_postgis_dataman.xml:1730
 #, no-c-format
 msgid "<term>=</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1828
+#: using_postgis_dataman.xml:1733
 #, no-c-format
 msgid ""
 "This operator is a little more naive, it only tests whether the bounding "
@@ -3056,7 +3067,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1834
+#: using_postgis_dataman.xml:1739
 #, no-c-format
 msgid ""
 "Next, you can use these operators in queries. Note that when specifying "
@@ -3067,7 +3078,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1840
+#: using_postgis_dataman.xml:1745
 #, no-c-format
 msgid ""
 "SELECT road_id, road_name\n"
@@ -3077,7 +3088,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1842
+#: using_postgis_dataman.xml:1747
 #, no-c-format
 msgid ""
 "The above query would return the single record from the \"ROADS_GEOM\" table "
@@ -3085,7 +3096,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1845
+#: using_postgis_dataman.xml:1750
 #, no-c-format
 msgid ""
 "When using the \"&&\" operator, you can specify either a BOX3D as "
@@ -3094,7 +3105,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1850
+#: using_postgis_dataman.xml:1755
 #, no-c-format
 msgid ""
 "SELECT road_id, road_name\n"
@@ -3103,7 +3114,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1852
+#: using_postgis_dataman.xml:1757
 #, no-c-format
 msgid ""
 "The above query will use the bounding box of the polygon for comparison "
@@ -3111,7 +3122,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1855
+#: using_postgis_dataman.xml:1760
 #, no-c-format
 msgid ""
 "The most common spatial query will probably be a \"frame-based\" query, used "
@@ -3121,7 +3132,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1860
+#: using_postgis_dataman.xml:1765
 #, no-c-format
 msgid ""
 "SELECT ST_AsText(roads_geom) AS geom\n"
@@ -3131,20 +3142,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1862
+#: using_postgis_dataman.xml:1767
 #, no-c-format
 msgid ""
 "Note the use of the SRID 312, to specify the projection of the envelope."
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1866
+#: using_postgis_dataman.xml:1771
 #, no-c-format
 msgid "Using the Dumper"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1868
+#: using_postgis_dataman.xml:1773
 #, no-c-format
 msgid ""
 "The <filename>pgsql2shp</filename> table dumper connects directly to the "
@@ -3153,92 +3164,92 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1872
+#: using_postgis_dataman.xml:1777
 #, no-c-format
 msgid ""
 "pgsql2shp [<options>] <database> [<schema>.]<table>"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1874
+#: using_postgis_dataman.xml:1779
 #, no-c-format
 msgid "pgsql2shp [<options>] <database> <query>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1876
+#: using_postgis_dataman.xml:1781
 #, no-c-format
 msgid "The commandline options are:"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1880
+#: using_postgis_dataman.xml:1785
 #, no-c-format
 msgid "-f <filename>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1883
+#: using_postgis_dataman.xml:1788
 #, no-c-format
 msgid "Write the output to a particular filename."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1888
+#: using_postgis_dataman.xml:1793
 #, no-c-format
 msgid "-h <host>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1891
+#: using_postgis_dataman.xml:1796
 #, no-c-format
 msgid "The database host to connect to."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1896
+#: using_postgis_dataman.xml:1801
 #, no-c-format
 msgid "-p <port>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1899
+#: using_postgis_dataman.xml:1804
 #, no-c-format
 msgid "The port to connect to on the database host."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1904
+#: using_postgis_dataman.xml:1809
 #, no-c-format
 msgid "-P <password>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1907
+#: using_postgis_dataman.xml:1812
 #, no-c-format
 msgid "The password to use when connecting to the database."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1912
+#: using_postgis_dataman.xml:1817
 #, no-c-format
 msgid "-u <user>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1915
+#: using_postgis_dataman.xml:1820
 #, no-c-format
 msgid "The username to use when connecting to the database."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1920
+#: using_postgis_dataman.xml:1825
 #, no-c-format
 msgid "-g <geometry column>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1923
+#: using_postgis_dataman.xml:1828
 #, no-c-format
 msgid ""
 "In the case of tables with multiple geometry columns, the geometry column to "
@@ -3246,13 +3257,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1929
+#: using_postgis_dataman.xml:1834
 #, no-c-format
 msgid "<term>-b</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1932
+#: using_postgis_dataman.xml:1837
 #, no-c-format
 msgid ""
 "Use a binary cursor. This will make the operation faster, but will not work "
@@ -3260,13 +3271,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1939
+#: using_postgis_dataman.xml:1844
 #, no-c-format
 msgid "<term>-r</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1942
+#: using_postgis_dataman.xml:1847
 #, no-c-format
 msgid ""
 "Raw mode. Do not drop the <varname>gid</varname> field, or escape column "
@@ -3274,7 +3285,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1951
+#: using_postgis_dataman.xml:1856
 #, no-c-format
 msgid ""
 "For backward compatibility: write a 3-dimensional shape file when dumping "
@@ -3284,13 +3295,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1959
+#: using_postgis_dataman.xml:1864
 #, no-c-format
 msgid "-m <varname>filename</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1961
+#: using_postgis_dataman.xml:1866
 #, no-c-format
 msgid ""
 "Remap identifiers to ten character names. The content of the file is lines "
@@ -3299,13 +3310,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1974
+#: using_postgis_dataman.xml:1879
 #, no-c-format
 msgid "Building Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1976
+#: using_postgis_dataman.xml:1881
 #, no-c-format
 msgid ""
 "Indexes are what make using a spatial database for large data sets possible. "
@@ -3317,7 +3328,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1986
+#: using_postgis_dataman.xml:1891
 #, no-c-format
 msgid ""
 "B-Trees are used for data which can be sorted along one axis; for example, "
@@ -3327,7 +3338,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1993
+#: using_postgis_dataman.xml:1898
 #, no-c-format
 msgid ""
 "R-Trees break up data into rectangles, and sub-rectangles, and sub-sub "
@@ -3337,7 +3348,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2000
+#: using_postgis_dataman.xml:1905
 #, no-c-format
 msgid ""
 "GiST (Generalized Search Trees) indexes break up data into \"things to one "
@@ -3347,13 +3358,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2009
+#: using_postgis_dataman.xml:1914
 #, no-c-format
 msgid "GiST Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2011
+#: using_postgis_dataman.xml:1916
 #, no-c-format
 msgid ""
 "GiST stands for \"Generalized Search Tree\" and is a generic form of "
@@ -3363,7 +3374,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2016
+#: using_postgis_dataman.xml:1921
 #, no-c-format
 msgid ""
 "Once a GIS data table exceeds a few thousand rows, you will want to build an "
@@ -3373,20 +3384,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2021
+#: using_postgis_dataman.xml:1926
 #, no-c-format
 msgid ""
 "The syntax for building a GiST index on a \"geometry\" column is as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2024
+#: using_postgis_dataman.xml:1929
 #, no-c-format
 msgid "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2025
+#: using_postgis_dataman.xml:1930
 #, no-c-format
 msgid ""
 "The above syntax will always build a 2D-index. To get the an n-dimensional "
@@ -3395,7 +3406,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2026
+#: using_postgis_dataman.xml:1931
 #, no-c-format
 msgid ""
 "CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield] "
@@ -3403,7 +3414,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2028
+#: using_postgis_dataman.xml:1933
 #, no-c-format
 msgid ""
 "Building a spatial index is a computationally intensive exercise: on tables "
@@ -3414,7 +3425,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2034
+#: using_postgis_dataman.xml:1939
 #, no-c-format
 msgid ""
 "VACUUM ANALYZE [table_name] [(column_name)];\n"
@@ -3423,7 +3434,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2036
+#: using_postgis_dataman.xml:1941
 #, no-c-format
 msgid ""
 "GiST indexes have two advantages over R-Tree indexes in PostgreSQL. Firstly, "
@@ -3437,13 +3448,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2048
+#: using_postgis_dataman.xml:1953
 #, no-c-format
 msgid "Using Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2050
+#: using_postgis_dataman.xml:1955
 #, no-c-format
 msgid ""
 "Ordinarily, indexes invisibly speed up data access: once the index is built, "
@@ -3454,7 +3465,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2057
+#: using_postgis_dataman.xml:1962
 #, no-c-format
 msgid ""
 "If you find your spatial indexes are not being used (or your attribute "
@@ -3462,7 +3473,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2063
+#: using_postgis_dataman.xml:1968
 #, no-c-format
 msgid ""
 "Firstly, make sure statistics are gathered about the number and "
@@ -3478,7 +3489,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2077
+#: using_postgis_dataman.xml:1982
 #, no-c-format
 msgid ""
 "If vacuuming does not work, you can force the planner to use the index "
@@ -3491,7 +3502,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2087
+#: using_postgis_dataman.xml:1992
 #, no-c-format
 msgid ""
 "As of version 0.6, it should not be necessary to force the planner to use "
@@ -3499,7 +3510,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2094
+#: using_postgis_dataman.xml:1999
 #, no-c-format
 msgid ""
 "If you find the planner wrong about the cost of sequential vs index scans "
@@ -3510,13 +3521,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2105
+#: using_postgis_dataman.xml:2010
 #, no-c-format
 msgid "Complex Queries"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2107
+#: using_postgis_dataman.xml:2012
 #, no-c-format
 msgid ""
 "The <emphasis>raison d'etre</emphasis> of spatial database functionality is "
@@ -3536,13 +3547,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2121
+#: using_postgis_dataman.xml:2026
 #, no-c-format
 msgid "Taking Advantage of Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2123
+#: using_postgis_dataman.xml:2028
 #, no-c-format
 msgid ""
 "When constructing a query it is important to remember that only the bounding-"
@@ -3553,7 +3564,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2130
+#: using_postgis_dataman.xml:2035
 #, no-c-format
 msgid ""
 "SELECT the_geom\n"
@@ -3563,7 +3574,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2132
+#: using_postgis_dataman.xml:2037
 #, no-c-format
 msgid ""
 "This query is selecting all the geometries in geom_table which are within "
@@ -3575,7 +3586,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2139
+#: using_postgis_dataman.xml:2044
 #, no-c-format
 msgid ""
 "SELECT the_geom\n"
@@ -3585,7 +3596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2141
+#: using_postgis_dataman.xml:2046
 #, no-c-format
 msgid ""
 "This query selects the same geometries, but it does it in a more efficient "
@@ -3602,13 +3613,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2155
+#: using_postgis_dataman.xml:2060
 #, no-c-format
 msgid "Change in Behavior"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2157
+#: using_postgis_dataman.xml:2062
 #, no-c-format
 msgid ""
 "As of PostGIS 1.3.0, most of the Geometry Relationship Functions, with the "
@@ -3617,13 +3628,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2164
+#: using_postgis_dataman.xml:2069
 #, no-c-format
 msgid "Examples of Spatial SQL"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2166
+#: using_postgis_dataman.xml:2071
 #, no-c-format
 msgid ""
 "The examples in this section will make use of two tables, a table of linear "
@@ -3632,7 +3643,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2170
+#: using_postgis_dataman.xml:2075
 #, no-c-format
 msgid ""
 "Column      | Type              | Description\n"
@@ -3643,14 +3654,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2172
+#: using_postgis_dataman.xml:2077
 #, no-c-format
 msgid ""
 "The table definition for the <varname>bc_municipality</varname> table is:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2175
+#: using_postgis_dataman.xml:2080
 #, no-c-format
 msgid ""
 "Column     | Type              | Description\n"
@@ -3662,19 +3673,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2180
+#: using_postgis_dataman.xml:2085
 #, no-c-format
 msgid "What is the total length of all roads, expressed in kilometers?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2185
+#: using_postgis_dataman.xml:2090
 #, no-c-format
 msgid "You can answer this question with a very simple piece of SQL:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2188
+#: using_postgis_dataman.xml:2093
 #, no-c-format
 msgid ""
 "SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM bc_roads;\n"
@@ -3686,13 +3697,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2194
+#: using_postgis_dataman.xml:2099
 #, no-c-format
 msgid "How large is the city of Prince George, in hectares?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2198
+#: using_postgis_dataman.xml:2103
 #, no-c-format
 msgid ""
 "This query combines an attribute condition (on the municipality name) with a "
@@ -3700,7 +3711,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2202
+#: using_postgis_dataman.xml:2107
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -3715,13 +3726,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2208
+#: using_postgis_dataman.xml:2113
 #, no-c-format
 msgid "What is the largest municipality in the province, by area?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2213
+#: using_postgis_dataman.xml:2118
 #, no-c-format
 msgid ""
 "This query brings a spatial measurement into the query condition. There are "
@@ -3729,7 +3740,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2217
+#: using_postgis_dataman.xml:2122
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -3747,7 +3758,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2219
+#: using_postgis_dataman.xml:2124
 #, no-c-format
 msgid ""
 "Note that in order to answer this query we have to calculate the area of "
@@ -3759,13 +3770,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2231
+#: using_postgis_dataman.xml:2136
 #, no-c-format
 msgid "What is the length of roads fully contained within each municipality?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2236
+#: using_postgis_dataman.xml:2141
 #, no-c-format
 msgid ""
 "This is an example of a \"spatial join\", because we are bringing together "
@@ -3775,7 +3786,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2242
+#: using_postgis_dataman.xml:2147
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -3800,7 +3811,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2244
+#: using_postgis_dataman.xml:2149
 #, no-c-format
 msgid ""
 "This query takes a while, because every road in the table is summarized into "
@@ -3810,13 +3821,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2253
+#: using_postgis_dataman.xml:2158
 #, no-c-format
 msgid "Create a new table with all the roads within the city of Prince George."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2258
+#: using_postgis_dataman.xml:2163
 #, no-c-format
 msgid ""
 "This is an example of an \"overlay\", which takes in two tables and outputs "
@@ -3827,7 +3838,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2265
+#: using_postgis_dataman.xml:2170
 #, no-c-format
 msgid ""
 "CREATE TABLE pg_roads as\n"
@@ -3842,13 +3853,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2271
+#: using_postgis_dataman.xml:2176
 #, no-c-format
 msgid "What is the length in kilometers of \"Douglas St\" in Victoria?"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2276
+#: using_postgis_dataman.xml:2181
 #, no-c-format
 msgid ""
 "SELECT\n"
@@ -3866,13 +3877,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2282
+#: using_postgis_dataman.xml:2187
 #, no-c-format
 msgid "What is the largest municipality polygon that has a hole?"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2287
+#: using_postgis_dataman.xml:2192
 #, no-c-format
 msgid ""
 "SELECT gid, name, ST_Area(the_geom) AS area\n"
diff --git a/doc/po/pt_BR/using_raster_dataman.xml.po b/doc/po/pt_BR/using_raster_dataman.xml.po
index e95d8fb..5c5b246 100644
--- a/doc/po/pt_BR/using_raster_dataman.xml.po
+++ b/doc/po/pt_BR/using_raster_dataman.xml.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -88,13 +88,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:25
+#: using_raster_dataman.xml:23
 #, no-c-format
 msgid "EXAMPLE USAGE:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:26
+#: using_raster_dataman.xml:24
 #, no-c-format
 msgid ""
 "raster2pgsql <varname>raster_options_go_here</varname> <varname>raster_file</"
@@ -103,13 +103,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:30
+#: using_raster_dataman.xml:28
 #, no-c-format
 msgid "<term>-?</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:32
+#: using_raster_dataman.xml:30
 #, no-c-format
 msgid ""
 "Display help screen. Help will also display if you don't pass in any "
@@ -117,31 +117,31 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:39
+#: using_raster_dataman.xml:37
 #, no-c-format
 msgid "<term>-G</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:41
+#: using_raster_dataman.xml:39
 #, no-c-format
 msgid "Print the supported raster formats."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:48
+#: using_raster_dataman.xml:46
 #, no-c-format
 msgid "(c|a|d|p) These are mutually exclusive options:"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:53
+#: using_raster_dataman.xml:51
 #, no-c-format
 msgid "<term>-c</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:55
+#: using_raster_dataman.xml:53
 #, no-c-format
 msgid ""
 "Create new table and populate it with raster(s), <emphasis>this is the "
@@ -149,43 +149,43 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:62
+#: using_raster_dataman.xml:60
 #, no-c-format
 msgid "<term>-a</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:64
+#: using_raster_dataman.xml:62
 #, no-c-format
 msgid "Append raster(s) to an existing table."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:71
+#: using_raster_dataman.xml:69
 #, no-c-format
 msgid "<term>-d</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:73
+#: using_raster_dataman.xml:71
 #, no-c-format
 msgid "Drop table, create new one and populate it with raster(s)"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:80
+#: using_raster_dataman.xml:78
 #, no-c-format
 msgid "<term>-p</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:82
+#: using_raster_dataman.xml:80
 #, no-c-format
 msgid "Prepare mode, only create the table."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:93
+#: using_raster_dataman.xml:91
 #, no-c-format
 msgid ""
 "Raster processing: Applying constraints for proper registering in raster "
@@ -193,13 +193,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:98
+#: using_raster_dataman.xml:96
 #, no-c-format
 msgid "<term>-C</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:100
+#: using_raster_dataman.xml:98
 #, no-c-format
 msgid ""
 "Apply raster constraints -- srid, pixelsize etc. to ensure raster is "
@@ -207,13 +207,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:106
+#: using_raster_dataman.xml:104
 #, no-c-format
 msgid "<term>-x</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:108
+#: using_raster_dataman.xml:106
 #, no-c-format
 msgid ""
 "Disable setting the max extent constraint. Only applied if -C flag is also "
@@ -221,20 +221,21 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:114
+#: using_raster_dataman.xml:112
 #, no-c-format
 msgid "<term>-r</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:116
+#: using_raster_dataman.xml:114
 #, no-c-format
 msgid ""
-"Set the regular blocking constraint. Only applied if -C flag is also used."
+"Set the constraints (spatially unique and coverage tile) for regular "
+"blocking. Only applied if -C flag is also used."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:127
+#: using_raster_dataman.xml:125
 #, no-c-format
 msgid ""
 "Raster processing: Optional parameters used to manipulate input raster "
@@ -242,13 +243,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:132
+#: using_raster_dataman.xml:130
 #, no-c-format
 msgid "-s <SRID>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:134
+#: using_raster_dataman.xml:132
 #, no-c-format
 msgid ""
 "Assign output raster with specified SRID. If not provided or is zero, "
@@ -256,13 +257,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:141
+#: using_raster_dataman.xml:139
 #, no-c-format
 msgid "-b BAND"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:143
+#: using_raster_dataman.xml:141
 #, no-c-format
 msgid ""
 "Index (1-based) of band to extract from raster. For more than one band "
@@ -271,33 +272,35 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:151
+#: using_raster_dataman.xml:149
 #, no-c-format
 msgid "-t TILE_SIZE"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:153
+#: using_raster_dataman.xml:151
 #, no-c-format
 msgid ""
 "Cut raster into tiles to be inserted one per table row. <varname>TILE_SIZE</"
-"varname> is expressed as WIDTHxHEIGHT."
+"varname> is expressed as WIDTHxHEIGHT or set to the value \"auto\" to allow "
+"the loader to compute an appropriate tile size using the first raster and "
+"applied to all rasters."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:160
+#: using_raster_dataman.xml:158
 #, no-c-format
 msgid "-R, --register"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:162
+#: using_raster_dataman.xml:160
 #, no-c-format
 msgid "Register the raster as a filesystem (out-db) raster."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:163
+#: using_raster_dataman.xml:161
 #, no-c-format
 msgid ""
 "Only the metadata of the raster and path location to the raster is stored in "
@@ -305,108 +308,110 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:168
+#: using_raster_dataman.xml:166
 #, no-c-format
 msgid "-l <varname>OVERVIEW_FACTOR</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:169
+#: using_raster_dataman.xml:167
 #, no-c-format
 msgid ""
-"Create overview of the raster. For more than one factor, separate with comma"
-"(,). Overview table name follows the pattern o_<varname>overview factor</"
-"varname>_<varname>table</varname>. Created overview is stored in the "
-"database and is not affected by -R. Note that your generated sql file will "
-"contain both the main table and overview tables."
+"Create overview of the raster. For more than one factor, separate with "
+"comma(,). Overview table name follows the pattern o_<varname>overview "
+"factor</varname>_<varname>table</varname>, where <varname>overview factor</"
+"varname> is a placeholder for numerical overview factor and <varname>table</"
+"varname> is replaced with the base table name. Created overview is stored in "
+"the database and is not affected by -R. Note that your generated sql file "
+"will contain both the main table and overview tables."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:177
+#: using_raster_dataman.xml:175
 #, no-c-format
 msgid "-N <varname>NODATA</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:179
+#: using_raster_dataman.xml:177
 #, no-c-format
 msgid "NODATA value to use on bands without a NODATA value."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:191
+#: using_raster_dataman.xml:189
 #, no-c-format
 msgid "Optional parameters used to manipulate database objects"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:196
+#: using_raster_dataman.xml:194
 #, no-c-format
 msgid "<term>-q</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:198
+#: using_raster_dataman.xml:196
 #, no-c-format
 msgid "Wrap PostgreSQL identifiers in quotes"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:203
+#: using_raster_dataman.xml:201
 #, no-c-format
 msgid "-f COLUMN"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:205
+#: using_raster_dataman.xml:203
 #, no-c-format
 msgid "Specify name of destination raster column, default is 'rast'"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:211
+#: using_raster_dataman.xml:209
 #, no-c-format
 msgid "<term>-F</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:213
+#: using_raster_dataman.xml:211
 #, no-c-format
 msgid "Add a column with the name of the file"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:218
+#: using_raster_dataman.xml:216
 #, no-c-format
 msgid "<term>-I</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:220
+#: using_raster_dataman.xml:218
 #, no-c-format
 msgid "Create a GiST index on the raster column."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:227
+#: using_raster_dataman.xml:225
 #, no-c-format
 msgid "<term>-M</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:229
+#: using_raster_dataman.xml:227
 #, no-c-format
 msgid "Vacuum analyze the raster table."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:236
+#: using_raster_dataman.xml:234
 #, no-c-format
 msgid "-T <varname>tablespace</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:238
+#: using_raster_dataman.xml:236
 #, no-c-format
 msgid ""
 "Specify the tablespace for the new table. Note that indices (including the "
@@ -415,13 +420,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:247
+#: using_raster_dataman.xml:245
 #, no-c-format
 msgid "-X <varname>tablespace</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:249
+#: using_raster_dataman.xml:247
 #, no-c-format
 msgid ""
 "Specify the tablespace for the table's new index. This applies to the "
@@ -429,37 +434,37 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:258
+#: using_raster_dataman.xml:256
 #, no-c-format
 msgid "<term>-Y</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:260
+#: using_raster_dataman.xml:258
 #, no-c-format
 msgid "Use copy statements instead of insert statements."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:271
+#: using_raster_dataman.xml:269
 #, no-c-format
 msgid "<term>-e</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:272
+#: using_raster_dataman.xml:270
 #, no-c-format
 msgid "Execute each statement individually, do not use a transaction."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:276
+#: using_raster_dataman.xml:274
 #, no-c-format
 msgid "-E ENDIAN"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:277
+#: using_raster_dataman.xml:275
 #, no-c-format
 msgid ""
 "Control endianness of generated binary output of raster; specify 0 for XDR "
@@ -467,13 +472,13 @@ msgid ""
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:281
+#: using_raster_dataman.xml:279
 #, no-c-format
 msgid "-V <varname>version</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:282
+#: using_raster_dataman.xml:280
 #, no-c-format
 msgid ""
 "Specify version of output format. Default is 0. Only 0 is supported at this "
@@ -481,7 +486,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:285
+#: using_raster_dataman.xml:283
 #, no-c-format
 msgid ""
 "An example session using the loader to create an input file and uploading it "
@@ -489,7 +494,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:286
+#: using_raster_dataman.xml:284
 #, no-c-format
 msgid ""
 "You can leave the schema name out e.g <varname>demelevation</varname> "
@@ -498,30 +503,30 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:288
+#: using_raster_dataman.xml:286
 #, no-c-format
 msgid ""
-"raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation > elev."
 "sql\n"
 "psql -d gisdb -f elev.sql"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:290
+#: using_raster_dataman.xml:288
 #, no-c-format
 msgid "A conversion and upload can be done all in one step using UNIX pipes:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:292
+#: using_raster_dataman.xml:290
 #, no-c-format
 msgid ""
-"raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
+"raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation | psql "
 "-d gisdb"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:294
+#: using_raster_dataman.xml:292
 #, no-c-format
 msgid ""
 "Load rasters Massachusetts state plane meters aerial tiles into a schema "
@@ -535,7 +540,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:296
+#: using_raster_dataman.xml:294
 #, no-c-format
 msgid ""
 "raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128  -l 2,4 bostonaerials2008/*."
@@ -543,7 +548,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:298
+#: using_raster_dataman.xml:296
 #, no-c-format
 msgid ""
 "--get a list of raster types supported:\n"
@@ -551,13 +556,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:300
+#: using_raster_dataman.xml:298
 #, no-c-format
 msgid "The -G commands outputs a list something like"
 msgstr ""
 
 #. Tag: screen
-#: using_raster_dataman.xml:301
+#: using_raster_dataman.xml:299
 #, no-c-format
 msgid ""
 "Available GDAL raster formats:\n"
@@ -661,13 +666,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:304
+#: using_raster_dataman.xml:302
 #, no-c-format
 msgid "Creating rasters using PostGIS raster functions"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:305
+#: using_raster_dataman.xml:303
 #, no-c-format
 msgid ""
 "On many occasions, you'll want to create rasters and raster tables right in "
@@ -676,7 +681,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:307
+#: using_raster_dataman.xml:305
 #, no-c-format
 msgid ""
 "Create a table with a raster column to hold the new raster records which can "
@@ -684,13 +689,13 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:308
+#: using_raster_dataman.xml:306
 #, no-c-format
 msgid "CREATE TABLE myrasters(rid serial primary key, rast raster);"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:311
+#: using_raster_dataman.xml:309
 #, no-c-format
 msgid ""
 "There are many functions to help with that goal. If you are creating rasters "
@@ -700,7 +705,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:313
+#: using_raster_dataman.xml:311
 #, no-c-format
 msgid ""
 "You can also create rasters from geometries. To achieve that you'll want to "
@@ -711,7 +716,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:315
+#: using_raster_dataman.xml:313
 #, no-c-format
 msgid ""
 "There are even many more options for creating new raster tables from "
@@ -720,7 +725,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:317
+#: using_raster_dataman.xml:315
 #, no-c-format
 msgid ""
 "Once you are done populating your table initially, you'll want to create a "
@@ -728,15 +733,15 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:318
+#: using_raster_dataman.xml:316
 #, no-c-format
 msgid ""
-"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING gist"
-"( ST_ConvexHull(rast) );"
+"CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING "
+"gist( ST_ConvexHull(rast) );"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:319
+#: using_raster_dataman.xml:317
 #, no-c-format
 msgid ""
 "Note the use of <xref linkend=\"RT_ST_ConvexHull\"/> since most raster "
@@ -744,7 +749,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:320
+#: using_raster_dataman.xml:318
 #, no-c-format
 msgid ""
 "Pre-2.0 versions of PostGIS raster were based on the envelop rather than the "
@@ -753,20 +758,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:321
+#: using_raster_dataman.xml:319
 #, no-c-format
 msgid ""
 "Apply raster constraints using <xref linkend=\"RT_AddRasterConstraints\"/>"
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:326
+#: using_raster_dataman.xml:324
 #, no-c-format
 msgid "Raster Catalogs"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:327
+#: using_raster_dataman.xml:325
 #, no-c-format
 msgid ""
 "There are two raster catalog views that come packaged with PostGIS. Both "
@@ -776,7 +781,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:331
+#: using_raster_dataman.xml:329
 #, no-c-format
 msgid ""
 "<varname>raster_columns</varname> this view catalogs all the raster table "
@@ -784,7 +789,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:334
+#: using_raster_dataman.xml:332
 #, no-c-format
 msgid ""
 "<varname>raster_overviews</varname> this view catalogs all the raster table "
@@ -794,13 +799,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:338
+#: using_raster_dataman.xml:336
 #, no-c-format
 msgid "Raster Columns Catalog"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:339
+#: using_raster_dataman.xml:337
 #, no-c-format
 msgid ""
 "The <varname>raster_columns</varname> is a catalog of all raster table "
@@ -811,7 +816,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:341
+#: using_raster_dataman.xml:339
 #, no-c-format
 msgid ""
 "If you created your tables not with the loader or forgot to specify the "
@@ -822,7 +827,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:346
+#: using_raster_dataman.xml:344
 #, no-c-format
 msgid ""
 "<varname>r_table_catalog</varname> The database the table is in. This will "
@@ -830,7 +835,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:349
+#: using_raster_dataman.xml:347
 #, no-c-format
 msgid ""
 "<varname>r_table_schema</varname> The database schema the raster table "
@@ -838,13 +843,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:352
+#: using_raster_dataman.xml:350
 #, no-c-format
 msgid "<varname>r_table_name</varname> raster table"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:355
+#: using_raster_dataman.xml:353
 #, no-c-format
 msgid ""
 "<varname>r_raster_column</varname> the column in the <varname>r_table_name</"
@@ -855,7 +860,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:358
+#: using_raster_dataman.xml:356
 #, no-c-format
 msgid ""
 "<varname>srid</varname> The spatial reference identifier of the raster. "
@@ -863,7 +868,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:361
+#: using_raster_dataman.xml:359
 #, no-c-format
 msgid ""
 "<varname>scale_x</varname> The scaling between geometric spatial coordinates "
@@ -873,7 +878,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:364
+#: using_raster_dataman.xml:362
 #, no-c-format
 msgid ""
 "<varname>scale_y</varname> The scaling between geometric spatial coordinates "
@@ -884,7 +889,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:367
+#: using_raster_dataman.xml:365
 #, no-c-format
 msgid ""
 "<varname>blocksize_x</varname> The width (number of pixels across) of each "
@@ -892,7 +897,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:370
+#: using_raster_dataman.xml:368
 #, no-c-format
 msgid ""
 "<varname>blocksize_y</varname> The width (number of pixels down) of each "
@@ -900,7 +905,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:373
+#: using_raster_dataman.xml:371
 #, no-c-format
 msgid ""
 "<varname>same_alignment</varname> A boolean that is true if all the raster "
@@ -909,19 +914,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:376
+#: using_raster_dataman.xml:374
 #, no-c-format
 msgid ""
-"<varname>regular_blocking</varname> This is a true/false constraint flag set "
-"on the table to denote that the tiles do not overlap, are of the same "
-"alignment, pixel size, srid etc. It is not really validated but just taken "
-"as a given so should be used for informational. In the future we plan to "
-"properly constrain this so that this inforamtion is guaranteed to be right "
-"when it returns <varname>true</varname>"
+"<varname>regular_blocking</varname> If the raster column has the spatially "
+"unique and coverage tile constraints, the value with be TRUE. Otherwise, it "
+"will be FALSE."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:379
+#: using_raster_dataman.xml:377
 #, no-c-format
 msgid ""
 "<varname>num_bands</varname> The number of bands in each tile of your raster "
@@ -929,7 +931,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:382
+#: using_raster_dataman.xml:380
 #, no-c-format
 msgid ""
 "<varname>pixel_types</varname> An array defining the pixel type for each "
@@ -939,7 +941,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:385
+#: using_raster_dataman.xml:383
 #, no-c-format
 msgid ""
 "<varname>nodata_values</varname> An array of double precision numbers "
@@ -951,7 +953,16 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:388
+#: using_raster_dataman.xml:386
+#, no-c-format
+msgid ""
+"<varname>out_db</varname> An array of boolean flags indicating if the raster "
+"bands data is maintained outside the database. You will have the same number "
+"of elements in this array as you have number of bands."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:389
 #, no-c-format
 msgid ""
 "<varname>extent</varname> This is the extent of all the raster rows in your "
@@ -961,14 +972,22 @@ msgid ""
 "\"RT_AddRasterConstraints\"/> after load."
 msgstr ""
 
+#. Tag: para
+#: using_raster_dataman.xml:392
+#, no-c-format
+msgid ""
+"<varname>spatial_index</varname> A boolean that is true if raster column has "
+"a spatial index."
+msgstr ""
+
 #. Tag: title
-#: using_raster_dataman.xml:393
+#: using_raster_dataman.xml:397
 #, no-c-format
 msgid "Raster Overviews"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:394
+#: using_raster_dataman.xml:398
 #, no-c-format
 msgid ""
 "<varname>raster_overviews</varname> catalogs information about raster table "
@@ -978,11 +997,12 @@ msgid ""
 "varname> because they are rasters in their own right but also serve an "
 "additional special purpose of being a lower resolution caricature of a "
 "higher resolution table. These are generated along-side the main raster "
-"table when you use the <varname>-l</varname> switch in raster loading."
+"table when you use the <varname>-l</varname> switch in raster loading or can "
+"be generated manually using <xref linkend=\"RT_AddOverviewConstraints\"/>."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:395
+#: using_raster_dataman.xml:399
 #, no-c-format
 msgid ""
 "Overview tables contain the same constraints as other raster tables as well "
@@ -990,7 +1010,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:396
+#: using_raster_dataman.xml:400
 #, no-c-format
 msgid ""
 "The information in <varname>raster_overviews</varname> does not duplicate "
@@ -1002,13 +1022,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:397
+#: using_raster_dataman.xml:401
 #, no-c-format
 msgid "Two main reasons for overviews are:"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:399
+#: using_raster_dataman.xml:403
 #, no-c-format
 msgid ""
 "Low resolution representation of the core tables commonly used for fast "
@@ -1016,7 +1036,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:400
+#: using_raster_dataman.xml:404
 #, no-c-format
 msgid ""
 "Computations are generally faster to do on them than their higher resolution "
@@ -1027,7 +1047,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:403
+#: using_raster_dataman.xml:407
 #, no-c-format
 msgid ""
 "The <varname>raster_overviews</varname> catalog contains the following "
@@ -1035,7 +1055,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:406
+#: using_raster_dataman.xml:410
 #, no-c-format
 msgid ""
 "<varname>o_table_catalog</varname> The database the overview table is in. "
@@ -1043,7 +1063,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:409
+#: using_raster_dataman.xml:413
 #, no-c-format
 msgid ""
 "<varname>o_table_schema</varname> The database schema the overview raster "
@@ -1051,20 +1071,20 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:412
+#: using_raster_dataman.xml:416
 #, no-c-format
 msgid "<varname>o_table_name</varname> raster overview table name"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:415
+#: using_raster_dataman.xml:419
 #, no-c-format
 msgid ""
 "<varname>o_raster_column</varname> the raster column in the overview table."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:419
+#: using_raster_dataman.xml:423
 #, no-c-format
 msgid ""
 "<varname>r_table_catalog</varname> The database the raster table that this "
@@ -1072,7 +1092,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:422
+#: using_raster_dataman.xml:426
 #, no-c-format
 msgid ""
 "<varname>r_table_schema</varname> The database schema the raster table that "
@@ -1080,14 +1100,14 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:425
+#: using_raster_dataman.xml:429
 #, no-c-format
 msgid ""
 "<varname>r_table_name</varname> raster table that this overview services."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:428
+#: using_raster_dataman.xml:432
 #, no-c-format
 msgid ""
 "<varname>r_raster_column</varname> the raster column that this overview "
@@ -1095,7 +1115,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:431
+#: using_raster_dataman.xml:435
 #, no-c-format
 msgid ""
 "<varname>overview_factor</varname> - this is the pyramid level of the "
@@ -1115,13 +1135,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:443
+#: using_raster_dataman.xml:447
 #, no-c-format
 msgid "Building Custom Applications with PostGIS Raster"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:444
+#: using_raster_dataman.xml:448
 #, no-c-format
 msgid ""
 "The fact that PostGIS raster provides you with SQL functions to render "
@@ -1135,14 +1155,14 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:447
+#: using_raster_dataman.xml:451
 #, no-c-format
 msgid ""
 "PHP Example Outputting using ST_AsPNG in concert with other raster functions"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:448
+#: using_raster_dataman.xml:452
 #, no-c-format
 msgid ""
 "In this section, we'll demonstrate how to use the PHP PostgreSQL driver and "
@@ -1152,7 +1172,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:451 using_raster_dataman.xml:463
+#: using_raster_dataman.xml:455 using_raster_dataman.xml:467
 #, no-c-format
 msgid ""
 "The sample query demonstrates how to combine a whole bunch of raster "
@@ -1164,7 +1184,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:454
+#: using_raster_dataman.xml:458
 #, no-c-format
 msgid ""
 "You would call the below using <programlisting>http://mywebserver/"
@@ -1173,7 +1193,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:455
+#: using_raster_dataman.xml:459
 #, no-c-format
 msgid ""
 "<![CDATA[<?php\n"
@@ -1208,7 +1228,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:458
+#: using_raster_dataman.xml:462
 #, no-c-format
 msgid ""
 "ASP.NET C# Example Outputting using ST_AsPNG in concert with other raster "
@@ -1216,7 +1236,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:459
+#: using_raster_dataman.xml:463
 #, no-c-format
 msgid ""
 "In this section, we'll demonstrate how to use Npgsql PostgreSQL .NET driver "
@@ -1226,7 +1246,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:462
+#: using_raster_dataman.xml:466
 #, no-c-format
 msgid ""
 "You will need the npgsql .NET PostgreSQL driver for this exercise which you "
@@ -1236,7 +1256,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:466
+#: using_raster_dataman.xml:470
 #, no-c-format
 msgid ""
 "This is same example as <xref linkend=\"RT_PHP_Output\"/> except implemented "
@@ -1244,7 +1264,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:467
+#: using_raster_dataman.xml:471
 #, no-c-format
 msgid ""
 "You would call the below using <programlisting>http://mywebserver/TestRaster."
@@ -1253,7 +1273,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:468
+#: using_raster_dataman.xml:472
 #, no-c-format
 msgid ""
 "-- web.config connection string section --\n"
@@ -1265,7 +1285,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:469
+#: using_raster_dataman.xml:473
 #, no-c-format
 msgid ""
 "// Code for TestRaster.ashx\n"
@@ -1296,9 +1316,9 @@ msgid ""
 "                string sql = null;\n"
 "                int input_srid = 26986;\n"
 "        try {\n"
-"                    using (NpgsqlConnection conn = new NpgsqlConnection"
-"(System.Configuration.ConfigurationManager.ConnectionStrings[\"DSN\"]."
-"ConnectionString)) {\n"
+"                    using (NpgsqlConnection conn = new "
+"NpgsqlConnection(System.Configuration.ConfigurationManager."
+"ConnectionStrings[\"DSN\"].ConnectionString)) {\n"
 "                            conn.Open();\n"
 "\n"
 "                if (context.Request[\"srid\"] != null)\n"
@@ -1339,13 +1359,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:472
+#: using_raster_dataman.xml:476
 #, no-c-format
 msgid "Java console app that outputs raster query as Image file"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:473
+#: using_raster_dataman.xml:477
 #, no-c-format
 msgid ""
 "This is a simple java console app that takes a query that returns one image "
@@ -1353,7 +1373,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:474
+#: using_raster_dataman.xml:478
 #, no-c-format
 msgid ""
 "You can download the latest PostgreSQL JDBC drivers from <ulink url=\"http://"
@@ -1362,13 +1382,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:475
+#: using_raster_dataman.xml:479
 #, no-c-format
 msgid "You can compile the following code using a command something like:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:476
+#: using_raster_dataman.xml:480
 #, no-c-format
 msgid ""
 "set env CLASSPATH .:..\\postgresql-9.0-801.jdbc4.jar\n"
@@ -1377,21 +1397,22 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:477
+#: using_raster_dataman.xml:481
 #, no-c-format
 msgid "And call it from the command-line with something like"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:478
+#: using_raster_dataman.xml:482
 #, no-c-format
 msgid ""
-"java -jar SaveQueryImage.jar \"SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point"
-"(1,5),10, 'quad_segs=2'),150, 150, '8BUI',100));\" \"test.png\""
+"java -jar SaveQueryImage.jar \"SELECT "
+"ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10, 'quad_segs=2'),150, 150, "
+"'8BUI',100));\" \"test.png\""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:479
+#: using_raster_dataman.xml:483
 #, no-c-format
 msgid ""
 "-- Manifest.txt --\n"
@@ -1400,7 +1421,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:480
+#: using_raster_dataman.xml:484
 #, no-c-format
 msgid ""
 "// Code for SaveQueryImage.java\n"
@@ -1416,8 +1437,8 @@ msgid ""
 "DriverManager.\");\n"
 "      \n"
 "      try {\n"
-"        //java.sql.DriverManager.registerDriver (new org.postgresql.Driver"
-"());\n"
+"        //java.sql.DriverManager.registerDriver (new org.postgresql."
+"Driver());\n"
 "        Class.forName(\"org.postgresql.Driver\");\n"
 "      } \n"
 "      catch (ClassNotFoundException cnfe) {\n"
@@ -1467,24 +1488,24 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:484
+#: using_raster_dataman.xml:488
 #, no-c-format
 msgid "Use PLPython to dump out images via SQL"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:485
+#: using_raster_dataman.xml:489
 #, no-c-format
 msgid ""
 "This is a plpython stored function that creates a file in the server "
-"directory for each record."
+"directory for each record. Requires you have plpython installed. Should work "
+"fine with both plpythonu and plpython3u."
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:486
+#: using_raster_dataman.xml:491
 #, no-c-format
 msgid ""
-"//plpython postgresql stored proc.  Requires you have plpython installed\n"
 "<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, "
 "param_filepath text)\n"
 "RETURNS text\n"
@@ -1496,7 +1517,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:487
+#: using_raster_dataman.xml:492
 #, no-c-format
 msgid ""
 "--write out 5 images to the PostgreSQL server in varying sizes\n"
@@ -1518,13 +1539,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:490
+#: using_raster_dataman.xml:495
 #, no-c-format
 msgid "Outputting Rasters with PSQL"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:491
+#: using_raster_dataman.xml:496
 #, no-c-format
 msgid ""
 "Sadly PSQL doesn't have easy to use built-in functionality for outputting "
@@ -1537,7 +1558,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:494
+#: using_raster_dataman.xml:499
 #, no-c-format
 msgid ""
 "Unlike the python approach, this approach creates the file on your local "
@@ -1545,7 +1566,7 @@ msgid ""
 msgstr ""
 
 #. Tag: screen
-#: using_raster_dataman.xml:495
+#: using_raster_dataman.xml:500
 #, no-c-format
 msgid ""
 "SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes\n"
diff --git a/doc/po/templates/extras.xml.pot b/doc/po/templates/extras.xml.pot
index 57463c2..49ff5ed 100644
--- a/doc/po/templates/extras.xml.pot
+++ b/doc/po/templates/extras.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -14,3 +14,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#. Tag: title
+#: extras.xml:3
+#, no-c-format
+msgid "PostGIS Extras"
+msgstr ""
+
+#. Tag: para
+#: extras.xml:5
+#, no-c-format
+msgid "This chapter documents features found in the extras folder of the PostGIS source tarballs and source repository. These are not always packaged with PostGIS binary releases, but are usually plpgsql based or standard shell scripts that can be run as is."
+msgstr ""
+
+#. Tag: chapter
+#: extras.xml:6
+#, no-c-format
+msgid "&extras_tigergeocoder;"
+msgstr ""
+
diff --git a/doc/po/templates/extras_address_standardizer.xml.pot b/doc/po/templates/extras_address_standardizer.xml.pot
new file mode 100644
index 0000000..7b00a01
--- /dev/null
+++ b/doc/po/templates/extras_address_standardizer.xml.pot
@@ -0,0 +1,704 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: extras_address_standardizer.xml:3
+#, no-c-format
+msgid "Address Standardizer"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:4
+#, no-c-format
+msgid "This is a fork of the <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-11.html\">PAGC standardizer</ulink> (original code for this portion was <ulink url=\"http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql\">PAGC PostgreSQL Address Standardizer</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:5
+#, no-c-format
+msgid "The address standardizer is a single line address parser that takes an input address and normalizes it based on a set of rules stored in a table and helper lex and gaz tables."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:6
+#, no-c-format
+msgid "The code is built into a single postgresql extension library called <code>address_standardizer</code> which can be installed with <code>CREATE EXTENSION address_standardizer;</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:7
+#, no-c-format
+msgid "The code for this extension can be found in the PostGIS <filename>extensions/address_standardizer</filename> and is currently self-contained."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:8
+#, no-c-format
+msgid "For installation instructions refer to: <xref linkend=\"installing_pagc_address_standardizer\"/>."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:9
+#, no-c-format
+msgid "How the Parser Works"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:10
+#, no-c-format
+msgid "The parser works from right to left looking first at the macro elements for postcode, state/province, city, and then looks micro elements to determine if we are dealing with a house number street or intersection or landmark. It currently does not look for a country code or name, but that could be introduced in the future."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:17
+#, no-c-format
+msgid "Country code"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:18
+#, no-c-format
+msgid "Assumed to be US or CA based on: postcode as US or Canada state/province as US or Canada else US"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:21
+#, no-c-format
+msgid "Postcode/zipcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:22
+#, no-c-format
+msgid "These are recognized using Perl compatible regular expressions. These regexs are currently in the parseaddress-api.c and are relatively simple to make changes to if needed."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:27
+#, no-c-format
+msgid "State/province"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:28
+#, no-c-format
+msgid "These are recognized using Perl compatible regular expressions. These regexs are currently in the parseaddress-api.c but could get moved into includes in the future for easier maintenance."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:37
+#, no-c-format
+msgid "This section lists the PostgreSQL data types installed by Address Standardizer extension. Note we describe the casting behavior of these which is very important especially when designing your own functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:42
+#, no-c-format
+msgid "Address Standardizer Types"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:45
+#, no-c-format
+msgid "stdaddr"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:46
+#, no-c-format
+msgid "A composite type that consists of the elements of an address. This is the return type for <varname>standardize_address</varname> function."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:49 extras_address_standardizer.xml:152 extras_address_standardizer.xml:214 extras_address_standardizer.xml:256 extras_address_standardizer.xml:314 extras_address_standardizer.xml:369
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:50
+#, no-c-format
+msgid "A composite type that consists of elements of an address. This is the return type for <xref linkend=\"standardize_address\"/> function. Some descriptions for elements are borrowed from <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12.html#ss12.1\">PAGC Postal Attributes</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:51
+#, no-c-format
+msgid "The token numbers denote the reference number in the <varname>rules</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:52 extras_address_standardizer.xml:321 extras_address_standardizer.xml:375
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:55
+#, no-c-format
+msgid "building"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:57
+#, no-c-format
+msgid "is text (token number <code>0</code>): Refers to building number or name. Unparsed building identifiers and types. Generally blank for most addresses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:60
+#, no-c-format
+msgid "house_num"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:62
+#, no-c-format
+msgid "is a text (token number <code>1</code>): This is the street number on a street. Example <emphasis>75</emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:65
+#, no-c-format
+msgid "predir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:66
+#, no-c-format
+msgid "is text (token number <code>2</code>): STREET NAME PRE-DIRECTIONAL such as North, South, East, West etc."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:68
+#, no-c-format
+msgid "qual"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:70
+#, no-c-format
+msgid "is text (token number <code>3</code>): STREET NAME PRE-MODIFIER Example <emphasis>OLD</emphasis> in <code>3715 OLD HIGHWAY 99</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:73
+#, no-c-format
+msgid "pretype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:75
+#, no-c-format
+msgid "is text (token number <code>4</code>): STREET PREFIX TYPE"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:78
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:80
+#, no-c-format
+msgid "is text (token number <code>5</code>): STREET NAME"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:83
+#, no-c-format
+msgid "suftype"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:85
+#, no-c-format
+msgid "is text (token number <code>6</code>): STREET POST TYPE e.g. St, Ave, Cir. A street type following the root street name. Example <emphasis>STREET</emphasis> in <code>75 State Street</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:88
+#, no-c-format
+msgid "sufdir"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:90
+#, no-c-format
+msgid "is text (token number <code>7</code>): STREET POST-DIRECTIONAL A directional modifier that follows the street name.. Example <emphasis>WEST</emphasis> in <code>3715 TENTH AVENUE WEST</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:93
+#, no-c-format
+msgid "ruralroute"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:95
+#, no-c-format
+msgid "is text (token number <code>8</code>): RURAL ROUTE . Example <emphasis>8</emphasis> in <code>RR 7</code>."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:98
+#, no-c-format
+msgid "extra"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:100
+#, no-c-format
+msgid "is text: Extra information like Floor number."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:103
+#, no-c-format
+msgid "city"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:105
+#, no-c-format
+msgid "is text (token number <code>10</code>): Example Boston."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:108
+#, no-c-format
+msgid "state"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:110
+#, no-c-format
+msgid "is text (token number <code>11</code>): Example <code>MASSACHUSETTS</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:113
+#, no-c-format
+msgid "country"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:115
+#, no-c-format
+msgid "is text (token number <code>12</code>): Example <code>USA</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:118
+#, no-c-format
+msgid "postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:120
+#, no-c-format
+msgid "is text POSTAL CODE (ZIP CODE) (token number <code>13</code>): Example <code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:123
+#, no-c-format
+msgid "<term>box</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:125
+#, no-c-format
+msgid "is text POSTAL BOX NUMBER (token number <code>14 and 15</code>): Example <code>02109</code>"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:128
+#, no-c-format
+msgid "unit"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:130
+#, no-c-format
+msgid "is text Apartment number or Suite Number (token number <code>17</code>): Example <emphasis>3B</emphasis> in <code>APT 3B</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:141
+#, no-c-format
+msgid "This section lists the PostgreSQL table formats used by the address_standardizer for normalizing addresses. Note that these tables do not need to be named the same as what is referenced here. You can have different lex, gaz, rules tables for each country for example or for your custom geocoder. The names of these tables get passed into the address standardizer functions."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:145
+#, no-c-format
+msgid "Address Standardizer Tables"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:148
+#, no-c-format
+msgid "rules table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:149
+#, no-c-format
+msgid "The rules table contains a set of rules that maps address input sequence tokens to standardized output sequence"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:153
+#, no-c-format
+msgid "A rules table must have at least the following columns, though you are allowed to add more for your own uses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:157 extras_address_standardizer.xml:220 extras_address_standardizer.xml:262
+#, no-c-format
+msgid "<term>id</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:159 extras_address_standardizer.xml:222 extras_address_standardizer.xml:264
+#, no-c-format
+msgid "Primary key of table"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:162
+#, no-c-format
+msgid "rule"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:164
+#, no-c-format
+msgid "text field denoting the rule. Details at <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12.html#--r-rec--\">PAGC Address Standardizer Rule records</ulink>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:165
+#, no-c-format
+msgid "A rule consists of a set of non-negative integers representing input tokens, terminated by a -1, followed by an equal number of non-negative integers representing postal attributes, terminated by a -1, followed by an integer representing a rule type, followed by an integer representing the rank of the rule. The rules are ranked from 0 (lowest) to 17 (highest)."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:166
+#, no-c-format
+msgid "So for example the rule <code>2 0 2 22 3 -1 5 5 6 7 3 -1 2 6</code> maps to sequence of tokens <emphasis>TYPE NUMBER TYPE DIRECT QUALIF</emphasis> to the output sequence <emphasis>STREET STREET SUFTYP SUFDIR QUALIF</emphasis>. The rule is an ARC_C rule of rank 6."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:171
+#, no-c-format
+msgid "Each rule has a rule type which is denoted by one of following:"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:174
+#, no-c-format
+msgid "MACRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:176
+#, no-c-format
+msgid "(token number = \"0\"). The class of rules for parsing MACRO clauses."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:180
+#, no-c-format
+msgid "MICRO_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:182
+#, no-c-format
+msgid "(token number = \"1\"). The class of rules for parsing full MICRO clauses (ie ARC_C plus CIVIC_C). These rules are not used in the build phase."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:186
+#, no-c-format
+msgid "ARC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:188
+#, no-c-format
+msgid "(token number = \"2\"). The class of rules for parsing MICRO clauses, excluding the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:192
+#, no-c-format
+msgid "CIVIC_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:194
+#, no-c-format
+msgid "(token number = \"3\"). The class of rules for parsing the HOUSE attribute."
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:198
+#, no-c-format
+msgid "EXTRA_C"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:200
+#, no-c-format
+msgid "(token number = \"4\"). The class of rules for parsing EXTRA attributes - attributes excluded from geocoding. These rules are not used in the build phase."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:210
+#, no-c-format
+msgid "lex table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:211
+#, no-c-format
+msgid "A lex table is used to classify alphanumeric input and associate that input with (a) input tokens ( See Input Tokens) and (b) standardized representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:215
+#, no-c-format
+msgid "A lex (short for lexicon) table is used to classify alphanumeric input and associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized representations. Things you will find in these tables are <code>ONE</code> mapped to stdworkd: <code>1</code>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:217
+#, no-c-format
+msgid "A lex has at least the following columns in the table. You may add"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:225 extras_address_standardizer.xml:267
+#, no-c-format
+msgid "<term>seq</term>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:227 extras_address_standardizer.xml:269
+#, no-c-format
+msgid "integer: definition number?"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:231 extras_address_standardizer.xml:272
+#, no-c-format
+msgid "word"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:233 extras_address_standardizer.xml:274
+#, no-c-format
+msgid "text: the input word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:236 extras_address_standardizer.xml:277
+#, no-c-format
+msgid "stdword"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:238 extras_address_standardizer.xml:279
+#, no-c-format
+msgid "text: the standardized replacement word"
+msgstr ""
+
+#. Tag: term
+#: extras_address_standardizer.xml:241 extras_address_standardizer.xml:282
+#, no-c-format
+msgid "token"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:243 extras_address_standardizer.xml:284
+#, no-c-format
+msgid "integer: the kind of word it is. Only if it is used in this context will it be replaced. Refer to <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12.html#--i-tok--\">PAGC Tokens</ulink>."
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:252
+#, no-c-format
+msgid "gaz table"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:253
+#, no-c-format
+msgid "A gaz table is used to standardize place names and associate that input with (a) input tokens ( See Input Tokens) and (b) standardized representations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:257
+#, no-c-format
+msgid "A gaz (short for gazeteer) table is used to classify place names and associate that input with <ulink url=\"http://www.pagcgeo.org/docs/html/pagc-12.html#--i-tok--\">(a) input tokens</ulink> and (b) standardized representations. For example if you are in US, you may load these with State Names and associated abbreviations."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:259
+#, no-c-format
+msgid "A gaz table has at least the following columns in the table. You may add more columns if you wish for your own purposes."
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:295
+#, no-c-format
+msgid "Address Standardizer Functions"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:298
+#, no-c-format
+msgid "parse_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:300
+#, no-c-format
+msgid "Takes a 1 line address and breaks into parts"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_address_standardizer.xml:305
+#, no-c-format
+msgid "<funcdef>record <function>parse_address</function></funcdef> <paramdef><type>text </type> <parameter>address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:316
+#, no-c-format
+msgid "Returns takes as input an address, and returns a record output consisting of fields <emphasis>num</emphasis>, <emphasis>street</emphasis>, <emphasis>street2</emphasis>, <emphasis>address1</emphasis>, <emphasis>city</emphasis>, <emphasis>state</emphasis>, <emphasis>zip</emphasis>, <emphasis>zipplus</emphasis>, <emphasis>country</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:320 extras_address_standardizer.xml:374
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:326 extras_address_standardizer.xml:380
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:328
+#, no-c-format
+msgid ""
+      "SELECT num, street, city, zip, zipplus FROM parse_address('1 Devonshire Place, Boston, MA 02109-1234');\n"
+      " num |      street      |  city  |  zip  | zipplus\n"
+      "-----+------------------+--------+-------+---------\n"
+      " 1   | Devonshire Place | Boston | 02109 | 1234"
+msgstr ""
+
+#. Tag: title
+#: extras_address_standardizer.xml:334 extras_address_standardizer.xml:391
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: extras_address_standardizer.xml:342
+#, no-c-format
+msgid "standardize_address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_address_standardizer.xml:344
+#, no-c-format
+msgid "Returns an stdaddr form of an input address utilizing lex, gaz, and rule tables."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: extras_address_standardizer.xml:348
+#, no-c-format
+msgid "<funcprototype> <funcdef>stdaddr <function>standardize_address</function></funcdef> <paramdef><type>text </type> <parameter>lextab</parameter></paramdef> <paramdef><type>text </type> <parameter>gaztab</parameter></paramdef> <paramdef><type>text </type> <parameter>rultab</parameter></paramdef> <paramdef><type>text </type> <parameter>address</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>stdaddr <function>standardize_address</function></funcdef> <paramdef><type>tex [...]
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:371
+#, no-c-format
+msgid "Returns an <xref linkend=\"stdaddr\"/> form of an input address utilizing <xref linkend=\"lextab\"/> table name, <xref linkend=\"gaztab\"/>, and <xref linkend=\"rulestab\"/> table names and an address."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:382
+#, no-c-format
+msgid ""
+      "SELECT *  FROM standardize_address('tiger.pagc_lex', \n"
+      "                           'tiger.pagc_gaz', 'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234');"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:384
+#, no-c-format
+msgid "Make easier to read we'll dump output using hstore extension CREATE EXTENSION hstore; you need to install"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_address_standardizer.xml:385
+#, no-c-format
+msgid ""
+      "SELECT (each(hstore(p))).*  \n"
+      " FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz', \n"
+      "   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234') As p;"
+msgstr ""
+
+#. Tag: screen
+#: extras_address_standardizer.xml:386
+#, no-c-format
+msgid ""
+      "key     |      value\n"
+      "------------+-----------------\n"
+      " box        |\n"
+      " city       | BOSTON\n"
+      " name       | DEVONSHIRE\n"
+      " qual       |\n"
+      " unit       | # PENTHOUSE 301\n"
+      " extra      |\n"
+      " state      | MA\n"
+      " predir     |\n"
+      " sufdir     |\n"
+      " country    | USA\n"
+      " pretype    |\n"
+      " suftype    | PL\n"
+      " building   |\n"
+      " postcode   | 02109\n"
+      " house_num  | 1\n"
+      " ruralroute |\n"
+      "(16 rows)"
+msgstr ""
+
+#. Tag: para
+#: extras_address_standardizer.xml:393
+#, no-c-format
+msgid ", <xref linkend=\"rulestab\"/>, <xref linkend=\"lextab\"/>, <xref linkend=\"gaztab\"/>, <xref linkend=\"Pagc_Normalize_Address\"/>"
+msgstr ""
+
diff --git a/doc/po/templates/extras_tigergeocoder.xml.pot b/doc/po/templates/extras_tigergeocoder.xml.pot
index 82720b5..2683e12 100644
--- a/doc/po/templates/extras_tigergeocoder.xml.pot
+++ b/doc/po/templates/extras_tigergeocoder.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -17,161 +17,173 @@ msgstr ""
 #. Tag: para
 #: extras_tigergeocoder.xml:6
 #, no-c-format
-msgid "A plpgsql based geocoder written to work with the <ulink url=\"http://www.census.gov/geo/www/tiger/\">TIGER (Topologically Integrated Geographic Encoding and Referencing system ) / Line and Master Address database export</ulink> released by the US Census Bureau. In versions prior to 2008 the TIGER files were released in ASCII format. The older geocoder used to work with that format and is available in PostGIS source 1.5 and below in <varname>extras/tiger_geocoder/tiger_2006andbefo [...]
+msgid "A plpgsql based geocoder written to work with the <ulink url=\"http://www.census.gov/geo/www/tiger/\">TIGER (Topologically Integrated Geographic Encoding and Referencing system ) / Line and Master Address database export</ulink> released by the US Census Bureau."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:8
+#: extras_tigergeocoder.xml:7
 #, no-c-format
-msgid "There are four components to the geocoder: the data loader functions, the address normalizer, the address geocoder, and the reverse geocoder. The latest version updated to use the TIGER 2011 census data is located in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder."
+msgid "There are four components to the geocoder: the data loader functions, the address normalizer, the address geocoder, and the reverse geocoder. The latest version updated to use the TIGER 2011 and 2012 census data is located in the <varname>extras/tiger_geocoder/tiger_2011</varname> folder. It defaults to downloading and installing TIGER 2012 files."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:9
+#: extras_tigergeocoder.xml:8
 #, no-c-format
 msgid "Although it is designed specifically for the US, a lot of the concepts and functions are applicable and can be adapted to work with other country address and road networks."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:10
+#: extras_tigergeocoder.xml:9
 #, no-c-format
 msgid "The script builds a schema called <varname>tiger</varname> to house all the tiger related functions, reusable lookup data such as road type prefixes, suffixes, states, various control tables for managing data load, and skeleton base tables from which all the tiger loaded tables inherit from."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:11
+#: extras_tigergeocoder.xml:10
 #, no-c-format
 msgid "Another schema called <varname>tiger_data</varname> is also created which houses all the census data for each state that the loader downloads from Census site and loads into the database. In the current model, each set of state tables is prefixed with the state code e.g <varname>ma_addr</varname>, <varname>ma_edges</varname> etc with constraints to enforce only that state data. Each of these tables inherits from the tables <varname>addr</varname>, <varname>faces</varname>, <varnam [...]
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:13
+#: extras_tigergeocoder.xml:12
 #, no-c-format
 msgid "All the geocode functions only reference the base tables, so there is no requirement that the data schema be called <varname>tiger_data</varname> or that data can't be further partitioned into other schemas -- e.g a different schema for each state, as long as all the tables inherit from the tables in the <varname>tiger</varname> schema."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:17
+#: extras_tigergeocoder.xml:16
 #, no-c-format
-msgid "If you are using tiger geocoder (tiger_2010), you can upgrade the scripts using the accompanying upgrade_geocoder.bat / .sh scripts in tiger_2011. One major change between <varname>tiger_2010</varname> and <varname>tiger_2011</varname> is that the county and <varname>county</varname> and <varname>state</varname> tables are no longer broken out by state. We'll be refining the upgrade scripts until release. If you have data from tiger_2010 and want replace with tiger_2011 refer to < [...]
+msgid "If you are using tiger geocoder (tiger_2010), you can upgrade the scripts using the accompanying upgrade_geocoder.bat / .sh scripts in tiger_2011. One major change between <varname>tiger_2010</varname> and <varname>tiger_2011/tiger_2012</varname> is that the county and <varname>county</varname> and <varname>state</varname> tables are no longer broken out by state. We'll be refining the upgrade scripts until release. If you have data from tiger_2010 and want replace with tiger_2012 [...]
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:24
+#: extras_tigergeocoder.xml:23
 #, no-c-format
-msgid "Design:"
+msgid "New in PostGIS 2.1.0 release is ability to install tiger geocoder with PostgreSQL extension model if you are running PostgreSQL 9.1+. Refer to <xref linkend=\"install_tiger_geocoder_extension\"/> for details."
 msgstr ""
 
 #. Tag: para
 #: extras_tigergeocoder.xml:25
 #, no-c-format
+msgid "Also new in PostGIS 2.1.0 is integration with pagc address standardizer PostgreSQL extension which source can be downloaded from <ulink url=\"http://sourceforge.net/p/pagc/code/360/tree/branches/sew-refactor/postgresql\">PAGC PostgreSQL address standardizer extension</ulink> and after install and install of the library in your PostGIS database, you can use the <xref linkend=\"Pagc_Normalize_Address\"/> function as a drop in replacement for in-built <xref linkend=\"Normalize_Addres [...]
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:29
+#, no-c-format
+msgid "Design:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:30
+#, no-c-format
 msgid "The goal of this project is to build a fully functional geocoder that can process an arbitrary United States address string and using normalized TIGER census data, produce a point geometry and rating reflecting the location of the given address and likeliness of the location. The higher the rating number the worse the result."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:27
+#: extras_tigergeocoder.xml:32
 #, no-c-format
 msgid "The <varname>reverse_geocode</varname> function, introduced in PostGIS 2.0.0 is useful for deriving the street address and cross streets of a GPS location."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:28
+#: extras_tigergeocoder.xml:33
 #, no-c-format
 msgid "The geocoder should be simple for anyone familiar with PostGIS to install and use, and should be easily installable and usable on all platforms supported by PostGIS."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:29
+#: extras_tigergeocoder.xml:34
 #, no-c-format
 msgid "It should be robust enough to function properly despite formatting and spelling errors."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:30
+#: extras_tigergeocoder.xml:35
 #, no-c-format
 msgid "It should be extensible enough to be used with future data updates, or alternate data sources with a minimum of coding changes."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:32
+#: extras_tigergeocoder.xml:37
 #, no-c-format
 msgid "The <varname>tiger</varname> schema must be added to the database search path for the functions to work properly."
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:36
+#: extras_tigergeocoder.xml:41
 #, no-c-format
 msgid "Tiger Geocoder"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:38
+#: extras_tigergeocoder.xml:43
 #, no-c-format
 msgid "There are a couple other open source geocoders for PostGIS, that unlike tiger geocoder have the advantage of multi-country geocoding support"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:40
+#: extras_tigergeocoder.xml:45
 #, no-c-format
 msgid "<ulink url=\"http://wiki.openstreetmap.org/wiki/Nominatim\">Nominatim</ulink> and uses OpenStreetMap gazeteer formatted data. It requires osm2pgsql for loading the data, PostgreSQL 8.4+ and PostGIS 1.5+ to function. It is packaged as a webservice interface and seems designed to be called as a webservice. Just like the tiger geocoder, it has both a geocoder and a reverse geocoder component. From the documentation, it is unclear if it has a pure SQL interface like the tiger geocoder [...]
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:43
+#: extras_tigergeocoder.xml:48
 #, no-c-format
 msgid "<ulink url=\"http://www.gisgraphy.com/\">GIS Graphy</ulink> also utilizes PostGIS and like Nominatim works with OpenStreetMap (OSM) data. It comes with a loader to load OSM data and similar to Nominatim is capable of geocoding not just US. Much like Nominatim, it runs as a webservice and relies on Java 1.5, Servlet apps, Solr. GisGraphy is cross-platform and also has a reverse geocoder among some other neat features."
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:48
+#: extras_tigergeocoder.xml:53
 #, no-c-format
 msgid "Drop_Indexes_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:50
+#: extras_tigergeocoder.xml:55
 #, no-c-format
 msgid "<refpurpose>Generates a script that drops all non-primary key and non-unique indexes on tiger schema and user specified schema. Defaults schema to <varname>tiger_data</varname> if no schema is specified.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:55
+#: extras_tigergeocoder.xml:60
 #, no-c-format
 msgid "<funcdef>text <function>Drop_Indexes_Generate_Script</function></funcdef> <paramdef choice=\"opt\"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>"
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:63 extras_tigergeocoder.xml:106 extras_tigergeocoder.xml:148 extras_tigergeocoder.xml:204 extras_tigergeocoder.xml:266 extras_tigergeocoder.xml:311 extras_tigergeocoder.xml:351 extras_tigergeocoder.xml:390 extras_tigergeocoder.xml:435 extras_tigergeocoder.xml:493 extras_tigergeocoder.xml:550 extras_tigergeocoder.xml:605 extras_tigergeocoder.xml:650 extras_tigergeocoder.xml:728 extras_tigergeocoder.xml:775 extras_tigergeocoder.xml:847 extras_tigergeocoder.xml:912
+#: extras_tigergeocoder.xml:68 extras_tigergeocoder.xml:110 extras_tigergeocoder.xml:152 extras_tigergeocoder.xml:208 extras_tigergeocoder.xml:270 extras_tigergeocoder.xml:315 extras_tigergeocoder.xml:355 extras_tigergeocoder.xml:394 extras_tigergeocoder.xml:439 extras_tigergeocoder.xml:497 extras_tigergeocoder.xml:554 extras_tigergeocoder.xml:609 extras_tigergeocoder.xml:654 extras_tigergeocoder.xml:733 extras_tigergeocoder.xml:818 extras_tigergeocoder.xml:865 extras_tigergeocoder.xml:9 [...]
 #, no-c-format
 msgid "Description"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:65
+#: extras_tigergeocoder.xml:70
 #, no-c-format
 msgid "<para>Generates a script that drops all non-primary key and non-unique indexes on tiger schema and user specified schema. Defaults schema to <varname>tiger_data</varname> if no schema is specified.</para>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:66
+#: extras_tigergeocoder.xml:71
 #, no-c-format
 msgid "This is useful for minimizing index bloat that may confuse the query planner or take up unnecessary space. Use in combination with <xref linkend=\"Install_Missing_Indexes\"/> to add just the indexes used by the geocoder."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:69 extras_tigergeocoder.xml:154 extras_tigergeocoder.xml:273 extras_tigergeocoder.xml:355 extras_tigergeocoder.xml:398 extras_tigergeocoder.xml:453 extras_tigergeocoder.xml:613 extras_tigergeocoder.xml:801 extras_tigergeocoder.xml:873
+#: extras_tigergeocoder.xml:74 extras_tigergeocoder.xml:158 extras_tigergeocoder.xml:277 extras_tigergeocoder.xml:359 extras_tigergeocoder.xml:402 extras_tigergeocoder.xml:457 extras_tigergeocoder.xml:617 extras_tigergeocoder.xml:891 extras_tigergeocoder.xml:963
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:76 extras_tigergeocoder.xml:118 extras_tigergeocoder.xml:161 extras_tigergeocoder.xml:405 extras_tigergeocoder.xml:460 extras_tigergeocoder.xml:518 extras_tigergeocoder.xml:573 extras_tigergeocoder.xml:620 extras_tigergeocoder.xml:696 extras_tigergeocoder.xml:738 extras_tigergeocoder.xml:806
+#: extras_tigergeocoder.xml:81 extras_tigergeocoder.xml:122 extras_tigergeocoder.xml:165 extras_tigergeocoder.xml:409 extras_tigergeocoder.xml:464 extras_tigergeocoder.xml:522 extras_tigergeocoder.xml:577 extras_tigergeocoder.xml:624 extras_tigergeocoder.xml:700 extras_tigergeocoder.xml:784 extras_tigergeocoder.xml:828 extras_tigergeocoder.xml:896
 #, no-c-format
 msgid "Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:77
+#: extras_tigergeocoder.xml:82
 #, no-c-format
 msgid ""
       "SELECT drop_indexes_generate_script() As actionsql;\n"
@@ -211,49 +223,49 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:83 extras_tigergeocoder.xml:125 extras_tigergeocoder.xml:168 extras_tigergeocoder.xml:235 extras_tigergeocoder.xml:289 extras_tigergeocoder.xml:328 extras_tigergeocoder.xml:368 extras_tigergeocoder.xml:412 extras_tigergeocoder.xml:470 extras_tigergeocoder.xml:528 extras_tigergeocoder.xml:582 extras_tigergeocoder.xml:627 extras_tigergeocoder.xml:706 extras_tigergeocoder.xml:749 extras_tigergeocoder.xml:821 extras_tigergeocoder.xml:889 extras_tigergeocoder.xml:929
+#: extras_tigergeocoder.xml:88 extras_tigergeocoder.xml:129 extras_tigergeocoder.xml:172 extras_tigergeocoder.xml:239 extras_tigergeocoder.xml:293 extras_tigergeocoder.xml:332 extras_tigergeocoder.xml:372 extras_tigergeocoder.xml:416 extras_tigergeocoder.xml:474 extras_tigergeocoder.xml:532 extras_tigergeocoder.xml:586 extras_tigergeocoder.xml:631 extras_tigergeocoder.xml:710 extras_tigergeocoder.xml:796 extras_tigergeocoder.xml:839 extras_tigergeocoder.xml:911 extras_tigergeocoder.xml:9 [...]
 #, no-c-format
 msgid "See Also"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:84 extras_tigergeocoder.xml:413
+#: extras_tigergeocoder.xml:89 extras_tigergeocoder.xml:417
 #, no-c-format
 msgid ", <xref linkend=\"Missing_Indexes_Generate_Script\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:90
+#: extras_tigergeocoder.xml:95
 #, no-c-format
 msgid "Drop_Nation_Tables_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:92
+#: extras_tigergeocoder.xml:97
 #, no-c-format
 msgid "Generates a script that drops all tables in the specified schema that start with <varname>county_all</varname>, <varname>state_all</varname> or stae code followed by <varname>county</varname> or <varname>state</varname>."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:97 extras_tigergeocoder.xml:139
+#: extras_tigergeocoder.xml:102
 #, no-c-format
-msgid "<funcdef>text <function>Drop_State_Tables_Generate_Script</function></funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>"
+msgid "<funcdef>text <function>Drop_Nation_Tables_Generate_Script</function></funcdef> <paramdef choice=\"opt\"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:108
+#: extras_tigergeocoder.xml:112
 #, no-c-format
 msgid "Generates a script that drops all tables in the specified schema that start with <varname>county_all</varname>, <varname>state_all</varname> or stae code followed by <varname>county</varname> or <varname>state</varname>. This is needed if you are upgrading from <varname>tiger_2010</varname> to <varname>tiger_2011</varname> data."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:111 extras_tigergeocoder.xml:316 extras_tigergeocoder.xml:567 extras_tigergeocoder.xml:916
+#: extras_tigergeocoder.xml:115 extras_tigergeocoder.xml:320 extras_tigergeocoder.xml:571 extras_tigergeocoder.xml:742 extras_tigergeocoder.xml:1006
 #, no-c-format
 msgid "Availability: 2.1.0"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:119
+#: extras_tigergeocoder.xml:123
 #, no-c-format
 msgid ""
       "SELECT drop_nation_tables_generate_script();\n"
@@ -265,25 +277,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:132
+#: extras_tigergeocoder.xml:136
 #, no-c-format
 msgid "Drop_State_Tables_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:134
+#: extras_tigergeocoder.xml:138
 #, no-c-format
 msgid "Generates a script that drops all tables in the specified schema that are prefixed with the state abbreviation. Defaults schema to <varname>tiger_data</varname> if no schema is specified."
 msgstr ""
 
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:143
+#, no-c-format
+msgid "<funcdef>text <function>Drop_State_Tables_Generate_Script</function></funcdef> <paramdef><type>text </type> <parameter>param_state</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>param_schema=tiger_data</parameter></paramdef>"
+msgstr ""
+
 #. Tag: para
-#: extras_tigergeocoder.xml:150
+#: extras_tigergeocoder.xml:154
 #, no-c-format
 msgid "Generates a script that drops all tables in the specified schema that are prefixed with the state abbreviation. Defaults schema to <varname>tiger_data</varname> if no schema is specified. This function is useful for dropping tables of a state just before you reload a state in case something went wrong during your previous load."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:162
+#: extras_tigergeocoder.xml:166
 #, no-c-format
 msgid ""
       "SELECT drop_state_tables_generate_script('PA');\n"
@@ -302,55 +320,55 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:174
+#: extras_tigergeocoder.xml:178
 #, no-c-format
 msgid "Geocode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:176
+#: extras_tigergeocoder.xml:180
 #, no-c-format
 msgid "Takes in an address as a string (or other normalized address) and outputs a set of possible locations which include a point geometry in NAD 83 long lat, a normalized address for each, and the rating. The lower the rating the more likely the match. Results are sorted by lowest rating first. Can optionally pass in maximum results, defaults to 10, and restrict_region (defaults to NULL)"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_tigergeocoder.xml:181
+#: extras_tigergeocoder.xml:185
 #, no-c-format
 msgid "<funcprototype> <funcdef>setof record <function>geocode</function></funcdef> <paramdef><type>varchar </type> <parameter>address</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>max_results=10</parameter></paramdef> <paramdef choice=\"opt\"><type>geometry </type> <parameter>restrict_region=NULL</parameter></paramdef> <paramdef><type>norm_addy </type> <parameter>OUT addy</parameter></paramdef> <paramdef><type>geometry </type> <parameter>OUT geomout</p [...]
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:206
+#: extras_tigergeocoder.xml:210
 #, no-c-format
 msgid "Takes in an address as a string (or already normalized address) and outputs a set of possible locations which include a point geometry in NAD 83 long lat, a <varname>normalized_address</varname> (addy) for each, and the rating. The lower the rating the more likely the match. Results are sorted by lowest rating first. Uses Tiger data (edges,faces,addr), PostgreSQL fuzzy string matching (soundex,levenshtein) and PostGIS line interpolation functions to interpolate address along the T [...]
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:210
+#: extras_tigergeocoder.xml:214
 #, no-c-format
 msgid "Enhanced: 2.0.0 to support Tiger 2010 structured data and revised some logic to improve speed, accuracy of geocoding, and to offset point from centerline to side of street address is located on. New parameter max_results useful for specifying ot just return the best result."
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:216 extras_tigergeocoder.xml:279 extras_tigergeocoder.xml:361
+#: extras_tigergeocoder.xml:220 extras_tigergeocoder.xml:283 extras_tigergeocoder.xml:365
 #, no-c-format
 msgid "Examples: Basic"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:217
+#: extras_tigergeocoder.xml:221
 #, no-c-format
 msgid "The below examples timings are on a 3.0 GHZ single processor Windows 7 machine with 2GB ram running PostgreSQL 9.1rc1/PostGIS 2.0 loaded with all of MA,MN,CA, RI state Tiger data loaded."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:218
+#: extras_tigergeocoder.xml:222
 #, no-c-format
 msgid "Exact matches are faster to compute (61ms)"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:219
+#: extras_tigergeocoder.xml:223
 #, no-c-format
 msgid ""
       "SELECT g.rating, ST_X(g.geomout) As lon, ST_Y(g.geomout) As lat, \n"
@@ -363,13 +381,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:220
+#: extras_tigergeocoder.xml:224
 #, no-c-format
 msgid "Even if zip is not passed in the geocoder can guess (took about 122-150 ms)"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:221
+#: extras_tigergeocoder.xml:225
 #, no-c-format
 msgid ""
       "SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
@@ -382,13 +400,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:222
+#: extras_tigergeocoder.xml:226
 #, no-c-format
 msgid "Can handle misspellings and provides more than one possible solution with ratings and takes longer (500ms)."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:223
+#: extras_tigergeocoder.xml:227
 #, no-c-format
 msgid ""
       "SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
@@ -401,13 +419,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:225
+#: extras_tigergeocoder.xml:229
 #, no-c-format
 msgid "Using to do a batch geocode of addresses. Easiest is to set <varname>max_results=1</varname>. Only process those not yet geocoded (have no rating)."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:226
+#: extras_tigergeocoder.xml:230
 #, no-c-format
 msgid ""
       "CREATE TABLE addresses_to_geocode(addid serial PRIMARY KEY, address text,\n"
@@ -453,13 +471,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:229
+#: extras_tigergeocoder.xml:233
 #, no-c-format
 msgid "Examples: Using Geometry filter"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:230
+#: extras_tigergeocoder.xml:234
 #, no-c-format
 msgid ""
       "SELECT g.rating, ST_AsText(ST_SnapToGrid(g.geomout,0.00001)) As wktlonlat, \n"
@@ -479,49 +497,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:236
+#: extras_tigergeocoder.xml:240
 #, no-c-format
 msgid ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_SnapToGrid\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:242
+#: extras_tigergeocoder.xml:246
 #, no-c-format
 msgid "Geocode_Intersection"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:244
+#: extras_tigergeocoder.xml:248
 #, no-c-format
 msgid "Takes in 2 streets that intersect and a state, city, zip, and outputs a set of possible locations on the first cross street that is at the intersection, also includes a point geometry in NAD 83 long lat, a normalized address for each location, and the rating. The lower the rating the more likely the match. Results are sorted by lowest rating first. Can optionally pass in maximum results, defaults to 10"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:250
+#: extras_tigergeocoder.xml:254
 #, no-c-format
 msgid "<funcdef>setof record <function>geocode_intersection</function></funcdef> <paramdef><type>text </type> <parameter> roadway1</parameter></paramdef> <paramdef><type>text </type> <parameter> roadway2</parameter></paramdef> <paramdef><type>text </type> <parameter> in_state</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter> in_city</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter> in_zip</parameter></paramdef> <paramdef choice=\" [...]
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:268
+#: extras_tigergeocoder.xml:272
 #, no-c-format
 msgid "Takes in 2 streets that intersect and a state, city, zip, and outputs a set of possible locations on the first cross street that is at the intersection, also includes a point geometry in NAD 83 long lat, a normalized address for each location, and the rating. The lower the rating the more likely the match. Results are sorted by lowest rating first. Can optionally pass in maximum results, defaults to 10. Returns <varname>normalized_address</varname> (addy) for each, geomout as the  [...]
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:280
+#: extras_tigergeocoder.xml:284
 #, no-c-format
 msgid "The below examples timings are on a 3.0 GHZ single processor Windows 7 machine with 2GB ram running PostgreSQL 9.0/PostGIS 1.5 loaded with all of MA state Tiger data loaded. Currently a bit slow (3000 ms)"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:281
+#: extras_tigergeocoder.xml:285
 #, no-c-format
 msgid "Testing on Windows 2003 64-bit 8GB on PostGIS 2.0 PostgreSQL 64-bit Tiger 2011 data loaded -- (41ms)"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:282
+#: extras_tigergeocoder.xml:286
 #, no-c-format
 msgid ""
       "SELECT pprint_addy(addy), st_astext(geomout),rating \n"
@@ -532,13 +550,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:283
+#: extras_tigergeocoder.xml:287
 #, no-c-format
 msgid "Even if zip is not passed in the geocoder can guess (took about 3500 ms on the windows 7 box), on the windows 2003 64-bit 741 ms"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:284
+#: extras_tigergeocoder.xml:288
 #, no-c-format
 msgid ""
       "SELECT pprint_addy(addy), st_astext(geomout),rating \n"
@@ -550,59 +568,60 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:290
+#: extras_tigergeocoder.xml:294
 #, no-c-format
 msgid ", <xref linkend=\"Pprint_Addy\"/>, <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:296
+#: extras_tigergeocoder.xml:300
 #, no-c-format
 msgid "Get_Geocode_Setting"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:298
+#: extras_tigergeocoder.xml:302
 #, no-c-format
 msgid "Returns value of specific setting stored in tiger.geocode_settings table."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:303
+#: extras_tigergeocoder.xml:307
 #, no-c-format
 msgid "<funcdef>text <function>Get_Geocode_Setting</function></funcdef> <paramdef><type>text </type> <parameter> setting_name</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:313
+#: extras_tigergeocoder.xml:317
 #, no-c-format
 msgid "Returns value of specific setting stored in tiger.geocode_settings table. Settings allow you to toggle debugging of functions. Later plans will be to control rating with settings. Current list of settings are as follows:"
 msgstr ""
 
 #. Tag: screen
-#: extras_tigergeocoder.xml:314
+#: extras_tigergeocoder.xml:318
 #, no-c-format
 msgid ""
-      "name       | category |        short_desc                                                           \n"
-      "----------------------------+----------+----------------------------------------------------------------------------------\n"
-      " debug_geocode_address      | debug    | outputs debug information in notice log such as queries \n"
-      "                                       |  when geocode_addresss is called if true\n"
-      " debug_geocode_intersection | debug    | outputs debug information in notice log such as queries \n"
-      "                                       |  when geocode_intersection is called if true\n"
-      " debug_normalize_address    | debug    | outputs debug information in notice log such as queries \n"
-      "                                       |  and intermediate expressions when normalize_address is called if true\n"
-      " debug_reverse_geocode      | debug    | if true, outputs debug information in notice log \n"
-      "                                         such as queries and intermediate expressions when reverse_geocode"
+      "name              | setting |  unit   | category  |                                                             short_desc\n"
+      "--------------------------------+---------+---------+-----------+------------------------------------------------------------------------------------------------------\n"
+      " debug_geocode_address          | false   | boolean | debug     | outputs debug information in notice log such as queries when geocode_addresss is called if true\n"
+      " debug_geocode_intersection     | false   | boolean | debug     | outputs debug information in notice log such as queries when geocode_intersection is called if true\n"
+      " debug_normalize_address        | false   | boolean | debug     | outputs debug information in notice log such as queries \n"
+      "                                |         |         |           |   and intermediate expressions when normalize_address is called if true\n"
+      " debug_reverse_geocode          | false   | boolean | debug     | if true, outputs debug information in notice log such as queries \n"
+      "                                                                |  and intermediate expressions when reverse_geocode\n"
+      " reverse_geocode_numbered_roads | 0       | integer | rating    | For state and county highways, 0 - no preference in name\n"
+      "                                |         |         |           |  , 1 - prefer the numbered highway name, 2 - prefer local state/county name\n"
+      " use_pagc_address_parser        | false   | boolean | normalize | If set to true, will try to use the pagc_address normalizer instead of tiger built one"
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:322 extras_tigergeocoder.xml:922
+#: extras_tigergeocoder.xml:326 extras_tigergeocoder.xml:1012
 #, no-c-format
 msgid "Example return debugging setting"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:323
+#: extras_tigergeocoder.xml:327
 #, no-c-format
 msgid ""
       "SELECT get_geocode_setting('debug_geocode_address) As result;\n"
@@ -612,31 +631,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:335
+#: extras_tigergeocoder.xml:339
 #, no-c-format
 msgid "Get_Tract"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:337
+#: extras_tigergeocoder.xml:341
 #, no-c-format
 msgid "Returns census tract or field from tract table of where the geometry is located. Default to returning short name of tract."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:342
+#: extras_tigergeocoder.xml:346
 #, no-c-format
 msgid "<funcdef>text <function>get_tract</function></funcdef> <paramdef><type>geometry </type> <parameter> loc_geom</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter> output_field=name</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:353
+#: extras_tigergeocoder.xml:357
 #, no-c-format
 msgid "Given a geometry will return the census tract location of that geometry. NAD 83 long lat is assumed if no spatial ref sys is specified."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:362
+#: extras_tigergeocoder.xml:366
 #, no-c-format
 msgid ""
       "SELECT get_tract(ST_Point(-71.101375, 42.31376) ) As tract_name;\n"
@@ -646,7 +665,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:363
+#: extras_tigergeocoder.xml:367
 #, no-c-format
 msgid ""
       "--this one returns the tiger geoid\n"
@@ -657,37 +676,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:369
+#: extras_tigergeocoder.xml:373
 #, no-c-format
 msgid "<para>></para>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:375
+#: extras_tigergeocoder.xml:379
 #, no-c-format
 msgid "Install_Missing_Indexes"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:377
+#: extras_tigergeocoder.xml:381
 #, no-c-format
 msgid "Finds all tables with key columns used in geocoder joins and filter conditions that are missing used indexes on those columns and will add them."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:382
+#: extras_tigergeocoder.xml:386
 #, no-c-format
 msgid "<funcdef>boolean <function>Install_Missing_Indexes</function></funcdef> <paramdef></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:392
+#: extras_tigergeocoder.xml:396
 #, no-c-format
 msgid "Finds all tables in <varname>tiger</varname> and <varname>tiger_data</varname> schemas with key columns used in geocoder joins and filters that are missing indexes on those columns and will output the SQL DDL to define the index for those tables and then execute the generated script. This is a helper function that adds new indexes needed to make queries faster that may have been missing during the load process. This function is a companion to <xref linkend=\"Missing_Indexes_Genera [...]
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:406
+#: extras_tigergeocoder.xml:410
 #, no-c-format
 msgid ""
       "SELECT install_missing_indexes();\n"
@@ -697,73 +716,73 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:419
+#: extras_tigergeocoder.xml:423
 #, no-c-format
 msgid "Loader_Generate_Census_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:421
+#: extras_tigergeocoder.xml:425
 #, no-c-format
 msgid "Generates a shell script for the specified platform for the specified states that will download Tiger census state tract, bg, and tabblocks data tables, stage and load into <varname>tiger_data</varname> schema. Each state script is returned as a separate record."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:426
+#: extras_tigergeocoder.xml:430
 #, no-c-format
 msgid "<funcdef>setof text <function>loader_generate_census_script</function></funcdef> <paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef> <paramdef><type>text</type> <parameter>os</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:437
+#: extras_tigergeocoder.xml:441
 #, no-c-format
 msgid "Generates a shell script for the specified platform for the specified states that will download Tiger data census state <varname>tract</varname>, block groups <varname>bg</varname>, and <varname>tabblocks</varname> data tables, stage and load into <varname>tiger_data</varname> schema. Each state script is returned as a separate record."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:438
+#: extras_tigergeocoder.xml:442
 #, no-c-format
 msgid "It uses unzip on Linux (7-zip on Windows by default) and wget to do the downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the data. Note the smallest unit it does is a whole state. It will only process the files in the staging and temp folders."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:440 extras_tigergeocoder.xml:498
+#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502
 #, no-c-format
 msgid "It uses the following control tables to control the process and different OS shell syntax variations."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:444 extras_tigergeocoder.xml:502 extras_tigergeocoder.xml:558
+#: extras_tigergeocoder.xml:448 extras_tigergeocoder.xml:506 extras_tigergeocoder.xml:562
 #, no-c-format
 msgid "<varname>loader_variables</varname> keeps track of various variables such as census site, year, data and staging schemas"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:447 extras_tigergeocoder.xml:505
+#: extras_tigergeocoder.xml:451 extras_tigergeocoder.xml:509
 #, no-c-format
 msgid "<varname>loader_platform</varname> profiles of various platforms and where the various executables are located. Comes with windows and linux. More can be added."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:450 extras_tigergeocoder.xml:508 extras_tigergeocoder.xml:564
+#: extras_tigergeocoder.xml:454 extras_tigergeocoder.xml:512 extras_tigergeocoder.xml:568
 #, no-c-format
 msgid "<varname>loader_lookuptables</varname> each record defines a kind of table (state, county), whether to process records in it and how to load them in. Defines the steps to import data, stage data, add, removes columns, indexes, and constraints for each. Each table is prefixed with the state and inherits from a table in the tiger schema. e.g. creates <varname>tiger_data.ma_faces</varname> which inherits from <varname>tiger.faces</varname>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:454
+#: extras_tigergeocoder.xml:458
 #, no-c-format
 msgid "includes this logic, but if you installed tiger geocoder prior to PostGIS 2.0.0 alpha5, you'll need to run this on the states you have already done to get these additional tables."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:461
+#: extras_tigergeocoder.xml:465
 #, no-c-format
 msgid "Generate script to load up data for select states in Windows shell script format."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:462
+#: extras_tigergeocoder.xml:466
 #, no-c-format
 msgid ""
       "SELECT loader_generate_census_script(ARRAY['MA'], 'windows');\n"
@@ -799,13 +818,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:463 extras_tigergeocoder.xml:521
+#: extras_tigergeocoder.xml:467 extras_tigergeocoder.xml:525
 #, no-c-format
 msgid "Generate sh script"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:464
+#: extras_tigergeocoder.xml:468
 #, no-c-format
 msgid ""
       "STATEDIR=\"/gisdata/www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts\" \n"
@@ -833,49 +852,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:477
+#: extras_tigergeocoder.xml:481
 #, no-c-format
 msgid "Loader_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:479
+#: extras_tigergeocoder.xml:483
 #, no-c-format
 msgid "Generates a shell script for the specified platform for the specified states that will download Tiger data, stage and load into <varname>tiger_data</varname> schema. Each state script is returned as a separate record. Latest version supports Tiger 2010 structural changes and also loads census tract, block groups, and blocks tables."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:484
+#: extras_tigergeocoder.xml:488
 #, no-c-format
 msgid "<funcdef>setof text <function>loader_generate_script</function></funcdef> <paramdef><type>text[]</type> <parameter>param_states</parameter></paramdef> <paramdef><type>text</type> <parameter>os</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:495
+#: extras_tigergeocoder.xml:499
 #, no-c-format
 msgid "Generates a shell script for the specified platform for the specified states that will download Tiger data, stage and load into <varname>tiger_data</varname> schema. Each state script is returned as a separate record."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:496
+#: extras_tigergeocoder.xml:500
 #, no-c-format
 msgid "It uses unzip on Linux (7-zip on Windows by default) and wget to do the downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the data. Note the smallest unit it does is a whole state, but you can overwrite this by downloading the files yourself. It will only process the files in the staging and temp folders."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:511
+#: extras_tigergeocoder.xml:515
 #, no-c-format
 msgid "Availability: 2.0.0 to support Tiger 2010 structured data and load census tract (tract), block groups (bg), and blocks (tabblocks) tables ."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:519
+#: extras_tigergeocoder.xml:523
 #, no-c-format
 msgid "Generate script to load up data for 2 states in Windows shell script format."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:520
+#: extras_tigergeocoder.xml:524
 #, no-c-format
 msgid ""
       "SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;\n"
@@ -899,7 +918,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:522
+#: extras_tigergeocoder.xml:526
 #, no-c-format
 msgid ""
       "SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;\n"
@@ -921,103 +940,103 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:535
+#: extras_tigergeocoder.xml:539
 #, no-c-format
 msgid "Loader_Generate_Nation_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:537
+#: extras_tigergeocoder.xml:541
 #, no-c-format
 msgid "Generates a shell script for the specified platform that loads in the county and state lookup tables."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:542
+#: extras_tigergeocoder.xml:546
 #, no-c-format
 msgid "<funcdef>text <function>loader_generate_nation_script</function></funcdef> <paramdef><type>text</type> <parameter>os</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:552
+#: extras_tigergeocoder.xml:556
 #, no-c-format
 msgid "Generates a shell script for the specified platform that loads in the <varname>county_all</varname>, <varname>county_all_lookup</varname>, <varname>state_all</varname> tables into <varname>tiger_data</varname> schema. These inherit respectively from the <varname>county</varname>, <varname>county_lookup</varname>, <varname>state</varname> tables in <varname>tiger</varname> schema."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:553
+#: extras_tigergeocoder.xml:557
 #, no-c-format
 msgid "It uses unzip on Linux (7-zip on Windows by default) and wget to do the downloading. It uses <xref linkend=\"shp2pgsql_usage\"/> to load in the data."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:554
+#: extras_tigergeocoder.xml:558
 #, no-c-format
 msgid "It uses the following control tables <varname>tiger.loader_platform</varname>, <varname>tiger.loader_variables</varname>, and <varname>tiger.loader_lookuptables</varname> to control the process and different OS shell syntax variations."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:561
+#: extras_tigergeocoder.xml:565
 #, no-c-format
 msgid "<varname>loader_platform</varname> profiles of various platforms and where the various executables are located. Comes with windows and linux/unix. More can be added."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:568
+#: extras_tigergeocoder.xml:572
 #, no-c-format
 msgid "If you were running <varname>tiger_2010</varname> version and you want to reload as state with <varname>tiger_2011</varname>, you'll need to for the very first load generate and run drop statements <xref linkend=\"Drop_Nation_Tables_Generate_Script\"/> before you run this script."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:574
+#: extras_tigergeocoder.xml:578
 #, no-c-format
 msgid "Generate script script to load nation data Windows."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:575
+#: extras_tigergeocoder.xml:579
 #, no-c-format
 msgid "SELECT loader_generate_nation_script('windows');"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:576
+#: extras_tigergeocoder.xml:580
 #, no-c-format
 msgid "Generate script to load up data for Linux/Unix systems."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:577
+#: extras_tigergeocoder.xml:581
 #, no-c-format
 msgid "SELECT loader_generate_nation_script('sh');"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:589
+#: extras_tigergeocoder.xml:593
 #, no-c-format
 msgid "Missing_Indexes_Generate_Script"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:591
+#: extras_tigergeocoder.xml:595
 #, no-c-format
 msgid "Finds all tables with key columns used in geocoder joins that are missing indexes on those columns and will output the SQL DDL to define the index for those tables."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:597
+#: extras_tigergeocoder.xml:601
 #, no-c-format
 msgid "<funcdef>text <function>Missing_Indexes_Generate_Script</function></funcdef> <paramdef></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:607
+#: extras_tigergeocoder.xml:611
 #, no-c-format
 msgid "Finds all tables in <varname>tiger</varname> and <varname>tiger_data</varname> schemas with key columns used in geocoder joins that are missing indexes on those columns and will output the SQL DDL to define the index for those tables. This is a helper function that adds new indexes needed to make queries faster that may have been missing during the load process. As the geocoder is improved, this function will be updated to accommodate new indexes being used. If this function outpu [...]
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:621
+#: extras_tigergeocoder.xml:625
 #, no-c-format
 msgid ""
       "SELECT missing_indexes_generate_script();\n"
@@ -1034,127 +1053,127 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:628
+#: extras_tigergeocoder.xml:632
 #, no-c-format
 msgid ", <xref linkend=\"Install_Missing_Indexes\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:634
+#: extras_tigergeocoder.xml:638
 #, no-c-format
 msgid "Normalize_Address"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:636
+#: extras_tigergeocoder.xml:640
 #, no-c-format
 msgid "Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields. This function will work with just the lookup data packaged with the tiger_geocoder (no need for tiger census data)."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:642
+#: extras_tigergeocoder.xml:646
 #, no-c-format
 msgid "<funcdef>norm_addy <function>normalize_address</function></funcdef> <paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:652
+#: extras_tigergeocoder.xml:656 extras_tigergeocoder.xml:735
 #, no-c-format
 msgid "Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields. This is the first step in the geocoding process to get all addresses into normalized postal form. No other data is required aside from what is packaged with the geocoder."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:654
+#: extras_tigergeocoder.xml:658
 #, no-c-format
 msgid "This function just uses the various direction/state/suffix lookup tables preloaded with the tiger_geocoder and located in the <varname>tiger</varname> schema, so it doesn't need you to download tiger census data or any other additional data to make use of it. You may find the need to add more abbreviations or alternative namings to the various lookup tables in the <varname>tiger</varname> schema."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:656
+#: extras_tigergeocoder.xml:660 extras_tigergeocoder.xml:739
 #, no-c-format
 msgid "It uses various control lookup tables located in <varname>tiger</varname> schema to normalize the input address."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:657
+#: extras_tigergeocoder.xml:661 extras_tigergeocoder.xml:740
 #, no-c-format
 msgid "Fields in the <varname>norm_addy</varname> type object returned by this function in this order where () indicates a field required by the geocoder, [] indicates an optional field:"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:658
+#: extras_tigergeocoder.xml:662 extras_tigergeocoder.xml:744
 #, no-c-format
 msgid "(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] [internal] [location] [stateAbbrev] [zip]"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:661
+#: extras_tigergeocoder.xml:665 extras_tigergeocoder.xml:750
 #, no-c-format
 msgid "<varname>address</varname> is an integer: The street number"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:664
+#: extras_tigergeocoder.xml:668 extras_tigergeocoder.xml:753
 #, no-c-format
 msgid "<varname>predirAbbrev</varname> is varchar: Directional prefix of road such as N, S, E, W etc. These are controlled using the <varname>direction_lookup</varname> table."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:667
+#: extras_tigergeocoder.xml:671 extras_tigergeocoder.xml:756
 #, no-c-format
 msgid "<varname>streetName</varname> varchar"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:670
+#: extras_tigergeocoder.xml:674 extras_tigergeocoder.xml:759
 #, no-c-format
 msgid "<varname>streetTypeAbbrev</varname> varchar abbreviated version of street type: e.g. St, Ave, Cir. These are controlled using the <varname>street_type_lookup</varname> table."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:673
+#: extras_tigergeocoder.xml:677 extras_tigergeocoder.xml:762
 #, no-c-format
 msgid "<varname>postdirAbbrev</varname> varchar abbreviated directional suffice of road N, S, E, W etc. These are controlled using the <varname>direction_lookup</varname> table."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:676
+#: extras_tigergeocoder.xml:680 extras_tigergeocoder.xml:765
 #, no-c-format
 msgid "<varname>internal</varname> varchar internal address such as an apartment or suite number."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:679
+#: extras_tigergeocoder.xml:683 extras_tigergeocoder.xml:768
 #, no-c-format
 msgid "<varname>location</varname> varchar usually a city or governing province."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:682
+#: extras_tigergeocoder.xml:686 extras_tigergeocoder.xml:771
 #, no-c-format
 msgid "<varname>stateAbbrev</varname> varchar two character US State. e.g MA, NY, MI. These are controlled by the <varname>state_lookup</varname> table."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:685
+#: extras_tigergeocoder.xml:689 extras_tigergeocoder.xml:774
 #, no-c-format
 msgid "<varname>zip</varname> varchar 5-digit zipcode. e.g. 02109."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:688
+#: extras_tigergeocoder.xml:692 extras_tigergeocoder.xml:777
 #, no-c-format
 msgid "<varname>parsed</varname> boolean - denotes if addess was formed from normalize process. The normalize_address function sets this to true before returning the address."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:697
+#: extras_tigergeocoder.xml:701
 #, no-c-format
 msgid "Output select fields. Use <xref linkend=\"Pprint_Addy\"/> if you want a pretty textual output."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:698
+#: extras_tigergeocoder.xml:702
 #, no-c-format
 msgid ""
       "SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
@@ -1172,49 +1191,151 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:707
+#: extras_tigergeocoder.xml:711
 #, no-c-format
 msgid ", <xref linkend=\"Pprint_Addy\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:713
+#: extras_tigergeocoder.xml:717
+#, no-c-format
+msgid "Pagc_Normalize_Address"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_tigergeocoder.xml:719
+#, no-c-format
+msgid "Given a textual street address, returns a composite <varname>norm_addy</varname> type that has road suffix, prefix and type standardized, street, streetname etc. broken into separate fields. This function will work with just the lookup data packaged with the tiger_geocoder (no need for tiger census data). Requires address_standardizer extension."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_tigergeocoder.xml:725
+#, no-c-format
+msgid "<funcdef>norm_addy <function>pagc_normalize_address</function></funcdef> <paramdef><type>varchar </type> <parameter>in_address</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:737
+#, no-c-format
+msgid "This function just uses the various pagc_* lookup tables preloaded with the tiger_geocoder and located in the <varname>tiger</varname> schema, so it doesn't need you to download tiger census data or any other additional data to make use of it. You may find the need to add more abbreviations or alternative namings to the various lookup tables in the <varname>tiger</varname> schema."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:741
+#, no-c-format
+msgid "There are slight variations in casing and formatting over the <xref linkend=\"Normalize_Address\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:743
+#, no-c-format
+msgid "&address_standardizer_required;"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:745
+#, no-c-format
+msgid "The native standardaddr of address_standardizer extension is at this time a bit richer than norm_addy since its designed to support international addresses (including country). standardaddr equivalent fields are:"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:746
+#, no-c-format
+msgid "house_num,predir, name, suftype, sufdir, unit, city, state, postcode"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:785
+#, no-c-format
+msgid "Single call example"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:786
+#, no-c-format
+msgid ""
+      "SELECT addy.*\n"
+      "FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS addy;\n"
+      "\n"
+      "        \n"
+      " address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | internal  |  location   | stateabbrev | zip | parsed\n"
+      "---------+--------------+------------+------------------+---------------+-----------+-------------+-------------+-----+--------\n"
+      "    9000 | E            | ROO        | ST               |               | SUITE 999 | SPRINGFIELD | CO          |     | t"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:788
+#, no-c-format
+msgid "Batch call. There are currently speed issues with the way postgis_tiger_geocoder wraps the address_standardizer. These will hopefully be resolved in later editions. To work around them, if you need speed for batch geocoding to call generate a normaddy in batch mode, you are encouraged to directly call the address_standardizer standardize_address function as shown below which is similar exercise to what we did in <xref linkend=\"Normalize_Address\"/> that uses data created in <xref [...]
+msgstr ""
+
+#. Tag: programlisting
+#: extras_tigergeocoder.xml:792
+#, no-c-format
+msgid ""
+      "WITH g AS (SELECT address, ROW((sa).house_num, (sa).predir, (sa).name\n"
+      "  , (sa).suftype, (sa).sufdir, (sa).unit , (sa).city, (sa).state, (sa).postcode, true)::norm_addy As na\n"
+      " FROM (SELECT address, standardize_address('tiger.pagc_lex'\n"
+      "       , 'tiger.pagc_gaz'\n"
+      "       , 'tiger.pagc_rules', address) As sa\n"
+      "        FROM addresses_to_geocode) As g)\n"
+      "SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev\n"
+      " FROM  g;\n"
+      " \n"
+      " orig                                                |  streetname   | streettypeabbrev\n"
+      "-----------------------------------------------------+---------------+------------------\n"
+      " 529 Main Street, Boston MA, 02129                   | MAIN          | ST\n"
+      " 77 Massachusetts Avenue, Cambridge, MA 02139        | MASSACHUSETTS | AVE\n"
+      " 25 Wizard of Oz, Walaford, KS 99912323              | WIZARD OF     |\n"
+      " 26 Capen Street, Medford, MA                        | CAPEN         | ST\n"
+      " 124 Mount Auburn St, Cambridge, Massachusetts 02138 | MOUNT AUBURN  | ST\n"
+      " 950 Main Street, Worcester, MA 01610                | MAIN          | ST"
+msgstr ""
+
+#. Tag: para
+#: extras_tigergeocoder.xml:797 extras_tigergeocoder.xml:913
+#, no-c-format
+msgid ", <xref linkend=\"Geocode\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_tigergeocoder.xml:803
 #, no-c-format
 msgid "Pprint_Addy"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:715
+#: extras_tigergeocoder.xml:805
 #, no-c-format
 msgid "Given a <varname>norm_addy</varname> composite type object, returns a pretty print representation of it. Usually used in conjunction with normalize_address."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:720
+#: extras_tigergeocoder.xml:810
 #, no-c-format
 msgid "<funcdef>varchar <function>pprint_addy</function></funcdef> <paramdef><type>norm_addy </type> <parameter>in_addy</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:730
+#: extras_tigergeocoder.xml:820
 #, no-c-format
 msgid "Given a <varname>norm_addy</varname> composite type object, returns a pretty print representation of it. No other data is required aside from what is packaged with the geocoder."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:731
+#: extras_tigergeocoder.xml:821
 #, no-c-format
 msgid "Usually used in conjunction with <xref linkend=\"Normalize_Address\"/>."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:739
+#: extras_tigergeocoder.xml:829
 #, no-c-format
 msgid "Pretty print a single address"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:740
+#: extras_tigergeocoder.xml:830
 #, no-c-format
 msgid ""
       "SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, Nevada 89101')) As pretty_address;\n"
@@ -1224,13 +1345,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:742
+#: extras_tigergeocoder.xml:832
 #, no-c-format
 msgid "Pretty print address a table of addresses"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:743
+#: extras_tigergeocoder.xml:833
 #, no-c-format
 msgid ""
       "SELECT address As orig, pprint_addy(normalize_address(address)) As pretty_address\n"
@@ -1246,73 +1367,73 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:756
+#: extras_tigergeocoder.xml:846
 #, no-c-format
 msgid "Reverse_Geocode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:758
+#: extras_tigergeocoder.xml:848
 #, no-c-format
 msgid "Takes a geometry point in a known spatial ref sys and returns a record containing an array of theoretically possible addresses and an array of cross streets. If include_strnum_range = true, includes the street range in the cross streets."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:763
+#: extras_tigergeocoder.xml:853
 #, no-c-format
 msgid "<funcdef>record <function>Reverse_Geocode</function></funcdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>include_strnum_range=false</parameter></paramdef> <paramdef><type>geometry[] </type> <parameter>OUT intpt</parameter></paramdef> <paramdef><type>norm_addy[] </type> <parameter>OUT addy</parameter></paramdef> <paramdef><type>varchar[] </type> <parameter>OUT street</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:777
+#: extras_tigergeocoder.xml:867
 #, no-c-format
 msgid "Takes a geometry point in a known spatial ref and returns a record containing an array of theoretically possible addresses and an array of cross streets. If include_strnum_range = true, includes the street range in the cross streets. include_strnum_range defaults to false if not passed in. Addresses are sorted according to which road a point is closest to so first address is most likely the right one."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:780
+#: extras_tigergeocoder.xml:870
 #, no-c-format
 msgid "Why do we say theoretical instead of actual addresses. The Tiger data doesn't have real addresses, but just street ranges. As such the theoretical address is an interpolated address based on the street ranges. Like for example interpolating one of my addresses returns a 26 Court St. and 26 Court Sq., though there is no such place as 26 Court Sq. This is because a point may be at a corner of 2 streets and thus the logic interpolates along both streets. The logic also assumes addres [...]
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:785
+#: extras_tigergeocoder.xml:875
 #, no-c-format
 msgid "Note: Hmm this function relies on Tiger data. If you have not loaded data covering the region of this point, then hmm you will get a record filled with NULLS."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:786
+#: extras_tigergeocoder.xml:876
 #, no-c-format
 msgid "Returned elements of the record are as follows:"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:789
+#: extras_tigergeocoder.xml:879
 #, no-c-format
 msgid "<varname>intpt</varname> is an array of points: These are the center line points on the street closest to the input point. There are as many points as there are addresses."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:792
+#: extras_tigergeocoder.xml:882
 #, no-c-format
 msgid "<varname>addy</varname> is an array of norm_addy (normalized addresses): These are an array of possible addresses that fit the input point. The first one in the array is most likely. Generally there should be only one, except in the case when a point is at the corner of 2 or 3 streets, or the point is somewhere on the road and not off to the side."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:796
+#: extras_tigergeocoder.xml:886
 #, no-c-format
 msgid "<varname>street</varname> an array of varchar: These are cross streets (or the street) (streets that intersect or are the street the point is projected to be on)."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:807
+#: extras_tigergeocoder.xml:897
 #, no-c-format
 msgid "Example of a point at the corner of two streets, but closest to one. This is approximate location of MIT: 77 Massachusetts Ave, Cambridge, MA 02139 Note that although we don't have 3 streets, PostgreSQL will just return null for entries above our upper bound so safe to use. This includes street ranges"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:809
+#: extras_tigergeocoder.xml:899
 #, no-c-format
 msgid ""
       "SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, pprint_addy(r.addy[3]) As st3, \n"
@@ -1327,13 +1448,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:811
+#: extras_tigergeocoder.xml:901
 #, no-c-format
 msgid "Here we choose not to include the address ranges for the cross streets and picked a location really really close to a corner of 2 streets thus could be known by two different addresses."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:813
+#: extras_tigergeocoder.xml:903
 #, no-c-format
 msgid ""
       "SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, \n"
@@ -1348,13 +1469,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:815
+#: extras_tigergeocoder.xml:905
 #, no-c-format
 msgid "For this one we reuse our geocoded example from <xref linkend=\"Geocode\"/> and we only want the primary address and at most 2 cross streets."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:816
+#: extras_tigergeocoder.xml:906
 #, no-c-format
 msgid ""
       "SELECT actual_addr, lon, lat, pprint_addy((rg).addy[1]) As int_addr1, \n"
@@ -1372,92 +1493,86 @@ msgid ""
       " 950 Main Street, Worcester, MA 01610                | -71.82368 | 42.24956 | 3 Maywood St, Worcester, MA 01603         | Main St         | Maywood Pl"
 msgstr ""
 
-#. Tag: para
-#: extras_tigergeocoder.xml:823
-#, no-c-format
-msgid ", <xref linkend=\"Geocode\"/>"
-msgstr ""
-
 #. Tag: refname
-#: extras_tigergeocoder.xml:829
+#: extras_tigergeocoder.xml:919
 #, no-c-format
 msgid "Topology_Load_Tiger"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:831
+#: extras_tigergeocoder.xml:921
 #, no-c-format
 msgid "Loads a defined region of tiger data into a PostGIS Topology and transforming the tiger data to spatial reference of the topology and snapping to the precision tolerance of the topology."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:837
+#: extras_tigergeocoder.xml:927
 #, no-c-format
 msgid "<funcdef>text <function>Topology_Load_Tiger</function></funcdef> <paramdef><type>varchar </type> <parameter>topo_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>region_type</parameter></paramdef> <paramdef><type>varchar </type> <parameter>region_id</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:849
+#: extras_tigergeocoder.xml:939
 #, no-c-format
 msgid "Loads a defined region of tiger data into a PostGIS Topology. The faces, nodes and edges are transformed to the spatial reference system of the target topology and points are snapped to the tolerance of the target topology. The created faces, nodes, edges maintain the same ids as the original Tiger data faces, nodes, edges so that datasets can be in the future be more easily reconciled with tiger data. Returns summary details about the process."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:852
+#: extras_tigergeocoder.xml:942
 #, no-c-format
 msgid "This would be useful for example for redistricting data where you require the newly formed polygons to follow the center lines of streets and for the resulting polygons not to overlap."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:854
+#: extras_tigergeocoder.xml:944
 #, no-c-format
 msgid "This function relies on Tiger data as well as the installation of the PostGIS topology module. For more information, refer to <xref linkend=\"Topology\"/> and <xref linkend=\"installation_configuration\"/>. If you have not loaded data covering the region of interest, then no topology records will be created. This function will also fail if you have not created a topology using the topology functions."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:856
+#: extras_tigergeocoder.xml:946
 #, no-c-format
 msgid "Most topology validation errors are a result of tolerance issues where after transformation the edges points don't quite line up or overlap. To remedy the situation you may want to increase or lower the precision if you get topology validation failures."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:858
+#: extras_tigergeocoder.xml:948
 #, no-c-format
 msgid "Required arguments:"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:861
+#: extras_tigergeocoder.xml:951
 #, no-c-format
 msgid "<varname>topo_name</varname> The name of an existing PostGIS topology to load data into."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:864
+#: extras_tigergeocoder.xml:954
 #, no-c-format
 msgid "<varname>region_type</varname> The type of bounding region. Currently only <varname>place</varname> and <varname>county</varname> are supported. Plan is to have several more. This is the table to look into to define the region bounds. e.g <varname>tiger.place</varname>, <varname>tiger.county</varname>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:867
+#: extras_tigergeocoder.xml:957
 #, no-c-format
 msgid "<varname>region_id</varname> This is what TIGER calls the geoid. It is the unique identifier of the region in the table. For place it is the <varname>plcidfp</varname> column in <varname>tiger.place</varname>. For county it is the <varname>cntyidfp</varname> column in <varname>tiger.county</varname>"
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:876
+#: extras_tigergeocoder.xml:966
 #, no-c-format
 msgid "Example: Boston, Massachusetts Topology"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:877
+#: extras_tigergeocoder.xml:967
 #, no-c-format
 msgid "Create a topology for Boston, Massachusetts in Mass State Plane Feet (2249) with tolerance 0.25 feet and then load in Boston city tiger faces, edges, nodes."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:879
+#: extras_tigergeocoder.xml:969
 #, no-c-format
 msgid ""
       "SELECT topology.CreateTopology('topo_boston', 2249, 0.25);\n"
@@ -1485,19 +1600,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_tigergeocoder.xml:883
+#: extras_tigergeocoder.xml:973
 #, no-c-format
 msgid "Example: Suffolk, Massachusetts Topology"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:884
+#: extras_tigergeocoder.xml:974
 #, no-c-format
 msgid "Create a topology for Suffolk, Massachusetts in Mass State Plane Meters (26986) with tolerance 0.25 meters and then load in Suffolk county tiger faces, edges, nodes."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:886
+#: extras_tigergeocoder.xml:976
 #, no-c-format
 msgid ""
       "SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);\n"
@@ -1529,43 +1644,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:890
+#: extras_tigergeocoder.xml:980
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopoGeom\"/>, <xref linkend=\"TopologySummary\"/>, <xref linkend=\"ValidateTopology\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_tigergeocoder.xml:896
+#: extras_tigergeocoder.xml:986
 #, no-c-format
 msgid "Set_Geocode_Setting"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_tigergeocoder.xml:898
+#: extras_tigergeocoder.xml:988
 #, no-c-format
 msgid "Sets a setting that affects behavior of geocoder functions."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_tigergeocoder.xml:903
+#: extras_tigergeocoder.xml:993
 #, no-c-format
 msgid "<funcdef>text <function>Set_Geocode_Setting</function></funcdef> <paramdef><type>text </type> <parameter> setting_name</parameter></paramdef> <paramdef><type>text </type> <parameter> setting_value</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:914
+#: extras_tigergeocoder.xml:1004
 #, no-c-format
 msgid "Sets value of specific setting stored in <varname>tiger.geocode_settings</varname> table. Settings allow you to toggle debugging of functions. Later plans will be to control rating with settings. Current list of settings are listed in <xref linkend=\"Get_Geocode_Setting\"/>."
 msgstr ""
 
 #. Tag: para
-#: extras_tigergeocoder.xml:923
+#: extras_tigergeocoder.xml:1013
 #, no-c-format
 msgid "If you run <xref linkend=\"Geocode\"/> when this function is true, the NOTICE log will output timing and queries."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_tigergeocoder.xml:924
+#: extras_tigergeocoder.xml:1014
 #, no-c-format
 msgid ""
       "SELECT set_geocode_setting('debug_geocode_address', 'true') As result;\n"
diff --git a/doc/po/templates/extras_topology.xml.pot b/doc/po/templates/extras_topology.xml.pot
index 6706fa7..a66c8f4 100644
--- a/doc/po/templates/extras_topology.xml.pot
+++ b/doc/po/templates/extras_topology.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -99,7 +99,7 @@ msgid "A composite type that consists of a sequence number and edge number. This
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:31 extras_topology.xml:50 extras_topology.xml:99 extras_topology.xml:138 extras_topology.xml:159 extras_topology.xml:236 extras_topology.xml:283 extras_topology.xml:324 extras_topology.xml:363 extras_topology.xml:400 extras_topology.xml:470 extras_topology.xml:518 extras_topology.xml:566 extras_topology.xml:610 extras_topology.xml:658 extras_topology.xml:704 extras_topology.xml:750 extras_topology.xml:805 extras_topology.xml:851 extras_topology.xml:898 extras_topol [...]
+#: extras_topology.xml:31 extras_topology.xml:50 extras_topology.xml:99 extras_topology.xml:138 extras_topology.xml:163 extras_topology.xml:240 extras_topology.xml:287 extras_topology.xml:328 extras_topology.xml:367 extras_topology.xml:404 extras_topology.xml:474 extras_topology.xml:522 extras_topology.xml:570 extras_topology.xml:614 extras_topology.xml:662 extras_topology.xml:708 extras_topology.xml:754 extras_topology.xml:809 extras_topology.xml:855 extras_topology.xml:902 extras_topol [...]
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -125,19 +125,19 @@ msgstr ""
 #. Tag: refname
 #: extras_topology.xml:46
 #, no-c-format
-msgid "topogeometry"
+msgid "TopoGeometry"
 msgstr ""
 
 #. Tag: refpurpose
 #: extras_topology.xml:47
 #, no-c-format
-msgid "A composite type that refers to a topology geometry in a specific topology, layer, having specific type (1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection) with specific identifier id in the topology. The id uniquely defines the topogeometry in the topology."
+msgid "A composite type representing a topologically defined geometry"
 msgstr ""
 
 #. Tag: para
 #: extras_topology.xml:51
 #, no-c-format
-msgid "A composite type that refers to a topology geometry in a specific topology, layer, having specific type with specific id. The elements of a topogeometry are the properties: topology_id,layer_id,id integer,type integer."
+msgid "A composite type that refers to a topology geometry in a specific topology layer, having a specific type and a specific id. The elements of a TopoGeometry are the properties: topology_id, layer_id, id integer, type integer."
 msgstr ""
 
 #. Tag: para
@@ -149,19 +149,19 @@ msgstr ""
 #. Tag: para
 #: extras_topology.xml:57
 #, no-c-format
-msgid "<varname>layer_id</varname> is an integer: The layer_id in the layers table that hte topogeometry belongs to. The combination of topology_id, layer_id provides a unique reference in the topology.layers table."
+msgid "<varname>layer_id</varname> is an integer: The layer_id in the layers table that the TopoGeometry belongs to. The combination of topology_id, layer_id provides a unique reference in the topology.layers table."
 msgstr ""
 
 #. Tag: para
 #: extras_topology.xml:60
 #, no-c-format
-msgid "<varname>type</varname> integer between 1 - 4 that defines the geometry type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
+msgid "<varname>id</varname> is an integer: The id is the autogenerated sequence number that uniquely defines the topogeometry in the respective topology layer."
 msgstr ""
 
 #. Tag: para
 #: extras_topology.xml:63
 #, no-c-format
-msgid "<varname>id</varname> is an integer: The id is the autogenerated sequence number that uniquely defines the topogeometry in the respective topology."
+msgid "<varname>type</varname> integer between 1 - 4 that defines the geometry type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
 msgstr ""
 
 #. Tag: title
@@ -201,7 +201,7 @@ msgid "automatic"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:148 extras_topology.xml:169 extras_topology.xml:261 extras_topology.xml:301 extras_topology.xml:341 extras_topology.xml:378 extras_topology.xml:419 extras_topology.xml:495 extras_topology.xml:544 extras_topology.xml:583 extras_topology.xml:632 extras_topology.xml:673 extras_topology.xml:719 extras_topology.xml:765 extras_topology.xml:826 extras_topology.xml:873 extras_topology.xml:929 extras_topology.xml:986 extras_top [...]
+#: extras_topology.xml:88 extras_topology.xml:116 extras_topology.xml:149 extras_topology.xml:173 extras_topology.xml:265 extras_topology.xml:305 extras_topology.xml:345 extras_topology.xml:382 extras_topology.xml:423 extras_topology.xml:499 extras_topology.xml:548 extras_topology.xml:587 extras_topology.xml:636 extras_topology.xml:677 extras_topology.xml:723 extras_topology.xml:769 extras_topology.xml:830 extras_topology.xml:877 extras_topology.xml:933 extras_topology.xml:990 extras_top [...]
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -275,11 +275,11 @@ msgstr ""
 #. Tag: para
 #: extras_topology.xml:139
 #, no-c-format
-msgid "An array of 2 integers used to represent the id and type of a topology primitive or the id and layer of a TopoGeometry. Sets of such pairs are used to define TopoGeometry objects (either simple or hierarchical)."
+msgid "An array of 2 integers used to represent the id (first element) and type (second element) of a topology primitive or the id (first element) and layer (second element) of a TopoGeometry. Sets of such pairs are used to define TopoGeometry objects (either simple or hierarchical)."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:142 extras_topology.xml:163 extras_topology.xml:254 extras_topology.xml:294 extras_topology.xml:335 extras_topology.xml:373 extras_topology.xml:413 extras_topology.xml:484 extras_topology.xml:534 extras_topology.xml:577 extras_topology.xml:626 extras_topology.xml:819 extras_topology.xml:866 extras_topology.xml:922 extras_topology.xml:979 extras_topology.xml:1051 extras_topology.xml:1119 extras_topology.xml:1187 extras_topology.xml:1235 extras_topology.xml:1382 extr [...]
+#: extras_topology.xml:142 extras_topology.xml:167 extras_topology.xml:258 extras_topology.xml:298 extras_topology.xml:339 extras_topology.xml:377 extras_topology.xml:417 extras_topology.xml:488 extras_topology.xml:538 extras_topology.xml:581 extras_topology.xml:630 extras_topology.xml:823 extras_topology.xml:870 extras_topology.xml:926 extras_topology.xml:983 extras_topology.xml:1055 extras_topology.xml:1123 extras_topology.xml:1191 extras_topology.xml:1240 extras_topology.xml:1387 extr [...]
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -288,6 +288,17 @@ msgstr ""
 #: extras_topology.xml:143
 #, no-c-format
 msgid ""
+      "SELECT te[1] AS id, te[2] AS type FROM\n"
+      "( SELECT ARRAY[1,2]::topology.topoelement AS te ) f;\n"
+      " id | type\n"
+      "----+------\n"
+      "  1 |    2"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:144
+#, no-c-format
+msgid ""
       "SELECT ARRAY[1,2]::topology.topoelement;\n"
       "  te\n"
       "-------\n"
@@ -295,7 +306,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:144
+#: extras_topology.xml:145
 #, no-c-format
 msgid ""
       "--Example of what happens when you try to case a 3 element array to topoelement\n"
@@ -304,26 +315,32 @@ msgid ""
       "ERROR:  value for domain topology.topoelement violates check constraint \"dimensions\""
 msgstr ""
 
+#. Tag: para
+#: extras_topology.xml:150 extras_topology.xml:2422 extras_topology.xml:2542
+#, no-c-format
+msgid ", <xref linkend=\"topoelementarray\"/>"
+msgstr ""
+
 #. Tag: refname
-#: extras_topology.xml:155
+#: extras_topology.xml:159
 #, no-c-format
 msgid "TopoElementArray"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:156
+#: extras_topology.xml:160
 #, no-c-format
 msgid "An array of TopoElement objects"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:160
+#: extras_topology.xml:164
 #, no-c-format
 msgid "An array of 1 or more TopoElement objects, generally used to pass around components of TopoGeometry objects."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:164
+#: extras_topology.xml:168
 #, no-c-format
 msgid ""
       "SELECT '{{1,2},{4,3}}'::topology.topoelementarray As tea;\n"
@@ -347,7 +364,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:165
+#: extras_topology.xml:169
 #, no-c-format
 msgid ""
       "SELECT '{{1,2,4},{3,4,5}}'::topology.topoelementarray As tea;\n"
@@ -355,79 +372,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:170
+#: extras_topology.xml:174
 #, no-c-format
 msgid ", <xref linkend=\"GetTopoGeomElementArray\"/>, <xref linkend=\"TopoElementArray_Agg\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:182
+#: extras_topology.xml:186
 #, no-c-format
 msgid "This section lists the Topology functions for building new Topology schemas, validating topologies, and managing TopoGeometry Columns"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:185
+#: extras_topology.xml:189
 #, no-c-format
 msgid "Topology and TopoGeometry Management"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:188
+#: extras_topology.xml:192
 #, no-c-format
 msgid "AddTopoGeometryColumn"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:189
+#: extras_topology.xml:193
 #, no-c-format
 msgid "Adds a topogeometry column to an existing table, registers this new column as a layer in topology.layer and returns the new layer_id."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:193
+#: extras_topology.xml:197
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>AddTopoGeometryColumn</function></funcdef> <paramdef><type>varchar </type> <parameter>topology_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>column_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>feature_type</parameter></paramdef> </funcprot [...]
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:238
+#: extras_topology.xml:242
 #, no-c-format
 msgid "Each TopoGeometry object belongs to a specific Layer of a specific Topology. Before creating a TopoGeometry object you need to create its TopologyLayer. A Topology Layer is an association of a feature-table with the topology. It also contain type and hierarchy information. We create a layer using the AddTopoGeometryColumn() function:"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:240
+#: extras_topology.xml:244
 #, no-c-format
 msgid "This function will both add the requested column to the table and add a record to the topology.layer table with all the given info."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:241
+#: extras_topology.xml:245
 #, no-c-format
 msgid "If you don't specify [child_layer] (or set it to NULL) this layer would contain Basic TopoGeometries (composed by primitive topology elements). Otherwise this layer will contain hierarchical TopoGeometries (composed by TopoGeometries from the child_layer)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:244
+#: extras_topology.xml:248
 #, no-c-format
 msgid "Once the layer is created (it's id is returned by the AddTopoGeometryColumn function) you're ready to construct TopoGeometry objects in it"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:245
+#: extras_topology.xml:249
 #, no-c-format
 msgid "Valid <varname>feature_type</varname>s are: POINT, LINE, POLYGON, COLLECTION"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:248 extras_topology.xml:289 extras_topology.xml:330 extras_topology.xml:406 extras_topology.xml:479 extras_topology.xml:571 extras_topology.xml:813 extras_topology.xml:860 extras_topology.xml:1228 extras_topology.xml:1376 extras_topology.xml:1425 extras_topology.xml:1471 extras_topology.xml:1658 extras_topology.xml:1742 extras_topology.xml:1836 extras_topology.xml:2227 extras_topology.xml:2384 extras_topology.xml:2431
+#: extras_topology.xml:252 extras_topology.xml:293 extras_topology.xml:334 extras_topology.xml:410 extras_topology.xml:483 extras_topology.xml:575 extras_topology.xml:817 extras_topology.xml:864 extras_topology.xml:1233 extras_topology.xml:1381 extras_topology.xml:1430 extras_topology.xml:1476 extras_topology.xml:1663 extras_topology.xml:1747 extras_topology.xml:1842 extras_topology.xml:2268 extras_topology.xml:2529 extras_topology.xml:2576 extras_topology.xml:2791 extras_topology.xml:2841
 #, no-c-format
 msgid "Availability: 1.?"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:255
+#: extras_topology.xml:259
 #, no-c-format
 msgid ""
       "-- Note for this example we created our new table in the ma_topo schema \n"
@@ -438,7 +455,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:256
+#: extras_topology.xml:260
 #, no-c-format
 msgid ""
       "CREATE SCHEMA ri;\n"
@@ -447,109 +464,109 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:263
+#: extras_topology.xml:267
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopoGeom\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:268
+#: extras_topology.xml:272
 #, no-c-format
 msgid "DropTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:270
+#: extras_topology.xml:274
 #, no-c-format
 msgid "Use with caution: Drops a topology schema and deletes its reference from topology.topology table and references to tables in that schema from the geometry_columns table."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:275
+#: extras_topology.xml:279
 #, no-c-format
 msgid "<funcdef>integer <function>DropTopology</function></funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:285
+#: extras_topology.xml:289
 #, no-c-format
 msgid "Drops a topology schema and deletes its reference from topology.topology table and references to tables in that schema from the geometry_columns table. This function should be USED WITH CAUTION, as it could destroy data you care about. If the schema does not exist, it just removes reference entries the named schema."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:295
+#: extras_topology.xml:299
 #, no-c-format
 msgid "Cascade drops the ma_topo schema and removes all references to it in topology.topology and geometry_columns."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:296
+#: extras_topology.xml:300
 #, no-c-format
 msgid "SELECT topology.DropTopology('ma_topo');"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:307
+#: extras_topology.xml:311
 #, no-c-format
 msgid "DropTopoGeometryColumn"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:309
+#: extras_topology.xml:313
 #, no-c-format
 msgid "Drops the topogeometry column from the table named <varname>table_name</varname> in schema <varname>schema_name</varname> and unregisters the columns from topology.layer table."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:314
+#: extras_topology.xml:318
 #, no-c-format
 msgid "<funcdef>text <function>DropTopoGeometryColumn</function></funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>column_name</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:326
+#: extras_topology.xml:330
 #, no-c-format
 msgid "Drops the topogeometry column from the table named <varname>table_name</varname> in schema <varname>schema_name</varname> and unregisters the columns from topology.layer table. Returns summary of drop status. NOTE: it first sets all values to NULL before dropping to bypass referential integrity checks."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:336
+#: extras_topology.xml:340
 #, no-c-format
 msgid "SELECT topology.DropTopoGeometryColumn('ma_topo', 'parcel_topo', 'topo');"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:348
+#: extras_topology.xml:352
 #, no-c-format
 msgid "TopologySummary"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:350
+#: extras_topology.xml:354
 #, no-c-format
 msgid "Takes a topology name and provides summary totals of types of objects in topology"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:355
+#: extras_topology.xml:359
 #, no-c-format
 msgid "<funcdef>text <function>TopologySummary</function></funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:365
+#: extras_topology.xml:369
 #, no-c-format
 msgid "Takes a topology name and provides summary totals of types of objects in topology."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:368 extras_topology.xml:529 extras_topology.xml:667 extras_topology.xml:713 extras_topology.xml:759 extras_topology.xml:1700 extras_topology.xml:1995 extras_topology.xml:2048 extras_topology.xml:2166 extras_topology.xml:2334 extras_topology.xml:2537
+#: extras_topology.xml:372 extras_topology.xml:533 extras_topology.xml:671 extras_topology.xml:717 extras_topology.xml:763 extras_topology.xml:1705 extras_topology.xml:2001 extras_topology.xml:2054 extras_topology.xml:2172 extras_topology.xml:2412 extras_topology.xml:2683
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:374
+#: extras_topology.xml:378
 #, no-c-format
 msgid ""
       "SELECT topology.topologysummary('city_data');\n"
@@ -572,37 +589,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:385
+#: extras_topology.xml:389
 #, no-c-format
 msgid "ValidateTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:387
+#: extras_topology.xml:391
 #, no-c-format
 msgid "Returns a set of validatetopology_returntype objects detailing issues with topology"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:392
+#: extras_topology.xml:396
 #, no-c-format
 msgid "<funcdef>setof validatetopology_returntype <function>ValidateTopology</function></funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:402
+#: extras_topology.xml:406
 #, no-c-format
 msgid "Returns a set of <xref linkend=\"validatetopology_returntype\"/> objects detailing issues with topology. Refer to <xref linkend=\"validatetopology_returntype\"/> for listing of possible errors."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:408
+#: extras_topology.xml:412
 #, no-c-format
 msgid "Enhanced: 2.0.0 more efficient edge crossing detection and fixes for false positives that were existent in prior versions."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:414
+#: extras_topology.xml:418
 #, no-c-format
 msgid ""
       "SELECT * FROM  topology.ValidateTopology('ma_topo');\n"
@@ -612,73 +629,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:420
+#: extras_topology.xml:424
 #, no-c-format
 msgid ", <xref linkend=\"Topology_Load_Tiger\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:428
+#: extras_topology.xml:432
 #, no-c-format
 msgid "This section covers the topology functions for creating new topologies."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:431
+#: extras_topology.xml:435
 #, no-c-format
 msgid "Topology Constructors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:435
+#: extras_topology.xml:439
 #, no-c-format
 msgid "CreateTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:436
+#: extras_topology.xml:440
 #, no-c-format
 msgid "Creates a new topology schema and registers this new schema in the topology.topology table."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:440
+#: extras_topology.xml:444
 #, no-c-format
 msgid "<funcprototype> <funcdef>integer <function>CreateTopology</function></funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer <function>CreateTopology</function></funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer <function>Creat [...]
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:472
+#: extras_topology.xml:476
 #, no-c-format
 msgid "Creates a new schema with name <varname>topology_name</varname> consisting of tables (<varname>edge_data</varname>,<varname>face</varname>,<varname>node</varname>, <varname>relation</varname> and registers this new topology in the topology.topology table. It returns the id of the topology in the topology table. The srid is the spatial reference identified as defined in spatial_ref_sys table for that topology. Topologies must be uniquely named. The tolerance is measured in the unit [...]
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:476
+#: extras_topology.xml:480
 #, no-c-format
 msgid "This is similar to the SQL/MM <xref linkend=\"ST_InitTopoGeo\"/> but a bit more functional. <varname>hasz</varname> defaults to false if not specified."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:485
+#: extras_topology.xml:489
 #, no-c-format
 msgid "This example creates a new schema called ma_topo that will store edges, faces, and relations in Massachusetts State Plane meters. The tolerance represents 1/2 meter since the spatial reference system is a meter based spatial reference system"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:487
+#: extras_topology.xml:491
 #, no-c-format
 msgid "SELECT topology.CreateTopology('ma_topo',26986, 0.5);"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:489
+#: extras_topology.xml:493
 #, no-c-format
 msgid "Create Rhode Island topology in State Plane ft"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:490
+#: extras_topology.xml:494
 #, no-c-format
 msgid ""
       "SELECT topology.CreateTopology('ri_topo',3438) As topoid;\n"
@@ -688,91 +705,91 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:497
+#: extras_topology.xml:501
 #, no-c-format
 msgid ", <xref linkend=\"ST_InitTopoGeo\"/>, <xref linkend=\"Topology_Load_Tiger\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:503
+#: extras_topology.xml:507
 #, no-c-format
 msgid "CopyTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:504
+#: extras_topology.xml:508
 #, no-c-format
 msgid "Makes a copy of a topology structure (nodes, edges, faces, layers and TopoGeometries)."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:509
+#: extras_topology.xml:513
 #, no-c-format
 msgid "<funcdef>integer <function>CopyTopology</function></funcdef> <paramdef><type>varchar </type> <parameter>existing_topology_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>new_name</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:520
+#: extras_topology.xml:524
 #, no-c-format
 msgid "Creates a new topology with name <varname>new_topology_name</varname> and SRID and precision taken from <varname>existing_topology_name</varname>, copies all nodes, edges and faces in there, copies layers and their TopoGeometries too."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:524
+#: extras_topology.xml:528
 #, no-c-format
 msgid "The new rows in topology.layer will contain synthesized values for schema_name, table_name and feature_column. This is because the TopoGeometry will only exist as a definition but won't be available in any user-level table yet."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:535
+#: extras_topology.xml:539
 #, no-c-format
 msgid "This example makes a backup of a topology called ma_topo"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:538
+#: extras_topology.xml:542
 #, no-c-format
 msgid "SELECT topology.CopyTopology('ma_topo', 'ma_topo_bakup');"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:546 extras_topology.xml:2060
+#: extras_topology.xml:550 extras_topology.xml:2066
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopology\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:552
+#: extras_topology.xml:556
 #, no-c-format
 msgid "ST_InitTopoGeo"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:553
+#: extras_topology.xml:557
 #, no-c-format
 msgid "Creates a new topology schema and registers this new schema in the topology.topology table and details summary of process."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:558
+#: extras_topology.xml:562
 #, no-c-format
 msgid "<funcdef>text <function>ST_InitTopoGeo</function></funcdef> <paramdef><type>varchar </type> <parameter>topology_schema_name</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:568
+#: extras_topology.xml:572
 #, no-c-format
 msgid "This is an SQL-MM equivalent of CreateTopology but lacks the spatial reference and tolerance options of CreateTopology and outputs a text description of creation instead of topology id."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:572
+#: extras_topology.xml:576
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.17"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:578
+#: extras_topology.xml:582
 #, no-c-format
 msgid ""
       "SELECT topology.ST_InitTopoGeo('topo_schema_to_create') AS topocreation;\n"
@@ -782,49 +799,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:592
+#: extras_topology.xml:596
 #, no-c-format
 msgid "ST_CreateTopoGeo"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:594
+#: extras_topology.xml:598
 #, no-c-format
 msgid "<refpurpose>Adds a collection of geometries to a given empty topology and returns a message detailing success.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:601
+#: extras_topology.xml:605
 #, no-c-format
 msgid "<funcdef>text <function>ST_CreateTopoGeo</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>geometry </type> <parameter>acollection</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:612
+#: extras_topology.xml:616
 #, no-c-format
 msgid "<para>Adds a collection of geometries to a given empty topology and returns a message detailing success.</para>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:616
+#: extras_topology.xml:620
 #, no-c-format
 msgid "Useful for populating an empty topology."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:620 extras_topology.xml:916 extras_topology.xml:973 extras_topology.xml:1045 extras_topology.xml:1113 extras_topology.xml:1283 extras_topology.xml:1333 extras_topology.xml:1790 extras_topology.xml:1892 extras_topology.xml:1946 extras_topology.xml:2297
+#: extras_topology.xml:624 extras_topology.xml:920 extras_topology.xml:977 extras_topology.xml:1049 extras_topology.xml:1117 extras_topology.xml:1288 extras_topology.xml:1338 extras_topology.xml:1796 extras_topology.xml:1898 extras_topology.xml:1952 extras_topology.xml:2367
 #, no-c-format
 msgid "Availability: 2.0"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:621
+#: extras_topology.xml:625
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details -- X.3.18"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:627
+#: extras_topology.xml:631
 #, no-c-format
 msgid ""
       "-- Populate topology --\n"
@@ -853,433 +870,433 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:633
+#: extras_topology.xml:637
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:639
+#: extras_topology.xml:643
 #, no-c-format
 msgid "TopoGeo_AddPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:641
+#: extras_topology.xml:645
 #, no-c-format
 msgid "Adds a point to an existing topology using a tolerance and possibly splitting an existing edge."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:648
+#: extras_topology.xml:652
 #, no-c-format
 msgid "<funcdef>integer <function>TopoGeo_AddPoint</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> <paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:660
+#: extras_topology.xml:664
 #, no-c-format
 msgid "Adds a point to an existing topology and return its identifier. The given point will snap to existing nodes or edges within given tolerance. An existing edge may be split by the snapped point."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:674
+#: extras_topology.xml:678
 #, no-c-format
 msgid ", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddNode\"/>, <xref linkend=\"CreateTopology\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:685
+#: extras_topology.xml:689
 #, no-c-format
 msgid "TopoGeo_AddLineString"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:687
+#: extras_topology.xml:691
 #, no-c-format
-msgid "Adds a linestring to an existing topology using a tolerance and possibly splitting existing edges/faces."
+msgid "Adds a linestring to an existing topology using a tolerance and possibly splitting existing edges/faces. Returns edge identifiers"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:694
+#: extras_topology.xml:698
 #, no-c-format
-msgid "<funcdef>integer <function>TopoGeo_AddLineString</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> <paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</parameter></paramdef>"
+msgid "<funcdef>SETOF integer <function>TopoGeo_AddLineString</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> <paramdef choice=\"opt\"><type>float8 </type> <parameter>tolerance</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:706
+#: extras_topology.xml:710
 #, no-c-format
 msgid "Adds a linestring to an existing topology and return a set of edge identifiers forming it up. The given line will snap to existing nodes or edges within given tolerance. Existing edges and faces may be split by the line."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:720
+#: extras_topology.xml:724
 #, no-c-format
 msgid ", <xref linkend=\"TopoGeo_AddPolygon\"/>, <xref linkend=\"AddEdge\"/>, <xref linkend=\"CreateTopology\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:731
+#: extras_topology.xml:735
 #, no-c-format
 msgid "TopoGeo_AddPolygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:733
+#: extras_topology.xml:737
 #, no-c-format
 msgid "Adds a polygon to an existing topology using a tolerance and possibly splitting existing edges/faces."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:740
+#: extras_topology.xml:744
 #, no-c-format
-msgid "<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>geometry </type> <parameter>aline</parameter></paramdef> <paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</parameter></paramdef>"
+msgid "<funcdef>integer <function>TopoGeo_AddPolygon</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoly</parameter></paramdef> <paramdef choice=\"opt\"><type>float8 </type> <parameter>atolerance</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:752
+#: extras_topology.xml:756
 #, no-c-format
 msgid "Adds a polygon to an existing topology and return a set of face identifiers forming it up. The boundary of the given polygon will snap to existing nodes or edges within given tolerance. Existing edges and faces may be split by the boundary of the new polygon."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:766
+#: extras_topology.xml:770
 #, no-c-format
 msgid ", <xref linkend=\"TopoGeo_AddLineString\"/>, <xref linkend=\"AddFace\"/>, <xref linkend=\"CreateTopology\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:781
+#: extras_topology.xml:785
 #, no-c-format
 msgid "This section covers topology functions for adding, moving, deleting, and splitting edges, faces, and nodes. All of these functions are defined by ISO SQL/MM."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:784
+#: extras_topology.xml:788
 #, no-c-format
 msgid "Topology Editors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:788
+#: extras_topology.xml:792
 #, no-c-format
 msgid "ST_AddIsoNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:790
+#: extras_topology.xml:794
 #, no-c-format
 msgid "Adds an isolated node to a face in a topology and returns the nodeid of the new node. If face is null, the node is still created."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:795
+#: extras_topology.xml:799
 #, no-c-format
 msgid "<funcdef>integer <function>ST_AddIsoNode</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>aface</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:807
+#: extras_topology.xml:811
 #, no-c-format
 msgid "Adds an isolated node with point location <varname>apoint</varname> to an existing face with faceid <varname>aface</varname> to a topology <varname>atopology</varname> and returns the nodeid of the new node."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:808
+#: extras_topology.xml:812
 #, no-c-format
 msgid "If the spatial reference system (srid) of the point geometry is not the same as the topology, the <varname>apoint</varname> is not a point geometry, the point is null, or the point intersects an existing edge (even at the boundaries) then an exception is thrown. If the point already exists as a node, an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:810
+#: extras_topology.xml:814
 #, no-c-format
 msgid "If <varname>aface</varname> is not null and the <varname>apoint</varname> is not within the face, then an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:814
+#: extras_topology.xml:818
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X+1.3.1"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:827
+#: extras_topology.xml:831
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"DropTopology\"/>, <xref linkend=\"ST_Intersects\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:833
+#: extras_topology.xml:837
 #, no-c-format
 msgid "ST_AddIsoEdge"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:835
+#: extras_topology.xml:839
 #, no-c-format
 msgid "<refpurpose>Adds an isolated edge defined by geometry <varname>alinestring</varname> to a topology connecting two existing isolated nodes <varname>anode</varname> and <varname>anothernode</varname> and returns the edge id of the new edge.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:840
+#: extras_topology.xml:844
 #, no-c-format
 msgid "<funcdef>integer <function>ST_AddIsoEdge</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anode</parameter></paramdef> <paramdef><type>integer </type> <parameter>anothernode</parameter></paramdef> <paramdef><type>geometry </type> <parameter>alinestring</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:853
+#: extras_topology.xml:857
 #, no-c-format
 msgid "<para>Adds an isolated edge defined by geometry <varname>alinestring</varname> to a topology connecting two existing isolated nodes <varname>anode</varname> and <varname>anothernode</varname> and returns the edge id of the new edge.</para>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:854
+#: extras_topology.xml:858
 #, no-c-format
 msgid "If the spatial reference system (srid) of the <varname>alinestring</varname> geometry is not the same as the topology, any of the input arguments are null, or the nodes are contained in more than one face, or the nodes are start or end nodes of an existing edge, then an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:856
+#: extras_topology.xml:860
 #, no-c-format
 msgid "If the <varname>alinestring</varname> is not within the face of the face the <varname>anode</varname> and <varname>anothernode</varname> belong to, then an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:857
+#: extras_topology.xml:861
 #, no-c-format
 msgid "If the <varname>anode</varname> and <varname>anothernode</varname> are not the start and end points of the <varname>alinestring</varname> then an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:861
+#: extras_topology.xml:865
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.4"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:874
+#: extras_topology.xml:878
 #, no-c-format
 msgid ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:880
+#: extras_topology.xml:884
 #, no-c-format
 msgid "ST_AddEdgeNewFaces"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:882
+#: extras_topology.xml:886
 #, no-c-format
 msgid "Add a new edge and, if in doing so it splits a face, delete the original face and replace it with two new faces."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:887
+#: extras_topology.xml:891
 #, no-c-format
 msgid "<funcdef>integer <function>ST_AddEdgeNewFaces</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anode</parameter></paramdef> <paramdef><type>integer </type> <parameter>anothernode</parameter></paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:900
+#: extras_topology.xml:904
 #, no-c-format
 msgid "Add a new edge and, if in doing so it splits a face, delete the original face and replace it with two new faces. Returns the id of the newly added edge."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:906 extras_topology.xml:964 extras_topology.xml:1027 extras_topology.xml:1095
+#: extras_topology.xml:910 extras_topology.xml:968 extras_topology.xml:1031 extras_topology.xml:1099
 #, no-c-format
 msgid "Updates all existing joined edges and relationships accordingly."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:910 extras_topology.xml:968
+#: extras_topology.xml:914 extras_topology.xml:972
 #, no-c-format
 msgid "If any arguments are null, the given nodes are unknown (must already exist in the <varname>node</varname> table of the topology schema) , the <varname>acurve</varname> is not a <varname>LINESTRING</varname>, the <varname>anode</varname> and <varname>anothernode</varname> are not the start and endpoints of <varname>acurve</varname> then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:913 extras_topology.xml:971 extras_topology.xml:1166
+#: extras_topology.xml:917 extras_topology.xml:975 extras_topology.xml:1170
 #, no-c-format
 msgid "If the spatial reference system (srid) of the <varname>acurve</varname> geometry is not the same as the topology an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:917
+#: extras_topology.xml:921
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.12"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:937
+#: extras_topology.xml:941
 #, no-c-format
 msgid "ST_AddEdgeModFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:939
+#: extras_topology.xml:943
 #, no-c-format
 msgid "Add a new edge and, if in doing so it splits a face, modify the original face and add a new face."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:944
+#: extras_topology.xml:948
 #, no-c-format
 msgid "<funcdef>integer <function>ST_AddEdgeModFace</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anode</parameter></paramdef> <paramdef><type>integer </type> <parameter>anothernode</parameter></paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:957
+#: extras_topology.xml:961
 #, no-c-format
 msgid "Add a new edge and, if in doing so it splits a face, modify the original face and add a new face. Unless the face being split is the Universal Face, the new face will be on the right side of the newly added edge. Returns the id of the newly added edge."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:974
+#: extras_topology.xml:978
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.13"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:994
+#: extras_topology.xml:998
 #, no-c-format
 msgid "ST_RemEdgeNewFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:996
+#: extras_topology.xml:1000
 #, no-c-format
 msgid "<refpurpose>Removes an edge and, if the removed edge separated two faces, delete the original faces and replace them with a new face.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1004
+#: extras_topology.xml:1008
 #, no-c-format
 msgid "<funcdef>integer <function>ST_RemEdgeNewFace</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1015
+#: extras_topology.xml:1019
 #, no-c-format
 msgid "<para>Removes an edge and, if the removed edge separated two faces, delete the original faces and replace them with a new face.</para>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1020
+#: extras_topology.xml:1024
 #, no-c-format
 msgid "Returns the id of a newly created face or NULL, if no new face is created. No new face is created when the removed edge is dangling or isolated or confined with the universe face (possibly making the universe flood into the face on the other side)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1031 extras_topology.xml:1099
+#: extras_topology.xml:1035 extras_topology.xml:1103
 #, no-c-format
 msgid "Refuses to remove an edge partecipating in the definition of an existing TopoGeometry. Refuses to heal two faces if any TopoGeometry is defined by only one of them (and not the other)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1038 extras_topology.xml:1106
+#: extras_topology.xml:1042 extras_topology.xml:1110
 #, no-c-format
 msgid "If any arguments are null, the given edge is unknown (must already exist in the <varname>edge</varname> table of the topology schema), the topology name is invalid then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1046
+#: extras_topology.xml:1050
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.14"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1066
+#: extras_topology.xml:1070
 #, no-c-format
 msgid "ST_RemEdgeModFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1068
+#: extras_topology.xml:1072
 #, no-c-format
 msgid "Removes an edge and, if the removed edge separated two faces, delete one of the them and modify the other to take the space of both."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1076
+#: extras_topology.xml:1080
 #, no-c-format
 msgid "<funcdef>integer <function>ST_RemEdgeModFace</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1087
+#: extras_topology.xml:1091
 #, no-c-format
 msgid "Removes an edge and, if the removed edge separated two faces, delete one of the them and modify the other to take the space of both. Preferentially keeps the face on the right, to be symmetric with ST_AddEdgeModFace also keeping it. Returns the id of the face remaining in place of the removed edge."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1114
+#: extras_topology.xml:1118
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.15"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1134
+#: extras_topology.xml:1138
 #, no-c-format
 msgid "ST_ChangeEdgeGeom"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1136
+#: extras_topology.xml:1140
 #, no-c-format
 msgid "<refpurpose>Changes the shape of an edge without affecting the topology structure.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1143
+#: extras_topology.xml:1147
 #, no-c-format
 msgid "<funcdef>integer <function>ST_ChangeEdgeGeom</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> <paramdef><type>geometry </type> <parameter>acurve</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1155
+#: extras_topology.xml:1159
 #, no-c-format
 msgid "<para>Changes the shape of an edge without affecting the topology structure.</para>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1158
+#: extras_topology.xml:1162
 #, no-c-format
 msgid "If any arguments are null, the given edge does not exist in the <varname>node</varname> table of the topology schema, the <varname>acurve</varname> is not a <varname>LINESTRING</varname>, the <varname>anode</varname> and <varname>anothernode</varname> are not the start and endpoints of <varname>acurve</varname> or the modification would change the underlying topology then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1167
+#: extras_topology.xml:1171
 #, no-c-format
 msgid "If the new <varname>acurve</varname> is not simple, then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1169
+#: extras_topology.xml:1173
 #, no-c-format
 msgid "If moving the edge from old to new position would hit an obstacle then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1175
+#: extras_topology.xml:1179
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1178
+#: extras_topology.xml:1182
 #, no-c-format
 msgid "Enhanced: 2.0.0 adds topological consistency enforcement"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1182
+#: extras_topology.xml:1186
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details X.3.6"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1188
+#: extras_topology.xml:1192
 #, no-c-format
 msgid ""
       "SELECT topology.ST_ChangeEdgeGeom('ma_topo', 1,  \n"
@@ -1289,43 +1306,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1202
+#: extras_topology.xml:1206
 #, no-c-format
 msgid "ST_ModEdgeSplit"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1204
+#: extras_topology.xml:1208
 #, no-c-format
 msgid "Split an edge by creating a new node along an existing edge, modifying the original edge and adding a new edge."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1209
+#: extras_topology.xml:1213
 #, no-c-format
-msgid "<funcdef>text <function>ST_ModEdgeSplit</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
+msgid "<funcdef>integer <function>ST_ModEdgeSplit</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1221
+#: extras_topology.xml:1225
 #, no-c-format
-msgid "Split an edge by creating a new node along an existing edge, modifying the original edge and adding a new edge. Updates all existing joined edges and relationships accordingly."
+msgid "Split an edge by creating a new node along an existing edge, modifying the original edge and adding a new edge. Updates all existing joined edges and relationships accordingly. Returns the identifier of the newly added node."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1229
+#: extras_topology.xml:1234
 #, no-c-format
 msgid "Changed: 2.0 - In prior versions, this was misnamed ST_ModEdgesSplit"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1230 extras_topology.xml:1284 extras_topology.xml:1334
+#: extras_topology.xml:1235 extras_topology.xml:1289 extras_topology.xml:1339
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X.3.9"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1236
+#: extras_topology.xml:1241
 #, no-c-format
 msgid ""
       "-- Add an edge --\n"
@@ -1336,110 +1353,110 @@ msgid ""
       "\n"
       "\n"
       "-- Split the edge  --\n"
-      "SELECT topology.ST_ModEdgeSplit('ma_topo',  3, ST_SetSRID(ST_Point(227594,893910),26986)  ) As result;\n"
-      "         result\n"
+      "SELECT topology.ST_ModEdgeSplit('ma_topo',  3, ST_SetSRID(ST_Point(227594,893910),26986)  ) As node_id;\n"
+      "        node_id\n"
       "-------------------------\n"
       "7"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1242
+#: extras_topology.xml:1247
 #, no-c-format
 msgid ", <xref linkend=\"ST_ModEdgeHeal\"/>, <xref linkend=\"ST_NewEdgeHeal\"/>, <xref linkend=\"AddEdge\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1253
+#: extras_topology.xml:1258
 #, no-c-format
 msgid "ST_ModEdgeHeal"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1255
+#: extras_topology.xml:1260
 #, no-c-format
 msgid "Heal two edges by deleting the node connecting them, modifying the first edge and deleting the second edge. Returns the id of the deleted node."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1263
+#: extras_topology.xml:1268
 #, no-c-format
 msgid "<funcdef>int <function>ST_ModEdgeHeal</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> <paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1275
+#: extras_topology.xml:1280
 #, no-c-format
 msgid "Heal two edges by deleting the node connecting them, modifying the first edge and deleting the second edge. Returns the id of the deleted node. Updates all existing joined edges and relationships accordingly."
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1300
+#: extras_topology.xml:1305
 #, no-c-format
 msgid "ST_NewEdgeHeal"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1302
+#: extras_topology.xml:1307
 #, no-c-format
 msgid "Heal two edges by deleting the node connecting them, deleting both edges, and replacing them with an edge whose direction is the same as the first edge provided."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1311
+#: extras_topology.xml:1316
 #, no-c-format
 msgid "<funcdef>int <function>ST_NewEdgeHeal</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> <paramdef><type>integer </type> <parameter>anotheredge</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1323
+#: extras_topology.xml:1328
 #, no-c-format
 msgid "Heal two edges by deleting the node connecting them, deleting both edges, and replacing them with an edge whose direction is the same as the first edge provided. Returns the id of the new edge replacing the healed ones. Updates all existing joined edges and relationships accordingly."
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1351
+#: extras_topology.xml:1356
 #, no-c-format
 msgid "ST_MoveIsoNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1353
+#: extras_topology.xml:1358
 #, no-c-format
 msgid "Moves an isolated node in a topology from one point to another. If new <varname>apoint</varname> geometry exists as a node an error is thrown. REturns description of move."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1358
+#: extras_topology.xml:1363
 #, no-c-format
 msgid "<funcdef>text <function>ST_MoveIsoNode</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1370
+#: extras_topology.xml:1375
 #, no-c-format
 msgid "Moves an isolated node in a topology from one point to another. If new <varname>apoint</varname> geometry exists as a node an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1371
+#: extras_topology.xml:1376
 #, no-c-format
 msgid "If any arguments are null, the <varname>apoint</varname> is not a point, the existing node is not isolated (is a start or end point of an existing edge), new node location intersects an existing edge (even at the end points) then an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1372
+#: extras_topology.xml:1377
 #, no-c-format
 msgid "If the spatial reference system (srid) of the point geometry is not the same as the topology an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1377
+#: extras_topology.xml:1382
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.2"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1383
+#: extras_topology.xml:1388
 #, no-c-format
 msgid ""
       "-- Add an isolated node with no face  --\n"
@@ -1455,43 +1472,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1394
+#: extras_topology.xml:1399
 #, no-c-format
 msgid "ST_NewEdgesSplit"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1396
+#: extras_topology.xml:1401
 #, no-c-format
 msgid "Split an edge by creating a new node along an existing edge, deleting the original edge and replacing it with two new edges. Returns the id of the new node created that joins the new edges."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1401
+#: extras_topology.xml:1406
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NewEdgesSplit</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anedge</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1413
+#: extras_topology.xml:1418
 #, no-c-format
 msgid "Split an edge with edge id <varname>anedge</varname> by creating a new node with point location <varname>apoint</varname> along current edge, deleting the original edge and replacing it with two new edges. Returns the id of the new node created that joins the new edges. Updates all existing joined edges and relationships accordingly."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1421
+#: extras_topology.xml:1426
 #, no-c-format
 msgid "If the spatial reference system (srid) of the point geometry is not the same as the topology, the <varname>apoint</varname> is not a point geometry, the point is null, the point already exists as a node, the edge does not correspond to an existing edge or the point is not within the edge then an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1426
+#: extras_topology.xml:1431
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Net Routines: X.3.8"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1432
+#: extras_topology.xml:1437
 #, no-c-format
 msgid ""
       "-- Add an edge  --\n"
@@ -1508,37 +1525,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1449
+#: extras_topology.xml:1454
 #, no-c-format
 msgid "ST_RemoveIsoNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1451
+#: extras_topology.xml:1456
 #, no-c-format
 msgid "<refpurpose>Removes an isolated node and returns description of action. If the node is not isolated (is start or end of an edge), then an exception is thrown.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1456
+#: extras_topology.xml:1461
 #, no-c-format
 msgid "<funcdef>text <function>ST_RemoveIsoNode</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1467
+#: extras_topology.xml:1472
 #, no-c-format
 msgid "<para>Removes an isolated node and returns description of action. If the node is not isolated (is start or end of an edge), then an exception is thrown.</para>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1472
+#: extras_topology.xml:1477
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM: Topo-Geo and Topo-Net 3: Routine Details: X+1.3.3"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1478
+#: extras_topology.xml:1483
 #, no-c-format
 msgid ""
       "-- Add an isolated node with no face  --\n"
@@ -1549,79 +1566,79 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1490
+#: extras_topology.xml:1495
 #, no-c-format
 msgid "Topology Accessors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1493
+#: extras_topology.xml:1498
 #, no-c-format
 msgid "GetEdgeByPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1495
+#: extras_topology.xml:1500
 #, no-c-format
 msgid "Find the edge-id of an edge that intersects a given point"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1500
+#: extras_topology.xml:1505
 #, no-c-format
 msgid "<funcdef>integer <function>GetEdgeByPoint</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> <paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1511
+#: extras_topology.xml:1516
 #, no-c-format
 msgid "Retrieve the id of an edge that intersects a Point"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1513
+#: extras_topology.xml:1518
 #, no-c-format
 msgid "The function returns an integer (id-edge) given a topology, a POINT and a tolerance. If tolerance = 0 then the point has to intersect the edge."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1514 extras_topology.xml:1562
+#: extras_topology.xml:1519 extras_topology.xml:1567
 #, no-c-format
 msgid "If the point is the location of a node, then an exception is thrown. To avoid this run the GetNodeByPoint function."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1515
+#: extras_topology.xml:1520
 #, no-c-format
 msgid "If the point doesn't intersect an edge, returns 0 (zero)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1516
+#: extras_topology.xml:1521
 #, no-c-format
 msgid "If use tolerance > 0 and there is more than one edge near the point then an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1521
+#: extras_topology.xml:1526
 #, no-c-format
 msgid "If tolerance = 0, the function use ST_Intersects otherwise uses ST_DWithin."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1524 extras_topology.xml:1571 extras_topology.xml:1618
+#: extras_topology.xml:1529 extras_topology.xml:1576 extras_topology.xml:1623
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1530 extras_topology.xml:1624
+#: extras_topology.xml:1535 extras_topology.xml:1629
 #, no-c-format
 msgid "These examples use edges we created in <xref linkend=\"AddEdge\"/>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1531
+#: extras_topology.xml:1536
 #, no-c-format
 msgid ""
       "SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology.GetEdgeByPoint('ma_topo',geom,0) As withnotol\n"
@@ -1632,7 +1649,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1532
+#: extras_topology.xml:1537
 #, no-c-format
 msgid ""
       "SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As nearnode\n"
@@ -1643,67 +1660,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1539
+#: extras_topology.xml:1544
 #, no-c-format
 msgid ", <xref linkend=\"GetNodeByPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1545
+#: extras_topology.xml:1550
 #, no-c-format
 msgid "GetFaceByPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1546
+#: extras_topology.xml:1551
 #, no-c-format
 msgid "Find the face-id of a face that intersects a given point"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1550
+#: extras_topology.xml:1555
 #, no-c-format
 msgid "<funcdef>integer <function>GetFaceByPoint</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> <paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1560
+#: extras_topology.xml:1565
 #, no-c-format
 msgid "Retrieve the id of a face that intersects a Point."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1561
+#: extras_topology.xml:1566
 #, no-c-format
 msgid "The function returns an integer (id-face) given a topology, a POINT and a tolerance. If tolerance = 0 then the point has to intersect the face."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1563
+#: extras_topology.xml:1568
 #, no-c-format
 msgid "If the point doesn't intersect a face, returns 0 (zero)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1564
+#: extras_topology.xml:1569
 #, no-c-format
 msgid "If use tolerance > 0 and there is more than one face near the point then an exception is thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1568
+#: extras_topology.xml:1573
 #, no-c-format
 msgid "If tolerance = 0, the function uses ST_Intersects otherwise uses ST_DWithin."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1575
+#: extras_topology.xml:1580
 #, no-c-format
 msgid "These examples use edges faces created in <xref linkend=\"AddFace\"/>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1576
+#: extras_topology.xml:1581
 #, no-c-format
 msgid ""
       "SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology.GetFaceByPoint('ma_topo',geom,0) As withnotol\n"
@@ -1715,7 +1732,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1577
+#: extras_topology.xml:1582
 #, no-c-format
 msgid ""
       "SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode\n"
@@ -1726,61 +1743,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1582
+#: extras_topology.xml:1587
 #, no-c-format
 msgid ", <xref linkend=\"GetNodeByPoint\"/>, <xref linkend=\"GetEdgeByPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1588
+#: extras_topology.xml:1593
 #, no-c-format
 msgid "GetNodeByPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1590
+#: extras_topology.xml:1595
 #, no-c-format
 msgid "Find the id of a node at a point location"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1595
+#: extras_topology.xml:1600
 #, no-c-format
 msgid "<funcdef>integer <function>GetNodeByPoint</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>geometry </type> <parameter>point</parameter></paramdef> <paramdef><type>float8 </type> <parameter>tol</parameter></paramdef>"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1606
+#: extras_topology.xml:1611
 #, no-c-format
 msgid "Retrieve the id of a node at a point location"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1608
+#: extras_topology.xml:1613
 #, no-c-format
 msgid "The function return an integer (id-node) given a topology, a POINT and a tolerance. If tolerance = 0 mean exactly intersection otherwise retrieve the node from an interval."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1609
+#: extras_topology.xml:1614
 #, no-c-format
 msgid "If there isn't a node at the point, it return 0 (zero)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1610
+#: extras_topology.xml:1615
 #, no-c-format
 msgid "If use tolerance > 0 and near the point there are more than one node it throw an exception."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1615
+#: extras_topology.xml:1620
 #, no-c-format
 msgid "If tolerance = 0, the function use ST_Intersects otherwise will use ST_DWithin."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1625
+#: extras_topology.xml:1630
 #, no-c-format
 msgid ""
       "SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode \n"
@@ -1791,7 +1808,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1626
+#: extras_topology.xml:1631
 #, no-c-format
 msgid ""
       "SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance\n"
@@ -1802,37 +1819,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1633
+#: extras_topology.xml:1638
 #, no-c-format
 msgid ", <xref linkend=\"GetEdgeByPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1639
+#: extras_topology.xml:1644
 #, no-c-format
 msgid "GetTopologyID"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1641
+#: extras_topology.xml:1646
 #, no-c-format
 msgid "<refpurpose>Returns the id of a topology in the topology.topology table given the name of the topology.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1646 extras_topology.xml:1688
+#: extras_topology.xml:1651 extras_topology.xml:1693
 #, no-c-format
 msgid "<funcdef>integer <function>GetTopologyID</function></funcdef> <paramdef><type>varchar</type> <parameter>toponame</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1656
+#: extras_topology.xml:1661
 #, no-c-format
 msgid "<para>Returns the id of a topology in the topology.topology table given the name of the topology.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1664
+#: extras_topology.xml:1669
 #, no-c-format
 msgid ""
       "SELECT topology.GetTopologyID('ma_topo') As topo_id;\n"
@@ -1842,31 +1859,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1670
+#: extras_topology.xml:1675
 #, no-c-format
 msgid ", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, <xref linkend=\"GetTopologySRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1681
+#: extras_topology.xml:1686
 #, no-c-format
 msgid "GetTopologySRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1683
+#: extras_topology.xml:1688
 #, no-c-format
 msgid "Returns the SRID of a topology in the topology.topology table given the name of the topology."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1698
+#: extras_topology.xml:1703
 #, no-c-format
 msgid "Returns the spatial reference id of a topology in the topology.topology table given the name of the topology."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1706
+#: extras_topology.xml:1711
 #, no-c-format
 msgid ""
       "SELECT topology.GetTopologySRID('ma_topo') As SRID;\n"
@@ -1876,37 +1893,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1712
+#: extras_topology.xml:1717
 #, no-c-format
 msgid ", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyName\"/>, <xref linkend=\"GetTopologyID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1723
+#: extras_topology.xml:1728
 #, no-c-format
 msgid "GetTopologyName"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1725
+#: extras_topology.xml:1730
 #, no-c-format
 msgid "Returns the name of a topology (schema) given the id of the topology."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1730
+#: extras_topology.xml:1735
 #, no-c-format
 msgid "<funcdef>varchar <function>GetTopologyName</function></funcdef> <paramdef><type>integer</type> <parameter>topology_id</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1740
+#: extras_topology.xml:1745
 #, no-c-format
 msgid "Returns the topology name (schema) of a topology from the topology.topology table given the topology id of the topology."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1748
+#: extras_topology.xml:1753
 #, no-c-format
 msgid ""
       "SELECT topology.GetTopologyName(1) As topo_name;\n"
@@ -1916,49 +1933,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1754
+#: extras_topology.xml:1759
 #, no-c-format
 msgid ", <xref linkend=\"DropTopology\"/>, <xref linkend=\"GetTopologyID\"/>, <xref linkend=\"GetTopologySRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1765
+#: extras_topology.xml:1770
 #, no-c-format
 msgid "ST_GetFaceEdges"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1767
+#: extras_topology.xml:1772
 #, no-c-format
-msgid "Returns a set of ordered edges that bound <varname>aface</varname> includes the sequence order."
+msgid "Returns a set of ordered edges that bound <varname>aface</varname>."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1772
+#: extras_topology.xml:1777
 #, no-c-format
 msgid "<funcdef>getfaceedges_returntype <function>ST_GetFaceEdges</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1783
+#: extras_topology.xml:1788
 #, no-c-format
-msgid "Returns a set of ordered edges that bound <varname>aface</varname> includes the sequence order. Each output consists of a sequence and edgeid. Sequence numbers start with value 1."
+msgid "Returns a set of ordered edges that bound <varname>aface</varname>. Each output consists of a sequence and edgeid. Sequence numbers start with value 1."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1785
+#: extras_topology.xml:1790
 #, no-c-format
-msgid "Enumeration of each ring edges start from the edge with smallest identifier."
+msgid "Enumeration of each ring edges start from the edge with smallest identifier. Order of edges follows a left-hand-rule (bound face is on the left of each directed edge)."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1791
+#: extras_topology.xml:1797
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.5"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1797
+#: extras_topology.xml:1803
 #, no-c-format
 msgid ""
       "-- Returns the edges bounding face 1\n"
@@ -1977,7 +1994,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1798
+#: extras_topology.xml:1804
 #, no-c-format
 msgid ""
       "-- Returns the sequenc, edge id\n"
@@ -1989,43 +2006,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1804
+#: extras_topology.xml:1810
 #, no-c-format
 msgid ", <xref linkend=\"AddFace\"/>, <xref linkend=\"ST_GetFaceGeometry\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1814
+#: extras_topology.xml:1820
 #, no-c-format
 msgid "ST_GetFaceGeometry"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1816
+#: extras_topology.xml:1822
 #, no-c-format
 msgid "Returns the polygon in the given topology with the specified face id."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1821
+#: extras_topology.xml:1827
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_GetFaceGeometry</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>aface</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1832
+#: extras_topology.xml:1838
 #, no-c-format
 msgid "Returns the polygon in the given topology with the specified face id. Builds the polygon from the edges making up the face."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1837
+#: extras_topology.xml:1843
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3 Topo-Geo and Topo-Net 3: Routine Details: X.3.16"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:1843
+#: extras_topology.xml:1849
 #, no-c-format
 msgid ""
       "-- Returns the wkt of the polygon added with AddFace\n"
@@ -2040,181 +2057,181 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1855
+#: extras_topology.xml:1861
 #, no-c-format
 msgid "GetRingEdges"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1857
+#: extras_topology.xml:1863
 #, no-c-format
 msgid "Returns an ordered set of edges forming a ring with the given edge ."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1864
+#: extras_topology.xml:1870
 #, no-c-format
 msgid "<funcdef>getfaceedges_returntype <function>GetRingEdges</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>aring</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>max_edges=null</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1876
+#: extras_topology.xml:1882
 #, no-c-format
 msgid "Returns an ordered set of edges forming a ring with the given edge. Each output consists of a sequence and a signed edge id. Sequence numbers start with value 1. A negative edge identifier means that the given edge is taken backward. You can pass a negative edge id to start walking backward."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1884
+#: extras_topology.xml:1890
 #, no-c-format
 msgid "If <varname>max_edges</varname> is not null no more than those records are returned by that function. This is meant to be a safety parameter when dealing with possibly invalid topologies."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1899
+#: extras_topology.xml:1905
 #, no-c-format
 msgid ", <xref linkend=\"GetNodeEdges\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1908
+#: extras_topology.xml:1914
 #, no-c-format
 msgid "GetNodeEdges"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1910
+#: extras_topology.xml:1916
 #, no-c-format
 msgid "Returns an ordered set of edges incident to the given node."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1917
+#: extras_topology.xml:1923
 #, no-c-format
 msgid "<funcdef>getfaceedges_returntype <function>GetNodeEdges</function></funcdef> <paramdef><type>varchar </type> <parameter>atopology</parameter></paramdef> <paramdef><type>integer </type> <parameter>anode</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1928
+#: extras_topology.xml:1934
 #, no-c-format
 msgid "Returns an ordered set of edges incident to the given node. Each output consists of a sequence and a signed edge id. Sequence numbers start with value 1. A positive edge starts at the given node. A negative edge ends into the given node. Closed edges will appear twice (with both signs). Order is clockwise starting from northbound."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1939
+#: extras_topology.xml:1945
 #, no-c-format
 msgid "This function computes ordering rather than deriving from metadata and is thus usable to build edge ring linking."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1952
+#: extras_topology.xml:1958
 #, no-c-format
 msgid ", <xref linkend=\"ST_Azimuth\"/>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1965
+#: extras_topology.xml:1971
 #, no-c-format
 msgid "This section covers the functions for processing topologies in non-standard ways."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:1968
+#: extras_topology.xml:1974
 #, no-c-format
 msgid "Topology Processing"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:1971
+#: extras_topology.xml:1977
 #, no-c-format
 msgid "Polygonize"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:1972
+#: extras_topology.xml:1978
 #, no-c-format
 msgid "Find and register all faces defined by topology edges"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:1976
+#: extras_topology.xml:1982
 #, no-c-format
 msgid "<funcdef>text <function>Polygonize</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1986
+#: extras_topology.xml:1992
 #, no-c-format
 msgid "Register all faces that can be built out a topology edge primitives."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1987
+#: extras_topology.xml:1993
 #, no-c-format
 msgid "The target topology is assumed to contain no self-intersecting edges."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1988
+#: extras_topology.xml:1994
 #, no-c-format
 msgid "Already known faces are recognized, so it is safe to call Polygonize multiple times on the same topology."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:1989 extras_topology.xml:2142
+#: extras_topology.xml:1995 extras_topology.xml:2148
 #, no-c-format
 msgid "This function does not use nor set the next_left_edge and next_right_edge fields of the edge table."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2001
+#: extras_topology.xml:2007
 #, no-c-format
 msgid ", <xref linkend=\"ST_Polygonize\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2007
+#: extras_topology.xml:2013
 #, no-c-format
 msgid "AddNode"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2009
+#: extras_topology.xml:2015
 #, no-c-format
 msgid "Adds a point node to the node table in the specified topology schema and returns the nodeid of new node. If point already exists as node, the existing nodeid is returned."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2014
+#: extras_topology.xml:2020
 #, no-c-format
 msgid "<funcdef>integer <function>AddNode</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apoint</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>allowEdgeSplitting=false</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>computeContainingFace=false</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2027
+#: extras_topology.xml:2033
 #, no-c-format
 msgid "Adds a point node to the node table in the specified topology schema. The <xref linkend=\"AddEdge\"/> function automatically adds start and end points of an edge when called so not necessary to explicitly add nodes of an edge."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2034
+#: extras_topology.xml:2040
 #, no-c-format
 msgid "If any edge crossing the node is found either an exception is raised or the edge is splitted, depending on the <varname>allowEdgeSplitting</varname> parameter value."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2040
+#: extras_topology.xml:2046
 #, no-c-format
 msgid "If <varname>computeContainingFace</varname> is true a newly added node would get the correct containing face computed."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2045
+#: extras_topology.xml:2051
 #, no-c-format
 msgid "If the <varname>apoint</varname> geometry already exists as a node, the node is not added but the existing nodeid is returned."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2054
+#: extras_topology.xml:2060
 #, no-c-format
 msgid ""
       "SELECT topology.AddNode('ma_topo', ST_GeomFromText('POINT(227641.6 893816.5)', 26986) ) As nodeid;\n"
@@ -2225,49 +2242,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2066
+#: extras_topology.xml:2072
 #, no-c-format
 msgid "AddEdge"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2068
+#: extras_topology.xml:2074
 #, no-c-format
 msgid "Adds a linestring edge to the edge table and associated start and end points to the point nodes table of the specified topology schema using the specified linestring geometry and returns the edgeid of the new (or existing) edge."
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2073
+#: extras_topology.xml:2079
 #, no-c-format
 msgid "<funcdef>integer <function>AddEdge</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>geometry </type> <parameter>aline</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2084
+#: extras_topology.xml:2090
 #, no-c-format
 msgid "Adds an edge to the edge table and associated nodes to the nodes table of the specified <varname>toponame</varname> schema using the specified linestring geometry and returns the edgeid of the new or existing record. The newly added edge has \"universe\" face on both sides and links to itself."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2086
+#: extras_topology.xml:2092
 #, no-c-format
 msgid "If the <varname>aline</varname> geometry crosses, overlaps, contains or is contained by an existing linestring edge, then an error is thrown and the edge is not added."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2087
+#: extras_topology.xml:2093
 #, no-c-format
 msgid "The geometry of <varname>aline</varname> must have the same <varname>srid</varname> as defined for the topology otherwise an invalid spatial reference sys error will be thrown."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2091
+#: extras_topology.xml:2097
 #, no-c-format
 msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2097
+#: extras_topology.xml:2103
 #, no-c-format
 msgid ""
       "SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 893917.2,227591.9 893900.4)', 26986) ) As edgeid;\n"
@@ -2290,67 +2307,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2103
+#: extras_topology.xml:2109
 #, no-c-format
 msgid ", <xref linkend=\"spatial_ref_sys\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2109
+#: extras_topology.xml:2115
 #, no-c-format
 msgid "AddFace"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2111
+#: extras_topology.xml:2117
 #, no-c-format
 msgid "<refpurpose>Registers a face primitive to a topology and get it's identifier.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2118
+#: extras_topology.xml:2124
 #, no-c-format
 msgid "<funcdef>integer <function>AddFace</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>geometry </type> <parameter>apolygon</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>force_new=false</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2130
+#: extras_topology.xml:2136
 #, no-c-format
 msgid "<para>Registers a face primitive to a topology and get it's identifier.</para>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2134
+#: extras_topology.xml:2140
 #, no-c-format
 msgid "For a newly added face, the edges forming its boundaries and the ones contained in the face will be updated to have correct values in the left_face and right_face fields. Isolated nodes contained in the face will also be updated to have a correct containing_face field value."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2146
+#: extras_topology.xml:2152
 #, no-c-format
 msgid "The target topology is assumed to be valid (containing no self-intersecting edges). An exception is raised if: The polygon boundary is not fully defined by existing edges or the polygon overlaps an existing face."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2148
+#: extras_topology.xml:2154
 #, no-c-format
 msgid "If the <varname>apolygon</varname> geometry already exists as a face, then: if <varname>force_new</varname> is false (the default) the face id of the existing face is returned; if <varname>force_new</varname> is true a new id will be assigned to the newly registered face."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2156
+#: extras_topology.xml:2162
 #, no-c-format
 msgid "When a new registration of an existing face is performed (force_new=true), no action will be taken to resolve dangling references to the existing face in the edge, node an relation tables, nor will the MBR field of the existing face record be updated. It is up to the caller to deal with that."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2163
+#: extras_topology.xml:2169
 #, no-c-format
 msgid "The <varname>apolygon</varname> geometry must have the same <varname>srid</varname> as defined for the topology otherwise an invalid spatial reference sys error will be thrown."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2172
+#: extras_topology.xml:2178
 #, no-c-format
 msgid ""
       "-- first add the edges we use generate_series as an iterator (the below \n"
@@ -2390,97 +2407,151 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2178
+#: extras_topology.xml:2184
 #, no-c-format
 msgid ", <xref linkend=\"CreateTopology\"/>, <xref linkend=\"spatial_ref_sys\"/>"
 msgstr ""
 
+#. Tag: refname
+#: extras_topology.xml:2190
+#, no-c-format
+msgid "ST_Simplify"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2191
+#, no-c-format
+msgid "Returns a \"simplified\" geometry version of the given TopoGeometry using the Douglas-Peucker algorithm."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2197
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_Simplify</function></funcdef> <paramdef><type>TopoGeometry</type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2207
+#, no-c-format
+msgid "Returns a \"simplified\" geometry version of the given TopoGeometry using the Douglas-Peucker algorithm on each component edge."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2210
+#, no-c-format
+msgid "The returned geometry may be non-simple or non-valid."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2211
+#, no-c-format
+msgid "Splitting component edges may help retaining simplicity/validity."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2213
+#, no-c-format
+msgid "Performed by the GEOS module."
+msgstr ""
+
 #. Tag: para
-#: extras_topology.xml:2188
+#: extras_topology.xml:2214 extras_topology.xml:2740
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2219
+#, no-c-format
+msgid "Geometry <xref linkend=\"ST_Simplify\"/>, <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_ModEdgeSplit\"/>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2229
 #, no-c-format
 msgid "This section covers the topology functions for creating new topogeometries."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2191
+#: extras_topology.xml:2232
 #, no-c-format
 msgid "TopoGeometry Constructors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2194
+#: extras_topology.xml:2235
 #, no-c-format
 msgid "CreateTopoGeom"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2196
+#: extras_topology.xml:2237
 #, no-c-format
 msgid "Creates a new topo geometry object from topo element array - tg_type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:2200
+#: extras_topology.xml:2241
 #, no-c-format
 msgid "<funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </type> <parameter>tg_type</parameter></paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></paramdef> <paramdef><type>topoelementarray</type> <parameter>tg_objs</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry <function>CreateTopoGeom</function></func [...]
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2221 extras_topology.xml:2283
+#: extras_topology.xml:2262
 #, no-c-format
 msgid "Creates a topogeometry object for layer denoted by layer_id and registers it in the relations table in the <varname>toponame</varname> schema."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2222
+#: extras_topology.xml:2263
 #, no-c-format
 msgid "tg_type is an integer: 1:[multi]point (punctal), 2:[multi]line (lineal), 3:[multi]poly (areal), 4:collection. layer_id is the layer id in the topology.layer table."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2223
+#: extras_topology.xml:2264
 #, no-c-format
 msgid "punctal layers are formed from set of nodes, lineal layers are formed from a set of edges, areal layers are formed from a set of faces, and collections can be formed from a mixture of nodes, edges, and faces."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2225
+#: extras_topology.xml:2266
 #, no-c-format
 msgid "Omitting the array of components generates an empty TopoGeometry object."
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2232
+#: extras_topology.xml:2273
 #, no-c-format
 msgid "Examples: Form from existing edges"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2233
+#: extras_topology.xml:2274
 #, no-c-format
 msgid "Create a topogeom in ri_topo schema for layer 2 (our ri_roads), of type (2) LINE, for the first edge (we loaded in <varname>ST_CreateTopoGeo</varname>."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2234
+#: extras_topology.xml:2275
 #, no-c-format
 msgid "INSERT INTO ri.ri_roads(road_name, topo) VALUES('Unknown', topology.CreateTopoGeom('ri_topo',2,2,'{{1,2}}'::topology.topoelementarray);"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2239
+#: extras_topology.xml:2280
 #, no-c-format
 msgid "Examples: Convert an areal geometry to best guess topogeometry"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2240
+#: extras_topology.xml:2281
 #, no-c-format
 msgid "Lets say we have geometries that should be formed from a collection of faces. We have for example blockgroups table and want to know the topo geometry of each block group. If our data was perfectly aligned, we could do this:"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2242
+#: extras_topology.xml:2283
 #, no-c-format
 msgid ""
       "-- create our topo geometry column --\n"
@@ -2506,7 +2577,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2244
+#: extras_topology.xml:2285
 #, no-c-format
 msgid ""
       "--the world is rarely perfect allow for some error\n"
@@ -2537,49 +2608,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2250
+#: extras_topology.xml:2291
 #, no-c-format
 msgid ", <xref linkend=\"toTopoGeom\"/> <xref linkend=\"ST_CreateTopoGeo\"/>, <xref linkend=\"ST_GetFaceGeometry\"/>, <xref linkend=\"topoelementarray\"/>, <xref linkend=\"TopoElementArray_Agg\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2263
+#: extras_topology.xml:2304 extras_topology.xml:2480
 #, no-c-format
 msgid "toTopoGeom"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2265
+#: extras_topology.xml:2306
 #, no-c-format
-msgid "Creates a new topo geometry from a simple geometry"
+msgid "Converts a simple Geometry into a topo geometry"
 msgstr ""
 
-#. Tag: funcprototype
-#: extras_topology.xml:2270
+#. Tag: funcsynopsis
+#: extras_topology.xml:2312
 #, no-c-format
-msgid "<funcdef>topogeometry <function>toTopoGeom</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></paramdef> <paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</parameter></paramdef>"
+msgid "<funcprototype> <funcdef>topogeometry <function>toTopoGeom</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer</type> <parameter>layer_id</parameter></paramdef> <paramdef choice=\"opt\"><type>float8</type> <parameter>tolerance</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>topogeometry <function>toTopoGeom</function></funcdef [...]
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2287
+#: extras_topology.xml:2333
 #, no-c-format
-msgid "Topological primitives required to represent the input geometry will be added, possibly splitting existing ones. Pre-existing TopoGeometry objects will retain their shapes."
+msgid "Converts a simple Geometry into a <xref linkend=\"topogeometry\"/>."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2292
+#: extras_topology.xml:2337
+#, no-c-format
+msgid "Topological primitives required to represent the input geometry will be added to the underlying topology, possibly splitting existing ones, and they will be associated with the output TopoGeometry in the <varname>relation</varname> table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2344
+#, no-c-format
+msgid "Existing TopoGeometry objects (with the possible exception of <varname>topogeom</varname>, if given) will retain their shapes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2349
 #, no-c-format
 msgid "When <varname>tolerance</varname> is given it will be used to snap the input geometry to existing primitives."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2301
+#: extras_topology.xml:2354
+#, no-c-format
+msgid "In the first form a new TopoGeometry will be created for the given layer (<varname>layer_id</varname>) of the given topology (<varname>toponame</varname>)."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2359
+#, no-c-format
+msgid "In the second form the primitives resulting from the conversion will be added to the pre-existing TopoGeometry (<varname>topogeom</varname>), possibly adding space to its final shape. To have the new shape completely replace the old one see <xref linkend=\"clearTopoGeom\"/>."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2368
+#, no-c-format
+msgid "Enhanced: 2.1.0 adds the version taking an existing TopoGeometry."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2372
 #, no-c-format
 msgid "This is a full self-contained workflow"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2302
+#: extras_topology.xml:2373
 #, no-c-format
 msgid ""
       "-- do this if you don't have a topology setup already\n"
@@ -2611,38 +2712,56 @@ msgid ""
       " Deploy: public.nei_topo.topo"
 msgstr ""
 
+#. Tag: programlisting
+#: extras_topology.xml:2375
+#, no-c-format
+msgid ""
+      "-- Shrink all TopoGeometry polygons by 10 meters\n"
+      "UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);\n"
+      "\n"
+      "-- Get the no-one-lands left by the above operation\n"
+      "-- I think GRASS calls this \"polygon0 layer\"\n"
+      "SELECT ST_GetFaceGeometry('topo_boston_test', f.face_id) \n"
+      "  FROM topo_boston_test.face f\n"
+      "  WHERE f.face_id > 0 -- don't consider the universe face\n"
+      "  AND NOT EXISTS ( -- check that no TopoGeometry references the face\n"
+      "    SELECT * FROM topo_boston_test.relation\n"
+      "    WHERE layer_id = 1 AND element_id = f.face_id\n"
+      "  );"
+msgstr ""
+
 #. Tag: para
-#: extras_topology.xml:2308
+#: extras_topology.xml:2381
 #, no-c-format
-msgid ",<xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom\"/>, <xref linkend=\"TopologySummary\"/>"
+msgid ", <xref linkend=\"AddTopoGeometryColumn\"/>, <xref linkend=\"CreateTopoGeom\"/>, <xref linkend=\"TopologySummary\"/>, <xref linkend=\"clearTopoGeom\"/>"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2315
+#: extras_topology.xml:2393
 #, no-c-format
 msgid "TopoElementArray_Agg"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2316
+#: extras_topology.xml:2394
 #, no-c-format
 msgid "Returns a <varname>topoelementarray</varname> for a set of element_id, type arrays (topoelements)"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2321
+#: extras_topology.xml:2399
 #, no-c-format
 msgid "<funcdef>topoelementarray <function>TopoElementArray_Agg</function></funcdef> <paramdef><type>topoelement set</type> <parameter>tefield</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2331
+#: extras_topology.xml:2409
 #, no-c-format
 msgid "Used to create a <xref linkend=\"topoelementarray\"/> from a set of <xref linkend=\"topoelement\"/>."
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2340
+#: extras_topology.xml:2418
 #, no-c-format
 msgid ""
       "SELECT topology.TopoElementArray_Agg(ARRAY[e,t]) As tea\n"
@@ -2653,127 +2772,183 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2344 extras_topology.xml:2397
+#: extras_topology.xml:2430
 #, no-c-format
-msgid ", <xref linkend=\"topoelementarray\"/>"
+msgid "This section covers the topology functions for editing existing topogeometries."
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2433
+#, no-c-format
+msgid "TopoGeometry Editors"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2437
+#, no-c-format
+msgid "clearTopoGeom"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2439
+#, no-c-format
+msgid "Clears the content of a topo geometry"
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2444
+#, no-c-format
+msgid "<funcdef>topogeometry <function>clearTopoGeom</function></funcdef> <paramdef><type>topogeometry </type> <parameter>topogeom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2454
+#, no-c-format
+msgid "Clears the content a <xref linkend=\"topogeometry\"/> turning it into an empty one. Mostly useful in conjunction with <xref linkend=\"toTopoGeom\"/> to replace the shape of existing objects and any dependent object in higher hierarchical levels."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2462
+#, no-c-format
+msgid "Availability: 2.1"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2466
+#, no-c-format
+msgid ""
+      "-- Shrink all TopoGeometry polygons by 10 meters\n"
+      "UPDATE nei_topo SET topo = ST_Buffer(clearTopoGeom(topo), -10);"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2481
+#, no-c-format
+msgid "Adds a geometry shape to an existing topo geometry"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2485
+#, no-c-format
+msgid "Refer to <xref linkend=\"toTopoGeom\"/>"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2350
+#: extras_topology.xml:2495
 #, no-c-format
 msgid "TopoGeometry Accessors"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2354
+#: extras_topology.xml:2499
 #, no-c-format
 msgid "GetTopoGeomElementArray"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2356
+#: extras_topology.xml:2501
 #, no-c-format
 msgid "Returns a <varname>topoelementarray</varname> (an array of topoelements) containing the topological elements and type of the given TopoGeometry (primitive elements)"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2361
+#: extras_topology.xml:2506
 #, no-c-format
 msgid "<funcdef>topoelementarray <function>GetTopoGeomElementArray</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></paramdef>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2369
+#: extras_topology.xml:2514
 #, no-c-format
 msgid "<funcdef>topoelementarray topoelement <function>GetTopoGeomElementArray</function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2379
+#: extras_topology.xml:2524
 #, no-c-format
 msgid "Returns a <xref linkend=\"topoelementarray\"/> containing the topological elements and type of the given TopoGeometry (primitive elements). This is similar to GetTopoGeomElements except it returns the elements as an array rather than as a dataset."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2381 extras_topology.xml:2428
+#: extras_topology.xml:2526 extras_topology.xml:2573
 #, no-c-format
 msgid "tg_id is the topogeometry id of the topogeometry object in the topology in the layer denoted by <varname>layer_id</varname> in the topology.layer table."
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2402
+#: extras_topology.xml:2547
 #, no-c-format
 msgid "GetTopoGeomElements"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2404
+#: extras_topology.xml:2549
 #, no-c-format
 msgid "Returns a set of <varname>topoelement</varname> objects containing the topological element_id,element_type of the given TopoGeometry (primitive elements)"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2409
+#: extras_topology.xml:2554
 #, no-c-format
 msgid "<funcdef>setof topoelement <function>GetTopoGeomElements</function></funcdef> <paramdef><type>varchar </type> <parameter>toponame</parameter></paramdef> <paramdef><type>integer </type> <parameter>layer_id</parameter></paramdef> <paramdef><type>integer</type> <parameter>tg_id</parameter></paramdef>"
 msgstr ""
 
 #. Tag: funcprototype
-#: extras_topology.xml:2417
+#: extras_topology.xml:2562
 #, no-c-format
 msgid "<funcdef>setof topoelement <function>GetTopoGeomElements</function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2427
+#: extras_topology.xml:2572
 #, no-c-format
 msgid "Returns a set of element_id,element_type (topoelements) for a given topogeometry object in <varname>toponame</varname> schema."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2444
+#: extras_topology.xml:2589
 #, no-c-format
 msgid ", <xref linkend=\"topoelement\"/>"
 msgstr ""
 
 #. Tag: title
-#: extras_topology.xml:2451
+#: extras_topology.xml:2597
 #, no-c-format
 msgid "TopoGeometry Outputs"
 msgstr ""
 
 #. Tag: refname
-#: extras_topology.xml:2454
+#: extras_topology.xml:2600
 #, no-c-format
 msgid "AsGML"
 msgstr ""
 
 #. Tag: refpurpose
-#: extras_topology.xml:2456
+#: extras_topology.xml:2602
 #, no-c-format
 msgid "Returns the GML representation of a topogeometry."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: extras_topology.xml:2460
+#: extras_topology.xml:2606
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>AsGML</function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> <paramdef><type>text </type> <parameter>nsprefix_in</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>AsGML</function></funcdef> <paramdef><type>topogeometr [...]
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2521
+#: extras_topology.xml:2667
 #, no-c-format
 msgid "Returns the GML representation of a topogeometry in version GML3 format. If no <varname>nsprefix_in</varname> is specified then <varname>gml</varname> is used. Pass in an empty string for nsprefix to get a non-qualified name space. The precision (default: 15) and options (default 1) parameters, if given, are passed untouched to the underlying call to ST_AsGML."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2523
+#: extras_topology.xml:2669
 #, no-c-format
 msgid "The <varname>visitedTable</varname> parameter, if given, is used for keeping track of the visited Node and Edge elements so to use cross-references (xlink:xref) rather than duplicating definitions. The table is expected to have (at least) two integer fields: 'element_type' and 'element_id'. The calling user must have both read and write privileges on the given table. For best performance, an index should be defined on <varname>element_type</varname> and <varname>element_id</varnam [...]
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2529
+#: extras_topology.xml:2675
 #, no-c-format
 msgid ""
       "CREATE TABLE visited (\n"
@@ -2783,25 +2958,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2532
+#: extras_topology.xml:2678
 #, no-c-format
 msgid "The <varname>idprefix</varname> parameter, if given, will be prepended to Edge and Node tag identifiers."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2534
+#: extras_topology.xml:2680
 #, no-c-format
 msgid "The <varname>gmlver</varname> parameter, if given, will be passed to the underlying ST_AsGML. Defaults to 3."
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2543
+#: extras_topology.xml:2689
 #, no-c-format
 msgid "This uses the topo geometry we created in <xref linkend=\"CreateTopoGeom\"/>"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2544
+#: extras_topology.xml:2690
 #, no-c-format
 msgid ""
       "SELECT topology.AsGML(topo) As rdgml \n"
@@ -2839,13 +3014,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2545
+#: extras_topology.xml:2691
 #, no-c-format
 msgid "Same exercise as previous without namespace"
 msgstr ""
 
 #. Tag: programlisting
-#: extras_topology.xml:2546
+#: extras_topology.xml:2692
 #, no-c-format
 msgid ""
       "SELECT topology.AsGML(topo,'') As rdgml \n"
@@ -2883,8 +3058,183 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: extras_topology.xml:2552
+#: extras_topology.xml:2698
 #, no-c-format
 msgid ", <xref linkend=\"ST_CreateTopoGeo\"/>"
 msgstr ""
 
+#. Tag: refname
+#: extras_topology.xml:2703
+#, no-c-format
+msgid "AsTopoJSON"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2705
+#, no-c-format
+msgid "Returns the TopoJSON representation of a topogeometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2710
+#, no-c-format
+msgid "<funcdef>text <function>AsTopoJSON</function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg</parameter></paramdef> <paramdef><type>regclass </type> <parameter>edgeMapTable</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2721
+#, no-c-format
+msgid "Returns the TopoJSON representation of a topogeometry. If <varname>edgeMapTable</varname> is not null, it will be used as a lookup/storage mapping of edge identifiers to arc indices. This is to be able to allow for a compact \"arcs\" array in the final document."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2724
+#, no-c-format
+msgid "The table, if given, is expected to have an \"arc_id\" field of type \"serial\" and an \"edge_id\" of type integer; the code will query the table for \"edge_id\" so it is recommended to add an index on that field."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2729
+#, no-c-format
+msgid "Arc indices in the TopoJSONjoutput are 0-based but they are 1-based in the \"edgeMapTable\" table."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2735
+#, no-c-format
+msgid "A full TopoJSON document will be need to contain, in addition to the snippets returned by this function, the actual arcs plus some headers. See the <ulink url=\"http://github.com/mbostock/topojson/wiki/Specification\">TopoJSON specification</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2752
+#, no-c-format
+msgid ""
+      "CREATE TEMP TABLE edgemap(arc_id serial, edge_id int unique);\n"
+      "\n"
+      "-- header\n"
+      "SELECT '{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], \"translate\": [0,0] }, \"objects\": {'\n"
+      "\n"
+      "-- objects\n"
+      "UNION ALL SELECT '\"' || feature_name || '\": ' || AsTopoJSON(feature, 'edgemap')\n"
+      "FROM features.big_parcels WHERE feature_name = 'P3P4';\n"
+      "\n"
+      "-- arcs\n"
+      "WITH edges AS ( \n"
+      "  SELECT m.arc_id, e.geom FROM edgemap m, city_data.edge e\n"
+      "  WHERE e.edge_id = m.edge_id\n"
+      "), points AS (\n"
+      "  SELECT arc_id, (st_dumppoints(geom)).* FROM edges\n"
+      "), compare AS (\n"
+      "  SELECT p2.arc_id,\n"
+      "         CASE WHEN p1.path IS NULL THEN p2.geom\n"
+      "              ELSE ST_Translate(p2.geom, -ST_X(p1.geom), -ST_Y(p1.geom))\n"
+      "         END AS geom\n"
+      "  FROM points p2 LEFT OUTER JOIN points p1\n"
+      "  ON ( p1.arc_id = p2.arc_id AND p2.path[1] = p1.path[1]+1 )\n"
+      "  ORDER BY arc_id, p2.path\n"
+      "), arcsdump AS (\n"
+      "  SELECT arc_id, (regexp_matches( ST_AsGeoJSON(geom), '\\[.*\\]'))[1] as t\n"
+      "  FROM compare\n"
+      "), arcs AS (\n"
+      "  SELECT arc_id, '[' || array_to_string(array_agg(t), ',') || ']' as a FROM arcsdump\n"
+      "  GROUP BY arc_id\n"
+      "  ORDER BY arc_id\n"
+      ")\n"
+      "SELECT '}, \"arcs\": [' UNION ALL\n"
+      "SELECT array_to_string(array_agg(a), E',\\n') from arcs\n"
+      "\n"
+      "-- footer\n"
+      "UNION ALL SELECT ']}'::text as t;\n"
+      "\n"
+      "-- Result:\n"
+      "{ \"type\": \"Topology\", \"transform\": { \"scale\": [1,1], \"translate\": [0,0] }, \"objects\": {\n"
+      "\"P3P4\": { \"type\": \"MultiPolygon\", \"arcs\": [[[-1]],[[6,5,-5,-4,-3,1]]]}\n"
+      "}, \"arcs\": [\n"
+      " [[25,30],[6,0],[0,10],[-14,0],[0,-10],[8,0]],\n"
+      " [[35,6],[0,8]],\n"
+      " [[35,6],[12,0]],\n"
+      " [[47,6],[0,8]],\n"
+      " [[47,14],[0,8]],\n"
+      " [[35,22],[12,0]],\n"
+      " [[35,14],[0,8]]\n"
+      " ]}"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2760
+#, no-c-format
+msgid "This section lists the Topology functions used to check relationships between topogeometries and topology primitives"
+msgstr ""
+
+#. Tag: title
+#: extras_topology.xml:2763
+#, no-c-format
+msgid "Topology Spatial Relationships"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2766
+#, no-c-format
+msgid "Equals"
+msgstr ""
+
+#. Tag: refpurpose
+#: extras_topology.xml:2768 extras_topology.xml:2817
+#, no-c-format
+msgid "Returns true if two topogeometries are composed of the same topology primitives."
+msgstr ""
+
+#. Tag: funcprototype
+#: extras_topology.xml:2773 extras_topology.xml:2822
+#, no-c-format
+msgid "<funcdef>boolean <function>Equals</function></funcdef> <paramdef><type>topogeometry </type> <parameter>tg1</parameter></paramdef> <paramdef><type>topogeometry </type> <parameter>tg2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2784
+#, no-c-format
+msgid "Returns true if two topogeometries are composed of the same topology primitives: faces, edges, nodes."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2788
+#, no-c-format
+msgid "This function not supported for topogeometries that are geometry collections. It also can not compare topogeometries from different topologies."
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2795 extras_topology.xml:2845
+#, no-c-format
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: programlisting
+#: extras_topology.xml:2802 extras_topology.xml:2852
+#, no-c-format
+msgid "<!--TODO: Need example -->"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2809
+#, no-c-format
+msgid ", <xref linkend=\"ST_Equals\"/>"
+msgstr ""
+
+#. Tag: refname
+#: extras_topology.xml:2815
+#, no-c-format
+msgid "Intersects"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2833
+#, no-c-format
+msgid "Returns true if two topogeometries share primitives or primitives intersect"
+msgstr ""
+
+#. Tag: para
+#: extras_topology.xml:2837
+#, no-c-format
+msgid "This function not supported for topogeometries that are geometry collections. It also can not compare topogeometries from different topologies. Also not currently supported for hierarchichal topogeometries (topogeometries composed of other topogeometries)."
+msgstr ""
+
diff --git a/doc/po/templates/faq.xml.pot b/doc/po/templates/faq.xml.pot
index 94d6750..b9a1c0f 100644
--- a/doc/po/templates/faq.xml.pot
+++ b/doc/po/templates/faq.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -23,71 +23,149 @@ msgstr ""
 #. Tag: para
 #: faq.xml:8
 #, no-c-format
-msgid "My applications and desktop tools worked with PostGIS 1.5,but they don't work with PostGIS 2.0. How do I fix this?"
+msgid "Where can I find tutorials, guides and workshops on working with PostGIS"
 msgstr ""
 
 #. Tag: para
 #: faq.xml:12
 #, no-c-format
-msgid "A lot of deprecated functions were removed from the PostGIS code base in PostGIS 2.0. This has affected applications in addition to third-party tools such as Geoserver, MapServer, QuantumGIS, and OpenJump to name a few. There are a couple of ways to resolve this. For the third-party apps, you can try to upgrade to the latest versions of these which have many of these issues fixed. For your own code, you can change your code to not use the functions removed. Most of these functions [...]
+msgid "OpenGeo has a step by step tutorial guide workshop <ulink url=\"http://workshops.boundlessgeo.com/postgis-intro/\">Introduction to PostGIS</ulink>. It includes packaged data as well as intro to working with OpenGeo Suite. It is probably the best tutorial on PostGIS."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:13
+#, no-c-format
+msgid "BostonGIS also has a <ulink url=\"http://www.bostongis.com/PrinterFriendly.aspx?content_name=postgis_tut01\">PostGIS almost idiot's guide on getting started</ulink>. That one is more focused on the windows user."
 msgstr ""
 
 #. Tag: para
 #: faq.xml:18
 #, no-c-format
+msgid "My applications and desktop tools worked with PostGIS 1.5,but they don't work with PostGIS 2.0. How do I fix this?"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:22
+#, no-c-format
+msgid "A lot of deprecated functions were removed from the PostGIS code base in PostGIS 2.0. This has affected applications in addition to third-party tools such as Geoserver, MapServer, QuantumGIS, and OpenJump to name a few. There are a couple of ways to resolve this. For the third-party apps, you can try to upgrade to the latest versions of these which have many of these issues fixed. For your own code, you can change your code to not use the functions removed. Most of these functions [...]
+msgstr ""
+
+#. Tag: para
+#: faq.xml:28
+#, no-c-format
 msgid "The <varname>legacy.sql</varname> file is located in the same folder as postgis.sql. You can install this file after you have installed postgis.sql and spatial_ref_sys.sql to get back all the 200 some-odd old functions we removed."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:24
+#: faq.xml:35
+#, no-c-format
+msgid "When I load OpenStreetMap data with osm2pgsql, I'm getting an error failed: ERROR: operator class \"gist_geometry_ops\" does not exist for access method \"gist\" Error occurred. This worked fine in PostGIS 1.5."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:40
+#, no-c-format
+msgid "In PostGIS 2, the default geometry operator class gist_geometry_ops was changed to gist_geometry_ops_2d and the gist_geometry_ops was completely removed. This was done because PostGIS 2 also introduced Nd spatial indexes for 3D support and the old name was deemed confusing and a misnomer."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:41
+#, no-c-format
+msgid "Some older applications that as part of the process create tables and indexes, explicitly referenced the operator class name. This was unnecessary if you want the default 2D index. So if you manage said good, change index creation from:"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:42
+#, no-c-format
+msgid "BAD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:43
+#, no-c-format
+msgid "CREATE INDEX idx_my_table_geom ON my_table USING gist(geom gist_geometry_ops);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:44
+#, no-c-format
+msgid "To GOOD:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:45
+#, no-c-format
+msgid "CREATE INDEX idx_my_table_geom ON my_table USING gist(geom);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:47
+#, no-c-format
+msgid "The only case where you WILL need to specify the operator class is if you want a 3D spatial index as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq.xml:48
+#, no-c-format
+msgid "CREATE INDEX idx_my_super3d_geom ON my_super3d USING gist(geom gist_geometry_ops_nd);"
+msgstr ""
+
+#. Tag: para
+#: faq.xml:50
+#, no-c-format
+msgid "If you are unfortunate to be stuck with compiled code you can't change that has the old gist_geometry_ops hard-coded, then you can create the old class using the <filename>legacy_gist.sql</filename> packaged in PostGIS 2.0.2+. However if you use this fix, you are advised to at a later point drop the index and recreate it without the operator class. This will save you grief in the future when you need to upgrade again."
+msgstr ""
+
+#. Tag: para
+#: faq.xml:56
 #, no-c-format
 msgid "I'm running PostgreSQL 9.0 and I can no longer read/view geometries in OpenJump, Safe FME, and some other tools?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:28
+#: faq.xml:60
 #, no-c-format
 msgid "In PostgreSQL 9.0+, the default encoding for bytea data has been changed to hex and older JDBC drivers still assume escape format. This has affected some applications such as Java applications using older JDBC drivers or .NET applications that use the older npgsql driver that expect the old behavior of ST_AsBinary. There are two approaches to getting this to work again."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:32
+#: faq.xml:64
 #, no-c-format
 msgid "You can upgrade your JDBC driver to the latest PostgreSQL 9.0 version which you can get from <ulink url=\"http://jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/download.html</ulink>"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:34
+#: faq.xml:66
 #, no-c-format
 msgid "If you are running a .NET app, you can use Npgsql 2.0.11 or higher which you can download from <ulink url=\"http://pgfoundry.org/frs/?group_id=1000140\">http://pgfoundry.org/frs/?group_id=1000140</ulink> and as described on <ulink url=\"http://fxjr.blogspot.com/2010/11/npgsql-2011-released.html\">Francisco Figueiredo's NpgSQL 2.0.11 released blog entry</ulink>"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:38
+#: faq.xml:70
 #, no-c-format
 msgid "If upgrading your PostgreSQL driver is not an option, then you can set the default back to the old behavior with the following change:"
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:39
+#: faq.xml:71
 #, no-c-format
 msgid "ALTER DATABASE mypostgisdb SET bytea_output='escape';"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:46
+#: faq.xml:78
 #, no-c-format
 msgid "I tried to use PgAdmin to view my geometry column and it is blank, what gives?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:50
+#: faq.xml:82
 #, no-c-format
 msgid "PgAdmin doesn't show anything for large geometries. The best ways to verify you do have data in your geometry columns are?"
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:53
+#: faq.xml:85
 #, no-c-format
 msgid ""
       "-- this should return no records if all your geom fields are filled in        \n"
@@ -95,7 +173,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:55
+#: faq.xml:87
 #, no-c-format
 msgid ""
       "-- To tell just how large your geometry is do a query of the form\n"
@@ -104,123 +182,123 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq.xml:61
+#: faq.xml:93
 #, no-c-format
 msgid "What kind of geometric objects can I store?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:65
+#: faq.xml:97
 #, no-c-format
 msgid "You can store point, line, polygon, multipoint, multiline, multipolygon, and geometrycollections. In PostGIS 2.0 and above you can also store TINS and Polyhedral Surfaces in the basic geometry type. These are specified in the Open GIS Well Known Text Format (with XYZ,XYM,XYZM extensions). There are three data types currently supported. The standard OGC geometry data type which uses a planar coordinate system for measurement, the geography data type which uses a geodetic coordinate [...]
 msgstr ""
 
 #. Tag: para
-#: faq.xml:78
+#: faq.xml:110
 #, no-c-format
 msgid "I'm all confused. Which data store should I use geometry or geography?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:82
+#: faq.xml:114
 #, no-c-format
 msgid "Short Answer: geography is a new data type that supports long range distances measurements, but most computations on it are currently slower than they are on geometry. If you use geography -- you don't need to learn much about planar coordinate systems. Geography is generally best if all you care about is measuring distances and lengths and you have data from all over the world. Geometry data type is an older data type that has many more functions supporting it, enjoys greater sup [...]
 msgstr ""
 
 #. Tag: para
-#: faq.xml:93
+#: faq.xml:125
 #, no-c-format
 msgid "Long Answer: Refer to our more lengthy discussion in the <xref linkend=\"PostGIS_GeographyVSGeometry\"/> and <link linkend=\"PostGIS_TypeFunctionMatrix\">function type matrix</link>."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:101
+#: faq.xml:133
 #, no-c-format
 msgid "I have more intense questions about geography, such as how big of a geographic region can I stuff in a geography column and still get reasonable answers. Are there limitations such as poles, everything in the field must fit in a hemisphere (like SQL Server 2008 has), speed etc?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:105
+#: faq.xml:137
 #, no-c-format
 msgid "Your questions are too deep and complex to be adequately answered in this section. Please refer to our <xref linkend=\"PostGIS_Geography_AdvancedFAQ\"/>."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:112
+#: faq.xml:144
 #, no-c-format
 msgid "How do I insert a GIS object into the database?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:116
+#: faq.xml:148
 #, no-c-format
 msgid "First, you need to create a table with a column of type \"geometry\" or \"geography\" to hold your GIS data. Storing geography type data is a little different than storing geometry. Refer to <xref linkend=\"Geography_Basics\"/> for details on storing geography."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:120
+#: faq.xml:152
 #, no-c-format
 msgid "For geometry: Connect to your database with <filename>psql</filename> and try the following SQL:"
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:124
+#: faq.xml:156
 #, no-c-format
 msgid ""
-      "CREATE TABLE gtest ( ID int4, NAME varchar(20) );\n"
-      "SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);"
+      "CREATE TABLE gtest ( gid serial primary key, name varchar(20)\n"
+      "        , geom geometry(LINESTRING) );"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:126
+#: faq.xml:158
 #, no-c-format
-msgid "If the geometry column addition fails, you probably have not loaded the PostGIS functions and objects into this database. See the <xref linkend=\"PGInstall\"/>."
+msgid "If the geometry column definition fails, you probably have not loaded the PostGIS functions and objects into this database or are using a pre-2.0 version of PostGIS. See the <xref linkend=\"PGInstall\"/>."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:130
+#: faq.xml:162
 #, no-c-format
 msgid "Then, you can insert a geometry into the table using a SQL insert statement. The GIS object itself is formatted using the OpenGIS Consortium \"well-known text\" format:"
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:134
+#: faq.xml:166
 #, no-c-format
 msgid ""
       "INSERT INTO gtest (ID, NAME, GEOM) \n"
       "VALUES (\n"
       "  1, \n"
       "  'First Geometry', \n"
-      "  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1)\n"
+      "  ST_GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)')\n"
       ");"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:136
+#: faq.xml:168
 #, no-c-format
 msgid "For more information about other GIS objects, see the <link linkend=\"RefObject\">object reference</link>."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:139
+#: faq.xml:171
 #, no-c-format
 msgid "To view your GIS data in the table:"
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:141
+#: faq.xml:173
 #, no-c-format
 msgid "SELECT id, name, ST_AsText(geom) AS geom FROM gtest;"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:143
+#: faq.xml:175
 #, no-c-format
 msgid "The return value should look something like this:"
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:145
+#: faq.xml:177
 #, no-c-format
 msgid ""
       "id | name           | geom\n"
@@ -230,37 +308,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq.xml:151
+#: faq.xml:183
 #, no-c-format
 msgid "How do I construct a spatial query?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:155
+#: faq.xml:187
 #, no-c-format
 msgid "The same way you construct any other database query, as an SQL combination of return values, functions, and boolean tests."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:158
+#: faq.xml:190
 #, no-c-format
 msgid "For spatial queries, there are two issues that are important to keep in mind while constructing your query: is there a spatial index you can make use of; and, are you doing expensive calculations on a large number of geometries."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:163
+#: faq.xml:195
 #, no-c-format
 msgid "In general, you will want to use the \"intersects operator\" (&&) which tests whether the bounding boxes of features intersect. The reason the && operator is useful is because if a spatial index is available to speed up the test, the && operator will make use of this. This can make queries much much faster."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:170
+#: faq.xml:202
 #, no-c-format
 msgid "You will also make use of spatial functions, such as Distance(), ST_Intersects(), ST_Contains() and ST_Within(), among others, to narrow down the results of your search. Most spatial queries include both an indexed test and a spatial function test. The index test serves to limit the number of return tuples to only tuples that <emphasis>might</emphasis> meet the condition of interest. The spatial functions are then use to test the condition exactly."
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:178
+#: faq.xml:210
 #, no-c-format
 msgid ""
       "SELECT id, the_geom \n"
@@ -270,133 +348,133 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq.xml:184
+#: faq.xml:216
 #, no-c-format
 msgid "How do I speed up spatial queries on large tables?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:188
+#: faq.xml:220
 #, no-c-format
 msgid "Fast queries on large tables is the <emphasis>raison d'etre</emphasis> of spatial databases (along with transaction support) so having a good index is important."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:192
+#: faq.xml:224
 #, no-c-format
 msgid "To build a spatial index on a table with a <varname>geometry</varname> column, use the \"CREATE INDEX\" function as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:196
+#: faq.xml:228
 #, no-c-format
 msgid "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometrycolumn] );"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:198
+#: faq.xml:230
 #, no-c-format
 msgid "The \"USING GIST\" option tells the server to use a GiST (Generalized Search Tree) index."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:202
+#: faq.xml:234
 #, no-c-format
 msgid "GiST indexes are assumed to be lossy. Lossy indexes uses a proxy object (in the spatial case, a bounding box) for building the index."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:207
+#: faq.xml:239
 #, no-c-format
 msgid "You should also ensure that the PostgreSQL query planner has enough information about your index to make rational decisions about when to use it. To do this, you have to \"gather statistics\" on your geometry tables."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:212
+#: faq.xml:244
 #, no-c-format
 msgid "For PostgreSQL 8.0.x and greater, just run the <command>VACUUM ANALYZE</command> command."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:215
+#: faq.xml:247
 #, no-c-format
 msgid "For PostgreSQL 7.4.x and below, run the <command>SELECT UPDATE_GEOMETRY_STATS()</command> command."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:222
+#: faq.xml:254
 #, no-c-format
 msgid "Why aren't PostgreSQL R-Tree indexes supported?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:226
+#: faq.xml:258
 #, no-c-format
 msgid "Early versions of PostGIS used the PostgreSQL R-Tree indexes. However, PostgreSQL R-Trees have been completely discarded since version 0.6, and spatial indexing is provided with an R-Tree-over-GiST scheme."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:231
+#: faq.xml:263
 #, no-c-format
 msgid "Our tests have shown search speed for native R-Tree and GiST to be comparable. Native PostgreSQL R-Trees have two limitations which make them undesirable for use with GIS features (note that these limitations are due to the current PostgreSQL native R-Tree implementation, not the R-Tree concept in general):"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:239
+#: faq.xml:271
 #, no-c-format
 msgid "R-Tree indexes in PostgreSQL cannot handle features which are larger than 8K in size. GiST indexes can, using the \"lossy\" trick of substituting the bounding box for the feature itself."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:246
+#: faq.xml:278
 #, no-c-format
 msgid "R-Tree indexes in PostgreSQL are not \"null safe\", so building an index on a geometry column which contains null geometries will fail."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:256
+#: faq.xml:288
 #, no-c-format
 msgid "Why should I use the <varname>AddGeometryColumn()</varname> function and all the other OpenGIS stuff?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:261
+#: faq.xml:293
 #, no-c-format
 msgid "If you do not want to use the OpenGIS support functions, you do not have to. Simply create tables as in older versions, defining your geometry columns in the CREATE statement. All your geometries will have SRIDs of -1, and the OpenGIS meta-data tables will <emphasis>not</emphasis> be filled in properly. However, this will cause most applications based on PostGIS to fail, and it is generally suggested that you do use <varname>AddGeometryColumn()</varname> to create geometry tables."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:270
+#: faq.xml:302
 #, no-c-format
 msgid "MapServer is one application which makes use of the <varname>geometry_columns</varname> meta-data. Specifically, MapServer can use the SRID of the geometry column to do on-the-fly reprojection of features into the correct map projection."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:279
+#: faq.xml:311
 #, no-c-format
 msgid "What is the best way to find all objects within a radius of another object?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:284
+#: faq.xml:316
 #, no-c-format
 msgid "To use the database most efficiently, it is best to do radius queries which combine the radius test with a bounding box test: the bounding box test uses the spatial index, giving fast access to a subset of data which the radius test is then applied to."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:289
+#: faq.xml:321
 #, no-c-format
 msgid "The <varname>ST_DWithin(geometry, geometry, distance)</varname> function is a handy way of performing an indexed distance search. It works by creating a search rectangle large enough to enclose the distance radius, then performing an exact distance search on the indexed subset of results."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:295
+#: faq.xml:327
 #, no-c-format
 msgid "For example, to find all objects with 100 meters of POINT(1000 1000) the following query would work well:"
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:298
+#: faq.xml:330
 #, no-c-format
 msgid ""
       "SELECT * FROM geotable \n"
@@ -404,37 +482,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq.xml:304
+#: faq.xml:336
 #, no-c-format
 msgid "How do I perform a coordinate reprojection as part of a query?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:309
+#: faq.xml:341
 #, no-c-format
 msgid "To perform a reprojection, both the source and destination coordinate systems must be defined in the SPATIAL_REF_SYS table, and the geometries being reprojected must already have an SRID set on them. Once that is done, a reprojection is as simple as referring to the desired destination SRID. The below projects a geometry to NAD 83 long lat. The below will only work if the srid of the_geom is not -1 (not undefined spatial ref)"
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:316
+#: faq.xml:348
 #, no-c-format
 msgid "SELECT ST_Transform(the_geom,4269) FROM geotable;"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:322
+#: faq.xml:354
 #, no-c-format
 msgid "I did an ST_AsEWKT and ST_AsText on my rather large geometry and it returned blank field. What gives?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:326
+#: faq.xml:358
 #, no-c-format
 msgid "You are probably using PgAdmin or some other tool that doesn't output large text. If your geometry is big enough, it will appear blank in these tools. Use PSQL if you really need to see it or output it in WKT."
 msgstr ""
 
 #. Tag: programlisting
-#: faq.xml:329
+#: faq.xml:361
 #, no-c-format
 msgid ""
       "--To check number of geometries are really blank\n"
@@ -442,31 +520,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq.xml:335
+#: faq.xml:367
 #, no-c-format
 msgid "When I do an ST_Intersects, it says my two geometries don't intersect when I KNOW THEY DO. What gives?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:339
+#: faq.xml:371
 #, no-c-format
 msgid "This generally happens in two common cases. Your geometry is invalid -- check <xref linkend=\"ST_IsValid\"/> or you are assuming they intersect because ST_AsText truncates the numbers and you have lots of decimals after it is not showing you."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:347
+#: faq.xml:379
 #, no-c-format
 msgid "I am releasing software that uses PostGIS, does that mean my software has to be licensed using the GPL like PostGIS? Will I have to publish all my code if I use PostGIS?"
 msgstr ""
 
 #. Tag: para
-#: faq.xml:351
+#: faq.xml:383
 #, no-c-format
 msgid "Almost certainly not. As an example, consider Oracle database running on Linux. Linux is GPL, Oracle is not, does Oracle running on Linux have to be distributed using the GPL? No. So your software can use a PostgreSQL/PostGIS database as much as it wants and be under any license you like."
 msgstr ""
 
 #. Tag: para
-#: faq.xml:352
+#: faq.xml:384
 #, no-c-format
 msgid "The only exception would be if you made changes to the PostGIS source code, and distributed your changed version of PostGIS. In that case you would have to share the code of your changed PostGIS (but not the code of applications running on top of it). Even in this limited case, you would still only have to distribute source code to people you distributed binaries to. The GPL does not require that you <emphasis>publish</emphasis> your source code, only that you share it with people [...]
 msgstr ""
diff --git a/doc/po/templates/faq_raster.xml.pot b/doc/po/templates/faq_raster.xml.pot
index ede86d3..5433be7 100644
--- a/doc/po/templates/faq_raster.xml.pot
+++ b/doc/po/templates/faq_raster.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -71,7 +71,7 @@ msgstr ""
 #. Tag: para
 #: faq_raster.xml:44
 #, no-c-format
-msgid "If you are on windows, you can compile yourself, or use the <ulink url=\"http://www.postgis.org/download/windows/experimental.php#wktraster\">pre-compiled PostGIS Raster windows binaries</ulink>. If you are on Mac OSX Leopard or Snow Leopard, there are binaries available at <ulink url=\"http://www.kyngchaos.com/software/postgres\">Kyng Chaos Mac OSX PostgreSQL/GIS binaries</ulink>."
+msgid "If you are on windows, you can compile yourself, or use the <ulink url=\"http://postgis.net/windows_downloads\">pre-compiled PostGIS Raster windows binaries</ulink>. If you are on Mac OSX Leopard or Snow Leopard, there are binaries available at <ulink url=\"http://www.kyngchaos.com/software/postgres\">Kyng Chaos Mac OSX PostgreSQL/GIS binaries</ulink>."
 msgstr ""
 
 #. Tag: para
@@ -215,7 +215,7 @@ msgstr ""
 #. Tag: programlisting
 #: faq_raster.xml:120
 #, no-c-format
-msgid "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' user='postgres' password=whatever' schema='someschema' table=sometable\" C:\\somefile.png"
+msgid "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' password='whatever' schema='someschema' table=sometable\" C:\\somefile.png"
 msgstr ""
 
 #. Tag: para
@@ -227,13 +227,13 @@ msgstr ""
 #. Tag: programlisting
 #: faq_raster.xml:123
 #, no-c-format
-msgid "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' user='postgres' password=whatever' schema='someschema' table=sometable where=\"owner='jimmy'\" \" C:\\somefile.png"
+msgid "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' password='whatever' schema='someschema' table=sometable where='filename=\\'abcd.sid\\''\" \" C:\\somefile.png"
 msgstr ""
 
 #. Tag: programlisting
 #: faq_raster.xml:124
 #, no-c-format
-msgid "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost dbname='mygisdb' user='postgres' password=whatever' schema='someschema' table=sometable where='ST_Intersects(rast, ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" C:\\intersectregion.png"
+msgid "gdal_translate -of PNG -outsize 10% 10% \"PG:host=localhost port=5432 dbname='mygisdb' user='postgres' password='whatever' schema='someschema' table=sometable where='ST_Intersects(rast, ST_SetSRID(ST_Point(-71.032,42.3793),4326) )' \" C:\\intersectregion.png"
 msgstr ""
 
 #. Tag: para
@@ -257,77 +257,71 @@ msgstr ""
 #. Tag: para
 #: faq_raster.xml:134
 #, no-c-format
-msgid "We know for sure the following windows binaries have PostGIS Raster built in."
+msgid "PostGIS Raster is undergoing many changes. If you want to get the latest nightly build for Windows -- then check out the Tamas Szekeres nightly builds built with Visual Studio which contain GDAL trunk, Python Bindings and MapServer executables and PostGIS Raster driver built-in. Just click the SDK bat and run your commands from there. <ulink url=\"http://vbkto.dyndns.org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink>. Also available are VS project files."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:135
+#: faq_raster.xml:138
 #, no-c-format
 msgid "<ulink url=\"http://fwtools.maptools.org/\">FWTools latest stable version for Windows is compiled with Raster support</ulink>."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:136
-#, no-c-format
-msgid "PostGIS Raster is undergoing many changes. If you want to get the latest nightly build for Windows -- then check out the Tamas Szekeres nightly builds built with Visual Studio which contain GDAL trunk, Python Bindings and MapServer executables and PostGIS Raster driver built-in. Just click the SDK bat and run your commands from there. <ulink url=\"http://vbkto.dyndns.org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink>. Also available are VS project files."
-msgstr ""
-
-#. Tag: para
-#: faq_raster.xml:145
+#: faq_raster.xml:144
 #, no-c-format
 msgid "What tools can I use to view PostGIS raster data?"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:149
+#: faq_raster.xml:148
 #, no-c-format
 msgid "You can use MapServer compiled with GDAL 1.7+ and PostGIS Raster driver support to view Raster data. QuantumGIS (QGIS) now supports viewing of PostGIS Raster if you have PostGIS raster driver installed."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:151
+#: faq_raster.xml:150
 #, no-c-format
 msgid "In theory any tool that renders data using GDAL can support PostGIS raster data or support it with fairly minimal effort. Again for Windows, Tamas' binaries <ulink url=\"http://vbkto.dyndns.org/sdk/\">http://vbkto.dyndns.org/sdk/</ulink> are a good choice if you don't want the hassle of having to setup to compile your own."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:158
+#: faq_raster.xml:157
 #, no-c-format
 msgid "How can I add a PostGIS raster layer to my MapServer map?"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:162
+#: faq_raster.xml:161
 #, no-c-format
 msgid "First you need GDAL 1.7 or higher compiled with PostGIS raster support. GDAL 1.8 or above is preferred since many issues have been fixed in 1.8 and more PostGIS raster issues fixed in trunk version."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:164
+#: faq_raster.xml:163
 #, no-c-format
 msgid "You can much like you can with any other raster. Refer to <ulink url=\"http://mapserver.org/input/raster.html\">MapServer Raster processing options</ulink> for list of various processing functions you can use with MapServer raster layers."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:167
+#: faq_raster.xml:166
 #, no-c-format
 msgid "What makes PostGIS raster data particularly interesting, is that since each tile can have various standard database columns, you can segment it in your data source"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:169
+#: faq_raster.xml:168
 #, no-c-format
 msgid "Below is an example of how you would define a PostGIS raster layer in MapServer."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:170
+#: faq_raster.xml:169
 #, no-c-format
 msgid "The mode=2 is required for tiled rasters and was added in PostGIS 2.0 and GDAL 1.8 drivers. This does not exist in GDAL 1.7 drivers."
 msgstr ""
 
 #. Tag: programlisting
-#: faq_raster.xml:171
+#: faq_raster.xml:170
 #, no-c-format
 msgid ""
       "-- displaying raster with standard raster options\n"
@@ -360,7 +354,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: faq_raster.xml:173
+#: faq_raster.xml:172
 #, no-c-format
 msgid ""
       "-- displaying raster with standard raster options and a where clause\n"
@@ -377,43 +371,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:181
+#: faq_raster.xml:180
 #, no-c-format
 msgid "What functions can I currently use with my raster data?"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:185
+#: faq_raster.xml:184
 #, no-c-format
 msgid "Refer to the list of <xref linkend=\"RT_reference\"/>. There are more, but this is still a work in progress."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:187
+#: faq_raster.xml:186
 #, no-c-format
 msgid "Refer to the <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/PlanningAndFunding\">PostGIS Raster roadmap page</ulink> for details of what you can expect in the future."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:195
+#: faq_raster.xml:194
 #, no-c-format
 msgid "I am getting error ERROR: function st_intersects(raster, unknown) is not unique or st_union(geometry,text) is not unique. How do I fix?"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:199
+#: faq_raster.xml:198
 #, no-c-format
 msgid "The function is not unique error happens if one of your arguments is a textual representation of a geometry instead of a geometry. In these cases, PostgreSQL marks the textual representation as an unknown type, which means it can fall into the st_intersects(raster, geometry) or st_intersects(raster,raster) thus resulting in a non-unique case since both functions can in theory support your request. To prevent this, you need to cast the geometry to a geometry."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:200
+#: faq_raster.xml:199
 #, no-c-format
 msgid "For example if your code looks like this:"
 msgstr ""
 
 #. Tag: programlisting
-#: faq_raster.xml:201
+#: faq_raster.xml:200
 #, no-c-format
 msgid ""
       "SELECT rast\n"
@@ -422,13 +416,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:202
+#: faq_raster.xml:201
 #, no-c-format
 msgid "Cast the textual geometry representation to a geometry by changing your code to this:"
 msgstr ""
 
 #. Tag: programlisting
-#: faq_raster.xml:203
+#: faq_raster.xml:202
 #, no-c-format
 msgid ""
       "SELECT rast\n"
@@ -437,44 +431,92 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:211
+#: faq_raster.xml:208
 #, no-c-format
 msgid "How is PostGIS Raster different from Oracle GeoRaster (SDO_GEORASTER) and SDO_RASTER types?"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:215
+#: faq_raster.xml:212
 #, no-c-format
 msgid "For a more extensive discussion on this topic, check out Jorge Arévalo <ulink url=\"http://gis4free.wordpress.com/2010/07/19/oracle-georaster-part-i/\">Oracle GeoRaster and PostGIS Raster: First impressions </ulink>"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:216
+#: faq_raster.xml:213
 #, no-c-format
 msgid "The major advantage of one-georeference-by-raster over one-georeference-by-layer is to allow:"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:217
+#: faq_raster.xml:214
 #, no-c-format
 msgid "* coverages to be not necessarily rectangular (which is often the case of raster coverage covering large extents. See the possible raster arrangements in the documentation)"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:218
+#: faq_raster.xml:215
 #, no-c-format
 msgid "* rasters to overlaps (which is necessary to implement lossless vector to raster conversion)"
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:219
+#: faq_raster.xml:216
 #, no-c-format
 msgid "These arrangements are possible in Oracle as well, but they imply the storage of multiple SDO_GEORASTER objects linked to as many SDO_RASTER tables. A complex coverage can lead to hundreds of tables in the database. With PostGIS Raster you can store a similar raster arrangement into a unique table."
 msgstr ""
 
 #. Tag: para
-#: faq_raster.xml:224
+#: faq_raster.xml:221
 #, no-c-format
 msgid "It's a bit like if PostGIS would force you to store only full rectangular vector coverage without gaps or overlaps (a perfect rectangular topological layer). This is very practical in some applications but practice has shown that it is not realistic or desirable for most geographical coverages. Vector structures needs the flexibility to store discontinuous and non-rectangular coverages. We think it is a big advantage that raster structure should benefit as well."
 msgstr ""
 
+#. Tag: para
+#: faq_raster.xml:229
+#, no-c-format
+msgid "raster2pgsql load of large file fails with String of N bytes is too long for encoding conversion?"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:233
+#, no-c-format
+msgid "raster2pgsql doesn't make any connections to your database when generating the file to load. If your database has set an explicit client encoding different from your database encoding, then when loading large raster files (above 30 MB in size), you may run into a <code>bytes is too long for encoding conversion</code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:235
+#, no-c-format
+msgid "This generally happens if for example you have your database in UTF8, but to support windows apps, you have the client encoding set to <code>WIN1252</code>."
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:236
+#, no-c-format
+msgid "To work around this make sure the client encoding is the same as your database encoding during load. You can do this by explicitly setting the encoding in your load script. Example, if you are on windows:"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:237
+#, no-c-format
+msgid "set PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:238
+#, no-c-format
+msgid "If you are on Unix/Linux"
+msgstr ""
+
+#. Tag: programlisting
+#: faq_raster.xml:239
+#, no-c-format
+msgid "export PGCLIENTENCODING=UTF8"
+msgstr ""
+
+#. Tag: para
+#: faq_raster.xml:240
+#, no-c-format
+msgid "Gory details of this issue are detailed in <ulink url=\"http://trac.osgeo.org/postgis/ticket/2209\">http://trac.osgeo.org/postgis/ticket/2209</ulink>"
+msgstr ""
+
diff --git a/doc/po/templates/installation.xml.pot b/doc/po/templates/installation.xml.pot
index 5834efb..4f7463f 100644
--- a/doc/po/templates/installation.xml.pot
+++ b/doc/po/templates/installation.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-12 07:23+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,9 +15,9 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: installation.xml:3 installation.xml:231 installation.xml:640
+#: installation.xml:3
 #, no-c-format
-msgid "Installation"
+msgid "PostGIS Installation"
 msgstr ""
 
 #. Tag: para
@@ -35,30 +35,65 @@ msgstr ""
 #. Tag: para
 #: installation.xml:11
 #, no-c-format
-msgid "The raster support is currently optional, but installed by default. For installing using the PostgreSQL 9.1+ extensions model it is required. Please refer to <xref linkend=\"make_install_postgis_extensions\"/> if you are using PostgreSQL 9.1+."
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:12
+#, no-c-format
+msgid ""
+      "tar xvfz postgis-&last_release_version;.tar.gz\n"
+      "cd postgis-&last_release_version;\n"
+      "./configure\n"
+      "make\n"
+      "make install"
 msgstr ""
 
 #. Tag: para
 #: installation.xml:13
 #, no-c-format
-msgid "All the .sql files once installed will be installed in share/contrib/postgis-&last_release_version; folder of your PostgreSQL install"
+msgid "Once postgis is installed, it needs to be enabled in each individual database you want to use it in."
 msgstr ""
 
 #. Tag: para
+#: installation.xml:14
+#, no-c-format
+msgid "The raster support is currently optional, but installed by default. For enabling using the PostgreSQL 9.1+ extensions model raster is required. Using the extension enable process is preferred and more user-friendly. To spatially enable your database:"
+msgstr ""
+
+#. Tag: programlisting
 #: installation.xml:15
 #, no-c-format
-msgid "The <varname>postgis_comments.sql</varname>, <varname>raster_comments.sql</varname>, <varname>topology_comments.sql</varname> generate quick help tips for each function that can be accessed via pgAdmin III or psql. In psql with a command of the form e.g.<varname>\\dd ST_SetPoint</varname>"
+msgid ""
+      "psql -d yourdatabase -c \"CREATE EXTENSION postgis;\"\n"
+      "psql -d yourdatabase -c \"CREATE EXTENSION postgis_topology;\"\n"
+      "psql -d yourdatabase -c \"CREATE EXTENSION postgis_tiger_geocoder;\"\n"
+      "-- if you built with sfcgal support --\n"
+      "psql -d yourdatabase -c \"CREATE EXTENSION postgis_sfcgal;\""
+msgstr ""
+
+#. Tag: para
+#: installation.xml:18
+#, no-c-format
+msgid "Please refer to <xref linkend=\"make_install_postgis_extensions\"/> for more details about querying installed/available extensions and upgrading extensions, or switching from a non-extension install to an extension install."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:20
+#, no-c-format
+msgid "For those running who decided for some reason not to compile with raster support, or just are old-fashioned, here are longer more painful instructions for you:"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:21
+#, no-c-format
+msgid "All the .sql files once installed will be installed in share/contrib/postgis-&last_minor_version; folder of your PostgreSQL install"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:17
+#: installation.xml:24
 #, no-c-format
 msgid ""
-      "tar xvfz postgis-&last_release_version;.tar.gz\n"
-      "cd postgis-&last_release_version;\n"
-      "./configure --with-raster --with-topology --with-gui\n"
-      "make\n"
-      "make install\n"
       "createdb yourdatabase\n"
       "createlang plpgsql yourdatabase\n"
       "psql -d yourdatabase -f postgis.sql\n"
@@ -66,440 +101,473 @@ msgid ""
       "psql -d yourdatabase -f spatial_ref_sys.sql\n"
       "psql -d yourdatabase -f rtpostgis.sql\n"
       "psql -d yourdatabase -f raster_comments.sql\n"
-      "psql -d yourdatabase -f topology/topology.sql\n"
-      "psql -d yourdatabase -f doc/topology_comments.sql"
+      "psql -d yourdatabase -f topology.sql\n"
+      "psql -d yourdatabase -f topology_comments.sql\n"
+      "--if you built with sfcgal support --\n"
+      "psql -d yourdatabase -f sfcgal.sql\n"
+      "psql -d yourdatabase -f sfcgal_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:18
-#, no-c-format
-msgid "<filename>topology_comments.sql</filename> since its an optional feature is not installed by <command>make install</command> or <command>make comments-install</command>. However if you do a <command>make comments</command> or <command>make topology_comments.sql</command>, it will be generated in the docs folder"
-msgstr ""
-
-#. Tag: para
-#: installation.xml:27
+#: installation.xml:26
 #, no-c-format
 msgid "The rest of this chapter goes into detail each of the above installation steps."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:34
+#: installation.xml:33
 #, no-c-format
-msgid "Requirements"
+msgid "Install Requirements"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:36
+#: installation.xml:35
 #, no-c-format
 msgid "PostGIS has the following requirements for building and usage:"
 msgstr ""
 
 #. Tag: emphasis
-#: installation.xml:41
+#: installation.xml:40
 #, no-c-format
 msgid "Required"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:46
+#: installation.xml:45
 #, no-c-format
 msgid "PostgreSQL &min_postgres_version; or higher. A complete installation of PostgreSQL (including server headers) is required. PostgreSQL is available from <ulink url=\"http://www.postgresql.org\"> http://www.postgresql.org </ulink> ."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:55
+#: installation.xml:54
 #, no-c-format
 msgid "For a full PostgreSQL / PostGIS support matrix and PostGIS/GEOS support matrix refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS\">http://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS</ulink>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:61
+#: installation.xml:60
 #, no-c-format
 msgid "GNU C compiler (<filename>gcc</filename>). Some other ANSI C compilers can be used to compile PostGIS, but we find far fewer problems when compiling with <filename>gcc</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:69
+#: installation.xml:68
 #, no-c-format
 msgid "GNU Make (<filename>gmake</filename> or <filename>make</filename>). For many systems, GNU <filename>make</filename> is the default version of make. Check the version by invoking <filename>make -v</filename>. Other versions of <filename>make</filename> may not process the PostGIS <filename>Makefile</filename> properly."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:79
+#: installation.xml:78
 #, no-c-format
 msgid "Proj4 reprojection library, version 4.6.0 or greater. The Proj4 library is used to provide coordinate reprojection support within PostGIS. Proj4 is available for download from <ulink url=\"http://trac.osgeo.org/proj/\"> http://trac.osgeo.org/proj/ </ulink> ."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:91
+#: installation.xml:90
 #, no-c-format
 msgid "GEOS geometry library, version 3.3 or greater, but GEOS 3.4+ is recommended to take full advantage of all the new functions and features. Without GEOS 3.4, you will be missing some major enhancements such as ST_Triangles and long-running function interruption, and improvements to geometry validation and making geometries valid such as ST_ValidDetail and ST_MakeValid. GEOS 3.3.2+ is also required for topology support. GEOS is available for download from <ulink url=\"http://trac.osg [...]
 msgstr ""
 
 #. Tag: para
-#: installation.xml:101
+#: installation.xml:100
 #, no-c-format
 msgid "LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports functions (ST_GeomFromGML and ST_GeomFromKML). LibXML2 is available for download from <ulink url=\"http://xmlsoft.org/downloads.html\">http://xmlsoft.org/downloads.html</ulink>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:108
+#: installation.xml:107
 #, no-c-format
-msgid "JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON via the function ST_GeomFromGeoJson. JSON-C is available for download from <ulink url=\"http://oss.metaparadigm.com/json-c/\">http://oss.metaparadigm.com/json-c/</ulink>."
+msgid "JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON via the function ST_GeomFromGeoJson. JSON-C is available for download from <ulink url=\"https://github.com/json-c/json-c/releases\">https://github.com/json-c/json-c/releases/</ulink>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:116
+#: installation.xml:115
 #, no-c-format
-msgid "GDAL, version 1.8 or higher (1.9 or higher is strongly recommended since some things will not work well or behavior differently with lower versions). This is required for raster support. <ulink url=\"http://trac.osgeo.org/gdal/wiki/DownloadSource\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
+msgid "GDAL, version 1.8 or higher (1.9 or higher is strongly recommended since some things will not work well or behavior differently with lower versions). This is required for raster support and to be able to install with <code>CREATE EXTENSION postgis</code> so highly recommended for those running 9.1+. <ulink url=\"http://trac.osgeo.org/gdal/wiki/DownloadSource\">http://trac.osgeo.org/gdal/wiki/DownloadSource</ulink>."
 msgstr ""
 
 #. Tag: emphasis
-#: installation.xml:124
+#: installation.xml:123
 #, no-c-format
 msgid "Optional"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:129
+#: installation.xml:128
+#, no-c-format
+msgid "GDAL (pseudo optional) only if you don't want raster and don't care about installing with <code>CREATE EXTENSION postgis</code> can you leave it out. Keep in mind other extensions may have a requires postgis extension which will prevent you from installing them unless you install postgis as an extension. So it is highly recommended you compile with GDAL support."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:134
 #, no-c-format
 msgid "GTK (requires GTK+2.0, 2.8+) to compile the shp2pgsql-gui shape file loader. <ulink url=\"http://www.gtk.org/\"> http://www.gtk.org/ </ulink> ."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:139
+#: installation.xml:144
+#, no-c-format
+msgid "SFCGAL, version 1.0 (or higher) could be used to provide additional 2D and 3D advanced analysis functions to PostGIS cf <xref linkend=\"reference_sfcgal\"/>. And also allow to use SFCGAL rather than GEOS for some 2D functions provided by both backends (like ST_Intersection or ST_Area, for instance). A PostgreSQL configuration variable <code>postgis.backend</code> allow end user to control which backend he want to use if SFCGAL is installed (GEOS by default). Nota: SFCGAL 1.0 requi [...]
+msgstr ""
+
+#. Tag: para
+#: installation.xml:152
+#, no-c-format
+msgid "In order to build the <xref linkend=\"Address_Standardizer\"/> you will also need PCRE <ulink url=\"http://www.pcre.org\">http://www.pcre.org</ulink> (which generally is already installed on nix systems). <code>Regex::Assemble</code> perl CPAN package is only needed if you want to rebuild the data encoded in <filename>parseaddress-stcities.h</filename>. <xref linkend=\"Address_Standardizer\"/> will automatically be built if it detects a PCRE library, or you pass in a valid <varnam [...]
+msgstr ""
+
+#. Tag: para
+#: installation.xml:159
 #, no-c-format
 msgid "CUnit (<filename>CUnit</filename>). This is needed for regression testing. <ulink url=\"http://cunit.sourceforge.net/\">http://cunit.sourceforge.net/</ulink>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:145
+#: installation.xml:165
 #, no-c-format
 msgid "Apache Ant (<filename>ant</filename>) is required for building any of the drivers under the <filename>java</filename> directory. Ant is available from <ulink url=\"http://ant.apache.org\"> http://ant.apache.org </ulink> ."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:157
+#: installation.xml:177
 #, no-c-format
 msgid "DocBook (<filename>xsltproc</filename>) is required for building the documentation. Docbook is available from <ulink url=\"http://www.docbook.org/\"> http://www.docbook.org/ </ulink> ."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:168
+#: installation.xml:188
 #, no-c-format
 msgid "DBLatex (<filename>dblatex</filename>) is required for building the documentation in PDF format. DBLatex is available from <ulink url=\"http://dblatex.sourceforge.net/\"> http://dblatex.sourceforge.net/ </ulink> ."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:179
+#: installation.xml:199
 #, no-c-format
 msgid "ImageMagick (<filename>convert</filename>) is required to generate the images used in the documentation. ImageMagick is available from <ulink url=\"http://www.imagemagick.org/\"> http://www.imagemagick.org/ </ulink> ."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:192
+#: installation.xml:212
 #, no-c-format
 msgid "Getting the Source"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:194
+#: installation.xml:214
 #, no-c-format
-msgid "Retrieve the PostGIS source archive from the downloads website <ulink url=\"http://www.postgis.org/download/postgis-&last_release_version;.tar.gz\"> http://www.postgis.org/download/postgis-&last_release_version;.tar.gz </ulink>"
+msgid "Retrieve the PostGIS source archive from the downloads website <ulink url=\"&postgis_download_url;\"> &postgis_download_url; </ulink>"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:201
+#: installation.xml:221
 #, no-c-format
 msgid ""
-      "wget http://www.postgis.org/download/postgis-&last_release_version;.tar.gz\n"
+      "wget &postgis_download_url;\n"
       "tar -xvzf postgis-&last_release_version;.tar.gz"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:203
+#: installation.xml:223
 #, no-c-format
 msgid "This will create a directory called <varname>postgis-&last_release_version;</varname> in the current working directory."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:209
+#: installation.xml:229
 #, no-c-format
 msgid "Alternatively, checkout the source from the <ulink url=\"http://subversion.apache.org/\"> svn </ulink> repository <ulink url=\"http://svn.osgeo.org/postgis/trunk/\"> http://svn.osgeo.org/postgis/trunk/ </ulink> ."
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:221
+#: installation.xml:241
 #, no-c-format
 msgid "svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-&last_release_version;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:223
+#: installation.xml:243
 #, no-c-format
 msgid "Change into the newly created <varname>postgis-&last_release_version;</varname> directory to continue the installation."
 msgstr ""
 
+#. Tag: title
+#: installation.xml:251
+#, no-c-format
+msgid "Compiling and Install from Source: Detailed"
+msgstr ""
+
 #. Tag: para
-#: installation.xml:234
+#: installation.xml:254
 #, no-c-format
 msgid "Many OS systems now include pre-built packages for PostgreSQL/PostGIS. In many cases compilation is only necessary if you want the most bleeding edge versions or you are a package maintainer."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:239
+#: installation.xml:259
 #, no-c-format
 msgid "This section includes general compilation instructions, if you are compiling for Windows etc or another OS, you may find additional more detailed help at <ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiInstall\">PostGIS User contributed compile guides</ulink> and <ulink url=\"http://trac.osgeo.org/postgis/wiki/DevWikiMain\">PostGIS Dev Wiki</ulink>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:241
+#: installation.xml:261
 #, no-c-format
 msgid "Pre-Built Packages for various OS are listed in <ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiPackages\">PostGIS Pre-built Packages</ulink>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:242
+#: installation.xml:262
 #, no-c-format
 msgid "If you are a windows user, you can get stable builds via Stackbuilder or <ulink url=\"http://www.postgis.org/download/windows/\">PostGIS Windows download site</ulink> We also have <ulink url=\"http://www.postgis.org/download/windows/experimental.php\">very bleeding-edge windows experimental builds</ulink> that are built usually once or twice a week or whenever anything exciting happens. You can use these to experiment with the in progress releases of PostGIS"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:247
+#: installation.xml:267
 #, no-c-format
 msgid "The PostGIS module is an extension to the PostgreSQL backend server. As such, PostGIS &last_release_version; <emphasis>requires</emphasis> full PostgreSQL server headers access in order to compile. It can be built against PostgreSQL versions &min_postgres_version; or higher. Earlier versions of PostgreSQL are <emphasis>not</emphasis> supported."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:255
+#: installation.xml:275
 #, no-c-format
 msgid "Refer to the PostgreSQL installation guides if you haven't already installed PostgreSQL. <ulink url=\"http://www.postgresql.org\"> http://www.postgresql.org </ulink> ."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:265
+#: installation.xml:285
 #, no-c-format
 msgid "For GEOS functionality, when you install PostgresSQL you may need to explicitly link PostgreSQL against the standard C++ library:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:270
+#: installation.xml:290
 #, no-c-format
 msgid "LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE]"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:272
+#: installation.xml:292
 #, no-c-format
 msgid "This is a workaround for bogus C++ exceptions interaction with older development tools. If you experience weird problems (backend unexpectedly closed or similar things) try this trick. This will require recompiling your PostgreSQL from scratch, of course."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:280
+#: installation.xml:300
 #, no-c-format
 msgid "The following steps outline the configuration and compilation of the PostGIS source. They are written for Linux users and will not work on Windows or Mac."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:287
+#: installation.xml:307
 #, no-c-format
 msgid "Configuration"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:289
+#: installation.xml:309
 #, no-c-format
 msgid "As with most linux installations, the first step is to generate the Makefile that will be used to build the source code. This is done by running the shell script"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:299
+#: installation.xml:319
 #, no-c-format
 msgid "With no additional parameters, this command will attempt to automatically locate the required components and libraries needed to build the PostGIS source code on your system. Although this is the most common usage of <command>./configure</command>, the script accepts several parameters for those who have the required libraries and programs in non-standard locations."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:308
+#: installation.xml:328
 #, no-c-format
 msgid "The following list shows only the most commonly used parameters. For a complete list, use the <command>--help</command> or <command>--help=short</command> parameters."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:318
+#: installation.xml:338
 #, no-c-format
 msgid "This is the location the PostGIS libraries and SQL scripts will be installed to. By default, this location is the same as the detected PostgreSQL installation."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:325
+#: installation.xml:345
 #, no-c-format
 msgid "This parameter is currently broken, as the package will only install into the PostgreSQL installation directory. Visit <ulink url=\"http://trac.osgeo.org/postgis/ticket/635\"> http://trac.osgeo.org/postgis/ticket/635 </ulink> to track this bug."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:340
+#: installation.xml:360
 #, no-c-format
 msgid "PostgreSQL provides a utility called <command>pg_config</command> to enable extensions like PostGIS to locate the PostgreSQL installation directory. Use this parameter (<command>--with-pgconfig=/path/to/pg_config</command>) to manually specify a particular PostgreSQL installation that PostGIS will build against."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:354
+#: installation.xml:374
 #, no-c-format
 msgid "GDAL, a required library, provides functionality needed for raster support <command>gdal-config</command> to enable software installations to locate the GDAL installation directory. Use this parameter (<command>--with-gdalconfig=/path/to/gdal-config</command>) to manually specify a particular GDAL installation that PostGIS will build against."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:368
+#: installation.xml:388
 #, no-c-format
 msgid "GEOS, a required geometry library, provides a utility called <command>geos-config</command> to enable software installations to locate the GEOS installation directory. Use this parameter (<command>--with-geosconfig=/path/to/geos-config</command>) to manually specify a particular GEOS installation that PostGIS will build against."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:382
+#: installation.xml:402
 #, no-c-format
 msgid "LibXML is the library required for doing GeomFromKML/GML processes. It normally is found if you have libxml installed, but if not or you want a specific version used, you'll need to point PostGIS at a specific <filename>xml2-config</filename> confi file to enable software installations to locate the LibXML installation directory. Use this parameter (<command>>--with-xml2config=/path/to/xml2-config</command>) to manually specify a particular LibXML installation that PostGIS will bu [...]
 msgstr ""
 
 #. Tag: para
-#: installation.xml:400
+#: installation.xml:420
 #, no-c-format
 msgid "Proj4 is a reprojection library required by PostGIS. Use this parameter (<command>--with-projdir=/path/to/projdir</command>) to manually specify a particular Proj4 installation directory that PostGIS will build against."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:412
+#: installation.xml:432
 #, no-c-format
 msgid "Directory where iconv is installed."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:421
+#: installation.xml:441
 #, no-c-format
 msgid "<ulink url=\"http://oss.metaparadigm.com/json-c/\">JSON-C</ulink> is an MIT-licensed JSON library required by PostGIS ST_GeomFromJSON support. Use this parameter (<command>--with-jsondir=/path/to/jsondir</command>) to manually specify a particular JSON-C installation directory that PostGIS will build against."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:433
+#: installation.xml:453
+#, no-c-format
+msgid "<ulink url=\"http://www.pcre.org/\">PCRE</ulink> is an BSD-licensed Perl Compatible Regular Expression library required by address_standardizer extension. Use this parameter (<command>--with-pcredir=/path/to/pcredir</command>) to manually specify a particular PCRE installation directory that PostGIS will build against."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:465
 #, no-c-format
 msgid "Compile the data import GUI (requires GTK+2.0). This will create shp2pgsql-gui graphical interface to shp2pgsql."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:442
+#: installation.xml:474
 #, no-c-format
 msgid "Compile with raster support. This will build rtpostgis-&last_release_version; library and rtpostgis.sql file. This may not be required in final release as plan is to build in raster support by default."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:451
+#: installation.xml:483
 #, no-c-format
 msgid "Compile with topology support. This will build the topology.sql file. There is no corresponding library as all logic needed for topology is in postgis-&last_release_version; library."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:460
+#: installation.xml:492
 #, no-c-format
 msgid "By default PostGIS will try to detect gettext support and compile with it, however if you run into incompatibility issues that cause breakage of loader, you can disable it entirely with this command. Refer to ticket <ulink url=\"http://trac.osgeo.org/postgis/ticket/748\">http://trac.osgeo.org/postgis/ticket/748</ulink> for an example issue solved by configuring with this. NOTE: that you aren't missing much by turning this off. This is used for international help/label support for  [...]
 msgstr ""
 
 #. Tag: para
-#: installation.xml:470
+#: installation.xml:503
+#, no-c-format
+msgid "By default PostGIS will not install with sfcgal support without this switch. <varname>PATH</varname> is an optional argument that allows to specify an alternate PATH to sfcgal-config."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:511
 #, no-c-format
 msgid "If you obtained PostGIS from the SVN <ulink url=\"http://svn.osgeo.org/postgis/trunk/\"> repository </ulink> , the first step is really to run the script"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:482
+#: installation.xml:523
 #, no-c-format
 msgid "This script will generate the <command>configure</command> script that in turn is used to customize the installation of PostGIS."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:487
+#: installation.xml:528
 #, no-c-format
 msgid "If you instead obtained PostGIS as a tarball, running <command>./autogen.sh</command> is not necessary as <command>configure</command> has already been generated."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:496
+#: installation.xml:537
 #, no-c-format
 msgid "Building"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:498
+#: installation.xml:539
 #, no-c-format
 msgid "Once the Makefile has been generated, building PostGIS is as simple as running"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:507
+#: installation.xml:548
 #, no-c-format
 msgid "The last line of the output should be \"<code>PostGIS was built successfully. Ready to install.</code>\""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:512
+#: installation.xml:553
 #, no-c-format
 msgid "As of PostGIS v1.4.0, all the functions have comments generated from the documentation. If you wish to install these comments into your spatial databases later, run the command which requires docbook. The postgis_comments.sql and other package comments files raster_comments.sql, topology_comments.sql are also packaged in the tar.gz distribution in the doc folder so no need to make comments if installing from the tar ball."
 msgstr ""
 
 #. Tag: command
-#: installation.xml:522 installation.xml:544
+#: installation.xml:563 installation.xml:587
 #, no-c-format
 msgid "make comments"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:525
+#: installation.xml:566
 #, no-c-format
 msgid "Introduced in PostGIS 2.0. This generates html cheat sheets suitable for quick reference or for student handouts. This requires xsltproc to build and will generate 4 files in doc folder <filename>topology_cheatsheet.html</filename>, <filename>tiger_geocoder_cheatsheet.html</filename>, <filename>raster_cheatsheet.html</filename>, <filename>postgis_cheatsheet.html</filename>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:530
+#: installation.xml:571
 #, no-c-format
 msgid "You can download some pre-built ones available in html and pdf from <ulink url=\"http://www.postgis.us/study_guides\">PostGIS / PostgreSQL Study Guides</ulink>"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:533
+#: installation.xml:574
 #, no-c-format
 msgid "make cheatsheets"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:538
+#: installation.xml:579
 #, no-c-format
 msgid "Building PostGIS Extensions and Deploying them"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:540
+#: installation.xml:581
 #, no-c-format
 msgid "The PostGIS extensions are built and installed automatically if you are using PostgreSQL 9.1+."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:543
+#: installation.xml:584
 #, no-c-format
 msgid "If you are building from source repository, you need to build the function descriptions first. These get built if you have docbook installed. You can also manually build with the statement:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:545
+#: installation.xml:589
 #, no-c-format
 msgid "Building the comments is not necessary if you are building from a release tar ball since these are packaged pre-built with the tar ball already."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:546
+#: installation.xml:590
 #, no-c-format
 msgid "If you are building against PostgreSQL 9.1, the extensions should automatically build as part of the make install process. You can if needed build from the extensions folders or copy files if you need them on a different server."
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:548
+#: installation.xml:592
 #, no-c-format
 msgid ""
       "cd extensions\n"
@@ -515,43 +583,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:549
+#: installation.xml:593
 #, no-c-format
 msgid "The extension files will always be the same for the same version of PostGIS regardless of OS, so it is fine to copy over the extension files from one OS to another as long as you have the PostGIS binaries already installed on your servers."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:551
+#: installation.xml:595
 #, no-c-format
 msgid "If you want to install the extensions manually on a separate server different from your development, You need to copy the following files from the extensions folder into the <filename>PostgreSQL / share / extension</filename> folder of your PostgreSQL install as well as the needed binaries for regular PostGIS if you don't have them already on the server."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:558
+#: installation.xml:602
 #, no-c-format
 msgid "These are the control files that denote information such as the version of the extension to install if not specified. <filename>postgis.control, postgis_topology.control</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:564
+#: installation.xml:608
 #, no-c-format
 msgid "All the files in the /sql folder of each extension. Note that these need to be copied to the root of the PostgreSQL share/extension folder <filename>extensions/postgis/sql/*.sql</filename>, <filename>extensions/postgis_topology/sql/*.sql</filename>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:570
+#: installation.xml:614
 #, no-c-format
 msgid "Once you do that, you should see <varname>postgis</varname>, <varname>postgis_topology</varname> as available extensions in PgAdmin -> extensions."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:571
+#: installation.xml:615
 #, no-c-format
 msgid "If you are using psql, you can verify that the extensions are installed by running this query:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:572
+#: installation.xml:616
 #, no-c-format
 msgid ""
       "SELECT name, default_version,installed_version \n"
@@ -563,105 +631,147 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:574
+#: installation.xml:618
 #, no-c-format
 msgid "If you have the extension installed in the database you are querying, you'll see mention in the <varname>installed_version</varname> column. If you get no records back, it means you don't have postgis extensions installed on the server at all. PgAdmin III 1.14+ will also provide this information in the <varname>extensions</varname> section of the database browser tree and will even allow upgrade or uninstall by right-clicking."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:578
+#: installation.xml:622
 #, no-c-format
 msgid "If you have the extensions available, you can install postgis extension in your database of choice by either using pgAdmin extension interface or running these sql commands:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:579
+#: installation.xml:623
 #, no-c-format
 msgid ""
       "CREATE EXTENSION postgis;\n"
-      "CREATE EXTENSION postgis_topology;"
+      "CREATE EXTENSION postgis_topology;\n"
+      "CREATE EXTENSION postgis_tiger_geocoder;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:581
+#: installation.xml:625
+#, no-c-format
+msgid "In psql you can use to see what versions you have installed and also what schema they are installed."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:626
+#, no-c-format
+msgid ""
+      "\\connect mygisdb\n"
+      "\\x \n"
+      "\\dx postgis*"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:628
+#, no-c-format
+msgid ""
+      "List of installed extensions\n"
+      "-[ RECORD 1 ]-------------------------------------------------\n"
+      "-\n"
+      "Name        | postgis\n"
+      "Version     | &last_release_version;\n"
+      "Schema      | public\n"
+      "Description | PostGIS geometry, geography, and raster spat..\n"
+      "-[ RECORD 2 ]-------------------------------------------------\n"
+      "-\n"
+      "Name        | postgis_tiger_geocoder\n"
+      "Version     | &last_release_version;\n"
+      "Schema      | tiger\n"
+      "Description | PostGIS tiger geocoder and reverse geocoder\n"
+      "-[ RECORD 3 ]-------------------------------------------------\n"
+      "-\n"
+      "Name        | postgis_topology\n"
+      "Version     | &last_release_version;\n"
+      "Schema      | topology\n"
+      "Description | PostGIS topology spatial types and functions"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:630
 #, no-c-format
 msgid "Extension tables <varname>spatial_ref_sys</varname>, <varname>layer</varname>, <varname>topology</varname> can not be explicitly backed up. They can only be backed up when the respective <varname>postgis</varname> or <varname>postgis_topology</varname> extension is backed up, which only seems to happen when you backup the whole database. As of PostGIS 2.0.1, only srid records not packaged with PostGIS are backed up when the database is backed up so don't go around changing srids w [...]
 msgstr ""
 
 #. Tag: para
-#: installation.xml:586
+#: installation.xml:635
 #, no-c-format
-msgid "If you installed &last_release_version;, without using our wonderful extension system, you can change it to be extension based by first upgrading to the latest micro version running the upgrade scripts: <filename>postgis_upgrade_20_minor.sql</filename>,<filename>raster_upgrade_20_minor.sql</filename>,<filename>topology_upgrade_20_minor.sql</filename>."
+msgid "If you installed &last_release_version;, without using our wonderful extension system, you can change it to be extension based by first upgrading to the latest micro version running the upgrade scripts: <filename>postgis_upgrade_22_minor.sql</filename>,<filename>raster_upgrade_22_minor.sql</filename>,<filename>topology_upgrade_22_minor.sql</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:587
+#: installation.xml:636
 #, no-c-format
 msgid "If you installed postgis without raster support, you'll need to install raster support first (using the full <filename>rtpostgis.sql</filename>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:588
+#: installation.xml:637
 #, no-c-format
 msgid "Then you can run the below commands to package the functions in their respective extension."
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:589
+#: installation.xml:638
 #, no-c-format
 msgid ""
       "CREATE EXTENSION postgis FROM unpackaged;\n"
-      "CREATE EXTENSION postgis_topology FROM unpackaged;"
+      "CREATE EXTENSION postgis_topology FROM unpackaged;\n"
+      "CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:595
+#: installation.xml:644
 #, no-c-format
 msgid "Testing"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:597
+#: installation.xml:646
 #, no-c-format
 msgid "If you wish to test the PostGIS build, run"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:602
+#: installation.xml:651
 #, no-c-format
 msgid "make check"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:605
+#: installation.xml:654
 #, no-c-format
 msgid "The above command will run through various checks and regression tests using the generated library against an actual PostgreSQL database."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:611
+#: installation.xml:660
 #, no-c-format
 msgid "If you configured PostGIS using non-standard PostgreSQL, GEOS, or Proj4 locations, you may need to add their library locations to the LD_LIBRARY_PATH environment variable."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:619
+#: installation.xml:668
 #, no-c-format
 msgid "Currently, the <command>make check</command> relies on the <code>PATH</code> and <code>PGPORT</code> environment variables when performing the checks - it does <emphasis>not</emphasis> use the PostgreSQL version that may have been specified using the configuration parameter <command>--with-pgconfig</command>. So make sure to modify your PATH to match the detected PostgreSQL installation during configuration or be prepared to deal with the impending headaches."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:631
+#: installation.xml:680
 #, no-c-format
 msgid "If successful, the output of the test should be similar to the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:636
+#: installation.xml:685
 #, no-c-format
 msgid ""
       "CUnit - A Unit testing framework for C - Version 2.1-0\n"
-      "         http://cunit.sourceforge.net/\n"
+      "     http://cunit.sourceforge.net/\n"
       "\n"
       "\n"
       "Suite: print_suite\n"
@@ -670,15 +780,22 @@ msgid ""
       "  Test: test_lwprint_optional_format ... passed\n"
       "  Test: test_lwprint_oddball_formats ... passed\n"
       "  Test: test_lwprint_bad_formats ... passed\n"
-      "Suite: Misc Suite\n"
+      "Suite: misc\n"
       "  Test: test_misc_force_2d ... passed\n"
       "  Test: test_misc_simplify ... passed\n"
       "  Test: test_misc_count_vertices ... passed\n"
       "  Test: test_misc_area ... passed\n"
       "  Test: test_misc_wkb ... passed\n"
-      "Suite: PointArray Suite\n"
+      "Suite: ptarray\n"
       "  Test: test_ptarray_append_point ... passed\n"
       "  Test: test_ptarray_append_ptarray ... passed\n"
+      "  Test: test_ptarray_locate_point ... passed\n"
+      "  Test: test_ptarray_isccw ... passed\n"
+      "  Test: test_ptarray_signed_area ... passed\n"
+      "  Test: test_ptarray_desegmentize ... passed\n"
+      "  Test: test_ptarray_insert_point ... passed\n"
+      "  Test: test_ptarray_contains_point ... passed\n"
+      "  Test: test_ptarrayarc_contains_point ... passed\n"
       "Suite: PostGIS Computational Geometry Suite\n"
       "  Test: test_lw_segment_side ... passed\n"
       "  Test: test_lw_segment_intersects ... passed\n"
@@ -694,723 +811,1157 @@ msgid ""
       "  Test: test_geohash_point ... passed\n"
       "  Test: test_geohash_precision ... passed\n"
       "  Test: test_geohash ... passed\n"
+      "  Test: test_geohash_point_as_int ... passed\n"
       "  Test: test_isclosed ... passed\n"
+      "Suite: buildarea\n"
+      "  Test: buildarea1 ... passed\n"
+      "  Test: buildarea2 ... passed\n"
+      "  Test: buildarea3 ... passed\n"
+      "  Test: buildarea4 ... passed\n"
+      "  Test: buildarea4b ... passed\n"
+      "  Test: buildarea5 ... passed\n"
+      "  Test: buildarea6 ... passed\n"
+      "  Test: buildarea7 ... passed\n"
+      "Suite: clean\n"
+      "  Test: test_lwgeom_make_valid ... passed\n"
       "Suite: PostGIS Measures Suite\n"
       "  Test: test_mindistance2d_tolerance ... passed\n"
       "  Test: test_rect_tree_contains_point ... passed\n"
       "  Test: test_rect_tree_intersects_tree ... passed\n"
       "  Test: test_lwgeom_segmentize2d ... passed\n"
+      "  Test: test_lwgeom_locate_along ... passed\n"
+      "  Test: test_lw_dist2d_pt_arc ... passed\n"
+      "  Test: test_lw_dist2d_seg_arc ... passed\n"
+      "  Test: test_lw_dist2d_arc_arc ... passed\n"
+      "  Test: test_lw_arc_length ... passed\n"
+      "  Test: test_lw_dist2d_pt_ptarrayarc ... passed\n"
+      "  Test: test_lw_dist2d_ptarray_ptarrayarc ... passed\n"
+      "Suite: node\n"
+      "  Test: test_lwgeom_node ... passed\n"
       "Suite: WKT Out Suite\n"
       "  Test: test_wkt_out_point ... passed\n"
       "  Test: test_wkt_out_linestring ... passed\n"
       "  Test: test_wkt_out_polygon ... passed\n"
       "  Test: test_wkt_out_multipoint ... passed\n"
       "  Test: test_wkt_out_multilinestring ... passed\n"
+      "  Test: test_wkt_out_multipolygon ... passed\n"
+      "  Test: test_wkt_out_collection ... passed\n"
+      "  Test: test_wkt_out_circularstring ... passed\n"
+      "  Test: test_wkt_out_compoundcurve ... passed\n"
+      "  Test: test_wkt_out_curvpolygon ... passed\n"
+      "  Test: test_wkt_out_multicurve ... passed\n"
+      "  Test: test_wkt_out_multisurface ... passed\n"
+      "Suite: WKT In Suite\n"
+      "  Test: test_wkt_in_point ... passed\n"
+      "  Test: test_wkt_in_linestring ... passed\n"
+      "  Test: test_wkt_in_polygon ... passed\n"
+      "  Test: test_wkt_in_multipoint ... passed\n"
+      "  Test: test_wkt_in_multilinestring ... passed\n"
+      "  Test: test_wkt_in_multipolygon ... passed\n"
+      "  Test: test_wkt_in_collection ... passed\n"
+      "  Test: test_wkt_in_circularstring ... passed\n"
+      "  Test: test_wkt_in_compoundcurve ... passed\n"
+      "  Test: test_wkt_in_curvpolygon ... passed\n"
+      "  Test: test_wkt_in_multicurve ... passed\n"
+      "  Test: test_wkt_in_multisurface ... passed\n"
+      "  Test: test_wkt_in_tin ... passed\n"
+      "  Test: test_wkt_in_polyhedralsurface ... passed\n"
+      "  Test: test_wkt_in_errlocation ... passed\n"
+      "Suite: WKB Out Suite\n"
+      "  Test: test_wkb_out_point ... passed\n"
+      "  Test: test_wkb_out_linestring ... passed\n"
+      "  Test: test_wkb_out_polygon ... passed\n"
+      "  Test: test_wkb_out_multipoint ... passed\n"
+      "  Test: test_wkb_out_multilinestring ... passed\n"
+      "  Test: test_wkb_out_multipolygon ... passed\n"
+      "  Test: test_wkb_out_collection ... passed\n"
+      "  Test: test_wkb_out_circularstring ... passed\n"
+      "  Test: test_wkb_out_compoundcurve ... passed\n"
+      "  Test: test_wkb_out_curvpolygon ... passed\n"
+      "  Test: test_wkb_out_multicurve ... passed\n"
+      "  Test: test_wkb_out_multisurface ... passed\n"
+      "  Test: test_wkb_out_polyhedralsurface ... passed\n"
       ":\n"
+      "Suite: Geodetic Suite\n"
+      "  Test: test_sphere_direction ... passed\n"
+      "  Test: test_sphere_project ... passed\n"
+      "  Test: test_lwgeom_area_sphere ... passed\n"
+      "  Test: test_signum ... passed\n"
+      "  Test: test_gbox_from_spherical_coordinates ... passed\n"
       ":\n"
-      "--Run Summary: Type      Total     Ran  Passed  Failed\n"
-      "               suites       17      17     n/a       0\n"
-      "               tests       143     143     143       0\n"
-      "               asserts    1228    1228    1228       0\n"
+      "  Test: test_geos_noop ... passed\n"
+      "Suite: Internal Spatial Trees\n"
+      "  Test: test_tree_circ_create ... passed\n"
+      "  Test: test_tree_circ_pip ... passed\n"
+      "  Test: test_tree_circ_pip2 ... passed\n"
+      "  Test: test_tree_circ_distance ... passed\n"
+      "Suite: triangulate\n"
+      "  Test: test_lwgeom_delaunay_triangulation ... passed\n"
+      "Suite: stringbuffer\n"
+      "  Test: test_stringbuffer_append ... passed\n"
+      "  Test: test_stringbuffer_aprintf ... passed\n"
+      "Suite: surface\n"
+      "  Test: triangle_parse ... passed\n"
+      "  Test: tin_parse ... passed\n"
+      "  Test: polyhedralsurface_parse ... passed\n"
+      "  Test: surface_dimension ... passed\n"
+      "Suite: homogenize\n"
+      "  Test: test_coll_point ... passed\n"
+      "  Test: test_coll_line ... passed\n"
+      "  Test: test_coll_poly ... passed\n"
+      "  Test: test_coll_coll ... passed\n"
+      "  Test: test_geom ... passed\n"
+      "  Test: test_coll_curve ... passed\n"
+      "Suite: force_sfs\n"
+      "  Test: test_sfs_11 ... passed\n"
+      "  Test: test_sfs_12 ... passed\n"
+      "  Test: test_sqlmm ... passed\n"
+      "Suite: out_gml\n"
+      "  Test: out_gml_test_precision ... passed\n"
+      "  Test: out_gml_test_srid ... passed\n"
+      "  Test: out_gml_test_dims ... passed\n"
+      "  Test: out_gml_test_geodetic ... passed\n"
+      "  Test: out_gml_test_geoms ... passed\n"
+      "  Test: out_gml_test_geoms_prefix ... passed\n"
+      "  Test: out_gml_test_geoms_nodims ... passed\n"
+      "  Test: out_gml2_extent ... passed\n"
+      "  Test: out_gml3_extent ... passed\n"
+      "Suite: KML Out Suite\n"
+      "  Test: out_kml_test_precision ... passed\n"
+      "  Test: out_kml_test_dims ... passed\n"
+      "  Test: out_kml_test_geoms ... passed\n"
+      "  Test: out_kml_test_prefix ... passed\n"
+      "Suite: GeoJson Out Suite\n"
+      "  Test: out_geojson_test_precision ... passed\n"
+      "  Test: out_geojson_test_dims ... passed\n"
+      "  Test: out_geojson_test_srid ... passed\n"
+      "  Test: out_geojson_test_bbox ... passed\n"
+      "  Test: out_geojson_test_geoms ... passed\n"
+      "Suite: SVG Out Suite\n"
+      "  Test: out_svg_test_precision ... passed\n"
+      "  Test: out_svg_test_dims ... passed\n"
+      "  Test: out_svg_test_relative ... passed\n"
+      "  Test: out_svg_test_geoms ... passed\n"
+      "  Test: out_svg_test_srid ... passed\n"
+      "Suite: X3D Out Suite\n"
+      "  Test: out_x3d3_test_precision ... passed\n"
+      "  Test: out_x3d3_test_geoms ... passed\n"
       "\n"
+      "--Run Summary: Type      Total     Ran  Passed  Failed\n"
+      "               suites       27      27     n/a       0\n"
+      "               tests       198     198     198       0\n"
+      "               asserts    1728    1728    1728       0\n"
       "\n"
-      "Creating spatial db postgis_reg\n"
-      " Postgis 2.0.0SVN - 2011-01-11 15:33:37\n"
-      "   GEOS: 3.3.0-CAPI-1.7.0\n"
-      "   PROJ: Rel. 4.6.1, 21 August 2008\n"
+      "Creating database 'postgis_reg' \n"
+      "Loading PostGIS into 'postgis_reg' \n"
+      "PostgreSQL 9.3beta1 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.4.5-8) 4.4.5, 64-bit\n"
+      "  Postgis 2.1.0SVN - r11415 - 2013-05-11 02:48:21\n"
+      "  GEOS: 3.4.0dev-CAPI-1.8.0 r3797\n"
+      "  PROJ: Rel. 4.7.1, 23 September 2009\n"
       "\n"
       "Running tests\n"
       "\n"
-      " loader/Point.............. ok\n"
-      " loader/PointM.............. ok\n"
-      " loader/PointZ.............. ok\n"
-      " loader/MultiPoint.............. ok\n"
-      " loader/MultiPointM.............. ok\n"
-      " loader/MultiPointZ.............. ok\n"
-      " loader/Arc.............. ok\n"
-      " loader/ArcM.............. ok\n"
-      " loader/ArcZ.......... ok\n"
-      " loader/Polygon.............. ok\n"
-      " loader/PolygonM.............. ok\n"
-      " loader/PolygonZ.............. ok\n"
-      " regress. ok\n"
-      " regress_index. ok\n"
-      " regress_index_nulls. ok\n"
-      " lwgeom_regress. ok\n"
-      " regress_lrs. ok\n"
-      " removepoint. ok\n"
-      " setpoint. ok\n"
-      " simplify. ok\n"
-      " snaptogrid. ok\n"
-      " affine. ok\n"
-      " measures. ok\n"
-      " long_xact. ok\n"
-      " ctors. ok\n"
-      " sql-mm-serialize. ok\n"
-      " sql-mm-circularstring. ok\n"
-      " sql-mm-compoundcurve. ok\n"
-      " sql-mm-curvepoly. ok\n"
-      " sql-mm-general. ok\n"
-      " sql-mm-multicurve. ok\n"
-      " sql-mm-multisurface. ok\n"
-      " polyhedralsurface. ok\n"
-      " out_geometry. ok\n"
-      " out_geography. ok\n"
-      " in_gml. ok\n"
-      " in_kml. ok\n"
-      " iscollection. ok\n"
-      " regress_ogc. ok\n"
-      " regress_ogc_cover. ok\n"
-      " regress_ogc_prep. ok\n"
-      " regress_bdpoly. ok\n"
-      " regress_proj. ok\n"
-      " dump. ok\n"
-      " dumppoints. ok\n"
-      " wmsservers_new. ok\n"
-      " tickets. ok\n"
-      " remove_repeated_points. ok\n"
-      " split. ok\n"
-      " relatematch. ok\n"
-      " regress_buffer_params. ok\n"
-      " hausdorff. ok\n"
-      " clean. ok\n"
-      " sharedpaths. ok\n"
-      " snap. ok\n"
+      " loader/Point .............. ok \n"
+      " loader/PointM .............. ok \n"
+      " loader/PointZ .............. ok \n"
+      " loader/MultiPoint .............. ok \n"
+      " loader/MultiPointM .............. ok \n"
+      " loader/MultiPointZ .............. ok \n"
+      " loader/Arc .............. ok \n"
+      " loader/ArcM .............. ok \n"
+      " loader/ArcZ .............. ok \n"
+      " loader/Polygon .............. ok \n"
+      " loader/PolygonM .............. ok \n"
+      " loader/PolygonZ .............. ok \n"
+      " loader/TSTPolygon ......... ok \n"
+      " loader/TSIPolygon ......... ok \n"
+      " loader/TSTIPolygon ......... ok \n"
+      " loader/PointWithSchema ..... ok \n"
+      " loader/NoTransPoint ......... ok \n"
+      " loader/NotReallyMultiPoint ......... ok \n"
+      " loader/MultiToSinglePoint ......... ok \n"
+      " loader/ReprojectPts ........ ok \n"
+      " loader/ReprojectPtsGeog ........ ok \n"
+      " loader/Latin1 .... ok \n"
+      " binary .. ok \n"
+      " regress .. ok \n"
+      " regress_index .. ok \n"
+      " regress_index_nulls .. ok \n"
+      " regress_selectivity .. ok \n"
+      " lwgeom_regress .. ok \n"
+      " regress_lrs .. ok \n"
+      " removepoint .. ok \n"
+      " setpoint .. ok \n"
+      " simplify .. ok \n"
+      " snaptogrid .. ok \n"
+      " summary .. ok \n"
+      " affine .. ok \n"
+      " empty .. ok \n"
+      " measures .. ok \n"
+      " legacy .. ok \n"
+      " long_xact .. ok \n"
+      " ctors .. ok \n"
+      " sql-mm-serialize .. ok \n"
+      " sql-mm-circularstring .. ok \n"
+      " sql-mm-compoundcurve .. ok \n"
+      " sql-mm-curvepoly .. ok \n"
+      " sql-mm-general .. ok \n"
+      " sql-mm-multicurve .. ok \n"
+      " sql-mm-multisurface .. ok \n"
+      " polyhedralsurface .. ok \n"
+      " polygonize .. ok \n"
+      " postgis_type_name .. ok \n"
+      " geography .. ok \n"
+      " out_geometry .. ok \n"
+      " out_geography .. ok \n"
+      " in_geohash .. ok \n"
+      " in_gml .. ok \n"
+      " in_kml .. ok \n"
+      " iscollection .. ok \n"
+      " regress_ogc .. ok \n"
+      " regress_ogc_cover .. ok \n"
+      " regress_ogc_prep .. ok \n"
+      " regress_bdpoly .. ok \n"
+      " regress_proj .. ok \n"
+      " regress_management .. ok \n"
+      " dump .. ok \n"
+      " dumppoints .. ok \n"
+      " boundary .. ok \n"
+      " wmsservers .. ok \n"
+      " wkt .. ok \n"
+      " wkb .. ok \n"
+      " tickets .. ok \n"
+      " typmod .. ok \n"
+      " remove_repeated_points .. ok \n"
+      " split .. ok \n"
+      " relate .. ok \n"
+      " bestsrid .. ok \n"
+      " concave_hull .. ok \n"
+      " hausdorff .. ok \n"
+      " regress_buffer_params .. ok \n"
+      " offsetcurve .. ok \n"
+      " relatematch .. ok \n"
+      " isvaliddetail .. ok \n"
+      " sharedpaths .. ok \n"
+      " snap .. ok \n"
+      " node .. ok \n"
+      " unaryunion .. ok \n"
+      " clean .. ok \n"
+      " relate_bnr .. ok \n"
+      " delaunaytriangles .. ok \n"
+      " in_geojson .. ok \n"
+      " uninstall .. ok (4112)\n"
       "\n"
-      "Run tests: 55\n"
-      "Failed: 0"
+      "Run tests: 90"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:689
+#, no-c-format
+msgid "Installation"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:642
+#: installation.xml:691
 #, no-c-format
 msgid "To install PostGIS, type"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:647
+#: installation.xml:696
 #, no-c-format
 msgid "make install"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:650
+#: installation.xml:699
 #, no-c-format
 msgid "This will copy the PostGIS installation files into their appropriate subdirectory specified by the <command>--prefix</command> configuration parameter. In particular:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:658
+#: installation.xml:707
 #, no-c-format
 msgid "The loader and dumper binaries are installed in <filename>[prefix]/bin</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:665
+#: installation.xml:714
 #, no-c-format
 msgid "The SQL files, such as <filename>postgis.sql</filename>, are installed in <filename>[prefix]/share/contrib</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:672
+#: installation.xml:721
 #, no-c-format
 msgid "The PostGIS libraries are installed in <filename>[prefix]/lib</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:679
+#: installation.xml:728
 #, no-c-format
 msgid "If you previously ran the <command>make comments</command> command to generate the <filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</filename> file, install the sql file by running"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:686
+#: installation.xml:735
 #, no-c-format
 msgid "make comments-install"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:690
+#: installation.xml:739
 #, no-c-format
 msgid "<filename>postgis_comments.sql</filename>, <filename>raster_comments.sql</filename>, <filename>topology_comments.sql</filename> was separated from the typical build and installation targets since with it comes the extra dependency of <command>xsltproc</command>."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:700
+#: installation.xml:749
 #, no-c-format
 msgid "Create a spatially-enabled database on PostgreSQL lower than 9.1"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:702
+#: installation.xml:751
 #, no-c-format
 msgid "The first step in creating a PostGIS database is to create a simple PostgreSQL database."
 msgstr ""
 
 #. Tag: command
-#: installation.xml:708 installation.xml:805
+#: installation.xml:757 installation.xml:854
 #, no-c-format
 msgid "createdb [yourdatabase]"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:711
+#: installation.xml:760
 #, no-c-format
 msgid "Many of the PostGIS functions are written in the PL/pgSQL procedural language. As such, the next step to create a PostGIS database is to enable the PL/pgSQL language in your new database. This is accomplish by the command below command. For PostgreSQL 8.4+, this is generally already installed"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:719
+#: installation.xml:768
 #, no-c-format
 msgid "createlang plpgsql [yourdatabase]"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:722
+#: installation.xml:771
 #, no-c-format
 msgid "Now load the PostGIS object and function definitions into your database by loading the <filename>postgis.sql</filename> definitions file (located in <filename>[prefix]/share/contrib</filename> as specified during the configuration step)."
 msgstr ""
 
 #. Tag: command
-#: installation.xml:730
+#: installation.xml:779
 #, no-c-format
 msgid "psql -d [yourdatabase] -f postgis.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:733
+#: installation.xml:782
 #, no-c-format
 msgid "For a complete set of EPSG coordinate system definition identifiers, you can also load the <filename>spatial_ref_sys.sql</filename> definitions file and populate the <varname>spatial_ref_sys</varname> table. This will permit you to perform ST_Transform() operations on geometries."
 msgstr ""
 
 #. Tag: command
-#: installation.xml:741
+#: installation.xml:790
 #, no-c-format
 msgid "psql -d [yourdatabase] -f spatial_ref_sys.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:744
+#: installation.xml:793
 #, no-c-format
 msgid "If you wish to add comments to the PostGIS functions, the final step is to load the <filename>postgis_comments.sql</filename> into your spatial database. The comments can be viewed by simply typing <command>\\dd [function_name]</command> from a <command>psql</command> terminal window."
 msgstr ""
 
 #. Tag: command
-#: installation.xml:752
+#: installation.xml:801
 #, no-c-format
 msgid "psql -d [yourdatabase] -f postgis_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:755
+#: installation.xml:804
 #, no-c-format
 msgid "Install raster support"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:760
+#: installation.xml:809
 #, no-c-format
 msgid "psql -d [yourdatabase] -f rtpostgis.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:763
+#: installation.xml:812
 #, no-c-format
 msgid "Install raster support comments. This will provide quick help info for each raster function using psql or PgAdmin or any other PostgreSQL tool that can show function comments"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:769
+#: installation.xml:818
 #, no-c-format
 msgid "psql -d [yourdatabase] -f raster_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:771
+#: installation.xml:820
 #, no-c-format
 msgid "Install topology support"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:776
+#: installation.xml:825
 #, no-c-format
 msgid "psql -d [yourdatabase] -f topology/topology.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:779
+#: installation.xml:828
 #, no-c-format
 msgid "Install topology support comments. This will provide quick help info for each topology function / type using psql or PgAdmin or any other PostgreSQL tool that can show function comments"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:785
+#: installation.xml:834
 #, no-c-format
 msgid "psql -d [yourdatabase] -f topology/topology_comments.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:788 installation.xml:825
+#: installation.xml:837 installation.xml:874
 #, no-c-format
 msgid "If you plan to restore an old backup from prior versions in this new db, run:"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:789 installation.xml:826
+#: installation.xml:838 installation.xml:875
 #, no-c-format
 msgid "psql -d [yourdatabase] -f legacy.sql"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:790
+#: installation.xml:839
 #, no-c-format
 msgid "There is an alternative <filename>legacy_minimal.sql</filename> you can run instead which will install barebones needed to recover tables and work with apps like MapServer and GeoServer. If you have views that use things like distance / length etc, you'll need the full blown <filename>legacy.sql</filename>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:793 installation.xml:828
+#: installation.xml:842 installation.xml:877
 #, no-c-format
 msgid "You can later run <filename>uninstall_legacy.sql</filename> to get rid of the deprecated functions after you are done with restoring and cleanup."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:797
+#: installation.xml:846
 #, no-c-format
 msgid "Creating a spatial database using EXTENSIONS"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:799
+#: installation.xml:848
 #, no-c-format
 msgid "If you are using PostgreSQL 9.1+ and have compiled and installed the extensions/ postgis modules, you can create a spatial database the new way."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:808
+#: installation.xml:857
 #, no-c-format
 msgid "The core postgis extension installs PostGIS geometry, geography, raster, spatial_ref_sys and all the functions and comments with a simple: <programlisting>CREATE EXTENSION postgis;</programlisting> command."
 msgstr ""
 
 #. Tag: command
-#: installation.xml:814
+#: installation.xml:863
 #, no-c-format
 msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis;\""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:817
+#: installation.xml:866
 #, no-c-format
 msgid "Topology is packaged as a separate extension and installable with command:"
 msgstr ""
 
 #. Tag: command
-#: installation.xml:822
+#: installation.xml:871
 #, no-c-format
 msgid "psql -d [yourdatabase] -c \"CREATE EXTENSION postgis_topology;\""
 msgstr ""
 
 #. Tag: title
-#: installation.xml:832
+#: installation.xml:880
+#, no-c-format
+msgid "Installing and Using the address standardizer"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:881
+#, no-c-format
+msgid "The <code>address_standardizer</code> extension used to be a separate package that required separate download. From PostGIS 2.2 on, it is now bundled in. For more information about the address_standardize, what it does, and how to configure it for your needs, refer to <xref linkend=\"Address_Standardizer\"/>."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:883
+#, no-c-format
+msgid "This standardizer can be used in conjunction with the PostGIS packaged tiger geocoder extension as a replacement for the <xref linkend=\"Normalize_Address\"/> discussed. To use as replacement refer to <xref linkend=\"tiger_pagc_address_standardizing\"/>. You can also use it as a building block for your own geocoder or use it to standardize your addresses for easier compare of addresses."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:887
+#, no-c-format
+msgid "The address standardizer relies on PCRE which is usually already installed on many Nix systems, but you can download the latest at: <ulink url=\"http://www.pcre.org\">http://www.pcre.org</ulink>. If during <xref linkend=\"installation_configuration\"/>, PCRE is found, then the address standardizer extension will automatically be built. If you have a custom pcre install you want to use instead, pass to configure <code>--with-pcredir=/path/to/pcre</code> where <filename>/path/to/pcr [...]
+msgstr ""
+
+#. Tag: para
+#: installation.xml:890
+#, no-c-format
+msgid "For Windows users, the PostGIS 2.1+ bundle is packaged with the address_standardizer already so no need to compile and can move straight to <code>CREATE EXTENSION</code> step."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:893
+#, no-c-format
+msgid "Once you have installed, you can connect to your database and run the SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:894
+#, no-c-format
+msgid "CREATE EXTENSION address_standardizer;"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:896
+#, no-c-format
+msgid "The following test requires no rules, gaz, or lex tables"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:897
+#, no-c-format
+msgid ""
+      "SELECT num, street, city, state, zip \n"
+      " FROM parse_address('1 Devonshire Place, Boston, MA 02109');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:898
+#, no-c-format
+msgid "Output should be"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:899
+#, no-c-format
+msgid ""
+      "num |         street         |  city  | state |  zip\n"
+      "-----+------------------------+--------+-------+-------\n"
+      " 1   | Devonshire Place PH301 | Boston | MA    | 02109"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:901
+#, no-c-format
+msgid "Installing Regex::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:902
+#, no-c-format
+msgid "Perl Regex:Assemble is no longer needed for compiling address_standardizer extension since the files it generates are part of the source tree. However if you need to edit the <filename>usps-st-city-orig.txt</filename> or <filename>usps-st-city-orig.txt usps-st-city-adds.tx</filename>, you need to rebuild <filename>parseaddress-stcities.h</filename> which does require Regex:Assemble."
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:903
+#, no-c-format
+msgid "cpan Regexp::Assemble"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:904
+#, no-c-format
+msgid "or if you are on Ubuntu / Debian you might need to do"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:905
+#, no-c-format
+msgid "sudo perl -MCPAN -e \"install Regexp::Assemble\""
+msgstr ""
+
+#. Tag: title
+#: installation.xml:910
 #, no-c-format
 msgid "Installing, Upgrading Tiger Geocoder and loading data"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:834
+#: installation.xml:912
 #, no-c-format
-msgid "The Tiger geocoder does not get installed / upgraded with the core PostGIS scripts because it is only of regional use. In fact nothing located in the extras folder is installed by default with the regular PostGIS install / upgrade. Extras like Tiger geocoder may also not be packaged in your PostGIS distribution, but will always be available in the postgis-&last_release_version;.tar.gz file. The instructions provided here are also available in the <filename>extras/tiger_geocoder/ti [...]
+msgid "Extras like Tiger geocoder may not be packaged in your PostGIS distribution, but will always be available in the postgis-&last_release_version;.tar.gz file. The instructions provided here are also available in the <filename>extras/tiger_geocoder/tiger_2011/README</filename>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:836
+#: installation.xml:913
 #, no-c-format
 msgid "If you are on Windows and you don't have tar installed, you can use <ulink url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink> to unzip the PostGIS tarball."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:838
+#: installation.xml:915
 #, no-c-format
-msgid "Tiger Geocoder Enabling your PostGIS database"
+msgid "Tiger Geocoder Enabling your PostGIS database: Using Extension"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:839
+#: installation.xml:916
 #, no-c-format
-msgid "First install PostGIS using the prior instructions."
+msgid "If you are using PostgreSQL 9.1+ and PostGIS 2.1.0, you can take advantage of the new extension model for installing tiger geocoder. To do so:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:843 installation.xml:870
+#: installation.xml:918
 #, no-c-format
-msgid "If you don't have an extras folder, download <ulink url=\"http://www.postgis.org/download/postgis-&last_release_version;.tar.gz\">http://www.postgis.org/download/postgis-&last_release_version;.tar.gz</ulink>"
+msgid "First get binaries for PostGIS 2.1.0 or compile and install as usual. This should install the necessary extension files as well for tiger geocoder."
 msgstr ""
 
-#. Tag: command
-#: installation.xml:848 installation.xml:875
+#. Tag: para
+#: installation.xml:919
 #, no-c-format
-msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgid "Connect to your database via psql or pgAdmin or some other tool and run the following SQL commands. Note that if you are installing in a database that already has postgis, you don't need to do the first step. If you have <varname>fuzzystrmatch</varname> extension already installed, you don't need to do the second step either."
 msgstr ""
 
-#. Tag: command
-#: installation.xml:852 installation.xml:879
+#. Tag: programlisting
+#: installation.xml:920
 #, no-c-format
-msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgid ""
+      "CREATE EXTENSION postgis;                \n"
+      "CREATE EXTENSION fuzzystrmatch;\n"
+      "CREATE EXTENSION postgis_tiger_geocoder;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:855
+#: installation.xml:921
 #, no-c-format
-msgid "Edit the <filename>tiger_loader.sql</filename> to the paths of your executables server etc."
+msgid "To confirm your install is working correctly, run this sql in your database:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:922
+#, no-c-format
+msgid ""
+      "SELECT na.address, na.streetname,na.streettypeabbrev, na.zip\n"
+      "        FROM normalize_address('1 Devonshire Place, Boston, MA 02109') AS na;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:856
+#: installation.xml:923
+#, no-c-format
+msgid "Which should output"
+msgstr ""
+
+#. Tag: screen
+#: installation.xml:924
 #, no-c-format
-msgid "If you are installing Tiger geocoder for the first time edit either the <filename>create_geocode.bat</filename> script If you are on windows or the <filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with your PostgreSQL specific settings and run the corresponding script from the commandline. If you don't edit this file, it will just contain common case locations of items. You can edit the generated script after the fact when you run the <xref linkend=\"Loader_ [...]
+msgid ""
+      "address | streetname | streettypeabbrev |  zip\n"
+      "---------+------------+------------------+-------\n"
+      "           1 | Devonshire | Pl               | 02109"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:859
+#: installation.xml:926
 #, no-c-format
-msgid "Verify that you now have a <varname>tiger</varname> schema in your database and that it is part of your database search_path. If it is not, add it with a command something along the line of:"
+msgid "Create a new record in <varname>tiger.loader_platform</varname> table with the paths of your executables and server."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:927
+#, no-c-format
+msgid "So for example to create a profile called debbie that follows <code>sh</code> convention. You would do:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:859
+#: installation.xml:928
 #, no-c-format
-msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
+msgid ""
+      "INSERT INTO tiger.loader_platform(os, declare_sect, pgbin, wget, unzip_command, psql, path_sep, \n"
+      "                   loader, environ_set_command, county_process_command)\n"
+      "SELECT 'debbie', declare_sect, pgbin, wget, unzip_command, psql, path_sep, \n"
+      "           loader, environ_set_command, county_process_command\n"
+      "  FROM tiger.loader_platform\n"
+      "  WHERE os = 'sh';"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:860
+#: installation.xml:929
 #, no-c-format
-msgid "The normalizing address functionality works more or less without any data except for tricky addresses. Run this test and verify things look like this:"
+msgid "And then edit the paths in the <emphasis>declare_sect</emphasis> column to those that fit Debbie's pg, unzip,shp2pgsql, psql, etc path locations."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:931
+#, no-c-format
+msgid "If you don't edit this <varname>loader_platform</varname> table, it will just contain common case locations of items and you'll have to edit the generated script after the script is generated."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:933
+#, no-c-format
+msgid "Then run the <xref linkend=\"Loader_Generate_Nation_Script\"/> and <xref linkend=\"Loader_Generate_Script\"/> SQL functions make sure to use the name of your custom profile. So for example to do the nation load using our new profile we would:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:861
+#: installation.xml:934
 #, no-c-format
-msgid ""
-      "SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, Nevada 89101')) As pretty_address;\n"
-      "pretty_address\n"
-      "---------------------------------------\n"
-      "202 E Fremont St, Las Vegas, NV 89101"
+msgid "SELECT Loader_Generate_Nation_Script('debbie');"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:865
+#: installation.xml:937
 #, no-c-format
-msgid "Upgrading your Tiger Geocoder Install"
+msgid "Converting a Tiger Geocoder Regular Install to Extension Model"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:866
+#: installation.xml:938
 #, no-c-format
-msgid "If you have Tiger Geocoder packaged with 2.0+ already installed, you can upgrade the functions at any time even from an interim tar ball if there are fixes you badly need."
+msgid "If you installed the tiger geocoder without using the extension model, you can convert to the extension model as follows:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:882
+#: installation.xml:940
 #, no-c-format
-msgid "Locate the <filename>upgrade_geocoder.bat</filename> script If you are on windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/Unix/Mac OSX. Edit the file to have your postgis database credientials and run then corresponding script from the commandline."
+msgid "Follow instructions in <xref linkend=\"upgrade_tiger_geocoder\"/> for the non-extension model upgrade."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:885
+#: installation.xml:941
 #, no-c-format
-msgid "Next drop all nation tables and load up the new ones. Generate a drop script with this SQL statement as detailed in <xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>"
+msgid "Connect to your database with psql or pgAdmin and run the following command:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:886
+#: installation.xml:942
 #, no-c-format
-msgid "SELECT drop_nation_tables_generate_script();"
+msgid "CREATE EXTENSION postgis_tiger_geocoder FROM unpackaged;"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:949
+#, no-c-format
+msgid "Tiger Geocoder Enabling your PostGIS database: Not Using Extensions"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:887
+#: installation.xml:950
 #, no-c-format
-msgid "Run the generated drop SQL statements."
+msgid "First install PostGIS using the prior instructions."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:888
+#: installation.xml:954 installation.xml:1014
 #, no-c-format
-msgid "Generate a nation load script with this SELECT statement as detailed in <xref linkend=\"Loader_Generate_Nation_Script\"/>"
+msgid "If you don't have an extras folder, download <ulink url=\"&postgis_download_url;\">&postgis_download_url;</ulink>"
 msgstr ""
 
-#. Tag: emphasis
-#: installation.xml:889
+#. Tag: command
+#: installation.xml:959 installation.xml:1019
 #, no-c-format
-msgid "For windows"
+msgid "tar xvfz postgis-&last_release_version;.tar.gz"
+msgstr ""
+
+#. Tag: command
+#: installation.xml:963 installation.xml:1023
+#, no-c-format
+msgid "cd postgis-&last_release_version;/extras/tiger_geocoder/tiger_2011"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:966
+#, no-c-format
+msgid "Edit the <filename>tiger_loader_2012.sql</filename> to the paths of your executables server etc or alternatively you can update the <varname>loader_platform</varname> table once installed. If you don't edit this file or the <varname>loader_platform</varname> table, it will just contain common case locations of items and you'll have to edit the generated script after the fact when you run the <xref linkend=\"Loader_Generate_Nation_Script\"/> and <xref linkend=\"Loader_Generate_Scri [...]
+msgstr ""
+
+#. Tag: para
+#: installation.xml:968
+#, no-c-format
+msgid "If you are installing Tiger geocoder for the first time edit either the <filename>create_geocode.bat</filename> script If you are on windows or the <filename>create_geocode.sh</filename> if you are on Linux/Unix/Mac OSX with your PostgreSQL specific settings and run the corresponding script from the commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:972
+#, no-c-format
+msgid "Verify that you now have a <varname>tiger</varname> schema in your database and that it is part of your database search_path. If it is not, add it with a command something along the line of:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:890
+#: installation.xml:972
 #, no-c-format
-msgid "SELECT loader_generate_nation_script('windows');"
+msgid "ALTER DATABASE geocoder SET search_path=public, tiger;"
 msgstr ""
 
-#. Tag: emphasis
-#: installation.xml:891
+#. Tag: para
+#: installation.xml:973
 #, no-c-format
-msgid "For unix/linux"
+msgid "The normalizing address functionality works more or less without any data except for tricky addresses. Run this test and verify things look like this:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:892
+#: installation.xml:974
 #, no-c-format
-msgid "SELECT loader_generate_nation_script('sh');"
+msgid ""
+      "SELECT pprint_addy(normalize_address('202 East Fremont Street, Las Vegas, Nevada 89101')) As pretty_address;\n"
+      "pretty_address\n"
+      "---------------------------------------\n"
+      "202 E Fremont St, Las Vegas, NV 89101"
+msgstr ""
+
+#. Tag: title
+#: installation.xml:977
+#, no-c-format
+msgid "Using Address Standardizer Extension with Tiger geocoder"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:893
+#: installation.xml:978
 #, no-c-format
-msgid "Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on how to run the generate script. This only needs to be done once."
+msgid "One of the many complaints of folks is the address normalizer function <xref linkend=\"Normalize_Address\"/> function that normalizes an address for prepping before geocoding. The normalizer is far from perfect and trying to patch its imperfectness takes a vast amount of resources. As such we have integrated with another project that has a much better address standardizer engine. To use this new address_standardizer, you compile the extension as described in <xref linkend=\"instal [...]
 msgstr ""
 
 #. Tag: para
-#: installation.xml:894
+#: installation.xml:981
 #, no-c-format
-msgid "You can have a mix of 2010/2011 state tables and can upgrade each state separately. Before you upgrade a state to 2011, you first need to drop the 2010 tables for that state using <xref linkend=\"Drop_State_Tables_Generate_Script\"/>."
+msgid "Once you install this extension in the same database as you have installed <code>postgis_tiger_geocoder</code>, then the <xref linkend=\"Pagc_Normalize_Address\"/> can be used instead of <xref linkend=\"Normalize_Address\"/>. This extension is tiger agnostic, so can be used with other data sources such as international addresses. The tiger geocoder extension does come packaged with its own custom versions of <xref linkend=\"rulestab\"/> ( <code>tiger.pagc_rules</code>) , <xref lin [...]
 msgstr ""
 
 #. Tag: title
-#: installation.xml:897
+#: installation.xml:984
 #, no-c-format
 msgid "Loading Tiger Data"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:898
+#: installation.xml:985
 #, no-c-format
 msgid "The instructions for loading data are available in a more detailed form in the <filename>extras/tiger_geocoder/tiger_2011/README</filename>. This just includes the general steps."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:899
+#: installation.xml:986
 #, no-c-format
 msgid "The load process downloads data from the census website for the respective nation files, states requested, extracts the files, and then loads each state into its own separate set of state tables. Each state table inherits from the tables defined in <varname>tiger</varname> schema so that its sufficient to just query those tables to access all the data and drop a set of state tables at any time using the <xref linkend=\"Drop_State_Tables_Generate_Script\"/> if you need to reload a  [...]
 msgstr ""
 
 #. Tag: para
-#: installation.xml:901
+#: installation.xml:988
 #, no-c-format
 msgid "In order to be able to load data you'll need the following tools:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:903
+#: installation.xml:990
 #, no-c-format
 msgid "A tool to unzip the zip files from census website."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:904
+#: installation.xml:991
 #, no-c-format
 msgid "For Unix like systems: <varname>unzip</varname> executable which is usually already installed on most Unix like platforms."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:905
+#: installation.xml:992
 #, no-c-format
 msgid "For Windows, 7-zip which is a free compress/uncompress tool you can download from <ulink url=\"http://www.7-zip.org/\">http://www.7-zip.org/</ulink>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:907
+#: installation.xml:994
 #, no-c-format
 msgid "<filename>shp2pgsql</filename> commandline which is installed by default when you install PostGIS."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:908
+#: installation.xml:995
 #, no-c-format
 msgid "<filename>wget</filename> which is a web grabber tool usually installed on most Unix/Linux systems."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:909
+#: installation.xml:996
 #, no-c-format
 msgid "If you are on windows, you can get pre-compiled binaries from <ulink url=\"http://gnuwin32.sourceforge.net/packages/wget.htm\">http://gnuwin32.sourceforge.net/packages/wget.htm</ulink>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:912
+#: installation.xml:999
 #, no-c-format
-msgid "If you are upgrading from tiger_2010, you'll need to first generate and run <xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>. Before you load any state data, you need to load the nation wide data which you do with <xref linkend=\"Loader_Generate_Nation_Script\"/>. Which will generate a loader script for you."
+msgid "If you are upgrading from tiger_2010, you'll need to first generate and run <xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>. Before you load any state data, you need to load the nation wide data which you do with <xref linkend=\"Loader_Generate_Nation_Script\"/>. Which will generate a loader script for you. <xref linkend=\"Loader_Generate_Nation_Script\"/> is a one-time step that should be done for upgrading (from 2010) and for new installs."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:914
+#: installation.xml:1001
 #, no-c-format
-msgid "To load data refer to <xref linkend=\"Loader_Generate_Script\"/> to generate a data load script for your platform for the states you desire. Note that you can install these piecemeal. You don't have to load all the states you want all at once. You can load them as you need them."
+msgid "To load state data refer to <xref linkend=\"Loader_Generate_Script\"/> to generate a data load script for your platform for the states you desire. Note that you can install these piecemeal. You don't have to load all the states you want all at once. You can load them as you need them."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:917
+#: installation.xml:1004
 #, no-c-format
 msgid "After the states you desire have been loaded, make sure to run the: <programlisting>SELECT install_missing_indexes();</programlisting> as described in <xref linkend=\"Install_Missing_Indexes\"/>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:919
+#: installation.xml:1006
 #, no-c-format
 msgid "To test that things are working as they should, try to run a geocode on an address in your state using <xref linkend=\"Geocode\"/>"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:924
+#: installation.xml:1009
+#, no-c-format
+msgid "Upgrading your Tiger Geocoder Install"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1010
+#, no-c-format
+msgid "If you have Tiger Geocoder packaged with 2.0+ already installed, you can upgrade the functions at any time even from an interim tar ball if there are fixes you badly need. This will only work for Tiger geocoder not installed with extensions."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1026
+#, no-c-format
+msgid "Locate the <filename>upgrade_geocoder.bat</filename> script If you are on windows or the <filename>upgrade_geocoder.sh</filename> if you are on Linux/Unix/Mac OSX. Edit the file to have your postgis database credentials."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1029
+#, no-c-format
+msgid "If you are upgrading from 2010 or 2011, make sure to unremark out the loader script line so you get the latest script for loading 2012 data."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1030
+#, no-c-format
+msgid "Then run th corresponding script from the commandline."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1034
+#, no-c-format
+msgid "Next drop all nation tables and load up the new ones. Generate a drop script with this SQL statement as detailed in <xref linkend=\"Drop_Nation_Tables_Generate_Script\"/>"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1035
+#, no-c-format
+msgid "SELECT drop_nation_tables_generate_script();"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1036
+#, no-c-format
+msgid "Run the generated drop SQL statements."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1037
+#, no-c-format
+msgid "Generate a nation load script with this SELECT statement as detailed in <xref linkend=\"Loader_Generate_Nation_Script\"/>"
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:1038
+#, no-c-format
+msgid "For windows"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1039
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('windows');"
+msgstr ""
+
+#. Tag: emphasis
+#: installation.xml:1040
+#, no-c-format
+msgid "For unix/linux"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1041
+#, no-c-format
+msgid "SELECT loader_generate_nation_script('sh');"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1042
+#, no-c-format
+msgid "Refer to <xref linkend=\"tiger_geocoder_loading_data\"/> for instructions on how to run the generate script. This only needs to be done once."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1043
+#, no-c-format
+msgid "You can have a mix of 2010/2011 state tables and can upgrade each state separately. Before you upgrade a state to 2011, you first need to drop the 2010 tables for that state using <xref linkend=\"Drop_State_Tables_Generate_Script\"/>."
+msgstr ""
+
+#. Tag: title
+#: installation.xml:1049
 #, no-c-format
 msgid "Create a spatially-enabled database from a template"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:926
+#: installation.xml:1051
 #, no-c-format
 msgid "Some packaged distributions of PostGIS (in particular the Win32 installers for PostGIS >= 1.1.5) load the PostGIS functions into a template database called <varname>template_postgis</varname>. If the <varname>template_postgis</varname> database exists in your PostgreSQL installation then it is possible for users and/or applications to create spatially-enabled databases using a single command. Note that in both cases, the database user must have been granted the privilege to cre [...]
 msgstr ""
 
 #. Tag: para
-#: installation.xml:937
+#: installation.xml:1062
 #, no-c-format
 msgid "From the shell:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:941
+#: installation.xml:1066
 #, no-c-format
 msgid "# createdb -T template_postgis my_spatial_db"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:943
+#: installation.xml:1068
 #, no-c-format
 msgid "From SQL:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:947
+#: installation.xml:1072
 #, no-c-format
 msgid "postgres=# CREATE DATABASE my_spatial_db TEMPLATE=template_postgis"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:951
+#: installation.xml:1076
 #, no-c-format
 msgid "Upgrading"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:953
+#: installation.xml:1078
 #, no-c-format
 msgid "Upgrading existing spatial databases can be tricky as it requires replacement or introduction of new PostGIS object definitions."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:958
+#: installation.xml:1083
 #, no-c-format
 msgid "Unfortunately not all definitions can be easily replaced in a live database, so sometimes your best bet is a dump/reload process."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:963
+#: installation.xml:1088
 #, no-c-format
 msgid "PostGIS provides a SOFT UPGRADE procedure for minor or bugfix releases, and a HARD UPGRADE procedure for major releases."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:968
+#: installation.xml:1093
 #, no-c-format
 msgid "Before attempting to upgrade PostGIS, it is always worth to backup your data. If you use the -Fc flag to pg_dump you will always be able to restore the dump with a HARD UPGRADE."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:975
+#: installation.xml:1100
 #, no-c-format
 msgid "Soft upgrade"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:977
+#: installation.xml:1102
 #, no-c-format
 msgid "If you installed your database using extensions, you'll need to upgrade using the extension model as well. If you installed using the old sql script way, then you should upgrade using the sql script way. Please refer to the appropriate."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:980
+#: installation.xml:1105
 #, no-c-format
 msgid "Soft Upgrade Pre 9.1+ or without extensions"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:981
+#: installation.xml:1106
 #, no-c-format
 msgid "This section applies only to those who installed PostGIS not using extensions. If you have extensions and try to upgrade with this approach you'll get messages like:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:982
+#: installation.xml:1107
 #, no-c-format
 msgid "can't drop ... because postgis extension depends on it"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:983
+#: installation.xml:1108
 #, no-c-format
-msgid "After compiling you should find several <filename>postgis_upgrade*.sql</filename> files. Install the one for your version of PostGIS. For example <filename>postgis_upgrade_13_to_15.sql</filename> should be used if you are upgrading from PostGIS 1.3 to 1.5. If you are moving from PostGIS 1.* to PostGIS 2.* or from PostGIS 2.* prior to r7409, you need to do a HARD UPGRADE."
+msgid "After compiling and installing (make install) you should find a <filename>postgis_upgrade.sql</filename> and <filename>rtpostgis_upgrade.sql</filename> in the installation folders. For example <filename>/usr/share/postgresql/9.3/contrib/postgis_upgrade.sql</filename>. Install the <filename>postgis_upgrade.sql</filename>. If you have raster functionality installed, you will also need to install the <filename>/usr/share/postgresql/9.3/contrib/postgis_upgrade.sql</filename>. If you a [...]
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:989
+#: installation.xml:1112
 #, no-c-format
-msgid "psql -f postgis_upgrade_20_minor.sql -d your_spatial_database"
+msgid "psql -f postgis_upgrade.sql -d your_spatial_database"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:991
+#: installation.xml:1114
 #, no-c-format
 msgid "The same procedure applies to raster and topology extensions, with upgrade files named <filename>rtpostgis_upgrade*.sql</filename> and <filename>topology_upgrade*.sql</filename> respectively. If you need them:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:999
+#: installation.xml:1122
 #, no-c-format
-msgid "psql -f rtpostgis_upgrade_20_minor.sql -d your_spatial_database"
+msgid "psql -f rtpostgis_upgrade.sql -d your_spatial_database"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1000
+#: installation.xml:1123
 #, no-c-format
-msgid "psql -f topology_upgrade_20_minor.sql -d your_spatial_database"
+msgid "psql -f topology_upgrade.sql -d your_spatial_database"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1003
+#: installation.xml:1126
 #, no-c-format
 msgid "If you can't find the <filename>postgis_upgrade*.sql</filename> specific for upgrading your version you are using a version too early for a soft upgrade and need to do a HARD UPGRADE."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1009
+#: installation.xml:1132
 #, no-c-format
 msgid "The <xref linkend=\"PostGIS_Full_Version\"/> function should inform you about the need to run this kind of upgrade using a \"procs need upgrade\" message."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1016
+#: installation.xml:1139
 #, no-c-format
 msgid "Soft Upgrade 9.1+ using extensions"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1017
+#: installation.xml:1140
 #, no-c-format
 msgid "If you originally installed PostGIS with extensions, then you need to upgrade using extensions as well. Doing a minor upgrade with extensions, is fairly painless."
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1018
+#: installation.xml:1141
 #, no-c-format
 msgid ""
       "ALTER EXTENSION postgis UPDATE TO \"&last_release_version;\";\n"
@@ -1418,247 +1969,273 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1019
+#: installation.xml:1142
 #, no-c-format
 msgid "If you get an error notice something like:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1020
+#: installation.xml:1143
 #, no-c-format
 msgid "No migration path defined for ... to &last_release_version;"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1021
+#: installation.xml:1144
+#, no-c-format
+msgid "Then you'll need to backup your database, create a fresh one as described in <xref linkend=\"create_new_db_extensions\"/> and then restore your backup ontop of this new database."
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1145
 #, no-c-format
-msgid "Then you'll need to backup your database, create a fresh one as described in <xref linkend=\"create_new_db_extensions\"/> and then restore your backup ontop of this new database. You might get a message that <code>postgis extension</code> already installed which you can safely ignore."
+msgid "If you get a notice message like:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1146
+#, no-c-format
+msgid "Version \"&last_release_version;\" of extension \"postgis\" is already installed"
+msgstr ""
+
+#. Tag: para
+#: installation.xml:1147
+#, no-c-format
+msgid "Then everything is already up to date and you can safely ignore it. <emphasis role=\"bold\">UNLESS</emphasis> you're attempting to upgrade from an SVN version to the next (which doesn't get a new version number); in that case you can append \"next\" to the version string, and next time you'll need to drop the \"next\" suffix again:"
+msgstr ""
+
+#. Tag: programlisting
+#: installation.xml:1153
+#, no-c-format
+msgid ""
+      "ALTER EXTENSION postgis UPDATE TO \"&last_release_version;next\";\n"
+      "ALTER EXTENSION postgis_topology UPDATE TO \"&last_release_version;next\";"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1023
+#: installation.xml:1154
 #, no-c-format
-msgid "If you installed PostGIS originally without a version specified, you can often skip the reinstallation of postgis extension before restoring since the backup just has <code>CREATE EXTENSION postgis</code> and thus picks up the newest latest version during restore. ."
+msgid "If you installed PostGIS originally without a version specified, you can often skip the reinstallation of postgis extension before restoring since the backup just has <code>CREATE EXTENSION postgis</code> and thus picks up the newest latest version during restore."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1030
+#: installation.xml:1161
 #, no-c-format
 msgid "Hard upgrade"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1032
+#: installation.xml:1163
 #, no-c-format
 msgid "By HARD UPGRADE we mean full dump/reload of postgis-enabled databases. You need a HARD UPGRADE when PostGIS objects' internal storage changes or when SOFT UPGRADE is not possible. The <link linkend=\"release_notes\">Release Notes</link> appendix reports for each version whether you need a dump/reload (HARD UPGRADE) to upgrade."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1041
+#: installation.xml:1172
 #, no-c-format
 msgid "The dump/reload process is assisted by the postgis_restore.pl script which takes care of skipping from the dump all definitions which belong to PostGIS (including old ones), allowing you to restore your schemas and data into a database with PostGIS installed without getting duplicate symbol errors or bringing forward deprecated objects."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1050
+#: installation.xml:1181
 #, no-c-format
 msgid "Supplementary instructions for windows users are available at <ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiWinUpgrade\">Windows Hard upgrade</ulink>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1053
+#: installation.xml:1184
 #, no-c-format
 msgid "The Procedure is as follows:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1061
+#: installation.xml:1192
 #, no-c-format
 msgid "Create a \"custom-format\" dump of the database you want to upgrade (let's call it <varname>olddb</varname>) include binary blobs (-b) and verbose (-v) output. The user can be the owner of the db, need not be postgres super account."
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1069
+#: installation.xml:1200
 #, no-c-format
 msgid "pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f \"/somepath/olddb.backup\" olddb"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1075
+#: installation.xml:1206
 #, no-c-format
 msgid "Do a fresh install of PostGIS in a new database -- we'll refer to this database as <varname>newdb</varname>. Please refer to <xref linkend=\"create_new_db\"/> and <xref linkend=\"create_new_db_extensions\"/> for instructions on how to do this."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1082
+#: installation.xml:1213
 #, no-c-format
 msgid "The spatial_ref_sys entries found in your dump will be restored, but they will not override existing ones in spatial_ref_sys. This is to ensure that fixes in the official set will be properly propagated to restored databases. If for any reason you really want your own overrides of standard entries just don't load the spatial_ref_sys.sql file when creating the new db."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1092
+#: installation.xml:1223
 #, no-c-format
 msgid "If your database is really old or you know you've been using long deprecated functions in your views and functions, you might need to load <filename>legacy.sql</filename> for all your functions and views etc. to properly come back. Only do this if _really_ needed. Consider upgrading your views and functions before dumping instead, if possible. The deprecated functions can be later removed by loading <filename>uninstall_legacy.sql</filename>."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1108
+#: installation.xml:1239
 #, no-c-format
 msgid "Restore your backup into your fresh <varname>newdb</varname> database using postgis_restore.pl. Unexpected errors, if any, will be printed to the standard error stream by psql. Keep a log of those."
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1116
+#: installation.xml:1247
 #, no-c-format
 msgid "perl utils/postgis_restore.pl \"/somepath/olddb.backup\" | psql -h localhost -p 5432 -U postgres newdb 2> errors.txt"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1122
+#: installation.xml:1253
 #, no-c-format
 msgid "Errors may arise in the following cases:"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1128
+#: installation.xml:1259
 #, no-c-format
 msgid "Some of your views or functions make use of deprecated PostGIS objects. In order to fix this you may try loading <filename>legacy.sql</filename> script prior to restore or you'll have to restore to a version of PostGIS which still contains those objects and try a migration again after porting your code. If the <filename>legacy.sql</filename> way works for you, don't forget to fix your code to stop using deprecated functions and drop them loading <filename>uninstall_legacy.sql</fil [...]
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1140
+#: installation.xml:1271
 #, no-c-format
 msgid "Some custom records of spatial_ref_sys in dump file have an invalid SRID value. Valid SRID values are bigger than 0 and smaller than 999000. Values in the 999000.999999 range are reserved for internal use while values > 999999 can't be used at all. All your custom records with invalid SRIDs will be retained, with those > 999999 moved into the reserved range, but the spatial_ref_sys table would loose a check constraint guarding for that invariant to hold and possibly also its prima [...]
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1154
+#: installation.xml:1285
 #, no-c-format
 msgid "In order to fix this you should copy your custom SRS to a SRID with a valid value (maybe in the 910000..910999 range), convert all your tables to the new srid (see <xref linkend=\"UpdateGeometrySRID\"/>), delete the invalid entry from spatial_ref_sys and re-construct the check(s) with:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1161
+#: installation.xml:1292
 #, no-c-format
 msgid "ALTER TABLE spatial_ref_sys ADD CONSTRAINT spatial_ref_sys_srid_check check (srid > 0 AND srid < 999000 );"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1163
+#: installation.xml:1294
 #, no-c-format
 msgid "ALTER TABLE spatial_ref_sys ADD PRIMARY KEY(srid));"
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1174
+#: installation.xml:1305
 #, no-c-format
-msgid "Common Problems"
+msgid "Common Problems during installation"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1175
+#: installation.xml:1306
 #, no-c-format
 msgid "There are several things to check when your installation or upgrade doesn't go as you expected."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1182
+#: installation.xml:1313
 #, no-c-format
 msgid "Check that you have installed PostgreSQL &min_postgres_version; or newer, and that you are compiling against the same version of the PostgreSQL source as the version of PostgreSQL that is running. Mix-ups can occur when your (Linux) distribution has already installed PostgreSQL, or you have otherwise installed PostgreSQL before and forgotten about it. PostGIS will only work with PostgreSQL &min_postgres_version; or newer, and strange, unexpected error messages will result if you u [...]
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1195
+#: installation.xml:1326
 #, no-c-format
 msgid "SELECT version();"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1197
+#: installation.xml:1328
 #, no-c-format
 msgid "If you are running an RPM based distribution, you can check for the existence of pre-installed packages using the <command>rpm</command> command as follows: <command>rpm -qa | grep postgresql</command>"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1205
+#: installation.xml:1336
 #, no-c-format
 msgid "If your upgrade fails, make sure you are restoring into a database that already has PostGIS installed."
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1206
+#: installation.xml:1337
 #, no-c-format
 msgid "SELECT postgis_full_version();"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1210
+#: installation.xml:1341
 #, no-c-format
 msgid "Also check that configure has correctly detected the location and version of PostgreSQL, the Proj4 library and the GEOS library."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1217
+#: installation.xml:1348
 #, no-c-format
 msgid "The output from configure is used to generate the <filename>postgis_config.h</filename> file. Check that the <varname>POSTGIS_PGSQL_VERSION</varname>, <varname>POSTGIS_PROJ_VERSION</varname> and <varname>POSTGIS_GEOS_VERSION</varname> variables have been set correctly."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1230
+#: installation.xml:1361
 #, no-c-format
 msgid "JDBC"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1232
+#: installation.xml:1363
 #, no-c-format
 msgid "The JDBC extensions provide Java objects corresponding to the internal PostGIS types. These objects can be used to write Java clients which query the PostGIS database and draw or do calculations on the GIS data in PostGIS."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1241
+#: installation.xml:1372
 #, no-c-format
 msgid "Enter the <filename>java/jdbc</filename> sub-directory of the PostGIS distribution."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1248
+#: installation.xml:1379
 #, no-c-format
 msgid "Run the <filename>ant</filename> command. Copy the <filename>postgis.jar</filename> file to wherever you keep your java libraries."
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1256
+#: installation.xml:1387
 #, no-c-format
 msgid "The JDBC extensions require a PostgreSQL JDBC driver to be present in the current CLASSPATH during the build process. If the PostgreSQL JDBC driver is located elsewhere, you may pass the location of the JDBC driver JAR separately using the -D parameter like this:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1263
+#: installation.xml:1394
 #, no-c-format
 msgid "# ant -Dclasspath=/path/to/postgresql-jdbc.jar"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1265
+#: installation.xml:1396
 #, no-c-format
 msgid "PostgreSQL JDBC drivers can be downloaded from <ulink url=\"http://jdbc.postgresql.org\"> http://jdbc.postgresql.org </ulink> ."
 msgstr ""
 
 #. Tag: title
-#: installation.xml:1275
+#: installation.xml:1406
 #, no-c-format
 msgid "Loader/Dumper"
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1277
+#: installation.xml:1408
 #, no-c-format
 msgid "The data loader and dumper are built and installed automatically as part of the PostGIS build. To build and install them manually:"
 msgstr ""
 
 #. Tag: programlisting
-#: installation.xml:1282
+#: installation.xml:1413
 #, no-c-format
 msgid ""
       "# cd postgis-&last_release_version;/loader\n"
@@ -1667,7 +2244,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: installation.xml:1284
+#: installation.xml:1415
 #, no-c-format
 msgid "The loader is called <filename>shp2pgsql</filename> and converts ESRI Shape files into SQL suitable for loading in PostGIS/PostgreSQL. The dumper is called <filename>pgsql2shp</filename> and converts PostGIS tables (or queries) into ESRI Shape files. For more verbose documentation, see the online help, and the manual pages."
 msgstr ""
diff --git a/doc/po/templates/introduction.xml.pot b/doc/po/templates/introduction.xml.pot
index 7cb4036..0b09568 100644
--- a/doc/po/templates/introduction.xml.pot
+++ b/doc/po/templates/introduction.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -71,311 +71,323 @@ msgstr ""
 #. Tag: term
 #: introduction.xml:49
 #, no-c-format
-msgid "Paul Ramsey (Chair)"
+msgid "Bborie Park"
 msgstr ""
 
 #. Tag: para
 #: introduction.xml:51
 #, no-c-format
-msgid "Co-founder of PostGIS project. General bug fixing, geography support, geography and geometry index support (2D, 3D, nD index and anything spatial index), underlying geometry internal structures, GEOS functionality integration and alignment with GEOS releases, loader/dumper, and Shapefile GUI loader."
+msgid "Raster development, integration with GDAL, raster loader, user support, general bug fixing, testing on various OS (Slackware, Mac, Windows, and more)"
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:57
+#: introduction.xml:56
 #, no-c-format
-msgid "Sandro Santilli"
+msgid "Paul Ramsey (Chair)"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:60
+#: introduction.xml:58
 #, no-c-format
-msgid "Bug fixes and maintenance and integration of new GEOS functionality and alignment with GEOS releases, Topology support, and Raster framework and low level api functions."
+msgid "Co-founder of PostGIS project. General bug fixing, geography support, geography and geometry index support (2D, 3D, nD index and anything spatial index), underlying geometry internal structures, PointCloud (in development), GEOS functionality integration and alignment with GEOS releases, loader/dumper, and Shapefile GUI loader."
 msgstr ""
 
-#. Tag: title
-#: introduction.xml:67
+#. Tag: term
+#: introduction.xml:64
 #, no-c-format
-msgid "Contributors Past and Present"
+msgid "Sandro Santilli"
 msgstr ""
 
-#. Tag: term
-#: introduction.xml:71
+#. Tag: para
+#: introduction.xml:67
 #, no-c-format
-msgid "Chris Hodgson"
+msgid "Bug fixes and maintenance and integration of new GEOS functionality and alignment with GEOS releases, Topology support, and Raster framework and low level api functions."
 msgstr ""
 
-#. Tag: para
-#: introduction.xml:73
+#. Tag: title
+#: introduction.xml:74
 #, no-c-format
-msgid "Prior PSC Member. General development, site and buildbot maintenance, OSGeo incubation management"
+msgid "Core Contributors Present"
 msgstr ""
 
 #. Tag: term
 #: introduction.xml:77
 #, no-c-format
-msgid "Kevin Neufeld"
+msgid "Jorge Arévalo"
 msgstr ""
 
 #. Tag: para
 #: introduction.xml:79
 #, no-c-format
-msgid "Prior PSC Member. Documentation and documentation support tools, advanced user support on PostGIS newsgroup, and PostGIS maintenance function enhancements."
+msgid "Raster development, GDAL driver support, loader"
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:85
+#: introduction.xml:84
 #, no-c-format
-msgid "Dave Blasby"
+msgid "Nicklas Avén"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:88
+#: introduction.xml:87
 #, no-c-format
-msgid "The original developer/Co-founder of PostGIS. Dave wrote the server side objects, index bindings, and many of the server side analytical functions."
+msgid "Distance function enhancements (including 3D distance and relationship functions) and additions, Tiny WKB output format (TWKB) (in development) and general user support"
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:95
+#: introduction.xml:92
 #, no-c-format
-msgid "Jeff Lounsbury"
+msgid "Olivier Courtin"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:97
+#: introduction.xml:94
 #, no-c-format
-msgid "Original development of the Shape file loader/dumper. Current PostGIS Project Owner representative."
+msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:102
+#: introduction.xml:99
 #, no-c-format
-msgid "Olivier Courtin"
+msgid "Mateusz Loskot"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:104
+#: introduction.xml:101
 #, no-c-format
-msgid "Input output XML (KML,GML)/GeoJSON functions, 3D support and bug fixes."
+msgid "CMake support for PostGIS, built original raster loader in python and low level raster api functions"
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:109
+#: introduction.xml:106
 #, no-c-format
-msgid "Mark Leslie"
+msgid "Pierre Racine"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:111
+#: introduction.xml:108
 #, no-c-format
-msgid "Ongoing maintenance and development of core functions. Enhanced curve support. Shapefile GUI loader."
+msgid "Raster overall architecture, prototyping, programming support"
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:116
+#: introduction.xml:113
 #, no-c-format
-msgid "Pierre Racine"
+msgid "David Zwarg"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:118
+#: introduction.xml:115
 #, no-c-format
-msgid "Raster overall architecture, prototyping, programming support"
+msgid "Raster development (mostly map algebra analytic functions)"
+msgstr ""
+
+#. Tag: title
+#: introduction.xml:121
+#, no-c-format
+msgid "Core Contributors Past"
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:123
+#: introduction.xml:125
 #, no-c-format
-msgid "Nicklas Avén"
+msgid "Chris Hodgson"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:126
+#: introduction.xml:127
 #, no-c-format
-msgid "Distance function enhancements (including 3D distance and relationship functions) and additions, Windows testing, and general user support"
+msgid "Prior PSC Member. General development, site and buildbot maintenance, OSGeo incubation management"
 msgstr ""
 
 #. Tag: term
 #: introduction.xml:131
 #, no-c-format
-msgid "Jorge Arévalo"
+msgid "Kevin Neufeld"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:134
+#: introduction.xml:133
 #, no-c-format
-msgid "Raster development, GDAL driver support, loader"
+msgid "Prior PSC Member. Documentation and documentation support tools, buildbot maintenance, advanced user support on PostGIS newsgroup, and PostGIS maintenance function enhancements."
 msgstr ""
 
 #. Tag: term
 #: introduction.xml:139
 #, no-c-format
-msgid "Bborie Park"
+msgid "Dave Blasby"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:141
+#: introduction.xml:142
 #, no-c-format
-msgid "Raster development, raster loader"
+msgid "The original developer/Co-founder of PostGIS. Dave wrote the server side objects, index bindings, and many of the server side analytical functions."
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:146
+#: introduction.xml:149
 #, no-c-format
-msgid "Mateusz Loskot"
+msgid "Jeff Lounsbury"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:148
+#: introduction.xml:151
 #, no-c-format
-msgid "Raster loader, low level raster api functions"
+msgid "Original development of the Shape file loader/dumper. Current PostGIS Project Owner representative."
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:153
+#: introduction.xml:157
 #, no-c-format
-msgid "David Zwarg"
+msgid "Mark Leslie"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:156
+#: introduction.xml:159
 #, no-c-format
-msgid "Raster development"
+msgid "Ongoing maintenance and development of core functions. Enhanced curve support. Shapefile GUI loader."
+msgstr ""
+
+#. Tag: title
+#: introduction.xml:165
+#, no-c-format
+msgid "Other Contributors"
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:161
+#: introduction.xml:168
 #, no-c-format
-msgid "Other contributors: Individuals"
+msgid "Individual Contributors"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:164
+#: introduction.xml:171
 #, no-c-format
-msgid "In alphabetical order: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, Jeff Adams, Jose Carlos Martinez Llari, [...]
+msgid "In alphabetical order: Alex Bodnaru, Alex Mayrhofer, Andrea Peri, Andreas Forø Tollefsen, Andreas Neumann, Anne Ghisla, Barbara Phillipot, Ben Jubb, Bernhard Reiter, Brian Hamlin, Bruce Rindahl, Bruno Wolff III, Bryce L. Nordgren, Carl Anderson, Charlie Savage, Dane Springmeyer, David Skea, David Techer, Eduin Carrillo, Even Rouault, Frank Warmerdam, George Silva, Gerald Fenoy, Gino Lucrezi, Guillaume Lelarge, IIDA Tetsushi, Ingvild Nystuen, Jason Smith, Jeff Adams, Jose Carlos Ma [...]
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:221
+#: introduction.xml:232
 #, no-c-format
-msgid "Other contributors: Corporate Sponsors"
+msgid "Corporate Sponsors"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:224
+#: introduction.xml:235
 #, no-c-format
 msgid "These are corporate entities that have contributed developer time, hosting, or direct monetary funding to the PostGIS project"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:225
+#: introduction.xml:236
 #, no-c-format
-msgid "In alphabetical order: Arrival 3D, Associazione Italiana per l'Informazione Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala Consulting Engineers, LisaSoft, Logical Tracking & Tracing International AG, Michigan Tech Research Institute, Norwegian Forest and Landscape Institute, OpenGeo, OSGeo, Oslandia, Paragon  [...]
+msgid "In alphabetical order: Arrival 3D, Associazione Italiana per l'Informazione Geografica Libera (GFOSS.it), AusVet, Avencia, Azavea, Cadcorp, CampToCamp, City of Boston (DND), Clever Elephant Solutions, Cooperativa Alveo, Deimos Space, Faunalia, Geographic Data BC, Hunter Systems Group, Lidwala Consulting Engineers, LisaSoft, Logical Tracking & Tracing International AG, Michigan Tech Research Institute, Natural Resources Canada, Norwegian Forest and Landscape Institute, OpenGeo, [...]
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:265
+#: introduction.xml:277
 #, no-c-format
 msgid "Crowd Funding Campaigns"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:268
+#: introduction.xml:280
 #, no-c-format
-msgid "Crowd funding campaigns are campaigns we run to get badly wanted features funded that can service a large number of people. Each campaign is specifically focused on a particular feature or set of features. Each sponsor chips in a small fraction of the needed funding and with enough people/organizations contributing, we have the funds to pay for the work that will help many. If you have an idea for a feature you think many others would be willing to co-fund, please post to the <uli [...]
+msgid "Crowd funding campaigns are campaigns we run to get badly wanted features funded that can service a large number of people. Each campaign is specifically focused on a particular feature or set of features. Each sponsor chips in a small fraction of the needed funding and with enough people/organizations contributing, we have the funds to pay for the work that will help many. If you have an idea for a feature you think many others would be willing to co-fund, please post to the <uli [...]
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:269
+#: introduction.xml:281
 #, no-c-format
 msgid "PostGIS 2.0.0 was the first release we tried this strategy. We used <ulink url=\"http://www.pledgebank.com\">PledgeBank</ulink> and we got two successful campaigns out of it."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:270
+#: introduction.xml:282
 #, no-c-format
 msgid "<ulink url=\"http://www.pledgebank.com/postgistopology\"><emphasis role=\"bold\">postgistopology</emphasis></ulink> - 10 plus sponsors each contributed $250 USD to build toTopoGeometry function and beef up topology support in 2.0.0. It happened."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:271
+#: introduction.xml:283
 #, no-c-format
-msgid "<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role=\"bold\">postgis64windows</emphasis></ulink> - 20 someodd sponsors each contributed $100 USD to pay for the work needed to work out PostGIS 64-bit on windows issues. It happened. We now have a 64-bit beta release for PostGIS 2.0.0 and a final one planned for release that will be available on PostgreSQL stack builder."
+msgid "<ulink url=\"http://www.pledgebank.com/postgis64windows\"><emphasis role=\"bold\">postgis64windows</emphasis></ulink> - 20 someodd sponsors each contributed $100 USD to pay for the work needed to work out PostGIS 64-bit issues on windows. It happened. We now have a 64-bit release for PostGIS 2.0.1 available on PostgreSQL stack builder."
 msgstr ""
 
 #. Tag: term
-#: introduction.xml:276
+#: introduction.xml:288
 #, no-c-format
 msgid "Important Support Libraries"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:279
+#: introduction.xml:291
 #, no-c-format
 msgid "The <ulink url=\"http://trac.osgeo.org/geos/\">GEOS</ulink> geometry operations library, and the algorithmic work of Martin Davis in making it all work, ongoing maintenance and support of Mateusz Loskot, Sandro Santilli (strk), Paul Ramsey and others."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:284
+#: introduction.xml:296
 #, no-c-format
 msgid "The <ulink url=\"http://trac.osgeo.org/gdal/\">GDAL</ulink> Geospatial Data Abstraction Library, by Frank Warmerdam and others is used to power much of the raster functionality introduced in PostGIS 2.0.0. In kind, improvements needed in GDAL to support PostGIS are contributed back to the GDAL project."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:289
+#: introduction.xml:301
 #, no-c-format
 msgid "The <ulink url=\"http://trac.osgeo.org/proj/\">Proj4</ulink> cartographic projection library, and the work of Gerald Evenden and Frank Warmerdam in creating and maintaining it."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:293
+#: introduction.xml:305
 #, no-c-format
 msgid "Last but not least, the <ulink url=\"http://www.postgresql.org\">PostgreSQL DBMS</ulink>, The giant that PostGIS stands on. Much of the speed and flexibility of PostGIS would not be possible without the extensibility, great query planner, GIST index, and plethora of SQL features provided by PostgreSQL."
 msgstr ""
 
 #. Tag: title
-#: introduction.xml:302
+#: introduction.xml:314
 #, no-c-format
 msgid "More Information"
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:306
+#: introduction.xml:318
 #, no-c-format
-msgid "The latest software, documentation and news items are available at the PostGIS web site, <ulink url=\"http://www.postgis.org\">http://www.postgis.org</ulink>."
+msgid "The latest software, documentation and news items are available at the PostGIS web site, <ulink url=\"http://postgis.net\">http://postgis.net</ulink>."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:312
+#: introduction.xml:324
 #, no-c-format
 msgid "More information about the GEOS geometry operations library is available at<ulink url=\"http://trac.osgeo.org/geos/\"> http://trac.osgeo.org/geos/</ulink>."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:318
+#: introduction.xml:330
 #, no-c-format
 msgid "More information about the Proj4 reprojection library is available at <ulink url=\"http://trac.osgeo.org/proj/\">http://trac.osgeo.org/proj/</ulink>."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:324
+#: introduction.xml:336
 #, no-c-format
 msgid "More information about the PostgreSQL database server is available at the PostgreSQL main site <ulink url=\"http://www.postgresql.org\">http://www.postgresql.org</ulink>."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:330
+#: introduction.xml:342
 #, no-c-format
 msgid "More information about GiST indexing is available at the PostgreSQL GiST development site, <ulink url=\"http://www.sai.msu.su/~megera/postgres/gist/\">http://www.sai.msu.su/~megera/postgres/gist/</ulink>."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:336
+#: introduction.xml:348
 #, no-c-format
 msgid "More information about MapServer internet map server is available at <ulink url=\"http://mapserver.org/\">http://mapserver.org</ulink>."
 msgstr ""
 
 #. Tag: para
-#: introduction.xml:342
+#: introduction.xml:354
 #, no-c-format
 msgid "The "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">Simple Features for Specification for SQL</ulink>" is available at the OpenGIS Consortium web site: <ulink url=\"http://www.opengeospatial.org/\">http://www.opengeospatial.org/</ulink>."
 msgstr ""
diff --git a/doc/po/templates/performance_tips.xml.pot b/doc/po/templates/performance_tips.xml.pot
index 0183676..7216a01 100644
--- a/doc/po/templates/performance_tips.xml.pot
+++ b/doc/po/templates/performance_tips.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -85,7 +85,7 @@ msgstr ""
 #, no-c-format
 msgid ""
       "SELECT AddGeometryColumn('myschema','mytable','bbox','4326','GEOMETRY','2'); \n"
-      "UPDATE mytable SET bbox = ST_Envelope(ST_Force_2d(the_geom));"
+      "UPDATE mytable SET bbox = ST_Envelope(ST_Force2D(the_geom));"
 msgstr ""
 
 #. Tag: para
@@ -165,14 +165,14 @@ msgstr ""
 #. Tag: para
 #: performance_tips.xml:109
 #, no-c-format
-msgid "Sometimes, you happen to have 3D or 4D data in your table, but always access it using OpenGIS compliant ST_AsText() or ST_AsBinary() functions that only output 2D geometries. They do this by internally calling the ST_Force_2d() function, which introduces a significant overhead for large geometries. To avoid this overhead, it may be feasible to pre-drop those additional dimensions once and forever:"
+msgid "Sometimes, you happen to have 3D or 4D data in your table, but always access it using OpenGIS compliant ST_AsText() or ST_AsBinary() functions that only output 2D geometries. They do this by internally calling the ST_Force2D() function, which introduces a significant overhead for large geometries. To avoid this overhead, it may be feasible to pre-drop those additional dimensions once and forever:"
 msgstr ""
 
 #. Tag: programlisting
 #: performance_tips.xml:116
 #, no-c-format
 msgid ""
-      "UPDATE mytable SET the_geom = ST_Force_2d(the_geom); \n"
+      "UPDATE mytable SET the_geom = ST_Force2D(the_geom); \n"
       "VACUUM FULL ANALYZE mytable;"
 msgstr ""
 
diff --git a/doc/po/templates/postgis.xml.pot b/doc/po/templates/postgis.xml.pot
index b8b2942..021ad0f 100644
--- a/doc/po/templates/postgis.xml.pot
+++ b/doc/po/templates/postgis.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-14 22:30+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -15,32 +15,38 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Tag: title
-#: postgis.xml:106
+#: postgis.xml:127
 #, no-c-format
 msgid "PostGIS &last_release_version; Manual"
 msgstr ""
 
+#. Tag: corpauthor
+#: postgis.xml:131
+#, no-c-format
+msgid "The PostGIS Development Group"
+msgstr ""
+
 #. Tag: affiliation
-#: postgis.xml:114
+#: postgis.xml:137
 #, no-c-format
 msgid "<orgname><ulink url=\"http://www.cleverelephant.ca\">clever elephant</ulink></orgname> <address><city>Victoria</city> <state>British Columbia</state> <country>Canada</country> <email>pramsey at cleverelephant.ca</email></address>"
 msgstr ""
 
 #. Tag: para
-#: postgis.xml:124
+#: postgis.xml:151
 #, no-c-format
 msgid "PostGIS is an extension to the PostgreSQL object-relational database system which allows GIS (Geographic Information Systems) objects to be stored in the database. PostGIS includes support for GiST-based R-Tree spatial indexes, and functions for analysis and processing of GIS objects."
 msgstr ""
 
 #. Tag: para
-#: postgis.xml:133
+#: postgis.xml:160
 #, no-c-format
 msgid "This is the manual for version &last_release_version;"
 msgstr ""
 
 #. Tag: para
-#: postgis.xml:134
+#: postgis.xml:161
 #, no-c-format
-msgid "This work is licensed under a <ulink url=\"http://creativecommons.org/licenses/by-sa/3.0/\">Creative Commons Attribution-Share Alike 3.0 License</ulink>. Feel free to use this material any way you like, but we ask that you attribute credit to the PostGIS Project and wherever possible, a link back to <ulink url=\"http://www.postgis.org\">http://www.postgis.org</ulink>."
+msgid "This work is licensed under a <ulink url=\"http://creativecommons.org/licenses/by-sa/3.0/\">Creative Commons Attribution-Share Alike 3.0 License</ulink>. Feel free to use this material any way you like, but we ask that you attribute credit to the PostGIS Project and wherever possible, a link back to <ulink url=\"http://postgis.net\">http://postgis.net</ulink>."
 msgstr ""
 
diff --git a/doc/po/templates/reference.xml.pot b/doc/po/templates/reference.xml.pot
index 36758fb..bb900fc 100644
--- a/doc/po/templates/reference.xml.pot
+++ b/doc/po/templates/reference.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -35,6 +35,6 @@ msgstr ""
 #. Tag: chapter
 #: reference.xml:16
 #, no-c-format
-msgid "&reference_type; &reference_management; &reference_constructor; &reference_accessor; &reference_editor; &reference_output; &reference_operator; &reference_measure; &reference_processing; &reference_lrs; &reference_transaction; &reference_misc; &reference_exception;"
+msgid "&reference_type; &reference_guc; &reference_management; &reference_constructor; &reference_accessor; &reference_editor; &reference_output; &reference_operator; &reference_measure; &reference_sfcgal; &reference_processing; &reference_lrs; &reference_transaction; &reference_misc; &reference_exception;"
 msgstr ""
 
diff --git a/doc/po/templates/reference_accessor.xml.pot b/doc/po/templates/reference_accessor.xml.pot
index cb5871c..166e065 100644
--- a/doc/po/templates/reference_accessor.xml.pot
+++ b/doc/po/templates/reference_accessor.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -39,7 +39,7 @@ msgid "<funcdef>text <function>GeometryType</function></funcdef> <paramdef><type
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:24 reference_accessor.xml:81 reference_accessor.xml:128 reference_accessor.xml:176 reference_accessor.xml:224 reference_accessor.xml:273 reference_accessor.xml:325 reference_accessor.xml:374 reference_accessor.xml:435 reference_accessor.xml:486 reference_accessor.xml:545 reference_accessor.xml:604 reference_accessor.xml:659 reference_accessor.xml:703 reference_accessor.xml:754 reference_accessor.xml:811 reference_accessor.xml:876 reference_accessor.xml:928 refer [...]
+#: reference_accessor.xml:24 reference_accessor.xml:81 reference_accessor.xml:129 reference_accessor.xml:177 reference_accessor.xml:225 reference_accessor.xml:276 reference_accessor.xml:328 reference_accessor.xml:377 reference_accessor.xml:438 reference_accessor.xml:489 reference_accessor.xml:548 reference_accessor.xml:607 reference_accessor.xml:662 reference_accessor.xml:706 reference_accessor.xml:757 reference_accessor.xml:814 reference_accessor.xml:879 reference_accessor.xml:931 refer [...]
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -63,43 +63,43 @@ msgid "This function also indicates if the geometry is measured, by returning a
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:38 reference_accessor.xml:388 reference_accessor.xml:1152
+#: reference_accessor.xml:38 reference_accessor.xml:391 reference_accessor.xml:1155
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:39 reference_accessor.xml:134 reference_accessor.xml:390 reference_accessor.xml:497 reference_accessor.xml:550 reference_accessor.xml:830 reference_accessor.xml:996 reference_accessor.xml:1272 reference_accessor.xml:1314 reference_accessor.xml:1423 reference_accessor.xml:1757
+#: reference_accessor.xml:39 reference_accessor.xml:135 reference_accessor.xml:393 reference_accessor.xml:500 reference_accessor.xml:553 reference_accessor.xml:833 reference_accessor.xml:999 reference_accessor.xml:1263 reference_accessor.xml:1305 reference_accessor.xml:1414 reference_accessor.xml:1756
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:40 reference_accessor.xml:136 reference_accessor.xml:393 reference_accessor.xml:559 reference_accessor.xml:624 reference_accessor.xml:670 reference_accessor.xml:1074 reference_accessor.xml:1112 reference_accessor.xml:1426 reference_accessor.xml:1468 reference_accessor.xml:1671 reference_accessor.xml:1716 reference_accessor.xml:1804 reference_accessor.xml:1849 reference_accessor.xml:1937 reference_accessor.xml:1979 reference_accessor.xml:2024
+#: reference_accessor.xml:40 reference_accessor.xml:137 reference_accessor.xml:234 reference_accessor.xml:396 reference_accessor.xml:562 reference_accessor.xml:627 reference_accessor.xml:673 reference_accessor.xml:1077 reference_accessor.xml:1115 reference_accessor.xml:1417 reference_accessor.xml:1462 reference_accessor.xml:1506 reference_accessor.xml:1670 reference_accessor.xml:1715 reference_accessor.xml:1803 reference_accessor.xml:1848 reference_accessor.xml:1936 reference_accessor.xm [...]
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:41 reference_accessor.xml:96 reference_accessor.xml:137 reference_accessor.xml:231 reference_accessor.xml:334 reference_accessor.xml:392 reference_accessor.xml:441 reference_accessor.xml:499 reference_accessor.xml:558 reference_accessor.xml:623 reference_accessor.xml:768 reference_accessor.xml:998 reference_accessor.xml:1038 reference_accessor.xml:1073 reference_accessor.xml:1111 reference_accessor.xml:1156 reference_accessor.xml:1271 reference_accessor.xml:1367 [...]
+#: reference_accessor.xml:41 reference_accessor.xml:96 reference_accessor.xml:138 reference_accessor.xml:232 reference_accessor.xml:337 reference_accessor.xml:395 reference_accessor.xml:444 reference_accessor.xml:502 reference_accessor.xml:561 reference_accessor.xml:626 reference_accessor.xml:771 reference_accessor.xml:1001 reference_accessor.xml:1041 reference_accessor.xml:1076 reference_accessor.xml:1114 reference_accessor.xml:1159 reference_accessor.xml:1262 reference_accessor.xml:135 [...]
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:42 reference_accessor.xml:138 reference_accessor.xml:189 reference_accessor.xml:394 reference_accessor.xml:442 reference_accessor.xml:562 reference_accessor.xml:1075 reference_accessor.xml:1157 reference_accessor.xml:1274 reference_accessor.xml:1368
+#: reference_accessor.xml:42 reference_accessor.xml:139 reference_accessor.xml:190 reference_accessor.xml:397 reference_accessor.xml:445 reference_accessor.xml:565 reference_accessor.xml:1078 reference_accessor.xml:1160 reference_accessor.xml:1265 reference_accessor.xml:1359
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:43 reference_accessor.xml:139 reference_accessor.xml:190 reference_accessor.xml:395 reference_accessor.xml:1158
+#: reference_accessor.xml:43 reference_accessor.xml:140 reference_accessor.xml:191 reference_accessor.xml:398 reference_accessor.xml:1161
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:49 reference_accessor.xml:100 reference_accessor.xml:144 reference_accessor.xml:194 reference_accessor.xml:241 reference_accessor.xml:295 reference_accessor.xml:339 reference_accessor.xml:447 reference_accessor.xml:505 reference_accessor.xml:629 reference_accessor.xml:677 reference_accessor.xml:722 reference_accessor.xml:773 reference_accessor.xml:837 reference_accessor.xml:893 reference_accessor.xml:953 reference_accessor.xml:1004 reference_accessor.xml:1042 re [...]
+#: reference_accessor.xml:49 reference_accessor.xml:101 reference_accessor.xml:145 reference_accessor.xml:195 reference_accessor.xml:244 reference_accessor.xml:298 reference_accessor.xml:342 reference_accessor.xml:450 reference_accessor.xml:508 reference_accessor.xml:632 reference_accessor.xml:680 reference_accessor.xml:725 reference_accessor.xml:776 reference_accessor.xml:840 reference_accessor.xml:896 reference_accessor.xml:956 reference_accessor.xml:1007 reference_accessor.xml:1045 re [...]
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -152,7 +152,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:58 reference_accessor.xml:105 reference_accessor.xml:151 reference_accessor.xml:199 reference_accessor.xml:247 reference_accessor.xml:300 reference_accessor.xml:344 reference_accessor.xml:414 reference_accessor.xml:458 reference_accessor.xml:512 reference_accessor.xml:579 reference_accessor.xml:635 reference_accessor.xml:728 reference_accessor.xml:779 reference_accessor.xml:843 reference_accessor.xml:900 reference_accessor.xml:960 reference_accessor.xml:1010 ref [...]
+#: reference_accessor.xml:58 reference_accessor.xml:106 reference_accessor.xml:152 reference_accessor.xml:200 reference_accessor.xml:250 reference_accessor.xml:303 reference_accessor.xml:347 reference_accessor.xml:417 reference_accessor.xml:461 reference_accessor.xml:515 reference_accessor.xml:582 reference_accessor.xml:638 reference_accessor.xml:731 reference_accessor.xml:782 reference_accessor.xml:846 reference_accessor.xml:903 reference_accessor.xml:963 reference_accessor.xml:1013 ref [...]
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -205,8 +205,14 @@ msgstr ""
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.14"
 msgstr ""
 
+#. Tag: para
+#: reference_accessor.xml:97
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for Triangle was introduced"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_accessor.xml:102
+#: reference_accessor.xml:103
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 1)')));\n"
@@ -235,49 +241,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:107
+#: reference_accessor.xml:108
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakePolygon\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:113
+#: reference_accessor.xml:114
 #, no-c-format
 msgid "ST_CoordDim"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:115
+#: reference_accessor.xml:116
 #, no-c-format
 msgid "<refpurpose>Return the coordinate dimension of the ST_Geometry value.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:120
+#: reference_accessor.xml:121
 #, no-c-format
 msgid "<funcdef>integer <function>ST_CoordDim</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:130
+#: reference_accessor.xml:131
 #, no-c-format
 msgid "<para>Return the coordinate dimension of the ST_Geometry value.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:132
+#: reference_accessor.xml:133
 #, no-c-format
 msgid "This is the MM compliant alias name for <xref linkend=\"ST_NDims\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:135
+#: reference_accessor.xml:136
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:146
+#: reference_accessor.xml:147
 #, no-c-format
 msgid ""
       "SELECT ST_CoordDim('CIRCULARSTRING(1 2 3, 1 3 4, 5 6 7, 8 9 10, 11 12 13)');\n"
@@ -290,49 +296,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:159
+#: reference_accessor.xml:160
 #, no-c-format
 msgid "ST_Dimension"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:161
+#: reference_accessor.xml:162
 #, no-c-format
 msgid "The inherent dimension of this Geometry object, which must be less than or equal to the coordinate dimension."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:167
+#: reference_accessor.xml:168
 #, no-c-format
 msgid "<funcdef>integer <function>ST_Dimension</function></funcdef> <paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:178
+#: reference_accessor.xml:179
 #, no-c-format
 msgid "The inherent dimension of this Geometry object, which must be less than or equal to the coordinate dimension. OGC SPEC s2.1.1.1 - returns 0 for <varname>POINT</varname>, 1 for <varname>LINESTRING</varname>, 2 for <varname>POLYGON</varname>, and the largest dimension of the components of a <varname>GEOMETRYCOLLECTION</varname>. If unknown (empty geometry) null is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:186
+#: reference_accessor.xml:187
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.2"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:187
+#: reference_accessor.xml:188
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TINs was introduced. No longer throws an exception if given empty geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:188
+#: reference_accessor.xml:189
 #, no-c-format
 msgid "Prior to 2.0.0, this function throws an exception if used with empty geometry."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:196
+#: reference_accessor.xml:197
 #, no-c-format
 msgid ""
       "SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))');\n"
@@ -342,43 +348,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:207
+#: reference_accessor.xml:208
 #, no-c-format
 msgid "ST_EndPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:209
+#: reference_accessor.xml:210
 #, no-c-format
-msgid "Returns the last point of a <varname>LINESTRING</varname> geometry as a <varname>POINT</varname>."
+msgid "Returns the last point of a <varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname>."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:215
+#: reference_accessor.xml:216
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_EndPoint</function></funcdef> <paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:226
+#: reference_accessor.xml:227
 #, no-c-format
 msgid "Returns the last point of a <varname>LINESTRING</varname> geometry as a <varname>POINT</varname> or <varname>NULL</varname> if the input parameter is not a <varname>LINESTRING</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:230
+#: reference_accessor.xml:231
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.4"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:232 reference_accessor.xml:1511
+#: reference_accessor.xml:235 reference_accessor.xml:1507
 #, no-c-format
 msgid "Changed: 2.0.0 no longer works with single geometry multilinestrings. In older versions of PostGIS -- a single line multilinestring would work happily with this function and return the start point. In 2.0.0 it just returns NULL like any other multilinestring. The older behavior was an undocumented feature, but people who assumed they had their data stored as LINESTRING may experience these returning NULL in 2.0 now."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:243
+#: reference_accessor.xml:246
 #, no-c-format
 msgid ""
       "postgis=# SELECT ST_AsText(ST_EndPoint('LINESTRING(1 1, 2 2, 3 3)'::geometry));\n"
@@ -402,61 +408,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:249
+#: reference_accessor.xml:252
 #, no-c-format
 msgid ", <xref linkend=\"ST_StartPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:256
+#: reference_accessor.xml:259
 #, no-c-format
 msgid "ST_Envelope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:258
+#: reference_accessor.xml:261
 #, no-c-format
 msgid "Returns a geometry representing the double precision (float8) bounding box of the supplied geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:264
+#: reference_accessor.xml:267
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Envelope</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:275
+#: reference_accessor.xml:278
 #, no-c-format
 msgid "Returns the float8 minimum bounding box for the supplied geometry, as a geometry. The polygon is defined by the corner points of the bounding box ((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), (<varname>MINX</varname>, <varname>MINY</varname>)). (PostGIS will add a <varname>ZMIN</varname>/<varname>ZMAX</varname> coordinat [...]
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:285
+#: reference_accessor.xml:288
 #, no-c-format
 msgid "Degenerate cases (vertical lines, points) will return a geometry of lower dimension than <varname>POLYGON</varname>, ie. <varname>POINT</varname> or <varname>LINESTRING</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:289
+#: reference_accessor.xml:292
 #, no-c-format
 msgid "Availability: 1.5.0 behavior changed to output double precision instead of float4"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:290 reference_accessor.xml:668 reference_accessor.xml:766 reference_accessor.xml:1466
+#: reference_accessor.xml:293 reference_accessor.xml:671 reference_accessor.xml:769 reference_accessor.xml:1460
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.1"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:291
+#: reference_accessor.xml:294
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.15"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:297
+#: reference_accessor.xml:300
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));\n"
@@ -491,55 +497,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:302
+#: reference_accessor.xml:305
 #, no-c-format
 msgid ", <xref linkend=\"Box3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:308
+#: reference_accessor.xml:311
 #, no-c-format
 msgid "ST_ExteriorRing"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:310
+#: reference_accessor.xml:313
 #, no-c-format
 msgid "Returns a line string representing the exterior ring of the <varname>POLYGON</varname> geometry. Return NULL if the geometry is not a polygon. Will not work with MULTIPOLYGON"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:316
+#: reference_accessor.xml:319
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_ExteriorRing</function></funcdef> <paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:327
+#: reference_accessor.xml:330
 #, no-c-format
 msgid "Returns a line string representing the exterior ring of the <varname>POLYGON</varname> geometry. Return NULL if the geometry is not a polygon."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:330
+#: reference_accessor.xml:333
 #, no-c-format
 msgid "Only works with POLYGON geometry types"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:332 reference_accessor.xml:712
+#: reference_accessor.xml:335 reference_accessor.xml:715
 #, no-c-format
 msgid "&sfs_compliant; 2.1.5.1"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:333
+#: reference_accessor.xml:336
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.2.3, 8.3.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:340
+#: reference_accessor.xml:343
 #, no-c-format
 msgid ""
       "--If you have a table of polygons\n"
@@ -566,67 +572,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:346
+#: reference_accessor.xml:349
 #, no-c-format
 msgid ", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_NumInteriorRings\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:356
+#: reference_accessor.xml:359
 #, no-c-format
 msgid "ST_GeometryN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:358
+#: reference_accessor.xml:361
 #, no-c-format
 msgid "Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, (MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, POLYHEDRALSURFACE Otherwise, return NULL."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:365
+#: reference_accessor.xml:368
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_GeometryN</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:376
+#: reference_accessor.xml:379
 #, no-c-format
 msgid "Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, (MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, POLYHEDRALSURFACE Otherwise, return NULL"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:381 reference_accessor.xml:1414
+#: reference_accessor.xml:384 reference_accessor.xml:1405
 #, no-c-format
 msgid "Index is 1-based as for OGC specs since version 0.8.0. Previous versions implemented this as 0-based instead."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:386
+#: reference_accessor.xml:389
 #, no-c-format
 msgid "If you want to extract all geometries, of a geometry, ST_Dump is more efficient and will also work for singular geoms."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:389
+#: reference_accessor.xml:392
 #, no-c-format
 msgid "Changed: 2.0.0 Prior versions would return NULL for singular geometries. This was changed to return the geometry for ST_GeometryN(..,1) case."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:391
+#: reference_accessor.xml:394
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.1.5"
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:401
+#: reference_accessor.xml:404
 #, no-c-format
 msgid "Standard Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:403
+#: reference_accessor.xml:406
 #, no-c-format
 msgid ""
       "--Extracting a subset of points from a 3d multipoint\n"
@@ -655,13 +661,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:406
+#: reference_accessor.xml:409
 #, no-c-format
 msgid "Polyhedral Surfaces, TIN and Triangle Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:407
+#: reference_accessor.xml:410
 #, no-c-format
 msgid ""
       "-- Polyhedral surface example\n"
@@ -682,7 +688,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:409
+#: reference_accessor.xml:412
 #, no-c-format
 msgid ""
       "-- TIN --                \n"
@@ -709,49 +715,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:416 reference_accessor.xml:1285
+#: reference_accessor.xml:419 reference_accessor.xml:1276
 #, no-c-format
 msgid ", <xref linkend=\"ST_NumGeometries\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:422
+#: reference_accessor.xml:425
 #, no-c-format
 msgid "ST_GeometryType"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:423
+#: reference_accessor.xml:426
 #, no-c-format
 msgid "Return the geometry type of the ST_Geometry value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:428
+#: reference_accessor.xml:431
 #, no-c-format
 msgid "<funcdef>text <function>ST_GeometryType</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:437
+#: reference_accessor.xml:440
 #, no-c-format
 msgid "Returns the type of the geometry as a string. EG: 'ST_Linestring', 'ST_Polygon','ST_MultiPolygon' etc. This function differs from GeometryType(geometry) in the case of the string and ST in front that is returned, as well as the fact that it will not indicate whether the geometry is measured."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:439 reference_accessor.xml:560 reference_accessor.xml:1071
+#: reference_accessor.xml:442 reference_accessor.xml:563 reference_accessor.xml:1074
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:440
+#: reference_accessor.xml:443
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:449
+#: reference_accessor.xml:452
 #, no-c-format
 msgid ""
       "SELECT ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)'));\n"
@@ -760,7 +766,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:451 reference_accessor.xml:453
+#: reference_accessor.xml:454 reference_accessor.xml:456
 #, no-c-format
 msgid ""
       "SELECT ST_GeometryType(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
@@ -772,7 +778,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:455
+#: reference_accessor.xml:458
 #, no-c-format
 msgid ""
       "SELECT ST_GeometryType(geom) as result\n"
@@ -797,43 +803,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:468
+#: reference_accessor.xml:471
 #, no-c-format
 msgid "ST_InteriorRingN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:470
+#: reference_accessor.xml:473
 #, no-c-format
 msgid "Return the Nth interior linestring ring of the polygon geometry. Return NULL if the geometry is not a polygon or the given N is out of range."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:477
+#: reference_accessor.xml:480
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_InteriorRingN</function></funcdef> <paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef> <paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:488
+#: reference_accessor.xml:491
 #, no-c-format
 msgid "Return the Nth interior linestring ring of the polygon geometry. Return NULL if the geometry is not a polygon or the given N is out of range. index starts at 1."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:494
+#: reference_accessor.xml:497
 #, no-c-format
 msgid "This will not work for MULTIPOLYGONs. Use in conjunction with ST_Dump for MULTIPOLYGONS"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:498
+#: reference_accessor.xml:501
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.2.6, 8.3.5"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:507
+#: reference_accessor.xml:510
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_InteriorRingN(the_geom, 1)) As the_geom\n"
@@ -844,55 +850,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:514
+#: reference_accessor.xml:517
 #, no-c-format
 msgid ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_NumInteriorRing\"/>,"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:527
+#: reference_accessor.xml:530
 #, no-c-format
 msgid "ST_IsClosed"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:529
+#: reference_accessor.xml:532
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start and end points are coincident. For Polyhedral surface is closed (volumetric)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:536
+#: reference_accessor.xml:539
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_IsClosed</function></funcdef> <paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:547
+#: reference_accessor.xml:550
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if the <varname>LINESTRING</varname>'s start and end points are coincident. For Polyhedral Surfaces, it tells you if the surface is areal (open) or volumetric (closed)."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:551
+#: reference_accessor.xml:554
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.5, 9.3.3"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:553
+#: reference_accessor.xml:556
 #, no-c-format
 msgid "SQL-MM defines the result of <function>ST_IsClosed(<varname>NULL</varname>)</function> to be 0, while PostGIS returns <varname>NULL</varname>."
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:567
+#: reference_accessor.xml:570
 #, no-c-format
 msgid "Line String and Point Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:569
+#: reference_accessor.xml:572
 #, no-c-format
 msgid ""
       "postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);\n"
@@ -927,13 +933,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_accessor.xml:573
+#: reference_accessor.xml:576
 #, no-c-format
 msgid "Polyhedral Surface Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:575
+#: reference_accessor.xml:578
 #, no-c-format
 msgid ""
       "-- A cube --\n"
@@ -959,55 +965,55 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:587
+#: reference_accessor.xml:590
 #, no-c-format
 msgid "ST_IsCollection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:589
+#: reference_accessor.xml:592
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if the argument is a collection (<varname>MULTI*</varname>, <varname>GEOMETRYCOLLECTION</varname>, ...)"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:596
+#: reference_accessor.xml:599
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_IsCollection</function></funcdef> <paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:606
+#: reference_accessor.xml:609
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if the geometry type of the argument is either:"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:609
+#: reference_accessor.xml:612
 #, no-c-format
 msgid "GEOMETRYCOLLECTION"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:610
+#: reference_accessor.xml:613
 #, no-c-format
 msgid "MULTI{POINT,POLYGON,LINESTRING,CURVE,SURFACE}"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:611
+#: reference_accessor.xml:614
 #, no-c-format
 msgid "COMPOUNDCURVE"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:616
+#: reference_accessor.xml:619
 #, no-c-format
 msgid "This function analyzes the type of the geometry. This means that it will return <varname>TRUE</varname> on collections that are empty or that contain a single element."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:631
+#: reference_accessor.xml:634
 #, no-c-format
 msgid ""
       "postgis=# SELECT ST_IsCollection('LINESTRING(0 0, 1 1)'::geometry);\n"
@@ -1042,49 +1048,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:643
+#: reference_accessor.xml:646
 #, no-c-format
 msgid "ST_IsEmpty"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:645
+#: reference_accessor.xml:648
 #, no-c-format
 msgid "Returns true if this Geometry is an empty geometrycollection, polygon, point etc."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:651
+#: reference_accessor.xml:654
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_IsEmpty</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:661
+#: reference_accessor.xml:664
 #, no-c-format
 msgid "Returns true if this Geometry is an empty geometry. If true, then this Geometry represents an empty geometry collection, polygon, point etc."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:664
+#: reference_accessor.xml:667
 #, no-c-format
 msgid "SQL-MM defines the result of ST_IsEmpty(NULL) to be 0, while PostGIS returns NULL."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:669
+#: reference_accessor.xml:672
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.7"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:671
+#: reference_accessor.xml:674
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions of PostGIS ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now illegal in PostGIS 2.0.0 to better conform with SQL/MM standards"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:679
+#: reference_accessor.xml:682
 #, no-c-format
 msgid ""
       "SELECT ST_IsEmpty(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'));\n"
@@ -1120,43 +1126,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:686
+#: reference_accessor.xml:689
 #, no-c-format
 msgid "ST_IsRing"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:688
+#: reference_accessor.xml:691
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is both closed and simple."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:694
+#: reference_accessor.xml:697
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_IsRing</function></funcdef> <paramdef><type>geometry </type> <parameter>g</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:705
+#: reference_accessor.xml:708
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if this <varname>LINESTRING</varname> is both <xref linkend=\"ST_IsClosed\"/> (<function>ST_StartPoint(<parameter>g</parameter>)</function> <function>~=</function> <function>ST_Endpoint(<parameter>g</parameter>)</function>) and <xref linkend=\"ST_IsSimple\"/> (does not self intersect)."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:713
+#: reference_accessor.xml:716
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.6"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:715
+#: reference_accessor.xml:718
 #, no-c-format
 msgid "SQL-MM defines the result of <function>ST_IsRing(<varname>NULL</varname>)</function> to be 0, while PostGIS returns <varname>NULL</varname>."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:724
+#: reference_accessor.xml:727
 #, no-c-format
 msgid ""
       "SELECT ST_IsRing(the_geom), ST_IsClosed(the_geom), ST_IsSimple(the_geom)\n"
@@ -1175,49 +1181,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:730
+#: reference_accessor.xml:733
 #, no-c-format
 msgid ", <xref linkend=\"ST_IsSimple\"/>, <xref linkend=\"ST_StartPoint\"/>, <xref linkend=\"ST_EndPoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:738
+#: reference_accessor.xml:741
 #, no-c-format
 msgid "ST_IsSimple"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:740
+#: reference_accessor.xml:743
 #, no-c-format
 msgid "Returns (TRUE) if this Geometry has no anomalous geometric points, such as self intersection or self tangency."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:746
+#: reference_accessor.xml:749
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_IsSimple</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:756
+#: reference_accessor.xml:759
 #, no-c-format
 msgid "Returns true if this Geometry has no anomalous geometric points, such as self intersection or self tangency. For more information on the OGC's definition of geometry simplicity and validity, refer to <link linkend=\"OGC_Validity\">\"Ensuring OpenGIS compliancy of geometries\"</link>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:762
+#: reference_accessor.xml:765
 #, no-c-format
 msgid "SQL-MM defines the result of ST_IsSimple(NULL) to be 0, while PostGIS returns NULL."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:767
+#: reference_accessor.xml:770
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.8"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:775
+#: reference_accessor.xml:778
 #, no-c-format
 msgid ""
       "SELECT ST_IsSimple(ST_GeomFromText('POLYGON((1 2, 3 4, 5 6, 1 2))'));\n"
@@ -1234,49 +1240,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:787
+#: reference_accessor.xml:790
 #, no-c-format
 msgid "ST_IsValid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:789
+#: reference_accessor.xml:792
 #, no-c-format
 msgid "Returns <varname>true</varname> if the <varname>ST_Geometry</varname> is well formed."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:795
+#: reference_accessor.xml:798
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> <paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_IsValid</function></funcdef> <paramdef><type>geometry </type> <parameter>g</parameter></paramdef> <paramdef><type>integer </type> <parameter>flags</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:813
+#: reference_accessor.xml:816
 #, no-c-format
 msgid "Test if an ST_Geometry value is well formed. For geometries that are invalid, the PostgreSQL NOTICE will provide details of why it is not valid. For more information on the OGC's definition of geometry simplicity and validity, refer to <link linkend=\"OGC_Validity\">\"Ensuring OpenGIS compliancy of geometries\"</link>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:819
+#: reference_accessor.xml:822
 #, no-c-format
 msgid "SQL-MM defines the result of ST_IsValid(NULL) to be 0, while PostGIS returns NULL."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:823
+#: reference_accessor.xml:826
 #, no-c-format
 msgid "The version accepting flags is available starting with 2.0.0 and requires GEOS >= 3.3.0. Such version does not print a NOTICE explaining the invalidity. Allowed <varname>flags</varname> are documented in <xref linkend=\"ST_IsValidDetail\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:831
+#: reference_accessor.xml:834
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.9"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:839
+#: reference_accessor.xml:842
 #, no-c-format
 msgid ""
       "SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,\n"
@@ -1289,61 +1295,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:845
+#: reference_accessor.xml:848
 #, no-c-format
 msgid ", <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/>, <xref linkend=\"ST_Summary\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:856
+#: reference_accessor.xml:859
 #, no-c-format
 msgid "ST_IsValidReason"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:858
+#: reference_accessor.xml:861
 #, no-c-format
 msgid "Returns text stating if a geometry is valid or not and if not valid, a reason why."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:862
+#: reference_accessor.xml:865
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>ST_IsValidReason</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_IsValidReason</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>integer </type> <parameter>flags</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:878
+#: reference_accessor.xml:881
 #, no-c-format
 msgid "Returns text stating if a geometry is valid or not an if not valid, a reason why."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:880
+#: reference_accessor.xml:883
 #, no-c-format
 msgid "Useful in combination with ST_IsValid to generate a detailed report of invalid geometries and reasons."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:882
+#: reference_accessor.xml:885
 #, no-c-format
 msgid "Allowed <varname>flags</varname> are documented in <xref linkend=\"ST_IsValidDetail\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:886
+#: reference_accessor.xml:889
 #, no-c-format
 msgid "Availability: 1.4 - requires GEOS >= 3.1.0."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:887
+#: reference_accessor.xml:890
 #, no-c-format
 msgid "Availability: 2.0 - requires GEOS >= 3.3.0 for the version taking flags."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:895
+#: reference_accessor.xml:898
 #, no-c-format
 msgid ""
       "--First 3 Rejects from a successful quintuplet experiment\n"
@@ -1381,61 +1387,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:902
+#: reference_accessor.xml:905
 #, no-c-format
 msgid ", <xref linkend=\"ST_Summary\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:908
+#: reference_accessor.xml:911
 #, no-c-format
 msgid "ST_IsValidDetail"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:910
+#: reference_accessor.xml:913
 #, no-c-format
 msgid "Returns a valid_detail (valid,reason,location) row stating if a geometry is valid or not and if not valid, a reason why and a location where."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:914
+#: reference_accessor.xml:917
 #, no-c-format
 msgid "<funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>valid_detail <function>ST_IsValidDetail</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef><type>integer </type> <parameter>flags</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:930
+#: reference_accessor.xml:933
 #, no-c-format
 msgid "Returns a valid_detail row, formed by a boolean (valid) stating if a geometry is valid, a varchar (reason) stating a reason why it is invalid and a geometry (location) pointing out where it is invalid."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:932
+#: reference_accessor.xml:935
 #, no-c-format
 msgid "Useful to substitute and improve the combination of ST_IsValid and ST_IsValidReason to generate a detailed report of invalid geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:934
+#: reference_accessor.xml:937
 #, no-c-format
 msgid "The 'flags' argument is a bitfield. It can have the following values:"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:938
+#: reference_accessor.xml:941
 #, no-c-format
 msgid "1: Consider self-intersecting rings forming holes as valid. This is also know as \"the ESRI flag\". Note that this is against the OGC model."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:947
+#: reference_accessor.xml:950
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:955
+#: reference_accessor.xml:958
 #, no-c-format
 msgid ""
       "--First 3 Rejects from a successful quintuplet experiment\n"
@@ -1473,49 +1479,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:962
+#: reference_accessor.xml:965
 #, no-c-format
 msgid ", <xref linkend=\"ST_IsValidReason\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:971
+#: reference_accessor.xml:974
 #, no-c-format
 msgid "ST_M"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:973
+#: reference_accessor.xml:976
 #, no-c-format
 msgid "<refpurpose>Return the M coordinate of the point, or NULL if not available. Input must be a point.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:979
+#: reference_accessor.xml:982
 #, no-c-format
 msgid "<funcdef>float <function>ST_M</function></funcdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:989
+#: reference_accessor.xml:992
 #, no-c-format
 msgid "<para>Return the M coordinate of the point, or NULL if not available. Input must be a point.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:993
+#: reference_accessor.xml:996
 #, no-c-format
 msgid "This is not (yet) part of the OGC spec, but is listed here to complete the point coordinate extractor function list."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:997 reference_accessor.xml:1892
+#: reference_accessor.xml:1000 reference_accessor.xml:1891
 #, no-c-format
 msgid "&sqlmm_compliant;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1005
+#: reference_accessor.xml:1008
 #, no-c-format
 msgid ""
       "SELECT ST_M(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -1526,37 +1532,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1012
+#: reference_accessor.xml:1015
 #, no-c-format
 msgid ", <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1018
+#: reference_accessor.xml:1021
 #, no-c-format
 msgid "ST_NDims"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1019
+#: reference_accessor.xml:1022
 #, no-c-format
 msgid "Returns coordinate dimension of the geometry as a small int. Values are: 2,3 or 4."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1025
+#: reference_accessor.xml:1028
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NDims</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1035
+#: reference_accessor.xml:1038
 #, no-c-format
 msgid "Returns the coordinate dimension of the geometry. PostGIS supports 2 - (x,y) , 3 - (x,y,z) or 2D with measure - x,y,m, and 4 - 3D with measure space x,y,z,m"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1044
+#: reference_accessor.xml:1047
 #, no-c-format
 msgid ""
       "SELECT ST_NDims(ST_GeomFromText('POINT(1 1)')) As d2point,\n"
@@ -1569,43 +1575,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1048
+#: reference_accessor.xml:1051
 #, no-c-format
 msgid ", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1054
+#: reference_accessor.xml:1057
 #, no-c-format
 msgid "ST_NPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1055
+#: reference_accessor.xml:1058
 #, no-c-format
 msgid "Return the number of points (vertexes) in a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1060
+#: reference_accessor.xml:1063
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NPoints</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1070
+#: reference_accessor.xml:1073
 #, no-c-format
 msgid "Return the number of points in a geometry. Works for all geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1072
+#: reference_accessor.xml:1075
 #, no-c-format
 msgid "Prior to 1.3.4, this function crashes if used with geometries that contain CURVES. This is fixed in 1.3.4+"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1082
+#: reference_accessor.xml:1085
 #, no-c-format
 msgid ""
       "SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)'));\n"
@@ -1619,31 +1625,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1093
+#: reference_accessor.xml:1096
 #, no-c-format
 msgid "ST_NRings"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1094
+#: reference_accessor.xml:1097
 #, no-c-format
 msgid "If the geometry is a polygon or multi-polygon returns the number of rings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1099
+#: reference_accessor.xml:1102
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NRings</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1109
+#: reference_accessor.xml:1112
 #, no-c-format
 msgid "If the geometry is a polygon or multi-polygon returns the number of rings. Unlike NumInteriorRings, it counts the outer rings as well."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1119
+#: reference_accessor.xml:1122
 #, no-c-format
 msgid ""
       "SELECT ST_NRings(the_geom) As Nrings, ST_NumInteriorRings(the_geom) As ninterrings\n"
@@ -1655,43 +1661,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1132
+#: reference_accessor.xml:1135
 #, no-c-format
 msgid "ST_NumGeometries"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1133
+#: reference_accessor.xml:1136
 #, no-c-format
 msgid "If geometry is a GEOMETRYCOLLECTION (or MULTI*) return the number of geometries, for single geometries will return 1, otherwise return NULL."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1139
+#: reference_accessor.xml:1142
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NumGeometries</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1149
+#: reference_accessor.xml:1152
 #, no-c-format
 msgid "Returns the number of Geometries. If geometry is a GEOMETRYCOLLECTION (or MULTI*) return the number of geometries, for single geometries will return 1, otherwise return NULL."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1153
+#: reference_accessor.xml:1156
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this would return NULL if the geometry was not a collection/MULTI type. 2.0.0+ now returns 1 for single geometries e.g POLYGON, LINESTRING, POINT."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1155
+#: reference_accessor.xml:1158
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.1.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1165
+#: reference_accessor.xml:1168
 #, no-c-format
 msgid ""
       "--Prior versions would have returned NULL for this -- in 2.0.0 this returns 1\n"
@@ -1708,43 +1714,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1170
+#: reference_accessor.xml:1173
 #, no-c-format
 msgid ", <xref linkend=\"ST_Multi\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1176
+#: reference_accessor.xml:1179
 #, no-c-format
 msgid "ST_NumInteriorRings"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1177
+#: reference_accessor.xml:1180
 #, no-c-format
-msgid "<refpurpose>Return the number of interior rings of the first polygon in the geometry. This will work with both POLYGON and MULTIPOLYGON types but only looks at the first polygon. Return NULL if there is no polygon in the geometry.</refpurpose>"
+msgid "Return the number of interior rings of the a polygon in the geometry. This will work with POLYGON and return NULL for a MULTIPOLYGON type or any other type"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1185
+#: reference_accessor.xml:1186
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NumInteriorRings</function></funcdef> <paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1195
+#: reference_accessor.xml:1196
 #, no-c-format
-msgid "<para>Return the number of interior rings of the first polygon in the geometry. This will work with both POLYGON and MULTIPOLYGON types but only looks at the first polygon. Return NULL if there is no polygon in the geometry.</para>"
+msgid "Return the number of interior rings of the first polygon in the geometry. This will work with both POLYGON and MULTIPOLYGON types but only looks at the first polygon. Return NULL if there is no polygon in the geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1200 reference_accessor.xml:1239
+#: reference_accessor.xml:1201
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.2.5"
 msgstr ""
 
+#. Tag: para
+#: reference_accessor.xml:1202
+#, no-c-format
+msgid "Changed: 2.0.0 - in prior versions it would return the number of interior rings for the first POLYGON in a MULTIPOLYGON."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_accessor.xml:1206
+#: reference_accessor.xml:1208
 #, no-c-format
 msgid ""
       "--If you have a regular polygon\n"
@@ -1760,67 +1772,61 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1217
+#: reference_accessor.xml:1219
 #, no-c-format
 msgid "ST_NumInteriorRing"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1218
+#: reference_accessor.xml:1220
 #, no-c-format
-msgid "Return the number of interior rings of the first polygon in the geometry. Synonym to ST_NumInteriorRings."
+msgid "Return the number of interior rings of a polygon in the geometry. Synonym for ST_NumInteriorRings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1224
+#: reference_accessor.xml:1226
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NumInteriorRing</function></funcdef> <paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
 msgstr ""
 
-#. Tag: para
-#: reference_accessor.xml:1234
-#, no-c-format
-msgid "Return the number of interior rings of the first polygon in the geometry. Synonym to ST_NumInteriorRings. The OpenGIS specs are ambiguous about the exact function naming, so we provide both spellings."
-msgstr ""
-
 #. Tag: refname
-#: reference_accessor.xml:1251
+#: reference_accessor.xml:1242
 #, no-c-format
 msgid "ST_NumPatches"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1252
+#: reference_accessor.xml:1243
 #, no-c-format
 msgid "Return the number of faces on a Polyhedral Surface. Will return null for non-polyhedral geometries."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1257
+#: reference_accessor.xml:1248
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NumPatches</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1267
+#: reference_accessor.xml:1258
 #, no-c-format
 msgid "Return the number of faces on a Polyhedral Surface. Will return null for non-polyhedral geometries. This is an alias for ST_NumGeometries to support MM naming. Faster to use ST_NumGeometries if you don't care about MM convention."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1270 reference_accessor.xml:1365
+#: reference_accessor.xml:1261 reference_accessor.xml:1356
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1273 reference_accessor.xml:1366
+#: reference_accessor.xml:1264 reference_accessor.xml:1357
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: ?"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1280
+#: reference_accessor.xml:1271
 #, no-c-format
 msgid ""
       "SELECT ST_NumPatches(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
@@ -1832,37 +1838,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1291
+#: reference_accessor.xml:1282
 #, no-c-format
 msgid "ST_NumPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1292
+#: reference_accessor.xml:1283
 #, no-c-format
 msgid "Return the number of points in an ST_LineString or ST_CircularString value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1298
+#: reference_accessor.xml:1289
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NumPoints</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1308
+#: reference_accessor.xml:1299
 #, no-c-format
 msgid "Return the number of points in an ST_LineString or ST_CircularString value. Prior to 1.4 only works with Linestrings as the specs state. From 1.4 forward this is an alias for ST_NPoints which returns number of vertexes for not just line strings. Consider using ST_NPoints instead which is multi-purpose and works with many geometry types."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1315
+#: reference_accessor.xml:1306
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1321
+#: reference_accessor.xml:1312
 #, no-c-format
 msgid ""
       "SELECT ST_NumPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)'));\n"
@@ -1871,43 +1877,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1332
+#: reference_accessor.xml:1323
 #, no-c-format
 msgid "ST_PatchN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1334
+#: reference_accessor.xml:1325
 #, no-c-format
 msgid "Return the 1-based Nth geometry (face) if the geometry is a POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1341
+#: reference_accessor.xml:1332
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_PatchN</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1352
+#: reference_accessor.xml:1343
 #, no-c-format
 msgid ">Return the 1-based Nth geometry (face) if the geometry is a POLYHEDRALSURFACE, POLYHEDRALSURFACEM. Otherwise, return NULL. This returns the same answer as ST_GeometryN for Polyhedral Surfaces. Using ST_GemoetryN is faster."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1358
+#: reference_accessor.xml:1349
 #, no-c-format
 msgid "Index is 1-based."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1362
+#: reference_accessor.xml:1353
 #, no-c-format
 msgid "If you want to extract all geometries, of a geometry, ST_Dump is more efficient."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1376
+#: reference_accessor.xml:1367
 #, no-c-format
 msgid ""
       "--Extract the 2nd face of the polyhedral surface\n"
@@ -1924,49 +1930,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1383
+#: reference_accessor.xml:1374
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1389
+#: reference_accessor.xml:1380
 #, no-c-format
 msgid "ST_PointN"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1391
+#: reference_accessor.xml:1382
 #, no-c-format
-msgid "<refpurpose>Return the Nth point in the first linestring or circular linestring in the geometry. Return NULL if there is no linestring in the geometry.</refpurpose>"
+msgid "Return the Nth point in the first linestring or circular linestring in the geometry. Return NULL if there is no linestring in the geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1398
+#: reference_accessor.xml:1389
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_PointN</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>integer </type> <parameter>n</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1409
+#: reference_accessor.xml:1400
 #, no-c-format
-msgid "<para>Return the Nth point in the first linestring or circular linestring in the geometry. Return NULL if there is no linestring in the geometry.</para>"
+msgid "Return the Nth point in a single linestring or circular linestring in the geometry. Return NULL if there is no linestring in the geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1419
+#: reference_accessor.xml:1410
 #, no-c-format
 msgid "If you want to get the nth point of each line string in a multilinestring, use in conjunction with ST_Dump"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1424
+#: reference_accessor.xml:1415
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.5, 7.3.5"
 msgstr ""
 
+#. Tag: para
+#: reference_accessor.xml:1418
+#, no-c-format
+msgid "Changed: 2.0.0 no longer works with single geometry multilinestrings. In older versions of PostGIS -- a single line multilinestring would work happily with this function and return the start point. In 2.0.0 it just returns NULL like any other multilinestring."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_accessor.xml:1434
+#: reference_accessor.xml:1428
 #, no-c-format
 msgid ""
       "-- Extract all POINTs from a LINESTRING\n"
@@ -1993,43 +2005,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1446
+#: reference_accessor.xml:1440
 #, no-c-format
 msgid "ST_SRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1447
+#: reference_accessor.xml:1441
 #, no-c-format
 msgid "Returns the spatial reference identifier for the ST_Geometry as defined in spatial_ref_sys table."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1452
+#: reference_accessor.xml:1446
 #, no-c-format
 msgid "<funcdef>integer <function>ST_SRID</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1462
+#: reference_accessor.xml:1456
 #, no-c-format
 msgid "Returns the spatial reference identifier for the ST_Geometry as defined in spatial_ref_sys table. <xref linkend=\"spatial_ref_sys\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1463
+#: reference_accessor.xml:1457
 #, no-c-format
 msgid "spatial_ref_sys table is a table that catalogs all spatial reference systems known to PostGIS and is used for transformations from one spatial reference system to another. So verifying you have the right spatial reference system identifier is important if you plan to ever transform your geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1467
+#: reference_accessor.xml:1461
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.5"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1475
+#: reference_accessor.xml:1469
 #, no-c-format
 msgid ""
       "SELECT ST_SRID(ST_GeomFromText('POINT(-71.1043 42.315)',4326));\n"
@@ -2038,43 +2050,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1480
+#: reference_accessor.xml:1474
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1486
+#: reference_accessor.xml:1480
 #, no-c-format
 msgid "ST_StartPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1488
+#: reference_accessor.xml:1482
 #, no-c-format
 msgid "Returns the first point of a <varname>LINESTRING</varname> geometry as a <varname>POINT</varname>."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1494
+#: reference_accessor.xml:1488
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_StartPoint</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1505
+#: reference_accessor.xml:1499
 #, no-c-format
-msgid "Returns the first point of a <varname>LINESTRING</varname> geometry as a <varname>POINT</varname> or <varname>NULL</varname> if the input parameter is not a <varname>LINESTRING</varname>."
+msgid "Returns the first point of a <varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname> geometry as a <varname>POINT</varname> or <varname>NULL</varname> if the input parameter is not a <varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1509
+#: reference_accessor.xml:1503
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1522
+#: reference_accessor.xml:1518
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_StartPoint('LINESTRING(0 1, 0 2)'::geometry));\n"
@@ -2094,150 +2106,174 @@ msgid ""
       " st_asewkt\n"
       "------------\n"
       " POINT(0 1 1)\n"
-      "(1 row)"
+      "(1 row)\n"
+      "\n"
+      "-- circular linestring --\n"
+      "SELECT ST_AsText(ST_StartPoint('CIRCULARSTRING(5 2,-3 1.999999, -2 1, -4 2, 5 2)'::geometry));\n"
+      " st_astext\n"
+      "------------\n"
+      " POINT(5 2)"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1528
+#: reference_accessor.xml:1524
 #, no-c-format
 msgid ", <xref linkend=\"ST_PointN\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1533
+#: reference_accessor.xml:1529
 #, no-c-format
 msgid "ST_Summary"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1535
+#: reference_accessor.xml:1531
 #, no-c-format
 msgid "<refpurpose>Returns a text summary of the contents of the geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_accessor.xml:1541
+#: reference_accessor.xml:1537
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>ST_Summary</function></funcdef> <paramdef><type>geometry </type> <parameter>g</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_Summary</function></funcdef> <paramdef><type>geography </type> <parameter>g</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1556
+#: reference_accessor.xml:1552
 #, no-c-format
 msgid "<para>Returns a text summary of the contents of the geometry.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1558
+#: reference_accessor.xml:1554
 #, no-c-format
 msgid "Flags shown square brackets after the geometry type have the following meaning:"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1562
+#: reference_accessor.xml:1558
 #, no-c-format
 msgid "M: has M ordinate"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1563
+#: reference_accessor.xml:1559
 #, no-c-format
 msgid "Z: has Z ordinate"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1564
+#: reference_accessor.xml:1560
 #, no-c-format
 msgid "B: has a cached bounding box"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1565
+#: reference_accessor.xml:1561
 #, no-c-format
 msgid "G: is geodetic (geography)"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1569
+#: reference_accessor.xml:1562
+#, no-c-format
+msgid "S: has spatial reference system"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1566
+#, no-c-format
+msgid "Availability: 1.2.2"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1567
+#, no-c-format
+msgid "Enhanced: 2.0.0 added support for geography"
+msgstr ""
+
+#. Tag: para
+#: reference_accessor.xml:1568
 #, no-c-format
-msgid "Availability: 1.2.2 - 2.0.0 added support for geography"
+msgid "Enhanced: 2.1.0 S flag to denote if has a known spatial reference system"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1576
+#: reference_accessor.xml:1575
 #, no-c-format
 msgid ""
       "=# SELECT ST_Summary(ST_GeomFromText('LINESTRING(0 0, 1 1)')) as geom,\n"
       "        ST_Summary(ST_GeogFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) geog;\n"
       "            geom             |          geog    \n"
       "-----------------------------+--------------------------\n"
-      " LineString[B] with 2 points | Polygon[BG] with 1 rings\n"
-      "                             :    ring 0 has 5 points\n"
+      " LineString[B] with 2 points | Polygon[BGS] with 1 rings\n"
+      "                             | ring 0 has 5 points\n"
       "                             :\n"
       "(1 row)\n"
       "\n"
       "\n"
       "=# SELECT ST_Summary(ST_GeogFromText('LINESTRING(0 0 1, 1 1 1)')) As geog_line,\n"
-      "        ST_Summary(ST_GeomFromText('POLYGON((0 0 1, 1 1 2, 1 2 3, 1 1 1, 0 0 1))')) As geom_poly;\n"
+      "        ST_Summary(ST_GeomFromText('SRID=4326;POLYGON((0 0 1, 1 1 2, 1 2 3, 1 1 1, 0 0 1))')) As geom_poly;\n"
       ";\n"
-      "           geog_line           |        geom_poly\n"
-      "-------------------------------+--------------------------\n"
-      " LineString[ZBG] with 2 points | Polygon[ZB] with 1 rings\n"
-      "                               :    ring 0 has 5 points\n"
-      "                               :\n"
+      "           geog_line             |        geom_poly\n"
+      "-------------------------------- +--------------------------\n"
+      " LineString[ZBGS] with 2 points | Polygon[ZBS] with 1 rings\n"
+      "                                :    ring 0 has 5 points\n"
+      "                                :\n"
       "(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1582
+#: reference_accessor.xml:1581
 #, no-c-format
-msgid ", <xref linkend=\"PostGIS_AddBBox\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"geography\"/>"
+msgid ", <xref linkend=\"PostGIS_AddBBox\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref linkend=\"ST_Force_3DZ\"/>, <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"geography\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1591
+#: reference_accessor.xml:1590
 #, no-c-format
 msgid ", <xref linkend=\"ST_IsValid\"/>, <xref linkend=\"ST_IsValidReason\"/>, <xref linkend=\"ST_IsValidDetail\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1602
+#: reference_accessor.xml:1601
 #, no-c-format
 msgid "ST_X"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1604
+#: reference_accessor.xml:1603
 #, no-c-format
 msgid "<refpurpose>Return the X coordinate of the point, or NULL if not available. Input must be a point.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1610
+#: reference_accessor.xml:1609
 #, no-c-format
 msgid "<funcdef>float <function>ST_X</function></funcdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1620
+#: reference_accessor.xml:1619
 #, no-c-format
 msgid "<para>Return the X coordinate of the point, or NULL if not available. Input must be a point.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1623
+#: reference_accessor.xml:1622
 #, no-c-format
 msgid "If you want to get the max min x values of any geometry look at ST_XMin, ST_XMax functions."
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1625
+#: reference_accessor.xml:1624
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1633
+#: reference_accessor.xml:1632
 #, no-c-format
 msgid ""
       "SELECT ST_X(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -2254,43 +2290,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1640
+#: reference_accessor.xml:1639
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_Z\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1646
+#: reference_accessor.xml:1645
 #, no-c-format
 msgid "ST_XMax"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1648
+#: reference_accessor.xml:1647
 #, no-c-format
 msgid "<refpurpose>Returns X maxima of a bounding box 2d or 3d or a geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1653
+#: reference_accessor.xml:1652
 #, no-c-format
 msgid "<funcdef>float <function>ST_XMax</function></funcdef> <paramdef><type>box3d </type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1663
+#: reference_accessor.xml:1662
 #, no-c-format
 msgid "<para>Returns X maxima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1666 reference_accessor.xml:1711 reference_accessor.xml:1799 reference_accessor.xml:1844 reference_accessor.xml:1932 reference_accessor.xml:2019
+#: reference_accessor.xml:1665 reference_accessor.xml:1710 reference_accessor.xml:1798 reference_accessor.xml:1843 reference_accessor.xml:1931 reference_accessor.xml:2018
 #, no-c-format
 msgid "Although this function is only defined for box3d, it will work for box2d and geometry because of the auto-casting behavior defined for geometries and box2d. However you can not feed it a geometry or box2d text representation, since that will not auto-cast."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1678
+#: reference_accessor.xml:1677
 #, no-c-format
 msgid ""
       "SELECT ST_XMax('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2319,37 +2355,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1685 reference_accessor.xml:1730
+#: reference_accessor.xml:1684 reference_accessor.xml:1729
 #, no-c-format
 msgid ", <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1691
+#: reference_accessor.xml:1690
 #, no-c-format
 msgid "ST_XMin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1693
+#: reference_accessor.xml:1692
 #, no-c-format
 msgid "<refpurpose>Returns X minima of a bounding box 2d or 3d or a geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1698
+#: reference_accessor.xml:1697
 #, no-c-format
 msgid "<funcdef>float <function>ST_XMin</function></funcdef> <paramdef><type>box3d </type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1708
+#: reference_accessor.xml:1707
 #, no-c-format
 msgid "<para>Returns X minima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1723
+#: reference_accessor.xml:1722
 #, no-c-format
 msgid ""
       "SELECT ST_XMin('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2378,37 +2414,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1736
+#: reference_accessor.xml:1735
 #, no-c-format
 msgid "ST_Y"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1738
+#: reference_accessor.xml:1737
 #, no-c-format
 msgid "<refpurpose>Return the Y coordinate of the point, or NULL if not available. Input must be a point.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1744
+#: reference_accessor.xml:1743
 #, no-c-format
 msgid "<funcdef>float <function>ST_Y</function></funcdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1754
+#: reference_accessor.xml:1753
 #, no-c-format
 msgid "<para>Return the Y coordinate of the point, or NULL if not available. Input must be a point.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1758
+#: reference_accessor.xml:1757
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1766
+#: reference_accessor.xml:1765
 #, no-c-format
 msgid ""
       "SELECT ST_Y(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -2425,37 +2461,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1773
+#: reference_accessor.xml:1772
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_Z\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1779
+#: reference_accessor.xml:1778
 #, no-c-format
 msgid "ST_YMax"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1781
+#: reference_accessor.xml:1780
 #, no-c-format
 msgid "<refpurpose>Returns Y maxima of a bounding box 2d or 3d or a geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1786
+#: reference_accessor.xml:1785
 #, no-c-format
 msgid "<funcdef>float <function>ST_YMax</function></funcdef> <paramdef><type>box3d </type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1796
+#: reference_accessor.xml:1795
 #, no-c-format
 msgid "<para>Returns Y maxima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1811
+#: reference_accessor.xml:1810
 #, no-c-format
 msgid ""
       "SELECT ST_YMax('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2484,37 +2520,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1818
+#: reference_accessor.xml:1817
 #, no-c-format
 msgid ", <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1824
+#: reference_accessor.xml:1823
 #, no-c-format
 msgid "ST_YMin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1826
+#: reference_accessor.xml:1825
 #, no-c-format
 msgid "<refpurpose>Returns Y minima of a bounding box 2d or 3d or a geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1831
+#: reference_accessor.xml:1830
 #, no-c-format
 msgid "<funcdef>float <function>ST_YMin</function></funcdef> <paramdef><type>box3d </type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1841
+#: reference_accessor.xml:1840
 #, no-c-format
 msgid "<para>Returns Y minima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1856
+#: reference_accessor.xml:1855
 #, no-c-format
 msgid ""
       "SELECT ST_YMin('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2543,37 +2579,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1863
+#: reference_accessor.xml:1862
 #, no-c-format
 msgid ", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1869
+#: reference_accessor.xml:1868
 #, no-c-format
 msgid "ST_Z"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1871
+#: reference_accessor.xml:1870
 #, no-c-format
 msgid "<refpurpose>Return the Z coordinate of the point, or NULL if not available. Input must be a point.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1877
+#: reference_accessor.xml:1876
 #, no-c-format
 msgid "<funcdef>float <function>ST_Z</function></funcdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1887
+#: reference_accessor.xml:1886
 #, no-c-format
 msgid "<para>Return the Z coordinate of the point, or NULL if not available. Input must be a point.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1899
+#: reference_accessor.xml:1898
 #, no-c-format
 msgid ""
       "SELECT ST_Z(ST_GeomFromEWKT('POINT(1 2 3 4)'));\n"
@@ -2584,37 +2620,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1906
+#: reference_accessor.xml:1905
 #, no-c-format
 msgid ", <xref linkend=\"ST_M\"/>, <xref linkend=\"ST_X\"/>, <xref linkend=\"ST_Y\"/>, <xref linkend=\"ST_ZMax\"/>, <xref linkend=\"ST_ZMin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1912
+#: reference_accessor.xml:1911
 #, no-c-format
 msgid "ST_ZMax"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1914 reference_accessor.xml:2001
+#: reference_accessor.xml:1913 reference_accessor.xml:2000
 #, no-c-format
 msgid "<refpurpose>Returns Z minima of a bounding box 2d or 3d or a geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1919
+#: reference_accessor.xml:1918
 #, no-c-format
 msgid "<funcdef>float <function>ST_ZMax</function></funcdef> <paramdef><type>box3d </type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1929
+#: reference_accessor.xml:1928
 #, no-c-format
 msgid "Returns Z maxima of a bounding box 2d or 3d or a geometry."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1944
+#: reference_accessor.xml:1943
 #, no-c-format
 msgid ""
       "SELECT ST_ZMax('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2643,37 +2679,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1951
+#: reference_accessor.xml:1950
 #, no-c-format
 msgid ", <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_ZMax\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1957
+#: reference_accessor.xml:1956
 #, no-c-format
 msgid "ST_Zmflag"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_accessor.xml:1959
+#: reference_accessor.xml:1958
 #, no-c-format
 msgid "<refpurpose>Returns ZM (dimension semantic) flag of the geometries as a small int. Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:1965
+#: reference_accessor.xml:1964
 #, no-c-format
 msgid "<funcdef>smallint <function>ST_Zmflag</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1975
+#: reference_accessor.xml:1974
 #, no-c-format
 msgid "<para>Returns ZM (dimension semantic) flag of the geometries as a small int. Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:1986
+#: reference_accessor.xml:1985
 #, no-c-format
 msgid ""
       "SELECT ST_Zmflag(ST_GeomFromEWKT('LINESTRING(1 2, 3 4)'));\n"
@@ -2697,31 +2733,31 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:1993
+#: reference_accessor.xml:1992
 #, no-c-format
 msgid ", <xref linkend=\"ST_NDims\"/>, <xref linkend=\"ST_Dimension\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_accessor.xml:1999
+#: reference_accessor.xml:1998
 #, no-c-format
 msgid "ST_ZMin"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_accessor.xml:2006
+#: reference_accessor.xml:2005
 #, no-c-format
 msgid "<funcdef>float <function>ST_ZMin</function></funcdef> <paramdef><type>box3d </type> <parameter>aGeomorBox2DorBox3D</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:2016
+#: reference_accessor.xml:2015
 #, no-c-format
 msgid "<para>Returns Z minima of a bounding box 2d or 3d or a geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_accessor.xml:2031
+#: reference_accessor.xml:2030
 #, no-c-format
 msgid ""
       "SELECT ST_ZMin('BOX3D(1 2 3, 4 5 6)');\n"
@@ -2750,7 +2786,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_accessor.xml:2038
+#: reference_accessor.xml:2037
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_XMin\"/>, <xref linkend=\"ST_XMax\"/>, <xref linkend=\"ST_YMax\"/>, <xref linkend=\"ST_YMin\"/>, <xref linkend=\"ST_ZMax\"/>"
 msgstr ""
diff --git a/doc/po/templates/reference_constructor.xml.pot b/doc/po/templates/reference_constructor.xml.pot
index 6ed6dda..69185e2 100644
--- a/doc/po/templates/reference_constructor.xml.pot
+++ b/doc/po/templates/reference_constructor.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -39,7 +39,7 @@ msgid "<funcdef>geometry <function>ST_BdPolyFromText</function></funcdef> <param
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:23 reference_constructor.xml:72 reference_constructor.xml:119 reference_constructor.xml:148 reference_constructor.xml:175 reference_constructor.xml:227 reference_constructor.xml:278 reference_constructor.xml:326 reference_constructor.xml:369 reference_constructor.xml:400 reference_constructor.xml:474 reference_constructor.xml:513 reference_constructor.xml:564 reference_constructor.xml:596 reference_constructor.xml:649 reference_constructor.xml:695 reference_c [...]
+#: reference_constructor.xml:23 reference_constructor.xml:72 reference_constructor.xml:123 reference_constructor.xml:159 reference_constructor.xml:188 reference_constructor.xml:215 reference_constructor.xml:267 reference_constructor.xml:318 reference_constructor.xml:366 reference_constructor.xml:409 reference_constructor.xml:438 reference_constructor.xml:481 reference_constructor.xml:555 reference_constructor.xml:594 reference_constructor.xml:645 reference_constructor.xml:677 reference_c [...]
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -57,7 +57,7 @@ msgid "Throws an error if WKT is not a MULTILINESTRING. Throws an error if outpu
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:36 reference_constructor.xml:88 reference_constructor.xml:241 reference_constructor.xml:756 reference_constructor.xml:824 reference_constructor.xml:890 reference_constructor.xml:1321 reference_constructor.xml:1443 reference_constructor.xml:1705
+#: reference_constructor.xml:36 reference_constructor.xml:88 reference_constructor.xml:281 reference_constructor.xml:921 reference_constructor.xml:989 reference_constructor.xml:1055 reference_constructor.xml:1486 reference_constructor.xml:1608 reference_constructor.xml:1910
 #, no-c-format
 msgid "&sfs_compliant; s3.2.6.2"
 msgstr ""
@@ -69,7 +69,7 @@ msgid "Availability: 1.1.0 - requires GEOS >= 2.1.0."
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:42 reference_constructor.xml:94 reference_constructor.xml:125 reference_constructor.xml:190 reference_constructor.xml:248 reference_constructor.xml:292 reference_constructor.xml:340 reference_constructor.xml:485 reference_constructor.xml:617 reference_constructor.xml:665 reference_constructor.xml:703 reference_constructor.xml:763 reference_constructor.xml:831 reference_constructor.xml:895 reference_constructor.xml:935 reference_constructor.xml:982 reference_c [...]
+#: reference_constructor.xml:42 reference_constructor.xml:94 reference_constructor.xml:135 reference_constructor.xml:165 reference_constructor.xml:230 reference_constructor.xml:288 reference_constructor.xml:332 reference_constructor.xml:380 reference_constructor.xml:450 reference_constructor.xml:566 reference_constructor.xml:698 reference_constructor.xml:746 reference_constructor.xml:791 reference_constructor.xml:830 reference_constructor.xml:868 reference_constructor.xml:928 reference_c [...]
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -81,7 +81,7 @@ msgid "Forthcoming"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:48 reference_constructor.xml:100 reference_constructor.xml:129 reference_constructor.xml:153 reference_constructor.xml:195 reference_constructor.xml:255 reference_constructor.xml:305 reference_constructor.xml:346 reference_constructor.xml:374 reference_constructor.xml:453 reference_constructor.xml:492 reference_constructor.xml:540 reference_constructor.xml:571 reference_constructor.xml:621 reference_constructor.xml:672 reference_constructor.xml:710 reference_ [...]
+#: reference_constructor.xml:48 reference_constructor.xml:100 reference_constructor.xml:139 reference_constructor.xml:169 reference_constructor.xml:193 reference_constructor.xml:235 reference_constructor.xml:295 reference_constructor.xml:345 reference_constructor.xml:386 reference_constructor.xml:414 reference_constructor.xml:454 reference_constructor.xml:534 reference_constructor.xml:573 reference_constructor.xml:621 reference_constructor.xml:652 reference_constructor.xml:702 reference_ [...]
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -131,29 +131,100 @@ msgstr ""
 #. Tag: refname
 #: reference_constructor.xml:107
 #, no-c-format
+msgid "ST_Box2dFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:109
+#, no-c-format
+msgid "<refpurpose>Return a BOX2D from a GeoHash string.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:114
+#, no-c-format
+msgid "<funcdef>box2d <function>ST_Box2dFromGeoHash</function></funcdef> <paramdef><type>text </type> <parameter>geohash</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:125
+#, no-c-format
+msgid "<para>Return a BOX2D from a GeoHash string.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:127
+#, no-c-format
+msgid "If no <varname>precision</varname> is specficified ST_Box2dFromGeoHash returns a BOX2D based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:129
+#, no-c-format
+msgid "If <varname>precision</varname> is specified ST_Box2dFromGeoHash will use that many characters from the GeoHash to create the BOX2D. Lower precision values results in larger BOX2Ds and larger values increase the precision."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:131 reference_constructor.xml:446 reference_constructor.xml:1705
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:136
+#, no-c-format
+msgid ""
+      "<![CDATA[SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0');\n"
+      "\n"
+      "                st_geomfromgeohash\n"
+      "--------------------------------------------------\n"
+      " BOX(-115.172816 36.114646,-115.172816 36.114646)\n"
+      "\n"
+      "SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 0);\n"
+      "\n"
+      " st_box2dfromgeohash\n"
+      "----------------------\n"
+      " BOX(-180 -90,180 90)\n"
+      "\n"
+      " SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10);\n"
+      "                            st_box2dfromgeohash\n"
+      "---------------------------------------------------------------------------\n"
+      " BOX(-115.17282128334 36.1146408319473,-115.172810554504 36.1146461963654)\n"
+      "                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:141
+#, no-c-format
+msgid ", <xref linkend=\"ST_GeomFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:147
+#, no-c-format
 msgid "ST_GeogFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:108 reference_constructor.xml:137
+#: reference_constructor.xml:148 reference_constructor.xml:177
 #, no-c-format
 msgid "Return a specified geography value from Well-Known Text representation or extended (WKT)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:112
+#: reference_constructor.xml:152
 #, no-c-format
 msgid "<funcdef>geography <function>ST_GeogFromText</function></funcdef> <paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:120
+#: reference_constructor.xml:160
 #, no-c-format
 msgid "Returns a geography object from the well-known text or extended well-known representation. SRID 4326 is assumed. This is an alias for ST_GeographyFromText. Points are always expressed in long lat form."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:126
+#: reference_constructor.xml:166
 #, no-c-format
 msgid ""
       "--- converting lon lat coords to geography\n"
@@ -162,73 +233,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:130
+#: reference_constructor.xml:170
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeographyFromText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:136
+#: reference_constructor.xml:176
 #, no-c-format
 msgid "ST_GeographyFromText"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:141
+#: reference_constructor.xml:181
 #, no-c-format
 msgid "<funcdef>geography <function>ST_GeographyFromText</function></funcdef> <paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:149
+#: reference_constructor.xml:189
 #, no-c-format
 msgid "Returns a geography object from the well-known text representation. SRID 4326 is assumed."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:154
+#: reference_constructor.xml:194
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:160
+#: reference_constructor.xml:200
 #, no-c-format
 msgid "ST_GeogFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:161
+#: reference_constructor.xml:201
 #, no-c-format
 msgid "Creates a geography instance from a Well-Known Binary geometry representation (WKB) or extended Well Known Binary (EWKB)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:167
+#: reference_constructor.xml:207
 #, no-c-format
 msgid "<funcdef>geography <function>ST_GeogFromWKB</function></funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:177
+#: reference_constructor.xml:217
 #, no-c-format
 msgid "The <varname>ST_GeogFromWKB</varname> function, takes a well-known binary representation (WKB) of a geometry or PostGIS Extended WKB and creates an instance of the appropriate geography type. This function plays the role of the Geometry Factory in SQL."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:182
+#: reference_constructor.xml:222
 #, no-c-format
 msgid "If SRID is not specified, it defaults to 4326 (WGS 84 long lat)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:184 reference_constructor.xml:286 reference_constructor.xml:334 reference_constructor.xml:610 reference_constructor.xml:660 reference_constructor.xml:1605
+#: reference_constructor.xml:224 reference_constructor.xml:326 reference_constructor.xml:374 reference_constructor.xml:691 reference_constructor.xml:741 reference_constructor.xml:1810
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:192
+#: reference_constructor.xml:232
 #, no-c-format
 msgid ""
       "--Although bytea rep contains single \\, these need to be escaped when inserting into a table\n"
@@ -242,139 +313,139 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:197
+#: reference_constructor.xml:237
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsBinary\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:204
+#: reference_constructor.xml:244
 #, no-c-format
 msgid "ST_GeomCollFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:206
+#: reference_constructor.xml:246
 #, no-c-format
-msgid "Makes a collection Geometry from collection WKT with the given SRID. If SRID is not give, it defaults to -1."
+msgid "Makes a collection Geometry from collection WKT with the given SRID. If SRID is not give, it defaults to 0."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:211
+#: reference_constructor.xml:251
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_GeomCollFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:229
+#: reference_constructor.xml:269
 #, no-c-format
-msgid "Makes a collection Geometry from the Well-Known-Text (WKT) representation with the given SRID. If SRID is not give, it defaults to -1."
+msgid "Makes a collection Geometry from the Well-Known-Text (WKT) representation with the given SRID. If SRID is not give, it defaults to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:232 reference_constructor.xml:1310 reference_constructor.xml:1371 reference_constructor.xml:1432 reference_constructor.xml:1700
+#: reference_constructor.xml:272 reference_constructor.xml:1475 reference_constructor.xml:1536 reference_constructor.xml:1597 reference_constructor.xml:1905
 #, no-c-format
 msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:234
+#: reference_constructor.xml:274
 #, no-c-format
 msgid "Returns null if the WKT is not a GEOMETRYCOLLECTION"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:236
+#: reference_constructor.xml:276
 #, no-c-format
 msgid "If you are absolutely sure all your WKT geometries are collections, don't use this function. It is slower than ST_GeomFromText since it adds an additional validation step."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:242
+#: reference_constructor.xml:282
 #, no-c-format
 msgid "&sqlmm_compliant;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:250
+#: reference_constructor.xml:290
 #, no-c-format
 msgid "SELECT ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 4))');"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:257 reference_constructor.xml:1459
+#: reference_constructor.xml:297 reference_constructor.xml:1624
 #, no-c-format
 msgid ", <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:264
+#: reference_constructor.xml:304
 #, no-c-format
 msgid "ST_GeomFromEWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:265
+#: reference_constructor.xml:305
 #, no-c-format
 msgid "Return a specified ST_Geometry value from Extended Well-Known Binary representation (EWKB)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:270
+#: reference_constructor.xml:310
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_GeomFromEWKB</function></funcdef> <paramdef><type>bytea </type> <parameter>EWKB</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:279
+#: reference_constructor.xml:319
 #, no-c-format
 msgid "Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known binary (EWKT) representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:281
+#: reference_constructor.xml:321
 #, no-c-format
 msgid "The EWKB format is not an OGC standard, but a PostGIS specific format that includes the spatial reference system (SRID) identifier"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:284 reference_constructor.xml:332 reference_constructor.xml:420 reference_constructor.xml:567
+#: reference_constructor.xml:324 reference_constructor.xml:372 reference_constructor.xml:501 reference_constructor.xml:648
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:285 reference_constructor.xml:333 reference_constructor.xml:422 reference_constructor.xml:481 reference_constructor.xml:527 reference_constructor.xml:698 reference_constructor.xml:1034 reference_constructor.xml:1151 reference_constructor.xml:1230 reference_constructor.xml:1604 reference_constructor.xml:1652
+#: reference_constructor.xml:325 reference_constructor.xml:373 reference_constructor.xml:503 reference_constructor.xml:562 reference_constructor.xml:608 reference_constructor.xml:863 reference_constructor.xml:1199 reference_constructor.xml:1316 reference_constructor.xml:1395 reference_constructor.xml:1809 reference_constructor.xml:1857
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:287 reference_constructor.xml:335 reference_constructor.xml:423
+#: reference_constructor.xml:327 reference_constructor.xml:375 reference_constructor.xml:504
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:288 reference_constructor.xml:336 reference_constructor.xml:424
+#: reference_constructor.xml:328 reference_constructor.xml:376 reference_constructor.xml:505
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:293
+#: reference_constructor.xml:333
 #, no-c-format
 msgid "line string binary rep 0f LINESTRING(-71.160281 42.258729,-71.160837 42.259113,-71.161144 42.25932) in NAD 83 long lat (4269)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:295
+#: reference_constructor.xml:335
 #, no-c-format
 msgid "NOTE: Even though byte arrays are delimited with \\ and may have ', we need to escape both out with \\ and '' if standard_conforming_strings is off. So it does not look exactly like its AsEWKB representation."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:297
+#: reference_constructor.xml:337
 #, no-c-format
 msgid ""
       "SELECT ST_GeomFromEWKB(E'\\\\001\\\\002\\\\000\\\\000 \\\\255\\\\020\\\\000\\\\000\\\\003\\\\000\\\\000\\\\000\\\\344J=\n"
@@ -384,13 +455,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:299
+#: reference_constructor.xml:339
 #, no-c-format
 msgid "In PostgreSQL 9.1+ - standard_conforming_strings is set to on by default, where as in past versions it was set to on. You can change defaults as needed for a single query or at the database or server level. Below is how you would do it with standard_conforming_strings = on. In this case we escape the ' with standard ansi ', but slashes are not escaped"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:302
+#: reference_constructor.xml:342
 #, no-c-format
 msgid ""
       "set standard_conforming_strings = on;\n"
@@ -399,43 +470,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:306
+#: reference_constructor.xml:346
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_GeomFromWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:312
+#: reference_constructor.xml:352
 #, no-c-format
 msgid "ST_GeomFromEWKT"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:313
+#: reference_constructor.xml:353
 #, no-c-format
 msgid "Return a specified ST_Geometry value from Extended Well-Known Text representation (EWKT)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:318
+#: reference_constructor.xml:358
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_GeomFromEWKT</function></funcdef> <paramdef><type>text </type> <parameter>EWKT</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:327
+#: reference_constructor.xml:367
 #, no-c-format
 msgid "Constructs a PostGIS ST_Geometry object from the OGC Extended Well-Known text (EWKT) representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:329
+#: reference_constructor.xml:369
 #, no-c-format
 msgid "The EWKT format is not an OGC standard, but an PostGIS specific format that includes the spatial reference system (SRID) identifier"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:341
+#: reference_constructor.xml:381
 #, no-c-format
 msgid ""
       "SELECT ST_GeomFromEWKT('SRID=4269;LINESTRING(-71.160281 42.258729,-71.160837 42.259113,-71.161144 42.25932)');\n"
@@ -472,7 +543,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:342
+#: reference_constructor.xml:382
 #, no-c-format
 msgid ""
       "--3d circular string\n"
@@ -480,7 +551,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:343
+#: reference_constructor.xml:383
 #, no-c-format
 msgid ""
       "--Polyhedral Surface example\n"
@@ -495,121 +566,184 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:347
+#: reference_constructor.xml:387
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:352
+#: reference_constructor.xml:392
 #, no-c-format
 msgid "ST_GeometryFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:353 reference_constructor.xml:1749
+#: reference_constructor.xml:393 reference_constructor.xml:1954
 #, no-c-format
 msgid "Return a specified ST_Geometry value from Well-Known Text representation (WKT). This is an alias name for ST_GeomFromText"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:356
+#: reference_constructor.xml:396
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_GeometryFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:370 reference_constructor.xml:1650
+#: reference_constructor.xml:410 reference_constructor.xml:1855
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:371 reference_constructor.xml:609
+#: reference_constructor.xml:411 reference_constructor.xml:690
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.40"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:381
+#: reference_constructor.xml:422
+#, no-c-format
+msgid "ST_GeomFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:424
+#, no-c-format
+msgid "Return a geometry from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:429
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_GeomFromGeoHash</function></funcdef> <paramdef><type>text </type> <parameter>geohash</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:440
+#, no-c-format
+msgid "Return a geometry from a GeoHash string. The geometry will be a polygon representing the GeoHash bounds."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:442
+#, no-c-format
+msgid "If no <varname>precision</varname> is specficified ST_GeomFromGeoHash returns a polygon based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:444
+#, no-c-format
+msgid "If <varname>precision</varname> is specified ST_GeomFromGeoHash will use that many characters from the GeoHash to create the polygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:451
+#, no-c-format
+msgid ""
+      "<![CDATA[SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+      "                                                        st_astext\n"
+      "--------------------------------------------------------------------------------------------------------------------------\n"
+      " POLYGON((-115.172816 36.114646,-115.172816 36.114646,-115.172816 36.114646,-115.172816 36.114646,-115.172816 36.114646))\n"
+      "\n"
+      "SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+      "                                                          st_astext\n"
+      "------------------------------------------------------------------------------------------------------------------------------\n"
+      " POLYGON((-115.3125 36.03515625,-115.3125 36.2109375,-114.9609375 36.2109375,-114.9609375 36.03515625,-115.3125 36.03515625))\n"
+      "\n"
+      "SELECT ST_AsText(ST_GeomFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+      "                                                                                       st_astext\n"
+      "----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+      " POLYGON((-115.17282128334 36.1146408319473,-115.17282128334 36.1146461963654,-115.172810554504 36.1146461963654,-115.172810554504 36.1146408319473,-115.17282128334 36.1146408319473))\n"
+      "                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:456
+#, no-c-format
+msgid ",<xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_PointFromGeoHash\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:462
 #, no-c-format
 msgid "ST_GeomFromGML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:382
+#: reference_constructor.xml:463
 #, no-c-format
 msgid "Takes as input GML representation of geometry and outputs a PostGIS geometry object"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:386
+#: reference_constructor.xml:467
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_GeomFromGML</function></funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:401
+#: reference_constructor.xml:482
 #, no-c-format
 msgid "Constructs a PostGIS ST_Geometry object from the OGC GML representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:402
+#: reference_constructor.xml:483
 #, no-c-format
 msgid "ST_GeomFromGML works only for GML Geometry fragments. It throws an error if you try to use it on a whole GML document."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:403
+#: reference_constructor.xml:484
 #, no-c-format
 msgid "OGC GML versions supported: <itemizedlist> <listitem> <para>GML 3.2.1 Namespace</para> </listitem> <listitem> <para>GML 3.1.1 Simple Features profile SF-2 (with GML 3.1.0 and 3.0.0 backward compatibility)</para> </listitem> <listitem> <para>GML 2.1.2</para> </listitem> </itemizedlist> OGC GML standards, cf: <ulink url=\"http://www.opengeospatial.org/standards/gml\">http://www.opengeospatial.org/standards/gml</ulink>:"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:419 reference_constructor.xml:566
+#: reference_constructor.xml:500 reference_constructor.xml:647
 #, no-c-format
 msgid "Availability: 1.5, requires libxml2 1.6+"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:421 reference_constructor.xml:568
+#: reference_constructor.xml:502 reference_constructor.xml:649
 #, no-c-format
 msgid "Enhanced: 2.0.0 default srid optional parameter added."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:425
+#: reference_constructor.xml:506
 #, no-c-format
 msgid "GML allow mixed dimensions (2D and 3D inside the same MultiGeometry for instance). As PostGIS geometries don't, ST_GeomFromGML convert the whole geometry to 2D if a missing Z dimension is found once."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:427
+#: reference_constructor.xml:508
 #, no-c-format
 msgid "GML support mixed SRS inside the same MultiGeometry. As PostGIS geometries don't, ST_GeomFromGML, in this case, reproject all subgeometries to the SRS root node. If no srsName attribute available for the GML root node, the function throw an error."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:429
+#: reference_constructor.xml:510
 #, no-c-format
 msgid "ST_GeomFromGML function is not pedantic about an explicit GML namespace. You could avoid to mention it explicitly for common usages. But you need it if you want to use XLink feature inside GML."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:431
+#: reference_constructor.xml:512
 #, no-c-format
 msgid "ST_GeomFromGML function not support SQL/MM curves geometries."
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:437 reference_constructor.xml:535
+#: reference_constructor.xml:518 reference_constructor.xml:616
 #, no-c-format
 msgid "Examples - A single geometry with srsName"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:438
+#: reference_constructor.xml:519
 #, no-c-format
 msgid ""
       "SELECT ST_GeomFromGML('<![CDATA[\n"
@@ -621,13 +755,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:442
+#: reference_constructor.xml:523
 #, no-c-format
 msgid "Examples - XLink usage"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:443
+#: reference_constructor.xml:524
 #, no-c-format
 msgid ""
       "SELECT <![CDATA[ST_GeomFromGML('\n"
@@ -645,13 +779,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:447
+#: reference_constructor.xml:528
 #, no-c-format
 msgid "Examples - Polyhedral Surface"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:448
+#: reference_constructor.xml:529
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(<![CDATA[ST_GeomFromGML('\n"
@@ -700,55 +834,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:454
+#: reference_constructor.xml:535
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsGML\"/>, <xref linkend=\"ST_GMLToSQL\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:460
+#: reference_constructor.xml:541
 #, no-c-format
 msgid "ST_GeomFromGeoJSON"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:461
+#: reference_constructor.xml:542
 #, no-c-format
 msgid "Takes as input a geojson representation of a geometry and outputs a PostGIS geometry object"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:466
+#: reference_constructor.xml:547
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_GeomFromGeoJSON</function></funcdef> <paramdef><type>text </type> <parameter>geomjson</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:475
+#: reference_constructor.xml:556
 #, no-c-format
 msgid "Constructs a PostGIS geometry object from the GeoJSON representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:476
+#: reference_constructor.xml:557
 #, no-c-format
 msgid "ST_GeomFromGeoJSON works only for JSON Geometry fragments. It throws an error if you try to use it on a whole JSON document."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:478
+#: reference_constructor.xml:559
 #, no-c-format
 msgid "Availability: 2.0.0 requires - JSON-C >= 0.9"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:479
+#: reference_constructor.xml:560
 #, no-c-format
 msgid "If you do not have JSON-C enabled, support you will get an error notice instead of seeing an output. To enable JSON-C, run configure --with-jsondir=/path/to/json-c. See <xref linkend=\"installation_configuration\"/> for details."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:486
+#: reference_constructor.xml:567
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_GeomFromGeoJSON('{\"type\":\"Point\",\"coordinates\":[-48.23456,20.12345]}')) As wkt;\n"
@@ -758,7 +892,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:487
+#: reference_constructor.xml:568
 #, no-c-format
 msgid ""
       "-- a 3D linestring\n"
@@ -770,61 +904,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:493
+#: reference_constructor.xml:574
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsGeoJSON\"/>, <xref linkend=\"installation_configuration\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:499
+#: reference_constructor.xml:580
 #, no-c-format
 msgid "ST_GeomFromKML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:500
+#: reference_constructor.xml:581
 #, no-c-format
 msgid "Takes as input KML representation of geometry and outputs a PostGIS geometry object"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:505
+#: reference_constructor.xml:586
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_GeomFromKML</function></funcdef> <paramdef><type>text </type> <parameter>geomkml</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:514
+#: reference_constructor.xml:595
 #, no-c-format
 msgid "Constructs a PostGIS ST_Geometry object from the OGC KML representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:515
+#: reference_constructor.xml:596
 #, no-c-format
 msgid "ST_GeomFromKML works only for KML Geometry fragments. It throws an error if you try to use it on a whole KML document."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:516
+#: reference_constructor.xml:597
 #, no-c-format
 msgid "OGC KML versions supported: <itemizedlist> <listitem> <para>KML 2.2.0 Namespace</para> </listitem> </itemizedlist> OGC KML standards, cf: <ulink url=\"http://www.opengeospatial.org/standards/kml\">http://www.opengeospatial.org/standards/kml</ulink>:"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:526
+#: reference_constructor.xml:607
 #, no-c-format
 msgid "Availability: 1.5,libxml2 2.6+"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:529
+#: reference_constructor.xml:610
 #, no-c-format
 msgid "ST_GeomFromKML function not support SQL/MM curves geometries."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:536
+#: reference_constructor.xml:617
 #, no-c-format
 msgid ""
       "SELECT ST_GeomFromKML('<![CDATA[\n"
@@ -835,85 +969,85 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:541
+#: reference_constructor.xml:622
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsKML\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:547
+#: reference_constructor.xml:628
 #, no-c-format
 msgid "ST_GMLToSQL"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:548
+#: reference_constructor.xml:629
 #, no-c-format
 msgid "Return a specified ST_Geometry value from GML representation. This is an alias name for ST_GeomFromGML"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:551
+#: reference_constructor.xml:632
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_GMLToSQL</function></funcdef> <paramdef><type>text </type> <parameter>geomgml</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:565
+#: reference_constructor.xml:646
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.50 (except for curves support)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:572
+#: reference_constructor.xml:653
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromGML\"/>, <xref linkend=\"ST_AsGML\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:578
+#: reference_constructor.xml:659
 #, no-c-format
 msgid "ST_GeomFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:579
+#: reference_constructor.xml:660
 #, no-c-format
 msgid "Return a specified ST_Geometry value from Well-Known Text representation (WKT)."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:582
+#: reference_constructor.xml:663
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_GeomFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:598
+#: reference_constructor.xml:679
 #, no-c-format
 msgid "Constructs a PostGIS ST_Geometry object from the OGC Well-Known text representation."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:602
+#: reference_constructor.xml:683
 #, no-c-format
 msgid "There are 2 variants of ST_GeomFromText function, the first takes no SRID and returns a geometry with no defined spatial reference system. The second takes a spatial reference id as the second argument and returns an ST_Geometry that includes this srid as part of its meta-data. The srid must be defined in the spatial_ref_sys table."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:608 reference_constructor.xml:1554
+#: reference_constructor.xml:689 reference_constructor.xml:1759
 #, no-c-format
 msgid "&sfs_compliant; s3.2.6.2 - option SRID is from the conformance suite."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:611
+#: reference_constructor.xml:692
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions of PostGIS ST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)') was allowed. This is now illegal in PostGIS 2.0.0 to better conform with SQL/MM standards. This should now be written as ST_GeomFromText('GEOMETRYCOLLECTION EMPTY')"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:618
+#: reference_constructor.xml:699
 #, no-c-format
 msgid ""
       "SELECT ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 42.259113,-71.161144 42.25932)');\n"
@@ -954,55 +1088,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:622
+#: reference_constructor.xml:703
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromWKB\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:628
+#: reference_constructor.xml:709
 #, no-c-format
 msgid "ST_GeomFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:629
+#: reference_constructor.xml:710
 #, no-c-format
 msgid "Creates a geometry instance from a Well-Known Binary geometry representation (WKB) and optional SRID."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:634 reference_constructor.xml:1576
+#: reference_constructor.xml:715 reference_constructor.xml:1781
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_GeomFromWKB</function></funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:651
+#: reference_constructor.xml:732
 #, no-c-format
 msgid "The <varname>ST_GeomFromWKB</varname> function, takes a well-known binary representation of a geometry and a Spatial Reference System ID (<varname>SRID</varname>) and creates an instance of the appropriate geometry type. This function plays the role of the Geometry Factory in SQL. This is an alternate name for ST_WKBToSQL."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:657
+#: reference_constructor.xml:738
 #, no-c-format
-msgid "If SRID is not specified, it defaults to -1 (Unknown)."
+msgid "If SRID is not specified, it defaults to 0 (Unknown)."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:658
+#: reference_constructor.xml:739
 #, no-c-format
 msgid "&sfs_compliant; s3.2.7.2 - the optional SRID is from the conformance suite"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:659
+#: reference_constructor.xml:740
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.41"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:667
+#: reference_constructor.xml:748
 #, no-c-format
 msgid ""
       "--Although bytea rep contains single \\, these need to be escaped when inserting into a table \n"
@@ -1028,37 +1162,145 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:674
+#: reference_constructor.xml:755
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:680
+#: reference_constructor.xml:762
+#, no-c-format
+msgid "ST_GeomFromTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:763
+#, no-c-format
+msgid "Creates a geometry instance from a Tiny Well-Known Binary geometry representation (TWKB)."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:769
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_GeomFromTWKB</function></funcdef> <paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:779
+#, no-c-format
+msgid "The <varname>ST_GeomFromTWKB</varname> function, takes a tiny well-known binary representation of a geometry and creates an instance of the appropriate geometry type."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:783
+#, no-c-format
+msgid "SRID always defaults to 0 (Unknown)."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:785
+#, no-c-format
+msgid "TWKB doesn't make any difference of Z and M. So a 3D geoemtry in TWKB will always be a GeometryZ, like PointZ when converted to PostGIS geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:793
+#, no-c-format
+msgid ""
+      "--Although bytea rep contains single \\, these need to be escaped when inserting into a table \n"
+      "                -- unless standard_conforming_strings is set to on.\n"
+      "SELECT ST_AsEWKT(\n"
+      "ST_GeomFromTWKB(E'\\\\x304202f7f40dbce4040105')\n"
+      ");\n"
+      "                                          st_asewkt\n"
+      "------------------------------------------------------\n"
+      "LINESTRING(-113.98 39.198,-113.981 39.195)\n"
+      "(1 row)\n"
+      "\n"
+      "SELECT\n"
+      "  ST_AsText(\n"
+      "        ST_GeomFromTWKB(\n"
+      "          ST_AsTWKB('POINT(2 5)'::geometry,0)\n"
+      "        )\n"
+      "  );\n"
+      " st_astext\n"
+      "------------\n"
+      " POINT(2 5)\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:800
+#, no-c-format
+msgid ",<xref linkend=\"ST_AsTWKB\"/>,<xref linkend=\"ST_AsTWKBAgg\"/>,<xref linkend=\"ST_WKBToSQL\"/>, <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_GeomFromEWKB\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:806
+#, no-c-format
+msgid "ST_LineFromEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:808
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:813
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_LineFromEncodedPolyline</function></funcdef> <paramdef><type>text </type> <parameter>polyline</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:824
+#, no-c-format
+msgid "Creates a LineString from an Encoded Polyline string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:825
+#, no-c-format
+msgid "See http://developers.google.com/maps/documentation/utilities/polylinealgorithm"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:832
+#, no-c-format
+msgid ""
+      "--Create a line string from a polyline\n"
+      "SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|U_ulLnnqC_mqNvxq`@'));\n"
+      "--result--\n"
+      "LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:845
 #, no-c-format
 msgid "ST_LineFromMultiPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:682
+#: reference_constructor.xml:847
 #, no-c-format
 msgid "<refpurpose>Creates a LineString from a MultiPoint geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:687
+#: reference_constructor.xml:852
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_LineFromMultiPoint</function></funcdef> <paramdef><type>geometry </type> <parameter>aMultiPoint</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:697
+#: reference_constructor.xml:862
 #, no-c-format
 msgid "<para>Creates a LineString from a MultiPoint geometry.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:705
+#: reference_constructor.xml:870
 #, no-c-format
 msgid ""
       "--Create a 3d line string from a 3d multipoint\n"
@@ -1068,55 +1310,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:712
+#: reference_constructor.xml:877
 #, no-c-format
 msgid ", <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_MakeLine\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:718
+#: reference_constructor.xml:883
 #, no-c-format
 msgid "ST_LineFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:720
+#: reference_constructor.xml:885
 #, no-c-format
-msgid "Makes a Geometry from WKT representation with the given SRID. If SRID is not given, it defaults to -1."
+msgid "Makes a Geometry from WKT representation with the given SRID. If SRID is not given, it defaults to 0."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:725
+#: reference_constructor.xml:890
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_LineFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_LineFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:742
+#: reference_constructor.xml:907
 #, no-c-format
-msgid "Makes a Geometry from WKT with the given SRID. If SRID is not give, it defaults to -1. If WKT passed in is not a LINESTRING, then null is returned."
+msgid "Makes a Geometry from WKT with the given SRID. If SRID is not give, it defaults to 0. If WKT passed in is not a LINESTRING, then null is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:746 reference_constructor.xml:812
+#: reference_constructor.xml:911 reference_constructor.xml:977
 #, no-c-format
 msgid "OGC SPEC 3.2.6.2 - option SRID is from the conformance suite."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:751
+#: reference_constructor.xml:916
 #, no-c-format
 msgid "If you know all your geometries are LINESTRINGS, its more efficient to just use ST_GeomFromText. This just calls ST_GeomFromText and adds additional validation that it returns a linestring."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:757
+#: reference_constructor.xml:922
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.8"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:765
+#: reference_constructor.xml:930
 #, no-c-format
 msgid ""
       "SELECT ST_LineFromText('LINESTRING(1 2, 3 4)') AS aline, ST_LineFromText('POINT(1 2)') AS null_return;\n"
@@ -1126,49 +1368,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:778
+#: reference_constructor.xml:943
 #, no-c-format
 msgid "ST_LineFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:780
+#: reference_constructor.xml:945
 #, no-c-format
 msgid "Makes a <varname>LINESTRING</varname> from WKB with the given SRID"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:784
+#: reference_constructor.xml:949
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_LineFromWKB</function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:801
+#: reference_constructor.xml:966
 #, no-c-format
 msgid "The <varname>ST_LineFromWKB</varname> function, takes a well-known binary representation of geometry and a Spatial Reference System ID (<varname>SRID</varname>) and creates an instance of the appropriate geometry type - in this case, a <varname>LINESTRING</varname> geometry. This function plays the role of the Geometry Factory in SQL."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:807
+#: reference_constructor.xml:972
 #, no-c-format
-msgid "If an SRID is not specified, it defaults to -1. <varname>NULL</varname> is returned if the input <varname>bytea</varname> does not represent a <varname>LINESTRING</varname>."
+msgid "If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is returned if the input <varname>bytea</varname> does not represent a <varname>LINESTRING</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:817
+#: reference_constructor.xml:982
 #, no-c-format
 msgid "If you know all your geometries are <varname>LINESTRING</varname>s, its more efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function just calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation that it returns a linestring."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:825 reference_constructor.xml:891
+#: reference_constructor.xml:990 reference_constructor.xml:1056
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.2.9"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:833
+#: reference_constructor.xml:998
 #, no-c-format
 msgid ""
       "SELECT ST_LineFromWKB(ST_AsBinary(ST_GeomFromText('LINESTRING(1 2, 3 4)'))) AS aline,\n"
@@ -1179,55 +1421,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:840
+#: reference_constructor.xml:1005
 #, no-c-format
 msgid ", <xref linkend=\"ST_LinestringFromWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:846
+#: reference_constructor.xml:1011
 #, no-c-format
 msgid "ST_LinestringFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:848
+#: reference_constructor.xml:1013
 #, no-c-format
 msgid "Makes a geometry from WKB with the given SRID."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:852
+#: reference_constructor.xml:1017
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_LinestringFromWKB</function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:869
+#: reference_constructor.xml:1034
 #, no-c-format
 msgid "The <varname>ST_LinestringFromWKB</varname> function, takes a well-known binary representation of geometry and a Spatial Reference System ID (<varname>SRID</varname>) and creates an instance of the appropriate geometry type - in this case, a <varname>LINESTRING</varname> geometry. This function plays the role of the Geometry Factory in SQL."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:875
+#: reference_constructor.xml:1040
 #, no-c-format
-msgid "If an SRID is not specified, it defaults to -1. <varname>NULL</varname> is returned if the input <varname>bytea</varname> does not represent a <varname>LINESTRING</varname> geometry. This an alias for <xref linkend=\"ST_LineFromWKB\"/>."
+msgid "If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is returned if the input <varname>bytea</varname> does not represent a <varname>LINESTRING</varname> geometry. This an alias for <xref linkend=\"ST_LineFromWKB\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:880
+#: reference_constructor.xml:1045
 #, no-c-format
 msgid "OGC SPEC 3.2.6.2 - optional SRID is from the conformance suite."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:884
+#: reference_constructor.xml:1049
 #, no-c-format
 msgid "If you know all your geometries are <varname>LINESTRING</varname>s, it's more efficient to just use <xref linkend=\"ST_GeomFromWKB\"/>. This function just calls <xref linkend=\"ST_GeomFromWKB\"/> and adds additional validation that it returns a <varname>LINESTRING</varname>."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:897
+#: reference_constructor.xml:1062
 #, no-c-format
 msgid ""
       "SELECT\n"
@@ -1243,37 +1485,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:904 reference_constructor.xml:1618
+#: reference_constructor.xml:1069 reference_constructor.xml:1823
 #, no-c-format
 msgid ", <xref linkend=\"ST_LineFromWKB\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:910
+#: reference_constructor.xml:1075
 #, no-c-format
 msgid "ST_MakeBox2D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:912
+#: reference_constructor.xml:1077
 #, no-c-format
 msgid "Creates a BOX2D defined by the given point geometries."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:918
+#: reference_constructor.xml:1083
 #, no-c-format
 msgid "<funcdef>box2d <function>ST_MakeBox2D</function></funcdef> <paramdef><type>geometry </type> <parameter>pointLowLeft</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pointUpRight</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:929
+#: reference_constructor.xml:1094
 #, no-c-format
 msgid "Creates a BOX2D defined by the given point geometries. This is useful for doing range queries"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:937
+#: reference_constructor.xml:1102
 #, no-c-format
 msgid ""
       "--Return all features that fall reside or partly reside in a US national atlas coordinate bounding box\n"
@@ -1285,49 +1527,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:944
+#: reference_constructor.xml:1109
 #, no-c-format
 msgid ", <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:950
+#: reference_constructor.xml:1115
 #, no-c-format
 msgid "ST_3DMakeBox"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:952
+#: reference_constructor.xml:1117
 #, no-c-format
 msgid "Creates a BOX3D defined by the given 3d point geometries."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:957
+#: reference_constructor.xml:1122
 #, no-c-format
 msgid "<funcdef>box3d <function>ST_3DMakeBox</function></funcdef> <paramdef><type>geometry </type> <parameter>point3DLowLeftBottom</parameter></paramdef> <paramdef><type>geometry </type> <parameter>point3DUpRightTop</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:968
+#: reference_constructor.xml:1133
 #, no-c-format
 msgid "Creates a BOX3D defined by the given 2 3D point geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:975
+#: reference_constructor.xml:1140
 #, no-c-format
 msgid "This function supports 3d and will not drop the z-index."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:977
+#: reference_constructor.xml:1142
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_MakeBox3D"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:984
+#: reference_constructor.xml:1149
 #, no-c-format
 msgid ""
       "SELECT ST_3DMakeBox(ST_MakePoint(-989502.1875, 528439.5625, 10),\n"
@@ -1339,67 +1581,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:991
+#: reference_constructor.xml:1156
 #, no-c-format
 msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:997
+#: reference_constructor.xml:1162
 #, no-c-format
 msgid "ST_MakeLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:999
+#: reference_constructor.xml:1164
 #, no-c-format
 msgid "Creates a Linestring from point or line geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1003
+#: reference_constructor.xml:1168
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> <paramdef><type>geometry set</type> <parameter>geoms</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_MakeLine</function></funcdef>  [...]
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1025
+#: reference_constructor.xml:1190
 #, no-c-format
 msgid "ST_MakeLine comes in 3 forms: a spatial aggregate that takes rows of point-or-line geometries and returns a line string, a function that takes an array of point-or-lines, and a regular function that takes two point-or-line geometries. You might want to use a subselect to order points before feeding them to the aggregate version of this function."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1030
+#: reference_constructor.xml:1195
 #, no-c-format
 msgid "When adding line components a common node is removed from the output."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1035
+#: reference_constructor.xml:1200
 #, no-c-format
 msgid "Availability: 1.4.0 - ST_MakeLine(geomarray) was introduced. ST_MakeLine aggregate functions was enhanced to handle more points faster."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1036
+#: reference_constructor.xml:1201
 #, no-c-format
 msgid "Availability: 2.0.0 - Support for linestring input elements was introduced"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1040
+#: reference_constructor.xml:1205
 #, no-c-format
 msgid "Examples: Spatial Aggregate version"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1041
+#: reference_constructor.xml:1206
 #, no-c-format
 msgid "This example takes a sequence of GPS points and creates one record for each gps travel where the geometry field is a line string composed of the gps points in the order of the travel."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1045
+#: reference_constructor.xml:1210
 #, no-c-format
 msgid ""
       "-- For pre-PostgreSQL 9.0 - this usually works, \n"
@@ -1411,7 +1653,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1047
+#: reference_constructor.xml:1212
 #, no-c-format
 msgid ""
       "-- If you are using PostgreSQL 9.0+ \n"
@@ -1424,19 +1666,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1050
+#: reference_constructor.xml:1215
 #, no-c-format
 msgid "Examples: Non-Spatial Aggregate version"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1052
+#: reference_constructor.xml:1217
 #, no-c-format
 msgid "First example is a simple one off line string composed of 2 points. The second formulates line strings from 2 points a user draws. The third is a one-off that joins 2 3d points to create a line in 3d space."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1054
+#: reference_constructor.xml:1219
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_MakeLine(ST_MakePoint(1,2), ST_MakePoint(3,4)));\n"
@@ -1454,13 +1696,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1058
+#: reference_constructor.xml:1223
 #, no-c-format
 msgid "Examples: Using Array version"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1060
+#: reference_constructor.xml:1225
 #, no-c-format
 msgid ""
       "SELECT ST_MakeLine(ARRAY(SELECT ST_Centroid(the_geom) FROM visit_locations ORDER BY visit_time));\n"
@@ -1474,55 +1716,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1067
+#: reference_constructor.xml:1232
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_MakePoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1074
+#: reference_constructor.xml:1239
 #, no-c-format
 msgid "ST_MakeEnvelope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1076
+#: reference_constructor.xml:1241
 #, no-c-format
 msgid "Creates a rectangular Polygon formed from the given minimums and maximums. Input values must be in SRS specified by the SRID."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1082
+#: reference_constructor.xml:1247
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MakeEnvelope</function></funcdef> <paramdef><type>double precision</type> <parameter>xmin</parameter></paramdef> <paramdef><type>double precision</type> <parameter>ymin</parameter></paramdef> <paramdef><type>double precision</type> <parameter>xmax</parameter></paramdef> <paramdef><type>double precision</type> <parameter>ymax</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>srid=unknown</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1096
+#: reference_constructor.xml:1261
 #, no-c-format
 msgid "Creates a rectangular Polygon formed from the minima and maxima. by the given shell. Input values must be in SRS specified by the SRID. If no SRID is specified the unknown spatial reference system is assumed"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1099
+#: reference_constructor.xml:1264
 #, no-c-format
 msgid "Availability: 1.5"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1100
+#: reference_constructor.xml:1265
 #, no-c-format
 msgid "Enhanced: 2.0: Ability to specify an envelope without specifying an SRID was introduced."
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1105
+#: reference_constructor.xml:1270
 #, no-c-format
 msgid "Example: Building a bounding box polygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1106
+#: reference_constructor.xml:1271
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_MakeEnvelope(10, 10, 11, 11, 4326));\n"
@@ -1533,67 +1775,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1110
+#: reference_constructor.xml:1275
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakeLine\"/>, <xref linkend=\"ST_MakePolygon\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1116
+#: reference_constructor.xml:1281
 #, no-c-format
 msgid "ST_MakePolygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1118
+#: reference_constructor.xml:1283
 #, no-c-format
 msgid "Creates a Polygon formed by the given shell. Input geometries must be closed LINESTRINGS."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1124
+#: reference_constructor.xml:1289
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MakePolygon</function></funcdef> <paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1130
+#: reference_constructor.xml:1295
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MakePolygon</function></funcdef> <paramdef><type>geometry</type> <parameter>outerlinestring</parameter></paramdef> <paramdef><type>geometry[]</type> <parameter>interiorlinestrings</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1141
+#: reference_constructor.xml:1306
 #, no-c-format
 msgid "Creates a Polygon formed by the given shell. Input geometries must be closed LINESTRINGS. Comes in 2 variants."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1143
+#: reference_constructor.xml:1308
 #, no-c-format
 msgid "Variant 1: takes one closed linestring."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1144
+#: reference_constructor.xml:1309
 #, no-c-format
 msgid "Variant 2: Creates a Polygon formed by the given shell and array of holes. You can construct a geometry array using ST_Accum or the PostgreSQL ARRAY[] and ARRAY() constructs. Input geometries must be closed LINESTRINGS."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1148
+#: reference_constructor.xml:1313
 #, no-c-format
 msgid "This function will not accept a MULTILINESTRING. Use <xref linkend=\"ST_LineMerge\"/> or <xref linkend=\"ST_Dump\"/> to generate line strings."
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1155
+#: reference_constructor.xml:1320
 #, no-c-format
 msgid "Examples: Single closed LINESTRING"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1156
+#: reference_constructor.xml:1321
 #, no-c-format
 msgid ""
       "--2d line\n"
@@ -1620,19 +1862,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1159
+#: reference_constructor.xml:1324
 #, no-c-format
 msgid "Examples: Outter shell with inner shells"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1161
+#: reference_constructor.xml:1326
 #, no-c-format
 msgid "Build a donut with an ant hole"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1162
+#: reference_constructor.xml:1327
 #, no-c-format
 msgid ""
       "SELECT ST_MakePolygon(\n"
@@ -1647,25 +1889,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1163
+#: reference_constructor.xml:1328
 #, no-c-format
 msgid "Build province boundaries with holes representing lakes in the province from a set of province polygons/multipolygons and water line strings this is an example of using PostGIS ST_Accum"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1167
+#: reference_constructor.xml:1332
 #, no-c-format
 msgid "The use of CASE because feeding a null array into ST_MakePolygon results in NULL"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1169
+#: reference_constructor.xml:1334
 #, no-c-format
 msgid "the use of left join to guarantee we get all provinces back even if they have no lakes"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1170
+#: reference_constructor.xml:1335
 #, no-c-format
 msgid ""
       "SELECT p.gid, p.province_name,\n"
@@ -1697,61 +1939,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1174
+#: reference_constructor.xml:1339
 #, no-c-format
 msgid ", <xref linkend=\"ST_AddPoint\"/>, <xref linkend=\"ST_GeometryType\"/>, <xref linkend=\"ST_IsClosed\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref linkend=\"ST_BuildArea\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1187
+#: reference_constructor.xml:1352
 #, no-c-format
 msgid "ST_MakePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1189
+#: reference_constructor.xml:1354
 #, no-c-format
 msgid "Creates a 2D,3DZ or 4D point geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1194
+#: reference_constructor.xml:1359
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MakePoint</function></funcdef> <paramdef><type>double precision</type> <parameter>x</parameter></paramdef> <paramdef><type>double precision</type> <parameter>y</parameter></paramdef>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1201
+#: reference_constructor.xml:1366
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MakePoint</function></funcdef> <paramdef><type>double precision</type> <parameter>x</parameter></paramdef> <paramdef><type>double precision</type> <parameter>y</parameter></paramdef> <paramdef><type>double precision</type> <parameter>z</parameter></paramdef>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1209
+#: reference_constructor.xml:1374
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MakePoint</function></funcdef> <paramdef><type>double precision</type> <parameter>x</parameter></paramdef> <paramdef><type>double precision</type> <parameter>y</parameter></paramdef> <paramdef><type>double precision</type> <parameter>z</parameter></paramdef> <paramdef><type>double precision</type> <parameter>m</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1222
+#: reference_constructor.xml:1387
 #, no-c-format
 msgid "Creates a 2D,3DZ or 4D point geometry (geometry with measure). <varname>ST_MakePoint</varname> while not being OGC compliant is generally faster and more precise than <xref linkend=\"ST_GeomFromText\"/> and <xref linkend=\"ST_PointFromText\"/>. It is also easier to use if you have raw coordinates rather than WKT."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1228
+#: reference_constructor.xml:1393
 #, no-c-format
 msgid "Note x is longitude and y is latitude"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1229
+#: reference_constructor.xml:1394
 #, no-c-format
 msgid "Use <xref linkend=\"ST_MakePointM\"/> if you need to make a point with x,y,m."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1236
+#: reference_constructor.xml:1401
 #, no-c-format
 msgid ""
       "--Return point with unknown SRID\n"
@@ -1771,49 +2013,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1240
+#: reference_constructor.xml:1405
 #, no-c-format
 msgid ", <xref linkend=\"ST_PointFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_MakePointM\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1246
+#: reference_constructor.xml:1411
 #, no-c-format
 msgid "ST_MakePointM"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1248
+#: reference_constructor.xml:1413
 #, no-c-format
 msgid "Creates a point geometry with an x y and m coordinate."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1253
+#: reference_constructor.xml:1418
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MakePointM</function></funcdef> <paramdef><type>float</type> <parameter>x</parameter></paramdef> <paramdef><type>float</type> <parameter>y</parameter></paramdef> <paramdef><type>float</type> <parameter>m</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1265
+#: reference_constructor.xml:1430
 #, no-c-format
 msgid "Creates a point with x, y and measure coordinates."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1266
+#: reference_constructor.xml:1431
 #, no-c-format
 msgid "Note x is longitude and y is latitude."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1271
+#: reference_constructor.xml:1436
 #, no-c-format
 msgid "We use ST_AsEWKT in these examples to show the text representation instead of ST_AsText because ST_AsText does not support returning M."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1273
+#: reference_constructor.xml:1438
 #, no-c-format
 msgid ""
       "--Return EWKT representation of point with unknown SRID\n"
@@ -1842,103 +2084,103 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1277
+#: reference_constructor.xml:1442
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1283
+#: reference_constructor.xml:1448
 #, no-c-format
 msgid "ST_MLineFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1285
+#: reference_constructor.xml:1450
 #, no-c-format
 msgid "Return a specified ST_MultiLineString value from WKT representation."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1289
+#: reference_constructor.xml:1454
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_MLineFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1307
+#: reference_constructor.xml:1472
 #, no-c-format
-msgid "Makes a Geometry from Well-Known-Text (WKT) with the given SRID. If SRID is not give, it defaults to -1."
+msgid "Makes a Geometry from Well-Known-Text (WKT) with the given SRID. If SRID is not give, it defaults to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1313
+#: reference_constructor.xml:1478
 #, no-c-format
 msgid "Returns null if the WKT is not a MULTILINESTRING"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1316 reference_constructor.xml:1377
+#: reference_constructor.xml:1481 reference_constructor.xml:1542
 #, no-c-format
 msgid "If you are absolutely sure all your WKT geometries are points, don't use this function. It is slower than ST_GeomFromText since it adds an additional validation step."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1322
+#: reference_constructor.xml:1487
 #, no-c-format
 msgid "&sqlmm_compliant;SQL-MM 3: 9.4.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1330
+#: reference_constructor.xml:1495
 #, no-c-format
 msgid "SELECT ST_MLineFromText('MULTILINESTRING((1 2, 3 4), (4 5, 6 7))');"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1343
+#: reference_constructor.xml:1508
 #, no-c-format
 msgid "ST_MPointFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1345 reference_constructor.xml:1675
+#: reference_constructor.xml:1510 reference_constructor.xml:1880
 #, no-c-format
-msgid "<refpurpose>Makes a Geometry from WKT with the given SRID. If SRID is not give, it defaults to -1.</refpurpose>"
+msgid "<refpurpose>Makes a Geometry from WKT with the given SRID. If SRID is not give, it defaults to 0.</refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1350
+#: reference_constructor.xml:1515
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_MPointFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1368
+#: reference_constructor.xml:1533
 #, no-c-format
-msgid "<para>Makes a Geometry from WKT with the given SRID. If SRID is not give, it defaults to -1.</para>"
+msgid "<para>Makes a Geometry from WKT with the given SRID. If SRID is not give, it defaults to 0.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1374
+#: reference_constructor.xml:1539
 #, no-c-format
 msgid "Returns null if the WKT is not a MULTIPOINT"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1382
+#: reference_constructor.xml:1547
 #, no-c-format
 msgid "&sfs_compliant; 3.2.6.2"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1383
+#: reference_constructor.xml:1548
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.2.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1391
+#: reference_constructor.xml:1556
 #, no-c-format
 msgid ""
       "SELECT ST_MPointFromText('MULTIPOINT(1 2, 3 4)');\n"
@@ -1946,49 +2188,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1404
+#: reference_constructor.xml:1569
 #, no-c-format
 msgid "ST_MPolyFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1406
+#: reference_constructor.xml:1571
 #, no-c-format
-msgid "Makes a MultiPolygon Geometry from WKT with the given SRID. If SRID is not give, it defaults to -1."
+msgid "Makes a MultiPolygon Geometry from WKT with the given SRID. If SRID is not give, it defaults to 0."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1411
+#: reference_constructor.xml:1576
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_MPolyFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1429
+#: reference_constructor.xml:1594
 #, no-c-format
-msgid "Makes a MultiPolygon from WKT with the given SRID. If SRID is not give, it defaults to -1."
+msgid "Makes a MultiPolygon from WKT with the given SRID. If SRID is not give, it defaults to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1435
+#: reference_constructor.xml:1600
 #, no-c-format
 msgid "Throws an error if the WKT is not a MULTIPOLYGON"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1438
+#: reference_constructor.xml:1603
 #, no-c-format
 msgid "If you are absolutely sure all your WKT geometries are multipolygons, don't use this function. It is slower than ST_GeomFromText since it adds an additional validation step."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1444
+#: reference_constructor.xml:1609
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 9.6.4"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1452
+#: reference_constructor.xml:1617
 #, no-c-format
 msgid ""
       "SELECT ST_MPolyFromText('MULTIPOLYGON(((0 0 1,20 0 1,20 20 1,0 20 1,0 0 1),(5 5 3,5 7 3,7 7 3,7 5 3,5 5 3)))');\n"
@@ -1997,61 +2239,61 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1465
+#: reference_constructor.xml:1630
 #, no-c-format
 msgid "ST_Point"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1467
+#: reference_constructor.xml:1632
 #, no-c-format
 msgid "Returns an ST_Point with the given coordinate values. OGC alias for ST_MakePoint."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1472
+#: reference_constructor.xml:1637
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Point</function></funcdef> <paramdef><type>float </type> <parameter>x_lon</parameter></paramdef> <paramdef><type>float </type> <parameter>y_lat</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1483
+#: reference_constructor.xml:1648
 #, no-c-format
 msgid "Returns an ST_Point with the given coordinate values. MM compliant alias for ST_MakePoint that takes just an x and y."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1486
+#: reference_constructor.xml:1651
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.2"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1492
+#: reference_constructor.xml:1657
 #, no-c-format
 msgid "Examples: Geometry"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1494
+#: reference_constructor.xml:1659
 #, no-c-format
 msgid "SELECT ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326)"
 msgstr ""
 
 #. Tag: title
-#: reference_constructor.xml:1498
+#: reference_constructor.xml:1663
 #, no-c-format
 msgid "Examples: Geography"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1500
+#: reference_constructor.xml:1665
 #, no-c-format
 msgid "SELECT CAST(ST_SetSRID(ST_Point(-71.1043443253471, 42.3150676015829),4326) As geography);"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1501
+#: reference_constructor.xml:1666
 #, no-c-format
 msgid ""
       "-- the :: is PostgreSQL short-hand for casting.\n"
@@ -2059,7 +2301,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1503
+#: reference_constructor.xml:1668
 #, no-c-format
 msgid ""
       "--If your point coordinates are in a different spatial reference from WGS-84 long lat, then you need to transform before casting\n"
@@ -2068,55 +2310,118 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1510
+#: reference_constructor.xml:1675
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1516
+#: reference_constructor.xml:1681
+#, no-c-format
+msgid "ST_PointFromGeoHash"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_constructor.xml:1683
+#, no-c-format
+msgid "Return a point from a GeoHash string."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_constructor.xml:1688
+#, no-c-format
+msgid "<funcdef>point <function>ST_PointFromGeoHash</function></funcdef> <paramdef><type>text </type> <parameter>geohash</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>precision=full_precision_of_geohash</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1699
+#, no-c-format
+msgid "Return a point from a GeoHash string. The point represents the center point of the GeoHash."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1701
+#, no-c-format
+msgid "If no <varname>precision</varname> is specficified ST_PointFromGeoHash returns a point based on full precision of the input GeoHash string."
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1703
+#, no-c-format
+msgid "If <varname>precision</varname> is specified ST_PointFromGeoHash will use that many characters from the GeoHash to create the point."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_constructor.xml:1710
+#, no-c-format
+msgid ""
+      "<![CDATA[SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0'));\n"
+      "          st_astext\n"
+      "------------------------------\n"
+      " POINT(-115.172816 36.114646)\n"
+      "\n"
+      "SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 4));\n"
+      "             st_astext\n"
+      "-----------------------------------\n"
+      " POINT(-115.13671875 36.123046875)\n"
+      "\n"
+      "SELECT ST_AsText(ST_PointFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 10));\n"
+      "                 st_astext\n"
+      "-------------------------------------------\n"
+      " POINT(-115.172815918922 36.1146435141563)\n"
+      "                ]]>"
+msgstr ""
+
+#. Tag: para
+#: reference_constructor.xml:1715
+#, no-c-format
+msgid ", <xref linkend=\"ST_Box2dFromGeoHash\"/>, <xref linkend=\"ST_GeomFromGeoHash\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_constructor.xml:1721
 #, no-c-format
 msgid "ST_PointFromText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1517
+#: reference_constructor.xml:1722
 #, no-c-format
 msgid "Makes a point Geometry from WKT with the given SRID. If SRID is not given, it defaults to unknown."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1521
+#: reference_constructor.xml:1726
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_PointFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_PointFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1537
+#: reference_constructor.xml:1742
 #, no-c-format
-msgid "Constructs a PostGIS ST_Geometry point object from the OGC Well-Known text representation. If SRID is not give, it defaults to unknown (currently -1). If geometry is not a WKT point representation, returns null. If completely invalid WKT, then throws an error."
+msgid "Constructs a PostGIS ST_Geometry point object from the OGC Well-Known text representation. If SRID is not give, it defaults to unknown (currently 0). If geometry is not a WKT point representation, returns null. If completely invalid WKT, then throws an error."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1543
+#: reference_constructor.xml:1748
 #, no-c-format
 msgid "There are 2 variants of ST_PointFromText function, the first takes no SRID and returns a geometry with no defined spatial reference system. The second takes a spatial reference id as the second argument and returns an ST_Geometry that includes this srid as part of its meta-data. The srid must be defined in the spatial_ref_sys table."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1550
+#: reference_constructor.xml:1755
 #, no-c-format
 msgid "If you are absolutely sure all your WKT geometries are points, don't use this function. It is slower than ST_GeomFromText since it adds an additional validation step. If you are building points from long lat coordinates and care more about performance and accuracy than OGC compliance, use <xref linkend=\"ST_MakePoint\"/> or OGC compliant alias <xref linkend=\"ST_Point\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1555
+#: reference_constructor.xml:1760
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.8"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1560
+#: reference_constructor.xml:1765
 #, no-c-format
 msgid ""
       "SELECT ST_PointFromText('POINT(-71.064544 42.28787)');\n"
@@ -2124,49 +2429,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1564
+#: reference_constructor.xml:1769
 #, no-c-format
 msgid ", <xref linkend=\"ST_MakePoint\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1570
+#: reference_constructor.xml:1775
 #, no-c-format
 msgid "ST_PointFromWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1572
+#: reference_constructor.xml:1777
 #, no-c-format
 msgid "Makes a geometry from WKB with the given SRID"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1593
+#: reference_constructor.xml:1798
 #, no-c-format
 msgid "The <varname>ST_PointFromWKB</varname> function, takes a well-known binary representation of geometry and a Spatial Reference System ID (<varname>SRID</varname>) and creates an instance of the appropriate geometry type - in this case, a <varname>POINT</varname> geometry. This function plays the role of the Geometry Factory in SQL."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1599
+#: reference_constructor.xml:1804
 #, no-c-format
-msgid "If an SRID is not specified, it defaults to -1. <varname>NULL</varname> is returned if the input <varname>bytea</varname> does not represent a <varname>POINT</varname> geometry."
+msgid "If an SRID is not specified, it defaults to 0. <varname>NULL</varname> is returned if the input <varname>bytea</varname> does not represent a <varname>POINT</varname> geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1602
+#: reference_constructor.xml:1807
 #, no-c-format
 msgid "&sfs_compliant; s3.2.7.2"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1603
+#: reference_constructor.xml:1808
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 6.1.9"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1611
+#: reference_constructor.xml:1816
 #, no-c-format
 msgid ""
       "SELECT\n"
@@ -2193,43 +2498,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1624
+#: reference_constructor.xml:1829
 #, no-c-format
 msgid "ST_Polygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1626
+#: reference_constructor.xml:1831
 #, no-c-format
 msgid "<refpurpose>Returns a polygon built from the specified linestring and SRID.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1631
+#: reference_constructor.xml:1836
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Polygon</function></funcdef> <paramdef><type>geometry </type> <parameter>aLineString</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1642
+#: reference_constructor.xml:1847
 #, no-c-format
 msgid "<para>Returns a polygon built from the specified linestring and SRID.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1646
+#: reference_constructor.xml:1851
 #, no-c-format
 msgid "ST_Polygon is similar to first version oST_MakePolygon except it also sets the spatial ref sys (SRID) of the polygon. Will not work with MULTILINESTRINGS so use LineMerge to merge multilines. Also does not create polygons with holes. Use ST_MakePolygon for that."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1651
+#: reference_constructor.xml:1856
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.3.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1660
+#: reference_constructor.xml:1865
 #, no-c-format
 msgid ""
       "--a 2d polygon\n"
@@ -2246,43 +2551,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1667
+#: reference_constructor.xml:1872
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_LineMerge\"/>, <xref linkend=\"ST_MakePolygon\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1673
+#: reference_constructor.xml:1878
 #, no-c-format
 msgid "ST_PolygonFromText"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_constructor.xml:1680
+#: reference_constructor.xml:1885
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_PolygonFromText</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1696
+#: reference_constructor.xml:1901
 #, no-c-format
-msgid "Makes a Geometry from WKT with the given SRID. If SRID is not give, it defaults to -1. Returns null if WKT is not a polygon."
+msgid "Makes a Geometry from WKT with the given SRID. If SRID is not give, it defaults to 0. Returns null if WKT is not a polygon."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1703
+#: reference_constructor.xml:1908
 #, no-c-format
 msgid "If you are absolutely sure all your WKT geometries are polygons, don't use this function. It is slower than ST_GeomFromText since it adds an additional validation step."
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1706
+#: reference_constructor.xml:1911
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.3.6"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_constructor.xml:1712
+#: reference_constructor.xml:1917
 #, no-c-format
 msgid ""
       "SELECT ST_PolygonFromText('POLYGON((-71.1776585052917 42.3902909739571,-71.1776820268866 42.3903701743239,\n"
@@ -2300,43 +2605,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1725
+#: reference_constructor.xml:1930
 #, no-c-format
 msgid "ST_WKBToSQL"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_constructor.xml:1726
+#: reference_constructor.xml:1931
 #, no-c-format
 msgid "Return a specified ST_Geometry value from Well-Known Binary representation (WKB). This is an alias name for ST_GeomFromWKB that takes no srid"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1730
+#: reference_constructor.xml:1935
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_WKBToSQL</function></funcdef> <paramdef><type>bytea </type> <parameter>WKB</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1738
+#: reference_constructor.xml:1943
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.36"
 msgstr ""
 
 #. Tag: refname
-#: reference_constructor.xml:1748
+#: reference_constructor.xml:1953
 #, no-c-format
 msgid "ST_WKTToSQL"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_constructor.xml:1753
+#: reference_constructor.xml:1958
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_WKTToSQL</function></funcdef> <paramdef><type>text </type> <parameter>WKT</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_constructor.xml:1761
+#: reference_constructor.xml:1966
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.34"
 msgstr ""
diff --git a/doc/po/templates/reference_editor.xml.pot b/doc/po/templates/reference_editor.xml.pot
index 18774be..fde7aed 100644
--- a/doc/po/templates/reference_editor.xml.pot
+++ b/doc/po/templates/reference_editor.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -45,7 +45,7 @@ msgid "<funcdef>geometry <function>ST_AddPoint</function></funcdef> <paramdef><t
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:30 reference_editor.xml:89 reference_editor.xml:148 reference_editor.xml:193 reference_editor.xml:235 reference_editor.xml:277 reference_editor.xml:317 reference_editor.xml:357 reference_editor.xml:407 reference_editor.xml:453 reference_editor.xml:495 reference_editor.xml:543 reference_editor.xml:582 reference_editor.xml:616 reference_editor.xml:649 reference_editor.xml:693 reference_editor.xml:742 reference_editor.xml:789 reference_editor.xml:838 reference_editor [...]
+#: reference_editor.xml:30 reference_editor.xml:89 reference_editor.xml:148 reference_editor.xml:194 reference_editor.xml:237 reference_editor.xml:280 reference_editor.xml:321 reference_editor.xml:362 reference_editor.xml:416 reference_editor.xml:445 reference_editor.xml:491 reference_editor.xml:536 reference_editor.xml:578 reference_editor.xml:629 reference_editor.xml:672 reference_editor.xml:706 reference_editor.xml:739 reference_editor.xml:783 reference_editor.xml:832 reference_editor [...]
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -57,19 +57,19 @@ msgid "Adds a point to a LineString before point <position> (0-based index
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:35 reference_editor.xml:460 reference_editor.xml:619 reference_editor.xml:1009
+#: reference_editor.xml:35 reference_editor.xml:543 reference_editor.xml:709 reference_editor.xml:1099
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:158 reference_editor.xml:200 reference_editor.xml:241 reference_editor.xml:321 reference_editor.xml:366 reference_editor.xml:416 reference_editor.xml:620 reference_editor.xml:702 reference_editor.xml:752 reference_editor.xml:800 reference_editor.xml:851 reference_editor.xml:917 reference_editor.xml:1011 reference_editor.xml:1155 reference_editor.xml:1429 reference_editor.xml:1488
+#: reference_editor.xml:36 reference_editor.xml:111 reference_editor.xml:159 reference_editor.xml:202 reference_editor.xml:244 reference_editor.xml:326 reference_editor.xml:372 reference_editor.xml:421 reference_editor.xml:454 reference_editor.xml:500 reference_editor.xml:710 reference_editor.xml:792 reference_editor.xml:842 reference_editor.xml:890 reference_editor.xml:941 reference_editor.xml:1007 reference_editor.xml:1101 reference_editor.xml:1245 reference_editor.xml:1519 reference_e [...]
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:163 reference_editor.xml:205 reference_editor.xml:247 reference_editor.xml:287 reference_editor.xml:327 reference_editor.xml:372 reference_editor.xml:421 reference_editor.xml:465 reference_editor.xml:514 reference_editor.xml:554 reference_editor.xml:590 reference_editor.xml:624 reference_editor.xml:655 reference_editor.xml:711 reference_editor.xml:758 reference_editor.xml:807 reference_editor.xml:859 reference_edito [...]
+#: reference_editor.xml:40 reference_editor.xml:117 reference_editor.xml:164 reference_editor.xml:207 reference_editor.xml:250 reference_editor.xml:291 reference_editor.xml:332 reference_editor.xml:378 reference_editor.xml:459 reference_editor.xml:506 reference_editor.xml:548 reference_editor.xml:600 reference_editor.xml:644 reference_editor.xml:680 reference_editor.xml:714 reference_editor.xml:745 reference_editor.xml:801 reference_editor.xml:848 reference_editor.xml:897 reference_edito [...]
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -96,7 +96,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:170 reference_editor.xml:212 reference_editor.xml:254 reference_editor.xml:294 reference_editor.xml:334 reference_editor.xml:381 reference_editor.xml:427 reference_editor.xml:470 reference_editor.xml:519 reference_editor.xml:559 reference_editor.xml:595 reference_editor.xml:628 reference_editor.xml:718 reference_editor.xml:765 reference_editor.xml:814 reference_editor.xml:866 reference_editor.xml:931 reference_edito [...]
+#: reference_editor.xml:44 reference_editor.xml:124 reference_editor.xml:171 reference_editor.xml:214 reference_editor.xml:257 reference_editor.xml:298 reference_editor.xml:339 reference_editor.xml:387 reference_editor.xml:465 reference_editor.xml:512 reference_editor.xml:553 reference_editor.xml:605 reference_editor.xml:649 reference_editor.xml:685 reference_editor.xml:718 reference_editor.xml:808 reference_editor.xml:855 reference_editor.xml:904 reference_editor.xml:956 reference_edito [...]
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -156,7 +156,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:105 reference_editor.xml:699 reference_editor.xml:749 reference_editor.xml:797 reference_editor.xml:846 reference_editor.xml:915
+#: reference_editor.xml:105 reference_editor.xml:789 reference_editor.xml:839 reference_editor.xml:887 reference_editor.xml:936 reference_editor.xml:1005
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was introduced."
 msgstr ""
@@ -168,25 +168,25 @@ msgid "Availability: 1.1.2. Name changed from Affine to ST_Affine in 1.2.2"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:107 reference_editor.xml:849 reference_editor.xml:911 reference_editor.xml:1356 reference_editor.xml:1426 reference_editor.xml:1484
+#: reference_editor.xml:107 reference_editor.xml:939 reference_editor.xml:1001 reference_editor.xml:1446 reference_editor.xml:1516 reference_editor.xml:1574
 #, no-c-format
 msgid "Prior to 1.3.4, this function crashes if used with geometries that contain CURVES. This is fixed in 1.3.4+"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:109 reference_editor.xml:157 reference_editor.xml:198 reference_editor.xml:240 reference_editor.xml:365 reference_editor.xml:417 reference_editor.xml:704 reference_editor.xml:751 reference_editor.xml:799 reference_editor.xml:853 reference_editor.xml:916 reference_editor.xml:1361
+#: reference_editor.xml:109 reference_editor.xml:158 reference_editor.xml:200 reference_editor.xml:243 reference_editor.xml:371 reference_editor.xml:418 reference_editor.xml:455 reference_editor.xml:794 reference_editor.xml:841 reference_editor.xml:889 reference_editor.xml:943 reference_editor.xml:1006 reference_editor.xml:1451
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:110 reference_editor.xml:705 reference_editor.xml:753 reference_editor.xml:801 reference_editor.xml:854 reference_editor.xml:919
+#: reference_editor.xml:110 reference_editor.xml:419 reference_editor.xml:795 reference_editor.xml:843 reference_editor.xml:891 reference_editor.xml:944 reference_editor.xml:1009
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:112 reference_editor.xml:156 reference_editor.xml:199 reference_editor.xml:242 reference_editor.xml:282 reference_editor.xml:322 reference_editor.xml:367 reference_editor.xml:703 reference_editor.xml:852 reference_editor.xml:918 reference_editor.xml:1059 reference_editor.xml:1360 reference_editor.xml:1430 reference_editor.xml:1489
+#: reference_editor.xml:112 reference_editor.xml:157 reference_editor.xml:201 reference_editor.xml:245 reference_editor.xml:286 reference_editor.xml:327 reference_editor.xml:373 reference_editor.xml:420 reference_editor.xml:502 reference_editor.xml:793 reference_editor.xml:942 reference_editor.xml:1008 reference_editor.xml:1149 reference_editor.xml:1450 reference_editor.xml:1520 reference_editor.xml:1579
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
@@ -222,7 +222,7 @@ msgstr ""
 #. Tag: refname
 #: reference_editor.xml:132
 #, no-c-format
-msgid "ST_Force_2D"
+msgid "ST_Force2D"
 msgstr ""
 
 #. Tag: refpurpose
@@ -234,7 +234,7 @@ msgstr ""
 #. Tag: funcprototype
 #: reference_editor.xml:140
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Force_2D</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_Force2D</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
@@ -244,21 +244,27 @@ msgid "Forces the geometries into a \"2-dimensional mode\" so that all output re
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:155 reference_editor.xml:197 reference_editor.xml:239 reference_editor.xml:362 reference_editor.xml:415 reference_editor.xml:1358
+#: reference_editor.xml:155 reference_editor.xml:198 reference_editor.xml:241 reference_editor.xml:367 reference_editor.xml:453 reference_editor.xml:1448
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces was introduced."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:156
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_2D."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:165
+#: reference_editor.xml:166
 #, no-c-format
 msgid ""
-      "SELECT ST_AsEWKT(ST_Force_2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
+      "SELECT ST_AsEWKT(ST_Force2D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
       "                st_asewkt\n"
       "-------------------------------------\n"
       "CIRCULARSTRING(1 1,2 3,4 5,6 7,5 6)\n"
       "\n"
-      "SELECT  ST_AsEWKT(ST_Force_2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 2,1 3 2,1 1 2))'));\n"
+      "SELECT  ST_AsEWKT(ST_Force2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 2,1 3 2,1 1 2))'));\n"
       "\n"
       "                                  st_asewkt\n"
       "----------------------------------------------\n"
@@ -266,41 +272,47 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:178
+#: reference_editor.xml:179
 #, no-c-format
-msgid "ST_Force_3D"
+msgid "ST_Force3D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:180
+#: reference_editor.xml:181
 #, no-c-format
-msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ."
+msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force3DZ."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:185
+#: reference_editor.xml:186
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Force_3D</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_Force3D</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:195
+#: reference_editor.xml:196
 #, no-c-format
 msgid "Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ. If a geometry has no Z component, then a 0 Z coordinate is tacked on."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:199
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3D."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:207
+#: reference_editor.xml:209
 #, no-c-format
 msgid ""
       "--Nothing happens to an already 3D geometry\n"
-      "                SELECT ST_AsEWKT(ST_Force_3D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
+      "                SELECT ST_AsEWKT(ST_Force3D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
       "                                   st_asewkt\n"
       "-----------------------------------------------\n"
       " CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
       "\n"
       "\n"
-      "SELECT  ST_AsEWKT(ST_Force_3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))'));\n"
+      "SELECT  ST_AsEWKT(ST_Force3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))'));\n"
       "\n"
       "                                                 st_asewkt\n"
       "--------------------------------------------------------------\n"
@@ -308,47 +320,53 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:214
+#: reference_editor.xml:216
 #, no-c-format
-msgid ", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref linkend=\"ST_Force_3DZ\"/>"
+msgid ", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref linkend=\"ST_Force_3DZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:220
+#: reference_editor.xml:222
 #, no-c-format
-msgid "ST_Force_3DZ"
+msgid "ST_Force3DZ"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:222
+#: reference_editor.xml:224
 #, no-c-format
-msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force_3D."
+msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force3D."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:227
+#: reference_editor.xml:229
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_Force3DZ</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:239
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Force_3DZ</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force3DZ. If a geometry has no Z component, then a 0 Z coordinate is tacked on."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:237
+#: reference_editor.xml:242
 #, no-c-format
-msgid "Forces the geometries into XYZ mode. This is a synonym for ST_Force_3DZ. If a geometry has no Z component, then a 0 Z coordinate is tacked on."
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DZ."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:249
+#: reference_editor.xml:252
 #, no-c-format
 msgid ""
       "--Nothing happens to an already 3D geometry\n"
-      "SELECT ST_AsEWKT(ST_Force_3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
+      "SELECT ST_AsEWKT(ST_Force3DZ(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
       "                                   st_asewkt\n"
       "-----------------------------------------------\n"
       " CIRCULARSTRING(1 1 2,2 3 2,4 5 2,6 7 2,5 6 2)\n"
       "\n"
       "\n"
-      "SELECT  ST_AsEWKT(ST_Force_3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))'));\n"
+      "SELECT  ST_AsEWKT(ST_Force3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))'));\n"
       "\n"
       "                                                 st_asewkt\n"
       "--------------------------------------------------------------\n"
@@ -356,47 +374,53 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:256 reference_editor.xml:336
+#: reference_editor.xml:259 reference_editor.xml:341
 #, no-c-format
-msgid ", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref linkend=\"ST_Force_3D\"/>"
+msgid ", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref linkend=\"ST_Force_3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:262
+#: reference_editor.xml:265
 #, no-c-format
-msgid "ST_Force_3DM"
+msgid "ST_Force3DM"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:264
+#: reference_editor.xml:267
 #, no-c-format
 msgid "Forces the geometries into XYM mode."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:269
+#: reference_editor.xml:272
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Force_3DM</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_Force3DM</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:279
+#: reference_editor.xml:282
 #, no-c-format
 msgid "Forces the geometries into XYM mode. If a geometry has no M component, then a 0 M coordinate is tacked on. If it has a Z component, then Z is removed"
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:285
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_3DM."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:289
+#: reference_editor.xml:293
 #, no-c-format
 msgid ""
       "--Nothing happens to an already 3D geometry\n"
-      "SELECT ST_AsEWKT(ST_Force_3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
+      "SELECT ST_AsEWKT(ST_Force3DM(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
       "                                   st_asewkt\n"
       "------------------------------------------------\n"
       " CIRCULARSTRINGM(1 1 0,2 3 0,4 5 0,6 7 0,5 6 0)\n"
       "\n"
       "\n"
-      "SELECT  ST_AsEWKT(ST_Force_3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1 3 1,1 1 1))'));\n"
+      "SELECT  ST_AsEWKT(ST_Force3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1 3 1,1 1 1))'));\n"
       "\n"
       "                                                  st_asewkt\n"
       "---------------------------------------------------------------\n"
@@ -404,48 +428,54 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:296 reference_editor.xml:383
+#: reference_editor.xml:300 reference_editor.xml:389
 #, no-c-format
-msgid ", <xref linkend=\"ST_Force_2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref linkend=\"ST_Force_3D\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
+msgid ", <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_Force_3DM\"/>, <xref linkend=\"ST_Force_3D\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:302
+#: reference_editor.xml:306
 #, no-c-format
-msgid "ST_Force_4D"
+msgid "ST_Force4D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:304
+#: reference_editor.xml:308
 #, no-c-format
 msgid "Forces the geometries into XYZM mode."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:309
+#: reference_editor.xml:313
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Force_4D</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_Force4D</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:319
+#: reference_editor.xml:323
 #, no-c-format
 msgid "Forces the geometries into XYZM mode. 0 is tacked on for missing Z and M dimensions."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:325
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_4D."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:329
+#: reference_editor.xml:334
 #, no-c-format
 msgid ""
       "--Nothing happens to an already 3D geometry\n"
-      "SELECT ST_AsEWKT(ST_Force_4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
+      "SELECT ST_AsEWKT(ST_Force4D(ST_GeomFromEWKT('CIRCULARSTRING(1 1 2, 2 3 2, 4 5 2, 6 7 2, 5 6 2)')));\n"
       "                                                st_asewkt\n"
       "---------------------------------------------------------\n"
       " CIRCULARSTRING(1 1 2 0,2 3 2 0,4 5 2 0,6 7 2 0,5 6 2 0)\n"
       "\n"
       "\n"
       "\n"
-      "SELECT  ST_AsEWKT(ST_Force_4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 1 1,3 1 1,1 3 1,1 1 1))'));\n"
+      "SELECT  ST_AsEWKT(ST_Force4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 1 1,3 1 1,1 3 1,1 1 1))'));\n"
       "\n"
       "                                                                          st_asewkt\n"
       "--------------------------------------------------------------------------------------\n"
@@ -453,47 +483,53 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:342
+#: reference_editor.xml:347
 #, no-c-format
-msgid "ST_Force_Collection"
+msgid "ST_ForceCollection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:344
+#: reference_editor.xml:349
 #, no-c-format
 msgid "Converts the geometry into a GEOMETRYCOLLECTION."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:349
+#: reference_editor.xml:354
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Force_Collection</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_ForceCollection</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:359
+#: reference_editor.xml:364
 #, no-c-format
 msgid "Converts the geometry into a GEOMETRYCOLLECTION. This is useful for simplifying the WKB representation."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:363
+#: reference_editor.xml:368
 #, no-c-format
 msgid "Availability: 1.2.2, prior to 1.3.4 this function will crash with Curves. This is fixed in 1.3.4+"
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:369
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Force_Collection."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:374
+#: reference_editor.xml:380
 #, no-c-format
 msgid ""
-      "SELECT  ST_AsEWKT(ST_Force_Collection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1 3 1,1 1 1))'));\n"
+      "SELECT  ST_AsEWKT(ST_ForceCollection('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1 3 1,1 1 1))'));\n"
       "\n"
       "                                                                   st_asewkt\n"
       "----------------------------------------------------------------------------------\n"
       " GEOMETRYCOLLECTION(POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1 3 1,1 1 1)))\n"
       "\n"
       "\n"
-      "  SELECT ST_AsText(ST_Force_Collection('CIRCULARSTRING(220227 150406,2220227 150407,220227 150406)'));\n"
+      "  SELECT ST_AsText(ST_ForceCollection('CIRCULARSTRING(220227 150406,2220227 150407,220227 150406)'));\n"
       "                                                                   st_astext\n"
       "--------------------------------------------------------------------------------\n"
       " GEOMETRYCOLLECTION(CIRCULARSTRING(220227 150406,2220227 150407,220227 150406))\n"
@@ -501,11 +537,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:376
+#: reference_editor.xml:382
 #, no-c-format
 msgid ""
       "-- POLYHEDRAL example --\n"
-      "SELECT ST_AsEWKT(ST_Force_Collection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
+      "SELECT ST_AsEWKT(ST_ForceCollection('POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),\n"
       " ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),\n"
       " ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),\n"
       " ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),\n"
@@ -525,31 +561,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:390
+#: reference_editor.xml:396
+#, no-c-format
+msgid "ST_ForceSFS"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:398
+#, no-c-format
+msgid "Forces the geometries to use SFS 1.1 geometry types only."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_editor.xml:402
+#, no-c-format
+msgid "<funcprototype> <funcdef>geometry <function>ST_ForceSFS</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_ForceSFS</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>text </type> <parameter>version</parameter></paramdef> </funcprototype>"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:428
 #, no-c-format
 msgid "ST_ForceRHR"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:392
+#: reference_editor.xml:430
 #, no-c-format
 msgid "Forces the orientation of the vertices in a polygon to follow the Right-Hand-Rule."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:398
+#: reference_editor.xml:436
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_ForceRHR</function></funcdef> <paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:409
+#: reference_editor.xml:447
 #, no-c-format
 msgid "Forces the orientation of the vertices in a polygon to follow the Right-Hand-Rule. In GIS terminology, this means that the area that is bounded by the polygon is to the right of the boundary. In particular, the exterior ring is orientated in a clockwise direction and the interior rings in a counter-clockwise direction."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:423
+#: reference_editor.xml:461
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(\n"
@@ -564,49 +618,94 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:429
+#: reference_editor.xml:467
 #, no-c-format
 msgid ", <xref linkend=\"ST_Polygonize\"/>, <xref linkend=\"ST_Reverse\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:437
+#: reference_editor.xml:475
+#, no-c-format
+msgid "ST_ForceCurve"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_editor.xml:477
+#, no-c-format
+msgid "Upcasts a geometry into its curved type, if applicable."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_editor.xml:482
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_ForceCurve</function></funcdef> <paramdef><type>geometry</type> <parameter>g</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:493
+#, no-c-format
+msgid "Turns a geometry into its curved representation, if applicable: lines become compoundcurves, multilines become multicurves polygons become curvepolygons multipolygons become multisurfaces. If the geometry input is already a curved representation returns back same as input."
+msgstr ""
+
+#. Tag: para
+#: reference_editor.xml:499
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_editor.xml:508
+#, no-c-format
+msgid ""
+      "SELECT ST_AsText(\n"
+      "  ST_ForceCurve(\n"
+      "        'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 2))'::geometry\n"
+      "  )\n"
+      ");\n"
+      "                              st_astext\n"
+      "----------------------------------------------------------------------\n"
+      " CURVEPOLYGON Z ((0 0 2,5 0 2,0 5 2,0 0 2),(1 1 2,1 3 2,3 1 2,1 1 2))\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: refname
+#: reference_editor.xml:520
 #, no-c-format
 msgid "ST_LineMerge"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:439
+#: reference_editor.xml:522
 #, no-c-format
 msgid "Returns a (set of) LineString(s) formed by sewing together a MULTILINESTRING."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:445
+#: reference_editor.xml:528
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_LineMerge</function></funcdef> <paramdef><type>geometry </type> <parameter>amultilinestring</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:455
+#: reference_editor.xml:538
 #, no-c-format
 msgid "Returns a (set of) LineString(s) formed by sewing together the constituent line work of a MULTILINESTRING."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:457
+#: reference_editor.xml:540
 #, no-c-format
 msgid "Only use with MULTILINESTRING/LINESTRINGs. If you feed a polygon or geometry collection into this function, it will return an empty GEOMETRYCOLLECTION"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:461
+#: reference_editor.xml:544
 #, no-c-format
 msgid "requires GEOS >= 2.1.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:467
+#: reference_editor.xml:550
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_LineMerge(\n"
@@ -629,49 +728,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:471
+#: reference_editor.xml:554
 #, no-c-format
-msgid ", <xref linkend=\"ST_Line_Substring\"/>"
+msgid ", <xref linkend=\"ST_LineSubstring\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:477
+#: reference_editor.xml:560
 #, no-c-format
 msgid "ST_CollectionExtract"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:479
+#: reference_editor.xml:562
 #, no-c-format
 msgid "Given a (multi)geometry, returns a (multi)geometry consisting only of elements of the specified type."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:486
+#: reference_editor.xml:569
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_CollectionExtract</function></funcdef> <paramdef><type>geometry </type> <parameter>collection</parameter></paramdef> <paramdef><type>integer </type> <parameter>type</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:497
+#: reference_editor.xml:580
 #, no-c-format
 msgid "Given a (multi)geometry, returns a (multi)geometry consisting only of elements of the specified type. Sub-geometries that are not the specified type are ignored. If there are no sub-geometries of the right type, an EMPTY geometry will be returned. Only points, lines and polygons are supported. Type numbers are 1 == POINT, 2 == LINESTRING, 3 == POLYGON."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:503
+#: reference_editor.xml:586
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:505
+#: reference_editor.xml:588
 #, no-c-format
 msgid "Prior to 1.5.3 this function returned non-collection inputs untouched, no matter type. In 1.5.3 non-matching single geometries result in a NULL return. In of 2.0.0 every case of missing match results in a typed EMPTY return."
 msgstr ""
 
+#. Tag: para
+#: reference_editor.xml:594 reference_editor.xml:635
+#, no-c-format
+msgid "When specifying 3 == POLYGON a multipolygon is returned even when the edges are shared. This results in an invalid multipolygon for many cases such as applying this function on an <xref linkend=\"ST_Split\"/> result."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_editor.xml:516
+#: reference_editor.xml:602
 #, no-c-format
 msgid ""
       "-- Constants: 1 == POINT, 2 == LINESTRING, 3 == POLYGON\n"
@@ -689,43 +794,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:520
+#: reference_editor.xml:606
 #, no-c-format
 msgid ", <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_CollectionHomogenize\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:526
+#: reference_editor.xml:612
 #, no-c-format
 msgid "ST_CollectionHomogenize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:528
+#: reference_editor.xml:614
 #, no-c-format
 msgid "Given a geometry collection, returns the \"simplest\" representation of the contents."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:535
+#: reference_editor.xml:621
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_CollectionHomogenize</function></funcdef> <paramdef><type>geometry </type> <parameter>collection</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:545
+#: reference_editor.xml:631
 #, no-c-format
 msgid "Given a geometry collection, returns the \"simplest\" representation of the contents. Singletons will be returned as singletons. Collections that are homogeneous will be returned as the appropriate multi-type."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:549
+#: reference_editor.xml:639
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:556
+#: reference_editor.xml:646
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0))'));        \n"
@@ -744,37 +849,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:560
+#: reference_editor.xml:650
 #, no-c-format
 msgid ", <xref linkend=\"ST_CollectionExtract\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:566
+#: reference_editor.xml:656
 #, no-c-format
 msgid "ST_Multi"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:568
+#: reference_editor.xml:658
 #, no-c-format
 msgid "<refpurpose>Returns the geometry as a MULTI* geometry. If the geometry is already a MULTI*, it is returned unchanged.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:574
+#: reference_editor.xml:664
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Multi</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:584
+#: reference_editor.xml:674
 #, no-c-format
 msgid "<para>Returns the geometry as a MULTI* geometry. If the geometry is already a MULTI*, it is returned unchanged.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:592
+#: reference_editor.xml:682
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Multi(ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
@@ -787,31 +892,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:602
+#: reference_editor.xml:692
 #, no-c-format
 msgid "ST_RemovePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:603
+#: reference_editor.xml:693
 #, no-c-format
 msgid "Removes point from a linestring. Offset is 0-based."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:607
+#: reference_editor.xml:697
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_RemovePoint</function></funcdef> <paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> <paramdef><type>integer</type> <parameter>offset</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:618
+#: reference_editor.xml:708
 #, no-c-format
 msgid "Removes point from a linestring. Useful for turning a closed ring into an open line string"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:625
+#: reference_editor.xml:715
 #, no-c-format
 msgid ""
       "--guarantee no LINESTRINGS are closed\n"
@@ -823,37 +928,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:629
+#: reference_editor.xml:719
 #, no-c-format
 msgid ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:635
+#: reference_editor.xml:725
 #, no-c-format
 msgid "ST_Reverse"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:636
+#: reference_editor.xml:726
 #, no-c-format
 msgid "Returns the geometry with vertex order reversed."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:641
+#: reference_editor.xml:731
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Reverse</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:651
+#: reference_editor.xml:741
 #, no-c-format
 msgid "Can be used on any geometry and reverses the order of the vertexes."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:656
+#: reference_editor.xml:746
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(the_geom) as line, ST_AsText(ST_Reverse(the_geom)) As reverseline\n"
@@ -867,43 +972,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:662
+#: reference_editor.xml:752
 #, no-c-format
 msgid "ST_Rotate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:664
+#: reference_editor.xml:754
 #, no-c-format
 msgid "Rotate a geometry rotRadians counter-clockwise about an origin."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:668
+#: reference_editor.xml:758
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_Rotate</function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef> <paramdef><type>float</typ [...]
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:695
+#: reference_editor.xml:785
 #, no-c-format
 msgid "Rotates geometry rotRadians counter-clockwise about the origin. The rotation origin can be specified either as a POINT geometry, or as x and y coordinates. If the origin is not specified, the geometry is rotated about POINT(0 0)."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:700
+#: reference_editor.xml:790
 #, no-c-format
 msgid "Enhanced: 2.0.0 additional parameters for specifying the origin of rotation were added."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:701
+#: reference_editor.xml:791
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from Rotate to ST_Rotate in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:713
+#: reference_editor.xml:803
 #, no-c-format
 msgid ""
       "--Rotate 180 degrees\n"
@@ -930,49 +1035,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:720
+#: reference_editor.xml:810
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:726
+#: reference_editor.xml:816
 #, no-c-format
 msgid "ST_RotateX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:728
+#: reference_editor.xml:818
 #, no-c-format
 msgid "Rotate a geometry rotRadians about the X axis."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:733
+#: reference_editor.xml:823
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_RotateX</function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:744
+#: reference_editor.xml:834
 #, no-c-format
 msgid "Rotate a geometry geomA - rotRadians about the X axis."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:746
+#: reference_editor.xml:836
 #, no-c-format
 msgid "<code>ST_RotateX(geomA, rotRadians)</code> is short-hand for <code>ST_Affine(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), cos(rotRadians), 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:750
+#: reference_editor.xml:840
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from RotateX to ST_RotateX in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:760
+#: reference_editor.xml:850
 #, no-c-format
 msgid ""
       "--Rotate a line 90 degrees along x-axis\n"
@@ -983,49 +1088,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:767
+#: reference_editor.xml:857
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateY\"/>, <xref linkend=\"ST_RotateZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:773
+#: reference_editor.xml:863
 #, no-c-format
 msgid "ST_RotateY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:775
+#: reference_editor.xml:865
 #, no-c-format
 msgid "Rotate a geometry rotRadians about the Y axis."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:780
+#: reference_editor.xml:870
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_RotateY</function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:791
+#: reference_editor.xml:881
 #, no-c-format
 msgid "Rotate a geometry geomA - rotRadians about the y axis."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:793
+#: reference_editor.xml:883
 #, no-c-format
 msgid "<code>ST_RotateY(geomA, rotRadians)</code> is short-hand for <code>ST_Affine(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -sin(rotRadians), 0, cos(rotRadians), 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:796
+#: reference_editor.xml:886
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from RotateY to ST_RotateY in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:809
+#: reference_editor.xml:899
 #, no-c-format
 msgid ""
       "--Rotate a line 90 degrees along y-axis\n"
@@ -1036,55 +1141,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:816
+#: reference_editor.xml:906
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:822
+#: reference_editor.xml:912
 #, no-c-format
 msgid "ST_RotateZ"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:824
+#: reference_editor.xml:914
 #, no-c-format
 msgid "Rotate a geometry rotRadians about the Z axis."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:829
+#: reference_editor.xml:919
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_RotateZ</function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>rotRadians</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:840
+#: reference_editor.xml:930
 #, no-c-format
 msgid "Rotate a geometry geomA - rotRadians about the Z axis."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:842
+#: reference_editor.xml:932
 #, no-c-format
 msgid "This is a synonym for ST_Rotate"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:843
+#: reference_editor.xml:933
 #, no-c-format
 msgid "<code>ST_RotateZ(geomA, rotRadians)</code> is short-hand for <code>SELECT ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:848
+#: reference_editor.xml:938
 #, no-c-format
 msgid "Availability: 1.1.2. Name changed from RotateZ to ST_RotateZ in 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:861
+#: reference_editor.xml:951
 #, no-c-format
 msgid ""
       "--Rotate a line 90 degrees along z-axis\n"
@@ -1103,49 +1208,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:868
+#: reference_editor.xml:958
 #, no-c-format
 msgid ", <xref linkend=\"ST_RotateX\"/>, <xref linkend=\"ST_RotateY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:874
+#: reference_editor.xml:964
 #, no-c-format
 msgid "ST_Scale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:876
+#: reference_editor.xml:966
 #, no-c-format
 msgid "<refpurpose>Scales the geometry to a new size by multiplying the ordinates with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:883
+#: reference_editor.xml:973
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> <paramdef><type>float</type> <parameter>YFactor</parameter></paramdef> <paramdef><type>float</type> <parameter>ZFactor</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_Scale</function></funcdef> <paramdef><type>geometry </type> < [...]
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:904
+#: reference_editor.xml:994
 #, no-c-format
 msgid "<para>Scales the geometry to a new size by multiplying the ordinates with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:908
+#: reference_editor.xml:998
 #, no-c-format
 msgid "<code>ST_Scale(geomA, XFactor, YFactor, ZFactor)</code> is short-hand for <code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, 0)</code>."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:914 reference_editor.xml:1487
+#: reference_editor.xml:1004 reference_editor.xml:1577
 #, no-c-format
 msgid "Availability: 1.1.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:926
+#: reference_editor.xml:1016
 #, no-c-format
 msgid ""
       "--Version 1: scale X, Y, Z\n"
@@ -1162,61 +1267,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:933
+#: reference_editor.xml:1023
 #, no-c-format
 msgid ", <xref linkend=\"ST_TransScale\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:939
+#: reference_editor.xml:1029
 #, no-c-format
 msgid "ST_Segmentize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:941
+#: reference_editor.xml:1031
 #, no-c-format
 msgid "Return a modified geometry/geography having no segment longer than the given distance. Distance computation is performed in 2d only. For geometry, length units are in units of spatial reference. For geography, units are in meters."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:947
+#: reference_editor.xml:1037
 #, no-c-format
-msgid "<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef><type>float </type> <parameter>max_segment_length</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_Segmentize</function></funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> <parameter>max_segment_length</parameter></paramdef> [...]
+msgid "<funcprototype> <funcdef>geometry <function>ST_Segmentize</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef><type>float </type> <parameter>max_segment_length</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geography <function>ST_Segmentize</function></funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></paramdef> <paramdef><type>float </type> <parameter>max_segment_length</parameter></paramdef [...]
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:964
+#: reference_editor.xml:1054
 #, no-c-format
 msgid "Returns a modified geometry having no segment longer than the given <varname>max_segment_length</varname>. Distance computation is performed in 2d only. For geometry, length units are in units of spatial reference. For geography, units are in meters."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:967 reference_editor.xml:1428
+#: reference_editor.xml:1057 reference_editor.xml:1518
 #, no-c-format
 msgid "Availability: 1.2.2"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:968
+#: reference_editor.xml:1058
 #, no-c-format
 msgid "Enhanced: 2.1.0 support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:969
+#: reference_editor.xml:1059
 #, no-c-format
 msgid "Changed: 2.1.0 As a result of the introduction of geography support: The construct <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</code> will result in ambiguous function error. You need to have properly typed object e.g. a geometry/geography column, use ST_GeomFromText, ST_GeogFromText or <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)'::geometry,0.5);</code>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:971
+#: reference_editor.xml:1061
 #, no-c-format
 msgid "This will only increase segments. It will not lengthen segments shorter than max length"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:978
+#: reference_editor.xml:1068
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Segmentize(\n"
@@ -1238,31 +1343,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:988
+#: reference_editor.xml:1078
 #, no-c-format
 msgid "ST_SetPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:989
+#: reference_editor.xml:1079
 #, no-c-format
 msgid "Replace point N of linestring with given point. Index is 0-based."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:994
+#: reference_editor.xml:1084
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_SetPoint</function></funcdef> <paramdef><type>geometry</type> <parameter>linestring</parameter></paramdef> <paramdef><type>integer</type> <parameter>zerobasedposition</parameter></paramdef> <paramdef><type>geometry</type> <parameter>point</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1006
+#: reference_editor.xml:1096
 #, no-c-format
 msgid "Replace point N of linestring with given point. Index is 0-based. This is especially useful in triggers when trying to maintain relationship of joints when one vertex moves."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1016
+#: reference_editor.xml:1106
 #, no-c-format
 msgid ""
       "--Change first point in line string from -1 3 to -1 1\n"
@@ -1280,55 +1385,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1020
+#: reference_editor.xml:1110
 #, no-c-format
 msgid ", <xref linkend=\"ST_NPoints\"/>, <xref linkend=\"ST_NumPoints\"/>, <xref linkend=\"ST_PointN\"/>, <xref linkend=\"ST_RemovePoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1026
+#: reference_editor.xml:1116
 #, no-c-format
 msgid "ST_SetSRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1028
+#: reference_editor.xml:1118
 #, no-c-format
 msgid "Sets the SRID on a geometry to a particular integer value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1034
+#: reference_editor.xml:1124
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_SetSRID</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1049
+#: reference_editor.xml:1139
 #, no-c-format
 msgid "Sets the SRID on a geometry to a particular integer value. Useful in constructing bounding boxes for queries."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1053
+#: reference_editor.xml:1143
 #, no-c-format
 msgid "This function does not transform the geometry coordinates in any way - it simply sets the meta data defining the spatial reference system the geometry is assumed to be in. Use <xref linkend=\"ST_Transform\"/> if you want to transform the geometry into a new projection."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1058
+#: reference_editor.xml:1148
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1064
+#: reference_editor.xml:1154
 #, no-c-format
 msgid "-- Mark a point as WGS 84 long lat --"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1065
+#: reference_editor.xml:1155
 #, no-c-format
 msgid ""
       "SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) As wgs84long_lat;\n"
@@ -1337,13 +1442,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1066
+#: reference_editor.xml:1156
 #, no-c-format
 msgid "-- Mark a point as WGS 84 long lat and then transform to web mercator (Spherical Mercator) --"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1067
+#: reference_editor.xml:1157
 #, no-c-format
 msgid ""
       "SELECT ST_Transform(ST_SetSRID(ST_Point(-123.365556, 48.428611),4326),3785) As spere_merc;\n"
@@ -1352,67 +1457,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1073
+#: reference_editor.xml:1163
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_SRID\"/>, <xref linkend=\"ST_Transform\"/>, <xref linkend=\"UpdateGeometrySRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1080
+#: reference_editor.xml:1170
 #, no-c-format
 msgid "ST_SnapToGrid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1082
+#: reference_editor.xml:1172
 #, no-c-format
 msgid "Snap all points of the input geometry to a regular grid."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:1088
+#: reference_editor.xml:1178
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_SnapToGrid</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>float </type> <parameter>originX</parameter></paramdef> <paramdef><type>float </type> <parameter>originY</parameter></paramdef> <paramdef><type>float </type> <parameter>sizeX</parameter></paramdef> <paramdef><type>float </type> <parameter>sizeY</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometr [...]
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1126
+#: reference_editor.xml:1216
 #, no-c-format
 msgid "Variant 1,2,3: Snap all points of the input geometry to the grid defined by its origin and cell size. Remove consecutive points falling on the same cell, eventually returning NULL if output points are not enough to define a geometry of the given type. Collapsed geometries in a collection are stripped from it. Useful for reducing precision."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1134
+#: reference_editor.xml:1224
 #, no-c-format
 msgid "Variant 4: Introduced 1.1.0 - Snap all points of the input geometry to the grid defined by its origin (the second argument, must be a point) and cell sizes. Specify 0 as size for any dimension you don't want to snap to a grid."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1140
+#: reference_editor.xml:1230
 #, no-c-format
 msgid "The returned geometry might loose its simplicity (see <xref linkend=\"ST_IsSimple\"/>)."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1145
+#: reference_editor.xml:1235
 #, no-c-format
 msgid "Before release 1.1.0 this function always returned a 2d geometry. Starting at 1.1.0 the returned geometry will have same dimensionality as the input one with higher dimension values untouched. Use the version taking a second geometry argument to define all grid dimensions."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1152
+#: reference_editor.xml:1242
 #, no-c-format
 msgid "Availability: 1.0.0RC1"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1153
+#: reference_editor.xml:1243
 #, no-c-format
 msgid "Availability: 1.1.0 - Z and M support"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1162
+#: reference_editor.xml:1252
 #, no-c-format
 msgid ""
       "--Snap your geometries to a precision grid of 10^-3\n"
@@ -1447,73 +1552,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1169
+#: reference_editor.xml:1259
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Simplify\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1182
+#: reference_editor.xml:1272
 #, no-c-format
 msgid "ST_Snap"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1184
+#: reference_editor.xml:1274
 #, no-c-format
 msgid "Snap segments and vertices of input geometry to vertices of a reference geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1192
+#: reference_editor.xml:1282
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Snap</function></funcdef> <paramdef><type>geometry </type> <parameter>input</parameter></paramdef> <paramdef><type>geometry </type> <parameter>reference</parameter></paramdef> <paramdef><type>float </type> <parameter>tolerance</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1204
+#: reference_editor.xml:1294
 #, no-c-format
 msgid "Snaps the vertices and segments of a geometry another Geometry's vertices. A snap distance tolerance is used to control where snapping is performed."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1209
+#: reference_editor.xml:1299
 #, no-c-format
 msgid "Snapping one geometry to another can improve robustness for overlay operations by eliminating nearly-coincident edges (which cause problems during noding and intersection calculation)."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1216
+#: reference_editor.xml:1306
 #, no-c-format
 msgid "Too much snapping can result in invalid topology being created, so the number and location of snapped vertices is decided using heuristics to determine when it is safe to snap. This can result in some potential snaps being omitted, however."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1225
+#: reference_editor.xml:1315
 #, no-c-format
 msgid "The returned geometry might loose its simplicity (see <xref linkend=\"ST_IsSimple\"/>) and validity (see <xref linkend=\"ST_IsValid\"/>)."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1232
+#: reference_editor.xml:1322
 #, no-c-format
 msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1249
+#: reference_editor.xml:1339
 #, no-c-format
 msgid "A multipolygon shown with a linestring (before any snapping)"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1260
+#: reference_editor.xml:1350
 #, no-c-format
 msgid "A multipolygon snapped to linestring to tolerance: 1.01 of distance. The new multipolygon is shown with reference linestring"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1264
+#: reference_editor.xml:1354
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Snap(poly,line, ST_Distance(poly,line)*1.01)) AS polysnapped\n"
@@ -1533,13 +1638,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1271
+#: reference_editor.xml:1361
 #, no-c-format
 msgid "A multipolygon snapped to linestring to tolerance: 1.25 of distance. The new multipolygon is shown with reference linestring"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1275
+#: reference_editor.xml:1365
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(\n"
@@ -1561,13 +1666,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1284
+#: reference_editor.xml:1374
 #, no-c-format
 msgid "The linestring snapped to the original multipolygon at tolerance 1.01 of distance. The new linestring is shown with reference multipolygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1288
+#: reference_editor.xml:1378
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(\n"
@@ -1587,13 +1692,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1296
+#: reference_editor.xml:1386
 #, no-c-format
 msgid "The linestring snapped to the original multipolygon at tolerance 1.25 of distance. The new linestring is shown with reference multipolygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1300
+#: reference_editor.xml:1390
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(\n"
@@ -1612,61 +1717,61 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1321
+#: reference_editor.xml:1411
 #, no-c-format
 msgid "ST_Transform"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1323
+#: reference_editor.xml:1413
 #, no-c-format
 msgid "Returns a new geometry with its coordinates transformed to the SRID referenced by the integer parameter."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1329
+#: reference_editor.xml:1419
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Transform</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1340
+#: reference_editor.xml:1430
 #, no-c-format
 msgid "Returns a new geometry with its coordinates transformed to spatial reference system referenced by the SRID integer parameter. The destination SRID must exist in the <varname>SPATIAL_REF_SYS</varname> table."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1343
+#: reference_editor.xml:1433
 #, no-c-format
 msgid "ST_Transform is often confused with ST_SetSRID(). ST_Transform actually changes the coordinates of a geometry from one spatial reference system to another, while ST_SetSRID() simply changes the SRID identifier of the geometry"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1348
+#: reference_editor.xml:1438
 #, no-c-format
 msgid "Requires PostGIS be compiled with Proj support. Use <xref linkend=\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1352
+#: reference_editor.xml:1442
 #, no-c-format
 msgid "If using more than one transformation, it is useful to have a functional index on the commonly used transformations to take advantage of index usage."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1359
+#: reference_editor.xml:1449
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.6"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1367
+#: reference_editor.xml:1457
 #, no-c-format
 msgid "Change Mass state plane US feet geometry to WGS 84 long lat"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1368
+#: reference_editor.xml:1458
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Transform(ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,\n"
@@ -1690,13 +1795,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1369
+#: reference_editor.xml:1459
 #, no-c-format
 msgid "Example of creating a partial functional index. For tables where you are not sure all the geometries will be filled in, its best to use a partial index that leaves out null geometries which will both conserve space and make your index smaller and more efficient."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1371
+#: reference_editor.xml:1461
 #, no-c-format
 msgid ""
       "CREATE INDEX idx_the_geom_26986_parcels\n"
@@ -1707,97 +1812,97 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_editor.xml:1375
+#: reference_editor.xml:1465
 #, no-c-format
 msgid "Configuring transformation behaviour"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1376
+#: reference_editor.xml:1466
 #, no-c-format
 msgid "Sometimes coordinate transformation involving a grid-shift can fail, for example if PROJ.4 has not been built with grid-shift files or the coordinate does not lie within the range for which the grid shift is defined. By default, PostGIS will throw an error if a grid shift file is not present, but this behaviour can be configured on a per-SRID basis by altering the proj4text value within the spatial_ref_sys table."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1377
+#: reference_editor.xml:1467
 #, no-c-format
 msgid "For example, the proj4text parameter +datum=NAD87 is a shorthand form for the following +nadgrids parameter:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1378
+#: reference_editor.xml:1468
 #, no-c-format
 msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1379
+#: reference_editor.xml:1469
 #, no-c-format
 msgid "The @ prefix means no error is reported if the files are not present, but if the end of the list is reached with no file having been appropriate (ie. found and overlapping) then an error is issued."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1380
+#: reference_editor.xml:1470
 #, no-c-format
 msgid "If, conversely, you wanted to ensure that at least the standard files were present, but that if all files were scanned without a hit a null transformation is applied you could use:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1381
+#: reference_editor.xml:1471
 #, no-c-format
 msgid "+nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1382
+#: reference_editor.xml:1472
 #, no-c-format
 msgid "The null grid shift file is a valid grid shift file covering the whole world and applying no shift. So for a complete example, if you wanted to alter PostGIS so that transformations to SRID 4267 that didn't lie within the correct range did not throw an ERROR, you would use the following:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1383
+#: reference_editor.xml:1473
 #, no-c-format
 msgid "UPDATE spatial_ref_sys SET proj4text = '+proj=longlat +ellps=clrk66 +nadgrids=@conus, at alaska, at ntv2_0.gsb, at ntv1_can.dat,null +no_defs' WHERE srid = 4267;"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1390
+#: reference_editor.xml:1480
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"UpdateGeometrySRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1396
+#: reference_editor.xml:1486
 #, no-c-format
 msgid "ST_Translate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1398
+#: reference_editor.xml:1488
 #, no-c-format
 msgid "Translates the geometry to a new location using the numeric parameters as offsets. Ie: ST_Translate(geom, X, Y) or ST_Translate(geom, X, Y,Z)."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_editor.xml:1403
+#: reference_editor.xml:1493
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_Translate</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>float </type> <parameter>deltax</parameter></paramdef> <paramdef><type>float </type> <parameter>deltay</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_Translate</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>float </type>  [...]
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1423
+#: reference_editor.xml:1513
 #, no-c-format
 msgid "Returns a new geometry whose coordinates are translated delta x,delta y,delta z units. Units are based on the units defined in spatial reference (SRID) for this geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1435
+#: reference_editor.xml:1525
 #, no-c-format
 msgid "Move a point 1 degree longitude"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1436
+#: reference_editor.xml:1526
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 42.37)',4326),1,0)) As wgs_transgeomtxt;\n"
@@ -1808,13 +1913,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1437
+#: reference_editor.xml:1527
 #, no-c-format
 msgid "Move a linestring 1 degree longitude and 1/2 degree latitude"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1438
+#: reference_editor.xml:1528
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 42.37,-71.11 42.38)',4326),1,0.5)) As wgs_transgeomtxt;\n"
@@ -1824,13 +1929,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1439
+#: reference_editor.xml:1529
 #, no-c-format
 msgid "Move a 3d point"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1440
+#: reference_editor.xml:1530
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' As geometry), 5, 12,3));\n"
@@ -1840,13 +1945,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1441
+#: reference_editor.xml:1531
 #, no-c-format
 msgid "Move a curve and a point"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1442
+#: reference_editor.xml:1532
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Translate(ST_Collect('CURVEPOLYGON(CIRCULARSTRING(4 3,3.12 0.878,1 0,-1.121 5.1213,6 7, 8 9,4 3))','POINT(1 3)'),1,2));\n"
@@ -1856,43 +1961,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1448
+#: reference_editor.xml:1538
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_editor.xml:1454
+#: reference_editor.xml:1544
 #, no-c-format
 msgid "ST_TransScale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_editor.xml:1456
+#: reference_editor.xml:1546
 #, no-c-format
 msgid "<refpurpose>Translates the geometry using the deltaX and deltaY args, then scales it using the XFactor, YFactor args, working in 2D only.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_editor.xml:1463
+#: reference_editor.xml:1553
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_TransScale</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>deltaX</parameter></paramdef> <paramdef><type>float</type> <parameter>deltaY</parameter></paramdef> <paramdef><type>float</type> <parameter>XFactor</parameter></paramdef> <paramdef><type>float</type> <parameter>YFactor</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1477
+#: reference_editor.xml:1567
 #, no-c-format
 msgid "<para>Translates the geometry using the deltaX and deltaY args, then scales it using the XFactor, YFactor args, working in 2D only.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1480
+#: reference_editor.xml:1570
 #, no-c-format
 msgid "<code>ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor)</code> is short-hand for <code>ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, deltaX*XFactor, deltaY*YFactor, 0)</code>."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_editor.xml:1496
+#: reference_editor.xml:1586
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_TransScale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 1, 1, 2));\n"
@@ -1909,7 +2014,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_editor.xml:1503
+#: reference_editor.xml:1593
 #, no-c-format
 msgid ", <xref linkend=\"ST_Translate\"/>"
 msgstr ""
diff --git a/doc/po/templates/reference_guc.xml.pot b/doc/po/templates/reference_guc.xml.pot
new file mode 100644
index 0000000..eba38db
--- /dev/null
+++ b/doc/po/templates/reference_guc.xml.pot
@@ -0,0 +1,338 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: para
+#: reference_guc.xml:5
+#, no-c-format
+msgid "This section lists custom PostGIS Grand Unified Custom Variables(GUC). These can be set globally, by database, by session or by transaction. Best set at global or database level."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:8
+#, no-c-format
+msgid "PostGIS Grand Unified Custom Variables (GUCs)"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:12
+#, no-c-format
+msgid "postgis.backend"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:13
+#, no-c-format
+msgid "The backend to service a function where GEOS and SFCGAL overlap. Options: geos or sfcgal. Defaults to geos."
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:17 reference_guc.xml:45 reference_guc.xml:95 reference_guc.xml:180
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:18
+#, no-c-format
+msgid "This GUC is only relevant if you compiled PostGIS with sfcgal support. By default <varname>geos</varname> backend is used for functions where both GEOS and SFCGAL have the same named function. This variable allows you to override and make sfcgal the backend to service the request."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:19
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:23 reference_guc.xml:69 reference_guc.xml:146 reference_guc.xml:206
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:24
+#, no-c-format
+msgid "Sets backend just for life of connection"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:25
+#, no-c-format
+msgid "set postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:27
+#, no-c-format
+msgid "Sets backend for new connections to database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:28
+#, no-c-format
+msgid "ALTER DATABASE mygisdb SET postgis.backend = sfcgal;"
+msgstr ""
+
+#. Tag: title
+#: reference_guc.xml:31 reference_guc.xml:79 reference_guc.xml:159 reference_guc.xml:213
+#, no-c-format
+msgid "See Also"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:38
+#, no-c-format
+msgid "postgis.gdal_datapath"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:39
+#, no-c-format
+msgid "A configuration option to assign the value of GDAL's GDAL_DATA option. If not set, the environmentally set GDAL_DATA variable is used."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:46
+#, no-c-format
+msgid "A PostgreSQL GUC variable for setting the value of GDAL's GDAL_DATA option. The <varname>postgis.gdal_datapath</varname> value should be the complete physical path to GDAL's data files."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:49
+#, no-c-format
+msgid "This configuration option is of most use for Windows platforms where GDAL's data files path is not hard-coded. This option should also be set when GDAL's data files are not located in GDAL's expected path."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:54
+#, no-c-format
+msgid "This option can be set in PostgreSQL's configuration file postgresql.conf. It can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:58 reference_guc.xml:141 reference_guc.xml:201
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:61
+#, no-c-format
+msgid "Additional information about GDAL_DATA is available at GDAL's <ulink url=\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:70
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_datapath</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:72
+#, no-c-format
+msgid ""
+      "SET postgis.gdal_datapath TO '/usr/local/share/gdal.hidden';\n"
+      "SET postgis.gdal_datapath TO default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:74
+#, no-c-format
+msgid "Setting on windows for a particular database"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:75
+#, no-c-format
+msgid ""
+      "ALTER DATABASE gisdb\n"
+      "SET postgis.gdal_datapath = 'C:/Program Files/PostgreSQL/9.3/gdal-data';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:80
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:88
+#, no-c-format
+msgid "postgis.gdal_enabled_drivers"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:89
+#, no-c-format
+msgid "A configuration option to set the enabled GDAL drivers in the PostGIS environment. Affects the GDAL configuration variable GDAL_SKIP."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:96
+#, no-c-format
+msgid "A configuration option to set the enabled GDAL drivers in the PostGIS environment. Affects the GDAL configuration variable GDAL_SKIP. This option can be set in PostgreSQL's configuration file: postgresql.conf. It can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:100
+#, no-c-format
+msgid "The initial value of <varname>postgis.gdal_enabled_drivers</varname> may also be set by passing the environment variable <varname>POSTGIS_GDAL_ENABLED_DRIVERS</varname> with the list of enabled drivers to the process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:104
+#, no-c-format
+msgid "Enabled GDAL specified drivers can be specified by the driver's short-name or code. Driver short-names or codes can be found at <ulink url=\"http://www.gdal.org/formats_list.html\">GDAL Raster Formats</ulink>. Multiple drivers can be specified by putting a space between each driver."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:109
+#, no-c-format
+msgid "There are three special codes available for <varname>postgis.gdal_enabled_drivers</varname>. The codes are case-sensitive."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:114
+#, no-c-format
+msgid "<varname>DISABLE_ALL</varname> disables all GDAL drivers. If present, <varname>DISABLE_ALL</varname> overrides all other values in <varname>postgis.gdal_enabled_drivers</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:117
+#, no-c-format
+msgid "<varname>ENABLE_ALL</varname> enables all GDAL drivers."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:120
+#, no-c-format
+msgid "<varname>VSICURL</varname> enables GDAL's <varname>/vsicurl/</varname> virtual file system."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:124
+#, no-c-format
+msgid "When <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL, attempts to use out-db rasters, ST_FromGDALRaster(), ST_AsGDALRaster(), ST_AsTIFF(), ST_AsJPEG() and ST_AsPNG() will result in error messages."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:130
+#, no-c-format
+msgid "In the standard PostGIS installation, <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:136
+#, no-c-format
+msgid "Additional information about GDAL_SKIP is available at GDAL's <ulink url=\"http://trac.osgeo.org/gdal/wiki/ConfigOptions\">Configuration Options</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:147
+#, no-c-format
+msgid "Set and reset <varname>postgis.gdal_enabled_drivers</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:149
+#, no-c-format
+msgid ""
+      "SET postgis.gdal_enabled_drivers TO 'GTiff PNG JPEG';\n"
+      "SET postgis.gdal_enabled_drivers = default;"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:151
+#, no-c-format
+msgid "Enable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:152
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:154
+#, no-c-format
+msgid "Disable all GDAL Drivers"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:155
+#, no-c-format
+msgid "SET postgis.gdal_enabled_drivers = 'DISABLE_ALL';"
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:160
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsJPEG\"/>, <xref linkend=\"postgis_enable_outdb_rasters\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_guc.xml:173
+#, no-c-format
+msgid "postgis.enable_outdb_rasters"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_guc.xml:174
+#, no-c-format
+msgid "A boolean configuration option to enable access to out-db raster bands."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:181
+#, no-c-format
+msgid "A boolean configuration option to enable access to out-db raster bands. This option can be set in PostgreSQL's configuration file: postgresql.conf. It can also be set by connection or transaction."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:185
+#, no-c-format
+msgid "The initial value of <varname>postgis.enable_outdb_rasters</varname> may also be set by passing the environment variable <varname>POSTGIS_ENABLE_OUTDB_RASTERS</varname> with a non-zero value to the process starting PostgreSQL."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:190
+#, no-c-format
+msgid "Even if <varname>postgis.enable_outdb_rasters</varname> is True, the GUC <varname>postgis.enable_outdb_rasters</varname> determines the accessible raster formats."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:196
+#, no-c-format
+msgid "In the standard PostGIS installation, <varname>postgis.enable_outdb_rasters</varname> is set to False."
+msgstr ""
+
+#. Tag: para
+#: reference_guc.xml:207
+#, no-c-format
+msgid "Set and reset <varname>postgis.enable_outdb_rasters</varname>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_guc.xml:209
+#, no-c-format
+msgid ""
+      "SET postgis.enable_outdb_rasters TO True;\n"
+      "SET postgis.enable_outdb_rasters = default;\n"
+      "SET postgis.enable_outdb_rasters = True;\n"
+      "SET postgis.enable_outdb_rasters = False;"
+msgstr ""
+
diff --git a/doc/po/templates/reference_lrs.xml.pot b/doc/po/templates/reference_lrs.xml.pot
index ee51ede..0b8f5a5 100644
--- a/doc/po/templates/reference_lrs.xml.pot
+++ b/doc/po/templates/reference_lrs.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -23,7 +23,7 @@ msgstr ""
 #. Tag: refname
 #: reference_lrs.xml:7
 #, no-c-format
-msgid "ST_Line_Interpolate_Point"
+msgid "ST_LineInterpolatePoint"
 msgstr ""
 
 #. Tag: refpurpose
@@ -35,11 +35,11 @@ msgstr ""
 #. Tag: funcprototype
 #: reference_lrs.xml:15
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Line_Interpolate_Point</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_LineInterpolatePoint</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>float </type> <parameter>a_fraction</parameter></paramdef>"
 msgstr ""
 
 #. Tag: title
-#: reference_lrs.xml:24 reference_lrs.xml:85 reference_lrs.xml:136 reference_lrs.xml:202 reference_lrs.xml:260 reference_lrs.xml:311 reference_lrs.xml:356 reference_lrs.xml:400
+#: reference_lrs.xml:24 reference_lrs.xml:86 reference_lrs.xml:138 reference_lrs.xml:205 reference_lrs.xml:263 reference_lrs.xml:314 reference_lrs.xml:359 reference_lrs.xml:403
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -51,9 +51,9 @@ msgid "Returns a point interpolated along a line. First argument must be a LINES
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:30 reference_lrs.xml:147
+#: reference_lrs.xml:30 reference_lrs.xml:149
 #, no-c-format
-msgid "See <xref linkend=\"ST_Line_Locate_Point\"/> for computing the line location nearest to a Point."
+msgid "See <xref linkend=\"ST_LineLocatePoint\"/> for computing the line location nearest to a Point."
 msgstr ""
 
 #. Tag: para
@@ -69,29 +69,35 @@ msgid "Availability: 0.8.2, Z and M supported added in 1.1.1"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:39 reference_lrs.xml:157 reference_lrs.xml:319 reference_lrs.xml:362 reference_lrs.xml:406
+#: reference_lrs.xml:39
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Interpolate_Point."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:40 reference_lrs.xml:160 reference_lrs.xml:322 reference_lrs.xml:365 reference_lrs.xml:409
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_lrs.xml:44 reference_lrs.xml:101 reference_lrs.xml:161 reference_lrs.xml:225 reference_lrs.xml:276 reference_lrs.xml:323 reference_lrs.xml:366 reference_lrs.xml:410
+#: reference_lrs.xml:45 reference_lrs.xml:103 reference_lrs.xml:164 reference_lrs.xml:228 reference_lrs.xml:279 reference_lrs.xml:326 reference_lrs.xml:369 reference_lrs.xml:413
 #, no-c-format
 msgid "Examples"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:50
+#: reference_lrs.xml:51
 #, no-c-format
 msgid "A linestring with the interpolated point at 20% position (0.20)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:53
+#: reference_lrs.xml:54
 #, no-c-format
 msgid ""
       "--Return point 20% along 2d line\n"
-      "SELECT ST_AsEWKT(ST_Line_Interpolate_Point(the_line, 0.20))\n"
+      "SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.20))\n"
       "        FROM (SELECT ST_GeomFromEWKT('LINESTRING(25 50, 100 125, 150 190)') as the_line) As foo;\n"
       "   st_asewkt\n"
       "----------------\n"
@@ -99,11 +105,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:54
+#: reference_lrs.xml:55
 #, no-c-format
 msgid ""
       "--Return point mid-way of 3d line\n"
-      "SELECT ST_AsEWKT(ST_Line_Interpolate_Point(the_line, 0.5))\n"
+      "SELECT ST_AsEWKT(ST_LineInterpolatePoint(the_line, 0.5))\n"
       "        FROM (SELECT ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6, 6 7 8)') as the_line) As foo;\n"
       "\n"
       "        st_asewkt\n"
@@ -112,7 +118,7 @@ msgid ""
       "\n"
       "\n"
       "--find closest point on a line to a point or other geometry\n"
-      " SELECT ST_AsText(ST_Line_Interpolate_Point(foo.the_line, ST_Line_Locate_Point(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+      " SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
       "FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As foo;\n"
       "   st_astext\n"
       "----------------\n"
@@ -120,61 +126,67 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_lrs.xml:59 reference_lrs.xml:108 reference_lrs.xml:175 reference_lrs.xml:231 reference_lrs.xml:283 reference_lrs.xml:330 reference_lrs.xml:372
+#: reference_lrs.xml:60 reference_lrs.xml:110 reference_lrs.xml:178 reference_lrs.xml:234 reference_lrs.xml:286 reference_lrs.xml:333 reference_lrs.xml:375
 #, no-c-format
 msgid "See Also"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:61
+#: reference_lrs.xml:62
 #, no-c-format
-msgid ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_Line_Locate_Point\"/>"
+msgid ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_LineLocatePoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:67
+#: reference_lrs.xml:68
 #, no-c-format
-msgid "ST_Line_Locate_Point"
+msgid "ST_LineLocatePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:69
+#: reference_lrs.xml:70
 #, no-c-format
 msgid "Returns a float between 0 and 1 representing the location of the closest point on LineString to the given Point, as a fraction of total 2d line length."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:76
+#: reference_lrs.xml:77
 #, no-c-format
-msgid "<funcdef>float <function>ST_Line_Locate_Point</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef>"
+msgid "<funcdef>float <function>ST_LineLocatePoint</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:87
+#: reference_lrs.xml:88
 #, no-c-format
 msgid "Returns a float between 0 and 1 representing the location of the closest point on LineString to the given Point, as a fraction of total <link linkend=\"ST_Length2D\">2d line</link> length."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:91
+#: reference_lrs.xml:92
 #, no-c-format
-msgid "You can use the returned location to extract a Point (<xref linkend=\"ST_Line_Interpolate_Point\"/>) or a substring (<xref linkend=\"ST_Line_Substring\"/>)."
+msgid "You can use the returned location to extract a Point (<xref linkend=\"ST_LineInterpolatePoint\"/>) or a substring (<xref linkend=\"ST_LineSubstring\"/>)."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:94
+#: reference_lrs.xml:95
 #, no-c-format
 msgid "This is useful for approximating numbers of addresses"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:96
+#: reference_lrs.xml:97
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
+#. Tag: para
+#: reference_lrs.xml:98
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Locate_Point."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_lrs.xml:103
+#: reference_lrs.xml:105
 #, no-c-format
 msgid ""
       "--Rough approximation of finding the street number of a point along the street\n"
@@ -185,7 +197,7 @@ msgid ""
       "SELECT ST_AsText(house_loc) As as_text_house_loc,\n"
       "        startstreet_num +\n"
       "                CAST( (endstreet_num - startstreet_num)\n"
-      "                        * ST_Line_Locate_Point(street_line, house_loc) As integer) As street_num\n"
+      "                        * ST_LineLocatePoint(street_line, house_loc) As integer) As street_num\n"
       "FROM\n"
       "(SELECT ST_GeomFromText('LINESTRING(1 2, 3 4)') As street_line,\n"
       "        ST_MakePoint(x*1.01,y*1.03) As house_loc, 10 As startstreet_num,\n"
@@ -201,7 +213,7 @@ msgid ""
       " POINT(3.03 4.12)  |         20\n"
       "\n"
       " --find closest point on a line to a point or other geometry\n"
-      " SELECT ST_AsText(ST_Line_Interpolate_Point(foo.the_line, ST_Line_Locate_Point(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
+      " SELECT ST_AsText(ST_LineInterpolatePoint(foo.the_line, ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)'))))\n"
       "FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As foo;\n"
       "   st_astext\n"
       "----------------\n"
@@ -209,61 +221,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:110
+#: reference_lrs.xml:112
 #, no-c-format
-msgid ", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_Line_Interpolate_Point\"/>, <xref linkend=\"ST_Line_Substring\"/>"
+msgid ", <xref linkend=\"ST_Length2D\"/>, <xref linkend=\"ST_LineInterpolatePoint\"/>, <xref linkend=\"ST_LineSubstring\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:116
+#: reference_lrs.xml:118
 #, no-c-format
-msgid "ST_Line_Substring"
+msgid "ST_LineSubstring"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:118
+#: reference_lrs.xml:120
 #, no-c-format
 msgid "Return a linestring being a substring of the input one starting and ending at the given fractions of total 2d length. Second and third arguments are float8 values between 0 and 1."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:126
+#: reference_lrs.xml:128
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Line_Substring</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>float </type> <parameter>startfraction</parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_LineSubstring</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>float </type> <parameter>startfraction</parameter></paramdef> <paramdef><type>float </type> <parameter>endfraction</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:138
+#: reference_lrs.xml:140
 #, no-c-format
 msgid "Return a linestring being a substring of the input one starting and ending at the given fractions of total 2d length. Second and third arguments are float8 values between 0 and 1. This only works with LINESTRINGs. To use with contiguous MULTILINESTRINGs use in conjunction with <xref linkend=\"ST_LineMerge\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:144
+#: reference_lrs.xml:146
 #, no-c-format
-msgid "If 'start' and 'end' have the same value this is equivalent to <xref linkend=\"ST_Line_Interpolate_Point\"/>."
+msgid "If 'start' and 'end' have the same value this is equivalent to <xref linkend=\"ST_LineInterpolatePoint\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:151
+#: reference_lrs.xml:153
 #, no-c-format
 msgid "Since release 1.1.1 this function also interpolates M and Z values (when present), while prior releases set them to unspecified values."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:156
+#: reference_lrs.xml:158
 #, no-c-format
 msgid "Availability: 1.1.0, Z and M supported added in 1.1.1"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:167
+#: reference_lrs.xml:159
+#, no-c-format
+msgid "Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Substring."
+msgstr ""
+
+#. Tag: para
+#: reference_lrs.xml:170
 #, no-c-format
 msgid "A linestring seen with 1/3 midrange overlaid (0.333, 0.666)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:170
+#: reference_lrs.xml:173
 #, no-c-format
 msgid ""
       "--Return the approximate 1/3 mid-range part of a linestring\n"
@@ -283,7 +301,7 @@ msgid ""
       "--for better performance you can reduce the 10000\n"
       "--to match max number of segments you expect\n"
       "\n"
-      "SELECT field1, field2, ST_Line_Substring(the_geom, 100.00*n/length,\n"
+      "SELECT field1, field2, ST_LineSubstring(the_geom, 100.00*n/length,\n"
       "  CASE\n"
       "        WHEN 100.00*(n+1) < length THEN 100.00*(n+1)/length\n"
       "        ELSE 1\n"
@@ -299,73 +317,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:177
+#: reference_lrs.xml:180
 #, no-c-format
-msgid ", <xref linkend=\"ST_Line_Interpolate_Point\"/>, <xref linkend=\"ST_LineMerge\"/>"
+msgid ", <xref linkend=\"ST_LineInterpolatePoint\"/>, <xref linkend=\"ST_LineMerge\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:183
+#: reference_lrs.xml:186
 #, no-c-format
 msgid "ST_LocateAlong"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:185
+#: reference_lrs.xml:188
 #, no-c-format
 msgid "<refpurpose>Return a derived geometry collection value with elements that match the specified measure. Polygonal elements are not supported.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:192
+#: reference_lrs.xml:195
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_LocateAlong</function></funcdef> <paramdef><type>geometry </type> <parameter>ageom_with_measure</parameter></paramdef> <paramdef><type>float </type> <parameter>a_measure</parameter></paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:204
+#: reference_lrs.xml:207
 #, no-c-format
 msgid "<para>Return a derived geometry collection value with elements that match the specified measure. Polygonal elements are not supported.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:208
+#: reference_lrs.xml:211
 #, no-c-format
 msgid "If an offset is provided, the resultant will be offset to the left or right of the input line by the specified number of units. A positive offset will be to the left, and a negative one to the right."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:213 reference_lrs.xml:266
+#: reference_lrs.xml:216 reference_lrs.xml:269
 #, no-c-format
 msgid "Semantic is specified by: ISO/IEC CD 13249-3:200x(E) - Text for Continuation CD Editing Meeting"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:216
+#: reference_lrs.xml:219
 #, no-c-format
 msgid "Availability: 1.1.0 by old name ST_Locate_Along_Measure."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:217
+#: reference_lrs.xml:220
 #, no-c-format
 msgid "Changed: 2.0.0 in prior versions this used to be called ST_Locate_Along_Measure. The old name has been deprecated and will be removed in the future but is still available."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:218
+#: reference_lrs.xml:221
 #, no-c-format
 msgid "Use this function only for geometries with an M component"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:220 reference_lrs.xml:272
+#: reference_lrs.xml:223 reference_lrs.xml:275
 #, no-c-format
 msgid "&M_support;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:226
+#: reference_lrs.xml:229
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(the_geom)\n"
@@ -394,49 +412,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:233
+#: reference_lrs.xml:236
 #, no-c-format
 msgid ", <xref linkend=\"ST_LocateBetween\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:239
+#: reference_lrs.xml:242
 #, no-c-format
 msgid "ST_LocateBetween"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:241
+#: reference_lrs.xml:244
 #, no-c-format
 msgid "<refpurpose>Return a derived geometry collection value with elements that match the specified range of measures inclusively. Polygonal elements are not supported.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:248
+#: reference_lrs.xml:251
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_LocateBetween</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>float </type> <parameter>measure_start</parameter></paramdef> <paramdef><type>float </type> <parameter>measure_end</parameter></paramdef> <paramdef choice=\"opt\"><type>float </type> <parameter>offset</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:262
+#: reference_lrs.xml:265
 #, no-c-format
 msgid "<para>Return a derived geometry collection value with elements that match the specified range of measures inclusively. Polygonal elements are not supported.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:269
+#: reference_lrs.xml:272
 #, no-c-format
 msgid "Availability: 1.1.0 by old name ST_Locate_Between_Measures."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:270
+#: reference_lrs.xml:273
 #, no-c-format
 msgid "Changed: 2.0.0 - in prior versions this used to be called ST_Locate_Between_Measures. The old name has been deprecated and will be removed in the future but is still available for backward compatibility."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:278
+#: reference_lrs.xml:281
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(the_geom)\n"
@@ -464,43 +482,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:285
+#: reference_lrs.xml:288
 #, no-c-format
 msgid ", <xref linkend=\"ST_LocateAlong\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:291
+#: reference_lrs.xml:294
 #, no-c-format
 msgid "ST_LocateBetweenElevations"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:293
+#: reference_lrs.xml:296
 #, no-c-format
 msgid "Return a derived geometry (collection) value with elements that intersect the specified range of elevations inclusively. Only 3D, 4D LINESTRINGS and MULTILINESTRINGS are supported."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:300
+#: reference_lrs.xml:303
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef> <paramdef><type>geometry </type> <parameter>geom_mline</parameter></paramdef> <paramdef><type>float </type> <parameter>elevation_start</parameter></paramdef> <paramdef><type>float </type> <parameter>elevation_end</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:313
+#: reference_lrs.xml:316
 #, no-c-format
 msgid "Return a derived geometry (collection) value with elements that intersect the specified range of elevations inclusively. Only 3D, 3DM LINESTRINGS and MULTILINESTRINGS are supported."
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:317
+#: reference_lrs.xml:320
 #, no-c-format
 msgid "Availability: 1.4.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:325
+#: reference_lrs.xml:328
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_LocateBetweenElevations(\n"
@@ -530,37 +548,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:339
+#: reference_lrs.xml:342
 #, no-c-format
 msgid "ST_InterpolatePoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:341
+#: reference_lrs.xml:344
 #, no-c-format
 msgid "<refpurpose>Return the value of the measure dimension of a geometry at the point closed to the provided point.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:346
+#: reference_lrs.xml:349
 #, no-c-format
 msgid "<funcdef>float <function>ST_InterpolatePoint</function></funcdef> <paramdef><type>geometry </type> <parameter>line</parameter></paramdef> <paramdef><type>geometry </type> <parameter>point</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:358
+#: reference_lrs.xml:361
 #, no-c-format
 msgid "<para>Return the value of the measure dimension of a geometry at the point closed to the provided point.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:360
+#: reference_lrs.xml:363
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:368
+#: reference_lrs.xml:371
 #, no-c-format
 msgid ""
       "SELECT ST_InterpolatePoint('LINESTRING M (0 0 0, 10 0 20)', 'POINT(5 5)');\n"
@@ -570,43 +588,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:374
+#: reference_lrs.xml:377
 #, no-c-format
 msgid ", <xref linkend=\"ST_LocateAlong\"/>, <xref linkend=\"ST_LocateBetween\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_lrs.xml:382
+#: reference_lrs.xml:385
 #, no-c-format
 msgid "ST_AddMeasure"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_lrs.xml:384
+#: reference_lrs.xml:387
 #, no-c-format
 msgid "<refpurpose>Return a derived geometry with measure elements linearly interpolated between the start and end points. If the geometry has no measure dimension, one is added. If the geometry has a measure dimension, it is over-written with new values. Only LINESTRINGS and MULTILINESTRINGS are supported.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_lrs.xml:389
+#: reference_lrs.xml:392
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_AddMeasure</function></funcdef> <paramdef><type>geometry </type> <parameter>geom_mline</parameter></paramdef> <paramdef><type>float </type> <parameter>measure_start</parameter></paramdef> <paramdef><type>float </type> <parameter>measure_end</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:402
+#: reference_lrs.xml:405
 #, no-c-format
 msgid "<para>Return a derived geometry with measure elements linearly interpolated between the start and end points. If the geometry has no measure dimension, one is added. If the geometry has a measure dimension, it is over-written with new values. Only LINESTRINGS and MULTILINESTRINGS are supported.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_lrs.xml:404
+#: reference_lrs.xml:407
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_lrs.xml:412
+#: reference_lrs.xml:415
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_AddMeasure(\n"
diff --git a/doc/po/templates/reference_management.xml.pot b/doc/po/templates/reference_management.xml.pot
index 534fff7..3cacca4 100644
--- a/doc/po/templates/reference_management.xml.pot
+++ b/doc/po/templates/reference_management.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -39,7 +39,7 @@ msgid "<funcprototype> <funcdef>text <function>AddGeometryColumn</function></fun
 msgstr ""
 
 #. Tag: title
-#: reference_management.xml:92 reference_management.xml:188 reference_management.xml:254 reference_management.xml:298 reference_management.xml:344 reference_management.xml:386 reference_management.xml:427 reference_management.xml:458 reference_management.xml:499 reference_management.xml:540 reference_management.xml:583 reference_management.xml:631 reference_management.xml:677 reference_management.xml:726 reference_management.xml:862
+#: reference_management.xml:92 reference_management.xml:188 reference_management.xml:254 reference_management.xml:298 reference_management.xml:344 reference_management.xml:386 reference_management.xml:427 reference_management.xml:458 reference_management.xml:499 reference_management.xml:540 reference_management.xml:583 reference_management.xml:631 reference_management.xml:677 reference_management.xml:726 reference_management.xml:863
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -75,13 +75,13 @@ msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_management.xml:118 reference_management.xml:195 reference_management.xml:868
+#: reference_management.xml:118 reference_management.xml:195 reference_management.xml:869
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_management.xml:119 reference_management.xml:196 reference_management.xml:869
+#: reference_management.xml:119 reference_management.xml:196 reference_management.xml:870
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
@@ -93,7 +93,7 @@ msgid "Enhanced: 2.0.0 use_typmod argument introduced. Defaults to creating typm
 msgstr ""
 
 #. Tag: title
-#: reference_management.xml:124 reference_management.xml:203 reference_management.xml:267 reference_management.xml:306 reference_management.xml:351 reference_management.xml:393 reference_management.xml:433 reference_management.xml:464 reference_management.xml:506 reference_management.xml:548 reference_management.xml:600 reference_management.xml:646 reference_management.xml:683 reference_management.xml:784
+#: reference_management.xml:124 reference_management.xml:203 reference_management.xml:267 reference_management.xml:306 reference_management.xml:351 reference_management.xml:393 reference_management.xml:433 reference_management.xml:464 reference_management.xml:506 reference_management.xml:548 reference_management.xml:600 reference_management.xml:646 reference_management.xml:683 reference_management.xml:784 reference_management.xml:873
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -158,7 +158,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_management.xml:130 reference_management.xml:208 reference_management.xml:272 reference_management.xml:312 reference_management.xml:357 reference_management.xml:399 reference_management.xml:470 reference_management.xml:512 reference_management.xml:554 reference_management.xml:606 reference_management.xml:652 reference_management.xml:689 reference_management.xml:873
+#: reference_management.xml:130 reference_management.xml:208 reference_management.xml:272 reference_management.xml:312 reference_management.xml:357 reference_management.xml:399 reference_management.xml:470 reference_management.xml:512 reference_management.xml:554 reference_management.xml:606 reference_management.xml:652 reference_management.xml:689 reference_management.xml:886
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -299,7 +299,8 @@ msgid ""
       "SELECT PostGIS_Full_Version();\n"
       "                                                           postgis_full_version\n"
       "----------------------------------------------------------------------------------\n"
-      " POSTGIS=\"1.3.3\" GEOS=\"3.1.0-CAPI-1.5.0\" PROJ=\"Rel. 4.4.9, 29 Oct 2004\" USE_STATS\n"
+      "POSTGIS=\"2.2.0dev r12699\" GEOS=\"3.5.0dev-CAPI-1.9.0 r3989\" SFCGAL=\"1.0.4\" PROJ=\"Rel. 4.8.0, 6 March 2012\" \n"
+      "GDAL=\"GDAL 1.11.0, released 2014/04/16\" LIBXML=\"2.7.8\" LIBJSON=\"0.12\" RASTER\n"
       "(1 row)"
 msgstr ""
 
@@ -837,18 +838,65 @@ msgstr ""
 #. Tag: refpurpose
 #: reference_management.xml:805
 #, no-c-format
-msgid "Updates the SRID of all features in a geometry column, geometry_columns metadata and srid table constraint"
+msgid "Updates the SRID of all features in a geometry column, geometry_columns metadata and srid. If it was enforced with constraints, the constraints will be updated with new srid constraint. If the old was enforced by type definition, the type definition will be changed."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_management.xml:810
+#: reference_management.xml:811
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </type> <parameter>table_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>UpdateGeometrySRID</function></funcdef> <paramdef><type>varchar </type> <parameter>schema_name</parameter></paramdef> <par [...]
 msgstr ""
 
 #. Tag: para
-#: reference_management.xml:864
+#: reference_management.xml:865
 #, no-c-format
 msgid "Updates the SRID of all features in a geometry column, updating constraints and reference in geometry_columns. Note: uses current_schema() on schema-aware pgsql installations if schema is not provided."
 msgstr ""
 
+#. Tag: para
+#: reference_management.xml:874
+#, no-c-format
+msgid "This will change the srid of the roads table to 4326 from whatever it was before"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:875
+#, no-c-format
+msgid "SELECT UpdateGeometrySRID('roads','geom',4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:877
+#, no-c-format
+msgid "The prior example is equivalent to this DDL statement"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:878
+#, no-c-format
+msgid ""
+      "ALTER TABLE roads \n"
+      "  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) \n"
+      "    USING ST_SetSRID(geom,4326);"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:880
+#, no-c-format
+msgid "If you got the projection wrong (or brought it in as unknown) in load and you wanted to transform to web mercator all in one shot You can do this with DDL but there is no equivalent PostGIS management function to do so in one go."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_management.xml:883
+#, no-c-format
+msgid ""
+      "ALTER TABLE roads \n"
+      " ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857) USING ST_Transform(ST_SetSRID(geom,4326),3857) ;"
+msgstr ""
+
+#. Tag: para
+#: reference_management.xml:888
+#, no-c-format
+msgid ", <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
+msgstr ""
+
diff --git a/doc/po/templates/reference_measure.xml.pot b/doc/po/templates/reference_measure.xml.pot
index d04a370..63b443f 100644
--- a/doc/po/templates/reference_measure.xml.pot
+++ b/doc/po/templates/reference_measure.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -39,7 +39,7 @@ msgid "<funcdef>geometry <function>ST_3DClosestPoint</function></funcdef> <param
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:143 reference_measure.xml:195 reference_measure.xml:252 reference_measure.xml:302 reference_measure.xml:371 reference_measure.xml:417 reference_measure.xml:489 reference_measure.xml:547 reference_measure.xml:621 reference_measure.xml:739 reference_measure.xml:812 reference_measure.xml:964 reference_measure.xml:1045 reference_measure.xml:1127 reference_measure.xml:1187 reference_measure.xml:1353 reference_measure.x [...]
+#: reference_measure.xml:27 reference_measure.xml:92 reference_measure.xml:144 reference_measure.xml:196 reference_measure.xml:253 reference_measure.xml:303 reference_measure.xml:372 reference_measure.xml:418 reference_measure.xml:490 reference_measure.xml:549 reference_measure.xml:620 reference_measure.xml:738 reference_measure.xml:811 reference_measure.xml:963 reference_measure.xml:1044 reference_measure.xml:1126 reference_measure.xml:1186 reference_measure.xml:1352 reference_measure.x [...]
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -51,25 +51,25 @@ msgid "Returns the 3-dimensional point on g1 that is closest to g2. This is the
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:148 reference_measure.xml:210 reference_measure.xml:265 reference_measure.xml:311 reference_measure.xml:376 reference_measure.xml:430 reference_measure.xml:2027 reference_measure.xml:2232 reference_measure.xml:2287 reference_measure.xml:2384 reference_measure.xml:2741 reference_measure.xml:2787
+#: reference_measure.xml:32 reference_measure.xml:97 reference_measure.xml:149 reference_measure.xml:211 reference_measure.xml:266 reference_measure.xml:312 reference_measure.xml:377 reference_measure.xml:431 reference_measure.xml:2038 reference_measure.xml:2247 reference_measure.xml:2302 reference_measure.xml:2399 reference_measure.xml:2755 reference_measure.xml:2801
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:150 reference_measure.xml:212 reference_measure.xml:267 reference_measure.xml:313 reference_measure.xml:378 reference_measure.xml:432 reference_measure.xml:499
+#: reference_measure.xml:34 reference_measure.xml:99 reference_measure.xml:151 reference_measure.xml:213 reference_measure.xml:268 reference_measure.xml:314 reference_measure.xml:379 reference_measure.xml:433 reference_measure.xml:500
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:35 reference_measure.xml:102 reference_measure.xml:153 reference_measure.xml:209 reference_measure.xml:259 reference_measure.xml:310 reference_measure.xml:380 reference_measure.xml:429
+#: reference_measure.xml:35 reference_measure.xml:103 reference_measure.xml:154 reference_measure.xml:210 reference_measure.xml:260 reference_measure.xml:311 reference_measure.xml:381 reference_measure.xml:430 reference_measure.xml:2847
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:39 reference_measure.xml:106 reference_measure.xml:157 reference_measure.xml:217 reference_measure.xml:317 reference_measure.xml:384 reference_measure.xml:436 reference_measure.xml:505 reference_measure.xml:563 reference_measure.xml:647 reference_measure.xml:749 reference_measure.xml:850 reference_measure.xml:1003 reference_measure.xml:1081 reference_measure.xml:1156 reference_measure.xml:1253 reference_measure.xml:1388 reference_measure.xml:1511 reference_measur [...]
+#: reference_measure.xml:39 reference_measure.xml:107 reference_measure.xml:158 reference_measure.xml:218 reference_measure.xml:318 reference_measure.xml:385 reference_measure.xml:437 reference_measure.xml:507 reference_measure.xml:564 reference_measure.xml:646 reference_measure.xml:748 reference_measure.xml:849 reference_measure.xml:1002 reference_measure.xml:1080 reference_measure.xml:1155 reference_measure.xml:1252 reference_measure.xml:1387 reference_measure.xml:1510 reference_measur [...]
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -139,7 +139,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:65 reference_measure.xml:113 reference_measure.xml:163 reference_measure.xml:222 reference_measure.xml:275 reference_measure.xml:343 reference_measure.xml:390 reference_measure.xml:462 reference_measure.xml:521 reference_measure.xml:596 reference_measure.xml:710 reference_measure.xml:784 reference_measure.xml:937 reference_measure.xml:1008 reference_measure.xml:1089 reference_measure.xml:1161 reference_measure.xml:1458 reference_measure.xml:1517 reference_measure [...]
+#: reference_measure.xml:65 reference_measure.xml:114 reference_measure.xml:164 reference_measure.xml:223 reference_measure.xml:276 reference_measure.xml:344 reference_measure.xml:391 reference_measure.xml:463 reference_measure.xml:523 reference_measure.xml:595 reference_measure.xml:709 reference_measure.xml:783 reference_measure.xml:936 reference_measure.xml:1007 reference_measure.xml:1088 reference_measure.xml:1160 reference_measure.xml:1457 reference_measure.xml:1516 reference_measure [...]
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -175,13 +175,19 @@ msgid "For geometry type returns the 3-dimensional minimum cartesian distance be
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:100 reference_measure.xml:151
+#: reference_measure.xml:100 reference_measure.xml:152
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM ?"
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:101 reference_measure.xml:503 reference_measure.xml:1574 reference_measure.xml:2124 reference_measure.xml:2172
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:108
+#: reference_measure.xml:109
 #, no-c-format
 msgid ""
       "-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal area) (3D point and line compared 2D point and line)\n"
@@ -201,7 +207,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:109
+#: reference_measure.xml:110
 #, no-c-format
 msgid ""
       "-- Multilinestring and polygon both 3d and 2d distance\n"
@@ -217,37 +223,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:115
+#: reference_measure.xml:116
 #, no-c-format
 msgid ", <xref linkend=\"ST_3DClosestPoint\"/>, <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_3DShortestLine\"/>, <xref linkend=\"ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:121
+#: reference_measure.xml:122
 #, no-c-format
 msgid "ST_3DDWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:123
+#: reference_measure.xml:124
 #, no-c-format
 msgid "For 3d (z) geometry type Returns true if two geometries 3d distance is within number of units."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:127
+#: reference_measure.xml:128
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_3DDWithin</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> <paramdef><type>double precision </type> <parameter>distance_of_srid</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:145
+#: reference_measure.xml:146
 #, no-c-format
 msgid "For geometry type returns true if the 3d distance between two objects is within distance_of_srid specified projected units (spatial ref units)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:159
+#: reference_measure.xml:160
 #, no-c-format
 msgid ""
       "-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal area) (3D point and line compared 2D point and line)\n"
@@ -269,43 +275,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:165
+#: reference_measure.xml:166
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:171
+#: reference_measure.xml:172
 #, no-c-format
 msgid "ST_3DDFullyWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:173
+#: reference_measure.xml:174
 #, no-c-format
 msgid "Returns true if all of the 3D geometries are within the specified distance of one another."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:179
+#: reference_measure.xml:180
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_3DDFullyWithin</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> <paramdef><type>double precision </type> <parameter>distance</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:197
+#: reference_measure.xml:198
 #, no-c-format
 msgid "Returns true if the 3D geometries are fully within the specified distance of one another. The distance is specified in units defined by the spatial reference system of the geometries. For this function to make sense, the source geometries must both be of the same coordinate projection, having the same SRID."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:204 reference_measure.xml:261 reference_measure.xml:1243 reference_measure.xml:1837 reference_measure.xml:1923 reference_measure.xml:2095
+#: reference_measure.xml:205 reference_measure.xml:262 reference_measure.xml:1242 reference_measure.xml:1847 reference_measure.xml:1933 reference_measure.xml:2108
 #, no-c-format
 msgid "This function call will automatically include a bounding box comparison that will make use of any indexes that are available on the geometries."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:218
+#: reference_measure.xml:219
 #, no-c-format
 msgid ""
       "-- This compares the difference between fully within and distance within as well\n"
@@ -321,49 +327,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:224
+#: reference_measure.xml:225
 #, no-c-format
 msgid ", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_DFullyWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:230
+#: reference_measure.xml:231
 #, no-c-format
 msgid "ST_3DIntersects"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:232
+#: reference_measure.xml:233
 #, no-c-format
 msgid "Returns TRUE if the Geometries \"spatially intersect\" in 3d - only for points and linestrings"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:238
+#: reference_measure.xml:239
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_3DIntersects</function></funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:253 reference_measure.xml:2083
+#: reference_measure.xml:254 reference_measure.xml:2096
 #, no-c-format
 msgid "Overlaps, Touches, Within all imply spatial intersection. If any of the aforementioned returns true, then the geometries also spatially intersect. Disjoint implies false for spatial intersection."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:268
+#: reference_measure.xml:269
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: ?"
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:271 reference_measure.xml:2113 reference_measure.xml:2161
+#: reference_measure.xml:272 reference_measure.xml:2127 reference_measure.xml:2176
 #, no-c-format
 msgid "Geometry Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:272
+#: reference_measure.xml:273
 #, no-c-format
 msgid ""
       "SELECT ST_3DIntersects(pt, line), ST_Intersects(pt,line) \n"
@@ -376,37 +382,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:282
+#: reference_measure.xml:283
 #, no-c-format
 msgid "ST_3DLongestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:284
+#: reference_measure.xml:285
 #, no-c-format
 msgid "Returns the 3-dimensional longest line between two geometries"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:289
+#: reference_measure.xml:290
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_3DLongestLine</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:304
+#: reference_measure.xml:305
 #, no-c-format
 msgid "Returns the 3-dimensional longest line between two geometries. The function will only return the first longest line if more than one. The line returned will always start in g1 and end in g2. The 3D length of the line this function returns will always be the same as <xref linkend=\"ST_3DMaxDistance\"/> returns for g1 and g2."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:322
+#: reference_measure.xml:323
 #, no-c-format
 msgid "linestring and point -- both 3d and 2d longest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:323
+#: reference_measure.xml:324
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
@@ -422,13 +428,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:327
+#: reference_measure.xml:328
 #, no-c-format
 msgid "linestring and multipoint -- both 3d and 2d longest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:328
+#: reference_measure.xml:329
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_3DLongestLine(line,pt)) AS lol3d_line_pt, \n"
@@ -444,13 +450,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:332
+#: reference_measure.xml:333
 #, no-c-format
 msgid "Multilinestring and polygon both 3d and 2d longest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:333
+#: reference_measure.xml:334
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_3DLongestLine(poly, mline)) As lol3d,\n"
@@ -464,37 +470,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:345
+#: reference_measure.xml:346
 #, no-c-format
 msgid ", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_3DShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:351
+#: reference_measure.xml:352
 #, no-c-format
 msgid "ST_3DMaxDistance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:353
+#: reference_measure.xml:354
 #, no-c-format
 msgid "For geometry type Returns the 3-dimensional cartesian maximum distance (based on spatial ref) between two geometries in projected units."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:358
+#: reference_measure.xml:359
 #, no-c-format
 msgid "<funcdef>float <function>ST_3DMaxDistance</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:373
+#: reference_measure.xml:374
 #, no-c-format
 msgid "For geometry type returns the 3-dimensional maximum cartesian distance between two geometries in projected units (spatial ref units)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:386
+#: reference_measure.xml:387
 #, no-c-format
 msgid ""
       "-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal area) (3D point and line compared 2D point and line)\n"
@@ -514,43 +520,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:392
+#: reference_measure.xml:393
 #, no-c-format
 msgid ", <xref linkend=\"ST_3DDWithin\"/>, <xref linkend=\"ST_3DMaxDistance\"/>, <xref linkend=\"ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:397
+#: reference_measure.xml:398
 #, no-c-format
 msgid "ST_3DShortestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:399
+#: reference_measure.xml:400
 #, no-c-format
 msgid "Returns the 3-dimensional shortest line between two geometries"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:404
+#: reference_measure.xml:405
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_3DShortestLine</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:419
+#: reference_measure.xml:420
 #, no-c-format
 msgid "Returns the 3-dimensional shortest line between two geometries. The function will only return the first shortest line if more than one, that the function finds. If g1 and g2 intersects in just one point the function will return a line with both start and end in that intersection-point. If g1 and g2 are intersecting with more than one point the function will return a line with start and end in the same point but it can be any of the intersecting points. The line returned will alway [...]
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:441
+#: reference_measure.xml:442
 #, no-c-format
 msgid "linestring and point -- both 3d and 2d shortest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:442
+#: reference_measure.xml:443
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
@@ -566,13 +572,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:446
+#: reference_measure.xml:447
 #, no-c-format
 msgid "linestring and multipoint -- both 3d and 2d shortest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:447
+#: reference_measure.xml:448
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt, \n"
@@ -588,13 +594,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:451
+#: reference_measure.xml:452
 #, no-c-format
 msgid "Multilinestring and polygon both 3d and 2d shortest line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:452
+#: reference_measure.xml:453
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_3DShortestLine(poly, mline)) As shl3d,\n"
@@ -608,67 +614,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:464
+#: reference_measure.xml:465
 #, no-c-format
 msgid ", <xref linkend=\"ST_3DDistance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_3DMaxDistance\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:469
+#: reference_measure.xml:470
 #, no-c-format
 msgid "ST_Area"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:471
+#: reference_measure.xml:472
 #, no-c-format
 msgid "Returns the area of the surface if it is a polygon or multi-polygon. For \"geometry\" type area is in SRID units. For \"geography\" area is in square meters."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:475
+#: reference_measure.xml:476
 #, no-c-format
 msgid "<funcprototype> <funcdef>float <function>ST_Area</function></funcdef> <paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float <function>ST_Area</function></funcdef> <paramdef><type>geography </type><parameter>geog</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:491
+#: reference_measure.xml:492
 #, no-c-format
 msgid "Returns the area of the geometry if it is a polygon or multi-polygon. Return the area measurement of an ST_Surface or ST_MultiSurface value. For geometry Area is in the units of the srid. For geography area is in square meters and defaults to measuring about the spheroid of the geography (currently only WGS84). To measure around the faster but less accurate sphere -- ST_Area(geog,false)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:496
+#: reference_measure.xml:497
 #, no-c-format
 msgid "Enhanced: 2.0.0 - support for 2D polyhedral surfaces was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:497 reference_measure.xml:642 reference_measure.xml:1572 reference_measure.xml:1937
+#: reference_measure.xml:498 reference_measure.xml:641 reference_measure.xml:1571 reference_measure.xml:1947
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:498
+#: reference_measure.xml:499
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.2, 9.5.3"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:500
+#: reference_measure.xml:501
 #, no-c-format
 msgid "For polyhedral surfaces, only supports 2D polyhedral surfaces (not 2.5D). For 2.5D, may give a non-zero answer, but only for the faces that sit completely in XY plane."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:506
+#: reference_measure.xml:508
 #, no-c-format
 msgid "Return area in square feet for a plot of Massachusetts land and multiply by conversion to get square meters. Note this is in square feet because 2249 is Mass State Plane Feet"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:509
+#: reference_measure.xml:511
 #, no-c-format
 msgid ""
       "SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm\n"
@@ -681,13 +687,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:510
+#: reference_measure.xml:512
 #, no-c-format
 msgid "Return area square feet and transform to Massachusetts state plane meters (26986) to get square meters. Note this is in square feet because 2249 is Mass State Plane Feet and transformed area is in square meters since 26986 is state plane mass meters"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:513
+#: reference_measure.xml:515
 #, no-c-format
 msgid ""
       "SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As sqm\n"
@@ -700,13 +706,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:515
+#: reference_measure.xml:517
 #, no-c-format
 msgid "Return area square feet and square meters using Geography data type. Note that we transform to our geometry to geography (before you can do that make sure your geometry is in WGS 84 long lat 4326). Geography always measures in meters. This is just for demonstration to compare. Normally your table will be stored in geography data type already."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:518
+#: reference_measure.xml:520
 #, no-c-format
 msgid ""
       "SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,false)/POWER(0.3048,2) As sqft_sphere, ST_Area(the_geog) As sqm_spheroid\n"
@@ -729,174 +735,174 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:522
+#: reference_measure.xml:524
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeographyFromText\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:528
+#: reference_measure.xml:530
 #, no-c-format
 msgid "ST_Azimuth"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:530
+#: reference_measure.xml:532
 #, no-c-format
-msgid "Returns the angle in radians from the horizontal of the vector defined by pointA and pointB. Angle is computed clockwise from down-to-up: on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2."
+msgid "Returns the north-based azimuth as the angle in radians measured clockwise from the vertical on pointA to pointB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:533
+#: reference_measure.xml:535
 #, no-c-format
 msgid "<funcprototype> <funcdef>float <function>ST_Azimuth</function></funcdef> <paramdef><type>geometry </type><parameter>pointA</parameter></paramdef> <paramdef><type>geometry </type><parameter>pointB</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float <function>ST_Azimuth</function></funcdef> <paramdef><type>geography </type><parameter>pointA</parameter></paramdef> <paramdef><type>geography </type><parameter>pointB</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:549
+#: reference_measure.xml:551
 #, no-c-format
-msgid "Returns the azimuth of the segment defined by the given Point geometries, or NULL if the two points are coincident. Return value is in radians. Angle is computed clockwise from down-to-up: on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2"
+msgid "Returns the azimuth in radians of the segment defined by the given point-geometries, or NULL if the two points are coincident. The azimuth is north-based and is measured clockwise: North = 0; East = PI/2; South = PI; West = 3PI/2."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:553
+#: reference_measure.xml:554
 #, no-c-format
 msgid "The Azimuth is mathematical concept defined as the angle, in this case measured in radian, between a reference plane and a point."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:556
+#: reference_measure.xml:557
 #, no-c-format
 msgid "Availability: 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:557
+#: reference_measure.xml:558
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:558
+#: reference_measure.xml:559
 #, no-c-format
 msgid "Azimuth is especially useful in conjunction with ST_Translate for shifting an object along its perpendicular axis. See upgis_lineshift <ulink url=\"http://trac.osgeo.org/postgis/wiki/UsersWikiplpgsqlfunctions\">Plpgsqlfunctions PostGIS wiki section</ulink> for example of this."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:564
+#: reference_measure.xml:565
 #, no-c-format
 msgid "Geometry Azimuth in degrees"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:565
+#: reference_measure.xml:566
 #, no-c-format
 msgid ""
-      "SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as degAz,\n"
-      "        ST_Azimuth(ST_Point(75,100), ST_Point(25,45))/(2*pi())*360 As degAzrev;\n"
+      "SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as degA_B,\n"
+      "        ST_Azimuth(ST_Point(75,100), ST_Point(25,45))/(2*pi())*360 As degB_A;\n"
       "        \n"
       "-- NOTE easier to remember syntax using PostgreSQL built-in degrees function --\n"
       "-- Both yield same answer --\n"
-      "SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degAz,\n"
-      "        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As degAzrev;\n"
+      "SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degA_B,\n"
+      "        degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As degB_A;\n"
       "\n"
-      "      degaz       |     degazrev\n"
+      "      dega_b       |     degb_a\n"
       "------------------+------------------\n"
       " 42.2736890060937 | 222.273689006094"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:575
+#: reference_measure.xml:576
 #, no-c-format
-msgid "degAz is path to travel (azimuth), horizontal line (which starts at the start point and ends where we want the end point to fall) and points (start point: 25,45 is in green)"
+msgid "Green: the start Point(25,45) with its vertical. Yellow: degA_B as the path to travel (azimuth)."
 msgstr ""
 
 #. Tag: para
 #: reference_measure.xml:585
 #, no-c-format
-msgid "degAzrev is azimuth curve shown, horizontal line (which starts at the start point and ends where we want the end point to fall) and points (start point: 75,100 is in green)"
+msgid "Green: the start Point(75,100) with its vertical. Yellow: degB_A as the path to travel (azimuth)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:597
+#: reference_measure.xml:596
 #, no-c-format
-msgid ", <xref linkend=\"ST_Translate\"/>"
+msgid ", <xref linkend=\"ST_Translate\"/>, <xref linkend=\"ST_Project\"/>, <ulink url=\"http://www.postgresql.org/docs/current/interactive/functions-math.html\">PostgreSQL Math Functions</ulink>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:604
+#: reference_measure.xml:603
 #, no-c-format
 msgid "ST_Centroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:606
+#: reference_measure.xml:605
 #, no-c-format
 msgid "Returns the geometric center of a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:611
+#: reference_measure.xml:610
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Centroid</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:623
+#: reference_measure.xml:622
 #, no-c-format
-msgid "Computes the geometric center of a geometry, or equivalently, the center of mass of the geometry as a <varname>POINT</varname>. For [<varname>MULTI</varname>]<varname>POINT</varname>s, this is computed as the arithmetric mean of the input coordinates. For [<varname>MULTI</varname>]<varname>LINESTRING</varname>s, this is computed as the weighted length of each line segment. For [<varname>MULTI</varname>]<varname>POLYGON</varname>s, \"weight\" is thought in terms of area. If an empt [...]
+msgid "Computes the geometric center of a geometry, or equivalently, the center of mass of the geometry as a <varname>POINT</varname>. For [<varname>MULTI</varname>]<varname>POINT</varname>s, this is computed as the arithmetic mean of the input coordinates. For [<varname>MULTI</varname>]<varname>LINESTRING</varname>s, this is computed as the weighted length of each line segment. For [<varname>MULTI</varname>]<varname>POLYGON</varname>s, \"weight\" is thought in terms of area. If an empty [...]
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:635
+#: reference_measure.xml:634
 #, no-c-format
 msgid "The centroid is equal to the centroid of the set of component Geometries of highest dimension (since the lower-dimension geometries contribute zero \"weight\" to the centroid)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:639
+#: reference_measure.xml:638
 #, no-c-format
 msgid "Computation will be more accurate if performed by the GEOS module (enabled at compile time)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:643
+#: reference_measure.xml:642
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.4, 9.5.5"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:649
+#: reference_measure.xml:648
 #, no-c-format
 msgid "In each of the following illustrations, the blue dot represents the centroid of the source geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:662
+#: reference_measure.xml:661
 #, no-c-format
 msgid "Centroid of a <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:673
+#: reference_measure.xml:672
 #, no-c-format
 msgid "Centroid of a <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:686
+#: reference_measure.xml:685
 #, no-c-format
 msgid "Centroid of a <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:697
+#: reference_measure.xml:696
 #, no-c-format
 msgid "Centroid of a <varname>GEOMETRYCOLLECTION</varname>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:706
+#: reference_measure.xml:705
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 1, 0 3, 1 1, 2 0, 6 0, 7 8, 9 8, 10 6 )'));\n"
@@ -907,49 +913,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:718
+#: reference_measure.xml:717
 #, no-c-format
 msgid "ST_ClosestPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:720
+#: reference_measure.xml:719
 #, no-c-format
 msgid "<refpurpose>Returns the 2-dimensional point on g1 that is closest to g2. This is the first point of the shortest line.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:726
+#: reference_measure.xml:725
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_ClosestPoint</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:741
+#: reference_measure.xml:740
 #, no-c-format
 msgid "<para>Returns the 2-dimensional point on g1 that is closest to g2. This is the first point of the shortest line.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:744
+#: reference_measure.xml:743
 #, no-c-format
 msgid "If you have a 3D Geometry, you may prefer to use <xref linkend=\"ST_3DClosestPoint\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:745 reference_measure.xml:1690 reference_measure.xml:1842 reference_measure.xml:2433 reference_measure.xml:3005
+#: reference_measure.xml:744 reference_measure.xml:1699 reference_measure.xml:1852 reference_measure.xml:2448 reference_measure.xml:3027
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:759
+#: reference_measure.xml:758
 #, no-c-format
 msgid "Closest between point and linestring is the point itself, but closest point between a linestring and point is the point on line string that is closest."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:763
+#: reference_measure.xml:762
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_ClosestPoint(pt,line)) AS cp_pt_line, \n"
@@ -965,13 +971,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:771
+#: reference_measure.xml:770
 #, no-c-format
 msgid "closest point on polygon A to polygon B"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:774
+#: reference_measure.xml:773
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(\n"
@@ -987,133 +993,133 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:786
+#: reference_measure.xml:785
 #, no-c-format
 msgid ",<xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_MaxDistance\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:792
+#: reference_measure.xml:791
 #, no-c-format
 msgid "ST_Contains"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:794
+#: reference_measure.xml:793
 #, no-c-format
 msgid "Returns true if and only if no points of B lie in the exterior of A, and at least one point of the interior of B lies in the interior of A."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:799
+#: reference_measure.xml:798
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_Contains</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:814
+#: reference_measure.xml:813
 #, no-c-format
 msgid "Geometry A contains Geometry B if and only if no points of B lie in the exterior of A, and at least one point of the interior of B lies in the interior of A. An important subtlety of this definition is that A does not contain its boundary, but A does contain itself. Contrast that to <xref linkend=\"ST_ContainsProperly\"/> where geometry A does not Contain Properly itself."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:818
+#: reference_measure.xml:817
 #, no-c-format
 msgid "Returns TRUE if geometry B is completely inside geometry A. For this function to make sense, the source geometries must both be of the same coordinate projection, having the same SRID. ST_Contains is the inverse of ST_Within. So ST_Contains(A,B) implies ST_Within(B,A) except in the case of invalid geometries where the result is always false regardless or not defined."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:823 reference_measure.xml:1050 reference_measure.xml:1132 reference_measure.xml:1497 reference_measure.xml:2564 reference_measure.xml:2910 reference_measure.xml:3227
+#: reference_measure.xml:822 reference_measure.xml:1049 reference_measure.xml:1131 reference_measure.xml:1496 reference_measure.xml:2579 reference_measure.xml:2932 reference_measure.xml:3249
 #, no-c-format
 msgid "Performed by the GEOS module"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:826 reference_measure.xml:988 reference_measure.xml:1053 reference_measure.xml:1135 reference_measure.xml:1239 reference_measure.xml:1494 reference_measure.xml:3108 reference_measure.xml:3230
+#: reference_measure.xml:825 reference_measure.xml:987 reference_measure.xml:1052 reference_measure.xml:1134 reference_measure.xml:1238 reference_measure.xml:1493 reference_measure.xml:3130 reference_measure.xml:3252
 #, no-c-format
 msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:830 reference_measure.xml:992 reference_measure.xml:1061 reference_measure.xml:1139 reference_measure.xml:3234
+#: reference_measure.xml:829 reference_measure.xml:991 reference_measure.xml:1060 reference_measure.xml:1138 reference_measure.xml:3256
 #, no-c-format
 msgid "Do not use this function with invalid geometries. You will get unexpected results."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:833
+#: reference_measure.xml:832
 #, no-c-format
 msgid "This function call will automatically include a bounding box comparison that will make use of any indexes that are available on the geometries. To avoid index use, use the function _ST_Contains."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:838 reference_measure.xml:1072 reference_measure.xml:1147 reference_measure.xml:1503 reference_measure.xml:2104 reference_measure.xml:2573 reference_measure.xml:3242
+#: reference_measure.xml:837 reference_measure.xml:1071 reference_measure.xml:1146 reference_measure.xml:1502 reference_measure.xml:2117 reference_measure.xml:2588 reference_measure.xml:3264
 #, no-c-format
 msgid "NOTE: this is the \"allowable\" version that returns a boolean, not an integer."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:841
+#: reference_measure.xml:840
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - same as within(geometry B, geometry A)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:843
+#: reference_measure.xml:842
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.31"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:845 reference_measure.xml:1076 reference_measure.xml:1151
+#: reference_measure.xml:844 reference_measure.xml:1075 reference_measure.xml:1150
 #, no-c-format
 msgid "There are certain subtleties to ST_Contains and ST_Within that are not intuitively obvious. For details check out <ulink url=\"http://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html\">Subtleties of OGC Covers, Contains, Within</ulink>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:852
+#: reference_measure.xml:851
 #, no-c-format
 msgid "The <function>ST_Contains</function> predicate returns <varname>TRUE</varname> in all the following illustrations."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:864
+#: reference_measure.xml:863
 #, no-c-format
 msgid "<varname>LINESTRING</varname> / <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:874 reference_measure.xml:3186
+#: reference_measure.xml:873 reference_measure.xml:3208
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>POINT</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:885 reference_measure.xml:925 reference_measure.xml:3155
+#: reference_measure.xml:884 reference_measure.xml:924 reference_measure.xml:3177
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:895 reference_measure.xml:2610 reference_measure.xml:3135 reference_measure.xml:3145
+#: reference_measure.xml:894 reference_measure.xml:2625 reference_measure.xml:3157 reference_measure.xml:3167
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:903
+#: reference_measure.xml:902
 #, no-c-format
 msgid "The <function>ST_Contains</function> predicate returns <varname>FALSE</varname> in all the following illustrations."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:915
+#: reference_measure.xml:914
 #, no-c-format
 msgid "<varname>POLYGON</varname> / <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:933
+#: reference_measure.xml:932
 #, no-c-format
 msgid ""
       "-- A circle within a circle\n"
@@ -1147,73 +1153,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:938
+#: reference_measure.xml:937
 #, no-c-format
 msgid ", <xref linkend=\"ST_ContainsProperly\"/>, <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Equals\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:944
+#: reference_measure.xml:943
 #, no-c-format
 msgid "ST_ContainsProperly"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:946
+#: reference_measure.xml:945
 #, no-c-format
 msgid "Returns true if B intersects the interior of A but not the boundary (or exterior). A does not contain properly itself, but does contain itself."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:951
+#: reference_measure.xml:950
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_ContainsProperly</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:966
+#: reference_measure.xml:965
 #, no-c-format
 msgid "Returns true if B intersects the interior of A but not the boundary (or exterior)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:968
+#: reference_measure.xml:967
 #, no-c-format
 msgid "A does not contain properly itself, but does contain itself."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:969
+#: reference_measure.xml:968
 #, no-c-format
 msgid "Every point of the other geometry is a point of this geometry's interior. The DE-9IM Intersection Matrix for the two geometries matches [T**FF*FF*] used in <xref linkend=\"ST_Relate\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:973
+#: reference_measure.xml:972
 #, no-c-format
 msgid "From JTS docs slightly reworded: The advantage to using this predicate over <xref linkend=\"ST_Contains\"/> and <xref linkend=\"ST_Intersects\"/> is that it can be computed efficiently, with no need to compute topology at individual points."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:975
+#: reference_measure.xml:974
 #, no-c-format
 msgid "An example use case for this predicate is computing the intersections of a set of geometries with a large polygonal geometry. Since intersection is a fairly slow operation, it can be more efficient to use containsProperly to filter out test geometries which lie wholly inside the area. In these cases the intersection is known a priori to be exactly the original test geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:985
+#: reference_measure.xml:984
 #, no-c-format
 msgid "Availability: 1.4.0 - requires GEOS >= 3.1.0."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:995
+#: reference_measure.xml:994
 #, no-c-format
 msgid "This function call will automatically include a bounding box comparison that will make use of any indexes that are available on the geometries. To avoid index use, use the function _ST_ContainsProperly."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1004
+#: reference_measure.xml:1003
 #, no-c-format
 msgid ""
       "--a circle within a circle\n"
@@ -1246,73 +1252,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1009
+#: reference_measure.xml:1008
 #, no-c-format
 msgid ", <xref linkend=\"ST_Boundary\"/>, <xref linkend=\"ST_Contains\"/>, <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Equals\"/>, <xref linkend=\"ST_Relate\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1015
+#: reference_measure.xml:1014
 #, no-c-format
 msgid "ST_Covers"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1017
+#: reference_measure.xml:1016
 #, no-c-format
 msgid "Returns 1 (TRUE) if no point in Geometry B is outside Geometry A"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1022
+#: reference_measure.xml:1021
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> <paramdef><type>geography </type> <parameter>geogpolyA</parameter></paramdef> <paramdef><type>geography </type> <parameter>geogpointB</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1047
+#: reference_measure.xml:1046
 #, no-c-format
 msgid "Returns 1 (TRUE) if no point in Geometry/Geography B is outside Geometry/Geography A"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1057
+#: reference_measure.xml:1056
 #, no-c-format
 msgid "For geography only Polygon covers point is supported."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1064
+#: reference_measure.xml:1063
 #, no-c-format
 msgid "This function call will automatically include a bounding box comparison that will make use of any indexes that are available on the geometries. To avoid index use, use the function _ST_Covers."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1069 reference_measure.xml:1141
+#: reference_measure.xml:1068 reference_measure.xml:1140
 #, no-c-format
 msgid "Availability: 1.2.2 - requires GEOS >= 3.0"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1070
+#: reference_measure.xml:1069
 #, no-c-format
 msgid "Availability: 1.5 - support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1075 reference_measure.xml:1150
+#: reference_measure.xml:1074 reference_measure.xml:1149
 #, no-c-format
 msgid "Not an OGC standard, but Oracle has it too."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1082
+#: reference_measure.xml:1081
 #, no-c-format
 msgid "Geometry example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1083
+#: reference_measure.xml:1082
 #, no-c-format
 msgid ""
       "--a circle covering a circle\n"
@@ -1330,13 +1336,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1084
+#: reference_measure.xml:1083
 #, no-c-format
 msgid "Geeography Example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1085
+#: reference_measure.xml:1084
 #, no-c-format
 msgid ""
       "-- a point with a 300 meter buffer compared to a point, a point and its 10 meter buffer\n"
@@ -1351,43 +1357,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1090
+#: reference_measure.xml:1089
 #, no-c-format
 msgid ", <xref linkend=\"ST_CoveredBy\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1096
+#: reference_measure.xml:1095
 #, no-c-format
 msgid "ST_CoveredBy"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1098
+#: reference_measure.xml:1097
 #, no-c-format
 msgid "<refpurpose>Returns 1 (TRUE) if no point in Geometry/Geography A is outside Geometry/Geography B</refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1103
+#: reference_measure.xml:1102
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> <paramdef><type>geography </type> <parameter>geogA</parameter></paramdef> <paramdef><type>geography </type> <parameter>geogB</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1129
+#: reference_measure.xml:1128
 #, no-c-format
 msgid "<para>Returns 1 (TRUE) if no point in Geometry/Geography A is outside Geometry/Geography B</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1142
+#: reference_measure.xml:1141
 #, no-c-format
 msgid "This function call will automatically include a bounding box comparison that will make use of any indexes that are available on the geometries. To avoid index use, use the function _ST_CoveredBy."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1157
+#: reference_measure.xml:1156
 #, no-c-format
 msgid ""
       "--a circle coveredby a circle\n"
@@ -1405,133 +1411,133 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1162
+#: reference_measure.xml:1161
 #, no-c-format
 msgid ", <xref linkend=\"ST_Covers\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1168
+#: reference_measure.xml:1167
 #, no-c-format
 msgid "ST_Crosses"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1170
+#: reference_measure.xml:1169
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if the supplied geometries have some, but not all, interior points in common."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1176
+#: reference_measure.xml:1175
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_Crosses</function></funcdef> <paramdef><type>geometry </type><parameter>g1</parameter></paramdef> <paramdef><type>geometry </type><parameter>g2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1189
+#: reference_measure.xml:1188
 #, no-c-format
 msgid "<function>ST_Crosses</function> takes two geometry objects and returns <varname>TRUE</varname> if their intersection \"spatially cross\", that is, the geometries have some, but not all interior points in common. The intersection of the interiors of the geometries must not be the empty set and must have a dimensionality less than the the maximum dimension of the two input geometries. Additionally, the intersection of the two geometries must not equal either of the source geometries [...]
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1198
+#: reference_measure.xml:1197
 #, no-c-format
 msgid "In mathematical terms, this is expressed as:"
 msgstr ""
 
 #. Tag: remark
-#: reference_measure.xml:1200
+#: reference_measure.xml:1199
 #, no-c-format
 msgid "TODO: Insert appropriate MathML markup here or use a gif. Simple HTML markup does not work well in both IE and Firefox."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1211
+#: reference_measure.xml:1210
 #, no-c-format
 msgid "The DE-9IM Intersection Matrix for the two geometries is:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1215
+#: reference_measure.xml:1214
 #, no-c-format
 msgid "<markup>T*T******</markup> (for Point/Line, Point/Area, and Line/Area situations)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1220
+#: reference_measure.xml:1219
 #, no-c-format
 msgid "<markup>T*****T**</markup> (for Line/Point, Area/Point, and Area/Line situations)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1225
+#: reference_measure.xml:1224
 #, no-c-format
 msgid "<markup>0********</markup> (for Line/Line situations)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1229
+#: reference_measure.xml:1228
 #, no-c-format
 msgid "For any other combination of dimensions this predicate returns false."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1232
+#: reference_measure.xml:1231
 #, no-c-format
 msgid "The OpenGIS Simple Features Specification defines this predicate only for Point/Line, Point/Area, Line/Line, and Line/Area situations. JTS / GEOS extends the definition to apply to Line/Point, Area/Point and Area/Line situations as well. This makes the relation symmetric."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1248
+#: reference_measure.xml:1247
 #, no-c-format
 msgid "&sfs_compliant; s2.1.13.3"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1249
+#: reference_measure.xml:1248
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.29"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1255 reference_measure.xml:2582
+#: reference_measure.xml:1254 reference_measure.xml:2597
 #, no-c-format
 msgid "The following illustrations all return <varname>TRUE</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1267
+#: reference_measure.xml:1266
 #, no-c-format
 msgid "<varname>MULTIPOINT</varname> / <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1277
+#: reference_measure.xml:1276
 #, no-c-format
 msgid "<varname>MULTIPOINT</varname> / <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1289
+#: reference_measure.xml:1288
 #, no-c-format
 msgid "<varname>LINESTRING</varname> / <varname>POLYGON</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1299 reference_measure.xml:2602 reference_measure.xml:3166 reference_measure.xml:3176
+#: reference_measure.xml:1298 reference_measure.xml:2617 reference_measure.xml:3188 reference_measure.xml:3198
 #, no-c-format
 msgid "<varname>LINESTRING</varname> / <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1307
+#: reference_measure.xml:1306
 #, no-c-format
 msgid "Consider a situation where a user has two tables: a table of roads and a table of highways."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1315
+#: reference_measure.xml:1314
 #, no-c-format
 msgid ""
       "CREATE TABLE roads (\n"
@@ -1542,7 +1548,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1319
+#: reference_measure.xml:1318
 #, no-c-format
 msgid ""
       "CREATE TABLE highways (\n"
@@ -1553,13 +1559,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1326
+#: reference_measure.xml:1325
 #, no-c-format
 msgid "To determine a list of roads that cross a highway, use a query similiar to:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1330
+#: reference_measure.xml:1329
 #, no-c-format
 msgid ""
       "SELECT roads.id\n"
@@ -1568,91 +1574,91 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1337
+#: reference_measure.xml:1336
 #, no-c-format
 msgid "ST_LineCrossingDirection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1339
+#: reference_measure.xml:1338
 #, no-c-format
 msgid "Given 2 linestrings, returns a number between -3 and 3 denoting what kind of crossing behavior. 0 is no crossing."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1344
+#: reference_measure.xml:1343
 #, no-c-format
 msgid "<funcdef>integer <function>ST_LineCrossingDirection</function></funcdef> <paramdef><type>geometry </type> <parameter>linestringA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>linestringB</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1355
+#: reference_measure.xml:1354
 #, no-c-format
 msgid "Given 2 linestrings, returns a number between -3 and 3 denoting what kind of crossing behavior. 0 is no crossing. This is only supported for <varname>LINESTRING</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1356
+#: reference_measure.xml:1355
 #, no-c-format
 msgid "Definition of integer constants is as follows:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1359
+#: reference_measure.xml:1358
 #, no-c-format
 msgid "0: LINE NO CROSS"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1362
+#: reference_measure.xml:1361
 #, no-c-format
 msgid "-1: LINE CROSS LEFT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1365
+#: reference_measure.xml:1364
 #, no-c-format
 msgid "1: LINE CROSS RIGHT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1368
+#: reference_measure.xml:1367
 #, no-c-format
 msgid "-2: LINE MULTICROSS END LEFT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1371
+#: reference_measure.xml:1370
 #, no-c-format
 msgid "2: LINE MULTICROSS END RIGHT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1374
+#: reference_measure.xml:1373
 #, no-c-format
 msgid "-3: LINE MULTICROSS END SAME FIRST LEFT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1377
+#: reference_measure.xml:1376
 #, no-c-format
 msgid "3: LINE MULTICROSS END SAME FIRST RIGHT"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1381
+#: reference_measure.xml:1380
 #, no-c-format
 msgid "Availability: 1.4"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1399
+#: reference_measure.xml:1398
 #, no-c-format
 msgid "Line 1 (green), Line 2 ball is start point, triangle are end points. Query below."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1403
+#: reference_measure.xml:1402
 #, no-c-format
 msgid ""
       "SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
@@ -1669,13 +1675,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1413 reference_measure.xml:1427 reference_measure.xml:1441
+#: reference_measure.xml:1412 reference_measure.xml:1426 reference_measure.xml:1440
 #, no-c-format
 msgid "Line 1 (green), Line 2 (blue) ball is start point, triangle are end points. Query below."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1417
+#: reference_measure.xml:1416
 #, no-c-format
 msgid ""
       "SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
@@ -1692,7 +1698,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1431
+#: reference_measure.xml:1430
 #, no-c-format
 msgid ""
       "SELECT\n"
@@ -1710,7 +1716,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1445
+#: reference_measure.xml:1444
 #, no-c-format
 msgid ""
       "SELECT ST_LineCrossingDirection(foo.line1, foo.line2) As l1_cross_l2 ,\n"
@@ -1726,7 +1732,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1453
+#: reference_measure.xml:1452
 #, no-c-format
 msgid ""
       "SELECT s1.gid, s2.gid, ST_LineCrossingDirection(s1.the_geom, s2.the_geom)\n"
@@ -1735,49 +1741,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1466
+#: reference_measure.xml:1465
 #, no-c-format
 msgid "ST_Disjoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1468
+#: reference_measure.xml:1467
 #, no-c-format
 msgid "Returns TRUE if the Geometries do not \"spatially intersect\" - if they do not share any space together."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1474
+#: reference_measure.xml:1473
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> <type>geometry</type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry</type> <parameter>B</parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1489
+#: reference_measure.xml:1488
 #, no-c-format
 msgid "Overlaps, Touches, Within all imply geometries are not spatially disjoint. If any of the aforementioned returns true, then the geometries are not spatially disjoint. Disjoint implies false for spatial intersection."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1499
+#: reference_measure.xml:1498
 #, no-c-format
 msgid "This function call does not use indexes"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1506
+#: reference_measure.xml:1505
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - a.Relate(b, 'FF*FF****')"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1508
+#: reference_measure.xml:1507
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.26"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1513
+#: reference_measure.xml:1512
 #, no-c-format
 msgid ""
       "SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry);\n"
@@ -1793,56 +1799,74 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1518
+#: reference_measure.xml:1517
 #, no-c-format
 msgid "<para>ST_Intersects</para>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1524
+#: reference_measure.xml:1523
 #, no-c-format
 msgid "ST_Distance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1526
+#: reference_measure.xml:1525
 #, no-c-format
 msgid "For geometry type Returns the 2-dimensional cartesian minimum distance (based on spatial ref) between two geometries in projected units. For geography type defaults to return spheroidal minimum distance between two geographies in meters."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1530
+#: reference_measure.xml:1529
 #, no-c-format
 msgid "<funcprototype> <funcdef>float <function>ST_Distance</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float <function>ST_Distance</function></funcdef> <paramdef><type>geography </type> <parameter>gg1</parameter></paramdef> <paramdef><type>geography </type> <parameter>gg2</parameter></paramdef> </funcprototype> <funcprototype> <fu [...]
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1568
+#: reference_measure.xml:1567
 #, no-c-format
 msgid "For geometry type returns the 2-dimensional minimum cartesian distance between two geometries in projected units (spatial ref units). For geography type defaults to return the minimum distance around WGS 84 spheroid between two geographies in meters. Pass in false to return answer in sphere instead of spheroid."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1573
+#: reference_measure.xml:1572
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.23"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1575
+#: reference_measure.xml:1573 reference_measure.xml:2039
+#, no-c-format
+msgid "&curve_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:1576
 #, no-c-format
 msgid "Availability: 1.5.0 geography support was introduced in 1.5. Speed improvements for planar to better handle large or many vertex geometries"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1576 reference_measure.xml:1939
+#: reference_measure.xml:1577 reference_measure.xml:1949
 #, no-c-format
 msgid "Enhanced: 2.1.0 improved speed for geography. See <ulink url=\"http://blog.opengeo.org/2012/07/12/making-geography-faster/\">Making Geography faster</ulink> for details."
 msgstr ""
 
-#. Tag: programlisting
+#. Tag: para
+#: reference_measure.xml:1578
+#, no-c-format
+msgid "Enhanced: 2.1.0 - support for curved geometries was introduced."
+msgstr ""
+
+#. Tag: title
 #: reference_measure.xml:1582
 #, no-c-format
+msgid "Basic Geometry Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1584
+#, no-c-format
 msgid ""
       "--Geometry example - units in planar degrees 4326 is WGS 84 long lat unit=degrees\n"
       "SELECT ST_Distance(\n"
@@ -1870,9 +1894,20 @@ msgid ""
       "\n"
       "st_distance\n"
       "------------------\n"
-      "126.664256056812\n"
-      "\n"
-      "-- Geography example -- same but note units in meters - use sphere for slightly faster less accurate\n"
+      "126.664256056812"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:1587 reference_measure.xml:2131 reference_measure.xml:2182
+#, no-c-format
+msgid "Geography Examples"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1588
+#, no-c-format
+msgid ""
+      "-- same as geometry example but note units in meters - use sphere for slightly faster less accurate\n"
       "SELECT ST_Distance(gg1, gg2) As spheroid_dist, ST_Distance(gg1, gg2, false) As sphere_dist \n"
       "FROM (SELECT\n"
       "        ST_GeographyFromText('SRID=4326;POINT(-72.1235 42.3521)') As gg1,\n"
@@ -1885,64 +1920,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1588
+#: reference_measure.xml:1596
 #, no-c-format
 msgid ", <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_Distance_Sphere\"/>, <xref linkend=\"ST_Distance_Spheroid\"/>, <xref linkend=\"ST_MaxDistance\"/>, <xref linkend=\"ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1594
+#: reference_measure.xml:1602
 #, no-c-format
 msgid "ST_HausdorffDistance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1596
+#: reference_measure.xml:1604
 #, no-c-format
 msgid "Returns the Hausdorff distance between two geometries. Basically a measure of how similar or dissimilar 2 geometries are. Units are in the units of the spatial reference system of the geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1601
+#: reference_measure.xml:1609
 #, no-c-format
 msgid "<funcprototype> <funcdef>float <function>ST_HausdorffDistance</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float <function>ST_HausdorffDistance</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> <paramdef><type>float< [...]
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1629
+#: reference_measure.xml:1637
 #, no-c-format
 msgid "Implements algorithm for computing a distance metric which can be thought of as the \"Discrete Hausdorff Distance\". This is the Hausdorff distance restricted to discrete points for one of the geometries. <ulink url=\"http://en.wikipedia.org/wiki/Hausdorff_distance\">Wikipedia article on Hausdorff distance</ulink> <ulink url=\"http://lin-ear-th-inking.blogspot.com/2009/01/computing-geometric-similarity.html\">Martin Davis note on how Hausdorff Distance calculation was used to prov [...]
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1632
+#: reference_measure.xml:1640
 #, no-c-format
 msgid "When densifyFrac is specified, this function performs a segment densification before computing the discrete hausdorff distance. The densifyFrac parameter sets the fraction by which to densify each segment. Each segment will be split into a number of equal-length subsegments, whose fraction of the total length is closest to the given fraction."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1637
+#: reference_measure.xml:1645
 #, no-c-format
 msgid "The current implementation supports only vertices as the discrete locations. This could be extended to allow an arbitrary density of points to be used."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1642
+#: reference_measure.xml:1650
 #, no-c-format
 msgid "This algorithm is NOT equivalent to the standard Hausdorff distance. However, it computes an approximation that is correct for a large subset of useful cases. One important part of this subset is Linestrings that are roughly parallel to each other, and roughly equal in length. This is a useful metric for line matching."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1647
+#: reference_measure.xml:1655
 #, no-c-format
 msgid "Availability: 1.5.0 - requires GEOS >= 3.2.0"
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:1661
+#, no-c-format
+msgid "For each building, find the parcel that best represents it. First we require the parcel intersect with the geometry. DISTINCT ON guarantees we get each building listed only once, the ORDER BY .. ST_HausdorffDistance gives us a preference of parcel that is most similar to the building."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:1654
+#: reference_measure.xml:1663
 #, no-c-format
 msgid ""
-      "postgis=# SELECT st_HausdorffDistance(\n"
+      "SELECT DISTINCT ON(buildings.gid) buildings.gid, parcels.parcel_id \n"
+      "   FROM buildings INNER JOIN parcels ON ST_Intersects(buildings.geom,parcels.geom) \n"
+      "     ORDER BY buildings.gid, ST_HausdorffDistance(buildings.geom, parcels.geom);"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:1665
+#, no-c-format
+msgid ""
+      "postgis=# SELECT ST_HausdorffDistance(\n"
       "                                'LINESTRING (0 0, 2 0)'::geometry,\n"
       "                                'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);\n"
       " st_hausdorffdistance\n"
@@ -1952,7 +2002,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1655
+#: reference_measure.xml:1666
 #, no-c-format
 msgid ""
       "postgis=# SELECT st_hausdorffdistance('LINESTRING (130 0, 0 0, 0 150)'::geometry, 'LINESTRING (10 10, 10 150, 130 10)'::geometry, 0.5);\n"
@@ -1963,37 +2013,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1662
+#: reference_measure.xml:1673
 #, no-c-format
 msgid "ST_MaxDistance"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1664
+#: reference_measure.xml:1675
 #, no-c-format
 msgid "Returns the 2-dimensional largest distance between two geometries in projected units."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1670
+#: reference_measure.xml:1681
 #, no-c-format
 msgid "<funcdef>float <function>ST_MaxDistance</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1681
+#: reference_measure.xml:1694
 #, no-c-format
-msgid "Some useful description here."
+msgid "Returns the 2-dimensional maximum distance between two geometries in projected units. If g1 and g2 is the same geometry the function will return the distance between the two vertices most far from each other in that geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1685
+#: reference_measure.xml:1704
 #, no-c-format
-msgid "Returns the 2-dimensional maximum distance between two linestrings in projected units. If g1 and g2 is the same geometry the function will return the distance between the two vertices most far from each other in that geometry."
+msgid "Basic furthest distance the point is to any part of the line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1695
+#: reference_measure.xml:1705
 #, no-c-format
 msgid ""
       "postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry);\n"
@@ -2010,49 +2060,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1701
+#: reference_measure.xml:1711
 #, no-c-format
-msgid ", <xref linkend=\"ST_LongestLine\"/>"
+msgid ", <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_DFullyWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1707
+#: reference_measure.xml:1717
 #, no-c-format
 msgid "ST_Distance_Sphere"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1709
+#: reference_measure.xml:1719
 #, no-c-format
 msgid "Returns minimum distance in meters between two lon/lat geometries. Uses a spherical earth and radius of 6370986 meters. Faster than ST_Distance_Spheroid <xref linkend=\"ST_Distance_Spheroid\"/>, but less accurate. PostGIS versions prior to 1.5 only implemented for points."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1717
+#: reference_measure.xml:1727
 #, no-c-format
 msgid "<funcdef>float <function>ST_Distance_Sphere</function></funcdef> <paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1728
+#: reference_measure.xml:1738
 #, no-c-format
 msgid "Returns minimum distance in meters between two lon/lat points. Uses a spherical earth and radius of 6370986 meters. Faster than <xref linkend=\"ST_Distance_Spheroid\"/>, but less accurate. PostGIS Versions prior to 1.5 only implemented for points."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1733
+#: reference_measure.xml:1743
 #, no-c-format
 msgid "This function currently does not look at the SRID of a geometry and will always assume its in WGS 84 long lat. Prior versions of this function only support points."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1736 reference_measure.xml:1784
+#: reference_measure.xml:1746 reference_measure.xml:1794
 #, no-c-format
 msgid "Availability: 1.5 - support for other geometry types besides points was introduced. Prior versions only work with points."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1743
+#: reference_measure.xml:1753
 #, no-c-format
 msgid ""
       "SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,\n"
@@ -2069,43 +2119,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1750
+#: reference_measure.xml:1760
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1756
+#: reference_measure.xml:1766
 #, no-c-format
 msgid "ST_Distance_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1758
+#: reference_measure.xml:1768
 #, no-c-format
 msgid "Returns the minimum distance between two lon/lat geometries given a particular spheroid. PostGIS versions prior to 1.5 only support points."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1765
+#: reference_measure.xml:1775
 #, no-c-format
 msgid "<funcdef>float <function>ST_Distance_Spheroid</function></funcdef> <paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geomlonlatB</parameter></paramdef> <paramdef><type>spheroid </type> <parameter>measurement_spheroid</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1777
+#: reference_measure.xml:1787
 #, no-c-format
 msgid "Returns minimum distance in meters between two lon/lat geometries given a particular spheroid. See the explanation of spheroids given for <xref linkend=\"ST_Length_Spheroid\"/>. PostGIS version prior to 1.5 only support points."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1781
+#: reference_measure.xml:1791
 #, no-c-format
 msgid "This function currently does not look at the SRID of a geometry and will always assume its represented in the coordinates of the passed in spheroid. Prior versions of this function only support points."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1791
+#: reference_measure.xml:1801
 #, no-c-format
 msgid ""
       "SELECT round(CAST(\n"
@@ -2122,37 +2172,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1798
+#: reference_measure.xml:1808
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance_Sphere\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1804
+#: reference_measure.xml:1814
 #, no-c-format
 msgid "ST_DFullyWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1806
+#: reference_measure.xml:1816
 #, no-c-format
 msgid "Returns true if all of the geometries are within the specified distance of one another"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1812
+#: reference_measure.xml:1822
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_DFullyWithin</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> <paramdef><type>double precision </type> <parameter>distance</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1830
+#: reference_measure.xml:1840
 #, no-c-format
 msgid "Returns true if the geometries is fully within the specified distance of one another. The distance is specified in units defined by the spatial reference system of the geometries. For this function to make sense, the source geometries must both be of the same coordinate projection, having the same SRID."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1847
+#: reference_measure.xml:1857
 #, no-c-format
 msgid ""
       "postgis=# SELECT ST_DFullyWithin(geom_a, geom_b, 10) as DFullyWithin10, ST_DWithin(geom_a, geom_b, 10) as DWithin10, ST_DFullyWithin(geom_a, geom_b, 20) as DFullyWithin20 from \n"
@@ -2165,67 +2215,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1853
+#: reference_measure.xml:1863
 #, no-c-format
 msgid ", <xref linkend=\"ST_DWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1859
+#: reference_measure.xml:1869
 #, no-c-format
 msgid "ST_DWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1861
+#: reference_measure.xml:1871
 #, no-c-format
 msgid "Returns true if the geometries are within the specified distance of one another. For geometry units are in those of spatial reference and For geography units are in meters and measurement is defaulted to use_spheroid=true (measure around spheroid), for faster check, use_spheroid=false to measure along sphere."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:1867
+#: reference_measure.xml:1877
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef> <paramdef><type>double precision </type> <parameter>distance_of_srid</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> <paramdef><type>geography </type> <parameter>gg1</parameter></paramdef> <paramdef><typ [...]
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1912
+#: reference_measure.xml:1922
 #, no-c-format
 msgid "Returns true if the geometries are within the specified distance of one another."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1914
+#: reference_measure.xml:1924
 #, no-c-format
 msgid "For Geometries: The distance is specified in units defined by the spatial reference system of the geometries. For this function to make sense, the source geometries must both be of the same coordinate projection, having the same SRID."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1919
+#: reference_measure.xml:1929
 #, no-c-format
 msgid "For geography units are in meters and measurement is defaulted to use_spheroid=true (measure around WGS 84 spheroid), for faster check, use_spheroid=false to measure along sphere."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1929
+#: reference_measure.xml:1939
 #, no-c-format
 msgid "Prior to 1.3, ST_Expand was commonly used in conjunction with && and ST_Distance to achieve the same effect and in pre-1.3.4 this function was basically short-hand for that construct. From 1.3.4, ST_DWithin uses a more short-circuit distance function which should make it more efficient than prior versions for larger buffer regions."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1935
+#: reference_measure.xml:1945
 #, no-c-format
 msgid "Use ST_3DDWithin if you have 3D geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1938
+#: reference_measure.xml:1948
 #, no-c-format
 msgid "Availability: 1.5.0 support for geography was introduced"
 msgstr ""
 
+#. Tag: para
+#: reference_measure.xml:1950
+#, no-c-format
+msgid "Enhanced: 2.1.0 support for curved geometries was introduced."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:1944
+#: reference_measure.xml:1955
 #, no-c-format
 msgid ""
       "--Find the nearest hospital to each school\n"
@@ -2248,55 +2304,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1950
+#: reference_measure.xml:1961
 #, no-c-format
 msgid ", <xref linkend=\"ST_Expand\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:1956
+#: reference_measure.xml:1967
 #, no-c-format
 msgid "ST_Equals"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:1958
+#: reference_measure.xml:1969
 #, no-c-format
 msgid "Returns true if the given geometries represent the same geometry. Directionality is ignored."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:1964
+#: reference_measure.xml:1975
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_Equals</function></funcdef> <paramdef><type>geometry </type> <parameter>A</parameter></paramdef> <paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1975
+#: reference_measure.xml:1986
 #, no-c-format
 msgid "Returns TRUE if the given Geometries are \"spatially equal\". Use this for a 'better' answer than '='. Note by spatially equal we mean ST_Within(A,B) = true and ST_Within(B,A) = true and also mean ordering of points can be different but represent the same geometry structure. To verify the order of points is consistent, use ST_OrderingEquals (it must be noted ST_OrderingEquals is a little more stringent than simply verifying order of points are the same)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1984
+#: reference_measure.xml:1995
 #, no-c-format
 msgid "This function will return false if either geometry is invalid even if they are binary equal."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1987
+#: reference_measure.xml:1998
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:1988
+#: reference_measure.xml:1999
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.24"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:1994
+#: reference_measure.xml:2005
 #, no-c-format
 msgid ""
       "SELECT ST_Equals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
@@ -2315,49 +2371,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2000
+#: reference_measure.xml:2011
 #, no-c-format
 msgid ", <xref linkend=\"ST_OrderingEquals\"/>, <xref linkend=\"ST_Reverse\"/>, <xref linkend=\"ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2007
+#: reference_measure.xml:2018
 #, no-c-format
 msgid "ST_HasArc"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2009
+#: reference_measure.xml:2020
 #, no-c-format
 msgid "<refpurpose>Returns true if a geometry or geometry collection contains a circular string</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2014
+#: reference_measure.xml:2025
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_HasArc</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2024
+#: reference_measure.xml:2035
 #, no-c-format
 msgid "<para>Returns true if a geometry or geometry collection contains a circular string</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2026
+#: reference_measure.xml:2037
 #, no-c-format
 msgid "Availability: 1.2.3?"
 msgstr ""
 
-#. Tag: para
-#: reference_measure.xml:2028
-#, no-c-format
-msgid "&curve_support;"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_measure.xml:2035
+#: reference_measure.xml:2046
 #, no-c-format
 msgid ""
       "SELECT ST_HasArc(ST_Collect('LINESTRING(1 2, 3 4, 5 6)', 'CIRCULARSTRING(1 1, 2 3, 4 5, 6 7, 5 6)'));\n"
@@ -2367,67 +2417,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2042
+#: reference_measure.xml:2053
 #, no-c-format
 msgid ", <xref linkend=\"ST_LineToCurve\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2048
+#: reference_measure.xml:2059
 #, no-c-format
 msgid "<refname>ST_Intersects</refname>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2050
+#: reference_measure.xml:2061
 #, no-c-format
 msgid "Returns TRUE if the Geometries/Geography \"spatially intersect in 2D\" - (share any portion of space) and FALSE if they don't (they are Disjoint). For geography -- tolerance is 0.00001 meters (so any points that close are considered to intersect)"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:2056
+#: reference_measure.xml:2067
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Intersects</function></funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_Intersects</function></funcdef> <paramdef> <type>geography</type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</type> <parameter>geogB</parameter> </paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2088
+#: reference_measure.xml:2094
+#, no-c-format
+msgid "If a geometry or geography shares any portion of space then they intersect. For geography -- tolerance is 0.00001 meters (so any points that are close are considered to intersect)"
+msgstr ""
+
+#. Tag: para
+#: reference_measure.xml:2101
 #, no-c-format
 msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument for geometry version. The geography version supports GEOMETRYCOLLECTION since its a thin wrapper around distance implementation."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2092
+#: reference_measure.xml:2105
 #, no-c-format
 msgid "Performed by the GEOS module (for geometry), geography is native"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2093
+#: reference_measure.xml:2106
 #, no-c-format
 msgid "Availability: 1.5 support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2100
+#: reference_measure.xml:2113
 #, no-c-format
 msgid "For geography, this function has a distance tolerance of about 0.00001 meters and uses the sphere rather than spheroid calculation."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2107
+#: reference_measure.xml:2120
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 //s2.1.13.3 - ST_Intersects(g1, g2 ) --> Not (ST_Disjoint(g1, g2 ))"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2110
+#: reference_measure.xml:2123
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.27"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2114
+#: reference_measure.xml:2128
 #, no-c-format
 msgid ""
       "SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry);\n"
@@ -2442,14 +2498,8 @@ msgid ""
       "(1 row)"
 msgstr ""
 
-#. Tag: title
-#: reference_measure.xml:2117 reference_measure.xml:2167
-#, no-c-format
-msgid "Geography Examples"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_measure.xml:2118
+#: reference_measure.xml:2132
 #, no-c-format
 msgid ""
       "SELECT ST_Intersects(\n"
@@ -2463,79 +2513,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2122
+#: reference_measure.xml:2136
 #, no-c-format
 msgid ", <xref linkend=\"ST_Disjoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2127
+#: reference_measure.xml:2141
 #, no-c-format
 msgid "ST_Length"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2129
+#: reference_measure.xml:2143
 #, no-c-format
 msgid "Returns the 2d length of the geometry if it is a linestring or multilinestring. geometry are in units of spatial reference and geography are in meters (default spheroid)"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:2132
+#: reference_measure.xml:2146
 #, no-c-format
 msgid "<funcprototype> <funcdef>float <function>ST_Length</function></funcdef> <paramdef><type>geometry </type><parameter>a_2dlinestring</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float <function>ST_Length</function></funcdef> <paramdef><type>geography </type><parameter>geog</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2147
+#: reference_measure.xml:2161
 #, no-c-format
 msgid "For geometry: Returns the cartesian 2D length of the geometry if it is a linestring, multilinestring, ST_Curve, ST_MultiCurve. 0 is returned for areal geometries. For areal geometries use ST_Perimeter. Geometry: Measurements are in the units of the spatial reference system of the geometry. Geography: Units are in meters and also acts as a Perimeter function for areal geogs."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2151
+#: reference_measure.xml:2165
 #, no-c-format
 msgid "Currently for geometry this is an alias for ST_Length2D, but this may change to support higher dimensions."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2152
+#: reference_measure.xml:2166
 #, no-c-format
 msgid "Changed: 2.0.0 Breaking change -- in prior versions applying this to a MULTI/POLYGON of type geography would give you the perimeter of the POLYGON/MULTIPOLYGON. In 2.0.0 this was changed to return 0 to be in line with geometry behavior. Please use ST_Perimeter if you want the perimeter of a polygon"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2154
+#: reference_measure.xml:2168
 #, no-c-format
 msgid "For geography measurement defaults spheroid measurement. To use the faster less accurate sphere use ST_Length(gg,false);"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2155 reference_measure.xml:2660
+#: reference_measure.xml:2169 reference_measure.xml:2674
 #, no-c-format
 msgid "&sfs_compliant; s2.1.5.1"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2156
+#: reference_measure.xml:2170
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.2, 9.3.4"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2157
+#: reference_measure.xml:2171
 #, no-c-format
 msgid "Availability: 1.5.0 geography support was introduced in 1.5."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2162
+#: reference_measure.xml:2177
 #, no-c-format
 msgid "Return length in feet for line string. Note this is in feet because 2249 is Mass State Plane Feet"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2164
+#: reference_measure.xml:2179
 #, no-c-format
 msgid ""
       "SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 2967450,743265 2967450,\n"
@@ -2558,13 +2608,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2168
+#: reference_measure.xml:2183
 #, no-c-format
 msgid "Return length of WGS 84 geography line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2169
+#: reference_measure.xml:2184
 #, no-c-format
 msgid ""
       "-- default calculation is using a sphere rather than spheroid\n"
@@ -2579,79 +2629,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2173
+#: reference_measure.xml:2188
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_Length_Spheroid\"/>, <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2179
+#: reference_measure.xml:2194
 #, no-c-format
 msgid "ST_Length2D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2181
+#: reference_measure.xml:2196
 #, no-c-format
 msgid "<refpurpose>Returns the 2-dimensional length of the geometry if it is a linestring or multi-linestring. This is an alias for <varname>ST_Length</varname></refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2187
+#: reference_measure.xml:2202
 #, no-c-format
 msgid "<funcdef>float <function>ST_Length2D</function></funcdef> <paramdef><type>geometry </type> <parameter>a_2dlinestring</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2197
+#: reference_measure.xml:2212
 #, no-c-format
 msgid "<para>Returns the 2-dimensional length of the geometry if it is a linestring or multi-linestring. This is an alias for <varname>ST_Length</varname></para>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2206
+#: reference_measure.xml:2221
 #, no-c-format
 msgid ", <xref linkend=\"ST_3DLength\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2212
+#: reference_measure.xml:2227
 #, no-c-format
 msgid "ST_3DLength"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2214
+#: reference_measure.xml:2229
 #, no-c-format
 msgid "Returns the 3-dimensional or 2-dimensional length of the geometry if it is a linestring or multi-linestring."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2220
+#: reference_measure.xml:2235
 #, no-c-format
 msgid "<funcdef>float <function>ST_3DLength</function></funcdef> <paramdef><type>geometry </type> <parameter>a_3dlinestring</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2230
+#: reference_measure.xml:2245
 #, no-c-format
 msgid "Returns the 3-dimensional or 2-dimensional length of the geometry if it is a linestring or multi-linestring. For 2-d lines it will just return the 2-d length (same as ST_Length and ST_Length2D)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2233
+#: reference_measure.xml:2248
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Length3D"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2240
+#: reference_measure.xml:2255
 #, no-c-format
 msgid "Return length in feet for a 3D cable. Note this is in feet because 2249 is Mass State Plane Feet"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2242
+#: reference_measure.xml:2257
 #, no-c-format
 msgid ""
       "SELECT ST_3DLength(ST_GeomFromText('LINESTRING(743238 2967416 1,743238 2967450 1,743265 2967450 3,\n"
@@ -2662,37 +2712,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2249
+#: reference_measure.xml:2264
 #, no-c-format
 msgid ", <xref linkend=\"ST_Length2D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2255
+#: reference_measure.xml:2270
 #, no-c-format
 msgid "ST_Length_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2257
+#: reference_measure.xml:2272
 #, no-c-format
 msgid "Calculates the 2D or 3D length of a linestring/multilinestring on an ellipsoid. This is useful if the coordinates of the geometry are in longitude/latitude and a length is desired without reprojection."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2264
+#: reference_measure.xml:2279
 #, no-c-format
 msgid "<funcdef>float <function>ST_Length_Spheroid</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2275
+#: reference_measure.xml:2290
 #, no-c-format
 msgid "Calculates the length of a geometry on an ellipsoid. This is useful if the coordinates of the geometry are in longitude/latitude and a length is desired without reprojection. The ellipsoid is a separate database type and can be constructed as follows:"
 msgstr ""
 
 #. Tag: literallayout
-#: reference_measure.xml:2281 reference_measure.xml:2333
+#: reference_measure.xml:2296 reference_measure.xml:2348
 #, no-c-format
 msgid ""
       "SPHEROID[<NAME>,<SEMI-MAJOR\n"
@@ -2700,19 +2750,19 @@ msgid ""
 msgstr ""
 
 #. Tag: literallayout
-#: reference_measure.xml:2284 reference_measure.xml:2336
+#: reference_measure.xml:2299 reference_measure.xml:2351
 #, no-c-format
 msgid "SPHEROID[\"GRS_1980\",6378137,298.257222101]"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2285 reference_measure.xml:2337
+#: reference_measure.xml:2300 reference_measure.xml:2352
 #, no-c-format
 msgid "Will return 0 for anything that is not a MULTILINESTRING or LINESTRING"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2294
+#: reference_measure.xml:2309
 #, no-c-format
 msgid ""
       "SELECT ST_Length_Spheroid( geometry_column,\n"
@@ -2743,43 +2793,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2301
+#: reference_measure.xml:2316
 #, no-c-format
 msgid ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_3DLength_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2307
+#: reference_measure.xml:2322
 #, no-c-format
 msgid "ST_Length2D_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2309
+#: reference_measure.xml:2324
 #, no-c-format
 msgid "Calculates the 2D length of a linestring/multilinestring on an ellipsoid. This is useful if the coordinates of the geometry are in longitude/latitude and a length is desired without reprojection."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2316
+#: reference_measure.xml:2331
 #, no-c-format
 msgid "<funcdef>float <function>ST_Length2D_Spheroid</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2327
+#: reference_measure.xml:2342
 #, no-c-format
 msgid "Calculates the 2D length of a geometry on an ellipsoid. This is useful if the coordinates of the geometry are in longitude/latitude and a length is desired without reprojection. The ellipsoid is a separate database type and can be constructed as follows:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2338
+#: reference_measure.xml:2353
 #, no-c-format
 msgid "This is much like <xref linkend=\"ST_Length_Spheroid\"/> and <xref linkend=\"ST_3DLength_Spheroid\"/> except it will throw away the Z coordinate in calculations."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2346
+#: reference_measure.xml:2361
 #, no-c-format
 msgid ""
       "SELECT ST_Length2D_Spheroid( geometry_column,\n"
@@ -2810,97 +2860,97 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2353
+#: reference_measure.xml:2368
 #, no-c-format
 msgid ", <xref linkend=\"ST_Length_Spheroid\"/>, <xref linkend=\"ST_3DLength_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2359
+#: reference_measure.xml:2374
 #, no-c-format
 msgid "ST_3DLength_Spheroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2361
+#: reference_measure.xml:2376
 #, no-c-format
 msgid "<refpurpose>Calculates the length of a geometry on an ellipsoid, taking the elevation into account. This is just an alias for ST_Length_Spheroid.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2367
+#: reference_measure.xml:2382
 #, no-c-format
 msgid "<funcdef>float <function>ST_3DLength_Spheroid</function></funcdef> <paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef> <paramdef><type>spheroid </type> <parameter>a_spheroid</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2378
+#: reference_measure.xml:2393
 #, no-c-format
 msgid "<para>Calculates the length of a geometry on an ellipsoid, taking the elevation into account. This is just an alias for ST_Length_Spheroid.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2382
+#: reference_measure.xml:2397
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to return 0 for anything that is not a MULTILINESTRING or LINESTRING and in 2.0.0 on returns the perimeter of if given a polgon."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2383
+#: reference_measure.xml:2398
 #, no-c-format
 msgid "This function is just an alias for ST_Length_Spheroid."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2385
+#: reference_measure.xml:2400
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Length3d_Spheroid"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2392
+#: reference_measure.xml:2407
 #, no-c-format
 msgid "See ST_Length_Spheroid"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2399
+#: reference_measure.xml:2414
 #, no-c-format
 msgid ", <xref linkend=\"ST_Length\"/>, <xref linkend=\"ST_Length_Spheroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2405
+#: reference_measure.xml:2420
 #, no-c-format
 msgid "ST_LongestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2407
+#: reference_measure.xml:2422
 #, no-c-format
 msgid "Returns the 2-dimensional longest line points of two geometries. The function will only return the first longest line if more than one, that the function finds. The line returned will always start in g1 and end in g2. The length of the line this function returns will always be the same as st_maxdistance returns for g1 and g2."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2415
+#: reference_measure.xml:2430
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_LongestLine</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2430
+#: reference_measure.xml:2445
 #, no-c-format
 msgid "Returns the 2-dimensional longest line between the points of two geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2448
+#: reference_measure.xml:2463
 #, no-c-format
 msgid "Longest line between point and line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2451
+#: reference_measure.xml:2466
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(\n"
@@ -2915,13 +2965,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2459
+#: reference_measure.xml:2474
 #, no-c-format
 msgid "longest line between polygon and polygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2462
+#: reference_measure.xml:2477
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(\n"
@@ -2938,13 +2988,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2478
+#: reference_measure.xml:2493
 #, no-c-format
 msgid "longest straight distance to travel from one part of an elegant city to the other Note the max distance = to the length of the line."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2482
+#: reference_measure.xml:2497
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_LongestLine(c.the_geom, c.the_geom)) As llinewkt, \n"
@@ -2962,49 +3012,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2493
+#: reference_measure.xml:2508
 #, no-c-format
 msgid ", <xref linkend=\"ST_ShortestLine\"/>, <xref linkend=\"ST_LongestLine\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2499
+#: reference_measure.xml:2514
 #, no-c-format
 msgid "ST_OrderingEquals"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2501
+#: reference_measure.xml:2516
 #, no-c-format
 msgid "Returns true if the given geometries represent the same geometry and points are in the same directional order."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2507
+#: reference_measure.xml:2522
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_OrderingEquals</function></funcdef> <paramdef><type>geometry </type> <parameter>A</parameter></paramdef> <paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2518
+#: reference_measure.xml:2533
 #, no-c-format
 msgid "ST_OrderingEquals compares two geometries and returns t (TRUE) if the geometries are equal and the coordinates are in the same order; otherwise it returns f (FALSE)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2523
+#: reference_measure.xml:2538
 #, no-c-format
 msgid "This function is implemented as per the ArcSDE SQL specification rather than SQL-MM. http://edndoc.esri.com/arcsde/9.1/sql_api/sqlapi3.htm#ST_OrderingEquals"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2527
+#: reference_measure.xml:2542
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.43"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2533
+#: reference_measure.xml:2548
 #, no-c-format
 msgid ""
       "SELECT ST_OrderingEquals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),\n"
@@ -3030,67 +3080,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2537
+#: reference_measure.xml:2552
 #, no-c-format
 msgid ", <xref linkend=\"ST_Reverse\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2543
+#: reference_measure.xml:2558
 #, no-c-format
 msgid "ST_Overlaps"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2545
+#: reference_measure.xml:2560
 #, no-c-format
 msgid "Returns TRUE if the Geometries share space, are of the same dimension, but are not completely contained by each other."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2550
+#: reference_measure.xml:2565
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_Overlaps</function></funcdef> <paramdef><type>geometry </type> <parameter>A</parameter></paramdef> <paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2561
+#: reference_measure.xml:2576
 #, no-c-format
 msgid "Returns TRUE if the Geometries \"spatially overlap\". By that we mean they intersect, but one does not completely contain another."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2566 reference_measure.xml:2892 reference_measure.xml:2906
+#: reference_measure.xml:2581 reference_measure.xml:2914 reference_measure.xml:2928
 #, no-c-format
 msgid "Do not call with a GeometryCollection as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2568
+#: reference_measure.xml:2583
 #, no-c-format
 msgid "This function call will automatically include a bounding box comparison that will make use of any indexes that are available on the geometries. To avoid index use, use the function _ST_Overlaps."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2576 reference_measure.xml:2912 reference_measure.xml:3117
+#: reference_measure.xml:2591 reference_measure.xml:2934 reference_measure.xml:3139
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2577
+#: reference_measure.xml:2592
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.32"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2593
+#: reference_measure.xml:2608
 #, no-c-format
 msgid "<varname>MULTIPOINT</varname> / <varname>MULTIPOINT</varname>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2617
+#: reference_measure.xml:2632
 #, no-c-format
 msgid ""
       "--a point on a line is contained by the line and is of a lower dimension, and therefore does not overlap the line\n"
@@ -3136,73 +3186,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2625
+#: reference_measure.xml:2640
 #, no-c-format
 msgid ", <xref linkend=\"ST_Crosses\"/>, <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_Intersects\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2630
+#: reference_measure.xml:2645
 #, no-c-format
 msgid "ST_Perimeter"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2632
+#: reference_measure.xml:2647
 #, no-c-format
 msgid "Return the length measurement of the boundary of an ST_Surface or ST_MultiSurface geometry or geography. (Polygon, Multipolygon). geometry measurement is in units of spatial reference and geography is in meters."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_measure.xml:2637
-#, no-c-format
-msgid "<funcdef>float <function>ST_Perimeter</function></funcdef> <paramdef><type>geometry </type><parameter>g1</parameter></paramdef>"
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_measure.xml:2643
+#. Tag: funcsynopsis
+#: reference_measure.xml:2651
 #, no-c-format
-msgid "<funcdef>float <function>ST_Perimeter</function></funcdef> <paramdef><type>geography </type><parameter>geog</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type><parameter>use_spheroid=true</parameter></paramdef>"
+msgid "<funcprototype> <funcdef>float <function>ST_Perimeter</function></funcdef> <paramdef><type>geometry </type><parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float <function>ST_Perimeter</function></funcdef> <paramdef><type>geography </type><parameter>geog</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type><parameter>use_spheroid=true</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2653
+#: reference_measure.xml:2667
 #, no-c-format
 msgid "Returns the 2D perimeter of the geometry/geography if it is a ST_Surface, ST_MultiSurface (Polygon, Multipolygon). 0 is returned for non-areal geometries. For linestrings use ST_Length. Measurements for geometry are in the units of the spatial reference system of the geometry. Measurements for geography are in meters. If <varname>use_spheroid</varname> is set to false, then will model earth as a sphere instead of a spheroid."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2658
+#: reference_measure.xml:2672
 #, no-c-format
 msgid "Currently this is an alias for ST_Perimeter2D, but this may change to support higher dimensions."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2661
+#: reference_measure.xml:2675
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.3, 9.5.4"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2662
+#: reference_measure.xml:2676
 #, no-c-format
 msgid "Availability 2.0.0: Support for geography was introduced"
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:2666
+#: reference_measure.xml:2680
 #, no-c-format
 msgid "Examples: Geometry"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2667
+#: reference_measure.xml:2681
 #, no-c-format
 msgid "Return perimeter in feet for polygon and multipolygon. Note this is in feet because 2249 is Mass State Plane Feet"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2669
+#: reference_measure.xml:2683
 #, no-c-format
 msgid ""
       "SELECT ST_Perimeter(ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,743265 2967450,\n"
@@ -3230,19 +3274,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_measure.xml:2672
+#: reference_measure.xml:2686
 #, no-c-format
 msgid "Examples: Geography"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2673
+#: reference_measure.xml:2687
 #, no-c-format
 msgid "Return perimeter in meters and feet for polygon and multipolygon. Note this is geography (WGS 84 long lat)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2674
+#: reference_measure.xml:2688
 #, no-c-format
 msgid ""
       "SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog)/0.3048 As per_ft \n"
@@ -3271,79 +3315,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2678
+#: reference_measure.xml:2692
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_Length\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2684
+#: reference_measure.xml:2698
 #, no-c-format
 msgid "ST_Perimeter2D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2686
+#: reference_measure.xml:2700
 #, no-c-format
 msgid "Returns the 2-dimensional perimeter of the geometry, if it is a polygon or multi-polygon. This is currently an alias for ST_Perimeter."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2692
+#: reference_measure.xml:2706
 #, no-c-format
 msgid "<funcdef>float <function>ST_Perimeter2D</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2702
+#: reference_measure.xml:2716
 #, no-c-format
 msgid "Returns the 2-dimensional perimeter of the geometry, if it is a polygon or multi-polygon."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2707
+#: reference_measure.xml:2721
 #, no-c-format
 msgid "This is currently an alias for ST_Perimeter. In future versions ST_Perimeter may return the highest dimension perimeter for a geometry. This is still under consideration"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2721
+#: reference_measure.xml:2735
 #, no-c-format
 msgid "ST_3DPerimeter"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2723
+#: reference_measure.xml:2737
 #, no-c-format
 msgid "Returns the 3-dimensional perimeter of the geometry, if it is a polygon or multi-polygon."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2729
+#: reference_measure.xml:2743
 #, no-c-format
 msgid "<funcdef>float <function>ST_3DPerimeter</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2739
+#: reference_measure.xml:2753
 #, no-c-format
 msgid "Returns the 3-dimensional perimeter of the geometry, if it is a polygon or multi-polygon. If the geometry is 2-dimensional, then the 2-dimensional perimeter is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2742
+#: reference_measure.xml:2756
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Perimeter3D"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2748
+#: reference_measure.xml:2762
 #, no-c-format
 msgid "Perimeter of a slightly elevated polygon in the air in Massachusetts state plane feet"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2749
+#: reference_measure.xml:2763
 #, no-c-format
 msgid ""
       "SELECT ST_3DPerimeter(the_geom), ST_Perimeter2d(the_geom), ST_Perimeter(the_geom) FROM\n"
@@ -3356,49 +3400,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2756
+#: reference_measure.xml:2770
 #, no-c-format
 msgid ", <xref linkend=\"ST_Perimeter\"/>, <xref linkend=\"ST_Perimeter2D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2762
+#: reference_measure.xml:2776
 #, no-c-format
 msgid "ST_PointOnSurface"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2764
+#: reference_measure.xml:2778
 #, no-c-format
 msgid "Returns a <varname>POINT</varname> guaranteed to lie on the surface."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2769
+#: reference_measure.xml:2783
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_PointOnSurface</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2781
+#: reference_measure.xml:2795
 #, no-c-format
 msgid "Returns a <varname>POINT</varname> guaranteed to intersect a surface."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2783
+#: reference_measure.xml:2797
 #, no-c-format
 msgid "&sfs_compliant; s3.2.14.2 // s3.2.18.2"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2784
+#: reference_measure.xml:2798
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 8.1.5, 9.5.6. According to the specs, ST_PointOnSurface works for surface geometries (POLYGONs, MULTIPOLYGONS, CURVED POLYGONS). So PostGIS seems to be extending what the spec allows here. Most databases Oracle,DB II, ESRI SDE seem to only support this function for surfaces. SQL Server 2008 like PostGIS supports for all common geometries."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2793
+#: reference_measure.xml:2807
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_PointOnSurface('POINT(0 5)'::geometry));\n"
@@ -3427,144 +3471,167 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2799
+#: reference_measure.xml:2813
 #, no-c-format
 msgid ", <xref linkend=\"ST_Point_Inside_Circle\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2805
+#: reference_measure.xml:2819
 #, no-c-format
 msgid "ST_Project"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2807
+#: reference_measure.xml:2821
 #, no-c-format
-msgid "Returns a <varname>POINT</varname> projected from a start point using a bearing and distance."
+msgid "Returns a <varname>POINT</varname> projected from a start point using a distance in meters and bearing (azimuth) in radians."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2812
+#: reference_measure.xml:2826
 #, no-c-format
 msgid "<funcdef>geography <function>ST_Project</function></funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></paramdef> <paramdef><type>float </type> <parameter>distance</parameter></paramdef> <paramdef><type>float </type> <parameter>azimuth</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2828
+#: reference_measure.xml:2842
 #, no-c-format
-msgid "Returns a <varname>POINT</varname> projected from a start point using an azimuth (bearing) and distance."
+msgid "Returns a <varname>POINT</varname> projected from a start point using an azimuth (bearing) measured in radians and distance measured in meters."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2829
+#: reference_measure.xml:2843
 #, no-c-format
 msgid "Distance, azimuth and projection are all aspects of the same operation, describing (or in the case of projection, constructing) the relationship between two points on the world."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2830
+#: reference_measure.xml:2844
 #, no-c-format
-msgid "The azimuth is sometimes called the heading or the bearing in navigation. It is measured relative to true north (azimuth zero). East is azimuth 90, south is azimuth 180, west is azimuth 270."
+msgid "The azimuth is sometimes called the heading or the bearing in navigation. It is measured relative to true north (azimuth zero). East is azimuth 90 (<varname>pi/2</varname>), south is azimuth 180 (<varname>pi</varname>), west is azimuth 270 (<varname>pi*1.5</varname>)."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2831
+#: reference_measure.xml:2845
 #, no-c-format
 msgid "The distance is given in meters."
 msgstr ""
 
+#. Tag: title
+#: reference_measure.xml:2852
+#, no-c-format
+msgid "Example: Using degrees - projected point 100,000 meters and bearing 45 degrees"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_measure.xml:2838
+#: reference_measure.xml:2854
 #, no-c-format
 msgid ""
-      "SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, 45));\n"
-      "                  st_astext\n"
-      "        ------------------------------------------\n"
-      "         POINT(0.63523102912532 0.63947233472882)\n"
-      "        (1 row)"
+      "SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, radians(45.0)));\n"
+      "                          st_astext\n"
+      "------------------------------------------\n"
+      " POINT(0.63523102912532 0.63947233472882)\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: title
+#: reference_measure.xml:2858
+#, no-c-format
+msgid "Example: Using radians - projected point 100,000 meters and bearing pi/4 (45 degrees)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_measure.xml:2860
+#, no-c-format
+msgid ""
+      "SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, pi()/4));\n"
+      "                          st_astext\n"
+      "------------------------------------------\n"
+      " POINT(0.63523102912532 0.63947233472882)\n"
+      "(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2844
+#: reference_measure.xml:2866
 #, no-c-format
-msgid ", <xref linkend=\"ST_Distance\"/>"
+msgid ", <xref linkend=\"ST_Distance\"/>, <ulink url=\"http://www.postgresql.org/docs/current/interactive/functions-math.html\">PostgreSQL Math Functions</ulink>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2850
+#: reference_measure.xml:2872
 #, no-c-format
 msgid "ST_Relate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2852
+#: reference_measure.xml:2874
 #, no-c-format
 msgid "Returns true if this Geometry is spatially related to anotherGeometry, by testing for intersections between the Interior, Boundary and Exterior of the two geometries as specified by the values in the intersectionMatrixPattern. If no intersectionMatrixPattern is passed in, then returns the maximum intersectionMatrixPattern that relates the 2 geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_measure.xml:2860
+#: reference_measure.xml:2882
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Relate</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef> <paramdef><type>text </type> <parameter>intersectionMatrixPattern</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_Relate</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type [...]
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2886
+#: reference_measure.xml:2908
 #, no-c-format
 msgid "Version 1: Takes geomA, geomB, intersectionMatrix and Returns 1 (TRUE) if this Geometry is spatially related to anotherGeometry, by testing for intersections between the Interior, Boundary and Exterior of the two geometries as specified by the values in the <ulink url=\"http://en.wikipedia.org/wiki/DE-9IM\">DE-9IM matrix pattern</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2891
+#: reference_measure.xml:2913
 #, no-c-format
 msgid "This is especially useful for testing compound checks of intersection, crosses, etc in one step."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2894
+#: reference_measure.xml:2916
 #, no-c-format
 msgid "This is the \"allowable\" version that returns a boolean, not an integer. This is defined in OGC spec"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2897
+#: reference_measure.xml:2919
 #, no-c-format
 msgid "This DOES NOT automagically include an index call. The reason for that is some relationships are anti e.g. Disjoint. If you are using a relationship pattern that requires intersection, then include the && index call."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2902
+#: reference_measure.xml:2924
 #, no-c-format
 msgid "Version 2: Takes geomA and geomB and returns the <xref linkend=\"DE-9IM\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2904
+#: reference_measure.xml:2926
 #, no-c-format
 msgid "Version 3: same as version 2 bu allows to specify a boundary node rule (1:OGC/MOD2, 2:Endpoint, 3:MultivalentEndpoint, 4:MonovalentEndpoint)"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2908
+#: reference_measure.xml:2930
 #, no-c-format
 msgid "not in OGC spec, but implied. see s2.1.13.2"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2913
+#: reference_measure.xml:2935
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2914
+#: reference_measure.xml:2936
 #, no-c-format
 msgid "Enhanced: 2.0.0 - added support for specifying boundary node rule (requires GEOS >= 3.0)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2921
+#: reference_measure.xml:2943
 #, no-c-format
 msgid ""
       "--Find all compounds that intersect and not touch a poly (interior intersects)\n"
@@ -3597,43 +3664,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2928
+#: reference_measure.xml:2950
 #, no-c-format
 msgid ", <xref linkend=\"DE-9IM\"/>, <xref linkend=\"ST_Disjoint\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend=\"ST_Touches\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2934
+#: reference_measure.xml:2956
 #, no-c-format
 msgid "ST_RelateMatch"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2936
+#: reference_measure.xml:2958
 #, no-c-format
 msgid "Returns true if intersectionMattrixPattern1 implies intersectionMatrixPattern2"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2941
+#: reference_measure.xml:2963
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_RelateMatch</function></funcdef> <paramdef><type>text </type> <parameter>intersectionMatrix</parameter></paramdef> <paramdef><type>text </type> <parameter>intersectionMatrixPattern</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2952
+#: reference_measure.xml:2974
 #, no-c-format
 msgid "Takes intersectionMatrix and intersectionMatrixPattern and Returns true if the intersectionMatrix satisfies the intersectionMatrixPattern. For more information refer to <xref linkend=\"DE-9IM\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2955
+#: reference_measure.xml:2977
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:2961
+#: reference_measure.xml:2983
 #, no-c-format
 msgid ""
       "SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ;\n"
@@ -3655,43 +3722,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2967
+#: reference_measure.xml:2989
 #, no-c-format
 msgid ", <xref linkend=\"ST_Relate\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:2973
+#: reference_measure.xml:2995
 #, no-c-format
 msgid "ST_ShortestLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:2975
+#: reference_measure.xml:2997
 #, no-c-format
 msgid "Returns the 2-dimensional shortest line between two geometries"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:2980
+#: reference_measure.xml:3002
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_ShortestLine</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:2995
+#: reference_measure.xml:3017
 #, no-c-format
 msgid "Returns the 2-dimensional shortest line between two geometries. The function will only return the first shortest line if more than one, that the function finds. If g1 and g2 intersects in just one point the function will return a line with both start and end in that intersection-point. If g1 and g2 are intersecting with more than one point the function will return a line with start and end in the same point but it can be any of the intersecting points. The line returned will alway [...]
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3019
+#: reference_measure.xml:3041
 #, no-c-format
 msgid "Shortest line between point and linestring"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3022
+#: reference_measure.xml:3044
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(\n"
@@ -3706,13 +3773,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3030
+#: reference_measure.xml:3052
 #, no-c-format
 msgid "shortest line between polygon and polygon"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3033
+#: reference_measure.xml:3055
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(\n"
@@ -3726,85 +3793,85 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3045
+#: reference_measure.xml:3067
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"ST_LongestLine\"/>, <xref linkend=\"ST_MaxDistance\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:3051
+#: reference_measure.xml:3073
 #, no-c-format
 msgid "ST_Touches"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:3053
+#: reference_measure.xml:3075
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if the geometries have at least one point in common, but their interiors do not intersect."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:3059
+#: reference_measure.xml:3081
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_Touches</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry </type> <parameter>g2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3074
+#: reference_measure.xml:3096
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if the only points in common between <parameter>g1</parameter> and <parameter>g2</parameter> lie in the union of the boundaries of <parameter>g1</parameter> and <parameter>g2</parameter>. The <function>ST_Touches</function> relation applies to all Area/Area, Line/Line, Line/Area, Point/Area and Point/Line pairs of relationships, but <emphasis>not</emphasis> to the Point/Point pair."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3081
+#: reference_measure.xml:3103
 #, no-c-format
 msgid "In mathematical terms, this predicate is expressed as:"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3091
+#: reference_measure.xml:3113
 #, no-c-format
 msgid "The allowable DE-9IM Intersection Matrices for the two geometries are:"
 msgstr ""
 
 #. Tag: markup
-#: reference_measure.xml:3095
+#: reference_measure.xml:3117
 #, no-c-format
 msgid "FT*******"
 msgstr ""
 
 #. Tag: markup
-#: reference_measure.xml:3099
+#: reference_measure.xml:3121
 #, no-c-format
 msgid "F**T*****"
 msgstr ""
 
 #. Tag: markup
-#: reference_measure.xml:3103
+#: reference_measure.xml:3125
 #, no-c-format
 msgid "F***T****"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3112
+#: reference_measure.xml:3134
 #, no-c-format
 msgid "This function call will automatically include a bounding box comparison that will make use of any indexes that are available on the geometries. To avoid using an index, use <function>_ST_Touches</function> instead."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3118
+#: reference_measure.xml:3140
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.28"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3124
+#: reference_measure.xml:3146
 #, no-c-format
 msgid "The <function>ST_Touches</function> predicate returns <varname>TRUE</varname> in all the following illustrations."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3194
+#: reference_measure.xml:3216
 #, no-c-format
 msgid ""
       "SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(1 1)'::geometry);\n"
@@ -3821,49 +3888,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_measure.xml:3200
+#: reference_measure.xml:3222
 #, no-c-format
 msgid "ST_Within"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_measure.xml:3202
+#: reference_measure.xml:3224
 #, no-c-format
 msgid "Returns true if the geometry A is completely inside geometry B"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_measure.xml:3207
+#: reference_measure.xml:3229
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_Within</function></funcdef> <paramdef><type>geometry </type> <parameter>A</parameter></paramdef> <paramdef><type>geometry </type> <parameter>B</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3222
+#: reference_measure.xml:3244
 #, no-c-format
 msgid "Returns TRUE if geometry A is completely inside geometry B. For this function to make sense, the source geometries must both be of the same coordinate projection, having the same SRID. It is a given that if ST_Within(A,B) is true and ST_Within(B,A) is true, then the two geometries are considered spatially equal."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3237
+#: reference_measure.xml:3259
 #, no-c-format
 msgid "This function call will automatically include a bounding box comparison that will make use of any indexes that are available on the geometries. To avoid index use, use the function _ST_Within."
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3245
+#: reference_measure.xml:3267
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.2 // s2.1.13.3 - a.Relate(b, 'T*F**F***')"
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3248
+#: reference_measure.xml:3270
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.30"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_measure.xml:3253
+#: reference_measure.xml:3275
 #, no-c-format
 msgid ""
       "--a circle within a circle\n"
@@ -3885,7 +3952,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_measure.xml:3264
+#: reference_measure.xml:3286
 #, no-c-format
 msgid ", <xref linkend=\"ST_Equals\"/>, <xref linkend=\"ST_IsValid\"/>"
 msgstr ""
diff --git a/doc/po/templates/reference_misc.xml.pot b/doc/po/templates/reference_misc.xml.pot
index 884d2ce..4a86991 100644
--- a/doc/po/templates/reference_misc.xml.pot
+++ b/doc/po/templates/reference_misc.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -39,7 +39,7 @@ msgid "<funcdef>geometry[] <function>ST_Accum</function></funcdef> <paramdef><ty
 msgstr ""
 
 #. Tag: title
-#: reference_misc.xml:22 reference_misc.xml:64 reference_misc.xml:106 reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:289 reference_misc.xml:343 reference_misc.xml:396 reference_misc.xml:438 reference_misc.xml:488
+#: reference_misc.xml:22 reference_misc.xml:64 reference_misc.xml:106 reference_misc.xml:158 reference_misc.xml:229 reference_misc.xml:285 reference_misc.xml:339 reference_misc.xml:392 reference_misc.xml:434 reference_misc.xml:486
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -51,37 +51,37 @@ msgid "<para>Aggregate. Constructs an array of geometries.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:25 reference_misc.xml:68 reference_misc.xml:109 reference_misc.xml:255 reference_misc.xml:309 reference_misc.xml:355
+#: reference_misc.xml:25 reference_misc.xml:68 reference_misc.xml:109 reference_misc.xml:251 reference_misc.xml:305 reference_misc.xml:351
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:357 reference_misc.xml:447
+#: reference_misc.xml:26 reference_misc.xml:113 reference_misc.xml:353 reference_misc.xml:444
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:27 reference_misc.xml:69 reference_misc.xml:110 reference_misc.xml:183 reference_misc.xml:358 reference_misc.xml:448
+#: reference_misc.xml:27 reference_misc.xml:69 reference_misc.xml:110 reference_misc.xml:183 reference_misc.xml:354 reference_misc.xml:445
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:28 reference_misc.xml:70 reference_misc.xml:111 reference_misc.xml:256 reference_misc.xml:310 reference_misc.xml:359 reference_misc.xml:449
+#: reference_misc.xml:28 reference_misc.xml:70 reference_misc.xml:111 reference_misc.xml:252 reference_misc.xml:306 reference_misc.xml:355 reference_misc.xml:446
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:29 reference_misc.xml:71 reference_misc.xml:112 reference_misc.xml:257 reference_misc.xml:311 reference_misc.xml:360 reference_misc.xml:450
+#: reference_misc.xml:29 reference_misc.xml:71 reference_misc.xml:112 reference_misc.xml:253 reference_misc.xml:307 reference_misc.xml:356 reference_misc.xml:447
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_misc.xml:34 reference_misc.xml:76 reference_misc.xml:118 reference_misc.xml:188 reference_misc.xml:262 reference_misc.xml:316 reference_misc.xml:364 reference_misc.xml:408 reference_misc.xml:455 reference_misc.xml:499
+#: reference_misc.xml:34 reference_misc.xml:76 reference_misc.xml:118 reference_misc.xml:188 reference_misc.xml:258 reference_misc.xml:312 reference_misc.xml:360 reference_misc.xml:404 reference_misc.xml:453 reference_misc.xml:497
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -111,7 +111,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_misc.xml:41 reference_misc.xml:83 reference_misc.xml:125 reference_misc.xml:195 reference_misc.xml:268 reference_misc.xml:322 reference_misc.xml:369 reference_misc.xml:415 reference_misc.xml:462 reference_misc.xml:506
+#: reference_misc.xml:41 reference_misc.xml:83 reference_misc.xml:125 reference_misc.xml:195 reference_misc.xml:264 reference_misc.xml:318 reference_misc.xml:365 reference_misc.xml:411 reference_misc.xml:460 reference_misc.xml:504
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -324,23 +324,17 @@ msgstr ""
 #. Tag: para
 #: reference_misc.xml:248
 #, no-c-format
-msgid "Bounding boxes of all geometries are currently 2-d even if they are 3-dimensional geometries."
-msgstr ""
-
-#. Tag: para
-#: reference_misc.xml:252
-#, no-c-format
 msgid "Availability: 1.5.0 behavior changed to output double precision instead of float4 coordinates."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:263
+#: reference_misc.xml:259
 #, no-c-format
 msgid "Examples below use US National Atlas Equal Area (SRID=2163) which is a meter projection"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:264
+#: reference_misc.xml:260
 #, no-c-format
 msgid ""
       "<!-- TODO: fix results of documentation to reflect new behavior -->\n"
@@ -364,73 +358,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:269
+#: reference_misc.xml:265
 #, no-c-format
 msgid ", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"ST_DWithin\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:275
+#: reference_misc.xml:271
 #, no-c-format
 msgid "ST_Extent"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:276
+#: reference_misc.xml:272
 #, no-c-format
 msgid "an aggregate function that returns the bounding box that bounds rows of geometries."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:281
+#: reference_misc.xml:277
 #, no-c-format
 msgid "<funcdef>box2d <function>ST_Extent</function></funcdef> <paramdef><type>geometry set</type> <parameter>geomfield</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:291
+#: reference_misc.xml:287
 #, no-c-format
 msgid "ST_Extent returns a bounding box that encloses a set of geometries. The ST_Extent function is an \"aggregate\" function in the terminology of SQL. That means that it operates on lists of data, in the same way the SUM() and AVG() functions do."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:294 reference_misc.xml:348
+#: reference_misc.xml:290 reference_misc.xml:344
 #, no-c-format
 msgid "Since it returns a bounding box, the spatial Units are in the units of the spatial reference system in use denoted by the SRID"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:295
+#: reference_misc.xml:291
 #, no-c-format
 msgid "ST_Extent is similar in concept to Oracle Spatial/Locator's SDO_AGGR_MBR"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:297
+#: reference_misc.xml:293
 #, no-c-format
 msgid "Since ST_Extent returns a bounding box, the SRID meta-data is lost. Use ST_SetSRID to force it back into a geometry with SRID meta data. The coordinates are in the units of the spatial ref of the orginal geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:302
+#: reference_misc.xml:298
 #, no-c-format
 msgid "ST_Extent will return boxes with only an x and y component even with (x,y,z) coordinate geometries. To maintain x,y,z use ST_3DExtent instead."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:306
+#: reference_misc.xml:302
 #, no-c-format
 msgid "Availability: 1.4.0"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:317
+#: reference_misc.xml:313
 #, no-c-format
 msgid "Examples below use Massachusetts State Plane ft (SRID=2249)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:318
+#: reference_misc.xml:314
 #, no-c-format
 msgid ""
       "SELECT ST_Extent(the_geom) as bextent FROM sometable;\n"
@@ -461,49 +455,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:323
+#: reference_misc.xml:319
 #, no-c-format
 msgid ", <xref linkend=\"ST_3DExtent\"/>, <xref linkend=\"ST_SetSRID\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:329
+#: reference_misc.xml:325
 #, no-c-format
 msgid "ST_3DExtent"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:330
+#: reference_misc.xml:326
 #, no-c-format
 msgid "an aggregate function that returns the box3D bounding box that bounds rows of geometries."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:335
+#: reference_misc.xml:331
 #, no-c-format
 msgid "<funcdef>box3d <function>ST_3DExtent</function></funcdef> <paramdef><type>geometry set</type> <parameter>geomfield</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:345
+#: reference_misc.xml:341
 #, no-c-format
 msgid "ST_3DExtent returns a box3d (includes Z coordinate) bounding box that encloses a set of geometries. The ST_3DExtent function is an \"aggregate\" function in the terminology of SQL. That means that it operates on lists of data, in the same way the SUM() and AVG() functions do."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:351
+#: reference_misc.xml:347
 #, no-c-format
 msgid "Since ST_3DExtent returns a bounding box, the SRID meta-data is lost. Use ST_SetSRID to force it back into a geometry with SRID meta data. The coordinates are in the units of the spatial ref of the orginal geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:356
+#: reference_misc.xml:352
 #, no-c-format
 msgid "Changed: 2.0.0 In prior versions this used to be called ST_Extent3D"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:365
+#: reference_misc.xml:361
 #, no-c-format
 msgid ""
       "SELECT ST_3DExtent(foo.the_geom) As b3extent\n"
@@ -528,37 +522,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:370
+#: reference_misc.xml:366
 #, no-c-format
 msgid ", <xref linkend=\"ST_Force_3DZ\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:377
+#: reference_misc.xml:373
 #, no-c-format
 msgid "Find_SRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:379
+#: reference_misc.xml:375
 #, no-c-format
-msgid "The syntax is find_srid(<db/schema>, <table>, <column>) and the function returns the integer SRID of the specified column by searching through the GEOMETRY_COLUMNS table."
+msgid "The syntax is find_srid(a_db_schema, a_table, a_column) and the function returns the integer SRID of the specified column by searching through the GEOMETRY_COLUMNS table."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:386
+#: reference_misc.xml:382
 #, no-c-format
 msgid "<funcdef>integer <function>Find_SRID</function></funcdef> <paramdef><type>varchar </type> <parameter>a_schema_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>a_table_name</parameter></paramdef> <paramdef><type>varchar </type> <parameter>a_geomfield_name</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:398
+#: reference_misc.xml:394
 #, no-c-format
 msgid "The syntax is find_srid(<db/schema>, <table>, <column>) and the function returns the integer SRID of the specified column by searching through the GEOMETRY_COLUMNS table. If the geometry column has not been properly added with the AddGeometryColumns() function, this function will not work either."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:410
+#: reference_misc.xml:406
 #, no-c-format
 msgid ""
       "SELECT Find_SRID('public', 'tiger_us_state_2007', 'the_geom_4269');\n"
@@ -568,56 +562,68 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:423
+#: reference_misc.xml:419
 #, no-c-format
-msgid "ST_Mem_Size"
+msgid "ST_MemSize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:425
+#: reference_misc.xml:421
 #, no-c-format
 msgid "<refpurpose>Returns the amount of space (in bytes) the geometry takes.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:430
+#: reference_misc.xml:426
 #, no-c-format
-msgid "<funcdef>integer <function>ST_Mem_Size</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
+msgid "<funcdef>integer <function>ST_MemSize</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:440
+#: reference_misc.xml:436
 #, no-c-format
 msgid "<para>Returns the amount of space (in bytes) the geometry takes.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:441
+#: reference_misc.xml:437
 #, no-c-format
-msgid "This is a nice compliment to PostgreSQL built in functions pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgid "This is a nice compliment to PostgreSQL built in functions pg_column_size, pg_size_pretty, pg_relation_size, pg_total_relation_size."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:442
+#: reference_misc.xml:438
 #, no-c-format
-msgid "pg_relation_size which gives the byte size of a table may return byte size lower than ST_Mem_Size. This is because pg_relation_size does not add toasted table contribution and large geometries are stored in TOAST tables."
+msgid "pg_relation_size which gives the byte size of a table may return byte size lower than ST_MemSize. This is because pg_relation_size does not add toasted table contribution and large geometries are stored in TOAST tables."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:444
+#: reference_misc.xml:440
 #, no-c-format
 msgid "pg_total_relation_size - includes, the table, the toasted tables, and the indexes."
 msgstr ""
 
+#. Tag: para
+#: reference_misc.xml:441
+#, no-c-format
+msgid "pg_column_size returns how much space a geometry would take in a column considering compression, so may be lower than ST_MemSize"
+msgstr ""
+
+#. Tag: para
+#: reference_misc.xml:448
+#, no-c-format
+msgid "Changed: 2.2.0 name changed to ST_MemSize to follow naming convention. In prior versions this function was called ST_Mem_Size, old name deprecated though still available."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_misc.xml:457
+#: reference_misc.xml:455
 #, no-c-format
 msgid ""
       "--Return how much byte space Boston takes up  in our Mass data set\n"
-      "SELECT pg_size_pretty(SUM(ST_Mem_Size(the_geom))) as totgeomsum,\n"
-      "pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN st_mem_size(the_geom) ELSE 0 END)) As bossum,\n"
-      "CAST(SUM(CASE WHEN town = 'BOSTON' THEN st_mem_size(the_geom) ELSE 0 END)*1.00 /\n"
-      "                SUM(st_mem_size(the_geom))*100 As numeric(10,2)) As perbos\n"
+      "SELECT pg_size_pretty(SUM(ST_MemSize(the_geom))) as totgeomsum,\n"
+      "pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 END)) As bossum,\n"
+      "CAST(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 END)*1.00 /\n"
+      "                SUM(ST_MemSize(the_geom))*100 As numeric(10,2)) As perbos\n"
       "FROM towns;\n"
       "\n"
       "totgeomsum        bossum        perbos\n"
@@ -625,14 +631,14 @@ msgid ""
       "1522 kB                30 kB        1.99\n"
       "\n"
       "\n"
-      "SELECT ST_Mem_Size(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 150406)'));\n"
+      "SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 150406)'));\n"
       "\n"
       "---\n"
       "73\n"
       "\n"
       "--What percentage of our table is taken up by just the geometry\n"
-      "SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, sum(ST_Mem_Size(the_geom)) As geomsize,\n"
-      "sum(ST_Mem_Size(the_geom))*1.00/pg_total_relation_size('public.neighborhoods')*100 As pergeom\n"
+      "SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, sum(ST_MemSize(the_geom)) As geomsize,\n"
+      "sum(ST_MemSize(the_geom))*1.00/pg_total_relation_size('public.neighborhoods')*100 As pergeom\n"
       "FROM neighborhoods;\n"
       "fulltable_size geomsize  pergeom\n"
       "------------------------------------------------\n"
@@ -640,37 +646,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_misc.xml:470
+#: reference_misc.xml:468
 #, no-c-format
 msgid "ST_Point_Inside_Circle"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_misc.xml:472
+#: reference_misc.xml:470
 #, no-c-format
 msgid "Is the point geometry insert circle defined by center_x, center_y, radius"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_misc.xml:477
+#: reference_misc.xml:475
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_Point_Inside_Circle</function></funcdef> <paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef> <paramdef><type>float </type> <parameter>center_x</parameter></paramdef> <paramdef><type>float </type> <parameter>center_y</parameter></paramdef> <paramdef><type>float </type> <parameter>radius</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:490
+#: reference_misc.xml:488
 #, no-c-format
 msgid "The syntax for this functions is point_inside_circle(<geometry>,<circle_center_x>,<circle_center_y>,<radius>). Returns the true if the geometry is a point and is inside the circle. Returns false otherwise."
 msgstr ""
 
 #. Tag: para
-#: reference_misc.xml:494
+#: reference_misc.xml:492
 #, no-c-format
 msgid "This only works for points as the name suggests"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_misc.xml:501
+#: reference_misc.xml:499
 #, no-c-format
 msgid ""
       "SELECT ST_Point_Inside_Circle(ST_Point(1,2), 0.5, 2, 3);\n"
diff --git a/doc/po/templates/reference_operator.xml.pot b/doc/po/templates/reference_operator.xml.pot
index c6d3c3b..b6ed9ac 100644
--- a/doc/po/templates/reference_operator.xml.pot
+++ b/doc/po/templates/reference_operator.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -39,7 +39,7 @@ msgid "<funcprototype> <funcdef>boolean <function>&&</function></funcdef
 msgstr ""
 
 #. Tag: title
-#: reference_operator.xml:50 reference_operator.xml:111 reference_operator.xml:176 reference_operator.xml:234 reference_operator.xml:295 reference_operator.xml:353 reference_operator.xml:406 reference_operator.xml:475 reference_operator.xml:546 reference_operator.xml:599 reference_operator.xml:654 reference_operator.xml:712 reference_operator.xml:765 reference_operator.xml:818 reference_operator.xml:883 reference_operator.xml:949
+#: reference_operator.xml:50 reference_operator.xml:111 reference_operator.xml:176 reference_operator.xml:234 reference_operator.xml:295 reference_operator.xml:353 reference_operator.xml:406 reference_operator.xml:475 reference_operator.xml:546 reference_operator.xml:599 reference_operator.xml:654 reference_operator.xml:712 reference_operator.xml:765 reference_operator.xml:818 reference_operator.xml:883 reference_operator.xml:950
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -81,7 +81,7 @@ msgid "&P_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_operator.xml:64 reference_operator.xml:187 reference_operator.xml:248 reference_operator.xml:306 reference_operator.xml:363 reference_operator.xml:416 reference_operator.xml:502 reference_operator.xml:556 reference_operator.xml:611 reference_operator.xml:665 reference_operator.xml:722 reference_operator.xml:775 reference_operator.xml:843 reference_operator.xml:899 reference_operator.xml:963
+#: reference_operator.xml:64 reference_operator.xml:187 reference_operator.xml:248 reference_operator.xml:306 reference_operator.xml:363 reference_operator.xml:416 reference_operator.xml:502 reference_operator.xml:556 reference_operator.xml:611 reference_operator.xml:665 reference_operator.xml:722 reference_operator.xml:775 reference_operator.xml:843 reference_operator.xml:900 reference_operator.xml:964
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -105,7 +105,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_operator.xml:71 reference_operator.xml:139 reference_operator.xml:193 reference_operator.xml:254 reference_operator.xml:312 reference_operator.xml:369 reference_operator.xml:422 reference_operator.xml:508 reference_operator.xml:562 reference_operator.xml:617 reference_operator.xml:671 reference_operator.xml:728 reference_operator.xml:781 reference_operator.xml:848 reference_operator.xml:915 reference_operator.xml:967
+#: reference_operator.xml:71 reference_operator.xml:139 reference_operator.xml:193 reference_operator.xml:254 reference_operator.xml:312 reference_operator.xml:369 reference_operator.xml:422 reference_operator.xml:508 reference_operator.xml:562 reference_operator.xml:617 reference_operator.xml:671 reference_operator.xml:728 reference_operator.xml:781 reference_operator.xml:848 reference_operator.xml:916 reference_operator.xml:968
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -874,7 +874,7 @@ msgid "The <varname><-></varname> operator returns distance between two po
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:888 reference_operator.xml:953
+#: reference_operator.xml:888 reference_operator.xml:954
 #, no-c-format
 msgid "This operand will make use of any indexes that may be available on the geometries. It is different from other operators that use spatial indexes in that the spatial index is only used when the operator is in the ORDER BY clause."
 msgstr ""
@@ -886,13 +886,19 @@ msgid "Index only kicks in if one of the geometries is a constant (not in a subq
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:893 reference_operator.xml:958
+#: reference_operator.xml:892
+#, no-c-format
+msgid "Refer to <ulink url=\"http://workshops.opengeo.org/postgis-intro/knn.html\">OpenGeo workshop: Nearest-Neighbour Searching</ulink> for real live example."
+msgstr ""
+
+#. Tag: para
+#: reference_operator.xml:894 reference_operator.xml:959
 #, no-c-format
 msgid "Availability: 2.0.0 only available for PostgreSQL 9.1+"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:900
+#: reference_operator.xml:901
 #, no-c-format
 msgid ""
       "<![CDATA[SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,edabbr, vaabbr \n"
@@ -915,13 +921,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:901
+#: reference_operator.xml:902
 #, no-c-format
 msgid "Then the KNN raw answer:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:904
+#: reference_operator.xml:905
 #, no-c-format
 msgid ""
       "<![CDATA[SELECT st_distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,edabbr, vaabbr \n"
@@ -944,19 +950,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:905
+#: reference_operator.xml:906
 #, no-c-format
 msgid "Note the misordering in the actual distances and the different entries that actually show up in the top 10."
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:909
+#: reference_operator.xml:910
 #, no-c-format
 msgid "Finally the hybrid:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:912
+#: reference_operator.xml:913
 #, no-c-format
 msgid ""
       "<![CDATA[WITH index_query AS (\n"
@@ -983,43 +989,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:916
+#: reference_operator.xml:917
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_box\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_operator.xml:922
+#: reference_operator.xml:923
 #, no-c-format
 msgid "<#>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_operator.xml:924
+#: reference_operator.xml:925
 #, no-c-format
 msgid "Returns the distance between bounding box of 2 geometries. For point / point checks it's almost the same as distance (though may be different since the bounding box is at floating point accuracy and geometries are double precision). Useful for doing distance ordering and nearest neighbor limits using KNN gist functionality."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_operator.xml:930
+#: reference_operator.xml:931
 #, no-c-format
 msgid "<funcdef>double precision <function><#></function></funcdef> <paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:951
+#: reference_operator.xml:952
 #, no-c-format
 msgid "The <varname><#></varname> KNN GIST operator returns distance between two floating point bounding boxes read from the spatial index if available. Useful for doing nearest neighbor <emphasis role=\"strong\">approximate</emphasis> distance ordering."
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:956
+#: reference_operator.xml:957
 #, no-c-format
 msgid "Index only kicks in if one of the geometries is a constant e.g. ORDER BY (ST_GeomFromText('POINT(1 2)') <#> geom) instead of g1.geom <#>."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_operator.xml:964
+#: reference_operator.xml:965
 #, no-c-format
 msgid ""
       "<![CDATA[SELECT *\n"
@@ -1052,7 +1058,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_operator.xml:968
+#: reference_operator.xml:969
 #, no-c-format
 msgid ", <xref linkend=\"ST_Distance\"/>, <xref linkend=\"geometry_distance_centroid\"/>"
 msgstr ""
diff --git a/doc/po/templates/reference_output.xml.pot b/doc/po/templates/reference_output.xml.pot
index b384c32..9213dc1 100644
--- a/doc/po/templates/reference_output.xml.pot
+++ b/doc/po/templates/reference_output.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-14 21:54+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -39,7 +39,7 @@ msgid "<funcprototype> <funcdef>bytea <function>ST_AsBinary</function></funcdef>
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:35 reference_output.xml:108 reference_output.xml:161 reference_output.xml:233 reference_output.xml:335 reference_output.xml:436 reference_output.xml:492 reference_output.xml:557 reference_output.xml:600 reference_output.xml:702 reference_output.xml:751 reference_output.xml:809
+#: reference_output.xml:35 reference_output.xml:109 reference_output.xml:162 reference_output.xml:238 reference_output.xml:339 reference_output.xml:440 reference_output.xml:496 reference_output.xml:561 reference_output.xml:604 reference_output.xml:707 reference_output.xml:755 reference_output.xml:813 reference_output.xml:879 reference_output.xml:944 reference_output.xml:988
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -51,7 +51,7 @@ msgid "Returns the Well-Known Binary representation of the geometry. There are 2
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:40 reference_output.xml:112
+#: reference_output.xml:40 reference_output.xml:113
 #, no-c-format
 msgid "This is useful in binary cursors to pull data out of the database without converting it to a string representation."
 msgstr ""
@@ -75,7 +75,7 @@ msgid "The default behavior in PostgreSQL 9.0 has been changed to output bytea i
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:55 reference_output.xml:120
+#: reference_output.xml:55 reference_output.xml:121
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was introduced."
 msgstr ""
@@ -93,7 +93,7 @@ msgid "Enhanced: 2.0.0 support for specifying endian with geography was introduc
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:58 reference_output.xml:274 reference_output.xml:379
+#: reference_output.xml:58 reference_output.xml:279 reference_output.xml:383
 #, no-c-format
 msgid "Availability: 1.5.0 geography support was introduced."
 msgstr ""
@@ -105,7 +105,7 @@ msgid "Changed: 2.0.0 Inputs to this function can not be unknown -- must be geom
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:61 reference_output.xml:767
+#: reference_output.xml:61 reference_output.xml:771
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.1"
 msgstr ""
@@ -117,31 +117,31 @@ msgid "&sqlmm_compliant; SQL-MM 3: 5.1.37"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:63 reference_output.xml:122 reference_output.xml:176 reference_output.xml:445 reference_output.xml:716 reference_output.xml:769
+#: reference_output.xml:63 reference_output.xml:123 reference_output.xml:177 reference_output.xml:449 reference_output.xml:721 reference_output.xml:773
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:64 reference_output.xml:123 reference_output.xml:177 reference_output.xml:386 reference_output.xml:659
+#: reference_output.xml:64 reference_output.xml:124 reference_output.xml:178 reference_output.xml:390 reference_output.xml:664
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:65 reference_output.xml:124 reference_output.xml:178 reference_output.xml:387 reference_output.xml:662
+#: reference_output.xml:65 reference_output.xml:125 reference_output.xml:179 reference_output.xml:391 reference_output.xml:667
 #, no-c-format
 msgid "&T_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:66 reference_output.xml:121 reference_output.xml:175 reference_output.xml:276 reference_output.xml:385 reference_output.xml:444 reference_output.xml:519 reference_output.xml:657
+#: reference_output.xml:66 reference_output.xml:122 reference_output.xml:176 reference_output.xml:281 reference_output.xml:389 reference_output.xml:448 reference_output.xml:523 reference_output.xml:662
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:71 reference_output.xml:129 reference_output.xml:183 reference_output.xml:280 reference_output.xml:449 reference_output.xml:523 reference_output.xml:576 reference_output.xml:720 reference_output.xml:774 reference_output.xml:838
+#: reference_output.xml:71 reference_output.xml:130 reference_output.xml:184 reference_output.xml:285 reference_output.xml:453 reference_output.xml:527 reference_output.xml:580 reference_output.xml:725 reference_output.xml:778 reference_output.xml:842 reference_output.xml:896 reference_output.xml:961 reference_output.xml:997
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -182,7 +182,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:79 reference_output.xml:137 reference_output.xml:190 reference_output.xml:405 reference_output.xml:527 reference_output.xml:724 reference_output.xml:781
+#: reference_output.xml:79 reference_output.xml:138 reference_output.xml:191 reference_output.xml:409 reference_output.xml:531 reference_output.xml:729 reference_output.xml:785 reference_output.xml:901 reference_output.xml:966 reference_output.xml:1002
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -190,47 +190,47 @@ msgstr ""
 #. Tag: para
 #: reference_output.xml:80
 #, no-c-format
-msgid ", <xref linkend=\"ST_AsText\"/>,"
+msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsTWKB\"/>, <xref linkend=\"ST_AsText\"/>,"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:89
+#: reference_output.xml:90
 #, no-c-format
 msgid "ST_AsEWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:90
+#: reference_output.xml:91
 #, no-c-format
 msgid "Return the Well-Known Binary (WKB) representation of the geometry with SRID meta data."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:94
+#: reference_output.xml:95
 #, no-c-format
 msgid "<funcprototype> <funcdef>bytea <function>ST_AsEWKB</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsEWKB</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>text </type><parameter>NDR_or_XDR</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:109
+#: reference_output.xml:110
 #, no-c-format
 msgid "Returns the Well-Known Binary representation of the geometry with SRID metadata. There are 2 variants of the function. The first variant takes no endian encoding parameter and defaults to little endian. The second variant takes a second argument denoting the encoding - using little-endian ('NDR') or big-endian ('XDR') encoding."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:115
+#: reference_output.xml:116
 #, no-c-format
 msgid "The WKB spec does not include the SRID. To get the OGC WKB format use ST_AsBinary"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:118
+#: reference_output.xml:119
 #, no-c-format
 msgid "ST_AsEWKB is the reverse of ST_GeomFromEWKB. Use ST_GeomFromEWKB to convert to a postgis geometry from ST_AsEWKB representation."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:131
+#: reference_output.xml:132
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
@@ -250,7 +250,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:132
+#: reference_output.xml:133
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), 'XDR');\n"
@@ -264,61 +264,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:138
+#: reference_output.xml:139
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>, <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:143
+#: reference_output.xml:144
 #, no-c-format
 msgid "ST_AsEWKT"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:144
+#: reference_output.xml:145
 #, no-c-format
 msgid "Return the Well-Known Text (WKT) representation of the geometry with SRID meta data."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:148
+#: reference_output.xml:149
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>ST_AsEWKT</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_AsEWKT</function></funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:163
+#: reference_output.xml:164
 #, no-c-format
 msgid "Returns the Well-Known Text representation of the geometry prefixed with the SRID."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:166
+#: reference_output.xml:167
 #, no-c-format
 msgid "The WKT spec does not include the SRID. To get the OGC WKT format use ST_AsText"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:168 reference_output.xml:759
+#: reference_output.xml:169 reference_output.xml:763
 #, no-c-format
 msgid "WKT format does not maintain precision so to prevent floating truncation, use ST_AsBinary or ST_AsEWKB format for transport."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:172
+#: reference_output.xml:173
 #, no-c-format
 msgid "ST_AsEWKT is the reverse of <xref linkend=\"ST_GeomFromEWKT\"/>. Use <xref linkend=\"ST_GeomFromEWKT\"/> to convert to a postgis geometry from ST_AsEWKT representation."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:174
+#: reference_output.xml:175
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Geography, Polyhedral surfaces, Triangles and TIN was introduced."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:185
+#: reference_output.xml:186
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT('0103000020E61000000100000005000000000000\n"
@@ -340,133 +340,133 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:191
+#: reference_output.xml:192
 #, no-c-format
-msgid "<para>,</para>"
+msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_GeomFromEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:196
+#: reference_output.xml:201
 #, no-c-format
 msgid "ST_AsGeoJSON"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:198
+#: reference_output.xml:203
 #, no-c-format
 msgid "Return the geometry as a GeoJSON element."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:202
+#: reference_output.xml:207
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>ST_AsGeoJSON</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>options=0</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_AsGeoJSON</function></funcdef> <paramdef><type>geography </type> <parameter>geog</param [...]
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:235
+#: reference_output.xml:240
 #, no-c-format
 msgid "Return the geometry as a Geometry Javascript Object Notation (GeoJSON) element. (Cf <ulink url=\"http://geojson.org/geojson-spec.html\">GeoJSON specifications 1.0</ulink>). 2D and 3D Geometries are both supported. GeoJSON only support SFS 1.1 geometry type (no curve support for example)."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:241
+#: reference_output.xml:246
 #, no-c-format
 msgid "The gj_version parameter is the major version of the GeoJSON spec. If specified, must be 1. This represents the spec version of GeoJSON."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:243
+#: reference_output.xml:248
 #, no-c-format
 msgid "The third argument may be used to reduce the maximum number of decimal places used in output (defaults to 15)."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:246
+#: reference_output.xml:251
 #, no-c-format
 msgid "The last 'options' argument could be used to add Bbox or Crs in GeoJSON output:"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:250
+#: reference_output.xml:255
 #, no-c-format
 msgid "0: means no option (default value)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:254
+#: reference_output.xml:259
 #, no-c-format
 msgid "1: GeoJSON Bbox"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:258
+#: reference_output.xml:263
 #, no-c-format
 msgid "2: GeoJSON Short CRS (e.g EPSG:4326)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:262
+#: reference_output.xml:267
 #, no-c-format
 msgid "4: GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:266
+#: reference_output.xml:271
 #, no-c-format
 msgid "Version 1: ST_AsGeoJSON(geom) / precision=15 version=1 options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:267
+#: reference_output.xml:272
 #, no-c-format
 msgid "Version 2: ST_AsGeoJSON(geom, precision) / version=1 options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:268
+#: reference_output.xml:273
 #, no-c-format
 msgid "Version 3: ST_AsGeoJSON(geom, precision, options) / version=1"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:269
+#: reference_output.xml:274
 #, no-c-format
 msgid "Version 4: ST_AsGeoJSON(gj_version, geom) / precision=15 options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:270
+#: reference_output.xml:275
 #, no-c-format
 msgid "Version 5: ST_AsGeoJSON(gj_version, geom, precision) /options=0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:271
+#: reference_output.xml:276
 #, no-c-format
 msgid "Version 6: ST_AsGeoJSON(gj_version, geom, precision,options)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:273
+#: reference_output.xml:278
 #, no-c-format
 msgid "Availability: 1.3.4"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:275
+#: reference_output.xml:280
 #, no-c-format
 msgid "Changed: 2.0.0 support default args and named args."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:281
+#: reference_output.xml:286
 #, no-c-format
 msgid "GeoJSON format is generally more efficient than other formats for use in ajax mapping. One popular javascript client that supports this is Open Layers. Example of its use is <ulink url=\"http://openlayers.org/dev/examples/vector-formats.html\">OpenLayers GeoJSON Example</ulink>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:286
+#: reference_output.xml:291
 #, no-c-format
 msgid ""
       "SELECT ST_AsGeoJSON(the_geom) from fe_edges limit 1;\n"
@@ -485,121 +485,121 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:291
+#: reference_output.xml:296
 #, no-c-format
 msgid "ST_AsGML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:292
+#: reference_output.xml:297
 #, no-c-format
 msgid "Return the geometry as a GML version 2 or 3 element."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:296
+#: reference_output.xml:301
 #, no-c-format
-msgid "<funcprototype> <funcdef>text <function>ST_AsGML</function></funcdef> <paramdef><type>integer </type> <parameter>version</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>options=0</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>nprefix=null</paramete [...]
+msgid "<funcprototype> <funcdef>text <function>ST_AsGML</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>options=0</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_AsGML</function></funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></p [...]
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:337
+#: reference_output.xml:341
 #, no-c-format
 msgid "Return the geometry as a Geography Markup Language (GML) element. The version parameter, if specified, may be either 2 or 3. If no version parameter is specified then the default is assumed to be 2. The precision argument may be used to reduce the maximum number of decimal places (<varname>maxdecimaldigits</varname>) used in output (defaults to 15)."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:342
+#: reference_output.xml:346
 #, no-c-format
 msgid "GML 2 refer to 2.1.2 version, GML 3 to 3.1.1 version"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:343
+#: reference_output.xml:347
 #, no-c-format
 msgid "The 'options' argument is a bitfield. It could be used to define CRS output type in GML output, and to declare data as lat/lon:"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:347
+#: reference_output.xml:351
 #, no-c-format
 msgid "0: GML Short CRS (e.g EPSG:4326), default value"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:351
+#: reference_output.xml:355
 #, no-c-format
 msgid "1: GML Long CRS (e.g urn:ogc:def:crs:EPSG::4326)"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:355
+#: reference_output.xml:359
 #, no-c-format
 msgid "2: For GML 3 only, remove srsDimension attribute from output."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:359
+#: reference_output.xml:363
 #, no-c-format
 msgid "4: For GML 3 only, use <LineString> rather than <Curve> tag for lines."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:363
+#: reference_output.xml:367
 #, no-c-format
 msgid "16: Declare that datas are lat/lon (e.g srid=4326). Default is to assume that data are planars. This option is useful for GML 3.1.1 output only, related to axis order. So if you set it, it will swap the coordinates so order is lat lon instead of database lon lat."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:369
+#: reference_output.xml:373
 #, no-c-format
 msgid "32: Output the box of the geometry (envelope)."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:374
+#: reference_output.xml:378
 #, no-c-format
 msgid "The 'namespace prefix' argument may be used to specify a custom namespace prefix or no prefix (if empty). If null or omitted 'gml' prefix is used"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:378
+#: reference_output.xml:382
 #, no-c-format
 msgid "Availability: 1.3.2"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:380
+#: reference_output.xml:384
 #, no-c-format
 msgid "Enhanced: 2.0.0 prefix support was introduced. Option 4 for GML3 was introduced to allow using LineString instead of Curve tag for lines. GML3 Support for Polyhedral surfaces and TINS was introduced. Option 32 was introduced to output the box."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:381
+#: reference_output.xml:385
 #, no-c-format
 msgid "Changed: 2.0.0 use default named args"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:382
+#: reference_output.xml:386
 #, no-c-format
 msgid "Enhanced: 2.1.0 id support was introduced, for GML 3."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:384
+#: reference_output.xml:388
 #, no-c-format
 msgid "Only version 3+ of ST_AsGML supports Polyhedral Surfaces and TINS."
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:391
+#: reference_output.xml:395
 #, no-c-format
 msgid "Examples: Version 2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:392
+#: reference_output.xml:396
 #, no-c-format
 msgid ""
       "<![CDATA[SELECT ST_AsGML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
@@ -609,13 +609,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:395
+#: reference_output.xml:399
 #, no-c-format
 msgid "Examples: Version 3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:396
+#: reference_output.xml:400
 #, no-c-format
 msgid ""
       "-- Flip coordinates and output extended EPSG (16 | 1)--\n"
@@ -626,7 +626,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:397
+#: reference_output.xml:401
 #, no-c-format
 msgid ""
       "-- Output the envelope (32) --\n"
@@ -640,7 +640,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:399
+#: reference_output.xml:403
 #, no-c-format
 msgid ""
       "-- Output the envelope (32) , reverse (lat lon instead of lon lat) (16), long srs (1)= 32 | 16 | 1 = 49 --\n"
@@ -654,7 +654,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:401
+#: reference_output.xml:405
 #, no-c-format
 msgid ""
       "-- Polyhedral Example --\n"
@@ -713,37 +713,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:414
+#: reference_output.xml:418
 #, no-c-format
 msgid "ST_AsHEXEWKB"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:416
+#: reference_output.xml:420
 #, no-c-format
 msgid "Returns a Geometry in HEXEWKB format (as text) using either little-endian (NDR) or big-endian (XDR) encoding."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:421
+#: reference_output.xml:425
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>ST_AsHEXEWKB</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>text </type> <parameter>NDRorXDR</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_AsHEXEWKB</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:438
+#: reference_output.xml:442
 #, no-c-format
 msgid "Returns a Geometry in HEXEWKB format (as text) using either little-endian (NDR) or big-endian (XDR) encoding. If no encoding is specified, then NDR is used."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:442
+#: reference_output.xml:446
 #, no-c-format
 msgid "Availability: 1.2.2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:450
+#: reference_output.xml:454
 #, no-c-format
 msgid ""
       "SELECT ST_AsHEXEWKB(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
@@ -761,73 +761,73 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:456
+#: reference_output.xml:460
 #, no-c-format
 msgid "ST_AsKML"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:458
+#: reference_output.xml:462
 #, no-c-format
 msgid "Return the geometry as a KML element. Several variants. Default version=2, default precision=15"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:462
+#: reference_output.xml:466
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_AsKML</function></funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>maxdecimaldigits=15</par [...]
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:494
+#: reference_output.xml:498
 #, no-c-format
 msgid "Return the geometry as a Keyhole Markup Language (KML) element. There are several variants of this function. maximum number of decimal places used in output (defaults to 15), version default to 2 and default namespace is no prefix."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:498
+#: reference_output.xml:502
 #, no-c-format
 msgid "Version 1: ST_AsKML(geom_or_geog, maxdecimaldigits) / version=2 / maxdecimaldigits=15"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:499
+#: reference_output.xml:503
 #, no-c-format
 msgid "Version 2: ST_AsKML(version, geom_or_geog, maxdecimaldigits, nprefix) maxdecimaldigits=15 / nprefix=NULL"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:502
+#: reference_output.xml:506
 #, no-c-format
 msgid "Requires PostGIS be compiled with Proj support. Use <xref linkend=\"PostGIS_Full_Version\"/> to confirm you have proj support compiled in."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:506
+#: reference_output.xml:510
 #, no-c-format
 msgid "Availability: 1.2.2 - later variants that include version param came in 1.3.2"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:509
+#: reference_output.xml:513
 #, no-c-format
 msgid "Enhanced: 2.0.0 - Add prefix namespace. Default is no prefix"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:512
+#: reference_output.xml:516
 #, no-c-format
 msgid "Changed: 2.0.0 - uses default args and supports named args"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:516
+#: reference_output.xml:520
 #, no-c-format
 msgid "AsKML output will not work with geometries that do not have an SRID"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:524
+#: reference_output.xml:528
 #, no-c-format
 msgid ""
       "<![CDATA[SELECT ST_AsKML(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
@@ -843,49 +843,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:529
+#: reference_output.xml:533
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsGML\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:534
+#: reference_output.xml:538
 #, no-c-format
 msgid "ST_AsSVG"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:536
+#: reference_output.xml:540
 #, no-c-format
 msgid "Returns a Geometry in SVG path data given a geometry or geography object."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:540
+#: reference_output.xml:544
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>rel=0</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_AsSVG</function></funcdef> <paramdef><type>geography </type> <parameter>geog</parameter></param [...]
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:559
+#: reference_output.xml:563
 #, no-c-format
 msgid "Return the geometry as Scalar Vector Graphics (SVG) path data. Use 1 as second argument to have the path data implemented in terms of relative moves, the default (or 0) uses absolute moves. Third argument may be used to reduce the maximum number of decimal digits used in output (defaults to 15). Point geometries will be rendered as cx/cy when 'rel' arg is 0, x/y when 'rel' is 1. Multipoint geometries are delimited by commas (\",\"), GeometryCollection geometries are delimited by s [...]
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:569
+#: reference_output.xml:573
 #, no-c-format
 msgid "Availability: 1.2.2. Availability: 1.4.0 Changed in PostGIS 1.4.0 to include L command in absolute path to conform to <ulink url=\"http://www.w3.org/TR/SVG/paths.html#PathDataBNF\">http://www.w3.org/TR/SVG/paths.html#PathDataBNF</ulink>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:572
+#: reference_output.xml:576
 #, no-c-format
 msgid "Changed: 2.0.0 to use default args and support named args"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:577
+#: reference_output.xml:581
 #, no-c-format
 msgid ""
       "SELECT ST_AsSVG(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));\n"
@@ -896,187 +896,193 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:583
+#: reference_output.xml:587
 #, no-c-format
 msgid "ST_AsX3D"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:585
+#: reference_output.xml:589
 #, no-c-format
 msgid "Returns a Geometry in X3D xml node element format: ISO-IEC-19776-1.2-X3DEncodings-XML"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_output.xml:590
+#: reference_output.xml:594
 #, no-c-format
 msgid "<funcdef>text <function>ST_AsX3D</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>maxdecimaldigits=15</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>options=0</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:602
+#: reference_output.xml:606
 #, no-c-format
-msgid "Returns a geometry as an X3D xml formatted node element <ulink url=\"http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/EncodingOfNodes.html\">http://web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/EncodingOfNodes.html</ulink>. If <varname>maxdecimaldigits</varname> (precision) is not specified then defaults to 15."
+msgid "Returns a geometry as an X3D xml formatted node element <ulink url=\"http://www.web3d.org/standards/number/19776-1\">http://www.web3d.org/standards/number/19776-1</ulink>. If <varname>maxdecimaldigits</varname> (precision) is not specified then defaults to 15."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:604
+#: reference_output.xml:608
 #, no-c-format
 msgid "There are various options for translating PostGIS geometries to X3D since X3D geometry types don't map directly to PostGIS geometry types and some newer X3D types that might be better mappings we ahve avoided since most rendering tools don't currently support them. These are the mappings we have settled on. Feel free to post a bug ticket if you have thoughts on the idea or ways we can allow people to denote their preferred mappings."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:606
+#: reference_output.xml:610
 #, no-c-format
 msgid "Below is how we currently map PostGIS 2D/3D types to X3D types"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:613
+#: reference_output.xml:617
 #, no-c-format
 msgid "PostGIS Type"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:614
+#: reference_output.xml:618
 #, no-c-format
 msgid "2D X3D Type"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:615
+#: reference_output.xml:619
 #, no-c-format
 msgid "3D X3D Type"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:620
+#: reference_output.xml:624
 #, no-c-format
 msgid "LINESTRING"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:621 reference_output.xml:626
+#: reference_output.xml:625 reference_output.xml:630
 #, no-c-format
 msgid "not yet implemented - will be PolyLine2D"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:622
+#: reference_output.xml:626
 #, no-c-format
 msgid "LineSet"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:625
+#: reference_output.xml:629
 #, no-c-format
 msgid "MULTILINESTRING"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:627
+#: reference_output.xml:631
 #, no-c-format
 msgid "IndexedLineSet"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:630
+#: reference_output.xml:634
 #, no-c-format
 msgid "MULTIPOINT"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:631
+#: reference_output.xml:635
 #, no-c-format
 msgid "Polypoint2D"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:632
+#: reference_output.xml:636
 #, no-c-format
 msgid "PointSet"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:635
+#: reference_output.xml:639
 #, no-c-format
 msgid "POINT"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:636 reference_output.xml:637
+#: reference_output.xml:640 reference_output.xml:641
 #, no-c-format
 msgid "outputs the space delimited coordinates"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:640
+#: reference_output.xml:644
 #, no-c-format
 msgid "(MULTI) POLYGON, POLYHEDRALSURFACE"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:641
+#: reference_output.xml:645
 #, no-c-format
 msgid "Invalid X3D markup"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:642
+#: reference_output.xml:646
 #, no-c-format
 msgid "IndexedFaceSet (inner rings currently output as another faceset)"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:645
+#: reference_output.xml:649
 #, no-c-format
 msgid "<entry>TIN</entry>"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:646
+#: reference_output.xml:650
 #, no-c-format
 msgid "TriangleSet2D (Not Yet Implemented)"
 msgstr ""
 
 #. Tag: entry
-#: reference_output.xml:647
+#: reference_output.xml:651
 #, no-c-format
 msgid "IndexedTriangleSet"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:652
+#: reference_output.xml:656
 #, no-c-format
 msgid "2D geometry support not yet complete. Inner rings currently just drawn as separate polygons. We are working on these."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:653
+#: reference_output.xml:657
 #, no-c-format
 msgid "Lots of advancements happening in 3D space particularly with <ulink url=\"http://www.web3d.org/x3d/wiki/index.php/X3D_and_HTML5#Goals:_X3D_and_HTML5\">X3D Integration with HTML5</ulink>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:654
+#: reference_output.xml:658
 #, no-c-format
 msgid "There is also a nice open source X3D viewer you can use to view rendered geometries. Free Wrl <ulink url=\"http://freewrl.sourceforge.net/\">http://freewrl.sourceforge.net/</ulink> binaries available for Mac, Linux, and Windows. Use the FreeWRL_Launcher packaged to view the geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:655
+#: reference_output.xml:659
+#, no-c-format
+msgid "Also check out <ulink url=\"https://github.com/robe2/postgis_x3d_viewer\">PostGIS minimalist X3D viewer</ulink> that utilizes this function and <ulink url=\"http://www.x3dom.org/\">x3dDom html/js open source toolkit</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:660
 #, no-c-format
 msgid "Availability: 2.0.0: ISO-IEC-19776-1.2-X3DEncodings-XML"
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:667
+#: reference_output.xml:672
 #, no-c-format
 msgid "Example: Create a fully functional X3D document - This will generate a cube that is viewable in FreeWrl and other X3D viewers."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:668
+#: reference_output.xml:673
 #, no-c-format
 msgid ""
       "<![CDATA[SELECT '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
@@ -1118,13 +1124,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:671
+#: reference_output.xml:676
 #, no-c-format
 msgid "Example: An Octagon elevated 3 Units and decimal precision of 6"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:672
+#: reference_output.xml:677
 #, no-c-format
 msgid ""
       "SELECT ST_AsX3D(\n"
@@ -1142,13 +1148,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:675
+#: reference_output.xml:680
 #, no-c-format
 msgid "Example: TIN"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:676
+#: reference_output.xml:681
 #, no-c-format
 msgid ""
       "<![CDATA[SELECT ST_AsX3D(ST_GeomFromEWKT('TIN (((\n"
@@ -1170,13 +1176,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_output.xml:679
+#: reference_output.xml:684
 #, no-c-format
 msgid "Example: Closed multilinestring (the boundary of a polygon with holes)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:680
+#: reference_output.xml:685
 #, no-c-format
 msgid ""
       "<![CDATA[SELECT ST_AsX3D(\n"
@@ -1192,55 +1198,55 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:686
+#: reference_output.xml:691
 #, no-c-format
 msgid "ST_GeoHash"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:688
+#: reference_output.xml:693
 #, no-c-format
-msgid "Return a GeoHash representation (geohash.org) of the geometry."
+msgid "Return a GeoHash representation of the geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_output.xml:693
+#: reference_output.xml:698
 #, no-c-format
 msgid "<funcdef>text <function>ST_GeoHash</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>maxchars=full_precision_of_point</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:704
+#: reference_output.xml:709
 #, no-c-format
-msgid "Return a GeoHash representation (geohash.org) of the geometry. A GeoHash encodes a point into a text form that is sortable and searchable based on prefixing. A shorter GeoHash is a less precise representation of a point. It can also be thought of as a box, that contains the actual point."
+msgid "Return a GeoHash representation (<ulink url=\"http://en.wikipedia.org/wiki/Geohash\">http://en.wikipedia.org/wiki/Geohash</ulink>) of the geometry. A GeoHash encodes a point into a text form that is sortable and searchable based on prefixing. A shorter GeoHash is a less precise representation of a point. It can also be thought of as a box, that contains the actual point."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:706
+#: reference_output.xml:711
 #, no-c-format
 msgid "If no <varname>maxchars</varname> is specficified ST_GeoHash returns a GeoHash based on full precision of the input geometry type. Points return a GeoHash with 20 characters of precision (about enough to hold the full double precision of the input). Other types return a GeoHash with a variable amount of precision, based on the size of the feature. Larger features are represented with less precision, smaller features with more precision. The idea is that the box implied by the GeoH [...]
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:708
+#: reference_output.xml:713
 #, no-c-format
 msgid "If <varname>maxchars</varname> is specified ST_GeoHash returns a GeoHash with at most that many characters so a possibly lower precision representation of the input geometry. For non-points, the starting point of the calculation is the center of the bounding box of the geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:710
+#: reference_output.xml:715
 #, no-c-format
 msgid "Availability: 1.4.0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:713
+#: reference_output.xml:718
 #, no-c-format
 msgid "ST_GeoHash will not work with geometries that are not in geographic (lon/lat) coordinates."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:721
+#: reference_output.xml:726
 #, no-c-format
 msgid ""
       "<![CDATA[SELECT ST_GeoHash(ST_SetSRID(ST_MakePoint(-126,48),4326));\n"
@@ -1258,55 +1264,55 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:733
+#: reference_output.xml:737
 #, no-c-format
 msgid "ST_AsText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:734
+#: reference_output.xml:738
 #, no-c-format
 msgid "Return the Well-Known Text (WKT) representation of the geometry/geography without SRID metadata."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:738
+#: reference_output.xml:742
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>ST_AsText</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_AsText</function></funcdef> <paramdef><type>geography </type> <parameter>g1</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:753
+#: reference_output.xml:757
 #, no-c-format
 msgid "Returns the Well-Known Text representation of the geometry/geography."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:756
+#: reference_output.xml:760
 #, no-c-format
 msgid "The WKT spec does not include the SRID. To get the SRID as part of the data, use the non-standard PostGIS <xref linkend=\"ST_AsEWKT\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:763
+#: reference_output.xml:767
 #, no-c-format
 msgid "ST_AsText is the reverse of <xref linkend=\"ST_GeomFromText\"/>. Use <xref linkend=\"ST_GeomFromText\"/> to convert to a postgis geometry from ST_AsText representation."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:766
+#: reference_output.xml:770
 #, no-c-format
 msgid "Availability: 1.5 - support for geography was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:768
+#: reference_output.xml:772
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.25"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:776
+#: reference_output.xml:780
 #, no-c-format
 msgid ""
       "SELECT ST_AsText('01030000000100000005000000000000000000\n"
@@ -1321,73 +1327,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:783
+#: reference_output.xml:787
 #, no-c-format
 msgid ", <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_output.xml:790
+#: reference_output.xml:794
 #, no-c-format
 msgid "ST_AsLatLonText"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_output.xml:791
+#: reference_output.xml:795
 #, no-c-format
 msgid "Return the Degrees, Minutes, Seconds representation of the given point."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_output.xml:795
+#: reference_output.xml:799
 #, no-c-format
 msgid "<funcprototype> <funcdef>text <function>ST_AsLatLonText</function></funcdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>text <function>ST_AsLatLonText</function></funcdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> <paramdef><type>text </type> <parameter>format</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:811
+#: reference_output.xml:815
 #, no-c-format
 msgid "Returns the Degrees, Minutes, Seconds representation of the point."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:814
+#: reference_output.xml:818
 #, no-c-format
 msgid "It is assumed the point is in a lat/lon projection. The X (lon) and Y (lat) coordinates are normalized in the output to the \"normal\" range (-180 to +180 for lon, -90 to +90 for lat)."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:817
+#: reference_output.xml:821
 #, no-c-format
 msgid "The text parameter is a format string containing the format for the resulting text, similar to a date format string. Valid tokens are \"D\" for degrees, \"M\" for minutes, \"S\" for seconds, and \"C\" for cardinal direction (NSEW). DMS tokens may be repeated to indicate desired width and precision (\"SSS.SSSS\" means \" 1.0023\")."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:822
+#: reference_output.xml:826
 #, no-c-format
 msgid "\"M\", \"S\", and \"C\" are optional. If \"C\" is omitted, degrees are shown with a \"-\" sign if south or west. If \"S\" is omitted, minutes will be shown as decimal with as many digits of precision as you specify. If \"M\" is also omitted, degrees are shown as decimal with as many digits precision as you specify."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:827
+#: reference_output.xml:831
 #, no-c-format
 msgid "If the format string is omitted (or zero-length) a default format will be used."
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:833
+#: reference_output.xml:837
 #, no-c-format
 msgid "Availability: 2.0"
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:839
+#: reference_output.xml:843
 #, no-c-format
 msgid "Default format."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:840
+#: reference_output.xml:844
 #, no-c-format
 msgid ""
       "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)'));\n"
@@ -1397,13 +1403,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:841
+#: reference_output.xml:845
 #, no-c-format
 msgid "Providing a format (same as the default)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:842
+#: reference_output.xml:846
 #, no-c-format
 msgid ""
       "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"C'));\n"
@@ -1413,13 +1419,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:843
+#: reference_output.xml:847
 #, no-c-format
 msgid "Characters other than D, M, S, C and . are just passed through."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:844
+#: reference_output.xml:848
 #, no-c-format
 msgid ""
       "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D degrees, M minutes, S seconds to the C'));\n"
@@ -1429,13 +1435,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:845
+#: reference_output.xml:849
 #, no-c-format
 msgid "Signed degrees instead of cardinal directions."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:846
+#: reference_output.xml:850
 #, no-c-format
 msgid ""
       "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS\"'));\n"
@@ -1445,13 +1451,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:847
+#: reference_output.xml:851
 #, no-c-format
 msgid "Decimal degrees."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:848
+#: reference_output.xml:852
 #, no-c-format
 msgid ""
       "SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees C'));\n"
@@ -1461,13 +1467,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_output.xml:849
+#: reference_output.xml:853
 #, no-c-format
 msgid "Excessively large values are normalized."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_output.xml:850
+#: reference_output.xml:854
 #, no-c-format
 msgid ""
       "SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));\n"
@@ -1476,3 +1482,155 @@ msgid ""
       " 72°19'29.928\"S 57°45'56.757\"E"
 msgstr ""
 
+#. Tag: refname
+#: reference_output.xml:862
+#, no-c-format
+msgid "ST_AsTWKB"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:863
+#, no-c-format
+msgid "Returns the geometry as TWKB, Tiny WKB"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:868
+#, no-c-format
+msgid "<funcdef>bytea <function>ST_AsTWKB</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> <parameter>decimaldigits</parameter></paramdef> <paramdef><type>int8 </type> <parameter>geometryID=null</parameter></paramdef> <paramdef><type>boolean </type> <parameter>include sizes=false</parameter></paramdef> <paramdef><type>boolean </type> <parameter>include bounding boxes=false</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:880 reference_output.xml:946
+#, no-c-format
+msgid "Returns the geometry in TWKB format. TWKB is a new compressed binary format."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:881 reference_output.xml:948
+#, no-c-format
+msgid "The second parameter is an integer used to define the number of coordinate decimals in the output."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:882 reference_output.xml:949
+#, no-c-format
+msgid "The third parameter is optional. It is used to give each TWKB-geometry an unique ID"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:883 reference_output.xml:950
+#, no-c-format
+msgid "The fourth parameter is optional. If it is set to true, the size of the geometry is included"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:885
+#, no-c-format
+msgid "TWKB is still a moving target. The format is described <ulink url=\"https://github.com/TWKB/Specification\">https://github.com/TWKB/Specification</ulink> , and code for building a client can be found <ulink url=\"https://github.com/TWKB/twkb.js\">https://github.com/TWKB/twkb.js</ulink>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:888
+#, no-c-format
+msgid "TWKB doesn't make any difference of Z and M. So PointM and PointZ will give the same twkb representation."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:891 reference_output.xml:956 reference_output.xml:993
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:897
+#, no-c-format
+msgid ""
+      "SELECT ST_AsTWKB('LINESTRING(1 1,5 5)'::geometry,0,1);\n"
+      "                 st_astwkb                  \n"
+      "--------------------------------------------\n"
+      "\\x0142020202020808"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:902 reference_output.xml:967
+#, no-c-format
+msgid ", <xref linkend=\"ST_AsBinary\"/>, <xref linkend=\"ST_AsEWKB\"/>, <xref linkend=\"ST_AsEWKT\"/>, <xref linkend=\"ST_GeomFromText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:908
+#, no-c-format
+msgid "ST_AsTWKBAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:909
+#, no-c-format
+msgid "Aggregates the geometries and returns as TWKB"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_output.xml:913
+#, no-c-format
+msgid "<funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> <parameter>decimaldigits</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsTWKBAgg</function></funcdef> <paramdef><type>geometry set</type> <parameter>g1</parameter></paramdef> <paramdef><type>integer </type> <parameter>decimaldigits</parameter></paramdef> <paramdef><t [...]
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:947
+#, no-c-format
+msgid "This is the aggregate version of ST_AsTWKB. It aggregates and returns the geometry in TWKB-format. In the resulting TWKB-geometry each individual ID of the input geometries is stored."
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:952
+#, no-c-format
+msgid "TWKB is still a moving target. The format is described <ulink url=\"https://github.com/nicklasaven/TWKB\">https://github.com/nicklasaven/TWKB</ulink> , and code for building a client can be found <ulink url=\"https://github.com/nicklasaven/twkb_web\">https://github.com/nicklasaven/twkb_web</ulink>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:962
+#, no-c-format
+msgid ""
+      "SELECT ST_AsTWKBAgg(geom,0,id) FROM\n"
+      "(SELECT 'LINESTRING(1 1,5 5)'::geometry geom, 1 AS id\n"
+      "UNION ALL\n"
+      "SELECT 'LINESTRING(6 5, 1 7)'::geometry AS geom, 2 AS id) foo;\n"
+      "                               st_astwkbagg                                \n"
+      "----------------------------------------------------------------------------\n"
+      "\\x015602020202020808040202000904"
+msgstr ""
+
+#. Tag: refname
+#: reference_output.xml:973
+#, no-c-format
+msgid "ST_AsEncodedPolyline"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_output.xml:974
+#, no-c-format
+msgid "Returns an Encoded Polyline from a LineString geometry."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_output.xml:979
+#, no-c-format
+msgid "<funcdef>text <function>ST_AsEncodedPolyline</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>precision=5</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_output.xml:990
+#, no-c-format
+msgid "Returns the geometry as an Encoded Polyline."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_output.xml:998
+#, no-c-format
+msgid ""
+      "ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)'));\n"
+      "--result--\n"
+      "|_p~iF~ps|U_ulLnnqC_mqNvxq`@"
+msgstr ""
+
diff --git a/doc/po/templates/reference_processing.xml.pot b/doc/po/templates/reference_processing.xml.pot
index dd4f6a3..8fafb10 100644
--- a/doc/po/templates/reference_processing.xml.pot
+++ b/doc/po/templates/reference_processing.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -39,7 +39,7 @@ msgid "<funcprototype> <funcdef>geometry <function>ST_Buffer</function></funcdef
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:47 reference_processing.xml:221 reference_processing.xml:307 reference_processing.xml:373 reference_processing.xml:522 reference_processing.xml:590 reference_processing.xml:638 reference_processing.xml:736 reference_processing.xml:816 reference_processing.xml:874 reference_processing.xml:942 reference_processing.xml:989 reference_processing.xml:1041 reference_processing.xml:1093 reference_processing.xml:1133 reference_processing.xml:1192 reference_processing.x [...]
+#: reference_processing.xml:47 reference_processing.xml:221 reference_processing.xml:300 reference_processing.xml:355 reference_processing.xml:421 reference_processing.xml:570 reference_processing.xml:638 reference_processing.xml:686 reference_processing.xml:785 reference_processing.xml:865 reference_processing.xml:923 reference_processing.xml:992 reference_processing.xml:1039 reference_processing.xml:1091 reference_processing.xml:1156 reference_processing.xml:1198 reference_processing.x [...]
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -87,7 +87,7 @@ msgid "The optional third parameter (currently only applies to geometry) can eit
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:66 reference_processing.xml:1427
+#: reference_processing.xml:66 reference_processing.xml:1492
 #, no-c-format
 msgid "'quad_segs=#' : number of segments used to approximate a quarter circle (defaults to 8)."
 msgstr ""
@@ -129,13 +129,13 @@ msgid "This function ignores the third dimension (z) and will always give a 2-d
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:84 reference_processing.xml:1444 reference_processing.xml:1732 reference_processing.xml:1775 reference_processing.xml:2032
+#: reference_processing.xml:84 reference_processing.xml:309 reference_processing.xml:1509 reference_processing.xml:1839 reference_processing.xml:2097
 #, no-c-format
 msgid "Performed by the GEOS module."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:85 reference_processing.xml:541 reference_processing.xml:747 reference_processing.xml:1063 reference_processing.xml:1930 reference_processing.xml:2041
+#: reference_processing.xml:85 reference_processing.xml:589 reference_processing.xml:796 reference_processing.xml:1116 reference_processing.xml:1995 reference_processing.xml:2106
 #, no-c-format
 msgid "&sfs_compliant; s2.1.1.3"
 msgstr ""
@@ -153,7 +153,7 @@ msgid "People often make the mistake of using this function to try to do radius
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:93 reference_processing.xml:238 reference_processing.xml:343 reference_processing.xml:411 reference_processing.xml:547 reference_processing.xml:604 reference_processing.xml:754 reference_processing.xml:957 reference_processing.xml:1067 reference_processing.xml:1104 reference_processing.xml:1208 reference_processing.xml:1256 reference_processing.xml:1367 reference_processing.xml:1453 reference_processing.xml:1690 reference_processing.xml:1737 reference_processi [...]
+#: reference_processing.xml:93 reference_processing.xml:238 reference_processing.xml:317 reference_processing.xml:391 reference_processing.xml:459 reference_processing.xml:595 reference_processing.xml:652 reference_processing.xml:803 reference_processing.xml:1007 reference_processing.xml:1120 reference_processing.xml:1273 reference_processing.xml:1321 reference_processing.xml:1432 reference_processing.xml:1518 reference_processing.xml:1755 reference_processing.xml:1801 reference_processi [...]
 #, no-c-format
 msgid "Examples"
 msgstr ""
@@ -315,7 +315,7 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:197 reference_processing.xml:272 reference_processing.xml:350 reference_processing.xml:500 reference_processing.xml:563 reference_processing.xml:611 reference_processing.xml:711 reference_processing.xml:794 reference_processing.xml:853 reference_processing.xml:920 reference_processing.xml:964 reference_processing.xml:1071 reference_processing.xml:1111 reference_processing.xml:1165 reference_processing.xml:1215 reference_processing.xml:1269 reference_processing [...]
+#: reference_processing.xml:197 reference_processing.xml:272 reference_processing.xml:321 reference_processing.xml:398 reference_processing.xml:548 reference_processing.xml:611 reference_processing.xml:659 reference_processing.xml:760 reference_processing.xml:843 reference_processing.xml:902 reference_processing.xml:970 reference_processing.xml:1014 reference_processing.xml:1134 reference_processing.xml:1176 reference_processing.xml:1230 reference_processing.xml:1280 reference_processing [...]
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -357,7 +357,7 @@ msgid "This function will assume all inner geometries represent holes"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:231 reference_processing.xml:1310
+#: reference_processing.xml:231 reference_processing.xml:1375
 #, no-c-format
 msgid "Input linework must be correctly noded for this function to work properly"
 msgstr ""
@@ -420,73 +420,123 @@ msgid ", <xref linkend=\"ST_MakePolygon\"/>, <xref linkend=\"ST_BdPolyFromText\"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:284
+#: reference_processing.xml:285
+#, no-c-format
+msgid "ST_ClipByBox2D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_processing.xml:286
+#, no-c-format
+msgid "Returns the portion of a geometry falling within a rectangle."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_processing.xml:291
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_ClipByBox2D</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> <paramdef><type>box2d</type> <parameter>box</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:302
+#, no-c-format
+msgid "Clips a geometry by a 2D box in a fast but possibly dirty way. The output geometry is not guaranteed to be valid (self-intersections for a polygon may be introduced). Topologically invalid input geometries do not result in exceptions being thrown."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:310
+#, no-c-format
+msgid "Requires GEOS 3.5.0+"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:312
+#, no-c-format
+msgid "Availability: 2.2.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:318
+#, no-c-format
+msgid ""
+      "-- Rely on implicit cast from geometry to box2d for the second parameter\n"
+      "SELECT ST_ClipByBox2D(the_geom, ST_MakeEnvelope(0,0,10,10)) FROM mytab;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:322
+#, no-c-format
+msgid ", <xref linkend=\"ST_MakeBox2D\"/>, <xref linkend=\"ST_MakeEnvelope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_processing.xml:332
 #, no-c-format
 msgid "ST_Collect"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:285
+#: reference_processing.xml:333
 #, no-c-format
 msgid "Return a specified ST_Geometry value from a collection of other geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:289
+#: reference_processing.xml:337
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> <paramdef><type>geometry set</type> <parameter>g1field</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> <paramdef><type>geometry</type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> <parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_Collect</function></funcdef> <paramd [...]
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:308
+#: reference_processing.xml:356
 #, no-c-format
 msgid "Output type can be a MULTI* or a GEOMETRYCOLLECTION. Comes in 2 variants. Variant 1 collects 2 geometries. Variant 2 is an aggregate function that takes a set of geometries and collects them into a single ST_Geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:312
+#: reference_processing.xml:360
 #, no-c-format
 msgid "Aggregate version: This function returns a GEOMETRYCOLLECTION or a MULTI object from a set of geometries. The ST_Collect() function is an \"aggregate\" function in the terminology of PostgreSQL. That means that it operates on rows of data, in the same way the SUM() and AVG() functions do. For example, \"SELECT ST_Collect(GEOM) FROM GEOMTABLE GROUP BY ATTRCOLUMN\" will return a separate GEOMETRYCOLLECTION for each distinct value of ATTRCOLUMN."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:320
+#: reference_processing.xml:368
 #, no-c-format
 msgid "Non-Aggregate version: This function returns a geometry being a collection of two input geometries. Output type can be a MULTI* or a GEOMETRYCOLLECTION."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:324
+#: reference_processing.xml:372
 #, no-c-format
 msgid "ST_Collect and ST_Union are often interchangeable. ST_Collect is in general orders of magnitude faster than ST_Union because it does not try to dissolve boundaries or validate that a constructed MultiPolgon doesn't have overlapping regions. It merely rolls up single geometries into MULTI and MULTI or mixed geometry types into Geometry Collections. Unfortunately geometry collections are not well-supported by GIS tools. To prevent ST_Collect from returning a Geometry Collection when [...]
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:335
+#: reference_processing.xml:383
 #, no-c-format
 msgid "Availability: 1.4.0 - ST_Collect(geomarray) was introduced. ST_Collect was enhanced to handle more geometries faster."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:336 reference_processing.xml:543 reference_processing.xml:598 reference_processing.xml:650 reference_processing.xml:840 reference_processing.xml:894 reference_processing.xml:952 reference_processing.xml:992 reference_processing.xml:1098 reference_processing.xml:1160 reference_processing.xml:1203 reference_processing.xml:1357 reference_processing.xml:1567 reference_processing.xml:1682 reference_processing.xml:2101
+#: reference_processing.xml:384 reference_processing.xml:591 reference_processing.xml:646 reference_processing.xml:698 reference_processing.xml:889 reference_processing.xml:944 reference_processing.xml:1002 reference_processing.xml:1042 reference_processing.xml:1161 reference_processing.xml:1225 reference_processing.xml:1268 reference_processing.xml:1422 reference_processing.xml:1632 reference_processing.xml:1747 reference_processing.xml:2166
 #, no-c-format
 msgid "&Z_support;"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:337
+#: reference_processing.xml:385
 #, no-c-format
 msgid "&curve_support; This method supports Circular Strings and Curves, but will never return a MULTICURVE or MULTI as one would expect and PostGIS does not currently support those."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:344
+#: reference_processing.xml:392
 #, no-c-format
 msgid "Aggregate example (<ulink url=\"http://postgis.refractions.net/pipermail/postgis-users/2008-June/020331.html\">http://postgis.refractions.net/pipermail/postgis-users/2008-June/020331.html</ulink>)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:345
+#: reference_processing.xml:393
 #, no-c-format
 msgid ""
       "SELECT stusps,\n"
@@ -498,13 +548,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:346 reference_processing.xml:2051
+#: reference_processing.xml:394 reference_processing.xml:2116
 #, no-c-format
 msgid "Non-Aggregate example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:347
+#: reference_processing.xml:395
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Collect(ST_GeomFromText('POINT(1 2)'),\n"
@@ -549,91 +599,91 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:351
+#: reference_processing.xml:399
 #, no-c-format
 msgid ", <xref linkend=\"ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:356
+#: reference_processing.xml:404
 #, no-c-format
 msgid "ST_ConcaveHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:357
+#: reference_processing.xml:405
 #, no-c-format
 msgid "The concave hull of a geometry represents a possibly concave geometry that encloses all geometries within the set. You can think of it as shrink wrapping."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:363
+#: reference_processing.xml:411
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_ConcaveHull</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>float </type> <parameter>target_percent</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>allow_holes=false</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:374
+#: reference_processing.xml:422
 #, no-c-format
 msgid "The concave hull of a geometry represents a possibly concave geometry that encloses all geometries within the set. Defaults to false for allowing polygons with holes. The result is never higher than a single polygon."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:378
+#: reference_processing.xml:426
 #, no-c-format
 msgid "The target_percent is the target percent of area of convex hull the PostGIS solution will try to approach before giving up or exiting. One can think of the concave hull as the geometry you get by vacuum sealing a set of geometries. The target_percent of 1 will give you the same answer as the convex hull. A target_percent between 0 and 0.99 will give you something that should have a smaller area than the convex hull. This is different from a convex hull which is more like wrapping  [...]
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:383
+#: reference_processing.xml:431
 #, no-c-format
 msgid "It is usually used with MULTI and Geometry Collections. Although it is not an aggregate - you can use it in conjunction with ST_Collect or ST_Union to get the concave hull of a set of points/linestring/polygons ST_ConcaveHull(ST_Collect(somepointfield), 0.80)."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:388
+#: reference_processing.xml:436
 #, no-c-format
 msgid "It is much slower to compute than convex hull but encloses the geometry better and is also useful for image recognition."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:391 reference_processing.xml:539 reference_processing.xml:743 reference_processing.xml:1059 reference_processing.xml:1926
+#: reference_processing.xml:439 reference_processing.xml:587 reference_processing.xml:792 reference_processing.xml:1111 reference_processing.xml:1991
 #, no-c-format
 msgid "Performed by the GEOS module"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:392
+#: reference_processing.xml:440
 #, no-c-format
 msgid "Note - If you are using with points, linestrings, or geometry collections use ST_Collect. If you are using with polygons, use ST_Union since it may fail with invalid geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:395
+#: reference_processing.xml:443
 #, no-c-format
 msgid "Note - The smaller you make the target percent, the longer it takes to process the concave hull and more likely to run into topological exceptions. Also the more floating points and number of points you accrue. First try a 0.99 which does a first hop, is usually very fast, sometimes as fast as computing the convex hull, and usually gives much better than 99% of shrink since it almost always overshoots. Second hope of 0.98 it slower, others get slower usually quadratically. To redu [...]
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:400
+#: reference_processing.xml:448
 #, no-c-format
 msgid "More real world examples and brief explanation of the technique are shown <ulink url=\"http://www.bostongis.com/postgis_concavehull.snippet\">http://www.bostongis.com/postgis_concavehull.snippet</ulink>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:403
+#: reference_processing.xml:451
 #, no-c-format
 msgid "Also check out Simon Greener's article on demonstrating ConcaveHull introduced in Oracle 11G R2. <ulink url=\"http://www.spatialdbadvisor.com/oracle_spatial_tips_tricks/172/concave-hull-geometries-in-oracle-11gr2\">http://www.spatialdbadvisor.com/oracle_spatial_tips_tricks/172/concave-hull-geometries-in-oracle-11gr2</ulink>. The solution we get at 0.75 target percent of convex hull is similar to the shape Simon gets with Oracle SDO_CONCAVEHULL_BOUNDARY."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:407 reference_processing.xml:994 reference_processing.xml:1565 reference_processing.xml:1819
+#: reference_processing.xml:455 reference_processing.xml:1044 reference_processing.xml:1630 reference_processing.xml:1883
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:412
+#: reference_processing.xml:460
 #, no-c-format
 msgid ""
       "--Get estimate of infected area based on point observations\n"
@@ -644,13 +694,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:422
+#: reference_processing.xml:470
 #, no-c-format
 msgid "ST_ConcaveHull of 2 polygons encased in target 100% shrink concave hull"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:425
+#: reference_processing.xml:473
 #, no-c-format
 msgid ""
       "-- geometries overlaid with concavehull \n"
@@ -665,13 +715,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:432
+#: reference_processing.xml:480
 #, no-c-format
 msgid "-- geometries overlaid with concavehull at target 90% of convex hull area"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:436
+#: reference_processing.xml:484
 #, no-c-format
 msgid ""
       "-- geometries overlaid with concavehull at target 90% shrink\n"
@@ -685,13 +735,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:445
+#: reference_processing.xml:493
 #, no-c-format
 msgid "L Shape points overlaid with convex hull"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:448
+#: reference_processing.xml:496
 #, no-c-format
 msgid ""
       "-- this produces a table of 42 points that form an L shape\n"
@@ -708,13 +758,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:455
+#: reference_processing.xml:503
 #, no-c-format
 msgid "ST_ConcaveHull of L points at target 99% of convex hull"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:458
+#: reference_processing.xml:506
 #, no-c-format
 msgid ""
       "SELECT ST_ConcaveHull(ST_Collect(geom), 0.99)\n"
@@ -722,13 +772,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:467
+#: reference_processing.xml:515
 #, no-c-format
 msgid "Concave Hull of L points at target 80% convex hull area"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:470
+#: reference_processing.xml:518
 #, no-c-format
 msgid ""
       "-- Concave Hull L shape points\n"
@@ -738,19 +788,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:479
+#: reference_processing.xml:527
 #, no-c-format
 msgid "multilinestring overlaid with Convex hull"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:487
+#: reference_processing.xml:535
 #, no-c-format
 msgid "multilinestring with overlaid with Concave hull of linestrings at 99% target -- first hop"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:491
+#: reference_processing.xml:539
 #, no-c-format
 msgid ""
       "SELECT ST_ConcaveHull(ST_GeomFromText('MULTILINESTRING((106 164,30 112,74 70,82 112,130 94,\n"
@@ -764,61 +814,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:501
+#: reference_processing.xml:549
 #, no-c-format
 msgid ", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend=\"ST_SimplifyPreserveTopology\"/>, <xref linkend=\"ST_SnapToGrid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:507
+#: reference_processing.xml:555
 #, no-c-format
 msgid "ST_ConvexHull"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:508
+#: reference_processing.xml:556
 #, no-c-format
 msgid "<refpurpose>The convex hull of a geometry represents the minimum convex geometry that encloses all geometries within the set.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:514
+#: reference_processing.xml:562
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_ConvexHull</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:523
+#: reference_processing.xml:571
 #, no-c-format
 msgid "<para>The convex hull of a geometry represents the minimum convex geometry that encloses all geometries within the set.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:526
+#: reference_processing.xml:574
 #, no-c-format
 msgid "One can think of the convex hull as the geometry you get by wrapping an elastic band around a set of geometries. This is different from a concave hull which is analogous to shrink-wrapping your geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:530
+#: reference_processing.xml:578
 #, no-c-format
 msgid "It is usually used with MULTI and Geometry Collections. Although it is not an aggregate - you can use it in conjunction with ST_Collect to get the convex hull of a set of points. ST_ConvexHull(ST_Collect(somepointfield))."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:535
+#: reference_processing.xml:583
 #, no-c-format
 msgid "It is often used to determine an affected area based on a set of point observations."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:542
+#: reference_processing.xml:590
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.16"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:548
+#: reference_processing.xml:596
 #, no-c-format
 msgid ""
       "--Get estimate of infected area based on point observations\n"
@@ -829,13 +879,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:556
+#: reference_processing.xml:604
 #, no-c-format
 msgid "Convex Hull of a MultiLinestring and a MultiPoint seen together with the MultiLinestring and MultiPoint"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:559
+#: reference_processing.xml:607
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_ConvexHull(\n"
@@ -848,67 +898,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:564
+#: reference_processing.xml:612
 #, no-c-format
 msgid ", <xref linkend=\"ST_ConcaveHull\"/>, <xref linkend=\"ST_MinimumBoundingCircle\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:570
+#: reference_processing.xml:618
 #, no-c-format
 msgid "ST_CurveToLine"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:572
+#: reference_processing.xml:620
 #, no-c-format
 msgid "Converts a CIRCULARSTRING/CURVEDPOLYGON to a LINESTRING/POLYGON"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:576
+#: reference_processing.xml:624
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_CurveToLine</function></funcdef> <paramdef><type>geometry</type> <parameter>curveGeom</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_CurveToLine</function></funcdef> <paramdef><type>geometry</type> <parameter>curveGeom</parameter></paramdef> <paramdef><type>integer</type> <parameter>segments_per_qtr_circle</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:592
+#: reference_processing.xml:640
 #, no-c-format
 msgid "Converst a CIRCULAR STRING to regular LINESTRING or CURVEPOLYGON to POLYGON. Useful for outputting to devices that can't support CIRCULARSTRING geometry types"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:593
+#: reference_processing.xml:641
 #, no-c-format
 msgid "Converts a given geometry to a linear geometry. Each curved geometry or segment is converted into a linear approximation using the default value of 32 segments per quarter circle"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:595 reference_processing.xml:1097
+#: reference_processing.xml:643 reference_processing.xml:1160
 #, no-c-format
 msgid "Availability: 1.2.2?"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:596
+#: reference_processing.xml:644
 #, no-c-format
 msgid "&sfs_compliant;"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:597
+#: reference_processing.xml:645
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 7.1.7"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:599 reference_processing.xml:837 reference_processing.xml:891 reference_processing.xml:991 reference_processing.xml:1099
+#: reference_processing.xml:647 reference_processing.xml:886 reference_processing.xml:941 reference_processing.xml:1041 reference_processing.xml:1162
 #, no-c-format
 msgid "&curve_support;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:606
+#: reference_processing.xml:654
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_CurveToLine(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 150406)')));\n"
@@ -969,49 +1019,55 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:619
+#: reference_processing.xml:667
 #, no-c-format
 msgid "ST_DelaunayTriangles"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:621
+#: reference_processing.xml:669
 #, no-c-format
 msgid "Return a Delaunay triangulation around the given input points."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:628
+#: reference_processing.xml:676
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_DelaunayTriangles</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef> <paramdef><type>float </type> <parameter>tolerance</parameter></paramdef> <paramdef><type>int4 </type> <parameter>flags</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:640
+#: reference_processing.xml:688
 #, no-c-format
-msgid "Return a <ulink url=\"http://en.wikipedia.org/wiki/Delaunay_triangulation\">Delaunay triangulation</ulink> around the vertices of the input geometry. Output is a COLLECTION of polygons (for flags=0) or a MULTILINESTRING (for flags=1). The tolerance, if any, is used to snap input vertices togheter."
+msgid "Return a <ulink url=\"http://en.wikipedia.org/wiki/Delaunay_triangulation\">Delaunay triangulation</ulink> around the vertices of the input geometry. Output is a COLLECTION of polygons (for flags=0) or a MULTILINESTRING (for flags=1) or TIN (for flags=2). The tolerance, if any, is used to snap input vertices togheter."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:649
+#: reference_processing.xml:697
 #, no-c-format
 msgid "Availability: 2.1.0 - requires GEOS >= 3.4.0."
 msgstr ""
 
+#. Tag: para
+#: reference_processing.xml:699 reference_processing.xml:888 reference_processing.xml:943 reference_processing.xml:1046 reference_processing.xml:1750
+#, no-c-format
+msgid "&T_support;"
+msgstr ""
+
 #. Tag: title
-#: reference_processing.xml:654
+#: reference_processing.xml:703
 #, no-c-format
 msgid "2D Examples"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:663
+#: reference_processing.xml:712
 #, no-c-format
 msgid "Original polygons"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:666
+#: reference_processing.xml:715
 #, no-c-format
 msgid ""
       "-- our original geometry --\n"
@@ -1022,13 +1078,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:674
+#: reference_processing.xml:723
 #, no-c-format
 msgid "ST_DelaunayTriangles of 2 polygons: delaunay triangle polygons each triangle themed in different color"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:677
+#: reference_processing.xml:726
 #, no-c-format
 msgid ""
       "-- geometries overlaid multilinestring triangles\n"
@@ -1042,13 +1098,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:684
+#: reference_processing.xml:733
 #, no-c-format
 msgid "-- delaunay triangles as multilinestring"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:687
+#: reference_processing.xml:736
 #, no-c-format
 msgid ""
       "SELECT \n"
@@ -1061,13 +1117,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:695
+#: reference_processing.xml:744
 #, no-c-format
 msgid "-- delaunay triangles of 45 points as 55 triangle polygons"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:698
+#: reference_processing.xml:747
 #, no-c-format
 msgid ""
       "-- this produces a table of 42 points that form an L shape\n"
@@ -1095,13 +1151,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:707
+#: reference_processing.xml:756
 #, no-c-format
 msgid "3D Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:708
+#: reference_processing.xml:757
 #, no-c-format
 msgid ""
       "-- 3D multipoint --\n"
@@ -1115,73 +1171,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:712 reference_processing.xml:1323
+#: reference_processing.xml:761 reference_processing.xml:1388
 #, no-c-format
 msgid ", <xref linkend=\"ST_Dump\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:719
+#: reference_processing.xml:768
 #, no-c-format
 msgid "ST_Difference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:721
+#: reference_processing.xml:770
 #, no-c-format
 msgid "Returns a geometry that represents that part of geometry A that does not intersect with geometry B."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:727
+#: reference_processing.xml:776
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Difference</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:738
+#: reference_processing.xml:787
 #, no-c-format
 msgid "Returns a geometry that represents that part of geometry A that does not intersect with geometry B. One can think of this as GeometryA - ST_Intersection(A,B). If A is completely contained in B then an empty geometry collection is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:741
+#: reference_processing.xml:790
 #, no-c-format
 msgid "Note - order matters. B - A will always return a portion of B"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:745 reference_processing.xml:1928
+#: reference_processing.xml:794 reference_processing.xml:1993
 #, no-c-format
 msgid "Do not call with a GeometryCollection as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:748
+#: reference_processing.xml:797
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.20"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:749 reference_processing.xml:1932
+#: reference_processing.xml:798 reference_processing.xml:1997
 #, no-c-format
 msgid "&Z_support; However it seems to only consider x y when doing the difference and tacks back on the Z-Index"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:766
+#: reference_processing.xml:815
 #, no-c-format
 msgid "The original linestrings shown together."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:778
+#: reference_processing.xml:827
 #, no-c-format
 msgid "The difference of the two linestrings"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:787
+#: reference_processing.xml:836
 #, no-c-format
 msgid ""
       "--Safe for 2d. This is same geometries as what is shown for st_symdifference\n"
@@ -1198,7 +1254,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:789
+#: reference_processing.xml:838
 #, no-c-format
 msgid ""
       "--When used in 3d doesn't quite do the right thing\n"
@@ -1209,73 +1265,67 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:802
+#: reference_processing.xml:851
 #, no-c-format
 msgid "ST_Dump"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:803
+#: reference_processing.xml:852
 #, no-c-format
 msgid "Returns a set of geometry_dump (geom,path) rows, that make up a geometry g1."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:808
+#: reference_processing.xml:857
 #, no-c-format
 msgid "<funcdef>geometry_dump[] <function>ST_Dump</function></funcdef> <paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:817
+#: reference_processing.xml:866
 #, no-c-format
 msgid "This is a set-returning function (SRF). It returns a set of geometry_dump rows, formed by a geometry (geom) and an array of integers (path). When the input geometry is a simple type (POINT,LINESTRING,POLYGON) a single record will be returned with an empty path array and the input geometry as geom. When the input geometry is a collection or multi it will return a record for each of the collection components, and the path will express the position of the component inside the collection."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:826
+#: reference_processing.xml:875
 #, no-c-format
 msgid "ST_Dump is useful for expanding geometries. It is the reverse of a GROUP BY in that it creates new rows. For example it can be use to expand MULTIPOLYGONS into POLYGONS."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:830 reference_processing.xml:889
+#: reference_processing.xml:879 reference_processing.xml:939
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:831
+#: reference_processing.xml:880
 #, no-c-format
 msgid "Availability: PostGIS 1.0.0RC1. Requires PostgreSQL 7.3 or higher."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:833
+#: reference_processing.xml:882
 #, no-c-format
 msgid "Prior to 1.3.4, this function crashes if used with geometries that contain CURVES. This is fixed in 1.3.4+"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:838 reference_processing.xml:892 reference_processing.xml:995 reference_processing.xml:1566 reference_processing.xml:1684
+#: reference_processing.xml:887 reference_processing.xml:942 reference_processing.xml:1045 reference_processing.xml:1631 reference_processing.xml:1749
 #, no-c-format
 msgid "&P_support;"
 msgstr ""
 
-#. Tag: para
-#: reference_processing.xml:839 reference_processing.xml:893 reference_processing.xml:996 reference_processing.xml:1685
-#, no-c-format
-msgid "&T_support;"
-msgstr ""
-
 #. Tag: title
-#: reference_processing.xml:844
+#: reference_processing.xml:893
 #, no-c-format
 msgid "Standard Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:845
+#: reference_processing.xml:894
 #, no-c-format
 msgid ""
       "SELECT sometable.field1, sometable.field1,\n"
@@ -1295,13 +1345,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:847 reference_processing.xml:914
+#: reference_processing.xml:896 reference_processing.xml:964
 #, no-c-format
 msgid "Polyhedral Surfaces, TIN and Triangle Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:848
+#: reference_processing.xml:897
 #, no-c-format
 msgid ""
       "-- Polyhedral surface example\n"
@@ -1324,7 +1374,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:850
+#: reference_processing.xml:899
 #, no-c-format
 msgid ""
       "-- TIN --                \n"
@@ -1352,61 +1402,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:854
+#: reference_processing.xml:903
 #, no-c-format
 msgid ", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_GeometryN\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:860
+#: reference_processing.xml:909
 #, no-c-format
 msgid "ST_DumpPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:861
+#: reference_processing.xml:910
 #, no-c-format
 msgid "Returns a set of geometry_dump (geom,path) rows of all points that make up a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:866
+#: reference_processing.xml:915
 #, no-c-format
 msgid "<funcdef>geometry_dump[]<function>ST_DumpPoints</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:875
+#: reference_processing.xml:924
 #, no-c-format
 msgid "This set-returning function (SRF) returns a set of <varname>geometry_dump</varname> rows formed by a geometry (<varname>geom</varname>) and an array of integers (<varname>path</varname>)."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:878
+#: reference_processing.xml:927
 #, no-c-format
 msgid "The <parameter>geom</parameter> component of <varname>geometry_dump</varname> are all the <varname>POINT</varname>s that make up the supplied geometry"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:881
+#: reference_processing.xml:930
 #, no-c-format
 msgid "The <parameter>path</parameter> component of <varname>geometry_dump</varname> (an <varname>integer[]</varname>) is an index reference enumerating the <varname>POINT</varname>s of the supplied geometry. For example, if a <varname>LINESTRING</varname> is supplied, a path of <varname>{i}</varname> is returned where <varname>i</varname> is the <varname>nth</varname> coordinate in the <varname>LINESTRING</varname>. If a <varname>POLYGON</varname> is supplied, a path of <varname>{i,j}</ [...]
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:890
+#: reference_processing.xml:938
+#, no-c-format
+msgid "Enhanced: 2.1.0 Faster speed. Reimplemented as native-C."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:940
 #, no-c-format
 msgid "Availability: 1.5.0"
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:897
+#: reference_processing.xml:947
 #, no-c-format
 msgid "Classic Explode a Table of LineStrings into nodes"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:898
+#: reference_processing.xml:948
 #, no-c-format
 msgid ""
       "SELECT edge_id, (dp).path[1] As index, ST_AsText((dp).geom) As wktnode\n"
@@ -1427,13 +1483,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:901
+#: reference_processing.xml:951
 #, no-c-format
 msgid "Standard Geometry Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:911
+#: reference_processing.xml:961
 #, no-c-format
 msgid ""
       "SELECT path, ST_AsText(geom) \n"
@@ -1491,7 +1547,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:915
+#: reference_processing.xml:965
 #, no-c-format
 msgid ""
       "-- Polyhedral surface cube --                \n"
@@ -1540,7 +1596,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:916
+#: reference_processing.xml:966
 #, no-c-format
 msgid ""
       "-- Triangle --                \n"
@@ -1564,7 +1620,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:917
+#: reference_processing.xml:967
 #, no-c-format
 msgid ""
       "-- TIN --                \n"
@@ -1599,49 +1655,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:921
+#: reference_processing.xml:971
 #, no-c-format
 msgid ", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_DumpRings\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:926
+#: reference_processing.xml:976
 #, no-c-format
 msgid "ST_DumpRings"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:928
+#: reference_processing.xml:978
 #, no-c-format
 msgid "Returns a set of <varname>geometry_dump</varname> rows, representing the exterior and interior rings of a polygon."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:934
+#: reference_processing.xml:984
 #, no-c-format
 msgid "<funcdef>geometry_dump[] <function>ST_DumpRings</function></funcdef> <paramdef><type>geometry </type> <parameter>a_polygon</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:944
+#: reference_processing.xml:994
 #, no-c-format
 msgid "This is a set-returning function (SRF). It returns a set of <varname>geometry_dump</varname> rows, defined as an <varname>integer[]</varname> and a <varname>geometry</varname>, aliased \"path\" and \"geom\" respectively. The \"path\" field holds the polygon ring index containing a single integer: 0 for the shell, >0 for holes. The \"geom\" field contains the corresponding ring as a polygon."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:950
+#: reference_processing.xml:1000
 #, no-c-format
 msgid "Availability: PostGIS 1.1.3. Requires PostgreSQL 7.3 or higher."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:951
+#: reference_processing.xml:1001
 #, no-c-format
 msgid "This only works for POLYGON geometries. It will not work for MULTIPOLYGONS"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:959
+#: reference_processing.xml:1009
 #, no-c-format
 msgid ""
       "SELECT sometable.field1, sometable.field1,\n"
@@ -1667,49 +1723,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:966
+#: reference_processing.xml:1016
 #, no-c-format
 msgid ", <xref linkend=\"PostGIS_Geometry_DumpFunctions\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_ExteriorRing\"/>, <xref linkend=\"ST_InteriorRingN\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:972
+#: reference_processing.xml:1022
 #, no-c-format
 msgid "ST_FlipCoordinates"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:973
+#: reference_processing.xml:1023
 #, no-c-format
 msgid "Returns a version of the given geometry with X and Y axis flipped. Useful for people who have built latitude/longitude features and need to fix them."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:981
+#: reference_processing.xml:1031
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_FlipCoordinates</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:990
+#: reference_processing.xml:1040
 #, no-c-format
 msgid "Returns a version of the given geometry with X and Y axis flipped."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:993
+#: reference_processing.xml:1043
 #, no-c-format
 msgid "&M_support;"
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:1000
+#: reference_processing.xml:1050
 #, no-c-format
 msgid "Example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1001
+#: reference_processing.xml:1051
 #, no-c-format
 msgid ""
       "<![CDATA[\n"
@@ -1721,73 +1777,85 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1008
+#: reference_processing.xml:1058
 #, no-c-format
 msgid "ST_Intersection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1010
+#: reference_processing.xml:1060
 #, no-c-format
 msgid "(T) Returns a geometry that represents the shared portion of geomA and geomB. The geography implementation does a transform to geometry to do the intersection and then transform back to WGS84."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:1015
+#: reference_processing.xml:1065
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_Intersection</function></funcdef> <paramdef> <type>geometry</type> <parameter>geomA</parameter> </paramdef> <paramdef> <type>geometry</type> <parameter>geomB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>geography <function>ST_Intersection</function></funcdef> <paramdef> <type>geography</type> <parameter>geogA</parameter> </paramdef> <paramdef> <type>geography</type> <parameter>geogB</parameter> </paramdef> </funcp [...]
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1042
+#: reference_processing.xml:1092
 #, no-c-format
 msgid "Returns a geometry that represents the point set intersection of the Geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1045
+#: reference_processing.xml:1095
 #, no-c-format
 msgid "In other words - that portion of geometry A and geometry B that is shared between the two geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1048
+#: reference_processing.xml:1098
 #, no-c-format
 msgid "If the geometries do not share any space (are disjoint), then an empty geometry collection is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1050
+#: reference_processing.xml:1100
 #, no-c-format
 msgid "ST_Intersection in conjunction with ST_Intersects is very useful for clipping geometries such as in bounding box, buffer, region queries where you only want to return that portion of a geometry that sits in a country or region of interest."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1053
+#: reference_processing.xml:1103
 #, no-c-format
 msgid "Geography: For geography this is really a thin wrapper around the geometry implementation. It first determines the best SRID that fits the bounding box of the 2 geography objects (if geography objects are within one half zone UTM but not same UTM will pick one of those) (favoring UTM or Lambert Azimuthal Equal Area (LAEA) north/south pole, and falling back on mercator in worst case scenario) and then intersection in that best fit planar spatial ref and retransforms back to WGS84 g [...]
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1056
+#: reference_processing.xml:1106
 #, no-c-format
 msgid "Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1061
+#: reference_processing.xml:1109
+#, no-c-format
+msgid "If working with 3D geometries, you may want to use SFGCAL based <xref linkend=\"ST_3DIntersection\"/> which does a proper 3D intersection for 3D geometries. Although this function works with Z-coordinate, it does an averaging of Z-Coordinate values when <code>postgis.backend=geos</code>. <code>postgis.backend=sfcgal</code>, it will return a 2D geometry regardless ignoring the Z-Coordinate. Refer to <xref linkend=\"postgis_backend\"/> for details."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1112
+#, no-c-format
+msgid "&sfcgal_enhanced;"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1114
 #, no-c-format
 msgid "Availability: 1.5 support for geography data type was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1064
+#: reference_processing.xml:1117
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.18"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1068
+#: reference_processing.xml:1121
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry));\n"
@@ -1827,38 +1895,90 @@ msgid ""
       "        WHERE Not ST_IsEmpty(ST_Buffer(ST_Intersection(country.the_geom, poly.the_geom),0.0));"
 msgstr ""
 
+#. Tag: title
+#: reference_processing.xml:1125
+#, no-c-format
+msgid "Examples: 2.5Dish"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1126
+#, no-c-format
+msgid "Geos is the default backend if not set. Note this is not a true intersection, compare to the same example using <xref linkend=\"ST_3DIntersection\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1127
+#, no-c-format
+msgid ""
+      "set postgis.backend=geos; \n"
+      "select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+      "from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 10)') AS linestring\n"
+      " CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') AS polygon;\n"
+      "\n"
+      "               st_astext\n"
+      "---------------------------------------\n"
+      " LINESTRING Z (1 1 8,0.5 0.5 8,0 0 10)"
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1129
+#, no-c-format
+msgid "If your PostGIS is compiled with sfcgal support, have option of using sfcgal, but note if basically cases down both geometries to 2D before doing intersection and returns the ST_Force2D equivalent result which is a 2D geometry"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_processing.xml:1131
+#, no-c-format
+msgid ""
+      "set postgis.backend=sfcgal; \n"
+      "select ST_AsText(ST_Intersection(linestring, polygon)) As wkt\n"
+      "from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 10)') AS linestring\n"
+      " CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') AS polygon;\n"
+      "\n"
+      "                     wkt\n"
+      "----------------------------------------------\n"
+      " MULTILINESTRING((0.5 0.5,0 0),(1 1,0.5 0.5))"
+msgstr ""
+
 #. Tag: para
-#: reference_processing.xml:1072
+#: reference_processing.xml:1135
 #, no-c-format
-msgid ", <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend=\"ST_Multi\"/>"
+msgid ", <xref linkend=\"ST_Difference\"/>, <xref linkend=\"ST_Dimension\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_Force2D\"/>, <xref linkend=\"ST_SymDifference\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend=\"ST_Multi\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1078
+#: reference_processing.xml:1141
 #, no-c-format
 msgid "ST_LineToCurve"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1080
+#: reference_processing.xml:1143
 #, no-c-format
 msgid "Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1085
+#: reference_processing.xml:1148
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_LineToCurve</function></funcdef> <paramdef><type>geometry </type> <parameter>geomANoncircular</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1095
+#: reference_processing.xml:1158
 #, no-c-format
 msgid "Converts plain LINESTRING/POLYGONS to CIRCULAR STRINGs and Curved Polygons. Note much fewer points are needed to describe the curved equivalent."
 msgstr ""
 
+#. Tag: title
+#: reference_processing.xml:1167
+#, no-c-format
+msgid "Examples: 2D"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_processing.xml:1106
+#: reference_processing.xml:1169
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_LineToCurve(foo.the_geom)) As curvedastext,ST_AsText(foo.the_geom) As non_curvedastext\n"
@@ -1883,151 +2003,151 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1119
+#: reference_processing.xml:1184
 #, no-c-format
 msgid "ST_MakeValid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1120
+#: reference_processing.xml:1185
 #, no-c-format
-msgid "Attempts to make an invalid geometry valid w/out loosing vertices."
+msgid "Attempts to make an invalid geometry valid without losing vertices."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1125
+#: reference_processing.xml:1190
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MakeValid</function></funcdef> <paramdef><type>geometry</type> <parameter>input</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1134
+#: reference_processing.xml:1199
 #, no-c-format
-msgid "The function attempts to create a valid representation of a given invalid geometry without loosing any of the input vertices. Already-valid geometries are returned w/out further intervention."
+msgid "The function attempts to create a valid representation of a given invalid geometry without losing any of the input vertices. Already-valid geometries are returned without further intervention."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1140
+#: reference_processing.xml:1205
 #, no-c-format
 msgid "Supported inputs are: POINTS, MULTIPOINTS, LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS and GEOMETRYCOLLECTIONS containing any mix of them."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1146
+#: reference_processing.xml:1211
 #, no-c-format
 msgid "In case of full or partial dimensional collapses, the output geometry may be a collection of lower-to-equal dimension geometries or a geometry of lower dimension."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1152
+#: reference_processing.xml:1217
 #, no-c-format
 msgid "Single polygons may become multi-geometries in case of self-intersections."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1156
+#: reference_processing.xml:1221
 #, no-c-format
 msgid "Availability: 2.0.0, requires GEOS-3.3.0"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1157
+#: reference_processing.xml:1222
 #, no-c-format
-msgid "Enahnced: 2.0.1, speed improvements requires GEOS-3.3.4"
+msgid "Enhanced: 2.0.1, speed improvements requires GEOS-3.3.4"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1158
+#: reference_processing.xml:1223
 #, no-c-format
 msgid "Enhanced: 2.1.0 added support for GEOMETRYCOLLECTION and MULTIPOINT."
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1175
+#: reference_processing.xml:1240
 #, no-c-format
 msgid "ST_MemUnion"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1177
+#: reference_processing.xml:1242
 #, no-c-format
 msgid "Same as ST_Union, only memory-friendly (uses less memory and more processor time)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1183
+#: reference_processing.xml:1248
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MemUnion</function></funcdef> <paramdef><type>geometry set</type> <parameter>geomfield</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1194
+#: reference_processing.xml:1259
 #, no-c-format
 msgid "Some useful description here."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1198
+#: reference_processing.xml:1263
 #, no-c-format
 msgid "Same as ST_Union, only memory-friendly (uses less memory and more processor time). This aggregate function works by unioning the geometries one at a time to previous result as opposed to ST_Union aggregate which first creates an array and then unions"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1210
+#: reference_processing.xml:1275
 #, no-c-format
 msgid "See ST_Union"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1223
+#: reference_processing.xml:1288
 #, no-c-format
 msgid "ST_MinimumBoundingCircle"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1224
+#: reference_processing.xml:1289
 #, no-c-format
 msgid "Returns the smallest circle polygon that can fully contain a geometry. Default uses 48 segments per quarter circle."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1230
+#: reference_processing.xml:1295
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_MinimumBoundingCircle</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>num_segs_per_qt_circ=48</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1240
+#: reference_processing.xml:1305
 #, no-c-format
 msgid "Returns the smallest circle polygon that can fully contain a geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1241
+#: reference_processing.xml:1306
 #, no-c-format
 msgid "The circle is approximated by a polygon with a default of 48 segments per quarter circle. This number can be increased with little performance penalty to obtain a more accurate result."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1243
+#: reference_processing.xml:1308
 #, no-c-format
 msgid "It is often used with MULTI and Geometry Collections. Although it is not an aggregate - you can use it in conjunction with ST_Collect to get the minimum bounding circle of a set of geometries. ST_MinimumBoundingCircle(ST_Collect(somepointfield))."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1248
+#: reference_processing.xml:1313
 #, no-c-format
 msgid "The ratio of the area of a polygon divided by the area of its Minimum Bounding Circle is often referred to as the Roeck test."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1250
+#: reference_processing.xml:1315
 #, no-c-format
 msgid "Availability: 1.4.0 - requires GEOS"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1257
+#: reference_processing.xml:1322
 #, no-c-format
 msgid ""
       "SELECT d.disease_type,\n"
@@ -2037,13 +2157,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1263
+#: reference_processing.xml:1328
 #, no-c-format
 msgid "Minimum bounding circle of a point and linestring. Using 8 segs to approximate a quarter circle"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1266
+#: reference_processing.xml:1331
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_MinimumBoundingCircle(\n"
@@ -2060,55 +2180,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1270
+#: reference_processing.xml:1335
 #, no-c-format
 msgid ", <xref linkend=\"ST_ConvexHull\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1276
+#: reference_processing.xml:1341
 #, no-c-format
 msgid "ST_Polygonize"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1278
+#: reference_processing.xml:1343
 #, no-c-format
 msgid "Aggregate. Creates a GeometryCollection containing possible polygons formed from the constituent linework of a set of geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:1284
+#: reference_processing.xml:1349
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_Polygonize</function></funcdef> <paramdef><type>geometry set</type> <parameter>geomfield</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_Polygonize</function></funcdef> <paramdef><type>geometry[]</type> <parameter>geom_array</parameter></paramdef> </funcprototype>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1300
+#: reference_processing.xml:1365
 #, no-c-format
 msgid "Creates a GeometryCollection containing possible polygons formed from the constituent linework of a set of geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1305
+#: reference_processing.xml:1370
 #, no-c-format
 msgid "Geometry Collections are often difficult to deal with with third party tools, so use ST_Polygonize in conjunction with <xref linkend=\"ST_Dump\"/> to dump the polygons out into individual polygons."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1313
+#: reference_processing.xml:1378
 #, no-c-format
 msgid "Availability: 1.0.0RC1 - requires GEOS >= 2.1.0."
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:1317
+#: reference_processing.xml:1382
 #, no-c-format
 msgid "Examples: Polygonizing single linestrings"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1318
+#: reference_processing.xml:1383
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(ST_Polygonize(the_geom_4269)) As geomtextrep\n"
@@ -2137,43 +2257,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1332
+#: reference_processing.xml:1397
 #, no-c-format
 msgid "ST_Node"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1334
+#: reference_processing.xml:1399
 #, no-c-format
 msgid "Node a set of linestrings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1341
+#: reference_processing.xml:1406
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Node</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1352
+#: reference_processing.xml:1417
 #, no-c-format
 msgid "Fully node a set of linestrings using the least possible number of nodes while preserving all of the input ones."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1359 reference_processing.xml:2103
+#: reference_processing.xml:1424 reference_processing.xml:2168
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1361
+#: reference_processing.xml:1426
 #, no-c-format
 msgid "Due to a bug in GEOS up to 3.3.1 this function fails to node self-intersecting lines. This is fixed with GEOS 3.3.2 or higher."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1368
+#: reference_processing.xml:1433
 #, no-c-format
 msgid ""
       "SELECT ST_AsEWKT(\n"
@@ -2185,85 +2305,85 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1383
+#: reference_processing.xml:1448
 #, no-c-format
 msgid "ST_OffsetCurve"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1385
+#: reference_processing.xml:1450
 #, no-c-format
 msgid "Return an offset line at a given distance and side from an input line. Useful for computing parallel lines about a center line"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1393
+#: reference_processing.xml:1458
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_OffsetCurve</function></funcdef> <paramdef><type>geometry </type> <parameter>line</parameter></paramdef> <paramdef><type>float </type> <parameter>signed_distance</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>style_parameters=''</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1406
+#: reference_processing.xml:1471
 #, no-c-format
 msgid "Return an offset line at a given distance and side from an input line. All points of the returned geometries are not further than the given distance from the input geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1412
+#: reference_processing.xml:1477
 #, no-c-format
 msgid "For positive distance the offset will be at the left side of the input line and retain the same direction. For a negative distance it'll be at the right side and in the opposite direction."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1418
+#: reference_processing.xml:1483
 #, no-c-format
 msgid "Availability: 2.0 - requires GEOS >= 3.2, improved with GEOS >= 3.3"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1422
+#: reference_processing.xml:1487
 #, no-c-format
 msgid "The optional third parameter allows specifying a list of blank-separated key=value pairs to tweak operations as follows:"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1430
+#: reference_processing.xml:1495
 #, no-c-format
 msgid "'join=round|mitre|bevel' : join style (defaults to \"round\"). 'miter' is also accepted as a synonym for 'mitre'."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1433
+#: reference_processing.xml:1498
 #, no-c-format
 msgid "'mitre_limit=#.#' : mitre ratio limit (only affects mitred join style). 'miter_limit' is also accepted as a synonym for 'mitre_limit'."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1438
+#: reference_processing.xml:1503
 #, no-c-format
 msgid "Units of distance are measured in units of the spatial reference system."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1442
+#: reference_processing.xml:1507
 #, no-c-format
 msgid "The inputs can only be LINESTRINGS."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1446
+#: reference_processing.xml:1511
 #, no-c-format
 msgid "This function ignores the third dimension (z) and will always give a 2-d result even when presented with a 3d-geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1454
+#: reference_processing.xml:1519
 #, no-c-format
 msgid "Compute an open buffer around roads"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1455
+#: reference_processing.xml:1520
 #, no-c-format
 msgid ""
       "SELECT ST_Union(\n"
@@ -2274,13 +2394,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1465
+#: reference_processing.xml:1530
 #, no-c-format
 msgid "15, 'quad_segs=4 join=round' original line and its offset 15 units."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1469
+#: reference_processing.xml:1534
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
@@ -2297,13 +2417,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1476
+#: reference_processing.xml:1541
 #, no-c-format
 msgid "-15, 'quad_segs=4 join=round' original line and its offset -15 units"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1480
+#: reference_processing.xml:1545
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_OffsetCurve(geom,\n"
@@ -2318,13 +2438,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1489
+#: reference_processing.xml:1554
 #, no-c-format
 msgid "double-offset to get more curvy, note the first reverses direction, so -30 + 15 = -15"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1492
+#: reference_processing.xml:1557
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_OffsetCurve(ST_OffsetCurve(geom,\n"
@@ -2341,13 +2461,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1499
+#: reference_processing.xml:1564
 #, no-c-format
 msgid "double-offset to get more curvy,combined with regular offset 15 to get parallel lines. Overlaid with original."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1502
+#: reference_processing.xml:1567
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Collect(\n"
@@ -2370,13 +2490,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1511
+#: reference_processing.xml:1576
 #, no-c-format
 msgid "15, 'quad_segs=4 join=bevel' shown with original line"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1514
+#: reference_processing.xml:1579
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_OffsetCurve(ST_GeomFromText(\n"
@@ -2391,13 +2511,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1522
+#: reference_processing.xml:1587
 #, no-c-format
 msgid "15,-15 collected, join=mitre mitre_limit=2.1"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1525
+#: reference_processing.xml:1590
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Collect(\n"
@@ -2415,79 +2535,79 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1542
+#: reference_processing.xml:1607
 #, no-c-format
 msgid "ST_RemoveRepeatedPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1543
+#: reference_processing.xml:1608
 #, no-c-format
 msgid "Returns a version of the given geometry with duplicated points removed."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1549
+#: reference_processing.xml:1614
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_RemoveRepeatedPoints</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1558
+#: reference_processing.xml:1623
 #, no-c-format
 msgid "Returns a version of the given geometry with duplicated points removed. Will actually do something only with (multi)lines, (multi)polygons and multipoints but you can safely call it with any kind of geometry. Since simplification occurs on a object-by-object basis you can also feed a GeometryCollection to this function."
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1578
+#: reference_processing.xml:1643
 #, no-c-format
 msgid "ST_SharedPaths"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1579
+#: reference_processing.xml:1644
 #, no-c-format
 msgid "Returns a collection containing paths shared by the two input linestrings/multilinestrings."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1584
+#: reference_processing.xml:1649
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_SharedPaths</function></funcdef> <paramdef><type>geometry</type> <parameter>lineal1</parameter></paramdef> <paramdef><type>geometry</type> <parameter>lineal2</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1594
+#: reference_processing.xml:1659
 #, no-c-format
 msgid "Returns a collection containing paths shared by the two input geometries. Those going in the same direction are in the first element of the collection, those going in the opposite direction are in the second element. The paths themselves are given in the direction of the first geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1599
+#: reference_processing.xml:1664
 #, no-c-format
 msgid "Availability: 2.0.0 requires GEOS >= 3.3.0."
 msgstr ""
 
 #. Tag: title
-#: reference_processing.xml:1602
+#: reference_processing.xml:1667
 #, no-c-format
 msgid "Examples: Finding shared paths"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1612
+#: reference_processing.xml:1677
 #, no-c-format
 msgid "A multilinestring and a linestring"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1623
+#: reference_processing.xml:1688
 #, no-c-format
 msgid "The shared path of multilinestring and linestring overlaid with original geometries."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1626
+#: reference_processing.xml:1691
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(\n"
@@ -2505,7 +2625,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1632
+#: reference_processing.xml:1697
 #, no-c-format
 msgid ""
       "-- same example but linestring orientation flipped\n"
@@ -2524,55 +2644,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1642
+#: reference_processing.xml:1707
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_NumGeometries\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1652
+#: reference_processing.xml:1717
 #, no-c-format
 msgid "ST_Shift_Longitude"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1654
+#: reference_processing.xml:1719
 #, no-c-format
 msgid "<refpurpose>Reads every point/vertex in every component of every feature in a geometry, and if the longitude coordinate is <0, adds 360 to it. The result would be a 0-360 version of the data to be plotted in a 180 centric map</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1662
+#: reference_processing.xml:1727
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Shift_Longitude</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1672
+#: reference_processing.xml:1737
 #, no-c-format
 msgid "<para>Reads every point/vertex in every component of every feature in a geometry, and if the longitude coordinate is <0, adds 360 to it. The result would be a 0-360 version of the data to be plotted in a 180 centric map</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1676
+#: reference_processing.xml:1741
 #, no-c-format
 msgid "This is only useful for data in long lat e.g. 4326 (WGS 84 long lat)"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1678
+#: reference_processing.xml:1743
 #, no-c-format
 msgid "Pre-1.3.4 bug prevented this from working for MULTIPOINT. 1.3.4+ works with MULTIPOINT as well."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1683
+#: reference_processing.xml:1748
 #, no-c-format
 msgid "Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1692
+#: reference_processing.xml:1757
 #, no-c-format
 msgid ""
       "--3d points\n"
@@ -2591,61 +2711,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1698
+#: reference_processing.xml:1763
 #, no-c-format
 msgid ", <xref linkend=\"ST_GeomFromText\"/>, <xref linkend=\"ST_AsEWKT\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1704
+#: reference_processing.xml:1769
 #, no-c-format
 msgid "ST_Simplify"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1705
+#: reference_processing.xml:1770
 #, no-c-format
 msgid "Returns a \"simplified\" version of the given geometry using the Douglas-Peucker algorithm."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1711
+#: reference_processing.xml:1776
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Simplify</function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1721
+#: reference_processing.xml:1786
 #, no-c-format
 msgid "Returns a \"simplified\" version of the given geometry using the Douglas-Peucker algorithm. Will actually do something only with (multi)lines and (multi)polygons but you can safely call it with any kind of geometry. Since simplification occurs on a object-by-object basis you can also feed a GeometryCollection to this function."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1728
+#: reference_processing.xml:1793
 #, no-c-format
 msgid "Note that returned geometry might loose its simplicity (see <xref linkend=\"ST_IsSimple\"/>)"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1730
+#: reference_processing.xml:1795
 #, no-c-format
 msgid "Note topology may not be preserved and may result in invalid geometries. Use (see <xref linkend=\"ST_SimplifyPreserveTopology\"/>) to preserve topology."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1733
+#: reference_processing.xml:1797
 #, no-c-format
 msgid "Availability: 1.2.2"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1738
+#: reference_processing.xml:1802
 #, no-c-format
 msgid "A circle simplified too much becomes a triangle, medium an octagon,"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1739
+#: reference_processing.xml:1803
 #, no-c-format
 msgid ""
       "SELECT ST_Npoints(the_geom) As np_before, ST_NPoints(ST_Simplify(the_geom,0.1)) As np01_notbadcircle, ST_NPoints(ST_Simplify(the_geom,0.5)) As np05_notquitecircle,\n"
@@ -2659,55 +2779,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1743
+#: reference_processing.xml:1807
 #, no-c-format
-msgid ", <xref linkend=\"ST_SimplifyPreserveTopology\"/>"
+msgid ", <xref linkend=\"ST_SimplifyPreserveTopology\"/>, Topology <xref linkend=\"TP_ST_Simplify\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1749
+#: reference_processing.xml:1813
 #, no-c-format
 msgid "ST_SimplifyPreserveTopology"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1750
+#: reference_processing.xml:1814
 #, no-c-format
 msgid "Returns a \"simplified\" version of the given geometry using the Douglas-Peucker algorithm. Will avoid creating derived geometries (polygons in particular) that are invalid."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1757
+#: reference_processing.xml:1821
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_SimplifyPreserveTopology</function></funcdef> <paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef> <paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1767
+#: reference_processing.xml:1831
 #, no-c-format
 msgid "Returns a \"simplified\" version of the given geometry using the Douglas-Peucker algorithm. Will avoid creating derived geometries (polygons in particular) that are invalid. Will actually do something only with (multi)lines and (multi)polygons but you can safely call it with any kind of geometry. Since simplification occurs on a object-by-object basis you can also feed a GeometryCollection to this function."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1776
+#: reference_processing.xml:1840
 #, no-c-format
 msgid "Requires GEOS 3.0.0+"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1777
+#: reference_processing.xml:1841
 #, no-c-format
 msgid "Availability: 1.3.3"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1782
+#: reference_processing.xml:1846
 #, no-c-format
 msgid "Same example as Simplify, but we see Preserve Topology prevents oversimplification. The circle can at most become a square."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1783
+#: reference_processing.xml:1847
 #, no-c-format
 msgid ""
       "SELECT ST_Npoints(the_geom) As np_before, ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.5)) As np05_notquitecircle,\n"
@@ -2722,55 +2842,61 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1793
+#: reference_processing.xml:1857
 #, no-c-format
 msgid "ST_Split"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1794
+#: reference_processing.xml:1858
 #, no-c-format
 msgid "Returns a collection of geometries resulting by splitting a geometry."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1799
+#: reference_processing.xml:1863
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Split</function></funcdef> <paramdef><type>geometry</type> <parameter>input</parameter></paramdef> <paramdef><type>geometry</type> <parameter>blade</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1809
+#: reference_processing.xml:1873
 #, no-c-format
 msgid "The function supports splitting a line by point, a line by line, a polygon by line. The returned geometry is always a collection."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1813
+#: reference_processing.xml:1877
 #, no-c-format
 msgid "Think of this function as the opposite of ST_Union. Theoretically applying ST_Union to the elements of the returned collection should always yield the original geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1824
+#: reference_processing.xml:1884
+#, no-c-format
+msgid "To improve the robustness of ST_Split it may be convenient to <xref linkend=\"ST_Snap\"/> the input to the blade in advance using a very low tolerance. Otherwise the internally used coordinate grid may cause tolerance problems, where coordinates of input and blade do not fall onto each other and the input is not being split correctly (see <ulink url=\"http://trac.osgeo.org/postgis/ticket/2192\">#2192</ulink>)."
+msgstr ""
+
+#. Tag: para
+#: reference_processing.xml:1889
 #, no-c-format
 msgid "Polygon Cut by Line"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1836 reference_processing.xml:1870
+#: reference_processing.xml:1901 reference_processing.xml:1935
 #, no-c-format
 msgid "Before Split"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1848 reference_processing.xml:1882
+#: reference_processing.xml:1913 reference_processing.xml:1947
 #, no-c-format
 msgid "After split"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1857
+#: reference_processing.xml:1922
 #, no-c-format
 msgid ""
       "-- this creates a geometry collection consisting of the 2 halves of the polygon\n"
@@ -2797,13 +2923,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1858
+#: reference_processing.xml:1923
 #, no-c-format
 msgid "Multilinestring Cut by point"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1891
+#: reference_processing.xml:1956
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Split(mline, pt)) As wktcut\n"
@@ -2822,55 +2948,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1895
+#: reference_processing.xml:1960
 #, no-c-format
 msgid ", <xref linkend=\"ST_BuildArea\"/>, <xref linkend=\"ST_Dump\"/>, <xref linkend=\"ST_GeometryN\"/>, <xref linkend=\"ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1901
+#: reference_processing.xml:1966
 #, no-c-format
 msgid "ST_SymDifference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1903
+#: reference_processing.xml:1968
 #, no-c-format
 msgid "Returns a geometry that represents the portions of A and B that do not intersect. It is called a symmetric difference because ST_SymDifference(A,B) = ST_SymDifference(B,A)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:1910
+#: reference_processing.xml:1975
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_SymDifference</function></funcdef> <paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1921
+#: reference_processing.xml:1986
 #, no-c-format
 msgid "Returns a geometry that represents the portions of A and B that do not intersect. It is called a symmetric difference because ST_SymDifference(A,B) = ST_SymDifference(B,A). One can think of this as ST_Union(geomA,geomB) - ST_Intersection(A,B)."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1931
+#: reference_processing.xml:1996
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.21"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1951
+#: reference_processing.xml:2016
 #, no-c-format
 msgid "The original linestrings shown together"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1963
+#: reference_processing.xml:2028
 #, no-c-format
 msgid "The symmetric difference of the two linestrings"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1972
+#: reference_processing.xml:2037
 #, no-c-format
 msgid ""
       "--Safe for 2d - symmetric difference of 2 linestrings\n"
@@ -2887,7 +3013,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:1974
+#: reference_processing.xml:2039
 #, no-c-format
 msgid ""
       "--When used in 3d doesn't quite do the right thing\n"
@@ -2900,85 +3026,85 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:1981
+#: reference_processing.xml:2046
 #, no-c-format
 msgid ", <xref linkend=\"ST_Intersection\"/>, <xref linkend=\"ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:1988
+#: reference_processing.xml:2053
 #, no-c-format
 msgid "ST_Union"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:1989
+#: reference_processing.xml:2054
 #, no-c-format
 msgid "Returns a geometry that represents the point set union of the Geometries."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_processing.xml:1994
+#: reference_processing.xml:2059
 #, no-c-format
 msgid "<funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> <paramdef><type>geometry set</type> <parameter>g1field</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> <paramdef><type>geometry</type> <parameter>g1</parameter></paramdef> <paramdef><type>geometry</type> <parameter>g2</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>geometry <function>ST_Union</function></funcdef> <paramdef><ty [...]
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2013
+#: reference_processing.xml:2078
 #, no-c-format
 msgid "Output type can be a MULTI*, single geometry, or Geometry Collection. Comes in 2 variants. Variant 1 unions 2 geometries resulting in a new geometry with no intersecting regions. Variant 2 is an aggregate function that takes a set of geometries and unions them into a single ST_Geometry resulting in no intersecting regions."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2017
+#: reference_processing.xml:2082
 #, no-c-format
-msgid "Aggregate version: This function returns a MULTI geometry or NON-MULTI geometry from a set of geometries. The ST_Union() function is an \"aggregate\" function in the terminology of PostgreSQL. That means that it operates on rows of data, in the same way the SUM() and AVG() functions do."
+msgid "Aggregate version: This function returns a MULTI geometry or NON-MULTI geometry from a set of geometries. The ST_Union() function is an \"aggregate\" function in the terminology of PostgreSQL. That means that it operates on rows of data, in the same way the SUM() and AVG() functions do and like most aggregates, it also ignores NULL geometries."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2023
+#: reference_processing.xml:2088
 #, no-c-format
-msgid "Non-Aggregate version: This function returns a geometry being a union of two input geometries. Output type can be a MULTI*, NON-MULTI or GEOMETRYCOLLECTION."
+msgid "Non-Aggregate version: This function returns a geometry being a union of two input geometries. Output type can be a MULTI*, NON-MULTI or GEOMETRYCOLLECTION. If any are NULL, then NULL is returned."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2027
+#: reference_processing.xml:2092
 #, no-c-format
 msgid "ST_Collect and ST_Union are often interchangeable. ST_Union is in general orders of magnitude slower than ST_Collect because it tries to dissolve boundaries and reorder geometries to ensure that a constructed Multi* doesn't have intersecting regions."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2033
+#: reference_processing.xml:2098
 #, no-c-format
 msgid "NOTE: this function was formerly called GeomUnion(), which was renamed from \"Union\" because UNION is an SQL reserved word."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2036
+#: reference_processing.xml:2101
 #, no-c-format
 msgid "Availability: 1.4.0 - ST_Union was enhanced. ST_Union(geomarray) was introduced and also faster aggregate collection in PostgreSQL. If you are using GEOS 3.1.0+ ST_Union will use the faster Cascaded Union algorithm described in <ulink url=\"http://blog.cleverelephant.ca/2009/01/must-faster-unions-in-postgis-14.html\">http://blog.cleverelephant.ca/2009/01/must-faster-unions-in-postgis-14.html</ulink>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2042
+#: reference_processing.xml:2107
 #, no-c-format
 msgid "Aggregate version is not explicitly defined in OGC SPEC."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2043
+#: reference_processing.xml:2108
 #, no-c-format
 msgid "&sqlmm_compliant; SQL-MM 3: 5.1.19 the z-index (elevation) when polygons are involved."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2049
+#: reference_processing.xml:2114
 #, no-c-format
 msgid "Aggregate example"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:2050
+#: reference_processing.xml:2115
 #, no-c-format
 msgid ""
       "SELECT stusps,\n"
@@ -2988,7 +3114,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_processing.xml:2052
+#: reference_processing.xml:2117
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_Union(ST_GeomFromText('POINT(1 2)'),\n"
@@ -3048,32 +3174,38 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_processing.xml:2065
+#: reference_processing.xml:2130
 #, no-c-format
 msgid "ST_UnaryUnion"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_processing.xml:2067
+#: reference_processing.xml:2132
 #, no-c-format
 msgid "Like ST_Union, but working at the geometry component level."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_processing.xml:2072
+#: reference_processing.xml:2137
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_UnaryUnion</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2083
+#: reference_processing.xml:2148
 #, no-c-format
 msgid "Unlike ST_Union, ST_UnaryUnion does dissolve boundaries between components of a multipolygon (invalid) and does perform union between the components of a geometrycollection. Each components of the input geometry is assumed to be valid, so you won't get a valid multipolygon out of a bow-tie polygon (invalid)."
 msgstr ""
 
 #. Tag: para
-#: reference_processing.xml:2093
+#: reference_processing.xml:2158
 #, no-c-format
 msgid "You may use this function to node a set of linestrings. You may mix ST_UnaryUnion with ST_Collect to fine-tune how many geometries at once you want to dissolve to be nice on both memory size and CPU time, finding the balance between ST_Union and ST_MemUnion."
 msgstr ""
 
+#. Tag: para
+#: reference_processing.xml:2176
+#, no-c-format
+msgid ", <xref linkend=\"ST_MemUnion\"/>, <xref linkend=\"ST_Collect\"/>, <xref linkend=\"ST_Node\"/>"
+msgstr ""
+
diff --git a/doc/po/templates/reference_raster.xml.pot b/doc/po/templates/reference_raster.xml.pot
index fca47ce..097c886 100644
--- a/doc/po/templates/reference_raster.xml.pot
+++ b/doc/po/templates/reference_raster.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-10-11 21:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -107,7 +107,7 @@ msgid "A spatial datatype with two fields - geom (holding a geometry object) and
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:30 reference_raster.xml:49 reference_raster.xml:121 reference_raster.xml:171 reference_raster.xml:211 reference_raster.xml:257 reference_raster.xml:439 reference_raster.xml:613 reference_raster.xml:652 reference_raster.xml:689 reference_raster.xml:730 reference_raster.xml:820 reference_raster.xml:1022 reference_raster.xml:1109 reference_raster.xml:1203 reference_raster.xml:1248 reference_raster.xml:1287 reference_raster.xml:1321 reference_raster.xml:1356 reference [...]
+#: reference_raster.xml:30 reference_raster.xml:49 reference_raster.xml:121 reference_raster.xml:171 reference_raster.xml:211 reference_raster.xml:257 reference_raster.xml:354 reference_raster.xml:536 reference_raster.xml:710 reference_raster.xml:777 reference_raster.xml:846 reference_raster.xml:889 reference_raster.xml:924 reference_raster.xml:961 reference_raster.xml:1002 reference_raster.xml:1058 reference_raster.xml:1103 reference_raster.xml:1209 reference_raster.xml:1418 reference_r [...]
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -119,7 +119,7 @@ msgid "geomval is a compound data type consisting of a geometry object reference
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:37 reference_raster.xml:107 reference_raster.xml:157 reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:292 reference_raster.xml:487 reference_raster.xml:628 reference_raster.xml:664 reference_raster.xml:702 reference_raster.xml:750 reference_raster.xml:857 reference_raster.xml:1074 reference_raster.xml:1163 reference_raster.xml:1223 reference_raster.xml:1266 reference_raster.xml:1300 reference_raster.xml:1335 reference_raster.xml:1369 referenc [...]
+#: reference_raster.xml:37 reference_raster.xml:107 reference_raster.xml:157 reference_raster.xml:200 reference_raster.xml:245 reference_raster.xml:340 reference_raster.xml:389 reference_raster.xml:584 reference_raster.xml:725 reference_raster.xml:803 reference_raster.xml:863 reference_raster.xml:899 reference_raster.xml:936 reference_raster.xml:974 reference_raster.xml:1022 reference_raster.xml:1073 reference_raster.xml:1123 reference_raster.xml:1253 reference_raster.xml:1470 reference_ [...]
 #, no-c-format
 msgid "See Also"
 msgstr ""
@@ -221,7 +221,7 @@ msgid "The raster in question/"
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:140 reference_raster.xml:263
+#: reference_raster.xml:140 reference_raster.xml:360
 #, no-c-format
 msgid "<parameter>nband </parameter> <type>integer</type>"
 msgstr ""
@@ -404,167 +404,263 @@ msgstr ""
 #. Tag: refname
 #: reference_raster.xml:252
 #, no-c-format
-msgid "unionarg"
+msgid "summarystats"
 msgstr ""
 
 #. Tag: refpurpose
 #: reference_raster.xml:253
 #, no-c-format
-msgid "<refpurpose>A composite type used as input into the ST_Union function defining the bands to be processed and behavior of the UNION operation.</refpurpose>"
+msgid "A composite type returned by the ST_SummaryStats and ST_SummaryStatsAgg functions."
 msgstr ""
 
 #. Tag: para
 #: reference_raster.xml:258
 #, no-c-format
-msgid "<para>A composite type used as input into the ST_Union function defining the bands to be processed and behavior of the UNION operation.</para>"
+msgid "A composite type returned by the <xref linkend=\"RT_ST_SummaryStats\"/> and <xref linkend=\"RT_ST_SummaryStatsAgg\"/> functions."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:263
+#, no-c-format
+msgid "<parameter>count </parameter> <type>integer</type>"
 msgstr ""
 
 #. Tag: para
 #: reference_raster.xml:268
 #, no-c-format
-msgid "1-based value indicating the band of each input raster to be processed."
+msgid "Number of pixels counted for the summary statistics."
 msgstr ""
 
 #. Tag: term
 #: reference_raster.xml:275
 #, no-c-format
-msgid "<parameter>uniontype </parameter> <type>text</type>"
+msgid "<parameter>sum </parameter> <type>double precision</type>"
 msgstr ""
 
 #. Tag: para
 #: reference_raster.xml:280
 #, no-c-format
+msgid "Sum of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:287
+#, no-c-format
+msgid "<parameter>mean </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:292
+#, no-c-format
+msgid "Arithmetic mean of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:299
+#, no-c-format
+msgid "<parameter>stddev </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:304
+#, no-c-format
+msgid "Standard deviation of all counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:311
+#, no-c-format
+msgid "<parameter>min </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:316
+#, no-c-format
+msgid "Minimum value of counted pixel values."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:323
+#, no-c-format
+msgid "<parameter>max </parameter> <type>double precision</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:328
+#, no-c-format
+msgid "Maximum value of counted pixel values."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:341
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:349
+#, no-c-format
+msgid "unionarg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:350
+#, no-c-format
+msgid "<refpurpose>A composite type used as input into the ST_Union function defining the bands to be processed and behavior of the UNION operation.</refpurpose>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:355
+#, no-c-format
+msgid "<para>A composite type used as input into the ST_Union function defining the bands to be processed and behavior of the UNION operation.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:365
+#, no-c-format
+msgid "1-based value indicating the band of each input raster to be processed."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:372
+#, no-c-format
+msgid "<parameter>uniontype </parameter> <type>text</type>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:377
+#, no-c-format
 msgid "Type of UNION operation. One of defined types as described in <xref linkend=\"RT_ST_Union\"/>."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:302
+#: reference_raster.xml:399
 #, no-c-format
 msgid "Raster Management"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:305
+#: reference_raster.xml:402
 #, no-c-format
 msgid "AddRasterConstraints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:307
+#: reference_raster.xml:404
 #, no-c-format
 msgid "Adds raster constraints to a loaded raster table for a specific column that constrains spatial ref, scaling, blocksize, alignment, bands, band type and a flag to denote if raster column is regularly blocked. The table must be loaded with data for the constraints to be inferred. Returns true of the constraint setting was accomplished and if issues a notice."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:311
+#: reference_raster.xml:408
 #, no-c-format
-msgid "<funcprototype> <funcdef>boolean <function>AddRasterConstraints</function></funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></paramdef> <paramdef><type>boolean </type> <p [...]
+msgid "<funcprototype> <funcdef>boolean <function>AddRasterConstraints</function></funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></paramdef> <paramdef><type>boolean </type> <p [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:441
+#: reference_raster.xml:538
 #, no-c-format
 msgid "Generates constraints on a raster column that are used to display information in the <varname>raster_columns</varname> raster catalog. The <varname>rastschema</varname> is the name of the table schema the table resides in. The <varname>srid</varname> must be an integer value reference to an entry in the SPATIAL_REF_SYS table."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:446
+#: reference_raster.xml:543
 #, no-c-format
 msgid "<varname>raster2pgsql</varname> loader uses this function to register raster tables"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:447
+#: reference_raster.xml:544
 #, no-c-format
 msgid "Valid constraint names to pass in: refer to <xref linkend=\"RT_Raster_Columns\"/> for more details."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:449
+#: reference_raster.xml:546
 #, no-c-format
 msgid "<varname>blocksize</varname> sets both X and Y blocksize"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:450
+#: reference_raster.xml:547
 #, no-c-format
 msgid "<varname>blocksize_x</varname> sets X tile (width in pixels of each tile)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:451
+#: reference_raster.xml:548
 #, no-c-format
 msgid "<varname>blocksize_y</varname> sets Y tile (height in pixels of each tile)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:452
+#: reference_raster.xml:549
 #, no-c-format
 msgid "<varname>extent</varname> computes extent of whole table and applys constraint all rasters must be within that extent"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:454
+#: reference_raster.xml:551
 #, no-c-format
 msgid "<varname>num_bands</varname> number of bands"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:455
+#: reference_raster.xml:552
 #, no-c-format
 msgid "<varname>pixel_types</varname> reads array of pixel types for each band ensure all band n have same pixel type"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:456
+#: reference_raster.xml:553
 #, no-c-format
-msgid "<varname>regular_blocking</varname> apply informational flag to denote all tiles are regularly blocked"
+msgid "<varname>regular_blocking</varname> sets spatially unique (no two rasters can be spatially the same) and coverage tile (raster is aligned to a coverage) constraints"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:457
+#: reference_raster.xml:554
 #, no-c-format
 msgid "<varname>same_alignment</varname> ensures they all have same alignment meaning any two tiles you compare will return true for. Refer to"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:458
+#: reference_raster.xml:555
 #, no-c-format
 msgid "<varname>srid</varname> ensures all have same srid"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:459
+#: reference_raster.xml:556
 #, no-c-format
 msgid "More -- any listed as inputs into the above functions"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:462
+#: reference_raster.xml:559
 #, no-c-format
 msgid "This function infers the constraints from the data already present in the table. As such for it to work, you must create the raster column first and then load it with data."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:467
+#: reference_raster.xml:564
 #, no-c-format
 msgid "If you need to load more data in your tables after you have already applied constraints, you may want to run the DropRasterConstraints if the extent of your data has changed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:471 reference_raster.xml:620 reference_raster.xml:1114 reference_raster.xml:2126 reference_raster.xml:2259 reference_raster.xml:2419 reference_raster.xml:2462 reference_raster.xml:2514 reference_raster.xml:3934 reference_raster.xml:4000 reference_raster.xml:4123 reference_raster.xml:4226 reference_raster.xml:4290 reference_raster.xml:4443 reference_raster.xml:4908 reference_raster.xml:5187 reference_raster.xml:5252 reference_raster.xml:5317 reference_raster.xml:56 [...]
+#: reference_raster.xml:568 reference_raster.xml:717 reference_raster.xml:793 reference_raster.xml:859 reference_raster.xml:1511 reference_raster.xml:1902 reference_raster.xml:2932 reference_raster.xml:3089 reference_raster.xml:3132 reference_raster.xml:3189 reference_raster.xml:4873 reference_raster.xml:4936 reference_raster.xml:5131 reference_raster.xml:5235 reference_raster.xml:5305 reference_raster.xml:5527 reference_raster.xml:6000 reference_raster.xml:7062 reference_raster.xml:7261 [...]
 #, no-c-format
 msgid "Availability: 2.0.0"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:475
+#: reference_raster.xml:572
 #, no-c-format
 msgid "Examples: Apply all possible constraints on column based on data"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:477
+#: reference_raster.xml:574
 #, no-c-format
 msgid ""
       "CREATE TABLE myrasters(rid SERIAL primary key, rast raster);\n"
@@ -585,13 +681,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:481
+#: reference_raster.xml:578
 #, no-c-format
 msgid "Examples: Apply single constraint"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:483
+#: reference_raster.xml:580
 #, no-c-format
 msgid ""
       "CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);\n"
@@ -601,80 +697,78 @@ msgid ""
       "SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::name,'regular_blocking', 'blocksize');\n"
       "-- get notice--\n"
       "NOTICE:  Adding regular blocking constraint\n"
-      "INFO:  The regular_blocking constraint is just a flag indicating that the column \"rast\" is regularly blocked.  As no function exist yet to assert that a raster column is regularly blocked, it is up to the end-user to ensure that the column is truly regularly blocked.\n"
-      "CONTEXT:  PL/pgSQL function \"addrasterconstraints\" line 85 at assignment\n"
       "NOTICE:  Adding blocksize-X constraint\n"
       "NOTICE:  Adding blocksize-Y constraint"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:489
+#: reference_raster.xml:586
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"RT_DropRasterConstraints\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:495
+#: reference_raster.xml:592
 #, no-c-format
 msgid "DropRasterConstraints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:497
+#: reference_raster.xml:594
 #, no-c-format
 msgid "Drops PostGIS raster constraints that refer to a raster table column. Useful if you need to reload data or update your raster column data."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:501
+#: reference_raster.xml:598
 #, no-c-format
-msgid "<funcprototype> <funcdef>boolean <function>DropRasterConstraints</function></funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></paramdef> <paramdef><type>boolean </type> < [...]
+msgid "<funcprototype> <funcdef>boolean <function>DropRasterConstraints</function></funcdef> <paramdef><type>name </type> <parameter>rasttable</parameter></paramdef> <paramdef><type>name </type> <parameter>rastcolumn</parameter></paramdef> <paramdef><type>boolean </type> <parameter>srid</parameter></paramdef> <paramdef><type>boolean </type> <parameter>scale_x</parameter></paramdef> <paramdef><type>boolean </type> <parameter>scale_y</parameter></paramdef> <paramdef><type>boolean </type> < [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:614
+#: reference_raster.xml:711
 #, no-c-format
 msgid "Drops PostGIS raster constraints that refer to a raster table column that were added by <xref linkend=\"RT_AddRasterConstraints\"/>. Useful if you need to load more data or update your raster column data. You do not need to do this if you want to get rid of a raster table or a raster column."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:616
+#: reference_raster.xml:713
 #, no-c-format
 msgid "To drop a raster table use the standard"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:616
+#: reference_raster.xml:713
 #, no-c-format
 msgid "DROP TABLE mytable"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:617
+#: reference_raster.xml:714
 #, no-c-format
 msgid "To drop just a raster column and leave the rest of the table, use standard SQL"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:617
+#: reference_raster.xml:714
 #, no-c-format
 msgid "ALTER TABLE mytable DROP COLUMN rast"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:618
+#: reference_raster.xml:715
 #, no-c-format
 msgid "the table will disappear from the <varname>raster_columns</varname> catalog if the column or table is dropped. However if only the constraints are dropped, the raster column will still be listed in the <varname>raster_columns</varname> catalog, but there will be no other information about it aside from the column name and table."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:623 reference_raster.xml:658 reference_raster.xml:696 reference_raster.xml:1118 reference_raster.xml:1216 reference_raster.xml:1260 reference_raster.xml:1293 reference_raster.xml:1328 reference_raster.xml:1362 reference_raster.xml:1497 reference_raster.xml:1535 reference_raster.xml:1578 reference_raster.xml:1634 reference_raster.xml:1686 reference_raster.xml:1724 reference_raster.xml:1759 reference_raster.xml:1795 reference_raster.xml:1831 reference_raster.xml:186 [...]
+#: reference_raster.xml:720 reference_raster.xml:797 reference_raster.xml:894 reference_raster.xml:930 reference_raster.xml:968 reference_raster.xml:1515 reference_raster.xml:1614 reference_raster.xml:1688 reference_raster.xml:1789 reference_raster.xml:1837 reference_raster.xml:1870 reference_raster.xml:1906 reference_raster.xml:1949 reference_raster.xml:1985 reference_raster.xml:2019 reference_raster.xml:2159 reference_raster.xml:2197 reference_raster.xml:2240 reference_raster.xml:2299  [...]
 #, no-c-format
 msgid "Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:625
+#: reference_raster.xml:722
 #, no-c-format
 msgid ""
       "SELECT DropRasterConstraints ('myrasters','rast');\n"
@@ -692,31 +786,172 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:636
+#: reference_raster.xml:733
+#, no-c-format
+msgid "AddOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:735
+#, no-c-format
+msgid "Tag a raster column as being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:739
+#, no-c-format
+msgid "<funcprototype> <funcdef>boolean <function>AddOverviewConstraints</function></funcdef> <paramdef><type>name </type> <parameter>ovschema</parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</parameter></paramdef> <paramdef><type>name </type> <parameter>refschema</parameter></paramdef> <paramdef><type>name </type> <parameter>reftable</parameter></paramdef> <paramdef><type>name </type> <paramete [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:779
+#, no-c-format
+msgid "Adds constraints on a raster column that are used to display information in the <varname>raster_overviews</varname> raster catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:783
+#, no-c-format
+msgid "The <varname>ovfactor</varname> parameter represents the scale multiplier in the overview column: higher overview factors have lower resolution."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:787
+#, no-c-format
+msgid "When the <varname>ovschema</varname> and <varname>refschema</varname> parameters are omitted, the first table found scanning the <varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:799
+#, no-c-format
+msgid ""
+      "CREATE TABLE res1 AS SELECT\n"
+      "ST_AddBand(\n"
+      "  ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),\n"
+      "  1, '8BSI'::text, -129, NULL\n"
+      ") r1;\n"
+      "\n"
+      "CREATE TABLE res2 AS SELECT\n"
+      "ST_AddBand(\n"
+      "  ST_MakeEmptyRaster(500, 500, 0, 0, 4),\n"
+      "  1, '8BSI'::text, -129, NULL\n"
+      ") r2;\n"
+      "\n"
+      "SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);\n"
+      "\n"
+      "-- verify if registered correctly in the raster_overviews view --\n"
+      "SELECT o_table_name ot, o_raster_column oc,\n"
+      "       r_table_name rt, r_raster_column rc,\n"
+      "       overview_factor f\n"
+      "FROM raster_overviews WHERE o_table_name = 'res2';\n"
+      "  ot  | oc |  rt  | rc | f\n"
+      "------+----+------+----+---\n"
+      " res2 | r2 | res1 | r1 | 2\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:805
+#, no-c-format
+msgid ", <xref linkend=\"RT_DropOverviewConstraints\"/>, <xref linkend=\"RT_CreateOverview\"/>, <xref linkend=\"RT_AddRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:816
+#, no-c-format
+msgid "DropOverviewConstraints"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:818
+#, no-c-format
+msgid "Untag a raster column from being an overview of another."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:822
+#, no-c-format
+msgid "<funcprototype> <funcdef>boolean <function>DropOverviewConstraints</function></funcdef> <paramdef><type>name </type> <parameter>ovschema</parameter></paramdef> <paramdef><type>name </type> <parameter>ovtable</parameter></paramdef> <paramdef><type>name </type> <parameter>ovcolumn</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>DropOverviewConstraints</function></funcdef> <paramdef><type>name </type> <parameter>ovtable</parameter></paramdef> <param [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:848
+#, no-c-format
+msgid "Remove from a raster column the constraints used to show it as being an overview of another in the <varname>raster_overviews</varname> raster catalog."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:853
+#, no-c-format
+msgid "When the <varname>ovschema</varname> parameter is omitted, the first table found scanning the <varname>search_path</varname> will be used."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:865
+#, no-c-format
+msgid ", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend=\"RT_DropRasterConstraints\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:875
+#, no-c-format
+msgid "PostGIS_GDAL_Version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:876
+#, no-c-format
+msgid "Reports the version of the GDAL library in use by PostGIS."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:881
+#, no-c-format
+msgid "<funcdef>text <function>PostGIS_GDAL_Version</function></funcdef> <paramdef></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:890
+#, no-c-format
+msgid "Reports the version of the GDAL library in use by PostGIS. Will also check and report if GDAL can find its data files."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:895
+#, no-c-format
+msgid ""
+      "SELECT PostGIS_GDAL_Version();\n"
+      "       postgis_gdal_version        \n"
+      "-----------------------------------\n"
+      " GDAL 1.11dev, released 2013/04/13"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:908
 #, no-c-format
 msgid "PostGIS_Raster_Lib_Build_Date"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:638
+#: reference_raster.xml:910
 #, no-c-format
 msgid "Reports full raster library build date."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:643
+#: reference_raster.xml:915
 #, no-c-format
 msgid "<funcdef>text <function>PostGIS_Raster_Lib_Build_Date</function></funcdef> <paramdef></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:654
+#: reference_raster.xml:926
 #, no-c-format
 msgid "Reports raster build date"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:660
+#: reference_raster.xml:932
 #, no-c-format
 msgid ""
       "SELECT PostGIS_Raster_Lib_Build_Date();\n"
@@ -726,31 +961,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:672
+#: reference_raster.xml:944
 #, no-c-format
 msgid "PostGIS_Raster_Lib_Version"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:674
+#: reference_raster.xml:946
 #, no-c-format
 msgid "<refpurpose>Reports full raster version and build configuration infos.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:680
+#: reference_raster.xml:952
 #, no-c-format
 msgid "<funcdef>text <function>PostGIS_Raster_Lib_Version</function></funcdef> <paramdef></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:691
+#: reference_raster.xml:963
 #, no-c-format
 msgid "<para>Reports full raster version and build configuration infos.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:698
+#: reference_raster.xml:970
 #, no-c-format
 msgid ""
       "SELECT PostGIS_Raster_Lib_Version();\n"
@@ -760,43 +995,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:712
+#: reference_raster.xml:984
 #, no-c-format
 msgid "ST_GDALDrivers"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:714
+#: reference_raster.xml:986
 #, no-c-format
 msgid "Returns a list of raster formats supported by your lib gdal. These are the formats you can output your raster using ST_AsGDALRaster."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:719
+#: reference_raster.xml:991
 #, no-c-format
 msgid "<funcdef>setof record <function>ST_GDALDrivers</function></funcdef> <paramdef><type>integer </type> <parameter>OUT idx</parameter></paramdef> <paramdef><type>text </type> <parameter>OUT short_name</parameter></paramdef> <paramdef><type>text </type> <parameter>OUT long_name</parameter></paramdef> <paramdef><type>text </type> <parameter>OUT create_options</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:732
+#: reference_raster.xml:1004
 #, no-c-format
 msgid "Returns a list of raster formats short_name,long_name and creator options of each format supported by your lib gdal. Use the short_name as input in the <varname>format</varname> parameter of <xref linkend=\"RT_ST_AsGDALRaster\"/>. Options vary depending on what drivers your libgdal was compiled with. <varname>create_options</varname> returns an xml formatted set of CreationOptionList/Option consisting of name and optional <varname>type</varname>, <varname>description</varname> and [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:735 reference_raster.xml:1042 reference_raster.xml:4537 reference_raster.xml:4635 reference_raster.xml:4726 reference_raster.xml:4806
+#: reference_raster.xml:1007 reference_raster.xml:1438 reference_raster.xml:5631 reference_raster.xml:5729 reference_raster.xml:5820 reference_raster.xml:5900
 #, no-c-format
 msgid "Availability: 2.0.0 - requires GDAL >= 1.6.0."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:739
+#: reference_raster.xml:1011
 #, no-c-format
 msgid "Examples: List of Drivers"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:741
+#: reference_raster.xml:1013
 #, no-c-format
 msgid ""
       "SELECT short_name, long_name\n"
@@ -829,13 +1064,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:743
+#: reference_raster.xml:1015
 #, no-c-format
 msgid "Example: List of options for each driver"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:744
+#: reference_raster.xml:1016
 #, no-c-format
 msgid ""
       "-- Output the create options XML column of JPEG as a table  --\n"
@@ -855,7 +1090,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:746
+#: reference_raster.xml:1018
 #, no-c-format
 msgid ""
       "-- raw xml output for creator options for GeoTiff --\n"
@@ -958,67 +1193,163 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:752 reference_raster.xml:1839
+#: reference_raster.xml:1024 reference_raster.xml:2506
 #, no-c-format
 msgid ", <xref linkend=\"ST_SRID\"/>"
 msgstr ""
 
+#. Tag: refname
+#: reference_raster.xml:1030
+#, no-c-format
+msgid "UpdateRasterSRID"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1031
+#, no-c-format
+msgid "Change the SRID of all rasters in the user-specified column and table."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1037
+#, no-c-format
+msgid "<funcprototype> <funcdef>raster <function>UpdateRasterSRID</function></funcdef> <paramdef><type>name </type> <parameter>schema_name</parameter></paramdef> <paramdef><type>name </type> <parameter>table_name</parameter></paramdef> <paramdef><type>name </type> <parameter>column_name</parameter></paramdef> <paramdef><type>integer </type> <parameter>new_srid</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>UpdateRasterSRID</function></funcdef> <paramdef [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1060
+#, no-c-format
+msgid "Change the SRID of all rasters in the user-specified column and table. The function will drop all appropriate column constraints (extent, alignment and SRID) before changing the SRID of the specified column's rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1065
+#, no-c-format
+msgid "The data (band pixel values) of the rasters are not touched by this function. Only the raster's metadata is changed."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1070 reference_raster.xml:1684 reference_raster.xml:1785 reference_raster.xml:2235 reference_raster.xml:2530 reference_raster.xml:2685 reference_raster.xml:3234 reference_raster.xml:3284 reference_raster.xml:3328 reference_raster.xml:3378 reference_raster.xml:3535 reference_raster.xml:3632 reference_raster.xml:3817 reference_raster.xml:3920 reference_raster.xml:4016 reference_raster.xml:6261 reference_raster.xml:6725 reference_raster.xml:6842 reference_raster.xml: [...]
+#, no-c-format
+msgid "Availability: 2.1.0"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1082
+#, no-c-format
+msgid "ST_CreateOverview"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1083
+#, no-c-format
+msgid "Create an reduced resolution version of a given raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1091
+#, no-c-format
+msgid "<funcdef>regclass <function>ST_CreateOverview</function></funcdef> <paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> <paramdef><type>name </type> <parameter>col</parameter></paramdef> <paramdef><type>int </type> <parameter>factor</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>algo='NearestNeighbor'</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1105
+#, no-c-format
+msgid "Create an overview table with resampled tiles from the source table. Output tiles will have the same size of input tiles and cover the same spatial extent with a lower resolution (pixel size will be 1/<varname>factor</varname> of the original in both directions)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1112
+#, no-c-format
+msgid "The overview table will be made available in the <varname>raster_overviews</varname> catalog and will have raster constraints enforced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1118 reference_raster.xml:1743 reference_raster.xml:4726
+#, no-c-format
+msgid "Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', 'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1120 reference_raster.xml:1745 reference_raster.xml:1944 reference_raster.xml:5005 reference_raster.xml:5384
+#, no-c-format
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1124
+#, no-c-format
+msgid ", <xref linkend=\"RT_AddOverviewConstraints\"/>, <xref linkend=\"RT_AddRasterConstraints\"/>, <xref linkend=\"RT_Raster_Overviews\"/>"
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:759
+#: reference_raster.xml:1135
 #, no-c-format
 msgid "Raster Constructors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:763
+#: reference_raster.xml:1139
 #, no-c-format
 msgid "ST_AddBand"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:764
+#: reference_raster.xml:1140
 #, no-c-format
 msgid "Returns a raster with the new band(s) of given type added with given initial value in the given index location. If no index is specified, the band is added to the end."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:770
+#: reference_raster.xml:1146
 #, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>addbandarg[] </type> <parameter>addbandargset</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt [...]
+msgid "<funcprototype> <funcdef>(1) raster <function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>addbandarg[] </type> <parameter>addbandargset</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>(2) raster <function>ST_AddBand</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>index</parameter></paramdef> <paramdef><type [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:822
+#: reference_raster.xml:1211
+#, no-c-format
+msgid "Returns a raster with a new band added in given position (index), of given type, of given initial value, and of given nodata value. If no index is specified, the band is added to the end. If no <varname>fromband</varname> is specified, band 1 is assumed. Pixel type is a string representation of one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. If an existing index is specified all subsequent bands >= that index are incremented by 1. If an initial value g [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1215
+#, no-c-format
+msgid "For the variant that takes an array of <xref linkend=\"addbandarg\"/> (Variant 1), a specific addbandarg's index value is relative to the raster at the time when the band described by that addbandarg is being added to the raster. See the Multiple New Bands example below."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1219
 #, no-c-format
-msgid "Returns a raster with a new band added in given position (index), of given type, of given initial value, and of given nodata value. If no index is specified, the band is added to the end. If no <varname>fromband</varname> is specified, band 1 is assumed. Pixel type is a string representation of one of the pixel types specified in <xref linkend=\"RT_ST_BandPixelType\"/>. If an existing index is specified all subsequent bands >= that index are incremented by 1. If an initial value g [...]
+msgid "For the variant that takes an array of rasters (Variant 5), if <varname>torast</varname> is NULL then the <varname>fromband</varname> band of each raster in the array is accumulated into a new raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:826
+#: reference_raster.xml:1223
 #, no-c-format
-msgid "For the version that takes an array of <xref linkend=\"addbandarg\"/>, a specific addbandarg's index value is relative to the raster at the time when the band described by that addbandarg is being added to the raster. See the Multiple New Bands example below."
+msgid "For the variants that take <varname>outdbfile</varname> (Variants 6 and 7), the value must include the full path to the raster file. The file must also be accessible to the postgres server process."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:830
+#: reference_raster.xml:1227
 #, no-c-format
-msgid "For the version that takes an array of bands if <varname>torast</varname> is NULL, then the <varname>fromband</varname> band of each raster in the array is accumulated into a new raster."
+msgid "Enhanced: 2.1.0 support for addbandarg added."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:833
+#: reference_raster.xml:1228
 #, no-c-format
-msgid "Enhanced: 2.1.0 support addbandarg was introduced."
+msgid "Enhanced: 2.1.0 support for new out-db bands added."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:837
+#: reference_raster.xml:1232
 #, no-c-format
-msgid "Examples: Single New Band versions"
+msgid "Examples: Single New Band"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:839
+#: reference_raster.xml:1234
 #, no-c-format
 msgid ""
       "-- Add another band of type 8 bit unsigned integer with pixels initialized to 200\n"
@@ -1028,7 +1359,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:841
+#: reference_raster.xml:1236
 #, no-c-format
 msgid ""
       "-- Create an empty raster 100x100 units, with upper left  right at 0, add 2 bands (band 1 is 0/1 boolean bit switch, band2 allows values 0-15)\n"
@@ -1064,13 +1395,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:845
+#: reference_raster.xml:1240
 #, no-c-format
 msgid "Examples: Multiple New Bands"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:847
+#: reference_raster.xml:1242
 #, no-c-format
 msgid ""
       "SELECT\n"
@@ -1096,14 +1427,8 @@ msgid ""
       "       4 | 16BUI     |           2 | f       |"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:851
-#, no-c-format
-msgid "Examples: Multi-Band versions"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_raster.xml:853
+#: reference_raster.xml:1244
 #, no-c-format
 msgid ""
       "-- Aggregate the 1st band of a table of like rasters into a single raster \n"
@@ -1112,109 +1437,138 @@ msgid ""
       "-- for 8.4 and below it usually works to order your data in a subselect (but not guaranteed)\n"
       "-- The resulting raster will have a band for each test_type alphabetical by test_type\n"
       "-- For mouse lovers: No mice were harmed in this exercise\n"
-      "SELECT mouse, ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1 ) As rast \n"
-      "        FROM mice_studies\n"
-      "                        GROUP BY mouse;"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:858
-#, no-c-format
-msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"RT_ST_MetaData\"/>, <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>"
+      "SELECT\n"
+      "        mouse,\n"
+      "        ST_AddBand(NULL, array_agg(rast ORDER BY test_type), 1) As rast \n"
+      "FROM mice_studies\n"
+      "GROUP BY mouse;"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:871
+#. Tag: title
+#: reference_raster.xml:1248
 #, no-c-format
-msgid "ST_AsRaster"
+msgid "Examples: New Out-db band"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:872
+#. Tag: programlisting
+#: reference_raster.xml:1249
 #, no-c-format
-msgid "Converts a PostGIS geometry to a PostGIS raster."
-msgstr ""
+msgid ""
+      "SELECT\n"
+      "        *\n"
+      "FROM ST_BandMetadata(\n"
+      "        ST_AddBand(\n"
+      "                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),\n"
+      "                '/home/raster/mytestraster.tif'::text, NULL::int[]\n"
+      "        ),\n"
+      "        ARRAY[]::integer[]\n"
+      ");\n"
+      "\n"
+      " bandnum | pixeltype | nodatavalue | isoutdb | path \n"
+      "---------+-----------+-------------+---------+------\n"
+      "       1 | 8BUI      |             | t       | /home/raster/mytestraster.tif\n"
+      "       2 | 8BUI      |             | t       | /home/raster/mytestraster.tif\n"
+      "       3 | 8BUI      |             | t       | /home/raster/mytestraster.tif"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1254
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"RT_ST_MetaData\"/>, <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1267
+#, no-c-format
+msgid "ST_AsRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1268
+#, no-c-format
+msgid "Converts a PostGIS geometry to a PostGIS raster."
+msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:876
+#: reference_raster.xml:1272
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_AsRaster</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef><type>raster </type> <parameter>ref</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>value=1</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>nodataval=0</parameter></paramd [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1024
+#: reference_raster.xml:1420
 #, no-c-format
 msgid "Converts a PostGIS geometry to a PostGIS raster. The many variants offers three groups of possibilities for setting the alignment and pixelsize of the resulting raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1026
+#: reference_raster.xml:1422
 #, no-c-format
 msgid "The first group, composed of the two first variants, produce a raster having the same alignment (<varname>scalex</varname>, <varname>scaley</varname>, <varname>gridx</varname> and <varname>gridy</varname>), pixel type and nodata value as the provided reference raster. You generally pass this reference raster by joining the table containing the geometry with the table containing the reference raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1028
+#: reference_raster.xml:1424
 #, no-c-format
 msgid "The second group, composed of four variants, let you set the dimensions of the raster by providing the parameters of a pixel size (<varname>scalex</varname> & <varname>scaley</varname> and <varname>skewx</varname> & <varname>skewy</varname>). The <varname>width</varname> & <varname>height</varname> of the resulting raster will be adjusted to fit the extent of the geometry. In most cases, you must cast integer <varname>scalex</varname> & <varname>scaley</varname> ar [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1030
+#: reference_raster.xml:1426
 #, no-c-format
 msgid "The third group, composed of four variants, let you fix the dimensions of the raster by providing the dimensions of the raster (<varname>width</varname> & <varname>height</varname>). The parameters of the pixel size (<varname>scalex</varname> & <varname>scaley</varname> and <varname>skewx</varname> & <varname>skewy</varname>) of the resulting raster will be adjusted to fit the extent of the geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1032
+#: reference_raster.xml:1428
 #, no-c-format
 msgid "The two first variants of each of those two last groups let you specify the alignment with an arbitrary corner of the alignment grid (<varname>gridx</varname> & <varname>gridy</varname>) and the two last variants takes the upper left corner (<varname>upperleftx</varname> & <varname>upperlefty</varname>)."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1034
+#: reference_raster.xml:1430
 #, no-c-format
 msgid "Each group of variant allows producing a one band raster or a multiple bands raster. To produce a multiple bands raster, you must provide an array of pixel types (<varname>pixeltype[]</varname>), an array of initial values (<varname>value</varname>) and an array of nodata values (<varname>nodataval</varname>). If not provided pixeltyped defaults to 8BUI, values to 1 and nodataval to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1036
+#: reference_raster.xml:1432
 #, no-c-format
 msgid "The output raster will be in the same spatial reference as the source geometry. The only exception is for variants with a reference raster. In this case the resulting raster will get the same SRID as the reference raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1038
+#: reference_raster.xml:1434
 #, no-c-format
 msgid "The optional <varname>touched</varname> parameter defaults to false and maps to the GDAL ALL_TOUCHED rasterization option, which determines if pixels touched by lines or polygons will be burned. Not just those on the line render path, or whose center point is within the polygon."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1040
+#: reference_raster.xml:1436
 #, no-c-format
 msgid "This is particularly useful for rendering jpegs and pngs of geometries directly from the database when using in combination with <xref linkend=\"RT_ST_AsPNG\"/> and other <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1044
+#: reference_raster.xml:1440
 #, no-c-format
 msgid "Not yet capable of rendering complex geometry types such as curves, TINS, and PolyhedralSurfaces, but should be able too once GDAL can."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:1049
+#: reference_raster.xml:1445
 #, no-c-format
 msgid "Examples: Output geometries as PNG files"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1055
+#: reference_raster.xml:1451
 #, no-c-format
 msgid "black circle"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1058
+#: reference_raster.xml:1454
 #, no-c-format
 msgid ""
       "-- this will output a black circle taking up 150 x 150 pixels --\n"
@@ -1222,13 +1576,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1065
+#: reference_raster.xml:1461
 #, no-c-format
 msgid "example from buffer rendered with just PostGIS"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1069
+#: reference_raster.xml:1465
 #, no-c-format
 msgid ""
       "-- the bands map to RGB bands - the value (118,154,118) - teal  --\n"
@@ -1240,37 +1594,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1075
+#: reference_raster.xml:1471
 #, no-c-format
 msgid ", <xref linkend=\"ST_Buffer\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsJPEG\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1081
+#: reference_raster.xml:1477
 #, no-c-format
 msgid "ST_Band"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1082
+#: reference_raster.xml:1478
 #, no-c-format
 msgid "Returns one or more bands of an existing raster as a new raster. Useful for building new rasters from existing rasters."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1086
+#: reference_raster.xml:1482
+#, no-c-format
+msgid "<funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = ARRAY[1]</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> </funcprototy [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1507
 #, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer[] </type> <parameter>nbands = ARRAY[1]</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_Band</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>text </type> <parameter>nbands</parameter></paramdef> <paramdef choic [...]
+msgid "Returns one or more bands of an existing raster as a new raster. Useful for building new rasters from existing rasters or export of only selected bands of a raster or rearranging the order of bands in a raster. If no band is specified, band 1 is assumed. Used as a helper function in various functions such as for deleting a band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1111
+#: reference_raster.xml:1509
 #, no-c-format
-msgid "Returns a single band of an existing raster as a new raster. Useful for building new rasters from existing rasters or export of only selected bands of a raster. If no band is specified, band 1 is assumed. Used as a helper function in various functions such as for deleting a band."
+msgid "For the <code>nbands</code> as text variant of function, the default delimiter is <code>,</code> which means you can ask for <code>'1,2,3'</code> and if you wanted to use a different delimeter you would do <code>ST_Band(rast, '1 at 2@3', '@')</code>. For asking for multiple bands, we strongly suggest you use the array form of this function e.g. <code>ST_Band(rast, '{1,2,3}'::int[]);</code> since the <code>text</code> list of bands form may be removed in future versions of PostGIS."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1120
+#: reference_raster.xml:1517
 #, no-c-format
 msgid ""
       "-- Make 2 new rasters: 1 containing band 1 of dummy, second containing band 2 of dummy and then reclassified as a 2BUI\n"
@@ -1287,11 +1647,11 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1122
+#: reference_raster.xml:1519
 #, no-c-format
 msgid ""
-      "-- Return bands 2 and 3. Use text to define bands\n"
-      "SELECT ST_NumBands(ST_Band(rast, '2,3')) As num_bands\n"
+      "-- Return bands 2 and 3. Using array cast syntax\n"
+      "SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands\n"
       "    FROM dummy_rast WHERE rid=2;\n"
       "    \n"
       "num_bands\n"
@@ -1305,25 +1665,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1132
+#: reference_raster.xml:1529
 #, no-c-format
 msgid "original (column rast)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1141
+#: reference_raster.xml:1538
 #, no-c-format
 msgid "dupe_band"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1150
+#: reference_raster.xml:1547
 #, no-c-format
 msgid "sing_band"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1158
+#: reference_raster.xml:1555
 #, no-c-format
 msgid ""
       "--Make a new raster with 2nd band of original and 1st band repeated twice,\n"
@@ -1335,55 +1695,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1164
+#: reference_raster.xml:1561
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_NumBands\"/>, , <xref linkend=\"RT_ST_Reclass\"/>"
+msgid ", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, <xref linkend=\"RT_reference\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1169
+#: reference_raster.xml:1567
 #, no-c-format
 msgid "ST_MakeEmptyRaster"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1170
+#: reference_raster.xml:1568
 #, no-c-format
 msgid "Returns an empty raster (having no bands) of given dimensions (width & height), upperleft X and Y, pixel size and rotation (scalex, scaley, skewx & skewy) and reference system (srid). If a raster is passed in, returns a new raster with the same size, alignment and SRID. If srid is left out, the spatial ref is set to unknown (0)."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1174
+#: reference_raster.xml:1572
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_MakeEmptyRaster</function></funcdef> <paramdef><type>integer </type> <parameter>width</parameter></paramdef> <paramdef><type>integer </type> <parameter>height</parameter></paramdef> <paramdef><type>float8 </type> <parameter>upperleftx</parameter></paramdef> <paramdef><ty [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1204
+#: reference_raster.xml:1602
 #, no-c-format
 msgid "Returns an empty raster (having no band) of given dimensions (width & height) and georeferenced in spatial (or world) coordinates with upper left X (upperleftx), upper left Y (upperlefty), pixel size and rotation (scalex, scaley, skewx & skewy) and reference system (srid)."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1207
+#: reference_raster.xml:1605
 #, no-c-format
 msgid "The last version use a single parameter to specify the pixel size (pixelsize). scalex is set to this argument and scaley is set to the negative value of this argument. skewx and skewy are set to 0."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1209
+#: reference_raster.xml:1607
 #, no-c-format
 msgid "If an existing raster is passed in, it returns a new raster with the same meta data settings (without the bands)."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1211
+#: reference_raster.xml:1609
 #, no-c-format
 msgid "If no srid is specified it defaults to 0. After you create an empty raster you probably want to add bands to it and maybe edit it. Refer to <xref linkend=\"RT_ST_AddBand\"/> to define bands and <xref linkend=\"RT_ST_SetValue\"/> to set initial pixel values."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1218
+#: reference_raster.xml:1616
 #, no-c-format
 msgid ""
       "INSERT INTO dummy_rast(rid,rast)\n"
@@ -1408,55 +1768,266 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1224
+#: reference_raster.xml:1622
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_MetaData\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_SkewX\"/>, , <xref linkend=\"RT_ST_SkewY\"/>"
 msgstr ""
 
+#. Tag: refname
+#: reference_raster.xml:1629
+#, no-c-format
+msgid "ST_Tile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1630
+#, no-c-format
+msgid "<refpurpose>Returns a set of rasters resulting from the split of the input raster based upon the desired dimensions of the output rasters.</refpurpose>"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:1634
+#, no-c-format
+msgid "<funcprototype> <funcdef>setof raster <function>ST_Tile</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>int[] </type> <parameter>nband</parameter></paramdef> <paramdef><type>integer </type> <parameter>width</parameter></paramdef> <paramdef><type>integer </type> <parameter>height</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>padwithnodata=FALSE</parameter></paramdef> <paramdef choice=\"opt [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1670
+#, no-c-format
+msgid "<para>Returns a set of rasters resulting from the split of the input raster based upon the desired dimensions of the output rasters.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1674
+#, no-c-format
+msgid "If <varname>padwithnodata</varname> = FALSE, edge tiles on the right and bottom sides of the raster may have different dimensions than the rest of the tiles. If <varname>padwithnodata</varname> = TRUE, all tiles will have the same dimensions with the possibilty that edge tiles being padded with NODATA values. If raster band(s) do not have NODATA value(s) specified, one can be specified by setting <varname>nodataval</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1679
+#, no-c-format
+msgid "If a specified band of the input raster is out-of-db, the corresponding band in the output rasters will also be out-of-db."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1690
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, 0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+      "\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, 0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, 0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, 0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+      "\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, 0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, 0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, 0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+      "), bar AS (\n"
+      "        SELECT ST_Union(rast) AS rast FROM foo\n"
+      "), baz AS (\n"
+      "        SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM bar\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_DumpValues(rast)\n"
+      "FROM baz;\n"
+      "\n"
+      "              st_dumpvalues               \n"
+      "------------------------------------------\n"
+      " (1,\"{{1,1,1},{1,1,1},{1,1,1}}\")\n"
+      " (2,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+      " (1,\"{{2,2,2},{2,2,2},{2,2,2}}\")\n"
+      " (2,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+      " (1,\"{{3,3,3},{3,3,3},{3,3,3}}\")\n"
+      " (2,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+      " (1,\"{{4,4,4},{4,4,4},{4,4,4}}\")\n"
+      " (2,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+      " (1,\"{{5,5,5},{5,5,5},{5,5,5}}\")\n"
+      " (2,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+      " (1,\"{{6,6,6},{6,6,6},{6,6,6}}\")\n"
+      " (2,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+      " (1,\"{{7,7,7},{7,7,7},{7,7,7}}\")\n"
+      " (2,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+      " (1,\"{{8,8,8},{8,8,8},{8,8,8}}\")\n"
+      " (2,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+      " (1,\"{{9,9,9},{9,9,9},{9,9,9}}\")\n"
+      " (2,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+      "(18 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1692
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, 0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL\n"
+      "\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, 0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, 0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, 0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL\n"
+      "\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, 0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, 0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, 0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast\n"
+      "), bar AS (\n"
+      "        SELECT ST_Union(rast) AS rast FROM foo\n"
+      "), baz AS (\n"
+      "        SELECT ST_Tile(rast, 3, 3, 2) AS rast FROM bar\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_DumpValues(rast)\n"
+      "FROM baz;\n"
+      "\n"
+      "              st_dumpvalues               \n"
+      "------------------------------------------\n"
+      " (1,\"{{10,10,10},{10,10,10},{10,10,10}}\")\n"
+      " (1,\"{{20,20,20},{20,20,20},{20,20,20}}\")\n"
+      " (1,\"{{30,30,30},{30,30,30},{30,30,30}}\")\n"
+      " (1,\"{{40,40,40},{40,40,40},{40,40,40}}\")\n"
+      " (1,\"{{50,50,50},{50,50,50},{50,50,50}}\")\n"
+      " (1,\"{{60,60,60},{60,60,60},{60,60,60}}\")\n"
+      " (1,\"{{70,70,70},{70,70,70},{70,70,70}}\")\n"
+      " (1,\"{{80,80,80},{80,80,80},{80,80,80}}\")\n"
+      " (1,\"{{90,90,90},{90,90,90},{90,90,90}}\")\n"
+      "(9 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1698
+#, no-c-format
+msgid ", <xref linkend=\"RT_Retile\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1708
+#, no-c-format
+msgid "ST_Retile"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1709
+#, no-c-format
+msgid "Return a set of configured tiles from an arbitrarily tiled raster coverage."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1717
+#, no-c-format
+msgid "<funcdef>SETOF raster <function>ST_Retile</function></funcdef> <paramdef><type>regclass </type> <parameter>tab</parameter></paramdef> <paramdef><type>name </type> <parameter>col</parameter></paramdef> <paramdef><type>geometry </type> <parameter>ext</parameter></paramdef> <paramdef><type>float8 </type> <parameter>sfx</parameter></paramdef> <paramdef><type>float8 </type> <parameter>sfy</parameter></paramdef> <paramdef><type>int </type> <parameter>tw</parameter></paramdef> <paramdef> [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1735
+#, no-c-format
+msgid "Return a set of tiles having the specified scale (<varname>sfx</varname>, <varname>sfy</varname>) and max size (<varname>tw</varname>, <varname>th</varname>) and covering the specified extent (<varname>ext</varname>) with data coming from the specified raster coverage (<varname>tab</varname>, <varname>col</varname>)."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1759
+#, no-c-format
+msgid "ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1760
+#, no-c-format
+msgid "Returns a raster from a supported GDAL raster file."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1765
+#, no-c-format
+msgid "<funcdef>raster <function>ST_FromGDALRaster</function></funcdef> <paramdef><type>bytea </type> <parameter>gdaldata</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>srid=NULL</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1777
+#, no-c-format
+msgid "Returns a raster from a supported GDAL raster file. <varname>gdaldata</varname> is of type bytea and should be the contents of the GDAL raster file."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1781
+#, no-c-format
+msgid "If <varname>srid</varname> is NULL, the function will try to autmatically assign the SRID from the GDAL raster. If <varname>srid</varname> is provided, the value provided will override any automatically assigned SRID."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1791
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_AsPNG(ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 0.1, -0.1, 0, 0, 4326), 1, '8BUI', 1, 0), 2, '8BUI', 2, 0), 3, '8BUI', 3, 0)) AS png\n"
+      "),\n"
+      "bar AS (\n"
+      "        SELECT 1 AS rid, ST_FromGDALRaster(png) AS rast FROM foo\n"
+      "        UNION ALL\n"
+      "        SELECT 2 AS rid, ST_FromGDALRaster(png, 3310) AS rast FROM foo\n"
+      ")\n"
+      "SELECT\n"
+      "        rid,\n"
+      "        ST_Metadata(rast) AS metadata,\n"
+      "        ST_SummaryStats(rast, 1) AS stats1,\n"
+      "        ST_SummaryStats(rast, 2) AS stats2,\n"
+      "        ST_SummaryStats(rast, 3) AS stats3\n"
+      "FROM bar\n"
+      "ORDER BY rid;\n"
+      "\n"
+      " rid |         metadata          |    stats1     |    stats2     |     stats3     \n"
+      "-----+---------------------------+---------------+---------------+----------------\n"
+      "   1 | (0,0,2,2,1,-1,0,0,0,3)    | (4,4,1,0,1,1) | (4,8,2,0,2,2) | (4,12,3,0,3,3)\n"
+      "   2 | (0,0,2,2,1,-1,0,0,3310,3) | (4,4,1,0,1,1) | (4,8,2,0,2,2) | (4,12,3,0,3,3)\n"
+      "(2 rows)"
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:1229
+#: reference_raster.xml:1806
 #, no-c-format
 msgid "Raster Accessors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1233
+#: reference_raster.xml:1810
 #, no-c-format
 msgid "ST_GeoReference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1234
+#: reference_raster.xml:1811
 #, no-c-format
 msgid "Returns the georeference meta data in GDAL or ESRI format as commonly seen in a world file. Default is GDAL."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1239
+#: reference_raster.xml:1816
 #, no-c-format
 msgid "<funcdef>text <function>ST_GeoReference</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1250
+#: reference_raster.xml:1827
 #, no-c-format
 msgid "Returns the georeference meta data including carriage return in GDAL or ESRI format as commonly seen in a <ulink url=\"http://en.wikipedia.org/wiki/World_file\">world file</ulink>. Default is GDAL if no type specified. type is string 'GDAL' or 'ESRI'."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1252 reference_raster.xml:3257
+#: reference_raster.xml:1829 reference_raster.xml:4065
 #, no-c-format
 msgid "Difference between format representations is as follows:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1253 reference_raster.xml:3258
+#: reference_raster.xml:1830 reference_raster.xml:4066
 #, no-c-format
 msgid "<varname>GDAL</varname>:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1254
+#: reference_raster.xml:1831
 #, no-c-format
 msgid ""
       "scalex \n"
@@ -1468,13 +2039,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1255 reference_raster.xml:3260
+#: reference_raster.xml:1832 reference_raster.xml:4068
 #, no-c-format
 msgid "<varname>ESRI</varname>:"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1256
+#: reference_raster.xml:1833
 #, no-c-format
 msgid ""
       "scalex \n"
@@ -1486,7 +2057,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1262
+#: reference_raster.xml:1839
 #, no-c-format
 msgid ""
       "SELECT ST_GeoReference(rast, 'ESRI') As esri_ref, ST_GeoReference(rast, 'GDAL') As gdal_ref\n"
@@ -1503,37 +2074,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1267
+#: reference_raster.xml:1844
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1273
+#: reference_raster.xml:1850
 #, no-c-format
 msgid "ST_Height"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1274
+#: reference_raster.xml:1851
 #, no-c-format
 msgid "Returns the height of the raster in pixels."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1279
+#: reference_raster.xml:1856
 #, no-c-format
 msgid "<funcdef>integer <function>ST_Height</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1289
+#: reference_raster.xml:1866
 #, no-c-format
 msgid "Returns the height of the raster."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1295
+#: reference_raster.xml:1872
 #, no-c-format
 msgid ""
       "SELECT rid, ST_Height(rast) As rastheight\n"
@@ -1546,31 +2117,124 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1307
+#: reference_raster.xml:1884
+#, no-c-format
+msgid "ST_IsEmpty"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1885
+#, no-c-format
+msgid "<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). Otherwise, returns false.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1890
+#, no-c-format
+msgid "<funcdef>boolean <function>ST_IsEmpty</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1900
+#, no-c-format
+msgid "<para>Returns true if the raster is empty (width = 0 and height = 0). Otherwise, returns false.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1908
+#, no-c-format
+msgid ""
+      "SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
+      "st_isempty |\n"
+      "-----------+\n"
+      "f          |\n"
+      "                       \n"
+      "                        \n"
+      "SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
+      "st_isempty |\n"
+      "-----------+\n"
+      "t          |"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1920
+#, no-c-format
+msgid "ST_MemSize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:1922
+#, no-c-format
+msgid "<refpurpose>Returns the amount of space (in bytes) the raster takes.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:1927
+#, no-c-format
+msgid "<funcdef>integer <function>ST_MemSize</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1937
+#, no-c-format
+msgid "<para>Returns the amount of space (in bytes) the raster takes.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1938
+#, no-c-format
+msgid "This is a nice compliment to PostgreSQL built in functions pg_column_size, pg_size_pretty, pg_relation_size, pg_total_relation_size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1939
+#, no-c-format
+msgid "pg_relation_size which gives the byte size of a table may return byte size lower than ST_MemSize. This is because pg_relation_size does not add toasted table contribution and large geometries are stored in TOAST tables. pg_column_size might return lower because it returns the compressed size."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:1941
+#, no-c-format
+msgid "pg_total_relation_size - includes, the table, the toasted tables, and the indexes."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:1951
+#, no-c-format
+msgid ""
+      "SELECT ST_MemSize(ST_AsRaster(ST_Buffer(ST_Point(1,5),10,1000),150, 150, '8BUI')) As rast_mem;\n"
+      "                \n"
+      "                rast_mem\n"
+      "                --------\n"
+      "                22568"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:1964
 #, no-c-format
 msgid "ST_MetaData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1308
+#: reference_raster.xml:1965
 #, no-c-format
 msgid "Returns basic meta data about a raster object such as pixel size, rotation (skew), upper, lower left, etc."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1313
+#: reference_raster.xml:1970
 #, no-c-format
 msgid "<funcdef>record <function>ST_MetaData</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1323
+#: reference_raster.xml:1980
 #, no-c-format
 msgid "Returns basic meta data about a raster object such as pixel size, rotation (skew), upper, lower left, etc. Columns returned: upperleftx | upperlefty | width | height | scalex | scaley | skewx | skewy | srid | numbands"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1330
+#: reference_raster.xml:1987
 #, no-c-format
 msgid ""
       "SELECT rid, (foo.md).*  \n"
@@ -1584,37 +2248,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1336 reference_raster.xml:3901
+#: reference_raster.xml:1993 reference_raster.xml:4844
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_NumBands\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1342
+#: reference_raster.xml:1999
 #, no-c-format
 msgid "ST_NumBands"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1343
+#: reference_raster.xml:2000
 #, no-c-format
 msgid "<refpurpose>Returns the number of bands in the raster object.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1348
+#: reference_raster.xml:2005
 #, no-c-format
 msgid "<funcdef>integer <function>ST_NumBands</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1358
+#: reference_raster.xml:2015
 #, no-c-format
 msgid "<para>Returns the number of bands in the raster object.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1364
+#: reference_raster.xml:2021
 #, no-c-format
 msgid ""
       "SELECT rid, ST_NumBands(rast) As numbands\n"
@@ -1627,43 +2291,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1376
+#: reference_raster.xml:2033
 #, no-c-format
 msgid "ST_PixelHeight"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1377
+#: reference_raster.xml:2034
 #, no-c-format
 msgid "Returns the pixel height in geometric units of the spatial reference system."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1382
+#: reference_raster.xml:2039
 #, no-c-format
 msgid "<funcdef>double precision <function>ST_PixelHeight</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1392
+#: reference_raster.xml:2049
 #, no-c-format
 msgid "Returns the height of a pixel in geometric units of the spatial reference system. In the common case where there is no skew, the pixel height is just the scale ratio between geometric coordinates and raster pixels."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1394
+#: reference_raster.xml:2051
 #, no-c-format
 msgid "Refer to <xref linkend=\"RT_ST_PixelWidth\"/> for a diagrammatic visualization of the relationship."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:1398 reference_raster.xml:1453
+#: reference_raster.xml:2055 reference_raster.xml:2115
 #, no-c-format
 msgid "Examples: Rasters with no skew"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1400
+#: reference_raster.xml:2057
 #, no-c-format
 msgid ""
       "SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
@@ -1678,13 +2342,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:1405 reference_raster.xml:1460
+#: reference_raster.xml:2062 reference_raster.xml:2122
 #, no-c-format
 msgid "Examples: Rasters with skew different than 0"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1407
+#: reference_raster.xml:2064
 #, no-c-format
 msgid ""
       "SELECT ST_Height(rast) As rastheight, ST_PixelHeight(rast) As pixheight,\n"
@@ -1700,55 +2364,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1414 reference_raster.xml:1469 reference_raster.xml:3307
+#: reference_raster.xml:2071 reference_raster.xml:2131 reference_raster.xml:4124
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1421
+#: reference_raster.xml:2083
 #, no-c-format
 msgid "ST_PixelWidth"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1422
+#: reference_raster.xml:2084
 #, no-c-format
 msgid "Returns the pixel width in geometric units of the spatial reference system."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1427
+#: reference_raster.xml:2089
 #, no-c-format
 msgid "<funcdef>double precision <function>ST_PixelWidth</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1437
+#: reference_raster.xml:2099
 #, no-c-format
 msgid "Returns the width of a pixel in geometric units of the spatial reference system. In the common case where there is no skew, the pixel width is just the scale ratio between geometric coordinates and raster pixels."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1439
+#: reference_raster.xml:2101
 #, no-c-format
 msgid "The following diagram demonstrates the relationship:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1446
+#: reference_raster.xml:2108
 #, no-c-format
 msgid "Pixel Width: Pixel size in the i direction"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1446
+#: reference_raster.xml:2108
 #, no-c-format
 msgid "Pixel Height: Pixel size in the j direction"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1455
+#: reference_raster.xml:2117
 #, no-c-format
 msgid ""
       "SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
@@ -1763,7 +2427,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1462
+#: reference_raster.xml:2124
 #, no-c-format
 msgid ""
       "SELECT ST_Width(rast) As rastwidth, ST_PixelWidth(rast) As pixwidth,\n"
@@ -1779,37 +2443,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1475
+#: reference_raster.xml:2137
 #, no-c-format
 msgid "ST_ScaleX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1476
+#: reference_raster.xml:2138
 #, no-c-format
 msgid "Returns the X component of the pixel width in units of coordinate reference system."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1481
+#: reference_raster.xml:2143
 #, no-c-format
 msgid "<funcdef>float8 <function>ST_ScaleX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1491
+#: reference_raster.xml:2153
 #, no-c-format
 msgid "Returns the X component of the pixel width in units of coordinate reference system. Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more details."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1493
+#: reference_raster.xml:2155
 #, no-c-format
 msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeX."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1499
+#: reference_raster.xml:2161
 #, no-c-format
 msgid ""
       "SELECT rid, ST_ScaleX(rast) As rastpixwidth\n"
@@ -1822,37 +2486,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1512
+#: reference_raster.xml:2174
 #, no-c-format
 msgid "ST_ScaleY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1513
+#: reference_raster.xml:2175
 #, no-c-format
 msgid "Returns the Y component of the pixel height in units of coordinate reference system."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1518
+#: reference_raster.xml:2180
 #, no-c-format
 msgid "<funcdef>float8 <function>ST_ScaleY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1528
+#: reference_raster.xml:2190
 #, no-c-format
 msgid "Returns the Y component of the pixel height in units of coordinate reference system. May be negative. Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more details."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1531
+#: reference_raster.xml:2193
 #, no-c-format
 msgid "Changed: 2.0.0. In WKTRaster versions this was called ST_PixelSizeY."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1537
+#: reference_raster.xml:2199
 #, no-c-format
 msgid ""
       "SELECT rid, ST_ScaleY(rast) As rastpixheight\n"
@@ -1865,44 +2529,38 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1550
+#: reference_raster.xml:2212
 #, no-c-format
-msgid "ST_Raster2WorldCoord"
+msgid "ST_RasterToWorldCoord"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1551
+#: reference_raster.xml:2213
 #, no-c-format
 msgid "Returns the raster's upper left corner as geometric X and Y (longitude and latitude) given a column and row. Column and row starts at 1."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1556
+#: reference_raster.xml:2218
 #, no-c-format
-msgid "<funcdef>record <function>ST_Raster2WorldCoord</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></paramdef>"
+msgid "<funcdef>record <function>ST_RasterToWorldCoord</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1568
+#: reference_raster.xml:2230
 #, no-c-format
 msgid "Returns the upper left corner as geometric X and Y (longitude and latitude) given a column and row. Returned X and Y are in geometric units of the georeferenced raster. Numbering of column and row starts at 1 but if either parameter is passed a zero, a negative number or a number greater than the respective dimension of the raster, it will return coordinates outside of the raster assuming the raster's grid is applicable outside the raster's bounds."
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:1573 reference_raster.xml:1979 reference_raster.xml:2558 reference_raster.xml:2603 reference_raster.xml:2646 reference_raster.xml:2691 reference_raster.xml:2836 reference_raster.xml:2933 reference_raster.xml:3102 reference_raster.xml:3221 reference_raster.xml:5578 reference_raster.xml:6858 reference_raster.xml:6907 reference_raster.xml:7136 reference_raster.xml:7223 reference_raster.xml:7304 reference_raster.xml:7385 reference_raster.xml:7466 reference_raster.xml: [...]
-#, no-c-format
-msgid "Availability: 2.1.0"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_raster.xml:1580
+#: reference_raster.xml:2242
 #, no-c-format
 msgid ""
       "-- non-skewed raster\n"
       "SELECT\n"
       "        rid,\n"
-      "        (ST_Raster2WorldCoord(rast,1, 1)).*,\n"
-      "        (ST_Raster2WorldCoord(rast,2, 2)).*\n"
+      "        (ST_RasterToWorldCoord(rast,1, 1)).*,\n"
+      "        (ST_RasterToWorldCoord(rast,2, 2)).*\n"
       "FROM dummy_rast\n"
       "\n"
       " rid | longitude  | latitude | longitude |  latitude  \n"
@@ -1912,14 +2570,14 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1582
+#: reference_raster.xml:2244
 #, no-c-format
 msgid ""
       "-- skewed raster\n"
       "SELECT\n"
       "        rid,\n"
-      "        (ST_Raster2WorldCoord(rast, 1, 1)).*,\n"
-      "        (ST_Raster2WorldCoord(rast, 2, 3)).*\n"
+      "        (ST_RasterToWorldCoord(rast, 1, 1)).*,\n"
+      "        (ST_RasterToWorldCoord(rast, 2, 3)).*\n"
       "FROM (\n"
       "        SELECT\n"
       "                rid,\n"
@@ -1934,48 +2592,54 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1589
+#: reference_raster.xml:2251
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
+msgid ", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1599
+#: reference_raster.xml:2261
 #, no-c-format
-msgid "ST_Raster2WorldCoordX"
+msgid "ST_RasterToWorldCoordX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1600
+#: reference_raster.xml:2262
 #, no-c-format
 msgid "Returns the geometric X coordinate upper left of a raster, column and row. Numbering of columns and rows starts at 1."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1605
+#: reference_raster.xml:2267
 #, no-c-format
-msgid "<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> <paramdef> [...]
+msgid "<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> <paramde [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1623
+#: reference_raster.xml:2285
 #, no-c-format
 msgid "Returns the upper left X coordinate of a raster column row in geometric units of the georeferenced raster. Numbering of columns and rows starts at 1 but if you pass in a negative number or number higher than number of columns in raster, it will give you coordinates outside of the raster file to left or right with the assumption that the skew and pixel sizes are same as selected raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1628
+#: reference_raster.xml:2290
 #, no-c-format
 msgid "For non-skewed rasters, providing the X column is sufficient. For skewed rasters, the georeferenced coordinate is a function of the ST_ScaleX and ST_SkewX and row and column. An error will be raised if you give just the X column for a skewed raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2294
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordX"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:1636
+#: reference_raster.xml:2301
 #, no-c-format
 msgid ""
       "-- non-skewed raster providing column is sufficient                                        \n"
-      "SELECT rid, ST_Raster2WorldCoordX(rast,1) As x1coord, \n"
-      "        ST_Raster2WorldCoordX(rast,2) As x2coord,\n"
+      "SELECT rid, ST_RasterToWorldCoordX(rast,1) As x1coord, \n"
+      "        ST_RasterToWorldCoordX(rast,2) As x2coord,\n"
       "        ST_ScaleX(rast) As pixelx\n"
       "FROM dummy_rast;\n"
       "\n"
@@ -1986,12 +2650,12 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1638
+#: reference_raster.xml:2303
 #, no-c-format
 msgid ""
       "-- for fun lets skew it                                \n"
-      "SELECT rid, ST_Raster2WorldCoordX(rast, 1, 1) As x1coord, \n"
-      "        ST_Raster2WorldCoordX(rast, 2, 3) As x2coord,\n"
+      "SELECT rid, ST_RasterToWorldCoordX(rast, 1, 1) As x1coord, \n"
+      "        ST_RasterToWorldCoordX(rast, 2, 3) As x2coord,\n"
       "        ST_ScaleX(rast) As pixelx\n"
       "FROM (SELECT rid, ST_SetSkew(rast, 100.5, 0) As rast FROM dummy_rast) As foo;\n"
       "\n"
@@ -2002,48 +2666,54 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1645
+#: reference_raster.xml:2310
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
+msgid ", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewX\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1651
+#: reference_raster.xml:2316
 #, no-c-format
-msgid "ST_Raster2WorldCoordY"
+msgid "ST_RasterToWorldCoordY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1652
+#: reference_raster.xml:2317
 #, no-c-format
 msgid "Returns the geometric Y coordinate upper left corner of a raster, column and row. Numbering of columns and rows starts at 1."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1657
+#: reference_raster.xml:2322
 #, no-c-format
-msgid "<funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float8 <function>ST_Raster2WorldCoordY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> <paramdef><ty [...]
+msgid "<funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>yrow</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>float8 <function>ST_RasterToWorldCoordY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>xcolumn</parameter></paramdef> <paramdef>< [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1675
+#: reference_raster.xml:2340
 #, no-c-format
 msgid "Returns the upper left Y coordinate of a raster column row in geometric units of the georeferenced raster. Numbering of columns and rows starts at 1 but if you pass in a negative number or number higher than number of columns/rows in raster, it will give you coordinates outside of the raster file to left or right with the assumption that the skew and pixel sizes are same as selected raster tile."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1680
+#: reference_raster.xml:2345
 #, no-c-format
 msgid "For non-skewed rasters, providing the Y column is sufficient. For skewed rasters, the georeferenced coordinate is a function of the ST_ScaleY and ST_SkewY and row and column. An error will be raised if you give just the Y row for a skewed raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2349
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_Raster2WorldCoordY"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:1688
+#: reference_raster.xml:2355
 #, no-c-format
 msgid ""
       "-- non-skewed raster providing row is sufficient                                        \n"
-      "SELECT rid, ST_Raster2WorldCoordY(rast,1) As y1coord, \n"
-      "        ST_Raster2WorldCoordY(rast,3) As y2coord,\n"
+      "SELECT rid, ST_RasterToWorldCoordY(rast,1) As y1coord, \n"
+      "        ST_RasterToWorldCoordY(rast,3) As y2coord,\n"
       "        ST_ScaleY(rast) As pixely\n"
       "FROM dummy_rast;\n"
       "\n"
@@ -2054,12 +2724,12 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1690
+#: reference_raster.xml:2357
 #, no-c-format
 msgid ""
       "-- for fun lets skew it                                \n"
-      "SELECT rid, ST_Raster2WorldCoordY(rast,1,1) As y1coord, \n"
-      "        ST_Raster2WorldCoordY(rast,2,3) As y2coord,\n"
+      "SELECT rid, ST_RasterToWorldCoordY(rast,1,1) As y1coord, \n"
+      "        ST_RasterToWorldCoordY(rast,2,3) As y2coord,\n"
       "        ST_ScaleY(rast) As pixely\n"
       "FROM (SELECT rid, ST_SetSkew(rast,0,100.5) As rast FROM dummy_rast) As foo;\n"
       "\n"
@@ -2070,37 +2740,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1697
+#: reference_raster.xml:2364
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Raster2WorldCoordX\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
+msgid ", <xref linkend=\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1703
+#: reference_raster.xml:2370
 #, no-c-format
 msgid "ST_Rotation"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1704
+#: reference_raster.xml:2371
 #, no-c-format
 msgid "Returns the rotation of the raster in radian."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1709
+#: reference_raster.xml:2376
 #, no-c-format
 msgid "<funcdef>float8 <function>ST_Rotation</function></funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1719
+#: reference_raster.xml:2386
 #, no-c-format
 msgid "Returns the uniform rotation of the raster in radian. If a raster does not have uniform rotation, NaN is returned. Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more details."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1726
+#: reference_raster.xml:2393
 #, no-c-format
 msgid ""
       "SELECT rid, ST_Rotation(ST_SetScale(ST_SetSkew(rast, sqrt(2)), sqrt(2))) as rot FROM dummy_rast;\n"
@@ -2112,37 +2782,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1732
+#: reference_raster.xml:2399
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SetScale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1738
+#: reference_raster.xml:2405
 #, no-c-format
 msgid "ST_SkewX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1739
+#: reference_raster.xml:2406
 #, no-c-format
 msgid "Returns the georeference X skew (or rotation parameter)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1744
+#: reference_raster.xml:2411
 #, no-c-format
 msgid "<funcdef>float8 <function>ST_SkewX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1754
+#: reference_raster.xml:2421
 #, no-c-format
 msgid "Returns the georeference X skew (or rotation parameter). Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more details."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1761 reference_raster.xml:1797
+#: reference_raster.xml:2428 reference_raster.xml:2464
 #, no-c-format
 msgid ""
       "SELECT rid, ST_SkewX(rast) As skewx, ST_SkewY(rast) As skewy, \n"
@@ -2167,73 +2837,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1768
+#: reference_raster.xml:2435
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1774
+#: reference_raster.xml:2441
 #, no-c-format
 msgid "ST_SkewY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1775
+#: reference_raster.xml:2442
 #, no-c-format
 msgid "Returns the georeference Y skew (or rotation parameter)."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1780
+#: reference_raster.xml:2447
 #, no-c-format
 msgid "<funcdef>float8 <function>ST_SkewY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1790
+#: reference_raster.xml:2457
 #, no-c-format
 msgid "Returns the georeference Y skew (or rotation parameter). Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more details."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1804
+#: reference_raster.xml:2471
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SetSkew\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1810
+#: reference_raster.xml:2477
 #, no-c-format
 msgid "ST_SRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1811
+#: reference_raster.xml:2478
 #, no-c-format
 msgid "Returns the spatial reference identifier of the raster as defined in spatial_ref_sys table."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1816
+#: reference_raster.xml:2483
 #, no-c-format
 msgid "<funcdef>integer <function>ST_SRID</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1826
+#: reference_raster.xml:2493
 #, no-c-format
 msgid "Returns the spatial reference identifier of the raster object as defined in the spatial_ref_sys table."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1827
+#: reference_raster.xml:2494
 #, no-c-format
 msgid "From PostGIS 2.0+ the srid of a non-georeferenced raster/geometry is 0 instead of the prior -1."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1833
+#: reference_raster.xml:2500
 #, no-c-format
 msgid ""
       "SELECT ST_SRID(rast) As srid\n"
@@ -2245,31 +2915,87 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1845
+#: reference_raster.xml:2512
 #, no-c-format
-msgid "ST_UpperLeftX"
+msgid "ST_Summary"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1846
+#: reference_raster.xml:2513
 #, no-c-format
-msgid "<refpurpose>Returns the upper left X coordinate of raster in projected spatial ref.</refpurpose>"
+msgid "<refpurpose>Returns a text summary of the contents of the raster.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1851
+#: reference_raster.xml:2518
 #, no-c-format
-msgid "<funcdef>float8 <function>ST_UpperLeftX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgid "<funcdef>text <function>ST_Summary</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1861
+#: reference_raster.xml:2528
 #, no-c-format
-msgid "<para>Returns the upper left X coordinate of raster in projected spatial ref.</para>"
+msgid "<para>Returns a text summary of the contents of the raster.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1867
+#: reference_raster.xml:2535
+#, no-c-format
+msgid ""
+      "SELECT ST_Summary(\n"
+      "        ST_AddBand(\n"
+      "                ST_AddBand(\n"
+      "                        ST_AddBand(\n"
+      "                                ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0)\n"
+      "                                , 1, '8BUI', 1, 0\n"
+      "                        )\n"
+      "                        , 2, '32BF', 0, -9999\n"
+      "                )\n"
+      "                , 3, '16BSI', 0, NULL\n"
+      "        )\n"
+      ");\n"
+      "\n"
+      "                            st_summary                            \n"
+      "------------------------------------------------------------------\n"
+      " Raster of 10x10 pixels has 3 bands and extent of BOX(0 -10,10 0)+\n"
+      "     band 1 of pixtype 8BUI is in-db with NODATA value of 0      +\n"
+      "     band 2 of pixtype 32BF is in-db with NODATA value of -9999  +\n"
+      "     band 3 of pixtype 16BSI is in-db with no NODATA value\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2540
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_BandMetaData\"/>, <xref linkend=\"ST_Summary\"/> <xref linkend=\"ST_Extent\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:2551
+#, no-c-format
+msgid "ST_UpperLeftX"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:2552
+#, no-c-format
+msgid "<refpurpose>Returns the upper left X coordinate of raster in projected spatial ref.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:2557
+#, no-c-format
+msgid "<funcdef>float8 <function>ST_UpperLeftX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:2567
+#, no-c-format
+msgid "<para>Returns the upper left X coordinate of raster in projected spatial ref.</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:2573
 #, no-c-format
 msgid ""
       "SELECt rid, ST_UpperLeftX(rast) As ulx\n"
@@ -2282,37 +3008,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1873 reference_raster.xml:1907
+#: reference_raster.xml:2579 reference_raster.xml:2613
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_Box3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1879
+#: reference_raster.xml:2585
 #, no-c-format
 msgid "ST_UpperLeftY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1880
+#: reference_raster.xml:2586
 #, no-c-format
 msgid "<refpurpose>Returns the upper left Y coordinate of raster in projected spatial ref.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1885
+#: reference_raster.xml:2591
 #, no-c-format
 msgid "<funcdef>float8 <function>ST_UpperLeftY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1895
+#: reference_raster.xml:2601
 #, no-c-format
 msgid "<para>Returns the upper left Y coordinate of raster in projected spatial ref.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1901
+#: reference_raster.xml:2607
 #, no-c-format
 msgid ""
       "SELECT rid, ST_UpperLeftY(rast) As uly\n"
@@ -2325,31 +3051,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1913
+#: reference_raster.xml:2619
 #, no-c-format
 msgid "ST_Width"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1914
+#: reference_raster.xml:2620
 #, no-c-format
 msgid "<refpurpose>Returns the width of the raster in pixels.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:1919
+#: reference_raster.xml:2625
 #, no-c-format
 msgid "<funcdef>integer <function>ST_Width</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1929
+#: reference_raster.xml:2635
 #, no-c-format
 msgid "<para>Returns the width of the raster in pixels.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1935
+#: reference_raster.xml:2641
 #, no-c-format
 msgid ""
       "SELECT ST_Width(rast) As rastwidth\n"
@@ -2361,37 +3087,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:1949
+#: reference_raster.xml:2655
 #, no-c-format
-msgid "ST_World2RasterCoord"
+msgid "ST_WorldToRasterCoord"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:1950
+#: reference_raster.xml:2656
 #, no-c-format
 msgid "Returns the upper left corner as column and row given geometric X and Y (longitude and latitude) or a point geometry expressed in the spatial reference coordinate system of the raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:1954
+#: reference_raster.xml:2660
 #, no-c-format
-msgid "<funcprototype> <funcdef>integer <function>ST_World2RasterCoord</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer <function>ST_World2RasterCoord</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>longitude</parameter></paramdef> <pa [...]
+msgid "<funcprototype> <funcdef>record <function>ST_WorldToRasterCoord</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>record <function>ST_WorldToRasterCoord</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>longitude</parameter></paramdef> <pa [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1973
+#: reference_raster.xml:2679
 #, no-c-format
 msgid "Returns the upper left corner as column and row given geometric X and Y (longitude and latitude) or a point geometry. This function works regardless of whether or not the geometric X and Y or point geometry is outside the extent of the raster. Geometric X and Y must be expressed in the spatial reference coordinate system of the raster."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:1986
+#: reference_raster.xml:2692
 #, no-c-format
 msgid ""
       "SELECT\n"
       "        rid,\n"
-      "        (ST_World2RasterCoord(rast,3427927.8,20.5)).*,\n"
-      "        (ST_World2RasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',ST_SRID(rast)))).*\n"
+      "        (ST_WorldToRasterCoord(rast,3427927.8,20.5)).*,\n"
+      "        (ST_WorldToRasterCoord(rast,ST_GeomFromText('POINT(3427927.8 20.5)',ST_SRID(rast)))).*\n"
       "FROM dummy_rast;\n"
       "\n"
       " rid | columnx |   rowy    | columnx |   rowy    \n"
@@ -2401,42 +3127,48 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:1992
+#: reference_raster.xml:2698
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_World2RasterCoordY\"/>, <xref linkend=\"RT_ST_Raster2WorldCoordX\"/>, <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgid ", <xref linkend=\"RT_ST_WorldToRasterCoordY\"/>, <xref linkend=\"RT_ST_RasterToWorldCoordX\"/>, <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2004
+#: reference_raster.xml:2710
 #, no-c-format
-msgid "ST_World2RasterCoordX"
+msgid "ST_WorldToRasterCoordX"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2005
+#: reference_raster.xml:2711
 #, no-c-format
 msgid "Returns the column in the raster of the point geometry (pt) or a X and Y world coordinate (xw, yw) represented in world spatial reference system of raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2010
+#: reference_raster.xml:2716
 #, no-c-format
-msgid "<funcprototype> <funcdef>integer <function>ST_World2RasterCoordX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer <function>ST_World2RasterCoordX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>xw</parameter></paramdef> </funcpr [...]
+msgid "<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordX</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>xw</parameter></paramdef> </func [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2035
+#: reference_raster.xml:2741
 #, no-c-format
 msgid "Returns the column in the raster of the point geometry (pt) or a X and Y world coordinate (xw, yw). A point, or (both xw and yw world coordinates are required if a raster is skewed). If a raster is not skewed then xw is sufficient. World coordinates are in the spatial reference coordinate system of the raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2743
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordX"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2042
+#: reference_raster.xml:2749
 #, no-c-format
 msgid ""
-      "SELECT rid, ST_World2RasterCoordX(rast,3427927.8) As xcoord, \n"
-      "                ST_World2RasterCoordX(rast,3427927.8,20.5) As xcoord_xwyw, \n"
-      "                ST_World2RasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 20.5)',ST_SRID(rast))) As ptxcoord\n"
+      "SELECT rid, ST_WorldToRasterCoordX(rast,3427927.8) As xcoord, \n"
+      "                ST_WorldToRasterCoordX(rast,3427927.8,20.5) As xcoord_xwyw, \n"
+      "                ST_WorldToRasterCoordX(rast,ST_GeomFromText('POINT(3427927.8 20.5)',ST_SRID(rast))) As ptxcoord\n"
       "FROM dummy_rast;\n"
       "\n"
       " rid | xcoord  |  xcoord_xwyw   | ptxcoord\n"
@@ -2446,42 +3178,48 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2048 reference_raster.xml:2102
+#: reference_raster.xml:2755 reference_raster.xml:2810
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Raster2WorldCoordY\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgid ", <xref linkend=\"RT_ST_RasterToWorldCoordY\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2058
+#: reference_raster.xml:2765
 #, no-c-format
-msgid "ST_World2RasterCoordY"
+msgid "ST_WorldToRasterCoordY"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2059
+#: reference_raster.xml:2766
 #, no-c-format
 msgid "Returns the row in the raster of the point geometry (pt) or a X and Y world coordinate (xw, yw) represented in world spatial reference system of raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2064
+#: reference_raster.xml:2771
 #, no-c-format
-msgid "<funcprototype> <funcdef>integer <function>ST_World2RasterCoordY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer <function>ST_World2RasterCoordY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>xw</parameter></paramdef> </funcpr [...]
+msgid "<funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>integer <function>ST_WorldToRasterCoordY</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>xw</parameter></paramdef> </func [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2089
+#: reference_raster.xml:2796
 #, no-c-format
 msgid "Returns the row in the raster of the point geometry (pt) or a X and Y world coordinate (xw, yw). A point, or (both xw and yw world coordinates are required if a raster is skewed). If a raster is not skewed then xw is sufficient. World coordinates are in the spatial reference coordinate system of the raster."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:2798
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, this was called ST_World2RasterCoordY"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2096
+#: reference_raster.xml:2804
 #, no-c-format
 msgid ""
-      "SELECT rid, ST_World2RasterCoordY(rast,20.5) As ycoord, \n"
-      "                ST_World2RasterCoordY(rast,3427927.8,20.5) As ycoord_xwyw, \n"
-      "                ST_World2RasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 20.5)',ST_SRID(rast))) As ptycoord\n"
+      "SELECT rid, ST_WorldToRasterCoordY(rast,20.5) As ycoord, \n"
+      "                ST_WorldToRasterCoordY(rast,3427927.8,20.5) As ycoord_xwyw, \n"
+      "                ST_WorldToRasterCoordY(rast,ST_GeomFromText('POINT(3427927.8 20.5)',ST_SRID(rast))) As ptycoord\n"
       "FROM dummy_rast;\n"
       "\n"
       " rid |  ycoord   | ycoord_xwyw | ptycoord\n"
@@ -2490,90 +3228,50 @@ msgid ""
       "   2 | 115864471 |   115864471 | 115864471"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:2108
-#, no-c-format
-msgid "ST_IsEmpty"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:2109
-#, no-c-format
-msgid "<refpurpose>Returns true if the raster is empty (width = 0 and height = 0). Otherwise, returns false.</refpurpose>"
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:2114
-#, no-c-format
-msgid "<funcdef>boolean <function>ST_IsEmpty</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:2124
-#, no-c-format
-msgid "<para>Returns true if the raster is empty (width = 0 and height = 0). Otherwise, returns false.</para>"
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:2132
-#, no-c-format
-msgid ""
-      "SELECT ST_IsEmpty(ST_MakeEmptyRaster(100, 100, 0, 0, 0, 0, 0, 0))\n"
-      "st_isempty |\n"
-      "-----------+\n"
-      "f          |\n"
-      "                       \n"
-      "                        \n"
-      "SELECT ST_IsEmpty(ST_MakeEmptyRaster(0, 0, 0, 0, 0, 0, 0, 0))\n"
-      "st_isempty |\n"
-      "-----------+\n"
-      "t          |"
-msgstr ""
-
 #. Tag: title
-#: reference_raster.xml:2144
+#: reference_raster.xml:2817
 #, no-c-format
 msgid "Raster Band Accessors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2147
+#: reference_raster.xml:2820
 #, no-c-format
 msgid "ST_BandMetaData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2148
+#: reference_raster.xml:2821
 #, no-c-format
 msgid "Returns basic meta data for a specific raster band. band num 1 is assumed if none-specified."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2153
+#: reference_raster.xml:2826
 #, no-c-format
 msgid "<funcdef>record <function>ST_BandMetaData</function></funcdef> <paramdef><type>raster </type><parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type><parameter>bandnum=1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2164
+#: reference_raster.xml:2837
 #, no-c-format
 msgid "Returns basic meta data about a raster band. Columns returned pixeltype | nodatavalue | isoutdb | path."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2168
+#: reference_raster.xml:2841
 #, no-c-format
 msgid "If raster contains no bands then an error is thrown."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2173
+#: reference_raster.xml:2846
 #, no-c-format
 msgid "If band has no NODATA value, nodatavalue will be NULL."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2182
+#: reference_raster.xml:2855
 #, no-c-format
 msgid ""
       "SELECT rid, (foo.md).*  \n"
@@ -2586,37 +3284,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2188
+#: reference_raster.xml:2861
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2194
+#: reference_raster.xml:2867
 #, no-c-format
 msgid "ST_BandNoDataValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2195
+#: reference_raster.xml:2868
 #, no-c-format
 msgid "Returns the value in a given band that represents no data. If no band num 1 is assumed."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2200
+#: reference_raster.xml:2873
 #, no-c-format
 msgid "<funcdef>double precision <function>ST_BandNoDataValue</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2211 reference_raster.xml:2342
+#: reference_raster.xml:2884 reference_raster.xml:3012
 #, no-c-format
 msgid "Returns the value that represents no data for the band"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2217
+#: reference_raster.xml:2890
 #, no-c-format
 msgid ""
       "SELECT ST_BandNoDataValue(rast,1) As bnval1, \n"
@@ -2630,37 +3328,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2230
+#: reference_raster.xml:2903
 #, no-c-format
 msgid "ST_BandIsNoData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2231
+#: reference_raster.xml:2904
 #, no-c-format
 msgid "Returns true if the band is filled with only nodata values."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2235
+#: reference_raster.xml:2908
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>band</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>forceChecking=true</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_BandIsNoData</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramde [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2252
+#: reference_raster.xml:2925
 #, no-c-format
 msgid "Returns true if the band is filled with only nodata values. Band 1 is assumed if not specified. If the last argument is TRUE, the entire band is checked pixel by pixel. Otherwise, the function simply returns the value of the isnodata flag for the band. The default value for this parameter is FALSE, if not specified."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2262
+#: reference_raster.xml:2935
 #, no-c-format
-msgid "If the flag is dirty (this is, the result is different using TRUE as last parameter and not using it) you should update the raster to set this flag to true, by using ST_SetBandIsNodata function, or ST_SetBandNodataValue function with TRUE as last argument. The loader (raster2pgsql.py) currently can not properly set the flag while loading raster data. See <xref linkend=\"RT_ST_SetBandIsNoData\"/>."
+msgid "If the flag is dirty (this is, the result is different using TRUE as last parameter and not using it) you should update the raster to set this flag to true, by using ST_SetBandIsNodata(), or ST_SetBandNodataValue() with TRUE as last argument. See <xref linkend=\"RT_ST_SetBandIsNoData\"/>."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2275
+#: reference_raster.xml:2945
 #, no-c-format
 msgid ""
       "-- Create dummy table with one raster column\n"
@@ -2717,133 +3415,133 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2281
+#: reference_raster.xml:2951
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_SetBandIsNoData\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2290
+#: reference_raster.xml:2960
 #, no-c-format
 msgid "ST_BandPath"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2291
+#: reference_raster.xml:2961
 #, no-c-format
 msgid "Returns system file path to a band stored in file system. If no bandnum specified, 1 is assumed."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2296
+#: reference_raster.xml:2966
 #, no-c-format
 msgid "<funcdef>text <function>ST_BandPath</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2307
+#: reference_raster.xml:2977
 #, no-c-format
 msgid "Returns system file path to a band. Throws an error if called with an in db band."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2313
+#: reference_raster.xml:2983
 #, no-c-format
 msgid "<!-- TODO: -->"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2325
+#: reference_raster.xml:2995
 #, no-c-format
 msgid "ST_BandPixelType"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2326
+#: reference_raster.xml:2996
 #, no-c-format
 msgid "Returns the type of pixel for given band. If no bandnum specified, 1 is assumed."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2331
+#: reference_raster.xml:3001
 #, no-c-format
 msgid "<funcdef>text <function>ST_BandPixelType</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>bandnum=1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2343
+#: reference_raster.xml:3013
 #, no-c-format
 msgid "There are 11 pixel types. Pixel Types supported are as follows:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2346
+#: reference_raster.xml:3016
 #, no-c-format
 msgid "1BB - 1-bit boolean"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2350
+#: reference_raster.xml:3020
 #, no-c-format
 msgid "2BUI - 2-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2354
+#: reference_raster.xml:3024
 #, no-c-format
 msgid "4BUI - 4-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2358
+#: reference_raster.xml:3028
 #, no-c-format
 msgid "8BSI - 8-bit signed integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2361
+#: reference_raster.xml:3031
 #, no-c-format
 msgid "8BUI - 8-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2364
+#: reference_raster.xml:3034
 #, no-c-format
 msgid "16BSI - 16-bit signed integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2367
+#: reference_raster.xml:3037
 #, no-c-format
 msgid "16BUI - 16-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2370
+#: reference_raster.xml:3040
 #, no-c-format
 msgid "32BSI - 32-bit signed integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2373
+#: reference_raster.xml:3043
 #, no-c-format
 msgid "32BUI - 32-bit unsigned integer"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2376
+#: reference_raster.xml:3046
 #, no-c-format
 msgid "32BF - 32-bit float"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2379
+#: reference_raster.xml:3049
 #, no-c-format
 msgid "64BF - 64-bit float"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2388
+#: reference_raster.xml:3058
 #, no-c-format
 msgid ""
       "SELECT ST_BandPixelType(rast,1) As btype1, \n"
@@ -2857,31 +3555,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2400
+#: reference_raster.xml:3070
 #, no-c-format
 msgid "ST_HasNoBand"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2401
+#: reference_raster.xml:3071
 #, no-c-format
 msgid "<refpurpose>Returns true if there is no band with given band number. If no band number is specified, then band number 1 is assumed.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2406
+#: reference_raster.xml:3076
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_HasNoBand</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum=1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2417
+#: reference_raster.xml:3087
 #, no-c-format
 msgid "<para>Returns true if there is no band with given band number. If no band number is specified, then band number 1 is assumed.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2425
+#: reference_raster.xml:3095
 #, no-c-format
 msgid ""
       "SELECT rid, ST_HasNoBand(rast) As hb1, ST_HasNoBand(rast,2) as hb2, \n"
@@ -2895,37 +3593,37 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:2438
+#: reference_raster.xml:3108
 #, no-c-format
 msgid "Raster Pixel Accessors and Setters"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2442
+#: reference_raster.xml:3112
 #, no-c-format
 msgid "ST_PixelAsPolygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2443
+#: reference_raster.xml:3113
 #, no-c-format
 msgid "<refpurpose>Returns the polygon geometry that bounds the pixel for a particular row and column.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2448
+#: reference_raster.xml:3118
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_PixelAsPolygon</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2460
+#: reference_raster.xml:3130
 #, no-c-format
 msgid "<para>Returns the polygon geometry that bounds the pixel for a particular row and column.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2468
+#: reference_raster.xml:3138
 #, no-c-format
 msgid ""
       "-- get raster pixel polygon\n"
@@ -2942,49 +3640,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2473
+#: reference_raster.xml:3143
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids\"/>, <xref linkend=\"RT_ST_Intersection\"/>, <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2488
+#: reference_raster.xml:3158
 #, no-c-format
 msgid "ST_PixelAsPolygons"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2489
+#: reference_raster.xml:3159
 #, no-c-format
 msgid "Returns the polygon geometry that bounds every pixel of a raster band along with the value, the X and the Y raster coordinates of each pixel."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2494
+#: reference_raster.xml:3164
 #, no-c-format
 msgid "<funcdef>setof record <function>ST_PixelAsPolygons</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2506
+#: reference_raster.xml:3176
 #, no-c-format
 msgid "Returns the polygon geometry that bounds every pixel of a raster band along with the value (double precision), the X and the Y raster coordinates (integers) of each pixel."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2509
+#: reference_raster.xml:3179
 #, no-c-format
 msgid "ST_PixelAsPolygons returns one polygon geometry for every pixel. This is different than ST_DumpAsPolygons where each geometry represents one or more pixels with the same pixel value."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2515
+#: reference_raster.xml:3184
+#, no-c-format
+msgid "When exclude_nodata_value = TRUE, only those pixels whose values are not NODATA are returned as polygons."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3190
 #, no-c-format
 msgid "Enhanced: 2.1.0 exclude_nodata_value optional argument was added."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:3191 reference_raster.xml:3285 reference_raster.xml:3379
+#, no-c-format
+msgid "Changed: 2.1.1 Changed behavior of exclude_nodata_value."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2520
+#: reference_raster.xml:3196
 #, no-c-format
 msgid ""
       "-- get raster pixel polygon\n"
@@ -3006,37 +3716,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2525
+#: reference_raster.xml:3201
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids\"/>, <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2539
+#: reference_raster.xml:3215
 #, no-c-format
 msgid "ST_PixelAsPoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2540
+#: reference_raster.xml:3216
 #, no-c-format
 msgid "<refpurpose>Returns a point geometry of the pixel's upper-left corner.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2546
+#: reference_raster.xml:3222
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_PixelAsPoint</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2557
+#: reference_raster.xml:3233
 #, no-c-format
 msgid "<para>Returns a point geometry of the pixel's upper-left corner.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2563
+#: reference_raster.xml:3239
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_PixelAsPoint(rast, 1, 1)) FROM dummy_rast WHERE rid = 1;\n"
@@ -3047,37 +3757,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2568
+#: reference_raster.xml:3244
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2582
+#: reference_raster.xml:3258
 #, no-c-format
 msgid "ST_PixelAsPoints"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2583
+#: reference_raster.xml:3259
 #, no-c-format
 msgid "<refpurpose>Returns a point geometry for each pixel of a raster band along with the value, the X and the Y raster coordinates of each pixel. The coordinates of the point geometry are of the pixel's upper-left corner.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2589
+#: reference_raster.xml:3265
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_PixelAsPoints</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2600
+#: reference_raster.xml:3276
 #, no-c-format
 msgid "<para>Returns a point geometry for each pixel of a raster band along with the value, the X and the Y raster coordinates of each pixel. The coordinates of the point geometry are of the pixel's upper-left corner.</para>"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:3280 reference_raster.xml:3374
+#, no-c-format
+msgid "When exclude_nodata_value = TRUE, only those pixels whose values are not NODATA are returned as points."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:2608
+#: reference_raster.xml:3290
 #, no-c-format
 msgid ""
       "SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsPoints(rast, 1)).* FROM dummy_rast WHERE rid = 2) foo;\n"
@@ -3112,37 +3828,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2613
+#: reference_raster.xml:3295
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsCentroid\"/>, <xref linkend=\"RT_ST_PixelAsCentroids\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2627
+#: reference_raster.xml:3309
 #, no-c-format
 msgid "ST_PixelAsCentroid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2628
+#: reference_raster.xml:3310
 #, no-c-format
 msgid "<refpurpose>Returns the centroid (point geometry) of the area represented by a pixel.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2634
+#: reference_raster.xml:3316
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_PixelAsCentroid</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2645
+#: reference_raster.xml:3327
 #, no-c-format
 msgid "<para>Returns the centroid (point geometry) of the area represented by a pixel.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2651
+#: reference_raster.xml:3333
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(ST_PixelAsCentroid(rast, 1, 1)) FROM dummy_rast WHERE rid = 1;\n"
@@ -3153,37 +3869,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2656
+#: reference_raster.xml:3338
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroids\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2670
+#: reference_raster.xml:3352
 #, no-c-format
 msgid "ST_PixelAsCentroids"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2671
+#: reference_raster.xml:3353
 #, no-c-format
 msgid "<refpurpose>Returns the centroid (point geometry) for each pixel of a raster band along with the value, the X and the Y raster coordinates of each pixel. The point geometry is the centroid of the area represented by a pixel.</refpurpose>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:2677
+#: reference_raster.xml:3359
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_PixelAsCentroids</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2688
+#: reference_raster.xml:3370
 #, no-c-format
 msgid "<para>Returns the centroid (point geometry) for each pixel of a raster band along with the value, the X and the Y raster coordinates of each pixel. The point geometry is the centroid of the area represented by a pixel.</para>"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2696
+#: reference_raster.xml:3384
 #, no-c-format
 msgid ""
       "SELECT x, y, val, ST_AsText(geom) FROM (SELECT (ST_PixelAsCentroids(rast, 1)).* FROM dummy_rast WHERE rid = 2) foo;\n"
@@ -3217,43 +3933,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2701
+#: reference_raster.xml:3389
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_PixelAsPolygons\"/>, <xref linkend=\"RT_ST_PixelAsPoint\"/>, <xref linkend=\"RT_ST_PixelAsPoints\"/>, <xref linkend=\"RT_ST_PixelAsCentroid\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2715
+#: reference_raster.xml:3403
 #, no-c-format
 msgid "ST_Value"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2716
+#: reference_raster.xml:3404
 #, no-c-format
 msgid "Returns the value of a given band in a given columnx, rowy pixel or at a particular geometric point. Band numbers start at 1 and assumed to be 1 if not specified. If <varname>exclude_nodata_value</varname> is set to false, then all pixels include <varname>nodata</varname> pixels are considered to intersect and return value. If <varname>exclude_nodata_value</varname> is not passed in then reads it from metadata of raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2720
+#: reference_raster.xml:3408
 #, no-c-format
 msgid "<funcprototype> <funcdef>double precision <function>ST_Value</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double precision <function>ST_Value</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2755
+#: reference_raster.xml:3443
 #, no-c-format
 msgid "Returns the value of a given band in a given columnx, rowy pixel or at a given geometry point. Band numbers start at 1 and band is assumed to be 1 if not specified. If <varname>exclude_nodata_value</varname> is set to true, then only non <varname>nodata</varname> pixels are considered. If <varname>exclude_nodata_value</varname> is set to false, then all pixels are considered."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2758
+#: reference_raster.xml:3446
 #, no-c-format
 msgid "Enhanced: 2.0.0 exclude_nodata_value optional argument was added."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2763
+#: reference_raster.xml:3451
 #, no-c-format
 msgid ""
       "-- get raster values at particular postgis geometry points\n"
@@ -3274,7 +3990,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2764
+#: reference_raster.xml:3452
 #, no-c-format
 msgid ""
       "SELECT rid, ST_Value(rast, 1, 1, 1) As b1pval, \n"
@@ -3288,7 +4004,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2766
+#: reference_raster.xml:3454
 #, no-c-format
 msgid ""
       "--- Get all values in bands 1,2,3 of each pixel --\n"
@@ -3312,7 +4028,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2768
+#: reference_raster.xml:3456
 #, no-c-format
 msgid ""
       "--- Get all values in bands 1,2,3 of each pixel same as above but returning the upper left point point of each pixel --\n"
@@ -3335,7 +4051,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2769
+#: reference_raster.xml:3457
 #, no-c-format
 msgid ""
       "--- Get a polygon formed by union of all pixels \n"
@@ -3373,7 +4089,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2771
+#: reference_raster.xml:3459
 #, no-c-format
 msgid ""
       "--- Checking all the pixels of a large raster tile can take a long time.\n"
@@ -3408,49 +4124,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2776
+#: reference_raster.xml:3464
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, , <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>, <xref linkend=\"RT_ST_SRID\"/>, <xref linkend=\"ST_AsText\"/>, , <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_MakeEnvelope\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend=\"ST_Intersection\"/>"
+msgid ", <xref linkend=\"RT_ST_DumpAsPolygons\"/>, <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_PixelAsPolygon\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>, <xref linkend=\"RT_ST_SRID\"/>, <xref linkend=\"ST_AsText\"/>, <xref linkend=\"ST_Point\"/>, <xref linkend=\"ST_MakeEnvelope\"/>, <xref linkend=\"ST_Intersects\"/>, <xref linkend=\"ST_Intersection\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2786
+#: reference_raster.xml:3485
 #, no-c-format
 msgid "ST_NearestValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2787
+#: reference_raster.xml:3486
 #, no-c-format
 msgid "Returns the nearest non-<varname>NODATA</varname> value of a given band's pixel specified by a columnx and rowy or a geometric point expressed in the same spatial reference coordinate system as the raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2793
+#: reference_raster.xml:3492
 #, no-c-format
 msgid "<funcprototype> <funcdef>double precision <function>ST_NearestValue</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double precision <function>ST_Nea [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2830
+#: reference_raster.xml:3529
 #, no-c-format
 msgid "Returns the nearest non-<varname>NODATA</varname> value of a given band in a given columnx, rowy pixel or at a specific geometric point. If the columnx, rowy pixel or the pixel at the specified geometric point is <varname>NODATA</varname>, the function will find the nearest pixel to the columnx, rowy pixel or geometric point whose value is not <varname>NODATA</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2833 reference_raster.xml:2920
+#: reference_raster.xml:3532 reference_raster.xml:3619
 #, no-c-format
 msgid "Band numbers start at 1 and <varname>bandnum</varname> is assumed to be 1 if not specified. If <varname>exclude_nodata_value</varname> is set to false, then all pixels include <varname>nodata</varname> pixels are considered to intersect and return value. If <varname>exclude_nodata_value</varname> is not passed in then reads it from metadata of raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2838
+#: reference_raster.xml:3537
 #, no-c-format
 msgid "ST_NearestValue is a drop-in replacement for ST_Value."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2847
+#: reference_raster.xml:3546
 #, no-c-format
 msgid ""
       "-- pixel 2x2 has value\n"
@@ -3486,7 +4202,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2849
+#: reference_raster.xml:3548
 #, no-c-format
 msgid ""
       "-- pixel 2x3 is NODATA\n"
@@ -3522,49 +4238,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2855
+#: reference_raster.xml:3554
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Value\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2865
+#: reference_raster.xml:3564
 #, no-c-format
 msgid "ST_Neighborhood"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2866
+#: reference_raster.xml:3565
 #, no-c-format
 msgid "Returns a 2-D double precision array of the non-<varname>NODATA</varname> values around a given band's pixel specified by either a columnX and rowY or a geometric point expressed in the same spatial reference coordinate system as the raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2872
+#: reference_raster.xml:3571
 #, no-c-format
 msgid "<funcprototype> <funcdef>double precision[][] <function>ST_Neighborhood</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> <paramdef><type>integer </type> <parameter>columnX</parameter></paramdef> <paramdef><type>integer </type> <parameter>rowY</parameter></paramdef> <paramdef><type>integer </type> <parameter>distanceX</parameter></paramdef> <paramdef><type>integer </t [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2917
+#: reference_raster.xml:3616
 #, no-c-format
 msgid "Returns a 2-D double precision array of the non-<varname>NODATA</varname> values around a given band's pixel specified by either a columnX and rowY or a geometric point expressed in the same spatial reference coordinate system as the raster. The <varname>distanceX</varname> and <varname>distanceY</varname> parameters define the number of pixels around the specified pixel in the X and Y axes, e.g. I want all values within 3 pixel distance along the X axis and 2 pixel distance along [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2924
+#: reference_raster.xml:3623
 #, no-c-format
 msgid "The number of elements along each axis of the returning 2-D array is 2 * (<varname>distanceX</varname>|<varname>distanceY</varname>) + 1. So for a <varname>distanceX</varname> and <varname>distanceY</varname> of 1, the returning array will be 3x3."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2929
+#: reference_raster.xml:3628
 #, no-c-format
-msgid "The 2-D array output can be passed along to any of the raster processing builtin functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
+msgid "The 2-D array output can be passed to any of the raster processing builtin functions, e.g. ST_Min4ma, ST_Sum4ma, ST_Mean4ma."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2939
+#: reference_raster.xml:3638
 #, no-c-format
 msgid ""
       "-- pixel 2x2 has value\n"
@@ -3594,7 +4310,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2941
+#: reference_raster.xml:3640
 #, no-c-format
 msgid ""
       "-- pixel 2x3 is NODATA\n"
@@ -3624,7 +4340,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:2943
+#: reference_raster.xml:3642
 #, no-c-format
 msgid ""
       "-- pixel 3x3 has value\n"
@@ -3654,43 +4370,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:2949
+#: reference_raster.xml:3648
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:2966
+#: reference_raster.xml:3665
 #, no-c-format
 msgid "ST_SetValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:2967
+#: reference_raster.xml:3666
 #, no-c-format
-msgid "Returns modified raster resulting from setting the value of a given band in a given columnx, rowy pixel or at a pixel that intersects a particular geometric point. Band numbers start at 1 and assumed to be 1 if not specified."
+msgid "Returns modified raster resulting from setting the value of a given band in a given columnx, rowy pixel or the pixels that intersect a particular geometry. Band numbers start at 1 and assumed to be 1 if not specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:2971
+#: reference_raster.xml:3670
 #, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> <parameter>pt</parameter></paramdef> <paramdef><type>double precision </type> <parameter>newvalue</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer  [...]
+msgid "<funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>bandnum</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef><type>double precision </type> <parameter>newvalue</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_SetValue</function></funcdef> <paramdef><type>ra [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3005
+#: reference_raster.xml:3704
 #, no-c-format
-msgid "Returns modified raster resulting from setting the specified pixel value to new value for the designed band given the row column location or a geometric point location. If no band is specified, then band 1 is assumed."
+msgid "Returns modified raster resulting from setting the specified pixels' values to new value for the designed band given the raster's row and column or a geometry. If no band is specified, then band 1 is assumed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3008
+#: reference_raster.xml:3707
 #, no-c-format
-msgid "Setting by geometry currently only works for points."
+msgid "Enhanced: 2.1.0 Geometry variant of ST_SetValue() now supports any geometry type, not just point. The geometry variant is a wrapper around the geomval[] variant of ST_SetValues()"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3014
+#: reference_raster.xml:3713
 #, no-c-format
 msgid ""
       "-- Geometry example\n"
@@ -3712,7 +4428,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3016
+#: reference_raster.xml:3715
 #, no-c-format
 msgid ""
       "-- Store the changed raster --\n"
@@ -3721,67 +4437,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3020 reference_raster.xml:6296
+#: reference_raster.xml:3719 reference_raster.xml:9319
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_DumpAsPolygons\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3026
+#: reference_raster.xml:3725
 #, no-c-format
 msgid "ST_SetValues"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3027
+#: reference_raster.xml:3726
 #, no-c-format
 msgid "Returns modified raster resulting from setting the values of a given band."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3031
+#: reference_raster.xml:3730
 #, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> <paramdef><type>double precision[][] </type> <parameter>newvalueset</parameter></paramdef> <paramdef><type>boolean[][] </t [...]
+msgid "<funcprototype> <funcdef>raster <function>ST_SetValues</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>integer </type> <parameter>columnx</parameter></paramdef> <paramdef><type>integer </type> <parameter>rowy</parameter></paramdef> <paramdef><type>double precision[][] </type> <parameter>newvalueset</parameter></paramdef> <paramdef><type>boolean[][] </t [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3082
+#: reference_raster.xml:3789
 #, no-c-format
 msgid "Returns modified raster resulting from setting specified pixels to new value(s) for the designated band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3086
+#: reference_raster.xml:3793
+#, no-c-format
+msgid "If <varname>keepnodata</varname> is TRUE, those pixels whose values are NODATA will not be set with the corresponding value in <varname>newvalueset</varname>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3797
 #, no-c-format
-msgid "For Variant 1, the specific pixels to be set are determined by the <varname>columnx</varname>, <varname>rowy</varname> pixel coordinates and the dimensions of the <varname>newvalueset</varname> array. <varname>noset</varname> can be used to prevent pixels with values present in <varname>newvalueset</varname> from being set (due to PostgreSQL not permitting ragged/jagged arrays). If <varname>keepnodata</varname> is TRUE, those pixels whose values are NODATA will not be set with the [...]
+msgid "For Variant 1, the specific pixels to be set are determined by the <varname>columnx</varname>, <varname>rowy</varname> pixel coordinates and the dimensions of the <varname>newvalueset</varname> array. <varname>noset</varname> can be used to prevent pixels with values present in <varname>newvalueset</varname> from being set (due to PostgreSQL not permitting ragged/jagged arrays). See example Variant 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3090
+#: reference_raster.xml:3801
 #, no-c-format
 msgid "Variant 2 is like Variant 1 but with a simple double precision <varname>nosetvalue</varname> instead of a boolean <varname>noset</varname> array. Elements in <varname>newvalueset</varname> with the <varname>nosetvalue</varname> value with be skipped. See example Variant 2."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3094
+#: reference_raster.xml:3805
 #, no-c-format
-msgid "For Variant 3, the specific pixels to be set are determined by the <varname>columnx</varname>, <varname>rowy</varname> pixel coordinates, <varname>width</varname> and <varname>height</varname>. If <varname>keepnodata</varname> is TRUE, those pixels whose values are NODATA will not be set with the corresponding value in <varname>newvalueset</varname>. See example Variant 3."
+msgid "For Variant 3, the specific pixels to be set are determined by the <varname>columnx</varname>, <varname>rowy</varname> pixel coordinates, <varname>width</varname> and <varname>height</varname>. See example Variant 3."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3098
+#: reference_raster.xml:3809
 #, no-c-format
 msgid "Variant 4 is the same as Variant 3 with the exception that it assumes that the first band's pixels of <varname>rast</varname> will be set."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:3813
+#, no-c-format
+msgid "For Variant 5, an array of <xref linkend=\"geomval\"/> is used to determine the specific pixels to be set. If all the geometries in the array are of type POINT or MULTIPOINT, the function uses a shortcut where the longitude and latitude of each point is used to set a pixel directly. Otherwise, the geometries are converted to rasters and then iterated through in one pass. See example Variant 5."
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:3107 reference_raster.xml:5583
+#: reference_raster.xml:3822 reference_raster.xml:6730 reference_raster.xml:8262 reference_raster.xml:8705 reference_raster.xml:8802 reference_raster.xml:8930
 #, no-c-format
 msgid "Examples: Variant 1"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3109
+#: reference_raster.xml:3824
 #, no-c-format
 msgid ""
       "/*\n"
@@ -3827,7 +4555,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3111
+#: reference_raster.xml:3826
 #, no-c-format
 msgid ""
       "/*\n"
@@ -3873,7 +4601,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3113
+#: reference_raster.xml:3828
 #, no-c-format
 msgid ""
       "/*\n"
@@ -3921,7 +4649,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3115
+#: reference_raster.xml:3830
 #, no-c-format
 msgid ""
       "/*\n"
@@ -3973,13 +4701,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3120
+#: reference_raster.xml:3835 reference_raster.xml:8269 reference_raster.xml:8710 reference_raster.xml:8807 reference_raster.xml:8935
 #, no-c-format
 msgid "Examples: Variant 2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3122
+#: reference_raster.xml:3837
 #, no-c-format
 msgid ""
       "/*\n"
@@ -4025,7 +4753,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3124
+#: reference_raster.xml:3839
 #, no-c-format
 msgid ""
       "/*\n"
@@ -4073,13 +4801,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3129
+#: reference_raster.xml:3844 reference_raster.xml:4788
 #, no-c-format
 msgid "Examples: Variant 3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3131
+#: reference_raster.xml:3846
 #, no-c-format
 msgid ""
       "/*\n"
@@ -4125,7 +4853,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3133
+#: reference_raster.xml:3848
 #, no-c-format
 msgid ""
       "/*\n"
@@ -4173,38 +4901,204 @@ msgid ""
       " 3 | 3 |   9"
 msgstr ""
 
+#. Tag: title
+#: reference_raster.xml:3853
+#, no-c-format
+msgid "Examples: Variant 5"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3855
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0) AS rast\n"
+      "), bar AS (\n"
+      "        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+      "        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::geometry geom UNION ALL\n"
+      "        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, 0 0))'::geometry geom UNION ALL\n"
+      "        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+      ")\n"
+      "SELECT\n"
+      "        rid, gid, ST_DumpValues(ST_SetValue(rast, 1, geom, gid))\n"
+      "FROM foo t1\n"
+      "CROSS JOIN bar t2\n"
+      "ORDER BY rid, gid;\n"
+      "\n"
+      " rid | gid |                                                                st_dumpvalues                                                                \n"
+      "-----+-----+---------------------------------------------------------------------------------------------------------------------------------------------\n"
+      "   1 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,1,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+      "   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+      "   1 |   3 | (1,\"{{3,3,3,3,3},{3,NULL,NULL,NULL,NULL},{3,NULL,NULL,NULL,NULL},{3,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+      "   1 |   4 | (1,\"{{4,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,NULL},{NULL,NULL,NULL,NULL,4}}\")\n"
+      "(4 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3857
+#, no-c-format
+msgid "The following shows that geomvals later in the array can overwrite prior geomvals"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3858
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0) AS rast\n"
+      "), bar AS (\n"
+      "        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+      "        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::geometry geom UNION ALL\n"
+      "        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, 0 0))'::geometry geom UNION ALL\n"
+      "        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+      ")\n"
+      "SELECT\n"
+      "        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+      "FROM foo t1\n"
+      "CROSS JOIN bar t2\n"
+      "CROSS JOIN bar t3\n"
+      "WHERE t2.gid = 1\n"
+      "        AND t3.gid = 2\n"
+      "ORDER BY t1.rid, t2.gid, t3.gid;\n"
+      "\n"
+      " rid | gid | gid |                                                    st_dumpvalues                                                    \n"
+      "-----+-----+-----+---------------------------------------------------------------------------------------------------------------------\n"
+      "   1 |   1 |   2 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3860
+#, no-c-format
+msgid "This example is the opposite of the prior example"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3861
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0) AS rast\n"
+      "), bar AS (\n"
+      "        SELECT 1 AS gid, 'SRID=0;POINT(2.5 -2.5)'::geometry geom UNION ALL\n"
+      "        SELECT 2 AS gid, 'SRID=0;POLYGON((1 -1, 4 -1, 4 -4, 1 -4, 1 -1))'::geometry geom UNION ALL\n"
+      "        SELECT 3 AS gid, 'SRID=0;POLYGON((0 0, 5 0, 5 -1, 1 -1, 1 -4, 0 -4, 0 0))'::geometry geom UNION ALL\n"
+      "        SELECT 4 AS gid, 'SRID=0;MULTIPOINT(0 0, 4 4, 4 -4)'::geometry\n"
+      ")\n"
+      "SELECT\n"
+      "        t1.rid, t2.gid, t3.gid, ST_DumpValues(ST_SetValues(rast, 1, ARRAY[ROW(t2.geom, t2.gid), ROW(t3.geom, t3.gid)]::geomval[]))\n"
+      "FROM foo t1\n"
+      "CROSS JOIN bar t2\n"
+      "CROSS JOIN bar t3\n"
+      "WHERE t2.gid = 2\n"
+      "        AND t3.gid = 1\n"
+      "ORDER BY t1.rid, t2.gid, t3.gid;\n"
+      "\n"
+      " rid | gid | gid |                                                    st_dumpvalues                                                    \n"
+      "-----+-----+-----+---------------------------------------------------------------------------------------------------------------------\n"
+      "   1 |   2 |   1 | (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,2,2,2,NULL},{NULL,2,1,2,NULL},{NULL,2,2,2,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+      "(1 row)"
+msgstr ""
+
 #. Tag: para
-#: reference_raster.xml:3139
+#: reference_raster.xml:3868
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_PixelAsPolygons\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3149
+#: reference_raster.xml:3878
+#, no-c-format
+msgid "ST_DumpValues"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:3879
+#, no-c-format
+msgid "Get the values of the specified band as a 2-dimension array."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:3885
+#, no-c-format
+msgid "<funcprototype> <funcdef>setof record <function>ST_DumpValues</function></funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer[] </type> <parameter>nband</parameter> </paramdef> <paramdef> <type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>double precision[][] <function>ST_DumpValues</function></funcdef> <paramdef> <type>raster </type> <parameter>rast</par [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3916
+#, no-c-format
+msgid "Get the values of the specified band as a 2-dimension array. If <varname>nband</varname> is NULL or not provided, all raster bands are processed."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3926
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, 0) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        (ST_DumpValues(rast)).*\n"
+      "FROM foo;\n"
+      "\n"
+      " nband |                       valarray                       \n"
+      "-------+------------------------------------------------------\n"
+      "     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+      "     2 | {{3,3,3},{3,3,3},{3,3,3}}\n"
+      "     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+      "(3 rows)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:3928
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '32BF', 3, -9999), 3, '16BSI', 0, 0) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        (ST_DumpValues(rast, ARRAY[3, 1])).*\n"
+      "FROM foo;\n"
+      "\n"
+      " nband |                       valarray                       \n"
+      "-------+------------------------------------------------------\n"
+      "     3 | {{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}\n"
+      "     1 | {{1,1,1},{1,1,1},{1,1,1}}\n"
+      "(2 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:3933
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetValue\"/>, <xref linkend=\"RT_ST_SetValues\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:3944
 #, no-c-format
 msgid "ST_PixelOfValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3150
+#: reference_raster.xml:3945
 #, no-c-format
 msgid "Get the columnx, rowy coordinates of the pixel whose value equals the search value."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3156
+#: reference_raster.xml:3951
 #, no-c-format
 msgid "<funcprototype> <funcdef>setof record <function>ST_PixelOfValue</function></funcdef> <paramdef> <type>raster </type> <parameter>rast</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nband</parameter> </paramdef> <paramdef> <type>double precision[] </type> <parameter>search</parameter> </paramdef> <paramdef> <type>boolean </type> <parameter>exclude_nodata_value=true</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>setof record <function>ST_PixelO [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3217
+#: reference_raster.xml:4012
 #, no-c-format
 msgid "Get the columnx, rowy coordinates of the pixel whose value equals the search value. If no band is specified, then band 1 is assumed."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3226
+#: reference_raster.xml:4021
 #, no-c-format
 msgid ""
       "SELECT\n"
@@ -4260,91 +5154,122 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3234
+#: reference_raster.xml:4029
 #, no-c-format
 msgid "Raster Editors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3238
+#: reference_raster.xml:4033
 #, no-c-format
 msgid "ST_SetGeoReference"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3239
+#: reference_raster.xml:4034
 #, no-c-format
 msgid "Set Georeference 6 georeference parameters in a single call. Numbers should be separated by white space. Accepts inputs in GDAL or ESRI format. Default is GDAL."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:3244
+#. Tag: funcsynopsis
+#: reference_raster.xml:4038
 #, no-c-format
-msgid "<funcdef>raster <function>ST_SetGeoReference</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>text </type> <parameter>georefcoords</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</parameter></paramdef>"
+msgid "<funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>text </type> <parameter>georefcoords</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>format=GDAL</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_SetGeoReference</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3256
+#: reference_raster.xml:4064
 #, no-c-format
 msgid "Set Georeference 6 georeference parameters in a single call. Accepts inputs in 'GDAL' or 'ESRI' format. Default is GDAL. If 6 coordinates are not provided will return null."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3259
+#: reference_raster.xml:4067
 #, no-c-format
 msgid "scalex skewy skewx scaley upperleftx upperlefty"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3261
+#: reference_raster.xml:4069
 #, no-c-format
 msgid "scalex skewy skewx scaley upperleftx + scalex*0.5 upperlefty + scaley*0.5"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4072
+#, no-c-format
+msgid "If the raster has out-db bands, changing the georeference may result in incorrect access of the band's externally stored data."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4077
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of ST_SetGeoReference(raster, double precision, ...) variant"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:3267
+#: reference_raster.xml:4084
 #, no-c-format
 msgid ""
-      "UPDATE dummy_rast SET rast = ST_SetGeoReference(rast, '2 0 0 3 0.5 0.5','GDAL') \n"
-      "        WHERE rid=1;\n"
-      "        \n"
-      "-- same coordinates set in 'ESRI' format\n"
-      "UPDATE dummy_rast SET rast = ST_SetGeoReference(rast, '2 0 0 3 1.5 2','ESRI') \n"
-      "        WHERE rid=1;"
+      "WITH foo AS (\n"
+      "        SELECT ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        0 AS rid, (ST_Metadata(rast)).*\n"
+      "FROM foo\n"
+      "UNION ALL\n"
+      "SELECT\n"
+      "        1, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 0.1 0.1', 'GDAL'))).*\n"
+      "FROM foo\n"
+      "UNION ALL\n"
+      "SELECT\n"
+      "        2, (ST_Metadata(ST_SetGeoReference(rast, '10 0 0 -10 5.1 -4.9', 'ESRI'))).*\n"
+      "FROM foo\n"
+      "UNION ALL\n"
+      "SELECT\n"
+      "        3, (ST_Metadata(ST_SetGeoReference(rast, 1, 1, 10, -10, 0.001, 0.001))).*\n"
+      "FROM foo\n"
+      "\n"
+      " rid |     upperleftx     |     upperlefty     | width | height | scalex | scaley | skewx | skewy | srid | numbands \n"
+      "-----+--------------------+--------------------+-------+--------+--------+--------+-------+-------+------+----------\n"
+      "   0 |                  0 |                  0 |     5 |      5 |      1 |     -1 |     0 |     0 |    0 |        0\n"
+      "   1 |                0.1 |                0.1 |     5 |      5 |     10 |    -10 |     0 |     0 |    0 |        0\n"
+      "   2 | 0.0999999999999996 | 0.0999999999999996 |     5 |      5 |     10 |    -10 |     0 |     0 |    0 |        0\n"
+      "   3 |                  1 |                  1 |     5 |      5 |     10 |    -10 | 0.001 | 0.001 |    0 |        0"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3272
+#: reference_raster.xml:4089
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3278
+#: reference_raster.xml:4095
 #, no-c-format
 msgid "ST_SetRotation"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3279
+#: reference_raster.xml:4096
 #, no-c-format
 msgid "Set the rotation of the raster in radian."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3284
+#: reference_raster.xml:4101
 #, no-c-format
 msgid "<funcdef>float8 <function>ST_SetRotation</function></funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></paramdef> <paramdef><type>float8</type> <parameter>rotation</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3295
+#: reference_raster.xml:4112
 #, no-c-format
 msgid "Uniformly rotate the raster. Rotation is in radian. Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more details."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3301
+#: reference_raster.xml:4118
 #, no-c-format
 msgid ""
       "SELECT \n"
@@ -4360,43 +5285,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3314
+#: reference_raster.xml:4131
 #, no-c-format
 msgid "ST_SetScale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3315
+#: reference_raster.xml:4132
 #, no-c-format
 msgid "Sets the X and Y size of pixels in units of coordinate reference system. Number units/pixel width/height."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3319
+#: reference_raster.xml:4136
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>float8 </type> <parameter>xy</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_SetScale</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>float8 </type> <parameter>x</parameter></paramdef> <paramdef><type>float8 </type> <parameter>y [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3338
+#: reference_raster.xml:4155
 #, no-c-format
 msgid "Sets the X and Y size of pixels in units of coordinate reference system. Number units/pixel width/height. If only one unit passed in, assumed X and Y are the same number."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3341
+#: reference_raster.xml:4158
 #, no-c-format
 msgid "ST_SetScale is different from <xref linkend=\"RT_ST_Rescale\"/> in that ST_SetScale do not resample the raster to match the raster extent. It only changes the metadata (or georeference) of the raster to correct an originally mis-specified scaling. ST_Rescale results in a raster having different width and height computed to fit the geographic extent of the input raster. ST_SetScale do not modify the width, nor the height of the raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3343
+#: reference_raster.xml:4160
 #, no-c-format
 msgid "Changed: 2.0.0 In WKTRaster versions this was called ST_SetPixelSize. This was changed in 2.0.0."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3349
+#: reference_raster.xml:4166
 #, no-c-format
 msgid ""
       "UPDATE dummy_rast \n"
@@ -4413,7 +5338,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3350
+#: reference_raster.xml:4167
 #, no-c-format
 msgid ""
       "UPDATE dummy_rast \n"
@@ -4430,37 +5355,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3356
+#: reference_raster.xml:4173
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_Box3D\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3362
+#: reference_raster.xml:4179
 #, no-c-format
 msgid "ST_SetSkew"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3363
+#: reference_raster.xml:4180
 #, no-c-format
 msgid "Sets the georeference X and Y skew (or rotation parameter). If only one is passed in, sets X and Y to the same value."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3367
+#: reference_raster.xml:4184
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewxy</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_SetSkew</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>float8 </type> <parameter>skewx</parameter></paramdef> <paramdef><type>float8 </type> <param [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3385
+#: reference_raster.xml:4202
 #, no-c-format
 msgid "Sets the georeference X and Y skew (or rotation parameter). If only one is passed in, sets X and Y to the same value. Refer to <ulink url=\"http://en.wikipedia.org/wiki/World_file\">World File</ulink> for more details."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3392
+#: reference_raster.xml:4209
 #, no-c-format
 msgid ""
       "-- Example 1                    \n"
@@ -4480,7 +5405,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3394
+#: reference_raster.xml:4211
 #, no-c-format
 msgid ""
       "-- Example 2 set both to same number:\n"
@@ -4500,73 +5425,73 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3401
+#: reference_raster.xml:4218
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SetGeoReference\"/>, <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SkewY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3407
+#: reference_raster.xml:4224
 #, no-c-format
 msgid "ST_SetSRID"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3409
+#: reference_raster.xml:4226
 #, no-c-format
 msgid "Sets the SRID of a raster to a particular integer srid defined in the spatial_ref_sys table."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3414
+#: reference_raster.xml:4231
 #, no-c-format
 msgid "<funcdef>raster <function>ST_SetSRID</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3429
+#: reference_raster.xml:4246
 #, no-c-format
 msgid "Sets the SRID on a raster to a particular integer value."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3432
+#: reference_raster.xml:4249
 #, no-c-format
 msgid "This function does not transform the raster in any way - it simply sets meta data defining the spatial ref of the coordinate reference system that it's currently in. Useful for transformations later."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3442
+#: reference_raster.xml:4259
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3449
+#: reference_raster.xml:4266
 #, no-c-format
 msgid "ST_SetUpperLeft"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3450
+#: reference_raster.xml:4267
 #, no-c-format
 msgid "Sets the value of the upper left corner of the pixel to projected X and Y coordinates."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3455
+#: reference_raster.xml:4272
 #, no-c-format
 msgid "<funcdef>raster <function>ST_SetUpperLeft</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>x</parameter></paramdef> <paramdef><type>double precision </type> <parameter>y</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3467
+#: reference_raster.xml:4284
 #, no-c-format
 msgid "Set the value of the upper left corner of raster to the projected X coordinates"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3473
+#: reference_raster.xml:4290
 #, no-c-format
 msgid ""
       "SELECT ST_SetUpperLeft(rast,-71.01,42.37)  \n"
@@ -4575,138 +5500,151 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3479
+#: reference_raster.xml:4296
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_UpperLeftY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3485
+#: reference_raster.xml:4302
 #, no-c-format
 msgid "ST_Resample"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3486
+#: reference_raster.xml:4303
 #, no-c-format
-msgid "Resample a raster using a specified resampling algorithm, new dimensions, an arbitrary grid corner and a set of raster georeferencing attributes defined or borrowed from another raster. New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor."
+msgid "Resample a raster using a specified resampling algorithm, new dimensions, an arbitrary grid corner and a set of raster georeferencing attributes defined or borrowed from another raster."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3490
+#: reference_raster.xml:4309
 #, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>width</parameter></paramdef> <paramdef><type>integer </type> <parameter>height</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>srid=same_as_rast</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>gridx=NULL</parameter></param [...]
+msgid "<funcprototype> <funcdef>raster <function>ST_Resample</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>width</parameter></paramdef> <paramdef><type>integer </type> <parameter>height</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>gridx=NULL</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>gridy=NULL</parameter></par [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3542
+#: reference_raster.xml:4359
 #, no-c-format
-msgid "Resample a raster using a specified resampling algorithm, new dimensions (width & height), a grid corner (gridx & gridy) and a set of raster georeferencing attributes (scalex, scaley, skewx & skewy) defined or borrowed from another raster."
+msgid "Resample a raster using a specified resampling algorithm, new dimensions (width & height), a grid corner (gridx & gridy) and a set of raster georeferencing attributes (scalex, scaley, skewx & skewy) defined or borrowed from another raster. If using a reference raster, the two rasters must have the same SRID."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3544
+#: reference_raster.xml:4363
 #, no-c-format
-msgid "New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor which is the fastest but produce the worst interpolation."
+msgid "New pixel values are computed using the NearestNeighbor (English or American spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor which is the fastest but produce the worst interpolation."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3546 reference_raster.xml:3603
+#: reference_raster.xml:4367 reference_raster.xml:4434
 #, no-c-format
 msgid "A maxerror percent of 0.125 is used if no <varname>maxerr</varname> is specified."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3548 reference_raster.xml:3607 reference_raster.xml:3667 reference_raster.xml:3746
+#: reference_raster.xml:4372 reference_raster.xml:4436 reference_raster.xml:4504 reference_raster.xml:4582
 #, no-c-format
-msgid "Only works if raster is in a known spatial reference system (SRID)."
+msgid "Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3549 reference_raster.xml:3605 reference_raster.xml:3669 reference_raster.xml:3748
+#: reference_raster.xml:4376 reference_raster.xml:4440 reference_raster.xml:4508 reference_raster.xml:4586 reference_raster.xml:4742
 #, no-c-format
-msgid "Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+msgid "Availability: 2.0.0 Requires GDAL 1.6.1+"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3550 reference_raster.xml:3611 reference_raster.xml:3673 reference_raster.xml:3752 reference_raster.xml:3805
+#: reference_raster.xml:4377
 #, no-c-format
-msgid "Availability: 2.0.0 Requires GDAL 1.6.1+"
+msgid "Changed: 2.1.0 Parameter srid removed. Variants with a reference raster no longer applies the reference raster's SRID. Use ST_Transform() to reproject raster. Works on rasters with no SRID."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3556
+#: reference_raster.xml:4383
 #, no-c-format
 msgid ""
-      "SELECT ST_Width(orig) As orig_width, ST_Width(reduce_100) As new_width\n"
-      " FROM (\n"
-      " SELECT rast As orig, ST_Resample(rast,100,100) As reduce_100   \n"
-      "  FROM aerials.boston \n"
+      "SELECT\n"
+      "        ST_Width(orig) AS orig_width,\n"
+      "        ST_Width(reduce_100) AS new_width\n"
+      "FROM (\n"
+      "        SELECT\n"
+      "                rast AS orig,\n"
+      "                ST_Resample(rast,100,100) AS reduce_100\n"
+      "        FROM aerials.boston \n"
       "        WHERE ST_Intersects(rast,\n"
-      "          ST_Transform(\n"
-      "            ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, 4326),26986) ) \n"
-      "                limit 1 ) As foo;\n"
+      "                ST_Transform(\n"
+      "                        ST_MakeEnvelope(-71.128, 42.2392,-71.1277, 42.2397, 4326),26986)\n"
+      "        )\n"
+      "        LIMIT 1\n"
+      ") AS foo;\n"
+      "\n"
       " orig_width | new_width\n"
       "------------+-------------\n"
       "        200 |         100"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3561
+#: reference_raster.xml:4388
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Transform\"/>"
+msgid ", <xref linkend=\"RT_ST_Resize\"/>, <xref linkend=\"RT_ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3567
+#: reference_raster.xml:4398
 #, no-c-format
 msgid "ST_Rescale"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3568
+#: reference_raster.xml:4399
 #, no-c-format
 msgid "Resample a raster by adjusting only its scale (or pixel size). New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3573
+#: reference_raster.xml:4404
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_Rescale</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>scalexy</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster < [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3597
+#: reference_raster.xml:4428
 #, no-c-format
 msgid "Resample a raster by adjusting only its scale (or pixel size). New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The default is NearestNeighbor which is the fastest but results in the worst interpolation."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3599
+#: reference_raster.xml:4430
 #, no-c-format
 msgid "<varname>scalex</varname> and <varname>scaley</varname> define the new pixel size. scaley must often be negative to get well oriented raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3601
+#: reference_raster.xml:4432
 #, no-c-format
-msgid "When the new scalex or scaley is not a divisor of the raster width or height, the extent of the resulting raster is expanded to encompass the extent of the provided raster."
+msgid "When the new scalex or scaley is not a divisor of the raster width or height, the extent of the resulting raster is expanded to encompass the extent of the provided raster. If you want to be sure to retain exact input extent see <xref linkend=\"RT_ST_Resize\"/>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3609
+#: reference_raster.xml:4438
 #, no-c-format
 msgid "ST_Rescale is different from <xref linkend=\"RT_ST_SetScale\"/> in that ST_SetScale do not resample the raster to match the raster extent. ST_SetScale only changes the metadata (or georeference) of the raster to correct an originally mis-specified scaling. ST_Rescale results in a raster having different width and height computed to fit the geographic extent of the input raster. ST_SetScale do not modify the width, nor the height of the raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3616
+#: reference_raster.xml:4441 reference_raster.xml:4509 reference_raster.xml:4587
+#, no-c-format
+msgid "Changed: 2.1.0 Works on rasters with no SRID"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4446
 #, no-c-format
 msgid "A simple example rescaling a raster from a pixel size of 0.001 degree to a pixel size of 0.0015 degree."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3618
+#: reference_raster.xml:4448
 #, no-c-format
 msgid ""
       "-- the original raster pixel size\n"
@@ -4725,67 +5663,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3623
+#: reference_raster.xml:4453
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_Transform\"/>"
+msgid ", <xref linkend=\"RT_ST_Resample\"/>, <xref linkend=\"RT_ST_SetScale\"/>, <xref linkend=\"RT_ST_ScaleX\"/>, <xref linkend=\"RT_ST_ScaleY\"/>, <xref linkend=\"RT_ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3629
+#: reference_raster.xml:4466
 #, no-c-format
 msgid "ST_Reskew"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3630
+#: reference_raster.xml:4467
 #, no-c-format
 msgid "Resample a raster by adjusting only its skew (or rotation parameters). New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3635
+#: reference_raster.xml:4472
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_Reskew</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>skewxy</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <fu [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3659
+#: reference_raster.xml:4496
 #, no-c-format
 msgid "Resample a raster by adjusting only its skew (or rotation parameters). New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The default is NearestNeighbor which is the fastest but results in the worst interpolation."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3661
+#: reference_raster.xml:4498
 #, no-c-format
 msgid "<varname>skewx</varname> and <varname>skewy</varname> define the new skew."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3663 reference_raster.xml:3742
+#: reference_raster.xml:4500 reference_raster.xml:4578
 #, no-c-format
 msgid "The extent of the new raster will encompass the extent of the provided raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3665 reference_raster.xml:3744
+#: reference_raster.xml:4502 reference_raster.xml:4580
 #, no-c-format
 msgid "A maxerror percent of 0.125 if no <varname>maxerr</varname> is specified."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3671
+#: reference_raster.xml:4506
 #, no-c-format
 msgid "ST_Reskew is different from <xref linkend=\"RT_ST_SetSkew\"/> in that ST_SetSkew do not resample the raster to match the raster extent. ST_SetSkew only changes the metadata (or georeference) of the raster to correct an originally mis-specified skew. ST_Reskew results in a raster having different width and height computed to fit the geographic extent of the input raster. ST_SetSkew do not modify the width, nor the height of the raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3678
+#: reference_raster.xml:4514
 #, no-c-format
 msgid "A simple example reskewing a raster from a skew of 0.0 to a skew of 0.0015."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3680
+#: reference_raster.xml:4516
 #, no-c-format
 msgid ""
       "-- the original raster pixel size\n"
@@ -4796,61 +5734,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3686
+#: reference_raster.xml:4522
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_SetSkew\"/>, <xref linkend=\"RT_ST_SetRotation\"/>, <xref linkend=\"RT_ST_SkewX\"/>, <xref linkend=\"RT_ST_SkewY\"/>, <xref linkend=\"RT_ST_Transform\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3692
+#: reference_raster.xml:4528
 #, no-c-format
 msgid "ST_SnapToGrid"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3693
+#: reference_raster.xml:4529
 #, no-c-format
 msgid "Resample a raster by snapping it to a grid. New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. Default is NearestNeighbor."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3698
+#: reference_raster.xml:4534
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_SnapToGrid</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>gridx</parameter></paramdef> <paramdef><type>double precision </type> <parameter>gridy</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbour</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>maxe [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3737
+#: reference_raster.xml:4573
 #, no-c-format
 msgid "Resample a raster by snapping it to a grid defined by an arbitrary pixel corner (gridx & gridy) and optionally a pixel size (scalex & scaley). New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The default is NearestNeighbor which is the fastest but results in the worst interpolation."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3739
+#: reference_raster.xml:4575
 #, no-c-format
 msgid "<varname>gridx</varname> and <varname>gridy</varname> define any arbitrary pixel corner of the new grid. This is not necessarily the upper left corner of the new raster and it does not have to be inside or on the edge of the new raster extent."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3741
+#: reference_raster.xml:4577
 #, no-c-format
 msgid "You can optionnal define the pixel size of the new grid with <varname>scalex</varname> and <varname>scaley</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3750
+#: reference_raster.xml:4584
 #, no-c-format
 msgid "Use <xref linkend=\"RT_ST_Resample\"/> if you need more control over the grid parameters."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3757
+#: reference_raster.xml:4592
 #, no-c-format
 msgid "A simple example snapping a raster to a slightly different grid."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3759
+#: reference_raster.xml:4594
 #, no-c-format
 msgid ""
       "-- the original raster pixel size\n"
@@ -4861,49 +5799,165 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3765
+#: reference_raster.xml:4600
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_UpperLeftX\"/>, <xref linkend=\"RT_ST_UpperLeftY\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3771
+#: reference_raster.xml:4606
+#, no-c-format
+msgid "ST_Resize"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4607
+#, no-c-format
+msgid "Resize a raster to a new width/height"
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4611
+#, no-c-format
+msgid "<funcprototype> <funcdef>raster <function>ST_Resize</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>width</parameter></paramdef> <paramdef><type>integer </type> <parameter>height</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></ [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4645
+#, no-c-format
+msgid "Resize a raster to a new width/height. The new width/height can be specified in exact number of pixels or a percentage of the raster's width/height. The extent of the the new raster will be the same as the extent of the provided raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4649
+#, no-c-format
+msgid "New pixel values are computed using the NearestNeighbor (english or american spelling), Bilinear, Cubic, CubicSpline or Lanczos resampling algorithm. The default is NearestNeighbor which is the fastest but results in the worst interpolation."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4653
+#, no-c-format
+msgid "Variant 1 expects the actual width/height of the output raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4657
+#, no-c-format
+msgid "Variant 2 expects decimal values between zero (0) and one (1) indicating the percentage of the input raster's width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4661
+#, no-c-format
+msgid "Variant 3 takes either the actual width/height of the output raster or a textual percentage (\"20%\") indicating the percentage of the input raster's width/height."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4665
+#, no-c-format
+msgid "Availability: 2.1.0 Requires GDAL 1.6.1+"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4669
+#, no-c-format
+msgid ""
+      "WITH foo AS(\n"
+      "SELECT\n"
+      "        1 AS rid, \n"
+      "        ST_Resize(\n"
+      "                ST_AddBand(\n"
+      "                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 0)\n"
+      "                        , 1, '8BUI', 255, 0\n"
+      "                )\n"
+      "        , '50%', '500') AS rast\n"
+      "UNION ALL\n"
+      "SELECT\n"
+      "        2 AS rid, \n"
+      "        ST_Resize(\n"
+      "                ST_AddBand(\n"
+      "                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 0)\n"
+      "                        , 1, '8BUI', 255, 0\n"
+      "                )\n"
+      "        , 500, 100) AS rast\n"
+      "UNION ALL\n"
+      "SELECT\n"
+      "        3 AS rid, \n"
+      "        ST_Resize(\n"
+      "                ST_AddBand(\n"
+      "                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 0)\n"
+      "                        , 1, '8BUI', 255, 0\n"
+      "                )\n"
+      "        , 0.25, 0.9) AS rast\n"
+      "), bar AS (\n"
+      "        SELECT rid, ST_Metadata(rast) AS meta, rast FROM foo\n"
+      ")\n"
+      "SELECT rid, (meta).* FROM bar\n"
+      "\n"
+      " rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | skewy | srid | numbands \n"
+      "-----+------------+------------+-------+--------+--------+--------+-------+-------+------+----------\n"
+      "   1 |          0 |          0 |   500 |    500 |      1 |     -1 |     0 |     0 |    0 |        1\n"
+      "   2 |          0 |          0 |   500 |    100 |      1 |     -1 |     0 |     0 |    0 |        1\n"
+      "   3 |          0 |          0 |   250 |    900 |      1 |     -1 |     0 |     0 |    0 |        1\n"
+      "(3 rows)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4674
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Rescale\"/>, <xref linkend=\"RT_ST_Reskew\"/>, <xref linkend=\"RT_ST_SnapToGrid\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4685
 #, no-c-format
 msgid "ST_Transform"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3772
+#: reference_raster.xml:4686
 #, no-c-format
 msgid "Reprojects a raster in a known spatial reference system to another known spatial reference system using specified resampling algorithm. Options are NearestNeighbor, Bilinear, Cubic, CubicSpline, Lanczos defaulting to NearestNeighbor."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3776
+#: reference_raster.xml:4690
 #, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> <paramdef><type>double precision </type> <parameter>scalex</parameter></paramdef> <paramdef><type>double precision </type> <parameter>scaley</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbor</parameter></paramdef>  [...]
+msgid "<funcprototype> <funcdef>raster <function>ST_Transform</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>algorithm=NearestNeighbor</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>maxerr=0.125</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <para [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3802
+#: reference_raster.xml:4724
 #, no-c-format
 msgid "Reprojects a raster in a known spatial reference system to another known spatial reference system using specified pixel warping algorithm. Uses 'NearestNeighbor' if no algorithm is specified and maxerror percent of 0.125 if no maxerr is specified."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3804
+#: reference_raster.xml:4728
 #, no-c-format
-msgid "Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', 'CubicSpline', and 'Lanczos'. Refer to: <ulink url=\"http://www.gdal.org/gdalwarp.html\">GDAL Warp resampling methods</ulink> for more details."
+msgid "ST_Transform is often confused with ST_SetSRID(). ST_Transform actually changes the coordinates of a raster (and resamples the pixel values) from one spatial reference system to another, while ST_SetSRID() simply changes the SRID identifier of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4732
+#, no-c-format
+msgid "Unlike the other variants, Variant 3 requires a reference raster as <varname>alignto</varname>. The transformed raster will be transformed to the spatial reference system (SRID) of the reference raster and be aligned (ST_SameAlignment = TRUE) to the reference raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3806
+#: reference_raster.xml:4737
 #, no-c-format
 msgid "If you find your transformation support is not working right, you may need to set the environment variable PROJSO to the .so or .dll projection library your PostGIS is using. This just needs to have the name of the file. So for example on windows, you would in Control Panel -> System -> Environment Variables add a system variable called <varname>PROJSO</varname> and set it to <varname>libproj.dll</varname> (if you are using proj 4.6.1). You'll have to restart your PostgreSQL servi [...]
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4743
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of ST_Transform(rast, alignto) variant"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:3813
+#: reference_raster.xml:4749
 #, no-c-format
 msgid ""
       "SELECT ST_Width(mass_stm) As w_before, ST_Width(wgs_84) As w_after,\n"
@@ -4922,61 +5976,108 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3823
+#: reference_raster.xml:4759
 #, no-c-format
 msgid "original mass state plane meters (mass_stm)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3832
+#: reference_raster.xml:4768
 #, no-c-format
 msgid "After transform to wgs 84 long lat (wgs_84)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3841
+#: reference_raster.xml:4777
 #, no-c-format
 msgid "After transform to wgs 84 long lat with bilinear algorithm instead of NN default (wgs_84_bilin)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3853
+#: reference_raster.xml:4790
+#, no-c-format
+msgid "The following shows the difference between using ST_Transform(raster, srid) and ST_Transform(raster, alignto)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:4791
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 600000, 100, -100, 0, 0, 2163), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+      "        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 600000, 100, -100, 0, 0, 2163), 1, '16BUI', 2, 0) AS rast UNION ALL\n"
+      "        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 600000, 100, -100, 0, 0, 2163), 1, '16BUI', 3, 0) AS rast UNION ALL\n"
+      "\n"
+      "        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599800, 100, -100, 0, 0, 2163), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+      "        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599800, 100, -100, 0, 0, 2163), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+      "        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599800, 100, -100, 0, 0, 2163), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+      "\n"
+      "        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, -500000, 599600, 100, -100, 0, 0, 2163), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+      "        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499800, 599600, 100, -100, 0, 0, 2163), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+      "        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, -499600, 599600, 100, -100, 0, 0, 2163), 1, '16BUI', 300, 0) AS rast\n"
+      "), bar AS (\n"
+      "        SELECT\n"
+      "                ST_Transform(rast, 4269) AS alignto\n"
+      "        FROM foo\n"
+      "        LIMIT 1\n"
+      "), baz AS (\n"
+      "        SELECT\n"
+      "                rid,\n"
+      "                rast,\n"
+      "                ST_Transform(rast, 4269) AS not_aligned,\n"
+      "                ST_Transform(rast, alignto) AS aligned\n"
+      "        FROM foo\n"
+      "        CROSS JOIN bar\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_SameAlignment(rast) AS rast,\n"
+      "        ST_SameAlignment(not_aligned) AS not_aligned,\n"
+      "        ST_SameAlignment(aligned) AS aligned\n"
+      "FROM baz\n"
+      "\n"
+      " rast | not_aligned | aligned \n"
+      "------+-------------+---------\n"
+      " t    | f           | t"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4796
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_SetSRID\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3859
+#: reference_raster.xml:4802
 #, no-c-format
 msgid "Raster Band Editors"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3863
+#: reference_raster.xml:4806
 #, no-c-format
 msgid "ST_SetBandNoDataValue"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3864
+#: reference_raster.xml:4807
 #, no-c-format
 msgid "Sets the value for the given band that represents no data. Band 1 is assumed if no band is specified. To mark a band as having no nodata value, set the nodata value = NULL."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3868
+#: reference_raster.xml:4811
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_SetBandNoDataValue</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>double precision </type> <parameter>nodatavalue</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_SetBandNoDataValue</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>band</parameter></paramdef>  [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3889
+#: reference_raster.xml:4832
 #, no-c-format
 msgid "Sets the value that represents no data for the band. Band 1 is assumed if not specified. This will affect results from <xref linkend=\"RT_ST_Polygon\"/>, <xref linkend=\"RT_ST_DumpAsPolygons\"/>, and the ST_PixelAs...() functions."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3895
+#: reference_raster.xml:4838
 #, no-c-format
 msgid ""
       "-- change just first band no data value\n"
@@ -5002,37 +6103,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3907
+#: reference_raster.xml:4850
 #, no-c-format
 msgid "ST_SetBandIsNoData"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3908
+#: reference_raster.xml:4851
 #, no-c-format
-msgid "Sets the isnodata flag of the band to TRUE. You may want to call this function if ST_BandIsNoData(rast, band) != ST_BandIsNodata(rast, band, TRUE). This is, if the isnodata flag is dirty. Band 1 is assumed if no band is specified."
+msgid "Sets the isnodata flag of the band to TRUE."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:3917
-#, no-c-format
-msgid "<funcdef>integer <function>ST_SetBandIsNoData</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</parameter></paramdef>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:3928
+#: reference_raster.xml:4856
 #, no-c-format
-msgid "Sets the isnodata flag for the band to true. Band 1 is assumed if not specified. This function should be called only when the flag is considered dirty. This is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/> is different using TRUE as last argument and without using it"
+msgid "<funcdef>raster <function>ST_SetBandIsNoData</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3935
+#: reference_raster.xml:4867
 #, no-c-format
-msgid "Currently, the loader (raster2pgsql.py) is not able to set the isnodata flag for bands. So, this is the fastest way to set it to TRUE, without changing any other band value"
+msgid "Sets the isnodata flag for the band to true. Band 1 is assumed if not specified. This function should be called only when the flag is considered dirty. That is, when the result calling <xref linkend=\"RT_ST_BandIsNoData\"/> is different using TRUE as last argument and without using it"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:3944
+#: reference_raster.xml:4879
 #, no-c-format
 msgid ""
       "-- Create dummy table with one raster column\n"
@@ -5095,49 +6190,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3950
+#: reference_raster.xml:4885
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_BandIsNoData\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:3959
+#: reference_raster.xml:4894
 #, no-c-format
 msgid "Raster Band Statistics and Analytics"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:3962
+#: reference_raster.xml:4898
 #, no-c-format
 msgid "ST_Count"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:3963
+#: reference_raster.xml:4899
 #, no-c-format
 msgid "Returns the number of pixels in a given band of a raster or raster coverage. If no band is specified defaults to band 1. If exclude_nodata_value is set to true, will only count pixels that are not equal to the nodata value."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:3967
+#: reference_raster.xml:4903
 #, no-c-format
 msgid "<funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint <function>ST_Count</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter> [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3998
+#: reference_raster.xml:4934
 #, no-c-format
 msgid "Returns the number of pixels in a given band of a raster or raster coverage. If no band is specified <varname>nband</varname> defaults to 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:3999
+#: reference_raster.xml:4935
 #, no-c-format
 msgid "If <varname>exclude_nodata_value</varname> is set to true, will only count pixels with value not equal to the <varname>nodata</varname> value of the raster. Set <varname>exclude_nodata_value</varname> to false to get count all pixels"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4939
+#, no-c-format
+msgid "The ST_Count(rastertable, rastercolumn, ...) variants are deprecated as of 2.2.0. Use <xref linkend=\"RT_ST_CountAgg\"/> instead."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:4006
+#: reference_raster.xml:4949
 #, no-c-format
 msgid ""
       "--example will count all pixels not 249 and one will count all pixels.  --\n"
@@ -5150,86 +6251,165 @@ msgid ""
       "   2 |             23 |             25"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:4954 reference_raster.xml:5015
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:4964
+#, no-c-format
+msgid "ST_CountAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:4965
+#, no-c-format
+msgid "Aggregate. Returns the number of pixels in a given band of a set of rasters. If no band is specified defaults to band 1. If exclude_nodata_value is set to true, will only count pixels that are not equal to the NODATA value."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:4971
+#, no-c-format
+msgid "<funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef> <paramdef><type>double precision </type> <parameter>sample_percent</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bigint <function>ST_CountAgg</function></funcdef> [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:4999
+#, no-c-format
+msgid "Returns the number of pixels in a given band of a set of rasters. If no band is specified <varname>nband</varname> defaults to 1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5000
+#, no-c-format
+msgid "If <varname>exclude_nodata_value</varname> is set to true, will only count pixels with value not equal to the <varname>NODATA</varname> value of the raster. Set <varname>exclude_nodata_value</varname> to false to get count all pixels"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5003
+#, no-c-format
+msgid "By default will sample all pixels. To get faster response, set <varname>sample_percent</varname> to value between zero (0) and one (1)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5010
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT\n"
+      "                rast.rast\n"
+      "        FROM (\n"
+      "                SELECT ST_SetValue(\n"
+      "                        ST_SetValue(\n"
+      "                                ST_SetValue(\n"
+      "                                        ST_AddBand(\n"
+      "                                                ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)\n"
+      "                                                , 1, '64BF', 0, 0\n"
+      "                                        )\n"
+      "                                        , 1, 1, 1, -10\n"
+      "                                )\n"
+      "                                , 1, 5, 4, 0\n"
+      "                        )\n"
+      "                        , 1, 5, 5, 3.14159\n"
+      "                ) AS rast\n"
+      "        ) AS rast\n"
+      "        FULL JOIN (\n"
+      "                SELECT generate_series(1, 10) AS id\n"
+      "        ) AS id\n"
+      "                ON 1 = 1\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_CountAgg(rast, 1, TRUE)\n"
+      "FROM foo;\n"
+      "\n"
+      " st_countagg \n"
+      "-------------\n"
+      "          20\n"
+      "(1 row)"
+msgstr ""
+
 #. Tag: refname
-#: reference_raster.xml:4017
+#: reference_raster.xml:5025
 #, no-c-format
 msgid "ST_Histogram"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4018
+#: reference_raster.xml:5026
 #, no-c-format
 msgid "Returns a set of record summarizing a raster or raster coverage data distribution separate bin ranges. Number of bins are autocomputed if not specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4022
+#: reference_raster.xml:5030
 #, no-c-format
 msgid "<funcprototype> <funcdef>SETOF record <function>ST_Histogram</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>bins=autocomputed</parameter></paramdef> <paramdef choice=\"opt\"><type>double  [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4104
+#: reference_raster.xml:5112
 #, no-c-format
 msgid "Returns set of records consisting of min, max, count, percent for a given raster band for each bin. If no band is specified <varname>nband</varname> defaults to 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4105
+#: reference_raster.xml:5113
 #, no-c-format
 msgid "By default only considers pixel values not equal to the <varname>nodata</varname> value . Set <varname>exclude_nodata_value</varname> to false to get count all pixels."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:4109
+#: reference_raster.xml:5117
 #, no-c-format
 msgid "<parameter>width </parameter><type>double precision[]</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4110
+#: reference_raster.xml:5118
 #, no-c-format
 msgid "width: an array indicating the width of each category/bin. If the number of bins is greater than the number of widths, the widths are repeated."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4111
+#: reference_raster.xml:5119
 #, no-c-format
 msgid "Example: 9 bins, widths are [a, b, c] will have the output be [a, b, c, a, b, c, a, b, c]"
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:4114
+#: reference_raster.xml:5122
 #, no-c-format
 msgid "<parameter>bins </parameter><type>integer</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4115
+#: reference_raster.xml:5123
 #, no-c-format
 msgid "Number of breakouts -- this is the number of records you'll get back from the function if specified. If not specified then the number of breakouts is autocomputed."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:4119
+#: reference_raster.xml:5127
 #, no-c-format
 msgid "<parameter>right </parameter><type>boolean</type>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4120
+#: reference_raster.xml:5128
 #, no-c-format
 msgid "compute the histogram from the right rather than from the left (default). This changes the criteria for evaluating a value x from [a, b) to (a, b]"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4127
+#: reference_raster.xml:5135
 #, no-c-format
 msgid "Example: Single raster tile - compute histograms for bands 1, 2, 3 and autocompute bins"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4128
+#: reference_raster.xml:5136
 #, no-c-format
 msgid ""
       "SELECT band, (stats).*\n"
@@ -5257,13 +6437,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4132
+#: reference_raster.xml:5140
 #, no-c-format
 msgid "Example: Just band 2 but for 6 bins"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4133
+#: reference_raster.xml:5141
 #, no-c-format
 msgid ""
       "SELECT (stats).*\n"
@@ -5299,43 +6479,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4138
+#: reference_raster.xml:5146
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_SummaryStats\"/>"
+msgid ", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_SummaryStatsAgg\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4147
+#: reference_raster.xml:5156
 #, no-c-format
 msgid "ST_Quantile"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4148
+#: reference_raster.xml:5157
 #, no-c-format
 msgid "<refpurpose>Compute quantiles for a raster or raster table coverage in the context of the sample or population. Thus, a value could be examined to be at the raster's 25%, 50%, 75% percentile.</refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4152
+#: reference_raster.xml:5161
 #, no-c-format
 msgid "<funcprototype> <funcdef>SETOF record <function>ST_Quantile</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> <parameter>quantiles=NULL</parameter></paramdef> </funcprototype> <funcprototype [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4224
+#: reference_raster.xml:5233
 #, no-c-format
 msgid "<para>Compute quantiles for a raster or raster table coverage in the context of the sample or population. Thus, a value could be examined to be at the raster's 25%, 50%, 75% percentile.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4225 reference_raster.xml:4442
+#: reference_raster.xml:5234 reference_raster.xml:5526
 #, no-c-format
 msgid "If <varname>exclude_nodata_value</varname> is set to false, will also count pixels with no data."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4232
+#: reference_raster.xml:5241
 #, no-c-format
 msgid ""
       "UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
@@ -5360,7 +6540,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4233
+#: reference_raster.xml:5242
 #, no-c-format
 msgid ""
       "--real live example.  Quantile of all pixels in band 2 intersecting a geometry\n"
@@ -5398,55 +6578,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4238 reference_raster.xml:4457
+#: reference_raster.xml:5247
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgid ", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4244
+#: reference_raster.xml:5258
 #, no-c-format
 msgid "ST_SummaryStats"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4245
+#: reference_raster.xml:5259
 #, no-c-format
-msgid "Returns record consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified."
+msgid "Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4249
+#: reference_raster.xml:5263
 #, no-c-format
-msgid "<funcprototype> <funcdef>record <function>ST_SummaryStats</function></funcdef> <paramdef><type>text </type> <parameter>rastertable</parameter></paramdef> <paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>record <function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <p [...]
+msgid "<funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats <function>ST_SummaryStats</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4285
+#: reference_raster.xml:5299 reference_raster.xml:5378
 #, no-c-format
-msgid "Returns record consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. If no band is specified <varname>nband</varname> defaults to 1."
+msgid "Returns <xref linkend=\"summarystats\"/> consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. If no band is specified <varname>nband</varname> defaults to 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4287
+#: reference_raster.xml:5301
 #, no-c-format
 msgid "By default only considers pixel values not equal to the <varname>nodata</varname> value. Set <varname>exclude_nodata_value</varname> to false to get count of all pixels."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4289
+#: reference_raster.xml:5303
 #, no-c-format
 msgid "By default will sample all pixels. To get faster response, set <varname>sample_percent</varname> to lower than 1"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:5308
+#, no-c-format
+msgid "The ST_SummaryStats(rastertable, rastercolumn, ...) variants are deprecated as of 2.2.0. Use <xref linkend=\"RT_ST_SummaryStatsAgg\"/> instead."
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:4294
+#: reference_raster.xml:5316
 #, no-c-format
 msgid "Example: Single raster tile"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4295
+#: reference_raster.xml:5317
 #, no-c-format
 msgid ""
       "SELECT rid, band, (stats).*\n"
@@ -5462,19 +6648,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4299
+#: reference_raster.xml:5321
 #, no-c-format
 msgid "Example: Summarize pixels that intersect buildings of interest"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4300
+#: reference_raster.xml:5322
 #, no-c-format
 msgid "This example took 574ms on PostGIS windows 64-bit with all of Boston Buildings and aerial Tiles (tiles each 150x150 pixels ~ 134,000 tiles), ~102,000 building records"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4302
+#: reference_raster.xml:5324
 #, no-c-format
 msgid ""
       "WITH \n"
@@ -5509,13 +6695,13 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4306
+#: reference_raster.xml:5328
 #, no-c-format
 msgid "Example: Raster coverage"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4307
+#: reference_raster.xml:5329
 #, no-c-format
 msgid ""
       "-- stats for each band --\n"
@@ -5543,43 +6729,125 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4312
+#: reference_raster.xml:5334
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SummaryStatsAgg\"/>, <xref linkend=\"RT_ST_Count\"/>, <xref linkend=\"RT_ST_Clip\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:5345
+#, no-c-format
+msgid "ST_SummaryStatsAgg"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:5346
+#, no-c-format
+msgid "Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a set of raster. Band 1 is assumed is no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:5350
+#, no-c-format
+msgid "<funcprototype> <funcdef>summarystats <function>ST_SummaryStatsAgg</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef> <paramdef><type>double precision </type> <parameter>sample_percent</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>summarystats <function>ST_SummarySta [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5380
+#, no-c-format
+msgid "By default only considers pixel values not equal to the <varname>NODATA</varname> value. Set <varname>exclude_nodata_value</varname> to False to get count of all pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5382
+#, no-c-format
+msgid "By default will sample all pixels. To get faster response, set <varname>sample_percent</varname> to value between 0 and 1"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:5389
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT\n"
+      "                rast.rast\n"
+      "        FROM (\n"
+      "                SELECT ST_SetValue(\n"
+      "                        ST_SetValue(\n"
+      "                                ST_SetValue(\n"
+      "                                        ST_AddBand(\n"
+      "                                                ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)\n"
+      "                                                , 1, '64BF', 0, 0\n"
+      "                                        )\n"
+      "                                        , 1, 1, 1, -10\n"
+      "                                )\n"
+      "                                , 1, 5, 4, 0\n"
+      "                        )\n"
+      "                        , 1, 5, 5, 3.14159\n"
+      "                ) AS rast\n"
+      "        ) AS rast\n"
+      "        FULL JOIN (\n"
+      "                SELECT generate_series(1, 10) AS id\n"
+      "        ) AS id\n"
+      "                ON 1 = 1\n"
+      ")\n"
+      "SELECT\n"
+      "        (stats).count,\n"
+      "        round((stats).sum::numeric, 3),\n"
+      "        round((stats).mean::numeric, 3),\n"
+      "        round((stats).stddev::numeric, 3),\n"
+      "        round((stats).min::numeric, 3),\n"
+      "        round((stats).max::numeric, 3)\n"
+      "FROM (\n"
+      "        SELECT\n"
+      "                ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats\n"
+      "        FROM foo\n"
+      ") bar;\n"
+      "\n"
+      " count |  round  | round  | round |  round  | round \n"
+      "-------+---------+--------+-------+---------+-------\n"
+      "    20 | -68.584 | -3.429 | 6.571 | -10.000 | 3.142\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5394
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Clip\"/>"
+msgid ", <xref linkend=\"RT_ST_SummaryStats\"/>, <xref linkend=\"RT_ST_Count\"/>, <xref linkend=\"RT_ST_Clip\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4321
+#: reference_raster.xml:5405
 #, no-c-format
 msgid "ST_ValueCount"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4322
+#: reference_raster.xml:5406
 #, no-c-format
 msgid "Returns a set of records containing a pixel band value and count of the number of pixels in a given band of a raster (or a raster coverage) that have a given set of values. If no band is specified defaults to band 1. By default nodata value pixels are not counted. and all other values in the pixel are output and pixel band values are rounded to the nearest integer."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4327
+#: reference_raster.xml:5411
 #, no-c-format
 msgid "<funcprototype> <funcdef>SETOF record <function>ST_ValueCount</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=true</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> <parameter>searchvalues=NULL</parameter></paramdef> <paramdef choice=\"opt\">< [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4440
+#: reference_raster.xml:5524
 #, no-c-format
 msgid "Returns a set of records with columns <varname>value</varname> <varname>count</varname> which contain the pixel band value and count of pixels in the raster tile or raster coverage of selected band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4441
+#: reference_raster.xml:5525
 #, no-c-format
 msgid "If no band is specified <varname>nband</varname> defaults to 1. If no <varname>searchvalues</varname> are specified, will return all pixel values found in the raster or raster coverage. If one searchvalue is given, will return an integer instead of records denoting the count of pixels having that pixel band value"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4449
+#: reference_raster.xml:5533
 #, no-c-format
 msgid ""
       "UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;\n"
@@ -5633,7 +6901,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4450
+#: reference_raster.xml:5534
 #, no-c-format
 msgid ""
       "--real live example.  Count all the pixels in an aerial raster tile band 2 intersecting a geometry \n"
@@ -5656,7 +6924,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4452
+#: reference_raster.xml:5536
 #, no-c-format
 msgid ""
       "-- Just return count of pixels in each raster tile that have value of 100 of tiles that intersect  a specific geometry --\n"
@@ -5674,48 +6942,65 @@ msgid ""
       "  15 |    64"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:5541
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SetBandNoDataValue\"/>"
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:4463
+#: reference_raster.xml:5547
 #, no-c-format
 msgid "Raster Outputs"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4466
+#: reference_raster.xml:5550
 #, no-c-format
 msgid "ST_AsBinary"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4467
+#: reference_raster.xml:5551
 #, no-c-format
 msgid "Return the Well-Known Binary (WKB) representation of the raster without SRID meta data."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:4472
+#: reference_raster.xml:5556
 #, no-c-format
-msgid "<funcdef>bytea <function>ST_AsBinary</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgid "<funcdef>bytea <function>ST_AsBinary</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>outasin=FALSE</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4482
+#: reference_raster.xml:5567
 #, no-c-format
-msgid "Returns the Binary representation of the raster. There are 2 variants of the function. The first variant takes no endian encoding parameter and defaults to little endian. The second variant takes a second argument denoting the encoding - using little-endian ('NDR') or big-endian ('XDR') encoding."
+msgid "Returns the Binary representation of the raster. If <varname>outasin</varname> is TRUE, out-db bands are treated as in-db."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4485
+#: reference_raster.xml:5571
 #, no-c-format
 msgid "This is useful in binary cursors to pull data out of the database without converting it to a string representation."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:5576
+#, no-c-format
+msgid "By default, WKB output contains the external file path for out-db bands. If the client does not have access to the raster file underlying an out-db band, set <varname>outasin</varname> to TRUE."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:5580
+#, no-c-format
+msgid "Enhanced: 2.1.0 Addition of <varname>outasin</varname>"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:4492
+#: reference_raster.xml:5586
 #, no-c-format
 msgid ""
-      "SELECT ST_AsBinary(rast) As rastbin\n"
-      "FROM dummy_rast WHERE rid=1;\n"
+      "SELECT ST_AsBinary(rast) As rastbin FROM dummy_rast WHERE rid=1;\n"
       "\n"
       "                                         rastbin\n"
       "---------------------------------------------------------------------------------\n"
@@ -5725,72 +7010,72 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4499
+#: reference_raster.xml:5593
 #, no-c-format
 msgid "ST_AsGDALRaster"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4500
+#: reference_raster.xml:5594
 #, no-c-format
 msgid "Return the raster tile in the designated GDAL Raster format. Raster formats are one of those supported by your compiled library. Use ST_GDALRasters() to get a list of formats supported by your library."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:4505
+#: reference_raster.xml:5599
 #, no-c-format
 msgid "<funcdef>bytea <function>ST_AsGDALRaster</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>text </type> <parameter>format</parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>srid=sameassource</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4519
+#: reference_raster.xml:5613
 #, no-c-format
 msgid "Returns the raster tile in the designated format. Arguments are itemized below:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4522
+#: reference_raster.xml:5616
 #, no-c-format
 msgid "<varname>format</varname> format to output. This is dependent on the drivers compiled in your libgdal library. Generally available are 'JPEG', 'GTIff', 'PNG'. Use <xref linkend=\"RT_ST_GDALDrivers\"/> to get a list of formats supported by your library."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4527
+#: reference_raster.xml:5621
 #, no-c-format
 msgid "<varname>options</varname> text array of GDAL options. Valid options are dependent on the format. Refer to <ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL Raster format options</ulink> for more details."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4532
+#: reference_raster.xml:5626
 #, no-c-format
 msgid "<varname>srs</varname> The proj4text or srtext (from spatial_ref_sys) to embed in the image"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4541
+#: reference_raster.xml:5635
 #, no-c-format
 msgid "JPEG Output Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4543
+#: reference_raster.xml:5637
 #, no-c-format
 msgid ""
       "SELECT ST_AsGDALRaster(rast, 'JPEG') As rastjpg\n"
       "FROM dummy_rast WHERE rid=1;\n"
       "\n"
-      "SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY!['QUALITY=50']) As rastjpg\n"
+      "SELECT ST_AsGDALRaster(rast, 'JPEG', ARRAY['QUALITY=50']) As rastjpg\n"
       "FROM dummy_rast WHERE rid=2;"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4548
+#: reference_raster.xml:5642
 #, no-c-format
 msgid "GTIFF Output Examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4550
+#: reference_raster.xml:5644
 #, no-c-format
 msgid ""
       "SELECT ST_AsGDALRaster(rast, 'GTiff') As rastjpg\n"
@@ -5804,67 +7089,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4557
+#: reference_raster.xml:5651
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4563
+#: reference_raster.xml:5657
 #, no-c-format
 msgid "ST_AsJPEG"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4564
+#: reference_raster.xml:5658
 #, no-c-format
 msgid "Return the raster tile selected bands as a single Joint Photographic Exports Group (JPEG) image (byte array). If no band is specified and 1 or more than 3 bands, then only the first band is used. If only 3 bands then all 3 bands are used and mapped to RGB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4568
+#: reference_raster.xml:5662
 #, no-c-format
 msgid "<funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsJPEG</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>int [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4604
+#: reference_raster.xml:5698
 #, no-c-format
 msgid "Returns the selected bands of the raster as a single Joint Photographic Exports Group Image (JPEG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if you need to export as less common raster types. If no band is specified and 1 or more than 3 bands, then only the first band is used. If 3 bands then all 3 bands are used. There are many variants of the function with many options. These are itemized below:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4607 reference_raster.xml:4698
+#: reference_raster.xml:5701 reference_raster.xml:5792
 #, no-c-format
 msgid "<varname>nband</varname> is for single band exports."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4612
+#: reference_raster.xml:5706
 #, no-c-format
 msgid "<varname>nbands</varname> is an array of bands to export (note that max is 3 for JPEG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band 3 to Red, band 2 to green and band 1 to blue"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4617
+#: reference_raster.xml:5711
 #, no-c-format
 msgid "<varname>quality</varname> number from 0 to 100. The higher the number the crisper the image."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4622
+#: reference_raster.xml:5716
 #, no-c-format
 msgid "<varname>options</varname> text Array of GDAL options as defined for JPEG (look at create_options for JPEG <xref linkend=\"RT_ST_GDALDrivers\"/>). For JPEG valid ones are <varname>PROGRESSIVE</varname> ON or OFF and <varname>QUALITY</varname> a range from 0 to 100 and default to 75. Refer to <ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL Raster format options</ulink> for more details."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4639
+#: reference_raster.xml:5733
 #, no-c-format
 msgid "Examples: Output"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4641
+#: reference_raster.xml:5735
 #, no-c-format
 msgid ""
       "-- output first 3 bands 75% quality\n"
@@ -5881,55 +7166,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4648
+#: reference_raster.xml:5742
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsTIFF\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4654
+#: reference_raster.xml:5748
 #, no-c-format
 msgid "ST_AsPNG"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4655
+#: reference_raster.xml:5749
 #, no-c-format
 msgid "Return the raster tile selected bands as a single portable network graphics (PNG) image (byte array). If 1, 3, or 4 bands in raster and no bands are specified, then all bands are used. If more 2 or more than 4 bands and no bands specified, then only band 1 is used. Bands are mapped to RGB or RGBA space."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4659
+#: reference_raster.xml:5753
 #, no-c-format
 msgid "<funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> <parameter>options=NULL</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsPNG</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>integ [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4695
+#: reference_raster.xml:5789
 #, no-c-format
 msgid "Returns the selected bands of the raster as a single Portable Network Graphics Image (PNG). Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if you need to export as less common raster types. If no band is specified, then the first 3 bands are exported. There are many variants of the function with many options. If no <varname>srid</varname> is specified then then srid of the raster is used. These are itemized below:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4703 reference_raster.xml:4786
+#: reference_raster.xml:5797 reference_raster.xml:5880
 #, no-c-format
 msgid "<varname>nbands</varname> is an array of bands to export (note that max is 3 for PNG) and the order of the bands is RGB. e.g ARRAY[3,2,1] means map band 3 to Red, band 2 to green and band 1 to blue"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4708
+#: reference_raster.xml:5802
 #, no-c-format
 msgid "<varname>compression</varname> number from 1 to 9. The higher the number the greater the compression."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4713
+#: reference_raster.xml:5807
 #, no-c-format
 msgid "<varname>options</varname> text Array of GDAL options as defined for PNG (look at create_options for PNG of <xref linkend=\"RT_ST_GDALDrivers\"/>). For PNG valid one is only ZLEVEL (amount of time to spend on compression -- default 6) e.g. ARRAY['ZLEVEL=9']. WORLDFILE is not allowed since the function would have to output two outputs. Refer to <ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL Raster format options</ulink> for more details."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4732
+#: reference_raster.xml:5826
 #, no-c-format
 msgid ""
       "SELECT ST_AsPNG(rast) As rastpng\n"
@@ -5941,61 +7226,61 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4739
+#: reference_raster.xml:5833
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_Raster_Applications\"/>"
+msgid ", <xref linkend=\"RT_ST_ColorMap\"/>, <xref linkend=\"RT_ST_GDALDrivers\"/>, <xref linkend=\"RT_Raster_Applications\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4745
+#: reference_raster.xml:5839
 #, no-c-format
 msgid "ST_AsTIFF"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4746
+#: reference_raster.xml:5840
 #, no-c-format
 msgid "Return the raster selected bands as a single TIFF image (byte array). If no band is specified, then will try to use all bands."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4750
+#: reference_raster.xml:5844
 #, no-c-format
 msgid "<funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>text[] </type> <parameter>options=''</parameter></paramdef> <paramdef><type>integer </type> <parameter>srid=sameassource</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>bytea <function>ST_AsTIFF</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4783
+#: reference_raster.xml:5877
 #, no-c-format
 msgid "Returns the selected bands of the raster as a single Tagged Image File Format (TIFF). If no band is specified, will try to use all bands. This is a wrapper around <xref linkend=\"RT_ST_AsGDALRaster\"/>. Use <xref linkend=\"RT_ST_AsGDALRaster\"/> if you need to export as less common raster types. There are many variants of the function with many options. If no spatial reference SRS text is present, the spatial reference of the raster is used. These are itemized below:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4791
+#: reference_raster.xml:5885
 #, no-c-format
 msgid "<varname>compression</varname> Compression expression -- JPEG90 (or some other percent), LZW, JPEG, DEFLATE9."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4796
+#: reference_raster.xml:5890
 #, no-c-format
 msgid "<varname>options</varname> text Array of GDAL create options as defined for GTiff (look at create_options for GTiff of <xref linkend=\"RT_ST_GDALDrivers\"/>). or refer to <ulink url=\"http://www.gdal.org/frmt_various.html\">GDAL Raster format options</ulink> for more details."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4801
+#: reference_raster.xml:5895
 #, no-c-format
 msgid "<varname>srid</varname> srid of spatial_ref_sys of the raster. This is used to populate the georeference information"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4810
+#: reference_raster.xml:5904
 #, no-c-format
 msgid "Examples: Use jpeg compression 90%"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4812
+#: reference_raster.xml:5906
 #, no-c-format
 msgid ""
       "SELECT ST_AsTIFF(rast, 'JPEG90') As rasttiff\n"
@@ -6003,116 +7288,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4819
+#: reference_raster.xml:5913
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_AsGDALRaster\"/>, <xref linkend=\"RT_ST_SRID\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4825
+#: reference_raster.xml:5919
 #, no-c-format
 msgid "Raster Processing"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:4828
-#, no-c-format
-msgid "Box3D"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:4829
-#, no-c-format
-msgid "Returns the box 3d representation of the enclosing box of the raster."
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:4834
-#, no-c-format
-msgid "<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:4844
-#, no-c-format
-msgid "Returns the box representing the extent of the raster."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:4845
-#, no-c-format
-msgid "The polygon is defined by the corner points of the bounding box ((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</varname>, <varname>MAXY</varname>))"
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:4849
-#, no-c-format
-msgid "Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of box3d. Since box2d is a deprecated type, this was changed to box3d."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:4855
+#. Tag: title
+#: reference_raster.xml:5922
 #, no-c-format
-msgid ""
-      "SELECT rid, Box3D(rast) As rastbox\n"
-      "FROM dummy_rast;\n"
-      "\n"
-      "rid |        rastbox\n"
-      "----+-------------------------------------------------\n"
-      "1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
-      "2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
+msgid "Map Algebra"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:4867
+#: reference_raster.xml:5926
 #, no-c-format
 msgid "ST_Clip"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:4868
+#: reference_raster.xml:5927
 #, no-c-format
-msgid "Returns the raster clipped by the input geometry. If no band is specified all bands are returned. If <varname>crop</varname> is not specified, true is assumed meaning the output raster is cropped."
+msgid "Returns the raster clipped by the input geometry. If band number not is specified, all bands are processed. If <varname>crop</varname> is not specified or TRUE, the output raster is cropped."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:4873
+#: reference_raster.xml:5931
 #, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> <parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>crop=true</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_Clip</functi [...]
+msgid "<funcprototype> <funcdef>raster <function>ST_Clip</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer[] </type> <parameter>nband</parameter></paramdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision[] </type> <parameter>nodataval=NULL</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>crop=TRUE</parameter></paramdef>  [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4902
+#: reference_raster.xml:5988
 #, no-c-format
-msgid "Returns a raster that is clipped by the input geometry <varname>geom</varname>. If no band is specified all bands are returned."
+msgid "Returns a raster that is clipped by the input geometry <varname>geom</varname>. If band index is not specified, all bands are processed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4904
+#: reference_raster.xml:5992
 #, no-c-format
 msgid "Rasters resulting from ST_Clip must have a nodata value assigned for areas clipped, one for each band. If none are provided and the input raster do not have a nodata value defined, nodata values of the resulting raster are set to ST_MinPossibleValue(ST_BandPixelType(rast, band)). When the number of nodata value in the array is smaller than the number of band, the last one in the array is used for the remaining bands. If the number of nodata value is greater than the number of band [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4906
+#: reference_raster.xml:5996
 #, no-c-format
 msgid "If <varname>crop</varname> is not specified, true is assumed meaning the output raster is cropped to the intersection of the <varname>geom</varname>and <varname>rast</varname> extents. If <varname>crop</varname> is set to false, the new raster gets the same extent as <varname>rast</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4910
+#: reference_raster.xml:6002
+#, no-c-format
+msgid "Enhanced: 2.1.0 Rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6004
 #, no-c-format
 msgid "Examples here use Massachusetts aerial data available on MassGIS site <ulink url=\"http://www.mass.gov/mgis/colororthos2008.htm\">MassGIS Aerial Orthos</ulink>. Coordinates are in Massachusetts State Plane Meters."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4914
+#: reference_raster.xml:6010
 #, no-c-format
 msgid "Examples: 1 band clipping"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4915
+#: reference_raster.xml:6012
 #, no-c-format
 msgid ""
       "-- Clip the first band of an aerial tile by a 20 meter buffer.\n"
@@ -6123,7 +7371,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4917
+#: reference_raster.xml:6014
 #, no-c-format
 msgid ""
       "-- Demonstrate effect of crop on final dimensions of raster\n"
@@ -6143,25 +7391,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4927 reference_raster.xml:4957 reference_raster.xml:4988
+#: reference_raster.xml:6028 reference_raster.xml:6071 reference_raster.xml:6114
 #, no-c-format
 msgid "Full raster tile before clipping"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4936 reference_raster.xml:4997
+#: reference_raster.xml:6042 reference_raster.xml:6128
 #, no-c-format
 msgid "After Clipping"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4946
+#: reference_raster.xml:6055
 #, no-c-format
 msgid "Examples: 1 band clipping with no crop and add back other bands unchanged"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4947
+#: reference_raster.xml:6057
 #, no-c-format
 msgid ""
       "-- Same example as before, but we need to set crop to false to be able to use ST_AddBand\n"
@@ -6173,19 +7421,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:4966
+#: reference_raster.xml:6085
 #, no-c-format
 msgid "After Clipping - surreal"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:4976
+#: reference_raster.xml:6098
 #, no-c-format
 msgid "Examples: Clip all bands"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:4977
+#: reference_raster.xml:6100
 #, no-c-format
 msgid ""
       "-- Clip all bands of an aerial tile by a 20 meter buffer.\n"
@@ -6199,487 +7447,393 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5009
+#: reference_raster.xml:6143
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Intersection\"/>"
+msgid ", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Intersection\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5015
+#: reference_raster.xml:6153
 #, no-c-format
-msgid "ST_ConvexHull"
+msgid "ST_ColorMap"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5016
+#: reference_raster.xml:6154
 #, no-c-format
-msgid "Return the convex hull geometry of the raster including pixel values equal to BandNoDataValue. For regular shaped and non-skewed rasters, this gives the same result as ST_Envelope so only useful for irregularly shaped or skewed rasters."
+msgid "Creates a new raster of up to four 8BUI bands (grayscale, RGB, RGBA) from the source raster and a specified band. Band 1 is assumed if not specified."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:5023
+#: reference_raster.xml:6159
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_ConvexHull</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgid "<funcdef>raster <function>ST_ColorMap</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>colormap=grayscale</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>method=INTERPOLATE</parameter></paramdef>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5033
+#. Tag: funcprototype
+#: reference_raster.xml:6169
 #, no-c-format
-msgid "Return the convex hull geometry of the raster including the NoDataBandValue band pixels. For regular shaped and non-skewed rasters, this gives more or less the same result as ST_Envelope so only useful for irregularly shaped or skewed rasters."
+msgid "<funcdef>raster <function>ST_ColorMap</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>text </type> <parameter>colormap</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>method=INTERPOLATE</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5037
+#: reference_raster.xml:6181
 #, no-c-format
-msgid "ST_Envelope floors the coordinates and hence add a little buffer around the raster so the answer is subtly different from ST_ConvexHull which does not floor."
+msgid "Apply a <varname>colormap</varname> to the band at <varname>nband</varname> of <varname>rast</varname> resulting a new raster comprised of up to four 8BUI bands. The number of 8BUI bands in the new raster is determined by the number of color components defined in <varname>colormap</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5044
-#, no-c-format
-msgid "Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram of this."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:5052
-#, no-c-format
-msgid ""
-      "-- Note envelope and convexhull are more or less the same\n"
-      "SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
-      "        ST_AsText(ST_Envelope(rast)) As env\n"
-      "FROM dummy_rast WHERE rid=1;\n"
-      "\n"
-      "                        convhull                        |                env\n"
-      "\n"
-      "--------------------------------------------------------+-----------------------\n"
-      " POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 0,20 60,0 60,0 0))"
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:5059
+#: reference_raster.xml:6185
 #, no-c-format
-msgid ""
-      "-- now we skew the raster \n"
-      "-- note how the convex hull and envelope are now different\n"
-      "SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
-      "        ST_AsText(ST_Envelope(rast)) As env\n"
-      "FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
-      "        FROM dummy_rast WHERE rid=1) As foo;\n"
-      "        \n"
-      "                        convhull                        |                env\n"
-      "\n"
-      "--------------------------------------------------------+------------------------------------\n"
-      " POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 0,22 61,0 61,0 0))"
+msgid "If <varname>nband</varname> is not specified, then band 1 is assumed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5071
-#, no-c-format
-msgid ", <xref linkend=\"ST_ConvexHull\"/>, <xref linkend=\"ST_AsText\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5077
-#, no-c-format
-msgid "ST_DumpAsPolygons"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5078
-#, no-c-format
-msgid "Returns a set of geomval (geom,val) rows, from a given raster band. If no band number is specified, band num defaults to 1."
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:5083
+#: reference_raster.xml:6187
 #, no-c-format
-msgid "<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgid "<varname>colormap</varname> can be a keyword of a pre-defined colormap or a set of lines defining the value and the color components."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5094
+#: reference_raster.xml:6191
 #, no-c-format
-msgid "This is a set-returning function (SRF). It returns a set of geomval rows, formed by a geometry (geom) and a pixel band value (val). Each polygon is the union of all pixels for that band that have the same pixel value denoted by val."
+msgid "Valid pre-defined <varname>colormap</varname> keyword:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5098
+#: reference_raster.xml:6197
 #, no-c-format
-msgid "ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a GROUP BY in that it creates new rows. For example it can be used to expand a single raster into multiple POLYGONS/MULTIPOLYGONS."
+msgid "<varname>grayscale</varname> or <varname>greyscale</varname> for a one 8BUI band raster of shades of gray."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5102
+#: reference_raster.xml:6202
 #, no-c-format
-msgid "Availability: Requires GDAL 1.7 or higher."
+msgid "<varname>pseudocolor</varname> for a four 8BUI (RGBA) band raster with colors going from blue to green to red."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5103
+#: reference_raster.xml:6207
 #, no-c-format
-msgid "If there is a no data value set for a band, pixels with that value will not be returned."
+msgid "<varname>fire</varname> for a four 8BUI (RGBA) band raster with colors going from black to red to pale yellow."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5104
+#: reference_raster.xml:6212
 #, no-c-format
-msgid "If you only care about count of pixels with a given value in a raster, it is faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
+msgid "<varname>bluered</varname> for a four 8BUI (RGBA) band raster with colors going from blue to pale white to red."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5106
+#: reference_raster.xml:6218
 #, no-c-format
-msgid "This is different than ST_PixelAsPolygons where one geometry is returned for each pixel regardless of pixel value."
+msgid "Users can pass a set of entries (one per line) to <varname>colormap</varname> to specify custom colormaps. Each entry generally consists of five values: the pixel value and corresponding Red, Green, Blue, Alpha components (color components between 0 and 255). Percent values can be used instead of pixel values where 0% and 100% are the minimum and maximum values found in the raster band. Values can be separated with commas (','), tabs, colons (':') and/or spaces. The pixel value ca [...]
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5114
+#: reference_raster.xml:6222
 #, no-c-format
 msgid ""
-      "SELECT val, ST_AsText(geom) As geomwkt\n"
-      "FROM (\n"
-      "SELECT (ST_DumpAsPolygons(rast)).*\n"
-      "FROM dummy_rast \n"
-      "WHERE rid = 2\n"
-      ") As foo\n"
-      "WHERE val BETWEEN 249 and 251\n"
-      "ORDER BY val;\n"
-      "\n"
-      " val |                                                       geomwkt\n"
-      "-----+--------------------------------------------------------------------------\n"
-      " 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 5793243.85,\n"
-      "                 3427928 5793243.95,3427927.95 5793243.95))\n"
-      " 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 5793243.85,\n"
-      "                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
-      " 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 5793243.75,\n"
-      "                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
-      " 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 5793243.8,\n"
-      "                 3427927.8 5793243.85,3427927.75 5793243.85))"
+      "5 0 0 0 255\n"
+      "4 100:50 55 255\n"
+      "1 150,100 150 255\n"
+      "0% 255 255 255 255\n"
+      "nv 0 0 0 0"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5118
-#, no-c-format
-msgid ", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref linkend=\"RT_ST_ValueCount\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5124
-#, no-c-format
-msgid "ST_Envelope"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5125
-#, no-c-format
-msgid "Returns the polygon representation of the extent of the raster."
-msgstr ""
-
-#. Tag: funcprototype
-#: reference_raster.xml:5130
+#: reference_raster.xml:6224
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Envelope</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgid "The syntax of <varname>colormap</varname> is similar to that of the color-relief mode of GDAL <ulink url=\"http://www.gdal.org/gdaldem.html#gdaldem_color_relief\">gdaldem</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5140
+#: reference_raster.xml:6228
 #, no-c-format
-msgid "Returns the polygon representation of the extent of the raster in spatial coordinate units defined by srid. It is a float8 minimum bounding box represented as a polygon."
+msgid "Valid keywords for <varname>method</varname>:"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5141
-#, no-c-format
-msgid "The polygon is defined by the corner points of the bounding box ((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), (<varname>MINX</varname>, <varname>MINY</varname>))"
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:5152
+#: reference_raster.xml:6234
 #, no-c-format
-msgid ""
-      "SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
-      "FROM dummy_rast;\n"
-      "\n"
-      " rid |                                         envgeomwkt\n"
-      "-----+--------------------------------------------------------------------\n"
-      "   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
-      "   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
-      "                   3427928 5793244,3427927 5793244, 3427927 5793243))"
+msgid "<varname>INTERPOLATE</varname> to use linear interpolation to smoothly blend the colors between the given pixel values"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5158
-#, no-c-format
-msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5164
+#: reference_raster.xml:6239
 #, no-c-format
-msgid "ST_HillShade"
+msgid "<varname>EXACT</varname> to strictly match only those pixels values found in the colormap. Pixels whose value does not match a colormap entry will be set to 0 0 0 0 (RGBA)"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:5165
+#. Tag: para
+#: reference_raster.xml:6244
 #, no-c-format
-msgid "Returns the hypothetical illumination of an elevation raster band using provided azimuth, altitude, brightness and elevation scale inputs. Useful for visualizing terrain."
+msgid "<varname>NEAREST</varname> to use the colormap entry whose value is closest to the pixel value"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:5169
+#. Tag: para
+#: reference_raster.xml:6251
 #, no-c-format
-msgid "<funcdef>raster <function>ST_HillShade</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>band</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> <paramdef><type>double precision </type> <parameter>azimuth</parameter></paramdef> <paramdef><type>double precision </type> <parameter>altitude</parameter></paramdef> <paramdef choice=\"opt\"><type>double precis [...]
+msgid "A great reference for colormaps is <ulink url=\"http://www.colorbrewer2.org\">ColorBrewer</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5185
+#: reference_raster.xml:6256
 #, no-c-format
-msgid "Returns the hypothetical illumination of an elevation raster band using the azimuth, altitude, brightness, and elevation scale inputs. Utilizes map algebra and applies the hill shade equation to neighboring pixels."
+msgid "The resulting bands of new raster will have no NODATA value set. Use <xref linkend=\"RT_ST_SetBandNoDataValue\"/> to set a NODATA value if one is needed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5186
+#: reference_raster.xml:6266
 #, no-c-format
-msgid "The hill shade equation is: <programlisting>max_bright * ( (cos(zenith)*cos(slope)) + (sin(zenith)*sin(slope)*cos(azimuth - aspect)) )</programlisting>."
+msgid "This is a junk table to play with"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:5192 reference_raster.xml:5257 reference_raster.xml:5322
+#. Tag: programlisting
+#: reference_raster.xml:6268
 #, no-c-format
-msgid "Examples - coming soon"
+msgid ""
+      "-- setup test raster table --\n"
+      "DROP TABLE IF EXISTS funky_shapes;\n"
+      "CREATE TABLE funky_shapes(rast raster);\n"
+      "\n"
+      "INSERT INTO funky_shapes(rast)\n"
+      "WITH ref AS (\n"
+      "        SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_Union(rast)\n"
+      "FROM (\n"
+      "        SELECT \n"
+      "                ST_AsRaster(\n"
+      "                        ST_Rotate(\n"
+      "                                ST_Buffer(\n"
+      "                                        ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),\n"
+      "                                        i*2\n"
+      "                                ),\n"
+      "                                pi() * i * 0.125, ST_Point(50,50)\n"
+      "                        ),\n"
+      "                        ref.rast, '8BUI'::text, i * 5\n"
+      "                ) AS rast\n"
+      "        FROM ref\n"
+      "        CROSS JOIN generate_series(1, 10, 3) AS i\n"
+      ") AS shapes;"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5193 reference_raster.xml:5258 reference_raster.xml:5323
+#: reference_raster.xml:6270
 #, no-c-format
-msgid "coming soon"
+msgid ""
+      "SELECT\n"
+      "        ST_NumBands(rast) As n_orig,\n"
+      "        ST_NumBands(ST_ColorMap(rast,1, 'greyscale')) As ngrey,\n"
+      "        ST_NumBands(ST_ColorMap(rast,1, 'pseudocolor')) As npseudo,\n"
+      "        ST_NumBands(ST_ColorMap(rast,1, 'fire')) As nfire,\n"
+      "        ST_NumBands(ST_ColorMap(rast,1, 'bluered')) As nbluered,\n"
+      "        ST_NumBands(ST_ColorMap(rast,1, '\n"
+      "100% 255   0   0\n"
+      " 80% 160   0   0\n"
+      " 50% 130   0   0\n"
+      " 30%  30   0   0\n"
+      " 20%  60   0   0\n"
+      "  0%   0   0   0\n"
+      "  nv 255 255 255\n"
+      "        ')) As nred\n"
+      "FROM funky_shapes;"
 msgstr ""
 
-#. Tag: refname
-#: reference_raster.xml:5207
+#. Tag: screen
+#: reference_raster.xml:6272
 #, no-c-format
-msgid "ST_Aspect"
+msgid ""
+      "n_orig | ngrey | npseudo | nfire | nbluered | nred\n"
+      "--------+-------+---------+-------+----------+------\n"
+      "      1 |     1 |       4 |     4 |        4 |    3"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:5208
+#. Tag: title
+#: reference_raster.xml:6276
 #, no-c-format
-msgid "Returns the surface aspect of an elevation raster band. Useful for analyzing terrain."
+msgid "Examples: Compare different color map looks using ST_AsPNG"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:5212
+#. Tag: programlisting
+#: reference_raster.xml:6277
 #, no-c-format
-msgid "<funcdef>raster <function>ST_Aspect</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>band</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+msgid ""
+      "SELECT\n"
+      "        ST_AsPNG(rast) As orig_png,\n"
+      "        ST_AsPNG(ST_ColorMap(rast,1,'greyscale')) As grey_png,\n"
+      "        ST_AsPNG(ST_ColorMap(rast,1, 'pseudocolor')) As pseudo_png,\n"
+      "        ST_AsPNG(ST_ColorMap(rast,1, 'nfire')) As fire_png,\n"
+      "        ST_AsPNG(ST_ColorMap(rast,1, 'bluered')) As bluered_png,\n"
+      "        ST_AsPNG(ST_ColorMap(rast,1, '\n"
+      "100% 255   0   0\n"
+      " 80% 160   0   0\n"
+      " 50% 130   0   0\n"
+      " 30%  30   0   0\n"
+      " 20%  60   0   0\n"
+      "  0%   0   0   0\n"
+      "  nv 255 255 255\n"
+      "        ')) As red_png\n"
+      "FROM funky_shapes;"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5224
+#: reference_raster.xml:6291
 #, no-c-format
-msgid "Returns the surface aspect of an elevation raster band. Utilizes map algebra and applies the aspect equation to neighboring pixels."
+msgid "orig_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5226 reference_raster.xml:5291
-#, no-c-format
-msgid "Given the following representation of a 3x3 neighborhood of pixels:"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5232 reference_raster.xml:5297
-#, no-c-format
-msgid "<entry>A</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5233 reference_raster.xml:5298
-#, no-c-format
-msgid "<entry>B</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5234 reference_raster.xml:5299
-#, no-c-format
-msgid "<entry>C</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5237 reference_raster.xml:5302
-#, no-c-format
-msgid "<entry>D</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5238 reference_raster.xml:5303
-#, no-c-format
-msgid "<entry>E</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5239 reference_raster.xml:5304
-#, no-c-format
-msgid "<entry>F</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5242 reference_raster.xml:5307
-#, no-c-format
-msgid "<entry>G</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5243 reference_raster.xml:5308
-#, no-c-format
-msgid "<entry>H</entry>"
-msgstr ""
-
-#. Tag: entry
-#: reference_raster.xml:5244 reference_raster.xml:5309
+#: reference_raster.xml:6305
 #, no-c-format
-msgid "<entry>I</entry>"
+msgid "grey_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5250
-#, no-c-format
-msgid "The equation for the pixel aspect of cell E is: atan2((((G + 2H + I) - (A + 2B + C)) / 8), -(((C + 2F + I) - (A + 2D + G)) / 8))"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5272
+#: reference_raster.xml:6319
 #, no-c-format
-msgid "ST_Slope"
+msgid "pseudo_png"
 msgstr ""
 
-#. Tag: refpurpose
-#: reference_raster.xml:5273
+#. Tag: para
+#: reference_raster.xml:6335
 #, no-c-format
-msgid "Returns the surface slope of an elevation raster band. Useful for analyzing terrain."
+msgid "fire_png"
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:5277
+#. Tag: para
+#: reference_raster.xml:6349
 #, no-c-format
-msgid "<funcdef>raster <function>ST_Slope</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>band</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef>"
+msgid "bluered_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5289
+#: reference_raster.xml:6363
 #, no-c-format
-msgid "Returns the surface slope of an elevation raster band. Utilizes map algebra and applies the slope equation to neighboring pixels."
+msgid "red_png"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5315
+#: reference_raster.xml:6377
 #, no-c-format
-msgid "The equation for the pixel slope of cell E is: atan(sqrt(((c + 2f + i) - (a + 2d + g) / 8)^2 + (((g + 2h + i) - (a + 2b + c)) / 8) ^ 2))"
+msgid ", <xref linkend=\"RT_ST_AsRaster\"/> <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_NumBands\"/>, <xref linkend=\"RT_ST_Reclass\"/>, <xref linkend=\"RT_ST_SetBandNoDataValue\"/>, <xref linkend=\"RT_ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5337
+#: reference_raster.xml:6391
 #, no-c-format
 msgid "ST_Intersection"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5338
+#: reference_raster.xml:6392
 #, no-c-format
 msgid "<refpurpose>Returns a raster or a set of geometry-pixelvalue pairs representing the shared portion of two rasters or the geometrical intersection of a vectorization of the raster and a geometry.</refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5342
+#: reference_raster.xml:6396
 #, no-c-format
 msgid "<funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></funcdef> <paramdef><type>geometry </type> <parameter>geom</parameter></paramdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>setof geomval <function>ST_Intersection</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></pa [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5402
+#: reference_raster.xml:6456
 #, no-c-format
 msgid "<para>Returns a raster or a set of geometry-pixelvalue pairs representing the shared portion of two rasters or the geometrical intersection of a vectorization of the raster and a geometry.</para>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5404
+#: reference_raster.xml:6460
 #, no-c-format
 msgid "The first three variants, returning a setof geomval, works in vector space. The raster is first vectorized (using ST_DumpAsPolygon) into a set of geomval rows and those rows are then intersected with the geometry using the ST_Intersection(geometry, geometry) PostGIS function. Geometries intersecting only with a nodata value area of a raster returns an empty geometry. They are normally excluded from the results by the proper usage of ST_Intersect in the WHERE clause."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5406
+#: reference_raster.xml:6464
 #, no-c-format
 msgid "You can access the geometry and the value parts of the resulting set of geomval by surrounding them with parenthesis and adding '.geom' or '.val' at the end of the expression. e.g. (ST_Intersection(rast, geom)).geom"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5408
+#: reference_raster.xml:6468
 #, no-c-format
 msgid "The other variants, returning a raster, works in raster space. They are using the two rasters version of ST_MapAlgebraExpr to perform the intersection."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5410
+#: reference_raster.xml:6472
 #, no-c-format
 msgid "The extent of the resulting raster corresponds to the geometrical intersection of the two raster extents. The resulting raster includes 'BAND1', 'BAND2' or 'BOTH' bands, following what is passed as the <varname>returnband</varname> parameter. Nodata value areas present in any band results in nodata value areas in every bands of the result. In other words, any pixel intersecting with a nodata value pixel becomes a nodata value pixel in the result."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5412
+#: reference_raster.xml:6476
 #, no-c-format
 msgid "Rasters resulting from ST_Intersection must have a nodata value assigned for areas not intersecting. You can define or replace the nodata value for any resulting band by providing a <varname>nodataval[]</varname> array of one or two nodata values depending if you request 'BAND1', 'BAND2' or 'BOTH' bands. The first value in the array replace the nodata value in the first band and the second value replace the nodata value in the second band. If one input band do not have a nodata va [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5414
+#: reference_raster.xml:6480
 #, no-c-format
 msgid "In all variants, if no band number is specified band 1 is assumed."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5416
+#: reference_raster.xml:6485
 #, no-c-format
 msgid "To get more control on the resulting extent or on what to return when encountering a nodata value, use the two rasters version of <xref linkend=\"RT_ST_MapAlgebraExpr2\"/>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5418
+#: reference_raster.xml:6491
 #, no-c-format
 msgid "To compute the intersection of a raster band with a geometry in raster space, use <xref linkend=\"RT_ST_Clip\"/>. ST_Clip works on multiple bands rasters and does not return a band corresponding to the rasterized geometry."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5420
+#: reference_raster.xml:6497
 #, no-c-format
 msgid "ST_Intersection should be used in conjunction with ST_Intersects and an index on the raster column and/or the geometry column."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5422
+#: reference_raster.xml:6502
 #, no-c-format
 msgid "Enhanced: 2.0.0 - Intersection in the raster space was introduced. In earlier pre-2.0.0 versions, only intersection performed in vector space were supported."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5426
+#: reference_raster.xml:6508
 #, no-c-format
 msgid "Examples: Geometry, Raster -- resulting in geometry vals"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5428
+#: reference_raster.xml:6510
 #, no-c-format
 msgid ""
-      "SELECT foo.rid, foo.gid, \n"
-      "   ST_AsText((foo.geomval).geom) As geomwkt, (foo.geomval).val\n"
-      "FROM\n"
-      "        (\n"
-      "SELECT A.rid, g.gid , ST_Intersection(A.rast, g.geom) As geomval\n"
-      " FROM dummy_rast AS A CROSS JOIN \n"
-      "        (VALUES (1, ST_Point(3427928, 5793243.85) ) ,\n"
-      "                (2, ST_GeomFromText('LINESTRING(3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)') ),\n"
-      "                (3, ST_GeomFromText('LINESTRING(1 2, 3 4)') )\n"
-      "                ) As g(gid,geom)\n"
-      "WHERE A.rid =2 ) As foo;\n"
+      "SELECT\n"
+      "        foo.rid,\n"
+      "        foo.gid,\n"
+      "        ST_AsText((foo.geomval).geom) As geomwkt,\n"
+      "        (foo.geomval).val\n"
+      "FROM (\n"
+      "        SELECT\n"
+      "                A.rid,\n"
+      "                g.gid,\n"
+      "                ST_Intersection(A.rast, g.geom) As geomval\n"
+      "        FROM dummy_rast AS A\n"
+      "        CROSS JOIN (\n"
+      "                VALUES\n"
+      "                        (1, ST_Point(3427928, 5793243.85) ),\n"
+      "                        (2, ST_GeomFromText('LINESTRING(3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)')),\n"
+      "                        (3, ST_GeomFromText('LINESTRING(1 2, 3 4)'))\n"
+      "        ) As g(gid,geom)\n"
+      "        WHERE A.rid = 2\n"
+      ") As foo;\n"
       "\n"
       " rid | gid |      geomwkt                                                                                                | val\n"
       "-----+-----+---------------------------------------------------------------------------------------------\n"
@@ -6694,124 +7848,225 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5433
+#: reference_raster.xml:6514
 #, no-c-format
 msgid "Example: Raster, Geometry -- resulting is a raster"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5434
+#: reference_raster.xml:6515
 #, no-c-format
 msgid "Examples coming soon"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5441
+#: reference_raster.xml:6521
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Intersects\"/>, <xref linkend=\"RT_ST_MapAlgebraExpr2\"/>, <xref linkend=\"RT_ST_Clip\"/>, <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5447
+#: reference_raster.xml:6533 reference_raster.xml:6780
 #, no-c-format
 msgid "ST_MapAlgebra"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5448
+#: reference_raster.xml:6534
 #, no-c-format
-msgid "<refpurpose>Returns a one-band raster given one or more input rasters, band indexes and one user-specified callback function.</refpurpose>"
+msgid "Callback function version - Returns a one-band raster given one or more input rasters, band indexes and one user-specified callback function."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5454
+#: reference_raster.xml:6540
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> <paramdef><type>rastbandarg[] </type> <parameter>rastbandargset</parameter></paramdef> <paramdef><type>regprocedure </type> <parameter>callbackfunc</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=NULL</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</parameter></paramdef> <paramdef choice=\"opt\"><type>raster </ty [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5515
+#: reference_raster.xml:6601
+#, no-c-format
+msgid "Returns a one-band raster given one or more input rasters, band indexes and one user-specified callback function."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6607
 #, no-c-format
-msgid "<para>Returns a one-band raster given one or more input rasters, band indexes and one user-specified callback function.</para>"
+msgid "rast,rast1,rast2, rastbandargset"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5519
+#: reference_raster.xml:6609
 #, no-c-format
-msgid ""
-      "The <varname>tworastuserfunc</varname> parameter must be the name and signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example PL/pgSQL function example is: <programlisting>\n"
-      "CREATE OR REPLACE FUNCTION sample_callbackfunc(value double precision[][][], position integer[][], VARIADIC userargs text[])\n"
+msgid "Rasters on which the map algebra process is evaluated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6610
+#, no-c-format
+msgid "<varname>rastbandargset</varname> allows the use of a map algebra operation on many rasters and/or many bands. See example Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6615
+#, no-c-format
+msgid "nband, nband1, nband2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6617
+#, no-c-format
+msgid "Band numbers of the raster to be evaluated. nband can be an integer or integer[] denoting the bands. nband1 is band on rast1 and nband2 is band on rast2 for hte 2 raster/2band case."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6623
+#, no-c-format
+msgid "callbackfunc"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6625
+#, no-c-format
+msgid ""
+      "The <varname>callbackfunc</varname> parameter must be the name and signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example PL/pgSQL function example is: <programlisting>\n"
+      "CREATE OR REPLACE FUNCTION sample_callbackfunc(value double precision[][][], position integer[][], VARIADIC userargs text[])\n"
       "        RETURNS double precision\n"
       "        AS $$\n"
       "        BEGIN\n"
       "                RETURN 0;\n"
       "        END;\n"
       "        $$ LANGUAGE 'plpgsql' IMMUTABLE;\n"
-      "                                        </programlisting> The <varname>callbackfunc</varname> must have three arguments: a 3-dimension double precision array, a 2-dimension double precision array and a variadic 1-dimension text array. The first argument <varname>value</varname> is the set of values (as double precision) from all input rasters. The three dimensions (where indexes are 1-based) are: raster #, row y, column x. The second argument <varname>position</varname> is the set [...]
+      "                                                                        </programlisting> The <varname>callbackfunc</varname> must have three arguments: a 3-dimension double precision array, a 2-dimension integer array and a variadic 1-dimension text array. The first argument <varname>value</varname> is the set of values (as double precision) from all input rasters. The three dimensions (where indexes are 1-based) are: raster #, row y, column x. The second argument <varname>positi [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5526
+#: reference_raster.xml:6632
 #, no-c-format
 msgid ""
       "Passing a <type>regprocedure</type> argument to a SQL function requires the full function signature to be passed, then cast to a <type>regprocedure</type> type. To pass the above example PL/pgSQL function as an argument, the SQL for the argument is: <programlisting>\n"
       "'sample_callbackfunc(double precision[], integer[], text[])'::regprocedure\n"
-      "                                        </programlisting> Note that the argument contains the name of the function, the types of the function arguments, quotes around the name and argument types, and a cast to a <type>regprocedure</type>."
+      "                                                                        </programlisting> Note that the argument contains the name of the function, the types of the function arguments, quotes around the name and argument types, and a cast to a <type>regprocedure</type>."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6644 reference_raster.xml:6894 reference_raster.xml:7189 reference_raster.xml:7743
+#, no-c-format
+msgid "pixeltype"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5534
+#: reference_raster.xml:6646
 #, no-c-format
-msgid "The third argument to the <varname>callbackfunc</varname> is a <type>variadic text</type> array. All trailing text arguments are passed through to the specified <varname>callbackfunc</varname>, and are contained in the <varname>userargs</varname> argument."
+msgid "If <varname>pixeltype</varname> is passed in, the one band of the new raster will be of that pixeltype. If pixeltype is passed NULL or left out, the new raster band will have the same pixeltype as the specified band of the first raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the specified band of the appropriate raster (for extent types: SECOND, LAST). If in doubt, always specify <varname>pixeltype</varname>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5539 reference_raster.xml:5998 reference_raster.xml:6095
+#: reference_raster.xml:6649
 #, no-c-format
-msgid "For more information about the VARIADIC keyword, please refer to the PostgreSQL documentation and the \"SQL Functions with Variable Numbers of Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
+msgid "The resulting pixel type of the output raster must be one listed in <xref linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6656 reference_raster.xml:6902 reference_raster.xml:7198
+#, no-c-format
+msgid "extenttype"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5545
+#: reference_raster.xml:6658
 #, no-c-format
-msgid "The <type>text[]</type> argument to the <varname>callbackfunc</varname> is required, regardless of whether you choose to pass any arguments to the callback function for processing or not."
+msgid "Possible values are INTERSECTION (default), UNION, FIRST (default for one raster variants), SECOND, LAST, CUSTOM."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6665
+#, no-c-format
+msgid "customextent"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5550
+#: reference_raster.xml:6667
 #, no-c-format
-msgid "If <varname>pixeltype</varname> is passed in, the one band of the new raster will be of that pixeltype. If pixeltype is passed NULL or left out, the new raster band will have the same pixeltype as the specified band of the first raster (for extent types: INTERSECTION, UNION, FIRST, CUSTOM) or the specified band of the appropriate raster (for extent types: SECOND, LAST). If in doubt, always specify <varname>pixeltype</varname>."
+msgid "If <varname>extentype</varname> is CUSTOM, a raster must be provided for <varname>customextent</varname>. See example 4 of Variant 1."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6674
+#, no-c-format
+msgid "distancex"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6676
+#, no-c-format
+msgid "The distance in pixels from the reference cell. So width of resulting matrix would be <code>2*distancex + 1</code>.If not specified only the reference cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6683
+#, no-c-format
+msgid "distancey"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6685
+#, no-c-format
+msgid "The distance in pixels from reference cell in y direction. Height of resulting matrix would be <code>2*distancey + 1</code> .If not specified only the reference cell is considered (neighborhood of 0)."
+msgstr ""
+
+#. Tag: term
+#: reference_raster.xml:6692
+#, no-c-format
+msgid "userargs"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6694
+#, no-c-format
+msgid "The third argument to the <varname>callbackfunc</varname> is a <type>variadic text</type> array. All trailing text arguments are passed through to the specified <varname>callbackfunc</varname>, and are contained in the <varname>userargs</varname> argument."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6702 reference_raster.xml:7518 reference_raster.xml:7637
+#, no-c-format
+msgid "For more information about the VARIADIC keyword, please refer to the PostgreSQL documentation and the \"SQL Functions with Variable Numbers of Arguments\" section of <ulink url=\"http://www.postgresql.org/docs/current/static/xfunc-sql.html\">Query Language (SQL) Functions</ulink>."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5554
+#: reference_raster.xml:6708
 #, no-c-format
-msgid "Possible values for <varname>extenttype</varname> are: INTERSECTION (default), UNION, FIRST (default for one raster variants), SECOND, LAST, CUSTOM. If <varname>extentype</varname> is CUSTOM, a raster must be provided for <varname>customextent</varname>. See example 4 of Variant 1."
+msgid "The <type>text[]</type> argument to the <varname>callbackfunc</varname> is required, regardless of whether you choose to pass any arguments to the callback function for processing or not."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5558
+#: reference_raster.xml:6713
 #, no-c-format
 msgid "Variant 1 accepts an array of <varname>rastbandarg</varname> allowing the use of a map algebra operation on many rasters and/or many bands. See example Variant 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5562
+#: reference_raster.xml:6717
 #, no-c-format
 msgid "Variants 2 and 3 operate upon one or more bands of one raster. See example Variant 2 and 3."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5566
+#: reference_raster.xml:6721
 #, no-c-format
 msgid "Variant 4 operate upon two rasters with one band per raster. See example Variant 4."
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6732 reference_raster.xml:6754
+#, no-c-format
+msgid "One raster, one band"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5585
+#: reference_raster.xml:6733
 #, no-c-format
 msgid ""
-      "-- one raster, one band\n"
       "WITH foo AS (\n"
       "        SELECT 1 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0) AS rast\n"
       ")\n"
@@ -6823,11 +8078,16 @@ msgid ""
       "FROM foo"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6735 reference_raster.xml:6751
+#, no-c-format
+msgid "One raster, several bands"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5587
+#: reference_raster.xml:6736
 #, no-c-format
 msgid ""
-      "-- one raster, several bands\n"
       "WITH foo AS (\n"
       "        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
       ")\n"
@@ -6839,11 +8099,16 @@ msgid ""
       "FROM foo"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6738
+#, no-c-format
+msgid "Several rasters, several bands"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5589
+#: reference_raster.xml:6739
 #, no-c-format
 msgid ""
-      "-- several rasters, several bands\n"
       "WITH foo AS (\n"
       "        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION ALL\n"
       "        SELECT 2 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, 0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
@@ -6859,11 +8124,16 @@ msgid ""
       "        AND t2.rid = 2"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6741
+#, no-c-format
+msgid "Complete example of tiles of a coverage with neighborhood. This query only works with PostgreSQL 9.1 or higher."
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5591
+#: reference_raster.xml:6742
 #, no-c-format
 msgid ""
-      "-- complete example of tiles of a coverage with neighborhood\n"
       "WITH foo AS (\n"
       "        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
       "        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), 1, '16BUI', 2, 0) AS rast UNION ALL\n"
@@ -6886,25 +8156,79 @@ msgid ""
       "                'CUSTOM', t1.rast,\n"
       "                1, 1\n"
       "        ) AS rast\n"
-      "FROM raster_nmapalgebra_in t1\n"
-      "CROSS JOIN raster_nmapalgebra_in t2\n"
+      "FROM foo t1\n"
+      "CROSS JOIN foo t2\n"
       "WHERE t1.rid = 4\n"
       "        AND t2.rid BETWEEN 0 AND 8\n"
       "        AND ST_Intersects(t1.rast, t2.rast)\n"
       "GROUP BY t1.rid, t1.rast"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6744
+#, no-c-format
+msgid "Example like the prior one for tiles of a coverage with neighborhood but works with PostgreSQL 9.0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6745
+#, no-c-format
+msgid ""
+      "WITH src AS (\n"
+      "        SELECT 0 AS rid, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0) AS rast UNION ALL\n"
+      "        SELECT 1, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, 0, 1, -1, 0, 0, 0), 1, '16BUI', 2, 0) AS rast UNION ALL\n"
+      "        SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, 0, 1, -1, 0, 0, 0), 1, '16BUI', 3, 0) AS rast UNION ALL\n"
+      "\n"
+      "        SELECT 3, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -2, 1, -1, 0, 0, 0), 1, '16BUI', 10, 0) AS rast UNION ALL\n"
+      "        SELECT 4, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -2, 1, -1, 0, 0, 0), 1, '16BUI', 20, 0) AS rast UNION ALL\n"
+      "        SELECT 5, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -2, 1, -1, 0, 0, 0), 1, '16BUI', 30, 0) AS rast UNION ALL\n"
+      "\n"
+      "        SELECT 6, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, -4, 1, -1, 0, 0, 0), 1, '16BUI', 100, 0) AS rast UNION ALL\n"
+      "        SELECT 7, ST_AddBand(ST_MakeEmptyRaster(2, 2, 2, -4, 1, -1, 0, 0, 0), 1, '16BUI', 200, 0) AS rast UNION ALL\n"
+      "        SELECT 8, ST_AddBand(ST_MakeEmptyRaster(2, 2, 4, -4, 1, -1, 0, 0, 0), 1, '16BUI', 300, 0) AS rast\n"
+      ")\n"
+      "WITH foo AS (\n"
+      "        SELECT\n"
+      "                t1.rid,\n"
+      "                ST_Union(t2.rast) AS rast\n"
+      "        FROM src t1\n"
+      "        JOIN src t2\n"
+      "                ON ST_Intersects(t1.rast, t2.rast)\n"
+      "                AND t2.rid BETWEEN 0 AND 8\n"
+      "        WHERE t1.rid = 4\n"
+      "        GROUP BY t1.rid\n"
+      "), bar AS (\n"
+      "        SELECT\n"
+      "                t1.rid,\n"
+      "                ST_MapAlgebra(\n"
+      "                        ARRAY[ROW(t2.rast, 1)]::rastbandarg[],\n"
+      "                        'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,\n"
+      "                        '32BUI',\n"
+      "                        'CUSTOM', t1.rast,\n"
+      "                        1, 1\n"
+      "                ) AS rast\n"
+      "        FROM src t1\n"
+      "        JOIN foo t2\n"
+      "                ON t1.rid = t2.rid \n"
+      ")\n"
+      "SELECT\n"
+      "        rid,\n"
+      "        (ST_Metadata(rast)),\n"
+      "        (ST_BandMetadata(rast, 1)),\n"
+      "        ST_Value(rast, 1, 1, 1)\n"
+      "FROM bar;"
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:5596
+#: reference_raster.xml:6749
 #, no-c-format
 msgid "Examples: Variants 2 and 3"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5598
+#: reference_raster.xml:6752
 #, no-c-format
 msgid ""
-      "-- one raster, several bands\n"
       "WITH foo AS (\n"
       "        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
       ")\n"
@@ -6917,10 +8241,9 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5600
+#: reference_raster.xml:6755
 #, no-c-format
 msgid ""
-      "-- one raster, one band\n"
       "WITH foo AS (\n"
       "        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast\n"
       ")\n"
@@ -6933,16 +8256,21 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5605
+#: reference_raster.xml:6759
 #, no-c-format
 msgid "Examples: Variant 4"
 msgstr ""
 
+#. Tag: para
+#: reference_raster.xml:6761
+#, no-c-format
+msgid "Two rasters, two bands"
+msgstr ""
+
 #. Tag: programlisting
-#: reference_raster.xml:5607
+#: reference_raster.xml:6762
 #, no-c-format
 msgid ""
-      "-- two rasters, two bands\n"
       "WITH foo AS (\n"
       "        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION ALL\n"
       "        SELECT 2 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, 0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
@@ -6960,300 +8288,475 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5614
-#, no-c-format
-msgid ", <xref linkend=\"RT_ST_Union\"/>"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:5625 reference_raster.xml:5712
+#: reference_raster.xml:6769
 #, no-c-format
-msgid "ST_MapAlgebraExpr"
+msgid ", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra_expr\"/>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5626
+#: reference_raster.xml:6781
 #, no-c-format
-msgid "1 raster band version: Creates a new one band raster formed by applying a valid PostgreSQL algebraic operation on the input raster band and of pixeltype provided. Band 1 is assumed if no band is specified."
+msgid "<refpurpose>Expression version - Returns a one-band raster given one or two input rasters, band indexes and one or more user-specified SQL expressions.</refpurpose>"
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5630
+#: reference_raster.xml:6787
 #, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>band</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> <paramdef><type>text </type> <parameter>expression</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>nodataval=NULL</parameter></paramdef> </funcproto [...]
+msgid "<funcprototype> <funcdef>raster <function>ST_MapAlgebra</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> <paramdef><type>text </type> <parameter>expression</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>nodataval=NULL</parameter></paramdef> </funcprototyp [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5653
+#: reference_raster.xml:6838
 #, no-c-format
-msgid "Creates a new one band raster formed by applying a valid PostgreSQL algebraic operation defined by the <varname>expression</varname> on the input raster (<varname>rast</varname>). If no <varname>band</varname> is specified band 1 is assumed. The new raster will have the same georeference, width, and height as the original raster but will only have one band."
+msgid "<para>Expression version - Returns a one-band raster given one or two input rasters, band indexes and one or more user-specified SQL expressions.</para>"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:5655 reference_raster.xml:5988
+#. Tag: title
+#: reference_raster.xml:6846
 #, no-c-format
-msgid "If <varname>pixeltype</varname> is passed in, then the new raster will have a band of that pixeltype. If pixeltype is passed NULL, then the new raster band will have the same pixeltype as the input <varname>rast</varname> band."
+msgid "Description: Variants 1 and 2 (one raster)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5657
+#: reference_raster.xml:6848
 #, no-c-format
-msgid "In the expression you can use the term <varname>[rast]</varname> to refer to the pixel value of the original band, <varname>[rast.x]</varname> to refer to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to the 1-based pixel row index."
+msgid "Creates a new one band raster formed by applying a valid PostgreSQL algebraic operation defined by the <varname>expression</varname> on the input raster (<varname>rast</varname>). If <varname>nband</varname> is not provided, band 1 is assumed. The new raster will have the same georeference, width, and height as the original raster but will only have one band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5669 reference_raster.xml:5806 reference_raster.xml:6008
+#: reference_raster.xml:6852 reference_raster.xml:7054 reference_raster.xml:7502
 #, no-c-format
-msgid "Create a new 1 band raster from our original that is a function of modulo 2 of the original raster band."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:5670
-#, no-c-format
-msgid ""
-      "ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
-      "UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,NULL,'mod([rast],2)') WHERE rid = 2;\n"
-      "\n"
-      "SELECT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast, 1, i, j) As mapval\n"
-      "FROM dummy_rast CROSS JOIN generate_series(1, 3) AS i CROSS JOIN generate_series(1,3) AS j\n"
-      "WHERE rid = 2;\n"
-      "\n"
-      " origval | mapval\n"
-      "---------+--------\n"
-      "     253 |      1\n"
-      "     254 |      0\n"
-      "     253 |      1\n"
-      "     253 |      1\n"
-      "     254 |      0\n"
-      "     254 |      0\n"
-      "     250 |      0\n"
-      "     254 |      0\n"
-      "     254 |      0"
+msgid "If <varname>pixeltype</varname> is passed in, then the new raster will have a band of that pixeltype. If pixeltype is passed NULL, then the new raster band will have the same pixeltype as the input <varname>rast</varname> band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5671
-#, no-c-format
-msgid "Create a new 1 band raster of pixel-type 2BUI from our original that is reclassified and set the nodata value to be 0."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:5672
+#: reference_raster.xml:6857
 #, no-c-format
-msgid ""
-      "ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
-      "UPDATE dummy_rast SET map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN [rast] BETWEEN 100 and 250 THEN 1 \n"
-      "WHEN [rast] = 252 THEN 2 \n"
-      "WHEN [rast] BETWEEN 253 and 254 THEN 3 ELSE 0 END', '0') WHERE rid = 2;\n"
-      "\n"
-      "SELECT DISTINCT ST_Value(rast,1,i,j) As origval, ST_Value(map_rast2, 1, i, j) As mapval\n"
-      "FROM dummy_rast CROSS JOIN generate_series(1, 5) AS i CROSS JOIN generate_series(1,5) AS j\n"
-      "WHERE rid = 2;\n"
-      "\n"
-      " origval | mapval\n"
-      "---------+--------\n"
-      "     249 |      1\n"
-      "     250 |      1\n"
-      "     251 |\n"
-      "     252 |      2\n"
-      "     253 |      3\n"
-      "     254 |      3\n"
-      "     \n"
-      "SELECT ST_BandPixelType(map_rast2) As b1pixtyp\n"
-      "FROM dummy_rast WHERE rid = 2;\n"
-      "\n"
-      " b1pixtyp\n"
-      "----------\n"
-      " 2BUI"
+msgid "Keywords permitted for <varname>expression</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5682 reference_raster.xml:6021
+#: reference_raster.xml:6860
 #, no-c-format
-msgid "original (column rast-view)"
+msgid "<varname>[rast]</varname> - Pixel value of the pixel of interest"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5691 reference_raster.xml:6029
+#: reference_raster.xml:6863
 #, no-c-format
-msgid "rast_view_ma"
+msgid "<varname>[rast.val]</varname> - Pixel value of the pixel of interest"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5699 reference_raster.xml:6037
-#, no-c-format
-msgid "Create a new 3 band raster same pixel type from our original 3 band raster with first band altered by map algebra and remaining 2 bands unaltered."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:5701
+#: reference_raster.xml:6866
 #, no-c-format
-msgid ""
-      "SELECT ST_AddBand(\n"
-      "ST_AddBand(\n"
-      "        ST_AddBand(\n"
-      "                ST_MakeEmptyRaster(rast_view),\n"
-      "                        ST_MapAlgebraExpr(rast_view,1,NULL,'tan([rast])*[rast]')\n"
-      "                        ), \n"
-      "                ST_Band(rast_view,2)\n"
-      "                        ),\n"
-      "        ST_Band(rast_view, 3) As rast_view_ma\n"
-      ")\n"
-      "FROM wind\n"
-      "WHERE rid=167;"
+msgid "<varname>[rast.x]</varname> - 1-based pixel column of the pixel of interest"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5706
-#, no-c-format
-msgid ", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_ST_Value\"/>"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:5713
+#: reference_raster.xml:6869
 #, no-c-format
-msgid "2 raster band version: Creates a new one band raster formed by applying a valid PostgreSQL algebraic operation on the two input raster bands and of pixeltype provided. band 1 of each raster is assumed if no band numbers are specified. The resulting raster will be aligned (scale, skew and pixel corners) on the grid defined by the first raster and have its extent defined by the \"extenttype\" parameter. Values for \"extenttype\" can be: INTERSECTION, UNION, FIRST, SECOND."
+msgid "<varname>[rast.y]</varname> - 1-based pixel row of the pixel of interest"
 msgstr ""
 
-#. Tag: funcsynopsis
-#: reference_raster.xml:5717
+#. Tag: title
+#: reference_raster.xml:6878
 #, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> <paramdef><type>text </type> <parameter>expression</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</p [...]
+msgid "Description: Variants 3 and 4 (two raster)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5749
+#: reference_raster.xml:6880 reference_raster.xml:7174
 #, no-c-format
 msgid "Creates a new one band raster formed by applying a valid PostgreSQL algebraic operation to the two bands defined by the <varname>expression</varname> on the two input raster bands <varname>rast1</varname>, (<varname>rast2</varname>). If no <varname>band1</varname>, <varname>band2</varname> is specified band 1 is assumed. The resulting raster will be aligned (scale, skew and pixel corners) on the grid defined by the first raster. The resulting raster will have the extent defined by [...]
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5754
+#: reference_raster.xml:6886 reference_raster.xml:7180
 #, no-c-format
 msgid "expression"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5755
+#: reference_raster.xml:6888 reference_raster.xml:7182
 #, no-c-format
 msgid "A PostgreSQL algebraic expression involving the two rasters and PostgreSQL defined functions/operators that will define the pixel value when pixels intersect. e.g. (([rast1] + [rast2])/2.0)::integer"
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:5758 reference_raster.xml:6190
-#, no-c-format
-msgid "pixeltype"
-msgstr ""
-
 #. Tag: para
-#: reference_raster.xml:5759
+#: reference_raster.xml:6896 reference_raster.xml:7191
 #, no-c-format
 msgid "The resulting pixel type of the output raster. Must be one listed in <xref linkend=\"RT_ST_BandPixelType\"/>, left out or set to NULL. If not passed in or set to NULL, will default to the pixeltype of the first raster."
 msgstr ""
 
-#. Tag: term
-#: reference_raster.xml:5762
-#, no-c-format
-msgid "extenttype"
-msgstr ""
-
 #. Tag: para
-#: reference_raster.xml:5763
+#: reference_raster.xml:6904 reference_raster.xml:7200
 #, no-c-format
 msgid "Controls the extent of resulting raster"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5766
+#: reference_raster.xml:6910 reference_raster.xml:7203
 #, no-c-format
 msgid "<varname>INTERSECTION</varname> - The extent of the new raster is the intersection of the two rasters. This is the default."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5769
+#: reference_raster.xml:6915 reference_raster.xml:7208
 #, no-c-format
 msgid "<varname>UNION</varname> - The extent of the new raster is the union of the two rasters."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5772
+#: reference_raster.xml:6920 reference_raster.xml:7213
 #, no-c-format
 msgid "<varname>FIRST</varname> - The extent of the new raster is the same as the one of the first raster."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5775
+#: reference_raster.xml:6925 reference_raster.xml:7218
 #, no-c-format
 msgid "<varname>SECOND</varname> - The extent of the new raster is the same as the one of the second raster."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5781
+#: reference_raster.xml:6933 reference_raster.xml:7227
 #, no-c-format
 msgid "nodata1expr"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5782
+#: reference_raster.xml:6935 reference_raster.xml:7229
 #, no-c-format
 msgid "An algebraic expression involving only <varname>rast2</varname> or a constant that defines what to return when pixels of <varname>rast1</varname> are nodata values and spatially corresponding rast2 pixels have values."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5785
+#: reference_raster.xml:6941 reference_raster.xml:7236
 #, no-c-format
 msgid "nodata2expr"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5786
+#: reference_raster.xml:6943 reference_raster.xml:7238
 #, no-c-format
 msgid "An algebraic expression involving only <varname>rast1</varname> or a constant that defines what to return when pixels of <varname>rast2</varname> are nodata values and spatially corresponding rast1 pixels have values."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:5789
+#: reference_raster.xml:6949 reference_raster.xml:7245
 #, no-c-format
 msgid "nodatanodataval"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5790
+#: reference_raster.xml:6951 reference_raster.xml:7247
 #, no-c-format
 msgid "A numeric constant to return when spatially corresponding rast1 and rast2 pixels are both nodata values."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5795
+#: reference_raster.xml:6959
 #, no-c-format
-msgid "If <varname>pixeltype</varname> is passed in, then the new raster will have a band of that pixeltype. If pixeltype is passed NULL or no pixel type specified, then the new raster band will have the same pixeltype as the input <varname>rast1</varname> band."
+msgid "Keywords permitted in <varname>expression</varname>, <varname>nodata1expr</varname> and <varname>nodata2expr</varname>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5796
+#: reference_raster.xml:6962
 #, no-c-format
-msgid "Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> to refer to the pixel value of the original raster bands and <varname>[rast1.x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row positions of the pixels."
+msgid "<varname>[rast1]</varname> - Pixel value of the pixel of interest from <varname>rast1</varname>"
 msgstr ""
 
-#. Tag: title
-#: reference_raster.xml:5804
+#. Tag: para
+#: reference_raster.xml:6965
 #, no-c-format
-msgid "Example: 2 Band Intersection and Union"
+msgid "<varname>[rast1.val]</varname> - Pixel value of the pixel of interest from <varname>rast1</varname>"
 msgstr ""
 
-#. Tag: programlisting
-#: reference_raster.xml:5807
+#. Tag: para
+#: reference_raster.xml:6968
 #, no-c-format
-msgid ""
-      "--Create a cool set of rasters --\n"
-      "DROP TABLE IF EXISTS fun_shapes; \n"
-      "CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);\n"
-      "\n"
-      "-- Insert some cool shapes around Boston in Massachusetts state plane meters --\n"
-      "INSERT INTO fun_shapes(fun_name, rast)\n"
-      "VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200,200,'8BUI',0,0));\n"
-      "\n"
-      "INSERT INTO fun_shapes(fun_name,rast)\n"
+msgid "<varname>[rast1.x]</varname> - 1-based pixel column of the pixel of interest from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6971
+#, no-c-format
+msgid "<varname>[rast1.y]</varname> - 1-based pixel row of the pixel of interest from <varname>rast1</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6974
+#, no-c-format
+msgid "<varname>[rast2]</varname> - Pixel value of the pixel of interest from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6977
+#, no-c-format
+msgid "<varname>[rast2.val]</varname> - Pixel value of the pixel of interest from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6980
+#, no-c-format
+msgid "<varname>[rast2.x]</varname> - 1-based pixel column of the pixel of interest from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:6983
+#, no-c-format
+msgid "<varname>[rast2.y]</varname> - 1-based pixel row of the pixel of interest from <varname>rast2</varname>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6991
+#, no-c-format
+msgid "Examples: Variants 1 and 2"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6993
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 1, 1, 0, 0, 0), '32BF', 1, -1) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_MapAlgebra(rast, 1, NULL, 'ceil([rast]*[rast.x]/[rast.y]+[rast.val])')\n"
+      "FROM foo"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:6997
+#, no-c-format
+msgid "Examples: Variant 3 and 4"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:6999
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT 1 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0), 2, '8BUI', 10, 0), 3, '32BUI', 100, 0) AS rast UNION ALL\n"
+      "        SELECT 2 AS rid, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 1, 1, -1, 0, 0, 0), 1, '16BUI', 2, 0), 2, '8BUI', 20, 0), 3, '32BUI', 300, 0) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_MapAlgebra(\n"
+      "                t1.rast, 2,\n"
+      "                t2.rast, 1,\n"
+      "                '([rast2] + [rast1.val]) / 2'\n"
+      "        ) AS rast\n"
+      "FROM foo t1\n"
+      "CROSS JOIN foo t2\n"
+      "WHERE t1.rid = 1\n"
+      "        AND t2.rid = 2"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7005
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"RT_ST_MapAlgebra\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:7015 reference_raster.xml:7129
+#, no-c-format
+msgid "ST_MapAlgebraExpr"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7016
+#, no-c-format
+msgid "1 raster band version: Creates a new one band raster formed by applying a valid PostgreSQL algebraic operation on the input raster band and of pixeltype provided. Band 1 is assumed if no band is specified."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7020
+#, no-c-format
+msgid "<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>band</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> <paramdef><type>text </type> <parameter>expression</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>nodataval=NULL</parameter></paramdef> </funcproto [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7045 reference_raster.xml:7169
+#, no-c-format
+msgid "is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra_expr\"/> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7050
+#, no-c-format
+msgid "Creates a new one band raster formed by applying a valid PostgreSQL algebraic operation defined by the <varname>expression</varname> on the input raster (<varname>rast</varname>). If no <varname>band</varname> is specified band 1 is assumed. The new raster will have the same georeference, width, and height as the original raster but will only have one band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7058
+#, no-c-format
+msgid "In the expression you can use the term <varname>[rast]</varname> to refer to the pixel value of the original band, <varname>[rast.x]</varname> to refer to the 1-based pixel column index, <varname>[rast.y]</varname> to refer to the 1-based pixel row index."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7068 reference_raster.xml:7267 reference_raster.xml:7531
+#, no-c-format
+msgid "Create a new 1 band raster from our original that is a function of modulo 2 of the original raster band."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7069
+#, no-c-format
+msgid ""
+      "ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
+      "UPDATE dummy_rast SET map_rast = ST_MapAlgebraExpr(rast,NULL,'mod([rast],2)') WHERE rid = 2;\n"
+      "\n"
+      "SELECT\n"
+      "        ST_Value(rast,1,i,j) As origval,\n"
+      "        ST_Value(map_rast, 1, i, j) As mapval\n"
+      "FROM dummy_rast\n"
+      "CROSS JOIN generate_series(1, 3) AS i\n"
+      "CROSS JOIN generate_series(1,3) AS j\n"
+      "WHERE rid = 2;\n"
+      "\n"
+      " origval | mapval\n"
+      "---------+--------\n"
+      "     253 |      1\n"
+      "     254 |      0\n"
+      "     253 |      1\n"
+      "     253 |      1\n"
+      "     254 |      0\n"
+      "     254 |      0\n"
+      "     250 |      0\n"
+      "     254 |      0\n"
+      "     254 |      0"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7071
+#, no-c-format
+msgid "Create a new 1 band raster of pixel-type 2BUI from our original that is reclassified and set the nodata value to be 0."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7072
+#, no-c-format
+msgid ""
+      "ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
+      "UPDATE dummy_rast SET\n"
+      "        map_rast2 = ST_MapAlgebraExpr(rast,'2BUI','CASE WHEN [rast] BETWEEN 100 and 250 THEN 1 WHEN [rast] = 252 THEN 2 WHEN [rast] BETWEEN 253 and 254 THEN 3 ELSE 0 END', '0')\n"
+      "WHERE rid = 2;\n"
+      "\n"
+      "SELECT DISTINCT\n"
+      "        ST_Value(rast,1,i,j) As origval,\n"
+      "        ST_Value(map_rast2, 1, i, j) As mapval\n"
+      "FROM dummy_rast\n"
+      "CROSS JOIN generate_series(1, 5) AS i\n"
+      "CROSS JOIN generate_series(1,5) AS j\n"
+      "WHERE rid = 2;\n"
+      "\n"
+      " origval | mapval\n"
+      "---------+--------\n"
+      "     249 |      1\n"
+      "     250 |      1\n"
+      "     251 |\n"
+      "     252 |      2\n"
+      "     253 |      3\n"
+      "     254 |      3\n"
+      "     \n"
+      "SELECT\n"
+      "        ST_BandPixelType(map_rast2) As b1pixtyp\n"
+      "FROM dummy_rast\n"
+      "WHERE rid = 2;\n"
+      "\n"
+      " b1pixtyp\n"
+      "----------\n"
+      " 2BUI"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7086 reference_raster.xml:7546
+#, no-c-format
+msgid "original (column rast-view)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7100 reference_raster.xml:7554
+#, no-c-format
+msgid "rast_view_ma"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7111 reference_raster.xml:7562
+#, no-c-format
+msgid "Create a new 3 band raster same pixel type from our original 3 band raster with first band altered by map algebra and remaining 2 bands unaltered."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7112
+#, no-c-format
+msgid ""
+      "SELECT\n"
+      "        ST_AddBand(\n"
+      "                ST_AddBand(\n"
+      "                        ST_AddBand(\n"
+      "                                ST_MakeEmptyRaster(rast_view),\n"
+      "                                ST_MapAlgebraExpr(rast_view,1,NULL,'tan([rast])*[rast]')\n"
+      "                        ), \n"
+      "                        ST_Band(rast_view,2)\n"
+      "                ),\n"
+      "                ST_Band(rast_view, 3) As rast_view_ma\n"
+      "        )\n"
+      "FROM wind\n"
+      "WHERE rid=167;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7117
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_ST_Value\"/>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:7130
+#, no-c-format
+msgid "2 raster band version: Creates a new one band raster formed by applying a valid PostgreSQL algebraic operation on the two input raster bands and of pixeltype provided. band 1 of each raster is assumed if no band numbers are specified. The resulting raster will be aligned (scale, skew and pixel corners) on the grid defined by the first raster and have its extent defined by the \"extenttype\" parameter. Values for \"extenttype\" can be: INTERSECTION, UNION, FIRST, SECOND."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:7136
+#, no-c-format
+msgid "<funcprototype> <funcdef>raster <function>ST_MapAlgebraExpr</function></funcdef> <paramdef><type>raster </type> <parameter>rast1</parameter></paramdef> <paramdef><type>raster </type> <parameter>rast2</parameter></paramdef> <paramdef><type>text </type> <parameter>expression</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=same_as_rast1_band</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>extenttype=INTERSECTION</p [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7254
+#, no-c-format
+msgid "If <varname>pixeltype</varname> is passed in, then the new raster will have a band of that pixeltype. If pixeltype is passed NULL or no pixel type specified, then the new raster band will have the same pixeltype as the input <varname>rast1</varname> band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7257
+#, no-c-format
+msgid "Use the term <varname>[rast1.val]</varname> <varname>[rast2.val]</varname> to refer to the pixel value of the original raster bands and <varname>[rast1.x]</varname>, <varname>[rast1.y]</varname> etc. to refer to the column / row positions of the pixels."
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:7265
+#, no-c-format
+msgid "Example: 2 Band Intersection and Union"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:7268
+#, no-c-format
+msgid ""
+      "--Create a cool set of rasters --\n"
+      "DROP TABLE IF EXISTS fun_shapes; \n"
+      "CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);\n"
+      "\n"
+      "-- Insert some cool shapes around Boston in Massachusetts state plane meters --\n"
+      "INSERT INTO fun_shapes(fun_name, rast)\n"
+      "VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200,200,'8BUI',0,0));\n"
+      "\n"
+      "INSERT INTO fun_shapes(fun_name,rast)\n"
       "WITH ref(rast) AS (SELECT rast FROM fun_shapes WHERE fun_name = 'ref' ) \n"
       "SELECT 'area' AS fun_name, ST_AsRaster(ST_Buffer(ST_SetSRID(ST_Point(236229, 900930),26986), 1000), \n"
       "                        ref.rast,'8BUI', 10, 0) As rast\n"
@@ -7281,25 +8784,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5817
+#: reference_raster.xml:7282
 #, no-c-format
 msgid "mapalgebra intersection"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5826
+#: reference_raster.xml:7296
 #, no-c-format
 msgid "map algebra union"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5836 reference_raster.xml:6103
+#: reference_raster.xml:7309 reference_raster.xml:7648
 #, no-c-format
 msgid "Example: Overlaying rasters on a canvas as separate bands"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5837
+#: reference_raster.xml:7310
 #, no-c-format
 msgid ""
       "-- we use ST_AsPNG to render the image so all single band ones look grey --\n"
@@ -7333,37 +8836,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5848
+#: reference_raster.xml:7323
 #, no-c-format
 msgid "rast1"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5857
+#: reference_raster.xml:7336
 #, no-c-format
 msgid "rast2"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5868
+#: reference_raster.xml:7352
 #, no-c-format
 msgid "rast3"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5878
+#: reference_raster.xml:7366
 #, no-c-format
 msgid "final_rast"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:5888
+#: reference_raster.xml:7379
 #, no-c-format
 msgid "Example: Overlay 2 meter boundary of select parcels over an aerial imagery"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:5889
+#: reference_raster.xml:7381
 #, no-c-format
 msgid ""
       "-- Create new 3 band raster composed of first 2 clipped bands, and overlay of 3rd band with our geometry\n"
@@ -7394,43 +8897,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5900
+#: reference_raster.xml:7395
 #, no-c-format
 msgid "The blue lines are the boundaries of select parcels"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5911
+#: reference_raster.xml:7409
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_ST_Value\"/> , <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"ST_Union\"/>"
+msgid ", <xref linkend=\"RT_ST_AddBand\"/>, <xref linkend=\"RT_ST_AsPNG\"/>, <xref linkend=\"RT_ST_AsRaster\"/>, <xref linkend=\"RT_ST_MapAlgebraFct\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Union\"/>, <xref linkend=\"ST_Union\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:5918 reference_raster.xml:6049
+#: reference_raster.xml:7426 reference_raster.xml:7579
 #, no-c-format
 msgid "ST_MapAlgebraFct"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:5919
+#: reference_raster.xml:7427
 #, no-c-format
 msgid "1 band version - Creates a new one band raster formed by applying a valid PostgreSQL function on the input raster band and of pixeltype prodived. Band 1 is assumed if no band is specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:5923
+#: reference_raster.xml:7431
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</type> <parameter>rast</parameter></paramdef> <paramdef><type>regprocedure</type> <parameter>onerasteruserfunc</parameter></para [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5986
+#: reference_raster.xml:7495 reference_raster.xml:7613 reference_raster.xml:7726
+#, no-c-format
+msgid "is deprecated as of 2.1.0. Use <xref linkend=\"RT_ST_MapAlgebra\"/> instead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7500
 #, no-c-format
 msgid "Creates a new one band raster formed by applying a valid PostgreSQL function specified by the <varname>onerasteruserfunc</varname> on the input raster (<varname>rast</varname>). If no <varname>band</varname> is specified, band 1 is assumed. The new raster will have the same georeference, width, and height as the original raster but will only have one band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5990
+#: reference_raster.xml:7504
 #, no-c-format
 msgid ""
       "The <varname>onerasteruserfunc</varname> parameter must be the name and signature of a SQL or PL/pgSQL function, cast to a regprocedure. A very simple and quite useless PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION simple_function(pixel FLOAT, pos INTEGER[], VARIADIC args TEXT[])\n"
@@ -7442,25 +8951,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5994
+#: reference_raster.xml:7509
 #, no-c-format
 msgid "Passing a <type>regprodedure</type> argument to a SQL function requires the full function signature to be passed, then cast to a <type>regprocedure</type> type. To pass the above example PL/pgSQL function as an argument, the SQL for the argument is:<programlisting>'simple_function(float,integer[],text[])'::regprocedure</programlisting>Note that the argument contains the name of the function, the types of the function arguments, quotes around the name and argument types, and a cast [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:5996
+#: reference_raster.xml:7513
 #, no-c-format
 msgid "The third argument to the <varname>userfunction</varname> is a <type>variadic text</type> array. All trailing text arguments to any <xref linkend=\"RT_ST_MapAlgebraFct\"/> call are passed through to the specified <varname>userfunction</varname>, and are contained in the <varname>args</varname> argument."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6000
+#: reference_raster.xml:7522
 #, no-c-format
 msgid "The <type>text[]</type> argument to the <varname>userfunction</varname> is required, regardless of whether you choose to pass any arguments to your user function for processing or not."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6009
+#: reference_raster.xml:7532
 #, no-c-format
 msgid ""
       "ALTER TABLE dummy_rast ADD COLUMN map_rast raster;\n"
@@ -7493,13 +9002,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6010
+#: reference_raster.xml:7534
 #, no-c-format
 msgid "Create a new 1 band raster of pixel-type 2BUI from our original that is reclassified and set the nodata value to a passed parameter to the user function (0)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6011
+#: reference_raster.xml:7535
 #, no-c-format
 msgid ""
       "ALTER TABLE dummy_rast ADD COLUMN map_rast2 raster;\n"
@@ -7549,7 +9058,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6038
+#: reference_raster.xml:7563
 #, no-c-format
 msgid ""
       "CREATE FUNCTION rast_plus_tan(pixel float, pos integer[], variadic args text[])\n"
@@ -7577,37 +9086,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6043 reference_raster.xml:6143
+#: reference_raster.xml:7568 reference_raster.xml:7691
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_GeoReference\"/>, <xref linkend=\"RT_ST_SetValue\"/>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6050
+#: reference_raster.xml:7580
 #, no-c-format
 msgid "2 band version - Creates a new one band raster formed by applying a valid PostgreSQL function on the 2 input raster bands and of pixeltype prodived. Band 1 is assumed if no band is specified. Extent type defaults to INTERSECTION if not specified."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:6054
+#: reference_raster.xml:7584
 #, no-c-format
 msgid "<funcprototype> <funcdef>raster <function>ST_MapAlgebraFct</function></funcdef> <paramdef><type>raster</type> <parameter>rast1</parameter></paramdef> <paramdef><type>raster</type> <parameter>rast2</parameter></paramdef> <paramdef><type>regprocedure</type> <parameter>tworastuserfunc</parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> <parameter>pixeltype=same_as_rast1</parameter></paramdef> <paramdef choice=\"opt\"><type>text</type> <parameter>extenttype=INTERSECTION< [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6082
+#: reference_raster.xml:7618
 #, no-c-format
 msgid "Creates a new one band raster formed by applying a valid PostgreSQL function specified by the <varname>tworastuserfunc</varname> on the input raster <varname>rast1</varname>, <varname>rast2</varname>. If no <varname>band1</varname> or <varname>band2</varname> is specified, band 1 is assumed. The new raster will have the same georeference, width, and height as the original rasters but will only have one band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6084
+#: reference_raster.xml:7621
 #, no-c-format
 msgid "If <varname>pixeltype</varname> is passed in, then the new raster will have a band of that pixeltype. If pixeltype is passed NULL or left out, then the new raster band will have the same pixeltype as the input <varname>rast1</varname> band."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6086
+#: reference_raster.xml:7624
 #, no-c-format
 msgid ""
       "The <varname>tworastuserfunc</varname> parameter must be the name and signature of an SQL or PL/pgSQL function, cast to a regprocedure. An example PL/pgSQL function example is: <programlisting>CREATE OR REPLACE FUNCTION simple_function_for_two_rasters(pixel1 FLOAT, pixel2 FLOAT, pos INTEGER[], VARIADIC args TEXT[])\n"
@@ -7619,25 +9128,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6091
+#: reference_raster.xml:7630
 #, no-c-format
 msgid "Passing a <type>regprodedure</type> argument to a SQL function requires the full function signature to be passed, then cast to a <type>regprocedure</type> type. To pass the above example PL/pgSQL function as an argument, the SQL for the argument is:<programlisting>'simple_function(double precision, double precision, integer[], text[])'::regprocedure</programlisting>Note that the argument contains the name of the function, the types of the function arguments, quotes around the name [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6093
+#: reference_raster.xml:7633
 #, no-c-format
 msgid "The third argument to the <varname>tworastuserfunc</varname> is a <type>variadic text</type> array. All trailing text arguments to any <xref linkend=\"RT_ST_MapAlgebraFct2\"/> call are passed through to the specified <varname>tworastuserfunc</varname>, and are contained in the <varname>userargs</varname> argument."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6097
+#: reference_raster.xml:7641
 #, no-c-format
 msgid "The <type>text[]</type> argument to the <varname>tworastuserfunc</varname> is required, regardless of whether you choose to pass any arguments to your user function for processing or not."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6104
+#: reference_raster.xml:7649
 #, no-c-format
 msgid ""
       "-- define our user defined function --\n"
@@ -7706,19 +9215,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6115
+#: reference_raster.xml:7662
 #, no-c-format
 msgid "map bands overlay (canvas) (R: small road, G: circle, B: big road)"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6125
+#: reference_raster.xml:7674
 #, no-c-format
 msgid "User Defined function that takes extra args"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6126
+#: reference_raster.xml:7675
 #, no-c-format
 msgid ""
       "CREATE OR REPLACE FUNCTION raster_mapalgebra_userargs(\n"
@@ -7754,151 +9263,151 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6133
+#: reference_raster.xml:7683
 #, no-c-format
 msgid "user defined with extra args and different bands from same raster"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6149
+#: reference_raster.xml:7702
 #, no-c-format
 msgid "ST_MapAlgebraFctNgb"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6151
+#: reference_raster.xml:7703
 #, no-c-format
 msgid "1-band version: Map Algebra Nearest Neighbor using user-defined PostgreSQL function. Return a raster which values are the result of a PLPGSQL user function involving a neighborhood of values from the input raster band."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6156
+#: reference_raster.xml:7708
 #, no-c-format
 msgid "<funcdef>raster <function>ST_MapAlgebraFctNgb</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>band</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> <paramdef><type>integer </type> <parameter>ngbwidth</parameter></paramdef> <paramdef><type>integer </type> <parameter>ngbheight</parameter></paramdef> <paramdef><type>regprocedure </type> <parameter>onera [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6174
+#: reference_raster.xml:7731
 #, no-c-format
 msgid "(one raster version) Return a raster which values are the result of a PLPGSQL user function involving a neighborhood of values from the input raster band. The user function takes the neighborhood of pixel values as an array of numbers, for each pixel, returns the result from the user function, replacing pixel value of currently inspected pixel with the function result."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:6182
+#: reference_raster.xml:7735
 #, no-c-format
 msgid "rast"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6183
+#: reference_raster.xml:7736
 #, no-c-format
 msgid "Raster on which the user function is evaluated."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:6186
+#: reference_raster.xml:7739
 #, no-c-format
 msgid "band"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6187
+#: reference_raster.xml:7740
 #, no-c-format
 msgid "Band number of the raster to be evaluated. Default to 1."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6191
+#: reference_raster.xml:7744
 #, no-c-format
 msgid "The resulting pixel type of the output raster. Must be one listed in <xref linkend=\"RT_ST_BandPixelType\"/> or left out or set to NULL. If not passed in or set to NULL, will default to the pixeltype of the <varname>rast</varname>. Results are truncated if they are larger than what is allowed for the pixeltype."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:6194
+#: reference_raster.xml:7747
 #, no-c-format
 msgid "ngbwidth"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6195
+#: reference_raster.xml:7748
 #, no-c-format
 msgid "The width of the neighborhood, in cells."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:6198
+#: reference_raster.xml:7751
 #, no-c-format
 msgid "ngbheight"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6199
+#: reference_raster.xml:7752
 #, no-c-format
 msgid "The height of the neighborhood, in cells."
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:6202
+#: reference_raster.xml:7755
 #, no-c-format
 msgid "onerastngbuserfunc"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6203
+#: reference_raster.xml:7756
 #, no-c-format
 msgid "PLPGSQL/psql user function to apply to neighborhood pixels of a single band of a raster. The first element is a 2-dimensional array of numbers representing the rectangular pixel neighborhood"
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:6207
+#: reference_raster.xml:7759
 #, no-c-format
 msgid "nodatamode"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6208
+#: reference_raster.xml:7761
 #, no-c-format
 msgid "Defines what value to pass to the function for a neighborhood pixel that is nodata or NULL"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6209
+#: reference_raster.xml:7762
 #, no-c-format
 msgid "'ignore': any NODATA values encountered in the neighborhood are ignored by the computation -- this flag must be sent to the user callback function, and the user function decides how to ignore it."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6210
+#: reference_raster.xml:7763
 #, no-c-format
 msgid "'NULL': any NODATA values encountered in the neighborhood will cause the resulting pixel to be NULL -- the user callback function is skipped in this case."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6211
+#: reference_raster.xml:7764
 #, no-c-format
 msgid "'value': any NODATA values encountered in the neighborhood are replaced by the reference pixel (the one in the center of the neighborhood). Note that if this value is NODATA, the behavior is the same as 'NULL' (for the affected neighborhood)"
 msgstr ""
 
 #. Tag: term
-#: reference_raster.xml:6215
+#: reference_raster.xml:7768
 #, no-c-format
 msgid "args"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6216
+#: reference_raster.xml:7769
 #, no-c-format
 msgid "Arguments to pass into the user function."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6227
+#: reference_raster.xml:7779
 #, no-c-format
 msgid "Examples utilize the katrina raster loaded as a single tile described in <ulink url=\"http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html\">http://trac.osgeo.org/gdal/wiki/frmts_wtkraster.html</ulink> and then prepared in the <xref linkend=\"RT_ST_Rescale\"/> examples"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6230
+#: reference_raster.xml:7781
 #, no-c-format
 msgid ""
       "--\n"
@@ -7935,147 +9444,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6241
+#: reference_raster.xml:7795
 #, no-c-format
 msgid "First band of our raster"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6249
+#: reference_raster.xml:7809
 #, no-c-format
 msgid "new raster after averaging pixels withing 4x4 pixels of each other"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6262
+#: reference_raster.xml:7824
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_MapAlgebraExpr\"/>, <xref linkend=\"RT_ST_Rescale\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6268
+#: reference_raster.xml:7834
 #, no-c-format
-msgid "ST_Polygon"
+msgid "ST_Reclass"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6269
+#: reference_raster.xml:7835
 #, no-c-format
-msgid "Returns a multipolygon geometry formed by the union of pixels that have a pixel value that is not no data value. If no band number is specified, band num defaults to 1."
+msgid "Creates a new raster composed of band types reclassified from original. The nband is the band to be changed. If nband is not specified assumed to be 1. All other bands are returned unchanged. Use case: convert a 16BUI band to a 8BUI and so forth for simpler rendering as viewable formats."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6275
+#. Tag: funcsynopsis
+#: reference_raster.xml:7839
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Polygon</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</parameter></paramdef>"
+msgid "<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>nodataval=NULL</parameter></paramdef> </funcprototype> [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6285
+#: reference_raster.xml:7867
 #, no-c-format
-msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
+msgid "Creates a new raster formed by applying a valid PostgreSQL algebraic operation defined by the <varname>reclassexpr</varname> on the input raster (<varname>rast</varname>). If no <varname>band</varname> is specified band 1 is assumed. The new raster will have the same georeference, width, and height as the original raster. Bands not designated will come back unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid reclassification expressions."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6286
+#: reference_raster.xml:7869
 #, no-c-format
-msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning multipolygon is ensured to be valid."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:6287
-#, no-c-format
-msgid "Changed: 2.1.0 In prior versions would sometimes return a polygon, changed to always return multipolygon."
-msgstr ""
-
-#. Tag: programlisting
-#: reference_raster.xml:6292
-#, no-c-format
-msgid ""
-      "-- by default no data band value is 0 or not set, so polygon will return a square polygon        \n"
-      "SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
-      "FROM dummy_rast\n"
-      "WHERE rid = 2;\n"
-      "\n"
-      "geomwkt\n"
-      "--------------------------------------------\n"
-      "MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
-      "                 \n"
-      "                 \n"
-      "-- now we change the no data value of first band\n"
-      "UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
-      "WHERE rid = 2;\n"
-      "SELECt rid, ST_BandNoDataValue(rast)\n"
-      "from dummy_rast where rid = 2;\n"
-      "\n"
-      "-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
-      "SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
-      "FROM dummy_rast\n"
-      "WHERE rid = 2;\n"
-      "\n"
-      "geomwkt\n"
-      "---------------------------------------------------------\n"
-      "MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.8 57932 [...]
-      "\n"
-      "-- Or if you want the no data value different for just one time\n"
-      "\n"
-      "SELECT ST_AsText(\n"
-      "        ST_Polygon(\n"
-      "                ST_SetBandNoDataValue(rast,1,252)\n"
-      "                )\n"
-      "        ) As geomwkt\n"
-      "FROM dummy_rast\n"
-      "WHERE rid =2;\n"
-      "\n"
-      "geomwkt\n"
-      "---------------------------------\n"
-      "MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 5793243.9,3427927.9 5793243.9)))"
-msgstr ""
-
-#. Tag: refname
-#: reference_raster.xml:6302
-#, no-c-format
-msgid "ST_Reclass"
-msgstr ""
-
-#. Tag: refpurpose
-#: reference_raster.xml:6303
-#, no-c-format
-msgid "Creates a new raster composed of band types reclassified from original. The nband is the band to be changed. If nband is not specified assumed to be 1. All other bands are returned unchanged. Use case: convert a 16BUI band to a 8BUI and so forth for simpler rendering as viewable formats."
-msgstr ""
-
-#. Tag: funcsynopsis
-#: reference_raster.xml:6308
-#, no-c-format
-msgid "<funcprototype> <funcdef>raster <function>ST_Reclass</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>text </type> <parameter>reclassexpr</parameter></paramdef> <paramdef><type>text </type> <parameter>pixeltype</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>nodataval=NULL</parameter></paramdef> </funcprototype> [...]
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:6336
-#, no-c-format
-msgid "Creates a new raster formed by applying a valid PostgreSQL algebraic operation defined by the <varname>reclassexpr</varname> on the input raster (<varname>rast</varname>). If no <varname>band</varname> is specified band 1 is assumed. The new raster will have the same georeference, width, and height as the original raster. Bands not designated will come back unchanged. Refer to <xref linkend=\"reclassarg\"/> for description of valid reclassification expressions."
-msgstr ""
-
-#. Tag: para
-#: reference_raster.xml:6340
-#, no-c-format
-msgid "The bands of the new raster will have pixel type of <varname>pixeltype</varname>. If <varname>reclassargset</varname> is passed in then each reclassarg defines behavior of each band generated."
+msgid "The bands of the new raster will have pixel type of <varname>pixeltype</varname>. If <varname>reclassargset</varname> is passed in then each reclassarg defines behavior of each band generated."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6347
+#: reference_raster.xml:7875
 #, no-c-format
 msgid "Examples Basic"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6349
+#: reference_raster.xml:7876
 #, no-c-format
 msgid "Create a new raster from the original where band 2 is converted from 8BUI to 4BUI and all values from 101-254 are set to nodata value."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6350
+#: reference_raster.xml:7877
 #, no-c-format
 msgid ""
       "ALTER TABLE dummy_rast ADD COLUMN reclass_rast raster;\n"
@@ -8101,19 +9530,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6354
+#: reference_raster.xml:7881
 #, no-c-format
 msgid "Example: Advanced using multiple reclassargs"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6356
+#: reference_raster.xml:7883
 #, no-c-format
 msgid "Create a new raster from the original where band 1,2,3 is converted to 1BB,4BUI, 4BUI respectively and reclassified. Note this uses the variadic <varname>reclassarg</varname> argument which can take as input an indefinite number of reclassargs (theoretically as many bands as you have)"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6358
+#: reference_raster.xml:7884
 #, no-c-format
 msgid ""
       "UPDATE dummy_rast SET reclass_rast = \n"
@@ -8143,19 +9572,19 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6361
+#: reference_raster.xml:7888
 #, no-c-format
 msgid "Example: Advanced Map a single band 32BF raster to multiple viewable bands"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6363
+#: reference_raster.xml:7889
 #, no-c-format
 msgid "Create a new 3 band (8BUI,8BUI,8BUI viewable raster) from a raster that has only one 32bf band"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6364
+#: reference_raster.xml:7890
 #, no-c-format
 msgid ""
       "ALTER TABLE wind ADD COLUMN rast_view raster;\n"
@@ -8166,83 +9595,101 @@ msgid ""
       "                ST_Reclass(rast,1, '11-33):0-255,[0-32:0,(34-1000:0'::text, '8BUI'::text,0),  \n"
       "                ST_Reclass(rast,1,'0-32]:0,(32-100:100-255'::text, '8BUI'::text,0)\n"
       "                ]\n"
-      "                ) ;"
+      "                );"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6370
+#: reference_raster.xml:7895
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Band\"/>, <xref linkend=\"RT_ST_BandPixelType\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/>, <xref linkend=\"reclassarg\"/>, <xref linkend=\"RT_ST_Value\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6376
+#: reference_raster.xml:7908
 #, no-c-format
 msgid "ST_Union"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6377
+#: reference_raster.xml:7909
 #, no-c-format
 msgid "Returns the union of a set of raster tiles into a single raster composed of 1 or more bands."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6382
+#: reference_raster.xml:7914
 #, no-c-format
 msgid "<funcdef>raster <function>ST_Union</function></funcdef> <paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6388
+#: reference_raster.xml:7920
 #, no-c-format
 msgid "<funcdef>raster <function>ST_Union</function></funcdef> <paramdef><type>setof raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>unionarg[] </type> <parameter>unionargset</parameter></paramdef>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6395
+#: reference_raster.xml:7927
 #, no-c-format
 msgid "<funcdef>raster <function>ST_Union</function></funcdef> <paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> <parameter>nband</parameter></paramdef>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6402
+#: reference_raster.xml:7934
 #, no-c-format
 msgid "<funcdef>raster <function>ST_Union</function></funcdef> <paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> <paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6409
+#: reference_raster.xml:7941
 #, no-c-format
 msgid "<funcdef>raster <function>ST_Union</function></funcdef> <paramdef><type>setof raster</type> <parameter>rast</parameter></paramdef> <paramdef><type>integer</type> <parameter>nband</parameter></paramdef> <paramdef><type>text</type> <parameter>uniontype</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6421
+#: reference_raster.xml:7953
 #, no-c-format
-msgid "Returns the union of a set of raster tiles into a single raster composed of at least one band. If <varname>nband</varname> is not specified, band 1 is assumed. The resulting raster's extent is the extent of the whole set. In the case of intersection, the resulting value is defined by <varname>uniontype</varname> which is one of the following: LAST (default), FIRST, MIN, MAX, COUNT, SUM, MEAN."
+msgid "Returns the union of a set of raster tiles into a single raster composed of at least one band. The resulting raster's extent is the extent of the whole set. In the case of intersection, the resulting value is defined by <varname>uniontype</varname> which is one of the following: LAST (default), FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6424
+#: reference_raster.xml:7956
+#, no-c-format
+msgid "In order for rasters to be unioned, they most all have the same alignment. Use <xref linkend=\"RT_ST_SameAlignment\"/> and <xref linkend=\"RT_ST_NotSameAlignmentReason\"/> for more details and help. One way to fix alignment issues is to use <xref linkend=\"RT_ST_Resample\"/> and use the same reference raster for alignment."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7960
 #, no-c-format
 msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based)."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6425
+#: reference_raster.xml:7961
+#, no-c-format
+msgid "Availability: 2.1.0 ST_Union(rast, unionarg) variant was introduced."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7962
+#, no-c-format
+msgid "Enhanced: 2.1.0 ST_Union(rast) (variant 1) unions all bands of all input rasters. Prior versions of PostGIS assumed the first band."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:7963
 #, no-c-format
-msgid "Changed: 2.1.0 ST_Union(rast) now unions all bands of all input rasters. Prior versions only unioned the first band of all input rasters."
+msgid "Enhanced: 2.1.0 ST_Union(rast, uniontype) (variant 4) unions all bands of all input rasters."
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6429
+#: reference_raster.xml:7966
 #, no-c-format
 msgid "Examples: Reconstitute a single band chunked raster tile"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6430
+#: reference_raster.xml:7967
 #, no-c-format
 msgid ""
       "-- this creates a single band from first band of raster tiles\n"
@@ -8252,34 +9699,32 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6434 reference_raster.xml:6442
+#: reference_raster.xml:7971 reference_raster.xml:7975
 #, no-c-format
 msgid "Examples: Return a multi-band raster that is the union of tiles intersecting geometry"
 msgstr ""
 
-#. Tag: para
-#: reference_raster.xml:6435
-#, no-c-format
-msgid "-- this creates a multi band raster collecting all the tiles that intersect a line -- Note: In 2.0, this would have just returned a single band raster -- , new union works on all bands by default -- this is equivalent to unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), ROW(3, 'LAST')]::unionarg[]"
-msgstr ""
-
 #. Tag: programlisting
-#: reference_raster.xml:6439
+#: reference_raster.xml:7972
 #, no-c-format
 msgid ""
+      "-- this creates a multi band raster collecting all the tiles that intersect a line\n"
+      "-- Note: In 2.0, this would have just returned a single band raster\n"
+      "-- , new union works on all bands by default\n"
+      "-- this is equivalent to unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), ROW(3, 'LAST')]::unionarg[]\n"
       "SELECT ST_Union(rast)\n"
       "FROM aerials.boston\n"
       "WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 88772)',26986) );"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6443
+#: reference_raster.xml:7976
 #, no-c-format
 msgid "Here we use the longer syntax if we only wanted a subset of bands or we want to change order of bands"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6444
+#: reference_raster.xml:7977
 #, no-c-format
 msgid ""
       "-- this creates a multi band raster collecting all the tiles that intersect a line\n"
@@ -8289,190 +9734,227 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6450
+#: reference_raster.xml:7983
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, <xref linkend=\"RT_ST_Clip\"/>"
+msgid ", <xref linkend=\"RT_ST_Envelope\"/>, <xref linkend=\"RT_ST_ConvexHull\"/>, <xref linkend=\"RT_ST_Clip\"/>, <xref linkend=\"ST_Union\"/>"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6461
+#: reference_raster.xml:7996
 #, no-c-format
-msgid "Raster Processing Builtin Functions"
+msgid "Built-in Map Algebra Callback Functions"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6464
+#: reference_raster.xml:8000
 #, no-c-format
-msgid "ST_Min4ma"
+msgid "ST_Distinct4ma"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6465
+#: reference_raster.xml:8001
 #, no-c-format
-msgid "Raster processing function that calculates the minimum pixel value in a neighborhood."
+msgid "Raster processing function that calculates the number of unique pixel values in a neighborhood."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6470
+#. Tag: funcsynopsis
+#: reference_raster.xml:8005
 #, no-c-format
-msgid "<funcdef>float8 <function>ST_Min4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+msgid "<funcprototype> <funcdef>float8 <function>ST_Distinct4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double precision <function>ST_Distinct4ma</function></funcdef> <paramdef><type>double precision[][][]</type> <parameter>value</parameter></ [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6482
+#: reference_raster.xml:8025
 #, no-c-format
-msgid "Calculate the minimum pixel value in a neighborhood of pixels."
+msgid "Calculate the number of unique pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8028 reference_raster.xml:8167 reference_raster.xml:8242 reference_raster.xml:8327 reference_raster.xml:8452 reference_raster.xml:8523 reference_raster.xml:8598
+#, no-c-format
+msgid "Variant 1 is a specialized callback function for use as a callback parameter to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8032 reference_raster.xml:8171 reference_raster.xml:8246 reference_raster.xml:8333 reference_raster.xml:8456 reference_raster.xml:8527 reference_raster.xml:8602
+#, no-c-format
+msgid "Variant 2 is a specialized callback function for use as a callback parameter to <xref linkend=\"RT_ST_MapAlgebra\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8038 reference_raster.xml:8177 reference_raster.xml:8252 reference_raster.xml:8339 reference_raster.xml:8462 reference_raster.xml:8533 reference_raster.xml:8608
+#, no-c-format
+msgid "Use of Variant 1 is discouraged since <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/> has been deprecated as of 2.1.0."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6485 reference_raster.xml:6535 reference_raster.xml:6585 reference_raster.xml:6635 reference_raster.xml:6684 reference_raster.xml:6734 reference_raster.xml:6784 reference_raster.xml:6855 reference_raster.xml:6904
+#: reference_raster.xml:8044 reference_raster.xml:8183 reference_raster.xml:8258 reference_raster.xml:8345 reference_raster.xml:8468 reference_raster.xml:8539 reference_raster.xml:8614
 #, no-c-format
-msgid "This function is a specialized callback function for use as a callback parameter to <xref linkend=\"RT_ST_MapAlgebraFctNgb\"/>."
+msgid "Enhanced: 2.1.0 Addition of Variant 2"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6494
+#: reference_raster.xml:8050
 #, no-c-format
 msgid ""
       "SELECT \n"
       "    rid,\n"
       "    st_value(\n"
-      "        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+      "        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
       "    ) \n"
       "FROM dummy_rast \n"
       "WHERE rid = 2;\n"
       " rid | st_value\n"
       "-----+----------\n"
-      "   2 |      250\n"
+      "   2 |        3\n"
       "(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6500
+#: reference_raster.xml:8056 reference_raster.xml:8480 reference_raster.xml:8551
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgid ", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6514
+#: reference_raster.xml:8071
 #, no-c-format
-msgid "ST_Max4ma"
+msgid "ST_InvDistWeight4ma"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6515
+#: reference_raster.xml:8072
 #, no-c-format
-msgid "Raster processing function that calculates the maximum pixel value in a neighborhood."
+msgid "Raster processing function that interpolates a pixel's value from the pixel's neighborhood."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6520
+#: reference_raster.xml:8077
 #, no-c-format
-msgid "<funcdef>float8 <function>ST_Max4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+msgid "<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> <paramdef><type>double precision[][][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6532
+#: reference_raster.xml:8089
 #, no-c-format
-msgid "Calculate the maximum pixel value in a neighborhood of pixels."
+msgid "Calculate an interpolated value for a pixel using the Inverse Distance Weighted method."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8091
+#, no-c-format
+msgid "There are two optional parameters that can be passed through <varname>userargs</varname>. The first parameter is the power factor (variable k in the equation below) between 0 and 1 used in the Inverse Distance Weighted equation. If not specified, default value is 1. The second parameter is the weight percentage applied only when the value of the pixel of interest is included with the interpolated value from the neighborhood. If not specified and the pixel of interest has a value,  [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8095
+#, no-c-format
+msgid "The basic inverse distance weight equation is:"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8104
+#, no-c-format
+msgid "k = power factor, a real number between 0 and 1"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8113 reference_raster.xml:8398
+#, no-c-format
+msgid "This function is a specialized callback function for use as a callback parameter to <xref linkend=\"RT_ST_MapAlgebra\"/>."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6544
+#: reference_raster.xml:8121 reference_raster.xml:8406
 #, no-c-format
-msgid ""
-      "SELECT \n"
-      "    rid,\n"
-      "    st_value(\n"
-      "        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
-      "    ) \n"
-      "FROM dummy_rast \n"
-      "WHERE rid = 2;\n"
-      " rid | st_value\n"
-      "-----+----------\n"
-      "   2 |      254\n"
-      "(1 row)"
+msgid "-- NEEDS EXAMPLE"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6550
+#: reference_raster.xml:8126
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6564
+#: reference_raster.xml:8135
 #, no-c-format
-msgid "ST_Sum4ma"
+msgid "ST_Max4ma"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6565
+#: reference_raster.xml:8136
 #, no-c-format
-msgid "Raster processing function that calculates the sum of all pixel values in a neighborhood."
+msgid "Raster processing function that calculates the maximum pixel value in a neighborhood."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6570
+#. Tag: funcsynopsis
+#: reference_raster.xml:8140
 #, no-c-format
-msgid "<funcdef>float8 <function>ST_Sum4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+msgid "<funcprototype> <funcdef>float8 <function>ST_Max4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double precision <function>ST_Max4ma</function></funcdef> <paramdef><type>double precision[][][]</type> <parameter>value</parameter></paramdef>  [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6582
+#: reference_raster.xml:8160
 #, no-c-format
-msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+msgid "Calculate the maximum pixel value in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8162 reference_raster.xml:8237 reference_raster.xml:8322 reference_raster.xml:8447 reference_raster.xml:8593
+#, no-c-format
+msgid "For Variant 2, a substitution value for NODATA pixels can be specified by passing that value to userargs."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6594
+#: reference_raster.xml:8189
 #, no-c-format
 msgid ""
       "SELECT \n"
       "    rid,\n"
       "    st_value(\n"
-      "        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+      "        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_max4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
       "    ) \n"
       "FROM dummy_rast \n"
       "WHERE rid = 2;\n"
       " rid | st_value\n"
       "-----+----------\n"
-      "   2 |     2279\n"
+      "   2 |      254\n"
       "(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6600
+#: reference_raster.xml:8195
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgid ", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6614
+#: reference_raster.xml:8210
 #, no-c-format
 msgid "ST_Mean4ma"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6615
+#: reference_raster.xml:8211
 #, no-c-format
 msgid "Raster processing function that calculates the mean pixel value in a neighborhood."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6620
+#. Tag: funcsynopsis
+#: reference_raster.xml:8215
 #, no-c-format
-msgid "<funcdef>float8 <function>ST_Mean4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+msgid "<funcprototype> <funcdef>float8 <function>ST_Mean4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double precision <function>ST_Mean4ma</function></funcdef> <paramdef><type>double precision[][][]</type> <parameter>value</parameter></paramdef [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6632
+#: reference_raster.xml:8235
 #, no-c-format
 msgid "Calculate the mean pixel value in a neighborhood of pixels."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6644
+#: reference_raster.xml:8264
 #, no-c-format
 msgid ""
       "SELECT \n"
@@ -8488,126 +9970,179 @@ msgid ""
       "(1 row)"
 msgstr ""
 
+#. Tag: programlisting
+#: reference_raster.xml:8271
+#, no-c-format
+msgid ""
+      "SELECT \n"
+      "    rid,\n"
+      "    st_value(\n"
+      "              ST_MapAlgebra(rast, 1, 'st_mean4ma(double precision[][][], integer[][], text[])'::regprocedure,'32BF', 'FIRST', NULL, 1, 1)\n"
+      "       ,  2, 2)\n"
+      "  FROM dummy_rast \n"
+      "   WHERE rid = 2;\n"
+      " rid |     st_value\n"
+      "-----+------------------\n"
+      "   2 | 253.222229003906\n"
+      "(1 row)"
+msgstr ""
+
 #. Tag: para
-#: reference_raster.xml:6650
+#: reference_raster.xml:8277
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgid ", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6663
+#: reference_raster.xml:8291
 #, no-c-format
-msgid "ST_Range4ma"
+msgid "ST_Min4ma"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6664
+#: reference_raster.xml:8292
 #, no-c-format
-msgid "Raster processing function that calculates the range of pixel values in a neighborhood."
+msgid "Raster processing function that calculates the minimum pixel value in a neighborhood."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6669
+#. Tag: funcsynopsis
+#: reference_raster.xml:8298
 #, no-c-format
-msgid "<funcdef>float8 <function>ST_Range4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+msgid "<funcprototype> <funcdef>float8 <function>ST_Min4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double precision <function>ST_Min4ma</function></funcdef> <paramdef><type>double precision[][][]</type> <parameter>value</parameter></paramdef> [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6681
+#: reference_raster.xml:8318
 #, no-c-format
-msgid "Calculate the range of pixel values in a neighborhood of pixels."
+msgid "Calculate the minimum pixel value in a neighborhood of pixels."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6693
+#: reference_raster.xml:8351
 #, no-c-format
 msgid ""
       "SELECT \n"
       "    rid,\n"
       "    st_value(\n"
-      "        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+      "        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_min4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
       "    ) \n"
       "FROM dummy_rast \n"
       "WHERE rid = 2;\n"
       " rid | st_value\n"
       "-----+----------\n"
-      "   2 |        4\n"
+      "   2 |      250\n"
       "(1 row)"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6699 reference_raster.xml:6749 reference_raster.xml:6799
+#: reference_raster.xml:8356
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/> <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgid ", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Sum4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6713
+#: reference_raster.xml:8371
 #, no-c-format
-msgid "ST_Distinct4ma"
+msgid "ST_MinDist4ma"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6714
+#: reference_raster.xml:8372
 #, no-c-format
-msgid "Raster processing function that calculates the number of unique pixel values in a neighborhood."
+msgid "Raster processing function that returns the minimum distance (in number of pixels) between the pixel of interest and a neighboring pixel with value."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6719
+#: reference_raster.xml:8377
 #, no-c-format
-msgid "<funcdef>float8 <function>ST_Distinct4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+msgid "<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> <paramdef><type>double precision[][][]</type> <parameter>value</parameter></paramdef> <paramdef><type>integer[][]</type> <parameter>pos</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC userargs</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6731
+#: reference_raster.xml:8389
 #, no-c-format
-msgid "Calculate the number of unique pixel values in a neighborhood of pixels."
+msgid "Return the shortest distance (in number of pixels) between the pixel of interest and the closest pixel with value in the neighborhood."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8392
+#, no-c-format
+msgid "The intent of this function is to provide an informative data point that helps infer the usefulness of the pixel of interest's interpolated value from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is particularly useful when the neighborhood is sparsely populated."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8411
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8420
+#, no-c-format
+msgid "ST_Range4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8421
+#, no-c-format
+msgid "Raster processing function that calculates the range of pixel values in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8425
+#, no-c-format
+msgid "<funcprototype> <funcdef>float8 <function>ST_Range4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double precision <function>ST_Range4ma</function></funcdef> <paramdef><type>double precision[][][]</type> <parameter>value</parameter></paramd [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8445
+#, no-c-format
+msgid "Calculate the range of pixel values in a neighborhood of pixels."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6743
+#: reference_raster.xml:8474
 #, no-c-format
 msgid ""
       "SELECT \n"
       "    rid,\n"
       "    st_value(\n"
-      "        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_distinct4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+      "        st_mapalgebrafctngb(rast, 1, NULL, 1, 1, 'st_range4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
       "    ) \n"
       "FROM dummy_rast \n"
       "WHERE rid = 2;\n"
       " rid | st_value\n"
       "-----+----------\n"
-      "   2 |        3\n"
+      "   2 |        4\n"
       "(1 row)"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6763
+#: reference_raster.xml:8495
 #, no-c-format
 msgid "ST_StdDev4ma"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6764
+#: reference_raster.xml:8496
 #, no-c-format
 msgid "Raster processing function that calculates the standard deviation of pixel values in a neighborhood."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6769
+#. Tag: funcsynopsis
+#: reference_raster.xml:8500
 #, no-c-format
-msgid "<funcdef>float8 <function>ST_StdDev4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+msgid "<funcprototype> <funcdef>float8 <function>ST_StdDev4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double precision <function>ST_StdDev4ma</function></funcdef> <paramdef><type>double precision[][][]</type> <parameter>value</parameter></par [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6781
+#: reference_raster.xml:8520
 #, no-c-format
 msgid "Calculate the standard deviation of pixel values in a neighborhood of pixels."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6793
+#: reference_raster.xml:8545
 #, no-c-format
 msgid ""
       "SELECT \n"
@@ -8624,133 +10159,1009 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6813
+#: reference_raster.xml:8566
+#, no-c-format
+msgid "ST_Sum4ma"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8567
+#, no-c-format
+msgid "Raster processing function that calculates the sum of all pixel values in a neighborhood."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8571
+#, no-c-format
+msgid "<funcprototype> <funcdef>float8 <function>ST_Sum4ma</function></funcdef> <paramdef><type>float8[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text</type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef> </funcprototype> <funcprototype> <funcdef>double precision <function>ST_Sum4ma</function></funcdef> <paramdef><type>double precision[][][]</type> <parameter>value</parameter></paramdef>  [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8591
+#, no-c-format
+msgid "Calculate the sum of all pixel values in a neighborhood of pixels."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8620
+#, no-c-format
+msgid ""
+      "SELECT \n"
+      "    rid,\n"
+      "    st_value(\n"
+      "        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_sum4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2\n"
+      "    ) \n"
+      "FROM dummy_rast \n"
+      "WHERE rid = 2;\n"
+      " rid | st_value\n"
+      "-----+----------\n"
+      "   2 |     2279\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8626
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_MapAlgebra\"/>, <xref linkend=\"RT_ST_Min4ma\"/>, <xref linkend=\"RT_ST_Max4ma\"/>, <xref linkend=\"RT_ST_Mean4ma\"/>, <xref linkend=\"RT_ST_Range4ma\"/>, <xref linkend=\"RT_ST_Distinct4ma\"/>, <xref linkend=\"RT_ST_StdDev4ma\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:8642
+#, no-c-format
+msgid "DEM (Elevation)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8646
+#, no-c-format
+msgid "ST_Aspect"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8647
+#, no-c-format
+msgid "Returns the aspect (in degrees by default) of an elevation raster band. Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8650
+#, no-c-format
+msgid "<funcprototype> <funcdef>raster <function>ST_Aspect</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>interpolate [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8675
+#, no-c-format
+msgid "Returns the aspect (in degrees by default) of an elevation raster band. Utilizes map algebra and applies the aspect equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8677
+#, no-c-format
+msgid "<varname>units</varname> indicates the units of the aspect. Possible values are: RADIANS, DEGREES (default)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8681
+#, no-c-format
+msgid "When <varname>units</varname> = RADIANS, values are between 0 and 2 * pi radians measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8685
+#, no-c-format
+msgid "When <varname>units</varname> = DEGREES, values are between 0 and 360 degrees measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8689
+#, no-c-format
+msgid "If slope of pixel is zero, aspect of pixel is -1."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8694
+#, no-c-format
+msgid "For more information about Slope, Aspect and Hillshade, please refer to <ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and <ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/common/html/wwhelp.htm?context=FieldGuide&file=Aspect_Images.html\">ERDAS Field Guide - Aspect Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8700 reference_raster.xml:8796
+#, no-c-format
+msgid "Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional <varname>interpolate_nodata</varname> function parameter"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8701 reference_raster.xml:8925
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, return values were in radians. Now, return values default to degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8706
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_SetValues(\n"
+      "                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '32BF', 0, -9999),\n"
+      "                1, 1, 1, ARRAY[\n"
+      "                        [1, 1, 1, 1, 1],\n"
+      "                        [1, 2, 2, 2, 1],\n"
+      "                        [1, 2, 3, 2, 1],\n"
+      "                        [1, 2, 2, 2, 1],\n"
+      "                        [1, 1, 1, 1, 1]\n"
+      "                ]::double precision[][]\n"
+      "        ) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_DumpValues(ST_Aspect(rast, 1, '32BF'))\n"
+      "FROM foo\n"
+      "\n"
+      "                                                                                                    st_dumpvalues                                                                   \n"
+      "                                  \n"
+      "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+      "----------------------------------\n"
+      " (1,\"{{315,341.565063476562,0,18.4349479675293,45},{288.434936523438,315,0,45,71.5650482177734},{270,270,-1,90,90},{251.565048217773,225,180,135,108.434951782227},{225,198.43495178\n"
+      "2227,180,161.565048217773,135}}\")\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8712 reference_raster.xml:8809 reference_raster.xml:8937
+#, no-c-format
+msgid "Complete example of tiles of a coverage. This query only works with PostgreSQL 9.1 or higher."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8714
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_Tile(\n"
+      "                ST_SetValues(\n"
+      "                        ST_AddBand(\n"
+      "                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, 0),\n"
+      "                                1, '32BF', 0, -9999\n"
+      "                        ),\n"
+      "                        1, 1, 1, ARRAY[\n"
+      "                                [1, 1, 1, 1, 1, 1],\n"
+      "                                [1, 1, 1, 1, 2, 1],\n"
+      "                                [1, 2, 2, 3, 3, 1],\n"
+      "                                [1, 1, 3, 2, 1, 1],\n"
+      "                                [1, 2, 2, 1, 2, 1],\n"
+      "                                [1, 1, 1, 1, 1, 1]\n"
+      "                        ]::double precision[]\n"
+      "                ),\n"
+      "                2, 2\n"
+      "        ) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        t1.rast,\n"
+      "        ST_Aspect(ST_Union(t2.rast), 1, t1.rast)\n"
+      "FROM foo t1\n"
+      "CROSS JOIN foo t2\n"
+      "WHERE ST_Intersects(t1.rast, t2.rast)\n"
+      "GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8719
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8732
+#, no-c-format
+msgid "ST_HillShade"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8733
+#, no-c-format
+msgid "Returns the hypothetical illumination of an elevation raster band using provided azimuth, altitude, brightness and scale inputs."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8736
+#, no-c-format
+msgid "<funcprototype> <funcdef>raster <function>ST_HillShade</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band=1</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>azimuth=315</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type>  [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8767
+#, no-c-format
+msgid "Returns the hypothetical illumination of an elevation raster band using the azimuth, altitude, brightness, and scale inputs. Utilizes map algebra and applies the hill shade equation to neighboring pixels. Return pixel values are between 0 and 255."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8769
+#, no-c-format
+msgid "<varname>azimuth</varname> is a value between 0 and 360 degrees measured clockwise from North."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8773
+#, no-c-format
+msgid "<varname>altitude</varname> is a value between 0 and 90 degrees where 0 degrees is at the horizon and 90 degrees is directly overhead."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8777
+#, no-c-format
+msgid "<varname>max_bright</varname> is a value between 0 and 255 with 0 as no brightness and 255 as max brightness."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8781 reference_raster.xml:8909
+#, no-c-format
+msgid "<varname>scale</varname> is the ratio of vertical units to horizontal. For Feet:LatLon use scale=370400, for Meters:LatLon use scale=111120."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8785
+#, no-c-format
+msgid "If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels from the input raster will be interpolated using <xref linkend=\"RT_ST_InvDistWeight4ma\"/> before computing the hillshade illumination."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8790
+#, no-c-format
+msgid "For more information about Hillshade, please refer to <ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How%20Hillshade%20works\">How hillshade works</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8797
+#, no-c-format
+msgid "Changed: 2.1.0 In prior versions, azimuth and altitude were expressed in radians. Now, azimuth and altitude are expressed in degrees"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8803
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_SetValues(\n"
+      "                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '32BF', 0, -9999),\n"
+      "                1, 1, 1, ARRAY[\n"
+      "                        [1, 1, 1, 1, 1],\n"
+      "                        [1, 2, 2, 2, 1],\n"
+      "                        [1, 2, 3, 2, 1],\n"
+      "                        [1, 2, 2, 2, 1],\n"
+      "                        [1, 1, 1, 1, 1]\n"
+      "                ]::double precision[][]\n"
+      "        ) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_DumpValues(ST_Hillshade(rast, 1, '32BF'))\n"
+      "FROM foo\n"
+      "\n"
+      "                                                                                                                       st_dumpvalues                                                \n"
+      "                                                                       \n"
+      "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+      "-----------------------------------------------------------------------\n"
+      " (1,\"{{NULL,NULL,NULL,NULL,NULL},{NULL,251.32763671875,220.749786376953,147.224319458008,NULL},{NULL,220.749786376953,180.312225341797,67.7497863769531,NULL},{NULL,147.224319458008\n"
+      ",67.7497863769531,43.1210060119629,NULL},{NULL,NULL,NULL,NULL,NULL}}\")\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8811
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_Tile(\n"
+      "                ST_SetValues(\n"
+      "                        ST_AddBand(\n"
+      "                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, 0),\n"
+      "                                1, '32BF', 0, -9999\n"
+      "                        ),\n"
+      "                        1, 1, 1, ARRAY[\n"
+      "                                [1, 1, 1, 1, 1, 1],\n"
+      "                                [1, 1, 1, 1, 2, 1],\n"
+      "                                [1, 2, 2, 3, 3, 1],\n"
+      "                                [1, 1, 3, 2, 1, 1],\n"
+      "                                [1, 2, 2, 1, 2, 1],\n"
+      "                                [1, 1, 1, 1, 1, 1]\n"
+      "                        ]::double precision[]\n"
+      "                ),\n"
+      "                2, 2\n"
+      "        ) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        t1.rast,\n"
+      "        ST_Hillshade(ST_Union(t2.rast), 1, t1.rast)\n"
+      "FROM foo t1\n"
+      "CROSS JOIN foo t2\n"
+      "WHERE ST_Intersects(t1.rast, t2.rast)\n"
+      "GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8816
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_Aspect\"/>, <xref linkend=\"RT_ST_Slope\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8829
+#, no-c-format
+msgid "ST_Roughness"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8830
+#, no-c-format
+msgid "Returns a raster with the calculated \"roughness\" of a DEM."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8835
+#, no-c-format
+msgid "<funcdef>raster <function>ST_Roughness</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> <parameter>customextent</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter> interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8848
+#, no-c-format
+msgid "Calculates the \"roughness\" of a DEM, by subtracting the maximum from the minimum for a given area."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8854 reference_raster.xml:8987 reference_raster.xml:9038
+#, no-c-format
+msgid "-- needs examples"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8859
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8872
+#, no-c-format
+msgid "ST_Slope"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8873
+#, no-c-format
+msgid "Returns the slope (in degrees by default) of an elevation raster band. Useful for analyzing terrain."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:8876
+#, no-c-format
+msgid "<funcprototype> <funcdef>raster <function>ST_Slope</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=1</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=32BF</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>units=DEGREES</parameter></paramdef> <paramdef choice=\"opt\"><type>double precision </type> <parameter>sc [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8903
+#, no-c-format
+msgid "Returns the slope (in degrees by default) of an elevation raster band. Utilizes map algebra and applies the slope equation to neighboring pixels."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8905
+#, no-c-format
+msgid "<varname>units</varname> indicates the units of the slope. Possible values are: RADIANS, DEGREES (default), PERCENT."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8913
+#, no-c-format
+msgid "If <varname>interpolate_nodata</varname> is TRUE, values for NODATA pixels from the input raster will be interpolated using <xref linkend=\"RT_ST_InvDistWeight4ma\"/> before computing the surface slope."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8918
+#, no-c-format
+msgid "For more information about Slope, Aspect and Hillshade, please refer to <ulink url=\"http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How%20Hillshade%20works\">ESRI - How hillshade works</ulink> and <ulink url=\"http://geospatial.intergraph.com/fieldguide/wwhelp/wwhimpl/common/html/wwhelp.htm?context=FieldGuide&file=Slope_Images.html\">ERDAS Field Guide - Slope Images</ulink>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8924
+#, no-c-format
+msgid "Enhanced: 2.1.0 Uses ST_MapAlgebra() and added optional <varname>units</varname>, <varname>scale</varname>, <varname>interpolate_nodata</varname> function parameters"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8931
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_SetValues(\n"
+      "                ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '32BF', 0, -9999),\n"
+      "                1, 1, 1, ARRAY[\n"
+      "                        [1, 1, 1, 1, 1],\n"
+      "                        [1, 2, 2, 2, 1],\n"
+      "                        [1, 2, 3, 2, 1],\n"
+      "                        [1, 2, 2, 2, 1],\n"
+      "                        [1, 1, 1, 1, 1]\n"
+      "                ]::double precision[][]\n"
+      "        ) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_DumpValues(ST_Slope(rast, 1, '32BF'))\n"
+      "FROM foo\n"
+      "\n"
+      "                            st_dumpvalues                                                                                                                                           \n"
+      "                                                                     \n"
+      "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+      "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
+      "---------------------------------------------------------------------\n"
+      " (1,\"{{10.0249881744385,21.5681285858154,26.5650520324707,21.5681285858154,10.0249881744385},{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},\n"
+      "{26.5650520324707,36.8698959350586,0,36.8698959350586,26.5650520324707},{21.5681285858154,35.2643890380859,36.8698959350586,35.2643890380859,21.5681285858154},{10.0249881744385,21.\n"
+      "5681285858154,26.5650520324707,21.5681285858154,10.0249881744385}}\")\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:8939
+#, no-c-format
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT ST_Tile(\n"
+      "                ST_SetValues(\n"
+      "                        ST_AddBand(\n"
+      "                                ST_MakeEmptyRaster(6, 6, 0, 0, 1, -1, 0, 0, 0),\n"
+      "                                1, '32BF', 0, -9999\n"
+      "                        ),\n"
+      "                        1, 1, 1, ARRAY[\n"
+      "                                [1, 1, 1, 1, 1, 1],\n"
+      "                                [1, 1, 1, 1, 2, 1],\n"
+      "                                [1, 2, 2, 3, 3, 1],\n"
+      "                                [1, 1, 3, 2, 1, 1],\n"
+      "                                [1, 2, 2, 1, 2, 1],\n"
+      "                                [1, 1, 1, 1, 1, 1]\n"
+      "                        ]::double precision[]\n"
+      "                ),\n"
+      "                2, 2\n"
+      "        ) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        t1.rast,\n"
+      "        ST_Slope(ST_Union(t2.rast), 1, t1.rast)\n"
+      "FROM foo t1\n"
+      "CROSS JOIN foo t2\n"
+      "WHERE ST_Intersects(t1.rast, t2.rast)\n"
+      "GROUP BY t1.rast;"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8944
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:8957
+#, no-c-format
+msgid "ST_TPI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:8958
+#, no-c-format
+msgid "Returns a raster with the calculated Topographic Position Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:8963
+#, no-c-format
+msgid "<funcdef>raster <function>ST_TPI</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> <parameter>customextent</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter> interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8977
+#, no-c-format
+msgid "Calculates the Topographic Position Index, which is defined as the folcal mean with radius of one minus the center cell."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8980 reference_raster.xml:9030
+#, no-c-format
+msgid "This function only supports a focalmean radius of one."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:8992
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_TRI\"/>, <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9005
+#, no-c-format
+msgid "ST_TRI"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9006
+#, no-c-format
+msgid "Returns a raster with the calculated Terrain Ruggedness Index."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9011
+#, no-c-format
+msgid "<funcdef>raster <function>ST_TRI</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef><type>integer </type> <parameter>nband</parameter></paramdef> <paramdef><type>raster </type> <parameter>customextent</parameter></paramdef> <paramdef choice=\"opt\"><type>text </type> <parameter>pixeltype=\"32BF\"</parameter> </paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter> interpolate_nodata=FALSE </parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9025
+#, no-c-format
+msgid "Terrain Ruggedness Index is calculated by comparing a central pixel with its neighbors, taking the absolute values of the differences, and averaging the result."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9043
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Roughness\"/>, <xref linkend=\"RT_ST_TPI\"/>, <xref linkend=\"RT_ST_Slope\"/>, <xref linkend=\"RT_ST_HillShade\"/>, <xref linkend=\"RT_ST_Aspect\"/>"
+msgstr ""
+
+#. Tag: title
+#: reference_raster.xml:9057
+#, no-c-format
+msgid "Raster to Geometry"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9061
+#, no-c-format
+msgid "Box3D"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9062
+#, no-c-format
+msgid "Returns the box 3d representation of the enclosing box of the raster."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9067
+#, no-c-format
+msgid "<funcdef>box3d <function>Box3D</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9077
+#, no-c-format
+msgid "Returns the box representing the extent of the raster."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9078
+#, no-c-format
+msgid "The polygon is defined by the corner points of the bounding box ((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MAXX</varname>, <varname>MAXY</varname>))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9082
+#, no-c-format
+msgid "Changed: 2.0.0 In pre-2.0 versions, there used to be a box2d instead of box3d. Since box2d is a deprecated type, this was changed to box3d."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9088
+#, no-c-format
+msgid ""
+      "SELECT\n"
+      "        rid,\n"
+      "        Box3D(rast) AS rastbox\n"
+      "FROM dummy_rast;\n"
+      "\n"
+      "rid |        rastbox\n"
+      "----+-------------------------------------------------\n"
+      "1   | BOX3D(0.5 0.5 0,20.5 60.5 0)\n"
+      "2   | BOX3D(3427927.75 5793243.5 0,3427928 5793244 0)"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9101
+#, no-c-format
+msgid "ST_ConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9102
+#, no-c-format
+msgid "Return the convex hull geometry of the raster including pixel values equal to BandNoDataValue. For regular shaped and non-skewed rasters, this gives the same result as ST_Envelope so only useful for irregularly shaped or skewed rasters."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9109
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_ConvexHull</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9119
+#, no-c-format
+msgid "Return the convex hull geometry of the raster including the NoDataBandValue band pixels. For regular shaped and non-skewed rasters, this gives more or less the same result as ST_Envelope so only useful for irregularly shaped or skewed rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9123
+#, no-c-format
+msgid "ST_Envelope floors the coordinates and hence add a little buffer around the raster so the answer is subtly different from ST_ConvexHull which does not floor."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9130
+#, no-c-format
+msgid "Refer to <ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/SpecificationWorking01\">PostGIS Raster Specification</ulink> for a diagram of this."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9131
+#, no-c-format
+msgid ""
+      "-- Note envelope and convexhull are more or less the same\n"
+      "SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+      "        ST_AsText(ST_Envelope(rast)) As env\n"
+      "FROM dummy_rast WHERE rid=1;\n"
+      "\n"
+      "                        convhull                        |                env\n"
+      "--------------------------------------------------------+------------------------------------\n"
+      " POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 0,20 60,0 60,0 0))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9132
+#, no-c-format
+msgid ""
+      "-- now we skew the raster \n"
+      "-- note how the convex hull and envelope are now different\n"
+      "SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, \n"
+      "        ST_AsText(ST_Envelope(rast)) As env\n"
+      "FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast \n"
+      "        FROM dummy_rast WHERE rid=1) As foo;\n"
+      "        \n"
+      "                        convhull                        |                env\n"
+      "--------------------------------------------------------+------------------------------------\n"
+      " POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 0,22 61,0 61,0 0))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9138
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_MinConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/>, <xref linkend=\"ST_AsText\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9149
+#, no-c-format
+msgid "ST_DumpAsPolygons"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9150
+#, no-c-format
+msgid "Returns a set of geomval (geom,val) rows, from a given raster band. If no band number is specified, band num defaults to 1."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9155
+#, no-c-format
+msgid "<funcdef>setof geomval <function>ST_DumpAsPolygons</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</parameter></paramdef> <paramdef choice=\"opt\"><type>boolean </type> <parameter>exclude_nodata_value=TRUE</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9166
+#, no-c-format
+msgid "This is a set-returning function (SRF). It returns a set of geomval rows, formed by a geometry (geom) and a pixel band value (val). Each polygon is the union of all pixels for that band that have the same pixel value denoted by val."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9170
+#, no-c-format
+msgid "ST_DumpAsPolygon is useful for polygonizing rasters. It is the reverse of a GROUP BY in that it creates new rows. For example it can be used to expand a single raster into multiple POLYGONS/MULTIPOLYGONS."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9174
+#, no-c-format
+msgid "Availability: Requires GDAL 1.7 or higher."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9175
+#, no-c-format
+msgid "If there is a no data value set for a band, pixels with that value will not be returned."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9176
+#, no-c-format
+msgid "If you only care about count of pixels with a given value in a raster, it is faster to use <xref linkend=\"RT_ST_ValueCount\"/>."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9178
+#, no-c-format
+msgid "This is different than ST_PixelAsPolygons where one geometry is returned for each pixel regardless of pixel value."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9186
+#, no-c-format
+msgid ""
+      "SELECT val, ST_AsText(geom) As geomwkt\n"
+      "FROM (\n"
+      "SELECT (ST_DumpAsPolygons(rast)).*\n"
+      "FROM dummy_rast \n"
+      "WHERE rid = 2\n"
+      ") As foo\n"
+      "WHERE val BETWEEN 249 and 251\n"
+      "ORDER BY val;\n"
+      "\n"
+      " val |                                                       geomwkt\n"
+      "-----+--------------------------------------------------------------------------\n"
+      " 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 5793243.85,\n"
+      "                 3427928 5793243.95,3427927.95 5793243.95))\n"
+      " 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 5793243.85,\n"
+      "                 3427927.8 5793243.9,3427927.75 5793243.9))\n"
+      " 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 5793243.75,\n"
+      "                 3427927.85 5793243.8, 3427927.8 5793243.8))\n"
+      " 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 5793243.8,\n"
+      "                 3427927.8 5793243.85,3427927.75 5793243.85))"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9191
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_Value\"/>, <xref linkend=\"RT_ST_Polygon\"/>, <xref linkend=\"RT_ST_ValueCount\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9202
 #, no-c-format
-msgid "ST_InvDistWeight4ma"
+msgid "ST_Envelope"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6814
+#: reference_raster.xml:9203
 #, no-c-format
-msgid "Raster processing function that interpolates a pixel's value from the pixel's neighborhood."
+msgid "Returns the polygon representation of the extent of the raster."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6819
+#: reference_raster.xml:9208
 #, no-c-format
-msgid "<funcdef>double precision <function>ST_InvDistWeight4ma</function></funcdef> <paramdef><type>double precision[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_Envelope</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6831
+#: reference_raster.xml:9218
 #, no-c-format
-msgid "Calculate an interpolated value for a pixel using the Inverse Distance Weighted method."
+msgid "Returns the polygon representation of the extent of the raster in spatial coordinate units defined by srid. It is a float8 minimum bounding box represented as a polygon."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6833
+#: reference_raster.xml:9220
+#, no-c-format
+msgid "The polygon is defined by the corner points of the bounding box ((<varname>MINX</varname>, <varname>MINY</varname>), (<varname>MINX</varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MAXY</varname>), (<varname>MAXX</varname>, <varname>MINY</varname>), (<varname>MINX</varname>, <varname>MINY</varname>))"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9232
 #, no-c-format
-msgid "There are two optional parameters that can be passed through <varname>args</varname>. The first parameter is the power factor (variable k in the equation below) between 0 and 1 used in the Inverse Distance Weighted equation. If not specified, default value is 1. The second parameter is the weight percentage applied only when the value of the pixel of interest is included with the interpolated value from the neighborhood. If not specified and the pixel of interest has a value, that [...]
+msgid ""
+      "SELECT rid, ST_AsText(ST_Envelope(rast)) As envgeomwkt\n"
+      "FROM dummy_rast;\n"
+      "\n"
+      " rid |                                         envgeomwkt\n"
+      "-----+--------------------------------------------------------------------\n"
+      "   1 | POLYGON((0 0,20 0,20 60,0 60,0 0))\n"
+      "   2 | POLYGON((3427927 5793243,3427928 5793243,\n"
+      "                   3427928 5793244,3427927 5793244, 3427927 5793243))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6837
+#: reference_raster.xml:9237
 #, no-c-format
-msgid "The basic inverse distance weight equation is:"
+msgid ", <xref linkend=\"ST_AsText\"/>, <xref linkend=\"RT_ST_SRID\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9247
+#, no-c-format
+msgid "ST_MinConvexHull"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9248
+#, no-c-format
+msgid "Return the convex hull geometry of the raster excluding NODATA pixels."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9255
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_MinConvexHull</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>nband=NULL</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6846
+#: reference_raster.xml:9266
 #, no-c-format
-msgid "k = power factor, a real number between 0 and 1"
+msgid "Return the convex hull geometry of the raster excluding NODATA pixels. If <varname>nband</varname> is NULL, all bands of the raster are considered."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6863 reference_raster.xml:6912
+#: reference_raster.xml:9275
 #, no-c-format
-msgid "-- NEEDS EXAMPLE"
+msgid ""
+      "WITH foo AS (\n"
+      "        SELECT\n"
+      "                ST_SetValues(\n"
+      "                        ST_SetValues(\n"
+      "                                ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(9, 9, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 0, 0), 2, '8BUI', 1, 0),\n"
+      "                                1, 1, 1,\n"
+      "                                ARRAY[\n"
+      "                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                        [0, 0, 0, 1, 0, 0, 0, 0, 1],\n"
+      "                                        [0, 0, 0, 1, 1, 0, 0, 0, 0],\n"
+      "                                        [0, 0, 0, 1, 0, 0, 0, 0, 0],\n"
+      "                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                        [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                        [0, 0, 0, 0, 0, 0, 0, 0, 0]\n"
+      "                                ]::double precision[][]\n"
+      "                        ),\n"
+      "                        2, 1, 1,\n"
+      "                        ARRAY[\n"
+      "                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                [1, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+      "                                [0, 0, 0, 0, 1, 1, 0, 0, 0],\n"
+      "                                [0, 0, 0, 0, 0, 1, 0, 0, 0],\n"
+      "                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                [0, 0, 0, 0, 0, 0, 0, 0, 0],\n"
+      "                                [0, 0, 1, 0, 0, 0, 0, 0, 0]\n"
+      "                        ]::double precision[][]\n"
+      "                ) AS rast\n"
+      ")\n"
+      "SELECT\n"
+      "        ST_AsText(ST_ConvexHull(rast)) AS hull,\n"
+      "        ST_AsText(ST_MinConvexHull(rast)) AS mhull,\n"
+      "        ST_AsText(ST_MinConvexHull(rast, 1)) AS mhull_1,\n"
+      "        ST_AsText(ST_MinConvexHull(rast, 2)) AS mhull_2\n"
+      "FROM foo\n"
+      "\n"
+      "               hull               |                mhull                |               mhull_1               |               mhull_2               \n"
+      "----------------------------------+-------------------------------------+-------------------------------------+-------------------------------------\n"
+      " POLYGON((0 0,9 0,9 -9,0 -9,0 0)) | POLYGON((0 -3,9 -3,9 -9,0 -9,0 -3)) | POLYGON((3 -3,9 -3,9 -6,3 -6,3 -3)) | POLYGON((0 -3,6 -3,6 -9,0 -9,0 -3))"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6868
+#: reference_raster.xml:9280
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_MinDist4ma\"/>"
+msgid ", <xref linkend=\"RT_ST_ConvexHull\"/>, <xref linkend=\"ST_ConvexHull\"/>, <xref linkend=\"ST_AsText\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6877
+#: reference_raster.xml:9291
 #, no-c-format
-msgid "ST_MinDist4ma"
+msgid "ST_Polygon"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6878
+#: reference_raster.xml:9292
 #, no-c-format
-msgid "Raster processing function that returns the minimum distance (in number of pixels) between the pixel of interest and a neighboring pixel with value."
+msgid "Returns a multipolygon geometry formed by the union of pixels that have a pixel value that is not no data value. If no band number is specified, band num defaults to 1."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6883
+#: reference_raster.xml:9297
 #, no-c-format
-msgid "<funcdef>double precision <function>ST_MinDist4ma</function></funcdef> <paramdef><type>double precision[][]</type> <parameter>matrix</parameter></paramdef> <paramdef><type>text </type> <parameter>nodatamode</parameter></paramdef> <paramdef><type>text[]</type> <parameter>VARIADIC args</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_Polygon</function></funcdef> <paramdef><type>raster </type> <parameter>rast</parameter></paramdef> <paramdef choice=\"opt\"><type>integer </type> <parameter>band_num=1</parameter></paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6895
+#: reference_raster.xml:9307
 #, no-c-format
-msgid "Return the shortest distance (in number of pixels) between the pixel of interest and the closest pixel with value in the neighborhood."
+msgid "Availability: 0.1.6 Requires GDAL 1.7 or higher."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6898
+#: reference_raster.xml:9308
 #, no-c-format
-msgid "The intent of this function is to provide an informative data point that helps infer the usefulness of the pixel of interest's interpolated value from <xref linkend=\"RT_ST_InvDistWeight4ma\"/>. This function is particularly useful when the neighborhood is sparsely populated."
+msgid "Enhanced: 2.1.0 Improved Speed (fully C-Based) and the returning multipolygon is ensured to be valid."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6917
+#: reference_raster.xml:9309
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_InvDistWeight4ma\"/>"
+msgid "Changed: 2.1.0 In prior versions would sometimes return a polygon, changed to always return multipolygon."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9314
+#, no-c-format
+msgid ""
+      "-- by default no data band value is 0 or not set, so polygon will return a square polygon        \n"
+      "SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+      "FROM dummy_rast\n"
+      "WHERE rid = 2;\n"
+      "\n"
+      "geomwkt\n"
+      "--------------------------------------------\n"
+      "MULTIPOLYGON(((3427927.75 5793244,3427928 5793244,3427928 5793243.75,3427927.75 5793243.75,3427927.75 5793244)))\n"
+      "                 \n"
+      "                 \n"
+      "-- now we change the no data value of first band\n"
+      "UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,1,254)\n"
+      "WHERE rid = 2;\n"
+      "SELECt rid, ST_BandNoDataValue(rast)\n"
+      "from dummy_rast where rid = 2;\n"
+      "\n"
+      "-- ST_Polygon excludes the pixel value 254 and returns a multipolygon\n"
+      "SELECT ST_AsText(ST_Polygon(rast)) As geomwkt\n"
+      "FROM dummy_rast\n"
+      "WHERE rid = 2;\n"
+      "\n"
+      "geomwkt\n"
+      "---------------------------------------------------------\n"
+      "MULTIPOLYGON(((3427927.9 5793243.95,3427927.85 5793243.95,3427927.85 5793244,3427927.9 5793244,3427927.9 5793243.95)),((3427928 5793243.85,3427928 5793243.8,3427927.95 5793243.8,3427927.95 5793243.85,3427927.9 5793243.85,3427927.9 5793243.9,3427927.9 5793243.95,3427927.95 5793243.95,3427928 5793243.95,3427928 5793243.85)),((3427927.8 5793243.75,3427927.75 5793243.75,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.8 57932 [...]
+      "\n"
+      "-- Or if you want the no data value different for just one time\n"
+      "\n"
+      "SELECT ST_AsText(\n"
+      "        ST_Polygon(\n"
+      "                ST_SetBandNoDataValue(rast,1,252)\n"
+      "                )\n"
+      "        ) As geomwkt\n"
+      "FROM dummy_rast\n"
+      "WHERE rid =2;\n"
+      "\n"
+      "geomwkt\n"
+      "---------------------------------\n"
+      "MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 5793243.75,3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 5793243.8,3427927.75 5793243.8,3427927.75 5793243.85,3427927.75 5793243.9,3427927.75 5793244,3427927.8 5793244,3427927.85 5793244,3427927.9 5793244,3427928 5793244,3427928 5793243.95,3427928 5793243.85),(3427927.9 5793243.9,3427927.9 5793243.85,3427927.95 5793243.85,3427927.95 5793243.9,3427927.9 5793243.9)))"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:6927
+#: reference_raster.xml:9331
 #, no-c-format
 msgid "Raster Operators"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6930
+#: reference_raster.xml:9334
 #, no-c-format
 msgid "&&"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6932
+#: reference_raster.xml:9336
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding box."
 msgstr ""
 
-#. Tag: funcprototype
-#: reference_raster.xml:6937
+#. Tag: funcsynopsis
+#: reference_raster.xml:9340
 #, no-c-format
-msgid "<funcdef>boolean <function>&&</function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef>"
+msgid "<funcprototype> <funcdef>boolean <function>&&</function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>&&</function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> <type>geometry </type> <parameter>B</parameter> </paramdef> </funcprototype> <funcprototype> <funcde [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6958
+#: reference_raster.xml:9382
 #, no-c-format
-msgid "The <varname>&&</varname> operator returns <varname>TRUE</varname> if the bounding box of raster A intersects the bounding box of raster B."
+msgid "The <varname>&&</varname> operator returns <varname>TRUE</varname> if the bounding box of raster/geometr A intersects the bounding box of raster/geometr B."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:6960 reference_raster.xml:7939 reference_raster.xml:8040 reference_raster.xml:8133
+#: reference_raster.xml:9384 reference_raster.xml:9636 reference_raster.xml:10646 reference_raster.xml:10747 reference_raster.xml:10840
 #, no-c-format
 msgid "This operand will make use of any indexes that may be available on the rasters."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:6968
+#: reference_raster.xml:9393
 #, no-c-format
 msgid ""
       "SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As intersect\n"
@@ -8764,37 +11175,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:6974
+#: reference_raster.xml:9399
 #, no-c-format
 msgid "&<"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:6976
+#: reference_raster.xml:9401
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if A's bounding box is to the left of B's."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:6981
+#: reference_raster.xml:9406
 #, no-c-format
 msgid "<funcdef>boolean <function>&<</function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7002
+#: reference_raster.xml:9427
 #, no-c-format
 msgid "The <varname>&<</varname> operator returns <varname>TRUE</varname> if the bounding box of raster A overlaps or is to the left of the bounding box of raster B, or more accurately, overlaps or is NOT to the right of the bounding box of raster B."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7006 reference_raster.xml:7051
+#: reference_raster.xml:9431 reference_raster.xml:9476
 #, no-c-format
 msgid "This operand will make use of any indexes that may be available on the geometries."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7013
+#: reference_raster.xml:9438
 #, no-c-format
 msgid ""
       "SELECT A.rid As a_rid, B.rid As b_rid, A.rast &< B.rast As overleft\n"
@@ -8814,31 +11225,31 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7019
+#: reference_raster.xml:9444
 #, no-c-format
 msgid "&>"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7021
+#: reference_raster.xml:9446
 #, no-c-format
 msgid "Returns <varname>TRUE</varname> if A's bounding box is to the right of B's."
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_raster.xml:7026
+#: reference_raster.xml:9451
 #, no-c-format
 msgid "<funcdef>boolean <function>&></function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef>"
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7047
+#: reference_raster.xml:9472
 #, no-c-format
 msgid "The <varname>&></varname> operator returns <varname>TRUE</varname> if the bounding box of raster A overlaps or is to the right of the bounding box of raster B, or more accurately, overlaps or is NOT to the left of the bounding box of raster B."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7058
+#: reference_raster.xml:9483
 #, no-c-format
 msgid ""
       "SELECT A.rid As a_rid, B.rid As b_rid, A.rast &> B.rast As overright\n"
@@ -8857,56 +11268,196 @@ msgid ""
       "     1 |     1 | t"
 msgstr ""
 
+#. Tag: refname
+#: reference_raster.xml:9489
+#, no-c-format
+msgid "="
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9491
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses double precision bounding box."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9496
+#, no-c-format
+msgid "<funcdef>boolean <function>=</function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9517
+#, no-c-format
+msgid "The <varname>=</varname> operator returns <varname>TRUE</varname> if the bounding box of raster A is the same as the bounding box of raster B. PostgreSQL uses the =, <, and > operators defined for rasters to perform internal orderings and comparison of rasters (ie. in a GROUP BY or ORDER BY clause)."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9521
+#, no-c-format
+msgid "This operand will NOT make use of any indexes that may be available on the rasters. Use <xref linkend=\"RT_Raster_Same\"/> instead. This operator exists mostly so one can group by the raster column."
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9537
+#, no-c-format
+msgid "<refname>@</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9539
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is contained by B's. Uses double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9543
+#, no-c-format
+msgid "<funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>@</function></funcdef> <paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <functio [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9586
+#, no-c-format
+msgid "The <varname>@</varname> operator returns <varname>TRUE</varname> if the bounding box of raster/geometry A is contained by bounding box of raster/geometr B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9589 reference_raster.xml:9709
+#, no-c-format
+msgid "This operand will use spatial indexes on the rasters."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9591
+#, no-c-format
+msgid "Availability: 2.0.0 raster @ raster, raster @ geometry introduced"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9592
+#, no-c-format
+msgid "Availability: 2.0.5 geometry @ raster introduced"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9605
+#, no-c-format
+msgid "<refname>~=</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9607
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is the same as B's."
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:9612
+#, no-c-format
+msgid "<funcdef>boolean <function>~=</function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9633
+#, no-c-format
+msgid "The <varname>~=</varname> operator returns <varname>TRUE</varname> if the bounding box of raster A is the same as the bounding box of raster B."
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9645
+#, no-c-format
+msgid "Very useful usecase is for taking two sets of single band rasters that are of the same chunk but represent different themes and creating a multi-band raster"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:9646
+#, no-c-format
+msgid ""
+      "SELECT ST_AddBand(prec.rast, alt.rast) As new_rast\n"
+      "    FROM prec INNER JOIN alt ON (prec.rast ~= alt.rast);"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9651
+#, no-c-format
+msgid ", <xref linkend=\"RT_Raster_EQ\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:9657
+#, no-c-format
+msgid "<refname>~</refname>"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:9659
+#, no-c-format
+msgid "Returns <varname>TRUE</varname> if A's bounding box is contains B's. Uses double precision bounding box."
+msgstr ""
+
+#. Tag: funcsynopsis
+#: reference_raster.xml:9663
+#, no-c-format
+msgid "<funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> <type>raster </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>~</function></funcdef> <paramdef> <type>geometry </type> <parameter>A</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>B</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <functio [...]
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:9706
+#, no-c-format
+msgid "The <varname>~</varname> operator returns <varname>TRUE</varname> if the bounding box of raster/geometry A is contains bounding box of raster/geometr B."
+msgstr ""
+
 #. Tag: title
-#: reference_raster.xml:7064
+#: reference_raster.xml:9724
 #, no-c-format
 msgid "Raster and Raster Band Spatial Relationships"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7068
+#: reference_raster.xml:9728
 #, no-c-format
 msgid "ST_Contains"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7069
+#: reference_raster.xml:9729
 #, no-c-format
 msgid "Return true if no points of raster rastB lie in the exterior of raster rastA and at least one point of the interior of rastB lies in the interior of rastA."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7075
+#: reference_raster.xml:9735
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_Contains</function></funcdef> <paramdef> <type>ras [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7114
+#: reference_raster.xml:9774
 #, no-c-format
 msgid "Raster rastA contains rastB if and only if no points of rastB lie in the exterior of rastA and at least one point of the interior of rastB lies in the interior of rastA. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7119 reference_raster.xml:7212 reference_raster.xml:7293 reference_raster.xml:7374 reference_raster.xml:7584 reference_raster.xml:7668 reference_raster.xml:7748
+#: reference_raster.xml:9779 reference_raster.xml:9872 reference_raster.xml:9953 reference_raster.xml:10034 reference_raster.xml:10244 reference_raster.xml:10328 reference_raster.xml:10408
 #, no-c-format
 msgid "This function will make use of any indexes that may be available on the rasters."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7125
+#: reference_raster.xml:9785
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_Contains(ST_Polygon(raster), geometry) or ST_Contains(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7131
+#: reference_raster.xml:9791
 #, no-c-format
 msgid "ST_Contains() is the inverse of ST_Within(). So, ST_Contains(rastA, rastB) implies ST_Within(rastB, rastA)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7142
+#: reference_raster.xml:9802
 #, no-c-format
 msgid ""
       "-- specified band numbers\n"
@@ -8920,7 +11471,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7144
+#: reference_raster.xml:9804
 #, no-c-format
 msgid ""
       "-- no band numbers specified\n"
@@ -8932,49 +11483,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7148
+#: reference_raster.xml:9808
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Within\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7157
+#: reference_raster.xml:9817
 #, no-c-format
 msgid "ST_ContainsProperly"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7158
+#: reference_raster.xml:9818
 #, no-c-format
 msgid "Return true if rastB intersects the interior of rastA but not the boundary or exterior of rastA."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7164
+#: reference_raster.xml:9824
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_ContainsProperly</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_ContainsProperly</function></funcdef> <par [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7203
+#: reference_raster.xml:9863
 #, no-c-format
 msgid "Raster rastA contains properly rastB if rastB intersects the interior of rastA but not the boundary or exterior of rastA. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7207
+#: reference_raster.xml:9867
 #, no-c-format
 msgid "Raster rastA does not contain properly itself but does contain itself."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7218
+#: reference_raster.xml:9878
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_ContainsProperly(ST_Polygon(raster), geometry) or ST_ContainsProperly(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7229
+#: reference_raster.xml:9889
 #, no-c-format
 msgid ""
       "SELECT r1.rid, r2.rid, ST_ContainsProperly(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
@@ -8986,43 +11537,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7233
+#: reference_raster.xml:9893
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Contains\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7242
+#: reference_raster.xml:9902
 #, no-c-format
 msgid "ST_Covers"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7243
+#: reference_raster.xml:9903
 #, no-c-format
 msgid "Return true if no points of raster rastB lie outside raster rastA."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7249
+#: reference_raster.xml:9909
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_Covers</function></funcdef> <paramdef> <type>raster  [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7288
+#: reference_raster.xml:9948
 #, no-c-format
 msgid "Raster rastA covers rastB if and only if no points of rastB lie in the exterior of rastA. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7299
+#: reference_raster.xml:9959
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_Covers(ST_Polygon(raster), geometry) or ST_Covers(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7310
+#: reference_raster.xml:9970
 #, no-c-format
 msgid ""
       "SELECT r1.rid, r2.rid, ST_Covers(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
@@ -9034,43 +11585,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7314
+#: reference_raster.xml:9974
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_CoveredBy\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7323
+#: reference_raster.xml:9983
 #, no-c-format
 msgid "ST_CoveredBy"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7324
+#: reference_raster.xml:9984
 #, no-c-format
 msgid "Return true if no points of raster rastA lie outside raster rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7330
+#: reference_raster.xml:9990
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_CoveredBy</function></funcdef> <paramdef> <type>r [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7369
+#: reference_raster.xml:10029
 #, no-c-format
 msgid "Raster rastA is covered by rastB if and only if no points of rastA lie in the exterior of rastB. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7380
+#: reference_raster.xml:10040
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_CoveredBy(ST_Polygon(raster), geometry) or ST_CoveredBy(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7391
+#: reference_raster.xml:10051
 #, no-c-format
 msgid ""
       "SELECT r1.rid, r2.rid, ST_CoveredBy(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
@@ -9082,49 +11633,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7395
+#: reference_raster.xml:10055
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Covers\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7404
+#: reference_raster.xml:10064
 #, no-c-format
 msgid "ST_Disjoint"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7405
+#: reference_raster.xml:10065
 #, no-c-format
 msgid "Return true if raster rastA does not spatially intersect rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7411
+#: reference_raster.xml:10071
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_Disjoint</function></funcdef> <paramdef> <type>ras [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7450
+#: reference_raster.xml:10110
 #, no-c-format
 msgid "Raster rastA and rastB are disjointed if they do not share any space together. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7455
+#: reference_raster.xml:10115
 #, no-c-format
 msgid "This function does NOT use any indexes."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7461
+#: reference_raster.xml:10121
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_Disjoint(ST_Polygon(raster), geometry)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7472
+#: reference_raster.xml:10132
 #, no-c-format
 msgid ""
       "-- rid = 1 has no bands, hence the NOTICE and the NULL value for st_disjoint\n"
@@ -9138,7 +11689,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7474
+#: reference_raster.xml:10134
 #, no-c-format
 msgid ""
       "-- this time, without specifying band numbers\n"
@@ -9151,43 +11702,43 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7487
+#: reference_raster.xml:10147
 #, no-c-format
 msgid "ST_Intersects"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7488
+#: reference_raster.xml:10148
 #, no-c-format
 msgid "Return true if raster rastA spatially intersects raster rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7492
+#: reference_raster.xml:10152
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Intersects</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_Intersects</function></funcdef> <paramdef> <type [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7579
+#: reference_raster.xml:10239
 #, no-c-format
 msgid "Return true if raster rastA spatially intersects raster rastB. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7589
+#: reference_raster.xml:10249
 #, no-c-format
 msgid "Enhanced: 2.0.0 support raster/raster intersects was introduced."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7594
+#: reference_raster.xml:10254
 #, no-c-format
 msgid "Changed: 2.1.0 The behavior of the ST_Intersects(raster, geometry) variants changed to match that of ST_Intersects(geometry, raster)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7603
+#: reference_raster.xml:10263
 #, no-c-format
 msgid ""
       "-- different bands of same raster\n"
@@ -9199,43 +11750,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7608
+#: reference_raster.xml:10268
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Disjoint\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7617
+#: reference_raster.xml:10277
 #, no-c-format
 msgid "ST_Overlaps"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7618
+#: reference_raster.xml:10278
 #, no-c-format
 msgid "Return true if raster rastA and rastB intersect but one does not completely contain the other."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7624
+#: reference_raster.xml:10284
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_Overlaps</function></funcdef> <paramdef> <type>ras [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7663
+#: reference_raster.xml:10323
 #, no-c-format
 msgid "Return true if raster rastA spatially overlaps raster rastB. This means that rastA and rastB intersect but one does not completely contain the other. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7674
+#: reference_raster.xml:10334
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_Overlaps(ST_Polygon(raster), geometry)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7685
+#: reference_raster.xml:10345
 #, no-c-format
 msgid ""
       "-- comparing different bands of same raster\n"
@@ -9247,37 +11798,37 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7697
+#: reference_raster.xml:10357
 #, no-c-format
 msgid "ST_Touches"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7698
+#: reference_raster.xml:10358
 #, no-c-format
 msgid "Return true if raster rastA and rastB have at least one point in common but their interiors do not intersect."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7704
+#: reference_raster.xml:10364
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Touches</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_Touches</function></funcdef> <paramdef> <type>raste [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7743
+#: reference_raster.xml:10403
 #, no-c-format
 msgid "Return true if raster rastA spatially touches raster rastB. This means that rastA and rastB have at least one point in common but their interiors do not intersect. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7754
+#: reference_raster.xml:10414
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_Touches(ST_Polygon(raster), geometry)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7765
+#: reference_raster.xml:10425
 #, no-c-format
 msgid ""
       "SELECT r1.rid, r2.rid, ST_Touches(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
@@ -9289,49 +11840,49 @@ msgid ""
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7777
+#: reference_raster.xml:10437
 #, no-c-format
 msgid "ST_SameAlignment"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7779
+#: reference_raster.xml:10439
 #, no-c-format
-msgid "Returns true if rasters have same skew, scale, spatial ref and false if they don't with notice detailing issue."
+msgid "Returns true if rasters have same skew, scale, spatial ref, and offset (pixels can be put on same grid without cutting into pixels) and false if they don't with notice detailing issue."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7783
+#: reference_raster.xml:10443
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_SameAlignment</function></funcdef> <paramdef> <type>double precision </type> <parameter>ulx1</parameter> </paramdef> <paramdef> <type>double precision </type> <parameter>uly1</parameter> </paramd [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7862
+#: reference_raster.xml:10522
 #, no-c-format
 msgid "Non-Aggregate version (Variants 1 and 2): Returns true if the two rasters (either provided directly or made using the values for upperleft, scale, skew and srid) have the same scale, skew, srid and at least one of any of the four corners of any pixel of one raster falls on any corner of the grid of the other raster. Returns false if they don't and a NOTICE detailing the alignment issue."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7866
+#: reference_raster.xml:10526
 #, no-c-format
 msgid "Aggregate version (Variant 3): From a set of rasters, returns true if all rasters in the set are aligned. The ST_SameAlignment() function is an \"aggregate\" function in the terminology of PostgreSQL. That means that it operates on rows of data, in the same way the SUM() and AVG() functions do."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7871
+#: reference_raster.xml:10531
 #, no-c-format
 msgid "Enhanced: 2.1.0 addition of Aggegrate variant"
 msgstr ""
 
 #. Tag: title
-#: reference_raster.xml:7875
+#: reference_raster.xml:10535
 #, no-c-format
 msgid "Examples: Rasters"
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7877
+#: reference_raster.xml:10537
 #, no-c-format
 msgid ""
       "SELECT ST_SameAlignment(\n"
@@ -9345,7 +11896,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7878
+#: reference_raster.xml:10538
 #, no-c-format
 msgid ""
       "SELECT ST_SameAlignment(A.rast,b.rast)\n"
@@ -9362,49 +11913,106 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7882
+#: reference_raster.xml:10542
 #, no-c-format
-msgid ", <xref linkend=\"RT_ST_MakeEmptyRaster\"/>"
+msgid ", <xref linkend=\"RT_ST_NotSameAlignmentReason\"/>, <xref linkend=\"RT_ST_MakeEmptyRaster\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7888
+#: reference_raster.xml:10552
+#, no-c-format
+msgid "ST_NotSameAlignmentReason"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_raster.xml:10553
+#, no-c-format
+msgid "<refpurpose>Returns text stating if rasters are aligned and if not aligned, a reason why.</refpurpose>"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_raster.xml:10558
+#, no-c-format
+msgid "<funcdef>text <function>ST_NotSameAlignmentReason</function></funcdef> <paramdef><type>raster </type><parameter>rastA</parameter></paramdef> <paramdef><type>raster </type><parameter>rastB</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10568
+#, no-c-format
+msgid "<para>Returns text stating if rasters are aligned and if not aligned, a reason why.</para>"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10571
+#, no-c-format
+msgid "If there are several reasons why the rasters are not aligned, only one reason (the first test to fail) will be returned."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_raster.xml:10581
+#, no-c-format
+msgid ""
+      "SELECT\n"
+      "        ST_SameAlignment(\n"
+      "                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+      "                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+      "        ),\n"
+      "        ST_NotSameAlignmentReason(\n"
+      "                ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),\n"
+      "                ST_MakeEmptyRaster(1, 1, 0, 0, 1.1, 1.1, 0, 0)\n"
+      "        )\n"
+      ";\n"
+      "\n"
+      " st_samealignment |            st_notsamealignmentreason            \n"
+      "------------------+-------------------------------------------------\n"
+      " f                | The rasters have different scales on the X axis\n"
+      "(1 row)"
+msgstr ""
+
+#. Tag: para
+#: reference_raster.xml:10586
+#, no-c-format
+msgid ", <xref linkend=\"RT_ST_SameAlignment\"/>"
+msgstr ""
+
+#. Tag: refname
+#: reference_raster.xml:10595
 #, no-c-format
 msgid "ST_Within"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7889
+#: reference_raster.xml:10596
 #, no-c-format
 msgid "Return true if no points of raster rastA lie in the exterior of raster rastB and at least one point of the interior of rastA lies in the interior of rastB."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7895
+#: reference_raster.xml:10602
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_Within</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> </funcprototype> <funcprototype> <funcdef>boolean <function>ST_Within</function></funcdef> <paramdef> <type>raster  [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7934
+#: reference_raster.xml:10641
 #, no-c-format
 msgid "Raster rastA is within rastB if and only if no points of rastA lie in the exterior of rastB and at least one point of the interior of rastA lies in the interior of rastB. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7945
+#: reference_raster.xml:10652
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_Within(ST_Polygon(raster), geometry) or ST_Within(geometry, ST_Polygon(raster))."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7951
+#: reference_raster.xml:10658
 #, no-c-format
 msgid "ST_Within() is the inverse of ST_Contains(). So, ST_Within(rastA, rastB) implies ST_Contains(rastB, rastA)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:7962
+#: reference_raster.xml:10669
 #, no-c-format
 msgid ""
       "SELECT r1.rid, r2.rid, ST_Within(r1.rast, 1, r2.rast, 1) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
@@ -9416,49 +12024,49 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:7966
+#: reference_raster.xml:10673
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_Contains\"/>, <xref linkend=\"RT_ST_DWithin\"/>, <xref linkend=\"RT_ST_DFullyWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:7977
+#: reference_raster.xml:10684
 #, no-c-format
 msgid "ST_DWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:7978
+#: reference_raster.xml:10685
 #, no-c-format
 msgid "Return true if rasters rastA and rastB are within the specified distance of each other."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:7984
+#: reference_raster.xml:10691
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_DWithin</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> <paramdef> <type>double precision </type> <parameter>distance_of_srid</parameter> </paramdef> </funcprototype> <fu [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8031
+#: reference_raster.xml:10738
 #, no-c-format
 msgid "Return true if rasters rastA and rastB are within the specified distance of each other. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8035 reference_raster.xml:8128
+#: reference_raster.xml:10742 reference_raster.xml:10835
 #, no-c-format
 msgid "The distance is specified in units defined by the spatial reference system of the rasters. For this function to make sense, the source rasters must both be of the same coordinate projection, having the same SRID."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8046
+#: reference_raster.xml:10753
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_DWithin(ST_Polygon(raster), geometry)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:8057
+#: reference_raster.xml:10764
 #, no-c-format
 msgid ""
       "SELECT r1.rid, r2.rid, ST_DWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
@@ -9470,43 +12078,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8061
+#: reference_raster.xml:10768
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_DFullyWithin\"/>"
 msgstr ""
 
 #. Tag: refname
-#: reference_raster.xml:8070
+#: reference_raster.xml:10777
 #, no-c-format
 msgid "ST_DFullyWithin"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_raster.xml:8071
+#: reference_raster.xml:10778
 #, no-c-format
 msgid "Return true if rasters rastA and rastB are fully within the specified distance of each other."
 msgstr ""
 
 #. Tag: funcsynopsis
-#: reference_raster.xml:8077
+#: reference_raster.xml:10784
 #, no-c-format
 msgid "<funcprototype> <funcdef>boolean <function>ST_DFullyWithin</function></funcdef> <paramdef> <type>raster </type> <parameter>rastA</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandA</parameter> </paramdef> <paramdef> <type>raster </type> <parameter>rastB</parameter> </paramdef> <paramdef> <type>integer </type> <parameter>nbandB</parameter> </paramdef> <paramdef> <type>double precision </type> <parameter>distance_of_srid</parameter> </paramdef> </funcprototype [...]
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8124
+#: reference_raster.xml:10831
 #, no-c-format
 msgid "Return true if rasters rastA and rastB are fully within the specified distance of each other. If the band number is not provided (or set to NULL), only the convex hull of the raster is considered in the test. If the band number is provided, only those pixels with value (not NODATA) are considered in the test."
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8139
+#: reference_raster.xml:10846
 #, no-c-format
 msgid "To test the spatial relationship of a raster and a geometry, use ST_Polygon on the raster, e.g. ST_DFullyWithin(ST_Polygon(raster), geometry)."
 msgstr ""
 
 #. Tag: programlisting
-#: reference_raster.xml:8150
+#: reference_raster.xml:10857
 #, no-c-format
 msgid ""
       "SELECT r1.rid, r2.rid, ST_DFullyWithin(r1.rast, 1, r2.rast, 1, 3.14) FROM dummy_rast r1 CROSS JOIN dummy_rast r2 WHERE r1.rid = 2;\n"
@@ -9518,7 +12126,7 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: reference_raster.xml:8154
+#: reference_raster.xml:10861
 #, no-c-format
 msgid ", <xref linkend=\"RT_ST_DWithin\"/>"
 msgstr ""
diff --git a/doc/po/templates/reference_sfcgal.xml.pot b/doc/po/templates/reference_sfcgal.xml.pot
index 5ff1c7c..b7560b0 100644
--- a/doc/po/templates/reference_sfcgal.xml.pot
+++ b/doc/po/templates/reference_sfcgal.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2013-05-12 08:39+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -14,183 +14,514 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#. Tag: para
+#: reference_sfcgal.xml:5
+#, no-c-format
+msgid "SFCGAL is a C++ wrapper library around CGAL that provides advanced 2D and 3D functions. For robustness, geometry coordinates have an exact rational number representation."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:9
+#, no-c-format
+msgid "Installation instructions of the library can be found on SFCGAL home page <ulink url=\"http://www.sfcgal.org\">http://www.sfcgal.org</ulink>. To load the functions execute postgis/sfcgal.sql"
+msgstr ""
+
 #. Tag: title
-#: reference_sfcgal.xml:4
+#: reference_sfcgal.xml:15
+#, no-c-format
+msgid "SFCGAL Functions"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:18
+#, no-c-format
+msgid "postgis_sfcgal_version"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:20
+#, no-c-format
+msgid "Returns the version of SFCGAL in use"
+msgstr ""
+
+#. Tag: funcdef
+#: reference_sfcgal.xml:26
+#, no-c-format
+msgid "text <function>postgis_sfcgal_version</function>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:33 reference_sfcgal.xml:65 reference_sfcgal.xml:158 reference_sfcgal.xml:218 reference_sfcgal.xml:247 reference_sfcgal.xml:276 reference_sfcgal.xml:305 reference_sfcgal.xml:335 reference_sfcgal.xml:377 reference_sfcgal.xml:405
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:35 reference_sfcgal.xml:67 reference_sfcgal.xml:160 reference_sfcgal.xml:249 reference_sfcgal.xml:278 reference_sfcgal.xml:310 reference_sfcgal.xml:337 reference_sfcgal.xml:379 reference_sfcgal.xml:407
 #, no-c-format
-msgid "Using SFCGAL Advanced 2D/3D functions"
+msgid "Availability: 2.1.0"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:5
+#: reference_sfcgal.xml:36 reference_sfcgal.xml:68 reference_sfcgal.xml:161 reference_sfcgal.xml:221 reference_sfcgal.xml:250 reference_sfcgal.xml:279 reference_sfcgal.xml:311 reference_sfcgal.xml:338 reference_sfcgal.xml:380 reference_sfcgal.xml:408
 #, no-c-format
-msgid "TODO Introduction part"
+msgid "&sfcgal_required;"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:8
+#: reference_sfcgal.xml:37 reference_sfcgal.xml:69 reference_sfcgal.xml:162 reference_sfcgal.xml:222 reference_sfcgal.xml:251 reference_sfcgal.xml:280 reference_sfcgal.xml:312 reference_sfcgal.xml:339 reference_sfcgal.xml:381 reference_sfcgal.xml:409
 #, no-c-format
-msgid "TODO Install part"
+msgid "&Z_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:38 reference_sfcgal.xml:70 reference_sfcgal.xml:163 reference_sfcgal.xml:223 reference_sfcgal.xml:252 reference_sfcgal.xml:281 reference_sfcgal.xml:340 reference_sfcgal.xml:382 reference_sfcgal.xml:410
+#, no-c-format
+msgid "&P_support;"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:39 reference_sfcgal.xml:71 reference_sfcgal.xml:164 reference_sfcgal.xml:224 reference_sfcgal.xml:253 reference_sfcgal.xml:282 reference_sfcgal.xml:341 reference_sfcgal.xml:383 reference_sfcgal.xml:411
+#, no-c-format
+msgid "&T_support;"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:14
+#: reference_sfcgal.xml:47
 #, no-c-format
 msgid "ST_Extrude"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:16
+#: reference_sfcgal.xml:49
 #, no-c-format
 msgid "Extrude a surface to a related volume"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:21
+#: reference_sfcgal.xml:54
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Extrude</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef> <paramdef><type>float</type> <parameter>x</parameter></paramdef> <paramdef><type>float</type> <parameter>y</parameter></paramdef> <paramdef><type>float</type> <parameter>z</parameter></paramdef>"
 msgstr ""
 
 #. Tag: title
-#: reference_sfcgal.xml:32 reference_sfcgal.xml:61 reference_sfcgal.xml:90 reference_sfcgal.xml:119 reference_sfcgal.xml:148 reference_sfcgal.xml:177 reference_sfcgal.xml:206
+#: reference_sfcgal.xml:74 reference_sfcgal.xml:167 reference_sfcgal.xml:414
 #, no-c-format
-msgid "Description"
+msgid "Examples"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:34 reference_sfcgal.xml:63 reference_sfcgal.xml:92 reference_sfcgal.xml:121 reference_sfcgal.xml:150 reference_sfcgal.xml:179 reference_sfcgal.xml:208
+#: reference_sfcgal.xml:75
 #, no-c-format
-msgid "Availability"
+msgid "3D images were generated using the PostGIS <xref linkend=\"ST_AsX3D\"/> and rendering in HTML using <ulink url=\"http://www.x3dom.org\">X3Dom HTML Javascript redering library</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:82
+#, no-c-format
+msgid ""
+      "SELECT ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+      "  50, 'quad_segs=2'),0,0,30);"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:35 reference_sfcgal.xml:64 reference_sfcgal.xml:93 reference_sfcgal.xml:122 reference_sfcgal.xml:151 reference_sfcgal.xml:180 reference_sfcgal.xml:209
+#: reference_sfcgal.xml:88
 #, no-c-format
-msgid "&sfcgal_required;"
+msgid "Original octagon formed from buffering point"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:93
+#, no-c-format
+msgid ""
+      "ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),\n"
+      " 50, 'quad_segs=2'),0,0,30);"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:36 reference_sfcgal.xml:65 reference_sfcgal.xml:94 reference_sfcgal.xml:123 reference_sfcgal.xml:152 reference_sfcgal.xml:181 reference_sfcgal.xml:210
+#: reference_sfcgal.xml:99
 #, no-c-format
-msgid "&Z_support;"
+msgid "Hexagon extruded 30 units along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:107
+#, no-c-format
+msgid "SELECT ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)')"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:37 reference_sfcgal.xml:66 reference_sfcgal.xml:95 reference_sfcgal.xml:124 reference_sfcgal.xml:153 reference_sfcgal.xml:182 reference_sfcgal.xml:211
+#: reference_sfcgal.xml:113
 #, no-c-format
-msgid "&P_support;"
+msgid "Original linestring"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:118
+#, no-c-format
+msgid ""
+      "SELECT ST_Extrude(\n"
+      " ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)'),0,0,10));"
 msgstr ""
 
 #. Tag: para
-#: reference_sfcgal.xml:38 reference_sfcgal.xml:67 reference_sfcgal.xml:96 reference_sfcgal.xml:125 reference_sfcgal.xml:154 reference_sfcgal.xml:183 reference_sfcgal.xml:212
+#: reference_sfcgal.xml:124
 #, no-c-format
-msgid "&T_support;"
+msgid "LineString Extruded along Z produces a PolyhedralSurfaceZ"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:134
+#, no-c-format
+msgid "See Also"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:46
+#: reference_sfcgal.xml:143
 #, no-c-format
 msgid "ST_StraightSkeleton"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:48
+#: reference_sfcgal.xml:145
 #, no-c-format
 msgid "Compute a straight skeleton from a geometry"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:53
+#: reference_sfcgal.xml:150
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_StraightSkeleton</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
+#. Tag: programlisting
+#: reference_sfcgal.xml:168
+#, no-c-format
+msgid "SELECT ST_StraightSkeleton(ST_GeomFromText('POLYGON (( 190 190, 10 190, 10 10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:179 reference_sfcgal.xml:453
+#, no-c-format
+msgid "Original polygon"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:188
+#, no-c-format
+msgid "Straight Skeleton of polygon"
+msgstr ""
+
 #. Tag: refname
-#: reference_sfcgal.xml:75
+#: reference_sfcgal.xml:203
 #, no-c-format
 msgid "ST_IsPlanar"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:77
+#: reference_sfcgal.xml:205
 #, no-c-format
 msgid "Check if a surface is or not planar"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:82
+#: reference_sfcgal.xml:210
 #, no-c-format
 msgid "<funcdef>boolean <function>ST_IsPlanar</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
+#. Tag: para
+#: reference_sfcgal.xml:220
+#, no-c-format
+msgid "Availability: 2.2.0: This was documented in 2.1.0 but got accidentally left out in 2.1 release."
+msgstr ""
+
 #. Tag: refname
-#: reference_sfcgal.xml:104
+#: reference_sfcgal.xml:232
 #, no-c-format
 msgid "ST_Orientation"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:106
+#: reference_sfcgal.xml:234
 #, no-c-format
 msgid "Determine surface orientation"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:111
+#: reference_sfcgal.xml:239
 #, no-c-format
 msgid "<funcdef>integer <function>ST_Orientation</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:133
+#: reference_sfcgal.xml:261
 #, no-c-format
 msgid "ST_ForceLHR"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:135
+#: reference_sfcgal.xml:263
 #, no-c-format
 msgid "Force LHR orientation"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:140
+#: reference_sfcgal.xml:268
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_ForceLHR</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:161
+#: reference_sfcgal.xml:289
 #, no-c-format
 msgid "ST_MinkowskiSum"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:163
+#: reference_sfcgal.xml:291
 #, no-c-format
-msgid "Perform Minkowski sum"
+msgid "Performs Minkowski sum"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:168
+#: reference_sfcgal.xml:296
 #, no-c-format
-msgid "<funcdef>geometry <function>ST_Minkowski</function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgid "<funcdef>geometry <function>ST_MinkowskiSum</function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:307
+#, no-c-format
+msgid "This function performs a 2D minkowski sum of a point, line or polygon with a polygon."
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:308
+#, no-c-format
+msgid "The first parameter can be any 2D geometry (point, linestring, polygon). If a 3D geometry is passed, it will be converted to 2D by forcing Z to 0, leading to possible cases of invalidity. The second parameter must be a 2D polygon."
 msgstr ""
 
 #. Tag: refname
-#: reference_sfcgal.xml:191
+#: reference_sfcgal.xml:319
+#, no-c-format
+msgid "ST_3DIntersection"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:321
+#, no-c-format
+msgid "Perform 3D intersection"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:326
+#, no-c-format
+msgid "<funcdef>geometry <function>ST_3DIntersection</function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef> <paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>"
+msgstr ""
+
+#. Tag: title
+#: reference_sfcgal.xml:345
+#, no-c-format
+msgid "Examples: 3D linestring and Polygon"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:346
+#, no-c-format
+msgid ""
+      "SELECT ST_AsText(ST_3DIntersection(linestring, polygon)) As wkt\n"
+      "FROM  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 10)') AS linestring\n"
+      " CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') AS polygon;\n"
+      "\n"
+      "              wkt\n"
+      "--------------------------------\n"
+      " LINESTRING Z (1 1 8,0.5 0.5 8)"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:348
+#, no-c-format
+msgid "Cube (closed Polyhedral Surface) and Polygon Z"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:349
+#, no-c-format
+msgid ""
+      "SELECT ST_AsText(ST_3DIntersection(\n"
+      "                ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
+      "        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+      "        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+      "        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'), \n"
+      "        'POLYGON Z ((0 0 0, 0 0 0.5, 0 0.5 0.5, 0 0.5 0, 0 0 0))'::geometry))"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:350
+#, no-c-format
+msgid "TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),((0 0.5 0,0 0 0,0 0.5 0.5,0 0.5 0)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:352
+#, no-c-format
+msgid "Intersection of 2 solids that result in volumetric intersection is also a solid (ST_Dimension returns 3)"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:353
+#, no-c-format
+msgid ""
+      "SELECT ST_AsText(ST_3DIntersection( ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),0,0,30),\n"
+      " ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),2,0,10) ));"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:354
+#, no-c-format
+msgid ""
+      "POLYHEDRALSURFACE Z (((13.3333333333333 13.3333333333333 10,20 20 0,20 20 10,13.3333333333333 13.3333333333333 10)),\n"
+      "         ((20 20 10,16.6666666666667 23.3333333333333 10,13.3333333333333 13.3333333333333 10,20 20 10)),\n"
+      "         ((20 20 0,16.6666666666667 23.3333333333333 10,20 20 10,20 20 0)),\n"
+      "         ((13.3333333333333 13.3333333333333 10,10 10 0,20 20 0,13.3333333333333 13.3333333333333 10)),\n"
+      "         ((16.6666666666667 23.3333333333333 10,12 28 10,13.3333333333333 13.3333333333333 10,16.6666666666667 23.3333333333333 10)),\n"
+      "         ((20 20 0,9.99999999999995 30 0,16.6666666666667 23.3333333333333 10,20 20 0)),\n"
+      "         ((10 10 0,9.99999999999995 30 0,20 20 0,10 10 0)),((13.3333333333333 13.3333333333333 10,12 12 10,10 10 0,13.3333333333333 13.3333333333333 10)),\n"
+      "         ((12 28 10,12 12 10,13.3333333333333 13.3333333333333 10,12 28 10)),\n"
+      "         ((16.6666666666667 23.3333333333333 10,9.99999999999995 30 0,12 28 10,16.6666666666667 23.3333333333333 10)),\n"
+      "         ((10 10 0,0 20 0,9.99999999999995 30 0,10 10 0)),\n"
+      "         ((12 12 10,11 11 10,10 10 0,12 12 10)),((12 28 10,11 11 10,12 12 10,12 28 10)),\n"
+      "         ((9.99999999999995 30 0,11 29 10,12 28 10,9.99999999999995 30 0)),((0 20 0,2 20 10,9.99999999999995 30 0,0 20 0)),\n"
+      "         ((10 10 0,2 20 10,0 20 0,10 10 0)),((11 11 10,2 20 10,10 10 0,11 11 10)),((12 28 10,11 29 10,11 11 10,12 28 10)),\n"
+      "         ((9.99999999999995 30 0,2 20 10,11 29 10,9.99999999999995 30 0)),((11 11 10,11 29 10,2 20 10,11 11 10)))"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:362
+#, no-c-format
+msgid "ST_3DArea"
+msgstr ""
+
+#. Tag: refpurpose
+#: reference_sfcgal.xml:364
+#, no-c-format
+msgid "Computes area of 3D geometries"
+msgstr ""
+
+#. Tag: funcprototype
+#: reference_sfcgal.xml:369
+#, no-c-format
+msgid "<funcdef>float<function>ST_3DArea</function></funcdef> <paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>"
+msgstr ""
+
+#. Tag: refname
+#: reference_sfcgal.xml:390
 #, no-c-format
 msgid "ST_Tesselate"
 msgstr ""
 
 #. Tag: refpurpose
-#: reference_sfcgal.xml:193
+#: reference_sfcgal.xml:392
 #, no-c-format
-msgid "Perform surface Tesselation"
+msgid "Perform surface Tesselation of a polygon or polyhedralsurface and returns as a TIN or collection of TINS"
 msgstr ""
 
 #. Tag: funcprototype
-#: reference_sfcgal.xml:198
+#: reference_sfcgal.xml:397
 #, no-c-format
 msgid "<funcdef>geometry <function>ST_Tesselate</function></funcdef> <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>"
 msgstr ""
 
+#. Tag: para
+#: reference_sfcgal.xml:406
+#, no-c-format
+msgid "Takes as input a surface such a MULTI(POLYGON) or POLYHEDRALSURFACE and returns a TIN representation via the process of tesselation using triangles."
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:420
+#, no-c-format
+msgid ""
+      "SELECT ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
+      "                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+      "                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+      "                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )');"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:426
+#, no-c-format
+msgid "Original Cube"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:431
+#, no-c-format
+msgid ""
+      "SELECT ST_Tesselate(ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), \n"
+      "        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), \n"
+      "        ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), \n"
+      "        ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'));"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:432
+#, no-c-format
+msgid "ST_AsText output:"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:433
+#, no-c-format
+msgid ""
+      "TIN Z (((0 0 0,0 0 1,0 1 1,0 0 0)),((0 1 0,0 0 0,0 1 1,0 1 0)),\n"
+      "        ((0 0 0,0 1 0,1 1 0,0 0 0)),\n"
+      "        ((1 0 0,0 0 0,1 1 0,1 0 0)),((0 0 1,1 0 0,1 0 1,0 0 1)),\n"
+      "        ((0 0 1,0 0 0,1 0 0,0 0 1)),\n"
+      "        ((1 1 0,1 1 1,1 0 1,1 1 0)),((1 0 0,1 1 0,1 0 1,1 0 0)),\n"
+      "        ((0 1 0,0 1 1,1 1 1,0 1 0)),((1 1 0,0 1 0,1 1 1,1 1 0)),\n"
+      "        ((0 1 1,1 0 1,1 1 1,0 1 1)),((0 1 1,0 0 1,1 0 1,0 1 1)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:439
+#, no-c-format
+msgid "Tesselated Cube with triangles colored"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:447
+#, no-c-format
+msgid "SELECT 'POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, 10 190 ))'::geometry;"
+msgstr ""
+
+#. Tag: programlisting
+#: reference_sfcgal.xml:458
+#, no-c-format
+msgid ""
+      "SELECT \n"
+      "        ST_Tesselate('POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, 10 190 ))'::geometry);"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:460
+#, no-c-format
+msgid "ST_AsText output"
+msgstr ""
+
+#. Tag: screen
+#: reference_sfcgal.xml:461
+#, no-c-format
+msgid ""
+      "TIN(((80 130,50 160,80 70,80 130)),((50 160,10 190,10 70,50 160)),\n"
+      "         ((80 70,50 160,10 70,80 70)),((120 160,120 190,50 160,120 160)),\n"
+      " ((120 190,10 190,50 160,120 190)))"
+msgstr ""
+
+#. Tag: para
+#: reference_sfcgal.xml:467
+#, no-c-format
+msgid "Tesselated Polygon"
+msgstr ""
+
diff --git a/doc/po/templates/release_notes.xml.pot b/doc/po/templates/release_notes.xml.pot
index d681627..0ff1100 100644
--- a/doc/po/templates/release_notes.xml.pot
+++ b/doc/po/templates/release_notes.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -29,3953 +29,5867 @@ msgstr ""
 #. Tag: title
 #: release_notes.xml:6
 #, no-c-format
-msgid "Release 2.0.1"
+msgid "Release 2.2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:7
+#, no-c-format
+msgid "Release date: YYYY/MM/DD"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:11
+#, no-c-format
+msgid "Release 2.1.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:12
+#, no-c-format
+msgid "Release date: 2014-09-10"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:13
+#, no-c-format
+msgid "This is a bug fix and performance improvement release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:15 release_notes.xml:124 release_notes.xml:152 release_notes.xml:271 release_notes.xml:449 release_notes.xml:477 release_notes.xml:536 release_notes.xml:598 release_notes.xml:688 release_notes.xml:889 release_notes.xml:944
+#, no-c-format
+msgid "Enhancements"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:16
+#, no-c-format
+msgid "#2745, Speedup ST_Simplify calls against points"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:17
+#, no-c-format
+msgid "#2747, Support for GDAL 2.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:18
+#, no-c-format
+msgid "#2749, Make rtpostgis_upgrade_20_21.sql ACID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:19
+#, no-c-format
+msgid "#2811, Do not specify index names when loading shapefiles/rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:20
+#, no-c-format
+msgid "#2829, Shortcut ST_Clip(raster) if geometry fully contains the raster and no NODATA specified"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:22
+#, no-c-format
+msgid "#2895, Raise cost of ST_ConvexHull(raster) to 300 for better query plans"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:26 release_notes.xml:87 release_notes.xml:98 release_notes.xml:139 release_notes.xml:395 release_notes.xml:421 release_notes.xml:463 release_notes.xml:487 release_notes.xml:550 release_notes.xml:705 release_notes.xml:719 release_notes.xml:757 release_notes.xml:795 release_notes.xml:826
+#, no-c-format
+msgid "Bug Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:27
+#, no-c-format
+msgid "#2605, armel: _ST_Covers() returns true for point in hole"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:28
+#, no-c-format
+msgid "#2911, Fix output scale on ST_Rescale/ST_Resample/ST_Resize of rasters with scale 1/-1 and offset 0/0."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:30
+#, no-c-format
+msgid "Fix crash in ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:31
+#, no-c-format
+msgid "#2704, ST_GeomFromGML() does not work properly with array of gml:pos (Even Roualt)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:33
+#, no-c-format
+msgid "#2708, updategeometrysrid doesn't update srid check when schema not specified. Patch from Marc Jansen"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:35
+#, no-c-format
+msgid "#2720, lwpoly_add_ring should update maxrings after realloc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:36
+#, no-c-format
+msgid "#2759, Fix postgis_restore.pl handling of multiline object comments embedding sql comments"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:38
+#, no-c-format
+msgid "#2774, fix undefined behavior in ptarray_calculate_gbox_geodetic - Fix potential memory fault in ST_MakeValid"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:40
+#, no-c-format
+msgid "#2784, Fix handling of bogus argument to --with-sfcgal"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:41
+#, no-c-format
+msgid "#2772, Premature memory free in RASTER_getBandPath (ST_BandPath)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:42
+#, no-c-format
+msgid "#2755, Fix regressions tests against all versions of SFCGAL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:43
+#, no-c-format
+msgid "#2775, lwline_from_lwmpoint leaks memory"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:44
+#, no-c-format
+msgid "#2802, ST_MapAlgebra checks for valid callback function return value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:45
+#, no-c-format
+msgid "#2803, ST_MapAlgebra handles no userarg and STRICT callback function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:46
+#, no-c-format
+msgid "#2834, ST_Estimated_Extent and mixedCase table names (regression bug)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:47
+#, no-c-format
+msgid "#2845, Bad geometry created from ST_AddPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:48
+#, no-c-format
+msgid "#2870, Binary insert into geography column results geometry being inserted"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:49
+#, no-c-format
+msgid "#2872, make install builds documentation (Greg Troxell)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:50
+#, no-c-format
+msgid "#2819, find isfinite or replacement on Centos5 / Solaris"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:51
+#, no-c-format
+msgid "#2899, geocode limit 1 not returning best answer (tiger geocoder)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:52
+#, no-c-format
+msgid "#2903, Unable to compile on FreeBSD"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:53
+#, no-c-format
+msgid "#2927 reverse_geocode not filling in direction prefix (tiger geocoder) get rid of deprecated ST_Line_Locate_Point called"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:59
+#, no-c-format
+msgid "Release 2.1.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:60
+#, no-c-format
+msgid "Release date: 2014/05/13"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:61
+#, no-c-format
+msgid "This is a bug fix and security release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:63
+#, no-c-format
+msgid "Important changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:64
+#, no-c-format
+msgid "Starting with this version offline raster access and use of GDAL drivers are disabled by default."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:69
+#, no-c-format
+msgid "An environment variable is introduced to allow for enabling specific GDAL drivers: POSTGIS_GDAL_ENABLED_DRIVERS. By default, all GDAL drivers are disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:75
+#, no-c-format
+msgid "An environment variable is introduced to allow for enabling out-db raster bands: POSTGIS_ENABLE_OUTDB_RASTERS. By default, out-db raster bands are disabled"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:81
+#, no-c-format
+msgid "The environment variables must be set for the PostgreSQL process, and determines the behavior of the whole cluster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:88
+#, no-c-format
+msgid "#2697, invalid GeoJSON Polygon input crashes server process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:89
+#, no-c-format
+msgid "#2700, Fix dumping of higher-dimension datasets with null rows"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:90
+#, no-c-format
+msgid "#2706, ST_DumpPoints of EMPTY geometries crashes server"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:94
+#, no-c-format
+msgid "Release 2.1.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:95 release_notes.xml:392
+#, no-c-format
+msgid "Release date: 2014/03/31"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:96
+#, no-c-format
+msgid "This is a bug fix release, addressing issues that have been filed since the 2.1.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:99
+#, no-c-format
+msgid "#2666, Error out at configure time if no SQL preprocessor can be found"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:100
+#, no-c-format
+msgid "#2534, st_distance returning incorrect results for large geographies"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:101
+#, no-c-format
+msgid "#2539, Check for json-c/json.h presence/usability before json/json.h"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:102
+#, no-c-format
+msgid "#2543, invalid join selectivity error from simple query"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:103
+#, no-c-format
+msgid "#2546, GeoJSON with string coordinates parses incorrectly"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:104
+#, no-c-format
+msgid "#2547, Fix ST_Simplify(TopoGeometry) for hierarchical topogeoms"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:105 release_notes.xml:402
+#, no-c-format
+msgid "#2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:107 release_notes.xml:403
+#, no-c-format
+msgid "#2555, Fix parsing issue of range arguments of ST_Reclass"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:108
+#, no-c-format
+msgid "#2556, geography ST_Intersects results depending on insert order"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:109
+#, no-c-format
+msgid "#2580, Do not allow installing postgis twice in the same database"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:110 release_notes.xml:404
+#, no-c-format
+msgid "#2589, Remove use of unnecessary void pointers"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:111
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in one process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:112 release_notes.xml:406
+#, no-c-format
+msgid "#2610, Ensure face splitting algorithm uses the edge index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:113
+#, no-c-format
+msgid "#2615, EstimatedExtent (and hence, underlying stats) gathering wrong bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:114
+#, no-c-format
+msgid "#2619, Empty rings array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:115
+#, no-c-format
+msgid "#2634, regression in sphere distance code"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:116 release_notes.xml:408
+#, no-c-format
+msgid "#2638, Geography distance on M geometries sometimes wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:117
+#, no-c-format
+msgid "#2648, #2653, Fix topology functions when \"topology\" is not in search_path"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:118
+#, no-c-format
+msgid "#2654, Drop deprecated calls from topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:119
+#, no-c-format
+msgid "#2655, Let users without topology privileges call postgis_full_version()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:120
+#, no-c-format
+msgid "#2674, Fix missing operator = and hash_raster_ops opclass on raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:121
+#, no-c-format
+msgid "#2675, #2534, #2636, #2634, #2638, Geography distance issues with tree optimization"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:125
+#, no-c-format
+msgid "#2494, avoid memcopy in GiST index (hayamiz)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:126
+#, no-c-format
+msgid "#2560, soft upgrade: avoid drop/recreate of aggregates that hadn't changed"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:131
+#, no-c-format
+msgid "Release 2.1.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:132
+#, no-c-format
+msgid "Release date: 2013/11/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:133
+#, no-c-format
+msgid "This is a bug fix release, addressing issues that have been filed since the 2.1.0 release."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:135 release_notes.xml:411
+#, no-c-format
+msgid "Important Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:136
+#, no-c-format
+msgid "#2514, Change raster license from GPL v3+ to v2+, allowing distribution of PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:140
+#, no-c-format
+msgid "#2396, Make regression tests more endian-agnostic"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:141
+#, no-c-format
+msgid "#2434, Fix ST_Intersection(geog,geog) regression in rare cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:142
+#, no-c-format
+msgid "#2454, Fix behavior of ST_PixelAsXXX functions regarding exclude_nodata_value parameter"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:143
+#, no-c-format
+msgid "#2489, Fix upgrades from 2.0 leaving stale function signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:144
+#, no-c-format
+msgid "#2525, Fix handling of SRID in nested collections"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:145
+#, no-c-format
+msgid "#2449, Fix potential infinite loop in index building"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:146
+#, no-c-format
+msgid "#2493, Fix behavior of ST_DumpValues when passed an empty raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:147 release_notes.xml:397
+#, no-c-format
+msgid "#2502, Fix postgis_topology_scripts_installed() install schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:148 release_notes.xml:398
+#, no-c-format
+msgid "#2504, Fix segfault on bogus pgsql2shp call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:149
+#, no-c-format
+msgid "#2512, Support for foreign tables and materialized views in raster_columns and raster_overviews"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:153
+#, no-c-format
+msgid "#2478, support for tiger 2013"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:154
+#, no-c-format
+msgid "#2463, support for exact length calculations on arc geometries"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:160
+#, no-c-format
+msgid "Release 2.1.0"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:161
+#, no-c-format
+msgid "Release date: 2013/08/17"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:162
+#, no-c-format
+msgid "This is a minor release addressing both bug fixes and performance and functionality enhancements addressing issues since 2.0.3 release. If you are upgrading from 2.0+, only a soft upgrade is required. If you are upgrading from 1.5 or earlier, a hard upgrade is required."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:165 release_notes.xml:634
+#, no-c-format
+msgid "Important / Breaking Changes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:166
+#, no-c-format
+msgid "#1653, Removed srid parameter from ST_Resample(raster) and variants with reference raster no longer apply reference raster's SRID."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:168
+#, no-c-format
+msgid "#1962 ST_Segmentize - As a result of the introduction of geography support, The construct: <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</code> will result in ambiguous function error"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:172
+#, no-c-format
+msgid "#2026, ST_Union(raster) now unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:173
+#, no-c-format
+msgid "#2089, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:174
+#, no-c-format
+msgid "#2150, regular_blocking is no longer a constraint. column of same name in raster_columns now checks for existance of spatially_unique and coverage_tile constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:177
+#, no-c-format
+msgid "ST_Intersects(raster, geometry) behaves in the same manner as ST_Intersects(geometry, raster)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:179
+#, no-c-format
+msgid "point variant of ST_SetValue(raster) previously did not check SRID of input geometry and raster."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:181
+#, no-c-format
+msgid "ST_Hillshade parameters azimuth and altitude are now in degrees instead of radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:183
+#, no-c-format
+msgid "ST_Slope and ST_Aspect return pixel values in degrees instead of radians."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:184
+#, no-c-format
+msgid "#2104, ST_World2RasterCoord, ST_World2RasterCoordX and ST_World2RasterCoordY renamed to ST_WorldToRasterCoord, ST_WorldToRasterCoordX and ST_WorldToRasterCoordY. ST_Raster2WorldCoord, ST_Raster2WorldCoordX and ST_Raster2WorldCoordY renamed to ST_RasterToWorldCoord, ST_RasterToWorldCoordX and ST_RasterToWorldCoordY"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:190
+#, no-c-format
+msgid "ST_Estimated_Extent renamed to ST_EstimatedExtent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:191
+#, no-c-format
+msgid "ST_Line_Interpolate_Point renamed to ST_LineInterpolatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:192
+#, no-c-format
+msgid "ST_Line_Substring renamed to ST_LineSubstring"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:193
+#, no-c-format
+msgid "ST_Line_Locate_Point renamed to ST_LineLocatePoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:194
+#, no-c-format
+msgid "ST_Force_XXX renamed to ST_ForceXXX"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:195
+#, no-c-format
+msgid "ST_MapAlgebraFctNgb and 1 and 2 raster variants of ST_MapAlgebraFct. Use ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:197
+#, no-c-format
+msgid "1 and 2 raster variants of ST_MapAlgebraExpr. Use expression variants of ST_MapAlgebra instead"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:202 release_notes.xml:661 release_notes.xml:861 release_notes.xml:925 release_notes.xml:1222
+#, no-c-format
+msgid "New Features"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:203
+#, no-c-format
+msgid "- Refer to http://postgis.net/docs/manual-2.1/PostGIS_Special_Functions_Index.html#NewFunctions_2_1 for complete list of new functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:205
+#, no-c-format
+msgid "#310, ST_DumpPoints converted to a C function (Nathan Wagner) and much faster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:206
+#, no-c-format
+msgid "#739, UpdateRasterSRID()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:207
+#, no-c-format
+msgid "#945, improved join selectivity, N-D selectivity calculations, user accessible selectivity and stats reader functions for testing (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:210
+#, no-c-format
+msgid "toTopoGeom with TopoGeometry sink (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:211
+#, no-c-format
+msgid "clearTopoGeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:212
+#, no-c-format
+msgid "ST_Segmentize(geography) (Paul Ramsey / OpenGeo)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:213
+#, no-c-format
+msgid "ST_DelaunayTriangles (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:214
+#, no-c-format
+msgid "ST_NearestValue, ST_Neighborhood (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:215
+#, no-c-format
+msgid "ST_PixelAsPoint, ST_PixelAsPoints (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:216
+#, no-c-format
+msgid "ST_PixelAsCentroid, ST_PixelAsCentroids (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:217
+#, no-c-format
+msgid "ST_Raster2WorldCoord, ST_World2RasterCoord (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:218
+#, no-c-format
+msgid "Additional raster/raster spatial relationship functions (ST_Contains, ST_ContainsProperly, ST_Covers, ST_CoveredBy, ST_Disjoint, ST_Overlaps, ST_Touches, ST_Within, ST_DWithin, ST_DFullyWithin) (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:222
+#, no-c-format
+msgid "Added array variants of ST_SetValues() to set many pixel values of a band in one call (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:224
+#, no-c-format
+msgid "#1293, ST_Resize(raster) to resize rasters based upon width/height"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:225
+#, no-c-format
+msgid "#1627, package tiger_geocoder as a PostgreSQL extension"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:226
+#, no-c-format
+msgid "#1643, #2076, Upgrade tiger geocoder to support loading tiger 2011 and 2012 (Regina Obe / Paragon Corporation) Funded by Hunter Systems Group"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:228
+#, no-c-format
+msgid "GEOMETRYCOLLECTION support for ST_MakeValid (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:229
+#, no-c-format
+msgid "#1709, ST_NotSameAlignmentReason(raster, raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:230
+#, no-c-format
+msgid "#1818, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:231
+#, no-c-format
+msgid "#1856, reverse geocoder rating setting for prefer numbered highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:232
+#, no-c-format
+msgid "ST_PixelOfValue (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:233
+#, no-c-format
+msgid "Casts to/from PostgreSQL geotypes (point/path/polygon)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:234
+#, no-c-format
+msgid "Added geomval array variant of ST_SetValues() to set many pixel values of a band using a set of geometries and corresponding values in one call (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:237
+#, no-c-format
+msgid "ST_Tile(raster) to break up a raster into tiles (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:238
+#, no-c-format
+msgid "#1895, new r-tree node splitting algorithm (Alex Korotkov)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:239
+#, no-c-format
+msgid "#2011, ST_DumpValues to output raster as array (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:240
+#, no-c-format
+msgid "#2018, ST_Distance support for CircularString, CurvePolygon, MultiCurve, MultiSurface, CompoundCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:242
+#, no-c-format
+msgid "#2030, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:243
+#, no-c-format
+msgid "#2193, Utilize PAGC parser as drop in replacement for tiger normalizer (Steve Woodbridge, Regina Obe)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:245
+#, no-c-format
+msgid "#2210, ST_MinConvexHull(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:246
+#, no-c-format
+msgid "lwgeom_from_geojson in liblwgeom (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:247
+#, no-c-format
+msgid "#1687, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:248
+#, no-c-format
+msgid "#2228, TopoJSON output for TopoGeometry (Sandro Santilli / Vizzuality)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:249
+#, no-c-format
+msgid "#2123, ST_FromGDALRaster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:250
+#, no-c-format
+msgid "#613, ST_SetGeoReference with numerical parameters instead of text"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:251
+#, no-c-format
+msgid "#2276, ST_AddBand(raster) variant for out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:252
+#, no-c-format
+msgid "#2280, ST_Summary(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:253
+#, no-c-format
+msgid "#2163, ST_TPI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:254
+#, no-c-format
+msgid "#2164, ST_TRI for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:255
+#, no-c-format
+msgid "#2302, ST_Roughness for raster (Nathaniel Clay)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:256
+#, no-c-format
+msgid "#2290, ST_ColorMap(raster) to generate RGBA bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:257
+#, no-c-format
+msgid "#2254, Add SFCGAL backend support. (Backend selection throught postgis.backend var) Functions available both throught GEOS or SFCGAL: ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, ST_Distance, ST_3DDistance New functions available only with SFCGAL backend: ST_3DIntersection, ST_Tesselate, ST_3DArea, ST_Extrude, ST_ForceLHR ST_Orientation, ST_Minkowski, ST_StraightSkeleton postgis_sfcgal_version New function available in PostGIS: ST_ForceSFS (Olivier Courtin and Hugo Me [...]
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:272
+#, no-c-format
+msgid "For detail of new functions and function improvements, please refer to <xref linkend=\"NewFunctions_2_1\"/>."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:273
+#, no-c-format
+msgid "Much faster raster ST_Union, ST_Clip and many more function additions operations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:274
+#, no-c-format
+msgid "For geometry/geography better planner selectivity and a lot more functions."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:276
+#, no-c-format
+msgid "#823, tiger geocoder: Make loader_generate_script download portion less greedy"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:278
+#, no-c-format
+msgid "#826, raster2pgsql no longer defaults to padding tiles. Flag -P can be used to pad tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:280
+#, no-c-format
+msgid "#1363, ST_AddBand(raster, ...) array version rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:281
+#, no-c-format
+msgid "#1364, ST_Union(raster, ...) aggregate function rewritten in C"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:282
+#, no-c-format
+msgid "#1655, Additional default values for parameters of ST_Slope"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:283
+#, no-c-format
+msgid "#1661, Add aggregate variant of ST_SameAlignment"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:284
+#, no-c-format
+msgid "#1719, Add support for Point and GeometryCollection ST_MakeValid inputs"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:285
+#, no-c-format
+msgid "#1780, support ST_GeoHash for geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:286
+#, no-c-format
+msgid "#1796, Big performance boost for distance calculations in geography"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:287
+#, no-c-format
+msgid "#1802, improved function interruptibility."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:288
+#, no-c-format
+msgid "#1823, add parameter in ST_AsGML to use id column for GML 3 output (become mandatory since GML 3.2.1)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:290
+#, no-c-format
+msgid "#1856, tiger geocoder: reverse geocoder rating setting for prefer numbered highway name"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:292
+#, no-c-format
+msgid "#1938, Refactor basic ST_AddBand to add multiple new bands in one call"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:293
+#, no-c-format
+msgid "#1978, wrong answer when calculating length of a closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:295 release_notes.xml:505
+#, no-c-format
+msgid "#1989, Preprocess input geometry to just intersection with raster to be clipped"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:297
+#, no-c-format
+msgid "#2021, Added multi-band support to ST_Union(raster, ...) aggregate function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:298
+#, no-c-format
+msgid "#2006, better support of ST_Area(geography) over poles and dateline"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:299
+#, no-c-format
+msgid "#2065, ST_Clip(raster, ...) now a C function"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:300
+#, no-c-format
+msgid "#2069, Added parameters to ST_Tile(raster) to control padding of tiles"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:301
+#, no-c-format
+msgid "#2078, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide solution to handling tiles in a coverage"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:303
+#, no-c-format
+msgid "#2097, Added RANGE uniontype option for ST_Union(raster)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:304
+#, no-c-format
+msgid "#2105, Added ST_Transform(raster) variant for aligning output to reference raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:306
+#, no-c-format
+msgid "#2119, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(), and ST_SnapToGrid() no longer require an SRID"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:308 release_notes.xml:478
+#, no-c-format
+msgid "#2141, More verbose output when constraints fail to be added to a raster column"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:310
+#, no-c-format
+msgid "#2143, Changed blocksize constraint of raster to allow multiple values"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:311
+#, no-c-format
+msgid "#2148, Addition of coverage_tile constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:312
+#, no-c-format
+msgid "#2149, Addition of spatially_unique constraint for raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:313
+#, no-c-format
+msgid "TopologySummary output now includes unregistered layers and a count of missing TopoGeometry objects from their natural layer."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:315
+#, no-c-format
+msgid "ST_HillShade(), ST_Aspect() and ST_Slope() have one new optional parameter to interpolate NODATA pixels before running the operation."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:318
+#, no-c-format
+msgid "Point variant of ST_SetValue(raster) is now a wrapper around geomval variant of ST_SetValues(rast)."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:320
+#, no-c-format
+msgid "Proper support for raster band's isnodata flag in core API and loader."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:321
+#, no-c-format
+msgid "Additional default values for parameters of ST_Aspect and ST_HillShade"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:322
+#, no-c-format
+msgid "#2178, ST_Summary now advertises presence of known srid with an [S] flag"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:323
+#, no-c-format
+msgid "#2202, Make libjson-c optional (--without-json configure switch)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:324
+#, no-c-format
+msgid "#2213, Add support libjson-c 0.10+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:325
+#, no-c-format
+msgid "#2231, raster2pgsql supports user naming of filename column with -n"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:326
+#, no-c-format
+msgid "#2200, ST_Union(raster, uniontype) unions all bands of all rasters"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:327
+#, no-c-format
+msgid "#2264, postgis_restore.pl support for restoring into databases with postgis in a custom schema"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:329
+#, no-c-format
+msgid "#2244, emit warning when changing raster's georeference if raster has out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:331
+#, no-c-format
+msgid "#2222, add parameter OutAsIn to flag whether ST_AsBinary should return out-db bands as in-db bands"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:335
+#, no-c-format
+msgid "Fixes"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:336 release_notes.xml:580
+#, no-c-format
+msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:337 release_notes.xml:581
+#, no-c-format
+msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:338
+#, no-c-format
+msgid "#1870, align the docs and actual behavior of raster's ST_Intersects"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:339 release_notes.xml:587
+#, no-c-format
+msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:340 release_notes.xml:590
+#, no-c-format
+msgid "#1875, ST_SummaryStats returns NULL for all parameters except count when count is zero"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:342
+#, no-c-format
+msgid "#1932, fix raster2pgsql of syntax for index tablespaces"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:343 release_notes.xml:498
+#, no-c-format
+msgid "#1936, ST_GeomFromGML on CurvePolygon causes server crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:344
+#, no-c-format
+msgid "#1939, remove custom data types: summarystats, histogram, quantile, valuecount"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:346
+#, no-c-format
+msgid "#1951, remove crash on zero-length linestrings"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:347 release_notes.xml:500
+#, no-c-format
+msgid "#1957, ST_Distance to a one-point LineString returns NULL"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:348 release_notes.xml:501
+#, no-c-format
+msgid "#1976, Geography point-in-ring code overhauled for more reliability"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:349
+#, no-c-format
+msgid "#1981, cleanup of unused variables causing warnings with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:350 release_notes.xml:508
+#, no-c-format
+msgid "#1996, support POINT EMPTY in GeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:351
+#, no-c-format
+msgid "#2062, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:352 release_notes.xml:519
+#, no-c-format
+msgid "#2057, Fixed linking issue for raster2psql to libpq"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:353
+#, no-c-format
+msgid "#2077, Fixed incorrect values returning from ST_Hillshade()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:354 release_notes.xml:512
+#, no-c-format
+msgid "#2019, ST_FlipCoordinates does not update bbox"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:355
+#, no-c-format
+msgid "#2100, ST_AsRaster may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:356 release_notes.xml:464
+#, no-c-format
+msgid "#2126, Better handling of empty rasters from ST_ConvexHull()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:357 release_notes.xml:425
+#, no-c-format
+msgid "#2165, ST_NumPoints regression failure with CircularString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:358 release_notes.xml:426
+#, no-c-format
+msgid "#2168, ST_Distance is not always commutative"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:359
+#, no-c-format
+msgid "#2182, Fix issue with outdb rasters with no SRID and ST_Resize"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:360 release_notes.xml:472
+#, no-c-format
+msgid "#2188, Fix function parameter value overflow that caused problems when copying data from a GDAL dataset"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:362
+#, no-c-format
+msgid "#2198, Fix incorrect dimensions used when generating bands of out-db rasters in ST_Tile()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:364 release_notes.xml:428
+#, no-c-format
+msgid "#2201, ST_GeoHash wrong on boundaries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:365
+#, no-c-format
+msgid "#2203, Changed how rasters with unknown SRID and default geotransform are handled when passing to GDAL Warp API"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:367
+#, no-c-format
+msgid "#2215, Fixed raster exclusion constraint for conflicting name of implicit index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:369
+#, no-c-format
+msgid "#2251, Fix bad dimensions when rescaling rasters with default geotransform matrix"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:371
+#, no-c-format
+msgid "#2133, Fix performance regression in expression variant of ST_MapAlgebra"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:372 release_notes.xml:429
+#, no-c-format
+msgid "#2257, GBOX variables not initialized when testing with empty geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:373 release_notes.xml:430
+#, no-c-format
+msgid "#2271, Prevent parallel make of raster"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:374
+#, no-c-format
+msgid "#2282, Fix call to undefined function nd_stats_to_grid() in debug mode"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:375 release_notes.xml:433
+#, no-c-format
+msgid "#2307, ST_MakeValid outputs invalid geometries"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:376
+#, no-c-format
+msgid "#2309, Remove confusing INFO message when trying to get SRS info"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:377
+#, no-c-format
+msgid "#2336, FIPS 20 (KS) causes wildcard expansion to wget all files"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:378
+#, no-c-format
+msgid "#2348, Provide raster upgrade path for 2.0 to 2.1"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:379 release_notes.xml:434
+#, no-c-format
+msgid "#2351, st_distance between geographies wrong"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:380
+#, no-c-format
+msgid "#2359, Fix handling of schema name when adding overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:381 release_notes.xml:436
+#, no-c-format
+msgid "#2371, Support GEOS versions with more than 1 digit in micro"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:382
+#, no-c-format
+msgid "#2383, Remove unsafe use of \\' from raster warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:383
+#, no-c-format
+msgid "#2384, Incorrect variable datatypes for ST_Neighborhood"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:385 release_notes.xml:453
+#, no-c-format
+msgid "Known Issues"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:386 release_notes.xml:454
+#, no-c-format
+msgid "#2111, Raster bands can only reference the first 256 bands of out-db rasters"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:391
+#, no-c-format
+msgid "Release 2.0.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:393
+#, no-c-format
+msgid "This is a bug fix release, addressing issues that have been filed since the 2.0.4 release. If you are using PostGIS 2.0+ a soft upgrade is required. For users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:396
+#, no-c-format
+msgid "#2494, avoid memcpy in GIST index"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:399
+#, no-c-format
+msgid "#2528, Fix memory leak in ST_Split / lwline_split_by_line"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:400
+#, no-c-format
+msgid "#2532, Add missing raster/geometry commutator operators"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:401
+#, no-c-format
+msgid "#2533, Remove duplicated signatures"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:405
+#, no-c-format
+msgid "#2607, Cannot open more than 1024 out-db files in process"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:407
+#, no-c-format
+msgid "#2619, Empty ring array in GeoJSON polygon causes crash"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:412
+#, no-c-format
+msgid "##2514, Change raster license from GPL v3+ to v2+, allowing distribution of PostGIS Extension as GPLv2."
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:417
+#, no-c-format
+msgid "Release 2.0.4"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:418
+#, no-c-format
+msgid "Release date: 2013/09/06"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:419
+#, no-c-format
+msgid "This is a bug fix release, addressing issues that have been filed since the 2.0.3 release. If you are using PostGIS 2.0+ a soft upgrade is required. For users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:422
+#, no-c-format
+msgid "#2110, Equality operator between EMPTY and point on origin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:423
+#, no-c-format
+msgid "Allow adding points at precision distance with TopoGeo_addPoint"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:424
+#, no-c-format
+msgid "#1968, Fix missing edge from toTopoGeom return"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:427
+#, no-c-format
+msgid "#2186, gui progress bar updates too frequent"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:431
+#, no-c-format
+msgid "#2267, Server crash from analyze table"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:432
+#, no-c-format
+msgid "#2277, potential segfault removed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:435
+#, no-c-format
+msgid "#2359, Incorrect handling of schema for overview constraints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:437
+#, no-c-format
+msgid "#2372, Cannot parse space-padded KML coordinates"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:438
+#, no-c-format
+msgid "Fix build with systemwide liblwgeom installed"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:439
+#, no-c-format
+msgid "#2383, Fix unsafe use of \\' in warning message"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:440
+#, no-c-format
+msgid "#2410, Fix segmentize of collinear curve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:441
+#, no-c-format
+msgid "#2412, ST_LineToCurve support for lines with less than 4 vertices"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:442
+#, no-c-format
+msgid "#2415, ST_Multi support for COMPOUNDCURVE and CURVEPOLYGON"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:443
+#, no-c-format
+msgid "#2420, ST_LineToCurve: require at least 8 edges to define a full circle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:444
+#, no-c-format
+msgid "#2423, ST_LineToCurve: require all arc edges to form the same angle"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:445
+#, no-c-format
+msgid "#2424, ST_CurveToLine: add support for COMPOUNDCURVE in MULTICURVE"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:446
+#, no-c-format
+msgid "#2427, Make sure to retain first point of curves on ST_CurveToLine"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:450
+#, no-c-format
+msgid "#2269, Avoid uselessly detoasting full geometries on ANALYZE"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:459
+#, no-c-format
+msgid "Release 2.0.3"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:460
+#, no-c-format
+msgid "Release date: 2013/03/01"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:461
+#, no-c-format
+msgid "This is a bug fix release, addressing issues that have been filed since the 2.0.2 release. If you are using PostGIS 2.0+ a soft upgrade is required. For users of PostGIS 1.5 or below, a hard upgrade is required."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:465
+#, no-c-format
+msgid "#2134, Make sure to process SRS before passing it off to GDAL functions"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:466
+#, no-c-format
+msgid "Fix various memory leaks in liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:467
+#, no-c-format
+msgid "#2173, Fix robustness issue in splitting a line with own vertex also affecting topology building (#2172)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:468
+#, no-c-format
+msgid "#2174, Fix usage of wrong function lwpoly_free()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:469
+#, no-c-format
+msgid "#2176, Fix robustness issue with ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:470
+#, no-c-format
+msgid "#2184, Properly copy topologies with Z value"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:471
+#, no-c-format
+msgid "postgis_restore.pl support for mixed case geometry column name in dumps"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:473
+#, no-c-format
+msgid "#2216, More memory errors in MultiPolygon GeoJSON parsing (with holes)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:474
+#, no-c-format
+msgid "Fix Memory leak in GeoJSON parser"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:479
+#, no-c-format
+msgid "Speedup ST_ChangeEdgeGeom"
+msgstr ""
+
+#. Tag: title
+#: release_notes.xml:483
+#, no-c-format
+msgid "Release 2.0.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:484
+#, no-c-format
+msgid "Release date: 2012/12/03"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:485
+#, no-c-format
+msgid "This is a bug fix release, addressing issues that have been filed since the 2.0.1 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:488
+#, no-c-format
+msgid "#1287, Drop of \"gist_geometry_ops\" broke a few clients package of legacy_gist.sql for these cases"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:490
+#, no-c-format
+msgid "#1391, Errors during upgrade from 1.5"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:491
+#, no-c-format
+msgid "#1828, Poor selectivity estimate on ST_DWithin"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:492
+#, no-c-format
+msgid "#1838, error importing tiger/line data"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:493
+#, no-c-format
+msgid "#1869, ST_AsBinary is not unique added to legacy_minor/legacy.sql scripts"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:494
+#, no-c-format
+msgid "#1885, Missing field from tabblock table in tiger2010 census_loader.sql"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:495
+#, no-c-format
+msgid "#1891, Use LDFLAGS environment when building liblwgeom"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:496
+#, no-c-format
+msgid "#1900, Fix pgsql2shp for big-endian systems"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:497
+#, no-c-format
+msgid "#1932, Fix raster2pgsql for invalid syntax for setting index tablespace"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:499
+#, no-c-format
+msgid "#1955, ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:502
+#, no-c-format
+msgid "#1978, wrong answer calculating length of closed circular arc (circle)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:503
+#, no-c-format
+msgid "#1981, Remove unused but set variables as found with gcc 4.6+"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:504
+#, no-c-format
+msgid "#1987, Restore 1.5.x behaviour of ST_Simplify"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:507
+#, no-c-format
+msgid "#1991, geocode really slow on PostgreSQL 9.2"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:509
+#, no-c-format
+msgid "#1998, Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:510
+#, no-c-format
+msgid "#2001, ST_CurveToLine has no effect if the geometry doesn't actually contain an arc"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:511
+#, no-c-format
+msgid "#2015, ST_IsEmpty('POLYGON(EMPTY)') returns False"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:513
+#, no-c-format
+msgid "#2025, Fix side location conflict at TopoGeo_AddLineString"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:514
+#, no-c-format
+msgid "#2026, improve performance of distance calculations"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:515
+#, no-c-format
+msgid "#2033, Fix adding a splitting point into a 2.5d topology"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:516
+#, no-c-format
+msgid "#2051, Fix excess of precision in ST_AsGeoJSON output"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:517
+#, no-c-format
+msgid "#2052, Fix buffer overflow in lwgeom_to_geojson"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:518
+#, no-c-format
+msgid "#2056, Fixed lack of SRID check of raster and geometry in ST_SetValue()"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:520
+#, no-c-format
+msgid "#2060, Fix \"dimension\" check violation by GetTopoGeomElementArray"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:521
+#, no-c-format
+msgid "#2072, Removed outdated checks preventing ST_Intersects(raster) from working on out-db bands"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:523
+#, no-c-format
+msgid "#2077, Fixed incorrect answers from ST_Hillshade(raster)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:7
+#: release_notes.xml:524
 #, no-c-format
-msgid "Release date: 2012/06/22"
+msgid "#2092, Namespace issue with ST_GeomFromKML,ST_GeomFromGML for libxml 2.8+"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:8
+#: release_notes.xml:525
 #, no-c-format
-msgid "This is a bug fix release, addressing issues that have been filed since the 2.0.0 release."
+msgid "#2099, Fix double free on exception in ST_OffsetCurve"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:526
+#, no-c-format
+msgid "#2100, ST_AsRaster() may not return raster with specified pixel type"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:527
+#, no-c-format
+msgid "#2108, Ensure ST_Line_Interpolate_Point always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:528
+#, no-c-format
+msgid "#2109, Ensure ST_Centroid always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:529
+#, no-c-format
+msgid "#2117, Ensure ST_PointOnSurface always returns POINT"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:530
+#, no-c-format
+msgid "#2129, Fix SRID in ST_Homogenize output with collection input"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:531
+#, no-c-format
+msgid "#2130, Fix memory error in MultiPolygon GeoJson parsing"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:533
+#, no-c-format
+msgid "Update URL of Maven jar"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:537
+#, no-c-format
+msgid "#1581, ST_Clip(raster, ...) no longer imposes NODATA on a band if the corresponding band from the source raster did not have NODATA"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:539
+#, no-c-format
+msgid "#1928, Accept array properties in GML input multi-geom input (Kashif Rasul and Shoaib Burq / SpacialDB)"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:541
+#, no-c-format
+msgid "#2082, Add indices on start_node and end_node of topology edge tables"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:542
+#, no-c-format
+msgid "#2087, Speedup topology.GetRingEdges using a recursive CTE"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:10 release_notes.xml:165 release_notes.xml:179 release_notes.xml:217 release_notes.xml:255 release_notes.xml:286
+#: release_notes.xml:546
 #, no-c-format
-msgid "Bug Fixes"
+msgid "Release 2.0.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:11
+#: release_notes.xml:547
+#, no-c-format
+msgid "Release date: 2012/06/22"
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:548
+#, no-c-format
+msgid "This is a bug fix release, addressing issues that have been filed since the 2.0.0 release."
+msgstr ""
+
+#. Tag: para
+#: release_notes.xml:551
 #, no-c-format
 msgid "#1264, fix st_dwithin(geog, geog, 0)."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:12
+#: release_notes.xml:552
 #, no-c-format
 msgid "#1468 shp2pgsql-gui table column schema get shifted"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:13
+#: release_notes.xml:553
 #, no-c-format
 msgid "#1694, fix building with clang. (vince)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:14
+#: release_notes.xml:554
 #, no-c-format
 msgid "#1708, improve restore of pre-PostGIS 2.0 backups."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:15
+#: release_notes.xml:555
 #, no-c-format
 msgid "#1714, more robust handling of high topology tolerance."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:16
+#: release_notes.xml:556
 #, no-c-format
 msgid "#1755, ST_GeographyFromText support for higher dimensions."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:17
+#: release_notes.xml:557
 #, no-c-format
 msgid "#1759, loading transformed shapefiles in raster enabled db."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:18
+#: release_notes.xml:558
 #, no-c-format
 msgid "#1761, handling of subdatasets in NetCDF, HDF4 and HDF5 in raster2pgsql."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:19
+#: release_notes.xml:559
 #, no-c-format
 msgid "#1763, topology.toTopoGeom use with custom search_path."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:20
+#: release_notes.xml:560
 #, no-c-format
 msgid "#1766, don't let ST_RemEdge* destroy peripheral TopoGeometry objects."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:21
+#: release_notes.xml:561
 #, no-c-format
 msgid "#1774, Clearer error on setting an edge geometry to an invalid one."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:22
+#: release_notes.xml:562
 #, no-c-format
 msgid "#1775, ST_ChangeEdgeGeom collision detection with 2-vertex target."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:23
+#: release_notes.xml:563
 #, no-c-format
 msgid "#1776, fix ST_SymDifference(empty, geom) to return geom."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:24
+#: release_notes.xml:564
 #, no-c-format
 msgid "#1779, install SQL comment files."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:25
+#: release_notes.xml:565
 #, no-c-format
 msgid "#1782, fix spatial reference string handling in raster."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:26
+#: release_notes.xml:566
 #, no-c-format
 msgid "#1789, fix false edge-node crossing report in ValidateTopology."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:27
+#: release_notes.xml:567
 #, no-c-format
 msgid "#1790, fix toTopoGeom handling of duplicated primitives."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:28
+#: release_notes.xml:568
 #, no-c-format
 msgid "#1791, fix ST_Azimuth with very close but distinct points."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:29
+#: release_notes.xml:569
 #, no-c-format
 msgid "#1797, fix (ValidateTopology(xxx)).* syntax calls."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:30
+#: release_notes.xml:570
 #, no-c-format
 msgid "#1805, put back the 900913 SRID entry."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:31
+#: release_notes.xml:571
 #, no-c-format
 msgid "#1813, Only show readable relations in metadata tables."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:32
+#: release_notes.xml:572
 #, no-c-format
 msgid "#1819, fix floating point issues with ST_World2RasterCoord and ST_Raster2WorldCoord variants."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:34
+#: release_notes.xml:574
 #, no-c-format
 msgid "#1820 compilation on 9.2beta1."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:35
+#: release_notes.xml:575
 #, no-c-format
 msgid "#1822, topology load on PostgreSQL 9.2beta1."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:36
+#: release_notes.xml:576
 #, no-c-format
 msgid "#1825, fix prepared geometry cache lookup"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:37
+#: release_notes.xml:577
 #, no-c-format
 msgid "#1829, fix uninitialized read in GeoJSON parser"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:38
+#: release_notes.xml:578
 #, no-c-format
 msgid "#1834, revise postgis extension to only backup user specified spatial_ref_sys"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:40
-#, no-c-format
-msgid "#1839, handling of subdatasets in GeoTIFF in raster2pgsql."
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:41
-#, no-c-format
-msgid "#1840, fix logic of when to compute # of tiles in raster2pgsql."
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:42
+#: release_notes.xml:582
 #, no-c-format
 msgid "#1851, fix spatial_ref_system parameters for EPSG:3844"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:43
+#: release_notes.xml:583
 #, no-c-format
 msgid "#1857, fix failure to detect endpoint mismatch in ST_AddEdge*Face*"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:44
+#: release_notes.xml:584
 #, no-c-format
 msgid "#1865, data loss in postgis_restore.pl when data rows have leading dashes."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:46
+#: release_notes.xml:586
 #, no-c-format
 msgid "#1867, catch invalid topology name passed to topogeo_add*"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:47
-#, no-c-format
-msgid "#1872, fix ST_ApproxSummarystats to prevent division by zero"
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:48
+#: release_notes.xml:588
 #, no-c-format
 msgid "#1873, fix ptarray_locate_point to return interpolated Z/M values for on-the-line case"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:50
-#, no-c-format
-msgid "#1875, ST_SummaryStats returns NULL for all parameters except count when count is zero"
-msgstr ""
-
-#. Tag: para
-#: release_notes.xml:52
+#: release_notes.xml:592
 #, no-c-format
 msgid "#1881, shp2pgsql-gui -- editing a field sometimes triggers removing row"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:54
+#: release_notes.xml:594
 #, no-c-format
 msgid "#1883, Geocoder install fails trying to run create_census_base_tables() (Brian Panulla)"
 msgstr ""
 
-#. Tag: title
-#: release_notes.xml:58 release_notes.xml:148 release_notes.xml:349 release_notes.xml:404
-#, no-c-format
-msgid "Enhancements"
-msgstr ""
-
 #. Tag: para
-#: release_notes.xml:59
+#: release_notes.xml:599
 #, no-c-format
 msgid "More detailed exception message from topology editing functions."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:60
+#: release_notes.xml:600
 #, no-c-format
 msgid "#1786, improved build dependencies"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:61
+#: release_notes.xml:601
 #, no-c-format
 msgid "#1806, speedup of ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:62
+#: release_notes.xml:602
 #, no-c-format
 msgid "#1812, Add lwgeom_normalize in LIBLWGEOM for more stable testing."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:66
+#: release_notes.xml:606
 #, no-c-format
 msgid "Release 2.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:67
+#: release_notes.xml:607
 #, no-c-format
 msgid "Release date: 2012/04/03"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:68
+#: release_notes.xml:608
 #, no-c-format
 msgid "This is a major release. A hard upgrade is required. Yes this means a full dump reload and some special preparations if you are using obsolete functions. Refer to <xref linkend=\"hard_upgrade\"/> for details on upgrading. Refer to <xref linkend=\"NewFunctions_2_0\"/> for more details and changed/new functions."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:72
+#: release_notes.xml:612
 #, no-c-format
 msgid "Testers - Our unsung heroes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:73
+#: release_notes.xml:613
 #, no-c-format
 msgid "We are most indebted to the numerous members in the PostGIS community who were brave enough to test out the new features in this release. No major release can be successful without these folk."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:76
+#: release_notes.xml:616
 #, no-c-format
 msgid "Below are those who have been most valiant, provided very detailed and thorough bug reports, and detailed analysis."
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:80
+#: release_notes.xml:620
 #, no-c-format
 msgid "Andrea Peri - Lots of testing on topology, checking for correctness"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:81
+#: release_notes.xml:621
 #, no-c-format
 msgid "Andreas Forø Tollefsen - raster testing"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:82
+#: release_notes.xml:622
 #, no-c-format
 msgid "Chris English - topology stress testing loader functions"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:83
+#: release_notes.xml:623
 #, no-c-format
 msgid "Salvatore Larosa - topology robustness testing"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:84
+#: release_notes.xml:624
 #, no-c-format
 msgid "Brian Hamlin - Benchmarking (also experimental experimental branches before they are folded into core) , general testing of various pieces including Tiger and Topology. Testing on various server VMs"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:89
+#: release_notes.xml:629
 #, no-c-format
 msgid "Mike Pease - Tiger geocoder testing - very detailed reports of issues"
 msgstr ""
 
 #. Tag: member
-#: release_notes.xml:90
+#: release_notes.xml:630
 #, no-c-format
 msgid "Tom van Tilburg - raster testing"
 msgstr ""
 
-#. Tag: title
-#: release_notes.xml:94
-#, no-c-format
-msgid "Important / Breaking Changes"
-msgstr ""
-
 #. Tag: para
-#: release_notes.xml:95
+#: release_notes.xml:635
 #, no-c-format
 msgid "#722, #302, Most deprecated functions removed (over 250 functions) (Regina Obe, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:96
+#: release_notes.xml:636
 #, no-c-format
 msgid "Unknown SRID changed from -1 to 0. (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:97
+#: release_notes.xml:637
 #, no-c-format
 msgid "-- (most deprecated in 1.2) removed non-ST variants buffer, length, intersects (and internal functions renamed) etc."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:99
+#: release_notes.xml:639
 #, no-c-format
-msgid "-- If you have been using deprecated functions CHANGE your apps or suffer the consequences. If you don't see a function documented -- it ain't supported or it is an internal function. Some constraints in older tables were built with deprecated functions. If you restore you may need to rebuild table constraints with populate_geometry_columns(). If you have applications or tools that rely on deprecated functions, please refer to <link linkend=\"legacy_faq\"></link> for more details."
+msgid "-- If you have been using deprecated functions CHANGE your apps or suffer the consequences. If you don't see a function documented -- it ain't supported or it is an internal function. Some constraints in older tables were built with deprecated functions. If you restore you may need to rebuild table constraints with populate_geometry_columns(). If you have applications or tools that rely on deprecated functions, please refer to <xref linkend=\"legacy_faq\"/> for more details."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:104
+#: release_notes.xml:644
 #, no-c-format
 msgid "#944 geometry_columns is now a view instead of a table (Paul Ramsey, Regina Obe) for tables created the old way reads (srid, type, dims) constraints for geometry columns created with type modifiers reads rom column definition"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:109
+#: release_notes.xml:649
 #, no-c-format
 msgid "#1081, #1082, #1084, #1088 - Mangement functions support typmod geometry column creation functions now default to typmod creation (Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:112
+#: release_notes.xml:652
 #, no-c-format
 msgid "#1083 probe_geometry_columns(), rename_geometry_table_constraints(), fix_geometry_columns(); removed - now obsolete with geometry_column view (Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:116
+#: release_notes.xml:656
 #, no-c-format
 msgid "#817 Renaming old 3D functions to the convention ST_3D (Nicklas Avén)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:117
+#: release_notes.xml:657
 #, no-c-format
 msgid "#548 (sorta), ST_NumGeometries,ST_GeometryN now returns 1 (or the geometry) instead of null for single geometries (Sandro Santilli, Maxime van Noppen)"
 msgstr ""
 
-#. Tag: title
-#: release_notes.xml:121 release_notes.xml:321 release_notes.xml:385 release_notes.xml:682
-#, no-c-format
-msgid "New Features"
-msgstr ""
-
 #. Tag: ulink
-#: release_notes.xml:122
+#: release_notes.xml:662
 #, no-c-format
 msgid "KNN Gist index based centroid (<->) and box (<#>) distance operators (Paul Ramsey / funded by Vizzuality)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:123
+#: release_notes.xml:663
 #, no-c-format
 msgid "Support for TIN and PolyHedralSurface and enhancement of many functions to support 3D (Olivier Courtin / Oslandia)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:124
+#: release_notes.xml:664
 #, no-c-format
 msgid "<ulink url=\"http://trac.osgeo.org/postgis/wiki/WKTRaster/PlanningAndFunding\">Raster support integrated and documented</ulink> (Pierre Racine, Jorge Arévalo, Mateusz Loskot, Sandro Santilli, David Zwarg, Regina Obe, Bborie Park) (Company developer and funding: University Laval, Deimos Space, CadCorp, Michigan Tech Research Institute, Azavea, Paragon Corporation, UC Davis Center for Vectorborne Diseases)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:127
+#: release_notes.xml:667
 #, no-c-format
 msgid "Making spatial indexes 3D aware - in progress (Paul Ramsey, Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:128
+#: release_notes.xml:668
 #, no-c-format
 msgid "Topology support improved (more functions), documented, testing (Sandro Santilli / Faunalia for RT-SIGTA), Andrea Peri, Regina Obe, Jose Carlos Martinez Llari"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:129
+#: release_notes.xml:669
 #, no-c-format
 msgid "3D relationship and measurement support functions (Nicklas Avén)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:130
+#: release_notes.xml:670
 #, no-c-format
 msgid "ST_3DDistance, ST_3DClosestPoint, ST_3DIntersects, ST_3DShortestLine and more..."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:131
+#: release_notes.xml:671
 #, no-c-format
 msgid "N-Dimensional spatial indexes (Paul Ramsey / OpenGeo)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:132
+#: release_notes.xml:672
 #, no-c-format
 msgid "ST_Split (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:133
+#: release_notes.xml:673
 #, no-c-format
 msgid "ST_IsValidDetail (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:134
+#: release_notes.xml:674
 #, no-c-format
 msgid "ST_MakeValid (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:135
+#: release_notes.xml:675
 #, no-c-format
 msgid "ST_RemoveRepeatedPoints (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:136
+#: release_notes.xml:676
 #, no-c-format
 msgid "ST_GeometryN and ST_NumGeometries support for non-collections (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:137
+#: release_notes.xml:677
 #, no-c-format
 msgid "ST_IsCollection (Sandro Santilli, Maxime van Noppen)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:138
+#: release_notes.xml:678
 #, no-c-format
 msgid "ST_SharedPaths (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:139
+#: release_notes.xml:679
 #, no-c-format
 msgid "ST_Snap (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:140
+#: release_notes.xml:680
 #, no-c-format
 msgid "ST_RelateMatch (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:141
+#: release_notes.xml:681
 #, no-c-format
 msgid "ST_ConcaveHull (Regina Obe and Leo Hsu / Paragon Corporation)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:142
+#: release_notes.xml:682
 #, no-c-format
 msgid "ST_UnaryUnion (Sandro Santilli / Faunalia for RT-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:143
+#: release_notes.xml:683
 #, no-c-format
 msgid "ST_AsX3D (Regina Obe / Arrival 3D funding)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:144
+#: release_notes.xml:684
 #, no-c-format
 msgid "ST_OffsetCurve (Sandro Santilli, Rafal Magda)"
 msgstr ""
 
 #. Tag: ulink
-#: release_notes.xml:145
+#: release_notes.xml:685
 #, no-c-format
 msgid "ST_GeomFromGeoJSON (Kashif Rasul, Paul Ramsey / Vizzuality funding)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:149
+#: release_notes.xml:689
 #, no-c-format
 msgid "Made shape file loader tolerant of truncated multibyte values found in some free worldwide shapefiles (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:150
+#: release_notes.xml:690
 #, no-c-format
 msgid "Lots of bug fixes and enhancements to shp2pgsql Beefing up regression tests for loaders Reproject support for both geometry and geography during import (Jeff Adams / Azavea, Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:154
+#: release_notes.xml:694
 #, no-c-format
 msgid "pgsql2shp conversion from predefined list (Loic Dachary / Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:156
+#: release_notes.xml:696
 #, no-c-format
 msgid "Shp-pgsql GUI loader - support loading multiple files at a time. (Mark Leslie)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:157
+#: release_notes.xml:697
 #, no-c-format
 msgid "Extras - upgraded tiger_geocoder from using old TIGER format to use new TIGER shp and file structure format (Stephen Frost)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:158
+#: release_notes.xml:698
 #, no-c-format
 msgid "Extras - revised tiger_geocoder to work with TIGER census 2010 data, addition of reverse geocoder function, various bug fixes, accuracy enhancements, limit max result return, speed improvements, loading routines. (Regina Obe, Leo Hsu / Paragon Corporation / funding provided by Hunter Systems Group)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:161
+#: release_notes.xml:701
 #, no-c-format
 msgid "Overall Documentation proofreading and corrections. (Kasif Rasul)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:162
+#: release_notes.xml:702
 #, no-c-format
 msgid "Cleanup PostGIS JDBC classes, revise to use Maven build. (Maria Arias de Reyna, Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:166
+#: release_notes.xml:706
 #, no-c-format
 msgid "#1335 ST_AddPoint returns incorrect result on Linux (Even Rouault)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:169
+#: release_notes.xml:709
 #, no-c-format
 msgid "Release specific credits"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:170
+#: release_notes.xml:710
 #, no-c-format
 msgid "We thank <ulink url=\"http://blog.opengeo.org/2012/02/01/it-goes-up-to-2-0/\">U.S Department of State Human Information Unit (HIU)</ulink> and <ulink url=\"http://blog.cartodb.com/post/17318840209/postgis-core-committer-sandro-santilli-joins-cartodb\">Vizzuality</ulink> for general monetary support to get PostGIS 2.0 out the door."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:175
+#: release_notes.xml:715
 #, no-c-format
 msgid "Release 1.5.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:176
+#: release_notes.xml:716
 #, no-c-format
 msgid "Release date: 2012/05/07"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:177
+#: release_notes.xml:717
 #, no-c-format
 msgid "This is a bug fix release, addressing issues that have been filed since the 1.5.3 release."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:180
+#: release_notes.xml:720
 #, no-c-format
 msgid "#547, ST_Contains memory problems (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:181
+#: release_notes.xml:721
 #, no-c-format
 msgid "#621, Problem finding intersections with geography (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:182
+#: release_notes.xml:722
 #, no-c-format
 msgid "#627, PostGIS/PostgreSQL process die on invalid geometry (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:183
+#: release_notes.xml:723
 #, no-c-format
 msgid "#810, Increase accuracy of area calculation (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:184
+#: release_notes.xml:724
 #, no-c-format
 msgid "#852, improve spatial predicates robustness (Sandro Santilli, Nicklas Avén)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:185
+#: release_notes.xml:725
 #, no-c-format
 msgid "#877, ST_Estimated_Extent returns NULL on empty tables (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:186
+#: release_notes.xml:726
 #, no-c-format
 msgid "#1028, ST_AsSVG kills whole postgres server when fails (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:187
+#: release_notes.xml:727
 #, no-c-format
 msgid "#1056, Fix boxes of arcs and circle stroking code (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:188
+#: release_notes.xml:728
 #, no-c-format
 msgid "#1121, populate_geometry_columns using deprecated functions (Regin Obe, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:189
+#: release_notes.xml:729
 #, no-c-format
 msgid "#1135, improve testsuite predictability (Andreas 'ads' Scherbaum)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:190
+#: release_notes.xml:730
 #, no-c-format
 msgid "#1146, images generator crashes (bronaugh)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:191
+#: release_notes.xml:731
 #, no-c-format
 msgid "#1170, North Pole intersection fails (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:192
+#: release_notes.xml:732
 #, no-c-format
 msgid "#1179, ST_AsText crash with bad value (kjurka)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:193
+#: release_notes.xml:733
 #, no-c-format
 msgid "#1184, honour DESTDIR in documentation Makefile (Bryce L Nordgren)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:194
+#: release_notes.xml:734
 #, no-c-format
 msgid "#1227, server crash on invalid GML"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:195
+#: release_notes.xml:735
 #, no-c-format
 msgid "#1252, SRID appearing in WKT (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:196
+#: release_notes.xml:736
 #, no-c-format
 msgid "#1264, st_dwithin(g, g, 0) doesn't work (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:197
+#: release_notes.xml:737
 #, no-c-format
 msgid "#1344, allow exporting tables with invalid geometries (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:198
+#: release_notes.xml:738
 #, no-c-format
 msgid "#1389, wrong proj4text for SRID 31300 and 31370 (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:199
+#: release_notes.xml:739
 #, no-c-format
 msgid "#1406, shp2pgsql crashes when loading into geography (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:200
+#: release_notes.xml:740
 #, no-c-format
 msgid "#1595, fixed SRID redundancy in ST_Line_SubString (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:201
+#: release_notes.xml:741
 #, no-c-format
 msgid "#1596, check SRID in UpdateGeometrySRID (Mike Toews, Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:202
+#: release_notes.xml:742
 #, no-c-format
 msgid "#1602, fix ST_Polygonize to retain Z (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:203
+#: release_notes.xml:743
 #, no-c-format
 msgid "#1697, fix crash with EMPTY entries in GiST index (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:204
+#: release_notes.xml:744
 #, no-c-format
 msgid "#1772, fix ST_Line_Locate_Point with collapsed input (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:205
+#: release_notes.xml:745
 #, no-c-format
 msgid "#1799, Protect ST_Segmentize from max_length=0 (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:206
+#: release_notes.xml:746
 #, no-c-format
 msgid "Alter parameter order in 900913 (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:207
+#: release_notes.xml:747
 #, no-c-format
 msgid "Support builds with \"gmake\" (Greg Troxel)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:212
+#: release_notes.xml:752
 #, no-c-format
 msgid "Release 1.5.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:213
+#: release_notes.xml:753
 #, no-c-format
 msgid "Release date: 2011/06/25"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:214
+#: release_notes.xml:754
 #, no-c-format
 msgid "This is a bug fix release, addressing issues that have been filed since the 1.5.2 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient otherwise a hard upgrade is recommended."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:218
+#: release_notes.xml:758
 #, no-c-format
 msgid "#1056, produce correct bboxes for arc geometries, fixes index errors (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:220
+#: release_notes.xml:760
 #, no-c-format
 msgid "#1007, ST_IsValid crash fix requires GEOS 3.3.0+ or 3.2.3+ (Sandro Santilli, reported by Birgit Laggner)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:222
+#: release_notes.xml:762
 #, no-c-format
 msgid "#940, support for PostgreSQL 9.1 beta 1 (Regina Obe, Paul Ramsey, patch submitted by stl)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:224
+#: release_notes.xml:764
 #, no-c-format
 msgid "#845, ST_Intersects precision error (Sandro Santilli, Nicklas Avén) Reported by cdestigter"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:226
+#: release_notes.xml:766
 #, no-c-format
 msgid "#884, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:227
+#: release_notes.xml:767
 #, no-c-format
 msgid "#779, shp2pgsql -S option seems to fail on points (Jeff Adams)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:228
+#: release_notes.xml:768
 #, no-c-format
 msgid "#666, ST_DumpPoints is not null safe (Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:229
+#: release_notes.xml:769
 #, no-c-format
 msgid "#631, Update NZ projections for grid transformation support (jpalmer)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:230
+#: release_notes.xml:770
 #, no-c-format
 msgid "#630, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson) Reported by David Bitner"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:232
+#: release_notes.xml:772
 #, no-c-format
 msgid "#624, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:233
+#: release_notes.xml:773
 #, no-c-format
 msgid "#609, Bad source code in manual section 5.2 Java Clients (simoc, Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:234
+#: release_notes.xml:774
 #, no-c-format
 msgid "#604, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:235
+#: release_notes.xml:775
 #, no-c-format
 msgid "#573 ST_Union fails on a group of linestrings Not a PostGIS bug, fixed in GEOS 3.3.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:237
+#: release_notes.xml:777
 #, no-c-format
 msgid "#457 ST_CollectionExtract returns non-requested type (Nicklas Avén, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:239
+#: release_notes.xml:779
 #, no-c-format
 msgid "#441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:240
+#: release_notes.xml:780
 #, no-c-format
 msgid "#411 Ability to backup invalid geometries (Sando Santilli) Reported by Regione Toscana"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:242
+#: release_notes.xml:782
 #, no-c-format
 msgid "#409 ST_AsSVG - degraded (Olivier Courtin) Reported by Sdikiy"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:244
+#: release_notes.xml:784
 #, no-c-format
 msgid "#373 Documentation syntax error in hard upgrade (Paul Ramsey) Reported by psvensso"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:250
+#: release_notes.xml:790
 #, no-c-format
 msgid "Release 1.5.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:251
+#: release_notes.xml:791
 #, no-c-format
 msgid "Release date: 2010/09/27"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:252
+#: release_notes.xml:792
 #, no-c-format
 msgid "This is a bug fix release, addressing issues that have been filed since the 1.5.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient otherwise a hard upgrade is recommended."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:256
+#: release_notes.xml:796
 #, no-c-format
 msgid "Loader: fix handling of empty (0-verticed) geometries in shapefiles. (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:257
+#: release_notes.xml:797
 #, no-c-format
 msgid "#536, Geography ST_Intersects, ST_Covers, ST_CoveredBy and Geometry ST_Equals not using spatial index (Regina Obe, Nicklas Aven)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:258
+#: release_notes.xml:798
 #, no-c-format
 msgid "#573, Improvement to ST_Contains geography (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:259
+#: release_notes.xml:799
 #, no-c-format
 msgid "Loader: Add support for command-q shutdown in Mac GTK build (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:260
+#: release_notes.xml:800
 #, no-c-format
 msgid "#393, Loader: Add temporary patch for large DBF files (Maxime Guillaud, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:261
+#: release_notes.xml:801
 #, no-c-format
 msgid "#507, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:262
+#: release_notes.xml:802
 #, no-c-format
 msgid "spatial_ref_sys.sql Add datum conversion for projection SRID 3021 (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:263
+#: release_notes.xml:803
 #, no-c-format
 msgid "Geography - remove crash for case when all geographies are out of the estimate (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:264
+#: release_notes.xml:804
 #, no-c-format
 msgid "#469, Fix for array_aggregation error (Greg Stark, Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:265
+#: release_notes.xml:805
 #, no-c-format
 msgid "#532, Temporary geography tables showing up in other user sessions (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:266
+#: release_notes.xml:806
 #, no-c-format
 msgid "#562, ST_Dwithin errors for large geographies (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:267
+#: release_notes.xml:807
 #, no-c-format
 msgid "#513, shape loading GUI tries to make spatial index when loading DBF only mode (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:268
+#: release_notes.xml:808
 #, no-c-format
 msgid "#527, shape loading GUI should always append log messages (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:269
+#: release_notes.xml:809
 #, no-c-format
 msgid "#504, shp2pgsql should rename xmin/xmax fields (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:270
+#: release_notes.xml:810
 #, no-c-format
 msgid "#458, postgis_comments being installed in contrib instead of version folder (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:271
+#: release_notes.xml:811
 #, no-c-format
 msgid "#474, Analyzing a table with geography column crashes server (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:272
+#: release_notes.xml:812
 #, no-c-format
 msgid "#581, LWGEOM-expand produces inconsistent results (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:273
+#: release_notes.xml:813
 #, no-c-format
 msgid "#513, Add dbf filter to shp2pgsql-gui and allow uploading dbf only (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:274
+#: release_notes.xml:814
 #, no-c-format
 msgid "Fix further build issues against PostgreSQL 9.0 (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:275
+#: release_notes.xml:815
 #, no-c-format
 msgid "#572, Password whitespace for Shape File (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:276
+#: release_notes.xml:816
 #, no-c-format
 msgid "#603, shp2pgsql: \"-w\" produces invalid WKT for MULTI* objects. (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:281
+#: release_notes.xml:821
 #, no-c-format
 msgid "Release 1.5.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:282
+#: release_notes.xml:822
 #, no-c-format
 msgid "Release date: 2010/03/11"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:283
+#: release_notes.xml:823
 #, no-c-format
 msgid "This is a bug fix release, addressing issues that have been filed since the 1.4.1 release. If you are running PostGIS 1.3+, a soft upgrade is sufficient otherwise a hard upgrade is recommended."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:287
+#: release_notes.xml:827
 #, no-c-format
 msgid "#410, update embedded bbox when applying ST_SetPoint, ST_AddPoint ST_RemovePoint to a linestring (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:288
+#: release_notes.xml:828
 #, no-c-format
 msgid "#411, allow dumping tables with invalid geometries (Sandro Santilli, for Regione Toscana-SIGTA)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:289
+#: release_notes.xml:829
 #, no-c-format
 msgid "#414, include geography_columns view when running upgrade scripts (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:290
+#: release_notes.xml:830
 #, no-c-format
 msgid "#419, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, for Lidwala Consulting Engineers)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:291
+#: release_notes.xml:831
 #, no-c-format
 msgid "#421, fix computed string length in ST_AsGML() (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:292
+#: release_notes.xml:832
 #, no-c-format
 msgid "#441, fix GML generation with heterogeneous collections (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:293
+#: release_notes.xml:833
 #, no-c-format
 msgid "#443, incorrect coordinate reversal in GML 3 generation (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:294
+#: release_notes.xml:834
 #, no-c-format
 msgid "#450, #451, wrong area calculation for geography features that cross the date line (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:295
+#: release_notes.xml:835
 #, no-c-format
 msgid "Ensure support for upcoming 9.0 PgSQL release (Paul Ramsey)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:300
+#: release_notes.xml:840
 #, no-c-format
 msgid "Release 1.5.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:301
+#: release_notes.xml:841
 #, no-c-format
 msgid "Release date: 2010/02/04"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:302
+#: release_notes.xml:842
 #, no-c-format
 msgid "This release provides support for geographic coordinates (lat/lon) via a new GEOGRAPHY type. Also performance enhancements, new input format support (GML,KML) and general upkeep."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:305 release_notes.xml:372
+#: release_notes.xml:845 release_notes.xml:912
 #, no-c-format
 msgid "API Stability"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:306
+#: release_notes.xml:846
 #, no-c-format
 msgid "The public API of PostGIS will not change during minor (0.0.X) releases."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:307
+#: release_notes.xml:847
 #, no-c-format
 msgid "The definition of the =~ operator has changed from an exact geometric equality check to a bounding box equality check."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:311 release_notes.xml:377
+#: release_notes.xml:851 release_notes.xml:917
 #, no-c-format
 msgid "Compatibility"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:312
+#: release_notes.xml:852
 #, no-c-format
 msgid "GEOS, Proj4, and LibXML2 are now mandatory dependencies"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:313
+#: release_notes.xml:853
 #, no-c-format
 msgid "The library versions below are the minimum requirements for PostGIS 1.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:314
+#: release_notes.xml:854
 #, no-c-format
 msgid "PostgreSQL 8.3 and higher on all platforms"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:315
+#: release_notes.xml:855
 #, no-c-format
 msgid "GEOS 3.1 and higher only (GEOS 3.2+ to take advantage of all features)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:316
+#: release_notes.xml:856
 #, no-c-format
 msgid "LibXML2 2.5+ related to new ST_GeomFromGML/KML functionality"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:317
+#: release_notes.xml:857
 #, no-c-format
 msgid "Proj4 4.5 and higher only"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:323
+#: release_notes.xml:863
 #, no-c-format
 msgid "Added Hausdorff distance calculations (#209) (Vincent Picavet)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:324
+#: release_notes.xml:864
 #, no-c-format
 msgid "Added parameters argument to ST_Buffer operation to support one-sided buffering and other buffering styles (Sandro Santilli)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:325
+#: release_notes.xml:865
 #, no-c-format
 msgid "Addition of other Distance related visualization and analysis functions (Nicklas Aven)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:327
+#: release_notes.xml:867
 #, no-c-format
 msgid "ST_ClosestPoint"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:328
+#: release_notes.xml:868
 #, no-c-format
 msgid "ST_DFullyWithin"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:329
+#: release_notes.xml:869
 #, no-c-format
 msgid "ST_LongestLine"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:330
+#: release_notes.xml:870
 #, no-c-format
 msgid "ST_MaxDistance"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:331
+#: release_notes.xml:871
 #, no-c-format
 msgid "ST_ShortestLine"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:333
+#: release_notes.xml:873
 #, no-c-format
 msgid "ST_DumpPoints (Maxime van Noppen)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:334
+#: release_notes.xml:874
 #, no-c-format
 msgid "KML, GML input via ST_GeomFromGML and ST_GeomFromKML (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:335
+#: release_notes.xml:875
 #, no-c-format
 msgid "Extract homogeneous collection with ST_CollectionExtract (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:336
+#: release_notes.xml:876
 #, no-c-format
 msgid "Add measure values to an existing linestring with ST_AddMeasure (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:337
+#: release_notes.xml:877
 #, no-c-format
 msgid "History table implementation in utils (George Silva)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:338
+#: release_notes.xml:878
 #, no-c-format
 msgid "Geography type and supporting functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:340
+#: release_notes.xml:880
 #, no-c-format
 msgid "Spherical algorithms (Dave Skea)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:341
+#: release_notes.xml:881
 #, no-c-format
 msgid "Object/index implementation (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:342
+#: release_notes.xml:882
 #, no-c-format
 msgid "Selectivity implementation (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:343
+#: release_notes.xml:883
 #, no-c-format
 msgid "Serializations to KML, GML and JSON (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:344
+#: release_notes.xml:884
 #, no-c-format
 msgid "ST_Area, ST_Distance, ST_DWithin, ST_GeogFromText, ST_GeogFromWKB, ST_Intersects, ST_Covers, ST_Buffer (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:350
+#: release_notes.xml:890
 #, no-c-format
 msgid "Performance improvements to ST_Distance (Nicklas Aven)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:351
+#: release_notes.xml:891
 #, no-c-format
 msgid "Documentation updates and improvements (Regina Obe, Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:352
+#: release_notes.xml:892
 #, no-c-format
 msgid "Testing and quality control (Regina Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:353
+#: release_notes.xml:893
 #, no-c-format
 msgid "PostGIS 1.5 support PostgreSQL 8.5 trunk (Guillaume Lelarge)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:354
+#: release_notes.xml:894
 #, no-c-format
 msgid "Win32 support and improvement of core shp2pgsql-gui (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:355
+#: release_notes.xml:895
 #, no-c-format
 msgid "In place 'make check' support (Paul Ramsey)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:359 release_notes.xml:425 release_notes.xml:610 release_notes.xml:661 release_notes.xml:712 release_notes.xml:846 release_notes.xml:912 release_notes.xml:1022 release_notes.xml:1129 release_notes.xml:1249 release_notes.xml:1314 release_notes.xml:1361
+#: release_notes.xml:899 release_notes.xml:965 release_notes.xml:1150 release_notes.xml:1201 release_notes.xml:1252 release_notes.xml:1386 release_notes.xml:1452 release_notes.xml:1562 release_notes.xml:1669 release_notes.xml:1789 release_notes.xml:1854 release_notes.xml:1901
 #, no-c-format
 msgid "Bug fixes"
 msgstr ""
 
 #. Tag: ulink
-#: release_notes.xml:360
+#: release_notes.xml:900
 #, no-c-format
 msgid "http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS+1.5.0&order=priority"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:365
+#: release_notes.xml:905
 #, no-c-format
 msgid "Release 1.4.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:366
+#: release_notes.xml:906
 #, no-c-format
 msgid "Release date: 2009/07/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:367
+#: release_notes.xml:907
 #, no-c-format
 msgid "This release provides performance enhancements, improved internal structures and testing, new features, and upgraded documentation. If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a hard upgrade is recommended."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:373
+#: release_notes.xml:913
 #, no-c-format
 msgid "As of the 1.4 release series, the public API of PostGIS will not change during minor releases."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:378
+#: release_notes.xml:918
 #, no-c-format
 msgid "The versions below are the *minimum* requirements for PostGIS 1.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:379
+#: release_notes.xml:919
 #, no-c-format
 msgid "PostgreSQL 8.2 and higher on all platforms"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:380
+#: release_notes.xml:920
 #, no-c-format
 msgid "GEOS 3.0 and higher only"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:381
+#: release_notes.xml:921
 #, no-c-format
 msgid "PROJ4 4.5 and higher only"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:386
+#: release_notes.xml:926
 #, no-c-format
 msgid "ST_Union() uses high-speed cascaded union when compiled against GEOS 3.1+ (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:388
+#: release_notes.xml:928
 #, no-c-format
 msgid "ST_ContainsProperly() requires GEOS 3.1+"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:389
+#: release_notes.xml:929
 #, no-c-format
 msgid "ST_Intersects(), ST_Contains(), ST_Within() use high-speed cached prepared geometry against GEOS 3.1+ (Paul Ramsey / funded by Zonar Systems)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:390
+#: release_notes.xml:930
 #, no-c-format
 msgid "Vastly improved documentation and reference manual (Regina Obe & Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:391
+#: release_notes.xml:931
 #, no-c-format
 msgid "Figures and diagram examples in the reference manual (Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:392
+#: release_notes.xml:932
 #, no-c-format
 msgid "ST_IsValidReason() returns readable explanations for validity failures (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:393
+#: release_notes.xml:933
 #, no-c-format
 msgid "ST_GeoHash() returns a geohash.org signature for geometries (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:394
+#: release_notes.xml:934
 #, no-c-format
 msgid "GTK+ multi-platform GUI for shape file loading (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:395
+#: release_notes.xml:935
 #, no-c-format
 msgid "ST_LineCrossingDirection() returns crossing directions (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:396
+#: release_notes.xml:936
 #, no-c-format
 msgid "ST_LocateBetweenElevations() returns sub-string based on Z-ordinate. (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:397
+#: release_notes.xml:937
 #, no-c-format
 msgid "Geometry parser returns explicit error message about location of syntax errors (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:398
+#: release_notes.xml:938
 #, no-c-format
 msgid "ST_AsGeoJSON() return JSON formatted geometry (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:399
+#: release_notes.xml:939
 #, no-c-format
 msgid "Populate_Geometry_Columns() -- automatically add records to geometry_columns for TABLES and VIEWS (Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:400
+#: release_notes.xml:940
 #, no-c-format
 msgid "ST_MinimumBoundingCircle() -- returns the smallest circle polygon that can encompass a geometry (Bruce Rindahl)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:405
+#: release_notes.xml:945
 #, no-c-format
 msgid "Core geometry system moved into independent library, liblwgeom. (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:406
+#: release_notes.xml:946
 #, no-c-format
 msgid "New build system uses PostgreSQL \"pgxs\" build bootstrapper. (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:407
+#: release_notes.xml:947
 #, no-c-format
 msgid "Debugging framework formalized and simplified. (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:408
+#: release_notes.xml:948
 #, no-c-format
 msgid "All build-time #defines generated at configure time and placed in headers for easier cross-platform support (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:409
+#: release_notes.xml:949
 #, no-c-format
 msgid "Logging framework formalized and simplified (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:410
+#: release_notes.xml:950
 #, no-c-format
 msgid "Expanded and more stable support for CIRCULARSTRING, COMPOUNDCURVE and CURVEPOLYGON, better parsing, wider support in functions (Mark Leslie & Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:411
+#: release_notes.xml:951
 #, no-c-format
 msgid "Improved support for OpenSolaris builds (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:412
+#: release_notes.xml:952
 #, no-c-format
 msgid "Improved support for MSVC builds (Mateusz Loskot)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:413
+#: release_notes.xml:953
 #, no-c-format
 msgid "Updated KML support (Olivier Courtin)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:414
+#: release_notes.xml:954
 #, no-c-format
 msgid "Unit testing framework for liblwgeom (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:415
+#: release_notes.xml:955
 #, no-c-format
 msgid "New testing framework to comprehensively exercise every PostGIS function (Regine Obe)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:416
+#: release_notes.xml:956
 #, no-c-format
 msgid "Performance improvements to all geometry aggregate functions (Paul Ramsey)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:417
+#: release_notes.xml:957
 #, no-c-format
 msgid "Support for the upcoming PostgreSQL 8.4 (Mark Cave-Ayland, Talha Bin Rizwan)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:418
+#: release_notes.xml:958
 #, no-c-format
 msgid "Shp2pgsql and pgsql2shp re-worked to depend on the common parsing/unparsing code in liblwgeom (Mark Cave-Ayland)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:419
+#: release_notes.xml:959
 #, no-c-format
 msgid "Use of PDF DbLatex to build PDF docs and preliminary instructions for build (Jean David Techer)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:420
+#: release_notes.xml:960
 #, no-c-format
 msgid "Automated User documentation build (PDF and HTML) and Developer Doxygen Documentation (Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:421
+#: release_notes.xml:961
 #, no-c-format
 msgid "Automated build of document images using ImageMagick from WKT geometry text files (Kevin Neufeld)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:422
+#: release_notes.xml:962
 #, no-c-format
 msgid "More attractive CSS for HTML documentation (Dane Springmeyer)"
 msgstr ""
 
 #. Tag: ulink
-#: release_notes.xml:426
+#: release_notes.xml:966
 #, no-c-format
 msgid "http://trac.osgeo.org/postgis/query?status=closed&milestone=PostGIS+1.4.0&order=priority"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:431
+#: release_notes.xml:971
 #, no-c-format
 msgid "Release 1.3.6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:432
+#: release_notes.xml:972
 #, no-c-format
 msgid "Release date: 2009/05/04"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:433
+#: release_notes.xml:973
 #, no-c-format
 msgid "If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a hard upgrade is recommended. This release adds support for PostgreSQL 8.4, exporting prj files from the database with shape data, some crash fixes for shp2pgsql, and several small bug fixes in the handling of \"curve\" types, logical error importing dbf only files, improved error handling of AddGeometryColumns."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:440
+#: release_notes.xml:980
 #, no-c-format
 msgid "Release 1.3.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:441
+#: release_notes.xml:981
 #, no-c-format
 msgid "Release date: 2008/12/15"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:442
+#: release_notes.xml:982
 #, no-c-format
 msgid "If you are running PostGIS 1.1+, a soft upgrade is sufficient otherwise a hard upgrade is recommended. This release is a bug fix release to address a failure in ST_Force_Collection and related functions that critically affects using MapServer with LINE layers."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:449
+#: release_notes.xml:989
 #, no-c-format
 msgid "Release 1.3.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:450
+#: release_notes.xml:990
 #, no-c-format
 msgid "Release date: 2008/11/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:451
+#: release_notes.xml:991
 #, no-c-format
 msgid "This release adds support for GeoJSON output, building with PostgreSQL 8.4, improves documentation quality and output aesthetics, adds function-level SQL documentation, and improves performance for some spatial predicates (point-in-polygon tests)."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:456
+#: release_notes.xml:996
 #, no-c-format
 msgid "Bug fixes include removal of crashers in handling circular strings for many functions, some memory leaks removed, a linear referencing failure for measures on vertices, and more. See the NEWS file for details."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:463
+#: release_notes.xml:1003
 #, no-c-format
 msgid "Release 1.3.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:465
+#: release_notes.xml:1005
 #, no-c-format
 msgid "Release date: 2008/04/12"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:467
+#: release_notes.xml:1007
 #, no-c-format
 msgid "This release fixes bugs shp2pgsql, adds enhancements to SVG and KML support, adds a ST_SimplifyPreserveTopology function, makes the build more sensitive to GEOS versions, and fixes a handful of severe but rare failure cases."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:474
+#: release_notes.xml:1014
 #, no-c-format
 msgid "Release 1.3.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:476
+#: release_notes.xml:1016
 #, no-c-format
 msgid "Release date: 2007/12/01"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:478
+#: release_notes.xml:1018
 #, no-c-format
 msgid "This release fixes bugs in ST_EndPoint() and ST_Envelope, improves support for JDBC building and OS/X, and adds better support for GML output with ST_AsGML(), including GML3 output."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:484
+#: release_notes.xml:1024
 #, no-c-format
 msgid "Release 1.3.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:486
+#: release_notes.xml:1026
 #, no-c-format
 msgid "Release date: 2007/08/13"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:488
+#: release_notes.xml:1028
 #, no-c-format
 msgid "This release fixes some oversights in the previous release around version numbering, documentation, and tagging."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:493
+#: release_notes.xml:1033
 #, no-c-format
 msgid "Release 1.3.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:495
+#: release_notes.xml:1035
 #, no-c-format
 msgid "Release date: 2007/08/09"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:497
+#: release_notes.xml:1037
 #, no-c-format
 msgid "This release provides performance enhancements to the relational functions, adds new relational functions and begins the migration of our function names to the SQL-MM convention, using the spatial type (SP) prefix."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:503
+#: release_notes.xml:1043
 #, no-c-format
 msgid "Added Functionality"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:505
+#: release_notes.xml:1045
 #, no-c-format
 msgid "JDBC: Added Hibernate Dialect (thanks to Norman Barker)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:507
+#: release_notes.xml:1047
 #, no-c-format
 msgid "Added ST_Covers and ST_CoveredBy relational functions. Description and justification of these functions can be found at <ulink url=\"http://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html\">http://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html</ulink>"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:511
+#: release_notes.xml:1051
 #, no-c-format
 msgid "Added ST_DWithin relational function."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:515
+#: release_notes.xml:1055
 #, no-c-format
 msgid "Performance Enhancements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:517
+#: release_notes.xml:1057
 #, no-c-format
 msgid "Added cached and indexed point-in-polygon short-circuits for the functions ST_Contains, ST_Intersects, ST_Within and ST_Disjoint"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:520
+#: release_notes.xml:1060
 #, no-c-format
 msgid "Added inline index support for relational functions (except ST_Disjoint)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:525
+#: release_notes.xml:1065
 #, no-c-format
 msgid "Other Changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:527
+#: release_notes.xml:1067
 #, no-c-format
 msgid "Extended curved geometry support into the geometry accessor and some processing functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:530
+#: release_notes.xml:1070
 #, no-c-format
 msgid "Began migration of functions to the SQL-MM naming convention; using a spatial type (ST) prefix."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:533
+#: release_notes.xml:1073
 #, no-c-format
 msgid "Added initial support for PostgreSQL 8.3"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:538
+#: release_notes.xml:1078
 #, no-c-format
 msgid "Release 1.2.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:540
+#: release_notes.xml:1080
 #, no-c-format
 msgid "Release date: 2007/01/11"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:542
+#: release_notes.xml:1082
 #, no-c-format
 msgid "This release provides bug fixes in PostgreSQL 8.2 support and some small performance enhancements."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:546 release_notes.xml:574 release_notes.xml:1796
+#: release_notes.xml:1086 release_notes.xml:1114 release_notes.xml:2336
 #, no-c-format
 msgid "Changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:548
+#: release_notes.xml:1088
 #, no-c-format
 msgid "Fixed point-in-polygon shortcut bug in Within()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:550
+#: release_notes.xml:1090
 #, no-c-format
 msgid "Fixed PostgreSQL 8.2 NULL handling for indexes."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:552
+#: release_notes.xml:1092
 #, no-c-format
 msgid "Updated RPM spec files."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:554
+#: release_notes.xml:1094
 #, no-c-format
 msgid "Added short-circuit for Transform() in no-op case."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:556
+#: release_notes.xml:1096
 #, no-c-format
 msgid "JDBC: Fixed JTS handling for multi-dimensional geometries (thanks to Thomas Marti for hint and partial patch). Additionally, now JavaDoc is compiled and packaged. Fixed classpath problems with GCJ. Fixed pgjdbc 8.2 compatibility, losing support for jdk 1.3 and older."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:565
+#: release_notes.xml:1105
 #, no-c-format
 msgid "Release 1.2.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:567
+#: release_notes.xml:1107
 #, no-c-format
 msgid "Release date: 2006/12/08"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:569
+#: release_notes.xml:1109
 #, no-c-format
 msgid "This release provides type definitions along with serialization/deserialization capabilities for SQL-MM defined curved geometries, as well as performance enhancements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:576
+#: release_notes.xml:1116
 #, no-c-format
 msgid "Added curved geometry type support for serialization/deserialization"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:579
+#: release_notes.xml:1119
 #, no-c-format
 msgid "Added point-in-polygon shortcircuit to the Contains and Within functions to improve performance for these cases."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:585
+#: release_notes.xml:1125
 #, no-c-format
 msgid "Release 1.1.6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:587
+#: release_notes.xml:1127
 #, no-c-format
 msgid "Release date: 2006/11/02"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:589
+#: release_notes.xml:1129
 #, no-c-format
 msgid "This is a bugfix release, in particular fixing a critical error with GEOS interface in 64bit systems. Includes an updated of the SRS parameters and an improvement in reprojections (take Z in consideration). Upgrade is <emphasis>encouraged</emphasis>."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:595 release_notes.xml:646 release_notes.xml:697 release_notes.xml:752 release_notes.xml:831 release_notes.xml:897 release_notes.xml:970 release_notes.xml:1114 release_notes.xml:1171 release_notes.xml:1234 release_notes.xml:1292 release_notes.xml:1350 release_notes.xml:1390 release_notes.xml:1442 release_notes.xml:1494 release_notes.xml:1533 release_notes.xml:1570 release_notes.xml:1637 release_notes.xml:1734 release_notes.xml:1788
+#: release_notes.xml:1135 release_notes.xml:1186 release_notes.xml:1237 release_notes.xml:1292 release_notes.xml:1371 release_notes.xml:1437 release_notes.xml:1510 release_notes.xml:1654 release_notes.xml:1711 release_notes.xml:1774 release_notes.xml:1832 release_notes.xml:1890 release_notes.xml:1930 release_notes.xml:1982 release_notes.xml:2034 release_notes.xml:2073 release_notes.xml:2110 release_notes.xml:2177 release_notes.xml:2274 release_notes.xml:2328
 #, no-c-format
 msgid "Upgrading"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:597 release_notes.xml:648 release_notes.xml:699 release_notes.xml:754 release_notes.xml:833 release_notes.xml:899
+#: release_notes.xml:1137 release_notes.xml:1188 release_notes.xml:1239 release_notes.xml:1294 release_notes.xml:1373 release_notes.xml:1439
 #, no-c-format
 msgid "If you are upgrading from release 1.0.3 or later follow the <link linkend=\"soft_upgrade\">soft upgrade</link> procedure."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:600 release_notes.xml:651 release_notes.xml:702 release_notes.xml:757 release_notes.xml:836 release_notes.xml:902 release_notes.xml:978 release_notes.xml:1119 release_notes.xml:1176 release_notes.xml:1239
+#: release_notes.xml:1140 release_notes.xml:1191 release_notes.xml:1242 release_notes.xml:1297 release_notes.xml:1376 release_notes.xml:1442 release_notes.xml:1518 release_notes.xml:1659 release_notes.xml:1716 release_notes.xml:1779
 #, no-c-format
 msgid "If you are upgrading from a release <emphasis>between 1.0.0RC6 and 1.0.2</emphasis> (inclusive) and really want a live upgrade read the <link linkend=\"rel_1.0.3_upgrading\">upgrade section</link> of the 1.0.3 release notes chapter."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:605 release_notes.xml:656 release_notes.xml:707 release_notes.xml:762 release_notes.xml:841 release_notes.xml:907 release_notes.xml:983 release_notes.xml:1124 release_notes.xml:1181 release_notes.xml:1244
+#: release_notes.xml:1145 release_notes.xml:1196 release_notes.xml:1247 release_notes.xml:1302 release_notes.xml:1381 release_notes.xml:1447 release_notes.xml:1523 release_notes.xml:1664 release_notes.xml:1721 release_notes.xml:1784
 #, no-c-format
 msgid "Upgrade from any release prior to 1.0.0RC6 requires an <link linkend=\"hard_upgrade\">hard upgrade</link>."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:612
+#: release_notes.xml:1152
 #, no-c-format
 msgid "fixed CAPI change that broke 64-bit platforms"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:614
+#: release_notes.xml:1154
 #, no-c-format
 msgid "loader/dumper: fixed regression tests and usage output"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:616
+#: release_notes.xml:1156
 #, no-c-format
 msgid "Fixed setSRID() bug in JDBC, thanks to Thomas Marti"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:620 release_notes.xml:804 release_notes.xml:875 release_notes.xml:1089 release_notes.xml:1215 release_notes.xml:1516 release_notes.xml:1553 release_notes.xml:1605 release_notes.xml:1707 release_notes.xml:1770
+#: release_notes.xml:1160 release_notes.xml:1344 release_notes.xml:1415 release_notes.xml:1629 release_notes.xml:1755 release_notes.xml:2056 release_notes.xml:2093 release_notes.xml:2145 release_notes.xml:2247 release_notes.xml:2310
 #, no-c-format
 msgid "Other changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:622
+#: release_notes.xml:1162
 #, no-c-format
 msgid "use Z ordinate in reprojections"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:624
+#: release_notes.xml:1164
 #, no-c-format
 msgid "spatial_ref_sys.sql updated to EPSG 6.11.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:626
+#: release_notes.xml:1166
 #, no-c-format
 msgid "Simplified Version.config infrastructure to use a single pack of version variables for everything."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:629
+#: release_notes.xml:1169
 #, no-c-format
 msgid "Include the Version.config in loader/dumper USAGE messages"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:632
+#: release_notes.xml:1172
 #, no-c-format
 msgid "Replace hand-made, fragile JDBC version parser with Properties"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:638
+#: release_notes.xml:1178
 #, no-c-format
 msgid "Release 1.1.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:640
+#: release_notes.xml:1180
 #, no-c-format
 msgid "Release date: 2006/10/13"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:642
+#: release_notes.xml:1182
 #, no-c-format
 msgid "This is an bugfix release, including a critical segfault on win32. Upgrade is <emphasis>encouraged</emphasis>."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:663
+#: release_notes.xml:1203
 #, no-c-format
 msgid "Fixed MingW link error that was causing pgsql2shp to segfault on Win32 when compiled for PostgreSQL 8.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:666
+#: release_notes.xml:1206
 #, no-c-format
 msgid "fixed nullpointer Exception in Geometry.equals() method in Java"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:669
+#: release_notes.xml:1209
 #, no-c-format
 msgid "Added EJB3Spatial.odt to fulfill the GPL requirement of distributing the \"preferred form of modification\""
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:672
+#: release_notes.xml:1212
 #, no-c-format
 msgid "Removed obsolete synchronization from JDBC Jts code."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:674
+#: release_notes.xml:1214
 #, no-c-format
 msgid "Updated heavily outdated README files for shp2pgsql/pgsql2shp by merging them with the manpages."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:677
+#: release_notes.xml:1217
 #, no-c-format
 msgid "Fixed version tag in jdbc code that still said \"1.1.3\" in the \"1.1.4\" release."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:684
+#: release_notes.xml:1224
 #, no-c-format
 msgid "Added -S option for non-multi geometries to shp2pgsql"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:689
+#: release_notes.xml:1229
 #, no-c-format
 msgid "Release 1.1.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:691
+#: release_notes.xml:1231
 #, no-c-format
 msgid "Release date: 2006/09/27"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:693
+#: release_notes.xml:1233
 #, no-c-format
 msgid "This is an bugfix release including some improvements in the Java interface. Upgrade is <emphasis>encouraged</emphasis>."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:714
+#: release_notes.xml:1254
 #, no-c-format
 msgid "Fixed support for PostgreSQL 8.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:716
+#: release_notes.xml:1256
 #, no-c-format
 msgid "Fixed bug in collect() function discarding SRID of input"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:718
+#: release_notes.xml:1258
 #, no-c-format
 msgid "Added SRID match check in MakeBox2d and MakeBox3d"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:720
+#: release_notes.xml:1260
 #, no-c-format
 msgid "Fixed regress tests to pass with GEOS-3.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:722
+#: release_notes.xml:1262
 #, no-c-format
 msgid "Improved pgsql2shp run concurrency."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:726
+#: release_notes.xml:1266
 #, no-c-format
 msgid "Java changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:728
+#: release_notes.xml:1268
 #, no-c-format
 msgid "reworked JTS support to reflect new upstream JTS developers' attitude to SRID handling. Simplifies code and drops build depend on GNU trove."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:732
+#: release_notes.xml:1272
 #, no-c-format
 msgid "Added EJB2 support generously donated by the \"Geodetix s.r.l. Company\" <ulink url=\"http://www.geodetix.it/\">http://www.geodetix.it/</ulink>"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:735
+#: release_notes.xml:1275
 #, no-c-format
 msgid "Added EJB3 tutorial / examples donated by Norman Barker <nbarker at ittvis.com>"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:738
+#: release_notes.xml:1278
 #, no-c-format
 msgid "Reorganized java directory layout a little."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:743
+#: release_notes.xml:1283
 #, no-c-format
 msgid "Release 1.1.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:745
+#: release_notes.xml:1285
 #, no-c-format
 msgid "Release date: 2006/06/30"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:747
+#: release_notes.xml:1287
 #, no-c-format
 msgid "This is an bugfix release including also some new functionalities (most notably long transaction support) and portability enhancements. Upgrade is <emphasis>encouraged</emphasis>."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:767
+#: release_notes.xml:1307
 #, no-c-format
 msgid "Bug fixes / correctness"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:769
+#: release_notes.xml:1309
 #, no-c-format
 msgid "BUGFIX in distance(poly,poly) giving wrong results."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:771
+#: release_notes.xml:1311
 #, no-c-format
 msgid "BUGFIX in pgsql2shp successful return code."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:773
+#: release_notes.xml:1313
 #, no-c-format
 msgid "BUGFIX in shp2pgsql handling of MultiLine WKT."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:775
+#: release_notes.xml:1315
 #, no-c-format
 msgid "BUGFIX in affine() failing to update bounding box."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:777
+#: release_notes.xml:1317
 #, no-c-format
 msgid "WKT parser: forbidden construction of multigeometries with EMPTY elements (still supported for GEOMETRYCOLLECTION)."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:782 release_notes.xml:858 release_notes.xml:931
+#: release_notes.xml:1322 release_notes.xml:1398 release_notes.xml:1471
 #, no-c-format
 msgid "New functionalities"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:784
+#: release_notes.xml:1324
 #, no-c-format
 msgid "NEW Long Transactions support."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:786
+#: release_notes.xml:1326
 #, no-c-format
 msgid "NEW DumpRings() function."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:788
+#: release_notes.xml:1328
 #, no-c-format
 msgid "NEW AsHEXEWKB(geom, XDR|NDR) function."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:792 release_notes.xml:1683
+#: release_notes.xml:1332 release_notes.xml:2223
 #, no-c-format
 msgid "JDBC changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:794
+#: release_notes.xml:1334
 #, no-c-format
 msgid "Improved regression tests: MultiPoint and scientific ordinates"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:797
+#: release_notes.xml:1337
 #, no-c-format
 msgid "Fixed some minor bugs in jdbc code"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:799
+#: release_notes.xml:1339
 #, no-c-format
 msgid "Added proper accessor functions for all fields in preparation of making those fields private later"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:806
+#: release_notes.xml:1346
 #, no-c-format
 msgid "NEW regress test support for loader/dumper."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:808
+#: release_notes.xml:1348
 #, no-c-format
 msgid "Added --with-proj-libdir and --with-geos-libdir configure switches."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:811
+#: release_notes.xml:1351
 #, no-c-format
 msgid "Support for build Tru64 build."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:813
+#: release_notes.xml:1353
 #, no-c-format
 msgid "Use Jade for generating documentation."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:815
+#: release_notes.xml:1355
 #, no-c-format
 msgid "Don't link pgsql2shp to more libs then required."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:817
+#: release_notes.xml:1357
 #, no-c-format
 msgid "Initial support for PostgreSQL 8.2."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:822
+#: release_notes.xml:1362
 #, no-c-format
 msgid "Release 1.1.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:824
+#: release_notes.xml:1364
 #, no-c-format
 msgid "Release date: 2006/03/30"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:826
+#: release_notes.xml:1366
 #, no-c-format
 msgid "This is an bugfix release including some new functions and portability enhancements. Upgrade is <emphasis>encouraged</emphasis>."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:848
+#: release_notes.xml:1388
 #, no-c-format
 msgid "BUGFIX in SnapToGrid() computation of output bounding box"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:850
+#: release_notes.xml:1390
 #, no-c-format
 msgid "BUGFIX in EnforceRHR()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:852
+#: release_notes.xml:1392
 #, no-c-format
 msgid "jdbc2 SRID handling fixes in JTS code"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:854
+#: release_notes.xml:1394
 #, no-c-format
 msgid "Fixed support for 64bit archs"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:860
+#: release_notes.xml:1400
 #, no-c-format
 msgid "Regress tests can now be run *before* postgis installation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:863
+#: release_notes.xml:1403
 #, no-c-format
 msgid "New affine() matrix transformation functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:865
+#: release_notes.xml:1405
 #, no-c-format
 msgid "New rotate{,X,Y,Z}() function"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:867
+#: release_notes.xml:1407
 #, no-c-format
 msgid "Old translating and scaling functions now use affine() internally"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:870
+#: release_notes.xml:1410
 #, no-c-format
 msgid "Embedded access control in estimated_extent() for builds against pgsql >= 8.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:877
+#: release_notes.xml:1417
 #, no-c-format
 msgid "More portable ./configure script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:879
+#: release_notes.xml:1419
 #, no-c-format
 msgid "Changed ./run_test script to have more sane default behaviour"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:885
+#: release_notes.xml:1425
 #, no-c-format
 msgid "Release 1.1.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:887
+#: release_notes.xml:1427
 #, no-c-format
 msgid "Release date: 2006/01/23"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:889
+#: release_notes.xml:1429
 #, no-c-format
 msgid "This is an important Bugfix release, upgrade is <emphasis>highly recommended</emphasis>. Previous version contained a bug in postgis_restore.pl preventing <link linkend=\"hard_upgrade\">hard upgrade</link> procedure to complete and a bug in GEOS-2.2+ connector preventing GeometryCollection objects to be used in topological operations."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:914
+#: release_notes.xml:1454
 #, no-c-format
 msgid "Fixed a premature exit in postgis_restore.pl"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:916
+#: release_notes.xml:1456
 #, no-c-format
 msgid "BUGFIX in geometrycollection handling of GEOS-CAPI connector"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:919
+#: release_notes.xml:1459
 #, no-c-format
 msgid "Solaris 2.7 and MingW support improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:921
+#: release_notes.xml:1461
 #, no-c-format
 msgid "BUGFIX in line_locate_point()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:923
+#: release_notes.xml:1463
 #, no-c-format
 msgid "Fixed handling of postgresql paths"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:925
+#: release_notes.xml:1465
 #, no-c-format
 msgid "BUGFIX in line_substring()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:927
+#: release_notes.xml:1467
 #, no-c-format
 msgid "Added support for localized cluster in regress tester"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:933
+#: release_notes.xml:1473
 #, no-c-format
 msgid "New Z and M interpolation in line_substring()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:935
+#: release_notes.xml:1475
 #, no-c-format
 msgid "New Z and M interpolation in line_interpolate_point()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:937
+#: release_notes.xml:1477
 #, no-c-format
 msgid "added NumInteriorRing() alias due to OpenGIS ambiguity"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:942
+#: release_notes.xml:1482
 #, no-c-format
 msgid "Release 1.1.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:944
+#: release_notes.xml:1484
 #, no-c-format
 msgid "Release date: 2005/12/21"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:946
+#: release_notes.xml:1486
 #, no-c-format
 msgid "This is a Minor release, containing many improvements and new things. Most notably: build procedure greatly simplified; transform() performance drastically improved; more stable GEOS connectivity (CAPI support); lots of new functions; draft topology support."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:951
+#: release_notes.xml:1491
 #, no-c-format
 msgid "It is <emphasis>highly recommended</emphasis> that you upgrade to GEOS-2.2.x before installing PostGIS, this will ensure future GEOS upgrades won't require a rebuild of the PostGIS library."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:956
+#: release_notes.xml:1496
 #, no-c-format
 msgid "Credits"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:958
+#: release_notes.xml:1498
 #, no-c-format
-msgid "This release includes code from Mark Cave Ayland for caching of proj4 objects. Markus Schaber added many improvements in his JDBC2 code. Alex Bodnaru helped with PostgreSQL source dependency relief and provided Debian specfiles. Michael Fuhr tested new things on Solaris arch. David Techer and Gerald Fenoy helped testing GEOS C-API connector. Hartmut Tschauner provided code for the azimuth() function. Devrim GUNDUZ provided RPM specfiles. Carl Anderson helped with the new area buil [...]
+msgid "This release includes code from Mark Cave Ayland for caching of proj4 objects. Markus Schaber added many improvements in his JDBC2 code. Alex Bodnaru helped with PostgreSQL source dependency relief and provided Debian specfiles. Michael Fuhr tested new things on Solaris arch. David Techer and Gerald Fenoy helped testing GEOS C-API connector. Hartmut Tschauner provided code for the azimuth() function. Devrim GUNDUZ provided RPM specfiles. Carl Anderson helped with the new area buil [...]
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:972
+#: release_notes.xml:1512
 #, no-c-format
 msgid "If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</emphasis> need a dump/reload. Simply sourcing the new lwpostgis_upgrade.sql script in all your existing databases will work. See the <link linkend=\"soft_upgrade\">soft upgrade</link> chapter for more information."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:988
+#: release_notes.xml:1528
 #, no-c-format
 msgid "New functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:990
+#: release_notes.xml:1530
 #, no-c-format
 msgid "scale() and transscale() companion methods to translate()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:992
+#: release_notes.xml:1532
 #, no-c-format
 msgid "line_substring()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:994
+#: release_notes.xml:1534
 #, no-c-format
 msgid "line_locate_point()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:996
+#: release_notes.xml:1536
 #, no-c-format
 msgid "M(point)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:998
+#: release_notes.xml:1538
 #, no-c-format
 msgid "LineMerge(geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1000
+#: release_notes.xml:1540
 #, no-c-format
 msgid "shift_longitude(geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1002
+#: release_notes.xml:1542
 #, no-c-format
 msgid "azimuth(geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1004
+#: release_notes.xml:1544
 #, no-c-format
 msgid "locate_along_measure(geometry, float8)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1006
+#: release_notes.xml:1546
 #, no-c-format
 msgid "locate_between_measures(geometry, float8, float8)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1008
+#: release_notes.xml:1548
 #, no-c-format
 msgid "SnapToGrid by point offset (up to 4d support)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1010
+#: release_notes.xml:1550
 #, no-c-format
 msgid "BuildArea(any_geometry)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1012
+#: release_notes.xml:1552
 #, no-c-format
 msgid "OGC BdPolyFromText(linestring_wkt, srid)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1014
+#: release_notes.xml:1554
 #, no-c-format
 msgid "OGC BdMPolyFromText(linestring_wkt, srid)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1016
+#: release_notes.xml:1556
 #, no-c-format
 msgid "RemovePoint(linestring, offset)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1018
+#: release_notes.xml:1558
 #, no-c-format
 msgid "ReplacePoint(linestring, offset, point)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1024
+#: release_notes.xml:1564
 #, no-c-format
 msgid "Fixed memory leak in polygonize()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1026
+#: release_notes.xml:1566
 #, no-c-format
 msgid "Fixed bug in lwgeom_as_anytype cast functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1028
+#: release_notes.xml:1568
 #, no-c-format
 msgid "Fixed USE_GEOS, USE_PROJ and USE_STATS elements of postgis_version() output to always reflect library state."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1033
+#: release_notes.xml:1573
 #, no-c-format
 msgid "Function semantic changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1035
+#: release_notes.xml:1575
 #, no-c-format
 msgid "SnapToGrid doesn't discard higher dimensions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1037
+#: release_notes.xml:1577
 #, no-c-format
 msgid "Changed Z() function to return NULL if requested dimension is not available"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1042
+#: release_notes.xml:1582
 #, no-c-format
 msgid "Performance improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1044
+#: release_notes.xml:1584
 #, no-c-format
 msgid "Much faster transform() function, caching proj4 objects"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1046
+#: release_notes.xml:1586
 #, no-c-format
 msgid "Removed automatic call to fix_geometry_columns() in AddGeometryColumns() and update_geometry_stats()"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1051
+#: release_notes.xml:1591
 #, no-c-format
 msgid "JDBC2 works"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1053
+#: release_notes.xml:1593
 #, no-c-format
 msgid "Makefile improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1055 release_notes.xml:1091
+#: release_notes.xml:1595 release_notes.xml:1631
 #, no-c-format
 msgid "JTS support improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1057
+#: release_notes.xml:1597
 #, no-c-format
 msgid "Improved regression test system"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1059
+#: release_notes.xml:1599
 #, no-c-format
 msgid "Basic consistency check method for geometry collections"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1061
+#: release_notes.xml:1601
 #, no-c-format
 msgid "Support for (Hex)(E)wkb"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1063
+#: release_notes.xml:1603
 #, no-c-format
 msgid "Autoprobing DriverWrapper for HexWKB / EWKT switching"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1065
+#: release_notes.xml:1605
 #, no-c-format
 msgid "fix compile problems in ValueSetter for ancient jdk releases."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1068
+#: release_notes.xml:1608
 #, no-c-format
 msgid "fix EWKT constructors to accept SRID=4711; representation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1070
+#: release_notes.xml:1610
 #, no-c-format
 msgid "added preliminary read-only support for java2d geometries"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1074
+#: release_notes.xml:1614
 #, no-c-format
 msgid "Other new things"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1076
+#: release_notes.xml:1616
 #, no-c-format
 msgid "Full autoconf-based configuration, with PostgreSQL source dependency relief"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1079
+#: release_notes.xml:1619
 #, no-c-format
 msgid "GEOS C-API support (2.2.0 and higher)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1081
+#: release_notes.xml:1621
 #, no-c-format
 msgid "Initial support for topology modelling"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1083
+#: release_notes.xml:1623
 #, no-c-format
 msgid "Debian and RPM specfiles"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1085
+#: release_notes.xml:1625
 #, no-c-format
 msgid "New lwpostgis_upgrade.sql script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1093
+#: release_notes.xml:1633
 #, no-c-format
 msgid "Stricter mapping between DBF and SQL integer and string attributes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1096
+#: release_notes.xml:1636
 #, no-c-format
 msgid "Wider and cleaner regression test suite"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1098
+#: release_notes.xml:1638
 #, no-c-format
 msgid "old jdbc code removed from release"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1100
+#: release_notes.xml:1640
 #, no-c-format
 msgid "obsoleted direct use of postgis_proc_upgrade.pl"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1102
+#: release_notes.xml:1642
 #, no-c-format
 msgid "scripts version unified with release version"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1107
+#: release_notes.xml:1647
 #, no-c-format
 msgid "Release 1.0.6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1109
+#: release_notes.xml:1649
 #, no-c-format
 msgid "Release date: 2005/12/06"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1111 release_notes.xml:1347
+#: release_notes.xml:1651 release_notes.xml:1887
 #, no-c-format
 msgid "Contains a few bug fixes and improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1116 release_notes.xml:1173
+#: release_notes.xml:1656 release_notes.xml:1713
 #, no-c-format
 msgid "If you are upgrading from release 1.0.3 or later you <emphasis>DO NOT</emphasis> need a dump/reload."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1131
+#: release_notes.xml:1671
 #, no-c-format
 msgid "Fixed palloc(0) call in collection deserializer (only gives problem with --enable-cassert)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1134
+#: release_notes.xml:1674
 #, no-c-format
 msgid "Fixed bbox cache handling bugs"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1136
+#: release_notes.xml:1676
 #, no-c-format
 msgid "Fixed geom_accum(NULL, NULL) segfault"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1138
+#: release_notes.xml:1678
 #, no-c-format
 msgid "Fixed segfault in addPoint()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1140
+#: release_notes.xml:1680
 #, no-c-format
 msgid "Fixed short-allocation in lwcollection_clone()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1142
+#: release_notes.xml:1682
 #, no-c-format
 msgid "Fixed bug in segmentize()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1144
+#: release_notes.xml:1684
 #, no-c-format
 msgid "Fixed bbox computation of SnapToGrid output"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1148 release_notes.xml:1266 release_notes.xml:1328 release_notes.xml:1374
+#: release_notes.xml:1688 release_notes.xml:1806 release_notes.xml:1868 release_notes.xml:1914
 #, no-c-format
 msgid "Improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1150
+#: release_notes.xml:1690
 #, no-c-format
 msgid "Initial support for postgresql 8.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1152
+#: release_notes.xml:1692
 #, no-c-format
 msgid "Added missing SRID mismatch checks in GEOS ops"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1157
+#: release_notes.xml:1697
 #, no-c-format
 msgid "Release 1.0.5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1159
+#: release_notes.xml:1699
 #, no-c-format
 msgid "Release date: 2005/11/25"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1161
+#: release_notes.xml:1701
 #, no-c-format
 msgid "Contains memory-alignment fixes in the library, a segfault fix in loader's handling of UTF8 attributes and a few improvements and cleanups."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1166
+#: release_notes.xml:1706
 #, no-c-format
 msgid "Return code of shp2pgsql changed from previous releases to conform to unix standards (return 0 on success)."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1186 release_notes.xml:1401 release_notes.xml:1453 release_notes.xml:1502 release_notes.xml:1544 release_notes.xml:1578 release_notes.xml:1645 release_notes.xml:1742
+#: release_notes.xml:1726 release_notes.xml:1941 release_notes.xml:1993 release_notes.xml:2042 release_notes.xml:2084 release_notes.xml:2118 release_notes.xml:2185 release_notes.xml:2282
 #, no-c-format
 msgid "Library changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1188
+#: release_notes.xml:1728
 #, no-c-format
 msgid "Fixed memory alignment problems"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1190
+#: release_notes.xml:1730
 #, no-c-format
 msgid "Fixed computation of null values fraction in analyzer"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1192
+#: release_notes.xml:1732
 #, no-c-format
 msgid "Fixed a small bug in the getPoint4d_p() low-level function"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1195
+#: release_notes.xml:1735
 #, no-c-format
 msgid "Speedup of serializer functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1197
+#: release_notes.xml:1737
 #, no-c-format
 msgid "Fixed a bug in force_3dm(), force_3dz() and force_4d()"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1201
+#: release_notes.xml:1741
 #, no-c-format
 msgid "Loader changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1203
+#: release_notes.xml:1743
 #, no-c-format
 msgid "Fixed return code of shp2pgsql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1205
+#: release_notes.xml:1745
 #, no-c-format
 msgid "Fixed back-compatibility issue in loader (load of null shapefiles)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1208
+#: release_notes.xml:1748
 #, no-c-format
 msgid "Fixed handling of trailing dots in dbf numerical attributes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1211
+#: release_notes.xml:1751
 #, no-c-format
 msgid "Segfault fix in shp2pgsql (utf8 encoding)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1217
+#: release_notes.xml:1757
 #, no-c-format
 msgid "Schema aware postgis_proc_upgrade.pl, support for pgsql 7.2+"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1220
+#: release_notes.xml:1760
 #, no-c-format
 msgid "New \"Reporting Bugs\" chapter in manual"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1225
+#: release_notes.xml:1765
 #, no-c-format
 msgid "Release 1.0.4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1227
+#: release_notes.xml:1767
 #, no-c-format
 msgid "Release date: 2005/09/09"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1229
+#: release_notes.xml:1769
 #, no-c-format
 msgid "Contains important bug fixes and a few improvements. In particular, it fixes a memory leak preventing successful build of GiST indexes for large spatial tables."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1236
+#: release_notes.xml:1776
 #, no-c-format
 msgid "If you are upgrading from release 1.0.3 you <emphasis>DO NOT</emphasis> need a dump/reload."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1251
+#: release_notes.xml:1791
 #, no-c-format
 msgid "Memory leak plugged in GiST indexing"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1253
+#: release_notes.xml:1793
 #, no-c-format
 msgid "Segfault fix in transform() handling of proj4 errors"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1255
+#: release_notes.xml:1795
 #, no-c-format
 msgid "Fixed some proj4 texts in spatial_ref_sys (missing +proj)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1257
+#: release_notes.xml:1797
 #, no-c-format
 msgid "Loader: fixed string functions usage, reworked NULL objects check, fixed segfault on MULTILINESTRING input."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1260
+#: release_notes.xml:1800
 #, no-c-format
 msgid "Fixed bug in MakeLine dimension handling"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1262
+#: release_notes.xml:1802
 #, no-c-format
 msgid "Fixed bug in translate() corrupting output bounding box"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1268
+#: release_notes.xml:1808
 #, no-c-format
 msgid "Documentation improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1270
+#: release_notes.xml:1810
 #, no-c-format
 msgid "More robust selectivity estimator"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1272
+#: release_notes.xml:1812
 #, no-c-format
 msgid "Minor speedup in distance()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1274
+#: release_notes.xml:1814
 #, no-c-format
 msgid "Minor cleanups"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1276
+#: release_notes.xml:1816
 #, no-c-format
 msgid "GiST indexing cleanup"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1278
+#: release_notes.xml:1818
 #, no-c-format
 msgid "Looser syntax acceptance in box3d parser"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1283
+#: release_notes.xml:1823
 #, no-c-format
 msgid "Release 1.0.3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1285
+#: release_notes.xml:1825
 #, no-c-format
 msgid "Release date: 2005/08/08"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1287
+#: release_notes.xml:1827
 #, no-c-format
 msgid "Contains some bug fixes - <emphasis>including a severe one affecting correctness of stored geometries</emphasis> - and a few improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1294
+#: release_notes.xml:1834
 #, no-c-format
 msgid "Due to a bug in a bounding box computation routine, the upgrade procedure requires special attention, as bounding boxes cached in the database could be incorrect."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1298
+#: release_notes.xml:1838
 #, no-c-format
 msgid "An <link linkend=\"hard_upgrade\">hard upgrade</link> procedure (dump/reload) will force recomputation of all bounding boxes (not included in dumps). This is <emphasis>required</emphasis> if upgrading from releases prior to 1.0.0RC6."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1303
+#: release_notes.xml:1843
 #, no-c-format
 msgid "If you are upgrading from versions 1.0.0RC6 or up, this release includes a perl script (utils/rebuild_bbox_caches.pl) to force recomputation of geometries' bounding boxes and invoke all operations required to propagate eventual changes in them (geometry statistics update, reindexing). Invoke the script after a make install (run with no args for syntax help). Optionally run utils/postgis_proc_upgrade.pl to refresh postgis procedures and functions signatures (see <link linkend=\"sof [...]
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1316
+#: release_notes.xml:1856
 #, no-c-format
 msgid "Severe bugfix in lwgeom's 2d bounding box computation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1318
+#: release_notes.xml:1858
 #, no-c-format
 msgid "Bugfix in WKT (-w) POINT handling in loader"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1320
+#: release_notes.xml:1860
 #, no-c-format
 msgid "Bugfix in dumper on 64bit machines"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1322
+#: release_notes.xml:1862
 #, no-c-format
 msgid "Bugfix in dumper handling of user-defined queries"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1324
+#: release_notes.xml:1864
 #, no-c-format
 msgid "Bugfix in create_undef.pl script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1330
+#: release_notes.xml:1870
 #, no-c-format
 msgid "Small performance improvement in canonical input function"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1332
+#: release_notes.xml:1872
 #, no-c-format
 msgid "Minor cleanups in loader"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1334
+#: release_notes.xml:1874
 #, no-c-format
 msgid "Support for multibyte field names in loader"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1336
+#: release_notes.xml:1876
 #, no-c-format
 msgid "Improvement in the postgis_restore.pl script"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1338
+#: release_notes.xml:1878
 #, no-c-format
 msgid "New rebuild_bbox_caches.pl util script"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1343
+#: release_notes.xml:1883
 #, no-c-format
 msgid "Release 1.0.2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1345
+#: release_notes.xml:1885
 #, no-c-format
 msgid "Release date: 2005/07/04"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1352 release_notes.xml:1392
+#: release_notes.xml:1892 release_notes.xml:1932
 #, no-c-format
 msgid "If you are upgrading from release 1.0.0RC6 or up you <emphasis>DO NOT</emphasis> need a dump/reload."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1355 release_notes.xml:1395
+#: release_notes.xml:1895 release_notes.xml:1935
 #, no-c-format
 msgid "Upgrading from older releases requires a dump/reload. See the <link linkend=\"upgrading\">upgrading</link> chapter for more informations."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1363
+#: release_notes.xml:1903
 #, no-c-format
 msgid "Fault tolerant btree ops"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1365
+#: release_notes.xml:1905
 #, no-c-format
 msgid "Memory leak plugged in pg_error"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1367
+#: release_notes.xml:1907
 #, no-c-format
 msgid "Rtree index fix"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1369
+#: release_notes.xml:1909
 #, no-c-format
 msgid "Cleaner build scripts (avoided mix of CFLAGS and CXXFLAGS)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1376
+#: release_notes.xml:1916
 #, no-c-format
 msgid "New index creation capabilities in loader (-I switch)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1378
+#: release_notes.xml:1918
 #, no-c-format
 msgid "Initial support for postgresql 8.1dev"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1383
+#: release_notes.xml:1923
 #, no-c-format
 msgid "Release 1.0.1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1385
+#: release_notes.xml:1925
 #, no-c-format
 msgid "Release date: 2005/05/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1387
+#: release_notes.xml:1927
 #, no-c-format
 msgid "Contains a few bug fixes and some improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1403
+#: release_notes.xml:1943
 #, no-c-format
 msgid "BUGFIX in 3d computation of length_spheroid()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1405
+#: release_notes.xml:1945
 #, no-c-format
 msgid "BUGFIX in join selectivity estimator"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1409 release_notes.xml:1465
+#: release_notes.xml:1949 release_notes.xml:2005
 #, no-c-format
 msgid "Other changes/additions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1411
+#: release_notes.xml:1951
 #, no-c-format
 msgid "BUGFIX in shp2pgsql escape functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1413
+#: release_notes.xml:1953
 #, no-c-format
 msgid "better support for concurrent postgis in multiple schemas"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1415
+#: release_notes.xml:1955
 #, no-c-format
 msgid "documentation fixes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1417
+#: release_notes.xml:1957
 #, no-c-format
 msgid "jdbc2: compile with \"-target 1.2 -source 1.2\" by default"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1419
+#: release_notes.xml:1959
 #, no-c-format
 msgid "NEW -k switch for pgsql2shp"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1421
+#: release_notes.xml:1961
 #, no-c-format
 msgid "NEW support for custom createdb options in postgis_restore.pl"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1424
+#: release_notes.xml:1964
 #, no-c-format
 msgid "BUGFIX in pgsql2shp attribute names unicity enforcement"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1426
+#: release_notes.xml:1966
 #, no-c-format
 msgid "BUGFIX in Paris projections definitions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1428
+#: release_notes.xml:1968
 #, no-c-format
 msgid "postgis_restore.pl cleanups"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1433
+#: release_notes.xml:1973
 #, no-c-format
 msgid "Release 1.0.0"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1435
+#: release_notes.xml:1975
 #, no-c-format
 msgid "Release date: 2005/04/19"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1437
+#: release_notes.xml:1977
 #, no-c-format
 msgid "Final 1.0.0 release. Contains a few bug fixes, some improvements in the loader (most notably support for older postgis versions), and more docs."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1444
+#: release_notes.xml:1984
 #, no-c-format
 msgid "If you are upgrading from release 1.0.0RC6 you <emphasis>DO NOT</emphasis> need a dump/reload."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1447 release_notes.xml:1538
+#: release_notes.xml:1987 release_notes.xml:2078
 #, no-c-format
 msgid "Upgrading from any other precedent release requires a dump/reload. See the <link linkend=\"upgrading\">upgrading</link> chapter for more informations."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1455
+#: release_notes.xml:1995
 #, no-c-format
 msgid "BUGFIX in transform() releasing random memory address"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1457
+#: release_notes.xml:1997
 #, no-c-format
 msgid "BUGFIX in force_3dm() allocating less memory then required"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1460
+#: release_notes.xml:2000
 #, no-c-format
 msgid "BUGFIX in join selectivity estimator (defaults, leaks, tuplecount, sd)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1467
+#: release_notes.xml:2007
 #, no-c-format
 msgid "BUGFIX in shp2pgsql escape of values starting with tab or single-quote"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1470
+#: release_notes.xml:2010
 #, no-c-format
 msgid "NEW manual pages for loader/dumper"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1472
+#: release_notes.xml:2012
 #, no-c-format
 msgid "NEW shp2pgsql support for old (HWGEOM) postgis versions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1474
+#: release_notes.xml:2014
 #, no-c-format
 msgid "NEW -p (prepare) flag for shp2pgsql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1476
+#: release_notes.xml:2016
 #, no-c-format
 msgid "NEW manual chapter about OGC compliancy enforcement"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1478
+#: release_notes.xml:2018
 #, no-c-format
 msgid "NEW autoconf support for JTS lib"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1480
+#: release_notes.xml:2020
 #, no-c-format
 msgid "BUGFIX in estimator testers (support for LWGEOM and schema parsing)"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1486
+#: release_notes.xml:2026
 #, no-c-format
 msgid "Release 1.0.0RC6"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1488
+#: release_notes.xml:2028
 #, no-c-format
 msgid "Release date: 2005/03/30"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1490
+#: release_notes.xml:2030
 #, no-c-format
 msgid "Sixth release candidate for 1.0.0. Contains a few bug fixes and cleanups."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1496 release_notes.xml:1572 release_notes.xml:1639 release_notes.xml:1736 release_notes.xml:1790
+#: release_notes.xml:2036 release_notes.xml:2112 release_notes.xml:2179 release_notes.xml:2276 release_notes.xml:2330
 #, no-c-format
 msgid "You need a dump/reload to upgrade from precedent releases. See the <link linkend=\"upgrading\">upgrading</link> chapter for more informations."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1504
+#: release_notes.xml:2044
 #, no-c-format
 msgid "BUGFIX in multi()"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1506
+#: release_notes.xml:2046
 #, no-c-format
 msgid "early return [when noop] from multi()"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1510 release_notes.xml:1596 release_notes.xml:1669 release_notes.xml:1761
+#: release_notes.xml:2050 release_notes.xml:2136 release_notes.xml:2209 release_notes.xml:2301
 #, no-c-format
 msgid "Scripts changes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1512
+#: release_notes.xml:2052
 #, no-c-format
 msgid "dropped {x,y}{min,max}(box2d) functions"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1518
+#: release_notes.xml:2058
 #, no-c-format
 msgid "BUGFIX in postgis_restore.pl scrip"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1520
+#: release_notes.xml:2060
 #, no-c-format
 msgid "BUGFIX in dumper's 64bit support"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1525
+#: release_notes.xml:2065
 #, no-c-format
 msgid "Release 1.0.0RC5"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1527
+#: release_notes.xml:2067
 #, no-c-format
 msgid "Release date: 2005/03/25"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1529
+#: release_notes.xml:2069
 #, no-c-format
 msgid "Fifth release candidate for 1.0.0. Contains a few bug fixes and a improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1535
+#: release_notes.xml:2075
 #, no-c-format
 msgid "If you are upgrading from release 1.0.0RC4 you <emphasis>DO NOT</emphasis> need a dump/reload."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1546
+#: release_notes.xml:2086
 #, no-c-format
 msgid "BUGFIX (segfaulting) in box3d computation (yes, another!)."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1549
+#: release_notes.xml:2089
 #, no-c-format
 msgid "BUGFIX (segfaulting) in estimated_extent()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1555
+#: release_notes.xml:2095
 #, no-c-format
 msgid "Small build scripts and utilities refinements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1557
+#: release_notes.xml:2097
 #, no-c-format
 msgid "Additional performance tips documented."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1562
+#: release_notes.xml:2102
 #, no-c-format
 msgid "Release 1.0.0RC4"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1564
+#: release_notes.xml:2104
 #, no-c-format
 msgid "Release date: 2005/03/18"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1566
+#: release_notes.xml:2106
 #, no-c-format
 msgid "Fourth release candidate for 1.0.0. Contains bug fixes and a few improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1580
+#: release_notes.xml:2120
 #, no-c-format
 msgid "BUGFIX (segfaulting) in geom_accum()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1582
+#: release_notes.xml:2122
 #, no-c-format
 msgid "BUGFIX in 64bit architectures support."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1584
+#: release_notes.xml:2124
 #, no-c-format
 msgid "BUGFIX in box3d computation function with collections."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1586
+#: release_notes.xml:2126
 #, no-c-format
 msgid "NEW subselects support in selectivity estimator."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1588
+#: release_notes.xml:2128
 #, no-c-format
 msgid "Early return from force_collection."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1590
+#: release_notes.xml:2130
 #, no-c-format
 msgid "Consistency check fix in SnapToGrid()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1592
+#: release_notes.xml:2132
 #, no-c-format
 msgid "Box2d output changed back to 15 significant digits."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1598
+#: release_notes.xml:2138
 #, no-c-format
 msgid "NEW distance_sphere() function."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1600
+#: release_notes.xml:2140
 #, no-c-format
 msgid "Changed get_proj4_from_srid implementation to use PL/PGSQL instead of SQL."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1607
+#: release_notes.xml:2147
 #, no-c-format
 msgid "BUGFIX in loader and dumper handling of MultiLine shapes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1609
+#: release_notes.xml:2149
 #, no-c-format
 msgid "BUGFIX in loader, skipping all but first hole of polygons."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1612
+#: release_notes.xml:2152
 #, no-c-format
 msgid "jdbc2: code cleanups, Makefile improvements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1614
+#: release_notes.xml:2154
 #, no-c-format
 msgid "FLEX and YACC variables set *after* pgsql Makefile.global is included and only if the pgsql *stripped* version evaluates to the empty string"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1618
+#: release_notes.xml:2158
 #, no-c-format
 msgid "Added already generated parser in release"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1620
+#: release_notes.xml:2160
 #, no-c-format
 msgid "Build scripts refinements"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1622
+#: release_notes.xml:2162
 #, no-c-format
 msgid "improved version handling, central Version.config"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1624
+#: release_notes.xml:2164
 #, no-c-format
 msgid "improvements in postgis_restore.pl"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1629
+#: release_notes.xml:2169
 #, no-c-format
 msgid "Release 1.0.0RC3"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1631
+#: release_notes.xml:2171
 #, no-c-format
 msgid "Release date: 2005/02/24"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1633
+#: release_notes.xml:2173
 #, no-c-format
 msgid "Third release candidate for 1.0.0. Contains many bug fixes and improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1647
+#: release_notes.xml:2187
 #, no-c-format
 msgid "BUGFIX in transform(): missing SRID, better error handling."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1650
+#: release_notes.xml:2190
 #, no-c-format
 msgid "BUGFIX in memory alignment handling"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1652
+#: release_notes.xml:2192
 #, no-c-format
 msgid "BUGFIX in force_collection() causing mapserver connector failures on simple (single) geometry types."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1655
+#: release_notes.xml:2195
 #, no-c-format
 msgid "BUGFIX in GeometryFromText() missing to add a bbox cache."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1657
+#: release_notes.xml:2197
 #, no-c-format
 msgid "reduced precision of box2d output."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1659
+#: release_notes.xml:2199
 #, no-c-format
 msgid "prefixed DEBUG macros with PGIS_ to avoid clash with pgsql one"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1662
+#: release_notes.xml:2202
 #, no-c-format
 msgid "plugged a leak in GEOS2POSTGIS converter"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1664
+#: release_notes.xml:2204
 #, no-c-format
 msgid "Reduced memory usage by early releasing query-context palloced one."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1671
+#: release_notes.xml:2211
 #, no-c-format
 msgid "BUGFIX in 72 index bindings."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1673
+#: release_notes.xml:2213
 #, no-c-format
 msgid "BUGFIX in probe_geometry_columns() to work with PG72 and support multiple geometry columns in a single table"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1676
+#: release_notes.xml:2216
 #, no-c-format
 msgid "NEW bool::text cast"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1678
+#: release_notes.xml:2218
 #, no-c-format
 msgid "Some functions made IMMUTABLE from STABLE, for performance improvement."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1685
+#: release_notes.xml:2225
 #, no-c-format
 msgid "jdbc2: small patches, box2d/3d tests, revised docs and license."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1688
+#: release_notes.xml:2228
 #, no-c-format
 msgid "jdbc2: bug fix and testcase in for pgjdbc 8.0 type autoregistration"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1691
+#: release_notes.xml:2231
 #, no-c-format
 msgid "jdbc2: Removed use of jdk1.4 only features to enable build with older jdk releases."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1694
+#: release_notes.xml:2234
 #, no-c-format
 msgid "jdbc2: Added support for building against pg72jdbc2.jar"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1696
+#: release_notes.xml:2236
 #, no-c-format
 msgid "jdbc2: updated and cleaned makefile"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1698
+#: release_notes.xml:2238
 #, no-c-format
 msgid "jdbc2: added BETA support for jts geometry classes"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1700
+#: release_notes.xml:2240
 #, no-c-format
 msgid "jdbc2: Skip known-to-fail tests against older PostGIS servers."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1703
+#: release_notes.xml:2243
 #, no-c-format
 msgid "jdbc2: Fixed handling of measured geometries in EWKT."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1709
+#: release_notes.xml:2249
 #, no-c-format
 msgid "new performance tips chapter in manual"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1711
+#: release_notes.xml:2251
 #, no-c-format
 msgid "documentation updates: pgsql72 requirement, lwpostgis.sql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1713
+#: release_notes.xml:2253
 #, no-c-format
 msgid "few changes in autoconf"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1715
+#: release_notes.xml:2255
 #, no-c-format
 msgid "BUILDDATE extraction made more portable"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1717
+#: release_notes.xml:2257
 #, no-c-format
 msgid "fixed spatial_ref_sys.sql to avoid vacuuming the whole database."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1720
+#: release_notes.xml:2260
 #, no-c-format
 msgid "spatial_ref_sys: changed Paris entries to match the ones distributed with 0.x."
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1726
+#: release_notes.xml:2266
 #, no-c-format
 msgid "Release 1.0.0RC2"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1728
+#: release_notes.xml:2268
 #, no-c-format
 msgid "Release date: 2005/01/26"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1730
+#: release_notes.xml:2270
 #, no-c-format
 msgid "Second release candidate for 1.0.0 containing bug fixes and a few improvements."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1744
+#: release_notes.xml:2284
 #, no-c-format
 msgid "BUGFIX in pointarray box3d computation"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1746
+#: release_notes.xml:2286
 #, no-c-format
 msgid "BUGFIX in distance_spheroid definition"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1748
+#: release_notes.xml:2288
 #, no-c-format
 msgid "BUGFIX in transform() missing to update bbox cache"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1750
+#: release_notes.xml:2290
 #, no-c-format
 msgid "NEW jdbc driver (jdbc2)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1752
+#: release_notes.xml:2292
 #, no-c-format
 msgid "GEOMETRYCOLLECTION(EMPTY) syntax support for backward compatibility"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1755
+#: release_notes.xml:2295
 #, no-c-format
 msgid "Faster binary outputs"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1757
+#: release_notes.xml:2297
 #, no-c-format
 msgid "Stricter OGC WKB/WKT constructors"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1763
+#: release_notes.xml:2303
 #, no-c-format
 msgid "More correct STABLE, IMMUTABLE, STRICT uses in lwpostgis.sql"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1766
+#: release_notes.xml:2306
 #, no-c-format
 msgid "stricter OGC WKB/WKT constructors"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1772
+#: release_notes.xml:2312
 #, no-c-format
 msgid "Faster and more robust loader (both i18n and not)"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1774
+#: release_notes.xml:2314
 #, no-c-format
 msgid "Initial autoconf script"
 msgstr ""
 
 #. Tag: title
-#: release_notes.xml:1779
+#: release_notes.xml:2319
 #, no-c-format
 msgid "Release 1.0.0RC1"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1781
+#: release_notes.xml:2321
 #, no-c-format
 msgid "Release date: 2005/01/13"
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1783
+#: release_notes.xml:2323
 #, no-c-format
 msgid "This is the first candidate of a major postgis release, with internal storage of postgis types redesigned to be smaller and faster on indexed queries."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1798
+#: release_notes.xml:2338
 #, no-c-format
 msgid "Faster canonical input parsing."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1800
+#: release_notes.xml:2340
 #, no-c-format
 msgid "Lossless canonical output."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1802
+#: release_notes.xml:2342
 #, no-c-format
 msgid "EWKB Canonical binary IO with PG>73."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1804
+#: release_notes.xml:2344
 #, no-c-format
 msgid "Support for up to 4d coordinates, providing lossless shapefile->postgis->shapefile conversion."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1807
+#: release_notes.xml:2347
 #, no-c-format
 msgid "New function: UpdateGeometrySRID(), AsGML(), SnapToGrid(), ForceRHR(), estimated_extent(), accum()."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1810
+#: release_notes.xml:2350
 #, no-c-format
 msgid "Vertical positioning indexed operators."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1812
+#: release_notes.xml:2352
 #, no-c-format
 msgid "JOIN selectivity function."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1814
+#: release_notes.xml:2354
 #, no-c-format
 msgid "More geometry constructors / editors."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1816
+#: release_notes.xml:2356
 #, no-c-format
 msgid "PostGIS extension API."
 msgstr ""
 
 #. Tag: para
-#: release_notes.xml:1818
+#: release_notes.xml:2358
 #, no-c-format
 msgid "UTF8 support in loader."
 msgstr ""
diff --git a/doc/po/templates/using_postgis_dataman.xml.pot b/doc/po/templates/using_postgis_dataman.xml.pot
index eb65f56..b293286 100644
--- a/doc/po/templates/using_postgis_dataman.xml.pot
+++ b/doc/po/templates/using_postgis_dataman.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -77,7 +77,7 @@ msgstr ""
 #. Tag: para
 #: using_postgis_dataman.xml:41
 #, no-c-format
-msgid "MULTIPOINT(0 0,1 2)"
+msgid "MULTIPOINT((0 0),(1 2))"
 msgstr ""
 
 #. Tag: para
@@ -1214,7 +1214,7 @@ msgstr ""
 #. Tag: para
 #: using_postgis_dataman.xml:666
 #, no-c-format
-msgid "The AddGeometryColumn() approach creates a geometry column and also registers the new column in the geometry_columns table. If your software utilizes geometry_columns, then any geometry columns you need to query by must be registered in this view. Starting with PoastGIS 2.0, geometry_columns is no longer editable and all geometry columns are autoregistered."
+msgid "The AddGeometryColumn() approach creates a geometry column and also registers the new column in the geometry_columns table. If your software utilizes geometry_columns, then any geometry columns you need to query by must be registered in this view. Starting with PostGIS 2.0, geometry_columns is no longer editable and all geometry columns are autoregistered."
 msgstr ""
 
 #. Tag: para
@@ -1786,157 +1786,157 @@ msgid "Given geometry <emphasis>a</emphasis>, where the <emphasis>I(a)</emphasis
 msgstr ""
 
 #. Tag: emphasis
-#: using_postgis_dataman.xml:1174 using_postgis_dataman.xml:1184 using_postgis_dataman.xml:1377 using_postgis_dataman.xml:1390
+#: using_postgis_dataman.xml:1174 using_postgis_dataman.xml:1184 using_postgis_dataman.xml:1268 using_postgis_dataman.xml:1281
 #, no-c-format
 msgid "<emphasis role=\"bold\">Interior</emphasis>"
 msgstr ""
 
 #. Tag: emphasis
-#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1227 using_postgis_dataman.xml:1380 using_postgis_dataman.xml:1413
+#: using_postgis_dataman.xml:1176 using_postgis_dataman.xml:1190 using_postgis_dataman.xml:1271 using_postgis_dataman.xml:1304
 #, no-c-format
 msgid "<emphasis role=\"bold\">Boundary</emphasis>"
 msgstr ""
 
 #. Tag: emphasis
-#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1270 using_postgis_dataman.xml:1383 using_postgis_dataman.xml:1436
+#: using_postgis_dataman.xml:1178 using_postgis_dataman.xml:1196 using_postgis_dataman.xml:1274 using_postgis_dataman.xml:1327
 #, no-c-format
 msgid "<emphasis role=\"bold\">Exterior</emphasis>"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1188
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1185
 #, no-c-format
-msgid "<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:mo> <mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+msgid "dim( I(a) ∩ I(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1201
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1186
 #, no-c-format
-msgid "<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:mo> <mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+msgid "dim( I(a) ∩ B(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1214
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1187
 #, no-c-format
-msgid "<mml:mtext mathvariant=\"italic\">dim( I(a)</mml:mtext> <mml:mo>∩</mml:mo> <mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+msgid "dim( I(a) ∩ E(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1231
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1191
 #, no-c-format
-msgid "<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:mo> <mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+msgid "dim( B(a) ∩ I(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1244
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1192
 #, no-c-format
-msgid "<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:mo> <mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+msgid "dim( B(a) ∩ B(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1257
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1193
 #, no-c-format
-msgid "<mml:mtext mathvariant=\"italic\">dim( B(a)</mml:mtext> <mml:mo>∩</mml:mo> <mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+msgid "dim( B(a) ∩ E(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1274
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1197
 #, no-c-format
-msgid "<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:mo> <mml:mtext mathvariant=\"italic\">I(b) )</mml:mtext>"
+msgid "dim( E(a) ∩ I(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1287
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1198
 #, no-c-format
-msgid "<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:mo> <mml:mtext mathvariant=\"italic\">B(b) )</mml:mtext>"
+msgid "dim( E(a) ∩ B(b) )"
 msgstr ""
 
-#. Tag: mml:mrow
-#: using_postgis_dataman.xml:1300
+#. Tag: emphasis
+#: using_postgis_dataman.xml:1199
 #, no-c-format
-msgid "<mml:mtext mathvariant=\"italic\">dim( E(a)</mml:mtext> <mml:mo>∩</mml:mo> <mml:mtext mathvariant=\"italic\">E(b) )</mml:mtext>"
+msgid "dim( E(a) ∩ E(b) )"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1315
+#: using_postgis_dataman.xml:1206
 #, no-c-format
 msgid "Where <emphasis>dim(a)</emphasis> is the dimension of <emphasis>a</emphasis> as specified by <xref linkend=\"ST_Dimension\"/> but has the domain of <literal>{0,1,2,T,F,*}</literal>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1322
+#: using_postgis_dataman.xml:1213
 #, no-c-format
 msgid "<literal>0</literal> => point"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1326
+#: using_postgis_dataman.xml:1217
 #, no-c-format
 msgid "<literal>1</literal> => line"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1330
+#: using_postgis_dataman.xml:1221
 #, no-c-format
 msgid "<literal>2</literal> => area"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1334
+#: using_postgis_dataman.xml:1225
 #, no-c-format
 msgid "<literal>T</literal> => <literal>{0,1,2}</literal>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1339
+#: using_postgis_dataman.xml:1230
 #, no-c-format
 msgid "<literal>F</literal> => empty set"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1343
+#: using_postgis_dataman.xml:1234
 #, no-c-format
 msgid "<literal>*</literal> => don't care"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1347
+#: using_postgis_dataman.xml:1238
 #, no-c-format
 msgid "Visually, for two overlapping polygonal geometries, this looks like:"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1394 using_postgis_dataman.xml:1406 using_postgis_dataman.xml:1440 using_postgis_dataman.xml:1452
+#: using_postgis_dataman.xml:1285 using_postgis_dataman.xml:1297 using_postgis_dataman.xml:1331 using_postgis_dataman.xml:1343
 #, no-c-format
 msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">2</emphasis>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1400 using_postgis_dataman.xml:1417 using_postgis_dataman.xml:1429 using_postgis_dataman.xml:1446
+#: using_postgis_dataman.xml:1291 using_postgis_dataman.xml:1308 using_postgis_dataman.xml:1320 using_postgis_dataman.xml:1337
 #, no-c-format
 msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">1</emphasis>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1423
+#: using_postgis_dataman.xml:1314
 #, no-c-format
 msgid "<emphasis>dim(...) = </emphasis><emphasis role=\"bold\">0</emphasis>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1464
+#: using_postgis_dataman.xml:1355
 #, no-c-format
 msgid "Read from left to right and from top to bottom, the dimensional matrix is represented, '<emphasis role=\"bold\">212101212</emphasis>'."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1467
+#: using_postgis_dataman.xml:1358
 #, no-c-format
 msgid "A relate matrix that would therefore represent our first example of two lines that intersect on a line would be: '<emphasis role=\"bold\">1*1***1**</emphasis>'"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1471
+#: using_postgis_dataman.xml:1362
 #, no-c-format
 msgid ""
       "-- Identify road segments that cross on a line\n"
@@ -1948,13 +1948,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1473
+#: using_postgis_dataman.xml:1364
 #, no-c-format
 msgid "A relate matrix that represents the second example of wharfs partly on the lake's shoreline would be '<emphasis role=\"bold\">102101FF2</emphasis>'"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1477
+#: using_postgis_dataman.xml:1368
 #, no-c-format
 msgid ""
       "-- Identify wharfs partly on a lake's shoreline\n"
@@ -1965,67 +1965,67 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1479
+#: using_postgis_dataman.xml:1370
 #, no-c-format
 msgid "For more information or reading, see:"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1483
+#: using_postgis_dataman.xml:1374
 #, no-c-format
 msgid "<ulink url=\"http://www.opengeospatial.org/standards/sfs\">OpenGIS Simple Features Implementation Specification for SQL</ulink> (version 1.1, section 2.1.13.2)"
 msgstr ""
 
 #. Tag: ulink
-#: using_postgis_dataman.xml:1488
+#: using_postgis_dataman.xml:1379
 #, no-c-format
 msgid "Dimensionally Extended Nine-Intersection Model (DE-9IM) by Christian Strobl"
 msgstr ""
 
 #. Tag: ulink
-#: using_postgis_dataman.xml:1492
+#: using_postgis_dataman.xml:1383
 #, no-c-format
 msgid "GeoTools: Point Set Theory and the DE-9IM Matrix"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1495
+#: using_postgis_dataman.xml:1386
 #, no-c-format
 msgid "<emphasis>Encyclopedia of GIS</emphasis> By Hui Xiong"
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1505
+#: using_postgis_dataman.xml:1396
 #, no-c-format
-msgid "Loading GIS Data"
+msgid "Loading GIS (Vector) Data"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1507
+#: using_postgis_dataman.xml:1398
 #, no-c-format
 msgid "Once you have created a spatial table, you are ready to upload GIS data to the database. Currently, there are two ways to get data into a PostGIS/PostgreSQL database: using formatted SQL statements or using the Shape file loader/dumper."
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1513 using_postgis_dataman.xml:1789
+#: using_postgis_dataman.xml:1404
 #, no-c-format
-msgid "Using SQL"
+msgid "Loading Data Using SQL"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1515
+#: using_postgis_dataman.xml:1406
 #, no-c-format
 msgid "If you can convert your data to a text representation, then using formatted SQL might be the easiest way to get your data into PostGIS. As with Oracle and other SQL databases, data can be bulk loaded by piping a large text file full of SQL \"INSERT\" statements into the SQL terminal monitor."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1521
+#: using_postgis_dataman.xml:1412
 #, no-c-format
 msgid "A data upload file (<filename>roads.sql</filename> for example) might look like this:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1524
+#: using_postgis_dataman.xml:1415
 #, no-c-format
 msgid ""
       "BEGIN;\n"
@@ -2045,295 +2045,315 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1526
+#: using_postgis_dataman.xml:1417
 #, no-c-format
 msgid "The data file can be piped into PostgreSQL very easily using the \"psql\" SQL terminal monitor:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1529
+#: using_postgis_dataman.xml:1420
 #, no-c-format
 msgid "psql -d [database] -f roads.sql"
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1533
+#: using_postgis_dataman.xml:1424
 #, no-c-format
-msgid "Using the Loader"
+msgid "shp2pgsql: Using the ESRI Shapefile Loader"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1535
+#: using_postgis_dataman.xml:1426
 #, no-c-format
 msgid "The <filename>shp2pgsql</filename> data loader converts ESRI Shape files into SQL suitable for insertion into a PostGIS/PostgreSQL database either in geometry or geography format. The loader has several operating modes distinguished by command line flags:"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1540
+#: using_postgis_dataman.xml:1431
 #, no-c-format
 msgid "In addition to the shp2pgsql command-line loader, there is an <filename>shp2pgsql-gui</filename> graphical interface with most of the options as the command-line loader, but may be easier to use for one-off non-scripted loading or if you are new to PostGIS. It can also be configured as a plugin to PgAdminIII."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1547
+#: using_postgis_dataman.xml:1438
 #, no-c-format
 msgid "(c|a|d|p) These are mutually exclusive options:"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1552
+#: using_postgis_dataman.xml:1443
 #, no-c-format
 msgid "<term>-c</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1554
+#: using_postgis_dataman.xml:1445
 #, no-c-format
 msgid "Creates a new table and populates it from the shapefile. <emphasis>This is the default mode.</emphasis>"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1562
+#: using_postgis_dataman.xml:1453
 #, no-c-format
 msgid "<term>-a</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1564
+#: using_postgis_dataman.xml:1455
 #, no-c-format
 msgid "Appends data from the Shape file into the database table. Note that to use this option to load multiple files, the files must have the same attributes and same data types."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1573 using_postgis_dataman.xml:1948
+#: using_postgis_dataman.xml:1464 using_postgis_dataman.xml:1853
 #, no-c-format
 msgid "<term>-d</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1575
+#: using_postgis_dataman.xml:1466
 #, no-c-format
 msgid "Drops the database table before creating a new table with the data in the Shape file."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1583
+#: using_postgis_dataman.xml:1474
 #, no-c-format
 msgid "<term>-p</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1585
+#: using_postgis_dataman.xml:1476
 #, no-c-format
 msgid "Only produces the table creation SQL code, without adding any actual data. This can be used if you need to completely separate the table creation and data loading steps."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1598
+#: using_postgis_dataman.xml:1489
 #, no-c-format
 msgid "<term>-?</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1600
+#: using_postgis_dataman.xml:1491
 #, no-c-format
 msgid "Display help screen."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1607
+#: using_postgis_dataman.xml:1498
 #, no-c-format
 msgid "<term>-D</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1609
+#: using_postgis_dataman.xml:1500
 #, no-c-format
 msgid "Use the PostgreSQL \"dump\" format for the output data. This can be combined with -a, -c and -d. It is much faster to load than the default \"insert\" SQL format. Use this for very large data sets."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1618
+#: using_postgis_dataman.xml:1509
 #, no-c-format
 msgid "-s [<FROM_SRID%gt;:]<SRID>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1620
+#: using_postgis_dataman.xml:1511
 #, no-c-format
 msgid "Creates and populates the geometry tables with the specified SRID. Optionally specifies that the input shapefile uses the given FROM_SRID, in which case the geometries will be reprojected to the target SRID. FROM_SRID cannot be specified with -D."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1631
+#: using_postgis_dataman.xml:1522
 #, no-c-format
 msgid "<term>-k</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1633
+#: using_postgis_dataman.xml:1524
 #, no-c-format
 msgid "Keep identifiers' case (column, schema and attributes). Note that attributes in Shapefile are all UPPERCASE."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1641
+#: using_postgis_dataman.xml:1532
 #, no-c-format
 msgid "<term>-i</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1643
+#: using_postgis_dataman.xml:1534
 #, no-c-format
 msgid "Coerce all integers to standard 32-bit integers, do not create 64-bit bigints, even if the DBF header signature appears to warrant it."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1651
+#: using_postgis_dataman.xml:1542
 #, no-c-format
 msgid "<term>-I</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1653
+#: using_postgis_dataman.xml:1544
 #, no-c-format
 msgid "Create a GiST index on the geometry column."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1659
+#: using_postgis_dataman.xml:1551
+#, no-c-format
+msgid "<term>-m</term>"
+msgstr ""
+
+#. Tag: para
+#: using_postgis_dataman.xml:1553
+#, no-c-format
+msgid "-m <filename>a_file_name</filename> Specify a file containing a set of mappings of (long) column names to 10 character DBF column names. The content of the file is one or more lines of two names separated by white space and no trailing or leading space. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: using_postgis_dataman.xml:1558
+#, no-c-format
+msgid ""
+      "COLUMNNAME DBFFIELD1\n"
+      "AVERYLONGCOLUMNNAME DBFFIELD2"
+msgstr ""
+
+#. Tag: term
+#: using_postgis_dataman.xml:1564
 #, no-c-format
 msgid "<term>-S</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1661
+#: using_postgis_dataman.xml:1566
 #, no-c-format
 msgid "Generate simple geometries instead of MULTI geometries. Will only succeed if all the geometries are actually single (I.E. a MULTIPOLYGON with a single shell, or or a MULTIPOINT with a single vertex)."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1670
+#: using_postgis_dataman.xml:1575
 #, no-c-format
 msgid "-t <dimensionality>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1672
+#: using_postgis_dataman.xml:1577
 #, no-c-format
 msgid "Force the output geometry to have the specified dimensionality. Use the following strings to indicate the dimensionality: 2D, 3DZ, 3DM, 4D."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1676
+#: using_postgis_dataman.xml:1581
 #, no-c-format
 msgid "If the input has fewer dimensions that specified, the output will have those dimensions filled in with zeroes. If the input has more dimensions that specified, the unwanted dimensions will be stripped."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1685
+#: using_postgis_dataman.xml:1590
 #, no-c-format
 msgid "<term>-w</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1687
+#: using_postgis_dataman.xml:1592
 #, no-c-format
 msgid "Output WKT format, instead of WKB. Note that this can introduce coordinate drifts due to loss of precision."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1695
+#: using_postgis_dataman.xml:1600
 #, no-c-format
 msgid "<term>-e</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1697
+#: using_postgis_dataman.xml:1602
 #, no-c-format
 msgid "Execute each statement on its own, without using a transaction. This allows loading of the majority of good data when there are some bad geometries that generate errors. Note that this cannot be used with the -D flag as the \"dump\" format always uses a transaction."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1707
+#: using_postgis_dataman.xml:1612
 #, no-c-format
 msgid "-W <encoding>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1709
+#: using_postgis_dataman.xml:1614
 #, no-c-format
 msgid "Specify encoding of the input data (dbf file). When used, all attributes of the dbf are converted from the specified encoding to UTF8. The resulting SQL output will contain a <code>SET CLIENT_ENCODING to UTF8</code> command, so that the backend will be able to reconvert from UTF8 to whatever encoding the database is configured to use internally."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1719
+#: using_postgis_dataman.xml:1624
 #, no-c-format
 msgid "-N <policy>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1721
+#: using_postgis_dataman.xml:1626
 #, no-c-format
 msgid "NULL geometries handling policy (insert*,skip,abort)"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1727
+#: using_postgis_dataman.xml:1632
 #, no-c-format
 msgid "<term>-n</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1729
+#: using_postgis_dataman.xml:1634
 #, no-c-format
 msgid "-n Only import DBF file. If your data has no corresponding shapefile, it will automatically switch to this mode and load just the dbf. So setting this flag is only needed if you have a full shapefile set, and you only want the attribute data and no geometry."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1737
+#: using_postgis_dataman.xml:1642
 #, no-c-format
 msgid "<term>-G</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1739
+#: using_postgis_dataman.xml:1644
 #, no-c-format
 msgid "Use geography type instead of geometry (requires lon/lat data) in WGS84 long lat (SRID=4326)"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1745
+#: using_postgis_dataman.xml:1650
 #, no-c-format
 msgid "-T <tablespace>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1747
+#: using_postgis_dataman.xml:1652
 #, no-c-format
 msgid "Specify the tablespace for the new table. Indexes will still use the default tablespace unless the -X parameter is also used. The PostgreSQL documentation has a good description on when to use custom tablespaces."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1755
+#: using_postgis_dataman.xml:1660
 #, no-c-format
 msgid "-X <tablespace>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1757
+#: using_postgis_dataman.xml:1662
 #, no-c-format
 msgid "Specify the tablespace for the new table's indexes. This applies to the primary key index, and the GIST spatial index if -I is also used."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1765
+#: using_postgis_dataman.xml:1670
 #, no-c-format
 msgid "An example session using the loader to create an input file and uploading it might look like this:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1770
+#: using_postgis_dataman.xml:1675
 #, no-c-format
 msgid ""
       "# shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > roads.sql\n"
@@ -2341,37 +2361,43 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1772
+#: using_postgis_dataman.xml:1677
 #, no-c-format
 msgid "A conversion and upload can be done all in one step using UNIX pipes:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1776
+#: using_postgis_dataman.xml:1681
 #, no-c-format
 msgid "# shp2pgsql shaperoads.shp myschema.roadstable | psql -d roadsdb"
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1781
+#: using_postgis_dataman.xml:1686
 #, no-c-format
 msgid "Retrieving GIS Data"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1783
+#: using_postgis_dataman.xml:1688
 #, no-c-format
 msgid "Data can be extracted from the database using either SQL or the Shape file loader/dumper. In the section on SQL we will discuss some of the operators available to do comparisons and queries on spatial tables."
 msgstr ""
 
+#. Tag: title
+#: using_postgis_dataman.xml:1694
+#, no-c-format
+msgid "Using SQL to Retrieve Data"
+msgstr ""
+
 #. Tag: para
-#: using_postgis_dataman.xml:1791
+#: using_postgis_dataman.xml:1696
 #, no-c-format
 msgid "The most straightforward means of pulling data out of the database is to use a SQL select query to reduce the number of RECORDS and COLUMNS returned and dump the resulting columns into a parsable text file:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1796
+#: using_postgis_dataman.xml:1701
 #, no-c-format
 msgid ""
       "db=# SELECT road_id, ST_AsText(road_geom) AS geom, road_name FROM roads;\n"
@@ -2389,55 +2415,55 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1798
+#: using_postgis_dataman.xml:1703
 #, no-c-format
 msgid "However, there will be times when some kind of restriction is necessary to cut down the number of fields returned. In the case of attribute-based restrictions, just use the same SQL syntax as normal with a non-spatial table. In the case of spatial restrictions, the following operators are available/useful:"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1806
+#: using_postgis_dataman.xml:1711
 #, no-c-format
 msgid "&&"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1809
+#: using_postgis_dataman.xml:1714
 #, no-c-format
 msgid "This operator tells whether the bounding box of one geometry intersects the bounding box of another."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1815
+#: using_postgis_dataman.xml:1720
 #, no-c-format
 msgid "ST_OrderingEquals"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1818
+#: using_postgis_dataman.xml:1723
 #, no-c-format
 msgid "This tests whether two geometries are geometrically identical. For example, if 'POLYGON((0 0,1 1,1 0,0 0))' is the same as 'POLYGON((0 0,1 1,1 0,0 0))' (it is)."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1825
+#: using_postgis_dataman.xml:1730
 #, no-c-format
 msgid "<term>=</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1828
+#: using_postgis_dataman.xml:1733
 #, no-c-format
 msgid "This operator is a little more naive, it only tests whether the bounding boxes of two geometries are the same."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1834
+#: using_postgis_dataman.xml:1739
 #, no-c-format
 msgid "Next, you can use these operators in queries. Note that when specifying geometries and boxes on the SQL command line, you must explicitly turn the string representations into geometries by using the \"ST_GeomFromText()\" function. The 312 is a fictitious spatial reference system that matches our data. So, for example:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1840
+#: using_postgis_dataman.xml:1745
 #, no-c-format
 msgid ""
       "SELECT road_id, road_name\n"
@@ -2446,19 +2472,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1842
+#: using_postgis_dataman.xml:1747
 #, no-c-format
 msgid "The above query would return the single record from the \"ROADS_GEOM\" table in which the geometry was equal to that value."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1845
+#: using_postgis_dataman.xml:1750
 #, no-c-format
 msgid "When using the \"&&\" operator, you can specify either a BOX3D as the comparison feature or a GEOMETRY. When you specify a GEOMETRY, however, its bounding box will be used for the comparison."
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1850
+#: using_postgis_dataman.xml:1755
 #, no-c-format
 msgid ""
       "SELECT road_id, road_name\n"
@@ -2467,19 +2493,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1852
+#: using_postgis_dataman.xml:1757
 #, no-c-format
 msgid "The above query will use the bounding box of the polygon for comparison purposes."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1855
+#: using_postgis_dataman.xml:1760
 #, no-c-format
 msgid "The most common spatial query will probably be a \"frame-based\" query, used by client software, like data browsers and web mappers, to grab a \"map frame\" worth of data for display. Using a \"BOX3D\" object for the frame, such a query looks like this:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1860
+#: using_postgis_dataman.xml:1765
 #, no-c-format
 msgid ""
       "SELECT ST_AsText(roads_geom) AS geom\n"
@@ -2489,235 +2515,235 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1862
+#: using_postgis_dataman.xml:1767
 #, no-c-format
 msgid "Note the use of the SRID 312, to specify the projection of the envelope."
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1866
+#: using_postgis_dataman.xml:1771
 #, no-c-format
 msgid "Using the Dumper"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1868
+#: using_postgis_dataman.xml:1773
 #, no-c-format
 msgid "The <filename>pgsql2shp</filename> table dumper connects directly to the database and converts a table (possibly defined by a query) into a shape file. The basic syntax is:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1872
+#: using_postgis_dataman.xml:1777
 #, no-c-format
 msgid "pgsql2shp [<options>] <database> [<schema>.]<table>"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:1874
+#: using_postgis_dataman.xml:1779
 #, no-c-format
 msgid "pgsql2shp [<options>] <database> <query>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1876
+#: using_postgis_dataman.xml:1781
 #, no-c-format
 msgid "The commandline options are:"
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1880
+#: using_postgis_dataman.xml:1785
 #, no-c-format
 msgid "-f <filename>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1883
+#: using_postgis_dataman.xml:1788
 #, no-c-format
 msgid "Write the output to a particular filename."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1888
+#: using_postgis_dataman.xml:1793
 #, no-c-format
 msgid "-h <host>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1891
+#: using_postgis_dataman.xml:1796
 #, no-c-format
 msgid "The database host to connect to."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1896
+#: using_postgis_dataman.xml:1801
 #, no-c-format
 msgid "-p <port>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1899
+#: using_postgis_dataman.xml:1804
 #, no-c-format
 msgid "The port to connect to on the database host."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1904
+#: using_postgis_dataman.xml:1809
 #, no-c-format
 msgid "-P <password>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1907
+#: using_postgis_dataman.xml:1812
 #, no-c-format
 msgid "The password to use when connecting to the database."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1912
+#: using_postgis_dataman.xml:1817
 #, no-c-format
 msgid "-u <user>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1915
+#: using_postgis_dataman.xml:1820
 #, no-c-format
 msgid "The username to use when connecting to the database."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1920
+#: using_postgis_dataman.xml:1825
 #, no-c-format
 msgid "-g <geometry column>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1923
+#: using_postgis_dataman.xml:1828
 #, no-c-format
 msgid "In the case of tables with multiple geometry columns, the geometry column to use when writing the shape file."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1929
+#: using_postgis_dataman.xml:1834
 #, no-c-format
 msgid "<term>-b</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1932
+#: using_postgis_dataman.xml:1837
 #, no-c-format
 msgid "Use a binary cursor. This will make the operation faster, but will not work if any NON-geometry attribute in the table lacks a cast to text."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1939
+#: using_postgis_dataman.xml:1844
 #, no-c-format
 msgid "<term>-r</term>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1942
+#: using_postgis_dataman.xml:1847
 #, no-c-format
 msgid "Raw mode. Do not drop the <varname>gid</varname> field, or escape column names."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1951
+#: using_postgis_dataman.xml:1856
 #, no-c-format
 msgid "For backward compatibility: write a 3-dimensional shape file when dumping from old (pre-1.0.0) postgis databases (the default is to write a 2-dimensional shape file in that case). Starting from postgis-1.0.0+, dimensions are fully encoded."
 msgstr ""
 
 #. Tag: term
-#: using_postgis_dataman.xml:1959
+#: using_postgis_dataman.xml:1864
 #, no-c-format
 msgid "-m <varname>filename</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1961
+#: using_postgis_dataman.xml:1866
 #, no-c-format
 msgid "Remap identifiers to ten character names. The content of the file is lines of two symbols separated by a single white space and no trailing or leading space: VERYLONGSYMBOL SHORTONE ANOTHERVERYLONGSYMBOL SHORTER etc."
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:1974
+#: using_postgis_dataman.xml:1879
 #, no-c-format
 msgid "Building Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1976
+#: using_postgis_dataman.xml:1881
 #, no-c-format
 msgid "Indexes are what make using a spatial database for large data sets possible. Without indexing, any search for a feature would require a \"sequential scan\" of every record in the database. Indexing speeds up searching by organizing the data into a search tree which can be quickly traversed to find a particular record. PostgreSQL supports three kinds of indexes by default: B-Tree indexes, R-Tree indexes, and GiST indexes."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1986
+#: using_postgis_dataman.xml:1891
 #, no-c-format
 msgid "B-Trees are used for data which can be sorted along one axis; for example, numbers, letters, dates. GIS data cannot be rationally sorted along one axis (which is greater, (0,0) or (0,1) or (1,0)?) so B-Tree indexing is of no use for us."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:1993
+#: using_postgis_dataman.xml:1898
 #, no-c-format
 msgid "R-Trees break up data into rectangles, and sub-rectangles, and sub-sub rectangles, etc. R-Trees are used by some spatial databases to index GIS data, but the PostgreSQL R-Tree implementation is not as robust as the GiST implementation."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2000
+#: using_postgis_dataman.xml:1905
 #, no-c-format
 msgid "GiST (Generalized Search Trees) indexes break up data into \"things to one side\", \"things which overlap\", \"things which are inside\" and can be used on a wide range of data-types, including GIS data. PostGIS uses an R-Tree index implemented on top of GiST to index GIS data."
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2009
+#: using_postgis_dataman.xml:1914
 #, no-c-format
 msgid "GiST Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2011
+#: using_postgis_dataman.xml:1916
 #, no-c-format
 msgid "GiST stands for \"Generalized Search Tree\" and is a generic form of indexing. In addition to GIS indexing, GiST is used to speed up searches on all kinds of irregular data structures (integer arrays, spectral data, etc) which are not amenable to normal B-Tree indexing."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2016
+#: using_postgis_dataman.xml:1921
 #, no-c-format
 msgid "Once a GIS data table exceeds a few thousand rows, you will want to build an index to speed up spatial searches of the data (unless all your searches are based on attributes, in which case you'll want to build a normal index on the attribute fields)."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2021
+#: using_postgis_dataman.xml:1926
 #, no-c-format
 msgid "The syntax for building a GiST index on a \"geometry\" column is as follows:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2024
+#: using_postgis_dataman.xml:1929
 #, no-c-format
 msgid "CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2025
+#: using_postgis_dataman.xml:1930
 #, no-c-format
 msgid "The above syntax will always build a 2D-index. To get the an n-dimensional index supported in PostGIS 2.0+ for the geometry type, you can create one using this syntax"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2026
+#: using_postgis_dataman.xml:1931
 #, no-c-format
 msgid "CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield] gist_geometry_ops_nd);"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2028
+#: using_postgis_dataman.xml:1933
 #, no-c-format
 msgid "Building a spatial index is a computationally intensive exercise: on tables of around 1 million rows, on a 300MHz Solaris machine, we have found building a GiST index takes about 1 hour. After building an index, it is important to force PostgreSQL to collect table statistics, which are used to optimize query plans:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2034
+#: using_postgis_dataman.xml:1939
 #, no-c-format
 msgid ""
       "VACUUM ANALYZE [table_name] [(column_name)];\n"
@@ -2726,79 +2752,79 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2036
+#: using_postgis_dataman.xml:1941
 #, no-c-format
 msgid "GiST indexes have two advantages over R-Tree indexes in PostgreSQL. Firstly, GiST indexes are \"null safe\", meaning they can index columns which include null values. Secondly, GiST indexes support the concept of \"lossiness\" which is important when dealing with GIS objects larger than the PostgreSQL 8K page size. Lossiness allows PostgreSQL to store only the \"important\" part of an object in an index -- in the case of GIS objects, just the bounding box. GIS objects larger than  [...]
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2048
+#: using_postgis_dataman.xml:1953
 #, no-c-format
 msgid "Using Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2050
+#: using_postgis_dataman.xml:1955
 #, no-c-format
 msgid "Ordinarily, indexes invisibly speed up data access: once the index is built, the query planner transparently decides when to use index information to speed up a query plan. Unfortunately, the PostgreSQL query planner does not optimize the use of GiST indexes well, so sometimes searches which should use a spatial index instead default to a sequence scan of the whole table."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2057
+#: using_postgis_dataman.xml:1962
 #, no-c-format
 msgid "If you find your spatial indexes are not being used (or your attribute indexes, for that matter) there are a couple things you can do:"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2063
+#: using_postgis_dataman.xml:1968
 #, no-c-format
 msgid "Firstly, make sure statistics are gathered about the number and distributions of values in a table, to provide the query planner with better information to make decisions around index usage. For PostgreSQL 7.4 installations and below this is done by running <command>update_geometry_stats([table_name, column_name])</command> (compute distribution) and <command>VACUUM ANALYZE [table_name] [column_name]</command> (compute number of values). Starting with PostgreSQL 8.0 running <comma [...]
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2077
+#: using_postgis_dataman.xml:1982
 #, no-c-format
 msgid "If vacuuming does not work, you can force the planner to use the index information by using the <command>SET ENABLE_SEQSCAN=OFF</command> command. You should only use this command sparingly, and only on spatially indexed queries: generally speaking, the planner knows better than you do about when to use normal B-Tree indexes. Once you have run your query, you should consider setting <varname>ENABLE_SEQSCAN</varname> back on, so that other queries will utilize the planner as normal."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2087
+#: using_postgis_dataman.xml:1992
 #, no-c-format
 msgid "As of version 0.6, it should not be necessary to force the planner to use the index with <varname>ENABLE_SEQSCAN</varname>."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2094
+#: using_postgis_dataman.xml:1999
 #, no-c-format
 msgid "If you find the planner wrong about the cost of sequential vs index scans try reducing the value of random_page_cost in postgresql.conf or using SET random_page_cost=#. Default value for the parameter is 4, try setting it to 1 or 2. Decrementing the value makes the planner more inclined of using Index scans."
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2105
+#: using_postgis_dataman.xml:2010
 #, no-c-format
 msgid "Complex Queries"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2107
+#: using_postgis_dataman.xml:2012
 #, no-c-format
 msgid "The <emphasis>raison d'etre</emphasis> of spatial database functionality is performing queries inside the database which would ordinarily require desktop GIS functionality. Using PostGIS effectively requires knowing what spatial functions are available, and ensuring that appropriate indexes are in place to provide good performance. The SRID of 312 used in these examples is purely for demonstration. You should be using a REAL SRID listed in the the spatial_ref_sys table and one tha [...]
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2121
+#: using_postgis_dataman.xml:2026
 #, no-c-format
 msgid "Taking Advantage of Indexes"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2123
+#: using_postgis_dataman.xml:2028
 #, no-c-format
 msgid "When constructing a query it is important to remember that only the bounding-box-based operators such as && can take advantage of the GiST spatial index. Functions such as <varname>ST_Distance()</varname> cannot use the index to optimize their operation. For example, the following query would be quite slow on a large table:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2130
+#: using_postgis_dataman.xml:2035
 #, no-c-format
 msgid ""
       "SELECT the_geom\n"
@@ -2807,13 +2833,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2132
+#: using_postgis_dataman.xml:2037
 #, no-c-format
 msgid "This query is selecting all the geometries in geom_table which are within 100 units of the point (100000, 200000). It will be slow because it is calculating the distance between each point in the table and our specified point, ie. one <varname>ST_Distance()</varname> calculation for each row in the table. We can avoid this by using the && operator to reduce the number of distance calculations required:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2139
+#: using_postgis_dataman.xml:2044
 #, no-c-format
 msgid ""
       "SELECT the_geom\n"
@@ -2822,37 +2848,37 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2141
+#: using_postgis_dataman.xml:2046
 #, no-c-format
 msgid "This query selects the same geometries, but it does it in a more efficient way. Assuming there is a GiST index on the_geom, the query planner will recognize that it can use the index to reduce the number of rows before calculating the result of the <varname>ST_distance()</varname> function. Notice that the <varname>ST_MakeEnvelope</varname> geometry which is used in the && operation is a 200 unit square box centered on the original point - this is our \"query box\". The &a [...]
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2155
+#: using_postgis_dataman.xml:2060
 #, no-c-format
 msgid "Change in Behavior"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2157
+#: using_postgis_dataman.xml:2062
 #, no-c-format
 msgid "As of PostGIS 1.3.0, most of the Geometry Relationship Functions, with the notable exceptions of ST_Disjoint and ST_Relate, include implicit bounding box overlap operators."
 msgstr ""
 
 #. Tag: title
-#: using_postgis_dataman.xml:2164
+#: using_postgis_dataman.xml:2069
 #, no-c-format
 msgid "Examples of Spatial SQL"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2166
+#: using_postgis_dataman.xml:2071
 #, no-c-format
 msgid "The examples in this section will make use of two tables, a table of linear roads, and a table of polygonal municipality boundaries. The table definitions for the <varname>bc_roads</varname> table is:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2170
+#: using_postgis_dataman.xml:2075
 #, no-c-format
 msgid ""
       "Column      | Type              | Description\n"
@@ -2863,13 +2889,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2172
+#: using_postgis_dataman.xml:2077
 #, no-c-format
 msgid "The table definition for the <varname>bc_municipality</varname> table is:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2175
+#: using_postgis_dataman.xml:2080
 #, no-c-format
 msgid ""
       "Column     | Type              | Description\n"
@@ -2881,19 +2907,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2180
+#: using_postgis_dataman.xml:2085
 #, no-c-format
 msgid "What is the total length of all roads, expressed in kilometers?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2185
+#: using_postgis_dataman.xml:2090
 #, no-c-format
 msgid "You can answer this question with a very simple piece of SQL:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2188
+#: using_postgis_dataman.xml:2093
 #, no-c-format
 msgid ""
       "SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM bc_roads;\n"
@@ -2905,19 +2931,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2194
+#: using_postgis_dataman.xml:2099
 #, no-c-format
 msgid "How large is the city of Prince George, in hectares?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2198
+#: using_postgis_dataman.xml:2103
 #, no-c-format
 msgid "This query combines an attribute condition (on the municipality name) with a spatial calculation (of the area):"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2202
+#: using_postgis_dataman.xml:2107
 #, no-c-format
 msgid ""
       "SELECT\n"
@@ -2932,19 +2958,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2208
+#: using_postgis_dataman.xml:2113
 #, no-c-format
 msgid "What is the largest municipality in the province, by area?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2213
+#: using_postgis_dataman.xml:2118
 #, no-c-format
 msgid "This query brings a spatial measurement into the query condition. There are several ways of approaching this problem, but the most efficient is below:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2217
+#: using_postgis_dataman.xml:2122
 #, no-c-format
 msgid ""
       "SELECT\n"
@@ -2962,25 +2988,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2219
+#: using_postgis_dataman.xml:2124
 #, no-c-format
 msgid "Note that in order to answer this query we have to calculate the area of every polygon. If we were doing this a lot it would make sense to add an area column to the table that we could separately index for performance. By ordering the results in a descending direction, and them using the PostgreSQL \"LIMIT\" command we can easily pick off the largest value without using an aggregate function like max()."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2231
+#: using_postgis_dataman.xml:2136
 #, no-c-format
 msgid "What is the length of roads fully contained within each municipality?"
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2236
+#: using_postgis_dataman.xml:2141
 #, no-c-format
 msgid "This is an example of a \"spatial join\", because we are bringing together data from two tables (doing a join) but using a spatial interaction condition (\"contained\") as the join condition rather than the usual relational approach of joining on a common key:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2242
+#: using_postgis_dataman.xml:2147
 #, no-c-format
 msgid ""
       "SELECT\n"
@@ -3005,25 +3031,25 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2244
+#: using_postgis_dataman.xml:2149
 #, no-c-format
 msgid "This query takes a while, because every road in the table is summarized into the final result (about 250K roads for our particular example table). For smaller overlays (several thousand records on several hundred) the response can be very fast."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2253
+#: using_postgis_dataman.xml:2158
 #, no-c-format
 msgid "Create a new table with all the roads within the city of Prince George."
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2258
+#: using_postgis_dataman.xml:2163
 #, no-c-format
 msgid "This is an example of an \"overlay\", which takes in two tables and outputs a new table that consists of spatially clipped or cut resultants. Unlike the \"spatial join\" demonstrated above, this query actually creates new geometries. An overlay is like a turbo-charged spatial join, and is useful for more exact analysis work:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2265
+#: using_postgis_dataman.xml:2170
 #, no-c-format
 msgid ""
       "CREATE TABLE pg_roads as\n"
@@ -3038,13 +3064,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2271
+#: using_postgis_dataman.xml:2176
 #, no-c-format
 msgid "What is the length in kilometers of \"Douglas St\" in Victoria?"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2276
+#: using_postgis_dataman.xml:2181
 #, no-c-format
 msgid ""
       "SELECT\n"
@@ -3062,13 +3088,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_postgis_dataman.xml:2282
+#: using_postgis_dataman.xml:2187
 #, no-c-format
 msgid "What is the largest municipality polygon that has a hole?"
 msgstr ""
 
 #. Tag: programlisting
-#: using_postgis_dataman.xml:2287
+#: using_postgis_dataman.xml:2192
 #, no-c-format
 msgid ""
       "SELECT gid, name, ST_Area(the_geom) AS area\n"
diff --git a/doc/po/templates/using_raster_dataman.xml.pot b/doc/po/templates/using_raster_dataman.xml.pot
index e5d6e99..f496da5 100644
--- a/doc/po/templates/using_raster_dataman.xml.pot
+++ b/doc/po/templates/using_raster_dataman.xml.pot
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2012-09-14 17:50+0000\n"
+"POT-Creation-Date: 2014-10-18 10:29+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
@@ -63,405 +63,405 @@ msgid "When creating overviews of a specific factor from a set of rasters that a
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:25
+#: using_raster_dataman.xml:23
 #, no-c-format
 msgid "EXAMPLE USAGE:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:26
+#: using_raster_dataman.xml:24
 #, no-c-format
 msgid "raster2pgsql <varname>raster_options_go_here</varname> <varname>raster_file</varname> <varname>someschema</varname>.<varname>sometable</varname> > out.sql"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:30
+#: using_raster_dataman.xml:28
 #, no-c-format
 msgid "<term>-?</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:32
+#: using_raster_dataman.xml:30
 #, no-c-format
 msgid "Display help screen. Help will also display if you don't pass in any arguments."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:39
+#: using_raster_dataman.xml:37
 #, no-c-format
 msgid "<term>-G</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:41
+#: using_raster_dataman.xml:39
 #, no-c-format
 msgid "Print the supported raster formats."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:48
+#: using_raster_dataman.xml:46
 #, no-c-format
 msgid "(c|a|d|p) These are mutually exclusive options:"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:53
+#: using_raster_dataman.xml:51
 #, no-c-format
 msgid "<term>-c</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:55
+#: using_raster_dataman.xml:53
 #, no-c-format
 msgid "Create new table and populate it with raster(s), <emphasis>this is the default mode</emphasis>"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:62
+#: using_raster_dataman.xml:60
 #, no-c-format
 msgid "<term>-a</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:64
+#: using_raster_dataman.xml:62
 #, no-c-format
 msgid "Append raster(s) to an existing table."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:71
+#: using_raster_dataman.xml:69
 #, no-c-format
 msgid "<term>-d</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:73
+#: using_raster_dataman.xml:71
 #, no-c-format
 msgid "Drop table, create new one and populate it with raster(s)"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:80
+#: using_raster_dataman.xml:78
 #, no-c-format
 msgid "<term>-p</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:82
+#: using_raster_dataman.xml:80
 #, no-c-format
 msgid "Prepare mode, only create the table."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:93
+#: using_raster_dataman.xml:91
 #, no-c-format
 msgid "Raster processing: Applying constraints for proper registering in raster catalogs"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:98
+#: using_raster_dataman.xml:96
 #, no-c-format
 msgid "<term>-C</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:100
+#: using_raster_dataman.xml:98
 #, no-c-format
 msgid "Apply raster constraints -- srid, pixelsize etc. to ensure raster is properly registered in <varname>raster_columns</varname> view."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:106
+#: using_raster_dataman.xml:104
 #, no-c-format
 msgid "<term>-x</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:108
+#: using_raster_dataman.xml:106
 #, no-c-format
 msgid "Disable setting the max extent constraint. Only applied if -C flag is also used."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:114
+#: using_raster_dataman.xml:112
 #, no-c-format
 msgid "<term>-r</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:116
+#: using_raster_dataman.xml:114
 #, no-c-format
-msgid "Set the regular blocking constraint. Only applied if -C flag is also used."
+msgid "Set the constraints (spatially unique and coverage tile) for regular blocking. Only applied if -C flag is also used."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:127
+#: using_raster_dataman.xml:125
 #, no-c-format
 msgid "Raster processing: Optional parameters used to manipulate input raster dataset"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:132
+#: using_raster_dataman.xml:130
 #, no-c-format
 msgid "-s <SRID>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:134
+#: using_raster_dataman.xml:132
 #, no-c-format
 msgid "Assign output raster with specified SRID. If not provided or is zero, raster's metadata will be checked to determine an appropriate SRID."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:141
+#: using_raster_dataman.xml:139
 #, no-c-format
 msgid "-b BAND"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:143
+#: using_raster_dataman.xml:141
 #, no-c-format
 msgid "Index (1-based) of band to extract from raster. For more than one band index, separate with comma (,). If unspecified, all bands of raster will be extracted."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:151
+#: using_raster_dataman.xml:149
 #, no-c-format
 msgid "-t TILE_SIZE"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:153
+#: using_raster_dataman.xml:151
 #, no-c-format
-msgid "Cut raster into tiles to be inserted one per table row. <varname>TILE_SIZE</varname> is expressed as WIDTHxHEIGHT."
+msgid "Cut raster into tiles to be inserted one per table row. <varname>TILE_SIZE</varname> is expressed as WIDTHxHEIGHT or set to the value \"auto\" to allow the loader to compute an appropriate tile size using the first raster and applied to all rasters."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:160
+#: using_raster_dataman.xml:158
 #, no-c-format
 msgid "-R, --register"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:162
+#: using_raster_dataman.xml:160
 #, no-c-format
 msgid "Register the raster as a filesystem (out-db) raster."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:163
+#: using_raster_dataman.xml:161
 #, no-c-format
 msgid "Only the metadata of the raster and path location to the raster is stored in the database (not the pixels)."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:168
+#: using_raster_dataman.xml:166
 #, no-c-format
 msgid "-l <varname>OVERVIEW_FACTOR</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:169
+#: using_raster_dataman.xml:167
 #, no-c-format
-msgid "Create overview of the raster. For more than one factor, separate with comma(,). Overview table name follows the pattern o_<varname>overview factor</varname>_<varname>table</varname>. Created overview is stored in the database and is not affected by -R. Note that your generated sql file will contain both the main table and overview tables."
+msgid "Create overview of the raster. For more than one factor, separate with comma(,). Overview table name follows the pattern o_<varname>overview factor</varname>_<varname>table</varname>, where <varname>overview factor</varname> is a placeholder for numerical overview factor and <varname>table</varname> is replaced with the base table name. Created overview is stored in the database and is not affected by -R. Note that your generated sql file will contain both the main table and overv [...]
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:177
+#: using_raster_dataman.xml:175
 #, no-c-format
 msgid "-N <varname>NODATA</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:179
+#: using_raster_dataman.xml:177
 #, no-c-format
 msgid "NODATA value to use on bands without a NODATA value."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:191
+#: using_raster_dataman.xml:189
 #, no-c-format
 msgid "Optional parameters used to manipulate database objects"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:196
+#: using_raster_dataman.xml:194
 #, no-c-format
 msgid "<term>-q</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:198
+#: using_raster_dataman.xml:196
 #, no-c-format
 msgid "Wrap PostgreSQL identifiers in quotes"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:203
+#: using_raster_dataman.xml:201
 #, no-c-format
 msgid "-f COLUMN"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:205
+#: using_raster_dataman.xml:203
 #, no-c-format
 msgid "Specify name of destination raster column, default is 'rast'"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:211
+#: using_raster_dataman.xml:209
 #, no-c-format
 msgid "<term>-F</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:213
+#: using_raster_dataman.xml:211
 #, no-c-format
 msgid "Add a column with the name of the file"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:218
+#: using_raster_dataman.xml:216
 #, no-c-format
 msgid "<term>-I</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:220
+#: using_raster_dataman.xml:218
 #, no-c-format
 msgid "Create a GiST index on the raster column."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:227
+#: using_raster_dataman.xml:225
 #, no-c-format
 msgid "<term>-M</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:229
+#: using_raster_dataman.xml:227
 #, no-c-format
 msgid "Vacuum analyze the raster table."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:236
+#: using_raster_dataman.xml:234
 #, no-c-format
 msgid "-T <varname>tablespace</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:238
+#: using_raster_dataman.xml:236
 #, no-c-format
 msgid "Specify the tablespace for the new table. Note that indices (including the primary key) will still use the default tablespace unless the -X flag is also used."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:247
+#: using_raster_dataman.xml:245
 #, no-c-format
 msgid "-X <varname>tablespace</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:249
+#: using_raster_dataman.xml:247
 #, no-c-format
 msgid "Specify the tablespace for the table's new index. This applies to the primary key and the spatial index if the -I flag is used."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:258
+#: using_raster_dataman.xml:256
 #, no-c-format
 msgid "<term>-Y</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:260
+#: using_raster_dataman.xml:258
 #, no-c-format
 msgid "Use copy statements instead of insert statements."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:271
+#: using_raster_dataman.xml:269
 #, no-c-format
 msgid "<term>-e</term>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:272
+#: using_raster_dataman.xml:270
 #, no-c-format
 msgid "Execute each statement individually, do not use a transaction."
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:276
+#: using_raster_dataman.xml:274
 #, no-c-format
 msgid "-E ENDIAN"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:277
+#: using_raster_dataman.xml:275
 #, no-c-format
 msgid "Control endianness of generated binary output of raster; specify 0 for XDR and 1 for NDR (default); only NDR output is supported now"
 msgstr ""
 
 #. Tag: term
-#: using_raster_dataman.xml:281
+#: using_raster_dataman.xml:279
 #, no-c-format
 msgid "-V <varname>version</varname>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:282
+#: using_raster_dataman.xml:280
 #, no-c-format
 msgid "Specify version of output format. Default is 0. Only 0 is supported at this time."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:285
+#: using_raster_dataman.xml:283
 #, no-c-format
 msgid "An example session using the loader to create an input file and uploading it chunked in 100x100 tiles might look like this:"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:286
+#: using_raster_dataman.xml:284
 #, no-c-format
 msgid "You can leave the schema name out e.g <varname>demelevation</varname> instead of <varname>public.demelevation</varname> and the raster table will be created in the default schema of the database or user"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:288
+#: using_raster_dataman.xml:286
 #, no-c-format
 msgid ""
-      "raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation > elev.sql\n"
+      "raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation > elev.sql\n"
       "psql -d gisdb -f elev.sql"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:290
+#: using_raster_dataman.xml:288
 #, no-c-format
 msgid "A conversion and upload can be done all in one step using UNIX pipes:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:292
+#: using_raster_dataman.xml:290
 #, no-c-format
-msgid "raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation | psql -d gisdb"
+msgid "raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation | psql -d gisdb"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:294
+#: using_raster_dataman.xml:292
 #, no-c-format
 msgid "Load rasters Massachusetts state plane meters aerial tiles into a schema called <varname>aerial</varname> and create a full view, 2 and 4 level overview tables, use copy mode for inserting (no intermediary file just straight to db), and -e don't force everything in a transaction (good if you want to see data in tables right away without waiting). Break up the rasters into 128x128 pixel tiles and apply raster constraints. Use copy mode instead of table insert. (-F) Include a field  [...]
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:296
+#: using_raster_dataman.xml:294
 #, no-c-format
 msgid "raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128  -l 2,4 bostonaerials2008/*.jpg aerials.boston | psql -U postgres -d gisdb -h localhost -p 5432"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:298
+#: using_raster_dataman.xml:296
 #, no-c-format
 msgid ""
       "--get a list of raster types supported:\n"
@@ -469,13 +469,13 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:300
+#: using_raster_dataman.xml:298
 #, no-c-format
 msgid "The -G commands outputs a list something like"
 msgstr ""
 
 #. Tag: screen
-#: using_raster_dataman.xml:301
+#: using_raster_dataman.xml:299
 #, no-c-format
 msgid ""
       "Available GDAL raster formats:\n"
@@ -579,349 +579,361 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:304
+#: using_raster_dataman.xml:302
 #, no-c-format
 msgid "Creating rasters using PostGIS raster functions"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:305
+#: using_raster_dataman.xml:303
 #, no-c-format
 msgid "On many occasions, you'll want to create rasters and raster tables right in the database. There are a plethora of functions to do that. The general steps to follow."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:307
+#: using_raster_dataman.xml:305
 #, no-c-format
 msgid "Create a table with a raster column to hold the new raster records which can be accomplished with:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:308
+#: using_raster_dataman.xml:306
 #, no-c-format
 msgid "CREATE TABLE myrasters(rid serial primary key, rast raster);"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:311
+#: using_raster_dataman.xml:309
 #, no-c-format
 msgid "There are many functions to help with that goal. If you are creating rasters not as a derivative of other rasters, you will want to start with: <xref linkend=\"RT_ST_MakeEmptyRaster\"/>, followed by <xref linkend=\"RT_ST_AddBand\"/>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:313
+#: using_raster_dataman.xml:311
 #, no-c-format
 msgid "You can also create rasters from geometries. To achieve that you'll want to use <xref linkend=\"RT_ST_AsRaster\"/> perhaps accompanied with other functions such as <xref linkend=\"RT_ST_Union\"/> or <xref linkend=\"RT_ST_MapAlgebraFct2\"/> or any of the family of other map algebra functions."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:315
+#: using_raster_dataman.xml:313
 #, no-c-format
 msgid "There are even many more options for creating new raster tables from existing tables. For example you can create a raster table in a different projection from an existing one using <xref linkend=\"RT_ST_Transform\"/>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:317
+#: using_raster_dataman.xml:315
 #, no-c-format
 msgid "Once you are done populating your table initially, you'll want to create a spatial index on the raster column with something like:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:318
+#: using_raster_dataman.xml:316
 #, no-c-format
 msgid "CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING gist( ST_ConvexHull(rast) );"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:319
+#: using_raster_dataman.xml:317
 #, no-c-format
 msgid "Note the use of <xref linkend=\"RT_ST_ConvexHull\"/> since most raster operators are based on the convex hull of the rasters."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:320
+#: using_raster_dataman.xml:318
 #, no-c-format
 msgid "Pre-2.0 versions of PostGIS raster were based on the envelop rather than the convex hull. For the spatial indexes to work properly you'll need to drop those and replace with convex hull based index."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:321
+#: using_raster_dataman.xml:319
 #, no-c-format
 msgid "Apply raster constraints using <xref linkend=\"RT_AddRasterConstraints\"/>"
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:326
+#: using_raster_dataman.xml:324
 #, no-c-format
 msgid "Raster Catalogs"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:327
+#: using_raster_dataman.xml:325
 #, no-c-format
 msgid "There are two raster catalog views that come packaged with PostGIS. Both views utilize information embedded in the constraints of the raster tables. As a result the catalog views are always consistent with the raster data in the tables since the constraints are enforced."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:331
+#: using_raster_dataman.xml:329
 #, no-c-format
 msgid "<varname>raster_columns</varname> this view catalogs all the raster table columns in your database."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:334
+#: using_raster_dataman.xml:332
 #, no-c-format
 msgid "<varname>raster_overviews</varname> this view catalogs all the raster table columns in your database that serve as overviews for a finer grained table. Tables of this type are generated when you use the <varname>-l</varname> switch during load."
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:338
+#: using_raster_dataman.xml:336
 #, no-c-format
 msgid "Raster Columns Catalog"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:339
+#: using_raster_dataman.xml:337
 #, no-c-format
 msgid "The <varname>raster_columns</varname> is a catalog of all raster table columns in your database that are of type raster. It is a view utilizing the constraints on the tables so the information is always consistent even if you restore one raster table from a backup of another database. The following columns exist in the <varname>raster_columns</varname> catalog."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:341
+#: using_raster_dataman.xml:339
 #, no-c-format
 msgid "If you created your tables not with the loader or forgot to specify the <varname>-C</varname> flag during load, you can enforce the constraints after the fact using <xref linkend=\"RT_AddRasterConstraints\"/> so that the <varname>raster_columns</varname> catalog registers the common information about your raster tiles."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:346
+#: using_raster_dataman.xml:344
 #, no-c-format
 msgid "<varname>r_table_catalog</varname> The database the table is in. This will always read the current database."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:349
+#: using_raster_dataman.xml:347
 #, no-c-format
 msgid "<varname>r_table_schema</varname> The database schema the raster table belongs to."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:352
+#: using_raster_dataman.xml:350
 #, no-c-format
 msgid "<varname>r_table_name</varname> raster table"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:355
+#: using_raster_dataman.xml:353
 #, no-c-format
 msgid "<varname>r_raster_column</varname> the column in the <varname>r_table_name</varname> table that is of type raster. There is nothing in PostGIS preventing you from having multiple raster columns per table so its possible to have a raster table listed multiple times with a different raster column for each."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:358
+#: using_raster_dataman.xml:356
 #, no-c-format
 msgid "<varname>srid</varname> The spatial reference identifier of the raster. Should be an entry in the <xref linkend=\"spatial_ref_sys\"/>."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:361
+#: using_raster_dataman.xml:359
 #, no-c-format
 msgid "<varname>scale_x</varname> The scaling between geometric spatial coordinates and pixel. This is only available if all tiles in the raster column have the same <varname>scale_x</varname> and this constraint is applied. Refer to <xref linkend=\"RT_ST_ScaleX\"/> for more details."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:364
+#: using_raster_dataman.xml:362
 #, no-c-format
 msgid "<varname>scale_y</varname> The scaling between geometric spatial coordinates and pixel. This is only available if all tiles in the raster column have the same <varname>scale_y</varname> and the <varname>scale_y</varname> constraint is applied. Refer to <xref linkend=\"RT_ST_ScaleY\"/> for more details."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:367
+#: using_raster_dataman.xml:365
 #, no-c-format
 msgid "<varname>blocksize_x</varname> The width (number of pixels across) of each raster tile . Refer to <xref linkend=\"RT_ST_Width\"/> for more details."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:370
+#: using_raster_dataman.xml:368
 #, no-c-format
 msgid "<varname>blocksize_y</varname> The width (number of pixels down) of each raster tile . Refer to <xref linkend=\"RT_ST_Height\"/> for more details."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:373
+#: using_raster_dataman.xml:371
 #, no-c-format
 msgid "<varname>same_alignment</varname> A boolean that is true if all the raster tiles have the same alignment . Refer to <xref linkend=\"RT_ST_SameAlignment\"/> for more details."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:376
+#: using_raster_dataman.xml:374
 #, no-c-format
-msgid "<varname>regular_blocking</varname> This is a true/false constraint flag set on the table to denote that the tiles do not overlap, are of the same alignment, pixel size, srid etc. It is not really validated but just taken as a given so should be used for informational. In the future we plan to properly constrain this so that this inforamtion is guaranteed to be right when it returns <varname>true</varname>"
+msgid "<varname>regular_blocking</varname> If the raster column has the spatially unique and coverage tile constraints, the value with be TRUE. Otherwise, it will be FALSE."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:379
+#: using_raster_dataman.xml:377
 #, no-c-format
 msgid "<varname>num_bands</varname> The number of bands in each tile of your raster set. This is the same information as what is provided by"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:382
+#: using_raster_dataman.xml:380
 #, no-c-format
 msgid "<varname>pixel_types</varname> An array defining the pixel type for each band. You will have the same number of elements in this array as you have number of bands. The pixel_types are one of the following defined in <xref linkend=\"RT_ST_BandPixelType\"/>."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:385
+#: using_raster_dataman.xml:383
 #, no-c-format
 msgid "<varname>nodata_values</varname> An array of double precision numbers denoting the <varname>nodata_value</varname> for each band. You will have the same number of elements in this array as you have number of bands. These numbers define the pixel value for each band that should be ignored for most operations. This is similar information provided by <xref linkend=\"RT_ST_BandNoDataValue\"/>."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:388
+#: using_raster_dataman.xml:386
+#, no-c-format
+msgid "<varname>out_db</varname> An array of boolean flags indicating if the raster bands data is maintained outside the database. You will have the same number of elements in this array as you have number of bands."
+msgstr ""
+
+#. Tag: para
+#: using_raster_dataman.xml:389
 #, no-c-format
 msgid "<varname>extent</varname> This is the extent of all the raster rows in your raster set. If you plan to load more data that will change the extent of the set, you'll want to run the <xref linkend=\"RT_DropRasterConstraints\"/> function before load and then reapply constraints with <xref linkend=\"RT_AddRasterConstraints\"/> after load."
 msgstr ""
 
+#. Tag: para
+#: using_raster_dataman.xml:392
+#, no-c-format
+msgid "<varname>spatial_index</varname> A boolean that is true if raster column has a spatial index."
+msgstr ""
+
 #. Tag: title
-#: using_raster_dataman.xml:393
+#: using_raster_dataman.xml:397
 #, no-c-format
 msgid "Raster Overviews"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:394
+#: using_raster_dataman.xml:398
 #, no-c-format
-msgid "<varname>raster_overviews</varname> catalogs information about raster table columns used for overviews and additional information about them that is useful to know when utilizing overviews. Overview tables are cataloged in both <varname>raster_columns</varname> and <varname>raster_overviews</varname> because they are rasters in their own right but also serve an additional special purpose of being a lower resolution caricature of a higher resolution table. These are generated along [...]
+msgid "<varname>raster_overviews</varname> catalogs information about raster table columns used for overviews and additional information about them that is useful to know when utilizing overviews. Overview tables are cataloged in both <varname>raster_columns</varname> and <varname>raster_overviews</varname> because they are rasters in their own right but also serve an additional special purpose of being a lower resolution caricature of a higher resolution table. These are generated along [...]
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:395
+#: using_raster_dataman.xml:399
 #, no-c-format
 msgid "Overview tables contain the same constraints as other raster tables as well as additional informational only constraints specific to overviews."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:396
+#: using_raster_dataman.xml:400
 #, no-c-format
 msgid "The information in <varname>raster_overviews</varname> does not duplicate the information in <varname>raster_columns</varname>. If you need the information about an overview table present in <varname>raster_columns</varname> you can join the <varname>raster_overviews</varname> and <varname>raster_columns</varname> together to get the full set of information you need."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:397
+#: using_raster_dataman.xml:401
 #, no-c-format
 msgid "Two main reasons for overviews are:"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:399
+#: using_raster_dataman.xml:403
 #, no-c-format
 msgid "Low resolution representation of the core tables commonly used for fast mapping zoom-out."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:400
+#: using_raster_dataman.xml:404
 #, no-c-format
 msgid "Computations are generally faster to do on them than their higher resolution parents because there are fewer records and each pixel covers more territory. Though the computations are not as accurate as the high-res tables they support, they can be sufficient in many rule-of-thumb computations."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:403
+#: using_raster_dataman.xml:407
 #, no-c-format
 msgid "The <varname>raster_overviews</varname> catalog contains the following columns of information."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:406
+#: using_raster_dataman.xml:410
 #, no-c-format
 msgid "<varname>o_table_catalog</varname> The database the overview table is in. This will always read the current database."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:409
+#: using_raster_dataman.xml:413
 #, no-c-format
 msgid "<varname>o_table_schema</varname> The database schema the overview raster table belongs to."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:412
+#: using_raster_dataman.xml:416
 #, no-c-format
 msgid "<varname>o_table_name</varname> raster overview table name"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:415
+#: using_raster_dataman.xml:419
 #, no-c-format
 msgid "<varname>o_raster_column</varname> the raster column in the overview table."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:419
+#: using_raster_dataman.xml:423
 #, no-c-format
 msgid "<varname>r_table_catalog</varname> The database the raster table that this overview services is in. This will always read the current database."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:422
+#: using_raster_dataman.xml:426
 #, no-c-format
 msgid "<varname>r_table_schema</varname> The database schema the raster table that this overview services belongs to."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:425
+#: using_raster_dataman.xml:429
 #, no-c-format
 msgid "<varname>r_table_name</varname> raster table that this overview services."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:428
+#: using_raster_dataman.xml:432
 #, no-c-format
 msgid "<varname>r_raster_column</varname> the raster column that this overview column services."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:431
+#: using_raster_dataman.xml:435
 #, no-c-format
 msgid "<varname>overview_factor</varname> - this is the pyramid level of the overview table. The higher the number the lower the resolution of the table. raster2pgsql if given a folder of images, will compute overview of each image file and load separately. Level 1 is assumed and always the original file. Level 2 is will have each tile represent 4 of the original. So for example if you have a folder of 5000x5000 pixel image files that you chose to chunk 125x125, for each image file your  [...]
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:443
+#: using_raster_dataman.xml:447
 #, no-c-format
 msgid "Building Custom Applications with PostGIS Raster"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:444
+#: using_raster_dataman.xml:448
 #, no-c-format
 msgid "The fact that PostGIS raster provides you with SQL functions to render rasters in known image formats gives you a lot of optoins for rendering them. For example you can use OpenOffice / LibreOffice for rendering as demonstrated in <ulink url=\"http://www.postgresonline.com/journal/archives/244-Rendering-PostGIS-Raster-graphics-with-LibreOffice-Base-Reports.html\">Rendering PostGIS Raster graphics with LibreOffice Base Reports</ulink>. In addition you can use a wide variety of lang [...]
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:447
+#: using_raster_dataman.xml:451
 #, no-c-format
 msgid "PHP Example Outputting using ST_AsPNG in concert with other raster functions"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:448
+#: using_raster_dataman.xml:452
 #, no-c-format
 msgid "In this section, we'll demonstrate how to use the PHP PostgreSQL driver and the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output band 1,2,3 of a raster to a PHP request stream that can then be embedded in an img src html tag."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:451 using_raster_dataman.xml:463
+#: using_raster_dataman.xml:455 using_raster_dataman.xml:467
 #, no-c-format
 msgid "The sample query demonstrates how to combine a whole bunch of raster functions together to grab all tiles that intersect a particular wgs 84 bounding box and then unions with <xref linkend=\"RT_ST_Union\"/> the intersecting tiles together returning all bands, transforms to user specified projection using <xref linkend=\"RT_ST_Transform\"/>, and then outputs the results as a png using <xref linkend=\"RT_ST_AsPNG\"/>."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:454
+#: using_raster_dataman.xml:458
 #, no-c-format
 msgid "You would call the below using <programlisting>http://mywebserver/test_raster.php?srid=2249</programlisting> to get the raster image in Massachusetts state plane feet."
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:455
+#: using_raster_dataman.xml:459
 #, no-c-format
 msgid ""
       "<![CDATA[<?php\n"
@@ -951,37 +963,37 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:458
+#: using_raster_dataman.xml:462
 #, no-c-format
 msgid "ASP.NET C# Example Outputting using ST_AsPNG in concert with other raster functions"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:459
+#: using_raster_dataman.xml:463
 #, no-c-format
 msgid "In this section, we'll demonstrate how to use Npgsql PostgreSQL .NET driver and the <xref linkend=\"RT_ST_AsGDALRaster\"/> family of functions to output band 1,2,3 of a raster to a PHP request stream that can then be embedded in an img src html tag."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:462
+#: using_raster_dataman.xml:466
 #, no-c-format
 msgid "You will need the npgsql .NET PostgreSQL driver for this exercise which you can get the latest of from <ulink url=\"http://npgsql.projects.postgresql.org/\">http://npgsql.projects.postgresql.org/</ulink>. Just download the latest and drop into your ASP.NET bin folder and you'll be good to go."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:466
+#: using_raster_dataman.xml:470
 #, no-c-format
 msgid "This is same example as <xref linkend=\"RT_PHP_Output\"/> except implemented in C#."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:467
+#: using_raster_dataman.xml:471
 #, no-c-format
 msgid "You would call the below using <programlisting>http://mywebserver/TestRaster.ashx?srid=2249</programlisting> to get the raster image in Massachusetts state plane feet."
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:468
+#: using_raster_dataman.xml:472
 #, no-c-format
 msgid ""
       "-- web.config connection string section --\n"
@@ -992,7 +1004,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:469
+#: using_raster_dataman.xml:473
 #, no-c-format
 msgid ""
       "// Code for TestRaster.ashx\n"
@@ -1059,31 +1071,31 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:472
+#: using_raster_dataman.xml:476
 #, no-c-format
 msgid "Java console app that outputs raster query as Image file"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:473
+#: using_raster_dataman.xml:477
 #, no-c-format
 msgid "This is a simple java console app that takes a query that returns one image and outputs to specified file."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:474
+#: using_raster_dataman.xml:478
 #, no-c-format
 msgid "You can download the latest PostgreSQL JDBC drivers from <ulink url=\"http://jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/download.html</ulink>"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:475
+#: using_raster_dataman.xml:479
 #, no-c-format
 msgid "You can compile the following code using a command something like:"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:476
+#: using_raster_dataman.xml:480
 #, no-c-format
 msgid ""
       "set env CLASSPATH .:..\\postgresql-9.0-801.jdbc4.jar\n"
@@ -1092,19 +1104,19 @@ msgid ""
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:477
+#: using_raster_dataman.xml:481
 #, no-c-format
 msgid "And call it from the command-line with something like"
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:478
+#: using_raster_dataman.xml:482
 #, no-c-format
 msgid "java -jar SaveQueryImage.jar \"SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10, 'quad_segs=2'),150, 150, '8BUI',100));\" \"test.png\""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:479
+#: using_raster_dataman.xml:483
 #, no-c-format
 msgid ""
       "-- Manifest.txt --\n"
@@ -1113,7 +1125,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:480
+#: using_raster_dataman.xml:484
 #, no-c-format
 msgid ""
       "// Code for SaveQueryImage.java\n"
@@ -1176,22 +1188,21 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:484
+#: using_raster_dataman.xml:488
 #, no-c-format
 msgid "Use PLPython to dump out images via SQL"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:485
+#: using_raster_dataman.xml:489
 #, no-c-format
-msgid "This is a plpython stored function that creates a file in the server directory for each record."
+msgid "This is a plpython stored function that creates a file in the server directory for each record. Requires you have plpython installed. Should work fine with both plpythonu and plpython3u."
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:486
+#: using_raster_dataman.xml:491
 #, no-c-format
 msgid ""
-      "//plpython postgresql stored proc.  Requires you have plpython installed\n"
       "<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, param_filepath text)\n"
       "RETURNS text\n"
       "AS $$\n"
@@ -1202,7 +1213,7 @@ msgid ""
 msgstr ""
 
 #. Tag: programlisting
-#: using_raster_dataman.xml:487
+#: using_raster_dataman.xml:492
 #, no-c-format
 msgid ""
       "--write out 5 images to the PostgreSQL server in varying sizes\n"
@@ -1223,25 +1234,25 @@ msgid ""
 msgstr ""
 
 #. Tag: title
-#: using_raster_dataman.xml:490
+#: using_raster_dataman.xml:495
 #, no-c-format
 msgid "Outputting Rasters with PSQL"
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:491
+#: using_raster_dataman.xml:496
 #, no-c-format
 msgid "Sadly PSQL doesn't have easy to use built-in functionality for outputting binaries. This is a bit of a hack and based on one of the suggestions outlined in <ulink url=\"http://people.planetpostgresql.org/andrew/index.php?/archives/196-Clever-trick-challenge.html\">Clever Trick Challenge -- Outputting bytea with psql</ulink> that piggy backs on PostgreSQL somewhat legacy large object support. To use first launch your psql commandline connected to your database."
 msgstr ""
 
 #. Tag: para
-#: using_raster_dataman.xml:494
+#: using_raster_dataman.xml:499
 #, no-c-format
 msgid "Unlike the python approach, this approach creates the file on your local computer."
 msgstr ""
 
 #. Tag: screen
-#: using_raster_dataman.xml:495
+#: using_raster_dataman.xml:500
 #, no-c-format
 msgid ""
       "SELECT oid, lowrite(lo_open(oid, 131072), png) As num_bytes\n"
diff --git a/doc/postgis.xml b/doc/postgis.xml
index ad8120d..16d6851 100644
--- a/doc/postgis.xml
+++ b/doc/postgis.xml
@@ -4,7 +4,7 @@
 
 <!-- This value is automatically generated by the Makefile -->
 <!ENTITY last_release_version "@@LAST_RELEASE_VERSION@@">
-<!ENTITY last_minor_version "2.1">
+<!ENTITY last_minor_version "2.2">
 
 <!-- ONCE Tagged, this need to change to http://download.osgeo.org/postgis/source/postgis-@@LAST_RELEASE_VERSION@@.tar.gz -->
 <!-- In dev should be, this need to change to http://postgis.net/stuff/postgis-@@LAST_RELEASE_VERSION@@.tar.gz -->
@@ -13,7 +13,7 @@
 <!-- Change these values to update the version numbers referenced within the documentation -->
 <!ENTITY last_proj_release_version "4.8.0">
 <!ENTITY last_geos_release_version "3.4.0">
-<!ENTITY min_postgres_version "9.0">
+<!ENTITY min_postgres_version "9.1">
 
 <!ENTITY introduction SYSTEM "introduction.xml">
 <!ENTITY installation SYSTEM "installation.xml">
@@ -27,6 +27,7 @@
 <!ENTITY reporting SYSTEM "reporting.xml">
 <!ENTITY release_notes SYSTEM "release_notes.xml">
 <!ENTITY reference_type SYSTEM "reference_type.xml">
+<!ENTITY reference_guc SYSTEM "reference_guc.xml">
 <!ENTITY reference_management SYSTEM "reference_management.xml">
 <!ENTITY reference_constructor SYSTEM "reference_constructor.xml">
 <!ENTITY reference_accessor SYSTEM "reference_accessor.xml">
@@ -37,6 +38,7 @@
 <!ENTITY reference_sfcgal SYSTEM "reference_sfcgal.xml">
 <!ENTITY reference_processing SYSTEM "reference_processing.xml">
 <!ENTITY reference_lrs SYSTEM "reference_lrs.xml">
+<!ENTITY reference_temporal SYSTEM "reference_temporal.xml">
 <!ENTITY reference_transaction SYSTEM "reference_transaction.xml">
 <!ENTITY reference_misc SYSTEM "reference_misc.xml">
 <!ENTITY reference_exception SYSTEM "reference_exception.xml">
@@ -46,6 +48,7 @@
 <!ENTITY extras_topology SYSTEM "extras_topology.xml">
 <!ENTITY extras_tigergeocoder SYSTEM "extras_tigergeocoder.xml">
 <!ENTITY extras_historytable SYSTEM "extras_historytable.xml">
+<!ENTITY extras_address_standardizer SYSTEM "extras_address_standardizer.xml">
 
 <!ENTITY sfs_compliant 
 "<inlinemediaobject>
@@ -75,6 +78,13 @@
      <imagedata fileref='images/check.png' />
    </imageobject>
  </inlinemediaobject> This method needs SFCGAL backend.">
+ 
+<!ENTITY address_standardizer_required 
+"<inlinemediaobject>
+   <imageobject>
+     <imagedata fileref='images/check.png' />
+   </imageobject>
+ </inlinemediaobject> This method needs address_standardizer extension.">
 
 <!ENTITY curve_support 
 "<inlinemediaobject>
@@ -165,6 +175,8 @@
   &reference;
   &reference_raster;
   &faq_raster;
+  &extras_topology;
+  &extras_address_standardizer;
   &extras;
   &postgis_aggs_mm;
   &reporting;
diff --git a/doc/postgis_comments.sql b/doc/postgis_comments.sql
index bd27065..8ee9552 100644
--- a/doc/postgis_comments.sql
+++ b/doc/postgis_comments.sql
@@ -67,7 +67,9 @@ COMMENT ON FUNCTION ST_GeogFromText(text ) IS 'args: EWKT - Return a specified g
 			
 COMMENT ON FUNCTION ST_GeographyFromText(text ) IS 'args: EWKT - Return a specified geography value from Well-Known Text representation or extended (WKT).';
 			
-COMMENT ON FUNCTION ST_GeogFromWKB(bytea ) IS 'args: geom - Creates a geography instance from a Well-Known Binary geometry representation (WKB) or extended Well Known Binary (EWKB).';
+COMMENT ON FUNCTION ST_GeogFromWKB(bytea ) IS 'args: wkb - Creates a geography instance from a Well-Known Binary geometry representation (WKB) or extended Well Known Binary (EWKB).';
+			
+COMMENT ON FUNCTION ST_GeomFromTWKB(bytea ) IS 'args: twkb - Creates a geometry instance from a TWKB ("Tiny Well-Known Binary") geometry representation.';
 			
 COMMENT ON FUNCTION ST_GeomCollFromText(text , integer ) IS 'args: WKT, srid - Makes a collection Geometry from collection WKT with the given SRID. If SRID is not give, it defaults to 0.';
 			
@@ -103,6 +105,8 @@ COMMENT ON FUNCTION ST_GeomFromWKB(bytea ) IS 'args: geom - Creates a geometry i
 			
 COMMENT ON FUNCTION ST_GeomFromWKB(bytea , integer ) IS 'args: geom, srid - Creates a geometry instance from a Well-Known Binary geometry representation (WKB) and optional SRID.';
 			
+COMMENT ON FUNCTION ST_LineFromEncodedPolyline(text , integer ) IS 'args: polyline, precision=5 - Creates a LineString from an Encoded Polyline.';
+			
 COMMENT ON FUNCTION ST_LineFromMultiPoint(geometry ) IS 'args: aMultiPoint - Creates a LineString from a MultiPoint geometry.';
 			
 COMMENT ON FUNCTION ST_LineFromText(text ) IS 'args: WKT - Makes a Geometry from WKT representation with the given SRID. If SRID is not given, it defaults to 0.';
@@ -183,10 +187,12 @@ COMMENT ON FUNCTION ST_CoordDim(geometry ) IS 'args: geomA - Return the coordina
 			
 COMMENT ON FUNCTION ST_Dimension(geometry ) IS 'args: g - The inherent dimension of this Geometry object, which must be less than or equal to the coordinate dimension.';
 			
-COMMENT ON FUNCTION ST_EndPoint(geometry ) IS 'args: g - Returns the last point of a LINESTRING geometry as a POINT.';
+COMMENT ON FUNCTION ST_EndPoint(geometry ) IS 'args: g - Returns the last point of a LINESTRING or CIRCULARLINESTRING geometry as a POINT.';
 			
 COMMENT ON FUNCTION ST_Envelope(geometry ) IS 'args: g1 - Returns a geometry representing the double precision (float8) bounding box of the supplied geometry.';
 			
+COMMENT ON FUNCTION ST_BoundingDiagonal(geometry , boolean ) IS 'args: geom, fits=false - Returns the diagonal of the supplied geometrys bounding box.';
+			
 COMMENT ON FUNCTION ST_ExteriorRing(geometry ) IS 'args: a_polygon - Returns a line string representing the exterior ring of the POLYGON geometry. Return NULL if the geometry is not a polygon. Will not work with MULTIPOLYGON';
 			
 COMMENT ON FUNCTION ST_GeometryN(geometry , integer ) IS 'args: geomA, n - Return the 1-based Nth geometry if the geometry is a GEOMETRYCOLLECTION, (MULTI)POINT, (MULTI)LINESTRING, MULTICURVE or (MULTI)POLYGON, POLYHEDRALSURFACE Otherwise, return NULL.';
@@ -229,7 +235,7 @@ COMMENT ON FUNCTION ST_NumGeometries(geometry ) IS 'args: geom - If geometry is
 			
 COMMENT ON FUNCTION ST_NumInteriorRings(geometry ) IS 'args: a_polygon - Return the number of interior rings of the a polygon in the geometry. This will work with POLYGON and return NULL for a MULTIPOLYGON type or any other type';
 			
-COMMENT ON FUNCTION ST_NumInteriorRing(geometry ) IS 'args: a_polygon - Return the number of interior rings of the first polygon in the geometry. Synonym to ST_NumInteriorRings.';
+COMMENT ON FUNCTION ST_NumInteriorRing(geometry ) IS 'args: a_polygon - Return the number of interior rings of a polygon in the geometry. Synonym for ST_NumInteriorRings.';
 			
 COMMENT ON FUNCTION ST_NumPatches(geometry ) IS 'args: g1 - Return the number of faces on a Polyhedral Surface. Will return null for non-polyhedral geometries.';
 			
@@ -293,6 +299,8 @@ COMMENT ON FUNCTION ST_ForceSFS(geometry , text ) IS 'args: geomA, version - For
 			
 COMMENT ON FUNCTION ST_ForceRHR(geometry) IS 'args: g - Forces the orientation of the vertices in a polygon to follow the Right-Hand-Rule.';
 			
+COMMENT ON FUNCTION ST_ForceCurve(geometry) IS 'args: g - Upcasts a geometry into its curved type, if applicable.';
+			
 COMMENT ON FUNCTION ST_LineMerge(geometry ) IS 'args: amultilinestring - Returns a (set of) LineString(s) formed by sewing together a MULTILINESTRING.';
 			
 COMMENT ON FUNCTION ST_CollectionExtract(geometry , integer ) IS 'args: collection, type - Given a (multi)geometry, returns a (multi)geometry consisting only of elements of the specified type.';
@@ -321,6 +329,8 @@ COMMENT ON FUNCTION ST_Scale(geometry , float, float, float) IS 'args: geomA, XF
 			
 COMMENT ON FUNCTION ST_Scale(geometry , float, float) IS 'args: geomA, XFactor, YFactor - Scales the geometry to a new size by multiplying the ordinates with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).';
 			
+COMMENT ON FUNCTION ST_Scale(geometry , geometry) IS 'args: geom, factor - Scales the geometry to a new size by multiplying the ordinates with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor, Zfactor).';
+			
 COMMENT ON FUNCTION ST_Segmentize(geometry , float ) IS 'args: geom, max_segment_length - Return a modified geometry/geography having no segment longer than the given distance. Distance computation is performed in 2d only. For geometry, length units are in units of spatial reference. For geography, units are in meters.';
 			
 COMMENT ON FUNCTION ST_Segmentize(geography , float ) IS 'args: geog, max_segment_length - Return a modified geometry/geography having no segment longer than the given distance. Distance computation is performed in 2d only. For geometry, length units are in units of spatial reference. For geography, units are in meters.';
@@ -403,9 +413,13 @@ COMMENT ON FUNCTION ST_AsText(geometry ) IS 'args: g1 - Return the Well-Known Te
 			
 COMMENT ON FUNCTION ST_AsText(geography ) IS 'args: g1 - Return the Well-Known Text (WKT) representation of the geometry/geography without SRID metadata.';
 			
-COMMENT ON FUNCTION ST_AsLatLonText(geometry ) IS 'args: pt - Return the Degrees, Minutes, Seconds representation of the given point.';
+COMMENT ON FUNCTION ST_AsLatLonText(geometry , text ) IS 'args: pt, format='' - Return the Degrees, Minutes, Seconds representation of the given point.';
 			
-COMMENT ON FUNCTION ST_AsLatLonText(geometry , text ) IS 'args: pt, format - Return the Degrees, Minutes, Seconds representation of the given point.';
+COMMENT ON FUNCTION ST_AsTWKB(geometry , integer , integer , integer , boolean , boolean ) IS 'args: g1, decimaldigits_xy=0, decimaldigits_z=0, decimaldigits_m=0, include_sizes=false, include_bounding boxes=false - Returns the geometry as TWKB, aka "Tiny Well-Known Binary"';
+			
+COMMENT ON FUNCTION ST_AsTWKB(geometry[] , bigint[] , integer , integer , integer , boolean , boolean ) IS 'args: geometries, unique_ids, decimaldigits_xy=0, decimaldigits_z=0, decimaldigits_m=0, include_sizes=false, include_bounding_boxes=false - Returns the geometry as TWKB, aka "Tiny Well-Known Binary"';
+			
+COMMENT ON FUNCTION ST_AsEncodedPolyline(geometry, integer ) IS 'args: geom, precision=5 - Returns an Encoded Polyline from a LineString geometry.';
 			
 COMMENT ON FUNCTION ST_3DClosestPoint(geometry , geometry ) IS 'args: g1, g2 - Returns the 3-dimensional point on g1 that is closest to g2. This is the first point of the 3D shortest line.';
 			
@@ -415,7 +429,7 @@ COMMENT ON FUNCTION ST_3DDWithin(geometry , geometry , double precision ) IS 'ar
 			
 COMMENT ON FUNCTION ST_3DDFullyWithin(geometry , geometry , double precision ) IS 'args: g1, g2, distance - Returns true if all of the 3D geometries are within the specified distance of one another.';
 			
-COMMENT ON FUNCTION ST_3DIntersects(geometry, geometry) IS 'args: geomA, geomB - Returns TRUE if the Geometries "spatially intersect" in 3d - only for points and linestrings';
+COMMENT ON FUNCTION ST_3DIntersects(geometry, geometry) IS 'args: geomA, geomB - Returns TRUE if the Geometries "spatially intersect" in 3d - only for points, linestrings, polygons, polyhedral surface (area). With SFCGAL backend enabled also supports TINS';
 			
 COMMENT ON FUNCTION ST_3DLongestLine(geometry , geometry ) IS 'args: g1, g2 - Returns the 3-dimensional longest line between two geometries';
 			
@@ -423,9 +437,9 @@ COMMENT ON FUNCTION ST_3DMaxDistance(geometry , geometry ) IS 'args: g1, g2 - Fo
 			
 COMMENT ON FUNCTION ST_3DShortestLine(geometry , geometry ) IS 'args: g1, g2 - Returns the 3-dimensional shortest line between two geometries';
 			
-COMMENT ON FUNCTION ST_Area(geometry ) IS 'args: g1 - Returns the area of the surface if it is a polygon or multi-polygon. For "geometry" type area is in SRID units. For "geography" area is in square meters.';
+COMMENT ON FUNCTION ST_Area(geometry ) IS 'args: g1 - Returns the area of the surface if it is a Polygon or MultiPolygon. For geometry, a 2D Cartesian area is determined with units specified by the SRID. For geography, area is determined on a curved surface with units in square meters.';
 			
-COMMENT ON FUNCTION ST_Area(geography , boolean ) IS 'args: geog, use_spheroid=true - Returns the area of the surface if it is a polygon or multi-polygon. For "geometry" type area is in SRID units. For "geography" area is in square meters.';
+COMMENT ON FUNCTION ST_Area(geography , boolean ) IS 'args: geog, use_spheroid=true - Returns the area of the surface if it is a Polygon or MultiPolygon. For geometry, a 2D Cartesian area is determined with units specified by the SRID. For geography, area is determined on a curved surface with units in square meters.';
 			
 COMMENT ON FUNCTION ST_Azimuth(geometry , geometry ) IS 'args: pointA, pointB - Returns the north-based azimuth as the angle in radians measured clockwise from the vertical on pointA to pointB.';
 			
@@ -453,11 +467,11 @@ COMMENT ON FUNCTION ST_LineCrossingDirection(geometry , geometry ) IS 'args: lin
 			
 COMMENT ON FUNCTION ST_Disjoint(geometry, geometry) IS 'args: A, B - Returns TRUE if the Geometries do not "spatially intersect" - if they do not share any space together.';
 			
-COMMENT ON FUNCTION ST_Distance(geometry , geometry ) IS 'args: g1, g2 - For geometry type Returns the 2-dimensional cartesian minimum distance (based on spatial ref) between two geometries in projected units. For geography type defaults to return spheroidal minimum distance between two geographies in meters.';
+COMMENT ON FUNCTION ST_Distance(geometry , geometry ) IS 'args: g1, g2 - For geometry type Returns the 2D Cartesian distance between two geometries in projected units (based on spatial ref). For geography type defaults to return minimum geodesic distance between two geographies in meters.';
 			
-COMMENT ON FUNCTION ST_Distance(geography , geography ) IS 'args: gg1, gg2 - For geometry type Returns the 2-dimensional cartesian minimum distance (based on spatial ref) between two geometries in projected units. For geography type defaults to return spheroidal minimum distance between two geographies in meters.';
+COMMENT ON FUNCTION ST_Distance(geography , geography ) IS 'args: gg1, gg2 - For geometry type Returns the 2D Cartesian distance between two geometries in projected units (based on spatial ref). For geography type defaults to return minimum geodesic distance between two geographies in meters.';
 			
-COMMENT ON FUNCTION ST_Distance(geography , geography , boolean ) IS 'args: gg1, gg2, use_spheroid - For geometry type Returns the 2-dimensional cartesian minimum distance (based on spatial ref) between two geometries in projected units. For geography type defaults to return spheroidal minimum distance between two geographies in meters.';
+COMMENT ON FUNCTION ST_Distance(geography , geography , boolean ) IS 'args: gg1, gg2, use_spheroid - For geometry type Returns the 2D Cartesian distance between two geometries in projected units (based on spatial ref). For geography type defaults to return minimum geodesic distance between two geographies in meters.';
 			
 COMMENT ON FUNCTION ST_HausdorffDistance(geometry , geometry ) IS 'args: g1, g2 - Returns the Hausdorff distance between two geometries. Basically a measure of how similar or dissimilar 2 geometries are. Units are in the units of the spatial reference system of the geometries.';
 			
@@ -465,9 +479,9 @@ COMMENT ON FUNCTION ST_HausdorffDistance(geometry , geometry , float) IS 'args:
 			
 COMMENT ON FUNCTION ST_MaxDistance(geometry , geometry ) IS 'args: g1, g2 - Returns the 2-dimensional largest distance between two geometries in projected units.';
 			
-COMMENT ON FUNCTION ST_Distance_Sphere(geometry , geometry ) IS 'args: geomlonlatA, geomlonlatB - Returns minimum distance in meters between two lon/lat geometries. Uses a spherical earth and radius of 6370986 meters. Faster than ST_Distance_Spheroid , but less accurate. PostGIS versions prior to 1.5 only implemented for points.';
+COMMENT ON FUNCTION ST_DistanceSphere(geometry , geometry ) IS 'args: geomlonlatA, geomlonlatB - Returns minimum distance in meters between two lon/lat geometries. Uses a spherical earth and radius derived from the spheroid defined by the SRID. Faster than ST_DistanceSpheroid , but less accurate. PostGIS versions prior to 1.5 only implemented for points.';
 			
-COMMENT ON FUNCTION ST_Distance_Spheroid(geometry , geometry , spheroid ) IS 'args: geomlonlatA, geomlonlatB, measurement_spheroid - Returns the minimum distance between two lon/lat geometries given a particular spheroid. PostGIS versions prior to 1.5 only support points.';
+COMMENT ON FUNCTION ST_DistanceSpheroid(geometry , geometry , spheroid ) IS 'args: geomlonlatA, geomlonlatB, measurement_spheroid - Returns the minimum distance between two lon/lat geometries given a particular spheroid. PostGIS versions prior to 1.5 only support points.';
 			
 COMMENT ON FUNCTION ST_DFullyWithin(geometry , geometry , double precision ) IS 'args: g1, g2, distance - Returns true if all of the geometries are within the specified distance of one another';
 			
@@ -485,29 +499,27 @@ COMMENT ON FUNCTION ST_Intersects(geometry, geometry) IS 'args: geomA, geomB - R
 			
 COMMENT ON FUNCTION ST_Intersects(geography, geography) IS 'args: geogA, geogB - Returns TRUE if the Geometries/Geography "spatially intersect in 2D" - (share any portion of space) and FALSE if they dont (they are Disjoint). For geography -- tolerance is 0.00001 meters (so any points that close are considered to intersect)';
 			
-COMMENT ON FUNCTION ST_Length(geometry ) IS 'args: a_2dlinestring - Returns the 2d length of the geometry if it is a linestring or multilinestring. geometry are in units of spatial reference and geography are in meters (default spheroid)';
+COMMENT ON FUNCTION ST_Length(geometry ) IS 'args: a_2dlinestring - Returns the 2D length of the geometry if it is a LineString or MultiLineString. geometry are in units of spatial reference and geography are in meters (default spheroid)';
 			
-COMMENT ON FUNCTION ST_Length(geography , boolean ) IS 'args: geog, use_spheroid=true - Returns the 2d length of the geometry if it is a linestring or multilinestring. geometry are in units of spatial reference and geography are in meters (default spheroid)';
+COMMENT ON FUNCTION ST_Length(geography , boolean ) IS 'args: geog, use_spheroid=true - Returns the 2D length of the geometry if it is a LineString or MultiLineString. geometry are in units of spatial reference and geography are in meters (default spheroid)';
 			
 COMMENT ON FUNCTION ST_Length2D(geometry ) IS 'args: a_2dlinestring - Returns the 2-dimensional length of the geometry if it is a linestring or multi-linestring. This is an alias for ST_Length';
 			
 COMMENT ON FUNCTION ST_3DLength(geometry ) IS 'args: a_3dlinestring - Returns the 3-dimensional or 2-dimensional length of the geometry if it is a linestring or multi-linestring.';
 			
-COMMENT ON FUNCTION ST_Length_Spheroid(geometry , spheroid ) IS 'args: a_linestring, a_spheroid - Calculates the 2D or 3D length of a linestring/multilinestring on an ellipsoid. This is useful if the coordinates of the geometry are in longitude/latitude and a length is desired without reprojection.';
+COMMENT ON FUNCTION ST_LengthSpheroid(geometry , spheroid ) IS 'args: a_linestring, a_spheroid - Calculates the 2D or 3D length of a linestring/multilinestring on an ellipsoid. This is useful if the coordinates of the geometry are in longitude/latitude and a length is desired without reprojection.';
 			
 COMMENT ON FUNCTION ST_Length2D_Spheroid(geometry , spheroid ) IS 'args: a_linestring, a_spheroid - Calculates the 2D length of a linestring/multilinestring on an ellipsoid. This is useful if the coordinates of the geometry are in longitude/latitude and a length is desired without reprojection.';
 			
-COMMENT ON FUNCTION ST_3DLength_Spheroid(geometry , spheroid ) IS 'args: a_linestring, a_spheroid - Calculates the length of a geometry on an ellipsoid, taking the elevation into account. This is just an alias for ST_Length_Spheroid.';
-			
 COMMENT ON FUNCTION ST_LongestLine(geometry , geometry ) IS 'args: g1, g2 - Returns the 2-dimensional longest line points of two geometries. The function will only return the first longest line if more than one, that the function finds. The line returned will always start in g1 and end in g2. The length of the line this function returns will always be the same as st_maxdistance returns for g1 and g2.';
 			
 COMMENT ON FUNCTION ST_OrderingEquals(geometry , geometry ) IS 'args: A, B - Returns true if the given geometries represent the same geometry and points are in the same directional order.';
 			
 COMMENT ON FUNCTION ST_Overlaps(geometry , geometry ) IS 'args: A, B - Returns TRUE if the Geometries share space, are of the same dimension, but are not completely contained by each other.';
 			
-COMMENT ON FUNCTION ST_Perimeter(geometry ) IS 'args: g1 - Return the length measurement of the boundary of an ST_Surface or ST_MultiSurface geometry or geography. (Polygon, Multipolygon). geometry measurement is in units of spatial reference and geography is in meters.';
+COMMENT ON FUNCTION ST_Perimeter(geometry ) IS 'args: g1 - Return the length measurement of the boundary of an ST_Surface or ST_MultiSurface geometry or geography. (Polygon, MultiPolygon). geometry measurement is in units of spatial reference and geography is in meters.';
 			
-COMMENT ON FUNCTION ST_Perimeter(geography , boolean ) IS 'args: geog, use_spheroid=true - Return the length measurement of the boundary of an ST_Surface or ST_MultiSurface geometry or geography. (Polygon, Multipolygon). geometry measurement is in units of spatial reference and geography is in meters.';
+COMMENT ON FUNCTION ST_Perimeter(geography , boolean ) IS 'args: geog, use_spheroid=true - Return the length measurement of the boundary of an ST_Surface or ST_MultiSurface geometry or geography. (Polygon, MultiPolygon). geometry measurement is in units of spatial reference and geography is in meters.';
 			
 COMMENT ON FUNCTION ST_Perimeter2D(geometry ) IS 'args: geomA - Returns the 2-dimensional perimeter of the geometry, if it is a polygon or multi-polygon. This is currently an alias for ST_Perimeter.';
 			
@@ -521,7 +533,7 @@ COMMENT ON FUNCTION ST_Relate(geometry , geometry , text ) IS 'args: geomA, geom
 			
 COMMENT ON FUNCTION ST_Relate(geometry , geometry ) IS 'args: geomA, geomB - Returns true if this Geometry is spatially related to anotherGeometry, by testing for intersections between the Interior, Boundary and Exterior of the two geometries as specified by the values in the intersectionMatrixPattern. If no intersectionMatrixPattern is passed in, then returns the maximum intersectionMatrixPattern that relates the 2 geometries.';
 			
-COMMENT ON FUNCTION ST_Relate(geometry , geometry , int ) IS 'args: geomA, geomB, BoundaryNodeRule - Returns true if this Geometry is spatially related to anotherGeometry, by testing for intersections between the Interior, Boundary and Exterior of the two geometries as specified by the values in the intersectionMatrixPattern. If no intersectionMatrixPattern is passed in, then returns the maximum intersectionMatrixPattern that relates the 2 geometries.';
+COMMENT ON FUNCTION ST_Relate(geometry , geometry , integer ) IS 'args: geomA, geomB, BoundaryNodeRule - Returns true if this Geometry is spatially related to anotherGeometry, by testing for intersections between the Interior, Boundary and Exterior of the two geometries as specified by the values in the intersectionMatrixPattern. If no intersectionMatrixPattern is passed in, then returns the maximum intersectionMatrixPattern that relates the 2 geometries.';
 			
 COMMENT ON FUNCTION ST_RelateMatch(text , text ) IS 'args: intersectionMatrix, intersectionMatrixPattern - Returns true if intersectionMattrixPattern1 implies intersectionMatrixPattern2';
 			
@@ -531,16 +543,18 @@ COMMENT ON FUNCTION ST_Touches(geometry , geometry ) IS 'args: g1, g2 - Returns
 			
 COMMENT ON FUNCTION ST_Within(geometry , geometry ) IS 'args: A, B - Returns true if the geometry A is completely inside geometry B';
 			
-COMMENT ON FUNCTION ST_Buffer(geometry , float ) IS 'args: g1, radius_of_buffer - (T) For geometry: Returns a geometry that represents all points whose distance from this Geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this Geometry. For geography: Uses a planar transform wrapper. Introduced in 1.5 support for different end cap and mitre settings to control shape. buffer_style options: quad_segs=#,endcap=round|flat|square,join=round|mitre|b [...]
+COMMENT ON FUNCTION ST_Buffer(geometry , float ) IS 'args: g1, radius_of_buffer - Returns a geometry covering all points within a given distancefrom the input geometry.';
 			
-COMMENT ON FUNCTION ST_Buffer(geometry , float , integer ) IS 'args: g1, radius_of_buffer, num_seg_quarter_circle - (T) For geometry: Returns a geometry that represents all points whose distance from this Geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this Geometry. For geography: Uses a planar transform wrapper. Introduced in 1.5 support for different end cap and mitre settings to control shape. buffer_style options: quad_segs=#,endcap=ro [...]
+COMMENT ON FUNCTION ST_Buffer(geometry , float , integer ) IS 'args: g1, radius_of_buffer, num_seg_quarter_circle - Returns a geometry covering all points within a given distancefrom the input geometry.';
 			
-COMMENT ON FUNCTION ST_Buffer(geometry , float , text ) IS 'args: g1, radius_of_buffer, buffer_style_parameters - (T) For geometry: Returns a geometry that represents all points whose distance from this Geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this Geometry. For geography: Uses a planar transform wrapper. Introduced in 1.5 support for different end cap and mitre settings to control shape. buffer_style options: quad_segs=#,endcap=roun [...]
+COMMENT ON FUNCTION ST_Buffer(geometry , float , text ) IS 'args: g1, radius_of_buffer, buffer_style_parameters - Returns a geometry covering all points within a given distancefrom the input geometry.';
 			
-COMMENT ON FUNCTION ST_Buffer(geography , float ) IS 'args: g1, radius_of_buffer_in_meters - (T) For geometry: Returns a geometry that represents all points whose distance from this Geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this Geometry. For geography: Uses a planar transform wrapper. Introduced in 1.5 support for different end cap and mitre settings to control shape. buffer_style options: quad_segs=#,endcap=round|flat|square,join=ro [...]
+COMMENT ON FUNCTION ST_Buffer(geography , float ) IS 'args: g1, radius_of_buffer_in_meters - Returns a geometry covering all points within a given distancefrom the input geometry.';
 			
 COMMENT ON FUNCTION ST_BuildArea(geometry ) IS 'args: A - Creates an areal geometry formed by the constituent linework of given geometry';
 			
+COMMENT ON FUNCTION ST_ClipByBox2D(geometry, box2d) IS 'args: geom, box - Returns the portion of a geometry falling within a rectangle.';
+			
 COMMENT ON AGGREGATE ST_Collect(geometry) IS 'args: g1field - Return a specified ST_Geometry value from a collection of other geometries.';
 			
 COMMENT ON FUNCTION ST_Collect(geometry, geometry) IS 'args: g1, g2 - Return a specified ST_Geometry value from a collection of other geometries.';
@@ -567,9 +581,11 @@ COMMENT ON FUNCTION ST_DumpRings(geometry ) IS 'args: a_polygon - Returns a set
 			
 COMMENT ON FUNCTION ST_FlipCoordinates(geometry) IS 'args: geom - Returns a version of the given geometry with X and Y axis flipped. Useful for people who have built latitude/longitude features and need to fix them.';
 			
-COMMENT ON FUNCTION ST_Intersection(geometry, geometry) IS 'args: geomA, geomB - (T) Returns a geometry that represents the shared portion of geomA and geomB. The geography implementation does a transform to geometry to do the intersection and then transform back to WGS84.';
+COMMENT ON FUNCTION ST_SwapOrdinates(geometry, cstring) IS 'args: geom, ords - Returns a version of the given geometry with given ordinate values swapped.';
+			
+COMMENT ON FUNCTION ST_Intersection(geometry, geometry) IS 'args: geomA, geomB - Returns a geometry that represents the shared portion of geomA and geomB.';
 			
-COMMENT ON FUNCTION ST_Intersection(geography, geography) IS 'args: geogA, geogB - (T) Returns a geometry that represents the shared portion of geomA and geomB. The geography implementation does a transform to geometry to do the intersection and then transform back to WGS84.';
+COMMENT ON FUNCTION ST_Intersection(geography, geography) IS 'args: geogA, geogB - Returns a geometry that represents the shared portion of geomA and geomB.';
 			
 COMMENT ON FUNCTION ST_LineToCurve(geometry ) IS 'args: geomANoncircular - Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON';
 			
@@ -587,43 +603,61 @@ COMMENT ON FUNCTION ST_Node(geometry ) IS 'args: geom - Node a set of linestring
 			
 COMMENT ON FUNCTION ST_OffsetCurve(geometry , float , text ) IS 'args: line, signed_distance, style_parameters='' - Return an offset line at a given distance and side from an input line. Useful for computing parallel lines about a center line';
 			
-COMMENT ON FUNCTION ST_RemoveRepeatedPoints(geometry) IS 'args: geom - Returns a version of the given geometry with duplicated points removed.';
+COMMENT ON FUNCTION ST_RemoveRepeatedPoints(geometry, float8) IS 'args: geom, tolerance - Returns a version of the given geometry with duplicated points removed.';
 			
 COMMENT ON FUNCTION ST_SharedPaths(geometry, geometry) IS 'args: lineal1, lineal2 - Returns a collection containing paths shared by the two input linestrings/multilinestrings.';
 			
-COMMENT ON FUNCTION ST_Shift_Longitude(geometry ) IS 'args: geomA - Reads every point/vertex in every component of every feature in a geometry, and if the longitude coordinate is <0, adds 360 to it. The result would be a 0-360 version of the data to be plotted in a 180 centric map';
+COMMENT ON FUNCTION ST_ShiftLongitude(geometry ) IS 'args: geomA - Reads every point/vertex in every component of every feature in a geometry, and if the longitude coordinate is <0, adds 360 to it. The result would be a 0-360 version of the data to be plotted in a 180 centric map';
 			
 COMMENT ON FUNCTION ST_Simplify(geometry, float) IS 'args: geomA, tolerance - Returns a "simplified" version of the given geometry using the Douglas-Peucker algorithm.';
 			
 COMMENT ON FUNCTION ST_SimplifyPreserveTopology(geometry, float) IS 'args: geomA, tolerance - Returns a "simplified" version of the given geometry using the Douglas-Peucker algorithm. Will avoid creating derived geometries (polygons in particular) that are invalid.';
 			
+COMMENT ON FUNCTION ST_SimplifyVW(geometry, float) IS 'args: geomA, tolerance - Returns a "simplified" version of the given geometry using the Visvalingam-Whyatt algorithm';
+			
+COMMENT ON FUNCTION ST_SetEffectiveArea(geometry, float, integer) IS 'args: geomA, threashold = 0, set_area = 1 - Sets for each vertex point its effective area, and can by filtring on this area return a simplified geometry';
+			
 COMMENT ON FUNCTION ST_Split(geometry, geometry) IS 'args: input, blade - Returns a collection of geometries resulting by splitting a geometry.';
 			
 COMMENT ON FUNCTION ST_SymDifference(geometry , geometry ) IS 'args: geomA, geomB - Returns a geometry that represents the portions of A and B that do not intersect. It is called a symmetric difference because ST_SymDifference(A,B) = ST_SymDifference(B,A).';
 			
+COMMENT ON FUNCTION ST_Subdivide(geometry, integer) IS 'args: geom, max_vertices=256 - Returns a set of geometry where no geometry in the set has more than the specified number of vertices.';
+			
 COMMENT ON AGGREGATE ST_Union(geometry) IS 'args: g1field - Returns a geometry that represents the point set union of the Geometries.';
 			
 COMMENT ON FUNCTION ST_Union(geometry, geometry) IS 'args: g1, g2 - Returns a geometry that represents the point set union of the Geometries.';
 			
 COMMENT ON FUNCTION ST_Union(geometry[]) IS 'args: g1_array - Returns a geometry that represents the point set union of the Geometries.';
 			
+COMMENT ON FUNCTION ST_ClusterWithin(geometry , float8 ) IS 'args: g, distance - Aggregate. Returns an array of GeometryCollections, where each GeometryCollection represents a set of geometries separated by no more than the specified distance.';
+			
+COMMENT ON FUNCTION ST_ClusterIntersecting(geometry ) IS 'args: g - Aggregate. Returns an array with the connected components of a set of geometries';
+			
 COMMENT ON FUNCTION ST_UnaryUnion(geometry ) IS 'args: geom - Like ST_Union, but working at the geometry component level.';
 			
-COMMENT ON FUNCTION ST_LineInterpolatePoint(geometry , float ) IS 'args: a_linestring, a_fraction - Returns a point interpolated along a line. Second argument is a float8 between 0 and 1 representing fraction of total length of linestring the point has to be located.';
+COMMENT ON FUNCTION ST_LineInterpolatePoint(geometry , float8 ) IS 'args: a_linestring, a_fraction - Returns a point interpolated along a line. Second argument is a float8 between 0 and 1 representing fraction of total length of linestring the point has to be located.';
 			
 COMMENT ON FUNCTION ST_LineLocatePoint(geometry , geometry ) IS 'args: a_linestring, a_point - Returns a float between 0 and 1 representing the location of the closest point on LineString to the given Point, as a fraction of total 2d line length.';
 			
-COMMENT ON FUNCTION ST_LineSubstring(geometry , float , float ) IS 'args: a_linestring, startfraction, endfraction - Return a linestring being a substring of the input one starting and ending at the given fractions of total 2d length. Second and third arguments are float8 values between 0 and 1.';
+COMMENT ON FUNCTION ST_LineSubstring(geometry , float8 , float8 ) IS 'args: a_linestring, startfraction, endfraction - Return a linestring being a substring of the input one starting and ending at the given fractions of total 2d length. Second and third arguments are float8 values between 0 and 1.';
 			
-COMMENT ON FUNCTION ST_LocateAlong(geometry , float , float ) IS 'args: ageom_with_measure, a_measure, offset - Return a derived geometry collection value with elements that match the specified measure. Polygonal elements are not supported.';
+COMMENT ON FUNCTION ST_LocateAlong(geometry , float8 , float8 ) IS 'args: ageom_with_measure, a_measure, offset - Return a derived geometry collection value with elements that match the specified measure. Polygonal elements are not supported.';
 			
-COMMENT ON FUNCTION ST_LocateBetween(geometry , float , float , float ) IS 'args: geomA, measure_start, measure_end, offset - Return a derived geometry collection value with elements that match the specified range of measures inclusively. Polygonal elements are not supported.';
+COMMENT ON FUNCTION ST_LocateBetween(geometry , float8 , float8 , float8 ) IS 'args: geomA, measure_start, measure_end, offset - Return a derived geometry collection value with elements that match the specified range of measures inclusively. Polygonal elements are not supported.';
 			
-COMMENT ON FUNCTION ST_LocateBetweenElevations(geometry , float , float ) IS 'args: geom_mline, elevation_start, elevation_end - Return a derived geometry (collection) value with elements that intersect the specified range of elevations inclusively. Only 3D, 4D LINESTRINGS and MULTILINESTRINGS are supported.';
+COMMENT ON FUNCTION ST_LocateBetweenElevations(geometry , float8 , float8 ) IS 'args: geom_mline, elevation_start, elevation_end - Return a derived geometry (collection) value with elements that intersect the specified range of elevations inclusively. Only 3D, 4D LINESTRINGS and MULTILINESTRINGS are supported.';
 			
 COMMENT ON FUNCTION ST_InterpolatePoint(geometry , geometry ) IS 'args: line, point - Return the value of the measure dimension of a geometry at the point closed to the provided point.';
 			
-COMMENT ON FUNCTION ST_AddMeasure(geometry , float , float ) IS 'args: geom_mline, measure_start, measure_end - Return a derived geometry with measure elements linearly interpolated between the start and end points. If the geometry has no measure dimension, one is added. If the geometry has a measure dimension, it is over-written with new values. Only LINESTRINGS and MULTILINESTRINGS are supported.';
+COMMENT ON FUNCTION ST_AddMeasure(geometry , float8 , float8 ) IS 'args: geom_mline, measure_start, measure_end - Return a derived geometry with measure elements linearly interpolated between the start and end points.';
+			
+COMMENT ON FUNCTION ST_IsValidTrajectory(geometry ) IS 'args: line - Returns true if the geometry is a valid trajectory.';
+			
+COMMENT ON FUNCTION ST_ClosestPointOfApproach(geometry , geometry ) IS 'args: track1, track2 - Returns the measure at which points interpolated along two lines are closest.';
+			
+COMMENT ON FUNCTION ST_DistanceCPA(geometry , geometry ) IS 'args: track1, track2 - Returns the distance between closest points of approach in two trajectories.';
+			
+COMMENT ON FUNCTION ST_CPAWithin(geometry , geometry , float8 ) IS 'args: track1, track2, maxdist - Returns true if the trajectories closest points of approachare within the specified distance.';
 			
 COMMENT ON FUNCTION AddAuth(text ) IS 'args: auth_token - Add an authorization token to be used in current transaction.';
 			
@@ -665,9 +699,9 @@ COMMENT ON AGGREGATE ST_3DExtent(geometry) IS 'args: geomfield - an aggregate fu
 			
 COMMENT ON FUNCTION Find_SRID(varchar , varchar , varchar ) IS 'args: a_schema_name, a_table_name, a_geomfield_name - The syntax is find_srid(a_db_schema, a_table, a_column) and the function returns the integer SRID of the specified column by searching through the GEOMETRY_COLUMNS table.';
 			
-COMMENT ON FUNCTION ST_Mem_Size(geometry ) IS 'args: geomA - Returns the amount of space (in bytes) the geometry takes.';
+COMMENT ON FUNCTION ST_MemSize(geometry ) IS 'args: geomA - Returns the amount of space (in bytes) the geometry takes.';
 			
-COMMENT ON FUNCTION ST_Point_Inside_Circle(geometry , float , float , float ) IS 'args: a_point, center_x, center_y, radius - Is the point geometry insert circle defined by center_x, center_y, radius';
+COMMENT ON FUNCTION ST_PointInsideCircle(geometry , float , float , float ) IS 'args: a_point, center_x, center_y, radius - Is the point geometry insert circle defined by center_x, center_y, radius';
 			
 COMMENT ON FUNCTION PostGIS_AddBBox(geometry ) IS 'args: geomA - Add bounding box to the geometry.';
 			
diff --git a/doc/raster_comments.sql b/doc/raster_comments.sql
index 9dabd7e..0c734c1 100644
--- a/doc/raster_comments.sql
+++ b/doc/raster_comments.sql
@@ -21,6 +21,8 @@ COMMENT ON FUNCTION DropOverviewConstraints(name , name , name ) IS 'args: ovsch
 			
 COMMENT ON FUNCTION DropOverviewConstraints(name , name ) IS 'args: ovtable, ovcolumn - Untag a raster column from being an overview of another.';
 			
+COMMENT ON FUNCTION PostGIS_GDAL_Version() IS 'Reports the version of the GDAL library in use by PostGIS.';
+			
 COMMENT ON FUNCTION PostGIS_Raster_Lib_Build_Date() IS 'Reports full raster library build date.';
 			
 COMMENT ON FUNCTION PostGIS_Raster_Lib_Version() IS 'Reports full raster version and build configuration infos.';
@@ -31,6 +33,8 @@ COMMENT ON FUNCTION UpdateRasterSRID(name , name , name , integer ) IS 'args: sc
 			
 COMMENT ON FUNCTION UpdateRasterSRID(name , name , integer ) IS 'args: table_name, column_name, new_srid - Change the SRID of all rasters in the user-specified column and table.';
 			
+COMMENT ON FUNCTION ST_CreateOverview(regclass , name , int , text ) IS 'args: tab, col, factor, algo=''NearestNeighbor'' - Create an reduced resolution version of a given raster coverage.';
+			
 COMMENT ON FUNCTION ST_AddBand(raster , addbandarg[] ) IS 'args: rast, addbandargset - Returns a raster with the new band(s) of given type added with given initial value in the given index location. If no index is specified, the band is added to the end.';
 			
 COMMENT ON FUNCTION ST_AddBand(raster , integer , text , double precision , double precision ) IS 'args: rast, index, pixeltype, initialvalue=0, nodataval=NULL - Returns a raster with the new band(s) of given type added with given initial value in the given index location. If no index is specified, the band is added to the end.';
@@ -67,10 +71,10 @@ COMMENT ON FUNCTION ST_AsRaster(geometry , integer , integer , text[] , double p
 			
 COMMENT ON FUNCTION ST_Band(raster , integer[] ) IS 'args: rast, nbands = ARRAY[1] - Returns one or more bands of an existing raster as a new raster. Useful for building new rasters from existing rasters.';
 			
-COMMENT ON FUNCTION ST_Band(raster , text , character ) IS 'args: rast, nbands, delimiter=, - Returns one or more bands of an existing raster as a new raster. Useful for building new rasters from existing rasters.';
-			
 COMMENT ON FUNCTION ST_Band(raster , integer ) IS 'args: rast, nband - Returns one or more bands of an existing raster as a new raster. Useful for building new rasters from existing rasters.';
 			
+COMMENT ON FUNCTION ST_Band(raster , text , character ) IS 'args: rast, nbands, delimiter=, - Returns one or more bands of an existing raster as a new raster. Useful for building new rasters from existing rasters.';
+			
 COMMENT ON FUNCTION ST_MakeEmptyRaster(raster ) IS 'args: rast - Returns an empty raster (having no bands) of given dimensions (width & height), upperleft X and Y, pixel size and rotation (scalex, scaley, skewx & skewy) and reference system (srid). If a raster is passed in, returns a new raster with the same size, alignment and SRID. If srid is left out, the spatial ref is set to unknown (0).';
 			
 COMMENT ON FUNCTION ST_MakeEmptyRaster(integer , integer , float8 , float8 , float8 , float8 , float8 , float8 , integer ) IS 'args: width, height, upperleftx, upperlefty, scalex, scaley, skewx, skewy, srid=unknown - Returns an empty raster (having no bands) of given dimensions (width & height), upperleft X and Y, pixel size and rotation (scalex, scaley, skewx & skewy) and reference system (srid). If a raster is passed in, returns a new raster with the same size, alignment and SRID. If s [...]
@@ -83,6 +87,8 @@ COMMENT ON FUNCTION ST_Tile(raster , integer , integer , integer , boolean , dou
 			
 COMMENT ON FUNCTION ST_Tile(raster , integer , integer , boolean , double precision ) IS 'args: rast, width, height, padwithnodata=FALSE, nodataval=NULL - Returns a set of rasters resulting from the split of the input raster based upon the desired dimensions of the output rasters.';
 			
+COMMENT ON FUNCTION ST_Retile(regclass , name , geometry , float8 , float8 , int , int , text ) IS 'args: tab, col, ext, sfx, sfy, tw, th, algo=''NearestNeighbor'' - Return a set of configured tiles from an arbitrarily tiled raster coverage.';
+			
 COMMENT ON FUNCTION ST_FromGDALRaster(bytea , integer ) IS 'args: gdaldata, srid=NULL - Returns a raster from a supported GDAL raster file.';
 			
 COMMENT ON FUNCTION ST_GeoReference(raster , text ) IS 'args: rast, format=GDAL - Returns the georeference meta data in GDAL or ESRI format as commonly seen in a world file. Default is GDAL.';
@@ -91,6 +97,8 @@ COMMENT ON FUNCTION ST_Height(raster ) IS 'args: rast - Returns the height of th
 			
 COMMENT ON FUNCTION ST_IsEmpty(raster ) IS 'args: rast - Returns true if the raster is empty (width = 0 and height = 0). Otherwise, returns false.';
 			
+COMMENT ON FUNCTION ST_MemSize(raster ) IS 'args: rast - Returns the amount of space (in bytes) the raster takes.';
+			
 COMMENT ON FUNCTION ST_MetaData(raster ) IS 'args: rast - Returns basic meta data about a raster object such as pixel size, rotation (skew), upper, lower left, etc.';
 			
 COMMENT ON FUNCTION ST_NumBands(raster ) IS 'args: rast - Returns the number of bands in the raster object.';
@@ -213,7 +221,7 @@ COMMENT ON FUNCTION ST_SetValues(raster , integer , integer , integer , integer
 			
 COMMENT ON FUNCTION ST_SetValues(raster , integer , geomval[] , boolean ) IS 'args: rast, nband, geomvalset, keepnodata=FALSE - Returns modified raster resulting from setting the values of a given band.';
 			
-COMMENT ON FUNCTION ST_DumpValues(raster , integer[] , boolean ) IS 'args: rast, nband, exclude_nodata_value=true - Get the values of the specified band as a 2-dimension array.';
+COMMENT ON FUNCTION ST_DumpValues(raster , integer[] , boolean ) IS 'args: rast, nband=NULL, exclude_nodata_value=true - Get the values of the specified band as a 2-dimension array.';
 			
 COMMENT ON FUNCTION ST_DumpValues(raster , integer , boolean ) IS 'args: rast, nband, exclude_nodata_value=true - Get the values of the specified band as a 2-dimension array.';
 			
@@ -291,6 +299,12 @@ COMMENT ON FUNCTION ST_Count(text , text , integer , boolean ) IS 'args: rastert
 			
 COMMENT ON FUNCTION ST_Count(text , text , boolean ) IS 'args: rastertable, rastercolumn, exclude_nodata_value - Returns the number of pixels in a given band of a raster or raster coverage. If no band is specified defaults to band 1. If exclude_nodata_value is set to true, will only count pixels that are not equal to the nodata value.';
 			
+COMMENT ON FUNCTION ST_CountAgg(raster , integer , boolean , double precision ) IS 'args: rast, nband, exclude_nodata_value, sample_percent - Aggregate. Returns the number of pixels in a given band of a set of rasters. If no band is specified defaults to band 1. If exclude_nodata_value is set to true, will only count pixels that are not equal to the NODATA value.';
+			
+COMMENT ON FUNCTION ST_CountAgg(raster , integer , boolean ) IS 'args: rast, nband, exclude_nodata_value - Aggregate. Returns the number of pixels in a given band of a set of rasters. If no band is specified defaults to band 1. If exclude_nodata_value is set to true, will only count pixels that are not equal to the NODATA value.';
+			
+COMMENT ON FUNCTION ST_CountAgg(raster , boolean ) IS 'args: rast, exclude_nodata_value - Aggregate. Returns the number of pixels in a given band of a set of rasters. If no band is specified defaults to band 1. If exclude_nodata_value is set to true, will only count pixels that are not equal to the NODATA value.';
+			
 COMMENT ON FUNCTION ST_Histogram(raster , integer , boolean , integer , double precision[] , boolean ) IS 'args: rast, nband=1, exclude_nodata_value=true, bins=autocomputed, width=NULL, right=false - Returns a set of record summarizing a raster or raster coverage data distribution separate bin ranges. Number of bins are autocomputed if not specified.';
 			
 COMMENT ON FUNCTION ST_Histogram(raster , integer , integer , double precision[] , boolean ) IS 'args: rast, nband, bins, width=NULL, right=false - Returns a set of record summarizing a raster or raster coverage data distribution separate bin ranges. Number of bins are autocomputed if not specified.';
@@ -327,13 +341,19 @@ COMMENT ON FUNCTION ST_Quantile(text , text , integer , boolean , double precisi
 			
 COMMENT ON FUNCTION ST_Quantile(text , text , integer , double precision[] ) IS 'args: rastertable, rastercolumn, nband, quantiles - Compute quantiles for a raster or raster table coverage in the context of the sample or population. Thus, a value could be examined to be at the rasters 25%, 50%, 75% percentile.';
 			
-COMMENT ON FUNCTION ST_SummaryStats(text , text , boolean ) IS 'args: rastertable, rastercolumn, exclude_nodata_value - Returns record consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.';
+COMMENT ON FUNCTION ST_SummaryStats(raster , boolean ) IS 'args: rast, exclude_nodata_value - Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.';
+			
+COMMENT ON FUNCTION ST_SummaryStats(raster , integer , boolean ) IS 'args: rast, nband, exclude_nodata_value - Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.';
 			
-COMMENT ON FUNCTION ST_SummaryStats(raster , boolean ) IS 'args: rast, exclude_nodata_value - Returns record consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.';
+COMMENT ON FUNCTION ST_SummaryStats(text , text , boolean ) IS 'args: rastertable, rastercolumn, exclude_nodata_value - Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.';
 			
-COMMENT ON FUNCTION ST_SummaryStats(text , text , integer , boolean ) IS 'args: rastertable, rastercolumn, nband=1, exclude_nodata_value=true - Returns record consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.';
+COMMENT ON FUNCTION ST_SummaryStats(text , text , integer , boolean ) IS 'args: rastertable, rastercolumn, nband=1, exclude_nodata_value=true - Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.';
 			
-COMMENT ON FUNCTION ST_SummaryStats(raster , integer , boolean ) IS 'args: rast, nband, exclude_nodata_value - Returns record consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.';
+COMMENT ON FUNCTION ST_SummaryStatsAgg(raster , integer , boolean , double precision ) IS 'args: rast, nband, exclude_nodata_value, sample_percent - Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a set of raster. Band 1 is assumed is no band is specified.';
+			
+COMMENT ON FUNCTION ST_SummaryStatsAgg(raster , boolean , double precision ) IS 'args: rast, exclude_nodata_value, sample_percent - Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a set of raster. Band 1 is assumed is no band is specified.';
+			
+COMMENT ON FUNCTION ST_SummaryStatsAgg(raster , integer , boolean ) IS 'args: rast, nband, exclude_nodata_value - Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a set of raster. Band 1 is assumed is no band is specified.';
 			
 COMMENT ON FUNCTION ST_ValueCount(raster , integer , boolean , double precision[] , double precision ) IS 'args: rast, nband=1, exclude_nodata_value=true, searchvalues=NULL, roundto=0, OUT value, OUT count - Returns a set of records containing a pixel band value and count of the number of pixels in a given band of a raster (or a raster coverage) that have a given set of values. If no band is specified defaults to band 1. By default nodata value pixels are not counted. and all other value [...]
 			
@@ -464,6 +484,9 @@ COMMENT ON FUNCTION ST_DFullyWithin(raster , raster , double precision ) IS 'arg
     COMMENT ON TYPE reclassarg IS 'postgis raster type: A composite type used as input into the ST_Reclass function defining the behavior of reclassification.';
             
         
+    COMMENT ON TYPE summarystats IS 'postgis raster type: A composite type returned by the ST_SummaryStats and ST_SummaryStatsAgg functions.';
+            
+        
     COMMENT ON TYPE unionarg IS 'postgis raster type: A composite type used as input into the ST_Union function defining the bands to be processed and behavior of the UNION operation.';
             
         
\ No newline at end of file
diff --git a/doc/reference.xml b/doc/reference.xml
index 5d14497..2e83606 100644
--- a/doc/reference.xml
+++ b/doc/reference.xml
@@ -17,6 +17,7 @@
   </note>
 
   &reference_type;
+  &reference_guc;
   &reference_management;
   &reference_constructor;
   &reference_accessor;
@@ -27,6 +28,7 @@
   &reference_sfcgal;
   &reference_processing;
   &reference_lrs;
+  &reference_temporal;
   &reference_transaction;
   &reference_misc;
   &reference_exception;
diff --git a/doc/reference_accessor.xml b/doc/reference_accessor.xml
index c80e901..884b3e6 100644
--- a/doc/reference_accessor.xml
+++ b/doc/reference_accessor.xml
@@ -270,7 +270,7 @@ ST_Dimension
 	  <refnamediv>
 		<refname>ST_EndPoint</refname>
 
-		<refpurpose>Returns the last point of a <varname>LINESTRING</varname>
+		<refpurpose>Returns the last point of a <varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname>
 		geometry as a <varname>POINT</varname>.</refpurpose>
 	  </refnamediv>
 
@@ -293,6 +293,8 @@ ST_Dimension
 
 		<para>&sqlmm_compliant; SQL-MM 3: 7.1.4</para>
 		<para>&Z_support;</para>
+		<!-- Optionally mention Circular String Support -->
+	  <para>&curve_support;</para>
 		<note><para>Changed: 2.0.0 no longer works with single geometry multilinestrings.  In older
 	  versions of PostGIS -- a single line multilinestring would work happily with this
 	  function and return the start point.  In 2.0.0 it just returns NULL like any other multilinestring.
@@ -321,8 +323,7 @@ SELECT ST_AsEWKT(ST_EndPoint('LINESTRING(1 1 2, 1 2 3, 0 0 5)'));
   st_asewkt
 --------------
  POINT(0 0 5)
-(1 row)
-</programlisting>
+(1 row)</programlisting>
 	  </refsection>
 
 	  <refsection>
@@ -415,6 +416,85 @@ SELECT Box3D(geom), Box2D(geom), ST_AsText(ST_Envelope(geom)) As envelopewkt
 	  </refsection>
 	</refentry>
 
+	<refentry id="ST_BoundingDiagonal">
+		  <refnamediv>
+			<refname>ST_BoundingDiagonal</refname>
+
+			<refpurpose>Returns the diagonal of the supplied geometry's bounding box.</refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>geometry <function>ST_BoundingDiagonal</function></funcdef>
+
+				<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>
+				<paramdef choice="opt"><type>boolean </type> <parameter>fits=false</parameter></paramdef>
+			  </funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+			<para>
+Returns the diagonal of the supplied geometry's bounding box as linestring.
+If the input geometry is empty, the diagonal line is also empty, otherwise
+it is a 2-points linestring with minimum values of each dimension in its
+start point and maximum values in its end point.
+			</para>
+
+			<para>
+The returned linestring geometry always retains SRID and dimensionality
+(Z and M presence) of the input geometry.
+			</para>
+
+			<para>
+The <varname>fits</varname> parameter specifies if the best fit is needed.
+If false, the diagonal of a somewhat larger bounding box can be accepted
+(is faster to obtain for geometries with a lot of vertices). In any case
+the bounding box of the returned diagonal line always covers the input
+geometry.
+			</para>
+
+			<note><para>
+In degenerate cases (a single vertex in input) the returned linestring
+will be topologically invalid (no interior). This does not make the
+return semantically invalid.
+			</para></note>
+
+			<para>Availability: 2.2.0</para>
+			<para>&Z_support;</para>
+			<para>&M_support;</para>
+		</refsection>
+
+	  <refsection>
+		<title>Examples</title>
+
+		<programlisting>
+-- Get the minimum X in a buffer around a point
+SELECT ST_X(ST_StartPoint(ST_BoundingDiagonal(
+  ST_Buffer(ST_MakePoint(0,0),10)
+)));
+ st_x
+------
+  -10
+		</programlisting>
+		</refsection>
+	  <refsection>
+		<title>See Also</title>
+		<para>
+<xref linkend="ST_StartPoint" />,
+<xref linkend="ST_EndPoint" />,
+<xref linkend="ST_X" />,
+<xref linkend="ST_Y" />,
+<xref linkend="ST_Z" />,
+<xref linkend="ST_M" />,
+<xref linkend="geometry_overlaps_nd" />
+		</para>
+	  </refsection>
+	</refentry>
+
 	<refentry id="ST_ExteriorRing">
 	  <refnamediv>
 		<refname>ST_ExteriorRing</refname>
@@ -1697,8 +1777,8 @@ GROUP BY gid, field1,field2;
 	<refentry id="ST_NumInteriorRing">
 	  <refnamediv>
 		<refname>ST_NumInteriorRing</refname>
-		<refpurpose>Return the number of interior rings of the first polygon in
-			the geometry. Synonym to ST_NumInteriorRings. </refpurpose>
+		<refpurpose>Return the number of interior rings of a polygon in
+			the geometry. Synonym for ST_NumInteriorRings. </refpurpose>
 	  </refnamediv>
 
 	  <refsynopsisdiv>
@@ -1710,7 +1790,6 @@ GROUP BY gid, field1,field2;
 		</funcsynopsis>
 	  </refsynopsisdiv>
 
-
 	  <refsection>
 		<title>See Also</title>
 
@@ -2022,12 +2101,14 @@ POINT(3 2)
 	<refsection>
 	  <title>Description</title>
 
-	  <para>Returns the first point of a <varname>LINESTRING</varname> geometry
+	  <para>Returns the first point of a <varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname> geometry
 	  as a <varname>POINT</varname> or <varname>NULL</varname> if the input
-	  parameter is not a <varname>LINESTRING</varname>.</para>
+	  parameter is not a <varname>LINESTRING</varname> or <varname>CIRCULARLINESTRING</varname>.</para>
 
 	  <para>&sqlmm_compliant; SQL-MM 3: 7.1.3</para>
 	  <para>&Z_support;</para>
+	  <!-- Optionally mention Circular String Support -->
+	  <para>&curve_support;</para>
 	  <note><para>Changed: 2.0.0 no longer works with single geometry multilinestrings.  In older
 	  versions of PostGIS -- a single line multilinestring would work happily with this
 	  function and return the start point.  In 2.0.0 it just returns NULL like any other multilinestring.
@@ -2058,6 +2139,11 @@ SELECT ST_AsEWKT(ST_StartPoint('LINESTRING(0 1 1, 0 2 2)'::geometry));
  POINT(0 1 1)
 (1 row)
 
+-- circular linestring --
+SELECT ST_AsText(ST_StartPoint('CIRCULARSTRING(5 2,-3 1.999999, -2 1, -4 2, 5 2)'::geometry));
+ st_astext
+------------
+ POINT(5 2)
 </programlisting>
 	</refsection>
 
@@ -2147,7 +2233,7 @@ Returns a text summary of the contents of the geometry.
 <xref linkend="PostGIS_AddBBox" />,
 <xref linkend="ST_Force_3DM" />,
 <xref linkend="ST_Force_3DZ" />,
-<xref linkend="ST_Force_2D" />,
+<xref linkend="ST_Force2D" />,
 <xref linkend="geography" />
 		</para>
 
diff --git a/doc/reference_constructor.xml b/doc/reference_constructor.xml
index 8aabdb4..d72b8bf 100644
--- a/doc/reference_constructor.xml
+++ b/doc/reference_constructor.xml
@@ -174,8 +174,8 @@ SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 0);
 		  </refsynopsisdiv>
 		  <refsection>
 			<title>Description</title>
-			<para>Returns a geography object from the  well-known text or extended well-known representation.  SRID 4326 is assumed. This
-				is an alias for ST_GeographyFromText.  Points are always expressed in long lat form.</para>
+			<para>Returns a geography object from the well-known text or extended well-known representation. SRID 4326 is assumed if unspecified.
+				This is an alias for ST_GeographyFromText.  Points are always expressed in long lat form.</para>
 		  </refsection>
 		  
 		 <refsection>
@@ -183,7 +183,10 @@ SELECT ST_Box2dFromGeoHash('9qqj7nmxncgyy4d0dbxqz0', 0);
 			<programlisting>
 --- converting lon lat coords to geography
 ALTER TABLE sometable ADD COLUMN geog geography(POINT,4326);
-UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' || lat || ')');		
+UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' || lat || ')');
+
+--- specify a geography point using EPSG:4267, NAD27
+SELECT ST_AsEWKT(ST_GeogFromText('SRID=4267;POINT(-77.0092 38.889588)'));
 			</programlisting>
 		 </refsection>
 		  <refsection>
@@ -207,7 +210,7 @@ UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' ||
 		  </refsynopsisdiv>
 		  <refsection>
 			<title>Description</title>
-			<para>Returns a geography object from the  well-known text representation.  SRID 4326 is assumed.</para>
+			<para>Returns a geography object from the  well-known text representation. SRID 4326 is assumed if unspecified.</para>
 			<!-- TODO: put in example -->
 		  </refsection>
 		  <refsection>
@@ -227,7 +230,7 @@ UPDATE sometable SET geog = ST_GeogFromText('SRID=4326;POINT(' || lon || ' ' ||
 		<funcsynopsis>
 		  <funcprototype>
 			<funcdef>geography <function>ST_GeogFromWKB</function></funcdef>
-			<paramdef><type>bytea </type> <parameter>geom</parameter></paramdef>
+			<paramdef><type>bytea </type> <parameter>wkb</parameter></paramdef>
 		  </funcprototype>
 		</funcsynopsis>
 	  </refsynopsisdiv>
@@ -268,6 +271,58 @@ ST_GeogFromWKB(E'\\001\\002\\000\\000\\000\\002\\000\\000\\000\\037\\205\\353Q\\
 	  </refsection>
 </refentry>
 
+	<refentry id="ST_GeomFromTWKB">
+	  <refnamediv>
+		<refname>ST_GeomFromTWKB</refname>
+		<refpurpose>Creates a geometry instance from a TWKB ("<ulink url="https://github.com/TWKB/Specification/blob/master/twkb.md">Tiny Well-Known Binary</ulink>") geometry
+		representation.</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>geometry <function>ST_GeomFromTWKB</function></funcdef>
+			<paramdef><type>bytea </type> <parameter>twkb</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+		<para>The <varname>ST_GeomFromTWKB</varname> function, takes a a TWKB ("<ulink url="https://github.com/TWKB/Specification/blob/master/twkb.md">Tiny Well-Known Binary</ulink>") geometry representation (WKB) and creates an instance of the appropriate
+		geometry type.</para>
+
+	  </refsection>
+
+
+	  <refsection>
+		<title>Examples</title>
+
+		<programlisting>
+SELECT ST_AsText(ST_GeomFromTWKB(ST_AsTWKB('LINESTRING(126 34, 127 35)'::geometry)));
+
+         st_astext
+-----------------------------
+ LINESTRING(126 34, 127 35)
+(1 row)
+
+
+SELECT ST_AsEWKT(
+  ST_GeomFromTWKB(E'\\x620002f7f40dbce4040105')
+);
+					  st_asewkt
+------------------------------------------------------
+LINESTRING(-113.98 39.198,-113.981 39.195)
+(1 row)
+</programlisting>
+	  </refsection>
+	   <refsection>
+		<title>See Also</title>
+		<para><xref linkend="ST_AsTWKB" /></para>
+	  </refsection>
+    </refentry>
+
 
 	<refentry id="ST_GeomCollFromText">
 	  <refnamediv>
@@ -982,6 +1037,51 @@ SELECT
 	  </refsection>
 	</refentry>
 
+
+  <refentry id="ST_LineFromEncodedPolyline">
+    <refnamediv>
+    <refname>ST_LineFromEncodedPolyline</refname>
+
+    <refpurpose>Creates a LineString from an Encoded Polyline.</refpurpose>
+    </refnamediv>
+
+    <refsynopsisdiv>
+    <funcsynopsis>
+      <funcprototype>
+      <funcdef>geometry <function>ST_LineFromEncodedPolyline</function></funcdef>
+      <paramdef><type>text </type> <parameter>polyline</parameter></paramdef>
+      <paramdef choice="opt"><type>integer </type> <parameter>precision=5</parameter></paramdef>
+      </funcprototype>
+    </funcsynopsis>
+    </refsynopsisdiv>
+
+    <refsection>
+    <title>Description</title>
+
+    <para>Creates a LineString from an Encoded Polyline string.</para>
+    <para>See http://developers.google.com/maps/documentation/utilities/polylinealgorithm</para>
+
+    </refsection>
+
+    <refsection>
+    <title>Examples</title>
+
+    <programlisting>
+--Create a line string from a polyline
+SELECT ST_AsEWKT(ST_LineFromEncodedPolyline('_p~iF~ps|U_ulLnnqC_mqNvxq`@'));
+--result--
+LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)
+    </programlisting>
+    </refsection>
+
+    <!-- Optionally add a "See Also" section -->
+    <refsection>
+    <title>See Also</title>
+
+    <para><xref linkend="ST_AsEncodedPolyline" /></para>
+    </refsection>
+  </refentry>
+
 	<refentry id="ST_LineFromMultiPoint">
 	  <refnamediv>
 		<refname>ST_LineFromMultiPoint</refname>
@@ -1615,6 +1715,7 @@ FROM
 		<refsection>
 			<title>See Also</title>
 			<para>
+				<xref linkend="ST_Boundary" />,
 				<xref linkend="ST_Accum" />,
 				<xref linkend="ST_AddPoint" />,
 				<xref linkend="ST_GeometryType" />,
diff --git a/doc/reference_editor.xml b/doc/reference_editor.xml
index b252b82..8dee657 100644
--- a/doc/reference_editor.xml
+++ b/doc/reference_editor.xml
@@ -170,7 +170,7 @@ SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), cos(pi
 	  </refsection>
 	</refentry>
 
-	<refentry id="ST_Force_2D">
+	<refentry id="ST_Force2D">
 	  <refnamediv>
 		<refname>ST_Force2D</refname>
 
@@ -280,7 +280,7 @@ SELECT  ST_AsEWKT(ST_Force3D('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))'));
 	  <refsection>
 		<title>See Also</title>
 
-		<para><xref linkend="ST_AsEWKT"/>, <xref linkend="ST_Force_2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3DZ"/></para>
+		<para><xref linkend="ST_AsEWKT"/>, <xref linkend="ST_Force2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3DZ"/></para>
 	  </refsection>
 	</refentry>
 
@@ -336,7 +336,7 @@ SELECT  ST_AsEWKT(ST_Force3DZ('POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))'));
 	  <refsection>
 		<title>See Also</title>
 
-		<para><xref linkend="ST_AsEWKT"/>, <xref linkend="ST_Force_2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3D"/></para>
+		<para><xref linkend="ST_AsEWKT"/>, <xref linkend="ST_Force2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3D"/></para>
 	  </refsection>
 	</refentry>
 
@@ -391,7 +391,7 @@ SELECT  ST_AsEWKT(ST_Force3DM('POLYGON((0 0 1,0 5 1,5 0 1,0 0 1),(1 1 1,3 1 1,1
 	  <refsection>
 		<title>See Also</title>
 
-		<para><xref linkend="ST_AsEWKT"/>,  <xref linkend="ST_Force_2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3D"/>, <xref linkend="ST_GeomFromEWKT"/></para>
+		<para><xref linkend="ST_AsEWKT"/>,  <xref linkend="ST_Force2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3D"/>, <xref linkend="ST_GeomFromEWKT"/></para>
 	  </refsection>
 	</refentry>
 
@@ -447,7 +447,7 @@ SELECT  ST_AsEWKT(ST_Force4D('MULTILINESTRINGM((0 0 1,0 5 2,5 0 3,0 0 4),(1 1 1,
 	  <refsection>
 		<title>See Also</title>
 
-		<para><xref linkend="ST_AsEWKT"/>, <xref linkend="ST_Force_2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3D"/></para>
+		<para><xref linkend="ST_AsEWKT"/>, <xref linkend="ST_Force2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3D"/></para>
 	  </refsection>
 	</refentry>
 
@@ -529,7 +529,7 @@ GEOMETRYCOLLECTION(
 	  <refsection>
 		<title>See Also</title>
 
-		<para><xref linkend="ST_AsEWKT"/>,  <xref linkend="ST_Force_2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3D"/>, <xref linkend="ST_GeomFromEWKT"/></para>
+		<para><xref linkend="ST_AsEWKT"/>,  <xref linkend="ST_Force2D"/>, <xref linkend="ST_Force_3DM"/>, <xref linkend="ST_Force_3D"/>, <xref linkend="ST_GeomFromEWKT"/></para>
 	  </refsection>
 	</refentry>
 
@@ -621,6 +621,59 @@ GEOMETRYCOLLECTION(
 		</refsection>
 	</refentry>
 
+	<refentry id="ST_ForceCurve">
+		<refnamediv>
+			<refname>ST_ForceCurve</refname>
+
+			<refpurpose>Upcasts a geometry into its curved type, if applicable.</refpurpose>
+		</refnamediv>
+
+		<refsynopsisdiv>
+			<funcsynopsis>
+				<funcprototype>
+					<funcdef>geometry
+						<function>ST_ForceCurve</function></funcdef>
+						<paramdef><type>geometry</type> <parameter>g</parameter></paramdef>
+				</funcprototype>
+			</funcsynopsis>
+		</refsynopsisdiv>
+
+		<refsection>
+			<title>Description</title>
+
+			<para>
+                        Turns a geometry into its curved representation, if applicable:
+                        lines become compoundcurves, multilines become multicurves
+                        polygons become curvepolygons multipolygons become multisurfaces. If the geometry input is already a curved representation returns back same as input.
+                        </para>
+
+		        <para>Availability: 2.2.0</para>
+	  		<para>&Z_support;</para>
+	  			<!-- Optionally mention Circular String Support -->
+	  			<para>&curve_support;</para>
+		</refsection>
+
+		<refsection>
+			<title>Examples</title>
+
+			<programlisting>SELECT ST_AsText(
+  ST_ForceCurve(
+	'POLYGON((0 0 2, 5 0 2, 0 5 2, 0 0 2),(1 1 2, 1 3 2, 3 1 2, 1 1 2))'::geometry
+  )
+);
+                              st_astext
+----------------------------------------------------------------------
+ CURVEPOLYGON Z ((0 0 2,5 0 2,0 5 2,0 0 2),(1 1 2,1 3 2,3 1 2,1 1 2))
+(1 row)</programlisting>
+		</refsection>
+
+		<refsection>
+			<title>See Also</title>
+
+			<para><xref linkend="ST_LineToCurve"/></para>
+		</refsection>
+	</refentry>
+
 	<refentry id="ST_LineMerge">
 		<refnamediv>
 			<refname>ST_LineMerge</refname>
@@ -705,8 +758,6 @@ Given a (multi)geometry, returns a (multi)geometry consisting only of elements o
 Sub-geometries that are not the specified type are ignored. If there are no sub-geometries of the right type, an EMPTY geometry will be returned.
 Only points, lines and polygons are supported. Type numbers are 1 == POINT, 2 == LINESTRING, 3 == POLYGON.
 			</para>
-			
-			<warning><para>When a multipolygon is returned the multipolygon may have shared edges.  This results in an invalid multipolygon.</para></warning>
 
 			<para>Availability: 1.5.0</para>
 
@@ -715,6 +766,9 @@ Prior to 1.5.3 this function returned non-collection inputs untouched, no matter
 In 1.5.3 non-matching single geometries result in a NULL return. 
 In of 2.0.0 every case of missing match results in a typed EMPTY return.
 			</para></note>
+			
+			<warning><para>When specifying 3 == POLYGON a multipolygon is returned even when the edges are shared.  This results in an invalid multipolygon for many cases
+			such as applying this function on an <xref linkend="ST_Split" /> result.</para></warning>
 
 		</refsection>
 
@@ -766,10 +820,12 @@ MULTILINESTRING((0 0, 1 1), (2 2, 3 3))
 					Given a geometry collection, returns the "simplest" representation of the contents.  Singletons will be returned as singletons.  Collections that are homogeneous will be returned as the appropriate multi-type.
 				</para>
 				
-			    <warning><para>When a multipolygon is returned the multipolygon may have shared edges.  This results in an invalid multipolygon.</para></warning>
+				<warning><para>When specifying 3 == POLYGON a multipolygon is returned even when the edges are shared.  This results in an invalid multipolygon for many cases
+			such as applying this function on an <xref linkend="ST_Split" /> result.</para></warning>
 
-				<para>Availability: 2.0.0</para>
 
+				<para>Availability: 2.0.0</para>
+				
 			</refsection>
 
 			<refsection>
@@ -1204,6 +1260,12 @@ FROM (SELECT ST_LineToCurve(ST_Buffer(ST_GeomFromText('POINT(234 567)'), 3)) As
 			<paramdef><type>float</type> <parameter>XFactor</parameter></paramdef>
 			<paramdef><type>float</type> <parameter>YFactor</parameter></paramdef>
 		  </funcprototype>
+
+		  <funcprototype>
+			<funcdef>geometry <function>ST_Scale</function></funcdef>
+			<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>
+			<paramdef><type>geometry</type> <parameter>factor</parameter></paramdef>
+		  </funcprototype>
 		</funcsynopsis>
 	  </refsynopsisdiv>
 
@@ -1211,21 +1273,27 @@ FROM (SELECT ST_LineToCurve(ST_Buffer(ST_GeomFromText('POINT(234 567)'), 3)) As
 		<title>Description</title>
 
 		<para>Scales the geometry to a new size by multiplying the
-			ordinates with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor,
-			Zfactor).</para>
+			ordinates with the corresponding factor parameters.
+		</para>
 
-		<note><para><code>ST_Scale(geomA,  XFactor, YFactor, ZFactor)</code>
-			is short-hand for <code>ST_Affine(geomA,  XFactor, 0, 0,  0, YFactor, 0,  0, 0, ZFactor,  0, 0, 0)</code>.</para></note>
+		<para>
+The version taking a geometry as the <varname>factor</varname> parameter
+allows passing a 2d, 3dm, 3dz or 4d point to set scaling factor for all
+supported dimensions. Missing dimensions in the <varname>factor</varname>
+point are equivalant to no scaling the corresponding dimension.
+    </para>
 
 		<note><para>Prior to 1.3.4, this function crashes if used with geometries that contain CURVES.  This is fixed in 1.3.4+</para></note>
 
 
 		<para>Availability: 1.1.0.</para>
 		<para>Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was introduced.</para>
+		<para>Enhanced: 2.2.0 support for scaling all dimension (geometry parameter) was introduced.</para>
 		<para>&P_support;</para>
 	  	<para>&Z_support;</para>
 	  	<para>&curve_support;</para>
 	  	<para>&T_support;</para>
+	  	<para>&M_support;</para>
 	  </refsection>
 
 
@@ -1244,6 +1312,13 @@ SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 0.75
 ----------------------------------
  LINESTRING(0.5 1.5 3,0.5 0.75 1)
 
+--Version 3: Scale X Y Z M
+ SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)'),
+   ST_MakePoint(0.5, 0.75, 2, -1)));
+			       st_asewkt
+----------------------------------------
+ LINESTRING(0.5 1.5 6 -4,0.5 0.75 2 -1)
+
 
 </programlisting>
 	  </refsection>
diff --git a/doc/reference_guc.xml b/doc/reference_guc.xml
new file mode 100644
index 0000000..da32b9e
--- /dev/null
+++ b/doc/reference_guc.xml
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sect1 id="PostGIS_GUC">
+    <sect1info>
+    <abstract>
+    <para>This section lists custom PostGIS Grand Unified Custom Variables(GUC).  These can be set globally, by database, by session or by transaction. Best set at global or database level.</para>
+    </abstract>
+    </sect1info>
+    <title>PostGIS Grand Unified Custom Variables (GUCs)</title>
+
+	<refentry id="postgis_backend">
+      <refnamediv>
+        <refname>postgis.backend</refname>
+        <refpurpose>The backend to service a function where GEOS and SFCGAL overlap. Options: geos or sfcgal. Defaults to geos.</refpurpose>
+      </refnamediv>
+
+      <refsection>
+        <title>Description</title>
+        <para>This GUC is only relevant if you compiled PostGIS with sfcgal support.  By default <varname>geos</varname> backend is used for functions where both GEOS and SFCGAL have the same named function.  This variable allows you to override and make sfcgal the backend to service the request.</para>
+        <para>Availability: 2.1.0</para>
+      </refsection>
+      
+      <refsection>
+      	<title>Examples</title>
+      	<para>Sets backend just for life of connection</para>
+      	<programlisting>set postgis.backend = sfcgal;</programlisting>
+      	
+      	<para>Sets backend for new connections to database</para>
+      	<programlisting>ALTER DATABASE mygisdb SET postgis.backend = sfcgal;</programlisting>
+      </refsection>
+      <refsection>
+			  <title>See Also</title>
+			  <para><xref linkend="reference_sfcgal" /></para>
+			</refsection>
+  </refentry>
+  
+  <refentry id="postgis_gdal_datapath">
+			<refnamediv>
+				<refname>postgis.gdal_datapath</refname>
+				<refpurpose>
+					A configuration option to assign the value of GDAL's GDAL_DATA option. If not set, the environmentally set GDAL_DATA variable is used.
+				</refpurpose>
+			</refnamediv>
+
+			<refsection>
+				<title>Description</title>
+				<para>
+					A PostgreSQL GUC variable for setting the value of GDAL's GDAL_DATA option. The <varname>postgis.gdal_datapath</varname> value should be the complete physical path to GDAL's data files.
+				</para>
+				<para>
+					This configuration option is of most use for Windows platforms where GDAL's data files path is not hard-coded. This option should also be set when GDAL's data files are not located in GDAL's expected path.
+				</para>
+
+				<note>
+					<para>
+						This option can be set in PostgreSQL's configuration file postgresql.conf. It can also be set by connection or transaction.
+					</para>
+				</note>
+				<para>Availability: 2.2.0</para>
+
+				<note>
+					<para>
+						Additional information about GDAL_DATA is available at GDAL's <ulink url="http://trac.osgeo.org/gdal/wiki/ConfigOptions">Configuration Options</ulink>.
+					</para>
+				</note>
+
+			</refsection>
+
+			<refsection>
+				<title>Examples</title>
+				<para>Set and reset <varname>postgis.gdal_datapath</varname></para>
+
+				<programlisting>
+SET postgis.gdal_datapath TO '/usr/local/share/gdal.hidden';
+SET postgis.gdal_datapath TO default;
+				</programlisting>
+				
+				<para>Setting on windows for a particular database</para>
+				<programlisting>ALTER DATABASE gisdb
+SET postgis.gdal_datapath = 'C:/Program Files/PostgreSQL/9.3/gdal-data';</programlisting>
+			</refsection>
+
+			<refsection>
+				<title>See Also</title>
+				<para>
+					<xref linkend="RT_PostGIS_GDAL_Version" />, <xref linkend="RT_ST_Transform" />
+				</para>
+			</refsection>
+	</refentry>
+
+  <refentry id="postgis_gdal_enabled_drivers">
+			<refnamediv>
+				<refname>postgis.gdal_enabled_drivers</refname>
+				<refpurpose>
+					A configuration option to set the enabled GDAL drivers in the PostGIS environment. Affects the GDAL configuration variable GDAL_SKIP.
+				</refpurpose>
+			</refnamediv>
+
+			<refsection>
+				<title>Description</title>
+				<para>
+					A configuration option to set the enabled GDAL drivers in the PostGIS environment. Affects the GDAL configuration variable GDAL_SKIP. This option can be set in PostgreSQL's configuration file: postgresql.conf. It can also be set by connection or transaction.
+				</para>
+
+				<para>
+					The initial value of <varname>postgis.gdal_enabled_drivers</varname> may also be set by passing the environment variable <varname>POSTGIS_GDAL_ENABLED_DRIVERS</varname> with the list of enabled drivers to the process starting PostgreSQL.
+				</para>
+
+				<para>
+					Enabled GDAL specified drivers can be specified by the driver's short-name or code. Driver short-names or codes can be found at <ulink url="http://www.gdal.org/formats_list.html">GDAL Raster Formats</ulink>. Multiple drivers can be specified by putting a space between each driver.
+				</para>
+
+				<note>
+					<para>
+						There are three special codes available for <varname>postgis.gdal_enabled_drivers</varname>. The codes are case-sensitive.
+
+						<itemizedlist>
+							<listitem>
+								<para><varname>DISABLE_ALL</varname> disables all GDAL drivers. If present, <varname>DISABLE_ALL</varname> overrides all other values in <varname>postgis.gdal_enabled_drivers</varname>.</para>
+						</listitem>
+							<listitem>
+								<para><varname>ENABLE_ALL</varname> enables all GDAL drivers.</para>
+						</listitem>
+							<listitem>
+								<para><varname>VSICURL</varname> enables GDAL's <varname>/vsicurl/</varname> virtual file system.</para>
+						</listitem>
+						</itemizedlist>
+					</para>
+					<para>
+						When <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL, attempts to use out-db rasters, ST_FromGDALRaster(), ST_AsGDALRaster(), ST_AsTIFF(), ST_AsJPEG() and ST_AsPNG() will result in error messages.
+					</para>
+				</note>
+
+				<note>
+					<para>
+						In the standard PostGIS installation, <varname>postgis.gdal_enabled_drivers</varname> is set to DISABLE_ALL.
+					</para>
+				</note>
+
+				<note>
+					<para>
+						Additional information about GDAL_SKIP is available at GDAL's <ulink url="http://trac.osgeo.org/gdal/wiki/ConfigOptions">Configuration Options</ulink>.
+					</para>
+				</note>
+
+				<para>Availability: 2.2.0</para>
+
+			</refsection>
+
+			<refsection>
+				<title>Examples</title>
+				<para>Set and reset <varname>postgis.gdal_enabled_drivers</varname></para>
+
+				<programlisting>
+SET postgis.gdal_enabled_drivers TO 'GTiff PNG JPEG';
+SET postgis.gdal_enabled_drivers = default;
+				</programlisting>
+				
+				<para>Enable all GDAL Drivers</para>
+				<programlisting>
+SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';
+				</programlisting>
+
+				<para>Disable all GDAL Drivers</para>
+				<programlisting>
+SET postgis.gdal_enabled_drivers = 'DISABLE_ALL';
+				</programlisting>
+			</refsection>
+
+			<refsection>
+				<title>See Also</title>
+				<para>
+					<xref linkend="RT_ST_FromGDALRaster" />, 
+					<xref linkend="RT_ST_AsGDALRaster" />, 
+					<xref linkend="RT_ST_AsTIFF" />, 
+					<xref linkend="RT_ST_AsPNG" />, 
+					<xref linkend="RT_ST_AsJPEG" />, 
+					<xref linkend="postgis_enable_outdb_rasters" />
+				</para>
+			</refsection>
+	</refentry>
+
+  <refentry id="postgis_enable_outdb_rasters">
+			<refnamediv>
+				<refname>postgis.enable_outdb_rasters</refname>
+				<refpurpose>
+					A boolean configuration option to enable access to out-db raster bands.
+				</refpurpose>
+			</refnamediv>
+
+			<refsection>
+				<title>Description</title>
+				<para>
+					A boolean configuration option to enable access to out-db raster bands. This option can be set in PostgreSQL's configuration file: postgresql.conf. It can also be set by connection or transaction.
+				</para>
+
+				<para>
+					The initial value of <varname>postgis.enable_outdb_rasters</varname> may also be set by passing the environment variable <varname>POSTGIS_ENABLE_OUTDB_RASTERS</varname> with a non-zero value to the process starting PostgreSQL.
+				</para>
+
+				<note>
+					<para>
+						Even if <varname>postgis.enable_outdb_rasters</varname> is True, the GUC <varname>postgis.enable_outdb_rasters</varname> determines the accessible raster formats.
+					</para>
+				</note>
+
+				<note>
+					<para>
+						In the standard PostGIS installation, <varname>postgis.enable_outdb_rasters</varname> is set to False.
+					</para>
+				</note>
+
+				<para>Availability: 2.2.0</para>
+
+			</refsection>
+
+			<refsection>
+				<title>Examples</title>
+				<para>Set and reset <varname>postgis.enable_outdb_rasters</varname></para>
+
+				<programlisting>
+SET postgis.enable_outdb_rasters TO True;
+SET postgis.enable_outdb_rasters = default;
+SET postgis.enable_outdb_rasters = True;
+SET postgis.enable_outdb_rasters = False;
+				</programlisting>
+			</refsection>
+
+			<refsection>
+				<title>See Also</title>
+				<para>
+					<xref linkend="postgis_gdal_enabled_drivers" />
+				</para>
+			</refsection>
+	</refentry>
+</sect1>
diff --git a/doc/reference_lrs.xml b/doc/reference_lrs.xml
index 744bc26..4e1e746 100644
--- a/doc/reference_lrs.xml
+++ b/doc/reference_lrs.xml
@@ -2,7 +2,7 @@
 <sect1 id="Linear_Referencing">
 	  <title>Linear Referencing</title>
 	
-	<refentry id="ST_LineInterpolatePoint">
+		<refentry id="ST_LineInterpolatePoint">
 		  <refnamediv>
 			<refname>ST_LineInterpolatePoint</refname>
 
@@ -15,7 +15,7 @@
 			  <funcprototype>
 				<funcdef>geometry <function>ST_LineInterpolatePoint</function></funcdef>
 				<paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef>
-				<paramdef><type>float </type> <parameter>a_fraction</parameter></paramdef>
+				<paramdef><type>float8 </type> <parameter>a_fraction</parameter></paramdef>
 			  </funcprototype>
 			</funcsynopsis>
 		  </refsynopsisdiv>
@@ -29,7 +29,7 @@
 
 			<para>See <xref linkend="ST_LineLocatePoint" /> for
 			computing the line location nearest to a Point.</para>
-
+			
 			<note>
 			  <para>Since release 1.1.1 this function also interpolates M and
 			  Z values (when present), while prior releases set them to
@@ -99,7 +99,7 @@ FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As foo;
 		  <refsynopsisdiv>
 			<funcsynopsis>
 			  <funcprototype>
-				<funcdef>float <function>ST_LineLocatePoint</function></funcdef>
+				<funcdef>float8 <function>ST_LineLocatePoint</function></funcdef>
 				<paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef>
 				<paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef>
 			  </funcprototype>
@@ -183,8 +183,8 @@ FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As foo;
 			  <funcprototype>
 				<funcdef>geometry <function>ST_LineSubstring</function></funcdef>
 				<paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef>
-				<paramdef><type>float </type> <parameter>startfraction</parameter></paramdef>
-				<paramdef><type>float </type> <parameter>endfraction</parameter></paramdef>
+				<paramdef><type>float8 </type> <parameter>startfraction</parameter></paramdef>
+				<paramdef><type>float8 </type> <parameter>endfraction</parameter></paramdef>
 			  </funcprototype>
 			</funcsynopsis>
 		  </refsynopsisdiv>
@@ -211,7 +211,7 @@ FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As foo;
 			</note>
 
 			<para>Availability: 1.1.0, Z and M supported added in 1.1.1</para>
-    <para>Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Substring.</para>
+			<para>Changed: 2.1.0. Up to 2.0.x this was called ST_Line_Substring.</para>
 			<para>&Z_support;</para>
 		  </refsection>
 
@@ -281,8 +281,8 @@ WHERE n*100.00/length < 1;
 		  <funcprototype>
 			<funcdef>geometry <function>ST_LocateAlong</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>ageom_with_measure</parameter></paramdef>
-			<paramdef><type>float </type> <parameter>a_measure</parameter></paramdef>
-			<paramdef choice="opt"><type>float </type> <parameter>offset</parameter></paramdef>
+			<paramdef><type>float8 </type> <parameter>a_measure</parameter></paramdef>
+			<paramdef choice="opt"><type>float8 </type> <parameter>offset</parameter></paramdef>
 		  </funcprototype>
 		</funcsynopsis>
 	  </refsynopsisdiv>
@@ -360,9 +360,9 @@ SELECT ST_AsText((ST_Dump(the_geom)).geom)
 		  <funcprototype>
 			<funcdef>geometry <function>ST_LocateBetween</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>
-			<paramdef><type>float </type> <parameter>measure_start</parameter></paramdef>
-			<paramdef><type>float </type> <parameter>measure_end</parameter></paramdef>
-			<paramdef choice="opt"><type>float </type> <parameter>offset</parameter></paramdef>
+			<paramdef><type>float8 </type> <parameter>measure_start</parameter></paramdef>
+			<paramdef><type>float8 </type> <parameter>measure_end</parameter></paramdef>
+			<paramdef choice="opt"><type>float8 </type> <parameter>offset</parameter></paramdef>
 		  </funcprototype>
 
 		</funcsynopsis>
@@ -433,8 +433,8 @@ SELECT ST_AsText((ST_Dump(the_geom)).geom)
 		  <funcprototype>
 			<funcdef>geometry <function>ST_LocateBetweenElevations</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>geom_mline</parameter></paramdef>
-			<paramdef><type>float </type> <parameter>elevation_start</parameter></paramdef>
-			<paramdef><type>float </type> <parameter>elevation_end</parameter></paramdef>
+			<paramdef><type>float8 </type> <parameter>elevation_start</parameter></paramdef>
+			<paramdef><type>float8 </type> <parameter>elevation_end</parameter></paramdef>
 		  </funcprototype>
 
 		</funcsynopsis>
@@ -501,7 +501,7 @@ LINESTRING(6.1 7.1 6,7 8 9)
 		  <refsynopsisdiv>
 			<funcsynopsis>
 			  <funcprototype>
-				<funcdef>float <function>ST_InterpolatePoint</function></funcdef>
+				<funcdef>float8 <function>ST_InterpolatePoint</function></funcdef>
 				<paramdef><type>geometry </type> <parameter>line</parameter></paramdef>
 				<paramdef><type>geometry </type> <parameter>point</parameter></paramdef>
 			  </funcprototype>
@@ -542,7 +542,7 @@ LINESTRING(6.1 7.1 6,7 8 9)
 	  <refnamediv>
 		<refname>ST_AddMeasure</refname>
 
-		<refpurpose>Return a derived geometry with measure elements linearly interpolated between the start and end points. If the geometry has no measure dimension, one is added. If the geometry has a measure dimension, it is over-written with new values. Only LINESTRINGS and MULTILINESTRINGS are supported.</refpurpose>
+		<refpurpose>Return a derived geometry with measure elements linearly interpolated between the start and end points.</refpurpose>
 	  </refnamediv>
 
 	  <refsynopsisdiv>
@@ -550,8 +550,8 @@ LINESTRING(6.1 7.1 6,7 8 9)
 		  <funcprototype>
 			<funcdef>geometry <function>ST_AddMeasure</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>geom_mline</parameter></paramdef>
-			<paramdef><type>float </type> <parameter>measure_start</parameter></paramdef>
-			<paramdef><type>float </type> <parameter>measure_end</parameter></paramdef>
+			<paramdef><type>float8 </type> <parameter>measure_start</parameter></paramdef>
+			<paramdef><type>float8 </type> <parameter>measure_end</parameter></paramdef>
 		  </funcprototype>
 
 		</funcsynopsis>
@@ -597,6 +597,5 @@ ST_GeomFromEWKT('MULTILINESTRINGM((1 0 4, 2 0 4, 4 0 4),(1 0 4, 2 0 4, 4 0 4))')
 	  </refsection>
 
 	</refentry>
-
 	
   </sect1>
diff --git a/doc/reference_management.xml b/doc/reference_management.xml
index afc2a82..a029917 100644
--- a/doc/reference_management.xml
+++ b/doc/reference_management.xml
@@ -377,7 +377,8 @@ DROP TABLE my_schema.my_spatial_table;
 		<programlisting>SELECT PostGIS_Full_Version();
 							   postgis_full_version
 ----------------------------------------------------------------------------------
- POSTGIS="1.3.3" GEOS="3.1.0-CAPI-1.5.0" PROJ="Rel. 4.4.9, 29 Oct 2004" USE_STATS
+POSTGIS="2.2.0dev r12699" GEOS="3.5.0dev-CAPI-1.9.0 r3989" SFCGAL="1.0.4" PROJ="Rel. 4.8.0, 6 March 2012" 
+GDAL="GDAL 1.11.0, released 2014/04/16" LIBXML="2.7.8" LIBJSON="0.12" RASTER
 (1 row)</programlisting>
 	  </refsection>
 
@@ -836,7 +837,7 @@ DROP TABLE my_schema.my_spatial_table;
 
 		<para>Ensures geometry columns have appropriate type modifiers or spatial constraints to ensure they are registered correctly in <varname>geometry_columns</varname> table.</para>
 		
-		<para>For backwards compatibility and for spatial needs such as tble inheritance where each child table may have different geometry type, the old check constraint behavior is still supported. 
+		<para>For backwards compatibility and for spatial needs such as table inheritance where each child table may have different geometry type, the old check constraint behavior is still supported. 
 		If you need the old behavior, you need to pass in the new optional argument as false <varname>use_typmod=false</varname>. When this is done geometry columns will be created with no type modifiers
 		but will have 3 constraints defined.  In particular,
 		this means that every geometry column belonging to a table has at least
@@ -1033,7 +1034,11 @@ Check constraints:
 	  <refsection>
 		<title>See Also</title>
 		
-		<para><xref linkend="ST_SetSRID"/> , <xref linkend="ST_Transform"/></para>
+		<para>
+  <xref linkend="RT_UpdateRasterSRID"/>,
+  <xref linkend="ST_SetSRID"/>,
+  <xref linkend="ST_Transform"/>
+		</para>
 	  </refsection>
 	</refentry>
   </sect1>
diff --git a/doc/reference_measure.xml b/doc/reference_measure.xml
index cf6af81..1a22cea 100644
--- a/doc/reference_measure.xml
+++ b/doc/reference_measure.xml
@@ -127,7 +127,7 @@ SELECT ST_AsEWKT(ST_3DClosestPoint(line,pt)) AS cp3d_line_pt,
 		<!-- Optionally mention supports Polyhedral Surface  -->
 		<para>&P_support;</para>
 		<para>&sqlmm_compliant; SQL-MM ?</para>
-                <para>&sfcgal_enhanced;</para>
+        <para>&sfcgal_enhanced;</para>
 
 		<para>Availability: 2.0.0</para>
 	  </refsection>
@@ -313,7 +313,7 @@ ST_DWithin(
 			<refname>ST_3DIntersects</refname>
 
 			<refpurpose>Returns TRUE if the Geometries "spatially
-			intersect" in 3d - only for points and linestrings
+			intersect" in 3d - only for points, linestrings, polygons, polyhedral surface (area).  With SFCGAL backend enabled also supports TINS 
 			</refpurpose>
 		</refnamediv>
 		<refsynopsisdiv>
@@ -345,9 +345,13 @@ ST_DWithin(
 			  comparison that will make use of any indexes that are available on the
 			  geometries.</para>
 			</note>
+			
+			<note><para>In order to take advantage of support for TINS, you need to enable the SFCGAL backend.  This can be done at session time with: <code>set postgis.backend = sfcgal;</code> or at the database or system level.  Database level can be done with <code>ALTER DATABASE gisdb SET postgis.backend = sfcgal;</code>.</para></note>
 			<para>&Z_support;</para>
 			<!-- Optionally mention supports Polyhedral Surface  -->
 			<para>&P_support;</para>
+			<para>&T_support;</para>
+			<para>&sfcgal_enhanced;</para>
 			<para>&sqlmm_compliant; SQL-MM 3: ?</para>
 		</refsection>
 		<refsection>
@@ -361,6 +365,14 @@ ST_DWithin(
 (1 row)
 		</programlisting>
 		</refsection>
+		
+		<refsection><title>TIN Examples</title>
+		    <programlisting>set postgis.backend = sfcgal;
+SELECT ST_3DIntersects('TIN(((0 0,1 0,0 1,0 0)))'::geometry, 'POINT(.1 .1)'::geometry);
+ st_3dintersects 
+-----------------
+ t</programlisting></refsection>
+		
 		<refsection>
 			<title>See Also</title>
 			<para><xref linkend="ST_Intersects"/></para>
@@ -631,8 +643,8 @@ SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt,
 		<refnamediv>
 		  <refname>ST_Area</refname>
 
-		  <refpurpose>Returns the area of the surface if it is a polygon or
-				multi-polygon. For "geometry" type area is in SRID units.  For "geography" area is in square meters.</refpurpose>
+		  <refpurpose>Returns the area of the surface if it is a Polygon or
+				MultiPolygon. For geometry, a 2D Cartesian area is determined with units specified by the SRID.  For geography, area is determined on a curved surface with units in square meters.</refpurpose>
 		</refnamediv>
 		<refsynopsisdiv>
 		  <funcsynopsis>
@@ -651,12 +663,13 @@ SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt,
 		<refsection>
 			<title>Description</title>
 
-			<para>Returns the area of the geometry if it is a polygon or
-				multi-polygon. Return the area measurement of an ST_Surface or
-		  ST_MultiSurface value. For geometry Area is in the units of the srid.  For geography area is in square meters  and defaults to measuring about the spheroid of the geography (currently only WGS84).
-		  To measure around the faster but less accurate sphere -- ST_Area(geog,false).
+			<para>Returns the area of the geometry if it is a Polygon or
+				MultiPolygon. Return the area measurement of an ST_Surface or
+		  ST_MultiSurface value. For geometry, a 2D Cartesian area is determined with units specified by the SRID.  For geography, by default area is determined on a spheroid with units in square meters.
+		  To measure around the faster but less accurate sphere, use ST_Area(geog,false).
 		  </para>
 		  	<para>Enhanced: 2.0.0 - support for 2D polyhedral surfaces was introduced.</para>
+			<para>Enhanced: 2.2.0 - measurement on spheroid performed with GeographicLib for improved accuracy and robustness.</para>
 		 	<para>&sfs_compliant;</para>
 		 	<para>&sqlmm_compliant; SQL-MM 3: 8.1.2, 9.5.3</para>
 		 	<para>&P_support;</para>
@@ -668,8 +681,8 @@ SELECT ST_AsEWKT(ST_3DShortestLine(line,pt)) AS shl3d_line_pt,
 		  <refsection>
 			<title>Examples</title>
 			<para>Return area in square feet for a plot of Massachusetts land and multiply by conversion to get square meters.
-				Note this is in square feet because 2249 is
-				Mass State Plane Feet </para>
+				Note this is in square feet because EPSG:2249 is
+				Massachusetts State Plane Feet </para>
 			<programlisting>
 SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm
 		FROM (SELECT
@@ -679,9 +692,9 @@ SELECT ST_Area(the_geom) As sqft, ST_Area(the_geom)*POWER(0.3048,2) As sqm
 ---------+-------------
  928.625 | 86.27208552
 </programlisting>
-<para>Return area square feet and transform to Massachusetts state plane meters (26986) to get square meters.
+<para>Return area square feet and transform to Massachusetts state plane meters (EPSG:26986) to get square meters.
 				Note this is in square feet because 2249 is
-				Mass State Plane Feet and transformed area is in square meters since 26986 is state plane mass meters </para>
+				Massachusetts State Plane Feet and transformed area is in square meters since EPSG:26986 is state plane Massachusetts meters </para>
 <programlisting>
 
 SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As sqm
@@ -693,7 +706,7 @@ SELECT ST_Area(the_geom) As sqft, ST_Area(ST_Transform(the_geom,26986)) As sqm
  928.625 | 86.2724304199219
 			</programlisting>
 
-<para>Return area square feet and square meters using Geography data type.  Note that we transform to our geometry to geography
+<para>Return area square feet and square meters using geography data type.  Note that we transform to our geometry to geography
 	(before you can do that make sure your geometry is in WGS 84 long lat 4326).  Geography always measures in meters. 
 	This is just for demonstration to compare.  Normally your table will be stored in geography data type already.</para>
 <programlisting>
@@ -708,9 +721,9 @@ SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,fal
 			)
 		)
 	) As foo(the_geog);
- sqft_spheroid   |   sqft_sphere    |   sqm_spheroid
------------------+------------------+------------------
-928.684405217197 | 927.186481558724 | 86.2776044452694
+  sqft_spheroid   |   sqft_sphere    |   sqm_spheroid
+------------------+------------------+------------------
+ 928.684403538925 | 927.049336105925 | 86.2776042893529
 
  --if your data is in geography already
  SELECT ST_Area(the_geog)/POWER(0.3048,2) As  sqft, ST_Area(the_geog) As sqm
@@ -746,13 +759,14 @@ SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,fal
 			<title>Description</title>
 
 			<para>Returns the azimuth in radians of the segment defined by the given
-			point-geometries, or NULL if the two points are coincident. The azimuth is north-based and is measured clockwise: North = 0; East = PI/2; South = PI; West = 3PI/2.</para>
-
-			<para>The Azimuth is mathematical concept defined as the angle, in this case measured in radian, between a reference plane
-				and a point. </para>
+			point geometries, or NULL if the two points are coincident. The azimuth is angle is referenced from north, and is positive clockwise: North = 0; East = &#x03C0;/2; South = &#x03C0;; West = 3&#x03C0;/2.</para>
+			<para>For the geography type, the forward azimuth is solved as part of the inverse geodesic problem.</para>
+			<para>The azimuth is mathematical concept defined as the angle between a reference plane and a point, with angular units in radians.
+			Units can be converted to degrees using a built-in PostgreSQL function degrees(), as shown in the example.</para>
 
 			<para>Availability: 1.1.0</para>
 			<para>Enhanced: 2.0.0 support for geography was introduced.</para>
+			<para>Enhanced: 2.2.0 measurement on spheroid performed with GeographicLib for improved accuracy and robustness.</para>
 			<para>Azimuth is especially useful in conjunction with ST_Translate for shifting an object along its perpendicular axis. See
 				 upgis_lineshift <ulink url="http://trac.osgeo.org/postgis/wiki/UsersWikiplpgsqlfunctions">Plpgsqlfunctions PostGIS wiki section</ulink> for example of this.</para>
 		</refsection>
@@ -761,13 +775,8 @@ SELECT ST_Area(the_geog)/POWER(0.3048,2) As sqft_spheroid,  ST_Area(the_geog,fal
 		<title>Examples</title>
 		<para>Geometry Azimuth in degrees </para>
 <programlisting>
-SELECT ST_Azimuth(ST_Point(25,45), ST_Point(75,100))/(2*pi())*360 as degA_B,
-	ST_Azimuth(ST_Point(75,100), ST_Point(25,45))/(2*pi())*360 As degB_A;
-	
--- NOTE easier to remember syntax using PostgreSQL built-in degrees function --
--- Both yield same answer --
-SELECT degrees( ST_Azimuth(ST_Point(25,45), ST_Point(75,100)) ) as degA_B,
-	degrees( ST_Azimuth(ST_Point(75,100), ST_Point(25,45)) ) As degB_A;
+SELECT degrees(ST_Azimuth(ST_Point(25, 45), ST_Point(75, 100))) AS degA_B,
+	    degrees(ST_Azimuth(ST_Point(75, 100), ST_Point(25, 45))) AS degB_A;
 
       dega_b       |     degb_a
 ------------------+------------------
@@ -1921,8 +1930,8 @@ SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::geometry);
 	  <refnamediv>
 		<refname>ST_Distance</refname>
 
-		<refpurpose>For geometry type Returns the 2-dimensional cartesian minimum distance (based on spatial ref) between two geometries in
-		projected units.  For geography type defaults to return spheroidal minimum distance between two geographies in meters.</refpurpose>
+		<refpurpose>For geometry type Returns the 2D Cartesian distance between two geometries in
+		projected units (based on spatial ref).  For geography type defaults to return minimum geodesic distance between two geographies in meters.</refpurpose>
 	  </refnamediv>
 	  <refsynopsisdiv>
 		<funcsynopsis>
@@ -1963,18 +1972,19 @@ SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::geometry);
 	  <refsection>
 		<title>Description</title>
 
-		<para>For geometry type returns the 2-dimensional minimum cartesian distance between two geometries in
-		projected units (spatial ref units). For geography type defaults to return the minimum distance around WGS 84 spheroid between two geographies in meters.  Pass in
-		false to return answer in sphere instead of spheroid.</para>
+		<para>For geometry type returns the minimum 2D Cartesian distance between two geometries in
+		projected units (spatial ref units). For geography type defaults to return the minimum geodesic distance between two geographies in meters.  If use_spheroid is
+		false, a faster sphere calculation is used instead of a spheroid.</para>
 
 		<para>&sfs_compliant;</para>
 		<para>&sqlmm_compliant; SQL-MM 3: 5.1.23</para>
 		<para>&curve_support;</para>
-                <para>&sfcgal_enhanced;</para>
+		<para>&sfcgal_enhanced;</para>
 
 		<para>Availability: 1.5.0 geography support was introduced in 1.5.  Speed improvements for planar to better handle large or many vertex geometries</para>
-		<para>Enhanced: 2.1.0 improved speed for geography. See <ulink url="http://blog.opengeo.org/2012/07/12/making-geography-faster/">Making Geography faster</ulink> for details.</para>
+		<para>Enhanced: 2.1.0 improved speed for geography. See <ulink url="http://boundlessgeo.com/2012/07/making-geography-faster/">Making Geography faster</ulink> for details.</para>
 		<para>Enhanced: 2.1.0 - support for curved geometries was introduced.</para>
+		<para>Enhanced: 2.2.0 - measurement on spheroid performed with GeographicLib for improved accuracy and robustness.</para>
 	  </refsection>
 
 	  <refsection>
@@ -2030,7 +2040,7 @@ FROM (SELECT
 	  <refsection>
 		<title>See Also</title>
 
-		<para><xref linkend="ST_3DDistance"/>, <xref linkend="ST_DWithin"/>, <xref linkend="ST_Distance_Sphere"/>, <xref linkend="ST_Distance_Spheroid"/>, <xref linkend="ST_MaxDistance" />, <xref linkend="ST_Transform" /></para>
+		<para><xref linkend="ST_3DDistance"/>, <xref linkend="ST_DWithin"/>, <xref linkend="ST_DistanceSphere"/>, <xref linkend="ST_Distance_Spheroid"/>, <xref linkend="ST_MaxDistance" />, <xref linkend="ST_Transform" /></para>
 	  </refsection>
 	</refentry>
 
@@ -2095,8 +2105,13 @@ The current implementation supports only vertices as the discrete locations. Thi
 
 	  <refsection>
 		<title>Examples</title>
+		    <para>For each building, find the parcel that best represents it. First we require the parcel intersect with the geometry.
+    	DISTINCT ON guarantees we get each building listed only once, the ORDER BY .. ST_HausdorffDistance gives us a preference of parcel that is most similar to the building.</para>
+		<programlisting>SELECT DISTINCT ON(buildings.gid) buildings.gid, parcels.parcel_id 
+   FROM buildings INNER JOIN parcels ON ST_Intersects(buildings.geom,parcels.geom) 
+     ORDER BY buildings.gid, ST_HausdorffDistance(buildings.geom, parcels.geom);</programlisting> 
 
-				<programlisting>postgis=# SELECT st_HausdorffDistance(
+				<programlisting>postgis=# SELECT ST_HausdorffDistance(
 				'LINESTRING (0 0, 2 0)'::geometry,
 				'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);
  st_hausdorffdistance
@@ -2135,11 +2150,9 @@ The current implementation supports only vertices as the discrete locations. Thi
   <refsection>
     <title>Description</title>
 
-    <para>Some useful description here.</para>
-
     <!-- optionally mention that this function uses indexes if appropriate -->
     <note>
-      <para>Returns the 2-dimensional maximum distance between two linestrings in
+      <para>Returns the 2-dimensional maximum distance between two geometries in
 		projected units. If g1 and g2 is the same geometry the function will return the distance between
 		the two vertices most far from each other in that geometry.</para>
     </note>
@@ -2149,6 +2162,7 @@ The current implementation supports only vertices as the discrete locations. Thi
   <refsection>
     <title>Examples</title>
 
+     <para>Basic furthest distance the point is to any part of the line</para>
 		<programlisting>postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry);
    st_maxdistance
 -----------------
@@ -2165,24 +2179,25 @@ postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 2, 2 2 )
   <!-- Optionally add a "See Also" section -->
   <refsection>
     <title>See Also</title>
-<para><xref linkend="ST_Distance"/>, <xref linkend="ST_LongestLine"/></para>
+<para><xref linkend="ST_Distance"/>, <xref linkend="ST_LongestLine"/>, <xref linkend="ST_DFullyWithin" /></para>
   </refsection>
 </refentry>
 
-<refentry id="ST_Distance_Sphere">
+<refentry id="ST_DistanceSphere">
 	  <refnamediv>
-		<refname>ST_Distance_Sphere</refname>
+		<refname>ST_DistanceSphere</refname>
 
 		<refpurpose>Returns minimum distance in meters between two lon/lat
-				geometries. Uses a spherical earth and radius of 6370986 meters.
-				Faster than ST_Distance_Spheroid <xref linkend="ST_Distance_Spheroid" />, but less
+				geometries. Uses a spherical earth and radius derived from the spheroid 
+        defined by the SRID.
+				Faster than ST_DistanceSpheroid <xref linkend="ST_Distance_Spheroid" />, but less
 				accurate. PostGIS versions prior to 1.5 only implemented for points.</refpurpose>
 	  </refnamediv>
 
 	  <refsynopsisdiv>
 		<funcsynopsis>
 		  <funcprototype>
-			<funcdef>float <function>ST_Distance_Sphere</function></funcdef>
+			<funcdef>float <function>ST_DistanceSphere</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></paramdef>
 			<paramdef><type>geometry </type> <parameter>geomlonlatB</parameter></paramdef>
 		  </funcprototype>
@@ -2193,21 +2208,20 @@ postgis=# SELECT ST_MaxDistance('POINT(0 0)'::geometry, 'LINESTRING ( 2 2, 2 2 )
 		<title>Description</title>
 
 		<para>Returns minimum distance in meters between two lon/lat
-				points. Uses a spherical earth and radius of 6370986 meters.
+				points. Uses a spherical earth and radius derived from the spheroid 
+        defined by the SRID.
 				Faster than <xref linkend="ST_Distance_Spheroid"/>, but less
 				accurate. PostGIS Versions prior to 1.5 only implemented for points.</para>
-		<note>
-			<para>This function currently does not look at the SRID of a geometry and will always assume its in WGS 84 long lat. Prior versions of this function only support points.</para>
-		</note>
 		
 		<para>Availability: 1.5 - support for other geometry types besides points was introduced. Prior versions only work with points.</para>
+		<para>Changed: 2.2.0 In prior versions this used to be called ST_Distance_Sphere</para>
 	  </refsection>
 
 
 	  <refsection>
 		<title>Examples</title>
 
-		<programlisting>SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,
+		<programlisting>SELECT round(CAST(ST_DistanceSphere(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,
 round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),
 		ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) As numeric),2) As dist_utm11_meters,
 round(CAST(ST_Distance(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)', 4326)) As numeric),5) As dist_degrees,
@@ -2232,7 +2246,7 @@ FROM
 
 	<refentry id="ST_Distance_Spheroid">
 	  <refnamediv>
-		<refname>ST_Distance_Spheroid</refname>
+		<refname>ST_DistanceSpheroid</refname>
 
 		<refpurpose>Returns the minimum distance between two lon/lat geometries given a
 			particular spheroid.
@@ -2242,7 +2256,7 @@ FROM
 	  <refsynopsisdiv>
 		<funcsynopsis>
 		  <funcprototype>
-			<funcdef>float <function>ST_Distance_Spheroid</function></funcdef>
+			<funcdef>float <function>ST_DistanceSpheroid</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>geomlonlatA</parameter></paramdef>
 			<paramdef><type>geometry </type> <parameter>geomlonlatB</parameter></paramdef>
 			<paramdef><type>spheroid </type> <parameter>measurement_spheroid</parameter></paramdef>
@@ -2261,6 +2275,7 @@ FROM
 		</note>
 		
 		<para>Availability: 1.5 - support for other geometry types besides points was introduced. Prior versions only work with points.</para>
+		<para>Changed: 2.2.0 In prior versions this used to be called ST_Distance_Spheroid</para>
 	  </refsection>
 
 
@@ -2268,9 +2283,9 @@ FROM
 		<title>Examples</title>
 
 		<programlisting>SELECT round(CAST(
-		ST_Distance_Spheroid(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)',4326), 'SPHEROID["WGS 84",6378137,298.257223563]')
+		ST_DistanceSpheroid(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)',4326), 'SPHEROID["WGS 84",6378137,298.257223563]')
 			As numeric),2) As dist_meters_spheroid,
-		round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters_sphere,
+		round(CAST(ST_DistanceSphere(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters_sphere,
 round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611),
 		ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) As numeric),2) As dist_utm11_meters
 FROM
@@ -2286,7 +2301,7 @@ FROM
 	  <refsection>
 		<title>See Also</title>
 
-		<para><xref linkend="ST_Distance" />, <xref linkend="ST_Distance_Sphere" /></para>
+		<para><xref linkend="ST_Distance" />, <xref linkend="ST_DistanceSphere" /></para>
 	  </refsection>
 	</refentry>
 
@@ -2414,7 +2429,7 @@ FROM
 		having the same SRID.</para>
 		
 		<para>For geography units are in meters and measurement is
-		defaulted to use_spheroid=true (measure around WGS 84 spheroid), for faster check, use_spheroid=false to measure along sphere.
+		defaulted to use_spheroid=true, for faster check, use_spheroid=false to measure along sphere.
 		</para>
 		<note>
 		  <para>This function call will automatically include a bounding box
@@ -2680,7 +2695,7 @@ t
 		<refnamediv>
 		  <refname>ST_Length</refname>
 
-		  <refpurpose>Returns the 2d length of the geometry if it is a linestring or multilinestring. geometry are in units of spatial reference and geography are in meters (default spheroid)</refpurpose>
+		  <refpurpose>Returns the 2D length of the geometry if it is a LineString or MultiLineString. geometry are in units of spatial reference and geography are in meters (default spheroid)</refpurpose>
 		</refnamediv>
 		<refsynopsisdiv>
 		  <funcsynopsis>
@@ -2698,9 +2713,12 @@ t
 		<refsection>
 			<title>Description</title>
 
-			<para>For geometry: Returns the cartesian 2D length of the geometry if it is a linestring, multilinestring, ST_Curve, ST_MultiCurve.  0 is returned for
-				areal geometries.  For areal geometries use ST_Perimeter. Geometry: Measurements are in the units of the
-				spatial reference system of the geometry. Geography: Units are in meters and also acts as a Perimeter function for areal geogs.</para>
+			<para>For geometry: Returns the 2D Cartesian length of the geometry if it is a LineString, MultiLineString, ST_Curve, ST_MultiCurve.  0 is returned for
+				areal geometries.  For areal geometries use <xref linkend="ST_Perimeter" />. For geometry types, units for length measures are specified by the
+				spatial reference system of the geometry.</para>
+			<para>For geography types, the calculations are performed using the inverse geodesic problem, where length units are in meters.
+				If PostGIS is compiled with PROJ version 4.8.0 or later, the spheroid is specified by the SRID, otherwise it is exclusive to WGS84.
+				If <varname>use_spheroid=false</varname>, then calculations will approximate a sphere instead of a spheroid.</para>
 
 			<para>Currently for geometry this is an alias for ST_Length2D, but this may change to support higher dimensions.</para>
 			<warning><para>Changed: 2.0.0 Breaking change -- in prior versions applying this to a MULTI/POLYGON of type geography would give you the perimeter of the POLYGON/MULTIPOLYGON.  In 2.0.0 
@@ -2709,13 +2727,13 @@ t
 			<para>&sfs_compliant; s2.1.5.1</para>
 			<para>&sqlmm_compliant; SQL-MM 3: 7.1.2, 9.3.4</para>
 			<para>Availability: 1.5.0 geography support was introduced in 1.5.</para>
-                        <para>&sfcgal_enhanced;</para>
+			<para>&sfcgal_enhanced;</para>
 		</refsection>
 
 		  <refsection>
 			<title>Geometry Examples</title>
-			<para>Return length in feet for line string. Note this is in feet because 2249 is
-				Mass State Plane Feet</para>
+			<para>Return length in feet for line string. Note this is in feet because EPSG:2249 is
+				Massachusetts State Plane Feet</para>
 			<programlisting>
 SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 2967450,743265 2967450,
 743265.625 2967416,743238 2967416)',2249));
@@ -2724,7 +2742,7 @@ st_length
  122.630744000095
 
 
---Transforming WGS 84 linestring to Massachusetts state plane meters
+--Transforming WGS 84 LineString to Massachusetts state plane meters
 SELECT ST_Length(
 	ST_Transform(
 		ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45, -72.1240 42.45666, -72.123 42.1546)'),
@@ -2747,8 +2765,7 @@ FROM (SELECT ST_GeographyFromText(
  As foo;
  length_spheroid  |  length_sphere
 ------------------+------------------
- 34310.5703627305 | 34346.2060960742
-(1 row)
+ 34310.5703627288 | 34346.2060960742
 			</programlisting>
 		  </refsection>
 		<refsection>
@@ -2820,8 +2837,8 @@ FROM (SELECT ST_GeographyFromText(
 	  <refsection>
 		<title>Examples</title>
 
-		<para>Return length in feet for a 3D cable. Note this is in feet because 2249 is
-				Mass State Plane Feet</para>
+		<para>Return length in feet for a 3D cable. Note this is in feet because EPSG:2249 is
+				Massachusetts State Plane Feet</para>
 		<programlisting>
 SELECT ST_3DLength(ST_GeomFromText('LINESTRING(743238 2967416 1,743238 2967450 1,743265 2967450 3,
 743265.625 2967416 3,743238 2967416 3)',2249));
@@ -2841,7 +2858,7 @@ ST_3DLength
 
 	<refentry id="ST_Length_Spheroid">
 	  <refnamediv>
-		<refname>ST_Length_Spheroid</refname>
+		<refname>ST_LengthSpheroid</refname>
 
 		<refpurpose>Calculates the 2D or 3D length of a linestring/multilinestring on an ellipsoid. This
 			is useful if the coordinates of the geometry are in
@@ -2851,7 +2868,7 @@ ST_3DLength
 	  <refsynopsisdiv>
 		<funcsynopsis>
 		  <funcprototype>
-			<funcdef>float <function>ST_Length_Spheroid</function></funcdef>
+			<funcdef>float <function>ST_LengthSpheroid</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef>
 			<paramdef><type>spheroid </type> <parameter>a_spheroid</parameter></paramdef>
 		  </funcprototype>
@@ -2874,6 +2891,8 @@ ST_3DLength
 		<literallayout>SPHEROID["GRS_1980",6378137,298.257222101]</literallayout>
 		<note><para>Will return 0 for anything that is not a MULTILINESTRING or LINESTRING</para></note>
 
+		<para>Availability: 1.2.2</para>
+		<para>Changed: 2.2.0 In prior versions this used to be called ST_Length_Spheroid and used to have a ST_3DLength_Spheroid alias</para>
 		<para>&Z_support;</para>
 	  </refsection>
 
@@ -2881,13 +2900,13 @@ ST_3DLength
 	  <refsection>
 		<title>Examples</title>
 
-		<programlisting>SELECT ST_Length_Spheroid( geometry_column,
+		<programlisting>SELECT ST_LengthSpheroid( geometry_column,
 			  'SPHEROID["GRS_1980",6378137,298.257222101]' )
 			  FROM geometry_table;
 
-SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,
-ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,
-ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2
+SELECT ST_LengthSpheroid( the_geom, sph_m ) As tot_len,
+ST_LengthSpheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,
+ST_LengthSpheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2
 			  FROM (SELECT ST_GeomFromText('MULTILINESTRING((-118.584 38.374,-118.583 38.5),
 	(-71.05957 42.3589 , -71.061 43))') As the_geom,
 CAST('SPHEROID["GRS_1980",6378137,298.257222101]' As spheroid) As sph_m)  as foo;
@@ -2896,9 +2915,9 @@ CAST('SPHEROID["GRS_1980",6378137,298.257222101]' As spheroid) As sph_m)  as foo
  85204.5207562955 | 13986.8725229309 | 71217.6482333646
 
  --3D
-SELECT ST_Length_Spheroid( the_geom, sph_m ) As tot_len,
-ST_Length_Spheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,
-ST_Length_Spheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2
+SELECT ST_LengthSpheroid( the_geom, sph_m ) As tot_len,
+ST_LengthSpheroid(ST_GeometryN(the_geom,1), sph_m) As len_line1,
+ST_LengthSpheroid(ST_GeometryN(the_geom,2), sph_m) As len_line2
 			  FROM (SELECT ST_GeomFromEWKT('MULTILINESTRING((-118.584 38.374 20,-118.583 38.5 30),
 	(-71.05957 42.3589 75, -71.061 43 90))') As the_geom,
 CAST('SPHEROID["GRS_1980",6378137,298.257222101]' As spheroid) As sph_m)  as foo;
@@ -2914,7 +2933,7 @@ CAST('SPHEROID["GRS_1980",6378137,298.257222101]' As spheroid) As sph_m)  as foo
 	  <refsection>
 		<title>See Also</title>
 
-		<para><xref linkend="ST_GeometryN" />, <xref linkend="ST_Length" />, <xref linkend="ST_3DLength_Spheroid" /></para>
+		<para><xref linkend="ST_GeometryN" />, <xref linkend="ST_Length" /></para>
 	  </refsection>
 	</refentry>
 
@@ -2952,7 +2971,7 @@ CAST('SPHEROID["GRS_1980",6378137,298.257222101]' As spheroid) As sph_m)  as foo
 
 		<literallayout>SPHEROID["GRS_1980",6378137,298.257222101]</literallayout>
 		<note><para>Will return 0 for anything that is not a MULTILINESTRING or LINESTRING</para></note>
-		<note><para>This is much like <xref linkend="ST_Length_Spheroid" /> and <xref linkend="ST_3DLength_Spheroid" /> except it will throw away the Z coordinate in calculations.</para></note>
+		<note><para>This is much like <xref linkend="ST_Length_Spheroid" /> except it will throw away the Z coordinate in calculations.</para></note>
 
 	  </refsection>
 
@@ -2993,53 +3012,7 @@ CAST('SPHEROID["GRS_1980",6378137,298.257222101]' As spheroid) As sph_m)  as foo
 	  <refsection>
 		<title>See Also</title>
 
-		<para><xref linkend="ST_GeometryN" />, <xref linkend="ST_Length_Spheroid" />, <xref linkend="ST_3DLength_Spheroid" /></para>
-	  </refsection>
-	</refentry>
-
-	<refentry id="ST_3DLength_Spheroid">
-	  <refnamediv>
-		<refname>ST_3DLength_Spheroid</refname>
-
-		<refpurpose>Calculates the length of a geometry on an ellipsoid,
-			taking the elevation into account. This is just an alias for ST_Length_Spheroid. </refpurpose>
-	  </refnamediv>
-
-	  <refsynopsisdiv>
-		<funcsynopsis>
-		  <funcprototype>
-			<funcdef>float <function>ST_3DLength_Spheroid</function></funcdef>
-			<paramdef><type>geometry </type> <parameter>a_linestring</parameter></paramdef>
-			<paramdef><type>spheroid </type> <parameter>a_spheroid</parameter></paramdef>
-		  </funcprototype>
-		</funcsynopsis>
-	  </refsynopsisdiv>
-
-	  <refsection>
-		<title>Description</title>
-
-		<para>Calculates the length of a geometry on an ellipsoid,
-			taking the elevation into account. This is just an alias
-			for ST_Length_Spheroid. </para>
-
-		<note><para>Changed: 2.0.0 In prior versions this used to return 0 for anything that is not a MULTILINESTRING or LINESTRING and in 2.0.0 on returns the perimeter of if given a polgon.</para></note>
-		<note><para>This function is just an alias for ST_Length_Spheroid. </para></note>
-		<para>&Z_support;</para>
-		<para>Changed: 2.0.0 In prior versions this used to be called ST_Length3d_Spheroid</para>
-	  </refsection>
-
-
-	  <refsection>
-		<title>Examples</title>
-
-		<programlisting>See ST_Length_Spheroid</programlisting>
-	  </refsection>
-
-	  <!-- Optionally add a "See Also" section -->
-	  <refsection>
-		<title>See Also</title>
-
-		<para><xref linkend="ST_GeometryN" />, <xref linkend="ST_Length" />, <xref linkend="ST_Length_Spheroid" /></para>
+		<para><xref linkend="ST_GeometryN" />, <xref linkend="ST_Length_Spheroid" /></para>
 	  </refsection>
 	</refentry>
 
@@ -3368,7 +3341,7 @@ FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a,
 		  <refname>ST_Perimeter</refname>
 
 		  <refpurpose>Return the length measurement of the boundary of an ST_Surface
-		  or ST_MultiSurface geometry or geography. (Polygon, Multipolygon).  geometry measurement is in units of spatial reference and geography is in meters.</refpurpose>
+		  or ST_MultiSurface geometry or geography. (Polygon, MultiPolygon).  geometry measurement is in units of spatial reference and geography is in meters.</refpurpose>
 		</refnamediv>
 		<refsynopsisdiv>
 		  <funcsynopsis>
@@ -3387,10 +3360,12 @@ FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a,
 		<refsection>
 			<title>Description</title>
 
-			<para>Returns the 2D perimeter of the geometry/geography if it is a ST_Surface, ST_MultiSurface (Polygon, Multipolygon).  0 is returned for
-				non-areal geometries.  For linestrings use ST_Length.  Measurements for geometry are in the units of the
-				spatial reference system of the geometry. Measurements for geography are in meters. If <varname>use_spheroid</varname> is set to false, then will
-				model earth as a sphere instead of a spheroid.</para>
+			<para>Returns the 2D perimeter of the geometry/geography if it is a ST_Surface, ST_MultiSurface (Polygon, MultiPolygon).  0 is returned for
+				non-areal geometries.  For linear geometries use <xref linkend="ST_Length" />.  For geometry types, units for perimeter measures are specified by the
+				spatial reference system of the geometry.</para>
+			<para>For geography types, the calculations are performed using the inverse geodesic problem, where perimeter units are in meters.
+				If PostGIS is compiled with PROJ version 4.8.0 or later, the spheroid is specified by the SRID, otherwise it is exclusive to WGS84.
+				If <varname>use_spheroid=false</varname>, then calculations will approximate a sphere instead of a spheroid.</para>
 
 			<para>Currently this is an alias for ST_Perimeter2D, but this may change to support higher dimensions.</para>
 
@@ -3401,8 +3376,8 @@ FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3)  As a,
 
 		<refsection>
 			<title>Examples: Geometry</title>
-			<para>Return perimeter in feet for polygon and multipolygon. Note this is in feet because 2249 is
-				Mass State Plane Feet</para>
+			<para>Return perimeter in feet for Polygon and MultiPolygon. Note this is in feet because EPSG:2249 is
+				Massachusetts State Plane Feet</para>
 			<programlisting>
 SELECT ST_Perimeter(ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,743265 2967450,
 743265.625 2967416,743238 2967416))', 2249));
@@ -3430,7 +3405,7 @@ st_perimeter
 		  </refsection>
 		  <refsection>
 			<title>Examples: Geography</title>
-			<para>Return perimeter in meters and feet for polygon and multipolygon. Note this is geography (WGS 84 long lat)</para>
+			<para>Return perimeter in meters and feet for Polygon and MultiPolygon. Note this is geography (WGS 84 long lat)</para>
 			<programlisting>
 SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog)/0.3048 As per_ft 
 FROM ST_GeogFromText('POLYGON((-71.1776848522251 42.3902896512902,-71.1776843766326 42.3903829478009,
@@ -3441,7 +3416,7 @@ FROM ST_GeogFromText('POLYGON((-71.1776848522251 42.3902896512902,-71.1776843766
 37.3790462565251 | 122.634666195949
 
 
--- Multipolygon example --
+-- MultiPolygon example --
 SELECT  ST_Perimeter(geog) As per_meters, ST_Perimeter(geog,false) As per_sphere_meters,  ST_Perimeter(geog)/0.3048 As per_ft 
 FROM ST_GeogFromText('MULTIPOLYGON(((-71.1044543107478 42.340674480411,-71.1044542869917 42.3406744369506,
 -71.1044553562977 42.340673886454,-71.1044543107478 42.340674480411)),
@@ -3640,9 +3615,8 @@ SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, 0 1
 		  <refsection>
 			<title>Description</title>
 
-			<para>Returns a <varname>POINT</varname> projected from a start point using an azimuth (bearing) measured in radians and distance measured in meters.</para>
-			<para>Distance, azimuth and projection are all aspects of the same operation, describing (or in the case of projection, constructing) the relationship between two points on the world.</para>
-			<para>The azimuth is sometimes called the heading or the bearing in navigation. It is measured relative to true north (azimuth zero). East is azimuth 90 (<varname>pi/2</varname>), south is azimuth 180 (<varname>pi</varname>), west is azimuth 270 (<varname>pi*1.5</varname>).</para>
+			<para>Returns a <varname>POINT</varname> projected along a geodesic from a start point using an azimuth (bearing) measured in radians and distance measured in meters. This is also called a direct geodesic problem.</para>
+			<para>The azimuth is sometimes called the heading or the bearing in navigation. It is measured relative to true north (azimuth zero). East is azimuth 90 (&#x03C0;/2), south is azimuth 180 (&#x03C0;), west is azimuth 270 (3&#x03C0;/2).</para>
 			<para>The distance is given in meters.</para>
 			
 			<para>Availability: 2.0.0</para>
@@ -3653,24 +3627,14 @@ SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, 0 1
 			<title>Example: Using degrees - projected point 100,000 meters and bearing 45 degrees </title>
 
 			<programlisting>SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, radians(45.0)));
-			  st_astext
-------------------------------------------
- POINT(0.63523102912532 0.63947233472882)
-(1 row)
-	</programlisting>
-		  </refsection>
-		  
-		  <refsection>
-			<title>Example: Using radians - projected point 100,000 meters and bearing pi/4 (45 degrees) </title>
 
-			<programlisting>SELECT ST_AsText(ST_Project('POINT(0 0)'::geography, 100000, pi()/4));
-			  st_astext
-------------------------------------------
- POINT(0.63523102912532 0.63947233472882)
+                 st_astext
+--------------------------------------------
+ POINT(0.635231029125537 0.639472334729198)
 (1 row)
-	</programlisting>
+      </programlisting>
 		  </refsection>
-
+		  
 		  <refsection>
 			<title>See Also</title>
 
@@ -3708,7 +3672,7 @@ SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, 0 1
 				<funcdef>text <function>ST_Relate</function></funcdef>
 				<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>
 				<paramdef><type>geometry </type> <parameter>geomB</parameter></paramdef>
-				<paramdef><type>int </type> <parameter>BoundaryNodeRule</parameter></paramdef>
+				<paramdef><type>integer </type> <parameter>BoundaryNodeRule</parameter></paramdef>
 			  </funcprototype>
 			</funcsynopsis>
 		</refsynopsisdiv>
@@ -3878,7 +3842,7 @@ SELECT mat.name, pat.name, ST_RelateMatch(mat.val, pat.val) As satisfied
 		If g1 and g2 are intersecting with more than one point the function will return a line with start
 		and end in the same point but it can be any of the intersecting points.
 		The line returned will always start in g1 and end in g2.
-		The length of the line this function returns will always be the same as st_distance returns for g1 and g2.	
+		The length of the line this function returns will always be the same as ST_Distance returns for g1 and g2.
 		</para>
 
 		<para>Availability: 1.5.0</para>
diff --git a/doc/reference_misc.xml b/doc/reference_misc.xml
index b53f143..b750843 100644
--- a/doc/reference_misc.xml
+++ b/doc/reference_misc.xml
@@ -528,9 +528,9 @@ find_srid
 	  </refsection>
 	</refentry>
 
-	<refentry id="ST_Mem_Size">
+	<refentry id="ST_MemSize">
 	  <refnamediv>
-		<refname>ST_Mem_Size</refname>
+		<refname>ST_MemSize</refname>
 
 		<refpurpose>Returns the amount of space (in bytes) the geometry takes.</refpurpose>
 	  </refnamediv>
@@ -538,7 +538,7 @@ find_srid
 	  <refsynopsisdiv>
 		<funcsynopsis>
 		  <funcprototype>
-			<funcdef>integer <function>ST_Mem_Size</function></funcdef>
+			<funcdef>integer <function>ST_MemSize</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>
 		  </funcprototype>
 		</funcsynopsis>
@@ -548,16 +548,18 @@ find_srid
 		<title>Description</title>
 
 		<para>Returns the amount of space (in bytes) the geometry takes. </para>
-		<para>This is a nice compliment to PostgreSQL built in functions pg_size_pretty, pg_relation_size, pg_total_relation_size.</para>
-		<note><para>pg_relation_size which gives the byte size of a table may return byte size lower than ST_Mem_Size. This is because
+		<para>This is a nice compliment to PostgreSQL built in functions pg_column_size, pg_size_pretty, pg_relation_size, pg_total_relation_size.</para>
+		<note><para>pg_relation_size which gives the byte size of a table may return byte size lower than ST_MemSize. This is because
 		pg_relation_size does not add toasted table contribution and large geometries are stored in TOAST tables.</para>
 		<para>pg_total_relation_size - includes, the table, the toasted tables, and the indexes.</para>
+		<para>pg_column_size returns how much space a geometry would take in a column considering compression, so may be lower than ST_MemSize</para>
 		</note>
 
 		<para>&Z_support;</para>
 		<para>&curve_support;</para>
 		<para>&P_support;</para>
 		<para>&T_support;</para>
+		<para>Changed: 2.2.0 name changed to ST_MemSize to follow naming convention.  In prior versions this function was called ST_Mem_Size, old name deprecated though still available.</para>
 	  </refsection>
 
 
@@ -566,10 +568,10 @@ find_srid
 
 		<programlisting>
 --Return how much byte space Boston takes up  in our Mass data set
-SELECT pg_size_pretty(SUM(ST_Mem_Size(the_geom))) as totgeomsum,
-pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN st_mem_size(the_geom) ELSE 0 END)) As bossum,
-CAST(SUM(CASE WHEN town = 'BOSTON' THEN st_mem_size(the_geom) ELSE 0 END)*1.00 /
-		SUM(st_mem_size(the_geom))*100 As numeric(10,2)) As perbos
+SELECT pg_size_pretty(SUM(ST_MemSize(the_geom))) as totgeomsum,
+pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 END)) As bossum,
+CAST(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(the_geom) ELSE 0 END)*1.00 /
+		SUM(ST_MemSize(the_geom))*100 As numeric(10,2)) As perbos
 FROM towns;
 
 totgeomsum	bossum	perbos
@@ -577,14 +579,14 @@ totgeomsum	bossum	perbos
 1522 kB		30 kB	1.99
 
 
-SELECT ST_Mem_Size(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 150406)'));
+SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 150406)'));
 
 ---
 73
 
 --What percentage of our table is taken up by just the geometry
-SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, sum(ST_Mem_Size(the_geom)) As geomsize,
-sum(ST_Mem_Size(the_geom))*1.00/pg_total_relation_size('public.neighborhoods')*100 As pergeom
+SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, sum(ST_MemSize(the_geom)) As geomsize,
+sum(ST_MemSize(the_geom))*1.00/pg_total_relation_size('public.neighborhoods')*100 As pergeom
 FROM neighborhoods;
 fulltable_size geomsize  pergeom
 ------------------------------------------------
@@ -602,7 +604,7 @@ fulltable_size geomsize  pergeom
 
 	<refentry id="ST_Point_Inside_Circle">
 	  <refnamediv>
-		<refname>ST_Point_Inside_Circle</refname>
+		<refname>ST_PointInsideCircle</refname>
 
 		<refpurpose>Is the point geometry insert circle defined by center_x, center_y, radius</refpurpose>
 	  </refnamediv>
@@ -610,7 +612,7 @@ fulltable_size geomsize  pergeom
 	  <refsynopsisdiv>
 		<funcsynopsis>
 		  <funcprototype>
-			<funcdef>boolean <function>ST_Point_Inside_Circle</function></funcdef>
+			<funcdef>boolean <function>ST_PointInsideCircle</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>a_point</parameter></paramdef>
 			<paramdef><type>float </type> <parameter>center_x</parameter></paramdef>
 			<paramdef><type>float </type> <parameter>center_y</parameter></paramdef>
@@ -623,18 +625,21 @@ fulltable_size geomsize  pergeom
 		<title>Description</title>
 
 		<para>The syntax for this functions is
-			point_inside_circle(<geometry>,<circle_center_x>,<circle_center_y>,<radius>).
+			ST_PointInsideCircle(<geometry>,<circle_center_x>,<circle_center_y>,<radius>).
 			Returns the true if the geometry is a point and is inside the
 			circle. Returns false otherwise.</para>
 		<note><para>This only works for points as the name suggests</para></note>
+
+		<para>Availability: 1.2</para>
+		<para>Changed: 2.2.0 In prior versions this used to be called ST_Point_Inside_Circle</para>
 	  </refsection>
 
 
 	  <refsection>
 		<title>Examples</title>
 
-		<programlisting>SELECT ST_Point_Inside_Circle(ST_Point(1,2), 0.5, 2, 3);
- st_point_inside_circle
+		<programlisting>SELECT ST_PointInsideCircle(ST_Point(1,2), 0.5, 2, 3);
+ st_pointinsidecircle
 ------------------------
  t
 </programlisting>
diff --git a/doc/reference_operator.xml b/doc/reference_operator.xml
index 9c2e63b..812f173 100644
--- a/doc/reference_operator.xml
+++ b/doc/reference_operator.xml
@@ -1064,13 +1064,12 @@ select 'LINESTRING(0 0, 1 1)'::geometry ~= 'LINESTRING(0 1, 1 0)'::geometry as e
 		  </refsection>
 		</refentry>
 		
-		<refentry id="geometry_distance_centroid">
+		<refentry id="geometry_distance_knn">
 		  <refnamediv>
 			<refname><-></refname>
 
 			<refpurpose>
-Returns the 2D distance between the centroids of A and B bounding
-boxes.
+Returns the 2D distance between A and B.
 			</refpurpose>
 		  </refnamediv>
 
@@ -1091,6 +1090,22 @@ boxes.
 				  <parameter>B</parameter>
 				</paramdef>
 			  </funcprototype>
+			  
+			   <funcprototype>
+				<funcdef>double precision <function><-></function></funcdef>
+
+				<paramdef>
+				  <type>geography </type>
+
+				  <parameter>A</parameter>
+				</paramdef>
+
+				<paramdef>
+				  <type>geography </type>
+
+				  <parameter>B</parameter>
+				</paramdef>
+			  </funcprototype>
 			</funcsynopsis>
 		  </refsynopsisdiv>
 
@@ -1098,18 +1113,21 @@ boxes.
 			<title>Description</title>
 
 			<para>
-The <varname><-></varname> operator returns the 2D distance between the
-centroids of the bounding boxes of two geometries.  Useful for doing
-nearest neighbor <emphasis role="strong">approximate</emphasis> distance
-ordering.</para>
-
-			<note><para>This operand will make use of 2D GiST indexes that may be available on the
-			  geometries.  It is different from other operators that use spatial indexes in that the spatial index is only used when the operator
-			  is in the ORDER BY clause.</para></note>
+The <varname><-></varname> operator returns the 2D distance between
+two geometries.  Used in the "ORDER BY" clause provides index-assisted
+nearest-neighbor result sets.  For PostgreSQL below 9.5 only gives
+centroid distance of bounding boxes and for PostgreSQL 9.5+, does true
+KNN distance search giving true distance between geometries, and distance
+sphere for geographies.
+      </para>
+
+			<note><para>This operand will make use of 2D GiST indexes that may be available on the geometries.  It is different from other operators that use spatial indexes in that the spatial index is only used when the operator is in the ORDER BY clause.</para></note>
 			<note><para>Index only kicks in if one of the geometries is a constant (not in a subquery/cte).  e.g. 'SRID=3005;POINT(1011102 450541)'::geometry instead of a.geom</para></note>
 			<para>Refer to <ulink url="http://workshops.opengeo.org/postgis-intro/knn.html">OpenGeo workshop: Nearest-Neighbour Searching</ulink> for real live example.</para>
 
-			 <para>Availability: 2.0.0 -- KNN only available for PostgreSQL 9.1+</para>
+			 <para>Enhanced: 2.2.0 -- True KNN ("K nearest neighbor") behavior for geometry and geography for PostgreSQL 9.5+. Note for geography KNN is based on sphere rather than spheroid.  For PostgreSQL 9.4 and below, geography support is new but only supports centroid box.</para>
+			 <para>Changed: 2.2.0 -- For PostgreSQL 9.5 users, old Hybrid syntax may be slower, so you'll want to get rid of that hack if you are running your code only on PostGIS 2.2+ 9.5+.  See examples below.</para>
+			 <para>Availability: 2.0.0 -- Weak KNN provides nearest neighbors based on geometry centroid distances instead of true distances. Exact results for points, inexact for all other types. Available for PostgreSQL 9.1+</para>
 			 	
 		
 		  </refsection>
@@ -1144,23 +1162,23 @@ ORDER BY geom <-> 'SRID=3005;POINT(1011102 450541)'::geometry limit 10;]]>
         d         | edabbr | vaabbr
 ------------------+--------+--------
                 0 | ALQ    | 128
- 5579.67450712005 | ALQ    | 001
  5541.57712511724 | ALQ    | 129A
+ 5579.67450712005 | ALQ    | 001
+  6083.4207708641 | ALQ    | 131
+  7691.2205404848 | ALQ    | 003
+ 7900.75451037313 | ALQ    | 122
  8694.20710669982 | ALQ    | 129B
  9564.24289057111 | ALQ    | 130
-  6083.4207708641 | ALQ    | 131
   12089.665931705 | ALQ    | 127
-  24795.264503022 | ALQ    | 124
- 24587.6584922302 | ALQ    | 123
- 26764.2555463114 | ALQ    | 125
+ 18472.5531479404 | ALQ    | 002
 (10 rows)
 </programlisting>
 <para>
-Note the misordering in the actual distances and the different entries that actually show up in the top 10.
+If you run "EXPLAIN ANALYZE" on the two queries you would see a performance improvement for the second.
 </para>
 
 <para>
-Finally the hybrid:
+For users running with PostgreSQL < 9.5, use a hybrid query to find the true nearest neighbors. First a CTE query using the index-assisted KNN, then an exact query to get correct ordering:
 </para>
 <programlisting><![CDATA[WITH index_query AS (
   SELECT ST_Distance(geom, 'SRID=3005;POINT(1011102 450541)'::geometry) as d,edabbr, vaabbr
@@ -1191,13 +1209,93 @@ Finally the hybrid:
 			<para><xref linkend="ST_DWithin" />, <xref linkend="ST_Distance" />, <xref linkend="geometry_distance_box" /></para>
 		  </refsection>
 		</refentry>
+
+		<refentry id="geometry_distance_cpa">
+		  <refnamediv>
+			<refname>|=|</refname>
+
+			<refpurpose>
+Returns the distance between A and B trajectories at their closest point of approach.
+			</refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>double precision <function>|=|</function></funcdef>
+
+				<paramdef>
+				  <type>geometry </type>
+
+				  <parameter>A</parameter>
+				</paramdef>
+
+				<paramdef>
+				  <type>geometry </type>
+
+				  <parameter>B</parameter>
+				</paramdef>
+			  </funcprototype>
+
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+			<para>
+The <varname>|=|</varname> operator returns the 3D distance between
+two trajectories (See <xref linkend="ST_IsValidTrajectory" />).
+This is the same as <xref linkend="ST_DistanceCPA" /> but as an operator
+it can be used for doing nearest neightbor searches using an N-dimensional
+index (requires PostgreSQL 9.5.0 or higher).
+      </para>
+
+			<note><para>This operand will make use of ND GiST indexes that may be available on the geometries.  It is different from other operators that use spatial indexes in that the spatial index is only used when the operator is in the ORDER BY clause.</para></note>
+			<note><para>Index only kicks in if one of the geometries is a constant (not in a subquery/cte).  e.g. 'SRID=3005;LINESTRINGM(0 0 0,0 0 1)'::geometry instead of a.geom</para></note>
+
+			 <para>Availability: 2.2.0. Index-supported only available for PostgreSQL 9.5+</para>
+
+		  </refsection>
+
+		  <refsection>
+			<title>Examples</title>
+<programlisting>
+-- Save a literal query trajectory in a psql variable...
+\set qt 'ST_AddMeasure(ST_MakeLine(ST_MakePointM(-350,300,0),ST_MakePointM(-410,490,0)),10,20)'
+-- Run the query !
+SELECT track_id, dist FROM (
+  SELECT track_id, ST_DistanceCPA(tr,:qt) dist
+  FROM trajectories
+  ORDER BY tr |=| :qt
+  LIMIT 5
+) foo;
+ track_id        dist
+----------+-------------------
+      395 | 0.576496831518066
+      380 |  5.06797130410151
+      390 |  7.72262293958322
+      385 |   9.8004461358071
+      405 |  10.9534397988433
+(5 rows)
+</programlisting>
+		  </refsection>
+		  <refsection>
+			<title>See Also</title>
+			<para>
+<xref linkend="ST_DistanceCPA" />,
+<xref linkend="ST_ClosestPointOfApproach" />,
+<xref linkend="ST_IsValidTrajectory" />
+      </para>
+		  </refsection>
+		</refentry>
 		
 		<refentry id="geometry_distance_box">
 		  <refnamediv>
 			<refname><#></refname>
 
 			<refpurpose>
-Returns the 2D distance between bounding boxes of 2 geometries.
+Returns the 2D distance between A and B bounding boxes.
 			</refpurpose>
 		  </refnamediv>
 
@@ -1268,7 +1366,129 @@ SELECT b.tlid, b.mtfcc,
 		  </refsection>
 		  <refsection>
 			<title>See Also</title>
-			<para><xref linkend="ST_DWithin" />, <xref linkend="ST_Distance" />, <xref linkend="geometry_distance_centroid" /></para>
+			<para><xref linkend="ST_DWithin" />, <xref linkend="ST_Distance" />, <xref linkend="geometry_distance_knn" /></para>
+		  </refsection>
+		</refentry>
+
+		<refentry id="geometry_distance_centroid_nd">
+		  <refnamediv>
+			<refname><<->></refname>
+
+			<refpurpose>
+Returns the n-D distance between the centroids of A and B bounding
+boxes.
+			</refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>double precision <function><<->></function></funcdef>
+
+				<paramdef>
+				  <type>geometry </type>
+
+				  <parameter>A</parameter>
+				</paramdef>
+
+				<paramdef>
+				  <type>geometry </type>
+
+				  <parameter>B</parameter>
+				</paramdef>
+			  </funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+			<para>
+The <varname><<->></varname> operator returns the n-D (euclidean)
+distance between the centroids of the bounding boxes of two geometries. 
+Useful for doing nearest neighbor
+<emphasis role="strong">approximate</emphasis> distance ordering.
+      </para>
+
+			<note><para>
+This operand will make use of n-D GiST indexes that may be available on
+the geometries.  It is different from other operators that use spatial
+indexes in that the spatial index is only used when the operator is in
+the ORDER BY clause.
+      </para></note>
+			<note><para>
+Index only kicks in if one of the geometries is a constant (not in a
+subquery/cte).  e.g. 'SRID=3005;POINT(1011102 450541)'::geometry instead
+of a.geom
+      </para></note>
+
+			 <para>Availability: 2.2.0 -- KNN only available for PostgreSQL 9.1+</para>
+			 	
+		
+		  </refsection>
+
+		  <refsection>
+			<title>See Also</title>
+			<para>
+<xref linkend="geometry_distance_box_nd" />,
+<xref linkend="geometry_distance_knn" />
+      </para>
+		  </refsection>
+		</refentry>
+
+		<refentry id="geometry_distance_box_nd">
+		  <refnamediv>
+			<refname><<#>></refname>
+
+			<refpurpose>
+Returns the n-D distance between A and B bounding boxes.
+			</refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>double precision <function><<#>></function></funcdef>
+
+				<paramdef>
+				  <type>geometry </type>
+
+				  <parameter>A</parameter>
+				</paramdef>
+
+				<paramdef>
+				  <type>geometry </type>
+
+				  <parameter>B</parameter>
+				</paramdef>
+			  </funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+			<para>The <varname><<#>></varname> operator returns distance between two floating point bounding boxes, possibly reading them from a spatial index (PostgreSQL 9.1+ required).   Useful for doing nearest neighbor <emphasis role="strong">approximate</emphasis> distance ordering.</para>
+
+			<note><para>This operand will make use of any indexes that may be available on the
+			  geometries.  It is different from other operators that use spatial indexes in that the spatial index is only used when the operator
+			  is in the ORDER BY clause.</para></note>
+			<note><para>
+Index only kicks in if one of the geometries is a constant e.g. ORDER BY
+(ST_GeomFromText('POINT(1 2)') <<#>> geom)  instead of g1.geom
+<<#>>.
+      </para></note>
+
+			 <para>Availability: 2.2.0 -- KNN only available for PostgreSQL 9.1+</para>
+		
+		  </refsection>
+
+		  <refsection>
+			<title>See Also</title>
+			<para>
+<xref linkend="geometry_distance_centroid_nd" />,
+<xref linkend="geometry_distance_box" />
+      </para>
 		  </refsection>
 		</refentry>
 
diff --git a/doc/reference_output.xml b/doc/reference_output.xml
index d1f46fd..f08070b 100644
--- a/doc/reference_output.xml
+++ b/doc/reference_output.xml
@@ -99,8 +99,9 @@
 		  <refsection>
 			<title>See Also</title>
 			<para>
-<xref linkend="ST_GeomFromWKB" />
+<xref linkend="ST_GeomFromWKB" />,
 <xref linkend="ST_AsEWKB" />,
+<xref linkend="ST_AsTWKB" />,
 <xref linkend="ST_AsText" />,
 			</para>
 		  </refsection>
@@ -247,7 +248,11 @@ CIRCULARSTRING(220268 150415 1,220227 150505 2,220227 150406 3)
 		  <!-- Optionally add a "See Also" section -->
 		  <refsection>
 			<title>See Also</title>
-			<para><xref linkend="ST_AsBinary" /><xref linkend="ST_AsEWKB" /><xref linkend="ST_AsText" />, <xref linkend="ST_GeomFromEWKT" /></para>
+			<para>
+<xref linkend="ST_AsBinary" />,
+<xref linkend="ST_AsEWKB" />,
+<xref linkend="ST_AsText" />,
+<xref linkend="ST_GeomFromEWKT" /></para>
 		  </refsection>
 	</refentry>
 	<refentry id="ST_AsGeoJSON">
@@ -367,7 +372,6 @@ st_asgeojson
 
 	  <refsynopsisdiv>
 		<funcsynopsis>
-
 			<funcprototype>
 				<funcdef>text <function>ST_AsGML</function></funcdef>
 				<paramdef><type>geometry </type> <parameter>geom</parameter></paramdef>
@@ -777,11 +781,29 @@ SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0
 
 		<para>Returns a geometry as an X3D xml formatted node element  <ulink url="http://www.web3d.org/standards/number/19776-1">http://www.web3d.org/standards/number/19776-1</ulink>.  If <varname>maxdecimaldigits</varname> (precision) is not specified then defaults to 15. </para>
 		<note>
-		    <para>There are various options for translating PostGIS geometries to X3D since X3D geometry types don't map directly to PostGIS geometry types and some newer X3D types that might be better mappings we ahve avoided since most rendering tools don't currently support them.  
+		    <para>There are various options for translating PostGIS geometries to X3D since X3D geometry types don't map directly to PostGIS geometry types and some newer X3D types that might be better mappings we have avoided since most rendering tools don't currently support them.  
 		        These are the mappings we have settled on.  Feel free to post a bug ticket if you have thoughts on the idea or ways we can allow people to denote their preferred mappings.</para>
 		    <para>Below is how we currently map PostGIS 2D/3D types to X3D types</para>
 		</note>
 		
+        <para>The 'options' argument is a bitfield. For PostGIS 2.2+, this is used to denote whether to represent coordinates with X3D GeoCoordinates Geospatial node and also whether to flip the x/y axis.  By default, <code>ST_AsX3D</code> outputs in database form (long,lat or X,Y), but X3D default of lat/lon, y/x may be preferred.</para>
+       
+        <itemizedlist>
+            <listitem>
+              <para>0: X/Y in database order (e.g. long/lat = X,Y is standard database order), default value, and non-spatial coordinates (just regular old Coordinate tag).</para>
+            </listitem>
+        
+            <listitem>
+              <para>1: Flip X and Y.  If used in conjunction with the GeoCoordinate option switch, then output will be default "latitude_first" and coordinates will be flipped as well.</para>
+            </listitem>
+        
+            <listitem>
+              <para>2: Output coordinates in GeoSpatial GeoCoordinates.  This option will throw an error if geometries are not in WGS 84 long lat (srid: 4326). This is currenlty the only GeoCoordinate type supported.  <ulink url="http://www.web3d.org/documents/specifications/19775-1/V3.2/Part01/components/geodata.html#Specifyingaspatialreference">Refer to X3D specs specifying a spatial reference system.</ulink>. Default output will be <code>GeoCoordinate geoSystem='"GD" "WE" "longitude_f [...]
+              you prefer the X3D default of  <code>GeoCoordinate geoSystem='"GD" "WE" "latitude_first"'</code> use <code>(2 + 1)</code> = <code>3</code> </para>
+            </listitem>
+        </itemizedlist>
+        
+		
 		<informaltable>
 				<tgroup cols="3">
 				    	<thead>
@@ -829,7 +851,8 @@ SELECT ST_AsGML(3, ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0
 		<para>Lots of advancements happening in 3D space particularly with <ulink url="http://www.web3d.org/x3d/wiki/index.php/X3D_and_HTML5#Goals:_X3D_and_HTML5">X3D Integration with HTML5</ulink></para>
 		<para>There is also a nice open source X3D viewer you can use to view rendered geometries. Free Wrl <ulink url="http://freewrl.sourceforge.net/">http://freewrl.sourceforge.net/</ulink> binaries available for Mac, Linux, and Windows. Use the FreeWRL_Launcher packaged to view the geometries.</para>
 		<para>Also check out <ulink url="https://github.com/robe2/postgis_x3d_viewer">PostGIS minimalist X3D viewer</ulink>  that utilizes this function and <ulink url="http://www.x3dom.org/">x3dDom html/js open source toolkit</ulink>.</para>
-		<para>Availability: 2.0.0: ISO-IEC-19776-1.2-X3DEncodings-XML</para>	
+		<para>Availability: 2.0.0: ISO-IEC-19776-1.2-X3DEncodings-XML</para>
+		<para>Enhanced: 2.2.0: Support for GeoCoordinates and axis (x/y, long/lat) flipping.  Look at options for details.</para>	
 		<!-- Optionally mention 3d support -->
 		<para>&Z_support;</para>
         <!-- Optionally mention supports Polyhedral Surface  -->
@@ -1062,11 +1085,7 @@ F000000000000000000000000000000000000000000000000');
 			  <funcprototype>
 				<funcdef>text <function>ST_AsLatLonText</function></funcdef>
 				<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef>
-			  </funcprototype>
-			  <funcprototype>
-				<funcdef>text <function>ST_AsLatLonText</function></funcdef>
-				<paramdef><type>geometry </type> <parameter>pt</parameter></paramdef>
-				<paramdef><type>text </type> <parameter>format</parameter></paramdef>
+				<paramdef><type>text </type> <parameter>format=''</parameter></paramdef>
 			  </funcprototype>
 			</funcsynopsis>
 		  </refsynopsisdiv>
@@ -1149,4 +1168,114 @@ SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));
 		  <!-- Optionally add a "See Also" section -->
 	</refentry>
 
+	<refentry id="ST_AsTWKB">
+		  <refnamediv>
+			<refname>ST_AsTWKB</refname>
+			<refpurpose>Returns the geometry as TWKB, aka "Tiny Well-Known Binary"</refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>bytea <function>ST_AsTWKB</function></funcdef>
+				<paramdef><type>geometry </type> <parameter>g1</parameter></paramdef>
+				<paramdef><type>integer </type> <parameter>decimaldigits_xy=0</parameter></paramdef>
+				<paramdef><type>integer </type> <parameter>decimaldigits_z=0</parameter></paramdef>
+				<paramdef><type>integer </type> <parameter>decimaldigits_m=0</parameter></paramdef>
+				<paramdef><type>boolean </type> <parameter>include_sizes=false</parameter></paramdef>
+				<paramdef><type>boolean </type> <parameter>include_bounding boxes=false</parameter></paramdef>
+			  </funcprototype>
+			  <funcprototype>
+				<funcdef>bytea <function>ST_AsTWKB</function></funcdef>
+				<paramdef><type>geometry[] </type> <parameter>geometries</parameter></paramdef>
+				<paramdef><type>bigint[] </type> <parameter>unique_ids</parameter></paramdef>
+				<paramdef><type>integer </type> <parameter>decimaldigits_xy=0</parameter></paramdef>
+				<paramdef><type>integer </type> <parameter>decimaldigits_z=0</parameter></paramdef>
+				<paramdef><type>integer </type> <parameter>decimaldigits_m=0</parameter></paramdef>
+				<paramdef><type>boolean </type> <parameter>include_sizes=false</parameter></paramdef>
+				<paramdef><type>boolean </type> <parameter>include_bounding_boxes=false</parameter></paramdef>
+			  </funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+		  <refsection>
+			<title>Description</title>
+			<para>Returns the geometry in TWKB (Tiny Well-Known Binary) format. TWKB is a <ulink url="https://github.com/TWKB/Specification/blob/master/twkb.md">compressed binary format</ulink> with a focus on minimizing the size of the output. </para>
+			<para>The decimal digits parameters control how much precision is stored in the output. By default, values are rounded to the nearest unit before encoding. If you want to transfer more precision, increase the number. For example, a value of 1 implies that the first digit to the right of the decimal point will be preserved.</para>
+			<para>The sizes and bounding boxes parameters control whether optional information about the encoded length of the object and the bounds of the object are included in the output. By default they are not. Do not turn them on unless your client software has a use for them, as they just use up space (and saving space is the point of TWKB).</para>
+			<para>The array-input form of the function is used to convert a collection of geometries and unique identifiers into a TWKB collection that preserves the identifiers. This is useful for clients that expect to unpack a collection and then access further information about the objects inside. You can create the arrays using the <ulink url="http://www.postgresql.org/docs/9.4/static/functions-aggregate.html">array_agg</ulink> function. The other parameters operate the same as for the simpl [...]
+			<note>
+			  <para>The format specification is available online at <ulink url="https://github.com/TWKB/Specification">https://github.com/TWKB/Specification</ulink>, and code for building a JavaScript client can be found at <ulink url="https://github.com/TWKB/twkb.js">https://github.com/TWKB/twkb.js</ulink>.</para>
+			</note>		
+
+			<para>Availability: 2.2.0</para>
+		  </refsection>
+
+
+		  <refsection>
+			<title>Examples</title>
+<programlisting>
+SELECT ST_AsTWKB('LINESTRING(1 1,5 5)'::geometry);
+                 st_astwkb                  
+--------------------------------------------
+\x02000202020808
+
+</programlisting>
+<para>To create an aggregate TWKB object including identifiers aggregate the desired geometries and objects first, using "array_agg()", then call the appropriate TWKB function.
+</para>
+<programlisting>
+SELECT ST_AsTWKB(array_agg(geom), array_agg(gid)) FROM mytable;
+                 st_astwkb                  
+--------------------------------------------
+\x040402020400000202
+</programlisting>
+
+		  </refsection>
+
+		  <refsection>
+			<title>See Also</title>
+			<para><xref linkend="ST_AsBinary" />, <xref linkend="ST_AsEWKB" />, <xref linkend="ST_AsEWKT" />, <xref linkend="ST_GeomFromText" /></para>
+		  </refsection>
+	</refentry>
+
+
+
+<refentry id="ST_AsEncodedPolyline">
+    <refnamediv>
+    <refname>ST_AsEncodedPolyline</refname>
+    <refpurpose>Returns an Encoded Polyline from a LineString geometry.</refpurpose>
+    </refnamediv>
+
+    <refsynopsisdiv>
+    <funcsynopsis>
+      <funcprototype>
+      <funcdef>text <function>ST_AsEncodedPolyline</function></funcdef>
+      <paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>
+      <paramdef choice="opt"><type>integer </type> <parameter>precision=5</parameter></paramdef>
+      </funcprototype>
+    </funcsynopsis>
+    </refsynopsisdiv>
+
+    <refsection>
+    <title>Description</title>
+
+    <para>Returns the geometry as an Encoded Polyline.</para>
+
+
+    <para>Availability: 2.2.0</para>
+    </refsection>
+
+    <refsection>
+    <title>Examples</title>
+<programlisting>
+ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)'));
+--result--
+|_p~iF~ps|U_ulLnnqC_mqNvxq`@
+</programlisting>
+</refsection>
+    <!-- Optionally add a "See Also" section -->
+    <refsection>
+    <title>See Also</title>
+    <para><xref linkend="ST_LineFromEncodedPolyline" /></para>
+    </refsection>
+</refentry>
   </sect1>
diff --git a/doc/reference_processing.xml b/doc/reference_processing.xml
index 2d42ffc..87907e2 100644
--- a/doc/reference_processing.xml
+++ b/doc/reference_processing.xml
@@ -5,10 +5,9 @@
 			<refnamediv>
 				<refname>ST_Buffer</refname>
 
-				<refpurpose>(T) For geometry: Returns a geometry that represents all points whose distance
-			from this Geometry is less than or equal to distance. Calculations
-			are in the Spatial Reference System of this Geometry. For geography: Uses a planar transform wrapper.  Introduced in 1.5 support for
-			different end cap and mitre settings to control shape. buffer_style options: quad_segs=#,endcap=round|flat|square,join=round|mitre|bevel,mitre_limit=#.#
+				<refpurpose>
+Returns a geometry covering all points within a given distance
+from the input geometry.
 			</refpurpose>
 			</refnamediv>
 
@@ -365,6 +364,57 @@ FROM (SELECT ST_Buffer(
 			this function with standard OGC interface</para>
 		  </refsection>
 	</refentry>
+
+	<refentry id="ST_ClipByBox2D">
+	  <refnamediv>
+		<refname>ST_ClipByBox2D</refname>
+		<refpurpose>Returns the portion of a geometry falling within a rectangle.</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+			<funcprototype>
+				<funcdef>geometry <function>ST_ClipByBox2D</function></funcdef>
+				<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>
+				<paramdef><type>box2d</type> <parameter>box</parameter></paramdef>
+			</funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+    <para>
+Clips a geometry by a 2D box in a fast but possibly dirty way. The output
+geometry is not guaranteed to be valid (self-intersections for a polygon
+may be introduced). Topologically invalid input geometries do not result
+in exceptions being thrown.
+    </para>
+
+		<para>Performed by the GEOS module.</para>
+		<note><para>Requires GEOS 3.5.0+</para></note>
+
+		<para>Availability: 2.2.0 - requires GEOS >= 3.5.0.</para>
+
+	  </refsection>
+
+	  <refsection>
+		<title>Examples</title>
+			<programlisting>
+-- Rely on implicit cast from geometry to box2d for the second parameter
+SELECT ST_ClipByBox2D(the_geom, ST_MakeEnvelope(0,0,10,10)) FROM mytab;
+      </programlisting>
+	  </refsection>
+	  <refsection>
+		<title>See Also</title>
+		<para>
+<xref linkend="ST_Intersection" />,
+<xref linkend="ST_MakeBox2D" />,
+<xref linkend="ST_MakeEnvelope" />
+    </para>
+	  </refsection>
+	</refentry>
+
 	<refentry id="ST_Collect">
 	  <refnamediv>
 		<refname>ST_Collect</refname>
@@ -1537,10 +1587,10 @@ SELECT ST_AsEWKT(geom) As the_geom, path
 	  <refsection>
 		<title>Description</title>
 		<para>Returns a version of the given geometry with X and Y axis flipped.</para>
+		<para>Availability: 2.0.0</para>
 		<para>&curve_support;</para>
 	  	<para>&Z_support;</para>
 	  	<para>&M_support;</para>
-		<para>Availability: 2.0.0</para>
 		<para>&P_support;</para>
 		<para>&T_support;</para>
 	  </refsection>
@@ -1555,14 +1605,81 @@ POINT(2 1)
 		 ]]></programlisting>
 	  </refsection>
 
+	  <!-- Optionally add a "See Also" section -->
+	  <refsection>
+		<title>See Also</title>
+		<para> <xref linkend="ST_SwapOrdinates" /> </para>
+	  </refsection>
+
+	</refentry>
+
+	<refentry id="ST_SwapOrdinates">
+	  <refnamediv>
+		<refname>ST_SwapOrdinates</refname>
+		<refpurpose>Returns a version of the given geometry with
+				given ordinate values swapped.
+    </refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>geometry <function>ST_SwapOrdinates</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>
+			<paramdef><type>cstring</type> <parameter>ords</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+		<para>
+Returns a version of the given geometry with given ordinates swapped.
+    </para>
+		<para>
+The <varname>ords</varname> parameter is a 2-characters string naming
+the ordinates to swap. Valid names are: x,y,z and m.
+    </para>
+		<para>Availability: 2.2.0</para>
+		<para>&curve_support;</para>
+	  	<para>&Z_support;</para>
+	  	<para>&M_support;</para>
+		<para>&P_support;</para>
+		<para>&T_support;</para>
+	  </refsection>
+
+	  <refsection>
+		<title>Example</title>
+		<programlisting><![CDATA[
+-- Scale M value by 2
+SELECT ST_AsText(
+  ST_SwapOrdinates(
+    ST_Scale(
+      ST_SwapOrdinates(g,'xm'),
+      2, 1
+    ),
+  'xm')
+) FROM ( SELECT 'POINT ZM (0 0 0 2)'::geometry g ) foo;
+     st_astext
+--------------------
+ POINT ZM (0 0 0 4)
+		 ]]></programlisting>
+	  </refsection>
+
+	  <!-- Optionally add a "See Also" section -->
+	  <refsection>
+		<title>See Also</title>
+		<para> <xref linkend="ST_FlipCoordinates" /> </para>
+	  </refsection>
+
 	</refentry>
 
 	<refentry id="ST_Intersection">
 		<refnamediv>
 			<refname>ST_Intersection</refname>
 
-			<refpurpose>(T) Returns a geometry that represents the shared portion of geomA and geomB.  The geography implementation
-					does a transform to geometry to do the intersection and then transform back to WGS84.
+			<refpurpose>
+Returns a geometry that represents the shared portion of geomA and geomB.
 			</refpurpose>
 		</refnamediv>
 		<refsynopsisdiv>
@@ -1609,6 +1726,8 @@ POINT(2 1)
 		  <important>
 			<para>Do not call with a <varname>GEOMETRYCOLLECTION</varname> as an argument</para>
 		  </important>
+		  
+		  <warning><para>If working with 3D geometries, you may want to use SFGCAL based <xref linkend="ST_3DIntersection" /> which does a proper 3D intersection for 3D geometries.  Although this function works with Z-coordinate, it does an averaging of Z-Coordinate values when <code>postgis.backend=geos</code>. <code>postgis.backend=sfcgal</code>, it will return a 2D geometry regardless ignoring the Z-Coordinate. Refer to <xref linkend="postgis_backend" /> for details.</para></warning>
 
 		  <para>Performed by the GEOS module</para>
                   <para>&sfcgal_enhanced;</para>
@@ -1657,9 +1776,37 @@ FROM country
 	WHERE Not ST_IsEmpty(ST_Buffer(ST_Intersection(country.the_geom, poly.the_geom),0.0));
 		</programlisting>
 		</refsection>
+		
+		<refsection>
+		<title>Examples: 2.5Dish</title>
+		<para>Geos is the default backend if not set. Note this is not a true intersection, compare to the same example using <xref linkend="ST_3DIntersection" />.</para> 	
+		<programlisting>	
+set postgis.backend=geos; 
+select ST_AsText(ST_Intersection(linestring, polygon)) As wkt
+from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 10)') AS linestring
+ CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') AS polygon;
+
+               st_astext
+---------------------------------------
+ LINESTRING Z (1 1 8,0.5 0.5 8,0 0 10)
+		</programlisting>
+		
+		<para>If your PostGIS is compiled with sfcgal support, have option of using sfcgal, but note if basically cases down both geometries to 2D before doing intersection
+		and returns the ST_Force2D equivalent result which is a 2D geometry</para> 	
+		<programlisting>	
+set postgis.backend=sfcgal; 
+select ST_AsText(ST_Intersection(linestring, polygon)) As wkt
+from  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 10)') AS linestring
+ CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') AS polygon;
+
+                     wkt
+----------------------------------------------
+ MULTILINESTRING((0.5 0.5,0 0),(1 1,0.5 0.5))
+		</programlisting>
+	  </refsection>
 		<refsection>
 			<title>See Also</title>
-			<para><xref linkend="ST_Difference"/>, <xref linkend="ST_Dimension"/>, <xref linkend="ST_Dump"/>, <xref linkend="ST_SymDifference"/>, <xref linkend="ST_Intersects"/>, <xref linkend="ST_Multi"/></para>
+			<para><xref linkend="ST_3DIntersection" />, <xref linkend="ST_Difference"/>, <xref linkend="ST_Dimension"/>, <xref linkend="ST_Dump"/>, <xref linkend="ST_Force2D" />, <xref linkend="ST_SymDifference"/>, <xref linkend="ST_Intersects"/>, <xref linkend="ST_Multi"/></para>
 		</refsection>
 	</refentry>
 
@@ -1691,7 +1838,7 @@ FROM country
 
 
 	  <refsection>
-		<title>Examples</title>
+		<title>Examples: 2D</title>
 
 		<programlisting>
 SELECT ST_AsText(ST_LineToCurve(foo.the_geom)) As curvedastext,ST_AsText(foo.the_geom) As non_curvedastext
@@ -1716,6 +1863,8 @@ SELECT ST_AsEWKT(ST_LineToCurve(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 8, 5 6 4,
 
 		</programlisting>
 	  </refsection>
+	  
+
 
 	  <!-- Optionally add a "See Also" section -->
 	  <refsection>
@@ -2289,6 +2438,7 @@ MULTILINESTRING((164 1,11.7867965644036 1,1 11.7867965644036,1 195),
 		  <funcprototype>
 			<funcdef>geometry <function>ST_RemoveRepeatedPoints</function></funcdef>
 			<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>
+			<paramdef choice="opt"><type>float8</type> <parameter>tolerance</parameter></paramdef>
 		  </funcprototype>
 		</funcsynopsis>
 	  </refsynopsisdiv>
@@ -2301,8 +2451,10 @@ MULTILINESTRING((164 1,11.7867965644036 1,1 11.7867965644036,1 195),
 				any kind of geometry. Since simplification occurs on a
 				object-by-object basis you can also feed a GeometryCollection to
 				this function.</para>
+        <para>If the tolerance parameter is provided, vertices within the tolerance 
+        of one another will be considered the "same" for the purposes of removal.</para>
 
-		<para>Availability: 2.0.0</para>
+		<para>Availability: 2.2.0</para>
 		<para>&P_support;</para>
 		<para>&Z_support;</para>
 	  </refsection>
@@ -2416,7 +2568,7 @@ MULTILINESTRING((76 175,90 161),(90 161,101 150),(126 125,126 156.25)))
 
 	<refentry id="ST_Shift_Longitude">
 	  <refnamediv>
-		<refname>ST_Shift_Longitude</refname>
+		<refname>ST_ShiftLongitude</refname>
 
 		<refpurpose>Reads every point/vertex in every component of every feature
 			in a geometry, and if the longitude coordinate is <0, adds 360
@@ -2427,7 +2579,7 @@ MULTILINESTRING((76 175,90 161),(90 161,101 150),(126 125,126 156.25)))
 	  <refsynopsisdiv>
 		<funcsynopsis>
 		  <funcprototype>
-			<funcdef>geometry <function>ST_Shift_Longitude</function></funcdef>
+			<funcdef>geometry <function>ST_ShiftLongitude</function></funcdef>
 			<paramdef><type>geometry </type> <parameter>geomA</parameter></paramdef>
 		  </funcprototype>
 		</funcsynopsis>
@@ -2448,6 +2600,7 @@ MULTILINESTRING((76 175,90 161),(90 161,101 150),(126 125,126 156.25)))
 
 		<para>&Z_support;</para>
 		<para>Enhanced: 2.0.0 support for Polyhedral surfaces and TIN was introduced.</para>
+    <para>NOTE: this function was renamed from "ST_Shift_Longitude" in 2.2.0</para>
 		<para>&P_support;</para>
 		<para>&T_support;</para>
 	  </refsection>
@@ -2457,14 +2610,14 @@ MULTILINESTRING((76 175,90 161),(90 161,101 150),(126 125,126 156.25)))
 		<title>Examples</title>
 
 		<programlisting>--3d points
-SELECT ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(-118.58 38.38 10)'))) As geomA,
-	ST_AsEWKT(ST_Shift_Longitude(ST_GeomFromEWKT('SRID=4326;POINT(241.42 38.38 10)'))) As geomb
+SELECT ST_AsEWKT(ST_ShiftLongitude(ST_GeomFromEWKT('SRID=4326;POINT(-118.58 38.38 10)'))) As geomA,
+	ST_AsEWKT(ST_ShiftLongitude(ST_GeomFromEWKT('SRID=4326;POINT(241.42 38.38 10)'))) As geomb
 geomA							  geomB
 ----------						  -----------
 SRID=4326;POINT(241.42 38.38 10) SRID=4326;POINT(-118.58 38.38 10)
 
 --regular line string
-SELECT ST_AsText(ST_Shift_Longitude(ST_GeomFromText('LINESTRING(-118.58 38.38, -118.20 38.45)')))
+SELECT ST_AsText(ST_ShiftLongitude(ST_GeomFromText('LINESTRING(-118.58 38.38, -118.20 38.45)')))
 
 st_astext
 ----------
@@ -2509,7 +2662,6 @@ LINESTRING(241.42 38.38,241.8 38.45)
 				simplicity (see <xref linkend="ST_IsSimple" />)</para></note>
 		<note><para>Note topology may not be preserved and may result in invalid geometries.  Use  (see <xref linkend="ST_SimplifyPreserveTopology" />) to preserve topology.</para></note>
 
-		<para>Performed by the GEOS module.</para>
 		<para>Availability: 1.2.2</para>
 	  </refsection>
 
@@ -2587,6 +2739,118 @@ FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;
 			<para><xref linkend="ST_Simplify" /></para>
 		  </refsection>
 	</refentry>
+
+<refentry id="ST_SimplifyVW">
+	  <refnamediv>
+		<refname>ST_SimplifyVW</refname>
+		<refpurpose>Returns a "simplified" version of the given geometry using the Visvalingam-Whyatt algorithm</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>geometry <function>ST_SimplifyVW</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef>
+			<paramdef><type>float</type> <parameter>tolerance</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+		<para> Returns a "simplified" version of the given geometry using the Visvalingam-Whyatt algorithm. 
+		Will actually do something only with (multi)lines and (multi)polygons but you can safely call it with any kind of geometry. 
+		Since simplification occurs on a object-by-object basis you can also feed a GeometryCollection to this function.</para>
+
+		<note><para>Note that returned geometry might loose its
+				simplicity (see <xref linkend="ST_IsSimple" />)</para></note>
+		<note><para>Note topology may not be preserved and may result in invalid geometries.  Use  (see <xref linkend="ST_SimplifyPreserveTopology" />) to preserve topology.</para></note>
+		<note><para>This function handles 3D and the third dimmension will affect the result</para></note>
+		<para>Availability: 2.2.0</para>
+	  </refsection>
+
+		  <refsection>
+			<title>Examples</title>
+			<para>A linestring that get the efffective area calculated. All points is returned since we give 0 as themin area threashold</para>
+				<programlisting>
+
+select ST_AStext(ST_SimplifyVW(geom,30)) simplified
+FROM (SELECT  'LINESTRING(5 2, 3 8, 6 20, 7 25, 10 10)'::geometry geom) As foo; 
+-result
+ simplified
+-----------+-------------------+
+LINESTRING(5 2,7 25,10 10)
+
+				</programlisting>
+		  </refsection>
+		  <refsection>
+			<title>See Also</title>
+			<para><xref linkend="ST_SetEffectiveArea" />, <xref linkend="ST_Simplify" />, <xref linkend="ST_SimplifyPreserveTopology" />, Topology <xref linkend="TP_ST_Simplify"/></para>
+		  </refsection>
+	</refentry>
+		<refentry id="ST_SetEffectiveArea">
+	  <refnamediv>
+		<refname>ST_SetEffectiveArea</refname>
+		<refpurpose>Sets for each vertex point it's effective area,  
+			and can by filtring  on this area return a simplified geometry</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>geometry <function>ST_SetEffectiveArea</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geomA</parameter></paramdef>
+			<paramdef><type>float</type> <parameter>threashold = 0</parameter></paramdef>
+			<paramdef><type>integer</type> <parameter>set_area = 1</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+		<para> Sets for each vertex point it's effective area from Visvalingam-Whyatt’s algorithm.
+			The effective area is stored as the M-value of the geomtries. 
+			If the second optional parameter is used, the resulting geometriy will be build only on vertex points with an effective area 
+			greater than or equal to that threashold value. That will be a simplified geometry.
+			</para><para>
+			This function can be used for server side simplification by using the threashold. Another option is to not give any threashold value. 
+			Then you get the full geometry back, but with effective areas as M-values wich can be used by the client to simplify very fast.
+			</para><para>
+			Will actually do something only with
+			(multi)lines and (multi)polygons but you can safely call it with
+			any kind of geometry. Since simplification occurs on a
+			object-by-object basis you can also feed a GeometryCollection to
+			this function.
+			</para>
+			
+
+		<note><para>Note that returned geometry might loose its
+				simplicity (see <xref linkend="ST_IsSimple" />)</para></note>
+		<note><para>Note topology may not be preserved and may result in invalid geometries.  Use  (see <xref linkend="ST_SimplifyPreserveTopology" />) to preserve topology.</para></note>
+		<note><para>The output geoemtry will loose all previous information in the M-values</para></note>
+		<note><para>This function handles 3D and the third dimmension will affect the effective area</para></note>
+		<para>Availability: 2.2.0</para>
+	  </refsection>
+
+		  <refsection>
+			<title>Examples</title>
+			<para>A linestring that get the efffective area calculated. All points is returned since we give 0 as themin area threashold</para>
+				<programlisting>
+
+select ST_AStext(ST_SetEffectiveArea(geom)) all_pts, ST_AStext(ST_SetEffectiveArea(geom,30) ) thrshld_30
+FROM (SELECT  'LINESTRING(5 2, 3 8, 6 20, 7 25, 10 10)'::geometry geom) As foo; 
+-result
+ all_pts | thrshld_30
+-----------+-------------------+
+LINESTRING M (5 2 3.40282346638529e+38,3 8 29,6 20 1.5,7 25 49.5,10 10 3.40282346638529e+38) | LINESTRING M (5 2 3.40282346638529e+38,7 25 49.5,10 10 3.40282346638529e+38)
+
+				</programlisting>
+		  </refsection>
+		  <refsection>
+			<title>See Also</title>
+			<para><xref linkend="ST_SimplifyVW" /></para>
+		  </refsection>
+	</refentry>
 	
     <refentry id="ST_Split">
         <refnamediv>
@@ -2607,7 +2871,7 @@ FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;
         <refsection>
             <title>Description</title>
             <para>
-            The function supports splitting a line by point, a line by line, a polygon by line. The returned geometry is always a collection.
+            The function supports splitting a line by (multi)point, (multi)line or (multi)polygon boundary, a (multi)polygon by line. The returned geometry is always a collection.
             </para>
             
             <para>
@@ -2617,7 +2881,14 @@ FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo;
             </para>
             
             <para>Availability: 2.0.0</para>
+            <para>Changed: 2.2.0 support for splitting a line by a multiline, a multipoint or (multi)polygon boundary was introduced.</para>
+
             <note><para>To improve the robustness of ST_Split it may be convenient to <xref linkend="ST_Snap"/> the input to the blade in advance using a very low tolerance. Otherwise the internally used coordinate grid may cause tolerance problems, where coordinates of input and blade do not fall onto each other and the input is not being split correctly (see <ulink url="http://trac.osgeo.org/postgis/ticket/2192">#2192</ulink>).</para></note> 
+
+            <note><para>
+When a (multi)polygon is passed as as the blade, its linear component
+(the boundary) is used for cutting the input.
+            </para></note>
         
         </refsection>
         <refsection>
@@ -2729,7 +3000,14 @@ GEOMETRYCOLLECTION(
         </refsection>
         <refsection>
         <title>See Also</title>
-        <para><xref linkend="ST_AsText" />, <xref linkend="ST_BuildArea" />, <xref linkend="ST_Dump" />, <xref linkend="ST_GeometryN" />, <xref linkend="ST_Union" /></para>
+        <para>
+<xref linkend="ST_AsText" />,
+<xref linkend="ST_BuildArea" />,
+<xref linkend="ST_Dump" />,
+<xref linkend="ST_GeometryN" />,
+<xref linkend="ST_Union" />,
+<xref linkend="ST_Subdivide" />
+        </para>
         </refsection>
     </refentry>
 
@@ -2841,6 +3119,111 @@ MULTILINESTRING((1 3 2.75,1 4 2),(1 1 3,1 2 2.25))
 </refentry>
 
 
+	<refentry id="ST_Subdivide">
+	  <refnamediv>
+		<refname>ST_Subdivide</refname>
+		<refpurpose>Returns a set of geometry where no geometry in the set has more than the specified number of vertices.</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+			<funcprototype>
+				<funcdef>setof geometry <function>ST_Subdivide</function></funcdef>
+				<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>
+				<paramdef><type>integer</type> <parameter>max_vertices=256</parameter></paramdef>
+			</funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+    <para>
+Turns a single geometry into a set in which each element has fewer than
+the maximum allowed number of vertices. Useful for converting excessively
+large polygons and other objects into small portions that fit within the
+database page size. Uses the same envelope clipping as ST_ClipByBox2D does,
+recursively subdividing the input geometry until all portions have less than the
+maximum vertex count. Minimum vertice count allowed is 8 and if you try to specify lower than 8, it will throw an error.
+    </para>
+
+		<para>Clipping performed by the GEOS module.</para>
+		<note><para>Requires GEOS 3.5.0+</para></note>
+
+		<para>Availability: 2.2.0 requires GEOS >= 3.5.0.</para>
+
+	  </refsection>
+
+	  <refsection>
+		<title>Examples</title>
+			<programlisting>-- Create a new subdivided table suitable for joining to the original
+CREATE TABLE subdivided_geoms AS
+SELECT pkey, ST_Subdivide(geom) AS geom
+FROM original_geoms;
+ </programlisting>
+ 
+ 				<informaltable>
+				  <tgroup cols="1">
+					<tbody>
+					  <row>
+						<entry><para><informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_subdivide01.png" />
+							  </imageobject>
+							  <caption><para>Subdivide max 10 vertices</para></caption>
+							</mediaobject>
+						  </informalfigure>
+				<programlisting>SELECT row_number() OVER() As rn, ST_AsText(geom) As wkt
+FROM ( SELECT ST_SubDivide('POLYGON((132 10,119 23,85 35,68 29,66 28,49 42,32 56,22 64,32 110,40 119,36 150,
+57 158,75 171,92 182,114 184,132 186,146 178,176 184,179 162,184 141,190 122,
+190 100,185 79,186 56,186 52,178 34,168 18,147 13,132 10))'::geometry,10))  As f(geom);</programlisting>
+<screen>rn |                          wkt
+---+---------------------------------------------------------------------------
+ 1 | POLYGON((22 64,29.3913043478263 98.000000000001,106.000000000001 98.00000000001,
+        106.000000000001 27.5882352941173,85 35,68 29,66 28,49 42,32 56,22 64))
+ 2 | POLYGON((29.3913043478263 98.000000000001,32 110,40 119,36 150,57 158,
+        75 11,92 182,106.000000000001 183.272727272727,106.000000000001 98.000000000001,
+        29.913043478263 98.000000000001))
+ 3 | POLYGON((106.000000000001 27.5882352941173,106.000000000001 98.00000000000,
+ 189.52380952381 98.000000000001,185 79,186 56,186 52,178 34,168 18,147 13,
+ 132 0,119 23,106.000000000001 27.5882352941173))
+ 4 | POLYGON((106.000000000001 98.000000000001,106.000000000001 183.27272727272,
+    114 184,132 186,146 178,176 184,179 162,184 141,190 122,190 100,189.5238095238
+ 98.000000000001,106.000000000001 98.000000000001))</screen>
+						  </para></entry>
+					  </row>
+					  <row>
+						<entry><para><informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_subdivide02.png" />
+							  </imageobject>
+							  <caption><para>Useful in conjunction with ST_Segmentize to create additional vertices that can then be used for splitting</para></caption>
+							</mediaobject>
+						  </informalfigure>
+				<programlisting>SELECT ST_AsText(ST_SubDivide(ST_Segmentize('LINESTRING(0 0, 100 100, 150 150)'::geometry,10),8));</programlisting>
+<screen>LINESTRING(0 0,7.07106781186547 7.07106781186547,14.1421356237309 14.1421356237309,21.2132034355964 21.2132034355964,28.2842712474619 28.2842712474619,35.3553390593274 35.3553390593274,37.499999999998 37.499999999998)
+LINESTRING(37.499999999998 37.499999999998,42.4264068711929 42.4264068711929,49.4974746830583 49.4974746830583,56.5685424949238 56.5685424949238,63.6396103067893 63.6396103067893,70.7106781186548 70.7106781186548,74.999999999998 74.999999999998)
+LINESTRING(74.999999999998 74.999999999998,77.7817459305202 77.7817459305202,84.8528137423857 84.8528137423857,91.9238815542512 91.9238815542512,98.9949493661167 98.9949493661167,100 100,107.071067811865 107.071067811865,112.499999999998 112.499999999998)
+LINESTRING(112.499999999998 112.499999999998,114.142135623731 114.142135623731,121.213203435596 121.213203435596,128.284271247462 128.284271247462,135.355339059327 135.355339059327,142.426406871193 142.426406871193,149.497474683058 149.497474683058,149.999999999998 149.999999999998)</screen>
+						  </para></entry>
+					  </row>
+				</tbody></tgroup></informaltable>
+	  </refsection>
+	  <refsection>
+		<title>See Also</title>
+		<para>
+<xref linkend="ST_AsText" />,
+<xref linkend="ST_ClipByBox2D" />,
+<xref linkend="ST_Segmentize" />,
+<xref linkend="ST_Split" />
+    </para>
+	  </refsection>
+	</refentry>
+
+
+
 <refentry id="ST_Union">
   <refnamediv>
 	<refname>ST_Union</refname>
@@ -2979,6 +3362,102 @@ MULTILINESTRING((3 4,4 5),(1 2,3 4))
 	  </refsection>
 	</refentry>
 
+    <refentry id="ST_ClusterWithin">
+      <refnamediv>
+        <refname>ST_ClusterWithin</refname>
+
+        <refpurpose>Aggregate.  Returns an array of GeometryCollections, where each GeometryCollection represents a set of geometries separated by no more than the specified distance.</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>geometry[] <function>ST_ClusterWithin</function></funcdef>
+            <paramdef><type>geometry </type> <parameter>g</parameter></paramdef>
+            <paramdef><type>float8 </type> <parameter>distance</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>ST_ClusterWithin is an aggregate function that returns an array of GeometryCollections, where each GeometryCollection represents a set of geometries separated by no more than the specified distance.</para>
+
+        <para>Availability: 2.2.0 - requires GEOS</para>
+      </refsection>
+
+      <refsection>
+        <title>Examples</title>
+        <programlisting>
+WITH testdata AS
+  (SELECT unnest(ARRAY['LINESTRING (0 0, 1 1)'::geometry,
+		       'LINESTRING (5 5, 4 4)'::geometry,
+		       'LINESTRING (6 6, 7 7)'::geometry,
+		       'LINESTRING (0 0, -1 -1)'::geometry,
+		       'POLYGON ((0 0, 4 0, 4 4, 0 4, 0 0))'::geometry]) AS geom)
+
+SELECT ST_AsText(unnest(ST_ClusterWithin(geom, 1.4))) FROM testdata;
+
+--result
+
+st_astext
+---------
+GEOMETRYCOLLECTION(LINESTRING(0 0,1 1),LINESTRING(5 5,4 4),LINESTRING(0 0,-1 -1),POLYGON((0 0,4 0,4 4,0 4,0 0)))
+GEOMETRYCOLLECTION(LINESTRING(6 6,7 7))
+        </programlisting>
+      </refsection>
+
+    </refentry>
+
+
+    <refentry id="ST_ClusterIntersecting">
+      <refnamediv>
+        <refname>ST_ClusterIntersecting</refname>
+
+        <refpurpose>Aggregate.  Returns an array with the connected components of a set of geometries</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <funcsynopsis>
+          <funcprototype>
+            <funcdef>geometry[] <function>ST_ClusterIntersecting</function></funcdef>
+            <paramdef><type>geometry </type> <parameter>g</parameter></paramdef>
+          </funcprototype>
+        </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsection>
+        <title>Description</title>
+
+        <para>ST_ClusterIntersecting is an aggregate function that returns an array of GeometryCollections, where each GeometryCollection represents an interconnected set of geometries.</para>
+
+        <para>Availability: 2.2.0 - requires GEOS </para>
+      </refsection>
+
+      <refsection>
+        <title>Examples</title>
+        <programlisting>
+WITH testdata AS
+  (SELECT unnest(ARRAY['LINESTRING (0 0, 1 1)'::geometry,
+		       'LINESTRING (5 5, 4 4)'::geometry,
+		       'LINESTRING (6 6, 7 7)'::geometry,
+		       'LINESTRING (0 0, -1 -1)'::geometry,
+		       'POLYGON ((0 0, 4 0, 4 4, 0 4, 0 0))'::geometry]) AS geom)
+
+SELECT ST_AsText(unnest(ST_ClusterIntersecting(geom))) FROM testdata;
+
+--result
+
+st_astext
+---------
+GEOMETRYCOLLECTION(LINESTRING(0 0,1 1),LINESTRING(5 5,4 4),LINESTRING(0 0,-1 -1),POLYGON((0 0,4 0,4 4,0 4,0 0)))
+GEOMETRYCOLLECTION(LINESTRING(6 6,7 7))
+        </programlisting>
+      </refsection>
+
+    </refentry>
+
 	<refentry id="ST_UnaryUnion">
 	  <refnamediv>
 		<refname>ST_UnaryUnion</refname>
@@ -3028,9 +3507,10 @@ MULTILINESTRING((3 4,4 5),(1 2,3 4))
 		<title>See Also</title>
 
 		<para>
-			<xref linkend="ST_Union" />
-			<xref linkend="ST_MemUnion" />
-			<xref linkend="ST_Collect" />
+			<xref linkend="ST_Union" />,
+			<xref linkend="ST_MemUnion" />,
+			<xref linkend="ST_Collect" />,
+			<xref linkend="ST_Node" />
 		</para>
 	  </refsection>
 	</refentry>
diff --git a/doc/reference_raster.xml b/doc/reference_raster.xml
index 695e110..cd2095c 100644
--- a/doc/reference_raster.xml
+++ b/doc/reference_raster.xml
@@ -10,7 +10,7 @@
   <para>For loading rasters from raster files please refer to <xref linkend="RT_Loading_Rasters" /></para>  
    
     <para>For the examples in this reference we will be using a raster table of dummy rasters - Formed with the following code </para>
-<programlisting>CREATE TABLE dummy_rast(rid integer, rast raster);
+<programlisting language="sql">CREATE TABLE dummy_rast(rid integer, rast raster);
 INSERT INTO dummy_rast(rid, rast)
 VALUES (1,
 ('01' -- little endian (uint8 ndr)
@@ -284,6 +284,103 @@ VALUES (1,
            </refsection>
 		</refentry>
 
+		<refentry id="summarystats">
+			<refnamediv>
+				<refname>summarystats</refname>
+				<refpurpose>A composite type returned by the ST_SummaryStats and ST_SummaryStatsAgg functions.</refpurpose>
+			</refnamediv>
+
+			<refsection>
+				<title>Description</title>
+				<para>
+					A composite type returned by the <xref linkend="RT_ST_SummaryStats"/> and <xref linkend="RT_ST_SummaryStatsAgg"/> functions.
+
+					<variablelist>
+						<varlistentry>
+							<term>
+								<parameter>count </parameter>
+								<type>integer</type>
+							</term>
+							<listitem>
+								<para>
+									Number of pixels counted for the summary statistics.
+								</para>
+							</listitem>
+						</varlistentry>
+
+						<varlistentry>
+							<term>
+								<parameter>sum </parameter>
+								<type>double precision</type>
+							</term>
+							<listitem>
+								<para>
+									Sum of all counted pixel values.
+								</para>
+							</listitem>
+						</varlistentry>
+
+						<varlistentry>
+							<term>
+								<parameter>mean </parameter>
+								<type>double precision</type>
+							</term>
+							<listitem>
+								<para>
+									Arithmetic mean of all counted pixel values.
+								</para>
+							</listitem>
+						</varlistentry>
+
+						<varlistentry>
+							<term>
+								<parameter>stddev </parameter>
+								<type>double precision</type>
+							</term>
+							<listitem>
+								<para>
+									Standard deviation of all counted pixel values.
+								</para>
+							</listitem>
+						</varlistentry>
+
+						<varlistentry>
+							<term>
+								<parameter>min </parameter>
+								<type>double precision</type>
+							</term>
+							<listitem>
+								<para>
+									Minimum value of counted pixel values.
+								</para>
+							</listitem>
+						</varlistentry>
+
+						<varlistentry>
+							<term>
+								<parameter>max </parameter>
+								<type>double precision</type>
+							</term>
+							<listitem>
+								<para>
+									Maximum value of counted pixel values.
+								</para>
+							</listitem>
+						</varlistentry>
+
+					</variablelist>
+
+				</para>
+			</refsection>
+
+			<refsection>
+				<title>See Also</title>
+				<para>
+					<xref linkend="RT_ST_SummaryStats" />, 
+					<xref linkend="RT_ST_SummaryStatsAgg" />
+				</para>
+			</refsection>
+		</refentry>
 		<refentry id="unionarg">
 			<refnamediv>
 				<refname>unionarg</refname>
@@ -805,6 +902,7 @@ FROM raster_overviews WHERE o_table_name = 'res2';
       <para>
  <xref linkend="RT_Raster_Overviews"/>,
  <xref linkend="RT_DropOverviewConstraints"/>,
+ <xref linkend="RT_CreateOverview"/>,
  <xref linkend="RT_AddRasterConstraints"/>
       </para>
 	  </refsection>
@@ -869,6 +967,44 @@ will be used.
 	  </refsection>
 	</refentry>
 	
+		<refentry id="RT_PostGIS_GDAL_Version">
+			<refnamediv>
+				<refname>PostGIS_GDAL_Version</refname>
+				<refpurpose>Reports the version of the GDAL library in use by PostGIS.</refpurpose>
+			</refnamediv>
+
+			<refsynopsisdiv>
+				<funcsynopsis>
+					<funcprototype>
+						<funcdef>text <function>PostGIS_GDAL_Version</function></funcdef> 
+						<paramdef></paramdef>
+					</funcprototype>
+				</funcsynopsis>
+			</refsynopsisdiv>
+
+			<refsection>
+				<title>Description</title>
+				<para>Reports the version of the GDAL library in use by PostGIS. Will also check and report if GDAL can find its data files.</para>
+			</refsection>
+
+			<refsection>
+				<title>Examples</title>
+				<programlisting>
+SELECT PostGIS_GDAL_Version();
+       postgis_gdal_version        
+-----------------------------------
+ GDAL 1.11dev, released 2013/04/13
+				</programlisting>
+			</refsection>
+
+			<refsection>
+				<title>See Also</title>
+				<para>
+					<xref linkend="postgis_gdal_datapath" />
+				</para>
+			</refsection>
+		</refentry>
+
 	<refentry id="RT_PostGIS_Raster_Lib_Build_Date">
 	  <refnamediv>
 		<refname>PostGIS_Raster_Lib_Build_Date</refname>
@@ -952,7 +1088,7 @@ postgis_raster_lib_version
 	  </refsection>
 	  
 	</refentry>
-	
+
 	<refentry id="RT_ST_GDALDrivers">
 	  <refnamediv>
 		<refname>ST_GDALDrivers</refname>
@@ -1183,6 +1319,65 @@ WHERE short_name = 'GTiff') As g;
 
 				<para>Availability: 2.1.0</para>
 			</refsection> 
+      <refsection>
+        <title>See Also</title>
+        <para>
+          <xref linkend="UpdateGeometrySRID"/>
+        </para>
+      </refsection>
+		</refentry>
+
+		<refentry id="RT_CreateOverview">
+			<refnamediv>
+				<refname>ST_CreateOverview</refname>
+				<refpurpose>
+Create an reduced resolution version of a given raster coverage.
+				</refpurpose>
+			</refnamediv>
+
+			<refsynopsisdiv>
+				<funcsynopsis>
+
+					<funcprototype>
+						<funcdef>regclass <function>ST_CreateOverview</function></funcdef>
+						<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef>
+						<paramdef><type>name </type> <parameter>col</parameter></paramdef>
+						<paramdef><type>int </type> <parameter>factor</parameter></paramdef>
+					  <paramdef choice="opt"><type>text </type> <parameter>algo='NearestNeighbor'</parameter></paramdef>
+					</funcprototype>
+
+				</funcsynopsis>
+			</refsynopsisdiv>
+
+			<refsection>
+				<title>Description</title> 
+
+				<para>
+Create an overview table with resampled tiles from the source table.
+Output tiles will have the same size of input tiles and cover the same
+spatial extent with a lower resolution (pixel size will be
+1/<varname>factor</varname> of the original in both directions).
+				</para>
+
+        <para>
+The overview table will be made available in the
+<varname>raster_overviews</varname> catalog and will have raster
+constraints enforced.
+				</para>
+
+				<para>Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', 'CubicSpline', and 'Lanczos'.  Refer to: <ulink url="http://www.gdal.org/gdalwarp.html">GDAL Warp resampling methods</ulink> for more details.</para>
+
+				<para>Availability: 2.2.0</para>
+			</refsection> 
+      <refsection>
+        <title>See Also</title>
+        <para>
+  <xref linkend="RT_Retile"/>,
+  <xref linkend="RT_AddOverviewConstraints"/>,
+  <xref linkend="RT_AddRasterConstraints"/>,
+  <xref linkend="RT_Raster_Overviews"/>
+        </para>
+      </refsection>
 		</refentry>
   </sect1>
   
@@ -1637,14 +1832,14 @@ SELECT ST_AsPNG(
 				  <funcprototype>
 					<funcdef>raster <function>ST_Band</function></funcdef>
 					<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
-					<paramdef><type>text </type> <parameter>nbands</parameter></paramdef>
-					<paramdef choice="opt"><type>character </type> <parameter>delimiter=,</parameter></paramdef>
+					<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
 				  </funcprototype>
 				  
-				  <funcprototype>
+				<funcprototype>
 					<funcdef>raster <function>ST_Band</function></funcdef>
 					<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
-					<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
+					<paramdef><type>text </type> <parameter>nbands</parameter></paramdef>
+					<paramdef choice="opt"><type>character </type> <parameter>delimiter=,</parameter></paramdef>
 				  </funcprototype>
 				</funcsynopsis>
 			</refsynopsisdiv>
@@ -1652,8 +1847,9 @@ SELECT ST_AsPNG(
 			<refsection>
 				<title>Description</title>
 				
-				<para>Returns a single band of an existing raster as a new raster.  Useful for building new rasters from existing rasters or export of only selected
-				bands of a raster. If no band is specified, band 1 is assumed. Used as a helper function in various functions such as for deleting a band.</para>
+				<para>Returns one or more bands of an existing raster as a new raster.  Useful for building new rasters from existing rasters or export of only selected
+				bands of a raster or rearranging the order of bands in a raster. If no band is specified, band 1 is assumed. Used as a helper function in various functions such as for deleting a band. </para>
+				<warning><para>For the <code>nbands</code> as text variant of function, the default delimiter is <code>,</code> which means you can ask for <code>'1,2,3'</code> and if you wanted to use a different delimeter you would do <code>ST_Band(rast, '1 at 2@3', '@')</code>.  For asking for multiple bands, we strongly suggest you use the array form of this function e.g. <code>ST_Band(rast, '{1,2,3}'::int[]);</code> since the <code>text</code> list of bands form may be removed in future versions o [...]
                     
                  <para>Availability: 2.0.0</para>
 			</refsection>
@@ -1674,8 +1870,8 @@ FROM (
      1 | 8BUI |     1 | 2BUI
 					</programlisting>
 					
-					<programlisting>-- Return bands 2 and 3. Use text to define bands
-SELECT ST_NumBands(ST_Band(rast, '2,3')) As num_bands
+					<programlisting>-- Return bands 2 and 3. Using array cast syntax
+SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands
     FROM dummy_rast WHERE rid=2;
     
 num_bands
@@ -1734,7 +1930,7 @@ WHERE rid=35;
 
 			<refsection>
 				<title>See Also</title>
-				<para><xref linkend="RT_ST_AddBand" />, <xref linkend="RT_ST_NumBands" />, , <xref linkend="RT_ST_Reclass" /></para>
+				<para><xref linkend="RT_ST_AddBand" />, <xref linkend="RT_ST_NumBands" />, <xref linkend="RT_ST_Reclass" />, <xref linkend="RT_reference" /></para>
 			</refsection>
 		</refentry>
 
@@ -1969,12 +2165,63 @@ FROM baz;
 			<refsection>
 				<title>See Also</title>
 				<para>
-					<xref linkend="RT_ST_Union" />
+					<xref linkend="RT_ST_Union" />,
+					<xref linkend="RT_Retile" />
 				</para>
 			</refsection>
 
 		</refentry>
 
+		<refentry id="RT_Retile">
+			<refnamediv>
+				<refname>ST_Retile</refname>
+				<refpurpose>
+					Return a set of configured tiles from an arbitrarily tiled raster coverage.
+				</refpurpose>
+			</refnamediv>
+
+			<refsynopsisdiv>
+				<funcsynopsis>
+
+					<funcprototype>
+						<funcdef>SETOF raster <function>ST_Retile</function></funcdef>
+						<paramdef><type>regclass </type> <parameter>tab</parameter></paramdef>
+						<paramdef><type>name </type> <parameter>col</parameter></paramdef>
+						<paramdef><type>geometry </type> <parameter>ext</parameter></paramdef>
+						<paramdef><type>float8 </type> <parameter>sfx</parameter></paramdef>
+						<paramdef><type>float8 </type> <parameter>sfy</parameter></paramdef>
+						<paramdef><type>int </type> <parameter>tw</parameter></paramdef>
+						<paramdef><type>int </type> <parameter>th</parameter></paramdef>
+					  <paramdef choice="opt"><type>text </type> <parameter>algo='NearestNeighbor'</parameter></paramdef>
+					</funcprototype>
+
+				</funcsynopsis>
+			</refsynopsisdiv>
+
+			<refsection>
+				<title>Description</title> 
+
+				<para>
+Return a set of tiles having the specified scale (<varname>sfx</varname>,
+<varname>sfy</varname>) and max size (<varname>tw</varname>,
+<varname>th</varname>) and covering the specified extent
+(<varname>ext</varname>) with data coming from the specified
+raster coverage (<varname>tab</varname>, <varname>col</varname>).
+				</para>
+
+				<para>Algorithm options are: 'NearestNeighbor', 'Bilinear', 'Cubic', 'CubicSpline', and 'Lanczos'.  Refer to: <ulink url="http://www.gdal.org/gdalwarp.html">GDAL Warp resampling methods</ulink> for more details.</para>
+
+				<para>Availability: 2.2.0</para>
+			</refsection> 
+      <refsection>
+        <title>See Also</title>
+        <para>
+          <xref linkend="RT_CreateOverview"/>
+        </para>
+      </refsection>
+		</refentry>
+
+
 		<refentry id="RT_ST_FromGDALRaster">
 
 			<refnamediv>
@@ -2199,6 +2446,56 @@ t          |
 			</refsection>
 		</refentry>
 
+	 <refentry id="RT_ST_MemSize">
+	  <refnamediv>
+		<refname>ST_MemSize</refname>
+
+		<refpurpose>Returns the amount of space (in bytes) the raster takes.</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>integer <function>ST_MemSize</function></funcdef>
+			<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+		<para>Returns the amount of space (in bytes) the raster takes. </para>
+		<para>This is a nice compliment to PostgreSQL built in functions pg_column_size, pg_size_pretty, pg_relation_size, pg_total_relation_size.</para>
+		<note><para>pg_relation_size which gives the byte size of a table may return byte size lower than ST_MemSize. This is because
+		pg_relation_size does not add toasted table contribution and large geometries are stored in TOAST tables. pg_column_size might return lower because it returns the compressed size.</para>
+		<para>pg_total_relation_size - includes, the table, the toasted tables, and the indexes.</para>
+		</note>
+
+		<para>Availability: 2.2.0</para>
+	  </refsection>
+
+
+	  <refsection>
+		<title>Examples</title>
+
+		<programlisting>
+		SELECT ST_MemSize(ST_AsRaster(ST_Buffer(ST_Point(1,5),10,1000),150, 150, '8BUI')) As rast_mem;
+		
+		rast_mem
+		--------
+		22568
+	</programlisting>
+	  </refsection>
+
+	  <!-- Optionally add a "See Also" section -->
+	  <refsection>
+		<title>See Also</title>
+
+		<para></para>
+	  </refsection>
+	</refentry>
+	
 		<refentry id="RT_ST_MetaData">
 			<refnamediv>
 				<refname>ST_MetaData</refname>
@@ -2342,8 +2639,13 @@ rastheight |     pixheight     | scalex | scaley | skewx | skewy
 		<!-- Optionally add a "See Also" section -->
 		<refsection>
 			<title>See Also</title>
-			<para><xref linkend="RT_ST_PixelWidth" />, <xref linkend="RT_ST_ScaleX" />, <xref linkend="RT_ST_ScaleY" />, <xref linkend="RT_ST_SkewX" />, 
-			<xref linkend="RT_ST_SkewY" /></para>
+			<para>
+				<xref linkend="RT_ST_PixelWidth" />,
+				<xref linkend="RT_ST_ScaleX" />,
+				<xref linkend="RT_ST_ScaleY" />,
+				<xref linkend="RT_ST_SkewX" />, 
+				<xref linkend="RT_ST_SkewY" />
+			</para>
 		</refsection>
 	</refentry>
 		
@@ -4267,11 +4569,22 @@ WHERE
 
 			<refsection>
 				<title>See Also</title>
-				<para><xref linkend="RT_ST_DumpAsPolygons" />, <xref linkend="RT_ST_NumBands" />, <xref linkend="RT_ST_PixelAsPolygon" />, <xref linkend="RT_ST_ScaleX" />,
-					, <xref linkend="RT_ST_ScaleY" />, <xref linkend="RT_ST_UpperLeftX" />, 
-					<xref linkend="RT_ST_UpperLeftY" />, <xref linkend="RT_ST_SRID" />, <xref linkend="ST_AsText" />,
-					, <xref linkend="ST_Point" />, <xref linkend="ST_MakeEnvelope" />, 
-					<xref linkend="ST_Intersects" />, <xref linkend="ST_Intersection" /></para>
+				<para>
+					<xref linkend="RT_ST_SetValue" />, 
+					<xref linkend="RT_ST_DumpAsPolygons" />,
+					<xref linkend="RT_ST_NumBands" />,
+					<xref linkend="RT_ST_PixelAsPolygon" />,
+					<xref linkend="RT_ST_ScaleX" />,
+					<xref linkend="RT_ST_ScaleY" />,
+					<xref linkend="RT_ST_UpperLeftX" />, 
+					<xref linkend="RT_ST_UpperLeftY" />,
+					<xref linkend="RT_ST_SRID" />,
+					<xref linkend="ST_AsText" />,
+					<xref linkend="ST_Point" />,
+					<xref linkend="ST_MakeEnvelope" />, 
+					<xref linkend="ST_Intersects" />,
+					<xref linkend="ST_Intersection" />
+				</para>
 			</refsection>
 		</refentry>
 
@@ -5251,7 +5564,7 @@ ORDER BY t1.rid, t2.gid, t3.gid;
 							<type>raster </type> <parameter>rast</parameter>
 						</paramdef>
 						<paramdef>
-							<type>integer[] </type> <parameter>nband</parameter>
+							<type>integer[] </type> <parameter>nband=NULL</parameter>
 						</paramdef>
 						<paramdef>
 							<type>boolean </type> <parameter>exclude_nodata_value=true</parameter>
@@ -5276,7 +5589,7 @@ ORDER BY t1.rid, t2.gid, t3.gid;
 				<title>Description</title>
 
 				<para>
-					Get the values of the specified band as a 2-dimension array.  If <varname>nband</varname> is NULL or not provided, all raster bands are processed.
+					Get the values of the specified band as a 2-dimension array (first index is row, second is column). If <varname>nband</varname> is NULL or not provided, all raster bands are processed.
 				</para>
 
 				<para>Availability: 2.1.0</para>
@@ -5315,6 +5628,19 @@ FROM foo;
      1 | {{1,1,1},{1,1,1},{1,1,1}}
 (2 rows)
 				</programlisting>
+				<programlisting>
+WITH foo AS (
+	SELECT ST_SetValue(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 1, 2, 5) AS rast
+)
+SELECT
+	(ST_DumpValues(rast, 1))[2][1]
+FROM foo;
+
+ st_dumpvalues
+---------------
+             5
+(1 row)
+				</programlisting>
 			</refsection>
 
 			<refsection>
@@ -5937,7 +6263,11 @@ FROM (
 
 			<refsection>
 				<title>See Also</title>
-				<para><xref linkend="RT_ST_Rescale" />, <xref linkend="RT_ST_Transform" /></para>
+				<para>
+					<xref linkend="RT_ST_Rescale" />,
+					<xref linkend="RT_ST_Resize" />,
+					<xref linkend="RT_ST_Transform" />
+				</para>
 			</refsection>
 		</refentry>
 		
@@ -5977,7 +6307,7 @@ FROM (
 				
 				<para><varname>scalex</varname> and <varname>scaley</varname> define the new pixel size. scaley must often be negative to get well oriented raster.</para>
 				
-				<para>When the new scalex or scaley is not a divisor of the raster width or height, the extent of the resulting raster is expanded to encompass the extent of the provided raster.</para>
+				<para>When the new scalex or scaley is not a divisor of the raster width or height, the extent of the resulting raster is expanded to encompass the extent of the provided raster. If you want to be sure to retain exact input extent see <xref linkend="RT_ST_Resize" /></para>
 				
 				<para>A maxerror percent of 0.125 is used if no <varname>maxerr</varname> is specified.</para>
 				
@@ -6011,7 +6341,14 @@ SELECT ST_PixelWidth(ST_Rescale(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.
 
 			<refsection>
 				<title>See Also</title>
-				<para><xref linkend="RT_ST_SetScale" />, <xref linkend="RT_ST_ScaleX" />, <xref linkend="RT_ST_ScaleY" />, <xref linkend="RT_ST_Resample" />, <xref linkend="RT_ST_Transform" /></para>
+				<para>
+					<xref linkend="RT_ST_Resize" />,
+					<xref linkend="RT_ST_Resample" />,
+					<xref linkend="RT_ST_SetScale" />,
+					<xref linkend="RT_ST_ScaleX" />,
+					<xref linkend="RT_ST_ScaleY" />,
+					<xref linkend="RT_ST_Transform" />
+				</para>
 			</refsection>
 		</refentry>
 		
@@ -6207,7 +6544,7 @@ SELECT ST_UpperLeftX(ST_SnapToGrid(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 0
 				<title>Description</title>
 
 				<para>
-					Resize a raster to a new width/height.  The new width/height can be specified in exact number of pixels or a percentage of the raster's width/height.
+					Resize a raster to a new width/height. The new width/height can be specified in exact number of pixels or a percentage of the raster's width/height. The extent of the the new raster will be the same as the extent of the provided raster.
 				</para>
 
 				<para>
@@ -6623,6 +6960,7 @@ select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected true
 	
 	<sect1 id="RasterBand_Stats">
 	    <title>Raster Band Statistics and Analytics</title>
+
 	    	<refentry id="RT_ST_Count">
 			<refnamediv>
 				<refname>ST_Count</refname>
@@ -6664,6 +7002,13 @@ select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected true
 				<para>Returns the number of pixels in a given band of a raster or raster coverage.  If no band is specified <varname>nband</varname> defaults to 1. </para> 
 				<note><para>If <varname>exclude_nodata_value</varname> is set to true, will only count pixels with value not equal to the <varname>nodata</varname> value of the raster. Set <varname>exclude_nodata_value</varname> to false to get count all pixels</para></note>
 				<para>Availability: 2.0.0 </para>
+
+				<warning>
+					<para>
+						The ST_Count(rastertable, rastercolumn, ...) variants are deprecated as of 2.2.0. Use <xref linkend="RT_ST_CountAgg" /> instead.
+					</para>
+				</warning>
+
 			</refsection>
 				
 			<refsection>
@@ -6683,36 +7028,133 @@ rid | exclude_nodata | include_nodata
 
 			<refsection>
 				<title>See Also</title>
-				<para><xref linkend="RT_ST_SetBandNoDataValue" /></para>
+				<para>
+					<xref linkend="RT_ST_CountAgg" />, 
+					<xref linkend="RT_ST_SummaryStats" />, 
+					<xref linkend="RT_ST_SetBandNoDataValue" />
+				</para>
 			</refsection>
 		</refentry>
 		
-		<refentry id="RT_ST_Histogram">
+	  <refentry id="RT_ST_CountAgg">
 			<refnamediv>
-				<refname>ST_Histogram</refname>
-				<refpurpose>Returns a set of record summarizing a raster or raster coverage data distribution separate bin ranges. Number of bins are autocomputed if not specified.</refpurpose>
-			</refnamediv>
+				<refname>ST_CountAgg</refname>
+				<refpurpose>
+					Aggregate. Returns the number of pixels in a given band of a set of rasters. If no band is specified defaults to band 1. If exclude_nodata_value is set to true, will only count pixels that are not equal to the NODATA value.
+				</refpurpose>
+		 	</refnamediv>
 		
 			<refsynopsisdiv>
 				<funcsynopsis>
-				  <funcprototype>
-					<funcdef>SETOF record <function>ST_Histogram</function></funcdef>
-					<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
-					<paramdef choice="opt"><type>integer </type> <parameter>nband=1</parameter></paramdef>
-					<paramdef choice="opt"><type>boolean </type> <parameter>exclude_nodata_value=true</parameter></paramdef>
-					<paramdef choice="opt"><type>integer </type> <parameter>bins=autocomputed</parameter></paramdef>
-					<paramdef choice="opt"><type>double precision[] </type> <parameter>width=NULL</parameter></paramdef>
-					<paramdef choice="opt"><type>boolean </type> <parameter>right=false</parameter></paramdef>
-				  </funcprototype>
-				  
-				  <funcprototype>
-					<funcdef>SETOF record <function>ST_Histogram</function></funcdef>
-					<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
-					<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
-					<paramdef><type>integer </type> <parameter>bins</parameter></paramdef>
-					<paramdef choice="opt"><type>double precision[] </type> <parameter>width=NULL</parameter></paramdef>
-					<paramdef choice="opt"><type>boolean </type> <parameter>right=false</parameter></paramdef>
-				  </funcprototype>
+					<funcprototype>
+						<funcdef>bigint <function>ST_CountAgg</function></funcdef>
+						<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+						<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
+						<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
+						<paramdef><type>double precision </type> <parameter>sample_percent</parameter></paramdef>
+				 	</funcprototype>
+
+					<funcprototype>
+						<funcdef>bigint <function>ST_CountAgg</function></funcdef>
+						<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+						<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
+						<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
+					</funcprototype>
+
+					<funcprototype>
+						<funcdef>bigint <function>ST_CountAgg</function></funcdef>
+						<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+						<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
+					</funcprototype>
+
+				</funcsynopsis>
+			</refsynopsisdiv>
+		
+			<refsection>
+				<title>Description</title>
+				
+				<para>Returns the number of pixels in a given band of a set of rasters.  If no band is specified <varname>nband</varname> defaults to 1.</para> 
+				<para>
+					If <varname>exclude_nodata_value</varname> is set to true, will only count pixels with value not equal to the <varname>NODATA</varname> value of the raster. Set <varname>exclude_nodata_value</varname> to false to get count all pixels
+			 	</para>
+				<para>By default will sample all pixels. To get faster response, set <varname>sample_percent</varname> to value between zero (0) and one (1)</para>
+
+				<para>Availability: 2.2.0 </para>
+			</refsection>
+				
+			<refsection>
+				<title>Examples</title>
+				<programlisting>
+WITH foo AS (
+	SELECT
+		rast.rast
+	FROM (
+		SELECT ST_SetValue(
+			ST_SetValue(
+				ST_SetValue(
+					ST_AddBand(
+						ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
+						, 1, '64BF', 0, 0
+					)
+					, 1, 1, 1, -10
+				)
+				, 1, 5, 4, 0
+			)
+			, 1, 5, 5, 3.14159
+		) AS rast
+	) AS rast
+	FULL JOIN (
+		SELECT generate_series(1, 10) AS id
+	) AS id
+		ON 1 = 1
+)
+SELECT
+	ST_CountAgg(rast, 1, TRUE)
+FROM foo;
+
+ st_countagg 
+-------------
+          20
+(1 row)
+				</programlisting>	
+			</refsection>
+
+			<refsection>
+				<title>See Also</title>
+				<para>
+					<xref linkend="RT_ST_Count" />, 
+					<xref linkend="RT_ST_SummaryStats" />, 
+					<xref linkend="RT_ST_SetBandNoDataValue" />
+				</para>
+			</refsection>
+		</refentry>
+		
+		<refentry id="RT_ST_Histogram">
+			<refnamediv>
+				<refname>ST_Histogram</refname>
+				<refpurpose>Returns a set of record summarizing a raster or raster coverage data distribution separate bin ranges. Number of bins are autocomputed if not specified.</refpurpose>
+			</refnamediv>
+		
+			<refsynopsisdiv>
+				<funcsynopsis>
+				  <funcprototype>
+					<funcdef>SETOF record <function>ST_Histogram</function></funcdef>
+					<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+					<paramdef choice="opt"><type>integer </type> <parameter>nband=1</parameter></paramdef>
+					<paramdef choice="opt"><type>boolean </type> <parameter>exclude_nodata_value=true</parameter></paramdef>
+					<paramdef choice="opt"><type>integer </type> <parameter>bins=autocomputed</parameter></paramdef>
+					<paramdef choice="opt"><type>double precision[] </type> <parameter>width=NULL</parameter></paramdef>
+					<paramdef choice="opt"><type>boolean </type> <parameter>right=false</parameter></paramdef>
+				  </funcprototype>
+				  
+				  <funcprototype>
+					<funcdef>SETOF record <function>ST_Histogram</function></funcdef>
+					<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+					<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
+					<paramdef><type>integer </type> <parameter>bins</parameter></paramdef>
+					<paramdef choice="opt"><type>double precision[] </type> <parameter>width=NULL</parameter></paramdef>
+					<paramdef choice="opt"><type>boolean </type> <parameter>right=false</parameter></paramdef>
+				  </funcprototype>
 				  
 				  <funcprototype>
 					<funcdef>SETOF record <function>ST_Histogram</function></funcdef>
@@ -6862,7 +7304,8 @@ FROM (SELECT rid, ST_Histogram(rast, 2,6,ARRAY[0.5,1,4,100,5]) As stats
 				<title>See Also</title>
 				<para>
 					<xref linkend="RT_ST_Count" />, 
-					<xref linkend="RT_ST_SummaryStats" />
+					<xref linkend="RT_ST_SummaryStats" />, 
+					<xref linkend="RT_ST_SummaryStatsAgg" />
 				</para>
 			</refsection>
 		</refentry>
@@ -7013,46 +7456,51 @@ ORDER BY value, quantile,rid
 
 			<refsection>
 				<title>See Also</title>
-				<para><xref linkend="RT_ST_Count" />, <xref linkend="RT_ST_SetBandNoDataValue" /></para>
+				<para>
+					<xref linkend="RT_ST_Count" />, 
+					<xref linkend="RT_ST_SummaryStats" />, 
+					<xref linkend="RT_ST_SummaryStatsAgg" />, 
+					<xref linkend="RT_ST_SetBandNoDataValue" />
+				</para>
 			</refsection>
 		</refentry>
 		
 		<refentry id="RT_ST_SummaryStats">
 			<refnamediv>
 				<refname>ST_SummaryStats</refname>
-				<refpurpose>Returns record consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.</refpurpose>
+				<refpurpose>Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage. Band 1 is assumed is no band is specified.</refpurpose>
 			</refnamediv>
 		
 			<refsynopsisdiv>
 				<funcsynopsis>
 				  <funcprototype>
-					<funcdef>record <function>ST_SummaryStats</function></funcdef>
-					<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef>
-					<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef>
+					<funcdef>summarystats <function>ST_SummaryStats</function></funcdef>
+					<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
 					<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
 				  </funcprototype>
-				  
-				  <funcprototype>
-					<funcdef>record <function>ST_SummaryStats</function></funcdef>
+
+				 <funcprototype>
+					<funcdef>summarystats <function>ST_SummaryStats</function></funcdef>
 					<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+					<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
 					<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
 				  </funcprototype>
-				  				  
+
 				  <funcprototype>
-					<funcdef>record <function>ST_SummaryStats</function></funcdef>
+					<funcdef>summarystats <function>ST_SummaryStats</function></funcdef>
+					<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef>
+					<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef>
+					<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
+				  </funcprototype>
+				  
+				  <funcprototype>
+					<funcdef>summarystats <function>ST_SummaryStats</function></funcdef>
 					<paramdef><type>text </type> <parameter>rastertable</parameter></paramdef>
 					<paramdef><type>text </type> <parameter>rastercolumn</parameter></paramdef>
 					<paramdef choice="opt"><type>integer </type> <parameter>nband=1</parameter></paramdef>
 					<paramdef choice="opt"><type>boolean </type> <parameter>exclude_nodata_value=true</parameter></paramdef>
 				  </funcprototype>
 				  
-				 <funcprototype>
-					<funcdef>record <function>ST_SummaryStats</function></funcdef>
-					<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
-					<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
-					<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
-				  </funcprototype>
-
 				
 				</funcsynopsis>
 			</refsynopsisdiv>
@@ -7060,12 +7508,20 @@ ORDER BY value, quantile,rid
 			<refsection>
 				<title>Description</title>
 				
-				<para>Returns record consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage.  If no band is specified <varname>nband</varname> defaults to 1.</para>
+				<para>Returns <xref linkend="summarystats"/> consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage.  If no band is specified <varname>nband</varname> defaults to 1.</para>
 
 				<note><para>By default only considers pixel values not equal to the <varname>nodata</varname> value. Set <varname>exclude_nodata_value</varname> to false to get count of all pixels.</para></note>
 				
 				<note><para>By default will sample all pixels. To get faster response, set <varname>sample_percent</varname> to lower than 1</para></note>
+
 				<para>Availability: 2.0.0 </para>
+
+				<warning>
+					<para>
+						The ST_SummaryStats(rastertable, rastercolumn, ...) variants are deprecated as of 2.2.0. Use <xref linkend="RT_ST_SummaryStatsAgg" /> instead.
+					</para>
+				</warning>
+
 			</refsection>
 				
 			<refsection>
@@ -7150,12 +7606,115 @@ FROM (SELECT band, ST_SummaryStats('o_4_boston','rast', band,true,0.25) As stats
 			<refsection>
 				<title>See Also</title>
 				<para>
-<xref linkend="RT_ST_Count" />,
-<xref linkend="RT_ST_Clip" />
+					<xref linkend="summarystats" />, 
+					<xref linkend="RT_ST_SummaryStatsAgg" />, 
+					<xref linkend="RT_ST_Count" />, 
+				 	<xref linkend="RT_ST_Clip" />
 				</para>
 			</refsection>
 		</refentry>
+
+		<refentry id="RT_ST_SummaryStatsAgg">
+			<refnamediv>
+				<refname>ST_SummaryStatsAgg</refname>
+				<refpurpose>Aggregate. Returns summarystats consisting of count, sum, mean, stddev, min, max for a given raster band of a set of raster. Band 1 is assumed is no band is specified.</refpurpose>
+			</refnamediv>
 		
+			<refsynopsisdiv>
+				<funcsynopsis>
+					<funcprototype>
+						<funcdef>summarystats <function>ST_SummaryStatsAgg</function></funcdef>
+						<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+						<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
+						<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
+						<paramdef><type>double precision </type> <parameter>sample_percent</parameter></paramdef>
+				 	</funcprototype>
+				  
+					<funcprototype>
+						<funcdef>summarystats <function>ST_SummaryStatsAgg</function></funcdef>
+						<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+						<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
+						<paramdef><type>double precision </type> <parameter>sample_percent</parameter></paramdef>
+				 	</funcprototype>
+				  				  
+					<funcprototype>
+						<funcdef>summarystats <function>ST_SummaryStatsAgg</function></funcdef>
+						<paramdef><type>raster </type> <parameter>rast</parameter></paramdef>
+						<paramdef><type>integer </type> <parameter>nband</parameter></paramdef>
+						<paramdef><type>boolean </type> <parameter>exclude_nodata_value</parameter></paramdef>
+				 	</funcprototype>
+				</funcsynopsis>
+			</refsynopsisdiv>
+		
+			<refsection>
+				<title>Description</title>
+				
+				<para>Returns <xref linkend="summarystats"/> consisting of count, sum, mean, stddev, min, max for a given raster band of a raster or raster coverage.  If no band is specified <varname>nband</varname> defaults to 1.</para>
+
+				<note><para>By default only considers pixel values not equal to the <varname>NODATA</varname> value. Set <varname>exclude_nodata_value</varname> to False to get count of all pixels.</para></note>
+				
+				<note><para>By default will sample all pixels. To get faster response, set <varname>sample_percent</varname> to value between 0 and 1</para></note>
+
+				<para>Availability: 2.2.0 </para>
+			</refsection>
+				
+			<refsection>
+				<title>Examples</title>
+				<programlisting>
+WITH foo AS (
+	SELECT
+		rast.rast
+	FROM (
+		SELECT ST_SetValue(
+			ST_SetValue(
+				ST_SetValue(
+					ST_AddBand(
+						ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
+						, 1, '64BF', 0, 0
+					)
+					, 1, 1, 1, -10
+				)
+				, 1, 5, 4, 0
+			)
+			, 1, 5, 5, 3.14159
+		) AS rast
+	) AS rast
+	FULL JOIN (
+		SELECT generate_series(1, 10) AS id
+	) AS id
+		ON 1 = 1
+)
+SELECT
+	(stats).count,
+	round((stats).sum::numeric, 3),
+	round((stats).mean::numeric, 3),
+	round((stats).stddev::numeric, 3),
+	round((stats).min::numeric, 3),
+	round((stats).max::numeric, 3)
+FROM (
+	SELECT
+		ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats
+	FROM foo
+) bar;
+
+ count |  round  | round  | round |  round  | round 
+-------+---------+--------+-------+---------+-------
+    20 | -68.584 | -3.429 | 6.571 | -10.000 | 3.142
+(1 row)
+				</programlisting>	
+			</refsection>
+			
+			<refsection>
+				<title>See Also</title>
+				<para>
+					<xref linkend="summarystats" />, 
+					<xref linkend="RT_ST_SummaryStats" />, 
+					<xref linkend="RT_ST_Count" />, 
+				 	<xref linkend="RT_ST_Clip" />
+				</para>
+			</refsection>
+		</refentry>
+
 		<refentry id="RT_ST_ValueCount">
 			<refnamediv>
 				<refname>ST_ValueCount</refname>
@@ -10583,7 +11142,7 @@ UPDATE wind
 				
 					<para>Returns the union of a set of raster tiles into a single raster composed of at least one band.  The resulting raster's extent is the extent of the whole set.  In the case of intersection, the resulting value is defined by <varname>uniontype</varname> which is one of the following: LAST (default), FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE.</para>
 					
-					<note>
+                    <note>
                       <para>In order for rasters to be unioned, they most all have the same alignment.  Use <xref linkend="RT_ST_SameAlignment" /> and <xref linkend="RT_ST_NotSameAlignmentReason" /> for more details and help. One way to fix alignment issues is to use <xref linkend="RT_ST_Resample" /> and use the same reference raster for alignment.</para>
                     </note>
 
@@ -10932,7 +11491,7 @@ WHERE rid = 2;
             </refsection>
 				
 				<refsection>
-					<title>Examples</title>
+					<title>Examples: Variant 1</title>
 				
 					<programlisting>SELECT 
     rid,
@@ -10948,6 +11507,23 @@ WHERE rid = 2;
 				</programlisting>
 			
 			</refsection>
+			
+			<refsection>
+					<title>Examples: Variant 2</title>
+				
+					<programlisting>SELECT 
+    rid,
+    st_value(
+              ST_MapAlgebra(rast, 1, 'st_mean4ma(double precision[][][], integer[][], text[])'::regprocedure,'32BF', 'FIRST', NULL, 1, 1)
+       ,  2, 2)
+  FROM dummy_rast 
+   WHERE rid = 2;
+ rid |     st_value
+-----+------------------
+   2 | 253.222229003906
+(1 row)</programlisting>
+			
+			</refsection>
 		
 			<refsection>
 				<title>See Also</title>
@@ -12356,76 +12932,77 @@ MULTIPOLYGON(((3427928 5793243.85,3427928 5793243.8,3427928 5793243.75,3427927.8
 	<sect1 id="RT_Operators">
 	<title>Raster Operators</title>
 		<refentry id="RT_Raster_Intersect">
-		<refnamediv>
-		<refname>&&</refname>
-		
-		<refpurpose>Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding box.</refpurpose>
-		</refnamediv>
-		
-		<refsynopsisdiv>
-		<funcsynopsis>
-			<funcprototype>
-			<funcdef>boolean <function>&&</function></funcdef>
-				<paramdef>
-					<type>raster </type>
-					<parameter>A</parameter>
-				</paramdef>
-				<paramdef>
-					<type>raster </type>
-					<parameter>B</parameter>
-				</paramdef>
-			</funcprototype>
-			
-			<funcprototype>
-			<funcdef>boolean <function>&&</function></funcdef>
-				<paramdef>
-					<type>raster </type>
-					<parameter>A</parameter>
-				</paramdef>
-				<paramdef>
-					<type>geometry </type>
-					<parameter>B</parameter>
-				</paramdef>
-			</funcprototype>
-			
-			<funcprototype>
-			<funcdef>boolean <function>&&</function></funcdef>
-				<paramdef>
-					<type>geometry </type>
-					<parameter>B</parameter>
-				</paramdef>
-				<paramdef>
-					<type>raster </type>
-					<parameter>A</parameter>
-				</paramdef>
-			</funcprototype>
-		</funcsynopsis>
-		</refsynopsisdiv>
-		
-		<refsection>
-		<title>Description</title>
-			<para>The <varname>&&</varname> operator returns <varname>TRUE</varname> if the bounding box of raster/geometr A intersects the bounding box of raster/geometr B.</para>
-		
-			<note><para>This operand will make use of any indexes that may be available on the
-			rasters.</para></note>
-		
-			<para>Availability: 2.0.0</para>
-		</refsection>
-		
-		<refsection>
+		  <refnamediv>
+			<refname>&&</refname>
+
+			<refpurpose>Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding box.</refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+				<funcprototype>
+				<funcdef>boolean <function>&&</function></funcdef>
+					<paramdef>
+						<type>raster </type>
+						<parameter>A</parameter>
+					</paramdef>
+					<paramdef>
+						<type>raster </type>
+						<parameter>B</parameter>
+					</paramdef>
+				</funcprototype>
+				
+				<funcprototype>
+				<funcdef>boolean <function>&&</function></funcdef>
+					<paramdef>
+						<type>raster </type>
+						<parameter>A</parameter>
+					</paramdef>
+					<paramdef>
+						<type>geometry </type>
+						<parameter>B</parameter>
+					</paramdef>
+				</funcprototype>
+				
+				<funcprototype>
+				<funcdef>boolean <function>&&</function></funcdef>
+					<paramdef>
+						<type>geometry </type>
+						<parameter>B</parameter>
+					</paramdef>
+					<paramdef>
+						<type>raster </type>
+						<parameter>A</parameter>
+					</paramdef>
+				</funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+				<para>The <varname>&&</varname> operator returns <varname>TRUE</varname> if the bounding box of raster/geometr A intersects the bounding box of raster/geometr B.</para>
+
+				<note><para>This operand will make use of any indexes that may be available on the
+				rasters.</para></note>
+
+				<para>Availability: 2.0.0</para>
+		  </refsection>
+
+		  <refsection>
 			<title>Examples</title>
-			
+
 			<programlisting>SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As intersect
-			FROM dummy_rast AS A CROSS JOIN dummy_rast AS B LIMIT 3;
-			
-			a_rid | b_rid | intersect
-			-------+-------+---------
-			2 |     2 | t
-			2 |     3 | f
-			2 |     1 | f
-			</programlisting>
-		</refsection>
-		</refentry>
+ FROM dummy_rast AS A CROSS JOIN dummy_rast AS B LIMIT 3;
+
+ a_rid | b_rid | intersect
+-------+-------+---------
+     2 |     2 | t
+     2 |     3 | f
+     2 |     1 | f
+</programlisting>
+		  </refsection>
+		 </refentry>
 		 
 		<refentry id="RT_Raster_OverLeft">
 		  <refnamediv>
@@ -12545,7 +13122,55 @@ a_rid | b_rid | overleft
 		  </refsection>
 		 </refentry>
 		 
-		 		<refentry id="RT_Raster_Contained">
+		<refentry id="RT_Raster_EQ">
+		  <refnamediv>
+			<refname>=</refname>
+
+			<refpurpose>Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses double precision bounding box.</refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>boolean <function>=</function></funcdef>
+
+				<paramdef>
+				  <type>raster </type>
+
+				  <parameter>A</parameter>
+				</paramdef>
+
+				<paramdef>
+				  <type>raster </type>
+
+				  <parameter>B</parameter>
+				</paramdef>
+			  </funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+			<para>The <varname>=</varname> operator returns <varname>TRUE</varname> if the bounding box of raster A
+			is the same as the bounding box of raster B.  PostgreSQL uses the =, <, and > operators defined for rasters  to
+			perform internal orderings and comparison of rasters (ie. in a GROUP BY or ORDER BY clause).</para>
+
+			<caution><para>This operand will NOT make use of any indexes that may be available on the
+				rasters. Use <xref linkend="RT_Raster_Same" /> instead.  This operator exists mostly so one can group by the raster column.</para></caution>
+				
+			<para>Availability:  2.1.0 </para>
+
+		  </refsection>
+
+		  <refsection>
+			<title>See Also</title>
+
+			<para><xref linkend="RT_Raster_Same" /></para>
+		  </refsection>
+		</refentry>
+
+		<refentry id="RT_Raster_Contained">
 		  <refnamediv>
 			<refname>@</refname>
 
@@ -12613,54 +13238,6 @@ a_rid | b_rid | overleft
 		  </refsection>
 		</refentry>
 		
-				<refentry id="RT_Raster_EQ">
-		  <refnamediv>
-			<refname>=</refname>
-
-			<refpurpose>Returns <varname>TRUE</varname> if A's bounding box is the same as B's. Uses double precision bounding box.</refpurpose>
-		  </refnamediv>
-
-		  <refsynopsisdiv>
-			<funcsynopsis>
-			  <funcprototype>
-				<funcdef>boolean <function>=</function></funcdef>
-
-				<paramdef>
-				  <type>raster </type>
-
-				  <parameter>A</parameter>
-				</paramdef>
-
-				<paramdef>
-				  <type>raster </type>
-
-				  <parameter>B</parameter>
-				</paramdef>
-			  </funcprototype>
-			</funcsynopsis>
-		  </refsynopsisdiv>
-
-		  <refsection>
-			<title>Description</title>
-
-			<para>The <varname>=</varname> operator returns <varname>TRUE</varname> if the bounding box of raster A
-			is the same as the bounding box of raster B.  PostgreSQL uses the =, <, and > operators defined for rasters  to
-			perform internal orderings and comparison of rasters (ie. in a GROUP BY or ORDER BY clause).</para>
-
-			<caution><para>This operand will NOT make use of any indexes that may be available on the
-				rasters. Use <xref linkend="RT_Raster_Same" /> instead.  This operator exists mostly so one can group by the raster column.</para></caution>
-				
-			<para>Availability:  2.1.0 </para>
-
-		  </refsection>
-
-		  <refsection>
-			<title>See Also</title>
-
-			<para><xref linkend="RT_Raster_Same" /></para>
-		  </refsection>
-		</refentry>
-		
 		<refentry id="RT_Raster_Same">
 		  <refnamediv>
 			<refname>~=</refname>
@@ -12714,8 +13291,8 @@ a_rid | b_rid | overleft
         <para><xref linkend="RT_ST_AddBand" />, <xref linkend="RT_Raster_EQ" /></para>
 		  </refsection>
 		</refentry>
-		 
-		 <refentry id="RT_Raster_Contains">
+		
+		<refentry id="RT_Raster_Contains">
 		  <refnamediv>
 			<refname>~</refname>
 
diff --git a/doc/reference_sfcgal.xml b/doc/reference_sfcgal.xml
index 783e46f..2379554 100644
--- a/doc/reference_sfcgal.xml
+++ b/doc/reference_sfcgal.xml
@@ -8,7 +8,7 @@
         </para>
         <para> 
             Installation instructions of the library can be found on SFCGAL home page <ulink url="http://www.sfcgal.org">http://www.sfcgal.org</ulink>. 
-            To load the functions execute postgis/sfcgal.sql
+            To load the functions create extension postgis_sfcgal. 
         </para>
         <para>
           Some SFCGAL functions replace standard ones (ST_Intersects, ST_Intersection, ST_Difference, ST_Union, ST_Area and ST_Distance), to switch between standard functions and SFCGAL function use:
@@ -77,7 +77,74 @@
 		<para>&P_support;</para>
 		<para>&T_support;</para>
 	  </refsection>
+	  
+	  <refsection><title>Examples</title>
+	  		<para>3D images were generated using the PostGIS <xref linkend="ST_AsX3D" /> and rendering in HTML using <ulink url="http://www.x3dom.org">X3Dom HTML Javascript redering library</ulink>.</para>
+	  		
+	  	 <informaltable>
+				  <tgroup cols="2">
+					<tbody>
+					  <row>
+						<entry><para>
+						<programlisting>SELECT ST_Buffer(ST_GeomFromText('POINT(100 90)'),
+  50, 'quad_segs=2'),0,0,30);</programlisting>
+						<informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_extrude01.png" />
+							  </imageobject>
+							  <caption><para>Original octagon formed from buffering point</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+					  <entry><para>
+					  <programlisting>ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),
+ 50, 'quad_segs=2'),0,0,30);</programlisting>
+					  <informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_extrude02.png" />
+							  </imageobject>
+							  <caption><para>Hexagon extruded 30 units along Z produces a PolyhedralSurfaceZ</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+					  </row>
+					  
+					<row>
+						<entry><para>
+						<programlisting>SELECT ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)')</programlisting>
+						<informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_extrude03.png" />
+							  </imageobject>
+							  <caption><para>Original linestring</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+					  <entry><para>
+					  <programlisting>SELECT ST_Extrude(
+ ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)'),0,0,10));</programlisting>
+					  <informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_extrude04.png" />
+							  </imageobject>
+							  <caption><para>LineString Extruded along Z produces a PolyhedralSurfaceZ</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+					  </row>
+				</tbody>
+				</tgroup>
+			</informaltable>
+	  </refsection>
+	  <refsection>
+				<title>See Also</title>
 
+				<para><xref linkend="ST_AsX3D" /></para>
+		</refsection>
 	</refentry>
 
 
@@ -106,9 +173,133 @@
 		<para>&P_support;</para>
 		<para>&T_support;</para>
 	  </refsection>
+	  
+	  <refsection><title>Examples</title>
+	  		<programlisting>SELECT ST_StraightSkeleton(ST_GeomFromText('POLYGON (( 190 190, 10 190, 10 10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))'));</programlisting>
+	  		
+	  	 <informaltable>
+				  <tgroup cols="2">
+					<tbody>
+					  <row>
+						<entry><para><informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_straightskeleton01.png" />
+							  </imageobject>
+							  <caption><para>Original polygon</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+					  <entry><para><informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_straightskeleton02.png" />
+							  </imageobject>
+							  <caption><para>Straight Skeleton of polygon</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+				</row>
+				</tbody>
+				</tgroup>
+			</informaltable>
+	  </refsection>
+
+	</refentry>
+
+	<refentry id="ST_ApproximateMedialAxis">
+	  <refnamediv>
+		<refname>ST_ApproximateMedialAxis</refname>
+
+		<refpurpose>Compute the approximate medial axis of an areal geometry.</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>geometry <function>ST_ApproximateMedialAxis</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+    <para>
+Return an approximate medial axis for the areal input based on
+its straight skeleton. Uses an SFCGAL specific API when built against
+a capable version (1.2.0+). Otherwise the function is just a wrapper
+around ST_StraightSkeleton (slower case).
+    </para>
+
+		<para>Availability: 2.2.0</para>
+		<para>&sfcgal_required;</para>
+		<para>&Z_support;</para>
+		<para>&P_support;</para>
+		<para>&T_support;</para>
+	  </refsection>
+	  
+	  <refsection><title>Examples</title>
+	  		<programlisting>SELECT ST_ApproximateMedialAxis(ST_GeomFromText('POLYGON (( 190 190, 10 190, 10 10, 190 10, 190 20, 160 30, 60 30, 60 130, 190 140, 190 190 ))'));</programlisting>
+	  		
+	  	 <informaltable>
+				  <tgroup cols="1">
+					<tbody>
+					  <row>
+						<entry><para><informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_approximatemedialaxis01.png" />
+							  </imageobject>
+							  <caption><para>A polygon and its approximate medial axis</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+				</row>
+				</tbody>
+				</tgroup>
+			</informaltable>
+	  </refsection>
+
+	  <refsection>
+				<title>See Also</title>
+
+				<para><xref linkend="ST_StraightSkeleton" /></para>
+		</refsection>
 
 	</refentry>
 
+
+	<refentry id="ST_IsPlanar">
+	  <refnamediv>
+		<refname>ST_IsPlanar</refname>
+
+		<refpurpose>Check if a surface is or not planar</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>boolean <function>ST_IsPlanar</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geom</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+		<para>Availability: 2.2.0: This was documented in 2.1.0 but got accidentally left out in 2.1 release.</para>
+		<para>&sfcgal_required;</para>
+		<para>&Z_support;</para>
+		<para>&P_support;</para>
+		<para>&T_support;</para>
+	  </refsection>
+
+	</refentry>
+
+
 	<refentry id="ST_Orientation">
 	  <refnamediv>
 		<refname>ST_Orientation</refname>
@@ -128,11 +319,11 @@
 	  <refsection>
 		<title>Description</title>
 
+		<para>The function only applies to polygons. It returns -1 if the polygon is counterclockwise oriented and 1 if the polygon is clockwise oriented.</para>
+
 		<para>Availability: 2.1.0</para>
 		<para>&sfcgal_required;</para>
 		<para>&Z_support;</para>
-		<para>&P_support;</para>
-		<para>&T_support;</para>
 	  </refsection>
 
 	</refentry>
@@ -187,12 +378,107 @@
 		<title>Description</title>
 
                 <para>This function performs a 2D minkowski sum of a point, line or polygon with a polygon.</para>
+                <para>A minkowski sum of two geometries A and B is the set of all points that are the sum of any point in A and B. Minkowski sums are often used in motion planning and computer-aided design. More details on <ulink url="https://en.wikipedia.org/wiki/Minkowski_addition">Wikipedia Minkowski addition</ulink>.</para>
                 <para>The first parameter can be any 2D geometry (point, linestring, polygon). If a 3D geometry is passed, it will be converted to 2D by forcing Z to 0, leading to possible cases of invalidity. The second parameter must be a 2D polygon.</para>
+                
+                <para>Implementation utilizes <ulink url="http://doc.cgal.org/latest/Minkowski_sum_2/">CGAL 2D Minkowskisum</ulink>.</para>
+               
 
 		<para>Availability: 2.1.0</para>
 		<para>&sfcgal_required;</para>
-		<para>&Z_support;</para>
 	  </refsection>
+	  
+	 <refsection><title>Examples</title>
+	 <para>Minkowski Sum of Linestring and circle polygon where Linestring cuts thru the circle</para>
+            <informaltable>
+                <tgroup cols="2">
+                    <tbody>
+                      <row>
+                        <entry>
+                         <para>
+                            <informalfigure>
+                            <mediaobject>
+                              <imageobject>
+                                <imagedata fileref="images/st_minkowskisum01.png" />
+                              </imageobject>
+                              <caption><para>Before Summing</para></caption>
+                            </mediaobject>
+                            </informalfigure>
+                                               </para>
+                        </entry>
+                        <entry>
+                           <para>
+                            <informalfigure>
+                            <mediaobject>
+                              <imageobject>
+                                  <imagedata fileref="images/st_minkowskisum02.png" />
+                              </imageobject>
+                              <caption><para>After summing</para></caption>
+                            </mediaobject>
+                            </informalfigure>
+                                              </para>
+                        </entry>
+                    </row>
+                    </tbody>
+                </tgroup>
+            </informaltable>
+            <programlisting>
+SELECT ST_MinkowskiSum(line, circle))
+FROM (SELECT 
+    ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(100, 100)) As line,
+    ST_Buffer(ST_GeomFromText('POINT(50 50)'), 30) As circle) As foo;
+    
+-- wkt --
+MULTIPOLYGON(((30 59.9999999999999,30.5764415879031 54.1472903395161,32.2836140246614 48.5194970290472,35.0559116309237 43.3328930094119,38.7867965644036 38.7867965644035,43.332893009412 35.0559116309236,48.5194970290474 32.2836140246614,54.1472903395162 30.5764415879031,60.0000000000001 30,65.8527096604839 30.5764415879031,71.4805029709527 32.2836140246614,76.6671069905881 35.0559116309237,81.2132034355964 38.7867965644036,171.213203435596 128.786796564404,174.944088369076 133.332893009 [...]
+161.480502970953 177.716385975339,155.852709660484 179.423558412097,150 180,144.147290339516 179.423558412097,138.519497029047 177.716385975339,133.332893009412 174.944088369076,128.786796564403 171.213203435596,38.7867965644035 81.2132034355963,35.0559116309236 76.667106990588,32.2836140246614 71.4805029709526,30.5764415879031 65.8527096604838,30 59.9999999999999)))
+            </programlisting>
+            
+        <para>Minkowski Sum of a polygon and multipoint</para>
+            <informaltable>
+                <tgroup cols="2">
+                    <tbody>
+                      <row>
+                        <entry>
+                         <para>
+                            <informalfigure>
+                            <mediaobject>
+                              <imageobject>
+                                <imagedata fileref="images/st_minkowskisum03.png" />
+                              </imageobject>
+                              <caption><para>Before Summing</para></caption>
+                            </mediaobject>
+                            </informalfigure>
+                          </para>
+                        </entry>
+                        <entry>
+                           <para>
+                            <informalfigure>
+                            <mediaobject>
+                              <imageobject>
+                                  <imagedata fileref="images/st_minkowskisum04.png" />
+                              </imageobject>
+                              <caption><para>After summing: polygon is duplicated and translated to position of points</para></caption>
+                            </mediaobject>
+                            </informalfigure>
+                           </para>
+                        </entry>
+                    </row>
+                    </tbody>
+                </tgroup>
+            </informaltable>
+            <programlisting>SELECT ST_MinkowskiSum(mp, poly)
+FROM (SELECT 'MULTIPOINT(25 50,70 25)'::geometry As mp,
+   'POLYGON((130 150, 20 40, 50 60, 125 100, 130 150))'::geometry As poly
+    ) As foo
+
+    
+-- wkt --
+MULTIPOLYGON(
+    ((70 115,100 135,175 175,225 225,70 115)),
+    ((120 65,150 85,225 125,275 175,120 65))
+    )
+            </programlisting>
+       </refsection>
 
 	</refentry>
 
@@ -222,14 +508,111 @@
 		<para>&P_support;</para>
 		<para>&T_support;</para>
 	  </refsection>
+	  
+	  		<refsection>
+		<title>Examples: 3D linestring and Polygon</title>	
+		<programlisting>	SELECT ST_AsText(ST_3DIntersection(linestring, polygon)) As wkt
+FROM  ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 10)') AS linestring
+ CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') AS polygon;
+
+              wkt
+--------------------------------
+ LINESTRING Z (1 1 8,0.5 0.5 8)
+		</programlisting>
+		
+		<para>Cube (closed Polyhedral Surface) and Polygon Z</para>
+		<programlisting>SELECT ST_AsText(ST_3DIntersection(
+		ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), 
+	((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), 
+	((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), 
+	((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'), 
+	'POLYGON Z ((0 0 0, 0 0 0.5, 0 0.5 0.5, 0 0.5 0, 0 0 0))'::geometry))</programlisting>
+		<screen>TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),((0 0.5 0,0 0 0,0 0.5 0.5,0 0.5 0)))</screen>
+		
+		<para>Intersection of 2 solids that result in volumetric intersection is also a solid (ST_Dimension returns 3)</para>
+		<programlisting>SELECT ST_AsText(ST_3DIntersection( ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),0,0,30),
+ ST_Extrude(ST_Buffer('POINT(10 20)'::geometry,10,1),2,0,10) ));</programlisting>
+ 	<screen>POLYHEDRALSURFACE Z (((13.3333333333333 13.3333333333333 10,20 20 0,20 20 10,13.3333333333333 13.3333333333333 10)),
+ 	((20 20 10,16.6666666666667 23.3333333333333 10,13.3333333333333 13.3333333333333 10,20 20 10)),
+ 	((20 20 0,16.6666666666667 23.3333333333333 10,20 20 10,20 20 0)),
+ 	((13.3333333333333 13.3333333333333 10,10 10 0,20 20 0,13.3333333333333 13.3333333333333 10)),
+ 	((16.6666666666667 23.3333333333333 10,12 28 10,13.3333333333333 13.3333333333333 10,16.6666666666667 23.3333333333333 10)),
+ 	((20 20 0,9.99999999999995 30 0,16.6666666666667 23.3333333333333 10,20 20 0)),
+ 	((10 10 0,9.99999999999995 30 0,20 20 0,10 10 0)),((13.3333333333333 13.3333333333333 10,12 12 10,10 10 0,13.3333333333333 13.3333333333333 10)),
+ 	((12 28 10,12 12 10,13.3333333333333 13.3333333333333 10,12 28 10)),
+ 	((16.6666666666667 23.3333333333333 10,9.99999999999995 30 0,12 28 10,16.6666666666667 23.3333333333333 10)),
+ 	((10 10 0,0 20 0,9.99999999999995 30 0,10 10 0)),
+ 	((12 12 10,11 11 10,10 10 0,12 12 10)),((12 28 10,11 11 10,12 12 10,12 28 10)),
+ 	((9.99999999999995 30 0,11 29 10,12 28 10,9.99999999999995 30 0)),((0 20 0,2 20 10,9.99999999999995 30 0,0 20 0)),
+ 	((10 10 0,2 20 10,0 20 0,10 10 0)),((11 11 10,2 20 10,10 10 0,11 11 10)),((12 28 10,11 29 10,11 11 10,12 28 10)),
+ 	((9.99999999999995 30 0,2 20 10,11 29 10,9.99999999999995 30 0)),((11 11 10,11 29 10,2 20 10,11 11 10)))</screen>
+
+	  </refsection>
+
+	</refentry>
+
+	<refentry id="ST_3DDifference">
+	  <refnamediv>
+		<refname>ST_3DDifference</refname>
+
+		<refpurpose>Perform 3D difference</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>geometry <function>ST_3DDifference</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>
+			<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+		<para>Availability: 2.2.0</para>
+		<para>&sfcgal_required;</para>
+		<para>&Z_support;</para>
+		<para>&P_support;</para>
+		<para>&T_support;</para>
+	  </refsection>
+	</refentry>
+
+	<refentry id="ST_3DUnion">
+	  <refnamediv>
+		<refname>ST_3DUnion</refname>
+
+		<refpurpose>Perform 3D union</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>geometry <function>ST_3DUnion</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>
+			<paramdef><type>geometry</type> <parameter>geom2</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
 
+		<para>Availability: 2.2.0</para>
+		<para>&sfcgal_required;</para>
+		<para>&Z_support;</para>
+		<para>&P_support;</para>
+		<para>&T_support;</para>
+	  </refsection>
 	</refentry>
 
+
 	<refentry id="ST_3DArea">
 	  <refnamediv>
 		<refname>ST_3DArea</refname>
 
-		<refpurpose>Computes area of 3D geometries</refpurpose>
+		<refpurpose>Computes area of 3D surface geometries.  Will return 0 for solids.</refpurpose>
 	  </refnamediv>
 
 	  <refsynopsisdiv>
@@ -250,14 +633,35 @@
 		<para>&P_support;</para>
 		<para>&T_support;</para>
 	  </refsection>
+	  
+	  <refsection><title>Examples</title>
+	  <para>Note: By default a PolyhedralSurface built from WKT is a surface geometry, not solid.  It therefore has surface area.  Once converted to a solid, no area.</para>
+<programlisting>SELECT ST_3DArea(geom) As cube_surface_area, 
+	ST_3DArea(ST_MakeSolid(geom)) As solid_surface_area
+  FROM (SELECT 'POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), 
+    ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), 
+    ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), 
+    ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), 
+    ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), 
+    ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'::geometry) As f(geom);
+    
+ cube_surface_area | solid_surface_area
+-------------------+--------------------
+                 6 |                  0    </programlisting>
+	  
+	  </refsection>
+	  <refsection>
+		<title>See Also</title>
 
+		<para><xref linkend="ST_Area" />, <xref linkend="ST_MakeSolid" />, <xref linkend="ST_IsSolid" />, <xref linkend="ST_Area" /></para>
+	  </refsection>
 	</refentry>
 
 	<refentry id="ST_Tesselate">
 	  <refnamediv>
 		<refname>ST_Tesselate</refname>
 
-		<refpurpose>Perform surface Tesselation</refpurpose>
+		<refpurpose>Perform surface Tesselation of a polygon or polyhedralsurface and returns as a TIN or collection of TINS</refpurpose>
 	  </refnamediv>
 
 	  <refsynopsisdiv>
@@ -271,14 +675,203 @@
 
 	  <refsection>
 		<title>Description</title>
-
+		<para>Takes as input a surface such a  MULTI(POLYGON) or POLYHEDRALSURFACE and returns a TIN representation via the process of tesselation using triangles.</para>
 		<para>Availability: 2.1.0</para>
 		<para>&sfcgal_required;</para>
 		<para>&Z_support;</para>
 		<para>&P_support;</para>
 		<para>&T_support;</para>
 	  </refsection>
+	  
+	  <refsection><title>Examples</title>
+	  <informaltable>
+				  <tgroup cols="2">
+					<tbody>
+					  <row>
+						<entry><para>
+						<programlisting>SELECT ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), 
+		((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), 
+		((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), 
+		((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )');</programlisting>
+						<informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_tesselate01.png" />
+							  </imageobject>
+							  <caption><para>Original Cube</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+					  <entry><para>
+					  <programlisting>SELECT ST_Tesselate(ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), 
+	((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), 
+	((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), 
+	((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'));</programlisting></para>
+		<para>ST_AsText output:</para>
+		<screen>TIN Z (((0 0 0,0 0 1,0 1 1,0 0 0)),((0 1 0,0 0 0,0 1 1,0 1 0)),
+	((0 0 0,0 1 0,1 1 0,0 0 0)),
+	((1 0 0,0 0 0,1 1 0,1 0 0)),((0 0 1,1 0 0,1 0 1,0 0 1)),
+	((0 0 1,0 0 0,1 0 0,0 0 1)),
+	((1 1 0,1 1 1,1 0 1,1 1 0)),((1 0 0,1 1 0,1 0 1,1 0 0)),
+	((0 1 0,0 1 1,1 1 1,0 1 0)),((1 1 0,0 1 0,1 1 1,1 1 0)),
+	((0 1 1,1 0 1,1 1 1,0 1 1)),((0 1 1,0 0 1,1 0 1,0 1 1)))</screen>
+		       <para> <informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_tesselate02.png" />
+							  </imageobject>
+							  <caption><para>Tesselated Cube with triangles colored</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+					  </row>
+					  
+					  <row>
+						<entry><para>
+						<programlisting>SELECT 'POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, 10 190 ))'::geometry;</programlisting>
+						<informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_tesselate03.png" />
+							  </imageobject>
+							  <caption><para>Original polygon</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+					  <entry><para>
+					  <programlisting>SELECT 
+	ST_Tesselate('POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, 10 190 ))'::geometry);</programlisting>
+	</para>
+	<para>ST_AsText output</para>
+	<screen>TIN(((80 130,50 160,80 70,80 130)),((50 160,10 190,10 70,50 160)),
+	 ((80 70,50 160,10 70,80 70)),((120 160,120 190,50 160,120 160)),
+ ((120 190,10 190,50 160,120 190)))</screen>
+					  <para><informalfigure>
+							<mediaobject>
+							  <imageobject>
+								<imagedata fileref="images/st_tesselate04.png" />
+							  </imageobject>
+							  <caption><para>Tesselated Polygon</para></caption>
+							</mediaobject>
+						  </informalfigure></para>
+					  </entry>
+					  </row>
+				</tbody>
+				</tgroup>
+			</informaltable>
+	  </refsection>
+
+	</refentry>
+
+	<refentry id="ST_Volume">
+	  <refnamediv>
+		<refname>ST_Volume</refname>
+
+		<refpurpose>Computes the volume of a 3D solid. If applied to surface (even closed) geometries will return 0.</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>float <function>ST_Volume</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+		<para>Availability: 2.2.0</para>
+		<para>&sfcgal_required;</para>
+		<para>&Z_support;</para>
+		<para>&P_support;</para>
+		<para>&T_support;</para>
+	  </refsection>
+	  
+	  <refsection>
+	      <title>Example</title>
+	      <para>When closed surfaces are created with WKT, they are treated as areal rather than solid.  To make them solid, you need to use <xref linkend="ST_MakeSolid" />.
+	      Areal geometries have no volume.  Here is an example to demonstrate.</para>
+	      <programlisting>SELECT ST_Volume(geom) As cube_surface_vol, 
+	ST_Volume(ST_MakeSolid(geom)) As solid_surface_vol
+  FROM (SELECT 'POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), 
+    ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), 
+    ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), 
+    ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), 
+    ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), 
+    ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'::geometry) As f(geom);
+    
+ cube_surface_vol | solid_surface_vol
+------------------+-------------------
+                0 |                 1
+	      </programlisting>
+	  </refsection>
+	  
+	  <refsection>
+		<title>See Also</title>
+
+		<para><xref linkend="ST_3DArea" />, <xref linkend="ST_MakeSolid" />, <xref linkend="ST_IsSolid" /></para>
+	  </refsection>
 
 	</refentry>
 
+	<refentry id="ST_MakeSolid">
+	  <refnamediv>
+		<refname>ST_MakeSolid</refname>
+
+		<refpurpose>Cast the geometry into a solid. No check is performed. To obtain a valid solid, the input geometry must be a closed Polyhedral Surface or a closed TIN.</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>geometry<function>ST_MakeSolid</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+		<para>Availability: 2.2.0</para>
+		<para>&sfcgal_required;</para>
+		<para>&Z_support;</para>
+		<para>&P_support;</para>
+		<para>&T_support;</para>
+	  </refsection>
+
+	</refentry>
+
+	<refentry id="ST_IsSolid">
+	  <refnamediv>
+		<refname>ST_IsSolid</refname>
+
+		<refpurpose>Test if the geometry is a solid. No validity check is performed.</refpurpose>
+	  </refnamediv>
+
+	  <refsynopsisdiv>
+		<funcsynopsis>
+		  <funcprototype>
+			<funcdef>boolean<function>ST_IsSolid</function></funcdef>
+			<paramdef><type>geometry</type> <parameter>geom1</parameter></paramdef>
+		  </funcprototype>
+		</funcsynopsis>
+	  </refsynopsisdiv>
+
+	  <refsection>
+		<title>Description</title>
+
+		<para>Availability: 2.2.0</para>
+		<para>&sfcgal_required;</para>
+		<para>&Z_support;</para>
+		<para>&P_support;</para>
+		<para>&T_support;</para>
+	  </refsection>
+
+	</refentry>
+
+
+
 </sect1>
diff --git a/doc/reference_temporal.xml b/doc/reference_temporal.xml
new file mode 100644
index 0000000..ab325e6
--- /dev/null
+++ b/doc/reference_temporal.xml
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sect1 id="Temporal">
+	  <title>Temporal Support</title>
+
+		<refentry id="ST_IsValidTrajectory">
+
+		  <refnamediv>
+			<refname>ST_IsValidTrajectory</refname>
+			<refpurpose>
+Returns <varname>true</varname> if the geometry is a valid trajectory.
+      </refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>boolean <function>ST_IsValidTrajectory</function></funcdef>
+				<paramdef><type>geometry </type> <parameter>line</parameter></paramdef>
+			  </funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+			<para>
+Tell if a geometry encodes a valid trajectory.
+Valid trajectories are encoded as LINESTRING with M value growing
+from each vertex to the next.
+			</para>
+
+			<para>
+Valid trajectories are expected as input to some spatio-temporal queries
+like <xref linkend="ST_ClosestPointOfApproach" />
+			</para>
+      
+			<para>Availability: 2.2.0</para>
+			<para>&Z_support;</para>
+		  </refsection>
+
+
+		  <refsection>
+			<title>Examples</title>
+<programlisting>
+-- A valid trajectory
+SELECT ST_IsValidTrajectory(ST_MakeLine(
+  ST_MakePointM(0,0,1),
+  ST_MakePointM(0,1,2))
+);
+ t
+
+-- An invalid trajectory
+SELECT ST_IsValidTrajectory(ST_MakeLine(ST_MakePointM(0,0,1), ST_MakePointM(0,1,0)));
+NOTICE:  Measure of vertex 1 (0) not bigger than measure of vertex 0 (1)
+ st_isvalidtrajectory
+----------------------
+ f
+</programlisting>
+		  </refsection>
+
+		  <!-- Optionally add a "See Also" section -->
+		  <refsection>
+			<title>See Also</title>
+			<para>
+<xref linkend="ST_ClosestPointOfApproach" />
+			</para>
+		  </refsection>
+		</refentry>
+
+		<refentry id="ST_ClosestPointOfApproach">
+
+		  <refnamediv>
+			<refname>ST_ClosestPointOfApproach</refname>
+			<refpurpose>
+Returns the measure at which points interpolated along two lines are closest.
+      </refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>float8 <function>ST_ClosestPointOfApproach</function></funcdef>
+				<paramdef><type>geometry </type> <parameter>track1</parameter></paramdef>
+				<paramdef><type>geometry </type> <parameter>track2</parameter></paramdef>
+			  </funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+			<para>
+Returns the smallest measure at which point interpolated along the given
+lines are at the smallest distance. Inputs must be valid trajectories as
+checked by <xref linkend="ST_IsValidTrajectory" />. Null is returned if
+the trajectories do not overlap on the M range.
+			</para>
+      
+			<para>
+See <xref linkend="ST_LocateAlong" /> for getting the actual points at
+the given measure.
+			</para>
+			
+			<para>Availability: 2.2.0</para>
+			<para>&Z_support;</para>
+		  </refsection>
+
+
+		  <refsection>
+			<title>Examples</title>
+<programlisting>
+-- Return the time in which two objects moving between 10:00 and 11:00
+-- are closest to each other and their distance at that point
+WITH inp AS ( SELECT
+  ST_AddMeasure('LINESTRING Z (0 0 0, 10 0 5)'::geometry,
+    extract(epoch from '2015-05-26 10:00'::timestamptz),
+    extract(epoch from '2015-05-26 11:00'::timestamptz)
+  ) a,
+  ST_AddMeasure('LINESTRING Z (0 2 10, 12 1 2)'::geometry,
+    extract(epoch from '2015-05-26 10:00'::timestamptz),
+    extract(epoch from '2015-05-26 11:00'::timestamptz)
+  ) b
+), cpa AS (
+  SELECT ST_ClosestPointOfApproach(a,b) m FROM inp
+), points AS (
+  SELECT ST_Force3DZ(ST_GeometryN(ST_LocateAlong(a,m),1)) pa,
+         ST_Force3DZ(ST_GeometryN(ST_LocateAlong(b,m),1)) pb
+  FROM inp, cpa
+)
+SELECT to_timestamp(m) t,
+       ST_Distance(pa,pb) distance
+FROM points, cpa;
+
+               t               |     distance
+-------------------------------+------------------
+ 2015-05-26 10:45:31.034483+02 | 1.96036833151395
+</programlisting>
+		  </refsection>
+
+		  <!-- Optionally add a "See Also" section -->
+		  <refsection>
+			<title>See Also</title>
+			<para>
+<xref linkend="ST_IsValidTrajectory" />,
+<xref linkend="ST_DistanceCPA" />,
+<xref linkend="ST_LocateAlong" />,
+<xref linkend="ST_AddMeasure" />
+			</para>
+		  </refsection>
+		</refentry>
+
+		<refentry id="ST_DistanceCPA">
+
+		  <refnamediv>
+			<refname>ST_DistanceCPA</refname>
+			<refpurpose>
+Returns the distance between closest points of approach in two trajectories.
+      </refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>float8 <function>ST_DistanceCPA</function></funcdef>
+				<paramdef><type>geometry </type> <parameter>track1</parameter></paramdef>
+				<paramdef><type>geometry </type> <parameter>track2</parameter></paramdef>
+			  </funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+			<para>
+Returns the minimum distance two moving objects have ever been each-other.
+Inputs must be valid trajectories as checked by
+<xref linkend="ST_IsValidTrajectory" />.
+Null is returned if the trajectories do not overlap on the M range.
+			</para>
+      
+			<para>Availability: 2.2.0</para>
+			<para>&Z_support;</para>
+		  </refsection>
+
+
+		  <refsection>
+			<title>Examples</title>
+<programlisting>
+-- Return the minimum distance of two objects moving between 10:00 and 11:00
+WITH inp AS ( SELECT
+  ST_AddMeasure('LINESTRING Z (0 0 0, 10 0 5)'::geometry,
+    extract(epoch from '2015-05-26 10:00'::timestamptz),
+    extract(epoch from '2015-05-26 11:00'::timestamptz)
+  ) a,
+  ST_AddMeasure('LINESTRING Z (0 2 10, 12 1 2)'::geometry,
+    extract(epoch from '2015-05-26 10:00'::timestamptz),
+    extract(epoch from '2015-05-26 11:00'::timestamptz)
+  ) b
+)
+SELECT ST_DistanceCPA(a,b) distance FROM inp;
+
+     distance
+------------------
+ 1.96036833151395
+</programlisting>
+		  </refsection>
+
+		  <!-- Optionally add a "See Also" section -->
+		  <refsection>
+			<title>See Also</title>
+			<para>
+<xref linkend="ST_IsValidTrajectory" />,
+<xref linkend="ST_ClosestPointOfApproach" />,
+<xref linkend="ST_AddMeasure" />,
+<xref linkend="geometry_distance_cpa" />
+			</para>
+		  </refsection>
+		</refentry>
+
+		<refentry id="ST_CPAWithin">
+
+		  <refnamediv>
+			<refname>ST_CPAWithin</refname>
+			<refpurpose>
+Returns true if the trajectories' closest points of approach
+are within the specified distance.
+      </refpurpose>
+		  </refnamediv>
+
+		  <refsynopsisdiv>
+			<funcsynopsis>
+			  <funcprototype>
+				<funcdef>float8 <function>ST_CPAWithin</function></funcdef>
+				<paramdef><type>geometry </type> <parameter>track1</parameter></paramdef>
+				<paramdef><type>geometry </type> <parameter>track2</parameter></paramdef>
+				<paramdef><type>float8 </type> <parameter>maxdist</parameter></paramdef>
+			  </funcprototype>
+			</funcsynopsis>
+		  </refsynopsisdiv>
+
+		  <refsection>
+			<title>Description</title>
+
+			<para>
+Checks whether two moving objects have ever been within the
+specified max distance.
+      </para>
+			<para>
+Inputs must be valid trajectories as checked by
+<xref linkend="ST_IsValidTrajectory" />.
+False is returned if the trajectories do not overlap on the M range.
+			</para>
+      
+			<para>Availability: 2.2.0</para>
+			<para>&Z_support;</para>
+		  </refsection>
+
+
+		  <refsection>
+			<title>Examples</title>
+<programlisting>
+WITH inp AS ( SELECT
+  ST_AddMeasure('LINESTRING Z (0 0 0, 10 0 5)'::geometry,
+    extract(epoch from '2015-05-26 10:00'::timestamptz),
+    extract(epoch from '2015-05-26 11:00'::timestamptz)
+  ) a,
+  ST_AddMeasure('LINESTRING Z (0 2 10, 12 1 2)'::geometry,
+    extract(epoch from '2015-05-26 10:00'::timestamptz),
+    extract(epoch from '2015-05-26 11:00'::timestamptz)
+  ) b
+)
+SELECT ST_CPAWithin(a,b,2), ST_DistanceCPA(a,b) distance FROM inp;
+
+ st_cpawithin |     distance
+--------------+------------------
+ t            | 1.96521473776207
+</programlisting>
+		  </refsection>
+
+		  <!-- Optionally add a "See Also" section -->
+		  <refsection>
+			<title>See Also</title>
+			<para>
+<xref linkend="ST_IsValidTrajectory" />,
+<xref linkend="ST_ClosestPointOfApproach" />,
+<xref linkend="ST_DistanceCPA" />,
+<xref linkend="geometry_distance_cpa" />
+			</para>
+		  </refsection>
+		</refentry>
+
+  </sect1>
diff --git a/doc/release_notes.xml b/doc/release_notes.xml
index bcfe509..89e645e 100644
--- a/doc/release_notes.xml
+++ b/doc/release_notes.xml
@@ -2,164 +2,187 @@
 <appendix id="release_notes">
   <title>Appendix</title>
     <subtitle>Release Notes</subtitle>
-	
+
     <sect1>
-      <title>Release 2.1.8</title>
-      <para>Release date: 2015-07-07</para>
-      <para>This is a critical bug fix release.</para>
+		  <title>Release 2.2.0</title>
+		  <para>Release date: 2015/10/DD</para>
+      <para>This is a new feature release, with new functions, improved performance, and other goodies.</para>
       <simplesect>
-        <title>Bug Fixes</title>
-        <para>#3159, do not force a bbox cache on ST_Affine</para>
-        <para>#3018, GROUP BY geography sometimes returns duplicate rows</para>
-        <para>#3048, shp2pgsql - illegal number format when specific system locale set</para>
-        <para>#3094, Malformed GeoJSON inputs crash backend</para>
-        <para>#3104, st_asgml introduces random characters in ID field</para>
-        <para>#3155, Remove liblwgeom.h on make uninstall</para>
-        <para>#3177, gserialized_is_empty cannot handle nested empty cases</para>
-        <para>Fix crash in ST_LineLocatePoint</para>
+        <title>New Features</title>
+        <para>Topology API in liblwgeom (Sandro Santilli / Regione Toscana - SITA)</para>
+        <para>New lwgeom_unaryunion method in liblwgeom</para>
+        <para>New lwgeom_linemerge method in liblwgeom</para>
+        <para>New lwgeom_is_simple method in liblwgeom</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3169"><ulink url="http://trac.osgeo.org/postgis/ticket/3169">#3169</ulink></ulink>, Add SFCGAL 1.1 support: add ST_3DDifference, ST_3DUnion, ST_Volume, ST_MakeSolid, ST_IsSolid (Vincent Mora / Oslandia)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3169"><ulink url="http://trac.osgeo.org/postgis/ticket/3169">#3169</ulink></ulink>, ST_ApproximateMedialAxis (Sandro Santilli)</para>
+        <para>ST_CPAWithin (Sandro Santilli / Boundless)</para>
+        <para>Add |=| operator with CPA semantic and KNN support with PgSQL 9.5+ (Sandro Santilli / Boundless)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3131"><ulink url="http://trac.osgeo.org/postgis/ticket/3131">#3131</ulink></ulink>, KNN support for the geography type (Paul Ramsey / CartoDB)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3023"><ulink url="http://trac.osgeo.org/postgis/ticket/3023">#3023</ulink></ulink>, ST_ClusterIntersecting / ST_ClusterWithin (Dan Baston)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2703"><ulink url="http://trac.osgeo.org/postgis/ticket/2703">#2703</ulink></ulink>, Exact KNN results for all geometry types, aka "KNN re-check" (Paul Ramsey / CartoDB)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/1137"><ulink url="http://trac.osgeo.org/postgis/ticket/1137">#1137</ulink></ulink>, Allow a tolerance value in ST_RemoveRepeatedPoints (Paul Ramsey / CartoDB)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3062"><ulink url="http://trac.osgeo.org/postgis/ticket/3062">#3062</ulink></ulink>, Allow passing M factor to ST_Scale (Sandro Santilli / Boundless)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3139"><ulink url="http://trac.osgeo.org/postgis/ticket/3139">#3139</ulink></ulink>, ST_BoundingDiagonal (Sandro Santilli / Boundless)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3129"><ulink url="http://trac.osgeo.org/postgis/ticket/3129">#3129</ulink></ulink>, ST_IsValidTrajectory (Sandro Santilli / Boundless)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3128"><ulink url="http://trac.osgeo.org/postgis/ticket/3128">#3128</ulink></ulink>, ST_ClosestPointOfApproach (Sandro Santilli / Boundless)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3152"><ulink url="http://trac.osgeo.org/postgis/ticket/3152">#3152</ulink></ulink>, ST_DistanceCPA (Sandro Santilli / Boundless)</para>
+        <para>Canonical output for index key types</para>
+        <para>ST_SwapOrdinates (Sandro Santilli / Boundless)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2918"><ulink url="http://trac.osgeo.org/postgis/ticket/2918">#2918</ulink></ulink>, Use GeographicLib functions for geodetics (Mike Toews)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3074"><ulink url="http://trac.osgeo.org/postgis/ticket/3074">#3074</ulink></ulink>, ST_Subdivide to break up large geometry (Paul Ramsey / CartoDB)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3040"><ulink url="http://trac.osgeo.org/postgis/ticket/3040">#3040</ulink></ulink>, KNN GiST index based centroid (<<->>) n-D distance operators (Sandro Santilli / Boundless)</para>
+        <para>Interruptibility API for liblwgeom (Sandro Santilli / CartoDB)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2939"><ulink url="http://trac.osgeo.org/postgis/ticket/2939">#2939</ulink></ulink>, ST_ClipByBox2D (Sandro Santilli / CartoDB)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2247"><ulink url="http://trac.osgeo.org/postgis/ticket/2247">#2247</ulink></ulink>, ST_Retile and ST_CreateOverview: in-db raster overviews creation (Sandro Santilli / Vizzuality)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/899"><ulink url="http://trac.osgeo.org/postgis/ticket/899">#899</ulink></ulink>, -m shp2pgsql attribute names mapping -m switch (Regina Obe / Sandro Santilli)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/1678"><ulink url="http://trac.osgeo.org/postgis/ticket/1678">#1678</ulink></ulink>, Added GUC postgis.gdal_datapath to specify GDAL config variable GDAL_DATA</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2843"><ulink url="http://trac.osgeo.org/postgis/ticket/2843">#2843</ulink></ulink>, Support reprojection on raster import (Sandro Santilli / Vizzuality)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2349"><ulink url="http://trac.osgeo.org/postgis/ticket/2349">#2349</ulink></ulink>, Support for encoded_polyline input/output (Kashif Rasul)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2159"><ulink url="http://trac.osgeo.org/postgis/ticket/2159">#2159</ulink></ulink>, report libjson version from postgis_full_version()</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2770"><ulink url="http://trac.osgeo.org/postgis/ticket/2770">#2770</ulink></ulink>, ST_MemSize(raster)</para>
+        <para>Add postgis_noop(raster)</para>
+        <para>Added missing variants of ST_TPI(), ST_TRI() and ST_Roughness()</para>
+        <para>Added GUC postgis.gdal_enabled_drivers to specify GDAL config variable GDAL_SKIP</para>
+        <para>Added GUC postgis.enable_outdb_rasters to enable access to rasters with out-db bands</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2387"><ulink url="http://trac.osgeo.org/postgis/ticket/2387">#2387</ulink></ulink>, address_standardizer extension as part of PostGIS (Stephen Woodbridge / imaptools.com, Walter Sinclair, Regina Obe)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2816"><ulink url="http://trac.osgeo.org/postgis/ticket/2816">#2816</ulink></ulink>, address_standardizer_data_us extension  provides reference lex,gaz,rules for address_standardizer (Stephen Woodbridge / imaptools.com, Walter Sinclair, Regina Obe)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2341"><ulink url="http://trac.osgeo.org/postgis/ticket/2341">#2341</ulink></ulink>, New mask parameter for ST_MapAlgebra</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2397"><ulink url="http://trac.osgeo.org/postgis/ticket/2397">#2397</ulink></ulink>, read encoding info automatically in shapefile loader</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2430"><ulink url="http://trac.osgeo.org/postgis/ticket/2430">#2430</ulink></ulink>, ST_ForceCurve</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2565"><ulink url="http://trac.osgeo.org/postgis/ticket/2565">#2565</ulink></ulink>, ST_SummaryStatsAgg()</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2567"><ulink url="http://trac.osgeo.org/postgis/ticket/2567">#2567</ulink></ulink>, ST_CountAgg()</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2632"><ulink url="http://trac.osgeo.org/postgis/ticket/2632">#2632</ulink></ulink>, ST_AsGML() support for curved features</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2652"><ulink url="http://trac.osgeo.org/postgis/ticket/2652">#2652</ulink></ulink>, Add --upgrade-path switch to run_test.pl</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2754"><ulink url="http://trac.osgeo.org/postgis/ticket/2754">#2754</ulink></ulink>, sfcgal wrapped as an extension</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2227"><ulink url="http://trac.osgeo.org/postgis/ticket/2227">#2227</ulink></ulink>, Simplification with Visvalingam-Whyatt algorithm ST_SimplifyVW, ST_SetEffectiveArea (Nicklas Avén)</para>
+        <para>Functions to encode and decode TWKB ST_AsTWKB, ST_GeomFromTWKB (Paul Ramsey / Nicklas Avén / CartoDB)</para>
       </simplesect>
-    </sect1>
-    
-    <sect1>
-      <title>Release 2.1.7</title>
-      <para>Release date: 2015-03-30</para>
-      <para>This is a critical bug fix release.</para>
       <simplesect>
-        <title>Bug Fixes</title>
-        <para>#3086, ST_DumpValues() crashes backend on cleanup with invalid band indexes</para>
-        <para>#3088, Do not (re)define strcasestr in a liblwgeom.h</para>
-        <para>#3094, Malformed GeoJSON inputs crash backend</para>
-      </simplesect>
-    </sect1>
-  
-    <sect1>
-      <title>Release 2.1.6</title>
-      <para>Release date: 2015-03-20</para>
-      <para>This is a bug fix and performance improvement release.</para>
-      <simplesect>  
         <title>Enhancements</title>
-        <para>#3000, Ensure edge splitting and healing algorithms use indexes</para>
-        <para>#3048, Speed up geometry simplification (J.Santana @ CartoDB)</para>
-        <para>#3050, Speep up geometry type reading (J.Santana @ CartoDB)</para>
-      </simplesect>
-      <simplesect>
-        <title>Bug Fixes</title>
-        <para>#2941, allow geography columns with SRID other than 4326</para>
-        <para>#3069, small objects getting inappropriately fluffed up w/ boxes</para>
-        <para>#3068, Have postgis_typmod_dims return NULL for unconstrained dims</para>
-        <para>#3061, Allow duplicate points in JSON, GML, GML ST_GeomFrom* functions</para>
-        <para>#3058, Fix ND-GiST picksplit method to split on the best plane</para>
-        <para>#3052, Make operators <-> and <#> available for PostgreSQL < 9.1</para>
-        <para>#3045, Fix dimensionality confusion in &&& operator</para>
-        <para>#3016, Allow unregistering layers of corrupted topologies</para>
-        <para>#3015, Avoid exceptions from TopologySummary</para>
-        <para>#3020, ST_AddBand out-db bug where height using width value</para>
-        <para>#3031, Allow restore of Geometry(Point) tables dumped with empties in them</para>
-      </simplesect>
-    </sect1>
-  
-    <sect1>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3223"><ulink url="http://trac.osgeo.org/postgis/ticket/3223">#3223</ulink></ulink>, Add memcmp short-circuit to ST_Equals (Daniel Baston)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3227"><ulink url="http://trac.osgeo.org/postgis/ticket/3227">#3227</ulink></ulink>, Tiger geocoder upgraded to support Tiger 2015 census</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2278"><ulink url="http://trac.osgeo.org/postgis/ticket/2278">#2278</ulink></ulink>, Make liblwgeom compatible between minor releases</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/897"><ulink url="http://trac.osgeo.org/postgis/ticket/897">#897</ulink></ulink>, ST_AsX3D support for GeoCoordinates and systems "GD" "WE" ability to flip x/y axis (use option = 2, 3)</para>
+        <para>ST_Split: allow splitting lines by multilines, multipoints and (multi)polygon boundaries</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3070"><ulink url="http://trac.osgeo.org/postgis/ticket/3070">#3070</ulink></ulink>, Simplify geometry type constraint</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2839"><ulink url="http://trac.osgeo.org/postgis/ticket/2839">#2839</ulink></ulink>, Implement selectivity estimator for functional indexes, speeding up spatial queries on raster tables. (Sandro Santilli / Vizzuality)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2361"><ulink url="http://trac.osgeo.org/postgis/ticket/2361">#2361</ulink></ulink>, Added spatial_index column to raster_columns view</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2390"><ulink url="http://trac.osgeo.org/postgis/ticket/2390">#2390</ulink></ulink>, Testsuite for pgsql2shp</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2527"><ulink url="http://trac.osgeo.org/postgis/ticket/2527">#2527</ulink></ulink>, Added -k flag to raster2pgsql to skip checking that band is NODATA</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2616"><ulink url="http://trac.osgeo.org/postgis/ticket/2616">#2616</ulink></ulink>, Reduce text casts during topology building and export</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2717"><ulink url="http://trac.osgeo.org/postgis/ticket/2717">#2717</ulink></ulink>, support startpoint, endpoint, pointn, numpoints for compoundcurve</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2747"><ulink url="http://trac.osgeo.org/postgis/ticket/2747">#2747</ulink></ulink>, Add support for GDAL 2.0</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2754"><ulink url="http://trac.osgeo.org/postgis/ticket/2754">#2754</ulink></ulink>, SFCGAL can now be installed with CREATE EXTENSION (Vincent Mora @ Oslandia)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2828"><ulink url="http://trac.osgeo.org/postgis/ticket/2828">#2828</ulink></ulink>, Convert ST_Envelope(raster) from SQL to C</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2829"><ulink url="http://trac.osgeo.org/postgis/ticket/2829">#2829</ulink></ulink>, Shortcut ST_Clip(raster) if geometry fully contains the raster and no NODATA specified</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2906"><ulink url="http://trac.osgeo.org/postgis/ticket/2906">#2906</ulink></ulink>, Update tiger geocoder to handle tiger 2014 data</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3048"><ulink url="http://trac.osgeo.org/postgis/ticket/3048">#3048</ulink></ulink>, Speed up geometry simplification (J.Santana @ CartoDB)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/3092"><ulink url="http://trac.osgeo.org/postgis/ticket/3092">#3092</ulink></ulink>, Slow performance of geometry_columns with many tables</para>
+    </simplesect>
+	</sect1>
+	
+	<sect1>
         <title>Release 2.1.5</title>
         <para>Release date: 2014-12-18</para>
         <para>This is a bug fix and performance improvement release.</para>
         <simplesect>
             <title>Enhancements</title>
-            <para>#2933, Speedup construction of large multi-geometry objects</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2933"><ulink url="http://trac.osgeo.org/postgis/ticket/2933">#2933</ulink></ulink>, Speedup construction of large multi-geometry objects</para>
         </simplesect>
         <simplesect>
               <title>Bug Fixes</title>
 							
-						  <para>#2947, Fix memory leak in lwgeom_make_valid for single-component
+						  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2947"><ulink url="http://trac.osgeo.org/postgis/ticket/2947">#2947</ulink></ulink>, Fix memory leak in lwgeom_make_valid for single-component
 						           collection input</para>
-						  <para>#2949, Fix memory leak in lwgeom_mindistance2d for curve input</para>
-						  <para>#2931, BOX representation is case sensitive</para>
-						  <para>#2942, PostgreSQL 9.5 support</para>
-						  <para>#2953, 2D stats not generated when Z/M values are extreme</para>
-						  <para>#3009, Geography cast may effect underlying tuple</para>
+						  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2949"><ulink url="http://trac.osgeo.org/postgis/ticket/2949">#2949</ulink></ulink>, Fix memory leak in lwgeom_mindistance2d for curve input</para>
+						  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2931"><ulink url="http://trac.osgeo.org/postgis/ticket/2931">#2931</ulink></ulink>, BOX representation is case sensitive</para>
+						  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2942"><ulink url="http://trac.osgeo.org/postgis/ticket/2942">#2942</ulink></ulink>, PostgreSQL 9.5 support</para>
+						  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2953"><ulink url="http://trac.osgeo.org/postgis/ticket/2953">#2953</ulink></ulink>, 2D stats not generated when Z/M values are extreme</para>
+						  <para><ulink url="http://trac.osgeo.org/postgis/ticket/3009"><ulink url="http://trac.osgeo.org/postgis/ticket/3009">#3009</ulink></ulink>, Geography cast may effect underlying tuple</para>
          </simplesect>
     </sect1>
-		
-    <sect1>
+    
+	<sect1>
         <title>Release 2.1.4</title>
         <para>Release date: 2014-09-10</para>
         <para>This is a bug fix and performance improvement release.</para>
         <simplesect>
             <title>Enhancements</title>
-            <para>#2745, Speedup ST_Simplify calls against points</para>
-            <para>#2747, Support for GDAL 2.0</para>
-            <para>#2749, Make rtpostgis_upgrade_20_21.sql ACID</para>
-            <para>#2811, Do not specify index names when loading shapefiles/rasters</para>
-            <para>#2829, Shortcut ST_Clip(raster) if geometry fully contains the raster
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2745"><ulink url="http://trac.osgeo.org/postgis/ticket/2745">#2745</ulink></ulink>, Speedup ST_Simplify calls against points</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2747"><ulink url="http://trac.osgeo.org/postgis/ticket/2747">#2747</ulink></ulink>, Support for GDAL 2.0</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2749"><ulink url="http://trac.osgeo.org/postgis/ticket/2749">#2749</ulink></ulink>, Make rtpostgis_upgrade_20_21.sql ACID</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2811"><ulink url="http://trac.osgeo.org/postgis/ticket/2811">#2811</ulink></ulink>, Do not specify index names when loading shapefiles/rasters</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2829"><ulink url="http://trac.osgeo.org/postgis/ticket/2829">#2829</ulink></ulink>, Shortcut ST_Clip(raster) if geometry fully contains the raster
                        and no NODATA specified</para>
-            <para>#2895, Raise cost of ST_ConvexHull(raster) to 300 for better query plans</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2895"><ulink url="http://trac.osgeo.org/postgis/ticket/2895">#2895</ulink></ulink>, Raise cost of ST_ConvexHull(raster) to 300 for better query plans</para>
         </simplesect>
 
         <simplesect>
               <title>Bug Fixes</title>
-              <para>#2605, armel: _ST_Covers() returns true for point in hole</para> 
-              <para>#2911, Fix output scale on ST_Rescale/ST_Resample/ST_Resize of rasters
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2605"><ulink url="http://trac.osgeo.org/postgis/ticket/2605">#2605</ulink></ulink>, armel: _ST_Covers() returns true for point in hole</para> 
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2911"><ulink url="http://trac.osgeo.org/postgis/ticket/2911">#2911</ulink></ulink>, Fix output scale on ST_Rescale/ST_Resample/ST_Resize of rasters
                        with scale 1/-1 and offset 0/0.</para>
               <para>Fix crash in ST_Union(raster)</para>
-              <para>#2704, ST_GeomFromGML() does not work properly with array of gml:pos
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2704"><ulink url="http://trac.osgeo.org/postgis/ticket/2704">#2704</ulink></ulink>, ST_GeomFromGML() does not work properly with array of gml:pos
                 (Even Roualt)</para>
-              <para>#2708, updategeometrysrid doesn't update srid check when schema
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2708"><ulink url="http://trac.osgeo.org/postgis/ticket/2708">#2708</ulink></ulink>, updategeometrysrid doesn't update srid check when schema
                        not specified. Patch from Marc Jansen</para>
-              <para>#2720, lwpoly_add_ring should update maxrings after realloc</para>
-              <para>#2759, Fix postgis_restore.pl handling of multiline object comments
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2720"><ulink url="http://trac.osgeo.org/postgis/ticket/2720">#2720</ulink></ulink>, lwpoly_add_ring should update maxrings after realloc</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2759"><ulink url="http://trac.osgeo.org/postgis/ticket/2759">#2759</ulink></ulink>, Fix postgis_restore.pl handling of multiline object comments
                        embedding sql comments</para>
-              <para>#2774, fix undefined behavior in ptarray_calculate_gbox_geodetic
-              - Fix potential memory fault in ST_MakeValid</para>
-              <para>#2784, Fix handling of bogus argument to --with-sfcgal</para>
-              <para>#2772, Premature memory free in RASTER_getBandPath (ST_BandPath)</para>
-              <para>#2755, Fix regressions tests against all versions of SFCGAL</para>
-              <para>#2775, lwline_from_lwmpoint leaks memory</para> 
-              <para>#2802, ST_MapAlgebra checks for valid callback function return value</para>
-              <para>#2803, ST_MapAlgebra handles no userarg and STRICT callback function</para>
-              <para>#2834, ST_Estimated_Extent and mixedCase table names (regression bug)</para>
-              <para>#2845, Bad geometry created from ST_AddPoint</para>
-              <para>#2870, Binary insert into geography column results geometry being inserted</para>
-              <para>#2872, make install builds documentation (Greg Troxell)</para>
-              <para>#2819, find isfinite or replacement on Centos5 / Solaris</para>
-              <para>#2899, geocode limit 1 not returning best answer (tiger geocoder)</para>
-              <para>#2903, Unable to compile on FreeBSD</para> 
-              <para>#2927  reverse_geocode not filling in direction prefix (tiger geocoder)
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2774"><ulink url="http://trac.osgeo.org/postgis/ticket/2774">#2774</ulink></ulink>, fix undefined behavior in ptarray_calculate_gbox_geodetic</para>
+              <para>Fix potential memory fault in ST_MakeValid</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2784"><ulink url="http://trac.osgeo.org/postgis/ticket/2784">#2784</ulink></ulink>, Fix handling of bogus argument to --with-sfcgal</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2772"><ulink url="http://trac.osgeo.org/postgis/ticket/2772">#2772</ulink></ulink>, Premature memory free in RASTER_getBandPath (ST_BandPath)</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2755"><ulink url="http://trac.osgeo.org/postgis/ticket/2755">#2755</ulink></ulink>, Fix regressions tests against all versions of SFCGAL</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2775"><ulink url="http://trac.osgeo.org/postgis/ticket/2775">#2775</ulink></ulink>, lwline_from_lwmpoint leaks memory</para> 
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2802"><ulink url="http://trac.osgeo.org/postgis/ticket/2802">#2802</ulink></ulink>, ST_MapAlgebra checks for valid callback function return value</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2803"><ulink url="http://trac.osgeo.org/postgis/ticket/2803">#2803</ulink></ulink>, ST_MapAlgebra handles no userarg and STRICT callback function</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2834"><ulink url="http://trac.osgeo.org/postgis/ticket/2834">#2834</ulink></ulink>, ST_Estimated_Extent and mixedCase table names (regression bug)</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2845"><ulink url="http://trac.osgeo.org/postgis/ticket/2845">#2845</ulink></ulink>, Bad geometry created from ST_AddPoint</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2870"><ulink url="http://trac.osgeo.org/postgis/ticket/2870">#2870</ulink></ulink>, Binary insert into geography column results geometry being inserted</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2872"><ulink url="http://trac.osgeo.org/postgis/ticket/2872">#2872</ulink></ulink>, make install builds documentation (Greg Troxell)</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2819"><ulink url="http://trac.osgeo.org/postgis/ticket/2819">#2819</ulink></ulink>, find isfinite or replacement on Centos5 / Solaris</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2899"><ulink url="http://trac.osgeo.org/postgis/ticket/2899">#2899</ulink></ulink>, geocode limit 1 not returning best answer (tiger geocoder)</para>
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2903"><ulink url="http://trac.osgeo.org/postgis/ticket/2903">#2903</ulink></ulink>, Unable to compile on FreeBSD</para> 
+              <para><ulink url="http://trac.osgeo.org/postgis/ticket/2927"><ulink url="http://trac.osgeo.org/postgis/ticket/2927">#2927</ulink></ulink>  reverse_geocode not filling in direction prefix (tiger geocoder)
                        get rid of deprecated ST_Line_Locate_Point called</para> 
          </simplesect>
     </sect1>
-    
-    <sect1>
+	
+	<sect1>
       <title>Release 2.1.3</title>
       <para>Release date: 2014/05/13</para>
       <para>This is a bug fix and security release.</para>
       <simplesect>
         <title>Important changes</title>
-<para>
-Starting with this version offline raster access and use of GDAL drivers
-are disabled by default.
-</para>
+			<para>
+			Starting with this version offline raster access and use of GDAL drivers
+			are disabled by default.
+			</para>
 
-<para>
-An environment variable is introduced to allow for enabling
-specific GDAL drivers: POSTGIS_GDAL_ENABLED_DRIVERS.
-By default, all GDAL drivers are disabled
-</para>
+			<para>
+			An environment variable is introduced to allow for enabling
+			specific GDAL drivers: POSTGIS_GDAL_ENABLED_DRIVERS.
+			By default, all GDAL drivers are disabled
+			</para>
 
-<para>
-An environment variable is introduced to allow for enabling
-out-db raster bands: POSTGIS_ENABLE_OUTDB_RASTERS.
-By default, out-db raster bands are disabled
-</para>
+			<para>
+			An environment variable is introduced to allow for enabling
+			out-db raster bands: POSTGIS_ENABLE_OUTDB_RASTERS.
+			By default, out-db raster bands are disabled
+			</para>
 
-<para>
-The environment variables must be set for the PostgreSQL process,
-and determines the behavior of the whole cluster.
-</para>
+			<para>
+			The environment variables must be set for the PostgreSQL process,
+			and determines the behavior of the whole cluster.
+			</para>
       </simplesect>
       <simplesect>
         <title>Bug Fixes</title>
-<para>#2697, invalid GeoJSON Polygon input crashes server process</para>
-<para>#2700, Fix dumping of higher-dimension datasets with null rows</para>
-<para>#2706, ST_DumpPoints of EMPTY geometries crashes server</para>
+			<para><ulink url="http://trac.osgeo.org/postgis/ticket/2697">#2697</ulink>, invalid GeoJSON Polygon input crashes server process</para>
+			<para><ulink url="http://trac.osgeo.org/postgis/ticket/2700">#2700</ulink>, Fix dumping of higher-dimension datasets with null rows</para>
+			<para><ulink url="http://trac.osgeo.org/postgis/ticket/2706">#2706</ulink>, ST_DumpPoints of EMPTY geometries crashes server</para>
       </simplesect>
     </sect1>
     <sect1>
@@ -168,63 +191,66 @@ and determines the behavior of the whole cluster.
       <para>This is a bug fix release, addressing issues that have been filed since the 2.1.1 release.</para>
       <simplesect>
         <title>Bug Fixes</title>
-            <para>#2666, Error out at configure time if no SQL preprocessor can be found</para>
-            <para>#2534, st_distance returning incorrect results for large geographies</para>
-            <para>#2539, Check for json-c/json.h presence/usability before json/json.h</para>
-            <para>#2543, invalid join selectivity error from simple query</para>
-            <para>#2546, GeoJSON with string coordinates parses incorrectly </para>
-            <para>#2547, Fix ST_Simplify(TopoGeometry) for hierarchical topogeoms</para>
-            <para>#2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2666">#2666</ulink>, Error out at configure time if no SQL preprocessor can be found</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2534">#2534</ulink>, st_distance returning incorrect results for large geographies</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2539">#2539</ulink>, Check for json-c/json.h presence/usability before json/json.h</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2543">#2543</ulink>, invalid join selectivity error from simple query</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2546">#2546</ulink>, GeoJSON with string coordinates parses incorrectly </para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2547">#2547</ulink>, Fix ST_Simplify(TopoGeometry) for hierarchical topogeoms</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2552">#2552</ulink>, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and
                        ST_AsJPEG</para>
-            <para>#2555, Fix parsing issue of range arguments of ST_Reclass</para>
-            <para>#2556, geography ST_Intersects results depending on insert order</para>
-            <para>#2580, Do not allow installing postgis twice in the same database</para>
-            <para>#2589, Remove use of unnecessary void pointers</para>
-            <para>#2607, Cannot open more than 1024 out-db files in one process</para>
-            <para>#2610, Ensure face splitting algorithm uses the edge index</para>
-            <para>#2615, EstimatedExtent (and hence, underlying stats) gathering wrong bbox</para>
-            <para>#2619, Empty rings array in GeoJSON polygon causes crash</para>
-            <para>#2634, regression in sphere distance code</para>
-            <para>#2638, Geography distance on M geometries sometimes wrong</para>
-            <para>#2648, #2653, Fix topology functions when "topology" is not in search_path</para>
-            <para>#2654, Drop deprecated calls from topology</para>
-            <para>#2655, Let users without topology privileges call postgis_full_version()</para>
-            <para>#2674, Fix missing operator = and hash_raster_ops opclass on raster</para>
-            <para>#2675, #2534, #2636, #2634, #2638, Geography distance issues with tree optimization</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2555">#2555</ulink>, Fix parsing issue of range arguments of ST_Reclass</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2556">#2556</ulink>, geography ST_Intersects results depending on insert order</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2580">#2580</ulink>, Do not allow installing postgis twice in the same database</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2589">#2589</ulink>, Remove use of unnecessary void pointers</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2607">#2607</ulink>, Cannot open more than 1024 out-db files in one process</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2610">#2610</ulink>, Ensure face splitting algorithm uses the edge index</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2615">#2615</ulink>, EstimatedExtent (and hence, underlying stats) gathering wrong bbox</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2619">#2619</ulink>, Empty rings array in GeoJSON polygon causes crash</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2634">#2634</ulink>, regression in sphere distance code</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2638">#2638</ulink>, Geography distance on M geometries sometimes wrong</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2648">#2648</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/2653">#2653</ulink>, Fix topology functions when "topology" is not in search_path</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2654">#2654</ulink>, Drop deprecated calls from topology</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2655">#2655</ulink>, Let users without topology privileges call postgis_full_version()</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2674">#2674</ulink>, Fix missing operator = and hash_raster_ops opclass on raster</para>
+            <para><ulink url="http://trac.osgeo.org/postgis/ticket/2675">#2675</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/2534">#2534</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/2636">#2636</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/2634">#2634</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/2638">#2638</ulink>, Geography distance issues with tree optimization</para>
       </simplesect>
       <simplesect>
         <title>Enhancements</title>
-          <para>#2494, avoid memcopy in GiST index (hayamiz)</para>
-          <para>#2560, soft upgrade: avoid drop/recreate of aggregates that hadn't changed</para>
+          <para><ulink url="http://trac.osgeo.org/postgis/ticket/2494">#2494</ulink>, avoid memcopy in GiST index (hayamiz)</para>
+          <para><ulink url="http://trac.osgeo.org/postgis/ticket/2560">#2560</ulink>, soft upgrade: avoid drop/recreate of aggregates that hadn't changed</para>
       </simplesect>
     </sect1>
+
     <sect1>
       <title>Release 2.1.1</title>
       <para>Release date: 2013/11/06</para>
       <para>This is a bug fix release, addressing issues that have been filed since the 2.1.0 release.</para>
       <simplesect>
         <title>Important Changes</title>
-        <para>#2514, Change raster license from GPL v3+ to v2+, allowing distribution of PostGIS Extension as GPLv2.</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2514">#2514</ulink>, Change raster license from GPL v3+ to v2+, allowing distribution of PostGIS Extension as GPLv2.</para>
       </simplesect>
       <simplesect>
         <title>Bug Fixes</title>
-        <para>#2396, Make regression tests more endian-agnostic</para>
-        <para>#2434, Fix ST_Intersection(geog,geog) regression in rare cases</para>
-        <para>#2454, Fix behavior of ST_PixelAsXXX functions regarding exclude_nodata_value parameter</para>
-        <para>#2489, Fix upgrades from 2.0 leaving stale function signatures</para>
-        <para>#2525, Fix handling of SRID in nested collections</para>
-        <para>#2449, Fix potential infinite loop in index building</para>
-        <para>#2493, Fix behavior of ST_DumpValues when passed an empty raster</para>
-        <para>#2502, Fix postgis_topology_scripts_installed() install schema</para>
-        <para>#2504, Fix segfault on bogus pgsql2shp call </para>
-        <para>#2512, Support for foreign tables and materialized views in raster_columns and raster_overviews</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2396">#2396</ulink>, Make regression tests more endian-agnostic</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2434">#2434</ulink>, Fix ST_Intersection(geog,geog) regression in rare cases</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2454">#2454</ulink>, Fix behavior of ST_PixelAsXXX functions regarding exclude_nodata_value parameter</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2489">#2489</ulink>, Fix upgrades from 2.0 leaving stale function signatures</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2525">#2525</ulink>, Fix handling of SRID in nested collections</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2449">#2449</ulink>, Fix potential infinite loop in index building</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2493">#2493</ulink>, Fix behavior of ST_DumpValues when passed an empty raster</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2502">#2502</ulink>, Fix postgis_topology_scripts_installed() install schema</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2504">#2504</ulink>, Fix segfault on bogus pgsql2shp call </para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2512">#2512</ulink>, Support for foreign tables and materialized views in raster_columns and raster_overviews</para>
       </simplesect>
       <simplesect>
         <title>Enhancements</title>
-        <para>#2478, support for tiger 2013</para>
-        <para>#2463, support for exact length calculations on arc geometries</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2478">#2478</ulink>, support for tiger 2013</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2463">#2463</ulink>, support for exact length calculations on arc geometries</para>
       </simplesect>
     </sect1>    
+
+		
     <sect1>
 		  <title>Release 2.1.0</title>
 		  <para>Release date: 2013/08/17</para>
@@ -232,15 +258,15 @@ and determines the behavior of the whole cluster.
 		If you are upgrading from 2.0+, only a soft upgrade is required.  If you are upgrading from 1.5 or earlier, a hard upgrade is required.</para>
 		<simplesect>	
     <title>Important / Breaking Changes</title>
-     <para>#1653, Removed srid parameter from ST_Resample(raster) and variants
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/1653">#1653</ulink>, Removed srid parameter from ST_Resample(raster) and variants
                with reference raster no longer apply reference raster's SRID.</para>
-     <para>#1962 ST_Segmentize - As a result of 
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/1962">#1962</ulink> ST_Segmentize - As a result of 
               the introduction of geography support, The construct:
          <code>SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);</code> 
         will result in ambiguous function error</para>
-     <para>#2026, ST_Union(raster) now unions all bands of all rasters</para>
-     <para>#2089, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators.</para>
-     <para>#2150, regular_blocking is no longer a constraint. column of same name
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2026">#2026</ulink>, ST_Union(raster) now unions all bands of all rasters</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2089">#2089</ulink>, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators.</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2150">#2150</ulink>, regular_blocking is no longer a constraint. column of same name
                in raster_columns now checks for existance of spatially_unique
                and coverage_tile constraints</para>
      <para>ST_Intersects(raster, geometry) behaves in the same manner as
@@ -250,7 +276,7 @@ and determines the behavior of the whole cluster.
      <para>ST_Hillshade parameters azimuth and altitude are now in degrees
         instead of radians.</para>
      <para>ST_Slope and ST_Aspect return pixel values in degrees instead of radians.</para>
-      <para>#2104, ST_World2RasterCoord, ST_World2RasterCoordX and
+      <para><ulink url="http://trac.osgeo.org/postgis/ticket/2104">#2104</ulink>, ST_World2RasterCoord, ST_World2RasterCoordX and
                ST_World2RasterCoordY renamed to ST_WorldToRasterCoord,
                ST_WorldToRasterCoordX and ST_WorldToRasterCoordY.
                ST_Raster2WorldCoord, ST_Raster2WorldCoordX and
@@ -271,9 +297,9 @@ and determines the behavior of the whole cluster.
     <title>New Features</title>
    <para>- Refer to http://postgis.net/docs/manual-2.1/PostGIS_Special_Functions_Index.html#NewFunctions_2_1
      for complete list of new functions</para>
-   <para>#310, ST_DumpPoints converted to a C function (Nathan Wagner) and much faster</para>
-   <para>#739, UpdateRasterSRID()</para>
-   <para>#945, improved join selectivity, N-D selectivity calculations, 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/310">#310</ulink>, ST_DumpPoints converted to a C function (Nathan Wagner) and much faster</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/739">#739</ulink>, UpdateRasterSRID()</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/945">#945</ulink>, improved join selectivity, N-D selectivity calculations, 
       user accessible selectivity and stats reader functions for 
       testing (Paul Ramsey / OpenGeo)</para>
    <para>toTopoGeom with TopoGeometry sink (Sandro Santilli / Vizzuality)</para>
@@ -290,40 +316,40 @@ and determines the behavior of the whole cluster.
       (Bborie Park / UC Davis)</para>
    <para>Added array variants of ST_SetValues() to set many pixel values of a band
       in one call (Bborie Park / UC Davis)</para>
-   <para>#1293, ST_Resize(raster) to resize rasters based upon width/height</para>
-   <para>#1627, package tiger_geocoder as a PostgreSQL extension</para>
-   <para>#1643, #2076, Upgrade tiger geocoder to support loading tiger 2011 and 2012 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1293">#1293</ulink>, ST_Resize(raster) to resize rasters based upon width/height</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1627">#1627</ulink>, package tiger_geocoder as a PostgreSQL extension</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1643">#1643</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/2076">#2076</ulink>, Upgrade tiger geocoder to support loading tiger 2011 and 2012 
       (Regina Obe / Paragon Corporation) Funded by Hunter Systems Group</para>
    <para>GEOMETRYCOLLECTION support for ST_MakeValid (Sandro Santilli / Vizzuality)</para>
-   <para>#1709, ST_NotSameAlignmentReason(raster, raster)</para>
-   <para>#1818, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))</para>
-   <para>#1856, reverse geocoder rating setting for prefer numbered highway name</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1709">#1709</ulink>, ST_NotSameAlignmentReason(raster, raster)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1818">#1818</ulink>, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1856">#1856</ulink>, reverse geocoder rating setting for prefer numbered highway name</para>
    <para>ST_PixelOfValue (Bborie Park / UC Davis)</para>
    <para>Casts to/from PostgreSQL geotypes (point/path/polygon).</para>
    <para>Added geomval array variant of ST_SetValues() to set many pixel values of
       a band using a set of geometries and corresponding values in one call
       (Bborie Park / UC Davis)</para>
    <para>ST_Tile(raster) to break up a raster into tiles (Bborie Park / UC Davis)</para>
-   <para>#1895, new r-tree node splitting algorithm (Alex Korotkov)</para>
-   <para>#2011, ST_DumpValues to output raster as array (Bborie Park / UC Davis)</para>
-   <para>#2018, ST_Distance support for CircularString, CurvePolygon, MultiCurve,
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1895">#1895</ulink>, new r-tree node splitting algorithm (Alex Korotkov)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2011">#2011</ulink>, ST_DumpValues to output raster as array (Bborie Park / UC Davis)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2018">#2018</ulink>, ST_Distance support for CircularString, CurvePolygon, MultiCurve,
       MultiSurface, CompoundCurve </para>
-   <para>#2030, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)</para>
-   <para>#2193, Utilize PAGC parser as drop in replacement for tiger normalizer 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2030">#2030</ulink>, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2193">#2193</ulink>, Utilize PAGC parser as drop in replacement for tiger normalizer 
               (Steve Woodbridge, Regina Obe)</para>
-   <para>#2210, ST_MinConvexHull(raster)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2210">#2210</ulink>, ST_MinConvexHull(raster)</para>
    <para>lwgeom_from_geojson in liblwgeom (Sandro Santilli / Vizzuality)</para>
-   <para>#1687, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)</para>
-   <para>#2228, TopoJSON output for TopoGeometry (Sandro Santilli / Vizzuality)</para>
-   <para>#2123, ST_FromGDALRaster</para>
-   <para>#613, ST_SetGeoReference with numerical parameters instead of text</para>
-   <para>#2276, ST_AddBand(raster) variant for out-db bands</para>
-   <para>#2280, ST_Summary(raster)</para>
-   <para>#2163, ST_TPI for raster (Nathaniel Clay)</para>
-   <para>#2164, ST_TRI for raster (Nathaniel Clay)</para>
-   <para>#2302, ST_Roughness for raster (Nathaniel Clay)</para>
-   <para>#2290, ST_ColorMap(raster) to generate RGBA bands</para>
-   <para>#2254, Add SFCGAL backend support.
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1687">#1687</ulink>, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2228">#2228</ulink>, TopoJSON output for TopoGeometry (Sandro Santilli / Vizzuality)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2123">#2123</ulink>, ST_FromGDALRaster</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/613">#613</ulink>, ST_SetGeoReference with numerical parameters instead of text</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2276">#2276</ulink>, ST_AddBand(raster) variant for out-db bands</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2280">#2280</ulink>, ST_Summary(raster)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2163">#2163</ulink>, ST_TPI for raster (Nathaniel Clay)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2164">#2164</ulink>, ST_TRI for raster (Nathaniel Clay)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2302">#2302</ulink>, ST_Roughness for raster (Nathaniel Clay)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2290">#2290</ulink>, ST_ColorMap(raster) to generate RGBA bands</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2254">#2254</ulink>, Add SFCGAL backend support.
              (Backend selection throught postgis.backend var)
              Functions available both throught GEOS or SFCGAL: 
               ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, 
@@ -342,43 +368,43 @@ and determines the behavior of the whole cluster.
          <para>Much faster raster ST_Union,  ST_Clip and many more function additions operations</para>
          <para>For geometry/geography better planner selectivity and a lot more functions.</para>
   
-   <para>#823,  tiger geocoder: Make loader_generate_script download portion 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/823">#823</ulink>,  tiger geocoder: Make loader_generate_script download portion 
              less greedy</para>
-   <para>#826,  raster2pgsql no longer defaults to padding tiles. Flag -P
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/826">#826</ulink>,  raster2pgsql no longer defaults to padding tiles. Flag -P
              can be used to pad tiles</para>
-   <para>#1363, ST_AddBand(raster, ...) array version rewritten in C</para>
-   <para>#1364, ST_Union(raster, ...) aggregate function rewritten in C</para>
-   <para>#1655, Additional default values for parameters of ST_Slope</para>
-   <para>#1661, Add aggregate variant of ST_SameAlignment</para>
-   <para>#1719, Add support for Point and GeometryCollection ST_MakeValid inputs</para>
-   <para>#1780, support ST_GeoHash for geography</para>
-   <para>#1796, Big performance boost for distance calculations in geography</para>
-   <para>#1802, improved function interruptibility.</para>
-   <para>#1823, add parameter in ST_AsGML to use id column for GML 3 output 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1363">#1363</ulink>, ST_AddBand(raster, ...) array version rewritten in C</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1364">#1364</ulink>, ST_Union(raster, ...) aggregate function rewritten in C</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1655">#1655</ulink>, Additional default values for parameters of ST_Slope</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1661">#1661</ulink>, Add aggregate variant of ST_SameAlignment</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1719">#1719</ulink>, Add support for Point and GeometryCollection ST_MakeValid inputs</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1780">#1780</ulink>, support ST_GeoHash for geography</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1796">#1796</ulink>, Big performance boost for distance calculations in geography</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1802">#1802</ulink>, improved function interruptibility.</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1823">#1823</ulink>, add parameter in ST_AsGML to use id column for GML 3 output 
              (become mandatory since GML 3.2.1)</para>
-   <para>#1856, tiger geocoder: reverse geocoder rating setting for prefer 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1856">#1856</ulink>, tiger geocoder: reverse geocoder rating setting for prefer 
              numbered highway name</para>
-   <para>#1938, Refactor basic ST_AddBand to add multiple new bands in one call</para>
-   <para>#1978, wrong answer when calculating length of a closed circular 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1938">#1938</ulink>, Refactor basic ST_AddBand to add multiple new bands in one call</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1978">#1978</ulink>, wrong answer when calculating length of a closed circular 
              arc (circle)</para>
-   <para>#1989, Preprocess input geometry to just intersection with raster
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1989">#1989</ulink>, Preprocess input geometry to just intersection with raster
              to be clipped</para>
-   <para>#2021, Added multi-band support to ST_Union(raster, ...) aggregate function</para>
-   <para>#2006, better support of ST_Area(geography) over poles and dateline</para>
-   <para>#2065, ST_Clip(raster, ...) now a C function</para>
-   <para>#2069, Added parameters to ST_Tile(raster) to control padding of tiles</para>
-   <para>#2078, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2021">#2021</ulink>, Added multi-band support to ST_Union(raster, ...) aggregate function</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2006">#2006</ulink>, better support of ST_Area(geography) over poles and dateline</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2065">#2065</ulink>, ST_Clip(raster, ...) now a C function</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2069">#2069</ulink>, Added parameters to ST_Tile(raster) to control padding of tiles</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2078">#2078</ulink>, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide
              solution to handling tiles in a coverage</para>
-   <para>#2097, Added RANGE uniontype option for ST_Union(raster)</para>
-   <para>#2105, Added ST_Transform(raster) variant for aligning output to
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2097">#2097</ulink>, Added RANGE uniontype option for ST_Union(raster)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2105">#2105</ulink>, Added ST_Transform(raster) variant for aligning output to
              reference raster</para>
-   <para>#2119, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(),
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2119">#2119</ulink>, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(),
              and ST_SnapToGrid() no longer require an SRID</para>
-   <para>#2141, More verbose output when constraints fail to be added
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2141">#2141</ulink>, More verbose output when constraints fail to be added
              to a raster column</para>
-   <para>#2143, Changed blocksize constraint of raster to allow multiple values</para>
-   <para>#2148, Addition of coverage_tile constraint for raster</para>
-   <para>#2149, Addition of spatially_unique constraint for raster</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2143">#2143</ulink>, Changed blocksize constraint of raster to allow multiple values</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2148">#2148</ulink>, Addition of coverage_tile constraint for raster</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2149">#2149</ulink>, Addition of spatially_unique constraint for raster</para>
    <para>TopologySummary output now includes unregistered layers and a count
              of missing TopoGeometry objects from their natural layer.</para>
    <para>ST_HillShade(), ST_Aspect() and ST_Slope() have one new optional 
@@ -388,163 +414,163 @@ and determines the behavior of the whole cluster.
              variant of ST_SetValues(rast).</para>
    <para>Proper support for raster band's isnodata flag in core API and loader.</para>
    <para>Additional default values for parameters of ST_Aspect and ST_HillShade</para>
-   <para>#2178, ST_Summary now advertises presence of known srid with an [S] flag</para>
-   <para>#2202, Make libjson-c optional (--without-json configure switch)</para>
-   <para>#2213, Add support libjson-c 0.10+</para>
-   <para>#2231, raster2pgsql supports user naming of filename column with -n</para>
-   <para>#2200, ST_Union(raster, uniontype) unions all bands of all rasters</para>
-   <para>#2264, postgis_restore.pl support for restoring into databases
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2178">#2178</ulink>, ST_Summary now advertises presence of known srid with an [S] flag</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2202">#2202</ulink>, Make libjson-c optional (--without-json configure switch)</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2213">#2213</ulink>, Add support libjson-c 0.10+</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2231">#2231</ulink>, raster2pgsql supports user naming of filename column with -n</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2200">#2200</ulink>, ST_Union(raster, uniontype) unions all bands of all rasters</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2264">#2264</ulink>, postgis_restore.pl support for restoring into databases
              with postgis in a custom schema</para>
-   <para>#2244, emit warning when changing raster's georeference if raster has
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2244">#2244</ulink>, emit warning when changing raster's georeference if raster has
              out-db bands</para>
-   <para>#2222, add parameter OutAsIn to flag whether ST_AsBinary should
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2222">#2222</ulink>, add parameter OutAsIn to flag whether ST_AsBinary should
              return out-db bands as in-db bands</para>
   </simplesect>
   
   <simplesect><title>Fixes</title>
-   <para>#1839, handling of subdatasets in GeoTIFF in raster2pgsql.</para>
-   <para>#1840, fix logic of when to compute # of tiles in raster2pgsql.</para>
-   <para>#1870, align the docs and actual behavior of raster's ST_Intersects</para>
-   <para>#1872, fix ST_ApproxSummarystats to prevent division by zero</para>
-   <para>#1875, ST_SummaryStats returns NULL for all parameters except count
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1839">#1839</ulink>, handling of subdatasets in GeoTIFF in raster2pgsql.</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1840">#1840</ulink>, fix logic of when to compute # of tiles in raster2pgsql.</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1870">#1870</ulink>, align the docs and actual behavior of raster's ST_Intersects</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1872">#1872</ulink>, fix ST_ApproxSummarystats to prevent division by zero</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1875">#1875</ulink>, ST_SummaryStats returns NULL for all parameters except count
              when count is zero</para>
-   <para>#1932, fix raster2pgsql of syntax for index tablespaces</para>
-   <para>#1936, ST_GeomFromGML on CurvePolygon causes server crash</para>
-   <para>#1939, remove custom data types: summarystats, histogram, quantile, 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1932">#1932</ulink>, fix raster2pgsql of syntax for index tablespaces</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1936">#1936</ulink>, ST_GeomFromGML on CurvePolygon causes server crash</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1939">#1939</ulink>, remove custom data types: summarystats, histogram, quantile, 
              valuecount</para>
-   <para>#1951, remove crash on zero-length linestrings</para>
-   <para>#1957, ST_Distance to a one-point LineString returns NULL</para> 
-   <para>#1976, Geography point-in-ring code overhauled for more reliability</para>
-   <para>#1981, cleanup of unused variables causing warnings with gcc 4.6+</para>
-   <para>#1996, support POINT EMPTY in GeoJSON output</para>
-   <para>#2062, improve performance of distance calculations</para> 
-   <para>#2057, Fixed linking issue for raster2psql to libpq</para>
-   <para>#2077, Fixed incorrect values returning from ST_Hillshade()</para>
-   <para>#2019, ST_FlipCoordinates does not update bbox</para>
-   <para>#2100, ST_AsRaster may not return raster with specified pixel type</para>
-   <para>#2126, Better handling of empty rasters from ST_ConvexHull()</para>
-   <para>#2165, ST_NumPoints regression failure with CircularString</para>
-   <para>#2168, ST_Distance is not always commutative</para>
-   <para>#2182, Fix issue with outdb rasters with no SRID and ST_Resize</para>
-   <para>#2188, Fix function parameter value overflow that caused problems
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1951">#1951</ulink>, remove crash on zero-length linestrings</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1957">#1957</ulink>, ST_Distance to a one-point LineString returns NULL</para> 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1976">#1976</ulink>, Geography point-in-ring code overhauled for more reliability</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1981">#1981</ulink>, cleanup of unused variables causing warnings with gcc 4.6+</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1996">#1996</ulink>, support POINT EMPTY in GeoJSON output</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2062">#2062</ulink>, improve performance of distance calculations</para> 
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2057">#2057</ulink>, Fixed linking issue for raster2psql to libpq</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2077">#2077</ulink>, Fixed incorrect values returning from ST_Hillshade()</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2019">#2019</ulink>, ST_FlipCoordinates does not update bbox</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2100">#2100</ulink>, ST_AsRaster may not return raster with specified pixel type</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2126">#2126</ulink>, Better handling of empty rasters from ST_ConvexHull()</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2165">#2165</ulink>, ST_NumPoints regression failure with CircularString</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2168">#2168</ulink>, ST_Distance is not always commutative</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2182">#2182</ulink>, Fix issue with outdb rasters with no SRID and ST_Resize</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2188">#2188</ulink>, Fix function parameter value overflow that caused problems
              when copying data from a GDAL dataset</para>
-   <para>#2198, Fix incorrect dimensions used when generating bands of out-db
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2198">#2198</ulink>, Fix incorrect dimensions used when generating bands of out-db
              rasters in ST_Tile()</para>
-   <para>#2201, ST_GeoHash wrong on boundaries</para>
-   <para>#2203, Changed how rasters with unknown SRID and default geotransform
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2201">#2201</ulink>, ST_GeoHash wrong on boundaries</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2203">#2203</ulink>, Changed how rasters with unknown SRID and default geotransform
              are handled when passing to GDAL Warp API</para>
-   <para>#2215, Fixed raster exclusion constraint for conflicting name of
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2215">#2215</ulink>, Fixed raster exclusion constraint for conflicting name of
              implicit index</para>
-   <para>#2251, Fix bad dimensions when rescaling rasters with default
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2251">#2251</ulink>, Fix bad dimensions when rescaling rasters with default
              geotransform matrix</para>
-   <para>#2133, Fix performance regression in expression variant of ST_MapAlgebra</para>
-   <para>#2257, GBOX variables not initialized when testing with empty geometries</para>
-   <para>#2271, Prevent parallel make of raster</para>
-   <para>#2282, Fix call to undefined function nd_stats_to_grid() in debug mode</para>
-   <para>#2307, ST_MakeValid outputs invalid geometries</para>
-   <para>#2309, Remove confusing INFO message when trying to get SRS info</para>
-   <para>#2336, FIPS 20 (KS) causes wildcard expansion to wget all files</para>
-   <para>#2348, Provide raster upgrade path for 2.0 to 2.1</para>
-   <para>#2351, st_distance between geographies wrong</para>
-   <para>#2359, Fix handling of schema name when adding overview constraints</para>
-   <para>#2371, Support GEOS versions with more than 1 digit in micro</para>
-   <para>#2383, Remove unsafe use of \' from raster warning message</para>
-   <para>#2384, Incorrect variable datatypes for ST_Neighborhood</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2133">#2133</ulink>, Fix performance regression in expression variant of ST_MapAlgebra</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2257">#2257</ulink>, GBOX variables not initialized when testing with empty geometries</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2271">#2271</ulink>, Prevent parallel make of raster</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2282">#2282</ulink>, Fix call to undefined function nd_stats_to_grid() in debug mode</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2307">#2307</ulink>, ST_MakeValid outputs invalid geometries</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2309">#2309</ulink>, Remove confusing INFO message when trying to get SRS info</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2336">#2336</ulink>, FIPS 20 (KS) causes wildcard expansion to wget all files</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2348">#2348</ulink>, Provide raster upgrade path for 2.0 to 2.1</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2351">#2351</ulink>, st_distance between geographies wrong</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2359">#2359</ulink>, Fix handling of schema name when adding overview constraints</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2371">#2371</ulink>, Support GEOS versions with more than 1 digit in micro</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2383">#2383</ulink>, Remove unsafe use of \' from raster warning message</para>
+   <para><ulink url="http://trac.osgeo.org/postgis/ticket/2384">#2384</ulink>, Incorrect variable datatypes for ST_Neighborhood</para>
   </simplesect>
     <simplesect><title>Known Issues</title>
-      <para>#2111, Raster bands can only reference the first 256 bands of out-db rasters</para>
+      <para><ulink url="http://trac.osgeo.org/postgis/ticket/2111">#2111</ulink>, Raster bands can only reference the first 256 bands of out-db rasters</para>
 		</simplesect>
 	 </sect1>
-	 
-	     <sect1>
-       <title>Release 2.0.5</title>
-         <para>Release date: 2014/03/31</para>
-         <para>This is a bug fix release, addressing issues that have been filed since the 2.0.4 release. If you are using PostGIS 2.0+ a soft upgrade is required.  For users of PostGIS 1.5 or below, a hard upgrade is required.</para>
-       <simplesect>
-         <title>Bug Fixes</title>
-         <para>#2494, avoid memcpy in GIST index</para>
-         <para>#2502, Fix postgis_topology_scripts_installed() install schema</para>
-         <para>#2504, Fix segfault on bogus pgsql2shp call </para>
-         <para>#2528, Fix memory leak in ST_Split / lwline_split_by_line</para>
-         <para>#2532, Add missing raster/geometry commutator operators</para>
-         <para>#2533, Remove duplicated signatures</para>
-         <para>#2552, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG</para>
-         <para>#2555, Fix parsing issue of range arguments of ST_Reclass</para>
-         <para>#2589, Remove use of unnecessary void pointers</para>
-         <para>#2607, Cannot open more than 1024 out-db files in process</para>
-         <para>#2610, Ensure face splitting algorithm uses the edge index </para>
-         <para>#2619, Empty ring array in GeoJSON polygon causes crash</para>
-         <para>#2638, Geography distance on M geometries sometimes wrong</para>
-       </simplesect>
-       <simplesect>
-         <title>Important Changes</title>
-         <para>##2514, Change raster license from GPL v3+ to v2+, allowing distribution of PostGIS Extension as GPLv2.</para>
-       </simplesect>
-     </sect1>
 
   <sect1>
+   <title>Release 2.0.5</title>
+     <para>Release date: 2014/03/31</para>
+     <para>This is a bug fix release, addressing issues that have been filed since the 2.0.4 release. If you are using PostGIS 2.0+ a soft upgrade is required.  For users of PostGIS 1.5 or below, a hard upgrade is required.</para>
+   <simplesect>
+     <title>Bug Fixes</title>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2494">#2494</ulink>, avoid memcpy in GIST index</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2502">#2502</ulink>, Fix postgis_topology_scripts_installed() install schema</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2504">#2504</ulink>, Fix segfault on bogus pgsql2shp call </para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2528">#2528</ulink>, Fix memory leak in ST_Split / lwline_split_by_line</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2532">#2532</ulink>, Add missing raster/geometry commutator operators</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2533">#2533</ulink>, Remove duplicated signatures</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2552">#2552</ulink>, Fix NULL raster handling in ST_AsPNG, ST_AsTIFF and ST_AsJPEG</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2555">#2555</ulink>, Fix parsing issue of range arguments of ST_Reclass</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2589">#2589</ulink>, Remove use of unnecessary void pointers</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2607">#2607</ulink>, Cannot open more than 1024 out-db files in process</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2610">#2610</ulink>, Ensure face splitting algorithm uses the edge index </para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2619">#2619</ulink>, Empty ring array in GeoJSON polygon causes crash</para>
+     <para><ulink url="http://trac.osgeo.org/postgis/ticket/2638">#2638</ulink>, Geography distance on M geometries sometimes wrong</para>
+   </simplesect>
+   <simplesect>
+     <title>Important Changes</title>
+     <para>#<ulink url="http://trac.osgeo.org/postgis/ticket/2514">#2514</ulink>, Change raster license from GPL v3+ to v2+, allowing distribution of PostGIS Extension as GPLv2.</para>
+   </simplesect>
+  </sect1>
+     
+	<sect1>
     <title>Release 2.0.4</title>
       <para>Release date: 2013/09/06</para>
       <para>This is a bug fix release, addressing issues that have been filed since the 2.0.3 release. If you are using PostGIS 2.0+ a soft upgrade is required.  For users of PostGIS 1.5 or below, a hard upgrade is required.</para>
     <simplesect>
       <title>Bug Fixes</title>
-        <para>#2110, Equality operator between EMPTY and point on origin</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2110">#2110</ulink>, Equality operator between EMPTY and point on origin</para>
         <para>Allow adding points at precision distance with TopoGeo_addPoint</para>
-        <para>#1968, Fix missing edge from toTopoGeom return</para>
-        <para>#2165, ST_NumPoints regression failure with CircularString</para>
-        <para>#2168, ST_Distance is not always commutative</para>
-        <para>#2186, gui progress bar updates too frequent</para>
-        <para>#2201, ST_GeoHash wrong on boundaries</para>
-        <para>#2257, GBOX variables not initialized when testing with empty geometries</para>
-        <para>#2271, Prevent parallel make of raster</para>
-        <para>#2267, Server crash from analyze table</para>
-        <para>#2277, potential segfault removed</para>
-        <para>#2307, ST_MakeValid outputs invalid geometries</para>
-        <para>#2351, st_distance between geographies wrong</para>
-        <para>#2359, Incorrect handling of schema for overview constraints</para>
-        <para>#2371, Support GEOS versions with more than 1 digit in micro</para>
-        <para>#2372, Cannot parse space-padded KML coordinates</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/1968">#1968</ulink>, Fix missing edge from toTopoGeom return</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2165">#2165</ulink>, ST_NumPoints regression failure with CircularString</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2168">#2168</ulink>, ST_Distance is not always commutative</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2186">#2186</ulink>, gui progress bar updates too frequent</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2201">#2201</ulink>, ST_GeoHash wrong on boundaries</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2257">#2257</ulink>, GBOX variables not initialized when testing with empty geometries</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2271">#2271</ulink>, Prevent parallel make of raster</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2267">#2267</ulink>, Server crash from analyze table</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2277">#2277</ulink>, potential segfault removed</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2307">#2307</ulink>, ST_MakeValid outputs invalid geometries</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2351">#2351</ulink>, st_distance between geographies wrong</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2359">#2359</ulink>, Incorrect handling of schema for overview constraints</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2371">#2371</ulink>, Support GEOS versions with more than 1 digit in micro</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2372">#2372</ulink>, Cannot parse space-padded KML coordinates</para>
         <para>Fix build with systemwide liblwgeom installed</para>
-        <para>#2383, Fix unsafe use of \' in warning message</para>
-        <para>#2410, Fix segmentize of collinear curve</para>
-        <para>#2412, ST_LineToCurve support for lines with less than 4 vertices</para>
-        <para>#2415, ST_Multi support for COMPOUNDCURVE and CURVEPOLYGON</para>
-        <para>#2420, ST_LineToCurve: require at least 8 edges to define a full circle</para>
-        <para>#2423, ST_LineToCurve: require all arc edges to form the same angle</para>
-        <para>#2424, ST_CurveToLine: add support for COMPOUNDCURVE in MULTICURVE</para>
-        <para>#2427, Make sure to retain first point of curves on ST_CurveToLine</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2383">#2383</ulink>, Fix unsafe use of \' in warning message</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2410">#2410</ulink>, Fix segmentize of collinear curve</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2412">#2412</ulink>, ST_LineToCurve support for lines with less than 4 vertices</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2415">#2415</ulink>, ST_Multi support for COMPOUNDCURVE and CURVEPOLYGON</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2420">#2420</ulink>, ST_LineToCurve: require at least 8 edges to define a full circle</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2423">#2423</ulink>, ST_LineToCurve: require all arc edges to form the same angle</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2424">#2424</ulink>, ST_CurveToLine: add support for COMPOUNDCURVE in MULTICURVE</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/2427">#2427</ulink>, Make sure to retain first point of curves on ST_CurveToLine</para>
     </simplesect>
     <simplesect>
       <title>Enhancements</title>
-      <para>#2269, Avoid uselessly detoasting full geometries on ANALYZE</para>
+      <para><ulink url="http://trac.osgeo.org/postgis/ticket/2269">#2269</ulink>, Avoid uselessly detoasting full geometries on ANALYZE</para>
     </simplesect>
     <simplesect>
       <title>Known Issues</title>
-      <para>#2111, Raster bands can only reference the first 256 bands of out-db rasters</para>
+      <para><ulink url="http://trac.osgeo.org/postgis/ticket/2111">#2111</ulink>, Raster bands can only reference the first 256 bands of out-db rasters</para>
     </simplesect>
   </sect1>
-  
+	  
   <sect1>
 		<title>Release 2.0.3</title>
 		<para>Release date: 2013/03/01</para>
 		<para>This is a bug fix release, addressing issues that have been filed since the 2.0.2 release. If you are using PostGIS 2.0+ a soft upgrade is required.  For users of PostGIS 1.5 or below, a hard upgrade is required.</para>
 		<simplesect>
 		 	<title>Bug Fixes</title>
-  <para>#2126, Better handling of empty rasters from ST_ConvexHull()</para>
-  <para>#2134, Make sure to process SRS before passing it off to GDAL functions</para>
+  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2126">#2126</ulink>, Better handling of empty rasters from ST_ConvexHull()</para>
+  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2134">#2134</ulink>, Make sure to process SRS before passing it off to GDAL functions</para>
   <para>Fix various memory leaks in liblwgeom</para>
-  <para>#2173, Fix robustness issue in splitting a line with own vertex also affecting topology building (#2172)</para>
-  <para>#2174, Fix usage of wrong function lwpoly_free()</para>
-  <para>#2176, Fix robustness issue with ST_ChangeEdgeGeom</para>
-  <para>#2184, Properly copy topologies with Z value </para>
+  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2173">#2173</ulink>, Fix robustness issue in splitting a line with own vertex also affecting topology building (<ulink url="http://trac.osgeo.org/postgis/ticket/2172">#2172</ulink>)</para>
+  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2174">#2174</ulink>, Fix usage of wrong function lwpoly_free()</para>
+  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2176">#2176</ulink>, Fix robustness issue with ST_ChangeEdgeGeom</para>
+  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2184">#2184</ulink>, Properly copy topologies with Z value </para>
   <para>postgis_restore.pl support for mixed case geometry column name in dumps</para>
-  <para>#2188, Fix function parameter value overflow that caused problems when copying data from a GDAL dataset</para>
-  <para>#2216, More memory errors in MultiPolygon GeoJSON parsing (with holes)</para>
+  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2188">#2188</ulink>, Fix function parameter value overflow that caused problems when copying data from a GDAL dataset</para>
+  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2216">#2216</ulink>, More memory errors in MultiPolygon GeoJSON parsing (with holes)</para>
   <para>Fix Memory leak in GeoJSON parser</para>
 		</simplesect>
 		<simplesect>
 			 <title>Enhancements</title>
-  <para>#2141, More verbose output when constraints fail to be added to a raster column</para>
+  <para><ulink url="http://trac.osgeo.org/postgis/ticket/2141">#2141</ulink>, More verbose output when constraints fail to be added to a raster column</para>
   <para>Speedup ST_ChangeEdgeGeom</para>
 		</simplesect>
 	  </sect1>
@@ -554,61 +580,61 @@ and determines the behavior of the whole cluster.
 		<para>This is a bug fix release, addressing issues that have been filed since the 2.0.1 release.</para>
 		<simplesect>
 		 	<title>Bug Fixes</title>
-		 	<para>#1287, Drop of "gist_geometry_ops" broke a few clients
+		 	<para><ulink url="http://trac.osgeo.org/postgis/ticket/1287">#1287</ulink>, Drop of "gist_geometry_ops" broke a few clients
      package of legacy_gist.sql for these cases</para>
- 			 <para>#1391, Errors during upgrade from 1.5</para>
- 			 <para>#1828, Poor selectivity estimate on ST_DWithin</para>
- 			 <para>#1838, error importing tiger/line data</para>
- 			 <para>#1869, ST_AsBinary is not unique added to legacy_minor/legacy.sql scripts</para>
- 			 <para>#1885, Missing field from tabblock table in tiger2010 census_loader.sql</para>
- 			 <para>#1891, Use LDFLAGS environment when building liblwgeom</para>
- 			 <para>#1900, Fix pgsql2shp for big-endian systems </para>
- 			 <para>#1932, Fix raster2pgsql for invalid syntax for setting index tablespace</para>
- 			 <para>#1936, ST_GeomFromGML on CurvePolygon causes server crash</para>
- 			 <para>#1955, ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges</para>
- 			 <para>#1957, ST_Distance to a one-point LineString returns NULL</para>
- 			 <para>#1976, Geography point-in-ring code overhauled for more reliability</para>
- 			 <para>#1978, wrong answer calculating length of closed circular arc (circle)</para>
- 			 <para>#1981, Remove unused but set variables as found with gcc 4.6+</para>
- 			 <para>#1987, Restore 1.5.x behaviour of ST_Simplify</para> 
- 			 <para>#1989, Preprocess input geometry to just intersection with raster
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1391">#1391</ulink>, Errors during upgrade from 1.5</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1828">#1828</ulink>, Poor selectivity estimate on ST_DWithin</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1838">#1838</ulink>, error importing tiger/line data</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1869">#1869</ulink>, ST_AsBinary is not unique added to legacy_minor/legacy.sql scripts</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1885">#1885</ulink>, Missing field from tabblock table in tiger2010 census_loader.sql</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1891">#1891</ulink>, Use LDFLAGS environment when building liblwgeom</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1900">#1900</ulink>, Fix pgsql2shp for big-endian systems </para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1932">#1932</ulink>, Fix raster2pgsql for invalid syntax for setting index tablespace</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1936">#1936</ulink>, ST_GeomFromGML on CurvePolygon causes server crash</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1955">#1955</ulink>, ST_ModEdgeHeal and ST_NewEdgeHeal for doubly connected edges</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1957">#1957</ulink>, ST_Distance to a one-point LineString returns NULL</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1976">#1976</ulink>, Geography point-in-ring code overhauled for more reliability</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1978">#1978</ulink>, wrong answer calculating length of closed circular arc (circle)</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1981">#1981</ulink>, Remove unused but set variables as found with gcc 4.6+</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1987">#1987</ulink>, Restore 1.5.x behaviour of ST_Simplify</para> 
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1989">#1989</ulink>, Preprocess input geometry to just intersection with raster
            to be clipped</para>
- 			 <para>#1991, geocode really slow on PostgreSQL 9.2</para>
- 			 <para>#1996, support POINT EMPTY in GeoJSON output</para>
- 			 <para>#1998, Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints</para>
- 			 <para>#2001, ST_CurveToLine has no effect if the geometry doesn't actually contain an arc</para>
- 			 <para>#2015, ST_IsEmpty('POLYGON(EMPTY)') returns False</para>
- 			 <para>#2019, ST_FlipCoordinates does not update bbox</para>
- 			 <para>#2025, Fix side location conflict at TopoGeo_AddLineString</para> 
- 			 <para>#2026, improve performance of distance calculations</para>
- 			 <para>#2033, Fix adding a splitting point into a 2.5d topology </para>
- 			 <para>#2051, Fix excess of precision in ST_AsGeoJSON output</para>
- 			 <para>#2052, Fix buffer overflow in lwgeom_to_geojson</para>
- 			 <para>#2056, Fixed lack of SRID check of raster and geometry in ST_SetValue()</para>
- 			 <para>#2057, Fixed linking issue for raster2psql to libpq</para>
- 			 <para>#2060, Fix "dimension" check violation by GetTopoGeomElementArray</para>
- 			 <para>#2072, Removed outdated checks preventing ST_Intersects(raster) from
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1991">#1991</ulink>, geocode really slow on PostgreSQL 9.2</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1996">#1996</ulink>, support POINT EMPTY in GeoJSON output</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1998">#1998</ulink>, Fix ST_{Mod,New}EdgeHeal joining edges sharing both endpoints</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2001">#2001</ulink>, ST_CurveToLine has no effect if the geometry doesn't actually contain an arc</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2015">#2015</ulink>, ST_IsEmpty('POLYGON(EMPTY)') returns False</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2019">#2019</ulink>, ST_FlipCoordinates does not update bbox</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2025">#2025</ulink>, Fix side location conflict at TopoGeo_AddLineString</para> 
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2026">#2026</ulink>, improve performance of distance calculations</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2033">#2033</ulink>, Fix adding a splitting point into a 2.5d topology </para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2051">#2051</ulink>, Fix excess of precision in ST_AsGeoJSON output</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2052">#2052</ulink>, Fix buffer overflow in lwgeom_to_geojson</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2056">#2056</ulink>, Fixed lack of SRID check of raster and geometry in ST_SetValue()</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2057">#2057</ulink>, Fixed linking issue for raster2psql to libpq</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2060">#2060</ulink>, Fix "dimension" check violation by GetTopoGeomElementArray</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2072">#2072</ulink>, Removed outdated checks preventing ST_Intersects(raster) from
            working on out-db bands</para>
- 			 <para>#2077, Fixed incorrect answers from ST_Hillshade(raster) </para>
- 			 <para>#2092, Namespace issue with ST_GeomFromKML,ST_GeomFromGML for libxml 2.8+</para>
- 			 <para>#2099, Fix double free on exception in ST_OffsetCurve</para> 
- 			 <para>#2100, ST_AsRaster() may not return raster with specified pixel type</para>
-			 <para>#2108, Ensure ST_Line_Interpolate_Point always returns POINT</para>
-			 <para>#2109, Ensure ST_Centroid always returns POINT</para>
-			 <para>#2117, Ensure ST_PointOnSurface always returns POINT</para>
-			 <para>#2129, Fix SRID in ST_Homogenize output with collection input</para>
-       <para>#2130, Fix memory error in MultiPolygon GeoJson parsing</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2077">#2077</ulink>, Fixed incorrect answers from ST_Hillshade(raster) </para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2092">#2092</ulink>, Namespace issue with ST_GeomFromKML,ST_GeomFromGML for libxml 2.8+</para>
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2099">#2099</ulink>, Fix double free on exception in ST_OffsetCurve</para> 
+ 			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2100">#2100</ulink>, ST_AsRaster() may not return raster with specified pixel type</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2108">#2108</ulink>, Ensure ST_Line_Interpolate_Point always returns POINT</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2109">#2109</ulink>, Ensure ST_Centroid always returns POINT</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2117">#2117</ulink>, Ensure ST_PointOnSurface always returns POINT</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2129">#2129</ulink>, Fix SRID in ST_Homogenize output with collection input</para>
+       <para><ulink url="http://trac.osgeo.org/postgis/ticket/2130">#2130</ulink>, Fix memory error in MultiPolygon GeoJson parsing</para>
 
  			 <para>Update URL of Maven jar</para>
 		</simplesect>
 		<simplesect>
 			 <title>Enhancements</title>
-			 <para>#1581, ST_Clip(raster, ...) no longer imposes NODATA on a band if the
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1581">#1581</ulink>, ST_Clip(raster, ...) no longer imposes NODATA on a band if the
            corresponding band from the source raster did not have NODATA</para>
-  			 <para>#1928, Accept array properties in GML input multi-geom input
+  			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1928">#1928</ulink>, Accept array properties in GML input multi-geom input
     (Kashif Rasul and Shoaib Burq / SpacialDB)</para>
-  			 <para>#2082, Add indices on start_node and end_node of topology edge tables</para>
-  			 <para>#2087, Speedup topology.GetRingEdges using a recursive CTE</para> 	
+  			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2082">#2082</ulink>, Add indices on start_node and end_node of topology edge tables</para>
+  			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/2087">#2087</ulink>, Speedup topology.GetRingEdges using a recursive CTE</para> 	
 		</simplesect>
 	</sect1>
     <sect1>
@@ -617,58 +643,58 @@ and determines the behavior of the whole cluster.
 		<para>This is a bug fix release, addressing issues that have been filed since the 2.0.0 release.</para>
 		<simplesect>
 			 <title>Bug Fixes</title>
-			 <para>#1264, fix st_dwithin(geog, geog, 0). </para>
-			 <para>#1468  shp2pgsql-gui table column schema get shifted</para>
-			 <para>#1694, fix building with clang. (vince)</para>
-			 <para>#1708, improve restore of pre-PostGIS 2.0 backups.</para>
-			 <para>#1714, more robust handling of high topology tolerance.</para>
-			 <para>#1755, ST_GeographyFromText support for higher dimensions.</para>
-			 <para>#1759, loading transformed shapefiles in raster enabled db.</para>
-			 <para>#1761, handling of subdatasets in NetCDF, HDF4 and HDF5 in raster2pgsql.</para>
-			 <para>#1763, topology.toTopoGeom use with custom search_path.</para>
-			 <para>#1766, don't let ST_RemEdge* destroy peripheral TopoGeometry objects.</para>
-			 <para>#1774, Clearer error on setting an edge geometry to an invalid one.</para>
-			 <para>#1775, ST_ChangeEdgeGeom collision detection with 2-vertex target.</para>
-			 <para>#1776, fix ST_SymDifference(empty, geom) to return geom.</para>
-			 <para>#1779, install SQL comment files.</para>
-			 <para>#1782, fix spatial reference string handling in raster.</para>
-			 <para>#1789, fix false edge-node crossing report in ValidateTopology.</para>
-			 <para>#1790, fix toTopoGeom handling of duplicated primitives.</para>
-			 <para>#1791, fix ST_Azimuth with very close but distinct points.</para>
-			 <para>#1797, fix (ValidateTopology(xxx)).* syntax calls.</para>
-			 <para>#1805, put back the 900913 SRID entry.</para>
-			 <para>#1813, Only show readable relations in metadata tables.</para> 
-			 <para>#1819, fix floating point issues with ST_World2RasterCoord and
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1264">#1264</ulink>, fix st_dwithin(geog, geog, 0). </para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1468">#1468</ulink>  shp2pgsql-gui table column schema get shifted</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1694">#1694</ulink>, fix building with clang. (vince)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1708">#1708</ulink>, improve restore of pre-PostGIS 2.0 backups.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1714">#1714</ulink>, more robust handling of high topology tolerance.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1755">#1755</ulink>, ST_GeographyFromText support for higher dimensions.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1759">#1759</ulink>, loading transformed shapefiles in raster enabled db.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1761">#1761</ulink>, handling of subdatasets in NetCDF, HDF4 and HDF5 in raster2pgsql.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1763">#1763</ulink>, topology.toTopoGeom use with custom search_path.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1766">#1766</ulink>, don't let ST_RemEdge* destroy peripheral TopoGeometry objects.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1774">#1774</ulink>, Clearer error on setting an edge geometry to an invalid one.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1775">#1775</ulink>, ST_ChangeEdgeGeom collision detection with 2-vertex target.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1776">#1776</ulink>, fix ST_SymDifference(empty, geom) to return geom.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1779">#1779</ulink>, install SQL comment files.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1782">#1782</ulink>, fix spatial reference string handling in raster.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1789">#1789</ulink>, fix false edge-node crossing report in ValidateTopology.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1790">#1790</ulink>, fix toTopoGeom handling of duplicated primitives.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1791">#1791</ulink>, fix ST_Azimuth with very close but distinct points.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1797">#1797</ulink>, fix (ValidateTopology(xxx)).* syntax calls.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1805">#1805</ulink>, put back the 900913 SRID entry.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1813">#1813</ulink>, Only show readable relations in metadata tables.</para> 
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1819">#1819</ulink>, fix floating point issues with ST_World2RasterCoord and
 					   ST_Raster2WorldCoord variants.</para>
-			 <para>#1820  compilation on 9.2beta1.</para>
-			 <para>#1822, topology load on PostgreSQL 9.2beta1.</para>
-			 <para>#1825, fix prepared geometry cache lookup</para>
-			 <para>#1829, fix uninitialized read in GeoJSON parser</para>
-			 <para>#1834, revise postgis extension to only backup 
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1820">#1820</ulink>  compilation on 9.2beta1.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1822">#1822</ulink>, topology load on PostgreSQL 9.2beta1.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1825">#1825</ulink>, fix prepared geometry cache lookup</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1829">#1829</ulink>, fix uninitialized read in GeoJSON parser</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1834">#1834</ulink>, revise postgis extension to only backup 
 					   user specified spatial_ref_sys</para>
-			 <para>#1839, handling of subdatasets in GeoTIFF in raster2pgsql.</para>
-			 <para>#1840, fix logic of when to compute # of tiles in raster2pgsql.</para>
-			 <para>#1851, fix spatial_ref_system parameters for EPSG:3844</para>
-			 <para>#1857, fix failure to detect endpoint mismatch in ST_AddEdge*Face*</para> 
-			 <para>#1865, data loss in postgis_restore.pl when data rows have leading
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1839">#1839</ulink>, handling of subdatasets in GeoTIFF in raster2pgsql.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1840">#1840</ulink>, fix logic of when to compute # of tiles in raster2pgsql.</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1851">#1851</ulink>, fix spatial_ref_system parameters for EPSG:3844</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1857">#1857</ulink>, fix failure to detect endpoint mismatch in ST_AddEdge*Face*</para> 
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1865">#1865</ulink>, data loss in postgis_restore.pl when data rows have leading
 					   dashes.</para>
-			 <para>#1867, catch invalid topology name passed to topogeo_add*</para>
-			 <para>#1872, fix ST_ApproxSummarystats to prevent division by zero</para>
-			 <para>#1873, fix ptarray_locate_point to return interpolated Z/M values for 
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1867">#1867</ulink>, catch invalid topology name passed to topogeo_add*</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1872">#1872</ulink>, fix ST_ApproxSummarystats to prevent division by zero</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1873">#1873</ulink>, fix ptarray_locate_point to return interpolated Z/M values for 
 			              on-the-line case</para>
-			 <para>#1875, ST_SummaryStats returns NULL for all parameters except count 
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1875">#1875</ulink>, ST_SummaryStats returns NULL for all parameters except count 
 			              when count is zero </para>
-			 <para>#1881, shp2pgsql-gui -- editing a field sometimes triggers 
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1881">#1881</ulink>, shp2pgsql-gui -- editing a field sometimes triggers 
 			 			  removing row</para>
-           	 <para>#1883, Geocoder install fails trying to run 
+           	 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1883">#1883</ulink>, Geocoder install fails trying to run 
            create_census_base_tables() (Brian Panulla)</para>
 		</simplesect>
 		<simplesect>
 			 <title>Enhancements</title>
 				<para>More detailed exception message from topology editing functions.</para>
-				<para>#1786, improved build dependencies</para> 
-				<para>#1806, speedup of ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry.</para>
-				<para>#1812, Add lwgeom_normalize in LIBLWGEOM for more stable testing.</para>
+				<para><ulink url="http://trac.osgeo.org/postgis/ticket/1786">#1786</ulink>, improved build dependencies</para> 
+				<para><ulink url="http://trac.osgeo.org/postgis/ticket/1806">#1806</ulink>, speedup of ST_BuildArea, ST_MakeValid and ST_GetFaceGeometry.</para>
+				<para><ulink url="http://trac.osgeo.org/postgis/ticket/1812">#1812</ulink>, Add lwgeom_normalize in LIBLWGEOM for more stable testing.</para>
 		</simplesect>
 	  </sect1>
       <sect1>
@@ -701,7 +727,7 @@ and determines the behavior of the whole cluster.
         </simplesect>
         <simplesect>
         	<title>Important / Breaking Changes</title>
-        	<para>#722, #302, Most deprecated functions removed (over 250 functions) (Regina Obe, Paul Ramsey)</para>
+        	<para><ulink url="http://trac.osgeo.org/postgis/ticket/722">#722</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/302">#302</ulink>, Most deprecated functions removed (over 250 functions) (Regina Obe, Paul Ramsey)</para>
         	<para>Unknown SRID changed from -1 to 0. (Paul Ramsey)</para>
         	<para> -- (most deprecated in 1.2) removed non-ST variants buffer, length, intersects 
         	 (and internal functions renamed) etc. </para>
@@ -710,20 +736,20 @@ and determines the behavior of the whole cluster.
      Some constraints in older tables were built with deprecated functions.
      If you restore you may need to rebuild table constraints with populate_geometry_columns().  If you have applications or tools
 					that rely on deprecated functions, please refer to <xref linkend="legacy_faq" /> for more details.</para>
-		<para>#944 geometry_columns is now a view instead of a table 
+		<para><ulink url="http://trac.osgeo.org/postgis/ticket/944">#944</ulink> geometry_columns is now a view instead of a table 
     (Paul Ramsey, Regina Obe)
     for tables created the old way reads (srid, type, dims) constraints
     for geometry columns created with type modifiers 
     reads rom column definition</para>
-        <para>#1081, #1082, #1084, #1088 - Mangement functions support typmod 
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/1081">#1081</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/1082">#1082</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/1084">#1084</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/1088">#1088</ulink> - Mangement functions support typmod 
     geometry column creation functions now default to typmod creation
     (Regina Obe)</para>
-        <para>#1083 probe_geometry_columns(), rename_geometry_table_constraints(),
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/1083">#1083</ulink> probe_geometry_columns(), rename_geometry_table_constraints(),
         fix_geometry_columns(); removed
     - now obsolete with geometry_column view
     (Regina Obe)</para>
-        <para>#817 Renaming old 3D functions to the convention ST_3D (Nicklas Avén)</para>
-        <para>#548 (sorta), ST_NumGeometries,ST_GeometryN now returns 1 (or the geometry) instead of null 
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/817">#817</ulink> Renaming old 3D functions to the convention ST_3D (Nicklas Avén)</para>
+        <para><ulink url="http://trac.osgeo.org/postgis/ticket/548">#548</ulink> (sorta), ST_NumGeometries,ST_GeometryN now returns 1 (or the geometry) instead of null 
      for single geometries (Sandro Santilli, Maxime van Noppen)</para>
         </simplesect>
         <simplesect>
@@ -772,7 +798,7 @@ and determines the behavior of the whole cluster.
         </simplesect>
         <simplesect>
         	<title>Bug Fixes</title>
-        	<para>#1335 ST_AddPoint returns incorrect result on Linux (Even Rouault)</para>
+        	<para><ulink url="http://trac.osgeo.org/postgis/ticket/1335">#1335</ulink> ST_AddPoint returns incorrect result on Linux (Even Rouault)</para>
         </simplesect>
         <simplesect>
         	<title>Release specific credits</title>
@@ -786,32 +812,32 @@ and determines the behavior of the whole cluster.
 		<para>This is a bug fix release, addressing issues that have been filed since the 1.5.3 release.</para>
 		<simplesect>
 			 <title>Bug Fixes</title>
-			 <para>#547, ST_Contains memory problems (Sandro Santilli)</para>
-			 <para>#621, Problem finding intersections with geography (Paul Ramsey)</para>
-			 <para>#627, PostGIS/PostgreSQL process die on invalid geometry (Paul Ramsey)</para>
-			 <para>#810, Increase accuracy of area calculation (Paul Ramsey)</para>
-			 <para>#852, improve spatial predicates robustness (Sandro Santilli, Nicklas Avén)</para>
-			 <para>#877, ST_Estimated_Extent returns NULL on empty tables (Sandro Santilli)</para>
-			 <para>#1028, ST_AsSVG kills whole postgres server when fails (Paul Ramsey)</para>
-			 <para>#1056, Fix boxes of arcs and circle stroking code (Paul Ramsey)</para>
-			 <para>#1121, populate_geometry_columns using deprecated functions (Regin Obe, Paul Ramsey)</para>
-			 <para>#1135, improve testsuite predictability (Andreas 'ads' Scherbaum)</para>
-			 <para>#1146, images generator crashes (bronaugh)</para>
-			 <para>#1170, North Pole intersection fails (Paul Ramsey)</para>
-			 <para>#1179, ST_AsText crash with bad value (kjurka)</para>
-			 <para>#1184, honour DESTDIR in documentation Makefile (Bryce L Nordgren)</para>
-			 <para>#1227, server crash on invalid GML </para>
-			 <para>#1252, SRID appearing in WKT (Paul Ramsey)</para>
-			 <para>#1264, st_dwithin(g, g, 0) doesn't work (Paul Ramsey)</para>
-			 <para>#1344, allow exporting tables with invalid geometries (Sandro Santilli)</para>
-			 <para>#1389, wrong proj4text for SRID 31300 and 31370 (Paul Ramsey)</para>
-			 <para>#1406, shp2pgsql crashes when loading into geography (Sandro Santilli)</para>
-			 <para>#1595, fixed SRID redundancy in ST_Line_SubString (Sandro Santilli)</para>
-			 <para>#1596, check SRID in UpdateGeometrySRID (Mike Toews, Sandro Santilli)</para>
-			 <para>#1602, fix ST_Polygonize to retain Z (Sandro Santilli)</para>
-			 <para>#1697, fix crash with EMPTY entries in GiST index (Paul Ramsey)</para>
-			 <para>#1772, fix ST_Line_Locate_Point with collapsed input (Sandro Santilli)</para>
-			 <para>#1799, Protect ST_Segmentize from max_length=0  (Sandro Santilli)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/547">#547</ulink>, ST_Contains memory problems (Sandro Santilli)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/621">#621</ulink>, Problem finding intersections with geography (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/627">#627</ulink>, PostGIS/PostgreSQL process die on invalid geometry (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/810">#810</ulink>, Increase accuracy of area calculation (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/852">#852</ulink>, improve spatial predicates robustness (Sandro Santilli, Nicklas Avén)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/877">#877</ulink>, ST_Estimated_Extent returns NULL on empty tables (Sandro Santilli)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1028">#1028</ulink>, ST_AsSVG kills whole postgres server when fails (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1056">#1056</ulink>, Fix boxes of arcs and circle stroking code (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1121">#1121</ulink>, populate_geometry_columns using deprecated functions (Regin Obe, Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1135">#1135</ulink>, improve testsuite predictability (Andreas 'ads' Scherbaum)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1146">#1146</ulink>, images generator crashes (bronaugh)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1170">#1170</ulink>, North Pole intersection fails (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1179">#1179</ulink>, ST_AsText crash with bad value (kjurka)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1184">#1184</ulink>, honour DESTDIR in documentation Makefile (Bryce L Nordgren)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1227">#1227</ulink>, server crash on invalid GML </para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1252">#1252</ulink>, SRID appearing in WKT (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1264">#1264</ulink>, st_dwithin(g, g, 0) doesn't work (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1344">#1344</ulink>, allow exporting tables with invalid geometries (Sandro Santilli)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1389">#1389</ulink>, wrong proj4text for SRID 31300 and 31370 (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1406">#1406</ulink>, shp2pgsql crashes when loading into geography (Sandro Santilli)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1595">#1595</ulink>, fixed SRID redundancy in ST_Line_SubString (Sandro Santilli)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1596">#1596</ulink>, check SRID in UpdateGeometrySRID (Mike Toews, Sandro Santilli)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1602">#1602</ulink>, fix ST_Polygonize to retain Z (Sandro Santilli)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1697">#1697</ulink>, fix crash with EMPTY entries in GiST index (Paul Ramsey)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1772">#1772</ulink>, fix ST_Line_Locate_Point with collapsed input (Sandro Santilli)</para>
+			 <para><ulink url="http://trac.osgeo.org/postgis/ticket/1799">#1799</ulink>, Protect ST_Segmentize from max_length=0  (Sandro Santilli)</para>
 			 <para>Alter parameter order in 900913 (Paul Ramsey)</para>
 			 <para>Support builds with "gmake" (Greg Troxel)</para>
 		</simplesect>
@@ -824,33 +850,33 @@ and determines the behavior of the whole cluster.
         	otherwise a hard upgrade is recommended.</para>
         <simplesect>
           <title>Bug Fixes</title>
-                <para>#1056, produce correct bboxes for arc geometries, fixes index errors
+                <para><ulink url="http://trac.osgeo.org/postgis/ticket/1056">#1056</ulink>, produce correct bboxes for arc geometries, fixes index errors
                     (Paul Ramsey)</para>
-			   <para>#1007, ST_IsValid crash fix requires GEOS 3.3.0+ or 3.2.3+ 
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/1007">#1007</ulink>, ST_IsValid crash fix requires GEOS 3.3.0+ or 3.2.3+ 
 				 (Sandro Santilli, reported by Birgit Laggner)</para>
-			   <para>#940, support for PostgreSQL 9.1 beta 1 
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/940">#940</ulink>, support for PostgreSQL 9.1 beta 1 
 				 (Regina Obe, Paul Ramsey, patch submitted by stl)</para>
-			   <para>#845, ST_Intersects precision error (Sandro Santilli, Nicklas Avén)
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/845">#845</ulink>, ST_Intersects precision error (Sandro Santilli, Nicklas Avén)
 				 Reported by cdestigter</para>
-			   <para>#884, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)</para>
-			   <para>#779, shp2pgsql -S option seems to fail on points (Jeff Adams)</para>
-			   <para>#666, ST_DumpPoints is not null safe (Regina Obe)</para>
-			   <para>#631, Update NZ projections for grid transformation support (jpalmer)</para>
-			   <para>#630, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson)
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/884">#884</ulink>, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)</para>
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/779">#779</ulink>, shp2pgsql -S option seems to fail on points (Jeff Adams)</para>
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/666">#666</ulink>, ST_DumpPoints is not null safe (Regina Obe)</para>
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/631">#631</ulink>, Update NZ projections for grid transformation support (jpalmer)</para>
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/630">#630</ulink>, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson)
 				 Reported by David Bitner</para>
-			   <para>#624, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)</para>
-			   <para>#609, Bad source code in manual section 5.2 Java Clients (simoc, Regina Obe)</para>
-			   <para>#604, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)</para>
-			   <para>#573 ST_Union fails on a group of linestrings 
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/624">#624</ulink>, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)</para>
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/609">#609</ulink>, Bad source code in manual section 5.2 Java Clients (simoc, Regina Obe)</para>
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/604">#604</ulink>, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)</para>
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/573">#573</ulink> ST_Union fails on a group of linestrings 
 				 Not a PostGIS bug, fixed in GEOS 3.3.0</para>
-			   <para>#457 ST_CollectionExtract returns non-requested type
+			   <para><ulink url="http://trac.osgeo.org/postgis/ticket/457">#457</ulink> ST_CollectionExtract returns non-requested type
 				(Nicklas Avén, Paul Ramsey)</para>
-			  <para>#441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)</para>
-			  <para>#411 Ability to backup invalid geometries (Sando Santilli)
+			  <para><ulink url="http://trac.osgeo.org/postgis/ticket/441">#441</ulink> ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)</para>
+			  <para><ulink url="http://trac.osgeo.org/postgis/ticket/411">#411</ulink> Ability to backup invalid geometries (Sando Santilli)
 				 Reported by Regione Toscana</para>
-			  <para>#409 ST_AsSVG - degraded (Olivier Courtin)
+			  <para><ulink url="http://trac.osgeo.org/postgis/ticket/409">#409</ulink> ST_AsSVG - degraded (Olivier Courtin)
 				 Reported by Sdikiy</para>
-			  <para>#373 Documentation syntax error in hard upgrade (Paul Ramsey)
+			  <para><ulink url="http://trac.osgeo.org/postgis/ticket/373">#373</ulink> Documentation syntax error in hard upgrade (Paul Ramsey)
 				 Reported by psvensso</para>
         </simplesect>
       </sect1>
@@ -863,26 +889,26 @@ and determines the behavior of the whole cluster.
         <simplesect>
           <title>Bug Fixes</title>
            <para>Loader: fix handling of empty (0-verticed) geometries in shapefiles. (Sandro Santilli)</para>
-           <para>#536, Geography ST_Intersects, ST_Covers, ST_CoveredBy and Geometry ST_Equals not using spatial index (Regina Obe, Nicklas Aven)</para>
-           <para>#573, Improvement to ST_Contains geography (Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/536">#536</ulink>, Geography ST_Intersects, ST_Covers, ST_CoveredBy and Geometry ST_Equals not using spatial index (Regina Obe, Nicklas Aven)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/573">#573</ulink>, Improvement to ST_Contains geography (Paul Ramsey)</para>
            <para>Loader: Add support for command-q shutdown in Mac GTK build (Paul Ramsey)</para>
-           <para>#393, Loader: Add temporary patch for large DBF files (Maxime Guillaud, Paul Ramsey)</para>  
-           <para>#507, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/393">#393</ulink>, Loader: Add temporary patch for large DBF files (Maxime Guillaud, Paul Ramsey)</para>  
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/507">#507</ulink>, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)</para>
            <para>spatial_ref_sys.sql Add datum conversion for projection SRID 3021 (Paul Ramsey)</para>
            <para>Geography - remove crash for case when all geographies are out of the estimate (Paul Ramsey)</para>
-           <para>#469, Fix for array_aggregation error (Greg Stark, Paul Ramsey)</para>
-           <para>#532, Temporary geography tables showing up in other user sessions (Paul Ramsey)</para>
-           <para>#562, ST_Dwithin errors for large geographies (Paul Ramsey)</para>
-           <para>#513, shape loading GUI tries to make spatial index when loading DBF only mode (Paul Ramsey)</para>
-           <para>#527, shape loading GUI should always append log messages (Mark Cave-Ayland)</para>
-           <para>#504, shp2pgsql should rename xmin/xmax fields (Sandro Santilli)</para>
-           <para>#458, postgis_comments being installed in contrib instead of version folder (Mark Cave-Ayland)</para>
-           <para>#474, Analyzing a table with geography column crashes server (Paul Ramsey)</para>
-           <para>#581, LWGEOM-expand produces inconsistent results (Mark Cave-Ayland)</para>
-           <para>#513, Add dbf filter to shp2pgsql-gui and allow uploading dbf only (Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/469">#469</ulink>, Fix for array_aggregation error (Greg Stark, Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/532">#532</ulink>, Temporary geography tables showing up in other user sessions (Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/562">#562</ulink>, ST_Dwithin errors for large geographies (Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/513">#513</ulink>, shape loading GUI tries to make spatial index when loading DBF only mode (Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/527">#527</ulink>, shape loading GUI should always append log messages (Mark Cave-Ayland)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/504">#504</ulink>, shp2pgsql should rename xmin/xmax fields (Sandro Santilli)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/458">#458</ulink>, postgis_comments being installed in contrib instead of version folder (Mark Cave-Ayland)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/474">#474</ulink>, Analyzing a table with geography column crashes server (Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/581">#581</ulink>, LWGEOM-expand produces inconsistent results (Mark Cave-Ayland)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/513">#513</ulink>, Add dbf filter to shp2pgsql-gui and allow uploading dbf only (Paul Ramsey)</para>
            <para>Fix further build issues against PostgreSQL 9.0 (Mark Cave-Ayland)</para>
-           <para>#572, Password whitespace for Shape File (Mark Cave-Ayland)</para> 
-           <para>#603, shp2pgsql: "-w" produces invalid WKT for MULTI* objects. (Mark Cave-Ayland)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/572">#572</ulink>, Password whitespace for Shape File (Mark Cave-Ayland)</para> 
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/603">#603</ulink>, shp2pgsql: "-w" produces invalid WKT for MULTI* objects. (Mark Cave-Ayland)</para>
         </simplesect>
       </sect1>
           
@@ -893,14 +919,14 @@ and determines the behavior of the whole cluster.
         	otherwise a hard upgrade is recommended.</para>
         <simplesect>
           <title>Bug Fixes</title>
-           <para>#410, update embedded bbox when applying ST_SetPoint, ST_AddPoint ST_RemovePoint to a linestring (Paul Ramsey)</para>
-           <para>#411, allow dumping tables with invalid geometries (Sandro Santilli, for Regione Toscana-SIGTA)</para>
-           <para>#414, include geography_columns view when running upgrade scripts (Paul Ramsey)</para>
-           <para>#419, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, for Lidwala Consulting Engineers)</para>
-           <para>#421, fix computed string length in ST_AsGML() (Olivier Courtin)</para>
-           <para>#441, fix GML generation with heterogeneous collections (Olivier Courtin)</para>
-           <para>#443, incorrect coordinate reversal in GML 3 generation (Olivier Courtin)</para>
-           <para>#450, #451, wrong area calculation for geography features that  cross the date line (Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/410">#410</ulink>, update embedded bbox when applying ST_SetPoint, ST_AddPoint ST_RemovePoint to a linestring (Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/411">#411</ulink>, allow dumping tables with invalid geometries (Sandro Santilli, for Regione Toscana-SIGTA)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/414">#414</ulink>, include geography_columns view when running upgrade scripts (Paul Ramsey)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/419">#419</ulink>, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, for Lidwala Consulting Engineers)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/421">#421</ulink>, fix computed string length in ST_AsGML() (Olivier Courtin)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/441">#441</ulink>, fix GML generation with heterogeneous collections (Olivier Courtin)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/443">#443</ulink>, incorrect coordinate reversal in GML 3 generation (Olivier Courtin)</para>
+           <para><ulink url="http://trac.osgeo.org/postgis/ticket/450">#450</ulink>, <ulink url="http://trac.osgeo.org/postgis/ticket/451">#451</ulink>, wrong area calculation for geography features that  cross the date line (Paul Ramsey)</para>
            <para>Ensure support for upcoming 9.0 PgSQL release (Paul Ramsey)</para>
         </simplesect>
       </sect1>
@@ -929,7 +955,7 @@ and determines the behavior of the whole cluster.
         <simplesect>
           <title>New Features</title>
           <para><xref linkend="NewFunctions_1_5"/></para>
-          <para>Added Hausdorff distance calculations (#209) (Vincent Picavet)</para>
+          <para>Added Hausdorff distance calculations (<ulink url="http://trac.osgeo.org/postgis/ticket/209">#209</ulink>) (Vincent Picavet)</para>
           <para>Added parameters argument to ST_Buffer operation to support one-sided buffering and other buffering styles (Sandro Santilli)</para>
           <para>Addition of other Distance related visualization and analysis functions (Nicklas Aven)</para>
       	  <itemizedlist>
diff --git a/doc/sfcgal_comments.sql b/doc/sfcgal_comments.sql
index e284015..ff7e20d 100644
--- a/doc/sfcgal_comments.sql
+++ b/doc/sfcgal_comments.sql
@@ -5,6 +5,10 @@ COMMENT ON FUNCTION ST_Extrude(geometry, float, float, float) IS 'args: geom, x,
 			
 COMMENT ON FUNCTION ST_StraightSkeleton(geometry) IS 'args: geom - Compute a straight skeleton from a geometry';
 			
+COMMENT ON FUNCTION ST_ApproximateMedialAxis(geometry) IS 'args: geom - Compute the approximate medial axis of an areal geometry.';
+			
+COMMENT ON FUNCTION ST_IsPlanar(geometry) IS 'args: geom - Check if a surface is or not planar';
+			
 COMMENT ON FUNCTION ST_Orientation(geometry) IS 'args: geom - Determine surface orientation';
 			
 COMMENT ON FUNCTION ST_ForceLHR(geometry) IS 'args: geom - Force LHR orientation';
@@ -13,7 +17,17 @@ COMMENT ON FUNCTION ST_MinkowskiSum(geometry, geometry) IS 'args: geom1, geom2 -
 			
 COMMENT ON FUNCTION ST_3DIntersection(geometry, geometry) IS 'args: geom1, geom2 - Perform 3D intersection';
 			
-COMMENT ON FUNCTION ST_3DArea(geometry) IS 'args: geom1 - Computes area of 3D geometries';
+COMMENT ON FUNCTION ST_3DDifference(geometry, geometry) IS 'args: geom1, geom2 - Perform 3D difference';
+			
+COMMENT ON FUNCTION ST_3DUnion(geometry, geometry) IS 'args: geom1, geom2 - Perform 3D union';
+			
+COMMENT ON FUNCTION ST_3DArea(geometry) IS 'args: geom1 - Computes area of 3D surface geometries. Will return 0 for solids.';
+			
+COMMENT ON FUNCTION ST_Tesselate(geometry) IS 'args: geom - Perform surface Tesselation of a polygon or polyhedralsurface and returns as a TIN or collection of TINS';
+			
+COMMENT ON FUNCTION ST_Volume(geometry) IS 'args: geom1 - Computes the volume of a 3D solid. If applied to surface (even closed) geometries will return 0.';
+			
+COMMENT ON FUNCTION ST_MakeSolid(geometry) IS 'args: geom1 - Cast the geometry into a solid. No check is performed. To obtain a valid solid, the input geometry must be a closed Polyhedral Surface or a closed TIN.';
 			
-COMMENT ON FUNCTION ST_Tesselate(geometry) IS 'args: geom - Perform surface Tesselation';
+COMMENT ON FUNCTION ST_IsSolid(geometry) IS 'args: geom1 - Test if the geometry is a solid. No validity check is performed.';
 			
\ No newline at end of file
diff --git a/doc/template.xml b/doc/template.xml
index e6a77e6..8f05ad5 100644
--- a/doc/template.xml
+++ b/doc/template.xml
@@ -62,6 +62,9 @@
 	
 	<!-- Optionally mention support for Triangles and TINS  -->
 	<para>&T_support;</para>
+	
+	<!-- Optionally mention address_standardizer required -->
+	<para>&address_standardizer_required;</para>
   </refsection>
 
 
diff --git a/doc/topology_comments.sql b/doc/topology_comments.sql
index a580153..51bcf6c 100644
--- a/doc/topology_comments.sql
+++ b/doc/topology_comments.sql
@@ -137,5 +137,5 @@ COMMENT ON FUNCTION topology.AsTopoJSON(topogeometry , regclass ) IS 'args: tg,
 			
 COMMENT ON FUNCTION topology.Equals(topogeometry , topogeometry ) IS 'args: tg1, tg2 - Returns true if two topogeometries are composed of the same topology primitives.';
 			
-COMMENT ON FUNCTION topology.Equals(topogeometry , topogeometry ) IS 'args: tg1, tg2 - Returns true if two topogeometries are composed of the same topology primitives.';
+COMMENT ON FUNCTION topology.Intersects(topogeometry , topogeometry ) IS 'args: tg1, tg2 - Returns true if any pair of primitives from thetwo topogeometries intersect.';
 			
\ No newline at end of file
diff --git a/doc/using_postgis_dataman.xml b/doc/using_postgis_dataman.xml
index b773b10..cb56ecd 100644
--- a/doc/using_postgis_dataman.xml
+++ b/doc/using_postgis_dataman.xml
@@ -5,22 +5,21 @@
   <sect1 id="RefObject">
 	<title>GIS Objects</title>
 
-	<para>The GIS objects supported by PostGIS are all the vector types defined
-  in the "Simple Features for SQL 1.2.1" standard defined by the OpenGIS Consortium (OGC),
-  and the ISO "SQL/MM Part 3: Spatial" document. In addition, PostGIS supports a raster
-  type (no standards exist to follow), and a topology model (following an early
-  draft ISO standard for topology that has not been published as yet).</para>
+	<para>The GIS objects supported by PostGIS are a superset of the "Simple
+	Features" defined by the OpenGIS Consortium (OGC). As of version 0.9,
+	PostGIS supports all the objects and functions specified in the OGC
+	"Simple Features for SQL" specification.</para>
 
-	<para>The OGC and ISO standards define 2D (x/y), 3D (x/y/z, x/y/m) and 4D (x/y/z/m) 
-  variants of points, lines, polygons, curved features, polyhedra, and TINS.</para>
+	<para>PostGIS extends the standard with support for 3DZ,3DM and 4D
+	coordinates.</para>
 
 	<sect2 id="OpenGISWKBWKT">
-	  <title>Well-Known Binary (WKB) and Well-Known Text (WKT) Representations</title>
+	  <title>OpenGIS WKB and WKT</title>
 
-	  <para>The OGC and ISO specifications define both text and binary 
-    representations for geometry objects, WKT and WKB. Both representations
-    include information about the type
-	  of the object and the coordinates that form the object.</para>
+	  <para>The OpenGIS specification defines two standard ways of expressing
+	  spatial objects: the Well-Known Text (WKT) form and the Well-Known
+	  Binary (WKB) form. Both WKT and WKB include information about the type
+	  of the object and the coordinates which form the object.</para>
 
 	  <para>Examples of the text representations (WKT) of the spatial objects
 	  of the features are as follows:</para>
@@ -1754,7 +1753,22 @@ COMMIT;</programlisting>
         </para>
       </listitem>
     </varlistentry>
-        <varlistentry>
+    
+    <varlistentry>
+      <term>-m</term>
+      <listitem>
+        <para>
+          -m <filename>a_file_name</filename>  Specify a file containing a set of mappings of (long) column
+     names to 10 character DBF column names. The content of the file is one or
+     more lines of two names separated by white space and no trailing or
+     leading space. For example:
+         <programlisting>COLUMNNAME DBFFIELD1
+AVERYLONGCOLUMNNAME DBFFIELD2</programlisting>
+        </para>
+      </listitem>
+    </varlistentry>
+    
+    <varlistentry>
       <term>-S </term>
       <listitem>
         <para>
diff --git a/doc/using_raster_dataman.xml b/doc/using_raster_dataman.xml
index 76023c1..8d08af9 100644
--- a/doc/using_raster_dataman.xml
+++ b/doc/using_raster_dataman.xml
@@ -283,12 +283,12 @@
     <para>An example session using the loader to create an input file and uploading it chunked in 100x100 tiles might look like this:</para>
     <note><para>You can leave the schema name out e.g <varname>demelevation</varname> instead of <varname>public.demelevation</varname> and
     the raster table will be created in the default schema of the database or user</para></note>
-    <programlisting>raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation > elev.sql
+    <programlisting>raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation > elev.sql
 psql -d gisdb -f elev.sql</programlisting>
         
     <para>A conversion and upload can be done all in one step using UNIX pipes:</para>
         
-    <programlisting>raster2pgsql -s 4236 -I -C -M *.tif -F -t 100x100 public.demelevation | psql -d gisdb</programlisting>
+    <programlisting>raster2pgsql -s 4326 -I -C -M *.tif -F -t 100x100 public.demelevation | psql -d gisdb</programlisting>
     
     <para>Load rasters Massachusetts state plane meters aerial tiles 
     	into a schema called <varname>aerial</varname> and create a full view, 2 and 4 level overview tables, use copy mode for inserting (no intermediary file just straight to db), and -e don't force everything in a transaction (good if you want to see data in tables right away without waiting).  Break up the rasters into 128x128 pixel tiles and apply raster constraints. Use copy mode instead of table insert. (-F) Include a field called filename to hold the name of the file the tiles were  [...]
@@ -415,7 +415,7 @@ Available GDAL raster formats:
     		<listitem><para>Once you are done populating your table initially, you'll want to create a spatial index on the raster column with something like:</para>
     			<programlisting>CREATE INDEX myrasters_rast_st_convexhull_idx ON myrasters USING gist( ST_ConvexHull(rast) );</programlisting>
     			<para>Note the use of <xref linkend="RT_ST_ConvexHull" /> since most raster operators are based on the convex hull of the rasters.</para>
-    			<note><para>Pre-2.0 versions of PostGIS raster were based on the envelope rather than the convex hull.  For the spatial indexes to work properly you'll need to drop those and replace with convex hull based index.</para></note></listitem>
+    			<note><para>Pre-2.0 versions of PostGIS raster were based on the envelop rather than the convex hull.  For the spatial indexes to work properly you'll need to drop those and replace with convex hull based index.</para></note></listitem>
     		<listitem><para>Apply raster constraints using <xref linkend="RT_AddRasterConstraints" /></para></listitem>
     	</orderedlist>
     </sect2>
@@ -483,8 +483,14 @@ Available GDAL raster formats:
 					<para><varname>nodata_values</varname> An array of double precision numbers denoting the <varname>nodata_value</varname> for each band.  You will have the same number of elements in this array as you have number of bands. These numbers define the pixel value for each band that should be ignored for most operations.  This is similar information provided by <xref linkend="RT_ST_BandNoDataValue" />.</para>
 				</listitem>
 				<listitem>
+					<para><varname>out_db</varname> An array of boolean flags indicating if the raster bands data is maintained outside the database. You will have the same number of elements in this array as you have number of bands.</para>
+				</listitem>
+				<listitem>
 					<para><varname>extent</varname> This is the extent of all the raster rows in your raster set. If you plan to load more data that will change the extent of the set, you'll want to run the <xref linkend="RT_DropRasterConstraints" /> function before load and then reapply constraints with <xref linkend="RT_AddRasterConstraints"  /> after load. </para>
 				</listitem>
+				<listitem>
+					<para><varname>spatial_index</varname> A boolean that is true if raster column has a spatial index.</para>
+				</listitem>
 			 </itemizedlist>
         </sect2>
         <sect2 id="RT_Raster_Overviews">
@@ -729,9 +735,8 @@ public class SaveQueryImage {
    		<sect2 id="RT_PLPython">
    			<title>Use PLPython to dump out images via SQL</title>
    			<para>This is a plpython stored function that creates a file in the server directory for each record.  
-   			plpython postgresql stored proc.  Requires you have plpython installed.  Should work fine with both plpythonu and plpython3u.</para>
-   			<programlisting>
-<![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, param_filepath text)
+   			Requires you have plpython installed.  Should work fine with both plpythonu and plpython3u.</para>
+   			<programlisting><![CDATA[CREATE OR REPLACE FUNCTION write_file (param_bytes bytea, param_filepath text)
 RETURNS text
 AS $$
 f = open(param_filepath, 'wb+')
diff --git a/doc/xsl/post_gis_day_cards.html.xsl b/doc/xsl/post_gis_day_cards.html.xsl
index 016e944..88efd82 100644
--- a/doc/xsl/post_gis_day_cards.html.xsl
+++ b/doc/xsl/post_gis_day_cards.html.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: post_gis_day_cards.html.xsl 10693 2012-11-16 12:35:23Z robe $
      ********************************************************************
 	 Copyright 2011, Regina Obe
      License: BSD
diff --git a/doc/xsl/postgis_aggs_mm.xml.xsl b/doc/xsl/postgis_aggs_mm.xml.xsl
index 1655cf8..9f4d838 100644
--- a/doc/xsl/postgis_aggs_mm.xml.xsl
+++ b/doc/xsl/postgis_aggs_mm.xml.xsl
@@ -1,6 +1,5 @@
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-	 $Id: postgis_aggs_mm.xml.xsl 11972 2013-09-23 18:25:33Z robe $
 	 ********************************************************************
 	 Copyright 2010, Regina Obe
 	 License: BSD
@@ -352,7 +351,7 @@
 								<xsl:choose>
 									<!-- direct support -->
 									<xsl:when test="contains(refsynopsisdiv/funcsynopsis,'geometry') or contains(refsynopsisdiv/funcsynopsis/funcprototype/funcdef,'geometry')">
-										<entry><xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/></entry>
+										<entry><xsl:choose><xsl:when test="contains(.,'needs SFCGAL')"><xsl:value-of select="$matrix_sfcgal_required" disable-output-escaping="yes"/></xsl:when><xsl:otherwise><xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/></xsl:otherwise></xsl:choose></entry>
 									</xsl:when>
 									<!-- support via autocast -->
 									<xsl:when test="contains(refsynopsisdiv/funcsynopsis,'box') or contains(refsynopsisdiv/funcsynopsis/funcprototype/funcdef,'box')">
@@ -453,16 +452,107 @@
 
 		<sect1 id="NewFunctions">
 			<title>New, Enhanced or changed PostGIS Functions</title>
+				<sect2 id="NewFunctions_2_2">
+				<title>PostGIS Functions new or enhanced in 2.2</title>
+				<para>The functions given below are PostGIS functions that were added or enhanced.</para>
+	
+				<note><para>postgis_sfcgal now can be installed as an extension using CREATE EXTENSION postgis_sfcgal;</para></note>
+				<note><para>PostGIS 2.2.0: Tiger Geocoder upgraded to work with TIGER 2015 data.</para></note>
+				<note><para>address_standardizer, address_standardizer_data_us extensions for standardizing address data refer to <xref linkend="Address_Standardizer" /> for details.</para></note>
+				<note><para>Many functions in topology rewritten as C functions for increased performance.</para></note>
+				<para>Functions new in PostGIS 2.2</para>
+				<itemizedlist>
+				<!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
+					<xsl:for-each select='//refentry'>
+						<xsl:sort select="refnamediv/refname"/>
+						<xsl:variable name='comment'>
+							<xsl:value-of select="normalize-space(translate(translate(refnamediv/refpurpose,'&#x0d;&#x0a;', ' '), '	', ' '))"/>
+						</xsl:variable>
+						<xsl:variable name="refid">
+							<xsl:value-of select="@id" />
+						</xsl:variable>
+						
+						<xsl:variable name="refname">
+							<xsl:value-of select="refnamediv/refname" />
+						</xsl:variable>
+
+
+				<!-- For each section if there is note about availability in this version -->
+							<xsl:for-each select="refsection">
+								<xsl:for-each select="para | */para">
+									<xsl:choose>
+										<xsl:when test="contains(.,'Availability: 2.2')">
+											<listitem><simpara><link linkend="{$refid}"><xsl:value-of select="$refname" /></link> - <xsl:value-of select="." /><xsl:text> </xsl:text> <xsl:value-of select="$comment" /></simpara></listitem>
+										</xsl:when>
+									</xsl:choose>
+								</xsl:for-each>
+							</xsl:for-each>
+					</xsl:for-each>
+				</itemizedlist>
+				
+				<para>The functions given below are PostGIS functions that are enhanced in PostGIS 2.2.</para>
+				<itemizedlist>
+				<!-- Pull out the purpose section for each ref entry   -->
+					<xsl:for-each select='//refentry'>
+						<xsl:sort select="@id"/>
+						<xsl:variable name="refid">
+							<xsl:value-of select="@id" />
+						</xsl:variable>
+						
+						<xsl:variable name="refname">
+							<xsl:value-of select="refnamediv/refname" />
+						</xsl:variable>
+				<!-- For each section if there is note about enhanced in this version -->
+							<xsl:for-each select="refsection">
+								<xsl:for-each select="para | */para">
+									<xsl:choose>
+										<xsl:when test="contains(.,'Enhanced: 2.2')">
+											<listitem><simpara><link linkend="{$refid}"><xsl:value-of select="$refname" /></link> - <xsl:value-of select="." /></simpara></listitem>
+										</xsl:when>
+									</xsl:choose>
+								</xsl:for-each>
+							</xsl:for-each>
+					</xsl:for-each>
+				</itemizedlist>				
+			</sect2>
+			
+		 <sect2 id="ChangedFunctions_2_2"><title>PostGIS functions breaking changes in 2.2</title>
+				<para>The functions given below are PostGIS functions that have possibly breaking changes in PostGIS 2.2.  If you use any of these, you may need to check your existing code.</para>
+				<itemizedlist>
+				<!-- Pull out the purpose section for each ref entry   -->
+					<xsl:for-each select='//refentry'>
+						<xsl:sort select="@id"/>
+						<xsl:variable name="refid">
+							<xsl:value-of select="@id" />
+						</xsl:variable>
+						
+						<xsl:variable name="refname">
+							<xsl:value-of select="refnamediv/refname" />
+						</xsl:variable>
+				<!-- For each section if there is note about enhanced in this version -->
+							<xsl:for-each select="refsection">
+								<xsl:for-each select="para | */para">
+									<xsl:choose>
+										<xsl:when test="contains(.,'Changed: 2.2')">
+											<listitem><simpara><link linkend="{$refid}"><xsl:value-of select="$refname" /></link> - <xsl:value-of select="." /></simpara></listitem>
+										</xsl:when>
+									</xsl:choose>
+								</xsl:for-each>
+							</xsl:for-each>
+					</xsl:for-each>
+				</itemizedlist>
+			</sect2>
+
+			
 			<sect2 id="NewFunctions_2_1">
 				<title>PostGIS Functions new or enhanced in 2.1</title>
 				<para>The functions given below are PostGIS functions that were added or enhanced.</para>
 				
 				<note><para>More Topology performance Improvements.  Please refer to <xref linkend="Topology" /> for more details.</para></note>
 				<note><para>Bug fixes (particularly with handling of out-of-band rasters), many new functions (often shortening code you have to write to accomplish a common task) and massive speed improvements to raster functionality. Refer to <xref linkend="RT_reference" /> for more details. </para></note>
-				<note><para>Tiger Geocoder upgraded to work with TIGER 2012 census data in 2.1.0 and TIGER 2013 in 2.1.1.  <varname>geocode_settings</varname> added for debugging and tweaking rating preferences, loader made less greedy, now only downloads tables to be loaded.
+				<note><para>PostGIS 2.1.0: Tiger Geocoder upgraded to work with TIGER 2012 census data. <varname>geocode_settings</varname> added for debugging and tweaking rating preferences, loader made less greedy, now only downloads tables to be loaded. PostGIS 2.1.1: Tiger Geocoder upgraded to work with TIGER 2013 data. 
 					Please refer to <xref linkend="Tiger_Geocoder" /> for more details.</para></note>
 					
-				<note><para>Raster bands can only reference the first 256 bands of out-db rasters.</para></note>
 				<para>Functions new in PostGIS 2.1</para>
 				<itemizedlist>
 				<!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
diff --git a/doc/xsl/postgis_cheatsheet.html.xsl b/doc/xsl/postgis_cheatsheet.html.xsl
index e533d45..e9f34e4 100644
--- a/doc/xsl/postgis_cheatsheet.html.xsl
+++ b/doc/xsl/postgis_cheatsheet.html.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: postgis_cheatsheet.html.xsl 11092 2013-02-09 06:08:30Z robe $
      ********************************************************************
 	 Copyright 2011, Regina Obe
      License: BSD
diff --git a/doc/xsl/postgis_comments.sql.xsl b/doc/xsl/postgis_comments.sql.xsl
index 4f0cabc..c0987a4 100644
--- a/doc/xsl/postgis_comments.sql.xsl
+++ b/doc/xsl/postgis_comments.sql.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: postgis_comments.sql.xsl 11389 2013-05-09 19:38:17Z colivier $
      ********************************************************************
 	 Copyright 2008, Regina Obe
      License: BSD
@@ -18,7 +17,7 @@
         <xsl:template match="chapter">
 		<xsl:variable name="ap"><xsl:text>'</xsl:text></xsl:variable>
 <!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment  -->
-		<xsl:for-each select="sect1[not(contains(@id,'Operator') or contains(@id,'sfcgal'))]/refentry">
+		<xsl:for-each select="sect1[not(contains(@id,'Operator') or contains(@id,'sfcgal') or contains(@id,'GUC') )]/refentry">
 		  <xsl:variable name='plaincomment'>
 		  	<xsl:value-of select="normalize-space(translate(translate(refnamediv/refpurpose,'&#x0d;&#x0a;', ' '), '	', ' '))"/>
 		  </xsl:variable>
diff --git a/doc/xsl/postgis_gardentest.sql.xsl b/doc/xsl/postgis_gardentest.sql.xsl
index 30fab74..a10dc2f 100644
--- a/doc/xsl/postgis_gardentest.sql.xsl
+++ b/doc/xsl/postgis_gardentest.sql.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:pgis="http://www.postgis.org/pgis">
 <!-- ********************************************************************
- * $Id: postgis_gardentest.sql.xsl 12418 2014-04-04 06:16:00Z robe $
  ********************************************************************
 	 Copyright 2008-2010, Regina Obe
 	 License: BSD
@@ -9,7 +8,7 @@
 			using a garden variety of geometries.  Its intent is to flag major crashes.
 	 ******************************************************************** -->
 	<xsl:output method="text" />
-	<xsl:variable name='testversion'>2.1.3</xsl:variable>
+	<xsl:variable name='testversion'>2.2.0</xsl:variable>
 	<xsl:variable name='fnexclude14'>AddGeometryColumn DropGeometryColumn DropGeometryTable</xsl:variable>
 	<xsl:variable name='fnexclude'>AddGeometryColumn DropGeometryColumn DropGeometryTable</xsl:variable>
 	<!--This is just a place holder to state functions not supported in 1.3 or tested separately -->
@@ -20,6 +19,7 @@
 	<xsl:variable name='var_integer2'>5</xsl:variable>
 	<xsl:variable name='var_float1'>20.1</xsl:variable>
 	<xsl:variable name='var_float2'>0.75</xsl:variable>
+	<xsl:variable name='var_frac'>0.80</xsl:variable>
 	<xsl:variable name='var_distance'>100</xsl:variable>
 	<xsl:variable name='var_version1'>1</xsl:variable>
 	<xsl:variable name='var_version2'>2</xsl:variable>
@@ -31,7 +31,7 @@
 	<xsl:variable name='var_spheroid'>'SPHEROID["GRS_1980",6378137,298.257222101]'</xsl:variable>
 	<xsl:variable name='var_matrix'>'FF1FF0102'</xsl:variable>
 	<xsl:variable name='var_boolean'>false</xsl:variable>
-	<xsl:variable name='var_logtable'>postgis_garden_log21</xsl:variable>
+	<xsl:variable name='var_logtable'>postgis_garden_log22</xsl:variable>
 	<xsl:variable name='var_logupdatesql'>UPDATE <xsl:value-of select="$var_logtable" /> SET log_end = clock_timestamp() 
 		FROM (SELECT logid FROM <xsl:value-of select="$var_logtable" /> ORDER BY logid DESC limit 1) As foo
 		WHERE <xsl:value-of select="$var_logtable" />.logid = foo.logid  AND <xsl:value-of select="$var_logtable" />.log_end IS NULL;</xsl:variable>
@@ -244,7 +244,14 @@ FROM (VALUES ( ST_GeomFromEWKT('SRID=4326;MULTIPOLYGON(((-71.0821 42.3036 2,-71.
 		<pgis:gset ID="Single NULL" GeometryType="GEOMETRY" createtable="false">(SELECT CAST(Null As geometry) As the_geom)</pgis:gset>
 		<pgis:gset ID="Multiple NULLs" GeometryType="GEOMETRY" createtable="false">(SELECT CAST(Null As geometry) As the_geom FROM generate_series(1,4) As foo)</pgis:gset>
 
-
+		<pgis:gset ID="Malformed Linestrings" GeometryType="LINESTRING" createtable="true">(SELECT ST_GeomFromText('LINESTRING(1 2, 1 2)',4326) As the_geom
+			UNION ALL SELECT ST_MakeLine('SRID=4326;POINT(1 2)'::geometry, 'SRID=4326;POINT EMPTY'::geometry) As the_geom
+		)
+		</pgis:gset>
+		<pgis:gset ID="Malformed Polygons" GeometryType="POLYGON" createtable="true">(SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(1 2, 1 2,1 2, 1 2)',4326)) As the_geom
+			UNION ALL SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(1 2, 1 2,1 2, 1 2, 3 2, 1 2)',4326)) As the_geom
+		)
+		</pgis:gset>
 	<!-- TODO: Finish off MULTI list -->
 	</pgis:gardens>
 	<!--This is just a placeholder to hold geometries that will crash server when hitting against some functions
@@ -647,6 +654,9 @@ SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of sel
 					<xsl:when test="contains(type, 'bytea')">
 						<xsl:text>ST_AsBinary(foo1.the_geom)</xsl:text>
 					</xsl:when>
+					<xsl:when test="contains(parameter, 'Frac') or contains(parameter, 'frac') or contains(parameter, 'percent')">
+						<xsl:value-of select="$var_frac" />
+					</xsl:when>
 					<xsl:when test="contains(type, 'float') or contains(type, 'double')">
 						<xsl:value-of select="$var_float1" />
 					</xsl:when>
diff --git a/doc/xsl/postgis_gardentest_subset.sql.xsl b/doc/xsl/postgis_gardentest_subset.sql.xsl
index 118c485..31f286a 100644
--- a/doc/xsl/postgis_gardentest_subset.sql.xsl
+++ b/doc/xsl/postgis_gardentest_subset.sql.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:pgis="http://www.postgis.org/pgis">
 <!-- ********************************************************************
- * $Id: postgis_gardentest_subset.sql.xsl 11350 2013-05-04 13:54:22Z robe $
  ********************************************************************
 	 Copyright 2009, Regina Obe
 	 License: BSD
diff --git a/doc/xsl/postgis_reference.xml.xsl b/doc/xsl/postgis_reference.xml.xsl
index a2efe6e..50d5b2e 100644
--- a/doc/xsl/postgis_reference.xml.xsl
+++ b/doc/xsl/postgis_reference.xml.xsl
@@ -1,6 +1,5 @@
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-	 $Id: postgis_reference.xml.xsl 10596 2012-10-30 21:16:49Z robe $
 	 ********************************************************************
 	 Copyright 2010, Regina Obe
 	 License: BSD
diff --git a/doc/xsl/raster_cheatsheet.html.xsl b/doc/xsl/raster_cheatsheet.html.xsl
index 3009566..0161ea4 100644
--- a/doc/xsl/raster_cheatsheet.html.xsl
+++ b/doc/xsl/raster_cheatsheet.html.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: raster_cheatsheet.html.xsl 11089 2013-02-09 05:16:39Z robe $
      ********************************************************************
 	 Copyright 2011, Regina Obe
      License: BSD
diff --git a/doc/xsl/raster_comments.sql.xsl b/doc/xsl/raster_comments.sql.xsl
index 733a712..bf9753e 100644
--- a/doc/xsl/raster_comments.sql.xsl
+++ b/doc/xsl/raster_comments.sql.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: raster_comments.sql.xsl 9237 2012-02-20 13:16:05Z strk $
      ********************************************************************
 	 Copyright 2008, Regina Obe
      License: BSD
diff --git a/doc/xsl/raster_gardentest.sql.xsl b/doc/xsl/raster_gardentest.sql.xsl
index 4587187..9c3e365 100644
--- a/doc/xsl/raster_gardentest.sql.xsl
+++ b/doc/xsl/raster_gardentest.sql.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:pgis="http://www.postgis.org/pgis">
 <!-- ********************************************************************
- * $Id: raster_gardentest.sql.xsl 11385 2013-05-09 06:34:22Z robe $
  ********************************************************************
 	 Copyright 2010, Regina Obe
 	 License: BSD
@@ -9,7 +8,7 @@
 			using a garden variety of rasters.  Its intent is to flag major crashes.
 	 ******************************************************************** -->
 	<xsl:output method="text" />
-	<xsl:variable name='testversion'>2.1.0</xsl:variable>
+	<xsl:variable name='testversion'>2.2.0</xsl:variable>
 	<xsl:variable name='fnexclude'>AddRasterColumn AddRasterConstraints DropRasterConstraints DropRasterColumn DropRasterTable</xsl:variable>
 	<!--This is just a place holder to state functions not supported in 1.3 or tested separately -->
 
@@ -24,7 +23,7 @@
 	<xsl:variable name='var_NDRXDR'>XDR</xsl:variable>
 	<xsl:variable name='var_text'>'monkey'</xsl:variable>
 	<xsl:variable name='var_varchar'>'test'</xsl:variable>
-	<xsl:variable name='var_options'>NULL</xsl:variable>
+	<xsl:variable name='var_options'>NULL::text</xsl:variable>
 	<xsl:variable name="var_onerasteruserfunc">'monkey_oneuserfunc(float,integer[],text[])'::regprocedure</xsl:variable> 
 	<xsl:variable name='var_pixeltype'>'1BB'</xsl:variable>
 	<xsl:variable name='var_pixeltypenoq'>8BUI</xsl:variable>
@@ -32,7 +31,7 @@
 	<xsl:variable name='var_rastercolumn'>'rast'</xsl:variable>
 	<xsl:variable name='var_rastertable'>'pgis_rgarden_1bb'</xsl:variable>
 	<xsl:variable name='var_boolean'>false</xsl:variable>
-	<xsl:variable name='var_logtable'>raster_garden_log21</xsl:variable>
+	<xsl:variable name='var_logtable'>raster_garden_log22</xsl:variable>
 	<xsl:variable name='var_pixeltypes'>{8BUI,1BB}</xsl:variable>
 	<xsl:variable name='var_pixelvalues'>{255,0}</xsl:variable>
 	<xsl:variable name='var_algorithm'>'Lanczos'</xsl:variable>
diff --git a/doc/xsl/sfcgal_cheatsheet.html.xsl b/doc/xsl/sfcgal_cheatsheet.html.xsl
index c7883ef..c63805c 100644
--- a/doc/xsl/sfcgal_cheatsheet.html.xsl
+++ b/doc/xsl/sfcgal_cheatsheet.html.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: topology_cheatsheet.html.xsl 11092 2013-02-09 06:08:30Z robe $
      ********************************************************************
 	 Copyright 2011, Regina Obe
      License: BSD
diff --git a/doc/xsl/sfcgal_comments.sql.xsl b/doc/xsl/sfcgal_comments.sql.xsl
index a5440ab..e08342c 100644
--- a/doc/xsl/sfcgal_comments.sql.xsl
+++ b/doc/xsl/sfcgal_comments.sql.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: tiger_geocoder_comments.sql.xsl 7636 2011-07-14 11:32:45Z robe $
      ********************************************************************
 	 Copyright 2008, Regina Obe
      License: BSD
diff --git a/doc/xsl/tiger_geocoder_cheatsheet.html.xsl b/doc/xsl/tiger_geocoder_cheatsheet.html.xsl
index 54cf71a..a1d4661 100644
--- a/doc/xsl/tiger_geocoder_cheatsheet.html.xsl
+++ b/doc/xsl/tiger_geocoder_cheatsheet.html.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: tiger_geocoder_cheatsheet.html.xsl 11090 2013-02-09 05:17:01Z robe $
      ********************************************************************
 	 Copyright 2011, Regina Obe
      License: BSD
diff --git a/doc/xsl/tiger_geocoder_comments.sql.xsl b/doc/xsl/tiger_geocoder_comments.sql.xsl
index 27fd4db..d48d624 100644
--- a/doc/xsl/tiger_geocoder_comments.sql.xsl
+++ b/doc/xsl/tiger_geocoder_comments.sql.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: tiger_geocoder_comments.sql.xsl 7636 2011-07-14 11:32:45Z robe $
      ********************************************************************
 	 Copyright 2008, Regina Obe
      License: BSD
diff --git a/doc/xsl/topology_cheatsheet.html.xsl b/doc/xsl/topology_cheatsheet.html.xsl
index c26b2bb..14c1b8f 100644
--- a/doc/xsl/topology_cheatsheet.html.xsl
+++ b/doc/xsl/topology_cheatsheet.html.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: topology_cheatsheet.html.xsl 11092 2013-02-09 06:08:30Z robe $
      ********************************************************************
 	 Copyright 2011, Regina Obe
      License: BSD
diff --git a/doc/xsl/topology_comments.sql.xsl b/doc/xsl/topology_comments.sql.xsl
index a313fcd..d89fbc2 100644
--- a/doc/xsl/topology_comments.sql.xsl
+++ b/doc/xsl/topology_comments.sql.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!-- ********************************************************************
-     $Id: topology_comments.sql.xsl 9556 2012-03-27 17:06:20Z strk $
      ********************************************************************
 	 Copyright 2008, Regina Obe
      License: BSD
diff --git a/doc/xsl/topology_gardentest.sql.xsl b/doc/xsl/topology_gardentest.sql.xsl
index 90564bc..f623225 100644
--- a/doc/xsl/topology_gardentest.sql.xsl
+++ b/doc/xsl/topology_gardentest.sql.xsl
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:pgis="http://www.postgis.org/pgis">
 <!-- ********************************************************************
- * $Id: topology_gardentest.sql.xsl 11350 2013-05-04 13:54:22Z robe $
  ********************************************************************
 	 Copyright 2008-2010, Regina Obe
 	 License: BSD
diff --git a/extensions/Makefile.in b/extensions/Makefile.in
index b0084f7..ea6c126 100644
--- a/extensions/Makefile.in
+++ b/extensions/Makefile.in
@@ -1,6 +1,6 @@
 #############################################################################
 #
-# Master makefile used to build extensions
+# Master Makefile used to build extensions
 # Copyright (C) 2012 Regina Obe and Leo Hsu <lr at pcorp.us>
 # Copyright (C) 2012 Sandro Santilli <strk at keybit.net>
 #
@@ -14,11 +14,18 @@ SUBDIRS += postgis_tiger_geocoder
 ifeq (@TOPOLOGY@,topology)
 	SUBDIRS += postgis_topology
 endif
+ifeq (@SFCGAL@,sfcgal)
+	SUBDIRS += postgis_sfcgal
+endif
+
+ifeq (@ADDRESS_STANDARDIZER@,address_standardizer)
+	SUBDIRS += address_standardizer
+endif
 
-all clean distclean install uninstall:
+all clean distclean install uninstall installcheck:
 	for DIR in $(SUBDIRS); do \
 		echo "---- Making $@ in $${DIR}"; \
-		$(MAKE) -C "$${DIR}" $@; \
+		$(MAKE) -C "$${DIR}" $@ || exit 1; \
 	done
 
 distclean: distclean-local
diff --git a/extensions/address_standardizer/COPYING b/extensions/address_standardizer/COPYING
new file mode 100644
index 0000000..64129a1
--- /dev/null
+++ b/extensions/address_standardizer/COPYING
@@ -0,0 +1,12 @@
+Copyright 2006-2013 Stephen Woodbridge.
+Copyright (c) 2008 Walter Bruce Sinclair
+
+woodbri at swoodbridge.com
+woodbr at imaptools.com
+
+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.
diff --git a/extensions/address_standardizer/Makefile b/extensions/address_standardizer/Makefile
new file mode 100644
index 0000000..85cc1ba
--- /dev/null
+++ b/extensions/address_standardizer/Makefile
@@ -0,0 +1,173 @@
+OBJS = \
+    address_parser.o \
+    address_standardizer.o \
+    std_pg_hash.o \
+    analyze.o \
+    err_param.o \
+    export.o \
+    gamma.o \
+    hash.o \
+    lexicon.o \
+    pagc_tools.o \
+    parseaddress-api.o \
+    standard.o \
+    tokenize.o
+
+OBJS_test_main = \
+    test_main.o \
+    analyze.o \
+    err_param.o \
+    export.o \
+    gamma.o \
+    hash.o \
+    lexicon.o \
+    pagc_tools.o \
+    standard.o \
+    tokenize.o
+
+POSTGIS_PGSQL_VERSION=93
+# SQL preprocessor
+SQLPP = /usr/bin/cpp -traditional-cpp -w -P
+GREP=/usr/bin/grep
+PERL=/opt/local/bin/perl
+EXTVERSION    = 2.2.0rc1
+MINORVERSION  = 2.2
+MODULE_big = address_standardizer-2.2
+EXTENSION = address_standardizer
+DATA = address_standardizer_data_us.control sql/$(EXTENSION).sql sql/$(EXTENSION)_data_us.sql
+
+all:  sql/address_standardizer.sql sql/address_standardizer--1.0--$(EXTVERSION).sql sql/address_standardizer--$(EXTVERSION).sql sql/address_standardizer--$(EXTVERSION)--$(EXTVERSION)next.sql sql/address_standardizer--$(EXTVERSION)next--$(EXTVERSION).sql \
+ sql/$(EXTENSION)_data_us.sql sql/address_standardizer--2.2.0rc1.sql sql/$(EXTENSION)_data_us--2.2.0rc1.sql  sql/$(EXTENSION)_data_us--$(EXTVERSION)--$(EXTVERSION)next.sql \
+sql/$(EXTENSION)_data_us--$(EXTVERSION)next--$(EXTVERSION).sql \
+sql/test-init-extensions.sql sql/test-parseaddress.sql sql/test-standardize_address_1.sql sql/test-standardize_address_2.sql
+
+EXTRA_CLEAN += sql/*.sql
+
+
+
+DOCS = README.address_standardizer
+PG_CPPFLAGS =  -I/usr/local/include  -I/opt/local/include/libxml2     -g -O0
+
+SHLIB_LINK =  -L/usr/local/lib  -lgeos_c -lproj  -L/opt/local/lib -lxml2 -lz -lpthread -liconv -lm    -lpcre
+EXTRA_CLEAN = usps-st-city-name.txt mk-st-regexp mk-city-regex test_main
+REGRESS = test-init-extensions test-parseaddress test-standardize_address_1 test-standardize_address_2
+
+# PGXS information
+PG_CONFIG = /opt/pgsql/9.3/bin/pg_config
+
+PGVER := $(shell $(PG_CONFIG) --version)
+
+
+# Set PERL _after_ the include of PGXS
+PERL=/opt/local/bin/perl
+
+# Borrow the $libdir substitution from PGXS but customise by running the preprocessor
+# and adding the version number
+sql/%.sql: %.sql.in
+	mkdir -p sql
+	$(SQLPP) -I../libpgcommon $< | grep -v '^#' | \
+	$(PERL) -lpe "s'MODULE_PATHNAME'\$$libdir/${EXTENSION}-${MINORVERSION}'g" > $@
+	
+sql/address_standardizer--2.2.0rc1.sql: sql/address_standardizer_types.sql \
+    sql/address_standardizer_functions.sql
+	cat $^ > $@
+	
+sql/address_standardizer.sql: sql/address_standardizer_types.sql \
+    sql/address_standardizer_functions.sql
+	cat $^ > $@
+	
+sql/address_standardizer--1.0--$(EXTVERSION).sql:  sql/address_standardizer_functions.sql
+	cat $^ > $@
+	
+# upgrade logic for us data extension (to go to next cludge for dev upgrading)
+sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql: sql/address_standardizer_functions.sql
+	cat $^ > $@
+
+# upgrade logic for us data extension (to go to original round-robin yoyo cludge for dev upgrading)
+sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql/address_standardizer_functions.sql
+	cat $^ > $@		
+	
+# build us data extension
+sql/$(EXTENSION)_data_us--$(EXTVERSION).sql: us_lex.sql us_gaz.sql us_rules.sql sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in
+	mkdir -p sql
+	cat $^ > $@
+	
+sql/$(EXTENSION)_data_us.sql: us_lex.sql us_gaz.sql us_rules.sql sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in
+	mkdir -p sql
+	cat $^ > $@
+	
+# upgrade logic for us data extension (to go to next cludge for dev upgrading)
+sql/$(EXTENSION)_data_us--$(EXTVERSION)--$(EXTVERSION)next.sql: sql/$(EXTENSION)_data_us--$(EXTVERSION).sql
+	cat $^ > $@
+
+# upgrade logic for us data extension (to go to original round-robin yoyo cludge for dev upgrading)
+sql/$(EXTENSION)_data_us--$(EXTVERSION)next--$(EXTVERSION).sql: sql/$(EXTENSION)_data_us--$(EXTVERSION).sql
+	cat $^ > $@	
+	
+mk-st-regexp: mk-st-regexp.pl
+	$(PERL) -c mk-st-regexp.pl
+	rm -f mk-st-regexp
+	echo "#! " $(PERL) > mk-st-regexp
+	cat mk-st-regexp.pl >> mk-st-regexp
+	chmod ugo+x mk-st-regexp
+
+mk-city-regex: mk-city-regex.pl usps-st-city-name.txt
+	$(PERL) -c mk-city-regex.pl
+	rm -f mk-city-regex
+	echo "#! " $(PERL) > mk-city-regex
+	cat mk-city-regex.pl >> mk-city-regex
+	chmod ugo+x mk-city-regex
+
+usps-st-city-name.txt: usps-st-city-orig.txt usps-st-city-adds.txt
+	cat usps-st-city-orig.txt usps-st-city-adds.txt | sort -u >usps-st-city-name.txt
+
+#parseaddress-stcities.h: mk-city-regex
+#	./mk-city-regex > parseaddress-stcities.h
+
+#parseaddress-regex.h: mk-st-regexp
+#	./mk-st-regexp > parseaddress-regex.h
+
+dist-clean:
+	rm -f mk-st-regexp mk-city-regex usps-st-city-name.txt test_main Makefile
+
+
+test_main: $(OBJS_test_main)
+	gcc -o test_main $(OBJS_test_main) $(LDFLAGS) $(LIBS)
+
+test_main.o: test_main.c pagc_api.h pagc_std_api.h
+
+address_parser.o: address_parser.c parseaddress-api.h
+
+address_standardizer.o: address_standardizer.c std_pg_hash.h pagc_api.h pagc_std_api.h
+
+analyze.o: analyze.c pagc_api.h
+
+err_param.o: err_param.c pagc_api.h
+
+export.o: export.c pagc_api.h pagc_tools.h
+
+gamma.o: gamma.c pagc_api.h pagc_std_api.h gamma.h
+
+hash.o: hash.c hash.h khash.h
+
+lexicon.o: lexicon.c pagc_api.h pagc_std_api.h
+
+pagc_tools.o: pagc_tools.c pagc_tools.h pagc_common.h
+
+parseaddress-api.o: parseaddress-api.c parseaddress-api.h parseaddress-stcities.h parseaddress-regex.h
+
+standard.o: standard.c pagc_api.h
+
+tokenize.o: tokenize.c pagc_api.h
+
+std_pg_hash.o: std_pg_hash.c std_pg_hash.h pagc_api.h pagc_std_api.h
+
+#only extension files	
+DATA += $(wildcard sql/*--*.sql)
+EXTRA_CLEAN += $(wildcard expected/*--*.out)
+EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql
+EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql *.a *.so *.dll
+
+PGXS := /opt/pgsql/9.3/lib/pgxs/src/makefiles/pgxs.mk
+include $(PGXS)
+
diff --git a/extensions/address_standardizer/Makefile.in b/extensions/address_standardizer/Makefile.in
new file mode 100644
index 0000000..8d5a41a
--- /dev/null
+++ b/extensions/address_standardizer/Makefile.in
@@ -0,0 +1,173 @@
+OBJS = \
+    address_parser.o \
+    address_standardizer.o \
+    std_pg_hash.o \
+    analyze.o \
+    err_param.o \
+    export.o \
+    gamma.o \
+    hash.o \
+    lexicon.o \
+    pagc_tools.o \
+    parseaddress-api.o \
+    standard.o \
+    tokenize.o
+
+OBJS_test_main = \
+    test_main.o \
+    analyze.o \
+    err_param.o \
+    export.o \
+    gamma.o \
+    hash.o \
+    lexicon.o \
+    pagc_tools.o \
+    standard.o \
+    tokenize.o
+
+POSTGIS_PGSQL_VERSION=@POSTGIS_PGSQL_VERSION@
+# SQL preprocessor
+SQLPP = @SQLPP@
+GREP=@GREP@
+PERL=@PERL@
+EXTVERSION    = @POSTGIS_LIB_VERSION@
+MINORVERSION  = @POSTGIS_MAJOR_VERSION at .@POSTGIS_MINOR_VERSION@
+MODULE_big = address_standardizer- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@
+EXTENSION = address_standardizer
+DATA = address_standardizer_data_us.control sql/$(EXTENSION).sql sql/$(EXTENSION)_data_us.sql
+
+all:  sql/address_standardizer.sql sql/address_standardizer--1.0--$(EXTVERSION).sql sql/address_standardizer--$(EXTVERSION).sql sql/address_standardizer--$(EXTVERSION)--$(EXTVERSION)next.sql sql/address_standardizer--$(EXTVERSION)next--$(EXTVERSION).sql \
+ sql/$(EXTENSION)_data_us.sql sql/address_standardizer-- at POSTGIS_LIB_VERSION@.sql sql/$(EXTENSION)_data_us-- at POSTGIS_LIB_VERSION@.sql  sql/$(EXTENSION)_data_us--$(EXTVERSION)--$(EXTVERSION)next.sql \
+sql/$(EXTENSION)_data_us--$(EXTVERSION)next--$(EXTVERSION).sql \
+sql/test-init-extensions.sql sql/test-parseaddress.sql sql/test-standardize_address_1.sql sql/test-standardize_address_2.sql
+
+EXTRA_CLEAN += sql/*.sql
+
+
+
+DOCS = README.address_standardizer
+PG_CPPFLAGS = @CPPFLAGS@ -g -O0
+
+SHLIB_LINK = @SHLIB_LINK@ -lpcre
+EXTRA_CLEAN = usps-st-city-name.txt mk-st-regexp mk-city-regex test_main
+REGRESS = test-init-extensions test-parseaddress test-standardize_address_1 test-standardize_address_2
+
+# PGXS information
+PG_CONFIG = @PG_CONFIG@
+
+PGVER := $(shell $(PG_CONFIG) --version)
+
+
+# Set PERL _after_ the include of PGXS
+PERL=@PERL@
+
+# Borrow the $libdir substitution from PGXS but customise by running the preprocessor
+# and adding the version number
+sql/%.sql: %.sql.in
+	mkdir -p sql
+	$(SQLPP) -I../libpgcommon $< | grep -v '^#' | \
+	$(PERL) -lpe "s'MODULE_PATHNAME'\$$libdir/${EXTENSION}-${MINORVERSION}'g" > $@
+	
+sql/address_standardizer-- at POSTGIS_LIB_VERSION@.sql: sql/address_standardizer_types.sql \
+    sql/address_standardizer_functions.sql
+	cat $^ > $@
+	
+sql/address_standardizer.sql: sql/address_standardizer_types.sql \
+    sql/address_standardizer_functions.sql
+	cat $^ > $@
+	
+sql/address_standardizer--1.0--$(EXTVERSION).sql:  sql/address_standardizer_functions.sql
+	cat $^ > $@
+	
+# upgrade logic for us data extension (to go to next cludge for dev upgrading)
+sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql: sql/address_standardizer_functions.sql
+	cat $^ > $@
+
+# upgrade logic for us data extension (to go to original round-robin yoyo cludge for dev upgrading)
+sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql/address_standardizer_functions.sql
+	cat $^ > $@		
+	
+# build us data extension
+sql/$(EXTENSION)_data_us--$(EXTVERSION).sql: us_lex.sql us_gaz.sql us_rules.sql sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in
+	mkdir -p sql
+	cat $^ > $@
+	
+sql/$(EXTENSION)_data_us.sql: us_lex.sql us_gaz.sql us_rules.sql sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in
+	mkdir -p sql
+	cat $^ > $@
+	
+# upgrade logic for us data extension (to go to next cludge for dev upgrading)
+sql/$(EXTENSION)_data_us--$(EXTVERSION)--$(EXTVERSION)next.sql: sql/$(EXTENSION)_data_us--$(EXTVERSION).sql
+	cat $^ > $@
+
+# upgrade logic for us data extension (to go to original round-robin yoyo cludge for dev upgrading)
+sql/$(EXTENSION)_data_us--$(EXTVERSION)next--$(EXTVERSION).sql: sql/$(EXTENSION)_data_us--$(EXTVERSION).sql
+	cat $^ > $@	
+	
+mk-st-regexp: mk-st-regexp.pl
+	$(PERL) -c mk-st-regexp.pl
+	rm -f mk-st-regexp
+	echo "#! " $(PERL) > mk-st-regexp
+	cat mk-st-regexp.pl >> mk-st-regexp
+	chmod ugo+x mk-st-regexp
+
+mk-city-regex: mk-city-regex.pl usps-st-city-name.txt
+	$(PERL) -c mk-city-regex.pl
+	rm -f mk-city-regex
+	echo "#! " $(PERL) > mk-city-regex
+	cat mk-city-regex.pl >> mk-city-regex
+	chmod ugo+x mk-city-regex
+
+usps-st-city-name.txt: usps-st-city-orig.txt usps-st-city-adds.txt
+	cat usps-st-city-orig.txt usps-st-city-adds.txt | sort -u >usps-st-city-name.txt
+
+#parseaddress-stcities.h: mk-city-regex
+#	./mk-city-regex > parseaddress-stcities.h
+
+#parseaddress-regex.h: mk-st-regexp
+#	./mk-st-regexp > parseaddress-regex.h
+
+dist-clean:
+	rm -f mk-st-regexp mk-city-regex usps-st-city-name.txt test_main Makefile
+
+
+test_main: $(OBJS_test_main)
+	gcc -o test_main $(OBJS_test_main) $(LDFLAGS) $(LIBS)
+
+test_main.o: test_main.c pagc_api.h pagc_std_api.h
+
+address_parser.o: address_parser.c parseaddress-api.h
+
+address_standardizer.o: address_standardizer.c std_pg_hash.h pagc_api.h pagc_std_api.h
+
+analyze.o: analyze.c pagc_api.h
+
+err_param.o: err_param.c pagc_api.h
+
+export.o: export.c pagc_api.h pagc_tools.h
+
+gamma.o: gamma.c pagc_api.h pagc_std_api.h gamma.h
+
+hash.o: hash.c hash.h khash.h
+
+lexicon.o: lexicon.c pagc_api.h pagc_std_api.h
+
+pagc_tools.o: pagc_tools.c pagc_tools.h pagc_common.h
+
+parseaddress-api.o: parseaddress-api.c parseaddress-api.h parseaddress-stcities.h parseaddress-regex.h
+
+standard.o: standard.c pagc_api.h
+
+tokenize.o: tokenize.c pagc_api.h
+
+std_pg_hash.o: std_pg_hash.c std_pg_hash.h pagc_api.h pagc_std_api.h
+
+#only extension files	
+DATA += $(wildcard sql/*--*.sql)
+EXTRA_CLEAN += $(wildcard expected/*--*.out)
+EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql
+EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql *.a *.so *.dll
+
+PGXS := @PGXS@
+include $(PGXS)
+
diff --git a/extensions/address_standardizer/README.address_standardizer b/extensions/address_standardizer/README.address_standardizer
new file mode 100644
index 0000000..7f27873
--- /dev/null
+++ b/extensions/address_standardizer/README.address_standardizer
@@ -0,0 +1,219 @@
+This is a fork of the PAGC standardizer and a single line address parser.
+The code is built into a single postgresql extension library.
+
+Portions of this code belong to their respective contributors.
+This code is released under an MIT-X license.
+
+Copyright (c) 2006-2014 Stephen Woodbridge.
+Copyright (c) 2008 Walter Bruce Sinclair
+
+woodbri at swoodbridge.com
+woodbr at imaptools.com
+
+Also read files COPYING
+
+-------------------------------------------------------------------------------
+
+Makefile                - PGXS makefile
+mk-city-regex.pl        - Perl script to create parseaddress-regex.h
+mk-st-regexp.pl         - Perl script to create parseaddress-stcities.h
+README.address_standardizer - this file
+COPYING                 - License file
+usps-st-city-adds.txt   - add local additions of ST<tab>CITY NAME
+usps-st-city-orig.txt   - Steve's extract of USPS city names
+
+mk-city-regex           - created by make
+mk-st-regexp            - created by make
+usps-st-city-name.txt   - created by make
+                          from usps-st-city-orig.txt and usps-st-city-adds.txt
+parseaddress-regex.h    - created by make and mk-st-regexp
+parseaddress-stcities.h - created by make and mk-city-regex
+                          from usps-st-city-name.txt
+
+-------------------------------------------------------------------------------
+PREREQUISITES:
+
+o Postgresql headers and PGXS tools
+
+o Perl 5 and Perl module Regexp::List which can be install with:
+    sudo perl -MCPAN -e "install Regexp::Assemble"
+
+o libpcre and headers
+    sudo apt-get install libpcre3-dev libpcre3
+
+-------------------------------------------------------------------------------
+Build and Install:
+
+make
+sudo make install
+
+For postgresql 9.1+ this will install all the files need for CREATE EXTENSION
+
+createdb testdb
+psql -c "create extension address_standardizer"
+
+
+-------------------------------------------------------------------------------
+
+How the parser works
+
+The parser works from right to left looking first at the macro elements 
+for postcode, state/province, city, and then looks micro elements to determine
+if we are dealing with a house number street or intersection or landmark.
+It currently does not look for a country code or name, but that could be
+introduced in the future.
+
+Country code
+------------
+
+Assumed to be US or CA based on:
+
+    postcode as US or Canada
+    state/province as US or Canada
+    else US
+
+Postcode/zipcode
+----------------
+
+These are recognized using Perl compatible regular expressions.
+These regexs are currently in the parseaddress-api.c and are relatively
+simple to make changes to if needed.
+
+State/province
+--------------
+
+These are recognized using Perl compatible regular expressions.
+These regexs are currently in the parseaddress-api.c but could get moved
+into includes in the future for easier maintenance.
+
+City name
+---------
+
+This part is rather complicated and there are lots of issues around ambiguities
+as to where to split a series of tokens when a token might belong to either
+the city or the street name. The current strategy follows something like this:
+
+    1. if we have a state, then get the city regex for that state
+    2. if we can match that to the end of our remaining address string then
+       extract the city name and continue.
+    3. if we do not have a state or fail to match it then
+       cycle through a series of regex patterns that try to separate the city
+       from the street, stop and extract the city if we match
+
+Number street name
+
+    1. check for a leading house number, and extract that
+    2. if there is an '@' then split the string on the '@' into street and
+       street2 else put the rest into street
+
+------------------------------------------------------------------------------
+
+Managing the regexes
+
+The regexes are used to recognize US states and Canadian provinces
+and USPS city names.
+
+City regexes
+------------
+
+usps-st-city-orig.txt  - this file contains all the acceptable USPS city
+                         names by state. I periodically extract these from the
+                         USPS and generate this file. I do NOT recommend
+                         editing this file. 
+usps-st-city-adds.txt  - this file you can add new definitions to if you need
+                         them. The format of both these files is:
+                         <StateAbbrev><tab><CityName>
+
+These files are assembled into usps-st-city-name.txt which is compiled by a
+perl script mk-city-regex.pl into parseaddress-stcities.h which is used to
+lookup the city regex for a specific state or province.
+
+As I mentioned above is these fail to detect the city, then a secondary
+strategy is is deployed by cycling through a list of regex patterns. These
+patterns and regexes are generated by mk-st-regexp.pl which creates the
+parseaddress-regex.h include. This is a perl script so you can view and edit
+it if that is needed.
+
+I think that there might be some room for improved in the area if coodinating
+this process with PAGC's lexicon.csv and gazeteer.csv in the future.
+
+----------------------------------------------------------------------------
+
+Author: API: Stephen Woodbridge <woodbri at imaptools.com>
+        PAGC: Walter Sinclar
+
+This is a first attempt at extracting the PAGC standardizer code into a
+separate library. This was done so I could attempt to wrap it into a 
+postgresql stored procedure. (see the directory psql for that).
+
+This code is a part of PAGC and is release under an MIT-X license.
+
+Assumptions:
+
+Linux
+Sudo is installed and user has access to it.
+
+PAGC does compile under Windows so you might get this to compile into a dll.
+
+Build and installation:
+
+Read the Makefile and change as appropriate.
+
+make clean
+make
+make install
+make test_main  # build the CLI interactive test program
+
+
+Author: Stephen Woodbridge <woodbri at imaptools.com>
+
+These are postgresql wrappers for PAGC standardizer and address parser.
+These are released un an MIT-X style license.
+
+Assumptions:
+
+Linux
+sudo is installed and user has sudo access (see Makefile)
+postgresql 8.3 (make changes in the Makefile to change)
+
+Build and Installation:
+
+make
+make install
+
+# create a new database using a postgis template
+createdb -T template_postgis -E LATIN1 mydb
+
+# add the stored procedures
+psql mydb -f /path/to/standardize_address.sql
+
+Install PAGC lexicon.csv, gazeteer.csv or rules.txt using a perl script.
+
+./pagc-data-psql lex lexicon.csv  | psql mydb
+./pagc-data-psql gaz gazeteer.csv | psql mydb
+./pagc-data-psql rules rules.txt  | psql mydb
+
+Now you should be able to test some queries like:
+
+psql mydb
+
+select * from parse_address('2099 university ave w, saint paul, mn, 55104-3431');
+select * from parse_address('university ave w @ main st, saint paul, mn, 55104-3431');
+
+select * from parse_address('385 Landgrove Rd  Landgrove VT 05148');
+-- "385";"Landgrove Rd";"";"385 Landgrove Rd";"Landgrove";"VT";"05148";"";"US"
+
+select * from standardize_address(
+        'select seq, word::text, stdword::text, token from gaz union all select seq, word::text, stdword::text, token from lex ',
+        'select seq, word::text, stdword::text, token from gaz order by id',
+        'select * from rules order by id',
+        'select 0::int4 as id, ''1071 B Ave''::text as micro, ''Loxley, AL 36551''::text as macro');
+
+select * from standardize_address(
+        'select seq, word::text, stdword::text, token from lex order by id',
+        'select seq, word::text, stdword::text, token from gaz order by id',
+        'select * from rules order by id',
+        'select 0::int4 as id, ''116 commonwealth ave apt a''::text as micro, ''west concord, ma 01742''::text as macro');
+
+\q
+
diff --git a/extensions/address_standardizer/address_parser.c b/extensions/address_standardizer/address_parser.c
new file mode 100644
index 0000000..c6c5976
--- /dev/null
+++ b/extensions/address_standardizer/address_parser.c
@@ -0,0 +1,120 @@
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include "postgres.h"
+#include "funcapi.h"
+#include "catalog/pg_type.h"
+#include "fmgr.h"
+
+#include "parseaddress-api.h"
+#include <pcre.h>
+#include <string.h>
+
+#undef DEBUG
+//#define DEBUG 1
+
+#ifdef DEBUG
+#define DBG(format, arg...)                     \
+    elog(NOTICE, format , ## arg)
+#else
+#define DBG(format, arg...) do { ; } while (0)
+#endif
+
+Datum parse_address(PG_FUNCTION_ARGS);
+
+static char *text2char(text *in)
+{
+    char *out = palloc(VARSIZE(in));
+    memcpy(out, VARDATA(in), VARSIZE(in) - VARHDRSZ);
+    out[VARSIZE(in) - VARHDRSZ] = '\0';
+    return out;
+}
+
+PG_FUNCTION_INFO_V1(parse_address);
+
+Datum parse_address(PG_FUNCTION_ARGS)
+{
+    TupleDesc            tupdesc;
+    AttInMetadata       *attinmeta;
+    Datum                result;
+    ADDRESS             *paddr;
+    HHash               *stH;
+    char                *str;
+    char               **values;
+    int                  err;
+    HeapTuple            tuple;
+
+
+    DBG("Start standardize_address");
+
+    str = text2char(PG_GETARG_TEXT_P(0));
+
+    DBG("str='%s'", str);
+
+    if (get_call_result_type( fcinfo, NULL, &tupdesc ) != TYPEFUNC_COMPOSITE ) {
+        elog(ERROR, "function returning record called in context"
+            " that cannot accept type record");
+        return -1;
+    }
+    BlessTupleDesc(tupdesc);
+    attinmeta = TupleDescGetAttInMetadata(tupdesc);
+
+    DBG("Got tupdesc, allocating HHash");
+
+    stH = (HHash *) palloc0(sizeof(HHash));
+    if (!stH) {
+         elog(ERROR, "parse_address: Failed to allocate memory for hash!");
+         return -1;
+    }
+
+    DBG("going to load_state_hash");
+
+    err = load_state_hash(stH);
+    if (err) {
+        DBG("got err=%d from load_state_hash().", err);
+#ifdef USE_HSEARCH
+        DBG("calling hdestroy_r(stH).");
+        hdestroy_r(stH);
+#endif
+        elog(ERROR, "parse_address: load_state_hash() failed(%d)!", err);
+        return -1;
+    }
+
+    DBG("calling parseaddress()");
+    paddr = parseaddress(stH, str, &err);
+    if (!paddr) {
+        elog(ERROR, "parse_address: parseaddress() failed!");
+        return -1;
+    }
+
+    DBG("setup values array for natts=%d", tupdesc->natts);
+    values = (char **) palloc(9 * sizeof(char *));
+    if (!values) {
+        elog(ERROR, "parse_address: out of memory!");
+        return -1;
+    }
+    values[0] = paddr->num;
+    values[1] = paddr->street;
+    values[2] = paddr->street2;
+    values[3] = paddr->address1;
+    values[4] = paddr->city;
+    values[5] = paddr->st;
+    values[6] = paddr->zip;
+    values[7] = paddr->zipplus;
+    values[8] = paddr->cc;
+
+    DBG("calling heap_form_tuple");
+    tuple = BuildTupleFromCStrings(attinmeta, values);
+
+    /* make the tuple into a datum */
+    DBG("calling HeapTupleGetDatum");
+    result = HeapTupleGetDatum(tuple);
+
+    /* clean up (this is not really necessary */
+    DBG("freeing values, hash, and paddr");
+    free_state_hash(stH);
+
+    DBG("returning parsed address result");
+    return result;
+}
+
diff --git a/extensions/address_standardizer/address_standardizer.c b/extensions/address_standardizer/address_standardizer.c
new file mode 100644
index 0000000..b170399
--- /dev/null
+++ b/extensions/address_standardizer/address_standardizer.c
@@ -0,0 +1,284 @@
+#include "postgres.h"
+#include "funcapi.h"
+#include "catalog/pg_type.h"
+#include "fmgr.h"
+
+#undef DEBUG
+//#define DEBUG 1
+
+#include "pagc_api.h"
+#include "pagc_std_api.h"
+#include "std_pg_hash.h"
+#include "parseaddress-api.h"
+
+#ifdef PG_MODULE_MAGIC
+PG_MODULE_MAGIC;
+#endif
+
+Datum standardize_address(PG_FUNCTION_ARGS);
+Datum standardize_address1(PG_FUNCTION_ARGS);
+
+
+static char *text2char(text *in)
+{
+    char *out = palloc(VARSIZE(in));
+    memcpy(out, VARDATA(in), VARSIZE(in) - VARHDRSZ);
+    out[VARSIZE(in) - VARHDRSZ] = '\0';
+    return out;
+}
+
+/*
+ * The signature for standardize_address follows. The lextab, gaztab and
+ * rultab should not change once the reference has been standardized and
+ * the same tables must be used for a geocode request as were used on the
+ * reference set or the matching will get degregated.
+ *
+ *   select * from standardize_address(
+ *       lextab text,  -- name of table of view
+ *       gaztab text,  -- name of table or view
+ *       rultab text,  -- name of table of view
+ *       micro text,   -- '123 main st'
+ *       macro text);  -- 'boston ma 01002'
+ *
+ * If you want to standardize a whole table then call it like:
+ *
+ *   insert into stdaddr (...)
+ *       select (std).* from (
+ *           select standardize_address(
+ *               'lextab', 'gaztab', 'rultab', micro, marco) as std
+ *             from table_to_standardize) as foo;
+ *
+ * The structure of the lextab and gaztab tables of views must be:
+ *
+ *    seq int4
+ *    word text
+ *    stdword text
+ *    token int4
+ *
+ * the rultab table or view must have columns:
+ *
+ *    rule text
+*/
+
+PG_FUNCTION_INFO_V1(standardize_address);
+
+Datum standardize_address(PG_FUNCTION_ARGS)
+{
+    TupleDesc            tuple_desc;
+    AttInMetadata       *attinmeta;
+    STANDARDIZER        *std;
+    char                *lextab;
+    char                *gaztab;
+    char                *rultab;
+    char                *micro;
+    char                *macro;
+    Datum                result;
+    STDADDR             *stdaddr;
+    char               **values;
+    int                  k;
+    HeapTuple            tuple;
+
+    DBG("Start standardize_address");
+
+    lextab = text2char(PG_GETARG_TEXT_P(0));
+    gaztab = text2char(PG_GETARG_TEXT_P(1));
+    rultab = text2char(PG_GETARG_TEXT_P(2));
+    micro  = text2char(PG_GETARG_TEXT_P(3));
+    macro  = text2char(PG_GETARG_TEXT_P(4));
+
+    DBG("calling RelationNameGetTupleDesc");
+    if (get_call_result_type( fcinfo, NULL, &tuple_desc ) != TYPEFUNC_COMPOSITE ) {
+        elog(ERROR, "standardize_address() was called in a way that cannot accept record as a result");
+    }
+    BlessTupleDesc(tuple_desc);
+    attinmeta = TupleDescGetAttInMetadata(tuple_desc);
+
+    DBG("calling GetStdUsingFCInfo(fcinfo, '%s', '%s', '%s')", lextab, gaztab, rultab);
+    std = GetStdUsingFCInfo(fcinfo, lextab, gaztab, rultab);
+    if (!std)
+        elog(ERROR, "standardize_address() failed to create the address standardizer object!");
+
+    DBG("calling std_standardize_mm('%s', '%s')", micro, macro);
+    stdaddr = std_standardize_mm( std, micro, macro, 0 );
+
+    DBG("back from fetch_stdaddr");
+
+    values = (char **) palloc(16 * sizeof(char *));
+    for (k=0; k<16; k++) {
+        values[k] = NULL;
+    }
+    DBG("setup values array for natts=%d", tuple_desc->natts);
+    if (stdaddr) {
+        values[0] = stdaddr->building   ? pstrdup(stdaddr->building) : NULL;
+        values[1] = stdaddr->house_num  ? pstrdup(stdaddr->house_num) : NULL;
+        values[2] = stdaddr->predir     ? pstrdup(stdaddr->predir) : NULL;
+        values[3] = stdaddr->qual       ? pstrdup(stdaddr->qual) : NULL;
+        values[4] = stdaddr->pretype    ? pstrdup(stdaddr->pretype) : NULL;
+        values[5] = stdaddr->name       ? pstrdup(stdaddr->name) : NULL;
+        values[6] = stdaddr->suftype    ? pstrdup(stdaddr->suftype) : NULL;
+        values[7] = stdaddr->sufdir     ? pstrdup(stdaddr->sufdir) : NULL;
+        values[8] = stdaddr->ruralroute ? pstrdup(stdaddr->ruralroute) : NULL;
+        values[9] = stdaddr->extra      ? pstrdup(stdaddr->extra) : NULL;
+        values[10] = stdaddr->city      ? pstrdup(stdaddr->city) : NULL;
+        values[11] = stdaddr->state     ? pstrdup(stdaddr->state) : NULL;
+        values[12] = stdaddr->country   ? pstrdup(stdaddr->country) : NULL;
+        values[13] = stdaddr->postcode  ? pstrdup(stdaddr->postcode) : NULL;
+        values[14] = stdaddr->box       ? pstrdup(stdaddr->box) : NULL;
+        values[15] = stdaddr->unit      ? pstrdup(stdaddr->unit) : NULL;
+    }
+
+    DBG("calling heap_form_tuple");
+    tuple = BuildTupleFromCStrings(attinmeta, values);
+
+    /* make the tuple into a datum */
+    DBG("calling HeapTupleGetDatum");
+    result = HeapTupleGetDatum(tuple);
+
+    /* clean up (this is not really necessary */
+    DBG("freeing values, nulls, and stdaddr");
+    stdaddr_free(stdaddr);
+
+    DBG("returning standardized result");
+    PG_RETURN_DATUM(result);
+}
+
+
+PG_FUNCTION_INFO_V1(standardize_address1);
+
+Datum standardize_address1(PG_FUNCTION_ARGS)
+{
+    TupleDesc            tuple_desc;
+    AttInMetadata       *attinmeta;
+    STANDARDIZER        *std;
+    char                *lextab;
+    char                *gaztab;
+    char                *rultab;
+    char                *addr;
+    char                *micro;
+    char                *macro;
+    Datum                result;
+    STDADDR             *stdaddr;
+    char               **values;
+    int                  k;
+    HeapTuple            tuple;
+    ADDRESS             *paddr;
+    HHash               *stH;
+    int                  err;
+
+    DBG("Start standardize_address");
+
+    lextab = text2char(PG_GETARG_TEXT_P(0));
+    gaztab = text2char(PG_GETARG_TEXT_P(1));
+    rultab = text2char(PG_GETARG_TEXT_P(2));
+    addr   = text2char(PG_GETARG_TEXT_P(3));
+
+    DBG("calling RelationNameGetTupleDesc");
+    if (get_call_result_type( fcinfo, NULL, &tuple_desc ) != TYPEFUNC_COMPOSITE ) {
+        elog(ERROR, "standardize_address() was called in a way that cannot accept record as a result");
+    }
+    BlessTupleDesc(tuple_desc);
+    attinmeta = TupleDescGetAttInMetadata(tuple_desc);
+
+    DBG("Got tupdesc, allocating HHash");
+
+    stH = (HHash *) palloc0(sizeof(HHash));
+    if (!stH) {
+         elog(ERROR, "standardize_address: Failed to allocate memory for hash!");
+         return -1;
+    }
+
+    DBG("going to load_state_hash");
+
+    err = load_state_hash(stH);
+    if (err) {
+        DBG("got err=%d from load_state_hash().", err);
+#ifdef USE_HSEARCH
+        DBG("calling hdestroy_r(stH).");
+        hdestroy_r(stH);
+#endif
+        elog(ERROR, "standardize_address: load_state_hash() failed(%d)!", err);
+        return -1;
+    }
+
+    DBG("calling parseaddress()");
+    paddr = parseaddress(stH, addr, &err);
+    if (!paddr) {
+        elog(ERROR, "parse_address: parseaddress() failed!");
+        return -1;
+    }
+
+    /* check for errors and comput length of macro string */
+    if (paddr->street2)
+        elog(ERROR, "standardize_address() can not be passed an intersection.");
+    if (! paddr-> address1)
+        elog(ERROR, "standardize_address() could not parse the address into components.");
+
+    k = 1;
+    if (paddr->city) k += strlen(paddr->city) + 1;
+    if (paddr->st)   k += strlen(paddr->st)   + 1;
+    if (paddr->zip)  k += strlen(paddr->zip)  + 1;
+    if (paddr->cc)   k += strlen(paddr->cc)   + 1;
+
+    /* create micro and macro from paddr */
+    micro = pstrdup(paddr->address1);
+    macro = (char *) palloc(k * sizeof(char));
+
+    *macro = '\0';
+    if (paddr->city) { strcat(macro, paddr->city); strcat(macro, ","); }
+    if (paddr->st  ) { strcat(macro, paddr->st  ); strcat(macro, ","); }
+    if (paddr->zip ) { strcat(macro, paddr->zip ); strcat(macro, ","); }
+    if (paddr->cc  ) { strcat(macro, paddr->cc  ); strcat(macro, ","); }
+
+    DBG("calling GetStdUsingFCInfo(fcinfo, '%s', '%s', '%s')", lextab, gaztab, rultab);
+    std = GetStdUsingFCInfo(fcinfo, lextab, gaztab, rultab);
+    if (!std)
+        elog(ERROR, "standardize_address() failed to create the address standardizer object!");
+
+    DBG("calling std_standardize_mm('%s', '%s')", micro, macro);
+    stdaddr = std_standardize_mm( std, micro, macro, 0 );
+
+    DBG("back from fetch_stdaddr");
+
+    values = (char **) palloc(16 * sizeof(char *));
+    for (k=0; k<16; k++) {
+        values[k] = NULL;
+    }
+    DBG("setup values array for natts=%d", tuple_desc->natts);
+    if (stdaddr) {
+        values[0] = stdaddr->building   ? pstrdup(stdaddr->building) : NULL;
+        values[1] = stdaddr->house_num  ? pstrdup(stdaddr->house_num) : NULL;
+        values[2] = stdaddr->predir     ? pstrdup(stdaddr->predir) : NULL;
+        values[3] = stdaddr->qual       ? pstrdup(stdaddr->qual) : NULL;
+        values[4] = stdaddr->pretype    ? pstrdup(stdaddr->pretype) : NULL;
+        values[5] = stdaddr->name       ? pstrdup(stdaddr->name) : NULL;
+        values[6] = stdaddr->suftype    ? pstrdup(stdaddr->suftype) : NULL;
+        values[7] = stdaddr->sufdir     ? pstrdup(stdaddr->sufdir) : NULL;
+        values[8] = stdaddr->ruralroute ? pstrdup(stdaddr->ruralroute) : NULL;
+        values[9] = stdaddr->extra      ? pstrdup(stdaddr->extra) : NULL;
+        values[10] = stdaddr->city      ? pstrdup(stdaddr->city) : NULL;
+        values[11] = stdaddr->state     ? pstrdup(stdaddr->state) : NULL;
+        values[12] = stdaddr->country   ? pstrdup(stdaddr->country) : NULL;
+        values[13] = stdaddr->postcode  ? pstrdup(stdaddr->postcode) : NULL;
+        values[14] = stdaddr->box       ? pstrdup(stdaddr->box) : NULL;
+        values[15] = stdaddr->unit      ? pstrdup(stdaddr->unit) : NULL;
+    }
+
+    DBG("calling heap_form_tuple");
+    tuple = BuildTupleFromCStrings(attinmeta, values);
+
+    /* make the tuple into a datum */
+    DBG("calling HeapTupleGetDatum");
+    result = HeapTupleGetDatum(tuple);
+
+    /* clean up (this is not really necessary */
+    DBG("freeing values, nulls, and stdaddr");
+    stdaddr_free(stdaddr);
+
+    DBG("freeing values, hash, and paddr");
+    free_state_hash(stH);
+
+    DBG("returning standardized result");
+    PG_RETURN_DATUM(result);
+}
+
+
diff --git a/extensions/address_standardizer/address_standardizer.control b/extensions/address_standardizer/address_standardizer.control
new file mode 100644
index 0000000..8a7f740
--- /dev/null
+++ b/extensions/address_standardizer/address_standardizer.control
@@ -0,0 +1,4 @@
+# address_standardizer extension
+comment = 'Used to parse an address into constituent elements. Generally used to support geocoding address normalization step.'
+default_version = '2.2.0rc1'
+relocatable = true
diff --git a/extensions/address_standardizer/address_standardizer.control.in b/extensions/address_standardizer/address_standardizer.control.in
new file mode 100644
index 0000000..a58daad
--- /dev/null
+++ b/extensions/address_standardizer/address_standardizer.control.in
@@ -0,0 +1,4 @@
+# address_standardizer extension
+comment = 'Used to parse an address into constituent elements. Generally used to support geocoding address normalization step.'
+default_version = '@POSTGIS_LIB_VERSION@'
+relocatable = true
diff --git a/extensions/address_standardizer/address_standardizer_data_us.control b/extensions/address_standardizer/address_standardizer_data_us.control
new file mode 100644
index 0000000..e129ff9
--- /dev/null
+++ b/extensions/address_standardizer/address_standardizer_data_us.control
@@ -0,0 +1,4 @@
+# address standardizer us dataset
+comment = 'Address Standardizer US dataset example'
+default_version = '2.2.0rc1'
+relocatable = true
diff --git a/extensions/address_standardizer/address_standardizer_data_us.control.in b/extensions/address_standardizer/address_standardizer_data_us.control.in
new file mode 100644
index 0000000..639b5ce
--- /dev/null
+++ b/extensions/address_standardizer/address_standardizer_data_us.control.in
@@ -0,0 +1,4 @@
+# address standardizer us dataset
+comment = 'Address Standardizer US dataset example'
+default_version = '@POSTGIS_LIB_VERSION@'
+relocatable = true
diff --git a/extensions/address_standardizer/address_standardizer_functions.sql.in b/extensions/address_standardizer/address_standardizer_functions.sql.in
new file mode 100644
index 0000000..c89a91e
--- /dev/null
+++ b/extensions/address_standardizer/address_standardizer_functions.sql.in
@@ -0,0 +1,38 @@
+---------------------------------------------------------------------
+-- Core function to access the PAGC address standardizer
+-- Author: Stephen Woodbridge <woodbri at imaptools.com>
+---------------------------------------------------------------------
+
+CREATE OR REPLACE FUNCTION standardize_address(
+        lextab text,
+        gaztab text,
+        rultab text,
+        micro text,
+        macro text )
+    RETURNS stdaddr
+    AS  'MODULE_PATHNAME', 'standardize_address'
+    LANGUAGE 'c' IMMUTABLE STRICT COST 200;
+
+CREATE OR REPLACE FUNCTION standardize_address(
+        lextab text,
+        gaztab text,
+        rultab text,
+        address text )
+    RETURNS stdaddr
+    AS  'MODULE_PATHNAME', 'standardize_address1'
+    LANGUAGE 'c' IMMUTABLE STRICT COST 200;
+
+CREATE OR REPLACE FUNCTION parse_address(IN text,
+        OUT num text,
+        OUT street text,
+        OUT street2 text,
+        OUT address1 text,
+        OUT city text,
+        OUT state text,
+        OUT zip text,
+        OUT zipplus text,
+        OUT country text)
+    RETURNS record
+    AS  'MODULE_PATHNAME', 'parse_address'
+    LANGUAGE 'c' IMMUTABLE STRICT;
+
diff --git a/extensions/address_standardizer/address_standardizer_types.sql.in b/extensions/address_standardizer/address_standardizer_types.sql.in
new file mode 100644
index 0000000..15de26d
--- /dev/null
+++ b/extensions/address_standardizer/address_standardizer_types.sql.in
@@ -0,0 +1,23 @@
+---------------------------------------------------------------------
+-- Core types to access the PAGC address standardizer
+-- Author: Stephen Woodbridge <woodbri at imaptools.com>
+---------------------------------------------------------------------
+
+CREATE TYPE stdaddr AS (
+    building text,
+    house_num text,
+    predir text,
+    qual text,
+    pretype text,
+    name text,
+    suftype text,
+    sufdir text,
+    ruralroute text,
+    extra text,
+    city text,
+    state text,
+    country text,
+    postcode text,
+    box text,
+    unit text
+);
diff --git a/extensions/address_standardizer/analyze.c b/extensions/address_standardizer/analyze.c
new file mode 100644
index 0000000..e113366
--- /dev/null
+++ b/extensions/address_standardizer/analyze.c
@@ -0,0 +1,1501 @@
+/* analyze.c 
+
+
+This file contains the routines for finding the rules that
+best fit the input address and assigns each element of the
+input to the appropriate output field. The process is
+essentially one of pattern-matching. The Aho-Corasick algorithm
+is used to match rules that map input symbols found by the tokenizer
+to output symbols. In the general case a clause tree is built left to 
+right, matching rules of a particular class, depending on the state.
+
+Prototype 7H08 (This file was written by Walter Sinclair).
+
+Copyright (c) 2009 Walter Bruce Sinclair
+
+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.
+
+*/
+
+/* For pagc-0.3.0 : last revised 2010-11-18 */
+
+//#define OCCUPANCY_DEBUG
+#define USE_FORCE_MACRO
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+#include "pagc_api.h"
+
+
+/* ------------------------------------------------------------ 
+A lookup string with a particular standardization is prevented
+   from becoming associated with a particular output symbol 
+------------------------------------------------------------- */
+typedef struct def_blocker 
+{
+   char *lookup ; 
+   char *standard ;
+   SYMB output_symbol ;
+   DEF *definition ;
+} DEF_BLOCKER ;
+
+#define NUM_DEF_BLOCKERS 2
+
+/* --------------------------------------------------------------- 
+When adding to this list, increment NUM_DEF_BLOCKERS for each new
+   entry. This list blocks the use of the lookup string (first entry)
+   as the standardization (second entry) as an output symbol (third)
+   binding to the definition (fourth entry). The fourth entry is
+   added at initialization after the lexicon is read into memory.
+   Thus ST is blocked as STREET as a pretype. This occurs if the
+   rule attempts to move ST (as SAINT) left from STREET into PRETYP.
+---------------------------------------------------------------- */
+static DEF_BLOCKER __def_block_table__[NUM_DEF_BLOCKERS] = 
+{
+   {"ST", "STREET", PRETYP, NULL } ,
+   {"ST", "STREET", CITY, NULL }
+} ;
+
+/* -- local prototypes -- */
+
+static int check_def_block( STAND_PARAM * , int ) ;
+static void delete_stz( STZ_PARAM * , int ) ;
+static int delete_duplicate_stz( STZ_PARAM * , int ) ;
+static void first_composition( STAND_PARAM * ) ;
+static int prepare_target_pattern( STAND_PARAM * ) ;
+static int no_break( STAND_PARAM *__stand_param__ , int ) ;
+static int do_left_combine( STAND_PARAM * , int , int ) ;
+static int need_compression( STAND_PARAM *, SYMB , int , int  ) ;
+static int select_next_composition( STAND_PARAM * ) ;
+static int copy_best( STAND_PARAM * , int * , SYMB , int , SYMB * ) ;
+static void save_current_composition( STAND_PARAM * , SEG * , int , SYMB * , DEF ** ) ;
+static void scan_clause_tree(  STAND_PARAM * , int, int ) ;
+static void shallow_clause_scan( STAND_PARAM * , int , int ) ;
+static void deposit_stz( STAND_PARAM *, double , int ) ; 
+static STZ *copy_stz( STAND_PARAM * , double ) ;
+static void make_singleton( SEG * , SYMB , int , int , double ) ;
+static int lex_has_def( STAND_PARAM * , int , SYMB ) ;
+static void _force_deposit_( STAND_PARAM * , int ) ;
+static int have_schema_symbol( int * , SYMB ) ;
+static void default_seg_val( int * , int , SEG * , int , SYMB , double ) ;
+static int _modify_position_( STAND_PARAM *, SEG * , int , int , SYMB , SYMB ) ;
+static int schema_modify_position( STAND_PARAM * , SEG * , int , int , SYMB , SYMB ) ;
+static void force_arc_clause( STAND_PARAM * ) ;
+#ifdef USE_FORCE_MACRO
+static void _force_macro_clause_( STAND_PARAM * ) ;
+#endif
+static int non_geocode_address( STAND_PARAM * ) ;
+static int evaluate_micro_l(STAND_PARAM *) ;
+
+/* -- Guide to the transition table:
+         MACRO_C MICRO_C ARC_C   CIVIC_C EXTRA_C
+MICRO_B  FAIL    FAIL    EXIT    FAIL    FAIL
+MICRO_M  FAIL    EXIT    PREFIX  FAIL    MICR0_M
+MACRO    EXIT    FAIL    FAIL    FAIL    FAIL
+PREFIX   FAIL    FAIL    FAIL    EXIT    FAIL
+EXIT     FAIL    FAIL    FAIL    FAIL    EXIT
+
+-- */
+
+static int __tran_table__[MAX_CL][MAX_CL] = {
+   { FAIL, FAIL, EXIT, FAIL, FAIL } ,
+   { FAIL, EXIT, PREFIX, FAIL, MICRO_M } ,
+   { EXIT, FAIL, FAIL, FAIL, FAIL } , 
+   { FAIL, FAIL, FAIL, EXIT, FAIL } , 
+   { FAIL, FAIL, FAIL, FAIL, EXIT } 
+} ; 
+
+/* -- skew weights for each rule class -- */
+static double __weight_table__[MAX_CL] = 
+{
+  1.0, 0.95, 0.95, 0.8 , 0.85
+} ;
+
+
+#define TARG_START 0
+#define FIRST_STZ 0
+#define INITIAL_STZ_CUTOFF .05
+#define VERY_LOW_WEIGHT .15
+#define START_DEPTH 0
+
+static double __load_value__[ NUMBER_OF_WEIGHTS ] = 
+{
+   0.00, 0.325, 0.35 , 0.375 , 0.4 , 
+   0.475 , 0.55, 0.6 , 0.65 , 0.675 , 
+   0.7 , 0.75 , 0.8 , 0.825 , 0.85 , 
+   0.9 , 0.95 , 1.00 
+} ;
+
+#ifdef OCCUPANCY_DEBUG
+static const char *__rule_type_names__[] = 
+{
+   "MACRO" , "MICRO" , "ARC" , "CIVIC" , "EXTRA"
+} ;
+#endif
+
+
+/* ====================================================================
+analyze.c (install_def_block_table)
+process level initialization - called by standard.l (init_stand_process)
+calls lexicon.c (find_entry)
+returns FALSE if error encountered.
+string.h (strcmp)
+uses macro RET_ERR1, LOG_MESS, CLIENT_ERR
+=======================================================================*/
+int install_def_block_table( ENTRY **__hash_table__, ERR_PARAM *__err_param__ )
+{
+	int i ;
+	for ( i = 0 ; i < NUM_DEF_BLOCKERS ; i++ )
+	{
+		DEF * __standard_def__ ;
+		ENTRY *__lookup_entry__ = find_entry( __hash_table__ , __def_block_table__[i].lookup ) ;
+		if (__lookup_entry__ == NULL)
+		{
+			RET_ERR1( "install_def_block_table: Could not find def_block for %s\n", __def_block_table__[i].lookup , __err_param__ , FALSE ) ;
+		}
+		for ( __standard_def__ = __lookup_entry__->DefList ; __standard_def__ != NULL ; __standard_def__ = __standard_def__->Next ) 
+		{
+			if ( strcmp( __standard_def__->Standard , __def_block_table__[i].standard ) == 0 )
+			{
+	            __def_block_table__[i].definition = __standard_def__ ;
+			}
+            break ;
+		}
+		if ( __def_block_table__[i].definition == NULL ) 
+		{
+			RET_ERR1( "install_def_block_table: Could not find def_block definition for %s\n" , __def_block_table__[i].standard , __err_param__ , FALSE ) ;
+		}
+	}
+	return TRUE ;
+}
+
+/* ====================================================================
+analyze.c (create_segments)
+context level initialization -- must come after the lexicon
+      is read - called by init_stand_context
+Null on error.
+=======================================================================*/
+STZ_PARAM *create_segments( ERR_PARAM *__err_param__ )
+{
+	STZ_PARAM *__stz_info__ ;
+	int i ;
+	/* -- we're going to be re-sorting these pointers -- */
+    PAGC_ALLOC_STRUC(__stz_info__,STZ_PARAM,__err_param__,NULL) ;
+	PAGC_CALLOC_STRUC(__stz_info__->stz_array,STZ *,MAX_STZ,__err_param__,NULL) ;
+	for ( i = FIRST_STZ ; i < MAX_STZ ; i++ ) 
+	{
+		PAGC_ALLOC_STRUC(__stz_info__->stz_array[i],STZ,__err_param__,NULL) ;
+	}
+	PAGC_CALLOC_STRUC(__stz_info__->segs,SEG,MAXLEX,__err_param__,NULL) ;
+	return __stz_info__ ; 
+}
+
+/* ====================================================================
+analyze.c (destroy_segments)
+context level cleanup 
+- called by (standard.l) close_stand_context 
+uses macros PAGC_DESTROY_2D_ARRAY, FREE_AND_NULL
+=======================================================================*/
+void destroy_segments( STZ_PARAM *__stz_info__ ) 
+{
+	if ( __stz_info__ == NULL ) 
+	{
+		return ;
+	}
+	PAGC_DESTROY_2D_ARRAY( __stz_info__->stz_array , STZ,MAX_STZ )
+	FREE_AND_NULL( __stz_info__->segs ) ;
+	FREE_AND_NULL( __stz_info__ ) ; 
+}
+/* ====================================================================
+analyze.c (get_stz_downgrade)
+2008-03-13 : lower grade standardizations should not produce the same
+matching score as higher grade. This can be critical when a lower grade
+standardization produces a perfect match on the wrong reference record
+=======================================================================*/
+double get_stz_downgrade( STAND_PARAM *__stand_param__ , int request_stz ) 
+{
+	double numerator, denominator ;
+	STZ_PARAM *__stz_info__ = __stand_param__->stz_info ;
+	if (( __stz_info__->stz_list_size - 1 ) < request_stz )
+	{
+		return 0. ;
+	}
+	if ( request_stz == 0 ) 
+	{
+		return 1.0 ;
+	}
+	if (( denominator = __stz_info__->stz_array[0]->score ) == 0. )
+	{
+		return denominator ;
+	}
+	numerator = __stz_info__->stz_array[request_stz]->score ;
+	return ( numerator / denominator ) ;
+}
+
+/* ====================================================================
+analyze.c (get_next_stz)
+called by analyze.c (evaluator) , build.c (Build)
+  build.c (transform_rows) match.c (match_records),
+calls analyze.c (check_def_block, delete_duplicate_stz) 
+export.c (init_output_fields, stuff_fields)
+<remarks>
+      return FALSE if the requested stz is not there - this allows 
+      termination to a request loop when there are fewer than the maximum 
+      number on the list and also reports, on request of 0, that none were 
+      found. If the request_stz is the same as the last one done (since 
+      evaluator last initialized the last_stz_output variable) we just 
+      return rather than redo the same work. When matching we need 
+      to know the correct standardization for positioning the point along 
+      the arc 
+      2008-04-06 : This function needs to return to the 0 stz when selecting
+      the best standardization for the build. To indicate that an override
+      is required, we'll take FAIL as a proxy for 0.
+</remarks>
+=======================================================================*/
+int get_next_stz( STAND_PARAM *__stand_param__ , int request_stz_in )
+{
+	int i ;
+
+	DEF **__best_defs__ = __stand_param__->best_defs ;
+	SYMB *__best_output__ = __stand_param__->best_output ;
+	STZ_PARAM *__stz_info__ = __stand_param__->stz_info ;
+	int n = __stand_param__->LexNum ;
+	int request_stz = request_stz_in ;
+    STZ * __cur_stz__ ;
+	if (request_stz_in != FAIL)
+	{
+		if ((( __stz_info__->stz_list_size - 1 ) < request_stz ) || ( __stz_info__->last_stz_output == request_stz ))
+		{
+			/*-- Indicate that this is the last one : don't call
+				get_next_stz with 0 unless you want a FALSE --*/
+			return FALSE ;
+		}
+		/*-- Delete standardizations that contain blocked definitions --*/
+		while (( check_def_block( __stand_param__ , request_stz )) && ( __stz_info__->stz_list_size > request_stz )) ;
+		/*-- Have we reached the end of the list? --*/
+		if ( __stz_info__->stz_list_size == request_stz ) 
+		{
+			return FALSE ;
+		}
+		/* -----------------------------------------------------------------------
+			<remarks> A clause tree analysis may produce identical output to a MICRO_C by
+			combining an ARC_C and CIVIC_C pair. We want only the first one in any
+			situation where we ask for lower scoring candidates </remarks>
+		------------------------------------------------------------------------ */
+		if ( request_stz > FIRST_STZ )
+		{
+			while (( delete_duplicate_stz( __stz_info__, request_stz )) && ( __stz_info__->stz_list_size > request_stz )) ;
+			if ( __stz_info__->stz_list_size == request_stz )
+			{
+				return FALSE ;
+			}
+		}
+	} 
+	else 
+	{
+		request_stz = FIRST_STZ ;
+	}
+	/*-- Reload the best defs and output from the new stz --*/
+	__cur_stz__ = __stz_info__->stz_array[request_stz] ;
+	for ( i = FIRST_LEX_POS ; i < n ; i++ )
+	{
+		__best_defs__[i] = __cur_stz__->definitions[i] ;
+		__best_output__[i] = __cur_stz__->output[i] ;
+	}
+	__best_defs__[i] = NULL ;
+	__best_output__[i] = FAIL ;
+	/* -------------------------------------------------------------------
+		Because this function is called with values greater than 0 only to
+		redo a MICRO
+	-------------------------------------------------------------------- */
+	if (request_stz > FIRST_STZ || request_stz_in == FAIL)
+	{
+		/*-- LEFT : just MICRO here --*/
+		init_output_fields(__stand_param__,LEFT) ;
+		stuff_fields( __stand_param__ ) ;
+	}
+	__stz_info__->last_stz_output = request_stz ;
+	return TRUE ;
+}
+
+/* ====================================================================
+analyze.c (check_def_block)
+called by analyze.c (get_next_stz)
+calls analyze.c (delete_stz)
+=======================================================================*/
+static int check_def_block( STAND_PARAM *__stand_param__ , int request_stz )
+{
+	int i, j ;
+	STZ_PARAM *__stz_info__ = __stand_param__->stz_info ; 
+	SYMB *__cur_sym_ptr__ = __stz_info__->stz_array[ request_stz ]->output ; 
+	DEF **__stz_definitions__ = __stz_info__->stz_array[ request_stz ]->definitions ; 
+	int n = __stand_param__->LexNum ; 
+	for (i = FIRST_LEX_POS ; i < n ; i++) 
+	{
+		for (j = 0 ; j < NUM_DEF_BLOCKERS ; j ++) 
+		{
+			if (__cur_sym_ptr__[i] == __def_block_table__[j].output_symbol) 
+			{
+				if (__stz_definitions__[i] == __def_block_table__[j].definition) 
+				{
+					delete_stz(__stz_info__ , request_stz) ;
+					return TRUE ;
+				}
+			}
+		}
+	}
+	return FALSE ;
+}
+
+/* ====================================================================
+analyze.c (delete_stz)
+called by analyze.c (check_def_block), analyze.c (delete_duplicate_stz)
+=======================================================================*/
+static void delete_stz( STZ_PARAM *__stz_info__ , int request_stz )
+{
+	int i, n ;
+    STZ **__stz_list__ ;
+    STZ *__stz_ptr__ ;
+
+	__stz_info__->stz_list_size -- ; /* -- change list count for deletion -- */
+	n = __stz_info__->stz_list_size ;
+	__stz_list__ = __stz_info__->stz_array ; 
+
+	/*-- last on list? - it just becomes inactive --*/
+	if ( request_stz == __stz_info__->stz_list_size ) 
+	{
+		return ;
+	}
+	/*-- we don't want to lose this pointer --*/
+	__stz_ptr__ = __stz_list__[request_stz] ;
+	/* ----------------------------------------------------------
+		move the rest of the list down to eliminate the duplicate.
+		The replacement entry will become the new, requested stz 
+		
+		if there are, for instance, n stz pointers active, stz_list_size
+		will be n. So the ordinal n-1 is the last active stz. In this
+		function, after the first instruction, n will point to the last
+		active stz. When we move the stz pointers down, when i = n-1,
+		the nth is moved into n-1. So, in order not to lose the pointer,
+		the deleted stz goes into the vacated nth spot
+		 0       req       n-1  n  inactive  MAX_STZ - 1
+		[ ] [ ] [ ] ...   [ ] [ ] [ ] ...   [ ]
+	----------------------------------------------------------- */
+	for ( i = request_stz ; i < n ; i ++ ) 
+	{
+		__stz_list__[i] = __stz_list__[i+1] ;
+	}
+	/* -- save the pointer, now inactive, for reuse -- */
+	__stz_list__[n] = __stz_ptr__ ;
+}
+
+/* ====================================================================
+analyze.c (delete_duplicate_stz)
+calls analyze.c (delete_stz)
+called by analyze.c (get_next_stz)
+=======================================================================*/
+static int delete_duplicate_stz(STZ_PARAM *__stz_info__, int request_stz)
+{
+	/* --------------------------------------------------------------------- 
+      if the requested_stz is identical to any earlier ones on the list, 
+      both for definition and output symbol, or if it contains a blocked
+      definition , eliminate this entry and move the rest of the list down  
+      one. Return TRUE if this happens, otherwise FALSE
+	  -----------------------------------------------------------------------*/ 
+
+	int i ;
+	STZ **__stz_list__ = __stz_info__->stz_array ;
+	for (i = FIRST_STZ; i < request_stz; i ++)
+	{
+		SYMB a ;
+		SYMB *__cur_sym_ptr__ = __stz_list__[request_stz]->output ;
+		DEF **__stz_definitions__ = __stz_list__[request_stz]->definitions ;
+		SYMB *__prev_sym_ptr__ = __stz_list__[i]->output ;
+		DEF **__prev_stz_definitions__ = __stz_list__[i]->definitions ;
+
+		while (( a = *__prev_sym_ptr__++ ) == *__cur_sym_ptr__++ )
+		{
+			/* -------------------------------------------------------------
+				A differing definition, even if the output token is the same
+			could lead to a different result
+			-------------------------------------------------------------- */
+			if (*__prev_stz_definitions__++ != *__stz_definitions__++)
+			{
+				return FALSE ;
+			}
+			/*-- FAIL terminates output , so they're identical --*/
+			if (a == FAIL)
+			{
+				delete_stz(__stz_info__, request_stz) ;
+				return TRUE ;
+			}
+		}
+	}
+	return FALSE ;
+}
+
+/* ====================================================================
+analyze.c (evaluate_micro_l)
+called by evaluator
+2009-08-09 : special routine for MICRO_L state : landmark words
+<revision date='2012-07-22'> Keep track of start_state </revision>
+=======================================================================*/
+
+static int evaluate_micro_l( STAND_PARAM *__stand_param__ )
+{
+	int i , desired_type , output_field ;
+	int __def_marked__[MAXLEX][MAXDEF] ;
+	int *__orig_pos__ = __stand_param__->orig_str_pos ;
+	int *__sym_sel__ = __stand_param__->cur_sym_sel ;
+	int *__num_defs__ = __stand_param__->def_cnt ;
+	LEXEME *__lexeme__ = __stand_param__->lex_vector ;
+	int n = __stand_param__->LexNum ;
+	/* 2009-08-15 : use lexicon types */
+	switch ( __stand_param__->start_state )
+	{
+	case FEAT_L :
+		desired_type = 1 ;
+		output_field = FEATNAME ;
+		break ;
+	case FEAT_T :
+		desired_type = 2 ;
+		output_field = FEATTYPE ;
+		break ;
+	case FEAT_A :
+		desired_type = 1 ;
+		output_field = FEATAREA ;
+		break ;
+	default :
+		return FALSE ;
+	}
+	/* -- read the symbols from the definitions into the lex_sym array -- */
+	for (i = FIRST_LEX_POS ; i < n ; i++)
+	{
+		int j ;
+		DEF *__def__ ;
+		__orig_pos__[i] = i ; /* we won't use compression here */
+		__sym_sel__[i] = 0 ; /* -- start at 0 for each Lexeme -- */
+		/* -- walk the def chain, counting the symbs and putting them
+		into the array -- */
+		for (j = 0, __def__ = __lexeme__[i].DefList; __def__ != NULL; __def__ = __def__->Next, j++)
+		{
+			__stand_param__->comp_lex_sym[i][j] = __def__->Type ;
+			__stand_param__->def_array[i][j] = __def__ ;
+			/* 2009-08-30 : filter out non-default non-desired */
+			if ((__def__->Type == desired_type) || (__def__->Protect))
+			{
+				__def_marked__[i][j] = TRUE ;
+			} 
+			else __def_marked__[i][j] = FALSE ;
+		}
+		__num_defs__[i] = j ;
+	}
+	/*-- Now go through all the compositions, looking for those consisting
+		only of unduplicated defs --*/
+	do 
+	{
+		int marked ;
+		double seg_score ;
+		/* one duplicated def disqualifies this composition */
+		for (i = n-1 , marked = TRUE; i >= FIRST_LEX_POS; i --)
+		{
+			if (!__def_marked__[i][__sym_sel__[i]])
+			{
+				marked = FALSE ;
+				break ;
+			}
+		}
+		/* 2009-10-16 : accept other types */
+		seg_score = (marked ? EXCELLENT : LOW) ;
+		default_seg_val(__sym_sel__, n, __stand_param__->stz_info->segs, FALSE, output_field, seg_score) ;
+		_force_deposit_(__stand_param__, ( n - 1)) ;
+	} while ( select_next_composition(__stand_param__)) ;
+	return ( get_next_stz(__stand_param__, FIRST_STZ)) ; /* -- in case nothing was found -- */
+}
+
+
+/* ====================================================================
+analyze.c (evaluator)
+called by standard.l (close_stand_field)
+calls analyze.c (first_composition) , analyze.c (shallow_clause_scan) ,
+  analyze.c (scan_clause_tree) , analyze.c (select_next_composition) ,
+  analyze.c(force_arc_clause) , analyze.c (_force_macro_clause_) ,
+  analyze.c(non_geocode_address) , analyze.c (get_next_stz)
+analyze.c (prepare_target_pattern)
+<revision date='2006-11-02'> add STAND_PARAM arg and change calls </revision>
+<revision date='2012-07-22'> Keep track of start_state </revision>
+=======================================================================*/
+int evaluator(STAND_PARAM *__stand_param__) 
+{
+
+    int state ;
+	STZ_PARAM *__stz_info__ = __stand_param__->stz_info ;
+	__stz_info__->stz_list_cutoff = INITIAL_STZ_CUTOFF ; 
+	state = __stand_param__->start_state ;
+
+#ifdef OCCUPANCY_DEBUG
+	if (state == EXTRA_STATE)
+	{
+		__stz_info__->stz_list_cutoff = 0.00 ;
+	}
+#endif
+	__stz_info__->stz_list_size = FIRST_STZ ;
+	__stz_info__->last_stz_output = FAIL ;
+   
+	/*-- <revision date='2009-08-09'> Special evaluation for landmarks </revision> --*/
+	if (state > EXTRA_STATE) 
+	{
+		return (evaluate_micro_l(__stand_param__)) ;
+	}
+	while (TRUE)
+	{
+		first_composition(__stand_param__) ; /* 2007-08-09 */
+		/* -- cycle through all the possible compositions -- */
+		do 
+		{
+			int target_len ;
+			if ((target_len = prepare_target_pattern(__stand_param__)) == TARG_START)
+			{
+				continue ;
+			}
+			/* -------------------------------------------------------------- 
+            We don't need to build a clause tree for each composition for
+            MICRO_B and MACRO start states since we only want one 
+            segment.
+			----------------------------------------------------------------*/
+			switch (state)
+			{
+            case MACRO :
+				shallow_clause_scan(__stand_param__, MACRO_C, target_len) ;
+				break ;
+            case MICRO_B :
+				shallow_clause_scan(__stand_param__, ARC_C, target_len) ;
+               break ;
+            case EXTRA_STATE :
+				/* -- 2008-04-19 : scan for occupancy only -- */
+				shallow_clause_scan(__stand_param__, EXTRA_C, target_len) ;
+				break ;
+			default :
+				scan_clause_tree(__stand_param__, state, target_len) ;
+			}
+			/* ---------------------------------------------------------------- 
+            If we don't check the list size, we may be checking the score
+            of some previous result in the case where no standardization is
+            found
+			----------------------------------------------------------------- */
+			if ((__stz_info__->stz_list_size > FIRST_STZ) && (!__stand_param__->analyze_complete) && (__stz_info__->stz_array[FIRST_STZ]->score >= __load_value__[EXCELLENT]))
+			{
+				break ;
+			}
+		} while (select_next_composition(__stand_param__)) ;
+		if ((__stz_info__->stz_list_size > FIRST_STZ) && (__stz_info__->stz_array[FIRST_STZ]->score >= __load_value__[1]))
+		{
+			break ;
+		}
+		/* -- force a segment -- */
+		if (state == MICRO_B)
+		{
+			force_arc_clause(__stand_param__) ;
+			break ;
+		}
+#ifdef USE_FORCE_MACRO
+		if (state == MACRO)
+		{
+			_force_macro_clause_(__stand_param__) ;
+			break ;
+		}
+#endif
+		if (state != MICRO_M) 
+		{
+			break ;
+		}
+		if (!non_geocode_address(__stand_param__))
+		{
+			break ;
+		}
+		state = EXIT ;
+	} /*-- end of while TRUE --*/
+	return (get_next_stz(__stand_param__, FIRST_STZ)) ; /* -- in case nothing was found -- */
+}
+
+
+/* ====================================================================
+<summary>
+<function name='analyze.c (first_composition)'/>
+<called-by> <functionref='analyze.c (evaluator)'/>
+<remarks> Called by Evaluator to intialize __best_output__ and __sym_sel__ - 
+	also sets up lex_sym, save_defs and __num_defs__ from the 
+    definitions in the LexVector  </remarks>
+</summary>
+=======================================================================*/
+static void first_composition( STAND_PARAM *__stand_param__ )
+{
+	int i ;
+
+	int *__sym_sel__ = __stand_param__->cur_sym_sel ;
+	int *__num_defs__ = __stand_param__->def_cnt ;
+	LEXEME *__lexemes__ = __stand_param__->lex_vector ;
+	int n = __stand_param__->LexNum ;
+	/*-- <remarks> Read the symbols from the definitions into the lex_sym array </remarks> --*/
+	for (i = FIRST_LEX_POS; i < n; i++)
+	{
+		int j ;
+		DEF *__def__ ;
+		__sym_sel__[i] = 0 ; /* -- start at 0 for each Lexeme -- */
+		/*-- <remarks> Walk the def chain, counting the symbs and putting them
+			into the array </remarks> --*/
+		for (j = 0, __def__ = __lexemes__[i].DefList; __def__ != NULL; __def__ = __def__->Next, j++)
+		{
+			__stand_param__->comp_lex_sym[i][j] = __def__->Type ;
+			__stand_param__->def_array[i][j] = __def__ ;
+		}
+		__num_defs__[i] = j ;
+	}     
+}
+
+/* ============================================================
+analyze.c (prepare_target_pattern)
+called by analyze.c (evaluator)
+calls analyze.c (need_compression) gamma.c (refresh_transducer)
+2006-10-31 : add STAND_PARAM parameter and change calls
+==============================================================*/
+static int prepare_target_pattern(STAND_PARAM *__stand_param__)
+{
+	int lex_pos, target_pos;
+	int *__sym_sel__ = __stand_param__->cur_sym_sel ;
+	SYMB *__p_target__ = __stand_param__->target ;
+	int *__orig_pos__ = __stand_param__->orig_str_pos ;
+	int n = __stand_param__->LexNum ;
+	NODE **__g_function__ = __stand_param__->rules->gamma_matrix ;
+	for ( lex_pos = FIRST_LEX_POS , target_pos = TARG_START ; lex_pos < n ;lex_pos++ )
+	{
+		SYMB in_symb = __stand_param__->comp_lex_sym[lex_pos][__sym_sel__[lex_pos]] ;
+		/* ------------------------------------------------------------
+			compress multiple words and stopwords - the idea is that
+			any combination of LEFT and RIGHT compression tokens (words
+			and stopwords, compress as a single word
+		------------------------------------------------------------- */
+		if ( !need_compression( __stand_param__ , in_symb , lex_pos , target_pos ))
+		{
+			/* --------------------------------------------------------- 
+            If no compression, associate this lex_pos with the
+            target_pos, put the symbol into the target and increment
+            the target_pos. Otherwise, keep the same target_pos and
+            discard symbol
+			---------------------------------------------------------- */
+			__orig_pos__[lex_pos] = target_pos ;
+			__p_target__[target_pos++] = in_symb ;
+		}
+	}
+	/*-- Terminate symb lists --*/
+	__p_target__[target_pos] = FAIL ;
+	/*-- But suppose we only have one symbol, and it is a stopword --*/
+	if ( target_pos > TARG_START )
+	{
+		/*-- Set up the Aho-Corasick registry of output links --*/
+		refresh_transducer( __stand_param__->registry , __p_target__ , __g_function__ ) ;
+	}
+	return target_pos ; /* -- return cardinal number of target symbols -- */
+}
+
+/* ============================================================
+analyze.c (no_break)
+called by analyze.c (do_left_combine)
+-- moved from tokenize.c to analyze.c
+==============================================================*/
+static int no_break( STAND_PARAM *__stand_param__ , int n ) 
+{
+	int k = __stand_param__->lex_vector[n].EndMorph ;
+	/* 0 is no break
+	1 is set for semicolons, tabs and commas,
+	2 for spaces */
+	return (( __stand_param__->morph_array[k].Term  == 1 )? FALSE : TRUE ) ;
+}
+
+
+/* ============================================================
+analyze.c (do_left_combine)
+calls analyze.c (no_break) called by analyze.c (need_compression)
+==============================================================*/
+static int do_left_combine( STAND_PARAM *__stand_param__ , int lex_pos , int target_pos )
+{
+	/*-- A LEFT_COMPRESS left compresses only if a LEFT_COMPRESS there to
+		combine with --*/
+	if (( target_pos == TARG_START ) || ( __stand_param__->target[target_pos - 1] != LEFT_COMPRESS )) 
+	{
+		/*-- A RIGHT_COMPRESS also returns FALSE if it is at the start or
+			if the previous token isn't a LEFT_COMPRESS. need_compression will
+			deal with this --*/
+		return FALSE ;
+	}
+	/*-- A break in the lex sequence suggests these two words don't
+		belong together --*/
+	if ( !no_break( __stand_param__ , lex_pos - 1 ))
+	{
+		return FALSE ;
+	}
+	/*-- Okay, left compress it by giving it the same target position as the
+		previous symbol --*/
+	__stand_param__->orig_str_pos[lex_pos] = target_pos - 1 ; /* -- need to associate lex_pos
+                            and target_pos for later decompression --*/
+	return TRUE ; /*-- Indicate compression was done --*/
+}
+
+
+/* ============================================================
+analyze.c (need_compression)
+called by analyze.c (prepare_target_pattern)
+calls analyze.c (do_left_combine)
+==============================================================*/
+static int need_compression( STAND_PARAM *__stand_param__ , SYMB a , int lex_pos , int target_pos ) 
+{
+	/*-- No stopwords are accepted, no matter what --*/
+	if ( a == RIGHT_COMPRESS ) 
+	{
+		/*-- Does it combine with the last target symbol or the next? --*/
+		if ( !do_left_combine( __stand_param__ , lex_pos , target_pos ))
+		{
+			/* --------------------------------------------------------------- 
+            do a right combine by giving it the next position. Note that 
+            this allows the possibility of a STOPWORD with combining with 
+            TYPE or DIR tokens, but this is what we want in cases like EL 
+            CAMINO RD -- a RIGHT_COMPRESS may stray into the wrong field --
+            deal with this when decompressing
+			---------------------------------------------------------------- */
+			__stand_param__->orig_str_pos[lex_pos] = target_pos ; /* -- target_pos does not
+                                              advance if returning TRUE --*/
+		}
+		return TRUE ;
+	}
+	/* -----------------------------------------------------------------------
+	everything that isn't a WORD must be accepted - we don't want to
+	combine words that are used in parsing, - two direction words, for
+	instance, one of which may be used as part of a street name, the other
+	perhaps as a suffix direction.
+	-------------------------------------------------------------------------*/
+	if ( a != LEFT_COMPRESS )
+	{
+		return FALSE ;
+	}
+	/*-- compress the WORD --*/
+	return ( do_left_combine( __stand_param__ , lex_pos , target_pos )) ;
+}
+
+/*========================================================================
+analyze.c (scan_clause_tree)
+Called by analyze.c (Evaluator)
+Calls analyze.c (deposit_stz)
+2006-11-02 : add KW *** arg, change call to GetOutputLink to direct access
+=========================================================================*/
+static void scan_clause_tree(STAND_PARAM *__stand_param__,int start_state,int start_pos)
+{
+	int next_state ;
+
+	RULE_PARAM *__rules__ = __stand_param__->rules ;
+	KW ***__output_link__ = __rules__->output_link ;
+	SEG *__segments__ = __stand_param__->stz_info->segs ;
+	double sum = 0.00 ; /* -- running total for score calculation --*/
+	int pos = start_pos ; /* -- one beyond the last symbol -- */
+	int state = start_state ; /* --for the __tran_table__ -- */
+	int depth = START_DEPTH ; /* --how deep in the clause tree -- */
+	int cl = 0 ; 
+	KW *__keyw__ = NULL ;
+
+	while (TRUE)
+	{
+        SEG *__outer_seg__ ;
+		while (TRUE)
+		{
+            SEG *__inner_seg__ ;
+			if (__keyw__ == NULL)
+			{
+				/*-- when we're out of keys for this class, get next class --*/
+				if (++cl == MAX_CL)
+				{
+					/* -- no more states to transition to, so go up clause tree
+					- unless there's nowhere to go -- */
+					if (depth == START_DEPTH) return ; /* -- the exit -- */
+					depth -- ;
+					break ;
+				}
+				if ((next_state = __tran_table__[state][cl]) == FAIL)
+				{
+					/*-- no transition, try next clause --*/
+					continue ;
+				}
+				/*-- recall that the registry is shifted right one node to
+				account for the node that corresponds to total failure --*/
+				/*-- <revision date='2006-11-02'> Substitute for GetOutputLink </revision> --*/
+				if ((__keyw__ = __output_link__[__stand_param__->registry[pos]][cl]) == NULL)
+				{
+					continue ;
+				}
+			} /* end of if keyword is NULL */
+
+			/* -- skip pointless rules -- */
+			if ((__keyw__->Length == pos) && (next_state != EXIT))
+			{
+				__keyw__ = __keyw__->OutputNext ; /* -- the next key to check -- */
+				continue ;
+			}
+			/* -- fill in this definition for output if it forms part of a
+            completed stz -- */
+			__inner_seg__ = __segments__ + depth ;
+			__inner_seg__->End = pos - 1 ; /* -- ordinal numb of last sym in target -- */
+			__inner_seg__->Key = __keyw__ ;
+			__inner_seg__->State = state ;
+			__inner_seg__->Output = __keyw__->Output ;
+			if (__rules__->collect_statistics)
+			{
+				__keyw__->hits ++ ;
+				__rules__->total_key_hits ++ ;
+			}
+			/* -- running total in sum, segment total in Segment -- */
+			sum += (__inner_seg__->Value = __load_value__[__keyw__->Weight] * __weight_table__[__keyw__->Type]) ;
+			if ((__inner_seg__->Start = pos - (__keyw__->Length)) == 0)
+			{
+				/* -- all definitions have been matched: if this is a valid
+				state, save the standardization , then head back up
+				the tree -- */
+				if (next_state == EXIT)
+				{
+					deposit_stz(__stand_param__,sum,depth) ;
+				}
+				/* -- keep the same cl,  state , depth and pos -- */
+				sum -= __inner_seg__->Value ; /* -- restore the previous sum -- */
+				__keyw__ = __keyw__->OutputNext ; /* -- and get the next rule on the 
+                                              linked list -- */
+				continue ;
+			}
+			/* -- begin a subtree at the new depth -- */
+			pos = __inner_seg__->Start ;
+			state = __tran_table__[state][cl] ;
+			depth ++ ;
+			cl = 0 ;
+			__keyw__ = NULL ; /* -- new start -- */
+		} /* -- end of inner loop -- */
+		/* -- restore the previous state from the seg before overwrite -- */
+		__outer_seg__ = __segments__ + depth ;
+		state = __outer_seg__->State ;
+		if (depth != START_DEPTH)
+		{
+			sum -= __outer_seg__->Value ;
+			pos = __outer_seg__->End + 1 ;
+		} 
+		else 
+		{
+			sum = 0.00 ;
+			pos = start_pos ;
+		}
+		__keyw__ = __outer_seg__->Key ;
+		cl = __keyw__->Type ; /* -- the clause we were working on -- */
+		__keyw__ = __keyw__->OutputNext ; /* -- the next key to check -- */
+	} /* -- end of outer loop -- */
+}
+
+/*========================================================================
+analyze.c (shallow_clause_scan)
+Called by analyze.c (evaluator)
+Calls analyze.c (deposit_stz)
+<remarks>Called by Evaluator to get a complete rule for this class. If we
+		can't get a complete rule we don't want one at all. If no composition
+		can up with one, force_standardization will activate</remarks>
+2006-11-02 : add KW *** arg, change call to GetOutputLink to direct access
+=========================================================================*/
+static void shallow_clause_scan(STAND_PARAM *__stand_param__ , int cl, int pos)
+{
+	KW *__kw__ ;
+
+	RULE_PARAM *__rules__ = __stand_param__->rules ;
+	KW ***__output_link__ = __rules__->output_link ;
+	SEG * __seg__ = __stand_param__->stz_info->segs ;
+	__seg__->End = pos - 1 ;
+	__seg__->Start = 0 ;
+	/*-- <revision date='2006-11-02'> Substitute for GetOutputLink </revision> --*/
+	for (__kw__ = __output_link__[__stand_param__->registry[pos]][cl] ; __kw__ != NULL; __kw__ = __kw__->OutputNext)
+	{
+		/*-- once we get a short keyword, depart --*/
+		if (__kw__->Length < pos) return ;
+		/*-- fill in the rest of this definition for output if it forms part 
+         of a completed stz --*/
+		__seg__->Output = __kw__->Output ;
+		if (__rules__->collect_statistics)
+		{
+			__seg__->Key = __kw__ ;
+			__kw__->hits ++ ;
+			__rules__->total_key_hits ++ ;
+		}
+#ifdef OCCUPANCY_DEBUG
+		if (cl == EXTRA_C)
+		{
+			SYMB *__ol__ ;
+			printf( "\nRule is type %d (%s)\n: " , __kw__->Type , __rule_type_names__[__kw__->Type] ) ;
+			printf( "Input : " ) ;
+			for ( __ol__ = __kw__->Input ; *__ol__ != FAIL ; __ol__++ )
+			{
+				printf( "|%d (%s)|", *__ol__ , in_symb_name( *__ol__ )) ;
+			}
+			printf("\nOutput: ") ;
+			/*-- output the output symbols --*/
+			for (__ol__ = __kw__->Output;*__ol__ != FAIL;__ol__++)
+			{
+				printf("|%d (%s)|",*__ol__,out_symb_name(*__ol__)) ;
+			}
+			printf ("\nrank %d ( %f)\n",__kw__->Weight,__load_value__[__kw__->Weight]) ;
+		}
+#endif
+		/* -- don't skew weights with these start states - so the cutoff is 
+         easier -- */
+		deposit_stz(__stand_param__,__load_value__[__kw__->Weight],START_DEPTH) ;
+	}
+}
+
+/* ====================================================================
+analyze.c (select_next_composition)
+called by analyze.c (evaluator)
+=======================================================================*/
+static int select_next_composition( STAND_PARAM *__stand_param__ )
+{
+	int pos ;
+	int *__sym_sel__ = __stand_param__->cur_sym_sel ;
+	int *__num_defs__ = __stand_param__->def_cnt ;
+
+	for ( pos = __stand_param__->LexNum - 1 ; pos >= FIRST_LEX_POS ; pos-- )
+	{
+		__sym_sel__[pos]++ ; /*-- Increase selector --*/
+		if ( __sym_sel__[pos] < __num_defs__[pos] )
+		{
+			/*-- Not ready yet for turnover --*/
+			return TRUE ;
+		}
+		__sym_sel__[pos] = 0 ; /*-- Reset selector --*/
+	}
+	return FALSE ;
+}
+
+/* ====================================================================
+<summary>
+	<function name='analyze.c (make_singleton)'>
+	<remarks> Called to make a segment with a putative single position output.
+		Don't really need a KW. as long as copy_best knows how to handle
+		it. </remarks>
+	<called-by><functionref='analyze.c (default_seg_val)'/></called-by>
+	<revision date='2009-08-09'> Eliminate cl arg to make_singleton. </revision>
+</summary>
+=======================================================================*/
+static void make_singleton( SEG *__segments__, SYMB sym , int pos, int depth, double score )
+{
+
+	/*-- <remarks> Since the __segments__ go left to right and the positions go right to
+		left, the depth and position will usually be different. </remarks> --*/
+	SEG *__seg__ = __segments__ + depth ;
+	__seg__->Start = pos ;
+	__seg__->End = pos ;
+	__seg__->Value = score ;
+	__seg__->Output = NULL ;
+	__seg__->sub_sym = sym ;
+}
+
+/* ====================================================================
+analyze.c (deposit_stz)
+calls analyze.c (copy_stz, save_current_composition)
+called by analyze.c (_force_deposit_, shallow_clause_scan,scan_clause_tree)
+=======================================================================*/
+static void deposit_stz( STAND_PARAM *__stand_param__ , double sum , int depth )
+{
+	STZ_PARAM * __stz_info__ = __stand_param__->stz_info ;
+    STZ *__cur_stz__ ;
+
+	/*-- calculate the score here --*/
+	double cur_score = (sum / (double) (depth + 1)) ;
+
+	/*-- and apply the cutoff before doing all the work of putting it into
+		the list --*/
+	if ( cur_score < __stz_info__->stz_list_cutoff ) return ;
+
+	/*-- need the score to get the pointer, need the pointer to copy the
+		content --*/
+	__cur_stz__ = copy_stz( __stand_param__ , cur_score ) ;
+
+	/*-- Then add the content, once we have a pointer -- */
+	if (( __stand_param__->rules->collect_statistics ) && ( depth == START_DEPTH ))
+	{
+		SEG *__seg__ = __stz_info__->segs + START_DEPTH ;
+		if (__seg__->Key != NULL)
+		{
+			__cur_stz__->build_key = __seg__->Key ;
+		}
+	}
+	save_current_composition( __stand_param__ , __stz_info__->segs,depth , __cur_stz__->output , __cur_stz__-> definitions ) ;
+}
+
+#define DUP_DECREMENT .0025
+
+/* ====================================================================
+analyze.c (copy_stz)
+called by analyze.c (deposit_stz)
+=======================================================================*/
+static STZ * copy_stz(STAND_PARAM *__stand_param__ ,double current_score)
+{
+	/* -- sort it into the list and knock the last one off the list 
+      if it is MAX_STZ -- */
+	/* -- Take the Score of the last remaining item as the new cutoff, 
+      if it is greater than the current cutoff -- */
+	int i ;
+    int last_on_list ;
+    STZ *__cur_stz__ ;
+
+
+	STZ_PARAM *__stz_info__ = __stand_param__->stz_info ;
+	STZ **__stz_list__ = __stz_info__->stz_array ; 
+
+	/* -- Increase the list size only if it isn't full. If it is full, take
+		the score of the last on the list (which we're going to knock off the
+		list) as the new cutoff -- */
+	
+	if (__stz_info__->stz_list_size != MAX_STZ)
+	{
+		__stz_info__->stz_list_size++ ;
+	}
+	
+	/* -- Get the pointer of the last on the list if the list is full (to be 
+      knocked off, or one beyond the previous last item (with undefined 
+      content) if the list isn't full. -- */
+	last_on_list = __stz_info__->stz_list_size - 1 ;
+	__cur_stz__ = __stz_list__[last_on_list] ; /* -- implicitly discard contents -- */
+	__cur_stz__->score = current_score ;
+	__cur_stz__->raw_score = current_score ;
+
+	/*-- Initialize the output vector - but is this necessary ? --*/
+	for (i = FIRST_LEX_POS;i <= __stand_param__->LexNum;i++)
+	{
+		__cur_stz__->output[i] = FAIL ;
+	}
+	/* -- boundary condition : last-1   last
+                               [ ]     [ ] 
+      suppose the last - 1 has a score less than the current score - then
+        it isn't copied into last, so __cur_stz__ goes back into the slot
+        from which it was just removed - nothing moves  -- */
+	for (i = last_on_list;i > FIRST_STZ;i --)
+	{
+		/* -- Get the next pointer on the list and move it back if it has a 
+         lesser score. Otherwise we put the pointer to the new stz in the 
+         present position -- */
+		STZ *__next_stz__ = __stz_list__[i-1] ;
+		if (current_score > __next_stz__->raw_score)
+		{
+			__stz_list__[i] = __next_stz__ ;
+		}
+		else
+		{
+			if (current_score == __next_stz__->raw_score)
+			{
+				/* -- 2008-03-14: first come, first served -- */
+				__cur_stz__->score = __next_stz__->score - DUP_DECREMENT ;
+			}
+			break ;
+		}
+	}
+	__stz_list__[i] = __cur_stz__ ;
+	if (__stz_info__->stz_list_size == MAX_STZ)
+	{
+		__stz_info__->stz_list_cutoff = __stz_list__[last_on_list]->score ;
+	}
+	return __cur_stz__ ; /* -- tell the caller where we put it -- */
+}
+
+/* ====================================================================
+analyze.c (save_current_composition)
+called by analyze.c (deposit_stz)
+calls analyze.c (copy_best)
+<remarks>called by deposit_stz to align the current standardization output 
+      symbols to the LEXEME input symbols - it depends on the correct 
+      LEXEMES being present and the __sym_sel__ reflecting the last composition. 
+      Consequently it must be done at the time of deposit </remarks>
+=======================================================================*/
+static void save_current_composition(STAND_PARAM *__stand_param__,SEG *__segments__, int depth, SYMB *__best_output__ , DEF **__best_defs__) 
+{
+	
+	int lex_pos ;
+	SEG *__seg__ ;
+	int *__sym_sel__ = __stand_param__->cur_sym_sel ;
+	
+	/*-- <remarks> Get the definitions selected from save_defs - needed for outputing
+		the lexemes. Different definitions may give a different
+		standardization for the same input - the letter W may be standardized
+		as W if a SINGLE or WEST if a DIRECT </remarks> --*/
+	
+	/* -- use the whole target -- */
+	for ( lex_pos = FIRST_LEX_POS ; lex_pos < __stand_param__->LexNum ; lex_pos++ ) 
+	{
+		__best_defs__[lex_pos] = __stand_param__->def_array[lex_pos][__sym_sel__[lex_pos]] ;
+	}
+	__best_defs__[lex_pos] = NULL ;
+	
+	/*-- <remarks> Segments go backwards (right to left) , but the content for
+      each segment goes left to right </remarks> --*/
+	
+	for ( __seg__ = __segments__ + depth, lex_pos = FIRST_LEX_POS ; __seg__ >= __segments__ ; __seg__-- )
+	{
+		SYMB *__sym_ptr__ ;
+		if (( __sym_ptr__ = __seg__->Output ) == NULL)
+		{
+			lex_pos = copy_best( __stand_param__ , __sym_sel__ , __seg__->sub_sym , lex_pos , __best_output__ ) ;
+			continue ;
+		}
+		for ( ; *__sym_ptr__ != FAIL ; __sym_ptr__ ++ )
+		{
+			lex_pos = copy_best( __stand_param__ , __sym_sel__ , *__sym_ptr__ , lex_pos , __best_output__ ) ;
+		}
+   }
+}
+
+/* ====================================================================
+analyze.c (copy_best)
+called by analyze.c (save_current_composition)
+<remarks> Called by save_current_composition to decompress stopword and word
+      sequences </remarks>
+=======================================================================*/
+static int copy_best( STAND_PARAM *__stand_param__ , int *__sym_sel__ , SYMB output_symb , int beg , SYMB *__best_output__ )
+{
+	int lex_pos ; 
+	int *__orig_pos__ = __stand_param__->orig_str_pos ;
+	
+	/*-- <remarks> <code>orig_pos</code> has the (multiple) LEXEME positions to which the 
+      (single) output symbol corresponds - so we add that symbol to each of 
+      the positions </remarks> --*/
+	
+	int next_target_pos = __orig_pos__[beg] + 1 ;
+	for ( lex_pos = beg ; __orig_pos__[lex_pos] < next_target_pos ; lex_pos ++ )
+	{
+		if ( lex_pos == __stand_param__->LexNum ) break ;
+
+		/*-- <remarks> Check for errant RIGHT_COMPRESS - put it back into STREET
+			if possible </remarks> --*/
+
+		if (( lex_pos > FIRST_LEX_POS ) && ( output_symb != STREET ) && ( __stand_param__->comp_lex_sym[lex_pos][__sym_sel__[lex_pos]] == RIGHT_COMPRESS ) && ( __best_output__[lex_pos - 1] == STREET ))
+		{
+			__best_output__[lex_pos] = STREET ;
+		} 
+		else 
+		{
+			__best_output__[lex_pos] = output_symb ;
+		}
+	}
+	return lex_pos ;
+}
+
+/* ====================================================================
+analyze.c (lex_has_def)
+called by analyze.c (non_geocode_address, _modify_position_)
+scan the ith row of comp_lex_sym for the symbol sym
+returns the matching cell j
+=======================================================================*/
+static int lex_has_def(STAND_PARAM *__stand_param__, int i, SYMB sym)
+{
+	int j ;
+	int *__num_defs__ = __stand_param__->def_cnt ;
+	for (j = 0; j < __num_defs__[i]; j ++)
+	{
+		if (__stand_param__->comp_lex_sym[i][j] == sym)
+		{
+			return j ;
+		}
+	}
+	return FAIL ;
+}
+
+/* ====================================================================
+analyze.c (have_schema_symbol)
+called by analyze.c (schema_modify_position)
+=======================================================================*/
+static int have_schema_symbol(int *__check_dir__,SYMB sym)
+{
+	if (__check_dir__ != NULL)
+	{
+		if (__check_dir__[sym])
+		{
+			return TRUE ;
+		}
+	}
+	return FALSE ;
+}
+
+/* ====================================================================
+<summary>
+	<function name='analyze.c (default_seg_val)'/>
+	<calls> <functionref='analyze.c (make_singleton)'/> </calls>
+	<called-by> <functionref='analyze.c (force_arc_clause, 
+		_force_macro_clause_)'/> </called-by>
+	<revision date='2009-08-09'> Fourth arg now used to determine if
+		the __sym_sel__ should be initialized to the first definition :
+		save_composition uses the value. We will do that when we
+		have no idea at all which the right one is -- and there is
+		always at least one. </revision>
+</summary>
+=======================================================================*/
+#define DEPTH_POS ( num_lexes - 1 ) - depth
+
+static void default_seg_val( int *__sym_sel__, int num_lexes, SEG *__segments__, int use_default_sym, SYMB sym, double score )
+{
+	int depth ;
+	for (depth = FIRST_LEX_POS ;depth < num_lexes;depth ++)
+	{
+		if (use_default_sym)
+		{
+			/*-- <revision date='2009-08-09'> Set default only if told to do so </revision> --*/
+			__sym_sel__[DEPTH_POS] = 0 ; /* -- default value -- */
+		}
+		/*-- <revision date='2009-08-09'> Eliminate cl arg to make_singleton. </revision> --*/
+		make_singleton(__segments__,sym,DEPTH_POS,depth,score) ;
+	}
+}
+
+/* ====================================================================
+analyze.c (_modify_position_)
+called by analyze.c (schema_modify_position,_force_macro_clause_)
+calls analyze.c (lex_has_def)
+<remarks>If the input symbol is found at pos, then we put the out_sym as the sub_sym
+at depth in __seg__
+=======================================================================*/
+static int _modify_position_(STAND_PARAM *__stand_param__, SEG *__seg__, int depth, int pos, SYMB in_sym, SYMB out_sym)
+{
+	int sel ;
+	if ((sel = lex_has_def(__stand_param__, pos, in_sym)) != FAIL)
+	{
+		__seg__[depth].sub_sym = out_sym ;
+		__stand_param__->cur_sym_sel[pos] = sel ;
+		return TRUE ;
+	}
+	return FALSE ;   
+}
+
+/* ====================================================================
+analyze.c (schema_modify_position)
+- called by analyze.c (force_arc_clause)
+calls analyze.c (have_schema_symbol, _modify_position_)
+=======================================================================*/
+static int schema_modify_position( STAND_PARAM  *__stand_param__ , SEG *__segments__ , int depth , int lex_pos , SYMB in_sym , SYMB out_sym )
+{
+	/* -- note: this requires that attributes are present. It
+	only works if we're working within a particular
+	reference dataset. -- */
+	if (have_schema_symbol(__stand_param__->have_ref_att, out_sym))
+	{
+		return (_modify_position_(__stand_param__,__segments__, depth , lex_pos , in_sym , out_sym)) ;
+	}
+	return FALSE ;
+}   
+
+
+
+/* ====================================================================
+analyze.c (force_arc_clause)
+called by analyze.c (evaluator)
+calls analyze.c (default_seg_val, schema_modify_position and _force_deposit_) 
+<remarks>We're going to force standardization on an Arc clause without
+      much computation. first_composition has already done its work,
+      so we go through the lex_sym looking for likely constructions , using
+      the schema read as a guide </remarks>
+=======================================================================*/
+static void force_arc_clause( STAND_PARAM *__stand_param__ )
+{
+	int lex_start, lex_end, depth ;
+	STZ_PARAM * __stz_info__ = __stand_param__->stz_info ;
+	int num_lexes = __stand_param__->LexNum ;
+	default_seg_val( __stand_param__->cur_sym_sel , num_lexes , __stz_info__->segs , ARC_C , STREET , VERY_LOW_WEIGHT ) ;
+	depth = lex_start = 0 ;
+	lex_end = num_lexes -1 ;
+	/*-- look for a SUFDIR in the last position --*/
+	if (lex_start < lex_end -1)
+	{
+		if (schema_modify_position( __stand_param__ , __stz_info__->segs , depth , lex_end , DIRECT , SUFDIR )) 
+		{
+			lex_end-- ;
+			depth ++ ;
+		}
+	}
+	/*-- look for a SUFTYP --*/
+	if (lex_start < (lex_end -1))
+	{
+		if (schema_modify_position( __stand_param__ , __stz_info__->segs , depth , lex_end , TYPE , SUFTYP ))
+		{
+			lex_end-- ;
+		}
+	}
+	depth = num_lexes - 1 ;
+	if (lex_start < (lex_end -1))
+	{
+		if (schema_modify_position(__stand_param__, __stz_info__->segs, depth, lex_start, DIRECT, PREDIR))
+		{
+			lex_start++ ;
+			depth -- ;
+		}
+	}
+	if (lex_start < (lex_end-1))
+	{
+		if (schema_modify_position(__stand_param__, __stz_info__->segs, depth, lex_start, TYPE, PRETYP))
+		{
+			lex_start++ ;
+		}
+	}
+	_force_deposit_(__stand_param__, (__stand_param__->LexNum-1)) ;
+}
+
+#define MODIFY_SEG_POS(_IN_SYM_VAL_,_OUT_SYM_VAL_)\
+if ( _modify_position_( __stand_param__ , __segments__ , depth , lex_sym_pos , _IN_SYM_VAL_ , _OUT_SYM_VAL_ ) ) { continue ; }
+
+
+/* ====================================================================
+<summary>
+	<function name='analyze.c (_force_macro_clause_)'/>
+	<called-by> <functionref='analyze.c (evaluator)'/> </called-by>
+	<calls> <functionref='analyze.c (default_seg_val,_modify_position_,_force_deposit_)'/> </calls>
+</summary>
+=======================================================================*/
+#ifdef USE_FORCE_MACRO
+static void _force_macro_clause_( STAND_PARAM *__stand_param__ )
+{
+	int lex_sym_pos, depth ;
+	int n = __stand_param__->LexNum ;
+	int end = n -1 ;
+	SEG *__segments__ = __stand_param__->stz_info->segs ;
+
+	default_seg_val( __stand_param__->cur_sym_sel , n , __segments__ , MACRO_C , POSTAL , VERY_LOW_WEIGHT ) ;
+	for ( lex_sym_pos = 0 , depth = end ; lex_sym_pos <= end ; lex_sym_pos ++ , depth -- )
+	{
+		MODIFY_SEG_POS(PCH,POSTAL);
+		MODIFY_SEG_POS(PCT,POSTAL);
+		MODIFY_SEG_POS(QUINT,POSTAL);
+		MODIFY_SEG_POS(QUAD,POSTAL);
+		MODIFY_SEG_POS(NUMBER,POSTAL);
+		MODIFY_SEG_POS(MIXED,POSTAL);
+		MODIFY_SEG_POS(NATION,NATION);
+		MODIFY_SEG_POS(PROV,PROV);
+		MODIFY_SEG_POS(CITY,CITY);
+		MODIFY_SEG_POS(WORD,CITY);
+	}
+	_force_deposit_(__stand_param__,n-1) ;
+}
+#endif
+/* ====================================================================
+<summary>
+	<function name='analyze.c (_force_deposit_)'/>
+	<called-by> <function ref='analyze.c (force_arc_clause,_force_macro_clause_)'/> </called-by>
+	<calls> <function ref='analyze.c (deposit_stz)'/> </calls>
+</summary>
+=======================================================================*/
+static void _force_deposit_( STAND_PARAM *__stand_param__ , int depth ) 
+{
+	/*-- <remarks> Worst case scenario: we have a string of unknowns. It'll score
+		really low, but not zero. </remarks> --*/
+	double sum = 0.00 ;
+	SEG *__seg__ ;
+	SEG *__segments__ = __stand_param__->stz_info->segs ;
+	for (__seg__ = __segments__ + depth; __seg__ >= __segments__; __seg__--)
+	{
+		sum += __seg__->Value ;
+	}
+	deposit_stz( __stand_param__ , sum , depth ) ;
+}
+
+/* ====================================================================
+analyze.c (non_geocode_address)
+called by analyze.c (evaluator)
+calls analyze.c (lex_has_def)
+=======================================================================*/
+static int non_geocode_address( STAND_PARAM *__stand_param__ ) 
+{
+	/* -- scan through each position looking for an RR or BOXH token. -- */
+	int lex_sym_pos ;
+	int n = __stand_param__->LexNum ;
+	for ( lex_sym_pos = FIRST_LEX_POS ; lex_sym_pos < n ; lex_sym_pos ++ )
+	{
+		int result = lex_has_def( __stand_param__ , lex_sym_pos , RR ) ;
+		if ( result != FAIL ) 
+		{
+			return TRUE ;
+		}
+		if ((result = lex_has_def( __stand_param__ , lex_sym_pos , BOXH )) != FAIL)
+		{
+			return TRUE ;
+		}
+	}
+	return FALSE ;
+}
+
+/* ====================================================================
+analyze.c (output_raw_elements)
+print out the raw elements of the tokens
+=======================================================================*/
+void output_raw_elements( STAND_PARAM * __stand_param__ , ERR_PARAM *__err_param__ )
+{
+	int stz_no , n ;
+	int lex_pos ;
+	DEF *__def__ ;
+    STZ **__stz_list__;
+
+	STZ_PARAM *__stz_info__ = __stand_param__->stz_info ;
+	if (__err_param__ == NULL) 
+	{
+		printf("Input tokenization candidates:\n") ;
+	} 
+	else 
+	{
+		LOG_MESS("Input tokenization candidates:",__err_param__) ;
+	}
+	for (lex_pos = FIRST_LEX_POS;lex_pos < __stand_param__->LexNum;lex_pos ++) 
+	{
+		for ( __def__ = __stand_param__->lex_vector[lex_pos].DefList; __def__ != NULL; __def__ = __def__->Next)
+		{
+			if (__err_param__ == NULL) 
+			{
+				printf("\t(%d) std: %s, tok: %d (%s)\n",lex_pos,((__def__->Protect )? __stand_param__->lex_vector[lex_pos].Text : __def__->Standard),__def__->Type,in_symb_name(__def__->Type));
+			} 
+			else 
+			{
+				sprintf( __err_param__->error_buf , "\t(%d) std: %s, tok: %d (%s)\n" , lex_pos , (( __def__->Protect )? __stand_param__->lex_vector[lex_pos].Text : __def__->Standard) , __def__->Type , in_symb_name( __def__->Type ));
+				register_error( __err_param__ ) ;
+			}
+		}
+	}
+	n = __stz_info__->stz_list_size ; 
+	__stz_list__ = __stz_info__->stz_array ;
+	for ( stz_no = FIRST_STZ ; stz_no < n ; stz_no ++ )
+	{
+		STZ *__cur_stz__ = __stz_list__[stz_no] ;
+		if ( __err_param__ == NULL ) 
+		{
+			printf( "Raw standardization %d with score %f:\n" , ( stz_no  ) , __cur_stz__->score ) ;
+		} 
+		else 
+		{
+			LOG_MESS2( "Raw standardization %d with score %f:\n" , ( stz_no  ) , __cur_stz__->score , __err_param__ ) ;
+		}
+		for ( lex_pos = FIRST_LEX_POS ; lex_pos < __stand_param__->LexNum ; lex_pos ++ ) 
+		{
+            SYMB k;
+			__def__ = __cur_stz__->definitions[lex_pos] ;
+			/*-- 2010-11-18 : handle end STOPWORD --*/
+			k = __cur_stz__->output[lex_pos] ;
+			if ( __err_param__ == NULL ) 
+			{
+				printf( "\t(%d) Input %d (%s) text %s mapped to output %d (%s)\n" , lex_pos , __def__->Type , in_symb_name( __def__->Type ) , (( __def__->Protect )? __stand_param__->lex_vector[lex_pos].Text : __def__->Standard ) , k , (( k == FAIL )? "NONE" : out_symb_name( k ))) ;
+			} 
+			else 
+			{
+				sprintf( __err_param__->error_buf , "\t(%d) Input %d (%s) text %s mapped to output %d (%s)\n" , lex_pos , __def__->Type , in_symb_name( __def__->Type ) , (( __def__->Protect )? __stand_param__->lex_vector[lex_pos].Text : __def__->Standard ) , k , (( k == FAIL )? "NONE" : out_symb_name( k ))) ;
+				register_error( __err_param__ ) ;
+			}
+			if ( k == FAIL ) break ;
+		}
+	}
+	fflush( stdout ) ;
+}
+
diff --git a/extensions/address_standardizer/err_param.c b/extensions/address_standardizer/err_param.c
new file mode 100644
index 0000000..562acab
--- /dev/null
+++ b/extensions/address_standardizer/err_param.c
@@ -0,0 +1,278 @@
+/* -- err_param.c 
+
+This file handles the buffering and output of errors
+
+Prototype 7H08 (This file was written by Walter Sinclair).
+
+Copyright (c) 2009 Walter Bruce Sinclair
+
+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.
+
+
+*/
+
+/* For pagc-0.4.0 : last revised 2010-11-01 */
+
+#undef DEBUG
+//#define DEBUG
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "pagc_api.h"
+
+static FILE *open_error_log ( const char *, DS_Handle , ERR_PARAM * ) ;
+static int turn_off_error_log( ERR_PARAM * ) ;
+
+#define PRINT_ERROR( TEMP , MSG ) \
+      DBG( TEMP, MSG  ) ;
+
+#define RESET_ERR_P \
+   err_p -> first_err = 0 ; \
+   err_p -> last_err = 0 ; \
+   err_p -> next_fatal = TRUE ; \
+   err_mem = err_p -> err_array  ; \
+   err_p -> error_buf = err_mem -> content_buf ; \
+   err_mem -> is_fatal = TRUE ; \
+   BLANK_STRING( err_mem -> content_buf ) 
+
+
+
+/* ------------------------------------------------------------
+err_param.c (init_errors) :
+calls : err_param.c (open_error_log), stdlib.h (malloc, free) ,
+stdio.h (fprintf, fflush) stdlib.h (malloc,free)
+--------------------------------------------------------------*/
+ERR_PARAM *init_errors( PAGC_GLOBAL *pagc_glo_p ,
+                        const char *log_name ) {
+   ERR_PARAM *err_p ;
+   ERR_REC *err_mem ;
+
+   err_p = ( ERR_PARAM * ) malloc( sizeof( ERR_PARAM ) ) ;
+   if ( err_p == NULL ) {
+#ifndef NO_STDERR_OUTPUT
+      PRINT_ERROR( "%s\n" ,
+                   "FATAL ERROR : Could not allocate memory for pagc_init_errors" ) ;
+#endif
+      return NULL ;
+   }
+
+   /* -- set up first record -- */
+   RESET_ERR_P ;
+   /* -- a null log_name means we don't log , but collect -- */
+   if ( log_name == NULL ) {
+      err_p -> stream = NULL ;
+   }
+   else {
+      err_p -> stream = open_error_log( log_name ,
+                                        pagc_glo_p -> _file_sys ,
+                                        err_p ) ;
+      if ( err_p -> stream == NULL ) {
+         FREE_AND_NULL( err_p ) ;
+#ifndef NO_STDERR_OUTPUT
+         PRINT_ERROR( "Could not create error log for pathname: %s\n" ,
+                       log_name ) ;
+#endif
+         return NULL ;
+      }                  
+   }
+   return err_p ;
+}   
+
+
+/* ------------------------------------------------------------
+err_param.c (close_errors)
+uses macros BLANK_STRING, FREE_AND_NULL, and PRINT_ERROR
+--------------------------------------------------------------*/
+void close_errors( ERR_PARAM *err_p ) {
+   int is_fatal_error ;
+   char err_out_buf[ MAXSTRLEN ] ;
+
+
+   if ( err_p == NULL ) {
+      return ;
+   }
+
+   BLANK_STRING( err_out_buf ) ;
+
+   /* -- read each error into the buffer and then
+      output it as a single line -- */
+   while ( empty_errors( err_p ,
+                         &is_fatal_error ,
+                         err_out_buf ) ) {
+      if ( is_fatal_error ) {
+#ifndef NO_STDERR_OUTPUT
+         PRINT_ERROR( "ERROR: %s\n" ,
+                      err_out_buf ) ;
+      } else {
+         PRINT_ERROR( "%s\n" ,
+                      err_out_buf ) ;
+#endif
+      }
+      BLANK_STRING( err_out_buf ) ;
+   }    
+   FREE_AND_NULL( err_p ) ;
+}
+
+/* ------------------------------------------------------------
+err_param.c (turn_off_error_log)
+called by err_param.c (empty_errors)
+stdio.h (fclose)
+--------------------------------------------------------------*/
+static int turn_off_error_log( ERR_PARAM *err_p ) {
+   ERR_REC *err_mem ;
+
+   if ( ( err_p == NULL ) || 
+        ( err_p -> stream == NULL ) ) { 
+      return FALSE ;
+   }
+   fclose( err_p -> stream ) ;
+   err_p -> stream = NULL ;
+   RESET_ERR_P ;
+   return TRUE ;
+}
+
+/* ----------------------------------------------------------
+err_param.c (empty_errors)
+calls : err_param.c (turn_off_error_log)
+returns FALSE when all errors have been reported. 
+TRUE otherwise
+------------------------------------------------------------*/
+int empty_errors( ERR_PARAM *err_p ,
+                  int *is_fatal ,
+                  char *err_dest ) {
+
+   ERR_REC *err_mem ;
+	
+   if ( err_p == NULL ) {
+      return FALSE ;
+   }
+
+   if ( err_p -> first_err >= err_p -> last_err ) {
+      /* -- reset the counters -- */
+      RESET_ERR_P ;
+      return FALSE ; /* -- indicate empty -- */
+   }
+
+   /* -- if logging, turn it off and indicate empty -- */
+   if ( turn_off_error_log( err_p ) ) {
+      return FALSE ;
+   }
+
+   /* -- output the current lowest record -- */
+   err_mem = err_p -> err_array + err_p -> first_err ;
+   append_string_to_max( err_dest ,
+                         err_mem -> content_buf ,
+                         MAXSTRLEN ) ;   
+   *is_fatal = err_mem -> is_fatal ;
+
+   /* -- update the low mark -- */
+   err_p -> first_err ++ ;
+   return TRUE ; /* indicate error there */
+}
+
+/* ------------------------------------------------
+err_param.c (open_error_log) :
+called by init_errors
+calls : stdlib.h (free) stdio.h (fopen)
+uses macros OPEN_ALLOCATED_NAME, FREE_AND_NULL
+--------------------------------------------------- */
+static FILE *open_error_log( const char *client_log_name ,
+                             DS_Handle _file_sys_p ,
+                             ERR_PARAM *err_p ) {
+#ifdef BUILD_API
+   return NULL;
+#else
+   char *alloc_log_name ;
+   FILE *error_file ;
+
+   if ( client_log_name != NULL ) {
+      /* -- will overwrite previous log in same location -- */
+     OPEN_ALLOCATED_NAME(alloc_log_name,"err",error_file,client_log_name,"wb+",_file_sys_p,err_p,NULL) ;
+   }
+   FREE_AND_NULL( alloc_log_name ) ;
+   return error_file ;
+#endif
+}
+
+
+
+/* -----------------------------------------------------------
+err_param.c (register_error)
+called after the error is written to the error_buf
+stdlib.h (malloc) stdio.h (fprintf,fflush) string.h (strcpy)
+------------------------------------------------------------ */
+void register_error( ERR_PARAM *err_p ) {
+   int i ;
+   ERR_REC *err_mem ;
+
+
+   /* -- check if there is anything in the error_buf -- */
+   if ( err_p -> error_buf[ 0 ] == SENTINEL ) {
+      return ;
+   }
+   if ( strlen( err_p -> error_buf ) > MAXSTRLEN ) {
+#ifndef NO_STDERR_OUTPUT
+      PRINT_ERROR( "Error message %s is too long" ,
+                    err_p -> error_buf ) ; 
+#endif
+      return ;
+   }
+   /* -- print it out immediately, if we're logging -- */
+   if ( err_p -> stream != NULL ) {
+      fprintf( err_p -> stream ,
+               "%s\n" ,
+               err_p -> error_buf ) ;
+      fflush( err_p -> stream ) ;
+      /* -- set up for next error -- */
+      BLANK_STRING( err_p -> error_buf ) ;
+      return ;
+   }
+   /* -- update the current error record -- */
+   err_mem = err_p -> err_array + err_p -> last_err ;
+   err_mem -> is_fatal = err_p -> next_fatal ;
+
+   if ( err_p -> last_err == ( MAX_ERRORS - 1 ) ) {
+#ifndef NO_STDERR_OUTPUT
+      PRINT_ERROR( "%s is too many errors - losing old ones" ,
+                   err_p -> error_buf ) ;
+#endif
+      /* -- move the whole array down a slot to make room for
+         the next error. The first in the array disappears -- */
+      for ( i = err_p -> first_err ;
+            i < err_p -> last_err ;
+            i++ ) {
+         err_p -> err_array[ i ] . is_fatal = err_p -> err_array[ i + 1 ] . is_fatal ;
+         strcpy( err_p -> err_array[ i ] . content_buf ,
+                 err_p -> err_array[ i + 1 ] . content_buf ) ;
+      }
+   } else {
+      /* -- last_err points to the next one to fill -- */
+      err_p -> last_err ++ ; 
+      err_mem = err_p -> err_array + err_p -> last_err  ;
+   }
+
+   /* -- reset error_buf to the new content_buf -- */
+   err_p -> error_buf = err_mem -> content_buf ; 
+   BLANK_STRING( err_mem -> content_buf ) ;
+   err_p -> next_fatal = TRUE ;
+   return ;
+} 
+
+
+/*==========================================
+2006-11-02 add new arg
+===========================================*/
+void send_fields_to_error( ERR_PARAM *err_p ,
+                           char **s_fields ) {
+
+   send_fields_to_stream( s_fields , /* 2006-11-02 */
+                          err_p -> stream ,
+                          SCREEN , FALSE ) ;
+}
+
diff --git a/extensions/address_standardizer/expected/test-init-extensions.out b/extensions/address_standardizer/expected/test-init-extensions.out
new file mode 100644
index 0000000..51aae36
--- /dev/null
+++ b/extensions/address_standardizer/expected/test-init-extensions.out
@@ -0,0 +1,2 @@
+CREATE EXTENSION address_standardizer;
+CREATE EXTENSION address_standardizer_data_us;
diff --git a/extensions/address_standardizer/expected/test-parseaddress.out b/extensions/address_standardizer/expected/test-parseaddress.out
new file mode 100644
index 0000000..bdee4ac
--- /dev/null
+++ b/extensions/address_standardizer/expected/test-parseaddress.out
@@ -0,0 +1,17 @@
+\pset pager off
+drop table if exists test_parse_address cascade;
+NOTICE:  table "test_parse_address" does not exist, skipping
+create table test_parse_address (
+    id serial not null primary key,
+    instring text not null,
+    outstring text
+);
+copy test_parse_address (instring, outstring) from stdin;
+select id, instring, outstring as expected, parse_address(instring) as got_result
+  from test_parse_address
+ where instring not like '@@%' and parse_address(instring)::text != outstring;
+ id | instring | expected | got_result 
+----+----------+----------+------------
+(0 rows)
+
+\q
diff --git a/extensions/address_standardizer/expected/test-standardize_address_1.out b/extensions/address_standardizer/expected/test-standardize_address_1.out
new file mode 100644
index 0000000..34e8258
--- /dev/null
+++ b/extensions/address_standardizer/expected/test-standardize_address_1.out
@@ -0,0 +1,36 @@
+select * from parse_address('123 Main Street, Kansas City, MO 45678');
+ num |   street    | street2 |    address1     |    city     | state |  zip  | zipplus | country 
+-----+-------------+---------+-----------------+-------------+-------+-------+---------+---------
+ 123 | Main Street |         | 123 Main Street | Kansas City | MO    | 45678 |         | US
+(1 row)
+
+select * from standardize_address('us_lex'::text, 'us_gaz'::text, 'us_rules'::text, '123 Main Street'::text, 'Kansas City, MO 45678'::text);
+ building | house_num | predir | qual | pretype | name | suftype | sufdir | ruralroute | extra |    city     |  state   | country | postcode | box | unit 
+----------+-----------+--------+------+---------+------+---------+--------+------------+-------+-------------+----------+---------+----------+-----+------
+          | 123       |        |      |         | MAIN | STREET  |        |            |       | KANSAS CITY | MISSOURI |         | 45678    |     | 
+(1 row)
+
+SELECT '#2981' As ticket, * FROM standardize_address('us_lex','us_gaz','us_rules', '1566 NEW STATE HWY, RAYNHAM, MA') ;
+ ticket | building | house_num | predir | qual | pretype |       name        | suftype | sufdir | ruralroute | extra |  city   |     state     | country | postcode | box | unit 
+--------+----------+-----------+--------+------+---------+-------------------+---------+--------+------------+-------+---------+---------------+---------+----------+-----+------
+ #2981  |          | 1566      |        |      |         | NEW STATE HIGHWAY |         |        |            |       | RAYNHAM | MASSACHUSETTS | USA     |          |     | 
+(1 row)
+
+SELECT '#2978a' As ticket, * FROM standardize_address('us_lex','us_gaz','us_rules', '10-20 DORRANCE ST PROVIDENCE RI' );
+ ticket | building | house_num | predir | qual | pretype |   name   | suftype | sufdir | ruralroute | extra |    city    |    state     | country | postcode | box | unit 
+--------+----------+-----------+--------+------+---------+----------+---------+--------+------------+-------+------------+--------------+---------+----------+-----+------
+ #2978a |          | 10 20     |        |      |         | DORRANCE | STREET  |        |            |       | PROVIDENCE | RHODE ISLAND | USA     |          |     | 
+(1 row)
+
+SELECT '#2978b' As ticket, * FROM standardize_address('us_lex','us_gaz','us_rules', '10 20 DORRANCE ST PROVIDENCE RI' );
+ ticket | building | house_num | predir | qual | pretype |   name   | suftype | sufdir | ruralroute | extra |    city    |    state     | country | postcode | box | unit 
+--------+----------+-----------+--------+------+---------+----------+---------+--------+------------+-------+------------+--------------+---------+----------+-----+------
+ #2978b |          | 10 20     |        |      |         | DORRANCE | STREET  |        |            |       | PROVIDENCE | RHODE ISLAND | USA     |          |     | 
+(1 row)
+
+SELECT '#2978c' As ticket, * FROM standardize_address('us_lex','us_gaz','us_rules', '10-20 DORRANCE ST, PROVIDENCE, RI');
+ ticket | building | house_num | predir | qual | pretype |   name   | suftype | sufdir | ruralroute | extra |    city    |    state     | country | postcode | box | unit 
+--------+----------+-----------+--------+------+---------+----------+---------+--------+------------+-------+------------+--------------+---------+----------+-----+------
+ #2978c |          | 10 20     |        |      |         | DORRANCE | STREET  |        |            |       | PROVIDENCE | RHODE ISLAND | USA     |          |     | 
+(1 row)
+
diff --git a/extensions/address_standardizer/expected/test-standardize_address_2.out b/extensions/address_standardizer/expected/test-standardize_address_2.out
new file mode 100644
index 0000000..a6cd506
--- /dev/null
+++ b/extensions/address_standardizer/expected/test-standardize_address_2.out
@@ -0,0 +1,115 @@
+drop table if exists addresses cascade;
+NOTICE:  table "addresses" does not exist, skipping
+create table addresses (
+  id serial not null primary key,
+  micro text,
+  macro text
+);
+copy addresses (micro,macro) from stdin;
+select (std).* from (
+    select standardize_address('us_lex', 'us_gaz', 'us_rules', micro, macro) as std
+      from addresses) as foo;
+ building | house_num | predir | qual | pretype |     name      |  suftype  | sufdir | ruralroute | extra |    city    |   state   | country | postcode | box |       unit       
+----------+-----------+--------+------+---------+---------------+-----------+--------+------------+-------+------------+-----------+---------+----------+-----+------------------
+          | 1017      |        |      |         | LINWOOD       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | APARTMENT 12
+          | 1029      |        |      |         | ATLANTIC      | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | APARTMENT 302
+          | 1032      |        |      |         | PORTLAND      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 1093      |        |      |         | EDGERTON      | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55130    |     | # FLOOR 2
+          | 111       |        |      |         | KELLOGG       | BOULEVARD | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55101    |     | APARTMENT 3210
+          | 1113      |        |      |         | HAWTHORNE     | AVENUE    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 1120      |        |      |         | BARCLAY       | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | APARTMENT 4
+          | 1137      |        |      |         | CHURCHILL     | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55103    |     | 
+          | 1140      |        |      |         | GALTIER       | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | 
+          | 1147      |        |      |         | MINNEHAHA     | AVENUE    | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 1167      |        |      |         | BURNQUIST     | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 1168      |        |      |         | SUPORNICK     | LANE      |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | APARTMENT A
+          | 1169      |        |      |         | RANDOLPH      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | 
+          | 1223      |        |      |         | BERKELEY      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | 
+          | 125       |        |      |         | MAGNOLIA      | AVENUE    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | 
+          | 1263      |        |      |         | RICE          | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | 
+          | 1305      |        |      |         | CONWAY        | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 1341      |        |      |         | CASE          | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 1345      |        |      |         | CASE          | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 1351      |        |      |         | CONWAY        | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | APARTMENT 10
+          | 1363      |        |      |         | OSCEOLA       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | 
+          | 1377      |        |      |         | MAYNARD       | DRIVE     | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | APARTMENT 168
+          | 1379      |        |      |         | MAYNARD       | DRIVE     | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | APARTMENT 176
+          | 1379      |        |      |         | MAYNARD       | DRIVE     | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | APARTMENT 177
+          | 1388      |        |      |         | BARCLAY       | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 1390      |        |      |         | ARONA         | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55108    |     | 
+          | 1435      |        |      |         | GRAND         | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | APARTMENT 2
+          | 1484      |        |      |         | ASHLAND       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55101    |     | UNIT 101
+          | 1509      |        |      |         | SUMMIT        | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 1548      |        |      |         | VAN BUREN     | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 1561      |        |      |         | WHEELOCK      | LANE      |        |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | UNIT 303
+          | 1621      |        |      |         | ASHLAND       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | APARTMENT UPPER
+          | 1636      |        |      |         | WOODBRIDGE    | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | 
+          | 1644      |        |      |         | DAYTON        | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | APARTMENT 3
+          | 1709      |        |      |         | LEONE         | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 1743      |        |      |         | HIGHLAND      | PARKWAY   |        |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | 
+          | 1776      |        |      |         | SAINT CLAIR   | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | APARTMENT 107
+          | 1776      |        |      |         | SAINT CLAIR   | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | APARTMENT 205
+          | 1821      |        |      |         | UNIVERSITY    | AVENUE    | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | ROOM 336
+          | 1877      |        |      |         | GOODRICH      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | APARTMENT LOWER
+          | 1898      |        |      |         | LACROSSE      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55119    |     | 
+          | 1899      |        |      |         | BEECHWOOD     | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | 
+          | 1915      |        |      |         | MARSHALL      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | APARTMENT 2
+          | 1940      |        |      |         | NEVADA        | AVENUE    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55119    |     | 
+          | 1944      |        |      |         | NOKOMIS       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55119    |     | 
+          | 1962      |        |      |         | SAUNDERS      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | 
+          | 1968      |        |      |         | NEBRASKA      | AVENUE    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55119    |     | 
+          | 1971      |        |      |         | SARGENT       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | 
+          | 204       |        |      |         | CONGRESS      | STREET    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55107    |     | APARTMENT D
+          | 2085      |        |      |         | GRAND         | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55101    |     | APARTMENT 203
+          | 21        |        |      |         | BATTLE CREEK  | PLACE     |        |            |       | SAINT PAUL | MINNESOTA |         | 55119    |     | 
+          | 2174      |        |      |         | ELEANOR       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | 
+          | 2224      |        |      |         | MAILAND       | ROAD      |        |            |       | SAINT PAUL | MINNESOTA |         | 55119    |     | 
+          | 2272      |        |      |         | BENSON        | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | UNIT C
+          | 2285      |        |      |         | BENSON        | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | 
+          | 233       |        |      |         | CONCORD       | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55107    |     | 
+          | 235       |        |      |         | MCKNIGHT      | ROAD      | SOUTH  |            |       | SAINT PAUL | MINNESOTA |         | 55119    |     | APARTMENT B4
+          | 2360      |        |      |         | BUFORD        | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55108    |     | 
+          | 256       |        |      |         | POINT DOUGLAS | ROAD      | NORTH  |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 261       |        |      |         | UNIVERSITY    | AVENUE    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55130    |     | APARTMENT 303
+          | 2706      |        |      |         | GANNON        | ROAD      |        |            |       | SAINT PAUL | MINNESOTA |         | 55116    |     | 
+          | 289       |        |      |         | 5             | STREET    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55101    |     | UNIT 309
+          | 303       |        |      |         | WILDER        | STREET    | NORTH  |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | # FLOOR 1
+          | 317       |        |      |         | ROBIE         | STREET    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55107    |     | 
+          | 333       |        |      |         | SMITH         | AVENUE    | NORTH  |            |       | SAINT PAUL | MINNESOTA |         | 55102    |     | 
+          | 377       |        |      |         | HAMLINE       | AVENUE    | SOUTH  |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | 
+          | 418       |        |      |         | MARYLAND      | AVENUE    | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | APARTMENT 204
+          | 444       |        |      |         | CLINTON       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55107    |     | 
+          | 444       |        |      |         | FERRY         | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 536       |        |      |         | THOMAS        | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55103    |     | 
+          | 544       |        |      |         | SIMPSON       | STREET    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 56        |        |      |         | IRVINE        | PARK      |        |            |       | SAINT PAUL | MINNESOTA |         | 55102    |     | 
+          | 597       |        |      |         | BLAIR         | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55103    |     | APARTMENT 5
+          | 602       |        |      |         | HUMBOLDT      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55107    |     | 
+          | 605       |        |      |         | CAPITOL       | BOULEVARD |        |            |       | SAINT PAUL | MINNESOTA |         | 55103    |     | APARTMENT B
+          | 617       |        |      |         | ROSE          | AVENUE    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55130    |     | 
+          | 635       |        |      |         | WESTERN       | AVENUE    | NORTH  |            |       | SAINT PAUL | MINNESOTA |         | 55103    |     | 
+          | 660       |        |      |         | 5             | STREET    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | APARTMENT DOWNST
+          | 672       |        |      |         | UNIVERSITY    | AVENUE    | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 675       |        |      |         | WHEELOCK      | PARKWAY   | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | 
+          | 70        |        |      |         | IOWA          | AVENUE    | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | 
+          | 711       |        |      |         | MARSHALL      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 712       |        |      |         | SNELLING      | AVENUE    | NORTH  |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | APARTMENT 1
+          | 715       |        |      |         | CALIFORNIA    | AVENUE    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 715       |        |      |         | MARSHALL      | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 735       |        |      |         | LINCOLN       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | 
+          | 750       |        |      |         | BLAIR         | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 754       |        |      |         | BLAIR         | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | # FLOOR 1
+          | 771       |        |      |         | BUTTERNUT     | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55102    |     | 
+          | 812       |        |      |         | 7             | STREET    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 83        |        |      |         | CALIFORNIA    | AVENUE    | WEST   |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | APARTMENT 206
+          | 838       |        |      |         | LAFOND        | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 852       |        |      |         | HOLLY         | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55104    |     | 
+          | 859       |        |      |         | OSCEOLA       | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55105    |     | APARTMENT 1
+          | 885       |        |      |         | CASE          | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 927       |        |      |         | WAKEFIELD     | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 93        |        |      |         | MARIA         | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 935       |        |      |         | HYACINTH      | AVENUE    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+          | 94        |        |      |         | FRONT         | AVENUE    |        |            |       | SAINT PAUL | MINNESOTA |         | 55117    |     | 
+          | 953       |        |      |         | HYACINTH      | AVENUE    | EAST   |            |       | SAINT PAUL | MINNESOTA |         | 55106    |     | 
+(100 rows)
+
diff --git a/extensions/address_standardizer/export.c b/extensions/address_standardizer/export.c
new file mode 100644
index 0000000..7148539
--- /dev/null
+++ b/extensions/address_standardizer/export.c
@@ -0,0 +1,432 @@
+/* -- export.c 
+
+This file contains the routines for extracting the sequence of
+postal attributes and definitions produced by the standardizer
+into strings of text (in __standard_fields__).
+
+Prototype 7H08 (This file was written by Walter Sinclair).
+
+Copyright (c) 2009 Walter Bruce Sinclair
+
+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.
+
+*/
+
+/* For pagc-0.4.0 : last revised 2009-10-03 */
+
+#include <stdio.h>
+#include <string.h>
+#include <stddef.h>
+#include "pagc_api.h"
+#include "pagc_tools.h"
+
+#define ORDER_DISPLACEMENT 2
+
+/* -- local prototypes -- */
+static void _copy_standard_( STAND_PARAM * , SYMB , int , int  ) ; 
+static void _scan_target_( STAND_PARAM * , SYMB , int  ) ; 
+static char *_get_standard_( STAND_PARAM * , int , int ) ;
+static char *_get_definition_text_( STAND_PARAM * , int ) ;
+ 
+//#ifndef BUILD_API
+
+/* -- local storage -- */
+static const char *__field_start_tag__[][3] = {
+   { "    <Build>",  "\"", "Building:         " },
+   { "    <Civic>",  "\"", "House Address:    " },
+   { "    <PreDir>", "\"", "Prefix Direction: " },
+   { "    <Qualif>", "\"", "Qualifier:        " },
+   { "    <PreTyp>", "\"", "Prefix Type:      " },
+   { "    <Street>", "\"", "Street Name:      " },
+   { "    <SufTyp>", "\"", "Suffix Type:      " },
+   { "    <SufDir>", "\"", "Suffix Direction: " },
+   { "    <Rural>",  "\"", "Rural Route:      " },
+   { "    <Extra>",  "\"", "Additional Info:  " },
+   { "    <City>",   "\"", "Municipal:        " },
+   { "    <Prov>",   "\"", "Province/State:   " },
+   { "    <Nation>", "\"", "Country:          " },
+   { "    <Postal>", "\"", "Postal/Zip Code:  " },
+   { "    <Box>",    "\"", "Box:              " },
+   { "    <Unit>",   "\"", "Unit:             " }
+} ;
+static const char *__land_field_start_tag__[][3] = {
+   { "<FeatureName>",  "\"", "FeatureName       " },
+   { "<FeatureType>",  "\"", "FeatureType       " },
+   { "<FeatureArea>", "\"", "FeatureArea       " }
+} ;
+static const char *__land_field_tag_end__[][3] = {
+   { "</FeatureName>\n",  "\",", "\n" },
+   { "</FeatureType>\n",  "\",", "\n" },
+   { "</FeatureArea>\n", "\",", "\n" }
+} ;
+static const char *__field_tag_end__[][3] = {
+   { "</Build>\n",  "\",", "\n" },
+   { "</Civic>\n",  "\",", "\n" },
+   { "</PreDir>\n", "\",", "\n" },
+   { "</Qualif>\n", "\",", "\n" },
+   { "</PreTyp>\n", "\",", "\n" },
+   { "</Street>\n", "\",", "\n" },
+   { "</SufTyp>\n", "\",", "\n" },
+   { "</SufDir>\n", "\",", "\n" },
+   { "</Rural>\n",  "\",", "\n" },
+   { "</Extra>\n",  "\",", "\n" },
+   { "</City>\n",   "\",", "\n" },
+   { "</Prov>\n",   "\",", "\n" },
+   { "</Nation>\n", "\",", "\n" },
+   { "</Postal>\n", "\",", "\n" },
+   { "</Box>\n",    "\",", "\n" },
+   { "</Unit>\n",   "\",", "\n" }
+} ;
+static const char *__record_start_tag__[ ] = {
+   "   <address>\n" , "\n", "\n"
+} ;
+static const char *__landmark_record_start_tag__[ ] = {
+   "   <landmark>\n" , "\n", "\n"
+} ;
+static const char *__record_end_tag__[ ] = {
+  "   </address>\n", "\n", "\n"
+} ;
+static const char *__landmark_record_end_tag__[ ] = {
+   "   </landmark>\n" , "\n", "\n"
+} ;
+
+//#endif
+
+static SYMB __ord_list__[] = { ORD, FAIL } ;
+
+/*----------------------------------------------------------------
+export.c (init_output_fields)
+----------------------------------------------------------------*/
+void init_output_fields( STAND_PARAM *__stand_param__ , int which_fields )
+{
+	/* -- called with BOTH to erase both the micro and macro fields
+		called with RIGHT to erase only the macro fields, and
+		LEFT to erase only the micro fields -- */
+	int i  ;
+	char **__standard_fields__ = __stand_param__->standard_fields ;
+	/*-- Decide which set of fields to initialize --*/
+	if ( which_fields == BOTH )
+	{
+		for ( i = 0 ; i < MAXOUTSYM ; i++ )
+		{
+			__standard_fields__[i][0] = SENTINEL ;
+		}
+	} 
+	else 
+	{
+		/*-- Clean only one set --*/
+		if ( which_fields == RIGHT )
+		{
+			/*-- Erase the macro fields only --*/
+			for ( i = CITY ; i < NEEDHEAD ; i++ )
+			{
+				__standard_fields__[i][0] = SENTINEL ;
+			}
+		} 
+		else 
+		{
+			/*-- Erase the micro fields only --*/
+			for ( i = BLDNG ; i < CITY ; i++ )
+			{
+				__standard_fields__[i][0] = SENTINEL ;
+			}
+			for ( i = NEEDHEAD ; i < MAXOUTSYM ; i++ )
+			{
+				__standard_fields__[i][0] = SENTINEL ;
+			}
+		}
+	}
+}
+
+/*-----------------------------------------
+export.c (sym_to_field)
+-------------------------------------------*/
+int sym_to_field( SYMB sym )
+{
+	int fld = NEEDHEAD ;
+	if ( sym == BOXH || sym == BOXT ) return fld ;
+	fld++ ;
+	if ( sym == UNITH || sym == UNITT ) return fld ;
+	if ( sym >= BLDNG && sym < MAXOUTSYM ) return sym ;
+	return FAIL ;
+}
+
+/*--------------------------------------------------
+export.c (_get_definition_text_)
+-- called by export.c (_get_standard_)
+---------------------------------------------------*/
+static char *_get_definition_text_( STAND_PARAM *__stand_param__ , int lex_pos )
+{
+	DEF *__best_DEF__ = __stand_param__->best_defs[lex_pos] ;
+	if (!( __best_DEF__->Protect ))
+	{
+		return ( __best_DEF__->Standard ) ;
+	}
+	return ( __stand_param__->lex_vector[lex_pos].Text ) ;
+}
+
+/*-----------------------------------------
+export.c (stuff_fields)
+--calls export.c (_scan_target_)
+-------------------------------------------*/
+void stuff_fields( STAND_PARAM *__stand_param__ ) 
+{
+	int fld ;
+	/*-- Translate the symbols and definitions of the standardization into
+		the __standard_fields__ for output --*/
+	for (fld = 0 ;fld < NEEDHEAD ;fld++) 
+	{
+		/*-- Fields that correspond one to one with the symbols --*/
+		_scan_target_(__stand_param__ ,fld,fld) ;
+	}
+	/*-- These two fields have two tokens for each field --*/
+	_scan_target_( __stand_param__ , BOXH, NEEDHEAD ) ;
+	_scan_target_( __stand_param__ , BOXT, NEEDHEAD ) ;
+	_scan_target_( __stand_param__ , UNITH, NEEDHEAD+1 ) ;
+	_scan_target_( __stand_param__ , UNITT, NEEDHEAD+1 ) ;
+}
+
+//#ifndef BUILD_API
+
+/*---------------------------------------------------------------------
+export.c (send_fields_to_stream)
+uses BLANK_STRING
+2009-09-27 modify to display landmark fields
+----------------------------------------------------------------------*/
+#define STREAM_BUF_SIZE MAXSTRLEN
+void send_fields_to_stream( char **__standard_fields__ , FILE *__dest_file__ , int opt , int is_landmark)
+{
+	int output_order ;
+	if (opt < NO_FORMAT)
+	{
+		if (__dest_file__ != NULL)
+		{
+			fprintf(__dest_file__,"%s\n",(is_landmark? __landmark_record_start_tag__[opt] : __record_start_tag__[opt])) ;
+		} 
+		else 
+		{
+			printf("%s\n",(is_landmark? __landmark_record_start_tag__[opt] : __record_start_tag__[opt])) ;
+		}
+	}
+	/*-- We want to rearrange so that unit and box come first --*/
+	for (output_order = 0; output_order < (NEEDHEAD + ORDER_DISPLACEMENT); output_order++)
+	{
+		char __line_buf__[STREAM_BUF_SIZE] ;
+		int loc = ((output_order < ORDER_DISPLACEMENT)? (NEEDHEAD + output_order) : (output_order - ORDER_DISPLACEMENT)) ;
+		char *__field_string__ = __standard_fields__[loc] ;
+		BLANK_STRING(__line_buf__) ;
+		if (*__field_string__ != SENTINEL)
+		{
+			if (opt < NO_FORMAT)
+			{
+				char * __source_start_tag__ ;
+				if (is_landmark)
+				{
+					switch (loc)
+					{
+			        case FEATNAME :
+						__source_start_tag__ = ( char *) __land_field_start_tag__[0][opt] ;
+     				    break ;
+                    case FEATTYPE :
+                       __source_start_tag__ = ( char *) __land_field_start_tag__[1][opt] ;
+                        break ;
+                    case FEATAREA :
+						__source_start_tag__ = ( char *) __land_field_start_tag__[2][opt] ;
+						break ;
+					default :
+						__source_start_tag__ = ( char * ) __field_start_tag__[loc][opt] ;
+					}
+				} 
+				else 
+				{
+					__source_start_tag__ = (char *) __field_start_tag__[loc][opt] ;
+				}
+				append_string_to_max(__line_buf__, __source_start_tag__ , STREAM_BUF_SIZE) ;
+			}
+			append_string_to_max( __line_buf__,  __field_string__ , STREAM_BUF_SIZE ) ;
+			if (opt < NO_FORMAT)
+			{
+				char * __source_end_tag__ ;
+				if (is_landmark)
+				{
+ 					switch (loc)
+					{
+					case FEATNAME :
+						__source_end_tag__ = ( char *) __land_field_tag_end__[ 0 ][ opt ] ;
+						break ;
+					case FEATTYPE :
+						__source_end_tag__ = ( char *) __land_field_tag_end__[ 1 ][ opt ] ;
+						break ;
+					case FEATAREA :
+						__source_end_tag__ = ( char *) __land_field_tag_end__[ 2 ][ opt ] ;
+						break ;
+					default :
+						__source_end_tag__ = ( char * ) __field_tag_end__[ loc ][ opt ] ;
+					}
+				}
+				else 
+				{
+					__source_end_tag__ = ( char * ) __field_tag_end__[ loc ][ opt ] ;
+				}
+				append_string_to_max( __line_buf__ , __source_end_tag__ , STREAM_BUF_SIZE ) ;
+			}
+			if ( __dest_file__ != NULL )
+			{
+				fprintf( __dest_file__ , "%s" , __line_buf__ ) ;
+			} 
+			else 
+			{
+				printf( "%s" , __line_buf__ ) ;
+			}
+		}
+	}
+	if ( opt < NO_FORMAT ) 
+	{
+		if ( __dest_file__ != NULL ) 
+		{
+			fprintf( __dest_file__ , "%s\n", ( is_landmark? __landmark_record_end_tag__[ opt ] : __record_end_tag__[ opt ]));
+		} 
+		else 
+		{
+			printf( "%s\n" , ( is_landmark? __landmark_record_end_tag__[ opt ] :  __record_end_tag__[ opt ] ) );
+		}
+	}
+	if ( __dest_file__ != NULL )
+	{
+		fflush( __dest_file__ ) ;
+	} 
+	else 
+	{
+		fflush( stdout ) ;
+	}
+}
+
+//#endif
+
+/*-----------------------------------------
+export.c (_get_standard_)
+-- called by export.c (_copy_standard_)
+-- calls _get_definition_text_ , find_def_type
+uses MACRO BLANK_STRING
+-------------------------------------------*/
+static char *_get_standard_(STAND_PARAM *__stand_param__ ,int lex_pos, int output_sym)
+{
+	char *__selected_standardization__ ;
+	DEF *__best_DEF__ = __stand_param__->best_defs[lex_pos] ;
+	if ((output_sym == STREET) && (find_def_type(__best_DEF__,__ord_list__)) && (__best_DEF__->Type == WORD))
+	{
+		/*-- <remarks> If the best definition is a streetname typed as a word, but also
+			including an ordinal type, then substitute the ordinal
+			standardization - however, the lexicon should take care of most
+			cases of this. </remarks> --*/
+
+		DEF *__scan_DEF__ ;
+
+		for (__scan_DEF__ = __stand_param__->lex_vector[lex_pos].DefList;__scan_DEF__ != NULL;__scan_DEF__ = __scan_DEF__->Next)
+		{
+			if (__scan_DEF__->Type == ORD)
+			{
+				if ((__selected_standardization__ = __scan_DEF__->Standard) != NULL) 
+				{
+					return (__selected_standardization__) ;
+				}
+				break ;
+			}
+		}
+	}
+
+	/*-- If it is in the lexicon, use the standardization there, otherwise
+		use the form that emerged from tokenization --*/
+
+	__selected_standardization__ = _get_definition_text_(__stand_param__,lex_pos) ;
+	if ((output_sym == HOUSE) && (*__selected_standardization__ == '0'))
+	{
+		/*-- Remove leading zeroes to simplify match comparisons
+			on the house number that use strings rather than integers -
+			we won't do this on zip codes. There may arise some need to
+			do it for unit and box numbers in the future. --*/
+		char *__zero_pointer__ ;
+		char *__buffer_pointer__ = __zero_pointer__ = __selected_standardization__ ;
+		while ( *__zero_pointer__ == '0' ) __zero_pointer__++ ; /*-- Move to first nonzero character --*/
+		while ( *__zero_pointer__ != SENTINEL ) *__buffer_pointer__++ = *__zero_pointer__++ ; /*-- Move down in buffer --*/ 
+		/*-- Trim down all-zeroes to a single zero: if deleting all
+			the zeros leaves an empty buffer, put a zero back --*/
+		if ( __buffer_pointer__ == __selected_standardization__ ) *__buffer_pointer__++ = '0' ; 
+		BLANK_STRING( __buffer_pointer__ ) ;
+	}
+	return ( __selected_standardization__ ) ;
+}
+
+/*-----------------------------------------
+export.c (_scan_target_ )
+-- calls export.c (_copy_standard_) 
+-- called by export.c (stuff_fields)
+-------------------------------------------*/
+static void _scan_target_(STAND_PARAM *__stand_param__,SYMB sym , int dest)
+{
+	int i ;
+
+	int n = __stand_param__->LexNum ;
+	SYMB *__output_syms__ = __stand_param__->best_output ;
+	/*-- <remarks> Probe the array of output symbols in the best output and find
+      the position of a matching symbol and send it to be copied to
+      the output string fields. The order of the words in each field
+      will therefore follow the order that they appear in the input </remarks> --*/
+	for (i = FIRST_LEX_POS;i < n;i++)
+	{
+		if (__output_syms__[i] == sym)
+		{
+			_copy_standard_(__stand_param__,sym,dest,i) ;
+		}
+	}
+}
+
+/*-----------------------------------------
+export.c (_copy_standard_) 
+-- called by export.c (_scan_target_) -- 
+--calls export.c (_get_standard_, 
+strlen, strcpy 
+uses macro SPACE_APPEND_WITH_LEN 
+-------------------------------------------*/
+static void _copy_standard_( STAND_PARAM *__stand_param__ , SYMB output_sym , int fld , int lex_pos )
+{
+
+	/*-- Retrieve the standardized string --*/
+	char *__stan_str__ = _get_standard_( __stand_param__ , lex_pos , output_sym ) ;
+	char *__dest_buf__ = __stand_param__->standard_fields[fld] ;
+	if (( strlen( __stan_str__ ) + strlen( __dest_buf__ )) > MAXFLDLEN )
+	{
+		/*-- Truncate without warning --*/
+		return ;
+	}
+	if ( *__dest_buf__ != SENTINEL )
+	{
+		SPACE_APPEND_WITH_LEN( __dest_buf__ , __stan_str__ , MAXFLDLEN ) ;
+	} 
+	else if ( output_sym == UNITT )
+	{
+		/*-- If the unit id type is missing, one needs to be provided.
+         This might result in a mismatch, when the type is implicit
+         in one of the compared addresses, and explicit in the
+         other. Not much you can do with implicit. Better a generic
+         identifier than nothing at all --*/
+
+		strcpy( __dest_buf__ , "# " ) ; /* -- reconsider this -- */
+		append_string_to_max( __dest_buf__ , __stan_str__ , MAXFLDLEN ) ;
+	} 
+	else if ( output_sym == BOXT )
+	{
+		strcpy( __dest_buf__, "BOX " ) ;
+		append_string_to_max( __dest_buf__ , __stan_str__ ,MAXFLDLEN ) ;
+	} 
+	else 
+	{
+		strcpy( __dest_buf__ , __stan_str__ ) ;
+	}
+}
+
diff --git a/extensions/address_standardizer/gamma.c b/extensions/address_standardizer/gamma.c
new file mode 100644
index 0000000..bbf9d86
--- /dev/null
+++ b/extensions/address_standardizer/gamma.c
@@ -0,0 +1,938 @@
+/* -- gamma.c 
+
+This file reads the rules file into memory and sets up the rule
+lookup structures. These are based on the optimized Aho-Corasick
+algorithms in Watson (1994).
+
+Copyright (c) 2008 Walter Bruce Sinclair
+
+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.
+
+*/
+/* For pagc-0.4.0 : last revised 2010-11-01 */
+
+#undef DEBUG
+//#define DEBUG
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stddef.h>
+#include "pagc_api.h"
+#include "gamma.h"
+
+#ifdef BUILD_API
+#include "pagc_std_api.h"
+RULES *rules_init( ERR_PARAM *err_p ) ;
+#endif
+
+/* -- local prototypes -- */
+static int initialize_link( ERR_PARAM *, KW *** , NODE ) ; 
+static void classify_link( RULE_PARAM * , KW ***, KW *, NODE , SYMB , SYMB  ) ; 
+static void add_failure_linkage( KW ***, NODE , NODE  ) ; 
+static NODE **precompute_gamma_function( ERR_PARAM *, NODE ** , KW ***, NODE  ) ; 
+
+static double load_value[ NUMBER_OF_WEIGHTS ] = {
+   0.00, 0.325, 0.35 , 0.375 , 0.4 , 
+   0.475 , 0.55, 0.6 , 0.65 , 0.675 , 
+   0.7 , 0.75 , 0.8 , 0.825 , 0.85 , 
+   0.9 , 0.95 , 1.00 } ;
+
+/*--------------------------------------------------------------------------- 
+gamma.c (refresh_transducer)
+called by analyze.c (prepare_target_pattern) 
+The registry of matching keywords is regenerated with the use of the 
+precomputed Gamma function, Output Links and the current target.
+----------------------------------------------------------------------------*/
+void refresh_transducer( NODE *r , 
+                         SYMB *S ,
+                         NODE **gamma_function ) {
+   NODE q ;
+   int i ;
+
+   i = 0 ;
+   q = r[ i ] = EPSILON ;
+   while ( S[ i ] != FAIL ) {
+      q = gamma_function[ q ][ S[ i ] ] ; 
+      i++ ;
+      r[ i ] = q ;
+   }
+}
+
+/*--------------------------------------------------------------------------- 
+gamma.c (is_input_symbol)
+called by gamma.c (create_rules)
+----------------------------------------------------------------------------*/
+int is_input_symbol( SYMB sym ) {
+
+   if ( sym > MAXINSYM || 
+        sym < 0 )
+      return FALSE ;
+   return TRUE ;
+}
+
+/*--------------------------------------------------------------------------- 
+gamma.c (is_output_symbol)
+called by gamma.c (create_rules)
+----------------------------------------------------------------------------*/
+int is_output_symbol( SYMB sym ) {
+   if ( sym > MAXOUTSYM || 
+        sym < 0 )
+      return FALSE ;
+   return TRUE ;
+}
+
+#ifdef BUILD_API
+
+/*
+typedef struct RULES_s {
+    int ready;
+    int rule_number;
+    int last_node;
+    RULE_PARAM *r_p;
+    ERR_PARAM *err_p;
+    NODE **Trie;
+    SYMB *rule_end ;
+    SYMB *r ;
+} RULES;
+*/
+
+/*---------------------------------------------------------------------------
+gamma.c (rules_init)
+api interface to replace (create_rules)
+---------------------------------------------------------------------------*/
+RULES *rules_init( ERR_PARAM *err_p ) {
+    RULES *rules;
+    /* -- returns size of Gamma Function Matrix -- */
+    SYMB a ;
+    KW *k_s ;
+    KW ***o_l ;
+    NODE **Trie ;
+    SYMB *r_s ;
+    RULE_PARAM *r_p ;
+
+
+    PAGC_CALLOC_STRUC(rules,RULES,1,err_p,NULL);
+    rules->err_p = err_p;
+    rules->ready = 0;
+    rules->rule_number = 0;
+    rules->last_node = EPSILON;
+
+    PAGC_ALLOC_STRUC(r_p,RULE_PARAM,err_p,NULL) ;
+    rules->r_p = r_p;
+
+    /* -- initialize the statistics record -- */
+    r_p -> collect_statistics = FALSE ;
+    r_p -> total_best_keys = 0 ;
+    r_p -> total_key_hits = 0 ;
+
+    /* -- storage for input and output records -- */
+    PAGC_CALLOC_STRUC(r_s,SYMB,RULESPACESIZE,err_p,NULL);
+
+    /* -- storage for temporary trie for rules -- */
+    PAGC_CALLOC_STRUC(Trie,NODE *,MAXNODES,err_p,NULL);
+
+    /* -- initialize the first( EPSILON ) node of the trie -- */
+    PAGC_CALLOC_STRUC(Trie[EPSILON],NODE,MAXINSYM,err_p,NULL);
+
+    for ( a = 0 ;
+          a < MAXINSYM ;
+          a++ ) {
+       Trie[ EPSILON ][ a ] = FAIL ;
+    }
+
+    /* -- storage for global output_link -- */
+    PAGC_CALLOC_STRUC(o_l,KW **,MAXNODES,err_p,NULL);
+    PAGC_CALLOC_STRUC(k_s,KW,MAXRULES,err_p,NULL);
+
+    if ( !initialize_link( err_p ,
+                           o_l ,
+                           EPSILON ) ) {
+       return NULL ;
+    }
+
+    rules -> r_p -> rule_space = r_s ;
+    rules -> r_p -> key_space = k_s ;
+    rules -> r_p -> output_link = o_l ;
+
+    rules -> Trie = Trie ;
+    rules -> rule_end = r_s + RULESPACESIZE ;
+
+    rules -> r = r_s ;
+
+    return rules;
+}
+
+
+int rules_add_rule(RULES *rules, int num, int *rule) {
+    int i ,
+        w ;
+    SYMB a ,
+         t ;
+    SYMB *rule_start , *r ;
+    NODE u ;
+    NODE **Trie ;
+    KW *keyw ,
+       *k_s ;
+    KW ***o_l ;
+
+    if ( !rules ) return 1;       /* error rules obj not initialized */
+    if ( !rules -> r_p ) return 2;  /* RULE_PARAM not allocated */
+    if ( rules -> ready ) return 3; /* rules have already be readied */
+    if ( rules -> rule_number >= MAXRULES ) {
+        RET_ERR( "rules_add_rule: Too many rules are being added.",
+                 rules -> err_p, 4);
+    }
+
+    /* get local copies of stuff saved in RULES */
+    o_l = rules -> r_p -> output_link ;
+    k_s = rules -> r_p -> key_space ;
+    
+    Trie = rules -> Trie ;
+    r = rules -> r ;
+
+    keyw = k_s + rules -> rule_number ;
+    MEM_ERR(keyw, rules -> err_p, 5);
+
+    u = EPSILON ;
+    rule_start = r ; /* save rule start for inclusion in the record */
+    if ( rule_start > rules -> rule_end ) {
+        RET_ERR( "rules_add_rule: Too many rules for allocated memory.",
+                 rules -> err_p, 5);
+    }
+
+    for (i=0; ; i++, r++ ) {
+        if (i >= num) {
+            RET_ERR( "rules_add_rule: invalid rule structure.",
+                     rules -> err_p, 6);
+        }
+
+        *r = rule[i] ;
+        /* -- a fail at the beginning of a field indicates end of record
+           unless it's at the beginning of the record, in which case
+           it's the end of file -- */
+        if ( *r == FAIL ) {
+            if ( i == 0 ) return 0;
+            break;
+        }
+
+        /* -- check the input -- */
+        if ( !is_input_symbol( *r ) ) {
+            RET_ERR2( "rules_add_rule: Bad Input Token %d at rule %d",
+                      *r,
+                      rules -> rule_number ,
+                      rules -> err_p,
+                      7 ) ;
+        }
+
+        /* -- build the trie structure -- */
+        if ( Trie[ u ][ *r ] == FAIL ) {
+            if ( ++rules -> last_node >= MAXNODES ) {
+                RET_ERR( "rules_add_rule: Too many nodes in gamma function",
+                        rules -> err_p,
+                        8 ) ;
+            }
+            Trie[ u ][ *r ] = rules -> last_node ;
+            PAGC_CALLOC_STRUC(Trie[rules -> last_node],NODE,MAXINSYM,rules -> err_p,9) ;
+            for ( a = 0 ;
+                  a < MAXINSYM ;
+                  a++ ) {
+                Trie[ rules -> last_node ][ a ] = FAIL ;
+            }
+            if ( !initialize_link( rules -> err_p ,
+                                   o_l ,
+                                   rules -> last_node ) ) {
+                return 10;
+            }
+        }
+        u = Trie[ u ][ *r ] ;
+    } /* end of for loop */
+
+    keyw -> Input = rule_start ;
+    if ( ( keyw -> Length = i ) == 0 ) {
+        RET_ERR1( "rules_add_rule: Error 0 length rule #%d",
+                  rules -> rule_number,
+                  rules -> err_p,
+                  11 ) ;
+    }
+
+    /* -- read the output tokens into the rule_space -- */
+    r++ ; /* -- move to beginning of the output tokens -- */
+    rule_start = r ; /* -- remember the beginning -- */
+    while ( TRUE ) {
+        i++;
+        if ( i >= num ) {
+            RET_ERR( "rules_add_rule: invalid rule structure.",
+                     rules -> err_p, 6);
+        }
+        *r = rule[i] ;
+        if ( *r == FAIL ) break;
+        if ( !is_output_symbol( *r ) ) {
+            RET_ERR2( "rules_add_rule: Rule File: Non-Token %d in Rule #%d\n",
+                      *r ,
+                      rules -> rule_number,
+                      rules -> err_p,
+                      7 ) ;
+        }
+        r++ ;
+    }
+    keyw -> Output = rule_start ;
+
+    /* -- classify the output -- */
+    i++ ;
+    t = rule[i] ;
+    i++ ;
+    w = rule[i] ; 
+
+    classify_link( rules -> r_p ,
+                   o_l ,
+                   keyw ,
+                   u ,
+                   w ,
+                   t ) ;
+
+    rules -> rule_number++ ;
+    rules -> r = ++r ; ;
+    return 0;
+}
+
+
+int rules_ready(RULES *rules) {
+    SYMB a;
+
+    if (!rules) return 1;       /* error rules obj not initialized */
+    if (!rules->r_p) return 2;  /* RULE_PARAM not allocated */
+    if (rules->ready) return 3; /* rules have already be readied */
+
+    rules -> r_p -> rules_read = rules->rule_number ;
+
+    if ( ++rules -> last_node >= MAXNODES ) {
+        RET_ERR( "rules_ready: Too many nodes in gamma function" ,
+                 rules -> err_p, 4) ;
+    }
+
+    /* -- change the EPSILON node transitions in preparation for Gamma -- */
+    for ( a = 0 ;
+          a < MAXINSYM ;
+          a++ ) {
+       if ( rules -> Trie[ EPSILON ][ a ] == FAIL ) {
+          rules -> Trie[ EPSILON ][ a ] = EPSILON ;
+       }
+    }
+
+    /* -- create the global Gamma function matrix -- */
+    if ( ( rules -> r_p -> gamma_matrix =
+            precompute_gamma_function( rules -> err_p,
+                                       rules -> Trie ,
+                                       rules -> r_p -> output_link ,
+                                       rules -> last_node ) ) == NULL ) {
+       return 5 ;
+    }
+
+    /* -- no longer need the Trie -- */
+    PAGC_DESTROY_2D_ARRAY(rules -> Trie,NODE,rules -> last_node) ;
+    rules -> Trie = NULL ;
+
+    rules -> r_p -> num_nodes = rules -> last_node ;
+
+/*
+    if ( glo_p -> log_init ) {
+       CLIENT_ERR( err_p ) ;
+       LOG_MESS2( "create_rules: Rules installed with %d nodes and %d rules",
+                  rules -> last_node ,
+                  rules->rule_number ,
+                  err_p ) ;
+    }
+*/
+
+    rules -> ready = 1 ;
+
+    return 0;
+}
+
+void rules_free(RULES *rules) {
+
+    if (!rules) return;
+    if (rules->r_p) destroy_rules(rules->r_p);
+    free(rules);
+    rules = NULL;
+}
+
+#else
+
+/*--------------------------------------------------------------------------- 
+gamma.c (create_rules)
+called by standard.l (init_stand_process)
+calls util.c (open_aux_file)
+calls gamma.c (initialize_link, is_input_symbol, is_output_symbol,
+classify_link,precompute_gamma_function) 
+----------------------------------------------------------------------------*/
+RULE_PARAM *create_rules( const char *rule_name ,
+                          PAGC_GLOBAL *glo_p ) {
+   /* -- returns size of Gamma Function Matrix -- */
+   SYMB a , 
+        t ;
+   NODE u ;
+   int i , 
+       w ;
+   int is_eof = FALSE ;
+   int rule_number = 0 ;
+   int last_node = EPSILON ;
+   FILE *rule_file ;
+   SYMB *rule_start ,
+        *rule_end ,
+        *r ;
+   KW *keyw , *k_s ;
+   KW ***o_l ; 
+   NODE **Trie ; 
+   SYMB *r_s ;
+   RULE_PARAM *r_p ; 
+   ERR_PARAM *err_p ;
+
+   err_p = glo_p -> process_errors ;
+
+   PAGC_ALLOC_STRUC(r_p,RULE_PARAM,err_p,NULL) ; 
+
+   /* -- initialize the statistics record -- */
+   r_p -> collect_statistics = FALSE ;
+   r_p -> total_best_keys = 0 ;
+   r_p -> total_key_hits = 0 ;
+
+
+   /* -- open the rule file, if possible -- */
+   if ( ( rule_file = open_aux_file( glo_p ,
+                                     rule_name ) ) == NULL ) {
+      return NULL ;
+   }
+   /* -- rule file has the format of i i ... i -1 o o ... o -1 t f -- */
+
+
+   /* -- storage for input and output records -- */
+   PAGC_CALLOC_STRUC(r_s,SYMB,RULESPACESIZE,err_p,NULL); 
+
+   /* -- storage for temporary trie for rules -- */
+   PAGC_CALLOC_STRUC(Trie,NODE *,MAXNODES,err_p,NULL); 
+
+   /* -- initialize the first( EPSILON ) node of the trie -- */
+   PAGC_CALLOC_STRUC(Trie[EPSILON],NODE,MAXINSYM,err_p,NULL); 
+
+   for ( a = 0 ; 
+         a < MAXINSYM ; 
+         a++ ) {
+      Trie[ EPSILON ][ a ] = FAIL ;
+   }
+
+   /* -- storage for global output_link -- */
+   PAGC_CALLOC_STRUC(o_l,KW **,MAXNODES,err_p,NULL); 
+   PAGC_CALLOC_STRUC(k_s,KW,MAXRULES,err_p,NULL); 
+
+   rule_end = r_s + RULESPACESIZE ; 
+   if ( !initialize_link( err_p ,
+                          o_l , 
+                          EPSILON ) ) {
+      return NULL ;
+   }
+   for ( r = r_s ; 
+         !feof( rule_file ) ; 
+         r++, rule_number++ ) {
+      if ( rule_number >= MAXRULES ) {
+         CLIENT_ERR( err_p ) ;
+         RET_ERR( "create_rules: Too many rules in file",
+                  err_p,
+                  NULL) ; 
+      }
+      keyw = k_s + rule_number ; 
+      MEM_ERR(keyw,err_p,NULL);
+      /* -- get input record -- */
+
+      u = EPSILON ;
+      rule_start = r ; /* -- save rule start for inclusion in record -- */
+      if ( rule_start > rule_end ) {
+         RET_ERR( "create_rules: Too many rules for allocated memory",
+                  err_p,
+                  NULL ) ; 
+      }
+      for ( i = 0 ; 
+            ; 
+            i++, r++  ) {
+
+         /* -- read the first integer -- */
+         fscanf( rule_file, 
+                 "%d", 
+                 r ) ;
+         /* -- a fail at the beginning of a field indicates end of record
+            unless it's at the beginning of the record, in which case
+            it's the end of file -- */
+         if ( *r == FAIL ) {
+            if ( i == 0 ) {
+               is_eof = TRUE ;
+            }
+            break ;
+         }
+         /* -- check the input -- */
+         if ( !is_input_symbol( *r ) ) {
+            CLIENT_ERR( err_p ) ;
+            RET_ERR2( "create_rules: Rule file: Bad Input Token %d at rule %d", 
+                      *r, 
+                      rule_number , 
+                      err_p, 
+                      NULL ) ;
+         }
+
+         /* -- build the trie structure -- */
+         if ( Trie[ u ][ *r ] == FAIL ) {
+            if ( ++last_node >= MAXNODES ) { 
+               RET_ERR( "create_rules: Too many nodes in gamma function",
+                        err_p,
+                        NULL ) ; 
+            }
+            Trie[ u ][ *r ] = last_node ;
+            PAGC_CALLOC_STRUC(Trie[last_node],NODE,MAXINSYM,err_p,NULL) ;
+            for ( a = 0 ; 
+                  a < MAXINSYM ; 
+                  a++ ) {
+               Trie[ last_node ][ a ] = FAIL ;
+            }        
+            if ( !initialize_link( err_p ,
+                                   o_l , 
+                                   last_node ) ) {
+               return NULL ;
+            }
+         }
+         u = Trie[ u ][ *r ] ;
+      }
+      if ( is_eof )
+         break ;
+      keyw -> Input = rule_start ;
+      if ( ( keyw -> Length = i ) == 0 ) {
+         CLIENT_ERR( err_p ) ;
+         RET_ERR1( "create_rules: Error Rule File: 0 length rule #%d",
+                   rule_number,
+                   err_p,
+                   NULL ) ;
+      }
+
+      /* -- read the output tokens into the rule_space -- */
+      r++ ; /* -- move to beginning of the output tokens -- */
+      rule_start = r ; /* -- remember the beginning -- */
+      while ( TRUE ) {
+         fscanf( rule_file, 
+                 "%d", 
+                 r ) ;
+         if ( *r == FAIL )
+            break ;
+         if ( !is_output_symbol( *r ) ) {
+            RET_ERR2( "create_rules: Rule File: Non-Token %d in Rule #%d\n", 
+                      *r , 
+                      rule_number,
+                      err_p,
+                      NULL ) ;
+         }
+         r++ ;
+      }
+      keyw -> Output = rule_start ;
+
+      /* -- classify the output -- */
+      fscanf( rule_file , 
+              "%d" , 
+              &t ) ;
+      fscanf( rule_file , 
+              "%d" , 
+              &w ) ;
+
+      classify_link( r_p ,
+                     o_l , 
+                     keyw , 
+                     u , 
+                     w , 
+                     t ) ;
+   } /* -- end of file read -- */
+
+
+   r_p -> rule_space = r_s ;
+   r_p -> key_space = k_s ;
+   r_p -> output_link = o_l ;
+   r_p -> rules_read = rule_number ;
+
+   fclose( rule_file ) ;
+
+
+   if ( ++last_node >= MAXNODES ) { 
+      RET_ERR( "create_rules: Too many nodes in gamma function" ,
+               err_p,
+               NULL) ; 
+   }
+   /* -- change the EPSILON node transitions in preparation for Gamma -- */
+   for ( a = 0 ; 
+         a < MAXINSYM ; 
+         a++ ) {
+      if ( Trie[ EPSILON ][ a ] == FAIL ) {
+         Trie[ EPSILON ][ a ] = EPSILON ;
+      }
+   }
+
+   /* -- create the global Gamma function matrix -- */
+   if ( ( r_p -> gamma_matrix = precompute_gamma_function( err_p, 
+                                                           Trie , 
+                                                           o_l , 
+                                                           last_node ) ) == NULL ) {
+      return NULL ;
+   }
+
+   /* -- no longer need the Trie -- */
+   PAGC_DESTROY_2D_ARRAY(Trie,NODE,last_node) ; 
+
+
+   r_p -> num_nodes = last_node ; 
+
+   if ( glo_p -> log_init ) {
+      CLIENT_ERR( err_p ) ;
+      LOG_MESS2( "create_rules: Rules installed with %d nodes and %d rules",
+                 last_node ,
+                 rule_number ,
+                 err_p ) ;
+   }
+
+   return r_p ; 
+}
+
+#endif
+
+/*--------------------------------------------------------------------------- 
+gamma.c (destroy_rules)
+----------------------------------------------------------------------------*/
+void destroy_rules( RULE_PARAM * r_p ) { 
+   if ( r_p != NULL ) {
+      DBG("destroy_rules 1");
+      FREE_AND_NULL( r_p -> rule_space ) ;
+      DBG("destroy_rules 2");
+      FREE_AND_NULL( r_p -> key_space ) ;
+      DBG("destroy_rules 3");
+      PAGC_DESTROY_2D_ARRAY(r_p->output_link,KW*,r_p->num_nodes) ;
+      DBG("destroy_rules 4");
+      PAGC_DESTROY_2D_ARRAY(r_p->gamma_matrix,NODE,r_p->num_nodes) ;
+      DBG(" destroy_rules 5");
+      FREE_AND_NULL( r_p ) ;
+   }
+}
+
+/* ========================= Output Links ========================= */
+
+/*--------------------------------------------------------------------------- 
+gamma.c (initalize_link)
+called by gamma.c (create_rules)
+----------------------------------------------------------------------------*/
+static int initialize_link( ERR_PARAM *err_p ,
+                            KW ***o_l , 
+                            NODE u ) {
+   int cl ;
+
+   /* -- classification by clause type -- */
+
+   PAGC_CALLOC_STRUC(o_l[u],KW *,MAX_CL,err_p,FALSE); 
+   for ( cl = 0 ; 
+         cl < MAX_CL ; 
+         cl++ ) {
+
+      o_l[ u ][ cl ] = NULL ; 
+   }
+   return TRUE ;
+}
+
+/*--------------------------------------------------------------------------- 
+gamma.c (classify_link)
+called by gamma.c (create_rules)
+----------------------------------------------------------------------------*/
+static void classify_link( RULE_PARAM *r_p ,
+                           KW ***o_l , /* -- 2006-11-02 : arg -- */
+                           KW *k ,
+                           NODE u ,
+                           SYMB w ,
+                           SYMB c ) {
+
+   /* -- classification by clause type -- */
+   KW * last_key , 
+      * penult ;
+
+   k -> hits = 0 ;
+   k -> best = 0 ;
+   k -> Type = c ;
+   k -> Weight = w ;
+   last_key = o_l[ u ][ c ] ; /* -- 2006-11-02 : arg -- */
+   if ( last_key == NULL ) {
+      o_l[ u ][ c ] = k ; /* -- 2006-11-02 : arg -- */
+
+   } else {
+      /* -- if the same input symbols are used... -- */
+      while ( ( penult = last_key -> OutputNext ) != NULL )
+          last_key = penult ;
+      last_key -> OutputNext = k ;
+   }
+   /* -- initialize in anticipation of failure extensions -- */
+   k -> OutputNext = NULL ;
+
+}
+
+/*--------------------------------------------------------------------------- 
+gamma.c (add_failure_linkage)
+called by gamma.c (precompute_gamma_function)
+----------------------------------------------------------------------------*/
+static void add_failure_linkage( KW ***o_l ,
+                                 NODE x ,
+                                 NODE u ) {
+   /* -- called by precompute_gamma_function
+      -- x is the node in the failure function of the node u
+      -- classification by clause type -- */
+   KW *k ,
+      *fk ;
+   int cl ;
+
+   for ( cl = 0 ; 
+         cl < MAX_CL ; 
+         cl++ ) {
+      /* -- append the failure keys for each class to the end of the
+         appropriate chain -- */ 
+      fk = o_l[ x ][ cl ] ; 
+      k = o_l[ u ][ cl ] ; 
+      if ( k == NULL ) {
+         o_l[ u ][ cl ] = fk ; 
+      } else {
+         /* -- since the chain will be already null-terminated, we only find
+            the end of the chain if fk is non-null -- */
+         if ( fk != NULL ) {
+            /* -- append to the end of the list and make sure that the longer
+               lengths go first - this is probably redundant. -- */
+            while ( k -> OutputNext != NULL ) {
+               k = k -> OutputNext ;
+            }
+            k -> OutputNext = fk ;
+         }
+      }
+   }
+}
+
+/*--------------------------------------------------------------------------- 
+gamma.c (precompute_gamma_function)
+called by gamma.c (create_rules)
+calls gamma.c (add_failure_linkage)
+----------------------------------------------------------------------------*/
+static NODE **precompute_gamma_function( ERR_PARAM *err_p ,
+                                         NODE **Trie , 
+                                         KW ***o_l , 
+                                         NODE n ) {
+   NODE u , 
+        ua , 
+        x ;
+   SYMB a ;
+   int i , 
+       j ;
+   NODE **Gamma ;
+   NODE *Failure ,
+        *Queue ;
+
+   /* -- Storage for Failure Function -- */
+   PAGC_CALLOC_STRUC(Failure,NODE,n,err_p,NULL) ;
+   /* -- Storage for Breadth First Search Queue -- */
+   PAGC_CALLOC_STRUC(Queue,NODE,n,err_p,NULL) ;
+
+   PAGC_CALLOC_2D_ARRAY(Gamma,NODE,n,MAXINSYM,err_p,NULL) ; 
+
+   u = EPSILON ;
+   i = 0 ;
+   for ( a = 0 ;
+         a < MAXINSYM ; 
+         a++ ) {
+      x = Trie[ EPSILON ][ a ] ;
+      Gamma[ EPSILON ][ a ] = x ;
+      Failure[ x ] = EPSILON ;
+      /* -- add to Queue for breadth-first search -- */
+      if ( x != EPSILON ) {
+         Queue[ i++ ] = x ;
+      }
+   }
+   Queue[ i ] = FAIL ; /* -- terminate the list of nodes to process -- */
+
+   for ( j = 0 ; 
+         Queue[ j ] != FAIL ; 
+         j++ ) {
+      u = Queue[ j ] ;
+      /* -- get non-Fail transitions from Trie onto queue -- */
+      for ( a = 0 ; 
+            a < MAXINSYM ;
+            a++ ) {
+         if ( ( x = Trie[ u ][ a ] ) != FAIL ) {
+           Queue[ i++ ] = x ;
+         }
+      }
+      Queue[ i ] = FAIL ; /* -- mark end of list -- */
+      x = Failure[ u ] ;
+      add_failure_linkage( o_l , 
+                           x , 
+                           u ) ;
+      for ( a = 0 ; 
+            a < MAXINSYM ; 
+            a ++ ) {
+         ua = Trie[ u ][ a ] ;
+         if ( ua != FAIL ) {
+            Gamma[ u ][ a ] = ua ;
+            Failure[ ua ] = Gamma[ x ][ a ] ;
+         } else {
+            Gamma[ u ][ a ] = Gamma[ x ][ a ] ;
+         }
+      }
+   }
+   FREE_AND_NULL( Failure ) ;
+   FREE_AND_NULL( Queue ) ;
+   return Gamma ; 
+}
+
+
+
+static const char *rule_type_names[] = {
+   "MACRO" , "MICRO" , "ARC" , "CIVIC" , "EXTRA"
+} ;
+
+/* =========================================
+gamma.c (output_rule_statistics)
+uses macro OPEN_ALLOCATED_NAME
+stdio.h (printf,fprintf,fflush,fclose)
+===========================================*/
+#ifdef BUILD_API
+int output_rule_statistics( RULE_PARAM *r_p, ERR_PARAM *err_p ) {
+#else
+int output_rule_statistics( RULE_PARAM *r_p , 
+                            ERR_PARAM *err_p ,
+                            char *name ,
+                            DS_Handle _file_sys_p ) {
+#endif
+   int i ,
+       found_count ,
+       n ;
+   SYMB *OL ;
+   char *sts_name = NULL ;
+   FILE *sts_file = NULL ;
+   KW * k ; 
+   KW * k_s ; 
+   double hit_frequency ,
+          best_frequency ;
+
+   if ( !r_p -> collect_statistics ) {
+      printf( "Statistics were not collected\n" ) ;
+      return FALSE ;
+   }      
+
+#ifndef BUILD_API
+   if ( name != NULL && name[ 0 ] != SENTINEL ) {
+      OPEN_ALLOCATED_NAME(sts_name,"sts",sts_file,name,"wb+",_file_sys_p,err_p,FALSE) ;
+   } 
+#endif
+
+   /* -- cycle through the keys -- */
+   n = r_p -> rules_read ; 
+   k_s = r_p -> key_space ; 
+   for ( i = 0 , found_count = 0 ;
+         i < n ;
+         i++ ) {
+      k = k_s + i ; 
+      if ( k -> hits == 0 ) {
+         continue ;
+      }
+ 
+      found_count++ ;
+      if ( sts_file == NULL ) {
+         printf( "\nRule %d is of type %d (%s)\n: " ,  
+                 i ,
+                 k -> Type ,
+                 rule_type_names[ k -> Type ] ) ;
+         printf( "Input : " ) ;
+      } else {
+         fprintf( sts_file ,
+                  "\nRule %d is of type %d (%s)\n: " ,  
+                  i ,
+                  k -> Type ,
+                  rule_type_names[ k -> Type ]  ) ;
+         fprintf( sts_file ,
+                  "Input : " ) ;
+      }
+      for ( OL = k -> Input ;
+            *OL != FAIL ;
+            OL++ ) {
+         if ( sts_file == NULL ) {
+             printf( "|%d (%s)|" ,
+                     *OL ,
+                     in_symb_name( *OL ) ) ;
+         } else {
+             fprintf( sts_file ,
+                      "|%d (%s)|" ,
+                      *OL ,
+                      in_symb_name( *OL ) ) ;
+         }
+      }
+      if ( sts_file == NULL ) {
+         printf( "\nOutput: " ) ;
+
+      } else {
+         fprintf( sts_file ,
+                  "\nOutput: " ) ;
+      }
+      /* -- output the output symbols -- */
+      for ( OL = k -> Output ;
+            *OL != FAIL ;
+            OL++ ) {
+         if ( sts_file == NULL ) {
+            printf( "|%d (%s)|" ,
+                    *OL ,
+                    out_symb_name( *OL ) ) ;
+         } else {
+            fprintf( sts_file ,
+                     "|%d (%s)|" ,
+                     *OL ,
+                     out_symb_name( *OL ) ) ;
+         }
+      }
+      if ( sts_file == NULL ) {
+         printf ( "\nrank %d ( %f): hits %d out of %d\n" ,
+                  k -> Weight ,
+                  load_value[ k -> Weight ] ,
+                  k->hits, 
+                  r_p -> total_key_hits ) ;
+      } else {
+         hit_frequency = ( ( double ) k -> hits ) / ( ( double ) r_p -> total_key_hits ) ;
+         best_frequency = ( ( double )  k -> best ) / ( ( double ) r_p -> total_best_keys ) ;
+         fprintf( sts_file ,
+                  "\nrank %d ( %f): hit frequency: %f, best frequency: %f" ,
+                  k -> Weight ,
+                  load_value[ k -> Weight ] ,
+                  hit_frequency ,
+                  best_frequency ) ;
+         fprintf ( sts_file ,
+                   "\n%d hits out of %d, best %d out of %d\n" ,
+                   k->hits, r_p -> total_key_hits, k-> best, r_p -> total_best_keys ) ;
+      }
+      k -> hits = 0 ;
+      k -> best = 0 ;
+   }
+   if ( sts_file == NULL ) {
+      printf( "Found %d rules hit\n" , found_count ) ;
+   } else {
+      fprintf( sts_file ,
+               "Found %d rules hit\n" , 
+               found_count ) ;
+   }          
+   /* -- start over -- */
+   r_p -> total_key_hits = 0 ;
+   r_p -> total_best_keys = 0 ;
+   if ( sts_file != NULL ) {
+      fflush( sts_file ) ;
+      fclose( sts_file ) ;
+      FREE_AND_NULL( sts_name ) ; 
+   } else {
+      fflush( stdout ) ;
+   }
+   return TRUE ;
+}
+
diff --git a/extensions/address_standardizer/gamma.h b/extensions/address_standardizer/gamma.h
new file mode 100644
index 0000000..28f6cb9
--- /dev/null
+++ b/extensions/address_standardizer/gamma.h
@@ -0,0 +1,3 @@
+#define MAXRULES 4500
+#define MAXNODES 5000
+#define RULESPACESIZE 60000
diff --git a/extensions/address_standardizer/hash.c b/extensions/address_standardizer/hash.c
new file mode 100644
index 0000000..ba11a43
--- /dev/null
+++ b/extensions/address_standardizer/hash.c
@@ -0,0 +1,191 @@
+
+//
+// hash.c
+//
+// Copyright (c) 2012 TJ Holowaychuk <tj at vision-media.ca>
+//
+
+#include "hash.h"
+
+/*
+ * Set hash `key` to `val`.
+ */
+
+inline void
+hash_set(hash_t *self, char *key, void *val) {
+  int ret;
+  khiter_t k = kh_put(ptr, self, key, &ret);
+  kh_value(self, k) = val;
+}
+
+/*
+ * Get hash `key`, or NULL.
+ */
+
+inline void *
+hash_get(hash_t *self, char *key) {
+  khiter_t k = kh_get(ptr, self, key);
+  return k == kh_end(self) ? NULL : kh_value(self, k);
+}
+
+/*
+ * Check if hash `key` exists.
+ */
+
+inline int
+hash_has(hash_t *self, char *key) {
+  khiter_t k = kh_get(ptr, self, key);
+  return kh_exist(self, k);
+}
+
+/*
+ * Remove hash `key`.
+ */
+
+void
+hash_del(hash_t *self, char *key) {
+  khiter_t k = kh_get(ptr, self, key);
+  kh_del(ptr, self, k);
+}
+
+// tests
+
+#ifdef TEST_HASH
+
+#include <stdio.h>
+#include <assert.h>
+#include <string.h>
+
+void
+test_hash_set() {
+  hash_t *hash = hash_new();
+  assert(0 == hash_size(hash));
+
+  hash_set(hash, "name", "tobi");
+  hash_set(hash, "species", "ferret");
+  assert(2 == hash_size(hash));
+
+  assert(0 == strcmp("tobi", hash_get(hash, "name")));
+  assert(0 == strcmp("ferret", hash_get(hash, "species")));
+}
+
+void
+test_hash_get() {
+  hash_t *hash = hash_new();
+  hash_set(hash, "foo", "bar");
+  assert(0 == strcmp("bar", hash_get(hash, "foo")));
+  assert(NULL == hash_get(hash, "bar"));
+}
+
+void
+test_hash_has() {
+  hash_t *hash = hash_new();
+  hash_set(hash, "foo", "bar");
+  assert(1 == hash_has(hash, "foo"));
+  assert(0 == hash_has(hash, "bar"));
+}
+
+void
+test_hash_size() {
+  hash_t *hash = hash_new();
+  assert(0 == hash_size(hash));
+  hash_set(hash, "foo", "bar");
+  assert(1 == hash_size(hash));
+  hash_set(hash, "bar", "baz");
+  assert(2 == hash_size(hash));
+}
+
+void
+test_hash_del() {
+  hash_t *hash = hash_new();
+  hash_set(hash, "foo", "bar");
+  assert(1 == hash_has(hash, "foo"));
+  assert(0 == hash_has(hash, "bar"));
+  hash_del(hash, "foo");
+  hash_del(hash, "bar");
+  assert(0 == hash_has(hash, "foo"));
+}
+
+void
+test_hash_clear() {
+  hash_t *hash = hash_new();
+  hash_set(hash, "foo", "bar");
+  hash_set(hash, "bar", "baz");
+  hash_set(hash, "raz", "jaz");
+  assert(3 == hash_size(hash));
+  hash_clear(hash);
+  assert(0 == hash_size(hash));
+}
+
+void
+test_hash_each() {
+  hash_t *hash = hash_new();
+  hash_set(hash, "name", "tj");
+  hash_set(hash, "age", "25");
+
+  const char *keys[2];
+  void *vals[2];
+  int n = 0;
+
+  hash_each(hash, {
+    keys[n] = key;
+    vals[n] = val;
+    n++;
+  });
+
+  assert(0 == strcmp("age", keys[0]) || 0 == strcmp("name", keys[0]));
+  assert(0 == strcmp("age", keys[1]) || 0 == strcmp("name", keys[1]));
+  assert(0 == strcmp("25", vals[0]) || 0 == strcmp("tj", vals[0]));
+  assert(0 == strcmp("25", vals[1]) || 0 == strcmp("tj", vals[1]));
+}
+
+void
+test_hash_each_key() {
+  hash_t *hash = hash_new();
+  hash_set(hash, "name", "tj");
+  hash_set(hash, "age", "25");
+
+  const char *keys[2];
+  int n = 0;
+
+  hash_each_key(hash, {
+    keys[n++] = key;
+  });
+
+  assert(0 == strcmp("age", keys[0]) || 0 == strcmp("name", keys[0]));
+  assert(0 == strcmp("age", keys[1]) || 0 == strcmp("name", keys[1]));
+}
+
+void
+test_hash_each_val() {
+  hash_t *hash = hash_new();
+  hash_set(hash, "name", "tj");
+  hash_set(hash, "age", "25");
+
+  void *vals[2];
+  int n = 0;
+
+  hash_each_val(hash, {
+    vals[n++] = val;
+  });
+
+  assert(0 == strcmp("25", vals[0]) || 0 == strcmp("tj", vals[0]));
+  assert(0 == strcmp("25", vals[1]) || 0 == strcmp("tj", vals[1]));
+}
+
+int
+main(){
+  test_hash_set();
+  test_hash_get();
+  test_hash_has();
+  test_hash_del();
+  test_hash_size();
+  test_hash_clear();
+  test_hash_each();
+  test_hash_each_key();
+  test_hash_each_val();
+  printf("\n  \e[32m\u2713 \e[90mok\e[0m\n\n");
+  return 0;
+}
+
+#endif
\ No newline at end of file
diff --git a/extensions/address_standardizer/hash.h b/extensions/address_standardizer/hash.h
new file mode 100644
index 0000000..1067a03
--- /dev/null
+++ b/extensions/address_standardizer/hash.h
@@ -0,0 +1,107 @@
+
+//
+// hash.h
+//
+// Copyright (c) 2012 TJ Holowaychuk <tj at vision-media.ca>
+//
+
+#ifndef HASH
+#define HASH
+
+//#include <postgres.h>
+#include "khash.h"
+
+// pointer hash
+
+KHASH_MAP_INIT_STR(ptr, void *);
+
+/*
+ * Hash type.
+ */
+
+typedef khash_t(ptr) hash_t;
+
+/*
+ * Allocate a new hash.
+ */
+
+#define hash_new() kh_init(ptr)
+
+/*
+ * Destroy the hash.
+ */
+
+#define hash_free(self) kh_destroy(ptr, self)
+
+/*
+ * Hash size.
+ */
+
+#define hash_size kh_size
+
+/*
+ * Remove all pairs in the hash.
+ */
+
+#define hash_clear(self) kh_clear(ptr, self)
+
+/*
+ * Iterate hash keys and ptrs, populating
+ * `key` and `val`.
+ */
+
+#define hash_each(self, block) { \
+   const char *key; \
+   void *val; \
+    for (khiter_t k = kh_begin(self); k < kh_end(self); ++k) { \
+      if (!kh_exist(self, k)) continue; \
+      key = kh_key(self, k); \
+      val = kh_value(self, k); \
+      block; \
+    } \
+  }
+
+/*
+ * Iterate hash keys, populating `key`.
+ */
+
+#define hash_each_key(self, block) { \
+    const char *key; \
+    for (khiter_t k = kh_begin(self); k < kh_end(self); ++k) { \
+      if (!kh_exist(self, k)) continue; \
+      key = kh_key(self, k); \
+      block; \
+    } \
+  }
+
+/*
+ * Iterate hash ptrs, populating `val`.
+ */
+
+#define hash_each_val(self, block) { \
+    void *val; \
+    for (khiter_t k = kh_begin(self); k < kh_end(self); ++k) { \
+      if (!kh_exist(self, k)) continue; \
+      val = kh_value(self, k); \
+      block; \
+    } \
+  }
+
+// protos
+
+void
+hash_set(hash_t *self, char *key, void *val);
+
+void *
+hash_get(hash_t *self, char *key);
+
+int
+hash_has(hash_t *self, char *key);
+
+void
+hash_del(hash_t *self, char *key);
+
+void
+hash_clear(hash_t *self);
+
+#endif /* HASH */
diff --git a/extensions/address_standardizer/khash.h b/extensions/address_standardizer/khash.h
new file mode 100644
index 0000000..105666a
--- /dev/null
+++ b/extensions/address_standardizer/khash.h
@@ -0,0 +1,317 @@
+/* The MIT License
+
+   Copyright (c) 2008, by Attractive Chaos <attractivechaos at aol.co.uk>
+
+   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.
+*/
+
+/*
+  An example:
+
+#include "khash.h"
+KHASH_MAP_INIT_INT(32, char)
+int main() {
+	int ret, is_missing;
+	khiter_t k;
+	khash_t(32) *h = kh_init(32);
+	k = kh_put(32, h, 5, &ret);
+	if (!ret) kh_del(32, h, k);
+	kh_value(h, k) = 10;
+	k = kh_get(32, h, 10);
+	is_missing = (k == kh_end(h));
+	k = kh_get(32, h, 5);
+	kh_del(32, h, k);
+	for (k = kh_begin(h); k != kh_end(h); ++k)
+		if (kh_exist(h, k)) kh_value(h, k) = 1;
+	kh_destroy(32, h);
+	return 0;
+}
+*/
+
+/*
+  2008-09-19 (0.2.3):
+
+	* Corrected the example
+	* Improved interfaces
+
+  2008-09-11 (0.2.2):
+
+	* Improved speed a little in kh_put()
+
+  2008-09-10 (0.2.1):
+
+	* Added kh_clear()
+	* Fixed a compiling error
+
+  2008-09-02 (0.2.0):
+
+	* Changed to token concatenation which increases flexibility.
+
+  2008-08-31 (0.1.2):
+
+	* Fixed a bug in kh_get(), which has not been tested previously.
+
+  2008-08-31 (0.1.1):
+
+	* Added destructor
+*/
+
+
+#ifndef __AC_KHASH_H
+#define __AC_KHASH_H
+
+#define AC_VERSION_KHASH_H "0.2.2"
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef uint32_t khint_t;
+typedef khint_t khiter_t;
+
+#define __ac_HASH_PRIME_SIZE 32
+static const uint32_t __ac_prime_list[__ac_HASH_PRIME_SIZE] =
+{
+  0ul,          3ul,          11ul,         23ul,         53ul,
+  97ul,         193ul,        389ul,        769ul,        1543ul,
+  3079ul,       6151ul,       12289ul,      24593ul,      49157ul,
+  98317ul,      196613ul,     393241ul,     786433ul,     1572869ul,
+  3145739ul,    6291469ul,    12582917ul,   25165843ul,   50331653ul,
+  100663319ul,  201326611ul,  402653189ul,  805306457ul,  1610612741ul,
+  3221225473ul, 4294967291ul
+};
+
+#define __ac_isempty(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&2)
+#define __ac_isdel(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&1)
+#define __ac_iseither(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&3)
+#define __ac_set_isdel_false(flag, i) (flag[i>>4]&=~(1ul<<((i&0xfU)<<1)))
+#define __ac_set_isempty_false(flag, i) (flag[i>>4]&=~(2ul<<((i&0xfU)<<1)))
+#define __ac_set_isboth_false(flag, i) (flag[i>>4]&=~(3ul<<((i&0xfU)<<1)))
+#define __ac_set_isdel_true(flag, i) (flag[i>>4]|=1ul<<((i&0xfU)<<1))
+
+static const double __ac_HASH_UPPER = 0.77;
+
+#define KHASH_INIT(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \
+	typedef struct {													\
+		khint_t n_buckets, size, n_occupied, upper_bound;				\
+		uint32_t *flags;												\
+		khkey_t *keys;													\
+		khval_t *vals;													\
+	} kh_##name##_t;													\
+	static inline kh_##name##_t *kh_init_##name() {						\
+		return (kh_##name##_t*)calloc(1,sizeof(kh_##name##_t));		\
+	}																	\
+	static inline void kh_destroy_##name(kh_##name##_t *h)				\
+	{																	\
+		if (h) {														\
+			free(h->keys);                                              \
+            free(h->flags);								                \
+			free(h->vals);												\
+			/*free(h);*/													\
+		}																\
+	}																	\
+	static inline void kh_clear_##name(kh_##name##_t *h)				\
+	{																	\
+		if (h && h->flags) { \
+			memset(h->flags, 0xaa, ((h->n_buckets>>4) + 1) * sizeof(uint32_t)); \
+			h->size = h->n_occupied = 0;								\
+		}																\
+	}																	\
+	static inline khint_t kh_get_##name(kh_##name##_t *h, khkey_t key)	\
+	{																	\
+		if (h->n_buckets) {												\
+			khint_t inc, k, i, last;									\
+			k = __hash_func(key); i = k % h->n_buckets;					\
+			inc = 1 + k % (h->n_buckets - 1); last = i;					\
+			while (!__ac_isempty(h->flags, i) && (__ac_isdel(h->flags, i) || !__hash_equal(h->keys[i], key))) { \
+				if (i + inc >= h->n_buckets) i = i + inc - h->n_buckets; \
+				else i += inc;											\
+				if (i == last) return h->n_buckets;						\
+			}															\
+			return __ac_iseither(h->flags, i)? h->n_buckets : i;			\
+		} else return 0;												\
+	}																	\
+	static inline void kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets) \
+	{																	\
+		uint32_t *new_flags = 0;										\
+		khint_t j = 1;													\
+		{																\
+			khint_t t = __ac_HASH_PRIME_SIZE - 1;						\
+			while (__ac_prime_list[t] > new_n_buckets) --t;				\
+			new_n_buckets = __ac_prime_list[t+1];						\
+			if (h->size >= (khint_t)(new_n_buckets * __ac_HASH_UPPER + 0.5)) j = 0;	\
+			else {														\
+				new_flags = (uint32_t*)malloc(((new_n_buckets>>4) + 1) * sizeof(uint32_t));	\
+				memset(new_flags, 0xaa, ((new_n_buckets>>4) + 1) * sizeof(uint32_t)); \
+				if (h->n_buckets < new_n_buckets) {						\
+					h->keys = (khkey_t*)realloc(h->keys, new_n_buckets * sizeof(khkey_t)); \
+					if (kh_is_map)										\
+						h->vals = (khval_t*)realloc(h->vals, new_n_buckets * sizeof(khval_t)); \
+				}														\
+			}															\
+		}																\
+		if (j) {														\
+			for (j = 0; j != h->n_buckets; ++j) {						\
+				if (__ac_iseither(h->flags, j) == 0) {					\
+					khkey_t key = h->keys[j];							\
+					khval_t val;										\
+					if (kh_is_map) val = h->vals[j];					\
+					__ac_set_isdel_true(h->flags, j);					\
+					while (1) {											\
+						khint_t inc, k, i;								\
+						k = __hash_func(key);							\
+						i = k % new_n_buckets;							\
+						inc = 1 + k % (new_n_buckets - 1);				\
+						while (!__ac_isempty(new_flags, i)) {			\
+							if (i + inc >= new_n_buckets) i = i + inc - new_n_buckets; \
+							else i += inc;								\
+						}												\
+						__ac_set_isempty_false(new_flags, i);			\
+						if (i < h->n_buckets && __ac_iseither(h->flags, i) == 0) { \
+							{ khkey_t tmp = h->keys[i]; h->keys[i] = key; key = tmp; } \
+							if (kh_is_map) { khval_t tmp = h->vals[i]; h->vals[i] = val; val = tmp; } \
+							__ac_set_isdel_true(h->flags, i);			\
+						} else {										\
+							h->keys[i] = key;							\
+							if (kh_is_map) h->vals[i] = val;			\
+							break;										\
+						}												\
+					}													\
+				}														\
+			}															\
+			if (h->n_buckets > new_n_buckets) {							\
+				h->keys = (khkey_t*)realloc(h->keys, new_n_buckets * sizeof(khkey_t)); \
+				if (kh_is_map)											\
+					h->vals = (khval_t*)realloc(h->vals, new_n_buckets * sizeof(khval_t)); \
+			}															\
+			free(h->flags);												\
+			h->flags = new_flags;										\
+			h->n_buckets = new_n_buckets;								\
+			h->n_occupied = h->size;									\
+			h->upper_bound = (khint_t)(h->n_buckets * __ac_HASH_UPPER + 0.5); \
+		}																\
+	}																	\
+	static inline khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret) \
+	{																	\
+		khint_t x;														\
+		if (h->n_occupied >= h->upper_bound) {							\
+			if (h->n_buckets > (h->size<<1)) kh_resize_##name(h, h->n_buckets - 1); \
+			else kh_resize_##name(h, h->n_buckets + 1);					\
+		}																\
+		{																\
+			khint_t inc, k, i, site, last;								\
+			x = site = h->n_buckets; k = __hash_func(key); i = k % h->n_buckets; \
+			if (__ac_isempty(h->flags, i)) x = i;						\
+			else {														\
+				inc = 1 + k % (h->n_buckets - 1); last = i;				\
+				while (!__ac_isempty(h->flags, i) && (__ac_isdel(h->flags, i) || !__hash_equal(h->keys[i], key))) { \
+					if (__ac_isdel(h->flags, i)) site = i;				\
+					if (i + inc >= h->n_buckets) i = i + inc - h->n_buckets; \
+					else i += inc;										\
+					if (i == last) { x = site; break; }					\
+				}														\
+				if (x == h->n_buckets) {								\
+					if (__ac_isempty(h->flags, i) && site != h->n_buckets) x = site; \
+					else x = i;											\
+				}														\
+			}															\
+		}																\
+		if (__ac_isempty(h->flags, x)) {								\
+			h->keys[x] = key;											\
+			__ac_set_isboth_false(h->flags, x);							\
+			++h->size; ++h->n_occupied;									\
+			*ret = 1;													\
+		} else if (__ac_isdel(h->flags, x)) {							\
+			h->keys[x] = key;											\
+			__ac_set_isboth_false(h->flags, x);							\
+			++h->size;													\
+			*ret = 2;													\
+		} else *ret = 0;												\
+		return x;														\
+	}																	\
+	static inline void kh_del_##name(kh_##name##_t *h, khint_t x)		\
+	{																	\
+		if (x != h->n_buckets && !__ac_iseither(h->flags, x)) {			\
+			__ac_set_isdel_true(h->flags, x);							\
+			--h->size;													\
+		}																\
+	}
+
+/* --- BEGIN OF HASH FUNCTIONS --- */
+
+#define kh_int_hash_func(key) (uint32_t)(key)
+#define kh_int_hash_equal(a, b) (a == b)
+#define kh_int64_hash_func(key) (uint32_t)((key)>>33^(key)^(key)<<11)
+#define kh_int64_hash_equal(a, b) (a == b)
+static inline khint_t __ac_X31_hash_string(const char *s)
+{
+	khint_t h = *s;
+	if (h) for (++s ; *s; ++s) h = (h << 5) - h + *s;
+	return h;
+}
+#define kh_str_hash_func(key) __ac_X31_hash_string(key)
+#define kh_str_hash_equal(a, b) (strcmp(a, b) == 0)
+
+/* --- END OF HASH FUNCTIONS --- */
+
+/* Other necessary macros... */
+
+#define khash_t(name) kh_##name##_t
+
+#define kh_init(name) kh_init_##name()
+#define kh_destroy(name, h) kh_destroy_##name(h)
+#define kh_clear(name, h) kh_clear_##name(h)
+#define kh_resize(name, h, s) kh_resize_##name(h, s)
+#define kh_put(name, h, k, r) kh_put_##name(h, k, r)
+#define kh_get(name, h, k) kh_get_##name(h, k)
+#define kh_del(name, h, k) kh_del_##name(h, k)
+
+#define kh_exist(h, x) (!__ac_iseither((h)->flags, (x)))
+#define kh_key(h, x) ((h)->keys[x])
+#define kh_val(h, x) ((h)->vals[x])
+#define kh_value(h, x) ((h)->vals[x])
+#define kh_begin(h) (khint_t)(0)
+#define kh_end(h) ((h)->n_buckets)
+#define kh_size(h) ((h)->size)
+#define kh_n_buckets(h) ((h)->n_buckets)
+
+/* More conenient interfaces */
+
+#define KHASH_SET_INIT_INT(name)										\
+	KHASH_INIT(name, uint32_t, char, 0, kh_int_hash_func, kh_int_hash_equal)
+
+#define KHASH_MAP_INIT_INT(name, khval_t)								\
+	KHASH_INIT(name, uint32_t, khval_t, 1, kh_int_hash_func, kh_int_hash_equal)
+
+#define KHASH_SET_INIT_INT64(name)										\
+	KHASH_INIT(name, uint64_t, char, 0, kh_int64_hash_func, kh_int64_hash_equal)
+
+#define KHASH_MAP_INIT_INT64(name, khval_t)								\
+	KHASH_INIT(name, uint64_t, khval_t, 1, kh_int64_hash_func, kh_int64_hash_equal)
+
+typedef const char *kh_cstr_t;
+#define KHASH_SET_INIT_STR(name)										\
+	KHASH_INIT(name, kh_cstr_t, char, 0, kh_str_hash_func, kh_str_hash_equal)
+
+#define KHASH_MAP_INIT_STR(name, khval_t)								\
+	KHASH_INIT(name, kh_cstr_t, khval_t, 1, kh_str_hash_func, kh_str_hash_equal)
+
+#endif /* __AC_KHASH_H */
diff --git a/extensions/address_standardizer/lexicon.c b/extensions/address_standardizer/lexicon.c
new file mode 100644
index 0000000..75d5b52
--- /dev/null
+++ b/extensions/address_standardizer/lexicon.c
@@ -0,0 +1,529 @@
+/* -- lexicon.c 
+
+This file reads the lexicon definitions into a chained
+hash table and handles the lookups of words in the hash table,
+returning definitions in the form of an input symbol and a
+standardized text.
+
+Prototype 7H08 (This file was written by Walter Sinclair).
+
+This file is part of pagc.
+
+Copyright (c) 2008 Walter Bruce Sinclair
+
+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.
+
+*/
+/* For pagc-0.4.2 : last revised 2012-05-23 */
+
+#undef DEBUG
+//#define DEBUG
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stddef.h>
+#include <ctype.h>
+#include "pagc_api.h"
+
+/* -- Hash table size should be a prime number -- */
+/* 5581, 5953, 6337, 6733, 7561, 7993, 8893, 10333, 10837, 11353, 12421, 12973, 13537, 15913, 18481  */
+#define LEXICON_HTABSIZE 7561
+
+#ifdef BUILD_API
+#include "pagc_std_api.h"
+#endif
+
+/* -- local prototypes -- */
+static unsigned calc_hash( char * ) ;
+static ENTRY **create_hash_table( ERR_PARAM * ) ; 
+static int add_dict_entry( ERR_PARAM *, ENTRY ** , char * , int , SYMB , char * ) ;
+
+#ifndef BUILD_API
+static char *convert_field( char * , char * ) ;
+static int read_lexicon( ERR_PARAM *, ENTRY ** , FILE * ) ;
+#endif
+
+LEXICON *lex_init( ERR_PARAM *err_p ) ;
+static int append_new_def( ERR_PARAM *, ENTRY * , SYMB , char * , int ) ; 
+static unsigned elf_hash( char * ) ;
+void print_lexicon( ENTRY ** hash_table ) ;
+
+#ifdef BUILD_API
+
+/*
+typedef struct LEXICON_s {
+    ENTRY **hash_table;
+    ERR_PARAM *err_p;
+} LEXICON;
+
+*/
+
+LEXICON *lex_init( ERR_PARAM *err_p )
+{
+    LEXICON *lex;
+
+    PAGC_CALLOC_STRUC(lex,LEXICON,1,err_p,NULL);
+
+    lex->hash_table = create_hash_table( err_p );
+    if (lex->hash_table == NULL) {
+        lex_free(lex);
+        return NULL;
+    }
+
+    lex->err_p = err_p;
+
+    return lex;
+}
+
+int lex_add_entry(LEXICON *lex, int seq, char *word, char *stdword, SYMB token)
+{
+    return add_dict_entry( lex->err_p, lex->hash_table, word, seq-1, token, stdword);
+}
+
+void lex_free(LEXICON *lex)
+{
+    if (lex == NULL) return;
+    destroy_lexicon(lex->hash_table);
+    free(lex);
+    lex = NULL;
+}
+
+
+
+#else
+
+/* ---------------------------------------------------------------------
+lexicon.c (create_lexicon) -
+read the lexicon file into memory, chaining off a hash table
+returns a pointer to the hash table, or NULL if error.
+called by standard.l (init_stand_process)
+calls util.c (open_aux_file) lexicon.c (read_lexicon, create_hash_table)
+uses macro LOG_MESS
+stdio.h (fclose)
+-----------------------------------------------------------------------*/
+ENTRY **create_lexicon( PAGC_GLOBAL *glo_p ,
+                        const char *lex_name ,
+                        const char *gaz_name ) {
+   /* -- called by init_stand_process to read in the Lexicon and set up the
+      definitions in memory for hash table access -- */
+   FILE *gaz_file , 
+        *dict_file ;
+   ENTRY **hash_table ; 
+
+   if ( (hash_table = create_hash_table( glo_p -> process_errors ) ) == NULL ) {
+       return NULL ;
+   }
+   /* 2009-08-13 : support multiple lexicons */
+   if ( gaz_name != NULL ) {
+      if ( ( gaz_file = open_aux_file( glo_p ,
+                                       gaz_name ) ) == NULL )
+         return NULL ; 
+      if ( !read_lexicon( glo_p -> process_errors ,
+                          hash_table , 
+                          gaz_file ) ) {
+          fclose( gaz_file ) ;
+          return NULL ;
+      }
+      fclose( gaz_file ) ;
+   }
+
+   if ( ( dict_file = open_aux_file( glo_p ,
+                                     lex_name ) ) == NULL )
+      return NULL  ;
+   if ( !read_lexicon( glo_p -> process_errors ,
+                       hash_table , 
+                       dict_file ) ) {
+       fclose( dict_file ) ;
+       return NULL ;
+   }
+   fclose( dict_file ) ;
+   return hash_table ;
+}
+
+/* ----------------------------------------------------
+lexicon.c (read_lexicon) -
+called by lexicon.c (create_lexicon) for each file
+calls convert_field, add_dict_entry  
+returns FALSE if error encountered
+stdio.h (fgets,feof,sscanf)
+uses macro BLANK_STRING
+-------------------------------------------------------*/
+static int read_lexicon( ERR_PARAM *err_p ,
+                         ENTRY **hash_table , 
+                         FILE *CFile ) {
+   char record_buffer[ MAXSTRLEN ] ;
+   char lookup_str[ MAXTEXT ] ;
+   char num_str[ MAXTEXT ] ;
+   int cur_token ;
+   int num_def ;
+   char standard_str[ MAXTEXT ] ;
+   char *next_str ;
+
+   while ( !feof( CFile ) ) {
+      /* -- read in each line of the csv file and add to hash table -- */
+      BLANK_STRING(record_buffer) ;
+      fgets( record_buffer , 
+             MAXSTRLEN , 
+             CFile ) ;
+
+#ifdef SEW_NOT_SURE_IF_WE_NEED_THIS
+      /* -- check for and skip over blank lines -- */
+      if (strspn(record_buffer, " \t\r\n") == strlen(record_buffer))
+         continue;
+#endif
+
+      /* -- comma-separated values are handled only as well as necessary
+         in the present context -- */
+      if ( ( next_str =
+                convert_field( num_str ,
+                               record_buffer ) ) == NULL ) {
+         break ;
+      }
+      sscanf( num_str ,
+              "%d" ,
+              &num_def ) ;
+      next_str = convert_field( lookup_str ,
+                                next_str ) ;
+      next_str = convert_field( num_str ,
+                                next_str ) ;
+      sscanf( num_str ,
+              "%d" ,
+              &cur_token ) ;
+      next_str = convert_field( standard_str ,
+                                next_str ) ;
+      if ( add_dict_entry( err_p ,
+                           hash_table , 
+                           lookup_str ,
+                           ( num_def - 1 ) ,
+                           cur_token ,
+                           standard_str ) == ERR_FAIL ) {
+         return FALSE ;
+      }
+   }
+   return TRUE ;
+}
+
+/* ----------------------------------------------------
+lexicon.c (convert_field)
+called by lexicon.c (read_lexicon)
+ctype.h (isspace)
+uses macro BLANK_STRING
+-------------------------------------------------------*/
+static char *convert_field( char *buf ,
+                            char *inp ) {
+   char c ;
+   char *d  = buf;
+   char *s = inp ;
+
+   BLANK_STRING(d) ;
+   /* -- space at the beginning of a line will stop the read -- */
+   if ( isspace( *s ) )
+      return NULL ;
+   while ( ( c = *s++ ) != SENTINEL ) {
+      if ( c == '\"' ||
+           c == '\r' ) 
+         continue ; /* -- ignore quotes and carriage returns -- */
+      /* -- zero terminate field and record delimiters -- */
+      if ( c == '\n' ||
+           c == ',' ) {
+          BLANK_STRING(d) ;
+          return s ;
+      }
+      *d++ = c ; /* -- copy it -- */
+   }
+   return NULL ;
+}
+
+#endif
+
+/* ----------------------------------------------------
+lexicon.c (destroy_lexicon)
+called by standard.l (close_stand_process)
+calls lexicon.c (destroy_def_list)
+uses macro FREE_AND_NULL
+-------------------------------------------------------*/
+void destroy_lexicon(ENTRY ** hash_table)
+{
+	/* -- called by Clean-Up - */
+	unsigned __i__ ;
+	ENTRY *__E__,*__F__ ;
+	if (hash_table == NULL)
+	{
+		return ;
+	}
+	for (__i__ = 0 ;__i__ < LEXICON_HTABSIZE ;__i__++ ) 
+	{
+		for (__E__ = hash_table[__i__] ;__E__ != NULL ;__E__ = __F__)
+		{
+			destroy_def_list(__E__->DefList) ;
+			__F__ = __E__->Next ;
+			FREE_AND_NULL(__E__->Lookup) ;
+			FREE_AND_NULL(__E__) ;
+		}
+	}
+    DBG("destroy_lexicon: i=%d", __i__);
+	/* <revision date='2012-05-23'>free hash table</revision> */
+	FREE_AND_NULL(hash_table);
+    DBG("leaving destroy_lexicon");
+}
+
+
+/* ----------------------------------------------------------
+lexicon.c (destroy_def_list)
+called by destroy_lexicon and tokenize.c (remove_default_defs)
+uses macro FREE_AND_NULL
+------------------------------------------------------------*/
+void destroy_def_list( DEF *start_def ) {
+   DEF *cur_def ;
+   DEF *next_def = NULL ;
+
+
+
+   for ( cur_def = start_def ;
+         cur_def != NULL ;
+         cur_def = next_def ) {
+      next_def = cur_def -> Next ;
+      /* -- Default definitions have no associated text -- */
+      if ( cur_def -> Protect == 0 ) {
+         FREE_AND_NULL( cur_def -> Standard ) ;
+      }
+      FREE_AND_NULL( cur_def ) ;
+   }
+}
+
+/* ----------------------------------------------------
+lexicon.c (find_entry)
+called by lexicon.c (add_dict_entry)
+calls lexicon.c (calc_hash)
+string.h (strcmp)
+-------------------------------------------------------*/
+ENTRY *find_entry(ENTRY **hash_table,char *lookup_str) 
+{
+	/* -- called to create a lexeme -- */
+	ENTRY *__E__ ;
+	unsigned __hash_index__ ; /* -- 2006-11-20 : to return hash table pointer -- */
+
+	__hash_index__ = calc_hash(lookup_str) ;
+	for (__E__ = hash_table[__hash_index__] ; __E__ != NULL ; __E__ = __E__->Next)
+	{
+		if (strcmp(lookup_str,__E__->Lookup) == 0)
+		{
+			return __E__ ;
+		}
+	}
+	return __E__ ;
+}
+
+#define US sizeof( unsigned )
+/* ----------------------------------------------------
+lexicon.c (elf_hash)
+called by lexicon.c (calc_hash)
+-------------------------------------------------------*/
+static unsigned elf_hash( char *key_str ) {
+  unsigned h , 
+           g , 
+           c ;
+
+  h = 0 ;
+  while ( ( c = ( unsigned ) *key_str ) != '\0' ) {
+     h = ( h << US ) + c  ;
+     if ( ( g = h & ( ~ ( ( unsigned )( ~0 ) >> US ) ) ) )
+        h ^= g >> ( US * 6 ) ;
+     h &= ~g ;
+     key_str++ ;
+  }
+  return h ;
+}
+
+
+/* ----------------------------------------------------
+lexicon.c (calc_hash)
+called by lexicon.c (find_entry, add_dict_entry)
+calls lexicon.c (elf_hash)
+-------------------------------------------------------*/
+
+static unsigned calc_hash( char *key_str ) {
+  unsigned h ;
+
+  h = elf_hash( key_str ) ;
+  return ( h  % LEXICON_HTABSIZE ) ;
+}
+
+/* ----------------------------------------------------
+lexicon.c (create_hash_table)
+allocate and initialize hash table in memory
+return NULL if error
+called by create_lexicon
+uses macro PAGC_CALLOC_STRUC
+-------------------------------------------------------*/
+static ENTRY **create_hash_table(ERR_PARAM *err_p)
+{
+	unsigned __i__ ;
+	ENTRY **__hash_table__ ;
+	PAGC_CALLOC_STRUC(__hash_table__,ENTRY *,LEXICON_HTABSIZE,err_p,NULL) ;
+	for (__i__ = 0 ;__i__ < LEXICON_HTABSIZE ;__i__++ ) 
+	{
+		__hash_table__[__i__] = NULL ;
+	}
+	return __hash_table__ ;
+}
+
+/* ----------------------------------------------------
+lexicon.c (add_dict_entry)
+called by lexicon.c (read_lexicon)
+calls lexicon.c (calc_hash, create_def, append_new_def)
+uses macro PAGC_ALLOC_STRUC , PAGC_STORE_STR, RET_ERR
+return ERR_FAIL if error
+-------------------------------------------------------*/
+static int add_dict_entry( ERR_PARAM *err_p ,
+                           ENTRY **hash_table , 
+                           char *lookup_str ,
+                           int def_num ,
+                           SYMB t ,
+                           char *standard_str ) {
+   ENTRY *E ;
+
+   E = find_entry( hash_table ,
+                   lookup_str ) ;
+   if ( E == NULL ) {
+      unsigned hash_index ; 
+
+      PAGC_ALLOC_STRUC(E,ENTRY,err_p,ERR_FAIL);
+      /* -- add the Lookup string to the record -- */
+      PAGC_STORE_STR(E->Lookup,lookup_str,err_p,ERR_FAIL) ;
+      /* -- add new entry to beginning of table -- */
+      hash_index = calc_hash( lookup_str ) ; 
+
+      E -> Next = hash_table[ hash_index ] ; /* -- collision chain -- */
+      hash_table[ hash_index ] = E ;
+      if ( ( E -> DefList = create_def( t ,
+                                        standard_str ,
+                                        def_num ,
+                                        FALSE ,
+                                        err_p ) ) == NULL ) {
+          return ERR_FAIL ;
+      }  
+  } else {
+      int err_stat ;
+      if ( E -> DefList == NULL ) {
+         RET_ERR("add_dict_entry: Lexical entry lacks definition" ,
+                 err_p ,
+                 ERR_FAIL ) ;
+      }
+      if ( ( err_stat = append_new_def( err_p ,
+                                        E ,
+                                        t ,
+                                        standard_str ,
+                                        def_num ) ) != TRUE ) {
+         return err_stat ;
+      }
+   }
+   return TRUE ;
+}
+
+/* ----------------------------------------------------
+lexicon.c (append_new_def)
+called by lexicon.c (add_dict_entry)
+calls lexicon.c (create_def)
+returns FALSE if entry is already there
+returns ERR_FAIL on allocation error
+-------------------------------------------------------*/
+static int append_new_def( ERR_PARAM *err_p ,
+                           ENTRY *E ,
+                           SYMB t ,
+                           char *text ,
+                           int def_num ) { 
+
+   DEF *D, 
+       *pd, 
+       *cd ;
+   for ( cd = E -> DefList , pd = NULL ;
+         cd != NULL ;
+         cd = cd -> Next ) {
+      pd = cd ;
+      /* -- avoid duplication except for local entries -- */
+      if ( cd -> Type == t ) {
+         return FALSE ;
+      }
+   }
+   if ( ( D = create_def( t ,
+                          text ,
+                          def_num ,
+                          FALSE ,
+                          err_p ) ) == NULL ) {
+       return ERR_FAIL ;
+   }
+   if ( pd == NULL ) {
+      E -> DefList = D ;
+   } else {
+      D -> Next = pd -> Next ;
+      pd -> Next = D ;
+   }
+   return TRUE ;
+}
+
+/*--------------------------------------------------------------------
+lexicon.c (create_def) 
+called by lexicon.c (append_new_def) tokenize.c (setup_default_defs)
+allocate memory for lexicon entry.
+Pflag is TRUE for default entries 
+returns NULL for allocation error
+uses macro PAGC_ALLOC_STRUC, PAGC_STORE_STR
+-------------------------------------------------------------------- */
+DEF *create_def ( SYMB s ,
+                  char *standard_str ,
+                  int def_num ,
+                  int PFlag ,
+                  ERR_PARAM *err_p ) {
+   /* -- allocate the memory and set up the definition structure with the
+      standard form -- */
+   DEF *cur_def ;
+
+   /* -- initialization-time allocation -- */
+   PAGC_ALLOC_STRUC(cur_def,DEF,err_p,NULL) ;
+   cur_def -> Type = s ;
+   cur_def -> Protect = PFlag ; /* -- False for definitions from lexicon
+                                   true for default definitions -- */
+   if ( !PFlag ) {
+      /* -- initialization-time allocation -- */
+      PAGC_STORE_STR(cur_def->Standard,standard_str,err_p,NULL) ;
+   } else
+      cur_def -> Standard = NULL ;
+   cur_def -> Order = def_num ;
+   cur_def -> Next = NULL ;
+   return cur_def ;
+}
+
+/*--------------------------------------------------------------------
+lexicon.c (print_lexicon)
+not called by useful for debugging. It will print out the lexicon.
+--------------------------------------------------------------------*/
+void print_lexicon( ENTRY ** hash_table )
+{
+    unsigned i;
+    ENTRY *E;
+
+    if (!hash_table) return;
+
+    for (i=0; i< LEXICON_HTABSIZE; i++)
+    {
+        E = hash_table[i];
+        while (E)
+        {
+            DEF *D = E->DefList;
+            printf("'%s'\n", E->Lookup);
+            while (D)
+            {
+                printf("    %d, %d, %d, '%s'\n", D->Order, D->Type, D->Protect, D->Standard);
+                D = D->Next;
+            }
+            E = E->Next;
+        }
+    }
+}
+
diff --git a/extensions/address_standardizer/micro-macro.sql b/extensions/address_standardizer/micro-macro.sql
new file mode 100644
index 0000000..90b8e65
--- /dev/null
+++ b/extensions/address_standardizer/micro-macro.sql
@@ -0,0 +1,110 @@
+drop table if exists addresses cascade;
+create table addresses (
+  id serial not null primary key,
+  micro text,
+  macro text
+);
+
+copy addresses (micro,macro) from stdin;
+1017 LINWOOD AVE APT 12	ST PAUL,MN,55105
+1029 ATLANTIC ST APT 302	ST PAUL,MN,55106
+1032 PORTLAND AVE	ST PAUL,MN,55104
+1093 EDGERTON ST FL 2	ST PAUL,MN,55130
+111 KELLOGG BLVD E APT 3210	ST PAUL,MN,55101
+1113 HAWTHORNE AVE E	ST PAUL,MN,55106
+1120 BARCLAY ST APT 4	ST PAUL,MN,55106
+1137 CHURCHILL ST	ST PAUL,MN,55103
+1140 GALTIER ST	ST PAUL,MN,55117
+1147 MINNEHAHA AVE W	ST PAUL,MN,55104
+1167 BURNQUIST ST	ST PAUL,MN,55106
+1168 SUPORNICK LN APT A	ST PAUL,MN,55106
+1169 RANDOLPH AVE	ST PAUL,MN,55105
+1223 BERKELEY AVE	ST PAUL,MN,55105
+125 MAGNOLIA AVE E	ST PAUL,MN,55117
+1263 RICE ST	ST PAUL,MN,55117
+1305 CONWAY ST	ST PAUL,MN,55106
+1341 CASE AVE	ST PAUL,MN,55106
+1345 CASE AVE	ST PAUL,MN,55106
+1351 CONWAY ST APT 10	ST PAUL,MN,55106
+1363 OSCEOLA AVE	ST PAUL,MN,55105
+1377 MAYNARD DR W APT 168	ST PAUL,MN,55116
+1379 MAYNARD DR W APT 176	ST PAUL,MN,55116
+1379 MAYNARD DR W APT 177	ST PAUL,MN,55116
+1388 BARCLAY ST	ST PAUL,MN,55106
+1390 ARONA ST	ST PAUL,MN,55108
+1435 GRAND AVE APT 2	ST PAUL,MN,55105
+1484 ASHLAND AVE UNIT 101	ST PAUL,MN,55101
+1509 SUMMIT AVE	ST PAUL,MN,55106
+1548 VAN BUREN AVE	ST PAUL,MN,55104
+1561 WHEELOCK LN UNIT 303	ST PAUL,MN,55117
+1621 ASHLAND AVE APT UPPER	ST PAUL,MN,55104
+1636 WOODBRIDGE ST	ST PAUL,MN,55117
+1644 DAYTON AVE APT 3	ST PAUL,MN,55104
+1709 LEONE AVE	ST PAUL,MN,55106
+1743 HIGHLAND PKWY	ST PAUL,MN,55116
+1776 ST CLAIR AVE APT 107	ST PAUL,MN,55105
+1776 ST CLAIR AVE APT 205	ST PAUL,MN,55105
+1821 UNIVERSITY AVE W RM 336	ST PAUL,MN,55104
+1877 GOODRICH AVE APT LOWER	ST PAUL,MN,55105
+1898 LACROSSE AVE	ST PAUL,MN,55119
+1899 BEECHWOOD AVE	ST PAUL,MN,55116
+1915 MARSHALL AVE APT 2	ST PAUL,MN,55104
+1940 NEVADA AVE E	ST PAUL,MN,55119
+1944 NOKOMIS AVE	ST PAUL,MN,55119
+1962 SAUNDERS AVE	ST PAUL,MN,55116
+1968 NEBRASKA AVE E	ST PAUL,MN,55119
+1971 SARGENT AVE	ST PAUL,MN,55105
+204 CONGRESS ST E APT D	ST PAUL,MN,55107
+2085 GRAND AVE APT 203	ST PAUL,MN,55101
+21 BATTLE CREEK PL	ST PAUL,MN,55119
+2174 ELEANOR AVE	ST PAUL,MN,55116
+2224 MAILAND RD	ST PAUL,MN,55119
+2272 BENSON AVE UNIT C	ST PAUL,MN,55116
+2285 BENSON AVE	ST PAUL,MN,55116
+233 CONCORD ST	ST PAUL,MN,55107
+235 MCKNIGHT RD S APT B4	ST PAUL,MN,55119
+2360 BUFORD AVE	ST PAUL,MN,55108
+256 POINT DOUGLAS RD N	ST PAUL,MN,55106
+261 UNIVERSITY AVE E APT 303	ST PAUL,MN,55130
+2706 GANNON RD	ST PAUL,MN,55116
+289 5TH ST E UNIT 309	ST PAUL,MN,55101
+303 WILDER ST N FL 1	ST PAUL,MN,55104
+317 ROBIE ST E	ST PAUL,MN,55107
+333 SMITH AVE N	ST PAUL,MN,55102
+377 HAMLINE AVE S	ST PAUL,MN,55105
+418 MARYLAND AVE W APT 204	ST PAUL,MN,55117
+444 CLINTON AVE	ST PAUL,MN,55107
+444 FRY ST	ST PAUL,MN,55104
+536 THOMAS AVE	ST PAUL,MN,55103
+544 SIMPSON ST	ST PAUL,MN,55104
+56 IRVINE PARK	ST PAUL,MN,55102
+597 BLAIR AVE APT 5	ST PAUL,MN,55103
+602 HUMBOLDT AVE	ST PAUL,MN,55107
+605 CAPITOL BLVD APT B	ST PAUL,MN,55103
+617 ROSE AVE E	ST PAUL,MN,55130
+635 WESTERN AVE N	ST PAUL,MN,55103
+660 5TH ST E APT DOWNST	ST PAUL,MN,55106
+672 UNIVERSITY AVE W	ST PAUL,MN,55104
+675 WHEELOCK PKWY W	ST PAUL,MN,55117
+70 IOWA AVE W	ST PAUL,MN,55117
+711 MARSHALL AVE	ST PAUL,MN,55104
+712 SNELLING AVE N APT 1	ST PAUL,MN,55104
+715 CALIFORNIA AVE E	ST PAUL,MN,55106
+715 MARSHALL AVE	ST PAUL,MN,55104
+735 LINCOLN AVE	ST PAUL,MN,55105
+750 BLAIR AVE	ST PAUL,MN,55104
+754 BLAIR AVE FL 1	ST PAUL,MN,55104
+771 BUTTERNUT AVE	ST PAUL,MN,55102
+812 7TH ST E	ST PAUL,MN,55106
+83 CALIFORNIA AVE W APT 206	ST PAUL,MN,55117
+838 LAFOND AVE	ST PAUL,MN,55104
+852 HOLLY AVE	ST PAUL,MN,55104
+859 OSCEOLA AVE APT 1	ST PAUL,MN,55105
+885 CASE AVE	ST PAUL,MN,55106
+927 WAKEFIELD AVE	ST PAUL,MN,55106
+93 MARIA AVE	ST PAUL,MN,55106
+935 HYACINTH AVE E	ST PAUL,MN,55106
+94 FRONT AVE	ST PAUL,MN,55117
+953 HYACINTH AVE E	ST PAUL,MN,55106
+\.
+
diff --git a/extensions/address_standardizer/mk-city-regex.pl b/extensions/address_standardizer/mk-city-regex.pl
new file mode 100644
index 0000000..97bf311
--- /dev/null
+++ b/extensions/address_standardizer/mk-city-regex.pl
@@ -0,0 +1,50 @@
+#!  /usr/bin/perl
+#!/usr/bin/perl -w
+use strict;
+use Regexp::Assemble;
+
+my @cities = split(/[\r\n]+/, qx(cat usps-st-city-name.txt));
+
+my %st= ();
+for my $x (@cities) {
+    my ($st, $ct) = split(/\t/, $x);
+    push @{$st{$st}}, $ct;
+}
+
+my $re;
+my $ra = Regexp::Assemble->new(flags => "i");
+
+my %re =();
+for my $x (sort keys %st) {
+    $ra->add(@{$st{$x}});
+    $re = $ra->re;
+    $re =~ s/\\/\\\\/g;
+    $re{$x} = $re;
+}
+
+print "#define NUM_STATES " . scalar (keys %re) . "\n\n";
+print "    static const char *states[NUM_STATES] = \n";
+print "        {\"" . join('","', sort keys %re) . "\"};\n\n";
+print "    static const char *stcities[NUM_STATES] = {\n";
+my $cnt = 0;
+my $a = '';
+my $b = '';
+for my $x (sort keys %re) {
+    $re = "(?:\\\\b)($re{$x})\$";
+    print "  ,\n" if $cnt; 
+    print "  /* -- $x -- $x -- $x -- $x -- $x -- $x -- $x -- $x -- $x -- $x -- */\n";
+    while ($re =~ s/^(.{1,65})//) {
+        $a = $1;
+        if ($a =~ s/(\\+)$//) {
+            print "  \"$b$a\"\n";
+            $b = $1;
+        }
+        else {
+            print "  \"$b$a\"\n";
+            $b = '';
+        }
+    }
+    $cnt++;
+}
+print "    };\n";
+
diff --git a/extensions/address_standardizer/mk-sql.pl b/extensions/address_standardizer/mk-sql.pl
new file mode 100644
index 0000000..66c65c1
--- /dev/null
+++ b/extensions/address_standardizer/mk-sql.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/perl -w
+use strict;
+
+sub Usage {
+    print "Usage: mk-sql.pl pgver file-in.sql\n";
+    exit 1;
+}
+
+my $ver = shift @ARGV || Usage();
+my $fin = shift @ARGV || Usage();
+
+my $nver;
+
+if ($ver =~ /^PostgreSQL (\d+)\.(\d+)/) {
+    $nver = $1 * 100 + $2;
+}
+else {
+    die "Failed to parse '$ver' as /^PostgreSQL (\\d+)\\.(\\d+)/\n/\n";
+}
+
+open(IN, $fin) || die "Failed to open file '$fin' : $!\n";
+while (my $x = <IN>) {
+    if ($nver >= 804) {
+        $x =~ s/\$libdir\/lib/\$libdir\//;
+    }
+    if ($nver < 901) {
+        $x =~ s/^\\echo/--\\echo/;
+    }
+    print $x;
+}
+close(IN);
diff --git a/extensions/address_standardizer/mk-st-regexp.pl b/extensions/address_standardizer/mk-st-regexp.pl
new file mode 100644
index 0000000..9a67338
--- /dev/null
+++ b/extensions/address_standardizer/mk-st-regexp.pl
@@ -0,0 +1,734 @@
+#!/usr/bin/perl -w
+use strict;
+use Regexp::Assemble;
+
+# TODO
+#   Add prefix types like:
+#       Ave(nue)? of( the)? names
+#       Ave(nue)? (d'|du|de)(la)?\s?names
+#       Ave(nue|nida)? \w{1,2}
+#       calle names
+#       suffix of( the)? names
+#       route (\d+([a-z]|bus(iness)?)(by(pass))?
+#       business (\d+([a-z]|bus(iness)?)(by(pass))?
+#       (interstate|I-) \d+\s*[nsew]?
+#
+#   Add better number recognizer
+#       dir num dir num dir
+#       dir num letter
+#       num? fraction   123 1/2
+#
+#   Add patterns to recognize intersections
+#       street & street, city, state
+#       
+#
+#  Probably the following were removed as they are PREFIX TYPES
+#  RTE, ROUTE
+#  CALLE
+#
+#  and maybe RUE
+#  RUE can be either: RUE d'la whatever; Charles Rue
+#
+#  Many of the SUFFIX TYPES can be used in a prefix contexted like:
+#  AVENUE of the Americas
+#
+
+
+#my @cities = split(/[\r\n]+/, qx(cat usps-city-names.txt));
+
+# ==============================
+
+
+my @stwords = qw(
+ALLEE
+ALLEY
+ALLY
+ALY
+ANEX
+ANNEX
+ANNX
+ANX
+ARC
+ARCADE
+AV
+AVE
+AVEN
+AVENU
+AVENUE
+AVN
+AVNUE
+BAYOO
+BAYOU
+BCH
+BEACH
+BEND
+BG
+BGS
+BLF
+BLFS
+BLUF
+BLUFF
+BLUFFS
+BLVD
+BND
+BOT
+BOTTM
+BOTTOM
+BOUL
+BOULEVARD
+BOULV
+BR
+BRANCH
+BRDGE
+BRG
+BRIDGE
+BRK
+BRKS
+BRNCH
+BROOK
+BROOKS
+BTM
+BURG
+BURGS
+BYP
+BYPA
+BYPAS
+BYPASS
+BYPS
+BYU
+CAMP
+CANYN
+CANYON
+CAPE
+CAUSEWAY
+CAUSWAY
+CEN
+CENT
+CENTER
+CENTERS
+CENTR
+CENTRE
+CIR
+CIRC
+CIRCL
+CIRCLE
+CIRCLES
+CIRS
+CK
+CLB
+CLF
+CLFS
+CLIFF
+CLIFFS
+CLUB
+CMN
+CMP
+CNTER
+CNTR
+CNYN
+COMMON
+COR
+CORNER
+CORNERS
+CORS
+COURSE
+COURT
+COURTS
+COVE
+COVES
+CP
+CPE
+CR
+CRCL
+CRCLE
+CRECENT
+CREEK
+CRES
+CRESCENT
+CRESENT
+CREST
+CRK
+CROSSING
+CROSSROAD
+CRSCNT
+CRSE
+CRSENT
+CRSNT
+CRSSING
+CRSSNG
+CRST
+CRT
+CSWY
+CT
+CTR
+CTRS
+CTS
+CURV
+CURVE
+CV
+CVS
+CYN
+DALE
+DAM
+DIV
+DIVIDE
+DL
+DM
+DR
+DRIV
+DRIVE
+DRIVES
+DRS
+DRV
+DV
+DVD
+EST
+ESTATE
+ESTATES
+ESTS
+EXP
+EXPR
+EXPRESS
+EXPRESSWAY
+EXPW
+EXPY
+EXT
+EXTENSION
+EXTENSIONS
+EXTN
+EXTNSN
+EXTS
+FALL
+FALLS
+FERRY
+FIELD
+FIELDS
+FLAT
+FLATS
+FLD
+FLDS
+FLS
+FLT
+FLTS
+FORD
+FORDS
+FOREST
+FORESTS
+FORG
+FORGE
+FORGES
+FORK
+FORKS
+FORT
+FRD
+FRDS
+FREEWAY
+FREEWY
+FRG
+FRGS
+FRK
+FRKS
+FRRY
+FRST
+FRT
+FRWAY
+FRWY
+FRY
+FT
+FWY
+GARDEN
+GARDENS
+GARDN
+GATEWAY
+GATEWY
+GATWAY
+GDN
+GDNS
+GLEN
+GLENS
+GLN
+GLNS
+GRDEN
+GRDN
+GRDNS
+GREEN
+GREENS
+GRN
+GRNS
+GROV
+GROVE
+GROVES
+GRV
+GRVS
+GTWAY
+GTWY
+HARB
+HARBOR
+HARBORS
+HARBR
+HAVEN
+HAVN
+HBR
+HBRS
+HEIGHT
+HEIGHTS
+HGTS
+HIGHWAY
+HIGHWY
+HILL
+HILLS
+HIWAY
+HIWY
+HL
+HLLW
+HLS
+HOLLOW
+HOLLOWS
+HOLW
+HOLWS
+HRBOR
+HT
+HTS
+HVN
+HWAY
+HWY
+INLET
+INLT
+IS
+ISLAND
+ISLANDS
+ISLE
+ISLES
+ISLND
+ISLNDS
+ISS
+JCT
+JCTION
+JCTN
+JCTNS
+JCTS
+JUNCTION
+JUNCTIONS
+JUNCTN
+JUNCTON
+KEY
+KEYS
+KNL
+KNLS
+KNOL
+KNOLL
+KNOLLS
+KY
+KYS
+LA
+LAKE
+LAKES
+LAND
+LANDING
+LANE
+LANES
+LCK
+LCKS
+LDG
+LDGE
+LF
+LGT
+LGTS
+LIGHT
+LIGHTS
+LINE
+LK
+LKS
+LN
+LNDG
+LNDNG
+LOAF
+LOCK
+LOCKS
+LODG
+LODGE
+LOOP
+LOOPS
+MALL
+MANOR
+MANORS
+MDW
+MDWS
+MEADOW
+MEADOWS
+MEDOWS
+MEWS
+MILL
+MILLS
+MISSION
+MISSN
+ML
+MLS
+MNR
+MNRS
+MNT
+MNTAIN
+MNTN
+MNTNS
+MOTORWAY
+MOUNT
+MOUNTAIN
+MOUNTAINS
+MOUNTIN
+MSN
+MSSN
+MT
+MTIN
+MTN
+MTNS
+MTWY
+NCK
+NECK
+OPAS
+ORCH
+ORCHARD
+ORCHRD
+OVAL
+OVERPASS
+OVL
+PARK
+PARKS
+PARKWAY
+PARKWAYS
+PARKWY
+PASS
+PASSAGE
+PATH
+PATHS
+PIKE
+PIKES
+PINE
+PINES
+PK
+PKWAY
+PKWY
+PKWYS
+PKY
+PL
+PLACE
+PLAIN
+PLAINES
+PLAINS
+PLAZA
+PLN
+PLNS
+PLZ
+PLZA
+PNE
+PNES
+POINT
+POINTS
+PORT
+PORTS
+PR
+PRAIRIE
+PRARIE
+PRK
+PRR
+PRT
+PRTS
+PSGE
+PT
+PTS
+RAD
+RADIAL
+RADIEL
+RADL
+RAMP
+RANCH
+RANCHES
+RAPID
+RAPIDS
+RD
+RDG
+RDGE
+RDGS
+RDS
+REST
+RIDGE
+RIDGES
+RIV
+RIVER
+RIVR
+RNCH
+RNCHS
+ROAD
+ROADS
+ROW
+RPD
+RPDS
+RST
+RUE
+RUN
+RVR
+SHL
+SHLS
+SHOAL
+SHOALS
+SHOAR
+SHOARS
+SHORE
+SHORES
+SHR
+SHRS
+SKWY
+SKYWAY
+SMT
+SPG
+SPGS
+SPNG
+SPNGS
+SPRING
+SPRINGS
+SPRNG
+SPRNGS
+SPUR
+SPURS
+SQ
+SQR
+SQRE
+SQRS
+SQS
+SQU
+SQUARE
+SQUARES
+ST
+STA
+STATION
+STATN
+STN
+STR
+STRA
+STRAV
+STRAVE
+STRAVEN
+STRAVENUE
+STRAVN
+STREAM
+STREET
+STREETS
+STREME
+STRM
+STRT
+STRVN
+STRVNUE
+STS
+SUMIT
+SUMITT
+SUMMIT
+TER
+TERR
+TERRACE
+THROUGHWAY
+TPK
+TPKE
+TR
+TRACE
+TRACES
+TRACK
+TRACKS
+TRAFFICWAY
+TRAIL
+TRAILS
+TRAK
+TRCE
+TRFY
+TRK
+TRKS
+TRL
+TRLS
+TRNPK
+TRPK
+TRWY
+TUNEL
+TUNL
+TUNLS
+TUNNEL
+TUNNELS
+TUNNL
+TURNPIKE
+TURNPK
+UN
+UNDERPASS
+UNION
+UNIONS
+UNS
+UPAS
+VALLEY
+VALLEYS
+VALLY
+VDCT
+VIA
+VIADCT
+VIADUCT
+VIEW
+VIEWS
+VILL
+VILLAG
+VILLAGE
+VILLAGES
+VILLE
+VILLG
+VILLIAGE
+VIS
+VIST
+VISTA
+VL
+VLG
+VLGS
+VLLY
+VLY
+VLYS
+VST
+VSTA
+VW
+VWS
+WALK
+WALKS
+WALL
+WAY
+WAYS
+WELL
+WELLS
+WL
+WLS
+WY
+XING
+XRD
+);
+# ==============================
+
+my @secwords = qw(
+APARTMENT
+APT
+BASEMENT
+BLDG
+BSMT
+BUILDING
+DEPARTMENT
+DEPT
+FL
+FLOOR
+FRNT
+FRONT
+HANGAR
+HNGR
+LBBY
+LOBBY
+LOT
+LOWER
+LOWR
+OFC
+OFFICE
+PENTHOUSE
+PH
+PIER
+REAR
+RM
+ROOM
+SIDE
+SLIP
+SPACE
+SPC
+STE
+STOP
+SUITE
+TRAILER
+TRLR
+UNIT
+UPPER
+UPPR
+);
+
+my @dirs = qw(
+NORTH N NORD
+SOUTH S SUD
+EAST  E EST
+WEST  W OEST O
+NORTHEAST NE
+NORTHWEST NW
+SOUTHEAST SE
+SOUTHWEST SW
+NORTH-EAST N-E
+NORTH-WEST N-W
+SOUTH-EAST S-E
+SOUTH-WEST S-W
+);
+
+my @saints = (
+"st",
+"st.",
+"ste",
+"ste.",
+"saint",
+);
+
+my $re;
+my $l = Regexp::Assemble->new(flags => "i");
+#$re = $l->set(modifiers=>'i')->list2re(@cities);
+#$re =~ s/\\/\\\\/g;
+#my $cities = $re;
+
+#print "    static const char *cities = \n";
+#while ($re =~ s/^(.{1,75})//) {
+#    print "  \"$1\"\n";
+#}
+#print "  ;\n";
+
+
+$l->add(@stwords);
+$re = $l->re;
+$re =~ s/\\/\\\\/g;
+$re =~ s/\?\^/?-xism/g;
+my $sttype = $re;
+#print "    static const char *sttype = \"$re\";\n\n";
+
+$l->add(@secwords);
+$re = $l->re;
+$re =~ s/\\/\\\\/g;
+$re =~ s/\?\^/?-xism/g;
+my $unittype = $re;
+#print "    static const char *unittype = \"$re\";\n\n";
+
+$l->add(@dirs);
+$re = $l->re;
+$re =~ s/\\/\\\\/g;
+$re =~ s/\?\^/?-xism/g;
+my $dirs = $re;
+#print "    static const char *dirtype = \"$re\";\n\n";
+
+$l->add(@saints);
+$re = $l->re;
+$re =~ s/\\/\\\\/g;
+$re =~ s/\?\^/?-xism/g;
+my $saint = $re;
+#print "    static const char *saints = \"$re\";\n\n";
+
+my $word  = "\\\\w+";
+my $words = "($word(\\\\s$word)*)";
+
+my @reg = ();
+#push @reg, "(?:,\\\\s*)([^,]+)\$";
+#push @reg, "\\\\b($cities)\$";
+push @reg, "(?:\\\\b$sttype\\\\s(?:$dirs\\\\s))($dirs\\\\s$words)\$";
+push @reg, "(?:\\\\b$sttype\\\\s(?:$dirs\\\\s))($dirs\\\\s$saint\\\\s$words)\$";
+push @reg, "(?:\\\\b$sttype\\\\s)($dirs\\\\s$saint\\\\s$words)\$";
+push @reg, "(?:\\\\b$sttype\\\\s)($saint\\\\s$words)\$";
+push @reg, "(?:\\\\b$sttype\\\\s)($dirs\\\\s$words)\$";
+push @reg, "(?:\\\\b$sttype\\\\s)($words)\$";
+push @reg, "(?:\\\\s)($dirs\\\\s$words)\$";
+push @reg, "^(?:\\\\d+\\\\s(?:(?:\\\\w+\\\\s)$sttype))()\$";
+push @reg, "^(?:\\\\d+\\\\s(?:(?:\\\\w+\\\\s)*\\\\w+\\\\s))($word)\$";
+
+my $nn = scalar @reg;
+print "    const int nreg = $nn;\n";
+print "    static const char *t_regx[$nn] = {\n        \"";
+print join("\",\n        \"", @reg);
+print "\"\n    };\n";
+
+
diff --git a/extensions/address_standardizer/pagc_api.h b/extensions/address_standardizer/pagc_api.h
new file mode 100644
index 0000000..8cbef6a
--- /dev/null
+++ b/extensions/address_standardizer/pagc_api.h
@@ -0,0 +1,1260 @@
+/* -- pagc_api.h 
+
+This file is the common header file for PAGC internal routines
+
+Prototype 20H10 (This file was written by Walter Sinclair).
+
+Copyright (c) 2001-2012 Walter Bruce Sinclair
+
+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.
+
+*/
+
+/* For pagc-0.4.2 : last revised 2012-08-31 */
+
+#ifndef PGC_H
+#define PGC_H
+
+#define BUILD_API
+
+#include <postgres.h>
+
+#ifdef DEBUG
+#define DBG(format, arg...)                     \
+    elog(NOTICE, format , ## arg)
+#else
+#define DBG(format, arg...) do { ; } while (0)
+#endif
+
+#include "pagc_tools.h"
+
+#ifndef BUILD_API
+#include "pagc_common.h"
+
+#ifdef MINGW32
+#include <windows.h>
+#endif
+
+#ifdef ENABLE_THREADED
+#ifdef HAVE_PTHREAD
+#include <pthread.h>
+#endif
+#endif
+
+#else
+
+#define SENTINEL '\0'
+#define BLANK_STRING(STR) *STR = SENTINEL
+#define MAXSTRLEN 256
+
+/* -- boolean -- */
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
+#define ERR_FAIL -2
+#define FAIL -1
+#define BOTH 2
+
+typedef int SYMB ;
+typedef double DS_Score_t ;
+typedef void * DS_Handle ;
+
+#endif
+
+#include <math.h>
+#ifndef BUILD_API
+#include "ds.h"
+
+#define THREE_SOURCE_IDS
+
+//#define WITH_ALT_LEFT_RIGHT
+
+/* 2009-07-21 : keep track of version 
+   2010-02-01 : increase to 0.3.0
+   2010-08-20 : increase to 0.4.0 
+   2011-08-14 : increase to 0.4.1 */
+
+#ifdef WITH_ALT_LEFT_RIGHT
+#define CUR_PAGC_VER 41
+#else
+#define CUR_PAGC_VER 40
+#endif
+#endif
+/* -- uncomment to index soundex-zip combo keys
+#define COMBINE_POSTAL_WITH_SOUNDEX
+-- */
+
+
+#define USE_METERS
+#define MAX_ATT_FLDS 4
+#define MAX_REDIRECTS 6
+#define COMMA ','
+#define NEITHER 0
+#define LEFT -1
+#define RIGHT 1
+#define OCCUPANCY_MULTIPLE 16
+#define EXACT_MICRO_MATCH 32
+#define EXACT_MACRO_MATCH 64
+#define MACRO_THRESHOLD_MATCH 128
+#define EPSILON 0
+/* 2009-10-16 : increase size of MAXPHRASE and LANDMARK_ARRAY_WIDTH */
+#define MAXPHRASE 10
+#define LANDMARK_ARRAY_WIDTH 10 + MAXPHRASE
+#define MAXFLDLEN MAXSTRLEN
+#define MAX_REC_SPACE 262144
+#define MAX_SCHEMAS 6 /* 2008-07-28 increased from 3 */
+#define MAX_ERRORS 512
+
+/* -- input symbols -- */
+#define NUMBER 0
+#define WORD 1
+#define TYPE 2
+
+#define ROAD 6
+#define STOPWORD 7
+
+#define DASH 9
+
+#define AMPERS 13
+
+#define ORD 15
+
+#define SINGLE 18
+#define BUILDH 19
+#define MILE 20
+#define DOUBLE 21
+#define DIRECT 22
+#define MIXED 23
+#define BUILDT 24
+#define FRACT 25
+#define PCT 26
+#define PCH 27
+#define QUINT 28
+#define QUAD 29
+#define MAXINSYM QUAD + 1
+
+/* -- output symbols -- */
+#define BLDNG 0
+#define HOUSE 1
+#define PREDIR 2
+#define QUALIF 3
+#define PRETYP 4
+#define STREET 5
+#define SUFTYP 6
+#define SUFDIR 7
+#define RR 8
+#define UNKNWN 9
+#define CITY 10
+#define PROV 11
+#define NATION 12
+#define POSTAL 13
+#define BOXH 14
+#define BOXT 15
+#define UNITH 16
+#define UNITT 17
+#define MAXOUTSYM UNITT + 1
+#define NEEDHEAD BOXH
+
+/* 2009-07-19 : redefinitions in a landmarks context :
+needed to collect from standardization output. */
+#define FEATNAME 0
+#define FEATTYPE 8
+#define FEATAREA 9
+#define FEAT_L 7
+#define FEAT_T 8
+#define FEAT_A 9
+
+/* -- comparison types -- */
+#define NO_COMPARISON 0
+#define CHAR_SINGLE 1
+#define POSTAL_SINGLE 2
+#define NUMBER_SINGLE 3
+#define CHAR_LEFT_RIGHT 4
+#define POSTAL_LEFT_RIGHT 5
+#define POSTAL_SPLIT 6
+#define NUMBER_INTERVAL 7
+#define NUMBER_INTERVAL_LEFT_RIGHT 8
+#define POSTAL_LEFT_RIGHT_SPLIT 9
+#define CHAR_ALT 10 /* 2008-07-30 : for alternate names */
+#ifdef WITH_ALT_LEFT_RIGHT
+#define CHAR_ALT_LEFT_RIGHT 11 /* 2008-07-30 : for alternate names */
+#endif
+
+#define ERR_READ -1
+#define OK_READ 0
+#define GOOD_READ 1
+#define MAX_EDIT_DIST 2
+#define US_FULL_CODE_LEN 10
+#define US_PART_CODE_LEN 5
+#define SXCODELEN 4
+#define DEGREES_TO_RADIANS .0174532925199432958
+#define DOUBLE_PI 6.2831853071795864769
+#define PI 3.14159265358979323846
+#define HALF_PI 1.57079632679489661923
+
+#ifdef USE_METERS
+#define EARTH_RADIUS 6378000.
+#endif
+
+#ifndef BUILD_API
+/* FLAGS : 2009-07-19 : express as hexadecimal */
+
+typedef unsigned int PAGC_FLAG_T ;
+
+#define REVERSE_GEO				0x00000001u /* reserved for future use*/
+/* pagc_common.h : #define STATISTICS 2 */
+/* ds.h : #define HAVE_DBF_POSITION	0x00000004u */
+#define ENABLE_PSEUDO			0x00000008u /* -- allows pseudo edit of reference -- FLPSEUD in schema -- */
+#define ENABLE_CROSS			0x00000010u /* schema : XSTREET with fields */
+#define ENABLE_ALT				0x00000020u /* reserved for future use*/
+#define ENABLE_LAND				0x00000040u /* 2009-07-19 : denote presence of Feature Name field */
+/* pagc_common.h : #define PRINT_PROGRESS 128 */
+#define APPEND					0x00000100u /* -- internal flag for APPEND builds -- */
+/* pagc_common.h :#define ZERO_IS_BLANK 512 */
+#define HAVE_OCCUPANCY			0x00000400u /* schema : OCCUP1 or OCCUP2 with fields */
+/* pagc_common.h :#define LOG_COMPLETE 2048 */
+/* pagc_common.h :#define RNF_PRETYPE_REDIRECT 4096 */
+#define CONCURRENT_PRIVATE		0x00002000u /* schema: FLCONPR -- deprecating */
+#define NO_STOP_ON_EXACT		0x00004000u /* schema: FLNOSEX */
+#define CAN_THREAD				0x00008000u
+/* ds.h #define READ_POINTS_SEQUENTIAL	0x00010000u */
+#define HAVE_OFFICIAL_STREET	0x00020000u /* schema : FLOFFST -- 2008-07-28 : new */
+#define HAVE_SOURCE_ID			0x00040000u /* schema : SOURCEID with field */
+#define HAVE_FEAT_TYPE			0x00080000u /* 2009-07-19 : denote presence of Feature Type field */
+#define HAVE_SUBDISTRICT		0x00100000u /* 2009-07-19 : denote presence of Feature Area field */
+
+#ifdef THREE_SOURCE_IDS
+#define HAVE_SOURCE_ID_B			0x00200000u /* schema : SOURCEID_B with field */
+#define HAVE_SOURCE_ID_C			0x00400000u /* schema : SOURCEID_C with field */
+#endif
+#endif
+/* -- error records -- */
+
+typedef struct err_rec 
+{
+	int is_fatal ; /* -- is this a fatal error ? -- */
+	char content_buf[MAXSTRLEN] ; /* -- storage for message -- */
+} ERR_REC ;
+
+typedef struct err_param 
+{
+	int last_err ;
+	int first_err ;
+	int next_fatal ;
+	ERR_REC err_array[MAX_ERRORS] ;
+	char *error_buf ;
+	FILE *stream ; /* -- stream for log file -- */
+} ERR_PARAM ;
+
+/*===================================================================
+                          STANDARDIZATION
+===================================================================*/
+typedef int NODE ;
+typedef int DEFDEF ;
+
+#define MAXTEXT 31
+
+#define FIRST_LEX_POS 0
+#define RIGHT_COMPRESS STOPWORD
+#define LEFT_COMPRESS WORD
+
+/* -- weight names -- */
+#define LOW 3
+#define LOW_MEDIUM 6
+#define MEDIUM 9
+#define HIGH_MEDIUM  12
+#define HIGH 15
+#define EXCELLENT 16
+#define PERFECT 17
+#define NUMBER_OF_WEIGHTS PERFECT + 1
+
+#define MAXDEF 8
+#define MAX_STZ 6 /* <revision date='2012-06-03'>return to 6</revision> */
+#define MAXMORPHS 64
+#define MAXLEX 64
+
+/* -- options for SendFields -- */
+#define PSEUDO_XML 0
+#define PSEUDO_CSV 1
+#define SCREEN 2
+#define NO_FORMAT 3
+
+/* -- clause/class numbers -- */
+#define MACRO_C 0
+#define MICRO_C 1
+#define ARC_C 2
+#define CIVIC_C 3
+#define EXTRA_C 4
+#define MAX_CL 5
+
+#define EXTRA_STATE 6
+
+/* -- start_states -- */
+#define MICRO_B 0
+#define MICRO_M 1
+#define MACRO   2
+#define PREFIX  3
+#define EXIT  4
+
+/* -- tokens -- 
+   used in tokenize.c -- */
+#define DFRACT 0
+#define DSINGLE 1
+#define DDOUBLE 2
+/* -- changed so not to conflict with Windows def --*/
+#define DWORDT 3
+#define DNUMBER 4
+#define DMIXED 5
+#define DPOSTH 6
+#define DPOSTT 7
+#define DZIPH 8
+#define DZIPT 9
+#define DDIRLET 10
+#define DORD 11
+#define DUNIT 12
+
+/* ================= standardization records ===================*/
+
+/* -- This structure stores a definition for a lexical entry -- */
+typedef struct def  
+{
+	int Order ; /* -- the order in the list -- */
+	SYMB Type ; /* -- the Input symbol -- */
+	int Protect ; 
+	char *Standard ; /* -- The standardization -- */
+	struct def *Next ;
+} DEF ;
+
+/* -- This stores the data for a lexical entry -- */
+typedef struct entry 
+{
+	char *Lookup ; /* -- To match against the input word -- */
+	DEF *DefList ; /* -- list of definitions and outputs for this word -- */
+	struct entry *Next ;
+} ENTRY ;
+
+
+/* -- storage for standardization rules -- */
+typedef struct keyword 
+{
+	SYMB *Input ; /* -- List of input symbols -- */
+	SYMB *Output ; /* -- List of output symbols, 1-1 with input -- */
+	SYMB Type ; /* -- The classification of the rule -- */
+	SYMB Weight ;
+	int Length ; /* -- The number of symbols -- */
+	int hits ; /* -- if collecting statistics -- */
+	int best ; /* -- if collecting statistics -- */
+	struct keyword *OutputNext ;
+} KW ;
+
+
+typedef struct lexeme 
+{
+	int StartMorph ;
+	int EndMorph ;
+	DEF *DefList ;
+	char Text[MAXTEXT] ;
+} LEXEME ;
+
+/* 2006-11-02 */
+typedef struct rule_param 
+{
+	int num_nodes ;
+	int rules_read ;
+	int collect_statistics ;
+	int total_key_hits ;
+	int total_best_keys ;
+	NODE **gamma_matrix;
+	SYMB *rule_space ;
+	KW ***output_link ;
+	KW *key_space ;
+} RULE_PARAM ;
+
+/* -- structure used to assemble composite output -- */
+typedef struct seg 
+{
+	SYMB sub_sym ; /* -- Used in forced standardization -- */
+	int Start ; /* -- the start target position -- */
+	int End ; /* -- the end position -- */
+	int State ; /* -- row number of the tran table, used in clausetree -- */
+	DS_Score_t Value ; /* -- the calculated value of the target segment -- */
+	SYMB *Output ; /* -- the output copied from the rule -- */
+	KW *Key ; /* -- the rule itself, used in clausetree construction -- */
+} SEG ;
+
+/* -- storage structure for standardization candidates -- */
+typedef struct stz 
+{
+    DS_Score_t score ; /* -- standardization score -- */
+    DS_Score_t raw_score ;
+    KW *build_key ; /* -- use to collect statistics -- */
+    DEF *definitions[MAXLEX] ; /* -- lexical or input definitions -- */ 
+    SYMB output[MAXLEX] ; /* -- output tokens -- */
+} STZ ;
+
+/* 2006-11-02 */
+typedef struct stz_param 
+{
+	int stz_list_size ;
+	int last_stz_output ;
+	double stz_list_cutoff ;
+	SEG *segs ;
+	STZ **stz_array ;
+} STZ_PARAM ;
+
+/* 2006-11-14 */
+struct morph 
+{
+	int Term ;
+	int TextLen ;
+	char Text[MAXTEXT] ;
+	DEFDEF Sym ;
+} ;
+
+typedef struct stand_param 
+{
+	int cur_morph ;
+	int base_morph ;
+	int LexNum ;
+	int analyze_complete ;
+	int *have_ref_att ; /* build.c (transform_rows) */
+	RULE_PARAM *rules ;
+	/*-- <remarks> 2009-08-13 : support multiple lexicons </remarks> --*/
+	ENTRY **lexicon ;
+	ENTRY **address_lexicon ;
+	ENTRY **poi_lexicon ;
+	/*-- <revision date='2012-06-01'> Add gaz_lexicon to be triggered on __start_state__ = MACRO </revision> --*/
+	ENTRY **gaz_lexicon ;
+	/*-- <revision date='2012-07-22'> Keep track of start_state </revision> --*/
+	int start_state ; 
+	ERR_PARAM *errors ;
+	STZ_PARAM *stz_info ; /* structure created by analyze.c (create_segments) */
+	DEF **default_def ;
+	char **standard_fields ;
+	struct morph morph_array[MAXMORPHS] ;
+	SYMB best_output[MAXLEX] ;
+	SYMB target[MAXLEX] ; /* -- target for Aho-Corasick -- */
+	LEXEME lex_vector[MAXLEX] ;
+	int cur_sym_sel[MAXLEX] ; /* -- currently selected symbol 
+                                  for each lexeme -- */
+	int orig_str_pos[MAXLEX] ; /* -- compression buffer -- */
+	int def_cnt[MAXLEX] ; /* -- number of symbols for each lexeme -- */
+	NODE registry[MAXLEX + 1] ; /* -- Aho-Corasick : offsets to output 
+                                         links -- */
+	DEF *best_defs[MAXLEX] ;
+	DEF *def_array[MAXLEX][MAXDEF] ; /* -- the definitions for each 
+                                               lexeme -- */
+	SYMB comp_lex_sym[MAXLEX][MAXDEF] ; /* -- symbols for each lexeme -- */
+} STAND_PARAM ;
+
+
+/* ================ NON-STANDARDIZATION RECORDS ================== */
+
+#ifndef BUILD_API
+
+/* -- The attribute structure is used to coordinate the schema in the
+   reference data with the postal attributes identified by the standardizer
+   and which may be used in the user's addresses. -- */
+typedef struct attribute 
+{
+	SYMB symbol ; 
+	int comp_type ; /* -- The comparision type used in matching -- */
+	int check_dir ; /* -- TRUE if a non-blank reference field is read -- */
+	int num_redirects ;
+	DS_Score_t m_weight ; /* -- matching weights -- */
+	DS_Score_t u_weight ;
+	DS_Field_t ru_fld_idx[MAX_ATT_FLDS] ; /* -- field index for unstandardized
+                                     ref table -- */
+	DS_Field_t rs_fld_idx[MAX_ATT_FLDS] ; /* -- field index for standardized
+                                     ref table -- */
+	DS_Field_t rs_off_fld_idx[MAX_ATT_FLDS] ; /* field index for official names in
+									standardized ref table -- 2009-11-21 */
+	SYMB redirects[MAX_REDIRECTS] ; /* -- reference fields to which this
+                                        attribute should be redirected -- */
+} ATTRIBUTE ;
+
+/* -------------------------------------------------------------- 
+This structure is used to store the information on each reference
+record with which we attempt to match the user record 
+---------------------------------------------------------------- */
+typedef struct candidate 
+{
+	int score_card ; /*2008-12-15*/
+	DS_Entity_t record ; /* -- reference database record number -- */
+	int stz ; /* -- The standardization being used -- */
+	int edit_distance ; /* -- for use in matching -- */
+	DS_Score_t score ; /* -- score calculated in ReadScoreStandardized -- */
+	PAGC_POINT position ;
+	int block_face ;
+	char data[BETA_BUF_SIZE] ; /* -- data for display to user - added in
+                   betaref.c (ReadScoreStandardized) -- */
+} CANDIDATE ; /* -- structure initialized in Index/CreateCandidate --*/
+
+typedef struct int_candidate 
+{
+	DS_Entity_t record_A ;
+	DS_Entity_t record_B ;
+	int edit_distance_A ;
+	int edit_distance_B ;
+	DS_Score_t score ;
+	PAGC_POINT position ;
+	int stz_A ;
+	int stz_B ;
+	char cur_cand_data_A[BETA_BUF_SIZE] ;
+	char cur_cand_data_B[BETA_BUF_SIZE] ;
+} INT_CANDIDATE ;
+#endif
+
+/* ================== global record =================== */
+
+typedef struct pagc_global 
+{
+	int log_init ;
+	RULE_PARAM *rules ;
+	DEF **default_def ;
+	/*-- <revision date='2009-08-13'> Support multiple lexicons </revision> --*/
+	ENTRY **addr_lexicon ; /*-- 2006-11-20 --*/
+	ENTRY **poi_lexicon ;
+	/*-- <revision date='2012-07-16'> gaz_lexicon </revision> --*/
+	ENTRY **gaz_lexicon ; 
+	DS_Handle _file_sys ;
+	ERR_PARAM *process_errors ;
+} PAGC_GLOBAL ;
+
+#ifndef BUILD_API
+/* <revision date='2012-04-26'>Divert approx functions to TRIE_ARRAY -- moved approx definitions to approx.c </revision>*/
+typedef void * RECOGNIZER_HANDLE ;
+
+/* ============================ main schema record ========================== */
+
+typedef struct schema 
+{
+	DS_Score_t match_weight[MAXOUTSYM] ; /* match weight for each token employed in the schema */
+	DS_Score_t unmatch_weight[MAXOUTSYM] ; /* the non-match weight for each */
+	DS_Score_t max_score ; /* the maximum score for address matching */
+	DS_Score_t score_range ; /* used in normalizing scores for addresses */
+	DS_Score_t starting_cutoff ; /* initial cutoff for candidate elimination */
+	DS_Score_t user_cut ; /* client-supplied cutoff */
+	/*-- intersection scoring --*/
+	DS_Score_t max_x_score ; /* the maximum for intersection matching */
+	DS_Score_t max_m_weight ; /* used in intersection scoring for the cross street */
+	DS_Score_t max_u_weight ; /* used in intersection scoring for the cross street */
+	DS_Score_t x_m_weight ; /* used in intersection scoring for the cross street */
+	DS_Score_t x_u_weight ; /* used in intersection scoring for the cross street */
+	DS_Score_t x_range ; /* used for normalizing intersection scores */
+	/*-- <revision date='2009-08-20'> Landmark scoring. </revision> --*/
+	DS_Score_t max_p_score ; /* the maximum for landmark matching */
+	DS_Score_t land_words_m_weight ; /* for landmark fields */
+	DS_Score_t land_words_u_weight ; /* for landmark fields */
+	DS_Score_t land_type_m_weight ; /* for landmark fields */
+	DS_Score_t land_type_u_weight ; /* for landmark fields */
+	DS_Score_t land_area_m_weight ; /* for landmark fields */
+	DS_Score_t land_area_u_weight ; /* for landmark fields */
+	DS_Score_t score_p_range ; /* landmark score normalization */
+	DS_Metric_t lat_units ; /* size in meters of a degree of latitude */
+	DS_Metric_t lon_units ; /* size in meters of a degree of longitude */
+	DS_Coord_t MBR_max_X ; /* Minimal Bounding Rectangle maximum point X coordinate */
+	DS_Coord_t MBR_max_Y ; /* MBR maximum point Y coordinate */
+	DS_Coord_t MBR_min_X ; /* Minimum point X */
+	DS_Coord_t MBR_min_Y ; /* Minimum point Y */
+	int pagc_ver ; /*-- <revision date='2009-07-21'> Tracking version. </revision> --*/
+	DS_Dim_t shp_typ ; /* Shape type in shapefile - point, arc */ 
+	int both_sides ; /* do arcs have both sides, ie both left and right? -- used for SITE_INTERPOLATE */
+	DS_Field_t from_cross_col ; /* the from cross street in the reference shapeset (for intersections) */
+	DS_Field_t to_cross_col ; /* the to cross street for intersections */
+	DS_Field_t alt_street_col ;  /* alternate name column in reference shapeset - for future use */
+	/*-- landmark columns --*/
+	int total_landmark_words ; /*-- <revision date='2009-07-26'/> --*/
+	DS_Field_t landmark_alpha ;    /*-- <revision date='2009-07-19-21'> landmark columns </revision> --*/
+	DS_Field_t landmark_beta ;
+	DS_Field_t landmark_beta_official ;
+	DS_Field_t landmark_type_alpha ; /*-- <revision date='2009-07-19'> new </revision> --*/
+	DS_Field_t landmark_type_beta ;
+	DS_Field_t subdistrict_alpha ; /*-- <revision date='2009-07-19'> new </revision> --*/
+	DS_Field_t subdistrict_beta ;
+	DS_Field_t occ_field1 ; /* -- if HAVE_OCCUPANCY -- */
+	DS_Field_t occ_field2 ; /* -- if HAVE_OCCUPANCY -- */
+	/*-- <revision date='2010-09-27'> Eliminate X_field and Y_field for HAVE_DBF_POSITION 
+		and use following: </revision> --*/
+	DS_Geo_t typ_geo_cols ;
+	DS_Field_t num_geo_cols ;
+	DS_Field_t geo_cols[3] ;
+	/*-- DS_Field_t X_field ; DS_Field_t Y_field ; --*/
+	DS_Field_t num_official_fields ; /*  if HAVE_OFFICIAL_STREET, state the number of fields */
+	DS_Field_t source_id_alpha ; /* if HAVE_SOURCE_ID, dbf field 2008-17-17 */
+	DS_Field_t source_id_beta ; /* if HAVE_SOURCE_ID, standard field 2008-17-17 */
+#ifdef THREE_SOURCE_IDS
+	DS_Field_t source_id_alpha_b ; /* if HAVE_SOURCE_ID_B, dbf field 2008-17-17 */
+	DS_Field_t source_id_beta_b ; /* if HAVE_SOURCE_ID_B, standard field 2008-17-17 */
+	DS_Field_t source_id_alpha_c ; /* if HAVE_SOURCE_ID_C, dbf field 2008-17-17 */
+	DS_Field_t source_id_beta_c ; /* if HAVE_SOURCE_ID_C, standard field 2008-17-17 */
+#endif
+	int num_atts ;  /* how many address attributes */
+	int have_micros ;
+	int have_macros ; /* does schema have place state zip attributes? */
+	int have_postal ; /* does it have, specifically, a postal attribute ? */
+	DS_Entity_t last_number ;  /* last record number for beta reference */
+	int RedirectDir ;  /* determine if a redirect of directional attribute is required */
+	int RedirectTyp ;  /* determine if a redirect of a street type attribute is required */
+	int RedirectQual ; /* determine if a redirect of a qualifier attribute is required */
+	DS_Field_t number_of_beta_fields ;
+	int variants ; /* how many appends have been made */
+	int beta_insert ; /* are we in read or write mode */
+	int little_endian ; /* is it little or big? */
+	int q_depth ; /* granularity for reverse geocoding */
+	PAGC_FLAG_T flags ; /* bit flags indicating what features are enabled for this schema */
+	ATTRIBUTE attributes[MAXOUTSYM] ; /* array for address attributes */
+	ATTRIBUTE *last_att ;  /* address of the last attribute */
+	ATTRIBUTE *attribute_index[MAXOUTSYM] ; /* an index into the attributes by token */
+#ifdef USE_DITTO_FIELD
+	/*-- <revision date='2008-05-08'> Allocated field to store last postal code read. </revision> --*/
+	char *ditto_field ;
+#endif
+	char *idx_nam[ MAX_INDICES ] ; /* pointers to allocated index names */
+	char *beta_table_name ;
+	DS_Handle _beta_factory ;
+	/*-- <revision date='2012-03-27'> Remove pool handles and replace with RECOGNIZER_HANDLES </revision> --*/
+	RECOGNIZER_HANDLE street_postal_trie ; /*-- <revision date='2012-03-27'>change type</revision> --*/
+	RECOGNIZER_HANDLE concat_trie ;
+	RECOGNIZER_HANDLE landmark_name_trie ;
+} SCHEMA ;
+
+/* ===================== build database control record ============= */
+
+typedef struct bdb_build_param 
+{
+	ERR_PARAM *errors ;
+	SCHEMA *schema ;
+	DS_Handle _beta_attribute_interface ;
+	DS_Handle _idx_db[MAX_INDICES] ;
+	DS_Byte_t *shape_buf ;
+} BDB_BUILD_PARAM ;
+
+
+/* ============ structures for intersection search =========== */ 
+
+typedef struct x_cand 
+{
+	DS_Entity_t beta_rec ;
+	int reversed ;
+	int strategy ;
+	int stz_num ;
+	int distance ;
+	DS_Coord_t X ;
+	DS_Coord_t Y ;
+	struct x_cand *cluster ;
+} X_CAND ;
+
+typedef struct pair_read 
+{
+	DS_Entity_t record_1 ;
+	DS_Entity_t record_2 ;
+	struct pair_read *next ;
+} PAIR_READ ;
+
+typedef struct box_cell 
+{
+	X_CAND *splitter ;
+	PAIR_READ *pair_list ;
+	struct box_cell *cell_list[4] ;
+} BOX_CELL ;
+
+
+/* ============== structure for recording beta records read ======== */
+
+typedef struct record_read 
+{
+	DS_Entity_t row_no ;
+	int stz ;
+	struct record_read * left ;
+	struct record_read * right ;
+} RECORD_READ ;
+
+typedef struct r_r_mgr 
+{
+	int current_offset ;
+	void *base ; /* 2010-06-24 : change to void * for flexibility */
+	struct r_r_mgr *prev_block ;
+	struct r_r_mgr *next_block ;
+} R_R_MGR ; 
+
+/* 2011-01-24 : keep schema linkages on hand until closure */
+typedef struct schema_db_linkage 
+{
+	SCHEMA * linked_schema ;
+	DS_Handle _linked_beta ;
+	DS_Handle _linked_idx[MAX_INDICES] ;
+} SCHEMA_DB_LINKAGE ;
+
+/* ============ main matching context record ========== */
+
+typedef struct pagc_context 
+{
+	SCHEMA *schema ;
+	ERR_PARAM *errors ;
+	int num_backlinks ; /* 2011-01-24 : keep schema linkages on hand until closure */
+	SCHEMA_DB_LINKAGE * schema_backlinks[MAX_SCHEMAS] ; /* 2011-01-24 */
+	DS_Handle _beta_attribute_interface ;
+	DS_Handle _idx_db[MAX_INDICES] ; /* reader handles */
+	int private_errs ;
+	int numb_cands ;
+	DS_Entity_t matched_ref_row ;
+	DS_Entity_t matched_ref_row_B ;
+	int strategy ;
+	int next_free ;
+	int query_begin ;
+	int concat_reverse ; /* use for intersection concat keys */
+	int collect_all ;
+	INT_CANDIDATE ** int_cand_list ;
+	char **street_words ;
+	char **landmark_words ; /* 2009-09-17 */
+	CANDIDATE **cand_list ;
+/*   int numb_x_cands ;  2010-06-26, no longer needed */
+/*   X_CAND *x_cand_list ;  2010-06-26, no longer needed */
+	STAND_PARAM *standard_p ;
+	STAND_PARAM *standard_p_B ;
+	double seg_length[DS_MAX_VERTICES] ;
+	DS_Score_t cand_list_cutoff ;
+	DS_Score_t intersection_cutoff ;
+	R_R_MGR *r_r ; /* -- allocated memory -- */
+	R_R_MGR *pair_r_r ; /* 2010-06-26 new structure */
+	R_R_MGR *box_r_r ; /* 2010-06-26 new structure */
+	R_R_MGR *x_cand_r_r ; /* 2010-06-26 new structure */
+	RECORD_READ **rec_hash_tab ; /* -- allocated memory -- */ 
+	DS_Byte_t *shape_buf ;
+	char transfer_buf[MAX_TRANSFER_BUF_SIZE] ;
+/*   PAIR_READ *pair_buf ;  2010-06-26, no longer needed */
+	BOX_CELL **overlap_buf ; /* -- allocated memory -- */
+	BOX_CELL *box_root ; 
+/*   BOX_CELL *box_cell_array ;   2010-06-26, no longer needed */
+/*   int num_box_cells ;  2010-06-26, no longer needed */
+} PAGC_CONTEXT ;
+
+
+/* =============== client interface record (not exposed) =========== */
+
+typedef struct client_handle 
+{
+	int handle_check ;
+	int num_contexts ;
+	int num_schemas ;
+	PAGC_GLOBAL *global_record ;
+	FILE *misc_aux_stream ;
+	STAND_PARAM *misc_stand ;
+	PAGC_CONTEXT *context_records[MAX_CONTEXTS] ;
+	SCHEMA *schema_records[MAX_SCHEMAS] ;
+} CLIENT_HANDLE ;
+
+/* 2009-07-27 : structure for landmark scoring */
+typedef struct cand_score_params 
+{
+	int target_word_cnt ;
+	int postal_idx ; /* which requester field has the postal */
+	int city_idx ;
+	int prov_idx ;
+	int type_idx ;
+	int subdistrict_idx ;
+	int soundex_approx ;
+	char **words_buf ;
+	DS_Score_t *word_weights ; /* 2009-11-20 */
+} CAND_SCORE_PARAMS ;
+
+/*-- <revision date='2012-08-20'> New definition </revision> --*/
+typedef struct check_macro
+{
+	int in_line_string ;
+	SYMB last_checked ;
+	int __primary_in_reference__[4] ; // Each reference present marks this
+	int __secondary_in_reference__[4] ;
+	int action_alt_left ;
+#ifdef WITH_ALT_LEFT_RIGHT
+	int action_alt_right ;
+#endif
+	char __field_primary__[4][MAXSTRLEN] ;
+	char __field_secondary__[4][MAXSTRLEN];
+	char __field_alternate_primary__[4][MAXSTRLEN];
+	char __field_alternate_secondary__[4][MAXSTRLEN];
+	char __unstandard_left__[MAXSTRLEN] ;
+	char __unstandard_right__[MAXSTRLEN] ;
+	char __unstandard_alt_left__[MAXSTRLEN] ;
+	char __unstandard_alt_right__[MAXSTRLEN] ;
+	/*-- <remarks> These should be in the lexicon consulted for MACRO </remarks> --*/
+	const char __dummies__[4][6] ;
+} CHECK_MACRO ;
+
+/* ===================== prototypes for functions ================ */
+
+/* -- approx.c -- */
+/*-- <revision date='2012-04-26'>Divert approx functions to TRIE_ARRAY</revision> --*/
+RECOGNIZER_HANDLE _new_recognizer_(DS_Handle, DS_Index_Link , int, int, const char *, int, ERR_PARAM *);
+void _free_recognizer_(RECOGNIZER_HANDLE);
+int _insert_recognizer_key_(RECOGNIZER_HANDLE, char *, char *) ;
+int _recognize_approx_(RECOGNIZER_HANDLE, PAGC_CONTEXT *, char *, char *, int, char **, int , int , CAND_SCORE_PARAMS *) ;
+
+#endif
+
+/* -- standard.c -- */
+int standardize_field(STAND_PARAM *, char *, int) ;
+void close_stand_context(STAND_PARAM *) ;
+STAND_PARAM *init_stand_context(PAGC_GLOBAL *, ERR_PARAM *, int) ;
+void close_stand_process(PAGC_GLOBAL *) ;
+/* 2009-08-13 : support multiple lexicons */
+int init_stand_process(PAGC_GLOBAL *, const char *, const char *, const char *, const char *) ;
+
+/* -- tokenize.c -- */
+void initialize_morphs(STAND_PARAM *) ;
+int setup_default_defs(PAGC_GLOBAL *) ;
+void remove_default_defs(PAGC_GLOBAL *) ;
+int process_input(STAND_PARAM *) ;
+int new_morph(STAND_PARAM *, DEFDEF, const char *, int) ;
+void set_term(STAND_PARAM *, int, const char *);
+
+int is_symb_on_list(SYMB, SYMB *) ;
+int find_def_type(DEF *, SYMB *) ;
+
+/* -- export.c -- */
+void stuff_fields(STAND_PARAM *) ;
+void init_output_fields(STAND_PARAM *, int) ;
+int sym_to_field(SYMB) ;
+void send_fields_to_stream(char **, FILE *, int, int) ;
+
+/* -- analyze.c -- */
+int install_def_block_table(ENTRY **, ERR_PARAM *) ;
+STZ_PARAM *create_segments(ERR_PARAM *) ;
+void destroy_segments(STZ_PARAM *) ; 
+int get_next_stz(STAND_PARAM *, int) ;
+double get_stz_downgrade(STAND_PARAM *, int) ;
+/*-- <revision date='2012-07-22'> Keep track of start_state </revision> --*/
+int evaluator(STAND_PARAM *) ;
+void output_raw_elements(STAND_PARAM *,ERR_PARAM *) ;
+
+/* -- gamma.c -- */
+void refresh_transducer(NODE *, SYMB *, NODE **) ;
+int is_input_symbol(SYMB) ;
+int is_output_symbol(SYMB) ;
+RULE_PARAM *create_rules(const char *, PAGC_GLOBAL *) ;
+void destroy_rules(RULE_PARAM *) ;
+#ifdef BUILD_API
+int output_rule_statistics(RULE_PARAM *, ERR_PARAM *) ;
+#else
+int output_rule_statistics(RULE_PARAM *, ERR_PARAM *, char *, DS_Handle) ;
+#endif
+
+/* -- lexicon.c -- */
+ENTRY **create_lexicon(PAGC_GLOBAL *, const char *, const char *) ;
+void destroy_lexicon(ENTRY **) ;
+void destroy_def_list(DEF *) ;
+ENTRY *find_entry(ENTRY **, char *) ;
+DEF *create_def (SYMB, char *, int, int, ERR_PARAM *) ;
+
+/* -- err_param.c -- */
+ERR_PARAM *init_errors(PAGC_GLOBAL *, const char *) ;
+void close_errors(ERR_PARAM *) ;
+int empty_errors(ERR_PARAM *, int *, char *) ;
+void register_error(ERR_PARAM *) ;
+void send_fields_to_error(ERR_PARAM *, char **) ;
+
+/* -- util.c -- */
+
+FILE *open_aux_file(PAGC_GLOBAL *, const char *) ;
+
+#ifndef BUILD_API
+
+/* -- candform.c -- */
+int sads_format_standard_fields(STAND_PARAM *, int, char *) ;
+void fetch_standard_headers(char *) ;
+/* 2008-07-21 sads_format_candidate : add is_parity_mismatch argument, 
+   add source_identifier argument */
+#ifdef THREE_SOURCE_IDS
+int sads_format_candidate(PAGC_CONTEXT *, DS_Entity_t, int, char *, int, int, int, int *, char *, char *, char *) ;
+#else
+int sads_format_candidate(PAGC_CONTEXT *, DS_Entity_t, int, char *, int, int, int, int *, char *) ;
+#endif
+void cand_header_list(PAGC_CONTEXT *, int, char * ) ;
+/* 2008-07-28 ols_format_candidate : new routine */
+int ols_format_candidate(PAGC_CONTEXT *, DS_Entity_t, int, char *, char *, int, int, int *) ;
+
+
+/* -- init.c -- */
+/* 2009-08-13 : support multiple lexicons */
+PAGC_GLOBAL *init_global(int, const char *, const char *, const char *, const char *, const char *, const char *) ;
+void close_global(PAGC_GLOBAL *) ;
+SCHEMA *init_schema(ERR_PARAM *) ;
+int close_schema(SCHEMA *, ERR_PARAM *) ; /* 2011-01-22 : return error code */
+PAGC_CONTEXT *init_context(PAGC_GLOBAL *, SCHEMA *, ERR_PARAM *, int, const char *) ;
+void close_context(PAGC_CONTEXT *) ;
+
+
+/* -- build.c -- */
+int build_beta(PAGC_GLOBAL *, SCHEMA *, ERR_PARAM *, DS_Handle, DS_Handle, BDB_BUILD_PARAM *, char *, char *, DS_Entity_t, DS_Entity_t) ;
+
+/* -- collect.c -- */
+int match_address(PAGC_CONTEXT *, char *, char *, int, int) ;
+int match_landmark(PAGC_CONTEXT *, char *, char *, char *, char *, int) ;
+/* 2008-12-15 : add int arg to save_candidate */
+int save_candidate(PAGC_CONTEXT *, DS_Entity_t, int, DS_Score_t, int, int,  char *) ;
+int match_intersection( PAGC_CONTEXT *, char *, char *, char *,  char *, int) ;
+int save_intersection_candidate(PAGC_CONTEXT *, DS_Entity_t, DS_Entity_t, int, int, int, int, DS_Score_t, DS_Coord_t, DS_Coord_t) ;
+
+
+/* -- geocode.c -- */
+DS_Entity_t locate_incident_arcs(PAGC_CONTEXT *, DS_Entity_t, int, int) ;
+DS_Score_t score_arc_direction(PAGC_CONTEXT *, DS_Entity_t, PAGC_POINT *, DS_Angular_t) ;
+int geocode_address_candidate(PAGC_CONTEXT *, PAGC_POINT *, int, int *, DS_Metric_t) ;
+int geocode_intersection_candidate(PAGC_CONTEXT *, PAGC_POINT *, int) ;
+int geocode_landmark_candidate(PAGC_CONTEXT *, PAGC_POINT *, int) ;
+DS_Metric_t pyth_dist2(SCHEMA *, DS_Coord_t *, DS_Coord_t *, DS_Coord_t *, DS_Coord_t *) ;
+DS_Metric_t degree_dist(DS_Metric_t, DS_Coord_t,  DS_Coord_t) ;
+int collect_incident_arcs(PAGC_CONTEXT *, int, int, int) ;
+
+/* -- score.c -- */
+int read_score_stand(PAGC_CONTEXT *, DS_Score_t *, char **, DS_Entity_t, int, int *) ; 
+int read_score_stand_land( PAGC_CONTEXT *, DS_Score_t *, char **, DS_Entity_t, int *, CAND_SCORE_PARAMS *) ; 
+int resolve_range_direction(int *, int *, int, int, int, int) ;
+DS_Score_t interpolate_weight(DS_Score_t, DS_Score_t, DS_Score_t) ;
+int match_number_interval_left_right(int, int, int, int, int, int) ;
+DS_Score_t normalize_score(SCHEMA *, DS_Score_t) ;
+DS_Score_t normalize_landmark_score(SCHEMA *, DS_Score_t) ;
+DS_Score_t max_context_score(PAGC_CONTEXT *) ;
+
+/* -- make_sch.c -- */
+void get_weight_pair(SCHEMA *, ATTRIBUTE *) ;
+int build_ref_schema(SCHEMA * , DS_Handle, ERR_PARAM *, DS_Handle, const char *,  PAGC_FLAG_T) ;
+ATTRIBUTE *get_att_by_symbol(SCHEMA *, SYMB) ;
+int is_official(SCHEMA *, SYMB) ; /* 2009-11-23 : new function */
+
+/* -- restore.c -- */
+int restore_build_state(PAGC_GLOBAL *, SCHEMA *, const char *, int) ;
+int save_build_state(SCHEMA * , const char *, ERR_PARAM *, DS_Handle) ;
+
+/* -- shapeset.c -- */
+int open_alpha_for_build(DS_Handle *, DS_Handle *, DS_Handle *,  DS_Handle , const char *, const char *, char **, ERR_PARAM *) ;
+void close_alpha(DS_Handle *, DS_Handle *, DS_Handle *, ERR_PARAM *) ;
+int open_positioning(SCHEMA *, DS_Handle *, char *, DS_Handle, ERR_PARAM *) ;
+void set_feature_shape_type(SCHEMA *) ;
+int set_matching_units(SCHEMA *) ;
+void update_mbr(SCHEMA *, DS_Handle) ;
+
+/* -- index.c -- */
+BDB_BUILD_PARAM * open_build_db(SCHEMA *, ERR_PARAM *) ;
+void close_build_db(BDB_BUILD_PARAM *) ;
+int open_context_db(PAGC_CONTEXT *, SCHEMA *, ERR_PARAM *) ;
+void close_context_db(PAGC_CONTEXT *) ;
+int open_schema_db(SCHEMA *, ERR_PARAM *, DS_Handle, const char *, int) ;
+int close_schema_db(SCHEMA *, ERR_PARAM *) ;
+int create_schema_indices(SCHEMA *, ERR_PARAM *) ;
+int open_index(SCHEMA *, ERR_PARAM *, DS_Index_Link, int) ;
+
+/* -- indexput.c -- */
+/*	<revision date='2012-03-27'>new args for insert_key and insert_concat_key */
+int insert_key(BDB_BUILD_PARAM *, DS_Index_Link, char *, DS_Entity_t, char *) ;
+int insert_concat_key(BDB_BUILD_PARAM *, DS_Index_Link,char *, DS_Entity_t, int, PAGC_POINT *, char *) ;
+int insert_attribute_point(SCHEMA *, BDB_BUILD_PARAM *, DS_Handle, DS_Entity_t, DS_Entity_t, ERR_PARAM *) ;
+int insert_shape(SCHEMA *, BDB_BUILD_PARAM *, DS_Handle, DS_Entity_t, DS_Entity_t, ERR_PARAM *err_p, PAGC_POINT *, PAGC_POINT * ) ;
+
+
+/* -- indexget.c -- */
+int fetch_shape(PAGC_CONTEXT *, DS_Entity_t, int *, DS_Coord_t **, DS_Coord_t **) ;
+int register_candidate(PAGC_CONTEXT *, char **, DS_Index_Link, int, char *, int, CAND_SCORE_PARAMS *) ;
+int read_arc_endpoints(PAGC_CONTEXT *, DS_Entity_t, PAGC_POINT *, PAGC_POINT *) ;
+DS_Entity_t find_arcs_by_point(PAGC_CONTEXT *, DS_Entity_t, PAGC_POINT *, DS_Angular_t) ;
+int print_beta_text(PAGC_CONTEXT *) ;
+int print_index_text(PAGC_CONTEXT *, DS_Index_Link) ;
+int print_shape_index(PAGC_CONTEXT *, DS_Index_Link) ;
+int calc_landmark_word_weights(PAGC_CONTEXT *, int, int *, DS_Score_t *) ; 
+
+/* -- alpharef.c -- */
+int read_alpha_house(DS_Handle, DS_Entity_t, DS_Field_t, int) ;
+int extract_house(const char *, int) ;
+/* 2008-07-30 : add unstandard_mac_alternate arg and flag for alternate city names 
+   2009-11-23 : add arrays for official name fields */
+/*-- <revision date='2012-08-30'> Use check_macro </revision> --*/
+int read_unstandardized(SCHEMA *, DS_Handle, DS_Entity_t, int *, int *, int *, char *, CHECK_MACRO* , char *, char **, DS_Field_t *, int *, ERR_PARAM *) ;
+
+/* -- makebeta.c -- */	
+int init_standardized_table(SCHEMA *, ERR_PARAM *) ;
+int soundex_street_words(char *, char **) ; 
+/* 2008-08-01 : add stand_alt_macro flag for alternate city names */
+/*-- <revision date='2012-08-30'> Use check_macro </revision> --*/
+int write_standardized(SCHEMA *, BDB_BUILD_PARAM *, char **, char **, CHECK_MACRO *, int, int *, char *, char *, char *, DS_Entity_t, int) ;
+void do_left_saves(char **, char *, char *, char *, int) ;
+int index_cross_streets(SCHEMA *, BDB_BUILD_PARAM *, char **, char **, DS_Handle, DS_Entity_t, DS_Entity_t, STAND_PARAM *, PAGC_POINT *, PAGC_POINT *, ERR_PARAM *) ;
+int write_occupancy_only(SCHEMA *, DS_Handle, char **, DS_Entity_t) ;
+/* 2008-08-01 : new routine to standardize alternate city names */
+#ifdef WITH_ALT_LEFT_RIGHT
+int write_alt_macro_only(SCHEMA *, DS_Handle, char **, int, DS_Entity_t) ;
+#else
+int write_alt_macro_only(SCHEMA *, DS_Handle , char **, DS_Entity_t) ;
+#endif
+/* 2009-07-22 : new routines to standardize and write landmark names */
+int write_landmark_name_only(SCHEMA *, BDB_BUILD_PARAM *, char **, char **, char **,  DS_Entity_t, ERR_PARAM *) ;
+int tokenize_landmark_words(char *, char **) ;
+
+#endif
+
+/* ============================ MACROS ========================== */
+
+#define IS_BLANK( STR ) *STR == SENTINEL
+#define SPACE 0x20
+
+/* ================ ERROR MACROS ==================== */
+
+#define LOG_DS_ERR( INTF, WHERE ) \
+	ds_copy_error( INTF , WHERE -> error_buf ) ; \
+	register_error( WHERE )
+
+#define TERMINATE_INTERFACE( STATUS_REG_V , INTF , WHERE ) \
+	STATUS_REG_V = ds_terminate( INTF ) ; \
+	if ( STATUS_REG_V != DS_OK ) { \
+		LOG_DS_ERR( INTF, WHERE ) ; \
+	} \
+	ds_dispose_interface( INTF )
+
+#define LOG_MESS(STR,WHERE) \
+   sprintf( WHERE -> error_buf , \
+            STR ) ; \
+   register_error( WHERE ) 
+
+#define LOG_MESS1( TEMP,INSERT,WHERE) \
+   sprintf( WHERE -> error_buf , \
+            TEMP, \
+            INSERT ) ; \
+   register_error( WHERE ) 
+
+#define LOG_MESS2( TEMP,INSERT1,INSERT2,WHERE ) \
+   sprintf( WHERE -> error_buf , \
+            TEMP, \
+            INSERT1, \
+            INSERT2 ) ; \
+   register_error( WHERE ) 
+
+#define LOG_MESS3( TEMP,INSERT1,INSERT2,INSERT3,WHERE ) \
+   sprintf( WHERE -> error_buf , \
+            TEMP, \
+            INSERT1, \
+            INSERT2 , \
+            INSERT3 ) ; \
+   register_error( WHERE  ) 
+
+   
+#define RET_ERR(STR,WHERE,RET) \
+   LOG_MESS(STR,WHERE) ; \
+   return RET
+
+#define RET_ERR1(TEMP,INSERT,WHERE,RET) \
+   LOG_MESS1(TEMP,INSERT,WHERE) ; \
+   return RET
+
+#define RET_ERR2(TEMP,INSERT1,INSERT2,WHERE,RET) \
+   LOG_MESS2(TEMP,INSERT1,INSERT2,WHERE) ; \
+   return RET
+
+#define RET_ERR3(TEMP,INSERT1,INSERT2,INSERT3,WHERE,RET) \
+   LOG_MESS3(TEMP,INSERT1,INSERT2,INSERT3,WHERE) ; \
+   return RET
+
+#define FATAL_EXIT exit(1)
+
+#define FATAL_ERR( MSG ) \
+   fprintf( stderr , MSG ) ; \
+   FATAL_EXIT
+
+#define CLIENT_ERR( PTR ) PTR -> next_fatal = FALSE
+
+#define MEM_ERR(PTR,WHERE,RET) \
+   if ( PTR == NULL ) {\
+      RET_ERR("Insufficient Memory",WHERE,RET) ; \
+   }
+
+/* ----------- ALLOCATION MACROS ----------- */
+
+#define PAGC_STORE_STR(DEST,SRC,WHERE,RET_VAL) \
+   DEST = (char * ) malloc( sizeof( char ) * ( strlen( SRC ) + 1 ) ) ; \
+   MEM_ERR(DEST,WHERE,RET_VAL) ; \
+   BLANK_STRING(DEST) ; \
+   strcpy(DEST,SRC) 
+
+
+#define PAGC_ALLOC_STRUC(LOC,TYP,WHERE,EXIT_TYPE) \
+   LOC = ( TYP * ) malloc( sizeof( TYP ) ) ; \
+   MEM_ERR(LOC,WHERE,EXIT_TYPE)
+
+#define PAGC_CALLOC_STRUC(LOC,TYP,NUM,WHERE,EXIT_TYPE) \
+   LOC = ( TYP* ) calloc( (NUM) , sizeof( TYP ) ) ; \
+   MEM_ERR(LOC,WHERE,EXIT_TYPE)
+
+#define PAGC_CALLOC_2D_ARRAY(PTR,TYP,ROWS,COLS,WHERE,EXIT_TYPE) \
+   { \
+      TYP **temp_ptr ; \
+      int row_num ; \
+      PAGC_CALLOC_STRUC(temp_ptr,TYP*,ROWS,WHERE,EXIT_TYPE) ; \
+      for ( row_num = 0 ; row_num < ROWS ; row_num++ ) { \
+        PAGC_CALLOC_STRUC(temp_ptr[row_num],TYP,COLS,WHERE,EXIT_TYPE) ; \
+      } \
+      PTR = temp_ptr ; \
+   }
+
+#define FREE_AND_NULL(PTR) \
+	if (PTR !=NULL)\
+	{\
+		free (PTR) ; \
+		PTR = NULL ; \
+	}
+
+#define PAGC_DESTROY_2D_ARRAY(PTR,TYP,ROWS) \
+	{ \
+		int row_num ; \
+		TYP *row_val ; \
+		for (row_num = 0;row_num < ROWS;row_num++)\
+		{\
+			if ((row_val = PTR[row_num]) != NULL) \
+			{\
+				FREE_AND_NULL(row_val);\
+			}\
+		}\
+		FREE_AND_NULL(PTR) ; \
+	}
+
+
+
+
+/* ================ FILE OPEN MACROS ==================== */
+
+/* -- changed so not to conflict with Windows def --*/
+#define PAGC_FILE_OPEN(HANDLE,FNAME,MODE,WHERE,RET) \
+   if ( ( HANDLE = fopen( FNAME , \
+                          MODE ) ) == NULL ) { \
+      RET_ERR1( "\nCan't open: %s\n" ,FNAME,WHERE,RET) ; \
+   }
+
+#define OPEN_ALLOCATED_NAME(ALLOC_NAME,EXT,HANDLE,NAME,MODE,DS_SYS,WHERE,RET) \
+   if ( ( ALLOC_NAME = ds_alloc_file_name(DS_SYS,NAME,EXT) ) == NULL ) { \
+      return RET ; \
+   } \
+   PAGC_FILE_OPEN(HANDLE,ALLOC_NAME,MODE,WHERE,RET)
+
+
+
+#define SPACE_APPEND_WITH_LEN( D, S , L ) \
+   char_append( " " , D , S , L )
+
+/* ================ SOUNDEX MACROS ==================== */
+
+#define MAKE_SOUNDEX_KEY(DEST,CNT,SW) \
+  BLANK_STRING(DEST); \
+  for ( CNT = 0 ; CNT < MAXPHRASE ; CNT++ ) { \
+     if ( SW[ CNT ][ 0 ] == SENTINEL ) break ; \
+     COMMA_APPEND_WITH_LEN( DEST , SW[ CNT ] , MAXSTRLEN ) ; \
+  }
+
+/* construct concatenated keys for the concat index */
+#define MAKE_CONCAT_KEY(TARGET,SOURCE_A,SOURCE_B) \
+   BLANK_STRING(TARGET) ; \
+   strcpy( TARGET , SOURCE_A ) ; \
+   COMMA_APPEND_WITH_LEN( TARGET , SOURCE_B , MAXSTRLEN ) 
+
+#define MAKE_CONCAT_SOUNDEX_KEY(SOURCE_A,SOURCE_B,DEST,HOLD,CNT,SW) \
+   soundex_street_words( SOURCE_A, SW) ; \
+   MAKE_SOUNDEX_KEY(DEST,CNT,SW) ; \
+   soundex_street_words( SOURCE_B, SW) ; \
+   MAKE_SOUNDEX_KEY(HOLD,CNT,SW) ; \
+   COMMA_APPEND_WITH_LEN(DEST,HOLD,MAXSTRLEN)
+
+
+#define RNF_SENTINEL '_'
+/* 2011-01-14 : interpret initial space in a field to indicate a blank field */
+#define IS_ALPHA_STR_SENTINEL(V) ( ( *V == SENTINEL ) || ( *V == RNF_SENTINEL ) || ( *V == SPACE ) )
+
+/* --------------------------------------------------
+macros for converting and verifying pagc_client args
+-----------------------------------------------------*/
+
+#define HANDLE_CHECK 1014
+
+#define CONVERT_HANDLE( NATIVE_PTR , CLIENT_PTR ) \
+   if ( CLIENT_PTR == NULL ) return FALSE ; \
+   NATIVE_PTR = ( CLIENT_HANDLE * ) CLIENT_PTR ; \
+   if ( NATIVE_PTR -> handle_check != HANDLE_CHECK ) return 0
+   
+#define CHECK_BOUNDS( ARRAY_SIZE , ARRAY_IDX ) \
+   if ( ( ARRAY_IDX > ARRAY_SIZE ) || (ARRAY_IDX < 1 ) ) { \
+      CLIENT_ERR( pagc_p -> global_record -> process_errors ) ; \
+      RET_ERR1( "No such entity such as %d" , \
+                ARRAY_IDX , \
+                pagc_p -> global_record -> process_errors , \
+                0 ) ; \
+   }
+
+#define CHECK_BOUNDS_ABSOLUTE( ARRAY_SIZE , ARRAY_IDX ) \
+   if ( ( ARRAY_IDX >= ARRAY_SIZE ) || (ARRAY_IDX < 0 ) ) { \
+      CLIENT_ERR( pagc_p -> global_record -> process_errors ) ; \
+      RET_ERR1( "No such entity such as %d" , \
+                ARRAY_IDX , \
+                pagc_p -> global_record -> process_errors , \
+                0 ) ; \
+   }
+
+
+#define UPDATE_SCHEMA_BOUNDS( PTR ) \
+   pagc_p -> schema_records[ pagc_p -> num_schemas ] = PTR ; \
+   pagc_p -> num_schemas++ ; \
+   return( pagc_p -> num_schemas )
+
+#define UPDATE_CONTEXT_BOUNDS( PTR ) \
+   pagc_p -> context_records[ pagc_p -> num_contexts ] = PTR ; \
+   pagc_p -> num_contexts++ ; \
+   return( pagc_p -> num_contexts )
+
+#define SCHEMA_INDEX_TO_POINTER( IDX , PTR ) \
+   PTR = pagc_p -> schema_records[ IDX - 1 ]
+
+#define CONTEXT_INDEX_TO_POINTER( IDX , PTR ) \
+   PTR = pagc_p -> context_records[ IDX - 1 ]
+
+#define LIMIT_BOUNDS( CNT, MAX ) \
+   if ( CNT == MAX ) { \
+      RET_ERR1( "%d exceeds maximum allowed" , \
+                CNT , \
+                pagc_p -> global_record -> process_errors , \
+                0 ) ; \
+   }
+
+
+
+
+/* ================== BETA READ MACROS ================ */
+
+#define READ_BETA_STRING(DEST,NUM) \
+   DEST = ds_attribute_read_string_field( ctx_p -> _beta_attribute_interface , row_num , att -> rs_fld_idx[ NUM ] ) ; \
+   if ( DEST == NULL ) return FALSE
+
+#define READ_BETA_INT(DEST,NUM) \
+   DEST = ds_attribute_read_integer_field( ctx_p -> _beta_attribute_interface , row_num , att -> rs_fld_idx[ NUM ] ) ; \
+   if ( DEST == ERR_FAIL ) return FALSE
+
+#define INT32_AS_BYTES( PTR_VAL ) \
+	* ( ( int32_t * ) ( PTR_VAL ) )
+
+#define INTEGER_AS_BYTES( PTR_VAL ) \
+	* ( ( int * ) ( PTR_VAL ) )
+	
+#define DOUBLE_AS_BYTES( PTR_VAL ) \
+	*( ( double * ) ( PTR_VAL ) )
+
+
+/* ================= floating point comparison macros ======== */
+#define R_ERR .00001
+#define IS_DOUBLE_EQUAL( FX, FY ) ( ( fabs( FX - FY ) <= R_ERR )? TRUE : FALSE )
+#define IS_DOUBLE_NOT_EQUAL(FX,FY) ( ( fabs( FX - FY ) > R_ERR )? TRUE : FALSE )
+#define IS_DOUBLE_LESS(FX,FY) ( ( ( FX - FY ) < R_ERR )? TRUE : FALSE )
+#define IS_DOUBLE_GREATER(FX,FY) ( ( ( FX - FY ) > R_ERR )? TRUE : FALSE )
+#define IS_DOUBLE_LESS_OR_EQUAL(FX,FY) ( ( ( FX - FY ) <= R_ERR )? TRUE : FALSE )
+#define IS_DOUBLE_GREATER_OR_EQUAL(FX,FY) ( ( ( FX - FY ) >= R_ERR )? TRUE : FALSE )
+
+#endif
diff --git a/extensions/address_standardizer/pagc_common.h b/extensions/address_standardizer/pagc_common.h
new file mode 100644
index 0000000..4edfea8
--- /dev/null
+++ b/extensions/address_standardizer/pagc_common.h
@@ -0,0 +1,118 @@
+/*-- pagc_common.h -- 
+
+Certain common definitions used both by the pagc library and its clients
+
+Prototype 20H10 (This file was written by Walter Sinclair).
+
+This file is part of PAGC.
+
+Copyright (c) 2010 Walter Bruce Sinclair
+
+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.
+
+*/
+
+/* For pagc-0.4.0 : last revised 2010-11-08 */
+ 
+
+#ifndef PAGC_COM_H
+#define PAGC_COM_H
+
+#ifdef MAXPATHLEN
+#define PATHNAME_LEN MAXPATHLEN
+#else
+#define PATHNAME_LEN 1024
+#endif
+
+/* -- 2006-04-25 : structure added to index arc endpoints -- */
+typedef struct pagc_point {
+   double X ;
+   double Y ;
+} PAGC_POINT ;
+
+
+typedef int SYMB ;
+
+
+#define ERR_FAIL -2
+#define FAIL -1
+#define NULL_READ 0
+#define MATCH_READ 2
+#define BOTH 2
+
+
+/*------------------------------------
+strategy types
+------------------------------------*/
+#define ADDRESS_SCORING 0
+#define INTERSECTION_SCORING 1
+#define LANDMARK_SCORING 3
+
+#define SITE_MATCH 0
+#define SITE_INTERPOLATE 1
+#define INTERSECTION 2
+#define ADDRESS_RANGE_2 3
+#define ADDRESS_RANGE_4 4 
+#define REVERSE_SITE 5
+#define REVERSE_INTERSECTION 6 
+#define INTERSECTION_B 7 
+#define CONCAT 8
+#define LANDMARK_NAME 9
+
+/*----------------------------------
+response format types :
+------------------------------------*/
+#define CSV 0
+#define JSON 1
+#define XML 2
+
+/* -- build flags -- */
+#define STATISTICS 2 /* -- output statistics on rules used. FLSTATS in schema-- */
+#define PRINT_PROGRESS 128 /* output 10% completion points */
+#define LOG_COMPLETE 2048 /* log certain initializations when complete */
+#define ZERO_IS_BLANK 512 /* schema: FLZBLNK */
+#define RNF_PRETYPE_REDIRECT 4096 /* schema: FLRNFRE */
+
+#define SENTINEL '\0'
+#define BLANK_STRING(STR) *STR = SENTINEL
+#define MAXSTRLEN 256
+
+/* -- boolean -- */
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
+#define READ_ONLY_MODE 0
+#define WRITE_CREATE_MODE 1
+#define WRITE_APPEND_MODE 2
+
+#define PAGE_SIZE 4096
+#define MAX_REF_CANDS 100
+
+#ifdef ENABLE_THREADED
+#define MAX_CONTEXTS 20
+#else
+#define MAX_CONTEXTS 1
+#endif
+
+#define BACK_SLASH 0x5c
+#define FORE_SLASH '/'
+#define IS_DOT(CH) ( CH == '.' )
+#define IS_DIR_SEP(CH) ( CH == global_path_separator )
+#define IS_COLON(CH) ( CH == ':' )
+#define NOT_PATH_DELIMITOR(CH) \
+   ( CH != global_path_separator ) && \
+   ( !IS_COLON(CH) )
+#define IS_PATH_DELIMITOR(CH) \
+   ( IS_DIR_SEP(CH) || \
+   IS_COLON(CH) )
+#define COMMA_APPEND_WITH_LEN( D , S , L ) \
+   char_append( "," , D , S , L )
+
+#endif
diff --git a/extensions/address_standardizer/pagc_std_api.h b/extensions/address_standardizer/pagc_std_api.h
new file mode 100644
index 0000000..2e04293
--- /dev/null
+++ b/extensions/address_standardizer/pagc_std_api.h
@@ -0,0 +1,75 @@
+
+#ifndef PAGC_STD_API_H
+#define PAGC_STD_API_H
+
+#define BUILD_API
+
+typedef struct LEXICON_s {
+    ENTRY **hash_table;
+    ERR_PARAM *err_p;
+} LEXICON;
+
+typedef struct RULES_s {
+    int ready;
+    int rule_number;
+    int last_node;
+    RULE_PARAM *r_p;
+    ERR_PARAM *err_p;
+    NODE **Trie;
+    SYMB *rule_end ;
+    SYMB *r ;
+} RULES;
+
+typedef struct STANDARDIZER_s {
+    PAGC_GLOBAL *pagc_p;
+    STAND_PARAM *misc_stand;
+    ERR_PARAM *err_p;
+} STANDARDIZER;
+
+typedef struct STDADDR_s {  // define as required
+   char *building;
+   char *house_num;
+   char *predir;
+   char *qual;
+   char *pretype;
+   char *name;
+   char *suftype;
+   char *sufdir;
+   char *ruralroute;
+   char *extra;
+   char *city;
+   char *state;
+   char *country;
+   char *postcode;
+   char *box;
+   char *unit;
+} STDADDR;
+
+LEXICON * lex_init();
+int lex_add_entry(LEXICON *lex, int seq, char *word, char
+*stdword, SYMB token);
+void lex_free(LEXICON *lex);
+
+RULES *rules_init();
+int rules_add_rule(RULES *rules, int num, int *rule);
+int rules_add_rule_from_str(RULES *rules, char *rule);
+int rules_ready(RULES *rules);
+void rules_free(RULES *rules);
+
+STANDARDIZER *std_init(void);
+int std_use_lex(STANDARDIZER *std, LEXICON *lex);
+int std_use_gaz(STANDARDIZER *std, LEXICON *gaz);
+int std_use_rules(STANDARDIZER *std, RULES *rules);
+int std_ready_standardizer(STANDARDIZER *std);
+void std_free(STANDARDIZER *std);
+
+STDADDR *std_standardize_one(STANDARDIZER *std, char *address_one_line, int options);
+
+STDADDR *std_standardize_mm(STANDARDIZER *std, char *micro, char *macro, int options);
+
+STDADDR *std_standardize(STANDARDIZER *std, char *address, char *city, char *state, char *postcode, char *country, int options);
+
+void stdaddr_free(STDADDR *stdaddr);
+void print_stdaddr(STDADDR *stdaddr);
+
+#endif
diff --git a/extensions/address_standardizer/pagc_tools.c b/extensions/address_standardizer/pagc_tools.c
new file mode 100644
index 0000000..7695797
--- /dev/null
+++ b/extensions/address_standardizer/pagc_tools.c
@@ -0,0 +1,441 @@
+/* -- pagc_tools.c 
+
+Various and miscellaneous functions.
+
+Prototype 20H10 (This file was written by Walter Sinclair).
+
+This file is part of PAGC.
+
+Copyright (c) 2010 Walter Bruce Sinclair
+
+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.
+
+*/
+
+/* For pagc-0.4.0 : last revised 2010-11-25 */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <unistd.h>
+#include "pagc_common.h"
+#include "pagc_tools.h"
+
+#ifndef MAXOUTSYM
+#define MAXOUTSYM 18
+#endif
+
+#ifdef MSYS_POSIX
+static void conform_directory_separator( char * ) ;
+#endif
+
+
+static const char *OutSymbNames[] = {
+"BLDNG",
+"HOUSE",
+"PREDIR",
+"QUALIF",
+"PRETYP",
+"STREET",
+"SUFTYP",
+"SUFDIR",
+"RR",
+"UNKNWN",
+"CITY",
+"PROV",
+"NATION",
+"POSTAL",
+"BOXH",
+"BOXT",
+"UNITH",
+"UNITT"
+} ;
+
+static const char *InSymbNames[] = {
+   "NUMBER",
+   "WORD",
+   "TYPE",
+   "QUALIF",
+   "PRETYP",
+   "STREET",
+   "ROAD",
+   "STOPWORD",
+   "RR",
+   "DASH",
+   "CITY",
+   "PROV",
+   "NATION",
+   "AMPERS",
+   "BOXH",
+   "ORD",
+   "UNITH",
+   "UNITT",
+   "SINGLE",
+   "BUILDH",
+   "MILE",
+   "DOUBLE",
+   "DIRECT",
+   "MIXED",
+   "BUILDT",
+   "FRACT",
+   "PCT",
+   "PCH",
+   "QUINT",
+   "QUAD",
+} ;
+
+/* ------------------------------------------------------------ 
+   ISO 8859 character set may pop up in some files. After 1998
+   TigerLine will use them. 
+------------------------------------------------------------- */
+void convert_latin_one ( char *inp ) {
+   unsigned char *str ;
+
+   for ( str = ( unsigned char * ) inp ; 
+         *str != SENTINEL ; 
+         str++ ) {
+      unsigned char ch ;
+      ch = *str ;
+      /* ------------------------------------------- 
+         if bit 7 is set, reset bit 5 so both upper
+         and lower case can be done together 
+      --------------------------------------------- */
+      if ( ch & 0x80 ) {
+         ch &= 0xDF ;
+         /* ----------------------------------------- 
+            reduce letters with diacritical marks to
+            their unmarked base letters 
+         ------------------------------------------ */
+         if ( ch >= 0xC0 &&
+              ch <= 0xC6 )
+            ch = 'A' ;
+         else if ( ch == 0xc7 )
+            ch = 'C' ;
+         else if ( ch >= 0xc8 && ch <= 0xcb )
+            ch = 'E' ;
+         else if ( ch >= 0xcc && ch <= 0xcf )
+            ch = 'I' ;
+         else if ( ch == 0xd0 )
+            ch = 'D' ;
+         else if ( ch == 0xd1 )
+            ch = 'N' ;
+         else if ( ch >= 0xd2 && ch <= 0xd6 )
+            ch = 'O' ;
+         else if ( ch >= 0xd9 && ch <= 0xdc )
+            ch = 'U' ;
+         else if ( ch >= 0xdd && ch < 0xdf )
+            ch = 'Y' ;
+         else
+            /* ------------------------------- 
+               just clear the top bit so it
+               won't gum up the edit distance
+               machinery 
+            -------------------------------- */
+            ch &= 0x7f ;
+      }
+      *str = ch ;
+   }
+
+   /* ---------------------------------------------- 
+   while we're at it, add a newline to the end
+      because the lexical scanner likes it like that 
+   ----------------------------------------------- */
+   *str++ = '\n' ;
+   *str = SENTINEL ;
+}
+
+void char_append( const char *div ,
+                  char *dest ,
+                  const char *src ,
+                  int max_wid ) {
+   if ( *src == SENTINEL )
+      return ;
+   /* -- skip the delimitor if dest is empty -- */
+   if ( *dest == SENTINEL ) {
+      append_string_to_max( dest , 
+                            ( char * ) src ,
+                            max_wid ) ;
+      return ;
+   }
+   append_string_to_max( dest , ( char * ) div , max_wid ) ;
+   append_string_to_max( dest , ( char * ) src , max_wid ) ;
+}
+
+const char *out_symb_name( int i ) {
+   return ( OutSymbNames[ i ] ) ;
+}
+
+const char *in_symb_name( int i ) {
+   return ( InSymbNames[ i ] ) ;
+}
+
+int out_symb_value( const char *src ) {
+   int i ;
+
+   /* -- linear search -- */
+   for ( i = 0 ;
+         i < MAXOUTSYM ;
+         i++ ) {
+      if ( strcmp( src , 
+                   OutSymbNames[ i ] ) == 0 )
+         return i ;
+   }
+   return FAIL ;
+}
+
+/*-------------------------------------------
+util.c (get_input_line)
+called by initial.c (restore_build_state)
+--------------------------------------------*/
+int get_input_line( char *buf ,
+                    FILE *fp ) {
+   int i ;
+
+   BLANK_STRING(buf) ;
+   if ( ( fgets( buf ,
+                 MAXSTRLEN ,
+                 fp ) ) == NULL )
+      return FALSE ;
+   for ( i = strlen( buf ) ;
+         i > 0 ;
+         i-- ) {
+      if ( strchr( "\n\r",
+                   buf[ i - 1 ] ) ) {
+         buf[ i - 1 ] = SENTINEL ;
+      } else
+         break ;
+   }
+   return TRUE ;
+}
+
+
+/*-------------------------------------------------------
+pagc_tools.c (parse_file_name)
+called by open_aux_file, main.c (main)
+copies the file name to the output_tail and the path to
+the output_head
+--------------------------------------------------------*/
+void parse_file_name( const char *input_path_name ,
+                      char global_path_separator ,
+                      char *output_tail ,
+                      char *output_head ) {
+	const char *end_ptr , *src ;
+	char *dest ;
+   /* -- find the file name part first -- */
+   /* -- move to end of the pathname -- */
+	for ( end_ptr = input_path_name ; *end_ptr != SENTINEL ; end_ptr++ ) ;
+	/* -- find the last directory delimitor -- */
+	while ( ( end_ptr > input_path_name ) && NOT_PATH_DELIMITOR(*end_ptr) ) {
+		end_ptr -- ;
+	}
+	/* --------------------------------------------------------------- 
+	either end_ptr has the last delimitor or it is at string start.
+		If the first case, we need to increment to get the filename and
+		need to copy everything up to and including for the path. 
+	-----------------------------------------------------------------*/
+	/* -- copy from beg to endptr to output path -- */
+	dest = output_head ;
+	src = input_path_name ;
+	/* if end_ptr points to a path delimitor, copy everything up but not
+	including it into the output_head (if output_head isn't NULL) */
+	if ( IS_PATH_DELIMITOR( *end_ptr ) ) {
+		while ( src < end_ptr ) {
+			if ( dest != NULL ) {
+				*dest++ = *src ;
+			}
+			src++ ;
+		}
+		src++ ;
+	}
+	/* -- copy from endptr to end to output file name -- */
+	if ( dest != NULL ) {
+		BLANK_STRING(dest) ;
+	}
+	/* copy everything after the delimitor up to the sentinel
+	into the output_tail */
+	if ( ( dest = output_tail ) != NULL ) {
+		while ( TRUE ) {
+			if ( ( *dest++ = *src++ ) == SENTINEL ) {
+				break ;
+			}
+		}
+	}
+}
+
+
+/*--------------------------------------------------
+pagc_tools.c (combine_path_file)
+called by util.c (open_aux_file)
+calls char_append
+--------------------------------------------------*/
+void combine_path_file( char global_path_separator ,
+                        char *input_head ,
+                        char *input_tail ,
+                        char *output_path_name ) {
+   char combine_buf[ 2 ] ;
+
+   combine_buf[ 0 ] = global_path_separator ;
+   combine_buf[ 1 ] = SENTINEL ;
+
+   if ( ( input_head != NULL ) && 
+        ( input_head[ 0 ] != SENTINEL ) ) {
+      append_string_to_max( output_path_name ,
+                            input_head ,
+                            PATHNAME_LEN ) ;
+
+      char_append( combine_buf ,
+                   output_path_name ,
+                   input_tail ,
+                   PATHNAME_LEN ) ;
+      return ;
+   }
+   append_string_to_max( output_path_name ,
+                         input_tail ,
+                         PATHNAME_LEN ) ;
+}
+
+
+void upper_case( char *d ,
+                 const char *s ) {
+   /* -- make an uppercase copy in d of string in s -- */
+   for ( ; 
+         *s != SENTINEL ;
+         s++ ) {
+      *d++ = ( islower( *s )? toupper( *s ) : *s ) ;
+   }
+   BLANK_STRING(d) ;
+}
+
+/* 2010-10-22 : new routine */
+int upper_case_compare( char *str1 , char* str2 ) {
+	char upper_buf1[ MAXSTRLEN ] ;
+	char upper_buf2[ MAXSTRLEN ] ;
+	upper_case( upper_buf1 , str1 ) ;
+	upper_case( upper_buf2 , str2 ) ;
+	return ( strcmp( upper_buf1 , upper_buf2 ) ) ;
+}
+
+/* 2010-10-30 : moved here for use in ds */
+void fast_reverse_endian( char *location_to_reverse , int bytes_to_reverse ) {
+	char *start_byte_ptr , *end_byte_ptr ;
+
+	for ( start_byte_ptr = location_to_reverse , end_byte_ptr = location_to_reverse + bytes_to_reverse - 1 ; start_byte_ptr < end_byte_ptr ; start_byte_ptr++ , end_byte_ptr-- ) {
+		char a  = *start_byte_ptr ;
+		*start_byte_ptr = *end_byte_ptr ;
+		*end_byte_ptr = a ;
+	}                     
+}
+
+/*=================================================================
+pagc_tools.c (append_string_to_max ) = format.c (format_ncat)
+=================================================================*/
+void append_string_to_max( char *dest_buf_start ,
+                           char *src_str_start ,
+                           int buf_size ) {
+
+   char a ;
+   char *d_ptr , *s_ptr , *buf_end ;
+
+   /* -- move to end of current contents of buffer -- */
+   d_ptr = dest_buf_start ; 
+   while ( ( a = *d_ptr ) != SENTINEL ) {
+      d_ptr ++ ;
+   }
+   buf_end = dest_buf_start + buf_size - 1 ;
+
+   if ( d_ptr >= buf_end ) {
+#ifndef BUILD_API
+#ifndef NO_STDERR_OUTPUT
+      fprintf( stderr , "format_strncat: fatal buffer overflow of %s\n" , dest_buf_start ) ;
+      fprintf( stderr , "No room for %s\n" , src_str_start ) ;
+#endif
+      exit( 1 ) ;
+#else
+      /* TODO if postgresql we can throw and error or notice 
+         but for now we will just truncate the string */
+      *d_ptr = SENTINEL ;
+      return;
+#endif
+   }
+   s_ptr = src_str_start ;
+   while ( ( ( a = *s_ptr++ ) != SENTINEL ) && 
+           ( d_ptr != buf_end ) ) {
+      *d_ptr++ = a ;
+   }
+   *d_ptr = SENTINEL ;
+}
+
+
+
+/* ========================================================
+pagc_tools.c (establish_directory)
+Determine the current working directory and path_separator
+========================================================= */
+int establish_directory( char * c_w_d ,
+                         char * p_s ) {
+   char *c_w_d_ptr ;
+
+   c_w_d_ptr = getcwd( c_w_d , 
+                       ( PATHNAME_LEN - 1 ) ) ;
+   if ( c_w_d_ptr  == NULL ) {
+      return FALSE ;
+   }
+
+   *p_s = FORE_SLASH ;
+
+#ifdef MSYS_POSIX
+
+   /* ..... transform cwd's non-POSIX directory separators to conform  ..... */
+
+   conform_directory_separator( c_w_d ) ;
+
+#endif
+
+   if ( isalpha( c_w_d[ 0 ] ) ) {
+
+      /* ..... drive letter, colon, dir_sep ..... */
+
+      if ( IS_COLON( c_w_d[ 1 ] ) ) {
+         *p_s = c_w_d[ 2 ] ;
+         if ( ( *p_s != FORE_SLASH ) &&
+              ( *p_s != BACK_SLASH ) ) {
+            return FALSE ;
+         }
+      } else {
+         return FALSE ;
+      }
+   }
+   return TRUE ;
+}
+
+#ifdef MSYS_POSIX
+/*------------------------------------------------------------------
+pagc_tools.c (conform_directory_separator)
+-- called only if compiled with MSYS_POSIX defined ..... 
+-- transform non-POSIX directory separators to conform with POSIX --
+called by init_global
+string.h (strlen)
+-------------------------------------------------------------------*/
+static void conform_directory_separator( char * path_name ) {
+   int i , 
+       pn_len ;   
+
+   pn_len = strlen( path_name ) ;
+   for ( i = 0 ; 
+         i < pn_len ; 
+         i++ ) {
+      if ( path_name[ i ] == BACK_SLASH ) {
+         path_name[ i ] = FORE_SLASH ;
+      }
+   }
+}
+/* ..... END OF IFDEF MSYS_POSIX ..... */
+#endif
+
+
diff --git a/extensions/address_standardizer/pagc_tools.h b/extensions/address_standardizer/pagc_tools.h
new file mode 100644
index 0000000..a9e8ac5
--- /dev/null
+++ b/extensions/address_standardizer/pagc_tools.h
@@ -0,0 +1,40 @@
+/*=================================================================
+  -- pagc_tools.h -- 
+
+Certain common tools used both by the pagc library and its clients
+
+Prototype 20H10 (This file was written by Walter Sinclair).
+
+This file is part of PAGC.
+
+Copyright (c) 2010 Walter Bruce Sinclair
+
+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.
+
+*/
+
+/* For pagc-0.4.0 : last revised 2010-11-25 */
+
+#ifndef PGC_T_H
+#define PGC_T_H
+
+void convert_latin_one ( char * ) ;
+void char_append( const char * , char * , const char * , int ) ;
+void append_string_to_max( char * , char * , int ) ;
+const char *out_symb_name( int ) ;
+const char *in_symb_name( int ) ;
+int out_symb_value( const char * ) ;
+int get_input_line( char * , FILE * ) ;
+void combine_path_file( char , char * , char * , char * ) ;
+int upper_case_compare( char * , char* ) ; /* 2010-10-22 */
+void fast_reverse_endian( char * , int ) ; /* 2010-10-30 */
+void upper_case( char * , const char * ) ;
+void parse_file_name( const char * , char , char * , char * ) ;
+int establish_directory( char * , char * ) ;
+
+#endif
diff --git a/extensions/address_standardizer/parseaddress-api.c b/extensions/address_standardizer/parseaddress-api.c
new file mode 100644
index 0000000..fd30a9a
--- /dev/null
+++ b/extensions/address_standardizer/parseaddress-api.c
@@ -0,0 +1,523 @@
+/*
+ * parseaddres.c - utility to crack a string into address, city st zip
+ *
+ * Copyright 2006 Stephen Woodbridge
+ *
+ * This code is released under and MIT-X style license,
+ *
+ * Stphen Woodbridge
+ * woodbri at swoodbridge.com
+ * woodbr at imaptools.com
+ *
+ *
+ * TODO:
+ *   * add recognition of country before or after postalcode
+ *   * have clean trailing punctionation return a code if a comma was removed
+ *     if comma and no state then there is probably no city
+ *
+ */
+
+#include <string.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <pcre.h>
+#include "parseaddress-api.h"
+
+#undef DEBUG
+//#define DEBUG 1
+
+#ifdef DEBUG
+#define DBG(format, arg...)                     \
+    elog(NOTICE, format , ## arg)
+#else
+#define DBG(format, arg...) do { ; } while (0)
+#endif
+
+const char *get_state_regex(char *st);
+const char *parseaddress_cvsid();
+char *clean_leading_punct(char *s);
+
+const char *get_state_regex(char *st)
+{
+    int i;
+    int cmp;
+#include "parseaddress-stcities.h"
+
+    if (!st || strlen(st) != 2) return NULL;
+
+    for (i=0; i<NUM_STATES; i++) {
+        cmp = strcmp(states[i], st);
+        if (cmp == 0)
+            return stcities[i];
+        else if (cmp > 0)
+            return NULL;
+    }
+    return NULL;
+}
+
+int clean_trailing_punct(char *s)
+{
+    int i;
+    int ret = 0;
+
+    i=strlen(s)-1;
+    while (ispunct(s[i]) || isspace(s[i])) {
+        if (s[i] == ',') ret = 1;
+        s[i--] = '\0';
+    }
+    return ret;
+}
+
+char *clean_leading_punct(char *s)
+{
+    int i;
+
+    for (i=0; i<strlen(s); i++)
+        if (!(ispunct(s[i]) || isspace(s[i])))
+            break;
+
+    return s + i;
+}
+
+void strtoupper(char *s)
+{
+    int i;
+
+    for (i=0; i<strlen(s); i++)
+        s[i] = toupper(s[i]);
+}
+
+int match(char *pattern, char *s, int *ovect, int options)
+{
+    const char *error;
+    int erroffset;
+    pcre *re;
+    int rc;
+    
+    re = pcre_compile(pattern, options, &error, &erroffset, NULL);
+    if (!re) return -99;
+    
+    rc = pcre_exec(re, NULL, s, strlen(s), 0, 0, ovect, OVECCOUNT);
+    free(re);
+    
+    if (rc < 0) return rc;
+    else if (rc == 0) rc = OVECCOUNT/3;
+
+    return rc;
+}
+
+#define RET_ERROR(a,e) if (!a) {*reterr = e; return NULL;}
+
+ADDRESS *parseaddress(HHash *stH, char *s, int *reterr)
+{
+
+#include "parseaddress-regex.h"
+
+    int ovect[OVECCOUNT];
+    char c;
+    char *stregx;
+    char *caregx;
+    char *state = NULL;
+    char *regx;
+    int mi;
+    int i, j;
+    int rc;
+    int comma = 0;
+    ADDRESS *ret;
+#ifdef USE_HSEARCH
+    ENTRY e, *ep;
+    int err;
+#else
+    char *key;
+    char *val;
+#endif
+
+    ret = (ADDRESS *) palloc0(sizeof(ADDRESS));
+
+    /* check if we were passed a lat lon */
+    rc = match("^\\s*([-+]?\\d+(\\.\\d*)?)[\\,\\s]+([-+]?\\d+(\\.\\d*)?)\\s*$", s, ovect, 0);
+    if (rc >= 3) {
+        *(s+ovect[3]) = '\0';
+        ret->lat = strtod(s+ovect[2], NULL);
+        ret->lon = strtod(s+ovect[6], NULL);
+        return ret;
+    }
+
+    /* clean the string of multiple white spaces and . */
+    
+    for (i=0, j=0; i<strlen(s); i++) {
+        c = s[i];
+        if (c == '.') c = s[i] = ' ';
+        if (j == 0 && isspace(c)) continue;
+        if (i && isspace(c) && isspace(s[i-1])) continue;
+        s[j] = s[i];
+        j++;
+    }
+    if (isspace(s[j-1])) j--;
+    s[j] = '\0';
+
+    /* clean trailing punctuation */
+    comma |= clean_trailing_punct(s);
+
+    /* assume country code is US */
+
+    ret->cc  = (char *) palloc0(3 * sizeof(char));
+    strcpy(ret->cc, "US");
+
+    /* get US zipcode components */
+
+    rc = match("\\b(\\d{5})[-\\s]{0,1}?(\\d{0,4})?$", s, ovect, 0);
+    if (rc >= 2) {
+        ret->zip = (char *) palloc0((ovect[3]-ovect[2]+1) * sizeof(char));
+        strncpy(ret->zip, s+ovect[2], ovect[3]-ovect[2]);
+        if (rc >= 3) {
+            ret->zipplus = (char *) palloc0((ovect[5]-ovect[4]+1) * sizeof(char));
+            strncpy(ret->zipplus, s+ovect[4], ovect[5]-ovect[4]);
+        }
+        /* truncate the postalcode off the string */
+        *(s+ovect[0]) = '\0';
+        comma = 0;
+    }
+    /* get canada zipcode components */
+    else {
+        rc = match("\\b([a-z]\\d[a-z]\\s?\\d[a-z]\\d)$", s, ovect, PCRE_CASELESS);
+        if (rc >= 1) {
+            ret->zip = (char *) palloc0((ovect[1]-ovect[0]+1) * sizeof(char));
+            strncpy(ret->zip, s+ovect[0], ovect[1]-ovect[0]);
+            strcpy(ret->cc, "CA");
+            /* truncate the postalcode off the string */
+            *(s+ovect[0]) = '\0';
+            comma = 0;
+        }
+    }
+
+    /* clean trailing punctuation */
+    comma |= clean_trailing_punct(s);
+
+    /* get state components */
+
+    caregx = "^(?-xism:(?i:(?=[abmnopqsy])(?:n[ltsu]|[am]b|[bq]c|on|pe|sk|yt)))$";
+    stregx = "\\b(?-xism:(?i:(?=[abcdfghiklmnopqrstuvwy])(?:a(?:l(?:a(?:bam|sk)a|berta)?|mer(?:ican)?\\ samoa|r(?:k(?:ansas)?|izona)?|[kszb])|s(?:a(?:moa|skatchewan)|outh\\ (?:carolin|dakot)a|\\ (?:carolin|dakot)a|[cdk])|c(?:a(?:lif(?:ornia)?)?|o(?:nn(?:ecticut)?|lorado)?|t)|d(?:e(?:la(?:ware)?)?|istrict\\ of\\ columbia|c)|f(?:l(?:(?:orid)?a)?|ederal\\ states\\ of\\ micronesia|m)|m(?:i(?:c(?:h(?:igan)?|ronesia)|nn(?:esota)?|ss(?:(?:issipp|our)i)?)?|a(?:r(?:shall(?:\\ is(?:l(?:and)?)?)?|y [...]
+    
+    rc = match(stregx, s, ovect, PCRE_CASELESS);
+    if (rc > 0) {
+        state = (char *) palloc0((ovect[1]-ovect[0]+1) * sizeof(char));
+        strncpy(state, s+ovect[0], ovect[1]-ovect[0]);
+
+        /* truncate the state/province off the string */
+        *(s+ovect[0]) = '\0';
+        
+        /* lookup state in hash and get abbreviation */
+        strtoupper(state);
+#ifdef USE_HSEARCH
+        e.key = state;
+        err = hsearch_r(e, FIND, &ep, stH);
+        if (err) {
+            ret->st = (char *) palloc0(3 * sizeof(char));
+            strcpy(ret->st, ep->data);
+        }
+#else
+        key = state;
+        val = (char *)hash_get(stH, key);
+        if (val) {
+            ret->st = pstrdup(val);
+        }
+#endif
+        else {
+            *reterr = 1002;
+            return NULL;
+        }
+
+        /* check if it a Canadian Province */
+        rc = match(caregx, ret->st, ovect, PCRE_CASELESS);
+        if (rc > 0) {
+            strcpy(ret->cc, "CA");
+            // if (ret->cc) printf("  CC: %s\n", ret->cc);
+        }
+        comma = 0;
+    }
+
+    /* clean trailing punctuation */
+    comma |= clean_trailing_punct(s);
+
+    /* get city components */
+
+    /*
+     * This part is ambiguous without punctuation after the street
+     * because we can have any of the following forms:
+     *
+     * num predir? prefixtype? street+ suffixtype? suffdir?,
+     *     ((north|south|east|west)? city)? state? zip?
+     *
+     * and technically num can be of the form:
+     *
+     *   pn1? n1 pn2? n2? sn2?
+     * where
+     * pn1 is a prefix character
+     * n1  is a number
+     * pn2 is a prefix character
+     * n2  is a number
+     * sn2 is a suffix character
+     *
+     * and a trailing letter might be [NSEW] which predir can also be
+     *
+     * So it is ambigious whether a directional between street and city
+     * belongs to which component. Futher since the the street and the city
+     * are both just a string of arbitrary words, it is difficult if not
+     * impossible to determine if an give word belongs to sone side or the
+     * other.
+     *
+     * So for the best results users should include a comma after the street.
+     *
+     * The approach will be as follows:
+     *   1. look for a comma and assume this is the separator
+     *   2. if we can find a state specific regex try that
+     *   3. else loop through an array of possible regex patterns
+     *   4. fail and assume there is not city
+    */
+
+    /* look for a comma */
+    DBG("parse_address: s=%s", s);
+    mi = 0;
+
+    regx = "(?:,\\s*)([^,]+)$";
+    rc = match((char *)regx, s, ovect, 0);
+    if (rc <= 0) {
+        /* look for state specific regex */
+        mi++;
+        regx = (char *) get_state_regex(ret->st);
+        if (regx)
+            rc = match((char *)regx, s, ovect, 0);
+    }
+    DBG("Checked for comma: %d", rc);
+    if (rc <= 0 && ret->st && strlen(ret->st)) {
+        /* look for state specific regex */
+        mi++;
+        regx = (char *) get_state_regex(ret->st);
+        if (regx)
+            rc = match((char *)regx, s, ovect, 0);
+    }
+    DBG("Checked for state-city: %d", rc);
+    if (rc <= 0) {
+        /* run through the regx's and see if we get a match */
+        for (i=0; i<nreg; i++) {
+            mi++;
+            rc = match((char *)t_regx[i], s, ovect, 0);
+            DBG("    rc=%d, i=%d", rc, i);
+            if (rc > 0) break;
+        }
+        DBG("rc=%d, i=%d", rc, i);
+    }
+    DBG("Checked regexs: %d, %d, %d", rc, ovect[2], ovect[3]);
+    if (rc > 0 && ovect[3]>ovect[2]) {
+        /* we have a match so process it */
+        ret->city = (char *) palloc0((ovect[3]-ovect[2]+1) * sizeof(char));
+        strncpy(ret->city, s+ovect[2], ovect[3]-ovect[2]);
+        /* truncate the state/province off the string */
+        *(s+ovect[2]) = '\0';
+    }
+        
+    /* clean trailing punctuation */
+    clean_trailing_punct(s);
+
+    /* check for [@] that would indicate a intersection */
+    /* -- 2010-12-11 : per Nancy R. we are using @ to indicate an intersection
+       ampersand is used in both street names and landmarks so it is highly
+       ambiguous -- */
+    rc = match("^([^@]+)\\s*[@]\\s*([^@]+)$", s, ovect, 0);
+    if (rc > 0) {
+        s[ovect[3]] = '\0';
+        clean_trailing_punct(s+ovect[2]);
+        ret->street = pstrdup(s+ovect[2]);
+
+        s[ovect[5]] = '\0';
+        clean_leading_punct(s+ovect[4]);
+        ret->street2 = pstrdup(s+ovect[4]);
+    }
+    else {
+
+        /* and the remainder must be the address components */
+        ret->address1 = pstrdup(clean_leading_punct(s));
+
+        /* split the number off the street if it exists */
+        rc = match("^((?i)[nsew]?\\d+[-nsew]*\\d*[nsew]?\\b)", s, ovect, 0);
+        if (rc > 0) {
+            ret->num = (char *) palloc0((ovect[1]-ovect[0]+1) * sizeof(char));
+            strncpy(ret->num, s, ovect[1]-ovect[0]);
+            ret->street = pstrdup(clean_leading_punct(s+ovect[1]));
+        }
+    }
+
+    return ret;
+}
+
+int load_state_hash(HHash *stH)
+{
+    char * words[][2] = {
+        {"ALABAMA"                      , "AL"},
+        {"ALASKA"                       , "AK"},
+        {"AMERICAN SAMOA"               , "AS"},
+        {"AMER SAMOA"                   , "AS"},
+        {"SAMOA"                        , "AS"},
+        {"ARIZONA"                      , "AZ"},
+        {"ARKANSAS"                     , "AR"},
+        {"ARK"                          , "AR"},
+        {"CALIFORNIA"                   , "CA"},
+        {"CALIF"                        , "CA"},
+        {"COLORADO"                     , "CO"},
+        {"CONNECTICUT"                  , "CT"},
+        {"CONN"                         , "CT"},
+        {"DELAWARE"                     , "DE"},
+        {"DELA"                         , "DE"},
+        {"DISTRICT OF COLUMBIA"         , "DC"},
+        {"FEDERAL STATES OF MICRONESIA" , "FM"},
+        {"MICRONESIA"                   , "FM"},
+        {"FLORIDA"                      , "FL"},
+        {"FLA"                          , "FL"},
+        {"GEORGIA"                      , "GA"},
+        {"GUAM"                         , "GU"},
+        {"HAWAII"                       , "HI"},
+        {"IDAHO"                        , "ID"},
+        {"ILLINOIS"                     , "IL"},
+        {"ILL"                          , "IL"},
+        {"INDIANA"                      , "IN"},
+        {"IND"                          , "IN"},
+        {"IOWA"                         , "IA"},
+        {"KANSAS"                       , "KS"},
+        {"KENTUCKY"                     , "KY"},
+        {"LOUISIANA"                    , "LA"},
+        {"MAINE"                        , "ME"},
+        {"MARSHALL ISLAND"              , "MH"},
+        {"MARSHALL ISL"                 , "MH"},
+        {"MARSHALL IS"                  , "MH"},
+        {"MARSHALL"                     , "MH"},
+        {"MARYLAND"                     , "MD"},
+        {"MASSACHUSETTS"                , "MA"},
+        {"MASS"                         , "MA"},
+        {"MICHIGAN"                     , "MI"},
+        {"MICH"                         , "MI"},
+        {"MINNESOTA"                    , "MN"},
+        {"MINN"                         , "MN"},
+        {"MISSISSIPPI"                  , "MS"},
+        {"MISS"                         , "MS"},
+        {"MISSOURI"                     , "MO"},
+        {"MONTANA"                      , "MT"},
+        {"MONT"                         , "MT"},
+        {"NEBRASKA"                     , "NE"},
+        {"NEVADA"                       , "NV"},
+        {"NEW HAMPSHIRE"                , "NH"},
+        {"NEW JERSEY"                   , "NJ"},
+        {"NEW MEXICO"                   , "NM"},
+        {"NEW YORK"                     , "NY"},
+        {"NORTH CAROLINA"               , "NC"},
+        {"N CAROLINA"                   , "NC"},
+        {"NORTH DAKOTA"                 , "ND"},
+        {"N DAKOTA"                     , "ND"},
+        {"NORTH MARIANA ISL"            , "MP"},
+        {"NORTH MARIANA IS"             , "MP"},
+        {"NORTH MARIANA"                , "MP"},
+        {"NORTH MARIANA ISLAND"         , "MP"},
+        {"OHIO"                         , "OH"},
+        {"OKLAHOMA"                     , "OK"},
+        {"OREGON"                       , "OR"},
+        {"PALAU"                        , "PW"},
+        {"PENNSYLVANIA"                 , "PA"},
+        {"PENN"                         , "PA"},
+        {"PUERTO RICO"                  , "PR"},
+        {"RHODE ISLAND"                 , "RI"},
+        {"SOUTH CAROLINA"               , "SC"},
+        {"S CAROLINA"                   , "SC"},
+        {"SOUTH DAKOTA"                 , "SD"},
+        {"S DAKOTA"                     , "SD"},
+        {"TENNESSEE"                    , "TN"},
+        {"TENN"                         , "TN"},
+        {"TEXAS"                        , "TX"},
+        {"UTAH"                         , "UT"},
+        {"VERMONT"                      , "VT"},
+        {"VIRGIN ISLANDS"               , "VI"},
+        {"VIRGINIA"                     , "VA"},
+        {"WASHINGTON"                   , "WA"},
+        {"WASH"                         , "WA"},
+        {"WEST VIRGINIA"                , "WV"},
+        {"W VIRGINIA"                   , "WV"},
+        {"WISCONSIN"                    , "WI"},
+        {"WISC"                         , "WI"},
+        {"WYOMING"                      , "WY"},
+        {"ALBERTA"                      , "AB"},
+        {"BRITISH COLUMBIA"             , "BC"},
+        {"MANITOBA"                     , "MB"},
+        {"NEW BRUNSWICK"                , "NB"},
+        {"NEW FOUNDLAND AND LABORDOR"   , "NL"},
+        {"NEW FOUNDLAND"                , "NL"},
+        {"NEWFOUNDLAND"                 , "NL"},
+        {"LABORDOR"                     , "NL"},
+        {"NORTHWEST TERRITORIES"        , "NT"},
+        {"NORTHWEST TERRITORY"          , "NT"},
+        {"NWT"                          , "NT"},
+        {"NOVA SCOTIA"                  , "NS"},
+        {"NUNAVUT"                      , "NU"},
+        {"ONTARIO"                      , "ON"},
+        {"ONT"                          , "ON"},
+        {"PRINCE EDWARD ISLAND"         , "PE"},
+        {"PEI"                          , "PE"},
+        {"QUEBEC"                       , "QC"},
+        {"SASKATCHEWAN"                 , "SK"},
+        {"YUKON"                        , "YT"},
+        {"NF"                           , "NL"},
+        {NULL, NULL}
+    };
+
+#ifdef USE_HSEARCH
+    ENTRY e, *ep;
+    int err;
+#else
+    char *key;
+    char *val;
+#endif
+    int i, cnt;
+
+    /* count the entries above */
+    cnt = 0;
+    while (words[cnt][0]) cnt++;
+
+    DBG("Words cnt=%d", cnt);
+
+#ifdef USE_HSEARCH
+    if (! hcreate_r(cnt*2, stH)) return 1001;
+    for (i=0; i<cnt; i++) {
+        e.key  = words[i][0];
+        e.data = words[i][1];
+        err = hsearch_r(e, ENTER, &ep, stH);
+        /* there should be no failures */
+        if (!err) return 1003;
+        e.key  = words[i][1];
+        e.data = words[i][1];
+        err = hsearch_r(e, ENTER, &ep, stH);
+        /* there should be no failures */
+        if (!err) return 1003;
+    }
+#else
+    if (! stH ) return 1001;
+    for (i=0; i<cnt; i++) {
+        //DBG("load_hash i=%d", i);
+        key = words[i][0];
+        val = words[i][1];
+        hash_set(stH, key, (void *)val);
+        key = words[i][1];
+        val = words[i][1];
+        hash_set(stH, key, (void *)val);
+    }
+#endif
+    return 0;
+}
+
+void free_state_hash(HHash *stH)
+{
+//#if 0
+#ifdef USE_HSEARCH
+    if (stH) hdestroy_r(stH);
+#else
+    if (stH) hash_free(stH);
+#endif
+//#endif
+}
diff --git a/extensions/address_standardizer/parseaddress-api.h b/extensions/address_standardizer/parseaddress-api.h
new file mode 100644
index 0000000..a3773a4
--- /dev/null
+++ b/extensions/address_standardizer/parseaddress-api.h
@@ -0,0 +1,74 @@
+/*
+parseaddres-api.h - utility to crack a string into address, city st zip
+
+Copyright 2006-2010 Stephen Woodbridge.
+
+woodbri at swoodbridge.com
+woodbr at imaptools.com
+
+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.
+
+
+ */
+
+#ifndef PARSEADDRESS_API_H
+#define PARSEADDRESS_API_H
+
+#include "postgres.h"
+
+#define OVECCOUNT 30
+
+#ifdef USE_HSEARCH
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include <search.h>
+
+typedef struct hsearch_data  HHash;
+
+#else
+
+#include "hash.h"
+
+typedef hash_t HHash;
+
+#endif
+
+typedef struct address_struct {
+    char *num;
+    char *street;
+    char *street2;
+    char *address1;
+    char *city;
+    char *st;
+    char *zip;
+    char *zipplus;
+    char *cc;
+    double lat;
+    double lon;
+} ADDRESS;
+
+int clean_trailing_punct(char *s);
+void strtoupper(char *s);
+int match(char *pattern, char *s, int *ovect, int options);
+ADDRESS *parseaddress(HHash *stH, char *s, int *err);
+int load_state_hash(HHash *stH);
+void free_state_hash(HHash *stH);
+void free_address(ADDRESS *a);
+
+/*
+ *  ERRORS
+ *
+ *  1000 general memory allocation error
+ *  1001 failed to create hash table structure
+ *  1002 failed to find state abbreviation
+ *  1003 hash table is full, failled to add new entry
+ *
+*/
+
+#endif
diff --git a/extensions/address_standardizer/parseaddress-regex.h b/extensions/address_standardizer/parseaddress-regex.h
new file mode 100644
index 0000000..90877d5
--- /dev/null
+++ b/extensions/address_standardizer/parseaddress-regex.h
@@ -0,0 +1,12 @@
+    const int nreg = 9;
+    static const char *t_regx[9] = {
+        "(?:\\b(?-xism:(?i:(?:C(?:R(?:[KT]|E(?:S(?:(?:C?EN)?T)?|CENT|EK)|S(?:(?:C?N)?T|E(?:NT)?|SI?NG)|OSS(?:ROAD|ING)|CLE?)?|O(?:R(?:NERS?|S)?|UR(?:TS?|SE)|MMON|VES?)|A(?:USE?WAY|NYO?N|MP|PE)|IR(?:C(?:L(?:ES?)?)?|S)?|EN(?:T(?:ERS?|RE?)?)?|L(?:IFFS?|FS?|U?B)|N(?:TE?R|YN)|T(?:RS?|S)?|M[NP]|URVE?|PE?|SWY|VS?|YN|K)|S(?:T(?:[NS]|R(?:[MT]|A(?:V(?:E(?:N(?:UE)?)?|N)?)?|E(?:ETS?|AM|ME)|VN(?:UE)?)?|A(?:T(?:IO)?N)?)?|H(?:O(?:A(?:LS?|RS?)|RES?)|LS?|RS?)|P(?:R(?:INGS?|NGS?)|NGS?|URS?|GS?)|Q(?:U(?:AR [...]
+        "(?:\\b(?-xism:(?i:(?:C(?:R(?:[KT]|E(?:S(?:(?:C?EN)?T)?|CENT|EK)|S(?:(?:C?N)?T|E(?:NT)?|SI?NG)|OSS(?:ROAD|ING)|CLE?)?|O(?:R(?:NERS?|S)?|UR(?:TS?|SE)|MMON|VES?)|A(?:USE?WAY|NYO?N|MP|PE)|IR(?:C(?:L(?:ES?)?)?|S)?|EN(?:T(?:ERS?|RE?)?)?|L(?:IFFS?|FS?|U?B)|N(?:TE?R|YN)|T(?:RS?|S)?|M[NP]|URVE?|PE?|SWY|VS?|YN|K)|S(?:T(?:[NS]|R(?:[MT]|A(?:V(?:E(?:N(?:UE)?)?|N)?)?|E(?:ETS?|AM|ME)|VN(?:UE)?)?|A(?:T(?:IO)?N)?)?|H(?:O(?:A(?:LS?|RS?)|RES?)|LS?|RS?)|P(?:R(?:INGS?|NGS?)|NGS?|URS?|GS?)|Q(?:U(?:AR [...]
+        "(?:\\b(?-xism:(?i:(?:C(?:R(?:[KT]|E(?:S(?:(?:C?EN)?T)?|CENT|EK)|S(?:(?:C?N)?T|E(?:NT)?|SI?NG)|OSS(?:ROAD|ING)|CLE?)?|O(?:R(?:NERS?|S)?|UR(?:TS?|SE)|MMON|VES?)|A(?:USE?WAY|NYO?N|MP|PE)|IR(?:C(?:L(?:ES?)?)?|S)?|EN(?:T(?:ERS?|RE?)?)?|L(?:IFFS?|FS?|U?B)|N(?:TE?R|YN)|T(?:RS?|S)?|M[NP]|URVE?|PE?|SWY|VS?|YN|K)|S(?:T(?:[NS]|R(?:[MT]|A(?:V(?:E(?:N(?:UE)?)?|N)?)?|E(?:ETS?|AM|ME)|VN(?:UE)?)?|A(?:T(?:IO)?N)?)?|H(?:O(?:A(?:LS?|RS?)|RES?)|LS?|RS?)|P(?:R(?:INGS?|NGS?)|NGS?|URS?|GS?)|Q(?:U(?:AR [...]
+        "(?:\\b(?-xism:(?i:(?:C(?:R(?:[KT]|E(?:S(?:(?:C?EN)?T)?|CENT|EK)|S(?:(?:C?N)?T|E(?:NT)?|SI?NG)|OSS(?:ROAD|ING)|CLE?)?|O(?:R(?:NERS?|S)?|UR(?:TS?|SE)|MMON|VES?)|A(?:USE?WAY|NYO?N|MP|PE)|IR(?:C(?:L(?:ES?)?)?|S)?|EN(?:T(?:ERS?|RE?)?)?|L(?:IFFS?|FS?|U?B)|N(?:TE?R|YN)|T(?:RS?|S)?|M[NP]|URVE?|PE?|SWY|VS?|YN|K)|S(?:T(?:[NS]|R(?:[MT]|A(?:V(?:E(?:N(?:UE)?)?|N)?)?|E(?:ETS?|AM|ME)|VN(?:UE)?)?|A(?:T(?:IO)?N)?)?|H(?:O(?:A(?:LS?|RS?)|RES?)|LS?|RS?)|P(?:R(?:INGS?|NGS?)|NGS?|URS?|GS?)|Q(?:U(?:AR [...]
+        "(?:\\b(?-xism:(?i:(?:C(?:R(?:[KT]|E(?:S(?:(?:C?EN)?T)?|CENT|EK)|S(?:(?:C?N)?T|E(?:NT)?|SI?NG)|OSS(?:ROAD|ING)|CLE?)?|O(?:R(?:NERS?|S)?|UR(?:TS?|SE)|MMON|VES?)|A(?:USE?WAY|NYO?N|MP|PE)|IR(?:C(?:L(?:ES?)?)?|S)?|EN(?:T(?:ERS?|RE?)?)?|L(?:IFFS?|FS?|U?B)|N(?:TE?R|YN)|T(?:RS?|S)?|M[NP]|URVE?|PE?|SWY|VS?|YN|K)|S(?:T(?:[NS]|R(?:[MT]|A(?:V(?:E(?:N(?:UE)?)?|N)?)?|E(?:ETS?|AM|ME)|VN(?:UE)?)?|A(?:T(?:IO)?N)?)?|H(?:O(?:A(?:LS?|RS?)|RES?)|LS?|RS?)|P(?:R(?:INGS?|NGS?)|NGS?|URS?|GS?)|Q(?:U(?:AR [...]
+        "(?:\\b(?-xism:(?i:(?:C(?:R(?:[KT]|E(?:S(?:(?:C?EN)?T)?|CENT|EK)|S(?:(?:C?N)?T|E(?:NT)?|SI?NG)|OSS(?:ROAD|ING)|CLE?)?|O(?:R(?:NERS?|S)?|UR(?:TS?|SE)|MMON|VES?)|A(?:USE?WAY|NYO?N|MP|PE)|IR(?:C(?:L(?:ES?)?)?|S)?|EN(?:T(?:ERS?|RE?)?)?|L(?:IFFS?|FS?|U?B)|N(?:TE?R|YN)|T(?:RS?|S)?|M[NP]|URVE?|PE?|SWY|VS?|YN|K)|S(?:T(?:[NS]|R(?:[MT]|A(?:V(?:E(?:N(?:UE)?)?|N)?)?|E(?:ETS?|AM|ME)|VN(?:UE)?)?|A(?:T(?:IO)?N)?)?|H(?:O(?:A(?:LS?|RS?)|RES?)|LS?|RS?)|P(?:R(?:INGS?|NGS?)|NGS?|URS?|GS?)|Q(?:U(?:AR [...]
+        "(?:\\s)((?-xism:(?i:(?:N(?:[EW]|OR(?:TH(?:-?(?:EA|WE)ST)?|D)|-[EW])?|S(?:[EW]|OUTH(?:-?(?:EA|WE)ST)?|-[EW]|UD)?|E(?:A?ST)?|O(?:EST)?|W(?:EST)?)))\\s(\\w+(\\s\\w+)*))$",
+        "^(?:\\d+\\s(?:(?:\\w+\\s)(?-xism:(?i:(?:C(?:R(?:[KT]|E(?:S(?:(?:C?EN)?T)?|CENT|EK)|S(?:(?:C?N)?T|E(?:NT)?|SI?NG)|OSS(?:ROAD|ING)|CLE?)?|O(?:R(?:NERS?|S)?|UR(?:TS?|SE)|MMON|VES?)|A(?:USE?WAY|NYO?N|MP|PE)|IR(?:C(?:L(?:ES?)?)?|S)?|EN(?:T(?:ERS?|RE?)?)?|L(?:IFFS?|FS?|U?B)|N(?:TE?R|YN)|T(?:RS?|S)?|M[NP]|URVE?|PE?|SWY|VS?|YN|K)|S(?:T(?:[NS]|R(?:[MT]|A(?:V(?:E(?:N(?:UE)?)?|N)?)?|E(?:ETS?|AM|ME)|VN(?:UE)?)?|A(?:T(?:IO)?N)?)?|H(?:O(?:A(?:LS?|RS?)|RES?)|LS?|RS?)|P(?:R(?:INGS?|NGS?)|NGS?|U [...]
+        "^(?:\\d+\\s(?:(?:\\w+\\s)*\\w+\\s))(\\w+)$"
+    };
diff --git a/extensions/address_standardizer/parseaddress-stcities.h b/extensions/address_standardizer/parseaddress-stcities.h
new file mode 100644
index 0000000..dd1cca5
--- /dev/null
+++ b/extensions/address_standardizer/parseaddress-stcities.h
@@ -0,0 +1,5346 @@
+#define NUM_STATES 59
+
+    static const char *states[NUM_STATES] = 
+        {"AK","AL","AR","AS","AZ","CA","CO","CT","DC","DE","FL","FM","GA","GU","HI","IA","ID","IL","IN","KS","KY","LA","MA","MD","ME","MH","MI","MN","MO","MP","MS","MT","NC","ND","NE","NH","NJ","NM","NV","NY","OH","OK","OR","PA","PR","PW","RI","SC","SD","TN","TX","UT","VA","VI","VT","WA","WI","WV","WY"};
+
+    static const char *stcities[NUM_STATES] = {
+  /* -- AK -- AK -- AK -- AK -- AK -- AK -- AK -- AK -- AK -- AK -- */
+  "(?:\\b)((?^:(?i:(?:S(?:T(?:E(?:VENS V(?:ILLAGE|LG)|BBINS|RLING|ES"
+  "E)| (?:GEORGE IS|PAUL ISLE)|ONY RIVER)|A(?:INT (?:(?:GEORGE|PAUL)"
+  " ISLAND|M(?:ICHAEL|ARYS))|(?:VOONG|LCH)A|ND POINT)|H(?:(?:A(?:KTO"
+  "OLI|GELU)|UNGNA)K|ISHMAREF)|E(?:L(?:DOVIA|AWIK)|WARD)|O(?:UTH NAK"
+  "NEK|LDOTNA)|K(?:WENTNA|AGWAY)|L(?:EETMUTE|ANA)|CAMMON BAY|UTTON|I"
+  "TKA)|C(?:H(?:I(?:GNIK(?: LA(?:G(?:OO)?N|KE))?|CK(?:ALOO|E)N|NIAK|"
+  "TINA)|(?:U(?:ATHBALU|GIA)|ALKYITSI)K|E(?:(?:FORN|V)AK|NEGA BAY))|"
+  "O(?:OPER L(?:ANDIN|ND)G|LD(?: BAY|FOOT)|PPER CENTER|FFMAN COVE|RD"
+  "OVA)|L(?:A(?:RKS POINT|M GULCH)|EAR)|R(?:OOKED CREEK|AIG)|(?:ANTW"
+  "EL|ENTRA)L|IRCLE)|K(?:O(?:(?:(?:Y(?:UK)?|B)U|(?:NGIGAN|DI)A|LIGAN"
+  "E|KHANO)K|T(?:ZEBUE|LIK))|A(?:S(?:I(?:GLUK|LOF)|AAN)|K(?:TOVIK|E)"
+  "|L(?:SK|T)AG|RLUK)|I(?:NG (?:SALMON|COVE)|(?:VALI|A)NA|PNUK)|(?:W"
+  "(?:IGILLINGO|ETHLU)|LAWOC)K|E(?:TCHIKAN|NAI))|N(?:I(?:K(?:OL(?:A("
+  "?:EVSK|I)|SKI)|ISKI)|GHTMUTE|NILCHIK)|O(?:RTH(?: POLE|WAY)|(?:ORV"
+  "I|ATA)K|NDALTON|ME)|A(?:(?:(?:NWAL|KN)E|PAS?KIA)K|UKATI BAY)|E(?:"
+  "W(?: STUYAH|T)OK|LSON LAGOON|NANA)|U(?:NA(?:PITCHUK|M IQUA)|IQSUT"
+  "|LATO))|A(?:N(?:CHOR(?: POINT|AGE)|AKTUVUK(?: PASS)?|(?:DERS|GO)O"
+  "N|(?:IA|VI)K)|L(?:(?:EKNAGI|AKANU)K|LAKAKET)|K(?:(?:I(?:ACH)?A|HI"
+  "O)K|UTAN)|T(?:(?:MAUTLUA|QASU)K|KA)|RCTIC V(?:ILLAGE|LG)|UKE BAY|"
+  "MBLER|DAK)|T(?:(?:U(?:N(?:TUTULI|UN)|LUKS)A|(?:RAPPER CRE|YON)E)K"
+  "|A(?:(?:LKEE|KO)TNA|NA(?:CROSS|NA)|TITLEK)|E(?:NAKEE SP(?:RIN)?GS"
+  "|LLER)|O(?:K(?:SOOK BAY)?|GIAK)|W(?:IN HILL|O RIVER)S|HORNE BAY)|"
+  "P(?:O(?:RT (?:AL(?:EXANDER|SWORTH)|GRAHAM|HEIDEN|LIONS)|INT (?:BA"
+  "KER|HOPE|LAY))|E(?:RRYVILLE|TERSBURG|DRO BAY|LICAN)|R(?:T ALEXAND"
+  "ER|UDHOE BAY)|ILOT (?:STATION|POINT)|LATINUM|ALMER)|M(?:A(?:N(?:L"
+  "EY (?:HOT SPRIN|SP)GS|OKOTAK)|RSHALL)|E(?:(?:YERS CHUC|KORYU)K|NT"
+  "ASTA LAKE|TLAKATLA)|O(?:UNTAIN V(?:ILLAGE|LG)|OSE PASS)|I(?:ERS L"
+  "AKE|NTO)|C GRATH)|D(?:E(?:NALI(?: NATIONAL)? PARK|LTA J(?:UNCTION"
+  "|CT)|ERING)|I(?:LLINGHAM|OMEDE)|O(?:T LAKE|UGLAS)|UTCH HARBOR)|F("
+  "?:ORT (?:(?:RICHARDS|YUK)ON|WAINWRIGHT|GREELY)|T (?:RICHARDSON|WA"
+  "INWRIGHT)|A(?:LSE PAS|IRBANK)S|RITZ CREEK)|E(?:L(?:MENDORF AFB|FI"
+  "N COVE|IM)|(?:MMONA|GEGI|KWO|E)K|(?:NGLISH|DNA) BAY|AGLE(?: RIVER"
+  ")?|IELSON AFB|STER)|H(?:O(?:O(?:PER BAY|NAH)|LY CROSS|USTON|MER|P"
+  "E)|A(?:LIBUT COVE|INES)|U(?:GHES|SLIA)|YD(?:ABURG|ER)|EALY)|L(?:A"
+  "(?:KE MINCHUMINA|RSEN BAY)|(?:ITTLE|TL) DIOMEDE|K MINCHUMINA|OWER"
+  " KALSKAG|EVELOCK)|B(?:E(?:T(?:TLES FIELD|HEL)|AVER)|REVIG M(?:ISS"
+  "IO|S)N|A(?:DGER|RROW)|IG LAKE|UCKLAND)|G(?:A(?:(?:KO|LE)NA|MBELL)"
+  "|O(?:ODNEWS BAY|LOVIN)|LENNALLEN|IRDWOOD|RAYLING|USTAVUS)|W(?:A(?"
+  ":INWRIGHT|RD COVE|SILLA|LES)|HIT(?:E M(?:OUNTAI|T)N|TIER)|RANGELL"
+  "|ILLOW)|R(?:U(?:SSIAN M(?:ISSIO|S)N|BY)|ED DEVIL|AMPART)|I(?:GIUG"
+  "IG|LIAMNA|NDIAN)|O(?:LD HARBOR|UZINKIE)|UNALA(?:KLEET|SKA)|V(?:EN"
+  "ETIE|ALDEZ)|QUINHAGAK|YAKUTAT|JUNEAU))))$"
+  ,
+  /* -- AL -- AL -- AL -- AL -- AL -- AL -- AL -- AL -- AL -- AL -- */
+  "(?:\\b)((?^:(?i:(?:C(?:O(?:O(?:SA(?: PINES|DA)|K SPRINGS)|FFEE(?:"
+  " SP(?:RIN)?GS|VILLE)|L(?:UMBI(?:AN)?A|LINSVILLE)|A(?:L(?:BUR|IN)G"
+  "|TOPA)|TTON(?:DALE|WOOD|TON)|URTLAND|RDOVA|WARTS|DEN|KER|Y)|A(?:R"
+  "(?:(?:ROL)?LTON|BON HILL|DIFF)|M(?:P(?: HI|BE)LL|DEN)|HABA (?:HEI"
+  "G)?HTS|L(?:VERT|ERA)|STLEBERRY|THERINE|PSHAW)|H(?:A(?:NCELLOR|PMA"
+  "N|TOM)|I(?:LDERSBURG|CKASAW)|E(?:ROKEE|LSEA)|OCCOLOCCO|UNCHULA)|R"
+  "(?:E(?:STLINE (?:HEIG)?HTS|OLA)|A(?:NE HILL|GFORD)|O(?:SSVILLE|PW"
+  "ELL))|L(?:A(?:Y(?:TON)?|NTON)|O(?:VERDALE|PTON)|I(?:NTON|O)|EVELA"
+  "ND)|E(?:NT(?:R(?:EVILL)?E|ER POINT)|DAR BLUFF|CIL)|U(?:(?:SSET|B)"
+  "A|LLMAN)|ITRONELLE|YPRESS)|S(?:A(?:R(?:DIS(?: CITY)?|ALAND)|INT ("
+  "?:STEPHENS|ELMO)|(?:WYERVILL|YR)E|M(?:ANTHA|SON)|L(?:IPTA|EM)|ND "
+  "?ROCK|FFORD|GINAW|TSUMA)|T(?:E(?:(?:RRET|WAR)T|VENSON|ELE)|(?:A(?"
+  ":PLE|N)|OCK)TON| STEPHENS)|H(?:O(?:RTER(?:VILLE)?|AL CREEK)|E(?:F"
+  "FIELD|LBY)|ANNON)|P(?:R(?:ING(?: GARDEN|VILLE)|UCE PINE|OTT)|ANIS"
+  "H FORT)|Y(?:L(?:VAN(?: SP(?:RIN)?GS|IA)|ACAUGA)|CAMORE)|U(?:M(?:M"
+  "ERDALE|ITON)|LLIGENT|NFLOWER)|(?:O(?:MERVILL|UTHSID)|KIPPERVILL)E"
+  "|E(?:M(?:INOLE|MES)|CTION|ALE|LMA)|I(?:L(?:VERHILL|URIA|AS)|PSEY)"
+  "|MITHS(?: STA(?:TION)?)?|N(?:OW HILL|EAD)|WEET WATER|COTTSBORO|LO"
+  "COMB)|M(?:A(?:R(?:ION(?: J(?:UNCTION|CT))?|GARET|BURY)|G(?:NOLIA("
+  "?: SP(?:RIN)?GS)?|AZINE)|XWELL AFB(?: GUNTER ANNEX)?|(?:PLESVILL|"
+  "YLEN)E|L(?:COLM|VERN)|FB GUN ANNX|DISON|THEWS)|O(?:U(?:N(?:T(?: ("
+  "?:(?:OLIV|HOP)E|VERNON|MEIGS)|AIN BR(?:OO)?K)|DVILLE)|LTON)|N(?:T"
+  "(?:EVALLO|GOMERY|ROSE)|ROEVILLE)|O(?:RESVILLE|DY)|R(?:RIS|VIN)|BI"
+  "LE)|C(?: (?:C(?:ULLOUGH|ALLA)|WILLIAMS|INTOSH|KENZIE|SHAN)|CULLOU"
+  "GH|KENZIE)|I(?:D(?:(?:LAND CIT|WA)Y|FIELD)|LL(?:ERVILLE|BROOK|POR"
+  "T|RY)|NTER)|E(?:(?:RIDIANVILL|NTON)E|ADOWBROOK|GARGEL|LVIN|XIA)|U"
+  "(?:SC(?:LE SHOALS|ADINE)|NFORD|LGA)|YRTLEWOOD)|B(?:R(?:O(?:OK(?:L"
+  "(?:EY F(?:IE)?LD|YN)|SIDE|WOOD)|WNSBORO)|I(?:(?:DGEPOR|LLIAN)T|ER"
+  "FIELD|GHTON)|E(?:(?:WTO|ME)N|NT)|AN(?:CHVILLE|TLEY)|DN SPRNGS|UND"
+  "IDGE|YANT)|E(?:L(?:L(?:E MINA|WOOD|AMY)|K)|A(?:R CREEK|VERTON|TRI"
+  "CE)|SSEMER|NTON|RRY)|O(?:N (?:SECOU|AI)R|LI(?:NGER|GEE)|RDEN SPRI"
+  "NGS|YKIN|OTH|AZ)|A(?:Y(?:OU LA ?BATR| MINETT)E|NKS(?:TON)?|ILEYTO"
+  "N|KERHILL)|U(?:R(?:N(?:T CORN|WELL)|KVILLE)|TLER|CKS|HL)|L(?:U(?:"
+  "E MOUNTAIN|FF PARK)|OUNTSVILLE|ACK)|I(?:G(?: COV|BE)E|LLINGSLEY|R"
+  "MINGHAM)|YNUM)|H(?:A(?:R(?:T(?:SELLE|FORD)|PERSVILLE|DAWAY|VEST)|"
+  "M(?:(?:MONDVILL|PTON COV)E|ILTON)|(?:(?:LEY|NCE)VILL|TCHECHUBBE)E"
+  "|Y(?:NEVILLE|DEN)|ZEL GREEN|CKLEBURG|VANA)|O(?:L(?:L(?:Y(?:(?: PO"
+  "N|WOO)D|TREE)|INS)|Y TRINITY|T)|(?:US|R)TON|KES BLUFF|NORAVILLE|P"
+  "E HULL|MEWOOD|DGES|OVER)|I(?:G(?:HLAND (?:HOM|LAK)E|DON)|LLSBORO)"
+  "|U(?:NTSVILLE|RTSBORO|EYTOWN|XFORD)|E(?:ADLAND|NAGAR|FLIN|LENA)|Y"
+  "TOP)|A(?:L(?:EX(?:AND(?:ER CITY|RIA)| CITY)|(?:ICEVILL|PIN)E|BERT"
+  "(?:VILLE|A)|L(?:GOOD|EN)|TO(?:ONA|N)|ABASTER|MA)|U(?:BURN(?: UNIV"
+  "(?:ERSITY)?)?|TAUGAVILLE)|N(?:D(?:ALUSIA|ERSON)|N(?:EMANIE|ISTON)"
+  ")|R(?:L(?:INGTON|EY)|DMORE|ITON|AB)|SH(?:(?:FOR|LAN)D|VILLE)|D(?:"
+  "AMSVILLE|DISON|GER)|T(?:TALLA|HENS|MORE)|B(?:BEVILLE|ERNANT)|CMAR"
+  "|KRON|XIS)|P(?:I(?:N(?:E (?:(?:LEVE|HIL)L|APPLE)|CKARD|SON)|CKENS"
+  "VILLE|KE ROAD|TTSVIEW|EDMONT|SGAH)|E(?:R(?:D(?:UE HILL|IDO)|OTE)|"
+  "T(?:ER(?:MA|SO)N|REY)|L(?:L CITY|HAM)|NNINGTON)|A(?:N(?:OLA|SEY)|"
+  "INT ROCK|LMERDALE|RRISH)|R(?:I(?:NCETON|CHARD)|A(?:TTVILL|IRI)E)|"
+  "L(?:EASANT GR(?:OVE|V)|ANTERSVILLE)|H(?:IL CAMPBELL|ENIX CITY)|OI"
+  "NT CLEAR)|F(?:O(?:R(?:T (?:M(?:C CLELLAN|ITCHELL)|D(?:EPOSIT|AVIS"
+  ")|RUCKER|PAYNE)|EST(?: HOM|DAL)E|KLAND)|STERS|LEY)|A(?:(?:(?:LKVI"
+  "L|UNSDA)L|YETT)E|IR(?:FIELD|HOPE)|CKLER)|R(?:UIT(?:HURST|DALE)|AN"
+  "K(?:VILLE|LIN)|ISCO CITY)|L(?:O(?:R(?:ENCE|ALA)|MATON)|AT ROCK)|I"
+  "(?:TZPATRICK|VE POINTS)|U(?:LTON(?:DALE)?|RMAN)|T MC ?CLELLAN|YFF"
+  "E)|L(?:O(?:W(?:(?:ER PEACH TRE| PEACH TR)E|NDESBORO)|C(?:UST FORK"
+  "|KHART)|ACHAPOKA|UISVILLE|XLEY|GAN)|A(?:(?:FAYETT|PIN)E|N(?:GSTON"
+  "|ETT)|CEYS SPRING|KE VIEW|VACA|WLEY)|I(?:(?:(?:LLI|SM)A|VINGSTO)N"
+  "|N(?:(?:COL|DE)N|EVILLE)|TTLE RIVER)|E(?:(?:XING|IGH)TON|E(?:SBUR"
+  "G|DS)|TOHATCHEE|STER|NOX|ROY)|(?:WR PCH TRE|UVERN)E|YNN)|G(?:R(?:"
+  "A(?:N(?:D BAY|T)|YSVILLE|HAM|DY)|EEN(?: POND|SBORO|VILLE)|OVE(?: "
+  "HILL|OAK))|A(?:INES(?:VILLE|TOWN)|RDEN(?: CITY|DALE)|LL(?:ANT|ION"
+  ")|YLESVILLE|DSDEN|NTT)|O(?:OD(?:WA(?:TER|Y)|SPRINGS)|RDON?|SHEN)|"
+  "U(?:NTERSVILLE|LF SHORES|RLEY|IN)|E(?:(?:ORGIAN|NEV)A|RALDINE)|LE"
+  "N(?: ALLEN|WOOD|COE)|ILBERTOWN)|W(?:A(?:L(?:KER SP(?:RIN)?GS|NUT "
+  "GROVE)|T(?:TSVILLE|ERLOO|SON)|(?:VERL|DLE)Y|R(?:RIOR|D)|GARVILLE)"
+  "|E(?:ST(?: (?:BLOCTON|GREENE)|OVER)|(?:OGUF|TUMP)KA|LLINGTON|DOWE"
+  "E|AVER|BB)|I(?:L(?:SONVILLE|MER|TON)|N(?:FIELD|G))|OOD(?:STOCK|VI"
+  "LLE|LAND)|H(?:ISTLER|ATLEY))|D(?:E(?:(?: ARMAN|ATS)VILLE|L(?:MAR|"
+  "TA)|ER PARK|MOPOLIS|CATUR|TROIT)|A(?:(?:(?:[DL]E|N)VILL|PHN)E|(?:"
+  "(?:VIS|Y)T|WS)ON|UPHIN ISLA?ND)|O(?:U(?:BLE SP(?:RIN)?G|GLA)S|(?:"
+  "CEN|R)A|LOMITE|THAN|ZIER)|I(?:X(?:ONS MILLS|IANA)|CKINSON)|U(?:NC"
+  "ANVILLE|TTON))|E(?:(?:(?:(?:DWARD|THEL)SVIL|IGHT MI)L|M(?:ELL|PIR"
+  ")| TALLASSE)E|L(?:(?:DRIDG|MOR)E|B(?:ERT)?A|KMONT|ROD)|AST(?: (?:"
+  "TALLASSEE|BREWTON)|ABOGA)|N(?:TERPRISE|SLEY)|C(?:LECTIC|HOLA)|U(?"
+  ":FAULA|TAW)|V(?:ERGREEN|A)|STILLFORK|QUALITY|XCEL|PES)|T(?:US(?:K"
+  "EGEE(?: INST(?:ITUTE)?)?|C(?:ALOOS|UMBI)A)|R(?:I(?:NITY|ANA)|USSV"
+  "ILLE|AFFORD|ENTON|OY)|H(?:O(?:MAS(?:VILLE|TON)|RSBY)|EODORE)|A(?:"
+  "LLA(?:DEGA|SSEE)|(?:NNE|YLO)R)|O(?:WN(?: CREEK|LEY)|[NX]EY)|I(?:B"
+  "BIE|TUS)|YLER)|R(?:A(?:N(?:(?:BURN|G)E|DOLPH)|IN(?:BOW CITY|SVILL"
+  "E)|GLAND|LPH|MER)|O(?:(?:(?:BERTSDA|GERSVIL)L|ANOK)E|CKFORD|SA)|E"
+  "(?:D (?:LEVEL|BAY)|HOBETH|FORM|MLAP|PTON)|U(?:SSELLVILL|TLEDG)E|I"
+  "VER(?: FALLS|SIDE)|YLAND)|V(?:A(?:L(?:LEY(?: (?:GRANDE|HEAD))?|HE"
+  "RMOSO SP(?:RINGS|G)?)|N(?:DIVER|CE))|E(?:STAVIA(?: H(?:IL)?LS)?|R"
+  "(?:BENA|NON))|IN(?:E(?:GAR BEND|MONT)|CENT|A)|LHRMOSO SPGS|REDENB"
+  "URGH)|N(?:E(?:W(?: (?:(?:CASTL|HOP|SIT)E|BROCKTON|MARKET)|(?:BER|"
+  "TO)N|VILLE|ELL)|EDHAM)|A(?:TURAL BR(?:IDGE|G)|NAFALIA|UVOO)|O(?:R"
+  "(?:THPORT|MAL)|TASULGA))|O(?:AK(?: (?:GROVE|HILL)|MAN)|WENS (?:CR"
+  "OSS ROA|X R)DS|R(?:ANGE BEACH|RVILLE)|(?:DENVILL|HATCHE)E|P(?:ELI"
+  "KA|P)|NEONTA|XFORD|ZARK)|K(?:E(?:LL(?:ERMA|YTO)N|N(?:NEDY|T))|I(?"
+  ":NS(?:TON|EY)|MBERLY|LLEN)|NOXVILLE|ANSAS)|J(?:A(?:C(?:K(?:SON(?:"
+  "S GAP|VILLE)?)?|HIN)|SPER)|E(?:FFER|MI)SON|O(?:NES|PPA))|I(?:ND(?"
+  ":IAN SP(?:RINGS(?: VILLAGE)?|GS)|N SPGS VLG)|R(?:VINGTON|ONDALE)|"
+  "DER)|U(?:NION(?: (?:SPRINGS|GROVE)|TOWN)|RIAH)|QUINTON|YORK))))$"
+  ,
+  /* -- AR -- AR -- AR -- AR -- AR -- AR -- AR -- AR -- AR -- AR -- */
+  "(?:\\b)((?^:(?i:(?:C(?:A(?:M(?:MACK V(?:ILLAGE|LG)|P(?: ROBINSON)"
+  "?|DEN)|L(?:I(?:CO ROCK|ON)|(?:AMIN)?E|DWELL)|R(?:(?:LISL|THAG)E|A"
+  "WAY)|VE (?:SPRINGS|CITY)|DDO (?:VALLEY|GAP)|S(?:[AH]|SCOE)|NEHILL"
+  "|BOT)|O(?:L(?:L(?:EGE STA(?:TION)?|INS)|UMBUS|T)|TT(?:ON PLANT|ER"
+  ")|N(?:CORD|WAY)|(?:ZAHOM|V)E|M(?:PTON|BS)|R(?:NING|D)|AL HILL|Y)|"
+  "H(?:E(?:R(?:OKEE V(?:ILLAGE|LG)|RY VALLEY)|STER)|ARL(?:ESTON|OTTE"
+  ")|IDESTER|OCTAW)|E(?:NT(?:ER(?:(?: RIDG|VILL)E|TON)|RAL CITY)|DAR"
+  "VILLE|CIL)|L(?:AR(?:K(?:(?:SVIL|EDA)L|RIDG)E|ENDON)|EVELAND|INTON"
+  ")|R(?:O(?:CKETTS BL(?:UF)?F|SSETT)|AWFORDSVI?LLE|UMROD)|U(?:SHMAN"
+  "|RTIS))|M(?:A(?:R(?:(?:KED TRE|MADUK)E|(?:SHA|VE)LL|I(?:ANNA|ON)|"
+  "BLE FALLS|CELLA)|G(?:N(?:OLIA|ESS)|AZINE)|Y(?:FLOWER|SVILLE|NARD)"
+  "|N(?:SFIELD|NING|ILA)|MMOTH SP(?:RIN)?G|(?:BELVA|UMEL)LE|(?:DISO|"
+  "LVER)N)|O(?:UNT(?: (?:(?:JUDE|ID)A|PLEASANT|VERNON|HOLLY)|AIN(?: "
+  "(?:(?:HOM|PIN)E|VIEW)|BURG))|N(?:T(?:ICELLO|ROSE)|(?:ETT|RO)E)|R("
+  "?:R(?:ILTON|OW)|O)|SCOW|KO)|C(?: (?:C(?:ASKILL|RORY)|(?:DOUGA|NEI"
+  ")L|(?:GEHE|RA)E)|CRORY|GEHEE)|I(?:N(?:ERAL SP(?:RIN)?GS|TURN)|D(?"
+  ":LAND|WAY))|E(?:L(?:BOURNE|LWOOD)|N(?:IFEE|A))|U(?:RFREESBORO|LBE"
+  "RRY)|T PLEASANT)|B(?:E(?:E(?:(?:CH GROV|DEVILL|B)E| BRANCH)|N(?:T"
+  "ON(?:VILLE)?| LOMOND)|LL(?:A VISTA|EVILLE)|R(?:RYVILLE|GMAN)|THEL"
+  " (?:HEIG)?HTS|A(?:RDEN|VER)|IRNE|XAR)|R(?:I(?:GGSVILLE|CKEYS|NKLE"
+  "Y)|A(?:D(?:FORD|LEY)|NCH)|O(?:CKWELL|OKLAND)|YANT|UNO)|L(?:U(?:FF"
+  "(?: CITY|TON)|E MOUNTAIN)|ACK(?: (?:ROC|OA)K|WELL)|YTHEVILLE|EVIN"
+  "S)|A(?:L(?:D KNOB|CH)|R(?:LING|TON)|TES(?:VILLE)?|SS(?:ETT)?|UXIT"
+  "E|NKS|Y)|O(?:N(?:NERDALE|ANZA|O)|ARD CAMP|ONEVILLE|SWELL|LES)|I(?"
+  ":G(?: FLAT|ELOW|GERS)|S(?:MARCK|COE)|RDEYE)|U(?:CK(?:VILLE|NER)|L"
+  "L SHOALS|RDETTE|SCH))|H(?:A(?:R(?:R(?:I(?:S(?:BURG|ON)|ET)|ELL)|T"
+  "(?:FORD|MAN)|(?:VE|D)Y)|T(?:T(?:IEVILLE|ON)|FIELD)|M(?:BURG|PTON)"
+  "|S(?:KELL|TY)|GARVILLE|CKETT|NOVER|VANA|YNES|ZEN)|O(?:T SPRINGS(?"
+  ": (?:NATIONAL PARK|VILLAGE))?|L(?:IDAY ISL(?:AND|E)|L(?:Y GROVE|A"
+  "ND))|R(?:SESHOE (?:L(?:AKE|K)|BE?ND)|ATIO)|(?:XI|P)E|USTON|WELL)|"
+  "I(?:CKORY (?:PL(?:AI)?NS|RIDGE)|G(?:(?:GINSO|DE)N|HLAND)|(?:NDSVI"
+  "LL|WASS)E)|E(?:N(?:DERSON|SLEY)|BER SPRINGS|RMITAGE|CTOR|LENA|TH)"
+  "|U(?:NT(?:INGTON|SVILLE|ER)?|M(?:PHREY|NOKE)|GHES|TTIG))|S(?:T(?:"
+  "A(?:TE UNIV(?:ERSITY)?|R CITY|MPS)|R(?:AWBERRY|ONG)|U(?:TTGART|RK"
+  "IE)|EP(?:HENS|ROCK)|ORY)|A(?:INT (?:(?:CHARLE|FRANCI)S|PAUL|JOE)|"
+  "L(?:E(?:SVILLE|M)|ADO)|RATOGA|FFELL|GE)|U(?:LPHUR (?:SP(?:RIN)?GS"
+  "|ROCK)|MM(?:ERS|IT)|BIACO|CCESS)|H(?:ER(?:IDAN|RILL|WOOD)|ANNON H"
+  "ILLS|IRLEY)|P(?:RING(?:FIELD|DALE|TOWN)|ARKMAN)|I(?:(?:LOAM SP(?:"
+  "RIN)?G|M)S|DNEY)|C(?:OT(?:LAND|T)|RANTON)|M(?:ITHVILLE|ACKOVER)|W"
+  "(?:EET HOME|IFTON)|E(?:DGWICK|ARCY)|OLGOHACHIA|NOW LAKE)|W(?:I(?:"
+  "L(?:LI(?:(?:AMS BAPTIST COLLEG|SVILL)E|FORD)|(?:[ST]O|BUR)N|M(?:A"
+  "R|OT))|N(?:CHESTER|THROP|SLOW)|EDERKEHR V(?:ILLAGE|G)|TT(?:S SPRI"
+  "NGS|ER)|DE(?:MAN|NER)|SEMAN|CKES)|A(?:L(?:D(?:ENBURG|RON|O)|NUT R"
+  "IDGE|COTT)|R(?:M SPRINGS|REN|D)|(?:SHINGT|TS)ON|B(?:BASEKA|ASH)|V"
+  "ELAND)|E(?:S(?:T(?: (?:MEMPHIS|HELENA|POINT|RIDGE|FORK)|ERN GROVE"
+  ")|LEY)|INER)|H(?:E(?:LEN SP(?:RIN)?GS|ATLEY|ELER)|ITE HALL)|(?:MS"
+  " COLLEG|YNN)E|RIGHT(?:SVILLE)?|OO(?:DSON|STER))|P(?:O(?:(?:PLAR G"
+  "ROV|UGHKEEPSI|TTSVILL)E|(?:WHATA|YE)N|RT(?:LAND|IA)|CAHONTAS|LLAR"
+  "D|NCA)|A(?:R(?:K(?:DALE|IN|S)|(?:THEN)?ON|AGOULD|IS)|(?:TTERSO|NG"
+  "BUR)N|LESTINE)|E(?:A(?:CH ORCHARD| RIDGE|RCY)|RRY(?:VILLE)?|NCIL "
+  "BLUFF|TTIGREW|LSOR|EL)|L(?:EASANT (?:GR(?:OVE|V)|PL(?:AI)?NS)|UME"
+  "RVILLE|AINVIEW)|I(?:N(?:E(?: (?:BLUFF|RIDGE)|VILLE)|DALL)|CKENS|G"
+  "GOTT)|R(?:A(?:IRIE GROV|TTSVILL)E|ESCOTT|OCTOR|IM)|YATT)|G(?:R(?:"
+  "E(?:E(?:N(?:W(?:OOD|AY)| FOREST|BRIER|LAND)|RS FERRY)|GORY)|A(?:V"
+  "E(?:L(?: RIDGE|LY)|TTE)|PEVINE|NNIS|DY)|IFFITHVILLE|UBBS)|A(?:R(?"
+  ":LAND CITY|FIELD|NER)|SSVILLE|MALIEL|TEWAY)|E(?:N(?:TRY|OA)|ORGET"
+  "OWN|PP)|IL(?:L(?:ETT|HAM)|BERT|MORE)|O(?:S(?:NELL|HEN)|ODWIN|ULD)"
+  "|U(?:(?:RD|I)ON|Y)|LEN(?:WOOD|COE))|L(?:A(?:KE(?: (?:HAMILTON|VIL"
+  "LAGE|CITY)|VIEW)|N(?:EBURG|GLEY)|(?: GRANG|F)E|M(?:BROOK|AR)|VACA"
+  "|WSON)|E(?:A(?:CHVILLE|D HILL)|(?:WISVILL|SLI)E|(?:TON|OL|X)A|PAN"
+  "TO)|O(?:C(?:UST GROVE|KESBURG)|N(?:(?:SDAL|OK)E|DON)|UANN|WELL)|I"
+  "(?:TTLE ROCK(?: A(?:IR FORCE BASE|FB))?|NCOLN|GHT)|R ?AFB|UXORA|Y"
+  "NN)|D(?:E(?: (?:VALLS BL(?:UF)?F|QUEEN|WITT)|L(?:A(?:PLAIN|WAR)E|"
+  "IGHT|L)|(?:RMO|WI)TT|S(?: ARC|HA)|(?:CATU|E)R|VALLS BLUFF|NNARD)|"
+  "A(?:(?:RDANE|NVI)LLE|MASCUS|TTO)|O(?:DDRIDGE|NALDSON|LPH|VER)|I(?"
+  ":A(?:MOND CITY|Z)|ERKS)|R(?:ASCO|IVER)|YE(?:SS|R)|UMAS)|E(?:L(?:("
+  "?:M SPRING|KIN)S| (?:DORAD|PAS)O|IZABETH|AINE)|V(?:E(?:NING SHADE"
+  "|RTON)|ANSVILLE)|U(?:REKA SP(?:RIN)?GS|DORA)|D(?:MONDSON|GEMONT)|"
+  "A(?:ST CAMDEN|RLE)|M(?:ERSON|MET)|N(?:GLAND|OLA)|T(?:OWAH|HEL)|GY"
+  "PT)|F(?:O(?:R(?:REST CITY|T SMITH|DYCE|EMAN)|U(?:NTAIN (?:HILL|LA"
+  "KE)|KE)|X)|A(?:IR(?:FIELD BAY| OAKS)|YETTEVILLE|RMINGTON)|R(?:ENC"
+  "HMAN(?:S BAYO| BY)U|IENDSHIP|ANKLIN)|I(?:FTY SIX|SHER)|L(?:IPPIN|"
+  "ORAL)|ULTON)|A(?:L(?:T(?:HEIMER|US)|P(?:ENA|INE)|I(?:CIA|X)|M(?:Y"
+  "R)?A|EXANDER|LEENE|CO)|R(?:KA(?:NSAS CITY|DELPHIA)|MOREL)|U(?:GUS"
+  "TA|BREY|STIN)|SH(?: FLAT|DOWN)|M(?:AGON|ITY)|(?:DON|VOC)A|PPLETON"
+  "|NTOINE|TKINS)|R(?:O(?:S(?:E BUD|STON|IE)|(?:UND PO|LA)ND|(?:HW|V"
+  ")ER|(?:MANC)?E|CKPORT|GERS|YAL)|A(?:VENDEN(?: SP(?:RIN)?GS)?|TCLI"
+  "FF)|E(?:Y(?:DELL|NO)|DFIELD|CTOR)|U(?:SSELL(?:VILLE)?|DY)|I(?:VER"
+  "VALE|SON))|T(?:U(?:MBLING SH(?:OA)?LS|R(?:RELL|NER)|CKER(?:MAN)?|"
+  "PELO|LL)|I(?:LL(?:AR|Y)|CHNOR|MBO)|(?:EXARKAN|YRONZ)A|R(?:ASKWOOD"
+  "|UMANN)|WI(?:N GROVES|ST)|H(?:ORNTON|IDA)|ONTITOWN|AYLOR)|J(?:E(?"
+  ":(?:SSIEVILL|NNI)E|R(?:USALEM|SEY)|FFERSON)|O(?:NES(?: MILL|BORO)"
+  "|(?:HNSO|RDA)N|INER)|A(?:CKSON(?:VILLE|PORT)|SPER)|U(?:NCTION CIT"
+  "Y|DSONIA))|N(?:O(?:R(?:(?:TH LITTLE ROC|FOR)K|PHLET|MAN)| LITTLE "
+  "ROCK)|EW(?: (?:EDINBURG|BLAINE)|HOPE|PORT|ARK)|A(?:TURAL DAM|SHVI"
+  "LLE)| LITTLE ROCK|LR)|O(?:(?:N(?:EID|I)|KOLON|SCEOL|MAH)A|A(?:K(?"
+  ": GROVE|LAND)|RK)|Z(?:A(?:RK|N)|ONE)|(?: KEA|G?DE)N|L(?:D JOE|A)|"
+  "IL TROUGH|PPELO|XFORD)|V(?:A(?:N(?:DERVOORT| BUREN|NDALE)|LLEY SP"
+  "(?:RIN)?GS)|I(?:OL(?:ET HILL|A)|L(?:LAGE|ONIA))|ENDOR)|K(?:I(?:NG"
+  "S(?:LAND|TON)|RBY)|E(?:NSETT|ISER|O)|NO(?:XVILLE|BEL))|U(?:NIONTO"
+  "WN|MPIRE|RBANA|LM)|I(?:(?:MBODE|VA)N|DA)|Y(?:ELLVILLE|ORKTOWN)|(?"
+  ":QUITMA|ZIO)N))))$"
+  ,
+  /* -- AS -- AS -- AS -- AS -- AS -- AS -- AS -- AS -- AS -- AS -- */
+  "(?:\\b)((?^:(?i:PAGO PAGO)))$"
+  ,
+  /* -- AZ -- AZ -- AZ -- AZ -- AZ -- AZ -- AZ -- AZ -- AZ -- AZ -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:N(?: (?:(?:CARLO|LUI)S|MANUEL|SIMON)|T"
+  "A RITA(?: FOOTHILLS)?|DERS)|INT (?:(?:MICHAEL|JOHN)S|DAVID)|(?:DD"
+  "LEBROOK|LOM|SAB)E|HUARITA|CATON|FFORD)|U(?:N(?: (?:CITY(?: WEST)?"
+  "|VALLEY|LAKES)|SITES)|P(?:ER(?:STITION MTN|IOR)|RSTON MTN|AI)|RPR"
+  "ISE)|T(?:A(?:R VALLEY|NFIELD)| MICHAELS|RAWBERRY)|E(?:(?:COND MES"
+  "|DON)A|L(?:IGMAN|LS))|O(?:(?:MERT|LOM)ON|NOITA)|PRING(?: VALLEY|E"
+  "RVILLE)|(?:COTTSDAL|NOWFLAK)E|HO(?:W LOW|NTO)|IERRA VISTA|KULL VA"
+  "LLEY)|C(?:O(?:R(?:ONA(?: DE TUC(?:SON)?)?|DES LAKES|NVILLE|TARO)|"
+  "(?:OLIDG|CHIS)E|N(?:GRESS|CHO)|LORADO CITY|TTONWOOD)|A(?:S(?:A GR"
+  "ANDE|HION)|M(?:P VERDE|ERON)|VE CREEK|REFREE|TALINA)|H(?:A(?:NDLE"
+  "R(?: (?:HEIG)?HTS)?|MBERS)|IN(?:O VALLEY|LE)|LORIDE)|L(?:A(?:Y(?:"
+  " SPRINGS|POOL)|RKDALE)|IFTON)|IB(?:ECUE|OLA)|ROWN KING|ENTRAL|TC)"
+  "|P(?:A(?:R(?:K(?:S(?: COMM PO)?|ER)|ADISE V(?:ALLE|L)Y)|(?:LO VER"
+  "D|G)E|(?:ULDE|YSO)N|TAGONIA)|E(?:TRIFIED FOR(?:EST NATL PK)?|A(?:"
+  "CH SPRINGS|RCE)|EPLES V(?:ALLE|L)Y|RIDOT|ORIA)|I(?:SINEMO(?: TRAD"
+  "ING POST)?|N(?:E(?:DALE|TOP)?|ON)|RTLEVILLE|CACHO|MA)|O(?:MERENE|"
+  "LACCA|RTAL|STON)|RESCOTT(?: V(?:ALLE|L)Y)?|HOENIX)|T(?:O(?:N(?:TO"
+  " BASIN|ALEA|OPAH)|L(?:LESON|TEC)|P(?:AWA|OCK)|RTILLA FLAT|MBSTONE"
+  ")|E(?:MP(?:L(?:E BAR MARINA| BAR MAR)|E)|EC NOS POS)|U(?:BA(?: CI"
+  "TY|C)|MACACORI|CSON)|A(?:YLOR|CNA)|HATCHER|SAILE)|M(?:A(?:R(?:(?:"
+  "ICOP|AN)A|BLE CANYON|TINEZ LAKE)|DERA CANYON|NY FARMS|MMOTH|YER)|"
+  "O(?:R(?:MON LAKE|RISTOWN|ENCI)|HAVE VALLEY|UNT LEMMON|BILE)|C(?: "
+  "NEAL|NARY)|E(?:ADVIEW|SA)|UNDS PARK|IAMI)|G(?:R(?:A(?:Y MOUNTAI|N"
+  "D CANYO)N|EE(?:N VALLEY|R)|OOM CREEK)|O(?:LD(?:EN VALLEY| CANYON)"
+  "|ODYEAR)|L(?:ENDALE(?: LUKE AFB)?|OBE)|IL(?:A BEND|BERT)|A(?:DSDE"
+  "N|NADO)|UADALUPE|BAFAF)|W(?:I(?:N(?:DOW ROCK|KELMAN|SLOW)|LL(?:OW"
+  " BEACH|IAMS|COX)|CKENBURG|TTMANN|KIEUP)|H(?:ITE(?: (?:M(?:OUNTAIN"
+  " LAKE|TN LK)|HILLS)|RIVER)|Y)|E(?:LLTO|NDE)N|OODRUFF|ADDELL)|L(?:"
+  "A(?:KE(?: (?:HAVASU CITY|MONTEZUMA)|SIDE)|VEEN)|U(?:K(?:E(?:VILLE"
+  "| AFB)|ACHUKAI)|PTON)|IT(?:CHFIELD P(?:AR)?K|TLEFIELD)|K (?:HAVAS"
+  "U CTY|MONTEZUMA)|EUPP)|B(?:L(?:ACK C(?:ANYON CI|YN C)TY|UE(?: GAP"
+  ")?)|E(?:NS(?:CH RANCH|ON)|LLEMONT)|U(?:LLHEAD CITY|CKEYE)|(?:O(?:"
+  "US|WI)|ISBE)E|A(?:PCHULE|GDAD)|YLAS)|F(?:O(?:R(?:T (?:(?:DEFIANC|"
+  "APACH)E|M(?:CDOWELL|OHAVE)|HUACHUCA|THOMAS)|EST LAKES)|UNTAIN H(?"
+  ":IL)?LS)|L(?:AGSTAFF|ORENCE)|REDONIA|T GRANT)|A(?:R(?:I(?:ZONA (?"
+  ":STATE UNIVERS|C)ITY|VACA)|LINGTON)|PACHE J(?:UNCTION|CT)|(?:VOND"
+  "AL|LPIN)E|S(?:H FORK|U)|(?:MAD|J)O|GUILA|NTHEM)|D(?:E(?:SERT HILL"
+  "S|NNEHOTSO|WEY)|A(?:VIS MONTHAN AFB|TELAND)|O(?:LAN SPRING|UGLA)S"
+  "|U(?:DLEYVILLE|NCAN)|RAGOON|M AFB)|H(?:U(?:A(?:CHUCA CITY|LAPAI)|"
+  "MBOLDT)|A(?:PPY JACK|CKBERRY|YDEN)|O(?:(?:LBROO|UC)K|TEVILLA)|E(?"
+  ":REFORD|BER)|IGLEY)|R(?:O(?:CK (?:SPRINGS|POINT)|UND ROCK|OSEVELT"
+  "|LL)|I(?:O (?:VERDE|RICO)|LLITO|MROCK)|ED (?:VALLEY|ROCK))|K(?:YK"
+  "OTSMOVI(?: VILLAGE)?|EA(?:MS CANYON|RNY)|I(?:RKLAND|NGMAN)|A(?:IB"
+  "ETO|YENTA))|E(?:L(?:EVEN MILE(?: CORNER)?| MIRAGE|FRIDA|GIN|OY)|H"
+  "RENBERG|AGAR|DEN)|Y(?:U(?:MA(?: PROVING GROUND)?|CCA)|OUNG(?:TOWN"
+  ")?|ARNELL|PG)|N(?:O(?:RTH RIM|GALES)|A(?:ZLINI|CO)|EW RIVER|UTRIO"
+  "SO)|V(?:A(?:L(?:LEY FARMS|ENTINE)|IL)|ERNON)|O(?:R(?:O VALLEY|ACL"
+  "E)|VERGAARD|ATMAN)|QU(?:EEN (?:VALLEY|CREEK)|ARTZSITE)|I(?:NDIAN "
+  "WELL|RON SPRING)S|J(?:OSEPH CITY|EROME)))))$"
+  ,
+  /* -- CA -- CA -- CA -- CA -- CA -- CA -- CA -- CA -- CA -- CA -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:N(?: (?:(?:F(?:RANCISC|ERNAND)|B(?:ERN"
+  "ARDI|RU)N|P(?:ABL|EDR)|YSIDR)O|J(?:UAN (?:CAP(?:ISTRAN)?O|BAUTIST"
+  "A)|O(?:AQUIN|SE)|ACINTO)|L(?:U(?:IS (?:OBISPO|REY)|CAS)|(?:EANDR|"
+  "ORENZ)O)|M(?:A(?:R(?:COS|INO|TIN)|TEO)|IGUEL)|G(?:(?:ERONIM|REGOR"
+  "I)O|ABRIEL)|A(?:N(?:DREAS|SELMO)|RDO)|C(?:LEMENTE|ARLOS)|(?:QUENT"
+  "I|SIMEO)N|RA(?:FAEL|MON)|DI(?:EGO|MAS))|T(?:A (?:R(?:OSA(?: VA(?:"
+  "LLEY)?)?|ITA P(?:AR)?K)|(?:(?:NEL|PAU)L|(?:SUS)?AN|BARBAR)A|M(?:A"
+  "R(?:GAR(?:ITA)?|IA)|ONICA)|C(?:LAR(?:IT)?A|RUZ)|FE SP(?:RIN)?GS|Y"
+  "(?:SABEL|NEZ))|EE)|D CITY|FORD|GER)|L(?:I(?:NAS|DA)|TON CITY|YER)"
+  "|RATOGA(?: H(?:IL)?LS)?|(?:INT HELEN|MO)A|U(?:SALITO|GUS)|WYERS B"
+  "AR|CRAMENTO|TTLEY)|T(?:RA(?:WB(?:ERR(?:Y VALLE)?|RRY VL)Y|T(?:HMO"
+  "RE|FORD))|A(?:N(?:D(?:ARD|ISH)|FORD|TON)|LLION SP(?:RIN)?GS)|E(?:"
+  "V(?:ENSON R(?:ANC|N)H|INSON)|WARTS P(?:OIN)?T)|I(?:NSON BEACH|RLI"
+  "NG CITY)|O(?:NYFORD|CKTON|RRIE)|UDIO CITY)|O(?:U(?:TH (?:(?:(?:EL"
+  " MON|GA)T|LAKE TAHO)E|SAN FRANCISCO|DOS PALOS|PASADENA)|LSBYVILLE"
+  ")|L(?:ANA BEACH|EDAD|VANG)|M(?:E(?:S BAR|RSET)|IS)|DA SPRINGS|NO["
+  "MR]A|QUEL)|H(?:E(?:R(?:MAN (?:V(?:ILLAGE|LG)|OAKS)|IDAN)|(?:EP RA"
+  "N|LL BEA)CH)|A(?:STA(?: LAKE)?|DOW HILLS|VER LAKE|FTER|NDON)|INGL"
+  "E(?: SP(?:RIN)?GS|TOWN)|OSHONE)|U(?:N(?: (?:V(?:ILLAGE|ALLEY)|CIT"
+  "Y)|SET BEACH|NYVALE|LAND|OL)|MM(?:IT CITY|ERLAND)|(?:SANVILL|RFSI"
+  "D)E|TTER(?: CREEK)?|ISUN CITY|GARLOAF|LTANA)|E(?:Q(?:UOIA NATIONA"
+  "L PAR| NATL P)K|A(?:L BEACH|SIDE)|(?:IAD VAL|E)LEY|(?:PULVED|LM)A"
+  "|BASTOPOL)|P(?:R(?:ING(?: (?:VALLEY(?: LAKE)?|GARDEN)|VILLE)|ECKE"
+  "LS)|G VALLEY LK|ANISH FLAT)|I(?:ERRA(?: (?:MADRE|CITY)|VILLE)|GNA"
+  "L HILL|MI VALLEY|LVERADO)| (?:(?:LAKE TAHO|EL MONT)E|DOS PALOS|PA"
+  "SADENA|SAN FRAN)|N(?: (?:JUN BATSTA|LUIS OBISP|BERNRDNO)|ELLING)|"
+  "COT(?:T(?:S VALLEY| BAR)|IA)|M(?:ITH RIVER|ARTVILLE)|WALL MEADOWS"
+  "|QUAW VALLEY|LOUGHHOUSE|KYFOREST|YLMAR)|C(?:A(?:L(?:I(?:F(?:ORNIA"
+  " (?:HOT SPRINGS|CITY)| (?:HOT SPG|CITY))|(?:PATRI|STOG|MES)A|ENTE"
+  ")| POLY (?:UNIVERSITY|SLO)|ABASAS(?: H(?:IL)?LS)?|P(?:ELLA|INE)|E"
+  "XICO|LAHAN)|R(?:M(?:EL(?: (?:BY THE(?: SEA)?|VALLEY))?|ICHAEL)|DI"
+  "FF(?: BY THE SEA)?|L(?:OTTA|SBAD)|NELIAN BAY|PINTERIA|UTHERS|TAGO"
+  "|SON)|M(?:P(?: (?:(?:PENDLET|NELS)ON|CONNELL|MEEKER)|(?:O SEC)?O|"
+  "TONVILLE|BELL)|(?:ARILL|IN)O|ERON PARK|BRIA)|N(?:YON(?: (?:C(?:OU"
+  ")?NTRY|LAKE|DAM))?|T(?:UA CREEK|IL)|OGA PARK|BY)|S(?:T(?:RO(?: VA"
+  "LLEY|VILLE)|ELLA|AIC)|MALIA|PAR|SEL)|P(?:I(?:STRANO BEACH|TOLA)|O"
+  " BEACH|AY)|THE(?:YS V(?:ALLE|L)|DRAL CI?T)Y|ZADERO|BAZON|YUCOS|DI"
+  "Z)|O(?:R(?:RAL(?: DE TIE(?:RRA)?|ITOS)|ONA(?: DE?L MAR|DO)?|N(?:E"
+  "LL|ING)|TE MADERA|CORAN)|L(?:(?:U(?:MBI|S)|O?M)A|D SPRINGS|LEGE C"
+  "ITY|EVILLE|FAX|TON)|A(?:(?:CHELL|LING)A|RSEGOLD)|T(?:O DE CAZA|TO"
+  "NWOOD|ATI)|(?:WAN HEIGHT|PPEROPOLI)S|M(?:PT(?:CHE|ON)|MERCE)|U(?:"
+  "LTERVILLE|RTLAND)|V(?:ELO|INA)|STA MESA|HASSET|NCORD|YOTE|BB|OL)|"
+  "H(?:I(?:(?:RIACO S(?:UMMI|M)|LCOO)T|N(?:O(?: HILLS)?|ESE CAMP)|C("
+  "?:AGO PARK|O))|A(?:L(?:FANT(?: V(?:ALLE|L)Y)?|LENGE)|TSWORTH)|E(?"
+  ":RRY VALLEY|STER)|U(?:LA VISTA|ALAR)|OWCHILLA)|R(?:ES(?:CENT (?:M"
+  "(?:IL)?LS|CITY)|T(?: PARK|LINE|ON)|SEY)|O(?:W(?:S LANDING|LEY LAK"
+  "E)|CKETT|MBERG)|YSTAL(?: CITY|AIRE))|L(?:E(?:ARLAKE(?: (?:P(?:AR)"
+  "?K|OA?KS))?|MENTS)|A(?:R(?:KSBURG|EMONT)|YTON)|I(?:PPER MILLS|O)|"
+  "OV(?:ERDALE|IS))|E(?:DAR(?: (?:RIDGE|GLEN)|PINES P(?:AR)?K|VILLE)"
+  "|NT(?:RAL V(?:ALLE|L)|URY CIT)Y|R(?:RITO|E)S)|I(?:T(?:Y (?:(?:OF "
+  ")?INDUSTRY|RANCH)|RUS (?:HEIG)?HTS)|MA)|U(?:(?:LVER CIT|DAH)Y|T(?"
+  ":LER|TEN)|PERTINO|YAMA)|MP PENDLETON|TY OF CMMRCE|YPRESS)|P(?:A(?"
+  ":L(?:O(?:S VERDES (?:PENINSULA|ESTATES)|MAR (?:M(?:OUNTAI|T)N|PAR"
+  "K)| (?:(?:CEDR|ALT)O|VERDE))|M(?: (?:SPRINGS|DESERT)|DALE)|ERMO|A"
+  ")|C(?:IFIC(?: (?:P(?:ALISADE|LSD)S|(?:GROV|HOUS)E)|A)|HECO|OIMA)|"
+  "R(?:K(?:ER DAM|FIELD)|A(?:MOUNT|DISE)|LIER)|S(?:(?:ADEN|KENT)A|O "
+  "ROBLES)|(?:NORAMA CIT|UMA VALLE)Y|TT(?:ERS)?ON|YNES CREEK|ICINES|"
+  "JARO)|O(?:RT(?: (?:HUENEM(?:E CBC BAS)?E|COSTA)|OLA(?: (?:VALLE?Y"
+  "|HILLS))?|ER(?: RANCH|VILLE))|INT (?:R(?:EYES STATION|ICHMOND)|MU"
+  "GU NAWC|ARENA)|T(?:TER VALLEY|RERO)|P(?:E VALLEY|LAR)|LLOCK PINES"
+  "|(?:SE|WA)Y|MONA)|I(?:N(?:E(?: (?:M(?:OUNTAIN CLU|TN CL)B|VALLEY|"
+  "GROVE)|CREST|DALE)|O(?:N HILLS|LE))|E(?:D(?:MONT|RA)|RCY)|ONEER(?"
+  ":TOWN)?|CO RIVERA|SMO BEACH|LOT HILL|TTSBURG|XLEY|RU)|L(?:A(?:YA "
+  "(?:DEL REY|VISTA)|CE(?:RVILLE|NTIA)|(?:NAD|TIN)A)|EASANT(?: (?:GR"
+  "(?:OVE|V)|HILL)|ON)|S VRDS (?:PNSL|EST)|UMAS LAKE|YMOUTH)|E(?:N(?"
+  ":N(?: VALLEY|GROVE)|RYN)|AR(?:SONVILLE|BLOSSOM)|R(?:MANENTE|RIS)|"
+  "T(?:ALUM|ROLI)A|BBLE BEACH|SCADERO)|R(?:ESIDIO (?:OF MONTERE|MTR)"
+  "Y|(?:T HUENEM|UNEDAL)E|O(?:JECT CITY|BERTA)|INCETON|ATHER)|H(?:IL"
+  "(?:LIPS(?: RA?NCH|VILLE)|O)|ELAN)|T (?:R(?:EYES STA|ICHMOND)|MUGU"
+  " NAWC)|U(?:MPKIN C(?:ENTE|T)R|LGA))|L(?:A(?: (?:C(?:ANADA(?: FL(?"
+  ":INTRIDGE|T))?|RESCENTA)|H(?:ABRA(?: H(?:EIGH|G)TS)?|ONDA)|(?:M(?"
+  ":IRAD|ES)|QUINT|JOLL)A|P(?:(?:UEN|OR)TE|ALMA)|SELVA B(?:EA)?CH|(?"
+  ":GRANG|VERN)E)|KE(?: (?:A(?:RROWHEAD|LMANOR)|(?:ISABELL|BALBO)A|L"
+  "(?:OS ANGELES|A)|VIEW TER(?:RACE)?|ELSINORE|SHERWOOD|FOREST|HUGHE"
+  "S|CITY)|(?:HEA|WOO)D|S(?:HOR|ID)E|PORT|VIEW)|GUN(?:A (?:(?:HILL|W"
+  "OOD)S|NIGUEL|BEACH)|ITAS)|(?:(?:YTONVIL|WNDA)L|FAYETT)E|T(?:HROP|"
+  "ROBE|ON)|N(?:CASTER|DERS)|RK(?:FIELD|SPUR)|M(?:IRADA|ONT)|DERA RA"
+  "NCH)|O(?:S(?: (?:A(?:L(?:TO(?:S HILL)?|AM(?:IT)?O)S|NG(?:ELES(?: "
+  "AFB)?|LS AFB))|(?:(?:MOLI|BA)N|(?:NIE|GA)T|O(?:LIV|S))OS)|T HILLS"
+  ")|M(?:A (?:(?:LIND|RIC)A|MAR)|ITA|POC)|C(?:K(?:EFOR|WOO)|H LOMON)"
+  "D|N(?:G B(?:EACH|ARN)|E PINE)|O(?:KOUT|MIS)|WER LAKE|YALTON|LETA|"
+  "TUS|DI)|I(?:T(?:TLE(?: (?:VALLEY|RIVER|LAKE)|R(?:IVER|OCK))|CHFIE"
+  "LD)|N(?:COLN(?: (?:(?:HEIG)?HT|ACRE)S)?|D(?:SAY|EN|A))|V(?:E(?:RM"
+  "ORE| OAK)|INGSTON)|BERTY FARMS|KELY)|E(?:MO(?:ORE(?: NA(?:VAL AIR"
+  " STATION|S))?|N (?:GR|C)OVE)|IMERT PARK|ONA VALLEY|E VINING| GRAN"
+  "D|WISTON|GGETT|NNOX|BEC)|U(?:CERNE(?: V(?:ALLE|L)Y)?|DLOW)|Y(?:TL"
+  "E CREEK|NWOOD|OTH)|K ARROWHEAD|LANO)|M(?:O(?:N(?:T(?:E(?: (?:(?:S"
+  "EREN|NID|RI)O|VISTA)|(?:BELL|CIT)O|REY(?: PARK)?)|GOM(?:ERY CREE|"
+  "RY CR)K|A(?:GUE|RA)|CLAIR|ROSE)|O(?: HOT SP(?:RIN)?GS|LITH)|ARCH "
+  "B(?:EACH|AY)|ROVIA)|UNT(?: (?:(?:(?:H(?:AMILT|ERM)|WILS)O|EDE)N|("
+  "?:LAGUN|SHAST)A|AUKUM)|AIN (?:C(?:ENTE|T)R|HOUSE|RANCH|MESA|PASS|"
+  "VIEW))|R(?:(?:ONGO V(?:ALLE|L)|ENO VALLE|RO BA)Y|GAN HILL|A[DG]A)"
+  "|SS (?:LANDING|BEACH)|KELUMNE H(?:IL)?L|FFETT FIELD|CCASIN|ORPARK"
+  "|DESTO|JAVE)|A(?:R(?:I(?:NA(?: DE?L REY)?|(?:COP|POS)A)|CH A(?:IR"
+  " RESERVE BASE|RB)|(?:KLEE|YS)VILLE|T(?:INEZ|ELL)|SHALL)|N(?:HATTA"
+  "N B(?:EA)?CH|T(?:ECA|ON)|CHESTER)|D(?:E(?:LINE|RA)| RIVER|ISON)|("
+  "?:CDOE|XWEL)L|MMOTH LAKES|GALIA|YWOOD|LIBU|THER)|I(?:L(?:L(?: (?:"
+  "VALLEY|CREEK)|(?:VILL|BRA)E)|PITAS|FORD)|D(?:WAY CITY|DLETOWN|PIN"
+  "ES)|RA(?:(?: LOM|N?D)A|MONTE)|SSION (?:HILLS|VIEJO)| WUK V(?:ILLA"
+  "GE|LG)|NERAL)|E(?:N(?:DO(?:CINO|TA)|(?:IFE|TON)E|LO PARK)|ADOW V("
+  "?:ALLEY|ISTA)|R(?:IDIAN|CED)|CCA)|C(?: (?:KI(?:NLEYVILLE|TTRICK)|"
+  "FARLAND)|CL(?:ELLAN|OUD)|KINLEYVILLE|ARTHUR)|T(?: (?:HAMILTON|BAL"
+  "DY)|N (?:HOUSE|RANCH))|U(?:R(?:RIETA|PHYS)|IR BEACH|SCOY)|YERS FL"
+  "AT)|B(?:E(?:L(?:L(?: (?:GARDENS|CANYON)|A VISTA|FLOWER)?|VEDERE(?"
+  ": TIBURON)?|(?: TIBURO|DE)N|MONT)|A(?:R V(?:ALLEY(?: SPRINGS)?|LY"
+  " SPGS)|LE AFB|UMONT)|R(?:MUDA DUNES|RY CREEK|KELEY|ENDA)|N(?: LOM"
+  "OND|ICIA|TON)|THEL ISLAND|VERLY HILLS|CKWOURTH)|R(?:O(?:WNS(?: VA"
+  "LLEY|VILLE)|OK(?:DALE|S)|ADMOOR VLG|DERICK)|A(?:(?:D(?:BUR|LE)|WL"
+  "E)Y|N(?:SCOMB|DEIS))|I(?:DGE(?:VILLE|PORT)|SBANE|ONES)|Y(?:(?:LAN"
+  "|T)E|N MAWR)|E(?:NTWOOD|A))|O(?:R(?:REGO SP(?:RIN)?GS|ON)|D(?:EGA"
+  "(?: BAY)?|FISH)|N(?:NY DOON|SALL|ITA)|UL(?:DER CREEK|EVARD)|YES H"
+  "OT SP(?:RINGS|G)|(?:X CANYO|WMA)N|ONVILLE|LINAS)|A(?:L(?:DWIN (?:"
+  "HILLS|PARK)|BOA(?: ISLAND)?|L(?:ARD|ICO))|N(?:NING|GOR|TA)|Y(?: P"
+  "OINT|SIDE)|SS(?: LAKE|ETT)|KER(?:SFIELD)?|R(?:STOW|D)|DGER)|I(?:G"
+  "(?: (?:B(?:E(?:AR (?:CITY|LAKE)|ND)|AR)|OAK (?:V(?:ALLE|L)Y|FLAT)"
+  "|(?:RIVE|SU)R|CREEK|PINE)|GS)|RDS L(?:ANDIN|ND)G|EBER|SHOP|OLA)|U"
+  "(?:TT(?:E (?:(?:VALLE|CIT)Y|MEADOWS)|ONWILLOW)|R(?:N(?:T RANCH|EY"
+  ")|LINGAME|BANK|REL|SON)|E(?:NA PARK|LLTON))|L(?:A(?:IRSDEN(?:-GRA"
+  "EAGLE)?|CKHAWK)|O(?:OMINGTON|CKSBURG)|UE (?:LAKE|JAY)|RSDN-GREAGL"
+  "|YTHE)|YRON)|R(?:A(?:N(?:CH(?:O (?:S(?:ANTA (?:MARGARITA|FE)|TA M"
+  "ARG)|C(?:UCAMONG|ORDOV)A|PA(?:LOS VERDES|RK)|M(?:URIETA|IRAGE)|DO"
+  "MINGUEZ|BELAGO)|ITA)|DSBURG)|I(?:L R(?:OA)?D FLAT|SIN CITY)|GGED "
+  "POINT|VENDALE|CKERBY|YMOND|MONA)|O(?:(?:LLING HILL(?:S ESTATE)?|W"
+  "LAND H(?:EIGH|GH?)T|YAL OAK)S|S(?:E(?:(?:MEA|WOO)D|VILLE)|S(?:MOO"
+  "R)?|AMOND)|U(?:GH(?: AND)? READY|ND M(?:OUNTAI|T)N)|B(?:INSON RA?"
+  "NCH|BINS)|HNERT PARK|MOLAND|CKLIN|DEO)|I(?:O (?:(?:LIND|VIST)A|(?"
+  ":NID|OS)O|DELL)|VER(?:(?:DAL|SID)E| PINES|BANK)|CH(?:(?:GROV|VAL)"
+  "E|MOND)|(?:DGEC|MFO)REST|P(?:LEY|ON)|ALTO)|E(?:D(?:W(?:OOD (?:(?:"
+  "V(?:ALLE|L)|CIT)Y|EST(?:ATES)?)|AY)| (?:MOUNTAIN|BLUFF)|ONDO BEAC"
+  "H|CREST|LANDS|DING)|S(?:CUE|EDA)|EDLEY|PRESA)|U(?:SSIAN RIVER(?: "
+  "MDWS)?|NNING SP(?:RIN)?GS|TH(?:ERFORD)?|BIDOUX|MSEY)|CH(?: (?:CUC"
+  "AMONGA|PALOS VRD)|O S(?:ANTA FE|TA MARG))|NCHO (?:(?:CORDOV|MURIE"
+  "T)A|DOMINGZ)|LLNG HLS EST|YDE|SM)|W(?:E(?:ST(?: (?:H(?:OLLYWOOD|I"
+  "LLS)|LOS ANGELES|TOLUCA LAKE|MENLO PARK|SACRAMENTO|COVINA|POINT)|"
+  "L(?:AKE V(?:ILLAGE|LG)|EY)|M(?:INSTER|ORLAND)|CHESTER|PORT|WOOD)|"
+  "AVERVILLE|IMAR|LDON|NDEL|OTT|ED)|I(?:L(?:L(?:OW(?: (?:SP(?:RIN)?G"
+  "S|CREEK)|S)|I(?:AM|T)S)|D(?:OMAR|WOOD)|(?:MING)?TON|SEYVILLE)|N(?"
+  ":T(?:ER(?:HAVEN|S)|ON)|DSOR(?: HILLS)?|CHESTER|NETKA)|TTER SP(?:R"
+  "IN)?GS|SHON)|A(?:L(?:NUT(?: (?:(?:CREE|PAR)K|GROVE))?|LACE)|T(?:S"
+  "ONVILLE|ERFORD|TS)|RNER SP(?:RIN)?GS|S(?:HINGTON|CO)|(?:UKE|WO)NA"
+  ")|O(?:OD(?:LA(?:ND(?: H(?:IL)?LS)?|KE)|(?:BRIDG|VILL|ACR|SID)E|Y)"
+  "|FFORD (?:HEIG)?HTS)| (?:LOS ANGELES|TOLUCA LAKE|MENLO PARK|SACRA"
+  "MENTO|HOLLYWOOD)|H(?:I(?:T(?:E(?: WATER|THORN)|MORE|TIER)|SKEYTOW"
+  "N)|EATLAND)|RIGHTWOOD)|H(?:A(?:(?:M(?:ILTON CIT|MIL VALLE)|R(?:BO"
+  "R CIT|MON)|LF MOON BA)Y|W(?:AIIAN G(?:ARDE|D)NS|THORNE)|T(?:HAWAY"
+  " PI?NES| CREEK)|CIENDA (?:HEIG)?HTS|N(?:SEN HILLS|FORD)|Y(?:FORK|"
+  "WARD)|PPY CAMP|VILAH|ZARD)|O(?:L(?:L(?:Y(?: PARK|GLEN|WOOD)|ISTER"
+  ")|T(?:VILLE)?|Y CITY)|R(?:N(?:BROOK|ITOS)|SE CREEK)|P(?:E VALLEY|"
+  "LAND)|ME(?:LAN|WOO)D|O(?:PA|D)|NEYDEW)|I(?:DDEN (?:V(?:ALLEY(?: L"
+  "AKE)?|L LK)|HILLS)|L(?:L(?:SBOROUGH|TOP MALL)|MAR)|GHLAND(?: PARK"
+  ")?| VISTA|CKMAN|NKLEY)|E(?:R(?:(?:ITAGE RA?N|MOSA BEA)CH|CULES|LO"
+  "NG|ALD)|L(?:EN(?:DALE|A)|M)|ALDSBURG|SPERIA|BER|MET)|U(?:NTINGT(?"
+  ":ON (?:P(?:AR)?K|BEACH)|N BCH)|(?:GHS|R)ON|ME)|Y(?:DESVILLE|AMPOM"
+  "))|A(?:L(?:T(?:A(?:(?: LOM|DEN)A|VILLE)?|URAS)|P(?:INE(?: M(?:EAD"
+  "O|D)WS)?|AUGH)|(?:ISO VIEJ|VIS)O|B(?:ANY|ION)|AM(?:EDA|O)|DERPOIN"
+  "T|LEGHANY|HAMBRA)|R(?:RO(?:W(?:HE(?:AD FARMS|D FARM)|BEAR L(?:AKE"
+  "|K))|YO GRANDE)|(?:CA(?:DI|T)|LET|MON)A|B(?:UCKLE|OGA)|T(?:ESIA|O"
+  "IS)|(?:OMA|GU)S|NOLD|VIN)|N(?:G(?:EL(?:US OAKS|S CAMP)|WIN)|T(?:E"
+  "LOPE|IOCH)|NAPOLIS|DERSON|AHEIM|ZA)|M(?:ERICAN C(?:ANYO|Y)N|(?:AD"
+  "OR CIT|BO)Y)|G(?:UA(?: DULCE|NGA)|OURA(?: HILLS)?)|T(?:W(?:ATER|O"
+  "OD)|ASCADERO|HERTON)|V(?:E(?:NAL|RY)|ILA BEACH|ALON)|U(?:B(?:ERRY"
+  "|URN)|GUST F. HAW)|P(?:PLE(?: VALLEY|GATE)|TOS)|D(?:ELA(?:IDE|NTO"
+  ")|IN)|C(?:AMPO|TON)|ERIAL ACRES|HWAHNEE|ZUSA)|F(?:O(?:R(?:T(?: (?"
+  ":B(?:IDWELL|RAGG)|HUNTER LIGGETT|IRWIN|JONES|DICK)|UNA)|EST(?: (?"
+  ":(?:KNO|FA)LLS|RANCH)|VILLE|HILL)|(?:KS OF SALMO|BESTOW)N)|(?:UNT"
+  "AIN V(?:ALLE|L)|STER CIT)Y|OTHILL RA?NCH|NTANA|LSOM|WLER)|A(?:IR("
+  "?: (?:OAKS|PLAY)|F(?:IELD|AX))|LL(?: RIVER MILLS|EN LEAF|BROOK)|R"
+  "M(?:ERSVILLE|INGTON)|WNSKIN)|I(?:RE(?:STONE P(?:AR)?K|BAUGH)|ELDS"
+  " L(?:ANDIN|D)G|VE POINTS|DDLETOWN|SH CAMP|LLMORE|NLEY)|R(?:E(?:NC"
+  "H (?:GULCH|CAMP)|E(?:STONE|DOM)|MONT|SNO)|K OF SALMON|AZIER PARK|"
+  "IANT)|E(?:L(?:ICITY|LOWS|TON)|ATHER FALLS|RNDALE)|L(?:O(?:RISTON|"
+  "URNOY)| RIVER MLS|INTRIDGE)|UL(?:LER)?TON|T H LIGGETT)|T(?:R(?:A("
+  "?:BUCO(?: C(?:ANYO|Y)N)?|(?:NQUILLIT|C)Y|V(?:IS AFB|ER))|INI(?:TY"
+  " C(?:ENTE|T)R|DAD)|O(?:WBRIDGE|NA)|ES PINOS|UCKEE)|E(?:M(?:PLE(?:"
+  " CITY|TON)|ECULA)|R(?:RA BELLA|MO)|HA(?:CHAPI|MA)|C(?:ATE|OPA))|U"
+  "(?:OLUMNE(?: M(?:EADO|D)WS)?|STIN(?: MCAS)?|L(?:ELAK|AR)E|JUNGA|R"
+  "LOCK|PMAN)|W(?:ENTYNIN(?:E PALMS(?: MCB)?| PLM)|IN (?:BRIDGE|PEAK"
+  ")S|AIN(?: HARTE)?)|H(?:O(?:USAND (?:PA?LM|OAK)S|RNTON)|E(?: SEA R"
+  "ANCH|RMAL)|REE RIVERS)|O(?:L(?:UCA (?:TER(?:RACE)?|LAKE)|LHOUSE)|"
+  "PA(?:NGA|Z)|RRANCE|MALES)|A(?:HO(?:E (?:VISTA|CITY)|MA)|(?:YLORSV"
+  "ILL|LMAG)E|RZANA|FT)|I(?:(?:BUR|PT)ON|ONESTA))|E(?:L(?: (?:S(?:E("
+  "?:RENO CAR|GUNDO)|OBRANTE)|C(?:E(?:RRIT|NTR)O|AJON)|M(?:(?:IRAG|O"
+  "NT)E|ACERO)|DORADO(?: H(?:IL)?LS)?|(?:VERAN|NID|TOR)O|GRANADA|POR"
+  "TAL)|K(?: (?:CREEK|GROVE))?|IZABETH L(?:AKE|K)|(?:VERT|MIR)A|DRID"
+  "GE)|A(?:ST (?:(?:LOS ANGELE|NICOLAU)S|RANCHO DOMINGUEZ|PALO ALTO|"
+  "IRVINE)|GLE(?: (?:M(?:OUNTAI|T)N|ROCK)|VILLE)|R(?:LIMART|P))|M(?:"
+  "ER(?:ALD HILLS|YVILLE)|IGRANT GAP|PIRE)|S(?:C(?:ONDIDO|ALON)|T LS"
+  " ANGLS|PARTO|SEX)|D(?:WARDS(?: AFB)?|EN VALLEY|GEWOOD|ISON)| (?:R"
+  "NCHO DMNGZ|PALO ALTO)|(?:T(?:IWAND|N)|UREK)A|NCIN(?:ITAS|O)|CHO L"
+  "AKE|XETER)|G(?:R(?:E(?:EN(?: V(?:ALLEY(?: LAKE)?|LY LK)|(?:FIEL|W"
+  "OO)D|VI(?:LLE|EW)|BRAE)|NADA)|A(?:N(?:ADA HILLS|D TERRACE|ITE BAY"
+  ")|SS VALLEY|EAGLE|TON)|I(?:(?:ZZLY FLAT|ME)S|DLEY)|OVE(?:R BEACH|"
+  "LAND))|L(?:EN(?:(?: ELL|HAV)EN|D(?:ALE|ORA)|N(?:VILLE)?|COE)|ASSE"
+  "LL(?: PARK)?|MN HOT SPGS)|O(?:L(?:D(?: R(?:IVER|UN)|EN HILLS)|ETA"
+  ")|(?:RMA|SHE)N|ODYEARS BAR|NZALES)|A(?:R(?:DEN(?: (?:VALLEY|GROVE"
+  ")|A)|BERVILLE)|(?:SQUE|L)T|VIOTA|ZELLE)|U(?:A(?:DALUPE|LALA|STI|T"
+  "AY)|(?:ERNEVILL|STIN)E|INDA)|E(?:ORGE(?: AFB|TOWN)|YSERVILLE|RBER"
+  ")|IL(?:MAN HOT SPRINGS|ROY))|D(?:E(?:L(?: (?:REY(?: OAKS)?|(?:MA|"
+  "SU)R)|ANO|HI)|S(?:ERT (?:HOT SPRINGS|CENTER)|CANSO)|VORE H(?:EI)?"
+  "GHTS|ATH VALLEY|ER PARK|NAIR)|O(?:(?:S (?:PAL|RI)O|BBIN|RRI)S|UGL"
+  "AS (?:CITY|FLAT)|WN(?:IEVILLE|EY)|VE CANYON|CKWEILER|YLE)|A(?:V(?"
+  ":IS(?: CREEK)?|ENPORT)|N(?:A POINT|VILLE)|R(?:DANELLE|WIN)|LY CIT"
+  "Y|GGETT)|I(?:A(?:MOND (?:SP(?:RIN)?GS|BAR)|BLO)|SCOVERY BAY|LLON "
+  "BEACH| GIORGIO|NUBA|XON)|U(?:N(?:CANS MILLS|NIGAN|SMUIR|LAP)|TCH "
+  "FLAT|LZURA|ARTE|BLIN|RHAM|COR)|SRT HOT SPGS|RYTOWN)|N(?:O(?:R(?:T"
+  "H(?: (?:H(?:I(?:GHLAND|LL)S|OLLYWOOD)|(?:PALM SPRING|EDWARD)S|(?:"
+  "SAN JUA|TUSTI)N|RICHMOND|FORK)|RIDGE|STAR)|WALK|DEN|CO)| PALM SPR"
+  "INGS|VATO)|E(?:W(?:B(?:ERRY SP(?:RIN)?GS|URY PARK)|PORT (?:BEACH|"
+  "COAST)| (?:ALMADEN|CUYAMA)|(?:HA|E)LL|CASTLE|ARK|MAN)|VADA CITY|E"
+  "DLES|LSON|STOR)| (?:H(?:IGHLANDS|OLLYWOOD)|PALM SP(?:RIN)?GS|RICH"
+  "MOND|SAN JUAN)|I(?:C(?:OLAUS|ASIO|E)|P(?:OMO|TON)|LAND)|A(?:TIONA"
+  "L CITY|VARRO|PA)|U(?:BIEBER|T TREE|EVO))|V(?:A(?:L(?:LE(?:Y (?:V("
+  "?:ILLAGE|LG)|SP(?:RIN)?GS|CENTER|FORD|HOME)|(?:CIT|J)O)| VERDE|EN"
+  "CIA|YERMO)|N(?:DENBE?RG AFB| NUYS)|CAVILLE|FB)|E(?:R(?:D(?:UGO CI"
+  "TY|EMONT)|N(?:ALIS|ON))|TERANS ADM(?:(?:I(?:NISTRATIO)?)?N)?|N(?:"
+  "TURA|ICE))|I(?:LLA (?:GRANDE|PARK)|N(?:EBURG|TON|A)|CTOR(?:VILLE)"
+  "?|S(?:ALI|T)A|EW PARK|DAL)|OLCANO)|O(?:R(?:O(?:(?: GRAND|VILL)E|S"
+  "I)|ANGE(?:(?: COV|VAL)E)?|L(?:EANS|AND)|I(?:NDA|CK)|EGON HOUSE|CU"
+  "TT)|AK(?: (?:(?:GLE|RU)N|HILLS|PARK|VIEW)|(?:VIL|DA)LE|L(?:AND|EY"
+  ")|HURST|WOOD)|L(?:YMPIC V(?:ALLE|L)Y|(?:ANCH|EM)A|D STATION|IVEHU"
+  "RST)|C(?:EAN(?:SIDE|O)|CIDENTAL|OTILLO)|N(?:IZUKA AFB|TARIO|YX)| "
+  "NEALS|BRIEN|XNARD|JAI)|K(?:E(?:N(?:(?:TFIEL|WOO)D|SINGTON)|LS(?:E"
+  "Y(?:VILLE)?|O)|R(?:NVILLE|MAN)|TTLEMAN CI?TY|E(?:LER|NE)|YES)|I(?"
+  ":NG(?:S(?: (?:CANYON(?: NAT(?:IONAL P|L PAR)K)?|BEACH)|BURG)| CIT"
+  "Y)|T CARSON|RKWOOD)|N(?:IGHTS(?: (?:L(?:ANDIN|ND)G|FERRY)|EN)|EEL"
+  "AND)|A(?:GEL CANYON|WEAH)|LAMATH(?: RIVER)?|ORBEL|YBURZ|CNP)|J(?:"
+  "O(?:H(?:NSON V(?:ALLE|L)Y|ANNESBURG)|SHUA TREE|LON)|A(?:C(?:KSON|"
+  "UMBA)|M(?:ESTOWN|UL)|NESVILLE)|U(?:N(?:CTION CITY|IPER HILLS|E LA"
+  "KE)|LIAN)|E(?:SS RANCH|NNER))|I(?:N(?:D(?:I(?:AN WELLS|O)|EPENDEN"
+  "CE)|GLEWOOD|VERNESS|YOKERN)|(?:R(?:WINDAL|VIN)|VANHO)E|MPERIAL(?:"
+  " B(?:EA)?CH)?|SL(?:A VISTA|ETON)|O(?:WA HILL|NE)|DYLLWILD|GO)|Y(?"
+  ":O(?:SEMITE N(?:ATIONAL PAR|TP)K|R(?:BA LINDA|KVILLE)|UNTVILLE|LO"
+  ")|U(?:C(?:CA VALLEY|AIPA)|BA CITY)|E(?:TTEM|RMO)|ANKEE HILL|REKA)"
+  "|U(?:NI(?:V(?: OF CAL SANTA BARBARA|ERSAL CI?TY)|ON CITY)|C(?: BE"
+  "RKELEY|LA|SB|I)|P(?:PER LAKE|LAND)|KIAH)|QU(?:A(?:IL VALLEY|RTZ H"
+  "ILL)|INCY)|Z(?:AMOR|ENI)A|29 PALMS))))$"
+  ,
+  /* -- CO -- CO -- CO -- CO -- CO -- CO -- CO -- CO -- CO -- CO -- */
+  "(?:\\b)((?^:(?i:(?:C(?:O(?:L(?:O(?:RADO (?:SP(?:RIN)?GS|CITY)| (?"
+  ":CITY|SPGS))|UMBINE V(?:ALLE|L)Y|LBRAN)|AL(?: CREEK|DALE|MONT)|R("
+  "?:DILLERA|TEZ|Y)|M(?:MERCE CITY|O)|N(?:EJOS|IFER)|(?:KEDAL|P)E|TO"
+  "PAXI| SPGS|WDREY)|H(?:E(?:Y(?:ENNE (?:MOUNTAIN AFB|W(?:EL)?LS)| M"
+  "TN AFB)|R(?:RY H(?:ILLS(?: VILLAGE)?|L VLG)|AW))|I(?:MNEY ROCK|VI"
+  "NGTON)|ROMO|AMA)|A(?:D(?:ET STATION|DOA)|S(?:TLE ROCK|CADE)|R(?:B"
+  "ONDALE|R)|(?:PULI|LHA)N|NON CITY|HONE|MPO)|R(?:E(?:ST(?:ED BUTT|O"
+  "N)|ED)E|A(?:WFORD|IG)|O(?:WLEY|OK)|IPPLE CREEK)|E(?:NT(?:E(?:NNIA"
+  "L|R)|RAL CITY)|DAREDGE)|L(?:I(?:FTON|MAX)|ARK)|IMARRON)|S(?:A(?:N"
+  "(?:GRE DE CRI(?:STO RANCHES)?| (?:(?:ACACI|PABL)O|LUIS)|D DUNES M"
+  "O|FORD)|GUACHE|PINERO|RGENTS|LIDA)|T(?:E(?:AMBOAT SPR(?:INGS)?|RL"
+  "ING)|RA(?:SBURG|TTON)|ARKVILLE|ONEHAM)|I(?:L(?:VER(?: (?:CLIFF|PL"
+  "UME)|T(?:HORNE|ON))|T)|MLA)|O(?:UTH(?:ERN UTE INDIAN RESERVAT| FO"
+  "RK)|MERSET|PRIS)|N(?:OWMASS(?: V(?:ILLAGE|LG))?|YDER)|E(?:D(?:GWI"
+  "CK|ALIA)|VERANCE|IBERT)|H(?:ERIDAN(?: LAKE)?|AWNEE)|U(?:GAR CITY|"
+  "PERIOR)|L(?:ICK ROCK|ATER)|CHRIEVER AFB| UTE INDIAN|PRINGFIELD|WI"
+  "NK)|L(?:A(?: (?:(?:J(?:UNT|AR)|VET)A|SALLE)|KE(?: (?:GEORGE|CITY)"
+  "|WOOD)|S(?:T CHANCE| ANIMAS)|(?:(?:ZE|M)A|RKSPU)R|(?:FAYET|POR)TE"
+  "|IRD)|O(?:G LANE V(?:ILLAGE|LG)|N(?:E ?TREE|GMONT)|U(?:ISVILLE|VI"
+  "ERS)|CHBUIE|VELAND|WRY|MA)|I(?:MON(?: C(?:ORRECTIONAL FACILITY|RR"
+  "CTNL))?|(?:TTLET|ND)ON|VERMORE)|E(?:ADVILLE|WIS)|Y(?:CAN|ONS)|UCE"
+  "RNE)|G(?:R(?:E(?:E(?:N(?: M(?:OUNTAIN FAL|TN F)LS|WOOD V(?:ILLAGE"
+  "|LG))|LEY)|AT SAND DUNES NATIONAL MO)|AN(?:D (?:J(?:UNCTION|CT)|L"
+  "AKE)|ADA|ITE|BY|T)|OVER)|L(?:EN(?:WOOD SP(?:RIN)?GS| HAVEN|DALE)|"
+  "ADE PARK)|A(?:R(?:D(?:EN CITY|NER)|CIA)|LETON|TEWAY)|E(?:ORGETOWN"
+  "|NOA)|IL(?:CREST|MAN|L)|U(?:NNISON|FFEY)|OLDEN|YPSUM)|M(?:O(?:N(?"
+  ":T(?:E(?: VIST|ZUM)A|BELLO|CLAIR|ROSE)|UMENT|ARCH)|UNTAIN V(?:ILL"
+  "AGE|LG)|(?:LIN|SC)A|RRISON|FFAT|DEL)|A(?:N(?:(?:ITOU SP(?:RIN)?G|"
+  "CO)S|(?:ZANOL|ASS)A)|R(?:BLE|VEL)|SONVILLE|THESON|YBELL|HER|CK)|E"
+  "(?:S(?:A(?: VERDE(?: NATIONAL PARK)?)?|ITA)|R(?:EDITH|INO)|EKER|A"
+  "D)|I(?:LLIKE|NTUR)N|C C(?:LAVE|OY))|P(?:A(?:R(?:A(?:CHUTE|DOX)|SH"
+  "ALL|KER|LIN)|L(?:MER LAK|ISAD)E|GOSA SP(?:RIN)?GS|O(?:NIA|LI)|DRO"
+  "NI)|UEBLO(?: (?:DEP(?:OT ACTIVITY| AC)|WEST))?|L(?:A(?:CER|TTE)VI"
+  "LLE|EASANT VIEW)|I(?:(?:N(?:ECLIFF)?|ERC)E|TKIN)|O(?:NCHA SP(?:RI"
+  "N)?GS|WDERHORN)|E(?:TERSON AFB|NROSE|YTON|ETZ)|HIPPSBURG|RITCHETT"
+  ")|B(?:R(?:I(?:G(?:GSDALE|HTON)|STOL)|ECKENRIDGE|AN[DS]ON|OOMFIELD"
+  "|USH)|E(?:(?:AVER CREE|DROC)K|(?:LLVU|THUN)E|RTHOUD|NNETT|ULAH)|U"
+  "(?:R(?:LINGTON|NS)|FFALO CREEK|ENA VISTA)|O(?:(?:ULDE|W MA)R|N(?:"
+  "CARBO|D)|YERO|ONE)|A(?:TTLEMENT MESA|YFIELD|ILEY|SALT)|LA(?:CK HA"
+  "WK|NCA)|TLMT MESA|YERS)|H(?:O(?:T(?: S(?:ULPHUR SPRINGS|LPHR SPR)"
+  "|CHKISS)|(?:MELAK|EHN)E|L(?:YOKE|LY)|OPER|WARD|YT)|A(?:(?:MILTO|X"
+  "TU|YDE)N|RT(?:MAN|SEL)|S(?:WELL|TY)|LE)|I(?:LL(?:ROS|SID)E|GHLAND"
+  "S RANCH)|E(?:NDERSON|REFORD|SPERUS|ENEY)|GHLNDS RANCH|U(?:DSON|GO"
+  ")|YGIENE)|F(?:O(?:RT (?:(?:L(?:UPT|Y)O|MORGA)N|C(?:OLLINS|ARSON)|"
+  "GARLAND)|X(?:FIELD|TON)|UNTAIN|WLER)|R(?:A(?:NKTOWN|SER)|UIT(?:VA"
+  "LE|A)|EDERICK|ISCO)|L(?:OR(?:ISSANT|ENCE)|AGLER|EMING)|EDERAL H(?"
+  ":EIGH|G)TS|A(?:IRPLAY|RISTA)|IRESTONE|T CARSON)|W(?:E(?:ST(?:MINS"
+  "TER|CLIFFE|ON)|L(?:LINGTON|DONA)|TMORE)|I(?:L(?:D HORSE|LARD|EY)|"
+  "N(?:TER PARK|DSOR)|GGINS)|A(?:L(?:S(?:ENBURG|H)|DEN)|T(?:TENBURG|"
+  "KINS)|RD)|O(?:OD(?:(?:LAND PAR|Y CREE)K|ROW)|LCOTT)|H(?:EAT RIDGE"
+  "|ITEWATER)|RAY)|E(?:L(?:DORADO SPR(?:INGS|G)|K SPRINGS|IZABETH| J"
+  "EBEL|BERT)|A(?:(?:STLAK|GL)E|TON|DS)|D(?:GEWATER|WARDS)|V(?:ERGRE"
+  "EN|ANS)|CK(?:ERT|LEY)|(?:MPIR|RI)E|STES PARK|NGLEWOOD|GNAR)|A(?:R"
+  "(?:(?:RIB|VAD)A|LINGTON|APAHOE|BOLES)|L(?:M(?:ONT|A)|LENSPARK|AMO"
+  "SA)|U(?:RORA|STIN|LT)|G(?:UILAR|ATE)|(?:KRO|SPE)N|NTON(?:ITO)?|VO"
+  "N(?:DALE)?|MHERST|TWOOD)|R(?:ED(?: (?:FE(?:ATHER LAKE| LK)S|CLIFF"
+  ")|(?:STON|VAL)E)|O(?:CK(?:Y FORD|VALE)|LLINSVILLE|GGEN|MEO)|A(?:N"
+  "(?:GELY|D)|MAH)|I(?:DGWAY|FLE|CO)|USH|YE)|N(?:OR(?:TH(?: (?:AVOND"
+  "ALE|GLENN)|GLENN)|WOOD)|E(?:W (?:CASTLE|RAYMER)|DERLAND)|AT(?:URI"
+  "TA|HROP)|I(?:NAVIEW|WOT)|U(?:CLA|NN)| AVONDALE)|D(?:E(?:L(?: NORT"
+  "E|HI|TA)|ER TRAIL| BEQUE|CKERS|NVER|ORA)|I(?:NOSAUR|LLON|VIDE)|O("
+  "?:VE CREEK|LORES)|U(?:[MP]ONT|RANGO)|ACONO|RAKE)|T(?:O(?:W(?:AOC|"
+  "NER)|PONAS)|W(?:IN LAK|O BUTT)ES|H(?:ATCHER|ORNTON)|(?:ELLURID|YR"
+  "ON)E|RIN(?:CHERA|IDAD)|IM(?:NATH|PAS)|ABERNASH)|O(?:R(?:CHARD(?: "
+  "CITY)?|DWAY)|L(?:NEY SPRINGS|ATHE)|(?:HIO CIT|URA)Y|AK CREEK|PHIR"
+  "|TIS|VID)|U(?:NITED STATES AIR FORCE ACAD|S(?: AIR FORCE|AF ACADE"
+  "MY)| S A F ACADEMY|TLEYVILLE)|K(?:I(?:T(?: CARSON|TREDGE)|OWA|RK|"
+  "M)|E(?:ENESBURG|YSTONE|RSEY)|REMMLING|ARVAL)|V(?:I(?:L(?:L(?:A GR"
+  "OVE|EGREEN)|AS)|RGINIA DALE|CTOR)|ERNON|AIL|ONA)|J(?:A(?:(?:MESTO"
+  "W|NSE)N|ROSO)|O(?:HNSTOWN|ES)|EFFERSON|ULESBURG)|I(?:D(?:A(?:HO S"
+  "PRINGS|LIA)|LEDALE)|NDIAN HILLS|GNACIO|LIFF)|Y(?:ELLOW JACKET|(?:"
+  "AMP|UM)A|ODER)))))$"
+  ,
+  /* -- CT -- CT -- CT -- CT -- CT -- CT -- CT -- CT -- CT -- CT -- */
+  "(?:\\b)((?^:(?i:(?:W(?:E(?:ST(?: (?:HA(?:RT(?:FO?R|LAN)D|VEN)|S(?"
+  ":IMSBURY|UFFIELD)|CORNWALL|REDDING|GRANBY|MYSTIC)|BROOK|PORT|ON)|"
+  "THERSFIELD|ATOGUE)|I(?:N(?:D(?:SOR(?: LOCKS|VILLE)?|HAM)|CHEST(?:"
+  "ER CENTE|R CT)R|STED)|L(?:LI(?:MANTIC|NGTON)|TON))|A(?:SHINGTON(?"
+  ": D(?:EPO)?T)?|TER(?:BURY|FORD|TOWN)|RREN(?:VILLE)?|LLINGFORD|URE"
+  "GAN)|O(?:OD(?:STOCK(?: V(?:ALLE|L)Y)?|B(?:RIDGE|URY))|LCOTT)|HITN"
+  "EYVILLE| HAVEN)|S(?:O(?:UTH(?: (?:W(?:I(?:ND(?:HAM|SOR)|LLINGTON)"
+  "|OODSTOCK)|GLASTONBURY|BRITAIN|KENT|LYME)|INGTON|BURY|PORT)|MERS("
+  "?:VILLE)?)|T(?:A(?:FFORD(?: SP(?:RIN)?GS|VILLE)?|MFORD)|O(?:RRS M"
+  "AN(?:SFIE|F)LD|NINGTON)|E(?:VENSON|RLING)|RATFORD)| (?:W(?:ILLING"
+  "TON|OODSTOCK)|GLASTONBURY)|A(?:L(?:ISBURY|EM)|NDY HOOK)|H(?:E(?:L"
+  "TO|RMA)|ARO)N|I(?:LVER LANE|MSBURY)|(?:COTLAN|UFFIEL)D|EYMOUR)|N("
+  "?:OR(?:TH(?: (?:(?:(?:STONING|CAN)TO|FRANKLI|HAVE)N|GR(?:OSVENORD"
+  "ALE|ANBY)|W(?:ESTCHESTER|INDHAM)|BRANFORD)|F(?:IEL|OR)D)|W(?:ALK|"
+  "ICH)|FOLK)|EW(?: (?:PRESTON(?: MARBLE DALE)?|(?:BRITAI|CANAA|LOND"
+  "O)N|(?:FAIRFIEL|MILFOR)D|HA(?:RTFORD|VEN))|(?:INGTO|TOW)N)| (?:(?"
+  ":STONINGTO|FRANKLI)N|GROSVENORDL|WESTCHESTER|BRANFORD)|AUGATUCK|I"
+  "ANTIC)|E(?:AST(?: (?:HA(?:RT(?:FOR|LAN)D|(?:MPTO|VE)N|DDAM)|(?:G("
+  "?:LASTONBUR|RANB)|KILLINGL)Y|W(?:INDSOR(?: HILL)?|OODSTOCK)|(?:BE"
+  "RLI|CANAA)N|LYME)|FORD|ON)| (?:(?:GLASTONBUR|KILLINGL)Y|W(?:INDSO"
+  "R HL|OODSTOCK))|LLINGTON|NFIELD|SSEX)|B(?:R(?:O(?:OK(?:F(?:LD CTR"
+  "|IELD)|LYN)|AD BROOK)|I(?:DGE(?:WATER|PORT)|STOL)|ANFORD)|E(?:TH("
+  "?:LEHEM|ANY|EL)|ACON FALLS|RLIN)|A(?:L(?:LOUVILLE|TIC)|RKHAMSTED|"
+  "NTAM)|O(?:TSFORD|LTON|ZRAH)|ISHOPS CO(?:RNE)?R|LOOMFIELD|URLINGTO"
+  "N)|M(?:A(?:N(?:SFIELD (?:C(?:ENTE|T)R|D(?:EPO|P)T)|CHESTER)|R(?:L"
+  "BOROUGH|ION)|CYS BY MAIL|SHANTUCKET|DISON)|I(?:DDLE(?: HADDAM|FIE"
+  "LD|BURY|TOWN)|L(?:LDALE|FORD))|O(?:N(?:TVILL|RO)E|O(?:DUS|SUP)|RR"
+  "IS)|E(?:LROSE|RIDEN)|YSTIC)|C(?:O(?:L(?:LINSVILLE|CHESTER|EBROOK|"
+  "UMBIA)|RNWALL(?: BR(?:IDGE|G))?|VENTRY|S COB|BALT)|AN(?:T(?:ON(?:"
+  " CENTER)?|ERBURY)|AAN)|ENT(?:RAL V(?:ILLAGE|LG)|ERBROOK)|H(?:ES(?"
+  ":HIRE|TER)|APLIN)|ROMWELL|LINTON)|P(?:L(?:A(?:IN(?:FIELD|VILLE)|N"
+  "TSVILLE)|EASANT V(?:ALLE|L)Y|YMOUTH)|O(?:MFRET(?: C(?:ENTE|T)R)?|"
+  "QUONOCK|RTLAND)|(?:AWCAT|EQUAB)UCK|R(?:OSPECT|ESTON)|INE MEADOW|U"
+  "TNAM)|G(?:R(?:O(?:SVENOR D(?:ALE|L)|TON)|EEN(?:S FARMS|WICH)|ISWO"
+  "LD|ANBY)|A(?:YLORDSVILLE|LES FERRY)|(?:EORGETOW|ILMA|OSHE)N|LAS(?"
+  ":TONBURY|GO)|UILFORD)|R(?:I(?:DGE(?:FIELD|WAY)|VER(?:SIDE|TON))|E"
+  "DDING(?: (?:CEN(?:TER)?|RIDGE))?|O(?:CK(?:Y HI|FA)LL|XBURY|GERS))"
+  "|H(?:A(?:D(?:DAM(?: NECK)?|LYME)|R(?:WINTON|TFORD)|M(?:PTO|DE)N|W"
+  "LEYVILLE|NOVER)|(?:UNTINGT|EBR)ON|IGGANUM)|T(?:A(?:(?:RIFF|FT)VIL"
+  "LE|CONIC)|O(?:RRINGTON|LLAND)|HOM(?:AST|PS)ON|ERRYVILLE|RUMBULL)|"
+  "O(?:LD (?:GREENWICH|SAYBROOK|MYSTIC|LYME)|(?:AK(?:VIL|DA)L|RANG)E"
+  "|XFORD|NECO)|L(?:(?:AKE(?:VILL|SID)|YM)E|I(?:TCHFIELD|SBON)|E(?:B"
+  "ANON|DYARD))|D(?:A(?:N(?:IELSON|BURY)|YVILLE|RIEN)|E(?:EP RIVER|R"
+  "BY)|URHAM)|V(?:ER(?:NON(?: ROCKV(?:ILLE|L))?|SAILLES)|OLUNTOWN)|A"
+  "(?:(?:(?:BING|MS)T|V)ON|N(?:DOVER|SONIA)|SHFORD)|FA(?:(?:RMINGTO|"
+  "BYA)N|LLS VILLAGE|IRFIELD)|K(?:EN(?:SINGTON|T)|ILLINGWORTH)|UN(?:"
+  "ION(?:VILLE)?|CASVILLE)|QU(?:AKER HILL|INEBAUG)|YA(?:LESVILLE|NTI"
+  "C)|JEWETT CITY|IVORYTON))))$"
+  ,
+  /* -- DC -- DC -- DC -- DC -- DC -- DC -- DC -- DC -- DC -- DC -- */
+  "(?:\\b)((?^:(?i:(?:NAV(?:AL (?:SEA SYS(?:TEMS COMMAND)?|ANACOST A"
+  "NNEX)|Y ANNEX)|(?:US MARINE CORPS BARRAC|MARINE BARR)KS|F(?:ORT(?"
+  ": LESLEY J)?|T L J) MCNAIR|WASHINGTON(?: NA(?:VY YARD)?)?|ANACOST"
+  "IA(?: ANX)?|BOLLING AFB|RIGGS BANK|PENTAGON))))$"
+  ,
+  /* -- DE -- DE -- DE -- DE -- DE -- DE -- DE -- DE -- DE -- DE -- */
+  "(?:\\b)((?^:(?i:(?:M(?:I(?:L(?:L(?:SBORO|VILLE)|FORD|TON)|DDLETOW"
+  "N)|A(?:R(?:SHALLTON|YDEL)|GNOLIA|NOR)|ONTCHANIN|BNA)|C(?:LA(?:Y(?"
+  ":MONT|TON)|RKSVILLE)|AMDEN(?: WYO(?:MING)?)?|H(?:RISTIANA|ESWOLD)"
+  ")|D(?:OVER(?: A(?:IR FORCE BASE|FB))?|EL(?:AWARE CITY|MAR)|AGSBOR"
+  "O)|F(?:E(?:NWICK ISL(?:AND|E)|LTON)|R(?:ANKFORD|EDERICA)|ARMINGTO"
+  "N)|L(?:I(?:TTLE CREEK|NCOLN)|E(?:IPSIC|WES)|ONG NECK|AUREL)|S(?:E"
+  "(?:LBYVILLE|AFORD)|AINT GEORGES|TANTON|MYRNA)|B(?:E(?:TH(?:ANY BE"
+  "ACH|EL)|AR)|RIDGEVILLE|LADES)|H(?:AR(?:(?:RINGT|BES)ON|TLY)|O(?:C"
+  "KESSI|USTO)N)|W(?:I(?:LMINGTON|NTERTHUR)|OODSIDE|YOMING)|G(?:REEN"
+  "(?:VILLE|WOOD)|EORGETOWN)|N(?:EW(?: CASTLE|PORT|ARK)|ASSAU)|R(?:E"
+  "HOBOTH B(?:EA)?CH|OCKLAND)|E(?:L(?:LENDAL|SMER)E|DGEMOOR)|T(?:ALL"
+  "EYVILLE|OWNSEND)|(?:PORT PEN|YORKLY)N|O(?:CEAN VIEW|DESSA)|K(?:IR"
+  "KWOOD|ENTON)|VIOLA))))$"
+  ,
+  /* -- FL -- FL -- FL -- FL -- FL -- FL -- FL -- FL -- FL -- FL -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:INT (?:(?:GEORGE ISLAN|CLOU)D|PETE(?: "
+  "BEACH|RSBURG)|J(?:AMES CITY|OHNS)|L(?:UCIE WEST|EO)|AUGUSTINE|TER"
+  "ESA|MARKS)|N(?:TA (?:R(?:OSA BEA|SA B)CH|FE)|D(?:E(?:RSO|STI)N| L"
+  "AKE)| (?:ANTONI|MATE)O|FORD|IBEL)|T(?:ELLITE B(?:EA)?CH|SUMA)|L(?"
+  ":T SPRINGS|EM)|FETY HARBOR|RASOTA)|U(?:N(?:NY (?:ISL(?:ES BEA| B)"
+  "CH|HILLS)| CITY(?: C(?:ENTE|T)R)?|RISE)|M(?:M(?:ER(?:LAND KEY|FIE"
+  "LD)|RLND KEY)|TERVILLE|ATRA)|GARL(?:OAF(?: (?:SHRS|KEY))?|F SHRS)"
+  "|(?:RFSID|WANNE)E)|T(?: (?:PETE(?:RSBURG(?: BEACH)?| B(?:EA)?CH)?"
+  "|GEORGE ISL|JAMES CITY|LUCIE WEST|AUGUSTINE|TERESA)|(?:EINHATCHE|"
+  "ARK)E|OCK ISLAND|UART)|O(?:UTH(?: (?:PA(?:LM BEACH|SADENA)|(?:DAY"
+  "TON|FLORID)A|MIAMI|BAY)|WEST RANCHES|PORT)|PCHOPPY|RRENTO)|E(?:A("
+  "?: RANCH L(?:AKE|K)S|CREST)|B(?:ASTIAN|RING)|(?:MINO|VIL)LE|WALLS"
+  " POINT|FFNER)|I(?:LVER SP(?:RIN)?GS|NGER ISLAND|ESTA KEY|DELL)| ("
+  "?:PA(?:LM BCH|SADENA)|DAYTONA(?: BCH)?)|HA(?:DY (?:GROVE|HILLS)|L"
+  "IMAR|RPES)|W(?:ITZERLAND| RANCHES)|P(?:RING HILL|ARR)|COTTSMOOR|N"
+  "EADS|YDNEY)|C(?:A(?:P(?:E (?:C(?:ORAL(?: S(?:OUTH)?)?|ANAVERAL)|S"
+  "AN BLAS|HAZE)|TIVA)|N(?:A(?:VERAL A(?:IR STATION|S)|L POINT)|TONM"
+  "ENT|DLER)|R(?:R(?:OLLWOOD|ABELLE)|L FISHER|OL CITY|YVILLE)|SS(?:E"
+  "LBERRY|ADAGA)|LLA(?:HAN|WAY)|MPBELLTON)|O(?:CO(?:NUT(?: (?:CREEK|"
+  "GROVE)|CREEK)|A(?: BEACH)?| RIVER)|R(?:AL (?:SPRING|GABLE)S|TEZ)|"
+  "(?:OPER CIT|NCH KE)Y|TTONDALE|PELAND|LEMAN)|H(?:A(?:MPIONS G(?:AT"
+  "E|T)|TTAHOOCHEE)|O(?:CTAW BEACH|KOLOSKEE)|I(?:EFLAND|PLEY)|RISTMA"
+  "S|ULUOTA)|R(?:YSTAL (?:SP(?:RIN)?GS|BEACH|RIVER)|ES(?:CENT CITY|T"
+  "VIEW)|OSS C(?:REEK|ITY)|AWFORDVILLE)|L(?:A(?:R(?:KSVILLE|CONA)|IR"
+  " MEL(?: CITY)?)|E(?:ARWATER(?: BEACH)?|WISTON|RMONT)|OUD LAKE)|IT"
+  "(?:R(?:US (?:(?:SP(?:RIN)?G|HILL)S|RIDGE)|A)|Y OF SUNRISE)|E(?:NT"
+  "(?:ER HILL|URY)|CIL FIELD|LEBRATION|DAR KEY)|U(?:TLER (?:RIDGE|BA"
+  "Y)|DJOE KEY)|YPRESS(?: G(?:ARDE|D)NS)?|PE CANAVERAL)|P(?:A(?:L(?:"
+  "M(?: (?:B(?:EACH(?: (?:GARDEN|SHORE)S)?|CH (?:GDN|SHR)S|AY)|S(?:P"
+  "RING|HORE)S|C(?:OAST|ITY)|HARBOR)|A (?:CEI|SOL)A|ETTO(?: BAY)?|DA"
+  "LE)|ATKA)|NA(?:MA CITY(?: BEACH)?|CEA)|TRICK A(?:IR FORCE BASE|FB"
+  ")|SS A GRILLE(?: BEACH)?|R(?:KLAND|RISH)|(?:HOKE|C)E|ISLEY|XTON)|"
+  "O(?:RT (?:S(?:A(?:INT (?:JO(?:HN|E)|LUCIE)|LERNO)|T (?:JO(?:HN|E)"
+  "|LUCIE))|C(?:ANAVERAL|HARLOTTE)|ORANGE|RICHEY)|N(?:CE (?:DE LEON|"
+  "INLET)|TE VEDRA(?: BEACH)?)|IN(?:T WASHINGTON|CIANA)|M(?:PANO BEA"
+  "CH|ONA PARK)|LK CITY)|I(?:NE(?:CR(?:EST(?: POSTAL STORE)?|AFT)| ("
+  "?:(?:CASTL|RIDG)E|HILLS)|L(?:LAS PARK|AND)|TTA)|ERSON)|E(?:N(?:SA"
+  "COLA(?: B(?:EA)?CH)?|NEY FARMS)|MBROKE P(?:I?NES|ARK)|RR(?:INE|Y)"
+  ")|T (?:C(?:ANAVERAL|HARLOTTE)|WASHINGTON|ORANGE)|L(?:A(?:NT(?: CI"
+  "TY|ATION)|CIDA)|YMOUTH)|U(?:NTA GORDA|TNAM HALL)| C BEACH|RINCETO"
+  "N)|M(?:A(?:R(?:ATHON(?: SH(?:ORE|R)S)?|CO ISLAND|Y ESTHER|IANNA|G"
+  "ATE)|Y(?:PORT NAV(?:AL STATION| S)|O)|N(?:A(?:LAPAN|SOTA)|GO)|C(?"
+  ":DILL AFB|CLENNY)|D(?:EIRA BEACH|ISON)|S(?:ARYKTOWN|COTTE)|GNOLIA"
+  " SQ(?:UARE)?|TLACHA(?: ISLES?)?|L(?:ABAR|ONE)|ITLAND|XVILLE)|I(?:"
+  "D(?: (?:TORCH KEY|FLORIDA)|DLE(?: TORCH KEY|BURG)|WAY)|AMI(?: (?:"
+  "(?:S(?:PRING|HORE)|GARDEN|LAKE)S|BEACH))?|R(?:AMAR(?: BEACH)?|OMA"
+  "R LAKES)|C(?:CO(?:SUKEE)?|ANOPY)|L(?:LIGA|TO)N|NNEOLA|MS)|O(?:UNT"
+  " (?:PL(?:EASANT|YMOUTH)|DORA)|(?:ORE HAVE|RRISTO)N|NT(?:ICELLO|VE"
+  "RDE)|SSY HEAD|LINO)|E(?:L(?:BOURNE(?: (?:V(?:ILLAGE|LG)|B(?:EA)?C"
+  "H))?|ROSE)|RRITT IS(?:LAND)?|XICO BEACH|DLEY)|C (?:INTOSH|ALPIN|D"
+  "AVID)|T PL(?:EASANT|YMOUTH)|U(?:LBERRY|RDOCK)|YAKKA CITY)|L(?:A(?"
+  ":KE(?: (?:C(?:LARKE(?: SHORES)?|ITY|OMO)|P(?:A(?:NASOFFKEE|RK)|LA"
+  "CID)|H(?:A(?:MILTON|RBOR)|ELEN)|BU(?:ENA VISTA|TLER)|M(?:ONROE|AR"
+  "Y)|W(?:ALES|ORTH)|ALFRED|GENEVA|SUZY)|WOOD R(?:AN)?CH|SHORE|LAND)"
+  "|U(?:D(?:ER(?:DALE (?:BY THE SEA|LAKES)|HILL)| (?:BY SEA|LAKES))|"
+  "RE(?:L HIL)?L)|N(?:ARK V(?:ILLAGE|LG)|D O LAKES|TANA)|(?:[DZ]Y LA"
+  "K| CROSS|COOCHE|BELL)E|MONT|WTEY|RGO)|O(?:NG(?:(?:BOAT)? KEY|WOOD"
+  ")|WE(?:R SUGARLOAF KEY|LL)|XAHATCHEE(?: GROVES)?|C(?:HLOOSA|KHART"
+  ")|UGHMAN|RIDA)|I(?:T(?:TLE TORCH KEY|HIA)|GHTHOUSE P(?:OIN)?T|VE "
+  "OAK)|E(?:E(?:SBURG)?|HIGH ACRES|CANTO)|K (?:PANASOFFKE|BUENA VIS)"
+  "|U(?:DLAM|LU|TZ)|TL TORCH KEY|WR SUGARLOAF|XHTCHEE GRVS|YNN HAVEN"
+  "|LOYD)|B(?:A(?:Y(?: (?:HARBOR I(?:SLAND)?|PINE)S|ONET POINT)|R(?:"
+  "EFOOT B(?:(?:EA)?CH|AY)|BERVILLE|TOW)|L(?: HARBOUR|DWIN|M)|S(?:IN"
+  "GER|COM)|BSON PARK|GDAD|KER)|R(?:A(?:D(?:EN(?:TON(?: B(?:EA)?CH)?"
+  "| RIVER)|LEY)|N(?:FORD|DON))|O(?:OK(?:SVILLE|ER)|NSON)|I(?:NY BRE"
+  "EZES|STOL)|Y(?:CEVILLE|ANT)|UCE)|E(?:LL(?:E(?:AIR(?: (?:B(?:L(?:U"
+  "FFS|F)|(?:EA)?CH)|SH(?:ORE|R)S))?| (?:GLAD|ISL)E|VIEW)|VIEW)?|VER"
+  "LY HILLS)|O(?:NI(?:TA SP(?:RIN)?GS|FAY)|CA (?:GRANDE|RATON)|WLING"
+  " GREEN|YNTON BEACH|KEELIA|STWICK)|I(?:G (?:TORCH|PINE) KEY|SCAYNE"
+  " PARK)|U(?:ENA VENTURA LAKES|(?:SH|N)NELL)|LOUNTSTOWN|VL)|W(?:E(?"
+  ":S(?:T(?: (?:PA(?:LM B(?:EA)?CH|RK)|M(?:ELBOURNE|IAMI)|DELRAY BEA"
+  "CH|HOLLYWOOD)|(?:CHAS|VILL)E|ON)|LEY CHAPEL)|L(?:L(?:INGTO|BOR)N|"
+  "AKA)|(?:EKI WACHE|IRSDAL)E|KIVA SP(?:RINGS|G)|WAHITCHKA|BSTER)|I("
+  "?:N(?:TER (?:(?:GARD|HAV)EN|SP(?:RIN)?GS|BEACH|PARK)|DERMERE)|L(?"
+  ":BUR BY(?: THE)? SEA|TON MANORS|LISTON|DWOOD)|MAUMA)|A(?:KULLA SP"
+  "(?:RIN)?GS|L(?:NUT HILL|DO)|(?:CISS|HNET)A|U(?:CHULA|SAU)|TERSOUN"
+  "D|BASSO|VERLY)| (?:(?:DELRAY|PLM) BCH|HOLLYWOOD|MELBOURNE)|O(?:RT"
+  "H(?:INGTON SPRINGS|NGTN SPG)|ODVILLE)|HITE SPRINGS)|H(?:O(?:M(?:E"
+  "(?:STEAD(?: A(?:IR FORCE BASE|FB))?| SHOPPING|LAND)|OSASSA(?: SP("
+  "?:RINGS|G))?)|L(?:L(?:Y(?: HILL|WOOD)|ISTER)|MES BEACH|IDAY|DER|T"
+  ")|WEY IN (?:THE HIL|H)LS|RSESHOE B(?:EA)?CH|(?:BE SOUN|SFOR)D)|I("
+  "?:GH(?:LAND (?:B(?:EA)?CH|CITY)| SPRINGS)|A(?:LEAH(?: G(?:ARDE|D)"
+  "NS)?|WASSEE)|LL(?:SBORO B(?:EA)?CH|IARD))|A(?:L(?:LANDALE(?: BEAC"
+  "H)?|NDLE BCH)|INES C(?:REEK|ITY)|V(?:ERHILL|ANA)|WTHORNE|STINGS|M"
+  "PTON|RMONY)|U(?:TCHINSON IS(?:LAND)?|RLBURT F(?:IE)?LD|DSON)|E(?:"
+  "RNANDO(?: B(?:EA)?CH)?|ATHROW)|YPOLUXO)|F(?:L(?:OR(?:IDA (?:A (?:"
+  "AND M UNIVERSITY|& M)|STATE(?: UNIVERSITY)?|CITY)|A(?:L CITY|HOME"
+  ")|ENCE VILLA?)|A(?:MINGO LO?DGE|GLER BEACH)|EMING ISL(?:AND|E))|O"
+  "(?:R(?:T (?:M(?:YERS(?: BEACH)?|C COY|EADE)|W(?:ALTON BEACH|HITE)"
+  "|(?:LAUDERDAL|PIERC)E|DENAUD|OGDEN)|EST CITY)|UNTAIN)|E(?:RN(?:AN"
+  "DINA(?: BEACH)?| PARK|DALE)|L(?:LSMERE|DA)|DHAVEN)|R(?:UIT(?:LAND"
+  " P(?:AR)?K| COVE)|OSTPROOF|EEPORT)|T (?:(?:WALTON|MYERS) BCH|LAUD"
+  "ERDALE|DENAUD)|A(?:NNING SP(?:RIN)?GS|IRFIELD))|T(?:A(?:M(?:PA(?:"
+  " PALMS)?|ARAC)|RPON SP(?:(?:RI)?N)?GS|LL(?:AHASSEE|EVAST)|V(?:ERN"
+  "IER|ARES)|NGERINE)|E(?:RRA CEIA(?: IS(?:LAND)?)?|MPLE TER(?:RACE)"
+  "?|(?:QUEST|LOGI)A)|R(?:E(?:ASURE IS(?:LAND)?|NTON)|AILER EST(?:AT"
+  "ES)?|I(?:NIT|LB)Y)|I(?:M(?:E CUSTOMER SERVIC)?E INC|(?:ERRA VERD|"
+  "TUSVILL|C)E|OGA)|OWN (?:OF NOCATEE|N COUNTRY)|H(?:E VILLAGES|ONOT"
+  "OSASSA)|N OF NOCATEE|WN N CNTRY|YNDALL AFB)|N(?:O(?:RTH(?: (?:(?:"
+  "LAUDERDAL|VENIC)E|BAY V(?:ILLAGE|LG)|P(?:ALM BEACH|ORT)|MIAMI(?: "
+  "BEACH)?|F(?:OR)?T MYERS|REDINGTON BEACH)|DALE)|(?: F(?:OR)?T MYER"
+  "|KOMI)S|BLETON|CATEE|MA)|E(?:W(?: (?:P(?:(?:OR)?T RICHE|RT RCH)Y|"
+  "SMYRNA(?: BEACH)?)|BERRY)|PTUNE BEACH)| (?:(?:(?:MIAMI|PALM) BEA|"
+  "REDNGTN B)CH|F(?:OR)?T MYERS|LAUDERDALE)|A(?:LCREST|RANJA|VARRE|P"
+  "LES)|IC(?:EVILLE|HOLS)|W PRT RCHY)|G(?:R(?:A(?:N(?:D(?: (?:ISLAND"
+  "|RIDGE)|E POINTE|IN)|T(?: V(?:ALKA|LK)RIA)?)|CEVILLE|SSY KEY|HAM)"
+  "|E(?:EN(?:(?: (?:C(?:OVE SPRIN|V SP)G|ACRE)|ACRE)S|SBORO|VILLE|WO"
+  "OD)|TNA)|OVE(?: CITY|LAND))|O(?:LDEN(?: BEACH|ROD)|NZALEZ|ODLAND|"
+  "ULDS|THA)|LEN(?: (?:S(?:AIN)?T MARY|RIDGE)|WOOD)|ULF(?: (?:HAMMOC"
+  "K|BREEZE|STREAM)|PORT)|E(?:ORGETOWN|NEVA)|AINESVILLE|IBSONTON)|O("
+  "?:R(?:ANGE (?:SP(?:RIN)?GS|CITY|LAKE|PARK)|L(?:O VISTA|ANDO)|MOND"
+  " BEACH|CHID)|C(?:H(?:LOCKONEE(?: BAY)?|OPEE)|(?:EAN RIDG|OE)E|(?:"
+  "KLAWAH|AL)A)|L(?:YMPIA H(?:EIGH|G)TS|D(?: TOWN|SMAR)|USTEE)|AK(?:"
+  "LAND(?: PARK)?| HILL)|(?:PA LOCK|DESS|ZON)A|K(?:EECHOBEE|AHUMPKA)"
+  "|V(?:ERSTREET|IEDO)|S(?:PREY|TEEN)|N(?:ECO|A)|TTER CREEK| BRIEN|X"
+  "FORD|JUS)|A(?:L(?:T(?:AMONTE SP(?:RINGS|G)|(?:OON|H)A|URAS)|L(?:I"
+  "GATOR P(?:OIN)?T|ANDALE)|(?:A(?:CHU|FAY)|OM|V)A|YS BEACH|FORD)|P("
+  "?:O(?:LLO BEACH|PKA)|ALACHICOLA)|R(?:C(?:ADIA|HER)|IPEKA|GYLE)|V("
+  "?:E(?: MARI|NTUR)A|ON PARK)|TLANTI(?:C B(?:EA)?CH|S)|N(?:NA MARIA"
+  "|THONY)|ST(?:ATULA|OR)|MELIA ISLAND|ZALEA PARK|UBURNDALE)|D(?:E(?"
+  ":ER(?:FIELD B(?:EA)?CH| ISLAND)|(?:FUNIAK| LEON) SP(?:RIN)?GS|L(?"
+  ":RAY BEACH|TONA|AND)|BARY|STIN)|A(?:Y(?:T(?:ONA BEACH(?: SHORES)?"
+  "| BCH SH))?|NIA(?: BEACH)?|V(?:ENPORT|IE)|DE CITY)|U(?:N(?:(?:NEL"
+  "LO|EDI)N|DEE)|KE FIELD AFS|CK KEY|ETTE|RANT)|O(?:CTORS INLET|WLIN"
+  "G PARK|NA VISTA|RAL|VER)|INSMORE|FAFS)|I(?:N(?:D(?:IA(?:N(?: (?:R"
+  "(?:(?:K(?:S BEA| B)|OCKS BEA)CH|IVER SHORES)|L(?:AKE ESTATES|K ES"
+  "T)|CREEK VILLAGE|HARBOUR BEACH|SHORES)|TOWN)|LANTIC)|N (?:RIV SHR"
+  "S|HBR BCH)| (?:CRK VLG|HBR BCH))|T(?:ER(?:CESSION CITY|LACHEN)|RC"
+  "SION CTY)|(?:VERNES|GLI)S|LET BEACH)|S(?:LA(?:ND GROVE|MORADA)|TA"
+  "CHATTA)|MMOKALEE)|E(?:A(?:ST(?: (?:ROCKLAND KEY|PALATKA)|LAKE WEI"
+  "R|POINT)|(?:GLE LAK|U GALLI)E|TON(?: PARK|VILLE)|RLETON)|L(?: (?:"
+  "JOBEAN|PORTAL)|(?:LEN|K)TON|FERS|OISE)|V(?:ERGLADES(?: CITY)?|INS"
+  "TON)|DG(?:EW(?:ATER|OOD)|AR)|N(?:TERPRISE|GLEWOOD)| ROCKLAND KE?Y"
+  "|(?:STE|B)RO|GLIN AFB|USTIS)|R(?:O(?:SE(?:MARY B(?:EA)?CH|LAND)|Y"
+  "AL P(?:ALM BEA|LM B)CH|TONDA WEST|CKLEDGE)|E(?:D(?:INGT(?:ON (?:B"
+  "(?:EA)?CH|SHORES)|N SHOR)| BAY|DICK|LAND)|UNION)|I(?:V(?:ER(?: RA"
+  "NCH|VIEW)|IERA BEACH)|DGE MANOR(?: ESTATES)?|CHLAND)|A(?:MROD KEY"
+  "|IFORD)|U(?:BONIA|SKIN)|DG MNR EST)|K(?:E(?:Y(?: (?:WEST(?: NA(?:"
+  "VAL AIR STATION|S))?|COL(?:ONY BEA| B)CH|BISCAYNE|LARGO)|STONE H("
+  "?:EIGH|G)TS)|N(?:NE(?:DY SP(?:ACE CENTER| CT)|TH CITY)|ANSVILLE|D"
+  "ALL))|I(?:N(?:GSLEY LAKE|ARD)|LLARNEY|SSIMMEE)|NGSLY LK|ATHLEEN)|"
+  "J(?:A(?:C(?:KSONVILLE(?: (?:BEACH|N A S))?|OB)|X (?:NAVAL AIR|BCH"
+  ")|SPER|Y)|U(?:PITER(?: INLET(?: COLONY)?)?|LINGTON CR(?:EE)?K|NO "
+  "BEACH)|E(?:N(?:SEN BEACH|NINGS)|ROME)|ONESVILLE|PV)|V(?:I(?:LLAGE"
+  " OF (?:PALMETTO BAY|WELLINGTON|GOLF)|RGINIA G(?:ARDE|D)NS|ERA)|A("
+  "?:NDERBILT(?: BEACH)?|L(?:PARAIS|RIC)O)|E(?:R(?:O BEACH|NON)|N(?:"
+  "ICE|US))|LG (?:WELLINGTN|OF GOLF))|U(?:NI(?:V(?:ERSITY (?:OF(?: ("
+  "?:(?:SOUTH FLORID|TAMP)A|MIAMI))?|P(?:AR)?K)| OF (?:MIAMI|TAMPA))"
+  "|ON PARK)|P(?:PER SUGARLOAF KEY|R SUGARLOAF)|(?:MATILL|LET)A)|Y(?"
+  ":EEHAW(?: JUNCTION)?|A(?:NKEETOWN|LAHA)|OUNGSTOWN|BOR CITY|ULEE)|"
+  "Z(?:E(?:PHYRHILLS|LLWOOD)|OLFO SPRINGS)|QU(?:AIL HEIGHTS|INCY))))"
+  ")$"
+  ,
+  /* -- FM -- FM -- FM -- FM -- FM -- FM -- FM -- FM -- FM -- FM -- */
+  "(?:\\b)((?^:(?i:(?:POHNPEI|KOSRAE|CHUUK|YAP))))$"
+  ,
+  /* -- GA -- GA -- GA -- GA -- GA -- GA -- GA -- GA -- GA -- GA -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:INT (?:SIMONS IS(?:LAND)?|GEORGE|MARYS"
+  ")|ND(?:Y SP(?:RIN)?GS|ERSVILLE)|UTE(?:E NACOOCHE|[- ]NACOCH)E|R(?"
+  ":GENT|DIS)|PELO ISLAND|LE CITY|VANNAH|SSER)|T(?:O(?:NE M(?:OUNTAI"
+  "|T)N|CK(?:BRIDGE|TON)|VALL)|A(?:T(?:E(?:NVILLE|SBORO)|HAM)|PLETON"
+  ")| SIMONS IS(?:LAND)?|ILL(?:MORE|WELL)|EPHENS)|U(?:M(?:MER(?:VILL"
+  "E|TOWN)|NER)|GAR (?:VALLEY|HILL)|(?:NNY SID|WANE)E|RRENCY|CHES)|H"
+  "(?:A(?:R(?:PSBURG|ON)|DY DALE|NNON)|ELLMAN(?: BL(?:UF)?F)?|ILOH)|"
+  "O(?:(?:CIAL CIRCL|UTH BAS)E|PERTON)|Y(?:LV(?:ESTER|ANIA)|CAMORE)|"
+  "C(?:OT(?:TDALE|LAND)|REVEN)|P(?:AR(?:KS|TA)|RINGFIELD)|E(?:A ISLA"
+  "ND|VILLE|NOIA)|M(?:ITHVILLE|YRNA|ARR)|IL(?:VER CREEK|OAM)|KY VALL"
+  "EY|NELLVILLE|WAINSBORO)|C(?:O(?:L(?:L(?:EGE PARK|INS)|(?:QUIT|BER"
+  ")T|UMBUS|EMAN)|N(?:CORD|YERS|LEY)|R(?:NELIA|DELE)|V(?:INGTON|ENA)"
+  "|(?:CHRA|TTO)N|M(?:MERCE|ER)|O(?:LIDGE|SA)|BB(?:TOWN)?|GDELL|HUTT"
+  "A)|A(?:R(?:(?:TER|NE)SVILLE|(?:ROL)?LTON)|L(?:HOUN|VARY)|M(?:ILLA"
+  "|AK)|VE SPRING|SSVILLE|DWELL|NT?ON|TAULA|IRO)|L(?:A(?:RK(?:(?:ESV"
+  "IL|DA)LE|STON)|[XY]TON)|E(?:VELAND|RMONT)|I(?:NCHFIELD|MAX)|Y(?:A"
+  "TTVILLE|O)|OUDLAND)|H(?:E(?:ST(?:NUT M(?:OUNTAI|T)N|ER)|RRYLOG)|A"
+  "(?:TSWORTH|MBLEE|UNCEY)|(?:ICKAMAUG|UL)A)|E(?:DAR(?: SPRINGS|TOWN"
+  ")|NTERVILLE|CIL)|R(?:A(?:WFORD(?:VILLE)?|NDALL)|ESCENT)|U(?:LLODE"
+  "N|THBERT|MMING|SSETA)|ISCO)|M(?:O(?:U(?:NT(?: (?:(?:VERN|ZI)ON|(?"
+  ":BER|AI)RY)|AIN CITY|VILLE)|LTRIE)|R(?:(?:GA(?:NTO)?|VE)N|R(?:IS|"
+  "OW)|ELAND)|N(?:T(?:ICELLO|EZUMA|ROSE)|ROE)|ODY A(?: F |F)B|LENA)|"
+  "A(?:R(?:SHALLVILLE|TIN(?:EZ)?|BLE HILL|IETTA)|N(?:(?:CHESTE|O)R|S"
+  "FIELD|ASSAS)|Y(?:SVILLE|FIELD)|(?:BLET|DIS|C)ON|(?:TTHEW|XEY)S|UK"
+  ")|I(?:L(?:L(?:E(?:DGEVILLE|N)|WOOD)|(?:TO|A)N|NER)|D(?:VILLE|LAND"
+  "|WAY)|NERAL BLUFF|TCHELL)|E(?:R(?:CER UNIVERSITY|(?:IDIA|SHO)N)|T"
+  "(?:CALF|TER)|ANSVILLE|LDRIM|SENA|IGS|NLO)|C(?: (?:CAYSVILL|INTYR|"
+  "RA)E|DONOUGH)|U(?:RRAYVILLE|SELLA)|YSTIC)|B(?:O(?:W(?:DON(?: J(?:"
+  "UNCTION|CT))?|ERSVILLE|MAN)|(?:N(?:EVILL|AIR)|LINGBROK)E|ST(?:WIC"
+  "K|ON)|X SPRINGS|GART)|R(?:O(?:OK(?:FIELD|LET|S)|NWOOD|XTON)|I(?:D"
+  "GEBORO|NSON|STOL)|(?:ASELTO|EME)N|UNSWICK)|L(?:A(?:CK(?: CREEK|SH"
+  "EAR)|IRSVILLE|KELY)|(?:OOMINGDAL|YTH)E|U(?:E RIDGE|FFTON))|A(?:R("
+  "?:NE(?:SVILLE|Y)|WICK|TOW)|L(?:L GROUND|DWIN)|INBRIDGE|CONTON|XLE"
+  "Y)|U(?:C(?:HANAN|KHEAD)|ENA VISTA|FORD|TLER)|E(?:R(?:KELEY LAKE|L"
+  "IN)|LLVILLE|THLEHEM)|I(?:G CANOE|SHOP)|YRO(?:MVILLE|N))|W(?:A(?:R"
+  "(?:(?:NER ROBIN|M SPRING)S|(?:RENTO|THE)N|ESBORO|WICK)|Y(?:NES(?:"
+  "VILLE|BORO)|CROSS)|L(?:THOURVILLE|ESKA)|VERLY(?: HALL)?|TKINSVILL"
+  "E|SHINGTON|DLEY|CO)|I(?:L(?:L(?:ACOOCHEE|IAMSON)|DWOOD|EY)|N(?:TE"
+  "RVILLE|STON|DER))|OO(?:D(?:B(?:INE|URY)|STOCK|VILLE|LAND)|LSEY)|H"
+  "I(?:TE(?: (?:PLAINS|OAK)|SBURG)?|GHAM)|EST(?: (?:GREEN|POINT)|ON)"
+  "|R(?:IGHTSVILLE|ENS|AY))|A(?:L(?:LEN(?:HURST|TOWN)|(?:PHARETT|M)A"
+  "|A(?:PAHA|MO)|BANY|STON|TO)|R(?:(?:(?:NOLDSVIL|GY)L|MUCHE)E|A(?:G"
+  "ON|BI)|LINGTON)|B(?:(?:RAHAM BALDWIN COLLEG|BEVILL)E|AC)|V(?:ONDA"
+  "LE EST(?:ATES)?|ERA)|T(?:(?:TAPULGU|HEN)S|LANTA)|D(?:AIRSVILLE|RI"
+  "AN|EL)|U(?:GUSTA|STELL|BURN)|M(?:ERICUS|BROSE)|(?:SHBUR|XSO)N|NDE"
+  "RSONVILLE|CWORTH|PPLING|ILEY)|L(?:A(?:KE(?: (?:(?:SPIVE|CIT)Y|PAR"
+  "K)|LAND|MONT)|(?:WRENCEVILL| FAYETT|GRANG)E|VONIA)|O(?:(?:(?:U(?:"
+  "ISVIL|VA)|GANVIL)L|CUST GROV)E|OKOUT M(?:OUNTAI|T)N|VEJOY)|I(?:TH"
+  "(?:IA SP(?:RIN)?GS|ONIA)|N(?:COLNTON|DALE)|L(?:BURN|LY)|ZELLA)|U("
+  "?:M(?:BER CITY|PKIN)|THERSVILLE|DOWICI|LA)|E(?:(?:XINGT|BAN)ON|ES"
+  "BURG|SLIE|ARY|NOX)|Y(?:ERLY|ONS))|R(?:O(?:C(?:K(?:Y F(?:ACE|ORD)|"
+  " SPRING|LEDGE|MART)|HELLE)|B(?:INS A(?: F |F)B|ERTA)|S(?:SVILLE|W"
+  "ELL)|(?:OPVILL|M)E|UND OAK|YSTON)|I(?:C(?:H(?:MOND HILL|LAND)|EBO"
+  "RO)|N(?:GGOLD|CON)|SING FAWN|VERDALE)|E(?:(?:BEC|SA)CA|D(?: OAK|A"
+  "N)|IDSVILLE|GISTER|YNOLDS|NTZ|X)|A(?:Y(?: CITY|MOND|LE)|BUN GAP|N"
+  "GER)|U(?:TLEDGE|PERT)|HINE|YDAL)|F(?:O(?:R(?:T(?: (?:G(?:AINES|IL"
+  "LEM|ORDON)|OGLETHORPE|MCPHERSON|BENNING|STEWART|VALLEY)|SON)|EST "
+  "PARK|SYTH)|(?:WLSTOW|LKSTO)N)|A(?:IR(?:MOUNT|BURN)|R(?:MINGTON|GO"
+  ")|YETTEVILLE)|L(?:O(?:WERY BR(?:ANCH)?|VILLA)|INTSTONE|EMING)|T ("
+  "?:OGLETHORPE|MCPHERSON)|RANKLIN(?: SP(?:RIN)?GS)?|I(?:TZGERALD|NG"
+  "ERHUT)|(?:UNS|EL)TON)|P(?:O(?:W(?:DER SP(?:RIN)?GS|ERSVILLE)|RT(?"
+  ": WENTWORTH|ERDALE|AL)|OLER|ULAN)|I(?:NE(?: (?:M(?:OUNTAIN(?: VAL"
+  "LEY)?|TN VALY)|LAKE)|HURST|VIEW)|TTS)|E(?:A(?:CHTREE CI?TY|RSON)|"
+  "R(?:KINS|RY)|NDERGRASS|MBROKE|LHAM)|A(?:(?:LMETT|V)O|TTERSON|RROT"
+  "T)|R(?:T WENTWORTH|ESTON)|LAIN(?:FIELD|VILLE|S)|U(?:LASKI|TNEY)|H"
+  "ILOMATH)|T(?:A(?:L(?:L(?:ULAH F(?:AL)?LS|APOOSA)|KING ROCK|BOTTON"
+  "|MO)|(?:YLORSVILL|T)E|RRYTOWN|ZEWELL)|H(?:OM(?:AS(?:VILLE|TON)|SO"
+  "N)|UNDERBOLT|E ROCK)|U(?:R(?:NERVILLE|IN)|NNEL HILL|CKER)|O(?:CCO"
+  "A(?: FALLS)?|OMSBORO|WNSEND)|Y(?:BEE ISLAND|RONE| TY)|E(?:NN(?:IL"
+  "LE|GA)|MPLE)|I(?:G(?:NALL|ER)|FTON)|R(?:ENT|I)ON|WIN CITY)|H(?:A("
+  "?:R(?:T(?:SFIELD|WELL)|(?:AL|RI)SON|DWICK|LEM)|(?:M(?:IL|P)TO|GA)"
+  "N|(?:WKINS|PE)VILLE|ZLEHURST|BERSHAM|DDOCK|HIRA)|O(?:ME(?:R(?:VIL"
+  "LE)?|LAND)|(?:GANSVILL|RTENS)E|(?:SCHTO|BOKE)N|LLY SPRINGS|WARD)|"
+  "I(?:(?:NESVILL|AWASSE)E|L(?:LSBORO|TONIA)|GH SHOALS|RAM)|U(?:NTER"
+  " AAF|BER|LL)|E(?:PHZIBAH|LENA?))|D(?:A(?:N(?:(?:IELS)?VILLE|BURG)"
+  "|(?:HLONEG|CUL)A|WSON(?:VILLE)?|L(?:LAS|TON)|VISBORO|MASCUS|RIEN|"
+  "ISY)|O(?:(?:NALSON|RA)VILLE|UGLAS(?:VILLE)?|BBINS AFB|ERUN|VER)|E"
+  "(?:(?:CATU|XTE)R|WY ROSE|EPSTEP|MOREST| SOTO|ARING|NTON)|U(?:(?:N"
+  "WOOD|DLE)Y| PONT|BLIN|LUTH)|I(?:LLARD|XIE)|RY BRANCH)|E(?:L(?:L(?"
+  ":E(?:N(?:WOOD|TON)|RSLIE)|A(?:VILLE|BELL)|IJAY)|BERTON|KO)|A(?:ST"
+  "(?: (?:ELLIJAY|DUBLIN|POINT)|ANOLLEE|MAN)|TONTON)|D(?:(?:ISO|E)N|"
+  "GE HILL)|M(?:ERSON|PIRE)|(?: DUBLI|TO)N|XPERIMENT|SOM HILL|UHARLE"
+  "E|PWORTH|NIGMA|VANS)|G(?:R(?:A(?:Y(?:S(?:VILLE|ON))?|NTVILLE|CEWO"
+  "OD)|EEN(?:SBORO|VILLE)|(?:OVETOW|IFFI)N)|A(?:R(?:DEN CI?TY|FIELD)"
+  "|INESVILLE|Y)|I(?:LLSVILLE|BSON|RARD)|LEN(?:N(?:VILLE)?|WOOD)|O(?"
+  ":OD HOPE|RDON|UGH)|E(?:ORGETOWN|NEVA)|UYTON)|J(?:E(?:FFERSON(?:VI"
+  "?LLE)?|KYLL ISLAND|NKINSBURG|RSEY|WELL|SUP)|U(?:N(?:CTION CITY|IP"
+  "ER)|LIETTE)|A(?:CKSON(?:VILLE)?|SPER|KIN)|O(?:HNS CREEK|NESBORO))"
+  "|N(?:OR(?:MAN PARK|TH METRO|RISTOWN|CROSS|WOOD)|E(?:(?:W(?:(?:ING"
+  ")?TO|BOR|NA)|LSO)N|VILS)|A(?:SHVILLE|HUNTA|YLOR)|ICHOL(?:SON|LS)|"
+  "UNEZ)|O(?:AK(?:(?:FIEL|WOO)D| PARK|MAN)|C(?:(?:HLOCK|O)NEE|ILLA)|"
+  "M(?:AH|EG)A|RCHARD HILL|GLETHORPE|FFERMAN|LIVER|XFORD|DUM)|K(?:I("
+  "?:NGS(?: BAY|LAND|TON)|TE)|E(?:YSVILLE|NNESAW)|NOXVILLE|ATHLEEN)|"
+  "V(?:A(?:L(?:DOST|ON)A|RNELL)|I(?:LLA RIC|DALI|ENN)A)|U(?:N(?:ION "
+  "(?:POINT|CITY)|ADILLA)|PATOI|VALDA)|I(?:R(?:WIN(?:VILLE|TON)|ON C"
+  "ITY)|DEAL|VEY|LA)|Y(?:OUNG HARRIS|ATESVILLE)|(?:QUITMA|ZEBULO)N))"
+  "))$"
+  ,
+  /* -- GU -- GU -- GU -- GU -- GU -- GU -- GU -- GU -- GU -- GU -- */
+  "(?:\\b)((?^:(?i:(?:(?:S(?:ANTA RIT|INAJAN)|BARRIGAD|HAGATN)A|M(?:"
+  "(?:ANGILA|ERIZ)O|ONGMONG)|A(?:GA(?:NA HEIGHTS|T)|SAN)|(?:CHALAN P"
+  "AG|DEDED)O|TA(?:LOFOFO|MUNING)|Y(?:IGO|ONA)|INARAJAN|UMATAC|ORDOT"
+  "|PITI))))$"
+  ,
+  /* -- HI -- HI -- HI -- HI -- HI -- HI -- HI -- HI -- HI -- HI -- */
+  "(?:\\b)((?^:(?i:(?:K(?:A(?:(?:ILU(?:A KON)?|MUEL|AAW)A|U(?:NAKAKA"
+  "|MAKAN)I|LA(?:UPAPA|HEO)|P(?:AAU?|OLEI)|HU(?:LUI|KU)|NEOHE)|E(?:A"
+  "(?:L(?:AKEKU|I)A|(?:UHO|A)U)|KAHA)|U(?:(?:NI|L)A|RTISTOWN|ALAPUU)"
+  "|I(?:LAUEA|HEI)|OLOA)|H(?:A(?:W(?:AII NATIONAL PARK|I)|NA(?:MAULU"
+  "|PEPE|LEI)?|(?:LEIW|UUL)A|(?:KALA|IK)U)|O(?:N(?:O(?:(?:LUL|M)U|KA"
+  "A)|AUNAU)|(?:LUALO|OLEHU)A)|I(?: NATL PARK|CKAM AFB|LO))|P(?:A(?:"
+  "(?:H(?:AL|O)|I)A|PA(?:ALOA|IKOU)|AU(?:HAU|ILO))|E(?:ARL (?:HARBOR"
+  "|CITY)|PEEKEO)|U(?:KALANI|UNENE)|RINCEVILLE)|W(?:A(?:I(?:M(?:ANAL"
+  "O|EA)|A(?:LUA|NAE)|L(?:UKU|EA)|KOLOA|PAHU)|KE ISLAND|HIAWA)|HEELE"
+  "R A(?:RMY AIRFIELD|AF))|M(?:(?: C B H K(?:ANEOHE)?|CBH K) BAY|A(?"
+  ":KAW(?:ELI|AO)|UNALOA)|OUNTAIN VIEW|ILILANI)|L(?:A(?:(?:UPAHOEHO|"
+  "I)E|NAI CITY|HAINA|WAI)|IHUE)|CA(?:MP(?: H M)? SMITH|PTAIN COOK)|"
+  "TRIPLER A(?:RMY MEDICAL CENTER|MC)|SCHOFIELD(?: BARRACKS)?|O(?:CE"
+  "AN VIEW|OKALA)|E(?:WA BEACH|LEELE)|N(?:AALEHU|INOLE)|A(?:NAHOL|IE"
+  ")A|FORT SHAFTER|VOLCANO))))$"
+  ,
+  /* -- IA -- IA -- IA -- IA -- IA -- IA -- IA -- IA -- IA -- IA -- */
+  "(?:\\b)((?^:(?i:(?:M(?:A(?:R(?:T(?:E(?:NSDA|L)LE|INSBURG)|(?:(?:A"
+  "TH|I)O|SHALLTOW)N|(?:QUETT|N)E|BLE ROCK|ENGO|CUS)|N(?:(?:ILL|AW)A"
+  "|CHESTER|NING|SON|LY)|S(?:ON(?: CITY|VILLE)|SENA)|Y(?:SVILLE| CIT"
+  "Y|NARD)|C(?:EDONIA|KSBURG)|L(?:LARD|VERN|COM)|(?:QUOKET|GNOLI)A|P"
+  "LETON|TLOCK|URICE|XWELL|DRID)|O(?:U(?:NT (?:(?:VERN|UNI)ON|A(?:UB"
+  "URN|YR)|PLEASANT|STERLING)|LTON)|N(?:T(?:(?:PELIE|OU)R|ICELLO|EZU"
+  "MA|ROSE)|DAMIN|MOUTH|ONA|ROE)|R(?:(?:NING SU|RISO)N|AVIA|LEY)|OR("
+  "?:HEA|LAN)D|(?:VIL|DA)LE| VALLEY|SCOW)|I(?:L(?:LER(?:SBURG|TON)|F"
+  "ORD|TON|ES|O)|N(?:(?:BUR|DE)N|EOLA|GO)|DDLE(?: AMANA|TOWN)?|SSOUR"
+  "I V(?:ALLE|L)Y|TCHELL(?:VILLE)?)|E(?:L(?:CHER(?: DAL(?:LAS)?)?|(?"
+  ":BOURN|ROS)E|VIN)|R(?:IDEN|RILL)|CHANICSVI?LLE|DIAPOLIS|SERVEY|NL"
+  "O)|C (?:C(?:A(?:LLSBURG|USLAND)|LELLAND)|GREGOR|INTIRE)|T (?:PLEA"
+  "SANT|STERLING|UNION)|U(?:SCATINE|RRAY)|YSTIC)|C(?:O(?:L(?:UMB(?:U"
+  "S (?:J(?:UNCTION|CT)|CITY)|IA)|L(?:EGE SPR(?:IN)?G|IN)S|ESBURG|WE"
+  "LL|FAX|O)|R(?:(?:RECTIONV(?:IL)?|ALVIL)LE|NING|WITH|YDON)|U(?:NCI"
+  "L BL(?:UF)?FS|LTER)|N(?:R(?:AD|OY)|ESVILLE)|O(?:N RAPIDS|PER)|(?:"
+  "GGO|I)N)|A(?:R(?:(?:TER LAK|LISL)E|(?:[BS]|NARV)ON|PENTER|ROLL)|L"
+  "(?:(?:LENDE|MA)R|AMUS|UMET)|S(?:TA(?:LI|N)A|CADE|EY)|M(?:BRIDG|AN"
+  "CH)E|NTRIL)|L(?:E(?:AR(?: LAKE|FIELD)|GHORN|RMONT|MONS)|AR(?:(?:("
+  "?:ENC)?|KSVILL)E|I(?:NDA|ON))|I(?:MBING HILL|NTON|VE|O)|UTIER)|H("
+  "?:A(?:R(?:L(?:ES CITY|OTTE)|TER OAK|ITON)|TSWORTH|PIN)|E(?:ROKEE|"
+  "LSEA|STER)|ILLICOTHE|URDAN)|E(?:NT(?:ER(?: (?:J(?:UNCTION|CT)|POI"
+  "NT)|VILLE)|RAL CITY)|DAR(?: (?:RAPID|FALL)S)?)|R(?:(?:AWFORDSVI?L"
+  "L|YSTAL LAK)E|ES(?:C(?:ENT|O)|TON)|OMWELL)|U(?:M(?:BERLAND|MING)|"
+  "SHING|RLEW)|INCINNATI|YLINDER)|S(?:T(?:A(?:N(?:HOPE|WOOD|LEY|TON)"
+  "|TE CENTER|CYVILLE)|O(?:R(?:M LAKE|Y CITY)|CK(?:PORT|TON)|UT)|RA("
+  "?:WBERRY P(?:OIN)?T|TFORD)|EAMBOAT R(?:OC)?K|UART)|A(?:INT (?:(?:"
+  "CHARLE|DONATU|LUCA|MARY)S|AN(?:THONY|SGAR)|OLAF|PAUL)|(?:RATOG|BU"
+  "L)A|L(?:EM|IX)|C CITY|NBORN)|H(?:E(?:L(?:L(?: ROCK|SBURG)|D(?:AHL"
+  "|ON)|BY)|NANDOAH|FFIELD|RRILL)|A(?:NNON CITY|RPSBURG|MBAUGH))|P(?"
+  ":R(?:ING(?: HILL|BROOK|VILLE)|AGUEVILLE)|I(?:RIT LAK|LLVILL)E|E(?"
+  ":NCER|RRY))|I(?:(?:(?:(?:GOUR|D)N|BL)E|LVER CIT)Y|OUX (?:C(?:ENTE"
+  "R|ITY)|RAPIDS))|C(?:(?:OTCH GROV|ARVILL)E|H(?:LESWIG|ALLER)|RANTO"
+  "N)|E(?:RGEANT BL(?:UF)?F|ARSBORO|YMOUR|LMA|WAL)|O(?:UTH (?:ENGLIS"
+  "H|AMANA)|L(?:DIER|ON)|MERS)|W(?:E(?:DESBURG|A CITY)|A(?:LEDALE|N)"
+  "|ISHER)|U(?:(?:PERIO|MNE)R|THERLAND|LLY)|L(?:ATER|OAN)|MITHLAND)|"
+  "W(?:E(?:S(?:T(?: (?:B(?:URLINGTON|RANCH|END)|DES MOINES|CHESTER|L"
+  "IBERTY|OKOBOJI|AMANA|GROVE|POINT|UNION)|(?:GAT|SID)E|PHALIA|FIELD"
+  ")|LEY)|L(?:L(?:SBURG|MAN)|[DT]ON)|B(?:STER(?: CITY)?|B)|VER)|A(?:"
+  "L(?:L(?:INGFORD| LAKE)|(?:COT|NU)T|FORD|KER)|T(?:ER(?:VILLE|LOO)|"
+  "KINS)|SH(?:(?:INGTO|BUR)N|TA)|U(?:K(?:EE|ON)|COMA)|PELLO|VERLY|YL"
+  "AND|DENA)|I(?:N(?:DSOR (?:HEIG)?HTS|T(?:ERSET|HROP)|FIELD)|L(?:LI"
+  "AMS(?:BURG|ON)?|TON)|OTA)|O(?:O(?:D(?:B(?:INE|URN)|WARD)|LSTOCK)|"
+  "(?:RTHINGTO|DE)N)|H(?:IT(?:T(?:E(?:MORE|N)|IER)|ING)|AT CHEER|EAT"
+  "LAND)| (?:BURLINGTON|DES MOINES|OKOBOJI)|YOMING)|L(?:A(?:K(?:E(?:"
+  " (?:MILLS|CITY|PARK|VIEW)|SIDE)|OTA)|N(?:GWORTHY|ESBORO|SING)| (?"
+  ":PORTE CITY|MOTTE)|R(?:CHWOOD|RABEE)|(?:CON|DOR)A|W(?:LER|TON)|UR"
+  "E(?:NS|L)|MON[IT]|TIMER)|I(?:N(?:(?:N GROV|EVILL)E|(?:COL|DE)N)|T"
+  "TLE(?: (?:CEDAR|SIOUX|ROCK)|PORT)|BERTY(?: C(?:ENTE|T)R|VILLE)|(?"
+  ":DDERDAL|VERMOR)E|S(?:COMB|BON)|ME SPRINGS)|O(?:N(?:E (?:ROCK|TRE"
+  "E)|G GROVE)|(?:CKRIDG|HRVILL)E|W(?: MOOR|DEN|ELL)|(?:ST NATIO|GA)"
+  "N|RIMOR|VILIA)|E(?: (?:CLAIRE|GRAND|MARS)|(?:DYAR|LAN)D|(?:IGHT)?"
+  "ON|(?:TT|WI)S|CLAIRE|HIGH|STER|NOX)|U(?:(?: V|Z)ERNE|XEMBURG|THER"
+  "|ANA|CAS)|Y(?:NNVILLE|TTON))|B(?:R(?:A(?:D(?:(?:DYVILL|GAT)E|FORD"
+  ")|(?:ND|YT)ON)|I(?:DGEWATER|GHTON|STOW|TT)|O(?:OKLY|NSO)N|E(?:MER"
+  "|DA)|UNSVILLE|YANT)|E(?:A(?:CON(?:SFIELD)?|MAN|VER)|L(?:LE(?: PLA"
+  "IN|VU)E|MOND)|R(?:NARD|WICK)|N(?:NETT|TON)|TTENDORF|VINGTON|DFORD"
+  ")|A(?:R(?:N(?:ES CITY|UM)|TLETT)|T(?:TLE CREEK|AVIA)|(?:DG|XT)ER|"
+  "NCROFT|LDWIN|GLEY|YARD)|L(?:A(?:IRS(?:BURG|TOWN)|KESBURG|NCHARD)|"
+  "O(?:OMFIELD|CKTON)|UE GRASS|ENCOE)|U(?:FFALO(?: C(?:ENTE|T)R)?|R("
+  "?:LINGTON|NSIDE|T)|CK(?:INGHAM|EYE)|SSEY)|O(?:(?:ON(?:EVILL)?|D)E"
+  "|N(?:APARTE|DURANT)|(?:UTO|YDE)N|XHOLM)|I(?:RMINGHAM|G ROCK))|G(?"
+  ":R(?:A(?:N(?:D(?: (?:J(?:UNCTION|CT)|MOUND|RIVER)|VIEW)|VILLE|GER"
+  "|T)|(?:VIT)?Y|ETTINGER|FTON)|EE(?:N(?: (?:M(?:OUNTAI|T)N|ISLAND)|"
+  "(?:VILL)?E|FIELD)|LEY)|I(?:NNELL|SWOLD|MES)|U(?:NDY CENT|V)ER)|A("
+  "?:R(?:DEN (?:GROVE|CITY)|N(?:AVILLO|ER)|(?:RISO|WI)N|BER)|L(?:VA|"
+  "T))|I(?:L(?:M(?:ORE CITY|AN)|BERT(?:VILLE)?|LETT GROVE)|FFORD|BSO"
+  "N)|U(?:T(?:HRIE C(?:ENTE|T)R|TENBERG)|ERNSEY)|O(?:O(?:SE LAKE|DEL"
+  "L)|LDFIELD|WRIE)|L(?:ADBROOK|ENWOOD|IDDEN)|E(?:NEVA|ORGE))|A(?:L("
+  "?:L(?:E(?:(?:RTO|MA)N|NDORF)|ISON)|B(?:I(?:ON|A)|ERT CITY|URNETT)"
+  "|T(?:(?:A VIST)?A|O(?:ONA|N))|(?:GON|PH)A|EXANDER|VORD|DEN)|R(?:C"
+  "(?:ADIA|HER)|(?:EDA|GY)LE|I(?:SPE|ON)|NOLDS PARK|LINGTON|MSTRONG|"
+  "THUR)|N(?:D(?:OVER|REW)|(?:AMOS|IT)A|KENY|THON)|U(?:(?:DUBO|BUR)N"
+  "|R(?:ELI|OR)A|STINVILLE)|T(?:ALISSA|LANTIC|KINS)|S(?:PINWALL|BURY"
+  "|HTON)|(?:(?:PLING|F)T|KR)ON|CK(?:WORTH|LEY)|D(?:AIR|EL)|M(?:ANA|"
+  "ES)|INSWORTH|YRSHIRE|GENCY|VOCA)|P(?:A(?:C(?:IFIC J(?:UNCTION|CT)"
+  "|KWOOD)|(?:N(?:AM|OR)|ULLIN)A|R(?:KERSBURG|NELL)|T(?:TERS)?ON|L(?"
+  ":MER|O))|R(?:O(?:MISE CITY|TIVIN|LE)|AIRIE(?: CITY|BURG)|I(?:NCET"
+  "ON|MGHAR)|ES(?:COTT|TON))|L(?:EASANT(?: (?:V(?:ALLE|L)Y|HILL)|VIL"
+  "LE|ON)|A(?:INFIELD|NO)|YMOUTH|OVER)|O(?:(?:(?:MER|PEJ)O|LK CIT)Y|"
+  "CAHONTAS|RTSMOUTH|STVILLE)|E(?:R(?:S(?:HING|IA)|CIVAL|RY|U)|(?:OS"
+  "T|LL)A|TERSON)|I(?:LOT (?:GROVE|MOUND)|ERSON|SGAH)|ULASKI)|D(?:E("
+  "?:L(?:AWARE|PHOS|MAR|OIT|HI|TA)|(?:(?:EP RIV|XT)E|WA)R|N(?:ISON|M"
+  "ARK|VER)| (?:SOTO|WITT)|C(?:ATUR|ORAH)|S MOINES|FIANCE|DHAM|RBY)|"
+  "A(?:V(?:IS CITY|ENPORT)|N(?:VILLE|BURY|A)|LLAS(?: CENTER)?|(?:WS|"
+  "YT)ON|KOTA CITY)|O(?:(?:RCHEST|LLIV)ER|N(?:NELLSON|AHUE)|U(?:GHER"
+  "TY|DS)|W(?: CITY|S)|ON)|U(?:N(?:(?:COMB|DE)E|KERTON|LAP)|RAN(?:GO"
+  "|T)|BUQUE|MONT)|I(?:AGONAL|CKENS|XON|KE)|Y(?:ERSVILLE|SART)|RAKES"
+  "VILLE)|R(?:O(?:CK(?: (?:(?:RAPID|FALL)S|VALLEY)|WELL(?: CITY)?|FO"
+  "RD)|S(?:E HILL|SIE)|L(?:AND|FE)|W(?:LEY|AN)|BINS|DNEY|YAL|ME)|I(?"
+  ":C(?:EVILLE|HLAND|KETTS)|VER(?:(?:DAL|SID)E|TON)|(?:DGEWA|PPE)Y|N"
+  "(?:GSTE|AR)D)|E(?:D(?:FIELD| OAK|DING)|M(?:BRANDT|SEN)|(?:INBE|NW"
+  "I)CK|A(?:DLYN|SNOR))|A(?:ND(?:AL(?:IA|L)|OLPH)|(?:LSTO|THBU)N|(?:"
+  "DCLIFF|K)E|YMOND)|U(?:T(?:HVEN|LAND)|NNELLS|SSELL|BIO|DD)|HODES|Y"
+  "AN)|H(?:A(?:R(?:T(?:FORD|WICK|LEY)|PER(?:S FERRY)?|VE(?:STER|Y)|C"
+  "OURT|LAN|RIS|DY)|M(?:(?:(?:IL|P)TO|LI)N|BURG)|N(?:LONTOWN|COCK|SE"
+  "LL)|VE(?:RHILL|LOCK)|W(?:ARDEN|KEYE)|L(?:BUR|E)|YESVILLE|STINGS|Z"
+  "LETON)|O(?:L(?:Y CROSS|STEIN|LAND)|(?:NEY CREE|RNIC)K|(?:PKIN|UGH"
+  ")TON|MESTEAD|SPERS)|I(?:LLS(?:BORO)?|GHLANDVILLE|AWATHA|NTON)|U(?"
+  ":M(?:BOLDT|ESTON)|BBARD|DSON|XLEY|LL)|E(?:NDERSON|DRICK))|N(?:E(?"
+  ":W(?: (?:HA(?:RTFORD|MPTON)|L(?:IBERTY|ONDON)|VI(?:RGINI|ENN)A|(?"
+  ":SHARO|ALBI)N|PROVIDE?NCE|MARKET)|(?:HA|E)LL|TON)|(?:MAH|VAD|OL)A"
+  ")|O(?:R(?:TH(?: (?:BUENA VISTA|WASHINGTON|ENGLISH|LIBERTY)|BORO|W"
+  "OOD)|WA(?:LK|Y)|A SPRINGS)|DAWAY)| (?:BUENA VISTA|WASHINGTON)|(?:"
+  "ASHU|UM)A|ICHOLS)|E(?:L(?:K(?: (?:RUN H(?:EIGH|G)TS|HORN)|(?:HA|P"
+  "O)RT|ADER)|D(?:O(?:RA(?:DO)?|N)|RIDGE)|L(?:S(?:WORTH|TON)|IOTT)|("
+  "?:BERO|GI)N|WOOD|MA|Y)|A(?:RL(?:VILLE|HAM|ING|Y)|GLE GROVE)|D(?:D"
+  "YVILLE|GEWOOD)|M(?:METSBURG|ERSON)|S(?:THERVILLE|SEX)|V(?:ANSDALE"
+  "|ERLY)|X(?:LINE|IRA)|PWORTH)|F(?:A(?:R(?:M(?:ERSBURG|INGTON)|NHAM"
+  "VILLE|RAGUT|LEY)|IR(?:F(?:IELD|AX)|BANK)|YETTE)|O(?:R(?:T (?:(?:A"
+  "TKIN|MADI)SON|DODGE)|EST CITY)|N(?:TANELLE|DA)|STORIA)|R(?:E(?:DE"
+  "RI(?:CKSBU?RG|KA)|MONT)|UITLAND)|E(?:R(?:GUSON|TILE)|STINA|NTON)|"
+  "LO(?:RIS|YD))|T(?:R(?:U(?:ESDALE|RO)|A(?:CY|ER)|OY MILLS|EYNOR|IP"
+  "OLI)|H(?:O(?:R(?:N(?:BURG|TON))?|MPSON)|URMAN|AYER)|O(?:(?:ETER|D"
+  "D)VILLE|(?:RONT|LED)O)|E(?:EDS GROVE|MPLETON|NNANT|RRIL)|I(?:(?:F"
+  "FI|PTO)N|NGLEY|TONKA)|A(?:(?:INT|B)OR|MA)|URIN)|O(?:AK(?:LAND(?: "
+  "ACRES)?|(?:VIL|DA)LE)|R(?:AN(?:GE CITY)?|CHARD|IENT)|S(?:(?:KALOO"
+  "S|CEOL)A|SIAN|AGE)|T(?:T(?:OSEN|UMWA)|H?O|LEY)|XFORD(?: J(?:UNCTI"
+  "ON|CT))?|(?:CHEYEDA|ELWEI|GDE)N|L(?:LIE|DS|IN)|N(?:SLOW|AWA)|DEBO"
+  "LT|KOBOJI|YENS)|K(?:E(?:LL(?:E(?:RTON|Y)|OGG)|O(?:(?:SAUQU|T)A|KU"
+  "K)|S(?:WICK|LEY)|N(?:SET)?T|YSTONE)|I(?:R(?:K(?:VILLE|MAN)|ON)|N("
+  "?:GSLEY|ROSS)|MBALLTON|LLDUFF)|N(?:O(?:XVILL|K)E|IERIM)|A(?:(?:NA"
+  "WH|LON)A|MRAR)|LEMME)|V(?:I(?:N(?:CENT|ING|TON)|(?:LLISC|OL)A|CTO"
+  "R)|A(?:N (?:HORNE|METER|WERT)|RINA|IL)|O(?:ORHIES|LGA)|ENTURA)|I("
+  "?:N(?:D(?:EPENDENCE|IANOLA)|WOOD)|O(?:WA (?:FALLS|CITY)|NIA)|(?:D"
+  "A GROV|MOGEN)E|R(?:(?:ETO|WI)N|A))|J(?:A(?:CKSON J(?:UNCTION|CT)|"
+  "NESVILLE|MAICA)|E(?:FFERSON|WELL|SUP)|O(?:HNSTON|LLEY|ICE))|U(?:N"
+  "(?:I(?:VERSITY P(?:AR)?K|ON(?:VILLE)?)|DERWOOD)|RBAN(?:DALE|A)|DE"
+  "LL|TE)|Y(?:A(?:RMOUTH|LE)|ORKTOWN|ETTER)|QU(?:ASQUETON|IMBY)|Z(?:"
+  "EARING|WINGLE)))))$"
+  ,
+  /* -- ID -- ID -- ID -- ID -- ID -- ID -- ID -- ID -- ID -- ID -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:INT (?:(?:CHARL|MARI)ES|ANTHONY)|N(?:D"
+  "POINT|TA)|WTOOTH CITY|LMON|GLE)|T(?:A(?:R(?: RANCH)?|NLEY)|E(?:IR"
+  "MAN|RLING)|(?: MARI|IT)ES|ONE)|P(?:IRIT LAKE|RINGFIELD|ALDING|ENC"
+  "ER)|W(?:AN(?: VALLEY|LAKE)|EET)|H(?:O(?:SHONE|UP)|ELLEY)|U(?:GAR "
+  "CIT|N VALLE)Y|MELTERVILLE|ODA SPRINGS|ILVERTON)|M(?:O(?:UNTAIN HO"
+  "ME(?: A(?: F |F)B)?|NT(?:(?:PELIE|OU)R|EVIEW)|YIE SPRINGS|RELAND|"
+  "SCOW|ORE)|A(?:L(?:AD CITY|TA)|CK(?:S INN|AY)|RSING|Y)|E(?:(?:RIDI"
+  "|N)AN|(?:LB|S)A|DIMONT)|U(?:R(?:(?:PH|RA)Y|TAUGH)|LLAN)|I(?:D(?:D"
+  "LETON|VALE)|NIDOKA)|T(?:N HOME(?: AFB)?| HOME)|CCA(?:MMON|LL))|P("
+  "?:A(?:R(?:ADISE HOT(?: SPRINGS)?|KER|IS|MA)|LISADES|TTERSON|YETTE"
+  "|UL)|R(?:I(?:EST (?:RIVER|LAKE)|NCETON|CHARD)|AIRIE|ESTON)|I(?:N("
+  "?:E(?:HURST)?|GREE)|(?:ONEERVILL|ERC)E|CABO)|O(?:ST FALLS|CATELLO"
+  "|NDERAY|RTHILL|TLATCH|LLOCK)|L(?:ACERVILLE|UMMER)|ECK)|C(?:O(?:(?"
+  ":COLALL|ND)A|(?:LBUR|OLI)N|(?:UNCI|RRA)L|EUR D ALENE|TTONWOOD|BAL"
+  "T)|A(?:R(?:EY(?:WOOD)?|MEN)|S(?:TLEFORD|CADE)|LD(?:WELL|ER)|MBRID"
+  "GE|TALDO)|L(?:A(?:RK(?: FORK|IA)|YTON)|EARWATER|IFTON)|H(?:UBBUCK"
+  "|ALLIS|ESTER)|ENTERVILLE|RAIGMONT|ULDESAC)|H(?:A(?:R(?:PSTER|RISO"
+  "N|VARD)|(?:GERMA|ZELTO|NSE)N|YDEN(?: LAKE)?|M(?:METT|ER)|ILEY|USE"
+  "R)|O(?:L(?:LISTER|BROOK)|(?:[PW]|MEDAL)E|RSESHOE BE?ND)|I(?:DDEN "
+  "SP(?:RIN)?GS|LL CITY)|E(?:ADQUARTERS|YBURN)|USTON)|G(?:R(?:A(?:N("
+  "?:GEVILLE|D VIEW)|(?:SMER|C)E)|EEN(?:CREEK|LEAF))|A(?:RDEN (?:VAL"
+  "LE|CIT)Y|NNETT)|E(?:NE(?:SEE|VA)|ORGETOWN)|IBBONSVILLE|LENNS FERR"
+  "Y|OODING)|A(?:M(?:(?:ERICAN F(?:AL)?| FAL)LS|MON)|T(?:OMIC CITY|L"
+  "ANTA|HOL)|R(?:(?:IM|C)O|BON)|(?:BERDEE|SHTO)N|(?:CEQUI|HSAHK)A|L("
+  "?:BION|MO)|NDERSON DAM|VERY)|B(?:L(?:A(?:CKFOOT|NCHARD)|OOMINGTON"
+  "|ISS)|A(?:N(?:CROFT|KS)|YVIEW|SALT)|O(?:NNERS FERRY|VILL|ISE)|E(?"
+  ":LLEVUE|RN)|U(?:RLEY|HL)|RUNEAU)|D(?:A(?:LTON G(?:ARDE|D)NS|(?:RL"
+  "ING|Y)TON)|I(?:(?:NGL|XI)E|ETRICH)|O(?:(?:NNELL|WNE)Y|VER)|E(?:SM"
+  "ET|ARY|CLO)|(?:RIGG|UBOI)S)|L(?:A(?:VA HOT SP(?:RIN)?GS|KE FORK|C"
+  "LEDE|PWAI)|E(?:WIS(?:VILLE|TON)|(?:AD|N)ORE|MHI|THA)|O(?:NE STAR|"
+  "WMAN)|UCILE)|F(?:E(?:R(?:DINAN|NWOO)D|ATHERVILLE|LT|NN)|R(?:UIT(?"
+  ":LAND|VALE)|ANKLIN)|I(?:SH HAVEN|LER|RTH)|AIRFIELD|ORT HALL)|R(?:"
+  "I(?:G(?:GINS|BY)|(?:DDL|RI)E|CHFIELD)|O(?:CK(?:Y BAR|LAND)|GERSON"
+  "|BERTS)|E(?:UBENS|XBURG)|ATHDRUM|UPERT)|W(?:E(?:ST(?: MAGIC|ON)|I"
+  "(?:PPE|SER)|NDELL)|A(?:R(?:DNER|REN)|LLACE|YAN)|I(?:NCHEST|LD)ER|"
+  "HITE BIRD|ORLEY)|N(?:E(?:W(?: (?:CENTERVILLE|PLYMOUTH|MEADOWS)|DA"
+  "LE)|ZPERCE)|O(?:R(?:TH FORK|DMAN)|TUS)|A(?:PLES|MPA))|T(?:E(?:N(?"
+  ":DOY|SED)|TON(?:IA)?|RRETON)|WIN (?:FALL|LAKE)S|(?:AMARAC|IPANU)K"
+  "|R(?:IUMPH|OY)|HATCHER)|K(?:E(?:UTERVILLE|NDRICK|LLOGG|TCHUM)|I(?"
+  ":NG(?: HILL|STON)|MBERLY)|OO(?:TENAI|SKIA)|AMIAH|UNA)|I(?:N(?:DIA"
+  "N VALLEY|KOM)|DAHO (?:FALLS|CITY)|SLAND PARK|RWIN|ONA)|E(?:L(?:K "
+  "(?:RIVER|CITY|HORN)|LIS|BA)|A(?:STPORT|GLE)|MMETT|DEN)|O(?:R(?:OF"
+  "INO|EANA)|A(?:KLEY|SIS)|L(?:DTOWN|A)|NAWAY|SBURN|VID)|J(?:ULIAETT"
+  "A|ACKSON|EROME)|VI(?:CTOR|OLA)|YELLOW PINE|UCON))))$"
+  ,
+  /* -- IL -- IL -- IL -- IL -- IL -- IL -- IL -- IL -- IL -- IL -- */
+  "(?:\\b)((?^:(?i:(?:S(?:T(?:O(?:N(?:E(?: PARK|FORT)|INGTON)|CK(?:L"
+  "AND|TON)|Y)|R(?:EA(?:MWOOD|TOR)|A(?:SBURG|WN)|ONGHURST)| (?:(?:FR"
+  "ANCISVL|AUGUSTIN)E|CHARLES)|E(?:WARD(?:SON)?|ELEVILLE|RLING|GER)|"
+  "A(?:N(?:DARD(?: CITY)?|FORD)|UNTON)|I(?:LLMAN V(?:ALLE|L)|CKNE)Y)"
+  "|A(?:I(?:NT(?: (?:(?:A(?:UGUSTI|N)N|FRANCISVILL)E|J(?:OSEPH|ACOB)"
+  "|CHARLES|LIBORY|DAVID|PETER|ELMO)|E MARIE)|LOR SP(?:RIN)?GS)|N(?:"
+  "D(?:OVAL|WICH)| JOSE)|U(?:K VILLAGE|NEMIN|GET)|L(?:ISBURY|EM)|V(?"
+  ":ANNA|OY)|WYERVILLE|YBROOK|DORUS)|H(?:E(?:R(?:(?:ID|M)AN|RARD)|L("
+  "?:BYVILLE|DON)|FFIELD)|A(?:(?:WNEETOW|NNO)N|RPSBURG|BBONA|TTUC)|I"
+  "(?:RL(?:AND|EY)|PMAN|LOH)|O(?:BONIER|REWOOD)|UMWAY)|O(?:UTH(?: (?"
+  ":(?:(?:ELG|PEK)I|WILMINGTO|SUBURBA?)N|B(?:ARRINGTON|ELOIT)|CHICAG"
+  "O HEIGHTS|HOLLAND|ROXANA)|ERN VIEW)|LON MILLS|MONAUK|RENTO)|C(?:O"
+  "TT(?: A(?:IR FORCE BASE|FB)|VILLE)|H(?:ILLER PARK|AUMBURG|ELLER)|"
+  "IOT(?:O MILLS|A)|ALES MOUND)|U(?:M(?:M(?:ER(?: HILL|FIELD)|IT(?: "
+  "ARGO)?)|NER)|(?:GAR GROV|BLETT)E|LLIVAN|TTER)|P(?:RING(?: (?:(?:V"
+  "ALLE|BA)Y|GROVE)|ERTON|FIELD)|A(?:R(?:LAND|TA)|ULDING)|EER)|I(?:("
+  "?:BLE|CIL)Y|D(?:ELL|NEY)|M(?:PSON|S)|NCLAIR|LVIS|GEL)|E(?:(?:YMOU"
+  "|SSE|CO)R|ATON(?:VILLE)?|(?:NEC|REN)A|WARD)| (?:CHICAGO H(?:EI(?:"
+  "GHTS)?|TS)|(?:BARR|WILM)INGTON)|W(?:AN(?:WICK|SEA)|EET WATER)|MIT"
+  "H(?:FIELD|SHIRE|BORO|TON)|(?:NICART|YCAMOR|KOKI)E|LEEPY HOLLOW)|M"
+  "(?:A(?:R(?:I(?:(?:ETT|SS)A|NE|ON)|QUETTE (?:HEIG)?HTS|TIN(?:SVILL"
+  "E|TON)|S(?:EILLES|HALL)|K(?:HAM)?|YVILLE|ENGO|OA)|N(?:(?:TEN|IT)O"
+  "|CHESTER|HATTAN|SFIELD|VILLE|LIUS)|C(?:HESNEY P(?:AR)?K|O(?:MB|N)"
+  "|EDONIA|KINAW)|(?:(?:DIS|QU|Z)O|EYSTOW)N|T(?:T(?:ES|O)ON|HERVILLE"
+  ")|S(?:ON(?: CITY)?|COUTAH)|PLE(?: PARK|TON)|(?:GNOLI|KAND)A|L(?:D"
+  "EN|TA)|HOMET|YWOOD|UNIE)|O(?:UN(?:T (?:(?:(?:VERN|ZI)O|AUBUR)N|P("
+  "?:ROSPECT|ULASKI)|CAR(?:ROL|ME)L|(?:OLIV|ERI)E|GREENWOOD|STERLING"
+  "|MORRIS)|D(?: CITY|S))|N(?:T(?:G(?:OME|M)RY|ICELLO|ROSE)|ROE CENT"
+  "ER|MOUTH|EE)|R(?:RIS(?:ON(?:VILLE)?)?|TON(?: GROVE)?|O)|(?:SSVILL"
+  "|MENC|LIN)E|D(?:E(?:STO)?|OC)|(?:WEAQU|KEN)A|OSEHEART|ZIER)|I(?:L"
+  "(?:L(?:E(?:R(?:SVILLE| CITY)|DGEVILLE)|(?:BROO|CREE)K| SHOALS|ING"
+  "TON|STADT)|(?:TO|A)N|FORD|MINE)|D(?:DLE(?:SWORTH|GROVE|TOWN)|LOTH"
+  "IAN)|N(?:O(?:OKA|NK)|ERAL|IER)|(?:TCHEL|CHAE)L)|E(?:R(?:RI(?:ONET"
+  "T(?:E PAR| P)K|TT)|(?:EDOSI|N)A)|T(?:(?:AMOR|TAW)A|ROPOLIS|CALF)|"
+  "D(?:I(?:NAH|A)|ORA)|N(?:DO(?:TA|N)|ARD)|L(?:ROSE PARK|VIN)|CHANIC"
+  "SBURG|PPEN)|U(?:L(?:BERRY GR(?:OVE|V)|KEYTOWN)|R(?:PHYSBORO|RAYVI"
+  "LLE|DOCK)|N(?:DELEIN|CIE)|DDY)|C(?: (?:C(?:O(?:NNELL|OK)|LURE)|LE"
+  "AN(?:SBORO)?|NABB)|(?:HENR|VE)Y|CULLOM LAKE)|T (?:GREENWOOD|PROSP"
+  "ECT|STERLING|ZION))|C(?:A(?:R(?:(?:PENTERSV(?:IL)?L|T(?:ERVILL|HA"
+  "G))E|BON(?: (?:CLIFF|HILL)|DALE)|L(?:(?:INVIL|Y)LE|OCK)|R(?:IER M"
+  "ILLS|OLLTON)|M(?:AN|I)|OL STREAM|Y)|M(?:P(?: (?:GROVE|POINT)|BELL"
+  " HILL|US)|BRI(?:DGE|A)|(?:ERO|DE)N|ARGO)|L(?:UMET (?:CITY|PARK)|E"
+  "DONIA|HOUN)|S(?:EY(?:VILLE)?|TLETON)|(?:ZENOV|HOK)IA|NT(?:RALL|ON"
+  ")|(?:PRO|TLI)N|VE IN ROCK|BERY|CHE|IRO)|O(?:L(?:U(?:MB(?:IA|US)|S"
+  "A)|LI(?:NSVILLE|SON)|(?:CHESTE|MA)R|(?:ET|ON)A|FAX|P)|U(?:NTRY(?:"
+  " CLUB HILLS|SIDE)|LTERVILLE)|R(?:N(?:LAND|ELL)|TLAND|DOVA)|A(?:L "
+  "(?:VALLE|CIT)Y|TSBURG)|N(?:GERVILLE|CORD)|(?:[BW]D|FFE)EN|M(?:PTO"
+  "N|ER)|TTAGE HILLS|OKSVILLE|ELLO)|H(?:A(?:N(?:DLERVILLE|NAHON|A)|M"
+  "(?:BERSBURG|PAIGN)|T(?:SWORTH|HAM)|(?:RLESTO|PI)N|DWICK)|E(?:ST(?"
+  ":ER(?:FIELD)?|NUT)|RR(?:Y VALLE)?Y|BANSE|NOA)|I(?:CAGO(?: (?:(?:H"
+  "EIG)?HTS|RIDGE))?|LLICOTHE)|RIS(?:TOPHER|MAN))|L(?:A(?:R(?:E(?:N("
+  "?:DON H(?:IL)?LS|CE)|MONT)?|KS(?:BURG|DALE))|Y(?:TON(?:VILLE)?| C"
+  "ITY))|E(?:VELAND|MENTS)|I[FN]TON)|R(?:E(?:S(?:T(?: ?HILL|WOOD|ON)"
+  "|CENT CITY)|AL SPRINGS|VE COEUR|TE)|O(?:SSVILLE|PSEY)|YSTAL LAKE)"
+  "|E(?:DAR(?: POINT|VILLE)|NTR(?:EVILLE|ALIA)|RRO GORDO)|I(?:S(?:SN"
+  "A PARK|CO|NE)|CERO|MIC)|U(?:STER PARK|LLOM|RRAN|TLER|BA)|(?:N?TRY"
+  " CLB HL|YPRES)S)|B(?:E(?:L(?:L(?:E(?:V(?:ILL|U)| RIV)E|FLOWER|MON"
+  "T|WOOD)|VIDERE|KNAP)|A(?:R(?:DSTOWN|SDALE)|VERVILLE|CH PARK|SON)|"
+  "R(?:(?:KELE|R)Y|W(?:ICK|YN)|LIN)|N(?:S(?:ENVILLE|ON)|TON|LD)|ECHE"
+  "R(?: CITY)?|THA(?:LTO|NY)|DFORD PARK|CKEMEYER|MENT)|R(?:O(?:WN(?:"
+  "S(?:TOWN)?|FIELD|ING)|AD(?:LANDS|VIEW|WELL)|OK(?:FIELD|PORT|LYN)|"
+  "(?:UGH|C)TON)|A(?:D(?:FORD(?:TON)?|LEY)|CEVILLE|IDWOOD)|I(?:DGE(?"
+  ":PORT|VIEW)|MFIELD|GHTON|STOL)|E(?:CKENRIDG|ES)E|USSELS|YANT)|U(?"
+  ":R(?:N(?:(?:T PRAIRI|SID)E|HAM)|LINGTON|R RIDGE|BANK|EAU)|FFALO(?"
+  ": (?:PR(?:AIRIE)?|GROVE|HART))?|CK(?:INGHAM|LEY|NER)|N(?:KER HILL"
+  "|COMBE)|L(?:L VALLEY|PITT)|SHNELL|TLER|DA)|A(?:R(?:T(?:ONVILLE|EL"
+  "SO|LETT)|R(?:INGTON|Y)?|DOLPH|NHILL|CLAY|STOW)|Y(?:VIEW GARDE(?:N"
+  "S)?|LIS)|T(?:CHTOWN|AVIA|ES|H)|NN(?:OCKBURN|ER)|ILEYVILLE|LDWIN|D"
+  "ER|SCO)|L(?:U(?:F(?:F(?: (?:SPRINGS|CITY)|S)|ORD)|E (?:ISLA|MOU)N"
+  "D)|A(?:NDINSVILL|CKSTON)E|OOMING(?:DALE|TON))|O(?:N(?:(?:DVILL|NI"
+  ")E|E GAP|FIELD)|L(?:I(?:NGBROOK|VIA)|ES)|URBONNAIS|ODY|WEN)|I(?:S"
+  "(?:(?:HOP HI|SE)LL|MARCK)|G(?:GS(?:VILLE)?| ROCK)|BLE GROVE|NGHAM"
+  "|RDS)|YRON)|L(?:A(?: (?:(?:P(?:RAIRI|LAC)|(?:MOI|SA)LL|FAYETT|HAR"
+  "P|ROS)E|GRANGE(?: (?:HIGHLANDS|P(?:AR)?K))?)|KE(?: (?:B(?:ARRINGT"
+  "ON|LUFF)|FOR(?:EST|K)|IN THE HILLS|ZURICH|VILLA)|MOOR|WOOD)|N(?:("
+  "?:(?:ESVILL)?|GLEYVILL)E|CASTER|SING|ARK)|W(?:RENCEVIL|NDA)LE|C(?"
+  ":LEDE|ON)|GRANGE HLDS|THAM|FOX|URA|DD)|I(?:N(?:COLN(?:S(?: NEW SA"
+  "LEM|HIRE)| NW SL|WOOD)?|DEN(?:HURST|WOOD))|T(?:TLE(?: (?:INDIAN|Y"
+  "ORK)|TON)|CHFIELD|ERBERRY)|V(?:INGSTON|ERPOOL)|BERTY(?:VILLE)?|SL"
+  "E|MA)|O(?:N(?:G(?: (?:GROVE|POINT)|VIEW)|DON MILLS)|V(?:E(?:S PAR"
+  "K|JOY)|INGTON)|(?:UISVILL|OGOOTE|RAIN)E|(?:CKPOR|STAN)T|W(?:POINT"
+  "|DER)|M(?:BARD|AX)|D(?:GE|A)|AMI|GAN)|E(?:(?:(?:XINGT|BAN)O|WISTO"
+  "W)N|LAND(?: GROVE)?|E(?: CENTER)?|N(?:ZBURG|A)|AF RIVER|ONORE| RO"
+  "Y|MONT|RNA)|Y(?:N(?:N(?: CENTER|VILLE)|CHBURG|WOOD|DON)|ONS)|K (?"
+  ":BARRINGTON|IN THE HLS)|U(?:DLOW|THER))|W(?:A(?:L(?:NUT(?: HILL)?"
+  "|SH(?:VILLE)?|TONVILLE)|S(?:H(?:INGTON(?: P(?:AR)?K)?|BURN)|CO)|T"
+  "(?:ER(?:LOO|MAN)|S(?:EKA|ON)|AGA)|R(?:REN(?:SBURG|VILLE)?|SAW)|YN"
+  "E(?:SVILLE| CITY)?|U(?:CONDA|KEGAN)|DSWORTH|GGONER|PELLA|VERLY)|I"
+  "(?:L(?:L(?:OW(?: (?:SP(?:RIN)?GS|HILL)|BROOK)|I(?:AMS(?:FIELD|VIL"
+  "LE)|SVILLE)|EYS)|M(?:INGTON|ETTE)|TON CENTER|SONVILLE)|N(?:(?:THR"
+  "OP H(?:ARBO|B)|CHESTE|DSO)R|NE(?:BAGO|TKA)|FIELD|SLOW)|TT)|E(?:ST"
+  "(?: (?:(?:BROOKLY|UNIO)N|P(?:EORIA|OINT)|FRANKFORT|CHICAGO|LIBERT"
+  "Y|DUNDEE|SALEM|YORK)|ER(?:N SPR(?:IN)?GS|VELT)|CHESTER|FIELD|VILL"
+  "E|MONT)|(?:L(?:LINGT|D)|DR)ON|NONA)|O(?:O(?:D(?: (?:RIVER|DALE)|S"
+  "(?:TOCK|ON)|LA(?:ND|WN)|RIDGE|HULL)|SUNG)|(?:NDER|LF) LAKE|R(?:DE"
+  "N|TH)|MAC)|H(?:IT(?:E H(?:EATH|ALL)|TINGTON)|E(?:EL(?:ING|ER)|ATO"
+  "N))|Y(?:OMING|ANET)| FRANKFORT|RIGHTS)|P(?:A(?:L(?:O(?:S (?:H(?:E"
+  "IGHT|ILL)S|PARK)|MA)|(?:ES|A)TINE|M(?:YRA|ER))|R(?:K(?: (?:FOREST"
+  "|RIDGE|CITY)|ERSBURG)|IS)|N(?:(?:(?:AM)?|OL)A|THER CREEK)|T(?:TER"
+  "SON|OKA)|W(?: PAW|NEE)|(?:XT|YS)ON|PINEAU)|R(?:AIRIE(?: (?:DU ROC"
+  "HER|CITY|VIEW)|VIEW)|O(?:SPECT (?:HEIG)?HTS|PHETSTOWN)|E(?:EMPTIO"
+  "N|NTICE)|INCE(?:VILLE|TON)| DU ROCHER)|O(?:(?:RT B(?:ARRINGT|YR)O"
+  "|SE)N|NT(?:OO(?:N BEACH|SUC)|IAC)|PLAR (?:GROVE|CITY)|CAHONTAS|TO"
+  "MAC|MONA|LO)|E(?:O(?:RIA(?: (?:HEIG)?HTS)?|TONE)|R(?:[CR]Y|KS|U)|"
+  "ARL(?: CITY)?|CATONICA|TERSBURG|NFIELD|SOTUM|KIN)|I(?:ER(?:SON ST"
+  "A(?:TION)?|RON)|N(?:CKNEYVILL|GREE GROV)E|TTS(?:FIELD|BURG)|PER C"
+  "ITY|SGAH|ASA)|L(?:A(?:IN(?:VI(?:LLE|EW)|FIELD)|TO CENTER|NO)|EASA"
+  "NT (?:PL(?:AI)?NS|HILL|VIEW)|YMOUTH)|U(?:LASKI|TNAM)|H(?:OENIX|IL"
+  "O)|T BARRINGTON)|H(?:A(?:R(?:WOOD H(?:EIGH|G)?TS|RIS(?:BURG|TOWN)"
+  "|T(?:SBURG|FORD)|V(?:E[LY]|ARD)|(?:DI|MO)N|CO)|M(?:P(?:SHIRE|TON)"
+  "|(?:LETS)?BURG|ILTON|MOND|EL)|N(?:OVER(?: PARK)?|NA CITY)|ZEL (?:"
+  "CREST|DELL)|WTHORN W(?:OO)?DS|GA(?:RSTOW|MA)N|INESVILLE|VANA)|O(?"
+  ":L(?:IDAY HILLS|LOWAYVILLE|COMB|DER)|P(?:E(?:DALE|WELL)|KINS PARK"
+  ")|ME(?:R(?: GLEN)?|TOWN|WOOD)|FFMAN(?: EST(?:ATES)?)?|OP(?:ESTON|"
+  "POLE)|DGKINS|YLETON)|E(?:R(?:RI(?:CK|N)|(?:AL|O)D|VEY CITY|SCHER)"
+  "|N(?:N(?:EPIN|ING)|(?:DERS|T)ON|RY)|(?:BRO|MA)N|WITTSVILLE|YWORTH"
+  "|TTICK|CKER)|I(?:LL(?:S(?:(?:DAL|ID)E|BORO)|VIEW)|N(?:DSBORO|CKLE"
+  "Y|SDALE|TON|ES)|GH(?:LAND(?: PARK)?|WOOD)|CKORY HILLS|DALGO)|U(?:"
+  "NT(?:SVILLE|LEY)|M(?:BOLDT|E)|(?:BL|E)Y|TSONVILLE|DSON|RST|LL))|R"
+  "(?:O(?:C(?:K(?: (?:ISLAND|FALLS|CITY)|(?:BRIDG|DAL)E|(?:FOR|WOO)D"
+  "|PORT|TON)|HE(?:STER|LLE))|UND L(?:AKE(?: (?:HEIGHTS|BEACH|PARK))"
+  "?|K (?:PARK|BCH|HTS))|S(?:E(?:(?:VI)?LLE|MONT)|(?:ICLAR|SVILL|CO)"
+  "E|AMOND)|B(?:(?:B(?:IN)?|ERT)S|INSON|Y)|(?:M(?:EOVILL)?|ODHOUS|AN"
+  "OK)E|LLING M(?:EADO|D)WS|YAL(?: LAKES|TON)?|XANA)|I(?:VER(?: (?:F"
+  "OREST|GROVE)|(?:DAL|SID)E|WOODS|TON)|D(?:G(?:E FARM|WAY)|DLE HILL"
+  "|OTT)|CH(?:(?:LA|MO)ND|TON PARK|VIEW)|N(?:GWOO|AR)D|GGSTON|O)|A(?"
+  ":(?:PIDS CIT|MSE)Y|N(?:TOUL|KIN|SOM)|D(?:FORD|OM)|Y(?:MOND)?|LEIG"
+  "H|RITAN)|E(?:D(?: ?BUD|DICK|MON)|(?:YNOLD|E)S|NAULT)|U(?:S(?:HVIL"
+  "LE|SELL)|TLAND|MA))|G(?:R(?:A(?:N(?:D(?: (?:CHAIN|RIDGE|TOWER)|VI"
+  "EW)|T(?: PARK|SBURG)|ITE CITY|VILLE)|Y(?:(?:SLAK|VILL)E|MONT)|FTO"
+  "N)|E(?:EN(?: (?:VALLEY|ROCK)|VI(?:LLE|EW)|FIELD|UP)|AT LAKES)|I(?"
+  ":GGSVILLE|DLEY)|OVELAND)|O(?:L(?:DEN(?: (?:EAGL|GAT)E)?|CONDA|F)|"
+  "OD(?:(?: HOP|WIN)E|FIELD)|R(?:EVILLE|HAM)|D(?:FR|L)EY)|E(?:R(?:MA"
+  "N(?:T(?:OWN(?: HILLS)?|WN HLS)| VALLEY)|LAW)|N(?:E(?:SEO|VA)|OA)|"
+  "ORGETOWN|FF)|L(?:EN(?:DALE (?:HEIG)?HTS| (?:CARBO|ELLY)N|VIEW|WOO"
+  "D|ARM|COE)|A(?:DSTONE|SFORD))|A(?:L(?:E(?:SBURG|NA)?|(?:ATI|V)A|T"
+  ")|RD(?:EN PR(?:AIRIE)?|NER)|GES LAKE|YS)|I(?:L(?:(?:MA|SO)N|LESPI"
+  "E|BERTS)|(?:FFO|RA)RD|BSON CITY)|URNEE)|E(?:L(?:L(?:I(?:S(?: GROV"
+  "|VILL)E|OTT)|SWORTH|ERY)|K(?: GROVE V(?:ILLAGE|LG)|VILLE|HART)|M("
+  "?:WOOD(?: PARK)?|HURST)|D(?:ORADO|ENA|RED)|(?:VASTO|BUR|GI)N|IZAB"
+  "ETH(?:TOWN)?|(?: PAS|C)O|W(?:OOD|IN)|EROY|SAH)|A(?:ST(?: (?:(?:DU"
+  "(?:BUQU|NDE)|MOLIN)E|(?:ALTO|LYN)N|SAINT LOUIS|CARONDELET|GALESBU"
+  "RG|PEORIA)|ON)|(?:GAR|RL)VILLE)|D(?:E(?:LSTEIN|NBURG)|WARDS(?:VIL"
+  "LE)?|DYVILLE|GEWOOD|INBURG)|V(?:ERGREEN P(?:AR)?K|ANS(?:VILLE|TON"
+  "))| (?:SAINT LOUIS|CARONDELET|GALESBURG)|N(?:FIELD|ERGY|ION|OS)|M"
+  "(?:(?:INGTO|DE)N|MA)|S(?:MOND|SEX)|(?:UREK|OL)A|FFINGHAM|QUALITY|"
+  "CKARD|XETER|WING|GAN|RIE)|A(?:L(?:(?:(?:GONQU|V)I|ORTO|DE)N|T(?:O"
+  "(?: PASS|NA?)|AMONT)|E(?:X(?:ANDER|IS)|DO)|B(?:ANY|ERS|ION)|LE(?:"
+  "NDALE|RTON)|(?:HAMBR|PH|M)A|S(?:EY|IP))|R(?:LINGTON(?: (?:HEIG)?H"
+  "TS)?|C(?:(?:ADI|OL)A|HER)|M(?:INGTON|STRONG)|G(?:ENTA|O)|ENZVILLE"
+  "|OMA PARK|ROWSMITH|NOLD|THUR)|N(?:D(?:ALUSIA|OVER|REW)|NA(?:POLIS"
+  "|WAN)?|C(?:HOR|ONA)|TIOCH)|S(?:H(?:L(?:AND|EY)|MORE|KUM|TON)|SUMP"
+  "TION|TORIA)|T(?:W(?:ATER|OOD)|TERBERRY|KINSON|LANTA|HENS)|D(?:DI("
+  "?:EVILLE|SON)|RIAN|AIR)|U(?:(?:GUST|ROR)A|BURN)|B(?:BOTT PARK|ING"
+  "DON)|V(?:(?:IST)?ON|A)|PPLE RIVER|MBOY|KIN)|F(?:O(?:X (?:R(?:IVER"
+  " (?:VALLEY GARDENS|GR(?:OVE|V))|V VLY GN)|VALLEY|LAKE)|R(?:EST (?"
+  ":CITY|PARK|VIEW)|REST(?:ON)?|T SHERIDAN|D HEIGHTS|SYTH)|OSLAND|WL"
+  "ER)|A(?:IR(?:VIEW(?: (?:HEIG)?HTS)?|MO(?:NT CITY|UNT)|FIELD|BURY)"
+  "|R(?:M(?:ER(?:SVILLE| CITY)|ING(?:DALE|TON))|INA)|(?:NCY PRAIRI|Y"
+  "ETTEVILL)E)|R(?:ANK(?:LIN(?: (?:GR(?:OVE|V)|PARK))?|FORT(?: (?:HE"
+  "IG)?HTS)?)|E(?:E(?:MAN SPUR|BURG|PORT)|DERICK))|I(?:(?:DELIT|NDLA"
+  ")Y|(?:ELDO|THIA)N|LLMORE|SHER|ATT)|L(?:A(?:T ROCK|NAGAN)|O(?:SSMO"
+  "OR|RA))|E(?:NTON|RRIS)|ULT(?:ON|S))|N(?:E(?:W(?: (?:B(?:E(?:DFORD"
+  "|RLIN)|(?:OSTO|ADE)N|URNSIDE)|(?:DOUGLA|MEMPHI|ATHEN)S|H(?:OLLAND"
+  "|AVEN)|L(?:IBERTY|ENOX)|C(?:ANTON|ITY)|WINDSOR|SALEM)|MAN(?:SVILL"
+  "E)?|BURG|ARK|TON)|PONSET|LSON|OGA|BO)|O(?:R(?:T(?:H(?: (?:(?:(?:B"
+  "ARRINGT|HENDERS)O|PEKI)N|RIVERSIDE|CHICAGO|AURORA)|BROOK|FIELD|WO"
+  "ODS|LAKE)|ONVILLE)|RI(?:S(?: CITY)?|DGE)|MA(?:NDY|L)|A)|KOMIS|BLE"
+  ")|A(?:T(?:IONAL STOCK YARDS|L STOCK YD)|P(?:ERVILLE|LES)|S(?:HVIL"
+  "LE|ON)|CHUSA|UVOO)| (?:(?:BARRINGT|HENDERS)ON|RIVERSIDE)|I(?:L(?:"
+  "WOOD|ES)|ANTIC|OTA))|D(?:A(?:L(?:(?:LAS|TON) CITY|ZELL|E)|N(?:V(?"
+  ":ILLE|ERS)|FORTH|A)|VIS(?: J(?:UNCTION|CT))?|H(?:LGREN|INDA)|(?:R"
+  "IE|WSO)N|MIANSVILLE|KOTA)|E(?:ER(?: (?:(?:CREE|PAR)K|GROVE)|FIELD"
+  ")| (?:LAND|SOTO)|L(?:AVAN|ONG)|W(?:ITT|EY)|S PLAINES|NNISON|CATUR"
+  "|TROIT|KALB|PUE)|O(?:W(?:N(?:E(?:RS GROVE|Y)|S)|ELL)?|N(?:(?:NELL"
+  "SO|OVA)N|GOLA)|R(?:CHESTER|SEY)|L(?:LVILLE|TON)|VER)|U(?:N(?:D(?:"
+  "AS|EE)|FERMLINE|KEL|LAP)| (?:QUOIN|BOIS)|RAND|VALL|PO)|I(?:X(?:MO"
+  "OR|ON)?|ETERICH|VERNON|AMOND)|WIGHT)|O(?:AK(?: (?:BR(?:OOK(?: MAL"
+  "L BRANCH)?|K MALL)|FOREST|LAWN|PARK)|BROOK TER(?:RACE)?|WOOD(?: H"
+  "ILLS)?|L(?:AND|EY)|DALE|FORD)|L(?:D (?:MILL CR(?:EE)?K|BERLIN)|YM"
+  "PIA F(?:IE)?LDS|IVE BRANCH|MSTED|NEY)|R(?:LAND (?:HILLS|PARK)|A(?"
+  ":NGE)?VILLE|E(?:ANA|GON)|I(?:ENT|ON))|N(?:(?:ARG|EID)A|TARIOVILLE"
+  ")|(?:S(?:WEG|C)|WANEC)O|(?:KAWVILL|CONE)E|TT(?:ERVILLE|AWA)|(?:QU"
+  "AWK|MAH)A|G(?:LESBY|DEN)|P(?:DYKE|HIEM)|H(?:LMAN|IO)|D(?:ELL|IN)|"
+  " FALLON|BLONG|ZARK)|T(?:O(?:W(?:ER (?:LAKES|HILL)|ANDA)|L(?:(?:ED"
+  "|ON)O|UCA)|(?:NIC|PEK)A|RONTO|ULON|VEY)|A(?:YLOR(?: (?:SP(?:RIN)?"
+  "GS|RIDGE)|VILLE)|M(?:AROA|PICO|MS)|BLE GROVE|LLULA)|H(?:O(?:M(?:P"
+  "SONVILLE|ASBORO|SON)|RNTON)|A(?:WVILLE|YER)|IRD LAKE|EBES)|R(?:O("
+  "?:Y(?: GROVE)?|UT VALLEY)|I(?:UMPH|VOLI|LLA)|E(?:MONT|NTON))|E(?:"
+  "MPLE HILL|UTOPOLIS|NNESSEE|HERAN|CHNY|XICO)|I(?:L(?:DE|TO)N|NLEY "
+  "PARK|MEWELL|SKILWA|CE)|U(?:NNEL HILL|SCOLA))|K(?:I(?:N(?:GS(?:TON"
+  "(?: MINES?)?)?|DERHOOK|MUNDY|CAID|SMAN)|L(?:BOURNE|DEER)|RK(?:LAN"
+  "|WOO)D)|A(?:N(?:(?:(?:EVILL)?|KAKE)E|SAS)|R(?:BERS RIDGE|NAK)|MPS"
+  "VILLE|SBEER|PPA)|E(?:N(?:ILWORTH|NEY|T)|EN(?:SBURG|ES)|ITHSBURG|Y"
+  "ESPORT|MPTON|WANEE|LL)|NOXVILLE)|V(?:I(?:LLA(?: (?:(?:GROV|RIDG)E"
+  "|PARK)|GE OF LAKEWOOD)|R(?:GI(?:NIA|L)|DEN)|(?:CTORI|ENN|OL)A)|E("
+  "?:R(?:(?:SAILL|GENN)ES|M(?:ILION|ONT)|NON(?: HILLS)?|ONA)|N(?:EDY"
+  "|ICE))|A(?:N(?: ORIN|DALIA)|L(?:MEY|I)ER|RNA)|LG OF LAKEWD|OLO)|I"
+  "(?:N(?:D(?:IAN(?: (?:HEAD P(?:AR)?|CREE)K|OLA)| HEAD P(?:AR)?K|US"
+  "TRY)|G(?:LESIDE|RAHAM)|VERNESS|A)|R(?:VING(?:TON)?|OQUOIS)|LLI(?:"
+  "NOIS CITY|OPOLIS)|(?:SLAND LAK|VESDAL)E|(?:TASC|PAV|OL|UK)A)|J(?:"
+  "E(?:(?:R(?:SEYVILL|OM)|ISEYVILL)E|FFERSON P(?:AR)?K|WETT)|O(?:HNS"
+  "(?:TON CITY|ONVILLE|BURG)|NESBORO|LIET|PPA|Y)|A(?:C(?:KSONVILLE|O"
+  "B)|NESVILLE)|U(?:NCTION|STICE))|U(?:NI(?:VERSITY P(?:AR)?K|ON(?: "
+  "HILL)?|TY)|(?:R(?:BAN|S)|TIC)A|LLIN)|Y(?:A(?:TES(?: CITY|VILLE)|("
+  "?:NTISVIL)?LE)|ORKVILLE)|Z(?:EIGLER|ION)|QUINCY|XENIA))))$"
+  ,
+  /* -- IN -- IN -- IN -- IN -- IN -- IN -- IN -- IN -- IN -- IN -- */
+  "(?:\\b)((?^:(?i:(?:C(?:A(?:M(?:P(?: ATT(?:ERBU?|RB)RY|BELLSBURG)|"
+  "B(?:RIDGE CI?T)?Y|DEN)|R(?:T(?:ERSBURG|HAGE)|(?:EFRE|LISL)E|BON|M"
+  "EL)|N(?:NEL(?:BURG|TON)|AAN)|STLETON|YUGA|TES)|O(?:L(?:UMB(?:IA C"
+  "ITY|US)|LEGEVILLE|BURN|FAX)|A(?:L(?: CITY|MONT)|TESVILLE)|R(?:Y(?"
+  ":DON)?|TLAND|UNNA)|N(?:NERSVILL|VERS)E|MMISKEY|VINGTON)|H(?:A(?:R"
+  "L(?:OTTESV(?:IL)?LE|ESTOWN)|LMERS|NDLER)|RIS(?:TMAS L(?:AKE VILLA"
+  "GE|K)|NEY)|ESTER(?:FIELD|TON)|URUBUSCO|ILI)|L(?:A(?:RKS(?: HILL|V"
+  "ILLE|BURG)|Y(?: CITY|POOL|TON))|E(?:AR CREEK|RMONT)|I(?:FFORD|NTO"
+  "N)|VR MIL ACAD|OVERDALE)|R(?:A(?:N(?:E(?: NAV(?:AL DEPO| DP)T)?|D"
+  "ALL)|(?:WFORDSVI?|IGVI)LLE)|O(?:THERSVILLE|SS PLAINS|WN POINT|MWE"
+  "LL))|E(?:NT(?:ER(?:POINT|VILLE|TON)|RAL)|(?:DAR (?:GROV|LAK)|LEST"
+  "IN)E)|U(?:(?:LV|TL)ER|MBERLAND)|YNTHIANA|ICERO)|S(?:A(?:INT (?:M("
+  "?:ARY OF THE WOODS|EINRAD)|JO(?:HN|E)|ANTHONY|BERNICE|CROIX|LEON|"
+  "PAUL)|N(?:D(?:BORN|FORD)|TA CLAUS| PIERRE)|L(?:AMONIA|EM)|RATOGA)"
+  "|T(?:A(?:R(?: CITY|LIGHT)|TE LINE|NFORD|UNTON)|(?:OCKWEL|ENDA)L|R"
+  "(?:AUGHN|OH)|I[LN]ESVILLE| MARY OF WD)|H(?:E(?:LB(?:Y(?:VILLE)?|U"
+  "RN)|PARDSVILLE|RIDAN)|I(?:PSHEWANA|RLEY)|ARPSVILLE|OALS)|U(?:L(?:"
+  "PHUR(?: SP(?:RIN)?GS)?|LIVAN)|M(?:AVA R(?:ESOR|S)TS|MITVILLE)|NMA"
+  "N)|O(?:UTH(?: (?:(?:MILFOR|BEN)D|WHITLEY)|PORT)|MER(?:VILLE|SET)|"
+  "LSBERRY)|P(?:E(?:NCER(?:VILLE)?|ED(?:WAY)?)|RING(?:VILLE|PORT)|IC"
+  "ELAND|URGEON)|C(?:H(?:NE(?:LLVILLE|IDER)|ERERVILLE)|OT(?:TSBURG|L"
+  "AND)|IPIO)|E(?:L(?:LERSBURG|MA)|(?:DAL|RV)IA|ELYVILLE|YMOUR)|I(?:"
+  "LVER LAKE|BERIA|DNEY|MS)|W(?:ITZ CITY|EETSER|AYZEE)|(?:MITHVILL|Y"
+  "RACUS)E)|M(?:O(?:N(?:T(?:E(?:ZUMA|REY)|MORENCI|GOMERY|ICELLO|PELI"
+  "ER)|RO(?:E(?:V(?:ILLE|L)| CITY)?|VIA)|GO|ON)|UNT (?:S(?:AINT FRAN"
+  "CIS|UMMIT)|PLEASANT|VERNON|AYR)|R(?:RIS(?:TOWN)?|GANTOWN|OCCO)|OR"
+  "E(?:S(?: HILL|VILLE)|LAND)|DOC)|I(?:L(?:L(?:(?:HOUSE|TOW)N|ERSBUR"
+  "G| CREEK)|(?:TO|A)N|FORD|ROY)|CHI(?:GAN(?: CITY|TOWN)|ANA SH(?:OR"
+  "E|R)S)|D(?:DLE(?:BURY|TOWN)|LAND)|SHAWAKA|TCHELL|AMI)|A(?:R(?:(?:"
+  "(?:TIN|Y)SVIL|K(?:LEVIL)?)LE|I(?:AH HILL|ON)|SH(?:FIELD|ALL)|ENGO"
+  ")|(?:UCKPOR|GNE)T|(?:TTHEW|Y)S|C(?:KE)?Y|DISON|NILLA|XWELL)|E(?:D"
+  "(?:ARYVILLE|ORA)|R(?:RILLVILLE|OM)|(?:TAMOR|CC)A|LLOTT|MPHIS|NTON"
+  "E|XICO)|T (?:ST FRANCIS|PLEASANT)|U(?:N(?:STER|CIE)|LBERRY)|C COR"
+  "DSVILLE)|B(?:R(?:O(?:OK(?:(?:STO|LY)N|VILLE)?|WNS(?:VILLE|BURG|TO"
+  "WN))|I(?:DGE(?:PORT|TON)|NGHURST|STO[LW]|MFIELD)|A(?:NCHVILLE|DFO"
+  "RD|ZIL)|UCEVILLE|EMEN|YANT)|U(?:R(?:N(?:E(?:TTSVILLE|Y)|S HARBOR)"
+  "|R(?: OAK|OWS)|LINGTON|KET)|CK(?: CREEK|SKIN)|FFALO(?:VILLE)?|TLE"
+  "R(?:VILLE)?|NKER HILL)|E(?:(?:ECH GROV|LLMOR|RN)E|N(?:TONVILLE|NI"
+  "NGTON)|VERLY SH(?:ORE|R)S|THLEHEM|DFORD)|O(?:(?:(?:WLING GRE|RD)E"
+  "|GGSTOW|URBO)N|ON(?:E GROV|VILL)E|S(?:WELL|TON))|L(?:O(?:OM(?:ING"
+  "(?:DALE|TON)|FIELD)|CHER)|ANFORD|UFFTON)|A(?:T(?:TLE GROUND|ESVIL"
+  "LE|H)|(?:RGERSVILL|INBRIDG)E)|I(?:CKNELL|RDSEYE|PPUS))|W(?:E(?:ST"
+  "(?: (?:(?:(?:MIDDLE|NEW)T|HARRIS)ON|L(?:AFAYETTE|EBANON)|COLLEGE "
+  "CORNER|BADEN SPRINGS|TERRE HAUTE)|P(?:O(?:IN|R)T|HALIA)|FIELD|VIL"
+  "LE)|BSTER)|A(?:L(?:(?:(?:KER)?T|DR)ON|LACE)|(?:SHINGTO|YNETOW)N|N"
+  "A(?:MAKER|TAH)|(?:KARUS|WAK)A|T(?:ERLOO|SON)|R(?:REN|SAW)|DESVILL"
+  "E|VELAND|BASH)|I(?:L(?:L(?:IAMS(?:BURG|PORT)?|OW BRANCH)|KINSON)|"
+  "N(?:(?:ONA LAK|GAT)E|CHESTER|DFALL|AMAC|SLOW))| (?:(?:TERRE HAU|L"
+  "AFAYET)TE|BADEN SPRGS|COLLEGE COR|MIDDLETON)|O(?:L(?:COTT(?:VILLE"
+  ")?|FLAKE)|ODB(?:RIDGE|URN)|RTHINGTON)|H(?:E(?:AT(?:FIEL|LAN)D|ELE"
+  "R)|IT(?:E(?:STOWN|LAND)|ING))|YATT)|N(?:E(?:W(?: (?:(?:(?:L(?:EBA"
+  "N|ISB)|TRENT)O|GOSHE)N|W(?:A(?:SHINGTO?N|VERLY)|HITELAND)|C(?:A(?"
+  ":RLIS|ST)LE|HICAGO)|P(?:A(?:LESTINE|RIS)|OINT)|M(?:IDDLETO?WN|ARK"
+  "ET)|A(?:UGUSTA|LBANY)|R(?:ICHMOND|OSS)|HA(?:RMONY|VEN)|SALISBURY)"
+  "|B(?:ERRY|URGH)|PORT|TOWN)|BRASKA|EDHAM)|O(?:R(?:TH (?:(?:MANCHE|"
+  "WEB)STER|(?:JUDS|VERN)ON|TERRE HAUTE|LIBERTY|SALEM)|MAN|A)|(?:BLE"
+  "SVILL|TRE DAM)E)|A(?:P(?:OLEON|PANEE)|VILLETON|SHVILLE|BB)| (?:TE"
+  "RRE HAUTE|MANCHESTER)|INEVEH)|L(?:A(?:(?: (?:F(?:ONTAIN|AYETT)|CR"
+  "OSS|PORT)|NESVILL|FAYETT)E|KE(?: (?:STATION|VILLAGE|CICOTT)|VILLE"
+  "|TON)|WRENCE(?:BURG)?|(?:CONI|DOG)A|(?:RWIL|URE)L|GR(?:ANGE|O)|P("
+  "?:AZ|EL)|OTTO|MAR)|I(?:BERTY(?: (?:C(?:ENTE|T)R|MILLS))?|N(?:(?:D"
+  "E|TO)N|COLN CITY|N GROVE)|TTLE YORK|GONIER|VONIA|ZTON)|E(?:(?:XIN"
+  "GT|BAN)ON|WIS(?:VILLE)?|ITERS FORD|O(?:POLD)?|AVENWORTH|ESBURG|RO"
+  "Y)|O(?:(?:SANTVILL|OGOOTE)E|GANSPORT|NG BEACH|WELL)|Y(?:NN(?:VILL"
+  "E)?|ONS)|UCERNE)|F(?:R(?:E(?:E(?:LANDVILLE|TOWN|DOM)|D(?:ERICKSBU"
+  "?RG|ONIA)|NCH LICK|MONT)|AN(?:K(?:(?:LI|TO)N|FORT)|C(?:ESVILLE|IS"
+  "CO))|IENDSHIP)|O(?:R(?:T(?: (?:BRANCH|RITNER|WAYNE)|VILLE)|AKER|E"
+  "ST)|UNTAIN(?: CITY|TOWN)|WLER(?:TON)?|LSOMVILLE|NTANET)|A(?:IR(?:"
+  "(?: OA|BAN)KS|MOUNT|LAND)|RM(?:ERSBURG|LAND)|LMOUTH)|L(?:O(?:R(?:"
+  "ENCE|A)|YDS KNOBS)|AT ROCK)|I(?:LLMORE|SHERS|NLY)|UL(?:TON|DA)|ER"
+  "DINAND)|P(?:A(?:R(?:IS (?:CROSS|X)ING|KER(?: CITY)?|AGON)|T(?:RI("
+  "?:CKSBURG|OT)|OKA)|LMYRA|XTON|OLI)|E(?:N(?:(?:NVILL|C)E|DLETON)|R"
+  "(?:RYSVILLE|SHING|U)|T(?:ERSBURG|ROLEUM)|KIN)|L(?:EASANT (?:M(?:I"
+  "L)?LS|LAKE)|AIN(?:FIELD|VILLE)|YMOUTH)|I(?:ERCE(?:VILLE|TON)|(?:T"
+  "TSBOR|MENT)O|NE VILLAGE)|O(?:RT(?:LAND|AGE|ER)|SEYVILLE|LAND|NETO"
+  ")|R(?:AIRIE(?: CREEK|TON)|INCETON|EBLE)|UTNAMVILLE)|H(?:A(?:R(?:T"
+  "(?:FORD CITY|SVILLE)|(?:DIN|ROD)SBURG|MONY|LAN)|(?:GERSTOW|ZLETO|"
+  "YDE)N|M(?:ILTON|MOND|LET)|N(?:OVER|NA)|UBSTADT|TFIELD)|O(?:L(?:LA"
+  "ND|TON)|B(?:ART|BS)|AGLAND|GTOWN|[PW]E|MER)|E(?:L(?:M(?:SBURG|ER)"
+  "|TONVILLE)|NRYVILLE|MLOCK|BRON)|U(?:NT(?:ING(?:BURG|TON)|ERTOWN)|"
+  "(?:DS|R)ON)|I(?:LL(?:S(?:BORO|DALE)|ISBURG)|GHLAND)|YMERA)|G(?:R("
+  "?:EEN(?:S(?:B(?:ORO|URG)| FORK)|(?:CAST|VIL|DA)LE|(?:FIEL|WOO)D|T"
+  "OWN)|A(?:N(?:TSBURG|DVIEW|GER)|SS CREEK|YSVILLE|BILL|MMER)|I(?:SS"
+  "OM A(?:IR RESERVE BASE|RB)|FFI(?:TH|N))|OVERTOWN)|A(?:L(?:VESTON|"
+  "ENA)|S(?: CITY|TON)|R(?:RETT|Y))|O(?:S(?:PORT|HEN)|LDSMITH|ODLAND"
+  ")|E(?:N(?:TRYVILLE|EVA)|ORGETOWN)|(?:LENWOO|UILFOR)D|WYNNEVILLE)|"
+  "R(?:O(?:C(?:K(?:FIELD|VILLE|PORT)|HESTER)|S(?:E(?:DALE|LAWN|WOOD)"
+  "|SVILLE)|A(?:N(?:OKE|N)|CHDALE)|M(?:E(?: CITY)?|NEY)|LLING PR(?:A"
+  "IRIE)?|YAL CENTER)|E(?:ELSVILLE|NSSELAER|MINGTON|YNOLDS|DKEY|GO)|"
+  "I(?:CH(?:LA|MO)ND|DGEVILLE|SING SUN|LEY)|US(?:S(?:ELL|IA)|H)VILLE"
+  "|A(?:GSDALE|MSEY))|E(?:L(?:IZABETH(?:TOWN)?|(?:BERFEL|WOO)D|LETTS"
+  "VILLE|KHART|NORA)|A(?:ST (?:ENTERPRISE|CHICAGO)|(?:GLE CREE|RL PA"
+  "R)K|TON)|D(?:WARDSPORT|INBURGH)|VANS(?:VILLE|TON)|C(?:KERT|ONOM)Y"
+  "|MI(?:NENCE|SON)| ENTERPRISE|TNA GREEN|NGLISH)|A(?:T(?:T(?:ERBURY"
+  "|ICA)|LANTA|HENS|WOOD)|L(?:B(?:ANY|ION)|EXANDRIA|AMO|TON)|R(?:C(?"
+  ":ADI|OL)A|LINGTON|GOS)|N(?:D(?:ERSON|REWS)|GOLA)|U(?:(?:BUR|STI)N"
+  "|RORA)|V(?:O(?:CA|N)|ILLA)|M(?:B(?:IA|OY)|O)|(?:CT|KR)ON|DVANCE|S"
+  "HLEY)|T(?:E(?:(?:MPLET|NNYS)ON|RRE HAUTE|LL CITY|FFT)|A(?:YLORSVI"
+  "LLE|NGIER|SWELL|LBOT)|I(?:P(?:PECANOE|TON)|ME/LIFE)|R(?:A(?:IL CR"
+  "EEK|FALGAR)|OY)|O(?:BINSPORT|PEKA)|H(?:ORNTOWN|AYER)|WELVE MILE|U"
+  "NNELTON|YNER)|D(?:E(?:(?:EDSVILL|MOTT)E|C(?:ATU|KE)R|L(?:ONG|PHI)"
+  "|N(?:HAM|VER)|P(?:AUW|UTY)|RBY)|A(?:(?:RLING|Y)TON|(?:LEVIL)?LE|N"
+  "(?:VILLE|A))|U(?:N(?:REITH|KIRK)|B(?:LIN|OIS)|GGER|PONT)|ILLSBORO"
+  "|ONALDSON|YER)|O(?:AK(?:LAND(?: CITY|ON)|VILLE|FORD|TOWN)|T(?:IS("
+  "?:CO)?|TERBEIN|WELL)|R(?:L(?:EANS|AND)|ESTES|A)|S(?:CEOLA|GOOD|SI"
+  "AN)|WENS(?:VILLE|BURG)|(?:NWA|XFO)RD|LDENBURG|OLITIC|BER|DON)|K(?"
+  ":I(?:NG(?:S(?:FORD (?:HEIG)?HTS|BURY)|MAN)|MMELL|RKLIN)|E(?:N(?:("
+  "?:TLAN|NAR)D|DALLVILLE)|YSTONE|MPTON|WANNA)|N(?:IGHTS(?:VILLE|TOW"
+  "N)|OX)|O(?:KOMO|LEEN|UTS)|URTZ|YANA)|V(?:A(?:L(?:P(?:ARAIS)?O|LON"
+  "IA|EENE)|N BUREN)|E(?:R(?:SAILLES|NON)|EDERSBURG|LPEN|VAY)|INCENN"
+  "ES)|U(?:N(?:I(?:ON(?: (?:MILLS|CITY)|(?:VIL|DA)LE)|VERSAL)|DERWOO"
+  "D)|(?:RBAN|TIC)A|PLAND)|J(?:A(?:S(?:ONVILLE|PER)|MESTOWN)|EFF(?:E"
+  "RSONVI?LLE)?|ONES(?:VILLE|BORO)|UDSON)|I(?:N(?:G(?:LEFIELD|ALLS)|"
+  "DIANAPOLIS|WOOD)|DAVILLE|RELAND)|Y(?:O(?:UNG AMERICA|RKTOWN|DER)|"
+  "EOMAN)|Z(?:ANE|ION)SVILLE|XMAS LK VLG|QUINCY))))$"
+  ,
+  /* -- KS -- KS -- KS -- KS -- KS -- KS -- KS -- KS -- KS -- KS -- */
+  "(?:\\b)((?^:(?i:(?:C(?:O(?:L(?:(?:DWAT|LY)ER|(?:ON|B)Y|UMBUS|WICH"
+  ")|N(?:WAY(?: SP(?:RIN)?GS)?|CORDIA)|U(?:N(?:CIL GROV|TRYSID)E|RTL"
+  "AND)|(?:TTONW(?:OOD FAL|D F)L|AT)S|(?:(?:FFE)?YVILL|OLIDG)E|PELAN"
+  "D|RNING|DELL)|A(?:R(?:L(?:TON|YLE)|BONDALE|ONA)|(?:WKER CIT|SSODA"
+  ")Y|(?:MBRIDG|THARIN)E|N(?:TON|EY)|LDWELL)|L(?:E(?:AR(?:VIEW CI?TY"
+  "|WATER)|MENTS)|A(?:Y(?: CENTER|TON)|FLIN)|I(?:FTON|MAX)|YDE)|H(?:"
+  "E(?:R(?:RYVAL|OKE)E|TOPA|NEY)|A(?:(?:NUT|S)E|UTAUQUA|PMAN))|E(?:N"
+  "T(?:R(?:OPOLIS|ALIA)|ERVILLE)|DAR(?: (?:POINT|VALE))?)|U(?:L(?:LI"
+  "SON|VER)|NNINGHAM|MMINGS|BA)|I(?:RCLEVILLE|MARRON)|RESTLINE)|M(?:"
+  "A(?:R(?:(?:YSVILL|QUETT)E|I(?:ENTHAL|ON))|N(?:(?:CHES)?TER|HATTAN"
+  "|KATO)|(?:TFIELD GR(?:EE)?|DISO)N|PLE(?: (?:CITY|HILL)|TON)|(?:CK"
+  "SVILL|IZ)E|Y(?:FIELD|ETTA)|HASKA)|O(?:UN(?:D(?: (?:VALLE|CIT)Y|RI"
+  "DGE)|T HOPE)|R(?:R(?:OWVILLE|ILL)|GANVILLE|LAND|AN)|N(?:TEZUMA|UM"
+  "ENT)|LINE|SCOW|DOC)|C(?: (?:(?:FARLAN|DONAL)D|C(?:RACKEN|UNE)|PHE"
+  "RSON|LOUTH)|CONNELL AFB|PHERSON)|I(?:L(?:TON(?:VALE)?|FORD|AN)|SS"
+  "ION(?: (?:HILL|WOOD)S)?|NNE(?:APOLIS|OLA))|E(?:D(?:ICINE L(?:ODGE"
+  "|DG)|ORA)|R(?:IDEN|RIAM)|N(?:TOR|LO)|LVERN|ADE)|U(?:L(?:(?:LINVIL"
+  "L|VAN)E|BERRY)|SCOTAH|RDOCK|NDEN))|S(?:T(?:A(?:FFORD|NLEY|RK)|U(?"
+  ":TTGART|DLEY)| BENEDICT|RONG CITY|ERLING|ILWELL|OCKTON)|A(?:INT ("
+  "?:(?:FRANCI|MARY)S|GEORGE|JOHN|PAUL)|(?:BETH|TANT|LIN)A|VONBURG|W"
+  "YER)|H(?:A(?:WNEE(?: M(?:ISSIO|S)N)?|RON(?: SP(?:RIN)?GS)?)|IELDS"
+  ")|C(?:OTT(?:SVILLE| CITY)|(?:HOENCHE|RANTO)N|A(?:MMON|NDIA))|E(?:"
+  "D(?:GWICK|AN)|VER(?:ANCE|Y)|LDEN|NECA|WARD)|O(?:UTH H(?:UTCHINSO|"
+  "AVE)N|L(?:DIER|OMON))|Y(?:LV(?:AN GROVE|IA)|(?:CAMOR|RACUS)E)|U(?"
+  ":MMERFIELD|BLETTE|N CITY|SANK)|P(?:RING HILL|EARVILLE|IVEY)|I(?:L"
+  "VER LAKE|MPSON)|M(?:ITH CENTER|OLAN)| HUTCHINSON)|B(?:E(?:L(?:(?:"
+  "L(?:E(?: PLAIN|VILL)|AIR)|V(?:IDER|U)|(?: AI|P)R)E|(?:MON|OI)T)|N"
+  "(?:T(?:LEY|ON)|NINGTON|EDICT|DENA)|A(?:UMONT|TTIE|VER)|R(?:RYTO)?"
+  "N|VERLY|ELER)|U(?:R(?:D(?:E(?:TT|N)|ICK)|LING(?:AME|TON)|R(?: OAK"
+  "|TON)|NS)|C(?:KLIN|YRUS)|SH(?:ONG|TON)|NKER HILL|FFALO|HLER)|A(?:"
+  "R(?:N(?:ARD|ES)|TLETT)|(?:ILEYVILL|ZIN)E|XTER SP(?:RIN)?GS|LDWIN "
+  "CITY|SEHOR|VARIA)|L(?:U(?:E (?:RAPIDS|MOUND)|FF CITY)|AINE|OOM)|R"
+  "(?:O(?:OKVILLE|WNELL|NSON)|E(?:WSTER|MEN))|O(?:NNER SPRI?NGS|GUE)"
+  "|I(?:RD CITY|SON)|YERS)|L(?:A(?:K(?:E (?:OF THE FOREST|QUIVIRA|CI"
+  "TY)|IN)|(?: (?:CROSS|HARP)|(?:FONTAI|CYG)N)E|N(?:CASTER|GDON|SING"
+  "|E)|W(?:RENCE|TON)|T(?:IMER|HAM)|MONT|RNED)|E(?:O(?:N(?:A(?:RDVIL"
+  "LE)?)?|TI)|A(?:VENWORTH|WOOD)|B(?:ANON|O)|N(?:EX|OR)A|COMPTON| RO"
+  "Y|HIGH|VANT|WIS)|I(?:N(?:COLN(?:VILLE)?|N(?: VALLEY)?|DSBORG|WOOD"
+  ")|BER(?:AL|TY)|TTLE RIVER|EBENTHAL)|O(?:NG(?:(?: ISLAN|FOR)D|TON)"
+  "|UIS(?:VILLE|BURG)|ST SPRINGS|RRAINE|GAN)|U(?:DELL|CAS|RAY)|Y(?:N"
+  "DON|ONS)|K OF THE FST)|W(?:E(?:S(?:T(?:WOOD(?: H(?:IL)?LS)?|(?: M"
+  "INERA|FAL)L|MORELAND|PHALIA)|KAN)|L(?:L(?:S(?:VILLE)?|INGTON)|DA)"
+  "|(?:BBE|I)R|TMORE)|A(?:L(?:D(?:RON|O)|LACE|KER|NUT|TON)|K(?:E(?:F"
+  "IELD|ENEY)|ARUSA)|T(?:ERVILLE|HENA)|(?: KEENE|VERL)Y|SHINGTON|MEG"
+  "O)|I(?:L(?:LI(?:AMSBURG|S)|S(?:EY|ON)|MORE)|N(?:CHESTER|FIELD|DOM"
+  "|ONA)|CHITA)|H(?:IT(?:E(?: C(?:LOUD|ITY)|WATER)|ING)|E(?:ATON|ELE"
+  "R))|OOD(?:BINE|STON)|RIGHT)|H(?:A(?:R(?:(?:DTN|P)ER|VEYVILLE|TFOR"
+  "D|LAN)|V(?:EN(?:SVILLE)?|ILAND|ANA)|L(?:LOWELL|STEAD)|N(?:OVER|ST"
+  "ON)|(?:MI|ZE)LTON|YS(?:VILLE)?|DDAM)|O(?:L(?:LENBERG|YROOD|COMB|T"
+  "ON)|(?:ISING|R)TON|(?:[MP]|XI)E|WARD|YT)|I(?:LL(?:S(?:BORO|DALE)|"
+  " CITY)|A(?:TTVILLE|WATHA)|GHLAND)|U(?:(?:(?:TCHIN|D)S|GOT|R)ON|N("
+  "?:NEWELL|TER)|MBOLDT)|E(?:R(?:(?:INGT|ND)ON|KIMER)|(?:IZ|PL)ER|SS"
+  "TON|ALY))|P(?:R(?:E(?:TTY PR(?:AIRI?E)?|S(?:COTT|TON))|A(?:IRIE V"
+  "(?:I(?:LLAGE|EW)|LG)|TT)|(?:OTECTI|INCET)ON)|A(?:R(?:(?:TRIDG|ADI"
+  "S)E|K(?: CITY|ER)?|SONS)|L(?:MER|CO)|WNEE ROCK|XICO|OLA)|E(?:N(?:"
+  "ALOSA|OKEE)|R(?:RY|U)|TROLIA|ABODY|CK)|I(?:E(?:RCEVILLE|DMONT)|TT"
+  "SBURG|QUA)|L(?:E(?:ASANTON|VNA)|AIN(?:VILLE|S))|O(?:T(?:TER|WIN)|"
+  "WHATTAN|MONA|RTIS)|HILLIPSBURG|FEIFER)|A(?:L(?:T(?:A(?: VISTA|MON"
+  "T)|O(?:ONA|N))|M(?:EN)?A|EXANDER|[DL]EN|BERT)|R(?:(?:(?:CAD|GON)I"
+  "|M)A|KANSAS CITY|LINGTON|NOLD)|N(?:T(?:ELOPE|ONINO|HONY)|D(?:OVER"
+  "|ALE))|T(?:(?:LANT|TIC)A|CHISON|WOOD|HOL)|U(?:(?:GUST|ROR)A|BURN)"
+  "|B(?:BYVILL|ILEN)E|S(?:HLAND|SARIA)|ME(?:RICU)?S|D(?:MIRE|A)|G(?:"
+  "END|R)A|XTELL)|G(?:A(?:R(?:D(?:EN (?:PLAIN|CITY)|NER)|(?:FIEL|LAN"
+  ")D|NETT)|L(?:E(?:SBURG|NA)|(?:ATI|V)A)|YLORD|S)|R(?:E(?:E(?:N(?:S"
+  "BURG|LEAF|WICH)?|LEY)|AT BEND|NOLA)|A(?:INFIELD|NTVILLE)|I(?:NNEL"
+  "L|DLEY))|O(?:(?:ODLAN|DDAR)D|ESSEL|RHAM|FF|VE)|L(?:A(?:SCO|DE)|EN"
+  " ELDER)|E(?:UDA SPRINGS|NESEO|M)|IRARD|YPSUM)|R(?:O(?:S(?:E(?: HI"
+  "LL|DALE)|SVILLE|ALIA)|(?:ELAND PAR|C)K|BINSON|XBURY|LLA|ZEL)|A(?:"
+  "N(?:D(?:OLPH|ALL)|TOUL|SOM)|D(?:IUM|LEY)|YMOND|MONA|GO)|E(?:(?:DF"
+  "IEL|XFOR)D|PUBLIC|ADING|SERVE)|US(?:SELL(?: SP(?:RINGS|G))?|H CEN"
+  "TER)|I(?:C(?:H(?:FIEL|MON)D|E)|VERTON|LEY))|E(?:L(?:K(?: (?:FALLS"
+  "|CITY)|HART)|L(?:I(?:NWOOD|S)|SWORTH)|(?:MDAL|SMOR)E| DORADO|BING"
+  "|WOOD)|D(?:(?:GERT|S)ON|WARDSVILLE|MOND|NA)|N(?:TERPRISE|GLEWOOD|"
+  "SIGN)|AST(?:BOROUGH|ON)|M(?:PORIA|METT)|S(?:KRIDGE|BON)|U(?:DOR|R"
+  "EK)A|FFINGHAM|VEREST|RIE)|N(?:E(?:W(?: (?:C(?:AMBRIA|ENTURY)|AL(?"
+  ":BANY|MELO)|STRAWN)|TON)|O(?:SHO (?:RAPID|FALL)S|DESHA)|(?:TAWAK|"
+  "KOM)A|SS CITY|AL)|OR(?:T(?:ON(?:VILLE)?|H NEWTON)|W(?:ICH|AY)|CAT"
+  "UR)|A(?:(?:SHVILL|VARR)E|(?:TOM|RK)A)|I(?:CKERSON|OTAZE))|F(?:O(?"
+  ":R(?:T (?:LEAVENWORTH|DODGE|RILEY|SCOTT)|MOSO|D)|(?:STORI|NTAN)A|"
+  "WLER)|R(?:E(?:DONIA|EPORT)|ANK(?:FORT|LIN)|ONTENAC|IEND)|A(?:L(?:"
+  "L RIVER|UN)|IR(?:VIEW|WAY)|RLINGTON)|T (?:LEAVNWRTH|RILEY)|LORENC"
+  "E|ULTON)|O(?:S(?:A(?:GE CITY|WATOMIE)|KALOOSA|BORNE|WEGO)|L(?:(?:"
+  "ATH|P)E|SBURG|MITZ)|VER(?:LAND PAR|BROO)K|(?:FFERL|ZAWKI)E|AK(?:H"
+  "ILL|LEY)|G(?:ALLAH|DEN)|(?:BERL|D)IN|N(?:EID|AG)A|T(?:TAWA|IS)|PO"
+  "LIS|XFORD|KETO)|D(?:E(?:N(?:(?:IS|T)ON|SMORE|NIS)|L(?:AVAN|PHOS|I"
+  "A)|ERFIELD| SOTO|ARING|XTER|RBY)|O(?:(?:UGLAS|WN)S|DGE CITY|RRANC"
+  "E|VER)|U(?:N(?:DEE|LAP)|LUTH|RHAM)|(?:IGHTO|RESDE)N|A(?:NVILLE|MA"
+  "R)|WIGHT)|K(?:I(?:N(?:G(?:SDOW|MA)N|CAID|SLEY)|RWIN|SMET|OWA)|A(?"
+  ":N(?:O(?:POLIS|RADO)|SAS CITY)|LVESTA)|E(?:N(?:SINGTON|DALL)|CHI|"
+  "LLY))|T(?:O(?:(?:WAND|PEK)A|NGANOXIE|RONTO)|(?:I(?:MKE|PTO)|URO)N"
+  "|R(?:(?:IBUN|EEC)E|OY)|E(?:CUMSEH|SCOTT)|A(?:LMAGE|MPA)|HAYER|YRO"
+  ")|V(?:A(?:LLEY (?:CENTER|FALLS)|SSAR)|I(?:(?:CTORI|OL)A|RGIL)|ERM"
+  "ILLION|LIETS)|I(?:N(?:D(?:EPENDENCE|USTRY)|GALLS|MAN)|(?:O(?:NI|L"
+  ")|UK)A|SABEL)|J(?:E(?:NNINGS|TMORE|WELL)|(?:AMESTOW|OHNSO)N|UNCTI"
+  "ON CITY)|U(?:NIONTOWN|LYSSES|DALL|TICA)|Y(?:ATES CENT|OD)ER|QU(?:"
+  "ENEMO|INTER)|Z(?:URICH|ENDA)))))$"
+  ,
+  /* -- KY -- KY -- KY -- KY -- KY -- KY -- KY -- KY -- KY -- KY -- */
+  "(?:\\b)((?^:(?i:(?:S(?:T(?:A(?:M(?:PING GR(?:OUN)?D|BAUGH)|N(?:VI"
+  "LLE|FORD|LEY|TON)|(?:CY FO)?RK|FFORDSVI?LLE|TIC|B)|E(?:PHENS(?:BU"
+  "RG|PORT)?|(?:UBENVIL|E)LE|ARNS|LLA)| (?:MA(?:TTHEWS|RY)|CATHARINE"
+  "|JOSEPH)|O(?:NE(?:Y FORK)?|P(?:OVER)?)|INNETT|URGIS|RUNK)|A(?:INT"
+  " (?:C(?:ATHARINE|HARLES)|(?:FRANCI|HELEN)S|MA(?:TTHEWS|RY)|JOSEPH"
+  "|PAUL)|L(?:(?:YERSVILL|DE)E|T (?:LICK|GUM)|VISA|EM)|ND(?:Y HOOK|E"
+  "RS|GAP)|SS(?:AFRAS|ER)|M(?:UELS|PLE)|CRAMENTO|DIEVILLE|RDIS|WYER|"
+  "UL)|O(?:UTH(?: (?:(?:CARROLLT|WILLIAMS|UNI)ON|FORT MITCHELL|PORTS"
+  "MOUTH|SHORE)|GATE)|FT SHELL|MERSET|LDIER|NORA)|E(?:B(?:ASTIANS BR"
+  "(?:ANCH)?|REE)|(?:NTERVILL| RE)E|XTONS CREEK|VENTY SIX|WELLTON|MI"
+  "NARY|DALIA|ITZ|CO)|U(?:MM(?:ER(?: SHAD|SVILL)E|IT?T)|L(?:PHUR(?: "
+  "WELL)?|LIVAN)|N(?:NYBROOK|FISH)|B(?:LETT|TLE)|DITH|SIE)|H(?:E(?:L"
+  "B(?:Y(?:VILLE| GAP)|IANA)|PHERDSVI?LLE)|AR(?:ON GROVE|PSBURG)|IVE"
+  "LY)|I(?:L(?:VER(?: GROVE|HILL)|ER)|MPSONVILLE|ZEROCK|DNEY|TKA)|MI"
+  "(?:TH(?:S (?:CREEK|GROVE)|(?:FIEL|LAN)D| MILLS)?|LAX)|P(?:RING(?:"
+  " LICK|FIELD)|E(?:IGHT|NCE)|OTTSVILLE|ARTA)| (?:(?:CARROLLT|WILLIA"
+  "MS)ON|FT MITCHELL|PORTSMOUTH)|C(?:IENCE HILL|OTTSVILLE|RANTON|UDD"
+  "Y|ALF)|W(?:A(?:MP(?: BRANCH|TON)|NPOND)|EEDEN)|L(?:A(?:UGHTERS|DE"
+  "|T)|OANS VALLEY|EMP)|YM(?:SONIA|BOL)|KYLINE|NOW)|C(?:A(?:N(?:E(?:"
+  "Y(?:VILLE)?| VALLEY)|N(?:EL CITY|ON)|ADA|MER|TON|OE)|R(?:R(?:(?:S"
+  "VILL|I)E|OLLTON)|(?:CASSONN|LISL)E|[TV]ER|Y)|L(?:V(?:(?:ERT CIT|A"
+  "R)Y|IN)|IFORNIA|LAWAY|HOUN)|MP(?:BELLS(?:VI?LLE|BURG)| DIX|TON)|T"
+  "LETTSBURG|INS STORE|SEY CREEK|VE CITY|WOOD|DIZ)|O(?:L(?:D(?: SPR("
+  "?:GS(?:-HIGHLAND HTS| HI)|ING)|IRON)|UMB(?:IA|US)|LEGE HILL)|N(?:"
+  "(?:STANTIN|FLUENC)E|(?:LE|WA)Y|CORD)|R(?:N(?:ETTS|ISH)VILLE|(?:YD"
+  "O|BI)N|INTH)|(?:OPERSVIL|TT)LE|XS CREEK|VINGTON|ALGOOD|BHILL|MBS)"
+  "|R(?:E(?:S(?:CENT (?:SP(?:RINGS|GS?)|PARK)|T(?:VIEW H(?:IL)?LS|WO"
+  "OD))|ELSBORO)|A(?:N(?:E NEST|KS)|YN(?:OR|E)|B ORCHARD)|O(?:M(?:WE"
+  "LL|ONA)|(?:FTO|W)N|CKETT|PPER)|U(?:TCHFIELD|MMIES)|ITTENDEN|YSTAL"
+  ")|L(?:E(?:A(?:R(?: CR(?:EEK(?: SPRINGS)?|K SPG)|FIELD)|TON)|MENTS"
+  "VILLE|RMONT)|O(?:VER(?: BOTTOM|PORT)|SPLINT)|A(?:Y(?: CITY|HOLE)?"
+  "|RKSON)|I(?:F(?:FORD|TY)|NTON|MAX))|U(?:MBERL(?:AND(?: COLLEGE)?|"
+  "ND CLG)|N(?:NINGHAM|DIFF)|T(?:SHIN|UNO)|(?:LV|ST)ER|RDSVILLE|B RU"
+  "N)|H(?:A(?:P(?:PELL|LIN)|VIES|D)|E(?:STNUTBURG|VROLET|NOA))|E(?:N"
+  "T(?:ER(?:TOWN)?|RAL CI?TY)|RULEAN|CILIA)|Y(?:NTHIANA|RUS)|I(?:NDA"
+  "|SCO))|B(?:E(?:T(?:H(?:E(?:L(?:RIDGE)?|SDA)|AN(?:NA|Y)|LEHEM)|S(?"
+  ":Y LAYNE|EY))|A(?:R(?: BRANCH|VILLE)|U(?:MONT|TY)|VER(?: DAM)?|TT"
+  "YVILLE)|E(?:CH(?: (?:CREEK|GROVE)|MONT)| SPRING)|L(?:LEVUE|CHER|F"
+  "RY|TON)|V(?:INSVILLE|ERLY)|N(?:HAM|TON)|R(?:EA|RY)|DFORD)|R(?:O(?"
+  ":W(?:N(?:S(?: (?:(?:CROSS|X)ROADS|FORK)|VILLE)|ING)|DER)|OK(?:S(?"
+  ":VILLE)?|LYN)|AD BOTTOM|DHEAD|NSTON|MLEY)|A(?:DFORDSVI?LLE|NDENBU"
+  "RG)|YAN(?:TS(?: STOR|VILL)E)?|I(?:GHT SHADE|NKLEY)|E(?:EDING|MEN)"
+  "|UIN)|A(?:R(?:NETTS CR(?:EE)?K|D(?:STOWN|WELL)|BOURVILLE|RIER|LOW"
+  ")|(?:TTLETOW|KERTO|UGHMA)N|ILEY (?:SWITCH|CREEK)|L(?:LARDSVILLE|K"
+  "AN)|N(?:DANA|NER)|SKETT|GDAD|XTER|YS)|U(?:R(?:N(?:ING FORK|SIDE|W"
+  "ELL|A)|K(?:(?:ESVILL)?E|HART)|(?:LINGTO|GI)N|DINE)|CK(?:INGHAM|HO"
+  "RN|NER)|T(?:TERFLY|LER)|S(?:[HY]|KIRK)|ECHEL|FFALO|LAN)|L(?:A(?:N"
+  "(?:DVILLE|CHET)|I(?:RS MILL|NE)|CK(?:FORD|EY)|ZE)|UE(?: (?:DIAMON"
+  "D|RIVER)|HOLE)|OOMFIELD|EDSOE)|O(?:N(?:N(?:IEVILLE|YMAN)|D(?:VILL"
+  "E)?)|W(?:(?:LING GRE)?EN)?|ON(?:EVILLE|S CAMP)|STON|AZ)|I(?:G(?: "
+  "(?:C(?:LIFTY|REEK)|LAUREL|SPRING|ROCK)|HILL|GS)|MBLE)|Y(?:BEE|PRO"
+  "))|M(?:A(?:R(?:SH(?:ES S(?:IDI|D)NG|ALLVILLE)|Y(?: ALICE|DELL)?|I"
+  "(?:BA|ON)|T(?:HA|IN)|ROWBONE|CUM)|Y(?:S(?:VILLE|LICK)|FIELD|KING|"
+  "TOWN)|N(?:I(?:TOU|LA)|CHESTER|NSVILLE)|MMOTH CAVE(?: NATIONAL PAR"
+  "K)?|(?:L(?:LI|ON)|DISONVILL|ZI)E|S(?:ON(?:IC HOME)?|HFORK)|G(?:NO"
+  "LIA|GARD)|C(?:KVILLE|EO)|U(?:LDEN|D)|PLE MOUNT|JESTIC|TTHEW)|O(?:"
+  "U(?:NT (?:(?:(?:WASHINGT|HERM|VERN)O|EDE)N|S(?:TERLING|HERMAN)|OL"
+  "IVET|PISGAH)|THCARD|SIE)|R(?:GAN(?:FIELD|TOWN)|RI(?:S FORK|LL)|NI"
+  "NG VIEW|TONS GAP|EHEAD)|O(?:RE(?:S CREEK|FIELD)|LEYVILLE|N)|NT(?:"
+  "ICELLO|PELIER)|ZELLE|LUS)|I(?:L(?:L(?:ERS(?:BURG|TOWN)|S(?:TONE)?"
+  "| SPRINGS|TOWN|WOOD)|(?:BUR|TO)N|FORD|O)|D(?:DLE(?:SBORO|BURG|TOW"
+  "N)|WAY)|(?:STLETO|RACL|Z)E|N(?:ERVA|NIE)|TCHELLSBURG|MA)|C(?: (?:"
+  "(?:ANDREW|ROBERT)S|D(?:ANIELS|OWELL)|(?:HENR|QUAD)Y|K(?:INNEY|EE)"
+  "|CARR)|COMBS|VEIGH)|E(?:L(?:B(?:OURNE|ER)|VIN)|A(?:DOW CREEK|LLY|"
+  "NS)|ETING CREEK|NTOR|TA)|U(?:NFORDVILLE|SES MILLS|LDRAUGH|RRAY)|T"
+  " (?:WASHINGTON|STERLING)|YRA)|W(?:E(?:ST(?: (?:L(?:OUISVILLE|IBER"
+  "TY)|P(?:ADUCAH|OINT)|SOMERSET|VAN LEAR|IRVINE)|(?:BEN|WOO)D|PORT|"
+  "VIEW)|B(?:B(?:S CR(?:OSS ROA|S R)DS|VILLE)|STER)|L(?:CHS CREEK|LI"
+  "NGTON)|EKSBURY|NDOVER)|A(?:L(?:L(?:IN(?:S CREEK|GFORD)|SEND)|KER("
+  "?:TOWN)?|NUT GROVE|TON|DO)|R(?:BRANCH|FIELD|SAW)|TER(?: VALLEY|VI"
+  "EW)|Y(?:NESBURG|LAND)|(?:VERL|DD)Y|SHINGTON|NETA|CO|X)|I(?:L(?:L("
+  "?:I(?:AMS(?:BURG|PORT|TOWN)|SBURG)|OW SHADE|ARD)|(?:SONVILL|MOR)E"
+  "|D(?:CAT|ER|IE))|N(?:D(?: CAVE|SOR|Y)|CHESTER|STON|GO)|(?:TTENSVI"
+  "LL|CKLIFF)E|DECREEK)|H(?:I(?:T(?:E(?: (?:(?:PLAIN|MILL)S|CITY|OAK"
+  ")|S(?:VILLE|BURG)|HOUSE)|LEY CITY)|CK)|E(?:AT(?:CROFT|LEY)|ELWRIG"
+  "HT))|O(?:O(?:D(?:B(?:UR[NY]|INE)|MAN|S)|LLUM|TON)|L(?:F(?: COAL)?"
+  "|VERINE)|RTH(?:INGTON|VILLE)|NNIE)| LOUISVILLE|URTLAND|RIGLEY)|P("
+  "?:E(?:N(?:DLET(?:ON(?: COUNTY)?|N CNTY)|ROD)|(?:WEE VALLE|ABOD)Y|"
+  "RRY(?: PARK|VILLE)|(?:LLVILL|MBROK)E|(?:YTON|TER)SBURG|O(?:PLES|N"
+  "IA)|BWORTH)|A(?:R(?:K(?:(?:ERS LAK|SVILL)E| (?:HILLS|CITY))?|TRID"
+  "GE|NELL|ROT|IS)|INT(?:SVILLE| LICK)|YNE(?:VILLE| GAP)|T(?:HFORK|S"
+  "EY)|DUCAH|W PAW)|I(?:N(?:E(?: (?:MOUNTAIN|RIDGE|KNOT|TOP)|VILLE)|"
+  "SONFORK)|PPA PASSES|KEVILLE|TTSBURG|LGRIM|SO)|R(?:I(?:N(?:CETON|T"
+  "ER)|(?:MROS|C)E)|E(?:STON(?:SBURG)?|MIUM)|O(?:V(?:IDENCE|O)|SPECT"
+  ")|YSE)|L(?:EASURE(?: R(?:IDGE PARK|DGE)|VILLE)|UM(?:MERS L(?:ANDI"
+  "N|ND)G| SPRINGS)|ANK)|O(?:W(?:ERSBURG|DERLY)|(?:PLARVIL|O)LE|MERO"
+  "YTON|RT ROYAL|INTER)|U(?:LASKI|BLIC|EBLO|TNEY)|H(?:(?:YLLI|ELP)S|"
+  "ILPOT))|H(?:A(?:R(?:D(?:IN(?:SBURG)?|Y(?:VILLE)?|BURLY|SHELL)|ROD"
+  "S(?: CREEK|BURG)|(?:TFOR|NE|OL)D|LAN|PER)|L(?:L(?:IE)?|DEMAN|FWAY"
+  "|O)|Z(?:EL(?: GREEN)?|ARD)|(?:M(?:PTO|LI)|NSO)N|T(?:FIELD|TON)|D("
+  "?:DIX|LEY)|GER(?:HILL)?|WESVILLE|PPY)|I(?:GH(?:LAND H(?:EIGH|G)TS"
+  "|GROVE|WAY)|LL(?:SBORO|VIEW)|CK(?:MAN|ORY)|N(?:DMAN|KLE)|S(?:EVIL"
+  ")?LE|T(?:CHINS|E)|M(?:YAR|A)| HAT|PPO|RAM)|O(?:(?:P(?:KINSVILL)?|"
+  "D(?:GENVILL)?)E|L(?:L(?:YBUSH|AND)|MES MILL)|(?:WARDSTOW|SKINSTO)"
+  "N|RSE (?:BRANCH|CAVE)|N(?:EYBEE|AKER))|E(?:N(?:D(?:ERSON|RICKS)|S"
+  "HAW)|L(?:ECHAWA|LIER|TON)|ID(?:ELBERG|RICK)|AD OF GRASSY?|R(?:NDO"
+  "N|D)|STAND|BRON)|U(?:(?:STON|EYS)VILLE|NT(?:SVILLE|ER)|D(?:SON|DY"
+  ")|LEN|FF)|YDEN)|L(?:O(?:G(?: MOUNTAIN|ANSPORT|VILLE)|C(?:UST(?: H"
+  "ILL)?|KPORT)|U(?:IS(?:VILLE|A)|ELLEN)|VEL(?:ACEVILLE|Y)|W(?:MANSV"
+  "ILLE|ES)|N(?:DON|E)|ST CREEK|DIBURG|OKOUT|RETTO|YALL|AD|LA)|A(?: "
+  "(?:(?:FAYETT|GRANG)E|CENTER)|W(?:RENCEBURG|TON)|(?:RKSLAN|GRANG)E"
+  "|N(?:CASTER|GLEY)|TONIA(?: LAKES)?|UR(?:EL FORK|A)|KESIDE PARK|MB"
+  "(?:RIC)?|CKEY)|E(?:B(?:ANON(?: J(?:UNCTIO|CT)N)?|URN)|(?:(?:DBETT"
+  "|TCH)E|JUNIO)R|A(?:THERWOOD|NDER)|WIS(?:BURG|PORT)|E(?: CITY|CO)|"
+  "NO(?:RE|X)|ITCHFIELD|XINGTON)|I(?:TT(?:LE(?: SANDY)?|CARR)|N(?:DS"
+  "EYVILLE|EFORK)|V(?:INGSTON|ERMORE)|CK(?: CREEK|BURG)|(?:BERT|L)Y|"
+  "GON)|Y(?:N(?:NVILLE|DON|CH)|TTEN)|U(?:DLOW|CAS)|LOYD)|F(?:O(?:R(?"
+  ":T (?:(?:CAMPB|MITCH)ELL|THOMAS|KNOX)|D(?:S(?: BRANCH|VILLE))?|ES"
+  "T HILLS|AKER)|U(?:NTAIN RUN|RMILE)|(?:GER|X)TOWN|STER|NDE)|A(?:L("
+  "?:L(?:S(?:(?: OF)? ROUGH|BURG)| ROCK)|MOUTH|CON)|IR(?:FIELD|DALE|"
+  "PLAY|VIEW)|R(?:M(?:INGTON|ERS)|LER)|NCY FARM|UBUSH)|R(?:E(?:D(?:V"
+  "ILLE|ONIA)|NCHBURG|EBURN|W)|A(?:NK(?:LI(?:NTO)?N|FORT)|KES|ZER)|I"
+  "(?:SBY|TZ)|OZEN CREEK)|L(?:A(?:T(?: (?:FOR|LIC)K|WOODS|GAP)?|HERT"
+  "Y)|EMING(?: NEON|SBURG)?|ORENCE)|I(?:S(?:H(?:ERVILLE|TRAP)|TY)|N("
+  "?:CHVILLE|LEY)|REBRICK|LLMORE|ELD)|E(?:R(?:N CREEK|GUSON)|DSCREEK"
+  ")|T (?:MITCHELL|WRIGHT)|U(?:LT(?:ON|Z)|GET))|R(?:O(?:C(?:K(?:Y(?:"
+  "BRANCH| HILL)|HO(?:LDS|USE)| CREEK|FIELD|PORT)|HESTER)|B(?:INSON "
+  "CR(?:EE)?K|ARDS)|U(?:S(?:SEAU|E)|NDHILL)|W(?:LETTS|ENA|DY)|S(?:SL"
+  "YN|INE)|YALTON|GERS|XANA|ARK)|E(?:D(?:BU(?:SH|D)| BIRD|FOX)|YNOLD"
+  "S STA(?:TION)?|NFRO VALLEY|GINA|LIEF|VELO|ED)|A(?:C(?:ELAND|COON)"
+  "|Y(?:MOND|WICK)|VEN(?:NA)?|BBIT HASH|DCLIFF|NSOM)|I(?:C(?:H(?:ARD"
+  "S(?:VILLE|ON)|MOND)|ETOWN)|(?:[ST]N|V)ER|NEYVILLE)|U(?:S(?:SELL(?"
+  ": SP(?:RIN)?GS|VILLE)?|H)|MSEY|TH)|YLAND H(?:G(?:HT|TS)|EIGHTS)|R"
+  " DONNELLY|HODELIA)|G(?:R(?:A(?:Y(?:S(?: KNOB|ON)| HAWK)?|VEL SWIT"
+  "CH|H(?:AM|N)|ND RIVERS|SSY CREEK|DYVILLE|CEY?|TZ)|E(?:EN(?: (?:HA"
+  "LL|ROAD)|SBURG|VILLE|WOOD|UP)|GORY|THEL)|OLIER BOOKS)|A(?:R(?:R(?"
+  ":ISON|ARD|ETT)|FIELD|NER)|(?:PVIL|USDA)LE|YS CREEK|LVESTON|MALIEL"
+  ")|U(?:L(?:NARE|STON)|(?:THRI|AG)E|ERRANT|NLOCK|STON)|L(?:EN(?:(?:"
+  "DAL|CO)E|S FORK| DEAN|VIEW)|ASGOW)|I(?:L(?:L(?:MORE|Y)|BERTSVILLE"
+  ")|FFORD|RDLER)|O(?:O(?:SE ROCK|DY)|(?:RDO|SHE)N|LDEN POND)|E(?:OR"
+  "GE|RMAN)TOWN|HENT|YPSY)|E(?:L(?:K(?:(?: HOR|TO)N|HORN CITY|ATAWA|"
+  "FORK)|I(?:ZA(?:BETHTOWN|VILLE)|AS|HU)|(?:S(?:MER|I)|LIOTTVILL)E|A"
+  "MTON|MROCK|NA|YS)|A(?:ST(?: (?:P(?:INEVILLE|OINT)|BERNSTADT|MC DO"
+  "WELL)|VIEW|WOOD|ERN)|RLINGTON)|M(?:ERSON(?: ORCUTTS GROCERY)?|M(?"
+  ":ALEN)?A|INENCE|LYN)| (?:BERNSTADT|MC DOWELL|PINEVILLE|TOWN)|D(?:"
+  "DYVILLE|GEWOOD|MONTON|NA)|R(?:(?:IL|M)INE|LANGER)|(?:IGHTY EIGH|N"
+  "DICOT)T|S(?:TILL|SIE)|T(?:OILE|TY)|V(?:ARTS|ER)|BERLE|UBANK|KRON|"
+  "OLIA|WING|ZEL)|D(?:E(?:(?:A(?:TSVILL|N)| MOSSVILL|FO)E|M(?:O(?:SS"
+  "VILLE|CRAT)|A)|N(?:(?:NIS)?TON|VER)|L(?:PHI|T)A|BORD|WITT|XTER|CO"
+  "Y)|A(?:V(?:I(?:S(?:BURG|PORT)|D)|ELLA)|WSON SP(?:RIN)?GS|Y(?:HOIT"
+  "|TON)|N(?:VILLE|A)|BOLT|ISY)|R(?:Y(?: (?:CREEK|RIDGE)|HILL)|A(?:K"
+  "E(?:SBORO)?|FFIN)|EYFUS|IFT)|U(?:N(?:(?:NVILL|DE)E|(?:BA|MO)R)|BR"
+  "E|CO)|O(?:RTON(?: BRANCH)?|NGOLA|VER)|I(?:SPUTANTA|NGUS|ZNEY|XON|"
+  "CE)|WA(?:LE|RF)|YCUSBURG)|T(?:H(?:O(?:USANDSTICKS|RNTON)|REE(?: P"
+  "OINT|FORKS)|E(?:ALK|LM)A|SANDSTICKS)|O(?:M(?:PKINSVILLE|AHAWK)|L("
+  "?:LESBORO|ER|U)|URISTVILLE|PMOST|TZ)|A(?:YLOR(?:SVILLE| MILL)|L(?"
+  ":BERT|LEGA|CUM)|TEVILLE|NKSLEY)|U(?:R(?:NERS STA(?:TION)?|KEY(?: "
+  "CREEK)?)|T(?:OR KEY|TLE))|R(?:I(?:(?:BBE|NIT)Y|MBLE)|A(?:PPIST|M)"
+  "|ENTON|OSPER)|I(?:N(?:Y TOWN|SLEY|A)|LINE)|E(?:ABERRY|DDERS)|Y(?:"
+  "NER|PO)| VILLE)|A(?:L(?:L(?:E(?:N(?:SVILLE)?|GRE)|OCK)|(?:EXANDRI"
+  "|PH)A|VA(?:TON)?|(?:TR|M)O|CALDE|BANY)|R(?:G(?:ILLITE|O)|(?:JA)?Y"
+  "|LINGTON|TEMUS)|U(?:(?:BUR|STI)N|GUSTA|XIER)|D(?:A(?:IRVILLE|MS)|"
+  "OLPHUS)|N(?:C(?:HORAGE|O)|NVILLE)|(?:BERDEE|ARO|COR)N|SH(?:CAMP|L"
+  "AND|ER)|GES BROOKSI?DE|MBURGEY|VAWAM|FLEX|THOL)|N(?:E(?:W(?: (?:C"
+  "(?:ONCORD|ASTLE)|H(?:AVEN|OPE)|LIBERTY|ZION)|FOUNDLAND|PORT)|(?:V"
+  "ISDAL|LS)E|AFUS|RINX|BO|ON|D)|A(?:P(?:OLEON|FOR)|ZARETH|RROWS|NCY"
+  "|OMI)|O(?:RT(?:H MIDDLETOWN|ONVILLE)|CTOR)|I(?:CHOLASVILLE|PPA)| "
+  "MIDDLETOWN|UMBER ONE)|O(?:L(?:D(?: LANDING|TOWN)|IVE HILL|MSTEAD|"
+  "YMPIA|ATON|LIE)|W(?:EN(?:SBORO|TON)?|INGSVILLE)|R(?:(?:CUTTS GROC"
+  "|KNE)Y|LANDO)|AK(?:(?: GROV|VILL)E|LAND)|(?:SCALOOS|KOLON|NEID)A|"
+  "IL (?:SPRINGS|VALLEY)|VEN FORK|FFUTT|PHIR|GLE)|K(?:E(?:TTLE(?: IS"
+  "LAND)?|N(?:TON|VIR)|A(?:TON|VY)|RBY KNOB|ENE|ITH|VIL)|I(?:NGS M(?"
+  ":OUNTAI|T)N|RKSEY|MPER|TE)|N(?:O(?:TTSVILLE|B LICK)|IFLEY)|A(?:LI"
+  "OPI|YJAY)|(?:UTTAW|ON)A|RYPTON|YROCK)|J(?:E(?:FF(?:ERSON(?:VI?LLE"
+  "|TOWN))?|N(?:KINS|SON)|REMIAH|TSON)|O(?:N(?:ESVILLE|ANCY|ICAN)|HN"
+  "(?:S RUN|ETTA)|B)|A(?:M(?:ESTOWN|BOREE)|CK(?:HOR|SO)N|RVIS|BEZ)|U"
+  "NCTION CITY|INKS)|V(?:A(?:N(?:C(?:EBURG|LEVE)| LEAR|ZANT)?|L(?:LE"
+  "Y STAT(?:IO)?N|ERIA)|RNEY|DA)|I(?:N(?:E GROVE|CENT)|C(?:TORY|CO)|"
+  "LLA HILLS|RGIE|PER)|E(?:R(?:(?:SAILL|TRE)ES|ONA)|ST)|OLGA)|I(?:N("
+  "?:DE(?:PENDENCE|X)|G(?:RAM|LE)|SKO|EZ)|S(?:LAND(?: CITY)?|O(?:NVI"
+  "LLE|M))|V(?:Y(?: GROVE|TON)|EL)|RVIN(?:GTON|E)|UKA)|U(?:NION(?: S"
+  "TAR|TOWN)?|P(?:PER TYGART|TON)|L(?:YSSES|VAH)|RBAN|TICA)|Y(?:E(?:"
+  "(?:ADDIS|RKE)S|LLOW ROCK)|O(?:CUM(?: CREEK)?|SEMITE))|QU(?:I(?:CK"
+  "SAND|NCY)|ALITY)|Z(?:ACHARIAH|OE)))))$"
+  ,
+  /* -- LA -- LA -- LA -- LA -- LA -- LA -- LA -- LA -- LA -- LA -- */
+  "(?:\\b)((?^:(?i:(?:C(?:H(?:A(?:T(?:AIGNIER|HAM)|(?:RENTO|UVI)N|(?"
+  ":LMETT|S)E)|E(?:NEYVILLE|STNUT)|O(?:UDRANT|PIN)|URCH POINT)|A(?:M"
+  "(?:P(?: BEAUREGARD|TI)|ERON)|R(?:(?:LIS|VIL)LE|ENCRO)|(?:L(?:HOU|"
+  "VI)|NKTO)N|S(?:PIANA|TOR)|DE)|O(?:L(?:LINSTON|UMBIA|FAX)|TTON(?: "
+  "VALLEY|PORT)|NVE(?:RSE|NT)|W ISLAND|USHATTA|VINGTON)|L(?:A(?:R(?:"
+  "ENCE|KS)|YTON)|OUTIERVILLE|I[FN]TON)|E(?:NT(?:ER(?: POINT|VILLE)|"
+  "RAL)|CILIA)|R(?:OW(?:VILLE|LEY)|E(?:STON|OLE))|YPRE(?:MORT P(?:OI"
+  "N)?T|SS)|U(?:T OFF|LLEN)|P BEAUREGARD)|S(?:A(?:INT (?:(?:MA(?:RTI"
+  "NVILL|URIC)|FRANCISVILL|ROS)E|BE(?:NEDICT|RNARD)|J(?:OSEPH|AMES)|"
+  "GABRIEL|LANDRY|AMANT)|REPTA|LINE)|T(?: (?:(?:FRANCISV|MARTINVL)LE"
+  "|BENEDICT)|AR(?:KS|T)|ERLINGTON|ONEWALL)|I(?:M(?:MESPORT|SBORO|PS"
+  "ON)|(?:EP|NG)ER|CILY ISLAND|BLEY|KES)|U(?:N(?:S(?:HINE|ET))?|MMER"
+  "FIELD|GARTOWN|LPHUR)|P(?:E(?:ARSVILLE|NCER)|RING(?:FIELD|HILL))|C"
+  "(?:OT(?:LANDVILLE|T)|HRIEVER)|H(?:REVEPORT|ONGALOO|ERIDAN)|O(?:ND"
+  "HEIMER|RRENTO|UTHERN)|L(?:A(?:UGHTER|GLE)|IDELL)|WARTZ)|B(?:A(?:R"
+  "(?:KSDALE AFB|ATARIA)|T(?:ON ROUGE|CHELOR)|S(?:TROP|ILE|KIN)|L(?:"
+  "DWIN|L)|YOU GOULA|INS|KER)|E(?:L(?:L(?:E (?:CHAS|RO)SE| CITY)|CHE"
+  "R|MONT)|R(?:NICE|WICK)|NT(?:LEY|ON)|THANY)|R(?:(?:I(?:DGE CIT|TTA"
+  "N)|USL)Y|(?:OUSSAR|YCELAN)D|A(?:ITHWAITE|NCH)|EAUX BRIDGE)|O(?:(?"
+  ":(?:RDELON|OTH)VILL|YC)E|(?:GALUS|NIT)A|U(?:TTE|RG)|SSIER CITY)|U"
+  "(?:(?:TTE LAROS|CKEY|ECH|NKI)E|R(?:NSIDE|AS)|SH)|LAN(?:CHARD|KS)|"
+  "IENVILLE)|M(?:O(?:N(?:T(?:E(?:GUT|REY)|GOMERY|PELIER|Z)|ROE)|R(?:"
+  "GAN(?: CITY|ZA)|(?:EAUVILL|S)E|ROW|A)|UN(?:T (?:HERMON|AIRY)|D)|O"
+  "RINGSPORT|SS BLUFF|DESTE)|A(?:R(?:(?:THA|KS)VILLE|I(?:NGOUI|O)N|R"
+  "ERO)|N(?:S(?:FIELD|URA)|DEVILLE|GHAM|Y)|UR(?:EPAS|ICE)|DISONVILLE"
+  "|THEWS|MOU)|E(?:R(?:(?:RYVILL| ROUG)E|MENTAU|AUX)|L(?:(?:VILL|ROS"
+  ")E|DER)|TAIRIE|AUX)|I(?:T(?:CHELL|TIE)|(?:LTO|NDE)N|DLAND|RA))|L("
+  "?:A(?:KE(?: (?:PROVIDENCE|CHARLES|ARTHUR)|LAND)|(?:BA(?:DIEVILL|R"
+  "R)|F(?:AYE|I)TT| PLAC)E|C(?:A(?:SSINE|MP)|OMBE)|R(?:OSE|TO)|WTELL"
+  ")|O(?:NG(?:STREET|VILLE|LEAF)|R(?:EAUVILLE|ANGER)|(?:GANS|CK)PORT"
+  "|TTIE)|E(?:(?:(?:ES|ON)VILL|COMPT)E|B(?:LANC|EAU)|TTSWORTH| MOYEN"
+  "|ANDER|NA)|I(?:(?:NVILL|BUS|LLI)E|V(?:INGSTON|ONIA)|SBON)|U(?:TCH"
+  "ER|LING)|K PROVIDENCE|YDIA)|P(?:O(?:RT (?:SULPHUR|VINCENT|ALLEN|B"
+  "ARRE)|INT(?:E A LA HACHE| CLAIR)|NCHATOULA|WHATAN|LLOCK)|I(?:NE(?"
+  ": (?:PRAIRI|GROV)|VILL)E|(?:LOTTOW|TKI)N|ERRE PART|ONEER)|L(?:A(?"
+  ":(?:(?:TTEN|UCHE)VILL|QUEMIN)E|IN DEALING)|EASANT HILL)|A(?:INCOU"
+  "RTVI?LLE|R(?:ADI|K)S|TTERSON|LMETTO|ULINA)|R(?:I(?:NCETON|DE)|AIR"
+  "IEVILLE|OVENCAL)|E(?:ARL RIVER|LICAN|RRY)|T A LA HACHE)|G(?:R(?:A"
+  "(?:N(?:D (?:C(?:HENIER|OTEAU|ANE)|ISLE)|T)|M(?:BLING|ERCY)|Y(?:SO"
+  "N)?)|E(?:EN(?:W(?:EL(?:L SPRIN| SP)GS|OOD)|SBURG)|TNA)|OSSE TETE)"
+  "|A(?:R(?:D(?:EN CITY|NER)|YVILLE)|L(?:LIANO|VEZ))|O(?:LD(?:EN MEA"
+  "DOW|ONNA)|NZALES|UDEAU|RUM)|I(?:L(?:BERT|LIAM)|BS(?:LAND|ON)|RARD"
+  ")|L(?:ENMORA|OSTER|YNN)|E(?:ORGETOWN|ISMAR)|UEYDAN|HEENS)|D(?:E(?"
+  ":N(?:HAM SP(?:RIN)?G|NIS MILL)S|S(?: ALLEMANDS|TREHAN)|L(?:CAMBRE"
+  "|HI|TA)|R(?:IDDER|RY)|QUINCY|VILLE)|O(?:N(?:ALDSONVI?LLE|NER)|(?:"
+  "WNSVILL|YLIN)E|DSON)|U(?:P(?:LESSIS|ONT)|B(?:BERLY|ACH)|LAC|SON)|"
+  "RY (?:CREEK|PRONG)|A(?:RROW|VANT)|IXIE)|F(?:O(?:R(?:T (?:NECESSIT"
+  "Y|POLK)|EST(?: HILL)?|DOCHE|BING)|LSOM)|R(?:(?:ANKLI(?:NTO)?|IERS"
+  "O)N|(?:ENCH)? SETTLEMENT|OGMORE)|L(?:OR(?:IEN|A)|ATWOODS|UKER)|A("
+  "?:RMERVILLE|IRBANKS)|E(?:RRIDAY|NTON)|I(?:ELDS|SHER)|T NECESSITY|"
+  "ULLERTON)|H(?:A(?:R(?:(?:AHA|MO)N|RISONBURG|DWOOD|VEY)|Y(?:NESVIL"
+  "LE|ES)|M(?:BURG|MOND)|LL SUMMIT|CKBERRY|HNVILLE|UGHTON|NNA)|O(?:L"
+  "(?:LY RIDGE|DEN)|RNBECK|SSTON|DGE|MER|UMA)|E(?:(?:NDERSO|FLI)N|S("
+  "?:SM|T)ER)|I(?:LLSDALE|NESTON|CKS)|USSER)|A(?:R(?:C(?:HIBALD|ADIA"
+  ")|NAUDVILLE|ABI)|B(?:ITA SPRINGS|BEVILLE)|N(?:G(?:OLA|IE)|ACOCO)|"
+  "V(?:ERY ISLAND|ONDALE)|L(?:EXANDRIA|BANY|TO)|M(?:(?:ELI)?A|ITE)|T"
+  "(?:LANTA|HENS)|(?:DDI|KER)S|IMWELL|SHLAND|CME)|R(?:O(?:S(?:E(?:(?"
+  ":DAL|PIN)E|LAND)|A)|BE(?:LINE|RT)|ANOKE|DESSA|UGON)|I(?:(?:CHWOO|"
+  "NGGOL)D|VER RIDGE|DGECREST)|A(?:Y(?:VILL|N)E|CELAND|GLEY|MAH)|E(?"
+  ":DDELL|SERVE|EVES)|U(?:STON|BY)|HINEHART)|E(?:L(?:M(?: GROVE|WOOD"
+  "|ER)|IZABETH|TON)|(?:NTERPRIS|MPIR|UNIC|FFI)E|V(?:AN(?:GELINE|S)|"
+  "ERGREEN)|R(?:WINVILLE|ATH|OS)|(?:STHERWOO|DGAR)D|(?:XTENSIO|GA)N|"
+  "AST POINT|THEL|CHO|OLA|PPS)|W(?:A(?:(?:SHINGTO|RDE)N|T(?:ERPROOF|"
+  "SON)|KEFIELD|VERLY|LKER)|I(?:NN(?:FIELD|SBORO)|L(?:DSVILLE|SON)|S"
+  "NER)|E(?:ST(?:(?: MONRO|LAK)E|WEGO)|YANOKE|LSH)|HITE(?: CASTLE|HA"
+  "LL)|OODWORTH)|T(?:A(?:L(?:ISHEEK|LULAH)|NGIPAHOA|YLOR)|H(?:E(?: B"
+  "LUFFS|RIOT)|IBODAUX)|U(?:RKEY CREEK|LLOS|NICA)|R(?:ANSYLVANIA|EES"
+  "|OUT)|E(?:RRY(?:TOWN)?|MPLE)|I(?:CKFAW|OGA)|ORBERT)|N(?:E(?:W(?: "
+  "(?:(?:ORLEAN|ROAD)S|IBERIA|SARPY|ZION)|ELLTON|LLANO)|GREET)|A(?:T"
+  "(?:CH(?:ITOCHES|EZ)|ALBANY)|POLEONVILLE)|O(?:R(?:WOOD|CO)|BLE))|K"
+  "(?:E(?:(?:ITHVILL|ATCHI)E|N(?:TWOOD|NER)|LLY)|I(?:L(?:BOURNE|LONA"
+  ")|NDER)|R(?:OTZ SPRINGS|AEMER)|(?:APLA|OLI)N|URTHWOOD)|J(?:E(?:N("
+  "?:NINGS|A)|ANERETTE|FFERSON)|A(?:(?:MESTOW|CKSO)N|RREAU)|O(?:NES("
+  "?:VILLE|BORO)?|YCE)|IGGER)|V(?:I(?:(?:NTO|VIA)N|LLE PLATTE|DALIA|"
+  "OLET|CK)|E(?:N(?:TRESS|ICE)|RDA)|A(?:CHERIE|RNADO))|O(?:AK(?: (?:"
+  "GROV|RIDG)|DAL)E|(?:PELOUSA|TI)S|IL CITY|BERLIN|SCAR|LLA)|I(?:N(?"
+  ":DEPENDENCE|NIS)|(?:O[TW]|D)A|BERVILLE)|U(?:NCLE SAM|RANIA)|Z(?:A"
+  "CHARY|WOLLE)|YOUNGSVILLE|QUITMAN))))$"
+  ,
+  /* -- MA -- MA -- MA -- MA -- MA -- MA -- MA -- MA -- MA -- MA -- */
+  "(?:\\b)((?^:(?i:(?:W(?:E(?:ST(?: (?:B(?:R(?:IDGEWATER|OOKFIELD)|O"
+  "(?:YLSTON|XFORD)|ARNSTABLE)|S(?:(?:TOCKBRIDG|OMERVILL)E|PRINGFIEL"
+  "D)|H(?:A(?:TFIELD|RWICH)|YANNISPORT)|W(?:AR(?:EHAM|REN)|HATELY)|C"
+  "H(?:ESTERFIELD|ATHAM|OP)|M(?:ILLBURY|EDFORD)|T(?:OWNSEND|ISBURY)|"
+  "(?:FAL|YAR)MOUTH|NEW(?:BURY|TON)|(?:GROTO|LYN)N|(?:DENN|OT)IS|ROX"
+  "BURY)|(?:F(?:IEL|OR)|WOO)D|PORT(?: P(?:OIN)?T)?|O(?:VER AFB|N)|BO"
+  "ROUGH|HAMPTON|MINSTER)|LL(?:ESLEY(?: H(?:IL)?LS)?|FLEET)|N(?:DELL"
+  "(?: DEPOT)?|HAM)|YMOUTH|BSTER)| (?:S(?:(?:TOCKBRIDG|OMERVILL)E|PR"
+  "INGFIELD)|B(?:R(?:IDGEWATER|OOKFIELD)|ARNSTBLE)|(?:CHESTERFL|TOWN"
+  "SEN)D|H(?:YANNISPRT|ATFIELD)|(?:FAL|YAR)MOUTH)|I(?:N(?:CH(?:E(?:N"
+  "DON(?: SPRINGS)?|STER)|DON SPGS)|T(?:ER HILL|HROP)|DSOR)|L(?:LI(?"
+  ":AMS(?:BURG|TOWN)|MANSETT)|KINSONVIL?LE|MINGTON|BRAHAM))|A(?:R(?:"
+  "E(?:HAM)?|D HILL|WICK|REN)|(?:SHINGTO|TERTOW|BA)N|L(?:POLE|THAM|E"
+  "S)|(?:KEFIEL|YLAN)D|VERLEY|QUOIT)|H(?:IT(?:E HORSE BEACH|INSVILLE"
+  "|MAN)|T HORSE BCH|EELWRIGHT|ATELY)|O(?:R(?:THINGTON|CESTER|ONOCO)"
+  "|OD(?:S HO|VIL)LE|(?:LLASTO|BUR)N)|RENTHAM)|S(?:O(?:UTH(?: (?:W(?"
+  ":E(?:LLFLEET|YMOUTH)|AL(?:POLE|THAM))|D(?:E(?:ERFIELD|NNIS)|ARTMO"
+  "UTH)|HA(?:MILTON|RWICH|DLEY)|E(?:GREMONT|ASTON)|C(?:HATHAM|ARVER)"
+  "|L(?:ANCASTER|EE)|B(?:OSTON|ARRE)|ATTLEBORO|YARMOUTH|GRAFTON|ORLE"
+  "ANS)|B(?:OROUGH|RIDGE)|AMPTON|FIELD|WICK)|MER(?:VILLE|SET))| (?:D"
+  "(?:ARTMOUTH|EERFIELD)|WE(?:LLFLEET|YMOUTH)|(?:ROYALS|HAMIL)TON|CH"
+  "ELMSFORD|ATTLEBORO|LANCASTER|EGREMONT|YARMOUTH)|H(?:E(?:L(?:BURNE"
+  " F(?:AL)?LS|DONVILLE)|FFIELD|RBORN)|IRLEY(?: C(?:ENTE|T)R)?|A(?:T"
+  "TUCKVILLE|RON)|(?:REW|UTE)SBURY)|A(?:L(?:ISBURY(?: B(?:EA)?CH)?|E"
+  "M)|GAMORE(?: B(?:EA)?CH)?|ND(?:ISFIELD|WICH)|UGUS|VOY)|T(?:O(?:NE"
+  "H(?:ILL COL(?:LEGE)?|AM)|CKBRIDGE|UGHTON|W)|ILL RIVER|URBRIDGE|ER"
+  "LING)|I(?:LVER BEACH|MONS ROCK|ASCONSET)|P(?:(?:RINGFIE|F)LD|ENCE"
+  "R)|U(?:NDERLAND|DBURY|TTON)|WA(?:MPSCOTT|NSEA)|CITUATE|QUANTUM|EE"
+  "KONK)|N(?:O(?:R(?:T(?:H(?: (?:C(?:H(?:ELMSFORD|ATHAM)|A(?:MBRIDGE"
+  "|RVER))|A(?:TTLEBORO|MHERST|NDOVER|DAMS)|(?:(?:MARSH|HAT)FIEL|OXF"
+  "OR)D|(?:PEMBROK|SCITUAT|UXBRIDG)E|E(?:AST(?:HAM|ON)|GREMONT)|B(?:"
+  "ROOKFIELD|ILLERICA)|D(?:ARTMOUTH|IGHTON)|W(?:EYMOUTH|ALTHAM)|FALM"
+  "OUTH|GRAFTON|READING|QUINCY|TRURO)|FIELD(?: M(?:OUN)?T HERMON)?|B"
+  "(?:OROUGH|RIDGE)|AMPTON)|ON)|W(?:ELL|OOD)|FOLK)|N(?:ANTUM|QUITT))"
+  "|E(?:W(?:TON(?: (?:L(?:OWER FALLS| F)|U(?:PPER FALLS| F)|H(?:IGHL"
+  "AN|L)DS|CENT(?:ER|RE))|VILLE)?| (?:MARLBORO(?:U(?:GH)?)?|B(?:RAIN"
+  "TREE|EDFORD)|ASHFORD|SALEM|TOWN)|BURY(?:PORT)?)|EDHAM(?: H(?:EIGH"
+  "|G)TS)?)| (?:(?:PEMBROK|SCITUAT|UXBRIDG)E|B(?:ROOKFIELD|ILLERICA)"
+  "|C(?:HELMSFORD|AMBRIDGE)|D(?:ARTMOUTH|IGHTON)|(?:MARSH|HAT)FIELD|"
+  "(?:FAL|WEY)MOUTH|ATTLEBORO|EGREMONT)|A(?:(?:NTUCKE|HAN)T|TICK)|UT"
+  "TING LAKE)|M(?:A(?:R(?:S(?:HF(?:IELD(?: HILLS)?|LD HLS)|TONS M(?:"
+  "IL)?LS)|LBOROUGH|BLEHEAD|ION)|N(?:CH(?:ESTER(?: BY THE SEA)?|AUG)"
+  "|SFIELD|OMET)|TTAP(?:OISETT|AN)|SHPEE|YNARD|LDEN)|I(?:L(?:L(?:(?:"
+  "ERS FALL|I)S| RIVER|VILLE|BURY)|TON(?: V(?:ILLAGE|LG))?|FORD)|DDL"
+  "E(?:BORO(?:UGH)?|FIELD|TON)|SSION HILL|NOT)|O(?:N(?:T(?:(?:GOMER|"
+  "ERE)Y|AGUE)|UMENT B(?:EA)?CH|RO(?:E BRIDG)?E|PONSETT|SON)|UNT (?:"
+  "(?:WASHINGT|HERM)ON|TOM))|E(?:D(?:F(?:IEL|OR)D|WAY)|N(?:EMSHA|DON"
+  ")|RRIMAC|LROSE|THUEN)|T (?:WASHINGT|HERM)ON)|E(?:A(?:ST(?: (?:W(?"
+  ":A(?:TERTOWN|LPOLE|REHAM)|EYMOUTH)|(?:T(?:EMPLE|AUN)|ARLING|PRINC"
+  "E)TON|(?:D(?:OUGLA|ENNI)|O(?:RLEAN|TI))S|B(?:R(?:IDGEWATER|OOKFIE"
+  "LD)|OSTON)|F(?:ALMOUTH|REETOWN)|L(?:ONGMEADOW|YNN)|(?:SAND|HAR)WI"
+  "CH|CAMBRIDGE|MANSFIELD)|HAM(?:PTON)?|ON)| FALMOUTH)| (?:(?:(?:PRI"
+  "NC|TEMPL)E|ARLING)TON|BR(?:IDGEW(?:ATE|T)R|OOKFIELD)|(?:FALMOUT|S"
+  "ANDWIC)H|WA(?:TERTOWN|REHAM)|HA(?:MPTON|RWICH)|LONGMEADOW|CAMBRID"
+  "GE|MANSFIELD)|(?:GREMON|VERET)T|DGARTOWN|LMWOOD|RVING|SSEX)|B(?:R"
+  "(?:O(?:OK(?:LINE(?: V(?:ILLAGE|LG))?|FIELD)|CKTON)|I(?:DGEWATER|M"
+  "FIELD|GHTON)|A(?:NT ROCK|INTREE|DFORD)|YANTVILLE|EWSTER)|E(?:R(?:"
+  "(?:NARDSTO|LI)N|K(?:SHIRE|LEY))|L(?:CHERTOWN|LINGHAM|MONT)|DFORD|"
+  "VERLY|CKET)|O(?:STON(?: C(?:OLLEGE|LG))?|X(?:BORO(?:UGH)?|FORD)|("
+  "?:NDSVILL|URN)E|(?:YLS|L)TON)|A(?:(?:R(?:NSTABL|R)|LDWINVILL)E|Y "
+  "STATE V(?:ILLAGE|LG)|BSON PARK|SS RIVER)|U(?:ZZARDS BAY|RLINGTON|"
+  "CKLAND)|LA(?:CKSTONE|NDFORD)|ILLERICA|YFIELD)|H(?:A(?:R(?:VARD(?:"
+  " SQ(?:UARE)?)?|WICH(?: PORT)?|DWICK)|N(?:S(?:COM AFB|ON)|COCK|OVE"
+  "R)|T(?:(?:CHVILL|HORN)E|FIELD)|M(?:ILTO|PDE)N|YDENVILLE|VERHILL|["
+  "DW]LEY|LIFAX)|O(?:L(?:L(?:ISTON|AND)|BROOK|YOKE|DEN)|P(?:KINTON|E"
+  "DALE)|USATONIC)|U(?:(?:(?:BBARDS|NTING)T|DS)ON|MAROCK|LL)|Y(?:ANN"
+  "IS(?: PORT)?|DE PARK)|IN(?:SDALE|GHAM)|EATH)|C(?:H(?:A(?:R(?:L(?:"
+  "TON(?: (?:D(?:EPO?|P)T|CITY))?|E(?:STOWN|MONT))|TLEY)|THAM)|E(?:S"
+  "(?:T(?:ER(?:FIELD)?|NUT HILL)|HIRE)|L(?:MSFORD|SEA)|RRY VALLEY)|I"
+  "(?:COPEE|LMARK))|A(?:R(?:LISLE|VER)|MBRIDGE|TAUMET|NTON)|O(?:(?:H"
+  "ASSE|TUI)T|N(?:CORD|WAY)|LRAIN)|U(?:MM(?:INGTON|AQUID)|TTYHUNK|SH"
+  "MAN)|L(?:ARKSBURG|INTON)|ENTERVILLE)|A(?:S(?:H(?:L(?:EY FALLS|AND"
+  ")|B(?:URNHAM|Y)|FIELD)|SONET)|T(?:TLEBORO(?: F(?:AL)?LS)?|HOL)|RL"
+  "INGTON(?: (?:HEIG)?HTS)?|C(?:USHNET|CORD|TON)|M(?:ESBURY|HERST)|L"
+  "(?:LSTON|FORD)|UBURN(?:DALE)?|(?:BINGT|V)ON|(?:NDOV|Y)ER|QUINNAH|"
+  "GAWAM|DAMS)|L(?:E(?:(?:OMIN|ICE)STER|(?:XINGTO|YDE)N|NOX(?: DALE)"
+  "?|E(?:DS)?|VERETT)|A(?:KE(?: PLEASANT|VILLE)|N(?:CASTER|ESBORO)|W"
+  "RENCE)|I(?:N(?:COLN|WOOD)|TTLETON)|O(?:NGMEADOW|WELL)|U(?:NENBURG"
+  "|DLOW)|YNN(?:FIELD)?)|R(?:O(?:C(?:H(?:ESTER|DALE)|K(?:LAND|PORT))"
+  "|XBURY(?: (?:CROSS|X)ING)?|W(?:LEY|E)|SLINDALE|YALSTON)|A(?:YNHAM"
+  "(?: C(?:ENTE|T)R)?|NDOLPH)|E(?:AD(?:VILLE|ING)|HOBOTH|VERE)|U(?:S"
+  "SELL|TLAND)|ICHMOND)|G(?:R(?:E(?:EN(?: HARBOR|FIELD|BUSH)|AT BARR"
+  "INGTON)|O(?:VE(?: HALL|LAND)|TON)|A(?:N(?:VILLE|BY)|FTON))|(?:T B"
+  "ARRINGTO|EORGETOW|OSHE)N|L(?:OUCESTER|ENDALE)|A(?:Y HEAD|RDNER)|I"
+  "L(?:BERTVILLE|L))|P(?:R(?:I(?:DES CR(?:OSSI|SS)NG|NCETON)|OVINCET"
+  "OWN)|E(?:(?:TERS|L)HAM|PPERELL|MBROKE|ABODY|RU)|L(?:AIN(?:FIELD|V"
+  "ILLE)|YM(?:OUTH|PTON))|I(?:TTSFIELD|NEHURST)|A(?:LMER|XTON)|HILLI"
+  "PSTON|OCASSET)|D(?:O(?:(?:RCHEST(?:(?:ER CENT)?E|R CT)|VE)R|UGLAS"
+  ")|E(?:NNIS(?: ?PORT)?|ERFIELD|DHAM|VENS)|U(?:DLEY(?: HILL)?|NSTAB"
+  "LE|XBURY)|A(?:RTMOUTH|NVERS|LTON)|R(?:ACUT|URY)|IGHTON)|T(?:U(?:F"
+  "TS UNIV(?:ERSITY)?|RNERS FALLS)|E(?:ATICKET|MPLETON|WKSBURY)|O(?:"
+  "(?:WNSE|LLA)N|PSFIEL)D|H(?:REE RIVERS|ORNDIKE)|Y(?:NGSBORO|RINGHA"
+  "M)|AUNTON|RURO)|F(?:A(?:L(?:L RIVER|MOUTH)|IRHAVEN|YVILLE)|I(?:TC"
+  "HBURG|SKDALE)|O(?:RESTDALE|XBORO)|RA(?:MINGHAM|NKLIN)|LOR(?:ENCE|"
+  "IDA)|EEDING HILLS)|O(?:AK(?: BLUFFS|HAM)|R(?:LEANS|ANGE)|TIS(?: A"
+  "NGB)?|CEAN BLUFF|STERVILLE|XFORD|NSET)|V(?:I(?:LLAGE OF NAGOG WOO"
+  "DS|NEYARD H(?:AVE|V)N)|LG NAGOG WDS)|U(?:P(?:HAMS CORNER|TON)|XBR"
+  "IDGE)|I(?:NDIAN ORCH(?:ARD)?|PSWICH)|J(?:AMAICA PLAI|EFFERSO)N|K("
+  "?:ATES CORNER|INGSTON)|YARMOUTH PORT|QUINCY))))$"
+  ,
+  /* -- MD -- MD -- MD -- MD -- MD -- MD -- MD -- MD -- MD -- MD -- */
+  "(?:\\b)((?^:(?i:(?:C(?:H(?:E(?:S(?:APEAK(?:E (?:C(?:IT)?Y|BEACH)|"
+  " BCH)|TER(?:TOWN)?)|V(?:Y CHASE|ERLY)|LTENHAM|WSVILLE)|A(?:RL(?:O"
+  "TTE? HALL|ESTOWN)|(?:NC|S)E|PTICO)|URCH(?: (?:CREEK|HILL)|VILLE|T"
+  "ON)|IL(?:LUM|DS))|O(?:L(?:(?:UMBI|OR)A|TONS POINT|LEGE PARK|MAR M"
+  "ANOR|ESVILLE)|CK(?:YS(?: HT VLY|VIL)|EYSVILLE)|R(?:RIGANVILLE|DOV"
+  "A)|TTAGE CITY|BB ISLAND|OKSVILLE|NOWINGO|MPTON)|A(?:P(?:ITOL H(?:"
+  "EIGH|G)TS|E SAINT CLAIRE)|L(?:IFORNIA|VERTON|LAWAY)|M(?:P SPRINGS"
+  "|BRIDGE)|(?:BIN JOH|VETOW)N|(?:TONSVILL|SCAD)E|R(?:DIFF|ROLL))|R("
+  "?:O(?:(?:CHER|FT)ON|WNSVILLE)|(?:E(?:SAPTOW|LLI)|UMPTO)N|ISFIELD|"
+  "APO)|L(?:A(?:RKS(?:VILLE|BURG)|IBORNE)|E(?:AR SPRING|MENTS)|I[FN]"
+  "TON)|U(?:MBERLAND|RTIS BAY)|E(?:NTREVILLE|CILTON)|PE ST CLAIRE)|S"
+  "(?:A(?:INT (?:M(?:ARYS(?: CITY)?|ICHAELS)|(?:CHARL|INIGO|JAM)ES|L"
+  "EONARD)|N(?:DY SPRING|G RUN)|(?:BILLASVILL|VAG)E|LISBURY)|T(?: M("
+  "?:ARYS CITY|ICHAELS)|EVENS(?:VILLE|ON)|HRN MD FAC|ILL POND|OCKTON"
+  "|REET)|P(?:AR(?:KS(?: GLENCOE?)?|ROWS P(?:OIN)?T)|RING(?: GAP|DAL"
+  "E)|ENCERVILLE)|H(?:A(?:RP(?:SBURG|TOWN)|DY SIDE|LLMAR)|ERWOOD(?: "
+  "F(?:ORE|R)ST)?|OWELL)|U(?:B(?:URB MARYLAN|N M)D FAC|(?:NDER|IT)LA"
+  "ND|DLERSVILLE)|E(?:A(?:T PLEASANT|BROOK)|VERN(?:A PARK)?|CRETARY)"
+  "|O(?:UTHERN MD FACILITY|LOMONS)|I(?:LVER SPRING|MPSONVILLE)|C(?:A"
+  "GGSVILLE|OTLAND)|WAN(?: POINT|TON)|MITHSBURG|YKESVILLE|NOW HILL)|"
+  "B(?:R(?:O(?:O(?:K(?:L(?:ANDV(?:ILLE|L)|YN(?: PARK)?)|EVILLE)|MES "
+  "IS(?:LAND)?)|WNSVILLE)|A(?:D(?:DOCK (?:HEIG)?HTS|SHAW)|NDYWINE)|Y"
+  "AN(?:S ROAD|TOWN)|ENTWOOD|UNSWICK|INKLOW)|E(?:N(?:TLEY SP(?:RIN)?"
+  "GS|EDICT|SON)|L(?: A(?:LTON|IR)|TSVILLE|CAMP)|T(?:H(?:LEHEM|ESDA)"
+  "|TERTON)|R(?:WYN (?:HEIG)?HTS|LIN)|VERLEY BCH|ALLSVILLE)|A(?:R(?:"
+  "NESVILLE|CLAY|STOW|TON)|L(?:TIMORE|DWIN)|INBRIDGE)|I(?:(?:SHOPVIL"
+  "L|VALV)E|G (?:SPRING|POOL)|TTINGER)|U(?:R(?:KITT|TON)SVILLE|CKEYS"
+  "TOWN|SHWOOD|TLER)|O(?:ONSBORO|RING|ZMAN|WIE|YDS)|L(?:ADENSBURG|OO"
+  "MINGTON)|WI AIRPORT)|M(?:A(?:R(?:Y(?:LAND (?:CITY|LINE)|DEL)|DELA"
+  "(?: SP(?:RIN)?GS)?|ION(?: STA(?:TION)?)?|LOW H(?:EIGH|G)TS|RIOTTS"
+  "V(?:ILLE|L)|BURY)|N(?:CHESTER|OKIN)|D(?:ISON|DOX)|UGANSVILLE|SSEY"
+  "|YO)|O(?:UNT(?: (?:WASHINGTON|VICTORIA|RAINIER|SAVAGE|AIRY)|AIN L"
+  "AKE PARK)|N(?:T(?:GOM(?:ERY VILLAGE|RY VLG)|PELIER)|ROVIA|KTON)|R"
+  "GANZA)|I(?:D(?:DLE(?: RIVER|BURG|TOWN)|L(?:OTHIAN|AND))|LL(?:ERS("
+  "?:VILLE)?|INGTON)|TCHELLVILLE)|T(?: (?:WASHINGTON|LAKE PARK|VICTO"
+  "RIA)|IN LK PARK)|C(?:D(?:ONOGH RUN|ANIEL)| HENRY|COOLE)|(?:ECHANI"
+  "CSVI?|YERSVI)LLE|NT LAKE PARK|D CITY)|L(?:A(?:N(?:DOVER(?: H(?:IL"
+  ")?LS)?|HAM(?: SEABROOK)?|GLEY PARK|SDOWNE)|(?:(?:YTONSVIL|VA)L|KE"
+  " SHOR)E|DIESBURG| PLATA|UREL|RGO)|I(?:N(?:THICUM(?: (?:HEIG)?HTS)"
+  "?|K?WOOD|EBORO)|(?:BERTYTOW|SBO)N|TTLE ORLEANS)|O(?:N(?:ACONING|G"
+  " GREEN)|(?:CH RAVE|THIA)N|VEVILLE)|U(?:TH(?:ERVILLE(?: TIMONIUM)?"
+  "|VLE TIMON)|SBY|KE)|E(?:(?:ONARD|WIS)TOWN|XINGTON P(?:AR)?K)|TL O"
+  "RLEANS|YNCH)|W(?:E(?:ST(?: (?:HYATTSVILLE|FRIENDSHIP|RIVER)|(?:MI"
+  "NST|OV)ER|ERNPORT|LAKE)|LCOME|NONA)|O(?:O(?:D(?:LA(?:ND BCH|WN)|S"
+  "(?:BORO|TOCK)|BINE)|LFORD)|RTON)|A(?:SHINGT(?:ON GROVE|N GRV)|L(?"
+  ":KERSVILLE|DORF)|RWICK)|H(?:ITE(?: (?:PLAINS|MARSH|HALL)|FORD)|AL"
+  "EYVILLE|EATON)|I(?:LL(?:IAMSPORT|ARDS)|N(?:DSOR MILL|GATE)|TTMAN)"
+  "| (?:HYATTSVILLE|FRIENDSHIP|BETHESDA)|YE MILLS)|P(?:O(?:RT (?:REP"
+  "UBLIC|DEPOSIT|TOBACCO)|(?:OLES|WELL)VILLE|INT OF ROCKS|COMOKE CIT"
+  "Y|MFRET|TOMAC)|A(?:R(?:K(?: HALL|VILLE|TON)|SONSBURG)|T(?:UXENT R"
+  "IV(?:ER)?|APSCO)|SADENA)|R(?:I(?:NCE(?: FREDERICK|SS ANNE)|CE)|NC"
+  " FREDERCK|ESTON)|I(?:N(?:EY POINT|TO)|(?:KE|TT)SVILLE|SGAH)|ERRY("
+  "?: (?:POINT|HALL)|VILLE|MAN)|T OF ROCKS|YLESVILLE|HOENIX)|F(?:O(?"
+  ":R(?:T (?:(?:(?:GEORGE G )?MEAD|RITCHI)E|WASHINGTON|DETRICK|HOWAR"
+  "D)|EST(?: H(?:(?:EIGH)?TS|ILL)|VILLE)|K)|WBELSBURG)|R(?:IENDS(?:V"
+  "ILLE|HIP)|E(?:DERICK|ELAND)|OSTBURG|UITLAND|ANKLIN)|A(?:IR(?:MOUN"
+  "T(?: H(?:EIGHTS|GT))?|PLAY)|LLSTON|ULKNER)|(?:U(?:NKSTOW|LTO)|T W"
+  "ASHINGTO)N|I(?:SHING CREEK|NKSBURG)|EDERALSBURG|LINTSTONE)|G(?:R("
+  "?:E(?:EN(?:(?:MOUN|BEL)T|SBORO)|AT MILLS)|A(?:(?:N(?:TSVILL|IT)|S"
+  "ONVILL)E|CEHAM))|A(?:RR(?:ETT PARK|ISON)|ITHER(?:SBURG)?|LE(?:SVI"
+  "LLE|NA)|MBRILLS|PLAND)|L(?:EN(?: (?:BURNIE|ECHO|ARM)|(?:N DAL|CO)"
+  "E|ARDEN|WOOD|ELG)|YNDON)|I(?:BSON ISLAND|RDLETREE)|O(?:L(?:DSBORO"
+  "|TS)|VANS)|E(?:ORGE|RMAN)TOWN|UNPOWDER|WYNN OAK)|H(?:A(?:(?:VRE D"
+  "E GRAC|LETHORP)E|N(?:COCK|OVER)|R(?:MANS|WOOD)|GERSTOWN|MPSTEAD)|"
+  "I(?:LL(?:CREST H(?:EIGH|G)?TS|SBORO)|GH(?:LAND(?: BCH|TOWN)?|FIEL"
+  "D))|U(?:NT(?: VALLEY|INGTOWN)|GHESVILLE|RLOCK|TTON)|E(?:(?:(?:NDE"
+  "RS|BR)O|LE)N|REFORD)|Y(?:ATTS(?:VILLE|TOWN)|DES)|OLL(?:AND POINT|"
+  "YWOOD)|VRE DE GRACE)|N(?:O(?:RTH(?: (?:B(?:E(?:THESDA|ACH)|RENTWO"
+  "(?:OD)?)|E(?:NGLEWOOD|AST)|POTOMAC)|WOOD)| (?:BRENTWOOD|POTOMAC)|"
+  "TTINGHAM)|E(?:W(?: (?:M(?:ARKET|IDWAY)|CARROLLTO?N|WINDSOR)|BURG|"
+  "COMB|ARK)|AVITT)| (?:B(?:RENTWOOD|ETHESDA)|ENGLEWOOD|POTOMAC)|A(?"
+  ":N(?:TICOKE|JEMOY)|VAL ACADEMY))|R(?:O(?:CK(?:(?:Y RIDG|VILL)E| ("
+  "?:POINT|HALL))|(?:LAND PAR|YAL OA)K|SE(?: HAVEN|DALE)|HRERSVILLE)"
+  "|I(?:V(?:IERA BEACH|ERDALE|A)|D(?:GE(?:LY)?|ERWOOD)|S(?:ING SU|O)"
+  "N)|A(?:NDALLSTOWN|SPEBURG|WLINGS)|E(?:ISTERSTOWN|HOBETH)|U(?:SSET"
+  "T|XTON)|HODESDALE)|D(?:A(?:R(?:(?:LINGTO|NESTOW)N|ES BEACH)|M(?:E"
+  "(?:S QUARTER|RON)|ASCUS)|VIDSONVILLE|NIELS|YTON)|E(?:AL(?: ISLAND"
+  "|E)|NT(?:SVILLE|ON)|(?:LMA|TOU)R|ER PARK|RWOOD)|I(?:STRICT (?:HEI"
+  "G)?HTS|CKERSON)|R(?:AYDEN|UID)|UN(?:DAL|KIR)K|O(?:WELL|UBS))|A(?:"
+  "N(?:NAPOLIS(?: J(?:UNCTION|CT))?|DREWS A(?:IR FORCE BASE|FB))|B(?"
+  ":E(?:R(?:DEEN(?: PROVING GROUND)?| PROV GRD)|LL)|INGDON)|R(?:LING"
+  "TON|BUTUS|NOLD)|D(?:AMSTOWN|ELPHI)|S(?:PEN HILL|HTON)|CC(?:IDENT|"
+  "OKEEK)|QUASCO|VENUE|LLEN)|E(?:L(?:L(?:ICOTT CITY|ERSLIE)|K(?: MIL"
+  "LS|RIDGE|TON)|DERSBURG)|A(?:ST(?: (?:NEW MARKET|CASE)|PORT|ON)|RL"
+  "EVILLE)|D(?:GE(?:W(?:ATER(?: BCH)?|OOD)|MERE)|EN)|CKHART MINES| N"
+  "EW MARKET|MMITSBURG|UDOWOOD|SSEX|WELL)|T(?:A(?:YLORS IS(?:LAND)?|"
+  "LL TIMBERS|KOMA PARK|NEYTOWN)|RA(?:CYS L(?:ANDIN|ND)G|PPE)|EMPLE("
+  "?: HILLS|VILLE)|I(?:LGHMAN|MONIUM)|O(?:DDVILLE|WSON)|Y(?:LERTO|AS"
+  "KI)N|USCARORA|HURMONT)|U(?:P(?:P(?:ER(?: (?:FA(?:IRM(?:OUN)?T|LLS"
+  ")|MARLBORO)|CO)|R MARLBORO)|R MARLBORO)|NI(?:ON(?: BRIDG|VILL)E|V"
+  "ERSITY PA(?:RK)?)|RBANA)|O(?:CEAN (?:PI?NES|CITY)|X(?:ON HILL|FOR"
+  "D)|WING(?:S MILL)?S|L(?:DTOWN|NEY)|RCHARD BEACH|AKLAND|DENTON|ELL"
+  "A)|K(?:E(?:N(?:NEDYVILLE|SINGTON)|EDYSVILLE|TTERING|YMAR)|I(?:NGS"
+  "VILLE|TZMILLER)|NOXVILLE)|I(?:N(?:DIAN HEAD|GLESIDE)|(?:JAMSVILL|"
+  "SSU)E|LCHESTER|RONSIDES)|J(?:E(?:FFERSON|NNINGS|SSUP)|A(?:RRETTS|"
+  "CKSON)VILLE|OPPA)|QU(?:EEN(?: ANNE|STOWN)|ANTICO)|V(?:ALLEY LEE|I"
+  "ENNA)))))$"
+  ,
+  /* -- ME -- ME -- ME -- ME -- ME -- ME -- ME -- ME -- ME -- ME -- */
+  "(?:\\b)((?^:(?i:(?:S(?:O(?:UTH(?: (?:G(?:OULDSBORO|ARDINER)|B(?:E"
+  "RWICK|RISTOL)|P(?:ORTLAND|ARIS)|C(?:ASCO|HINA)|HARPSWELL|THOMASTO"
+  "N|FREEPORT|WINDHAM)|WEST H(?:ARBO|B)R|PORT)|MERVILLE|RRENTO|LON)|"
+  "A(?:N(?:DY (?:(?:R(?:IVE|V)R PL|POIN)T|BAY TWP)|GERVILLE|FORD)|IN"
+  "T (?:A(?:GATHA|LBANS)|FRANCIS|GEORGE|DAVID)|L(?:SBURY COVE|EM TWP"
+  ")|RGENTVILLE|BATTUS|CO)|T(?:O(?:CK(?:TON SP(?:RIN)?GS|HOLM)|N(?:I"
+  "NGTON|EHAM)|W)|E(?:(?:TSO|UBE)N|EP FALLS)|A(?:CYVILLE|NDISH|RKS)|"
+  "R(?:ATTON|ONG)| JOHN PLT|ILLWATER)|E(?:B(?:A(?:SCO EST(?:ATE)?S|G"
+  "O(?: LAKE)?)|OEIS PLT|EC)|A(?:L (?:HARBOR|COVE)|RS(?:MON|POR)T)|D"
+  "GWICK)|H(?:ER(?:MAN(?: (?:STA(?:TION)?|MILLS))?|IDAN)|A(?:PLEIGH|"
+  "WMUT)|IRLEY MILLS)| (?:G(?:OULDSBORO|ARDINER)|HARPSWELL|THOMASTON"
+  "|FREEPORT|PORTLAND)|I(?:LVER RIDGE(?: TWP)?|NCLAIR|DNEY)|PR(?:ING"
+  "(?:FIELD|VALE)|UCE HEAD)|W(?:AN(?:S ISLAND|VILLE)|EDEN)|U(?:LLIVA"
+  "N|MNER|NSET|RRY)|M(?:YRNA MILLS|ITHFIELD)|QUIRREL IS(?:LAND)?|CAR"
+  "BOROUGH|KOWHEGAN)|C(?:A(?:R(?:R(?:YING PLACE TOWN TWP|ABASSETT VA"
+  "LLEY|OLL PLT)|A(?:BASET VLY|TUNK)|Y(?:NG PL TWP| PLT)|(?:DVILL|TH"
+  "AG)E|IBOU|MEL)|P(?:E (?:(?:PORPOIS|COTTAG)E|ELIZ(?:ABETH)?|NEDDIC"
+  "K)|ITOL IS(?:LAND)?)|S(?:T(?:LE HILL|INE)|WELL|CO)|M(?:BRIDGE|DEN"
+  ")|N(?:AA|TO)N|LAIS)|H(?:A(?:IN OF P(?:ONDS TWP|NDS)|(?:MBERLAI|PM"
+  "A)N|RL(?:ESTON|OTTE))|E(?:BEAGUE IS(?:LAND)?|STER(?:VILLE)?|RRYFI"
+  "ELD|LSEA)|INA(?: V(?:ILLAGE|LG))?)|O(?:R(?:N(?:VILLE|ISH)|IN(?:NA"
+  "|TH)|EA)|LUMBIA(?: F(?:AL)?LS)?|(?:DYVILLE|PLIN) PLT|N(?:CORD|NOR"
+  ") TWP|OPER(?:S MILLS)?|BURN GORE|STIGAN)|U(?:MB(?:ERL(?:AND(?: (?"
+  ":FORESIDE|CENTER))?|ND CTR)| FORESIDE)|SHING(?: IS(?:LAND)?)?|(?:"
+  "NDYS HARBO|TLE)R)|R(?:O(?:SS LA?KE TWP|USEVILLE)|ANBERRY I(?:SLE)"
+  "?S|YSTAL)|L(?:I(?:F(?:F ISLAND|TON)|NTON)|AYTON LAKE)|ENTER(?: LO"
+  "VELL|VILLE)|YR PLT)|W(?:E(?:S(?:T(?: (?:B(?:OOTHBAY HARBOR|A(?:LD"
+  "WIN|TH)|ETHEL)|(?:ROCKPOR|TREMON|MINO)T|F(?:ARMINGTON|ORKS)|(?:NE"
+  "W|EN)FIELD|P(?:OLAND|ARIS)|SCARBOROUGH|KENNEBUNK|GARDINER)|(?:MAN"
+  "LAN|FIEL)D|PORT IS(?:LAND)?|BROOK|ON)|LEY)|L(?:L(?:INGTON|S)|D)|B"
+  "STER PLT|EKS MILLS)|I(?:N(?:T(?:ER(?:(?:VILLE PL|POR)T| HARBOR)|H"
+  "ROP)|D(?:HAM|SOR)|SLOW|N)|L(?:LI(?:AMSBURG TWP|MANTIC)|IAMSBG TWP"
+  "|TON)|SCASSET)|A(?:L(?:(?:LAGRAS|E)S|D(?:OBOR)?O|POLE|THAM)|(?:SH"
+  "(?:INGTO|BUR)|RRE)N|TER(?:VILLE|BORO|FORD)|(?:IT|YN|D)E)| (?:BO(?"
+  ":OTHB(?:AY HA(?:RBOR)?|Y HBR)|WDOIN)|SCARBOROUGH|FARMINGTON|KENNE"
+  "BUNK)|OO(?:DLAND(?: WASHINGTON COUNTY)?|LWICH)|HIT(?:NEYVILLE|EFI"
+  "ELD|ING)|NTERVLLE PLT|YTOPITLOCK)|B(?:R(?:O(?:WN(?:V(?:ILLE(?: JU"
+  "NCTION)?|LLE JCT)|FIELD)|OK(?:S(?:VILLE)?|(?:LI|TO)N))|I(?:DG(?:E"
+  "WATER|TON)|GHTON PLT|STOL)|AD(?:FORD|LEY)|E(?:MEN|WER)|YANT POND|"
+  "UNSWICK)|E(?:L(?:GRADE(?: L(?:AKE|K)S)?|(?:FAS|MON)T)|A(?:VER COV"
+  "E|LS)|N(?:EDICTA|TON)|R(?:NARD|WICK)|DDINGTON|THEL)|A(?:R(?: (?:H"
+  "ARBOR|MILLS)|NARD TWP|ING PLT)|ILEY(?: ISLAND|VILLE)|N(?:CROFT|GO"
+  "R)|SS HARBOR|TH)|U(?:CK(?:S(?: HARBOR|PORT)|FIELD)|R(?:LINGTON|NH"
+  "AM)|STINS IS(?:LAND)?|XTON)|I(?:DDEFORD(?: P(?:OO)?L)?|RCH (?:HAR"
+  "BOR|ISLAND)|NGHAM)|O(?:OTHBAY(?: H(?:ARBO|B)R)?|W(?:DOIN(?:HAM)?|"
+  "ERBANK))|L(?:A(?:NCHARD TWP|INE)|UE HILL)|YRON)|M(?:A(?:T(?:TA(?:"
+  "MISC(?:ONTIS)? TWP|WAMKEAG)|INICUS)|C(?:HIAS(?:PORT)?|WAHOC PLT| "
+  "MAHAN)|R(?:S(?:HFIELD| HILL)|IAVILLE)|D(?:RID TWP|AWASKA|ISON)|S("
+  "?:ON TWP|ARDIS)|YFIELD TWP|NCHESTER|PLETON|XFIELD)|O(?:N(?:T(?:IC"
+  "ELLO|VILLE)|(?:HEGA|SO)N|MOUTH|ROE)|UNT (?:DESERT|VERNON|CHASE)|X"
+  "IE GORE(?: TWP)?|O(?:SE RIVER|DY)|R(?:O PLT|RILL)|LUNKUS TWP|SCOW"
+  ")|E(?:D(?:DYBEMPS|FORD|OMAK|WAY)|R(?:E POINT|RILL|CER)|CHANIC F(?"
+  ":AL)?LS|XICO)|I(?:L(?:LINOCKET|TON TWP|BRIDGE|FORD|O)|N(?:TURN|OT"
+  ")))|N(?:O(?:R(?:TH(?: (?:S(?:HAPLEIGH|ULLIVAN)|B(?:RIDGTON|ERWICK"
+  ")|WATER(?:BORO|FORD)|(?:MON|YAR)MOUTH|(?:ANSO|HAVE)N|NEW PORTLAND"
+  "|VASSALBORO|FRYEBURG|TURNER|JAY)|EAST H(?:ARBO|B)R|FIELD|PORT)|RI"
+  "DGEWOCK|WAY)|BLEBORO)|EW(?: (?:(?:GLOUCESTE?|HARBO)R|(?:PORTLAN|V"
+  "INEYAR)D|S(?:HARO|WEDE)N|LIMERICK|CANADA)|CASTLE|BURGH|FIELD|AGEN"
+  "|PORT|RY)| (?:S(?:HAPLEIGH|ULLIVAN)|WATER(?:BORO|FORD)|(?:MON|YAR"
+  ")MOUTH|NEW PORTLA?ND|VASSALBORO|BRIDGTON|FRYEBURG)|A(?:SHVILLE PL"
+  "T|PLES))|E(?:A(?:ST(?: (?:(?:P(?:ARSONSFIEL|OLAN)|DIXFIEL|ORLAN)D"
+  "|M(?:ILLINOCKET|OXIE TWP|ACHIAS)|W(?:I(?:NTHROP|LTON)|ATERBORO)|B"
+  "(?:LUE HILL|OOTHBAY|ALDWIN)|VASSALBORO|LIVERMORE|ANDOVER|NEWPORT|"
+  "HOLDEN)|BROOK|PORT|ON)|GLE LAKE)| (?:M(?:ILLINOCKET|OXIE TWP)|(?:"
+  "VASSAL|WATER)BORO|PARSONFIELD|BLUE HILL|LIVERMORE|STONEHAM)|L(?:L"
+  "(?:IOTTSVILLE TWP|SWORTH)|IOT(?:SVLE TWP)?)|D(?:MUNDS TWP|DINGTON"
+  "|GECOMB|INBURG)|STCOURT STA(?:TION)?|BEEMEE TWP|NFIELD|MBDEN|USTI"
+  "S|XETER|TNA)|P(?:I(?:TTS(?:T(?:ON(?: ACADEMY GRANT TWP)?|N ACDMY)"
+  "|FIELD)|ERCE POND(?: TWP)?|NE POINT)|A(?:R(?:LIN P(?:ON)?D TWP|SO"
+  "NSFIELD|KMAN|IS)|L(?:ERMO|MYRA)|SSADUMKEAG|TTEN)|O(?:RT(?:(?:AG(?"
+  ":E LAK)?| CLYD)E|LAND|ER)|LAND(?: SPRING)?|ND COVE|WNAL)|E(?:R(?:"
+  "KINS TWP|HAM|RY|U)|M(?:AQUID|BROKE)|(?:JEP|NOB)SCOT|AKS ISLAND)|R"
+  "(?:E(?:NTISS TWP|SQUE ISLE)|OSPECT(?: H(?:ARBO|B)R)?|INCETON)|L(?"
+  ":(?:EASANT (?:P(?:OIN)?|RIDGE PL)|SNT RDG PL)T|YMOUTH)|HI(?:PPSBU"
+  "RG|LLIPS))|L(?:I(?:N(?:COLN(?:V(?:ILLE(?: CENTER)?|L CTR)| C(?:EN"
+  "TE|NT)R)?|NEUS)|T(?:TLE(?: D(?:IAMOND ISLAND|EER ISLE)|TON)|CHFIE"
+  "LD)|M(?:E(?:STONE|RICK)|INGTON)|VERMORE(?: F(?:AL)?LS)?|L(?:Y BAY"
+  " TWP|LE)|SBON(?: FALLS)?|BERTY)|A(?:(?:M(?:BERT LAK|OIN)|KEVILL|G"
+  "RANG)E|NG TWP)|O(?:NG (?:POND TWP|ISLAND)|RING CM CTR|[VW]ELL)|E("
+  "?:(?:WIST|BAN)ON|XINGTON TWP|E(?:DS)?|VANT)|TL(?: DEER|E DIA) IS|"
+  "U(?:DLOW|BEC)| L BEAN CO|YMAN)|F(?:R(?:E(?:NCH(?:TO?WN TWP|VILLE|"
+  "BORO)|E(?:MAN TWP|PORT|DOM))|YE(?: ISLAND|BURG)|ANK(?:FORT|LIN)|I"
+  "ENDSHIP)|A(?:RMING(?:T(?:ON(?: FALLS)?|N FLS)|DALE)|IRFIELD|LMOUT"
+  "H|YETTE)|ORT (?:KENT(?: MILLS)?|FAIRFIELD)|LETCHERS L(?:ANDING TW"
+  "P|DG)|T (?:FAIRFIELD|KENT MLS))|H(?:A(?:R(?:RI(?:NGT|S)ON|T(?:FOR"
+  "|LAN)D|BORSIDE|PSWELL|MONY)|M(?:(?:PDE|LI)N|MOND)|N(?:COCK|OVER)|"
+  "YNESVILLE|LLOWELL)|O(?:L(?:LIS CENTER|DEN)|(?:DGD|ULT)ON|WLAND|PE"
+  ")|E(?:R(?:SEY(?:TOWN TWP)?|MON)|BRON)|I(?:GHLAND PLT|NCKLEY|RAM)|"
+  "U(?:LLS COVE|DSON)|RSYTOWN TWP)|G(?:R(?:E(?:EN(?:V(?:ILLE(?: JUNC"
+  "TION)?|LLE JCT)|F(?:IE)?LD TWP|BUSH|WOOD|E)|AT (?:DIAMOND ISLA|PO"
+  ")ND)|A(?:ND (?:L(?:AKE STREA|K STR)M|ISLE)|Y)|T DIA IS)|AR(?:FIEL"
+  "D PLT|DINER|LAND)|LEN(?:WOOD PLT| COVE|BURN)|O(?:ULDSBORO|RHAM)|("
+  "?:UILFOR|ILEA)D|EORGETOWN)|D(?:E(?:N(?:N(?:YSVILLE|ISTOWN)|MARK)|"
+  "AD R(?:IVE|V)R TWP|ER ISLE|BLOIS|TROIT|DHAM|XTER|RBY)|I(?:AMOND ("
+  "?:IS(?:LAND)?|COVE)|X(?:FIELD|MONT))|A(?:N(?:FORTH|VILLE)|MARISCO"
+  "TTA|LLAS PLT|YTON)|R(?:E(?:W PLT|SDEN)|YDEN)|(?:OVE?|V)R FOXCROFT"
+  "|YER BROOK|URHAM)|A(?:L(?:B(?:ANY TWP|ION)|EXANDER|LAGASH|FRED|TO"
+  "N|NA)|R(?:GYLE TWP|ROWSIC|UNDEL)|U(?:(?:GUST|ROR)A|BURN)|D(?:AMST"
+  "OWN TWP|DISON)|(?:(?:PPLE|C)T|V)ON|T(?:KINSON|HENS)|M(?:HERST|ITY"
+  ")|N(?:DOVER|SON)|SHLAND|BBOT)|O(?:R(?:R(?:S ISLAND|INGTON)|NEVILL"
+  "E TWP|IENT|LAND|ONO)|L(?:D (?:ORCH(?:ARD BEA|D B)CH|TOWN)|AMON)|("
+  "?:AK(?:FIEL|LAN)|WLS HEA)D|T(?:IS(?:FIELD)?|TER CREEK)|X(?:FORD|B"
+  "OW)|CEAN PARK|GUNQUIT|QUOSSOC|SBORN)|R(?:O(?:CK(?:(?:LAN|WOO)D|PO"
+  "RT)|QUE BLUFFS|BBINSTON|UND POND|XBURY|ME)|UMFORD(?: (?:C(?:ENTE|"
+  "T)R|POINT))?|A(?:N(?:DOLPH|GELEY)|YMOND)|E(?:ADFIELD|ED PLT)|I(?:"
+  "CHMOND|PLEY))|T(?:H(?:O(?:MASTON|RNDIKE)|E FORKS PLT)|R(?:E(?:SCO"
+  "TT TWP|NTON|VETT)|OY)|E(?:NANTS H(?:ARBO|B)R|MPLE)|OPS(?:FIELD|HA"
+  "M)|ALMADGE|URNER)|I(?:S(?:L(?:E(?: (?:OF SPRINGS|AU HAUT)|S(?:BOR"
+  "O|FORD))|AND FALLS)| OF SPRINGS)|ND(?:IAN (?:STREAM(?: TWP)?|ISLA"
+  "ND|TWP)|USTRY))|K(?:E(?:N(?:NEBUNK(?:PORT)?|DUSKEAG|TS HILL)|ZAR "
+  "FALLS)|I(?:NG(?:MAN(?: TWP)?|FIELD)|TTERY(?: POINT)?)|NOX)|J(?:O("
+  "?:HNSON MOUNTAIN TWP|NES(?:BORO|PORT))|A(?:CK(?:MA|SO)N|Y)|HNSN M"
+  "TN TWP|EFFERSON)|V(?:A(?:N(?: BUREN|CEBORO)|SSALBORO)|E(?:RONA IS"
+  "LAND|AZIE)|I(?:NALHAVEN|ENNA))|U(?:P(?:PER FR(?:ENCHVILLE|NCHVL)|"
+  "TON)|NI(?:ON|TY))|Y(?:ORK(?: (?:HARBOR|BEACH))?|ARMOUTH)|QUIMBY))"
+  "))$"
+  ,
+  /* -- MH -- MH -- MH -- MH -- MH -- MH -- MH -- MH -- MH -- MH -- */
+  "(?:\\b)((?^:(?i:(?:MAJURO|EBEYE))))$"
+  ,
+  /* -- MI -- MI -- MI -- MI -- MI -- MI -- MI -- MI -- MI -- MI -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:INT (?:C(?:LAIR(?: SHORES)?|HARLES)|JO"
+  "(?:SEPH|HNS)|IGNACE|HELEN|LOUIS)|N(?:D(?: (?:CREEK|POINT|LAKE)|US"
+  "KY)|FORD)|U(?:LT S(?:AINTE)? MARIE|GATUCK)|G(?:INAW|OLA)|L(?:INE|"
+  "EM)|MARIA|RANAC|WYER)|T(?:E(?:RLING(?: (?:HEIG)?HTS)?|VENSVILLE|P"
+  "HENSON)|A(?:N(?:DISH|WOOD|TON)|MBAUGH|LWART)|(?: CL(?:AIR SHR|R S"
+  "HORE)|URGI)S|RON(?:ACH|GS)|OCKBRIDGE)|O(?:UTH(?: (?:B(?:OARDMAN|R"
+  "ANCH)|R(?:OCKWOOD|ANGE)|(?:HAVE|LYO)N)|FIELD|GATE)|MERSET(?: C(?:"
+  "ENTE|T)R)?|DUS)|P(?:R(?:ING(?:F(?:IELD(?: TOWNSHIP)?|LD TWP)| (?:"
+  "ARBOR|LAKE)|PORT)|UCE)|A(?:LDING|RTA))|H(?:E(?:LBY(?: T(?:OWNSHI|"
+  "W)P|VILLE)?|R(?:IDAN|WOOD)|PHERD)|AFTSBURG|INGLETON)|U(?:PERIOR T"
+  "(?:OWNSHI|W)P|M(?:PTER TWP|NER)|TTONS BAY|NFIELD)|E(?:LFRIDGE(?: "
+  "ANGB)?|NE(?:CA|Y)|BEWAING|ARS)|I(?:LVER(?: LAKE|WOOD)|DN(?:AW|EY)"
+  "|X LAKES)|C(?:H(?:OOLCRAFT|AFFER)|OTT(?:VILLE|S))| (?:BOARDMAN|RO"
+  "CKWOOD)|M(?:ITHS CREEK|YRNA)|YLVAN (?:BEACH|LAKE)|KAN(?:DIA|EE)|W"
+  "ARTZ CREEK|NOVER)|B(?:R(?:O(?:WN(?:ST(?:OWN(?: T(?:OWNSHI|W)P)?|W"
+  "N TWP)| CITY)|(?:OKLY|HMA|NSO)N|CKWAY)|U(?:CE(?: (?:(?:CROSS|X)IN"
+  "G|T(?:OWNSHI|W)P))?|NSWICK|TUS)|I(?:DG(?:E(?:WATER|PORT)|MAN)|(?:"
+  "GH|T)TON|MLEY)|E(?:(?:CKENRIDG|EDSVILL)E|THREN)|A(?:N(?:CH|T)|MPT"
+  "ON|DLEY))|E(?:R(?:RIEN (?:C(?:ENTE|T)R|SPR(?:IN)?GS)|GLAND|VILLE|"
+  "KLEY|LIN)|L(?:L(?:EV(?:ILL|U)|AIR)E|DING|MONT)|A(?:VER(?: ISLAND|"
+  "TON)|R LAKE)|N(?:T(?:ON HARBOR|LEY)|ZONIA)|(?:ECHWOO|DFOR)D|VERLY"
+  " HILLS|SSEMER|ULAH)|A(?:R(?:(?:AG|OD)A|TON CITY|K RIVER|RYTON|BEA"
+  "U)|Y (?:HARBOR|SHORE|CITY|PORT|VIEW)|N(?:(?:NISTE|GO)R|CROFT)|T(?"
+  ":TLE CREEK|H)|D AXE|LDWIN|ILEY)|L(?:OOM(?:F(?:IELD(?: (?:T(?:OWNS"
+  "HI|W)P|VILLAGE|HILLS))?|LD (?:HLS|TWP))|INGDALE)|A(?:CK RIVER|NCH"
+  "ARD)|ISSFIELD)|U(?:R(?:T(?:(?:CHVILL| LAK)E|ON)?|LINGTON|R OAK|NI"
+  "PS)|C(?:HANAN|KLEY))|I(?:R(?:MINGHAM|CH RUN)|G (?:RAPIDS|BAY)|NGH"
+  "AM FARMS|TELY)|O(?:IS BLANC IS(?:LAND)?|YNE (?:FALLS|CITY)|ON)|YR"
+  "ON(?: CENTER)?)|C(?:O(?:M(?:MERCE T(?:OWNSHI|W)P|STOC(?:K PAR)?K|"
+  "INS)|L(?:UMB(?:IAVILLE|US)|O(?:MA|N)|DWATER|EMAN)|P(?:PER (?:HARB"
+  "OR|CITY)|EMISH)|N(?:STANTINE|CORD|KLIN|WAY)|R(?:(?:NEL|A)L|UNNA)|"
+  "O(?:PERSVILLE|KS)|V(?:INGTON|ERT)|TTRELLVILLE|HOCTAH)|A(?:R(?:SON"
+  "(?: CITY|VILLE)|L(?:ETON|AND)|ROLLTON|P LAKE|NEY|O)|S(?:S(?:OPOLI"
+  "S| CITY)|EVILLE|NOVIA|PIAN|CO)|N(?:ADIAN LAKES?|NONSBURG|TON)|L(?"
+  ":EDONIA|UMET)|D(?:ILLAC|MUS)|MDEN|PAC)|L(?:A(?:R(?:K(?:S(?:VILLE|"
+  "TON)|LAKE)|E)|Y(?:TON(?: TWP)?)?|WSON)|I(?:NTON(?: T(?:OWNSHI|W)P"
+  ")?|FFORD|MAX|O)|(?:OVERDAL|YD)E)|H(?:A(?:RL(?:EVOIX|OTTE)|S(?:SEL"
+  "L|E)|MPION|NNING|THAM)|E(?:S(?:TERFIELD|ANING)|BOYGAN|LSEA)|I(?:P"
+  "PEWA LAKE|NA)|RISTMAS)|E(?:DAR(?: (?:SPRINGS|RIVER|LAKE)|VILLE)?|"
+  "NT(?:R(?:AL LAK|EVILL)|ER LIN)E|MENT CITY|RESCO)|R(?:OS(?:S VILLA"
+  "GE|WELL)|YSTAL(?: FALLS)?)|U(?:R(?:RAN|TIS)|STER))|M(?:A(?:R(?:(?"
+  ":(?:QU|L)ETT|YSVILL|N)E|I(?:NE CITY|ON)|CELLUS|ENISCO|SHALL|TIN)|"
+  "N(?:I(?:ST(?:IQU|E)E|TOU BEACH)|C(?:HESTER|ELONA)|TON)|C(?:KINA(?"
+  ":C IS(?:LAND)?|W CITY)|ATAWA|OMB)|Y(?:(?:VILL|BE)E|FIELD)|PLE (?:"
+  "RAPIDS|CITY)|DISON (?:HEIG)?HTS|S(?:S CITY|ON)|TTAWAN)|I(?:CHI(?:"
+  "GA(?:N (?:C(?:ENTE|T)R|METROPLEX)|MME)|ANA)|L(?:L(?:ERSBURG|INGTO"
+  "N|BROOK)|FORD|AN)|D(?:DLE(?:VILLE|TON)|LAND)|(?: METR|KAD)?O|NDEN"
+  " CITY)|O(?:UNT (?:(?:CLEMEN|MORRI)S|PLEASANT)|N(?:T(?:(?:AGU|ROS)"
+  "E|GOMERY)|ROE)|R(?:ENCI|RICE|LEY|AN)|S(?:HERVILLE|COW)|(?:TTVILL|"
+  "LIN)E|ORESTOWN|HAWK)|E(?:RRI(?:WEATHER|LL|TT)|(?:TAMOR|COST)A|N(?"
+  ":OMINEE|DON)|LVIN(?:DALE)?|(?:MPHI|AR)S|SICK)|U(?:S(?:KEGON(?: (?"
+  ":HEIG)?HTS)?|SEY)|N(?:I(?:SING|TH)|GER)|LL(?:ETT LAKE|IKEN)|IR)|C"
+  "(?: (?:MILLA|BAI)N|BRIDES)|T PLEASANT)|H(?:A(?:R(?:RI(?:S(?:ON(?:"
+  " T(?:OWNSHI|W)P)?|VILLE)?|ETTA)|B(?:OR (?:SP(?:RIN)?GS|BEACH|POIN"
+  "T)|ERT)|T(?:(?:FOR|LAN)D)?|SENS IS(?:LAND)?|PER WOODS|DWOOD|VEY)|"
+  "M(?:BURG(?: TWP)?|TRAMCK|ILTON)|(?:GAR SHORE|WK)S|S(?:TINGS|LETT)"
+  "|N(?:COCK|OVER)|ZEL PARK|DLEY|LE)|O(?:UGHTON(?: LAKE(?: HEIGHTS)?"
+  ")?|L(?:L(?:AND|Y)|T(?:ON)?)|W(?:ARD CITY|ELL)|P(?:KINS|E)|(?:ME|N"
+  "O)R|XEYVILLE|RTON)|U(?:BB(?:ARD(?: LAKE|STON)|ELL)|NTINGT(?:ON WO"
+  "O|N W)DS|DSON(?:VILLE)?|LBERT)|I(?:G(?:HLAND(?: PARK)?|GINS LAKE)"
+  "|CKORY C(?:ORNE|RN)RS|LL(?:SDALE|MAN))|E(?:R(?:MANSVILLE|RON|SEY)"
+  "|S(?:PERIA|SEL)|NDERSON|MLOCK)|(?:GHTN LK |TN LK HG)HTS)|W(?:A(?:"
+  "L(?:L(?:(?:OON|ED) LAK|AC)E|KER(?:VILLE)?|HALLA|DRON|ES)|T(?:ER(?"
+  ":FORD(?: TOWNSHIP)?|S(?:MEET)?|VLIET)|TON)|SHINGT(?:ON(?: T(?:OWN"
+  "SHI|W)P)?|N TWP)|Y(?:LAND|NE)|KEFIELD|RREN)|E(?:ST(?: (?:B(?:LOOM"
+  "FIELD|RANCH)|OLIVE)|PHALIA|LAND|ON)|(?:BBERVILL|TMOR)E|LLS(?:TON)"
+  "?|QUETONSING|IDMAN)|H(?:IT(?:E(?: (?:PI(?:GEON|NE)|CLOUD|LAKE)|HA"
+  "LL)|T(?:EMORE|AKER)|MORE LAKE)|EELER)|O(?:LVERINE(?: L(?:AKE|K))?"
+  "|OD(?:HAVEN|LAND))|I(?:L(?:LI(?:AMS(?:BURG|TON)|S)|SON)|XOM|NN)|Y"
+  "(?:ANDOTTE|OMING)| BLOOMFIELD)|P(?:O(?:RT(?: (?:H(?:URON|OPE)|ELI"
+  "ZABETH|SANILAC|AUSTIN)|LAND|AGE)|INT(?:E AUX PINS| AUX PIN)|TTERV"
+  "ILLE|MPEII|NTIAC|WERS|SEN)|E(?:R(?:R(?:ONVILLE|INTON|Y)|KINS)|T(?"
+  ":ERSBURG|OSKEY)|L(?:LSTON|KIE)|SHAWBESTOWN|ARL BEACH|NTWATER|WAMO"
+  "|CK)|A(?:R(?:CHMENT|ADISE|IS|MA)|L(?:M(?:YRA|ER|S)|O)|INESDALE|W "
+  "PAW)|I(?:NC(?:ONNING|KNEY)|(?:TTS|CK)FORD|ER(?:PORT|SON)|GEON)|R("
+  "?:ES(?:QUE ISLE|COTT)|(?:UDEN|ATT)VILLE|INCETON)|L(?:EASANT (?:R("
+  "?:IDGE|DG)|LAKE)|AINWELL|YMOUTH)|T ELIZABETH|ULLMAN)|G(?:R(?:A(?:"
+  "N(?:D(?: (?:(?:MARAI|RAPID)S|J(?:UNCTION|CT)|B(?:EACH|LANC)|HAVEN"
+  "|LEDGE)|VILLE)|T(?: T(?:OWNSHI|W)P)?)|SS LAKE|YLING|WN)|OSSE (?:P"
+  "OINTE(?: (?:(?:SHORE|FARM|WOOD)S|PARK))?|ILE)|E(?:EN(?:(?:LAN|WOO"
+  ")D|VILLE|BUSH)|GORY))|A(?:L(?:ESBURG|IEN)|RDEN(?: CITY)?|Y(?:LORD"
+  ")?|GETOWN|ASTRA|INES)|O(?:OD(?: HART|ELLS|ISON|RICH)|ETZVILLE|ULD"
+  " CITY|BLES|WEN)|L(?:EN(?:N(?:IE)?| ARBOR|DORA)|AD(?:STONE|WIN))|E"
+  "(?:ORGETOWN T(?:OWNSHI)?P|RMFASK|NESEE)|I(?:BRALTAR|LFORD)|ULLIVE"
+  "R|WINN)|L(?:A(?:KE(?: (?:L(?:EELANAU|INDEN)|O(?:DESSA|RION)|AN(?:"
+  "GELUS|N)|ISABELLA|STATION|GEORGE|CITY)|VI(?:LLE|EW)|LAND|PORT|SID"
+  "E)?|THRUP V(?:ILLAGE|LG)|M(?:BERTVILLE|ONT)|W(?:RENCE|TON)|C(?:HI"
+  "NE|OTA)|NS(?:ING|E)|INGSBURG| SALLE|URIUM|PEER)|I(?:N(?:COLN(?: P"
+  "ARK)?|WOOD|DEN)|T(?:TLE LAKE|CHFIELD)|MESTONE|VONIA)|E(?:(?:XING|"
+  "WIS)TON|ON(?:IDAS|ARD)|N(?:NON|OX)|VERING|LAND|SLIE|ROY)|U(?:(?:N"
+  "A PI|TH)ER|(?:DING|P)TON|ZERNE|M)|O(?:NG LAKE|RETTO|WELL)|Y(?:ONS"
+  "|NN))|R(?:O(?:C(?:HESTER(?: H(?:IL)?LS)?|K(?:(?:FOR|LAN|WOO)D)?)|"
+  "S(?:E(?: CITY|VILLE|BUSH)|COMMON)|(?:GERS CIT|THBUR|DNE)Y|M(?:ULU"
+  "S|EO)|YAL OAK|LLIN|OS)|I(?:VE(?:R(?:(?: ROUG|DAL|SID)E|VIEW)|S J("
+  "?:UNCTION|CT))|CH(?:(?:LA|MO)ND|VILLE)|(?:DGEWA|LE)Y|GA)|A(?:ISIN"
+  "V(?:ILLE|L) TWP|PID (?:RIVER|CITY)|Y(?: TWP)?|VENNA|MSAY|LPH|CO)|"
+  "E(?:E(?:D CITY|SE)|PUBLIC|ADING|DFORD|MUS)|U(?:SSELL IS(?:LAND)?|"
+  "(?:MEL|B)Y|DYARD|TH)|HODES)|F(?:R(?:E(?:E(?: SOIL|LAND|PORT)|NCHT"
+  "OWN|DERIC|MONT)|A(?:NK(?:ENMUTH|FORT|LIN)|SER)|UITPORT|ONTIER)|A("
+  "?:R(?:MINGT(?:ON(?: H(?:IL)?LS)?|N HLS)|WELL|GO)|IR(?: HAVEN|GROV"
+  "E|VIEW)|LMOUTH)|O(?:R(?:T GRATIOT|ESTVILLE)|ST(?:ER CITY|ORIA)|WL"
+  "ER(?:VILLE)?|UNTAIN)|E(?:N(?:NVILLE|WICK|TON)|R(?:RYSBURG|NDALE)|"
+  "LCH)|I(?:L(?:ER CITY|ION)|(?:FE LAK|BR)E)|L(?:AT ROCK|USHING|INT)"
+  "|ULTON)|A(?:L(?:L(?:E(?:N(?: PARK|DALE|TON)?|GAN)|OUEZ)|(?:ANSO|D"
+  "E)N|G(?:ONAC|ER)|B(?:ION|A)|M(?:ONT|A)|P(?:EN|H)A|TO)|U(?: (?:SAB"
+  "LE|TRAIN|GRES)|BURN(?: HILLS)?|GUSTA)|T(?:LA(?:NT(?:IC MINE|A)|S)"
+  "|HENS|TICA)|D(?:DISON(?: T(?:OWNSHI|W)P)?|RIAN|A)|R(?:(?:CADI|MAD"
+  ")A|GYLE|NOLD)|N(?:CHORVILLE|N ARBOR)|(?:ZALI|MAS|VOC)A|(?:PPLEGAT"
+  "|CM)E|(?:FT|KR)ON|HMEEK|SHLEY)|N(?:O(?:R(?:T(?:H(?: (?:ST(?:REET|"
+  "AR)|LAKEPORT|MUSKEGON|BRANCH|ADAMS)|VILLE(?: T(?:OWNSHIP|W))?|POR"
+  "T)|ON SHORES)|VELL|WAY)|TTAWA|VI)|E(?:W(?: (?:B(?:ALTIMORE|UFFALO"
+  "|OSTON)|H(?:UDSO|AVE)N|LOTHROP|TROY|ERA)|BERRY|AYGO|PORT)|GAUNEE)"
+  "|A(?:TIONAL (?:CITY|MINE)|SHVILLE|UBINWAY|POLEON|ZARETH|DEAU|HMA)"
+  "| (?:LAKEPORT|MUSKEGON)|I(?:SULA|LES)|UNICA)|E(?:A(?:ST(?: (?:GRA"
+  "ND RA(?:PIDS)?|L(?:ANSING|EROY)|DETROIT|JORDAN|CHINA|TAWAS)|PO(?:"
+  "INTE|RT)|LAKE)|GLE(?: (?:HARBO|RIVE)R)?|TON RAPIDS|U CLAIRE)|L(?:"
+  "K(?: RAPIDS|TON)|M(?: HALL|IRA)|LSWORTH|BERTA|WELL|SIE)|D(?:(?:EN"
+  "VILL|MOR)E|WARDSBURG)|S(?:SEXVILLE|CANABA)|(?:BEN JUNCTIO|WE)N|C("
+  "?:KERMAN|ORSE)|(?:NGADIN|RI)E|M(?:METT|PIRE)|UREKA|VART)|D(?:E(?:"
+  " (?:TOUR V(?:ILLAG|LL)E|WITT)|ARBORN(?: (?:HEIG)?HTS)?|C(?:KER(?:"
+  "VILLE)?|ATUR)|ER(?:FIELD|TON)|(?:TROI|WIT)T|FORD|LTON|XTER)|O(?:W"
+  "(?:AGIAC|LING)|DGEVILLE|LLAR BAY|UGLAS|RR)|R(?:UMMOND IS(?:LAND)?"
+  "|AYTON PL(?:AI)?NS|YDEN)|A(?:VIS(?:BURG|ON)|NSVILLE|GGETT|FTER)|U"
+  "(?:NDEE|RAND|TTON)|IMONDALE)|O(?:AK(?:L(?:AND(?: T(?:OWNSHI|W)P)?"
+  "|EY)| (?:GROVE|PARK))|N(?:(?:ONDAG|EKAM)A|TONAGON|AWAY|STED)|R(?:"
+  "(?:CHARD LAK|TONVILL)E|LEANS|ION)|T(?:(?:T(?:AWA|ER) LAK|ISVILL)E"
+  "|SEGO)|S(?:S(?:INEKE|EO)|HTEMO|CODA)|L(?:D MISSION|IVET)|W(?:ENDA"
+  "LE|OSSO)|(?:XFOR|VI)D|ME(?:NA|R)|CQUEOC|KEMOS|DEN)|T(?:R(?:E(?:ET"
+  "OPS VIL(?:LAGE)?|N(?:ARY|TON))|O(?:UT (?:CREEK|LAKE)|Y)|A(?:VERSE"
+  " CITY|UNIK)|UFANT)|H(?:REE (?:RIVER|OAK)S|OMPSON(?:VILLE)?)|E(?:M"
+  "PERANCE|CUMSEH|KONSHA)|U(?:S(?:COLA|TIN)|RNER)|O(?:PINABEE|IVOLA|"
+  "WER)|A(?:WAS CITY|YLOR)|WIN(?: LAKE|ING)|IPTON)|K(?:E(?:N(?:T(?: "
+  "CITY|WOOD|ON)|OCKEE|DALL)|W(?:EENAW BAY|ADIN)|EGO HARBOR|ARSARGE)"
+  "|I(?:N(?:GS(?:FORD|LEY|TON)|(?:CHELO|D)E|ROSS)|MBALL)|A(?:L(?:(?:"
+  "KASK|EV)A|AMAZOO)|(?:WKAW|R)LIN))|I(?:N(?:D(?:EPENDENCE|IAN RIVER"
+  ")|TERLOCHEN|GALLS|KSTER)|R(?:ON(?: (?:MOUNTAIN|RIVER)|WOOD|S)|A)|"
+  "(?:THAC|ONI)A|D(?:LEWILD|A)|MLAY CITY|SHPEMING)|V(?:A(?:N(?:D(?:E"
+  "RBILT|ALIA)| BUREN TWP)|SSAR)|E(?:R(?:NON(?: CITY)?|MONTVILLE)|ST"
+  "ABURG)|ICKSBURG|ULCAN)|J(?:O(?:NES(?:VILLE)?|HANNESBURG)|A(?:(?:M"
+  "ESTOW|CKSO)N|SPER)|E(?:NISON|ROME|DDO))|U(?:NI(?:ON(?: (?:CITY|LA"
+  "KE|PIER)|VILLE)?|V(?:ERSITY CENTE| CT)R)|TICA|BLY)|Y(?:PSILANTI|A"
+  "LE)|QUIN(?:NESEC|CY)|ZEELAND))))$"
+  ,
+  /* -- MN -- MN -- MN -- MN -- MN -- MN -- MN -- MN -- MN -- MN -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:INT (?:C(?:L(?:AIR|OUD)|HARLES)|P(?:AU"
+  "L(?: PARK)?|ETER)|(?:BONIFACIU|FRANCI)S|A(?:NTHONY|UGUSTA)|L(?:OU"
+  "IS PARK|EO)|M(?:ICHAEL|ARTIN)|J(?:OSEPH|AMES)|HILAIRE|STEPHEN|VIN"
+  "CENT)|U(?:K (?:CENTRE|RAPIDS)|M)|N(?:DSTONE|TIAGO|BORN)|R(?:GEANT"
+  "|TELL)|CRED HEART|GINAW|VAGE|WYER|BIN|LOL)|T(?: (?:ANTH(?:ONY(?: "
+  "VILLAGE)?|NY VLG)|(?:LOUIS|PAUL) PARK|BONIFACIUS)|A(?:N(?:CHFIELD"
+  "|TON)|RBUCK|PLES|CY)|E(?:WART(?:VILLE)?|(?:PH)?EN)|RA(?:NDQUIST|T"
+  "HCONA)|O(?:CKTO|RDE)N|URGEON LAKE|ILLWATER)|P(?:RING(?: (?:L(?:AK"
+  "E(?: PARK)?|K PK)|VALLEY|GROVE|PARK)|FIELD)|ICER)|O(?:U(?:TH (?:I"
+  "NTERNATIONAL FALLS|S(?:AIN)?T PAUL|HAVEN)|DAN)|LWAY)|H(?:E(?:(?:R"
+  "BUR|VLI)N|LLY)|A(?:KOPEE|FER)|OREVIEW)|I(?:LVER (?:CREEK|LAKE|BAY"
+  ")|DE LAKE)|W(?:A(?:N(?: RIVER|VILLE)|TARA)|IFT)|E(?:A(?:FORTH|RLE"
+  "S)|BEKA|DAN)|UN(?:FISH LAKE|BURG)|L(?:EEPY EYE|AYTON)|C(?:HROEDER"
+  "|ANDIA)| INTL FALLS|QUAW LAKE|VEA)|B(?:R(?:O(?:O(?:K(?:LYN (?:C(?"
+  ":ENTE|T)R|PARK)|S(?:TON)?| PARK)|TEN)|W(?:N(?:S(?:(?:VIL|DA)LE| V"
+  "ALLEY)|TON)|ERVILLE))|E(?:CKENRIDGE|EZY POINT|WSTER)|I(?:(?:CELY|"
+  "MSO)N|TT)|A(?:INERD|NDON|HAM)|UNO)|E(?:L(?:L(?:E PLAINE|CHESTER|I"
+  "NGHAM)|GRADE|TRAMI|VIEW)|A(?:VER (?:CREEK|BAY)|RDSLEY)|N(?:EDICT|"
+  "SON|A)|C(?:IDA|KER)|R(?:OUN|THA)|MIDJI|THEL|JOU)|A(?:R(?:N(?:ESVI"
+  "LLE|UM)|R(?:ETT|Y))|(?:TTLE LAK|UDETT)E|(?:BBIT|YPOR)T|(?:DG|XT|K"
+  ")ER|LATON|CKUS|GLEY)|L(?:O(?:OMING(?: PRAIRIE|TON)|MKEST)|U(?:E E"
+  "ARTH|FFTON)|A(?:CKDUCK|INE)|MNG PRAIRIE)|U(?:R(?:NS(?: T(?:OWNSHI"
+  "|WNSH)P|VILLE)|TRUM)|FFALO(?: LAKE)?|TTERFIELD|CKMAN|YCK|HL)|I(?:"
+  "G(?: (?:FALLS|LAKE)|ELOW|FORK)|R(?:D ISLAND|CHDALE)|NGHAM LAKE|WA"
+  "BIK)|O(?:W(?:STRING|LUS)|Y(?: RIVER|D)|RUP|VEY|CK)|YRON)|M(?:A(?:"
+  "R(?:I(?:NE (?:ON SAINT CROI|ST CR)X|ETTA)|(?:(?:KVIL|B)L|GI)E|(?:"
+  "SHA|CE)LL)|PLE(?: (?:(?:GROV|LAK)E|PLAIN)|WOOD|TON)|N(?:TORVILLE|"
+  "CHESTER|KATO)|D(?:ISON(?: LAKE)?|ELIA)|H(?:TO(?:MEDI|WA)|NOMEN)|("
+  "?:GNOLI|ZEPP)A|Y(?:NARD|ER)|KINEN|BEL|X)|I(?:N(?:N(?:E(?:T(?:ONKA"
+  "(?: (?:BEACH|MILLS))?|NKA (?:BCH|MLS)|RISTA)|SOTA (?:L(?:AKE|K)|C"
+  "ITY)|(?:ISK|OT)A|APOLIS)| CITY)|ETONKA (?:BCH|MLS))|L(?:A(?:CA|N)"
+  "|LVILLE|TONA|ROY)|DDLE RIVER|ZPAH)|O(?:UN(?:TAIN (?:IRON|LAKE)|D("
+  "?:S ?VIEW)?)|NT(?:(?:EVIDE|ICELL)O|GOMERY|ROSE)|R(?:RIS(?:TOWN)?|"
+  "(?:GA|TO)N|A)|O(?:SE LAKE|RHEAD)|TLEY)|E(?:N(?:DOTA(?: (?:HEIG)?H"
+  "TS)?|AHGA|TOR)|D(?:I(?:CINE LAKE|NA)|FORD)|R(?:RIFIELD|IDEN)|LR(?"
+  ":OS|UD)E|ADOWLANDS)|C(?:(?: GRAT|INTOS)H|GREGOR|KINLEY)|URDOCK|YR"
+  "TLE)|C(?:O(?:L(?:(?:(?:ERAI|OG)N|LEGEVILL)E|UMB(?:IA (?:HEIG)?HT|"
+  "U)S|D SPRING)|TT(?:ON(?:WOOD)?|AGE GROVE)|M(?:STOCK|FREY)|O(?:N R"
+  "APIDS|K)|R(?:CORAN|RELL)|URTLAND|HASSET|BDEN|KATO|NGER|SMOS)|L(?:"
+  "AR(?:K(?:S GROVE|FIELD)|A CITY|EMONT|ISSA)|E(?:AR(?: LAKE|BROOK|W"
+  "ATER)|VELAND|MENTS)|I(?:THERALL|NTON|MAX)|O(?:NTARF|QUET))|A(?:R("
+  "?:L(?:ISLE|TON|OS)|VER)|N(?:NON FALLS|[TY]ON|BY)|L(?:EDONIA|LAWAY"
+  "|UMET)|S(?:TLE ROCK|S LAKE)|M(?:BRIDGE|PBELL))|R(?:O(?:S(?:SLAKE|"
+  "BY)|WN COLLEGE|OKSTON|MWELL)|YSTAL(?: BAY)?|ANE LAKE)|H(?:A(?:N(?"
+  ":HASSEN|DLER)|TFIELD|MPLIN|SKA)|IS(?:AGO CITY|HOLM)|OKIO)|E(?:DAR"
+  "(?: E(?:AST BETHE| BETH)L)?|NTER(?: CITY|VILLE)|YLON)|U(?:SHING|L"
+  "VER|RRIE)|(?:IRCLE PINE|YRU)S)|W(?:A(?:L(?:T(?:ERS|HAM)|NUT GROVE"
+  "|DORF|KER)|T(?:ER(?:VILLE|TOWN)|KINS|SON)|(?:(?:DE|WI)N|CONI|YZAT"
+  ")A|N(?:(?:NASK|D)A|AMINGO)|R(?:R(?:OAD|EN)|SAW|BA)|S(?:KISH|ECA)|"
+  "(?:HKO|UBU)N|BAS(?:HA|SO)|ITE PARK|VERLY)|I(?:L(?:L(?:(?:OW RIVE|"
+  "MA)R|ERNIE|IAMS)|MONT|DER|TON)|N(?:T(?:HROP|ON)|NEBAGO|STED|DOM|G"
+  "ER|ONA)|RT)|E(?:ST(?: (?:(?:LAKELAN|CONCOR)D|S(?:AIN)?T PAUL|UNIO"
+  "N)|BROOK)|L(?:C(?:OME|H)|LS)|BSTER|NDELL)|H(?:I(?:TE (?:BEAR (?:T"
+  "(?:OWNSHI)?P|L(?:AKE|K))|EARTH)|PHOLT)|(?:EATO|ALA)N)|O(?:OD(?: L"
+  "AKE|STOCK|BURY)|L(?:F LAKE|VERTON)|RTHINGTON)| (?:S(?:AIN)?T PAUL"
+  "|LAKELAND)|R(?:ENSHALL|IGHT)|Y(?:OMING|KOFF))|L(?:A(?:KE(?: (?:(?"
+  ":(?:B(?:RONS|ENT)|WILS)O|LILLIA)N|(?:GEORG|SHOR)E|C(?:RYSTAL|ITY)"
+  "|HUBERT|ITASCA|ELMO|PARK)|(?:FIEL|LAN)D|VILLE)|N(?:DFALL V(?:ILLA"
+  "GE|LG)|CASTER|ESBORO|SING)|(?:(?:FAYET|POR)T|UDERDAL)E| (?:CRESCE"
+  "NT|SALLE)|MBERTON|STRUP)|I(?:T(?:TLE(?: (?:(?:MARAI|FALL)S|CANADA"
+  "|SAUK)|FORK)|CHFIELD)|N(?:O LAKES|DSTROM)|SMORE)|E(?: (?:(?:CENTE"
+  "|SUEU)R|ROY)|STER PR(?:AIRIE)?|WIS(?:VILLE|TON)|O(?:NARD|TA)|NGBY"
+  ")|O(?:N(?:(?:G(?: (?:PRAIRI|LAK)|VILL)|SDAL)E|DON)|UISBURG|CKHART"
+  "|RETTO|MAN|WRY)|U(?:(?:TSE|CA)N|VERNE)|Y(?:LE|ND))|H(?:A(?:M(?: L"
+  "AKE|BURG|MOND|PTON|EL)|N(?:LEY FALLS|COCK|OVER|SKA)|R(?:DWICK|TLA"
+  "ND|MONY|RIS)|(?:Y(?:FIEL|WAR)|TFIEL)D|L(?:LOCK|STAD|MA)|W(?:ICK|L"
+  "EY)|CKENSACK|ZEL RUN|STINGS|DLEY)|O(?:L(?:L(?:AND(?:ALE)?|OWAY)|D"
+  "INGFORD|MES CITY|YOKE|T)|(?:FFMA|USTO)N|P(?:KINS|E)|WARD LAKE|YT "
+  "LAKES|VLAND|KAH|MER)|E(?:N(?:D(?:R(?:ICKS|UM)|ERSON)|RIETTE|NING)"
+  "|R(?:MA(?:NTOW)?N|ON LAKE)|IDELBERG|CTOR|WITT)|I(?:LL(?: CITY|MAN"
+  "|TOP|S)|N(?:CKLEY|ES)|TTERDAL|BBING)|U(?:TCHINSON|MBOLDT|NTLEY|GO"
+  "))|R(?:O(?:C(?:K(?: CREEK|VILLE|FORD)|HE(?:STER|RT))|S(?:E(?: CRE"
+  "EK|MOUNT|VILLE|AU)|COE|S)|(?:BBINSDAL|UND LAK)E|LL(?:INGSTONE|AG)"
+  "|OSEVELT|YALTON|THSAY|GERS)|E(?:D(?: (?:LAKE FALLS|WING)|WOOD FAL"
+  "LS|LAKE|BY)|A(?:DS LAN)?DING|(?:NVILL|VER)E|MER)|U(?:S(?:H(?:FORD"
+  "(?: V(?:ILLAGE|LG))?| CITY|MORE)|SELL)|T(?:LEDGE|HTON))|A(?:N(?:D"
+  "(?:OLPH|ALL)|IER)|Y(?:MOND)?|CINE|DIUM|MSEY)|I(?:C(?:H(?:(?:FIEL|"
+  "MON|WOO)D|VILLE)|E)|VERTON)|L FALLS)|N(?:E(?:W(?: (?:(?:(?:BRIGHT"
+  "|LOND)O|AUBUR)N|M(?:ARKET|UNICH)|YORK M(?:IL)?LS|(?:PRAGU|HOP)E|R"
+  "ICHLAND|GERMANY|ULM)|FOLDEN|PORT)|RSTRAND|TT LAKE|LSON|VIS)|O(?:R"
+  "(?:TH(?: (?:S(?:AIN)?T PAUL|MANKATO|REDWOOD|BRANCH|OAKS)|FIELD|OM"
+  "E|ROP)|WOOD(?: YOUNG AMERICA)?|CROSS)|(?: OAK|YE)S)|A(?:S(?:H(?:W"
+  "AUK|UA)|SAU)|YTAHWAUSH|VARRE)|I(?:ELSVILLE|COLLET|MROD|SSWA)| SAI"
+  "NT PAUL|YA)|G(?:R(?:A(?:N(?:D(?: (?:M(?:ARAIS|EADOW)|PORTAGE|RAPI"
+  "DS)|Y)|ITE FALLS|ADA|GER)|CEVILLE|SSTON)|E(?:EN(?:W(?:AL|OO)D| IS"
+  "LE|BUSH)|Y EAGLE)|OVE CITY|YGLA)|O(?:OD(?:(?:RIDG|HU)E| THUNDER|L"
+  "AND|VIEW)|LDEN VALLEY|NVICK)|A(?:R(?:(?:DEN CIT)?Y|(?:RISO|VI)N|F"
+  "IELD)|YLORD|TZKE)|L(?:EN(?:(?:VILL|CO)E|WOOD)|YNDON)|I(?:L(?:BERT"
+  "|MAN)|BBON)|E(?:ORGETOWN|NEVA)|HE(?:EN|NT)|ULLY)|P(?:E(?:(?:L(?:I"
+  "CAN)? RAPID|QUOT LAKE)S|N(?:N(?:INGTON|OCK)|GILLY|CER)|(?:MBERT|T"
+  "ERS)ON|R(?:HAM|LEY)|ASE)|I(?:NE(?: (?:SPRINGS|ISLAND|RIVER|CITY)|"
+  "WOOD)|PESTONE|LLAGER|ERZ|TT)|A(?:RK(?:ERS PR(?:AIRIE)?| RAPIDS|VI"
+  "LLE)|(?:YNESVILL|LISAD)E)|R(?:I(?:N(?:CETON|SBURG)|OR LAKE)|ESTON"
+  "|OCTOR)|L(?:A(?:INVIEW|TO)|YMOUTH|UMMER)|O(?:N(?:SFORD|EMAH)|RTER"
+  ")|UPOSKY)|E(?:L(?:L(?:ENDALE|SWORTH)|K(?: RIVER|TON|O)|(?:BOW LAK"
+  "|MOR)E|Y(?:SIAN)?|IZABETH|DRED|ROSA|GIN)|A(?:ST(?: (?:G(?:RAND FO"
+  "RKS|ULL LAKE)|BETHEL)|ON)|G(?:LE (?:BEND|LAKE)|AN))|D(?:EN (?:PRA"
+  "IRIE|VALLEY)|GERTON|INA)| G(?:RAND FORKS|ULL LAKE)|M(?:(?:BARRAS|"
+  "MON)S|ILY)|V(?:AN(?:SVILLE)?|ELETH)|R(?:SKINE|HARD)|S(?:SIG|KO)|X"
+  "CELSIOR|ITZEN|UCLID|FFIE|YOTA|CHO)|F(?:O(?:R(?:T (?:SNELLING|RIPL"
+  "EY)|EST(?: LAKE|ON)|BES)|(?:UNTAI|SSTO)N|XHOME|LEY)|A(?:R(?:MINGT"
+  "ON|IBAULT|WELL)|LCON H(?:EIGH|G)TS|IR(?:MONT|FAX))|R(?:EE(?:BORN|"
+  "PORT)|A(?:NKLIN|ZEE)|O(?:NTENAC|ST)|IDLEY)|E(?:R(?:GUS FALLS|TILE"
+  ")|DERAL DAM|LTON)|I(?:NLA(?:YSON|ND)|FTY LAKES|SHER)|L(?:O(?:ODWO"
+  "OD|RENCE|M)|ENSBURG)|ULDA|DCI)|A(?:L(?:B(?:ERT(?:(?: LE)?A|VILLE)"
+  "|ANY|ORN)|(?:EXANDRI|TUR|PH)A|D(?:RICH|EN)|MELUND|VARADO)|N(?:G(?"
+  ":LE INLET|ORA|US)|NANDALE|DOVER|OKA)|R(?:DEN HILLS|LINGTON|GYLE|C"
+  "O)|D(?:A(?:MS)?|OLPH|RIAN)|U(?:(?:DUBO|STI)N|RORA)|PPLE(?: VALLEY"
+  "|TON)|(?:ITKI|FTO)N|M(?:IRET|BOY)|H GWAH CHING|S(?:HBY|KOV)|VO(?:"
+  "CA|N)|TWATER|KELEY)|D(?:E(?:ER(?: (?:CREEK|RIVER)|WOOD)|L(?:A(?:V"
+  "AN|NO)|LWOOD|HI)|N(?:NISON|T)|TROIT LAKES| GRAFF|XTER)|A(?:N(?:VE"
+  "RS|UBE)|R(?:FUR|WIN)|(?:WS|YT)ON|L(?:TON|BO)|KOTA|SSEL)|U(?:LUTH("
+  "?: FEDERAL PRISON)?|N(?:D(?:AS|EE)|NELL)|QUETTE|MONT)|O(?:(?:DGE "
+  "CENT|WN)ER|N(?:ALDSON|NELLY)|V(?:RAY|ER)|RAN)|LTH FED PRIS|ILWORT"
+  "H)|O(?:AK(?: (?:PARK(?: H(?:EIGH|G)?TS)?|ISLAND|GROVE)|DALE|LAND)"
+  "|R(?:ON(?:OC)?O|TONVILLE|LEANS|MSBY|R)|S(?:A(?:KIS|GE)|(?:SE|L)O|"
+  "TRANDER)|T(?:(?:ISC|SEG)O|TERTAIL)|(?:(?:LIV|NAM)I|WATONN)A|G(?:I"
+  "LVIE|EMA)|K(?:ABENA|LEE)|D(?:ESSA|IN)|UTING)|T(?:A(?:(?:LMO|UNT)O"
+  "N|YLORS FALLS|CONITE|MARACK|OPI)|W(?:I(?:N (?:VALLEY|LAKES)|G)|O "
+  "HARBORS)|H(?:IEF R(?:IVER FAL|VR F)LS|EILMAN)|R(?:A(?:CY|IL)|IMON"
+  "T|OSKY|UMAN)|O(?:IVOLA|FTE|WER|GO)|(?:URTLE RIV|YL)ER|EN(?:STRIKE"
+  "|NEY)|INTAH)|K(?:E(?:N(?:(?:SINGT|Y)ON|NE(?:DY|TH)|T)|L(?:L(?:Y L"
+  "AKE|IHER|OGG)|SEY)|R(?:KHOVEN|RICK)|TTLE RIVER|EWATIN)|A(?:N(?:AR"
+  "ANZ|DIYOH)I|S(?:OTA|SON)|BETOGAMA|RLSTAD)|I(?:N(?:GSTON|NEY)|LKEN"
+  "NY|ESTER|MBALL)|(?:NIFE RIV|LOSSN)ER)|V(?:E(?:R(?:N(?:ON CENTER|D"
+  "ALE)|MILLION|GAS|DI)|S(?:ELI|TA))|I(?:(?:(?:CTOR|RGIN)I|OL)A|[KN]"
+  "ING|LLARD)|ADNAIS (?:HEIG)?HTS)|I(?:N(?:T(?:ERNATIONA)?L FALLS|VE"
+  "R GROVE(?: HEIGHTS)?|DEPENDENCE)|S(?:A(?:BELLA|NTI)|LE)|(?:R(?:ON"
+  "T)?O|HLE)N|VANHOE|ONA)|J(?:A(?:C(?:OB|K)SON|NESVILLE|SPER)|E(?:FF"
+  "ER|NKIN)S|O(?:HNSO|RDA)N)|Z(?:UMBRO(?: FALLS|TA)|IM(?:MERMAN)?)|U"
+  "(?:(?:PSAL|TIC)A|NDERWOOD|LEN)|YOUNG AMERICA))))$"
+  ,
+  /* -- MO -- MO -- MO -- MO -- MO -- MO -- MO -- MO -- MO -- MO -- */
+  "(?:\\b)((?^:(?i:(?:C(?:A(?:R(?:(?:T(?:ERVILL|HAG)|UTHERSVI?LL)E|("
+  "?:L JUNCTI|ROLLT)ON|DWELL)|P(?:E (?:GIRARDEAU|FAIR)|LINGER M(?:IL"
+  ")?LS)|M(?:DEN(?: POINT|TON)?|PBELL|ERON)|L(?:(?:IFOR|EDO)NIA|HOUN"
+  "|LAO)|I(?:NSVILLE|RO)|S(?:SVILL|CAD)E|T(?:AWISSA|RON)|N(?:ALOU|TO"
+  "N)|ULFIELD|BOOL|DET)|O(?:N(?:C(?:EP(?:TION JUNC)?TION|ORDIA)|RAN|"
+  "WAY)|(?:(?:TTLE|ATS)VILL|MMERC)E|L(?:E CAMP|UMBIA|LINS)|O(?:K STA"
+  "|TER)|R(?:NING|DER)|U(?:RTOIS|CH)|(?:FFE|SB)Y|WGILL)|H(?:E(?:R(?:"
+  "(?:OKEE HOMESTEAD VILLAG|RYVILL)E|KEE HMSTD)|ST(?:NUTRIDGE|ERFIEL"
+  "D))|A(?:RLESTON|DWICK|FFEE|MOIS)|IL(?:LICOTH|HOWE)E|ULA)|L(?:A(?:"
+  "R(?:K(?:S(?:(?:VIL|DA)LE|BURG)|TON)?|ENCE)|YTON)|I(?:MAX SPR(?:IN"
+  ")?GS|FTON HILL|NTON)|E(?:VE(?:LAND|R)|ARMONT)|UBB|YDE)|R(?:E(?:VE"
+  " COEUR|IGHTON|SCENT)|O(?:SS TIMBERS|CKER)|YSTAL (?:LAKES|CITY)|A("
+  "?:IG|NE))|E(?:NT(?:ER(?:VI(?:LLE|EW)|TOWN)?|RALIA)|DAR(?: (?:CITY"
+  "|HILL)|CREEK))|U(?:RRYVILLE|BA)|PE GIRARDEAU|NCPTON JCTN)|S(?:A(?"
+  ":INT(?: (?:C(?:ATHARINE|HARLES|LAIR)|P(?:A(?:TRICK|UL)|ETERS)|(?:"
+  "THOMA|LOUI)S|J(?:OSEPH|AMES)|A(?:LBANS|NN)|ELIZABETH|ROBERT|MARY)"
+  "|E GENEVIEVE)|(?:DDLEBROOK|NTA F|RCOXI)E|V(?:ANNAH|ERTON)|L(?:ISB"
+  "URY|EM)|PPINGTON|GINAW)|T(?:E(?:(?:(?:WARTS|FFEN)VILL| GENEVIEV)E"
+  "|E(?:(?:LVIL)?LE|DMAN)|LLA|T)|O(?:T(?:TS CIT|ESBUR)Y|UT(?:SVILLE|"
+  "LAND)|CKTON|VER)| (?:CATHARINE|ELIZABETH|PETERS)|A(?:N(?:BERRY|TO"
+  "N)|RK CITY)|RA(?:FFORD|SBURG)|UR(?:DIVANT|GEON))|U(?:L(?:PHUR SP("
+  "?:RINGS|G)|LIVAN)|M(?:MERSVILLE|NER)|NRISE BEACH|GAR CREEK|CCESS)"
+  "|O(?:U(?:TH (?:WEST C(?:IT)?Y|GREENFIELD|FORK)|DER)|LO)|E(?:D(?:G"
+  "EWICKVI?LLE|ALIA)|N(?:ATH|ECA)|LIGMAN|YMOUR)|H(?:E(?:L(?:B(?:YVIL"
+  "LE|INA)|L KNOB|DON)|RIDAN)|OOK)|P(?:(?:RINGFIEL|ICKAR)D|OKANE|ART"
+  "A)|C(?:O(?:TT CITY|PUS)|HELL CITY)|(?:Y(?:CAMOR|RACUS)|KIDMOR)E|I"
+  "(?:L(?:EX|VA)|KESTON|BLEY)|WE(?:ET SPRINGS|DEBORG)|MITH(?:VILLE|T"
+  "ON)| GREENFIELD|QUIRES|LATER)|B(?:R(?:A(?:N(?:SON(?: WEST)?|DSVIL"
+  "LE)|GG(?:ADOCIO| CITY)|(?:SHEA|YME)R|DLEYVILLE|ZEAU)|O(?:OK(?:LIN"
+  "E(?: STA)?|FIELD)|WN(?:WOOD|ING)|NAUGH|SELEY)|E(?:CK(?:ENRIDGE(?:"
+  " HILLS)?|NRDG HLS)|NTWOOD)|I(?:(?:(?:(?:DGE|GH)T|MS)O|NKTOW)N|XEY"
+  "|AR)|U(?:N(?:SWICK|ER)|MLEY)|LNGTON JCTN)|E(?:L(?:L(?:E(?:VIEW)?|"
+  "FLOWER| CITY)|GRADE|TON)|R(?:KELEY|RYMAN|TRAND|GER|NIE)|N(?:TON(?"
+  ": CITY)?|DAVIS)|TH(?:ANY|EL)|AUFORT|ULAH|VIER)|L(?:A(?:CK(?:W(?:A"
+  "TER|ELL)|BURN)?|IRSTOWN|ND)|O(?:OM(?:FIELD|SDALE)|DGETT)|UE (?:SP"
+  "RINGS|EYE)|YTHEDALE)|U(?:R(?:LINGTON JUNCTION|FORDVILLE)|C(?:K(?:"
+  "LIN|NER)|YRUS)|T(?:TERFIELD|LER)|N(?:CETON|KER)|FFALO|ELL)|O(?:NN"
+  "(?:OTS MILL|E TERRE)|(?:WLING GREE|URBO)N|L(?:CKOW|IVAR)|S(?:WORT"
+  "H|S)|IS D ARC|ONVILLE|GARD)|A(?:R(?:N(?:(?:HAR|ET)T|ARD)|ING)|T(?"
+  ":TLEFIELD|ES CITY)|KERSFIELD|LLWIN)|I(?:R(?:CH TREE|MINGHAM)|LLIN"
+  "GS|SMARCK|GELOW|XBY))|M(?:A(?:R(?:T(?:IN(?:S(?:VILLE|BURG)| CITY)"
+  "|HASVILLE)|Y(?:LAND (?:HEIG)?HTS|VILLE)|S(?:H(?:FIELD|ALL)|TON)|V"
+  "EL CAV(?:E PAR| P)K|(?:IONVILL|CELIN)E|BLE HILL|QUAND)|C(?:O(?:MB"
+  "|N)|KS CREEK)|Y(?:SVILLE|VIEW|WOOD)|N(?:CHESTER|SFIELD)|P(?:AVILL"
+  "E|LEWOOD)|L(?:TA BEND|DEN)|ITLAND|TTHEWS|DISON)|O(?:UN(?:T(?: (?:"
+  "STERLING|MORIAH|VERNON)|AIN (?:GR(?:OVE|V)|VIEW))|D(?: CITY|VILLE"
+  "))|N(?:T(?:GOMERY C(?:IT)?Y|I(?:CELLO|ER)|R(?:EAL|OSE))|ROE CITY|"
+  "ETT)|R(?:RIS(?:VILLE|ON)|SE MILL|EHOUSE|LEY|A)|S(?:COW MILLS|BY)|"
+  "O(?:RESVILLE|DY)|BERLY|KANE)|I(?:L(?:L(?:ER(?:SVILLE)?| SPRING|CR"
+  "EEK)|FORD|AN|O)|N(?:E(?:R(?:AL POINT)?| LA MOTTE|OLA)|DENMINES)|D"
+  "DLE(?: BROOK|TOWN)|SSOURI CITY|AMI)|E(?:R(?:RIAM (?:WOODS VILLAGE"
+  "|VLG)|CER)|ADVILLE|MPHIS|T[AZ]|NDON|XICO)|C(?: (?:G(?:IRK|EE)|BRI"
+  "DE|CLURG|FALL)|KITTRICK)|T STERLING|YRTLE)|L(?:A(?:KE (?:S(?:(?:A"
+  "IN)?T LOUIS|HERWOOD|PRING)|W(?:INNEBAGO|AUKOMIS)|TAPA?WINGO|LOTAW"
+  "ANA|ANNETTE|OZARK)| (?:(?:GRANG|BELL|MONT)E|RUSSELL|PLATA)|M(?:BE"
+  "RT A(?:IRPO|RP)RT|AR|PE)|(?:(?:BAD|UR)I|CLED)E|T(?:H(?:ROP|AM)|OU"
+  "R)|N(?:CASTER|AGAN)|DDONIA|QUEY|REDO|WSON)|E(?:A(?:D(?:INGTON|WOO"
+  "D)|SBURG)|(?:(?:XINGT|BAN)O|WISTOW)N|E(?:S SUMMIT|TON)|S(?:TERVIL"
+  "L|LI)E|O(?:NAR|POL)D|N(?:TNER|OX)|(?:VAS|MA)Y|COMA)|O(?:N(?:E(?: "
+  "JACK|DELL)|G LANE)|CK(?: SPRINGS|WOOD)|W(?:RY CITY|NDES)|UIS(?:BU"
+  "RG|IANA)|OSE CREEK|MA LINDA|HMAN|DI)|I(?:N(?:N(?: CREEK|EUS)?|COL"
+  "N)|BER(?:AL|TY)|LBOURN|CKING|GUORI|VONIA)|U(?:(?:TESVILL|CERN)E|E"
+  "BBERING|DLOW|RAY)|K WINNEBAGO|YNCHBURG)|W(?:E(?:S(?:T(?: (?:PLAIN"
+  "S|ALTON|LINE)|PHALIA|BORO|ON)|CO)|L(?:L(?:INGTON|SVILLE)|DON SPRI"
+  "NG)|B(?:STER GR(?:OVE|V)S|B CITY)|A(?:THERBY(?: LAKE)?|UBLEAU)|NT"
+  "(?:ZVILLE|WORTH))|A(?:L(?:NUT (?:GROV|SHAD)E|DRON|KER)|R(?:REN(?:"
+  "SBURG|TON)|DELL|SAW)|S(?:H(?:INGTO|BUR)N|OLA)|Y(?:NESVILLE|LAND)|"
+  "(?:PPAPELL|C)O|VERLY|TSON)|I(?:L(?:L(?:IAMS(?:VILLE|BURG|TOWN)|OW"
+  " SP(?:RIN)?GS|ARD)|DWOOD)|N(?:D(?:YVILLE|SOR)|(?:IGA|STO)N|FIELD|"
+  "ONA)|TTENBERG)|H(?:ITE(?:MAN A(?:IR FORCE BASE|FB)|WATER|SIDE|OAK"
+  ")|E(?:AT(?:LAND|ON)|ELING))|O(?:O(?:D HEIGHTS|LDRIDGE)|RTH(?:INGT"
+  "ON)?|LF ISLAND)|YA(?:CONDA|TT)|RIGHT CITY|THRBY LAKE)|P(?:O(?:RT("
+  "?:AGE(?: DES SIOUX|VILLE)|LAND)|WE(?:RS(?:VILL|IT)E|LL)|N(?:CE DE"
+  " LEON|TIAC)|T(?:TERSVILLE|OSI)|L(?:(?:LOC)?K|O)|INT LOOKOUT|PLAR "
+  "BLUFF|CAHONTAS|MONA|YNOR)|A(?:R(?:K(?: HILLS|VILLE)|NELL|IS|MA)|T"
+  "T(?:ON(?:SBURG)?|ERSON)|S(?:COLA|SAIC)|YNESVILLE|CIFIC|INTON|LMYR"
+  "A)|L(?:E(?:ASANT (?:H(?:ILL|OPE)|V(?:ALLE|L)Y)|VNA)|AT(?:T(?:E (?"
+  ":WOODS|CITY)|SBURG)|O))|I(?:E(?:RCE CITY|DMONT)|(?:CKERIN|TTSBUR)"
+  "G|LOT (?:GROVE|KNOB)|NEVILLE)|R(?:TG DE S(?:IOU|OUI)X|(?:INCE|ES)"
+  "TON|AIRIE HOME|OTEM)|E(?:R(?:RY(?:VILLE)?|KINS)|(?:ACE VALLE|VEL)"
+  "Y|CULIAR)|U(?:R(?:D(?:IN|Y)|CELL)|XICO)|HIL(?:ADELPHIA|LIPSBURG))"
+  "|H(?:A(?:R(?:T(?:S(?:BURG|HORN)|VILLE)|RIS(?:ONVILLE|BURG)?|D(?:E"
+  "NVILLE|IN)|VIELL|WOOD)|L(?:L(?:SVILLE|TOWN)|F WAY|E)|(?:ZELWOO|TF"
+  "IEL)D|YTI(?: HEIGHTS)?|WK POINT|MILTON|NNIBAL)|O(?:L(?:L(?:I(?:ST"
+  "ER|DAY)|AND)|(?:TS SUMMI)?T|COMB|DEN)|US(?:TON(?: LAKE|IA)?|E SPR"
+  "INGS)|MEST(?:EAD VLG|OWN)|R(?:NERSVILLE|TON)|PKINS)|U(?:M(?:(?:AN"
+  "SVILL)?E|PHREYS)|N(?:TSVILLE|NEWELL)|G(?:HESVILLE|GINS)|R(?:DLAND"
+  "|LEY))|I(?:G(?:H(?: (?:POINT|RIDGE|HILL)|LANDVILLE)|(?:GINSVILL|B"
+  "E)E)|LLSBORO|RAM)|E(?:R(?:M(?:ITAGE|ANN)|CULANEUM)|N(?:RIETTA|LEY"
+  ")|M(?:ATIT|PL)E|LENA))|G(?:R(?:A(?:N(?:D(?: PASS|VIEW|IN)|(?:T CI"
+  "T|B)Y|GER)|Y(?: SUMMIT|RIDGE)|(?:IN VALLE|SS)Y|VOIS MILLS|HAM|FF)"
+  "|EEN(?: (?:C(?:ASTLE|ITY)|RIDGE)|(?:FIEL|WOO)D|VILLE|TOP)|OVE(?:S"
+  "PRING|R)|UBVILLE)|A(?:(?:INESVILL|SCONAD)E|R(?:DEN CITY|RISON)|L("
+  "?:LATIN|ENA|T)|TEWOOD)|O(?:R(?:DONVILLE|IN)|LDEN(?: CITY)?|OD(?:M"
+  "A|SO)N|(?:BL|W)ER)|L(?:EN(?:ALLEN|WOOD|COE)|A(?:DSTONE|SGOW)|OVER"
+  ")|I(?:L(?:MAN CITY|LIAM)|B(?:SON|BS)|DEON|PSY)|E(?:NTRY|RALD)|UIL"
+  "FORD)|F(?:R(?:E(?:NCH V(?:ILLAGE|LG)|(?:ISTAT|MON)T|E(?:BURG|MAN)"
+  "|DERICKTOWN)|ANK(?:CLAY|FORD|LIN)|O(?:NTENAC|HNA)|IEDHEIM)|A(?:IR"
+  "(?: (?:GROVE|PLAY)|DEALING|PORT|VIEW|FAX)|R(?:(?:BE|RA)R|MINGTON|"
+  "LEY)|UCETT|YETTE|LCON|GUS)|O(?:R(?:T(?: LEONARD WOOD|ESCUE|UNA)|E"
+  "ST CITY|ISTELL|DLAND|SYTH)|UR SEASONS|STER|LEY)|L(?:OR(?:I(?:SSAN"
+  "T|DA)|ENCE)|E(?:MINGTON|TCHER)|AT RIVER|INTHILL)|E(?:R(?:RELVIEW|"
+  "GUSON)|NTON|STUS)|I(?:LLMORE|SK)|T LEONARD WD|ULTON)|R(?:O(?:C(?:"
+  "K(?:(?:Y (?:COMFOR|MOUN)| POR)T|(?:BRIDG|VILL)E|AWAY B(?:EA)?CH)|"
+  "HEPORT)|S(?:E(?:NDALE|BUD)|COE)|(?:GERS|TH)VILLE|B(?:ERTSVILLE|Y)"
+  "|MBAUER|ACH|LLA)|I(?:CH(?:MOND(?: (?:HEIG)?HTS)?|(?:WOO|AR)DS| HI"
+  "LL|LAND)|VE(?:R(?:MINES|SIDE)|S)|DGE(?:DALE|WAY)|SCO)|A(?:Y(?:(?:"
+  "MO(?:NDVILL|R)|VILL)E|TOWN)|VENWOOD|NDOLPH|CINE)|E(?:EDS(?: SPRIN"
+  "G)?|PUBLIC|YNOLDS|DFORD|NICK|VERE|A)|U(?:S(?:H(?: HILL|VILLE)|SEL"
+  "LVILLE)|TLEDGE|ETER)|HINELAND)|N(?:E(?:W(?: (?:B(?:LOOMF(?:IE)?LD"
+  "|OSTON)|HA(?:(?:MPTO|VE)N|RTFORD)|F(?:LORENCE|RANKLIN)|M(?:ADRID|"
+  "ELLE)|OFFENBURG|CAMBRIA|LONDON|POINT|WELLS)|TO(?:NIA|WN)|BURG|ARK"
+  ")|ELYVILLE|CK CITY|LSON|OSHO|VADA)|O(?:R(?:TH(?: (?:KANSAS CI|COU"
+  "N)TY|WEST PLAZA|MOOR)|BORNE|MANDY|WOOD)|(?:TTINGHIL|E)L|V(?:INGER"
+  "|ELTY)|BLE)|A(?:P(?:OLE|T)ON|YLOR)|W P(?:LAZA|OINT)| KANSAS CITY|"
+  "I(?:ANGU|X)A)|E(?:L(?:L(?:I(?:SVILLE|NGTON)|SINORE)| DORADO SP(?:"
+  "RINGS|G)|K(?: CREEK|LAND)|D(?:RIDGE|ON)|M(?:IRA|ER|O)|SBERRY|VINS"
+  ")|X(?:C(?:EL(?:SIOR (?:SP(?:RINGS|G)|EST)|LO)|LSOR SPRGS)|ETER)|A"
+  "(?:ST(?: (?:PRAIRI|LYNN)E|ON)|GLE(?: ROCK|VILLE)|RTH CITY)|D(?:G("
+  "?:AR SPRINGS|ERTON)|WARDS|INA)|U(?:(?:DOR|REK)A|(?:GEN|NIC)E)|M(?"
+  ":INENCE|DEN|MA)|T(?:TERVILLE|HEL)|VERTON|OLIA|SSEX|WING)|A(?:L(?:"
+  "T(?:ENBURG|AMONT|ON)|LEN(?:DALE|TON)|(?:EXANDRI|M)A|BA(?:NY)?|DRI"
+  "CH)|R(?:C(?:(?:ADI|OL)A|HIE)|B(?:ELA|YRD)|ROW ROCK|MSTRONG|GYLE|N"
+  "OLD|AB)|N(?:N(?:A(?:POLIS|DA)|ISTON)|DERSON|TONIA|ABEL)|S(?:H(?: "
+  "GROVE|BURN|LAND)|BURY)|U(?:(?:GUST|ROR)A|XVASSE|STIN)|M(?:STERDAM"
+  "|AZONIA|ORET|ITY)|V(?:A(?:LON)?|ONDALE|ILLA)|(?:PPLETON CIT|GENC)"
+  "Y|D(?:VANCE|RIAN)|TLANTA|FFTON)|D(?:E(?:E(?:R(?:FIELD|ING)|PWATER"
+  ")|S(?: (?:PERES|ARC)|LOGE)| (?:KALB|SOTO|WITT)|(?:NV|XT)ER|VILS E"
+  "LBOW|ARBORN|FIANCE|LTA)|A(?:R(?:DENNE PR(?:AIRIE)?|LINGTON)|(?:VI"
+  "S|DE|N)VILLE|(?:LTO|W)N|ISY)|U(?:(?:GGINSVILL|K)E|T(?:CHTOWN|ZOW)"
+  "|NNEGAN|ENWEG|DLEY|RHAM)|O(?:(?:NIPHA|E RU)N|WNING|VER|RA)|I(?:AM"
+  "OND|GGINS|TTMER|XON)|R(?:EXEL|URY))|K(?:I(?:N(?:G(?:S(?:VILLE|TON"
+  ")|(?:DOM)? CITY)|LOCH)|M(?:BERLING C(?:IT)?Y|MSWICK)|R(?:K(?:SVIL"
+  "LE|WOOD)|BYVILLE)|SSEE MILLS|DDER)|E(?:(?:YTESVILL|WANE)E|ARNEY|N"
+  "NETT|LSO)|NO(?:B (?:NOSTER|LICK)|X CITY)|A(?:NSAS CITY|HOKA|ISER)"
+  "|O(?:ELTZTOWN|SHKONONG))|T(?:R(?:I(?:PLETT|MBLE)|E(?:LOAR|NTON)|U"
+  "XTON|OY)|H(?:O(?:RNFIELD|MPSON)|EODOSIA|AYER)|A(?:LLAPOOSA|NEYVIL"
+  "LE|RKIO|YLOR)|U(?:RNE(?:RS|Y)|SCUMBIA|NAS)|E(?:BBETTS|CUMSEH|RESI"
+  "TA)|I(?:FF(?: CITY)?|PTON|NA)|W(?:N AND CNTRY|IN OAKS)|OWN AND CO"
+  "UNTRY)|V(?:I(?:LLA(?:GE OF (?:FOUR SEASONS|LOCH LLOYD)| RIDGE)|(?"
+  ":ENN|ST)A|BURNUM|CHY)|A(?:N(?:D(?:ALIA|USER)| BUREN|ZANT)|LLE(?:S"
+  " MINES|Y PARK))|LG (?:LOCH LOYD|OF 4 SSNS)|ER(?:SAILLES|ONA)|ULCA"
+  "N)|O(?:L(?:D(?: (?:APPLETON|MONROE)|FIELD)|IVETTE|EAN|NEY)|(?:AK "
+  "(?:GROV|RIDG)|WENSVILL)E|R(?:(?:EGO|A)N|ONOGO|RICK)|S(?:AGE BEACH"
+  "|CEOLA|BORN)|TT(?:ERVILLE|O)| FALLON|VERLAND|DESSA|ZARK|XLY)|J(?:"
+  "E(?:R(?:ICO SPR(?:IN)?GS|OME)|N(?:NING|KIN)S|FFERSON CI?TY)|A(?:M"
+  "ES(?:(?:TOW|O)N|PORT)|CKSON(?:VILLE)?|DWIN|SPER|NE)|O(?:NESBURG|P"
+  "LIN))|U(?:NI(?:ON(?: STAR|VILLE|TOWN)?|VERSITY C(?:IT)?Y|TY VILLA"
+  "GE)|R(?:BANA|ICH)|DALL|LMAN|TICA)|I(?:(?:(?:BER|ON)I|SABELL|ANTH)"
+  "A|N(?:DEPENDENCE|NSBROOK)|R(?:ON(?:DALE|TON)|WIN)|MPERIAL)|QU(?:I"
+  "(?:TMAN|NCY)|EEN CITY|LIN)|ZA(?:NONI|LMA)|YUKON))))$"
+  ,
+  /* -- MP -- MP -- MP -- MP -- MP -- MP -- MP -- MP -- MP -- MP -- */
+  "(?:\\b)((?^:(?i:(?:(?:SAIP|TINI)AN|ROTA))))$"
+  ,
+  /* -- MS -- MS -- MS -- MS -- MS -- MS -- MS -- MS -- MS -- MS -- */
+  "(?:\\b)((?^:(?i:(?:S(?:T(?:E(?:NNIS (?:SP(?:ACE CENTER| CT)|CTR)|"
+  "WART|ENS)|O(?:NE(?:VILLE|WALL)|VALL)|A(?:R(?:KVILLE)?|TE LINE)|RI"
+  "NGER|URGIS)|A(?:N(?:D(?:ERSVILLE|Y HOOK|HILL)|ATORIUM)|R(?:EPTA|D"
+  "IS|AH)|L(?:TILLO|LIS)|TARTIA|UCIER|VAGE)|H(?:E(?:R(?:ARD|MAN)|LBY"
+  ")|A(?:(?:NN|R)ON|W)|U(?:QUALAK|BUTA))|I(?:LVER C(?:REEK|ITY)|BLEY"
+  "|DON)|U(?:M(?:RALL|MIT|NER)|NFLOWER)|E(?:BASTOPOL|NATOBIA|MINARY)"
+  "|C(?:O(?:BEY|OBA|TT)|HLATER)|(?:MITH(?:VIL|DA)L|KEN)E|L(?:ATE SPR"
+  "ING|EDGE)|O(?:UTHAVEN|NTAG|SO)|W(?:AN LAKE|IFTOWN))|M(?:O(?:UN(?:"
+  "T (?:PLEASANT|OLIVE)|D BAYOU)|N(?:T(?:ICELLO|PELIER)|EY)|R(?:GAN("
+  "?: CITY|TOWN)|TON)|S(?:S(?: POINT)?|ELLE)|OR(?:EVILLE|HEAD))|A(?:"
+  "T(?:H(?:ERVILLE|ISTON)|TSON)|(?:D(?:ISO|DE)|BE|CO)N|R(?:I(?:ETTA|"
+  "ON)|KS)|Y(?:ERSVILLE|HEW)|G(?:NOLIA|EE)|NT(?:ACHI|E)E)|I(?:N(?:ER"
+  "AL WELLS|TER CITY)|(?:SSISSIPPI STAT|Z)E|CHIGAN CITY|DNIGHT)|C(?:"
+  " (?:C(?:A(?:LL CREEK|RLEY)|OOL)|ADAMS|HENRY|NEILL|LAIN)|COMB)|E(?"
+  ":(?:ADVILL|TCALF)E|RI(?:DIAN|GOLD)|NDENHALL)|S STATE UNIV|T PLEAS"
+  "ANT|YRTLE)|C(?:O(?:L(?:UMB(?:US(?: AFB)?|IA)|LINS(?:VILLE)?|DWATE"
+  "R)|(?:NEHATT|AHOM|IL)A|FFEEVILLE|URTLAND|RINTH|MO)|A(?:R(?:R(?:OL"
+  "LTON|IERE)|THAGE|SON|Y)|L(?:HOUN CITY|EDONIA)|(?:N(?:AA|TO)|MDE)N"
+  "|SCILLA)|L(?:E(?:RMONT H(?:ARBO|B)R|VELAND)|AR(?:KSDALE|A)|INTON)"
+  "|R(?:YSTAL SP(?:RIN)?GS|O(?:WDER|SBY)|AWFORD|ENSHAW|UGER)|H(?:A(?"
+  ":T(?:AWA|HAM)|RLESTON)|U(?:RCH HILL|NKY)|OCTAW)|E(?:NTREVILLE|DAR"
+  "BLUFF))|P(?:A(?:S(?:S CHRIS(?:TIA?N)?|CAGOULA)|(?:NTHER BUR|TTISO"
+  ")N|R(?:CHMAN|IS)|C(?:HUTA|E)|ULDING)|O(?:RT(?: GIBSON|ERVILLE)|P("
+  "?:LARVILL)?E|CAHONTAS|TTS CAMP|NTOTOC)|E(?:R(?:KINSTON|CY)|ARL(?:"
+  "INGTON)?|LAHATCHIE|TAL)|I(?:N(?:EY WOODS|OLA)|C(?:AYUNE|KENS)|TTS"
+  "BORO)|R(?:AIRIE(?: POINT)?|E(?:NTISS|STON))|H(?:IL(?:ADELPHIA|IPP"
+  ")|EBA)|U(?:CKETT|LASKI|RVIS)|LANTERSVILLE)|B(?:E(?:L(?:LEFONTAINE"
+  "|D?EN|MONT|ZONI)|N(?:TON(?:IA)?|NDALE|OIT)|AUMONT|CKER|ULAH)|A(?:"
+  "Y S(?:(?:AIN)?T LOUI|PRING)S|I(?:LEY|RD)|TESVILLE|SSFIELD|LDWYN|N"
+  "NER)|R(?:OOK(?:(?:HAVE|LY)N|SVILLE)|A(?:ND|XT)ON|UCE)|O(?:(?:ONEV"
+  "IL|Y)LE|GUE CHITTO|LTON)|I(?:G(?:BEE VALLEY| CREEK)|LOXI)|U(?:(?:"
+  "RNSVILL|D)E|CKATUNNA)|LUE (?:MOUNTAIN|SPRINGS)|Y(?:HALIA|RAM))|L("
+  "?:A(?:KE(?: CORMORANT|SHORE)?|M(?:(?:BER|ON)T|AR)|(?:FAYETT|WRENC"
+  ")E|U(?:DERDALE|REL))|E(?:A(?:KESVILLE|RNED|F)|XINGTON|LAND|NA)|O("
+  "?:UI(?:S(?:VILL)?E|N)|NG BEACH|RMAN)|U(?:MBERTON|CEDALE|DLOW|LA)|"
+  "I(?:TTLE ROCK|BERTY)|K CORMORANT|YON)|T(?:I(?:P(?:LERSVILLE|PO)|S"
+  "HOMINGO|E PLANT|LLATOBA|NSLEY)|(?:H(?:O(?:MASTOW|RNTO)|AXTO)|YLER"
+  "TOW)N|U(?:NICA(?: RESORTS?)?|TWILER|PELO|LA)|O(?:(?:CCOPOL|OMSUB)"
+  "A|MNOLEN|UGALOO)|AYLOR(?:SVILLE)?|RE(?:BLOC|MONT)|CHULA|ERRY)|H(?"
+  ":O(?:L(?:L(?:Y (?:SPRINGS|BLUFF|RIDGE)|ANDALE)|COMB)|U(?:STON|LKA"
+  ")|RN LAKE)|A(?:R(?:RIS(?:VILLE|TON)|PERVILLE)|TTIESBURG|ZLEHURST|"
+  "MILTON)|E(?:R(?:MANVILLE|NANDO)|IDELBERG)|I(?:CKORY(?: FLAT)?|LLS"
+  "BORO)|URLEY)|W(?:A(?:L(?:NUT(?: GROVE)?|THALL|LS)|TER(?: VALLEY|F"
+  "ORD)|Y(?:NESBORO|SIDE)|SHINGTON|VELAND)|I(?:N(?:(?:STON|TER)VILLE"
+  "|ONA)|GGINS)|E(?:S(?:(?:T POIN)?T|SON)|BB|IR)|H(?:ITFIELD|EELER)|"
+  "OOD(?:VILLE|LAND))|G(?:R(?:E(?:EN(?:WOOD(?: SP(?:R(?:INGS)?|G))?|"
+  "VILLE)|NADA)|ACE)|L(?:EN(?: ALLAN|DORA)?|OSTER)|O(?:(?:ODMA|LDE)N"
+  "|RE SPRINGS)|U(?:N(?:NISO|TOW)N|LFPORT)|A(?:(?:LL|TT)MAN|UTIER)|E"
+  "ORGETOWN)|R(?:O(?:(?:BINSONVILL|XI|M)E|SE(?: HILL|DALE)|LLING FOR"
+  "K)|I(?:CH(?:LAND|TON)?|DGELAND|ENZI|PLEY)|E(?:D(?: BANKS|WOOD)|NA"
+  " LARA|FORM)|A(?:(?:NDOLP|LEIG)H|YMOND)|U(?:LEVILLE|TH))|N(?:E(?:W"
+  "(?: (?:A(?:UGUSTA|LBANY)|SITE)|(?:HEBR|T)ON)|TTLETON|SBIT|ELY)|A("
+  "?:(?:VAL AIR STA|S) MERIDIAN|TCHEZ)|O(?:RTH CARROLLTON|XAPATER)|I"
+  "(?:TTA YUMA|CHOLSON)| CARROLLTON)|D(?:U(?:N(?:CAN|DEE)|CK HILL|BL"
+  "IN|RANT|MAS)|E(?:LTA CITY| KALB|CATUR|NNIS|RMA)|I(?:AMONDHEAD|BER"
+  "VILLE)|A(?:LEVILLE|RLING)|ODDSVILLE| LO|REW)|A(?:(?:R(?:(?:KABUT|"
+  "CO)L|TESI)|(?:GRICO|NGUIL)L)A|(?:V(?:AL)?O|CKERMA)N|B(?:BEVILLE|E"
+  "RDEEN)|L(?:LIGATOR|GOMA)|S(?:HLAND|KEW)|MORY)|F(?:A(?:L(?:KNER|CO"
+  "N)|RRELL|YETTE)|R(?:IARS POINT|ENCH CAMP)|LO(?:R(?:ENCE|A)|WOOD)|"
+  "O(?:XWORTH|REST)|ERNWOOD|ITLER|ULTON)|E(?:L(?:LI(?:SVILLE|OTT)|IZ"
+  "ABETH)|(?:SCATAWP|UPOR)A|D(?:INBURG|WARDS)|N(?:TERPRISE|ID)|T(?:H"
+  "EL|TA)|ASTABUCHIE|GYPT|CRU)|V(?:A(?:N(?:C(?:LEAV)?E| VLEET)|(?:(?"
+  ":RDAM|UGH)A|IDE)N|LLEY PARK)|IC(?:KSBURG|TORIA)|OSSBURG|ERONA)|O("
+  "?:AK(?: VALE|LAND)|(?:KOLON|SYK)A|CEAN SPRINGS|LIVE BRANCH|XFORD|"
+  "VETT)|K(?:O(?:S(?:CIUSKO|SUTH)|KOMO)|IL(?:MICHAEL|N)|EESLER AFB|R"
+  "EOLE)|I(?:N(?:D(?:EPENDENCE|IANOLA)|VERNESS)|(?:TTA BEN|SOL|UK)A)"
+  "|U(?:NI(?:ON(?: CHURCH)?|VERSITY)|TICA)|J(?:A(?:CKSON|YESS)|ONEST"
+  "OWN)|YAZOO CITY|QUITMAN))))$"
+  ,
+  /* -- MT -- MT -- MT -- MT -- MT -- MT -- MT -- MT -- MT -- MT -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:N(?:D(?: (?:SPRINGS|COULEE)|ERS)|TA RI"
+  "TA)|INT (?:(?:IGNATIU|REGI)S|XAVIER|MARIE)|(?:LTES|VAG)E|CO)|T(?:"
+  "EVENSVILLE| IGNATIUS|ANFORD|OCKETT|RYKER)|I(?:L(?:VER (?:GATE|STA"
+  "R)|ESIA)|DNEY|MMS)|U(?:N(?: RIVER|BURST)|(?:MATR|L)A|PERIOR)|H(?:"
+  "E(?:PHERD|RIDAN|LBY)|AWMUT|ONKIN)|(?:QUARE BUTT|EELEY LAK|PRINGDA"
+  "L)E|W(?:EET GRASS|AN LAKE)|O(?:NNETTE|MERS)|COBEY)|B(?:I(?:G(?: ("
+  "?:S(?:AND|K)Y|TIMBER|ARM)|FORK|HORN)|LLINGS|DDLE|RNEY)|R(?:O(?:AD"
+  "(?:VIEW|US)|CK(?:TON|WAY)|WNING)|IDGER|USETT|ADY)|O(?:(?:(?:X E|U"
+  ")LD|NN)ER|Y(?:ES|D)|ZEMAN)|A(?:(?:LLANTIN|INVILL)E|KER|SIN|BB)|E("
+  "?:L(?:GRADE|FRY|T)|ARCREEK)|L(?:ACK EAGLE|OOMFIELD)|U(?:FFALO|SBY"
+  "|TTE)|YNUM)|C(?:O(?:L(?:UMB(?:IA F(?:AL)?L|U)S|STRIP)|N(?:DON|NER"
+  "|RAD)|R(?:VALLIS|AM)|FFEE CREEK|OKE CITY|HAGEN)|A(?:(?:NYON|T) CR"
+  "EEK|R(?:DWELL|TER)|MERON|PITOL|SCADE)|R(?:A(?:IG|NE)|OW AGENCY|ES"
+  "TON)|H(?:ESTER|INOOK|OTEAU|ARLO)|U(?:LBERTSON|T BANK|STER)|L(?:YD"
+  "E PARK|INTON|ANCY)|IRCLE)|W(?:I(?:L(?:L(?:OW CREEK|ARD)|SALL)|N(?"
+  ":IFRED|NETT|STON)|S(?:E RIVER|DOM)|BAUX)|H(?:IT(?:E(?: SULPHUR SP"
+  "RINGS|(?:HAL|TAI)L|WATER|FISH)|LASH)|T SPHR SPGS)|EST(?: (?:YELLO"
+  "WSTONE|GLACIER)|BY)|A(?:(?:LKERVILL|SHO)E|RM SPRINGS)|O(?:LF (?:C"
+  "REEK|POINT)|RDEN)| YELLOWSTONE|YOLA)|M(?:A(?:R(?:TIN(?: CITY|SDAL"
+  "E)|YSVILLE|ION)|L(?:MSTROM A(?: F |F)B|TA)|NHATTAN)|O(?:N(?:TANA "
+  "CITY|ARCH)|(?:IES|OR)E|CCASIN|SBY|LT)|I(?:L(?:L(?: IRO|TOW)N|ES C"
+  "ITY|DRED)|SSOULA)|E(?:L(?:STON|VILL|ROS)|DICINE LAK)E|C(?: (?:ALL"
+  "ISTER|LEOD)|CABE)|USSELSHELL)|H(?:A(?:R(?:L(?:OWTON|EM)|(?:RISO|D"
+  "I)N)|M(?:ILTON|MOND)|THAWAY|UGAN|VRE|LL|YS)|O(?:(?:MESTEA|GELAN)D"
+  "|T SPRINGS|BSON)|E(?:L(?:MVILLE|ENA)|ART BUTTE|RON)|I(?:N(?:SDALE"
+  "|GHAM)|GHWOOD|LGER)|U(?:N(?:GRY HORSE|TLEY)|SON)|YSHAM)|F(?:O(?:R"
+  "(?:T(?: (?:(?:HARRIS|BENT)ON|S(?:MITH|HAW)|PECK)|INE)|EST GROVE|S"
+  "YTH)|UR BUTTES|X)|R(?:O(?:MBERG|ID)|ENCHTOWN|AZER)|L(?:O(?:RENC|W"
+  "ERE)|AXVILL)E|A(?:IR(?:FIELD|VIEW)|LLON)|ISHTAIL|ERDIG)|G(?:A(?:R"
+  "(?:R(?:YOWE|ISO)N|DINER|NEILL)|L(?:LATIN G(?:ATEWA|TW)Y|ATA))|R(?"
+  ":E(?:AT FALLS|ENOUGH|YCLIFF)|A(?:SS RANG|NTSDAL)E)|L(?:EN(?:DIVE|"
+  "TANA)?|ASGOW)|E(?:RALDINE|YSER)|OLD CREEK|ILDFORD)|P(?:O(?:L(?:EB"
+  "RIDGE|ARIS|SON)|(?:MPEYS? PIL|P)LAR|W(?:DERVILLE|ER)|TOMAC|NY)|A("
+  "?:R(?:K CITY|ADISE)|BLO)|L(?:E(?:NTYWOOD|VNA)|AINS)|R(?:(?:OCT|Y)"
+  "OR|AY)|E(?:ERLESS|NDROY)|HILIPSBURG|INESDALE)|R(?:A(?:Y(?:NESFOR|"
+  "MON)D|DERSBURG|PELJE|VALLI|MSAY)|E(?:(?:D(?: LODG|STON)|SERV)E|ED"
+  " POINT|XFORD)|O(?:(?:BERT|LLIN)S|S(?:EBUD|COE)|UNDUP|NAN|Y)|I(?:C"
+  "H(?:LAND|EY)|NGLING)|UDYARD|YEGATE)|L(?:A(?:KE(?: MC ?DONALD|SIDE"
+  ")|M(?:E DEER|BERT)|RSLAN|UREL|VINA)|O(?:DGE GRASS|NEPINE|THAIR|RI"
+  "NG|LO|MA)|I(?:N(?:COLN|DSAY)|VINGSTON|BBY|MA)|E(?:WISTOWN|DGER)|U"
+  "(?:STRE|THER)|LOYD)|T(?:H(?:OMPSON F(?:AL)?L|REE FORK)S|R(?:O(?:U"
+  "T CREEK|Y)|ACY|EGO)|W(?:IN BRIDGES|O DOT)|O(?:WNSEND|STON)|E(?:IG"
+  "EN|RRY)|URNER)|E(?:AST (?:GLACIER PARK|HELENA)| GLACIER P(?:ARK?|"
+  "K)|(?:KALA|URE)KA|L(?:LISTON|MO)|VERGREEN|MIGRANT|THRIDGE|DGAR|NN"
+  "IS|SSEX)|D(?:E(?:ER LODGE| BORGIA|CKER|NTON|LL)|I(?:(?:LL|X)ON|VI"
+  "DE)|A(?:GMAR|YTON|RBY)|U(?:PUYER|TTON)|RUMMOND|ODSON)|A(?:N(?:(?:"
+  "ACOND|GEL)A|TELOPE)|L(?:BERTON|ZADA|DER)|(?:BSAROK|RL)EE|(?:CT|V)"
+  "ON|SHLAND|UGUSTA)|J(?:O(?:(?:PLI|RDA)N|LIET)|EFFERSON CI?TY|UDITH"
+  " GAP|ACKSON)|V(?:I(?:RGINIA CITY|CTOR|DA)|A(?:NDALIA|LIER|UGHN)|O"
+  "LBORG)|O(?:L(?:IVE|NEY)|ILMONT|UTLOOK|PHEIM|VANDO|TTER)|N(?:(?:IA"
+  "RAD|ASHU)A|O(?:RRIS|XON)|EIHART|YE)|K(?:(?:REML|EV)IN|I(?:NSEY|LA"
+  ")|ALISPELL)|I(?:N(?:VERNESS|GOMAR)|SMAY)|Z(?:ORTMAN|URICH)|YELLOW"
+  "TAIL|ULM))))$"
+  ,
+  /* -- NC -- NC -- NC -- NC -- NC -- NC -- NC -- NC -- NC -- NC -- */
+  "(?:\\b)((?^:(?i:(?:S(?:T(?:A(?:N(?:TONSBURG|FIELD|LEY)|TE(?:SVILL"
+  "E| ROAD)|L(?:LINGS|EY)|CY|R)|O(?:N(?:E(?:VILLE|WALL)|Y POINT)|KES"
+  "(?:DALE)?|VALL)|E(?:DMAN|LLA|M)|UMPY POINT)|E(?:VE(?:N (?:SPRING|"
+  "DEVIL|LAKE)S|RN)|YMOUR JOHNSON A(?: F |F)B|A(?:BOARD|GROVE|LEVEL)"
+  "|(?:DALI|MOR|LM)A)|A(?:L(?:TER PATH|EMBURG|ISBURY|UDA|VO)|(?:INT "
+  "PAU|W MIL)LS|N(?:DY RIDGE|FORD)|XAPAHAW|PPHIRE|RATOGA)|O(?:UTH(?:"
+  " (?:BRUNSWICK|MILLS)|ERN (?:PI?N|SHOR)ES|(?:MON|POR)T|RN SHORE)|P"
+  "HIA)|U(?:GAR (?:M(?:OUNTAI|T)N|GROVE)|N(?:SET BEACH|BURY)|(?:RF C"
+  "IT|PPL)Y|MMERFIELD)|H(?:A(?:NNON(?: PLAZA)?|RPSBURG|LLOTTE|WBORO)"
+  "|E(?:RRILLS FO?RD|LBY)|ILOH)|C(?:(?:ALY M(?:OUNTAI|T)|RANTO)N|OT("
+  "?:T(?:VILLE|S)|LAND NECK))|P(?:(?:R(?:ING (?:HOP|LAK)|UCE PIN)|IN"
+  "DAL)E|E(?:NCER|ED)|ARTA)|W(?:AN(?:QUARTER|NANOA|SBORO)|EPSONVILLE"
+  ")|I(?:L(?:ER CITY|OAM)|M(?:PSON|S))|N(?:OW (?:CAMP|HILL)|EADS FER"
+  "RY)|M(?:ITHFIELD|YRNA)| BRUNSWICK|KYLAND|JAFB|YLVA)|C(?:A(?:R(?:O"
+  "L(?:INA (?:SHOR(?:ES)?|B(?:EA)?CH)|EEN)|RBORO|THAGE|Y)|S(?:T(?:LE"
+  " HAYNE|ALIA)|WELL BEACH|HIERS|AR)|M(?:(?:ERO|DE)N|P LEJEUNE)|PE ("
+  "?:CARTERET|FEAR)|N(?:D(?:LE|O)R|TON)|L(?:ABASH|YPSO)|TAWBA)|O(?:N"
+  "(?:NELLY(?:S SP(?:RINGS|G)| SPG)|CORD|ETOE|OVER|WAY)|L(?:ER(?:IDG"
+  "E|AIN)|UMB(?:IA|US)|LETTSVILLE|FAX|ON)|R(?:(?:DOV|OLL)A|APEAKE|NE"
+  "LIUS)|M(?:FORT|O)|OLEEMEE|VE CITY|INJOCK|FIELD|UNCIL|ATS)|H(?:I(?"
+  ":N(?:A GROVE|QUAPIN)|MNEY ROCK)|ER(?:RY(?: POINT|VILLE)|OKEE)|A(?"
+  ":PEL HILL|DBOURN|RLOTTE)|OCOWINITY)|L(?:A(?:R(?:E(?:MONT|NDON)|KT"
+  "ON)|YTON)|I(?:FFSIDE|NTON|MAX)|E(?:VELAND|MMONS)|YDE)|E(?:DAR (?:"
+  "M(?:OUNTAI|T)N|ISLAND|FALLS|GROVE|POINT)|RRO GORDO)|R(?:E(?:S(?:W"
+  "ELL|TON)|EDMOOR)|O(?:SSNOR|US)E|AMERTON|UMPLER)|U(?:L(?:BERSON|LO"
+  "WHEE)|M(?:BERLAND|NOCK)|RRI(?:TUCK|E)))|M(?:A(?:R(?:S(?:H(?:ALL(?"
+  ":BERG)?|VILLE)| HILL|TON)|GARETTSV(?:ILLE|L)|I(?:ETTA|ON)|BLE|VIN"
+  ")|N(?:NS HARBOR|SON|TEO)|G(?:GIE VALLEY|NOLIA)|(?:(?:DIS|XT)O|IDE"
+  ")N|C(?:CLESFIELD|ON)|Y(?:SVILLE|ODAN)|(?:TTHEW|MER)S|PLE(?: HILL)"
+  "?|URY)|O(?:UNT(?: (?:(?:MOURN|OLIV)E|(?:HOLL|AIR)Y|PLEASANT|GILEA"
+  "D|ULLA)|AIN HOME)|R(?:AVIAN F(?:AL)?LS|(?:GANTO|VE)N|EHEAD CITY|R"
+  "ISVILLE)|N(?:T(?:EZUMA|REAT)|(?:CUR|RO)E)|ORES(?:VILLE|BORO)|CKSV"
+  "ILLE|YOCK)|I(?:N(?:NE(?:SOTT B(?:EA)?CH|APOLIS)|ERAL SP(?:RIN)?GS"
+  "|T HILL)|L(?:L(?:ERS CREEK| SPRING|S RIVER)|WAUKEE|TON)|D(?:DLE(?"
+  ":BURG|SEX)|WAY PARK|LAND)|C(?:AVILLE|RO)|SENHEIMER)|C(?: (?:(?:LE"
+  "ANS|ADEN)VILLE|FARLAN|GRADY)|CUTCH(?:EON FIE|N F)LD)|E(?:RR(?:Y H"
+  "ILL|ITT)|BANE|SIC)|T (?:PLEASANT|HOLLY)|UR(?:FREESBORO|PHY))|B(?:"
+  "A(?:R(?:IUM SP(?:RI)?NGS|N(?:ARD|E)SVILLE|BER|CO)|L(?:D HEAD ISL("
+  "?:AND)?|SAM(?: GROVE)?)|T(?:TLEBORO| CAVE|H)|DIN(?: LAKE)?|KERSVI"
+  "LLE|NNER ELK|YBORO|HAMA|ILEY)|E(?:L(?:VI(?:DER|LL)E|EWS CREEK|LAR"
+  "THUR|HAVEN|MONT)|A(?:R(?: CREEK|GRASS)|UFORT)|ECH M(?:OUNTAIN|NT)"
+  "|N(?:NETT|SON)|TH(?:ANIA|EL)|SSEMER CITY|ULAVILLE)|U(?:R(?:LINGTO"
+  "N|NSVILLE|GAW)|(?:IES CREE|LLOC)K|T(?:TERS|NER)|NN(?:LEVEL)?|FFAL"
+  "O LAKE|XTON)|O(?:(?:ILING SP(?:RIN)?G|WDEN)S|O(?:N(?:VILL)?E|MER)"
+  "|L(?:IVIA|TON)|GER CITY|NLEE|STIC)|R(?:O(?:WNS SUMMIT|ADWAY)|(?:A"
+  "SSTOW|IDGETO)N|E(?:NTWOO|VAR)D|YSON CITY|UNSWICK)|L(?:A(?:CK (?:M"
+  "(?:OUNTAI|T)N|CREEK)|DENBORO|NCH)|O(?:UNTS CREE|WING ROC)K)|I(?:L"
+  "TMORE (?:F(?:ORE|R)ST|LAKE)|SCOE)|YNUM)|W(?:A(?:L(?:L(?:BURG|ACE)"
+  "|NUT COVE|STONBURG|KERTOWN)|R(?:REN(?:SVILLE|TON)|SAW|NE)|(?:YNES"
+  "VILL|NCHES)E|DE(?:SBORO)?|KE FOREST|SHINGTON|GRAM|XHAW|THA|VES|CO"
+  ")|I(?:L(?:L(?:I(?:AM)?STON|OW SPRING|ARD)|SON(?:S MILLS)?|KESBORO"
+  "|MINGTON|BAR)|N(?:T(?:ERVILLE|ON)|STON SALEM|NABOW|DSOR|FALL|GATE"
+  ")|SE)|E(?:S(?:LEY(?:AN COL(?:LEGE)?| CHAPEL)|T(?: (?:JEFFERSON|EN"
+  "D)|FIELD))|N(?:TWORTH|DELL)|L(?:COME|DON)|AVERVILLE|DDINGTON|BSTE"
+  "R)|HI(?:T(?:E(?: (?:PLAINS|OAK)|VILLE|HEAD)|AKERS|SETT|TIER)|SPER"
+  "(?:ING PI| P)NES)|RI(?:GHTSVILLE BEA|TSVLLE B)CH|OOD(?:L(?:AND|EA"
+  "F)|FIN)| JEFFERSON)|L(?:A(?:KE(?: (?:SANTEETLAH|JUNALUSKA|WACCAMA"
+  "W|TOXAWAY|LURE|PARK)|VIEW)|UR(?:EL (?:SP(?:RIN)?GS|HILL|PARK)|INB"
+  "URG)|(?:W(?:SONVIL|NDA)L| GRANG|TTIMOR)E|N(?:SING|DIS)|SKER)|I(?:"
+  "N(?:VILLE(?: F(?:AL)?LS)?|(?:COLNTO|DE)N|WOOD)|TTLE(?: SWITZERLAN"
+  "D|TON)|L(?:ESVILLE|LINGTON)|BERTY)|E(?:WIS(?:TON(?: WOODVILLE)?|V"
+  "ILLE)|(?:ICESTE|NOI)R|MON SPRINGS|XINGTON|ASBURG|LAND)|O(?:W(?:LA"
+  "ND|ELL|GAP)|NG(?:ISLAN|WOO)D|UISBURG|CUST)|U(?:MBER(?: BRIDGE|TON"
+  ")|CAMA)|K (?:SANTEETLAH|JUNALUSKA)|TL SWITZRLND|YNN)|P(?:I(?:N(?:"
+  "E(?: (?:(?:LEVE|HAL)L|KNOLL SHORES)|TO(?:PS|WN)|Y CREEK|BLUFF|HUR"
+  "ST|VILLE|OLA)|K HILL|NACLE)|LOT M(?:OUNTAI|T)N|SGAH FOREST|KEVILL"
+  "E|TTSBORO)|O(?:L(?:K(?:VILLE|TON)|LOCKSVILLE)|P(?:E A(?: F |F)B|L"
+  "AR BRANCH)|WELLS(?: POINT|VILLE)|INT HARBOR|TECASI)|R(?:O(?:(?:CT"
+  "ORVILL|VIDENC)E|SPECT HILL)|INCE(?:VILLE|TON))|E(?:N(?:DLETON|LAN"
+  "D|ROSE)|L(?:ETIER|HAM)|ACHLAND|MBROKE)|L(?:EASANT (?:G(?:ARDE|D)N"
+  "|HILL)|UMTREE|YMOUTH)|A(?:R(?:KTON|MELE)|TTERSON|W CREEK|NTEGO)|F"
+  "AFFTOWN|URLEAR|KS)|H(?:A(?:R(?:R(?:ELLS(?:VILLE)?|IS(?:BURG)?)|KE"
+  "RS IS(?:LAND)?|BINGER|MONY)|M(?:P(?:TONVILLE|STEAD)|ILTON|LET)|L("
+  "?:LSBORO|IFAX)|Y(?:ESVILLE|S)|W RIVER|ZELWOOD|TTERAS|VELOCK|SSELL"
+  ")|O(?:L(?:L(?:Y (?:SPRINGS|RIDGE)|ISTER)|DEN BEACH)|B(?:BSVILLE|U"
+  "CKEN|GOOD)|(?:T SPRING|PE MILL)S|(?:OKERTO|FFMA)N|RSE SHOE)|I(?:G"
+  "H(?: (?:SHOALS|POINT)|(?:FALL|LAND)S)|L(?:LSBOROUGH|DEBRAN)|DDENI"
+  "TE|CKORY)|E(?:N(?:DERSON(?:VI?LLE)?|RI(?:ETTA|CO))|RTFORD)|U(?:NT"
+  "ERSVILLE|RDLE MILLS|BERT|DSON|SK))|R(?:O(?:A(?:NOKE RAPID(?:S(?: "
+  "AIR FORCE STA)?)?|RING (?:RIVER|GAP))|CK(?:Y (?:MOU|POI)NT|INGHAM"
+  "|WELL)|B(?:BINS(?:VILLE)?|ERSONVILLE)|S(?:E(?: HILL|BORO)|MAN)|N("
+  "?:OK RPD AFS|DA)|D(?:ANTHE|UCO)|X(?:BORO|OBEL)|LESVILLE|UGEMONT|W"
+  "LAND|PER)|I(?:CH(?: SQUARE|FIELD|LANDS)|DGE(?:CREST|WAY)|EGELWOOD"
+  ")|E(?:SEARCH TRIANGLE PARK|D (?:SPRINGS|OAK)|IDSVILLE|X)|U(?:THER"
+  "F(?:ORD(?: COLLEGE|TON)|RD COL)|RAL HALL|FFIN)|A(?:NDLEMAN|EFORD|"
+  "LEIGH|MSEUR)|HODHISS|TP)|G(?:R(?:A(?:N(?:ITE (?:Q(?:UAR)?RY|FALLS"
+  ")|TSBORO|DY)|SSY CREEK|HAM)|EEN(?: (?:M(?:OUNTAI|T)N|LEVEL)|SBORO"
+  "|VILLE)|I(?:MESLAND|FTON)|OVER)|L(?:EN(?:D(?:ALE SP(?:RIN)?GS|ON)"
+  "| (?:ALPINE|RAVEN)|VILLE|WOOD)|ADE VALLEY|OUCESTER)|A(?:R(?:YSBUR"
+  "G|LAND|NER)|TES(?:VILLE)?|STON(?:IA)?)|O(?:LD(?:S(?:BORO|TON)| HI"
+  "LL)|DWIN)|E(?:R(?:MAN)?TON|ORGE)|IBSON(?:VILLE)?|U(?:MBERRY|LF))|"
+  "E(?:L(?:IZABETH(?: CI?TY|TOWN)|LE(?:NBORO|RBE)|ON(?: COLLEGE)?|K("
+  "?: PARK|IN)|M CITY)|A(?:ST (?:F(?:AYETTEVILLE|LAT ROCK)|SPENCER|B"
+  "END|LAKE)|GLE (?:SPRINGS|ROCK)|RL)|N(?:(?:GELHAR|FIEL)D|O VALLEY|"
+  "NICE|KA)|D(?:E(?:NTO)?N|NEYVILLE|WARD)| F(?:AYETTEVI?LLE|LAT ROCK"
+  ")|VER(?:GREEN|ETTS)|T(?:OWAH|HER)|R(?:NUL|WIN)|MERALD ISLE|URE(?:"
+  "KA)?|FLAND)|A(?:L(?:EX(?:ANDER(?: M(?:IL)?LS)?|IS)|BE(?:MARLE|RTS"
+  "ON)|(?:AM|LI)ANCE|TAMAHAW|MOND)|T(?:LANTIC(?: B(?:EA)?CH)?|KINSON"
+  ")|R(?:A(?:PAHOE|RAT)|CHDALE|DEN)|U(?:TRYVILLE|LANDER|RORA)|N(?:SO"
+  "NVILLE|DREWS|GIER)|SH(?:E(?:VILLE|BORO))?|(?:DVANC|HOSKI|QUON)E|M"
+  "F G(?:REENS| )BORO|(?:BERDEE|VO)N|YD(?:LETT|EN)|PEX)|F(?:A(?:I(?:"
+  "R(?: BLUFF|FIELD|MONT|VIEW)|SON|TH)|L(?:(?:LST|C)ON|KLAND)|(?:YET"
+  "TE|RM)VILLE)|O(?:R(?:EST CITY|T BRAGG)|XFIRE V(?:ILLAGE|LG)|U(?:R"
+  " OAKS|NTAIN)|NTANA DAM)|R(?:ANK(?:LIN(?:VILLE|TON)?)?|EMONT|ISCO)"
+  "|E(?:ARRINGTON(?: VILLAGE)?|RGUSON)|L(?:E(?:ETWOOD|TCHER)|AT ROCK"
+  ")|UQUAY VARINA)|T(?:A(?:R(?:AWA TER(?:RACE)?| HEEL|BORO)|YLORSVIL"
+  "LE|BOR CITY|POCO)|R(?:ENT(?: WOODS|ON)|I(?:PLETT|NITY)|O(?:UTMAN|"
+  "Y)|APHILL|YON)|O(?:P(?:SAIL BEACH|TON)|(?:BACCO|WNS)VILLE|AST|DD)"
+  "|U(?:R(?:NERSBURG|KEY)|CKASEGEE|XEDO)|H(?:OMASVILLE|URMOND)|I(?:M"
+  "BERLAKE|LLERY)|E(?:ACHEY|RRELL)|YNER)|N(?:E(?:W(?: (?:(?:LONDO|BE"
+  "R)N|HILL)|TON(?: GROVE)?|LAND|PORT|ELL)|BO)|A(?:VA(?:L HOS(?:PITA"
+  "L)?|SSA)|GS HEAD|SHVILLE|KINA|PLES)| (?:TOPSAIL B(?:EA)?CH|WILKES"
+  "BORO)|OR(?:TH WILKESBORO|LINA|WOOD|MAN))|K(?:I(?:N(?:G(?:S(?: M(?"
+  ":OUNTAI|T)|TOW)N)?|STON)|LL DEVIL H(?:ILLS|L)|TT(?:Y HAWK|RELL)|P"
+  "LING)|E(?:N(?:ANSVILLE|LY)|L(?:FORD|LY)|RNERSVILLE)|N(?:OTTS ISLA"
+  "ND|IGHTDALE)|ANNAPOLIS|URE BEACH)|D(?:U(?:R(?:ANTS NECK|HAM)|(?:B"
+  "LI|N)N|DLEY|CK)|E(?:EP (?:GAP|RUN)|N(?:TON|VER)|LCO)|A(?:VI(?:DSO"
+  "N|S)|N(?:BURY|A)|LLAS)|O(?:BSON|VER)|ILLSBORO|REXEL)|O(?:AK(?: (?"
+  ":ISLAND|RIDGE|CITY)|BORO)|C(?:EAN ISL(?:E BEA| B)CH|RACOKE)|L(?:I"
+  "(?:VIA|N)|D FORT)|R(?:IENTAL|RUM)|XFORD|TTO)|J(?:A(?:CKSON(?: SP("
+  "?:RIN)?GS|VILLE)?|MES(?:VILLE|TOWN)|RVISBURG)|ON(?:AS RIDG|ESVILL"
+  ")E|(?:EFFERSO|ULIA)N)|V(?:A(?:L(?:(?:DES)?E|LE CRUCIS)|N(?:CEBORO"
+  "|DEMERE)|UGHAN|SS)|ILAS)|I(?:N(?:DIAN (?:BEACH|TRAIL)|GOLD)|RON S"
+  "TATION|VANHOE|CARD)|Z(?:I(?:ONVILLE|RCONIA)|EBULON)|Y(?:A(?:DKIN|"
+  "NCEY)|OUNGS)VILLE|UN(?:ION (?:GROVE|MILLS)|AKA)))))$"
+  ,
+  /* -- ND -- ND -- ND -- ND -- ND -- ND -- ND -- ND -- ND -- ND -- */
+  "(?:\\b)((?^:(?i:(?:B(?:U(?:F(?:FALO(?: SP(?:RINGS|G))?|ORD)|R(?:L"
+  "INGTON|NSTAD|T)|C(?:HANAN|YRUS)|XTON|TTE)|E(?:R(?:(?:GE|LI)N|THOL"
+  "D|WICK)|L(?:COURT|FIELD|DEN)|N(?:EDICT|TLEY)|(?:ULA|AC)H)|A(?:T(?"
+  ":TLEVIEW|HGATE)|L(?:DWIN|FOUR|TA)|R(?:NEY|TON)|CKOO|NTRY|KER)|R(?"
+  ":A(?:NTFORD|DDOCK|MPTON)|I(?:ARWOOD|NSMADE)|E[IM]EN|OCKET)|O(?:W("
+  "?:(?:DO|MA)N|ESMONT|BELLS)|NETRAILL|TTINEAU|RDULAC)|I(?:S(?:MARCK"
+  "|BEE)|NFORD)|LA(?:ISDELL|NCHARD))|M(?:A(?:N(?:DA(?:REE|N)|TADOR|F"
+  "RED|NING|VEL)|R(?:(?:IO|TI)N|MARTH|SHALL)|P(?:LETON|ES)|X(?:BASS)"
+  "?|(?:ID|Z)A|YVILLE|DDOCK|KOTI)|I(?:N(?:OT(?: AFB)?|NEWAUKAN|TO)|L"
+  "(?:(?:LAR)?TON|NOR)|CHIGAN)|O(?:N(?:TPELIER|ANGO)|(?:ORETO|UNTAI)"
+  "N|(?:FFI|T)T|HALL)|C(?:(?:KENZI|VILL)E|C(?:LUSKY|ANNA)|GREGOR|HEN"
+  "RY|LEOD)|E(?:R(?:RICOURT|CER)|D(?:IN|OR)A|KINOCK|LVILLE|NOKEN)|UN"
+  "ICH|YLO)|S(?:T(?:R(?:A(?:UBVILLE|SBURG)|EETER)|A(?:N(?:LEY|TON)|R"
+  "KWEATHER)|E(?:RLING|ELE)|IRUM)|A(?:INT (?:ANTHONY|MICHAEL|THOMAS|"
+  "JOHN)|N(?:(?: HAVE|BOR)N|ISH)|RLES|WYER)|H(?:E(?:RWOOD|YENNE|LDON"
+  ")|IELDS|ARON)|O(?:U(?:TH(?: HEART|AM)|RIS)|LEN)|E(?:L(?:FRIDGE|Z)"
+  "|NTI?NEL BUTTE)|P(?:RINGBROOK|IRITWOOD)|Y(?:KESTON|DNEY)|U(?:RREY"
+  "|TTON)|I(?:BLEY|LVA)|CRANTON)|C(?:A(?:R(?:(?:RINGT|S)ON|TWRIGHT|B"
+  "URY|PIO)|L(?:EDONIA|VIN|IO)|N(?:NON BALL|DO)|VALIER(?: AFS)?|SSEL"
+  "TON|THAY|YUGA)|O(?:L(?:GA(?:TE|N)|EHARBOR|UMBUS|FAX)|U(?:RTENAY|L"
+  "EE)|OPERSTOWN|GSWELL|NCRETE|RINTH|TEAU)|H(?:A(?:RLSON|SELEY|FFEE)"
+  "|URCHS FERRY|RISTINE)|R(?:YSTAL(?: SP(?:RIN)?GS)?|(?:OSB|AR)Y|ETE"
+  ")|L(?:(?:EVELAN|IFFOR)D|YDE)|UMMINGS|ENTER)|G(?:R(?:A(?:N(?:D(?: "
+  "(?:FORKS(?: AFB)?|RAPIDS)|IN)|VILLE)|SSY BUTTE|CE CITY|FTON)|E(?:"
+  "AT BEND|NORA))|A(?:R(?:D(?:NE|A)R|RISON)|L(?:ESBURG|CHUTT)|(?:SCO"
+  "YN|CKL)E)|L(?:EN(?:(?: ULLI|BUR)N|FIELD)|A(?:DSTONE|SSTON))|O(?:L"
+  "(?:DEN VALLEY|VA)|ODRICH|RHAM)|ENESEO|WINNER|UELPH|FAFB|ILBY)|W(?"
+  ":I(?:L(?:L(?:OW CITY|ISTON)|D(?: RIC|ROS)E|TON)|N(?:DSOR|G)|MBLED"
+  "ON|SHEK)|A(?:L(?:HALLA|COTT|ES|UM)|(?:HPETO|SHBUR)N|TFORD CITY|RW"
+  "ICK)|H(?:IT(?:E (?:SHIELD|EARTH)|MAN)|E(?:ATLAND|ELOCK))|E(?:ST(?"
+  ": FARGO|FIELD|HOPE)|(?:BST|RN)ER)|O(?:L(?:FORD|SETH)|ODWORTH)|YND"
+  "MERE)|H(?:A(?:N(?:N(?:A(?:FORD|H)|OVER)|KINSON|SBORO)|M(?:(?:ILTO"
+  "|PDE)N|BERG|LET|AR)|(?:ZE(?:LTO)?|TTO)N|R(?:WOOD|LOW|VEY)|(?:STIN"
+  "G|YNE)S|LLIDAY|VANA|GUE)|E(?:NS(?:LER|EL)|(?:AT|BR)ON|I(?:MDA)?L|"
+  "TTINGER)|O(?:(?:OPL|RAC|P)E|NEYFORD)|U(?:RDSFIELD|NTER|FF)|I(?:LL"
+  "SBORO|CKSON))|F(?:O(?:R(?:T(?: (?:R(?:ANSOM|ICE)|TOTTEN|CLARK|YAT"
+  "ES)|UNA)|EST RIVER|DVILLE|BES|MAN)|XHOLM)|A(?:IR(?:FIELD|MOUNT|DA"
+  "LE)|RGO)|I(?:N(?:GAL|LEY)|LLMORE)|R(?:EDONIA|ONTIER|YBURG)|L(?:A("
+  "?:SHER|XTON)|ORA)|(?:ESSENDE|ULLERTO)N)|L(?:A(?:N(?:(?:GDO|KI)N|S"
+  "FORD|DA)|K(?:E WILLIAMS|OTA)|R(?:IMORE|SON|K)|MOURE|WTON)|I(?:(?:"
+  "N(?:COL|TO)|SBO)N|(?:TCHVILL|GNIT)E|DGERWOOD)|E(?:(?:FO|H)R|ONARD"
+  "|EDS|ITH|ROY|AL)|O(?:STWOOD|RAINE|MA)|U(?:VERNE|DDEN))|D(?:E(?:(?"
+  ":VILS LAK|LAMER)E|N(?:BIGH|HOFF)|S LACS|ERING)|A(?:(?:HLE|WSO)N|V"
+  "ENPORT|ZEY)|U(?:N(?:N CENTER|SEITH)|RBIN)|O(?:NNYBROOK|UGLAS|DGE|"
+  "YON)|R(?:A(?:YTON|KE)|ISCOLL)|ICK(?:INSON|EY)|WIGHT)|A(?:R(?:(?:V"
+  "ILL|EN)A|GUSVILLE|NEGARD|DOCH|THUR)|L(?:(?:KAB|AM)O|EXANDER|FRED|"
+  "MONT|ICE|SEN)|B(?:ERCROMBIE|SARAKA)|M(?:BROSE|ENIA|IDON)|N(?:AMOO"
+  "SE|TLER|ETA)|D(?:RIAN|AMS)|SHLEY|GATE|PPAM|YR)|R(?:O(?:L(?:ETTE|L"
+  "A)|S(?:EGLEN|S)|BINSON|CKLAKE|GERS|TH)|E(?:(?:ILES ACRE|YNOLD)S|G"
+  "(?:ENT|AN)|EDER)|I(?:VER(?:DAL|SID)E|CHARDTON)|A(?:LEIGH|WSON|UB|"
+  "Y)|U(?:TLAND|GBY|SO)|HAME|YDER)|P(?:E(?:T(?:ERSBURG|TIBONE)|(?:KI"
+  "|N)N|MBINA|RTH)|A(?:R(?:K RIVER|SHALL)|LERMO|GE)|O(?:RT(?:LAND|AL"
+  ")|WERS LAKE)|I(?:LLSBURY|NGREE|SEK)|R(?:AIRIE ROSE|OSPER)|L(?:EAS"
+  "ANT LAKE|AZA))|N(?:E(?:W(?: (?:(?:ROCKFOR|ENGLAN)D|LEIPZIG|HRADEC"
+  "|SALEM|TOWN)|BURG)|KOMA|CHE)|O(?:R(?:T(?:H(?: RIVER|GATE|WOOD)|ON"
+  "VILLE)|WICH|MA)|ONAN|ME)|A(?:(?:POLE|NS)ON|SH)|IAGARA)|E(?:L(?:L("
+  "?:ENDALE|IOTT)|DRIDGE|GIN)|D(?:M(?:UNDS|ORE)|INBURG|GELEY)|M(?:ER"
+  "ADO|BDEN|RICK|MET)|N(?:GLEVALE|DERLIN)|(?:GELA|SMO)ND|CKELSON|PPI"
+  "NG|RIE)|T(?:O(?:W(?:ER CITY|NER)|L(?:LEY|NA)|KIO)|A(?:PPEN|YLOR|G"
+  "US)|U(?:RTLE LAK|TTL)E|R(?:OTTERS|ENTON)|EM(?:PLE|VIK)|HOMPSON|IO"
+  "GA)|K(?:E(?:N(?:MARE|SAL)|MPTON|ENE|LSO)|I(?:N(?:DRED|TYRE)|LLDEE"
+  "R|EF)|A(?:RLSRUHE|THRYN)|LOTEN|RAMER|NOX|ULM)|J(?:U(?:D(?:SON)?|A"
+  "NITA)|O(?:HNSTOWN|LIETTE)|AMESTOWN|ESSIE)|O(?:R(?:R(?:IN)?|ISKA)|"
+  "SNABROCK|BERON|VERLY|AKES|XBOW)|V(?:E(?:NTURI|RON|LV)A|O(?:LTAIRE"
+  "|SS)|ALLEY CITY)|U(?:N(?:DERWOOD|ION)|PHAM)|Z(?:A(?:HL|P)|EELAND)"
+  "|Y(?:PSILANTI|ORK)|INKSTER))))$"
+  ,
+  /* -- NE -- NE -- NE -- NE -- NE -- NE -- NE -- NE -- NE -- NE -- */
+  "(?:\\b)((?^:(?i:(?:B(?:E(?:A(?:VER (?:C(?:ROSSING|ITY)|XING)|TRIC"
+  "E)|L(?:(?:VIDER|GRAD)E|L(?:EVUE|WOOD)|DEN)|N(?:N(?:INGTON|ET)|KEL"
+  "MAN|EDICT)|R(?:TRAND|WYN)|E(?:MER)?)|R(?:O(?:WN(?:VILL|LE)E|ADWAT"
+  "ER|KEN BOW|CK)|U(?:N(?:SWICK|ING|O)|LE)|A(?:D(?:SHAW|Y)|INARD)|I("
+  "?:DGEPORT|STOW)|EWSTER)|A(?:R(?:TLE(?:TT|Y)|NESTON)|(?:NCROF|SSET"
+  ")T|TTLE CREEK|YARD)|L(?:OOM(?:INGTON|FIELD)|UE (?:SPRINGS|HILL)|A"
+  "(?:DEN|IR))|U(?:R(?:CHARD|WELL|R)|SHNELL|TTE)|O(?:YS ?TOWN|ELUS|O"
+  "NE)|I(?:G SPRINGS|NGHAM)|YRON)|S(?:T(?:A(?:PLE(?:HURST|TON)|MFORD"
+  "|NTON)|E(?:ELE CITY|INAUER|RLING|LLA)|R(?:A(?:TTON|NG)|OMSBURG)| "
+  "COLUMBANS|OCKVILLE|UART)|A(?:INT (?:(?:LIBO|MA)RY|EDWARD|HELENA|P"
+  "AUL)|R(?:ONVILLE|GENT)|LEM)|P(?:R(?:ING(?:FIELD|VIEW)|AGUE)|A(?:L"
+  "DING|RKS)|ENCER)|U(?:T(?:HERLAND|TON)|(?:PERIO|MNE)R|RPRISE)|C(?:"
+  "OT(?:TSBLUFF|IA)|(?:HUYL|RIBN)ER)|H(?:EL(?:TON|BY)|ICKLEY|UBERT)|"
+  "OUTH (?:SIOUX CITY|BEND)|I(?:LVER CREEK|DNEY)|E(?:NECA|WARD)| SIO"
+  "UX CITY|MITHFIELD|YRACUSE|WANTON|NYDER)|C(?:O(?:R(?:(?:DOV|NLE)A|"
+  "TLAND)|(?:TESFIEL|NCOR|ZA)D|L(?:ERIDGE|UMBUS|ON)|(?:MSTOC|O)K|WLE"
+  "S|DY)|R(?:A(?:(?:B ORCHA|WFO)RD|IG)|E(?:(?:IGH|S)TON|TE)|O(?:OKS|"
+  "F)TON)|E(?:DAR (?:(?:BLUFF|RAPID)S|CREEK)|NT(?:RAL CITY|ER)|RESCO"
+  ")|A(?:M(?:BRIDGE|PBELL)|R(?:LETON|ROLL)|LLAWAY|IRO)|H(?:A(?:M(?:B"
+  "ERS|PION)|P(?:PELL|MAN)|DRON)|ESTER)|L(?:A(?:RKS(?:ON)?|Y CENTER|"
+  "TONIA)|EARWATER)|U(?:LBERTSON|RTIS))|H(?:A(?:R(?:RIS(?:BURG|ON)|T"
+  "INGTON|VARD|DY)|Y(?:ES CENTER| SPRINGS)|M(?:PTON|LET)|(?:IGLE|DA)"
+  "R|L(?:LAM|SEY)|STINGS|ZARD)|O(?:L(?:(?:MESVILL|DREG)E|BROOK|STEIN"
+  "|LAND)|(?:SKIN|WELL)S|(?:OP|M)ER|RDVILLE)|E(?:N(?:D(?:ERSON|LEY)|"
+  "RY)|R(?:SHEY|MAN)|MINGFORD|ARTWELL|BRON)|U(?:M(?:BOLDT|PHREY)|BB("
+  "?:ARD|ELL)|NTLEY)|I(?:LDRETH|CKMAN)|YANNIS)|M(?:A(?:R(?:QUETTE|SL"
+  "AND|TELL)|S(?:ON CITY|KELL)|D(?:ISON|RID)|L(?:COLM|MO)|(?:NLE|C)Y"
+  "|X(?:WELL)?|YWOOD|GNET)|I(?:L(?:L(?:IGAN|ARD|ER|S)|BURN|FORD)|N(?"
+  ":ATARE|DEN)|TCHELL)|C(?: COO(?:L J(?:UNCTION|CT)|K)|COOK|GREW|LEA"
+  "N)|E(?:AD(?:OW GROVE)?|R(?:RIMAN|NA)|LBETA|MPHIS)|O(?:R(?:SE BLUF"
+  "F|RILL)|OREFIELD|NROE)|U(?:R(?:DOCK|RAY)|LLEN))|W(?:A(?:L(?:T(?:H"
+  "ILL|ON)|LACE)|TER(?:BURY|LOO)|U(?:NET|S)A|(?:HO|C)O|SHINGTON|KEFI"
+  "ELD|VERLY|YNE)|I(?:N(?:NE(?:BAGO|TOON)|S(?:IDE|LOW))|L(?:LOW ISLA"
+  "ND|SONVILLE|BER|COX)|SNER)|E(?:ST(?:ER(?:VILLE|N)| POINT|ON)|(?:L"
+  "LFLEE|ISSER)T|EPING WATER)|O(?:OD (?:RIVER|LAKE)|LBACH)|HIT(?:(?:"
+  "ECLA|NE)Y|MAN)|Y(?:MORE|NOT))|P(?:A(?:L(?:M(?:YRA|ER)|ISADE)|(?:P"
+  "ILLI|XT)ON|WNEE CITY|NAMA|RKS|GE)|L(?:A(?:TT(?:E CENTER|SMOUTH)|I"
+  "NVIEW)|EASANT(?: DALE|ON)|YMOUTH)|R(?:(?:IMROS|AGU)E|OSSER)|E(?:T"
+  "ERSBURG|NDER|RU)|I(?:CKRELL|ERCE|LGER)|O(?:TTER|NCA|LK)|HILLIPS|U"
+  "RDUM)|A(?:L(?:(?:M(?:ERI)?|EXANDRI|D)A|L(?:IANCE|EN)|BION|VO)|R(?"
+  ":C(?:ADIA|HER)|LINGTON|APAHOE|NOLD|THUR)|N(?:S(?:ELMO|LEY)|GORA)|"
+  "M(?:E(?:LIA|S)|HERST)|SH(?:LAND|TON|BY)|T(?:KINSON|LANTA)|U(?:BUR"
+  "N|RORA)|INSWORTH|XTELL|DAMS|GNEW|VOCA|BIE|YR)|L(?:E(?:(?:(?:XINGT"
+  "|BAN)O|W(?:ELLE|ISTO))N|MOYNE|SHARA|IGH)|O(?:U(?:ISVILLE|P CITY)|"
+  "(?:DGEPOL|NG PIN)E|OMIS|RTON)|I(?:N(?:COLN|DSAY|WOOD)|TCHFIELD|BE"
+  "RTY|SCO)|A(?:(?:KESID|WRENC)E| ?VISTA|UREL|MAR)|Y(?:MAN|NCH|ONS))"
+  "|D(?:A(?:V(?:E(?:NPORT|Y)|ID CITY)|(?:(?:LT|WS)O|YKI)N|N(?:NEBROG"
+  "|BURY)|KOTA CITY)|E(?:(?:CATU|SHLE)R| WITT|WEESE|NTON)|O(?:RCHEST"
+  "ER|NIPHAN|UGLAS|DGE)|U(?:N(?:NING|BAR|CAN)| BOIS)|I(?:X(?:ON)?|CK"
+  "ENS|LLER)|WIGHT)|R(?:O(?:S(?:E(?:LAND|MONT)?|ALIE)|C(?:KVILLE|A)|"
+  "GERS|YAL)|I(?:CH(?:FIEL|LAN)D|VER(?:DALE|TON)|SING CITY)|E(?:PUB("
+  "?:LICAN)? CITY|D CLOUD|YNOLDS)|A(?:(?:LSTO|GA)N|NDOLPH|VENNA|YMON"
+  "D)|U(?:S(?:HVILLE|KIN)|LO))|G(?:R(?:E(?:E(?:NWOOD|LEY)|SHAM|TNA)|"
+  "A(?:N(?:D ISLAND|T)|FTON))|O(?:THENBURG|EHNER|RDON)|I(?:L(?:TNER|"
+  "EAD)|BBON)|E(?:N(?:EV|O)A|RING)|L(?:ADSTONE|ENVIL)|U(?:IDE ROCK|R"
+  "LEY)|AR(?:RISON|LAND))|O(?:R(?:(?:CHAR)?D|LEANS)|S(?:CEOLA|HKOSH|"
+  "MOND)|(?:GALLAL|HIOW|MAH)A|FFUTT A(?: F |F)B|AK(?:DALE|LAND)?|C(?"
+  ":TAVIA|ONTO)|DE(?:SSA|LL)|N(?:EILL|G)|VERTON|XFORD|BERT|TOE)|E(?:"
+  "L(?:K(?: CREEK|HORN)|M(?: CREEK|WOOD)|S(?:MER|I)E|(?:YRI|B)A|LSWO"
+  "RTH|WOOD|GIN)|D(?:DYVILLE|ISON|GAR)|ND(?:ICOTT|ERS)|M(?:ERSON|MET"
+  ")|RICSON|USTIS|XETER|AGLE|WING)|N(?:E(?:W(?:(?:MAN GROV|CASTL)E|P"
+  "ORT)|(?:HAWK|MAH)A|L(?:IGH|SON)|BRASKA CITY|NZEL)|OR(?:TH (?:PLAT"
+  "TE|BEND|LOUP)|FOLK|MAN|A)|I(?:CKERSON|OBRARA)|AP(?:ONEE|ER))|F(?:"
+  "A(?:IR(?:FIELD|BURY|MONT)|R(?:WELL|NAM)|LLS CITY)|O(?:R(?:T CALHO"
+  "UN|DYCE)|NTANELLE|STER)|R(?:ANKLIN|EMONT|IEND)|U(?:LLERTON|NK)|I("
+  "?:LLEY|RTH))|T(?:A(?:BLE ROCK|LMAGE|RNOV|YLOR)|R(?:(?:ENT|Y)ON|UM"
+  "BULL)|H(?:EDFORD|URSTON)|E(?:CUMSE|KAMA)H|ILDEN|OBIAS)|V(?:E(?:RD"
+  "(?:IGRE|EL|ON)|NANGO)|AL(?:PARAISO|ENTINE|LEY)|IRGINIA)|J(?:OHNS("
+  "?:ON(?: LAKE)?|TOWN)|U(?:NIATA|LIAN)|A(?:CKSO|NSE)N)|K(?:E(?:N(?:"
+  "ESAW|NARD)|YSTONE|ARNEY)|I(?:LGORE|MBALL))|I(?:N(?:DIANOLA|AVALE|"
+  "LAND|MAN)|MPERIAL|THACA)|U(?:N(?:ADILLA|ION)|EHLING|LYSSES|PLAND|"
+  "TICA)|Y(?:UTAN|ORK)))))$"
+  ,
+  /* -- NH -- NH -- NH -- NH -- NH -- NH -- NH -- NH -- NH -- NH -- */
+  "(?:\\b)((?^:(?i:(?:W(?:E(?:ST(?: (?:S(?:TEWARTSTOWN|WANZEY)|CHEST"
+  "ERFIELD|PETERBOROUGH|NOTTINGHAM|LEBANON|OSSIPEE)|MORELAND)|NTWORT"
+  "H(?:S LOCATION)?|BSTER|ARE)|A(?:TERV(?:ILLE VALLE|L VL)Y|R(?:NER|"
+  "REN)|SHINGTON|LPOLE)|O(?:LFEBORO(?: F(?:AL)?LS)?|ODS(?:VILLE|TOCK"
+  ")|NALANCET)|I(?:N(?:D(?:HAM|SOR)|CHESTER|NISQUAM)|L(?:MOT|TON))| "
+  "(?:STEWARTSTWN|CHESTERFLD|NOTTINGHAM|PETERBORO)|NTWRTHS LCTN|HITE"
+  "FIELD)|N(?:O(?:RTH(?: (?:S(?:A(?:NDWICH|LEM)|TRATFORD|WANZEY|UTTO"
+  "N)|W(?:OODSTOCK|ALPOLE)|HA(?:VERHILL|MPTON)|CONWAY)|(?:UMBERLA?N|"
+  "FIEL|WOO)D)|TTINGHAM)|E(?:W(?: (?:(?:(?:HAMP|BOS)T|LOND)ON|IPSWIC"
+  "H|CASTLE|DURHAM)|TON(?: J(?:UNCTION|CT))?|(?:MARKE|POR)T|FIELDS|I"
+  "NGTON|BURY)|LSON)| (?:S(?:TRATFORD|ANDWICH)|HAVERHILL|WOODSTOCK)|"
+  "ASHUA)|C(?:ENTER (?:S(?:TRAFFORD|ANDWICH)|TUFTONBORO|BARNSTEAD|OS"
+  "SIPEE|CONWAY|HARBOR)|TR (?:S(?:TRAFFORD|ANDWICH)|BARNSTEAD|TUFTNB"
+  "ORO|OSSIPEE)|H(?:A(?:RLESTOWN|THAM)|ESTER(?:FIELD)?|ICHESTER|OCOR"
+  "UA)|O(?:N(?:TOOCOOK|CORD|WAY)|RNISH(?: FLAT)?|LEBROOK)|A(?:N(?:TE"
+  "RBURY|AAN|DIA)|MPTON|RROLL)|LAR(?:KSVILLE|EMONT)|ROYDON)|S(?:T(?:"
+  "RA(?:T(?:FORD|HAM)|FFORD)|EWARTSTOWN|INSON LAKE|ODDARD|ARK)|O(?:U"
+  "TH (?:(?:HAMP|SUT)TON|(?:TAM|AC)WORTH|NEWBURY)|MERSWORTH)|A(?:N(?"
+  ":BORN(?:VILLE|TON)|D(?:WICH|OWN))|L(?:ISBURY|EM))|U(?:N(?:APEE|CO"
+  "OK)|GAR HILL|LLIVAN|RRY)|P(?:RINGFIEL|OFFOR)D|H(?:ELBURNE|ARON)|I"
+  "LVER LAKE| TAMWORTH|EABROOK|WANZEY)|M(?:O(?:U(?:NT (?:WASHINGTON|"
+  "SUNAPEE)|LTONBORO(?:UGH)?)|N(?:T VERNON|ROE))|I(?:L(?:TON(?: MILL"
+  "S)?|FORD|AN)|RROR LAKE|DDLETON)|A(?:RL(?:BOROUGH|OW)|D(?:BURY|ISO"
+  "N)|NCHESTER|SON)|E(?:R(?:RIMACK|EDITH|IDEN)|LVIN V(?:ILLAGE|LG))|"
+  "T WASHINGTON|UNSONVILLE)|H(?:A(?:R(?:TS L(?:OCATIO|CT)N|RISVILLE)"
+  "|MP(?:TON(?: FALLS)?|STEAD)|LES L(?:OCATIO|CT)N|N(?:COCK|OVER)|VE"
+  "RHILL)|O(?:L(?:DERNES|LI)S|PKINTON|OKSETT)|I(?:LL(?:SBORO(?:UGH)?"
+  ")?|NSDALE)|E(?:NNIKER|BRON)|UDSON)|E(?:A(?:ST (?:H(?:AMPSTEAD|EBR"
+  "ON)|(?:LEMPST|ANDOV)ER|WAKEFIELD|KINGSTON|CANDIA|DERRY)|TON CENTE"
+  "R)|NFIELD(?: C(?:ENTE|T)R)?| (?:HAMPSTEA|WAKEFIEL)D|L(?:LSWORTH|K"
+  "INS)|P(?:PING|SOM)|FFINGHAM|XETER|RROL|TNA)|G(?:R(?:EEN(?:(?:FIEL"
+  "|LAN)D|VILLE)|A(?:NTHAM|FTON)|OVETON)|IL(?:MANTON(?: I(?:RON WORK"
+  "S|W))?|FORD|SUM)|O(?:(?:FFSTOW|SHE)N|RHAM)|LEN(?:CLIFF)?|EORGES M"
+  "ILLS|UILD)|L(?:I(?:T(?:CHFIELD|TLETON)|(?:NCOL|SBO)N)|Y(?:M(?:E(?"
+  ": CENTER)?|AN)|NDEBOROUGH)|A(?:N(?:CASTER|DAFF|GDON)|CONIA)|O(?:N"
+  "DONDERRY|CHMERE|UDON)|E(?:MPSTER|BANON|E))|B(?:R(?:E(?:TTON WOODS"
+  "|NTWOOD)|OOK(?:FIELD|LINE)|ADFORD|ISTOL)|E(?:(?:N(?:NING)?TO|RLI)"
+  "N|THLEHEM|DFORD|LMONT)|A(?:R(?:RINGTON|NSTEAD|TLETT)|TH)|O(?:SCAW"
+  "EN|W))|D(?:U(?:(?:NBARTO|BLI)N|MMER|RHAM)|A(?:N(?:VILLE|BURY)|LTO"
+  "N)|E(?:ER(?:FIELD|ING)|RRY)|(?:REWS|IX)VILLE|O(?:RCHEST|V)ER)|A(?"
+  ":L(?:TON(?: BAY)?|EXANDRIA|LENSTOWN|STEAD|BANY)|(?:TKINSO|UBUR)N|"
+  "SH(?:UELOT|LAND)|N(?:DOVER|TRIM)|CWORTH|MHERST)|P(?:E(?:TERBOROUG"
+  "H|MBROKE|NACOOK|LHAM)|I(?:TTS(?:FIELD|BURG)|ERMONT|KE)|L(?:AI(?:N"
+  "FIELD|STOW)|YMOUTH)|ORTSMOUTH)|R(?:O(?:LLINSFORD|CHESTER|XBURY)|A"
+  "(?:NDOLPH|YMOND)|I(?:CHMOND|NDGE)|YE(?: BEACH)?|UMNEY)|F(?:R(?:AN"
+  "(?:C(?:ESTOWN|ONIA)|KLIN)|E(?:EDOM|MONT))|ITZWILLIAM|ARMINGTON)|T"
+  "(?:(?:(?:HORN|IL)TO|WIN MOUNTAI)N|AMWORTH|EMPLE|ROY)|K(?:E(?:(?:A"
+  "RSARG|EN)E|NSINGTON)|INGSTON)|J(?:A(?:CKSON|FFREY)|EFFERSON)|O(?:"
+  "R(?:ANGE|FORD)|SSIPEE)|INTERVALE|UNION))))$"
+  ,
+  /* -- NJ -- NJ -- NJ -- NJ -- NJ -- NJ -- NJ -- NJ -- NJ -- NJ -- */
+  "(?:\\b)((?^:(?i:(?:M(?:O(?:N(?:MOUTH (?:J(?:UNCTION|CT)|B(?:EA)?C"
+  "H)|T(?:(?:V(?:IL|A)L|AGU)E|CLAIR)|ROE(?: T(?:OWNSHI|W)P|VILLE)?)|"
+  "UNT(?: (?:(?:EPHRAI|FREEDO)M|(?:LAURE|ROYA)L|ARLINGTON|HOLLY|TABO"
+  "R)|AIN(?: L(?:AKE|K)S|SIDE))|R(?:RIS(?: PLAINS|TOWN)|GANVILLE)|O("
+  "?:RESTOWN|NACHIE))|A(?:N(?:(?:A(?:(?:LAP|SQU)A|HAWKI)|NINGTO)N|CH"
+  "ESTER(?: T(?:OWNSHIP|W))?|T(?:OLOKING|UA)|VILLE)|R(?:L(?:BORO|TON"
+  ")|GATE CITY|TINSVILLE|MORA)|(?:URICETOW|DISO|TAWA)N|Y(?:S LANDING"
+  "|WOOD)|PLE(?: SHADE|WOOD)|(?:GNOLI|LAG)A|HWAH)|I(?:L(?:L(?:STONE "
+  "T(?:OWNSHI|W)P|(?:INGTO|BUR|TOW)N|VILLE)|FORD|MAY)|D(?:DLE(?:VILL"
+  "E|TOWN|SEX)|LAND PARK)|N(?:E HILL|OTOLA)|CKLETON|ZPAH)|E(?:RC(?:H"
+  "ANT|ER)VILLE|DFORD(?: LAKES)?|TUCHEN|NDHAM)|C(?: (?:GUIRE AFB|AFE"
+  "E)|KEE CITY)|YSTIC ISLA?NDS|T ARLINGTON|ULLICA HILL)|S(?:O(?:UTH("
+  "?: (?:HA(?:RRISON TOWNSHIP|CKENSACK)|(?:SEAVILL|ORANG)E|BOUND BRO"
+  "OK|PLAINFIELD|DENNIS|AMBOY|RIVER)|AMPTON)|MER(?:S(?: POIN|E)T|(?:"
+  "VIL|DA)LE))|T(?:A(?:FFORD T(?:OWNSHI|W)P|N(?:HOPE|TON))|O(?:CK(?:"
+  "HOLM|TON)|NE HARBOR)|I(?:LLWATER|RLING)|RAT(?:HMERE|FORD)|EWARTSV"
+  "ILLE)|E(?:A(?: (?:(?:BRIGH|GIR)T|ISLE CITY)|SIDE (?:H(?:EIGH|G)TS"
+  "|PARK)|BROOK)|RGEANTSVI?LLE|W(?:AREN|ELL)|CAUCUS)| (?:HA(?:RRISN "
+  "TWP|CKENSACK)|BOUND BROOK|PLAINFIELD|SEAVILLE)|H(?:I(?:P BOTTOM|L"
+  "OH)|ORT HILLS|REWSBURY|AMONG)|A(?:DDLE (?:BROOK|RIVER)|YREVILLE|N"
+  "DYSTON|LEM)|C(?:HOOLEYS M(?:OUNTAI|T)N|OTCH PLAINS)|P(?:RING(?: L"
+  "AKE|FIELD)|OTSWOOD|ARTA)|U(?:CCASUNNA|RF CITY|MMIT|SSEX)|W(?:ARTS"
+  "WOOD|EDESBORO)|(?:ICKLER|MITH)VILLE|KILLMAN)|W(?:E(?:ST(?: (?:C(?"
+  ":OLLINGSWOOD(?: HEIGHTS)?|A(?:LDWELL|PE MAY)|REEK)|(?:(?:PATERS|T"
+  "RENT)O|BERLI)N|WI(?:LDWOOD|NDSOR)|(?:DEPT|MIL)FORD|LONG BRANCH|AL"
+  "LENHURST|NEW YORK|ORANGE)|(?:FIEL|WOO)D|AMPTON|VILLE|MONT)|EHAWKE"
+  "N|NONAH)|A(?:L(?:L(?:PACK C(?:ENTE|T)R| TOWNSHIP|INGTON)?|DWICK)|"
+  "T(?:ERFORD W(?:OR)?KS|CHUNG)|SHINGTON(?: TWPS)?|R(?:ETOW|RE)N|(?:"
+  "NAQU|YN)E)|OO(?:D(?:B(?:URY(?: (?:HEIG)?HTS)?|(?:RIDG|IN)E)|CLIFF"
+  " L(?:AKE|K)| RIDGE|STOWN)|LWICH T(?:OWNSHI|W)P)|I(?:L(?:LI(?:AMST"
+  "OWN|NGBORO)|DWOOD(?: CRE?ST)?)|N(?:FIELD PARK|DSOR|SLOW)|CKATUNK)"
+  "|H(?:I(?:T(?:E(?:HOUSE(?: STATION)?| HSE STA|SBORO)|ING)|PPANY)|A"
+  "RTON)| (?:C(?:OLL(?:S HGT)?S|ALDWELL)|LONG BRANCH|ALLENHURST)|RIG"
+  "HTSTOWN|YCKOFF)|P(?:O(?:RT (?:M(?:ONMOUTH|URRAY)|RE(?:PUBLIC|ADIN"
+  "G)|ELIZABETH|NORRIS)|M(?:PTON (?:PL(?:AI)?N|LAKE)S|ONA)|INT PLEAS"
+  "ANT B(?:EACH|ORO)|TTERSVILLE)|I(?:NE (?:B(?:EACH|ROOK)|VALLEY|HIL"
+  "L)|LESGR(?:OVE(?: TOWNSHIP)?|V TWP)|T(?:TS(?:GROVE|TOWN)|MAN)|CAT"
+  "INNY ARS(?:ENAL)?|SCATAWAY)|E(?:NN(?:S(?:(?: GROV|VILL)E|AUKEN)|I"
+  "NGTON)|R(?:RINEVILLE|TH AMBOY)|(?:DRICKTOW|MBERTO)N|(?:QUANNO|APA"
+  ")CK)|A(?:R(?:K RIDGE|SIPPANY|AMUS|LIN)|L(?:ISADES P(?:AR)?K|MYRA)"
+  "|ULSBORO|TERSON|SSAIC)|R(?:INCETON(?: J(?:UNCTION|CT))?|OSPECT PA"
+  "RK|T ELIZABETH)|L(?:AIN(?:FIELD|SBORO)|EASANTVILLE|UCKEMIN)|T PLE"
+  "AS(?:ANT(?: B(?:EACH)?)?| BCH)|HILLIPSBURG)|B(?:E(?:R(?:LIN(?: T("
+  "?:OWNSHI|W)P)?|KELEY (?:HEIG)?HTS|NARDSVILLE|GENFIELD)|L(?:L(?:E("
+  "?: MEAD|VILLE)|MAWR)|VIDERE|FORD|MAR)|ACH(?: HAVEN|WOOD)|DMINSTER"
+  "|VERLY)|R(?:I(?:DGE(?:WATER|PORT|TON)|(?:GANTIN|ELL)E|CK)|O(?:OK("
+  "?:LAWN|SIDE)|WNS MILLS|ADWAY)|A(?:NCH(?:VILLE|BURG)|DLEY BEACH))|"
+  "A(?:R(?:NEGAT(?: L(?:IGH|G)T)?|RINGTON)|Y(?:(?:VILL|ONN)E| HEAD)|"
+  "SKING RIDGE|PTISTOWN|TSTO)|U(?:RL(?:INGTON(?: (?:TOWNSHIP|CITY))?"
+  "|NGTN (?:CITY|TWP))|T(?:TZVILLE|LER)|DD LAKE|ENA)|L(?:A(?:CKWOOD("
+  "?: TER(?:RACE)?)?|IRSTOWN|WENBURG)|OOM(?:INGDALE|FIELD|SBURY))|O("
+  "?:(?:RDENTOW|ONTO)N|UND BROOK|GOTA)|IRMINGHAM)|L(?:A(?:KE(?: (?:H"
+  "(?:OPATCONG|IAWATHA)|COMO)|HURST(?: NAEC?)?|WOOD)|W(?:RENCE(?: T("
+  "?:OWNSHI|W)P|VILLE)?|NSIDE)|URE(?:NCE H(?:ARBO|B)R|L SP(?:RIN)?GS"
+  ")|N(?:DI(?:SVILLE|NG)|OKA HARBOR)|(?:(?:VALL|FAY)ETT|MBERTVILL)E|"
+  "YTON)|I(?:TTLE (?:EGG HARBOR(?: TWP)?|F(?:ALLS|ERRY)|SILVER|YORK)"
+  "|N(?:C(?:OLN PARK|ROFT)|DEN(?:WOLD)?|WOOD)|BERTY CO(?:RNE)?R|VING"
+  "STON)|O(?:NG(?: (?:B(?:EACH(?: TOWNSHIP)?|CH TWP|RANCH)|VALLEY)|P"
+  "ORT)|GAN T(?:OWNSHI|W)P|C(?:H ARBOUR|UST)|DI)|E(?:E(?:DS POINT|SB"
+  "URG)|ON(?:ARDO|IA)|DGEWOOD|BANON)|UMBERTON(?: T(?:OWNSHI|W)P)?|Y("
+  "?:NDHURST|ONS)|K HOPATCONG|TL EGG HBR)|H(?:A(?:R(?:RI(?:NGTON P(?"
+  ":AR)?K|SON(?:VILLE)?)|D(?:YSTON|WICK)|VEY CEDARS)|DDON(?: (?:H(?:"
+  "EIGH|G)?TS|T(?:OWNSHI|W)P)|FIELD)|M(?:ILTON(?: SQ(?:UARE)?)?|(?:M"
+  "ON|P)TON|BURG)|INESP(?:ORT(?: TOWNSHIP)?|RT TWP)|S(?:BROUCK (?:HE"
+  "IG)?HTS|KELL)|CKE(?:TTSTOWN|NSACK)|NCOCKS BR(?:IDGE|G)|W(?:THORNE"
+  "|ORTH)|LEDON|ZLET)|I(?:GH(?:LAND(?: (?:L(?:AKE|K)S|PARK)|S)| BRID"
+  "GE|TSTOWN)|LLS(?:(?:DAL|ID)E|BOROUGH)|(?: NELL|BERNI)A)|O(?:P(?:E"
+  "(?:LAWN|WELL)?|ATCONG)|(?:LMDE|WEL)L| HO KUS|BOKEN)|E(?:ISLERVILL"
+  "E|LMETTA|WITT))|C(?:A(?:PE MAY(?: (?:C(?:OURT HOUSE|H)|P(?:OIN)?T"
+  "))?|R(?:NEYS POIN|LSTAD|TERE)T|L(?:DWELL|IFON)|MDEN)|L(?:I(?:F(?:"
+  "F(?:SIDE P(?:AR)?K|WOOD)|TON)|NTON)|A(?:RK(?:SB(?:ORO|URG))?|YTON"
+  ")|EMENTON|OSTER)|O(?:L(?:O(?:GNE|NIA)|UMB(?:IA|US)|LINGSWOOD|TS N"
+  "ECK)|NVENT STA(?:TION)?|RBIN CITY|OKSTOWN)|H(?:E(?:S(?:TER(?:FIEL"
+  "D)?|ILHURST)|RRY HILL)|A(?:T(?:HAM(?: TWP)?|SWORTH)|NGEWATER))|R("
+  "?:E(?:AM RIDGE|SSKILL)|AN(?:BURY|FORD)|OSSWICKS)|EDAR(?: (?:KNOLL"
+  "S|BROOK|GROVE)|VILLE)|INNAMINSON)|N(?:E(?:W(?: (?:M(?:ONMOUTH|ILF"
+  "ORD)|(?:LISB|VERN)ON|PROVIDE?NCE|BRUNSWICK|GRETNA|EGYPT)|F(?:OUND"
+  "LAN|IEL)D|TON(?:VILLE)?|PORT|ARK)|SHANIC STA(?:TION)?|PTUNE(?: CI"
+  "TY)?|TCONG)|OR(?:TH(?: (?:(?:(?:ARLINGT|HALED)O|MIDDLETOW)N|B(?:R"
+  "(?:UNSWICK|ANCH)|ERGEN)|(?:PLAINFIEL|WILDWOO)D|CA(?:LDWELL|PE MAY"
+  "))|FIELD|VALE)|MA(?:NDY B(?:EA)?CH)?|WOOD)| (?:(?:MIDDLETOW|ARLIN"
+  "GTO)N|(?:PLAINFIEL|WILDWOO)D|CA(?:LDWELL|PE MAY)|BRUNSWICK)|A(?:T"
+  "IONAL PAR|VESIN)K|UTLEY)|E(?:A(?:ST(?: (?:(?:BRUNSWIC|NEWAR)K|(?:"
+  "MILLSTON|ORANG)E|(?:HANOVE|WINDSO)R|RUTHERFORD)|AMPT(?:ON(?: TOWN"
+  "SHIP)?|N TWP))|TONTOWN)|GG H(?:ARBOR (?:T(?:OWNSHI|W)P|C(?:IT)?Y)"
+  "|BR (?:CITY|TWP))|NGL(?:EW(?:OOD(?: CLIFFS)?|D CLFS)|ISHTOWN)| (?"
+  ":RUTHERFORD|BRUNSWICK|MILLSTONE)|L(?:M(?:WOOD PARK|ER)|IZABETH|WO"
+  "OD)|D(?:GEWATER(?: PA?RK)?|ISON)|S(?:TELL MANOR|SEX FELLS)|W(?:IN"
+  "G|AN)|MERSON|VESHAM|RIAL)|R(?:O(?:C(?:K(?:Y HILL|LEIGH|AWAY)|HELL"
+  "E PARK)|SE(?:L(?:LE(?: PARK)?|AND)|NHAYN|MONT)|XBURY T(?:OWNSHI|W"
+  ")P|BBINSVILLE|OSEVELT|EBLING)|I(?:VER(?:(?: (?:EDG|VAL)|[DV]AL|SI"
+  "D)E|TON)|DGE(?:FIELD(?: P(?:AR)?K)?|WOOD)|CH(?:LAN|WOO)D|NG(?:WOO"
+  "D|OES)|O GRANDE)|A(?:N(?:COCAS|DOLPH)|(?:HWA|MSE)Y|RITAN)|U(?:THE"
+  "RFORD|NNEMEDE|MSON)|E(?:ADINGTON|D BANK))|F(?:R(?:E(?:DON(?: T(?:"
+  "OWNSHI|W)P)?|NCHTOWN|EHOLD)|ANKLIN(?: (?:L(?:AKE|K)S|PARK)|VILLE)"
+  "?)|A(?:IR(?:(?: (?:HAVE|LAW)|TO)N|FIELD|VIEW)|R(?:MINGDALE| HILLS"
+  ")|NWOOD)|OR(?:T(?: (?:MONMOUTH|HANCOCK|DIX|LEE)|ESCUE)|KED RIVER|"
+  "DS)|L(?:OR(?:HAM PARK|ENCE)|A(?:GTOWN|NDERS)|EMINGTON)|IELDSBORO)"
+  "|G(?:L(?:EN(?: (?:R(?:IDGE|OCK)|GARDNER)|DORA|WOOD)|OUC(?:ESTER C"
+  "(?:IT)?|STR CIT)Y|A(?:SS(?:BORO|ER)|DSTONE))|RE(?:EN(?: (?:(?:BRO"
+  "O|CREE)K|VILLAGE)|DELL|WICH)|YSTONE P(?:AR)?K|AT MEADOWS|NLOCH)|I"
+  "(?:BBS(?:BORO|TOWN)|LLETTE)|A(?:R(?:FIEL|WOO)D|LLOWAY)|UTTENBERG|"
+  "OSHEN)|T(?:O(?:W(?:NS(?:END(?:S INLE| INL)T|HIP OF WASHINGTON)|AC"
+  "O)|MS RIVER|TOWA)|E(?:N(?:AFLY|NENT)|TERBORO|ANECK)|U(?:CK(?:ERTO"
+  "N|AHOE)|RNERSVILLE)|H(?:REE BRIDGES|OROFARE)|I(?:NTON FALLS|TUSVI"
+  "LLE)|R(?:ANQUILITY|ENTON)|WP WASHIN(?:GT|TO)N|ABERNACLE)|A(?:L(?:"
+  "L(?:EN(?:HURST|DALE|TOWN|WOOD)|(?:AMUCH|OWA)Y)|P(?:INE|HA))|T(?:L"
+  "ANTIC (?:H(?:IGHLAN|L)DS|CITY)|CO)|V(?:ON BY(?: THE)? SEA|ALON|EN"
+  "EL)|N(?:NANDALE|DOVER)|B(?:ERDEE|SECO)N|U(?:DUBON|GUSTA)|SBURY(?:"
+  " PARK)?|DELPHIA)|D(?:E(?:L(?:A(?:WARE|NCO|IR)|(?: HAVE|RA)N|MONT)"
+  "|E(?:RFIELD S(?:TREE)?T|PWATER)|N(?:NIS)?VILLE|MAREST|AL)|O(?:R(?"
+  ":CHESTER|OTHY)|VER)|IVIDING CR(?:EE)?K|U(?:NELLEN|MONT)|AYTON)|O("
+  "?:CEAN(?: (?:G(?:ROV|AT)E|CITY|VIEW)|VILLE|PORT)?|AK(?:L(?:AND|YN"
+  ")| RIDGE|HURST)|LD(?: (?:BRIDGE|TAPPAN)|WICK)|RA(?:DELL|NGE)|SBOR"
+  "NSVILLE|GDENSBURG|XFORD)|K(?:E(?:N(?:DALL PARK|ILWORTH|VIL)|A(?:("
+  "?:SBE|RN)Y|NSBURG)|YPORT)|I(?:RKW(?:D VRHES|OOD)|N(?:GST|NEL)ON))"
+  "|I(?:N(?:D(?:USTRIAL)? HILLSIDE|TERLAKEN)|S(?:LAND H(?:EIGH|G)TS|"
+  "ELIN)|R(?:VINGTON|ONIA)|MLAYSTOWN)|U(?:P(?:PER (?:SADDLE RIVE|MON"
+  "TCLAI)|R MONTCLAI)R|NION(?: (?:BEACH|CITY))?| SADDLE RIV)|V(?:I(?"
+  ":N(?:CENTOWN|ELAND)|ENNA|LLAS)|E(?:R(?:NON|ONA)|NTNOR CITY)|AUXHA"
+  "LL|OORHEES)|J(?:O(?:HNSONBURG|BSTOWN)|A(?:MESBURG|CKSON)|ERSEY CI"
+  "TY|ULIUSTOWN)|QU(?:AKERTOW|INTO)N|YARDVILLE|ZAREPHATH))))$"
+  ,
+  /* -- NM -- NM -- NM -- NM -- NM -- NM -- NM -- NM -- NM -- NM -- */
+  "(?:\\b)((?^:(?i:(?:C(?:O(?:N(?:T(?:INENTAL DIVIDE|NENTAL DV)|CHAS"
+  " DAM)|CHITI (?:PUE?BLO|LAKE)|R(?:(?:DOV|ON)A|RALES)|UNSELOR|LUMBU"
+  "S|STILLA|YOTE)|A(?:N(?:ON(?:CITO|ES)|NON AFB|JILON)|P(?:(?:ITA|UL"
+  "I)N|ROCK)|R(?:RIZOZO|LSBAD|SON)|SA BLANCA|BALLO|USEY)|L(?:I(?:NES"
+  " CO(?:RNE)?RS|FF)|O(?:UDCROFT|VIS)|A(?:UNCH|YTON)|EVELAND)|H(?:A("
+  "?:M(?:BERINO|ISAL|A)|PARRAL|CON)|URCH ROCK|IMAYO)|E(?:DAR(?: CRES"
+  "T|VALE)|RR(?:ILLOS|O)|BOLLA|NTRAL)|U(?:(?:CHILL|NDIY|ERV)O|B(?:ER"
+  "O|A))|RO(?:SSROADS|WNPOINT)|IMARRON)|S(?:A(?:N(?: (?:J(?:UAN P(?:"
+  "UE)?BLO|O(?:SE|N))|(?:PATRICI|LORENZ|YSIDR)O|(?:CRISTOBA|RAFAE)L|"
+  "A(?:NTONIT?O|CACIA)|F(?:ELIPE PB|IDEL)|M(?:IGUEL|ATEO))|T(?:A (?:"
+  "ANA PUE(?:BLO)?|(?:TERE|RO)SA|C(?:LARA|RUZ)|FE)|O DOMINGO PUEBLO)"
+  "|DIA P(?:UEBLO|ARK)|OSTEE)|(?:CRAMENT|PELL)O|INT VRAIN|LEM)|E(?:("
+  "?:N(?:EC)?|BOYET|RAFIN)A|DAN)|T(?: DMNG PBLO|ANLEY|EAD)|H(?:EEP S"
+  "PRINGS|IPROCK)|UN(?:LAND PARK|SPOT)|O(?:CORR|LAN)O|ILVER CITY|MIT"
+  "H LAKE|PRINGER)|M(?:E(?:S(?:ILLA(?: PARK)?|CALERO|QUITE)|(?:XICAN"
+  " SP(?:RIN)?G|DANALE)S|(?:NTMOR|LROS)E)|O(?:N(?:T(?:ICELLO|EZUMA)|"
+  "UMENT)|UNT(?:AINAIR| DORA)|R(?:IARTY|A)|GOLLON|SQUERO)|A(?:L(?:JA"
+  "MAR|AGA)|(?:XWE|YHI)LL|GDALENA|NUELITO|DRID)|I(?:L(?:NESAND|AN|LS"
+  ")|MBRES|AMI)|C (?:ALISTER|DONALD|INTOSH)|ULE CREEK)|L(?:A(?: (?:("
+  "?:M(?:ADER|ES)|J(?:AR|OY)|PLAT)A|L(?:OMA|UZ))|KE(?: (?:ARTHU|SUMN"
+  "E)R|WOOD)|S (?:(?:TABL|VEG)A|CRUCE)S|GUNA|MY)|O(?:S (?:R(?:ANCHOS"
+  "(?: DE ALBUQUERQUE)?|NCHS ABQ)|(?:(?:ALAM|OJ)O|LUNA)S)|VING(?:TON"
+  ")?|CO HILLS|RDSBURG|GAN)|IN(?:DRITH|COLN|GO)|E(?:MITAR|DOUX)|U(?:"
+  "MBERTON|NA)|LANO)|T(?:R(?:U(?:TH (?:OR CONSEQUENCES|CONSQ)|CHAS)|"
+  "E(?:S PIEDRAS|MENTINA)|AMPAS)|A(?:OS(?: SKI V(?:ALLE|L)Y)?|JIQUE|"
+  "IBAN|MAYA|TUM)|I(?:(?:ER)?RA AMARILLA|MBERON|JERAS|NNIE)|O(?:HA(?"
+  ":JIILEE|TCHI)|RREON|ME)|E(?:(?:RERR|XIC)O|SUQUE)|U(?:CUMCARI|LARO"
+  "SA)|HOREAU| OR C|YRONE)|P(?:(?:UE(?:BLO OF ACOM|RTA DE? LUN)|BLO "
+  "OF ACOM)A|I(?:N(?:O(?:S ALTOS|N)|EHILL)|E TOWN|CACHO)|E(?:NA(?: B"
+  "LANCA|SCO)|(?:RALT|TAC)A|COS|P)|O(?:(?:LVADER|NDEROS)A|JOAQUE|RTA"
+  "LES)|A(?:GUATE|STURA)|LA(?:CIT|Y)AS|REWITT)|R(?:A(?:(?:DIUM SPR(?"
+  ":IN)?G|NCHOS DE TAO)S|INSVILLE|MAH|TON)|O(?:(?:AD FORK|GER)S|CIAD"
+  "A|SWELL|DEO|WE|Y)|E(?:D(?: RIVER|ROCK)|HOBOTH|SERVE|GINA)|U(?:IDO"
+  "SO(?: DOWNS)?|THERON)|I(?:O RANCHO|BERA|NCON)|NCH DE TAOS)|A(?:R("
+  "?:R(?:OYO (?:HOND|SEC)O|EY)|A(?:BELA|GON)|ENAS VALLEY|TESIA)|L(?:"
+  "B(?:UQUERQUE|ERT)|AM(?:OGORDO|EDA)|GODONES|CALDE|TO)|N(?:T(?:ON C"
+  "HICO|HONY)|G(?:EL FIRE|US)|IMAS|CHO)|M(?:ISTAD|ALIA)|BIQUIU|ZTEC)"
+  "|B(?:E(?:L(?:L(?: RANCH|VIEW)|EN)|R(?:NALILL|IN)O|NT)|U(?:E(?:NA "
+  "VISTA|YEROS)|DAGHERS|CKHORN)|L(?:OOMFIELD|UEWATER|ANCO)|R(?:OADVI"
+  "EW|IMHALL)|OSQUE(?: FARMS)?|(?:AY)?ARD|INGHAM)|G(?:A(?:L(?:L(?:IN"
+  "A|UP)|ISTEO)|R(?:FIELD|ITA)|MERCO)|L(?:EN(?:WOOD|COE|RIO)|ADSTONE"
+  "|ORIETA)|R(?:A(?:NTS|DY)|ENVILLE)|O(?:NZALES RA?NCH|LDEN)|(?:UADA"
+  "LUPIT|IL)A)|H(?:O(?:L(?:LOMAN A(?:IR FORCE BASE|FB)|MAN)|(?:US|P)"
+  "E|BBS|NDO)|I(?:(?:GH ROLLS MOUNTAIN PAR| RLS MTN P)K|LLSBORO)|A(?"
+  ":GERMAN|CHITA|NOVER|TCH)|ERNANDEZ|URLEY)|F(?:O(?:RT (?:S(?:TANTON"
+  "|UMNER)|WINGATE|BAYARD)|LSOM)|A(?:IR(?:ACRES|VIEW)|RMINGTON|YWOOD"
+  ")|L(?:O(?:RA VISTA|YD)|YING H)|ENCE LAKE|RUITLAND)|W(?:HITE(?: (?"
+  ":SANDS(?: MISSILE RANGE)?|OAKS|ROCK)|S CITY)|A(?:T(?:ERFLOW|ROUS)"
+  "|GON MOUND)|I(?:LL(?:IAMSBURG|ARD)|NSTON)|EED)|V(?:A(?:L(?:LECITO"
+  "S|MORA|DEZ)|N(?:DERWAGEN|ADIUM)|D(?:IT)?O|UGHN)|I(?:LLANUEVA|RDEN"
+  ")|E(?:GUITA|LARDE))|E(?:L(?: (?:PRAD|RIT)O|EPHANT BU?TTE|IDA)|S(?"
+  ":PANOL|TANCI)A|(?:MBUD|NCIN)O|AGLE NEST|DGEWOOD|UNICE)|O(?:JO (?:"
+  "CALIENTE|FELIZ|SARCO)|R(?:OGRANDE|GAN)|HKAY OWINGEH|IL CENTER|LD "
+  "LAGUNA|SCURO|CATE)|N(?:A(?:VAJO(?: DAM)?|RA VISA|GEEZI|MBE)|EW(?:"
+  " LAGUNA|COMB|KIRK)|OGAL)|D(?:E(?:S MOINES|MING|XTER|RRY)|O(?:NA A"
+  "N|R)A|U(?:LCE|RAN)|ATIL|IXON)|J(?:EMEZ (?:SPRINGS|PUEBLO)|A(?:MES"
+  "TOWN|RALES|L)|ICARILLA)|U(?:N(?:IV OF N(?:EW MEXICO|M)|M)|TE PARK"
+  ")|K(?:IRTLAND(?: AFB)?|ENNA)|Y(?:OUNGSVILLE|ATAHEY|ESO)|QU(?:E(?:"
+  "MADO|STA)|AY)|Z(?:IA PUEBLO|UNI)|I(?:LFELD|SLETA)))))$"
+  ,
+  /* -- NV -- NV -- NV -- NV -- NV -- NV -- NV -- NV -- NV -- NV -- */
+  "(?:\\b)((?^:(?i:(?:M(?:O(?:UN(?:T(?:AIN (?:SPR(?:INGS|G)|CITY)| C"
+  "HARLESTON)|D HOUSE)|NTELLO|APA)|C(?: (?:DERMITT|GILL)|CARRAN)|I(?"
+  ":N(?:DEN|A)|LL CITY|DAS)|(?:T CHARLESTO|ANHATTA)N|E(?:SQUITE|RCUR"
+  "Y))|C(?:A(?:L(?:I(?:CO BASIN|ENTE)|LVILLE BAY| NEV ARI)|R(?:SON C"
+  "ITY|LIN))|O(?:YOTE SP(?:RIN)?GS|(?:LD|RN) CREEK|TTONWOOD CV)|R(?:"
+  "ESCENT V(?:ALLE|L)|YSTAL BA)Y)|S(?:P(?:A(?:NISH SP(?:RIN)?G|RK)S|"
+  "RING CREEK)|ILVER(?: (?:SP(?:RIN)?GS|CITY)|PEAK)|TA(?:GECOACH|TEL"
+  "INE)|(?:ANDY|UN) VALLEY|EARCHLIGHT|CHURZ|LOAN|MITH)|W(?:E(?:(?:ST"
+  " WE)?NDOVER|LL(?:INGTON|S))|A(?:SHOE VALLEY|LKER LAKE|DSWORTH)| W"
+  "ENDOVER|INNEMUCCA)|B(?:A(?:TTLE M(?:OUNTAI|T)N|KER)|E(?:OWAWE|ATT"
+  "Y)|LUE DIAMOND|OULDER CITY|UNKERVILLE)|G(?:O(?:L(?:DFIELD|CONDA)|"
+  "ODSPRINGS)|A(?:RDNERVILLE|BBS)|E(?:RLACH|NOA)|LENBROOK)|I(?:N(?:D"
+  "IAN SP(?:RINGS(?: AIR FORCE AUX)?|GS)|CLINE V(?:ILLAGE|LG))|MLAY|"
+  "SAFA)|L(?:A(?:S VEGAS|MOILLE|UGHLIN)|O(?:GANDALE|CKWOOD|VELOCK)|U"
+  "N(?:ING|D)|EE)|P(?:A(?:RADISE V(?:ALLE|L)Y|LM GARDENS|HRUMP|NACA)"
+  "|IOCHE|RIMM)|E(?:M(?:IGRANT PASS|PIRE)|L(?:KO|Y)|NTERPRISE|UREKA)"
+  "|R(?:OUND M(?:OUNTAI|T)N|U(?:BY VALLEY|TH)|ENO)|V(?:(?:IRGINIA CI"
+  "T|ALM)Y|C HIGHLANDS|ERDI)|N(?:(?:ORTH)? LAS VEGAS|ELLIS AFB|IXON)"
+  "|D(?:(?:UCKWAT|Y)ER|E(?:ETH|NIO)|AYTON)|A(?:MARGOSA V(?:ALLE|L)Y|"
+  "USTIN|LAMO)|H(?:A(?:WTHORNE|LLECK)|ENDERSON|IKO)|J(?:A(?:RBIDGE|C"
+  "KPOT)|IGGS|EAN)|O(?:ROVADA|VERTON|WYHEE|ASIS)|T(?:HE LAKES|USCARO"
+  "RA|ONOPAH)|(?:ZEPHYR COV|UNIONVILL)E|F(?:ERNLEY|ALLON)|YERINGTON)"
+  ")))$"
+  ,
+  /* -- NY -- NY -- NY -- NY -- NY -- NY -- NY -- NY -- NY -- NY -- */
+  "(?:\\b)((?^:(?i:(?:S(?:O(?:U(?:TH(?: (?:F(?:A(?:RMINGDALE|LLSBURG"
+  ")|LORAL PARK)|(?:(?:EDMES|DAY)TO|NEW BERLI)N|C(?:HEEKTOWAGA|OLTON"
+  "|AIRO)|S(?:CHODACK|ETAUKET|ALEM)|B(?:ETHLEHEM|UTLER|YRON)|R(?:ICH"
+  "MOND HILL|UTLAND)|(?:JAMESPOR|KORTRIGH)T|O(?:ZONE PARK|TSELIC)|W("
+  "?:ESTERLO|ALES)|GLENS FALLS|HEMPSTEAD|PLYMOUTH|LIMA)|AMPTON|FIELD"
+  "S|OLD)|ND BEACH)|DUS(?: (?:CENTER|POINT))?|L(?:SVILLE|VAY)| PLYMO"
+  "UTH|MERS|NYEA)|A(?:INT (?:J(?:OHNSVILLE|AMES)|RE(?:GIS FALLS|MY)|"
+  "(?:HUBERT|ALBAN)S|BONAVENTURE)|N(?:D(?:S POINT|Y CREEK| LAKE|USKY"
+  ")|ITARIA SP(?:RINGS|G)|GERFIELD|BORN)|L(?:ISBURY (?:C(?:ENTE|T)R|"
+  "M(?:IL)?LS)|T(?: POINT|AIRE)|AMANCA|EM)|R(?:A(?:TOGA SP(?:RIN)?GS"
+  "|NAC(?: LAKE)?)|DINIA)|G(?: HARBOR|APONACK)|CKETS H(?:ARBO|B)R|U("
+  "?:GERTIES|QUOIT)|V(?:ANNAH|ONA)|YVILLE|BAEL)|T(?:E(?:RLING(?: F(?"
+  ":ORE|R)ST)?|L?LA NIAGARA|WART MANOR|PHENTOWN|AMBURG)|O(?:N(?:Y (?"
+  ":(?:BROO|CREE)K|POINT)|E RIDGE)|(?:RM|TT)VILLE|CKTON|W)|A(?:(?:TE"
+  "N ISLAN|[FM]FOR)D|N(?:FORDVILLE|LEY)|ATSBURG|R LAKE)|UYV(?:ESANT("
+  "?: (?:F(?:ALLS|L)|PLAZA))?|SNT PLZ)| (?:(?:REGIS FL|BONA)S|JOHNSV"
+  "ILLE)|R(?:YKERSVILLE|ATFORD)|I(?:LLWATER|TTVILLE))|C(?:H(?:UYLER("
+  "?: (?:F(?:AL)?LS|LAKE)|VILLE)?|O(?:DACK L(?:ANDIN|ND)G|HARIE)|(?:"
+  "AGHTICO|ROON LA)KE|ENE(?:CTADY|VUS))|OT(?:CHTOWN(?: BRANCH)?|TS(?"
+  ":VILLE|BURG)|IA)|AR(?:BOROUGH|SDALE)|I(?:PIO CENTER|O))| (?:F(?:A"
+  "(?:RMINGDALE|LLSBURG)|LORAL PARK)|(?:JAMESPOR|KORTRIGH)T|(?:NEW B"
+  "ERLI|EDMESTO)N|S(?:CHODACK|ETAUKET)|(?:OZONE PAR|CHEE)K|GLENS FAL"
+  "LS|RICHMOND HL|BETHLEHEM|HEMPSTEAD|WESTERLO)|H(?:E(?:LTER IS(?:LA"
+  "ND(?: HEIGHTS)?| HT)?|R(?:(?:ID|M)AN|BURNE|RILL)|NOROCK)|A(?:RON "
+  "SP(?:RIN)?GS|NDAKEN|DY)|O(?:R(?:TSVILLE|EHAM)|KAN)|I(?:NHOPPLE|RL"
+  "EY)|RUB OAK|USHAN)|P(?:R(?:ING(?:F(?:IELD (?:GARDENS|CENTER)|LD C"
+  "TR)| (?:VALLEY|BROOK|GLEN)|VILLE|WATER)|(?:NGFLD GDN|AKER)S)|E(?:"
+  "NCER(?:PORT|TOWN)?|CULATOR|ONK)|AR(?:ROW ?BUSH|KILL))|L(?:ATE(?:R"
+  "V(?:ILLE SPRINGS|LE SPG)| HILL)|OA(?:N(?:SVILLE)?|TSBURG)|EEPY HO"
+  "LLOW|INGERLANDS)|I(?:LVER (?:SP(?:RIN)?GS|CREEK|LAKE|BAY)|DNEY(?:"
+  " CENTER)?|NCLAIRVILLE|ENA)|E(?:NECA (?:CASTLE|FALLS)|A(?: CLIFF|F"
+  "ORD)|L(?:KIRK|DEN)|VERANCE|TAUKET)|M(?:ITH(?:V(?:ILLE(?: FLATS)?|"
+  "LE FLTS)| POINT|BORO|TOWN)|ALLWOOD|YRNA)|U(?:N(?:NYSIDE|DOWN)|MMI"
+  "T(?:VILLE)?|GAR LOAF|RPRISE|FFERN)|KAN(?:EATELE(?:S FALL)?| FALL)"
+  "S|W(?:A(?:N LAKE|IN)|ORMVILLE)|Y(?:LVAN BEACH|RACUSE|OSSET)|NYDER"
+  ")|C(?:O(?:L(?:L(?:I(?:NS(?: C(?:ENTE|T)R)?|ERSVILLE)|EGE POINT)|D"
+  "(?: (?:SP(?:RING(?: HARBOR)?|G HBR)|BROOK)|EN)|(?:UMBIAVILL|ONI)E"
+  "|TON)|R(?:N(?:WALL(?: (?:ON HUDSO|HDS)N|VILLE)?|ING)|TLAND(?:T M("
+  "?:ANO|N)R)?|BETTSVILLE|INTH|ONA|AM|FU)|N(?:STA(?:BLE(?:V(?:IL)?LE"
+  ")?|NTIA)|E(?:WANGO V(?:ALLE|L)Y|SUS)|NELLY|GERS|KLIN)|P(?:AKE(?: "
+  "FALLS)?|ENHAGEN|IAGUE)|OPERS(?: PL(?:AI)?NS|TOWN)|CHECTON(?: C(?:"
+  "ENTE|T)R)?|EYMANS(?: HOL(?:LO)?W)?|(?:WLESVILL|XSACKI)E|(?:BLES|T"
+  "TE)KILL|HO(?:CTON|ES)|M(?:STO|MA)CK|SSAYUNA)|A(?:S(?:T(?:LE(?:T(?"
+  ":ON ON HUDS)?ON| (?:CREEK|POINT))|ORLAND|ILE)|S(?:ADAGA|VILLE))|N"
+  "(?:A(?:(?:S(?:ERAG|TOT)|NDAIGU)A|L STREET|JOHARIE|AN)|EADEA|ISTEO"
+  "|DOR|TON)|M(?:BRI(?:A (?:HEIG)?HTS|DGE)|ERON(?: MILLS)?|PBE(?:LL "
+  "HA)?LL|ILLUS|DEN)|L(?:LICOON(?: C(?:ENTE|T)R)?|EDONIA|VERTON|CIUM"
+  ")|R(?:(?:L(?:E PLAC|ISL)|OGA LAK|THAG)E|MEL)|P(?:TREE IS(?:LAND)?"
+  "|E VINCENT)|T(?:TARAUGUS|SKILL|O)|(?:YU[GT]|ZENOVI)A|D(?:YVILLE|O"
+  "SIA)|IRO)|H(?:E(?:ST(?:NUT R(?:IDGE|DG)|ER(?:TOWN)?)|NANGO (?:BR("
+  "?:IDGE|G)|F(?:OR)?KS)|RRY (?:VALLEY|CREEK|GROVE|PLAIN)|(?:EKTOWAG"
+  "|LSE)A|MUNG)|A(?:RL(?:OTTEV(?:IL)?LE|TON)|(?:SE MILL|DWICK)S|U(?:"
+  "TAUQUA|MONT)|T(?:EAUGAY|HAM)|MPLAIN|PPAQUA|FFEE|ZY)|I(?:PPEWA BAY"
+  "|TTENANGO|CHESTER|LDWOLD|NATOWN)|UR(?:CHVILLE|UBUSCO))|L(?:A(?:R("
+  "?:EN(?:CE(?: C(?:ENTE|T)R)?|DON)|K(?:S(?:VILLE|ON)| MILLS)|YVILLE"
+  ")|Y(?:VILLE|TON)?|VERACK)|I(?:NTON(?: CO(?:RNE)?RS|(?:VIL|DA)LE)?"
+  "|FTON(?: (?:SP(?:RIN)?GS|PARK))?|MAX)|E(?:VE(?:RDALE|LAND)|MONS)|"
+  "Y(?:MER|DE)|OCKVILLE)|R(?:O(?:TON (?:(?:ON HUDSO|HDS)N|FALLS)|PSE"
+  "YVILLE|SS RIVER|WN POINT|MPOND|GHAN)|A(?:NBERRY L(?:AKE|K)|RYVILL"
+  "E|GSMOOR)|ITTENDEN|UGERS)|E(?:NT(?:RAL (?:BR(?:IDGE|G)|V(?:ALLE|L"
+  ")Y|SQ(?:UARE)?|ISLIP)|ER(?: MORICHES|VILLE|EACH|PORT))|(?:MENT|LO"
+  "R)ON|DARHURST|RES)|U(?:(?:DDEBACKVI?LL|TCHOGU)E|YLER|BA)|I(?:NCIN"
+  "NATUS|RCLEVILLE|CERO)|TR MORICHES)|W(?:E(?:ST(?: (?:C(?:(?:O(?:XS"
+  "ACKI|PAK)|LARKSVILL)E|HA(?:RLTON|ZY)|AMP)|B(?:(?:LOOMFIEL|RENTWOO"
+  ")D|A(?:BYLON|NGOR)|URLINGTON)|H(?:A(?:VERSTRAW|RRISON)|E(?:MPSTEA"
+  "D|NRIETTA)|URLEY)|S(?:A(?:ND LAK|YVILL)E|TOCKHOLM|ENECA|HOKAN)|E("
+  "?:(?:DMES|A)TON|XETER)|(?:GILGO BEAC|RUS)H|DA(?:VENPORT|NBY)|WIN("
+  "?:FIELD|DSOR)|F(?:ULTON|ALLS)|LE(?:BANO|YDE)N|P(?:OINT|ARK)|ONEON"
+  "TA|MONROE|VALLEY|ISLIP|NYACK|KILL)|(?:F(?:IEL|OR)|MORELAN)D|B(?:R"
+  "OOKVI?LLE|URY)|HAMPTON(?: BEACH)?|ER(?:NVILLE|LO)|(?:DAL|GAT)E|ON"
+  "S MILLS|PORT|TOWN)|LL(?:S(?:(?: BRIDG|VILL)E|BURG)?|ESLEY IS(?:LA"
+  "ND)?)|BSTER(?: CR(?:OSSI|S)NG)?|EDSPORT|VERTOWN)|A(?:L(?:L(?: STR"
+  "EET|KILL|ACE)|(?:DE|TO)N|KER VALLEY|ES CENTER|WORTH)|T(?:ER(?:V(?"
+  ":ILLE|LIET)| MILL|FORD|PORT|TOWN|LOO)|KINS GLEN)|S(?:HINGT(?:ON(?"
+  ":V(?:IL)?LE| MILLS)|N MLS)|SAIC)|R(?:NER(?:VILLE|S)|RENSBURG|WICK"
+  "|SAW)|D(?:ING RIVER|DINGTON|SWORTH|HAMS)|PPINGERS F(?:ALLS|L)|VE("
+  "?: CREST|RLY)|N(?:AKENA|TAGH)|Y(?:LAND|NE)|MPSVILLE|INSCOTT|WARSI"
+  "NG|CCABUC)|H(?:I(?:T(?:E(?: (?:(?:SULPHUR SPRING|PLAIN)S|CREEK|LA"
+  "KE)|S(?:(?:VILL|TON)E|BORO)|FACE M(?:OUNTAI|T)N|HALL)|NEY POINT)|"
+  "PPLEVILLE)|(?:EATLEY (?:HEIG)?HT|T SPHR SPG)S|ALLONSBURG)| (?:H(?"
+  ":A(?:MPTON BCH|VERSTRAW|RRISON)|E(?:MPSTEAD|NRIETTA))|B(?:(?:LOOM"
+  "FIEL|RENTWOO)D|URLINGTON)|C(?:LARKSVILL|OXSACKI)E|S(?:AND LAKE|TO"
+  "CKHOLM)|GILGO BEACH|DAVENPORT|WINDSOR)|I(?:L(?:L(?:I(?:AMS(?:(?:T"
+  "OW|O)N|VILLE)|STON P(?:AR)?K)|S(?:EYVILLE|BORO)|ARD|ET|OW)|(?:(?:"
+  "MING)?T|S)ON)|N(?:D(?:HAM|SOR)|GDALE|THROP)|(?:THERB|CCOP)EE)|O(?"
+  ":OD(?:(?:RIDG|VILL|GAT|MER)E|B(?:OURNE|URY)|H(?:AVEN|ULL)|S(?:TOC"
+  "K|IDE))|RCESTER|LCOTT)|Y(?:(?:NANTSKIL|KAGY)L|ANDANCH|OMING)|URTS"
+  "BORO)|B(?:R(?:O(?:OK(?:(?:HAVE|LY)N|TONDALE|FIELD|VIEW)|AD(?: CHA"
+  "NNEL|ALBIN)|C(?:KPORT|TON)|NX(?:VILLE)?|WNVILLE)|I(?:AR(?:CLIFF(?"
+  ": MANOR)?|WOOD)|DGE(?:HAMPTON|WATER|PORT)|GHTWATERS|ER HILL|SBEN)"
+  "|A(?:N(?:T(?:INGHAM| LAKE)?|CHPORT)|INARD(?:SV(?:IL)?LE)?|SHER FA"
+  "LLS|DFORD)|E(?:E(?:ZY POIN|SPOR)T|W(?:ERTON|STER)|NTWOOD)|USHTON)"
+  "|E(?:L(?:L(?:E(?:ROSE(?: (?:VIL(?:LAGE)?|MANOR))?| HARBOR|VILLE)|"
+  "(?:MOR|VAL)E|RS MANOR|PORT|ONA)|(?:FAS|MON)T)|A(?:R(?: (?:MOUNTAI"
+  "N|STEARNS)|SVILLE)|VER (?:(?:F(?:AL)?L|DAM)S|RIVER)|CON)|R(?:N(?:"
+  "HARDS BAY|E)|(?:GE|LI)N|KSHIRE)|DFORD(?: (?:CO(?:RNE)?R|HILL)S)?|"
+  "(?:MUS POIN|ECHHURS)T|TH(?:PAGE|EL))|A(?:R(?:NE(?:S CO(?:RNE)?RS|"
+  "VELD)|RY(?:VILLE|TOWN)|DONIA|KER|TON)|L(?:DWIN(?:(?: PLAC|SVILL)E"
+  ")?|LSTON (?:LAKE|SPA))|Y(?:(?: SHOR|VILL|SID)E|BERRY|PORT)|N(?:G("
+  "?:ALL|OR)|KERS TRUST)|I(?:TING HOLLOW?|NBRIDGE)|T(?:AVIA|H)|KERS "
+  "MILLS|BYLON|SOM)|L(?:O(?:OM(?:ING(?: GR(?:OVE|V)|BURG|DALE|TON)|F"
+  "IELD|VILLE)|DGETT M(?:IL)?LS|SSVALE)|U(?:E (?:M(?:OUNTAI|T)N LAKE"
+  "|POINT)|FF POINT)|A(?:CK (?:CREEK|RIVER)|SDELL|UVELT)|ISS)|O(?:L("
+  "?:TON L(?:ANDIN|ND)G|IVAR)|W(?:LING GREEN|MANSVILLE)|(?:ICE|UCK|O"
+  "N)VILLE|VINA CENTER|HEMIA|MBAY|STON)|U(?:R(?:L(?:ING(?:TON FLATS|"
+  "HAM)|NGTN FLT)|(?:DET)?T|NT HILLS|KE)|LLVILLE|CHANAN|FFALO|SKIRK)"
+  "|I(?:BLE SCH(?:OOL PAR| P)K|G (?:INDIAN|FLATS)|NGHAMTON|LLINGS)|Y"
+  "RON)|M(?:A(?:R(?:I(?:(?:ETT|LL)A|ON)|T(?:INSBURG|VILLE)|Y(?:KNOLL"
+  "|LAND)|C(?:ELLUS|Y)|GARETVILLE|ATHON|LBORO)|S(?:S(?:A(?:PEQUA(?: "
+  "P(?:AR)?K)?|WEPIE)|ENA)|TIC(?: BEACH)?|ONVILLE|PETH)|N(?:HA(?:SSE"
+  "T(?: HIL(?:LS)?)?|TTAN)|(?:NS|OR)VILLE|CHESTER|LIUS)|L(?:DEN (?:("
+  "?:ON )?HUDSON|BRIDGE)|(?:VER|O)NE|[BT]A|LORY)|PLE(?: (?:SPRINGS|V"
+  "IEW)|CREST)|C(?: DOUGALL|EDON|HIAS)|Y(?:BROOK|FIELD|VILLE)|TT(?:I"
+  "TUCK|YDALE)|HOPAC(?: FALLS)?|D(?:ISON|RID)|MARONECK|INE)|O(?:UNT("
+  "?: (?:(?:V(?:ERN|ISI)|UPT)ON|M(?:ARION|ORRIS)|TREMPER|KISCO|SINAI"
+  ")|AIN(?: DA|VIL)LE)|N(?:T(?:E(?:BELLO|ZUMA)|OUR FALLS|GOMERY|ICEL"
+  "LO|ROSE|AUK)|(?:GAUP V(?:ALLE|L)|SE)Y|ROE)|R(?:RIS(?:(?:ON)?VILLE"
+  "|TOWN)?|I(?:AH(?: CENTER)?|CHES)|AVIA|TON)|H(?:EGAN LAKE|AWK)|DE("
+  "?:L CITY|NA)|OER(?:S FORK)?S|TTVILLE|IRA)|I(?:D(?:DLE(?: (?:GR(?:"
+  "ANVILL|OV)E|V(?:ILLAGE|LG)|ISLAND|FALLS)|BURGH|VILLE|PORT|TOWN|SE"
+  "X)| HUDSON)|L(?:L(?:ER(?: PLACE|TON)|(?: NEC|BROO)K|PORT|WOOD)|(?"
+  ":TO|A)N|FORD)|N(?:E(?:(?:OL|RV)A|VILLE|TTO)|OA))|E(?:R(?:ID(?:ALE"
+  "|IAN)|RI(?:CK|LL)|EDITH)|C(?:HANICVILLE|KLENBURG)|L(?:(?:LEN)?VIL"
+  "L|ROS)E|D(?:(?:IN|US)A|FORD)|N(?:ANDS|DON)|ACHAM|MPHIS|XICO)|C (?"
+  ":CON(?:NELLSVIL|ELSVI)LE|DONOUGH|GRAW|LEAN)|U(?:(?:RRAY IS|NNSVIL"
+  ")LE|MFORD)|DL GRANVILLE)|P(?:O(?:RT(?: (?:(?:(?:WASHINGT|GIBS|BYR"
+  ")O|(?:LEYD|EW)E)N|JE(?:FF(?:ERS(?:ON STATI)?ON| STA)|RVIS)|C(?:HE"
+  "STER|RANE)|HENRY|KENT)|ER CO(?:RNE)?RS|LAND(?:VILLE)?|(?:AGE)?VIL"
+  "LE)|U(?:GH(?:KEEPSIE|QUAG)|ND RIDGE)|INT (?:LOOKOUT|O WOODS|VIVIA"
+  "N)|(?:PLAR RIDG|OLVILL)E|T(?:TERSVILLE|SDAM)|M(?:ONA|PEY)|ESTENKI"
+  "LL|ND EDDY|LAND)|A(?:L(?:ATINE BR(?:IDGE|G)|ENVILLE|ISADES|MYRA)|"
+  "R(?:IS(?:H(?:VILLE)?)?|KSVILLE|ADOX)|T(?:TERSON(?:V(?:IL)?LE)?|CH"
+  "OGUE)|N(?:OR)?AMA|INTED POST|UL SMITHS|VILION|WLING)|I(?:NE (?:(?"
+  ":VALLE|CIT)Y|ISLAND|PLAINS|BUSH|HILL)|ER(?:REP(?:ONT MANO|NT MN)R"
+  "|CEFIELD|MONT)|T(?:TSFORD|CHER)|LOT KNOB|FFARD|SECO|KE)|E(?:R(?:R"
+  "Y(?:SBURG|VILLE)?|KINSVILLE|U)|N(?:N(?:ELLVILLE| YAN)|FIELD)|TER("
+  "?:SBURGH?|BORO)|C(?:K SLIP|ONIC)|ARL RIVER|EKSKILL|LHAM)|L(?:A(?:"
+  "TT(?:SBURGH|EKILL)|INVI(?:LLE|EW)|NDOME)|E(?:ASANT(?: V(?:ALLE|L)"
+  "Y|VILLE)|SSIS)|YMOUTH)|R(?:ATTS(?: HOLLOW|BURGH|VILLE)|E(?:STON H"
+  "OL(?:LO)?W|BLE)|T (?:JEFFERSO|WASHINGT)N|OSPECT|INCE)|U(?:L(?:T(?"
+  ":NEYVILLE|ENEY)|ASKI)|TNAM (?:STA(?:TION)?|VALLEY)|R(?:CHASE|LING"
+  "|DYS))|H(?:IL(?:(?:LIPSPOR|MON)T|ADELPHIA)|OENI(?:CIA|X)|ELPS)|YR"
+  "ITES)|H(?:A(?:R(?:T(?:WICK(?: SEMINARY)?|SDALE|FORD)|RI(?:S(?:VIL"
+  "LE|ON)?|MAN)|P(?:ERSFIELD|URSVILLE)|FORD(?: MILLS)?)|M(?:(?:ILTO|"
+  "DE|LI)N|MOND(?:SPORT)?|PTON(?: BAYS)?|BURG)|N(?:N(?:A(?:WA FALLS|"
+  "CROIX)|IBAL)|COCK|KINS)|L(?:COTT(?: C(?:ENTE|T)R|SVILLE)|ESITE|L)"
+  "|STINGS(?: (?:ON HUDSO|HDS)N)?|I(?:NES FALLS|LESBORO)|(?:UPPAUG|W"
+  "THORN)E|G(?:AMAN|UE)|YT CORNERS|VERSTRAW|DLEY)|O(?:L(?:L(?:AND(?:"
+  " PATE?NT)?|OWVILLE|EY|IS)|TSVILLE|BROOK|MES)|P(?:EWELL(?: J(?:UNC"
+  "TION|CT))?|KINTON)|W(?:E(?:S CAVE|LLS)|ARD BEACH)|R(?:TONVILLE|SE"
+  "HEADS|NELL)|F(?:STRA UNIV|FMEISTER)|NEOYE(?: FALLS)?|OSICK(?: FAL"
+  "LS)?|GANSBURG|UGHTON|BART|MER)|U(?:NT(?:INGT(?:(?:ON STATI)?ON|N "
+  "STA)|ER)?|L(?:ETTS L(?:ANDIN|ND)G|BERTON)|G(?:HSONVILLE|UENOT)|(?"
+  ":BBARDSVILL|M)E|DSON(?: FALLS)?|RLEY(?:VILLE)?)|I(?:GH(?:LAND(?: "
+  "(?:(?:F(?:AL)?|M(?:IL)?)LS|LAKE))?| FALLS|MOUNT)|L(?:L(?:S(?:IDE "
+  "M(?:ANO|N)R|DALE)|BURN)|TON)|N(?:CKLEY|SDALE)|CKSVILLE|MROD)|E(?:"
+  "N(?:DERSON(?: H(?:ARBO|B)R)?|SONVILLE|RIETTA)|M(?:PSTEAD|LOCK)|R("
+  "?:KIMER|MON)|ATHCOTE|UVELTON|WLETT|CTOR|LENA)|RTWK SEMINRY|YDE PA"
+  "RK)|N(?:OR(?:T(?:H(?: (?:B(?:A(?:(?:BYLO|LDWI)N|NGOR|Y)|R(?:OOKFI"
+  "ELD|ANCH)|ELLMORE|LENHEIM|OSTON)|C(?:O(?:HOCTON|LLINS)|H(?:ATHAM|"
+  "ILI)|ASTLE|REEK)|(?:GR(?:ANVILL|EEC)|LAWRENC)E|N(?:EW HYDE PARK|O"
+  "RWICH)|H(?:OOSICK|UDSON|ILLS)|T(?:ARRYTOWN|ONAWANDA)|M(?:ASSAPEQU"
+  "A|ERRICK)|S(?:YRACUSE|ALEM)|R(?:IVER|OSE)|PITCHER|EVANS|JAVA)|VIL"
+  "LE|PORT)|ON HILL)|W(?:ICH|OOD)|FOLK)|E(?:W(?: (?:H(?:A(?:M(?:BURG"
+  "|PTON)|RTFORD|VEN)|YDE PARK)|YORK(?: (?:M(?:IL)?LS|CITY))?|(?:L(?"
+  ":EBAN|ISB)|KINGST)ON|W(?:OODSTOCK|INDSOR)|B(?:ALTIMORE|ERLIN)|R(?"
+  ":OCHELLE|USSIA)|MILFORD|SUFFOLK|PALTZ|CITY)|TON(?: FALLS|VILLE)|A"
+  "RK(?: VALLEY)?|F(?:IELD|ANE)|BURGH|COMB|PORT)|L(?:SONVILLE|LISTON"
+  ")|(?:SCONSE|PONSI)T|VERSINK|DROW)| (?:B(?:ROOKFIELD|ELLMORE|LENHE"
+  "IM|ALDWIN)|(?:GRANVILL|LAWRENC|SYRACUS)E|T(?:ARRYTOWN|ONAWANDA)|M"
+  "(?:ASSAPEQUA|ERRICK)|WHITE PL(?:AI)?NS|NEW HYDE PK|COHOCTON|Y(?: "
+  "C)?)|I(?:AGARA (?:UNIV(?:ERSITY)?|FALLS)|(?:VERVILL|OB)E|CHOL(?:V"
+  "ILLE|S)|SKAYUNA|NEVEH)|A(?:TURAL BR(?:IDGE|G)|P(?:ANOCH|LES)|RROW"
+  "SBURG|NUET|SSAU)|Y(?:ACK|C)?|UNDA)|E(?:A(?:ST(?: (?:P(?:A(?:TCHOG"
+  "UE|LMYRA)|HARSALIA|EMBROKE)|W(?:I(?:LLI(?:AMS|ST)ON|NDHAM)|ORCEST"
+  "ER)|S(?:PRINGFIELD|CHODACK|ETAUKET|YRACUSE)|B(?:E(?:THANY|RNE)|LO"
+  "OMFIELD|RANCH)|M(?:E(?:REDITH|ADOW)|ORICHES|ARION)|A(?:TLANTIC BE"
+  "ACH|MHERST|URORA)|R(?:OC(?:HESTER|KAWAY)|ANDOLPH)|N(?:OR(?:THPORT"
+  "|WICH)|ASSAU)|F(?:ISHKILL|REETOWN)|(?:ELMHURS|JEWET)T|C(?:HATHAM|"
+  "ONCORD)|GREEN(?:BUS|WIC)H|H(?:AMPTON|OMER)|YAPHANK|DURHAM|QUOGUE|"
+  "ISLIP|OTTO)|CHESTER|PORT)|GLE (?:B(?:RIDGE|AY)|HARBOR)|RL(?:VILLE"
+  "|TON)|TON)|L(?:L(?:EN(?:BURG(?: (?:C(?:ENTE|T)R|DEP(?:OT)?))?|VIL"
+  "LE)|I(?:COTTVILLE|NGTON|SBURG))|M(?:IRA(?: H(?:EIGH|G)?TS)?|(?:HU"
+  "RS|ON)T|SFORD|A)|IZA(?:BETHTOWN|VILLE)|(?:DRE|WOO)D|B(?:RIDGE|A)|"
+  "KA PARK)| (?:(?:ATLANT(?:IC BEA|C B)C|GREEN(?:BUS|WIC))H|W(?:ILLI"
+  "(?:AMS|ST)ON|ORCESTER)|P(?:ATCHOGUE|HARSALIA)|(?:SPRING|BLOOM)FIE"
+  "LD|NORTHPORT|ROCHESTER|YAPHANK)|D(?:GE(?:MERE|WOOD)|(?:MESTO|E)N|"
+  "DYVILLE|WARDS)|S(?:PERANCE|OPUS|SEX)|ND(?:ICOTT|WELL)|RI(?:EVILLE"
+  "|N)|GGERTSVILLE|VANS MILLS|TNA)|L(?:A(?:KE(?: (?:P(?:L(?:EASANT|A"
+  "CID)|EEKSKILL)|L(?:INCOLND(?:ALE)?|UZERNE)|(?:G(?:EORG|ROV)|KATRI"
+  "N)E|H(?:UNTINGTON|ILL)|RONKONKOMA|SUCCESS|CLEAR|VIEW)|VILLE|MONT|"
+  "WOOD)| (?:GU(?:ARDIA AIRPOR|RDA ARP)T|FA(?:RGEVILL|YETT)E)|W(?:(?"
+  ":RENC(?:EVILL)?|YERSVILL)E|TONS)|N(?:ESVILLE|CASTER|SING)|URE(?:L"
+  "(?:TON)?|NS)|C(?:KAWAN|O)NA|GRANGEVILLE|RCHMONT|THAM)|I(?:V(?:ING"
+  "ST(?:ON(?: MANOR)?|N MNR)|ONIA(?: C(?:ENTE|T)R)?|ERPOOL)|TTLE (?:"
+  "(?:NEC|YOR)K|GENESE?E|VALLEY|FALLS)|N(?:D(?:ENHURST|LEY)|COLNDALE"
+  "|WOOD)|M(?:E(?:STONE|RICK)|A)|S(?:BON|LE)|DO BEACH|LY DALE|BERTY)"
+  "|O(?:C(?:K(?:PORT|WOOD|E)|H SHELDRA?KE|UST VALLEY)|NG (?:(?:IS(?:"
+  "LAND)? CIT|EDD)Y|BEACH|LAKE)|(?:UDONVILL|ON LAK|RRAIN)E|EHMANNS P"
+  "L(?:AZA|Z)|W(?:VILLE|MAN)|DI)|E(?:BANON(?: SP(?:RINGS|G))?|W(?:IS"
+  "(?:TON)?| BEACH)|(?:VITTOW|XINGTO)N|ON(?:ARDSVILLE)?|E(?: CENTER|"
+  "DS)|ICESTER| ROY)|Y(?:ON(?:(?:S FALL)?S| MOUNTAIN)|N(?:DONVILLE|B"
+  "ROOK)|COMING|SANDER)|K (?:HUNTINGTON|RONKONKOMA|PEEKSKILL)|LOYD H"
+  "ARBOR)|R(?:O(?:C(?:K(?: (?:CITY F(?:AL)?LS|(?:TAVER|GLE)N|STREAM|"
+  "HILL)|AWAY (?:P(?:(?:OIN)?T|ARK)|BEACH?)|VILLE C(?:ENTRE|TR)|Y PO"
+  "INT)|H(?:DALE VILL(?:AGE)?|ESTER))|S(?:LYN(?: (?:HEIG)?HTS)?|E(?:"
+  "N?DALE|BOOM)?|SBURG|COE)|U(?:ND (?:LAKE|TOP)|SES POINT)|OSEVELT(?"
+  ": ISL(?:AND)?|OWN)?|TTERDAM(?: J(?:UNCTION|CT))?|M(?:ULUS|E)|ESSL"
+  "EVILLE|NKONKOMA|XBURY|DMAN)|E(?:NSS(?:ELAER(?:V(?:IL)?LE| FALLS)?"
+  "|LAER FLS)|D(?:(?:F(?:IEL|OR)|WOO)D| (?:CREE|HOO)K)|ADING C(?:ENT"
+  "E|T)R|X(?:VILLE|FORD)|MSEN(?:BURG)?|GO PARK|TSOF)|I(?:CH(?:F(?:(?"
+  ":IELD SPRIN|LD SP)GS|ORD)|MOND(?: HILL|VILLE)|VILLE|BURG|LAND)|DG"
+  "E(?:MONT|WOOD)?|P(?:ARIUS|LEY)|VERHEAD|FTON)|A(?:(?:QUETTE|INBOW)"
+  " LAKE|Y(?:MONDVILLE| BROOK)|N(?:SOMVILLE|DOLPH)|VENA)|U(?:S(?:H(?"
+  ":VILLE|FORD)?|SELL)|BY)|HINE(?:CLIFF|BECK)|YE(?: BROOK)?)|A(?:L(?"
+  ":EX(?:AND(?:RIA BAY|ER)| BAY)|DE(?:N(?: MANOR)?|R CREEK)|FRED(?: "
+  "STA(?:TION)?)?|B(?:(?:ERTS|I)ON|ANY)|T(?:AMONT|ONA?|MAR)|LE(?:NTO"
+  "WN|GANY)|P(?:LAUS|INE)|M(?:OND|A)|ABAMA|COVE)|R(?:D(?:SLEY(?: (?:"
+  "ON HUDSO|HDS)N)?|EN)|(?:VERN|CAD|GYL)E|K(?:VILLE|PORT)|LINGTON|MO"
+  "NK)|U(?: SABLE (?:FO?RKS|CHASM)|S(?:ABLE CHASM|TERLITZ)|R(?:IESVI"
+  "LLE|ORA)|BURN)|N(?:NANDALE(?: ON HUDSON)?|CRAM(?:DALE)?|G(?:ELIC|"
+  "OL)A|D(?:OVER|ES)|TWERP)|M(?:ITY(?: HARBOR|VILLE)|A(?:GANSETT|WAL"
+  "K)|E(?:NIA|S)|STERDAM|HERST)|D(?:AMS(?: (?:CENTER|BASIN))?|DIS(?:"
+  "LEIGH P(?:AR)?K|ON)|IRONDACK)|T(?:H(?:OL(?: SPRINGS)?|ENS)|LANT(?"
+  ":IC B(?:EA)?CH|A)|TICA)|P(?:(?:ALACHI|PLETO)N|ULIA STA(?:TION)?)|"
+  "V(?:ERILL PARK|O(?:CA|N)|A)|S(?:H(?:VILLE|LAND)|TORIA)|K(?:WESASN"
+  "E|RON)|C(?:CORD|RA)|QUEBOGUE|IRMONT|FTON)|G(?:R(?:E(?:E(?:N(?:F(?"
+  ":IELD (?:CENTER|PARK)|LD (?:PARK|CTR))|W(?:OOD(?: L(?:AKE|K))?|IC"
+  "H)|(?:V(?:IL|A)L)?E|(?:HURS|POR)T| ISLAND|LAWN)|CE)|AT (?:VALLEY|"
+  "RIVER|BEND|NECK)|NELL|IG)|A(?:N(?:D (?:ISLAND|GORGE)|ITE SP(?:RIN"
+  ")?GS|VILLE)|HAMSVILLE|FTON)|O(?:VELAND|TON))|L(?:EN(?: (?:(?:AUBR"
+  "|SP)EY|(?:HEA|WIL)D|COVE|OAKS|PARK)|WOOD(?: L(?:ANDIN|ND)G)?|(?:V"
+  "IL|DA)LE|F(?:IEL|OR)D|S FALLS|MONT|HAM)|OVERSVILLE|ASCO)|A(?:R(?:"
+  "D(?:EN CITY(?: (?:S(?:OUTH)?|P(?:ARK)?))?|INER)|R(?:ATTSVILLE|ISO"
+  "N)|NERVILLE)|L(?:LUPVILLE|WAY)|(?:NSEVO|SP)ORT|INESVILLE|BRIELS)|"
+  "E(?:N(?:E(?:SEO|VA)|OA)|R(?:MANTOWN|RY)|ORGETOWN|TZVILLE)|O(?:LDE"
+  "NS BR(?:IDGE|G)|UVERNEUR|DEFFROY|WANDA|RHAM|SHEN)|UIL(?:D(?:ERLAN"
+  "D(?: CENTER)?|RLND CTR)|FORD)|IL(?:B(?:ERTSVILLE|OA)|GO BEACH)|HE"
+  "NT)|F(?:O(?:R(?:T (?:(?:(?:J(?:ACK|OHN)S|COVINGT)O|T(?:ILD|OTT)E|"
+  "PLAI|AN)N|H(?:AMILTON|UNTER)|MONTGOMERY|SALONGA|EDWARD|DRUM)|EST("
+  "?: HILLS|BURGH|VILLE|PORT))|NDA)|A(?:R(?:M(?:ERSV(?:ILLE STATION|"
+  "L STA)|ING(?:(?:VIL|DA)LE|TON))| ROCKAWAY|NHAM)|IR(?: HA(?:RBOR|V"
+  "EN)|PORT)|L(?:LSBURG|CONER)|YETT(?:EVILL)?E|NCHER|BIUS)|R(?:E(?:E"
+  "(?:VILLE|HOLD|PORT|DOM)|MONT C(?:ENTE|T)R|SH MEADOWS|WSBURG|DONIA"
+  ")|ANK(?:LIN(?: S(?:P(?:RIN)?GS|Q(?:UARE)?)|VILLE)?|FORT)|IENDSHIP"
+  "|ONTENAC)|I(?:SH(?:ERS(?: (?:L(?:ANDIN|ND)G|ISL(?:AND|E)))?|S EDD"
+  "Y|KILL)|N(?:E(?:VIEW)?|DLEY LAKE)|RE IS(?:LAND)? PINES|LLMORE)|L("
+  "?:E(?:ISCHMANNS|ETWOOD)|OR(?:AL PARK|IDA)|Y CREEK|ANDERS|USHING)|"
+  "E(?:LTS MILLS|URA BUSH|RNDALE)|T (?:MONTGOMERY|COVINGTON)|ULTON(?"
+  ":VILLE|HAM)?)|D(?:E(?: (?:KALB J(?:UNCTION|CT)|(?:PEYS|RUY)TER|WI"
+  "TT)|L(?:AN(?:CEY|SON)|PHI FALLS|EVAN|MAR|HI)|ER(?: (?:RIVER|PARK)"
+  "|FIELD)|P(?:AUVILLE|OSIT|EW)|(?:WITTVILL|GRASS)E|N(?:MARK|VER)|AN"
+  "SBORO|FERIET|XTER|RBY)|A(?:V(?:ENPORT(?: C(?:ENTE|T)R)?|IS PARK)|"
+  "N(?:NEMORA|SVILLE)|RIEN CENTER|L(?:TON|E)|YTON)|O(?:(?:(?:RMA|W)N"
+  "S|LGE)VILLE|VER PLAINS|BBS FERRY|UGLASTON)|I(?:CKINSON C(?:ENTE|T"
+  ")R|AMOND POINT|X HILLS)|U(?:RHAM(?:VILLE)?|N(?:KIRK|DEE)|ANESBURG"
+  ")|R(?:ES|Y)DEN)|O(?:L(?:D (?:(?:BETHPA|FOR)GE|WESTBURY|CHATHAM)|I"
+  "VE(?:BRIDGE|REA)|MSTEDVILLE|COTT|EAN)|AK(?:(?:LAND G(?:ARDE|D)N|S"
+  " CORNER)S| (?:ISLAND|BEACH|HILL)|FIELD|DALE)|R(?:I(?:SKANY(?: F(?"
+  ":AL)?LS)?|ENT)|CHARD PARK|ANGEBURG|WELL)|N(?:TARIO(?: C(?:ENTE|T)"
+  "R)?|(?:E(?:ONT|ID)|CHIOT)A)|S(?:WEG(?:ATCHIE|O)|SINING)|W(?:(?:AS"
+  "C|EG)O|LS HEAD)|T(?:(?:EG|T)O|ISVILLE)|CEAN(?: BEACH|SIDE)|(?:GDE"
+  "NS|BERN)BURG|(?:UAQUAG|DESS)A|X(?:FORD|BOW)|YSTER BAY|ZONE PARK|H"
+  "IO|VID)|T(?:H(?:O(?:M(?:PSON(?: R(?:IDGE|DG)|VILLE)|SON)|US(?:AND"
+  " ISLAND PAR| IS P)K|RNWOOD)|E(?:(?:NDAR|RES)A| BRONX)|REE MI?LE B"
+  "AY|IELLS|URMAN)|R(?:O(?:U(?:T CREEK|PSBURG)|Y)|I(?:BES HILL|NITY)"
+  "|U(?:MANSBURG|XTON)|EADWELL)|A(?:(?:CONIC LAK|NNERSVILL)E|(?:(?:L"
+  "LM|PP)A|RRYTOW)N|GHKANIC|HAWUS|BERG)|U(?:(?:PPER LAK|CKAHO)E|XEDO"
+  " PARK|SCARORA|NNEL|LLY|RIN)|I(?:OGA CENTER|CONDEROGA|LLSON|VOLI)|"
+  "O(?:(?:WN OF TO)?NAWANDA|MKINS COVE)|N OF TONA|YRONE)|K(?:E(?:N(?"
+  ":(?:OZA LAK|MOR)E|T(?: LAKES)?|DALL|NEDY)|W GARDEN(?:(?:S HILL)?S"
+  "| HL)|E(?:NE(?: VALLEY)?|SEVILLE)|RHONKSON|UKA PARK)|I(?:N(?:G(?:"
+  "S(?: P(?:OINT|ARK)|TON)| FERRY)|DERHOOK)|LL(?: BUCK|AWOG)|RK(?:VI"
+  "LLE|WOOD)|AMESHA LAKE|SMET)|N(?:O(?:X(?:BORO)?|WLESVILLE)|ICKERBO"
+  "CKER|APP CREEK)|A(?:T(?:TSKILL BAY|ONAH)|UNEONGA L(?:AKE|K)|NONA)"
+  "|RUMVILLE)|V(?:A(?:N (?:BUREN (?:P(?:OIN)?T|BAY)|HORNESV(?:IL)?LE"
+  "|ETTEN)|L(?:LEY (?:COTTAGE|STREAM|FALLS)|HALLA|ATIE|OIS)|ILS GATE"
+  "|RYSBURG)|E(?:R(?:NON(?: CENTER)?|(?:PLANC|BAN)K|ONA(?: BEACH)?|M"
+  "ONTVILLE|SAILLES)|TERANS ADM(?:INISTRATIO)?N|NICE CENTER|STAL)|(?"
+  ":OORHEESVILL|LY COTTAG)E|ICTOR(?:Y MILLS)?)|J(?:A(?:M(?:ES(?:VILL"
+  "E|PORT|TOWN)|AICA)|CKSON(?: (?:HEIG)?HTS|VILLE)|VA (?:VILLAGE|CEN"
+  "TER)|SPER|Y)|O(?:HN(?:S(?:ON(?: CITY|VILLE)?|BURG|TOWN)| F KENNED"
+  "Y AIRPORT)|RDAN(?:VILLE)?)|E(?:FFERSON(?: V(?:ALLE|L)Y|VI?LLE)?|R"
+  "ICHO|WETT)|F KENNEDY AP)|I(?:S(?:L(?:AND(?: PARK|IA)|IP(?: TERRAC"
+  "E)?)|CHUA)|N(?:D(?:IAN LAKE|USTRY)|TERLAKEN|WOOD|LET)|R(?:VING(?:"
+  "TON)?|ONDEQUOIT)|THACA(?: COLL(?:EGE)?)?|LION|ONIA)|U(?:N(?:ION(?"
+  ": (?:SPRINGS|HILL)|(?:VIL|DA)LE)|ADILLA)|P(?:PER (?:S(?:AINT REGI"
+  "S|T REG)|JAY)|TON)|LSTER PARK|TICA)|Y(?:O(?:RK(?:TOWN (?:HEIG)?HT"
+  "S|(?:SHIR|VILL)E)?|UNGS(?:VILLE|TOWN)|NKERS)|APHANK|ULAN)|QU(?:EE"
+  "NS(?: V(?:ILLAGE|LG)|BURY)?|AKER STREET|OGUE)))))$"
+  ,
+  /* -- OH -- OH -- OH -- OH -- OH -- OH -- OH -- OH -- OH -- OH -- */
+  "(?:\\b)((?^:(?i:(?:M(?:A(?:R(?:T(?:IN(?:S(?: FERRY|VILLE|BURG))?|"
+  "EL)|I(?:(?:A STEI|O)N|ETTA)|BLE(?: CLIFF|HEAD)|(?:SHALL|YS)VILLE|"
+  "K CENTER|ATHON|ENGO)|Y(?:FIELD(?: (?:V(?:ILLAGE|LG)|(?:HEIG)?HTS)"
+  ")?|NARD)|GN(?:ETIC SP(?:RIN)?GS|OLIA)|L(?:(?:(?:IN)?T|AG)A|VERN)|"
+  "N(?:CHESTER|SFIELD|TUA)|PLE(?: HEIGHTS|WOOD)|S(?:(?:SILL)?ON|URY)"
+  "|C(?:EDONIA|KSBURG)|(?:INEVILL|UME)E|D(?:EIRA|ISON)|TAMORAS|XIMO)"
+  "|I(?:L(?:L(?:E(?:R(?:S(?:VILLE|BURG|PORT)| CITY)|DGEVILLE)|FIELD|"
+  "BURY)|FORD(?: C(?:ENTE|T)R)?|TON CENTER|AN)|D(?:DLE(?:B(?:URG(?: "
+  "HEIGHTS)?|R(?:G HTS|ANCH))| (?:POINT|BASS)|FIELD|PORT|TOWN)|LAND|"
+  "VALE)|N(?:ER(?:AL (?:RIDGE|CITY)|VA)|GO(?: J(?:UNCTION|CT))?|FORD"
+  "|STER)|AMI(?: UNIV(?:ERSITY)?|SBURG|VILLE|TOWN))|O(?:UNT (?:S(?:A"
+  "INT JOSEPH|TERLING)|(?:BLANCHAR|GILEA)D|P(?:LEASANT|ERRY)|V(?:ICT"
+  "ORY|ERNON)|(?:LIBERT|COR)Y|H(?:EALTHY|OPE)|WASHING(?:TON)?|EATON|"
+  "ORAB)|N(?:T(?:GOMERY|PELIER|EZUMA|VILLE)|RO(?:EVILL)?E|CLOVA)|R(?"
+  ":R(?:ISTOWN|AL|OW)|ELAND H(?:IL)?LS|AINE)|OREFIELD|WRYSTOWN|GADOR"
+  "E|XAHALA|SCOW)|E(?:N(?:TOR(?: ON TH(?:E LAK)?E)?|DON)|CHANIC(?:S("
+  "?:BURG|TOWN))?|(?:SOPOTAMI|TAMOR)A|L(?:MOR|ROS)E|D(?:INA|WAY))|C("
+  "?: (?:C(?:(?:UTCHENV(?:IL)?L|LUR)E|OMB)|D(?:ERMOTT|ONALD)|ARTHUR|"
+  "GUFFEY)|CONNELSV(?:IL)?LE)|T (?:ST(?: JOSEPH|ERLING)|BLANCHARD|PL"
+  "EASANT)|U(?:NROE FALLS|RRAY CITY))|S(?:T(?:O(?:N(?:E CREEK|Y RIDG"
+  "E)|CK(?:DALE|PORT)|UT(?:SVILLE)?|W)|R(?:A(?:SBURG|TTON)|ONGSVILLE"
+  "|EETSBORO|UTHERS|YKER)|E(?:WART(?:SVILLE)?|UBENVILLE|RLING)| (?:L"
+  "OUISVIL|CLAIRSV)LE|ILLWATER|AFFORD)|A(?:INT (?:(?:JOHN|MARY|PARI)"
+  "S|LOUISV(?:ILLE|L)|CLAIRSVILLE|BERNARD|HENRY)|L(?:E(?:SVILLE|M)|I"
+  "NEVILLE)|R(?:DI(?:NIA|S)|AHSVILLE)|GAMORE H(?:IL)?LS|ND(?:YVILLE|"
+  "USKY)|YLER PARK|VANNAH|BINA)|H(?:A(?:R(?:ON(?: CENTER|VILLE)|PSBU"
+  "RG)|KER (?:HEIG)?HTS|WNEE(?: HILLS)?|(?:DYSI)?DE|NDON|UCK)|E(?:FF"
+  "IELD (?:V(?:ILLAGE|LG)|L(?:AKE|K))|R(?:RODSVILLE|WOOD)|LBY)|I(?:N"
+  "ROCK|LOH)|REVE)|O(?:UTH(?: (?:BLOOM(?:INGVILLE|FIELD)|(?:CHARLEST"
+  "|LEBAN)ON|(?:AMHERS|POIN)T|S(?:ALEM|OLON)|WEBSTER|EUCLID|VIENNA)|"
+  "INGTON)|MER(?:(?:VIL|DA)LE|SET|TON)|NORA|LON)|U(?:MM(?:IT(?: STA("
+  "?:TION)?|VILLE)|ERF(?:IEL|OR)D)|L(?:PHUR SP(?:RIN)?GS|LIVAN)|GAR("
+  "?: GROVE|CREEK)|NBURY)|Y(?:LVANIA(?: T(?:OWNSHI|W)P)?|CAMORE(?: V"
+  "(?:ALLE|L)Y)?|RACUSE|MMES)|E(?:V(?:EN (?:HILLS|MILE)|ILLE)|(?:DAL"
+  "I|LM)A|NECAVILLE|BRING|AMAN)|P(?:RING(?: VALLEY|FIELD|BORO|DALE)|"
+  "ENCER(?:VILLE)?|ARTA)| (?:BLOOM(?:INGVIL(?:LE)?|FIELD)|CHARLESTON"
+  "|ZANESVILLE)|C(?:IO(?:TO(?: FURNA?C|VILL)E)?|OTT(?:OWN)?)|I(?:NKI"
+  "NG SP(?:RIN)?G|LVER LAKE|DNEY)|MITH(?:FIELD|VILLE)|WANTON)|C(?:O("
+  "?:L(?:UMB(?:IA(?: STA(?:TION)?|NA)|US(?: GR(?:OVE|V))?)|L(?:EGE ("
+  "?:CO(?:RNE)?R|HL)|INS(?:VILLE)?)|ERAIN(?: T(?:OWNSHI|W)P)?|G HILL"
+  " STA|DWATER|TON)|N(?:CORD T(?:OWNSHI|W)P|TINENTAL|ESVILLE|GRESS|N"
+  "EAUT|OVER|VOY)|AL(?: (?:GROVE|RUN)|TON)|MMERCIAL P(?:OIN)?T|(?:SH"
+  "OC|VING)TON|R(?:TLAND|NING)|OLVILLE|PLEY)|A(?:R(?:RO(?:LL(?:TON)?"
+  "|THERS)|BON(?: HILL|DALE)|DINGTON|THAGENA|LISLE|EY)|N(?:AL (?:W(?"
+  ":INCHESTE|[HN]CHST)R|FULTON)|FIELD|TON)|M(?:P(?: DENNISON|BELL)|("
+  "?:ERO|DE)N|BRIDGE)|L(?:(?:EDONI|CUTT)A|DWELL)|S(?:T(?:ALIA|INE)|S"
+  "TOWN)|TAWBA|BLE|DIZ|IRO)|H(?:E(?:S(?:TER(?:VILLE|HILL|LAND)?|(?:A"
+  "PEAK|HIR)E)|RRY FORK)|A(?:NDLERSVI?LLE|GRIN FALLS|R(?:DON|M)|TFIE"
+  "LD|UNCEY)|I(?:L(?:LICOTHE|O)|PPEWA LAKE|CKASAW)|RISTIANSBU?RG)|L("
+  "?:A(?:R(?:KS(?:VILLE|BURG)|INGTON)|Y(?: CENTER|SVILLE|TON))|E(?:V"
+  "E(?:LAND(?: (?:HEIG)?HTS)?|S)|RMONT C(?:OU)?NTY)|I(?:NTON(?: C(?:"
+  "OU)?NTY)?|FTON)|(?:OVERDAL|YD)E)|U(?:YAHOGA (?:(?:HEIG)?HT|F(?:AL"
+  ")?L)S|(?:STA|TLE)R|MBERLAND|RTICE|BA)|I(?:N(?:C(?:INNATI(?: AIRPO"
+  "RT ANNEX)?|Y AMF)| ARPRT ANX)|RCLEVILLE)|R(?:O(?:OKSVILLE|WN CITY"
+  "|TON)|E(?:ST(?:LINE|ON)|OLA)|IDERSVILLE)|E(?:NTER(?:VILLE|BURG)|D"
+  "ARVILLE|LINA|CIL)|Y(?:NTHIANA|GNET))|W(?:A(?:SHINGTO(?:N(?: (?:CO"
+  "URT HOUSE|TOWNSHIP)|V(?:IL)?LE)| TWP)|L(?:NUT (?:CREEK|HILLS)|TON"
+  " HILLS|HONDING|BRIDGE|DO)|R(?:REN(?:SV(?:ILLE HEIG|L )HTS)?|N(?:O"
+  "CK|ER)|SAW)|Y(?:NE(?:S(?:FIELD|VILLE|BURG))?|LAND)|TER(?:VILLE|FO"
+  "RD|TOWN|LOO)|KE(?:FIELD|MAN)|ITE HILL|PAKONETA|DSWORTH|USEON|VERL"
+  "Y)|E(?:ST(?: (?:M(?:AN(?:CHESTER|SFIELD)|IL(?:LGROVE|TON))|(?:(?:"
+  "FARMING|ELK)T|JEFFERS)ON|C(?:ARROLLTON|HESTER)|L(?:AFAYETTE|IBERT"
+  "Y)|PO(?:RTSMOUTH|INT)|UNI(?:ON|TY)|ALEXANDRIA|RUSHVILLE|SALEM)|(?"
+  ":(?:ER)?VILL|LAK)E|FIELD C(?:ENTE|T)R|WOOD|ON)|LL(?:S(?:VILLE|TON"
+  ")|INGTON))|I(?:L(?:L(?:I(?:AMS(?:FIELD|BURG|PORT|TOWN)|STON)|O(?:"
+  "W(?: WOOD|ICK)|UGHBY)|SHIRE|ARD)|(?:BERFORC|KESVILL)E|M(?:INGTON|"
+  "OT))|N(?:D(?:HAM|SOR)|TERSVILLE|GETT RUN|CHESTER|ESBURG|ONA)|CKLI"
+  "FFE)| (?:(?:(?:CARROLL|FARMING)T|JEFFERS)ON|M(?:AN(?:CHESTER|SFIE"
+  "LD)|ILLGROVE)|(?:LAFAYETT|RUSHVILL)E|ALEXANDRIA|PORTSMOUTH)|O(?:O"
+  "(?:D(?:S(?:FIELD|TOCK)|(?:VILL|MER)E)|STER)|(?:RTHINGTO|LF RU)N)|"
+  "H(?:I(?:TE(?:H(?:OUSE|ALL)| COTTAGE)|PPLE)|EELERSBURG|ARTON)|R(?:"
+  "IGHT PAT(?:TER(?:SON(?: AFB)?)?)?|EN)|P(?: AIR BASE|AFB)|SHNGTN C"
+  "T HS|YOMING)|B(?:E(?:L(?:L(?:E(?: (?:CENTER|VALLEY)|(?:FONTAIN|VU"
+  ")E)|(?:VILL|AIR)E|BROOK)|MO(?:NT|RE)|OIT|PRE)|R(?:LIN(?: (?:(?:HE"
+  "IG)?HTS|CENTER))?|GHOLZ|KEY|EA)|A(?:VER(?:CREEK|DAM)?|CH(?: CITY|"
+  "WOOD)|LLSVILLE)|NT(?:ON(?: RIDG|VILL)|LEYVILL)E|T(?:HE(?:SDA|L)|T"
+  "SVILLE)|DFORD(?: (?:HEIG)?HTS)?|(?:VERL|XLE)Y)|R(?:O(?:OK(?:LYN(?"
+  ": (?:HEIG)?HTS)?| PARK|FIELD|VILLE)|AD(?:VIEW (?:HEIG)?HTS|WAY)|W"
+  "N(?: COUNTY|SVILLE))|I(?:(?:DGEPOR|LLIAN)T|(?:STOLVILL|C)E|NKHAVE"
+  "N)|A(?:D(?:Y LAKE|FORD|NER)|TENAHL)|E(?:CKSVILLE|WSTER|MEN)|UNSWI"
+  "CK|YAN)|L(?:A(?:(?:KESLE|IN)E|DENSBURG|NCHESTER|CKLICK)|OOM(?:ING"
+  "(?:BURG|DALE)|(?:VIL|DA)LE)|U(?:E (?:(?:CREE|ROC)K|ASH)|FFTON)|IS"
+  "SFIELD)|A(?:R(?:T(?:LETT|ON)|NESVILLE|BERTON|LOW)|(?:KERSVILL|Y V"
+  "ILLAG)E|I(?:NBRIDGE|RDSTOWN)|LTI(?:MORE|C)|T(?:AVIA|H)|NNOCK|SCOM"
+  ")|U(?:R(?:G(?:HILL|OON)|KETTSVILLE|BANK|TON)|C(?:K(?:EYE LAKE|LAN"
+  "D|S)|HTEL|YRUS)|F(?:FALO|ORD)|TLER)|O(?:W(?:ERS(?:VILLE|TON)|LING"
+  " GREEN)|URNEVILLE|ARDMAN|LIVAR|TKINS|NO)|I(?:G PRAIRIE|RMINGHAM|D"
+  "WELL)|YESVILLE)|N(?:E(?:W(?: (?:B(?:(?:LOOM(?:INGTO|NGT)|OSTO|REM"
+  "E)N|AVARIA|EDFORD)|M(?:A(?:RSHF(?:IE)?LD|TAMORAS|DISON)|IDDLETO?W"
+  "N)|S(?:TRAITSV(?:ILLE|L)|PRINGF(?:IE)?LD)|P(?:HIL(?:ADELPHI)?A|LY"
+  "MOUTH|ARIS)|L(?:(?:E(?:XINGT|BAN)|OND)ON|YME)|W(?:A(?:SHINGTO?N|T"
+  "ERFORD)|ESTON)|R(?:I(?:CHMOND|EGEL)|UMLEY|OME)|H(?:A(?:MPSHIRE|VE"
+  "N)|OLLAND)|C(?:ARLISLE|ONCORD)|A(?:LBANY|THENS)|KNOXVILLE|VIENNA)"
+  "|TO(?:N(?: FALLS|SVILLE)|WN)|BUR(?:GH (?:HEIG)?HTS|Y)|COMERSTOWN|"
+  "PORT|ARK)|(?:APOLI|FF)S|V(?:ILLE|ADA)|(?:GLE)?Y|LSONVILLE)|O(?:R("
+  "?:T(?:H(?: (?:(?:(?:(?:HAMP|CAN)T|JACKS)O|GEORGETOW)N|R(?:O(?:BIN"
+  "S|YALT)ON|IDGEVILLE|ANDALL)|B(?:EN(?:TON|D)|LOOMFIELD|ALTIMORE)|L"
+  "(?:EWISBURG|AWRENCE|IMA)|(?:FAIRFIEL|OLMSTE)D|KINGSVILLE|INDUSTRY"
+  "|STAR)|(?:FIEL|WOO)D)|ON)|W(?:ALK|ICH|OOD))|V(?:ELTY|A))| (?:R(?:"
+  "O(?:BINS|YALT)ON|IDGEVILLE)|B(?:LOOMFIELD|ALTIMORE)|L(?:EWISBURG|"
+  "AWRENCE)|C(?:OLLEGE HL|ANTON)|GEORGETOWN|KINGSVILLE|FAIRFIELD|IND"
+  "USTRY)|A(?:SH(?:VILLE|PORT)|(?:POLEO|NKI)N|VARRE)|ILES)|L(?:A(?:K"
+  "E(?:SIDE(?: MARBLEHEAD)?|(?:LIN|MOR)E|VI(?:LLE|EW)| MILTON|WOOD)|"
+  "N(?:GSVILLE|CASTER|SING)|(?:GRANG|CARN| RU)E|F(?:AYETTE|FERTY)|UR"
+  "(?:ELVILLE|A)|T(?:HAM|TY)|INGS)|I(?:BERTY (?:T(?:W(?:NSHI)?|OWNSH"
+  "I?|NS)P|C(?:ENTE|T)R)|T(?:TLE HOCKI?NG|CHFIELD|HOPOLIS)|ND(?:ENWA"
+  "LD|SEY)|MA(?:VILLE)?|SBON)|O(?:N(?:DON(?:DERRY)?|G BOTTOM)|WE(?:L"
+  "L(?:VILLE)?|R SALEM)|CK(?:BOURNE|LAND)|U(?:DON|IS)VILLE|R(?:E CIT"
+  "Y|AIN)|VELAND|GAN|DI)|E(?:E(?:S(?: CREEK|VILLE|BURG)|TONIA)|WIS(?"
+  ": CENTER|VILLE|BURG|TOWN)|(?:XINGT|BAN)ON|AVITTSBURG|IPSIC|MOYNE)"
+  "|U(?:C(?:AS(?:VILLE)?|KEY)|DLOW FALLS)|Y(?:N(?:CHBURG|DHURST|X)|O"
+  "NS)|KSID MARBLHD)|H(?:A(?:R(?:R(?:IS(?:VILLE|BURG|ON)|OD)|LEM SP("
+  "?:RIN)?GS|T(?:VILLE|FORD)|BOR VIEW|VEYSBURG|PSTER)|M(?:ILTON(?: T"
+  "(?:OWNSHI|W)P)?|(?:MOND|ER)SVILLE|DEN|LER)|N(?:GING ROCK|OVERTON|"
+  "NIBAL)|(?:Y(?:DEN|ES)|LLS)VILLE|V(?:ERHILL|ILAND)|SKINS)|O(?:L(?:"
+  "L(?:AN(?:SBURG|D)|OWAY)|(?:MESVILL|GAT)E|IDAY CITY)|ME(?:R(?:VILL"
+  "E)?|WORTH)|PE(?:DALE|WELL)|(?:USTO|OVE)N|CKINGPORT|YTVILLE|WARD)|"
+  "I(?:G(?:HLAND(?: (?:H(?:(?:EIGH|G)?T|(?:IL)?L)S|COUNTY))?|GINSPOR"
+  "T)|LL(?:SBORO|IARD)|DEAWAY HLS|CKSVILLE|NCKLEY|RAM)|U(?:B(?:ER HE"
+  "IGHTS|BARD)|NTS(?:VILLE|BURG)|(?:DS|R)ON)|E(?:MLOCK|BRON|LENA|ATH"
+  ")|GLND COUNTY)|P(?:O(?:RT(?: (?:W(?:ASHINGTON|ILLIAM)|(?:JEFFERS|"
+  "CLINT)ON)|SMOUTH|LAND|AGE)|W(?:HATAN P(?:OIN)?T|ELL)|L(?:AND|K)|E"
+  "TOWN|MEROY|TSDAM)|E(?:RRY(?:S(?:VILLE|BURG))?|T(?:TISVILLE|ERSBUR"
+  "G)|N(?:NSVILLE|INSULA)|MBER(?:VILLE|TON)|PPER PIKE|EBLES|DRO)|A(?"
+  ":R(?:MA(?: HEIGHTS)?|K(?:DALE|MAN)|IS)|(?:(?:LESTI|Y)N|INESVILL)E"
+  "|T(?:ASKALA|RIOT)|ULDING|NDORA)|L(?:EASANT(?: (?:PL(?:AI)?N|CITY|"
+  "HILL)|VILLE)|AIN(?: CITY|FIELD)|YMOUTH)|I(?:(?:CKERING|KE)TON|E(?"
+  ":DM|RP)ONT|NEY FORK|TSBURG|ONEER|QUA)|R(?:T (?:JEFFERSO|WASHINGT)"
+  "N|O(?:CTORVILLE|SPECT))|H(?:IL(?:LIPSBURG|O)|ONETON)|UT IN BAY)|R"
+  "(?:O(?:C(?:K(?:Y RI(?:DGE|VER)| C(?:REEK|AMP)|BRIDGE|FORD)|HESTER"
+  ")|S(?:S(?: COUNTY|VILLE|BURG|FORD)?|E(?:VILLE|LAWN|WOOD))|(?:AMIN"
+  "G SH(?:ORE|R)|GER)S|(?:BERTSVILL|M)E|OTSTOWN|UNDHEAD)|I(?:CH(?:MO"
+  "ND(?: (?:(?:HEIG)?HTS|DALE))?|(?:FIEL|WOO)D)|DGE(?:VILLE CORNERS|"
+  "WAY)|(?:SINGSU|TTMA)N|NARD MILLS|O GRANDE|PLEY)|U(?:S(?:S(?:ELL(?"
+  ":S P(?:OIN)?T|VILLE)?|IA)|H(?:SYLVANIA|VILLE))|DOLPH|TLAND)|A(?:Y"
+  "(?:(?:LA|MO)ND)?|D(?:CLIFF|NOR)|(?:RDE|WSO)N|NDOLPH|VENNA|CINE)|E"
+  "(?:(?:MINDER|ED?S)VILLE|(?:YNOLDSBUR|ADIN)G|PUBLIC|NO)|DGVILLE CO"
+  "RS)|A(?:L(?:L(?:E(?:NSVILLE|DONIA)|IANCE)|(?:EXANDRI|PH)A|V(?:ORD"
+  "TON|ADA)|BANY|GER)|R(?:LINGTON(?: (?:HEIG)?HTS)?|C(?:A(?:DIA|NUM)"
+  "|HBOLD)|MSTRONG M(?:IL)?LS)|D(?:A(?:MS(?: (?:COUNTY|MILLS)|VILLE)"
+  ")?|(?:DYSTO|RIA)N|E(?:LPHI|NA))|U(?:BURN T(?:OWNSHI|W)P|STIN(?:BU"
+  "RG|TOWN)|(?:GUST|ROR)A)|M(?:E(?:SVILLE|LIA)|S(?:TERDAM|DEN)|HERST"
+  "|ANDA|LIN)|N(?:D(?:ERSON|OVER)|T(?:IOCH|WERP)|(?:SONI|N)A)|SH(?:L"
+  "(?:AND|EY)|TABULA|VILLE)|V(?:ON(?:(?: LAK|DAL)E)?|A)|T(?:WATER|HE"
+  "NS|TICA)|(?:BERDEE|KRO)N|PPLE CREEK)|G(?:R(?:A(?:N(?:D(?:VIEW(?: "
+  "HEIGHTS)?| R(?:APIDS|IVER))|VILLE)|Y(?:SVILLE|TOWN)|TI(?:OT|S)|FT"
+  "ON)|E(?:EN(?: (?:SPRINGS|CAMP)|F(?:IEL|OR)D|VILLE|TOWN|WICH)?|LTO"
+  "N)|O(?:VE(?:R HILL| CITY|PORT)|ESBECK))|A(?:R(?:FIELD (?:HEIG)?HT"
+  "S|RETTSVILLE)|L(?:L(?:IPOLIS|OWAY)|ENA|ION)|TES MILLS|HANNA|MBIER"
+  ")|L(?:EN(?:(?:DAL|CO)E|FORD|MONT)|ANDORF|OUSTER)|E(?:(?:ORGE|RMAN"
+  ")TOWN|N(?:EV|O)A|TTYSBURG)|I(?:BSONBURG|LBOA|RARD)|O(?:(?:RDO|SHE"
+  ")N|MER)|U(?:YSVILLE|ERNSEY)|NADENHUTTEN|YPSUM)|F(?:A(?:IR(?:PO(?:"
+  "RT H(?:ARBO|B)R|INT)|VIEW(?: PARK)?|(?:BOR|LAW)N|FIELD)|RM(?:ER(?"
+  ":S(?:VILLE|TOWN))?|DALE)|YETTE(?: COUNTY|VILLE)?)|R(?:A(?:NK(?:L("
+  "?:IN(?: FURNACE)?|N FRNCE)|FORT)|ZEYSBURG)|E(?:DERICK(?:SBU?RG|TO"
+  "WN)|(?:EPOR|MON)T|SNO)|IENDSHIP)|O(?:R(?:T (?:JENNINGS|RECOVERY|L"
+  "ORAMIE|SENECA)|EST)|STORIA|WLER)|L(?:E(?:TCHER|MING)|AT ROCK|USHI"
+  "NG|ORIDA|Y)|E(?:ESBURG|LICITY)|ULTON(?:HAM)?|INDLAY)|E(?:A(?:ST(?"
+  ": (?:C(?:L(?:EVELAND|ARIDON)|ANTON)|SP(?:RINGFIELD|ARTA)|LI(?:VER"
+  "POOL|BERTY)|FULTONHAM|PALESTINE|ROCHESTER|ORWELL)|LAKE)|TON)| (?:"
+  "(?:SPRINGFIEL|CLEVELAN)D|FULTONHAM|LIVERPOOL|PALESTINE|ROCHESTER)"
+  "|L(?:L(?:SWORTH|ISTON)|(?:YRI|ID|B)A|(?:KTO|GI)N|DORADO|MORE)|D(?"
+  ":GE(?:WATER|RTON)|(?:IS)?ON)|N(?:GLEWOOD|ON)|VANSPORT|MPIRE|UCLID"
+  "|TNA)|D(?:E(?:L(?:AWARE|LROY|PHOS|TA)|ER(?:SVILLE|FIELD)|(?:CATU|"
+  "SHLE)R|XTER(?: CITY)?|R(?:WENT|BY)| GRAFF|FIANCE|NNISON)|A(?:Y(?:"
+  " HEIGHTS|TON)|(?:RBYDA|NVIL)LE|MASCUS|LTON)|U(?:N(?:(?:BRIDG|DE)E"
+  "|CAN FALLS|KIRK)|BLIN|PONT)|O(?:NNELSVILLE|YLESTOWN|RSET|VER|LA)|"
+  "I(?:LLONVALE|AMOND)|RESDEN)|O(?:AK(?:WOOD(?: V(?:ILLAGE|LG))?| H("
+  "?:ARBOR|ILL))|R(?:(?:ANGE|R)VILLE|EGON(?:IA)?|IENT|WELL)|L(?:D (?"
+  ":WASHINGTO?N|FORT)|MSTED FALLS)|T(?:T(?:AWA(?: HILLS)?|OVILLE)|WA"
+  "Y)|(?:K(?:OLO|EA)N|CEOL)A|S(?:TRANDER|GOOD)|BE(?:RLIN|TZ)|WENSVIL"
+  "LE|HIO CITY|VERPECK|NTARIO|XFORD)|T(?:I(?:(?:LTONSVILL|MBERLAK)E|"
+  "PP(?:ECANOE| CITY)|FFIN|RO)|R(?:E(?:MONT CITY|NTON)|I(?:MBLE|NWAY"
+  ")|O(?:TWOOD|Y))|H(?:O(?:RNVILLE|MPSON)|UR(?:STO|MA)N|E PLAINS)|O("
+  "?:R(?:ONTO|CH)|NTOGANY|LEDO)|U(?:PPERS PL(?:AI)?N|SCARAWA)S|A(?:L"
+  "LMADGE|RLTON|FT)|ERRACE PARK|WINSBURG)|K(?:I(?:N(?:GS(?: (?:ISLAN"
+  "D|MILLS)|VILLE|TON)|SMAN)|R(?:KERSVILLE|TLAND|BY)|L(?:BOURNE|LBUC"
+  "K)|(?:MBOLT|DR)ON|P(?:LING|TON)|TTS HILL)|E(?:N(?:T(?:ON)?|SINGTO"
+  "N)|TT(?:LERSVILLE|ERING)|LLEYS IS(?:LAND)?|ENE|RR)|A(?:LIDA|NSAS)"
+  "|UNKLE)|U(?:NI(?:O(?:N(?:V(?:ILLE(?: CENTER)?|LLE CTR)| (?:FURNAC"
+  "E|CITY)|PORT|TOWN)?|POLIS)|V(?:ERSITY (?:H(?:EIGHTS|TS?)|OF DAYTO"
+  "N)| DAYTON))|PPER (?:ARL(?:INGTO|NGT)N|SANDU?SKY)|RBAN(?:CREST|A)"
+  "|HRICHSVILLE|TICA)|J(?:A(?:C(?:KS(?:ON(?: (?:C(?:ENTE|T)R|BELDEN)"
+  "|VILLE|TOWN)?|N BELDEN)|OBSBURG)|MESTOWN|SPER)|E(?:R(?:OMESVILLE|"
+  "RY CITY|USALEM)|FFERSON(?:VI?LLE)?|WE(?:LL|TT)|NERA)|UNCTION CITY"
+  "|OHNSTOWN)|V(?:A(?:N(?: (?:BUREN|WERT)|DALIA|LUE)|LLEY (?:CITY|VI"
+  "EW)|UGHNSVILLE)|E(?:R(?:SAILLES|MILION|ONA)|NEDOCIA)|I(?:N(?:CENT"
+  "|TON)|CKERY|ENNA))|I(?:ND(?:IAN SP(?:RIN)?GS|EPENDENCE)|R(?:ON(?:"
+  "DALE|TON)|WIN)|S(?:LE SAIN| S)T GEORGE|(?:BERI|THAC)A|DAHO)|Y(?:O"
+  "(?:RK(?:SHIR|VILL)E|UNGSTOWN)|ELLOW SP(?:RIN)?GS)|Z(?:A(?:NES(?:F"
+  "IELD|VILLE)|LESKI)|OAR(?:VILLE)?)|QU(?:(?:AKER|EEN) CIT|INC)Y|XEN"
+  "IA))))$"
+  ,
+  /* -- OK -- OK -- OK -- OK -- OK -- OK -- OK -- OK -- OK -- OK -- */
+  "(?:\\b)((?^:(?i:(?:C(?:O(?:L(?:LINSVILLE|BERT|CORD|EMAN|ONY)|(?:M"
+  "(?:ANCH|MERC)|ALGAT|YL)E|(?:(?:VINGT|OKS)O|PA)N|UN(?:CIL HILL|TYL"
+  "INE)|N(?:NERVILLE|CHO)|W(?:LINGTON|ETA)|R(?:DELL|N))|A(?:R(?:T(?:"
+  "WRIGHT|ER)|NE(?:GIE|Y)|(?:DI|ME)N|RIER)|N(?:(?:ADIA|TO)N|UTE|EY)|"
+  "L(?:UMET|ERA|VIN)|M(?:ARGO|ERON)|S(?:HION|TLE)|TOOSA|PRON|CHE|DDO"
+  ")|H(?:E(?:(?:ROKE|YENN)E|COTAH|LSEA|STER)|A(?:TTANOOGA|NDLER)|O(?"
+  ":UTEAU|CTAW)|ICKASHA)|L(?:E(?:O(?: SPRINGS|RA)|ARVIEW|VELAND)|A(?"
+  ":R(?:EMORE|ITA)|YTON)|INTON)|R(?:O(?:MWELL|WDER)|AWFORD|ESCENT)|E"
+  "(?:NTRA(?:HOM|LI)A|MENT)|US(?:TER CITY|HING)|YRIL)|M(?:A(?:R(?:(?"
+  ":IETT|TH)A|L(?:AND|OW)|BLE CITY|SHALL|AMEC)|N(?:N(?:SVILLE|FORD)|"
+  "CHESTER|ITOU|GUM)|Y(?:SVILLE)?|COMB|DILL|SON|ZIE|UD)|O(?:UN(?:TAI"
+  "N (?:PARK|VIEW)|DS)|O(?:RE(?:LAND)?|DYS)|N(?:KEY ISLAND|ROE)|RRIS"
+  "(?:ON)?|FFETT|YERS)|I(?:L(?:L(?: CREEK|ERTON)|BURN|FAY|O)|DWEST C"
+  "ITY|AMI|NCO)|E(?:D(?:ICINE PARK|FORD)|E(?:KER|RS)|RIDIAN|AD|NO)|U"
+  "(?:S(?:(?:KOGE)?E|TANG)|L(?:DROW|HALL)|TUAL)|C(?:(?: MILLA|CURTAI"
+  ")N|ALESTER|LOUD))|S(?:T(?:R(?:O(?:NG CITY|UD)|A(?:TFORD|NG)|INGTO"
+  "WN)|I(?:L(?:LWATER|WELL)|DHAM|GLER)|ONEWALL|ERLING|UART)|A(?:(?:N"
+  "D SPRING|INT LOUI)S|(?:PULP|SAKW|VANN)A|L(?:LISAW|INA)|WYER|YRE)|"
+  "P(?:E(?:NCER(?:VILLE)?|RRY)|A(?:VINAW|RKS)|RINGER|IRO)|H(?:A(?:(?"
+  ":MRO|TTU)CK|DY POINT|WNEE|RON)|IDLER)|E(?:MINOLE|NTINEL|ILING|LMA"
+  "N)|(?: COFFEY|MITH)VILLE|(?:CHULTE|ULPHU)R|W(?:EETWATER|INK)|(?:K"
+  "IATOO|LIC)K|O(?:UTHARD|PER)|N(?:YDER|OW))|B(?:O(?:(?:ISE CIT|LE)Y"
+  "|K(?:CHITO|OSHE)|W(?:LEGS|RING)|SWELL|YNTON)|R(?:O(?:KEN (?:ARR|B"
+  ")OW|MIDE)|A(?:(?:DLE)?Y|GGS|MAN)|ISTOW)|E(?:(?:RNIC|SSI)E|A(?:RDE"
+  "N|VER)|TH(?:ANY|EL)|NNINGTON|GGS)|U(?:R(?:N(?:EYVILLE|S FLAT)|LIN"
+  "GTON|BANK)|FFALO|TLER|NCH)|L(?:A(?:NC(?:HARD|O)|CKWELL|IR)|UEJACK"
+  "ET|OCKER)|A(?:R(?:TLESVILLE|NSDALL)|TTIEST|CHE|KER|LKO)|I(?:(?:G "
+  "CABI|SO)N|LLINGS|NGER|XBY)|Y(?:ARS|RON))|W(?:A(?:R(?:R ACRES|DVIL"
+  "LE|NER)|T(?:ONGA|SON|TS)|(?:PANUCK|KIT)A|SHI(?:NGTON|TA)|U(?:KOMI"
+  "S|RIKA)|N(?:ETTE|N)|YN(?:OKA|E)|INWRIGHT|GONER|LTERS|DE)|E(?:L(?:"
+  "L(?:STON|ING)|EETKA|CH|TY)|(?:TUM|WO)KA|BBERS FALLS|ATHERFORD|STV"
+  "ILLE)|H(?:ITE(?:FIELD|SBORO| OAK)|EATLAND)|I(?:L(?:(?:BURT|S)ON|L"
+  "OW)|STER)|Y(?:N(?:NEWOOD|ONA)|ANDOTTE)|RIGHT CITY|OODWARD)|H(?:A("
+  "?:R(?:DE(?:N CI|S)TY|TSHORNE|MON|RAH)|S(?:TINGS|KELL)|ILEYVILLE|L"
+  "LETT|WORTH|YWOOD|MMON|NNA)|O(?:L(?:LIS(?:TER)?|DENVILLE)|(?:FFMA|"
+  "PETO|DGE)N|(?:BAR|Y)T|NOBIA|MINY|OKER|WE)|E(?:N(?:NE(?:SSEY|PIN)|"
+  "RYETTA|DRIX)|A(?:DRICK|LDTON|VENER)|LENA)|I(?:TCH(?:COCK|ITA)|LLS"
+  "DALE|NTON)|U(?:LBERT|NTER|GO)|YDRO)|P(?:O(?:N(?:CA CITY|D CREEK|T"
+  "OTOC)|C(?:ASSET|OLA)|R(?:TER|UM)|OLEVILLE|TEAU)|A(?:W(?:HUSKA|NEE"
+  ")|N(?:AM|OL)A|ULS VALLEY|RK HILL|DEN|OLI)|E(?:R(?:KINS|NELL|RY)|("
+  "?:NSACOL|ORI)A|CKHAM|GGS)|I(?:C(?:KENS|HER)|TTSBURG|EDMONT)|R(?:("
+  "?:OCT|Y)OR|(?:AG)?UE|ESTON)|U(?:RCELL|TNAM)|HAROAH|LATTER)|T(?:U("
+  "?:L(?:LAHASSEE|SA)|S(?:KAHOMA|SY)|PELO|RPIN|TTLE)|E(?:R(?:LTON|RA"
+  "L)|X(?:HOM|OL)A|CUMSEH|MPLE)|A(?:L(?:IHIN|AL|OG)A|HLEQUAH|TUMS|FT"
+  ")|H(?:(?:ACKERVILL|E VILLAG)E|OMAS)|I(?:NKER AFB|SHOMINGO|PTON)|O"
+  "(?:NKAWA|M)|WIN OAKS|YRONE|RYON)|L(?:O(?:N(?:E (?:GROVE|WOLF)|GDA"
+  "LE)|C(?:UST GROVE|O)|VELAND|OKEBA|GAN|YAL)|E(?:(?:XINGT|BAN)ON|(?"
+  ":FLO|QUI)RE|(?:NAPA|HIG)H|ON(?:ARD)?|EDEY)|A(?:N(?:G(?:STON|LEY)|"
+  "E)|M(?:ONT|AR)|VERNE|HOMA|WTON)|U(?:CIEN|THER)|INDSAY)|F(?:O(?:R("
+  "?:T (?:(?:GIB|TOW)SON|S(?:UPPLY|ILL)|COBB)|AKER|GAN)|S(?:TER|S)|Y"
+  "IL|X)|A(?:IR(?:LAND|MONT|VIEW|FAX)|R(?:RIS|GO)|NSHAWE|XON|Y)|I(?:"
+  "T(?:TSTOWN|ZHUGH)|NLEY)|R(?:E(?:DERICK|EDOM)|ANCIS)|T TOWSON|LETC"
+  "HER|ELT)|A(?:L(?:B(?:ANY|ERT|ION)|(?:DERSO|LE)N|TUS(?: AFB)?|INE|"
+  "EX|VA)|R(?:(?:CADI|KOM)A|APAHO|DMORE|NETT)|D(?:A(?:IR|MS)?|DINGTO"
+  "N)|M(?:ORITA|BER|ES)|N(?:ADARKO|TLERS)|(?:CHILL|PACH)E|T(?:WOOD|O"
+  "KA)|FTON|SHER|VANT|GRA)|R(?:A(?:T(?:LIFF CITY|TAN)|(?:MON|VI)A|ND"
+  "LETT|LSTON)|E(?:D(?: (?:ROC|OA)K|BIRD)|NTIESVILLE|YDON|ED)|O(?:S("
+  "?:STON|E)|OSEVELT|LAND|CKY|FF)|I(?:NG(?:(?:WOO|OL)D|LING)|PLEY)|U"
+  "(?:SH SPRINGS|BOTTOM|FE)|YAN)|D(?:E(?:L(?: CITY|AWARE)|W(?:AR|EY)"
+  "|ER CREEK|PEW|VOL)|A(?:V(?:I(?:DSON|S)|ENPORT)|COMA|ISY|LE)|U(?:("
+  "?:NCA|STI)N|R(?:ANT|HAM)|KE)|I(?:(?:LL CIT|SNE)Y|BBLE)|O(?:UG(?:H"
+  "ERTY|LAS)|VER)|RUM(?:RIGHT|MOND))|G(?:R(?:A(?:N(?:DFIELD|ITE|T)|C"
+  "EMONT|HAM|DY)|EENFIELD|OVE)|O(?:L(?:D(?:SBY|EN)|TRY)|ODWELL|TEBO|"
+  "ULD|WEN|RE)|A(?:R(?:BER|VIN)|[GT]E|NS)|E(?:(?:NE AUT|A)RY|RONIMO)"
+  "|LEN(?:POOL|COE)|U(?:THRIE|YMON))|O(?:K(?:E(?:ENE|MAH)| ST UNV AD"
+  "M|A(?:RCHE|Y)|LAHOMA CITY|MULGEE|TAHA)|(?:C(?:HELAT|TAVI)|PTIM|ME"
+  "G)A|AK(?:(?:LAN|WOO)D|HURST|S)|R(?:IENTA|LANDO)|S(?:AGE|CAR)|VERB"
+  "ROOK|LUSTEE|OLOGAH|ILTON|WASSO)|K(?:I(?:AMICHI(?: CHRISTIAN MISSI"
+  "ON)?|N(?:G(?:FISHER|STON)|TA)|EFER|OWA)|E(?:N(?:DRICK|EFIC|TON)|L"
+  "LYVILLE|TCHUM|OTA|YES|MP)|A(?:W(?: CITY)?|NSAS)|RE(?:MLIN|BS)|NOW"
+  "LES|ONAWA)|N(?:I(?:C(?:HOLS HILLS|OMA PARK)|NNEKAH)|EW(?:(?: LIM|"
+  "ALL)A|CASTLE|KIRK)|O(?:R(?:TH MIAMI|MAN)|WATA|BLE)|A(?:SH(?:OBA)?"
+  "|RDIN))|E(?:L(?:M(?:ORE CITY|WOOD|ER)|(?:DORAD| REN)O|K CITY|GIN)"
+  "|A(?:GLE(?: CITY|TOWN)|RLSBORO|KLY)|U(?:FAUL|CH)A|(?:DMON|NI)D|RI"
+  "CK)|V(?:I(?:N(?:ITA|SON)|LLAGE|AN|CI)|E(?:R(?:(?:DE|NO)N|A)|LMA)|"
+  "ALLIANT)|I(?:(?:N(?:DIA(?:HOM|NOL)|OL)|SABELL)A|DABEL)|J(?:E(?:N("
+  "?:NING|K)S|T)|ONES|AY)|Y(?:A(?:RNABY|LE)|UKON)|QU(?:INTON|APAW)|U"
+  "NION CITY))))$"
+  ,
+  /* -- OR -- OR -- OR -- OR -- OR -- OR -- OR -- OR -- OR -- OR -- */
+  "(?:\\b)((?^:(?i:(?:C(?:A(?:N(?:YON(?: CITY|VILLE)|NON BEACH|BY)|M"
+  "(?:AS VALLEY|P SHERMAN)|(?:VE JUNCTI|RLT)ON|SCAD(?:E LOCKS|IA)|YU"
+  "SE)|R(?:A(?:WFORDSVI?LL|TER LAK|BTRE|N)E|ES(?:CENT(?: LAKE)?|WELL"
+  ")|OOKED RIVER(?: RANCH)?|KD RVR RNCH)|O(?:(?:(?:TTAGE GRO)?V|QUIL"
+  "L)E|R(?:(?:NELIU|VALLI)S|BETT)|L(?:UMBIA CITY|TON)|OS BAY|BURG|ND"
+  "ON)|H(?:RISTMAS V(?:ALLE|L)Y|(?:ARLESTO|ILOQUI)N|E(?:SHIRE|MULT))"
+  "|L(?:A(?:TSKANIE|CKAMAS)|OVERDALE)|U(?:L(?:P CREEK|VER)|RTIN)|ENT"
+  "RAL POINT)|M(?:A(?:R(?:YLHURST|COLA|ION)|(?:(?:UP|L)I|PLETO)N|N(?"
+  ":ZANITA|NING)|YVILLE|DRAS)|O(?:UNT (?:HOOD PARKDALE|VERNON|ANGEL)"
+  "|N(?:MOUTH|UMENT|ROE)|LALLA|SIER|RO)|E(?:D(?:ICAL SP(?:RIN)?GS|FO"
+  "RD)|R(?:RILL|LIN)|TOLIUS|ACHAM|HAMA)|I(?:L(?:TON FR(?:EEWATE|WT)R"
+  "|L CITY|WAUKIE)|TCHELL|DLAND|KKALO)|C(?:(?:KENZIE BRIDG|MINNVILL)"
+  "E| KENZIE BR(?:IDGE|G)|NARY)|YRTLE (?:CREEK|POINT)|U(?:LINO|RPHY)"
+  "|T HOOD PRKDL)|S(?:U(?:M(?:MER(?: LAK|VILL)E|PTER)|BLIMITY|THERLI"
+  "N|NRIVER)|A(?:INT (?:BENEDICT|HELENS|PAUL)|GINAW|LEM|NDY)|H(?:E(?"
+  ":R(?:IDAN|WOOD)|DD)|A(?:DY COVE|NIKO))|I(?:L(?:VER(?: LAKE|TON)|E"
+  "TZ)|(?:STER|XE)S)|C(?:OTTS(?: MILLS|BURG)|APPOOSE|IO)|E(?:A(?:L R"
+  "OCK|SIDE)|(?:NEC|LM)A)|PR(?:A(?:GUE RIVER|Y)|INGFIELD)|T(?:A(?:NF"
+  "IELD|YTON)| BENEDICT)|W(?:EET |ISS)HOME|OUTH BEACH)|W(?:I(?:L(?:("
+  "?:DER|SON)VILLE|L(?:AMINA|IAMS)|BUR)|N(?:CHEST(?:ER(?: BAY)?|R BA"
+  "Y)| BAY|STON))|A(?:L(?:T(?:ERVILLE|ON)|DPORT|LOWA)|R(?:RE(?:NTO)?"
+  "N|M SPRINGS)|MIC|SCO)|E(?:ST(?:(?: (?:STAYTO|LIN)|O)N|F(?:ALL|IR)"
+  "|LAKE|PORT)|DDERBURN|LCHES)|O(?:OD(?: VILLAGE|BURN)|LF CREEK)|H(?"
+  ":ITE CITY|EELER))|B(?:R(?:O(?:(?:OK(?:ING)?|THER)S|WNSVILLE|ADBEN"
+  "T|GAN)|I(?:D(?:AL VEIL|GEPORT)|GHTWOOD))|L(?:AC(?:K BUTTE RANCH|H"
+  "LY)|K BTTE RNCH|UE RIVER|ODGETT|Y)|A(?:(?:KER|Y) CITY|N(?:DON|KS)"
+  "|TES)|E(?:A(?:VER(?:CREEK|TON)?|TTY)|ND)|U(?:(?:TTE FALL|RN)S|XTO"
+  "N)|O(?:ARDMAN|NANZA|RING)|IRKENFELD)|G(?:R(?:A(?:N(?:(?:D ROND|IT"
+  ")E|TS PASS)|SS VALLEY)|E(?:ENLEAF|SHAM))|L(?:EN(?:EDEN B(?:EA)?CH"
+  "|DALE|WOOD)|(?:ADSTON|ID)E)|A(?:R(?:IBALDI|DINER)|LES CREEK|STON|"
+  "TES)|O(?:VERNMENT C(?:AM)?P|LD (?:BEACH|HILL))|E(?:ARHART|RVAIS)|"
+  "ILCHRIST)|P(?:O(?:RT(?: ORFOR|LAN)D|WE(?:LL BUTTE|RS)|ST)|R(?:IN("
+  "?:EVILLE|CETON)|AIRIE CITY|OSPECT)|A(?:(?:CIFIC CIT|ISLE)Y|ULINA)"
+  "|I(?:STOL RIVER|LOT ROCK)|L(?:EASANT HILL|USH)|H(?:ILOMATH|OENIX)"
+  "|ENDLETON)|T(?:I(?:MBER(?:LINE LODGE)?|LL(?:AMOOK|ER)|DEWATER|GAR"
+  "D)|H(?:E DALLES|URSTON)|OL(?:OVANA PARK|EDO)|E(?:RREBONN|NMIL)E|R"
+  "(?:OUTDALE|AIL)|U(?:ALATIN|RNER)|A(?:NG|L)ENT|MBRLINE LDG|YGH VAL"
+  "LEY)|A(?:L(?:(?:LEG|B)ANY|(?:OH|SE)A|VADORE)|D(?:A(?:IR VILLAGE|M"
+  "S)|RIAN|EL)|R(?:CH CAPE|LINGTON|OCK)|S(?:H(?:LAN|WOO)D|TORIA)|(?:"
+  "PPLEGAT|NTELOP)E|U(?:MSVILLE|RORA)|(?:THEN|ZALE)A|GNESS|MITY)|D(?"
+  ":A(?:Y(?:S CREEK|VILLE|TON)|L(?:LAS|E)|MASCUS|IRY)|E(?:(?:ER ISLA"
+  "N|ADWOO)D|POE BAY|TROIT|XTER)|I(?:AMOND(?: LAKE)?|LLARD)|U(?:(?:N"
+  "D|RK)EE|FUR)|O(?:NALD|RENA)|R(?:EWSEY|AIN))|R(?:O(?:CKAWAY(?: B(?"
+  ":EA)?CH)?|SE(?: LODGE|BURG)|GUE RIVER)|I(?:C(?:KREALL|HLAND)|(?:V"
+  "ERSID|DDL)E|TTER|LEY)|E(?:EDSPORT|DMOND|MOTE)|HODODENDRON|AINIER|"
+  "UFUS)|H(?:A(?:(?:L(?:FWA|SE)|PPY VALLE)Y|R(?:(?:BO|PE)R|RISBURG)|"
+  "MMOND|INES)|E(?:R(?:MISTON|EFORD)|PPNER|LIX|BO)|U(?:NTINGTON|BBAR"
+  "D)|I(?:LLSBORO|NES)|OOD RIVER)|L(?:A(?:(?: (?:GRAND|PIN)|FAYETT)E"
+  "|KE(?: OSWEGO|SIDE|VIEW)|NGLOIS|WEN)|O(?:(?:STI|RA)NE|NG CREEK|GS"
+  "DEN|WELL)|E(?:(?:XINGT|BAN)ON|ABURG)|INCOLN CITY|YONS)|N(?:E(?:W("
+  "?: PINE CR(?:EE)?K|BERG|PORT)|TARTS(?: BAY)?|SKOWIN|HALEM|OTSU)|O"
+  "(?:R(?:TH (?:P(?:LAINS|OWDER)|BEND)|WAY)|TI)|YSSA)|F(?:O(?:R(?:T "
+  "(?:KLAMATH|ROCK)|EST GROVE)|S(?:SIL|TER)|X)|A(?:LL(?: CREEK|S CIT"
+  "Y)|IRVIEW)|R(?:ENCHGLEN|IEND)|LORENCE|IELDS)|O(?:AK(?:(?: GROV|RI"
+  "DG)E|LAND)|RE(?:GON CITY|TECH)|T(?:TER ROCK|IS)|CEANSIDE| BRIEN|N"
+  "TARIO|DELL|PHIR|XBOW)|J(?:O(?:(?:RDAN VALLE|HN DA)Y|SEPH)|A(?:CKS"
+  "ONVILLE|MIESON|SPER)|UN(?:CTION CITY|TURA)|EFFERSON)|I(?:D(?:LEYL"
+  "D PARK|ANHA)|(?:NDEPENDENC|ON)E|R(?:ONSIDE|RIGON)|M(?:BLER|NAHA)|"
+  "SLAND CITY)|E(?:(?:NTERPRIS|DDYVILL|UGEN)E|L(?:(?:KTO|GI)N|MIRA)|"
+  "AGLE (?:CREEK|POINT)|STACADA|CHO)|K(?:I(?:N(?:G CITY|ZUA)|MBERLY)"
+  "|E(?:N[OT]|IZER|RBY)|LAMATH FALLS)|U(?:M(?:ATILL|PQU)A|NI(?:ON|TY"
+  ")|KIAH)|V(?:(?:E(?:RNONI|NET)|ID)A|ALE)|Y(?:A(?:CHATS|MHILL)|ONCA"
+  "LLA)|ZIGZAG))))$"
+  ,
+  /* -- PA -- PA -- PA -- PA -- PA -- PA -- PA -- PA -- PA -- PA -- */
+  "(?:\\b)((?^:(?i:(?:S(?:H(?:A(?:W(?:NEE(?: ON D(?:ELAWAR)?E)?|(?:A"
+  "NES|VILL)E)|R(?:PS(?:VILLE|BURG)|ON(?: HILL)?|TLESVILLE)|D(?:Y(?:"
+  " GROV|SID)E|E GAP)|MOKIN(?: DAM)?|NKSVILLE|VERTOWN)|I(?:PP(?:EN(?"
+  ":SBURG|VILLE)|INGPORT)|R(?:EMANSTOWN|LEYSBURG)|NGLEHOUSE|CKSHINNY"
+  "|LLINGTON)|E(?:(?:AKLEYVIL|RMANS DA)LE|NAN(?:DOAH|GO)|FFIELD|LOCT"
+  "A|PPTON)|O(?:EMAKERSV(?:IL)?LE|HOLA)|REWSBURY|UNK)|T(?:R(?:A(?:(?"
+  ":TTANVILL|BAN)E|USSTOWN|FFORD|SBURG)|O(?:NGSTOWN|UDSBURG))|A(?:R("
+  "?: JUNCTION|LIGHT|RUCCA|FORD)|TE (?:COLLEG|LIN)E|HLSTOWN)| (?:B(?"
+  ":ENEDICT|ONIFACE)|CL(?:AI)?RSVILLE|PETERSBURG|DAVIDS)|O(?:CK(?:ER"
+  "TOWN|DALE)|N(?:EBORO|Y RUN)|UCHSBURG|YSTOWN|WE)|E(?:EL(?:VILLE|TO"
+  "N)|VENS(?:VILLE)?|WARTSTOWN|RLING)|U(?:MP CREEK|RGEON)|ILLWATER)|"
+  "A(?:INT (?:(?:DAVID|THOMA|JOHN)S|CLAIR(?:SV(?:ILLE)?)?|B(?:ENEDIC"
+  "T|ONIFACE)|M(?:ICHAEL|ARYS)|PETERS(?:BURG)?)|L(?:I(?:SBURY|NA|X)|"
+  "T(?:SBURG|ILLO)|FORD(?:VILLE)?|(?:UNG|ON)A|LADASBURG)|(?:(?:(?:DS"
+  "BURY|BINS)VI|SSAMANSVI?)LL|GAMOR)E|N(?:DY (?:RIDG|LAK)E|ATOGA)|Y("
+  "?:LORSBURG|RE)|X(?:ONBURG|TON)|CRAMENTO|EGERTOWN|RVER)|P(?:R(?:IN"
+  "G(?: (?:C(?:HURCH|REEK|ITY)|BROOK TOWNSHIP|M(?:ILLS|OUNT)|G(?:ROV"
+  "E|LEN)|HOUSE|RUN)|(?:VIL|DA)LE|FIELD|BORO|TOWN|S)|A(?:NKLE M(?:IL"
+  ")?L|GG)S|NG BRK TWP|UCE CREEK|OUL)|A(?:RTANSBURG|NGLER)|INNERSTOW"
+  "N)|O(?:U(?:TH(?: (?:W(?:ILLIAMSPORT|AVERLY)|MO(?:NTROSE|UNTAIN)|A"
+  "BINGTON TOWNSHIP|(?:CANAA|GIBSO)N|H(?:EIGHT|ILL)S|(?:FO|PA)RK|STE"
+  "RLING)|(?:EASTER|AMPTO)N|VIEW|WEST)|DER(?:SBURG|TON))|NESTOWN|LEB"
+  "URY|MERSET)|U(?:M(?:M(?:IT (?:STA(?:TION)?|HILL)|ER(?:(?:VIL|DA)L"
+  "E|HILL))|NEYTOWN)|GAR(?: (?:GROVE|NOTCH|RUN)|LOAF)|(?:TERSVILL|PL"
+  "E)E|SQUEHANNA|NBURY)|C(?:H(?:(?:UY(?:LKILL HAVE|KL HAV)|AEFFERSTO"
+  "?W)N|(?:NEC|WEN)KSVILLE|E(?:LLSBURG|NLEY))|OT(?:TDALE|LAND|RUN)|E"
+  "NERY HILL|RANTON|IOTA)|E(?:L(?:(?:LERSVILL|INSGROV)E|TZER)|VEN (?"
+  ":VALLEY|FIELD)S|W(?:ICKLEY|ARD)|(?:MINOL|CAN)E|ANOR|NECA)|I(?:N(?"
+  ":KING SP(?:RIN)?|NAMAHONIN)G|(?:X MILE RU|MPSO|DMA)N|LVER(?: SPRI"
+  "NG|DALE)|PESVILLE|GEL)| (?:WILLIAMSP(?:ORT?|RT)|MO(?:NTROSE|UNTAI"
+  "N)|ABINGTO?N TWP|CONNELLSVL|STERLING)|W(?:E(?:ET VALLEY|NGEL)|I(?"
+  ":FTWATER|SSVALE)|A(?:RTHMORE|TARA)|OYERSVILLE)|M(?:I(?:TH(?:FIELD"
+  "|MILL|TON)|CKSBURG)|O(?:KE(?:TOW|RU)N|CK)|ETHPORT)|L(?:AT(?:E(?: "
+  "RUN|DALE)|INGTON)|I(?:PPERY ROCK|CKVILLE|GO)|OVAN)|Y(?:(?:(?:BERT"
+  "|KE)SVILL|CAMOR)E|LVAN(?: DELL|IA))|N(?:YDER(?:SBURG|TOWN)|OW SHO"
+  "E)|K(?:IPPACK|YTOP)|QUIRREL HILL)|M(?:O(?:UNT(?: (?:P(?:LEASANT(?"
+  ": MILLS)?|OCONO|ENN)|(?:HOLLY SPRING|MORRI)S|B(?:RADDOCK|ETHEL)|W"
+  "(?:ASHINGTON|OLF)|(?:LEBAN|UNI)ON|C(?:ARMEL|OBB)|J(?:EWETT|OY)|(?"
+  ":GR|A)ETNA|OLIVER)|AIN(?: TOP|HOME)|VILLE)|N(?:T(?:GOMERY(?:V(?:I"
+  "L)?LE)?| (?:CLARE|ALTO)|OUR(?:SVILLE)?|ANDON|ROSE)|ROE(?: T(?:OWN"
+  "SHI|W)P|VILLE|TON)|O(?:CACY STA(?:TION)?|NGAHELA)|ESSEN|ACA)|R(?:"
+  "RIS(?:(?:VIL|DA)LE| RUN)?|(?:GA(?:NTOW)?|AN|TO)N|EA)|O(?:N T(?:OW"
+  "NSHI|W)P|SIC)|H(?:RSVILLE|NTON)|(?:CANAQU|DEN)A|S(?:HANNON|COW)|Y"
+  "LAN)|A(?:R(?:I(?:ON(?: (?:HEIGHTS?|CENTER))?|E(?:NVILLE|TTA)|ANNA"
+  ")|S(?:HALLS CR(?:EE)?K|TELLER)?|TIN(?:S(?: CREEK|BURG)|DALE)?|C(?"
+  ":US HOOK|HAND)|KLE(?:YSBURG|TON)|Y(?:SVILLE| D)| LIN|WOOD|BLE)|N("
+  "?:O(?:R(?:VILLE)?|A)|NS CHOICE|CHESTER|SFIELD|AYUNK|HEIM)|D(?:ISO"
+  "N(?: T(?:OWNSHI|W)P|BURG)?|ERA)|C(?:(?:KEYVILL|UNGI)E|ARTHUR)|HA("
+  "?:NOY (?:PLANE|CITY)|FFEY)|PLE(?:TON DEP(?:OT)?| GLEN)|T(?:AMORAS"
+  "|TAWANA|HER)|Y(?:FIELD|PORT|TOWN)|IN(?:ESBURG|LAND)|(?:SONTOW|LVE"
+  "R)N|XATAWNY|MMOTH)|I(?:L(?:L(?:ER(?:S(?:VILLE|BURG|TOWN)|TON)| (?"
+  ":VILLAGE|CREEK|HALL|RUN)|(?:MON|RIF)T|V(?:IL|A)LE|S(?:BORO)?|HEIM"
+  ")|FORD(?: SQ(?:UARE)?)?|AN(?:VILLE)?|MONT PARK|NESVILLE|ESBURG|DR"
+  "ED|ROY|TON)|D(?:DLE(?:B(?:UR(?:Y CENTER|G)|RY CTR)| C(?:ITY (?:EA"
+  "|WE)ST|REEK)|PORT|TOWN)| CITY (?:EA|WE)ST|LAND|WAY)|N(?:ER(?:AL ("
+  "?:SP(?:RIN)?GS|POINT)|S(?: MILL|VILLE))|ISINK H(?:IL)?LS|GOVILLE)"
+  "|FFLIN(?:VILLE|BURG|TOWN)?|QUON)|C(?: (?:C(?:ON(?:NELLS(?:B(?:UR)"
+  "?G|TOWN)|ELSTOWN)|L(?:ELLANDTOWN|URE))|K(?:E(?:ES ROCKS|AN)|NIGHT"
+  "(?:STOWN)?)|(?:(?:SHERRYS|VEY)TOW|GRAN)N|(?:ALISTERV(?:IL)?L|INTY"
+  "R)E|E(?:WENSVILLE|LHATTAN)|DONALD|MURRAY)|K(?:NIGHT(?:STOWN)?|E(?"
+  ":ESPORT|AN))|(?:CLELLANDT|SHERRYSTO)WN|GEES MILLS|MURRAY|ADOO)|E("
+  "?:R(?:I(?:ON STA(?:TION)?|DIAN)|(?:RITTS|TZ)TOWN|CER(?:SBURG)?)|A"
+  "D(?:OW(?: LANDS|BROOK)|VILLE)|S(?:SIAH COLL(?:EGE)?|HOPPEN)|N(?:G"
+  "ES MILLS|DENHALL|TCLE)|L(?:ROSE(?: PARK)?|CROFT)|CHANICS(?:VI?LLE"
+  "|BURG)|YERSDALE|HOOPANY|XICO|DIA)|T (?:PLEASANT(?: M(?:ILLS)?)?|("
+  "?:HOLLY SPG|MORRI)S|(?:WASHINGT|LEBAN)ON|BRADDOCK|OLIVER)|U(?:N(?"
+  ":C(?:Y VALLE)?Y|HALL|SON)|(?:RRYSVILL|S)E|IR)|YERSTOWN)|C(?:O(?:N"
+  "(?:N(?:E(?:AUT(?: LAK|VILL)|LLSVILL)E|OQU(?:ENESSIN|NS)G)|E(?:MAU"
+  "GH|STOGA)|CORD(?:VILLE)?|SHOHOCKEN|FLUENCE|YNGHAM|WAY)|L(?:L(?:(?"
+  ":OMSVIL|INGDA)LE|EGE(?: HILL|VILLE))|UMB(?:IA(?: (?:CROSS ROADS|X"
+  " RD))?|US)|(?:MA|VE)R|EBROOK)|R(?:NW(?:ELLS (?:HEIG)?HTS|ALL)|A(?"
+  ":OPOLIS|L)|LISS|SICA|RY)|A(?:L(?: (?:TOWNSHIP|CENTER)|DALE|PORT)|"
+  "TESVILLE)|O(?:(?:LSPRIN|KSBUR)G|PERS(?:BURG|TOWN))|B(?:BS L(?:AKE"
+  " PRESERVE|K PRES)|URN)|U(?:DERSPORT|RTDALE|LTERS|PON)|(?:WAN(?:SV"
+  "ILL|ESQU)|MMODOR)E|C(?:HRAN(?:VILLE|TON)|OLAMUS)|(?:GAN STATI|VIN"
+  "GT)ON|KEBURG|DORUS|PLAY)|A(?:R(?:(?:(?:(?:BON)?DA|VERSVIL)L|NEGI)"
+  "E|L(?:ISLE(?: B(?:ARRAC|R)KS)?|TON)|(?:ROLLTOW|SO)N|MICHAELS)|M(?"
+  ":BR(?:IDG(?:E SPRIN| SP)GS|A)|P(?:(?:BELL)?TOWN| HILL)|MAL)|S(?:T"
+  "(?:LE SHAN(?:NO)?N|ANEA)|S(?:ANDRA|VILLE)|HTOWN)|L(?:LE(?:NSBURG|"
+  "RY)|IFORNIA|UMET|VIN)|N(?:ADENSIS|ONSBURG|TON)|TA(?:SAUQU|WISS)A|"
+  "IRNBROOK|DOGAN|BOT)|H(?:E(?:S(?:T(?:ER(?: (?:(?:(?:HEIG)?HT|SPR(?"
+  ":IN)?G)S|T(?:OWNSHI|W)P)|BROOK)?|NUT R(?:IDGE|DG)| SPRINGS)|WICK)"
+  "|RRY(?: TRE|VILL)E|LTENHAM|YNEY)|A(?:M(?:BERS(?:VILLE|BURG)|PION)"
+  "|NDL(?:ERS VALLE|RS VL)Y|L(?:K HILL|FONT)|DDS FORD|RLEROI|THAM)|I"
+  "(?:(?:NCHILL|COR)A|LDS)|URCHVILLE|RISTIANA)|L(?:A(?:R(?:K(?:S(?: "
+  "(?:SUMMIT|GREEN|MILLS)|VILLE|BURG))?|I(?:(?:NGT)?ON|DGE)|EN(?:DON"
+  "|CE))|YS(?:VILLE|BURG)|IRTON)|I(?:F(?:TON(?: (?:HEIG)?HTS)?|FORD)"
+  "|NTON(?:VILLE)?|MAX)|E(?:AR(?:FIELD|VILLE)|ONA)|YMER|UNE)|R(?:A(?"
+  ":N(?:BERRY(?: T(?:OWNSHI|W)P)?|ESVILLE)|(?:IGSVILL|BTRE)E|FTON|LE"
+  "Y)|E(?:S(?:C(?:ENT|O)|SONA?)|EKSIDE|IGHTON|AMERY)|O(?:S(?:S(?:ING"
+  "VILLE| FORK)|BY)|(?:YDO|W)N)|U(?:M LYNN|CIBL)E|YSTAL SP(?:RIN)?G)"
+  "|E(?:NT(?:ER(?: (?:SQUARE|VALLEY)|VILLE|PORT)|R(?:AL(?: CITY|IA)|"
+  "E HALL))|DAR(?:HURST| RUN|S)|CIL)|U(?:R(?:(?:WEN|LL|TI)S|RY)VILLE"
+  "|(?:STER CIT|DD)Y|MBOLA)|YCLONE)|W(?:E(?:S(?:T(?: (?:L(?:E(?:(?:I"
+  "SENRIN|ECHBUR)G|BANON)|AWN)|MI(?:DDLE(?:TOWN|SEX)|(?:FFLI|LTO)N)|"
+  "S(?:(?:ALIS|UN)BURY|PRINGFIELD)|H(?:OMESTEAD|AZLETON|ICKORY)|P(?:"
+  "ITTS(?:BURG|TON)|OINT)|C(?:ONSHOHOCKEN|HESTER)|AL(?:EXANDER|IQUIP"
+  "PA)|BRI(?:DGEWATER|STOL)|E(?:LIZABETH|ASTON)|W(?:YOMING|ILLOW)|DE"
+  "CATUR|READING|FINLEY|NEWTON|GROVE|VIEW|YORK)|M(?:ORELAND CI|RLND "
+  "C)TY|F(?:IEL|OR)D|L(?:AND|INE)|O(?:VER|N)|PORT|TOWN)|COSVILLE)|LL"
+  "(?:S(?: TANNERY|VILLE|BORO)|ERSBURG)|(?:RNERS|ED)VILLE|I(?:SSPO|K"
+  "E)RT|ATHERLY|BSTER|XFORD|NDEL)|A(?:R(?:R(?:I(?:OR(?:S MARK| RUN)|"
+  "NGTON)|EN(?: CENTER|DALE)?)|FORDSBURG|MINSTER)|L(?:L(?:INGFORD|AC"
+  "ETON)?|NUT(?: BOTTOM|PORT)|TERSBURG|STON)|SH(?:INGTON(?: (?:(?:CR"
+  "OSS|X)ING|BORO)|V(?:IL)?LE)?| BORO)|T(?:ER(?:F(?:ALL|ORD)|VILLE|M"
+  "AN)|SONTOWN|TSBURG)|Y(?:NE(?:SB(?:ORO|URG))?|MART)|(?:PWALLOPE|GO"
+  "NTOW)N|VERLY|BASH|MPUM)|I(?:L(?:L(?:IAM(?:S(?: T(?:OWNSHI|W)P|(?:"
+  "TOW|O)N|BURG|PORT)| PENN ANNEX (?:EA|WE)ST)|OW (?:STREET|GROVE|HI"
+  "LL))|K(?:ES BARRE(?: TOWNSHIP)?|INSBURG)|M(?:ERDING|ORE)|(?:BURTO"
+  "|PE)N|DWOOD|COX)|N(?:D(?: (?:RIDGE|GAP)|(?:BE|SO)R)|(?:BURN|GAT)E"
+  "|FIELD)|C(?:KHAVEN|ONISCO)|DNOON|TMER)| (?:(?:LE(?:ISENRIN|ECHBUR"
+  ")|PITTSBUR)G|S(?:PRINGFIELD|ALISBURY)|AL(?:EXANDER|IQUIPPA)|H(?:O"
+  "MESTEAD|AZLETON)|MIDDLE(?:TOWN|SEX)|BRIDGEWATER|CNSHOHOCKEN|ELIZA"
+  "BETH)|O(?:R(?:TH(?:INGTON|VILLE)|MLEYSBURG|CESTER)|O(?:D(?:L(?:AN"
+  "D|YN)|BURY|WARD)?|LRICH)|MELSDORF|XALL)|Y(?:N(?:NEWOOD|DMOOR|COTE"
+  ")|A(?:LUSING|NO)|OM(?:ISS)?ING|COMBE|SOX)|H(?:IT(?:E(?: (?:HAVEN|"
+  "MILLS|DEER)|HALL)?|AKER|SETT|NEY)|EATLAND)|M PENN ANX [EW]|LKS BA"
+  "RR TWP|RIGHTSVILLE|SHNGTN XING)|B(?:E(?:A(?:VER(?: (?:M(?:EADO|D)"
+  "W|SPR(?:IN)?G|FALL)S|DALE|TOWN)?|R (?:CREEK(?: T(?:OWNSHIP|W))?|L"
+  "AKE)|CH (?:HAVEN|LAKE)|LLSVILLE)|L(?:L(?:E(?:(?:V(?:ILL|U)|FONT)E"
+  "| V(?:ERNON|RN BR))|WOOD|VUE)|MONT HILLS|SANO)|N(?:T(?:LEYVILLE|O"
+  "N)|DERSVILLE|EZETTE?| AVON|SALEM)|R(?:W(?:ICK|YN)|RYSBURG|NVILLE|"
+  "LIN)|TH(?:EL(?: PARK)?|LEHEM|ANY)|C(?:HTELSVILLE|CARIA)|D(?:MINST"
+  "ER|FORD)|(?:SSEM|Y)ER|ECH CREEK)|R(?:O(?:O(?:K(?:L(?:INE|YN)|HAVE"
+  "N|VILLE)|MALL)|WN(?:S(?:VILLE|TOWN)|FIELD|DALE)|D(?:HEADSVI?LLE|B"
+  "ECKS)|CK(?:PORT|TON|WAY)|AD TOP|GUE)|A(?:N(?:D(?:Y CAMP|AMORE)|CH"
+  "(?:DALE|TON))|D(?:FORD(?:WOODS)?|ENVILLE|DOCK)|CK(?:ENRIDGE|NEY)|"
+  "VE)|I(?:DGE(?:VILLE|PORT)|S(?:BIN|TOL)|ER HILL)|E(?:(?:EZE|NT)WOO"
+  "D|INIGSVILLE|SSLER)|U(?:NNERVILLE|SH VALLEY|IN)|YN (?:ATHYN|MAWR)"
+  ")|L(?:A(?:I(?:RS(?: MILLS|VILLE)|N)|N(?:D(?:BURG|ON)|CHARD)|CK (?"
+  ":HORSE|LICK)|KE(?:SLEE|LY)|WNOX)|O(?:OM(?:ING G(?:R(?:OVE|V)|LEN)"
+  "|FIELD|SBURG)|SSBURG)|UE (?:RIDGE S(?:UMMIT|M)|B[AE]LL))|U(?:R(?:"
+  "N(?:T CABINS|SIDE|HAM)|(?:GETTSTOW|LINGTO)N)|CK(?: HILL F(?:AL)?L"
+  "S|INGHAM)|L(?:K MAIL C(?:ENTE|T)|GE)R|(?:ENA VIST|NOL)A|T(?:ZTOWN"
+  "|LER)|FFALO MILLS|SHKILL)|A(?:R(?:T(?:O(?:NSVILLE)?)?|NES(?:VILLE"
+  "|BORO)|KING|REE)|KERS(?: SUMMIT|TOWN)|I(?:NBRIDGE|RDFORD)|L(?:A C"
+  "YNWYD|LY)|(?:USMA|DE)N|STRESS|NGOR|TH)|O(?:W(?:MANS(?:(?:VIL|DA)L"
+  "E|TOWN)|ERS)|Y(?:ER(?:TOWN|S)|NTON)|ILING SPR(?:IN)?GS|(?:OTHWY|B"
+  "TOW)N|S(?:WELL|TON)|ALSBURG|LIVAR|VARD)|I(?:G(?: (?:COVE TANN(?:E"
+  "RY)?|RUN)|LER(?:VILLE)?)|R(?:D(?: IN HAND|SBORO)|CHRUNVILLE|MINGH"
+  "AM))|YRNEDALE)|L(?:A(?:N(?:D(?:I(?:S(?:VILLE|BURG)|NGVILLE)|ENBER"
+  "G)|S(?:(?:D(?:OWN|AL))?E|FORD)|G(?:ELOTH|HORNE)|CASTER|ESBORO)|KE"
+  "(?: (?:C(?:ITY|OMO)|HARMONY|WINOLA|ARIEL|LYNN)|VILLE|WOOD)|U(?:R("
+  "?:EL(?:(?: RU|TO)N|DALE)|YS STA(?:TION)?)|GHLINTOWN)|(?: (?:BELL|"
+  "PLUM|JOS)|IRDSVILL|PORT)E|M(?:AR(?:TINE)?|BERTON|PETER|OTT)|W(?:R"
+  "ENC(?:EVILL)?E|(?:TO)?N)|R(?:(?:KSVILL|G)E|IMER)|T(?:TIMER MI?NES"
+  "|ROBE)|C(?:EYVILLE|KAWAXEN)|FAYETTE H(?:IL)?L|VE(?:ROCK|LLE)|HASK"
+  "A|YTON)|E(?:M(?:O(?:NT(?: F(?:URNACE|RNCE?))?|YNE)|ASTERS)|WIS(?:"
+  "B(?:ERRY|URG)|(?: RU|TOW)N|VILLE)|C(?:ONTES M(?:IL)?LS|K(?: KILL|"
+  "RONE))|E(?:CHBURG|TSDALE|SPORT|PER)|H(?:IGH(?: VALLEY|TON)|MAN)|N"
+  "(?:(?:HARTS|OX)VILLE|NI)|(?:VITTOW|BANO)N| RAYSVILLE|ISENRING|DER"
+  "ACH|STER|OLA|ROY)|I(?:N(?:E(?: L(?:EXINGTO|XNGT)N|SVILLE)|COLN UN"
+  "IV(?:ERSITY)?|(?:GLESTOW|DE)N|(?:FIEL|WOO)D)|T(?:TLE(?: M(?:(?:EA"
+  "DO|D)WS|ARSH)|STOWN)|ITZ)|M(?:E(?:STONE|KILN|PORT|RICK)|A)|(?:B(?"
+  ":ERT|RAR)|LL)Y|G(?:HTSTREET|ONIER)|(?:CKING|ON)VILLE|ST(?:ONBURG|"
+  "IE)|VERPOOL)|O(?:W(?:ER (?:BURRELL|GWYNEDD|PAXTON|SHAFT)|BER)|C(?"
+  ":UST(?: GAP|DALE)|K HAVEN)|Y(?:S(?:VILLE|BURG)|ALHANNA)|R(?:DS VA"
+  "LLEY|ETTO)|GAN(?:VILLE|TON)|ST CREEK|NG POND|PEZ)|U(?:(?:(?:NDYS "
+  "LA|ZER)N|MBERVILL)E|C(?:ERNEMINES|INDA)|THERSBURG|DLOW|RGAN|XOR)|"
+  "Y(?:ND(?:ELL|ORA)|ON STATION|KENS)|LEWELLYN)|P(?:O(?:RT(?: (?:(?:"
+  "C(?:LINT|ARB)O|TREVORTO?)N|ALLEGANY|GRIFFITH|MATILDA|ROYAL)|ERS(?"
+  ": SIDELING|VILLE)|LAND(?: M(?:IL)?LS)?|S SIDLING|AGE)|CO(?:NO (?:"
+  "L(?:AK(?:E PRESERV)?E|K PRS)|SUMMIT|MANOR|PINES)|PSON)|TT(?:S(?:("
+  "?: GROV|VILL)E|TOWN)|ERSDALE)|INT (?:PLEASANT|MARION)|YNTELLE|MER"
+  "OY|LK)|E(?:N(?:N(?: (?:ST(?:ATE UNIVERSITY| UNIV)|VALLEY|HILLS|RU"
+  "N)|S(?:(?:YLVANIA FURNAC|DAL)E| (?:CREE|PAR)K|BURG)|DEL)?|(?:LL|R"
+  ")YN| ARGYL|BROOK|FIELD)|R(?:K(?:IOMENVI?LL|ASI)E|RYOPOLIS)|ACH (?"
+  ":BOTTOM|GLEN)|T(?:ERSBURG|ROLIA)|CKVILLE|QUEA)|A(?:R(?:K(?:E(?:R("
+  "?: FORD)?|SBURG)|HILL)?|ADISE(?: V(?:ALLE|L)Y)?|(?:DEES|RY)VILLE|"
+  "(?:NASSU|SON|I)S)|LM(?:ER(?: T(?:OWNSHI|W)P|TON)?|YRA)?|TT(?:ERSO"
+  "N (?:HEIG)?HTS|ON)|X(?:TON(?:VILLE|IA)|INOS)| FURNACE|UPACK|OLI)|"
+  "I(?:T(?:TS(?:TON(?: T(?:OWNSHI|W)P)?|BURGH|FIELD)|(?:CAIR|MA)N)|N"
+  "E(?: (?:GR(?:OVE(?: MILLS)?|V MLS)|FORGE|BANK)|VILLE)|L(?:GRIM G("
+  "?:ARDE|D)NS|LOW)|CTURE ROCKS|PERSVILLE)|L(?:EASANT(?: (?:H(?:(?:I"
+  "L)?LS|ALL)|M(?:OUN)?T|UNI?TY|GAP)|VILLE)|AIN(?:S(?: T(?:OWNSHI|W)"
+  "P)?|FIELD)|UM(?:(?:STEADVI?|VI)LLE)?|YMOUTH(?: M(?:EETI|T)NG)?)|R"
+  "(?:O(?:SPE(?:CT(?: PARK)?|RITY)|MPTON)|I(?:MOS(?: SECANE)?|(?:CED"
+  "A|NG)LE)|ESTO(?:N PARK)?)|H(?:IL(?:(?:ADELPHI)?A|IPSBURG)|OENIXVI"
+  "LLE)|U(?:NXSUTAWNEY|LASKI|RITAN)|(?:GH INT ARPR|T PLEASAN)T)|N(?:"
+  "E(?:W(?: (?:B(?:E(?:RLIN(?:V(?:IL)?LE)?|THLEHEM|DFORD)|(?:RI(?:GH"
+  "TO|TAI)|OSTO)N|LOOMF(?:IE)?LD|ALTIMORE|UFFALO)|(?:K(?:ENSINGTO?|I"
+  "NGSTOW)|WILM(?:INGTO|NGT))N|P(?:HIL(?:ADELPHI)?A|AR(?:IS|K)|ROVID"
+  "E?NCE)|G(?:E(?:RMANTOW?N|NEVA)|ALILEE)|LOND(?:ON(?: TOWNSHIP)?|N "
+  "TWP)|C(?:UMBERLA?ND|OLUMBIA|ASTLE)|F(?:REE(?:PORT|DOM)|LORENCE)|A"
+  "L(?:EXANDRIA?|BANY)|E(?:NTE?RPRIS|AGL)E|(?:RINGGOL|OXFOR)D|MIL(?:"
+  "LPORT|FORD)|S(?:TANTON|ALEM)|HO(?:LLAND|PE)|TRIPOLI|DERRY)|TO(?:W"
+  "N(?: SQ(?:UARE)?)?|N HAM(?:ILTO|LT)N)|PORT(?:VILLE)?|LONDON TWP|F"
+  "OUNDLAND|MANSTOWN|VILLE|BURG|ELL|RY)|S(?:(?:HANNO|COPE)CK|QUEHONI"
+  "NG)|VILLE IS(?:LAND)?|E(?:DMORE|LYTON)|(?:MACOLI|LSO)N|FFS(?:VILL"
+  "E)?)|O(?:R(?:TH(?: (?:B(?:E(?:LLE VERNON|ND)|INGHAM)|WA(?:(?:SHIN"
+  "GTO|RRE)N|LES)|(?:HUNTINGDO|IRWI)N|SPRINGFIELD|VERSAILLES|CHARLER"
+  "OI|LEECHBURG|APOLLO|EAST)|ERN CAMBRIA|UMBERLA?ND|AMPTON|POINT)|MA"
+  "LVILLE|RISTOWN|VELT|WOOD)|(?: HUNTINGDO|BLESTOW|XE)N|TTINGHAM)| ("
+  "?:(?:BELL(?:E V(?:ERNO|R)| VERNO)|(?:HUNTINGD|WASHINGT)O)N|C(?:HA"
+  "RLEROI|AMBRIA)|SPRINGFIELD|VERSAILLES|LEECHBURG)|A(?:TRONA (?:HEI"
+  "G)?HTS|NT(?:ICOKE|Y GLO)|R(?:BERTH|VON)|ZARETH)|I(?:C(?:HOLSO|KTO"
+  "W)N|NE(?:POINTS|VEH)|SBET)|U(?:(?:ANGOL|MIDI)A|REMBERG| MINE))|H("
+  "?:A(?:R(?:RIS(?:ON(?: (?:V(?:ALLE|L)|CIT)Y|VILLE)|VILLE|BURG)|T(?"
+  ":S(?:VILLE|TOWN)|LETON)|LE(?:YSVILLE|IGH)|(?:BORCREE|WIC)K|MON(?:"
+  "SBURG|Y)|VEYS LAKE|FORD)|Z(?:E(?:L(?: HURST|WOOD)|N)|LE(?: TOWNSH"
+  "I?P|TON))|M(?:PDEN T(?:OWNSHI|W)P|(?:ILTO|LI)N|BURG)|N(?:OVER(?: "
+  "T(?:OWNSHI|W)P)?|NASTOWN)|L(?:L(?:STEAD|TON|AM)|IFAX)|W(?:(?:K RU"
+  "|THOR)N|LEY)|VER(?:FORD|TOWN)|T(?:FIELD|BORO)|STINGS|DLEY)|O(?:L("
+  "?:L(?:(?:YWOO|AN)D|IDAYSBURG|SOPPLE)|BROOK|ICONG|TWOOD|MES)|P(?:E"
+  "(?:LAND|WELL)| BOTTOM|WOOD)|NE(?:Y (?:BROOK|GROVE)|SDALE)|ME(?:(?"
+  ":STEA|WOO)D|R CITY)?|O(?:VERSVILLE|KSTOWN)|U(?:TZDALE|STON)|KENDA"
+  "UQUA|STETTER|RSHAM|WARD)|U(?:N(?:TING(?:DON(?: V(?:ALLE)?Y)?|TON "
+  "M(?:ILLS|L))|LOCK CREEK|KER)|(?:(?:TCHIN|D)SO|STONTOW)N|MMELS(?: "
+  "WHARF|TOWN)|GHES(?:VILLE|TOWN)|BLERSBURG|LMEVILLE|EY)|E(?:R(?:M(?"
+  ":I(?:TAG|NI)E|AN)|RICK C(?:ENTE|T)R|EFORD|NDON|SHEY)|L(?:L(?:ERTO"
+  "WN|AM)|FENSTEIN)|N(?:DERSONVI?|RYVI)LLE|I(?:DELBERG|LWOOD)|SSTON|"
+  "GINS)|I(?:LL(?:(?:S(?:(?:VIL|DA)L|GROV)|DAL)E|IARDS|TOWN|ER)|(?:D"
+  "DEN VALLE|CKOR)Y|GHSPIRE|BBS)|Y(?:DE(?: PARK|TOWN)?|N(?:DMAN|ER))"
+  ")|E(?:A(?:ST(?: (?:S(?:M(?:ITHFIELD|ETHPORT)|PRINGFIELD|TROUDSBUR"
+  "G)|P(?:ETERSBURG|ITTSBURGH|ROSPECT)|F(?:ALLOWFIELD TOWNSHIP|REEDO"
+  "M)|L(?:AN(?:CASTER|SDOWNE)|IBERTY)|B(?:(?:ANGO|UTLE)R|ERLIN|RADY)"
+  "|M(?:C KEESPORT|ILLSBORO)|VANDERGRIFT|GREENVILLE|WATERFORD|NORRIT"
+  "ON|HICKORY|TEXAS|EARL|YORK)|ON)|(?:GLE(?:S MER|VILL)|U CLAIR)E|RL"
+  "(?:INGTON|VILLE))| (?:S(?:M(?:ITHFIELD|ETHPORT)|PRINGFIELD|TROUDS"
+  "BURG)|(?:FALLOWFIEL|WATERFOR)D|P(?:ETERSBURG|ITTSBURGH)|M(?:CKEES"
+  "PORT|ILLSBORO)|LAN(?:CASTER|SDOWNE)|VANDERGRIFT|GREENVILLE)|L(?:L"
+  "(?:IOTTSBURG|WOOD CITY|SWORTH|PORT)|IZABETH(?:V(?:IL)?LE|TOWN)?|D"
+  "(?:ER(?:SVILLE|TON)|RED)|(?:(?:VERS|T)O|GI|WY)N|K(?:INS PARK|LAND"
+  ")|M(?:HURST|ORA)?|YSBURG|RAMA|CO)|D(?:GE(?:WORTH|MONT|LY)|D(?:ING"
+  "TON|YSTONE)|INB(?:ORO|URG)|WARDSVILLE|MON)|M(?:E(?:RALD|IGH)|IGSV"
+  "ILLE|LENTON|PORIUM|SWORTH|MAUS)|V(?:ANS(?: CITY|VILLE)|ER(?:ETT|S"
+  "ON))|N(?:O(?:N VALLEY|LA)|DEAVOR|TRIKEN)|X(?:(?:CELSIO|ETE)R|PORT"
+  "|TON)|R(?:DENHEIM|WINNA|NEST|IE)|S(?:PYVILLE|SINGTON)|BE(?:NSBURG"
+  "|RVALE)|T(?:TERS|NA)|IGHTY FOUR|QUINUNK|PHRATA|FFORT|YNON)|F(?:O("
+  "?:R(?:T(?: (?:(?:L(?:ITTLETO?|OUDO)|WASHINGTO)N|HILL)|Y FORT)|EST"
+  "(?: (?:GROVE|CITY)|VILLE)|KS(?: T(?:OWNSHI|W)P|VILLE)|D C(?:LIFF|"
+  "ITY)|BES ROAD|CE)|X(?:CROFT SQ(?:UARE)?|BURG)|UNTAIN(?: HILL|VILL"
+  "E)|L(?:CROFT|SOM)|GELSVILLE|MBELL)|A(?:IR(?:VIEW(?: V(?:ILLAGE|LG"
+  "))?|(?:LESS H(?:IL)?L|OAK)S|(?:CHANC|HOP)E|MOUNT CI?TY|FIELD|BANK"
+  ")|LL(?:S(?: CREEK|INGTON)?|ENTIMBER)|R(?:R(?:ANDSVILLE|ELL)|MINGT"
+  "ON)|(?:CTORYVILL|WN GROV)E|YETTE(?: CITY|VILLE)|NNETTSBURG)|R(?:E"
+  "(?:E(?:(?:MANS)?BURG|LAND|PORT|DOM)|D(?:ERICK(?:SBU?RG|TOWN)?|ONI"
+  "A)|NCHVILLE)|A(?:N(?:KLIN(?: C(?:ENTE|T)R|TOWN)?|CONIA)|CKVILLE|Z"
+  "ER)|IE(?:DENS(?:BURG)?|NDSVILLE)|(?:OST|Y)BURG)|L(?:E(?:ET(?:VILL"
+  "E|WOOD)|MING(?:TON)?)|O(?:R(?:EFFE|IN)|URTOWN)|I(?:CKSVILLE|NTON)"
+  ")|E(?:ASTERVILLE TREVOSE|RN(?: GLEN|DALE)|(?:NE)?LTON)|I(?:SHER(?"
+  ":TOWN)?|NLEYVILLE)|STRVL TRVOSE|T WASHINGTON|URLONG)|G(?:R(?:E(?:"
+  "E(?:N(?:FI(?:ELD TOWNSHI|LD TW)P|S(?:B(?:ORO|URG)|TONE)| (?:LANE|"
+  "PARK)|(?:CAST|VIL)LE|T(?:OWN|REE)|OCK)|LEY)|AT BEND)|A(?:N(?:VILL"
+  "E(?: S(?:UMMI|M)T)?|T(?:VILLE|HAM)|D VALLEY)|(?:CETO|MPIA)N|(?:DY"
+  "|PE)VILLE|Y(?:SVILLE)?|SSFLAT|TZ)|OVE(?: CITY|R)|INDSTONE)|L(?:EN"
+  "(?: (?:R(?:I(?:DDLE(?: LIMA)?|CHEY)|DL LIMA|OCK)|CAMPBELL|MILLS|H"
+  "OPE|LYON)|(?:MOOR|VILL|CO)E|(?:OLDE|DO)N|S(?:HAW|IDE)|WILLARD)|A("
+  "?:S(?:SPORT|GOW)|DWYNE))|A(?:R(?:D(?:EN(?: CITY|VILLE)|NERS)|(?:A"
+  "RDS FOR|RET)T|NET VALLEY|LAND)|L(?:(?:LITZI|ETO)N|ILEE)|N(?:ISTER"
+  "|S)|STONVILLE|INES|P)|I(?:L(?:BERT(?:SVILLE|ON)?|LETT)|B(?:SON(?:"
+  "IA)?|BON GLADE)|RARD(?:VILLE)?|FFORD|NTER|PSY)|E(?:ORGE(?: SCHOOL"
+  "|TOWN)|(?:RMANSVILL|NESE)E|IGERTOWN|TTYSBURG)|O(?:OD(?: SPRING|VI"
+  "LLE)|RDON(?:VILLE)?|ULDSBORO|WEN CITY)|WYNEDD(?: V(?:ALLE|L)Y)?|U"
+  "(?:LPH|YS) MILLS)|R(?:O(?:C(?:K(?:HILL FURN(?:ACE)?|(?: GLE|TO)N|"
+  "LEDGE|WOOD)|HESTER(?: M(?:IL)?LS)?)|(?:U(?:(?:ZER|SE)VILL|LETT)|M"
+  "(?:ANSVILL)?|GERSVILL)E|ARING (?:B(?:R(?:OOK TWP|A?NCH)|K TP)|SP("
+  "?:RIN)?G)|S(?:E(?: VALLEY|TO)|S(?:VILLE|ITER)|COE|LYN)|B(?:E(?:RT"
+  "SDALE|SONIA)|INSON)|(?:YERSFOR|WLAN)D|N(?:CO|KS)|HRERSTOWN|XBURY)"
+  "|E(?:A(?:DING(?: STA(?:TION)?)?|MSTOWN)?|N(?:(?:OV)?O|FREW)|B(?:E"
+  "RSBURG|UCK)|ED(?:SVILLE|ERS)|D (?:HILL|LION)|V(?:ERE|LOC)|YNOLDSV"
+  "ILLE|HRERSBURG|INHOLDS|PUBLIC|XMONT|CTOR|FTON|W)|I(?:C(?:H(?:(?:E"
+  "YVIL|MONDA)LE|LAND(?:TOWN)?|FIELD|BORO)|E(?:S LANDING|VILLE))|D(?"
+  ":DLESBURG|LEY PARK|GWAY)|(?:EGELSVILL|VERSID)E|NG(?:GOLD|TOWN)|ME"
+  "RSBURG|LLTON|XFORD)|U(?:S(?:H(?:VILLE|LAND)|SELL(?:TON)?)|RAL (?:"
+  "VALLEY|RIDGE)|(?:FFS DAL|TLEDG)E)|A(?:N(?:S(?:HAW|OM)|KIN)|[CV]IN"
+  "E|ILROAD|LSTON|DNOR|MEY)|HEEMS|YDAL)|D(?:A(?:L(?:LAS(?:TOWN)?|MAT"
+  "IA|TON)|N(?:(?:IELS)?VILLE|BORO)|(?:(?:WS|YT)O|ISYTOW)N|R(?:LINGT"
+  "ON|RAGH|BY)|(?:GUS MINE|MASCU)S|VI(?:DSVILLE|STOWN)|U(?:BERVILLE|"
+  "PHIN))|U(?:N(?:CAN(?:SVILLE|NON)|L(?:EVY|O)|MORE|BAR)|B(?:OIS(?:T"
+  "OWN)?|LIN)|(?:QUESN|SHOR)E|R(?:HAM|YEA)|KE CENTER| BOIS|DLEY|PONT"
+  ")|E(?:L(?:A(?:WARE WATER GAP|NO)|MONT|TA)| (?:WATER GAP|LANCEY|YO"
+  "UNG)|RR(?:ICK CIT)?Y|V(?:AULT|ON)|N(?:VER|BO)|FIANCE|WART)|I(?:CK"
+  "(?:ERSON RUN|SON CI?TY)|LL(?:SBURG|INER|TOWN)|NGMANS F(?:ER)?RY|X"
+  "ONVILLE|STANT|MOCK)|O(?:(?:UGLASSVILL|RNSIF)E|N(?:ALDSON|EGAL|ORA"
+  ")|YLES(?:BURG|TOWN)|WNINGTOWN|VER)|R(?:E(?:XEL HILL|SHER)|IFT(?:W"
+  "OOD|ING|ON)|UM(?:ORE|S)|AVOSBURG|Y RUN)|YSART)|A(?:L(?:L(?:E(?:N("
+  "?:SVILLE|PORT|TOWN|WOOD)|GHENY)|ISON(?: PARK)?|PORT)|B(?:RIGHTSVI"
+  "?LLE|URTIS|ION|A)|(?:IQUIPP|TOON)A|E(?:XANDRIA|PPO)|VER(?:TON|DA)"
+  "|UM BANK|DAN)|R(?:C(?:(?:ADI|OL)A|HBALD)|M(?:STRONG|BRUST|AGH)|(?"
+  ":ISTE|TEMA)S|D(?:MORE|ARA)|ENDTSVILLE|NO(?:LD|T)|SENAL|ONA)|N(?:D"
+  "(?:ALUSIA|REAS)|N(?:ANDA|VIL)LE|TES FORT|ALOMINK|ITA)|S(?:H(?:L(?"
+  ":AND|EY)|FIELD|VILLE)|P(?:INWALL|ERS)|TON)|(?:U(?:DUBO|LTMA|BUR|S"
+  "TI)|B(?:BOTTSTOW|INGTO)|KRO)N|D(?:A(?:MS(?:VILLE|BURG|TOWN)|H)|(?"
+  ":DISO|RIA)N)|V(?:O(?:N(?:DAL|MOR)E|CA)|ALON|ELLA|IS)|T(?:LA(?:SBU"
+  "RG|NTIC)|GLEN|HENS)|M(?:B(?:ERSON|RIDGE|LER)|ITY)|C(?:(?:KERMANVI"
+  "LL|M)E|OSTA)|QUASHICOLA|ARONSBURG|IRVILLE|POLLO)|T(?:R(?:E(?:(?:X"
+  "LERTOW|DYFFRI)N|VO(?:RTON|SE)|ICHLERS|SCKOW|MONT)|O(?:UT(?:VILLE|"
+  " RUN)|XELVILLE|OPER|Y)|U(?:MBAU(?:ERSVI|RSV)|CKSVI)LLE|A(?:(?:NSF"
+  "|IN)ER|FFORD|PPE))|A(?:(?:NNERSVILL|LMAG)E|M(?:IMENT|AQUA)|YLOR(?"
+  ":STOWN)?|R(?:ENTUM|RS)|FTON|TAMY)|H(?:O(?:M(?:PSO(?:NTOW)?N|ASVIL"
+  "LE)|RN(?:HURST|DALE|TON))|R(?:EE SPRINGS|OOP))|I(?:(?:TUSVILL|DIO"
+  "UT)E|M(?:E WARNER|BLIN)|O(?:N(?:EST)?|G)A|RE HILL|PTON)|U(?:R(?:T"
+  "LE(?: CREEK|POINT)|BOTVILLE|KEY CITY)|NKHANNOCK|LLYTOWN|SCARORA)|"
+  "O(?:W(?:ER CITY|NVILLE|ANDA)|(?:UGHKENAM|PT)ON|BYHANNA|RRANCE|DD)"
+  "|Y(?:LER(?:S(?:VILLE|BURG|PORT)| HILL)|RONE)|E(?:MPLE(?:TON)?|RRE"
+  " HILL|LFORD)|WIN ROCKS)|K(?:E(?:N(?:NE(?:T(?:T SQUARE| SQ)|RDELL)"
+  "|T)|M(?:BLESVILLE|PTON)|L(?:AYRES|TON)|ISTERVILLE|RSEY)|I(?:N(?:G"
+  "(?:S(?:LEY|TON)| OF PRUSSIA)|TNERSVILLE|ZERS)|TTANNING|MBERTON|RK"
+  "WOOD|LBUCK)|A(?:R(?:NS CITY|THAUS)|N(?:TNER|E)|SKA)|U(?:LP(?:SVIL"
+  "LE|MONT)|(?:NKLE|TZ)TOWN)|N(?:OX(?:(?: DA|VIL)LE)?|G OF PRUSSA)|L"
+  "(?:EINFELTERSV(?:ILLE)?|INGERSTOWN)|O(?:RN KREST|SSUTH|PPEL)|RE(?"
+  ":SGEVILLE|AMER)|YLERTOWN)|J(?:E(?:N(?:KIN(?:S T(?:OWNSHI|W)P|TOWN"
+  ")|NERS(?:TOWN)?)|R(?:SEY (?:MILLS|SHORE)|MYN|OME)|FFERSON(?: H(?:"
+  "IL)?LS|VI?LLE)?|ANNETTE|SSUP)|A(?:C(?:KSON(?: (?:T(?:OWNSHI|W)P|C"
+  "(?:ENTE|T)R))?|OB(?:S CREEK|US))|M(?:ES(?: C(?:REEK|ITY)|TOWN)|IS"
+  "ON))|O(?:HNS(?:ONBURG|TOWN)|NES(?: MILLS|TOWN)|(?:SEPHIN|FFR)E|LI"
+  "ETT)|U(?:NE(?:DALE|AU)|LIAN)|IM THORPE)|O(?:R(?:R(?:STOWN|TANNA)|"
+  "E(?:FIEL|LAN)D|(?:VIST|S)ON|ANGEVILLE|WIGSBURG|BISONIA|MSBY)|L(?:"
+  "D (?:ZIONSVI?LL|FORG)E|IVE(?:BURG|R)|YPHANT|ANTA|EY)|AK(?:LAND(?:"
+  " MILLS)?|(?: RIDG|DAL)E|FORD|MONT|S)|S(?:CEOLA(?: MILLS)?|TERBURG"
+  "|WAYO)|B(?:SERVATORY|ERLIN)|G(?:ONTZ CAMPUS|DEN)|VERBROOK H(?:IL)"
+  "?LS|(?:TTSVIL|HIOPY)LE|N(?:EIDA|O)|IL CITY|XFORD)|U(?:P(?:P(?:ER("
+  "?: (?:(?:MAKEFIEL|HOLLAN)D|(?:BLACK EDD|DARB)Y|S(?:AIN)?T CLAIR)|"
+  "STRASBU?RG)|R (?:BLCK EDY|ST CLAIR))|R MAKEFIELD)|NI(?:ON(?: (?:C"
+  "ITY|DALE)|VILLE|TOWN)|T(?:Y(?: HOUS|VILL)E|ED)|VERSITY P(?:AR)?K)"
+  "|L(?:YSSES|STER|EDI)|(?:RSIN|TIC)A|WCHLAND)|V(?:A(?:N(?:D(?:ER(?:"
+  "GRIF|BIL)T|LING)| (?:VOORHIS|METER)|PORT)|L(?:LEY (?:T(?:OWNSHI|W"
+  ")P|FORGE|VIEW)|ENCIA|IER))|I(?:(?:RGINVIL|NTONDA)LE|LLA(?: MARI|N"
+  "OV)A|CKSBURG)|E(?:N(?:ANGO|ETIA|US)|STABURG|RONA)|O(?:WINCKEL|LAN"
+  "T))|I(?:N(?:D(?:IAN(?:(?:OL)?A| HEAD)|USTRY)|TERCOURSE|KERMAN|GOM"
+  "AR)|M(?:MACULATA|PERIAL|LER)|R(?:V(?:INE|ONA)|WIN)|CKESBURG|DAVIL"
+  "LE|SABELLA|VYLAND)|Y(?:O(?:RK(?: (?:NE?W SALEM|SPRINGS|HAVEN)|ANA"
+  ")?|UNG(?:S(?:VILLE|TOWN)|WOOD)|E)|A(?:TES(?:VILLE|BORO)|RDLEY)|(?"
+  ":EA(?:GERTOW|DO)|UKO)N)|Z(?:I(?:ON(?:(?: GROV|SVILL)E|HILL)|EGLER"
+  "S?VILLE)|E(?:LIENOPL|RB)E|ULLINGER)|QU(?:A(?:K(?:ERTOWN|AKE)|RRYV"
+  "ILLE)|E(?:(?:NTI|E)N|CREEK)|INCY)))))$"
+  ,
+  /* -- PR -- PR -- PR -- PR -- PR -- PR -- PR -- PR -- PR -- PR -- */
+  "(?:\\b)((?^:(?i:(?:C(?:A(?:PARRA(?: (?:TER(?:RACE)?|HILLS))?|(?:B"
+  "O ROJ|TAN)O|ROLINA|STANER|MUY)|O(?:LLEGE PARK|NDADO)|IALES|UPEY)|"
+  "SA(?:N(?: (?:(?:SEBASTI|GERM)AN|J(?:OSE|UAN)|ANTONIO)|TURCE(?: ST"
+  "ATION)?)|BANA (?:GRANDE|HOYOS|SECA)|INT JUST)|B(?:A(?:R(?:RIO OBR"
+  "ERO|CELONETA)|JADERO|YAMON)|O(?: OBRERO|QUERON))|M(?:A(?:YAGUEZ|R"
+  "ICAO|NATI)|I(?:NILLAS|RAMAR)|O(?:ROVIS|CA))|F(?:(?:ERNAN)?DEZ JUN"
+  "COS|(?:OR)?T BUCHANAN|LORIDA)|A(?:N(?:GELES|ASCO)|GUAD(?:ILL)?A|D"
+  "JUNTAS|RECIBO)|P(?:T(?:A DE TIERRA|O NUEVO)|UERTO NUEVO|ENUELAS)|"
+  "L(?:A(?:(?:S MARI|J)A|RE)S|OIZA STREET|EVITTOWN)|G(?:UA(?:Y(?:ANI"
+  "LLA|NABO)|NICA)|ARROCHALES|PO)|R(?:I(?:O PIEDRAS|NCON)|OSARIO|AME"
+  "Y)|V(?:EGA (?:ALT|BAJ)A|IEJO SA?N JUAN)|T(?:OA (?:ALT|BAJ)A|RUJIL"
+  "LO ALTO)|H(?:AT(?:O REY|ILLO)|ORMIGUEROS)|(?:(?:DOR|UTU)AD|YAUC)O"
+  "|IS(?:LA VERDE|ABELA)|(?:ENSENAD|JAYUY)A|65TH INFANTRY|OLD SAN JU"
+  "AN|QUEBRADILLAS))))$"
+  ,
+  /* -- PW -- PW -- PW -- PW -- PW -- PW -- PW -- PW -- PW -- PW -- */
+  "(?:\\b)((?^:(?i:PALAU)))$"
+  ,
+  /* -- RI -- RI -- RI -- RI -- RI -- RI -- RI -- RI -- RI -- RI -- */
+  "(?:\\b)((?^:(?i:(?:N(?:ORTH (?:S(?:MITHFIELD|CITUATE)|PROVIDENCE|"
+  "KINGSTOWN)| (?:S(?:MITHFIELD|CITUATE)|PROVIDENCE|KINGSTOWN)|EW(?:"
+  " SHOREHAM|PORT)|ARRAGANSETT)|W(?:EST(?: (?:GREENWICH|KINGSTON|WAR"
+  "WICK)|ERLY)|OO(?:D RIVER J(?:UNCTION|T)|NSOCKET)|A(?:R(?:WICK|REN"
+  ")|KEFIELD)| GREENWICH|YOMING)|P(?:R(?:UDENCE ISL(?:AND)?|OVIDENCE"
+  ")|O(?:INT JUDI|RTSMOU)TH|A(?:WTUCKET|SCOAG)|EACE DALE)|(?:L(?:I(?"
+  ":TTLE COMPTO|NCOL)| COMPTO)|(?:K(?:INGST|ENY)|TIVERT)O|J(?:AMESTO"
+  "W|OHNSTO))N|C(?:H(?:ARLESTOWN|EPACHET)|ENTRAL FALLS|UMBERLAND|LAY"
+  "VILLE|AROLINA|OVENTRY|RANSTON)|S(?:(?:(?:OUTH)? KING|AUNDER)STOWN"
+  "|L(?:ATERSVILLE|OCUM)|MITHFIELD|CITUATE|HANNOCK)|E(?:AST (?:PROVI"
+  "DENCE|GREENWICH)| (?:PROVIDENCE|GREENWICH)|SCOHEAG|XETER)|B(?:R(?"
+  ":OWN STATION|ADFORD|ISTOL)|LOCK ISLAND|URRILLVILLE|ARRINGTON)|H(?"
+  ":OP(?:E(?: VALLEY)?|KINTON)|AR(?:RISVILLE|MONY))|F(?:O(?:RESTDALE"
+  "|STER)|RIAR STATION|ISKEVILLE)|R(?:I(?:VERSIDE|CHMOND)|OCKVILLE|U"
+  "MFORD)|M(?:A(?:PLE|N)VILLE|IDDLETOWN)|A(?:DAMSVILLE|SHAWAY|LBION)"
+  "|G(?:REEN(?:VILL)?|LENDAL)E|VALLEY FALLS|OAKLAND))))$"
+  ,
+  /* -- SC -- SC -- SC -- SC -- SC -- SC -- SC -- SC -- SC -- SC -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:INT (?:(?:MATTHEW|CHARLE)S|HELENA ISLA"
+  "ND|STEPHEN|GEORGE)|L(?:TERS|LEY|UDA|EM)|N(?:DY SPRINGS|TEE)|RDINI"
+  "A)|U(?:M(?:MER(?:VILLE|TON)|TER)|LLIVANS IS(?:LAND)?|RFSIDE B(?:E"
+  "A)?CH|NSET)|H(?:A(?:W A(?: F |F)B|RON)|OALS J(?:UNCTION|CT)|ULERV"
+  "ILLE|ELDON)|T(?:A(?:R(?:TEX|R)|TE PARK)| (?:HELENA I|MATTHEW)S)|E"
+  "(?:ABROOK(?: ISL(?:AND)?)?|LLERS|NECA)|I(?:(?:MPSONVIL|X MI)LE|LV"
+  "ERSTREET)|O(?:UTH OF THE BORDER|CIETY HILL)|P(?:ARTANBURG|RINGFIE"
+  "LD)|(?: OF BORD|LAT)ER|C(?:RANTON|OTIA)|M(?:OAKS|YRNA)|YCAMORE|WA"
+  "NSEA)|C(?:H(?:E(?:R(?:RY GROVE(?: BEACH)?|OKEE F(?:AL)?LS|AW)|S(?"
+  ":TER(?:FIELD)?|NEE))|A(?:RLESTON(?: AFB)?|P(?:PELLS|IN)|S AFB))|A"
+  "(?:M(?:(?:ERO|DE)N|POBELLO)|(?:LHOUN FALL|NADY|DE)S|T(?:EECHEE|AW"
+  "BA)|(?:RLISL|YC)E|INHOY|SSATT)|O(?:(?:OSAWHATCHI|TTAGEVILL|P)E|N("
+  "?:(?:ESTE|VERS)E|WAY)|RD(?:ESVILLE|OVA)|W(?:PENS|ARD)|LUMBIA)|L(?"
+  ":E(?:ARWATER|VELAND|MSON)|I(?:[FN]TON|O)|ARKS HILL|OVER)|RO(?:SS("
+  "?: (?:ANCHOR|HILL))?|CKETVILLE)|ENT(?:ENARY|RAL))|B(?:A(?:T(?:ESB"
+  "URG(?:-LEESVILLE)?|SBRG-LEVIL|H)|LLENTINE|RNWELL|MBERG)|E(?:L(?:V"
+  "EDERE|TON)|TH(?:ERA|UNE)|NNETTSVILLE|ECH ISLAND|AUFORT)|L(?:A(?:C"
+  "K(?:S(?:BURG|TOCK)|VILLE)|IR)|YTHEWOOD|ENHEIM|UFFTON)|O(?:(?:W(?:"
+  "LING GREE|MA)|RDE)N|ILING SP(?:RIN)?GS|NNEAU)|R(?:A(?:NCHVILLE|DL"
+  "EY)|ITTONS NECK|UNSON)|U(?:RTON BRANCH|CKSPORT|FFALO)|ISHOPVILLE)"
+  "|L(?:A(?:N(?:D(?:RUM|O)|CASTER|GLEY|E)|KE (?:WYLIE|CITY|VIEW)|D(?"
+  ":YS ISLAND|SON)| FRANCE|URENS|MAR|TTA)|I(?:T(?:TLE (?:M(?:OUNTAI|"
+  "T)N|R(?:IVER|OCK))|CHFIELD)|BERTY(?: HILL)?|NCOLNVILLE|VINGSTON)|"
+  "O(?:N(?:G(?: CREEK|S)|E STAR)|(?:WNDESVILL|DG)E|CKHART|BECO|RIS)|"
+  "E(?:ESVILLE|XINGTON)|Y(?:NCHBURG|DIA|MAN)|U(?:GOFF|RAY))|M(?:O(?:"
+  "UNT(?: (?:C(?:ROGHAN|ARMEL)|PLEASANT)|AIN REST|VILLE)|N(?:T(?:MOR"
+  "ENCI|ICELLO)|CKS CORNER|ETTA)|DOC|ORE)|A(?:R(?:I(?:ETTA|ON)|TIN)|"
+  "(?:DISO|ULDI)N|Y(?:ESVILLE|O)|NNING)|C(?: (?:C(?:O(?:NNELLS|RMICK"
+  "|LL)|LELLANVILLE)|BEE)|CLELLANVLE)|U(?:RRELLS INLE?T|LLINS)|(?:T "
+  "PLEASAN|EGGET)T|I(?:NTURN|LEY)|YRTLE BEACH)|W(?:A(?:R(?:E SHOALS|"
+  "RENVILLE|D)|L(?:TERBORO|HALLA|LACE)|DMALAW IS(?:LAND)?|(?:TERLO|N"
+  "D)O|GENER)|E(?:ST(?: (?:COLUMBIA|UNION)|MINSTER|VILLE)|(?:DGEFIEL"
+  "|LLFOR)D)|I(?:LLI(?:AMS(?:TON)?|STON)|N(?:NSBORO|DSOR)|SACKY)|HIT"
+  "(?:E (?:(?:ROC|OA)K|STONE)|MIRE)|OODRUFF)|G(?:R(?:E(?:E(?:N(?: (?"
+  ":POND|SEA)|(?:PON|WOO)D|VILLE)|LEYVILLE|R)|AT FALLS|SHAM)|A(?:NIT"
+  "EVILLE|Y COURT|MLING)|OVER)|A(?:(?:LIVANTS F(?:ER)?R|FFNE)Y|(?:DS"
+  "DE|STO)N|RNETT|BLE)|L(?:EN(?:N SPRINGS|DALE)|OVERVILLE)|I(?:FFORD"
+  "|LBERT)|OOSE CREEK|EORGETOWN)|P(?:A(?:R(?:RIS ISLAND|KSVILLE)|WLE"
+  "YS ISL(?:AND)?|COLET(?: MILLS)?|(?:XVILL|ULIN)E|GELAND|MPLICO|TRI"
+  "CK)|I(?:N(?:E(?:(?:LAN|WOO)D|VILLE)|OPOLIS)|EDMONT|CKENS)|E(?:L(?"
+  ":ION|ZER)|NDLETON|RRY|AK)|O(?:RT ROYAL|MARIA|STON)|LUM BRANCH|ROS"
+  "PERITY)|R(?:I(?:DGE(?: SPRING|VILLE|LAND|WAY)|CH(?:BURG|LAND)|VER"
+  " HILLS|MINI|TTER|ON)|O(?:UND (?:ROCK|O)|WESVILLE|CK HILL|EBUCK)|E"
+  "(?:(?:EVES|ID)VILLE|MBERT)|U(?:SSELLVILLE|FFIN|BY)|A(?:VENEL|INS)"
+  ")|H(?:O(?:LLY(?: HILL|WOOD)|(?:PKIN|DGE)S|NEA PATH|RATIO)|I(?:L(?"
+  ":TON HEA(?:D ISLAN)?D|DA)|CKORY GROVE)|A(?:R(?:DEE|LEY|TS)VILLE|M"
+  "(?:PTON|ER)|NAHAN)|E(?:ATH SPRINGS|MINGWAY)|UGER)|N(?:OR(?:TH(?: "
+  "(?:MYRTLE BEACH|CHARLESTON|AUGUSTA))?|RIS|WAY)|E(?:W(?: (?:ELLENT"
+  "|ZI)ON|(?:BER)?RY)|SMITH|ESES)| (?:CHARLESTON|LITCHFIELD|MYRTLE B"
+  "CH)|I(?:NETY SIX|CHOLS))|D(?:A(?:(?:VIS STATI|RLINGT)ON|UFUSKIE I"
+  "S(?:LAND)?|L(?:ZELL|E)|NIEL ISLAND)|E(?:WEES ISLAND|NMARK)|O(?:RC"
+  "HESTER|NALDS)|U(?:E WEST|NCAN)|(?:RAYT|ILL)ON)|E(?:D(?:GE(?:FIELD"
+  "|MOOR)|ISTO(?: ISLAND)?)|A(?:S(?:TOVER|LEY)|RLY BRANCH)|L(?:L(?:I"
+  "OTT|OREE)|GIN|KO)|(?:UTAWVILL|NORE)E|FFINGHAM|HRHARDT|STILL)|F(?:"
+  "O(?:R(?:T (?:M(?:OTTE|ILL)|LAWN)|K)|UNTAIN INN|LLY BEACH)|(?:LO(?"
+  ":YD DAL|RENC)|INGERVILL)E|AIR(?:F(?:OREST|AX)| PLAY)|RIPP ISLAND|"
+  "URMAN)|T(?:R(?:AVELERS RE?ST|ENTON|IO|OY)|I(?:(?:MMONS|GER)VILLE|"
+  "LLMAN)|A(?:MASSEE|YLORS|TUM)|(?:URBE|OWN)VILLE|HE CITADEL|EGA CAY"
+  ")|J(?:O(?:HNS(?: ISLAND|ONVILLE|TON)|NESVILLE|ANNA)|E(?:NKINSVILL"
+  "E|FFERSON|RICHO)|A(?:CKSON(?:BORO)?|MESTOWN))|A(?:L(?:LENDALE|COL"
+  "U|VIN)|TLANTIC B(?:EA)?CH|(?:DAMS RU|IKE)N|ND(?:ERSON|REWS)|BBEVI"
+  "LLE|RCADIA|WENDAW|YNOR)|K(?:I(?:N(?:GS(?: CREEK|TREE)|ARDS)|AWAH "
+  "ISLAND)|(?:NIGHTSVILL|LIN)E|E(?:RSHAW|LTON))|I(?:SL(?:E OF PALMS|"
+  "ANDTON)|N(?:DIAN LAND|MAN)|RMO|VA)|O(?:(?:CEAN DRIV|KATI)E|LA(?:N"
+  "TA|R)|RANGEBURG|SWEGO)|VA(?:(?:RNVILL|UCLUS)E|N(?: WYCK|CE))|Y(?:"
+  "O(?:NGES ISLAND|RK)|EMASSEE)|U(?:N(?:ION|A)|LMER)|QUINBY))))$"
+  ,
+  /* -- SD -- SD -- SD -- SD -- SD -- SD -- SD -- SD -- SD -- SD -- */
+  "(?:\\b)((?^:(?i:(?:C(?:A(?:R(?:T(?:HAGE|ER)|PENTER)|N(?:(?:ISTOT|"
+  "OV)A|TON)|MP CROOK|STLEWOOD|PUTA|VOUR)|O(?:L(?:(?:MA|TO)N|UMBIA|O"
+  "ME)|R(?:S(?:ICA|ON)|ONA)|TTONWOOD|NDE)|H(?:E(?:RRY CREEK|LSEA|STE"
+  "R)|A(?:MBERLAIN|NCELLOR))|L(?:A(?:R(?:EMONT|K)|IRE CITY)|EAR(?: L"
+  "AKE|FIELD))|R(?:E(?:IGHTON|SBARD)|O(?:CKER|OKS)|AZY HORSE)|E(?:NT"
+  "(?:RAL CITY|ERVILLE)|DARBUTTE)|USTER)|S(?:T(?: (?:LAWRENCE|CHARLE"
+  "S)|O(?:NEVILLE|CKHOLM)|RA(?:NDBURG|TFORD)|ICKNEY|EPHAN|URGIS)|A(?"
+  ":INT (?:(?:CHARLE|FRANCI)S|(?:LAWRENC|ONG)E)|LEM)|P(?:E(?:ARFISH("
+  "?: C(?:ANYO|Y)N)?|NCER)|RINGFIELD)|I(?:LVER CITY|OUX FALLS|SSETON"
+  "|NAI)|H(?:ADEHILL|ERMAN)|C(?:OTLAND|ENIC)|UMM(?:ERSE|I)T|E(?:NECA"
+  "|LBY)|OUTH SHORE|KY RANCH|MITHWICK)|W(?:A(?:(?:K(?:OND|PAL)|ST)A|"
+  "L(?:L(?:ACE)?|KER)|T(?:ERTOWN|AUGA)|(?:VERL|UBA)Y|R(?:NER|D)|NBLE"
+  "E|GNER)|E(?:S(?:SINGT(?:ON(?: SPRINGS)?|N SPG)|TPORT)|(?:TONK|COT"
+  "|WEL)A|NTWORTH|BSTER)|O(?:O(?:NSOCKET|D)|UNDED KNEE|RTHING|LSEY)|"
+  "I(?:L(?:LOW LAKE|MOT)|N(?:FRED|NER)|TTEN)|HITE(?: (?:RIVER|LAKE|O"
+  "WL)|HORSE|WOOD)?)|B(?:R(?:I(?:DGEWATER|STOL|TTON)|A(?:ND(?:ON|T)|"
+  "DLEY)|ENTFORD|OOKINGS|YANT|UCE)|U(?:FFALO(?: (?:RIDGE|GAP))?|R(?:"
+  "(?:BAN|DOC)K|KE)|LLHEAD|SHNELL|TLER)|E(?:L(?:LE FOURCH|VIDER)E|RE"
+  "SFORD|THLEHEM|MIS)|A(?:T(?:ESLAND|H)|NCROFT|RNARD|DGER|LTIC)|O(?:"
+  "NESTEEL|X ELDER|WDLE)|I(?:G STONE CI?TY|SON)|L(?:ACK HAWK|UNT))|M"
+  "(?:I(?:L(?:L(?:BORO|ER)|ESVILLE|BANK)|SSION(?: (?:RIDGE|HILL))?|("
+  "?:RAND|N)A|TCHELL|DLAND)|A(?:R(?:(?:IO|VI)N|T(?:IN|Y)|CUS)|N(?:DE"
+  "RSON|SFIELD)|DISON)|O(?:(?:N(?:TROS|RO)|BRIDG)E|UN(?:T VERNON|D C"
+  "ITY)|RRISTOWN)|C(?: (?:LAUGHLIN|INTOSH)|COOK LAKE)|E(?:CKLING|LLE"
+  "TTE|ADOW|NNO)|U(?:D BUTTE|RDO))|H(?:A(?:R(?:R(?:IS(?:BURG|ON)|OLD"
+  ")|TFORD)|(?:MIL|ZE)L|Y(?:ES|TI))|O(?:(?:UGHTO|VE)N|W(?:ARD|ES)|T "
+  "SPRINGS|LABIRD|SMER)|E(?:R(?:R(?:EID|ICK)|EFORD|MOSA)|TLAND|CLA|N"
+  "RY)|U(?:R(?:LEY|ON)|MBOLDT|DSON)|I(?:LL CITY|TCHCOCK|GHMORE))|L(?"
+  ":A(?:KE (?:(?:PRESTO|NORDE)N|ANDES|CITY)|N(?:GFORD|TRY|E)|(?: PLA"
+  "N|BOL)T)|O(?:NG(?: VALLEY|LAKE)|W(?:ER BRULE|RY)|DGEPOLE|OMIS)|E("
+  "?:(?:BAN|MM)ON|STERVILLE|TCHER|NNOX|OLA|AD)|I(?:TTLE EAGLE|LY)|U("
+  "?:DLOW|CAS)|YONS)|R(?:O(?:C(?:K(?:ERVILLE|HAM)|HFORD)|S(?:EBUD|HO"
+  "LT|WELL|COE|LYN)|WENA)|E(?:D(?:FIELD| OWL|IG)|V(?:ILLO|A)|E HEIGH"
+  "TS|LIANCE|NNER)|A(?:(?:VINI|MON)A|PID CITY|YMOND|LPH)|U(?:NNING W"
+  "ATER|TLAND)|IDGEVIEW)|A(?:L(?:(?:EXANDRI|PEN)A|CESTER|TAMONT|BEE|"
+  "LEN)|R(?:T(?:ESIAN|AS)|LINGTON|DMORE|MOUR)|G(?:ENCY V(?:ILLAGE|LG"
+  ")|AR)|S(?:TORIA|HTON)|(?:BERDEE|VO)N|(?:KASK|UROR)A|CADEMY|MHERST"
+  "|NDOVER|THOL)|F(?:OR(?:T (?:(?:PIERR|MEAD)E|THOMPSON)|ESTBURG)|A("
+  "?:I(?:R(?:BURN|VIEW|FAX)|TH)|ULKTON|RMER)|R(?:E(?:DERICK|EMAN)|AN"
+  "KFORT|UITDALE)|L(?:ANDREAU|ORENCE)|E(?:DORA|RNEY)|IRESTEEL|ULTON)"
+  "|P(?:I(?:E(?:R(?:PONT|RE)|DMONT)|NE RIDGE|CKSTOWN)|R(?:(?:ESH|OV)"
+  "O|AIRIE CITY|INGLE)|AR(?:(?:MELE|AD)E|K(?:STON|ER))|LA(?:NKINTON|"
+  "INVIEW|TTE)|O(?:RCUPINE|LLOCK)|UKWANA|EEVER|HILIP)|G(?:A(?:R(?:(?"
+  ":DEN CIT)?Y|RETSON)|NN VALLEY|YVILLE)|L(?:EN(?:CROSS|HAM)|AD VALL"
+  "EY)|R(?:E(?:NVILLE|GORY)|OTON)|E(?:TTYSBURG|DDES)|OODWIN)|D(?:E(?"
+  ":L(?:L RAPIDS|MONT)|(?:NB|WE)Y|ADWOOD|MPSTER| SMET)|A(?:(?:KOTA D"
+  "UNE|LLA|VI)S|NTE)|I(?:MOCK|XON)|OL(?:AND|TON)|RAPER|UPREE)|E(?:L("
+  "?:K(?: POINT|TON)|LSWORTH AFB|M SPRINGS)|(?:AGLE BUTT|STELLIN)E|("
+  "?:(?:TH|G)A|RWI)N|D(?:GEMONT|EN)|NNING|UREKA|MERY)|N(?:E(?:W(?: ("
+  "?:(?:UNDERWOO|HOLLAN)D|EFFINGTON)|ELL)|MO)|OR(?:TH(?: SIOUX CITY|"
+  "VILLE)|BECK|RIS)| SIOUX CITY|ISLAND|UNDA)|T(?:R(?:AIL CITY|ENT|IP"
+  "P)|U(?:THILL|LARE|RTON)|O(?:LSTOY|RONTO)|HUNDER HAWK|IMBER LAKE|W"
+  "IN BROOKS|YNDALL|ABOR|EA)|O(?:(?:N(?:AK|ID)|TTUMW|ACOM|GLAL|WANK)"
+  "A|R(?:IENT|TLEY|AL)|K(?:ATON|REEK)|L(?:DHAM|IVET)|ELRICHS|PAL)|V("
+  "?:E(?:(?:R(?:MILLI|D)O|BLE)N|TAL)|AL(?:LEY SP(?:RIN)?GS|E)|I(?:BO"
+  "RG|ENNA|RGIL|VIAN)|OL(?:GA|IN))|K(?:E(?:Y(?:APAHA|STONE)|NNEBEC|L"
+  "DRON)|A(?:DOKA|YLOR)|RANZBURG|IMBALL|YLE)|I(?:R(?:OQUOIS|ENE)|(?:"
+  "SABE|DEA)L|NTERIOR|PSWICH|ONA)|U(?:NION CENTER|TICA)|J(?:EFFERSON"
+  "|AVA)|YA(?:NKTON|LE)|ZE(?:ONA|LL)|QUINN))))$"
+  ,
+  /* -- TN -- TN -- TN -- TN -- TN -- TN -- TN -- TN -- TN -- TN -- */
+  "(?:\\b)((?^:(?i:(?:C(?:O(?:L(?:L(?:EGE(?: (?:GROV|DAL)|DAL)E|I(?:"
+  "ERVILLE|NWOOD))|ONIAL H(?:EIGH|G)TS|UMBIA)|N(?:CORD(?: FARR(?:AGU"
+  "T)?)?|ASAUGA)|R(?:NERSVILLE|RYTON|DOVA)|TT(?:AGE GROVE|ONTOWN)|(?"
+  ":OKEVILL|UNC)E|AL(?:FIELD|MONT)|(?:VINGTO|WA)N|KER ?CREEK|PPERHIL"
+  "L|SBY|MO)|H(?:A(?:P(?:MANSBORO|EL HILL)|RL(?:ESTON|OTTE)|TTANOOGA"
+  ")|E(?:STNUT M(?:OU)?ND|WALLA)|U(?:RCH HILL|CKEY)|RISTIANA)|A(?:(?"
+  ":R(?:YVILL|THAG)|NE RIDG)E|STALI(?:AN SPRIN|N SP)GS|(?:M(?:PAIG|D"
+  "E)|LHOU)N)|U(?:MB(?:ERL(?:AND (?:FURNACE|CITY|GA?P)|ND CTY)| GAP)"
+  "|NNINGHAM|LLEOKA)|R(?:O(?:SS(?: PLAINS|VILLE)|CKETT M(?:IL)?LS)|A"
+  "(?:B ORCHA|WFO)RD|UMP)|L(?:A(?:RK(?:S(?:VILLE|BURG)|RANGE)|IRFIEL"
+  "D)|I[FN]TON|EVELAND)|E(?:DAR (?:GROVE|HILL)|NTERVILLE|LINA)|MBRLN"
+  "D FRNCE|YPRESS INN)|S(?:A(?:INT (?:ANDREWS|JOSEPH)|L(?:E CREEK|TI"
+  "LLO)|ULSBURY|NTA FE|VANNAH|MBURG|RDIS)|P(?:RING(?: (?:C(?:REEK|IT"
+  "Y)|HILL)|FIELD|VILLE)|E(?:EDWELL|NCER)|ARTA)|H(?:A(?:R(?:PS CHAPE"
+  "L|ON)|DY VALLEY|WANEE)|E(?:LBYVILLE|RWOOD)|ILOH)|O(?:UTH(?: (?:PI"
+  "TTSBURG|FULTON)|SIDE)|DDY DAISY|MERVILLE)|U(?:(?:RGOINSVILL|GAR T"
+  "RE)E|MM(?:ITVILLE|ERTOWN)|NBRIGHT)|T(?:RAW(?:BERRY)? PLAINS|ANTON"
+  "(?:VILLE)?|EWART)|E(?:(?:VIERVILL|QUATCHI|WANE)E|(?:YMOU|LME)R)|I"
+  "(?:L(?:VER POINT|ERTON)|GNAL M(?:OUNTAI|T)N)|M(?:ITHVILLE|ARTT|YR"
+  "NA)| PITTSBURG|COTTS HILL|NEEDVILLE|WEETWATER|LAYDEN)|B(?:E(?:E(?"
+  ":RSH(?:EBA SPRIN|BA SP)GS|CH(?: BLUFF|GROVE))|L(?:L(?:(?: BUCKL|E"
+  "VU)E|S)|VIDERE|FAST)|TH(?:EL SP(?:RIN)?GS|PAGE)|(?:AN STATI|NT)ON"
+  ")|R(?:U(?:(?:SH CREE|NSWIC)K|CETON)|I(?:CEVILLE|GHTON|STOL)|AD(?:"
+  "YVILLE|FORD|EN)|OWNSVILLE|ENTWOOD)|U(?:FFALO V(?:ALLE|L)Y|R(?:LIS"
+  "ON|NS)|MPUS MILLS|ENA VISTA|LLS GAP|CHANAN|TLER)|L(?:O(?:OMING(?:"
+  "TON SPRINGS|DALE)|UNTVILLE)|MNGTON SPGS|UFF CITY|AINE)|A(?:TH SPR"
+  "INGS|NEBERRY|KEWELL|RTLETT|XTER)|O(?:N(?:E CAVE| AQUA)|LIVAR|GOTA"
+  ")|I(?:G (?:SANDY|ROCK)|RCHWOOD)|Y(?:RDSTOWN|BEE))|M(?:O(?:UNT(?: "
+  "(?:(?:PLEASAN|JULIE)T|CARMEL)|AIN (?:CITY|HOME))|R(?:RIS(?:(?:TOW"
+  "|O)N| CHAPEL)|LEY)|N(?:TE(?:AGLE|REY)|ROE)|S(?:HEIM|COW|S)|ORESBU"
+  "RG|HAWK)|I(?:L(?:L(?:I(?:GAN COLL(?:EGE)?|NGTON)|EDGEVILLE)|(?:TO"
+  "|A)N)|(?:TCHELLVILL|CHI)E|D(?:DLETON|WAY)|NOR HILL|STON)|A(?:N(?:"
+  "CHESTER|SFIELD)|DISON(?:VILLE)?|R(?:YVILLE|TIN)|S(?:COT|ON)|YNARD"
+  "VILLE|URY CITY|CON)|C (?:(?:(?:LEMORESV(?:IL)?|MINNVIL)L|KENZI)E|"
+  "DONALD|EWEN)|E(?:D(?:INA|ON)|LROSE|MPHIS|RCER)|T(?: (?:PLEASANT|C"
+  "ARMEL)|N HOME)|U(?:RFREESBORO|LBERRY|NFORD))|P(?:A(?:R(?:(?:KER ("
+  "?:CROSS|X)ROAD|SON|I)S|ROTTSVILLE)|L(?:M(?:ER(?:SVILLE)?|YRA)|L M"
+  "ALL))|O(?:W(?:ELL(?:S CR(?:OSSROADS|SRD))?|DER SP(?:RIN)?GS)|CAHO"
+  "NTAS|RTLAND|STELLE)|I(?:(?:GEON FORG|KEVILL)E|N(?:EY FLATS|SON)|C"
+  "KWICK DAM|PERTON|ONEER)|LEASANT(?: (?:SHA?DE|HILL|VIEW)|VILLE)|E("
+  "?:T(?:ERSBURG|ROS)|(?:GR|LH)AM)|R(?:IMM SPRINGS|OSPECT|UDEN)|U(?:"
+  "LASKI|RYEAR)|HILADELPHIA)|L(?:A(?:(?: (?:FOLLETT|GRANG|VERGN)|FAY"
+  "ETT)E|KE(?: CITY|LAND|SITE)|UREL BL(?:OOME|M)RY|NC(?:ASTER|ING)|("
+  "?:CO|VI)NIA|WRENCEBURG|SCASSAS)|O(?:(?:OKOUT M(?:OUNTAI|T)|NE MOU"
+  "NTAI)N|U(?:ISVILLE|DON)|BELVILLE|RETTO|WLAND)|E(?:(?:XINGT|BAN)ON"
+  "|NO(?:IR CITY|X)|WISBURG|OMA)|I(?:(?:VINGSTO|NDE)N|MESTONE|BERTY)"
+  "|U(?:(?:PTON CIT|RA)Y|TT(?:RELL|S))|Y(?:N(?:CHBURG|NVILLE)|LES))|"
+  "H(?:A(?:R(?:R(?:I(?:MA|SO)N|OGATE)|T(?:SVILLE|FORD))|MP(?:SHIRE|T"
+  "ON)|LLS)|U(?:R(?:RIC(?:ANE MI|NE M)LLS|ON)|NT(?:INGDON|SVILLE|LAN"
+  "D)|MBOLDT)|I(?:CK(?:ORY (?:V(?:ALLE|L)Y|HILL)|MAN)|L(?:LSBORO|HAM"
+  ")|XSON)|E(?:N(?:DERSON(?:VI?LLE)?|NING|RY)|LENWOOD|RMITAGE|ISKELL"
+  ")|O(?:LL(?:OW ROCK|ADAY)|RN(?:BEAK|SBY)|HENWALD))|W(?:A(?:T(?:TS "
+  "BAR DAM|ERTOWN|AUGA)|RT(?:BURG|RACE)|LL(?:AND|ING)|YNESBORO|SHBUR"
+  "N|VERLY)|HIT(?:E(?: (?:(?:HOUS|PIN)E|BLUFF)|S(?: CREEK|BURG|IDE)|"
+  "VILLE)|LEYVILLE|WELL)|I(?:L(?:LI(?:AMSPORT|STON)|DER(?:SVILLE)?)|"
+  "N(?:CHESTER|FIELD))|OOD(?:LA(?:ND M(?:IL)?LS|WN)|BURY)|EST(?:PO(?"
+  ":IN|R)T|MORELAND)|YNNBURG|RIGLEY)|G(?:R(?:A(?:N(?:D(?: J(?:UNCTIO"
+  "N|CT)|VIEW)|VILLE)|Y(?:SVILLE)?)|EEN(?:B(?:RIER|ACK)|EVILLE|FIELD"
+  ")|UETLI LAAGE?R|IMSLEY)|A(?:T(?:LINBURG|ES)|LLA(?:TIN|WAY)|INESBO"
+  "RO|SSAWAY|DSDEN)|O(?:OD(?:LETTSVI?LLE|SPRING)|RDONSVILLE)|L(?:ADE"
+  "VILLE|EASON)|E(?:ORGE|RMAN)TOWN|I(?:LT EDGE|BSON)|U(?:ILD|YS))|R("
+  "?:O(?:CK(?: (?:BRIDGE|ISLAND)|(?:FOR|WOO)D|VALE)|(?:GER|S)SVILLE|"
+  "AN MOUNTAIN|BBINS|YAL)|I(?:D(?:GE(?:TOP|LY)|DLETON)|C(?:EVILLE|KM"
+  "AN)|VE(?:RWATCH|S)|PLEY)|E(?:D B(?:(?:OILING SPRIN|LNG SP)GS|ANK)"
+  "|A(?:DYVILLE|GAN)|LIANCE)|U(?:T(?:HERFORD|LEDGE)|SSELLVILLE|GBY)|"
+  "A(?:VENSCROFT|MER))|T(?:E(?:N(?:NESSEE R(?:IDGE|DG)| MILE)|L(?:LI"
+  "CO PL(?:AI)?NS|FORD))|R(?:E(?:ZEVANT|ADWAY|NTON)|A(?:CY CITY|DE)|"
+  "IMBLE|OY)|H(?:O(?:MPSONS ST(?:ATIO)?N|RN HILL)|REE WAY)|U(?:SCULU"
+  "M COLL|RTLETOWN|LLAHOMA)|A(?:L(?:LASSEE|BOTT)|ZEWELL|FT)|I(?:PTON"
+  "(?:VILLE)?|GRETT)|O(?:WNSEND|ONE))|D(?:E(?:C(?:ATUR(?:VILLE)?|HER"
+  "D)|L(?:(?: RI|AN)O|LROSE)|N(?:MARK|VER)|ER LODGE|FEATED|VONIA)|U("
+  "?:CK(?: RIVER|TOWN)|KEDOM|NLAP|FF)|I(?:CK(?:SON|EL)|XON SPRINGS)|"
+  "A(?:(?:RDE|YTO)N|NDRIDGE)|O(?:WELLTOWN|VER|YLE)|R(?:UMMONDS|ESDEN"
+  ")|YER(?:SBURG)?)|F(?:A(?:IR(?:F(?:IELD GLA|LD GL)DE|VIEW)|R(?:RAG"
+  "UT|NER)|YETTEVILLE|LL BRANCH)|R(?:IENDS(?:VILLE|HIP)|ANK(?:EWING|"
+  "LIN)|UITVALE)|I(?:N(?:GER|LEY)|SHERVILLE|VE POINTS)|L(?:A(?:G PON"
+  "D|TWOODS)|INTVILLE)|O(?:RT PILLOW|STERVILLE))|A(?:L(?:L(?:ARDT|ON"
+  "S|RED)|(?:EXANDRI|CO)A|TAMONT|GOOD|PINE|AMO)|R(?:NOLD A F B|[LR]I"
+  "NGTON|DMORE|THUR)|(?:(?:PIS|FT)O|UBURNTOW)N|N(?:DERSONVILLE|TIOCH"
+  ")|T(?:HENS|WOOD|OKA)|DAMS(?:VILLE)?|SHLAND CITY)|E(?:L(?:(?:(?:IZ"
+  "ABETH|K)TO|GI)N|LENDALE|MWOOD|ORA)|A(?:G(?:LEVILLE|AN)|ST RIDGE|T"
+  "ON|DS)|N(?:GLEWOOD|VILLE)|STILL SP(?:RIN)?GS|T(?:HRIDGE|OWAH)|V(?"
+  ":ENSVILLE|A)|(?:IDSO|RW?I)N)|O(?:L(?:IVE(?:R SP(?:RIN)?GS|HILL)|D"
+  " (?:HICKORY|FORT))|AK(?:(?: RIDG|DAL)E|(?:FIEL|LAN)D)|(?:COE|ZON)"
+  "E|N(?:EIDA|LY)|OLTEWAH|RLINDA|BION)|K(?:I(?:M(?:B(?:ERLIN H(?:EIG"
+  "HTS|GT)|ALL)|MINS)|NGS(?:TON(?: SP(?:RIN)?GS)?|PORT))|E(?:NTON|LS"
+  "O)|YLES FORD|NOXVILLE|ARNS|ODAK)|N(?:EW(?: (?:JOH(?:NSONVIL|SONV)"
+  "LE|TAZEWELL|MARKET)|BERN|COMB|PORT)|O(?:R(?:MANDY|ENE|RIS)|LENSVI"
+  "LLE)|ASHVILLE|UNNELLY|IOTA)|J(?:A(?:CKS(?: CREEK|BORO|ON)|MESTOWN"
+  "|SPER)|O(?:HNSON CITY|NESBOROUGH|ELTON)|E(?:FFERSON CI?TY|LLICO))"
+  "|I(?:(?:NDIAN MOUN|DLEWIL)D|RON CITY)|UNI(?:ON(?: CITY|VILLE)|COI"
+  ")|V(?:ANLEER|ONORE|IOLA)|Y(?:ORKVILLE|UMA)|QUEBECK))))$"
+  ,
+  /* -- TX -- TX -- TX -- TX -- TX -- TX -- TX -- TX -- TX -- TX -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:N(?: (?:(?:(?:ELIZAR|YGNAC)I|BENIT|ISI"
+  "DR|DIEG)O|A(?:N(?:TONI|GEL)O|UGUSTINE)|(?:PERLIT|SAB)A|(?:JUA|LEO"
+  ")N|FELIPE|MARCOS)|T(?:A (?:(?:(?:ELE|AN)N|MARI|ROS)A|FE)|O)|D(?:E"
+  "RSON|IA)|FORD|GER)|L(?:T(?: FLAT|ILLO)|(?:INEN|AD)O)|R(?:(?:A(?:G"
+  "OS|TOG)|IT)A|GENT)|INT (?:HEDWIG|JO)|BIN(?:E PASS|AL)|G(?:ERTON|I"
+  "NAW)|V(?:ANNAH|OY)|C(?:HSE|UL)|M NORWOOD|DLER|TIN)|U(?:N(?:R(?:IS"
+  "E BEACH|AY)|SET(?: VALLEY)?|NYVALE| CITY|DOWN)|L(?:PHUR (?:SP(?:R"
+  "IN)?GS|BLUFF)|LIVAN CITY| ROSS)|THERL(?:AND SPRINGS|ND SPG)|M(?:M"
+  "ERFIELD|NER)|RFSIDE B(?:EA)?CH|GAR LAND|BLIME|DAN)|H(?:E(?:P(?:PA"
+  "RD AFB|HERD)|R(?:ID|M)AN|LBYVILLE|NANDOAH|FFIELD)|A(?:(?:VANO PAR"
+  "|MROC)K|(?:LLOWA|F)TER|DY SHORES)|I(?:NER|RO)|OREACRES)|T(?:A(?:["
+  "FM]FORD|NTON|PLES|R)|E(?:RLING CITY|PHENVILLE)|O(?:(?:NEWA|WE)LL|"
+  "CKDALE)|R(?:A(?:TFORD|WN)|EETMAN)|INNETT| PAUL)|O(?:U(?:TH(?: (?:"
+  "P(?:ADRE ISLAND|LAINS)|TEXARKANA|HOUSTON|BEND)|LA(?:KE|ND)|MAYD)|"
+  "R LAKE)|MER(?:VILLE|SET)|CORRO|NORA)|E(?:A(?:G(?:OVILLE|RAVES)|BR"
+  "OOK|DRIFT|LY)|LMA(?:N CITY)?|G(?:UIN|NO)|CURITY SVC|VEN POINTS|BA"
+  "STIAN|MINOLE|YMOUR)|I(?:E(?:NNA PLANT(?:ATION)?|RRA BLANCA)|L(?:V"
+  "ER(?:TON)?|SBEE)|M(?:ONTON|MS)|N(?:GLE)?TON|DNEY)|P(?:RING(?: BRA"
+  "NCH|LAKE|TOWN)?|(?:ICEWOO|OFFOR)D|EA(?:RMAN|KS)|U(?:RGE)?R|LENDOR"
+  "A|ADE)|C(?:H(?:ULENBURG|WERTNER|ERTZ)|OT(?:TSVILLE|LAND)|ROGGINS|"
+  "URRY)|W(?:EE(?:T(?: HOME|WATER)|NY)|INNEY SWI?TCH)|M(?:I(?:TH(?:V"
+  "ILLE|LAND)|LEY)|YER)| (?:PADRE ISL ?E|TEXARKANA)|K(?:ELLYTOWN|IDM"
+  "ORE)|L(?:IDELL|ATON|OCUM)|N(?:YDER|OOK)|YLVESTER)|C(?:O(?:L(?:L(?"
+  ":E(?:GE(?: STA(?:TION)?|PORT)|YVILLE)|INSVILLE)|ORADO CITY|DSPRIN"
+  "G|MESNEIL|UMBUS|EMAN)|T(?:TON(?:W(?:OOD SHORE|D SHR)S| CENTER)|UL"
+  "LA)|M(?:(?:ANCH|MERC)E|B(?:INE|ES)|STOCK|FORT|O)|P(?:PE(?:R(?: CA"
+  "NYON|AS COVE)|LL)|EVILLE)|N(?:C(?:(?:EPCIO|A)N|ORD)|(?:VERS|RO)?E"
+  ")|R(?:PUS CHRISTI|SICANA|RIGAN|INTH)|O(?:(?:KVILL|LIDG)E|PER)|(?:"
+  "YANOS|AHOM)A|V(?:INGTON|E)|UPLAND|ST)|A(?:R(?:R(?:IZO SP(?:RIN)?G"
+  "S|OLLTON)|(?:THAG|MIN)E|L(?:SBAD|TON)|BON)|M(?:P(?: (?:VERDE|WOOD"
+  ")|BELL(?:TON)?)|(?:ERO|DE)N)|N(?:YON(?: LAKE)?|(?:ADIA|TO)N|UTILL"
+  "O)|L(?:L(?:I(?:SBURG|HAM))?|DWELL|VERT)|S(?:T(?:LE HILLS|ROVILLE|"
+  "ELL)|ON)|T(?: SPRING|ARINA)|DDO(?: MILLS)?|CTUS|YUGA)|H(?:A(?:N(?"
+  ":N(?:ELVIEW|ING)|DLER)|P(?:MAN RANCH|PELL HILL)|RLOTTE|TFIELD)|I("
+  "?:NA(?: (?:SPRING|GROVE))?|L(?:LICOTHE|DRESS|TON)|CO(?:TA)?|RENO)"
+  "|RI(?:ST(?:OVAL|INE)|ESMAN)|E(?:ROKEE|STER))|L(?:A(?:R(?:KSV(?:IL"
+  "LE(?: CITY)?|LE CTY)|ENDON)|YTON|UDE)|E(?:AR L(?:AKE SHORE|K SHR)"
+  "S|(?:MVILL|BURN)E|VELAND)|UT(?:CH CITY|E)|(?:ODIN|YD)E|I(?:FTON|N"
+  "T))|R(?:O(?:S(?:S(?: PLAIN|ROAD)S|BY(?:TON)?)|W(?:ELL|LEY)|CKETT)"
+  "|A(?:N(?:FILLS GAP|DALL|E)|WFORD)|YSTAL (?:BEACH|CITY)|E(?:EDMOOR"
+  "|SSON)|P CHRISTI)|E(?:DAR (?:(?:CREE|PAR)K|HILL|LANE)|NT(?:ER(?: "
+  "POINT|VILLE)?|RALIA)|L(?:ESTE|INA)|E VEE)|U(?:N(?:NINGHAM|EY)|T A"
+  "ND SHOOT|SHING|ERO|MBY)|I(?:TY BY THE SEA|(?:BOL|SC)O)|YPRESS(?: "
+  "MILL)?|TY BY THE SE)|B(?:R(?:O(?:OK(?:S(?: (?:C(?:ITY BASE|B)|AFB"
+  ")|IDE V(?:ILLAGE|L)|HIRE|TON)|E(?:SMITH|LAND))|WN(?:S(?:VILLE|BOR"
+  "O)|(?:FIEL|WOO)D)|N(?:SON|TE)|ADDUS|CK)|I(?:DGE(?: CITY|PORT)|ARC"
+  "LIFF|SCOE|GGS)|A(?:CKETTVILLE|SHEAR|ZORIA|NDON|DY)|E(?:CKENRIDGE|"
+  "MOND|NHAM)|U(?:CEVILLE|NI)|Y(?:SO|A)N)|E(?:N(?: (?:FRANKLIN|WHEEL"
+  "ER|ARNOLD|BOLT)|AVIDES|BROOK|JAMIN|D)|L(?:L(?:(?:VILL|AIR|EVU)E|M"
+  "EAD|S)|MONT|TON)|E(?: (?:CAVES?|HOUSE)|VILLE)|A(?:(?:CH CIT|SLE)Y"
+  "|UMONT)|R(?:(?:GHEI|TRA)M|CLAIR)|(?:CKVILL|B)E|D(?:FORD|IAS)|VERL"
+  "Y HILLS|ST)|A(?:R(?:T(?:ONVILLE|LETT)|K(?:SDALE|ER)|N(?:HART|UM)|"
+  "DWELL|STOW|RY)|L(?:C(?:ONES (?:HEIG)?HT|H SPRING)S|LINGER|MORHEA)"
+  "|Y(?:OU VISTA| CITY|SIDE|TOWN|VIEW)|N(?:QUETE|DERA|GS)|T(?:ESVILL"
+  "E|SON)|I(?:LEY|RD)|CLIFF|GWELL|STROP)|L(?:U(?:E(?: (?:MOUND|RIDGE"
+  ")|GROVE)|FF(?: DALE|TON)|M)|O(?:OM(?:ING(?: GR(?:OVE|V)|TON)|BURG"
+  ")|SSOM)|E(?:(?:IBLERVILL|DSO)E|SSING)|A(?:CK(?:WELL)?|N(?:KET|CO)"
+  "))|U(?:R(?:K(?:E(?:VILLE|TT)?|BURNETT)|(?:L(?:INGT|ES)|T)ON|NET)|"
+  "C(?:HANAN DAM|KHOLTS)|L(?:VERDE|LARD|A)|FFALO(?: GAP)?|SHLAND|[DN"
+  "]A)|O(?:N(?: (?:WIER|AMI)|HAM)|Y(?:S RANCH|D)|(?:GAT|VIN)A|(?:ERN"
+  "|WI)E|O(?:KER|TH)|LING|RGER|STON)|I(?:G(?: (?:BEND NATIONAL PARK|"
+  "S(?:PRING|ANDY)|WELLS|LAKE)|GS FIELD|FOOT)|ROME|SHOP|VINS)|G BND "
+  "NTL PK|Y(?:ERS|NUM))|M(?:A(?:R(?:T(?:IN(?:SVIL|DA)LE)?|(?:SHAL|YN"
+  "EA)L|(?:ATHO|LI)N|I(?:ETTA|ON)|BLE FALLS|KHAM|QUEZ|FA)|GNOLIA(?: "
+  "SP(?:RIN)?GS)?|N(?:SFIELD|CHACA|VEL|OR)|Y(?:SFIELD|DELLE|PEARL)?|"
+  "T(?:A(?:GORDA|DOR)|HIS)|(?:DISONVIL|P)LE|U(?:RICEVILLE|D)|L(?:AKO"
+  "FF|ONE)|(?:STER)?SON|CDONA|XWELL|BANK)|O(?:U(?:N(?:T(?: (?:(?:SEL"
+  "MA|VERNO)N|ENTERPRISE|PLEASANT|CALM)|AIN (?:CITY|HOME))|D)|LTON)|"
+  "N(?:T(?:A(?:GUE|LBA)| BELVIEU|E ALTO|GOMERY)|ROE CITY|AHANS)|R(?:"
+  "GAN(?:S POIN(?:T RESOR)?T| MILL)?|(?:TO|A)N|SE)|O(?:DY|RE)|BEETIE"
+  "|SCOW)|C(?: (?:(?:(?:QUEE|KIN)N|CA(?:ULL|M))EY|GREGOR|DADE|LEOD|N"
+  "EIL)|D(?:ONALD OBS(?:ERVATORY)?|ADE)|(?:(?:QUEE|KIN)NE|C(?:AME|O)"
+  ")Y|(?:(?:MAH|LE)A|FADDI)N|A(?:LLEN|DOO)|NEIL)|I(?:L(?:L(?:ERSVIEW"
+  "|ICAN|SAP)|A(?:NO|M)|FORD|ES)|N(?:E(?:RAL(?: WELLS)?|OLA)|DEN|GUS"
+  ")|D(?:L(?:OTHIAN|AND)|FIELD|KIFF|WAY)|SS(?:OURI CITY|ION)|RANDO C"
+  "ITY|AMI|CO)|E(?:R(?:T(?:ENS|ZON)|I(?:DIAN|T)|CEDES|ETA|KEL)|ADOW("
+  "?:S PLACE|LAKES)?|(?:YERSVILL|SQUIT)E|L(?:ISSA|VIN)|N(?:TONE|ARD)"
+  "|(?:DIN|XI)A|GARGEL|MPHIS)|U(?:L(?:(?:DOO|LI)N|ESHOE)|R(?:CHISON|"
+  "PHY)|ENSTER|MFORD|NDAY)|T (?:(?:SYLVA|VERNO)N|ENTERPRISE|PLEASANT"
+  ")|YRA)|L(?:A(?:KE(?: (?:C(?:REEK|ITY)|LIMESTONE|JACKSON|DALLAS|KI"
+  "OWA|WORTH)|W(?:OOD V(?:ILLAGE|LG)|AY)|HILLS|SIDE|VIEW)| (?:(?:V(?"
+  ":ERNI|ILL)|BLANC|FERI|JOY)A|(?:GRANG|COST|SALL)E|M(?:ARQUE|ESA)|P"
+  "(?:ORTE|RYOR)|WARD)|C(?:KLAND(?: A(?: F |F)B)?|Y LAKEVIEW)|N(?:E("
+  "?: CITY|VILLE)|CASTER|GTRY|TANA)|G(?:UNA (?:VISTA|PARK)|O VISTA)|"
+  "UGHLIN A(?: F |F)B|M(?:PASAS|ESA)|(?:DONI|SAR)A|V(?:ERNIA|ON)|R(?"
+  ":EDO|UE)|IRD HILL|ZBUDDIE|JITAS|TEXO|WN)|O(?:N(?:G(?: (?:BRANCH|M"
+  "OTT)|VIEW)|E (?:STAR|OAK)|DON)|S(?: (?:(?:FRES|EBA)N|INDI)O|T PIN"
+  "E)S|R(?:EN(?:ZO|A)|AINE)|CK(?:HART|NEY)|V(?:ELADY|ING)|(?:G CABI|"
+  "H)N|(?:UIS|WAK)E|(?:LI|ME)TA|(?:PE|ZA)NO|DI|OP|TT)|E(?:V(?:I STRA"
+  "USS(?: EVACUEE CTR)?|ELLAND)|ON(?: (?:JUNCTION|VALLEY)|A(?:RD)?)|"
+  "A(?:(?:GUE CIT|DA|KE|R)Y|NDER)|(?:LIA LAK|WISVILL)E|ES(?:VILLE|BU"
+  "RG)|DBETTER|XINGTON|GGETT|NORAH|FORS|MING|ROY)|I(?:N(?:D(?:ALE|SA"
+  "Y|EN)|(?:COL)?N|GLEVILLE)|TTLE(?: (?:RIVER ACADEMY|ELM)|FIELD)|V("
+  "?:E(?:RPOOL| OAK)|INGSTON)|BERTY(?: HILL)?|P(?:SCOMB|AN)|LLIAN|SS"
+  "IE)|U(?:(?:MBERTO|FKI)N|(?:EDER|CA)S|BBOCK|LING)|Y(?:FORD|ONS|TLE"
+  ")|K LIMESTONE|TL RVR ACAD|LANO)|P(?:O(?:RT(?: (?:A(?:R(?:ANSAS|TH"
+  "UR)|CRES)|(?:O CONNO|BOLIVA)R|MANSFIELD|ISABEL|LAVACA|NECHES)|LAN"
+  "D|ER)|INT(?: (?:COMFORT|VENTURE)|BLANK)?|T(?:TS(?:VILLE|BORO)|EET"
+  "|H)|N(?:TOTOC|DER)|W(?:DERLY|ELL)|OLVILLE|LLOK|YNOR|ST)|A(?:N(?:O"
+  "(?:RAMA V(?:ILLAGE|LG)|LA)|(?:NA MARI|DOR)A|HANDLE|TEGO)|L(?:M(?:"
+  "HURST|VIEW|ER)|O PINTO|ESTINE|ACIOS|UXY)|TT(?:ON(?:VILLE)?|ISON)|"
+  "R(?:ADISE|K ROW|IS)|I(?:NT ROCK|GE)|(?:SADEN|MP)A|DUCAH|WNEE)|R(?"
+  ":O(?:VID(?:ENCE VILLAGE|NCE VIL)|GRESO(?: L(?:AKE|K)S)?|(?:CTO|SP"
+  "E)R)|AIRIE (?:HILL|VIEW|LEA)|I(?:NCETON|DDY|CE)|E(?:SIDIO|MONT)|T"
+  " MANSFIELD)|E(?:N(?:(?:NING|DLE)TON|ELOPE|ITAS|WELL)|A(?:R(?: VAL"
+  "LEY|LAND|SALL)|STER)|T(?:T(?:US|Y)|ERSBURG|ROLIA)|RR(?:Y(?:TON)?|"
+  "IN)|C(?:AN GAP|OS)|GGY|P)|L(?:A(?:N(?:TERSVILLE|O)|IN(?:VIEW|S)|C"
+  "EDO)|E(?:ASANTON|DGER)|UM)|I(?:NE(?:HURST|LAND)|LOT POINT|PE CREE"
+  "K|TTSBURG|CKTON|ERCE)|U(?:R(?:MELA|DON)|TNAM)|(?:FLUGERVILL|YOT)E"
+  "|H(?:ILLIPS|ARR))|W(?:E(?:S(?:T(?: (?:(?:UNIVERSITY PLAC|ORANG)E|"
+  "LAKE H(?:IL)?LS|COLUMBIA|TAWAKONI|POINT)|WORTH V(?:ILLAGE|LG)|MIN"
+  "STER|BROOK|HOFF|LAKE|ON)?|LACO)|L(?:L(?:(?:INGTO|BOR|MA)N|S)|CH)|"
+  "B(?:BERVILLE|STER)|I(?:(?:MA)?R|NERT)|(?:ESATCH|TMOR)E|ATHERFORD)"
+  "|I(?:L(?:L(?:OW (?:CITY|PARK)|S POINT|IS)|FORD HALL(?: USAF HOSP)"
+  "?|DORADO|MER|SON)|N(?:D(?:(?:THOR|CRE)ST|OM)|N(?:SBORO|IE)|CHESTE"
+  "R|FIELD|GATE|TERS|ONA|K)|C(?:HITA FALLS|KETT)|MBERLEY|ERGATE)|A(?"
+  ":L(?:L(?:IS(?:VILLE)?|ER)?|NUT SP(?:RIN)?GS|BURG)|R(?:RE(?:NTO)?N"
+  "|ING|DA)|T(?:ER VALLEY|AUGA)|(?:XAHACHI|YSID)E|K(?:E VILLAGE|A)|S"
+  "(?:HINGTON|KOM)|DSWORTH|ELDER|CO)|H(?:IT(?:E(?: (?:SETTLEMENT|DEE"
+  "R|OAK)|(?:HOUS|FAC)E|WRIGHT|SBORO)|(?:SET)?T|HARRAL|NEY)|EEL(?:OC"
+  "K|ER)|(?:ART)?ON|T SETTLEMT)|O(?:OD(?:S(?:BORO|ON)|LA(?:KE|WN)|CR"
+  "EEK|VILLE|WAY)|LF(?:E CITY|FORTH)|RTHAM|DEN)|RIGHTSBORO| UNIV PL|"
+  "YLIE)|R(?:O(?:C(?:K(?:(?: IS)?LAND|W(?:ALL|OOD)|SPRINGS|DALE|PORT"
+  ")|HE(?:STER|LLE))|S(?:E(?:NBERG|BUD)|S(?:TON|ER)?|HARON|ANKY|COE)"
+  "|A(?:N(?:S PRAIRI|OK)E|RING SP(?:RI)?NGS)|UND (?:M(?:OUNTAI|T)N|R"
+  "OCK|TOP)|B(?:(?:INSO|STOW)N|ERT LEE|Y)|MA(?:N FOREST|YOR)?|G(?:AN"
+  "VILLE|ERS)|W(?:LETT|ENA)|(?:XTO|TA)N|LLINGWOOD|PESVILLE|YSE CITY|"
+  "OSEVELT)|I(?:C(?:H(?:LAND(?: (?:SP(?:RIN)?G|H(?:IL)?L)S)?|(?:MON|"
+  "WOO)D|ARDS(?:ON)?)|E)|O (?:(?:BRAV|HOND|FRI)O|GRANDE C(?:IT)?Y|(?"
+  ":MEDIN|VIST)A)|V(?:ER(?: OAKS|SIDE)|IERA)|SING STAR|NGGOLD|ESEL|D"
+  "GE)|A(?:N(?:DOLPH(?: A(?:IR(?: FORCE BASE)?|(?: F |F)B))?|(?:SOM "
+  "CANYO|KI)N|CHO VIEJO|GER)|Y(?:MONDVILLE|WOOD)|I(?:NBOW|SIN)|TCLIF"
+  "F|VENNA|LLS)|E(?:D(?: (?:(?:ROC|OA)K|SPRINGS)|WATER|FORD)|A(?:LIT"
+  "OS|GAN)|(?:FUGI|N)O|CYCLE|KLAW)|U(?:N(?:AWAY BAY|GE)|LE|SK)|(?:HO"
+  "M|Y)E)|H(?:A(?:R(?:(?:L(?:INGE|ETO)|DI)N|KER (?:HEIG)?HTS|(?:ROL|"
+  "WOO)D|T(?:LEY)?|GILL|PER)|L(?:L(?:ETT)?SVILLE|E CENTER|TOM CITY)|"
+  "M(?:(?:ILTO|LI)N|SHIRE)|S(?:KELL|LET|SE)|W(?:KINS|LEY)|NKAMER|PPY"
+  ")|I(?:G(?:H(?:LAND(?: (?:VILL(?:AGE)?|HAVE?N)|S)| ISLAND)|GINS)|L"
+  "L(?: COUNTRY VILLAGE|TOP LAKES|ISTER|SBORO)|D(?:E(?: A |A)WAY|ALG"
+  "O)|C(?:KORY CREEK|O)|TCHCOCK)|O(?:LL(?:Y(?: L(?:AKE RA|K R)NCH|WO"
+  "OD P(?:AR)?K)|IDAY|AND)|R(?:SESHOE BA|IZON CIT)Y|N(?:EY GROVE|DO)"
+  "|C(?:HHEIM|KLEY)|W(?:ARDWICK|E)|(?:UST|BS)ON|OKS)|E(?:A(?:R(?:TLA"
+  "ND|NE)|TH(?:RIDGE)?)|N(?:DERSON|RIETTA)|R(?:MLEIGH|EFORD)|MP(?:ST"
+  "EAD|HILL)|(?:WIT|X)T|BBRONVILLE|IDENHEIMER|LOTES|DLEY)|U(?:N(?:T("
+  "?:INGTON|SVILLE)?|GERFORD)|(?:GHES SP(?:RIN)?G|DSON OAK)S|F(?:SMI"
+  "TH|FMAN)|T(?:CHINS|TO)|BBARD|MBLE|RST|LL)|L CNTRY VLG|YE)|G(?:R(?"
+  ":A(?:N(?:D(?: (?:PRAIRI|SALIN)E|FALLS|VIEW)|GER(?:LAND)?|ITE SHLS"
+  "|BURY)|PE(?: CREEK|LAND|VINE)|FORD|HAM)|E(?:EN(?:VILLE|WOOD)|GORY"
+  ")|O(?:VE(?:TON|S)|ESBECK|OM)|U(?:LLA|VER)|IDIRON)|A(?:R(?:DEN(?: "
+  "(?:(?:VALLE|CIT)Y|RIDGE)|DALE)|(?:LAN|WOO)D|CIASVILLE|RISON|Y)|L("
+  "?:(?:VESTO|LATI)N|ENA PARK)|(?:TESVILL|US)E|I(?:NESVILLE|L)|NADO)"
+  "|O(?:L(?:D(?:S(?:BORO|MITH)|THWAITE|EN)|IAD)|R(?:DON(?:VILLE)?|MA"
+  "N|EE)|OD(?:FEL?LOW AFB|RICH)|ULDBUSK|NZALES|DLEY|BER)|L(?:EN(?: ("
+  "?:FLORA|ROSE)|N HEIGHTS)|A(?:DEWAT|ZI)ER|IDDEN)|U(?:N(?: BARREL C"
+  "(?:IT)?Y|TER)|(?:STIN|THRI)E|ERRA|Y)|I(?:L(?:(?:CHRIS|LET)T|MER)|"
+  "R(?:ARD|VIN)|DDINGS)|E(?:ORGE(?: WEST|TOWN)|RONIMO|NEVA))|D(?:E(?"
+  ":L(?: (?:VALLE|RIO)|L CITY|MITA)|N(?:(?:IS|T)ON|VER CITY|NIS)|C(?"
+  ":KER PR(?:AIRIE)?|ATUR)| (?:BERRY|KALB|LEON)|(?:RMOT|TROI|POR)T|("
+  "?:WEY|AN)VILLE|S(?:DEMONA|OTO)|V(?:ERS|INE)|ER PARK)|A(?:L(?:LA(?"
+  ":RDSVILLE|S)|HART|E)|(?:(?:YT|M)O|W(?:SO)?)N|N(?:CIGER|EVANG|BURY"
+  ")|I(?:NGERFIELD|SETTA)|RROUZETT|VILLA)|O(?:U(?:G(?:LASS(?:VILLE)?"
+  "|HERTY)|BLE OAK|CETTE)|D(?:D CITY|SON|GE)|N(?:IE|NA)|RCHESTER|GWO"
+  "OD|BBIN|OLE|SS)|I(?:CK(?:INSON|ENS)|M(?:E BOX|MITT)|A(?:LVILLE|NA"
+  ")|BOLL|LLEY|NERO|KE)|R(?:I(?:PPING SP(?:RIN)?GS|FTWOOD|SCOLL)|YDE"
+  "N)|U(?:N(?:CANVILLE|LAY|N)|M(?:ONT|AS)|BLIN)|FW(?: AIRPORT)?|YESS"
+  " AFB| HANIS)|T(?:E(?:N(?:N(?:(?:ESSEE)? COLONY|YSON)|AHA)|L(?:E(?"
+  ":GRAPH|PHONE)|FERNER|L)|X(?:A(?:S CITY|RKANA)|LINE|ON)|R(?:RELL(?"
+  ": HILLS)?|LINGUA)|(?:AGU|MPL)E|HUACANA)|H(?:O(?:M(?:ASTON|PSONS)|"
+  "RN(?:DALE|TON))|E (?:(?:WOODLAND|HILL)S|COLONY)|R(?:EE RIVERS|OCK"
+  "MORTON|ALL)|ICKET)|A(?:YLOR(?: L(?:AKE VILLAGE|K VLG))?|R(?:PLEY|"
+  "ZAN)|L(?:CO|PA)|HOKA|TUM|FT)|R(?:O(?:PHY CLUB|UP|Y)|INI(?:DAD|TY)"
+  "|ENT(?:ON)?|USCOTT)|O(?:M(?: BEAN|BALL)|(?:RNILL|KI)O|YAH(?:VALE)"
+  "?|LAR|W)|U(?:(?:L(?:ET|I)|SCOL)A|R(?:NERTOWN|KEY))|I(?:(?:MPSO|LD"
+  "E)N|KI ISLAND|VOLI|OGA)|Y(?:LER|NAN|E)|WITTY)|A(?:L(?:A(?:MO(?: H"
+  "EIGHTS)?|NREED)|T(?:A(?: LOMA|IR)|ON?)|L(?:E(?:YTO)?|ISO)N|B(?:A("
+  "?:NY)?|ERT)|V(?:ARADO|ORD|IN)|I(?:CE|EF)|PINE|EDO)|R(?:C(?:(?:ADI"
+  "|OL)A|HER CITY)|T(?:ESIA WELLS|HUR CITY)?|ANSAS PASS|LINGTON|MSTR"
+  "ONG|GYLE|P)|N(?:D(?:ERSON|REWS|ICE)|(?:GLET|S)ON|T(?:HONY|ON)|(?:"
+  "NO)?NA|AHUAC)|T(?:(?:ASCO(?:CIT|S)|LANT)A|HENS)|U(?:ST(?:WELL|IN)"
+  "|BREY|RORA)|B(?:ERNATHY|ILENE|BOTT)|D(?:(?:DISO|RIA)N|KINS)|V(?:I"
+  "NGER|ALON|ERY|OCA)|M(?:ARILLO|HERST|ES)|S(?:PERMONT|HERTON)|(?:GU"
+  "A DULC|ZL)E|C(?:KERLY|TON|E)|(?:FTO|IKE)N|PPLE SPRINGS|QUILLA|XTE"
+  "LL)|F(?:A(?:L(?:CON(?: (?:HEIG)?HTS)?|FURRIAS|LS CITY)|R(?:MERS(?"
+  ": BRA?NCH|VILLE)|NSWORTH|WELL)|IR(?: OAKS(?: RANCH)?|FIELD|VIEW)|"
+  "(?:YETTEVILL|T)E|BENS|NNIN)|O(?:R(?:T (?:S(?:AM HOUS|TOCK)TON|H(?"
+  ":ANCOCK|OOD)|(?:BLIS|DAVI)S|MC ?KAVETT|WORTH)|EST(?: HILL|BURG)?|"
+  "(?:RESTO|SA)N|NEY)|WLERTON|LLETT)|R(?:E(?:D(?:ERICKSBU?RG|ONIA)?|"
+  "E(?:PORT|R)|SNO)|I(?:ENDSWOOD|ONA|SCO|TCH)|AN(?:K(?:STO|LI)N|CITA"
+  "S)|UITVALE|OST)|L(?:O(?:RE(?:SVILL|NC)E|WER ?MOUND|YDADA|MOT)|AT("
+  "?:ONIA)?|UVANNA|INT|YNN)|I(?:ELDTON|SCHER|FE)|E(?:NTRES|RRI)S|UL("
+  "?:SHEAR|TON)|T SM HOUSTON)|E(?:L(?: (?:C(?:ENIZ|AMP)|INDI|LAG|PAS"
+  ")O|M(?:ENDORF| MOTT|ATON|O)|YSIAN F(?:IE)?LDS|DORADO(?: AFS)?|(?:"
+  "KHA|BE)RT|(?:ECTR|S)A|IASVILLE|LINGER|GIN)|A(?:ST(?: (?:TAWAKONI|"
+  "BERNARD)|LAND|ON)|GLE (?:LAKE|PASS)|R(?:LY|TH))|N(?:C(?:HANTED OA"
+  "KS?|IN(?:AL|O))|(?:OCH|NI)S|ERGY|LOE)|D(?:(?:MONSO|E)N|(?:RO|D)Y|"
+  "GEWOOD|INBURG|COUCH|NA)|V(?:A(?:DALE|NT)|ERMAN)|S(?:TELLINE|CAPEE"
+  "S)|U(?:STACE|LESS)|C(?:LETO|TOR)|(?:OL|R)A|TOILE|GYPT|MORY)|N(?:E"
+  "(?:W(?: (?:B(?:(?:OSTO|ADE)N|RAUNFELS)|(?:WAVERL|CANE)Y|SUMMERF(?"
+  ":IE)?LD|D(?:IANA|EAL)|LONDON|HOME|ULM)|CASTLE|ARK|TON)|(?:IMAN MA"
+  "RCU|CHE)S|DERLAND|EDVILLE|VADA|MO)|O(?:R(?:T(?:H(?: (?:(?:BRAN|ZU"
+  "L)CH|RICHLAND HILLS|HOUSTON)|FIELD)|ON)|MAN(?:GEE|NA)|DHEIM)|LAN("
+  "?:VILLE)?|(?:VIC|M)E|TREES|CONA)|A(?:VA(?:L AIR STATION/ JRB|SOTA"
+  ")|(?:COGDOCH|PL)ES|(?:TALI|D)A|S(?:/JRB|H)|ZARETH)|I(?:EDERWALD|X"
+  "ON)| RICHLND HLS|URSERY)|K(?:I(?:NG(?:S(?:V(?:ILLE(?: NAVAL AIR S"
+  "TATION)?|L(?: NAVAL|LE NAS))|BURY|LAND)|WOOD)|L(?:(?:DA|GO)RE|LEE"
+  "N)|R(?:BY(?:VILLE)?|VIN))|E(?:N(?:N(?:E(?:DALE|Y)|ARD)|D(?:LETON|"
+  "ALIA)|EDY|T)|R(?:R(?:VILLE|ICK)|ENS|MIT)|M(?:P(?:NER)?|AH)|LL(?:Y"
+  " USA|ER)|E(?:CHI|NE))|N(?:I(?:CKERBOCKER|PPA)|O(?:X CITY|TT))|A(?"
+  ":RN(?:ES CITY|ACK)|(?:MA|T)Y|UFMAN)|R(?:U(?:GERVILLE|M)|ESS)|O(?:"
+  "(?:UNTZ|SS)E|PPERL)|L(?:ONDIKE|EIN)|URTEN|YLE)|O(?:L(?:D(?: (?:R("
+  "?:IVER-WINFRE|VR-WNFR)E|GLORY|OCEAN)|EN)|M(?:OS PARK|ITO)|NEY|TON"
+  ")|AK(?: (?:POINT|LEAF)|(?:LAN|WOO)D|HURST|VILLE|ALLA)|R(?:ANGE(?:"
+  " GROVE|FIELD)?|E CITY|CHARD|LA)|(?:(?:KLAUNI|ILT)O| BRIE)N|D(?:E("
+  "?:SSA|LL|M)|ONNELL)|(?:NALASK|MAH|ZON)A|V(?:ERTON|ILLA|ALO)|TT(?:"
+  "INE|O)|YSTER CREEK|GLESBY)|V(?:A(?:L(?:LE(?:Y (?:SPRING|MILLS|VIE"
+  "W)| DE ORO)|E(?:NTINE|RA))|N(?: (?:ALSTYNE|VLECK|HORN)|DER(?:BILT"
+  "|POOL)|COURT)?)|I(?:LLAGE (?:OF THE H|M)ILLS|GO PARK|CTORIA|NTON|"
+  "DOR)|E(?:R(?:(?:HALE|NO)N|IBEST|A)|ALMOOR|NUS|GA)|O(?:N ORMY|LENT"
+  "E|TAW|CA|SS)|LG O THE HLS| A HOSPITAL)|J(?:O(?:NES(?: CREEK|VILLE"
+  "|BORO|TOWN)|(?:URDANTO|AQUI)N|S(?:EPHINE|HUA)|HNSON CITY|INERVILL"
+  "E)|A(?:CKS(?:ONVILLE|BORO)|MAICA BEACH|RRELL|SPER|YTON)|E(?:R(?:S"
+  "EY V(?:ILLAGE|LG)|MYN)|FFERSON|WETT)|U(?:STI(?:CEBURG|N)|(?:NCTI|"
+  "DS)ON))|I(?:N(?:D(?:IAN LAKE|USTRY)|G(?:LESIDE|RAM)|EZ)|R(?:E(?:D"
+  "ELL|NE)|A(?:AN)?|VING)|O(?:WA PARK|LA)|TA(?:SCA|LY)|MPERIAL|VANHO"
+  "E|DALOU|ZORO)|QU(?:I(?:N(?:TANA|LAN)|T(?:AQUE|MAN))|E(?:EN CITY|M"
+  "ADO)|A(?:NAH|IL))|U(?:NIVERSAL CI?TY|MBARGER|HLAND|TOPIA|VALDE)|Y"
+  "(?:O(?:RKTOWN|AKUM)|AN(?:CEY|TIS))|Z(?:A(?:VALL|PAT)A|EPHYR)))))$"
+  ,
+  /* -- UT -- UT -- UT -- UT -- UT -- UT -- UT -- UT -- UT -- UT -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:N(?:TA(?: CLARA|QUIN)|DY)|L(?:T LAKE C"
+  "I?TY|INA|EM)|RATOGA SP(?:RIN)?GS|INT GEORGE)|U(?:N(?:(?:NYSID|DAN"
+  "C)E|SET)|GARVILLE|THERLAND|MMIT)|T(?:ANSBURY P(?:AR)?K| GEORGE|ER"
+  "LING|OCKTON)|P(?:RING(?:(?:VIL|DA)LE| CITY)|ANISH FORK)|OUTH (?:("
+  "?:JORDA|OGDE)N|SALT LAKE|WEBER)|N(?:OW(?:VILLE|BIRD)|YDERVILLE)|("
+  "?: SALT LAK|YRACUS)E|(?:MITHFIEL|IGUR)D|C(?:OFIELD|IPIO)|EVIER|LC"
+  "|SL)|M(?:O(?:N(?:T(?:EZUMA CR(?:EE)?K|ICELLO)|UMENT V(?:ALLE|L)Y|"
+  "ROE|A)|UNT(?: (?:PLEASANT|CARMEL)|AIN (?:GREEN|HOME))|R(?:GAN|ONI"
+  ")|DENA|AB)|A(?:R(?:RIOTT-SLATERVILLE CITY|YSVALE)|N(?:T(?:UA|I)|I"
+  "LA)|PLETON|YFIELD|MMOTH|GNA)|I(?:L(?:LVILLE|FORD)|D(?:VALE|WAY)|N"
+  "ERSVILLE)|E(?:XICAN HAT|ADOW|NDON)|T(?: PLEASANT|N GREEN)|S(?: CI"
+  "TY|C)|URRAY|YTON)|C(?:O(?:TTONW(?:OOD(?: HEIGHTS(?: CITY)?)?|D HG"
+  "TS)|(?:LLINS|PPER)TON|R(?:INNE|NISH)|(?:ALVILL|V)E)|E(?:NT(?:RAL("
+  "?: V(?:ALLE|L)Y)?|ER(?:FIELD|VILLE))|DAR (?:(?:VALLE|CIT)Y|HILLS|"
+  "FORT))|A(?:N(?:YON POINT|NONVILLE)|STLE (?:VALLEY|DALE)|CHE J(?:U"
+  "NCTION|CT))|L(?:(?:A(?:RKST|WS)|INT)ON|E(?:ARFIEL|VELAN)D)|I(?:RC"
+  "LEVILLE|SCO)|HESTER|ROYDON)|H(?:O(?:L(?:LADAY(?: C(?:OTTONWOO|TW)"
+  "D)?|DEN)|NEYVILLE|OPER|WELL)|I(?:L(?:L A(?:IR FORCE BASE|FB)|DALE"
+  ")|GHLAND|NCKLEY|TE)|A(?:LLS (?:CROSS|X)ING|N(?:KSVILLE|NA)|RRISVI"
+  "LLE|TCH)|E(?:N(?:RIEVILLE|EFER)|BER CITY|RRIMAN|LPER)|U(?:NT(?:IN"
+  "GTON|SVILLE)|RRICANE)|Y(?:DE PARK|RUM))|B(?:R(?:I(?:(?:AN HEA|DGE"
+  "LAN)D|GH(?:AM CITY|TON))|YCE(?: C(?:ANYON(?: CITY)?|YN CTY))?|OOK"
+  "SIDE)|E(?:A(?:R RIVER C(?:IT)?Y|VER)|N(?:JAMI|SO)N|RYL)|I(?:NGHAM"
+  " C(?:ANYO|Y)N|G WATER|CKNELL)|L(?:U(?:FF(?:DALE)?|EBELL)|ANDING)|"
+  "O(?:U(?:NTIFUL|LDER)|NANZA)|ULLFROG|ALLARD)|W(?:E(?:ST (?:VALLE(?"
+  ":Y CIT)?Y|(?:JORDA|HAVE)N|BOUNTIFUL|POINT)|LL(?:INGTON|SVILLE)|ND"
+  "OVER)|A(?:SHINGTON(?: T(?:ERRACE|R))?|L(?:LSBURG|ES)|NSHIP)|OOD(?"
+  ":(?:LAND H(?:IL)?L|S CROS)S|RUFF)| (?:VALLEY CITY|BOUNTIFUL)|HITE"
+  "(?: MESA|ROCKS)|ILLARD)|P(?:A(?:R(?:K (?:VALLE|CIT)Y|A(?:GONAH|DI"
+  "SE)|(?:OWA|TOU)N)|NGUITCH|YSON)|L(?:EASANT (?:GR(?:OVE|V)|VIEW)|A"
+  "IN CITY|YMOUTH)|R(?:OV(?:IDENCE|O)|ICE)|IN(?:E VALLEY|TURA)|E(?:N"
+  "ROSE|RRY|OA)|ORTAGE)|R(?:I(?:VER(?:(?:DAL|SID)E| HEIGHTS|TON)|CH("
+  "?:FIEL|MON)D)|O(?:CK(?:Y R(?:IDGE TO|DG T)WN|VILLE)|OSEVELT|Y)|ED"
+  "(?: CANYON|MOND)|AND(?:LETT|OLPH)|USH VALLEY)|T(?:R(?:O(?:UT CREE"
+  "K|PIC)|E(?:MO)?NTON|IDELL)|A(?:YLOR(?:SVILLE)?|BIONA|LMAGE)|O(?:("
+  "?:QUERVIL|OE)LE|RREY)|H(?:ATCHER|OMPSON|ISTLE)|E(?:ASDALE|RRA)|IC"
+  "ABOO)|F(?:A(?:R(?:MINGTON|R WEST)|IR(?:FIELD|VIEW)|YETTE)|R(?:UIT"
+  "(?: HEIGHTS|LAND)|ANCIS|EMONT)|O(?:UNTAIN GR(?:EE)?N|RT DUCHESNE)"
+  "|I(?:ELDING|LLMORE)|ERRON)|L(?:A(?:KE(?: PO(?:WELL|INT)|SIDE|TOWN"
+  ")| (?:VERKIN|SAL)|POINT|YTON)|E(?:(?:(?:AMING|WIS)TO|VA)N|EDS|HI)"
+  "|I(?:BERTY|NDON)|Y(?:NNDYL|MAN)|O(?:GAN|A))|G(?:R(?:EEN(?: RIVER|"
+  "HAVEN|VILLE|WICH)|OUSE CREEK|ANTSVILLE)|AR(?:DEN CITY|RISON|LAND)"
+  "|U(?:N(?:NISON|LOCK)|SHER)|LEN(?:DALE|WOOD)|ENOLA|OSHEN)|E(?:(?:A"
+  "(?:GLE M(?:OUNTAI|T)|ST CARBO)|DE)N|L(?:(?:K RIDG|SINOR)E|BERTA|W"
+  "OOD|MO)|N(?:TERPRISE|OCH)|(?:UREK|RD)A|SCALANTE|PHRAIM|MERY|CHO)|"
+  "A(?:L(?:T(?:A(?:MONT)?|ON(?:AH)?)|PINE)|N(?:NABELLA|TIMONY|ETH)|M"
+  "(?:ERICAN FORK|ALGA)|U(?:RORA|STIN)|PPLE VALLEY|DAMSVILLE|BRAHAM|"
+  "XTELL)|D(?:U(?:C(?:K CR(?:EEK VILLAGE|K VLG)|HESNE)|TCH JOHN|GWAY"
+  ")|E(?:ER (?:MOUNTAIN|VALLEY)|WEYVILLE|SERET|LTA)|AMMERON V(?:ALLE"
+  "|L)Y|RAPER)|N(?:E(?:W(?: HARMONY|CASTLE|TON)|OLA|PHI)|ORTH (?:(?:"
+  "LOGA|OGDE)N|SALT LAKE)| SALT LAKE|APLES)|K(?:A(?:N(?:A(?:RRAVILLE"
+  "|B)|ESVILLE|OSH)|YSVILLE|MAS)|E(?:NILWORTH|ARNS)|OOSHAREM|INGSTON"
+  ")|O(?:R(?:(?:ANGE|DER)VILLE|EM)|A(?:K(?: CIT|LE)Y|SIS)|GDEN|PHIR|"
+  "URAY)|V(?:E(?:RN(?:AL|ON)|NICE|YO)|I(?:NEYARD|RGIN))|J(?:(?:UNCTI"
+  "O|ENSE)N|OSEPH)|ZION N(?:ATIONA|T)L PARK|I(?:BAPAH|VINS)|UINTAH))"
+  "))$"
+  ,
+  /* -- VA -- VA -- VA -- VA -- VA -- VA -- VA -- VA -- VA -- VA -- */
+  "(?:\\b)((?^:(?i:(?:S(?:T(?:A(?:N(?:LEY(?:TOWN)?|ARDSVILLE)|FFORD("
+  "?:SVI?LLE)?|R TANNERY|TE FARM|UNTON)|E(?:VENS(?:VILLE|BURG)|PHENS"
+  "(?: CITY|ON)|ELES TAVE?RN|RLING)| (?:(?:STEPHN|DAVID)S CH|GEORGE)"
+  "|ON(?:E(?: RIDGE|GA)|Y CREEK)|U(?:AR(?:TS DRAF)?T|DLEY)|RA(?:SBUR"
+  "G|TFORD))|A(?:INT (?:(?:STEPHEN|DAVID)S CHURCH|CHARLES|PAUL)|N(?:"
+  "D(?:Y (?:LEVEL|POINT|HOOK)|STON)|FORD)|L(?:(?:LIE MA|TVILL)E|UDA|"
+  "EM)|X(?:IS|E))|H(?:E(?:N(?:ANDOAH(?: CAVERNS)?|DOAH CVRN)|RANDO|L"
+  "BY)|A(?:(?:CKLEFORD|RP)S|D(?:WELL|OW)|WSVILLE)|I(?:PMAN|LOH)|ORTT"
+  " GAP)|P(?:R(?:ING(?: GROVE|FIELD)|OUSES CORN(?:ER)?)|O(?:T(?:SYLV"
+  "ANIA|TSWOOD)|UT SPRING)|E(?:RRYVILLE|EDWELL|NCER)|ARTA)|U(?:DLEY "
+  "SP(?:RIN)?GS|(?:MERDUC|FFOL)K|THERL(?:AND|IN)|(?:PPL|RR)Y|LLY STA"
+  "TION|S(?:SEX|AN)|GAR GROVE)|E(?:VE(?:N (?:(?:FOUNT(?:AI)?N|CORNER"
+  ")S|MILE F(?:OR)?D)|RN)|A(?:LSTON|FORD|VIEW)|DLEY|LMA)|O(?:UTH(?: "
+  "(?:NORFOLK|BOSTON|RIDING|HILL)|BRIDGE)|MER(?:VILLE|SET))|C(?:OTTS"
+  "(?:VILLE|BURG)|H(?:UYLER|LEY))|W(?:O(?:RDS CREEK|OPE)|EET BRIAR)|"
+  "I(?:NGERS GLEN|MPSONS)|KIP(?:PERS|WITH)|YRI(?:NG)?A|MITHFIELD|NEL"
+  "L)|C(?:H(?:A(?:R(?:L(?:OTTE(?: C(?:OURT HOUSE| H)|SV(?:IL)?LE)|ES"
+  " CITY)|ITY)|N(?:TILLY|CE)|SE CITY|MPLAIN|THAM)|E(?:S(?:TER(?:FIEL"
+  "D| GAP)?|APEAKE)|RITON|CK)|I(?:NCOTEAGUE(?: ISLAND)?|LHOWIE)|URCH"
+  "(?: (?:ROAD|VIEW)|VILLE)|RIST(?:IANSBU?RG|CHURCH))|A(?:R(?:R(?:OL"
+  "LTON|SVILLE)|TERSVILLE|DINAL|SON|ET)|S(?:TLE(?:WOOD|TON)|ANOVA|CA"
+  "DE)|P(?:E(?: CHARLES|VILLE)|RON)|L(?:LA(?:NDS|WAY|O)|VERTON)|T(?:"
+  "HARPIN|AWBA|LETT)|UTHORNVILLE|VE SPRING|MPBELL|NA)|O(?:L(?:O(?:NI"
+  "AL (?:H(?:EIGH|G)TS|B(?:EA)?CH)|GNE)|E(?:MAN FALLS|S POINT)|LINSV"
+  "ILLE|UMBIA)|V(?:ESVILLE|INGTON)|B(?:BS CREEK|HAM)|U(?:RTLAND|NCIL"
+  ")|N(?:AWAY|CORD)|(?:EBUR|RBI)N|PPER HILL|MMUNITY)|L(?:I(?:N(?:CH("
+  "?:BURG|PORT|CO)|TWOOD)|F(?:TON(?: FORGE)?|FORD))|A(?:R(?:KSVILLE|"
+  "EMONT)|UDVILLE)|E(?:AR BROOK|VELAND)|USTER SP(?:RIN)?GS|OVER(?:DA"
+  "LE)?)|R(?:O(?:SS J(?:UNCTION|NCT)|Z(?:IER|ET)|CKETT)|I(?:GLERSVIL"
+  "LE|PPLE CREEK|DERS|MORA|TZ)|(?:A(?:DDOCK|IGS)VILL|EW)E|YSTAL HILL"
+  ")|E(?:NT(?:ER CROSS|REVILLE)|DAR BLUFF|RES)|U(?:L(?:PEPER|LEN)|MB"
+  "ERLAND|NNINGHAM)|ISMONT)|B(?:R(?:O(?:AD(?:LANDS| RUN|FORD|WAY)|WN"
+  "(?:SBURG|TOWN)|OK(?:NEAL|E)|DNAX)|A(?:N(?:DY STA(?:TION)?|CHVILLE"
+  ")|MBLETON|CEY)|I(?:DGEWATER|GHTWOOD|STO[LW])|E(?:MO BLUFF|AKS)|U("
+  "?:CETOW|INGTO)N)|E(?:L(?:L(?:E(?:V(?:IEW|UE)| HAVEN)|AMY)|SPRING)"
+  "|N(?:T(?: MOUNTAIN|ONVILLE)| HUR|A)|A(?:VER(?:LETT|DAM)|LETON|UMO"
+  "NT)|R(?:RYVILLE|GTON)|DFORD|E)|A(?:R(?:(?:BOUR|HAM)SVILLE|REN SP("
+  "?:RIN)?GS)|S(?:(?:KERVILL|Y)E|SETT|TIAN)|ILEYS (?:CROSSROA|XR)DS|"
+  "T(?:TERY PARK|ESVILLE)|N(?:CO|DY)|COVA|VON)|U(?:R(?:N(?:T CHIMNEY"
+  "|SVILLE|LEYS)|KE(?:S GARDEN|VILLE)?|R HILL|GESS)|FFALO J(?:UNCTIO"
+  "N|CT)|C(?:KINGHAM|HANAN)|ENA VISTA|MPASS)|O(?:(?:(?:HANN|ST)O|WLI"
+  "NG GREE|ISSEVAI)N|Y(?:D(?: TAVER|TO)N|KINS|CE)|ONES(?: MILL|VILLE"
+  ")|(?:N AI|LA)R)|L(?:A(?:CK(?:S(?:BURG|TONE)|RIDGE|WATER)|(?:IR|KE"
+  ")S|ND)|UE(?: (?:GRASS|RIDGE)|FIELD|MONT)|OXOM)|I(?:G (?:STONE GAP"
+  "|ISLAND|ROCK)|R(?:CHLEAF|DSNEST)|SHOP)|YBEE)|M(?:A(?:N(?:A(?:SSAS"
+  "(?: PARK)?|KIN SABOT)|GOHICK|NBORO|QUIN)|R(?:ION(?:VILLE)?|TINSVI"
+  "LLE|SHALL|KHAM|YUS)|S(?:S(?:IES MILL|ANUTTEN)|ON NECK|COT)|DISON("
+  "?: (?:(?:HEIG)?HT|MILL)S)?|(?:PPSVIL|VISDA)LE|T(?:TAPONI|HEWS)|X("
+  "?: MEADOWS|IE)|C(?:HIPONGO|ON)|URERTOWN|IDENS)|O(?:N(?:T(?:E(?:BE"
+  "LLO|ZUMA|REY)|PELIER(?: STATION)?|ICELLO|CLAIR|FORD|ROSS|VALE)|ET"
+  "A|ROE)|U(?:NT (?:(?:JACKS|VERN)ON|S(?:IDNEY|OLON)|CRAWFORD|WEATHE"
+  "R|HOLLY)|TH(?: OF)? WILSON)|R(?:RISVILLE|ATTICO)|(?:DEST TOW|O)N|"
+  "(?:BJAC|LLUS)K|S(?:ELE|B)Y)|I(?:D(?:DLE(?:B(?:ROOK|URG)|TOWN)|L(?"
+  ":OTHIAN|AND))|L(?:L(?:ERS TAVE?RN|BORO|WOOD)|FORD|ES)|N(?:E(?: RU"
+  "N|RAL)|T SPRING)|SSION HOME|TCHELLS)|E(?:R(?:R(?:Y POINT|IFIELD)|"
+  "EDITHVILLE)|A(?:DOW(?:S(?: OF)? DAN|VIEW)|RS)|CHANICSVI?LLE|(?:ND"
+  "OT|LF)A|HERRIN)|C(?: (?:C(?:LURE|OY)|GAHEYSVILLE|DOWELL|KENNEY|LE"
+  "AN)|GAHEYSVILLE|LEAN)|NTPELIER STA|T CRAWFORD|USTOE)|W(?:A(?:R(?:"
+  "(?:RENTO|DTOW)N|M SPRINGS|E NECK|FIELD|NER|SAW)|SH(?:INGTON(?:S B"
+  "IRTHPLACE)?|GTNS BRHP)|L(?:LOPS IS(?:LAND)?|KERTON|TERS)|T(?:ER(?"
+  ": VIEW|FORD)|TSVILLE)|KE(?:FIELD)?|CHAPREAGUE|YNESBORO|VERLY)|I(?"
+  ":N(?:TERGR(?:EEN(?: RESORT)?|N RST)|(?:CHESTE|DSO)R|GINA|STON)|L("
+  "?:LI(?:AMS(?:VILLE|BURG)|S(?: WHARF)?)|MINGTON|DWOOD|SONS)|COMICO"
+  "(?: CHUR(?:CH)?)?|THAMS|RTZ|SE)|O(?:O(?:D(?:S(?: CR(?:OSS ROA|S R"
+  ")DS|TOCK)|B(?:ERRY FOR(?:EST)?|RIDGE)|VILLE|FORD|LAWN)|LWINE)|LF("
+  "?:TOWN|ORD))|E(?:ST (?:(?:SPRINGFIEL|EN)D|AUGUSTA|MCLEAN|POINT)|Y"
+  "ERS CAVE|BER CITY|IRWOOD|EMS)|HIT(?:E(?: (?:P(?:LAINS|OST)|MARSH|"
+  "STONE|HALL)|WOOD|TOP)|ACRE)|Y(?:LLIESBURG|THEVILLE)| SPRINGFIELD)"
+  "|R(?:O(?:C(?:K(?:B(?:RIDGE BATHS|DGE BATH)|Y (?:MOUNT|GAP)|VILLE|"
+  "FISH)|HELLE)|S(?:E(?: HILL|DALE|LAND)|SLYN)|(?:ANOK|W)E|LLINS FOR"
+  "K|UND HILL)|E(?:D(?: (?:HOUSE|ASH|OAK)|WOOD|ART)|PUBLIC(?:AN GROV"
+  "E|N GRV)|(?:CTORTOW|MINGTO)N|(?:EDVILL|LIANC)E|G(?:ENCY|INA)|S(?:"
+  "CUE|TON)|VA)|I(?:C(?:H(?:MOND(?: INT AIRPORT)?| (?:INT AP|CREEK)|"
+  "ARDSVILLE|LANDS)|E)|N(?:GGOLD|ER)|DGE(?:WAY)?|[LX]EYVILLE|PPLEMEA"
+  "D|VERTON)|A(?:P(?:H(?:ANCK ACAD|INE)|PAHANNOCK ACADEMY|IDAN)|D(?:"
+  "FORD|IANT)|CCOON FORD|NDOLPH|WLINGS|VEN)|U(?:TH(?:ER GLEN|VILLE)|"
+  "RAL RETREAT|CKERSVILLE|STBURG|BY)|HOADESVILLE)|P(?:O(?:RT(?: (?:R"
+  "(?:EPUBLIC|OYAL)|HAYWOOD)|SMOUTH)|(?:QUOSO|WHATA)N|TOMAC(?: FALLS"
+  ")?|UND(?:ING MILL)?|CAHONTAS)|A(?:T(?:RICK SP(?:RIN)?GS|TERSON)|R"
+  "(?:KSLEY|ROTT|TLOW|IS)|EONIAN SP(?:RIN)?GS|INT(?: BANK|ER)|LMYRA|"
+  "MPLIN)|R(?:O(?:V(?:IDENCE FORGE|DENCE FRG)|SPECT)|INCE (?:W(?:ILL"
+  "IA)?M|GEORGE)|ATTS)|E(?:N(?:N(?:INGTO?N GAP| LAIRD)|HOOK)|AR(?:IS"
+  "BURG|Y)|TERSBURG|MBROKE)|I(?:L(?:GRIMS KNOB|OT)|NE(?:Y RIVER|RO)|"
+  "TTSVILLE|MMIT)|U(?:(?:RCELLVILL|NGOTEAGU)E|LASKI)|L(?:EASANT V(?:"
+  "ALLE|L)Y|AIN VIEW)|H(?:ILOMONT|ENIX))|L(?:A(?:KE(?: (?:OF(?: THE)"
+  "? WOODS|FREDERICK|RIDGE)|SIDE)|N(?:E(?:VIEW|XA)|GLEY AFB|CASTER|S"
+  "DOWNE)|(?:WRENCEVILL| CROSS|FAYETT)E|C(?:EY SPRING|KEY)|UREL FORK"
+  "|DYSMITH|MBSBURG)|O(?:CUST(?: (?:(?:GROV|DAL)E|HILL)|VILLE)|V(?:E"
+  "TTSVILLE|INGSTON)|W(?:ESVILLE| MOOR|RY)|R(?:ETTO|TON)|NG ISLAND|T"
+  "TSBURG|UISA)|I(?:T(?:TLE PLYM(?:OU)?TH|HIA)|N(?:(?:COL|DE)N|VILLE"
+  ")|G(?:HTFOOT|NUM)|VELY)|E(?:BANON(?: (?:CHUR)?CH)?|E(?: MONT|SBUR"
+  "G)|(?:XINGT)?ON|WISETTA|NNIG)|YN(?:CH(?: STATION|BURG)|DHURST)|U("
+  "?:NENBURG|RAY)|K FREDERICK)|F(?:O(?:R(?:T (?:B(?:LACKMORE|ELVOIR)"
+  "|(?:A P HI|CHISWE)LL|M(?:ITCHELL|ONROE)|(?:DEFIANC|LE)E|(?:VALLE|"
+  "STOR)Y|EUSTIS)|K(?: UNION|SVILLE)|EST|D)|STER(?: FALLS)?|NESWOOD)"
+  "|A(?:IR(?:F(?:AX(?: STATION)?|IELD)|LAWN)|L(?:LS (?:CHURCH|MILLS)"
+  "|MOUTH)|R(?:MVILLE|NHAM)|NCY GAP|BER)|R(?:E(?:E(?: UNIO|MA)N|DERI"
+  "CKSBU?RG)|AN(?:K(?:TOW|LI)N|CONIA)|ONT ROYAL|IES)|I(?:(?:(?:NCAST"
+  "|ELDA)L|F)E|SHERS(?: HILL|VILLE))|T (?:B(?:LACKMORE|ELVOIR)|MYER)"
+  "|(?:X STATIO|ULKS RU)N|L(?:INT HILL|EET|OYD)|BI ACADEMY|ERRUM)|H("
+  "?:A(?:R(?:T(?:FIEL|WOO)D|(?:BORTO|MA)N|DY(?:VILLE)?|RISONBURG)|Y("
+  "?:(?:FIEL|WOO)D|NESVILLE|MARKET|ES|SI)|M(?:P(?:DEN SYDNEY|TON)|IL"
+  "TON)|L(?:L(?:IEFOR|WOO)D|IFAX)|(?:DENSVILL|GU)E|CKS ?NECK|NOVER)|"
+  "O(?:LLINS(?: C(?:OLLEGE|LG))?|W(?:ARDSVILLE|ERTONS)|R(?:NTOW|SEPE"
+  ")N|T SPRINGS|PEWELL|NAKER|OD)|I(?:GH(?:LAND SP(?:RIN)?GS|TOWN)|L("
+  "?:LS(?:VILLE|BORO)|TONS)|WASSEE|NTON)|U(?:D(?:DLESTON|GINS)|(?:ST"
+  "L|M)E|R(?:LEY|T)|NTLY)|E(?:A(?:D WATERS|THSVILLE)|RNDON|NRY)|MPDE"
+  "N SYDNEY)|N(?:E(?:W(?: (?:C(?:A(?:NTON|STLE)|HURCH)|(?:(?:POI|KE)"
+  "N|MARKE)T|(?:BALTIMOR|HOP)E|RIVER)|(?:INGTO|BER|TOW)N|PORT(?: NEW"
+  "S)?|COMB HALL|SOMS)|L(?:SON(?:IA)?|LYSFORD))|A(?:T(?:UR(?:AL BR(?"
+  ":IDGE(?: STATION)?|G)|L BR STA)|HALIE)|V(?:AL (?:WEAPONS STATION|"
+  "BASE)| WPNS STA)|S(?:SAWADOX|ONS)|R(?:ROWS|UNA)|XERA)|O(?:R(?:T(?"
+  ":H(?: (?:SPRINGFIELD|TAZEWELL|GARDEN))?|ON(?:SVILLE)?)|FOLK|WOOD|"
+  "GE|A)|KESVILLE|TTOWAY)|(?:I(?:CKELSVILL|ND)|UTTSVILL)E| (?:SPRING"
+  "FIELD|TAZEWELL))|A(?:L(?:L(?:EGHANY|ISONIA)|(?:EXANDRI|BERT)A|(?:"
+  "UM RIDG|DI)E|T(?:AVISTA|ON)|FONSO)|M(?:(?:ELIA C(?:OURT HOU|T H)S"
+  "|ISSVILL|ONAT)E|PTHILL|HERST|MON)|R(?:(?:VONI|COL|OD)A|[LR]INGTON"
+  "|ARAT|K)|U(?:GUSTA SPR(?:IN)?GS|STINVILLE)|S(?:H(?:BURN|LAND)|SAW"
+  "OMAN)|PP(?:ALACHIA|OMATTOX)|N(?:NANDALE|DOVER)|(?:BINGD|[FX]T)ON|"
+  "C(?:HILLES|COMAC)|T(?:LANTIC|KINS)|DVANCE MILLS|YL(?:ETT|OR))|D(?"
+  ":A(?:(?:RLINGT(?:ON HEIG|N )HT|MASCU|BNEY)S|V(?:IS WHARF|ENPORT)|"
+  "LE(?: CITY|VILLE)|(?:HLGRE|YTO)N|N(?:VILL|T)E)|U(?:N(?:N(?: LORIN"
+  "G|SVILLE)|GANNON|DAS)|(?:MFRI|LL)ES|(?:BLI|TTO)N|FFIELD|GSPUR)|R("
+  "?:A(?:KES BRANCH|PER)|Y(?: FORK|DEN)|EWRYVILLE)|E(?:L(?:TAVILL|AP"
+  "LAN)E|ERFIELD|NDRON|WITT)|O(?:(?:E HI|SWE)LL|(?:LPHI|RA)N|GUE)|I("
+  "?:SPUTANTA|NWIDDIE|LLWYN|GGS)|YKE)|G(?:R(?:E(?:EN(?:B(?:ACKVIL?LE"
+  "|USH)|W(?:OOD|AY)|VILLE| BAY)|AT FALLS|TNA)|A(?:VES MILL|FTON)|IM"
+  "STEAD|OTTOES|UNDY)|L(?:A(?:D(?:E (?:SPRING|HILL)|STONE|YS)|SGOW)|"
+  "OU(?:CESTER(?: P(?:OIN)?T)?| POINT)|EN (?:WILTO|ALLE|LY)N)|O(?:O("
+  "?:D(?:VIEW|E)|CHLAND)|LD(?:BOND|VEIN)|R(?:DONSVILL)?E|SHEN)|A(?:("
+  "?:RRISON|INES)VILLE|TE CITY|SBURG|LAX)|UM SPRING|WYNN)|T(?:A(?:N("
+  "?:NERSVILLE|GIER)|PPAHANNOCK|MWORTH|ZEWELL|SLEY|BB)|R(?:O(?:UT(?:"
+  "VIL|DA)LE|Y)|I(?:ANGLE|PLET)|EVILIANS|AMMEL)|H(?:ORN(?:BURG|HILL)"
+  "|E PLAINS|AXTON)|(?:EMPERANCEV(?:IL)?|URBEVIL)LE|O(?:MS BROOK|WNS"
+  "END|PPING|ANO)|I(?:MBER(?:VILL|LAK)E|PTOP)|Y(?:E RIVER|RO)|WYMANS"
+  " MILL)|E(?:L(?:K(?: (?:GARDEN|CREEK)|WOOD|TON)|(?:LIST|BER)ON)|A("
+  "?:ST(?: STONE GAP|VILLE)|RLYSVILLE|GLE ROCK)|(?:V(?:ERGREE|INGTO)"
+  "|GGLESTO)N|D(?:WARDSVILLE|INBURG)|(?:HEAR|SMON)T|M(?:PORIA|ORY)|T"
+  "(?:TRICK|LAN)|X(?:ETER|MORE)| STONE GAP|NGLESIDE|BONY|WING)|K(?:I"
+  "(?:N(?:G(?: (?:(?:AND QUEEN COURT HOUS|GEORG)E|QUEEN CH|WILLIAM)|"
+  "STOWNE)|SALE)|LMARNOCK)|E(?:(?:N(?:TS STOR|BRIDG)|YSVILL|OKE)E|E("
+  "?:N(?: MOUNTAIN|E)|ZLETOWN|LING)|SWICK|LLER))|J(?:E(?:FFERSON(?: "
+  "M(?:ANO|N)R|TON)|WELL (?:VALLEY|RIDGE)|NKINS BR(?:IDGE|G)|TERSVIL"
+  "LE|RSEY)|A(?:M(?:ES(?:(?: STOR|VILL)E|TOWN)|AICA)|RRATT|VA)|O(?:R"
+  "DAN MINES|NESVILLE))|V(?:I(?:NT(?: HILL F(?:ARMS|RM)|ON)|RGI(?:NI"
+  "A B(?:EA)?CH|LINA)|E(?:WTOWN|NNA)|LLA(?:MONT|GE)|CTORIA)|E(?:R(?:"
+  "NON HILL|ONA)|S(?:UVIUS|TA)|NIA)|A(?:LENTINES|NSANT)|OLNEY)|O(?:R"
+  "(?:(?:DINAR|ISKAN)Y|KNEY SPRI?NGS|ANGE|LEAN)|AK(?: (?:H[AI]LL|GRO"
+  "VE)|PARK|WOOD|TON)|N(?:ANCOCK|EMO|LEY)|CCOQUAN|ILVILLE|LDHAMS|PHE"
+  "LIA|YSTER)|I(?:N(?:D(?:IAN (?:VALLEY|NECK)|EPENDENCE)|GRAM)|R(?:O"
+  "N(?: GATE|TO)|VINGTON)|V(?:ANHOE|OR|Y)|SLE OF WIGHT)|U(?:N(?:I(?:"
+  "V(?:ERSITY(?: OF RICHMOND)?| OF RICH)|ON(?: HALL|VILLE))|O)|PPERV"
+  "ILLE|RBANNA)|QU(?:I(?:N(?:QUE|TON|BY)|CKSBURG)|ANTICO)|Y(?:A(?:(?"
+  ":NCEY MILL|RD)S|LE)|ORKTOWN)|Z(?:A(?:CATA|NONI)|UNI)))))$"
+  ,
+  /* -- VI -- VI -- VI -- VI -- VI -- VI -- VI -- VI -- VI -- VI -- */
+  "(?:\\b)((?^:(?i:(?:C(?:H(?:ARLOTTE AMA(?:LIE)?|RISTIANSTED)|RUZ B"
+  "AY)|ST (?:THOMAS|CROIX|JOHN)|FREDERIKSTED|KINGSHILL))))$"
+  ,
+  /* -- VT -- VT -- VT -- VT -- VT -- VT -- VT -- VT -- VT -- VT -- */
+  "(?:\\b)((?^:(?i:(?:W(?:E(?:ST(?: (?:B(?:R(?:A(?:TTLEBORO|INTREE)|"
+  "OOKFIELD)|ERLIN|URKE)|D(?:UMMERSTON|ANVILLE|OVER)|C(?:HARLESTON|O"
+  "RNWALL)|HA(?:RTFORD|LIFAX|VEN)|W(?:ARDSBORO|INDSOR)|TO(?:WNSHEND|"
+  "PSHAM)|RU(?:TLAND|PERT)|ARLINGTO?N|MARLBORO|FAIRLEE|NEWBURY|GLOVE"
+  "R|PAWLET)|M(?:INSTER(?: (?:W(?:EST)?|STATION))?|NSTR STA)|F(?:IEL"
+  "|OR)D|ON)|(?:BSTERVILL|YBRIDG)E|LLS(?: RIVER)?)|A(?:TER(?:BURY(?:"
+  " C(?:ENTE|T)R)?|VILLE|FORD)|(?:LLINGFOR|ITSFIEL)D|R(?:DSBORO|REN)"
+  "|SHINGTON)| (?:BR(?:A(?:TTLEBORO|INTREE)|OOKFIELD)|(?:CHARLE|DUMM"
+  "ER)STON|TOWNSHEND|WARDSBORO)|I(?:L(?:LI(?:AMS(?:VILLE|TOWN)|STON)"
+  "|MINGTON|DER)|N(?:D(?:HAM|SOR)|OOSKI))|HIT(?:E RIV(?:ER JUNCTION|"
+  " JCT)|ING(?:HAM)?)|O(?:OD(?:STOCK|BURY|FORD)|RCESTER|LCOTT))|S(?:"
+  "T(?: (?:J(?:HNSBRY CT|OHNSBURY)|ALBANS BAY|GEORGE)|RA(?:TTON(?: M"
+  "(?:(?:OUNTAI|T)N|NT))?|FFORD)|A(?:RKSBORO|MFORD)|O(?:CKBRIDG|W)E)"
+  "|OUTH (?:R(?:OYALTON|EADING|YEGATE)|(?:LONDONDER|DUXBU)RY|B(?:URL"
+  "INGTON|ARRE)|CHITTENDEN|STRAFFORD|WOODSTOCK|NEWFANE|POMFRET|HERO)"
+  "|A(?:INT (?:JOHNSBURY(?: CENTER)?|ALBANS(?: BAY)?|GEORGE)|XTONS R"
+  "IVER|LISBURY|NDGATE)|H(?:E(?:L(?:DON(?: SP(?:RIN)?GS)?|BURNE)|FFI"
+  "ELD)|A(?:FTSBURY|RON)|REWSBURY|OREHAM)| (?:(?:(?:BURLING|ROYAL)TO"
+  "|CHITTENDE)N|LONDONDERRY|STRAFFORD|WOODSTOCK)|U(?:(?:GARBUSH V(?:"
+  "ALLE|L)|DBUR)Y|NDERLAND|TTON)|MUG(?:GLERS NO|LRS N)TCH|PRINGFIELD"
+  "|EARSBURG|WANTON)|E(?:AST (?:C(?:O(?:NCORD|RINTH)|HARLESTON|ALAIS"
+  ")|(?:B(?:(?:ERKSHI|AR)R|URK)|ORANG)E|(?:(?:WALLING|THET)FOR|FAIRF"
+  "IEL)D|(?:SAINT JOHNSBUR|POULTNE)Y|M(?:IDDLEBURY|ONTPELIER)|R(?:AN"
+  "DOLPH|YEGATE)|HA(?:RDWICK|VEN)|DO(?:RSET|VER)|ARLINGTON)| (?:(?:("
+  "?:CHARLE|DUMMER)S|ARLING)TON|(?:WALLINGFOR|FAIRFIEL)D|M(?:IDDLEBU"
+  "RY|ONTPELIER)|ST JOHNSBRY|BERKSHIRE)|SSEX(?: J(?:UNCTION|CT))?|NO"
+  "SBURG F(?:AL)?LS|DEN(?: MILLS)?|LMORE)|N(?:OR(?:T(?:H(?: (?:C(?:("
+  "?:HITTENDE|LARENDO)N|ONCORD)|H(?:YDE PARK|ARTLAND|ERO)|M(?:ONTPEL"
+  "IER|IDDLESEX)|PO(?:MFRET|WNAL)|T(?:HETFORD|ROY)|FERRISBURGH|SPRIN"
+  "GFIELD|BENNINGTON)|F(?:IELD(?: F(?:ALLS|L))?|LD FLS))|ON)|WICH)| "
+  "(?:(?:C(?:HITTENDE|LARENDO)|BENNINGTO)N|(?:SPRINGFIEL|THETFOR)D|M"
+  "(?:ONTPELIER|IDDLESEX)|H(?:YDE PARK|ARTLAND)|FERRISBURGH)|EW(?:PO"
+  "RT(?: C(?:ENTE|T)R)?| HAVEN|BURY|FANE))|B(?:R(?:I(?:D(?:GEW(?:ATE"
+  "R(?: CORNERS)?|TR COR)|PORT)|STOL)|O(?:WN(?:INGTON|SVILLE)|OK(?:F"
+  "IELD|LINE))|A(?:TTLEBORO|INTREE|DFORD|NDON)|DGEWTR CORS|EAD LOAF|"
+  "UNSWICK)|E(?:L(?:VIDERE C(?:ENTE|T)R|LOWS FALLS|MONT)|E(?:CHER FA"
+  "LLS|BE PLAIN)|(?:N(?:NINGT|S)O|RLI)N|THEL)|A(?:R(?:N(?:ARD|ET)|TO"
+  "N|RE)|KERSFIELD|LTIMORE)|O(?:LTON VALLEY|NDVILLE|MOSEEN)|LOOMFIEL"
+  "D|URLINGTON)|M(?:O(?:N(?:T(?:GOM(?:ERY(?: CENTER)?|RY CTR)|PELIER"
+  ")|KTON)|R(?:RIS(?:VILLE|TOWN)|GAN(?: CTR)?|ETOWN)|UNT (?:HOLLY|TA"
+  "BOR|SNOW)|SCOW)|I(?:DDLE(?:T(?:OWN SPRINGS|WN SPG)|SEX(?: C(?:ENT"
+  "E|T)R)?|BURY)|LTON)|A(?:NCHEST(?:(?:ER CENT)?E|R CT)R|R(?:SHFIELD"
+  "|LBORO)|IDSTONE)|C INDOE F(?:AL)?LS|ENDON)|C(?:A(?:MBRIDGE(?:PORT"
+  ")?|(?:STLETO|NAA)N|VENDISH|LAIS|BOT)|H(?:E(?:STER(?: DEPOT)?|LSEA"
+  ")|ITTENDEN|ARLOTTE)|O(?:R(?:NWALL|INTH)|LCHESTER|VENTRY|NCORD)|RA"
+  "FTSB(?:URY(?: C(?:OMMON|M))?|RY CMN)|LAREND(?:ON SPRIN|N SP)GS|(?"
+  ":ENTE|T)R RUTLAND|UTTINGSVILLE)|H(?:A(?:R(?:T(?:LAND(?: (?:FOUR C"
+  "ORNE|CO)RS)?|FORD)|DWICK)|NCOCK)|I(?:GHGATE (?:SPR(?:INGS|G)|C(?:"
+  "ENTE|T)R)|NESBURG)|YDE(?: PARK|VILLE)|UNTINGTON)|G(?:R(?:A(?:N(?:"
+  "(?:(?:ITE)?VIL|D IS)LE|BY)|FTON)|EENSB(?:ORO(?: BEND)?|RO BND)|NS"
+  "BORO BEND|OTON)|UIL(?:DHALL|FORD)|(?:ILMA|OSHE)N|AYSVILLE|LOVER)|"
+  "L(?:O(?:WE(?:R WATERFORD|LL)|NDONDERRY)|YNDON(?: CENTER|VILLE)?|A"
+  "(?:KE ELMOR|NDGROV)E|E(?:ICESTER|MINGTON)|U(?:NENBURG|DLOW)|WR WA"
+  "TERFORD|INCOLN)|P(?:E(?:R(?:KINSVILLE|U)|ACHAM)|O(?:ST MILLS|ULTN"
+  "EY|WNAL)|A(?:SSUMPSIC|NTON|WLET)|L(?:AINFIELD|YMOUTH)|ROCTOR(?:SV"
+  "ILLE)?|ITTSF(?:IEL|OR)D|UTNEY)|R(?:I(?:CH(?:FOR|MON)D|(?:VER|P)TO"
+  "N)|ANDOLPH(?: C(?:ENTE|T)R)?|O(?:CHESTER|XBURY)|EAD(?:SBORO|ING)|"
+  "U(?:TLAND|PERT)|YEGATE)|J(?:E(?:RICHO(?: C(?:ENTE|T)R)?|FFERSONVI"
+  "?LLE)|A(?:Y(?: PEAK)?|CKSONVILLE|MAICA)|O(?:NESVILLE|HNSON))|T(?:"
+  "HETFORD(?: C(?:ENTE|T)R)?|(?:AFTSVILL|UNBRIDG)E|O(?:WNSHEND|PSHAM"
+  ")|INMOUTH|ROY)|F(?:AIR(?:F(?:IELD|AX)| HAVEN|LEE)|(?:OREST DAL|LO"
+  "RENC)E|ERRISBURGH?|RANKLIN)|A(?:D(?:AMANT|DISON)|LB(?:URGH?|ANY)|"
+  "RLINGTON|SCUTNEY|NDOVER|VERILL|THENS)|D(?:AN(?:VILLE|BY)|ERBY(?: "
+  "LINE)?|UMMERSTON|ORSET)|I(?:SL(?:E LA MOTTE|AND POND)|RASBURG)|V("
+  "?:ER(?:GENNES|SHIRE|NON)|ICTORY)|UNDERHILL(?: C(?:ENTE|T)R)?|OR(?"
+  ":LEANS|ANGE|WELL)|KILLINGTON|QUECHEE))))$"
+  ,
+  /* -- WA -- WA -- WA -- WA -- WA -- WA -- WA -- WA -- WA -- WA -- */
+  "(?:\\b)((?^:(?i:(?:S(?:O(?:UTH(?: (?:P(?:ARK VILLAG|RAIRI)E|C(?:L"
+  "E ELUM|OLBY)|BEND|HILL)|WORTH)|AP LAKE)|E(?:A(?:T(?:TLE|AC)|HURST"
+  "|BECK|VIEW)|DRO WOOLLEY|VEN BAYS|QUIM|KIU|LAH)|T(?:E(?:(?:VENSO|H"
+  "EKI)N|ILACOOM|PTOE)|A(?:R(?:BUCK|TUP)|NWOOD)|RATFORD)|P(?:OKANE(?"
+  ": V(?:ALLE|L)Y)?|R(?:INGDAL|AGU)E|AN(?:AWAY|GLE))|U(?:N(?:SET HIL"
+  "L|NYSIDE)|M(?:NER|AS)|QUAMISH|LTAN)|K(?:OK(?:OMISH NATION)?|AMOKA"
+  "WA|YKOMISH)|ILV(?:ER(?:(?:DAL|LAK)E| CREEK)|ANA)|NO(?:QUALMIE(?: "
+  "P(?:AS)?S)?|HOMISH)|A(?:INT JOHN|MMAMISH|LKUM|TSOP)|H(?:AW ISLAND"
+  "|ORELINE|ELTON)| (?:CLE ELUM|PARK VLG))|C(?:O(?:L(?:(?:LEGE PLAC|"
+  "VILL)E|BERT|FAX|TON)|U(?:LEE (?:CITY|DAM)|PEVILLE|GAR)|N(?:C(?:ON"
+  "ULLY|RETE)|NELL|WAY)|PALIS (?:(?:CROSS|X)ING|BEACH)|SMOPOLIS|VING"
+  "TON|WICHE|OK)|A(?:R(?:L(?:SBORG|TON)|(?:NATI|S)ON|BONADO|ROLLS)|M"
+  "(?:A(?:NO ISLAND|S)|P MURRAY)|S(?:TLE ROCK|HMERE)|PITAL ONE|THLAM"
+  "ET)|H(?:E(?:LAN(?: FALLS)?|HALIS|WELAH|NEY)|I(?:MACUM|NOOK)|ATTAR"
+  "OY)|L(?:A(?:(?:RKS|Y)TON|LLAM BAY)|E(?:ARLAKE| ELUM)|YDE HILL|INT"
+  "ON)|I(?:TY OF SPOKANE VALLEY|NEBAR)|U(?:R(?:LEW|TIS)|S(?:ICK|TER)"
+  ")|ENT(?:ERVILLE|RALIA)|TY SPOK VAL|RESTON)|M(?:A(?:R(?:BLEMOUNT|Y"
+  "SVILLE|SHALL|CUS|LIN)|N(?:S(?:FIELD|ON)|CHESTER)|L(?:O(?:NE|TT)?|"
+  "AGA|DEN)|PLE (?:VALLEY|FALLS)|DIGAN HOSP(?:ITAL)?|T(?:LOCK|TAWA)|"
+  "BTON|ZAMA)|O(?:UNT(?:LAKE TER(?:RACE)?| VERNON)|N(?:TESANO|ITOR|R"
+  "OE)|S(?:ES LAKE|SYROCK)|CLIPS|HLER|RTON|XEE)|E(?:T(?:ALINE(?: F(?"
+  ":AL)?LS)?|HOW)|(?:RCER ISLAN|A)D|DI(?:CAL LAKE|NA)|NLO|SA)|I(?:L("
+  "?:L(?: CREEK|WOOD)|TON)|NERAL|CA)|C(?:C(?:HORD AFB|LEARY)|KENNA)|"
+  "UKILTEO)|B(?:E(?:L(?:L(?:INGHAM|EVUE)|FAIR|MONT)|A(?:UX ARTS|VER)"
+  "|N(?:TON CITY|GE)|VERLY|THEL)|R(?:I(?:DGEPORT|NNON|ER)|E(?:MERTON"
+  "|WSTER)|USH PRAIRIE|OWNSTOWN)|U(?:R(?:L(?:INGTON|EY)|(?:IE|TO)N|B"
+  "ANK)|C(?:KLEY|ODA)|ENA)|A(?:INBRIDGE IS(?:LAND)?|TTLE GROUND|Y CE"
+  "NTER|RING)|LA(?:KELY IS(?:LAND)?|CK DIAMOND|INE)|O(?:NNEY LAKE|TH"
+  "ELL|YDS|W)|I(?:CKLETO|NGE)N)|L(?:A(?:KE(?: (?:(?:STEVEN|TAPP)S|FO"
+  "REST PARK)|WOOD|BAY)| (?:C(?:ENT|ONN)ER|GRANDE|PUSH)|C(?:ROSSE|EY"
+  ")|MON[AT]|NGLEY|URIER|TAH)|O(?:NG(?:(?: BEA|BRAN)CH|MIRE|VIEW)|O("
+  "?:N LAKE|MIS)|PEZ ISLAND|WDEN)|I(?:N(?:COLN|D)|BERTY LAKE|TTLEROC"
+  "K|LLIWAUP)|Y(?:N(?:NWOOD|DEN)|MAN|LE)|E(?:AVENWORTH|BAM)|K FOREST"
+  " PK|UMMI ISLAND)|W(?:A(?:L(?:L(?:A WAL|U)LA|DRON)|SH(?:OUGAL|TUCN"
+  "A)|U(?:COND|N)A|TERVILLE|HKIACUS|ITSBURG|VERLY|PATO|RDEN)|I(?:L(?"
+  ":SON CREEK|KESON|BUR)|N(?:THROP|LOCK)|SHRAM)|HI(?:DBEY ISLAND NAV"
+  "AL AIR|TE S(?:ALMO|WA)N)|E(?:ST(?: RICHLAND|PORT)|LLPINIT|NATCHEE"
+  ")|OOD(?:INVILLE|LAND|WAY))|P(?:A(?:R(?:K(?:LAND|ER)|ADISE INN)|C("
+  "?:IFIC(?: BEACH)?|KWOOD)|L(?:ISADES|OUSE)|TER(?:SON|OS)|SCO)|O(?:"
+  "RT (?:(?:TOWNSEN|ORCHAR)D|ANGELES|HADLOCK|GAMBLE|LUDLOW)|INT ROBE"
+  "RTS|MEROY|ULSBO)|R(?:ES(?:COTT|TON)|OSSER)|E(?:SHASTIN| ELL)|U(?:"
+  "YALLUP|LLMAN)|L(?:YMOUTH|AZA))|R(?:O(?:C(?:K(?:(?: ISLAN|FOR)D|PO"
+  "RT)|HE(?: HARBO|STE)R)|(?:(?:YAL CIT)?|LLINGBA)Y|S(?:ALIA|BURG|LY"
+  "N)|OSEVELT|NALD)|E(?:D(?:MOND|ONDO)|(?:ARDA|NTO)N|PUBLIC|TSIL)|I("
+  "?:(?:TZVILL|VERSID)E|C(?:HLAND|E)|DGEFIELD)|A(?:(?:VENSDA|ND)LE|I"
+  "NIER|YMOND)|YDERWOOD|USTON)|N(?:O(?:R(?:TH(?: (?:B(?:ONNEVILLE|EN"
+  "D)|LAKEWOOD)|PORT)|MANDY PARK|DLAND)|OKSACK)|E(?:W(?:(?:MAN LAK|C"
+  "ASTL)E|PORT)|AH BAY|SPELEM|ILTON)|A(?:S(?: WHIDBEY|ELLE)|HCOTTA|P"
+  "AVINE|CHES)| (?:BONNEVILLE|LAKEWOOD)|INE MILE F(?:AL)?LS)|E(?:A(?"
+  ":ST(?: (?:WENATCHEE|OLYMPIA)|SOUND|ON)|TONVILLE)|L(?:M(?:ER CITY|"
+  "A)|ECTRIC CITY|LENSBURG|TOPIA|BE|K)|N(?:(?:DICOT|TIA)T|UMCLAW)|D("
+  "?:GEWOOD|MONDS|WALL)|V(?:ER(?:ETT|SON)|ANS)|(?:SPANOL|PHRAT)A| WE"
+  "NATCHEE|THEL)|G(?:R(?:A(?:N(?:D(?: COULEE|VIEW)|ITE FALLS|GER)|Y("
+  "?:S RIVER|LAND)|PEVIEW|HAM)|EEN(?:ACRES|BANK))|O(?:LD(?:ENDALE| B"
+  "AR)|OSE PRAIRIE|RST)|LE(?:N(?:WOOD|OMA)|ED)|I(?:G HARBOR|FFORD)|A"
+  "(?:RFIELD|LVIN)|EORGE)|A(?:N(?:DERSON IS(?:LAND)?|A(?:CORTES|TONE"
+  "))|L(?:(?:GON|MIR)A|(?:BIO|LY)N)|R(?:DENVOIR|LINGTON|IEL)|(?:BERD"
+  "EE|PPLETO|UBUR)N|IRWAY H(?:EIGH|G)TS|M(?:ANDA PARK|BOY)|S(?:HFORD"
+  "|OTIN)|D(?:DY|NA)|CME)|O(?:AK(?:(?:ESDA|VIL)LE| HARBOR|BROOK)|R(?"
+  ":O(?:VILLE|NDO)|IENT|TING|CAS)|(?:L(?:YMPI|ALL|G)|NALASK|DESS)A|C"
+  "EAN (?:SHORES|CITY|PARK)|T(?:IS ORCHARDS|HELLO)|(?:UTLOO|MA)K|YST"
+  "ERVILLE|KANOGAN)|F(?:A(?:IR(?:CHILD A(?:IR FORCE BASE|FB)|FIELD)|"
+  "RMINGTON|LL CITY)|O(?:R(?:(?:T LEWI|K)S|D)|UR LAKES|X ISLAND)|R(?"
+  ":(?:UIT|EE)LAND|IDAY HARBOR)|E(?:DERAL WAY|RNDALE)|I(?:RCREST|FE)"
+  "|T LEWIS)|T(?:O(?:U(?:CHET|TLE)|PPENISH|KELAND|NASKET|LEDO)|U(?:M"
+  "(?:WATER|TUM)|KWILA|LALIP)|R(?:I CITIES|OUT LAKE|ACYTON)|A(?:H(?:"
+  "OLAH|UYA)|COMA)|E(?:NINO|KOA)|HOR(?:NTON|P)|IETON|WISP)|D(?:E(?:E"
+  "R (?:MEADOWS|HARBOR|PARK)|S(?:ERT AIRE| MOINES)|MING)|A(?:(?:LLES"
+  "|VEN)PORT|(?:RRING|Y)TON|NVILLE)|I(?:AMOND|XIE)|U(?:PONT|VALL)|RY"
+  "DEN|OTY)|H(?:A(?:R(?:R(?:INGTON|AH)|TLINE)|(?:MIL|T)TON|NSVILLE|Y"
+  ")|U(?:NT(?:S POINT|ERS)|MPTULIPS|SUM)|O(?:O(?:DSPORT|PER)|QUIAM|B"
+  "ART|ME)|EISSON)|K(?:E(?:N(?:NEWICK|MORE|T)|L(?:LER|SO)|TTLE FALLS"
+  "|YPORT)|I(?:NGSTON|RKLAND|TTITAS)|A(?:HLOTUS|POWSIN|LAMA)|LICKITA"
+  "T)|V(?:A(?:N(?:COUVER|TAGE)|LLEY(?:FORD)?|(?:SHO|UGH)N|DER)|ERADA"
+  "LE)|U(?:N(?:I(?:VERSITY PL(?:ACE)?|ON(?: GAP|TOWN)?)|DERWOOD)|SK)"
+  "|I(?:N(?:D(?:IANOLA|EX)|CHELIUM)|SSAQUAH|LWACO|ONE)|Y(?:A(?:(?:RR"
+  "OW POIN|COL)T|KIMA)|ELM)|QUI(?:N(?:AULT|CY)|LCENE)|ZILLAH|JOYCE))"
+  "))$"
+  ,
+  /* -- WI -- WI -- WI -- WI -- WI -- WI -- WI -- WI -- WI -- WI -- */
+  "(?:\\b)((?^:(?i:(?:S(?:T(?:O(?:CK(?:BRIDGE|HOLM)|NE LAKE|UGHTON|D"
+  "DARD)|E(?:VENS POINT|TSONVILLE|UBEN)|A(?:R (?:PRAIRI|LAK)E|NLEY)|"
+  " (?:CROIX FL|FRANCI)S|UR(?:GEON BAY|TEVANT)|R(?:ATFORD|UM)|I(?:TZ"
+  "ER|LES))|A(?:INT (?:C(?:ROIX FALLS|LOUD)|FRANCIS|GERMAIN|NAZIANZ)"
+  "|L(?:V(?:ATORIAN CENTE|TRIAN CT)R|EM)|N(?:D CREEK|BORN)|UK(?: CIT"
+  "Y|VILLE)|X(?:EVILLE|ON)|RONA|YNER)|H(?:E(?:BOYGAN(?: F(?:AL)?LS)?"
+  "|L(?:L LAKE|DON)|RWOOD)|A(?:WANO|RON)|ULLSBURG|OREWOOD|IOCTON)|O("
+  "?:UTH (?:(?:MILWAUKE|RANG|WAYN)E|BYRON)|L(?:DIERS? GROVE|ON SPRIN"
+  "GS)|MERS(?:ET)?|BIESKI)|P(?:RING(?: (?:VALLEY|GREEN)|BROOK|FIELD)"
+  "|(?:ENC|OON)ER|ARTA)|U(?:(?:MMIT LAK|N PRAIRI)E|LLIVAN|PERIOR|AMI"
+  "CO|RING|SSEX)|I(?:LVER (?:CLIFF|LAKE)|STER BAY|NSINAWA|REN)|E(?:X"
+  "TONVILLE|YMOUR|NECA)|C(?:ANDINAVIA|HOFIELD)| MILWAUKEE|LINGER)|B("
+  "?:A(?:R(?:NE(?:VELD|S)|RON(?:ETT)?|ABOO)|Y(?: (?:CITY|VIEW)|FIELD"
+  "|SIDE)|ILEYS H(?:ARBO|B)R|L(?:SAM LAKE|DWIN)|N(?:CROFT|GOR)|BCOCK"
+  "|SSETT|GLEY)|R(?:O(?:WN(?:SVILLE| DEER|TOWN)|OK(?:FIELD|LYN|S)|DH"
+  "EAD|KAW)|I(?:LL(?:ION)?|GGSVILLE|STOL)|AN(?:TWOOD|DON|CH)|U(?:SSE"
+  "LS|[CL]E)|YANT)|E(?:L(?:(?:LEV(?:ILL|U)|DENVILL)E|(?:MON|OI)T|GIU"
+  "M)|N(?:(?:NET|OI)T|ET LAKE|TON)|A(?:VER(?: DAM)?|R CREEK)|(?:ETOW"
+  "|RLI)N)|L(?:A(?:CK (?:RIVER FALLS|CREEK|EARTH)|NCHARDVI?LLE|IR)|O"
+  "OM(?:INGTON| CITY|ER)|UE (?:MOUNDS|RIVER)|K RIVER FLS|ENKER)|U(?:"
+  "T(?:TE(?: DES MORTS|RNUT)|LER)|R(?:LINGTON|NETT)|FFALO CITY)|O(?:"
+  "ULDER J(?:UNCTION|CT)|(?:SCOB|NDU)EL|Y(?:CEVILLE|D)|WLER)|I(?:G ("
+  "?:FALLS|BEND)|R(?:NAM|CH)WOOD)|TE DES MORTS|YRON)|M(?:A(?:R(?:I(?"
+  ":NETTE|BEL|ON)|SH(?:FIELD|ALL)|(?:ATHO|KESA)N|QUETTE|ENGO)|N(?:IT"
+  "OW(?:ISH WATERS|SH WTR|OC)|CHESTER|AWA)|(?:ZOMANI|YVILL|LON)E|(?:"
+  "(?:DI)?S|UST)ON|T(?:TOON|HER)|PLE(?:WOOD)?|IDEN ROCK)|O(?:N(?:T(?"
+  ":(?:IC)?ELLO|FORT|REAL)|DOVI|ICO|ONA|ROE)|UNT(?: (?:HO(?:REB|PE)|"
+  "STERLING|CALVARY)|AIN)|(?:RRISONVILL|SINE)E|DENA|QUAH)|I(?:L(?:L("
+  "?:(?:STO|TOW)N|ADORE)|(?:TO|A)N|WAUKEE)|N(?:O(?:CQUA|NG)|ERAL POI"
+  "NT|DORO)|DDLE(?: INLET|TON)|SHICOT|KANA)|E(?:N(?:OMON(?:EE F(?:AL"
+  ")?LS|IE)|ASHA)|R(?:RI(?:LL(?:AN)?|MAC)|CER|TON)|D(?:FORD|INA)|L(?"
+  ":ROSE|LEN)|QUON)|U(?:S(?:CODA|KEGO)|KWONAGO)|C (?:NAUGHTON|FARLAN"
+  "D)|T STERLING)|W(?:A(?:U(?:(?:[BZ]EK|WATOS|TOM)A|(?:MAND|NAK)EE|K"
+  "(?:ESHA|AU)|P(?:ACA|UN)|SAU(?:KEE)?)|S(?:H(?:INGTON IS(?:LAND)?|B"
+  "URN)|COTT)|TER(?:FORD|TOWN|LOO)|L(?:WORTH|DO|ES)|RRENS|BENO)|I(?:"
+  "N(?:NE(?:CONNE|BAGO)|D(?: LAKE|SOR)|(?:CHES)?TER)|L(?:L(?:IAMS BA"
+  "Y|ARD)|D ROSE|[ST]ON|MOT)|SC(?:ONSIN)? (?:RAPID|DELL)S|T(?:TENBER"
+  "G|HEE))|E(?:ST(?: (?:MILWAUKEE|ALLIS|SALEM|BEND|LIMA)|B(?:ORO|Y)|"
+  "FIELD|PORT|ON)|Y(?:ERHAEUSER|AUWEGA)|B(?:B LAKE|STER)|NTWORTH)|O("
+  "?:OD(?:(?:FOR|LAN)D|VILLE|WORTH|RUFF|MAN)|NEWOC)|H(?:ITE(?:FISH B"
+  "AY| LAKE|WATER|HALL|LAW)|EELER)|Y(?:EVILLE|OCENA)| MILWAUKEE|RIGH"
+  "TSTOWN)|C(?:A(?:M(?:P(?: (?:DOUGLAS|LAKE)|BELLSPORT)|BRI(?:DGE|A)"
+  "|ERON)|S(?:C(?:ADE|O)|SVILLE|HTON)|T(?:A(?:RACT|WBA)|O)|(?:LEDON|"
+  "ZENOV)IA|(?:ROLIN|BL)E|DOTT|NTON|VOUR)|O(?:L(?:(?:UMBU|LIN)S|EMAN"
+  "|GATE|FAX|OMA|BY)|M(?:BINED LO?CKS|STOCK)|(?:TTAGE GROV|CHRAN)E|("
+  "?:ON VALLE|UDERA)Y|RN(?:UCOPIA|ELL)|N(?:OVER|RATH)|BB)|L(?:A(?:M "
+  "(?:FALLS|LAKE)|YTON)|E(?:AR LAKE|VELAND)|INTON(?:VILLE)?|YMAN)|H("
+  "?:I(?:PPEWA F(?:AL)?LS|L(?:TON|I))|E(?:LSEA|TEK)|ASEBURG)|U(?:(?:"
+  "BA CIT|DAH)Y|S(?:HING|TER)|MBERLAND|RTISS|TLER)|E(?:DAR(?: GROVE|"
+  "BURG)|NTURIA|CIL)|R(?:OSS PLAINS|ANDON|IVITZ))|P(?:O(?:RT(?: (?:W"
+  "(?:ASHINGTON|ING)|EDWARDS)|ERFIELD|AGE)|Y(?: SIPPI|NETTE)|T(?:OSI"
+  "|TER)|WERS LAKE|PLAR|SKIN|UND)|R(?:AIRIE (?:DU (?:CHIEN|SAC)|FARM"
+  ")|E(?:S(?:QUE ISLE|COTT)|NTICE)|(?:T WASHINGT|INCETO)N| DU (?:CHI"
+  "EN|SAC))|L(?:A(?:IN(?:FIELD)?|TTEVILLE)|EASANT PR(?:AIRIE)?|UM CI"
+  "TY|YMOUTH|OVER)|E(?:(?:L(?:ICAN|L) LAK|WAUKE|MBIN|NC)E|(?:ARSO|PI"
+  ")N|SHTIGO)|A(?:(?:TCH GROV|CKWAUKE)E|R(?:DEEVILLE|K FALLS)|LMYRA)"
+  "|I(?:CKE(?:REL|TT)|GEON FALLS|NE RIVER|TTSVILLE)|H(?:(?:ILLI|EL)P"
+  "S|LOX)|UL(?:CIFER|ASKI))|H(?:A(?:R(?:T(?:FOR|LAN)D|SHAW)|N(?:NIBA"
+  "L|COCK|OVER)|ZEL(?: GREEN|HURST)|(?:GER CIT|TLE)Y|W(?:THORNE|KINS"
+  ")|M(?:BURG|MOND)|LES CORNERS|(?:UG|V)EN|YWARD)|O(?:L(?:(?:LANDAL|"
+  "COMB)E|MEN)|R(?:TONVILLE|ICON)|WARD(?:S GROVE)?|NEY CREEK|ULTON|B"
+  "ART)|I(?:L(?:L(?:S(?:BORO|DALE)|POINT)|BERT|ES)|GH(?: ?BRIDGE|LAN"
+  "D)|NGHAM|XTON)|E(?:AFFORD J(?:UNCTION|CT)|R(?:BSTER|TEL)|LENVILLE"
+  "|WITT)|U(?:ST(?:ISFORD|LER)|BERTUS|MBIRD|DSON|RLEY))|L(?:A(?:KE(?"
+  ": (?:(?:NEBAGAM|DELT)ON|TOMAHAWK|GENEVA|MILLS)|WOOD)| (?:CROSS|PO"
+  "INT|FARG|VALL)E|N(?:D O LAKES|CASTER|NON)|C DU FLAMB(?:EA)?U|DYSM"
+  "ITH|RSEN|ONA)|I(?:(?:(?:VINGST|SB)O|NDE)N|TTLE (?:SUAMICO|CHUTE)|"
+  "ME RIDGE|LY)|O(?:N(?:E ROCK|G LAKE)|(?:RETT|MIR)A|(?:WEL|YA)L|GAN"
+  "VILLE|DI)|Y(?:N(?:DON STA(?:TION)?|XVILLE)|ONS)|E(?:(?:OPOL|W)IS|"
+  "BANON|NA)|U(?:XEMBURG|BLIN|CK)|K NEBAGAMON|TL SUAMICO)|A(?:R(?:(?"
+  ":G(?:ONN|YL)|BOR VITA)E|MSTRONG CR(?:EE)?K|K(?:ANSAW|DALE)|(?:LIN"
+  "GTO|PI)N|(?:CADI|EN)A)|L(?:M(?:A(?: CENTER)?|ENA|OND)|L(?:ENTON|O"
+  "UEZ)|(?:TOON|GOM)A|BANY|VIN)|M(?:HERST(?: J(?:UNCTION|CT))?|BERG|"
+  "ERY)|SH(?:(?:WAUBENO|IPPU)N|LAND)|U(?:BURNDALE|GUSTA)|B(?:BOTSFOR"
+  "D|RAMS)|THE(?:LSTANE|NS)|(?:PPLE|F)TON|N(?:TIGO|IWA)|V(?:ALON|OCA"
+  ")|D(?:AMS|ELL))|G(?:R(?:E(?:EN(?: (?:(?:VALLE|BA)Y|LAKE)|(?:FIEL|"
+  "WOO)D|(?:VIL|DA)LE|BUSH|LEAF)|SHAM)|A(?:N(?:D (?:CHUTE|MARSH|VIEW"
+  ")|T(?:SBURG|ON))|FTON|TIOT))|L(?:E(?:N(?: (?:FLORA|HAVEN)|WOOD CI"
+  "TY|BEULAH|DALE)|ASON)|IDDEN)|E(?:N(?:OA(?: CITY)?|ESEE DEPOT)|RMA"
+  "NTOWN)|A(?:L(?:ESVILLE|LOWAY)|YS MILLS)|IL(?:MA(?:NTO)?N|LETT|E)|"
+  "O(?:(?:ODMA|RDO)N|THAM)|URNEY)|R(?:I(?:C(?:H(?:LAND C(?:ENTE|T)R|"
+  "FIELD)|E LAKE)|VER (?:FA|HI)LLS|DGE(?:LAND|WAY)|(?:B LAK|NGL)E|O("
+  "?: CREEK)?|PON)|O(?:C(?:K(?: (?:SPRING|FALL)S|(?:FIEL|LAN)D)|HEST"
+  "ER)|S(?:ENDALE|HOLT)|THSCHILD|YALTON|BERTS)|E(?:E(?:DS(?:VILLE|BU"
+  "RG)|SEVILLE)|AD(?:FIELD|STOWN)|DGRANITE|WEY)|A(?:NDO(?:M LAKE|LPH"
+  ")|DISSON|CINE)|U(?:BICON|DOLPH)|HINELANDER)|F(?:O(?:R(?:EST(?: J("
+  "?:UNCTION|CT)|VILLE)|T (?:ATKINSON|MCCOY))|X(?: (?:POINT|LAKE)|BO"
+  "RO)|N(?:D DU LAC|TANA)|UNTAIN CITY|OTVILLE)|R(?:AN(?:K(?:SVILLE|L"
+  "IN)|CIS CREEK)|E(?:D(?:ERIC|ONIA)|EDOM|MONT)|IE(?:NDSHIP|SLAND))|"
+  "A(?:LL (?:CREEK|RIVER)|IR(?:CHILD|WATER))|E(?:N(?:(?:NIMOR|C)E|WO"
+  "OD)|RRYVILLE)|I(?:SH CREEK|TCHBURG|FIELD)|LORENCE)|N(?:E(?:W(?: ("
+  "?:(?:(?:HOLSTE|BERL)I|L(?:ISB|OND)O|FRANKE|AUBUR)N|RICHMOND|MUNST"
+  "ER|GLARUS|POST)|BURG|ALD|TON)|L(?:SON(?:VILLE)?|MA)|(?:CED|EN)AH|"
+  "O(?:PIT|SHO)|ILLSVILLE|SHKORO|KOOSA)|OR(?:TH(?: (?:F(?:OND DU LAC"
+  "|REEDOM)|(?:PRAIRI|LAK)E|WOODS BEACH)|FIELD)|WALK)| (?:FOND DU LA"
+  "C|WOODS BEACH)|A(?:SHOTAH|VARINO)|I(?:AGARA|CHOLS))|E(?:L(?:K(?:H"
+  "(?:ART LAKE|ORN)| MOUND)|L(?:ISON BAY|SWORTH)|M(?: GROVE|WOOD)|D("
+  "?:ORADO|ERON)|AND|CHO|EVA|ROY|TON)|A(?:ST(?: (?:ELLSWORTH|TROY)|M"
+  "AN)|U (?:CLAIR|GALL)E|GLE(?: RIVER)?)|D(?:G(?:E(?:WATER|RTON)|AR)"
+  "|MUND|EN)|(?:GG HARB|NDEAV)OR|M(?:BARRASS|ERALD)| ELLSWORTH|VANSV"
+  "ILLE|PHRAIM|TTRICK|XELAND|UREKA)|D(?:E(?:L(?:A(?:FIELD|VAN)|LWOOD"
+  "|TA)|ER(?:(?: PAR|BROO)K|FIELD)| (?:FOREST|PERE|SOTO)|NMARK|RONDA"
+  ")|O(?:(?:YLESTOW|USMA)N|WN(?:SVILLE|ING)|DG(?:EVILL)?E|RCHESTER)|"
+  "A(?:R(?:LINGTO|IE)N|L(?:LAS|TON|E)|N(?:BURY|E)|IRYLAND)|R(?:UMMON"
+  "D|ESSER)|U(?:NBAR|RAND)|ICKEYVILLE)|T(?:H(?:IENSVILLE|REE LAKES|E"
+  "RESA|ORP)|I(?:SCH MILLS|GERTON|LLEDA|PLER)|R(?:E(?:MPEALEAU|VOR|G"
+  "O)|IPOLI)|O(?:MAH(?:AWK)?|WNSEND|NY)|U(?:NNEL CITY|RTLE LAKE)|W(?"
+  ":IN LAKE|O RIVER)S|AY(?:CHEEDAH|LOR))|O(?:CON(?:TO(?: FALLS)?|OMO"
+  "WOC)|N(?:(?:ALASK|EID)A|TARIO)|AK(?: CREEK|FIELD|DALE)|S(?:CEOLA|"
+  "HKOSH|SEO)|R(?:FORDVILLE|EGON)|G(?:DENSBURG|EMA)|KAUCHEE|OSTBURG|"
+  "DANAH|JIBWA|XFORD|MRO|WEN)|K(?:E(?:N(?:DALL|OSHA|NAN)|WA(?:SKUM|U"
+  "NEE)|LLNERSVILLE|MPSTER|SHENA)|I(?:NG(?:STON)?|EL(?:ER)?|MBERLY)|"
+  "A(?:NSASVILLE|UKAUNA)|N(?:OWLES|APP)|OHLER|RAKOW)|J(?:U(?:N(?:CTI"
+  "ON CITY|EAU)|MP RIVER|DA)|A(?:NESVILLE|CKSON)|OHNSON CREEK|EFFERS"
+  "ON|IM FALLS)|I(?:R(?:ON (?:RI(?:DGE|VER)|BELT)|MA)|N(?:DEPENDENCE"
+  "|GRAM)|(?:XONI|OL)A)|V(?:I(?:(?:ROQU|OL)A|CTORY)|E(?:R(?:NON|ONA)"
+  "|SPER)|A(?:N DYNE|LDERS))|U(?:N(?:I(?:ON (?:CENTER|GROVE)|TY)|DER"
+  "HILL)|PSON)|Y(?:ELLOW LAKE|UBA)|Z(?:ACHOW|ENDA)))))$"
+  ,
+  /* -- WV -- WV -- WV -- WV -- WV -- WV -- WV -- WV -- WV -- WV -- */
+  "(?:\\b)((?^:(?i:(?:S(?:T(?:O(?:(?:UTS MILL|LLING)S|N(?:Y BOTTOM|E"
+  "WOOD))|A(?:N(?:DING STONE|AFORD)|TTS MILLS|R CITY)|R(?:ANGE CREEK"
+  "|EETER)|(?:EPHENSO|UMPTOW)N|I(?:CKNEY|RRAT)|NDG STONE)|A(?:N(?:D("
+  "?: (?:RIDGE|FORK)|(?:YVILL|STON)E)|OMA)|INT (?:(?:ALBAN|MARY)S|GE"
+  "ORGE)|L(?:T(?: ROCK|WELL)|EM)|(?:R(?:AH AN|TO)|XO)N|(?:ULSVILL|BI"
+  "N)E|M BLACK)|H(?:E(?:N(?:ANDOAH JUNCTION|DOAH JCT)|(?:PHERDSTOW|R"
+  "MA)N)|O(?:RT (?:CREEK|GAP)|ALS|CK)|A(?:(?:RPLE|NK)S|DY SPRING)|I("
+  "?:(?:RLE|VEL)Y|NNSTON)|REWSBURY)|P(?:R(?:I(?:NG(?: (?:VALLEY|DALE"
+  "|HILL)|FIELD)|GG)|AGUE)|E(?:LT|NC)ER|URLOCKVILLE|ANISHBURG)|U(?:M"
+  "(?:M(?:ER(?:SVILL|LE)E|IT POINT)|ERCO)|(?:PERI|RVEY)OR|GAR GROVE|"
+  "NDIAL|TTON)|O(?:M(?:MERVILLE FO|ERVLLE F)RK|UTH(?: CHARLESTON|SID"
+  "E)|PHIA|D)|I(?:(?:S(?:TERS|SON)VILL|NKS GROV)E|M(?:PS)?ON|AS)|W(?"
+  ":I(?:T(?:CHBACK|ZER)|SS)|EET(?: SPRINGS|LAND))|E(?:NECA ROCKS|CON"
+  "DCREEK|LBYVILLE|EBERT|TH)|M(?:ITH(?:FIELD|VILLE|BURG|ERS)|OOT)|LA"
+  "(?:(?:B |TY)FORK|NESVILLE)|C(?:OTT DEPOT|ARBRO|HERR)|K(?:YGUSTY|E"
+  "LTON)|(?:NOWSHO|QUIR)E| CHARLESTON|YLVESTER)|B(?:E(?:L(?:L(?:(?:E"
+  "VILL)?E|BURN|WOOD)|INGTON|GIUM|MONT|VA)|R(?:KELEY SP(?:RIN)?GS|WI"
+  "ND|GOO|EA)|N(?:S RUN|TREE|WOOD)|E(?:CH BOTTOM|SON)|A(?:RDS FORK|V"
+  "ER)|TH(?:LEHEM|ANY)|CK(?:WITH|LEY)|VERLY)|R(?:A(?:N(?:D(?:ONVILL|"
+  "YWIN)E|CHLAND)|D(?:SHAW|LEY)|MWELL)|U(?:CETON M(?:IL)?LS|SHY FORK"
+  "|NO)|O(?:WN(?:SVILLE|TON)|HARD|OKS)|E(?:(?:EDE|NTO)N|TZ)|I(?:DGEP"
+  "ORT|STOL))|A(?:R(?:R(?:ACKVILLE|ETT)|T(?:LEY|OW)|BOURSVILLE|NABUS"
+  ")|L(?:D(?: KNOB|WIN)|L(?:ENGEE|ARD))|N(?:DYTOWN|CROFT)|KER(?:TON)"
+  "?|ISDEN|XTER|YARD)|L(?:A(?:CK(?:BERRY CITY|SVILLE)|NDVILLE|IR)|UE"
+  "(?: (?:CREEK|GOOSE|JAY)|FIELD|WELL)|O(?:OM(?:INGROSE|ERY)|UNT)|CK"
+  "BERRY CTY)|I(?:G (?:C(?:HIMNEY|REEK)|S(?:PRINGS|ANDY)|OTTER|BEND|"
+  "RUN)|(?:NGHA)?M|RCH RIVER|CKMORE)|U(?:R(?:N(?:(?:T HOUS|SVILL)E|W"
+  "ELL)|(?:LING)?TON)|CK(?:HANNON|EYE)|NKER HILL|FFALO|D)|O(?:O(?:ME"
+  "R|TH)|(?:MON|L)T|RDERLAND|B WHITE|WDEN|GGS|ZOO))|C(?:O(?:AL(?: (?"
+  ":MOUNTAIN|CITY)|DALE|WOOD|TON)|R(?:[AE]|IN(?:NE|TH)|L(?:ISS|EY)|T"
+  "ON)|L(?:DWATER CREEK|LIERS|CORD|FAX)|(?:TT(?:AGEVIL)?L|OL RIDG)E|"
+  "(?:[PW]E|BUR)N|VE(?: GAP|L)|UNTRY CLUB|XS MILLS|MFORT|STA)|A(?:M("
+  "?:DEN(?: ON G(?:AULE|L)Y)?|P CREEK|ERON)|N(?:AAN VALLEY|EBRAKE|NE"
+  "LTON|VAS)|P(?:ON (?:SPRINGS|BRIDGE)|ELS)|R(?:(?:OLIN|ETT)A|BON)|S"
+  "(?:S(?:VILLE)?|CADE)|BIN(?: CREEK|S)|L(?:DWELL|VIN)|IRO)|H(?:A(?:"
+  "R(?:L(?:TON H(?:EIGH|G)TS|ES(?: TOW|TO)N)|MCO)|P(?:MANVILLE|EL)|("
+  "?:TTARO|UNCE)Y)|E(?:RRY RUN|STER)|LOE)|R(?:A(?:IG(?:SVILL|MOOR)E|"
+  "W(?:FORD|LEY)|B ORCHARD)|O(?:SS LANES|WN HILL)|(?:ICH|ES)TON|UM(?"
+  ":PLER)?)|L(?:E(?:AR (?:CREE|FOR)K|NDENIN|VELAND|M)|I(?:F(?:FTOP|T"
+  "ON)|NTONVILLE|O)|A(?:RKSBURG|Y)|OTHIER)|E(?:NT(?:ER POINT|RALIA|U"
+  "RY)|DAR(?: GROV|VILL)E|REDO)|U(?:(?:LLODE|RTI)N|CUMBER|ZZART|NARD"
+  ")|(?:IRCLEVILL|YCLON)E)|M(?:A(?:R(?:TINSBURG|FRANCE|LINTON|IANNA|"
+  "MET)|(?:(?:XWELT|DIS)O|SO(?:NTOW)?)N|T(?:H(?:ENY|IAS)|EWAN|OAKA)|"
+  "Y(?:S(?:VILLE|EL)|BEURY)|C(?: ARTHUR|FARLAN)|N(?:NINGTON|HEIM)?|P"
+  "LE(?: LAKE|WOOD)|B(?:SCOTT|EN|IE)|L(?:LORY|DEN)|H(?:ONE|AN)|IDSVI"
+  "LLE|MMOTH)|O(?:UN(?:T(?: (?:C(?:ARBON|LARE)|(?:OLIV|HOP)E|(?:ALT|"
+  "NEB)O|LOOKOUT|STORM|ZION|GAY)|AIN)|DSVILLE)|N(?:T(?:(?:ERVILL|ROS"
+  ")E|C(?:ALM|OAL)|ANA MINES|GOMERY)|AVILLE|ONGAH)|R(?:GANTOWN|RISVA"
+  "LE)|ATSVILLE|OREFIELD|HAWK|YERS|ZART)|I(?:N(?:E(?:HAHA SPG|RAL WE"
+  "LL)S|N(?:EHAHA SPRINGS|ORA)|DEN|GO)|L(?:L(?: (?:CREEK|POINT)|(?:S"
+  "TON|VILL)E|WOOD)|TON|AM)|D(?:DLE(?:BOURNE|WAY)|KIFF|WAY)|AMI)|E(?"
+  ":AD(?:O(?:W(?: (?:B(?:RIDGE|LUFF)|CREEK)|BROOK)|R))?|DLEY|TZ)|C(?"
+  ": (?:CO(?:NNELL|MAS)|DOWELL|GRAWS)|(?:MECHE|ALPI)N|WHORTER)|U(?:R"
+  "RAYSVILLE|LLENS|NDAY)|YR(?:TLE|A))|W(?:I(?:L(?:L(?:IAMS(?:(?:TOW|"
+  "O)N|BURG)|OW (?:ISLA|BE)ND)|S(?:ON(?:BURG|DALE)?|IE)|EY(?: FORD|V"
+  "ILLE)|KINSON|DCAT|BUR|COE)|N(?:D(?:SOR (?:HEIG)?HTS|ING GULF)|IFR"
+  "EDE|FIELD|ONA)|TCHER|DEN|CK)|H(?:IT(?:E(?: (?:SULPHUR SPRINGS|HAL"
+  "L|DAY|OAK)|SVILLE|HALL)|M(?:AN|ER)|TAKER|BY)|T S(?:ULPHUR (?:SPG)"
+  "?|PHR SPG)S|AR(?:NCLIFFE|TON)|EELING)|A(?:L(?:KER(?:SVILLE)?|L(?:"
+  "BACK|ACE)|TON)|R(?:(?:DENSVILL|RIORMIN)E|WOOD)?|(?:Y(?:SID|N)|ITE"
+  "VILL)E|(?:SHINGTO|DESTOW)N|VERLY|NA)|E(?:ST(?: (?:L(?:IBERTY|OGAN"
+  ")|(?:HAMLI|UNIO)N|COLUMBIA|MILFORD)|O(?:VER|N))|BSTER SP(?:RIN)?G"
+  "S|L(?:LSBURG|CH)|IRTON|NDEL)|O(?:LF(?: (?:SUMMIT|PEN)|CREEK|E)|O("
+  "?:LLY BUGGER|DVILLE)|RTH(?:INGTON)?)|Y(?:OMING|ATT|MER|CO)|RISTON"
+  ")|P(?:E(?:T(?:ERS(?:BURG|TOWN)|ROLEUM|TUS)|N(?:(?:CE SPRING|TRES)"
+  "S|NSBORO)|(?:YTON|OR)A|ACH CREEK|CKS MILL|MBERTON|RKINS)|A(?:R(?:"
+  "KERSBURG|COAL|SONS)|TTERSON CR(?:EE)?K|(?:YNE|CK)SVILLE|LE(?:STIN"
+  "E|RMO)|GE(?:TON)?|DEN CITY|NTHER|W PAW|X)|I(?:N(?:E(?: (?:BLUFF|G"
+  "ROVE)|Y VIEW|VILLE)|CH)|CK(?:AWAY|ENS)|EDMONT|PESTEM|GEON)|R(?:I("
+  "?:NCE(?:WICK|TON)?|CHARD)|O(?:C(?:IOUS|TOR)|SPERITY)|E(?:MI|NT)ER"
+  "|ATT)|O(?:INT(?: PLEASANT|S)|W(?:ELLTO|HATA)N|RTERS FALLS|ND GAP|"
+  "CA|OL)|U(?:R(?:GITSVILL|SGLOV)E|LLMAN)|L(?:EASANT V(?:ALLE|L)|IN)"
+  "Y|T PLEASANT|HILIPPI)|G(?:R(?:E(?:EN(?: (?:S(?:ULPHUR SPRINGS|PRI"
+  "NG)|VALLEY|BANK)|VILLE|WOOD)|AT CACAPON)|A(?:N(?:T(?:SVILLE| TOWN"
+  ")|VILLE)|SSY M(?:EADO|D)WS|FTON)|I(?:MMS L(?:ANDIN|ND)G|FFITHSV(?"
+  ":IL)?LE)|N SPHR SPGS)|L(?:EN(?: (?:(?:(?:MORG|JE)A|EASTO)N|F(?:ER"
+  "RIS|ORK)|DA(?:NIEL|LE)|ROGERS|WHITE)|HAYES|VILLE|GARY|WOOD|DON)?|"
+  "A(?:D(?:E SPRINGS|Y)|SGOW|CE))|A(?:L(?:L(?:(?:IPOLIS FERR|OWA)Y|A"
+  "GHER)|IPOLIS FRY)|ULEY (?:BRIDGE|MILLS)|R(?:RISON|Y)|(?:SSAWA)?Y|"
+  "NDEEVILLE|P MILLS)|I(?:L(?:B(?:ERT|OA)|MER)|VEN)|E(?:RRARDSTOWN|N"
+  "OA|M)|OR(?:MANIA|DON)|HENT|YPSY)|L(?:A(?:N(?:D(?:ES STA(?:TION)?|"
+  "VILLE)|SING|ARK|HAM)|(?:HMANSVILL|VALETT)E|K(?:(?:E RIDG)?E|IN)|U"
+  "REL (?:VALLEY|PARK)|SHMEET|YLAND|WTON)|O(?:C(?:K(?:BRIDGE|NEY)|HG"
+  "ELLY)|ST (?:C(?:REEK|ITY)|RIVER)|O(?:NEYVILLE|KOUT)|N(?:GACRE|DON"
+  ")|R(?:ENTZ|ADO)|(?:VER|GA)N|BATA)|E(?:S(?:(?:AG|LI)E|TER)|T(?:TER"
+  " GAP|ART)|(?:IVAS| RO)Y|(?:CKI|NOR)E|E(?:WOOD|T)|FT HAND|WISBURG|"
+  "RONA|VELS|HEW|ON)|I(?:TTLE(?: (?:BIRCH|FALLS)|TON)|M(?:ESTONE H(?"
+  ":IL)?L|A)|N(?:D(?:SIDE|EN)|N)|LLY PARK|VERPOOL|ZEMORES|BERTY)|Y(?"
+  ":N(?:NCAMP|CO)|BURN)|U(?:MBERPORT|NDALE))|H(?:A(?:R(?:M(?:ONY(?: "
+  "GROVE)?|AN)|PER(?:S FERRY)?|RIS(?:VILLE|ON)|T(?:FORD|S)|VEY)|(?:M"
+  "(?:BLETO|PDE|LI)|ZEL(?:GREE|TO)|LLTOW)N|N(?:SFORD|COCK|DLEY|OVER)"
+  "|Y(?:MON|WOO)D|CKER VALLEY|STINGS|VACO)|E(?:N(?:D(?:ERSON|RICKS)|"
+  "LAWSON|SLEY)|R(?:N(?:SHAW|DON)|OLD)|L(?:VETIA|EN)|DGESVILLE|MPHIL"
+  "L|PZIBAH|ATERS|WETT)|I(?:L(?:TON V(?:ILLAGE|LG)|L(?:SBORO|TOP))|G"
+  "H(?: VIEW|LAND)|N(?:TON|ES)|AWATHA|CO)|U(?:(?:TTONSVILL|RRICAN)E|"
+  "GHES(?: RIVER|TON)|N(?:TINGTON|DRED))|O(?:R(?:SE SHOE RU?N|NER)|("
+  "?:METOW|LDE)N|PEMONT))|R(?:O(?:CK(?: (?:C(?:A(?:STL|V)E|REEK)|VIE"
+  "W)|PORT)?|S(?:E(?:DALE|MONT)|SMORE)|B(?:ERTSBURG|INETTE|SON)|(?:N"
+  "CEVERT|ANOK)E|M(?:ANCE|NEY)|DERFIELD|WLESBURG)|A(?:VEN(?:CLIFF|SW"
+  "OOD)|C(?:HEL|INE)|M(?:AGE|SEY)|N(?:GER|SON)|(?:YSA|W)L|INELLE|GLA"
+  "ND|LEIGH|DNOR)|E(?:D(?: (?:JACKET|CREEK|HOUSE)|STAR)|(?:YNOLDSVIL"
+  "L|PLET)E|ED(?:SVILLE|Y)|ADER|NICK)|I(?:[GO]|DGE(?:(?:LE|WA)Y|VIEW"
+  ")|VE(?:SVILLE|RTON)|P(?:LEY|PON)|CHWOOD|FFLE)|U(?:SSELVILLE|PERT|"
+  "NA)|HODELL)|F(?:R(?:A(?:N(?:K(?:FORD|LIN)|CIS MINE)|ZIERS B(?:OTT"
+  "O|T)M|METOWN)|E(?:NCH(?: CREEK|TON)|E(?:PORT|MAN))|I(?:ARS HILL|E"
+  "NDLY))|O(?:R(?:T (?:S(?:EYBERT|PRING)|(?:ASHB|GA)Y|NEAL)|RESTER C"
+  "(?:ENTE|T)R|EST HILL)|L(?:LANSBEE|SOM|A)|UR STATES|STER)|A(?:LL(?"
+  ":ING (?:W(?:ATE|T)RS|ROCK)|S MILL)|IR(?:DALE|MONT|VIEW|LEA)|YETTE"
+  "VILLE|RMINGTON|NROCK)|L(?:AT(?:WOODS| TOP)|O(?:WER|E)|EMINGTON)|I"
+  "(?:VE FORKS|LBERT|SHER)|E(?:RRELLSBURG|NWICK)|BI)|A(?:L(?:L(?:EN "
+  "J(?:UNCTION|CT)|OY)|UM (?:BRIDGE|CREEK)|(?:(?:GO)?M|T)A|EXANDER|B"
+  "RIGHT|DERSON|KOL|VY)|R(?:T(?:HUR(?:DALE)?|IE)|N(?:OLDSBURG|ETT)|B"
+  "(?:OVA|UCK)LE)|S(?:H(?:(?:FOR|LAN)D|TON)|BURY|TOR|CO)|M(?:(?:HERS"
+  "TDA|EAG)LE|BOY|IGO|MA)|(?:(?:CCOVIL|VONDA)L|PPLE GROV)E|N(?:AWALT"
+  "|MOORE|THONY|STED)|U(?:(?:GUST|ROR)A|BURN|TO)|D(?:AMSVILLE|RIAN|V"
+  "ENT)|BRAHAM|THENS)|N(?:E(?:W(?: (?:M(?:A(?:RTINSVILLE|NCHESTE?R)|"
+  "ILTON)|C(?:UMBERLA?ND|REEK)|(?:RICHMO|ENGLA)ND|HAVEN)|B(?:ERNE|UR"
+  "G)|(?:HA|E)LL|TOW?N|VILLE|ARK)|(?:MOUR|LLI)S|TTIE|OLA|BO)|O(?:R(?"
+  ":T(?:H(?: (?:(?:PARKERSBUR|SPRIN)G|MATEWAN)|FORK)|ON)|MANTOWN)|LA"
+  "N|BE)| (?:MARTINSVLLE|PARKERSBURG)|A(?:UGATUCK|LLEN|PIER|OMA)|I(?"
+  ":MITZ|CUT|TRO)|UTTER FORT)|D(?:A(?:V(?:I(?:S(?:VILLE)?|N)|Y)|N(?:"
+  "(?:VILL|ES)E|IELS)|W(?:MONT|SON|ES)|ILEY|LLAS)|U(?:N(?:MORE|BAR|C"
+  "AN|LOW)|PONT CITY|HRING|RBIN|CK|O)|E(?:L(?:BARTON|LSLOW|RAY)|EP W"
+  "ATER|COTA|HUE)|R(?:Y(?:(?: CREE|FOR)K|BRANCH)|ENNEN|OOP)|I(?:A(?:"
+  "MOND|NA)|(?:LL|XI)E|NGESS)|O(?:R(?:OTHY|CAS)|T(?:HAN|T)|LA))|K(?:"
+  "E(?:S(?:LER(?:S CROSS LANE| CR LN)S|SLER)|N(?:(?:OV|N)A|TUCK)|(?:"
+  "ARNE|LL)YSVILLE|YS(?:TONE|ER)|R(?:ENS|MIT)|GLEY)|I(?:N(?:G(?:MONT"
+  "|STON|WOOD)|C(?:HELOE|AID))|MB(?:ERLY|ALL)|(?:EFF|STL)ER|AHSVILLE"
+  "|RBY)|A(?:NAWHA (?:FALLS|HEAD)|YFORD|SSON)|OPPERSTON|NOB FORK|YLE"
+  ")|E(?:L(?:K(?:(?: GARDE|HOR)N|VIEW|INS)|L(?:ENBORO|AMORE)|M(?: GR"
+  "OVE|IRA)|IZABETH|EANOR|BERT|GOOD|TON)|A(?:ST (?:BANK|GULF|LYNN)|R"
+  "LING)|N(?:TERPRISE|GLISH)|V(?:ERETTVILLE|ANS)|(?:XCHANG|SKDAL)E|D"
+  "(?:GARTON|MOND)|C(?:CLES|KMAN)|(?:RBAC|GL)ON|MMETT|UREKA|THEL)|T("
+  "?:H(?:O(?:R(?:NTON|PE)|MAS)|REE CH(?:URCHE|R)S|URMOND|ACKER)|A(?:"
+  "L(?:LMANSVILLE|COTT)|NNER|PLIN|RIFF|MS|D)|E(?:RR(?:A ALTA|Y)|NNER"
+  "TON|AYS|SLA)|W(?:I(?:N BRANCH|LIGHT)|O RUN)|R(?:IADELPHIA|O(?:UT|"
+  "Y)|UE)|U(?:RTLE CREEK|NNELTON)|O(?:LL GATE|RNADO)|IOGA)|J(?:O(?:N"
+  "(?:ES SPRINGS|BEN)|(?:SEPHIN|DI)E|RDAN|LO|B)|U(?:MPING BR(?:ANCH)"
+  "?|N(?:CTION|IOR)|STICE|LIAN)|E(?:FF(?:ERSON|REY)|NKINJONES|SSE)|A"
+  "(?:CKSONBURG|NE LEW))|O(?:R(?:GA(?:N CAVE|S)|IENT HILL|LANDO|MA)|"
+  "(?:LD FIELD|WING)S|AK(?: HILL|VALE)|V(?:ERBROOK|APA)|(?:CEAN|TTAW"
+  ")A|N(?:EGO|A)|HLEY|SAGE|MAR|DD)|V(?:A(?:LL(?:EY (?:(?:BEN|HEA)D|C"
+  "HAPEL|GROVE|FORK)|SCREEK)|RNEY|DIS|N)|I(?:CTOR|ENNA|VIAN)|ER(?:DU"
+  "NVILLE|NER)|ULCAN|OLGA)|I(?:N(?:D(?:(?:EPENDENC|OR)E|IAN MILLS|US"
+  "TRIAL)|STITUTE|WOOD)|(?:SABA|TMAN)N|KES FORK|RELAND|VYDALE|AEGER|"
+  "DAMAY)|U(?:PPER(?: (?:FALLS|TRACT)|GLADE)|N(?:EEDA|GER|ION)|LER)|"
+  "Y(?:(?:OLY|UKO)N|ELLOW SPRING|AWKEY)|QUI(?:N(?:WOOD|CY)|CK)))))$"
+  ,
+  /* -- WY -- WY -- WY -- WY -- WY -- WY -- WY -- WY -- WY -- WY -- */
+  "(?:\\b)((?^:(?i:(?:S(?:A(?:INT STEPHENS|DDLESTRING|ND DRAW|RATOGA"
+  "|VERY)|H(?:E(?:RIDAN|LL)|IRLEY BASIN|OSHONI|AWNEE)|T(?:AR V(?:ALL"
+  "EY RA|LY R)NCH| STEPHENS|ORY)|U(?:N(?:DANC|RIS)E|PERIOR|SSEX)|WEE"
+  "TWAT(?:ER STATION|R STA)|(?:OUTH)? PASS CITY|(?:INCLAI|LATE)R|MOO"
+  "T)|M(?:A(?:MMOTH(?: HOT SPRINGS)?|N(?:DERSON|VILLE|TUA)|RBLETON|Y"
+  "OWORTH)|O(?:UNTAIN (?:HOME|VIEW)|O(?:RCROFT|SE)|R(?:TO|A)N|NETA)|"
+  "E(?:DICINE BOW|ETEETSE|RIDEN)|I(?:D(?:WEST|VAL)|LLS)|C(?: KINNO|F"
+  "ADDE)N|UDDY GAP)|B(?:U(?:R(?:(?:RI|N)S|LINGTON)|F(?:FALO|ORD))|A("
+  "?:(?:R NUN|SI)N|IROIL|NNER|GGS)|I(?:G (?:PINEY|HORN)|TTER CREEK)|"
+  "O(?:(?:ULD|SL)ER|NDURANT|RDEAUX)|E(?:AR RIVER|DFORD|ULAH)|YRON)|L"
+  "(?:A(?:(?:(?: BAR|GRAN)G|RAMI)E|N(?:CE CREEK|DER))|O(?:ST (?:SPRI"
+  "NGS|CABIN)|NETREE|VELL)|I(?:T(?:TLE|L) AMERICA|N(?:GLE|CH))|U(?:C"
+  "KY MACCAMP|SK)|Y(?:SITE|MAN)|E(?:ITER|O))|R(?:O(?:CK(?: (?:SPRING"
+  "S|RIVER)|EAGLE)|LLING HILLS|BERTSON|ZET)|A(?:NCHESTER|LSTON|WLINS"
+  "|YMOND)|E(?:(?:LIANC|CLUS)E|D DESERT)|I(?:VER(?:SIDE|TON)|NER)|YA"
+  "N PARK)|H(?:A(?:M(?:ILTON DOME|SFORK)|R(?:TVILLE|RIMAN)|WK SPRING"
+  "S|NNA)|O(?:BACK J(?:UNCTION|CT)|RSE CREEK)|U(?:NTLEY|DSON|LETT)|I"
+  "L(?:LSDALE|AND)|YATTVILLE)|P(?:I(?:NE(?: (?:BLUFFS|HAVEN)|DALE)|E"
+  "DMONT)|O(?:W(?:DER RIVER|ELL)|INT OF ROCKS)|A(?:RK(?:ERTO|MA)|VIL"
+  "LIO)N|RAIRIE C(?:ENTE|T)R|T OF ROCKS)|F(?:O(?:RT (?:(?:(?:WASHAK|"
+  "LARAM)I|STEEL)E|BRIDGER)|UR CORNERS|NTENELLE|XPARK)|R(?:ONTIER|AN"
+  "NIE|EEDOM)|A(?:IRVIEW|RSON)|T WARREN AFB)|C(?:A(?:R(?:PENTER|LILE"
+  ")|SPER)|O(?:(?:WLE|D)Y|KEVILLE|RA)|H(?:UGWATER|EYENNE)|R(?:OWHEAR"
+  "T|ESTON)|L(?:EARMONT|ARK)|ENTENNIAL)|A(?:L(?:(?:(?:CO)?V|T)A|(?:L"
+  "ENDAL|PIN)E|(?:ADD|B)IN)|R(?:LINGTON|APAHOE|MINTO|VADA)|(?:UBUR|F"
+  "TO)N|TLANTIC CITY|CME)|G(?:R(?:AN(?:ITE CANY?ON|GER)|E(?:EN RIVER"
+  "|YBULL)|OVER)|A(?:R(?:LAND|RETT)|S HILLS)|LEN(?:ROCK|DO)|ILLETTE|"
+  "UERNSEY)|E(?:(?:NCAMPMEN|GBER)T|L(?:K MOUNTAIN|MO)|VANS(?:VILLE|T"
+  "ON)|D(?:GERTO|E)N|T(?:HETE|NA)|MBLEM)|T(?:E(?:TON VILLAGE|N SLEEP"
+  ")|H(?:ERMOPOLIS|AYNE)|I(?:E SIDING|PTON)|URNERVILLE|ORRINGTON)|W("
+  "?:A(?:MSUTTER|LCOTT|PITI)|IL(?:LWOOD|SON)|O(?:RLAND|LF)|HEATLAND|"
+  "ESTON|RIGHT|YARNO)|D(?:I(?:AMOND(?:VILLE)?|XON)|E(?:VILS TOW|AV)E"
+  "R|(?:OUGLA|UBOI)S|A(?:NIEL|YTON))|K(?:I(?:R(?:TLE|B)Y|NNEAR)|E(?:"
+  "MMERER|ELINE|LLY)|ORTES DAM|AYCEE)|J(?:E(?:FFREY CITY|NNY LAKE|LM"
+  ")|A(?:CKSON(?: HOLE)?|Y EM))|Y(?:EL(?:LOWSTONE NATIONAL PAR|WSTN "
+  "NL P)K|ODER)|N(?:EW(?: HAVEN|CASTLE)|ATRONA|ODE)|O(?:S(?:HOTO|AGE"
+  ")|PAL|RIN|TTO)|V(?:AN TASSELL|ETERAN)|U(?:PTON|RIE|VA)|IRON MOUNT"
+  "AIN|QUEALY))))$"
+    };
diff --git a/extensions/address_standardizer/sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in b/extensions/address_standardizer/sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in
new file mode 100644
index 0000000..b727594
--- /dev/null
+++ b/extensions/address_standardizer/sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in
@@ -0,0 +1,3 @@
+SELECT pg_catalog.pg_extension_config_dump('us_lex', 'WHERE is_custom');
+SELECT pg_catalog.pg_extension_config_dump('us_rules', 'WHERE is_custom');
+SELECT pg_catalog.pg_extension_config_dump('us_gaz', 'WHERE is_custom');
diff --git a/extensions/address_standardizer/standard.c b/extensions/address_standardizer/standard.c
new file mode 100644
index 0000000..be59bb0
--- /dev/null
+++ b/extensions/address_standardizer/standard.c
@@ -0,0 +1,692 @@
+/* -- standard.c 
+
+interface for the standardizer
+
+Prototype 7H08 (This file was written by Walter Sinclair).
+
+This file is part of PAGC.
+
+Copyright (c) 2009 Walter Bruce Sinclair
+
+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.
+
+*/
+
+/*-- For pagc-0.4.2 : last revised 2012-07-18 --*/
+
+#undef DEBUG
+//#define DEBUG 1
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include "pagc_api.h"
+#ifdef BUILD_API
+#include "pagc_std_api.h"
+#endif
+
+#define GAZ_LEXICON
+
+/* -- local prototypes -- */
+/*-- <revision date='2012-07-22'> Keep track of start_state </revision> --*/
+static int _Close_Stand_Field_(STAND_PARAM *) ;
+static int _Scan_String_(STAND_PARAM *, char *) ;
+static char * _Scan_Next_(STAND_PARAM *, char *) ;
+
+static char __spacer__[] = " \\-.)}>_" ;
+
+#define TERM_AND_LENGTH \
+	*__dest__ = SENTINEL ; \
+	n = strlen(__scan_buf__) 
+
+#define RETURN_NEW_MORPH(TOKEN_ARG) \
+	if (!new_morph(__stand_param__,TOKEN_ARG,__scan_buf__,n))\
+	{\
+		return NULL ; \
+	} \
+	return __src__
+
+#define COLLECT_LOOKAHEAD \
+	*__dest__++ = a ; __src__++ ; *__dest__++ = b ; __src__++ 
+
+#define COLLECT_WHILE(COND) \
+	do { *__dest__++ = a ; __src__++ ; a = *__src__ ; } while (COND)
+
+#define NO_COLLECT_WHILE(COND) \
+	do { __dest__++ ; __src__++ ; a = *__src__ ; } while (COND)
+
+#define TEST_FOR_ORD_DIGIT(N,NEXT_LOW,NEXT_UP) \
+	if ((b == NEXT_LOW) || (b == NEXT_UP)) \
+	{ \
+		if (last_digit == N)\
+		{ \
+			if ((n < 2 ) || (*(__dest__-2) != '1')) \
+			{ \
+				COLLECT_LOOKAHEAD ; \
+				TERM_AND_LENGTH ; \
+				RETURN_NEW_MORPH(DORD) ; \
+			} \
+		} \
+	} \
+	break
+
+
+/*========================================================================
+<summary>
+	<function name='standard.c (standardize_field)'/>
+		<remarks>This function is called with a pointer to the
+			str to standardize and a start state indicating
+			the kind of standardization to perform. It invokes
+			the scanner to start the creation of the morphemes
+		<calls><functionref='tokenize.c (initialize_morphs)'/></calls>
+		<calls><functionref='_Close_Stand_Field_s'/></calls>
+		<calls><functionref='_Scan_String_'/></calls>
+</summary>
+=========================================================================*/
+int standardize_field(STAND_PARAM *__stand_param__ ,char *__in_str__ , int client_start_state )
+{
+	/*-- <revision date='2009-08-13'> Support multiple lexicons </revision> --*/
+	/*-- <revision date='2012-06-01'> Add gaz_lexicon to be triggered on start_state= MACRO </revision> --*/
+	__stand_param__->lexicon = __stand_param__->address_lexicon ;
+	if (client_start_state > EXTRA_STATE)
+	{
+		__stand_param__->lexicon = __stand_param__->poi_lexicon ;
+	}
+#ifdef GAZ_LEXICON
+	else
+	{
+		if (client_start_state == MACRO)
+		{
+		   __stand_param__->lexicon = __stand_param__->gaz_lexicon ;
+		}
+	}
+#endif
+	/*-- <revision date='2012-07-22'> Keep track of start_state </revision> --*/
+	__stand_param__->start_state = client_start_state ;
+	initialize_morphs(__stand_param__) ;
+	if (!_Scan_String_(__stand_param__,__in_str__))
+	{
+		return FALSE ;
+	}
+	/*-- <revision date='2012-07-22'> Keep track of start_state </revision> --*/
+	return (_Close_Stand_Field_(__stand_param__)) ;
+}
+
+static int _Scan_String_(STAND_PARAM *__stand_param__ ,char *__in_str__ )
+{
+	char *__src__ = __in_str__ ;
+	while (TRUE)
+	{
+		char a = *__src__ ;
+		/*-- <remarks> If we're done, process the tokens: </remarks> --*/
+		if ((a == '\n') || (a == SENTINEL))
+		{
+			return (process_input(__stand_param__)) ;
+		}
+		/*-- <remarks> Gather sequences into tokens: </remarks> --*/
+		__src__ = _Scan_Next_(__stand_param__,__src__) ;
+		/*-- <remarks> Check for errors: </remarks> --*/
+		if (__src__ == NULL)
+		{
+			break ;
+		}
+	}
+	return FALSE ;
+}  
+
+static char * _Scan_Next_( STAND_PARAM *__stand_param__,char * __in_ptr__) 
+{
+	int n ;
+	char __scan_buf__[MAXSTRLEN] ;
+
+/*-- <remarks> Collect a sequence of characters into the scan_buf </remarks> --*/
+
+	char *__src__ = __in_ptr__ ;
+	char a = *__src__ ;
+	char *__dest__ = __scan_buf__ ;
+	*__dest__ = SENTINEL ;
+
+	/*-- <remarks> Type one terminators </remarks> --*/
+	if ((a == ',') || (a == '\t') || (a == ';'))
+	{
+		*__dest__++ = a ;
+		*__dest__ = SENTINEL;
+		set_term(__stand_param__,1,__scan_buf__) ;
+		/*-- <remarks> Point to next input char </remarks> --*/
+		return (__src__ + 1) ;
+	}
+	/*-- <remarks> Numeric sequences : ordinals, fractions and numbers </remarks> --*/
+	if (isdigit(a))
+	{
+        char b ;
+        char last_digit ;
+
+		COLLECT_WHILE(isdigit(a)) ;
+		/*-- <remarks> Get a character of lookahead and one of lookbehind </remarks> --*/
+		b = *(__src__ + 1 ) ;
+		last_digit = *(__dest__ - 1 ) ; /*-- last digit collected --*/
+		n = __dest__ - __scan_buf__ ;
+		switch (a)
+		{
+			/*-- <remarks> Fractions </remarks> --*/
+		case '/' :
+			/*-- <remarks> Collect the rest of the fraction </remarks> --*/
+			if (isdigit(b))
+			{
+				switch (b)
+				{
+				case '2' :
+					if (last_digit == '1')
+					{
+						COLLECT_LOOKAHEAD ;
+						TERM_AND_LENGTH ;
+						RETURN_NEW_MORPH(DFRACT) ;
+					}
+					break ;
+				case '3' :
+					if ((last_digit == '1') || (last_digit == '2'))
+					{
+						COLLECT_LOOKAHEAD ;
+						TERM_AND_LENGTH ;
+						RETURN_NEW_MORPH(DFRACT) ;
+					}
+					break ;
+				case '4' :
+					if ((last_digit == '1') || (last_digit == '3'))
+					{
+						COLLECT_LOOKAHEAD ;
+						TERM_AND_LENGTH ;
+						RETURN_NEW_MORPH(DFRACT) ;
+					}
+					break ;
+				} /*-- <remarks> end of switch on lookahead </remarks> --*/
+			}
+			break ;
+			/*-- <remarks> ordinals -- */
+		case 's' : case 'S' :
+			/*-- <remarks> 1st, 21st, 31st, -- for 1 </remarks> --*/
+			/*-- <remarks> Point to next input char </remarks> --*/
+			TEST_FOR_ORD_DIGIT('1','t','T') ;
+		case 'r' : case 'R' :
+			/*-- <remarks> 3rd, 23rd, 33rd, -- for 3 </remarks> --*/
+			/*-- <remarks> Point to next input char </remarks> --*/
+			TEST_FOR_ORD_DIGIT('3','d','D') ;
+		case 'n' : case 'N' :
+			/*-- <remarks> 2nd, 22nd, 32nd, -- for 2 </remarks> --*/
+			/*-- <remarks> Point to next input char </remarks> --*/
+			TEST_FOR_ORD_DIGIT('2','d','D') ;
+		case 't' : case 'T' :
+			if ((b == 'h') || (b == 'H'))
+			{
+				switch (last_digit)
+				{
+				case '1' : case '2' : case '3' :
+					/*-- <remarks> 11th, 111th, 211th etc -- for 11-13 </remarks> --*/
+					if ((n > 1) && (*(__dest__ - 2) == '1'))
+					{
+						COLLECT_LOOKAHEAD ;
+						TERM_AND_LENGTH ;
+						/*-- <remarks> Point to next input char </remarks> --*/
+						RETURN_NEW_MORPH(DORD) ;
+					}
+					break ;
+				default :
+					/*-- <remarks> 4th, 14th, 24th etc -- for 0, 4-9 </remarks> --*/
+					COLLECT_LOOKAHEAD ;
+					TERM_AND_LENGTH ;
+					/*-- <remarks> Point to next input char </remarks> --*/
+					RETURN_NEW_MORPH(DORD) ;
+				}
+			}
+			break ;
+		}
+		/*-- <remarks> ordinary numeric sequence </remarks> --*/
+		TERM_AND_LENGTH ;
+		/*-- <remarks> Retain position </remarks> --*/
+		RETURN_NEW_MORPH(DNUMBER) ;
+	}
+	/*-- <revision date='2009-08-15'> Fix ampersand : P&R --> P & R </remarks> --*/
+	if (a == '&')
+	{
+		COLLECT_WHILE(a == '&') ;
+		TERM_AND_LENGTH ;
+		RETURN_NEW_MORPH(DSINGLE) ;
+	}
+	/*-- <remarks> Alphabetic sequence </remarks> --*/
+	if ((isalpha(a)) || (a == '\'') || (a == '#'))
+	{
+		COLLECT_WHILE((isalpha(a)) || (a == '\'')) ;
+		TERM_AND_LENGTH ;
+		/*-- <remarks> Retain position </remarks> --*/
+		switch (n)
+		{
+		case 1 :
+			RETURN_NEW_MORPH(DSINGLE) ;
+		case 2 :
+			RETURN_NEW_MORPH(DDOUBLE) ;
+		default :
+			RETURN_NEW_MORPH( DWORDT ) ;
+		}
+		/*-- <remarks> Retain position </remarks> --*/
+		return __src__ ;
+	}
+	/*-- <remarks> Type 2 terminators ( spacing ) </remarks> --*/
+	if (strchr(__spacer__,a) != NULL)
+	{
+		NO_COLLECT_WHILE(strchr(__spacer__,a) != NULL) ;
+		set_term(__stand_param__,2,__scan_buf__) ;
+		/*-- <remarks> Retain position </remarks> --*/
+		return (__src__) ;
+	}
+	/*-- <remarks> Ignore everything not specified. Point to next input char. </remarks> --*/
+	return (__src__ + 1) ;
+}
+
+#ifdef BUILD_API
+
+/*
+typedef struct STANDARDIZER_s {
+    int data;
+    char *err_msg;
+} STANDARDIZER;
+
+typedef struct STDADDR_s {  // define as required
+   char *house_num;
+   char *prequal;
+   char *pretype;
+   char *predir;
+   char *name;
+   char *suftype;
+   char *sufdir;
+   char *sufqual;
+   char *extra;
+   char *city;
+   char *state;
+   char *postcode;
+   char *country;
+} STDADDR;
+
+*/
+
+STANDARDIZER *std_init()
+{
+    STANDARDIZER *std;
+
+    std = (STANDARDIZER *) calloc(1,sizeof(STANDARDIZER)) ;
+    if ( std == NULL ) return NULL ;
+
+    std -> pagc_p = (PAGC_GLOBAL *) calloc(1,sizeof(PAGC_GLOBAL)) ;
+    if ( std -> pagc_p == NULL ) {
+        free( std ) ;
+        return NULL ;
+    }
+
+    std -> pagc_p -> process_errors = init_errors(std -> pagc_p, NULL) ;
+    std -> err_p = std -> pagc_p -> process_errors ;
+
+    return std;
+}
+
+
+int std_use_lex(STANDARDIZER *std, LEXICON *lex)
+{
+    std -> pagc_p -> addr_lexicon = lex -> hash_table ;
+    lex -> hash_table = NULL;
+    lex_free(lex);
+    if (!setup_default_defs(std -> pagc_p)) return FALSE ;
+    return (install_def_block_table(std -> pagc_p -> addr_lexicon, std -> pagc_p -> process_errors)) ;
+}
+
+
+int std_use_gaz(STANDARDIZER *std, LEXICON *gaz)
+{
+    std -> pagc_p -> gaz_lexicon = gaz -> hash_table ;
+    gaz -> hash_table = NULL;
+    lex_free(gaz);
+    return 0;
+}
+
+
+int std_use_rules(STANDARDIZER *std, RULES *rules)
+{
+    if ( ! rules -> ready ) {
+        RET_ERR("std_use_rules: Rules have not been readied!", std -> err_p, 1);
+    }
+    std -> pagc_p -> rules = rules -> r_p ;
+    rules -> r_p = NULL;
+    rules_free(rules);
+    return 0;
+}
+
+int std_ready_standardizer(STANDARDIZER *std)
+{
+    std -> misc_stand = 
+        init_stand_context(std -> pagc_p, std -> err_p, 1);
+
+    if (std -> misc_stand == NULL)
+        return 1;
+    return 0;
+}
+
+
+void std_free(STANDARDIZER *std)
+{
+    if ( std == NULL ) return;
+    DBG("Calling close_stand_process");
+    if ( std -> pagc_p != NULL ) close_stand_process( std -> pagc_p ) ;
+    if ( std -> pagc_p -> process_errors != NULL ) {
+        DBG("Calling close_errors");
+        close_errors( std -> pagc_p -> process_errors );
+        DBG("Calling FREE_AND_NULL");
+        FREE_AND_NULL( std -> pagc_p ) ;
+    }
+    DBG("Calling close_stand_context");
+    close_stand_context( std -> misc_stand );
+    DBG("Calling free");
+    free( std );
+}
+
+
+void stdaddr_free(STDADDR *stdaddr)
+{
+    if (!stdaddr) return;
+    if (stdaddr->building)   free(stdaddr->building);
+    if (stdaddr->house_num)  free(stdaddr->house_num);
+    if (stdaddr->predir)     free(stdaddr->predir);
+    if (stdaddr->qual)       free(stdaddr->qual);
+    if (stdaddr->pretype)    free(stdaddr->pretype);
+    if (stdaddr->name)       free(stdaddr->name);
+    if (stdaddr->suftype)    free(stdaddr->suftype);
+    if (stdaddr->sufdir)     free(stdaddr->sufdir);
+    if (stdaddr->ruralroute) free(stdaddr->ruralroute);
+    if (stdaddr->extra)      free(stdaddr->extra);
+    if (stdaddr->city)       free(stdaddr->city);
+    if (stdaddr->state)      free(stdaddr->state);
+    if (stdaddr->country)    free(stdaddr->country);
+    if (stdaddr->postcode)   free(stdaddr->postcode);
+    if (stdaddr->box)        free(stdaddr->box);
+    if (stdaddr->unit)       free(stdaddr->unit);
+    free(stdaddr);
+    stdaddr = NULL;
+}
+
+static char *coalesce( char *a, char *b )
+{
+    return a?a:b;
+}
+
+void print_stdaddr( STDADDR *result )
+{
+    if (result) {
+        printf("  building: %s\n", coalesce(result -> building, ""));
+        printf(" house_num: %s\n", coalesce(result -> house_num, ""));
+        printf("    predir: %s\n", coalesce(result -> predir, ""));
+        printf("      qual: %s\n", coalesce(result -> qual, ""));
+        printf("   pretype: %s\n", coalesce(result -> pretype, ""));
+        printf("      name: %s\n", coalesce(result -> name, ""));
+        printf("   suftype: %s\n", coalesce(result -> suftype, ""));
+        printf("    sufdir: %s\n", coalesce(result -> sufdir, ""));
+        printf("ruralroute: %s\n", coalesce(result -> ruralroute, ""));
+        printf("     extra: %s\n", coalesce(result -> extra, ""));
+        printf("      city: %s\n", coalesce(result -> city, ""));
+        printf("     state: %s\n", coalesce(result -> state, ""));
+        printf("   country: %s\n", coalesce(result -> country, ""));
+        printf("  postcode: %s\n", coalesce(result -> postcode, ""));
+        printf("       box: %s\n", coalesce(result -> box, ""));
+        printf("      unit: %s\n", coalesce(result -> unit, ""));
+    }
+}
+
+/*
+STDADDR *std_standardize_one(STANDARDIZER *std, char *address_one_line, int options)
+{
+    return NULL;
+}
+*/
+
+STDADDR *std_standardize_mm(STANDARDIZER *std, char *micro, char *macro, int options)
+{
+    STAND_PARAM *stand_address;
+    STDADDR *stdaddr;
+    int err;
+
+    stand_address = std -> misc_stand ;
+    if (stand_address == NULL)
+        return NULL;
+
+    if (!micro || ( IS_BLANK( micro ))) {
+        RET_ERR("std_standardize_mm: micro attribute to standardize!", std -> err_p, NULL);
+    }
+
+    init_output_fields( stand_address, BOTH );
+    if (macro && macro[0] != '\0') {
+        err = standardize_field( stand_address, macro, MACRO );
+        if (!err) {
+            RET_ERR1("std_standardize_mm: No standardization of %s!",
+                     macro, std -> err_p, NULL);
+        }
+
+        if (options & 1) {
+            printf("After standardize_field for macro:\n");
+            output_raw_elements( stand_address , NULL ) ;
+            send_fields_to_stream(stand_address->standard_fields , NULL, 0, 0);
+        }
+    }
+
+    err = standardize_field( stand_address, micro, MICRO_M );
+    if (!err) {
+        RET_ERR1("std_standardize_mm: No standardization of %s!",
+                 micro, std -> err_p, NULL);
+    }
+
+    if (options & 1) {
+        printf("After standardize_field for micro:\n");
+        send_fields_to_stream(stand_address->standard_fields , NULL, 0, 0);
+    }
+
+    PAGC_CALLOC_STRUC(stdaddr,STDADDR,1,std -> err_p,NULL);
+
+    if (strlen(stand_address -> standard_fields[0]))
+        stdaddr->building   = strdup(stand_address -> standard_fields[0]);
+    if (strlen(stand_address -> standard_fields[1]))
+        stdaddr->house_num  = strdup(stand_address -> standard_fields[1]);
+    if (strlen(stand_address -> standard_fields[2]))
+        stdaddr->predir     = strdup(stand_address -> standard_fields[2]);
+    if (strlen(stand_address -> standard_fields[3]))
+        stdaddr->qual       = strdup(stand_address -> standard_fields[3]);
+    if (strlen(stand_address -> standard_fields[4]))
+        stdaddr->pretype    = strdup(stand_address -> standard_fields[4]);
+    if (strlen(stand_address -> standard_fields[5]))
+        stdaddr->name       = strdup(stand_address -> standard_fields[5]);
+    if (strlen(stand_address -> standard_fields[6]))
+        stdaddr->suftype    = strdup(stand_address -> standard_fields[6]);
+    if (strlen(stand_address -> standard_fields[7]))
+        stdaddr->sufdir     = strdup(stand_address -> standard_fields[7]);
+    if (strlen(stand_address -> standard_fields[8]))
+        stdaddr->ruralroute = strdup(stand_address -> standard_fields[8]);
+    if (strlen(stand_address -> standard_fields[9]))
+        stdaddr->extra      = strdup(stand_address -> standard_fields[9]);
+    if (strlen(stand_address -> standard_fields[10]))
+        stdaddr->city       = strdup(stand_address -> standard_fields[10]);
+    if (strlen(stand_address -> standard_fields[11]))
+        stdaddr->state      = strdup(stand_address -> standard_fields[11]);
+    if (strlen(stand_address -> standard_fields[12]))
+        stdaddr->country    = strdup(stand_address -> standard_fields[12]);
+    if (strlen(stand_address -> standard_fields[13]))
+        stdaddr->postcode   = strdup(stand_address -> standard_fields[13]);
+    if (strlen(stand_address -> standard_fields[14]))
+        stdaddr->box        = strdup(stand_address -> standard_fields[14]);
+    if (strlen(stand_address -> standard_fields[15]))
+        stdaddr->unit       = strdup(stand_address -> standard_fields[15]);
+
+    return stdaddr;
+}
+
+
+STDADDR *std_standardize(STANDARDIZER *std, char *address, char *city, char *state, char *postcode, char *country, int options)
+{
+    return NULL;
+}
+
+#else
+
+/*========================================================================
+<summary>
+	<function name='standard.c (init_stand_process)'/>
+	<remarks>set up process level, opens the lexicons and rules
+		and default definitions for the tokenizer</remarks>
+	<calls><functionref='(gamma.c) create_rules'/>, <functionref='(lexicon.c) create_lexicon'/>,
+		<functionref='(tokenize.c) setup_default_defs'/> and 
+		<functionref='(analyze.c) install_def_block_table'/></calls>
+</summary>
+=========================================================================*/
+int init_stand_process(PAGC_GLOBAL *__pagc_global__ ,const char *__rule_name__, const char *__lexicon_name__ , const char *__gazetteer_name__ , const char *__featword_name__)
+{
+	if ((__pagc_global__->rules = create_rules(__rule_name__,__pagc_global__)) == NULL)
+	{
+		return FALSE ;
+	}
+	/*-- <revision date='2009-08-13'> Support multiple lexicons </revision> --*/
+	if ((__pagc_global__->addr_lexicon = create_lexicon(__pagc_global__ ,__lexicon_name__ , __gazetteer_name__)) == NULL)
+	{
+		return FALSE ;
+	}
+	if ((__pagc_global__->poi_lexicon = create_lexicon(__pagc_global__ ,__featword_name__ ,NULL)) == NULL) 
+	{
+		return FALSE ;
+	}
+#ifdef GAZ_LEXICON
+	/*-- <revision date='2012-06-01'> Add gaz_lexicon to be triggered on _start_state_ = MACRO </revision> --*/
+	if ((__pagc_global__->gaz_lexicon = create_lexicon(__pagc_global__,__gazetteer_name__,NULL)) == NULL) 
+	{
+		return FALSE ;
+	}
+#endif
+	if (!setup_default_defs(__pagc_global__))
+	{
+		return FALSE ;
+	}
+	return (install_def_block_table(__pagc_global__->addr_lexicon ,__pagc_global__->process_errors)) ;
+}
+
+#endif
+
+/*========================================================================
+<summary>
+	<function name='standard.c (close_stand_process)'/>
+	<remarks> Called on exit to close down standardizer </remarks>
+	<calls> <functionref='(tokenize.c) remove_default_defs'/>,
+		<functionref='(gamma.c) destroy_rules'/> and 
+		<functionref='lexicon.c (destroy_lexicon)'/></calls>
+</summary>
+=========================================================================*/
+void close_stand_process(PAGC_GLOBAL * __pagc_global__)
+{
+	if (__pagc_global__ == NULL)
+	{
+		return ;
+	}
+    DBG("remove_default_defs(__pagc_global__)");
+	remove_default_defs(__pagc_global__) ;
+    DBG("destroy_rules(__pagc_global__->rules) ;");
+	destroy_rules(__pagc_global__->rules) ;
+	/*-- <revision date='2009-08-13'> Support multiple lexicons </revision> --*/
+    DBG("destroy_lexicon(__pagc_global__->addr_lexicon)");
+	destroy_lexicon(__pagc_global__->addr_lexicon) ;
+    DBG("destroy_lexicon(__pagc_global__->poi_lexicon)");
+	destroy_lexicon(__pagc_global__->poi_lexicon) ;
+	/*-- <revision date='2012-06-01'> Add gaz_lexicon to be triggered on _start_state_ = MACRO </revision> --*/
+#ifdef GAZ_LEXICON
+    DBG("destroy_lexicon(__pagc_global__->gaz_lexicon)");
+	destroy_lexicon(__pagc_global__->gaz_lexicon) ; 
+#endif
+}
+
+/*========================================================================
+<summary>
+	<function name='standard.c (init_stand_context)'/>
+	<param name='__err_param__'>belongs to the dataset context.</param>
+	<calls><functionref='analyze.c (create_segments)'/>
+	<returns>NULL returned on error - if so, call <functionref='close_stand_context'/></returns>
+</summary>
+=========================================================================*/
+STAND_PARAM *init_stand_context(PAGC_GLOBAL *__pagc_global__,ERR_PARAM *__err_param__,int exhaustive_flag)
+{
+	STAND_PARAM *__stand_param__ ;
+	/*-- <remarks> Initialization-time allocation </remarks> --*/
+	PAGC_CALLOC_STRUC(__stand_param__,STAND_PARAM,1,__err_param__,NULL) ;
+	if ((__stand_param__->stz_info = create_segments(__err_param__)) == NULL)
+	{
+		return NULL ;
+	}
+	PAGC_CALLOC_2D_ARRAY(__stand_param__->standard_fields, char, MAXOUTSYM, MAXFLDLEN, __err_param__, NULL) ;
+	__stand_param__->analyze_complete = exhaustive_flag ;
+	__stand_param__->errors = __err_param__ ;
+	__stand_param__->have_ref_att = NULL  ;
+	/*-- <remarks> Transfer from global </remarks> --*/
+	__stand_param__->rules = __pagc_global__->rules ;
+	/*-- <revision date='2009-08-13'> Support multiple lexicons </revision> --*/
+	/*-- <remarks> Transfer from global </remarks> --*/
+	__stand_param__->address_lexicon = __pagc_global__->addr_lexicon ;
+	/*-- <remarks> Transfer from global </remarks> --*/
+	__stand_param__->poi_lexicon = __pagc_global__->poi_lexicon ;
+	/*-- <revision date='2012-06-01'> Add gaz_lexicon to be triggered on _start_state_ = MACRO </revision> --*/
+#ifdef GAZ_LEXICON
+	__stand_param__->gaz_lexicon = __pagc_global__->gaz_lexicon ;
+#endif
+	__stand_param__->default_def = __pagc_global__->default_def ;
+	return __stand_param__ ;
+}
+
+
+/*========================================================================
+<summary>
+	<function name='standard.c (close_stand_context)'/>
+	<remarks> Closes the <code>STAND_PARAM</code> record </remarks>
+	<calls> <functionref='analyze.c (destroy_segments)'/>,
+		<macroref='FREE_AND_NULL'/></calls>
+<summary>
+=========================================================================*/
+void close_stand_context( STAND_PARAM *__stand_param__ ) 
+{
+	if (__stand_param__ == NULL) 
+	{
+		return ;
+	}
+	destroy_segments(__stand_param__->stz_info) ;
+	if (__stand_param__->standard_fields != NULL)
+	{
+		PAGC_DESTROY_2D_ARRAY(__stand_param__->standard_fields,char,MAXOUTSYM) ;
+	}
+	/*-- <remarks> Cleanup time memory release </remarks> --*/
+	FREE_AND_NULL(__stand_param__) ;
+}
+
+/*========================================================================
+<summary>
+	<function name='standard.c (_Close_Stand_Field_)'/>
+	<remarks> Sends the scanned and processed input to the evaluator </remarks>
+	<called-by> <functionref='standard.c (standardize_field)'/></called-by>
+	<calls> <functionref='analyze.c (evaluator)'/> , <functionref='export.c (stuff_fields)'/></calls>
+	<returns>FALSE on error</returns>
+	<revision date='2012-07-22'> Keep track of start_state </revision>
+</summary>
+=========================================================================*/
+static int _Close_Stand_Field_(STAND_PARAM *__stand_param__)
+{
+	/*-- <revision date='2012-07-22'> Keep track of start_state </revision> --*/
+	if (evaluator(__stand_param__))
+	{
+		/*-- <remarks> Write the output into the fields. </remarks> --*/
+		stuff_fields(__stand_param__) ;
+		return TRUE ;
+	}
+	RET_ERR("_Close_Stand_Field_: Address failed to standardize",__stand_param__->errors,FALSE) ;
+}
+
diff --git a/extensions/address_standardizer/std_pg_hash.c b/extensions/address_standardizer/std_pg_hash.c
new file mode 100644
index 0000000..8f1e95c
--- /dev/null
+++ b/extensions/address_standardizer/std_pg_hash.c
@@ -0,0 +1,895 @@
+
+
+/* PostgreSQL headers */
+#include "postgres.h"
+#include "fmgr.h"
+#include "miscadmin.h"
+#include "utils/memutils.h"
+#include "executor/spi.h"
+#include "access/hash.h"
+#include "utils/hsearch.h"
+#include "funcapi.h"
+#include "catalog/pg_type.h"
+
+/* standardizer headers */
+#undef DEBUG
+//#define DEBUG 1
+
+#include "pagc_api.h"
+#include "pagc_std_api.h"
+#include "std_pg_hash.h"
+
+/* C headers */
+#include <sys/time.h>
+#include <string.h>
+#include <stdio.h>
+#include <errno.h>
+
+#ifdef DEBUG
+#define SET_TIME(a) gettimeofday(&(a), NULL)
+#define ELAPSED_T(a,b) \
+    elapsed = (b.tv_sec - a.tv_sec)*1000.0; \
+    elapsed += (b.tv_usec - a.tv_usec)/1000.0;
+#else
+#define SET_TIME(a) do { ; } while (0)
+#define ELAPSED_T(a,b) do { ; } while (0)
+#endif
+
+#define MAX_RULE_LENGTH 128
+#define TUPLIMIT 1000
+
+#define STD_CACHE_ITEMS 4
+#define STD_BACKEND_HASH_SIZE 16
+
+static HTAB* StdHash = NULL;
+
+
+typedef struct
+{
+    char *lextab;
+    char *gaztab;
+    char *rultab;
+    STANDARDIZER *std;
+    MemoryContext std_mcxt;
+}
+StdCacheItem;
+
+typedef struct
+{
+    StdCacheItem StdCache[STD_CACHE_ITEMS];
+    int NextSlot;
+    MemoryContext StdCacheContext;
+}
+StdPortalCache;
+
+typedef struct
+{
+    MemoryContext context;
+    STANDARDIZER *std;
+}
+StdHashEntry;
+
+typedef struct lex_columns
+{
+    int seq;
+    int word;
+    int stdword;
+    int token;
+} lex_columns_t;
+
+typedef struct rules_columns
+{
+    int rule;
+} rules_columns_t;
+
+
+
+/* Memory context hash table function prototypes */
+uint32 mcxt_ptr_hash_std(const void *key, Size keysize);
+static void CreateStdHash(void);
+static void AddStdHashEntry(MemoryContext mcxt, STANDARDIZER *std);
+static StdHashEntry *GetStdHashEntry(MemoryContext mcxt);
+static void DeleteStdHashEntry(MemoryContext mcxt);
+
+/* Memory context cache function prototypes */
+static void StdCacheInit(MemoryContext context);
+static void StdCacheReset(MemoryContext context);
+static void StdCacheDelete(MemoryContext context);
+static bool StdCacheIsEmpty(MemoryContext context);
+static void StdCacheStats(MemoryContext context, int level);
+#ifdef MEMORY_CONTEXT_CHECKING
+static void StdCacheCheck(MemoryContext context);
+#endif
+
+static bool IsInStdPortalCache(StdPortalCache *STDCache,  char *lextab, char *gaztab, char *rultab);
+static STANDARDIZER *GetStdFromPortalCache(StdPortalCache *STDCache,  char *lextab, char *gaztab, char *rultab);
+static void AddToStdPortalCache(StdPortalCache *STDCache, char *lextab, char *gaztab, char *rultab);
+static StdPortalCache *GetStdPortalCache(FunctionCallInfo fcinfo);
+
+
+/* standardizer api functions */
+
+static STANDARDIZER *CreateStd(char *lextab, char *gaztab, char *rultab);
+static int parse_rule(char *buf, int *rule);
+static int fetch_lex_columns(SPITupleTable *tuptable, lex_columns_t *lex_cols);
+static int tableNameOk(char *t);
+static int load_lex(LEXICON *lex, char *tabname);
+static int fetch_rules_columns(SPITupleTable *tuptable, rules_columns_t *rules_cols);
+static int load_rules(RULES *rules, char *tabname);
+
+
+/* Memory context definition must match the current version of PostgreSQL */
+static MemoryContextMethods StdCacheContextMethods =
+{
+    NULL,
+    NULL,
+    NULL,
+    StdCacheInit,
+    StdCacheReset,
+    StdCacheDelete,
+    NULL,
+    StdCacheIsEmpty,
+    StdCacheStats
+#ifdef MEMORY_CONTEXT_CHECKING
+    , StdCacheCheck
+#endif
+};
+
+
+static void
+StdCacheInit(MemoryContext context)
+{
+    /* NOP - initialized when first used. */
+}
+
+
+static void
+StdCacheReset(MemoryContext context)
+{
+    // NOP - Seems to be a required function
+}
+
+
+static void
+StdCacheDelete(MemoryContext context)
+{
+    StdHashEntry *she;
+
+    DBG("Enter: StdCacheDelete");
+    /* lookup the hash entry in the global hash table
+       so we can free it */
+    she = GetStdHashEntry(context);
+
+    if (!she)
+        elog(ERROR, "StdCacheDelete: Trying to delete non-existant hash entry object with MemoryContext key (%p)", (void *)context);
+
+    DBG("deleting std object (%p) with MemoryContext key (%p)", she->std, context);
+
+    if (she->std)
+        std_free(she->std);
+
+    DeleteStdHashEntry(context);
+}
+
+
+static bool
+StdCacheIsEmpty(MemoryContext context)
+{
+    // always return false - another required function
+    return FALSE;
+}
+
+
+static void
+StdCacheStats(MemoryContext context, int level)
+{
+    // another required function
+    fprintf(stderr, "%s: STANDARDIZER context\n", context->name);
+}
+
+
+#ifdef MEMORY_CONTEXT_CHECKING
+static void
+StdCacheCheck(MemoryContext context)
+{
+    // NOP - another reuired function
+}
+#endif
+
+
+uint32
+mcxt_ptr_hash_std(const void *key, Size keysize)
+{
+    uint32 hashval;
+    hashval = DatumGetUInt32(hash_any(key, keysize));
+    return hashval;
+}
+
+
+static void
+CreateStdHash(void)
+{
+    HASHCTL ctl;
+    
+    ctl.keysize = sizeof(MemoryContext);
+    ctl.entrysize = sizeof(StdHashEntry);
+    ctl.hash = mcxt_ptr_hash_std;
+
+    StdHash = hash_create("PAGC Address Standardizer Backend MemoryContext Hash", STD_BACKEND_HASH_SIZE, &ctl, (HASH_ELEM | HASH_FUNCTION));
+    DBG("CreateStdHash: created StdHash (%p)", StdHash);
+}
+
+
+static void
+AddStdHashEntry(MemoryContext mcxt, STANDARDIZER *std)
+{
+    bool found;
+    void **key;
+    StdHashEntry *he;
+
+    DBG("Enter: AddStdHashEntry(mcxt=%p, std=%p)", mcxt, std);
+    /* The hash key is the MemoryContext pointer */
+    key = (void *)&mcxt;
+
+    he = (StdHashEntry *) hash_search(StdHash, key, HASH_ENTER, &found);
+    DBG("AddStdHashEntry: he=%p, found=%d", he, found);
+    if (!found) {
+        DBG("&he->context=%p", &he->context);
+        he->context = mcxt;
+        DBG("&he->std=%p", &he->std);
+        he->std = std;
+        DBG("Leaving AddStdHashEntry");
+    }
+    else {
+        elog(ERROR, "AddStdHashEntry: This memory context is already in use! (%p)", (void *)mcxt);
+    }
+}
+
+static StdHashEntry *
+GetStdHashEntry(MemoryContext mcxt)
+{
+    void **key;
+    StdHashEntry *he;
+
+    DBG("Enter: GetStdHashEntry");
+    key = (void *)&mcxt;
+    he = (StdHashEntry *) hash_search(StdHash, key, HASH_FIND, NULL);
+    return he;
+}
+
+
+static void
+DeleteStdHashEntry(MemoryContext mcxt)
+{
+    void **key;
+    StdHashEntry *he;
+
+    DBG("Enter: DeleteStdHashEntry");
+    key = (void *)&mcxt;
+    he = (StdHashEntry *) hash_search(StdHash, key, HASH_REMOVE, NULL);
+    if (!he)
+        elog(ERROR, "DeleteStdHashEntry: There was an error removing the STD object from this MemoryContext (%p)", (void *)mcxt);
+
+    he->std = NULL;
+}
+
+
+/* public api */
+bool
+IsInStdCache(StdCache STDCache, char *lextab, char *gaztab, char *rultab) {
+    return IsInStdPortalCache((StdPortalCache *) STDCache, lextab, gaztab, rultab);
+}
+
+
+static bool
+IsInStdPortalCache(StdPortalCache *STDCache,  char *lextab, char *gaztab, char *rultab)
+{
+    int i;
+
+    DBG("Enter: IsInStdPortalCache");
+    for (i=0; i<STD_CACHE_ITEMS; i++) {
+        StdCacheItem *ci = &STDCache->StdCache[i];
+        if (ci->lextab && !strcmp(ci->lextab, lextab) &&
+            ci->lextab && !strcmp(ci->gaztab, gaztab) &&
+            ci->lextab && !strcmp(ci->rultab, rultab))
+                return TRUE;
+    }
+
+    return FALSE;
+}
+
+
+/* public api */
+STANDARDIZER *
+GetStdFromStdCache(StdCache STDCache,  char *lextab, char *gaztab, char *rultab) {
+    return GetStdFromPortalCache((StdPortalCache *) STDCache, lextab, gaztab, rultab);
+}
+
+
+static STANDARDIZER *
+GetStdFromPortalCache(StdPortalCache *STDCache,  char *lextab, char *gaztab, char *rultab)
+{
+    int i;
+
+    DBG("Enter: GetStdFromPortalCache");
+    for (i=0; i<STD_CACHE_ITEMS; i++) {
+        StdCacheItem *ci = &STDCache->StdCache[i];
+        if (ci->lextab && !strcmp(ci->lextab, lextab) &&
+            ci->lextab && !strcmp(ci->gaztab, gaztab) &&
+            ci->lextab && !strcmp(ci->rultab, rultab))
+                return STDCache->StdCache[i].std;
+    }
+
+    return NULL;
+}
+
+
+static void
+DeleteNextSlotFromStdCache(StdPortalCache *STDCache)
+{
+    MemoryContext old_context;
+
+    DBG("Enter: DeleteNextSlotFromStdCache");
+    if (STDCache->StdCache[STDCache->NextSlot].std != NULL) {
+        StdCacheItem *ce = &STDCache->StdCache[STDCache->NextSlot];
+        DBG("Removing STD cache entry ('%s', '%s', '%s') index %d", ce->lextab, ce->gaztab, ce->rultab, STDCache->NextSlot);
+
+        /* zero out the entries and free the memory context
+           We will get a callback to free the std object.
+        */
+        old_context = MemoryContextSwitchTo(STDCache->StdCacheContext);
+        MemoryContextDelete(ce->std_mcxt);
+        pfree(ce->lextab);
+        ce->lextab = NULL;
+        pfree(ce->gaztab);
+        ce->gaztab = NULL;
+        pfree(ce->rultab);
+        ce->rultab = NULL;
+        ce->std    = NULL;
+        MemoryContextSwitchTo(old_context);
+    }
+}
+
+
+/* public api */
+void
+AddToStdCache(StdCache cache, char *lextab, char *gaztab, char *rultab) {
+    AddToStdPortalCache((StdPortalCache *) cache, lextab, gaztab, rultab);
+}
+
+
+static void
+AddToStdPortalCache(StdPortalCache *STDCache, char *lextab, char *gaztab, char *rultab)
+{
+    MemoryContext STDMemoryContext;
+    MemoryContext old_context;
+    STANDARDIZER *std = NULL;
+
+    DBG("Enter: AddToStdPortalCache");
+    std = CreateStd(lextab, gaztab, rultab);
+    if (!std)
+        elog(ERROR,
+            "AddToStdPortalCache: could not create address standardizer for '%s', '%s', '%s'", lextab, gaztab, rultab);
+
+    /* if the NextSlot in the cache is used, then delete it */
+    if (STDCache->StdCache[STDCache->NextSlot].std != NULL) {
+#ifdef DEBUG
+        StdCacheItem *ce = &STDCache->StdCache[STDCache->NextSlot];
+        DBG("Removing item from STD cache ('%s', '%s', '%s') index %d", ce->lextab, ce->gaztab, ce->rultab, STDCache->NextSlot);
+#endif
+        DeleteNextSlotFromStdCache(STDCache);
+    }
+
+    DBG("Adding item to STD cache ('%s', '%s', '%s') index %d", lextab, gaztab, rultab, STDCache->NextSlot);
+
+    STDMemoryContext = MemoryContextCreate(T_AllocSetContext, 8192,
+                                           &StdCacheContextMethods,
+                                           STDCache->StdCacheContext,
+                                           "PAGC STD Memory Context");
+
+    /* Create the backend hash if it doesn't already exist */
+    DBG("Check if StdHash exists (%p)", StdHash);
+    if (!StdHash)
+        CreateStdHash();
+
+    /*
+     * Add the MemoryContext to the backend hash so we can
+     * clean up upon portal shutdown
+     */
+    DBG("Adding standardizer obj (%p) to hash table with MemoryContext key (%p)", std, STDMemoryContext);
+
+    AddStdHashEntry(STDMemoryContext, std);
+
+    /* change memory contexts so the pstrdup are allocated in the
+     * context of this cache item. They will be freed when the
+     * cache item is deleted.
+    */
+    DBG("AddToStdPortalCache: changing memory context to %p", STDCache->StdCacheContext);
+    old_context = MemoryContextSwitchTo(STDCache->StdCacheContext);
+    DBG("  old_context= %p", old_context);
+    STDCache->StdCache[STDCache->NextSlot].lextab = pstrdup(lextab);
+    DBG("  pstrdup(lextab) completed");
+    STDCache->StdCache[STDCache->NextSlot].gaztab = pstrdup(gaztab);
+    DBG("  pstrdup(gaztab) completed");
+    STDCache->StdCache[STDCache->NextSlot].rultab = pstrdup(rultab);
+    DBG("  pstrdup(rultab) completed");
+    MemoryContextSwitchTo(old_context);
+    DBG(" changed memory context to %p", old_context);
+
+    STDCache->StdCache[STDCache->NextSlot].std = std;
+    STDCache->StdCache[STDCache->NextSlot].std_mcxt = STDMemoryContext;
+    STDCache->NextSlot = (STDCache->NextSlot + 1) % STD_CACHE_ITEMS;
+    DBG("STDCache->NextSlot=%d", STDCache->NextSlot);
+}
+
+
+/* pubilc api */
+StdCache
+GetStdCache(FunctionCallInfo fcinfo) {
+    return (StdCache) GetStdPortalCache(fcinfo);
+}
+
+
+static StdPortalCache *
+GetStdPortalCache(FunctionCallInfo fcinfo)
+{
+    StdPortalCache *STDCache;
+
+    DBG("Enter: GetStdPortalCache");
+    /* create it if we don't already have one for this portal */
+    if (fcinfo->flinfo->fn_extra == NULL) {
+        MemoryContext old_context;
+
+        old_context = MemoryContextSwitchTo(fcinfo->flinfo->fn_mcxt);
+        STDCache = palloc(sizeof(StdPortalCache));
+        MemoryContextSwitchTo(old_context);
+
+        if (STDCache) {
+            int i;
+
+            DBG("Allocating STDCache for portal with STD MemoryContext (%p)", fcinfo->flinfo->fn_mcxt);
+            /* initial the cache items */
+            for (i=0; i<STD_CACHE_ITEMS; i++) {
+                STDCache->StdCache[i].lextab   = NULL;
+                STDCache->StdCache[i].gaztab   = NULL;
+                STDCache->StdCache[i].rultab   = NULL;
+                STDCache->StdCache[i].std      = NULL;
+                STDCache->StdCache[i].std_mcxt = NULL;
+            }
+            STDCache->NextSlot = 0;
+            STDCache->StdCacheContext = fcinfo->flinfo->fn_mcxt;
+
+            /* Store the pointer in fcinfo->flinfo->fn_extra */
+            fcinfo->flinfo->fn_extra = STDCache;
+        }
+    }
+    else {
+        /* Use the existing cache */
+        STDCache = fcinfo->flinfo->fn_extra;
+    }
+
+    return STDCache;
+}
+
+/* public api */
+STANDARDIZER *
+GetStdUsingFCInfo(FunctionCallInfo fcinfo, char *lextab, char *gaztab, char *rultab)
+{
+    STANDARDIZER *std;
+    StdCache *std_cache = NULL;
+
+    DBG("GetStdUsingFCInfo: calling GetStdCache(fcinfo)");
+    std_cache = GetStdCache(fcinfo);
+    if (!std_cache)
+        return NULL;
+
+    DBG("GetStdUsingFCInfo: calling IsInStdCache(std_cache, lextab, gaztab, rultab)");
+    if (!IsInStdCache(std_cache, lextab, gaztab, rultab)) {
+        DBG("GetStdUsingFCInfo: calling AddToStdCache(std_cache, lextab, gaztab, rultab)");
+        AddToStdCache(std_cache, lextab, gaztab, rultab);
+    }
+
+    DBG("GetStdUsingFCInfo: GetStdFromStdCache(std_cache, lextab, gaztab, rultab)");
+    std = GetStdFromStdCache(std_cache, lextab, gaztab, rultab);
+
+    return std;
+}
+
+
+static STANDARDIZER *
+CreateStd(char *lextab, char *gaztab, char *rultab)
+{
+    STANDARDIZER        *std;
+    LEXICON             *lex;
+    LEXICON             *gaz;
+    RULES               *rules;
+    int                  err;
+    int                  SPIcode;
+
+    DBG("Enter: CreateStd");
+    SPIcode = SPI_connect();
+    if (SPIcode != SPI_OK_CONNECT) {
+        elog(ERROR, "CreateStd: couldn't open a connection to SPI");
+    }
+
+    std = std_init();
+    if (!std)
+        elog(ERROR, "CreateStd: could not allocate memory (std)");
+
+    lex = lex_init(std->err_p);
+    if (!lex) {
+        std_free(std);
+        SPI_finish();
+        elog(ERROR, "CreateStd: could not allocate memory (lex)");
+    }
+
+    err = load_lex(lex, lextab);
+    if (err == -1) {
+        lex_free(lex);
+        std_free(std);
+        SPI_finish();
+        elog(ERROR, "CreateStd: failed to load '%s' for lexicon", lextab);
+    }
+
+    gaz = lex_init(std->err_p);
+    if (!gaz) {
+        lex_free(lex);
+        std_free(std);
+        SPI_finish();
+        elog(ERROR, "CreateStd: could not allocate memory (gaz)");
+    }
+
+    err = load_lex(gaz, gaztab);
+    if (err == -1) {
+        lex_free(gaz);
+        lex_free(lex);
+        std_free(std);
+        SPI_finish();
+        elog(ERROR, "CreateStd: failed to load '%s' for gazeteer", gaztab);
+    }
+
+    rules = rules_init(std->err_p);
+    if (!rules) {
+        lex_free(gaz);
+        lex_free(lex);
+        std_free(std);
+        SPI_finish();
+        elog(ERROR, "CreateStd: could not allocate memory (rules)");
+    }
+
+    err = load_rules(rules, rultab);
+    if (err == -1) {
+        rules_free(rules);
+        lex_free(gaz);
+        lex_free(lex);
+        std_free(std);
+        SPI_finish();
+        elog(ERROR, "CreateStd: failed to load '%s' for rules", rultab);
+    }
+
+    std_use_lex(std, lex);
+    std_use_gaz(std, gaz);
+    std_use_rules(std, rules);
+    std_ready_standardizer(std);
+
+    SPI_finish();
+
+    return std;
+}
+
+
+static int parse_rule(char *buf, int *rule)
+{
+    int nr = 0;
+    int *r = rule;
+    char *p = buf;
+    char *q;
+
+
+    while (1) {
+        *r = strtol( p, &q, 10 );
+        if (p == q) break;
+        p = q;
+        nr++;
+        r++;
+        if (nr > MAX_RULE_LENGTH) return -1;
+    }
+
+    return nr;
+}
+
+
+#define FETCH_COL(TRGT,NAME,NAME2) \
+    TRGT->NAME = SPI_fnumber(SPI_tuptable->tupdesc,NAME2);\
+    if (TRGT->NAME == SPI_ERROR_NOATTRIBUTE) err++;
+
+#define CHECK_TYP(TRGT,NAME,TYPE) \
+    if (SPI_gettypeid(SPI_tuptable->tupdesc, TRGT->NAME) != TYPE) {\
+        DBG("CHECK_TYP: expecting %d, got: %d", TYPE, SPI_gettypeid(SPI_tuptable->tupdesc, TRGT->NAME));\
+        err++;\
+    }
+
+#define GET_INT_FROM_TUPLE(TRGT,WHICH,NULLMSG) \
+    binval = SPI_getbinval(tuple, tupdesc, WHICH, &isnull);\
+    if (isnull) { \
+        elog(NOTICE, NULLMSG); \
+        return -1; \
+    } \
+    TRGT = DatumGetInt32(binval);
+
+#define GET_TEXT_FROM_TUPLE(TRGT,WHICH) \
+    TRGT = DatumGetCString(SPI_getvalue(tuple, tupdesc, WHICH));
+
+
+static int fetch_lex_columns(SPITupleTable *tuptable, lex_columns_t *lex_cols)
+{
+    int err = 0;
+    FETCH_COL(lex_cols,seq,"seq");
+    FETCH_COL(lex_cols,word,"word");
+    FETCH_COL(lex_cols,stdword,"stdword");
+    FETCH_COL(lex_cols,token,"token");
+    if (err) {
+        elog(NOTICE, "lexicon queries must return columns 'seq', 'word', 'stdword' and 'token'");
+        return -1;
+    }
+    CHECK_TYP(lex_cols,seq,INT4OID);
+    CHECK_TYP(lex_cols,word,TEXTOID);
+    CHECK_TYP(lex_cols,stdword,TEXTOID);
+    CHECK_TYP(lex_cols,token,INT4OID);
+    if (err) {
+        elog(NOTICE, "lexicon column types must be: 'seq' int4, 'word' text, 'stdword' text, and 'token' int4");
+        return -1;
+    }
+    return 0;
+}
+
+/* snitize table names, leave '.' for schema */
+
+static int tableNameOk(char *t)
+{
+    while (*t != '\0') {
+        if (!(isalnum(*t) || *t == '_' || *t == '.' || *t == '"'))
+            return 0;
+        t++;
+    }
+    return 1;
+}
+
+static int load_lex(LEXICON *lex, char *tab)
+{
+    int ret;
+    SPIPlanPtr SPIplan;
+    Portal SPIportal;
+    bool moredata = TRUE;
+#ifdef DEBUG
+    struct timeval t1, t2;
+    double elapsed;
+#endif
+    char *sql;
+
+    int ntuples;
+    int total_tuples = 0;
+
+    lex_columns_t lex_columns = {seq: -1, word: -1, stdword: -1, token: -1};
+
+    int seq;
+    char *word;
+    char *stdword;
+    int token;
+
+    DBG("start load_lex\n");
+    SET_TIME(t1);
+
+    if (!tab || !strlen(tab)) {
+        elog(NOTICE, "load_lex: rules table is not usable");
+        return -1;
+    }
+    if (!tableNameOk(tab)) {
+        elog(NOTICE, "load_lex: lex and gaz table names may only be alphanum and '.\"_' characters (%s)", tab);
+        return -1;
+    }
+    sql = SPI_palloc(strlen(tab)+65);
+    strcpy(sql, "select seq, word, stdword, token from ");
+    strcat(sql, tab);
+    strcat(sql, " order by id ");
+
+    /* get the sql for the lexicon records and prepare the query */
+    SPIplan = SPI_prepare(sql, 0, NULL);
+    if (SPIplan == NULL) {
+        elog(NOTICE, "load_lex: couldn't create query plan for the lex data via SPI (%s)", sql);
+        return -1;
+    }
+
+    /* get the sql for the lexicon records and prepare the query */
+    SPIplan = SPI_prepare(sql, 0, NULL);
+    if (SPIplan == NULL) {
+        elog(NOTICE, "load_lex: couldn't create query plan for the lexicon data via SPI");
+        return -1;
+    }
+
+    if ((SPIportal = SPI_cursor_open(NULL, SPIplan, NULL, NULL, true)) == NULL) {
+        elog(NOTICE, "load_lex: SPI_cursor_open('%s') returns NULL", sql);
+        return -1;
+    }
+
+    while (moredata == TRUE) {
+        //DBG("calling SPI_cursor_fetch");
+        SPI_cursor_fetch(SPIportal, TRUE, TUPLIMIT);
+
+        if (SPI_tuptable == NULL) {
+            elog(NOTICE, "load_lex: SPI_tuptable is NULL");
+            return -1;
+        }
+
+        if (lex_columns.seq == -1) {
+            ret = fetch_lex_columns(SPI_tuptable, &lex_columns);
+            if (ret)
+                return ret;
+        }
+
+        ntuples = SPI_processed;
+        //DBG("Reading edges: %i - %i", total_tuples, total_tuples+ntuples);
+        total_tuples += ntuples;
+
+        if (ntuples > 0) {
+            int t;
+            Datum binval;
+            bool isnull;
+            SPITupleTable *tuptable = SPI_tuptable;
+            TupleDesc tupdesc = SPI_tuptable->tupdesc;
+
+            for (t = 0; t < ntuples; t++) {
+                //if (t%100 == 0) { DBG("    t: %i", t); }
+                HeapTuple tuple = tuptable->vals[t];
+                GET_INT_FROM_TUPLE(seq,lex_columns.seq,"load_lex: seq contains a null value");
+                GET_TEXT_FROM_TUPLE(word,lex_columns.word);
+                GET_TEXT_FROM_TUPLE(stdword,lex_columns.stdword);
+                GET_INT_FROM_TUPLE(token,lex_columns.token,"load_lex: token contains a null value");
+                lex_add_entry(lex, seq, word, stdword, token);
+            }
+            //DBG("calling SPI_freetuptable");
+            SPI_freetuptable(tuptable);
+            //DBG("back from SPI_freetuptable");
+        }
+        else
+            moredata = FALSE;
+
+    }
+
+    SET_TIME(t2);
+    ELAPSED_T(t1, t2);
+    DBG("Time to read %i lexicon records: %.1f ms.", total_tuples, elapsed);
+
+    return 0;
+}
+
+static int fetch_rules_columns(SPITupleTable *tuptable, rules_columns_t *rules_cols)
+{
+    int err = 0;
+    FETCH_COL(rules_cols,rule,"rule");
+    if (err) {
+        elog(NOTICE, "rules queries must return column 'rule'");
+        return -1;
+    }
+    CHECK_TYP(rules_cols,rule,TEXTOID);
+    if (err) {
+        elog(NOTICE, "rules column type must be: 'rule' text");
+        return -1;
+    }
+    return 0;
+}
+
+static int load_rules(RULES *rules, char *tab)
+{
+    int ret;
+    SPIPlanPtr SPIplan;
+    Portal SPIportal;
+    bool moredata = TRUE;
+#ifdef DEBUG
+    struct timeval t1, t2;
+    double elapsed;
+#endif
+    char *sql;
+
+    int rule_arr[MAX_RULE_LENGTH];
+
+    int ntuples;
+    int total_tuples = 0;
+
+    rules_columns_t rules_columns = {rule: -1};
+
+    char *rule;
+
+    DBG("start load_rules\n");
+    SET_TIME(t1);
+
+    if (!tab || !strlen(tab)) {
+        elog(NOTICE, "load_rules: rules table is not usable");
+        return -1;
+    }
+    if (!tableNameOk(tab)) {
+        elog(NOTICE, "load_rules: rules table name may only be alphanum and '.\"_' characters (%s)", tab);
+        return -1;
+    }
+    sql = SPI_palloc(strlen(tab)+35);
+    strcpy(sql, "select rule from ");
+    strcat(sql, tab);
+    strcat(sql, " order by id ");
+
+    /* get the sql for the lexicon records and prepare the query */
+    SPIplan = SPI_prepare(sql, 0, NULL);
+    if (SPIplan == NULL) {
+        elog(NOTICE, "load_rules: couldn't create query plan for the rule data via SPI (%s)", sql);
+        return -1;
+    }
+
+    if ((SPIportal = SPI_cursor_open(NULL, SPIplan, NULL, NULL, true)) == NULL) {
+        elog(NOTICE, "load_rules: SPI_cursor_open('%s') returns NULL", sql);
+        return -1;
+    }
+
+    while (moredata == TRUE) {
+        //DBG("calling SPI_cursor_fetch");
+        SPI_cursor_fetch(SPIportal, TRUE, TUPLIMIT);
+
+        if (SPI_tuptable == NULL) {
+            elog(NOTICE, "load_rules: SPI_tuptable is NULL");
+            return -1;
+        }
+
+        if (rules_columns.rule == -1) {
+            ret = fetch_rules_columns(SPI_tuptable, &rules_columns);
+            if (ret)
+                return ret;
+        }
+
+        ntuples = SPI_processed;
+        //DBG("Reading edges: %i - %i", total_tuples, total_tuples+ntuples);
+
+        if (ntuples > 0) {
+            int t;
+            SPITupleTable *tuptable = SPI_tuptable;
+            TupleDesc tupdesc = SPI_tuptable->tupdesc;
+
+            for (t = 0; t < ntuples; t++) {
+                int nr;
+                //if (t%100 == 0) { DBG("    t: %i", t); }
+                HeapTuple tuple = tuptable->vals[t];
+                GET_TEXT_FROM_TUPLE(rule,rules_columns.rule);
+                nr = parse_rule(rule, rule_arr);
+                if (nr == -1) {
+                    elog(NOTICE, "load_roles: rule exceeds 128 terms");
+                    return -1;
+                }
+                ret = rules_add_rule(rules, nr, rule_arr);
+                if (ret != 0) {
+                    elog(NOTICE,"load_roles: failed to add rule %d (%d): %s",
+                         total_tuples+t+1, ret, rule);
+                    return -1;
+                }
+            }
+            //DBG("calling SPI_freetuptable");
+            SPI_freetuptable(tuptable);
+            //DBG("back from SPI_freetuptable");
+        }
+        else
+            moredata = FALSE;
+
+        total_tuples += ntuples;
+    }
+
+    ret = rules_ready(rules);
+    if (ret != 0) {
+        elog(NOTICE, "load_roles: failed to ready the rules: err: %d", ret);
+        return -1;
+    }
+
+
+    SET_TIME(t2);
+    ELAPSED_T(t1, t2);
+    DBG("Time to read %i rule records: %.1f ms.", total_tuples, elapsed);
+
+    return 0;
+}
+
+
diff --git a/extensions/address_standardizer/std_pg_hash.h b/extensions/address_standardizer/std_pg_hash.h
new file mode 100644
index 0000000..89d3497
--- /dev/null
+++ b/extensions/address_standardizer/std_pg_hash.h
@@ -0,0 +1,16 @@
+
+/* Opaque type to use in standardizer cache API */
+typedef void *StdCache;
+
+StdCache GetStdCache(FunctionCallInfo fcinfo);
+bool IsInStdCache(StdCache STDCache, char *lextab, char *gaztab, char *rultab);
+void AddToStdCache(StdCache cache, char *lextab, char *gaztab, char *rultab);
+STANDARDIZER *GetStdFromStdCache(StdCache STDCache,  char *lextab, char *gaztab, char *rultab);
+
+/*
+ * This is the only interface external code should be calling
+ * it will get the standardizer out of the cache, or
+ * it will create a new one and save it in the cache
+*/
+STANDARDIZER *GetStdUsingFCInfo(FunctionCallInfo fcinfo, char *lextab, char *gaztab, char *rultab);
+
diff --git a/extensions/address_standardizer/test-init-extensions.sql.in b/extensions/address_standardizer/test-init-extensions.sql.in
new file mode 100644
index 0000000..388c44a
--- /dev/null
+++ b/extensions/address_standardizer/test-init-extensions.sql.in
@@ -0,0 +1,2 @@
+CREATE EXTENSION address_standardizer;
+CREATE EXTENSION address_standardizer_data_us;
\ No newline at end of file
diff --git a/extensions/address_standardizer/test-parseaddress.sql.in b/extensions/address_standardizer/test-parseaddress.sql.in
new file mode 100644
index 0000000..ed402bb
--- /dev/null
+++ b/extensions/address_standardizer/test-parseaddress.sql.in
@@ -0,0 +1,76 @@
+\pset pager off
+
+drop table if exists test_parse_address cascade;
+create table test_parse_address (
+    id serial not null primary key,
+    instring text not null,
+    outstring text
+);
+copy test_parse_address (instring, outstring) from stdin;
+@@ sttype dirs dirs words$	
+123 oak ln e n mycity ny	(123,"oak ln e",,"123 oak ln e","n mycity",NY,,,US)
+123 oak lane east n mycity ny	(123,"oak lane east",,"123 oak lane east","n mycity",NY,,,US)
+123 oak ln e north mycity ny	(123,"oak ln e",,"123 oak ln e","north mycity",NY,,,US)
+@@ sttype dirs dirs saint words$	
+123 oak ln e n st marie ny	(123,"oak ln e",,"123 oak ln e","n st marie",NY,,,US)
+123 oak lane east n st marie ny	(123,"oak lane east",,"123 oak lane east","n st marie",NY,,,US)
+123 oak ln e north st marie ny	(123,"oak ln e",,"123 oak ln e","north st marie",NY,,,US)
+123 oak ln e n saint marie ny	(123,"oak ln e",,"123 oak ln e","n saint marie",NY,,,US)
+123 oak lane east n saint marie ny	(123,"oak lane east",,"123 oak lane east","n saint marie",NY,,,US)
+123 oak ln e north saint marie ny	(123,"oak ln e",,"123 oak ln e","north saint marie",NY,,,US)
+@@ sttype dirs saint words$	
+123 oak ln e st marie ny	(123,"oak ln",,"123 oak ln","e st marie",NY,,,US)
+123 oak lane east st marie ny	(123,"oak lane",,"123 oak lane","east st marie",NY,,,US)
+123 oak ln e st marie ny	(123,"oak ln",,"123 oak ln","e st marie",NY,,,US)
+123 oak ln e saint marie ny	(123,"oak ln",,"123 oak ln","e saint marie",NY,,,US)
+123 oak lane east saint marie ny	(123,"oak lane",,"123 oak lane","east saint marie",NY,,,US)
+123 oak ln e saint marie ny	(123,"oak ln",,"123 oak ln","e saint marie",NY,,,US)
+@@ sttype saint words$	
+123 oak ln st marie ny	(123,"oak ln",,"123 oak ln","st marie",NY,,,US)
+123 oak lane st marie ny	(123,"oak lane",,"123 oak lane","st marie",NY,,,US)
+123 oak ln st marie ny	(123,"oak ln",,"123 oak ln","st marie",NY,,,US)
+123 oak ln saint marie ny	(123,"oak ln",,"123 oak ln","saint marie",NY,,,US)
+123 oak lane saint marie ny	(123,"oak lane",,"123 oak lane","saint marie",NY,,,US)
+123 oak ln saint marie ny	(123,"oak ln",,"123 oak ln","saint marie",NY,,,US)
+@@ sttype words$	
+123 oak ln marie ny	(123,"oak ln",,"123 oak ln",marie,NY,,,US)
+123 oak ln new marie ny	(123,"oak ln",,"123 oak ln","new marie",NY,,,US)
+@@ === same as above but with commas ===	
+@@ sttype dirs dirs words$	
+123 oak ln e, n mycity ny	(123,"oak ln e",,"123 oak ln e","n mycity",NY,,,US)
+123 oak lane east, n mycity ny	(123,"oak lane east",,"123 oak lane east","n mycity",NY,,,US)
+123 oak ln e, north mycity ny	(123,"oak ln e",,"123 oak ln e","north mycity",NY,,,US)
+123 oak ln e n, mycity ny	(123,"oak ln e n",,"123 oak ln e n",mycity,NY,,,US)
+123 oak lane east n, mycity ny	(123,"oak lane east n",,"123 oak lane east n",mycity,NY,,,US)
+123 oak ln e north, mycity ny	(123,"oak ln e north",,"123 oak ln e north",mycity,NY,,,US)
+@@ sttype dirs dirs saint words$	
+123 oak ln e, n st marie ny	(123,"oak ln e",,"123 oak ln e","n st marie",NY,,,US)
+123 oak lane east, n st marie ny	(123,"oak lane east",,"123 oak lane east","n st marie",NY,,,US)
+123 oak ln e, north st marie ny	(123,"oak ln e",,"123 oak ln e","north st marie",NY,,,US)
+123 oak ln e, n saint marie ny	(123,"oak ln e",,"123 oak ln e","n saint marie",NY,,,US)
+123 oak lane east, n saint marie ny	(123,"oak lane east",,"123 oak lane east","n saint marie",NY,,,US)
+123 oak ln e, north saint marie ny	(123,"oak ln e",,"123 oak ln e","north saint marie",NY,,,US)
+@@ sttype dirs saint words$	
+123 oak ln e, st marie ny	(123,"oak ln e",,"123 oak ln e","st marie",NY,,,US)
+123 oak lane east, st marie ny	(123,"oak lane east",,"123 oak lane east","st marie",NY,,,US)
+123 oak ln e, st marie ny	(123,"oak ln e",,"123 oak ln e","st marie",NY,,,US)
+123 oak ln e, saint marie ny	(123,"oak ln e",,"123 oak ln e","saint marie",NY,,,US)
+123 oak lane east, saint marie ny	(123,"oak lane east",,"123 oak lane east","saint marie",NY,,,US)
+123 oak ln e, saint marie ny	(123,"oak ln e",,"123 oak ln e","saint marie",NY,,,US)
+@@ sttype saint words$	
+123 oak ln, st marie ny	(123,"oak ln",,"123 oak ln","st marie",NY,,,US)
+123 oak lane, st marie ny	(123,"oak lane",,"123 oak lane","st marie",NY,,,US)
+123 oak ln, st marie ny	(123,"oak ln",,"123 oak ln","st marie",NY,,,US)
+123 oak ln, saint marie ny	(123,"oak ln",,"123 oak ln","saint marie",NY,,,US)
+123 oak lane, saint marie ny	(123,"oak lane",,"123 oak lane","saint marie",NY,,,US)
+123 oak ln, saint marie ny	(123,"oak ln",,"123 oak ln","saint marie",NY,,,US)
+@@ sttype words$	
+123 oak ln, marie ny	(123,"oak ln",,"123 oak ln",marie,NY,,,US)
+123 oak ln, new marie ny	(123,"oak ln",,"123 oak ln","new marie",NY,,,US)
+\.
+
+select id, instring, outstring as expected, parse_address(instring) as got_result
+  from test_parse_address
+ where instring not like '@@%' and parse_address(instring)::text != outstring;
+
+\q
diff --git a/extensions/address_standardizer/test-standardize_address_1.sql.in b/extensions/address_standardizer/test-standardize_address_1.sql.in
new file mode 100644
index 0000000..9b2a828
--- /dev/null
+++ b/extensions/address_standardizer/test-standardize_address_1.sql.in
@@ -0,0 +1,6 @@
+select * from parse_address('123 Main Street, Kansas City, MO 45678');
+select * from standardize_address('us_lex'::text, 'us_gaz'::text, 'us_rules'::text, '123 Main Street'::text, 'Kansas City, MO 45678'::text);
+SELECT '#2981' As ticket, * FROM standardize_address('us_lex','us_gaz','us_rules', '1566 NEW STATE HWY, RAYNHAM, MA');
+SELECT '#2978a' As ticket, * FROM standardize_address('us_lex','us_gaz','us_rules', '10-20 DORRANCE ST PROVIDENCE RI' );
+SELECT '#2978b' As ticket, * FROM standardize_address('us_lex','us_gaz','us_rules', '10 20 DORRANCE ST PROVIDENCE RI' );
+SELECT '#2978c' As ticket, * FROM standardize_address('us_lex','us_gaz','us_rules', '10-20 DORRANCE ST, PROVIDENCE, RI');
diff --git a/extensions/address_standardizer/test-standardize_address_2.sql.in b/extensions/address_standardizer/test-standardize_address_2.sql.in
new file mode 100644
index 0000000..74a0317
--- /dev/null
+++ b/extensions/address_standardizer/test-standardize_address_2.sql.in
@@ -0,0 +1,113 @@
+drop table if exists addresses cascade;
+create table addresses (
+  id serial not null primary key,
+  micro text,
+  macro text
+);
+
+copy addresses (micro,macro) from stdin;
+1017 LINWOOD AVE APT 12	ST PAUL,MN,55105
+1029 ATLANTIC ST APT 302	ST PAUL,MN,55106
+1032 PORTLAND AVE	ST PAUL,MN,55104
+1093 EDGERTON ST FL 2	ST PAUL,MN,55130
+111 KELLOGG BLVD E APT 3210	ST PAUL,MN,55101
+1113 HAWTHORNE AVE E	ST PAUL,MN,55106
+1120 BARCLAY ST APT 4	ST PAUL,MN,55106
+1137 CHURCHILL ST	ST PAUL,MN,55103
+1140 GALTIER ST	ST PAUL,MN,55117
+1147 MINNEHAHA AVE W	ST PAUL,MN,55104
+1167 BURNQUIST ST	ST PAUL,MN,55106
+1168 SUPORNICK LN APT A	ST PAUL,MN,55106
+1169 RANDOLPH AVE	ST PAUL,MN,55105
+1223 BERKELEY AVE	ST PAUL,MN,55105
+125 MAGNOLIA AVE E	ST PAUL,MN,55117
+1263 RICE ST	ST PAUL,MN,55117
+1305 CONWAY ST	ST PAUL,MN,55106
+1341 CASE AVE	ST PAUL,MN,55106
+1345 CASE AVE	ST PAUL,MN,55106
+1351 CONWAY ST APT 10	ST PAUL,MN,55106
+1363 OSCEOLA AVE	ST PAUL,MN,55105
+1377 MAYNARD DR W APT 168	ST PAUL,MN,55116
+1379 MAYNARD DR W APT 176	ST PAUL,MN,55116
+1379 MAYNARD DR W APT 177	ST PAUL,MN,55116
+1388 BARCLAY ST	ST PAUL,MN,55106
+1390 ARONA ST	ST PAUL,MN,55108
+1435 GRAND AVE APT 2	ST PAUL,MN,55105
+1484 ASHLAND AVE UNIT 101	ST PAUL,MN,55101
+1509 SUMMIT AVE	ST PAUL,MN,55106
+1548 VAN BUREN AVE	ST PAUL,MN,55104
+1561 WHEELOCK LN UNIT 303	ST PAUL,MN,55117
+1621 ASHLAND AVE APT UPPER	ST PAUL,MN,55104
+1636 WOODBRIDGE ST	ST PAUL,MN,55117
+1644 DAYTON AVE APT 3	ST PAUL,MN,55104
+1709 LEONE AVE	ST PAUL,MN,55106
+1743 HIGHLAND PKWY	ST PAUL,MN,55116
+1776 ST CLAIR AVE APT 107	ST PAUL,MN,55105
+1776 ST CLAIR AVE APT 205	ST PAUL,MN,55105
+1821 UNIVERSITY AVE W RM 336	ST PAUL,MN,55104
+1877 GOODRICH AVE APT LOWER	ST PAUL,MN,55105
+1898 LACROSSE AVE	ST PAUL,MN,55119
+1899 BEECHWOOD AVE	ST PAUL,MN,55116
+1915 MARSHALL AVE APT 2	ST PAUL,MN,55104
+1940 NEVADA AVE E	ST PAUL,MN,55119
+1944 NOKOMIS AVE	ST PAUL,MN,55119
+1962 SAUNDERS AVE	ST PAUL,MN,55116
+1968 NEBRASKA AVE E	ST PAUL,MN,55119
+1971 SARGENT AVE	ST PAUL,MN,55105
+204 CONGRESS ST E APT D	ST PAUL,MN,55107
+2085 GRAND AVE APT 203	ST PAUL,MN,55101
+21 BATTLE CREEK PL	ST PAUL,MN,55119
+2174 ELEANOR AVE	ST PAUL,MN,55116
+2224 MAILAND RD	ST PAUL,MN,55119
+2272 BENSON AVE UNIT C	ST PAUL,MN,55116
+2285 BENSON AVE	ST PAUL,MN,55116
+233 CONCORD ST	ST PAUL,MN,55107
+235 MCKNIGHT RD S APT B4	ST PAUL,MN,55119
+2360 BUFORD AVE	ST PAUL,MN,55108
+256 POINT DOUGLAS RD N	ST PAUL,MN,55106
+261 UNIVERSITY AVE E APT 303	ST PAUL,MN,55130
+2706 GANNON RD	ST PAUL,MN,55116
+289 5TH ST E UNIT 309	ST PAUL,MN,55101
+303 WILDER ST N FL 1	ST PAUL,MN,55104
+317 ROBIE ST E	ST PAUL,MN,55107
+333 SMITH AVE N	ST PAUL,MN,55102
+377 HAMLINE AVE S	ST PAUL,MN,55105
+418 MARYLAND AVE W APT 204	ST PAUL,MN,55117
+444 CLINTON AVE	ST PAUL,MN,55107
+444 FRY ST	ST PAUL,MN,55104
+536 THOMAS AVE	ST PAUL,MN,55103
+544 SIMPSON ST	ST PAUL,MN,55104
+56 IRVINE PARK	ST PAUL,MN,55102
+597 BLAIR AVE APT 5	ST PAUL,MN,55103
+602 HUMBOLDT AVE	ST PAUL,MN,55107
+605 CAPITOL BLVD APT B	ST PAUL,MN,55103
+617 ROSE AVE E	ST PAUL,MN,55130
+635 WESTERN AVE N	ST PAUL,MN,55103
+660 5TH ST E APT DOWNST	ST PAUL,MN,55106
+672 UNIVERSITY AVE W	ST PAUL,MN,55104
+675 WHEELOCK PKWY W	ST PAUL,MN,55117
+70 IOWA AVE W	ST PAUL,MN,55117
+711 MARSHALL AVE	ST PAUL,MN,55104
+712 SNELLING AVE N APT 1	ST PAUL,MN,55104
+715 CALIFORNIA AVE E	ST PAUL,MN,55106
+715 MARSHALL AVE	ST PAUL,MN,55104
+735 LINCOLN AVE	ST PAUL,MN,55105
+750 BLAIR AVE	ST PAUL,MN,55104
+754 BLAIR AVE FL 1	ST PAUL,MN,55104
+771 BUTTERNUT AVE	ST PAUL,MN,55102
+812 7TH ST E	ST PAUL,MN,55106
+83 CALIFORNIA AVE W APT 206	ST PAUL,MN,55117
+838 LAFOND AVE	ST PAUL,MN,55104
+852 HOLLY AVE	ST PAUL,MN,55104
+859 OSCEOLA AVE APT 1	ST PAUL,MN,55105
+885 CASE AVE	ST PAUL,MN,55106
+927 WAKEFIELD AVE	ST PAUL,MN,55106
+93 MARIA AVE	ST PAUL,MN,55106
+935 HYACINTH AVE E	ST PAUL,MN,55106
+94 FRONT AVE	ST PAUL,MN,55117
+953 HYACINTH AVE E	ST PAUL,MN,55106
+\.
+
+select (std).* from (
+    select standardize_address('us_lex', 'us_gaz', 'us_rules', micro, macro) as std
+      from addresses) as foo;
diff --git a/extensions/address_standardizer/test2.sql b/extensions/address_standardizer/test2.sql
new file mode 100644
index 0000000..4697ccc
--- /dev/null
+++ b/extensions/address_standardizer/test2.sql
@@ -0,0 +1,8 @@
+\set ECHO queries
+\pset pager off
+
+\i micro-macro.sql
+
+select (std).* from (
+    select standardize_address('lex', 'gaz', 'rules', micro, macro) as std
+      from addresses) as foo;
diff --git a/extensions/address_standardizer/test_main.c b/extensions/address_standardizer/test_main.c
new file mode 100644
index 0000000..f12b87a
--- /dev/null
+++ b/extensions/address_standardizer/test_main.c
@@ -0,0 +1,335 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <assert.h>
+
+#include "pagc_api.h"
+#include "pagc_std_api.h"
+
+#define RULESIZE 40
+
+#define LEXIN "lexicon.csv"
+#define GAZIN "gazeteer.csv"
+#define RULESIN "rules.txt"
+
+static int standardize_command_line( STANDARDIZER *std ,
+                                     char *input_str ,
+                                     int option ) ;
+
+void print_lexicon( ENTRY ** hash_table ) ;
+
+/*
+parse_csv() parses the following file format into fields
+
+"1","#",16,"#"
+"2","#",7,"#"
+"1","&",13,"AND"
+"2","&",1,"AND"
+"3","&",7,"AND"
+"1","-","9","-"
+
+*/
+
+/* ----------------------------------------------------
+lexicon.c (convert_field)
+called by lexicon.c (read_lexicon)
+ctype.h (isspace)
+uses macro BLANK_STRING
+-------------------------------------------------------*/
+static char *convert_field( char *buf ,
+                            char *inp ) {
+   char c ;
+   char *d  = buf;
+   char *s = inp ;
+
+   *d = '\0' ;
+   /* -- space at the beginning of a line will stop the read -- */
+   if ( isspace( *s ) )
+      return NULL ;
+   while ( ( c = *s++ ) != '\0' ) {
+      if ( c == '\"' ||
+           c == '\r' )
+         continue ; /* -- ignore quotes and carriage returns -- */
+      /* -- zero terminate field and record delimiters -- */
+      if ( c == '\n' ||
+           c == ',' ) {
+          *d = '\0' ;
+          return s ;
+      }
+      *d++ = c ; /* -- copy it -- */
+   }
+   return NULL ;
+}
+
+static int parse_csv(char *buf, int *seq, char *word, char *stdword, int *token)
+{
+    char *next_str ;
+    char num_str[512];
+
+    if ( ( next_str = convert_field( num_str , buf) ) == NULL ) return 0;
+    sscanf( num_str, "%d", seq );
+    next_str = convert_field( word, next_str);
+    next_str = convert_field( num_str, next_str);
+    sscanf( num_str, "%d", token );
+    next_str = convert_field( stdword, next_str);
+
+    return 1;
+}
+
+
+/*
+parse_rule() reads lines the following and loads them into int[] and
+returns the number of items read.
+
+1 2 11 28 -1 10 10 11 13 -1 0 16
+1 2 11 28 12 -1 10 10 11 13 12 -1 0 17
+1 2 11 28 29 -1 10 10 11 13 13 -1 0 16
+1 2 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17
+-1
+*/
+
+int parse_rule(char *buf, int *rule)
+{
+    int nr = 0;
+    int *r = rule;
+    char *p = buf;
+    char *q;
+
+
+    while (1) {
+        *r = strtol( p, &q, 10 );
+        if (p == q) break;
+        p = q;
+        nr++;
+        r++;
+    }
+
+    return nr;
+}
+
+void Usage()
+{
+        printf("Usage: test_main [-o n] \n");
+        printf("       -o n = options bit flag\n");
+        printf("          1 = print lexicon\n");
+        printf("          2 = print gazeteer\n");
+        printf("          4 = print standardized fields\n");
+        printf("          8 = print rule statistics\n");
+        exit(1);
+}
+
+int main(int argc, char *argv[])
+{
+    STANDARDIZER *std;
+    LEXICON *lex;
+    LEXICON *gaz;
+    RULES *rules;
+
+    char buf[1024];
+
+    int seq;
+    char input_str[ 4096 ] ;
+    char word[512];
+    char stdword[512];
+    int token;
+    int nr;
+    int rule[RULESIZE];
+    int err;
+    int cnt;
+    int option = 0;
+
+    FILE *in;
+
+    if (argc == 3 && !strcmp(argv[1], "-o")) {
+        option = strtol(argv[2], NULL, 10);
+        argc -= 2;
+        argv += 2;
+    }
+    else if (argc != 1) 
+        Usage();
+
+    std = std_init();
+    assert(std);
+
+    lex = lex_init(std->err_p);
+    assert(lex);
+
+    in = fopen(LEXIN, "rb");
+    assert(in);
+
+    cnt = 0;
+    while (!feof(in) && fgets(buf, 1024, in)) {
+        cnt++;
+        /* parse into fields */
+        if (parse_csv(buf, &seq, word, stdword, &token)) {
+            /* add the record to the lexicon */
+            err = lex_add_entry(lex, seq, word, stdword, token);
+            if (err != 1)
+                printf("lex: Failed: %d: %s", cnt, buf);
+        }
+        else {
+            printf("lex: Skipping: %d: %s", cnt, buf);
+        }
+    }
+    fclose(in);
+
+    if (option & 1) {
+        printf("------------ address lexicon --------------\n");
+        print_lexicon(lex->hash_table);
+        printf("\n");
+    }
+
+    gaz = lex_init(std->err_p);
+    assert(gaz);
+
+    in = fopen(GAZIN, "rb");
+    assert(in);
+
+    cnt = 0;
+    while (!feof(in) && fgets(buf, 1024, in)) {
+        cnt++;
+        /* parse into fields */
+        if (parse_csv(buf, &seq, word, stdword, &token)) {
+            /* add the record to the lexicon */
+            err = lex_add_entry(gaz, seq, word, stdword, token);
+            if (err != 1)
+                printf("gaz: Failed: %d: %s", cnt, buf);
+        }
+        else {
+            printf("gaz: Skipping: %d: %s", cnt, buf);
+        }
+    }
+    fclose(in);
+
+    if (option & 2) {
+        printf("------------ gazeteer lexicon --------------\n");
+        print_lexicon(gaz->hash_table);
+        printf("\n");
+    }
+
+    rules = rules_init(std->err_p);
+    assert(rules);
+    rules -> r_p -> collect_statistics = TRUE ;
+
+    /* ************ RULES **************** */
+
+    in = fopen(RULESIN, "rb");
+    assert(in);
+
+    cnt = 0;
+    while (!feof(in) && fgets(buf, 1024, in)) {
+        cnt++;
+        /* parse into fields */
+        nr = parse_rule(buf, rule);
+
+        /* add the record to the rules */
+        err = rules_add_rule(rules, nr, rule);
+        if (err != 0)
+            printf("rules: Failed: %d (%d): %s", cnt, err, buf);
+    }
+    err = rules_ready(rules);
+    if (err != 0)
+        printf("rules: Failed: err=%d\n", err);
+    fclose(in);
+
+    std_use_lex(std, lex);
+    std_use_gaz(std, gaz);
+    std_use_rules(std, rules);
+    std_ready_standardizer(std);
+
+    printf( "Standardization test. Type \"exit\" to quit:\n" ) ;
+    fflush( stdout ) ;
+    while ( TRUE ) {
+        err = standardize_command_line( std, input_str, option ) ;
+        if ( err == FAIL ) {
+            break ;
+        }
+    }
+    printf( "OK\n" ) ;
+    fflush( stdout ) ;
+
+    std_free(std);
+/* these were freed when we bound them with std_use_*()
+    rules_free(rules);
+    lex_free(gaz);
+    lex_free(lex);
+*/
+
+    return 0;
+}
+
+
+
+static int standardize_command_line( STANDARDIZER *std ,
+                                     char *input_str ,
+                                     int option ) {
+   STDADDR *result;
+   int fld_num ,
+       have_user_macros ,
+       num_prompts ;
+   char unstandard_mic[ MAXSTRLEN ] ;
+   char unstandard_mac_left[ MAXSTRLEN ] ;
+
+   num_prompts = 3 ;
+
+   unstandard_mic[ 0 ] = SENTINEL ;
+   unstandard_mac_left[ 0 ] = SENTINEL ; ;
+   have_user_macros = FALSE ;
+   for ( fld_num = 1 ;
+         fld_num < num_prompts ;
+         fld_num++ ) {
+      /* -- print prompt -- */
+      if ( fld_num == 1 )
+         printf( "MICRO:" ) ;
+      else
+         printf( "MACRO:" ) ;
+      fflush( stdout ) ; /* -- to ensure prompt goes out --*/
+      memset( input_str ,
+              0 ,
+              MAXSTRLEN ) ;
+      input_str[ 0 ] = SENTINEL ;
+      /* -- get user's input -- */
+      if ( ( !get_input_line( input_str , stdin ) ) || 
+           ( strncmp( input_str , "exit" , 4 ) == 0 ) ||
+           ( strncmp( input_str , "quit" , 4 ) == 0 ) ||
+           ( strncmp( input_str , "done" , 4 ) == 0 )
+         ) {
+         return FAIL ; /* -- indicate exit -- */
+      }
+      /* -- get input first, then standardize -- */
+      if ( fld_num == 1 ) {
+         strcpy( unstandard_mic ,
+                 input_str ) ;
+         if ( *unstandard_mic == SENTINEL ) {
+            printf( "No MICRO input\n" ) ;
+            return FALSE ; /* -- indicate no standardization -- */
+         }
+         convert_latin_one ( unstandard_mic ) ;
+      } else {
+         strcpy( unstandard_mac_left ,
+                 input_str ) ;
+         if ( *unstandard_mac_left != SENTINEL ) {
+            have_user_macros = TRUE ;
+            convert_latin_one ( unstandard_mac_left ) ;
+         }
+      }
+   }
+
+   result = std_standardize_mm( std,
+                                unstandard_mic,
+                                unstandard_mac_left,
+                                (option & 4)?1:0 ) ;
+
+   print_stdaddr( result );
+
+   if (option & 8)
+      output_rule_statistics( std->pagc_p->rules, std->err_p ) ;
+
+   stdaddr_free(result);
+
+   return 1;
+}
+
+
diff --git a/extensions/address_standardizer/tokenize.c b/extensions/address_standardizer/tokenize.c
new file mode 100644
index 0000000..d8eee48
--- /dev/null
+++ b/extensions/address_standardizer/tokenize.c
@@ -0,0 +1,1004 @@
+/* -- tokenize.c 
+
+This module takes the lexical scanner's output, possibly recombining
+it, looking it up in the lexicon for possible definitions, preparing
+the input for application to the set of rules.
+
+Prototype 7H08 (This file was written by Walter Sinclair).
+
+This file is part of PAGC.
+
+Copyright (c) 2008 Walter Bruce Sinclair
+
+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.
+
+*/
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <stddef.h>
+#include "pagc_api.h"
+
+static SYMB precedes_identifier_list[] = { BOXT , ROAD , UNITH , PRETYP , BUILDH , RR , FAIL } ;
+static SYMB precedes_route_list[] = { TYPE , QUALIF , PROV , FAIL } ;
+#ifdef COMBINE_FRACTS_WITH_NUMBS
+static SYMB FractL[] = { FRACT , FAIL } ;
+#endif
+static SYMB NumberL[] = { NUMBER , FAIL } ;
+static SYMB RoadL[] = { ROAD , FAIL } ;
+static SYMB mixed_components[] = { NUMBER , WORD , SINGLE , FAIL } ;
+static SYMB RouteL[] = { RR , ROAD , FAIL } ;
+static SYMB MixedL[] = { MIXED , FAIL } ;
+static SYMB ProvL[] = { PROV , FAIL } ;
+static SYMB PostalL[] = { PCT, PCH, FAIL } ;
+
+
+/* -- local prototypes -- */
+static int next_morph( STAND_PARAM * ) ;
+static int no_space( LEXEME * , struct morph * ) ;
+static int process_lexeme( STAND_PARAM * , int , int ) ;
+static int is_route( ENTRY * ) ;
+static int is_direction_letter( LEXEME * , LEXEME *, struct morph * ,DEF **, char * ) ; 
+#ifdef EXPRESS_ORDINALS
+static int is_ordinal_suffix( LEXEME * , LEXEME *, struct morph * ,DEF **, char * ) ;
+#endif
+static int is_zip( STAND_PARAM * , DEF ** , struct morph * ) ; 
+static void fix_mixed( STAND_PARAM * , DEF **, struct morph * ) ; 
+static void reunite_mixed( STAND_PARAM * , DEF ** , struct morph * , char * ) ; 
+static void mark_hyphen_unit( int , LEXEME * , struct morph * , DEF ** ) ; 
+static void numeric_tail( STAND_PARAM * , DEF ** , struct morph *, char * ) ; 
+static DEF *new_defs( struct morph * , DEF ** , ENTRY * , int , char * ) ; 
+static int set_lexeme( STAND_PARAM *, int , int , DEF *, char * ) ; 
+static void reset_lexeme( LEXEME * ) ; 
+static void combine_lexemes( STAND_PARAM * , struct morph * , DEF * ) ;
+static int phrase_from_morphs( struct morph * , char * , int  , int ) ; 
+
+#define MAKE_DEFAULT_DEF_FIRST(DTOKEN,TOKEN) \
+   if ( ( glo_p -> default_def[DTOKEN] = create_def(TOKEN,NULL,0,TRUE,glo_p->process_errors) ) == NULL) \
+      return FALSE
+
+#define MAKE_DEFAULT_DEF_NEXT(DTOKEN,TOKEN) \
+   if ( ( glo_p->default_def[DTOKEN]->Next = create_def(TOKEN,NULL,1,TRUE,glo_p->process_errors)) == NULL) \
+      return FALSE
+
+/* --------------------------------------------------------------
+tokenize.c (setup_default_defs)
+called by standard.l (init_stand_process) when process is started
+calls lexicon.c (create_def)
+uses MACROS MAKE_DEFAULT_DEF_FIRST, MAKE_DEFAULT_DEF_NEXT,
+PAGC_CALLOC_STRUC
+--------------------------------------------------------------- */
+int setup_default_defs( PAGC_GLOBAL *glo_p ) {
+
+   /* -- initialization-time allocation -- */
+   PAGC_CALLOC_STRUC(glo_p->default_def,DEF*,DUNIT+1,glo_p->process_errors,FALSE) ;
+   MAKE_DEFAULT_DEF_FIRST(DFRACT,FRACT);
+   MAKE_DEFAULT_DEF_FIRST(DSINGLE,SINGLE);
+   MAKE_DEFAULT_DEF_FIRST(DDOUBLE,DOUBLE);
+   MAKE_DEFAULT_DEF_FIRST(DWORDT,WORD);
+   MAKE_DEFAULT_DEF_FIRST(DNUMBER,NUMBER);
+   MAKE_DEFAULT_DEF_FIRST(DMIXED,MIXED);
+   MAKE_DEFAULT_DEF_FIRST(DPOSTH,PCH);
+   MAKE_DEFAULT_DEF_FIRST(DPOSTT,PCT);
+   MAKE_DEFAULT_DEF_FIRST(DZIPH,NUMBER);
+   MAKE_DEFAULT_DEF_FIRST(DZIPT,NUMBER);
+   MAKE_DEFAULT_DEF_FIRST(DDIRLET,SINGLE);
+   MAKE_DEFAULT_DEF_FIRST(DORD,WORD);
+   MAKE_DEFAULT_DEF_FIRST(DUNIT,NUMBER);
+
+   /* second elements of the list */
+   MAKE_DEFAULT_DEF_NEXT(DPOSTH,MIXED) ;
+   MAKE_DEFAULT_DEF_NEXT(DPOSTT,MIXED) ;
+   MAKE_DEFAULT_DEF_NEXT(DZIPH,QUINT) ;
+   MAKE_DEFAULT_DEF_NEXT(DZIPT,QUAD) ;
+
+   /* -- consider making DIRECT first, then SINGLE? -- */
+   MAKE_DEFAULT_DEF_NEXT(DDIRLET,DIRECT) ;
+   MAKE_DEFAULT_DEF_NEXT(DORD,ORD) ;
+
+   /* -- prefixed occupancy : 101-1750 Main St. -- */
+   MAKE_DEFAULT_DEF_NEXT(DUNIT,UNITT) ;
+   return TRUE ;
+}
+
+/* ----------------------------------------------------------------
+tokenize.c (remove_default_defs)
+called by standard.l (close_stand_process) when process is finished
+calls lexicon.c (destroy_def_list)
+----------------------------------------------------------------- */
+void remove_default_defs( PAGC_GLOBAL *glo_p ) {
+   DEFDEF i ;
+
+   if ( glo_p -> default_def != NULL ) {
+      for ( i = 0 ;
+            i < DUNIT+1 ;
+            i++ ) {
+         destroy_def_list ( glo_p -> default_def[ i ] ) ;
+      }
+   }
+   /* -- cleanup time memory release -- */
+   FREE_AND_NULL ( glo_p -> default_def ) ;
+}
+
+/* ---------------------------------------------------------
+tokenize.c (process_input)
+return FALSE on error (too many lexemes)
+calls tokenize.c (process_lexeme)
+--------------------------------------------------------- */
+int process_input( STAND_PARAM *s_p ) { 
+  /* -- process all the morphs not yet made into lexemes 
+     -- called by scanner -- */
+
+
+
+  s_p -> cur_morph--  ; /* -- back it down - no more morphs coming -- */
+  while ( s_p -> base_morph <= s_p -> cur_morph  ) {
+     s_p -> base_morph = process_lexeme( s_p ,
+                                         s_p -> cur_morph ,
+                                         s_p -> base_morph ) ;
+     if ( s_p -> base_morph == ERR_FAIL ) {
+        return FALSE ;
+     }
+     s_p -> LexNum++ ; 
+  }
+  return TRUE ;
+}
+
+/* ---------------------------------------------------------
+tokenize.c (new_morph)
+return FALSE if the the text is too long or too many lexemes
+are created
+called by standard.l (yylex)
+calls tokenize.c (process_lexeme) and util.c (upper_case)
+calls tokenize.c (next_morph)
+uses macros CLIENT_ERR, RET_ERR1
+--------------------------------------------------------- */
+int new_morph( STAND_PARAM *s_p , 
+               DEFDEF t ,
+               const char *s ,
+               int length ) {
+   struct morph *morph_vector; 
+   int i , j ; 
+
+   morph_vector = s_p -> morph_array ; 
+   /* -- called by scanner to do one morpheme -- */
+   i = s_p -> cur_morph ; 
+   j = s_p -> base_morph ;
+
+   if ( length >= MAXTEXT ) {
+      CLIENT_ERR( s_p -> errors ) ;
+      RET_ERR1( "new_morph: %s is way too long",
+                s,
+                s_p->errors,
+                FALSE) ;
+   }
+
+   morph_vector[ i ]. Term = 0 ; 
+   morph_vector[ i ] . Sym = t ; 
+   /* -- Lexicon is in upper case - we need to match. -- */
+   upper_case( morph_vector[ i ] . Text , 
+               s ) ;
+   morph_vector[ i ] . TextLen = length ; 
+
+   /* -- Is it time to look for a phrase? -- */
+   
+   if ( i == ( j + MAXPHRASE - 1 ) ) {
+      if ( ( s_p -> base_morph = process_lexeme( s_p ,
+                                                 i ,
+                                                 j ) ) == ERR_FAIL ) {
+
+         return FALSE ;
+      }
+      s_p -> LexNum++ ;
+   }
+   return ( next_morph( s_p ) ) ; 
+}
+
+/*-----------------------------------------------------
+tokenize.c (next_morph)
+increment the morph count
+called by new_morph
+return FALSE if too many
+uses macros CLIENT_ERR, RET_ERR
+------------------------------------------------------*/
+static int next_morph( STAND_PARAM *s_p ) { 
+   if ( s_p -> cur_morph++ > MAXMORPHS ) {
+      CLIENT_ERR( s_p -> errors ) ;
+      RET_ERR( "next_morph: Too many morphemes in input",
+               s_p->errors,
+               FALSE) ;
+   }
+   return TRUE ;
+}
+
+/*-----------------------------------------------------
+tokenize.c (set_term)
+called by standard.l (yylex)
+adds a terminator to a morph
+------------------------------------------------------*/
+void set_term( STAND_PARAM *s_p , 
+               int c ,
+               const char *s ) {
+
+   int i ;
+
+
+   /* 0 is no break
+      1 is set for semicolons, tabs and commas,
+      2 for spaces */
+
+   i = s_p -> cur_morph ;
+   if ( *s == '-' ) {
+      c++ ;
+   }
+
+   /* -- only add a space if there isn't already a break there -- */
+   if ( ( i > 0 ) &&
+        ( s_p -> morph_array[ i - 1 ] . Term == 0 ) )
+      s_p -> morph_array[ i - 1 ] . Term = c ;
+}
+
+/*-------------------------------------------------------
+tokenize.c (no_space)
+called by tokenize.c (reunite_mixed, is_direction_letter)
+--------------------------------------------------------*/
+static int no_space( LEXEME *lex_p , 
+                     struct morph *morph_p  ) {
+   int k ;
+
+   k = lex_p -> EndMorph ; 
+   return ( ( ( morph_p + k ) -> Term == 0 )? 
+              TRUE : 
+              FALSE ) ;
+}
+
+/*-----------------------------------------------------
+tokenize.c (initialize_morphs)
+called by standard.l (standardize_field)
+calls tokenize.c (reset_lexeme)
+------------------------------------------------------*/
+void initialize_morphs( STAND_PARAM *s_p ) {
+   int i ;
+
+   s_p -> cur_morph = 0 ;
+   s_p -> base_morph = 0 ;
+   s_p -> LexNum = 0 ;
+   for ( i = FIRST_LEX_POS ; 
+         i < MAXLEX ;
+         i++ ) {
+      reset_lexeme( s_p -> lex_vector + i ) ;
+   }
+}
+
+/*---------------------------------------------------------
+tokenize.c (process_lexeme)
+return ERR_FAIL on error (too many lexemes)
+called by tokenize.c (process_input, new_morph)
+calls tokenize.c (phrase_from_morphs, set_lexeme, is_route,
+find_def_type, reunite_mixed, mark_hyphen_unit)
+calls (lexicon.c) find_entry
+MACROS: BLANK_STRING
+string.h (strncmp)
+-----------------------------------------------------------*/
+static int process_lexeme( STAND_PARAM *s_p , 
+                           int cur_m, 
+                           int base_m ) {
+   int Ceiling ;
+   ENTRY *cur_entry ;
+   char LTarget[ MAXSTRLEN ] ;
+   struct morph *morph_ptr ; 
+   DEF **d_p ; 
+   LEXEME *lex_p ;
+
+   d_p = s_p -> default_def ; 
+   morph_ptr = s_p -> morph_array ; 
+   BLANK_STRING(LTarget) ;
+   cur_entry = NULL ;
+   for ( Ceiling = cur_m ; 
+         Ceiling >= base_m ; 
+         Ceiling-- ) {
+      /* -- Combine the morphs into a phrase from cur_morph to Ceiling -- */
+      Ceiling = phrase_from_morphs( morph_ptr , 
+                                    LTarget, 
+                                    base_m, 
+                                    Ceiling ) ;
+
+      if ( ( cur_entry = find_entry( s_p -> lexicon , /* 2007-11-20 hash table */
+                                     LTarget ) ) != NULL ) {
+         /* -- Before accepting an entry from the lexicon, it may be
+            necessary to establish that the entry does not subsume a
+            more appropriate entry. -- */
+
+         lex_p = s_p -> lex_vector + s_p -> LexNum - 1 ; 
+         if ( ( Ceiling > base_m ) &&
+              ( base_m > 0 ) &&
+              ( !strncmp( LTarget, 
+                          "ST ", 
+                          3 ) ) ) {
+            /* -- have we preempted street or saint by state? -- */
+            /* -- and what about at the end of the address? -- */
+            if ( is_route( cur_entry ) ) {
+               if ( find_def_type( lex_p -> DefList, 
+                                   precedes_route_list ) ) {
+                 /* -- if the previous lexeme is any of the categories
+                    on precedes_route_list, we're okay -- */
+                  break ;
+               }
+               /* -- reject if preceded by a number -- */
+               if ( find_def_type( lex_p -> DefList , 
+                                   NumberL ) )
+
+                  continue ;
+            }
+         }
+         break ;
+      }
+      if ( Ceiling == 0 )
+         break ;
+   }
+   if ( Ceiling < base_m ) {
+      Ceiling = base_m ; /* -- make a singleton lexeme -- */
+   }
+   /* -- set up either the lexicon or default definitions and
+      add the new lexeme to the list -- */
+
+   /* -- pass LTarget to new_defs -- */
+   if ( !set_lexeme( s_p , 
+                     base_m,
+                     Ceiling,
+                     new_defs( morph_ptr , 
+                               d_p , 
+                               cur_entry,
+                               base_m ,
+                               LTarget ),
+                      LTarget ) ) {
+       return ERR_FAIL ;
+   }
+   /* -- Handle reactants and reunite broken alphanumeric strings -- */
+   reunite_mixed( s_p , 
+                  d_p , 
+                  morph_ptr , 
+                  LTarget ) ;
+
+   mark_hyphen_unit( s_p -> LexNum , 
+                     s_p -> lex_vector , 
+                     morph_ptr , 
+                     d_p  ) ;
+   /* -- return position of next unprocessed morpheme -- */
+   return ( Ceiling + 1 ) ;
+}  
+
+/*-----------------------------------------------------
+tokenize.c (is_route)
+called by process_lexeme
+calls tokenize.c (is_symb_on_list)
+------------------------------------------------------*/
+static int is_route( ENTRY *E ) {
+   DEF *D ;
+
+   for ( D = E -> DefList ;
+         D != NULL ;
+         D = D -> Next ) {
+      if ( is_symb_on_list( D -> Type ,
+                            RouteL ) ) {
+         return TRUE ;
+      }
+   }
+   return FALSE ;
+}
+
+/*-----------------------------------------------------
+tokenize.c (is_direction_letter)
+called by tokenize.c (numeric_tail)
+call tokenize.c (no_space)
+string.h (strlen)
+------------------------------------------------------*/
+static int is_direction_letter( LEXEME *cur_lex_p , 
+                                LEXEME *prev_lex_p , 
+                                struct morph *morph_p ,
+                                DEF **d_p , 
+                                char *LT ) {
+   char c ;
+
+   if ( ( strlen( LT ) == 1 ) &&
+        ( no_space( prev_lex_p, 
+                    morph_p   ) ) ) {
+       c = *LT ;
+       switch ( c ) {
+          case 'N':
+          case 'S':
+          case 'W':
+          case 'E':
+             cur_lex_p -> DefList = d_p[ DDIRLET ]  ;
+             return TRUE ;
+          default :
+             return FALSE ;
+       }
+   }
+   return FALSE ;
+}
+
+#ifdef EXPRESS_ORDINALS
+static int is_ordinal_suffix( LEXEME *cur_lex_p , 
+                              LEXEME *prev_lex_p ,
+                              struct morph *morph_p ,
+                              DEF **d_p ,
+                              char *LT ) {
+   int prev_len ;
+   char Ult, 
+        Penult ;
+
+   if ( ( strlen( LT ) != 2 ) ||
+        ( no_space( prev_lex_p, 
+                    morph_p   ) ) ) {
+      return FALSE ;
+   }
+   prev_len = strlen( prev_lex_p -> Text ) ;
+   Ult = prev_lex_p -> Text[ prev_len - 1 ] ;
+   Penult = ( ( prev_len < 2 )?
+              SENTINEL :
+              prev_lex_p -> Text[ prev_len - 2 ] ) ;
+   if ( ( !strcmp( LT,
+                   "ST" ) ) &&
+        ( Ult == '1' ) &&
+        ( Penult != '1' ) ) {
+      return TRUE ;
+   } else if ( ( !strcmp( LT,
+                          "ND" ) ) &&
+               ( Ult == '2' ) &&
+               ( Penult != '1' ) ) {
+      return TRUE ;
+   } else if ( ( !strcmp( LT,
+                          "RD" ) ) &&
+               ( Ult == '3' ) &&
+               ( Penult != '1' ) ) {
+      return TRUE ;
+   } else if ( ( !strcmp( LT,
+                        "TH" ) ) &&
+             ( isdigit( Ult ) ) ) {
+      if ( Ult == '1' ||
+           Ult == '2' ||
+           Ult == '3' ) {
+         if ( Penult == '1' ) {
+            return TRUE ;
+         } else {
+            return FALSE ;
+         }
+      } else {
+         return TRUE ;
+      }
+   }
+   return FALSE ;
+}
+#endif
+
+
+/*----------------------------------------------------------
+tokenize.c (is_zip)
+called by tokenize.c (reunite_mixed)
+calls tokenize.c (combine_lexemes, no_space, find_def_type)
+string.h (strlen) ctype.h (isalpha,isdigit)
+-----------------------------------------------------------*/
+static int is_zip( STAND_PARAM *s_p , 
+                   DEF **d_p , 
+                   struct morph *morph_p  ) {
+   /* -- Canadian Postal Code and US zip code -
+      called by reunite_mixed -- */
+   DEFDEF d ;
+   char *cur_txt ;
+   int alt_state ;
+   int tl ;
+   LEXEME *cur_lex_p ; 
+
+   cur_lex_p = s_p -> lex_vector + s_p -> LexNum ; 
+   cur_txt = cur_lex_p -> Text ; 
+   tl = strlen( cur_txt ) ;
+   if ( ( find_def_type( cur_lex_p -> DefList, 
+                         NumberL ) ) &&
+        ( tl > 3 ) ) {
+      /* -- US Zip code -- */
+      if ( tl > 6 ) {
+         return FALSE ;
+      }
+      if ( isalpha( *cur_txt ) ) {
+ 
+         return FALSE ;
+      }
+      d = ( ( tl == 4 )? DZIPT : 
+                         DZIPH ) ;
+      cur_lex_p -> DefList = d_p[ d ] ; 
+      return TRUE ;
+   }
+
+   /* -- Canadian postal codes -- */
+   if ( s_p -> LexNum < 2 ) { 
+      return FALSE ;
+   }
+   if ( tl != 1 ) {
+      return FALSE ;
+   }
+   if ( isdigit( *cur_txt ) ) {
+      alt_state = TRUE ;
+   } else {
+      if ( isalpha( *cur_txt ) ) {
+         alt_state = FALSE ;
+      } else {
+         return FALSE;
+      }
+   }
+   cur_lex_p-- ;
+   cur_txt = cur_lex_p -> Text ; 
+   if ( !no_space( cur_lex_p , 
+                   morph_p  ) ) {
+      return FALSE ;
+   }
+   /* -- First check if lexeme created for Mixed, with a
+      length of 2 on the last pass -- */
+   if ( find_def_type( cur_lex_p -> DefList , 
+                       MixedL ) ) {
+
+      if ( strlen( cur_txt ) != 2 ) {
+         return FALSE ;
+      }
+      /* -- Will the pattern correspond? -- */
+      if ( alt_state ) {
+         /* -- if the current character is a number, then the
+            previous string must be number + letter -- */
+         if ( !isdigit( *cur_txt ) ) {
+            return FALSE ;
+         }
+         if ( !isalpha( *( cur_txt + 1 ) ) ) {
+            return FALSE ;
+         }
+      } else {
+         /* -- The FSA: if the current character is a letter,
+            then the previous string must be letter + number -- */
+         if ( !isalpha( *cur_txt ) ) {
+            return FALSE ;
+         }
+         if ( !isdigit( *( cur_txt + 1 ) ) ) {
+            return FALSE ;
+         }
+      }
+      /* -- if it ends with a digit, it's the tail -- */
+      d = ( ( alt_state ) ? DPOSTT : 
+                            DPOSTH ) ;
+      combine_lexemes( s_p , 
+                       morph_p ,
+                       d_p[ d ]  ) ;
+      return TRUE;
+   }
+   /* -- Prior strings of length 2 have been dealt with, leaving only
+      the prior strings of length 1 to consider -- */
+   if ( strlen( cur_txt ) != 1 ) {
+      return FALSE  ;
+   }
+   /* -- If the current character is a letter, then the previous one must
+      be a number, and vice versa -- */
+   if ( alt_state ) {
+      if ( !isalpha( *cur_txt ) ) {
+         return  FALSE;
+      }
+   }  else {
+      if ( !isdigit( *cur_txt ) ) {
+         return  FALSE;
+      }
+   }
+
+   cur_lex_p -- ; 
+   cur_txt = cur_lex_p -> Text ; 
+
+   /* -- Now look for a character, not followed by a space, which must be
+      a number if the current character is a number, and a letter if the
+      current character is a letter. -- */
+   if ( strlen( cur_txt ) != 1 ) {
+      return FALSE;
+   }
+   if ( !no_space( cur_lex_p , 
+                   morph_p  ) ) {
+      return FALSE;
+   }
+   if ( !alt_state ) {
+      if ( !isalpha( *cur_txt ) ) {
+         return FALSE;
+      }
+   } else if ( !isdigit( *cur_txt ) ) {
+      return FALSE;
+   }
+
+   /* -- if it ends with a digit, it's the tail -- */
+
+   d = ( ( alt_state ) ? DPOSTT : 
+                         DPOSTH ) ;
+   combine_lexemes( s_p , 
+                    morph_p , 
+                    d_p[ d ]  ) ;
+   combine_lexemes( s_p , 
+                    morph_p  ,
+                    d_p[ d ]  ) ;
+   return TRUE ;
+}
+
+/*----------------------------------------------------------
+tokenize.c (fix_mixed)
+called by tokenize.c (reunite_mixed)
+calls tokenize.c (combine_lexemes, no_space, find_def_type)
+----------------------------------------------------------*/
+static void fix_mixed( STAND_PARAM *s_p , 
+                       DEF **d_p , 
+                       struct morph *morph_p  ) {
+   /* -- recombine alphabet sequences and numeric sequences split apart by
+      the lexical scanner - but only if they form an identifier. -- */
+   LEXEME *cur_lex_p, *prev_lex_p ; 
+
+
+   cur_lex_p = s_p -> lex_vector + s_p -> LexNum ; 
+   prev_lex_p = cur_lex_p - 1 ; 
+
+   if ( s_p -> LexNum < 2 ) 
+      return ;
+   if ( !no_space( prev_lex_p , 
+                   morph_p  ) ) {
+      return ;
+   }
+   if ( !find_def_type( cur_lex_p -> DefList ,  
+                        mixed_components ) ) {
+      return ;
+   }
+
+   /* -- We have an item that can make up part of a mixed string and no space
+      preceding it. If the previous item was mixed and not a postal code,
+      then we'll just merge this one in right away. -- */
+
+   if ( find_def_type( prev_lex_p -> DefList , 
+                       MixedL ) &&
+        !find_def_type( prev_lex_p -> DefList , 
+                        PostalL ) ) {
+      /* -- if the previous item is mixed and not a postal code -- */
+
+      combine_lexemes( s_p , 
+                       morph_p , 
+                       d_p[ DMIXED ]  ) ;
+      return ;
+   }
+
+   /* -- The previous lexeme must be of the right kind to do a mix -- */
+   if ( !find_def_type( prev_lex_p -> DefList , 
+                      mixed_components ) ) {
+      return ;
+   }
+   /* -- If a road comes before a mixed, it might also be a PROV -- */
+   if ( find_def_type( prev_lex_p -> DefList ,  
+                     RoadL ) &&
+        !find_def_type( prev_lex_p -> DefList , 
+                      ProvL ) ) {
+      return ;
+   }
+
+   /* -- a mixed identifier only follows certain types -- */
+
+   prev_lex_p -- ; 
+   if ( !find_def_type( prev_lex_p -> DefList , 
+                        precedes_identifier_list ) ) {
+      return ;
+   }
+
+   combine_lexemes( s_p , 
+                    morph_p , 
+                    d_p[ DMIXED ]  ) ;
+   return ;
+}
+
+/*-----------------------------------------------------
+tokenize.c (reunite_mixed)
+called by tokenize.c (process_lexeme)
+calls tokenize.c (is_zip, numeric_tail, fix_mixed)
+------------------------------------------------------*/
+static void reunite_mixed( STAND_PARAM *s_p , 
+                           DEF **d_p , 
+                           struct morph *morph_p , 
+                           char *LT ) {
+   /* -- called by process_lexeme -- */
+
+   if ( is_zip( s_p , 
+                d_p ,
+                morph_p  ) ) {
+      return ; /* -- handle postal and zip codes -- */
+   }
+   
+   numeric_tail( s_p , 
+                 d_p , 
+                 morph_p , 
+                 LT ) ;
+
+
+   fix_mixed( s_p , 
+              d_p , 
+              morph_p ) ; /* -- handle mixed identifiers -- */
+}
+
+/*-----------------------------------------------------
+tokenize.c (mark_hyphen_unit)
+called by tokenize.c (process_lexeme)
+calls tokenize.c (find_def_type)
+------------------------------------------------------*/
+static void mark_hyphen_unit( int n , 
+                              LEXEME *lex_p , 
+                              struct morph *morph_p , 
+                              DEF **def_ptr  ) {
+
+   /* -- if the current lexeme is the second and the previous is terminated
+      by a hyphen and both are numbers, redefine the previous lexeme to
+      be a unittail. -- */
+
+   LEXEME *cur_lex_p ; 
+
+   cur_lex_p = lex_p + n ; 
+   if ( ( n != 1 ) || 
+        ( !find_def_type( ( cur_lex_p ) -> DefList , 
+                          NumberL ) ) ||
+        ( !find_def_type( ( cur_lex_p - 1 ) -> DefList, 
+                          NumberL ) ) ) {
+      return ;
+   }
+   
+   cur_lex_p -- ; 
+   if ( ( morph_p + ( cur_lex_p  -> EndMorph  ) ) -> Term == 3  ) {
+      /* -- overwrite the old deflist -- */
+      cur_lex_p -> DefList = def_ptr[DUNIT] ;  
+   }
+}
+
+
+/*---------------------------------------------------------------------
+tokenize.c (numeric_tail)
+called by tokenize.c (reunite_mixed )
+calls tokenize.c (combine_lexemes, find_def_type, is_direction_letter)
+----------------------------------------------------------------------*/
+static void numeric_tail( STAND_PARAM *s_p , 
+                          DEF **d_p , 
+                          struct morph *morph_p , 
+                          char *LT ) {
+
+   /* -- all subsequent items follow a number -- */
+   int n ;
+   LEXEME *prev_lex_p , *cur_lex_p ; 
+
+
+   n = s_p -> LexNum ; 
+   if ( n < 1 )
+      return  ;
+   cur_lex_p = s_p -> lex_vector + n ; 
+   prev_lex_p = cur_lex_p - 1 ; 
+   if ( !find_def_type( prev_lex_p -> DefList , 
+                        NumberL ) ) {
+      return ;
+   }
+   if ( is_direction_letter( cur_lex_p , 
+                             prev_lex_p , 
+                             morph_p , 
+                             d_p , 
+                             LT ) ) {
+      return ;
+   }
+
+#ifdef COMBINE_FRACTS_WITH_NUMBS
+   if ( find_def_type( cur_lex_p -> DefList , 
+                       FractL ) ) {
+
+      combine_lexemes( s_p , 
+                       morph_p , 
+                       d_p[ DNUMBER ] )  ;
+      return ;
+   }
+#endif
+
+#ifdef EXPRESS_ORDINALS
+   if ( is_ordinal_suffix( cur_lex_p , 
+                           prev_lex_p ,
+                           morph_p ,
+                           d_p ,
+                           LT ) ) {
+      combine_lexemes( s_p , 
+                       morph_p , 
+                       d_p[ DORD ] ) ;
+      return ;
+   }
+#endif
+
+}
+
+/*-----------------------------------------------------
+tokenize.c (new_defs)
+called by tokenize.c (process_lexemes)
+MACROS: BLANK_STRING
+------------------------------------------------------*/
+static DEF *new_defs( struct morph *morph_p , 
+                      DEF **d_p , 
+                      ENTRY *Cur ,
+                      int pos ,
+                      char *LTarget ) {
+   DEFDEF s ;
+
+   /* -- A single or double letter sequence, even if found in the lexicon,
+      may be only that - the two letter abbreviation for Alaska may be
+      part of a unit number. A more sophisticated solution might be to
+      check context - but implementation has all sorts of pitfalls - maybe
+      later -- */
+
+   s = ( morph_p + pos ) -> Sym ; 
+
+   if ( Cur != NULL ) {
+      return( Cur -> DefList );
+   }
+   /* -- standardize ordinals as numbers -- do this before
+      the Target is copied into the lexeme -- */
+
+#ifndef EXPRESS_ORDINALS
+   if ( s == DORD ) { 
+      /* -- remove the suffix -- */
+      BLANK_STRING((LTarget + strlen(LTarget) - 2)) ;
+   }
+#endif
+
+   /* -- if no entry was found, just use the default list -- */
+   return ( d_p[ s ]  ) ; 
+}
+
+/*-----------------------------------------------------
+tokenize.c (is_symb_on_list)
+called by tokenize.c (find_def_type, is_route)
+------------------------------------------------------*/
+int is_symb_on_list( SYMB a , 
+                     SYMB *List ) {
+   SYMB *s ;
+   for ( s = List ; 
+         *s != FAIL ; 
+         s++ )
+      if ( *s == a )
+         return TRUE ;
+   return FALSE ;
+}
+
+/*-----------------------------------------------------
+tokenize.c (find_def_type)
+searches a definition list looking for one that matches
+the type
+calls tokenize.c (is_symb_on_list)
+called by tokenize.c (process_lexeme etc)
+return TRUE if found
+------------------------------------------------------*/
+int find_def_type( DEF *df , 
+                   SYMB *slist ) {
+   DEF *d ;
+
+   for ( d = df ; 
+         d != NULL ;
+         d = d -> Next )
+     if ( is_symb_on_list( d -> Type ,
+                           slist ) )
+        return TRUE ;
+   return FALSE ;
+}
+
+/*-----------------------------------------------------
+tokenize.c (set_lexeme)
+called by tokenize.c (process_lexeme)
+MACROS: CLIENT_ERR, RET_ERR1 
+string.h (strcpy)
+------------------------------------------------------*/
+static int set_lexeme( STAND_PARAM *s_p , 
+                       int Start ,
+                       int End , 
+                       DEF *start_def ,
+                       char *text ) {
+   LEXEME *L ;
+   int n ; 
+
+   /* -- we need a limit -- */
+   if ( ( n = s_p -> LexNum ) >= MAXLEX ) { 
+      CLIENT_ERR( s_p -> errors ) ;
+      RET_ERR1( "set_lexeme: %s is one too many lexemes" ,
+                text ,
+                s_p -> errors ,
+                FALSE ) ;
+   }
+   L = s_p -> lex_vector + n ; 
+   strcpy( L -> Text , 
+           text ) ;
+   L -> DefList = start_def ;
+   L -> StartMorph = Start ;
+   L -> EndMorph = End ;
+   return TRUE ;
+}
+
+/*-------------------------------------------------------
+tokenize.c (reset_lexeme)
+called by tokenize.c (combine_lexemes, initialize_morphs)
+NULL out the lexeme's text buffer
+--------------------------------------------------------*/
+static void reset_lexeme( LEXEME *lex_p ) { 
+   int i ;
+   char *s ;
+
+   lex_p -> DefList = NULL ; 
+   s = lex_p -> Text ; 
+   for ( i = 0 ; 
+         i < MAXTEXT ; 
+         i++ ) {
+      *( s + i ) = SENTINEL ;
+   }
+}
+
+/*-----------------------------------------------------
+tokenize.c (combine_lexemes)
+called by tokenize.c (is_zip, fix_mixed , numeric tail)
+calls tokenize.c (phrase_from_morphs, reset_lexeme)
+------------------------------------------------------*/
+static void combine_lexemes( STAND_PARAM *s_p , 
+                             struct morph * morph_p , 
+                             DEF *d ) {
+   /* -- combine the current Lexeme with the previous one -- */
+    LEXEME *CurLexVector, *PrevLexVector ; 
+
+    /* -- find the two lexemes to combine -- */
+    CurLexVector = s_p -> lex_vector + s_p -> LexNum ; 
+    PrevLexVector = CurLexVector - 1 ; 
+    PrevLexVector -> EndMorph = CurLexVector -> EndMorph ; /* the new end */ 
+    PrevLexVector -> Text[ 0 ] = SENTINEL ; 
+
+    phrase_from_morphs( morph_p , 
+                            PrevLexVector -> Text , 
+                            PrevLexVector -> StartMorph , 
+                            PrevLexVector -> EndMorph ) ; 
+    
+    PrevLexVector -> DefList = d ; /* - overwrite old deflist -- */
+    reset_lexeme( CurLexVector ) ; 
+    s_p -> LexNum-- ; 
+}
+
+/*--------------------------------------------------------
+tokenize.c (phrase_from_morphs)
+called by tokenize.c (process_lexemes , combine_lexemes)
+concatenate the morph strings into a single string
+uses macro BLANK_STRING
+---------------------------------------------------------*/
+static int phrase_from_morphs( struct morph *morph_vector , 
+                               char *Dest , 
+                               int beg , 
+                               int end ) {
+   int i , 
+       a ;
+
+   BLANK_STRING(Dest) ; 
+   strcpy( Dest ,
+           morph_vector[ beg ] . Text ) ;
+   for ( i = beg + 1 ; 
+         i <= end ; 
+         i++ ) {
+      /* -- No breaks in the middle of a phrase -- */
+      
+      a = morph_vector[ i - 1 ] . Term ;
+      if ( a == 1 )
+         return ( i - 1 ) ; /* -- indicate last morph used -- */
+      if ( a > 1 ) {
+         append_string_to_max( Dest ,
+                               " " ,
+                               MAXSTRLEN ) ; 
+      }
+      append_string_to_max( Dest,
+                            morph_vector[ i ] . Text ,
+                            MAXSTRLEN ) ;
+
+   }
+   return end ;
+}
+
diff --git a/extensions/address_standardizer/us_gaz.sql b/extensions/address_standardizer/us_gaz.sql
new file mode 100644
index 0000000..dde8087
--- /dev/null
+++ b/extensions/address_standardizer/us_gaz.sql
@@ -0,0 +1,1091 @@
+CREATE TABLE IF NOT EXISTS us_gaz (
+    id serial,
+    seq integer,
+    word text,
+    stdword text,
+    token integer, is_custom boolean NOT NULL DEFAULT true, CONSTRAINT pk_us_gaz PRIMARY KEY(id) 
+);
+
+-- this will be needed for upgrading to prevent purging of custom entries
+DELETE FROM us_gaz WHERE is_custom = false;
+
+-- needed so entries we add will default to not custom
+ALTER TABLE us_gaz ALTER COLUMN is_custom SET DEFAULT false;
+
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AB', 'ALBERTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'AB', 'ALBERTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'AB', 'ALBERTA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AFB', 'AIR FORCE BASE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'A F B', 'AIR FORCE BASE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AIR FORCE BASE', 'AIR FORCE BASE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AK', 'ALASKA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'AK', 'ALASKA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'AK', 'ALASKA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AL', 'ALABAMA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'AL', 'ALABAMA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'AL', 'ALABAMA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ALA', 'ALABAMA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ALA', 'ALABAMA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ALA', 'ALABAMA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ALABAMA', 'ALABAMA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ALABAMA', 'ALABAMA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ALASKA', 'ALASKA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ALASKA', 'ALASKA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ALBERTA', 'ALBERTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ALBERTA', 'ALBERTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AR', 'ARKANSAS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'AR', 'ARKANSAS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'AR', 'ARKANSAS', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ARIZ', 'ARIZONA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ARIZ', 'ARIZONA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ARIZ', 'ARIZONA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ARIZONA', 'ARIZONA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ARIZONA', 'ARIZONA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ARK', 'ARKANSAS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ARK', 'ARKANSAS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ARK', 'ARKANSAS', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ARKANSAS', 'ARKANSAS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ARKANSAS', 'ARKANSAS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AZ', 'ARIZONA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'AZ', 'ARIZONA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'AZ', 'ARIZONA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'B C', 'BRITISH COLUMBIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'B C', 'BRITISH COLUMBIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'B C', 'BRITISH COLUMBIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'BC', 'BRITISH COLUMBIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'BC', 'BRITISH COLUMBIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'BC', 'BRITISH COLUMBIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'BRITISH COLUMBIA', 'BRITISH COLUMBIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'BRITISH COLUMBIA', 'BRITISH COLUMBIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CA', 'CALIFORNIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'CA', 'CALIFORNIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'CA', 'CALIFORNIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (4, 'CA', 'CANADA', 12);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (5, 'CA', 'CARRE', 2);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CALIF', 'CALIFORNIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'CALIF', 'CALIFORNIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'CALIF', 'CALIFORNIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CALIFORNIA', 'CALIFORNIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'CALIFORNIA', 'CALIFORNIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CANADA', 'CANADA', 12);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'CANADA', 'CANADA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CO', 'COLORADO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'CO', 'COLORADO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'CO', 'COLORADO', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'COLOMBIE BRITANNIQUE', 'BRITISH COLUMBIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'COLOMBIE BRITANNIQUE', 'BRITISH COLUMBIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'COLORADO', 'COLORADO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'COLORADO', 'COLORADO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CONN', 'CONNECTICUT', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'CONN', 'CONNECTICUT', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'CONN', 'CONNECTICUT', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CONNECTICUT', 'CONNECTICUT', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'CONNECTICUT', 'CONNECTICUT', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CT', 'CONNECTICUT', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'CT', 'CONNECTICUT', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'CT', 'CONNECTICUT', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DC', 'DISTRICT OF COLUMBIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'DC', 'DISTRICT OF COLUMBIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'DC', 'DISTRICT OF COLUMBIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE', 'DELAWARE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'DE', 'DELAWARE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DEL', 'DELAWARE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'DEL', 'DELAWARE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'DEL', 'DELAWARE', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DELAWARE', 'DELAWARE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'DELAWARE', 'DELAWARE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DISTRICT OF COLUMBIA', 'DISTRICT OF COLUMBIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'DISTRICT OF COLUMBIA', 'DISTRICT OF COLUMBIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FL', 'FLORIDA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'FL', 'FLORIDA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'FL', 'FLORIDA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FLA', 'FLORIDA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'FLA', 'FLORIDA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'FLA', 'FLORIDA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FLORIDA', 'FLORIDA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'FLORIDA', 'FLORIDA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FRKS', 'FORKS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'GA', 'GEORGIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'GA', 'GEORGIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'GA', 'GEORGIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'GEORGIA', 'GEORGIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'GEORGIA', 'GEORGIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'HAWAII', 'HAWAII', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'HAWAII', 'HAWAII', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'HI', 'HAWAII', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'HI', 'HAWAII', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'HI', 'HAWAII', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'IA', 'IOWA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'IA', 'IOWA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'IA', 'IOWA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ID', 'IDAHO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ID', 'IDAHO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ID', 'IDAHO', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'IDAHO', 'IDAHO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'IDAHO', 'IDAHO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'IL', 'ILLINOIS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'IL', 'ILLINOIS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'IL', 'ILLINOIS', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ILE DU PRINCE EDOUARD', 'PRINCE EDWARD ISLAND', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ILE DU PRINCE EDOUARD', 'PRINCE EDWARD ISLAND', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ILL', 'ILLINOIS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ILL', 'ILLINOIS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ILL', 'ILLINOIS', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ILLINOIS', 'ILLINOIS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ILLINOIS', 'ILLINOIS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'IN', 'INDIANA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'IN', 'INDIANA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'IN', 'INDIANA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'IND', 'INDIANA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'IND', 'INDIANA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'IND', 'INDIANA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'INDIANA', 'INDIANA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'INDIANA', 'INDIANA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'IOWA', 'IOWA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'IOWA', 'IOWA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'KANSAS', 'KANSAS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'KANSAS', 'KANSAS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'KENT', 'KENTUCKY', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'KENT', 'KENTUCKY', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'KENT', 'KENTUCKY', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'KENTUCKY', 'KENTUCKY', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'KENTUCKY', 'KENTUCKY', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'KS', 'KANSAS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'KS', 'KANSAS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'KS', 'KANSAS', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'KY', 'KENTUCKY', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'KY', 'KENTUCKY', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'KY', 'KENTUCKY', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA', 'LOUISIANA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'LA', 'LOUISIANA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'LA', 'LOUISIANA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LABRADOR', 'NEWFOUNDLAND AND LABRADOR', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'LABRADOR', 'NEWFOUNDLAND AND LABRADOR', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LOUISIANA', 'LOUISIANA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'LOUISIANA', 'LOUISIANA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MA', 'MASSACHUSETTS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MA', 'MASSACHUSETTS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MA', 'MASSACHUSETTS', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (4, 'MA', 'MANOR', 2);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MAINE', 'MAINE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MAINE', 'MAINE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MANITOBA', 'MANITOBA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MANITOBA', 'MANITOBA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MARYLAND', 'MARYLAND', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MARYLAND', 'MARYLAND', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MASS', 'MASSACHUSETTS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MASS', 'MASSACHUSETTS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MASS', 'MASSACHUSETTS', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MASSACHUSETTS', 'MASSACHUSETTS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MASSACHUSETTS', 'MASSACHUSETTS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MB', 'MANITOBA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MB', 'MANITOBA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MB', 'MANITOBA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MD', 'MARYLAND', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MD', 'MARYLAND', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MD', 'MARYLAND', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ME', 'MAINE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ME', 'MAINE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ME', 'MAINE', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MI', 'MICHIGAN', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MI', 'MICHIGAN', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MI', 'MICHIGAN', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MICH', 'MICHIGAN', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MICH', 'MICHIGAN', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MICH', 'MICHIGAN', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MICHIGAN', 'MICHIGAN', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MICHIGAN', 'MICHIGAN', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MINN', 'MINNESOTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MINN', 'MINNESOTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MINN', 'MINNESOTA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MINNESOTA', 'MINNESOTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MINNESOTA', 'MINNESOTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MISSISSIPPI', 'MISSISSIPPI', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MISSISSIPPI', 'MISSISSIPPI', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MISSOURI', 'MISSOURI', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MISSOURI', 'MISSOURI', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MN', 'MINNESOTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MN', 'MINNESOTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MN', 'MINNESOTA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MO', 'MISSOURI', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MO', 'MISSOURI', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MO', 'MISSOURI', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MONT', 'MONTANA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MONT', 'MONTANA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MONT', 'MONTANA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MONTANA', 'MONTANA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MONTANA', 'MONTANA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MT', 'MONTANA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MT', 'MONTANA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MT', 'MONTANA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MS', 'MISSISSIPPI', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'MS', 'MISSISSIPPI', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'MS', 'MISSISSIPPI', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'N CAROLINA', 'NORTH CAROLINA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'N CAROLINA', 'NORTH CAROLINA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'N DAKOTA', 'NORTH DAKOTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'N DAKOTA', 'NORTH DAKOTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NB', 'NEW BRUNSWICK', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NB', 'NEW BRUNSWICK', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NB', 'NEW BRUNSWICK', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NC', 'NORTH CAROLINA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NC', 'NORTH CAROLINA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NC', 'NORTH CAROLINA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ND', 'NORTH DAKOTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ND', 'NORTH DAKOTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ND', 'NORTH DAKOTA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NE', 'NEBRASKA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NE', 'NEBRASKA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NE', 'NEBRASKA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEB', 'NEBRASKA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEB', 'NEBRASKA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NEB', 'NEBRASKA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEBRASKA', 'NEBRASKA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEBRASKA', 'NEBRASKA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEV', 'NEVADA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEV', 'NEVADA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NEV', 'NEVADA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEVADA', 'NEVADA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEVADA', 'NEVADA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEW BRUNSWICK', 'NEW BRUNSWICK', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEW BRUNSWICK', 'NEW BRUNSWICK', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEW HAMPSHIRE', 'NEW HAMPSHIRE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEW HAMPSHIRE', 'NEW HAMPSHIRE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEW JERSEY', 'NEW JERSEY', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEW JERSEY', 'NEW JERSEY', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEW MEXICO', 'NEW MEXICO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEW MEXICO', 'NEW MEXICO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEW YORK', 'NEW YORK', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEW YORK', 'NEW YORK', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NEWFOUNDLAND', 'NEWFOUNDLAND AND LABRADOR', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NEWFOUNDLAND', 'NEWFOUNDLAND AND LABRADOR', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NF', 'NEWFOUNDLAND AND LABRADOR', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NF', 'NEWFOUNDLAND AND LABRADOR', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NF', 'NEWFOUNDLAND AND LABRADOR', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NH', 'NEW HAMPSHIRE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NH', 'NEW HAMPSHIRE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NH', 'NEW HAMPSHIRE', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NJ', 'NEW JERSEY', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NJ', 'NEW JERSEY', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NJ', 'NEW JERSEY', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NL', 'NEWFOUNDLAND AND LABRADOR', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NL', 'NEWFOUNDLAND AND LABRADOR', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NL', 'NEWFOUNDLAND AND LABRADOR', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NM', 'NEW MEXICO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NM', 'NEW MEXICO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NM', 'NEW MEXICO', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NORTH CAROLINA', 'NORTH CAROLINA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NORTH CAROLINA', 'NORTH CAROLINA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NORTH DAKOTA', 'NORTH DAKOTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NORTH DAKOTA', 'NORTH DAKOTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NORTHWEST', 'NORTHWEST', 22);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NORTHWEST TERRITORIES', 'NORTHWEST TERRITORIES', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NORTHWEST TERRITORIES', 'NORTHWEST TERRITORIES', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NOUVEAU BRUNSWICK', 'NEW BRUNSWICK', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NOUVEAU BRUNSWICK', 'NEW BRUNSWICK', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NOUVELLE ECOSSE', 'NOVA SCOTIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NOUVELLE ECOSSE', 'NOVA SCOTIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NOVA SCOTIA', 'NOVA SCOTIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NOVA SCOTIA', 'NOVA SCOTIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NS', 'NOVA SCOTIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NS', 'NOVA SCOTIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NS', 'NOVA SCOTIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NT', 'NORTHWEST TERRITORIES', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NT', 'NORTHWEST TERRITORIES', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NT', 'NORTHWEST TERRITORIES', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NU', 'NUNAVUT', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NU', 'NUNAVUT', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NU', 'NUNAVUT', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NUNAVUT', 'NUNAVUT', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NUNAVUT', 'NUNAVUT', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NV', 'NEVADA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NV', 'NEVADA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NV', 'NEVADA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NY', 'NEW YORK', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'NY', 'NEW YORK', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'NY', 'NEW YORK', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'OH', 'OHIO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'OH', 'OHIO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'OH', 'OHIO', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'OHIO', 'OHIO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'OHIO', 'OHIO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'OK', 'OKLAHOMA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'OK', 'OKLAHOMA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'OK', 'OKLAHOMA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'OKLA', 'OKLAHOMA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'OKLA', 'OKLAHOMA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'OKLA', 'OKLAHOMA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'OKLAHOMA', 'OKLAHOMA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'OKLAHOMA', 'OKLAHOMA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ON', 'ONTARIO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ON', 'ONTARIO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ON', 'ONTARIO', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ONT', 'ONTARIO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ONT', 'ONTARIO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ONT', 'ONTARIO', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ONTARIO', 'ONTARIO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ONTARIO', 'ONTARIO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'OR', 'OREGON', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'OR', 'OREGON', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'OR', 'OREGON', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ORE', 'OREGON', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'ORE', 'OREGON', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'ORE', 'OREGON', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'OREGON', 'OREGON', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'OREGON', 'OREGON', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PA', 'PENNSYLVANIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PA', 'PENNSYLVANIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'PA', 'PENNSYLVANIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PE', 'PRINCE EDWARD ISLAND', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PE', 'PRINCE EDWARD ISLAND', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'PE', 'PRINCE EDWARD ISLAND', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PEI', 'PRINCE EDWARD ISLAND', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PEI', 'PRINCE EDWARD ISLAND', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'PEI', 'PRINCE EDWARD ISLAND', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PENN', 'PENNSYLVANIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PENN', 'PENNSYLVANIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'PENN', 'PENNSYLVANIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PENNA', 'PENNSYLVANIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PENNA', 'PENNSYLVANIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'PENNA', 'PENNSYLVANIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PENNSYLVANIA', 'PENNSYLVANIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PENNSYLVANIA', 'PENNSYLVANIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PQ', 'QUEBEC', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PQ', 'QUEBEC', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'PQ', 'QUEBEC', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PR', 'PUERTO RICO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PR', 'PUERTO RICO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'PR', 'PUERTO RICO', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PRINCE EDWARD ISLAND', 'PRINCE EDWARD ISLAND', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PRINCE EDWARD ISLAND', 'PRINCE EDWARD ISLAND', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PUERTO RICO', 'PUERTO RICO', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'PUERTO RICO', 'PUERTO RICO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'QC', 'QUEBEC', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'QC', 'QUEBEC', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'QC', 'QUEBEC', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'QUEBEC', 'QUEBEC', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'QUEBEC', 'QUEBEC', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'RHODE ISLAND', 'RHODE ISLAND', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'RHODE ISLAND', 'RHODE ISLAND', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'RI', 'RHODE ISLAND', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'RI', 'RHODE ISLAND', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'RI', 'RHODE ISLAND', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'S CAROLINA', 'SOUTH CAROLINA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'S CAROLINA', 'SOUTH CAROLINA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'S DAKOTA', 'SOUTH DAKOTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'S DAKOTA', 'SOUTH DAKOTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SASK', 'SASKATCHEWAN', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'SASK', 'SASKATCHEWAN', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SASKATCHEWAN', 'SASKATCHEWAN', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'SASKATCHEWAN', 'SASKATCHEWAN', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SC', 'SOUTH CAROLINA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'SC', 'SOUTH CAROLINA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'SC', 'SOUTH CAROLINA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SD', 'SOUTH DAKOTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'SD', 'SOUTH DAKOTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'SD', 'SOUTH DAKOTA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SK', 'SASKATCHEWAN', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'SK', 'SASKATCHEWAN', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'SK', 'SASKATCHEWAN', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SOUTH CAROLINA', 'SOUTH CAROLINA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'SOUTH CAROLINA', 'SOUTH CAROLINA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SOUTH DAKOTA', 'SOUTH DAKOTA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'SOUTH DAKOTA', 'SOUTH DAKOTA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TENN', 'TENNESSEE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'TENN', 'TENNESSEE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'TENN', 'TENNESSEE', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TENNESSEE', 'TENNESSEE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'TENNESSEE', 'TENNESSEE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TERRE NEUVE', 'NEWFOUNDLAND', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'TERRE NEUVE', 'NEWFOUNDLAND', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TERRITOIRES DU NORD OUES', 'NORTHWEST TERRITORIES', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'TERRITOIRES DU NORD OUES', 'NORTHWEST TERRITORIES', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TEX', 'TEXAS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'TEX', 'TEXAS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'TEX', 'TEXAS', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TEXAS', 'TEXAS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'TEXAS', 'TEXAS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TN', 'TENNESSEE', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'TN', 'TENNESSEE', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'TN', 'TENNESSEE', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TX', 'TEXAS', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'TX', 'TEXAS', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'TX', 'TEXAS', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'U S', 'US', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'U S', 'USA', 12);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'U S A', 'USA', 12);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'UNITED STATES OF AMERICA', 'USA', 12);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'US', 'US', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'US', 'USA', 12);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'USA', 'USA', 12);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'UT', 'UTAH', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'UT', 'UTAH', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'UT', 'UTAH', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'UTAH', 'UTAH', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'UTAH', 'UTAH', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'VA', 'VIRGINIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'VA', 'VIRGINIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'VA', 'VIRGINIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'VERMONT', 'VERMONT', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'VERMONT', 'VERMONT', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'VIRGINIA', 'VIRGINIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'VIRGINIA', 'VIRGINIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'VT', 'VERMONT', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'VT', 'VERMONT', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'VT', 'VERMONT', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'W VIRGINIA', 'WEST VIRGINIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'W VIRGINIA', 'WEST VIRGINIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WA', 'WASHINGTON', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WA', 'WASHINGTON', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'WA', 'WASHINGTON', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WASH', 'WASHINGTON', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WASH', 'WASHINGTON', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'WASH', 'WASHINGTON', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WASHINGTON', 'WASHINGTON', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WASHINGTON', 'WASHINGTON', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WEST VIRGINIA', 'WEST VIRGINIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WEST VIRGINIA', 'WEST VIRGINIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WI', 'WISCONSIN', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WI', 'WISCONSIN', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'WI', 'WISCONSIN', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WISC', 'WISCONSIN', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WISC', 'WISCONSIN', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'WISC', 'WISCONSIN', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WISCONSIN', 'WISCONSIN', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WISCONSIN', 'WISCONSIN', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WV', 'WEST VIRGINIA', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WV', 'WEST VIRGINIA', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'WV', 'WEST VIRGINIA', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WY', 'WYOMING', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WY', 'WYOMING', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'WY', 'WYOMING', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WYOMING', 'WYOMING', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'WYOMING', 'WYOMING', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'YK', 'YUKON', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'YK', 'YUKON', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'YK', 'YUKON', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'YT', 'YUKON', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'YT', 'YUKON', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (3, 'YT', 'YUKON', 6);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'YUKON', 'YUKON', 11);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'YUKON', 'YUKON', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'BOIS D ARC', 'BOIS D ARC', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'BOIS D''ARC', 'BOIS D ARC', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CAMP H M SMITH', 'CAMP H M SMITH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CAMP HM SMITH', 'CAMP H M SMITH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'COEUR D ALENE', 'COEUR D ALENE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'COEUR D''ALENE', 'COEUR D ALENE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'D HANIS', 'D HANIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'D''HANIS', 'D HANIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL PASO', 'EL PASO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (2, 'EL PASO', 'EL PASO', 1);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT GEORGE G MEADE', 'FORT GEORGE G MEADE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT GEORGE MEADE', 'FORT GEORGE G MEADE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT MEADE', 'FORT GEORGE G MEADE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LAND O LAKES', 'LAND O LAKES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LAND O''LAKES', 'LAND O LAKES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'M C B H KANEOHE BAY', 'M C B H KANEOHE BAY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCBH KANEOHE BAY', 'M C B H KANEOHE BAY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'N VAN', 'NORTH VANCOUVER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'N VANCOUVER', 'NORTH VANCOUVER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NO VANCOUVER', 'NORTH VANCOUVER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'NORTH VANCOUVER', 'NORTH VANCOUVER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'O BRIEN', 'O BRIEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'O''BRIEN', 'O BRIEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'O FALLON', 'O FALLON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'O''FALLON', 'O FALLON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'O NEALS', 'O NEALS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'O''NEALS', 'O NEALS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ROUND O', 'ROUND O', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'S COFFEYVILLE', 'SOUTH COFFEYVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SOUTH COFFEYVILLE', 'SOUTH COFFEYVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'U S A F ACADEMY', 'U S A F ACADEMY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'USAF ACADEMY', 'U S A F ACADEMY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'W VAN', 'WEST VANCOUVER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'W VANCOUVER', 'WEST VANCOUVER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'WEST VANCOUVER', 'WEST VANCOUVER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AU GRES', 'AU GRES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AU SABLE FORKS', 'AU SABLE FORKS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AU SABLE FRKS', 'AU SABLE FORKS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AU TRAIN', 'AU TRAIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AVON BY THE SEA', 'AVON BY THE SEA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'AVON BY SEA', 'AVON BY THE SEA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'BAYOU LA BATRE', 'BAYOU LA BATRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'BIRD IN HAND', 'BIRD IN HAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CAMDEN ON GAULEY', 'CAMDEN ON GAULEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CARDIFF BY THE SEA', 'CARDIFF BY THE SEA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CARDIFF BY SEA', 'CARDIFF BY THE SEA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CASTLETON ON HUDSON', 'CASTLETON ON HUDSON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CAVE IN ROCK', 'CAVE IN ROCK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CORNWALL ON HUDSON', 'CORNWALL ON HUDSON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'CROTON ON HUDSON', 'CROTON ON HUDSON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE BEQUE', 'DE BEQUE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE BERRY', 'DE BERRY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE FOREST', 'DE FOREST', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE GRAFF', 'DE GRAFF', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE KALB', 'DE KALB', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE KALB JUNCTION', 'DE KALB JUNCTION', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE LAND', 'DE LAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE LEON', 'DE LEON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE LEON SPRINGS', 'DE LEON SPRINGS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE MOSSVILLE', 'DE MOSSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE PERE', 'DE PERE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE PEYSTER', 'DE PEYSTER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE QUEEN', 'DE QUEEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE RUYTER', 'DE RUYTER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE SMET', 'DE SMET', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE SOTO', 'DE SOTO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE TOUR VILLAGE', 'DE TOUR VILLAGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE VALLS BLUFF', 'DE VALLS BLUFF', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'VALLS BLUFF', 'DE VALLS BLUFF', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE WITT', 'DE WITT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DE YOUNG', 'DE YOUNG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DU BOIS', 'DU BOIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DU PONT', 'DU PONT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'DU QUOIN', 'DU QUOIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'E MC KEESPORT', 'EAST MC KEESPORT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'E MCKEESPORT', 'EAST MC KEESPORT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EAST MC KEESPORT', 'EAST MC KEESPORT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EAST MCKEESPORT', 'EAST MC KEESPORT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL CAJON', 'EL CAJON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL CAMPO', 'EL CAMPO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL CENTRO', 'EL CENTRO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL CERRITO', 'EL CERRITO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL DORADO', 'EL DORADO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL DORADO HILLS', 'EL DORADO HILLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL DORADO SPRINGS', 'EL DORADO SPRINGS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL MIRAGE', 'EL MIRAGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL MONTE', 'EL MONTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL NIDO', 'EL NIDO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL PRADO', 'EL PRADO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL RENO', 'EL RENO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL RITO', 'EL RITO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL SEGUNDO', 'EL SEGUNDO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'EL SOBRANTE', 'EL SOBRANTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FALLS OF ROUGH', 'FALLS OF ROUGH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FOND DU LAC', 'FOND DU LAC', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORKS OF SALMON', 'FORKS OF SALMON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT MC COY', 'FORT MC COY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT MCCOY', 'FORT MC COY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT MC KAVETT', 'FORT MC KAVETT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT MCKAVETT', 'FORT MC KAVETT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FT MITCHELL', 'FORT MITCHELL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT MITCHELL', 'FORT MITCHELL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FT MYER', 'FORT MYER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT MYER', 'FORT MYER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FT WARREN AFB', 'FORT WARREN AFB', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'FORT WARREN AFB', 'FORT WARREN AFB', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'HASTINGS ON HUDSON', 'HASTINGS ON HUDSON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'HAVRE DE GRACE', 'HAVRE DE GRACE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'HI HAT', 'HI HAT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'HO HO KUS', 'HO HO KUS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'HOWEY IN THE HILLS', 'HOWEY IN THE HILLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'HOWEY IN HILLS', 'HOWEY IN THE HILLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ISLE LA MOTTE', 'ISLE LA MOTTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ISLE OF PALMS', 'ISLE OF PALMS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ISLE OF SPRINGS', 'ISLE OF SPRINGS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'JAY EM', 'JAY EM', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'KING OF PRUSSIA', 'KING OF PRUSSIA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA BARGE', 'LA BARGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA BELLE', 'LA BELLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA CANADA FLINTRIDGE', 'LA CANADA FLINTRIDGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA CENTER', 'LA CENTER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA CONNER', 'LA CONNER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA COSTE', 'LA COSTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA CRESCENT', 'LA CRESCENT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA CRESCENTA', 'LA CRESCENTA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA CROSSE', 'LA CROSSE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA FARGE', 'LA FARGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA FARGEVILLE', 'LA FARGEVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA FAYETTE', 'LA FAYETTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA FERIA', 'LA FERIA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA FOLLETTE', 'LA FOLLETTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA FONTAINE', 'LA FONTAINE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA GRANDE', 'LA GRANDE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA GRANGE', 'LA GRANGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA GRANGE PARK', 'LA GRANGE PARK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA HABRA', 'LA HABRA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA HARPE', 'LA HARPE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA HONDA', 'LA HONDA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA JARA', 'LA JARA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA JOLLA', 'LA JOLLA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA JOSE', 'LA JOSE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA JOYA', 'LA JOYA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA JUNTA', 'LA JUNTA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA LOMA', 'LA LOMA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA LUZ', 'LA LUZ', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA MADERA', 'LA MADERA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA MARQUE', 'LA MARQUE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA MESA', 'LA MESA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA MIRADA', 'LA MIRADA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA MOILLE', 'LA MOILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA MONTE', 'LA MONTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA MOTTE', 'LA MOTTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA PALMA', 'LA PALMA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA PINE', 'LA PINE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA PLACE', 'LA PLACE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA PLATA', 'LA PLATA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA PORTE', 'LA PORTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA PORTE CITY', 'LA PORTE CITY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA PRAIRIE', 'LA PRAIRIE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA PUENTE', 'LA PUENTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA QUINTA', 'LA QUINTA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA RUE', 'LA RUE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA RUSSELL', 'LA RUSSELL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA SALLE', 'LA SALLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA VALLE', 'LA VALLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA VERGNE', 'LA VERGNE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA VERKIN', 'LA VERKIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA VERNE', 'LA VERNE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA VERNIA', 'LA VERNIA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA VETA', 'LA VETA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LA VISTA', 'LA VISTA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LAC DU FLAMBEAU', 'LAC DU FLAMBEAU', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LAKE IN THE HILLS', 'LAKE IN THE HILLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LAKE IN HILLS', 'LAKE IN THE HILLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LE CENTER', 'LE CENTER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LE CLAIRE', 'LE CLAIRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LE GRAND', 'LE GRAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LE MARS', 'LE MARS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LE RAYSVILLE', 'LE RAYSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LE ROY', 'LE ROY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LE SUEUR', 'LE SUEUR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LE VERNE', 'LU VERNE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'LU VERNE', 'LU VERNE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MARINE ON SAINT CROIX', 'MARINE ON SAINT CROIX', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC ADENVILLE', 'MC ADENVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCADENVILLE', 'MC ADENVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC ALISTER', 'MC ALISTER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCALISTER', 'MC ALISTER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC ALISTERVILLE', 'MC ALISTERVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCALISTERVILLE', 'MC ALISTERVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC ALPIN', 'MC ALPIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCALPIN', 'MC ALPIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC ANDREWS', 'MC ANDREWS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCANDREWS', 'MC ANDREWS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC ARTHUR', 'MC ARTHUR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCARTHUR', 'MC ARTHUR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC BAIN', 'MC BAIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCBAIN', 'MC BAIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC BEE', 'MC BEE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCBEE', 'MC BEE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CALL CREEK', 'MC CALL CREEK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCALL CREEK', 'MC CALL CREEK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CALLA', 'MC CALLA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCALLA', 'MC CALLA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CALLSBURG', 'MC CALLSBURG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCALLSBURG', 'MC CALLSBURG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CAMEY', 'MC CAMEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCAMEY', 'MC CAMEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CARLEY', 'MC CARLEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCARLEY', 'MC CARLEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CARR', 'MC CARR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCARR', 'MC CARR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CASKILL', 'MC CASKILL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCASKILL', 'MC CASKILL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CAULLEY', 'MC CAULLEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCAULLEY', 'MC CAULLEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CAYSVILLE', 'MC CAYSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCAYSVILLE', 'MC CAYSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CLAVE', 'MC CLAVE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCLAVE', 'MC CLAVE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CLELLAND', 'MC CLELLAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCLELLAND', 'MC CLELLAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CLELLANDTOWN', 'MC CLELLANDTOWN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCLELLANDTOWN', 'MC CLELLANDTOWN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CLELLANVILLE', 'MC CLELLANVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCLELLANVILLE', 'MC CLELLANVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CLURE', 'MC CLURE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCLURE', 'MC CLURE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CLURG', 'MC CLURG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCLURG', 'MC CLURG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC COLL', 'MC COLL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCOLL', 'MC COLL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC COMB', 'MC COMB', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCOMB', 'MC COMB', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CONNELL', 'MC CONNELL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCONNELL', 'MC CONNELL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CONNELLS', 'MC CONNELLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCONNELLS', 'MC CONNELLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CONNELLSBURG', 'MC CONNELLSBURG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCONNELLSBURG', 'MC CONNELLSBURG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC COOK', 'MC COOK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCOOK', 'MC COOK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC COOL', 'MC COOL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCOOL', 'MC COOL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC COOL JUNCTION', 'MC COOL JUNCTION', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCOOL JUNCTION', 'MC COOL JUNCTION', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CORDSVILLE', 'MC CORDSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCORDSVILLE', 'MC CORDSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CORMICK', 'MC CORMICK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCORMICK', 'MC CORMICK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC COY', 'MC COY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCOY', 'MC COY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CRACKEN', 'MC CRACKEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCRACKEN', 'MC CRACKEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CRORY', 'MC CRORY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCRORY', 'MC CRORY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CUNE', 'MC CUNE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCUNE', 'MC CUNE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC CUTCHENVILLE', 'MC CUTCHENVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCCUTCHENVILLE', 'MC CUTCHENVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC DADE', 'MC DADE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCDADE', 'MC DADE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC DANIELS', 'MC DANIELS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCDANIELS', 'MC DANIELS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC DAVID', 'MC DAVID', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCDAVID', 'MC DAVID', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC DERMOTT', 'MC DERMOTT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCDERMOTT', 'MC DERMOTT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC DONALD', 'MC DONALD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCDONALD', 'MC DONALD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC DONOUGH', 'MC DONOUGH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCDONOUGH', 'MC DONOUGH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC DOWELL', 'MC DOWELL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCDOWELL', 'MC DOWELL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC EWEN', 'MC EWEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCEWEN', 'MC EWEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC FALL', 'MC FALL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCFALL', 'MC FALL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC FARLAND', 'MC FARLAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCFARLAND', 'MC FARLAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC GAHEYSVILLE', 'MC GAHEYSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCGAHEYSVILLE', 'MC GAHEYSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC GEE', 'MC GEE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCGEE', 'MC GEE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC GEHEE', 'MC GEHEE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCGEHEE', 'MC GEHEE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC GRADY', 'MC GRADY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCGRADY', 'MC GRADY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC GRATH', 'MC GRATH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCGRATH', 'MC GRATH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC GRAW', 'MC GRAW', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCGRAW', 'MC GRAW', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC GREGOR', 'MC GREGOR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCGREGOR', 'MC GREGOR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC HENRY', 'MC HENRY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCHENRY', 'MC HENRY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC INTIRE', 'MC INTIRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCINTIRE', 'MC INTIRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC INTOSH', 'MC INTOSH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCINTOSH', 'MC INTOSH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC INTYRE', 'MC INTYRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCINTYRE', 'MC INTYRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC KEAN', 'MC KEAN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCKEAN', 'MC KEAN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC KEE', 'MC KEE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCKEE', 'MC KEE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC KEES ROCKS', 'MC KEES ROCKS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCKEES ROCKS', 'MC KEES ROCKS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC KENNEY', 'MC KENNEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCKENNEY', 'MC KENNEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC KENZIE', 'MC KENZIE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCKENZIE', 'MC KENZIE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC KITTRICK', 'MC KITTRICK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCKITTRICK', 'MC KITTRICK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC LAIN', 'MC LAIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCLAIN', 'MC LAIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC LAUGHLIN', 'MC LAUGHLIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCLAUGHLIN', 'MC LAUGHLIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC LEAN', 'MC LEAN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCLEAN', 'MC LEAN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC LEANSBORO', 'MC LEANSBORO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCLEANSBORO', 'MC LEANSBORO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC LEANSVILLE', 'MC LEANSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCLEANSVILLE', 'MC LEANSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC LEOD', 'MC LEOD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCLEOD', 'MC LEOD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC LOUTH', 'MC LOUTH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCLOUTH', 'MC LOUTH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC MILLAN', 'MC MILLAN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCMILLAN', 'MC MILLAN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC MINNVILLE', 'MC MINNVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCMINNVILLE', 'MC MINNVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC NABB', 'MC NABB', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCNABB', 'MC NABB', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC NEAL', 'MC NEAL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCNEAL', 'MC NEAL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC NEIL', 'MC NEIL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCNEIL', 'MC NEIL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC QUEENEY', 'MC QUEENEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCQUEENEY', 'MC QUEENEY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC RAE', 'MC RAE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCRAE', 'MC RAE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC ROBERTS', 'MC ROBERTS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCROBERTS', 'MC ROBERTS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC SHERRYSTOWN', 'MC SHERRYSTOWN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCSHERRYSTOWN', 'MC SHERRYSTOWN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MC VEYTOWN', 'MC VEYTOWN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MCVEYTOWN', 'MC VEYTOWN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MEADOWS OF DAN', 'MEADOWS OF DAN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MI WUK VILLAGE', 'MI WUK VILLAGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MOUTH OF WILSON', 'MOUTH OF WILSON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MT ZION', 'MOUNT ZION', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'MOUNT ZION', 'MOUNT ZION', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PE ELL', 'PE ELL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'POINT OF ROCKS', 'POINT OF ROCKS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PONCE DE LEON', 'PONCE DE LEON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PRAIRIE DU CHIEN', 'PRAIRIE DU CHIEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PRAIRIE DU ROCHER', 'PRAIRIE DU ROCHER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'PRAIRIE DU SAC', 'PRAIRIE DU SAC', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'RANCHO SANTA FE', 'RANCHO SANTA FE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'RANCHOS DE TAOS', 'RANCHOS DE TAOS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SANTA FE', 'SANTA FE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SANTA FE SPRINGS', 'SANTA FE SPRINGS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'S EL MONTE', 'SOUTH EL MONTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SOUTH EL MONTE', 'SOUTH EL MONTE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT COLUMBANS', 'SAINT COLUMBANS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST COLUMBANS', 'SAINT COLUMBANS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TOWNSHIP OF WASHINGTON', 'TOWNSHIP OF WASHINGTON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TRUTH OR CONSEQUENCES', 'TRUTH OR CONSEQUENCES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'TY TY', 'TY TY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'VILLAGE OF NAGOG WOODS', 'VILLAGE OF NAGOG WOODS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST AGATHA', 'SAINT AGATHA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ALBANS', 'SAINT ALBANS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ANDREWS', 'SAINT ANDREWS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ANN', 'SAINT ANN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ANN HIGHLANDS', 'SAINT ANN HIGHLANDS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ANNA', 'SAINT ANNA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ANNE', 'SAINT ANNE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ANSGAR', 'SAINT ANSGAR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ANTHONY', 'SAINT ANTHONY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ARMAND', 'SAINT ARMAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST AUBERT', 'SAINT AUBERT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST AUGUSTA', 'SAINT AUGUSTA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST AUGUSTINE', 'SAINT AUGUSTINE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST AUGUSTINE BEACH', 'SAINT AUGUSTINE BEACH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST AUGUSTINE SHORES', 'SAINT AUGUSTINE SHORES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST AUGUSTINE SOUTH', 'SAINT AUGUSTINE SOUTH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST BENEDICT', 'SAINT BENEDICT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST BERNARD', 'SAINT BERNARD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST BERNICE', 'SAINT BERNICE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST BONAVENTURE', 'SAINT BONAVENTURE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST BONIFACIUS', 'SAINT BONIFACIUS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST BRIDGET', 'SAINT BRIDGET', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CHARLES', 'SAINT CHARLES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CHARLES MESA', 'SAINT CHARLES MESA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CLAIR', 'SAINT CLAIR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CLAIR SHORES', 'SAINT CLAIR SHORES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CLAIRSVILLE', 'SAINT CLAIRSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CLEMENT', 'SAINT CLEMENT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CLERE', 'SAINT CLERE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CLOUD', 'SAINT CLOUD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CROIX', 'SAINT CROIX', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST CROIX FALLS', 'SAINT CROIX FALLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST DAVID', 'SAINT DAVID', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST DONATUS', 'SAINT DONATUS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST EDWARD', 'SAINT EDWARD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ELIZABETH', 'SAINT ELIZABETH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ELMO', 'SAINT ELMO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST FERDINAND', 'SAINT FERDINAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST FLORIAN', 'SAINT FLORIAN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST FRANCIS', 'SAINT FRANCIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST FRANCISVILLE', 'SAINT FRANCISVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST FRANCOIS', 'SAINT FRANCOIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST GABRIEL', 'SAINT GABRIEL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST GEORGE', 'SAINT GEORGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST GEORGE ISLAND', 'SAINT GEORGE ISLAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST GERMAIN', 'SAINT GERMAIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST HEDWIG', 'SAINT HEDWIG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST HELEN', 'SAINT HELEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST HELENA', 'SAINT HELENA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST HELENA ISLAND', 'SAINT HELENA ISLAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST HELENS', 'SAINT HELENS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST HENRY', 'SAINT HENRY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST HILAIRE', 'SAINT HILAIRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST IGNACE', 'SAINT IGNACE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST IGNATIUS', 'SAINT IGNATIUS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JACOB', 'SAINT JACOB', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JAMES', 'SAINT JAMES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JAMES CITY', 'SAINT JAMES CITY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JO', 'SAINT JO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JOE', 'SAINT JOE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JOHN', 'SAINT JOHN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JOHNS', 'SAINT JOHNS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JOHNS-FREEMONT', 'SAINT JOHNS-FREEMONT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JOHNS FREEMONT', 'SAINT JOHNS-FREEMONT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JOHNSBURY', 'SAINT JOHNSBURY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JOHNSVILLE', 'SAINT JOHNSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JOSEPH', 'SAINT JOSEPH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST JUST', 'SAINT JUST', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LAWRENCE', 'SAINT LAWRENCE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LEO', 'SAINT LEO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LEON', 'SAINT LEON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LEONARD', 'SAINT LEONARD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LIBORY', 'SAINT LIBORY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LOUIS', 'SAINT LOUIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LOUIS PARK', 'SAINT LOUIS PARK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LOUISVILLE', 'SAINT LOUISVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LUCAS', 'SAINT LUCAS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST LUCIE VILLAGE', 'SAINT LUCIE VILLAGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARIE', 'SAINT MARIE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARIES', 'SAINT MARIES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARKS', 'SAINT MARKS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARTIN', 'SAINT MARTIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARTINS', 'SAINT MARTINS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARTINVILLE', 'SAINT MARTINVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARY', 'SAINT MARY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARY OF THE WOODS', 'SAINT MARY OF THE WOODS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARY''S', 'SAINT MARY''S', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARYS', 'SAINT MARYS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MARYS POINT', 'SAINT MARYS POINT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MATHIAS', 'SAINT MATHIAS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MATTHEWS', 'SAINT MATTHEWS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MAURICE', 'SAINT MAURICE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MEINRAD', 'SAINT MEINRAD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MICHAEL', 'SAINT MICHAEL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST MICHAELS', 'SAINT MICHAELS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST NAZIANZ', 'SAINT NAZIANZ', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST OLAF', 'SAINT OLAF', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ONGE', 'SAINT ONGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST PARIS', 'SAINT PARIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST PAUL', 'SAINT PAUL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST PAUL PARK', 'SAINT PAUL PARK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST PAULS', 'SAINT PAULS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST PETE BEACH', 'SAINT PETE BEACH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST PETER', 'SAINT PETER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST PETERS', 'SAINT PETERS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST PETERSBURG', 'SAINT PETERSBURG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST PIERRE', 'SAINT PIERRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST REGIS', 'SAINT REGIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST REGIS FALLS', 'SAINT REGIS FALLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST REGIS MOHAWK', 'SAINT REGIS MOHAWK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST REGIS PARK', 'SAINT REGIS PARK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ROBERT', 'SAINT ROBERT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ROSA', 'SAINT ROSA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST ROSE', 'SAINT ROSE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST SIMONS', 'SAINT SIMONS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST STEPHEN', 'SAINT STEPHEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST STEPHENS', 'SAINT STEPHENS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST STEPHENS CHURCH', 'SAINT STEPHENS CHURCH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST THOMAS', 'SAINT THOMAS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST VINCENT', 'SAINT VINCENT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST VINCENT COLLEGE', 'SAINT VINCENT COLLEGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST WENDEL', 'SAINT WENDEL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'ST XAVIER', 'SAINT XAVIER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT AGATHA', 'SAINT AGATHA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ALBANS', 'SAINT ALBANS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ANDREWS', 'SAINT ANDREWS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ANN', 'SAINT ANN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ANN HIGHLANDS', 'SAINT ANN HIGHLANDS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ANNA', 'SAINT ANNA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ANNE', 'SAINT ANNE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ANSGAR', 'SAINT ANSGAR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ANTHONY', 'SAINT ANTHONY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ARMAND', 'SAINT ARMAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT AUBERT', 'SAINT AUBERT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT AUGUSTA', 'SAINT AUGUSTA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT AUGUSTINE', 'SAINT AUGUSTINE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT AUGUSTINE BEACH', 'SAINT AUGUSTINE BEACH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT AUGUSTINE SHORES', 'SAINT AUGUSTINE SHORES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT AUGUSTINE SOUTH', 'SAINT AUGUSTINE SOUTH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT BENEDICT', 'SAINT BENEDICT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT BERNARD', 'SAINT BERNARD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT BERNICE', 'SAINT BERNICE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT BONAVENTURE', 'SAINT BONAVENTURE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT BONIFACIUS', 'SAINT BONIFACIUS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT BRIDGET', 'SAINT BRIDGET', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CHARLES', 'SAINT CHARLES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CHARLES MESA', 'SAINT CHARLES MESA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CLAIR', 'SAINT CLAIR', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CLAIR SHORES', 'SAINT CLAIR SHORES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CLAIRSVILLE', 'SAINT CLAIRSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CLEMENT', 'SAINT CLEMENT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CLERE', 'SAINT CLERE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CLOUD', 'SAINT CLOUD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CROIX', 'SAINT CROIX', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT CROIX FALLS', 'SAINT CROIX FALLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT DAVID', 'SAINT DAVID', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT DONATUS', 'SAINT DONATUS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT EDWARD', 'SAINT EDWARD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ELIZABETH', 'SAINT ELIZABETH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ELMO', 'SAINT ELMO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT FERDINAND', 'SAINT FERDINAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT FLORIAN', 'SAINT FLORIAN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT FRANCIS', 'SAINT FRANCIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT FRANCISVILLE', 'SAINT FRANCISVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT FRANCOIS', 'SAINT FRANCOIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT GABRIEL', 'SAINT GABRIEL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT GEORGE', 'SAINT GEORGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT GEORGE ISLAND', 'SAINT GEORGE ISLAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT GERMAIN', 'SAINT GERMAIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT HEDWIG', 'SAINT HEDWIG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT HELEN', 'SAINT HELEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT HELENA', 'SAINT HELENA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT HELENA ISLAND', 'SAINT HELENA ISLAND', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT HELENS', 'SAINT HELENS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT HENRY', 'SAINT HENRY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT HILAIRE', 'SAINT HILAIRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT IGNACE', 'SAINT IGNACE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT IGNATIUS', 'SAINT IGNATIUS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JACOB', 'SAINT JACOB', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JAMES', 'SAINT JAMES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JAMES CITY', 'SAINT JAMES CITY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JO', 'SAINT JO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JOE', 'SAINT JOE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JOHN', 'SAINT JOHN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JOHNS', 'SAINT JOHNS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JOHNS-FREEMONT', 'SAINT JOHNS-FREEMONT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JOHNS FREEMONT', 'SAINT JOHNS-FREEMONT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JOHNSBURY', 'SAINT JOHNSBURY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JOHNSVILLE', 'SAINT JOHNSVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JOSEPH', 'SAINT JOSEPH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT JUST', 'SAINT JUST', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LAWRENCE', 'SAINT LAWRENCE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LEO', 'SAINT LEO', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LEON', 'SAINT LEON', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LEONARD', 'SAINT LEONARD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LIBORY', 'SAINT LIBORY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LOUIS', 'SAINT LOUIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LOUIS PARK', 'SAINT LOUIS PARK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LOUISVILLE', 'SAINT LOUISVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LUCAS', 'SAINT LUCAS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT LUCIE VILLAGE', 'SAINT LUCIE VILLAGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARIE', 'SAINT MARIE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARIES', 'SAINT MARIES', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARKS', 'SAINT MARKS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARTIN', 'SAINT MARTIN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARTINS', 'SAINT MARTINS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARTINVILLE', 'SAINT MARTINVILLE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARY', 'SAINT MARY', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARY OF THE WOODS', 'SAINT MARY OF THE WOODS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARY''S', 'SAINT MARY''S', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARYS', 'SAINT MARYS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MARYS POINT', 'SAINT MARYS POINT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MATHIAS', 'SAINT MATHIAS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MATTHEWS', 'SAINT MATTHEWS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MAURICE', 'SAINT MAURICE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MEINRAD', 'SAINT MEINRAD', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MICHAEL', 'SAINT MICHAEL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT MICHAELS', 'SAINT MICHAELS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT NAZIANZ', 'SAINT NAZIANZ', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT OLAF', 'SAINT OLAF', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ONGE', 'SAINT ONGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT PARIS', 'SAINT PARIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT PAUL', 'SAINT PAUL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT PAUL PARK', 'SAINT PAUL PARK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT PAULS', 'SAINT PAULS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT PETE BEACH', 'SAINT PETE BEACH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT PETER', 'SAINT PETER', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT PETERS', 'SAINT PETERS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT PETERSBURG', 'SAINT PETERSBURG', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT PIERRE', 'SAINT PIERRE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT REGIS', 'SAINT REGIS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT REGIS FALLS', 'SAINT REGIS FALLS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT REGIS MOHAWK', 'SAINT REGIS MOHAWK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT REGIS PARK', 'SAINT REGIS PARK', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ROBERT', 'SAINT ROBERT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ROSA', 'SAINT ROSA', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT ROSE', 'SAINT ROSE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT SIMONS', 'SAINT SIMONS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT STEPHEN', 'SAINT STEPHEN', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT STEPHENS', 'SAINT STEPHENS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT STEPHENS CHURCH', 'SAINT STEPHENS CHURCH', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT THOMAS', 'SAINT THOMAS', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT VINCENT', 'SAINT VINCENT', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT VINCENT COLLEGE', 'SAINT VINCENT COLLEGE', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT WENDEL', 'SAINT WENDEL', 10);
+INSERT INTO us_gaz (seq, word, stdword, token) VALUES (1, 'SAINT XAVIER', 'SAINT XAVIER', 10);
+
+-- needed set default back to custom so new user entries won't be purged
+ALTER TABLE us_gaz ALTER COLUMN is_custom SET DEFAULT true;
diff --git a/extensions/address_standardizer/us_lex.sql b/extensions/address_standardizer/us_lex.sql
new file mode 100644
index 0000000..183cb99
--- /dev/null
+++ b/extensions/address_standardizer/us_lex.sql
@@ -0,0 +1,2956 @@
+CREATE TABLE IF NOT EXISTS us_lex (
+	id serial,
+    seq integer,
+    word text,
+    stdword text,
+    token integer, is_custom boolean NOT NULL DEFAULT true, CONSTRAINT pk_us_lex PRIMARY KEY(id) 
+);
+
+-- this will be needed for upgrading to prevent purging of custom entries
+DELETE FROM us_lex WHERE is_custom = false;
+
+-- needed so entries we add will default to not custom
+ALTER TABLE us_lex ALTER COLUMN is_custom SET DEFAULT false;
+
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '#', '#', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '#', '#', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '&', 'AND', 13);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '&', 'AND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, '&', 'AND', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '-', '-', 9);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1 / 2', '1/2', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1 / 2 MILE', '1/2 MI', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1 / 3', '1/3', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1 / 4', '1/4', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1 MI', 'ONE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1 MILE', 'ONE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1/2', '1/2', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1/2 MILE', '1/2 MI', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1/3', '1/3', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1/4', '1/4', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '10 MI', 'TEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '10 MILE', 'TEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '10MI', 'TEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '100 MILE', 'ONE HUNDRED MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '11 MI', 'ELEVEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '11 MILE', 'ELEVEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '11MI', 'ELEVEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '12 MI', 'TWELVE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '12 MILE', 'TWELVE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '12MI', 'TWELVE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '13 MI', 'THIRTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '13 MILE', 'THIRTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '13MI', 'THIRTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '14 MI', 'FOURTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '14 MILE', 'FOURTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '14MI', 'FOURTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '15 MI', 'FIFTEEN MI', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '15 MILE', 'FIFTEEN MI', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '15MI', 'FIFTEEN MI', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '16 MI', 'SIXTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '16 MILE', 'SIXTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '16MI', 'SIXTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '17 MI', 'SEVENTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '17 MILE', 'SEVENTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '17MI', 'SEVENTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '18 MI', 'EIGHTEEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '18 MILE', 'EIGHTEEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '18MI', 'EIGHTEEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '19 MI', 'NINETEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '19 MILE', 'NINETEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '19MI', 'NINETEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1ER', 'PREMIERE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1ER', '1', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1MI', 'ONE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1RE', 'PREMIERE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1RE', '1', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '1ST', '1', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '1ST', '1', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '2 MI', 'TWO MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '2 MILE', 'TWO MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '20 MI', 'TWENTY MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '20 MILE', 'TWENTY MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '20MI', 'TWENTY MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '21ST', '21', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '21ST', '21', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '22ND', '22', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '22ND', '22', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '23 MI', 'TWENTY THREE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '23 MILE', 'TWENTY THREE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '23MI', 'TWENTY THREE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '23RD', '23', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '23RD', '23', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '2MI', 'TWO MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '3 / 4', '3/4', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '3 / 8', '3/8', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '3 MI', 'THREE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '3 MILE', 'THREE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '3/4', '3/4', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '3/8', '3/8', 25);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '31ST', '31', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '31ST', '31', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '33RD', '33', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '33RD', '33', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '3MI', 'THREE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '3RD', '3', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '3RD', '3', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4 CORNERS', 'FOUR CORNERS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4 FG', 'FOUR FLAGS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4 FLAGS', 'FOUR FLAGS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4 MI', 'FOUR MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4 MILE', 'FOUR MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4 SEASONS', 'FOUR SEASONS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4 SN', 'FOUR SEASONS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '41ST', '41', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '41ST', '41', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '43RD', '43', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '43RD', '43', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4MI', 'FOUR MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4WD', 'FOUR WHEEL DRIVE TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4WD TRAIL', 'FOUR WHEEL DRIVE TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '4WD TRL', 'FOUR WHEEL DRIVE TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '5 CEDARS', 'FIVE CEDARS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '5 CORNERS', 'FIVE CORNERS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '5 MI', 'FIVE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '5 MILE', 'FIVE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '5 POINTS', 'FIVE POINTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '5 PT', 'FIVE POINTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '5 TO', 'FIVE TOWN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '51ST', '51', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '51ST', '51', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '53RD', '53', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '53RD', '53', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '5MI', 'FIVE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '6 FG', 'SIX FLAGS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '6 FLAGS', 'SIX FLAGS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '6 MI', 'SIX MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '6 MILE', 'SIX MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '61ST', '61', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '61ST', '61', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '63RD', '63', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '63RD', '63', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '6MI', 'SIX MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '7 CORNERS', 'SEVEN CORNERS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '7 CORNERS', 'SEVEN CORNERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '7 MI', 'SEVEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '7 MILE', 'SEVEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '71ST', '71', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '71ST', '71', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '73RD', '73', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '73RD', '73', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '7MI', 'SEVEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '8 MI', 'EIGHT MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '8 MILE', 'EIGHT MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '81ST', '81', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '81ST', '81', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '83RD', '83', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '83RD', '83', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '8MI', 'EIGHT MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '9 MI', 'NINE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '9 MILE', 'NINE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '91ST', '91', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '91ST', '91', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '93RD', '93', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, '93RD', '93', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, '9MI', 'NINE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'A', 'ALTERNATE', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'A', 'A', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'A', 'A', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'A F B', 'AIR FORCE BASE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'A F B', 'AIR FORCE BASE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'A F S', 'AIR FORCE BASE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'A F S', 'AIR FORCE BASE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'A LA DERECHA', 'A LA DERECHA', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'AB', 'ABBEY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ABBEY', 'ABBEY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ABBEY', 'ABBEY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AC', 'ACRES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACAD', 'ACADEMY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACADE', 'ACADEMIA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACADEMIA', 'ACADEMIA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACADEMY', 'ACADEMY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACCESS', 'ACCESS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACR', 'ACRES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ACR', 'ACRES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ACR', 'ACRES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACRES', 'ACRES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ACRES', 'ACRES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ACRES', 'ACRES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACRS', 'ACRES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ACRS', 'ACRES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ACRS', 'ACRES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACUE', 'ACUEDUCTO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACUED', 'ACUEDUCTO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ACUEDUCTO', 'ACUEDUCTO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AEROPUERTO', 'AEROPUERTO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AEROPUERTO', 'AEROPUERTO', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AFB', 'AIR FORCE BASE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AFB', 'AIR FORCE BASE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AFLD', 'AIRPORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AFS', 'AIR FORCE BASE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AFS', 'AIR FORCE BASE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AIR FORCE BASE', 'AIR FORCE BASE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AIR FORCE BASE', 'AIR FORCE BASE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AIR FORCE STATION', 'AIR FORCE BASE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AIR FORCE STATION', 'AIR FORCE BASE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AIRFIELD', 'AIRPORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AIRFIELD', 'AIRPORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AIRPARK', 'AIRPORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AIRPARK', 'AIRPORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AIRPORT', 'AIRPORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AIRPORT', 'AIRPORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AIRSTRIP', 'AIRPORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AIRSTRIP', 'AIRPORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AIRSTRP', 'AIRPORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AIRSTRP', 'AIRPORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AL', 'ALLEY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AL', 'ALLEY', 11);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'AL', 'ALLEY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALC', 'ALCOVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALD', 'A LA DERECHA', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALLEE', 'ALLEE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALLEY', 'ALLEY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ALLEY', 'ALLEY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALLY', 'ALLEY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALT', 'ALTERNATE', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALTERNATE', 'ALTERNATE', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALTO', 'ALTO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ALTO', 'ALTOS', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALTOS', 'ALTOS', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ALTOS', 'ALTOS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ALY', 'ALLEY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AND', 'AND', 13);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AND', 'AND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ANEX', 'ANNEX', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ANEX', 'ANNEX', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ANNEX', 'ANNEX', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ANNEX', 'ANNEX', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ANNX', 'ANNEX', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ANNX', 'ANNEX', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ANX', 'ANNEX', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ANX', 'ANNEX', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AP', 'APARTMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APART', 'APARTMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APARTEMENT', 'APARTEMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APARTMENT', 'APARTMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APARTMENTS', 'APARTMENTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APARTADO', 'BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APO', 'APO', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APP', 'APARTEMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APPART', 'APARTEMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APPT', 'APARTEMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APRK', 'AIRPORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APS', 'APARTMENTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APT', 'APARTMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APT NO', 'APARTMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APTMT', 'APARTMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'APTS', 'APARTMENTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AR', 'ARRIERE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ARC', 'ARCADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ARC', 'ARCADE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ARCADE', 'ARCADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ARCADE', 'ARCADE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ARPT', 'AIRPORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ARPT', 'AIRPORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ARPTO', 'AIRPORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ARPTO', 'AIRPORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ARRIERE', 'ARRIERE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ARROYO', 'ARROYO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ARRYO', 'ARROYO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AT', 'AT', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ATPS', 'AUTOPISTA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ATPTA', 'AUTOPISTA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ATTN', 'ATTENTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AU', 'AUTOROUTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AU', 'AU', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AUT', 'AUTOROUTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AUTO', 'AUTOPISTA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AUTO', 'AUTO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AUTOPISTA', 'AUTOPISTA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AUTOROUTE', 'AUTOROUTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AV', 'AVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AV', 'AVANT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVA', 'AVENIDA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVANT', 'AVANT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'AVANT', 'AVANT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVE', 'AVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVEN', 'AVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVENIDA', 'AVENIDA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVENU', 'AVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVENUE', 'AVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVENUES', 'AVENUES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVES', 'AVENUES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVN', 'AVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVNUE', 'AVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'AVS', 'AVENUES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BA', 'BAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BAJO', 'BAJOS', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BAJOS', 'BAJOS', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BANK', 'BANK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BARRIO', 'BOROUGH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BASEMENT', 'BASEMENT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BASIN', 'BASIN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BASN', 'BASIN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BAY', 'BAY', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BAY', 'BAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'BAY', 'BAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BAY STATE', 'BAY STATE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BAYOU', 'BAYOU', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BAZAAR', 'BAZAAR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BAZR', 'BAZAAR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BCH', 'BEACH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BCH', 'BEACH', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BD', 'BOULEVARD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BDG', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BDG', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BDNG', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BDNG', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BDWY', 'BROADWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BE', 'BEND', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BEACH', 'BEACH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BEACH', 'BEACH', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BEND', 'BEND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BEND', 'BEND', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BETWEEN', 'BETWEEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BG', 'BURG', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BH', 'BEACH', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BL', 'BOULEVARD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLD', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BLD', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLDG', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BLDG', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLDING', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BLDING', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLDNG', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BLDNG', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLF', 'BLUFF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BLF', 'BLUFF', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLG', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BLG', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLUF', 'BLUFF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLUFF', 'BLUFF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BLUFF', 'BLUFF', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLV', 'BOULEVARD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLVD', 'BOULEVARD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BLVR', 'BULEVAR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BND', 'BEND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BND', 'BEND', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BNK', 'BANK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BO', 'BOROUGH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BO', 'BOURG', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOITE', 'BOITE', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOITE POSTALE', 'BOITE POSTALE', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BORO', 'BOROUGH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOROUGH', 'BOROUGH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOT', 'BOTTOM', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BOT', 'BOTTOM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOTTM', 'BOTTOM', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BOTTM', 'BOTTOM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOTTOM', 'BOTTOM', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BOTTOM', 'BOTTOM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOUL', 'BOULEVARD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOULEVARD', 'BOULEVARD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOULV', 'BOULEVARD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOURG', 'BOURG', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOX', 'BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BOX', 'BOX', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BOX NO', 'BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BP', 'BYPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BP', 'BYPASS', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'BP', 'BOITE POSTALE', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BR', 'BRANCH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRANCH', 'BRANCH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRDG', 'BRIDGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRDGE', 'BRIDGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRDWY', 'BROADWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRG', 'BRIDGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRG', 'BRIDGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRIDGE', 'BRIDGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRIDGES', 'BRIDGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRK', 'BROOK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BROADWAY', 'BROADWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BROOK', 'BROOK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BRWY', 'BROADWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BSMNT', 'BASEMENT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BSMT', 'BASEMENT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BSPK', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BSRT', 'BUSINESS ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BSRTE', 'BUSINESS ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BST', 'BASEMENT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BTM', 'BOTTOM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BTWN', 'BETWEEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUENA VISTA', 'BUENA VISTA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUILD', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BUILD', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUILDING', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BUILDING', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUILDING NUMBER', '#', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUILDNG', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BUILDNG', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BULDNG', 'BUILDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BULDNG', 'BUILDING', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BULEVAR', 'BULEVAR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUR', 'BUREAU', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUREAU', 'BUREAU', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BUREAU', 'BUREAU', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'BUREAU', 'BUREAU', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BURG', 'BURG', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUS', 'BUSINESS', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUS CENTER', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUS CENTR', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUS CTR', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUS PARK', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUS PK', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSCENTER', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSCENTR', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSCTR', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSINESS', 'BUSINESS', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BUSINESS', 'BUSINESS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSINESS CENTER', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSINESS CENTR', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSINESS CTR', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSINESS PARK', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSINESS PK', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSPARK', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSPK', 'BUSINESS PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSROUTE', 'BUSINESS ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSRT', 'BUSINESS ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BUSRTE', 'BUSINESS ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BV', 'BOULEVARD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BX', 'BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BY', 'BYWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BY', 'BY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BY PASS', 'BYPASS', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BY PASS', 'BYPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BY WAY', 'BYWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BYP', 'BYPASS', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BYP', 'BYPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BYPA', 'BYPASS', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BYPA', 'BYPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BYPAS', 'BYPASS', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BYPAS', 'BYPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BYPASS', 'BYPASS', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BYPASS', 'BYPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BYPS', 'BYPASS', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'BYPS', 'BYPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BYU', 'BAYOU', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'BYWAY', 'BYWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'C', 'C', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'C / O', 'CARE OF', 9);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'C D O', 'COMMERCIAL DEALERSHIP', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'C F B', 'CANADIAN FORCES BASE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'C M C', 'COMMUNITY MAIL CENTRE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'C R', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'C R', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'C/O', 'CARE OF', 9);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CALLE', 'CALLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CALLEJ', 'CALLEJON', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CALLEJA', 'CALLEJA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CALLEJO', 'CALLEJON', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CALLEJON', 'CALLEJON', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CALLER', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAM', 'CAMINO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAMINITO', 'CAMINITO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAMINO', 'CAMINO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAMP', 'CAMP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAMPER PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAMPER PK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAMPUS', 'CAMPUS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAMPUS', 'CAMPUS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CANADIAN FORCES BASE', 'CANADIAN FORCES BASE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CANYON', 'CANYON', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CANYN', 'CANYON', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAPE', 'CAPE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CAPE', 'CAPE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CARE OF', 'CARE OF', 9);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CARR', 'CARRETERA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CARRE', 'CARRE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CARRE', 'CARRE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CARREF', 'CARREFOUR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CARREFOUR', 'CARREFOUR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CARRETERA', 'CARRETERA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CARRT', 'CARRETERA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CAUSEWAY', 'CAUSEWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CC', 'CIRCUIT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CDN', 'CANADIAN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CDO', 'COMMERCIAL DEALERSHIP', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CDS', 'CUL DE SAC', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CE', 'CENTRE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CEN', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CEN', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CENT', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CENT', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CENTE', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CENTE', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CENTER', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CENTER', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CENTER', 'CENTER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CENTERS', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CENTR', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CENTR', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CENTRAL', 'CENTRAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CENTRE', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CENTRE', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CENTRE', 'CENTER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CENTRES', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CENTRO', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CENTRO', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CERCLE', 'CERCLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CERCLE', 'CERCLE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CFB', 'CANADIAN FORCES BASE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CG', 'CROSSING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CH', 'CHEMIN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CH', 'CHURCH', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CHASE', 'CHASE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CHASE', 'CHASE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CHEMIN', 'CHEMIN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CHURCH', 'CHURCH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CHURCH', 'CHURCH', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CIR', 'CIRCLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CIRC', 'CIRCULO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CIRCL', 'CIRCLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CIRCLE', 'CIRCLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CIRCLE', 'CIRCLE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CIRCT', 'CIRCUIT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CIRCT', 'CIRCUIT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CIRCUIT', 'CIRCUIT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CIRCUIT', 'CIRCUIT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CIRCULO', 'CIRCULO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CJA', 'CALLEJA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CJON', 'CALLEJON', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CK', 'CREEK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CL', 'CIRCLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CL', 'CIRCLE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLB', 'CLUB', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CLB', 'CLUB', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CLB', 'CLUB', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLF', 'CLIFF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLFS', 'CLIFFS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLG', 'COLLEGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLIFF', 'CLIFF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLIFFS', 'CLIFFS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLLE', 'CALLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLLJ', 'CALLEJON', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLOS', 'CLOSE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CLOS', 'CLOSE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLOSE', 'CLOSE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CLOSE', 'CLOSE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLTN', 'COLLECTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CLUB', 'CLUB', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CLUB', 'CLUB', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CLUB', 'CLUB', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CMC', 'COMMUNITY MAIL CENTRE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CMNS', 'COMMONS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CMNS', 'COMMONS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CMP', 'CAMP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CN', 'CONCESSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CN', 'CONCESSION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNCN', 'CONNECTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNR', 'CORNER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CNR', 'CORNER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNT', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CNT', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTER', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CNTER', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTR', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CNTR', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTRE', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CNTRE', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTRL', 'CENTRAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTY HIGHWAY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTY HIWAY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTY HWY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTY RD', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CNTY RD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTY ROAD', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CNTY ROAD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTY ROUTE', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTY RT', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNTY RTE', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CNYN', 'CANYON', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'CO', 'COTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CO HIGHWAY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CO HIWAY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CO HWY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CO RD', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CO RD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CO ROAD', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CO ROAD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CO ROUTE', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CO RT', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CO RTE', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COHWY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COL', 'COLONEL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COLL', 'COLLEGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COLL', 'COLLEGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COLLECTION', 'COLLECTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COLLEGE', 'COLLEGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COLLEGE', 'COLLEGE', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'COLLEGE', 'COLLEGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COLONEL', 'COLONEL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COLONIA', 'COLONIA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COLONIA', 'COLONIA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COMMERCIAL DEALERSHIP OU', 'COMMERCIAL DEALERSHIP', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COMMON', 'COMMON', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COMMON', 'COMMONS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COMMONS', 'COMMONS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COMMONS', 'COMMONS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COMMUNITY MAIL CENTRE', 'COMMUNITY MAIL CENTRE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COMN', 'COMMON', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COMN', 'COMMONS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COMP', 'COMPLEX', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COMPLEX', 'COMPLEX', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONC', 'CONCESSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CONC', 'CONCESSION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONCESSION', 'CONCESSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CONCESSION', 'CONCESSION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COND', 'CONDOMINIUMS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONDO', 'CONDOMINIUMS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONDOMINIO', 'CONDOMINIUMS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONDOMINIUM', 'CONDOMINIUMS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONDOMINIUMS', 'CONDOMINIUMS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONDOS', 'CONDOMINIUMS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CONN', 'CONNECTOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'CONN', 'CONNECTOR', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONNECTION', 'CONNECTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONNECTOR', 'CONNECTOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CONNECTOR', 'CONNECTOR', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CONNECTOR', 'CONNECTOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CONTRACT', 'CONTRACT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COOP', 'COOPERATIVE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COOP', 'COOPERATIVE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COOPERATIVE', 'COOPERATIVE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COOPERATIVE', 'COOPERATIVE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COR', 'CORNERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COR', 'CORNER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CORD', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CORD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CORNER', 'CORNER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CORNER', 'CORNER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CORNER', 'CORNER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CORNERS', 'CORNERS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CORNERS', 'CORNERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CORNERS', 'CORNERS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CORS', 'CORNERS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CORS', 'CORNERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CORS', 'CORNERS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CORSO', 'CORSO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CORSO', 'CORSO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CORT', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CORTE', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CORTE', 'COURT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COTE', 'COTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COTE', 'COTE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COTTAGE', 'COTTAGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COTTAGE', 'COTTAGE', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'COTTAGE', 'COTTAGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY', 'COUNTY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COUNTY', 'COUNY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY HIGHWAY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY HIWAY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY HWY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY RD', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COUNTY RD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY ROAD', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COUNTY ROAD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY ROUTE', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY RT', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY RTE', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUNTY TRUNK', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COUR', 'COUR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURSE', 'COURSE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURT', 'COURT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COURT', 'COURT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURT HOUSE', 'COURTHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURT HSE', 'COURTHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURT YARD', 'COURTYARD', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURTHOUSE', 'COURTHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COURTHOUSE', 'COURTHOUSE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURTHSE', 'COURTHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURTS', 'COURTS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'COURTS', 'COURTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'COURTS', 'COURTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURTYARD', 'COURTYARD', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COURTYARDS', 'COURTYARD', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COV', 'COVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'COVE', 'COVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CP', 'CAMP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CPE', 'CAPE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CPLX', 'COMPLEX', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CPO', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CPO BOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CR', 'CRESCENT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CR', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRCL', 'CIRCLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRCLE', 'CIRCLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRDS', 'CROSSROADS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CREEK', 'CREEK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRES', 'CRESCENT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRESCENT', 'CRESCENT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CRESCENT', 'CRESCENT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRESENT', 'CRESCENT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRK', 'CREEK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CRK', 'CREEK', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRNR', 'CORNER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CRNR', 'CORNER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRNRS', 'CORNERS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CROISSANT', 'CROISSANT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CROISSANT', 'CROISSANT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CROSS', 'CROSS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CROSS', 'CROSS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CROSS ROAD', 'CROSSROAD', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CROSS ROADS', 'CROSSROADS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CROSSING', 'CROSSING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CROSSING', 'CROSSING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CROSSINGS', 'CROSSING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CROSSROAD', 'CROSSROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CROSSROAD', 'CROSSROAD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CROSSROADS', 'CROSSROADS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRSCNT', 'CRESCENT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRSE', 'COURSE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRSENT', 'CRESCENT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRSG', 'CROSSING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CRSG', 'CROSSING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRSGS', 'CROSSING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRSNT', 'CRESCENT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRSSNG', 'CROSSING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CRSSNG', 'CROSSING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRST', 'CRESCENT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRT', 'COURT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRT HSE', 'COURTHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRTHSE', 'COURTHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRU', 'CRUCE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRUC', 'CRUCE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRUCE', 'CRUCE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CRV', 'CURVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CS', 'CLOSE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CSWY', 'CAUSEWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CT', 'COURT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CT', 'CONNECTICUT', 11);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CT HSE', 'COURTHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CT YARD', 'COURTYARD', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CT YD', 'COURTYARD', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTER', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CTER', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTHS', 'COURTHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTHSE', 'COURTHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTR', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CTR', 'CENTER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTRO', 'CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTS', 'COURTS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CTS', 'COURTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'CTS', 'COURTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTY HIGHWAY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTY HIWAY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTY HWY', 'COUNTY HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTY RD', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CTY RD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTY ROAD', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CTY ROAD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTY ROUTE', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTY RT', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTY RTE', 'COUNTY ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CTYD', 'COURTYARD', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CU', 'COUR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CUL DE SAC', 'CUL DE SAC', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CULDESAC', 'CUL DE SAC', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CURRY RD', 'CURRY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CURRY ROAD', 'CURRY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CURV', 'CURVE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CURV', 'CURVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CURVE', 'CURVE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'CURVE', 'CURVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CUSHING', 'HARVEY L CUSHING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CV', 'COVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CX', 'CHASE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CYN', 'CANYON', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'CZ', 'CORNERS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'D', 'D', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'D', 'D', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'D B A', 'DBA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'D OR', 'D OR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DALE', 'DALE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DALE', 'DALE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DAM', 'DAM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DBA', 'DBA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DE', 'DE', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'DE', 'DE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DE LA', 'DE LA', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DE LAS', 'DE LAS', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DE LOS', 'DE LOS', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DEL', 'DE', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DELL', 'DELL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DELL', 'DELL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DEPARTMENT', 'DEPARTMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DEPARTMENT', 'DEPARTMENT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DEPT', 'DEPARTMENT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DEPT', 'DEPARTMENT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DERE', 'DERECHO', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DERECHO', 'DERECHO', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DES', 'DES', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DEUX', '2', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DEUX', '2', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DEUXIEME', 'DEUXIEME', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DI', 'DIVERSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DI', 'DIVERSION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'DI', 'DI', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DIV', 'DIVIDE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DIVERS', 'DIVERSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DIVERS', 'DIVERSION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DIVERSION', 'DIVERSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DIVERSION', 'DIVERSION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DIVIDE', 'DIVIDE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DL', 'DALE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DL', 'DELL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DM', 'DAM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DNS', 'DOWNS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DNS', 'DOWNS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DO', 'DOWNS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DORM', 'DORMITORY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DORMITORY', 'DORMITORY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DOWN', 'DOWN', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DOWN', 'DOWN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DOWNS', 'DOWNS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DOWNS', 'DOWNS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DOWNSTAIRS', 'DOWNSTAIRS', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DR', 'DRIVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DR', 'DOCTOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DRAW', 'DRAW', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'DRAW', 'DRAW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DRAWER', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DRI', 'DRIVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DRIVE', 'DRIVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DRIVEWAY', 'DRIVEWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DRV', 'DRIVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DRWY', 'DRIVEWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DU', 'DU', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'DV', 'DIVIDE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'E', 'EAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'E', 'E', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EAST', 'EAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EAST & WEST', 'EAST & WEST', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EAST WEST', 'EAST WEST', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EASTBOUND', 'EASTBOUND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EASTBOUND', 'EASTBOUND', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ECH', 'ECHANGEUR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ECHO', 'ECHO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ECHO', 'ECHO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ECHANGEUR', 'ECHANGEUR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EDF', 'EDIFICIO', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EDIF', 'EDIFICIO', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EDIFICIO', 'EDIFICIO', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHT', '8', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHT', '8', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHT MILE', 'EIGHT MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTEEN', '18', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTEEN', '18', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTEEEN MILE', 'EIGHTEEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTEENTH', '18', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTEENTH', '18', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTH', '8', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTH', '8', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTIETH', '80', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTIETH', '80', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY', '80', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY', '80', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY EIGHT', '88', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY EIGHT', '88', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY EIGHTH', '88', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY EIGHTH', '88', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY FIFTH', '85', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY FIFTH', '85', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY FIRST', '81', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY FIRST', '81', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY FIVE', '85', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY FIVE', '85', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY FOUR', '84', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY FOUR', '84', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY FOURTH', '84', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY FOURTH', '84', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY NINE', '89', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY NINE', '89', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY NINTH', '89', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY NINTH', '89', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY ONE', '81', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY ONE', '81', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY SECOND', '82', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY SECOND', '82', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY SEVEN', '87', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY SEVEN', '87', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY SEVENTH', '87', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY SEVENTH', '87', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY SIX', '86', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY SIX', '86', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY SIXTH', '86', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY SIXTH', '86', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY THIRD', '83', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY THIRD', '83', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY THREE', '83', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY THREE', '83', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EIGHTY TWO', '82', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EIGHTY TWO', '82', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EL', 'EL', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EL CAMINO', 'CAMINO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ELEVEN', '11', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ELEVEN', '11', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ELEVEN MILE', 'ELEVEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ELEVENTH', '11', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ELEVENTH', '11', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EMS', 'EMS', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EN', 'END', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'END', 'END', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'END', 'END', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ENT', 'ENTRY', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ENT', 'ENTRY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ENTRY', 'ENTRY', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ENTRY', 'ENTRY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ENTREE', 'ENTREE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ENTREE', 'ENTREE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ES', 'ESPLANADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ESP', 'ESPLANADE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ESPL', 'ESPLANADE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ESPL', 'ESPLANADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ESPL', 'ESPLANADE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ESPLANADE', 'ESPLANADE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ESPLANADE', 'ESPLANADE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ESPLANADE', 'ESPLANADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EST', 'ESTATES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EST', 'ESTATES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'EST', 'ESTATES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'EST', 'EST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ESTATE', 'ESTATES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ESTATE', 'ESTATES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ESTATE', 'ESTATES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ESTATES', 'ESTATES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ESTATES', 'ESTATES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ESTATES', 'ESTATES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ESTE', 'ESTE', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ESTE', 'ESTE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ESTS', 'ESTATES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ESTS', 'ESTATES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ESTS', 'ESTATES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ET', 'ESTATES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ET', 'ETAGE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ET', 'ET', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ETAGE', 'ETAGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ETAGE', 'ETAGE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EX', 'EXTENDED', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EX', 'EXTENSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXCH', 'EXCHANGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EXCH', 'EXCHANGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXCHANGE', 'EXCHANGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EXCHANGE', 'EXCHANGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'EXCHANGE', 'EXCHANGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXEC', 'EXECUTIVE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXECUTIVE', 'EXECUTIVE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXP', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXPR', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXPRESO', 'EXPRESO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXPRESS', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXPRESSWAY', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXPW', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXPWAY', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXPWY', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXPY', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXT', 'EXTENSION', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EXT', 'EXTENSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXTD', 'EXTENDED', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXTEN', 'EXTENSION', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EXTEN', 'EXTENSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXTENDED', 'EXTENDED', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXTENSION', 'EXTENSION', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EXTENSION', 'EXTENSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXTN', 'EXTENSION', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EXTN', 'EXTENSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXTSN', 'EXTENSION', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'EXTSN', 'EXTENSION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'EXWY', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'F M', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'F M RD', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'F M RD', 'FARM TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'F M ROAD', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'F M ROAD', 'FARM TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FACTORY OUTLET', 'OUTLET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FALL', 'FALL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FALLS', 'FALLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FARM', 'FARM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FARM', 'FARM', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FARM MAINTENANCE RD', 'FARM MAINTENANCE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FARM MAINTENANCE RD', 'FARM MAINTENANCE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FARM MARKET ROAD', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FARM MARKET ROAD', 'FARM TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FARM TO MARKET ROAD', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FARM TO MARKET ROAD', 'FARM TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FERRY', 'FERRY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FERRY CROSSING', 'FERRY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FEST', 'FESTIVAL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FESTIVAL', 'FESTIVAL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIELD', 'FIELD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIELD', 'FIELD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIELDS', 'FIELDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTEEN', '15', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTEEN', '15', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTEEN MILE', 'FIFTEEN MI', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTEENTH', '15', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTEENTH', '15', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTH', '5', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTH', '5', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTIETH', '50', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTIETH', '50', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY', '50', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY', '50', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY EIGHT', '58', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY EIGHT', '58', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY EIGHTH', '58', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY EIGHTH', '58', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY FIFTH', '55', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY FIFTH', '55', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY FIRST', '51', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY FIRST', '51', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY FIVE', '55', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY FIVE', '55', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY FOUR', '54', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY FOUR', '54', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY FOURTH', '54', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY FOURTH', '54', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY NINE', '59', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY NINE', '59', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY NINTH', '59', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY NINTH', '59', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY ONE', '51', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY ONE', '51', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY SECOND', '52', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY SECOND', '52', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY SEVEN', '57', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY SEVEN', '57', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY SEVENTH', '57', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY SEVENTH', '57', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY SIX', '56', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY SIX', '56', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY SIXTH', '56', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY SIXTH', '56', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY THIRD', '53', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY THIRD', '53', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY THREE', '53', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY THREE', '53', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIFTY TWO', '52', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIFTY TWO', '52', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIRST', '1', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIRST', '1', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FITCHBURG STATE', 'FITCHBURG STATE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIVE', '5', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FIVE', '5', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIVE CEDARS', 'FIVE CEDARS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIVE CORNERS', 'FIVE CORNERS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIVE MILE', 'FIVE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIVE POINTS', 'FIVE POINTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FIVE TOWN', 'FIVE TOWN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FL', 'FLOOR', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FLAT', 'FLAT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FLD', 'FIELD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FLDS', 'FIELDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FLLS', 'FALLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FLOOR', 'FLOOR', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FLOOR', 'FLOOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FLR', 'FLOOR', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FLS', 'FALLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FLT', 'FLAT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FLTS', 'FLATS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FM', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FM RD', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FM RD', 'FARM TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FM ROAD', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FM ROAD', 'FARM TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FMRD', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FMRD', 'FARM TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORD', 'FORD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FOREST', 'FOREST', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORGE', 'FORGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORK', 'FORK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORKS', 'FORKS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORT', 'FORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTIETH', '40', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTIETH', '40', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTS', 'FORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY', '40', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY', '40', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY EIGHT', '48', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY EIGHT', '48', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY EIGHTH', '48', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY EIGHTH', '48', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY FIFTH', '45', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY FIFTH', '45', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY FIRST', '41', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY FIRST', '41', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY FIVE', '45', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY FIVE', '45', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY FOUR', '44', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY FOUR', '44', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY FOURTH', '44', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY FOURTH', '44', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY NINE', '49', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY NINE', '49', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY NINTH', '49', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY NINTH', '49', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY ONE', '41', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY ONE', '41', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY SECOND', '42', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY SECOND', '42', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY SEVEN', '47', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY SEVEN', '47', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY SEVENTH', '47', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY SEVENTH', '47', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY SIX', '46', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY SIX', '46', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY SIXTH', '46', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY SIXTH', '46', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY THIRD', '43', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY THIRD', '43', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY THREE', '43', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY THREE', '43', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FORTY TWO', '42', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FORTY TWO', '42', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FOUR', '4', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FOUR', '4', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FOUR CORNERS', 'FOUR CORNERS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FOUR FLAGS', 'FOUR FLAGS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FOUR MILE', 'FOUR MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FOURTEEN', '14', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FOURTEEN', '14', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FOURTEEN MILE', 'FOURTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FOURTEENTH', '14', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FOURTEENTH', '14', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FOURTH', '4', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FOURTH', '4', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FPO', 'FPO', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRD', 'FORD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FREEWAY', 'FREEWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FREEWY', 'FREEWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRG', 'FORGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRK', 'FORK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRKS', 'FORKS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRNT', 'FRONT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FRNT', 'FRONT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FROM', 'FROM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRONT', 'FRONT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FRONT', 'FRONT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'FRONT', 'FRONT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRONTAGE', 'FRONT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRST', 'FOREST', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'FRST', 'FOREST', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRT', 'FORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRWAY', 'FREEWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRWY', 'FREEWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FRY', 'FERRY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FS RD', 'FOREST SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FT', 'FORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FWD', 'FOUR WHEEL DRIVE TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FWY', 'FREEWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'FX', 'FOX', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'G DEL', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'G DELIVERY', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'GA', 'GARDENS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GALLERIA', 'GALLERIA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GALLERIA', 'GALLERIA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GALLERIE', 'GALLERIA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GALLERIE', 'GALLERIA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GALR', 'GALLERIA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GARDEN', 'GARDEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GARDENS', 'GARDENS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GARDENS', 'GARDENS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'GARDENS', 'GARDENS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GATE', 'GATE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GATE', 'GATE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GATEWAY', 'GATEWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GATEWAY', 'GATEWAY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GD', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GD', 'GROUNDS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GDN', 'GARDEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GDN', 'GARDEN', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GDNS', 'GARDEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GDNS', 'GARDENS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'GDNS', 'GARDENS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GDS', 'GARDEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GDS', 'GARDENS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GEN D', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GEN DEL', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GEN DELIVERY', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GENDEL', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GENERAL D', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GENERAL DEL', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GENERAL DELIVERY', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GL', 'GLEN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GLADE', 'GLADE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GLADE', 'GLADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GLEN', 'GLEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GLEN', 'GLEN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GLN', 'GLEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GLN', 'GLEN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GNDL', 'GENERAL DELIVERY', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GOV', 'GOVERNOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GOVERNOR', 'GOVERNOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GPO', 'GPO', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GR', 'GROUND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GR', 'GREEN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GREEN', 'GREEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GREEN', 'GREEN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GREENE RD', 'GREENE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GREENE ROAD', 'GREENE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GRN', 'GREEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GRN', 'GREEN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GRNDS', 'GROUNDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GRNDS', 'GROUNDS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GROUND', 'GROUND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GROUNDS', 'GROUNDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GROUNDS', 'GROUNDS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GROVE', 'GROVE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GROVE', 'GROVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GRV', 'GROVE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GRV', 'GROVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GT', 'GATE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GTWAY', 'GATEWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GTWAY', 'GATEWAY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GTWY', 'GATEWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'GTWY', 'GATEWAY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'GV', 'GROVE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'H C', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'H C R', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'H CONT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'H CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HALF', 'HALF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HALL', 'HALL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HALL', 'HALL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HANGER', 'HANGER', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HANGER', 'HANGER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HARBOR', 'HARBOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HARBOUR', 'HARBOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HARBOUR', 'HARBOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HARBOUR', 'HARBOR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HARBR', 'HARBOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HARBR', 'HARBOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HARBR', 'HARBOR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HARVEY L CUSHING', 'HARVEY L CUSHING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HARVEY CUSHING', 'HARVEY L CUSHING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HAVEN', 'HAVEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HBR', 'HARBOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HBR', 'HARBOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HBR', 'HARBOR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HC', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HC RT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HC RTE', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HCO', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HCR', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HCRT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HEIGHT', 'HEIGHTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HEIGHTS', 'HEIGHTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HEIGHTS', 'HEIGHTS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HEIGHTS', 'HEIGHTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HGHLDS', 'HIGHLANDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HGHLDS', 'HIGHLANDS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HGT', 'HEIGHTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HGT', 'HEIGHTS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HGT', 'HEIGHTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HGTS', 'HEIGHTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HGTS', 'HEIGHTS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HGTS', 'HEIGHTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HGWY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HGWY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HGWY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HGWY FM', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HGY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HGY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HGY FM', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HI', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HI', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGH CONT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGH CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGHLANDS', 'HIGHLANDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HIGHLANDS', 'HIGHLANDS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGHWAY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HIGHWAY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGHWAY CONT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGHWAY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGHWAY CONTRACT ROUTE', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGHWAY FM', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGHWY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HIGHWY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIGHWY FM', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HILL', 'HILL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HILL', 'HILL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HILLS', 'HILLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIWAY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HIWAY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIWAY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIWAY FM', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIWY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HIWY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HIWY FM', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HL', 'HILL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HL', 'HILL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HLLW', 'HOLLOW', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HLLW', 'HOLLOW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HLS', 'HILLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HNGR', 'HANGER', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HNGR', 'HANGER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HO', 'HOLLOW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'H0', 'HOLLOW', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOL', 'HOLLOW', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HOL', 'HOLLOW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOLLOW', 'HOLLOW', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'H0LL0W', 'HOLLOW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOLW', 'HOLLOW', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HOLW', 'HOLLOW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOME', 'HOME', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HOME', 'HOME', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOMES', 'HOME', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOSP', 'HOSPITAL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOSPITAL', 'HOSPITAL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOTEL', 'HOTEL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HOTEL', 'HOTEL', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOUS', 'HOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HOUS', 'HOUSE', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOUSE', 'HOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HOUSE', 'HOUSE', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HOUSE', 'HOUSE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOUSING PROJ', 'PROJECTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HOUSING PROJECTS', 'PROJECTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HRBR', 'HARBOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HRBR', 'HARBOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HRBR', 'HARBOR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HRBOR', 'HARBOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HRBOR', 'HARBOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HRBOR', 'HARBOR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HSE', 'HOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HSE', 'HOUSE', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HSE PROJ', 'PROJECTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HSE PROJECTS', 'PROJECTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HT', 'HEIGHTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HT', 'HEIGHTS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HT', 'HEIGHTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HTL', 'HOTEL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HTL', 'HOTEL', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HTS', 'HEIGHTS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HTS', 'HEIGHTS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'HTS', 'HEIGHTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HUI RD', 'HUI ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HUI ROAD', 'HUI ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HVN', 'HAVEN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HW', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HW', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HWAY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HWAY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HWC', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HWY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HWY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HWY CONT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HWY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HWY FM', 'FARM TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HWYS', 'HIGHWAYS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HY CONT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'HYWY', 'HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'HYWY', 'HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'I', 'INTERSTATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'I', 'I', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'I H', 'INTERSTATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IC', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ICHG', 'INTERCHANGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IH', 'INTERSTATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ILE', 'ILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ILE', 'ILE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IM', 'IMPASSE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IMM', 'IMMEUBLE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'IMM', 'IMMEUBLE', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IMMEUBLE', 'IMMEUBLE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'IMMEUBLE', 'IMMEUBLE', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IMP', 'IMPASSE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IMPASSE', 'IMPASSE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IN CARE OF', 'CARE OF', 9);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INCTR', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IND PARK', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IND PK', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDC', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDL', 'INDUSTRIAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDL CTR', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDL PARK', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDL PK', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDUSTRIAL', 'INDUSTRIAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDUSTRIAL CENTER', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDUSTRIAL CTR', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDUSTRIAL PARK', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INDUSTRIAL PK', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INLET', 'INLET', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INLT', 'INLET', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INN', 'INN', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'INN', 'INN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INPK', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INT L', 'INTERNATIONAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTE', 'INTERIOR', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTERCHANGE', 'INTERCHANGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTERIOR', 'INTERIOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTERIOR', 'INTERIOR', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTERNATIONAL', 'INTERNATIONAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTERSECTION', 'INTERSECTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTERSTATE', 'INTERSTATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'INTERSTATE', 'INTERSTATE HIGHWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOCAL', 'BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTERSTATE HIGHWAY', 'INTERSTATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'INTERSTATE HIGHWAY', 'INTERSTATE HIGHWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTERSTATE HWY', 'INTERSTATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'INTERSTATE HWY', 'INTERSTATE HIGHWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INSTITUTE', 'INSTITUTE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'INSTITUTE', 'INSTITUTE', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'INSTITUTE', 'INSTITUTE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTL', 'INTERNATIONAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'INTR', 'INTERSECTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IP', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IPRK', 'INDUSTRIAL PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IS', 'INTERSTATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'IS', 'ISLE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'IS', 'ISLAND', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ISLAND', 'ISLAND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ISLAND', 'ISLAND', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ISLANDS', 'ISLANDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ISLE', 'ISLE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ISLES', 'ISLES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IZQU', 'IZQUIERDO', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'IZQUIERDO', 'IZQUIERDO', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'J F K', 'JOHN F KENNEDY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'J F KENNEDY', 'JOHN F KENNEDY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JA', 'JARDIN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JAF', 'JAF', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JAF BOX', 'JAF BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JAF STATION', 'JAF STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JARDIN', 'JARDIN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JARDIN', 'JARDIN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JCT', 'JUNCTION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JCT', 'JUNCTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'JCT', 'JUNCTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JCTION', 'JUNCTION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JCTION', 'JUNCTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'JCTION', 'JUNCTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JCTN', 'JUNCTION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JCTN', 'JUNCTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'JCTN', 'JUNCTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JEEP TRAIL', 'JEEP TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JEEP TRL', 'JEEP TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JFK', 'JOHN F KENNEDY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JNCT', 'JUNCTION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JNCT', 'JUNCTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'JNCT', 'JUNCTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JOHN F KENNEDY', 'JOHN F KENNEDY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JUNC', 'JUNCTION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JUNC', 'JUNCTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'JUNC', 'JUNCTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JUNCT', 'JUNCTION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JUNCT', 'JUNCTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'JUNCT', 'JUNCTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JUNCTION', 'JUNCTION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JUNCTION', 'JUNCTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'JUNCTION', 'JUNCTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JUNCTN', 'JUNCTION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JUNCTN', 'JUNCTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'JUNCTN', 'JUNCTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'JUNCTON', 'JUNCTION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'JUNCTON', 'JUNCTION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'JUNCTON', 'JUNCTION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'K MART', 'K MART', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'KEY', 'KEY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'KEY', 'KEY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'KEYSTONE ROUTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'KEYSTONE RT', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'KEYSTONE RTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'KMART', 'K MART', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'KNL', 'KNOLL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'KNL', 'KNOLL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'KNLS', 'KNOLLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'KNLS', 'KNOLLS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'KNOLL', 'KNOLL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'KNOLLS', 'KNOLLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'KY', 'KEY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'L B J', 'LYNDON B JOHNSON', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'L B JOHNSON', 'LYNDON B JOHNSON', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'L C D', 'LETTER CARRIER DEPOT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LA', 'LANE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LA', 'LA', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LAKE', 'LAKE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LAKES', 'LAKE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LAND', 'LANDING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LAND', 'LANDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LAND', 'LANDING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LANDING', 'LANDING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LANDING', 'LANDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LANDING', 'LANDING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LANDINGS', 'LANDING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LANDINGS', 'LANDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LANDINGS', 'LANDING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LANDNG', 'LANDING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LANE', 'LANE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LAS', 'LAS', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LBBY', 'LOBBY', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LBJ', 'LYNDON B JOHNSON', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LCD', 'LETTER CARRIER DEPOT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LCKS', 'LOCKS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LDG', 'LODGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LDG', 'LODGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LDG', 'LODGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LDGE', 'LODGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LDGE', 'LODGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LDGE', 'LODGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LE', 'LANE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LE', 'LE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LE', 'LE', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LEFT', 'LEFT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LEFT', 'LEFT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LES', 'LES', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LETTER CARRIER DEPOT', 'LETTER CARRIER DEPOT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LEVEL', 'LEVEL', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LEVEL', 'LEVEL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LF', 'LOAF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LGT', 'LIGHT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LI', 'LINE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LIGHT', 'LIGHT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LIMITS', 'LIMITS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LIMITS', 'LIMITS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LINE', 'LINE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LINE', 'LINE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LINK', 'LINK', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LINK', 'LINK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LK', 'LAKE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LK', 'LINK', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LKOUT', 'LOOKOUT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LKS', 'LAKE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LMTS', 'LIMITS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LMTS', 'LIMITS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LN', 'LANE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LNDG', 'LANDING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LNDG', 'LANDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LNDG', 'LANDING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LNDNG', 'LANDING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LNDNG', 'LANDING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LNDNG', 'LANDING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LO', 'LOOP', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOAF', 'LOAF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOBBY', 'LOBBY', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOBBY', 'LOBBY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOCAL BOX', 'BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOCAL HCR', 'HIGHWAY CONTRACT ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOCAL PO BOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOCKBOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOCKS', 'LOCKS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LODGE', 'LODGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LODGE', 'LODGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LODGE', 'LODGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOOKOUT', 'LOOKOUT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LOOKOUT', 'LOOKOUT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOOP', 'LOOP', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LOOP', 'LOOP', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOS', 'LOS', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOT', 'LOT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LOT', 'LOT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LOT', 'LOT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOWER', 'LOWER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LOWER', 'LOWER', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LOWR', 'LOWER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LOWR', 'LOWER', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LP', 'LOOP', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LP', 'LOOP', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LT', 'LOT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LT', 'LOT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'LT', 'LOOKOUT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LVL', 'LEVEL', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LWR', 'LOWER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'LWR', 'LOWER', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'LYNDON B JOHNSON', 'LYNDON B JOHNSON', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'M H P', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'M L K', 'MARTIN LUTHER KING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'M L KING', 'MARTIN LUTHER KING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MAISON', 'MAISON', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MAISON', 'MAISON', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'MAISON', 'MAISON', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MAL', 'MALL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MALL', 'MALL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MALL', 'MALL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'MALL', 'MALL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MALL IN', 'MALL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MANOR', 'MANOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MANOR', 'MANOR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'MANOR', 'MANOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MANORS', 'MANOR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MANORS', 'MANOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARG', 'MARGINAL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARGINAL', 'MARGINAL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARKET', 'MARKET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MARKET', 'MARKET', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARKET PL', 'MARKET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARKET PLACE', 'MARKET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARKETPLACE', 'MARKET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MART', 'MARKET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARTIN KING', 'MARTIN LUTHER KING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARTIN L KING', 'MARTIN LUTHER KING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARTIN LUTHER', 'MARTIN LUTHER KING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARTIN LUTHER KING', 'MARTIN LUTHER KING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MARTIN LUTHER KING JR', 'MARTIN LUTHER KING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MAZE', 'MAZE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MC', 'MC', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MDWS', 'MEADOWS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MDWS', 'MEADOWS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'ME', 'MEWS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MEADOW', 'MEADOW', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MEADOW', 'MEADOW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MEADOWS', 'MEADOWS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MEADOWS', 'MEADOWS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MED', 'MEDICAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MEDICAL', 'MEDICAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MEM', 'MEMORIAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MEMORIAL', 'MEMORIAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MERC', 'MERCADO', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MERCADO', 'MERCADO', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MEWS', 'MEWS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MEWS', 'MEWS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'MEWS', 'MEWS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MH', 'MOBILE HOME', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MH CT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MH PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MHP', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MI', 'MILE POST', 20);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MI POST', 'MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MIDDLE', 'MIDDLE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MIDDLE', 'MIDDLE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MILE', 'MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MILE', 'MILE POST', 20);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MILE POST', 'MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MILE POST', 'MILE POST', 20);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MILES', 'MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MILL', 'MILL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MILLS', 'MILLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MISSION', 'MISSION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MKT', 'MARKET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MKT PL', 'MARKET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MKT PLACE', 'MARKET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MKTPL', 'MARKET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ML', 'MALL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ML', 'MALL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ML', 'MALL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ML KING', 'MARTIN LUTHER KING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MLK', 'MARTIN LUTHER KING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MLS', 'MILLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MNR', 'MANOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MNR', 'MANOR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'MNR', 'MANOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MNRS', 'MANOR', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MNRS', 'MANOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MNT', 'MOUNT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'MO', 'MONTEE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOB HM PK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOB HOME PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBIL HOME PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBIL HOME TRPK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE COURT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE CT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE EST', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE ESTATE', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE HM PK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE HOME', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MOBILE HOME', 'MOBILE HOME', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE HOME PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE HOME PK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE HOME TRPK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE HOMES', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOBILE ROUTE', 'MOBILE ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MONTEE', 'MONTEE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MONTEE', 'MONTEE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOOR', 'MOOR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MOOR', 'MOOR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOTEL', 'MOTEL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOTORWAY', 'MOTORWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOUNT', 'MOUNT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MOUNT', 'MOUNT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOUNTAIN', 'MOUNTAIN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MOUNTAIN', 'MOUNTAIN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MOUNTAINS', 'MOUNTAIN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MP', 'MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'MP', 'MILE POST', 20);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MR', 'MOBILE ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MS', 'MS', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MSN', 'MISSION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MT', 'MOUNT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MTD ROUTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MTD RT', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MTD RTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MTL', 'MOTEL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MTN', 'MOUNTAIN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MTNS', 'MOUNTAIN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MTWY', 'MOTORWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MU', 'MOUNT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MURO', 'MURO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'MW', 'MEADOW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'N', 'NORTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'N', 'N', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'N A B', 'NAVAL AIR STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'N A B', 'NAVAL AIR STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'N A S', 'NAVAL AIR STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'N A S', 'NAVAL AIR STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'N E', 'NORTHEAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'N F D', 'NATL FOREST DEVELOP ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'N W', 'NORTHWEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NAB', 'NAVAL AIR STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NAB', 'NAVAL AIR STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NAS', 'NAVAL AIR STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NAS', 'NAVAL AIR STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NATIONAL', 'NATIONAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NATL', 'NATIONAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NATL FOREST', 'NATL FOREST', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NATL FOREST DEVELOP ROAD', 'NATL FOREST DEVELOP ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NATL FOREST HIGHWAY', 'NATL FOREST HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NAVAL AIR BASE', 'NAVAL AIR STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NAVAL AIR BASE', 'NAVAL AIR STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NAVAL AIR STATION', 'NAVAL AIR STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NAVAL AIR STATION', 'NAVAL AIR STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NAVAL BASE', 'NAVAL AIR STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NAVAL BASE', 'NAVAL AIR STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NCK', 'NECK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NE', 'NORTHEAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NEAR', 'NEAR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NECK', 'NECK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NF HWY', 'NATL FOREST HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NFD', 'NATL FOREST DEVELOP ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NFD', 'NATL FOREST DEVELOP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NFHWY', 'NATL FOREST HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINE', '9', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINE', '9', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINE MILE', 'NINE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETEEN', '19', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETEEN', '19', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETEEN MILE', 'NINETEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETEENTH', '19', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETEENTH', '19', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETIETH', '90', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETIETH', '90', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY', '90', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY', '90', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY EIGHT', '98', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY EIGHT', '98', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY EIGHTH', '98', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY EIGHTH', '98', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY FIFTH', '95', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY FIFTH', '95', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY FIRST', '91', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY FIRST', '91', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY FIVE', '95', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY FIVE', '95', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY FOUR', '94', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY FOUR', '94', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY FOURTH', '94', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY FOURTH', '94', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY NINE', '99', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY NINE', '99', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY NINTH', '99', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY NINTH', '99', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY ONE', '91', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY ONE', '91', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY SECOND', '92', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY SECOND', '92', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY SEVEN', '97', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY SEVEN', '97', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY SEVENTH', '97', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY SEVENTH', '97', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY SIX', '96', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY SIX', '96', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY SIXTH', '96', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY SIXTH', '96', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY THIRD', '93', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY THIRD', '93', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY THREE', '93', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY THREE', '93', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINETY TWO', '92', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINETY TWO', '92', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NINTH', '9', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NINTH', '9', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NO', '#', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NO', 'NORTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'NO', '#', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NOR', 'NORTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORD', 'NORD', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORD EST', 'NORD EST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORD OUEST', 'NORD OUEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORDEST', 'NORD EST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORDOUEST', 'NORD OUEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORTE', 'NORTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORTH', 'NORTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORTH & SOUTH', 'NORTH & SOUTH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORTH EAST', 'NORTHEAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORTH SOUTH', 'NORTH SOUTH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORTH WEST', 'NORTHWEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORTHBOUND', 'NORTHBOUND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NORTHBOUND', 'NORTHBOUND', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NORTHEAST', 'NORTHEAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NR', 'NEAR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NTH', 'NORTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NUMBER', '#', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'NUMBER', '#', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'NW', 'NORTHWEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'O', '0', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'O', 'O', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OESTE', 'OESTE', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OF', 'OF', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OF PK', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OF PRK', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFC', 'OFFICE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFC CENTER', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFC COMPLEX', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFC CTR', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFC PARK', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFC PRK', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFFICE', 'OFFICE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'OFFICE', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFFICE CENTER', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFFICE COMPLEX', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFFICE CTR', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFFICE PARK', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFFICE PRK', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFFICES', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFPK', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OFPRK', 'OFFICE PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OLD', 'OLD', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'OLD', 'OLD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'ON', 'ON', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ONE', '1', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ONE', '1', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ONE HUNDRED', 'ONE HUNDRED', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ONE HUNDRED', '100', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ONE MILE', 'ONE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ORCH', 'ORCHARD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ORCHARD', 'ORCHARD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ORCHARD', 'ORCHARD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OTLT', 'OUTLET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OUEST', 'OUEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OUTLET', 'OUTLET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OUTLETS', 'OUTLET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OUTS', 'OUTSIDE OF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OUTSIDE', 'OUTSIDE OF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OVAL', 'OVAL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OVERPASS', 'OVERPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'OVPS', 'OVERPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'P BOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'P BX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'P H', 'PENTHOUSE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'P O', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'P O B', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'P O B X', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'P O BOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'P O BX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'P O DRAWER', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'PA', 'PARADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PAR', 'PARCELAS', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PAR', 'PARCELAS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'PAR', 'PARCELAS', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PAR RD', 'PARISH ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PAR ROAD', 'PARISH ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARADE', 'PARADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PARADE', 'PARADE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARADERO', 'PARADERO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARC', 'PARC', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PARC', 'PARC', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'PARC', 'PARC', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARCELAS', 'PARCELAS', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARISH RD', 'PARISH ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARISH ROAD', 'PARISH ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARK', 'PARK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PARK', 'PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'PARK', 'PARK', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARK & SHOP', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARK N SHOP', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARKWAY', 'PARKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARKWY', 'PARKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARQUE', 'PARQUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PARRD', 'PARISH ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PASAJE', 'PASAJE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PASEO', 'PASEO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PASO', 'PASO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PASO', 'PASO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PASS', 'PASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PASSAGE', 'PASSAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PATH', 'PATH', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PATHWAY', 'PATHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PAVILION', 'PAVILLION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PAVILION', 'PAVILLION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PAVILIONS', 'PAVILLION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PAVILIONS', 'PAVILLION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PAVILLION', 'PAVILLION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PAVILLION', 'PAVILLION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PAVILLIONS', 'PAVILLION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PAVILLIONS', 'PAVILLION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PAVL', 'PAVILLION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PAVL', 'PAVILLION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PD', 'POND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PDA', 'PARADERO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PENTHOUSE', 'PENTHOUSE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PH', 'PENTHOUSE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PH', 'PATH', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PIECE', 'PIECE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PIECE', 'PIECE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PIER', 'PIER', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PIER', 'PIER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'PIER', 'PIER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PIKE', 'PIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PINES', 'PINES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PINES', 'PINES', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PISO', 'PISO', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PISTA', 'PISTA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PK', 'PARK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PK', 'PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'PK', 'PARK', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PKE', 'PIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PKW', 'PARKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PKWAY', 'PARKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PKWY', 'PARKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PKY', 'PARKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PL', 'PLACE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLACE', 'PLACE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLAIN', 'PLAINS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLAINS', 'PLAINS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLANTATION', 'PLANTATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PLANTATION', 'PLANTATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLATEAU', 'PLATEAU', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PLATEAU', 'PLATEAU', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLAZA', 'PLAZA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PLAZA', 'PLAZA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLC', 'PLACE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLN', 'PLAINS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLNS', 'PLAINS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLNT', 'PLANTATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLZ', 'PLAZA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PLZ', 'PLAZA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PLZA', 'PLAZA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PLZA', 'PLAZA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PM', 'PROMENADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PNES', 'PINES', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PO', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PO B', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PO B OX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PO B X', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PO BOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PO BX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PO DRAWER', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POB', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POBOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POINT', 'POINT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PORT', 'PORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PORT', 'PORT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POST BOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POST BX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POST OFFICE BOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POSTAL BOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POSTAL BX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POSTAL OUTLET', 'POSTAL OUTLET', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'POSTAL OUTLET', 'POSTAL OUTLET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POSTOFFICE BOX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POSTOFFICE BX', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'POUCH', 'POST OFFICE BOX', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'PR', 'PARK', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PR HI', 'PROVINCIAL HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PR HIGHWAY', 'PROVINCIAL HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PR HWY', 'PROVINCIAL HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PR ROUTE', 'STATE ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PR RT', 'PROVINCIAL ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PR RTE', 'PROVINCIAL ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PRAIRIE', 'PRAIRIE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PREMIERE', '1', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PREMIERE', '1', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PRIVATE', 'PRIVATE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PRIVATE', 'PRIVATE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PRK', 'PARK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PRK', 'PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'PRK', 'PARK', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PRO', 'PROFESSIONAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROF', 'PROFESSIONAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROFESSIONAL', 'PROFESSIONAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROJ', 'PROJECTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROJECTS', 'PROJECTS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROM', 'PROMENADE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PROM', 'PROMENADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROMENADE', 'PROMENADE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PROMENADE', 'PROMENADE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROVINCIAL HI', 'PROVINCIAL HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROVINCIAL HIGHWAY', 'PROVINCIAL HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROVINCIAL HWY', 'PROVINCIAL HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROVINCIAL HY', 'PROVINCIAL HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROVINCIAL ROUTE', 'PROVINCIAL ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROVINCIAL RT', 'PROVINCIAL ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PROVINCIAL RTE', 'PROVINCIAL ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PRQE', 'PARQUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PRRD', 'PARISH ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PRT', 'PORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PRT', 'PORT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PSC', 'PSC', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PSO', 'PASEO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PSTA', 'PISTA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PT', 'POINT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PT', 'POINT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PTE', 'PUENTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PU', 'PLATEAU', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PUENTE', 'PUENTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PV', 'PRIVATE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PVT', 'PRIVATE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'PVT', 'PRIVATE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PW', 'PATHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PWY', 'PARKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PWKY', 'PARKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'PY', 'PARKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'QTRS', 'QUARTERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'QU', 'QUAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'QUAI', 'QUAI', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'QUAI', 'QUAI', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'QUARTERS', 'QUARTERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'QUATRE', '4', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'QUATRE', '3', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'QUATRIEME', 'QUATRIEME', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'QUAY', 'QUAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'QUAY', 'QUAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'QUAY RD', 'QUAY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'QUAY ROAD', 'QUAY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R', 'R', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'R', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R D', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R D NO', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R F D', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R NO', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R P O', 'POSTAL OUTLET', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'R P O', 'POSTAL OUTLET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R R', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R R NO', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R RT', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R RTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'R T', 'ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'R T', 'ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RA', 'RANGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RADIAL', 'RADIAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RADL', 'RADIAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RAMAL', 'RAMAL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RAMP', 'RAMP', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RAMPA', 'RAMPA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANCH', 'RANCH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANCH TO MARKET ROAD', 'RANCH TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANCH TO MARKET ROAD', 'RANCH TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANCH RD', 'RANCH ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANCH RD', 'RANCH ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANCH ROAD', 'RANCH ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANCH ROAD', 'RANCH ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANG', 'RANG', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RANG', 'RANG', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANGE', 'RANGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RANGE', 'RANGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANGE ROAD', 'RANGE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RANGE ROAD', 'RANGE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RAPIDS', 'RAPIDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RD', 'ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RDG', 'RIDGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RDG', 'RIDGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RDPT', 'ROND POINT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RDS', 'ROADS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RDWY', 'ROADWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RE', 'RIDGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'REAR', 'REAR', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'REAR', 'REAR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RES', 'RESIDENCIA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RES HWY', 'RESERVATION HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RESERVATION HIGHWAY', 'RESERVATION HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RESHY', 'RESERVATION HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RESIDENCIA', 'RESIDENCIA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RESORT', 'RESORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RESORT', 'RESORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'REST', 'REST', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'REZ DE CHAUSEE', 'REZ DE CHAUSEE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RFD', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RFD ROUTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RG', 'RANGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RG', 'RANGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RGHT', 'RIGHT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'RI', 'RISE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RIDGE', 'RIDGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RIDGE', 'RIDGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RIGHT', 'RIGHT', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RISE', 'RISE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RIV', 'RIVER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RIVER', 'RIVER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RL', 'RUELLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RLE', 'RUELLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RM', 'ROOM', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RM', 'ROOM', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'RM', 'RANCH TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'RM', 'RANCH TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RM RD', 'RANCH TO MARKET ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RM RD', 'RANCH TO MARKET ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RML', 'RAMAL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RMP', 'RAMP', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RN', 'RUN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RNCH', 'RANCH', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RNG ROAD', 'RANGE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RNG ROAD', 'RANGE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RO', 'ROUTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROAD', 'ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROADS', 'ROADS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROADWAY', 'ROADWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROND POINT', 'ROND POINT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROOM', 'ROOM', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROUTE', 'ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ROUTE', 'ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'ROUTE', 'ROUTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROUTE NO', 'ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ROUTE NO', 'ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROUTE NUMBER', 'ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ROUTE NUMBER', 'ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROUTES', 'ROUTES', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ROW', 'ROW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RP', 'RAMP', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RPDS', 'RAPIDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RPO', 'POSTAL OUTLET', 14);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RPO', 'POSTAL OUTLET', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RR', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RR NO', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RRT', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RRTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RSRT', 'RESORT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RSRT', 'RESORT', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RT', 'ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RT', 'ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RT NO', 'ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RT NO', 'ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RTE ROUTE CORD', 'COUNTY ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RTE ROUTE COUNTY ROAD', 'COUNTY ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RTE', 'ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RTE', 'ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'RTE', 'ROUTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RU', 'RUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RUE', 'RUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RUELLE', 'RUELLE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RUN', 'RUN', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'RUN', 'RUN', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RURAL', 'RURAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RURAL', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RURAL ROUTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RURAL ROUTE NO', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RURAL RT', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RUTA', 'RUTA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'RW', 'ROW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'S', 'SOUTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'S', 'S', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'S / C', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'S C', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'S E', 'SOUTH EAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'S R', 'STAR ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'S R', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'S RT', 'STAR ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'S RT', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'S W', 'SOUTHWEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'S/C', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SAINT', 'SAINT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SAINTE', 'SAINTE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SANTA FE', 'SANTA FE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SC', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SCH', 'SCHOOL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SCHOOL', 'SCHOOL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SCHOOL', 'SCHOOL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SE', 'SOUTHEAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEARING ROUTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEARING RT', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEARING RTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SECOND', '2', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SECOND', '2', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEM', 'SEMINARY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEMINARY', 'SEMINARY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEMINARY', 'SEMINARY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SENDERO', 'SENDERO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SENT', 'SENTIER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SENTIER', 'SENTIER', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SER RD', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SERV RD', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SERV ROAD', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SERVICE', 'SERVICE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SERVICE', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SERVICE RD', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SERVICE ROAD', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVEN', '7', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVEN', '7', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVEN CORNERS', 'SEVEN CORNERS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVEN CORNERS', 'SEVEN CORNERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVEN MILE', 'SEVEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTEEN', '17', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTEEN', '17', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTEEN MILE', 'SEVENTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTEENTH', '17', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTEENTH', '17', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTH', '7', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTH', '7', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTIETH', '70', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTIETH', '70', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY', '70', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY', '70', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY EIGHT', '78', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY EIGHT', '78', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY EIGHTH', '78', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY EIGHTH', '78', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY FIFTH', '75', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY FIFTH', '75', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY FIRST', '71', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY FIRST', '71', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY FIVE', '75', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY FIVE', '75', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY FOUR', '74', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY FOUR', '74', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY FOURTH', '74', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY FOURTH', '74', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY NINE', '79', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY NINE', '79', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY NINTH', '79', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY NINTH', '79', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY ONE', '71', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY ONE', '71', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY SECOND', '72', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY SECOND', '72', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY SEVEN', '77', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY SEVEN', '77', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY SEVENTH', '77', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY SEVENTH', '77', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY SIX', '76', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY SIX', '76', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY SIXTH', '76', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY SIXTH', '76', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY THIRD', '73', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY THIRD', '73', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY THREE', '73', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY THREE', '73', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SEVENTY TWO', '72', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SEVENTY TWO', '72', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SH', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SH CTR', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHC', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHL', 'SHOAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHLS', 'SHOALS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOAL', 'SHOAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOALS', 'SHOALS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOP', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOP CEN', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOP CENTER', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOP CTR', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOP MALL', 'MALL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOP MART', 'SHOPPING MART', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOP N SAVE', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOP PLZ', 'PLAZA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOP SQ', 'SHOPPING SQUARE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPETTE', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPERS', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPES', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPETTE', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPING', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPING CENT', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPING CENTE', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPING CENTER', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPING CNTR', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPING CTR', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPING MALL', 'MALL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPING PARK', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPPING PLAZA', 'PLAZA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHOPS', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHORE', 'SHORE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHP', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHP CENTER', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHP CT', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHP CTR', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHP ML', 'MALL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHP PL', 'PLAZA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHPCT', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHPG', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHPG CENTER', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHPG CNTR', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHPG CTR', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHPML', 'MALL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHPPL', 'PLAZA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SHR', 'SHORE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIDE', 'SIDE', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIDE', 'SIDE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIDE ROAD', 'SIDE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SITE', 'SITE', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SITE', 'SITE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIX', '6', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIX', '6', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIX MILE', 'SIX MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTEEN', '16', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTEEN', '16', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTEEN MILE', 'SIXTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTEENTH', '16', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTEENTH', '16', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTH', '6', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTH', '6', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTIETH', '60', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTIETH', '60', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY', '60', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY', '60', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY EIGHT', '68', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY EIGHT', '68', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY EIGHTH', '68', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY EIGHTH', '68', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY FIFTH', '65', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY FIFTH', '65', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY FIRST', '61', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY FIRST', '61', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY FIVE', '65', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY FIVE', '65', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY FOUR', '64', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY FOUR', '64', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY FOURTH', '64', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY FOURTH', '64', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY NINE', '69', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY NINE', '69', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY NINTH', '69', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY NINTH', '69', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY ONE', '61', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY ONE', '61', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY SECOND', '62', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY SECOND', '62', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY SEVEN', '67', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY SEVEN', '67', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY SEVENTH', '67', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY SEVENTH', '67', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY SIX', '66', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY SIX', '66', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY SIXTH', '66', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY SIXTH', '66', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY THIRD', '63', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY THIRD', '63', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY THREE', '63', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY THREE', '63', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SIXTY TWO', '62', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SIXTY TWO', '62', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SKWY', 'SKYWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SKYWAY', 'SKYWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SLIP', 'SLIP', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SLIP', 'SLIP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SM', 'MALL', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SMT', 'SUMMIT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SMT', 'SHOPPING MART', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SNDR', 'SENDERO', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SO', 'SOUTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOTA', 'SOTANO', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SOTA', 'SOTA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOTAN', 'SOTANO', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOTANO', 'SOTANO', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOUS SOL', 'SOUS SOL', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOUTH', 'SOUTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOUTH EAST', 'SOUTHEAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOUTH WEST', 'SOUTHWEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOUTHBOUND', 'SOUTHBOUND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SOUTHBOUND', 'SOUTHBOUND', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOUTHEAST', 'SOUTHEAST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SOUTHWEST', 'SOUTHWEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SP', 'SPACE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SP', 'SHOPPING PLAZA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPACE', 'SPACE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SPACE', 'SPACE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPC', 'SPACE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPDWY', 'SPEEDWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPEEDWAY', 'SPEEDWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPG', 'SPRING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPGS', 'SPRING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPR', 'SPRING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPRG', 'SPRING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPRING', 'SPRING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPRINGS', 'SPRING', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPUR', 'SPUR', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SPUR', 'SPUR', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'SPUR', 'SPUR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SPURNGS', 'SPUR', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SQ', 'SQUARE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SQ', 'SQUARE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SQR', 'SQUARE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SQR', 'SQUARE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SQU', 'SQUARE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SQU', 'SQUARE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SQUARE', 'SQUARE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SQUARE', 'SQUARE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SQURE', 'SQUARE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SQURE', 'SQUARE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SR', 'STAR ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SR', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'SR', 'STAR ROUTE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'SR', 'SIDE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SRA', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SRV RD', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SRV RTE', 'SERVICE ROUTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SRVC', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SRVRD', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SRVRTE', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SS', 'SUBURBAN SERVICE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST', 'STREET', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ST', 'SAINT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST HI', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST HIGHWAY', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST HWY', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST HY', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST R', 'STAR ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ST R', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST RD', 'STATE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST ROAD', 'STATE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST ROUTE', 'STATE ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ST ROUTE', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST RT', 'STATE ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ST RT', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ST RTE', 'STATE ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'ST RTE', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STA', 'STATION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STA', 'STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'STA', 'STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STALL', 'STALL', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STALL', 'STALL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STAR ROUTE', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STAR RT', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STAT', 'STATION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STAT', 'STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'STAT', 'STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE', 'STATE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STATE', 'STATE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE HI', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE HIGHWAY', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE HWY', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE HY', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE RD', 'STATE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE ROAD', 'STATE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE ROUTE', 'STATE ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE RT', 'STATE ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATE RTE', 'STATE ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATION', 'STATION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STATION', 'STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'STATION', 'STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATION FORCES', 'STATION FORCES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STATN', 'STATION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STATN', 'STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'STATN', 'STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STE', 'SUITE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STE', 'SAINTE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STES', 'SUITES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STH', 'SOUTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STHW', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STHWY', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STHY', 'STATE HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STLL', 'STALL', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STN', 'STATION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STN', 'STATION', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'STN', 'STATION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STN FORCES', 'STATION FORCES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STOP', 'STOP', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STOP', 'STOP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STOP & SHOP', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STOP & SHOP CTR', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STOR', 'STORE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STOR', 'STORE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STORE', 'STORE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STORE', 'STORE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'STORE', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STORES', 'SHOPPING CENTER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STR', 'STREET', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRA', 'STRAVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRAV', 'STRAVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRAVE', 'STRAVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRAVEN', 'STRAVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRAVENUE', 'STRAVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRAVN', 'STRAVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRD', 'STATE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STREAM', 'STREAM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STREET', 'STREET', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STREETS', 'STREETS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRIP', 'STRIP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STRIP', 'STRIP', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRM', 'STREAM', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRP', 'STRIP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STRP', 'STRIP', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRT', 'STAR ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STRT', 'STAR ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRVN', 'STRAVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STRVNUE', 'STRAVENUE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STS', 'STREETS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'STUDIO', 'STUDIO', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'STUDIO', 'STUDIO', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SU', 'SUITE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUBD', 'SUBDIVISION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SUBD', 'SUBDIVISION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUBDIV', 'SUBDIVISION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SUBDIV', 'SUBDIVISION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUBDIVISION', 'SUBDIVISION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SUBDIVISION', 'SUBDIVISION', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUBURBAN ROUTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUBURBAN RT', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUBURBAN RTE', 'RURAL ROUTE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUBURBAN SERVICE', 'SUBURBAN SERVICE', 8);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUD', 'SUD', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUD EST', 'SUD EST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUD OUEST', 'SUD OUEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUDEST', 'SUD EST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUDOUEST', 'SUD OUEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUIT', 'SUITE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SUIT', 'SUITE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUITE', 'SUITE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUITES', 'SUITES', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'SUITES', 'SUITES', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUMMIT', 'SUMMIT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SUR', 'SOUTH', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SV RTE', 'SERVICE ROUTE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SVC RD', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SVRD', 'SERVICE ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SW', 'SOUTHWEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'SWP', 'SWAMP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TANK TRAIL', 'TANK TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TEN', '10', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TEN', '10', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TEN MILE', 'TEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TENTH', '10', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TENTH', '10', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TER', 'TERRACE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TERM', 'TERMINAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TERM', 'TERMINAL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TERMINAL', 'TERMINAL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TERMINAL', 'TERMINAL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TERR', 'TERRACE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TERRASSE', 'TERRASSE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TERRASSE', 'TERRASSE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TFWY', 'TRAFFICWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THE', 'THE', 7);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THFR', 'THOROUGHFARE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THICKET', 'THICKET', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THICKET', 'THICKET', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRD', '3', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRD', '3', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTEEN', '13', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTEEN', '13', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTEEN MILE', 'THIRTEEN MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTEENTH', '13', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTEENTH', '13', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTIETH', '30', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTIETH', '30', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY', '30', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY', '30', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY EIGHT', '38', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY EIGHT', '38', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY EIGHTH', '38', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY EIGHTH', '38', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY FIFTH', '35', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY FIFTH', '35', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY FIRST', '31', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY FIRST', '31', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY FIVE', '35', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY FIVE', '35', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY FOURTH', '34', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY FOURTH', '34', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY FOUR', '34', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY FOUR', '34', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY NINE', '39', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY NINE', '39', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY NINTH', '39', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY NINTH', '39', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY ONE', '31', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY ONE', '31', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY SECOND', '32', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY SECOND', '32', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY SEVEN', '37', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY SEVEN', '37', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY SEVENTH', '37', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY SEVENTH', '37', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY SIX', '36', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY SIX', '36', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY SIXTH', '36', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY SIXTH', '36', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY THIRD', '33', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY THIRD', '33', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY THREE', '33', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY THREE', '33', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THIRTY TWO', '32', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THIRTY TWO', '32', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THORO', 'THOROUGHFARE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THOROFARE', 'THOROUGHFARE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THOROUGHFARE', 'THOROUGHFARE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THREE', '3', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'THREE', '3', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THREE MILE', 'THREE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THROUGHWAY', 'THROUGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THRUWAY', 'THROUGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'THWY', 'THROUGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TK TRL', 'TANK TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TKTRL', 'TANK TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TL', 'TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TLINE', 'TOWNLINE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TLR', 'TRAILER', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TLR COURT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TLR CRT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TLR CT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TLR PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TLR PK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TLR PRK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TNPK', 'TURNPIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TNPKE', 'TURNPIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOP', 'TOP', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TOP', 'TOP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWER', 'TOWERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TOWER', 'TOWER', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'TOWER', 'TOWER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWERS', 'TOWERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TOWERS', 'TOWERS', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'TOWERS', 'TOWERS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'TOWERS', 'TOWERS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWN HIGHWAY', 'TOWN HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TOWN HIGHWAY', 'TOWN HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWN HWY', 'TOWN HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TOWN HWY', 'TOWN HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWN RD', 'TOWN ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TOWN RD', 'TOWN ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWN ROAD', 'TOWN ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TOWN ROAD', 'TOWN ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNHOME', 'TOWNHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNHOMES', 'TOWNHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNHOUSE', 'TOWNHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNHOUSES', 'TOWNHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNLINE', 'TOWNLINE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNSHIP HIGHWAY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNSHIP HIWAY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNSHIP HWY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNSHIP RD', 'TOWNSHIP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TOWNSHIP ROAD', 'TOWNSHIP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TP', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TPK', 'TURNPIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TPK', 'TURNPIKE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TPKE', 'TURNPIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TPKE', 'TURNPIKE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TR', 'TOWNSHIP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TR', 'TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TR COURT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TR CRT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TR CT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TR PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TR PK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TR PRK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TR VILLAGE', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TR VLG', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRACE', 'TRACE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TRACE', 'TRACE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRACK', 'TRACK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAFFICWAY', 'TRAFFICWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAIL', 'TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TRAIL', 'TRAIL', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILER', 'TRAILER', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TRAILER', 'TRAILER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILER COURT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILER CRT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILER CT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILER PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILER PK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILER PRK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILER VILLAGE', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILER VLG', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILERCOURT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILERPARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILERS', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAILS', 'TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRAK', 'TRACK', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRANS CANADA', 'TRANS CANADA', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TRANS CANADA', 'TRANS CANADA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRANSCANADA', 'TRANS CANADA', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TRANSCANADA', 'TRANS CANADA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRCE', 'TRACE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TRCE', 'TRACE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRCRT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRCT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRL', 'TRAIL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRL COURT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRL CRT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRL CT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRL PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRL PK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRL PRK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRL VILLAGE', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRL VLG', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLCRT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLCT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLPK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLPRK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLR', 'TRAILER', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TRLR', 'TRAILER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLR COURT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLR CRT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLR CT', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLR PARK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLR PK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLR PRK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLR VILLAGE', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRLR VLG', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRNABT', 'TURNABOUT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRNPK', 'TURNPIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TROIS', '3', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TROIS', '3', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TROISIEME', 'TROISIEME', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRPK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TRPRK', 'TRAILER PARK', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TSSE', 'TERRASSE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TSSE', 'TERRASEE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TUN', 'TUNNEL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TUNEL', 'TUNEL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TUNL', 'TUNEL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TUNNEL', 'TUNNEL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TURNABOUT', 'TURNABOUT', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TURN', 'TURNPIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TURN', 'TURNPIKE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TURNPIKE', 'TURNPIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TURNPIKE', 'TURNPIKE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TURNPK', 'TURNPIKE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TURNPK', 'TURNPIKE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TW HY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TW RD', 'TOWNSHIP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWELFTH', '12', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWELFTH', '12', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWELVE', '12', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWELVE', '12', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWELVE MILE', 'TWELVE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTIETH', '20', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTIETH', '20', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY', '20', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY', '20', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY EIGHT', '28', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY EIGHT', '28', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY EIGHTH', '28', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY EIGHTH', '28', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY FIRST', '21', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY FIRST', '21', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY FIFTH', '25', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY FIFTH', '25', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY FIVE', '25', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY FIVE', '25', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY FOURTH', '24', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY FOURTH', '24', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY FOUR', '24', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY FOUR', '24', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY MILE', 'TWENTY MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY NINE', '29', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY NINE', '29', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY NINTH', '29', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY NINTH', '29', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY ONE', '21', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY ONE', '21', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY SECOND', '22', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY SECOND', '22', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY SEVEN', '27', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY SEVEN', '27', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY SEVENTH', '27', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY SEVENTH', '27', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY SIX', '26', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY SIX', '26', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY SIXTH', '26', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY SIXTH', '26', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY THIRD', '23', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY THIRD', '23', 15);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY THREE', '23', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY THREE', '23', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY THREE MILE', 'TWENTY THREE MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWENTY TWO', '22', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWENTY TWO', '22', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWHY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWNH', 'TOWNHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWNHS', 'TOWNHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWNHWY', 'TOWN HIGHWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWNHWY', 'TOWN HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWNRD', 'TOWN ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWNRD', 'TOWN ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWO', '2', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWO', '2', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWO MILE', 'TWO MILE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWP', 'TOWNSHIP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWP', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWP HIGHWAY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWP HIWAY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWP HWY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWP HY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWP RD', 'TOWNSHIP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWP ROAD', 'TOWNSHIP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWPHWY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWPHY', 'TOWNSHIP HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWPRD', 'TOWNSHIP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWPROAD', 'TOWNSHIP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWR', 'TOWER', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWR', 'TOWER', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWRD', 'TOWNSHIP ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'TWRS', 'TOWERS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'TWRS', 'TOWERS', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'TWRS', 'TOWERS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U', 'UNIVERSITY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'U', 'U', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U S', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U S HGWY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U S HIGHWAY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U S HIWAY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U S HWY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U S HY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U S ROUTE', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U S RT', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'U S RTE', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UN', 'UNION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UN RD', 'UNNAMED ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNDERPASS', 'UNDERPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNI', 'UNIVERSITY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNION', 'UNION', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNIT', 'UNIT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNITE', 'UNITE', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNITED STATES HIGHWAY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNITED STATES HWY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNITED STATES LOOP', 'US LOOP', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNIV', 'UNIVERSITY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'UNIV', 'UNIVERSITY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNIVD', 'UNIVERSITY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'UNIVD', 'UNIVERSITY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNIVERSIDAD', 'UNIVERSIDAD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'UNIVERSIDAD', 'UNIVERSIDAD', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNIVERSITY', 'UNIVERSITY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'UNIVERSITY', 'UNIVERSITY', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'UNIVERSITY', 'UNIVERSITY', 19);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNNAMED ROAD', 'UNNAMED ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNP', 'UNDERPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNPS', 'UNDERPASS', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNRD', 'UNNAMED ROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UNT', 'UNIT', 16);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UP', 'UP', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'UP', 'UP', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UPPER', 'UPPER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'UPPER', 'UPPER', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UPPR', 'UPPER', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'UPPR', 'UPPER', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'UPSTAIRS', 'UPSTAIRS', 17);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US FOREST SERVICE ROAD', 'US FOREST SERVICE ROAD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US HGWY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US HIGHWAY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US HIWAY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US HWY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US HY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US LOOP', 'US LOOP', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US LP', 'US LOOP', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US ROUTE', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US RT', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'US RTE', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'USFS RD', 'US FOREST SERVICE RD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'USFSR', 'US FOREST SERVICE RD', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'USHW', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'USHWY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'USHY', 'US HIGHWAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'USLP', 'US LOOP', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'USROUTE', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'USRT', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'USRTE', 'US ROUTE', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VAL', 'VALLEY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VALL', 'VALLEY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VALLEY', 'VALLEY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VALLY', 'VALLEY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VER', 'VEREDA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VEREDA', 'VEREDA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VI', 'VIA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VIA', 'VIA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VIADUCT', 'VIADUCT', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VIEW', 'VIEW', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VIEW', 'VIEW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VILL', 'VILLAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VILL', 'VILLAGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'VILL', 'VILLAGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VILLA', 'VILLA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VILLA', 'VILLA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'VILLA', 'VILLA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VILLAG', 'VILLAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VILLAG', 'VILLAGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'VILLAG', 'VILLAGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VILLAGE', 'VILLAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VILLAGE', 'VILLAGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'VILLAGE', 'VILLAGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VILLAS', 'VILLA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VILLE', 'VILLE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VILLG', 'VILLAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VILLG', 'VILLAGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'VILLG', 'VILLAGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VILLGE', 'VILLAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VILLIAGE', 'VILLAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VILLIAGE', 'VILLAGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'VILLIAGE', 'VILLAGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VIS', 'VISTA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VIS', 'VISTA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VISTA', 'VISTA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VISTA', 'VISTA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VIVI', 'VIVIENDA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VIVIENDA', 'VIVIENDA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VL', 'VILLE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VL', 'VILLAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VLG', 'VILLAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VLG', 'VILLAGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'VLG', 'VILLAGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VLGE', 'VILLAGE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VLGE', 'VILLAGE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (3, 'VLGE', 'VILLAGE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VLLA', 'VILLA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VLLA', 'VILLA', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VLY', 'VALLEY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VOIE', 'VOIE', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VRDA', 'VEREDA', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'VW', 'VIEW', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'VW', 'VIEW', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'W', 'WEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'W', 'W', 18);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WALK', 'WALK', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WALKWAY', 'WALKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WALKWY', 'WALKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WALL', 'WALL', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WAREHOUSE', 'WAREHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'WAREHOUSE', 'WAREHOUSE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WATERWAY', 'WATERWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WAY', 'WAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WD', 'WYND', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WDS', 'WOODS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WE', 'WEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WELLS', 'WELLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WEST', 'WEST', 22);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WESTBOUND', 'WESTBOUND', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'WESTBOUND', 'WESTBOUND', 3);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WHARF', 'WHARF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'WHARF', 'WHARF', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WHF', 'WHARF', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'WHF', 'WHARF', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WHS', 'WAREHOUSE', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'WHS', 'WAREHOUSE', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WILDLIFE MGMT AREA', 'WILDLIFE AREA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WK', 'WALK', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WKWY', 'WALKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WLKWY', 'WALKWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WLS', 'WELLS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WMA', 'WILDLIFE AREA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WO', 'WOOD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WOOD', 'WOOD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'WOOD', 'WOOD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WOODS', 'WOODS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WTRWY', 'WATERWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WWY', 'WATERWAY', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WY', 'WAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (4, 'WY', 'WAY', 6);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'WYND', 'WYND', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'XING', 'CROSSING', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (2, 'XING', 'CROSSING', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'XRD', 'CROSSROAD', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'XRDS', 'CROSSROADS', 24);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'XWAY', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'XWY', 'EXPRESSWAY', 2);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'YARD', 'YARD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'YARDS', 'YARDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'YD', 'YARD', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'YDS', 'YARDS', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ZANJA', 'ZANJA', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ZERO', '0', 0);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ZERO', '0', 1);
+INSERT INTO us_lex (seq, word, stdword, token) VALUES (1, 'ZNJA', 'ZANJA', 1);
+
+
+-- needed set default back to original
+ALTER TABLE us_lex ALTER COLUMN is_custom SET DEFAULT true;
diff --git a/extensions/address_standardizer/us_rules.sql b/extensions/address_standardizer/us_rules.sql
new file mode 100644
index 0000000..31fbfc9
--- /dev/null
+++ b/extensions/address_standardizer/us_rules.sql
@@ -0,0 +1,4383 @@
+CREATE TABLE IF NOT EXISTS us_rules (
+    id serial, rule text, is_custom boolean NOT NULL DEFAULT true, CONSTRAINT pk_us_rules PRIMARY KEY(id) 
+);
+
+-- this will be needed for upgrading to prevent purging of custom entries
+DELETE FROM us_rules WHERE is_custom = false;
+
+-- needed so entries we add will default to not custom
+ALTER TABLE us_rules ALTER COLUMN is_custom SET DEFAULT false;
+
+INSERT INTO us_rules (rule) VALUES ('1 -1 5 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('1 3 -1 5 3 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('1 22 -1 5 7 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('1 22 3 -1 5 7 3 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('1 2 -1 5 6 -1 2 13');
+INSERT INTO us_rules (rule) VALUES ('1 2 3 -1 5 6 3 -1 2 13');
+INSERT INTO us_rules (rule) VALUES ('1 2 22 -1 5 6 7 -1 2 13');
+INSERT INTO us_rules (rule) VALUES ('1 2 22 3 -1 5 6 7 3 -1 2 13');
+INSERT INTO us_rules (rule) VALUES ('18 -1 5 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('18 3 -1 5 3 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('18 22 -1 5 7 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('18 22 3 -1 5 7 3 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('18 2 -1 5 6 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('18 2 3 -1 5 6 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('18 2 22 -1 5 6 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('18 2 22 3 -1 5 6 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 -1 5 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('2 3 -1 5 3 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('2 22 -1 5 7 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('2 22 3 -1 5 7 3 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('2 2 -1 5 6 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('2 2 3 -1 5 6 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 -1 5 6 7 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 3 -1 5 6 7 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 -1 5 6 -1 2 8');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 -1 5 6 3 -1 2 8');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 -1 5 6 7 -1 2 8');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 3 -1 5 6 7 3 -1 2 8');
+INSERT INTO us_rules (rule) VALUES ('22 1 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 -1 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 22 -1 5 5 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('1 22 3 -1 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('1 22 22 -1 5 5 7 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('1 22 22 3 -1 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('1 22 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 22 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 22 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 22 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 3 -1 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('2 1 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 -1 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('15 2 -1 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('15 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('15 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('15 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('16 0 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('16 0 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 2 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 2 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 2 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 2 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('24 2 2 3 -1 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('24 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 22 -1 5 5 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 -1 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 -1 5 5 7 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 3 -1 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('2 24 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 24 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 24 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 24 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 24 2 -1 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 24 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 24 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 24 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 22 -1 5 5 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('2 22 3 -1 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 22 22 -1 5 5 7 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('2 22 22 3 -1 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 22 2 -1 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 22 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 22 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 22 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 0 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 0 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 0 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 0 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 0 2 -1 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 0 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 0 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 0 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 18 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 18 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 18 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 18 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 18 2 -1 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 18 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 18 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 18 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('2 2 -1 5 5 -1 2 3');
+INSERT INTO us_rules (rule) VALUES ('2 2 3 -1 5 5 3 -1 2 3');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 -1 5 5 7 -1 2 3');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 3 -1 5 5 7 3 -1 2 3');
+INSERT INTO us_rules (rule) VALUES ('2 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('2 2 2 3 -1 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('2 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('2 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 2 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 2 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 2 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 2 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('18 2 2 3 -1 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('18 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 2 -1 5 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 2 3 -1 5 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 2 -1 5 6 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 2 3 -1 5 6 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 2 22 -1 5 6 7 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 2 22 3 -1 5 6 7 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 -1 5 5 6 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 3 -1 5 5 6 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 22 -1 5 5 6 7 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 22 3 -1 5 5 6 7 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 -1 5 5 6 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 3 -1 5 5 6 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 22 -1 5 5 6 7 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 22 3 -1 5 5 6 7 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 2 -1 5 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 2 3 -1 5 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 2 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 2 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('14 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('14 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('14 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('14 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('14 2 -1 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('14 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('14 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('14 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('15 1 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('15 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('15 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('15 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('15 1 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('15 1 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('15 1 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('15 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 2 -1 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 24 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 24 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 24 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 24 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 24 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 24 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 24 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 24 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 1 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('24 1 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 1 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 1 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('24 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('25 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('25 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('25 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('25 2 -1 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('25 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('25 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('25 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('23 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('23 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('23 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('23 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('23 2 -1 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('23 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('23 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('23 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 13 0 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 13 0 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 13 0 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 13 0 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 13 0 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 13 0 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 13 0 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 13 0 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('11 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('11 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('11 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('11 2 -1 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 0 -1 3 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('3 0 3 -1 3 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('3 0 22 -1 3 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('3 0 22 3 -1 3 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('3 0 2 -1 3 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 0 2 3 -1 3 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 0 2 22 -1 3 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 0 2 22 3 -1 3 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 1 -1 3 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('3 1 3 -1 3 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('3 1 22 -1 3 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('3 1 22 3 -1 3 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('3 1 2 -1 3 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 1 2 3 -1 3 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 1 2 22 -1 3 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 1 2 22 3 -1 3 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 13 18 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 13 18 3 -1 5 5 3 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 13 18 22 -1 5 5 3 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 13 18 22 3 -1 5 5 3 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 13 18 2 -1 5 5 3 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 13 18 2 3 -1 5 5 3 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 13 18 2 22 -1 5 5 3 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 13 18 2 22 3 -1 5 5 3 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 0 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 0 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 0 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 0 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 18 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 18 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 18 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 18 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 18 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 18 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 18 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 18 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 1 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 18 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 18 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 1 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('18 1 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 1 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 1 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('18 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('5 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('5 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('5 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('5 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('5 2 -1 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('5 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('5 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('5 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('21 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('21 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('21 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('21 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('21 2 -1 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('21 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('21 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('21 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 13 1 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 13 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 13 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 13 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 13 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 13 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 13 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 13 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 24 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 24 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 24 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 24 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 24 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 24 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 24 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 24 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 1 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 24 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 24 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 15 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 15 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 15 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 15 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 15 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 15 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 15 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 15 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 22 1 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 22 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 22 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 22 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 22 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 22 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 22 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 22 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 25 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 25 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 25 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 25 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 25 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 25 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 25 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 25 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 0 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 0 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 0 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 0 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 0 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 0 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 0 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 0 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 3 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 3 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 3 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 3 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 3 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 3 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 3 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 3 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 -1 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 3 -1 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 22 -1 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 -1 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 18 1 -1 5 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 18 1 3 -1 5 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 18 1 22 -1 5 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 18 1 22 3 -1 5 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 18 1 2 -1 5 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 18 1 2 3 -1 5 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 18 1 2 22 -1 5 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 18 1 2 22 3 -1 5 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 1 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 18 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 18 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 1 -1 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('1 2 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('1 2 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('16 -1 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('16 3 -1 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('16 22 -1 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('16 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('16 2 -1 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('16 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('16 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('16 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('2 1 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 1 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 -1 4 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 3 -1 4 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 22 -1 4 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 22 3 -1 4 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 2 1 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 2 -1 4 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 24 2 3 -1 4 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 24 2 22 -1 4 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 24 2 22 3 -1 4 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 0 22 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 22 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 22 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 22 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 24 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 24 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 24 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 24 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 22 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 0 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 0 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 0 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 18 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 18 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 18 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 2 2 -1 4 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 2 2 3 -1 4 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 2 2 22 -1 4 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 2 2 22 3 -1 4 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 18 2 -1 4 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 18 2 3 -1 4 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 18 2 22 -1 4 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 18 2 22 3 -1 4 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 2 -1 4 5 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 2 3 -1 4 5 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 2 22 -1 4 5 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 2 22 3 -1 4 5 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 0 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 18 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 18 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 18 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 1 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 2 -1 4 5 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 2 3 -1 4 5 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 2 22 -1 4 5 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 2 22 3 -1 4 5 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('2 22 2 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 2 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 2 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 22 2 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 14 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 14 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 14 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 14 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 15 1 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 15 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 15 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 15 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 24 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 24 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 24 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 24 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 1 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 24 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 25 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 25 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 25 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 25 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 23 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 23 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 23 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 23 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 13 0 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 13 0 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 13 0 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 13 0 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 25 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 25 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 25 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 0 25 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 11 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 11 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 11 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 11 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 3 0 -1 4 3 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 3 0 3 -1 4 3 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 3 0 22 -1 4 3 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 3 0 22 3 -1 4 3 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 3 1 -1 4 3 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 3 1 3 -1 4 3 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 3 1 22 -1 4 3 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 3 1 22 3 -1 4 3 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 13 18 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 13 18 3 -1 4 5 5 3 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 13 18 22 -1 4 5 5 3 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 13 18 22 3 -1 4 5 5 3 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 0 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 0 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 0 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 18 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 18 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 18 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 18 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 18 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 1 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 18 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 5 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 5 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 5 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 5 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 21 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 21 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 21 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 21 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 13 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 13 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 13 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 13 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 24 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 24 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 24 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 24 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 15 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 15 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 15 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 15 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 22 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 25 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 25 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 25 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 25 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 0 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 0 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 0 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 3 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 3 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 3 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 3 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 -1 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 18 1 -1 4 5 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 18 1 3 -1 4 5 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 18 1 22 -1 4 5 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 18 1 22 3 -1 4 5 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 18 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 0 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 0 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 0 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 0 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 2 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 16 -1 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 16 3 -1 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 16 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('2 16 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 1 -1 2 5 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 -1 2 5 3 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 -1 2 5 7 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 3 -1 2 5 7 3 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 3 -1 2 5 6 3 -1 2 13');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 22 -1 2 5 6 7 -1 2 13');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 22 3 -1 2 5 6 7 3 -1 2 13');
+INSERT INTO us_rules (rule) VALUES ('22 18 -1 2 5 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('22 18 3 -1 2 5 3 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('22 18 22 -1 2 5 7 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('22 18 22 3 -1 2 5 7 3 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 -1 2 5 6 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 3 -1 2 5 6 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 22 -1 2 5 6 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 22 3 -1 2 5 6 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 -1 2 5 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 -1 2 5 3 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 -1 2 5 7 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 3 -1 2 5 7 3 -1 2 2');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 -1 2 5 6 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 3 -1 2 5 6 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 -1 2 5 6 7 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 3 -1 2 5 6 7 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 22 -1 2 5 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('22 22 3 -1 2 5 3 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('22 22 22 -1 2 5 7 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('22 22 22 3 -1 2 5 7 3 -1 2 7');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 -1 2 5 6 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 3 -1 2 5 6 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 22 -1 2 5 6 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 22 3 -1 2 5 6 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 22 1 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 1 2 -1 2 5 5 6 -1 2 8');
+INSERT INTO us_rules (rule) VALUES ('22 22 1 2 3 -1 2 5 5 6 3 -1 2 8');
+INSERT INTO us_rules (rule) VALUES ('22 22 1 2 22 -1 2 5 5 6 7 -1 2 8');
+INSERT INTO us_rules (rule) VALUES ('22 22 1 2 22 3 -1 2 5 5 6 7 3 -1 2 8');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 -1 2 5 5 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 3 -1 2 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 22 -1 2 5 5 7 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 22 3 -1 2 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 15 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 15 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 15 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 15 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 16 0 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 16 0 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 -1 2 5 5 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 3 -1 2 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 22 -1 2 5 5 7 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 22 3 -1 2 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 -1 2 5 5 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 3 -1 2 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 22 -1 2 5 5 7 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 22 3 -1 2 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 -1 2 5 5 -1 2 3');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 3 -1 2 5 5 3 -1 2 3');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 -1 2 5 5 7 -1 2 3');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 3 -1 2 5 5 7 3 -1 2 3');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 2 -1 2 5 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 2 3 -1 2 5 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 -1 2 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 3 -1 2 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 -1 2 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 2 -1 2 5 6 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 2 3 -1 2 5 6 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 2 22 -1 2 5 6 7 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 2 22 3 -1 2 5 6 7 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 18 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 18 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 18 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 18 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 18 2 -1 2 5 5 6 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 18 2 3 -1 2 5 5 6 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 18 2 22 -1 2 5 5 6 7 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 18 2 22 3 -1 2 5 5 6 7 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 1 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 1 2 -1 2 5 5 6 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 1 2 3 -1 2 5 5 6 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 1 2 22 -1 2 5 5 6 7 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 0 1 2 22 3 -1 2 5 5 6 7 3 -1 2 10');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 2 -1 2 5 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 2 3 -1 2 5 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 2 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 2 22 -1 2 5 5 6 7 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 22 2 2 22 3 -1 2 5 5 6 7 3 -1 2 5');
+INSERT INTO us_rules (rule) VALUES ('22 14 -1 2 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 14 3 -1 2 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 14 22 -1 2 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 14 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 14 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 14 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 14 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 14 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 15 1 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 15 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 15 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 15 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 15 1 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 15 1 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 15 1 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 15 1 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 -1 2 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 3 -1 2 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 22 -1 2 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 1 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 24 1 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 1 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 1 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 24 1 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 25 -1 2 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 25 3 -1 2 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 25 22 -1 2 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 25 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 25 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 25 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 25 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 25 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 23 -1 2 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 23 3 -1 2 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 23 22 -1 2 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 23 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 23 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 23 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 23 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 23 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 13 0 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 13 0 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 13 0 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 13 0 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 13 0 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 13 0 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 13 0 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 13 0 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 25 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 25 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 25 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 25 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 0 25 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 25 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 25 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 0 25 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 -1 2 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 11 3 -1 2 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 11 22 -1 2 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 11 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 11 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 0 -1 2 3 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 3 0 3 -1 2 3 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 3 0 22 -1 2 3 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 3 0 22 3 -1 2 3 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 3 0 2 -1 2 3 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 0 2 3 -1 2 3 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 0 2 22 -1 2 3 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 0 2 22 3 -1 2 3 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 1 -1 2 3 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 3 1 3 -1 2 3 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 3 1 22 -1 2 3 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 3 1 22 3 -1 2 3 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 3 1 2 -1 2 3 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 1 2 3 -1 2 3 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 1 2 22 -1 2 3 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 1 2 22 3 -1 2 3 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 13 18 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 13 18 3 -1 2 5 5 3 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 13 18 22 -1 2 5 5 3 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 13 18 22 3 -1 2 5 5 3 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 13 18 2 -1 2 5 5 3 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 13 18 2 3 -1 2 5 5 3 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 13 18 2 22 -1 2 5 5 3 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 13 18 2 22 3 -1 2 5 5 3 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 0 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 0 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 0 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 0 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 0 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 0 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 0 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 0 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 18 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 18 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 18 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 18 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 18 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 18 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 18 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 18 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 18 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 1 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 18 1 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 1 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 1 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 18 1 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 5 -1 2 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 5 3 -1 2 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 5 22 -1 2 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 5 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 5 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 5 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 5 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 5 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 21 -1 2 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 21 3 -1 2 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 21 22 -1 2 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 21 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 21 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 21 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 21 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 21 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 13 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 13 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 13 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 13 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 13 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 13 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 13 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 13 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 24 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 24 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 24 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 24 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 24 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 24 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 24 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 24 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 15 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 15 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 15 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 15 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 15 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 15 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 15 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 15 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 22 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 25 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 25 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 25 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 25 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 25 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 25 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 25 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 25 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 3 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 -1 2 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 18 1 -1 2 5 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 18 1 3 -1 2 5 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 18 1 22 -1 2 5 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 18 1 22 3 -1 2 5 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 18 1 2 -1 2 5 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 18 1 2 3 -1 2 5 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 18 1 2 22 -1 2 5 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 18 1 2 22 3 -1 2 5 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 18 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 0 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 0 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 0 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 0 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 0 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 0 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 0 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 0 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 1 2 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 16 -1 2 5 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 16 3 -1 2 5 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 16 22 -1 2 5 7 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 16 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO us_rules (rule) VALUES ('22 16 2 -1 2 5 6 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 16 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 16 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 16 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 -1 2 4 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 3 -1 2 4 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 22 -1 2 4 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 2 -1 2 4 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 2 3 -1 2 4 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 2 22 -1 2 4 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 22 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 22 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 22 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 22 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 24 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 24 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 24 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 24 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 22 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 0 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 0 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 0 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 0 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 18 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 18 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 18 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 2 -1 2 4 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 2 3 -1 2 4 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 2 22 -1 2 4 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 2 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 2 -1 2 4 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 2 3 -1 2 4 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 2 22 -1 2 4 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 2 -1 2 4 5 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 2 3 -1 2 4 5 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 2 22 -1 2 4 5 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 2 22 3 -1 2 4 5 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 18 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 18 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 18 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 2 -1 2 4 5 5 5 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 2 3 -1 2 4 5 5 5 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 2 22 -1 2 4 5 5 5 7 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 2 22 3 -1 2 4 5 5 5 7 3 -1 2 4');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 2 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 2 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 2 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 22 2 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 14 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 14 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 14 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 14 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 15 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 15 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 15 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 15 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 24 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 24 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 24 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 24 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 25 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 25 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 25 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 25 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 23 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 23 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 23 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 23 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 13 0 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 13 0 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 13 0 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 13 0 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 25 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 25 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 25 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 0 25 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 11 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 11 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 11 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 11 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 0 -1 2 4 3 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 0 3 -1 2 4 3 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 0 22 -1 2 4 3 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 0 22 3 -1 2 4 3 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 1 -1 2 4 3 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 1 3 -1 2 4 3 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 1 22 -1 2 4 3 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 3 1 22 3 -1 2 4 3 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 13 18 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 13 18 3 -1 2 4 5 5 3 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 13 18 22 -1 2 4 5 5 3 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 13 18 22 3 -1 2 4 5 5 3 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 0 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 0 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 0 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 0 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 18 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 18 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 18 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 18 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 18 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 18 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 5 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 5 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 5 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 5 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 21 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 21 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 21 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 21 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 13 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 13 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 13 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 13 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 24 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 24 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 24 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 24 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 24 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 15 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 15 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 15 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 15 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 22 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 25 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 25 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 25 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 25 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 0 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 0 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 0 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 0 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 3 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 3 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 3 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 3 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 -1 2 4 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 18 1 -1 2 4 5 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 18 1 3 -1 2 4 5 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 18 1 22 -1 2 4 5 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 18 1 22 3 -1 2 4 5 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 18 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 0 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 0 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 0 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 0 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 1 2 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 16 -1 2 4 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 16 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 16 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 2 16 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 0 -1 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('6 0 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 21 -1 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 21 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 21 0 -1 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 21 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 23 -1 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 23 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 0 18 -1 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 0 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 0 0 -1 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 0 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 18 -1 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 18 22 -1 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 18 0 -1 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 18 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 18 18 -1 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 18 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 6 0 -1 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('6 6 0 22 -1 3 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 6 21 -1 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 6 21 22 -1 3 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 6 21 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 6 21 0 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 6 23 -1 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 6 23 22 -1 3 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 6 0 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 6 0 18 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 6 0 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 6 0 0 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 6 18 -1 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 6 18 22 -1 3 4 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 6 18 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 6 18 0 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 6 18 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('6 6 18 18 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('3 6 0 -1 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('3 6 0 22 -1 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('3 6 21 -1 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 21 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 21 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 21 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 23 -1 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 23 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 0 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 0 18 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 0 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 0 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 18 -1 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 18 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 18 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 18 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 18 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 18 18 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 0 -1 3 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 0 22 -1 3 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 21 -1 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 21 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 21 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 21 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 23 -1 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 23 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 0 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 0 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 0 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 0 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 18 -1 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 18 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 18 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 18 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 18 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 6 6 18 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 0 -1 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('11 6 0 22 -1 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('11 6 21 -1 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 21 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 21 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 21 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 23 -1 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 23 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 0 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 0 18 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 0 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 0 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 18 -1 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 18 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 18 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 18 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 18 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 18 18 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 0 -1 3 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 0 22 -1 3 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 21 -1 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 21 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 21 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 21 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 23 -1 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 23 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 0 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 0 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 0 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 0 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 18 -1 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 18 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 18 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 18 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 18 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('11 6 6 18 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 0 -1 3 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 0 22 -1 3 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 21 -1 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 21 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 21 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 21 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 23 -1 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 23 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 0 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 0 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 0 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 0 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 18 -1 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 18 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 18 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 18 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 18 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 18 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 0 -1 3 3 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 0 22 -1 3 3 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 21 -1 3 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 21 22 -1 3 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 21 0 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 21 0 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 23 -1 3 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 23 22 -1 3 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 0 18 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 0 18 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 0 0 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 0 0 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 18 -1 3 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 18 22 -1 3 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 18 0 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 18 0 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 18 18 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('3 11 6 6 18 18 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 0 -1 2 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 6 0 22 -1 2 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 6 21 -1 2 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 21 22 -1 2 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 21 0 -1 2 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 21 0 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 23 -1 2 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 23 22 -1 2 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 0 18 -1 2 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 0 18 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 0 0 -1 2 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 0 0 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 18 -1 2 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 18 22 -1 2 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 18 0 -1 2 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 18 0 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 18 18 -1 2 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 18 18 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 0 -1 2 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 0 22 -1 2 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 21 -1 2 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 21 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 21 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 21 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 23 -1 2 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 23 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 0 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 0 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 0 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 0 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 18 -1 2 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 18 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 18 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 18 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 18 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 6 6 18 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 0 -1 2 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 0 22 -1 2 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 21 -1 2 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 21 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 21 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 21 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 23 -1 2 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 23 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 0 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 0 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 0 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 0 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 18 -1 2 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 18 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 18 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 18 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 18 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 18 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 0 -1 2 3 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 0 22 -1 2 3 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 21 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 21 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 21 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 21 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 23 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 23 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 0 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 0 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 0 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 0 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 18 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 18 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 18 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 18 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 18 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 6 6 18 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 0 -1 2 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 0 22 -1 2 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 21 -1 2 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 21 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 21 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 21 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 23 -1 2 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 23 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 0 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 0 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 0 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 0 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 18 -1 2 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 18 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 18 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 18 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 18 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 18 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 0 -1 2 3 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 0 22 -1 2 3 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 21 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 21 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 21 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 21 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 23 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 23 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 0 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 0 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 0 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 0 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 18 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 18 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 18 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 18 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 18 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 11 6 6 18 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 0 -1 2 3 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 0 22 -1 2 3 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 21 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 21 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 21 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 21 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 23 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 23 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 0 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 0 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 0 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 0 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 18 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 18 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 18 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 18 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 18 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 18 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 0 -1 2 3 3 3 4 5 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 0 22 -1 2 3 3 3 4 5 7 -1 2 16');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 21 -1 2 3 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 21 22 -1 2 3 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 21 0 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 21 0 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 23 -1 2 3 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 23 22 -1 2 3 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 0 18 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 0 18 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 0 0 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 0 0 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 18 -1 2 3 3 3 4 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 18 22 -1 2 3 3 3 4 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 18 0 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 18 0 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 18 18 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('22 3 11 6 6 18 18 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO us_rules (rule) VALUES ('0 1 -1 1 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 1 22 -1 1 5 7 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 22 -1 1 5 6 7 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 5 -1 1 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 5 22 -1 1 5 7 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 5 2 -1 1 5 6 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 5 2 22 -1 1 5 6 7 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 2 1 -1 1 4 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 2 1 22 -1 1 4 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 2 5 -1 1 4 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 2 5 22 -1 1 4 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 -1 1 2 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 5 -1 1 2 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 22 5 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 1 -1 1 2 4 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 5 -1 1 2 4 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 -1 1 1 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 22 -1 1 1 5 7 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 5 -1 1 1 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 18 5 22 -1 1 1 5 7 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 18 5 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 5 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 1 -1 1 1 4 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 1 22 -1 1 1 4 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 5 -1 1 1 4 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 5 22 -1 1 1 4 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 -1 1 1 2 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 5 -1 1 1 2 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 5 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 1 -1 1 1 2 4 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 5 -1 1 1 2 4 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 -1 1 1 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 22 -1 1 1 5 7 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 2 -1 1 1 5 6 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 2 22 -1 1 1 5 6 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 5 -1 1 1 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 25 5 22 -1 1 1 5 7 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 25 5 2 -1 1 1 5 6 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 5 2 22 -1 1 1 5 6 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 1 -1 1 1 4 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 1 22 -1 1 1 4 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 5 -1 1 1 4 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 5 22 -1 1 1 4 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 -1 1 1 2 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 2 -1 1 1 2 5 6 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 5 -1 1 1 2 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 5 2 -1 1 1 2 5 6 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 1 -1 1 1 2 4 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 5 -1 1 1 2 4 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('25 1 -1 1 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('25 1 22 -1 1 5 7 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('25 1 2 -1 1 5 6 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 1 2 22 -1 1 5 6 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 5 -1 1 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('25 5 22 -1 1 5 7 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('25 5 2 -1 1 5 6 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 5 2 22 -1 1 5 6 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 2 1 -1 1 4 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 1 22 -1 1 4 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 5 -1 1 4 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 5 22 -1 1 4 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 -1 1 2 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 2 -1 1 2 5 6 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 22 5 -1 1 2 5 -1 1 7');
+INSERT INTO us_rules (rule) VALUES ('25 22 5 2 -1 1 2 5 6 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 1 -1 1 2 4 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 5 -1 1 2 4 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 0 -1 1 5 -1 1 4');
+INSERT INTO us_rules (rule) VALUES ('0 0 22 -1 1 5 7 -1 1 4');
+INSERT INTO us_rules (rule) VALUES ('0 0 2 -1 1 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 0 2 22 -1 1 5 6 7 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 18 -1 1 5 -1 1 6');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 -1 1 5 7 -1 1 6');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 2 0 -1 1 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 2 0 22 -1 1 4 5 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 2 18 -1 1 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 2 18 22 -1 1 4 5 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 22 0 -1 1 2 5 -1 1 6');
+INSERT INTO us_rules (rule) VALUES ('0 22 0 22 -1 1 2 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 22 0 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 0 2 22 -1 1 2 5 6 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 -1 1 2 5 -1 1 6');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 22 -1 1 2 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 2 22 -1 1 2 5 6 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 0 -1 1 2 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 0 22 -1 1 2 4 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 18 -1 1 2 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 18 22 -1 1 2 4 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 0 -1 1 1 5 -1 1 3');
+INSERT INTO us_rules (rule) VALUES ('0 18 0 22 -1 1 1 5 7 -1 1 3');
+INSERT INTO us_rules (rule) VALUES ('0 18 0 2 -1 1 1 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 18 0 2 22 -1 1 1 5 6 7 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 -1 1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 2 -1 1 1 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 2 22 -1 1 1 5 6 7 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 0 -1 1 1 4 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 0 22 -1 1 1 4 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 18 -1 1 1 4 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 18 22 -1 1 1 4 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 0 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 0 2 -1 1 1 2 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 2 -1 1 1 2 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 0 -1 1 1 2 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 18 -1 1 1 2 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 0 -1 1 1 5 -1 1 3');
+INSERT INTO us_rules (rule) VALUES ('0 25 0 22 -1 1 1 5 7 -1 1 3');
+INSERT INTO us_rules (rule) VALUES ('0 25 0 2 -1 1 1 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 25 0 2 22 -1 1 1 5 6 7 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 -1 1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 2 -1 1 1 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 2 22 -1 1 1 5 6 7 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 0 -1 1 1 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 0 22 -1 1 1 4 5 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 18 -1 1 1 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 18 22 -1 1 1 4 5 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 0 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 0 2 -1 1 1 2 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 2 -1 1 1 2 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 0 -1 1 1 2 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 18 -1 1 1 2 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 0 -1 1 5 -1 1 3');
+INSERT INTO us_rules (rule) VALUES ('25 0 22 -1 1 5 7 -1 1 3');
+INSERT INTO us_rules (rule) VALUES ('25 0 2 -1 1 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('25 0 2 22 -1 1 5 6 7 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('25 18 -1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 18 22 -1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 18 2 -1 1 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('25 18 2 22 -1 1 5 6 7 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('25 2 0 -1 1 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 2 0 22 -1 1 4 5 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 2 18 -1 1 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 2 18 22 -1 1 4 5 7 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 22 0 -1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 0 2 -1 1 2 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 -1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 2 -1 1 2 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 0 -1 1 2 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 18 -1 1 2 4 5 -1 1 14');
+INSERT INTO us_rules (rule) VALUES ('0 6 0 -1 1 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 6 0 22 -1 1 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 6 21 -1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 21 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 21 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 21 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 23 -1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 23 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 0 18 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 0 18 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 0 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 0 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 18 -1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 18 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 18 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 18 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 18 18 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 18 18 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 6 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 11 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 0 -1 1 3 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 0 22 -1 1 3 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 21 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 21 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 21 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 21 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 23 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 23 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 0 18 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 0 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 0 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 0 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 18 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 18 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 18 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 18 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 18 18 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 3 11 6 6 18 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 0 -1 1 2 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 21 -1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 21 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 23 -1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 0 18 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 0 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 18 -1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 18 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 18 18 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 11 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 6 0 -1 1 2 3 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 6 21 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 6 21 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 6 23 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 6 0 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 6 0 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 6 18 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 6 18 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 3 11 6 6 18 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 0 -1 1 1 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 0 22 -1 1 1 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 21 -1 1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 21 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 21 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 21 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 23 -1 1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 23 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 0 18 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 0 18 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 0 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 0 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 18 -1 1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 18 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 18 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 18 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 18 18 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 18 18 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 6 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 11 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 0 -1 1 1 3 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 0 22 -1 1 1 3 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 21 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 21 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 21 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 21 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 23 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 23 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 0 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 0 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 0 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 0 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 18 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 18 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 18 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 18 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 18 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 3 11 6 6 18 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 0 -1 1 1 2 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 21 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 21 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 23 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 0 18 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 0 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 18 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 18 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 18 18 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 6 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 11 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 6 0 -1 1 1 2 3 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 6 21 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 6 21 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 6 23 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 6 0 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 6 0 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 6 18 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 6 18 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 3 11 6 6 18 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 0 -1 1 1 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 0 22 -1 1 1 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 21 -1 1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 21 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 21 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 21 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 23 -1 1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 23 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 0 18 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 0 18 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 0 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 0 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 18 -1 1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 18 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 18 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 18 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 18 18 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 18 18 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 6 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 11 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 0 -1 1 1 3 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 0 22 -1 1 1 3 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 21 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 21 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 21 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 21 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 23 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 23 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 0 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 0 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 0 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 0 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 18 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 18 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 18 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 18 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 18 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 3 11 6 6 18 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 0 -1 1 1 2 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 21 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 21 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 23 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 0 18 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 0 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 18 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 18 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 18 18 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 6 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 11 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 6 0 -1 1 1 2 3 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 6 21 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 6 21 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 6 23 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 6 0 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 6 0 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 6 18 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 6 18 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 3 11 6 6 18 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 0 -1 1 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 6 0 22 -1 1 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('25 6 21 -1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 21 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 21 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 21 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 23 -1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 23 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 0 18 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 0 18 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 0 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 0 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 18 -1 1 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 18 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 18 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 18 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 18 18 -1 1 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 18 18 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 6 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 11 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 0 -1 1 3 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 0 22 -1 1 3 3 3 4 5 7 -1 1 12');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 21 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 21 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 21 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 21 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 23 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 23 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 0 18 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 0 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 0 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 0 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 18 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 18 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 18 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 18 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 18 18 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 3 11 6 6 18 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 0 -1 1 2 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 21 -1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 21 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 23 -1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 0 18 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 0 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 18 -1 1 2 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 18 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 18 18 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 6 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 11 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 6 0 -1 1 2 3 3 3 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 6 21 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 6 21 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 6 23 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 6 0 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 6 0 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 6 18 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 6 18 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 3 11 6 6 18 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 -1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 -1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 -1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 15 -1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 15 22 -1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 -1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 2 -1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 2 22 -1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 1 13 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 1 13 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 -1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 -1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 1 -1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 1 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 15 -1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 15 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 18 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 1 -1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 1 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 -1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 13 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 13 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 -1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 -1 1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 -1 1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 15 -1 1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 15 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 -1 1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 -1 1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 13 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 13 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 -1 1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 1 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 1 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 15 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 15 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 18 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 1 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 1 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 13 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 13 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 -1 1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 -1 1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 15 -1 1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 15 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 1 -1 1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 1 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 -1 1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 13 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 13 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 -1 1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 1 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 1 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 15 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 15 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 18 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 1 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 1 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 -1 1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 13 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 13 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 -1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 22 -1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 -1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 15 -1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 15 22 -1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 18 18 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 18 18 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 18 1 -1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 18 1 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 2 -1 1 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 2 22 -1 1 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 1 13 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 1 13 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 -1 1 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 22 -1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 22 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 22 1 -1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 22 1 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 15 -1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 15 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 18 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 1 -1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 1 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 -1 1 2 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 13 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 13 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 -1 1 2 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO us_rules (rule) VALUES ('0 2 1 18 -1 1 4 5 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 2 1 18 22 -1 1 4 5 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 2 1 18 1 -1 1 4 5 5 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 2 1 18 1 22 -1 1 4 5 5 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 2 0 18 -1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 2 0 18 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 2 0 1 -1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 2 0 1 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 2 18 1 -1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 2 18 1 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 2 18 18 1 -1 1 4 5 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 2 18 18 1 22 -1 1 4 5 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 1 18 -1 1 1 4 5 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 1 18 22 -1 1 1 4 5 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 1 18 1 -1 1 1 4 5 5 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 1 18 1 22 -1 1 1 4 5 5 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 0 18 -1 1 1 4 5 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 0 18 22 -1 1 1 4 5 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 0 1 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 0 1 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 18 1 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 18 1 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 18 18 1 -1 1 1 4 5 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 18 18 1 22 -1 1 1 4 5 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 1 18 -1 1 1 4 5 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 1 18 22 -1 1 1 4 5 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 1 18 1 -1 1 1 4 5 5 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 1 18 1 22 -1 1 1 4 5 5 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 0 18 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 0 18 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 0 1 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 0 1 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 18 1 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 18 1 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 18 18 1 -1 1 1 4 5 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 18 18 1 22 -1 1 1 4 5 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 1 18 -1 1 4 5 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('25 2 1 18 22 -1 1 4 5 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('25 2 1 18 1 -1 1 4 5 5 5 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('25 2 1 18 1 22 -1 1 4 5 5 5 7 -1 1 11');
+INSERT INTO us_rules (rule) VALUES ('25 2 0 18 -1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 0 18 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 0 1 -1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 0 1 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 18 1 -1 1 4 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 18 1 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 18 18 1 -1 1 4 5 5 5 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('25 2 18 18 1 22 -1 1 4 5 5 5 7 -1 1 8');
+INSERT INTO us_rules (rule) VALUES ('0 14 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 14 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 15 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 15 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 24 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 24 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 24 24 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 24 24 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 24 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 24 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 24 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 24 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 0 25 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 0 25 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 15 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 15 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 2 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 2 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 2 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 2 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 2 1 2 -1 1 5 5 6 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 2 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 16 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 16 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 13 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 13 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 15 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 15 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 24 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 24 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 22 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 22 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 22 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 22 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 25 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 25 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 2 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 2 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 21 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 21 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 14 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 14 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 15 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 15 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 24 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 25 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 25 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 0 25 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 0 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 15 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 15 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 18 18 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 18 18 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 18 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 1 2 22 -1 1 2 5 5 6 7 -1 1 15');
+INSERT INTO us_rules (rule) VALUES ('0 22 16 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 16 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 13 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 13 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 15 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 15 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 24 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 24 24 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 24 24 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 24 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 24 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 22 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 22 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 22 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 22 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 25 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 2 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 2 2 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 2 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 21 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 21 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 14 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 14 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 15 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 15 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 24 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 25 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 25 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 0 25 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 0 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 15 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 15 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 18 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 18 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 16 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 16 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 13 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 13 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 15 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 15 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 24 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 24 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 22 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 22 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 22 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 22 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 25 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 2 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 2 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 21 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 21 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 14 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 14 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 15 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 15 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 24 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 25 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 25 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 0 25 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 0 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 15 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 15 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 18 18 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 18 18 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 18 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 16 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 16 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 13 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 13 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 15 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 15 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 24 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 24 24 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 24 24 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 24 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 24 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 22 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 22 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 22 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 22 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 25 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 2 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 2 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 21 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 21 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 14 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 14 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 15 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 15 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 24 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 25 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 25 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 0 25 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 0 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 15 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 15 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 18 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 18 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 16 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 16 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 13 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 13 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 15 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 15 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 24 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 24 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 22 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 22 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 22 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 22 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 25 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 2 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 2 2 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 2 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 21 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 21 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 14 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 14 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 15 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 15 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 24 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 25 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 25 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 0 25 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 0 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 15 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 15 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 18 18 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 18 18 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 18 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 16 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 16 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 13 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 13 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 15 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 15 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 24 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 24 24 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 24 24 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 24 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 24 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 22 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 22 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 22 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 22 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 25 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 2 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 2 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 21 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 21 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 14 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 14 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 15 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 15 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 24 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 24 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 24 24 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 24 24 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 24 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 24 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 24 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 24 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 25 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 25 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 0 25 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 0 25 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 15 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 15 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 18 18 18 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 18 18 18 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 18 18 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 18 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 18 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 18 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 18 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 18 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 2 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 2 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 2 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 2 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 2 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 2 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 16 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 16 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 13 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 13 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 15 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 15 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 24 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 24 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 24 24 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 24 24 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 24 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 24 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 22 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 22 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 22 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 22 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 25 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 25 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 2 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 2 2 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 1 2 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 21 2 -1 1 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 21 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 14 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 14 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 15 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 15 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 24 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 24 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 24 24 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 24 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 24 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 24 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 24 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 24 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 22 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 22 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 22 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 22 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 25 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 25 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 0 25 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 0 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 15 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 15 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 18 18 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 18 18 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 18 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 2 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 16 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 16 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 13 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 13 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 15 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 15 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 24 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 24 24 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 24 24 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 24 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 24 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 22 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 22 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 22 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 22 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 25 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 2 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 2 2 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 1 2 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 21 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('25 22 21 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO us_rules (rule) VALUES ('0 -1 1 -1 3 17');
+INSERT INTO us_rules (rule) VALUES ('0 18 -1 1 1 -1 3 16');
+INSERT INTO us_rules (rule) VALUES ('0 25 -1 1 1 -1 3 16');
+INSERT INTO us_rules (rule) VALUES ('0 22 -1 1 1 -1 3 9');
+INSERT INTO us_rules (rule) VALUES ('22 0 -1 1 1 -1 3 9');
+INSERT INTO us_rules (rule) VALUES ('1 0 -1 1 1 -1 3 6');
+INSERT INTO us_rules (rule) VALUES ('18 0 -1 1 1 -1 3 12');
+INSERT INTO us_rules (rule) VALUES ('25 -1 1 -1 3 12');
+INSERT INTO us_rules (rule) VALUES ('21 0 -1 1 1 -1 3 12');
+INSERT INTO us_rules (rule) VALUES ('0 21 -1 1 1 -1 3 9');
+INSERT INTO us_rules (rule) VALUES ('0 0 -1 1 1 -1 3 15');
+INSERT INTO us_rules (rule) VALUES ('21 0 0 -1 1 1 1 -1 3 9');
+INSERT INTO us_rules (rule) VALUES ('0 0 21 -1 1 1 1 -1 3 9');
+INSERT INTO us_rules (rule) VALUES ('0 0 18 -1 1 1 1 -1 3 9');
+INSERT INTO us_rules (rule) VALUES ('18 0 -1 1 1 -1 3 9');
+INSERT INTO us_rules (rule) VALUES ('18 0 0 -1 1 1 1 -1 3 9');
+INSERT INTO us_rules (rule) VALUES ('0 0 18 -1 1 1 1 -1 3 9');
+INSERT INTO us_rules (rule) VALUES ('8 -1 8 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('8 23 -1 8 8 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('8 0 -1 8 8 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('8 0 18 -1 8 8 8 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('8 18 -1 8 8 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('8 18 0 -1 8 8 8 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('8 1 -1 8 8 -1 4 2');
+INSERT INTO us_rules (rule) VALUES ('14 -1 14 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('14 21 -1 14 15 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('14 23 -1 14 15 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('14 0 -1 14 15 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('14 0 18 -1 14 15 15 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('14 0 18 0 -1 14 15 15 15 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('14 18 -1 14 15 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('14 18 0 -1 14 15 15 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('14 1 -1 14 15 -1 4 2');
+INSERT INTO us_rules (rule) VALUES ('1 24 -1 0 0 -1 4 15');
+INSERT INTO us_rules (rule) VALUES ('14 24 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('24 24 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('24 24 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('24 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('24 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('24 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('24 1 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('22 24 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('22 24 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('22 24 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('22 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('22 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('22 1 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 24 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 13 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 24 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 18 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 18 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 18 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 1 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 1 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('2 24 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('2 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('2 0 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('2 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('2 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('2 1 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 13 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 24 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 24 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 24 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 24 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 22 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 0 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 0 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 0 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 18 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('1 2 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 -1 0 0 0 -1 4 15');
+INSERT INTO us_rules (rule) VALUES ('0 14 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 24 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 24 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 24 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 24 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 24 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 24 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 22 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 22 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 22 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 22 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 13 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 2 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 2 0 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 2 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 2 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 2 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 13 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 22 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 0 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 0 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 0 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 1 2 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 -1 0 0 0 0 -1 4 15');
+INSERT INTO us_rules (rule) VALUES ('0 18 14 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 22 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 13 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 18 1 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 2 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 13 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 22 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 22 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 0 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 0 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 1 2 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 -1 0 0 0 0 -1 4 15');
+INSERT INTO us_rules (rule) VALUES ('0 25 14 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 22 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 13 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 18 1 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 2 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 13 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 22 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 22 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 0 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 0 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 1 2 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 24 -1 0 0 0 0 -1 4 15');
+INSERT INTO us_rules (rule) VALUES ('18 0 14 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 24 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 24 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 24 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 22 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 22 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 22 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 22 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 22 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 22 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 13 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 18 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 18 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 1 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 2 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 13 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 24 22 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 24 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 22 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 0 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 0 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 1 2 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('19 -1 0 -1 4 2');
+INSERT INTO us_rules (rule) VALUES ('19 1 -1 0 0 -1 4 6');
+INSERT INTO us_rules (rule) VALUES ('19 24 1 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('19 24 1 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('19 23 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('19 0 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('19 0 24 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('19 0 1 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('19 18 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('19 2 0 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('19 1 0 -1 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 19 -1 0 0 -1 4 2');
+INSERT INTO us_rules (rule) VALUES ('0 19 1 -1 0 0 0 -1 4 6');
+INSERT INTO us_rules (rule) VALUES ('0 19 24 1 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 19 24 1 0 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 19 23 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 19 0 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 19 0 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 19 0 1 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 19 18 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 19 2 0 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 19 1 0 -1 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 -1 0 0 0 -1 4 2');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 1 -1 0 0 0 0 -1 4 6');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 24 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 24 1 0 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 23 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 0 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 18 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 2 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 18 19 1 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 -1 0 0 0 -1 4 2');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 1 -1 0 0 0 0 -1 4 6');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 24 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 24 1 0 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 23 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 0 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 18 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 2 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('0 25 19 1 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 -1 0 0 0 -1 4 2');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 1 -1 0 0 0 0 -1 4 6');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 24 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 24 1 0 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 23 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 0 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 18 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 2 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('18 0 19 1 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO us_rules (rule) VALUES ('23 -1 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('0 -1 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('18 -1 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('18 0 -1 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('18 18 -1 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 -1 17 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('21 -1 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('21 0 -1 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('25 -1 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('0 21 -1 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('0 0 -1 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('0 18 -1 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('0 1 -1 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('1 -1 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 -1 16 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 23 -1 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('16 0 -1 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('16 18 -1 16 17 -1 4 11');
+INSERT INTO us_rules (rule) VALUES ('16 18 0 -1 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 18 18 -1 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 18 0 18 -1 16 17 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 21 -1 16 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 21 0 -1 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 25 -1 16 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 0 21 -1 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 0 0 -1 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 0 18 -1 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 0 1 -1 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 1 -1 16 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 -1 16 16 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 23 -1 16 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 -1 16 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 -1 16 16 17 -1 4 11');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 0 -1 16 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 18 -1 16 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 0 18 -1 16 16 17 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 21 -1 16 16 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 21 0 -1 16 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 25 -1 16 16 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 21 -1 16 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 0 -1 16 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 18 -1 16 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 1 -1 16 16 17 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('16 16 1 -1 16 16 17 -1 4 7');
+INSERT INTO us_rules (rule) VALUES ('17 -1 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 23 -1 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 0 -1 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 18 -1 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 18 0 -1 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 18 18 -1 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 18 0 18 -1 17 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 21 -1 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 21 0 -1 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 25 -1 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 0 21 -1 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 0 0 -1 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 0 18 -1 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 0 1 -1 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 1 -1 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 -1 17 16 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 23 -1 17 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 0 -1 17 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 18 -1 17 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 18 0 -1 17 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 18 18 -1 17 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 18 0 18 -1 17 16 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 21 -1 17 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 21 0 -1 17 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 25 -1 17 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 0 21 -1 17 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 0 0 -1 17 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 0 18 -1 17 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 0 1 -1 17 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 1 -1 17 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 -1 17 16 16 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 23 -1 17 16 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 0 -1 17 16 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 18 -1 17 16 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 18 0 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 18 18 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 18 0 18 -1 17 16 16 17 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 21 -1 17 16 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 21 0 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 25 -1 17 16 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 0 21 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 0 0 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 0 18 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 0 1 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('17 16 16 1 -1 17 16 16 17 -1 4 17');
+INSERT INTO us_rules (rule) VALUES ('15 17 -1 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 23 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 0 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 18 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 18 0 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 18 18 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 18 0 18 -1 17 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 21 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 21 0 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 25 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 0 21 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 0 0 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 0 18 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 0 1 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 1 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 -1 17 17 16 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 23 -1 17 17 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 0 -1 17 17 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 18 -1 17 17 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 18 0 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 18 18 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 18 0 18 -1 17 17 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 21 -1 17 17 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 21 0 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 25 -1 17 17 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 0 21 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 0 0 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 0 18 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 0 1 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 1 -1 17 17 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 -1 17 17 16 16 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 23 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 0 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 18 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 18 0 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 18 18 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 18 0 18 -1 17 17 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 21 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 21 0 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 25 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 0 21 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 0 0 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 0 18 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 0 1 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 16 16 1 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('17 17 -1 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 23 -1 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 0 -1 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 18 -1 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 18 0 -1 17 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 18 18 -1 17 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 18 0 18 -1 17 17 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 21 -1 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 21 0 -1 17 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 25 -1 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 0 21 -1 17 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 0 0 -1 17 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 0 18 -1 17 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 0 1 -1 17 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 1 -1 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 -1 17 17 16 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 23 -1 17 17 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 0 -1 17 17 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 18 -1 17 17 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 18 0 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 18 18 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 18 0 18 -1 17 17 16 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 21 -1 17 17 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 21 0 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 25 -1 17 17 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 0 21 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 0 0 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 0 18 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 0 1 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 1 -1 17 17 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 -1 17 17 16 16 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 23 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 0 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 18 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 18 0 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 18 18 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 18 0 18 -1 17 17 16 16 17 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 21 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 21 0 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 25 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 0 21 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 0 0 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 0 18 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 0 1 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 17 16 16 1 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO us_rules (rule) VALUES ('17 -1 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('15 17 -1 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('17 17 -1 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('23 17 -1 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('23 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('23 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 17 -1 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 17 -1 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 0 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 0 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 0 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 18 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 18 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 18 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 15 17 -1 17 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('18 0 18 17 17 -1 17 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('21 17 -1 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('21 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('21 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('21 0 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('21 0 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('21 0 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('25 17 -1 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('25 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('25 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 21 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 21 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 21 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 0 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 0 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 0 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 18 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 1 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 1 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('0 1 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('1 17 -1 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('1 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('1 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 17 -1 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 15 17 -1 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 17 17 -1 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 23 17 -1 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 23 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 23 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 17 -1 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 17 -1 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 0 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 0 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 0 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 18 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 18 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 18 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 0 18 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 0 18 15 17 -1 16 17 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 18 0 18 17 17 -1 16 17 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 21 17 -1 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 21 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 21 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 21 0 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 21 0 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 21 0 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 25 17 -1 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 25 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 25 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 21 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 21 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 21 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 0 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 0 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 0 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 18 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 18 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 18 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 1 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 1 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 0 1 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 1 17 -1 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 1 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 1 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 17 -1 16 16 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 15 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 17 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 23 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 23 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 23 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 0 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 0 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 0 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 18 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 18 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 18 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 0 18 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 0 18 15 17 -1 16 16 17 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 18 0 18 17 17 -1 16 16 17 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 21 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 21 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 21 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 21 0 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 21 0 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 21 0 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 25 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 25 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 25 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 21 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 21 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 21 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 0 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 0 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 0 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 18 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 18 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 18 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 1 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 1 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 0 1 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 1 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 1 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('16 16 1 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO us_rules (rule) VALUES ('12 -1 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('12 23 23 13 13 -1 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('12 0 -1 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('12 0 0 -1 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('12 27 -1 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('12 27 26 -1 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('12 28 -1 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('12 28 29 -1 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('23 23 13 13 -1 -1 0 14');
+INSERT INTO us_rules (rule) VALUES ('23 23 13 13 12 -1 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('0 -1 13 -1 0 14');
+INSERT INTO us_rules (rule) VALUES ('0 12 -1 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('0 0 -1 13 13 -1 0 14');
+INSERT INTO us_rules (rule) VALUES ('0 0 12 -1 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('27 -1 13 -1 0 14');
+INSERT INTO us_rules (rule) VALUES ('27 12 -1 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('27 26 -1 13 13 -1 0 14');
+INSERT INTO us_rules (rule) VALUES ('27 26 12 -1 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('28 -1 13 -1 0 14');
+INSERT INTO us_rules (rule) VALUES ('28 12 -1 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('28 29 -1 13 13 -1 0 14');
+INSERT INTO us_rules (rule) VALUES ('28 29 12 -1 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('11 -1 11 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('11 23 23 13 13 -1 11 -1 0 7');
+INSERT INTO us_rules (rule) VALUES ('11 0 -1 11 13 -1 0 7');
+INSERT INTO us_rules (rule) VALUES ('11 0 0 -1 11 13 13 -1 0 7');
+INSERT INTO us_rules (rule) VALUES ('11 27 -1 11 13 -1 0 7');
+INSERT INTO us_rules (rule) VALUES ('11 27 26 -1 11 13 13 -1 0 7');
+INSERT INTO us_rules (rule) VALUES ('11 28 -1 11 13 -1 0 7');
+INSERT INTO us_rules (rule) VALUES ('11 28 29 -1 11 13 13 -1 0 7');
+INSERT INTO us_rules (rule) VALUES ('10 -1 10 -1 0 5');
+INSERT INTO us_rules (rule) VALUES ('10 12 -1 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 12 23 23 13 13 -1 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 12 0 -1 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 12 0 0 -1 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 12 27 -1 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 12 27 26 -1 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 12 28 -1 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 12 28 29 -1 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 23 23 13 13 -1 10 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('10 23 23 13 13 12 -1 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 0 -1 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('10 0 12 -1 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 0 0 -1 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('10 0 0 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 27 -1 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('10 27 12 -1 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 27 26 -1 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('10 27 26 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 28 -1 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('10 28 12 -1 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 28 29 -1 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('10 28 29 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('10 11 -1 10 11 -1 0 13');
+INSERT INTO us_rules (rule) VALUES ('10 11 12 -1 10 11 12 -1 0 15');
+INSERT INTO us_rules (rule) VALUES ('10 11 12 23 23 13 13 -1 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 12 0 -1 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 12 0 0 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 12 27 -1 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 12 27 26 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 12 28 -1 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 12 28 29 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 23 23 13 13 -1 10 11 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('10 11 23 23 13 13 12 -1 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 0 -1 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('10 11 0 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 0 0 -1 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('10 11 0 0 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 27 -1 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('10 11 27 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 27 26 -1 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('10 11 27 26 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 28 -1 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('10 11 28 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('10 11 28 29 -1 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('10 11 28 29 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 -1 10 -1 0 5');
+INSERT INTO us_rules (rule) VALUES ('1 12 -1 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 12 23 23 13 13 -1 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 12 0 -1 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 12 0 0 -1 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 12 27 -1 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 12 27 26 -1 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 12 28 -1 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 12 28 29 -1 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 23 23 13 13 -1 10 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 23 23 13 13 12 -1 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 0 -1 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 0 12 -1 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 0 0 -1 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 0 0 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 27 -1 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 27 12 -1 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 27 26 -1 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 27 26 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 28 -1 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 28 12 -1 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 28 29 -1 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 28 29 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 11 -1 10 11 -1 0 13');
+INSERT INTO us_rules (rule) VALUES ('1 11 12 -1 10 11 12 -1 0 15');
+INSERT INTO us_rules (rule) VALUES ('1 11 12 23 23 13 13 -1 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 12 0 -1 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 12 0 0 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 12 27 -1 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 12 27 26 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 12 28 -1 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 12 28 29 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 23 23 13 13 -1 10 11 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 11 23 23 13 13 12 -1 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 0 -1 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 11 0 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 0 0 -1 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 11 0 0 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 27 -1 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 11 27 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 27 26 -1 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 11 27 26 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 28 -1 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 11 28 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 11 28 29 -1 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 11 28 29 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 -1 10 10 -1 0 5');
+INSERT INTO us_rules (rule) VALUES ('22 1 12 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 12 23 23 13 13 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 12 0 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 12 0 0 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 12 27 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 12 27 26 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 12 28 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 12 28 29 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 23 23 13 13 -1 10 10 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('22 1 23 23 13 13 12 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 0 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('22 1 0 0 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 27 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('22 1 27 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 27 26 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('22 1 27 26 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 28 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('22 1 28 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 28 29 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('22 1 28 29 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 -1 10 10 11 -1 0 13');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 12 -1 10 10 11 12 -1 0 15');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 12 0 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 12 27 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 12 28 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 23 23 13 13 -1 10 10 11 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 0 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 0 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 0 0 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 27 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 27 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 27 26 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 28 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 28 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 28 29 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('22 1 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 -1 10 10 -1 0 5');
+INSERT INTO us_rules (rule) VALUES ('1 22 12 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 12 23 23 13 13 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 12 0 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 12 0 0 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 12 27 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 12 27 26 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 12 28 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 12 28 29 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 23 23 13 13 -1 10 10 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 22 23 23 13 13 12 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 0 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 22 0 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 0 0 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 22 0 0 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 27 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 22 27 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 27 26 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 22 27 26 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 28 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 22 28 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 28 29 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 22 28 29 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 -1 10 10 11 -1 0 13');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 12 -1 10 10 11 12 -1 0 15');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 12 0 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 12 27 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 12 28 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 23 23 13 13 -1 10 10 11 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 0 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 0 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 0 0 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 27 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 27 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 27 26 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 28 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 28 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 28 29 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 22 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 -1 10 10 -1 0 5');
+INSERT INTO us_rules (rule) VALUES ('2 1 12 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 12 23 23 13 13 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 12 0 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 12 0 0 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 12 27 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 12 27 26 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 12 28 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 12 28 29 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 23 23 13 13 -1 10 10 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 23 23 13 13 12 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 0 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 0 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 0 0 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 0 0 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 27 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 27 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 27 26 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 27 26 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 28 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 28 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 28 29 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('2 1 28 29 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 -1 10 10 11 -1 0 13');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 12 -1 10 10 11 12 -1 0 15');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 12 0 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 12 27 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 12 28 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 23 23 13 13 -1 10 10 11 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 0 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 0 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 0 0 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 27 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 27 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 27 26 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 28 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 28 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 28 29 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('2 1 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 -1 10 10 -1 0 5');
+INSERT INTO us_rules (rule) VALUES ('1 2 12 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 12 23 23 13 13 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 12 0 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 12 0 0 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 12 27 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 12 27 26 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 12 28 -1 10 10 12 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 12 28 29 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 23 23 13 13 -1 10 10 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 2 23 23 13 13 12 -1 10 10 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 0 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 2 0 0 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 27 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 2 27 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 27 26 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 2 27 26 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 28 -1 10 10 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 2 28 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 28 29 -1 10 10 13 13 -1 0 9');
+INSERT INTO us_rules (rule) VALUES ('1 2 28 29 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 -1 10 10 11 -1 0 13');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 12 -1 10 10 11 12 -1 0 15');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 12 0 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 12 27 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 12 28 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 23 23 13 13 -1 10 10 11 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 0 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 0 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 0 0 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 27 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 27 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 27 26 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 28 -1 10 10 11 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 28 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 28 29 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO us_rules (rule) VALUES ('1 2 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO us_rules (rule) VALUES ('6 0 -1 4 5 -1 2 17');
+INSERT INTO us_rules (rule) VALUES ('6 0 3 -1 4 5 3 -1 2 17');
+INSERT INTO us_rules (rule) VALUES ('0 6 0 -1 1 4 5 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 6 0 3 -1 1 4 5 3 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('6 -1 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('6 3 -1 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 6 -1 2 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('22 6 3 -1 2 5 3 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('3 6 -1 3 5 -1 2 9');
+INSERT INTO us_rules (rule) VALUES ('0 6 -1 4 5 -1 1 9');
+INSERT INTO us_rules (rule) VALUES ('0 6 3 -1 4 5 3 -1 1 9');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 -1 4 2 5 -1 1 9');
+INSERT INTO us_rules (rule) VALUES ('0 22 6 3 -1 4 2 5 3 -1 1 9');
+INSERT INTO us_rules (rule) VALUES ('0 3 6 -1 4 3 5 -1 1 9');
+INSERT INTO us_rules (rule) VALUES ('0 3 1 2 -1 1 3 5 6 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 3 1 2 22 -1 1 3 5 6 7 -1 1 17');
+INSERT INTO us_rules (rule) VALUES ('0 1 6 -1 1 5 5 -1 1 9');
+INSERT INTO us_rules (rule) VALUES ('-1');
+
+
+-- needed so entries added by users will default to custom
+ALTER TABLE us_rules ALTER COLUMN is_custom SET DEFAULT true;
diff --git a/extensions/address_standardizer/usps-st-city-adds.txt b/extensions/address_standardizer/usps-st-city-adds.txt
new file mode 100644
index 0000000..5af9ab1
--- /dev/null
+++ b/extensions/address_standardizer/usps-st-city-adds.txt
@@ -0,0 +1,11 @@
+NY	NY
+NY	N Y
+NY	NYC
+NY	N Y C
+NY	NEW YORK
+NY	NY
+NY	NY
+NY	NY
+NY	MANHATTAN
+NY	QUEENS
+NY	THE BRONX
diff --git a/extensions/address_standardizer/usps-st-city-orig.txt b/extensions/address_standardizer/usps-st-city-orig.txt
new file mode 100644
index 0000000..01158c1
--- /dev/null
+++ b/extensions/address_standardizer/usps-st-city-orig.txt
@@ -0,0 +1,38469 @@
+AK	ADAK
+AK	AKHIOK
+AK	AKIACHAK
+AK	AKIAK
+AK	AKUTAN
+AK	ALAKANUK
+AK	ALEKNAGIK
+AK	ALLAKAKET
+AK	AMBLER
+AK	ANAKTUVUK
+AK	ANAKTUVUK PASS
+AK	ANCHORAGE
+AK	ANCHOR POINT
+AK	ANDERSON
+AK	ANGOON
+AK	ANIAK
+AK	ANVIK
+AK	ARCTIC VILLAGE
+AK	ARCTIC VLG
+AK	ATKA
+AK	ATMAUTLUAK
+AK	ATQASUK
+AK	AUKE BAY
+AK	BADGER
+AK	BARROW
+AK	BEAVER
+AK	BETHEL
+AK	BETTLES FIELD
+AK	BIG LAKE
+AK	BREVIG MISSION
+AK	BREVIG MSN
+AK	BUCKLAND
+AK	CANTWELL
+AK	CENTRAL
+AK	CHALKYITSIK
+AK	CHEFORNAK
+AK	CHENEGA BAY
+AK	CHEVAK
+AK	CHICKALOON
+AK	CHICKEN
+AK	CHIGNIK
+AK	CHIGNIK LAGN
+AK	CHIGNIK LAGOON
+AK	CHIGNIK LAKE
+AK	CHINIAK
+AK	CHITINA
+AK	CHUATHBALUK
+AK	CHUGIAK
+AK	CIRCLE
+AK	CLAM GULCH
+AK	CLARKS POINT
+AK	CLEAR
+AK	COFFMAN COVE
+AK	COLD BAY
+AK	COLDFOOT
+AK	COOPER LANDING
+AK	COOPER LNDG
+AK	COPPER CENTER
+AK	CORDOVA
+AK	CRAIG
+AK	CROOKED CREEK
+AK	DEERING
+AK	DELTA JCT
+AK	DELTA JUNCTION
+AK	DENALI NATIONAL PARK
+AK	DENALI PARK
+AK	DILLINGHAM
+AK	DIOMEDE
+AK	DOT LAKE
+AK	DOUGLAS
+AK	DUTCH HARBOR
+AK	EAGLE
+AK	EAGLE RIVER
+AK	EDNA BAY
+AK	EEK
+AK	EGEGIK
+AK	EIELSON AFB
+AK	EKWOK
+AK	ELFIN COVE
+AK	ELIM
+AK	ELMENDORF AFB
+AK	EMMONAK
+AK	ENGLISH BAY
+AK	ESTER
+AK	FAIRBANKS
+AK	FALSE PASS
+AK	FORT GREELY
+AK	FORT RICHARDSON
+AK	FORT WAINWRIGHT
+AK	FORT YUKON
+AK	FRITZ CREEK
+AK	FT RICHARDSON
+AK	FT WAINWRIGHT
+AK	GAKONA
+AK	GALENA
+AK	GAMBELL
+AK	GIRDWOOD
+AK	GLENNALLEN
+AK	GOLOVIN
+AK	GOODNEWS BAY
+AK	GRAYLING
+AK	GUSTAVUS
+AK	HAINES
+AK	HALIBUT COVE
+AK	HEALY
+AK	HOLY CROSS
+AK	HOMER
+AK	HOONAH
+AK	HOOPER BAY
+AK	HOPE
+AK	HOUSTON
+AK	HUGHES
+AK	HUSLIA
+AK	HYDABURG
+AK	HYDER
+AK	IGIUGIG
+AK	ILIAMNA
+AK	INDIAN
+AK	JUNEAU
+AK	KAKE
+AK	KAKTOVIK
+AK	KALSKAG
+AK	KALTAG
+AK	KARLUK
+AK	KASAAN
+AK	KASIGLUK
+AK	KASILOF
+AK	KENAI
+AK	KETCHIKAN
+AK	KIANA
+AK	KING COVE
+AK	KING SALMON
+AK	KIPNUK
+AK	KIVALINA
+AK	KLAWOCK
+AK	KOBUK
+AK	KODIAK
+AK	KOKHANOK
+AK	KOLIGANEK
+AK	KONGIGANAK
+AK	KOTLIK
+AK	KOTZEBUE
+AK	KOYUK
+AK	KOYUKUK
+AK	KWETHLUK
+AK	KWIGILLINGOK
+AK	LAKE MINCHUMINA
+AK	LARSEN BAY
+AK	LEVELOCK
+AK	LITTLE DIOMEDE
+AK	LK MINCHUMINA
+AK	LOWER KALSKAG
+AK	LTL DIOMEDE
+AK	MANLEY HOT SPRINGS
+AK	MANLEY SPGS
+AK	MANOKOTAK
+AK	MARSHALL
+AK	MC GRATH
+AK	MEKORYUK
+AK	MENTASTA LAKE
+AK	METLAKATLA
+AK	MEYERS CHUCK
+AK	MIERS LAKE
+AK	MINTO
+AK	MOOSE PASS
+AK	MOUNTAIN VILLAGE
+AK	MOUNTAIN VLG
+AK	NAKNEK
+AK	NANWALEK
+AK	NAPAKIAK
+AK	NAPASKIAK
+AK	NAUKATI BAY
+AK	NELSON LAGOON
+AK	NENANA
+AK	NEW STUYAHOK
+AK	NEWTOK
+AK	NIGHTMUTE
+AK	NIKISKI
+AK	NIKOLAEVSK
+AK	NIKOLAI
+AK	NIKOLSKI
+AK	NINILCHIK
+AK	NOATAK
+AK	NOME
+AK	NONDALTON
+AK	NOORVIK
+AK	NORTH POLE
+AK	NORTHWAY
+AK	NUIQSUT
+AK	NULATO
+AK	NUNAM IQUA
+AK	NUNAPITCHUK
+AK	OLD HARBOR
+AK	OUZINKIE
+AK	PALMER
+AK	PEDRO BAY
+AK	PELICAN
+AK	PERRYVILLE
+AK	PETERSBURG
+AK	PILOT POINT
+AK	PILOT STATION
+AK	PLATINUM
+AK	POINT BAKER
+AK	POINT HOPE
+AK	POINT LAY
+AK	PORT ALEXANDER
+AK	PORT ALSWORTH
+AK	PORT GRAHAM
+AK	PORT HEIDEN
+AK	PORT LIONS
+AK	PRT ALEXANDER
+AK	PRUDHOE BAY
+AK	QUINHAGAK
+AK	RAMPART
+AK	RED DEVIL
+AK	RUBY
+AK	RUSSIAN MISSION
+AK	RUSSIAN MSN
+AK	SAINT GEORGE ISLAND
+AK	SAINT MARYS
+AK	SAINT MICHAEL
+AK	SAINT PAUL ISLAND
+AK	SALCHA
+AK	SAND POINT
+AK	SAVOONGA
+AK	SCAMMON BAY
+AK	SELAWIK
+AK	SELDOVIA
+AK	SEWARD
+AK	SHAGELUK
+AK	SHAKTOOLIK
+AK	SHISHMAREF
+AK	SHUNGNAK
+AK	SITKA
+AK	SKAGWAY
+AK	SKWENTNA
+AK	SLANA
+AK	SLEETMUTE
+AK	SOLDOTNA
+AK	SOUTH NAKNEK
+AK	STEBBINS
+AK	STEESE
+AK	STERLING
+AK	STEVENS VILLAGE
+AK	STEVENS VLG
+AK	ST GEORGE IS
+AK	STONY RIVER
+AK	ST PAUL ISLE
+AK	SUTTON
+AK	TAKOTNA
+AK	TALKEETNA
+AK	TANACROSS
+AK	TANANA
+AK	TATITLEK
+AK	TELLER
+AK	TENAKEE SPGS
+AK	TENAKEE SPRINGS
+AK	THORNE BAY
+AK	TOGIAK
+AK	TOK
+AK	TOKSOOK BAY
+AK	TRAPPER CREEK
+AK	TULUKSAK
+AK	TUNTUTULIAK
+AK	TUNUNAK
+AK	TWIN HILLS
+AK	TWO RIVERS
+AK	TYONEK
+AK	UNALAKLEET
+AK	UNALASKA
+AK	VALDEZ
+AK	VENETIE
+AK	WAINWRIGHT
+AK	WALES
+AK	WARD COVE
+AK	WASILLA
+AK	WHITE MOUNTAIN
+AK	WHITE MTN
+AK	WHITTIER
+AK	WILLOW
+AK	WRANGELL
+AK	YAKUTAT
+AL	ABBEVILLE
+AL	ABERNANT
+AL	ACMAR
+AL	ADAMSVILLE
+AL	ADDISON
+AL	ADGER
+AL	AKRON
+AL	ALABASTER
+AL	ALBERTA
+AL	ALBERTVILLE
+AL	ALEXANDER CITY
+AL	ALEXANDRIA
+AL	ALEX CITY
+AL	ALICEVILLE
+AL	ALLEN
+AL	ALLGOOD
+AL	ALMA
+AL	ALPINE
+AL	ALTON
+AL	ALTOONA
+AL	ANDALUSIA
+AL	ANDERSON
+AL	ANNEMANIE
+AL	ANNISTON
+AL	ARAB
+AL	ARDMORE
+AL	ARITON
+AL	ARLEY
+AL	ARLINGTON
+AL	ASHFORD
+AL	ASHLAND
+AL	ASHVILLE
+AL	ATHENS
+AL	ATMORE
+AL	ATTALLA
+AL	AUBURN
+AL	AUBURN UNIV
+AL	AUBURN UNIVERSITY
+AL	AUTAUGAVILLE
+AL	AXIS
+AL	BAILEYTON
+AL	BAKERHILL
+AL	BANKS
+AL	BANKSTON
+AL	BAY MINETTE
+AL	BAYOU LABATRE
+AL	BAYOU LA BATRE
+AL	BEAR CREEK
+AL	BEATRICE
+AL	BEAVERTON
+AL	BELK
+AL	BELLAMY
+AL	BELLE MINA
+AL	BELLWOOD
+AL	BENTON
+AL	BERRY
+AL	BESSEMER
+AL	BIGBEE
+AL	BIG COVE
+AL	BILLINGSLEY
+AL	BIRMINGHAM
+AL	BLACK
+AL	BLOUNTSVILLE
+AL	BLUE MOUNTAIN
+AL	BLUFF PARK
+AL	BOAZ
+AL	BOLIGEE
+AL	BOLINGER
+AL	BON AIR
+AL	BON SECOUR
+AL	BOOTH
+AL	BORDEN SPRINGS
+AL	BOYKIN
+AL	BRANCHVILLE
+AL	BRANTLEY
+AL	BRDN SPRNGS
+AL	BREMEN
+AL	BRENT
+AL	BREWTON
+AL	BRIDGEPORT
+AL	BRIERFIELD
+AL	BRIGHTON
+AL	BRILLIANT
+AL	BROOKLEY FIELD
+AL	BROOKLEY FLD
+AL	BROOKLYN
+AL	BROOKSIDE
+AL	BROOKWOOD
+AL	BROWNSBORO
+AL	BRUNDIDGE
+AL	BRYANT
+AL	BUCKS
+AL	BUHL
+AL	BURKVILLE
+AL	BURNT CORN
+AL	BURNWELL
+AL	BUTLER
+AL	BYNUM
+AL	CAHABA HEIGHTS
+AL	CAHABA HTS
+AL	CALERA
+AL	CALVERT
+AL	CAMDEN
+AL	CAMPBELL
+AL	CAMP HILL
+AL	CAPSHAW
+AL	CARBON HILL
+AL	CARDIFF
+AL	CARLTON
+AL	CARROLLTON
+AL	CASTLEBERRY
+AL	CATHERINE
+AL	CECIL
+AL	CEDAR BLUFF
+AL	CENTER POINT
+AL	CENTRE
+AL	CENTREVILLE
+AL	CHANCELLOR
+AL	CHAPMAN
+AL	CHATOM
+AL	CHELSEA
+AL	CHEROKEE
+AL	CHICKASAW
+AL	CHILDERSBURG
+AL	CHOCCOLOCCO
+AL	CHUNCHULA
+AL	CITRONELLE
+AL	CLANTON
+AL	CLAY
+AL	CLAYTON
+AL	CLEVELAND
+AL	CLINTON
+AL	CLIO
+AL	CLOPTON
+AL	CLOVERDALE
+AL	COALBURG
+AL	COALING
+AL	COATOPA
+AL	CODEN
+AL	COFFEE SPGS
+AL	COFFEE SPRINGS
+AL	COFFEEVILLE
+AL	COKER
+AL	COLLINSVILLE
+AL	COLUMBIA
+AL	COLUMBIANA
+AL	COOK SPRINGS
+AL	COOSADA
+AL	COOSA PINES
+AL	CORDOVA
+AL	COTTONDALE
+AL	COTTONTON
+AL	COTTONWOOD
+AL	COURTLAND
+AL	COWARTS
+AL	COY
+AL	CRAGFORD
+AL	CRANE HILL
+AL	CREOLA
+AL	CRESTLINE HEIGHTS
+AL	CRESTLINE HTS
+AL	CROPWELL
+AL	CROSSVILLE
+AL	CUBA
+AL	CULLMAN
+AL	CUSSETA
+AL	CYPRESS
+AL	DADEVILLE
+AL	DALEVILLE
+AL	DANVILLE
+AL	DAPHNE
+AL	DAUPHIN ISLAND
+AL	DAUPHIN ISLND
+AL	DAVISTON
+AL	DAWSON
+AL	DAYTON
+AL	DE ARMANVILLE
+AL	DEATSVILLE
+AL	DECATUR
+AL	DEER PARK
+AL	DELMAR
+AL	DELTA
+AL	DEMOPOLIS
+AL	DETROIT
+AL	DICKINSON
+AL	DIXIANA
+AL	DIXONS MILLS
+AL	DOCENA
+AL	DOLOMITE
+AL	DORA
+AL	DOTHAN
+AL	DOUBLE SPGS
+AL	DOUBLE SPRINGS
+AL	DOUGLAS
+AL	DOZIER
+AL	DUNCANVILLE
+AL	DUTTON
+AL	EASTABOGA
+AL	EAST BREWTON
+AL	EAST TALLASSEE
+AL	ECHOLA
+AL	ECLECTIC
+AL	EDWARDSVILLE
+AL	EIGHT MILE
+AL	ELBA
+AL	ELBERTA
+AL	ELDRIDGE
+AL	ELKMONT
+AL	ELMORE
+AL	ELROD
+AL	EMELLE
+AL	EMPIRE
+AL	ENSLEY
+AL	ENTERPRISE
+AL	EPES
+AL	EQUALITY
+AL	ESTILLFORK
+AL	E TALLASSEE
+AL	ETHELSVILLE
+AL	EUFAULA
+AL	EUTAW
+AL	EVA
+AL	EVERGREEN
+AL	EXCEL
+AL	FACKLER
+AL	FAIRFIELD
+AL	FAIRHOPE
+AL	FALKVILLE
+AL	FAUNSDALE
+AL	FAYETTE
+AL	FITZPATRICK
+AL	FIVE POINTS
+AL	FLAT ROCK
+AL	FLOMATON
+AL	FLORALA
+AL	FLORENCE
+AL	FOLEY
+AL	FORESTDALE
+AL	FOREST HOME
+AL	FORKLAND
+AL	FORT DAVIS
+AL	FORT DEPOSIT
+AL	FORT MC CLELLAN
+AL	FORT MITCHELL
+AL	FORT PAYNE
+AL	FORT RUCKER
+AL	FOSTERS
+AL	FRANKLIN
+AL	FRANKVILLE
+AL	FRISCO CITY
+AL	FRUITDALE
+AL	FRUITHURST
+AL	FT MCCLELLAN
+AL	FT MC CLELLAN
+AL	FULTON
+AL	FULTONDALE
+AL	FURMAN
+AL	FYFFE
+AL	GADSDEN
+AL	GAINESTOWN
+AL	GAINESVILLE
+AL	GALLANT
+AL	GALLION
+AL	GANTT
+AL	GARDEN CITY
+AL	GARDENDALE
+AL	GAYLESVILLE
+AL	GENEVA
+AL	GEORGIANA
+AL	GERALDINE
+AL	GILBERTOWN
+AL	GLEN ALLEN
+AL	GLENCOE
+AL	GLENWOOD
+AL	GOODSPRINGS
+AL	GOODWATER
+AL	GOODWAY
+AL	GORDO
+AL	GORDON
+AL	GOSHEN
+AL	GRADY
+AL	GRAHAM
+AL	GRAND BAY
+AL	GRANT
+AL	GRAYSVILLE
+AL	GREEN POND
+AL	GREENSBORO
+AL	GREENVILLE
+AL	GROVE HILL
+AL	GROVEOAK
+AL	GUIN
+AL	GULF SHORES
+AL	GUNTERSVILLE
+AL	GURLEY
+AL	HACKLEBURG
+AL	HALEYVILLE
+AL	HAMILTON
+AL	HAMMONDVILLE
+AL	HAMPTON COVE
+AL	HANCEVILLE
+AL	HARDAWAY
+AL	HARPERSVILLE
+AL	HARTFORD
+AL	HARTSELLE
+AL	HARVEST
+AL	HATCHECHUBBEE
+AL	HAVANA
+AL	HAYDEN
+AL	HAYNEVILLE
+AL	HAZEL GREEN
+AL	HEADLAND
+AL	HEFLIN
+AL	HELENA
+AL	HENAGAR
+AL	HIGDON
+AL	HIGHLAND HOME
+AL	HIGHLAND LAKE
+AL	HILLSBORO
+AL	HODGES
+AL	HOKES BLUFF
+AL	HOLLINS
+AL	HOLLY POND
+AL	HOLLYTREE
+AL	HOLLYWOOD
+AL	HOLT
+AL	HOLY TRINITY
+AL	HOMEWOOD
+AL	HONORAVILLE
+AL	HOOVER
+AL	HOPE HULL
+AL	HORTON
+AL	HOUSTON
+AL	HUEYTOWN
+AL	HUNTSVILLE
+AL	HURTSBORO
+AL	HUXFORD
+AL	HYTOP
+AL	IDER
+AL	INDIAN SPGS
+AL	INDIAN SPRINGS
+AL	INDIAN SPRINGS VILLAGE
+AL	INDN SPGS VLG
+AL	IRONDALE
+AL	IRVINGTON
+AL	JACHIN
+AL	JACK
+AL	JACKSON
+AL	JACKSONS GAP
+AL	JACKSONVILLE
+AL	JASPER
+AL	JEFFERSON
+AL	JEMISON
+AL	JONES
+AL	JOPPA
+AL	KANSAS
+AL	KELLERMAN
+AL	KELLYTON
+AL	KENNEDY
+AL	KENT
+AL	KILLEN
+AL	KIMBERLY
+AL	KINSEY
+AL	KINSTON
+AL	KNOXVILLE
+AL	LACEYS SPRING
+AL	LAFAYETTE
+AL	LAKE VIEW
+AL	LANETT
+AL	LANGSTON
+AL	LAPINE
+AL	LAVACA
+AL	LAWLEY
+AL	LEEDS
+AL	LEESBURG
+AL	LEIGHTON
+AL	LENOX
+AL	LEROY
+AL	LESTER
+AL	LETOHATCHEE
+AL	LEXINGTON
+AL	LILLIAN
+AL	LINCOLN
+AL	LINDEN
+AL	LINEVILLE
+AL	LISMAN
+AL	LITTLE RIVER
+AL	LIVINGSTON
+AL	LOACHAPOKA
+AL	LOCKHART
+AL	LOCUST FORK
+AL	LOGAN
+AL	LOUISVILLE
+AL	LOWER PEACH TREE
+AL	LOWNDESBORO
+AL	LOW PEACH TRE
+AL	LOXLEY
+AL	LUVERNE
+AL	LWR PCH TREE
+AL	LYNN
+AL	MADISON
+AL	MAFB GUN ANNX
+AL	MAGAZINE
+AL	MAGNOLIA
+AL	MAGNOLIA SPGS
+AL	MAGNOLIA SPRINGS
+AL	MALCOLM
+AL	MALVERN
+AL	MAPLESVILLE
+AL	MARBURY
+AL	MARGARET
+AL	MARION
+AL	MARION JCT
+AL	MARION JUNCTION
+AL	MATHEWS
+AL	MAXWELL AFB
+AL	MAXWELL AFB GUNTER ANNEX
+AL	MAYLENE
+AL	MC CALLA
+AL	MCCULLOUGH
+AL	MC CULLOUGH
+AL	MC INTOSH
+AL	MCKENZIE
+AL	MC KENZIE
+AL	MC SHAN
+AL	MC WILLIAMS
+AL	MEADOWBROOK
+AL	MEGARGEL
+AL	MELVIN
+AL	MENTONE
+AL	MERIDIANVILLE
+AL	MEXIA
+AL	MIDFIELD
+AL	MIDLAND CITY
+AL	MIDWAY
+AL	MILLBROOK
+AL	MILLERVILLE
+AL	MILLPORT
+AL	MILLRY
+AL	MINTER
+AL	MOBILE
+AL	MONROEVILLE
+AL	MONTEVALLO
+AL	MONTGOMERY
+AL	MONTROSE
+AL	MOODY
+AL	MOORESVILLE
+AL	MORRIS
+AL	MORVIN
+AL	MOULTON
+AL	MOUNDVILLE
+AL	MOUNTAIN BRK
+AL	MOUNTAIN BROOK
+AL	MOUNT HOPE
+AL	MOUNT MEIGS
+AL	MOUNT OLIVE
+AL	MOUNT VERNON
+AL	MULGA
+AL	MUNFORD
+AL	MUSCADINE
+AL	MUSCLE SHOALS
+AL	MYRTLEWOOD
+AL	NANAFALIA
+AL	NATURAL BRG
+AL	NATURAL BRIDGE
+AL	NAUVOO
+AL	NEEDHAM
+AL	NEWBERN
+AL	NEW BROCKTON
+AL	NEW CASTLE
+AL	NEWELL
+AL	NEW HOPE
+AL	NEW MARKET
+AL	NEW SITE
+AL	NEWTON
+AL	NEWVILLE
+AL	NORMAL
+AL	NORTHPORT
+AL	NOTASULGA
+AL	OAK GROVE
+AL	OAK HILL
+AL	OAKMAN
+AL	ODENVILLE
+AL	OHATCHEE
+AL	ONEONTA
+AL	OPELIKA
+AL	OPP
+AL	ORANGE BEACH
+AL	ORRVILLE
+AL	OWENS CROSS ROADS
+AL	OWENS X RDS
+AL	OXFORD
+AL	OZARK
+AL	PAINT ROCK
+AL	PALMERDALE
+AL	PANOLA
+AL	PANSEY
+AL	PARRISH
+AL	PELHAM
+AL	PELL CITY
+AL	PENNINGTON
+AL	PERDIDO
+AL	PERDUE HILL
+AL	PEROTE
+AL	PETERMAN
+AL	PETERSON
+AL	PETREY
+AL	PHENIX CITY
+AL	PHIL CAMPBELL
+AL	PICKENSVILLE
+AL	PIEDMONT
+AL	PIKE ROAD
+AL	PINCKARD
+AL	PINE APPLE
+AL	PINE HILL
+AL	PINE LEVEL
+AL	PINSON
+AL	PISGAH
+AL	PITTSVIEW
+AL	PLANTERSVILLE
+AL	PLEASANT GROVE
+AL	PLEASANT GRV
+AL	POINT CLEAR
+AL	PRAIRIE
+AL	PRATTVILLE
+AL	PRICHARD
+AL	PRINCETON
+AL	QUINTON
+AL	RAGLAND
+AL	RAINBOW CITY
+AL	RAINSVILLE
+AL	RALPH
+AL	RAMER
+AL	RANBURNE
+AL	RANDOLPH
+AL	RANGE
+AL	RED BAY
+AL	RED LEVEL
+AL	REFORM
+AL	REHOBETH
+AL	REMLAP
+AL	REPTON
+AL	RIVER FALLS
+AL	RIVERSIDE
+AL	ROANOKE
+AL	ROBERTSDALE
+AL	ROCKFORD
+AL	ROGERSVILLE
+AL	ROSA
+AL	RUSSELLVILLE
+AL	RUTLEDGE
+AL	RYLAND
+AL	SAFFORD
+AL	SAGINAW
+AL	SAINT ELMO
+AL	SAINT STEPHENS
+AL	SALEM
+AL	SALIPTA
+AL	SAMANTHA
+AL	SAMSON
+AL	SANDROCK
+AL	SAND ROCK
+AL	SARALAND
+AL	SARDIS
+AL	SARDIS CITY
+AL	SATSUMA
+AL	SAWYERVILLE
+AL	SAYRE
+AL	SCOTTSBORO
+AL	SEALE
+AL	SECTION
+AL	SELMA
+AL	SEMINOLE
+AL	SEMMES
+AL	SHANNON
+AL	SHEFFIELD
+AL	SHELBY
+AL	SHOAL CREEK
+AL	SHORTER
+AL	SHORTERVILLE
+AL	SILAS
+AL	SILURIA
+AL	SILVERHILL
+AL	SIPSEY
+AL	SKIPPERVILLE
+AL	SLOCOMB
+AL	SMITHS
+AL	SMITHS STA
+AL	SMITHS STATION
+AL	SNEAD
+AL	SNOW HILL
+AL	SOMERVILLE
+AL	SOUTHSIDE
+AL	SPANISH FORT
+AL	SPRING GARDEN
+AL	SPRINGVILLE
+AL	SPROTT
+AL	SPRUCE PINE
+AL	STANTON
+AL	STAPLETON
+AL	STEELE
+AL	STERRETT
+AL	STEVENSON
+AL	STEWART
+AL	STOCKTON
+AL	ST STEPHENS
+AL	SULLIGENT
+AL	SUMITON
+AL	SUMMERDALE
+AL	SUNFLOWER
+AL	SWEET WATER
+AL	SYCAMORE
+AL	SYLACAUGA
+AL	SYLVANIA
+AL	SYLVAN SPGS
+AL	SYLVAN SPRINGS
+AL	TALLADEGA
+AL	TALLASSEE
+AL	TANNER
+AL	TAYLOR
+AL	THEODORE
+AL	THOMASTON
+AL	THOMASVILLE
+AL	THORSBY
+AL	TIBBIE
+AL	TITUS
+AL	TONEY
+AL	TOWN CREEK
+AL	TOWNLEY
+AL	TOXEY
+AL	TRAFFORD
+AL	TRENTON
+AL	TRIANA
+AL	TRINITY
+AL	TROY
+AL	TRUSSVILLE
+AL	TUSCALOOSA
+AL	TUSCUMBIA
+AL	TUSKEGEE
+AL	TUSKEGEE INST
+AL	TUSKEGEE INSTITUTE
+AL	TYLER
+AL	UNION GROVE
+AL	UNION SPRINGS
+AL	UNIONTOWN
+AL	URIAH
+AL	VALHERMOSO SP
+AL	VALHERMOSO SPG
+AL	VALHERMOSO SPRINGS
+AL	VALLEY
+AL	VALLEY GRANDE
+AL	VALLEY HEAD
+AL	VANCE
+AL	VANDIVER
+AL	VERBENA
+AL	VERNON
+AL	VESTAVIA
+AL	VESTAVIA HILLS
+AL	VESTAVIA HLS
+AL	VINA
+AL	VINCENT
+AL	VINEGAR BEND
+AL	VINEMONT
+AL	VLHRMOSO SPGS
+AL	VREDENBURGH
+AL	WADLEY
+AL	WAGARVILLE
+AL	WALKER SPGS
+AL	WALKER SPRINGS
+AL	WALNUT GROVE
+AL	WARD
+AL	WARRIOR
+AL	WATERLOO
+AL	WATSON
+AL	WATTSVILLE
+AL	WAVERLY
+AL	WEAVER
+AL	WEBB
+AL	WEDOWEE
+AL	WELLINGTON
+AL	WEOGUFKA
+AL	WEST BLOCTON
+AL	WEST GREENE
+AL	WESTOVER
+AL	WETUMPKA
+AL	WHATLEY
+AL	WHISTLER
+AL	WILMER
+AL	WILSONVILLE
+AL	WILTON
+AL	WINFIELD
+AL	WING
+AL	WOODLAND
+AL	WOODSTOCK
+AL	WOODVILLE
+AL	YORK
+AR	ADONA
+AR	ALCO
+AR	ALEXANDER
+AR	ALICIA
+AR	ALIX
+AR	ALLEENE
+AR	ALMA
+AR	ALMYRA
+AR	ALPENA
+AR	ALPINE
+AR	ALTHEIMER
+AR	ALTUS
+AR	AMAGON
+AR	AMITY
+AR	ANTOINE
+AR	APPLETON
+AR	ARKADELPHIA
+AR	ARKANSAS CITY
+AR	ARMOREL
+AR	ASHDOWN
+AR	ASH FLAT
+AR	ATKINS
+AR	AUBREY
+AR	AUGUSTA
+AR	AUSTIN
+AR	AVOCA
+AR	BALCH
+AR	BALD KNOB
+AR	BANKS
+AR	BARLING
+AR	BARTON
+AR	BASS
+AR	BASSETT
+AR	BATES
+AR	BATESVILLE
+AR	BAUXITE
+AR	BAY
+AR	BEARDEN
+AR	BEAVER
+AR	BEEBE
+AR	BEE BRANCH
+AR	BEECH GROVE
+AR	BEEDEVILLE
+AR	BEIRNE
+AR	BELLA VISTA
+AR	BELLEVILLE
+AR	BEN LOMOND
+AR	BENTON
+AR	BENTONVILLE
+AR	BERGMAN
+AR	BERRYVILLE
+AR	BETHEL HEIGHTS
+AR	BETHEL HTS
+AR	BEXAR
+AR	BIGELOW
+AR	BIG FLAT
+AR	BIGGERS
+AR	BIRDEYE
+AR	BISCOE
+AR	BISMARCK
+AR	BLACK OAK
+AR	BLACK ROCK
+AR	BLACKWELL
+AR	BLEVINS
+AR	BLUE MOUNTAIN
+AR	BLUFF CITY
+AR	BLUFFTON
+AR	BLYTHEVILLE
+AR	BOARD CAMP
+AR	BOLES
+AR	BONANZA
+AR	BONNERDALE
+AR	BONO
+AR	BOONEVILLE
+AR	BOSWELL
+AR	BRADFORD
+AR	BRADLEY
+AR	BRANCH
+AR	BRICKEYS
+AR	BRIGGSVILLE
+AR	BRINKLEY
+AR	BROCKWELL
+AR	BROOKLAND
+AR	BRUNO
+AR	BRYANT
+AR	BUCKNER
+AR	BUCKVILLE
+AR	BULL SHOALS
+AR	BURDETTE
+AR	BUSCH
+AR	CABOT
+AR	CADDO GAP
+AR	CADDO VALLEY
+AR	CALAMINE
+AR	CALDWELL
+AR	CALE
+AR	CALICO ROCK
+AR	CALION
+AR	CAMDEN
+AR	CAMMACK VILLAGE
+AR	CAMMACK VLG
+AR	CAMP
+AR	CAMP ROBINSON
+AR	CANEHILL
+AR	CARAWAY
+AR	CARLISLE
+AR	CARTHAGE
+AR	CASA
+AR	CASH
+AR	CASSCOE
+AR	CAVE CITY
+AR	CAVE SPRINGS
+AR	CECIL
+AR	CEDARVILLE
+AR	CENTER RIDGE
+AR	CENTERTON
+AR	CENTERVILLE
+AR	CENTRAL CITY
+AR	CHARLESTON
+AR	CHARLOTTE
+AR	CHEROKEE VILLAGE
+AR	CHEROKEE VLG
+AR	CHERRY VALLEY
+AR	CHESTER
+AR	CHIDESTER
+AR	CHOCTAW
+AR	CLARENDON
+AR	CLARKEDALE
+AR	CLARKRIDGE
+AR	CLARKSVILLE
+AR	CLEVELAND
+AR	CLINTON
+AR	COAL HILL
+AR	COLLEGE STA
+AR	COLLEGE STATION
+AR	COLLINS
+AR	COLT
+AR	COLUMBUS
+AR	COMBS
+AR	COMPTON
+AR	CONCORD
+AR	CONWAY
+AR	CORD
+AR	CORNING
+AR	COTTER
+AR	COTTON PLANT
+AR	COVE
+AR	COY
+AR	COZAHOME
+AR	CRAWFORDSVILLE
+AR	CRAWFORDSVLLE
+AR	CROCKETTS BLF
+AR	CROCKETTS BLUFF
+AR	CROSSETT
+AR	CRUMROD
+AR	CURTIS
+AR	CUSHMAN
+AR	DAMASCUS
+AR	DANVILLE
+AR	DARDANELLE
+AR	DATTO
+AR	DECATUR
+AR	DEER
+AR	DELAPLAINE
+AR	DELAWARE
+AR	DELIGHT
+AR	DELL
+AR	DENNARD
+AR	DE QUEEN
+AR	DERMOTT
+AR	DES ARC
+AR	DESHA
+AR	DE VALLS BLF
+AR	DE VALLS BLUFF
+AR	DEVALLS BLUFF
+AR	DEWITT
+AR	DE WITT
+AR	DIAMOND CITY
+AR	DIAZ
+AR	DIERKS
+AR	DODDRIDGE
+AR	DOLPH
+AR	DONALDSON
+AR	DOVER
+AR	DRASCO
+AR	DRIVER
+AR	DUMAS
+AR	DYER
+AR	DYESS
+AR	EARLE
+AR	EAST CAMDEN
+AR	EDGEMONT
+AR	EDMONDSON
+AR	EGYPT
+AR	ELAINE
+AR	EL DORADO
+AR	ELIZABETH
+AR	ELKINS
+AR	ELM SPRINGS
+AR	EL PASO
+AR	EMERSON
+AR	EMMET
+AR	ENGLAND
+AR	ENOLA
+AR	ETHEL
+AR	ETOWAH
+AR	EUDORA
+AR	EUREKA SPGS
+AR	EUREKA SPRINGS
+AR	EVANSVILLE
+AR	EVENING SHADE
+AR	EVERTON
+AR	FAIRFIELD BAY
+AR	FAIR OAKS
+AR	FARMINGTON
+AR	FAYETTEVILLE
+AR	FIFTY SIX
+AR	FISHER
+AR	FLIPPIN
+AR	FLORAL
+AR	FORDYCE
+AR	FOREMAN
+AR	FORREST CITY
+AR	FORT SMITH
+AR	FOUKE
+AR	FOUNTAIN HILL
+AR	FOUNTAIN LAKE
+AR	FOX
+AR	FRANKLIN
+AR	FRENCHMAN BYU
+AR	FRENCHMANS BAYOU
+AR	FRIENDSHIP
+AR	FULTON
+AR	GAMALIEL
+AR	GARFIELD
+AR	GARLAND CITY
+AR	GARNER
+AR	GASSVILLE
+AR	GATEWAY
+AR	GENOA
+AR	GENTRY
+AR	GEORGETOWN
+AR	GEPP
+AR	GILBERT
+AR	GILLETT
+AR	GILLHAM
+AR	GILMORE
+AR	GLENCOE
+AR	GLENWOOD
+AR	GOODWIN
+AR	GOSHEN
+AR	GOSNELL
+AR	GOULD
+AR	GRADY
+AR	GRANNIS
+AR	GRAPEVINE
+AR	GRAVELLY
+AR	GRAVEL RIDGE
+AR	GRAVETTE
+AR	GREENBRIER
+AR	GREEN FOREST
+AR	GREENLAND
+AR	GREENWAY
+AR	GREENWOOD
+AR	GREERS FERRY
+AR	GREGORY
+AR	GRIFFITHVILLE
+AR	GRUBBS
+AR	GUION
+AR	GURDON
+AR	GUY
+AR	HACKETT
+AR	HAGARVILLE
+AR	HAMBURG
+AR	HAMPTON
+AR	HANOVER
+AR	HARDY
+AR	HARRELL
+AR	HARRIET
+AR	HARRISBURG
+AR	HARRISON
+AR	HARTFORD
+AR	HARTMAN
+AR	HARVEY
+AR	HASKELL
+AR	HASTY
+AR	HATFIELD
+AR	HATTIEVILLE
+AR	HATTON
+AR	HAVANA
+AR	HAYNES
+AR	HAZEN
+AR	HEBER SPRINGS
+AR	HECTOR
+AR	HELENA
+AR	HENDERSON
+AR	HENSLEY
+AR	HERMITAGE
+AR	HETH
+AR	HICKORY PLAINS
+AR	HICKORY PLNS
+AR	HICKORY RIDGE
+AR	HIGDEN
+AR	HIGGINSON
+AR	HIGHLAND
+AR	HINDSVILLE
+AR	HIWASSE
+AR	HOLIDAY ISLAND
+AR	HOLIDAY ISLE
+AR	HOLLAND
+AR	HOLLY GROVE
+AR	HOPE
+AR	HORATIO
+AR	HORSESHOE BEND
+AR	HORSESHOE BND
+AR	HORSESHOE LAKE
+AR	HORSESHOE LK
+AR	HOT SPRINGS
+AR	HOT SPRINGS NATIONAL PARK
+AR	HOT SPRINGS VILLAGE
+AR	HOUSTON
+AR	HOWELL
+AR	HOXIE
+AR	HUGHES
+AR	HUMNOKE
+AR	HUMPHREY
+AR	HUNT
+AR	HUNTER
+AR	HUNTINGTON
+AR	HUNTSVILLE
+AR	HUTTIG
+AR	IDA
+AR	IMBODEN
+AR	IVAN
+AR	JACKSONPORT
+AR	JACKSONVILLE
+AR	JASPER
+AR	JEFFERSON
+AR	JENNIE
+AR	JERSEY
+AR	JERUSALEM
+AR	JESSIEVILLE
+AR	JOHNSON
+AR	JOINER
+AR	JONESBORO
+AR	JONES MILL
+AR	JORDAN
+AR	JUDSONIA
+AR	JUNCTION CITY
+AR	KEISER
+AR	KENSETT
+AR	KEO
+AR	KINGSLAND
+AR	KINGSTON
+AR	KIRBY
+AR	KNOBEL
+AR	KNOXVILLE
+AR	LAFE
+AR	LA GRANGE
+AR	LAKE CITY
+AR	LAKE HAMILTON
+AR	LAKEVIEW
+AR	LAKE VILLAGE
+AR	LAMAR
+AR	LAMBROOK
+AR	LANEBURG
+AR	LANGLEY
+AR	LAVACA
+AR	LAWSON
+AR	LEACHVILLE
+AR	LEAD HILL
+AR	LEOLA
+AR	LEPANTO
+AR	LESLIE
+AR	LETONA
+AR	LEWISVILLE
+AR	LEXA
+AR	LIGHT
+AR	LINCOLN
+AR	LITTLE ROCK
+AR	LITTLE ROCK AFB
+AR	LITTLE ROCK AIR FORCE BASE
+AR	LOCKESBURG
+AR	LOCUST GROVE
+AR	LONDON
+AR	LONOKE
+AR	LONSDALE
+AR	LOUANN
+AR	LOWELL
+AR	LRAFB
+AR	LR AFB
+AR	LUXORA
+AR	LYNN
+AR	MABELVALE
+AR	MADISON
+AR	MAGAZINE
+AR	MAGNESS
+AR	MAGNOLIA
+AR	MALVERN
+AR	MAMMOTH SPG
+AR	MAMMOTH SPRING
+AR	MANILA
+AR	MANNING
+AR	MANSFIELD
+AR	MARBLE FALLS
+AR	MARCELLA
+AR	MARIANNA
+AR	MARION
+AR	MARKED TREE
+AR	MARMADUKE
+AR	MARSHALL
+AR	MARVELL
+AR	MAUMELLE
+AR	MAYFLOWER
+AR	MAYNARD
+AR	MAYSVILLE
+AR	MC CASKILL
+AR	MCCRORY
+AR	MC CRORY
+AR	MC DOUGAL
+AR	MCGEHEE
+AR	MC GEHEE
+AR	MC NEIL
+AR	MC RAE
+AR	MELBOURNE
+AR	MELLWOOD
+AR	MENA
+AR	MENIFEE
+AR	MIDLAND
+AR	MIDWAY
+AR	MINERAL SPGS
+AR	MINERAL SPRINGS
+AR	MINTURN
+AR	MOKO
+AR	MONETTE
+AR	MONROE
+AR	MONTICELLO
+AR	MONTROSE
+AR	MORO
+AR	MORRILTON
+AR	MORROW
+AR	MOSCOW
+AR	MOUNTAINBURG
+AR	MOUNTAIN HOME
+AR	MOUNTAIN PINE
+AR	MOUNTAIN VIEW
+AR	MOUNT HOLLY
+AR	MOUNT IDA
+AR	MOUNT JUDEA
+AR	MOUNT PLEASANT
+AR	MOUNT VERNON
+AR	MT PLEASANT
+AR	MULBERRY
+AR	MURFREESBORO
+AR	NASHVILLE
+AR	NATURAL DAM
+AR	NEWARK
+AR	NEW BLAINE
+AR	NEW EDINBURG
+AR	NEWHOPE
+AR	NEWPORT
+AR	N LITTLE ROCK
+AR	NLR
+AR	NO LITTLE ROCK
+AR	NORFORK
+AR	NORMAN
+AR	NORPHLET
+AR	NORTH LITTLE ROCK
+AR	OAK GROVE
+AR	OAKLAND
+AR	OARK
+AR	ODEN
+AR	OGDEN
+AR	OIL TROUGH
+AR	O KEAN
+AR	OKOLONA
+AR	OLA
+AR	OLD JOE
+AR	OMAHA
+AR	ONEIDA
+AR	ONIA
+AR	OPPELO
+AR	OSCEOLA
+AR	OXFORD
+AR	OZAN
+AR	OZARK
+AR	OZONE
+AR	PALESTINE
+AR	PANGBURN
+AR	PARAGOULD
+AR	PARIS
+AR	PARKDALE
+AR	PARKIN
+AR	PARKS
+AR	PARON
+AR	PARTHENON
+AR	PATTERSON
+AR	PEACH ORCHARD
+AR	PEARCY
+AR	PEA RIDGE
+AR	PEEL
+AR	PELSOR
+AR	PENCIL BLUFF
+AR	PERRY
+AR	PERRYVILLE
+AR	PETTIGREW
+AR	PICKENS
+AR	PIGGOTT
+AR	PINDALL
+AR	PINE BLUFF
+AR	PINE RIDGE
+AR	PINEVILLE
+AR	PLAINVIEW
+AR	PLEASANT GROVE
+AR	PLEASANT GRV
+AR	PLEASANT PLAINS
+AR	PLEASANT PLNS
+AR	PLUMERVILLE
+AR	POCAHONTAS
+AR	POLLARD
+AR	PONCA
+AR	POPLAR GROVE
+AR	PORTIA
+AR	PORTLAND
+AR	POTTSVILLE
+AR	POUGHKEEPSIE
+AR	POWHATAN
+AR	POYEN
+AR	PRAIRIE GROVE
+AR	PRATTSVILLE
+AR	PRESCOTT
+AR	PRIM
+AR	PROCTOR
+AR	PYATT
+AR	QUITMAN
+AR	RATCLIFF
+AR	RAVENDEN
+AR	RAVENDEN SPGS
+AR	RAVENDEN SPRINGS
+AR	RECTOR
+AR	REDFIELD
+AR	REYDELL
+AR	REYNO
+AR	RISON
+AR	RIVERVALE
+AR	ROCKPORT
+AR	ROE
+AR	ROGERS
+AR	ROHWER
+AR	ROLAND
+AR	ROMANCE
+AR	ROSE BUD
+AR	ROSIE
+AR	ROSSTON
+AR	ROUND POND
+AR	ROVER
+AR	ROYAL
+AR	RUDY
+AR	RUSSELL
+AR	RUSSELLVILLE
+AR	SAFFELL
+AR	SAGE
+AR	SAINT CHARLES
+AR	SAINT FRANCIS
+AR	SAINT JOE
+AR	SAINT PAUL
+AR	SALADO
+AR	SALEM
+AR	SALESVILLE
+AR	SARATOGA
+AR	SCOTLAND
+AR	SCOTT
+AR	SCRANTON
+AR	SEARCY
+AR	SEDGWICK
+AR	SHANNON HILLS
+AR	SHERIDAN
+AR	SHERRILL
+AR	SHERWOOD
+AR	SHIRLEY
+AR	SIDNEY
+AR	SILOAM SPGS
+AR	SILOAM SPRINGS
+AR	SIMS
+AR	SMACKOVER
+AR	SMITHVILLE
+AR	SNOW LAKE
+AR	SOLGOHACHIA
+AR	SPARKMAN
+AR	SPRINGDALE
+AR	SPRINGFIELD
+AR	SPRINGTOWN
+AR	STAMPS
+AR	STAR CITY
+AR	STATE UNIV
+AR	STATE UNIVERSITY
+AR	STEPHENS
+AR	STEPROCK
+AR	STORY
+AR	STRAWBERRY
+AR	STRONG
+AR	STURKIE
+AR	STUTTGART
+AR	SUBIACO
+AR	SUCCESS
+AR	SULPHUR ROCK
+AR	SULPHUR SPGS
+AR	SULPHUR SPRINGS
+AR	SUMMERS
+AR	SUMMIT
+AR	SWEET HOME
+AR	SWIFTON
+AR	TAYLOR
+AR	TEXARKANA
+AR	THIDA
+AR	THORNTON
+AR	TICHNOR
+AR	TILLAR
+AR	TILLY
+AR	TIMBO
+AR	TONTITOWN
+AR	TRASKWOOD
+AR	TRUMANN
+AR	TUCKER
+AR	TUCKERMAN
+AR	TULL
+AR	TUMBLING SHLS
+AR	TUMBLING SHOALS
+AR	TUPELO
+AR	TURNER
+AR	TURRELL
+AR	TWIN GROVES
+AR	TWIST
+AR	TYRONZA
+AR	ULM
+AR	UMPIRE
+AR	UNIONTOWN
+AR	URBANA
+AR	VALLEY SPGS
+AR	VALLEY SPRINGS
+AR	VAN BUREN
+AR	VANDERVOORT
+AR	VANNDALE
+AR	VENDOR
+AR	VILLAGE
+AR	VILONIA
+AR	VIOLA
+AR	VIOLET HILL
+AR	WABASH
+AR	WABBASEKA
+AR	WALCOTT
+AR	WALDENBURG
+AR	WALDO
+AR	WALDRON
+AR	WALNUT RIDGE
+AR	WARD
+AR	WARM SPRINGS
+AR	WARREN
+AR	WASHINGTON
+AR	WATSON
+AR	WAVELAND
+AR	WEINER
+AR	WESLEY
+AR	WESTERN GROVE
+AR	WEST FORK
+AR	WEST HELENA
+AR	WEST MEMPHIS
+AR	WEST POINT
+AR	WEST RIDGE
+AR	WHEATLEY
+AR	WHEELER
+AR	WHELEN SPGS
+AR	WHELEN SPRINGS
+AR	WHITE HALL
+AR	WICKES
+AR	WIDEMAN
+AR	WIDENER
+AR	WIEDERKEHR VG
+AR	WIEDERKEHR VILLAGE
+AR	WILBURN
+AR	WILLIAMS BAPTIST COLLEGE
+AR	WILLIFORD
+AR	WILLISVILLE
+AR	WILMAR
+AR	WILMOT
+AR	WILSON
+AR	WILTON
+AR	WINCHESTER
+AR	WINSLOW
+AR	WINTHROP
+AR	WISEMAN
+AR	WITTER
+AR	WITTS SPRINGS
+AR	WMS COLLEGE
+AR	WOODSON
+AR	WOOSTER
+AR	WRIGHT
+AR	WRIGHTSVILLE
+AR	WYNNE
+AR	YELLVILLE
+AR	YORKTOWN
+AR	ZION
+AS	PAGO PAGO
+AZ	AGUILA
+AZ	AJO
+AZ	ALPINE
+AZ	AMADO
+AZ	ANTHEM
+AZ	APACHE JCT
+AZ	APACHE JUNCTION
+AZ	ARIVACA
+AZ	ARIZONA CITY
+AZ	ARIZONA STATE UNIVERSITY
+AZ	ARLINGTON
+AZ	ASH FORK
+AZ	ASU
+AZ	AVONDALE
+AZ	BAGDAD
+AZ	BAPCHULE
+AZ	BELLEMONT
+AZ	BENSCH RANCH
+AZ	BENSON
+AZ	BISBEE
+AZ	BLACK CANYON CITY
+AZ	BLACK CYN CTY
+AZ	BLUE
+AZ	BLUE GAP
+AZ	BOUSE
+AZ	BOWIE
+AZ	BUCKEYE
+AZ	BULLHEAD CITY
+AZ	BYLAS
+AZ	CAMERON
+AZ	CAMP VERDE
+AZ	CAREFREE
+AZ	CASA GRANDE
+AZ	CASHION
+AZ	CATALINA
+AZ	CAVE CREEK
+AZ	CENTRAL
+AZ	CHAMBERS
+AZ	CHANDLER
+AZ	CHANDLER HEIGHTS
+AZ	CHANDLER HTS
+AZ	CHINLE
+AZ	CHINO VALLEY
+AZ	CHLORIDE
+AZ	CIBECUE
+AZ	CIBOLA
+AZ	CLARKDALE
+AZ	CLAYPOOL
+AZ	CLAY SPRINGS
+AZ	CLIFTON
+AZ	COCHISE
+AZ	COLORADO CITY
+AZ	CONCHO
+AZ	CONGRESS
+AZ	COOLIDGE
+AZ	CORDES LAKES
+AZ	CORNVILLE
+AZ	CORONA
+AZ	CORONA DE TUC
+AZ	CORONA DE TUCSON
+AZ	CORTARO
+AZ	COTTONWOOD
+AZ	CROWN KING
+AZ	CTC
+AZ	DATELAND
+AZ	DAVIS MONTHAN AFB
+AZ	DENNEHOTSO
+AZ	DESERT HILLS
+AZ	DEWEY
+AZ	DM AFB
+AZ	DOLAN SPRINGS
+AZ	DOUGLAS
+AZ	DRAGOON
+AZ	DUDLEYVILLE
+AZ	DUNCAN
+AZ	EAGAR
+AZ	EDEN
+AZ	EHRENBERG
+AZ	ELEVEN MILE
+AZ	ELEVEN MILE CORNER
+AZ	ELFRIDA
+AZ	ELGIN
+AZ	EL MIRAGE
+AZ	ELOY
+AZ	FLAGSTAFF
+AZ	FLORENCE
+AZ	FOREST LAKES
+AZ	FORT APACHE
+AZ	FORT DEFIANCE
+AZ	FORT HUACHUCA
+AZ	FORT MCDOWELL
+AZ	FORT MOHAVE
+AZ	FORT THOMAS
+AZ	FOUNTAIN HILLS
+AZ	FOUNTAIN HLS
+AZ	FREDONIA
+AZ	FT GRANT
+AZ	GADSDEN
+AZ	GANADO
+AZ	GBAFAF
+AZ	GILA BEND
+AZ	GILBERT
+AZ	GLENDALE
+AZ	GLENDALE LUKE AFB
+AZ	GLOBE
+AZ	GOLD CANYON
+AZ	GOLDEN VALLEY
+AZ	GOODYEAR
+AZ	GRAND CANYON
+AZ	GRAY MOUNTAIN
+AZ	GREEN VALLEY
+AZ	GREER
+AZ	GROOM CREEK
+AZ	GUADALUPE
+AZ	HACKBERRY
+AZ	HAPPY JACK
+AZ	HAYDEN
+AZ	HEBER
+AZ	HEREFORD
+AZ	HIGLEY
+AZ	HOLBROOK
+AZ	HOTEVILLA
+AZ	HOUCK
+AZ	HUACHUCA CITY
+AZ	HUALAPAI
+AZ	HUMBOLDT
+AZ	INDIAN WELLS
+AZ	IRON SPRINGS
+AZ	JEROME
+AZ	JOSEPH CITY
+AZ	KAIBETO
+AZ	KAYENTA
+AZ	KEAMS CANYON
+AZ	KEARNY
+AZ	KINGMAN
+AZ	KIRKLAND
+AZ	KYKOTSMOVI
+AZ	KYKOTSMOVI VILLAGE
+AZ	LAKE HAVASU CITY
+AZ	LAKE MONTEZUMA
+AZ	LAKESIDE
+AZ	LAVEEN
+AZ	LEUPP
+AZ	LITCHFIELD PARK
+AZ	LITCHFIELD PK
+AZ	LITTLEFIELD
+AZ	LK HAVASU CTY
+AZ	LK MONTEZUMA
+AZ	LUKACHUKAI
+AZ	LUKE AFB
+AZ	LUKEVILLE
+AZ	LUPTON
+AZ	MADERA CANYON
+AZ	MAMMOTH
+AZ	MANY FARMS
+AZ	MARANA
+AZ	MARBLE CANYON
+AZ	MARICOPA
+AZ	MARTINEZ LAKE
+AZ	MAYER
+AZ	MCNARY
+AZ	MC NEAL
+AZ	MEADVIEW
+AZ	MESA
+AZ	MIAMI
+AZ	MOBILE
+AZ	MOHAVE VALLEY
+AZ	MORENCI
+AZ	MORMON LAKE
+AZ	MORRISTOWN
+AZ	MOUNT LEMMON
+AZ	MUNDS PARK
+AZ	NACO
+AZ	NAZLINI
+AZ	NEW RIVER
+AZ	NOGALES
+AZ	NORTH RIM
+AZ	NUTRIOSO
+AZ	OATMAN
+AZ	ORACLE
+AZ	ORO VALLEY
+AZ	OVERGAARD
+AZ	PAGE
+AZ	PALO VERDE
+AZ	PARADISE VALLEY
+AZ	PARADISE VLY
+AZ	PARKER
+AZ	PARKS
+AZ	PARKS COMM PO
+AZ	PATAGONIA
+AZ	PAULDEN
+AZ	PAYSON
+AZ	PEACH SPRINGS
+AZ	PEARCE
+AZ	PEEPLES VALLEY
+AZ	PEEPLES VLY
+AZ	PEORIA
+AZ	PERIDOT
+AZ	PETRIFIED FOR
+AZ	PETRIFIED FOREST NATL PK
+AZ	PHOENIX
+AZ	PICACHO
+AZ	PIMA
+AZ	PINE
+AZ	PINEDALE
+AZ	PINETOP
+AZ	PINON
+AZ	PIRTLEVILLE
+AZ	PISINEMO
+AZ	PISINEMO TRADING POST
+AZ	POLACCA
+AZ	POMERENE
+AZ	PORTAL
+AZ	POSTON
+AZ	PRESCOTT
+AZ	PRESCOTT VALLEY
+AZ	PRESCOTT VLY
+AZ	QUARTZSITE
+AZ	QUEEN CREEK
+AZ	QUEEN VALLEY
+AZ	RED ROCK
+AZ	RED VALLEY
+AZ	RILLITO
+AZ	RIMROCK
+AZ	RIO RICO
+AZ	RIO VERDE
+AZ	ROCK POINT
+AZ	ROCK SPRINGS
+AZ	ROLL
+AZ	ROOSEVELT
+AZ	ROUND ROCK
+AZ	SACATON
+AZ	SADDLEBROOKE
+AZ	SAFFORD
+AZ	SAHUARITA
+AZ	SAINT DAVID
+AZ	SAINT JOHNS
+AZ	SAINT MICHAELS
+AZ	SALOME
+AZ	SAN CARLOS
+AZ	SANDERS
+AZ	SAN LUIS
+AZ	SAN MANUEL
+AZ	SAN SIMON
+AZ	SANTA RITA
+AZ	SANTA RITA FOOTHILLS
+AZ	SASABE
+AZ	SCOTTSDALE
+AZ	SECOND MESA
+AZ	SEDONA
+AZ	SELIGMAN
+AZ	SELLS
+AZ	SHONTO
+AZ	SHOW LOW
+AZ	SIERRA VISTA
+AZ	SKULL VALLEY
+AZ	SNOWFLAKE
+AZ	SOLOMON
+AZ	SOMERTON
+AZ	SONOITA
+AZ	SPRINGERVILLE
+AZ	SPRING VALLEY
+AZ	STANFIELD
+AZ	STAR VALLEY
+AZ	ST MICHAELS
+AZ	STRAWBERRY
+AZ	SUN CITY
+AZ	SUN CITY WEST
+AZ	SUN LAKES
+AZ	SUNSITES
+AZ	SUN VALLEY
+AZ	SUPAI
+AZ	SUPERIOR
+AZ	SUPERSTITION MTN
+AZ	SUPRSTON MTN
+AZ	SURPRISE
+AZ	TACNA
+AZ	TAYLOR
+AZ	TEEC NOS POS
+AZ	TEMPE
+AZ	TEMPL BAR MAR
+AZ	TEMPLE BAR MARINA
+AZ	THATCHER
+AZ	TOLLESON
+AZ	TOLTEC
+AZ	TOMBSTONE
+AZ	TONALEA
+AZ	TONOPAH
+AZ	TONTO BASIN
+AZ	TOPAWA
+AZ	TOPOCK
+AZ	TORTILLA FLAT
+AZ	TSAILE
+AZ	TUBAC
+AZ	TUBA CITY
+AZ	TUCSON
+AZ	TUMACACORI
+AZ	VAIL
+AZ	VALENTINE
+AZ	VALLEY FARMS
+AZ	VERNON
+AZ	WADDELL
+AZ	WELLTON
+AZ	WENDEN
+AZ	WHITE HILLS
+AZ	WHITE MOUNTAIN LAKE
+AZ	WHITE MTN LK
+AZ	WHITERIVER
+AZ	WHY
+AZ	WICKENBURG
+AZ	WIKIEUP
+AZ	WILLCOX
+AZ	WILLIAMS
+AZ	WILLOW BEACH
+AZ	WINDOW ROCK
+AZ	WINKELMAN
+AZ	WINSLOW
+AZ	WITTMANN
+AZ	WOODRUFF
+AZ	YARNELL
+AZ	YOUNG
+AZ	YOUNGTOWN
+AZ	YPG
+AZ	YUCCA
+AZ	YUMA
+AZ	YUMA PROVING GROUND
+CA	29 PALMS
+CA	ACAMPO
+CA	ACTON
+CA	ADELAIDE
+CA	ADELANTO
+CA	ADIN
+CA	AERIAL ACRES
+CA	AGOURA
+CA	AGOURA HILLS
+CA	AGUA DULCE
+CA	AGUANGA
+CA	AHWAHNEE
+CA	ALAMEDA
+CA	ALAMO
+CA	ALBANY
+CA	ALBION
+CA	ALDERPOINT
+CA	ALHAMBRA
+CA	ALISO VIEJO
+CA	ALLEGHANY
+CA	ALPAUGH
+CA	ALPINE
+CA	ALPINE MDWS
+CA	ALPINE MEADOWS
+CA	ALTA
+CA	ALTADENA
+CA	ALTA LOMA
+CA	ALTAVILLE
+CA	ALTURAS
+CA	ALVISO
+CA	AMADOR CITY
+CA	AMBOY
+CA	AMERICAN CANYON
+CA	AMERICAN CYN
+CA	ANAHEIM
+CA	ANDERSON
+CA	ANGELS CAMP
+CA	ANGELUS OAKS
+CA	ANGWIN
+CA	ANNAPOLIS
+CA	ANTELOPE
+CA	ANTIOCH
+CA	ANZA
+CA	APPLEGATE
+CA	APPLE VALLEY
+CA	APTOS
+CA	ARBOGA
+CA	ARBUCKLE
+CA	ARCADIA
+CA	ARCATA
+CA	ARGUS
+CA	ARLETA
+CA	ARMONA
+CA	ARNOLD
+CA	AROMAS
+CA	ARROWBEAR LAKE
+CA	ARROWBEAR LK
+CA	ARROWHEAD FARMS
+CA	ARROWHED FARM
+CA	ARROYO GRANDE
+CA	ARTESIA
+CA	ARTOIS
+CA	ARVIN
+CA	ATASCADERO
+CA	ATHERTON
+CA	ATWATER
+CA	ATWOOD
+CA	AUBERRY
+CA	AUBURN
+CA	AUGUST F. HAW
+CA	AVALON
+CA	AVENAL
+CA	AVERY
+CA	AVILA BEACH
+CA	AZUSA
+CA	BADGER
+CA	BAKER
+CA	BAKERSFIELD
+CA	BALBOA
+CA	BALBOA ISLAND
+CA	BALDWIN HILLS
+CA	BALDWIN PARK
+CA	BALLARD
+CA	BALLICO
+CA	BANGOR
+CA	BANNING
+CA	BANTA
+CA	BARD
+CA	BARSTOW
+CA	BASSETT
+CA	BASS LAKE
+CA	BAY POINT
+CA	BAYSIDE
+CA	BEALE AFB
+CA	BEAR VALLEY
+CA	BEAR VALLEY SPRINGS
+CA	BEAR VLY SPGS
+CA	BEAUMONT
+CA	BECKWOURTH
+CA	BELDEN
+CA	BELL
+CA	BELLA VISTA
+CA	BELL CANYON
+CA	BELLFLOWER
+CA	BELL GARDENS
+CA	BELMONT
+CA	BEL TIBURON
+CA	BELVEDERE
+CA	BELVEDERE TIBURON
+CA	BENICIA
+CA	BEN LOMOND
+CA	BENTON
+CA	BERENDA
+CA	BERKELEY
+CA	BERMUDA DUNES
+CA	BERRY CREEK
+CA	BETHEL ISLAND
+CA	BEVERLY HILLS
+CA	BIEBER
+CA	BIG BAR
+CA	BIG BEAR CITY
+CA	BIG BEAR LAKE
+CA	BIG BEND
+CA	BIG CREEK
+CA	BIGGS
+CA	BIG OAK FLAT
+CA	BIG OAK VALLEY
+CA	BIG OAK VLY
+CA	BIG PINE
+CA	BIG RIVER
+CA	BIG SUR
+CA	BIOLA
+CA	BIRDS LANDING
+CA	BIRDS LNDG
+CA	BISHOP
+CA	BLACKHAWK
+CA	BLAIRSDEN
+CA	BLAIRSDEN-GRAEAGLE
+CA	BLOCKSBURG
+CA	BLOOMINGTON
+CA	BLRSDN-GREAGL
+CA	BLUE JAY
+CA	BLUE LAKE
+CA	BLYTHE
+CA	BODEGA
+CA	BODEGA BAY
+CA	BODFISH
+CA	BOLINAS
+CA	BONITA
+CA	BONNY DOON
+CA	BONSALL
+CA	BOONVILLE
+CA	BORON
+CA	BORREGO SPGS
+CA	BORREGO SPRINGS
+CA	BOULDER CREEK
+CA	BOULEVARD
+CA	BOWMAN
+CA	BOX CANYON
+CA	BOYES HOT SPG
+CA	BOYES HOT SPRINGS
+CA	BRADBURY
+CA	BRADLEY
+CA	BRANDEIS
+CA	BRANSCOMB
+CA	BRAWLEY
+CA	BREA
+CA	BRENTWOOD
+CA	BRIDGEPORT
+CA	BRIDGEVILLE
+CA	BRIONES
+CA	BRISBANE
+CA	BROADMOOR VLG
+CA	BRODERICK
+CA	BROOKDALE
+CA	BROOKS
+CA	BROWNS VALLEY
+CA	BROWNSVILLE
+CA	BRYLANE
+CA	BRYN MAWR
+CA	BRYTE
+CA	BUELLTON
+CA	BUENA PARK
+CA	BURBANK
+CA	BURLINGAME
+CA	BURNEY
+CA	BURNT RANCH
+CA	BURREL
+CA	BURSON
+CA	BUTTE CITY
+CA	BUTTE MEADOWS
+CA	BUTTE VALLEY
+CA	BUTTONWILLOW
+CA	BYRON
+CA	CABAZON
+CA	CADIZ
+CA	CALABASAS
+CA	CALABASAS HILLS
+CA	CALABASAS HLS
+CA	CALEXICO
+CA	CALIENTE
+CA	CALIF CITY
+CA	CALIF HOT SPG
+CA	CALIFORNIA CITY
+CA	CALIFORNIA HOT SPRINGS
+CA	CALIMESA
+CA	CALIPATRIA
+CA	CALISTOGA
+CA	CALLAHAN
+CA	CALPELLA
+CA	CALPINE
+CA	CAL POLY SLO
+CA	CAL POLY UNIVERSITY
+CA	CAMARILLO
+CA	CAMBRIA
+CA	CAMERON PARK
+CA	CAMINO
+CA	CAMPBELL
+CA	CAMP CONNELL
+CA	CAMP MEEKER
+CA	CAMP NELSON
+CA	CAMPO
+CA	CAMPO SECO
+CA	CAMP PENDLETON
+CA	CAMPTONVILLE
+CA	CANBY
+CA	CANOGA PARK
+CA	CANTIL
+CA	CANTUA CREEK
+CA	CANYON
+CA	CANYON CNTRY
+CA	CANYON COUNTRY
+CA	CANYON DAM
+CA	CANYON LAKE
+CA	CAPAY
+CA	CAPISTRANO BEACH
+CA	CAPITOLA
+CA	CAPO BEACH
+CA	CARDIFF
+CA	CARDIFF BY THE SEA
+CA	CARLOTTA
+CA	CARLSBAD
+CA	CARMEL
+CA	CARMEL BY THE
+CA	CARMEL BY THE SEA
+CA	CARMEL VALLEY
+CA	CARMICHAEL
+CA	CARNELIAN BAY
+CA	CARPINTERIA
+CA	CARSON
+CA	CARTAGO
+CA	CARUTHERS
+CA	CASMALIA
+CA	CASPAR
+CA	CASSEL
+CA	CASTAIC
+CA	CASTELLA
+CA	CASTRO VALLEY
+CA	CASTROVILLE
+CA	CATHEDRAL CITY
+CA	CATHEDRAL CTY
+CA	CATHEYS VALLEY
+CA	CATHEYS VLY
+CA	CAYUCOS
+CA	CAZADERO
+CA	CEDAR GLEN
+CA	CEDARPINES PARK
+CA	CEDARPINES PK
+CA	CEDAR RIDGE
+CA	CEDARVILLE
+CA	CENTRAL VALLEY
+CA	CENTRAL VLY
+CA	CENTURY CITY
+CA	CERES
+CA	CERRITOS
+CA	CHALFANT
+CA	CHALFANT VALLEY
+CA	CHALFANT VLY
+CA	CHALLENGE
+CA	CHATSWORTH
+CA	CHERRY VALLEY
+CA	CHESTER
+CA	CHICAGO PARK
+CA	CHICO
+CA	CHILCOOT
+CA	CHINESE CAMP
+CA	CHINO
+CA	CHINO HILLS
+CA	CHIRIACO SMT
+CA	CHIRIACO SUMMIT
+CA	CHOWCHILLA
+CA	CHUALAR
+CA	CHULA VISTA
+CA	CIMA
+CA	CITRUS HEIGHTS
+CA	CITRUS HTS
+CA	CITY INDUSTRY
+CA	CITY OF INDUSTRY
+CA	CITY RANCH
+CA	CLAREMONT
+CA	CLARKSBURG
+CA	CLAYTON
+CA	CLEARLAKE
+CA	CLEARLAKE OAKS
+CA	CLEARLAKE OKS
+CA	CLEARLAKE PARK
+CA	CLEARLAKE PK
+CA	CLEMENTS
+CA	CLIO
+CA	CLIPPER MILLS
+CA	CLOVERDALE
+CA	CLOVIS
+CA	CMP PENDLETON
+CA	COACHELLA
+CA	COALINGA
+CA	COARSEGOLD
+CA	COBB
+CA	COHASSET
+CA	COLD SPRINGS
+CA	COLEVILLE
+CA	COLFAX
+CA	COLLEGE CITY
+CA	COLMA
+CA	COLOMA
+CA	COLTON
+CA	COLUMBIA
+CA	COLUSA
+CA	COMMERCE
+CA	COMPTCHE
+CA	COMPTON
+CA	CONCORD
+CA	COOL
+CA	COPPEROPOLIS
+CA	CORCORAN
+CA	CORNELL
+CA	CORNING
+CA	CORONA
+CA	CORONA DEL MAR
+CA	CORONA DL MAR
+CA	CORONADO
+CA	CORRAL DE TIE
+CA	CORRAL DE TIERRA
+CA	CORRALITOS
+CA	CORTE MADERA
+CA	COSTA MESA
+CA	COTATI
+CA	COTO DE CAZA
+CA	COTTONWOOD
+CA	COULTERVILLE
+CA	COURTLAND
+CA	COVELO
+CA	COVINA
+CA	COWAN HEIGHTS
+CA	COYOTE
+CA	CRESCENT CITY
+CA	CRESCENT MILLS
+CA	CRESCENT MLS
+CA	CRESSEY
+CA	CRESTLINE
+CA	CRESTON
+CA	CREST PARK
+CA	CROCKETT
+CA	CROMBERG
+CA	CROWLEY LAKE
+CA	CROWS LANDING
+CA	CRYSTALAIRE
+CA	CRYSTAL CITY
+CA	CTY OF CMMRCE
+CA	CUDAHY
+CA	CULVER CITY
+CA	CUPERTINO
+CA	CUTLER
+CA	CUTTEN
+CA	CUYAMA
+CA	CYPRESS
+CA	DAGGETT
+CA	DALY CITY
+CA	DANA POINT
+CA	DANVILLE
+CA	DARDANELLE
+CA	DARWIN
+CA	DAVENPORT
+CA	DAVIS
+CA	DAVIS CREEK
+CA	DEATH VALLEY
+CA	DEER PARK
+CA	DELANO
+CA	DELHI
+CA	DEL MAR
+CA	DEL REY
+CA	DEL REY OAKS
+CA	DEL SUR
+CA	DENAIR
+CA	DESCANSO
+CA	DESERT CENTER
+CA	DESERT HOT SPRINGS
+CA	DEVORE HEIGHTS
+CA	DEVORE HGHTS
+CA	DIABLO
+CA	DIAMOND BAR
+CA	DIAMOND SPGS
+CA	DIAMOND SPRINGS
+CA	DI GIORGIO
+CA	DILLON BEACH
+CA	DINUBA
+CA	DISCOVERY BAY
+CA	DIXON
+CA	DOBBINS
+CA	DOCKWEILER
+CA	DORRIS
+CA	DOS PALOS
+CA	DOS RIOS
+CA	DOUGLAS CITY
+CA	DOUGLAS FLAT
+CA	DOVE CANYON
+CA	DOWNEY
+CA	DOWNIEVILLE
+CA	DOYLE
+CA	DRYTOWN
+CA	DSRT HOT SPGS
+CA	DUARTE
+CA	DUBLIN
+CA	DUCOR
+CA	DULZURA
+CA	DUNCANS MILLS
+CA	DUNLAP
+CA	DUNNIGAN
+CA	DUNSMUIR
+CA	DURHAM
+CA	DUTCH FLAT
+CA	EAGLE MOUNTAIN
+CA	EAGLE MTN
+CA	EAGLE ROCK
+CA	EAGLEVILLE
+CA	EARLIMART
+CA	EARP
+CA	EAST IRVINE
+CA	EAST LOS ANGELES
+CA	EAST NICOLAUS
+CA	EAST PALO ALTO
+CA	EAST RANCHO DOMINGUEZ
+CA	ECHO LAKE
+CA	EDEN VALLEY
+CA	EDGEWOOD
+CA	EDISON
+CA	EDWARDS
+CA	EDWARDS AFB
+CA	EL CAJON
+CA	EL CENTRO
+CA	EL CERRITO
+CA	EL DORADO
+CA	EL DORADO HILLS
+CA	EL DORADO HLS
+CA	ELDRIDGE
+CA	EL GRANADA
+CA	ELIZABETH LAKE
+CA	ELIZABETH LK
+CA	ELK
+CA	ELK CREEK
+CA	ELK GROVE
+CA	EL MACERO
+CA	ELMIRA
+CA	EL MIRAGE
+CA	EL MONTE
+CA	EL NIDO
+CA	EL PORTAL
+CA	EL SEGUNDO
+CA	EL SERENO CAR
+CA	EL SOBRANTE
+CA	EL TORO
+CA	EL VERANO
+CA	ELVERTA
+CA	EMERALD HILLS
+CA	EMERYVILLE
+CA	EMIGRANT GAP
+CA	EMPIRE
+CA	ENCINITAS
+CA	ENCINO
+CA	E PALO ALTO
+CA	E RNCHO DMNGZ
+CA	ESCALON
+CA	ESCONDIDO
+CA	ESPARTO
+CA	ESSEX
+CA	EST LS ANGLS
+CA	ETIWANDA
+CA	ETNA
+CA	EUREKA
+CA	EXETER
+CA	FAIRFAX
+CA	FAIRFIELD
+CA	FAIR OAKS
+CA	FAIR PLAY
+CA	FALLBROOK
+CA	FALLEN LEAF
+CA	FALL RIVER MILLS
+CA	FARMERSVILLE
+CA	FARMINGTON
+CA	FAWNSKIN
+CA	FEATHER FALLS
+CA	FELICITY
+CA	FELLOWS
+CA	FELTON
+CA	FERNDALE
+CA	FIDDLETOWN
+CA	FIELDS LANDING
+CA	FIELDS LDG
+CA	FILLMORE
+CA	FINLEY
+CA	FIREBAUGH
+CA	FIRESTONE PARK
+CA	FIRESTONE PK
+CA	FISH CAMP
+CA	FIVE POINTS
+CA	FLINTRIDGE
+CA	FLORISTON
+CA	FLOURNOY
+CA	FL RIVER MLS
+CA	FOLSOM
+CA	FONTANA
+CA	FOOTHILL RANCH
+CA	FOOTHILL RNCH
+CA	FORBESTOWN
+CA	FOREST FALLS
+CA	FORESTHILL
+CA	FOREST KNOLLS
+CA	FOREST RANCH
+CA	FORESTVILLE
+CA	FORKS OF SALMON
+CA	FORT BIDWELL
+CA	FORT BRAGG
+CA	FORT DICK
+CA	FORT HUNTER LIGGETT
+CA	FORT IRWIN
+CA	FORT JONES
+CA	FORTUNA
+CA	FOSTER CITY
+CA	FOUNTAIN VALLEY
+CA	FOUNTAIN VLY
+CA	FOWLER
+CA	FRAZIER PARK
+CA	FREEDOM
+CA	FREESTONE
+CA	FREMONT
+CA	FRENCH CAMP
+CA	FRENCH GULCH
+CA	FRESNO
+CA	FRIANT
+CA	FRK OF SALMON
+CA	FT H LIGGETT
+CA	FULLERTON
+CA	FULTON
+CA	GALT
+CA	GARBERVILLE
+CA	GARDENA
+CA	GARDEN GROVE
+CA	GARDEN VALLEY
+CA	GASQUET
+CA	GAVIOTA
+CA	GAZELLE
+CA	GEORGE AFB
+CA	GEORGETOWN
+CA	GERBER
+CA	GEYSERVILLE
+CA	GILMAN HOT SPRINGS
+CA	GILROY
+CA	GLASSELL
+CA	GLASSELL PARK
+CA	GLENCOE
+CA	GLENDALE
+CA	GLENDORA
+CA	GLEN ELLEN
+CA	GLENHAVEN
+CA	GLENN
+CA	GLENNVILLE
+CA	GLMN HOT SPGS
+CA	GOLDEN HILLS
+CA	GOLD RIVER
+CA	GOLD RUN
+CA	GOLETA
+CA	GONZALES
+CA	GOODYEARS BAR
+CA	GORMAN
+CA	GOSHEN
+CA	GRAEAGLE
+CA	GRANADA HILLS
+CA	GRAND TERRACE
+CA	GRANITE BAY
+CA	GRASS VALLEY
+CA	GRATON
+CA	GREENBRAE
+CA	GREENFIELD
+CA	GREEN VALLEY
+CA	GREEN VALLEY LAKE
+CA	GREENVIEW
+CA	GREENVILLE
+CA	GREEN VLY LK
+CA	GREENWOOD
+CA	GRENADA
+CA	GRIDLEY
+CA	GRIMES
+CA	GRIZZLY FLATS
+CA	GROVELAND
+CA	GROVER BEACH
+CA	GUADALUPE
+CA	GUALALA
+CA	GUASTI
+CA	GUATAY
+CA	GUERNEVILLE
+CA	GUINDA
+CA	GUSTINE
+CA	HACIENDA HEIGHTS
+CA	HACIENDA HTS
+CA	HALF MOON BAY
+CA	HAMILTON CITY
+CA	HAMMIL VALLEY
+CA	HANFORD
+CA	HANSEN HILLS
+CA	HAPPY CAMP
+CA	HARBOR CITY
+CA	HARMONY
+CA	HAT CREEK
+CA	HATHAWAY PINES
+CA	HATHAWAY PNES
+CA	HAVILAH
+CA	HAWAIIAN GARDENS
+CA	HAWAIIAN GDNS
+CA	HAWTHORNE
+CA	HAYFORK
+CA	HAYWARD
+CA	HAZARD
+CA	HEALDSBURG
+CA	HEBER
+CA	HELENA
+CA	HELENDALE
+CA	HELM
+CA	HEMET
+CA	HERALD
+CA	HERCULES
+CA	HERITAGE RANCH
+CA	HERITAGE RNCH
+CA	HERLONG
+CA	HERMOSA BEACH
+CA	HESPERIA
+CA	HICKMAN
+CA	HIDDEN HILLS
+CA	HIDDEN VALLEY
+CA	HIDDEN VALLEY LAKE
+CA	HIDDEN VL LK
+CA	HIGHLAND
+CA	HIGHLAND PARK
+CA	HILLSBOROUGH
+CA	HILLTOP MALL
+CA	HILMAR
+CA	HINKLEY
+CA	HI VISTA
+CA	HOLLISTER
+CA	HOLLYGLEN
+CA	HOLLY PARK
+CA	HOLLYWOOD
+CA	HOLT
+CA	HOLTVILLE
+CA	HOLY CITY
+CA	HOMELAND
+CA	HOMEWOOD
+CA	HONEYDEW
+CA	HOOD
+CA	HOOPA
+CA	HOPE VALLEY
+CA	HOPLAND
+CA	HORNBROOK
+CA	HORNITOS
+CA	HORSE CREEK
+CA	HUGHSON
+CA	HUME
+CA	HUNTINGTN BCH
+CA	HUNTINGTON BEACH
+CA	HUNTINGTON PARK
+CA	HUNTINGTON PK
+CA	HURON
+CA	HYAMPOM
+CA	HYDESVILLE
+CA	IDYLLWILD
+CA	IGO
+CA	IMPERIAL
+CA	IMPERIAL BCH
+CA	IMPERIAL BEACH
+CA	INDEPENDENCE
+CA	INDIAN WELLS
+CA	INDIO
+CA	INGLEWOOD
+CA	INVERNESS
+CA	INYOKERN
+CA	IONE
+CA	IOWA HILL
+CA	IRVINE
+CA	IRWINDALE
+CA	ISLA VISTA
+CA	ISLETON
+CA	IVANHOE
+CA	JACKSON
+CA	JACUMBA
+CA	JAMESTOWN
+CA	JAMUL
+CA	JANESVILLE
+CA	JENNER
+CA	JESS RANCH
+CA	JOHANNESBURG
+CA	JOHNSON VALLEY
+CA	JOHNSON VLY
+CA	JOLON
+CA	JOSHUA TREE
+CA	JULIAN
+CA	JUNCTION CITY
+CA	JUNE LAKE
+CA	JUNIPER HILLS
+CA	KAGEL CANYON
+CA	KAWEAH
+CA	KCNP
+CA	KEELER
+CA	KEENE
+CA	KELSEY
+CA	KELSEYVILLE
+CA	KELSO
+CA	KENSINGTON
+CA	KENTFIELD
+CA	KENWOOD
+CA	KERMAN
+CA	KERNVILLE
+CA	KETTLEMAN CITY
+CA	KETTLEMAN CTY
+CA	KEYES
+CA	KING CITY
+CA	KINGS BEACH
+CA	KINGSBURG
+CA	KINGS CANYON
+CA	KINGS CANYON NATIONAL PK
+CA	KINGS CANYON NATL PARK
+CA	KIRKWOOD
+CA	KIT CARSON
+CA	KLAMATH
+CA	KLAMATH RIVER
+CA	KNEELAND
+CA	KNIGHTSEN
+CA	KNIGHTS FERRY
+CA	KNIGHTS LANDING
+CA	KNIGHTS LNDG
+CA	KORBEL
+CA	KYBURZ
+CA	LA CANADA
+CA	LA CANADA FLINTRIDGE
+CA	LA CANADA FLT
+CA	LA CRESCENTA
+CA	LADERA RANCH
+CA	LAFAYETTE
+CA	LA GRANGE
+CA	LAGUNA BEACH
+CA	LAGUNA HILLS
+CA	LAGUNA NIGUEL
+CA	LAGUNA WOODS
+CA	LAGUNITAS
+CA	LA HABRA
+CA	LA HABRA HEIGHTS
+CA	LA HABRA HGTS
+CA	LA HONDA
+CA	LA JOLLA
+CA	LAKE ALMANOR
+CA	LAKE ARROWHEAD
+CA	LAKE BALBOA
+CA	LAKE CITY
+CA	LAKE ELSINORE
+CA	LAKE FOREST
+CA	LAKEHEAD
+CA	LAKE HUGHES
+CA	LAKE ISABELLA
+CA	LAKE LA
+CA	LAKE LOS ANGELES
+CA	LAKEPORT
+CA	LAKE SHERWOOD
+CA	LAKESHORE
+CA	LAKESIDE
+CA	LAKEVIEW
+CA	LAKE VIEW TER
+CA	LAKE VIEW TERRACE
+CA	LAKEWOOD
+CA	LA MESA
+CA	LAMIRADA
+CA	LA MIRADA
+CA	LAMONT
+CA	LANCASTER
+CA	LANDERS
+CA	LA PALMA
+CA	LA PORTE
+CA	LA PUENTE
+CA	LA QUINTA
+CA	LARKFIELD
+CA	LARKSPUR
+CA	LA SELVA BCH
+CA	LA SELVA BEACH
+CA	LATHROP
+CA	LATON
+CA	LATROBE
+CA	LA VERNE
+CA	LAWNDALE
+CA	LAYTONVILLE
+CA	LEBEC
+CA	LEE VINING
+CA	LEGGETT
+CA	LE GRAND
+CA	LEIMERT PARK
+CA	LEMON COVE
+CA	LEMON GROVE
+CA	LEMOORE
+CA	LEMOORE NAS
+CA	LEMOORE NAVAL AIR STATION
+CA	LENNOX
+CA	LEONA VALLEY
+CA	LEWISTON
+CA	LIBERTY FARMS
+CA	LIKELY
+CA	LINCOLN
+CA	LINCOLN ACRES
+CA	LINCOLN HEIGHTS
+CA	LINCOLN HTS
+CA	LINDA
+CA	LINDEN
+CA	LINDSAY
+CA	LITCHFIELD
+CA	LITTLE LAKE
+CA	LITTLERIVER
+CA	LITTLE RIVER
+CA	LITTLEROCK
+CA	LITTLE VALLEY
+CA	LIVE OAK
+CA	LIVERMORE
+CA	LIVINGSTON
+CA	LK ARROWHEAD
+CA	LLANO
+CA	LOCH LOMOND
+CA	LOCKEFORD
+CA	LOCKWOOD
+CA	LODI
+CA	LOLETA
+CA	LOMA LINDA
+CA	LOMA MAR
+CA	LOMA RICA
+CA	LOMITA
+CA	LOMPOC
+CA	LONE PINE
+CA	LONG BARN
+CA	LONG BEACH
+CA	LOOKOUT
+CA	LOOMIS
+CA	LOS ALAMITOS
+CA	LOS ALAMOS
+CA	LOS ALTOS
+CA	LOS ALTOS HILLS
+CA	LOS ANGELES
+CA	LOS ANGELES AFB
+CA	LOS ANGLS AFB
+CA	LOS BANOS
+CA	LOS GATOS
+CA	LOS MOLINOS
+CA	LOS NIETOS
+CA	LOS OLIVOS
+CA	LOS OSOS
+CA	LOST HILLS
+CA	LOTUS
+CA	LOWER LAKE
+CA	LOYALTON
+CA	LUCERNE
+CA	LUCERNE VALLEY
+CA	LUCERNE VLY
+CA	LUDLOW
+CA	LYNWOOD
+CA	LYOTH
+CA	LYTLE CREEK
+CA	MACDOEL
+CA	MADELINE
+CA	MADERA
+CA	MADISON
+CA	MAD RIVER
+CA	MAGALIA
+CA	MALIBU
+CA	MAMMOTH LAKES
+CA	MANCHESTER
+CA	MANHATTAN BCH
+CA	MANHATTAN BEACH
+CA	MANTECA
+CA	MANTON
+CA	MARCH AIR RESERVE BASE
+CA	MARCH ARB
+CA	MARICOPA
+CA	MARINA
+CA	MARINA DEL REY
+CA	MARINA DL REY
+CA	MARIPOSA
+CA	MARKLEEVILLE
+CA	MARSHALL
+CA	MARTELL
+CA	MARTINEZ
+CA	MARYSVILLE
+CA	MATHER
+CA	MAXWELL
+CA	MAYWOOD
+CA	MCARTHUR
+CA	MCCLELLAN
+CA	MCCLOUD
+CA	MC FARLAND
+CA	MCKINLEYVILLE
+CA	MC KINLEYVILLE
+CA	MC KITTRICK
+CA	MEADOW VALLEY
+CA	MEADOW VISTA
+CA	MECCA
+CA	MENDOCINO
+CA	MENDOTA
+CA	MENIFEE
+CA	MENLO PARK
+CA	MENTONE
+CA	MERCED
+CA	MERIDIAN
+CA	MIDDLETOWN
+CA	MIDPINES
+CA	MIDWAY CITY
+CA	MILFORD
+CA	MILLBRAE
+CA	MILL CREEK
+CA	MILL VALLEY
+CA	MILLVILLE
+CA	MILPITAS
+CA	MINERAL
+CA	MIRADA
+CA	MIRA LOMA
+CA	MIRAMONTE
+CA	MIRANDA
+CA	MISSION HILLS
+CA	MISSION VIEJO
+CA	MI WUK VILLAGE
+CA	MI WUK VLG
+CA	MOCCASIN
+CA	MODESTO
+CA	MOFFETT FIELD
+CA	MOJAVE
+CA	MOKELUMNE HILL
+CA	MOKELUMNE HL
+CA	MONARCH BAY
+CA	MONARCH BEACH
+CA	MONO HOT SPGS
+CA	MONO HOT SPRINGS
+CA	MONOLITH
+CA	MONROVIA
+CA	MONTAGUE
+CA	MONTARA
+CA	MONTCLAIR
+CA	MONTEBELLO
+CA	MONTECITO
+CA	MONTE NIDO
+CA	MONTEREY
+CA	MONTEREY PARK
+CA	MONTE RIO
+CA	MONTE SERENO
+CA	MONTE VISTA
+CA	MONTGOMERY CREEK
+CA	MONTGOMRY CRK
+CA	MONTROSE
+CA	MOORPARK
+CA	MORADA
+CA	MORAGA
+CA	MORENO VALLEY
+CA	MORGAN HILL
+CA	MORONGO VALLEY
+CA	MORONGO VLY
+CA	MORRO BAY
+CA	MOSS BEACH
+CA	MOSS LANDING
+CA	MOUNTAIN CENTER
+CA	MOUNTAIN CTR
+CA	MOUNTAIN HOUSE
+CA	MOUNTAIN MESA
+CA	MOUNTAIN PASS
+CA	MOUNTAIN RANCH
+CA	MOUNTAIN VIEW
+CA	MOUNT AUKUM
+CA	MOUNT EDEN
+CA	MOUNT HAMILTON
+CA	MOUNT HERMON
+CA	MOUNT LAGUNA
+CA	MOUNT SHASTA
+CA	MOUNT WILSON
+CA	MT BALDY
+CA	MT HAMILTON
+CA	MTN HOUSE
+CA	MTN RANCH
+CA	MUIR BEACH
+CA	MURPHYS
+CA	MURRIETA
+CA	MUSCOY
+CA	MYERS FLAT
+CA	NAPA
+CA	NATIONAL CITY
+CA	NAVARRO
+CA	NEEDLES
+CA	NELSON
+CA	NESTOR
+CA	NEVADA CITY
+CA	NEW ALMADEN
+CA	NEWARK
+CA	NEWBERRY SPGS
+CA	NEWBERRY SPRINGS
+CA	NEWBURY PARK
+CA	NEWCASTLE
+CA	NEW CUYAMA
+CA	NEWELL
+CA	NEWHALL
+CA	NEWMAN
+CA	NEWPORT BEACH
+CA	NEWPORT COAST
+CA	N HIGHLANDS
+CA	N HOLLYWOOD
+CA	NICASIO
+CA	NICE
+CA	NICOLAUS
+CA	NILAND
+CA	NIPOMO
+CA	NIPTON
+CA	NO PALM SPRINGS
+CA	NORCO
+CA	NORDEN
+CA	NORTH EDWARDS
+CA	NORTH FORK
+CA	NORTH HIGHLANDS
+CA	NORTH HILLS
+CA	NORTH HOLLYWOOD
+CA	NORTH PALM SPRINGS
+CA	NORTH RICHMOND
+CA	NORTHRIDGE
+CA	NORTH SAN JUAN
+CA	NORTHSTAR
+CA	NORTH TUSTIN
+CA	NORWALK
+CA	NOVATO
+CA	N PALM SPGS
+CA	N PALM SPRINGS
+CA	N RICHMOND
+CA	N SAN JUAN
+CA	NUBIEBER
+CA	NUEVO
+CA	NUT TREE
+CA	OAKDALE
+CA	OAK GLEN
+CA	OAK HILLS
+CA	OAKHURST
+CA	OAKLAND
+CA	OAKLEY
+CA	OAK PARK
+CA	OAK RUN
+CA	OAK VIEW
+CA	OAKVILLE
+CA	OAKWOOD
+CA	OBRIEN
+CA	OCCIDENTAL
+CA	OCEANO
+CA	OCEANSIDE
+CA	OCOTILLO
+CA	OJAI
+CA	OLANCHA
+CA	OLD STATION
+CA	OLEMA
+CA	OLIVEHURST
+CA	OLYMPIC VALLEY
+CA	OLYMPIC VLY
+CA	O NEALS
+CA	ONIZUKA AFB
+CA	ONTARIO
+CA	ONYX
+CA	ORANGE
+CA	ORANGE COVE
+CA	ORANGEVALE
+CA	ORCUTT
+CA	OREGON HOUSE
+CA	ORICK
+CA	ORINDA
+CA	ORLAND
+CA	ORLEANS
+CA	ORO GRANDE
+CA	OROSI
+CA	OROVILLE
+CA	OXNARD
+CA	PACHECO
+CA	PACIFICA
+CA	PACIFIC GROVE
+CA	PACIFIC HOUSE
+CA	PACIFIC PALISADES
+CA	PACIFIC PLSDS
+CA	PACOIMA
+CA	PAICINES
+CA	PAJARO
+CA	PALA
+CA	PALERMO
+CA	PALMDALE
+CA	PALM DESERT
+CA	PALM SPRINGS
+CA	PALO ALTO
+CA	PALO CEDRO
+CA	PALOMAR MOUNTAIN
+CA	PALOMAR MTN
+CA	PALOMAR PARK
+CA	PALOS VERDES ESTATES
+CA	PALOS VERDES PENINSULA
+CA	PALO VERDE
+CA	PANORAMA CITY
+CA	PARADISE
+CA	PARAMOUNT
+CA	PARKER DAM
+CA	PARKFIELD
+CA	PARLIER
+CA	PASADENA
+CA	PASKENTA
+CA	PASO ROBLES
+CA	PATTERSON
+CA	PATTON
+CA	PAUMA VALLEY
+CA	PAYNES CREEK
+CA	PEARBLOSSOM
+CA	PEARSONVILLE
+CA	PEBBLE BEACH
+CA	PENNGROVE
+CA	PENN VALLEY
+CA	PENRYN
+CA	PERMANENTE
+CA	PERRIS
+CA	PESCADERO
+CA	PETALUMA
+CA	PETROLIA
+CA	PHELAN
+CA	PHILLIPS RANCH
+CA	PHILLIPS RNCH
+CA	PHILLIPSVILLE
+CA	PHILO
+CA	PICO RIVERA
+CA	PIEDMONT
+CA	PIEDRA
+CA	PIERCY
+CA	PILOT HILL
+CA	PINECREST
+CA	PINEDALE
+CA	PINE GROVE
+CA	PINE MOUNTAIN CLUB
+CA	PINE MTN CLB
+CA	PINE VALLEY
+CA	PINOLE
+CA	PINON HILLS
+CA	PIONEER
+CA	PIONEERTOWN
+CA	PIRU
+CA	PISMO BEACH
+CA	PITTSBURG
+CA	PIXLEY
+CA	PLACENTIA
+CA	PLACERVILLE
+CA	PLANADA
+CA	PLATINA
+CA	PLAYA DEL REY
+CA	PLAYA VISTA
+CA	PLEASANT GROVE
+CA	PLEASANT GRV
+CA	PLEASANT HILL
+CA	PLEASANTON
+CA	PLS VRDS EST
+CA	PLS VRDS PNSL
+CA	PLUMAS LAKE
+CA	PLYMOUTH
+CA	POINT ARENA
+CA	POINT MUGU NAWC
+CA	POINT REYES STATION
+CA	POINT RICHMOND
+CA	POLLOCK PINES
+CA	POMONA
+CA	POPE VALLEY
+CA	POPLAR
+CA	PORT COSTA
+CA	PORTER RANCH
+CA	PORTERVILLE
+CA	PORT HUENEME
+CA	PORT HUENEME CBC BASE
+CA	PORTOLA
+CA	PORTOLA HILLS
+CA	PORTOLA VALLEY
+CA	PORTOLA VALLY
+CA	POSEY
+CA	POTRERO
+CA	POTTER VALLEY
+CA	POWAY
+CA	PRATHER
+CA	PRESIDIO MTRY
+CA	PRESIDIO OF MONTEREY
+CA	PRINCETON
+CA	PROBERTA
+CA	PROJECT CITY
+CA	PRT HUENEME
+CA	PRUNEDALE
+CA	PT MUGU NAWC
+CA	PT REYES STA
+CA	PT RICHMOND
+CA	PULGA
+CA	PUMPKIN CENTER
+CA	PUMPKIN CTR
+CA	QUAIL VALLEY
+CA	QUARTZ HILL
+CA	QUINCY
+CA	RACKERBY
+CA	RAGGED POINT
+CA	RAIL RD FLAT
+CA	RAIL ROAD FLAT
+CA	RAISIN CITY
+CA	RAMONA
+CA	RANCHITA
+CA	RANCHO BELAGO
+CA	RANCHO CORDOVA
+CA	RANCHO CUCAMONGA
+CA	RANCHO DOMINGUEZ
+CA	RANCHO MIRAGE
+CA	RANCHO MURIETA
+CA	RANCHO PALOS VERDES
+CA	RANCHO PARK
+CA	RANCHO SANTA FE
+CA	RANCHO SANTA MARGARITA
+CA	RANCHO STA MARG
+CA	RANDSBURG
+CA	RAVENDALE
+CA	RAYMOND
+CA	RCH CUCAMONGA
+CA	RCHO SANTA FE
+CA	RCHO STA MARG
+CA	RCH PALOS VRD
+CA	RED BLUFF
+CA	REDCREST
+CA	REDDING
+CA	REDLANDS
+CA	RED MOUNTAIN
+CA	REDONDO BEACH
+CA	REDWAY
+CA	REDWOOD CITY
+CA	REDWOOD EST
+CA	REDWOOD ESTATES
+CA	REDWOOD VALLEY
+CA	REDWOOD VLY
+CA	REEDLEY
+CA	REPRESA
+CA	RESCUE
+CA	RESEDA
+CA	RIALTO
+CA	RICHGROVE
+CA	RICHMOND
+CA	RICHVALE
+CA	RIDGECREST
+CA	RIMFOREST
+CA	RIO DELL
+CA	RIO LINDA
+CA	RIO NIDO
+CA	RIO OSO
+CA	RIO VISTA
+CA	RIPLEY
+CA	RIPON
+CA	RIVERBANK
+CA	RIVERDALE
+CA	RIVER PINES
+CA	RIVERSIDE
+CA	RLLNG HLS EST
+CA	RNCHO CORDOVA
+CA	RNCHO DOMINGZ
+CA	RNCHO MURIETA
+CA	ROBBINS
+CA	ROBINSON RANCH
+CA	ROBINSON RNCH
+CA	ROCKLIN
+CA	RODEO
+CA	ROHNERT PARK
+CA	ROLLING HILLS
+CA	ROLLING HILLS ESTATES
+CA	ROMOLAND
+CA	ROSAMOND
+CA	ROSEMEAD
+CA	ROSEVILLE
+CA	ROSEWOOD
+CA	ROSS
+CA	ROSSMOOR
+CA	ROUGH AND READY
+CA	ROUGH READY
+CA	ROUND MOUNTAIN
+CA	ROUND MTN
+CA	ROWLAND HEIGHTS
+CA	ROWLAND HGHTS
+CA	ROWLAND HGTS
+CA	ROYAL OAKS
+CA	RSM
+CA	RUBIDOUX
+CA	RUMSEY
+CA	RUNNING SPGS
+CA	RUNNING SPRINGS
+CA	RUSSIAN RIVER
+CA	RUSSIAN RIVER MDWS
+CA	RUTH
+CA	RUTHERFORD
+CA	RYDE
+CA	SACRAMENTO
+CA	SAINT HELENA
+CA	SALIDA
+CA	SALINAS
+CA	SALTON CITY
+CA	SALYER
+CA	SAMOA
+CA	SAN ANDREAS
+CA	SAN ANSELMO
+CA	SAN ARDO
+CA	SAN BERNARDINO
+CA	SAN BRUNO
+CA	SAN CARLOS
+CA	SAN CLEMENTE
+CA	SAND CITY
+CA	SAN DIEGO
+CA	SAN DIMAS
+CA	SAN FERNANDO
+CA	SANFORD
+CA	SAN FRANCISCO
+CA	SAN GABRIEL
+CA	SANGER
+CA	SAN GERONIMO
+CA	SAN GREGORIO
+CA	SAN JACINTO
+CA	SAN JOAQUIN
+CA	SAN JOSE
+CA	SAN JUAN BAUTISTA
+CA	SAN JUAN CAPISTRANO
+CA	SAN JUAN CAPO
+CA	SAN LEANDRO
+CA	SAN LORENZO
+CA	SAN LUCAS
+CA	SAN LUIS OBISPO
+CA	SAN LUIS REY
+CA	SAN MARCOS
+CA	SAN MARINO
+CA	SAN MARTIN
+CA	SAN MATEO
+CA	SAN MIGUEL
+CA	SAN PABLO
+CA	SAN PEDRO
+CA	SAN QUENTIN
+CA	SAN RAFAEL
+CA	SAN RAMON
+CA	SAN SIMEON
+CA	SANTA ANA
+CA	SANTA BARBARA
+CA	SANTA CLARA
+CA	SANTA CLARITA
+CA	SANTA CRUZ
+CA	SANTA FE SPGS
+CA	SANTA FE SPRINGS
+CA	SANTA MARGAR
+CA	SANTA MARGARITA
+CA	SANTA MARIA
+CA	SANTA MONICA
+CA	SANTA NELLA
+CA	SANTA PAULA
+CA	SANTA RITA PARK
+CA	SANTA RITA PK
+CA	SANTA ROSA
+CA	SANTA ROSA VA
+CA	SANTA ROSA VALLEY
+CA	SANTA SUSANA
+CA	SANTA YNEZ
+CA	SANTA YSABEL
+CA	SANTEE
+CA	SAN YSIDRO
+CA	SARATOGA
+CA	SARATOGA HILLS
+CA	SARATOGA HLS
+CA	SATTLEY
+CA	SAUGUS
+CA	SAUSALITO
+CA	SAWYERS BAR
+CA	SCOTIA
+CA	SCOTT BAR
+CA	SCOTTS VALLEY
+CA	S DOS PALOS
+CA	SEAL BEACH
+CA	SEASIDE
+CA	SEBASTOPOL
+CA	SEELEY
+CA	SEIAD VALLEY
+CA	SELMA
+CA	S EL MONTE
+CA	SEPULVEDA
+CA	SEQ NATL PK
+CA	SEQUOIA NATIONAL PARK
+CA	SHADOW HILLS
+CA	SHAFTER
+CA	SHANDON
+CA	SHASTA
+CA	SHASTA LAKE
+CA	SHAVER LAKE
+CA	SHEEP RANCH
+CA	SHELL BEACH
+CA	SHERIDAN
+CA	SHERMAN OAKS
+CA	SHERMAN VILLAGE
+CA	SHERMAN VLG
+CA	SHINGLE SPGS
+CA	SHINGLE SPRINGS
+CA	SHINGLETOWN
+CA	SHOSHONE
+CA	SIERRA CITY
+CA	SIERRA MADRE
+CA	SIERRAVILLE
+CA	SIGNAL HILL
+CA	SILVERADO
+CA	SIMI VALLEY
+CA	SKYFOREST
+CA	S LAKE TAHOE
+CA	SLOUGHHOUSE
+CA	SMARTVILLE
+CA	SMITH RIVER
+CA	SN BERNRDNO
+CA	SNELLING
+CA	SN JUN BATSTA
+CA	SN LUIS OBISP
+CA	SODA SPRINGS
+CA	SOLANA BEACH
+CA	SOLEDAD
+CA	SOLVANG
+CA	SOMERSET
+CA	SOMES BAR
+CA	SOMIS
+CA	SONOMA
+CA	SONORA
+CA	SOQUEL
+CA	SOULSBYVILLE
+CA	SOUTH DOS PALOS
+CA	SOUTH EL MONTE
+CA	SOUTH GATE
+CA	SOUTH LAKE TAHOE
+CA	SOUTH PASADENA
+CA	SOUTH SAN FRANCISCO
+CA	SPANISH FLAT
+CA	S PASADENA
+CA	SPG VALLEY LK
+CA	SPRECKELS
+CA	SPRING GARDEN
+CA	SPRING VALLEY
+CA	SPRING VALLEY LAKE
+CA	SPRINGVILLE
+CA	SQUAW VALLEY
+CA	S SAN FRAN
+CA	STALLION SPGS
+CA	STALLION SPRINGS
+CA	STANDARD
+CA	STANDISH
+CA	STANFORD
+CA	STANTON
+CA	STEVENSON RANCH
+CA	STEVENSON RNH
+CA	STEVINSON
+CA	STEWARTS POINT
+CA	STEWARTS PT
+CA	STINSON BEACH
+CA	STIRLING CITY
+CA	STOCKTON
+CA	STONYFORD
+CA	STORRIE
+CA	STRATFORD
+CA	STRATHMORE
+CA	STRAWBERRY
+CA	STRAWBERRY VALLEY
+CA	STRAWBRRY VLY
+CA	STUDIO CITY
+CA	SUGARLOAF
+CA	SUISUN CITY
+CA	SULTANA
+CA	SUMMERLAND
+CA	SUMMIT CITY
+CA	SUN CITY
+CA	SUNLAND
+CA	SUNNYVALE
+CA	SUNOL
+CA	SUNSET BEACH
+CA	SUN VALLEY
+CA	SUN VILLAGE
+CA	SURFSIDE
+CA	SUSANVILLE
+CA	SUTTER
+CA	SUTTER CREEK
+CA	SWALL MEADOWS
+CA	SYLMAR
+CA	TAFT
+CA	TAHOE CITY
+CA	TAHOE VISTA
+CA	TAHOMA
+CA	TALMAGE
+CA	TARZANA
+CA	TAYLORSVILLE
+CA	TECATE
+CA	TECOPA
+CA	TEHACHAPI
+CA	TEHAMA
+CA	TEMECULA
+CA	TEMPLE CITY
+CA	TEMPLETON
+CA	TERMO
+CA	TERRA BELLA
+CA	THERMAL
+CA	THE SEA RANCH
+CA	THORNTON
+CA	THOUSAND OAKS
+CA	THOUSAND PALMS
+CA	THOUSAND PLMS
+CA	THREE RIVERS
+CA	TIBURON
+CA	TIONESTA
+CA	TIPTON
+CA	TOLLHOUSE
+CA	TOLUCA LAKE
+CA	TOLUCA TER
+CA	TOLUCA TERRACE
+CA	TOMALES
+CA	TOPANGA
+CA	TOPAZ
+CA	TORRANCE
+CA	TRABUCO
+CA	TRABUCO CANYON
+CA	TRABUCO CYN
+CA	TRACY
+CA	TRANQUILLITY
+CA	TRAVER
+CA	TRAVIS AFB
+CA	TRES PINOS
+CA	TRINIDAD
+CA	TRINITY CENTER
+CA	TRINITY CTR
+CA	TRONA
+CA	TROWBRIDGE
+CA	TRUCKEE
+CA	TUJUNGA
+CA	TULARE
+CA	TULELAKE
+CA	TUOLUMNE
+CA	TUOLUMNE MDWS
+CA	TUOLUMNE MEADOWS
+CA	TUPMAN
+CA	TURLOCK
+CA	TUSTIN
+CA	TUSTIN MCAS
+CA	TWAIN
+CA	TWAIN HARTE
+CA	TWENTYNINE PALMS
+CA	TWENTYNINE PALMS MCB
+CA	TWENTYNIN PLM
+CA	TWIN BRIDGES
+CA	TWIN PEAKS
+CA	UC BERKELEY
+CA	UCI
+CA	UCLA
+CA	UCSB
+CA	UKIAH
+CA	UNION CITY
+CA	UNIVERSAL CITY
+CA	UNIVERSAL CTY
+CA	UNIV OF CAL SANTA BARBARA
+CA	UPLAND
+CA	UPPER LAKE
+CA	VACAVILLE
+CA	VAFB
+CA	VALENCIA
+CA	VALLECITO
+CA	VALLEJO
+CA	VALLEY CENTER
+CA	VALLEY FORD
+CA	VALLEY HOME
+CA	VALLEY SPGS
+CA	VALLEY SPRINGS
+CA	VALLEY VILLAGE
+CA	VALLEY VLG
+CA	VAL VERDE
+CA	VALYERMO
+CA	VANDENBERG AFB
+CA	VANDENBRG AFB
+CA	VAN NUYS
+CA	VENICE
+CA	VENTURA
+CA	VERDEMONT
+CA	VERDUGO CITY
+CA	VERNALIS
+CA	VERNON
+CA	VETERANS ADM
+CA	VETERANS ADMIN
+CA	VETERANS ADMINISTRATION
+CA	VETERANS ADMN
+CA	VICTOR
+CA	VICTORVILLE
+CA	VIDAL
+CA	VIEW PARK
+CA	VILLA GRANDE
+CA	VILLA PARK
+CA	VINA
+CA	VINEBURG
+CA	VINTON
+CA	VISALIA
+CA	VISTA
+CA	VOLCANO
+CA	WALLACE
+CA	WALNUT
+CA	WALNUT CREEK
+CA	WALNUT GROVE
+CA	WALNUT PARK
+CA	WARNER SPGS
+CA	WARNER SPRINGS
+CA	WASCO
+CA	WASHINGTON
+CA	WATERFORD
+CA	WATSONVILLE
+CA	WATTS
+CA	WAUKENA
+CA	WAWONA
+CA	WEAVERVILLE
+CA	WEED
+CA	WEIMAR
+CA	WELDON
+CA	WENDEL
+CA	WEOTT
+CA	WESTCHESTER
+CA	WEST COVINA
+CA	WEST HILLS
+CA	WEST HOLLYWOOD
+CA	WESTLAKE VILLAGE
+CA	WESTLAKE VLG
+CA	WESTLEY
+CA	WEST LOS ANGELES
+CA	WEST MENLO PARK
+CA	WESTMINSTER
+CA	WESTMORLAND
+CA	WEST POINT
+CA	WESTPORT
+CA	WEST SACRAMENTO
+CA	WEST TOLUCA LAKE
+CA	WESTWOOD
+CA	WHEATLAND
+CA	WHISKEYTOWN
+CA	WHITETHORN
+CA	WHITE WATER
+CA	WHITMORE
+CA	WHITTIER
+CA	W HOLLYWOOD
+CA	WILDOMAR
+CA	WILDWOOD
+CA	WILLIAMS
+CA	WILLITS
+CA	WILLOW CREEK
+CA	WILLOWS
+CA	WILLOW SPGS
+CA	WILLOW SPRINGS
+CA	WILMINGTON
+CA	WILSEYVILLE
+CA	WILTON
+CA	WINCHESTER
+CA	WINDSOR
+CA	WINDSOR HILLS
+CA	WINNETKA
+CA	WINTERHAVEN
+CA	WINTERS
+CA	WINTON
+CA	WISHON
+CA	WITTER SPGS
+CA	WITTER SPRINGS
+CA	W LOS ANGELES
+CA	W MENLO PARK
+CA	WOFFORD HEIGHTS
+CA	WOFFORD HTS
+CA	WOODACRE
+CA	WOODBRIDGE
+CA	WOODLAKE
+CA	WOODLAND
+CA	WOODLAND HILLS
+CA	WOODLAND HLS
+CA	WOODSIDE
+CA	WOODVILLE
+CA	WOODY
+CA	WRIGHTWOOD
+CA	W SACRAMENTO
+CA	W TOLUCA LAKE
+CA	YANKEE HILL
+CA	YERMO
+CA	YETTEM
+CA	YOLO
+CA	YORBA LINDA
+CA	YORKVILLE
+CA	YOSEMITE NATIONAL PARK
+CA	YOSEMITE NTPK
+CA	YOUNTVILLE
+CA	YREKA
+CA	YUBA CITY
+CA	YUCAIPA
+CA	YUCCA VALLEY
+CA	ZAMORA
+CA	ZENIA
+CO	AGATE
+CO	AGUILAR
+CO	AKRON
+CO	ALAMOSA
+CO	ALLENSPARK
+CO	ALMA
+CO	ALMONT
+CO	AMHERST
+CO	ANTON
+CO	ANTONITO
+CO	ARAPAHOE
+CO	ARBOLES
+CO	ARLINGTON
+CO	ARRIBA
+CO	ARVADA
+CO	ASPEN
+CO	ATWOOD
+CO	AULT
+CO	AURORA
+CO	AUSTIN
+CO	AVON
+CO	AVONDALE
+CO	BAILEY
+CO	BASALT
+CO	BATTLEMENT MESA
+CO	BAYFIELD
+CO	BEAVER CREEK
+CO	BEDROCK
+CO	BELLVUE
+CO	BENNETT
+CO	BERTHOUD
+CO	BETHUNE
+CO	BEULAH
+CO	BLACK HAWK
+CO	BLANCA
+CO	BONCARBO
+CO	BOND
+CO	BOONE
+CO	BOULDER
+CO	BOW MAR
+CO	BOYERO
+CO	BRANDON
+CO	BRANSON
+CO	BRECKENRIDGE
+CO	BRIGGSDALE
+CO	BRIGHTON
+CO	BRISTOL
+CO	BROOMFIELD
+CO	BRUSH
+CO	BTLMT MESA
+CO	BUENA VISTA
+CO	BUFFALO CREEK
+CO	BURLINGTON
+CO	BURNS
+CO	BYERS
+CO	CADDOA
+CO	CADET STATION
+CO	CAHONE
+CO	CALHAN
+CO	CAMPO
+CO	CANON CITY
+CO	CAPULIN
+CO	CARBONDALE
+CO	CARR
+CO	CASCADE
+CO	CASTLE ROCK
+CO	CEDAREDGE
+CO	CENTENNIAL
+CO	CENTER
+CO	CENTRAL CITY
+CO	CHAMA
+CO	CHERAW
+CO	CHERRY HILLS
+CO	CHERRY HILLS VILLAGE
+CO	CHERRY HL VLG
+CO	CHEYENNE MOUNTAIN AFB
+CO	CHEYENNE WELLS
+CO	CHEYENNE WLS
+CO	CHEY MTN AFB
+CO	CHIMNEY ROCK
+CO	CHIVINGTON
+CO	CHROMO
+CO	CIMARRON
+CO	CLARK
+CO	CLIFTON
+CO	CLIMAX
+CO	COAL CREEK
+CO	COALDALE
+CO	COALMONT
+CO	COKEDALE
+CO	COLLBRAN
+CO	COLO CITY
+CO	COLORADO CITY
+CO	COLORADO SPGS
+CO	COLORADO SPRINGS
+CO	COLO SPGS
+CO	COLUMBINE VALLEY
+CO	COLUMBINE VLY
+CO	COMMERCE CITY
+CO	COMO
+CO	CONEJOS
+CO	CONIFER
+CO	COPE
+CO	CORDILLERA
+CO	CORTEZ
+CO	CORY
+CO	CO SPGS
+CO	COTOPAXI
+CO	COWDREY
+CO	CRAIG
+CO	CRAWFORD
+CO	CREEDE
+CO	CRESTED BUTTE
+CO	CRESTONE
+CO	CRIPPLE CREEK
+CO	CROOK
+CO	CROWLEY
+CO	DACONO
+CO	DE BEQUE
+CO	DECKERS
+CO	DEER TRAIL
+CO	DELHI
+CO	DEL NORTE
+CO	DELTA
+CO	DENVER
+CO	DEORA
+CO	DILLON
+CO	DINOSAUR
+CO	DIVIDE
+CO	DOLORES
+CO	DOVE CREEK
+CO	DRAKE
+CO	DUMONT
+CO	DUPONT
+CO	DURANGO
+CO	EADS
+CO	EAGLE
+CO	EASTLAKE
+CO	EATON
+CO	ECKERT
+CO	ECKLEY
+CO	EDGEWATER
+CO	EDWARDS
+CO	EGNAR
+CO	ELBERT
+CO	ELDORADO SPRG
+CO	ELDORADO SPRINGS
+CO	ELIZABETH
+CO	EL JEBEL
+CO	ELK SPRINGS
+CO	EMPIRE
+CO	ENGLEWOOD
+CO	ERIE
+CO	ESTES PARK
+CO	EVANS
+CO	EVERGREEN
+CO	FAIRPLAY
+CO	FARISTA
+CO	FEDERAL HEIGHTS
+CO	FEDERAL HGTS
+CO	FIRESTONE
+CO	FLAGLER
+CO	FLEMING
+CO	FLORENCE
+CO	FLORISSANT
+CO	FORT CARSON
+CO	FORT COLLINS
+CO	FORT GARLAND
+CO	FORT LUPTON
+CO	FORT LYON
+CO	FORT MORGAN
+CO	FOUNTAIN
+CO	FOWLER
+CO	FOXFIELD
+CO	FOXTON
+CO	FRANKTOWN
+CO	FRASER
+CO	FREDERICK
+CO	FRISCO
+CO	FRUITA
+CO	FRUITVALE
+CO	FT CARSON
+CO	GALETON
+CO	GARCIA
+CO	GARDEN CITY
+CO	GARDNER
+CO	GATEWAY
+CO	GENOA
+CO	GEORGETOWN
+CO	GILCREST
+CO	GILL
+CO	GILMAN
+CO	GLADE PARK
+CO	GLENDALE
+CO	GLEN HAVEN
+CO	GLENWOOD SPGS
+CO	GLENWOOD SPRINGS
+CO	GOLDEN
+CO	GRANADA
+CO	GRANBY
+CO	GRAND JCT
+CO	GRAND JUNCTION
+CO	GRAND LAKE
+CO	GRANITE
+CO	GRANT
+CO	GREAT SAND DUNES NATIONAL MO
+CO	GREELEY
+CO	GREEN MOUNTAIN FALLS
+CO	GREEN MTN FLS
+CO	GREENWOOD VILLAGE
+CO	GREENWOOD VLG
+CO	GROVER
+CO	GUFFEY
+CO	GUNNISON
+CO	GYPSUM
+CO	HALE
+CO	HAMILTON
+CO	HARTMAN
+CO	HARTSEL
+CO	HASTY
+CO	HASWELL
+CO	HAXTUN
+CO	HAYDEN
+CO	HEENEY
+CO	HENDERSON
+CO	HEREFORD
+CO	HESPERUS
+CO	HGHLNDS RANCH
+CO	HIGHLANDS RANCH
+CO	HILLROSE
+CO	HILLSIDE
+CO	HOEHNE
+CO	HOLLY
+CO	HOLYOKE
+CO	HOMELAKE
+CO	HOOPER
+CO	HOTCHKISS
+CO	HOT SLPHR SPR
+CO	HOT SULPHUR SPRINGS
+CO	HOWARD
+CO	HOYT
+CO	HUDSON
+CO	HUGO
+CO	HYGIENE
+CO	IDAHO SPRINGS
+CO	IDALIA
+CO	IDLEDALE
+CO	IGNACIO
+CO	ILIFF
+CO	INDIAN HILLS
+CO	JAMESTOWN
+CO	JANSEN
+CO	JAROSO
+CO	JEFFERSON
+CO	JOES
+CO	JOHNSTOWN
+CO	JULESBURG
+CO	KARVAL
+CO	KEENESBURG
+CO	KERSEY
+CO	KEYSTONE
+CO	KIM
+CO	KIOWA
+CO	KIRK
+CO	KIT CARSON
+CO	KITTREDGE
+CO	KREMMLING
+CO	LAFAYETTE
+CO	LAIRD
+CO	LA JARA
+CO	LA JUNTA
+CO	LAKE CITY
+CO	LAKE GEORGE
+CO	LAKEWOOD
+CO	LAMAR
+CO	LAPORTE
+CO	LARKSPUR
+CO	LA SALLE
+CO	LAS ANIMAS
+CO	LAST CHANCE
+CO	LA VETA
+CO	LAZEAR
+CO	LEADVILLE
+CO	LEWIS
+CO	LIMON
+CO	LIMON CORRECTIONAL FACILITY
+CO	LIMON CRRCTNL
+CO	LINDON
+CO	LITTLETON
+CO	LIVERMORE
+CO	LOCHBUIE
+CO	LOG LANE VILLAGE
+CO	LOG LANE VLG
+CO	LOMA
+CO	LONETREE
+CO	LONE TREE
+CO	LONGMONT
+CO	LOUISVILLE
+CO	LOUVIERS
+CO	LOVELAND
+CO	LOWRY
+CO	LUCERNE
+CO	LYCAN
+CO	LYONS
+CO	MACK
+CO	MAHER
+CO	MANASSA
+CO	MANCOS
+CO	MANITOU SPGS
+CO	MANITOU SPRINGS
+CO	MANZANOLA
+CO	MARBLE
+CO	MARVEL
+CO	MASONVILLE
+CO	MATHESON
+CO	MAYBELL
+CO	MC CLAVE
+CO	MC COY
+CO	MEAD
+CO	MEEKER
+CO	MEREDITH
+CO	MERINO
+CO	MESA
+CO	MESA VERDE
+CO	MESA VERDE NATIONAL PARK
+CO	MESITA
+CO	MILLIKEN
+CO	MINTURN
+CO	MODEL
+CO	MOFFAT
+CO	MOLINA
+CO	MONARCH
+CO	MONTBELLO
+CO	MONTCLAIR
+CO	MONTE VISTA
+CO	MONTEZUMA
+CO	MONTROSE
+CO	MONUMENT
+CO	MORRISON
+CO	MOSCA
+CO	MOUNTAIN VILLAGE
+CO	MOUNTAIN VLG
+CO	NATHROP
+CO	NATURITA
+CO	N AVONDALE
+CO	NEDERLAND
+CO	NEW CASTLE
+CO	NEW RAYMER
+CO	NINAVIEW
+CO	NIWOT
+CO	NORTH AVONDALE
+CO	NORTHGLENN
+CO	NORTH GLENN
+CO	NORWOOD
+CO	NUCLA
+CO	NUNN
+CO	OAK CREEK
+CO	OHIO CITY
+CO	OLATHE
+CO	OLNEY SPRINGS
+CO	OPHIR
+CO	ORCHARD
+CO	ORCHARD CITY
+CO	ORDWAY
+CO	OTIS
+CO	OURAY
+CO	OVID
+CO	PADRONI
+CO	PAGOSA SPGS
+CO	PAGOSA SPRINGS
+CO	PALISADE
+CO	PALMER LAKE
+CO	PAOLI
+CO	PAONIA
+CO	PARACHUTE
+CO	PARADOX
+CO	PARKER
+CO	PARLIN
+CO	PARSHALL
+CO	PEETZ
+CO	PENROSE
+CO	PETERSON AFB
+CO	PEYTON
+CO	PHIPPSBURG
+CO	PIERCE
+CO	PINE
+CO	PINECLIFFE
+CO	PITKIN
+CO	PLACERVILLE
+CO	PLATTEVILLE
+CO	PLEASANT VIEW
+CO	PONCHA SPGS
+CO	PONCHA SPRINGS
+CO	POWDERHORN
+CO	PRITCHETT
+CO	PUEBLO
+CO	PUEBLO DEP AC
+CO	PUEBLO DEPOT ACTIVITY
+CO	PUEBLO WEST
+CO	RAMAH
+CO	RAND
+CO	RANGELY
+CO	RED CLIFF
+CO	RED FEATHER LAKES
+CO	RED FE LKS
+CO	REDSTONE
+CO	REDVALE
+CO	RICO
+CO	RIDGWAY
+CO	RIFLE
+CO	ROCKVALE
+CO	ROCKY FORD
+CO	ROGGEN
+CO	ROLLINSVILLE
+CO	ROMEO
+CO	RUSH
+CO	RYE
+CO	SAGUACHE
+CO	SALIDA
+CO	SAN ACACIO
+CO	SAND DUNES MO
+CO	SANFORD
+CO	SANGRE DE CRI
+CO	SANGRE DE CRISTO RANCHES
+CO	SAN LUIS
+CO	SAN PABLO
+CO	SAPINERO
+CO	SARGENTS
+CO	SCHRIEVER AFB
+CO	SEDALIA
+CO	SEDGWICK
+CO	SEIBERT
+CO	SEVERANCE
+CO	SHAWNEE
+CO	SHERIDAN
+CO	SHERIDAN LAKE
+CO	SILT
+CO	SILVER CLIFF
+CO	SILVER PLUME
+CO	SILVERTHORNE
+CO	SILVERTON
+CO	SIMLA
+CO	SLATER
+CO	SLICK ROCK
+CO	SNOWMASS
+CO	SNOWMASS VILLAGE
+CO	SNOWMASS VLG
+CO	SNYDER
+CO	SOMERSET
+CO	SOPRIS
+CO	SOUTHERN UTE INDIAN RESERVAT
+CO	SOUTH FORK
+CO	SPRINGFIELD
+CO	STARKVILLE
+CO	STEAMBOAT SPR
+CO	STEAMBOAT SPRINGS
+CO	STERLING
+CO	STONEHAM
+CO	STRASBURG
+CO	STRATTON
+CO	SUGAR CITY
+CO	SUPERIOR
+CO	S UTE INDIAN
+CO	SWINK
+CO	TABERNASH
+CO	TELLURIDE
+CO	THATCHER
+CO	THORNTON
+CO	TIMNATH
+CO	TIMPAS
+CO	TOPONAS
+CO	TOWAOC
+CO	TOWNER
+CO	TRINCHERA
+CO	TRINIDAD
+CO	TWIN LAKES
+CO	TWO BUTTES
+CO	TYRONE
+CO	UNITED STATES AIR FORCE ACAD
+CO	U S A F ACADEMY
+CO	USAF ACADEMY
+CO	US AIR FORCE
+CO	UTLEYVILLE
+CO	VAIL
+CO	VERNON
+CO	VICTOR
+CO	VILAS
+CO	VILLA GROVE
+CO	VILLEGREEN
+CO	VIRGINIA DALE
+CO	VONA
+CO	WALDEN
+CO	WALSENBURG
+CO	WALSH
+CO	WARD
+CO	WATKINS
+CO	WATTENBURG
+CO	WELDONA
+CO	WELLINGTON
+CO	WESTCLIFFE
+CO	WESTMINSTER
+CO	WESTON
+CO	WETMORE
+CO	WHEAT RIDGE
+CO	WHITEWATER
+CO	WIGGINS
+CO	WILD HORSE
+CO	WILEY
+CO	WILLARD
+CO	WINDSOR
+CO	WINTER PARK
+CO	WOLCOTT
+CO	WOODLAND PARK
+CO	WOODROW
+CO	WOODY CREEK
+CO	WRAY
+CO	YAMPA
+CO	YELLOW JACKET
+CO	YODER
+CO	YUMA
+CT	ABINGTON
+CT	AMSTON
+CT	ANDOVER
+CT	ANSONIA
+CT	ASHFORD
+CT	AVON
+CT	BALLOUVILLE
+CT	BALTIC
+CT	BANTAM
+CT	BARKHAMSTED
+CT	BEACON FALLS
+CT	BERLIN
+CT	BETHANY
+CT	BETHEL
+CT	BETHLEHEM
+CT	BISHOPS COR
+CT	BISHOPS CORNER
+CT	BLOOMFIELD
+CT	BOLTON
+CT	BOTSFORD
+CT	BOZRAH
+CT	BRANFORD
+CT	BRIDGEPORT
+CT	BRIDGEWATER
+CT	BRISTOL
+CT	BROAD BROOK
+CT	BROOKFIELD
+CT	BROOKFLD CTR
+CT	BROOKLYN
+CT	BURLINGTON
+CT	CANAAN
+CT	CANTERBURY
+CT	CANTON
+CT	CANTON CENTER
+CT	CENTERBROOK
+CT	CENTRAL VILLAGE
+CT	CENTRAL VLG
+CT	CHAPLIN
+CT	CHESHIRE
+CT	CHESTER
+CT	CLINTON
+CT	COBALT
+CT	COLCHESTER
+CT	COLEBROOK
+CT	COLLINSVILLE
+CT	COLUMBIA
+CT	CORNWALL
+CT	CORNWALL BRG
+CT	CORNWALL BRIDGE
+CT	COS COB
+CT	COVENTRY
+CT	CROMWELL
+CT	DANBURY
+CT	DANIELSON
+CT	DARIEN
+CT	DAYVILLE
+CT	DEEP RIVER
+CT	DERBY
+CT	DURHAM
+CT	EAST BERLIN
+CT	EAST CANAAN
+CT	EASTFORD
+CT	EAST GLASTONBURY
+CT	EAST GRANBY
+CT	EAST HADDAM
+CT	EAST HAMPTON
+CT	EAST HARTFORD
+CT	EAST HARTLAND
+CT	EAST HAVEN
+CT	EAST KILLINGLY
+CT	EAST LYME
+CT	EASTON
+CT	EAST WINDSOR
+CT	EAST WINDSOR HILL
+CT	EAST WOODSTOCK
+CT	E GLASTONBURY
+CT	E KILLINGLY
+CT	ELLINGTON
+CT	ENFIELD
+CT	ESSEX
+CT	E WINDSOR HL
+CT	E WOODSTOCK
+CT	FABYAN
+CT	FAIRFIELD
+CT	FALLS VILLAGE
+CT	FARMINGTON
+CT	GALES FERRY
+CT	GAYLORDSVILLE
+CT	GEORGETOWN
+CT	GILMAN
+CT	GLASGO
+CT	GLASTONBURY
+CT	GOSHEN
+CT	GRANBY
+CT	GREENS FARMS
+CT	GREENWICH
+CT	GRISWOLD
+CT	GROSVENOR DALE
+CT	GROSVENOR DL
+CT	GROTON
+CT	GUILFORD
+CT	HADDAM
+CT	HADDAM NECK
+CT	HADLYME
+CT	HAMDEN
+CT	HAMPTON
+CT	HANOVER
+CT	HARTFORD
+CT	HARWINTON
+CT	HAWLEYVILLE
+CT	HEBRON
+CT	HIGGANUM
+CT	HUNTINGTON
+CT	IVORYTON
+CT	JEWETT CITY
+CT	KENSINGTON
+CT	KENT
+CT	KILLINGWORTH
+CT	LAKESIDE
+CT	LAKEVILLE
+CT	LEBANON
+CT	LEDYARD
+CT	LISBON
+CT	LITCHFIELD
+CT	LYME
+CT	MACYS BY MAIL
+CT	MADISON
+CT	MANCHESTER
+CT	MANSFIELD CENTER
+CT	MANSFIELD CTR
+CT	MANSFIELD DEPOT
+CT	MANSFIELD DPT
+CT	MARION
+CT	MARLBOROUGH
+CT	MASHANTUCKET
+CT	MELROSE
+CT	MERIDEN
+CT	MIDDLEBURY
+CT	MIDDLEFIELD
+CT	MIDDLE HADDAM
+CT	MIDDLETOWN
+CT	MILFORD
+CT	MILLDALE
+CT	MONROE
+CT	MONTVILLE
+CT	MOODUS
+CT	MOOSUP
+CT	MORRIS
+CT	MYSTIC
+CT	NAUGATUCK
+CT	N BRANFORD
+CT	NEW BRITAIN
+CT	NEW CANAAN
+CT	NEW FAIRFIELD
+CT	NEW HARTFORD
+CT	NEW HAVEN
+CT	NEWINGTON
+CT	NEW LONDON
+CT	NEW MILFORD
+CT	NEW PRESTON
+CT	NEW PRESTON MARBLE DALE
+CT	NEWTOWN
+CT	N FRANKLIN
+CT	N GROSVENORDL
+CT	NIANTIC
+CT	NORFOLK
+CT	NORTH BRANFORD
+CT	NORTH CANTON
+CT	NORTHFIELD
+CT	NORTHFORD
+CT	NORTH FRANKLIN
+CT	NORTH GRANBY
+CT	NORTH GROSVENORDALE
+CT	NORTH HAVEN
+CT	NORTH STONINGTON
+CT	NORTH WESTCHESTER
+CT	NORTH WINDHAM
+CT	NORWALK
+CT	NORWICH
+CT	N STONINGTON
+CT	N WESTCHESTER
+CT	OAKDALE
+CT	OAKVILLE
+CT	OLD GREENWICH
+CT	OLD LYME
+CT	OLD MYSTIC
+CT	OLD SAYBROOK
+CT	ONECO
+CT	ORANGE
+CT	OXFORD
+CT	PAWCATUCK
+CT	PEQUABUCK
+CT	PINE MEADOW
+CT	PLAINFIELD
+CT	PLAINVILLE
+CT	PLANTSVILLE
+CT	PLEASANT VALLEY
+CT	PLEASANT VLY
+CT	PLYMOUTH
+CT	POMFRET
+CT	POMFRET CENTER
+CT	POMFRET CTR
+CT	POQUONOCK
+CT	PORTLAND
+CT	PRESTON
+CT	PROSPECT
+CT	PUTNAM
+CT	QUAKER HILL
+CT	QUINEBAUG
+CT	REDDING
+CT	REDDING CEN
+CT	REDDING CENTER
+CT	REDDING RIDGE
+CT	RIDGEFIELD
+CT	RIDGEWAY
+CT	RIVERSIDE
+CT	RIVERTON
+CT	ROCKFALL
+CT	ROCKY HILL
+CT	ROGERS
+CT	ROXBURY
+CT	SALEM
+CT	SALISBURY
+CT	SANDY HOOK
+CT	SCOTLAND
+CT	SEYMOUR
+CT	S GLASTONBURY
+CT	SHARON
+CT	SHELTON
+CT	SHERMAN
+CT	SILVER LANE
+CT	SIMSBURY
+CT	SOMERS
+CT	SOMERSVILLE
+CT	SOUTH BRITAIN
+CT	SOUTHBURY
+CT	SOUTH GLASTONBURY
+CT	SOUTHINGTON
+CT	SOUTH KENT
+CT	SOUTH LYME
+CT	SOUTHPORT
+CT	SOUTH WILLINGTON
+CT	SOUTH WINDHAM
+CT	SOUTH WINDSOR
+CT	SOUTH WOODSTOCK
+CT	STAFFORD
+CT	STAFFORD SPGS
+CT	STAFFORD SPRINGS
+CT	STAFFORDVILLE
+CT	STAMFORD
+CT	STERLING
+CT	STEVENSON
+CT	STONINGTON
+CT	STORRS MANFLD
+CT	STORRS MANSFIELD
+CT	STRATFORD
+CT	SUFFIELD
+CT	S WILLINGTON
+CT	S WOODSTOCK
+CT	TACONIC
+CT	TAFTVILLE
+CT	TARIFFVILLE
+CT	TERRYVILLE
+CT	THOMASTON
+CT	THOMPSON
+CT	TOLLAND
+CT	TORRINGTON
+CT	TRUMBULL
+CT	UNCASVILLE
+CT	UNION
+CT	UNIONVILLE
+CT	VERNON
+CT	VERNON ROCKVILLE
+CT	VERNON ROCKVL
+CT	VERSAILLES
+CT	VOLUNTOWN
+CT	WALLINGFORD
+CT	WARREN
+CT	WARRENVILLE
+CT	WASHINGTON
+CT	WASHINGTON DEPOT
+CT	WASHINGTON DT
+CT	WATERBURY
+CT	WATERFORD
+CT	WATERTOWN
+CT	WAUREGAN
+CT	WEATOGUE
+CT	WESTBROOK
+CT	WEST CORNWALL
+CT	WEST GRANBY
+CT	WEST HARTFORD
+CT	WEST HARTFRD
+CT	WEST HARTLAND
+CT	WEST HAVEN
+CT	WEST MYSTIC
+CT	WESTON
+CT	WESTPORT
+CT	WEST REDDING
+CT	WEST SIMSBURY
+CT	WEST SUFFIELD
+CT	WETHERSFIELD
+CT	W HAVEN
+CT	WHITNEYVILLE
+CT	WILLIMANTIC
+CT	WILLINGTON
+CT	WILTON
+CT	WINCHESTER CENTER
+CT	WINCHESTR CTR
+CT	WINDHAM
+CT	WINDSOR
+CT	WINDSOR LOCKS
+CT	WINDSORVILLE
+CT	WINSTED
+CT	WOLCOTT
+CT	WOODBRIDGE
+CT	WOODBURY
+CT	WOODSTOCK
+CT	WOODSTOCK VALLEY
+CT	WOODSTOCK VLY
+CT	YALESVILLE
+CT	YANTIC
+DC	ANACOSTIA
+DC	ANACOSTIA ANX
+DC	BOLLING AFB
+DC	FORT LESLEY J MCNAIR
+DC	FORT MCNAIR
+DC	FT L J MCNAIR
+DC	MARINE BARRKS
+DC	NAVAL ANACOST ANNEX
+DC	NAVAL SEA SYS
+DC	NAVAL SEA SYSTEMS COMMAND
+DC	NAVY ANNEX
+DC	PENTAGON
+DC	RIGGS BANK
+DC	US MARINE CORPS BARRACKS
+DC	WASHINGTON
+DC	WASHINGTON NA
+DC	WASHINGTON NAVY YARD
+DE	BEAR
+DE	BETHANY BEACH
+DE	BETHEL
+DE	BLADES
+DE	BRIDGEVILLE
+DE	CAMDEN
+DE	CAMDEN WYO
+DE	CAMDEN WYOMING
+DE	CHESWOLD
+DE	CHRISTIANA
+DE	CLARKSVILLE
+DE	CLAYMONT
+DE	CLAYTON
+DE	DAGSBORO
+DE	DELAWARE CITY
+DE	DELMAR
+DE	DOVER
+DE	DOVER AFB
+DE	DOVER AIR FORCE BASE
+DE	EDGEMOOR
+DE	ELLENDALE
+DE	ELSMERE
+DE	FARMINGTON
+DE	FELTON
+DE	FENWICK ISLAND
+DE	FENWICK ISLE
+DE	FRANKFORD
+DE	FREDERICA
+DE	GEORGETOWN
+DE	GREENVILLE
+DE	GREENWOOD
+DE	HARBESON
+DE	HARRINGTON
+DE	HARTLY
+DE	HOCKESSIN
+DE	HOUSTON
+DE	KENTON
+DE	KIRKWOOD
+DE	LAUREL
+DE	LEIPSIC
+DE	LEWES
+DE	LINCOLN
+DE	LITTLE CREEK
+DE	LONG NECK
+DE	MAGNOLIA
+DE	MANOR
+DE	MARSHALLTON
+DE	MARYDEL
+DE	MBNA
+DE	MIDDLETOWN
+DE	MILFORD
+DE	MILLSBORO
+DE	MILLVILLE
+DE	MILTON
+DE	MONTCHANIN
+DE	NASSAU
+DE	NEWARK
+DE	NEW CASTLE
+DE	NEWPORT
+DE	OCEAN VIEW
+DE	ODESSA
+DE	PORT PENN
+DE	REHOBOTH BCH
+DE	REHOBOTH BEACH
+DE	ROCKLAND
+DE	SAINT GEORGES
+DE	SEAFORD
+DE	SELBYVILLE
+DE	SMYRNA
+DE	STANTON
+DE	TALLEYVILLE
+DE	TOWNSEND
+DE	VIOLA
+DE	WILMINGTON
+DE	WINTERTHUR
+DE	WOODSIDE
+DE	WYOMING
+DE	YORKLYN
+FL	ALACHUA
+FL	ALAFAYA
+FL	ALFORD
+FL	ALLANDALE
+FL	ALLIGATOR POINT
+FL	ALLIGATOR PT
+FL	ALOMA
+FL	ALTAMONTE SPG
+FL	ALTAMONTE SPRINGS
+FL	ALTHA
+FL	ALTOONA
+FL	ALTURAS
+FL	ALVA
+FL	ALYS BEACH
+FL	AMELIA ISLAND
+FL	ANNA MARIA
+FL	ANTHONY
+FL	APALACHICOLA
+FL	APOLLO BEACH
+FL	APOPKA
+FL	ARCADIA
+FL	ARCHER
+FL	ARGYLE
+FL	ARIPEKA
+FL	ASTATULA
+FL	ASTOR
+FL	ATLANTIC BCH
+FL	ATLANTIC BEACH
+FL	ATLANTIS
+FL	AUBURNDALE
+FL	AVE MARIA
+FL	AVENTURA
+FL	AVON PARK
+FL	AZALEA PARK
+FL	BABSON PARK
+FL	BAGDAD
+FL	BAKER
+FL	BALDWIN
+FL	BAL HARBOUR
+FL	BALM
+FL	BARBERVILLE
+FL	BAREFOOT BAY
+FL	BAREFOOT BCH
+FL	BAREFOOT BEACH
+FL	BARTOW
+FL	BASCOM
+FL	BASINGER
+FL	BAY HARBOR IS
+FL	BAY HARBOR ISLANDS
+FL	BAYONET POINT
+FL	BAY PINES
+FL	BELL
+FL	BELLEAIR
+FL	BELLEAIR BCH
+FL	BELLEAIR BEACH
+FL	BELLEAIR BLF
+FL	BELLEAIR BLUFFS
+FL	BELLEAIR SHORES
+FL	BELLEAIR SHRS
+FL	BELLE GLADE
+FL	BELLE ISLE
+FL	BELLEVIEW
+FL	BELLVIEW
+FL	BEVERLY HILLS
+FL	BIG PINE KEY
+FL	BIG TORCH KEY
+FL	BISCAYNE PARK
+FL	BLOUNTSTOWN
+FL	BOCA GRANDE
+FL	BOCA RATON
+FL	BOKEELIA
+FL	BONIFAY
+FL	BONITA SPGS
+FL	BONITA SPRINGS
+FL	BOSTWICK
+FL	BOWLING GREEN
+FL	BOYNTON BEACH
+FL	BRADEN RIVER
+FL	BRADENTON
+FL	BRADENTON BCH
+FL	BRADENTON BEACH
+FL	BRADLEY
+FL	BRANDON
+FL	BRANFORD
+FL	BRINY BREEZES
+FL	BRISTOL
+FL	BRONSON
+FL	BROOKER
+FL	BROOKSVILLE
+FL	BRUCE
+FL	BRYANT
+FL	BRYCEVILLE
+FL	BUENA VENTURA LAKES
+FL	BUNNELL
+FL	BUSHNELL
+FL	BVL
+FL	CALLAHAN
+FL	CALLAWAY
+FL	CAMPBELLTON
+FL	CANAL POINT
+FL	CANAVERAL AIR STATION
+FL	CANAVERAL AS
+FL	CANDLER
+FL	CANTONMENT
+FL	CAPE CANAVERAL
+FL	CAPE CORAL
+FL	CAPE CORAL S
+FL	CAPE CORAL SOUTH
+FL	CAPE HAZE
+FL	CAPE SAN BLAS
+FL	CAPTIVA
+FL	CARL FISHER
+FL	CAROL CITY
+FL	CARRABELLE
+FL	CARROLLWOOD
+FL	CARYVILLE
+FL	CASSADAGA
+FL	CASSELBERRY
+FL	CECIL FIELD
+FL	CEDAR KEY
+FL	CELEBRATION
+FL	CENTER HILL
+FL	CENTURY
+FL	CHAMPIONS GATE
+FL	CHAMPIONS GT
+FL	CHATTAHOOCHEE
+FL	CHIEFLAND
+FL	CHIPLEY
+FL	CHOCTAW BEACH
+FL	CHOKOLOSKEE
+FL	CHRISTMAS
+FL	CHULUOTA
+FL	CITRA
+FL	CITRUS HILLS
+FL	CITRUS RIDGE
+FL	CITRUS SPGS
+FL	CITRUS SPRINGS
+FL	CITY OF SUNRISE
+FL	CLAIR MEL
+FL	CLAIR MEL CITY
+FL	CLARCONA
+FL	CLARKSVILLE
+FL	CLEARWATER
+FL	CLEARWATER BEACH
+FL	CLERMONT
+FL	CLEWISTON
+FL	CLOUD LAKE
+FL	COCOA
+FL	COCOA BEACH
+FL	COCONUTCREEK
+FL	COCONUT CREEK
+FL	COCONUT GROVE
+FL	COCO RIVER
+FL	COLEMAN
+FL	CONCH KEY
+FL	COOPER CITY
+FL	COPELAND
+FL	CORAL GABLES
+FL	CORAL SPRINGS
+FL	CORTEZ
+FL	COTTONDALE
+FL	CPE CANAVERAL
+FL	CRAWFORDVILLE
+FL	CRESCENT CITY
+FL	CRESTVIEW
+FL	CROSS CITY
+FL	CROSS CREEK
+FL	CRYSTAL BEACH
+FL	CRYSTAL RIVER
+FL	CRYSTAL SPGS
+FL	CRYSTAL SPRINGS
+FL	CUDJOE KEY
+FL	CUTLER BAY
+FL	CUTLER RIDGE
+FL	CYPRESS
+FL	CYPRESS GARDENS
+FL	CYPRESS GDNS
+FL	DADE CITY
+FL	DANIA
+FL	DANIA BEACH
+FL	DAVENPORT
+FL	DAVIE
+FL	DAY
+FL	DAYT BCH SH
+FL	DAYTONA BEACH
+FL	DAYTONA BEACH SHORES
+FL	DEBARY
+FL	DEERFIELD BCH
+FL	DEERFIELD BEACH
+FL	DEER ISLAND
+FL	DEFUNIAK SPGS
+FL	DEFUNIAK SPRINGS
+FL	DELAND
+FL	DE LEON SPGS
+FL	DE LEON SPRINGS
+FL	DELRAY BEACH
+FL	DELTONA
+FL	DESTIN
+FL	DFAFS
+FL	DINSMORE
+FL	DOCTORS INLET
+FL	DONA VISTA
+FL	DORAL
+FL	DOVER
+FL	DOWLING PARK
+FL	DUCK KEY
+FL	DUETTE
+FL	DUKE FIELD AFS
+FL	DUNDEE
+FL	DUNEDIN
+FL	DUNNELLON
+FL	DURANT
+FL	EAGLE LAKE
+FL	EARLETON
+FL	EASTLAKE WEIR
+FL	EAST PALATKA
+FL	EASTPOINT
+FL	EAST ROCKLAND KEY
+FL	EATON PARK
+FL	EATONVILLE
+FL	EAU GALLIE
+FL	EBRO
+FL	EDGAR
+FL	EDGEWATER
+FL	EDGEWOOD
+FL	EGLIN AFB
+FL	ELFERS
+FL	EL JOBEAN
+FL	ELKTON
+FL	ELLENTON
+FL	ELOISE
+FL	EL PORTAL
+FL	ENGLEWOOD
+FL	ENTERPRISE
+FL	E ROCKLAND KEY
+FL	E ROCKLAND KY
+FL	ESTERO
+FL	EUSTIS
+FL	EVERGLADES
+FL	EVERGLADES CITY
+FL	EVINSTON
+FL	FAIRFIELD
+FL	FANNING SPGS
+FL	FANNING SPRINGS
+FL	FEDHAVEN
+FL	FELDA
+FL	FELLSMERE
+FL	FERNANDINA
+FL	FERNANDINA BEACH
+FL	FERNDALE
+FL	FERN PARK
+FL	FLAGLER BEACH
+FL	FLAMINGO LDGE
+FL	FLAMINGO LODGE
+FL	FLEMING ISLAND
+FL	FLEMING ISLE
+FL	FLORAHOME
+FL	FLORAL CITY
+FL	FLORENCE VILL
+FL	FLORENCE VILLA
+FL	FLORIDA A AND M UNIVERSITY
+FL	FLORIDA A & M
+FL	FLORIDA CITY
+FL	FLORIDA STATE
+FL	FLORIDA STATE UNIVERSITY
+FL	FOREST CITY
+FL	FORT DENAUD
+FL	FORT LAUDERDALE
+FL	FORT MC COY
+FL	FORT MEADE
+FL	FORT MYERS
+FL	FORT MYERS BEACH
+FL	FORT OGDEN
+FL	FORT PIERCE
+FL	FORT WALTON BEACH
+FL	FORT WHITE
+FL	FOUNTAIN
+FL	FREEPORT
+FL	FROSTPROOF
+FL	FRUIT COVE
+FL	FRUITLAND PARK
+FL	FRUITLAND PK
+FL	FT DENAUD
+FL	FT LAUDERDALE
+FL	FT MYERS BCH
+FL	FT WALTON BCH
+FL	GAINESVILLE
+FL	GENEVA
+FL	GEORGETOWN
+FL	GIBSONTON
+FL	GLEN RIDGE
+FL	GLEN SAINT MARY
+FL	GLEN ST MARY
+FL	GLENWOOD
+FL	GOLDEN BEACH
+FL	GOLDENROD
+FL	GONZALEZ
+FL	GOODLAND
+FL	GOTHA
+FL	GOULDS
+FL	GRACEVILLE
+FL	GRAHAM
+FL	GRANDE POINTE
+FL	GRANDIN
+FL	GRAND ISLAND
+FL	GRAND RIDGE
+FL	GRANT
+FL	GRANT VALKARIA
+FL	GRANT VLKRIA
+FL	GRASSY KEY
+FL	GREENACRES
+FL	GREEN ACRES
+FL	GREEN COVE SPRINGS
+FL	GREEN CV SPGS
+FL	GREENSBORO
+FL	GREENVILLE
+FL	GREENWOOD
+FL	GRETNA
+FL	GROVE CITY
+FL	GROVELAND
+FL	GULF BREEZE
+FL	GULF HAMMOCK
+FL	GULFPORT
+FL	GULF STREAM
+FL	HAINES CITY
+FL	HAINES CREEK
+FL	HALLANDALE
+FL	HALLANDALE BEACH
+FL	HALNDLE BCH
+FL	HAMPTON
+FL	HARMONY
+FL	HASTINGS
+FL	HAVANA
+FL	HAVERHILL
+FL	HAWTHORNE
+FL	HEATHROW
+FL	HERNANDO
+FL	HERNANDO BCH
+FL	HERNANDO BEACH
+FL	HIALEAH
+FL	HIALEAH GARDENS
+FL	HIALEAH GDNS
+FL	HIAWASSEE
+FL	HIGHLAND BCH
+FL	HIGHLAND BEACH
+FL	HIGHLAND CITY
+FL	HIGH SPRINGS
+FL	HILLIARD
+FL	HILLSBORO BCH
+FL	HILLSBORO BEACH
+FL	HOBE SOUND
+FL	HOLDER
+FL	HOLIDAY
+FL	HOLLISTER
+FL	HOLLY HILL
+FL	HOLLYWOOD
+FL	HOLMES BEACH
+FL	HOLT
+FL	HOMELAND
+FL	HOME SHOPPING
+FL	HOMESTEAD
+FL	HOMESTEAD AFB
+FL	HOMESTEAD AIR FORCE BASE
+FL	HOMOSASSA
+FL	HOMOSASSA SPG
+FL	HOMOSASSA SPRINGS
+FL	HORSESHOE BCH
+FL	HORSESHOE BEACH
+FL	HOSFORD
+FL	HOWEY IN HLS
+FL	HOWEY IN THE HILLS
+FL	HUDSON
+FL	HURLBURT FIELD
+FL	HURLBURT FLD
+FL	HUTCHINSON IS
+FL	HUTCHINSON ISLAND
+FL	HYPOLUXO
+FL	IMMOKALEE
+FL	IND CRK VLG
+FL	IND HBR BCH
+FL	INDIALANTIC
+FL	INDIAN CREEK VILLAGE
+FL	INDIAN HARBOUR BEACH
+FL	INDIAN LAKE ESTATES
+FL	INDIAN LK EST
+FL	INDIAN RIVER SHORES
+FL	INDIAN RK BCH
+FL	INDIAN RKS BEACH
+FL	INDIAN ROCKS BEACH
+FL	INDIAN SHORES
+FL	INDIANTOWN
+FL	INDN HBR BCH
+FL	INDN RIV SHRS
+FL	INGLIS
+FL	INLET BEACH
+FL	INTERCESSION CITY
+FL	INTERLACHEN
+FL	INTRCSION CTY
+FL	INVERNESS
+FL	ISLAMORADA
+FL	ISLAND GROVE
+FL	ISTACHATTA
+FL	JACKSONVILLE
+FL	JACKSONVILLE BEACH
+FL	JACKSONVILLE N A S
+FL	JACOB
+FL	JASPER
+FL	JAX BCH
+FL	JAX NAVAL AIR
+FL	JAY
+FL	JENNINGS
+FL	JENSEN BEACH
+FL	JEROME
+FL	JONESVILLE
+FL	JPV
+FL	JULINGTON CREEK
+FL	JULINGTON CRK
+FL	JUNO BEACH
+FL	JUPITER
+FL	JUPITER INLET
+FL	JUPITER INLET COLONY
+FL	KATHLEEN
+FL	KENANSVILLE
+FL	KENDALL
+FL	KENNEDY SPACE CENTER
+FL	KENNEDY SP CT
+FL	KENNETH CITY
+FL	KEY BISCAYNE
+FL	KEY COL BCH
+FL	KEY COLONY BEACH
+FL	KEY LARGO
+FL	KEYSTONE HEIGHTS
+FL	KEYSTONE HGTS
+FL	KEY WEST
+FL	KEY WEST NAS
+FL	KEY WEST NAVAL AIR STATION
+FL	KILLARNEY
+FL	KINARD
+FL	KINGSLEY LAKE
+FL	KISSIMMEE
+FL	KNGSLY LK
+FL	LABELLE
+FL	LACOOCHEE
+FL	LA CROSSE
+FL	LADY LAKE
+FL	LAKE ALFRED
+FL	LAKE BUENA VISTA
+FL	LAKE BUTLER
+FL	LAKE CITY
+FL	LAKE CLARKE
+FL	LAKE CLARKE SHORES
+FL	LAKE COMO
+FL	LAKE GENEVA
+FL	LAKE HAMILTON
+FL	LAKE HARBOR
+FL	LAKE HELEN
+FL	LAKELAND
+FL	LAKE MARY
+FL	LAKE MONROE
+FL	LAKE PANASOFFKEE
+FL	LAKE PARK
+FL	LAKE PLACID
+FL	LAKESHORE
+FL	LAKE SUZY
+FL	LAKE WALES
+FL	LAKEWOOD RANCH
+FL	LAKEWOOD RCH
+FL	LAKE WORTH
+FL	LAMONT
+FL	LANARK VILLAGE
+FL	LANARK VLG
+FL	LAND O LAKES
+FL	LANTANA
+FL	LARGO
+FL	LAUD BY SEA
+FL	LAUDERDALE BY THE SEA
+FL	LAUDERDALE LAKES
+FL	LAUDERHILL
+FL	LAUD LAKES
+FL	LAUREL
+FL	LAUREL HILL
+FL	LAWTEY
+FL	LAZY LAKE
+FL	LECANTO
+FL	LEE
+FL	LEESBURG
+FL	LEHIGH ACRES
+FL	LIGHTHOUSE POINT
+FL	LIGHTHOUSE PT
+FL	LITHIA
+FL	LITTLE TORCH KEY
+FL	LIVE OAK
+FL	LK BUENA VIS
+FL	LK PANASOFFKE
+FL	LLOYD
+FL	LOCHLOOSA
+FL	LOCKHART
+FL	LONGBOAT KEY
+FL	LONG KEY
+FL	LONGWOOD
+FL	LORIDA
+FL	LOUGHMAN
+FL	LOWELL
+FL	LOWER SUGARLOAF KEY
+FL	LOXAHATCHEE
+FL	LOXAHATCHEE GROVES
+FL	LTL TORCH KEY
+FL	LUDLAM
+FL	LULU
+FL	LUTZ
+FL	LWR SUGARLOAF
+FL	LXHTCHEE GRVS
+FL	LYNN HAVEN
+FL	MACCLENNY
+FL	MACDILL AFB
+FL	MADEIRA BEACH
+FL	MADISON
+FL	MAGNOLIA SQ
+FL	MAGNOLIA SQUARE
+FL	MAITLAND
+FL	MALABAR
+FL	MALONE
+FL	MANALAPAN
+FL	MANASOTA
+FL	MANGO
+FL	MARATHON
+FL	MARATHON SHORES
+FL	MARATHON SHRS
+FL	MARCO ISLAND
+FL	MARGATE
+FL	MARIANNA
+FL	MARY ESTHER
+FL	MASARYKTOWN
+FL	MASCOTTE
+FL	MATLACHA
+FL	MATLACHA ISLE
+FL	MATLACHA ISLES
+FL	MAXVILLE
+FL	MAYO
+FL	MAYPORT NAVAL STATION
+FL	MAYPORT NAV S
+FL	MC ALPIN
+FL	MC DAVID
+FL	MC INTOSH
+FL	MEDLEY
+FL	MELBOURNE
+FL	MELBOURNE BCH
+FL	MELBOURNE BEACH
+FL	MELBOURNE VILLAGE
+FL	MELBOURNE VLG
+FL	MELROSE
+FL	MERRITT IS
+FL	MERRITT ISLAND
+FL	MEXICO BEACH
+FL	MIAMI
+FL	MIAMI BEACH
+FL	MIAMI GARDENS
+FL	MIAMI LAKES
+FL	MIAMI SHORES
+FL	MIAMI SPRINGS
+FL	MICANOPY
+FL	MICCO
+FL	MICCOSUKEE
+FL	MIDDLEBURG
+FL	MIDDLE TORCH KEY
+FL	MID FLORIDA
+FL	MID TORCH KEY
+FL	MIDWAY
+FL	MILLIGAN
+FL	MILTON
+FL	MIMS
+FL	MINNEOLA
+FL	MIRAMAR
+FL	MIRAMAR BEACH
+FL	MIROMAR LAKES
+FL	MOLINO
+FL	MONTICELLO
+FL	MONTVERDE
+FL	MOORE HAVEN
+FL	MORRISTON
+FL	MOSSY HEAD
+FL	MOUNT DORA
+FL	MOUNT PLEASANT
+FL	MOUNT PLYMOUTH
+FL	MT PLEASANT
+FL	MT PLYMOUTH
+FL	MULBERRY
+FL	MURDOCK
+FL	MYAKKA CITY
+FL	NALCREST
+FL	NAPLES
+FL	NARANJA
+FL	NAVARRE
+FL	NEPTUNE BEACH
+FL	NEWBERRY
+FL	NEW PORT RICHEY
+FL	NEW PRT RCHY
+FL	NEW PT RICHEY
+FL	NEW SMYRNA
+FL	NEW SMYRNA BEACH
+FL	N FORT MYERS
+FL	N FT MYERS
+FL	NICEVILLE
+FL	NICHOLS
+FL	N LAUDERDALE
+FL	N MIAMI BEACH
+FL	NOBLETON
+FL	NOCATEE
+FL	NO FORT MYERS
+FL	NO FT MYERS
+FL	NOKOMIS
+FL	NOMA
+FL	NORTH BAY VILLAGE
+FL	NORTH BAY VLG
+FL	NORTHDALE
+FL	NORTH FORT MYERS
+FL	NORTH FT MYERS
+FL	NORTH LAUDERDALE
+FL	NORTH MIAMI
+FL	NORTH MIAMI BEACH
+FL	NORTH PALM BEACH
+FL	NORTH PORT
+FL	NORTH REDINGTON BEACH
+FL	NORTH VENICE
+FL	N PALM BEACH
+FL	N REDNGTN BCH
+FL	NW PRT RCHY
+FL	OAK HILL
+FL	OAKLAND
+FL	OAKLAND PARK
+FL	O BRIEN
+FL	OCALA
+FL	OCEAN RIDGE
+FL	OCHLOCKONEE
+FL	OCHLOCKONEE BAY
+FL	OCHOPEE
+FL	OCKLAWAHA
+FL	OCOEE
+FL	ODESSA
+FL	OJUS
+FL	OKAHUMPKA
+FL	OKEECHOBEE
+FL	OLDSMAR
+FL	OLD TOWN
+FL	OLUSTEE
+FL	OLYMPIA HEIGHTS
+FL	OLYMPIA HGTS
+FL	ONA
+FL	ONECO
+FL	OPA LOCKA
+FL	ORANGE CITY
+FL	ORANGE LAKE
+FL	ORANGE PARK
+FL	ORANGE SPGS
+FL	ORANGE SPRINGS
+FL	ORCHID
+FL	ORLANDO
+FL	ORLO VISTA
+FL	ORMOND BEACH
+FL	OSPREY
+FL	OSTEEN
+FL	OTTER CREEK
+FL	OVERSTREET
+FL	OVIEDO
+FL	OXFORD
+FL	OZONA
+FL	PACE
+FL	PAHOKEE
+FL	PAISLEY
+FL	PALATKA
+FL	PALMA CEIA
+FL	PALMA SOLA
+FL	PALM BAY
+FL	PALM BCH GDNS
+FL	PALM BCH SHRS
+FL	PALM BEACH
+FL	PALM BEACH GARDENS
+FL	PALM BEACH SHORES
+FL	PALM CITY
+FL	PALM COAST
+FL	PALMDALE
+FL	PALMETTO
+FL	PALMETTO BAY
+FL	PALM HARBOR
+FL	PALM SHORES
+FL	PALM SPRINGS
+FL	PANACEA
+FL	PANAMA CITY
+FL	PANAMA CITY BEACH
+FL	PARKLAND
+FL	PARRISH
+FL	PASS A GRILLE
+FL	PASS A GRILLE BEACH
+FL	PATRICK AFB
+FL	PATRICK AIR FORCE BASE
+FL	PAXTON
+FL	P C BEACH
+FL	PEMBROKE PARK
+FL	PEMBROKE PINES
+FL	PEMBROKE PNES
+FL	PENNEY FARMS
+FL	PENSACOLA
+FL	PENSACOLA BCH
+FL	PENSACOLA BEACH
+FL	PERRINE
+FL	PERRY
+FL	PIERSON
+FL	PINE CASTLE
+FL	PINECRAFT
+FL	PINECREST
+FL	PINECREST POSTAL STORE
+FL	PINE HILLS
+FL	PINELAND
+FL	PINELLAS PARK
+FL	PINE RIDGE
+FL	PINETTA
+FL	PLACIDA
+FL	PLANTATION
+FL	PLANT CITY
+FL	PLYMOUTH
+FL	POINCIANA
+FL	POINT WASHINGTON
+FL	POLK CITY
+FL	POMONA PARK
+FL	POMPANO BEACH
+FL	PONCE DE LEON
+FL	PONCE INLET
+FL	PONTE VEDRA
+FL	PONTE VEDRA BEACH
+FL	PORT CANAVERAL
+FL	PORT CHARLOTTE
+FL	PORT ORANGE
+FL	PORT RICHEY
+FL	PORT SAINT JOE
+FL	PORT SAINT JOHN
+FL	PORT SAINT LUCIE
+FL	PORT SALERNO
+FL	PORT ST JOE
+FL	PORT ST JOHN
+FL	PORT ST LUCIE
+FL	PRINCETON
+FL	PT CANAVERAL
+FL	PT CHARLOTTE
+FL	PT ORANGE
+FL	PT WASHINGTON
+FL	PUNTA GORDA
+FL	PUTNAM HALL
+FL	QUAIL HEIGHTS
+FL	QUINCY
+FL	RAIFORD
+FL	RAMROD KEY
+FL	RDG MNR EST
+FL	RED BAY
+FL	REDDICK
+FL	REDINGTN SHOR
+FL	REDINGTON BCH
+FL	REDINGTON BEACH
+FL	REDINGTON SHORES
+FL	REDLAND
+FL	REUNION
+FL	RICHLAND
+FL	RIDGE MANOR
+FL	RIDGE MANOR ESTATES
+FL	RIVER RANCH
+FL	RIVERVIEW
+FL	RIVIERA BEACH
+FL	ROCKLEDGE
+FL	ROSELAND
+FL	ROSEMARY BCH
+FL	ROSEMARY BEACH
+FL	ROTONDA WEST
+FL	ROYAL PALM BEACH
+FL	ROYAL PLM BCH
+FL	RUBONIA
+FL	RUSKIN
+FL	SAFETY HARBOR
+FL	SAINT AUGUSTINE
+FL	SAINT CLOUD
+FL	SAINT GEORGE ISLAND
+FL	SAINT JAMES CITY
+FL	SAINT JOHNS
+FL	SAINT LEO
+FL	SAINT LUCIE WEST
+FL	SAINT MARKS
+FL	SAINT PETE BEACH
+FL	SAINT PETERSBURG
+FL	SAINT TERESA
+FL	SALEM
+FL	SALT SPRINGS
+FL	SAN ANTONIO
+FL	SANDERSON
+FL	SANDESTIN
+FL	SAND LAKE
+FL	SANFORD
+FL	SANIBEL
+FL	SAN MATEO
+FL	SANTA FE
+FL	SANTA ROSA BEACH
+FL	SANTA RSA BCH
+FL	SARASOTA
+FL	SATELLITE BCH
+FL	SATELLITE BEACH
+FL	SATSUMA
+FL	SCOTTSMOOR
+FL	S DAYTONA
+FL	S DAYTONA BCH
+FL	SEACREST
+FL	SEA RANCH LAKES
+FL	SEA RANCH LKS
+FL	SEBASTIAN
+FL	SEBRING
+FL	SEFFNER
+FL	SEMINOLE
+FL	SEVILLE
+FL	SEWALLS POINT
+FL	SHADY GROVE
+FL	SHADY HILLS
+FL	SHALIMAR
+FL	SHARPES
+FL	SIDELL
+FL	SIESTA KEY
+FL	SILVER SPGS
+FL	SILVER SPRINGS
+FL	SINGER ISLAND
+FL	SNEADS
+FL	SOPCHOPPY
+FL	SORRENTO
+FL	SOUTH BAY
+FL	SOUTH DAYTONA
+FL	SOUTH FLORIDA
+FL	SOUTH MIAMI
+FL	SOUTH PALM BEACH
+FL	SOUTH PASADENA
+FL	SOUTHPORT
+FL	SOUTHWEST RANCHES
+FL	S PALM BCH
+FL	SPARR
+FL	S PASADENA
+FL	SPRING HILL
+FL	STARKE
+FL	ST AUGUSTINE
+FL	STEINHATCHEE
+FL	ST GEORGE ISL
+FL	ST JAMES CITY
+FL	ST LUCIE WEST
+FL	STOCK ISLAND
+FL	ST PETE
+FL	ST PETE BCH
+FL	ST PETE BEACH
+FL	ST PETERSBURG
+FL	ST PETERSBURG BEACH
+FL	ST TERESA
+FL	STUART
+FL	SUGARLF SHRS
+FL	SUGARLOAF
+FL	SUGARLOAF KEY
+FL	SUGARLOAF SHRS
+FL	SUMATRA
+FL	SUMMERFIELD
+FL	SUMMERLAND KEY
+FL	SUMMRLND KEY
+FL	SUMTERVILLE
+FL	SUN CITY
+FL	SUN CITY CENTER
+FL	SUN CITY CTR
+FL	SUNNY HILLS
+FL	SUNNY ISL BCH
+FL	SUNNY ISLES BEACH
+FL	SUNRISE
+FL	SURFSIDE
+FL	SUWANNEE
+FL	SWITZERLAND
+FL	SW RANCHES
+FL	SYDNEY
+FL	TALLAHASSEE
+FL	TALLEVAST
+FL	TAMARAC
+FL	TAMPA
+FL	TAMPA PALMS
+FL	TANGERINE
+FL	TARPON SPGS
+FL	TARPON SPNGS
+FL	TARPON SPRINGS
+FL	TAVARES
+FL	TAVERNIER
+FL	TELOGIA
+FL	TEMPLE TER
+FL	TEMPLE TERRACE
+FL	TEQUESTA
+FL	TERRA CEIA
+FL	TERRA CEIA IS
+FL	TERRA CEIA ISLAND
+FL	THE VILLAGES
+FL	THONOTOSASSA
+FL	TICE
+FL	TIERRA VERDE
+FL	TIME CUSTOMER SERVICE INC
+FL	TIME INC
+FL	TIOGA
+FL	TITUSVILLE
+FL	TN OF NOCATEE
+FL	TOWN N COUNTRY
+FL	TOWN OF NOCATEE
+FL	TRAILER EST
+FL	TRAILER ESTATES
+FL	TREASURE IS
+FL	TREASURE ISLAND
+FL	TRENTON
+FL	TRILBY
+FL	TRINITY
+FL	TWN N CNTRY
+FL	TYNDALL AFB
+FL	ULETA
+FL	UMATILLA
+FL	UNION PARK
+FL	UNIVERSITY OF
+FL	UNIVERSITY OF MIAMI
+FL	UNIVERSITY OF SOUTH FLORIDA
+FL	UNIVERSITY OF TAMPA
+FL	UNIVERSITY PARK
+FL	UNIVERSITY PK
+FL	UNIV OF MIAMI
+FL	UNIV OF TAMPA
+FL	UPPER SUGARLOAF KEY
+FL	UPR SUGARLOAF
+FL	VALPARAISO
+FL	VALRICO
+FL	VANDERBILT
+FL	VANDERBILT BEACH
+FL	VENICE
+FL	VENUS
+FL	VERNON
+FL	VERO BEACH
+FL	VIERA
+FL	VILLAGE OF GOLF
+FL	VILLAGE OF PALMETTO BAY
+FL	VILLAGE OF WELLINGTON
+FL	VIRGINIA GARDENS
+FL	VIRGINIA GDNS
+FL	VLG OF GOLF
+FL	VLG WELLINGTN
+FL	WABASSO
+FL	WACISSA
+FL	WAHNETA
+FL	WAKULLA SPGS
+FL	WAKULLA SPRINGS
+FL	WALDO
+FL	WALNUT HILL
+FL	WATERSOUND
+FL	WAUCHULA
+FL	WAUSAU
+FL	WAVERLY
+FL	W DELRAY BCH
+FL	WEBSTER
+FL	WEEKI WACHEE
+FL	WEIRSDALE
+FL	WEKIVA SPG
+FL	WEKIVA SPRINGS
+FL	WELAKA
+FL	WELLBORN
+FL	WELLINGTON
+FL	WESLEY CHAPEL
+FL	WESTCHASE
+FL	WEST DELRAY BEACH
+FL	WEST HOLLYWOOD
+FL	WEST MELBOURNE
+FL	WEST MIAMI
+FL	WESTON
+FL	WEST PALM BCH
+FL	WEST PALM BEACH
+FL	WEST PARK
+FL	WESTVILLE
+FL	WEWAHITCHKA
+FL	WHITE SPRINGS
+FL	W HOLLYWOOD
+FL	WILBUR BY SEA
+FL	WILBUR BY THE SEA
+FL	WILDWOOD
+FL	WILLISTON
+FL	WILTON MANORS
+FL	WIMAUMA
+FL	WINDERMERE
+FL	WINTER BEACH
+FL	WINTER GARDEN
+FL	WINTER HAVEN
+FL	WINTER PARK
+FL	WINTER SPGS
+FL	WINTER SPRINGS
+FL	W MELBOURNE
+FL	WOODVILLE
+FL	WORTHINGTON SPRINGS
+FL	WORTHNGTN SPG
+FL	W PLM BCH
+FL	YALAHA
+FL	YANKEETOWN
+FL	YBOR CITY
+FL	YEEHAW
+FL	YEEHAW JUNCTION
+FL	YOUNGSTOWN
+FL	YULEE
+FL	ZELLWOOD
+FL	ZEPHYRHILLS
+FL	ZOLFO SPRINGS
+FM	CHUUK
+FM	KOSRAE
+FM	POHNPEI
+FM	YAP
+GA	ABAC
+GA	ABBEVILLE
+GA	ABRAHAM BALDWIN COLLEGE
+GA	ACWORTH
+GA	ADAIRSVILLE
+GA	ADEL
+GA	ADRIAN
+GA	AILEY
+GA	ALAMO
+GA	ALAPAHA
+GA	ALBANY
+GA	ALLENHURST
+GA	ALLENTOWN
+GA	ALMA
+GA	ALPHARETTA
+GA	ALSTON
+GA	ALTO
+GA	AMBROSE
+GA	AMERICUS
+GA	ANDERSONVILLE
+GA	APPLING
+GA	ARABI
+GA	ARAGON
+GA	ARGYLE
+GA	ARLINGTON
+GA	ARMUCHEE
+GA	ARNOLDSVILLE
+GA	ASHBURN
+GA	ATHENS
+GA	ATLANTA
+GA	ATTAPULGUS
+GA	AUBURN
+GA	AUGUSTA
+GA	AUSTELL
+GA	AVERA
+GA	AVONDALE EST
+GA	AVONDALE ESTATES
+GA	AXSON
+GA	BACONTON
+GA	BAINBRIDGE
+GA	BALDWIN
+GA	BALL GROUND
+GA	BARNESVILLE
+GA	BARNEY
+GA	BARTOW
+GA	BARWICK
+GA	BAXLEY
+GA	BELLVILLE
+GA	BERKELEY LAKE
+GA	BERLIN
+GA	BETHLEHEM
+GA	BIG CANOE
+GA	BISHOP
+GA	BLACK CREEK
+GA	BLACKSHEAR
+GA	BLAIRSVILLE
+GA	BLAKELY
+GA	BLOOMINGDALE
+GA	BLUE RIDGE
+GA	BLUFFTON
+GA	BLYTHE
+GA	BOGART
+GA	BOLINGBROKE
+GA	BONAIRE
+GA	BONEVILLE
+GA	BOSTON
+GA	BOSTWICK
+GA	BOWDON
+GA	BOWDON JCT
+GA	BOWDON JUNCTION
+GA	BOWERSVILLE
+GA	BOWMAN
+GA	BOX SPRINGS
+GA	BRASELTON
+GA	BREMEN
+GA	BRIDGEBORO
+GA	BRINSON
+GA	BRISTOL
+GA	BRONWOOD
+GA	BROOKFIELD
+GA	BROOKLET
+GA	BROOKS
+GA	BROXTON
+GA	BRUNSWICK
+GA	BUCHANAN
+GA	BUCKHEAD
+GA	BUENA VISTA
+GA	BUFORD
+GA	BUTLER
+GA	BYROMVILLE
+GA	BYRON
+GA	CADWELL
+GA	CAIRO
+GA	CALHOUN
+GA	CALVARY
+GA	CAMAK
+GA	CAMILLA
+GA	CANON
+GA	CANTON
+GA	CARLTON
+GA	CARNESVILLE
+GA	CARROLLTON
+GA	CARTERSVILLE
+GA	CASSVILLE
+GA	CATAULA
+GA	CAVE SPRING
+GA	CECIL
+GA	CEDAR SPRINGS
+GA	CEDARTOWN
+GA	CENTERVILLE
+GA	CHAMBLEE
+GA	CHATSWORTH
+GA	CHAUNCEY
+GA	CHERRYLOG
+GA	CHESTER
+GA	CHESTNUT MOUNTAIN
+GA	CHESTNUT MTN
+GA	CHICKAMAUGA
+GA	CHULA
+GA	CISCO
+GA	CLARKDALE
+GA	CLARKESVILLE
+GA	CLARKSTON
+GA	CLAXTON
+GA	CLAYTON
+GA	CLERMONT
+GA	CLEVELAND
+GA	CLIMAX
+GA	CLINCHFIELD
+GA	CLOUDLAND
+GA	CLYATTVILLE
+GA	CLYO
+GA	COBB
+GA	COBBTOWN
+GA	COCHRAN
+GA	COGDELL
+GA	COHUTTA
+GA	COLBERT
+GA	COLEMAN
+GA	COLLEGE PARK
+GA	COLLINS
+GA	COLQUITT
+GA	COLUMBUS
+GA	COMER
+GA	COMMERCE
+GA	CONCORD
+GA	CONLEY
+GA	CONYERS
+GA	COOLIDGE
+GA	COOSA
+GA	CORDELE
+GA	CORNELIA
+GA	COTTON
+GA	COVENA
+GA	COVINGTON
+GA	CRANDALL
+GA	CRAWFORD
+GA	CRAWFORDVILLE
+GA	CRESCENT
+GA	CULLODEN
+GA	CUMMING
+GA	CUSSETA
+GA	CUTHBERT
+GA	DACULA
+GA	DAHLONEGA
+GA	DAISY
+GA	DALLAS
+GA	DALTON
+GA	DAMASCUS
+GA	DANBURG
+GA	DANIELSVILLE
+GA	DANVILLE
+GA	DARIEN
+GA	DAVISBORO
+GA	DAWSON
+GA	DAWSONVILLE
+GA	DEARING
+GA	DECATUR
+GA	DEEPSTEP
+GA	DEMOREST
+GA	DENTON
+GA	DE SOTO
+GA	DEWY ROSE
+GA	DEXTER
+GA	DILLARD
+GA	DIXIE
+GA	DOBBINS AFB
+GA	DOERUN
+GA	DONALSONVILLE
+GA	DORAVILLE
+GA	DOUGLAS
+GA	DOUGLASVILLE
+GA	DOVER
+GA	DRY BRANCH
+GA	DUBLIN
+GA	DUDLEY
+GA	DULUTH
+GA	DUNWOODY
+GA	DU PONT
+GA	EASTANOLLEE
+GA	EAST DUBLIN
+GA	EAST ELLIJAY
+GA	EASTMAN
+GA	EAST POINT
+GA	EATONTON
+GA	EDEN
+GA	EDGE HILL
+GA	EDISON
+GA	E DUBLIN
+GA	ELBERTON
+GA	ELKO
+GA	ELLABELL
+GA	ELLAVILLE
+GA	ELLENTON
+GA	ELLENWOOD
+GA	ELLERSLIE
+GA	ELLIJAY
+GA	EMERSON
+GA	EMPIRE
+GA	ENIGMA
+GA	EPWORTH
+GA	ESOM HILL
+GA	ETON
+GA	EUHARLEE
+GA	EVANS
+GA	EXPERIMENT
+GA	FAIRBURN
+GA	FAIRMOUNT
+GA	FARGO
+GA	FARMINGTON
+GA	FAYETTEVILLE
+GA	FELTON
+GA	FINGERHUT
+GA	FITZGERALD
+GA	FLEMING
+GA	FLINTSTONE
+GA	FLOVILLA
+GA	FLOWERY BR
+GA	FLOWERY BRANCH
+GA	FOLKSTON
+GA	FOREST PARK
+GA	FORSYTH
+GA	FORT BENNING
+GA	FORT GAINES
+GA	FORT GILLEM
+GA	FORT GORDON
+GA	FORT MCPHERSON
+GA	FORT OGLETHORPE
+GA	FORTSON
+GA	FORT STEWART
+GA	FORT VALLEY
+GA	FOWLSTOWN
+GA	FRANKLIN
+GA	FRANKLIN SPGS
+GA	FRANKLIN SPRINGS
+GA	FT MCPHERSON
+GA	FT OGLETHORPE
+GA	FUNSTON
+GA	GAINESVILLE
+GA	GARDEN CITY
+GA	GARDEN CTY
+GA	GARFIELD
+GA	GAY
+GA	GENEVA
+GA	GEORGETOWN
+GA	GIBSON
+GA	GILLSVILLE
+GA	GIRARD
+GA	GLENN
+GA	GLENNVILLE
+GA	GLENWOOD
+GA	GOOD HOPE
+GA	GORDON
+GA	GOUGH
+GA	GRACEWOOD
+GA	GRANTVILLE
+GA	GRAY
+GA	GRAYSON
+GA	GRAYSVILLE
+GA	GREENSBORO
+GA	GREENVILLE
+GA	GRIFFIN
+GA	GROVETOWN
+GA	GUYTON
+GA	HABERSHAM
+GA	HADDOCK
+GA	HAGAN
+GA	HAHIRA
+GA	HAMILTON
+GA	HAMPTON
+GA	HAPEVILLE
+GA	HARALSON
+GA	HARDWICK
+GA	HARLEM
+GA	HARRISON
+GA	HARTSFIELD
+GA	HARTWELL
+GA	HAWKINSVILLE
+GA	HAZLEHURST
+GA	HELEN
+GA	HELENA
+GA	HEPHZIBAH
+GA	HIAWASSEE
+GA	HIGH SHOALS
+GA	HILLSBORO
+GA	HILTONIA
+GA	HINESVILLE
+GA	HIRAM
+GA	HOBOKEN
+GA	HOGANSVILLE
+GA	HOLLY SPRINGS
+GA	HOMELAND
+GA	HOMER
+GA	HOMERVILLE
+GA	HORTENSE
+GA	HOSCHTON
+GA	HOWARD
+GA	HUBER
+GA	HULL
+GA	HUNTER AAF
+GA	IDEAL
+GA	ILA
+GA	IRON CITY
+GA	IRWINTON
+GA	IRWINVILLE
+GA	IVEY
+GA	JACKSON
+GA	JACKSONVILLE
+GA	JAKIN
+GA	JASPER
+GA	JEFFERSON
+GA	JEFFERSONVILLE
+GA	JEFFERSONVLLE
+GA	JEKYLL ISLAND
+GA	JENKINSBURG
+GA	JERSEY
+GA	JESUP
+GA	JEWELL
+GA	JOHNS CREEK
+GA	JONESBORO
+GA	JULIETTE
+GA	JUNCTION CITY
+GA	JUNIPER
+GA	KATHLEEN
+GA	KENNESAW
+GA	KEYSVILLE
+GA	KINGS BAY
+GA	KINGSLAND
+GA	KINGSTON
+GA	KITE
+GA	KNOXVILLE
+GA	LA FAYETTE
+GA	LAGRANGE
+GA	LAKE CITY
+GA	LAKELAND
+GA	LAKEMONT
+GA	LAKE PARK
+GA	LAKE SPIVEY
+GA	LAVONIA
+GA	LAWRENCEVILLE
+GA	LEARY
+GA	LEBANON
+GA	LEESBURG
+GA	LENOX
+GA	LESLIE
+GA	LEXINGTON
+GA	LILBURN
+GA	LILLY
+GA	LINCOLNTON
+GA	LINDALE
+GA	LITHIA SPGS
+GA	LITHIA SPRINGS
+GA	LITHONIA
+GA	LIZELLA
+GA	LOCUST GROVE
+GA	LOGANVILLE
+GA	LOOKOUT MOUNTAIN
+GA	LOOKOUT MTN
+GA	LOUISVILLE
+GA	LOUVALE
+GA	LOVEJOY
+GA	LUDOWICI
+GA	LULA
+GA	LUMBER CITY
+GA	LUMPKIN
+GA	LUTHERSVILLE
+GA	LYERLY
+GA	LYONS
+GA	MABLETON
+GA	MACON
+GA	MADISON
+GA	MANASSAS
+GA	MANCHESTER
+GA	MANOR
+GA	MANSFIELD
+GA	MARBLE HILL
+GA	MARIETTA
+GA	MARSHALLVILLE
+GA	MARTIN
+GA	MARTINEZ
+GA	MATTHEWS
+GA	MAUK
+GA	MAXEYS
+GA	MAYFIELD
+GA	MAYSVILLE
+GA	MC CAYSVILLE
+GA	MCDONOUGH
+GA	MC INTYRE
+GA	MC RAE
+GA	MEANSVILLE
+GA	MEIGS
+GA	MELDRIM
+GA	MENLO
+GA	MERCER UNIVERSITY
+GA	MERIDIAN
+GA	MERSHON
+GA	MESENA
+GA	METCALF
+GA	METTER
+GA	MIDLAND
+GA	MIDVILLE
+GA	MIDWAY
+GA	MILAN
+GA	MILLEDGEVILLE
+GA	MILLEN
+GA	MILLWOOD
+GA	MILNER
+GA	MILTON
+GA	MINERAL BLUFF
+GA	MITCHELL
+GA	MOLENA
+GA	MONROE
+GA	MONTEZUMA
+GA	MONTICELLO
+GA	MONTROSE
+GA	MOODY AFB
+GA	MOODY A F B
+GA	MORELAND
+GA	MORGAN
+GA	MORGANTON
+GA	MORRIS
+GA	MORROW
+GA	MORVEN
+GA	MOULTRIE
+GA	MOUNTAIN CITY
+GA	MOUNT AIRY
+GA	MOUNT BERRY
+GA	MOUNT VERNON
+GA	MOUNTVILLE
+GA	MOUNT ZION
+GA	MURRAYVILLE
+GA	MUSELLA
+GA	MYSTIC
+GA	NAHUNTA
+GA	NASHVILLE
+GA	NAYLOR
+GA	NELSON
+GA	NEVILS
+GA	NEWBORN
+GA	NEWINGTON
+GA	NEWNAN
+GA	NEWTON
+GA	NICHOLLS
+GA	NICHOLSON
+GA	NORCROSS
+GA	NORMAN PARK
+GA	NORRISTOWN
+GA	NORTH METRO
+GA	NORWOOD
+GA	NUNEZ
+GA	OAKFIELD
+GA	OAKMAN
+GA	OAK PARK
+GA	OAKWOOD
+GA	OCHLOCKNEE
+GA	OCILLA
+GA	OCONEE
+GA	ODUM
+GA	OFFERMAN
+GA	OGLETHORPE
+GA	OLIVER
+GA	OMAHA
+GA	OMEGA
+GA	ORCHARD HILL
+GA	OXFORD
+GA	PALMETTO
+GA	PARROTT
+GA	PATTERSON
+GA	PAVO
+GA	PEACHTREE CITY
+GA	PEACHTREE CTY
+GA	PEARSON
+GA	PELHAM
+GA	PEMBROKE
+GA	PENDERGRASS
+GA	PERKINS
+GA	PERRY
+GA	PHILOMATH
+GA	PINEHURST
+GA	PINE LAKE
+GA	PINE MOUNTAIN
+GA	PINE MOUNTAIN VALLEY
+GA	PINE MTN VALY
+GA	PINEVIEW
+GA	PITTS
+GA	PLAINFIELD
+GA	PLAINS
+GA	PLAINVILLE
+GA	POOLER
+GA	PORTAL
+GA	PORTERDALE
+GA	PORT WENTWORTH
+GA	POULAN
+GA	POWDER SPGS
+GA	POWDER SPRINGS
+GA	POWERSVILLE
+GA	PRESTON
+GA	PRT WENTWORTH
+GA	PULASKI
+GA	PUTNEY
+GA	QUITMAN
+GA	RABUN GAP
+GA	RANGER
+GA	RAY CITY
+GA	RAYLE
+GA	RAYMOND
+GA	REBECCA
+GA	REDAN
+GA	RED OAK
+GA	REGISTER
+GA	REIDSVILLE
+GA	RENTZ
+GA	RESACA
+GA	REX
+GA	REYNOLDS
+GA	RHINE
+GA	RICEBORO
+GA	RICHLAND
+GA	RICHMOND HILL
+GA	RINCON
+GA	RINGGOLD
+GA	RISING FAWN
+GA	RIVERDALE
+GA	ROBERTA
+GA	ROBINS AFB
+GA	ROBINS A F B
+GA	ROCHELLE
+GA	ROCKLEDGE
+GA	ROCKMART
+GA	ROCK SPRING
+GA	ROCKY FACE
+GA	ROCKY FORD
+GA	ROME
+GA	ROOPVILLE
+GA	ROSSVILLE
+GA	ROSWELL
+GA	ROUND OAK
+GA	ROYSTON
+GA	RUPERT
+GA	RUTLEDGE
+GA	RYDAL
+GA	SAINT GEORGE
+GA	SAINT MARYS
+GA	SAINT SIMONS IS
+GA	SAINT SIMONS ISLAND
+GA	SALE CITY
+GA	SANDERSVILLE
+GA	SANDY SPGS
+GA	SANDY SPRINGS
+GA	SAPELO ISLAND
+GA	SARDIS
+GA	SARGENT
+GA	SASSER
+GA	SAUTEE NACOOCHEE
+GA	SAUTE-NACOCHE
+GA	SAUTE NACOCHE
+GA	SAVANNAH
+GA	SCOTLAND
+GA	SCOTTDALE
+GA	SCREVEN
+GA	SEA ISLAND
+GA	SENOIA
+GA	SEVILLE
+GA	SHADY DALE
+GA	SHANNON
+GA	SHARON
+GA	SHARPSBURG
+GA	SHELLMAN
+GA	SHELLMAN BLF
+GA	SHELLMAN BLUFF
+GA	SHILOH
+GA	SILOAM
+GA	SILVER CREEK
+GA	SKY VALLEY
+GA	SMARR
+GA	SMITHVILLE
+GA	SMYRNA
+GA	SNELLVILLE
+GA	SOCIAL CIRCLE
+GA	SOPERTON
+GA	SOUTH BASE
+GA	SPARKS
+GA	SPARTA
+GA	SPRINGFIELD
+GA	STAPLETON
+GA	STATENVILLE
+GA	STATESBORO
+GA	STATHAM
+GA	STEPHENS
+GA	STILLMORE
+GA	STILLWELL
+GA	STOCKBRIDGE
+GA	STOCKTON
+GA	STONE MOUNTAIN
+GA	STONE MTN
+GA	STOVALL
+GA	ST SIMONS IS
+GA	ST SIMONS ISLAND
+GA	SUCHES
+GA	SUGAR HILL
+GA	SUGAR VALLEY
+GA	SUMMERTOWN
+GA	SUMMERVILLE
+GA	SUMNER
+GA	SUNNY SIDE
+GA	SURRENCY
+GA	SUWANEE
+GA	SWAINSBORO
+GA	SYCAMORE
+GA	SYLVANIA
+GA	SYLVESTER
+GA	TALBOTTON
+GA	TALKING ROCK
+GA	TALLAPOOSA
+GA	TALLULAH FALLS
+GA	TALLULAH FLS
+GA	TALMO
+GA	TARRYTOWN
+GA	TATE
+GA	TAYLORSVILLE
+GA	TAZEWELL
+GA	TEMPLE
+GA	TENNGA
+GA	TENNILLE
+GA	THE ROCK
+GA	THOMASTON
+GA	THOMASVILLE
+GA	THOMSON
+GA	THUNDERBOLT
+GA	TIFTON
+GA	TIGER
+GA	TIGNALL
+GA	TOCCOA
+GA	TOCCOA FALLS
+GA	TOOMSBORO
+GA	TOWNSEND
+GA	TRENTON
+GA	TRION
+GA	TUCKER
+GA	TUNNEL HILL
+GA	TURIN
+GA	TURNERVILLE
+GA	TWIN CITY
+GA	TYBEE ISLAND
+GA	TYRONE
+GA	TY TY
+GA	UNADILLA
+GA	UNION CITY
+GA	UNION POINT
+GA	UPATOI
+GA	UVALDA
+GA	VALDOSTA
+GA	VALONA
+GA	VARNELL
+GA	VIDALIA
+GA	VIENNA
+GA	VILLA RICA
+GA	WACO
+GA	WADLEY
+GA	WALESKA
+GA	WALTHOURVILLE
+GA	WARESBORO
+GA	WARM SPRINGS
+GA	WARNER ROBINS
+GA	WARRENTON
+GA	WARTHEN
+GA	WARWICK
+GA	WASHINGTON
+GA	WATKINSVILLE
+GA	WAVERLY
+GA	WAVERLY HALL
+GA	WAYCROSS
+GA	WAYNESBORO
+GA	WAYNESVILLE
+GA	WEST GREEN
+GA	WESTON
+GA	WEST POINT
+GA	WHIGHAM
+GA	WHITE
+GA	WHITE OAK
+GA	WHITE PLAINS
+GA	WHITESBURG
+GA	WILDWOOD
+GA	WILEY
+GA	WILLACOOCHEE
+GA	WILLIAMSON
+GA	WINDER
+GA	WINSTON
+GA	WINTERVILLE
+GA	WOODBINE
+GA	WOODBURY
+GA	WOODLAND
+GA	WOODSTOCK
+GA	WOODVILLE
+GA	WOOLSEY
+GA	WRAY
+GA	WRENS
+GA	WRIGHTSVILLE
+GA	YATESVILLE
+GA	YOUNG HARRIS
+GA	ZEBULON
+GU	AGANA HEIGHTS
+GU	AGAT
+GU	ASAN
+GU	BARRIGADA
+GU	CHALAN PAGO
+GU	DEDEDO
+GU	HAGATNA
+GU	INARAJAN
+GU	MANGILAO
+GU	MERIZO
+GU	MONGMONG
+GU	ORDOT
+GU	PITI
+GU	SANTA RITA
+GU	SINAJANA
+GU	TALOFOFO
+GU	TAMUNING
+GU	UMATAC
+GU	YIGO
+GU	YONA
+HI	AIEA
+HI	ANAHOLA
+HI	CAMP H M SMITH
+HI	CAMP SMITH
+HI	CAPTAIN COOK
+HI	ELEELE
+HI	EWA BEACH
+HI	FORT SHAFTER
+HI	HAIKU
+HI	HAKALAU
+HI	HALEIWA
+HI	HANA
+HI	HANALEI
+HI	HANAMAULU
+HI	HANAPEPE
+HI	HAUULA
+HI	HAWAII NATIONAL PARK
+HI	HAWI
+HI	HICKAM AFB
+HI	HILO
+HI	HI NATL PARK
+HI	HOLUALOA
+HI	HONAUNAU
+HI	HONOKAA
+HI	HONOLULU
+HI	HONOMU
+HI	HOOLEHUA
+HI	KAAAWA
+HI	KAHUKU
+HI	KAHULUI
+HI	KAILUA
+HI	KAILUA KONA
+HI	KALAHEO
+HI	KALAUPAPA
+HI	KAMUELA
+HI	KANEOHE
+HI	KAPAA
+HI	KAPAAU
+HI	KAPOLEI
+HI	KAUMAKANI
+HI	KAUNAKAKAI
+HI	KEAAU
+HI	KEALAKEKUA
+HI	KEALIA
+HI	KEAUHOU
+HI	KEKAHA
+HI	KIHEI
+HI	KILAUEA
+HI	KOLOA
+HI	KUALAPUU
+HI	KULA
+HI	KUNIA
+HI	KURTISTOWN
+HI	LAHAINA
+HI	LAIE
+HI	LANAI CITY
+HI	LAUPAHOEHOE
+HI	LAWAI
+HI	LIHUE
+HI	MAKAWAO
+HI	MAKAWELI
+HI	MAUNALOA
+HI	M C B H KANEOHE BAY
+HI	M C B H K BAY
+HI	MCBH K BAY
+HI	MILILANI
+HI	MOUNTAIN VIEW
+HI	NAALEHU
+HI	NINOLE
+HI	OCEAN VIEW
+HI	OOKALA
+HI	PAAUHAU
+HI	PAAUILO
+HI	PAHALA
+HI	PAHOA
+HI	PAIA
+HI	PAPAALOA
+HI	PAPAIKOU
+HI	PEARL CITY
+HI	PEARL HARBOR
+HI	PEPEEKEO
+HI	PRINCEVILLE
+HI	PUKALANI
+HI	PUUNENE
+HI	SCHOFIELD
+HI	SCHOFIELD BARRACKS
+HI	TRIPLER AMC
+HI	TRIPLER ARMY MEDICAL CENTER
+HI	VOLCANO
+HI	WAHIAWA
+HI	WAIALUA
+HI	WAIANAE
+HI	WAIKOLOA
+HI	WAILEA
+HI	WAILUKU
+HI	WAIMANALO
+HI	WAIMEA
+HI	WAIPAHU
+HI	WAKE ISLAND
+HI	WHEELER AAF
+HI	WHEELER ARMY AIRFIELD
+IA	ACKLEY
+IA	ACKWORTH
+IA	ADAIR
+IA	ADEL
+IA	AFTON
+IA	AGENCY
+IA	AINSWORTH
+IA	AKRON
+IA	ALBERT CITY
+IA	ALBIA
+IA	ALBION
+IA	ALBURNETT
+IA	ALDEN
+IA	ALEXANDER
+IA	ALGONA
+IA	ALLEMAN
+IA	ALLENDORF
+IA	ALLERTON
+IA	ALLISON
+IA	ALPHA
+IA	ALTA
+IA	ALTA VISTA
+IA	ALTON
+IA	ALTOONA
+IA	ALVORD
+IA	AMANA
+IA	AMES
+IA	ANAMOSA
+IA	ANDOVER
+IA	ANDREW
+IA	ANITA
+IA	ANKENY
+IA	ANTHON
+IA	APLINGTON
+IA	ARCADIA
+IA	ARCHER
+IA	AREDALE
+IA	ARGYLE
+IA	ARION
+IA	ARISPE
+IA	ARLINGTON
+IA	ARMSTRONG
+IA	ARNOLDS PARK
+IA	ARTHUR
+IA	ASBURY
+IA	ASHTON
+IA	ASPINWALL
+IA	ATALISSA
+IA	ATKINS
+IA	ATLANTIC
+IA	AUBURN
+IA	AUDUBON
+IA	AURELIA
+IA	AURORA
+IA	AUSTINVILLE
+IA	AVOCA
+IA	AYRSHIRE
+IA	BADGER
+IA	BAGLEY
+IA	BALDWIN
+IA	BANCROFT
+IA	BARNES CITY
+IA	BARNUM
+IA	BARTLETT
+IA	BATAVIA
+IA	BATTLE CREEK
+IA	BAXTER
+IA	BAYARD
+IA	BEACON
+IA	BEACONSFIELD
+IA	BEAMAN
+IA	BEAVER
+IA	BEDFORD
+IA	BELLE PLAINE
+IA	BELLEVUE
+IA	BELMOND
+IA	BENNETT
+IA	BENTON
+IA	BERNARD
+IA	BERWICK
+IA	BETTENDORF
+IA	BEVINGTON
+IA	BIG ROCK
+IA	BIRMINGHAM
+IA	BLAIRSBURG
+IA	BLAIRSTOWN
+IA	BLAKESBURG
+IA	BLANCHARD
+IA	BLENCOE
+IA	BLOCKTON
+IA	BLOOMFIELD
+IA	BLUE GRASS
+IA	BODE
+IA	BONAPARTE
+IA	BONDURANT
+IA	BOONE
+IA	BOONEVILLE
+IA	BOUTON
+IA	BOXHOLM
+IA	BOYDEN
+IA	BRADDYVILLE
+IA	BRADFORD
+IA	BRADGATE
+IA	BRANDON
+IA	BRAYTON
+IA	BREDA
+IA	BREMER
+IA	BRIDGEWATER
+IA	BRIGHTON
+IA	BRISTOW
+IA	BRITT
+IA	BRONSON
+IA	BROOKLYN
+IA	BRUNSVILLE
+IA	BRYANT
+IA	BUCKEYE
+IA	BUCKINGHAM
+IA	BUFFALO
+IA	BUFFALO CENTER
+IA	BUFFALO CTR
+IA	BURLINGTON
+IA	BURNSIDE
+IA	BURT
+IA	BUSSEY
+IA	CALAMUS
+IA	CALLENDER
+IA	CALMAR
+IA	CALUMET
+IA	CAMANCHE
+IA	CAMBRIDGE
+IA	CANTRIL
+IA	CARBON
+IA	CARLISLE
+IA	CARNARVON
+IA	CARPENTER
+IA	CARROLL
+IA	CARSON
+IA	CARTER LAKE
+IA	CASCADE
+IA	CASEY
+IA	CASTALIA
+IA	CASTANA
+IA	CEDAR
+IA	CEDAR FALLS
+IA	CEDAR RAPIDS
+IA	CENTER JCT
+IA	CENTER JUNCTION
+IA	CENTER POINT
+IA	CENTERVILLE
+IA	CENTRAL CITY
+IA	CHAPIN
+IA	CHARITON
+IA	CHARLES CITY
+IA	CHARLOTTE
+IA	CHARTER OAK
+IA	CHATSWORTH
+IA	CHELSEA
+IA	CHEROKEE
+IA	CHESTER
+IA	CHILLICOTHE
+IA	CHURDAN
+IA	CINCINNATI
+IA	CLARE
+IA	CLARENCE
+IA	CLARINDA
+IA	CLARION
+IA	CLARKSVILLE
+IA	CLEARFIELD
+IA	CLEAR LAKE
+IA	CLEGHORN
+IA	CLEMONS
+IA	CLERMONT
+IA	CLIMBING HILL
+IA	CLINTON
+IA	CLIO
+IA	CLIVE
+IA	CLUTIER
+IA	COGGON
+IA	COIN
+IA	COLESBURG
+IA	COLFAX
+IA	COLLEGE SPRGS
+IA	COLLEGE SPRINGS
+IA	COLLINS
+IA	COLO
+IA	COLUMBIA
+IA	COLUMBUS CITY
+IA	COLUMBUS JCT
+IA	COLUMBUS JUNCTION
+IA	COLWELL
+IA	CONESVILLE
+IA	CONRAD
+IA	CONROY
+IA	COON RAPIDS
+IA	COOPER
+IA	CORALVILLE
+IA	CORNING
+IA	CORRECTIONVILLE
+IA	CORRECTIONVLE
+IA	CORWITH
+IA	CORYDON
+IA	COULTER
+IA	COUNCIL BLFS
+IA	COUNCIL BLUFFS
+IA	CRAWFORDSVILLE
+IA	CRAWFORDSVLLE
+IA	CRESCENT
+IA	CRESCO
+IA	CRESTON
+IA	CROMWELL
+IA	CRYSTAL LAKE
+IA	CUMBERLAND
+IA	CUMMING
+IA	CURLEW
+IA	CUSHING
+IA	CYLINDER
+IA	DAKOTA CITY
+IA	DALLAS
+IA	DALLAS CENTER
+IA	DANA
+IA	DANBURY
+IA	DANVILLE
+IA	DAVENPORT
+IA	DAVIS CITY
+IA	DAWSON
+IA	DAYTON
+IA	DECATUR
+IA	DECORAH
+IA	DEDHAM
+IA	DEEP RIVER
+IA	DEFIANCE
+IA	DELAWARE
+IA	DELHI
+IA	DELMAR
+IA	DELOIT
+IA	DELPHOS
+IA	DELTA
+IA	DENISON
+IA	DENMARK
+IA	DENVER
+IA	DERBY
+IA	DES MOINES
+IA	DE SOTO
+IA	DEWAR
+IA	DE WITT
+IA	DEXTER
+IA	DIAGONAL
+IA	DICKENS
+IA	DIKE
+IA	DIXON
+IA	DOLLIVER
+IA	DONAHUE
+IA	DONNELLSON
+IA	DOON
+IA	DORCHESTER
+IA	DOUDS
+IA	DOUGHERTY
+IA	DOW CITY
+IA	DOWS
+IA	DRAKESVILLE
+IA	DUBUQUE
+IA	DUMONT
+IA	DUNCOMBE
+IA	DUNDEE
+IA	DUNKERTON
+IA	DUNLAP
+IA	DURANGO
+IA	DURANT
+IA	DYERSVILLE
+IA	DYSART
+IA	EAGLE GROVE
+IA	EARLHAM
+IA	EARLING
+IA	EARLVILLE
+IA	EARLY
+IA	EDDYVILLE
+IA	EDGEWOOD
+IA	ELBERON
+IA	ELDON
+IA	ELDORA
+IA	ELDORADO
+IA	ELDRIDGE
+IA	ELGIN
+IA	ELKADER
+IA	ELKHART
+IA	ELK HORN
+IA	ELKPORT
+IA	ELK RUN HEIGHTS
+IA	ELK RUN HGTS
+IA	ELLIOTT
+IA	ELLSTON
+IA	ELLSWORTH
+IA	ELMA
+IA	ELWOOD
+IA	ELY
+IA	EMERSON
+IA	EMMETSBURG
+IA	EPWORTH
+IA	ESSEX
+IA	ESTHERVILLE
+IA	EVANSDALE
+IA	EVERLY
+IA	EXIRA
+IA	EXLINE
+IA	FAIRBANK
+IA	FAIRFAX
+IA	FAIRFIELD
+IA	FARLEY
+IA	FARMERSBURG
+IA	FARMINGTON
+IA	FARNHAMVILLE
+IA	FARRAGUT
+IA	FAYETTE
+IA	FENTON
+IA	FERGUSON
+IA	FERTILE
+IA	FESTINA
+IA	FLORIS
+IA	FLOYD
+IA	FONDA
+IA	FONTANELLE
+IA	FOREST CITY
+IA	FORT ATKINSON
+IA	FORT DODGE
+IA	FORT MADISON
+IA	FOSTORIA
+IA	FREDERICKSBRG
+IA	FREDERICKSBURG
+IA	FREDERIKA
+IA	FREMONT
+IA	FRUITLAND
+IA	GALT
+IA	GALVA
+IA	GARBER
+IA	GARDEN CITY
+IA	GARDEN GROVE
+IA	GARNAVILLO
+IA	GARNER
+IA	GARRISON
+IA	GARWIN
+IA	GENEVA
+IA	GEORGE
+IA	GIBSON
+IA	GIFFORD
+IA	GILBERT
+IA	GILBERTVILLE
+IA	GILLETT GROVE
+IA	GILMAN
+IA	GILMORE CITY
+IA	GLADBROOK
+IA	GLENWOOD
+IA	GLIDDEN
+IA	GOLDFIELD
+IA	GOODELL
+IA	GOOSE LAKE
+IA	GOWRIE
+IA	GRAETTINGER
+IA	GRAFTON
+IA	GRAND JCT
+IA	GRAND JUNCTION
+IA	GRAND MOUND
+IA	GRAND RIVER
+IA	GRANDVIEW
+IA	GRANGER
+IA	GRANT
+IA	GRANVILLE
+IA	GRAVITY
+IA	GRAY
+IA	GREELEY
+IA	GREENE
+IA	GREENFIELD
+IA	GREEN ISLAND
+IA	GREEN MOUNTAIN
+IA	GREEN MTN
+IA	GREENVILLE
+IA	GRIMES
+IA	GRINNELL
+IA	GRISWOLD
+IA	GRUNDY CENTER
+IA	GRUVER
+IA	GUERNSEY
+IA	GUTHRIE CENTER
+IA	GUTHRIE CTR
+IA	GUTTENBERG
+IA	HALBUR
+IA	HALE
+IA	HAMBURG
+IA	HAMILTON
+IA	HAMLIN
+IA	HAMPTON
+IA	HANCOCK
+IA	HANLONTOWN
+IA	HANSELL
+IA	HARCOURT
+IA	HARDY
+IA	HARLAN
+IA	HARPER
+IA	HARPERS FERRY
+IA	HARRIS
+IA	HARTFORD
+IA	HARTLEY
+IA	HARTWICK
+IA	HARVESTER
+IA	HARVEY
+IA	HASTINGS
+IA	HAVELOCK
+IA	HAVERHILL
+IA	HAWARDEN
+IA	HAWKEYE
+IA	HAYESVILLE
+IA	HAZLETON
+IA	HEDRICK
+IA	HENDERSON
+IA	HIAWATHA
+IA	HIGHLANDVILLE
+IA	HILLS
+IA	HILLSBORO
+IA	HINTON
+IA	HOLLAND
+IA	HOLSTEIN
+IA	HOLY CROSS
+IA	HOMESTEAD
+IA	HONEY CREEK
+IA	HOPKINTON
+IA	HORNICK
+IA	HOSPERS
+IA	HOUGHTON
+IA	HUBBARD
+IA	HUDSON
+IA	HULL
+IA	HUMBOLDT
+IA	HUMESTON
+IA	HUXLEY
+IA	IDA GROVE
+IA	IMOGENE
+IA	INDEPENDENCE
+IA	INDIANOLA
+IA	INWOOD
+IA	IONIA
+IA	IOWA CITY
+IA	IOWA FALLS
+IA	IRA
+IA	IRETON
+IA	IRWIN
+IA	JACKSON JCT
+IA	JACKSON JUNCTION
+IA	JAMAICA
+IA	JANESVILLE
+IA	JEFFERSON
+IA	JESUP
+IA	JEWELL
+IA	JOHNSTON
+IA	JOICE
+IA	JOLLEY
+IA	KALONA
+IA	KAMRAR
+IA	KANAWHA
+IA	KELLERTON
+IA	KELLEY
+IA	KELLOGG
+IA	KENSETT
+IA	KENT
+IA	KEOKUK
+IA	KEOSAUQUA
+IA	KEOTA
+IA	KESLEY
+IA	KESWICK
+IA	KEYSTONE
+IA	KILLDUFF
+IA	KIMBALLTON
+IA	KINGSLEY
+IA	KINROSS
+IA	KIRKMAN
+IA	KIRKVILLE
+IA	KIRON
+IA	KLEMME
+IA	KNIERIM
+IA	KNOKE
+IA	KNOXVILLE
+IA	LACONA
+IA	LADORA
+IA	LAKE CITY
+IA	LAKE MILLS
+IA	LAKE PARK
+IA	LAKESIDE
+IA	LAKE VIEW
+IA	LAKOTA
+IA	LAMONI
+IA	LAMONT
+IA	LA MOTTE
+IA	LANESBORO
+IA	LANGWORTHY
+IA	LANSING
+IA	LA PORTE CITY
+IA	LARCHWOOD
+IA	LARRABEE
+IA	LATIMER
+IA	LAUREL
+IA	LAURENS
+IA	LAWLER
+IA	LAWTON
+IA	LECLAIRE
+IA	LE CLAIRE
+IA	LEDYARD
+IA	LE GRAND
+IA	LEHIGH
+IA	LEIGHTON
+IA	LELAND
+IA	LE MARS
+IA	LENOX
+IA	LEON
+IA	LESTER
+IA	LETTS
+IA	LEWIS
+IA	LIBERTY CENTER
+IA	LIBERTY CTR
+IA	LIBERTYVILLE
+IA	LIDDERDALE
+IA	LIME SPRINGS
+IA	LINCOLN
+IA	LINDEN
+IA	LINEVILLE
+IA	LINN GROVE
+IA	LISBON
+IA	LISCOMB
+IA	LITTLE CEDAR
+IA	LITTLEPORT
+IA	LITTLE ROCK
+IA	LITTLE SIOUX
+IA	LIVERMORE
+IA	LOCKRIDGE
+IA	LOGAN
+IA	LOHRVILLE
+IA	LONE ROCK
+IA	LONE TREE
+IA	LONG GROVE
+IA	LORIMOR
+IA	LOST NATION
+IA	LOVILIA
+IA	LOWDEN
+IA	LOWELL
+IA	LOW MOOR
+IA	LUANA
+IA	LUCAS
+IA	LUTHER
+IA	LU VERNE
+IA	LUXEMBURG
+IA	LUZERNE
+IA	LYNNVILLE
+IA	LYTTON
+IA	MACEDONIA
+IA	MACKSBURG
+IA	MADRID
+IA	MAGNOLIA
+IA	MALCOM
+IA	MALLARD
+IA	MALVERN
+IA	MANAWA
+IA	MANCHESTER
+IA	MANILLA
+IA	MANLY
+IA	MANNING
+IA	MANSON
+IA	MAPLETON
+IA	MAQUOKETA
+IA	MARATHON
+IA	MARBLE ROCK
+IA	MARCUS
+IA	MARENGO
+IA	MARION
+IA	MARNE
+IA	MARQUETTE
+IA	MARSHALLTOWN
+IA	MARTELLE
+IA	MARTENSDALE
+IA	MARTINSBURG
+IA	MASON CITY
+IA	MASONVILLE
+IA	MASSENA
+IA	MATLOCK
+IA	MAURICE
+IA	MAXWELL
+IA	MAY CITY
+IA	MAYNARD
+IA	MAYSVILLE
+IA	MC CALLSBURG
+IA	MC CAUSLAND
+IA	MC CLELLAND
+IA	MC GREGOR
+IA	MC INTIRE
+IA	MECHANICSVILLE
+IA	MECHANICSVLLE
+IA	MEDIAPOLIS
+IA	MELBOURNE
+IA	MELCHER
+IA	MELCHER DAL
+IA	MELCHER DALLAS
+IA	MELROSE
+IA	MELVIN
+IA	MENLO
+IA	MERIDEN
+IA	MERRILL
+IA	MESERVEY
+IA	MIDDLE
+IA	MIDDLE AMANA
+IA	MIDDLETOWN
+IA	MILES
+IA	MILFORD
+IA	MILLERSBURG
+IA	MILLERTON
+IA	MILO
+IA	MILTON
+IA	MINBURN
+IA	MINDEN
+IA	MINEOLA
+IA	MINGO
+IA	MISSOURI VALLEY
+IA	MISSOURI VLY
+IA	MITCHELL
+IA	MITCHELLVILLE
+IA	MODALE
+IA	MONDAMIN
+IA	MONMOUTH
+IA	MONONA
+IA	MONROE
+IA	MONTEZUMA
+IA	MONTICELLO
+IA	MONTOUR
+IA	MONTPELIER
+IA	MONTROSE
+IA	MOORHEAD
+IA	MOORLAND
+IA	MORAVIA
+IA	MORLEY
+IA	MORNING SUN
+IA	MORRISON
+IA	MOSCOW
+IA	MOULTON
+IA	MOUNT AUBURN
+IA	MOUNT AYR
+IA	MOUNT PLEASANT
+IA	MOUNT STERLING
+IA	MOUNT UNION
+IA	MOUNT VERNON
+IA	MO VALLEY
+IA	MOVILLE
+IA	MT PLEASANT
+IA	MT STERLING
+IA	MT UNION
+IA	MURRAY
+IA	MUSCATINE
+IA	MYSTIC
+IA	NASHUA
+IA	N BUENA VISTA
+IA	NEMAHA
+IA	NEOLA
+IA	NEVADA
+IA	NEW ALBIN
+IA	NEWELL
+IA	NEWHALL
+IA	NEW HAMPTON
+IA	NEW HARTFORD
+IA	NEW LIBERTY
+IA	NEW LONDON
+IA	NEW MARKET
+IA	NEW PROVIDENCE
+IA	NEW PROVIDNCE
+IA	NEW SHARON
+IA	NEWTON
+IA	NEW VIENNA
+IA	NEW VIRGINIA
+IA	NICHOLS
+IA	NODAWAY
+IA	NORA SPRINGS
+IA	NORTHBORO
+IA	NORTH BUENA VISTA
+IA	NORTH ENGLISH
+IA	NORTH LIBERTY
+IA	NORTH WASHINGTON
+IA	NORTHWOOD
+IA	NORWALK
+IA	NORWAY
+IA	NUMA
+IA	N WASHINGTON
+IA	OAKDALE
+IA	OAKLAND
+IA	OAKLAND ACRES
+IA	OAKVILLE
+IA	OCHEYEDAN
+IA	ODEBOLT
+IA	OELWEIN
+IA	OGDEN
+IA	OKOBOJI
+IA	OLDS
+IA	OLIN
+IA	OLLIE
+IA	ONAWA
+IA	ONSLOW
+IA	ORAN
+IA	ORANGE CITY
+IA	ORCHARD
+IA	ORIENT
+IA	OSAGE
+IA	OSCEOLA
+IA	OSKALOOSA
+IA	OSSIAN
+IA	OTHO
+IA	OTLEY
+IA	OTO
+IA	OTTOSEN
+IA	OTTUMWA
+IA	OXFORD
+IA	OXFORD JCT
+IA	OXFORD JUNCTION
+IA	OYENS
+IA	PACIFIC JCT
+IA	PACIFIC JUNCTION
+IA	PACKWOOD
+IA	PALMER
+IA	PALO
+IA	PANAMA
+IA	PANORA
+IA	PARKERSBURG
+IA	PARNELL
+IA	PATON
+IA	PATTERSON
+IA	PAULLINA
+IA	PELLA
+IA	PEOSTA
+IA	PERCIVAL
+IA	PERRY
+IA	PERSHING
+IA	PERSIA
+IA	PERU
+IA	PETERSON
+IA	PIERSON
+IA	PILOT GROVE
+IA	PILOT MOUND
+IA	PISGAH
+IA	PLAINFIELD
+IA	PLANO
+IA	PLEASANT HILL
+IA	PLEASANTON
+IA	PLEASANT VALLEY
+IA	PLEASANTVILLE
+IA	PLEASANT VLY
+IA	PLOVER
+IA	PLYMOUTH
+IA	POCAHONTAS
+IA	POLK CITY
+IA	POMEROY
+IA	POPEJOY
+IA	PORTSMOUTH
+IA	POSTVILLE
+IA	PRAIRIEBURG
+IA	PRAIRIE CITY
+IA	PRESCOTT
+IA	PRESTON
+IA	PRIMGHAR
+IA	PRINCETON
+IA	PROLE
+IA	PROMISE CITY
+IA	PROTIVIN
+IA	PULASKI
+IA	QUASQUETON
+IA	QUIMBY
+IA	RADCLIFFE
+IA	RAKE
+IA	RALSTON
+IA	RANDALIA
+IA	RANDALL
+IA	RANDOLPH
+IA	RATHBUN
+IA	RAYMOND
+IA	READLYN
+IA	REASNOR
+IA	REDDING
+IA	REDFIELD
+IA	RED OAK
+IA	REINBECK
+IA	REMBRANDT
+IA	REMSEN
+IA	RENWICK
+IA	RHODES
+IA	RICEVILLE
+IA	RICHLAND
+IA	RICKETTS
+IA	RIDGEWAY
+IA	RINARD
+IA	RINGSTED
+IA	RIPPEY
+IA	RIVERDALE
+IA	RIVERSIDE
+IA	RIVERTON
+IA	ROBINS
+IA	ROCK FALLS
+IA	ROCKFORD
+IA	ROCK RAPIDS
+IA	ROCK VALLEY
+IA	ROCKWELL
+IA	ROCKWELL CITY
+IA	RODNEY
+IA	ROLAND
+IA	ROLFE
+IA	ROME
+IA	ROSE HILL
+IA	ROSSIE
+IA	ROWAN
+IA	ROWLEY
+IA	ROYAL
+IA	RUBIO
+IA	RUDD
+IA	RUNNELLS
+IA	RUSSELL
+IA	RUTHVEN
+IA	RUTLAND
+IA	RYAN
+IA	SABULA
+IA	SAC CITY
+IA	SAINT ANSGAR
+IA	SAINT ANTHONY
+IA	SAINT CHARLES
+IA	SAINT DONATUS
+IA	SAINT LUCAS
+IA	SAINT MARYS
+IA	SAINT OLAF
+IA	SAINT PAUL
+IA	SALEM
+IA	SALIX
+IA	SANBORN
+IA	SARATOGA
+IA	SCARVILLE
+IA	SCHALLER
+IA	SCHLESWIG
+IA	SCOTCH GROVE
+IA	SCRANTON
+IA	SEARSBORO
+IA	SELMA
+IA	SERGEANT BLF
+IA	SERGEANT BLUFF
+IA	SEWAL
+IA	SEYMOUR
+IA	SHAMBAUGH
+IA	SHANNON CITY
+IA	SHARPSBURG
+IA	SHEFFIELD
+IA	SHELBY
+IA	SHELDAHL
+IA	SHELDON
+IA	SHELL ROCK
+IA	SHELLSBURG
+IA	SHENANDOAH
+IA	SHERRILL
+IA	SIBLEY
+IA	SIDNEY
+IA	SIGOURNEY
+IA	SILVER CITY
+IA	SIOUX CENTER
+IA	SIOUX CITY
+IA	SIOUX RAPIDS
+IA	SLATER
+IA	SLOAN
+IA	SMITHLAND
+IA	SOLDIER
+IA	SOLON
+IA	SOMERS
+IA	SOUTH AMANA
+IA	SOUTH ENGLISH
+IA	SPENCER
+IA	SPERRY
+IA	SPILLVILLE
+IA	SPIRIT LAKE
+IA	SPRAGUEVILLE
+IA	SPRINGBROOK
+IA	SPRING HILL
+IA	SPRINGVILLE
+IA	STACYVILLE
+IA	STANHOPE
+IA	STANLEY
+IA	STANTON
+IA	STANWOOD
+IA	STATE CENTER
+IA	STEAMBOAT RK
+IA	STEAMBOAT ROCK
+IA	STOCKPORT
+IA	STOCKTON
+IA	STORM LAKE
+IA	STORY CITY
+IA	STOUT
+IA	STRATFORD
+IA	STRAWBERRY POINT
+IA	STRAWBERRY PT
+IA	STUART
+IA	SULLY
+IA	SUMNER
+IA	SUPERIOR
+IA	SUTHERLAND
+IA	SWALEDALE
+IA	SWAN
+IA	SWEA CITY
+IA	SWEDESBURG
+IA	SWISHER
+IA	TABOR
+IA	TAINTOR
+IA	TAMA
+IA	TEEDS GROVE
+IA	TEMPLETON
+IA	TENNANT
+IA	TERRIL
+IA	THAYER
+IA	THOMPSON
+IA	THOR
+IA	THORNBURG
+IA	THORNTON
+IA	THURMAN
+IA	TIFFIN
+IA	TINGLEY
+IA	TIPTON
+IA	TITONKA
+IA	TODDVILLE
+IA	TOETERVILLE
+IA	TOLEDO
+IA	TORONTO
+IA	TRACY
+IA	TRAER
+IA	TREYNOR
+IA	TRIPOLI
+IA	TROY MILLS
+IA	TRUESDALE
+IA	TRURO
+IA	TURIN
+IA	UDELL
+IA	UNDERWOOD
+IA	UNION
+IA	UNIONVILLE
+IA	UNIVERSITY PARK
+IA	UNIVERSITY PK
+IA	URBANA
+IA	URBANDALE
+IA	UTE
+IA	VAIL
+IA	VAN HORNE
+IA	VAN METER
+IA	VAN WERT
+IA	VARINA
+IA	VENTURA
+IA	VICTOR
+IA	VILLISCA
+IA	VINCENT
+IA	VINING
+IA	VINTON
+IA	VIOLA
+IA	VOLGA
+IA	VOORHIES
+IA	WADENA
+IA	WALCOTT
+IA	WALFORD
+IA	WALKER
+IA	WALLINGFORD
+IA	WALL LAKE
+IA	WALNUT
+IA	WAPELLO
+IA	WASHBURN
+IA	WASHINGTON
+IA	WASHTA
+IA	WATERLOO
+IA	WATERVILLE
+IA	WATKINS
+IA	WAUCOMA
+IA	WAUKEE
+IA	WAUKON
+IA	WAVERLY
+IA	WAYLAND
+IA	W BURLINGTON
+IA	W DES MOINES
+IA	WEBB
+IA	WEBSTER
+IA	WEBSTER CITY
+IA	WELDON
+IA	WELLMAN
+IA	WELLSBURG
+IA	WELTON
+IA	WESLEY
+IA	WEST AMANA
+IA	WEST BEND
+IA	WEST BRANCH
+IA	WEST BURLINGTON
+IA	WEST CHESTER
+IA	WEST DES MOINES
+IA	WESTFIELD
+IA	WESTGATE
+IA	WEST GROVE
+IA	WEST LIBERTY
+IA	WEST OKOBOJI
+IA	WESTPHALIA
+IA	WEST POINT
+IA	WESTSIDE
+IA	WEST UNION
+IA	WEVER
+IA	WHAT CHEER
+IA	WHEATLAND
+IA	WHITING
+IA	WHITTEMORE
+IA	WHITTEN
+IA	WHITTIER
+IA	WILLIAMS
+IA	WILLIAMSBURG
+IA	WILLIAMSON
+IA	WILTON
+IA	WINDSOR HEIGHTS
+IA	WINDSOR HTS
+IA	WINFIELD
+IA	WINTERSET
+IA	WINTHROP
+IA	WIOTA
+IA	WODEN
+IA	W OKOBOJI
+IA	WOODBINE
+IA	WOODBURN
+IA	WOODWARD
+IA	WOOLSTOCK
+IA	WORTHINGTON
+IA	WYOMING
+IA	YALE
+IA	YARMOUTH
+IA	YETTER
+IA	YORKTOWN
+IA	ZEARING
+IA	ZWINGLE
+ID	ABERDEEN
+ID	ACEQUIA
+ID	AHSAHKA
+ID	ALBION
+ID	ALMO
+ID	AMERICAN FALLS
+ID	AMERICAN FLS
+ID	AM FALLS
+ID	AMMON
+ID	ANDERSON DAM
+ID	ARBON
+ID	ARCO
+ID	ARIMO
+ID	ASHTON
+ID	ATHOL
+ID	ATLANTA
+ID	ATOMIC CITY
+ID	AVERY
+ID	BANCROFT
+ID	BANKS
+ID	BASALT
+ID	BAYVIEW
+ID	BELLEVUE
+ID	BERN
+ID	BLACKFOOT
+ID	BLANCHARD
+ID	BLISS
+ID	BLOOMINGTON
+ID	BOISE
+ID	BONNERS FERRY
+ID	BOVILL
+ID	BRUNEAU
+ID	BUHL
+ID	BURLEY
+ID	CALDER
+ID	CALDWELL
+ID	CAMBRIDGE
+ID	CAREY
+ID	CAREYWOOD
+ID	CARMEN
+ID	CASCADE
+ID	CASTLEFORD
+ID	CATALDO
+ID	CENTERVILLE
+ID	CHALLIS
+ID	CHESTER
+ID	CHUBBUCK
+ID	CLARK FORK
+ID	CLARKIA
+ID	CLAYTON
+ID	CLEARWATER
+ID	CLIFTON
+ID	COBALT
+ID	COCOLALLA
+ID	COEUR D ALENE
+ID	COLBURN
+ID	CONDA
+ID	COOLIN
+ID	CORRAL
+ID	COTTONWOOD
+ID	COUNCIL
+ID	CRAIGMONT
+ID	CULDESAC
+ID	DALTON GARDENS
+ID	DALTON GDNS
+ID	DARLINGTON
+ID	DAYTON
+ID	DEARY
+ID	DECLO
+ID	DESMET
+ID	DIETRICH
+ID	DINGLE
+ID	DIXIE
+ID	DONNELLY
+ID	DOVER
+ID	DOWNEY
+ID	DRIGGS
+ID	DUBOIS
+ID	EAGLE
+ID	EASTPORT
+ID	EDEN
+ID	ELBA
+ID	ELK CITY
+ID	ELK HORN
+ID	ELK RIVER
+ID	ELLIS
+ID	EMMETT
+ID	FAIRFIELD
+ID	FEATHERVILLE
+ID	FELT
+ID	FENN
+ID	FERDINAND
+ID	FERNWOOD
+ID	FILER
+ID	FIRTH
+ID	FISH HAVEN
+ID	FORT HALL
+ID	FRANKLIN
+ID	FRUITLAND
+ID	FRUITVALE
+ID	GANNETT
+ID	GARDEN CITY
+ID	GARDEN VALLEY
+ID	GENESEE
+ID	GENEVA
+ID	GEORGETOWN
+ID	GIBBONSVILLE
+ID	GLENNS FERRY
+ID	GOODING
+ID	GRACE
+ID	GRAND VIEW
+ID	GRANGEVILLE
+ID	GRASMERE
+ID	GREENCREEK
+ID	GREENLEAF
+ID	HAGERMAN
+ID	HAILEY
+ID	HAMER
+ID	HAMMETT
+ID	HANSEN
+ID	HARPSTER
+ID	HARRISON
+ID	HARVARD
+ID	HAUSER
+ID	HAYDEN
+ID	HAYDEN LAKE
+ID	HAZELTON
+ID	HEADQUARTERS
+ID	HEYBURN
+ID	HIDDEN SPGS
+ID	HIDDEN SPRINGS
+ID	HILL CITY
+ID	HOLBROOK
+ID	HOLLISTER
+ID	HOMEDALE
+ID	HOPE
+ID	HORSESHOE BEND
+ID	HORSESHOE BND
+ID	HOWE
+ID	HUSTON
+ID	IDAHO CITY
+ID	IDAHO FALLS
+ID	INDIAN VALLEY
+ID	INKOM
+ID	IONA
+ID	IRWIN
+ID	ISLAND PARK
+ID	JACKSON
+ID	JEROME
+ID	JULIAETTA
+ID	KAMIAH
+ID	KELLOGG
+ID	KENDRICK
+ID	KETCHUM
+ID	KEUTERVILLE
+ID	KIMBERLY
+ID	KING HILL
+ID	KINGSTON
+ID	KOOSKIA
+ID	KOOTENAI
+ID	KUNA
+ID	LACLEDE
+ID	LAKE FORK
+ID	LAPWAI
+ID	LAVA HOT SPGS
+ID	LAVA HOT SPRINGS
+ID	LEADORE
+ID	LEMHI
+ID	LENORE
+ID	LETHA
+ID	LEWISTON
+ID	LEWISVILLE
+ID	LONE STAR
+ID	LOWMAN
+ID	LUCILE
+ID	MACKAY
+ID	MACKS INN
+ID	MALAD CITY
+ID	MALTA
+ID	MARSING
+ID	MAY
+ID	MCCALL
+ID	MCCAMMON
+ID	MEDIMONT
+ID	MELBA
+ID	MENAN
+ID	MERIDIAN
+ID	MESA
+ID	MIDDLETON
+ID	MIDVALE
+ID	MINIDOKA
+ID	MONTEVIEW
+ID	MONTOUR
+ID	MONTPELIER
+ID	MOORE
+ID	MORELAND
+ID	MOSCOW
+ID	MOUNTAIN HOME
+ID	MOUNTAIN HOME AFB
+ID	MOUNTAIN HOME A F B
+ID	MOYIE SPRINGS
+ID	MT HOME
+ID	MTN HOME
+ID	MTN HOME AFB
+ID	MULLAN
+ID	MURPHY
+ID	MURRAY
+ID	MURTAUGH
+ID	NAMPA
+ID	NAPLES
+ID	NEW CENTERVILLE
+ID	NEWDALE
+ID	NEW MEADOWS
+ID	NEW PLYMOUTH
+ID	NEZPERCE
+ID	NORDMAN
+ID	NORTH FORK
+ID	NOTUS
+ID	OAKLEY
+ID	OASIS
+ID	OLA
+ID	OLDTOWN
+ID	ONAWAY
+ID	OREANA
+ID	OROFINO
+ID	OSBURN
+ID	OVID
+ID	PALISADES
+ID	PARADISE HOT
+ID	PARADISE HOT SPRINGS
+ID	PARIS
+ID	PARKER
+ID	PARMA
+ID	PATTERSON
+ID	PAUL
+ID	PAYETTE
+ID	PECK
+ID	PICABO
+ID	PIERCE
+ID	PINE
+ID	PINEHURST
+ID	PINGREE
+ID	PIONEERVILLE
+ID	PLACERVILLE
+ID	PLUMMER
+ID	POCATELLO
+ID	POLLOCK
+ID	PONDERAY
+ID	PORTHILL
+ID	POST FALLS
+ID	POTLATCH
+ID	PRAIRIE
+ID	PRESTON
+ID	PRICHARD
+ID	PRIEST LAKE
+ID	PRIEST RIVER
+ID	PRINCETON
+ID	RATHDRUM
+ID	REUBENS
+ID	REXBURG
+ID	RICHFIELD
+ID	RIDDLE
+ID	RIGBY
+ID	RIGGINS
+ID	RIRIE
+ID	ROBERTS
+ID	ROCKLAND
+ID	ROCKY BAR
+ID	ROGERSON
+ID	RUPERT
+ID	SAGLE
+ID	SAINT ANTHONY
+ID	SAINT CHARLES
+ID	SAINT MARIES
+ID	SALMON
+ID	SANDPOINT
+ID	SANTA
+ID	SAWTOOTH CITY
+ID	SHELLEY
+ID	SHOSHONE
+ID	SHOUP
+ID	SILVERTON
+ID	SMELTERVILLE
+ID	SODA SPRINGS
+ID	SPALDING
+ID	SPENCER
+ID	SPIRIT LAKE
+ID	SPRINGFIELD
+ID	STANLEY
+ID	STAR
+ID	STAR RANCH
+ID	STEIRMAN
+ID	STERLING
+ID	STITES
+ID	ST MARIES
+ID	STONE
+ID	SUGAR CITY
+ID	SUN VALLEY
+ID	SWANLAKE
+ID	SWAN VALLEY
+ID	SWEET
+ID	TAMARACK
+ID	TENDOY
+ID	TENSED
+ID	TERRETON
+ID	TETON
+ID	TETONIA
+ID	THATCHER
+ID	TIPANUK
+ID	TRIUMPH
+ID	TROY
+ID	TWIN FALLS
+ID	TWIN LAKES
+ID	UCON
+ID	VICTOR
+ID	VIOLA
+ID	WALLACE
+ID	WARDNER
+ID	WARREN
+ID	WAYAN
+ID	WEIPPE
+ID	WEISER
+ID	WENDELL
+ID	WEST MAGIC
+ID	WESTON
+ID	WHITE BIRD
+ID	WILDER
+ID	WINCHESTER
+ID	WORLEY
+ID	YELLOW PINE
+IL	ABBOTT PARK
+IL	ABINGDON
+IL	ADAIR
+IL	ADDIEVILLE
+IL	ADDISON
+IL	ADRIAN
+IL	AKIN
+IL	ALBANY
+IL	ALBERS
+IL	ALBION
+IL	ALDEN
+IL	ALEDO
+IL	ALEXANDER
+IL	ALEXIS
+IL	ALGONQUIN
+IL	ALHAMBRA
+IL	ALLENDALE
+IL	ALLERTON
+IL	ALMA
+IL	ALORTON
+IL	ALPHA
+IL	ALSEY
+IL	ALSIP
+IL	ALTAMONT
+IL	ALTON
+IL	ALTONA
+IL	ALTO PASS
+IL	ALVIN
+IL	AMBOY
+IL	ANCHOR
+IL	ANCONA
+IL	ANDALUSIA
+IL	ANDOVER
+IL	ANDREW
+IL	ANNA
+IL	ANNAPOLIS
+IL	ANNAWAN
+IL	ANTIOCH
+IL	APPLE RIVER
+IL	ARCADIA
+IL	ARCHER
+IL	ARCOLA
+IL	ARENZVILLE
+IL	ARGENTA
+IL	ARGO
+IL	ARLINGTON
+IL	ARLINGTON HEIGHTS
+IL	ARLINGTON HTS
+IL	ARMINGTON
+IL	ARMSTRONG
+IL	ARNOLD
+IL	AROMA PARK
+IL	ARROWSMITH
+IL	ARTHUR
+IL	ASHKUM
+IL	ASHLAND
+IL	ASHLEY
+IL	ASHMORE
+IL	ASHTON
+IL	ASSUMPTION
+IL	ASTORIA
+IL	ATHENS
+IL	ATKINSON
+IL	ATLANTA
+IL	ATTERBERRY
+IL	ATWATER
+IL	ATWOOD
+IL	AUBURN
+IL	AUGUSTA
+IL	AURORA
+IL	AVA
+IL	AVISTON
+IL	AVON
+IL	BADER
+IL	BAILEYVILLE
+IL	BALDWIN
+IL	BANNER
+IL	BANNOCKBURN
+IL	BARCLAY
+IL	BARDOLPH
+IL	BARNHILL
+IL	BARR
+IL	BARRINGTON
+IL	BARRY
+IL	BARSTOW
+IL	BARTELSO
+IL	BARTLETT
+IL	BARTONVILLE
+IL	BASCO
+IL	BATAVIA
+IL	BATCHTOWN
+IL	BATES
+IL	BATH
+IL	BAYLIS
+IL	BAYVIEW GARDE
+IL	BAYVIEW GARDENS
+IL	BEACH PARK
+IL	BEARDSTOWN
+IL	BEARSDALE
+IL	BEASON
+IL	BEAVERVILLE
+IL	BECKEMEYER
+IL	BEDFORD PARK
+IL	BEECHER
+IL	BEECHER CITY
+IL	BELKNAP
+IL	BELLE RIVE
+IL	BELLEVILLE
+IL	BELLEVUE
+IL	BELLFLOWER
+IL	BELLMONT
+IL	BELLWOOD
+IL	BELVIDERE
+IL	BEMENT
+IL	BENLD
+IL	BENSENVILLE
+IL	BENSON
+IL	BENTON
+IL	BERKELEY
+IL	BERLIN
+IL	BERRY
+IL	BERWICK
+IL	BERWYN
+IL	BETHALTO
+IL	BETHANY
+IL	BIBLE GROVE
+IL	BIGGS
+IL	BIGGSVILLE
+IL	BIG ROCK
+IL	BINGHAM
+IL	BIRDS
+IL	BISHOP HILL
+IL	BISMARCK
+IL	BISSELL
+IL	BLACKSTONE
+IL	BLANDINSVILLE
+IL	BLOOMINGDALE
+IL	BLOOMINGTON
+IL	BLUE ISLAND
+IL	BLUE MOUND
+IL	BLUFF CITY
+IL	BLUFFS
+IL	BLUFF SPRINGS
+IL	BLUFORD
+IL	BOLES
+IL	BOLINGBROOK
+IL	BOLIVIA
+IL	BONDVILLE
+IL	BONE GAP
+IL	BONFIELD
+IL	BONNIE
+IL	BOODY
+IL	BOURBONNAIS
+IL	BOWEN
+IL	BRACEVILLE
+IL	BRADFORD
+IL	BRADFORDTON
+IL	BRADLEY
+IL	BRAIDWOOD
+IL	BRECKENRIDGE
+IL	BREESE
+IL	BRIDGEPORT
+IL	BRIDGEVIEW
+IL	BRIGHTON
+IL	BRIMFIELD
+IL	BRISTOL
+IL	BROADLANDS
+IL	BROADVIEW
+IL	BROADWELL
+IL	BROCTON
+IL	BROOKFIELD
+IL	BROOKLYN
+IL	BROOKPORT
+IL	BROUGHTON
+IL	BROWNFIELD
+IL	BROWNING
+IL	BROWNS
+IL	BROWNSTOWN
+IL	BRUSSELS
+IL	BRYANT
+IL	BUCKINGHAM
+IL	BUCKLEY
+IL	BUCKNER
+IL	BUDA
+IL	BUFFALO
+IL	BUFFALO GROVE
+IL	BUFFALO HART
+IL	BUFFALO PR
+IL	BUFFALO PRAIRIE
+IL	BULL VALLEY
+IL	BULPITT
+IL	BUNCOMBE
+IL	BUNKER HILL
+IL	BURBANK
+IL	BUREAU
+IL	BURLINGTON
+IL	BURNHAM
+IL	BURNSIDE
+IL	BURNT PRAIRIE
+IL	BURR RIDGE
+IL	BUSHNELL
+IL	BUTLER
+IL	BYRON
+IL	CABERY
+IL	CACHE
+IL	CAHOKIA
+IL	CAIRO
+IL	CALEDONIA
+IL	CALHOUN
+IL	CALUMET CITY
+IL	CALUMET PARK
+IL	CAMARGO
+IL	CAMBRIA
+IL	CAMBRIDGE
+IL	CAMDEN
+IL	CAMERON
+IL	CAMPBELL HILL
+IL	CAMP GROVE
+IL	CAMP POINT
+IL	CAMPUS
+IL	CANTON
+IL	CANTRALL
+IL	CAPRON
+IL	CARBON CLIFF
+IL	CARBONDALE
+IL	CARBON HILL
+IL	CARLINVILLE
+IL	CARLOCK
+IL	CARLYLE
+IL	CARMAN
+IL	CARMI
+IL	CAROL STREAM
+IL	CARPENTERSVILLE
+IL	CARPENTERSVLE
+IL	CARRIER MILLS
+IL	CARROLLTON
+IL	CARTERVILLE
+IL	CARTHAGE
+IL	CARY
+IL	CASEY
+IL	CASEYVILLE
+IL	CASTLETON
+IL	CATLIN
+IL	CAVE IN ROCK
+IL	CAZENOVIA
+IL	CEDAR POINT
+IL	CEDARVILLE
+IL	CENTRALIA
+IL	CENTREVILLE
+IL	CERRO GORDO
+IL	CHADWICK
+IL	CHAMBERSBURG
+IL	CHAMPAIGN
+IL	CHANA
+IL	CHANDLERVILLE
+IL	CHANNAHON
+IL	CHAPIN
+IL	CHARLESTON
+IL	CHATHAM
+IL	CHATSWORTH
+IL	CHEBANSE
+IL	CHENOA
+IL	CHERRY
+IL	CHERRY VALLEY
+IL	CHESTER
+IL	CHESTERFIELD
+IL	CHESTNUT
+IL	CHICAGO
+IL	CHICAGO HEIGHTS
+IL	CHICAGO HTS
+IL	CHICAGO RIDGE
+IL	CHILLICOTHE
+IL	CHRISMAN
+IL	CHRISTOPHER
+IL	CICERO
+IL	CIMIC
+IL	CISCO
+IL	CISNE
+IL	CISSNA PARK
+IL	CLARE
+IL	CLAREMONT
+IL	CLARENCE
+IL	CLARENDON HILLS
+IL	CLARENDON HLS
+IL	CLARKSBURG
+IL	CLARKSDALE
+IL	CLAY CITY
+IL	CLAYTON
+IL	CLAYTONVILLE
+IL	CLEMENTS
+IL	CLEVELAND
+IL	CLIFTON
+IL	CLINTON
+IL	CNTRY CLB HLS
+IL	COAL CITY
+IL	COAL VALLEY
+IL	COATSBURG
+IL	COBDEN
+IL	COELLO
+IL	COFFEEN
+IL	COLCHESTER
+IL	COLETA
+IL	COLFAX
+IL	COLLINSVILLE
+IL	COLLISON
+IL	COLMAR
+IL	COLONA
+IL	COLP
+IL	COLUMBIA
+IL	COLUMBUS
+IL	COLUSA
+IL	COMER
+IL	COMPTON
+IL	CONCORD
+IL	CONGERVILLE
+IL	COOKSVILLE
+IL	CORDOVA
+IL	CORNELL
+IL	CORNLAND
+IL	CORTLAND
+IL	COTTAGE HILLS
+IL	COULTERVILLE
+IL	COUNTRY CLUB HILLS
+IL	COUNTRYSIDE
+IL	COWDEN
+IL	CREAL SPRINGS
+IL	CRESCENT CITY
+IL	CRESTHILL
+IL	CREST HILL
+IL	CRESTON
+IL	CRESTWOOD
+IL	CRETE
+IL	CREVE COEUR
+IL	CROPSEY
+IL	CROSSVILLE
+IL	CRYSTAL LAKE
+IL	CTRY CLB HLS
+IL	CUBA
+IL	CULLOM
+IL	CURRAN
+IL	CUSTER PARK
+IL	CUTLER
+IL	CYPRESS
+IL	DAHINDA
+IL	DAHLGREN
+IL	DAKOTA
+IL	DALE
+IL	DALLAS CITY
+IL	DALTON CITY
+IL	DALZELL
+IL	DAMIANSVILLE
+IL	DANA
+IL	DANFORTH
+IL	DANVERS
+IL	DANVILLE
+IL	DARIEN
+IL	DAVIS
+IL	DAVIS JCT
+IL	DAVIS JUNCTION
+IL	DAWSON
+IL	DECATUR
+IL	DEER CREEK
+IL	DEERFIELD
+IL	DEER GROVE
+IL	DEER PARK
+IL	DEKALB
+IL	DE LAND
+IL	DELAVAN
+IL	DELONG
+IL	DENNISON
+IL	DEPUE
+IL	DE SOTO
+IL	DES PLAINES
+IL	DETROIT
+IL	DEWEY
+IL	DEWITT
+IL	DIAMOND
+IL	DIETERICH
+IL	DIVERNON
+IL	DIX
+IL	DIXMOOR
+IL	DIXON
+IL	DOLLVILLE
+IL	DOLTON
+IL	DONGOLA
+IL	DONNELLSON
+IL	DONOVAN
+IL	DORCHESTER
+IL	DORSEY
+IL	DOVER
+IL	DOW
+IL	DOWELL
+IL	DOWNERS GROVE
+IL	DOWNEY
+IL	DOWNS
+IL	DU BOIS
+IL	DUNDAS
+IL	DUNDEE
+IL	DUNFERMLINE
+IL	DUNKEL
+IL	DUNLAP
+IL	DUPO
+IL	DU QUOIN
+IL	DURAND
+IL	DUVALL
+IL	DWIGHT
+IL	EAGARVILLE
+IL	EARLVILLE
+IL	EAST ALTON
+IL	EAST CARONDELET
+IL	EAST DUBUQUE
+IL	EAST DUNDEE
+IL	EAST GALESBURG
+IL	EAST LYNN
+IL	EAST MOLINE
+IL	EASTON
+IL	EAST PEORIA
+IL	EAST SAINT LOUIS
+IL	E CARONDELET
+IL	ECKARD
+IL	EDDYVILLE
+IL	EDELSTEIN
+IL	EDENBURG
+IL	EDGEWOOD
+IL	EDINBURG
+IL	EDWARDS
+IL	EDWARDSVILLE
+IL	EFFINGHAM
+IL	E GALESBURG
+IL	EGAN
+IL	ELBURN
+IL	ELCO
+IL	ELDENA
+IL	ELDORADO
+IL	ELDRED
+IL	ELEROY
+IL	ELGIN
+IL	ELIZABETH
+IL	ELIZABETHTOWN
+IL	ELK GROVE VILLAGE
+IL	ELK GROVE VLG
+IL	ELKHART
+IL	ELKVILLE
+IL	ELLERY
+IL	ELLIOTT
+IL	ELLIS GROVE
+IL	ELLISVILLE
+IL	ELLSWORTH
+IL	ELMHURST
+IL	ELMWOOD
+IL	ELMWOOD PARK
+IL	EL PASO
+IL	ELSAH
+IL	ELVASTON
+IL	ELWIN
+IL	ELWOOD
+IL	EMDEN
+IL	EMINGTON
+IL	EMMA
+IL	ENERGY
+IL	ENFIELD
+IL	ENION
+IL	ENOS
+IL	EOLA
+IL	EQUALITY
+IL	ERIE
+IL	E SAINT LOUIS
+IL	ESMOND
+IL	ESSEX
+IL	EUREKA
+IL	EVANSTON
+IL	EVANSVILLE
+IL	EVERGREEN PARK
+IL	EVERGREEN PK
+IL	EWING
+IL	EXETER
+IL	FAIRBURY
+IL	FAIRFIELD
+IL	FAIRMONT CITY
+IL	FAIRMOUNT
+IL	FAIRVIEW
+IL	FAIRVIEW HEIGHTS
+IL	FAIRVIEW HTS
+IL	FANCY PRAIRIE
+IL	FARINA
+IL	FARMER CITY
+IL	FARMERSVILLE
+IL	FARMINGDALE
+IL	FARMINGTON
+IL	FAYETTEVILLE
+IL	FENTON
+IL	FERRIS
+IL	FIATT
+IL	FIDELITY
+IL	FIELDON
+IL	FILLMORE
+IL	FINDLAY
+IL	FISHER
+IL	FITHIAN
+IL	FLANAGAN
+IL	FLAT ROCK
+IL	FLORA
+IL	FLOSSMOOR
+IL	FOOSLAND
+IL	FORD HEIGHTS
+IL	FOREST CITY
+IL	FOREST PARK
+IL	FOREST VIEW
+IL	FORREST
+IL	FORRESTON
+IL	FORSYTH
+IL	FORT SHERIDAN
+IL	FOWLER
+IL	FOX LAKE
+IL	FOX RIVER GROVE
+IL	FOX RIVER GRV
+IL	FOX RIVER VALLEY GARDENS
+IL	FOX RV VLY GN
+IL	FOX VALLEY
+IL	FRANKFORT
+IL	FRANKFORT HEIGHTS
+IL	FRANKFORT HTS
+IL	FRANKLIN
+IL	FRANKLIN GROVE
+IL	FRANKLIN GRV
+IL	FRANKLIN PARK
+IL	FREDERICK
+IL	FREEBURG
+IL	FREEMAN SPUR
+IL	FREEPORT
+IL	FULTON
+IL	FULTS
+IL	GAGES LAKE
+IL	GALATIA
+IL	GALE
+IL	GALENA
+IL	GALESBURG
+IL	GALT
+IL	GALVA
+IL	GARDEN PR
+IL	GARDEN PRAIRIE
+IL	GARDNER
+IL	GAYS
+IL	GEFF
+IL	GENESEO
+IL	GENEVA
+IL	GENOA
+IL	GEORGETOWN
+IL	GERLAW
+IL	GERMANTOWN
+IL	GERMANTOWN HILLS
+IL	GERMANTWN HLS
+IL	GERMAN VALLEY
+IL	GIBSON CITY
+IL	GIFFORD
+IL	GILBERTS
+IL	GILLESPIE
+IL	GILMAN
+IL	GILSON
+IL	GIRARD
+IL	GLADSTONE
+IL	GLASFORD
+IL	GLENARM
+IL	GLEN CARBON
+IL	GLENCOE
+IL	GLENDALE HEIGHTS
+IL	GLENDALE HTS
+IL	GLEN ELLYN
+IL	GLENVIEW
+IL	GLENWOOD
+IL	GODFREY
+IL	GODLEY
+IL	GOLCONDA
+IL	GOLDEN
+IL	GOLDEN EAGLE
+IL	GOLDEN GATE
+IL	GOLF
+IL	GOODFIELD
+IL	GOOD HOPE
+IL	GOODWINE
+IL	GOREVILLE
+IL	GORHAM
+IL	GRAFTON
+IL	GRAND CHAIN
+IL	GRAND RIDGE
+IL	GRAND TOWER
+IL	GRANDVIEW
+IL	GRANITE CITY
+IL	GRANT PARK
+IL	GRANTSBURG
+IL	GRANVILLE
+IL	GRAYMONT
+IL	GRAYSLAKE
+IL	GRAYVILLE
+IL	GREAT LAKES
+IL	GREENFIELD
+IL	GREEN ROCK
+IL	GREENUP
+IL	GREEN VALLEY
+IL	GREENVIEW
+IL	GREENVILLE
+IL	GRIDLEY
+IL	GRIGGSVILLE
+IL	GROVELAND
+IL	GURNEE
+IL	HAGAMAN
+IL	HAGARSTOWN
+IL	HAINESVILLE
+IL	HAMBURG
+IL	HAMEL
+IL	HAMILTON
+IL	HAMLETSBURG
+IL	HAMMOND
+IL	HAMPSHIRE
+IL	HAMPTON
+IL	HANNA CITY
+IL	HANOVER
+IL	HANOVER PARK
+IL	HARCO
+IL	HARDIN
+IL	HARMON
+IL	HARRISBURG
+IL	HARRISTOWN
+IL	HARTFORD
+IL	HARTSBURG
+IL	HARVARD
+IL	HARVEL
+IL	HARVEY
+IL	HARWOOD HEIGHTS
+IL	HARWOOD HGTS
+IL	HARWOOD HTS
+IL	HAVANA
+IL	HAWTHORN WDS
+IL	HAWTHORN WOODS
+IL	HAZEL CREST
+IL	HAZEL DELL
+IL	HEBRON
+IL	HECKER
+IL	HEMAN
+IL	HENDERSON
+IL	HENNEPIN
+IL	HENNING
+IL	HENRY
+IL	HENTON
+IL	HERALD
+IL	HEROD
+IL	HERRICK
+IL	HERRIN
+IL	HERSCHER
+IL	HERVEY CITY
+IL	HETTICK
+IL	HEWITTSVILLE
+IL	HEYWORTH
+IL	HICKORY HILLS
+IL	HIDALGO
+IL	HIGHLAND
+IL	HIGHLAND PARK
+IL	HIGHWOOD
+IL	HILLSBORO
+IL	HILLSDALE
+IL	HILLSIDE
+IL	HILLVIEW
+IL	HINCKLEY
+IL	HINDSBORO
+IL	HINES
+IL	HINSDALE
+IL	HINTON
+IL	HODGKINS
+IL	HOFFMAN
+IL	HOFFMAN EST
+IL	HOFFMAN ESTATES
+IL	HOLCOMB
+IL	HOLDER
+IL	HOLIDAY HILLS
+IL	HOLLOWAYVILLE
+IL	HOMER
+IL	HOMER GLEN
+IL	HOMETOWN
+IL	HOMEWOOD
+IL	HOOPESTON
+IL	HOOPPOLE
+IL	HOPEDALE
+IL	HOPEWELL
+IL	HOPKINS PARK
+IL	HOYLETON
+IL	HUBLY
+IL	HUDSON
+IL	HUEY
+IL	HULL
+IL	HUMBOLDT
+IL	HUME
+IL	HUNTLEY
+IL	HUNTSVILLE
+IL	HURST
+IL	HUTSONVILLE
+IL	ILLINOIS CITY
+IL	ILLIOPOLIS
+IL	INA
+IL	IND HEAD PARK
+IL	IND HEAD PK
+IL	INDIAN CREEK
+IL	INDIAN HEAD PARK
+IL	INDIAN HEAD PK
+IL	INDIANOLA
+IL	INDUSTRY
+IL	INGLESIDE
+IL	INGRAHAM
+IL	INVERNESS
+IL	IOLA
+IL	IPAVA
+IL	IROQUOIS
+IL	IRVING
+IL	IRVINGTON
+IL	ISLAND LAKE
+IL	ITASCA
+IL	IUKA
+IL	IVESDALE
+IL	JACKSONVILLE
+IL	JACOB
+IL	JANESVILLE
+IL	JEFFERSON PARK
+IL	JEFFERSON PK
+IL	JEISEYVILLE
+IL	JEROME
+IL	JERSEYVILLE
+IL	JEWETT
+IL	JOHNSBURG
+IL	JOHNSONVILLE
+IL	JOHNSTON CITY
+IL	JOLIET
+IL	JONESBORO
+IL	JOPPA
+IL	JOY
+IL	JUNCTION
+IL	JUSTICE
+IL	KAMPSVILLE
+IL	KANE
+IL	KANEVILLE
+IL	KANKAKEE
+IL	KANSAS
+IL	KAPPA
+IL	KARBERS RIDGE
+IL	KARNAK
+IL	KASBEER
+IL	KEENES
+IL	KEENSBURG
+IL	KEITHSBURG
+IL	KELL
+IL	KEMPTON
+IL	KENILWORTH
+IL	KENNEY
+IL	KENT
+IL	KEWANEE
+IL	KEYESPORT
+IL	KILBOURNE
+IL	KILDEER
+IL	KINCAID
+IL	KINDERHOOK
+IL	KINGS
+IL	KINGSTON
+IL	KINGSTON MINE
+IL	KINGSTON MINES
+IL	KINMUNDY
+IL	KINSMAN
+IL	KIRKLAND
+IL	KIRKWOOD
+IL	KNOXVILLE
+IL	LACLEDE
+IL	LACON
+IL	LADD
+IL	LA FAYETTE
+IL	LAFOX
+IL	LA GRANGE
+IL	LA GRANGE HIGHLANDS
+IL	LAGRANGE HLDS
+IL	LA GRANGE PARK
+IL	LA GRANGE PK
+IL	LA HARPE
+IL	LAKE BARRINGTON
+IL	LAKE BLUFF
+IL	LAKE FOREST
+IL	LAKE FORK
+IL	LAKE IN THE HILLS
+IL	LAKEMOOR
+IL	LAKE VILLA
+IL	LAKEWOOD
+IL	LAKE ZURICH
+IL	LA MOILLE
+IL	LANARK
+IL	LANCASTER
+IL	LANE
+IL	LANESVILLE
+IL	LANGLEYVILLE
+IL	LANSING
+IL	LA PLACE
+IL	LA PRAIRIE
+IL	LA ROSE
+IL	LA SALLE
+IL	LATHAM
+IL	LAURA
+IL	LAWNDALE
+IL	LAWRENCEVILLE
+IL	LEAF RIVER
+IL	LEBANON
+IL	LEE
+IL	LEE CENTER
+IL	LELAND
+IL	LELAND GROVE
+IL	LEMONT
+IL	LENA
+IL	LENZBURG
+IL	LEONORE
+IL	LERNA
+IL	LE ROY
+IL	LEWISTOWN
+IL	LEXINGTON
+IL	LIBERTY
+IL	LIBERTYVILLE
+IL	LIMA
+IL	LINCOLN
+IL	LINCOLN NW SL
+IL	LINCOLNSHIRE
+IL	LINCOLNS NEW SALEM
+IL	LINCOLNWOOD
+IL	LINDENHURST
+IL	LINDENWOOD
+IL	LISLE
+IL	LITCHFIELD
+IL	LITERBERRY
+IL	LITTLE INDIAN
+IL	LITTLETON
+IL	LITTLE YORK
+IL	LIVERPOOL
+IL	LIVINGSTON
+IL	LK BARRINGTON
+IL	LK IN THE HLS
+IL	LOAMI
+IL	LOCKPORT
+IL	LODA
+IL	LODGE
+IL	LOGAN
+IL	LOMAX
+IL	LOMBARD
+IL	LONDON MILLS
+IL	LONG GROVE
+IL	LONG POINT
+IL	LONGVIEW
+IL	LOOGOOTEE
+IL	LORAINE
+IL	LOSTANT
+IL	LOUISVILLE
+IL	LOVEJOY
+IL	LOVES PARK
+IL	LOVINGTON
+IL	LOWDER
+IL	LOWPOINT
+IL	LUDLOW
+IL	LUTHER
+IL	LYNCHBURG
+IL	LYNDON
+IL	LYNN CENTER
+IL	LYNNVILLE
+IL	LYNWOOD
+IL	LYONS
+IL	MACEDONIA
+IL	MACHESNEY PARK
+IL	MACHESNEY PK
+IL	MACKINAW
+IL	MACOMB
+IL	MACON
+IL	MADISON
+IL	MAEYSTOWN
+IL	MAGNOLIA
+IL	MAHOMET
+IL	MAKANDA
+IL	MALDEN
+IL	MALTA
+IL	MANCHESTER
+IL	MANHATTAN
+IL	MANITO
+IL	MANLIUS
+IL	MANSFIELD
+IL	MANTENO
+IL	MANVILLE
+IL	MAPLE PARK
+IL	MAPLETON
+IL	MAQUON
+IL	MARENGO
+IL	MARIETTA
+IL	MARINE
+IL	MARION
+IL	MARISSA
+IL	MARK
+IL	MARKHAM
+IL	MAROA
+IL	MARQUETTE HEIGHTS
+IL	MARQUETTE HTS
+IL	MARSEILLES
+IL	MARSHALL
+IL	MARTINSVILLE
+IL	MARTINTON
+IL	MARYVILLE
+IL	MASCOUTAH
+IL	MASON
+IL	MASON CITY
+IL	MATHERVILLE
+IL	MATTESON
+IL	MATTOON
+IL	MAUNIE
+IL	MAYWOOD
+IL	MAZON
+IL	MC CLURE
+IL	MC CONNELL
+IL	MC COOK
+IL	MCCULLOM LAKE
+IL	MCHENRY
+IL	MC LEAN
+IL	MC LEANSBORO
+IL	MC NABB
+IL	MCVEY
+IL	MECHANICSBURG
+IL	MEDIA
+IL	MEDINAH
+IL	MEDORA
+IL	MELROSE PARK
+IL	MELVIN
+IL	MENARD
+IL	MENDON
+IL	MENDOTA
+IL	MEPPEN
+IL	MEREDOSIA
+IL	MERNA
+IL	MERRIONETTE PARK
+IL	MERRIONETT PK
+IL	MERRITT
+IL	METAMORA
+IL	METCALF
+IL	METROPOLIS
+IL	METTAWA
+IL	MICHAEL
+IL	MIDDLEGROVE
+IL	MIDDLESWORTH
+IL	MIDDLETOWN
+IL	MIDLOTHIAN
+IL	MILAN
+IL	MILFORD
+IL	MILLBROOK
+IL	MILLCREEK
+IL	MILLEDGEVILLE
+IL	MILLER CITY
+IL	MILLERSVILLE
+IL	MILLINGTON
+IL	MILL SHOALS
+IL	MILLSTADT
+IL	MILMINE
+IL	MILTON
+IL	MINERAL
+IL	MINIER
+IL	MINONK
+IL	MINOOKA
+IL	MITCHELL
+IL	MODE
+IL	MODESTO
+IL	MODOC
+IL	MOKENA
+IL	MOLINE
+IL	MOMENCE
+IL	MONEE
+IL	MONMOUTH
+IL	MONROE CENTER
+IL	MONTGMRY
+IL	MONTGOMERY
+IL	MONTICELLO
+IL	MONTROSE
+IL	MOOSEHEART
+IL	MORO
+IL	MORRIS
+IL	MORRISON
+IL	MORRISONVILLE
+IL	MORTON
+IL	MORTON GROVE
+IL	MOSSVILLE
+IL	MOUND CITY
+IL	MOUNDS
+IL	MOUNT AUBURN
+IL	MOUNT CARMEL
+IL	MOUNT CARROLL
+IL	MOUNT ERIE
+IL	MOUNT GREENWOOD
+IL	MOUNT MORRIS
+IL	MOUNT OLIVE
+IL	MOUNT PROSPECT
+IL	MOUNT PULASKI
+IL	MOUNT STERLING
+IL	MOUNT VERNON
+IL	MOUNT ZION
+IL	MOWEAQUA
+IL	MOZIER
+IL	MT GREENWOOD
+IL	MT PROSPECT
+IL	MT STERLING
+IL	MT ZION
+IL	MUDDY
+IL	MULBERRY GROVE
+IL	MULBERRY GRV
+IL	MULKEYTOWN
+IL	MUNCIE
+IL	MUNDELEIN
+IL	MURDOCK
+IL	MURPHYSBORO
+IL	MURRAYVILLE
+IL	NACHUSA
+IL	NAPERVILLE
+IL	NAPLES
+IL	NASHVILLE
+IL	NASON
+IL	NATIONAL STOCK YARDS
+IL	NATL STOCK YD
+IL	NAUVOO
+IL	N BARRINGTON
+IL	NEBO
+IL	NELSON
+IL	NEOGA
+IL	NEPONSET
+IL	NEWARK
+IL	NEW ATHENS
+IL	NEW BADEN
+IL	NEW BEDFORD
+IL	NEW BERLIN
+IL	NEW BOSTON
+IL	NEWBURG
+IL	NEW BURNSIDE
+IL	NEW CANTON
+IL	NEW CITY
+IL	NEW DOUGLAS
+IL	NEW HAVEN
+IL	NEW HOLLAND
+IL	NEW LENOX
+IL	NEW LIBERTY
+IL	NEWMAN
+IL	NEWMANSVILLE
+IL	NEW MEMPHIS
+IL	NEW SALEM
+IL	NEWTON
+IL	NEW WINDSOR
+IL	N HENDERSON
+IL	NIANTIC
+IL	NILES
+IL	NILWOOD
+IL	NIOTA
+IL	NOBLE
+IL	NOKOMIS
+IL	NORA
+IL	NORMAL
+IL	NORMANDY
+IL	NORRIDGE
+IL	NORRIS
+IL	NORRIS CITY
+IL	NORTH AURORA
+IL	NORTH BARRINGTON
+IL	NORTHBROOK
+IL	NORTH CHICAGO
+IL	NORTHFIELD
+IL	NORTH HENDERSON
+IL	NORTHLAKE
+IL	NORTH PEKIN
+IL	NORTH RIVERSIDE
+IL	NORTHWOODS
+IL	NORTONVILLE
+IL	N RIVERSIDE
+IL	OAK BRK MALL
+IL	OAK BROOK
+IL	OAK BROOK MALL BRANCH
+IL	OAKBROOK TER
+IL	OAKBROOK TERRACE
+IL	OAKDALE
+IL	OAKFORD
+IL	OAK FOREST
+IL	OAKLAND
+IL	OAK LAWN
+IL	OAKLEY
+IL	OAK PARK
+IL	OAKWOOD
+IL	OAKWOOD HILLS
+IL	OBLONG
+IL	OCONEE
+IL	ODELL
+IL	ODIN
+IL	O FALLON
+IL	OGDEN
+IL	OGLESBY
+IL	OHIO
+IL	OHLMAN
+IL	OKAWVILLE
+IL	OLD BERLIN
+IL	OLD MILL CREEK
+IL	OLD MILL CRK
+IL	OLIVE BRANCH
+IL	OLMSTED
+IL	OLNEY
+IL	OLYMPIA FIELDS
+IL	OLYMPIA FLDS
+IL	OMAHA
+IL	ONARGA
+IL	ONEIDA
+IL	ONTARIOVILLE
+IL	OPDYKE
+IL	OPHIEM
+IL	OQUAWKA
+IL	ORANGEVILLE
+IL	ORAVILLE
+IL	OREANA
+IL	OREGON
+IL	ORIENT
+IL	ORION
+IL	ORLAND HILLS
+IL	ORLAND PARK
+IL	OSCO
+IL	OSWEGO
+IL	OTTAWA
+IL	OTTERVILLE
+IL	OWANECO
+IL	OZARK
+IL	PALATINE
+IL	PALESTINE
+IL	PALMER
+IL	PALMYRA
+IL	PALOMA
+IL	PALOS HEIGHTS
+IL	PALOS HILLS
+IL	PALOS PARK
+IL	PANA
+IL	PANAMA
+IL	PANOLA
+IL	PANTHER CREEK
+IL	PAPINEAU
+IL	PARIS
+IL	PARK CITY
+IL	PARKERSBURG
+IL	PARK FOREST
+IL	PARK RIDGE
+IL	PATOKA
+IL	PATTERSON
+IL	PAWNEE
+IL	PAW PAW
+IL	PAXTON
+IL	PAYSON
+IL	PEARL
+IL	PEARL CITY
+IL	PECATONICA
+IL	PEKIN
+IL	PENFIELD
+IL	PEORIA
+IL	PEORIA HEIGHTS
+IL	PEORIA HTS
+IL	PEOTONE
+IL	PERCY
+IL	PERKS
+IL	PERRY
+IL	PERU
+IL	PESOTUM
+IL	PETERSBURG
+IL	PHILO
+IL	PHOENIX
+IL	PIASA
+IL	PIERRON
+IL	PIERSON STA
+IL	PIERSON STATION
+IL	PINCKNEYVILLE
+IL	PINGREE GROVE
+IL	PIPER CITY
+IL	PISGAH
+IL	PITTSBURG
+IL	PITTSFIELD
+IL	PLAINFIELD
+IL	PLAINVIEW
+IL	PLAINVILLE
+IL	PLANO
+IL	PLATO CENTER
+IL	PLEASANT HILL
+IL	PLEASANT PLAINS
+IL	PLEASANT PLNS
+IL	PLEASANT VIEW
+IL	PLYMOUTH
+IL	POCAHONTAS
+IL	POLO
+IL	POMONA
+IL	PONTIAC
+IL	PONTOON BEACH
+IL	PONTOOSUC
+IL	POPLAR CITY
+IL	POPLAR GROVE
+IL	PORT BARRINGTON
+IL	PORT BYRON
+IL	POSEN
+IL	POTOMAC
+IL	PRAIRIE CITY
+IL	PRAIRIE DU ROCHER
+IL	PRAIRIEVIEW
+IL	PRAIRIE VIEW
+IL	PR DU ROCHER
+IL	PREEMPTION
+IL	PRENTICE
+IL	PRINCETON
+IL	PRINCEVILLE
+IL	PROPHETSTOWN
+IL	PROSPECT HEIGHTS
+IL	PROSPECT HTS
+IL	PT BARRINGTON
+IL	PULASKI
+IL	PUTNAM
+IL	QUINCY
+IL	RADFORD
+IL	RADOM
+IL	RALEIGH
+IL	RAMSEY
+IL	RANKIN
+IL	RANSOM
+IL	RANTOUL
+IL	RAPIDS CITY
+IL	RARITAN
+IL	RAY
+IL	RAYMOND
+IL	REDBUD
+IL	RED BUD
+IL	REDDICK
+IL	REDMON
+IL	REES
+IL	RENAULT
+IL	REYNOLDS
+IL	RICHLAND
+IL	RICHMOND
+IL	RICHTON PARK
+IL	RICHVIEW
+IL	RIDDLE HILL
+IL	RIDGE FARM
+IL	RIDGWAY
+IL	RIDOTT
+IL	RIGGSTON
+IL	RINARD
+IL	RINGWOOD
+IL	RIO
+IL	RIVERDALE
+IL	RIVER FOREST
+IL	RIVER GROVE
+IL	RIVERSIDE
+IL	RIVERTON
+IL	RIVERWOODS
+IL	ROANOKE
+IL	ROBBINS
+IL	ROBBS
+IL	ROBERTS
+IL	ROBINSON
+IL	ROBY
+IL	ROCHELLE
+IL	ROCHESTER
+IL	ROCKBRIDGE
+IL	ROCK CITY
+IL	ROCKDALE
+IL	ROCK FALLS
+IL	ROCKFORD
+IL	ROCK ISLAND
+IL	ROCKPORT
+IL	ROCKTON
+IL	ROCKWOOD
+IL	ROLLING MDWS
+IL	ROLLING MEADOWS
+IL	ROME
+IL	ROMEOVILLE
+IL	ROODHOUSE
+IL	ROSAMOND
+IL	ROSCOE
+IL	ROSELLE
+IL	ROSEMONT
+IL	ROSEVILLE
+IL	ROSICLARE
+IL	ROSSVILLE
+IL	ROUND LAKE
+IL	ROUND LAKE BEACH
+IL	ROUND LAKE HEIGHTS
+IL	ROUND LAKE PARK
+IL	ROUND LK BCH
+IL	ROUND LK HTS
+IL	ROUND LK PARK
+IL	ROXANA
+IL	ROYAL
+IL	ROYAL LAKES
+IL	ROYALTON
+IL	RUMA
+IL	RUSHVILLE
+IL	RUSSELL
+IL	RUTLAND
+IL	SADORUS
+IL	SAILOR SPGS
+IL	SAILOR SPRINGS
+IL	SAINT ANNE
+IL	SAINT AUGUSTINE
+IL	SAINT CHARLES
+IL	SAINT DAVID
+IL	SAINT ELMO
+IL	SAINTE MARIE
+IL	SAINT FRANCISVILLE
+IL	SAINT JACOB
+IL	SAINT JOSEPH
+IL	SAINT LIBORY
+IL	SAINT PETER
+IL	SALEM
+IL	SALISBURY
+IL	SANDOVAL
+IL	SANDWICH
+IL	SAN JOSE
+IL	SAUGET
+IL	SAUK VILLAGE
+IL	SAUNEMIN
+IL	SAVANNA
+IL	SAVOY
+IL	SAWYERVILLE
+IL	SAYBROOK
+IL	S BARRINGTON
+IL	SCALES MOUND
+IL	SCHAUMBURG
+IL	SCHELLER
+IL	S CHICAGO HEI
+IL	S CHICAGO HEIGHTS
+IL	S CHICAGO HTS
+IL	SCHILLER PARK
+IL	SCIOTA
+IL	SCIOTO MILLS
+IL	SCOTT AFB
+IL	SCOTT AIR FORCE BASE
+IL	SCOTTVILLE
+IL	SEATON
+IL	SEATONVILLE
+IL	SECOR
+IL	SENECA
+IL	SERENA
+IL	SESSER
+IL	SEWARD
+IL	SEYMOUR
+IL	SHABBONA
+IL	SHANNON
+IL	SHARPSBURG
+IL	SHATTUC
+IL	SHAWNEETOWN
+IL	SHEFFIELD
+IL	SHELBYVILLE
+IL	SHELDON
+IL	SHERIDAN
+IL	SHERMAN
+IL	SHERRARD
+IL	SHILOH
+IL	SHIPMAN
+IL	SHIRLAND
+IL	SHIRLEY
+IL	SHOBONIER
+IL	SHOREWOOD
+IL	SHUMWAY
+IL	SIBLEY
+IL	SICILY
+IL	SIDELL
+IL	SIDNEY
+IL	SIGEL
+IL	SILVIS
+IL	SIMPSON
+IL	SIMS
+IL	SINCLAIR
+IL	SKOKIE
+IL	SLEEPY HOLLOW
+IL	SMITHBORO
+IL	SMITHFIELD
+IL	SMITHSHIRE
+IL	SMITHTON
+IL	SNICARTE
+IL	SOLON MILLS
+IL	SOMONAUK
+IL	SORENTO
+IL	SOUTH BARRINGTON
+IL	SOUTH BELOIT
+IL	SOUTH CHICAGO HEIGHTS
+IL	SOUTH ELGIN
+IL	SOUTHERN VIEW
+IL	SOUTH HOLLAND
+IL	SOUTH PEKIN
+IL	SOUTH ROXANA
+IL	SOUTH SUBURBAN
+IL	SOUTH SUBURBN
+IL	SOUTH WILMINGTON
+IL	SPARLAND
+IL	SPARTA
+IL	SPAULDING
+IL	SPEER
+IL	SPRING BAY
+IL	SPRINGERTON
+IL	SPRINGFIELD
+IL	SPRING GROVE
+IL	SPRING VALLEY
+IL	STANDARD
+IL	STANDARD CITY
+IL	STANFORD
+IL	ST AUGUSTINE
+IL	STAUNTON
+IL	ST CHARLES
+IL	STEELEVILLE
+IL	STEGER
+IL	STERLING
+IL	STEWARD
+IL	STEWARDSON
+IL	ST FRANCISVLE
+IL	STICKNEY
+IL	STILLMAN VALLEY
+IL	STILLMAN VLY
+IL	STOCKLAND
+IL	STOCKTON
+IL	STONEFORT
+IL	STONE PARK
+IL	STONINGTON
+IL	STOY
+IL	STRASBURG
+IL	STRAWN
+IL	STREAMWOOD
+IL	STREATOR
+IL	STRONGHURST
+IL	SUBLETTE
+IL	SUGAR GROVE
+IL	SULLIVAN
+IL	SUMMERFIELD
+IL	SUMMER HILL
+IL	SUMMIT
+IL	SUMMIT ARGO
+IL	SUMNER
+IL	SUTTER
+IL	SWANSEA
+IL	SWANWICK
+IL	SWEET WATER
+IL	S WILMINGTON
+IL	SYCAMORE
+IL	TABLE GROVE
+IL	TALLULA
+IL	TAMAROA
+IL	TAMMS
+IL	TAMPICO
+IL	TAYLOR RIDGE
+IL	TAYLOR SPGS
+IL	TAYLOR SPRINGS
+IL	TAYLORVILLE
+IL	TECHNY
+IL	TEHERAN
+IL	TEMPLE HILL
+IL	TENNESSEE
+IL	TEUTOPOLIS
+IL	TEXICO
+IL	THAWVILLE
+IL	THAYER
+IL	THEBES
+IL	THIRD LAKE
+IL	THOMASBORO
+IL	THOMPSONVILLE
+IL	THOMSON
+IL	THORNTON
+IL	TICE
+IL	TILDEN
+IL	TILTON
+IL	TIMEWELL
+IL	TINLEY PARK
+IL	TISKILWA
+IL	TOLEDO
+IL	TOLONO
+IL	TOLUCA
+IL	TONICA
+IL	TOPEKA
+IL	TORONTO
+IL	TOULON
+IL	TOVEY
+IL	TOWANDA
+IL	TOWER HILL
+IL	TOWER LAKES
+IL	TREMONT
+IL	TRENTON
+IL	TRILLA
+IL	TRIUMPH
+IL	TRIVOLI
+IL	TROUT VALLEY
+IL	TROY
+IL	TROY GROVE
+IL	TUNNEL HILL
+IL	TUSCOLA
+IL	ULLIN
+IL	UNION
+IL	UNION HILL
+IL	UNITY
+IL	UNIVERSITY PARK
+IL	UNIVERSITY PK
+IL	URBANA
+IL	URSA
+IL	UTICA
+IL	VALIER
+IL	VALMEYER
+IL	VANDALIA
+IL	VAN ORIN
+IL	VARNA
+IL	VENEDY
+IL	VENICE
+IL	VERGENNES
+IL	VERMILION
+IL	VERMONT
+IL	VERNON
+IL	VERNON HILLS
+IL	VERONA
+IL	VERSAILLES
+IL	VICTORIA
+IL	VIENNA
+IL	VILLAGE OF LAKEWOOD
+IL	VILLA GROVE
+IL	VILLA PARK
+IL	VILLA RIDGE
+IL	VIOLA
+IL	VIRDEN
+IL	VIRGIL
+IL	VIRGINIA
+IL	VLG OF LAKEWD
+IL	VOLO
+IL	WADSWORTH
+IL	WAGGONER
+IL	WALNUT
+IL	WALNUT HILL
+IL	WALSH
+IL	WALSHVILLE
+IL	WALTONVILLE
+IL	WAPELLA
+IL	WARREN
+IL	WARRENSBURG
+IL	WARRENVILLE
+IL	WARSAW
+IL	WASCO
+IL	WASHBURN
+IL	WASHINGTON
+IL	WASHINGTON PARK
+IL	WASHINGTON PK
+IL	WATAGA
+IL	WATERLOO
+IL	WATERMAN
+IL	WATSEKA
+IL	WATSON
+IL	WAUCONDA
+IL	WAUKEGAN
+IL	WAVERLY
+IL	WAYNE
+IL	WAYNE CITY
+IL	WAYNESVILLE
+IL	WEDRON
+IL	WELDON
+IL	WELLINGTON
+IL	WENONA
+IL	WEST BROOKLYN
+IL	WESTCHESTER
+IL	WEST CHICAGO
+IL	WEST DUNDEE
+IL	WESTERN SPRGS
+IL	WESTERN SPRINGS
+IL	WESTERVELT
+IL	WESTFIELD
+IL	WEST FRANKFORT
+IL	WEST LIBERTY
+IL	WESTMONT
+IL	WEST PEORIA
+IL	WEST POINT
+IL	WEST SALEM
+IL	WEST UNION
+IL	WESTVILLE
+IL	WEST YORK
+IL	W FRANKFORT
+IL	WHEATON
+IL	WHEELER
+IL	WHEELING
+IL	WHITE HALL
+IL	WHITE HEATH
+IL	WHITTINGTON
+IL	WILLEYS
+IL	WILLIAMSFIELD
+IL	WILLIAMSVILLE
+IL	WILLISVILLE
+IL	WILLOWBROOK
+IL	WILLOW HILL
+IL	WILLOW SPGS
+IL	WILLOW SPRINGS
+IL	WILMETTE
+IL	WILMINGTON
+IL	WILSONVILLE
+IL	WILTON CENTER
+IL	WINCHESTER
+IL	WINDSOR
+IL	WINFIELD
+IL	WINNEBAGO
+IL	WINNETKA
+IL	WINSLOW
+IL	WINTHROP HARBOR
+IL	WINTHROP HBR
+IL	WITT
+IL	WOLF LAKE
+IL	WOMAC
+IL	WONDER LAKE
+IL	WOOD DALE
+IL	WOODHULL
+IL	WOODLAND
+IL	WOODLAWN
+IL	WOODRIDGE
+IL	WOOD RIVER
+IL	WOODSON
+IL	WOODSTOCK
+IL	WOOSUNG
+IL	WORDEN
+IL	WORTH
+IL	WRIGHTS
+IL	WYANET
+IL	WYOMING
+IL	XENIA
+IL	YALE
+IL	YANTISVILLE
+IL	YATES CITY
+IL	YATESVILLE
+IL	YORKVILLE
+IL	ZEIGLER
+IL	ZION
+IN	ACTON
+IN	ADVANCE
+IN	AKRON
+IN	ALAMO
+IN	ALBANY
+IN	ALBION
+IN	ALEXANDRIA
+IN	ALTON
+IN	AMBIA
+IN	AMBOY
+IN	AMO
+IN	ANDERSON
+IN	ANDREWS
+IN	ANGOLA
+IN	ARCADIA
+IN	ARCOLA
+IN	ARGOS
+IN	ARLINGTON
+IN	ASHLEY
+IN	ATHENS
+IN	ATLANTA
+IN	ATTERBURY
+IN	ATTICA
+IN	ATWOOD
+IN	AUBURN
+IN	AURORA
+IN	AUSTIN
+IN	AVILLA
+IN	AVOCA
+IN	AVON
+IN	BAINBRIDGE
+IN	BARGERSVILLE
+IN	BATESVILLE
+IN	BATH
+IN	BATTLE GROUND
+IN	BEDFORD
+IN	BEECH GROVE
+IN	BELLMORE
+IN	BENNINGTON
+IN	BENTONVILLE
+IN	BERNE
+IN	BETHLEHEM
+IN	BEVERLY SHORES
+IN	BEVERLY SHRS
+IN	BICKNELL
+IN	BIPPUS
+IN	BIRDSEYE
+IN	BLANFORD
+IN	BLOCHER
+IN	BLOOMFIELD
+IN	BLOOMINGDALE
+IN	BLOOMINGTON
+IN	BLUFFTON
+IN	BOGGSTOWN
+IN	BOONE GROVE
+IN	BOONVILLE
+IN	BORDEN
+IN	BOSTON
+IN	BOSWELL
+IN	BOURBON
+IN	BOWLING GREEN
+IN	BRADFORD
+IN	BRANCHVILLE
+IN	BRAZIL
+IN	BREMEN
+IN	BRIDGEPORT
+IN	BRIDGETON
+IN	BRIMFIELD
+IN	BRINGHURST
+IN	BRISTOL
+IN	BRISTOW
+IN	BROOK
+IN	BROOKLYN
+IN	BROOKSTON
+IN	BROOKVILLE
+IN	BROWNSBURG
+IN	BROWNSTOWN
+IN	BROWNSVILLE
+IN	BRUCEVILLE
+IN	BRYANT
+IN	BUCK CREEK
+IN	BUCKSKIN
+IN	BUFFALO
+IN	BUFFALOVILLE
+IN	BUNKER HILL
+IN	BURKET
+IN	BURLINGTON
+IN	BURNETTSVILLE
+IN	BURNEY
+IN	BURNS HARBOR
+IN	BURR OAK
+IN	BURROWS
+IN	BUTLER
+IN	BUTLERVILLE
+IN	CAMBRIDGE CITY
+IN	CAMBRIDGE CTY
+IN	CAMBY
+IN	CAMDEN
+IN	CAMP ATTERBRY
+IN	CAMP ATTERBURY
+IN	CAMP ATTRBRY
+IN	CAMPBELLSBURG
+IN	CANAAN
+IN	CANNELBURG
+IN	CANNELTON
+IN	CARBON
+IN	CAREFREE
+IN	CARLISLE
+IN	CARMEL
+IN	CARTERSBURG
+IN	CARTHAGE
+IN	CASTLETON
+IN	CATES
+IN	CAYUGA
+IN	CEDAR GROVE
+IN	CEDAR LAKE
+IN	CELESTINE
+IN	CENTERPOINT
+IN	CENTERTON
+IN	CENTERVILLE
+IN	CENTRAL
+IN	CHALMERS
+IN	CHANDLER
+IN	CHARLESTOWN
+IN	CHARLOTTESVILLE
+IN	CHARLOTTESVLE
+IN	CHESTERFIELD
+IN	CHESTERTON
+IN	CHILI
+IN	CHRISNEY
+IN	CHRISTMAS LAKE VILLAGE
+IN	CHRISTMAS LK
+IN	CHURUBUSCO
+IN	CICERO
+IN	CLARKSBURG
+IN	CLARKS HILL
+IN	CLARKSVILLE
+IN	CLAY CITY
+IN	CLAYPOOL
+IN	CLAYTON
+IN	CLEAR CREEK
+IN	CLERMONT
+IN	CLIFFORD
+IN	CLINTON
+IN	CLOVERDALE
+IN	CLVR MIL ACAD
+IN	COAL CITY
+IN	COALMONT
+IN	COATESVILLE
+IN	COLBURN
+IN	COLFAX
+IN	COLLEGEVILLE
+IN	COLUMBIA CITY
+IN	COLUMBUS
+IN	COMMISKEY
+IN	CONNERSVILLE
+IN	CONVERSE
+IN	CORTLAND
+IN	CORUNNA
+IN	CORY
+IN	CORYDON
+IN	COVINGTON
+IN	CRAIGVILLE
+IN	CRANDALL
+IN	CRANE
+IN	CRANE NAVAL DEPOT
+IN	CRANE NAV DPT
+IN	CRAWFORDSVILLE
+IN	CRAWFORDSVLLE
+IN	CROMWELL
+IN	CROSS PLAINS
+IN	CROTHERSVILLE
+IN	CROWN POINT
+IN	CULVER
+IN	CUMBERLAND
+IN	CUTLER
+IN	CYNTHIANA
+IN	DALE
+IN	DALEVILLE
+IN	DANA
+IN	DANVILLE
+IN	DARLINGTON
+IN	DAYTON
+IN	DECATUR
+IN	DECKER
+IN	DEEDSVILLE
+IN	DELONG
+IN	DELPHI
+IN	DEMOTTE
+IN	DENHAM
+IN	DENVER
+IN	DEPAUW
+IN	DEPUTY
+IN	DERBY
+IN	DILLSBORO
+IN	DONALDSON
+IN	DUBLIN
+IN	DUBOIS
+IN	DUGGER
+IN	DUNKIRK
+IN	DUNREITH
+IN	DUPONT
+IN	DYER
+IN	EAGLE CREEK
+IN	EARL PARK
+IN	EAST CHICAGO
+IN	EAST ENTERPRISE
+IN	EATON
+IN	ECKERTY
+IN	ECONOMY
+IN	EDINBURGH
+IN	EDWARDSPORT
+IN	E ENTERPRISE
+IN	ELBERFELD
+IN	ELIZABETH
+IN	ELIZABETHTOWN
+IN	ELKHART
+IN	ELLETTSVILLE
+IN	ELNORA
+IN	ELWOOD
+IN	EMINENCE
+IN	EMISON
+IN	ENGLISH
+IN	ETNA GREEN
+IN	EVANSTON
+IN	EVANSVILLE
+IN	FAIRBANKS
+IN	FAIRLAND
+IN	FAIRMOUNT
+IN	FAIR OAKS
+IN	FALMOUTH
+IN	FARMERSBURG
+IN	FARMLAND
+IN	FERDINAND
+IN	FILLMORE
+IN	FINLY
+IN	FISHERS
+IN	FLAT ROCK
+IN	FLORA
+IN	FLORENCE
+IN	FLOYDS KNOBS
+IN	FOLSOMVILLE
+IN	FONTANET
+IN	FORAKER
+IN	FOREST
+IN	FORT BRANCH
+IN	FORT RITNER
+IN	FORTVILLE
+IN	FORT WAYNE
+IN	FOUNTAIN CITY
+IN	FOUNTAINTOWN
+IN	FOWLER
+IN	FOWLERTON
+IN	FRANCESVILLE
+IN	FRANCISCO
+IN	FRANKFORT
+IN	FRANKLIN
+IN	FRANKTON
+IN	FREDERICKSBRG
+IN	FREDERICKSBURG
+IN	FREDONIA
+IN	FREEDOM
+IN	FREELANDVILLE
+IN	FREETOWN
+IN	FREMONT
+IN	FRENCH LICK
+IN	FRIENDSHIP
+IN	FULDA
+IN	FULTON
+IN	GALENA
+IN	GALVESTON
+IN	GARRETT
+IN	GARY
+IN	GAS CITY
+IN	GASTON
+IN	GENEVA
+IN	GENTRYVILLE
+IN	GEORGETOWN
+IN	GLENWOOD
+IN	GOLDSMITH
+IN	GOODLAND
+IN	GOSHEN
+IN	GOSPORT
+IN	GRABILL
+IN	GRAMMER
+IN	GRANDVIEW
+IN	GRANGER
+IN	GRANTSBURG
+IN	GRASS CREEK
+IN	GRAYSVILLE
+IN	GREENCASTLE
+IN	GREENDALE
+IN	GREENFIELD
+IN	GREENSBORO
+IN	GREENSBURG
+IN	GREENS FORK
+IN	GREENTOWN
+IN	GREENVILLE
+IN	GREENWOOD
+IN	GRIFFIN
+IN	GRIFFITH
+IN	GRISSOM AIR RESERVE BASE
+IN	GRISSOM ARB
+IN	GROVERTOWN
+IN	GUILFORD
+IN	GWYNNEVILLE
+IN	HAGERSTOWN
+IN	HAMILTON
+IN	HAMLET
+IN	HAMMOND
+IN	HANNA
+IN	HANOVER
+IN	HARDINSBURG
+IN	HARLAN
+IN	HARMONY
+IN	HARRODSBURG
+IN	HARTFORD CITY
+IN	HARTSVILLE
+IN	HATFIELD
+IN	HAUBSTADT
+IN	HAYDEN
+IN	HAZLETON
+IN	HEBRON
+IN	HELMER
+IN	HELMSBURG
+IN	HELTONVILLE
+IN	HEMLOCK
+IN	HENRYVILLE
+IN	HIGHLAND
+IN	HILLISBURG
+IN	HILLSBORO
+IN	HILLSDALE
+IN	HOAGLAND
+IN	HOBART
+IN	HOBBS
+IN	HOGTOWN
+IN	HOLLAND
+IN	HOLTON
+IN	HOMER
+IN	HOPE
+IN	HOWE
+IN	HUDSON
+IN	HUNTERTOWN
+IN	HUNTINGBURG
+IN	HUNTINGTON
+IN	HURON
+IN	HYMERA
+IN	IDAVILLE
+IN	INDIANAPOLIS
+IN	INGALLS
+IN	INGLEFIELD
+IN	INWOOD
+IN	IRELAND
+IN	JAMESTOWN
+IN	JASONVILLE
+IN	JASPER
+IN	JEFF
+IN	JEFFERSONVILLE
+IN	JEFFERSONVLLE
+IN	JONESBORO
+IN	JONESVILLE
+IN	JUDSON
+IN	KEMPTON
+IN	KENDALLVILLE
+IN	KENNARD
+IN	KENTLAND
+IN	KEWANNA
+IN	KEYSTONE
+IN	KIMMELL
+IN	KINGMAN
+IN	KINGSBURY
+IN	KINGSFORD HEIGHTS
+IN	KINGSFORD HTS
+IN	KIRKLIN
+IN	KNIGHTSTOWN
+IN	KNIGHTSVILLE
+IN	KNOX
+IN	KOKOMO
+IN	KOLEEN
+IN	KOUTS
+IN	KURTZ
+IN	KYANA
+IN	LACONIA
+IN	LA CROSSE
+IN	LADOGA
+IN	LAFAYETTE
+IN	LA FAYETTE
+IN	LA FONTAINE
+IN	LAGRANGE
+IN	LAGRO
+IN	LAKE CICOTT
+IN	LAKE STATION
+IN	LAKETON
+IN	LAKE VILLAGE
+IN	LAKEVILLE
+IN	LAMAR
+IN	LANESVILLE
+IN	LAOTTO
+IN	LAPAZ
+IN	LAPEL
+IN	LA PORTE
+IN	LARWILL
+IN	LAUREL
+IN	LAWRENCE
+IN	LAWRENCEBURG
+IN	LEAVENWORTH
+IN	LEBANON
+IN	LEESBURG
+IN	LEITERS FORD
+IN	LEO
+IN	LEOPOLD
+IN	LEROY
+IN	LEWIS
+IN	LEWISVILLE
+IN	LEXINGTON
+IN	LIBERTY
+IN	LIBERTY CENTER
+IN	LIBERTY CTR
+IN	LIBERTY MILLS
+IN	LIGONIER
+IN	LINCOLN CITY
+IN	LINDEN
+IN	LINN GROVE
+IN	LINTON
+IN	LITTLE YORK
+IN	LIVONIA
+IN	LIZTON
+IN	LOGANSPORT
+IN	LONG BEACH
+IN	LOOGOOTEE
+IN	LOSANTVILLE
+IN	LOWELL
+IN	LUCERNE
+IN	LYNN
+IN	LYNNVILLE
+IN	LYONS
+IN	MACKEY
+IN	MACY
+IN	MADISON
+IN	MAGNET
+IN	MANILLA
+IN	MARENGO
+IN	MARIAH HILL
+IN	MARION
+IN	MARKLE
+IN	MARKLEVILLE
+IN	MARSHALL
+IN	MARSHFIELD
+IN	MARTINSVILLE
+IN	MARYSVILLE
+IN	MATTHEWS
+IN	MAUCKPORT
+IN	MAXWELL
+IN	MAYS
+IN	MC CORDSVILLE
+IN	MECCA
+IN	MEDARYVILLE
+IN	MEDORA
+IN	MELLOTT
+IN	MEMPHIS
+IN	MENTONE
+IN	MEROM
+IN	MERRILLVILLE
+IN	METAMORA
+IN	MEXICO
+IN	MIAMI
+IN	MICHIANA SHORES
+IN	MICHIANA SHRS
+IN	MICHIGAN CITY
+IN	MICHIGANTOWN
+IN	MIDDLEBURY
+IN	MIDDLETOWN
+IN	MIDLAND
+IN	MILAN
+IN	MILFORD
+IN	MILL CREEK
+IN	MILLERSBURG
+IN	MILLHOUSEN
+IN	MILLTOWN
+IN	MILROY
+IN	MILTON
+IN	MISHAWAKA
+IN	MITCHELL
+IN	MODOC
+IN	MONGO
+IN	MONON
+IN	MONROE
+IN	MONROE CITY
+IN	MONROEVILLE
+IN	MONROEVL
+IN	MONROVIA
+IN	MONTEREY
+IN	MONTEZUMA
+IN	MONTGOMERY
+IN	MONTICELLO
+IN	MONTMORENCI
+IN	MONTPELIER
+IN	MOORELAND
+IN	MOORES HILL
+IN	MOORESVILLE
+IN	MORGANTOWN
+IN	MOROCCO
+IN	MORRIS
+IN	MORRISTOWN
+IN	MOUNT AYR
+IN	MOUNT PLEASANT
+IN	MOUNT SAINT FRANCIS
+IN	MOUNT SUMMIT
+IN	MOUNT VERNON
+IN	MT PLEASANT
+IN	MT ST FRANCIS
+IN	MULBERRY
+IN	MUNCIE
+IN	MUNSTER
+IN	NABB
+IN	NAPOLEON
+IN	NAPPANEE
+IN	NASHVILLE
+IN	NAVILLETON
+IN	NEBRASKA
+IN	NEEDHAM
+IN	NEW ALBANY
+IN	NEW AUGUSTA
+IN	NEWBERRY
+IN	NEWBURGH
+IN	NEW CARLISLE
+IN	NEW CASTLE
+IN	NEW CHICAGO
+IN	NEW GOSHEN
+IN	NEW HARMONY
+IN	NEW HAVEN
+IN	NEW LEBANON
+IN	NEW LISBON
+IN	NEW MARKET
+IN	NEW MIDDLETOWN
+IN	NEW MIDDLETWN
+IN	NEW PALESTINE
+IN	NEW PARIS
+IN	NEW POINT
+IN	NEWPORT
+IN	NEW RICHMOND
+IN	NEW ROSS
+IN	NEW SALISBURY
+IN	NEWTOWN
+IN	NEW TRENTON
+IN	NEW WASHINGTN
+IN	NEW WASHINGTON
+IN	NEW WAVERLY
+IN	NEW WHITELAND
+IN	NINEVEH
+IN	N MANCHESTER
+IN	NOBLESVILLE
+IN	NORA
+IN	NORMAN
+IN	NORTH JUDSON
+IN	NORTH LIBERTY
+IN	NORTH MANCHESTER
+IN	NORTH SALEM
+IN	NORTH TERRE HAUTE
+IN	NORTH VERNON
+IN	NORTH WEBSTER
+IN	NOTRE DAME
+IN	N TERRE HAUTE
+IN	OAKFORD
+IN	OAKLAND CITY
+IN	OAKLANDON
+IN	OAKTOWN
+IN	OAKVILLE
+IN	OBER
+IN	ODON
+IN	OLDENBURG
+IN	ONWARD
+IN	OOLITIC
+IN	ORA
+IN	ORESTES
+IN	ORLAND
+IN	ORLEANS
+IN	OSCEOLA
+IN	OSGOOD
+IN	OSSIAN
+IN	OTIS
+IN	OTISCO
+IN	OTTERBEIN
+IN	OTWELL
+IN	OWENSBURG
+IN	OWENSVILLE
+IN	OXFORD
+IN	PALMYRA
+IN	PAOLI
+IN	PARAGON
+IN	PARIS CROSSING
+IN	PARIS XING
+IN	PARKER
+IN	PARKER CITY
+IN	PATOKA
+IN	PATRICKSBURG
+IN	PATRIOT
+IN	PAXTON
+IN	PEKIN
+IN	PENCE
+IN	PENDLETON
+IN	PENNVILLE
+IN	PERRYSVILLE
+IN	PERSHING
+IN	PERU
+IN	PETERSBURG
+IN	PETROLEUM
+IN	PIERCETON
+IN	PIERCEVILLE
+IN	PIMENTO
+IN	PINE VILLAGE
+IN	PITTSBORO
+IN	PLAINFIELD
+IN	PLAINVILLE
+IN	PLEASANT LAKE
+IN	PLEASANT MILLS
+IN	PLEASANT MLS
+IN	PLYMOUTH
+IN	POLAND
+IN	PONETO
+IN	PORTAGE
+IN	PORTER
+IN	PORTLAND
+IN	POSEYVILLE
+IN	PRAIRIE CREEK
+IN	PRAIRIETON
+IN	PREBLE
+IN	PRINCETON
+IN	PUTNAMVILLE
+IN	QUINCY
+IN	RAGSDALE
+IN	RAMSEY
+IN	REDKEY
+IN	REELSVILLE
+IN	REGO
+IN	REMINGTON
+IN	RENSSELAER
+IN	REYNOLDS
+IN	RICHLAND
+IN	RICHMOND
+IN	RIDGEVILLE
+IN	RILEY
+IN	RISING SUN
+IN	ROACHDALE
+IN	ROANN
+IN	ROANOKE
+IN	ROCHESTER
+IN	ROCKFIELD
+IN	ROCKPORT
+IN	ROCKVILLE
+IN	ROLLING PR
+IN	ROLLING PRAIRIE
+IN	ROME
+IN	ROME CITY
+IN	ROMNEY
+IN	ROSEDALE
+IN	ROSELAWN
+IN	ROSEWOOD
+IN	ROSSVILLE
+IN	ROYAL CENTER
+IN	RUSHVILLE
+IN	RUSSELLVILLE
+IN	RUSSIAVILLE
+IN	SAINT ANTHONY
+IN	SAINT BERNICE
+IN	SAINT CROIX
+IN	SAINT JOE
+IN	SAINT JOHN
+IN	SAINT LEON
+IN	SAINT MARY OF THE WOODS
+IN	SAINT MEINRAD
+IN	SAINT PAUL
+IN	SALAMONIA
+IN	SALEM
+IN	SANDBORN
+IN	SANDFORD
+IN	SAN PIERRE
+IN	SANTA CLAUS
+IN	SARATOGA
+IN	SCHERERVILLE
+IN	SCHNEIDER
+IN	SCHNELLVILLE
+IN	SCIPIO
+IN	SCOTLAND
+IN	SCOTTSBURG
+IN	SEDALIA
+IN	SEELYVILLE
+IN	SELLERSBURG
+IN	SELMA
+IN	SERVIA
+IN	SEYMOUR
+IN	SHARPSVILLE
+IN	SHELBURN
+IN	SHELBY
+IN	SHELBYVILLE
+IN	SHEPARDSVILLE
+IN	SHERIDAN
+IN	SHIPSHEWANA
+IN	SHIRLEY
+IN	SHOALS
+IN	SIBERIA
+IN	SIDNEY
+IN	SILVER LAKE
+IN	SIMS
+IN	SMITHVILLE
+IN	SOLSBERRY
+IN	SOMERSET
+IN	SOMERVILLE
+IN	SOUTH BEND
+IN	SOUTH MILFORD
+IN	SOUTHPORT
+IN	SOUTH WHITLEY
+IN	SPEED
+IN	SPEEDWAY
+IN	SPENCER
+IN	SPENCERVILLE
+IN	SPICELAND
+IN	SPRINGPORT
+IN	SPRINGVILLE
+IN	SPURGEON
+IN	STANFORD
+IN	STAR CITY
+IN	STARLIGHT
+IN	STATE LINE
+IN	STAUNTON
+IN	STENDAL
+IN	STILESVILLE
+IN	STINESVILLE
+IN	ST MARY OF WD
+IN	STOCKWELL
+IN	STRAUGHN
+IN	STROH
+IN	SULLIVAN
+IN	SULPHUR
+IN	SULPHUR SPGS
+IN	SULPHUR SPRINGS
+IN	SUMAVA RESORTS
+IN	SUMAVA RSTS
+IN	SUMMITVILLE
+IN	SUNMAN
+IN	SWAYZEE
+IN	SWEETSER
+IN	SWITZ CITY
+IN	SYRACUSE
+IN	TALBOT
+IN	TANGIER
+IN	TASWELL
+IN	TAYLORSVILLE
+IN	TEFFT
+IN	TELL CITY
+IN	TEMPLETON
+IN	TENNYSON
+IN	TERRE HAUTE
+IN	THAYER
+IN	THORNTOWN
+IN	TIME/LIFE
+IN	TIPPECANOE
+IN	TIPTON
+IN	TOBINSPORT
+IN	TOPEKA
+IN	TRAFALGAR
+IN	TRAIL CREEK
+IN	TROY
+IN	TUNNELTON
+IN	TWELVE MILE
+IN	TYNER
+IN	UNDERWOOD
+IN	UNION CITY
+IN	UNIONDALE
+IN	UNION MILLS
+IN	UNIONVILLE
+IN	UNIVERSAL
+IN	UPLAND
+IN	URBANA
+IN	UTICA
+IN	VALEENE
+IN	VALLONIA
+IN	VALPARAISO
+IN	VALPO
+IN	VAN BUREN
+IN	VEEDERSBURG
+IN	VELPEN
+IN	VERNON
+IN	VERSAILLES
+IN	VEVAY
+IN	VINCENNES
+IN	WABASH
+IN	WADESVILLE
+IN	WAKARUSA
+IN	WALDRON
+IN	WALKERTON
+IN	WALLACE
+IN	WALTON
+IN	WANAMAKER
+IN	WANATAH
+IN	WARREN
+IN	WARSAW
+IN	WASHINGTON
+IN	WATERLOO
+IN	WATSON
+IN	WAVELAND
+IN	WAWAKA
+IN	WAYNETOWN
+IN	W BADEN SPRGS
+IN	W COLLEGE COR
+IN	WEBSTER
+IN	WEST BADEN SPRINGS
+IN	WEST COLLEGE CORNER
+IN	WESTFIELD
+IN	WEST HARRISON
+IN	WEST LAFAYETTE
+IN	WEST LEBANON
+IN	WEST MIDDLETON
+IN	WEST NEWTON
+IN	WESTPHALIA
+IN	WESTPOINT
+IN	WESTPORT
+IN	WEST TERRE HAUTE
+IN	WESTVILLE
+IN	WHEATFIELD
+IN	WHEATLAND
+IN	WHEELER
+IN	WHITELAND
+IN	WHITESTOWN
+IN	WHITING
+IN	WILKINSON
+IN	WILLIAMS
+IN	WILLIAMSBURG
+IN	WILLIAMSPORT
+IN	WILLOW BRANCH
+IN	WINAMAC
+IN	WINCHESTER
+IN	WINDFALL
+IN	WINGATE
+IN	WINONA LAKE
+IN	WINSLOW
+IN	W LAFAYETTE
+IN	W MIDDLETON
+IN	WOLCOTT
+IN	WOLCOTTVILLE
+IN	WOLFLAKE
+IN	WOODBRIDGE
+IN	WOODBURN
+IN	WORTHINGTON
+IN	W TERRE HAUTE
+IN	WYATT
+IN	XMAS LK VLG
+IN	YEOMAN
+IN	YODER
+IN	YORKTOWN
+IN	YOUNG AMERICA
+IN	ZANESVILLE
+IN	ZIONSVILLE
+KS	ABBYVILLE
+KS	ABILENE
+KS	ADA
+KS	ADMIRE
+KS	AGENDA
+KS	AGRA
+KS	ALBERT
+KS	ALDEN
+KS	ALEXANDER
+KS	ALLEN
+KS	ALMA
+KS	ALMENA
+KS	ALTAMONT
+KS	ALTA VISTA
+KS	ALTON
+KS	ALTOONA
+KS	AMERICUS
+KS	AMES
+KS	ANDALE
+KS	ANDOVER
+KS	ANTELOPE
+KS	ANTHONY
+KS	ANTONINO
+KS	ARCADIA
+KS	ARGONIA
+KS	ARKANSAS CITY
+KS	ARLINGTON
+KS	ARMA
+KS	ARNOLD
+KS	ASHLAND
+KS	ASSARIA
+KS	ATCHISON
+KS	ATHOL
+KS	ATLANTA
+KS	ATTICA
+KS	ATWOOD
+KS	AUBURN
+KS	AUGUSTA
+KS	AURORA
+KS	AXTELL
+KS	BAILEYVILLE
+KS	BALDWIN CITY
+KS	BARNARD
+KS	BARNES
+KS	BARTLETT
+KS	BASEHOR
+KS	BAVARIA
+KS	BAXTER SPGS
+KS	BAXTER SPRINGS
+KS	BAZINE
+KS	BEATTIE
+KS	BEAUMONT
+KS	BEAVER
+KS	BEELER
+KS	BEL AIRE
+KS	BELLAIRE
+KS	BELLE PLAINE
+KS	BELLEVILLE
+KS	BELMONT
+KS	BELOIT
+KS	BELPRE
+KS	BELVIDERE
+KS	BELVUE
+KS	BENDENA
+KS	BENEDICT
+KS	BENNINGTON
+KS	BENTLEY
+KS	BENTON
+KS	BERN
+KS	BERRYTON
+KS	BEVERLY
+KS	BIRD CITY
+KS	BISON
+KS	BLAINE
+KS	BLOOM
+KS	BLUE MOUND
+KS	BLUE RAPIDS
+KS	BLUFF CITY
+KS	BOGUE
+KS	BONNER SPRINGS
+KS	BONNER SPRNGS
+KS	BREMEN
+KS	BREWSTER
+KS	BRONSON
+KS	BROOKVILLE
+KS	BROWNELL
+KS	BUCKLIN
+KS	BUCYRUS
+KS	BUFFALO
+KS	BUHLER
+KS	BUNKER HILL
+KS	BURDEN
+KS	BURDETT
+KS	BURDICK
+KS	BURLINGAME
+KS	BURLINGTON
+KS	BURNS
+KS	BURR OAK
+KS	BURRTON
+KS	BUSHONG
+KS	BUSHTON
+KS	BYERS
+KS	CALDWELL
+KS	CAMBRIDGE
+KS	CANEY
+KS	CANTON
+KS	CARBONDALE
+KS	CARLTON
+KS	CARLYLE
+KS	CARONA
+KS	CASSODAY
+KS	CATHARINE
+KS	CAWKER CITY
+KS	CEDAR
+KS	CEDAR POINT
+KS	CEDAR VALE
+KS	CENTERVILLE
+KS	CENTRALIA
+KS	CENTROPOLIS
+KS	CHANUTE
+KS	CHAPMAN
+KS	CHASE
+KS	CHAUTAUQUA
+KS	CHENEY
+KS	CHEROKEE
+KS	CHERRYVALE
+KS	CHETOPA
+KS	CIMARRON
+KS	CIRCLEVILLE
+KS	CLAFLIN
+KS	CLAY CENTER
+KS	CLAYTON
+KS	CLEARVIEW CITY
+KS	CLEARVIEW CTY
+KS	CLEARWATER
+KS	CLEMENTS
+KS	CLIFTON
+KS	CLIMAX
+KS	CLYDE
+KS	COATS
+KS	CODELL
+KS	COFFEYVILLE
+KS	COLBY
+KS	COLDWATER
+KS	COLLYER
+KS	COLONY
+KS	COLUMBUS
+KS	COLWICH
+KS	CONCORDIA
+KS	CONWAY
+KS	CONWAY SPGS
+KS	CONWAY SPRINGS
+KS	COOLIDGE
+KS	COPELAND
+KS	CORNING
+KS	COTTONWD FLS
+KS	COTTONWOOD FALLS
+KS	COUNCIL GROVE
+KS	COUNTRYSIDE
+KS	COURTLAND
+KS	COYVILLE
+KS	CRESTLINE
+KS	CUBA
+KS	CULLISON
+KS	CULVER
+KS	CUMMINGS
+KS	CUNNINGHAM
+KS	DAMAR
+KS	DANVILLE
+KS	DEARING
+KS	DEERFIELD
+KS	DELAVAN
+KS	DELIA
+KS	DELPHOS
+KS	DENISON
+KS	DENNIS
+KS	DENSMORE
+KS	DENTON
+KS	DERBY
+KS	DE SOTO
+KS	DEXTER
+KS	DIGHTON
+KS	DODGE CITY
+KS	DORRANCE
+KS	DOUGLASS
+KS	DOVER
+KS	DOWNS
+KS	DRESDEN
+KS	DULUTH
+KS	DUNDEE
+KS	DUNLAP
+KS	DURHAM
+KS	DWIGHT
+KS	EASTBOROUGH
+KS	EASTON
+KS	EDGERTON
+KS	EDMOND
+KS	EDNA
+KS	EDSON
+KS	EDWARDSVILLE
+KS	EFFINGHAM
+KS	ELBING
+KS	EL DORADO
+KS	ELK CITY
+KS	ELK FALLS
+KS	ELKHART
+KS	ELLINWOOD
+KS	ELLIS
+KS	ELLSWORTH
+KS	ELMDALE
+KS	ELSMORE
+KS	ELWOOD
+KS	EMMETT
+KS	EMPORIA
+KS	ENGLEWOOD
+KS	ENSIGN
+KS	ENTERPRISE
+KS	ERIE
+KS	ESBON
+KS	ESKRIDGE
+KS	EUDORA
+KS	EUREKA
+KS	EVEREST
+KS	FAIRVIEW
+KS	FAIRWAY
+KS	FALL RIVER
+KS	FALUN
+KS	FARLINGTON
+KS	FLORENCE
+KS	FONTANA
+KS	FORD
+KS	FORMOSO
+KS	FORT DODGE
+KS	FORT LEAVENWORTH
+KS	FORT RILEY
+KS	FORT SCOTT
+KS	FOSTORIA
+KS	FOWLER
+KS	FRANKFORT
+KS	FRANKLIN
+KS	FREDONIA
+KS	FREEPORT
+KS	FRIEND
+KS	FRONTENAC
+KS	FT LEAVNWRTH
+KS	FT RILEY
+KS	FULTON
+KS	GALATIA
+KS	GALENA
+KS	GALESBURG
+KS	GALVA
+KS	GARDEN CITY
+KS	GARDEN PLAIN
+KS	GARDNER
+KS	GARFIELD
+KS	GARLAND
+KS	GARNETT
+KS	GAS
+KS	GAYLORD
+KS	GEM
+KS	GENESEO
+KS	GEUDA SPRINGS
+KS	GIRARD
+KS	GLADE
+KS	GLASCO
+KS	GLEN ELDER
+KS	GODDARD
+KS	GOESSEL
+KS	GOFF
+KS	GOODLAND
+KS	GORHAM
+KS	GOVE
+KS	GRAINFIELD
+KS	GRANTVILLE
+KS	GREAT BEND
+KS	GREELEY
+KS	GREEN
+KS	GREENLEAF
+KS	GREENSBURG
+KS	GREENWICH
+KS	GRENOLA
+KS	GRIDLEY
+KS	GRINNELL
+KS	GYPSUM
+KS	HADDAM
+KS	HALLOWELL
+KS	HALSTEAD
+KS	HAMILTON
+KS	HANOVER
+KS	HANSTON
+KS	HARDTNER
+KS	HARLAN
+KS	HARPER
+KS	HARTFORD
+KS	HARVEYVILLE
+KS	HAVANA
+KS	HAVEN
+KS	HAVENSVILLE
+KS	HAVILAND
+KS	HAYS
+KS	HAYSVILLE
+KS	HAZELTON
+KS	HEALY
+KS	HEIZER
+KS	HEPLER
+KS	HERINGTON
+KS	HERKIMER
+KS	HERNDON
+KS	HESSTON
+KS	HIATTVILLE
+KS	HIAWATHA
+KS	HIGHLAND
+KS	HILL CITY
+KS	HILLSBORO
+KS	HILLSDALE
+KS	HOISINGTON
+KS	HOLCOMB
+KS	HOLLENBERG
+KS	HOLTON
+KS	HOLYROOD
+KS	HOME
+KS	HOPE
+KS	HORTON
+KS	HOWARD
+KS	HOXIE
+KS	HOYT
+KS	HUDSON
+KS	HUGOTON
+KS	HUMBOLDT
+KS	HUNNEWELL
+KS	HUNTER
+KS	HURON
+KS	HUTCHINSON
+KS	INDEPENDENCE
+KS	INDUSTRY
+KS	INGALLS
+KS	INMAN
+KS	IOLA
+KS	IONIA
+KS	ISABEL
+KS	IUKA
+KS	JAMESTOWN
+KS	JENNINGS
+KS	JETMORE
+KS	JEWELL
+KS	JOHNSON
+KS	JUNCTION CITY
+KS	KALVESTA
+KS	KANOPOLIS
+KS	KANORADO
+KS	KANSAS CITY
+KS	KECHI
+KS	KELLY
+KS	KENDALL
+KS	KENSINGTON
+KS	KINCAID
+KS	KINGMAN
+KS	KINGSDOWN
+KS	KINSLEY
+KS	KIOWA
+KS	KIRWIN
+KS	KISMET
+KS	LA CROSSE
+KS	LACYGNE
+KS	LAFONTAINE
+KS	LA HARPE
+KS	LAKE CITY
+KS	LAKE OF THE FOREST
+KS	LAKE QUIVIRA
+KS	LAKIN
+KS	LAMONT
+KS	LANCASTER
+KS	LANE
+KS	LANGDON
+KS	LANSING
+KS	LARNED
+KS	LATHAM
+KS	LATIMER
+KS	LAWRENCE
+KS	LAWTON
+KS	LEAVENWORTH
+KS	LEAWOOD
+KS	LEBANON
+KS	LEBO
+KS	LECOMPTON
+KS	LEHIGH
+KS	LENEXA
+KS	LENORA
+KS	LEON
+KS	LEONA
+KS	LEONARDVILLE
+KS	LEOTI
+KS	LE ROY
+KS	LEVANT
+KS	LEWIS
+KS	LIBERAL
+KS	LIBERTY
+KS	LIEBENTHAL
+KS	LINCOLN
+KS	LINCOLNVILLE
+KS	LINDSBORG
+KS	LINN
+KS	LINN VALLEY
+KS	LINWOOD
+KS	LITTLE RIVER
+KS	LK OF THE FST
+KS	LOGAN
+KS	LONGFORD
+KS	LONG ISLAND
+KS	LONGTON
+KS	LORRAINE
+KS	LOST SPRINGS
+KS	LOUISBURG
+KS	LOUISVILLE
+KS	LUCAS
+KS	LUDELL
+KS	LURAY
+KS	LYNDON
+KS	LYONS
+KS	MACKSVILLE
+KS	MADISON
+KS	MAHASKA
+KS	MAIZE
+KS	MANCHESTER
+KS	MANHATTAN
+KS	MANKATO
+KS	MANTER
+KS	MAPLE CITY
+KS	MAPLE HILL
+KS	MAPLETON
+KS	MARIENTHAL
+KS	MARION
+KS	MARQUETTE
+KS	MARYSVILLE
+KS	MATFIELD GREEN
+KS	MATFIELD GRN
+KS	MAYETTA
+KS	MAYFIELD
+KS	MCCONNELL AFB
+KS	MC CRACKEN
+KS	MC CUNE
+KS	MC DONALD
+KS	MC FARLAND
+KS	MC LOUTH
+KS	MCPHERSON
+KS	MC PHERSON
+KS	MEADE
+KS	MEDICINE LDG
+KS	MEDICINE LODGE
+KS	MEDORA
+KS	MELVERN
+KS	MENLO
+KS	MENTOR
+KS	MERIDEN
+KS	MERRIAM
+KS	MILAN
+KS	MILFORD
+KS	MILTON
+KS	MILTONVALE
+KS	MINNEAPOLIS
+KS	MINNEOLA
+KS	MISSION
+KS	MISSION HILLS
+KS	MISSION WOODS
+KS	MODOC
+KS	MOLINE
+KS	MONTEZUMA
+KS	MONUMENT
+KS	MORAN
+KS	MORGANVILLE
+KS	MORLAND
+KS	MORRILL
+KS	MORROWVILLE
+KS	MOSCOW
+KS	MOUND CITY
+KS	MOUNDRIDGE
+KS	MOUND VALLEY
+KS	MOUNT HOPE
+KS	MULBERRY
+KS	MULLINVILLE
+KS	MULVANE
+KS	MUNDEN
+KS	MURDOCK
+KS	MUSCOTAH
+KS	NARKA
+KS	NASHVILLE
+KS	NATOMA
+KS	NAVARRE
+KS	NEAL
+KS	NEKOMA
+KS	NEODESHA
+KS	NEOSHO FALLS
+KS	NEOSHO RAPIDS
+KS	NESS CITY
+KS	NETAWAKA
+KS	NEW ALBANY
+KS	NEW ALMELO
+KS	NEW CAMBRIA
+KS	NEW CENTURY
+KS	NEW STRAWN
+KS	NEWTON
+KS	NICKERSON
+KS	NIOTAZE
+KS	NORCATUR
+KS	NORTH NEWTON
+KS	NORTON
+KS	NORTONVILLE
+KS	NORWAY
+KS	NORWICH
+KS	OAKHILL
+KS	OAKLEY
+KS	OBERLIN
+KS	ODIN
+KS	OFFERLE
+KS	OGALLAH
+KS	OGDEN
+KS	OKETO
+KS	OLATHE
+KS	OLMITZ
+KS	OLPE
+KS	OLSBURG
+KS	ONAGA
+KS	ONEIDA
+KS	OPOLIS
+KS	OSAGE CITY
+KS	OSAWATOMIE
+KS	OSBORNE
+KS	OSKALOOSA
+KS	OSWEGO
+KS	OTIS
+KS	OTTAWA
+KS	OVERBROOK
+KS	OVERLAND PARK
+KS	OXFORD
+KS	OZAWKIE
+KS	PALCO
+KS	PALMER
+KS	PAOLA
+KS	PARADISE
+KS	PARK
+KS	PARK CITY
+KS	PARKER
+KS	PARSONS
+KS	PARTRIDGE
+KS	PAWNEE ROCK
+KS	PAXICO
+KS	PEABODY
+KS	PECK
+KS	PENALOSA
+KS	PENOKEE
+KS	PERRY
+KS	PERU
+KS	PETROLIA
+KS	PFEIFER
+KS	PHILLIPSBURG
+KS	PIEDMONT
+KS	PIERCEVILLE
+KS	PIQUA
+KS	PITTSBURG
+KS	PLAINS
+KS	PLAINVILLE
+KS	PLEASANTON
+KS	PLEVNA
+KS	POMONA
+KS	PORTIS
+KS	POTTER
+KS	POTWIN
+KS	POWHATTAN
+KS	PRAIRIE VIEW
+KS	PRAIRIE VILLAGE
+KS	PRAIRIE VLG
+KS	PRATT
+KS	PRESCOTT
+KS	PRESTON
+KS	PRETTY PR
+KS	PRETTY PRAIRE
+KS	PRETTY PRAIRIE
+KS	PRINCETON
+KS	PROTECTION
+KS	QUENEMO
+KS	QUINTER
+KS	RADIUM
+KS	RADLEY
+KS	RAGO
+KS	RAMONA
+KS	RANDALL
+KS	RANDOLPH
+KS	RANSOM
+KS	RANTOUL
+KS	RAYMOND
+KS	READING
+KS	REDFIELD
+KS	REPUBLIC
+KS	RESERVE
+KS	REXFORD
+KS	RICE
+KS	RICHFIELD
+KS	RICHMOND
+KS	RILEY
+KS	RIVERTON
+KS	ROBINSON
+KS	ROCK
+KS	ROELAND PARK
+KS	ROLLA
+KS	ROSALIA
+KS	ROSEDALE
+KS	ROSE HILL
+KS	ROSSVILLE
+KS	ROXBURY
+KS	ROZEL
+KS	RUSH CENTER
+KS	RUSSELL
+KS	RUSSELL SPG
+KS	RUSSELL SPRINGS
+KS	SABETHA
+KS	SAINT FRANCIS
+KS	SAINT GEORGE
+KS	SAINT JOHN
+KS	SAINT MARYS
+KS	SAINT PAUL
+KS	SALINA
+KS	SATANTA
+KS	SAVONBURG
+KS	SAWYER
+KS	SCAMMON
+KS	SCANDIA
+KS	SCHOENCHEN
+KS	SCOTT CITY
+KS	SCOTTSVILLE
+KS	SCRANTON
+KS	SEDAN
+KS	SEDGWICK
+KS	SELDEN
+KS	SENECA
+KS	SEVERANCE
+KS	SEVERY
+KS	SEWARD
+KS	SHARON
+KS	SHARON SPGS
+KS	SHARON SPRINGS
+KS	SHAWNEE
+KS	SHAWNEE MISSION
+KS	SHAWNEE MSN
+KS	SHIELDS
+KS	S HUTCHINSON
+KS	SILVER LAKE
+KS	SIMPSON
+KS	SMITH CENTER
+KS	SMOLAN
+KS	SOLDIER
+KS	SOLOMON
+KS	SOUTH HAVEN
+KS	SOUTH HUTCHINSON
+KS	SPEARVILLE
+KS	SPIVEY
+KS	SPRING HILL
+KS	STAFFORD
+KS	STANLEY
+KS	STARK
+KS	ST BENEDICT
+KS	STERLING
+KS	STILWELL
+KS	STOCKTON
+KS	STRONG CITY
+KS	STUDLEY
+KS	STUTTGART
+KS	SUBLETTE
+KS	SUMMERFIELD
+KS	SUN CITY
+KS	SUSANK
+KS	SYCAMORE
+KS	SYLVAN GROVE
+KS	SYLVIA
+KS	SYRACUSE
+KS	TALMAGE
+KS	TAMPA
+KS	TECUMSEH
+KS	TESCOTT
+KS	THAYER
+KS	TIMKEN
+KS	TIPTON
+KS	TONGANOXIE
+KS	TOPEKA
+KS	TORONTO
+KS	TOWANDA
+KS	TREECE
+KS	TRIBUNE
+KS	TROY
+KS	TURON
+KS	TYRO
+KS	UDALL
+KS	ULYSSES
+KS	UNIONTOWN
+KS	UTICA
+KS	VALLEY CENTER
+KS	VALLEY FALLS
+KS	VASSAR
+KS	VERMILLION
+KS	VICTORIA
+KS	VIOLA
+KS	VIRGIL
+KS	VLIETS
+KS	WAKARUSA
+KS	WAKEENEY
+KS	WA KEENEY
+KS	WAKEFIELD
+KS	WALDO
+KS	WALDRON
+KS	WALKER
+KS	WALLACE
+KS	WALNUT
+KS	WALTON
+KS	WAMEGO
+KS	WASHINGTON
+KS	WATERVILLE
+KS	WATHENA
+KS	WAVERLY
+KS	WEBBER
+KS	WEIR
+KS	WELDA
+KS	WELLINGTON
+KS	WELLS
+KS	WELLSVILLE
+KS	WESKAN
+KS	WESTFALL
+KS	WEST MINERAL
+KS	WESTMORELAND
+KS	WESTPHALIA
+KS	WESTWOOD
+KS	WESTWOOD HILLS
+KS	WESTWOOD HLS
+KS	WETMORE
+KS	WHEATON
+KS	WHEELER
+KS	WHITE CITY
+KS	WHITE CLOUD
+KS	WHITEWATER
+KS	WHITING
+KS	WICHITA
+KS	WILLIAMSBURG
+KS	WILLIS
+KS	WILMORE
+KS	WILSEY
+KS	WILSON
+KS	WINCHESTER
+KS	WINDOM
+KS	WINFIELD
+KS	WINONA
+KS	WOODBINE
+KS	WOODSTON
+KS	WRIGHT
+KS	YATES CENTER
+KS	YODER
+KS	ZENDA
+KS	ZURICH
+KY	AARON
+KY	ABERDEEN
+KY	ACORN
+KY	ADAIRVILLE
+KY	ADAMS
+KY	ADOLPHUS
+KY	AFLEX
+KY	AGES BROOKSDE
+KY	AGES BROOKSIDE
+KY	ALBANY
+KY	ALCALDE
+KY	ALEXANDRIA
+KY	ALLEGRE
+KY	ALLEN
+KY	ALLENSVILLE
+KY	ALLOCK
+KY	ALMO
+KY	ALPHA
+KY	ALTRO
+KY	ALVA
+KY	ALVATON
+KY	AMBURGEY
+KY	ANCHORAGE
+KY	ANCO
+KY	ANNVILLE
+KY	ARGILLITE
+KY	ARGO
+KY	ARJAY
+KY	ARLINGTON
+KY	ARTEMUS
+KY	ARY
+KY	ASHCAMP
+KY	ASHER
+KY	ASHLAND
+KY	ATHOL
+KY	AUBURN
+KY	AUGUSTA
+KY	AUSTIN
+KY	AUXIER
+KY	AVAWAM
+KY	BAGDAD
+KY	BAILEY CREEK
+KY	BAILEY SWITCH
+KY	BAKERTON
+KY	BALKAN
+KY	BALLARDSVILLE
+KY	BANDANA
+KY	BANNER
+KY	BARBOURVILLE
+KY	BARDSTOWN
+KY	BARDWELL
+KY	BARLOW
+KY	BARNETTS CREEK
+KY	BARNETTS CRK
+KY	BARRIER
+KY	BASKETT
+KY	BATTLETOWN
+KY	BAUGHMAN
+KY	BAXTER
+KY	BAYS
+KY	BEAR BRANCH
+KY	BEARVILLE
+KY	BEATTYVILLE
+KY	BEAUMONT
+KY	BEAUTY
+KY	BEAVER
+KY	BEAVER DAM
+KY	BEDFORD
+KY	BEECH CREEK
+KY	BEECH GROVE
+KY	BEECHMONT
+KY	BEE SPRING
+KY	BELCHER
+KY	BELFRY
+KY	BELLEVUE
+KY	BELTON
+KY	BENHAM
+KY	BENTON
+KY	BEREA
+KY	BERRY
+KY	BETHANNA
+KY	BETHANY
+KY	BETHEL
+KY	BETHELRIDGE
+KY	BETHESDA
+KY	BETHLEHEM
+KY	BETSEY
+KY	BETSY LAYNE
+KY	BEVERLY
+KY	BEVINSVILLE
+KY	BIG CLIFTY
+KY	BIG CREEK
+KY	BIGGS
+KY	BIGHILL
+KY	BIG LAUREL
+KY	BIG ROCK
+KY	BIG SPRING
+KY	BIMBLE
+KY	BLACKEY
+KY	BLACKFORD
+KY	BLAINE
+KY	BLAIRS MILL
+KY	BLANCHET
+KY	BLANDVILLE
+KY	BLAZE
+KY	BLEDSOE
+KY	BLOOMFIELD
+KY	BLUE DIAMOND
+KY	BLUEHOLE
+KY	BLUE RIVER
+KY	BOAZ
+KY	BOND
+KY	BONDVILLE
+KY	BONNIEVILLE
+KY	BONNYMAN
+KY	BOONEVILLE
+KY	BOONS CAMP
+KY	BOSTON
+KY	BOW
+KY	BOWEN
+KY	BOWLING GREEN
+KY	BRADFORDSVILLE
+KY	BRADFORDSVLLE
+KY	BRANDENBURG
+KY	BREEDING
+KY	BREMEN
+KY	BRIGHT SHADE
+KY	BRINKLEY
+KY	BROAD BOTTOM
+KY	BRODHEAD
+KY	BROMLEY
+KY	BRONSTON
+KY	BROOKLYN
+KY	BROOKS
+KY	BROOKSVILLE
+KY	BROWDER
+KY	BROWNING
+KY	BROWNS CROSSROADS
+KY	BROWNS FORK
+KY	BROWNSVILLE
+KY	BROWNS XROADS
+KY	BRUIN
+KY	BRYAN
+KY	BRYANTS STORE
+KY	BRYANTSVILLE
+KY	BUCKHORN
+KY	BUCKINGHAM
+KY	BUCKNER
+KY	BUECHEL
+KY	BUFFALO
+KY	BULAN
+KY	BURDINE
+KY	BURGIN
+KY	BURKE
+KY	BURKESVILLE
+KY	BURKHART
+KY	BURLINGTON
+KY	BURNA
+KY	BURNING FORK
+KY	BURNSIDE
+KY	BURNWELL
+KY	BUSH
+KY	BUSKIRK
+KY	BUSY
+KY	BUTLER
+KY	BUTTERFLY
+KY	BYBEE
+KY	BYPRO
+KY	CADIZ
+KY	CAINS STORE
+KY	CALHOUN
+KY	CALIFORNIA
+KY	CALLAWAY
+KY	CALVARY
+KY	CALVERT CITY
+KY	CALVIN
+KY	CAMPBELLSBURG
+KY	CAMPBELLSVILLE
+KY	CAMPBELLSVLLE
+KY	CAMP DIX
+KY	CAMPTON
+KY	CANADA
+KY	CANE VALLEY
+KY	CANEY
+KY	CANEYVILLE
+KY	CANMER
+KY	CANNEL CITY
+KY	CANNON
+KY	CANOE
+KY	CANTON
+KY	CARCASSONNE
+KY	CARLISLE
+KY	CARRIE
+KY	CARROLLTON
+KY	CARRSVILLE
+KY	CARTER
+KY	CARVER
+KY	CARY
+KY	CASEY CREEK
+KY	CATLETTSBURG
+KY	CAVE CITY
+KY	CAWOOD
+KY	CECILIA
+KY	CENTER
+KY	CENTERTOWN
+KY	CENTRAL CITY
+KY	CENTRAL CTY
+KY	CERULEAN
+KY	CHAD
+KY	CHAPLIN
+KY	CHAPPELL
+KY	CHAVIES
+KY	CHENOA
+KY	CHESTNUTBURG
+KY	CHEVROLET
+KY	CINDA
+KY	CISCO
+KY	CLARKSON
+KY	CLAY
+KY	CLAY CITY
+KY	CLAYHOLE
+KY	CLEAR CREEK
+KY	CLEAR CREEK SPRINGS
+KY	CLEAR CRK SPG
+KY	CLEARFIELD
+KY	CLEATON
+KY	CLEMENTSVILLE
+KY	CLERMONT
+KY	CLIFFORD
+KY	CLIFTY
+KY	CLIMAX
+KY	CLINTON
+KY	CLOSPLINT
+KY	CLOVER BOTTOM
+KY	CLOVERPORT
+KY	COALGOOD
+KY	COBHILL
+KY	COLDIRON
+KY	COLD SPRGS HI
+KY	COLD SPRGS-HIGHLAND HTS
+KY	COLD SPRING
+KY	COLLEGE HILL
+KY	COLUMBIA
+KY	COLUMBUS
+KY	COMBS
+KY	CONCORD
+KY	CONFLUENCE
+KY	CONLEY
+KY	CONSTANTINE
+KY	CONWAY
+KY	COOPERSVILLE
+KY	CORBIN
+KY	CORINTH
+KY	CORNETTSVILLE
+KY	CORNISHVILLE
+KY	CORYDON
+KY	COTTLE
+KY	COVINGTON
+KY	COXS CREEK
+KY	CRAB ORCHARD
+KY	CRANE NEST
+KY	CRANKS
+KY	CRAYNE
+KY	CRAYNOR
+KY	CREELSBORO
+KY	CRESCENT PARK
+KY	CRESCENT SPG
+KY	CRESCENT SPGS
+KY	CRESCENT SPRINGS
+KY	CRESTVIEW HILLS
+KY	CRESTVIEW HLS
+KY	CRESTWOOD
+KY	CRITTENDEN
+KY	CROCKETT
+KY	CROFTON
+KY	CROMONA
+KY	CROMWELL
+KY	CROPPER
+KY	CROWN
+KY	CRUMMIES
+KY	CRUTCHFIELD
+KY	CRYSTAL
+KY	CUB RUN
+KY	CULVER
+KY	CUMBERLAND
+KY	CUMBERLAND COLLEGE
+KY	CUMBERLND CLG
+KY	CUNDIFF
+KY	CUNNINGHAM
+KY	CURDSVILLE
+KY	CUSTER
+KY	CUTSHIN
+KY	CUTUNO
+KY	CYNTHIANA
+KY	CYRUS
+KY	DABOLT
+KY	DAISY
+KY	DANA
+KY	DANVILLE
+KY	DAVELLA
+KY	DAVID
+KY	DAVISBURG
+KY	DAVISPORT
+KY	DAWSON SPGS
+KY	DAWSON SPRINGS
+KY	DAYHOIT
+KY	DAYTON
+KY	DEANE
+KY	DEATSVILLE
+KY	DEBORD
+KY	DECOY
+KY	DEFOE
+KY	DELPHIA
+KY	DELTA
+KY	DEMA
+KY	DEMOCRAT
+KY	DEMOSSVILLE
+KY	DE MOSSVILLE
+KY	DENNISTON
+KY	DENTON
+KY	DENVER
+KY	DEWITT
+KY	DEXTER
+KY	DICE
+KY	DINGUS
+KY	DISPUTANTA
+KY	DIXON
+KY	DIZNEY
+KY	DONGOLA
+KY	DORTON
+KY	DORTON BRANCH
+KY	DOVER
+KY	DRAFFIN
+KY	DRAKE
+KY	DRAKESBORO
+KY	DREYFUS
+KY	DRIFT
+KY	DRY CREEK
+KY	DRYHILL
+KY	DRY RIDGE
+KY	DUBRE
+KY	DUCO
+KY	DUNBAR
+KY	DUNDEE
+KY	DUNMOR
+KY	DUNNVILLE
+KY	DWALE
+KY	DWARF
+KY	DYCUSBURG
+KY	EARLINGTON
+KY	EAST BERNSTADT
+KY	EASTERN
+KY	EAST MC DOWELL
+KY	EAST PINEVILLE
+KY	EAST POINT
+KY	EASTVIEW
+KY	EASTWOOD
+KY	EBERLE
+KY	E BERNSTADT
+KY	EDDYVILLE
+KY	EDGEWOOD
+KY	EDMONTON
+KY	EDNA
+KY	EIGHTY EIGHT
+KY	EKRON
+KY	ELAMTON
+KY	ELIAS
+KY	ELIHU
+KY	ELIZABETHTOWN
+KY	ELIZAVILLE
+KY	ELKATAWA
+KY	ELKFORK
+KY	ELK HORN
+KY	ELKHORN CITY
+KY	ELKTON
+KY	ELLIOTTVILLE
+KY	ELMROCK
+KY	ELNA
+KY	ELSIE
+KY	ELSMERE
+KY	ELYS
+KY	E MC DOWELL
+KY	EMERSON
+KY	EMERSON ORCUTTS GROCERY
+KY	EMINENCE
+KY	EMLYN
+KY	EMMA
+KY	EMMALENA
+KY	ENDICOTT
+KY	EOLIA
+KY	E PINEVILLE
+KY	ERILINE
+KY	ERLANGER
+KY	ERMINE
+KY	ESSIE
+KY	ESTILL
+KY	ETOILE
+KY	E TOWN
+KY	ETTY
+KY	EUBANK
+KY	EVARTS
+KY	EVER
+KY	EWING
+KY	EZEL
+KY	FAIRDALE
+KY	FAIRFIELD
+KY	FAIRPLAY
+KY	FAIRVIEW
+KY	FALCON
+KY	FALL ROCK
+KY	FALLSBURG
+KY	FALLS OF ROUGH
+KY	FALLS ROUGH
+KY	FALMOUTH
+KY	FANCY FARM
+KY	FARLER
+KY	FARMERS
+KY	FARMINGTON
+KY	FAUBUSH
+KY	FEDSCREEK
+KY	FERGUSON
+KY	FERN CREEK
+KY	FIELD
+KY	FILLMORE
+KY	FINCHVILLE
+KY	FINLEY
+KY	FIREBRICK
+KY	FISHERVILLE
+KY	FISHTRAP
+KY	FISTY
+KY	FLAHERTY
+KY	FLAT
+KY	FLAT FORK
+KY	FLATGAP
+KY	FLAT LICK
+KY	FLATWOODS
+KY	FLEMING
+KY	FLEMING NEON
+KY	FLEMINGSBURG
+KY	FLORENCE
+KY	FOGERTOWN
+KY	FONDE
+KY	FORAKER
+KY	FORD
+KY	FORDS BRANCH
+KY	FORDSVILLE
+KY	FOREST HILLS
+KY	FORT CAMPBELL
+KY	FORT KNOX
+KY	FORT MITCHELL
+KY	FORT THOMAS
+KY	FOSTER
+KY	FOUNTAIN RUN
+KY	FOURMILE
+KY	FOXTOWN
+KY	FRAKES
+KY	FRANKFORT
+KY	FRANKLIN
+KY	FRANKLINTON
+KY	FRAZER
+KY	FREDONIA
+KY	FREDVILLE
+KY	FREEBURN
+KY	FRENCHBURG
+KY	FREW
+KY	FRISBY
+KY	FRITZ
+KY	FROZEN CREEK
+KY	FT MITCHELL
+KY	FT WRIGHT
+KY	FUGET
+KY	FULTON
+KY	FULTZ
+KY	GALVESTON
+KY	GAMALIEL
+KY	GAPVILLE
+KY	GARFIELD
+KY	GARNER
+KY	GARRARD
+KY	GARRETT
+KY	GARRISON
+KY	GAUSDALE
+KY	GAYS CREEK
+KY	GEORGETOWN
+KY	GERMANTOWN
+KY	GHENT
+KY	GIFFORD
+KY	GILBERTSVILLE
+KY	GILLMORE
+KY	GILLY
+KY	GIRDLER
+KY	GLASGOW
+KY	GLENCOE
+KY	GLENDALE
+KY	GLEN DEAN
+KY	GLENS FORK
+KY	GLENVIEW
+KY	GOLDEN POND
+KY	GOODY
+KY	GOOSE ROCK
+KY	GORDON
+KY	GOSHEN
+KY	GRACE
+KY	GRACEY
+KY	GRADYVILLE
+KY	GRAHAM
+KY	GRAHN
+KY	GRAND RIVERS
+KY	GRASSY CREEK
+KY	GRATZ
+KY	GRAVEL SWITCH
+KY	GRAY
+KY	GRAY HAWK
+KY	GRAYS KNOB
+KY	GRAYSON
+KY	GREEN HALL
+KY	GREEN ROAD
+KY	GREENSBURG
+KY	GREENUP
+KY	GREENVILLE
+KY	GREENWOOD
+KY	GREGORY
+KY	GRETHEL
+KY	GROLIER BOOKS
+KY	GUAGE
+KY	GUERRANT
+KY	GULNARE
+KY	GULSTON
+KY	GUNLOCK
+KY	GUSTON
+KY	GUTHRIE
+KY	GYPSY
+KY	HADDIX
+KY	HADLEY
+KY	HAGER
+KY	HAGERHILL
+KY	HALDEMAN
+KY	HALFWAY
+KY	HALL
+KY	HALLIE
+KY	HALO
+KY	HAMLIN
+KY	HAMPTON
+KY	HANSON
+KY	HAPPY
+KY	HARDBURLY
+KY	HARDIN
+KY	HARDINSBURG
+KY	HARDSHELL
+KY	HARDY
+KY	HARDYVILLE
+KY	HARLAN
+KY	HARNED
+KY	HAROLD
+KY	HARPER
+KY	HARRODSBURG
+KY	HARRODS CREEK
+KY	HARTFORD
+KY	HATFIELD
+KY	HATTON
+KY	HAWESVILLE
+KY	HAZARD
+KY	HAZEL
+KY	HAZEL GREEN
+KY	HEAD OF GRASS
+KY	HEAD OF GRASSY
+KY	HEBRON
+KY	HEIDELBERG
+KY	HEIDRICK
+KY	HELECHAWA
+KY	HELLIER
+KY	HELTON
+KY	HENDERSON
+KY	HENDRICKS
+KY	HENSHAW
+KY	HERD
+KY	HERNDON
+KY	HESTAND
+KY	HICKMAN
+KY	HICKORY
+KY	HIGHGROVE
+KY	HIGHLAND HEIGHTS
+KY	HIGHLAND HGTS
+KY	HIGHWAY
+KY	HI HAT
+KY	HILLSBORO
+KY	HILLVIEW
+KY	HIMA
+KY	HIMYAR
+KY	HINDMAN
+KY	HINKLE
+KY	HIPPO
+KY	HIRAM
+KY	HISEVILLE
+KY	HISLE
+KY	HITCHINS
+KY	HITE
+KY	HODE
+KY	HODGENVILLE
+KY	HOLLAND
+KY	HOLLYBUSH
+KY	HOLMES MILL
+KY	HONAKER
+KY	HONEYBEE
+KY	HOPE
+KY	HOPKINSVILLE
+KY	HORSE BRANCH
+KY	HORSE CAVE
+KY	HOSKINSTON
+KY	HOWARDSTOWN
+KY	HUDDY
+KY	HUDSON
+KY	HUEYSVILLE
+KY	HUFF
+KY	HULEN
+KY	HUNTER
+KY	HUNTSVILLE
+KY	HUSTONVILLE
+KY	HYDEN
+KY	INDEPENDENCE
+KY	INDEX
+KY	INEZ
+KY	INGLE
+KY	INGRAM
+KY	INSKO
+KY	IRVINE
+KY	IRVINGTON
+KY	ISLAND
+KY	ISLAND CITY
+KY	ISOM
+KY	ISONVILLE
+KY	IUKA
+KY	IVEL
+KY	IVY GROVE
+KY	IVYTON
+KY	JABEZ
+KY	JACKHORN
+KY	JACKSON
+KY	JAMBOREE
+KY	JAMESTOWN
+KY	JARVIS
+KY	JEFF
+KY	JEFFERSONTOWN
+KY	JEFFERSONVILLE
+KY	JEFFERSONVLLE
+KY	JENKINS
+KY	JENSON
+KY	JEREMIAH
+KY	JETSON
+KY	JINKS
+KY	JOB
+KY	JOHNETTA
+KY	JOHNS RUN
+KY	JONANCY
+KY	JONESVILLE
+KY	JONICAN
+KY	JUNCTION CITY
+KY	KALIOPI
+KY	KAYJAY
+KY	KEATON
+KY	KEAVY
+KY	KEENE
+KY	KEITH
+KY	KENTON
+KY	KENVIR
+KY	KERBY KNOB
+KY	KETTLE
+KY	KETTLE ISLAND
+KY	KEVIL
+KY	KIMPER
+KY	KINGS MOUNTAIN
+KY	KINGS MTN
+KY	KIRKSEY
+KY	KITE
+KY	KNIFLEY
+KY	KNOB LICK
+KY	KNOTTSVILLE
+KY	KONA
+KY	KRYPTON
+KY	KUTTAWA
+KY	KYROCK
+KY	LA CENTER
+KY	LACKEY
+KY	LA FAYETTE
+KY	LAGRANGE
+KY	LA GRANGE
+KY	LAKESIDE PARK
+KY	LAMB
+KY	LAMBRIC
+KY	LANCASTER
+KY	LANGLEY
+KY	LARKSLANE
+KY	LATONIA
+KY	LATONIA LAKES
+KY	LAURA
+KY	LAUREL FORK
+KY	LAWRENCEBURG
+KY	LAWTON
+KY	LEANDER
+KY	LEATHERWOOD
+KY	LEBANON
+KY	LEBANON JCTN
+KY	LEBANON JUNCTION
+KY	LEBURN
+KY	LEDBETTER
+KY	LEE CITY
+KY	LEECO
+KY	LEITCHFIELD
+KY	LEJUNIOR
+KY	LENORE
+KY	LENOX
+KY	LETCHER
+KY	LEWISBURG
+KY	LEWISPORT
+KY	LEXINGTON
+KY	LIBERTY
+KY	LICKBURG
+KY	LICK CREEK
+KY	LIGON
+KY	LILY
+KY	LINDSEYVILLE
+KY	LINEFORK
+KY	LITTCARR
+KY	LITTLE
+KY	LITTLE SANDY
+KY	LIVERMORE
+KY	LIVINGSTON
+KY	LLOYD
+KY	LOAD
+KY	LOCKPORT
+KY	LOCUST
+KY	LOCUST HILL
+KY	LODIBURG
+KY	LOGANSPORT
+KY	LOG MOUNTAIN
+KY	LOGVILLE
+KY	LOLA
+KY	LONDON
+KY	LONE
+KY	LOOKOUT
+KY	LORETTO
+KY	LOST CREEK
+KY	LOUELLEN
+KY	LOUISA
+KY	LOUISVILLE
+KY	LOVELACEVILLE
+KY	LOVELY
+KY	LOWES
+KY	LOWMANSVILLE
+KY	LOYALL
+KY	LUCAS
+KY	LUDLOW
+KY	LYNCH
+KY	LYNDON
+KY	LYNNVILLE
+KY	LYTTEN
+KY	MACEO
+KY	MACKVILLE
+KY	MADISONVILLE
+KY	MAGGARD
+KY	MAGNOLIA
+KY	MAJESTIC
+KY	MALLIE
+KY	MALONE
+KY	MAMMOTH CAVE
+KY	MAMMOTH CAVE NATIONAL PARK
+KY	MANCHESTER
+KY	MANILA
+KY	MANITOU
+KY	MANNSVILLE
+KY	MAPLE MOUNT
+KY	MARCUM
+KY	MARIBA
+KY	MARION
+KY	MARROWBONE
+KY	MARSHALLVILLE
+KY	MARSHES SDNG
+KY	MARSHES SIDING
+KY	MARTHA
+KY	MARTIN
+KY	MARY
+KY	MARY ALICE
+KY	MARYDELL
+KY	MASHFORK
+KY	MASON
+KY	MASONIC HOME
+KY	MATTHEW
+KY	MAUD
+KY	MAULDEN
+KY	MAYFIELD
+KY	MAYKING
+KY	MAYSLICK
+KY	MAYSVILLE
+KY	MAYTOWN
+KY	MAZIE
+KY	MC ANDREWS
+KY	MC CARR
+KY	MCCOMBS
+KY	MC DANIELS
+KY	MC DOWELL
+KY	MC HENRY
+KY	MC KEE
+KY	MC KINNEY
+KY	MC QUADY
+KY	MC ROBERTS
+KY	MCVEIGH
+KY	MEADOW CREEK
+KY	MEALLY
+KY	MEANS
+KY	MEETING CREEK
+KY	MELBER
+KY	MELBOURNE
+KY	MELVIN
+KY	MENTOR
+KY	META
+KY	MIDDLEBURG
+KY	MIDDLESBORO
+KY	MIDDLETOWN
+KY	MIDWAY
+KY	MILBURN
+KY	MILFORD
+KY	MILLERSBURG
+KY	MILLERSTOWN
+KY	MILLS
+KY	MILL SPRINGS
+KY	MILLSTONE
+KY	MILLTOWN
+KY	MILLWOOD
+KY	MILO
+KY	MILTON
+KY	MIMA
+KY	MINERVA
+KY	MINNIE
+KY	MIRACLE
+KY	MISTLETOE
+KY	MITCHELLSBURG
+KY	MIZE
+KY	MOLUS
+KY	MONTICELLO
+KY	MONTPELIER
+KY	MOOLEYVILLE
+KY	MOON
+KY	MOOREFIELD
+KY	MOORES CREEK
+KY	MOREHEAD
+KY	MORGANFIELD
+KY	MORGANTOWN
+KY	MORNING VIEW
+KY	MORRILL
+KY	MORRIS FORK
+KY	MORTONS GAP
+KY	MOUNT EDEN
+KY	MOUNT HERMON
+KY	MOUNT OLIVET
+KY	MOUNT PISGAH
+KY	MOUNT SHERMAN
+KY	MOUNT STERLING
+KY	MOUNT VERNON
+KY	MOUNT WASHINGTON
+KY	MOUSIE
+KY	MOUTHCARD
+KY	MOZELLE
+KY	MT STERLING
+KY	MT WASHINGTON
+KY	MULDRAUGH
+KY	MUNFORDVILLE
+KY	MURRAY
+KY	MUSES MILLS
+KY	MYRA
+KY	NANCY
+KY	NAOMI
+KY	NAPFOR
+KY	NAPOLEON
+KY	NARROWS
+KY	NAZARETH
+KY	NEAFUS
+KY	NEBO
+KY	NED
+KY	NELSE
+KY	NEON
+KY	NERINX
+KY	NEVISDALE
+KY	NEW CASTLE
+KY	NEW CONCORD
+KY	NEWFOUNDLAND
+KY	NEW HAVEN
+KY	NEW HOPE
+KY	NEW LIBERTY
+KY	NEWPORT
+KY	NEW ZION
+KY	NICHOLASVILLE
+KY	NIPPA
+KY	N MIDDLETOWN
+KY	NOCTOR
+KY	NORTH MIDDLETOWN
+KY	NORTONVILLE
+KY	NUMBER ONE
+KY	OAK GROVE
+KY	OAKLAND
+KY	OAKVILLE
+KY	OFFUTT
+KY	OGLE
+KY	OIL SPRINGS
+KY	OIL VALLEY
+KY	OKOLONA
+KY	OLATON
+KY	OLD LANDING
+KY	OLDTOWN
+KY	OLIVE HILL
+KY	OLLIE
+KY	OLMSTEAD
+KY	OLYMPIA
+KY	ONEIDA
+KY	OPHIR
+KY	ORCUTTS GROCY
+KY	ORKNEY
+KY	ORLANDO
+KY	OSCALOOSA
+KY	OVEN FORK
+KY	OWEN
+KY	OWENSBORO
+KY	OWENTON
+KY	OWINGSVILLE
+KY	PADUCAH
+KY	PAINT LICK
+KY	PAINTSVILLE
+KY	PARIS
+KY	PARK
+KY	PARK CITY
+KY	PARKERS LAKE
+KY	PARK HILLS
+KY	PARKSVILLE
+KY	PARNELL
+KY	PARROT
+KY	PARTRIDGE
+KY	PATHFORK
+KY	PATSEY
+KY	PAW PAW
+KY	PAYNE GAP
+KY	PAYNEVILLE
+KY	PEABODY
+KY	PEBWORTH
+KY	PELLVILLE
+KY	PEMBROKE
+KY	PENDLETN CNTY
+KY	PENDLETON
+KY	PENDLETON COUNTY
+KY	PENROD
+KY	PEONIA
+KY	PEOPLES
+KY	PERRY PARK
+KY	PERRYVILLE
+KY	PETERSBURG
+KY	PEWEE VALLEY
+KY	PEYTONSBURG
+KY	PHELPS
+KY	PHILPOT
+KY	PHYLLIS
+KY	PIKEVILLE
+KY	PILGRIM
+KY	PINE KNOT
+KY	PINE MOUNTAIN
+KY	PINE RIDGE
+KY	PINE TOP
+KY	PINEVILLE
+KY	PINSONFORK
+KY	PIPPA PASSES
+KY	PISO
+KY	PITTSBURG
+KY	PLANK
+KY	PLEASURE RDGE
+KY	PLEASURE RIDGE PARK
+KY	PLEASUREVILLE
+KY	PLUMMERS LANDING
+KY	PLUMMERS LNDG
+KY	PLUM SPRINGS
+KY	POINTER
+KY	POMEROYTON
+KY	POOLE
+KY	POPLARVILLE
+KY	PORT ROYAL
+KY	POWDERLY
+KY	POWERSBURG
+KY	PREMIUM
+KY	PRESTON
+KY	PRESTONSBURG
+KY	PRICE
+KY	PRIMROSE
+KY	PRINCETON
+KY	PRINTER
+KY	PROSPECT
+KY	PROVIDENCE
+KY	PROVO
+KY	PRYSE
+KY	PUBLIC
+KY	PUEBLO
+KY	PULASKI
+KY	PUTNEY
+KY	QUALITY
+KY	QUICKSAND
+KY	QUINCY
+KY	RABBIT HASH
+KY	RACCOON
+KY	RACELAND
+KY	RADCLIFF
+KY	RANSOM
+KY	RAVEN
+KY	RAVENNA
+KY	RAYMOND
+KY	RAYWICK
+KY	RED BIRD
+KY	REDBUD
+KY	REDBUSH
+KY	REDFOX
+KY	REED
+KY	REGINA
+KY	RELIEF
+KY	RENFRO VALLEY
+KY	REVELO
+KY	REYNOLDS STA
+KY	REYNOLDS STATION
+KY	RHODELIA
+KY	RICETOWN
+KY	RICHARDSON
+KY	RICHARDSVILLE
+KY	RICHMOND
+KY	RINEYVILLE
+KY	RISNER
+KY	RITNER
+KY	RIVER
+KY	ROARK
+KY	ROBARDS
+KY	ROBINSON CREEK
+KY	ROBINSON CRK
+KY	ROCHESTER
+KY	ROCK CREEK
+KY	ROCKFIELD
+KY	ROCKHOLDS
+KY	ROCKHOUSE
+KY	ROCKPORT
+KY	ROCKYBRANCH
+KY	ROCKY HILL
+KY	ROGERS
+KY	ROSINE
+KY	ROSSLYN
+KY	ROUNDHILL
+KY	ROUSE
+KY	ROUSSEAU
+KY	ROWDY
+KY	ROWENA
+KY	ROWLETTS
+KY	ROXANA
+KY	ROYALTON
+KY	RR DONNELLY
+KY	RUMSEY
+KY	RUSH
+KY	RUSSELL
+KY	RUSSELL SPGS
+KY	RUSSELL SPRINGS
+KY	RUSSELLVILLE
+KY	RUTH
+KY	RYLAND HEIGHTS
+KY	RYLAND HGHT
+KY	RYLAND HGTS
+KY	SACRAMENTO
+KY	SADIEVILLE
+KY	SAINT CATHARINE
+KY	SAINT CHARLES
+KY	SAINT FRANCIS
+KY	SAINT HELENS
+KY	SAINT JOSEPH
+KY	SAINT MARY
+KY	SAINT MATTHEWS
+KY	SAINT PAUL
+KY	SALDEE
+KY	SALEM
+KY	SALT GUM
+KY	SALT LICK
+KY	SALVISA
+KY	SALYERSVILLE
+KY	SAMPLE
+KY	SAMUELS
+KY	SANDERS
+KY	SANDGAP
+KY	SANDY HOOK
+KY	SARDIS
+KY	SASSAFRAS
+KY	SASSER
+KY	SAUL
+KY	SAWYER
+KY	SCALF
+KY	S CARROLLTON
+KY	SCIENCE HILL
+KY	SCOTTSVILLE
+KY	SCRANTON
+KY	SCUDDY
+KY	SEBASTIANS BR
+KY	SEBASTIANS BRANCH
+KY	SEBREE
+KY	SECO
+KY	SEDALIA
+KY	SEITZ
+KY	SEMINARY
+KY	SENTERVILLE
+KY	SE REE
+KY	SEVENTY SIX
+KY	SEWELLTON
+KY	SEXTONS CREEK
+KY	S FT MITCHELL
+KY	SHARON GROVE
+KY	SHARPSBURG
+KY	SHELBIANA
+KY	SHELBY GAP
+KY	SHELBYVILLE
+KY	SHEPHERDSVILLE
+KY	SHEPHERDSVLLE
+KY	SHIVELY
+KY	SIDNEY
+KY	SILER
+KY	SILVER GROVE
+KY	SILVERHILL
+KY	SIMPSONVILLE
+KY	SITKA
+KY	SIZEROCK
+KY	SKYLINE
+KY	SLADE
+KY	SLAT
+KY	SLAUGHTERS
+KY	SLEMP
+KY	SLOANS VALLEY
+KY	SMILAX
+KY	SMITH
+KY	SMITHFIELD
+KY	SMITHLAND
+KY	SMITH MILLS
+KY	SMITHS CREEK
+KY	SMITHS GROVE
+KY	SNOW
+KY	SOFT SHELL
+KY	SOLDIER
+KY	SOMERSET
+KY	SONORA
+KY	SOUTH CARROLLTON
+KY	SOUTH FORT MITCHELL
+KY	SOUTHGATE
+KY	SOUTH PORTSMOUTH
+KY	SOUTH SHORE
+KY	SOUTH UNION
+KY	SOUTH WILLIAMSON
+KY	SPARTA
+KY	SPEIGHT
+KY	SPENCE
+KY	S PORTSMOUTH
+KY	SPOTTSVILLE
+KY	SPRINGFIELD
+KY	SPRING LICK
+KY	STAB
+KY	STACY FORK
+KY	STAFFORDSVILLE
+KY	STAFFORDSVLLE
+KY	STAMBAUGH
+KY	STAMPING GRD
+KY	STAMPING GROUND
+KY	STANFORD
+KY	STANLEY
+KY	STANTON
+KY	STANVILLE
+KY	STARK
+KY	STATIC
+KY	ST CATHARINE
+KY	STEARNS
+KY	STEELE
+KY	STELLA
+KY	STEPHENS
+KY	STEPHENSBURG
+KY	STEPHENSPORT
+KY	STEUBENVILLE
+KY	STINNETT
+KY	ST JOSEPH
+KY	ST MARY
+KY	ST MATTHEWS
+KY	STONE
+KY	STONEY FORK
+KY	STOP
+KY	STOPOVER
+KY	STRUNK
+KY	STURGIS
+KY	SUBLETT
+KY	SUBTLE
+KY	SUDITH
+KY	SULLIVAN
+KY	SULPHUR
+KY	SULPHUR WELL
+KY	SUMMER SHADE
+KY	SUMMERSVILLE
+KY	SUMMIT
+KY	SUMMITT
+KY	SUNFISH
+KY	SUNNYBROOK
+KY	SUSIE
+KY	SWAMP BRANCH
+KY	SWAMPTON
+KY	SWANPOND
+KY	SWEEDEN
+KY	S WILLIAMSON
+KY	SYMBOL
+KY	SYMSONIA
+KY	TALBERT
+KY	TALCUM
+KY	TALLEGA
+KY	TANKSLEY
+KY	TATEVILLE
+KY	TAYLOR MILL
+KY	TAYLORSVILLE
+KY	TEABERRY
+KY	TEDDERS
+KY	THEALKA
+KY	THELMA
+KY	THORNTON
+KY	THOUSANDSTICKS
+KY	THREEFORKS
+KY	THREE POINT
+KY	THSANDSTICKS
+KY	TILINE
+KY	TINA
+KY	TINSLEY
+KY	TINY TOWN
+KY	TOLER
+KY	TOLLESBORO
+KY	TOLU
+KY	TOMAHAWK
+KY	TOMPKINSVILLE
+KY	TOPMOST
+KY	TOTZ
+KY	TOURISTVILLE
+KY	TRAM
+KY	TRAPPIST
+KY	TRENTON
+KY	TRIBBEY
+KY	TRIMBLE
+KY	TRINITY
+KY	TROSPER
+KY	TURKEY
+KY	TURKEY CREEK
+KY	TURNERS STA
+KY	TURNERS STATION
+KY	TUTOR KEY
+KY	TUTTLE
+KY	T VILLE
+KY	TYNER
+KY	TYPO
+KY	ULVAH
+KY	ULYSSES
+KY	UNION
+KY	UNION STAR
+KY	UNIONTOWN
+KY	UPPER TYGART
+KY	UPTON
+KY	URBAN
+KY	UTICA
+KY	VADA
+KY	VALERIA
+KY	VALLEY STATION
+KY	VALLEY STATN
+KY	VAN
+KY	VANCEBURG
+KY	VANCLEVE
+KY	VAN LEAR
+KY	VANZANT
+KY	VARNEY
+KY	VERONA
+KY	VERSAILLES
+KY	VERTREES
+KY	VEST
+KY	VICCO
+KY	VICTORY
+KY	VILLA HILLS
+KY	VINCENT
+KY	VINE GROVE
+KY	VIPER
+KY	VIRGIE
+KY	VOLGA
+KY	WACO
+KY	WADDY
+KY	WALDO
+KY	WALKER
+KY	WALKERTOWN
+KY	WALLINGFORD
+KY	WALLINS CREEK
+KY	WALLSEND
+KY	WALNUT GROVE
+KY	WALTON
+KY	WANETA
+KY	WARBRANCH
+KY	WARFIELD
+KY	WARSAW
+KY	WASHINGTON
+KY	WATER VALLEY
+KY	WATERVIEW
+KY	WAVERLY
+KY	WAX
+KY	WAYLAND
+KY	WAYNESBURG
+KY	WEBBS CROSS ROADS
+KY	WEBBS CRS RDS
+KY	WEBBVILLE
+KY	WEBSTER
+KY	WEEKSBURY
+KY	WELCHS CREEK
+KY	WELLINGTON
+KY	WENDOVER
+KY	WESTBEND
+KY	WEST IRVINE
+KY	WEST LIBERTY
+KY	WEST LOUISVILLE
+KY	WEST PADUCAH
+KY	WEST POINT
+KY	WESTPORT
+KY	WEST SOMERSET
+KY	WEST VAN LEAR
+KY	WESTVIEW
+KY	WESTWOOD
+KY	WHEATCROFT
+KY	WHEATLEY
+KY	WHEELWRIGHT
+KY	WHICK
+KY	WHITE CITY
+KY	WHITEHOUSE
+KY	WHITE MILLS
+KY	WHITE OAK
+KY	WHITE PLAINS
+KY	WHITESBURG
+KY	WHITESVILLE
+KY	WHITLEY CITY
+KY	WICKLIFFE
+KY	WIDECREEK
+KY	WILDCAT
+KY	WILDER
+KY	WILDIE
+KY	WILLARD
+KY	WILLIAMSBURG
+KY	WILLIAMSPORT
+KY	WILLIAMSTOWN
+KY	WILLISBURG
+KY	WILLOW SHADE
+KY	WILMORE
+KY	WILSONVILLE
+KY	WINCHESTER
+KY	WIND CAVE
+KY	WINDSOR
+KY	WINDY
+KY	WINGO
+KY	WINSTON
+KY	WITTENSVILLE
+KY	W LOUISVILLE
+KY	WOLF
+KY	WOLF COAL
+KY	WOLVERINE
+KY	WONNIE
+KY	WOODBINE
+KY	WOODBURN
+KY	WOODBURY
+KY	WOODMAN
+KY	WOODS
+KY	WOOLLUM
+KY	WOOTON
+KY	WORTHINGTON
+KY	WORTHVILLE
+KY	WRIGLEY
+KY	WURTLAND
+KY	YEADDISS
+KY	YELLOW ROCK
+KY	YERKES
+KY	YOCUM
+KY	YOCUM CREEK
+KY	YOSEMITE
+KY	ZACHARIAH
+KY	ZOE
+LA	ABBEVILLE
+LA	ABITA SPRINGS
+LA	ACME
+LA	ADDIS
+LA	AIMWELL
+LA	AKERS
+LA	ALBANY
+LA	ALEXANDRIA
+LA	ALTO
+LA	AMA
+LA	AMELIA
+LA	AMITE
+LA	ANACOCO
+LA	ANGIE
+LA	ANGOLA
+LA	ARABI
+LA	ARCADIA
+LA	ARCHIBALD
+LA	ARNAUDVILLE
+LA	ASHLAND
+LA	ATHENS
+LA	ATLANTA
+LA	AVERY ISLAND
+LA	AVONDALE
+LA	BAINS
+LA	BAKER
+LA	BALDWIN
+LA	BALL
+LA	BARATARIA
+LA	BARKSDALE AFB
+LA	BASILE
+LA	BASKIN
+LA	BASTROP
+LA	BATCHELOR
+LA	BATON ROUGE
+LA	BAYOU GOULA
+LA	BELCHER
+LA	BELL CITY
+LA	BELLE CHASSE
+LA	BELLE ROSE
+LA	BELMONT
+LA	BENTLEY
+LA	BENTON
+LA	BERNICE
+LA	BERWICK
+LA	BETHANY
+LA	BIENVILLE
+LA	BLANCHARD
+LA	BLANKS
+LA	BOGALUSA
+LA	BONITA
+LA	BOOTHVILLE
+LA	BORDELONVILLE
+LA	BOSSIER CITY
+LA	BOURG
+LA	BOUTTE
+LA	BOYCE
+LA	BRAITHWAITE
+LA	BRANCH
+LA	BREAUX BRIDGE
+LA	BRIDGE CITY
+LA	BRITTANY
+LA	BROUSSARD
+LA	BRUSLY
+LA	BRYCELAND
+LA	BUCKEYE
+LA	BUECHE
+LA	BUNKIE
+LA	BURAS
+LA	BURNSIDE
+LA	BUSH
+LA	BUTTE LAROSE
+LA	CADE
+LA	CALHOUN
+LA	CALVIN
+LA	CAMERON
+LA	CAMP BEAUREGARD
+LA	CAMPTI
+LA	CANKTON
+LA	CARENCRO
+LA	CARLISLE
+LA	CARVILLE
+LA	CASPIANA
+LA	CASTOR
+LA	CECILIA
+LA	CENTER POINT
+LA	CENTERVILLE
+LA	CENTRAL
+LA	CHALMETTE
+LA	CHARENTON
+LA	CHASE
+LA	CHATAIGNIER
+LA	CHATHAM
+LA	CHAUVIN
+LA	CHENEYVILLE
+LA	CHESTNUT
+LA	CHOPIN
+LA	CHOUDRANT
+LA	CHURCH POINT
+LA	CLARENCE
+LA	CLARKS
+LA	CLAYTON
+LA	CLIFTON
+LA	CLINTON
+LA	CLOUTIERVILLE
+LA	COLFAX
+LA	COLLINSTON
+LA	COLUMBIA
+LA	CONVENT
+LA	CONVERSE
+LA	COTTONPORT
+LA	COTTON VALLEY
+LA	COUSHATTA
+LA	COVINGTON
+LA	COW ISLAND
+LA	CP BEAUREGARD
+LA	CREOLE
+LA	CRESTON
+LA	CROWLEY
+LA	CROWVILLE
+LA	CULLEN
+LA	CUT OFF
+LA	CYPREMORT POINT
+LA	CYPREMORT PT
+LA	CYPRESS
+LA	DARROW
+LA	DAVANT
+LA	DELCAMBRE
+LA	DELHI
+LA	DELTA
+LA	DENHAM SPGS
+LA	DENHAM SPRINGS
+LA	DENNIS MILLS
+LA	DEQUINCY
+LA	DERIDDER
+LA	DERRY
+LA	DES ALLEMANDS
+LA	DESTREHAN
+LA	DEVILLE
+LA	DIXIE
+LA	DODSON
+LA	DONALDSONVILLE
+LA	DONALDSONVLLE
+LA	DONNER
+LA	DOWNSVILLE
+LA	DOYLINE
+LA	DRY CREEK
+LA	DRY PRONG
+LA	DUBACH
+LA	DUBBERLY
+LA	DULAC
+LA	DUPLESSIS
+LA	DUPONT
+LA	DUSON
+LA	EAST POINT
+LA	ECHO
+LA	EDGARD
+LA	EFFIE
+LA	EGAN
+LA	ELIZABETH
+LA	ELMER
+LA	ELM GROVE
+LA	ELMWOOD
+LA	ELTON
+LA	EMPIRE
+LA	ENTERPRISE
+LA	EOLA
+LA	EPPS
+LA	ERATH
+LA	EROS
+LA	ERWINVILLE
+LA	ESTHERWOOD
+LA	ETHEL
+LA	EUNICE
+LA	EVANGELINE
+LA	EVANS
+LA	EVERGREEN
+LA	EXTENSION
+LA	FAIRBANKS
+LA	FARMERVILLE
+LA	FENTON
+LA	FERRIDAY
+LA	FIELDS
+LA	FISHER
+LA	FLATWOODS
+LA	FLORA
+LA	FLORIEN
+LA	FLUKER
+LA	FOLSOM
+LA	FORBING
+LA	FORDOCHE
+LA	FOREST
+LA	FOREST HILL
+LA	FORT NECESSITY
+LA	FORT POLK
+LA	FRANKLIN
+LA	FRANKLINTON
+LA	FRENCH SETTLEMENT
+LA	FRIERSON
+LA	FROGMORE
+LA	FR SETTLEMENT
+LA	FT NECESSITY
+LA	FULLERTON
+LA	GALLIANO
+LA	GALVEZ
+LA	GARDEN CITY
+LA	GARDNER
+LA	GARYVILLE
+LA	GEISMAR
+LA	GEORGETOWN
+LA	GHEENS
+LA	GIBSLAND
+LA	GIBSON
+LA	GILBERT
+LA	GILLIAM
+LA	GIRARD
+LA	GLENMORA
+LA	GLOSTER
+LA	GLYNN
+LA	GOLDEN MEADOW
+LA	GOLDONNA
+LA	GONZALES
+LA	GORUM
+LA	GOUDEAU
+LA	GRAMBLING
+LA	GRAMERCY
+LA	GRAND CANE
+LA	GRAND CHENIER
+LA	GRAND COTEAU
+LA	GRAND ISLE
+LA	GRANT
+LA	GRAY
+LA	GRAYSON
+LA	GREENSBURG
+LA	GREENWELL SPRINGS
+LA	GREENWEL SPGS
+LA	GREENWOOD
+LA	GRETNA
+LA	GROSSE TETE
+LA	GUEYDAN
+LA	HACKBERRY
+LA	HAHNVILLE
+LA	HALL SUMMIT
+LA	HAMBURG
+LA	HAMMOND
+LA	HANNA
+LA	HARAHAN
+LA	HARDWOOD
+LA	HARMON
+LA	HARRISONBURG
+LA	HARVEY
+LA	HAUGHTON
+LA	HAYES
+LA	HAYNESVILLE
+LA	HEFLIN
+LA	HENDERSON
+LA	HESSMER
+LA	HESTER
+LA	HICKS
+LA	HILLSDALE
+LA	HINESTON
+LA	HODGE
+LA	HOLDEN
+LA	HOLLY RIDGE
+LA	HOMER
+LA	HORNBECK
+LA	HOSSTON
+LA	HOUMA
+LA	HUSSER
+LA	IBERVILLE
+LA	IDA
+LA	INDEPENDENCE
+LA	INNIS
+LA	IOTA
+LA	IOWA
+LA	JACKSON
+LA	JAMESTOWN
+LA	JARREAU
+LA	JEANERETTE
+LA	JEFFERSON
+LA	JENA
+LA	JENNINGS
+LA	JIGGER
+LA	JONES
+LA	JONESBORO
+LA	JONESVILLE
+LA	JOYCE
+LA	KAPLAN
+LA	KEATCHIE
+LA	KEITHVILLE
+LA	KELLY
+LA	KENNER
+LA	KENTWOOD
+LA	KILBOURNE
+LA	KILLONA
+LA	KINDER
+LA	KOLIN
+LA	KRAEMER
+LA	KROTZ SPRINGS
+LA	KURTHWOOD
+LA	LABADIEVILLE
+LA	LABARRE
+LA	LACAMP
+LA	LACASSINE
+LA	LACOMBE
+LA	LAFAYETTE
+LA	LAFITTE
+LA	LAKE ARTHUR
+LA	LAKE CHARLES
+LA	LAKELAND
+LA	LAKE PROVIDENCE
+LA	LA PLACE
+LA	LAROSE
+LA	LARTO
+LA	LAWTELL
+LA	LEANDER
+LA	LEBEAU
+LA	LEBLANC
+LA	LECOMPTE
+LA	LEESVILLE
+LA	LE MOYEN
+LA	LENA
+LA	LEONVILLE
+LA	LETTSWORTH
+LA	LIBUSE
+LA	LILLIE
+LA	LINVILLE
+LA	LISBON
+LA	LIVINGSTON
+LA	LIVONIA
+LA	LK PROVIDENCE
+LA	LOCKPORT
+LA	LOGANSPORT
+LA	LONGLEAF
+LA	LONGSTREET
+LA	LONGVILLE
+LA	LORANGER
+LA	LOREAUVILLE
+LA	LOTTIE
+LA	LULING
+LA	LUTCHER
+LA	LYDIA
+LA	MADISONVILLE
+LA	MAMOU
+LA	MANDEVILLE
+LA	MANGHAM
+LA	MANSFIELD
+LA	MANSURA
+LA	MANY
+LA	MARINGOUIN
+LA	MARION
+LA	MARKSVILLE
+LA	MARRERO
+LA	MARTHAVILLE
+LA	MATHEWS
+LA	MAUREPAS
+LA	MAURICE
+LA	MEAUX
+LA	MELDER
+LA	MELROSE
+LA	MELVILLE
+LA	MERAUX
+LA	MERMENTAU
+LA	MER ROUGE
+LA	MERRYVILLE
+LA	METAIRIE
+LA	MIDLAND
+LA	MILTON
+LA	MINDEN
+LA	MIRA
+LA	MITCHELL
+LA	MITTIE
+LA	MODESTE
+LA	MONROE
+LA	MONTEGUT
+LA	MONTEREY
+LA	MONTGOMERY
+LA	MONTPELIER
+LA	MONTZ
+LA	MOORINGSPORT
+LA	MORA
+LA	MOREAUVILLE
+LA	MORGAN CITY
+LA	MORGANZA
+LA	MORROW
+LA	MORSE
+LA	MOSS BLUFF
+LA	MOUND
+LA	MOUNT AIRY
+LA	MOUNT HERMON
+LA	NAPOLEONVILLE
+LA	NATALBANY
+LA	NATCHEZ
+LA	NATCHITOCHES
+LA	NEGREET
+LA	NEWELLTON
+LA	NEW IBERIA
+LA	NEWLLANO
+LA	NEW ORLEANS
+LA	NEW ROADS
+LA	NEW SARPY
+LA	NEW ZION
+LA	NOBLE
+LA	NORCO
+LA	NORWOOD
+LA	OAKDALE
+LA	OAK GROVE
+LA	OAK RIDGE
+LA	OBERLIN
+LA	OIL CITY
+LA	OLLA
+LA	OPELOUSAS
+LA	OSCAR
+LA	OTIS
+LA	PAINCOURTVILLE
+LA	PAINCOURTVLLE
+LA	PALMETTO
+LA	PARADIS
+LA	PARKS
+LA	PATTERSON
+LA	PAULINA
+LA	PEARL RIVER
+LA	PELICAN
+LA	PERRY
+LA	PIERRE PART
+LA	PILOTTOWN
+LA	PINE GROVE
+LA	PINE PRAIRIE
+LA	PINEVILLE
+LA	PIONEER
+LA	PITKIN
+LA	PLAIN DEALING
+LA	PLAQUEMINE
+LA	PLATTENVILLE
+LA	PLAUCHEVILLE
+LA	PLEASANT HILL
+LA	POINT CLAIR
+LA	POINTE A LA HACHE
+LA	POLLOCK
+LA	PONCHATOULA
+LA	PORT ALLEN
+LA	PORT BARRE
+LA	PORT SULPHUR
+LA	PORT VINCENT
+LA	POWHATAN
+LA	PRAIRIEVILLE
+LA	PRIDE
+LA	PRINCETON
+LA	PROVENCAL
+LA	PT A LA HACHE
+LA	QUITMAN
+LA	RACELAND
+LA	RAGLEY
+LA	RAMAH
+LA	RAYNE
+LA	RAYVILLE
+LA	REDDELL
+LA	REEVES
+LA	RESERVE
+LA	RHINEHART
+LA	RICHWOOD
+LA	RIDGECREST
+LA	RINGGOLD
+LA	RIVER RIDGE
+LA	ROANOKE
+LA	ROBELINE
+LA	ROBERT
+LA	RODESSA
+LA	ROSA
+LA	ROSEDALE
+LA	ROSELAND
+LA	ROSEPINE
+LA	ROUGON
+LA	RUBY
+LA	RUSTON
+LA	SAINT AMANT
+LA	SAINT BENEDICT
+LA	SAINT BERNARD
+LA	SAINT FRANCISVILLE
+LA	SAINT GABRIEL
+LA	SAINT JAMES
+LA	SAINT JOSEPH
+LA	SAINT LANDRY
+LA	SAINT MARTINVILLE
+LA	SAINT MAURICE
+LA	SAINT ROSE
+LA	SALINE
+LA	SAREPTA
+LA	SCHRIEVER
+LA	SCOTLANDVILLE
+LA	SCOTT
+LA	SHERIDAN
+LA	SHONGALOO
+LA	SHREVEPORT
+LA	SIBLEY
+LA	SICILY ISLAND
+LA	SIEPER
+LA	SIKES
+LA	SIMMESPORT
+LA	SIMPSON
+LA	SIMSBORO
+LA	SINGER
+LA	SLAGLE
+LA	SLAUGHTER
+LA	SLIDELL
+LA	SONDHEIMER
+LA	SORRENTO
+LA	SOUTHERN
+LA	SPEARSVILLE
+LA	SPENCER
+LA	SPRINGFIELD
+LA	SPRINGHILL
+LA	STARKS
+LA	START
+LA	ST BENEDICT
+LA	STERLINGTON
+LA	ST FRANCISVLE
+LA	ST MARTINVLLE
+LA	STONEWALL
+LA	SUGARTOWN
+LA	SULPHUR
+LA	SUMMERFIELD
+LA	SUN
+LA	SUNSET
+LA	SUNSHINE
+LA	SWARTZ
+LA	TALISHEEK
+LA	TALLULAH
+LA	TANGIPAHOA
+LA	TAYLOR
+LA	TEMPLE
+LA	TERRY
+LA	TERRYTOWN
+LA	THE BLUFFS
+LA	THERIOT
+LA	THIBODAUX
+LA	TICKFAW
+LA	TIOGA
+LA	TORBERT
+LA	TRANSYLVANIA
+LA	TREES
+LA	TROUT
+LA	TULLOS
+LA	TUNICA
+LA	TURKEY CREEK
+LA	UNCLE SAM
+LA	URANIA
+LA	VACHERIE
+LA	VARNADO
+LA	VENICE
+LA	VENTRESS
+LA	VERDA
+LA	VICK
+LA	VIDALIA
+LA	VILLE PLATTE
+LA	VINTON
+LA	VIOLET
+LA	VIVIAN
+LA	WAKEFIELD
+LA	WALKER
+LA	WARDEN
+LA	WASHINGTON
+LA	WATERPROOF
+LA	WATSON
+LA	WAVERLY
+LA	WELSH
+LA	WESTLAKE
+LA	WEST MONROE
+LA	WESTWEGO
+LA	WEYANOKE
+LA	WHITE CASTLE
+LA	WHITEHALL
+LA	WILDSVILLE
+LA	WILSON
+LA	WINNFIELD
+LA	WINNSBORO
+LA	WISNER
+LA	WOODWORTH
+LA	YOUNGSVILLE
+LA	ZACHARY
+LA	ZWOLLE
+MA	ABINGTON
+MA	ACCORD
+MA	ACTON
+MA	ACUSHNET
+MA	ADAMS
+MA	AGAWAM
+MA	ALFORD
+MA	ALLSTON
+MA	AMESBURY
+MA	AMHERST
+MA	ANDOVER
+MA	AQUINNAH
+MA	ARLINGTON
+MA	ARLINGTON HEIGHTS
+MA	ARLINGTON HTS
+MA	ASHBURNHAM
+MA	ASHBY
+MA	ASHFIELD
+MA	ASHLAND
+MA	ASHLEY FALLS
+MA	ASSONET
+MA	ATHOL
+MA	ATTLEBORO
+MA	ATTLEBORO FALLS
+MA	ATTLEBORO FLS
+MA	AUBURN
+MA	AUBURNDALE
+MA	AVON
+MA	AYER
+MA	BABSON PARK
+MA	BALDWINVILLE
+MA	BARNSTABLE
+MA	BARRE
+MA	BASS RIVER
+MA	BAY STATE VILLAGE
+MA	BAY STATE VLG
+MA	BECKET
+MA	BEDFORD
+MA	BELCHERTOWN
+MA	BELLINGHAM
+MA	BELMONT
+MA	BERKLEY
+MA	BERKSHIRE
+MA	BERLIN
+MA	BERNARDSTON
+MA	BEVERLY
+MA	BILLERICA
+MA	BLACKSTONE
+MA	BLANDFORD
+MA	BOLTON
+MA	BONDSVILLE
+MA	BOSTON
+MA	BOSTON CLG
+MA	BOSTON COLLEGE
+MA	BOURNE
+MA	BOXBORO
+MA	BOXBOROUGH
+MA	BOXFORD
+MA	BOYLSTON
+MA	BRADFORD
+MA	BRAINTREE
+MA	BRANT ROCK
+MA	BREWSTER
+MA	BRIDGEWATER
+MA	BRIGHTON
+MA	BRIMFIELD
+MA	BROCKTON
+MA	BROOKFIELD
+MA	BROOKLINE
+MA	BROOKLINE VILLAGE
+MA	BROOKLINE VLG
+MA	BRYANTVILLE
+MA	BUCKLAND
+MA	BURLINGTON
+MA	BUZZARDS BAY
+MA	BYFIELD
+MA	CAMBRIDGE
+MA	CANTON
+MA	CARLISLE
+MA	CARVER
+MA	CATAUMET
+MA	CENTERVILLE
+MA	CHARLEMONT
+MA	CHARLESTOWN
+MA	CHARLTON
+MA	CHARLTON CITY
+MA	CHARLTON DEPOT
+MA	CHARLTON DEPT
+MA	CHARLTON DPT
+MA	CHARTLEY
+MA	CHATHAM
+MA	CHELMSFORD
+MA	CHELSEA
+MA	CHERRY VALLEY
+MA	CHESHIRE
+MA	CHESTER
+MA	CHESTERFIELD
+MA	CHESTNUT HILL
+MA	CHICOPEE
+MA	CHILMARK
+MA	CLARKSBURG
+MA	CLINTON
+MA	COHASSET
+MA	COLRAIN
+MA	CONCORD
+MA	CONWAY
+MA	COTUIT
+MA	CUMMAQUID
+MA	CUMMINGTON
+MA	CUSHMAN
+MA	CUTTYHUNK
+MA	DALTON
+MA	DANVERS
+MA	DARTMOUTH
+MA	DEDHAM
+MA	DEERFIELD
+MA	DENNIS
+MA	DENNISPORT
+MA	DENNIS PORT
+MA	DEVENS
+MA	DIGHTON
+MA	DORCHESTER
+MA	DORCHESTER CENTER
+MA	DORCHESTR CTR
+MA	DOUGLAS
+MA	DOVER
+MA	DRACUT
+MA	DRURY
+MA	DUDLEY
+MA	DUDLEY HILL
+MA	DUNSTABLE
+MA	DUXBURY
+MA	EA FALMOUTH
+MA	E ARLINGTON
+MA	EAST ARLINGTON
+MA	EAST BOSTON
+MA	EAST BRIDGEWATER
+MA	EAST BROOKFIELD
+MA	EAST CAMBRIDGE
+MA	EAST DENNIS
+MA	EAST DOUGLAS
+MA	EAST FALMOUTH
+MA	EAST FREETOWN
+MA	EASTHAM
+MA	EASTHAMPTON
+MA	EAST HARWICH
+MA	EAST LONGMEADOW
+MA	EAST LYNN
+MA	EAST MANSFIELD
+MA	EASTON
+MA	EAST ORLEANS
+MA	EAST OTIS
+MA	EAST PRINCETON
+MA	EAST SANDWICH
+MA	EAST TAUNTON
+MA	EAST TEMPLETON
+MA	EAST WALPOLE
+MA	EAST WAREHAM
+MA	EAST WATERTOWN
+MA	EAST WEYMOUTH
+MA	E BRIDGEWATER
+MA	E BRIDGEWTR
+MA	E BROOKFIELD
+MA	E CAMBRIDGE
+MA	EDGARTOWN
+MA	E FALMOUTH
+MA	EGREMONT
+MA	E HAMPTON
+MA	E HARWICH
+MA	ELMWOOD
+MA	E LONGMEADOW
+MA	E MANSFIELD
+MA	E PRINCETON
+MA	ERVING
+MA	E SANDWICH
+MA	ESSEX
+MA	E TEMPLETON
+MA	EVERETT
+MA	E WAREHAM
+MA	E WATERTOWN
+MA	FAIRHAVEN
+MA	FALL RIVER
+MA	FALMOUTH
+MA	FAYVILLE
+MA	FEEDING HILLS
+MA	FISKDALE
+MA	FITCHBURG
+MA	FLORENCE
+MA	FLORIDA
+MA	FORESTDALE
+MA	FOXBORO
+MA	FRAMINGHAM
+MA	FRANKLIN
+MA	GARDNER
+MA	GAY HEAD
+MA	GEORGETOWN
+MA	GILBERTVILLE
+MA	GILL
+MA	GLENDALE
+MA	GLOUCESTER
+MA	GOSHEN
+MA	GRAFTON
+MA	GRANBY
+MA	GRANVILLE
+MA	GREAT BARRINGTON
+MA	GREENBUSH
+MA	GREENFIELD
+MA	GREEN HARBOR
+MA	GROTON
+MA	GROVE HALL
+MA	GROVELAND
+MA	GT BARRINGTON
+MA	HADLEY
+MA	HALIFAX
+MA	HAMILTON
+MA	HAMPDEN
+MA	HANCOCK
+MA	HANOVER
+MA	HANSCOM AFB
+MA	HANSON
+MA	HARDWICK
+MA	HARVARD
+MA	HARVARD SQ
+MA	HARVARD SQUARE
+MA	HARWICH
+MA	HARWICH PORT
+MA	HATCHVILLE
+MA	HATFIELD
+MA	HATHORNE
+MA	HAVERHILL
+MA	HAWLEY
+MA	HAYDENVILLE
+MA	HEATH
+MA	HINGHAM
+MA	HINSDALE
+MA	HOLBROOK
+MA	HOLDEN
+MA	HOLLAND
+MA	HOLLISTON
+MA	HOLYOKE
+MA	HOPEDALE
+MA	HOPKINTON
+MA	HOUSATONIC
+MA	HUBBARDSTON
+MA	HUDSON
+MA	HULL
+MA	HUMAROCK
+MA	HUNTINGTON
+MA	HYANNIS
+MA	HYANNIS PORT
+MA	HYDE PARK
+MA	INDIAN ORCH
+MA	INDIAN ORCHARD
+MA	IPSWICH
+MA	JAMAICA PLAIN
+MA	JEFFERSON
+MA	KATES CORNER
+MA	KINGSTON
+MA	LAKE PLEASANT
+MA	LAKEVILLE
+MA	LANCASTER
+MA	LANESBORO
+MA	LAWRENCE
+MA	LEE
+MA	LEEDS
+MA	LEICESTER
+MA	LENOX
+MA	LENOX DALE
+MA	LEOMINSTER
+MA	LEVERETT
+MA	LEXINGTON
+MA	LEYDEN
+MA	LINCOLN
+MA	LINWOOD
+MA	LITTLETON
+MA	LONGMEADOW
+MA	LOWELL
+MA	LUDLOW
+MA	LUNENBURG
+MA	LYNN
+MA	LYNNFIELD
+MA	MALDEN
+MA	MANCHAUG
+MA	MANCHESTER
+MA	MANCHESTER BY THE SEA
+MA	MANOMET
+MA	MANSFIELD
+MA	MARBLEHEAD
+MA	MARION
+MA	MARLBOROUGH
+MA	MARSHFIELD
+MA	MARSHFIELD HILLS
+MA	MARSHFLD HLS
+MA	MARSTONS MILLS
+MA	MARSTONS MLS
+MA	MASHPEE
+MA	MATTAPAN
+MA	MATTAPOISETT
+MA	MAYNARD
+MA	MEDFIELD
+MA	MEDFORD
+MA	MEDWAY
+MA	MELROSE
+MA	MENDON
+MA	MENEMSHA
+MA	MERRIMAC
+MA	METHUEN
+MA	MIDDLEBORO
+MA	MIDDLEBOROUGH
+MA	MIDDLEFIELD
+MA	MIDDLETON
+MA	MILFORD
+MA	MILLBURY
+MA	MILLERS FALLS
+MA	MILLIS
+MA	MILL RIVER
+MA	MILLVILLE
+MA	MILTON
+MA	MILTON VILLAGE
+MA	MILTON VLG
+MA	MINOT
+MA	MISSION HILL
+MA	MONPONSETT
+MA	MONROE
+MA	MONROE BRIDGE
+MA	MONSON
+MA	MONTAGUE
+MA	MONTEREY
+MA	MONTGOMERY
+MA	MONUMENT BCH
+MA	MONUMENT BEACH
+MA	MOUNT HERMON
+MA	MOUNT TOM
+MA	MOUNT WASHINGTON
+MA	MT HERMON
+MA	MT WASHINGTON
+MA	NAHANT
+MA	NANTUCKET
+MA	NATICK
+MA	N ATTLEBORO
+MA	N BILLERICA
+MA	N BROOKFIELD
+MA	N CAMBRIDGE
+MA	N CHELMSFORD
+MA	N DARTMOUTH
+MA	N DIGHTON
+MA	NEEDHAM
+MA	NEEDHAM HEIGHTS
+MA	NEEDHAM HGTS
+MA	N EGREMONT
+MA	NEW ASHFORD
+MA	NEW BEDFORD
+MA	NEW BRAINTREE
+MA	NEWBURY
+MA	NEWBURYPORT
+MA	NEW MARLBORO
+MA	NEW MARLBOROU
+MA	NEW MARLBOROUGH
+MA	NEW SALEM
+MA	NEWTON
+MA	NEWTON CENTER
+MA	NEWTON CENTRE
+MA	NEWTON HIGHLANDS
+MA	NEWTON HLDS
+MA	NEWTON L F
+MA	NEWTON LOWER FALLS
+MA	NEWTON U F
+MA	NEWTON UPPER FALLS
+MA	NEWTONVILLE
+MA	NEW TOWN
+MA	N FALMOUTH
+MA	N HATFIELD
+MA	N MARSHFIELD
+MA	NONANTUM
+MA	NONQUITT
+MA	NORFOLK
+MA	NORTH ADAMS
+MA	NORTH AMHERST
+MA	NORTHAMPTON
+MA	NORTH ANDOVER
+MA	NORTH ATTLEBORO
+MA	NORTH BILLERICA
+MA	NORTHBOROUGH
+MA	NORTHBRIDGE
+MA	NORTH BROOKFIELD
+MA	NORTH CAMBRIDGE
+MA	NORTH CARVER
+MA	NORTH CHATHAM
+MA	NORTH CHELMSFORD
+MA	NORTH DARTMOUTH
+MA	NORTH DIGHTON
+MA	NORTH EASTHAM
+MA	NORTH EASTON
+MA	NORTH EGREMONT
+MA	NORTH FALMOUTH
+MA	NORTHFIELD
+MA	NORTHFIELD MOUNT HERMON
+MA	NORTHFIELD MT HERMON
+MA	NORTH GRAFTON
+MA	NORTH HATFIELD
+MA	NORTH MARSHFIELD
+MA	NORTH OXFORD
+MA	NORTH PEMBROKE
+MA	NORTH QUINCY
+MA	NORTH READING
+MA	NORTH SCITUATE
+MA	NORTH TRURO
+MA	NORTH UXBRIDGE
+MA	NORTH WALTHAM
+MA	NORTH WEYMOUTH
+MA	NORTON
+MA	NORWELL
+MA	NORWOOD
+MA	N PEMBROKE
+MA	N SCITUATE
+MA	NUTTING LAKE
+MA	N UXBRIDGE
+MA	N WEYMOUTH
+MA	OAK BLUFFS
+MA	OAKHAM
+MA	OCEAN BLUFF
+MA	ONSET
+MA	ORANGE
+MA	ORLEANS
+MA	OSTERVILLE
+MA	OTIS
+MA	OTIS ANGB
+MA	OXFORD
+MA	PALMER
+MA	PAXTON
+MA	PEABODY
+MA	PELHAM
+MA	PEMBROKE
+MA	PEPPERELL
+MA	PERU
+MA	PETERSHAM
+MA	PHILLIPSTON
+MA	PINEHURST
+MA	PITTSFIELD
+MA	PLAINFIELD
+MA	PLAINVILLE
+MA	PLYMOUTH
+MA	PLYMPTON
+MA	POCASSET
+MA	PRIDES CROSSING
+MA	PRIDES CRSSNG
+MA	PRINCETON
+MA	PROVINCETOWN
+MA	QUINCY
+MA	RANDOLPH
+MA	RAYNHAM
+MA	RAYNHAM CENTER
+MA	RAYNHAM CTR
+MA	READING
+MA	READVILLE
+MA	REHOBOTH
+MA	REVERE
+MA	RICHMOND
+MA	ROCHDALE
+MA	ROCHESTER
+MA	ROCKLAND
+MA	ROCKPORT
+MA	ROSLINDALE
+MA	ROWE
+MA	ROWLEY
+MA	ROXBURY
+MA	ROXBURY CROSSING
+MA	ROXBURY XING
+MA	ROYALSTON
+MA	RUSSELL
+MA	RUTLAND
+MA	SAGAMORE
+MA	SAGAMORE BCH
+MA	SAGAMORE BEACH
+MA	SALEM
+MA	SALISBURY
+MA	SALISBURY BCH
+MA	SALISBURY BEACH
+MA	SANDISFIELD
+MA	SANDWICH
+MA	S ATTLEBORO
+MA	SAUGUS
+MA	SAVOY
+MA	S CHELMSFORD
+MA	SCITUATE
+MA	S DARTMOUTH
+MA	S DEERFIELD
+MA	SEEKONK
+MA	S EGREMONT
+MA	S HAMILTON
+MA	SHARON
+MA	SHATTUCKVILLE
+MA	SHEFFIELD
+MA	SHELBURNE FALLS
+MA	SHELBURNE FLS
+MA	SHELDONVILLE
+MA	SHERBORN
+MA	SHIRLEY
+MA	SHIRLEY CENTER
+MA	SHIRLEY CTR
+MA	SHREWSBURY
+MA	SHUTESBURY
+MA	SIASCONSET
+MA	SILVER BEACH
+MA	SIMONS ROCK
+MA	S LANCASTER
+MA	SOMERSET
+MA	SOMERVILLE
+MA	SOUTHAMPTON
+MA	SOUTH ATTLEBORO
+MA	SOUTH BARRE
+MA	SOUTHBOROUGH
+MA	SOUTH BOSTON
+MA	SOUTHBRIDGE
+MA	SOUTH CARVER
+MA	SOUTH CHATHAM
+MA	SOUTH DARTMOUTH
+MA	SOUTH DEERFIELD
+MA	SOUTH DENNIS
+MA	SOUTH EASTON
+MA	SOUTH EGREMONT
+MA	SOUTHFIELD
+MA	SOUTH GRAFTON
+MA	SOUTH HADLEY
+MA	SOUTH HAMILTON
+MA	SOUTH HARWICH
+MA	SOUTH LANCASTER
+MA	SOUTH LEE
+MA	SOUTH ORLEANS
+MA	SOUTH WALPOLE
+MA	SOUTH WALTHAM
+MA	SOUTH WELLFLEET
+MA	SOUTH WEYMOUTH
+MA	SOUTHWICK
+MA	SOUTH YARMOUTH
+MA	SPENCER
+MA	SPFLD
+MA	SPRINGFIELD
+MA	SQUANTUM
+MA	S ROYALSTON
+MA	STERLING
+MA	STILL RIVER
+MA	STOCKBRIDGE
+MA	STONEHAM
+MA	STONEHILL COL
+MA	STONEHILL COLLEGE
+MA	STOUGHTON
+MA	STOW
+MA	STURBRIDGE
+MA	SUDBURY
+MA	SUNDERLAND
+MA	SUTTON
+MA	SWAMPSCOTT
+MA	SWANSEA
+MA	S WELLFLEET
+MA	S WEYMOUTH
+MA	S YARMOUTH
+MA	TAUNTON
+MA	TEATICKET
+MA	TEMPLETON
+MA	TEWKSBURY
+MA	THORNDIKE
+MA	THREE RIVERS
+MA	TOLLAND
+MA	TOPSFIELD
+MA	TOWNSEND
+MA	TRURO
+MA	TUFTS UNIV
+MA	TUFTS UNIVERSITY
+MA	TURNERS FALLS
+MA	TYNGSBORO
+MA	TYRINGHAM
+MA	UPHAMS CORNER
+MA	UPTON
+MA	UXBRIDGE
+MA	VILLAGE OF NAGOG WOODS
+MA	VINEYARD HAVEN
+MA	VINEYARD HVN
+MA	VLG NAGOG WDS
+MA	WABAN
+MA	WAKEFIELD
+MA	WALES
+MA	WALPOLE
+MA	WALTHAM
+MA	WAQUOIT
+MA	WARD HILL
+MA	WARE
+MA	WAREHAM
+MA	WARREN
+MA	WARWICK
+MA	WASHINGTON
+MA	WATERTOWN
+MA	WAVERLEY
+MA	WAYLAND
+MA	W BARNSTBLE
+MA	W BRIDGEWATER
+MA	W BROOKFIELD
+MA	W CHESTERFLD
+MA	WEBSTER
+MA	WELLESLEY
+MA	WELLESLEY HILLS
+MA	WELLESLEY HLS
+MA	WELLFLEET
+MA	WENDELL
+MA	WENDELL DEPOT
+MA	WENHAM
+MA	WEST BARNSTABLE
+MA	WESTBOROUGH
+MA	WEST BOXFORD
+MA	WEST BOYLSTON
+MA	WEST BRIDGEWATER
+MA	WEST BROOKFIELD
+MA	WEST CHATHAM
+MA	WEST CHESTERFIELD
+MA	WEST CHOP
+MA	WEST DENNIS
+MA	WEST FALMOUTH
+MA	WESTFIELD
+MA	WESTFORD
+MA	WEST GROTON
+MA	WESTHAMPTON
+MA	WEST HARWICH
+MA	WEST HATFIELD
+MA	WEST HYANNISPORT
+MA	WEST LYNN
+MA	WEST MEDFORD
+MA	WEST MILLBURY
+MA	WESTMINSTER
+MA	WEST NEWBURY
+MA	WEST NEWTON
+MA	WESTON
+MA	WEST OTIS
+MA	WESTOVER AFB
+MA	WESTPORT
+MA	WESTPORT POINT
+MA	WESTPORT PT
+MA	WEST ROXBURY
+MA	WEST SOMERVILLE
+MA	WEST SPRINGFIELD
+MA	WEST STOCKBRIDGE
+MA	WEST TISBURY
+MA	WEST TOWNSEND
+MA	WEST WAREHAM
+MA	WEST WARREN
+MA	WEST WHATELY
+MA	WESTWOOD
+MA	WEST YARMOUTH
+MA	WEYMOUTH
+MA	W FALMOUTH
+MA	WHATELY
+MA	W HATFIELD
+MA	WHEELWRIGHT
+MA	WHITE HORSE BEACH
+MA	WHITINSVILLE
+MA	WHITMAN
+MA	WHT HORSE BCH
+MA	W HYANNISPRT
+MA	WILBRAHAM
+MA	WILKINSONVILE
+MA	WILKINSONVILLE
+MA	WILLIAMSBURG
+MA	WILLIAMSTOWN
+MA	WILLIMANSETT
+MA	WILMINGTON
+MA	WINCHDON SPGS
+MA	WINCHENDON
+MA	WINCHENDON SPRINGS
+MA	WINCHESTER
+MA	WINDSOR
+MA	WINTER HILL
+MA	WINTHROP
+MA	WOBURN
+MA	WOLLASTON
+MA	WOODS HOLE
+MA	WOODVILLE
+MA	WORCESTER
+MA	WORONOCO
+MA	WORTHINGTON
+MA	WRENTHAM
+MA	W SOMERVILLE
+MA	W SPRINGFIELD
+MA	W STOCKBRIDGE
+MA	W TOWNSEND
+MA	W YARMOUTH
+MA	YARMOUTH PORT
+MD	ABELL
+MD	ABERDEEN
+MD	ABERDEEN PROVING GROUND
+MD	ABER PROV GRD
+MD	ABINGDON
+MD	ACCIDENT
+MD	ACCOKEEK
+MD	ADAMSTOWN
+MD	ADELPHI
+MD	ALLEN
+MD	ANDREWS AFB
+MD	ANDREWS AIR FORCE BASE
+MD	ANNAPOLIS
+MD	ANNAPOLIS JCT
+MD	ANNAPOLIS JUNCTION
+MD	AQUASCO
+MD	ARBUTUS
+MD	ARLINGTON
+MD	ARNOLD
+MD	ASHTON
+MD	ASPEN HILL
+MD	AVENUE
+MD	BAINBRIDGE
+MD	BALDWIN
+MD	BALTIMORE
+MD	BARCLAY
+MD	BARNESVILLE
+MD	BARSTOW
+MD	BARTON
+MD	BEALLSVILLE
+MD	BEL AIR
+MD	BEL ALTON
+MD	BELCAMP
+MD	BELTSVILLE
+MD	BENEDICT
+MD	BENSON
+MD	BENTLEY SPGS
+MD	BENTLEY SPRINGS
+MD	BERLIN
+MD	BERWYN HEIGHTS
+MD	BERWYN HTS
+MD	BETHESDA
+MD	BETHLEHEM
+MD	BETTERTON
+MD	BEVERLEY BCH
+MD	BIG POOL
+MD	BIG SPRING
+MD	BISHOPVILLE
+MD	BITTINGER
+MD	BIVALVE
+MD	BLADENSBURG
+MD	BLOOMINGTON
+MD	BOONSBORO
+MD	BORING
+MD	BOWIE
+MD	BOYDS
+MD	BOZMAN
+MD	BRADDOCK HEIGHTS
+MD	BRADDOCK HTS
+MD	BRADSHAW
+MD	BRANDYWINE
+MD	BRENTWOOD
+MD	BRINKLOW
+MD	BROOKEVILLE
+MD	BROOKLANDVILLE
+MD	BROOKLANDVL
+MD	BROOKLYN
+MD	BROOKLYN PARK
+MD	BROOMES IS
+MD	BROOMES ISLAND
+MD	BROWNSVILLE
+MD	BRUNSWICK
+MD	BRYANS ROAD
+MD	BRYANTOWN
+MD	BUCKEYSTOWN
+MD	BURKITTSVILLE
+MD	BURTONSVILLE
+MD	BUSHWOOD
+MD	BUTLER
+MD	BWI AIRPORT
+MD	CABIN JOHN
+MD	CALIFORNIA
+MD	CALLAWAY
+MD	CALVERTON
+MD	CAMBRIDGE
+MD	CAMP SPRINGS
+MD	CAPE SAINT CLAIRE
+MD	CAPITOL HEIGHTS
+MD	CAPITOL HGTS
+MD	CARDIFF
+MD	CARROLL
+MD	CASCADE
+MD	CATONSVILLE
+MD	CAVETOWN
+MD	CECILTON
+MD	CENTREVILLE
+MD	CHANCE
+MD	CHAPTICO
+MD	CHARLESTOWN
+MD	CHARLOTTE HALL
+MD	CHARLOTT HALL
+MD	CHASE
+MD	CHELTENHAM
+MD	CHESAPEAK BCH
+MD	CHESAPEAKE BEACH
+MD	CHESAPEAKE CITY
+MD	CHESAPEAKE CY
+MD	CHESTER
+MD	CHESTERTOWN
+MD	CHEVERLY
+MD	CHEVY CHASE
+MD	CHEWSVILLE
+MD	CHILDS
+MD	CHILLUM
+MD	CHURCH CREEK
+MD	CHURCH HILL
+MD	CHURCHTON
+MD	CHURCHVILLE
+MD	CLAIBORNE
+MD	CLARKSBURG
+MD	CLARKSVILLE
+MD	CLEAR SPRING
+MD	CLEMENTS
+MD	CLIFTON
+MD	CLINTON
+MD	COBB ISLAND
+MD	COCKEYSVILLE
+MD	COCKYS HT VLY
+MD	COCKYSVIL
+MD	COLESVILLE
+MD	COLLEGE PARK
+MD	COLMAR MANOR
+MD	COLORA
+MD	COLTONS POINT
+MD	COLUMBIA
+MD	COMPTON
+MD	CONOWINGO
+MD	COOKSVILLE
+MD	CORDOVA
+MD	CORRIGANVILLE
+MD	COTTAGE CITY
+MD	CPE ST CLAIRE
+MD	CRAPO
+MD	CRELLIN
+MD	CRESAPTOWN
+MD	CRISFIELD
+MD	CROCHERON
+MD	CROFTON
+MD	CROWNSVILLE
+MD	CRUMPTON
+MD	CUMBERLAND
+MD	CURTIS BAY
+MD	DAMASCUS
+MD	DAMERON
+MD	DAMES QUARTER
+MD	DANIELS
+MD	DARES BEACH
+MD	DARLINGTON
+MD	DARNESTOWN
+MD	DAVIDSONVILLE
+MD	DAYTON
+MD	DEALE
+MD	DEAL ISLAND
+MD	DEER PARK
+MD	DELMAR
+MD	DENTON
+MD	DENTSVILLE
+MD	DERWOOD
+MD	DETOUR
+MD	DICKERSON
+MD	DISTRICT HEIGHTS
+MD	DISTRICT HTS
+MD	DOUBS
+MD	DOWELL
+MD	DRAYDEN
+MD	DRUID
+MD	DUNDALK
+MD	DUNKIRK
+MD	EARLEVILLE
+MD	EAST CASE
+MD	EAST NEW MARKET
+MD	EASTON
+MD	EASTPORT
+MD	ECKHART MINES
+MD	EDEN
+MD	EDGEMERE
+MD	EDGEWATER
+MD	EDGEWATER BCH
+MD	EDGEWOOD
+MD	ELDERSBURG
+MD	ELK MILLS
+MD	ELKRIDGE
+MD	ELKTON
+MD	ELLERSLIE
+MD	ELLICOTT CITY
+MD	EMMITSBURG
+MD	E NEW MARKET
+MD	ESSEX
+MD	EUDOWOOD
+MD	EWELL
+MD	FAIRMOUNT
+MD	FAIRMOUNT HEIGHTS
+MD	FAIRMOUNT HGT
+MD	FAIRPLAY
+MD	FALLSTON
+MD	FAULKNER
+MD	FEDERALSBURG
+MD	FINKSBURG
+MD	FISHING CREEK
+MD	FLINTSTONE
+MD	FOREST HEIGHTS
+MD	FOREST HILL
+MD	FOREST HTS
+MD	FORESTVILLE
+MD	FORK
+MD	FORT DETRICK
+MD	FORT GEORGE G MEADE
+MD	FORT HOWARD
+MD	FORT MEADE
+MD	FORT RITCHIE
+MD	FORT WASHINGTON
+MD	FOWBELSBURG
+MD	FRANKLIN
+MD	FREDERICK
+MD	FREELAND
+MD	FRIENDSHIP
+MD	FRIENDSVILLE
+MD	FROSTBURG
+MD	FRUITLAND
+MD	FT WASHINGTON
+MD	FULTON
+MD	FUNKSTOWN
+MD	GAITHER
+MD	GAITHERSBURG
+MD	GALENA
+MD	GALESVILLE
+MD	GAMBRILLS
+MD	GAPLAND
+MD	GARRETT PARK
+MD	GARRISON
+MD	GEORGETOWN
+MD	GERMANTOWN
+MD	GIBSON ISLAND
+MD	GIRDLETREE
+MD	GLENARDEN
+MD	GLEN ARM
+MD	GLEN BURNIE
+MD	GLENCOE
+MD	GLEN ECHO
+MD	GLENELG
+MD	GLENN DALE
+MD	GLENWOOD
+MD	GLYNDON
+MD	GOLDSBORO
+MD	GOLTS
+MD	GOVANS
+MD	GRACEHAM
+MD	GRANITE
+MD	GRANTSVILLE
+MD	GRASONVILLE
+MD	GREAT MILLS
+MD	GREENBELT
+MD	GREENMOUNT
+MD	GREENSBORO
+MD	GUNPOWDER
+MD	GWYNN OAK
+MD	HAGERSTOWN
+MD	HALETHORPE
+MD	HAMPSTEAD
+MD	HANCOCK
+MD	HANOVER
+MD	HARMANS
+MD	HARWOOD
+MD	HAVRE DE GRACE
+MD	HEBRON
+MD	HELEN
+MD	HENDERSON
+MD	HEREFORD
+MD	HIGHFIELD
+MD	HIGHLAND
+MD	HIGHLAND BCH
+MD	HIGHLANDTOWN
+MD	HILLCREST HEIGHTS
+MD	HILLCREST HGTS
+MD	HILLCREST HTS
+MD	HILLSBORO
+MD	HOLLAND POINT
+MD	HOLLYWOOD
+MD	HUGHESVILLE
+MD	HUNTINGTOWN
+MD	HUNT VALLEY
+MD	HURLOCK
+MD	HUTTON
+MD	HVRE DE GRACE
+MD	HYATTSTOWN
+MD	HYATTSVILLE
+MD	HYDES
+MD	IJAMSVILLE
+MD	ILCHESTER
+MD	INDIAN HEAD
+MD	INGLESIDE
+MD	IRONSIDES
+MD	ISSUE
+MD	JACKSONVILLE
+MD	JARRETTSVILLE
+MD	JEFFERSON
+MD	JENNINGS
+MD	JESSUP
+MD	JOPPA
+MD	KEEDYSVILLE
+MD	KENNEDYVILLE
+MD	KENSINGTON
+MD	KETTERING
+MD	KEYMAR
+MD	KINGSVILLE
+MD	KITZMILLER
+MD	KNOXVILLE
+MD	LADIESBURG
+MD	LAKE SHORE
+MD	LANDOVER
+MD	LANDOVER HILLS
+MD	LANDOVER HLS
+MD	LANGLEY PARK
+MD	LANHAM
+MD	LANHAM SEABROOK
+MD	LANSDOWNE
+MD	LA PLATA
+MD	LARGO
+MD	LAUREL
+MD	LAVALE
+MD	LAYTONSVILLE
+MD	LEONARDTOWN
+MD	LEWISTOWN
+MD	LEXINGTON PARK
+MD	LEXINGTON PK
+MD	LIBERTYTOWN
+MD	LINEBORO
+MD	LINKWOOD
+MD	LINTHICUM
+MD	LINTHICUM HEIGHTS
+MD	LINTHICUM HTS
+MD	LINWOOD
+MD	LISBON
+MD	LITTLE ORLEANS
+MD	LOCH RAVEN
+MD	LONACONING
+MD	LONG GREEN
+MD	LOTHIAN
+MD	LOVEVILLE
+MD	LTL ORLEANS
+MD	LUKE
+MD	LUSBY
+MD	LUTHERVILLE
+MD	LUTHERVILLE TIMONIUM
+MD	LUTHVLE TIMON
+MD	LYNCH
+MD	MADDOX
+MD	MADISON
+MD	MANCHESTER
+MD	MANOKIN
+MD	MARBURY
+MD	MARDELA
+MD	MARDELA SPGS
+MD	MARDELA SPRINGS
+MD	MARION
+MD	MARION STA
+MD	MARION STATION
+MD	MARLOW HEIGHTS
+MD	MARLOW HGTS
+MD	MARRIOTTSVILLE
+MD	MARRIOTTSVL
+MD	MARYDEL
+MD	MARYLAND CITY
+MD	MARYLAND LINE
+MD	MASSEY
+MD	MAUGANSVILLE
+MD	MAYO
+MD	MCCOOLE
+MD	MCDANIEL
+MD	MCDONOGH RUN
+MD	MC HENRY
+MD	MD CITY
+MD	MECHANICSVILLE
+MD	MECHANICSVLLE
+MD	MIDDLEBURG
+MD	MIDDLE RIVER
+MD	MIDDLETOWN
+MD	MIDLAND
+MD	MIDLOTHIAN
+MD	MILLERS
+MD	MILLERSVILLE
+MD	MILLINGTON
+MD	MITCHELLVILLE
+MD	MNT LAKE PARK
+MD	MONKTON
+MD	MONROVIA
+MD	MONTGOMERY VILLAGE
+MD	MONTGOMRY VLG
+MD	MONTPELIER
+MD	MORGANZA
+MD	MOUNTAIN LAKE PARK
+MD	MOUNT AIRY
+MD	MOUNT RAINIER
+MD	MOUNT SAVAGE
+MD	MOUNT VICTORIA
+MD	MOUNT WASHINGTON
+MD	MTIN LK PARK
+MD	MT LAKE PARK
+MD	MT VICTORIA
+MD	MT WASHINGTON
+MD	MYERSVILLE
+MD	NANJEMOY
+MD	NANTICOKE
+MD	NAVAL ACADEMY
+MD	N BETHESDA
+MD	N BRENTWOOD
+MD	NEAVITT
+MD	N ENGLEWOOD
+MD	NEWARK
+MD	NEWBURG
+MD	NEW CARROLLTN
+MD	NEW CARROLLTON
+MD	NEWCOMB
+MD	NEW MARKET
+MD	NEW MIDWAY
+MD	NEW WINDSOR
+MD	NO BRENTWOOD
+MD	NO POTOMAC
+MD	NORTH BEACH
+MD	NORTH BETHESDA
+MD	NORTH BRENTWO
+MD	NORTH BRENTWOOD
+MD	NORTH EAST
+MD	NORTH ENGLEWOOD
+MD	NORTH POTOMAC
+MD	NORTHWOOD
+MD	NOTTINGHAM
+MD	N POTOMAC
+MD	OAKLAND
+MD	OCEAN CITY
+MD	OCEAN PINES
+MD	OCEAN PNES
+MD	ODENTON
+MD	OELLA
+MD	OLDTOWN
+MD	OLNEY
+MD	ORCHARD BEACH
+MD	OWINGS
+MD	OWINGS MILLS
+MD	OXFORD
+MD	OXON HILL
+MD	PARK HALL
+MD	PARKTON
+MD	PARKVILLE
+MD	PARSONSBURG
+MD	PASADENA
+MD	PATAPSCO
+MD	PATUXENT RIV
+MD	PATUXENT RIVER
+MD	PERRY HALL
+MD	PERRYMAN
+MD	PERRY POINT
+MD	PERRYVILLE
+MD	PHOENIX
+MD	PIKESVILLE
+MD	PINEY POINT
+MD	PINTO
+MD	PISGAH
+MD	PITTSVILLE
+MD	POCOMOKE CITY
+MD	POINT OF ROCKS
+MD	POMFRET
+MD	POOLESVILLE
+MD	PORT DEPOSIT
+MD	PORT REPUBLIC
+MD	PORT TOBACCO
+MD	POTOMAC
+MD	POWELLVILLE
+MD	PRESTON
+MD	PRICE
+MD	PRINCE FREDERICK
+MD	PRINCESS ANNE
+MD	PRNC FREDERCK
+MD	PT OF ROCKS
+MD	PYLESVILLE
+MD	QUANTICO
+MD	QUEEN ANNE
+MD	QUEENSTOWN
+MD	RANDALLSTOWN
+MD	RASPEBURG
+MD	RAWLINGS
+MD	REHOBETH
+MD	REISTERSTOWN
+MD	RHODESDALE
+MD	RIDERWOOD
+MD	RIDGE
+MD	RIDGELY
+MD	RISING SUN
+MD	RISON
+MD	RIVA
+MD	RIVERDALE
+MD	RIVIERA BEACH
+MD	ROCK HALL
+MD	ROCK POINT
+MD	ROCKVILLE
+MD	ROCKY RIDGE
+MD	ROHRERSVILLE
+MD	ROLAND PARK
+MD	ROSEDALE
+MD	ROSE HAVEN
+MD	ROYAL OAK
+MD	RUSSETT
+MD	RUXTON
+MD	SABILLASVILLE
+MD	SAINT CHARLES
+MD	SAINT INIGOES
+MD	SAINT JAMES
+MD	SAINT LEONARD
+MD	SAINT MARYS
+MD	SAINT MARYS CITY
+MD	SAINT MICHAELS
+MD	SALISBURY
+MD	SANDY SPRING
+MD	SANG RUN
+MD	SAVAGE
+MD	SCAGGSVILLE
+MD	SCOTLAND
+MD	SEABROOK
+MD	SEAT PLEASANT
+MD	SECRETARY
+MD	SEVERN
+MD	SEVERNA PARK
+MD	SHADY SIDE
+MD	SHALLMAR
+MD	SHARPSBURG
+MD	SHARPTOWN
+MD	SHERWOOD
+MD	SHERWOOD FOREST
+MD	SHERWOOD FRST
+MD	SHOWELL
+MD	SILVER SPRING
+MD	SIMPSONVILLE
+MD	SMITHSBURG
+MD	SNOW HILL
+MD	SOLOMONS
+MD	SOUTHERN MD FACILITY
+MD	SPARKS
+MD	SPARKS GLENCO
+MD	SPARKS GLENCOE
+MD	SPARROWS POINT
+MD	SPARROWS PT
+MD	SPENCERVILLE
+MD	SPRINGDALE
+MD	SPRING GAP
+MD	STEVENSON
+MD	STEVENSVILLE
+MD	STHRN MD FAC
+MD	STILL POND
+MD	ST MARYS CITY
+MD	ST MICHAELS
+MD	STOCKTON
+MD	STREET
+MD	SUBN MD FAC
+MD	SUBURB MARYLAND FAC
+MD	SUDLERSVILLE
+MD	SUITLAND
+MD	SUNDERLAND
+MD	SWAN POINT
+MD	SWANTON
+MD	SYKESVILLE
+MD	TAKOMA PARK
+MD	TALL TIMBERS
+MD	TANEYTOWN
+MD	TAYLORS IS
+MD	TAYLORS ISLAND
+MD	TEMPLE HILLS
+MD	TEMPLEVILLE
+MD	THURMONT
+MD	TILGHMAN
+MD	TIMONIUM
+MD	TODDVILLE
+MD	TOWSON
+MD	TRACYS LANDING
+MD	TRACYS LNDG
+MD	TRAPPE
+MD	TUSCARORA
+MD	TYASKIN
+MD	TYLERTON
+MD	UNION BRIDGE
+MD	UNIONVILLE
+MD	UNIVERSITY PA
+MD	UNIVERSITY PARK
+MD	UPPERCO
+MD	UPPER FAIRMOUNT
+MD	UPPER FAIRMT
+MD	UPPER FALLS
+MD	UPPER MARLBORO
+MD	UPPR MARLBORO
+MD	UPR MARLBORO
+MD	URBANA
+MD	VALLEY LEE
+MD	VIENNA
+MD	WALDORF
+MD	WALKERSVILLE
+MD	WARWICK
+MD	WASHINGTN GRV
+MD	WASHINGTON GROVE
+MD	W BETHESDA
+MD	WELCOME
+MD	WENONA
+MD	WESTERNPORT
+MD	WEST FRIENDSHIP
+MD	WEST HYATTSVILLE
+MD	WESTLAKE
+MD	WESTMINSTER
+MD	WESTOVER
+MD	WEST RIVER
+MD	W FRIENDSHIP
+MD	WHALEYVILLE
+MD	WHEATON
+MD	WHITEFORD
+MD	WHITE HALL
+MD	WHITE MARSH
+MD	WHITE PLAINS
+MD	W HYATTSVILLE
+MD	WILLARDS
+MD	WILLIAMSPORT
+MD	WINDSOR MILL
+MD	WINGATE
+MD	WITTMAN
+MD	WOODBINE
+MD	WOODLAND BCH
+MD	WOODLAWN
+MD	WOODSBORO
+MD	WOODSTOCK
+MD	WOOLFORD
+MD	WORTON
+MD	WYE MILLS
+ME	ABBOT
+ME	ACTON
+ME	ADAMSTOWN TWP
+ME	ADDISON
+ME	ALBANY TWP
+ME	ALBION
+ME	ALEXANDER
+ME	ALFRED
+ME	ALLAGASH
+ME	ALNA
+ME	ALTON
+ME	AMHERST
+ME	AMITY
+ME	ANDOVER
+ME	ANSON
+ME	APPLETON
+ME	ARGYLE TWP
+ME	ARROWSIC
+ME	ARUNDEL
+ME	ASHLAND
+ME	ATHENS
+ME	ATKINSON
+ME	AUBURN
+ME	AUGUSTA
+ME	AURORA
+ME	AVON
+ME	BAILEY ISLAND
+ME	BAILEYVILLE
+ME	BANCROFT
+ME	BANGOR
+ME	BAR HARBOR
+ME	BARING PLT
+ME	BAR MILLS
+ME	BARNARD TWP
+ME	BASS HARBOR
+ME	BATH
+ME	BEALS
+ME	BEAVER COVE
+ME	BEDDINGTON
+ME	BELFAST
+ME	BELGRADE
+ME	BELGRADE LAKES
+ME	BELGRADE LKS
+ME	BELMONT
+ME	BENEDICTA
+ME	BENTON
+ME	BERNARD
+ME	BERWICK
+ME	BETHEL
+ME	BIDDEFORD
+ME	BIDDEFORD PL
+ME	BIDDEFORD POOL
+ME	BINGHAM
+ME	BIRCH HARBOR
+ME	BIRCH ISLAND
+ME	BLAINE
+ME	BLANCHARD TWP
+ME	BLUE HILL
+ME	BOOTHBAY
+ME	BOOTHBAY HARBOR
+ME	BOOTHBAY HBR
+ME	BOWDOIN
+ME	BOWDOINHAM
+ME	BOWERBANK
+ME	BRADFORD
+ME	BRADLEY
+ME	BREMEN
+ME	BREWER
+ME	BRIDGEWATER
+ME	BRIDGTON
+ME	BRIGHTON PLT
+ME	BRISTOL
+ME	BROOKLIN
+ME	BROOKS
+ME	BROOKSVILLE
+ME	BROOKTON
+ME	BROWNFIELD
+ME	BROWNVILLE
+ME	BROWNVILLE JUNCTION
+ME	BROWNVLLE JCT
+ME	BRUNSWICK
+ME	BRYANT POND
+ME	BUCKFIELD
+ME	BUCKS HARBOR
+ME	BUCKSPORT
+ME	BURLINGTON
+ME	BURNHAM
+ME	BUSTINS IS
+ME	BUSTINS ISLAND
+ME	BUXTON
+ME	BYRON
+ME	CALAIS
+ME	CAMBRIDGE
+ME	CAMDEN
+ME	CANAAN
+ME	CANTON
+ME	CAPE COTTAGE
+ME	CAPE ELIZ
+ME	CAPE ELIZABETH
+ME	CAPE NEDDICK
+ME	CAPE PORPOISE
+ME	CAPITOL IS
+ME	CAPITOL ISLAND
+ME	CARABASET VLY
+ME	CARATUNK
+ME	CARDVILLE
+ME	CARIBOU
+ME	CARMEL
+ME	CARRABASSETT VALLEY
+ME	CARROLL PLT
+ME	CARRYING PLACE TOWN TWP
+ME	CARTHAGE
+ME	CARYNG PL TWP
+ME	CARY PLT
+ME	CASCO
+ME	CASTINE
+ME	CASTLE HILL
+ME	CASWELL
+ME	CENTER LOVELL
+ME	CENTERVILLE
+ME	CHAIN OF PNDS
+ME	CHAIN OF PONDS TWP
+ME	CHAMBERLAIN
+ME	CHAPMAN
+ME	CHARLESTON
+ME	CHARLOTTE
+ME	CHEBEAGUE IS
+ME	CHEBEAGUE ISLAND
+ME	CHELSEA
+ME	CHERRYFIELD
+ME	CHESTER
+ME	CHESTERVILLE
+ME	CHINA
+ME	CHINA VILLAGE
+ME	CHINA VLG
+ME	CLAYTON LAKE
+ME	CLIFF ISLAND
+ME	CLIFTON
+ME	CLINTON
+ME	COBURN GORE
+ME	CODYVILLE PLT
+ME	COLUMBIA
+ME	COLUMBIA FALLS
+ME	COLUMBIA FLS
+ME	CONCORD TWP
+ME	CONNOR TWP
+ME	COOPER
+ME	COOPERS MILLS
+ME	COPLIN PLT
+ME	COREA
+ME	CORINNA
+ME	CORINTH
+ME	CORNISH
+ME	CORNVILLE
+ME	COSTIGAN
+ME	CRANBERRY IS
+ME	CRANBERRY ISLES
+ME	CROSS LAKE TWP
+ME	CROSS LKE TWP
+ME	CROUSEVILLE
+ME	CRYSTAL
+ME	CUMBERLAND
+ME	CUMBERLAND CENTER
+ME	CUMBERLAND FORESIDE
+ME	CUMBERLND CTR
+ME	CUMB FORESIDE
+ME	CUNDYS HARBOR
+ME	CUSHING
+ME	CUSHING IS
+ME	CUSHING ISLAND
+ME	CUTLER
+ME	CYR PLT
+ME	DALLAS PLT
+ME	DAMARISCOTTA
+ME	DANFORTH
+ME	DANVILLE
+ME	DAYTON
+ME	DEAD RIVER TWP
+ME	DEAD RVR TWP
+ME	DEBLOIS
+ME	DEDHAM
+ME	DEER ISLE
+ME	DENMARK
+ME	DENNISTOWN
+ME	DENNYSVILLE
+ME	DERBY
+ME	DETROIT
+ME	DEXTER
+ME	DIAMOND COVE
+ME	DIAMOND IS
+ME	DIAMOND ISLAND
+ME	DIXFIELD
+ME	DIXMONT
+ME	DOVER FOXCROFT
+ME	DOVR FOXCROFT
+ME	DRESDEN
+ME	DREW PLT
+ME	DRYDEN
+ME	DURHAM
+ME	DVR FOXCROFT
+ME	DYER BROOK
+ME	EAGLE LAKE
+ME	EAST ANDOVER
+ME	EAST BALDWIN
+ME	EAST BLUE HILL
+ME	EAST BOOTHBAY
+ME	EASTBROOK
+ME	EAST DIXFIELD
+ME	EAST HOLDEN
+ME	EAST LIVERMORE
+ME	EAST MACHIAS
+ME	EAST MILLINOCKET
+ME	EAST MOXIE TWP
+ME	EAST NEWPORT
+ME	EASTON
+ME	EAST ORLAND
+ME	EAST PARSONSFIELD
+ME	EAST POLAND
+ME	EASTPORT
+ME	EAST VASSALBORO
+ME	EAST WATERBORO
+ME	EAST WILTON
+ME	EAST WINTHROP
+ME	EBEEMEE TWP
+ME	E BLUE HILL
+ME	EDDINGTON
+ME	EDGECOMB
+ME	EDINBURG
+ME	EDMUNDS TWP
+ME	ELIOT
+ME	ELIOTSVLE TWP
+ME	E LIVERMORE
+ME	ELLIOTTSVILLE TWP
+ME	ELLSWORTH
+ME	EMBDEN
+ME	E MILLINOCKET
+ME	E MOXIE TWP
+ME	ENFIELD
+ME	E PARSONFIELD
+ME	ESTCOURT STA
+ME	ESTCOURT STATION
+ME	E STONEHAM
+ME	ETNA
+ME	EUSTIS
+ME	E VASSALBORO
+ME	E WATERBORO
+ME	EXETER
+ME	FAIRFIELD
+ME	FALMOUTH
+ME	FARMINGDALE
+ME	FARMINGTN FLS
+ME	FARMINGTON
+ME	FARMINGTON FALLS
+ME	FAYETTE
+ME	FLETCHERS LANDING TWP
+ME	FLETCHERS LDG
+ME	FORT FAIRFIELD
+ME	FORT KENT
+ME	FORT KENT MILLS
+ME	FRANKFORT
+ME	FRANKLIN
+ME	FREEDOM
+ME	FREEMAN TWP
+ME	FREEPORT
+ME	FRENCHBORO
+ME	FRENCHTOWN TWP
+ME	FRENCHTWN TWP
+ME	FRENCHVILLE
+ME	FRIENDSHIP
+ME	FRYEBURG
+ME	FRYE ISLAND
+ME	FT FAIRFIELD
+ME	FT KENT MLS
+ME	GARDINER
+ME	GARFIELD PLT
+ME	GARLAND
+ME	GEORGETOWN
+ME	GILEAD
+ME	GLENBURN
+ME	GLEN COVE
+ME	GLENWOOD PLT
+ME	GORHAM
+ME	GOULDSBORO
+ME	GRAND ISLE
+ME	GRAND LAKE STREAM
+ME	GRAND LK STRM
+ME	GRAY
+ME	GREAT DIAMOND ISLAND
+ME	GREAT POND
+ME	GREENBUSH
+ME	GREENE
+ME	GREENFIELD TWP
+ME	GREENFLD TWP
+ME	GREENVILLE
+ME	GREENVILLE JUNCTION
+ME	GREENVLLE JCT
+ME	GREENWOOD
+ME	GRT DIA IS
+ME	GUILFORD
+ME	HALLOWELL
+ME	HAMLIN
+ME	HAMMOND
+ME	HAMPDEN
+ME	HANCOCK
+ME	HANOVER
+ME	HARBORSIDE
+ME	HARMONY
+ME	HARPSWELL
+ME	HARRINGTON
+ME	HARRISON
+ME	HARTFORD
+ME	HARTLAND
+ME	HAYNESVILLE
+ME	HEBRON
+ME	HERMON
+ME	HERSEY
+ME	HERSEYTOWN TWP
+ME	HIGHLAND PLT
+ME	HINCKLEY
+ME	HIRAM
+ME	HODGDON
+ME	HOLDEN
+ME	HOLLIS CENTER
+ME	HOPE
+ME	HOULTON
+ME	HOWLAND
+ME	HRSYTOWN TWP
+ME	HUDSON
+ME	HULLS COVE
+ME	INDIAN ISLAND
+ME	INDIAN STREAM
+ME	INDIAN STREAM TWP
+ME	INDIAN TWP
+ME	INDUSTRY
+ME	ISLAND FALLS
+ME	ISLE AU HAUT
+ME	ISLE OF SPRINGS
+ME	ISLESBORO
+ME	ISLESFORD
+ME	IS OF SPRINGS
+ME	JACKMAN
+ME	JACKSON
+ME	JAY
+ME	JEFFERSON
+ME	JHNSN MTN TWP
+ME	JOHNSON MOUNTAIN TWP
+ME	JONESBORO
+ME	JONESPORT
+ME	KENDUSKEAG
+ME	KENNEBUNK
+ME	KENNEBUNKPORT
+ME	KENTS HILL
+ME	KEZAR FALLS
+ME	KINGFIELD
+ME	KINGMAN
+ME	KINGMAN TWP
+ME	KITTERY
+ME	KITTERY POINT
+ME	KNOX
+ME	LAGRANGE
+ME	LAKEVILLE
+ME	LAMBERT LAKE
+ME	LAMOINE
+ME	LANG TWP
+ME	LEBANON
+ME	LEE
+ME	LEEDS
+ME	LEVANT
+ME	LEWISTON
+ME	LEXINGTON TWP
+ME	LIBERTY
+ME	LILLE
+ME	LILY BAY TWP
+ME	LIMERICK
+ME	LIMESTONE
+ME	LIMINGTON
+ME	LINCOLN
+ME	LINCOLN CENTER
+ME	LINCOLN CNTR
+ME	LINCOLNVILLE
+ME	LINCOLNVILLE CENTER
+ME	LINCOLNVL CTR
+ME	LINNEUS
+ME	LISBON
+ME	LISBON FALLS
+ME	LITCHFIELD
+ME	LITTLE DEER ISLE
+ME	LITTLE DIAMOND ISLAND
+ME	LITTLETON
+ME	LIVERMORE
+ME	LIVERMORE FALLS
+ME	LIVERMORE FLS
+ME	L L BEAN CO
+ME	LONG ISLAND
+ME	LONG POND TWP
+ME	LORING CM CTR
+ME	LOVELL
+ME	LOWELL
+ME	LTL DEER IS
+ME	LTLE DIA IS
+ME	LUBEC
+ME	LUDLOW
+ME	LYMAN
+ME	MACHIAS
+ME	MACHIASPORT
+ME	MAC MAHAN
+ME	MACWAHOC PLT
+ME	MADAWASKA
+ME	MADISON
+ME	MADRID TWP
+ME	MANCHESTER
+ME	MAPLETON
+ME	MARIAVILLE
+ME	MARSHFIELD
+ME	MARS HILL
+ME	MASARDIS
+ME	MASON TWP
+ME	MATINICUS
+ME	MATTAMISCONTIS TWP
+ME	MATTAMISC TWP
+ME	MATTAWAMKEAG
+ME	MAXFIELD
+ME	MAYFIELD TWP
+ME	MECHANIC FALLS
+ME	MECHANIC FLS
+ME	MEDDYBEMPS
+ME	MEDFORD
+ME	MEDOMAK
+ME	MEDWAY
+ME	MERCER
+ME	MERE POINT
+ME	MERRILL
+ME	MEXICO
+ME	MILBRIDGE
+ME	MILFORD
+ME	MILLINOCKET
+ME	MILO
+ME	MILTON TWP
+ME	MINOT
+ME	MINTURN
+ME	MOLUNKUS TWP
+ME	MONHEGAN
+ME	MONMOUTH
+ME	MONROE
+ME	MONSON
+ME	MONTICELLO
+ME	MONTVILLE
+ME	MOODY
+ME	MOOSE RIVER
+ME	MORO PLT
+ME	MORRILL
+ME	MOSCOW
+ME	MOUNT CHASE
+ME	MOUNT DESERT
+ME	MOUNT VERNON
+ME	MOXIE GORE
+ME	MOXIE GORE TWP
+ME	NAPLES
+ME	NASHVILLE PLT
+ME	N BRIDGTON
+ME	NEWAGEN
+ME	NEWBURGH
+ME	NEW CANADA
+ME	NEWCASTLE
+ME	NEWFIELD
+ME	NEW GLOUCESTER
+ME	NEW GLOUCESTR
+ME	NEW HARBOR
+ME	NEW LIMERICK
+ME	NEWPORT
+ME	NEW PORTLAND
+ME	NEWRY
+ME	NEW SHARON
+ME	NEW SWEDEN
+ME	NEW VINEYARD
+ME	N FRYEBURG
+ME	N MONMOUTH
+ME	N NEW PORTLAND
+ME	N NEW PORTLND
+ME	NOBLEBORO
+ME	NORRIDGEWOCK
+ME	NORTH ANSON
+ME	NORTH BERWICK
+ME	NORTH BRIDGTON
+ME	NORTHEAST HARBOR
+ME	NORTHEAST HBR
+ME	NORTHFIELD
+ME	NORTH FRYEBURG
+ME	NORTH HAVEN
+ME	NORTH JAY
+ME	NORTH MONMOUTH
+ME	NORTH NEW PORTLAND
+ME	NORTHPORT
+ME	NORTH SHAPLEIGH
+ME	NORTH SULLIVAN
+ME	NORTH TURNER
+ME	NORTH VASSALBORO
+ME	NORTH WATERBORO
+ME	NORTH WATERFORD
+ME	NORTH YARMOUTH
+ME	NORWAY
+ME	N SHAPLEIGH
+ME	N SULLIVAN
+ME	N VASSALBORO
+ME	N WATERBORO
+ME	N WATERFORD
+ME	N YARMOUTH
+ME	OAKFIELD
+ME	OAKLAND
+ME	OCEAN PARK
+ME	OGUNQUIT
+ME	OLAMON
+ME	OLD ORCHARD BEACH
+ME	OLD ORCHD BCH
+ME	OLD TOWN
+ME	OQUOSSOC
+ME	ORIENT
+ME	ORLAND
+ME	ORNEVILLE TWP
+ME	ORONO
+ME	ORRINGTON
+ME	ORRS ISLAND
+ME	OSBORN
+ME	OTIS
+ME	OTISFIELD
+ME	OTTER CREEK
+ME	OWLS HEAD
+ME	OXBOW
+ME	OXFORD
+ME	PALERMO
+ME	PALMYRA
+ME	PARIS
+ME	PARKMAN
+ME	PARLIN PD TWP
+ME	PARLIN POND TWP
+ME	PARSONSFIELD
+ME	PASSADUMKEAG
+ME	PATTEN
+ME	PEAKS ISLAND
+ME	PEJEPSCOT
+ME	PEMAQUID
+ME	PEMBROKE
+ME	PENOBSCOT
+ME	PERHAM
+ME	PERKINS TWP
+ME	PERRY
+ME	PERU
+ME	PHILLIPS
+ME	PHIPPSBURG
+ME	PIERCE POND
+ME	PIERCE POND TWP
+ME	PINE POINT
+ME	PITTSFIELD
+ME	PITTSTN ACDMY
+ME	PITTSTON
+ME	PITTSTON ACADEMY GRANT TWP
+ME	PLEASANT POINT
+ME	PLEASANT PT
+ME	PLEASANT RIDGE PLT
+ME	PLSNT RDG PLT
+ME	PLYMOUTH
+ME	POLAND
+ME	POLAND SPRING
+ME	POND COVE
+ME	PORTAGE
+ME	PORTAGE LAKE
+ME	PORT CLYDE
+ME	PORTER
+ME	PORTLAND
+ME	POWNAL
+ME	PRENTISS TWP
+ME	PRESQUE ISLE
+ME	PRINCETON
+ME	PROSPECT
+ME	PROSPECT HARBOR
+ME	PROSPECT HBR
+ME	QUIMBY
+ME	RANDOLPH
+ME	RANGELEY
+ME	RAYMOND
+ME	READFIELD
+ME	REED PLT
+ME	RICHMOND
+ME	RIPLEY
+ME	ROBBINSTON
+ME	ROCKLAND
+ME	ROCKPORT
+ME	ROCKWOOD
+ME	ROME
+ME	ROQUE BLUFFS
+ME	ROUND POND
+ME	ROXBURY
+ME	RUMFORD
+ME	RUMFORD CENTER
+ME	RUMFORD CTR
+ME	RUMFORD POINT
+ME	SABATTUS
+ME	SACO
+ME	SAINT AGATHA
+ME	SAINT ALBANS
+ME	SAINT DAVID
+ME	SAINT FRANCIS
+ME	SAINT GEORGE
+ME	SALEM TWP
+ME	SALSBURY COVE
+ME	SANDY BAY TWP
+ME	SANDY POINT
+ME	SANDY RIVER PLT
+ME	SANDY RVR PLT
+ME	SANFORD
+ME	SANGERVILLE
+ME	SARGENTVILLE
+ME	SCARBOROUGH
+ME	SEAL COVE
+ME	SEAL HARBOR
+ME	SEARSMONT
+ME	SEARSPORT
+ME	SEBAGO
+ME	SEBAGO LAKE
+ME	SEBASCO ESTATES
+ME	SEBASCO ESTS
+ME	SEBEC
+ME	SEBOEIS PLT
+ME	SEDGWICK
+ME	S FREEPORT
+ME	S GARDINER
+ME	S GOULDSBORO
+ME	SHAPLEIGH
+ME	S HARPSWELL
+ME	SHAWMUT
+ME	SHERIDAN
+ME	SHERMAN
+ME	SHERMAN MILLS
+ME	SHERMAN STA
+ME	SHERMAN STATION
+ME	SHIRLEY MILLS
+ME	SIDNEY
+ME	SILVER RIDGE
+ME	SILVER RIDGE TWP
+ME	SINCLAIR
+ME	SKOWHEGAN
+ME	SMITHFIELD
+ME	SMYRNA MILLS
+ME	SOLON
+ME	SOMERVILLE
+ME	SORRENTO
+ME	SOUTH BERWICK
+ME	SOUTH BRISTOL
+ME	SOUTH CASCO
+ME	SOUTH CHINA
+ME	SOUTH FREEPORT
+ME	SOUTH GARDINER
+ME	SOUTH GOULDSBORO
+ME	SOUTH HARPSWELL
+ME	SOUTH PARIS
+ME	SOUTHPORT
+ME	SOUTH PORTLAND
+ME	SOUTH THOMASTON
+ME	SOUTHWEST HARBOR
+ME	SOUTHWEST HBR
+ME	SOUTH WINDHAM
+ME	S PORTLAND
+ME	SPRINGFIELD
+ME	SPRINGVALE
+ME	SPRUCE HEAD
+ME	SQUIRREL IS
+ME	SQUIRREL ISLAND
+ME	STACYVILLE
+ME	STANDISH
+ME	STARKS
+ME	STEEP FALLS
+ME	STETSON
+ME	STEUBEN
+ME	S THOMASTON
+ME	STILLWATER
+ME	ST JOHN PLT
+ME	STOCKHOLM
+ME	STOCKTON SPGS
+ME	STOCKTON SPRINGS
+ME	STONEHAM
+ME	STONINGTON
+ME	STOW
+ME	STRATTON
+ME	STRONG
+ME	SULLIVAN
+ME	SUMNER
+ME	SUNSET
+ME	SURRY
+ME	SWANS ISLAND
+ME	SWANVILLE
+ME	SWEDEN
+ME	TALMADGE
+ME	TEMPLE
+ME	TENANTS HARBOR
+ME	TENANTS HBR
+ME	THE FORKS PLT
+ME	THOMASTON
+ME	THORNDIKE
+ME	TOPSFIELD
+ME	TOPSHAM
+ME	TRENTON
+ME	TRESCOTT TWP
+ME	TREVETT
+ME	TROY
+ME	TURNER
+ME	UNION
+ME	UNITY
+ME	UPPER FRENCHVILLE
+ME	UPPER FRNCHVL
+ME	UPTON
+ME	VAN BUREN
+ME	VANCEBORO
+ME	VASSALBORO
+ME	VEAZIE
+ME	VERONA ISLAND
+ME	VIENNA
+ME	VINALHAVEN
+ME	WADE
+ME	WAITE
+ME	WALDO
+ME	WALDOBORO
+ME	WALES
+ME	WALLAGRASS
+ME	WALPOLE
+ME	WALTHAM
+ME	WARREN
+ME	WASHBURN
+ME	WASHINGTON
+ME	WATERBORO
+ME	WATERFORD
+ME	WATERVILLE
+ME	WAYNE
+ME	W BOOTHBAY HA
+ME	W BOOTHBAY HARBOR
+ME	W BOOTHBY HBR
+ME	W BOWDOIN
+ME	WEBSTER PLT
+ME	WEEKS MILLS
+ME	WELD
+ME	WELLINGTON
+ME	WELLS
+ME	WESLEY
+ME	WEST BALDWIN
+ME	WEST BATH
+ME	WEST BETHEL
+ME	WEST BOOTHBAY HARBOR
+ME	WESTBROOK
+ME	WEST ENFIELD
+ME	WEST FARMINGTON
+ME	WESTFIELD
+ME	WEST FORKS
+ME	WEST GARDINER
+ME	WEST KENNEBUNK
+ME	WESTMANLAND
+ME	WEST MINOT
+ME	WEST NEWFIELD
+ME	WESTON
+ME	WEST PARIS
+ME	WEST POLAND
+ME	WESTPORT IS
+ME	WESTPORT ISLAND
+ME	WEST ROCKPORT
+ME	WEST SCARBOROUGH
+ME	WEST TREMONT
+ME	W FARMINGTON
+ME	WHITEFIELD
+ME	WHITING
+ME	WHITNEYVILLE
+ME	WILIAMSBG TWP
+ME	WILLIAMSBURG TWP
+ME	WILLIMANTIC
+ME	WILTON
+ME	WINDHAM
+ME	WINDSOR
+ME	WINN
+ME	WINSLOW
+ME	WINTER HARBOR
+ME	WINTERPORT
+ME	WINTERVILLE PLT
+ME	WINTHROP
+ME	WISCASSET
+ME	W KENNEBUNK
+ME	WNTERVLLE PLT
+ME	WOODLAND
+ME	WOODLAND WASHINGTON COUNTY
+ME	WOOLWICH
+ME	W SCARBOROUGH
+ME	WYTOPITLOCK
+ME	YARMOUTH
+ME	YORK
+ME	YORK BEACH
+ME	YORK HARBOR
+MH	EBEYE
+MH	MAJURO
+MI	ACME
+MI	ADA
+MI	ADDISON
+MI	ADDISON TOWNSHIP
+MI	ADDISON TWP
+MI	ADRIAN
+MI	AFTON
+MI	AHMEEK
+MI	AKRON
+MI	ALANSON
+MI	ALBA
+MI	ALBION
+MI	ALDEN
+MI	ALGER
+MI	ALGONAC
+MI	ALLEGAN
+MI	ALLEN
+MI	ALLENDALE
+MI	ALLEN PARK
+MI	ALLENTON
+MI	ALLOUEZ
+MI	ALMA
+MI	ALMONT
+MI	ALPENA
+MI	ALPHA
+MI	ALTO
+MI	AMASA
+MI	ANCHORVILLE
+MI	ANN ARBOR
+MI	APPLEGATE
+MI	ARCADIA
+MI	ARGYLE
+MI	ARMADA
+MI	ARNOLD
+MI	ASHLEY
+MI	ATHENS
+MI	ATLANTA
+MI	ATLANTIC MINE
+MI	ATLAS
+MI	ATTICA
+MI	AUBURN
+MI	AUBURN HILLS
+MI	AU GRES
+MI	AUGUSTA
+MI	AU SABLE
+MI	AU TRAIN
+MI	AVOCA
+MI	AZALIA
+MI	BAD AXE
+MI	BAILEY
+MI	BALDWIN
+MI	BANCROFT
+MI	BANGOR
+MI	BANNISTER
+MI	BARAGA
+MI	BARBEAU
+MI	BARK RIVER
+MI	BARODA
+MI	BARRYTON
+MI	BARTON CITY
+MI	BATH
+MI	BATTLE CREEK
+MI	BAY CITY
+MI	BAY HARBOR
+MI	BAY PORT
+MI	BAY SHORE
+MI	BAY VIEW
+MI	BEAR LAKE
+MI	BEAVER ISLAND
+MI	BEAVERTON
+MI	BEDFORD
+MI	BEECHWOOD
+MI	BELDING
+MI	BELLAIRE
+MI	BELLEVILLE
+MI	BELLEVUE
+MI	BELMONT
+MI	BENTLEY
+MI	BENTON HARBOR
+MI	BENZONIA
+MI	BERGLAND
+MI	BERKLEY
+MI	BERLIN
+MI	BERRIEN CENTER
+MI	BERRIEN CTR
+MI	BERRIEN SPRGS
+MI	BERRIEN SPRINGS
+MI	BERVILLE
+MI	BESSEMER
+MI	BEULAH
+MI	BEVERLY HILLS
+MI	BIG BAY
+MI	BIG RAPIDS
+MI	BINGHAM FARMS
+MI	BIRCH RUN
+MI	BIRMINGHAM
+MI	BITELY
+MI	BLACK RIVER
+MI	BLANCHARD
+MI	BLISSFIELD
+MI	BLOOMFIELD
+MI	BLOOMFIELD HILLS
+MI	BLOOMFIELD TOWNSHIP
+MI	BLOOMFIELD TWP
+MI	BLOOMFIELD VILLAGE
+MI	BLOOMFLD HLS
+MI	BLOOMFLD TWP
+MI	BLOOMINGDALE
+MI	BOIS BLANC IS
+MI	BOIS BLANC ISLAND
+MI	BOON
+MI	BOYNE CITY
+MI	BOYNE FALLS
+MI	BRADLEY
+MI	BRAMPTON
+MI	BRANCH
+MI	BRANT
+MI	BRECKENRIDGE
+MI	BREEDSVILLE
+MI	BRETHREN
+MI	BRIDGEPORT
+MI	BRIDGEWATER
+MI	BRIDGMAN
+MI	BRIGHTON
+MI	BRIMLEY
+MI	BRITTON
+MI	BROCKWAY
+MI	BROHMAN
+MI	BRONSON
+MI	BROOKLYN
+MI	BROWN CITY
+MI	BROWNSTOWN
+MI	BROWNSTOWN TOWNSHIP
+MI	BROWNSTOWN TWP
+MI	BROWNSTWN TWP
+MI	BRUCE
+MI	BRUCE CROSSING
+MI	BRUCE TOWNSHIP
+MI	BRUCE TWP
+MI	BRUCE XING
+MI	BRUNSWICK
+MI	BRUTUS
+MI	BUCHANAN
+MI	BUCKLEY
+MI	BURLINGTON
+MI	BURNIPS
+MI	BURR OAK
+MI	BURT
+MI	BURTCHVILLE
+MI	BURT LAKE
+MI	BURTON
+MI	BYRON
+MI	BYRON CENTER
+MI	CADILLAC
+MI	CADMUS
+MI	CALEDONIA
+MI	CALUMET
+MI	CAMDEN
+MI	CANADIAN LAKE
+MI	CANADIAN LAKES
+MI	CANNONSBURG
+MI	CANTON
+MI	CAPAC
+MI	CARLAND
+MI	CARLETON
+MI	CARNEY
+MI	CARO
+MI	CARP LAKE
+MI	CARROLLTON
+MI	CARSON CITY
+MI	CARSONVILLE
+MI	CASCO
+MI	CASEVILLE
+MI	CASNOVIA
+MI	CASPIAN
+MI	CASS CITY
+MI	CASSOPOLIS
+MI	CEDAR
+MI	CEDAR LAKE
+MI	CEDAR RIVER
+MI	CEDAR SPRINGS
+MI	CEDARVILLE
+MI	CEMENT CITY
+MI	CENTER LINE
+MI	CENTRAL LAKE
+MI	CENTREVILLE
+MI	CERESCO
+MI	CHAMPION
+MI	CHANNING
+MI	CHARLEVOIX
+MI	CHARLOTTE
+MI	CHASE
+MI	CHASSELL
+MI	CHATHAM
+MI	CHEBOYGAN
+MI	CHELSEA
+MI	CHESANING
+MI	CHESTERFIELD
+MI	CHINA
+MI	CHIPPEWA LAKE
+MI	CHRISTMAS
+MI	CLARE
+MI	CLARKLAKE
+MI	CLARKSTON
+MI	CLARKSVILLE
+MI	CLAWSON
+MI	CLAY
+MI	CLAYTON
+MI	CLAYTON TWP
+MI	CLIFFORD
+MI	CLIMAX
+MI	CLINTON
+MI	CLINTON TOWNSHIP
+MI	CLINTON TWP
+MI	CLIO
+MI	CLOVERDALE
+MI	CLYDE
+MI	COHOCTAH
+MI	COLDWATER
+MI	COLEMAN
+MI	COLOMA
+MI	COLON
+MI	COLUMBIAVILLE
+MI	COLUMBUS
+MI	COMINS
+MI	COMMERCE TOWNSHIP
+MI	COMMERCE TWP
+MI	COMSTOCK
+MI	COMSTOCK PARK
+MI	CONCORD
+MI	CONKLIN
+MI	CONSTANTINE
+MI	CONWAY
+MI	COOKS
+MI	COOPERSVILLE
+MI	COPEMISH
+MI	COPPER CITY
+MI	COPPER HARBOR
+MI	CORAL
+MI	CORNELL
+MI	CORUNNA
+MI	COTTRELLVILLE
+MI	COVERT
+MI	COVINGTON
+MI	CROSS VILLAGE
+MI	CROSWELL
+MI	CRYSTAL
+MI	CRYSTAL FALLS
+MI	CURRAN
+MI	CURTIS
+MI	CUSTER
+MI	DAFTER
+MI	DAGGETT
+MI	DANSVILLE
+MI	DAVISBURG
+MI	DAVISON
+MI	DEARBORN
+MI	DEARBORN HEIGHTS
+MI	DEARBORN HTS
+MI	DECATUR
+MI	DECKER
+MI	DECKERVILLE
+MI	DEERFIELD
+MI	DEERTON
+MI	DEFORD
+MI	DELTON
+MI	DE TOUR VILLAGE
+MI	DE TOUR VLLE
+MI	DETROIT
+MI	DEWITT
+MI	DE WITT
+MI	DEXTER
+MI	DIMONDALE
+MI	DODGEVILLE
+MI	DOLLAR BAY
+MI	DORR
+MI	DOUGLAS
+MI	DOWAGIAC
+MI	DOWLING
+MI	DRAYTON PLAINS
+MI	DRAYTON PLNS
+MI	DRUMMOND IS
+MI	DRUMMOND ISLAND
+MI	DRYDEN
+MI	DUNDEE
+MI	DURAND
+MI	DUTTON
+MI	EAGLE
+MI	EAGLE HARBOR
+MI	EAGLE RIVER
+MI	EAST CHINA
+MI	EAST DETROIT
+MI	EAST GRAND RA
+MI	EAST GRAND RAPIDS
+MI	EAST JORDAN
+MI	EASTLAKE
+MI	EAST LANSING
+MI	EAST LEROY
+MI	EASTPOINTE
+MI	EASTPORT
+MI	EAST TAWAS
+MI	EATON RAPIDS
+MI	EAU CLAIRE
+MI	EBEN JUNCTION
+MI	ECKERMAN
+MI	ECORSE
+MI	EDENVILLE
+MI	EDMORE
+MI	EDWARDSBURG
+MI	ELBERTA
+MI	ELK RAPIDS
+MI	ELKTON
+MI	ELLSWORTH
+MI	ELM HALL
+MI	ELMIRA
+MI	ELSIE
+MI	ELWELL
+MI	EMMETT
+MI	EMPIRE
+MI	ENGADINE
+MI	ERIE
+MI	ESCANABA
+MI	ESSEXVILLE
+MI	EUREKA
+MI	EVART
+MI	EWEN
+MI	FAIRGROVE
+MI	FAIR HAVEN
+MI	FAIRVIEW
+MI	FALMOUTH
+MI	FARGO
+MI	FARMINGTN HLS
+MI	FARMINGTON
+MI	FARMINGTON HILLS
+MI	FARMINGTON HLS
+MI	FARWELL
+MI	FELCH
+MI	FENNVILLE
+MI	FENTON
+MI	FENWICK
+MI	FERNDALE
+MI	FERRYSBURG
+MI	FIBRE
+MI	FIFE LAKE
+MI	FILER CITY
+MI	FILION
+MI	FLAT ROCK
+MI	FLINT
+MI	FLUSHING
+MI	FORESTVILLE
+MI	FORT GRATIOT
+MI	FOSTER CITY
+MI	FOSTORIA
+MI	FOUNTAIN
+MI	FOWLER
+MI	FOWLERVILLE
+MI	FRANKENMUTH
+MI	FRANKFORT
+MI	FRANKLIN
+MI	FRASER
+MI	FREDERIC
+MI	FREELAND
+MI	FREEPORT
+MI	FREE SOIL
+MI	FREMONT
+MI	FRENCHTOWN
+MI	FRONTIER
+MI	FRUITPORT
+MI	FULTON
+MI	GAASTRA
+MI	GAGETOWN
+MI	GAINES
+MI	GALESBURG
+MI	GALIEN
+MI	GARDEN
+MI	GARDEN CITY
+MI	GAY
+MI	GAYLORD
+MI	GENESEE
+MI	GEORGETOWN TOWNSHIP
+MI	GEORGETOWN TP
+MI	GERMFASK
+MI	GIBRALTAR
+MI	GILFORD
+MI	GLADSTONE
+MI	GLADWIN
+MI	GLEN ARBOR
+MI	GLENDORA
+MI	GLENN
+MI	GLENNIE
+MI	GOBLES
+MI	GOETZVILLE
+MI	GOODELLS
+MI	GOOD HART
+MI	GOODISON
+MI	GOODRICH
+MI	GOULD CITY
+MI	GOWEN
+MI	GRAND BEACH
+MI	GRAND BLANC
+MI	GRAND HAVEN
+MI	GRAND JCT
+MI	GRAND JUNCTION
+MI	GRAND LEDGE
+MI	GRAND MARAIS
+MI	GRAND RAPIDS
+MI	GRANDVILLE
+MI	GRANT
+MI	GRANT TOWNSHIP
+MI	GRANT TWP
+MI	GRASS LAKE
+MI	GRAWN
+MI	GRAYLING
+MI	GREENBUSH
+MI	GREENLAND
+MI	GREENVILLE
+MI	GREENWOOD
+MI	GREGORY
+MI	GROSSE ILE
+MI	GROSSE POINTE
+MI	GROSSE POINTE FARMS
+MI	GROSSE POINTE PARK
+MI	GROSSE POINTE SHORES
+MI	GROSSE POINTE WOODS
+MI	GULLIVER
+MI	GWINN
+MI	HADLEY
+MI	HAGAR SHORES
+MI	HALE
+MI	HAMBURG
+MI	HAMBURG TWP
+MI	HAMILTON
+MI	HAMTRAMCK
+MI	HANCOCK
+MI	HANOVER
+MI	HARBERT
+MI	HARBOR BEACH
+MI	HARBOR POINT
+MI	HARBOR SPGS
+MI	HARBOR SPRINGS
+MI	HARDWOOD
+MI	HARPER WOODS
+MI	HARRIETTA
+MI	HARRIS
+MI	HARRISON
+MI	HARRISON TOWNSHIP
+MI	HARRISON TWP
+MI	HARRISVILLE
+MI	HARSENS IS
+MI	HARSENS ISLAND
+MI	HART
+MI	HARTFORD
+MI	HARTLAND
+MI	HARVEY
+MI	HASLETT
+MI	HASTINGS
+MI	HAWKS
+MI	HAZEL PARK
+MI	HEMLOCK
+MI	HENDERSON
+MI	HERMANSVILLE
+MI	HERRON
+MI	HERSEY
+MI	HESPERIA
+MI	HESSEL
+MI	HGHTN LK HTS
+MI	HICKORY CORNERS
+MI	HICKORY CRNRS
+MI	HIGGINS LAKE
+MI	HIGHLAND
+MI	HIGHLAND PARK
+MI	HILLMAN
+MI	HILLSDALE
+MI	HOLLAND
+MI	HOLLY
+MI	HOLT
+MI	HOLTON
+MI	HOMER
+MI	HONOR
+MI	HOPE
+MI	HOPKINS
+MI	HORTON
+MI	HOUGHTON
+MI	HOUGHTON LAKE
+MI	HOUGHTON LAKE HEIGHTS
+MI	HOWARD CITY
+MI	HOWELL
+MI	HOXEYVILLE
+MI	HTN LK HGHTS
+MI	HUBBARD LAKE
+MI	HUBBARDSTON
+MI	HUBBELL
+MI	HUDSON
+MI	HUDSONVILLE
+MI	HULBERT
+MI	HUNTINGTN WDS
+MI	HUNTINGTON WOODS
+MI	IDA
+MI	IDLEWILD
+MI	IMLAY CITY
+MI	INDEPENDENCE
+MI	INDIAN RIVER
+MI	INGALLS
+MI	INKSTER
+MI	INTERLOCHEN
+MI	IONIA
+MI	IRA
+MI	IRON MOUNTAIN
+MI	IRON RIVER
+MI	IRONS
+MI	IRONWOOD
+MI	ISHPEMING
+MI	ITHACA
+MI	JACKSON
+MI	JAMESTOWN
+MI	JASPER
+MI	JEDDO
+MI	JENISON
+MI	JEROME
+MI	JOHANNESBURG
+MI	JONES
+MI	JONESVILLE
+MI	KALAMAZOO
+MI	KALEVA
+MI	KALKASKA
+MI	KARLIN
+MI	KAWKAWLIN
+MI	KEARSARGE
+MI	KEEGO HARBOR
+MI	KENDALL
+MI	KENOCKEE
+MI	KENT CITY
+MI	KENTON
+MI	KENTWOOD
+MI	KEWADIN
+MI	KEWEENAW BAY
+MI	KIMBALL
+MI	KINCHELOE
+MI	KINDE
+MI	KINGSFORD
+MI	KINGSLEY
+MI	KINGSTON
+MI	KINROSS
+MI	LACHINE
+MI	LACOTA
+MI	LAINGSBURG
+MI	LAKE
+MI	LAKE ANGELUS
+MI	LAKE ANN
+MI	LAKE CITY
+MI	LAKE GEORGE
+MI	LAKE ISABELLA
+MI	LAKELAND
+MI	LAKE LEELANAU
+MI	LAKE LINDEN
+MI	LAKE ODESSA
+MI	LAKE ORION
+MI	LAKEPORT
+MI	LAKESIDE
+MI	LAKE STATION
+MI	LAKEVIEW
+MI	LAKEVILLE
+MI	LAMBERTVILLE
+MI	LAMONT
+MI	LANSE
+MI	LANSING
+MI	LAPEER
+MI	LA SALLE
+MI	LATHRUP VILLAGE
+MI	LATHRUP VLG
+MI	LAURIUM
+MI	LAWRENCE
+MI	LAWTON
+MI	LELAND
+MI	LENNON
+MI	LENOX
+MI	LEONARD
+MI	LEONIDAS
+MI	LEROY
+MI	LESLIE
+MI	LEVERING
+MI	LEWISTON
+MI	LEXINGTON
+MI	LIMESTONE
+MI	LINCOLN
+MI	LINCOLN PARK
+MI	LINDEN
+MI	LINWOOD
+MI	LITCHFIELD
+MI	LITTLE LAKE
+MI	LIVONIA
+MI	LONG LAKE
+MI	LORETTO
+MI	LOWELL
+MI	LUDINGTON
+MI	LUM
+MI	LUNA PIER
+MI	LUPTON
+MI	LUTHER
+MI	LUZERNE
+MI	LYNN
+MI	LYONS
+MI	MACATAWA
+MI	MACKINAC IS
+MI	MACKINAC ISLAND
+MI	MACKINAW CITY
+MI	MACOMB
+MI	MADISON HEIGHTS
+MI	MADISON HTS
+MI	MANCELONA
+MI	MANCHESTER
+MI	MANISTEE
+MI	MANISTIQUE
+MI	MANITOU BEACH
+MI	MANTON
+MI	MAPLE CITY
+MI	MAPLE RAPIDS
+MI	MARCELLUS
+MI	MARENISCO
+MI	MARINE CITY
+MI	MARION
+MI	MARLETTE
+MI	MARNE
+MI	MARQUETTE
+MI	MARSHALL
+MI	MARTIN
+MI	MARYSVILLE
+MI	MASON
+MI	MASS CITY
+MI	MATTAWAN
+MI	MAYBEE
+MI	MAYFIELD
+MI	MAYVILLE
+MI	MC BAIN
+MI	MCBRIDES
+MI	MC MILLAN
+MI	MEARS
+MI	MECOSTA
+MI	MELVIN
+MI	MELVINDALE
+MI	MEMPHIS
+MI	MENDON
+MI	MENOMINEE
+MI	MERRILL
+MI	MERRITT
+MI	MERRIWEATHER
+MI	MESICK
+MI	METAMORA
+MI	MICHIANA
+MI	MICHIGAMME
+MI	MICHIGAN CENTER
+MI	MICHIGAN CTR
+MI	MICHIGAN METROPLEX
+MI	MIDDLETON
+MI	MIDDLEVILLE
+MI	MIDLAND
+MI	MIKADO
+MI	MILAN
+MI	MILFORD
+MI	MILLBROOK
+MI	MILLERSBURG
+MI	MILLINGTON
+MI	MI METRO
+MI	MINDEN CITY
+MI	MIO
+MI	MOHAWK
+MI	MOLINE
+MI	MONROE
+MI	MONTAGUE
+MI	MONTGOMERY
+MI	MONTROSE
+MI	MOORESTOWN
+MI	MORAN
+MI	MORENCI
+MI	MORLEY
+MI	MORRICE
+MI	MOSCOW
+MI	MOSHERVILLE
+MI	MOTTVILLE
+MI	MOUNT CLEMENS
+MI	MOUNT MORRIS
+MI	MOUNT PLEASANT
+MI	MT PLEASANT
+MI	MUIR
+MI	MULLETT LAKE
+MI	MULLIKEN
+MI	MUNGER
+MI	MUNISING
+MI	MUNITH
+MI	MUSKEGON
+MI	MUSKEGON HEIGHTS
+MI	MUSKEGON HTS
+MI	MUSSEY
+MI	NADEAU
+MI	NAHMA
+MI	NAPOLEON
+MI	NASHVILLE
+MI	NATIONAL CITY
+MI	NATIONAL MINE
+MI	NAUBINWAY
+MI	NAZARETH
+MI	NEGAUNEE
+MI	NEWAYGO
+MI	NEW BALTIMORE
+MI	NEWBERRY
+MI	NEW BOSTON
+MI	NEW BUFFALO
+MI	NEW ERA
+MI	NEW HAVEN
+MI	NEW HUDSON
+MI	NEW LOTHROP
+MI	NEWPORT
+MI	NEW TROY
+MI	NILES
+MI	NISULA
+MI	N LAKEPORT
+MI	N MUSKEGON
+MI	NORTH ADAMS
+MI	NORTH BRANCH
+MI	NORTH LAKEPORT
+MI	NORTH MUSKEGON
+MI	NORTHPORT
+MI	NORTH STAR
+MI	NORTH STREET
+MI	NORTHVILLE
+MI	NORTHVILLE TOWNSHIP
+MI	NORTHVILLE TW
+MI	NORTON SHORES
+MI	NORVELL
+MI	NORWAY
+MI	NOTTAWA
+MI	NOVI
+MI	NUNICA
+MI	OAK GROVE
+MI	OAKLAND
+MI	OAKLAND TOWNSHIP
+MI	OAKLAND TWP
+MI	OAKLEY
+MI	OAK PARK
+MI	OCQUEOC
+MI	ODEN
+MI	OKEMOS
+MI	OLD MISSION
+MI	OLIVET
+MI	OMENA
+MI	OMER
+MI	ONAWAY
+MI	ONEKAMA
+MI	ONONDAGA
+MI	ONSTED
+MI	ONTONAGON
+MI	ORCHARD LAKE
+MI	ORION
+MI	ORLEANS
+MI	ORTONVILLE
+MI	OSCODA
+MI	OSHTEMO
+MI	OSSEO
+MI	OSSINEKE
+MI	OTISVILLE
+MI	OTSEGO
+MI	OTTAWA LAKE
+MI	OTTER LAKE
+MI	OVID
+MI	OWENDALE
+MI	OWOSSO
+MI	OXFORD
+MI	PAINESDALE
+MI	PALMER
+MI	PALMS
+MI	PALMYRA
+MI	PALO
+MI	PARADISE
+MI	PARCHMENT
+MI	PARIS
+MI	PARMA
+MI	PAW PAW
+MI	PEARL BEACH
+MI	PECK
+MI	PELKIE
+MI	PELLSTON
+MI	PENTWATER
+MI	PERKINS
+MI	PERRINTON
+MI	PERRONVILLE
+MI	PERRY
+MI	PESHAWBESTOWN
+MI	PETERSBURG
+MI	PETOSKEY
+MI	PEWAMO
+MI	PICKFORD
+MI	PIERPORT
+MI	PIERSON
+MI	PIGEON
+MI	PINCKNEY
+MI	PINCONNING
+MI	PITTSFORD
+MI	PLAINWELL
+MI	PLEASANT LAKE
+MI	PLEASANT RDG
+MI	PLEASANT RIDGE
+MI	PLYMOUTH
+MI	POINT AUX PIN
+MI	POINTE AUX PINS
+MI	POMPEII
+MI	PONTIAC
+MI	PORTAGE
+MI	PORT AUSTIN
+MI	PORT ELIZABETH
+MI	PORT HOPE
+MI	PORT HURON
+MI	PORTLAND
+MI	PORT SANILAC
+MI	POSEN
+MI	POTTERVILLE
+MI	POWERS
+MI	PRATTVILLE
+MI	PRESCOTT
+MI	PRESQUE ISLE
+MI	PRINCETON
+MI	PRUDENVILLE
+MI	PT ELIZABETH
+MI	PULLMAN
+MI	QUINCY
+MI	QUINNESEC
+MI	RACO
+MI	RAISINVILLE TWP
+MI	RAISINVL TWP
+MI	RALPH
+MI	RAMSAY
+MI	RAPID CITY
+MI	RAPID RIVER
+MI	RAVENNA
+MI	RAY
+MI	RAY TWP
+MI	READING
+MI	REDFORD
+MI	REED CITY
+MI	REESE
+MI	REMUS
+MI	REPUBLIC
+MI	RHODES
+MI	RICHLAND
+MI	RICHMOND
+MI	RICHVILLE
+MI	RIDGEWAY
+MI	RIGA
+MI	RILEY
+MI	RIVERDALE
+MI	RIVER ROUGE
+MI	RIVERSIDE
+MI	RIVERVIEW
+MI	RIVES JCT
+MI	RIVES JUNCTION
+MI	ROCHESTER
+MI	ROCHESTER HILLS
+MI	ROCHESTER HLS
+MI	ROCK
+MI	ROCKFORD
+MI	ROCKLAND
+MI	ROCKWOOD
+MI	RODNEY
+MI	ROGERS CITY
+MI	ROLLIN
+MI	ROMEO
+MI	ROMULUS
+MI	ROOS
+MI	ROSCOMMON
+MI	ROSEBUSH
+MI	ROSE CITY
+MI	ROSEVILLE
+MI	ROTHBURY
+MI	ROYAL OAK
+MI	RUBY
+MI	RUDYARD
+MI	RUMELY
+MI	RUSSELL IS
+MI	RUSSELL ISLAND
+MI	RUTH
+MI	SAGINAW
+MI	SAGOLA
+MI	SAINT CHARLES
+MI	SAINT CLAIR
+MI	SAINT CLAIR SHORES
+MI	SAINT HELEN
+MI	SAINT IGNACE
+MI	SAINT JOHNS
+MI	SAINT JOSEPH
+MI	SAINT LOUIS
+MI	SALEM
+MI	SALINE
+MI	SAMARIA
+MI	SAND CREEK
+MI	SAND LAKE
+MI	SAND POINT
+MI	SANDUSKY
+MI	SANFORD
+MI	SARANAC
+MI	SAUGATUCK
+MI	SAULT SAINTE MARIE
+MI	SAULT S MARIE
+MI	SAWYER
+MI	S BOARDMAN
+MI	SCHAFFER
+MI	SCHOOLCRAFT
+MI	SCOTTS
+MI	SCOTTVILLE
+MI	SEARS
+MI	SEBEWAING
+MI	SELFRIDGE
+MI	SELFRIDGE ANGB
+MI	SENECA
+MI	SENEY
+MI	SHAFTSBURG
+MI	SHELBY
+MI	SHELBY TOWNSHIP
+MI	SHELBY TWP
+MI	SHELBYVILLE
+MI	SHEPHERD
+MI	SHERIDAN
+MI	SHERWOOD
+MI	SHINGLETON
+MI	SIDNAW
+MI	SIDNEY
+MI	SILVER LAKE
+MI	SILVERWOOD
+MI	SIX LAKES
+MI	SKANDIA
+MI	SKANEE
+MI	SMITHS CREEK
+MI	SMYRNA
+MI	SNOVER
+MI	SODUS
+MI	SOMERSET
+MI	SOMERSET CENTER
+MI	SOMERSET CTR
+MI	SOUTH BOARDMAN
+MI	SOUTH BRANCH
+MI	SOUTHFIELD
+MI	SOUTHGATE
+MI	SOUTH HAVEN
+MI	SOUTH LYON
+MI	SOUTH RANGE
+MI	SOUTH ROCKWOOD
+MI	SPALDING
+MI	SPARTA
+MI	SPRING ARBOR
+MI	SPRINGFIELD
+MI	SPRINGFIELD TOWNSHIP
+MI	SPRINGFLD TWP
+MI	SPRING LAKE
+MI	SPRINGPORT
+MI	SPRUCE
+MI	S ROCKWOOD
+MI	STALWART
+MI	STAMBAUGH
+MI	STANDISH
+MI	STANTON
+MI	STANWOOD
+MI	ST CLAIR SHRS
+MI	ST CLR SHORES
+MI	STEPHENSON
+MI	STERLING
+MI	STERLING HEIGHTS
+MI	STERLING HTS
+MI	STEVENSVILLE
+MI	STOCKBRIDGE
+MI	STRONACH
+MI	STRONGS
+MI	STURGIS
+MI	SUMNER
+MI	SUMPTER TWP
+MI	SUNFIELD
+MI	SUPERIOR TOWNSHIP
+MI	SUPERIOR TWP
+MI	SUTTONS BAY
+MI	SWARTZ CREEK
+MI	SYLVAN BEACH
+MI	SYLVAN LAKE
+MI	TAWAS CITY
+MI	TAYLOR
+MI	TECUMSEH
+MI	TEKONSHA
+MI	TEMPERANCE
+MI	THOMPSON
+MI	THOMPSONVILLE
+MI	THREE OAKS
+MI	THREE RIVERS
+MI	TIPTON
+MI	TOIVOLA
+MI	TOPINABEE
+MI	TOWER
+MI	TRAUNIK
+MI	TRAVERSE CITY
+MI	TREETOPS VIL
+MI	TREETOPS VILLAGE
+MI	TRENARY
+MI	TRENTON
+MI	TROUT CREEK
+MI	TROUT LAKE
+MI	TROY
+MI	TRUFANT
+MI	TURNER
+MI	TUSCOLA
+MI	TUSTIN
+MI	TWINING
+MI	TWIN LAKE
+MI	UBLY
+MI	UNION
+MI	UNION CITY
+MI	UNION LAKE
+MI	UNION PIER
+MI	UNIONVILLE
+MI	UNIV CTR
+MI	UNIVERSITY CENTER
+MI	UTICA
+MI	VAN BUREN TWP
+MI	VANDALIA
+MI	VANDERBILT
+MI	VASSAR
+MI	VERMONTVILLE
+MI	VERNON
+MI	VERNON CITY
+MI	VESTABURG
+MI	VICKSBURG
+MI	VULCAN
+MI	WAKEFIELD
+MI	WALDRON
+MI	WALES
+MI	WALHALLA
+MI	WALKER
+MI	WALKERVILLE
+MI	WALLACE
+MI	WALLED LAKE
+MI	WALLOON LAKE
+MI	WARREN
+MI	WASHINGTN TWP
+MI	WASHINGTON
+MI	WASHINGTON TOWNSHIP
+MI	WASHINGTON TWP
+MI	WATERFORD
+MI	WATERFORD TOWNSHIP
+MI	WATERS
+MI	WATERSMEET
+MI	WATERVLIET
+MI	WATTON
+MI	WAYLAND
+MI	WAYNE
+MI	W BLOOMFIELD
+MI	WEBBERVILLE
+MI	WEIDMAN
+MI	WELLS
+MI	WELLSTON
+MI	WEQUETONSING
+MI	WEST BLOOMFIELD
+MI	WEST BRANCH
+MI	WESTLAND
+MI	WEST OLIVE
+MI	WESTON
+MI	WESTPHALIA
+MI	WETMORE
+MI	WHEELER
+MI	WHITE CLOUD
+MI	WHITEHALL
+MI	WHITE LAKE
+MI	WHITE PIGEON
+MI	WHITE PINE
+MI	WHITMORE LAKE
+MI	WHITTAKER
+MI	WHITTEMORE
+MI	WILLIAMSBURG
+MI	WILLIAMSTON
+MI	WILLIS
+MI	WILSON
+MI	WINN
+MI	WIXOM
+MI	WOLVERINE
+MI	WOLVERINE LAKE
+MI	WOLVERINE LK
+MI	WOODHAVEN
+MI	WOODLAND
+MI	WYANDOTTE
+MI	WYOMING
+MI	YALE
+MI	YPSILANTI
+MI	ZEELAND
+MN	ADA
+MN	ADAMS
+MN	ADOLPH
+MN	ADRIAN
+MN	AFTON
+MN	AH GWAH CHING
+MN	AITKIN
+MN	AKELEY
+MN	ALBANY
+MN	ALBERTA
+MN	ALBERT LEA
+MN	ALBERTVILLE
+MN	ALBORN
+MN	ALDEN
+MN	ALDRICH
+MN	ALEXANDRIA
+MN	ALMELUND
+MN	ALPHA
+MN	ALTURA
+MN	ALVARADO
+MN	AMBOY
+MN	AMIRET
+MN	ANDOVER
+MN	ANGLE INLET
+MN	ANGORA
+MN	ANGUS
+MN	ANNANDALE
+MN	ANOKA
+MN	APPLETON
+MN	APPLE VALLEY
+MN	ARCO
+MN	ARDEN HILLS
+MN	ARGYLE
+MN	ARLINGTON
+MN	ASHBY
+MN	ASKOV
+MN	ATWATER
+MN	AUDUBON
+MN	AURORA
+MN	AUSTIN
+MN	AVOCA
+MN	AVON
+MN	BABBITT
+MN	BACKUS
+MN	BADGER
+MN	BAGLEY
+MN	BAKER
+MN	BALATON
+MN	BARNESVILLE
+MN	BARNUM
+MN	BARRETT
+MN	BARRY
+MN	BATTLE LAKE
+MN	BAUDETTE
+MN	BAXTER
+MN	BAYPORT
+MN	BEARDSLEY
+MN	BEAVER BAY
+MN	BEAVER CREEK
+MN	BECIDA
+MN	BECKER
+MN	BEJOU
+MN	BELGRADE
+MN	BELLCHESTER
+MN	BELLE PLAINE
+MN	BELLINGHAM
+MN	BELTRAMI
+MN	BELVIEW
+MN	BEMIDJI
+MN	BENA
+MN	BENEDICT
+MN	BENSON
+MN	BEROUN
+MN	BERTHA
+MN	BETHEL
+MN	BIGELOW
+MN	BIG FALLS
+MN	BIGFORK
+MN	BIG LAKE
+MN	BINGHAM LAKE
+MN	BIRCHDALE
+MN	BIRD ISLAND
+MN	BIWABIK
+MN	BLACKDUCK
+MN	BLAINE
+MN	BLMNG PRAIRIE
+MN	BLOMKEST
+MN	BLOOMING PRAIRIE
+MN	BLOOMINGTON
+MN	BLUE EARTH
+MN	BLUFFTON
+MN	BOCK
+MN	BORUP
+MN	BOVEY
+MN	BOWLUS
+MN	BOWSTRING
+MN	BOYD
+MN	BOY RIVER
+MN	BRAHAM
+MN	BRAINERD
+MN	BRANDON
+MN	BRECKENRIDGE
+MN	BREEZY POINT
+MN	BREWSTER
+MN	BRICELYN
+MN	BRIMSON
+MN	BRITT
+MN	BROOKLYN CENTER
+MN	BROOKLYN CTR
+MN	BROOKLYN PARK
+MN	BROOK PARK
+MN	BROOKS
+MN	BROOKSTON
+MN	BROOTEN
+MN	BROWERVILLE
+MN	BROWNSDALE
+MN	BROWNS VALLEY
+MN	BROWNSVILLE
+MN	BROWNTON
+MN	BRUNO
+MN	BUCKMAN
+MN	BUFFALO
+MN	BUFFALO LAKE
+MN	BUHL
+MN	BURNS TOWNSHIP
+MN	BURNS TWNSHP
+MN	BURNSVILLE
+MN	BURTRUM
+MN	BUTTERFIELD
+MN	BUYCK
+MN	BYRON
+MN	CALEDONIA
+MN	CALLAWAY
+MN	CALUMET
+MN	CAMBRIDGE
+MN	CAMPBELL
+MN	CANBY
+MN	CANNON FALLS
+MN	CANTON
+MN	CANYON
+MN	CARLISLE
+MN	CARLOS
+MN	CARLTON
+MN	CARVER
+MN	CASS LAKE
+MN	CASTLE ROCK
+MN	CEDAR
+MN	CEDAR EAST BETHEL
+MN	CEDAR E BETHL
+MN	CENTER CITY
+MN	CENTERVILLE
+MN	CEYLON
+MN	CHAMPLIN
+MN	CHANDLER
+MN	CHANHASSEN
+MN	CHASKA
+MN	CHATFIELD
+MN	CHISAGO CITY
+MN	CHISHOLM
+MN	CHOKIO
+MN	CIRCLE PINES
+MN	CLARA CITY
+MN	CLAREMONT
+MN	CLARISSA
+MN	CLARKFIELD
+MN	CLARKS GROVE
+MN	CLEARBROOK
+MN	CLEAR LAKE
+MN	CLEARWATER
+MN	CLEMENTS
+MN	CLEVELAND
+MN	CLIMAX
+MN	CLINTON
+MN	CLITHERALL
+MN	CLONTARF
+MN	CLOQUET
+MN	COBDEN
+MN	COHASSET
+MN	COKATO
+MN	COLD SPRING
+MN	COLERAINE
+MN	COLLEGEVILLE
+MN	COLOGNE
+MN	COLUMBIA HEIGHTS
+MN	COLUMBIA HTS
+MN	COLUMBUS
+MN	COMFREY
+MN	COMSTOCK
+MN	CONGER
+MN	COOK
+MN	COON RAPIDS
+MN	CORCORAN
+MN	CORRELL
+MN	COSMOS
+MN	COTTAGE GROVE
+MN	COTTON
+MN	COTTONWOOD
+MN	COURTLAND
+MN	CRANE LAKE
+MN	CROMWELL
+MN	CROOKSTON
+MN	CROSBY
+MN	CROSSLAKE
+MN	CROWN COLLEGE
+MN	CRYSTAL
+MN	CRYSTAL BAY
+MN	CULVER
+MN	CURRIE
+MN	CUSHING
+MN	CYRUS
+MN	DAKOTA
+MN	DALBO
+MN	DALTON
+MN	DANUBE
+MN	DANVERS
+MN	DARFUR
+MN	DARWIN
+MN	DASSEL
+MN	DAWSON
+MN	DAYTON
+MN	DEER CREEK
+MN	DEER RIVER
+MN	DEERWOOD
+MN	DE GRAFF
+MN	DELANO
+MN	DELAVAN
+MN	DELHI
+MN	DELLWOOD
+MN	DENNISON
+MN	DENT
+MN	DETROIT LAKES
+MN	DEXTER
+MN	DILWORTH
+MN	DLTH FED PRIS
+MN	DODGE CENTER
+MN	DONALDSON
+MN	DONNELLY
+MN	DORAN
+MN	DOVER
+MN	DOVRAY
+MN	DOWNER
+MN	DULUTH
+MN	DULUTH FEDERAL PRISON
+MN	DUMONT
+MN	DUNDAS
+MN	DUNDEE
+MN	DUNNELL
+MN	DUQUETTE
+MN	EAGAN
+MN	EAGLE BEND
+MN	EAGLE LAKE
+MN	EAST BETHEL
+MN	EAST GRAND FORKS
+MN	EAST GULL LAKE
+MN	EASTON
+MN	ECHO
+MN	EDEN PRAIRIE
+MN	EDEN VALLEY
+MN	EDGERTON
+MN	EDINA
+MN	EFFIE
+MN	E GRAND FORKS
+MN	E GULL LAKE
+MN	EITZEN
+MN	ELBOW LAKE
+MN	ELDRED
+MN	ELGIN
+MN	ELIZABETH
+MN	ELKO
+MN	ELK RIVER
+MN	ELKTON
+MN	ELLENDALE
+MN	ELLSWORTH
+MN	ELMORE
+MN	ELROSA
+MN	ELY
+MN	ELYSIAN
+MN	EMBARRASS
+MN	EMILY
+MN	EMMONS
+MN	ERHARD
+MN	ERSKINE
+MN	ESKO
+MN	ESSIG
+MN	EUCLID
+MN	EVAN
+MN	EVANSVILLE
+MN	EVELETH
+MN	EXCELSIOR
+MN	EYOTA
+MN	FAIRFAX
+MN	FAIRMONT
+MN	FALCON HEIGHTS
+MN	FALCON HGTS
+MN	FARIBAULT
+MN	FARMINGTON
+MN	FARWELL
+MN	FDCI
+MN	FEDERAL DAM
+MN	FELTON
+MN	FERGUS FALLS
+MN	FERTILE
+MN	FIFTY LAKES
+MN	FINLAND
+MN	FINLAYSON
+MN	FISHER
+MN	FLENSBURG
+MN	FLOM
+MN	FLOODWOOD
+MN	FLORENCE
+MN	FOLEY
+MN	FORBES
+MN	FOREST LAKE
+MN	FORESTON
+MN	FORT RIPLEY
+MN	FORT SNELLING
+MN	FOSSTON
+MN	FOUNTAIN
+MN	FOXHOME
+MN	FRANKLIN
+MN	FRAZEE
+MN	FREEBORN
+MN	FREEPORT
+MN	FRIDLEY
+MN	FRONTENAC
+MN	FROST
+MN	FULDA
+MN	GARDEN CITY
+MN	GARFIELD
+MN	GARRISON
+MN	GARVIN
+MN	GARY
+MN	GATZKE
+MN	GAYLORD
+MN	GENEVA
+MN	GEORGETOWN
+MN	GHEEN
+MN	GHENT
+MN	GIBBON
+MN	GILBERT
+MN	GILMAN
+MN	GLENCOE
+MN	GLENVILLE
+MN	GLENWOOD
+MN	GLYNDON
+MN	GOLDEN VALLEY
+MN	GONVICK
+MN	GOODHUE
+MN	GOODLAND
+MN	GOODRIDGE
+MN	GOOD THUNDER
+MN	GOODVIEW
+MN	GRACEVILLE
+MN	GRANADA
+MN	GRAND MARAIS
+MN	GRAND MEADOW
+MN	GRAND PORTAGE
+MN	GRAND RAPIDS
+MN	GRANDY
+MN	GRANGER
+MN	GRANITE FALLS
+MN	GRASSTON
+MN	GREENBUSH
+MN	GREEN ISLE
+MN	GREENWALD
+MN	GREENWOOD
+MN	GREY EAGLE
+MN	GROVE CITY
+MN	GRYGLA
+MN	GULLY
+MN	HACKENSACK
+MN	HADLEY
+MN	HALLOCK
+MN	HALMA
+MN	HALSTAD
+MN	HAMBURG
+MN	HAMEL
+MN	HAM LAKE
+MN	HAMMOND
+MN	HAMPTON
+MN	HANCOCK
+MN	HANLEY FALLS
+MN	HANOVER
+MN	HANSKA
+MN	HARDWICK
+MN	HARMONY
+MN	HARRIS
+MN	HARTLAND
+MN	HASTINGS
+MN	HATFIELD
+MN	HAWICK
+MN	HAWLEY
+MN	HAYFIELD
+MN	HAYWARD
+MN	HAZEL RUN
+MN	HECTOR
+MN	HEIDELBERG
+MN	HENDERSON
+MN	HENDRICKS
+MN	HENDRUM
+MN	HENNING
+MN	HENRIETTE
+MN	HERMAN
+MN	HERMANTOWN
+MN	HERON LAKE
+MN	HEWITT
+MN	HIBBING
+MN	HILL CITY
+MN	HILLMAN
+MN	HILLS
+MN	HILLTOP
+MN	HINCKLEY
+MN	HINES
+MN	HITTERDAL
+MN	HOFFMAN
+MN	HOKAH
+MN	HOLDINGFORD
+MN	HOLLAND
+MN	HOLLANDALE
+MN	HOLLOWAY
+MN	HOLMES CITY
+MN	HOLT
+MN	HOLYOKE
+MN	HOMER
+MN	HOPE
+MN	HOPKINS
+MN	HOUSTON
+MN	HOVLAND
+MN	HOWARD LAKE
+MN	HOYT LAKES
+MN	HUGO
+MN	HUMBOLDT
+MN	HUNTLEY
+MN	HUTCHINSON
+MN	IHLEN
+MN	INDEPENDENCE
+MN	INTERNATIONAL FALLS
+MN	INTL FALLS
+MN	INVER GROVE
+MN	INVER GROVE HEIGHTS
+MN	IONA
+MN	IRON
+MN	IRONTON
+MN	ISABELLA
+MN	ISANTI
+MN	ISLE
+MN	IVANHOE
+MN	JACKSON
+MN	JACOBSON
+MN	JANESVILLE
+MN	JASPER
+MN	JEFFERS
+MN	JENKINS
+MN	JOHNSON
+MN	JORDAN
+MN	KABETOGAMA
+MN	KANARANZI
+MN	KANDIYOHI
+MN	KARLSTAD
+MN	KASOTA
+MN	KASSON
+MN	KEEWATIN
+MN	KELLIHER
+MN	KELLOGG
+MN	KELLY LAKE
+MN	KELSEY
+MN	KENNEDY
+MN	KENNETH
+MN	KENSINGTON
+MN	KENT
+MN	KENYON
+MN	KERKHOVEN
+MN	KERRICK
+MN	KETTLE RIVER
+MN	KIESTER
+MN	KILKENNY
+MN	KIMBALL
+MN	KINGSTON
+MN	KINNEY
+MN	KLOSSNER
+MN	KNIFE RIVER
+MN	LA CRESCENT
+MN	LAFAYETTE
+MN	LAKE BENTON
+MN	LAKE BRONSON
+MN	LAKE CITY
+MN	LAKE CRYSTAL
+MN	LAKE ELMO
+MN	LAKEFIELD
+MN	LAKE GEORGE
+MN	LAKE HUBERT
+MN	LAKE ITASCA
+MN	LAKELAND
+MN	LAKE LILLIAN
+MN	LAKE PARK
+MN	LAKE SHORE
+MN	LAKEVILLE
+MN	LAKE WILSON
+MN	LAMBERTON
+MN	LANCASTER
+MN	LANDFALL VILLAGE
+MN	LANDFALL VLG
+MN	LANESBORO
+MN	LANSING
+MN	LAPORTE
+MN	LA SALLE
+MN	LASTRUP
+MN	LAUDERDALE
+MN	LE CENTER
+MN	LENGBY
+MN	LEONARD
+MN	LEOTA
+MN	LE ROY
+MN	LESTER PR
+MN	LESTER PRAIRIE
+MN	LE SUEUR
+MN	LEWISTON
+MN	LEWISVILLE
+MN	LINDSTROM
+MN	LINO LAKES
+MN	LISMORE
+MN	LITCHFIELD
+MN	LITTLE CANADA
+MN	LITTLE FALLS
+MN	LITTLEFORK
+MN	LITTLE MARAIS
+MN	LITTLE SAUK
+MN	LOCKHART
+MN	LOMAN
+MN	LONDON
+MN	LONG LAKE
+MN	LONG PRAIRIE
+MN	LONGVILLE
+MN	LONSDALE
+MN	LORETTO
+MN	LOUISBURG
+MN	LOWRY
+MN	LUCAN
+MN	LUTSEN
+MN	LUVERNE
+MN	LYLE
+MN	LYND
+MN	MABEL
+MN	MADELIA
+MN	MADISON
+MN	MADISON LAKE
+MN	MAGNOLIA
+MN	MAHNOMEN
+MN	MAHTOMEDI
+MN	MAHTOWA
+MN	MAKINEN
+MN	MANCHESTER
+MN	MANKATO
+MN	MANTORVILLE
+MN	MAPLE GROVE
+MN	MAPLE LAKE
+MN	MAPLE PLAIN
+MN	MAPLETON
+MN	MAPLEWOOD
+MN	MARBLE
+MN	MARCELL
+MN	MARGIE
+MN	MARIETTA
+MN	MARINE ON SAINT CROIX
+MN	MARINE ST CRX
+MN	MARKVILLE
+MN	MARSHALL
+MN	MAX
+MN	MAYER
+MN	MAYNARD
+MN	MAZEPPA
+MN	MC GRATH
+MN	MCGREGOR
+MN	MCINTOSH
+MN	MCKINLEY
+MN	MEADOWLANDS
+MN	MEDFORD
+MN	MEDICINE LAKE
+MN	MEDINA
+MN	MELROSE
+MN	MELRUDE
+MN	MENAHGA
+MN	MENDOTA
+MN	MENDOTA HEIGHTS
+MN	MENDOTA HTS
+MN	MENTOR
+MN	MERIDEN
+MN	MERRIFIELD
+MN	MIDDLE RIVER
+MN	MILACA
+MN	MILAN
+MN	MILLVILLE
+MN	MILROY
+MN	MILTONA
+MN	MINETONKA BCH
+MN	MINETONKA MLS
+MN	MINN CITY
+MN	MINNEAPOLIS
+MN	MINNEISKA
+MN	MINNEOTA
+MN	MINNESOTA CITY
+MN	MINNESOTA LAKE
+MN	MINNESOTA LK
+MN	MINNETNKA BCH
+MN	MINNETNKA MLS
+MN	MINNETONKA
+MN	MINNETONKA BEACH
+MN	MINNETONKA MILLS
+MN	MINNETRISTA
+MN	MIZPAH
+MN	MONTEVIDEO
+MN	MONTGOMERY
+MN	MONTICELLO
+MN	MONTROSE
+MN	MOORHEAD
+MN	MOOSE LAKE
+MN	MORA
+MN	MORGAN
+MN	MORRIS
+MN	MORRISTOWN
+MN	MORTON
+MN	MOTLEY
+MN	MOUND
+MN	MOUNDSVIEW
+MN	MOUNDS VIEW
+MN	MOUNTAIN IRON
+MN	MOUNTAIN LAKE
+MN	MURDOCK
+MN	MYRTLE
+MN	NASHUA
+MN	NASHWAUK
+MN	NASSAU
+MN	NAVARRE
+MN	NAYTAHWAUSH
+MN	NELSON
+MN	NERSTRAND
+MN	NETT LAKE
+MN	NEVIS
+MN	NEW AUBURN
+MN	NEW BRIGHTON
+MN	NEWFOLDEN
+MN	NEW GERMANY
+MN	NEW HOPE
+MN	NEW LONDON
+MN	NEW MARKET
+MN	NEW MUNICH
+MN	NEWPORT
+MN	NEW PRAGUE
+MN	NEW RICHLAND
+MN	NEW ULM
+MN	NEW YORK MILLS
+MN	NEW YORK MLS
+MN	NICOLLET
+MN	NIELSVILLE
+MN	NIMROD
+MN	NISSWA
+MN	NO OAKS
+MN	NORCROSS
+MN	NORTH BRANCH
+MN	NORTHFIELD
+MN	NORTH MANKATO
+MN	NORTH OAKS
+MN	NORTHOME
+MN	NORTH REDWOOD
+MN	NORTHROP
+MN	NORTH SAINT PAUL
+MN	NORTH ST PAUL
+MN	NORWOOD
+MN	NORWOOD YOUNG AMERICA
+MN	NOYES
+MN	N SAINT PAUL
+MN	NYA
+MN	OAKDALE
+MN	OAK GROVE
+MN	OAK ISLAND
+MN	OAKLAND
+MN	OAK PARK
+MN	OAK PARK HEIGHTS
+MN	OAK PARK HGTS
+MN	OAK PARK HTS
+MN	ODESSA
+MN	ODIN
+MN	OGEMA
+MN	OGILVIE
+MN	OKABENA
+MN	OKLEE
+MN	OLIVIA
+MN	ONAMIA
+MN	ORLEANS
+MN	ORMSBY
+MN	ORONO
+MN	ORONOCO
+MN	ORR
+MN	ORTONVILLE
+MN	OSAGE
+MN	OSAKIS
+MN	OSLO
+MN	OSSEO
+MN	OSTRANDER
+MN	OTISCO
+MN	OTSEGO
+MN	OTTERTAIL
+MN	OUTING
+MN	OWATONNA
+MN	PALISADE
+MN	PARKERS PR
+MN	PARKERS PRAIRIE
+MN	PARK RAPIDS
+MN	PARKVILLE
+MN	PAYNESVILLE
+MN	PEASE
+MN	PELICAN RAPIDS
+MN	PEL RAPIDS
+MN	PEMBERTON
+MN	PENCER
+MN	PENGILLY
+MN	PENNINGTON
+MN	PENNOCK
+MN	PEQUOT LAKES
+MN	PERHAM
+MN	PERLEY
+MN	PETERSON
+MN	PIERZ
+MN	PILLAGER
+MN	PINE CITY
+MN	PINE ISLAND
+MN	PINE RIVER
+MN	PINE SPRINGS
+MN	PINEWOOD
+MN	PIPESTONE
+MN	PITT
+MN	PLAINVIEW
+MN	PLATO
+MN	PLUMMER
+MN	PLYMOUTH
+MN	PONEMAH
+MN	PONSFORD
+MN	PORTER
+MN	PRESTON
+MN	PRINCETON
+MN	PRINSBURG
+MN	PRIOR LAKE
+MN	PROCTOR
+MN	PUPOSKY
+MN	RACINE
+MN	RADIUM
+MN	RAMSEY
+MN	RANDALL
+MN	RANDOLPH
+MN	RANIER
+MN	RAY
+MN	RAYMOND
+MN	READING
+MN	READS LANDING
+MN	REDBY
+MN	REDLAKE
+MN	RED LAKE FALLS
+MN	RED WING
+MN	REDWOOD FALLS
+MN	REMER
+MN	RENVILLE
+MN	REVERE
+MN	RICE
+MN	RICHFIELD
+MN	RICHMOND
+MN	RICHVILLE
+MN	RICHWOOD
+MN	RIVERTON
+MN	RL FALLS
+MN	ROBBINSDALE
+MN	ROCHERT
+MN	ROCHESTER
+MN	ROCK CREEK
+MN	ROCKFORD
+MN	ROCKVILLE
+MN	ROGERS
+MN	ROLLAG
+MN	ROLLINGSTONE
+MN	ROOSEVELT
+MN	ROSCOE
+MN	ROSEAU
+MN	ROSE CREEK
+MN	ROSEMOUNT
+MN	ROSEVILLE
+MN	ROSS
+MN	ROTHSAY
+MN	ROUND LAKE
+MN	ROYALTON
+MN	RUSH CITY
+MN	RUSHFORD
+MN	RUSHFORD VILLAGE
+MN	RUSHFORD VLG
+MN	RUSHMORE
+MN	RUSSELL
+MN	RUTHTON
+MN	RUTLEDGE
+MN	SABIN
+MN	SACRED HEART
+MN	SAGINAW
+MN	SAINT ANTHONY
+MN	SAINT AUGUSTA
+MN	SAINT BONIFACIUS
+MN	SAINT CHARLES
+MN	SAINT CLAIR
+MN	SAINT CLOUD
+MN	SAINT FRANCIS
+MN	SAINT HILAIRE
+MN	SAINT JAMES
+MN	SAINT JOSEPH
+MN	SAINT LEO
+MN	SAINT LOUIS PARK
+MN	SAINT MARTIN
+MN	SAINT MICHAEL
+MN	SAINT PAUL
+MN	SAINT PAUL PARK
+MN	SAINT PETER
+MN	SAINT STEPHEN
+MN	SAINT VINCENT
+MN	SALOL
+MN	SANBORN
+MN	SANDSTONE
+MN	SANTIAGO
+MN	SARGEANT
+MN	SARTELL
+MN	SAUK CENTRE
+MN	SAUK RAPIDS
+MN	SAUM
+MN	SAVAGE
+MN	SAWYER
+MN	SCANDIA
+MN	SCHROEDER
+MN	SEAFORTH
+MN	SEARLES
+MN	SEBEKA
+MN	SEDAN
+MN	SHAFER
+MN	SHAKOPEE
+MN	SHELLY
+MN	SHERBURN
+MN	SHEVLIN
+MN	SHOREVIEW
+MN	SIDE LAKE
+MN	SILVER BAY
+MN	SILVER CREEK
+MN	SILVER LAKE
+MN	S INTL FALLS
+MN	SLAYTON
+MN	SLEEPY EYE
+MN	SOLWAY
+MN	SOUDAN
+MN	SOUTH HAVEN
+MN	SOUTH INTERNATIONAL FALLS
+MN	SOUTH SAINT PAUL
+MN	SOUTH ST PAUL
+MN	SPICER
+MN	SPRINGFIELD
+MN	SPRING GROVE
+MN	SPRING LAKE
+MN	SPRING LAKE PARK
+MN	SPRING LK PK
+MN	SPRING PARK
+MN	SPRING VALLEY
+MN	SQUAW LAKE
+MN	STACY
+MN	STANCHFIELD
+MN	ST ANTHNY VLG
+MN	ST ANTHONY
+MN	ST ANTHONY VILLAGE
+MN	STANTON
+MN	STAPLES
+MN	STARBUCK
+MN	ST BONIFACIUS
+MN	STEEN
+MN	STEPHEN
+MN	STEWART
+MN	STEWARTVILLE
+MN	STILLWATER
+MN	ST LOUIS PARK
+MN	STOCKTON
+MN	STORDEN
+MN	ST PAUL PARK
+MN	STRANDQUIST
+MN	STRATHCONA
+MN	STURGEON LAKE
+MN	SUNBURG
+MN	SUNFISH LAKE
+MN	SVEA
+MN	SWAN RIVER
+MN	SWANVILLE
+MN	SWATARA
+MN	SWIFT
+MN	TACONITE
+MN	TALMOON
+MN	TAMARACK
+MN	TAOPI
+MN	TAUNTON
+MN	TAYLORS FALLS
+MN	TENNEY
+MN	TENSTRIKE
+MN	THEILMAN
+MN	THIEF RIVER FALLS
+MN	THIEF RVR FLS
+MN	TINTAH
+MN	TOFTE
+MN	TOGO
+MN	TOIVOLA
+MN	TOWER
+MN	TRACY
+MN	TRAIL
+MN	TRIMONT
+MN	TROSKY
+MN	TRUMAN
+MN	TURTLE RIVER
+MN	TWIG
+MN	TWIN LAKES
+MN	TWIN VALLEY
+MN	TWO HARBORS
+MN	TYLER
+MN	ULEN
+MN	UNDERWOOD
+MN	UPSALA
+MN	UTICA
+MN	VADNAIS HEIGHTS
+MN	VADNAIS HTS
+MN	VERDI
+MN	VERGAS
+MN	VERMILLION
+MN	VERNDALE
+MN	VERNON CENTER
+MN	VESELI
+MN	VESTA
+MN	VICTORIA
+MN	VIKING
+MN	VILLARD
+MN	VINING
+MN	VIOLA
+MN	VIRGINIA
+MN	WABASHA
+MN	WABASSO
+MN	WACONIA
+MN	WADENA
+MN	WAHKON
+MN	WAITE PARK
+MN	WALDORF
+MN	WALKER
+MN	WALNUT GROVE
+MN	WALTERS
+MN	WALTHAM
+MN	WANAMINGO
+MN	WANDA
+MN	WANNASKA
+MN	WARBA
+MN	WARREN
+MN	WARROAD
+MN	WARSAW
+MN	WASECA
+MN	WASKISH
+MN	WATERTOWN
+MN	WATERVILLE
+MN	WATKINS
+MN	WATSON
+MN	WAUBUN
+MN	WAVERLY
+MN	WAWINA
+MN	WAYZATA
+MN	WEBSTER
+MN	WELCH
+MN	WELCOME
+MN	WELLS
+MN	WENDELL
+MN	WESTBROOK
+MN	WEST CONCORD
+MN	WEST LAKELAND
+MN	WEST SAINT PAUL
+MN	WEST ST PAUL
+MN	WEST UNION
+MN	WHALAN
+MN	WHEATON
+MN	WHIPHOLT
+MN	WHITE BEAR LAKE
+MN	WHITE BEAR LK
+MN	WHITE BEAR TOWNSHIP
+MN	WHITE BEAR TP
+MN	WHITE EARTH
+MN	WILDER
+MN	WILLERNIE
+MN	WILLIAMS
+MN	WILLMAR
+MN	WILLOW RIVER
+MN	WILMONT
+MN	WILTON
+MN	WINDOM
+MN	WINGER
+MN	WINNEBAGO
+MN	WINONA
+MN	WINSTED
+MN	WINTHROP
+MN	WINTON
+MN	WIRT
+MN	W LAKELAND
+MN	WOLF LAKE
+MN	WOLVERTON
+MN	WOODBURY
+MN	WOOD LAKE
+MN	WOODSTOCK
+MN	WORTHINGTON
+MN	WRENSHALL
+MN	WRIGHT
+MN	W SAINT PAUL
+MN	W ST PAUL
+MN	WYKOFF
+MN	WYOMING
+MN	YOUNG AMERICA
+MN	ZIM
+MN	ZIMMERMAN
+MN	ZUMBRO FALLS
+MN	ZUMBROTA
+MO	ADRIAN
+MO	ADVANCE
+MO	AFFTON
+MO	AGENCY
+MO	ALBA
+MO	ALBANY
+MO	ALDRICH
+MO	ALEXANDRIA
+MO	ALLENDALE
+MO	ALLENTON
+MO	ALMA
+MO	ALTAMONT
+MO	ALTENBURG
+MO	ALTON
+MO	AMAZONIA
+MO	AMITY
+MO	AMORET
+MO	AMSTERDAM
+MO	ANABEL
+MO	ANDERSON
+MO	ANNADA
+MO	ANNAPOLIS
+MO	ANNISTON
+MO	ANTONIA
+MO	APPLETON CITY
+MO	ARAB
+MO	ARBELA
+MO	ARBYRD
+MO	ARCADIA
+MO	ARCHIE
+MO	ARCOLA
+MO	ARGYLE
+MO	ARMSTRONG
+MO	ARNOLD
+MO	ARROW ROCK
+MO	ASBURY
+MO	ASHBURN
+MO	ASH GROVE
+MO	ASHLAND
+MO	ATLANTA
+MO	AUGUSTA
+MO	AURORA
+MO	AUSTIN
+MO	AUXVASSE
+MO	AVA
+MO	AVALON
+MO	AVILLA
+MO	AVONDALE
+MO	BAKERSFIELD
+MO	BALLWIN
+MO	BARING
+MO	BARNARD
+MO	BARNETT
+MO	BARNHART
+MO	BATES CITY
+MO	BATTLEFIELD
+MO	BEAUFORT
+MO	BELGRADE
+MO	BELL CITY
+MO	BELLE
+MO	BELLEVIEW
+MO	BELLFLOWER
+MO	BELTON
+MO	BENDAVIS
+MO	BENTON
+MO	BENTON CITY
+MO	BERGER
+MO	BERKELEY
+MO	BERNIE
+MO	BERRYMAN
+MO	BERTRAND
+MO	BETHANY
+MO	BETHEL
+MO	BEULAH
+MO	BEVIER
+MO	BIGELOW
+MO	BILLINGS
+MO	BIRCH TREE
+MO	BIRMINGHAM
+MO	BISMARCK
+MO	BIXBY
+MO	BLACK
+MO	BLACKBURN
+MO	BLACKWATER
+MO	BLACKWELL
+MO	BLAIRSTOWN
+MO	BLAND
+MO	BLODGETT
+MO	BLOOMFIELD
+MO	BLOOMSDALE
+MO	BLUE EYE
+MO	BLUE SPRINGS
+MO	BLYTHEDALE
+MO	BOGARD
+MO	BOIS D ARC
+MO	BOLCKOW
+MO	BOLIVAR
+MO	BONNE TERRE
+MO	BONNOTS MILL
+MO	BOONVILLE
+MO	BOSS
+MO	BOSWORTH
+MO	BOURBON
+MO	BOWLING GREEN
+MO	BRADLEYVILLE
+MO	BRAGGADOCIO
+MO	BRAGG CITY
+MO	BRANDSVILLE
+MO	BRANSON
+MO	BRANSON WEST
+MO	BRASHEAR
+MO	BRAYMER
+MO	BRAZEAU
+MO	BRECKENRIDGE
+MO	BRECKENRIDGE HILLS
+MO	BRECKNRDG HLS
+MO	BRENTWOOD
+MO	BRIAR
+MO	BRIDGETON
+MO	BRIGHTON
+MO	BRIMSON
+MO	BRINKTOWN
+MO	BRIXEY
+MO	BRLNGTON JCTN
+MO	BRONAUGH
+MO	BROOKFIELD
+MO	BROOKLINE
+MO	BROOKLINE STA
+MO	BROSELEY
+MO	BROWNING
+MO	BROWNWOOD
+MO	BRUMLEY
+MO	BRUNER
+MO	BRUNSWICK
+MO	BUCKLIN
+MO	BUCKNER
+MO	BUCYRUS
+MO	BUELL
+MO	BUFFALO
+MO	BUNCETON
+MO	BUNKER
+MO	BURFORDVILLE
+MO	BURLINGTON JUNCTION
+MO	BUTLER
+MO	BUTTERFIELD
+MO	CABOOL
+MO	CADET
+MO	CAINSVILLE
+MO	CAIRO
+MO	CALEDONIA
+MO	CALHOUN
+MO	CALIFORNIA
+MO	CALLAO
+MO	CAMDEN
+MO	CAMDEN POINT
+MO	CAMDENTON
+MO	CAMERON
+MO	CAMPBELL
+MO	CANALOU
+MO	CANTON
+MO	CAPE FAIR
+MO	CAPE GIRARDEAU
+MO	CAPLINGER MILLS
+MO	CAPLINGER MLS
+MO	CARDWELL
+MO	CARL JUNCTION
+MO	CARROLLTON
+MO	CARTERVILLE
+MO	CARTHAGE
+MO	CARUTHERSVILLE
+MO	CARUTHERSVLLE
+MO	CASCADE
+MO	CASSVILLE
+MO	CATAWISSA
+MO	CATRON
+MO	CAULFIELD
+MO	CEDAR CITY
+MO	CEDARCREEK
+MO	CEDAR HILL
+MO	CENTER
+MO	CENTERTOWN
+MO	CENTERVIEW
+MO	CENTERVILLE
+MO	CENTRALIA
+MO	CHADWICK
+MO	CHAFFEE
+MO	CHAMOIS
+MO	CHARLESTON
+MO	CHERKEE HMSTD
+MO	CHEROKEE HOMESTEAD VILLAGE
+MO	CHERRYVILLE
+MO	CHESTERFIELD
+MO	CHESTNUTRIDGE
+MO	CHILHOWEE
+MO	CHILLICOTHE
+MO	CHULA
+MO	CLARENCE
+MO	CLARK
+MO	CLARKSBURG
+MO	CLARKSDALE
+MO	CLARKSVILLE
+MO	CLARKTON
+MO	CLAYTON
+MO	CLEARMONT
+MO	CLEVELAND
+MO	CLEVER
+MO	CLIFTON HILL
+MO	CLIMAX SPRGS
+MO	CLIMAX SPRINGS
+MO	CLINTON
+MO	CLUBB
+MO	CLYDE
+MO	CNCPTON JCTN
+MO	COATSVILLE
+MO	COFFEY
+MO	COLE CAMP
+MO	COLLINS
+MO	COLUMBIA
+MO	COMMERCE
+MO	CONCEPTION
+MO	CONCEPTION JUNCTION
+MO	CONCORDIA
+MO	CONRAN
+MO	CONWAY
+MO	COOK STA
+MO	COOTER
+MO	CORDER
+MO	CORNING
+MO	COSBY
+MO	COTTLEVILLE
+MO	COUCH
+MO	COURTOIS
+MO	COWGILL
+MO	CPE GIRARDEAU
+MO	CRAIG
+MO	CRANE
+MO	CREIGHTON
+MO	CRESCENT
+MO	CREVE COEUR
+MO	CROCKER
+MO	CROSS TIMBERS
+MO	CRYSTAL CITY
+MO	CRYSTAL LAKES
+MO	CUBA
+MO	CURRYVILLE
+MO	DADEVILLE
+MO	DAISY
+MO	DALTON
+MO	DANVILLE
+MO	DARDENNE PR
+MO	DARDENNE PRAIRIE
+MO	DARLINGTON
+MO	DAVISVILLE
+MO	DAWN
+MO	DEARBORN
+MO	DEEPWATER
+MO	DEERFIELD
+MO	DEERING
+MO	DEFIANCE
+MO	DE KALB
+MO	DELTA
+MO	DENVER
+MO	DES ARC
+MO	DESLOGE
+MO	DE SOTO
+MO	DES PERES
+MO	DEVILS ELBOW
+MO	DE WITT
+MO	DEXTER
+MO	DIAMOND
+MO	DIGGINS
+MO	DITTMER
+MO	DIXON
+MO	DOE RUN
+MO	DONIPHAN
+MO	DORA
+MO	DOVER
+MO	DOWNING
+MO	DREXEL
+MO	DRURY
+MO	DUDLEY
+MO	DUENWEG
+MO	DUGGINSVILLE
+MO	DUKE
+MO	DUNNEGAN
+MO	DURHAM
+MO	DUTCHTOWN
+MO	DUTZOW
+MO	EAGLE ROCK
+MO	EAGLEVILLE
+MO	EARTH CITY
+MO	EAST LYNNE
+MO	EASTON
+MO	EAST PRAIRIE
+MO	EDGAR SPRINGS
+MO	EDGERTON
+MO	EDINA
+MO	EDWARDS
+MO	ELDON
+MO	EL DORADO SPG
+MO	EL DORADO SPRINGS
+MO	ELDRIDGE
+MO	ELK CREEK
+MO	ELKLAND
+MO	ELLINGTON
+MO	ELLISVILLE
+MO	ELLSINORE
+MO	ELMER
+MO	ELMIRA
+MO	ELMO
+MO	ELSBERRY
+MO	ELVINS
+MO	EMDEN
+MO	EMINENCE
+MO	EMMA
+MO	EOLIA
+MO	ESSEX
+MO	ETHEL
+MO	ETTERVILLE
+MO	EUDORA
+MO	EUGENE
+MO	EUNICE
+MO	EUREKA
+MO	EVERTON
+MO	EWING
+MO	EXCELLO
+MO	EXCELSIOR EST
+MO	EXCELSIOR SPG
+MO	EXCELSIOR SPRINGS
+MO	EXCLSOR SPRGS
+MO	EXETER
+MO	FAGUS
+MO	FAIRDEALING
+MO	FAIRFAX
+MO	FAIR GROVE
+MO	FAIR PLAY
+MO	FAIRPORT
+MO	FAIRVIEW
+MO	FALCON
+MO	FARBER
+MO	FARLEY
+MO	FARMINGTON
+MO	FARRAR
+MO	FAUCETT
+MO	FAYETTE
+MO	FENTON
+MO	FERGUSON
+MO	FERRELVIEW
+MO	FESTUS
+MO	FILLMORE
+MO	FISK
+MO	FLAT RIVER
+MO	FLEMINGTON
+MO	FLETCHER
+MO	FLINTHILL
+MO	FLORENCE
+MO	FLORIDA
+MO	FLORISSANT
+MO	FOLEY
+MO	FORDLAND
+MO	FOREST CITY
+MO	FORISTELL
+MO	FORSYTH
+MO	FORTESCUE
+MO	FORT LEONARD WOOD
+MO	FORTUNA
+MO	FOSTER
+MO	FOUR SEASONS
+MO	FRANKCLAY
+MO	FRANKFORD
+MO	FRANKLIN
+MO	FREDERICKTOWN
+MO	FREEBURG
+MO	FREEMAN
+MO	FREISTATT
+MO	FREMONT
+MO	FRENCH VILLAGE
+MO	FRENCH VLG
+MO	FRIEDHEIM
+MO	FROHNA
+MO	FRONTENAC
+MO	FT LEONARD WD
+MO	FULTON
+MO	GAINESVILLE
+MO	GALENA
+MO	GALLATIN
+MO	GALT
+MO	GARDEN CITY
+MO	GARRISON
+MO	GASCONADE
+MO	GATEWOOD
+MO	GENTRY
+MO	GERALD
+MO	GIBBS
+MO	GIBSON
+MO	GIDEON
+MO	GILLIAM
+MO	GILMAN CITY
+MO	GIPSY
+MO	GLADSTONE
+MO	GLASGOW
+MO	GLENALLEN
+MO	GLENCOE
+MO	GLENWOOD
+MO	GLOVER
+MO	GOBLER
+MO	GOLDEN
+MO	GOLDEN CITY
+MO	GOODMAN
+MO	GOODSON
+MO	GORDONVILLE
+MO	GORIN
+MO	GOWER
+MO	GRAFF
+MO	GRAHAM
+MO	GRAIN VALLEY
+MO	GRANBY
+MO	GRANDIN
+MO	GRAND PASS
+MO	GRANDVIEW
+MO	GRANGER
+MO	GRANT CITY
+MO	GRASSY
+MO	GRAVOIS MILLS
+MO	GRAYRIDGE
+MO	GRAY SUMMIT
+MO	GREEN CASTLE
+MO	GREEN CITY
+MO	GREENFIELD
+MO	GREEN RIDGE
+MO	GREENTOP
+MO	GREENVILLE
+MO	GREENWOOD
+MO	GROVER
+MO	GROVESPRING
+MO	GRUBVILLE
+MO	GUILFORD
+MO	HALE
+MO	HALF WAY
+MO	HALLSVILLE
+MO	HALLTOWN
+MO	HAMILTON
+MO	HANNIBAL
+MO	HARDENVILLE
+MO	HARDIN
+MO	HARRIS
+MO	HARRISBURG
+MO	HARRISONVILLE
+MO	HARTSBURG
+MO	HARTSHORN
+MO	HARTVILLE
+MO	HARVIELL
+MO	HARWOOD
+MO	HATFIELD
+MO	HAWK POINT
+MO	HAYTI
+MO	HAYTI HEIGHTS
+MO	HAZELWOOD
+MO	HELENA
+MO	HEMATITE
+MO	HEMPLE
+MO	HENLEY
+MO	HENRIETTA
+MO	HERCULANEUM
+MO	HERMANN
+MO	HERMITAGE
+MO	HIGBEE
+MO	HIGGINSVILLE
+MO	HIGH HILL
+MO	HIGHLANDVILLE
+MO	HIGH POINT
+MO	HIGH RIDGE
+MO	HILLSBORO
+MO	HIRAM
+MO	HOLCOMB
+MO	HOLDEN
+MO	HOLLAND
+MO	HOLLIDAY
+MO	HOLLISTER
+MO	HOLT
+MO	HOLTS SUMMIT
+MO	HOMESTEAD VLG
+MO	HOMESTOWN
+MO	HOPKINS
+MO	HORNERSVILLE
+MO	HORTON
+MO	HOUSE SPRINGS
+MO	HOUSTON
+MO	HOUSTONIA
+MO	HOUSTON LAKE
+MO	HUGGINS
+MO	HUGHESVILLE
+MO	HUMANSVILLE
+MO	HUME
+MO	HUMPHREYS
+MO	HUNNEWELL
+MO	HUNTSVILLE
+MO	HURDLAND
+MO	HURLEY
+MO	IANTHA
+MO	IBERIA
+MO	IMPERIAL
+MO	INDEPENDENCE
+MO	INNSBROOK
+MO	IONIA
+MO	IRONDALE
+MO	IRONTON
+MO	IRWIN
+MO	ISABELLA
+MO	JACKSON
+MO	JACKSONVILLE
+MO	JADWIN
+MO	JAMESON
+MO	JAMESPORT
+MO	JAMESTOWN
+MO	JANE
+MO	JASPER
+MO	JEFFERSON CITY
+MO	JEFFERSON CTY
+MO	JENKINS
+MO	JENNINGS
+MO	JERICO SPRGS
+MO	JERICO SPRINGS
+MO	JEROME
+MO	JONESBURG
+MO	JOPLIN
+MO	KAHOKA
+MO	KAISER
+MO	KANSAS CITY
+MO	KEARNEY
+MO	KELSO
+MO	KENNETT
+MO	KEWANEE
+MO	KEYTESVILLE
+MO	KIDDER
+MO	KIMBERLING CITY
+MO	KIMBERLING CY
+MO	KIMMSWICK
+MO	KING CITY
+MO	KINGDOM CITY
+MO	KINGSTON
+MO	KINGSVILLE
+MO	KINLOCH
+MO	KIRBYVILLE
+MO	KIRKSVILLE
+MO	KIRKWOOD
+MO	KISSEE MILLS
+MO	KNOB LICK
+MO	KNOB NOSTER
+MO	KNOX CITY
+MO	KOELTZTOWN
+MO	KOSHKONONG
+MO	LABADIE
+MO	LA BELLE
+MO	LACLEDE
+MO	LADDONIA
+MO	LA GRANGE
+MO	LAKE ANNETTE
+MO	LAKE LOTAWANA
+MO	LAKE OZARK
+MO	LAKE SAINT LOUIS
+MO	LAKE SHERWOOD
+MO	LAKE SPRING
+MO	LAKE ST LOUIS
+MO	LAKE TAPAWINGO
+MO	LAKE TAPWINGO
+MO	LAKE WAUKOMIS
+MO	LAKE WINNEBAGO
+MO	LAMAR
+MO	LAMBERT AIRPORT
+MO	LAMBERT ARPRT
+MO	LA MONTE
+MO	LAMPE
+MO	LANAGAN
+MO	LANCASTER
+MO	LA PLATA
+MO	LAQUEY
+MO	LAREDO
+MO	LA RUSSELL
+MO	LATHAM
+MO	LATHROP
+MO	LATOUR
+MO	LAURIE
+MO	LAWSON
+MO	LEADINGTON
+MO	LEADWOOD
+MO	LEASBURG
+MO	LEBANON
+MO	LECOMA
+MO	LEES SUMMIT
+MO	LEETON
+MO	LEMAY
+MO	LENOX
+MO	LENTNER
+MO	LEONARD
+MO	LEOPOLD
+MO	LESLIE
+MO	LESTERVILLE
+MO	LEVASY
+MO	LEWISTOWN
+MO	LEXINGTON
+MO	LIBERAL
+MO	LIBERTY
+MO	LICKING
+MO	LIGUORI
+MO	LILBOURN
+MO	LINCOLN
+MO	LINN
+MO	LINN CREEK
+MO	LINNEUS
+MO	LIVONIA
+MO	LK WINNEBAGO
+MO	LOCK SPRINGS
+MO	LOCKWOOD
+MO	LODI
+MO	LOHMAN
+MO	LOMA LINDA
+MO	LONEDELL
+MO	LONE JACK
+MO	LONG LANE
+MO	LOOSE CREEK
+MO	LOUISBURG
+MO	LOUISIANA
+MO	LOWNDES
+MO	LOWRY CITY
+MO	LUCERNE
+MO	LUDLOW
+MO	LUEBBERING
+MO	LURAY
+MO	LUTESVILLE
+MO	LYNCHBURG
+MO	MACKS CREEK
+MO	MACOMB
+MO	MACON
+MO	MADISON
+MO	MAITLAND
+MO	MALDEN
+MO	MALTA BEND
+MO	MANCHESTER
+MO	MANSFIELD
+MO	MAPAVILLE
+MO	MAPLEWOOD
+MO	MARBLE HILL
+MO	MARCELINE
+MO	MARIONVILLE
+MO	MARQUAND
+MO	MARSHALL
+MO	MARSHFIELD
+MO	MARSTON
+MO	MARTHASVILLE
+MO	MARTIN CITY
+MO	MARTINSBURG
+MO	MARTINSVILLE
+MO	MARVEL CAVE PARK
+MO	MARVEL CAV PK
+MO	MARYLAND HEIGHTS
+MO	MARYLAND HTS
+MO	MARYVILLE
+MO	MATTHEWS
+MO	MAYSVILLE
+MO	MAYVIEW
+MO	MAYWOOD
+MO	MC BRIDE
+MO	MC CLURG
+MO	MC FALL
+MO	MC GEE
+MO	MC GIRK
+MO	MCKITTRICK
+MO	MEADVILLE
+MO	MEMPHIS
+MO	MENDON
+MO	MERCER
+MO	MERRIAM VLG
+MO	MERRIAM WOODS VILLAGE
+MO	META
+MO	METZ
+MO	MEXICO
+MO	MIAMI
+MO	MIDDLE BROOK
+MO	MIDDLETOWN
+MO	MILAN
+MO	MILFORD
+MO	MILLCREEK
+MO	MILLER
+MO	MILLERSVILLE
+MO	MILL SPRING
+MO	MILO
+MO	MINDENMINES
+MO	MINE LA MOTTE
+MO	MINEOLA
+MO	MINER
+MO	MINERAL POINT
+MO	MISSOURI CITY
+MO	MOBERLY
+MO	MOKANE
+MO	MONETT
+MO	MONROE CITY
+MO	MONTGOMERY CITY
+MO	MONTGOMERY CY
+MO	MONTICELLO
+MO	MONTIER
+MO	MONTREAL
+MO	MONTROSE
+MO	MOODY
+MO	MOORESVILLE
+MO	MORA
+MO	MOREHOUSE
+MO	MORLEY
+MO	MORRISON
+MO	MORRISVILLE
+MO	MORSE MILL
+MO	MOSBY
+MO	MOSCOW MILLS
+MO	MOUND CITY
+MO	MOUNDVILLE
+MO	MOUNTAIN GROVE
+MO	MOUNTAIN GRV
+MO	MOUNTAIN VIEW
+MO	MOUNT MORIAH
+MO	MOUNT STERLING
+MO	MOUNT VERNON
+MO	MT STERLING
+MO	MYRTLE
+MO	NAPOLEON
+MO	NAPTON
+MO	NAYLOR
+MO	NECK CITY
+MO	NEELYVILLE
+MO	NELSON
+MO	NEOSHO
+MO	NEVADA
+MO	NEWARK
+MO	NEW BLOOMFIELD
+MO	NEW BLOOMFLD
+MO	NEW BOSTON
+MO	NEWBURG
+MO	NEW CAMBRIA
+MO	NEW FLORENCE
+MO	NEW FRANKLIN
+MO	NEW HAMPTON
+MO	NEW HARTFORD
+MO	NEW HAVEN
+MO	NEW LONDON
+MO	NEW MADRID
+MO	NEW MELLE
+MO	NEW OFFENBURG
+MO	NEW POINT
+MO	NEWTONIA
+MO	NEWTOWN
+MO	NEW WELLS
+MO	NIANGUA
+MO	NIXA
+MO	N KANSAS CITY
+MO	NOBLE
+MO	NOEL
+MO	NORBORNE
+MO	NORMANDY
+MO	NORTH COUNTY
+MO	NORTH KANSAS CITY
+MO	NORTHMOOR
+MO	NORTHWEST PLAZA
+MO	NORWOOD
+MO	NOTTINGHILL
+MO	NOVELTY
+MO	NOVINGER
+MO	NW PLAZA
+MO	NW POINT
+MO	OAK GROVE
+MO	OAK RIDGE
+MO	ODESSA
+MO	O FALLON
+MO	OLD APPLETON
+MO	OLDFIELD
+MO	OLD MONROE
+MO	OLEAN
+MO	OLIVETTE
+MO	OLNEY
+MO	ORAN
+MO	OREGON
+MO	ORONOGO
+MO	ORRICK
+MO	OSAGE BEACH
+MO	OSBORN
+MO	OSCEOLA
+MO	OTTERVILLE
+MO	OTTO
+MO	OVERLAND
+MO	OWENSVILLE
+MO	OXLY
+MO	OZARK
+MO	PACIFIC
+MO	PAINTON
+MO	PALMYRA
+MO	PARIS
+MO	PARK HILLS
+MO	PARKVILLE
+MO	PARMA
+MO	PARNELL
+MO	PASCOLA
+MO	PASSAIC
+MO	PATTERSON
+MO	PATTON
+MO	PATTONSBURG
+MO	PAYNESVILLE
+MO	PEACE VALLEY
+MO	PECULIAR
+MO	PERKINS
+MO	PERRY
+MO	PERRYVILLE
+MO	PEVELY
+MO	PHILADELPHIA
+MO	PHILLIPSBURG
+MO	PICKERING
+MO	PIEDMONT
+MO	PIERCE CITY
+MO	PILOT GROVE
+MO	PILOT KNOB
+MO	PINEVILLE
+MO	PITTSBURG
+MO	PLATO
+MO	PLATTE CITY
+MO	PLATTE WOODS
+MO	PLATTSBURG
+MO	PLEASANT HILL
+MO	PLEASANT HOPE
+MO	PLEASANT VALLEY
+MO	PLEASANT VLY
+MO	PLEVNA
+MO	POCAHONTAS
+MO	POINT LOOKOUT
+MO	POLK
+MO	POLLOCK
+MO	POLO
+MO	POMONA
+MO	PONCE DE LEON
+MO	PONTIAC
+MO	POPLAR BLUFF
+MO	PORTAGE DES SIOUX
+MO	PORTAGEVILLE
+MO	PORTLAND
+MO	POTOSI
+MO	POTTERSVILLE
+MO	POWELL
+MO	POWERSITE
+MO	POWERSVILLE
+MO	POYNOR
+MO	PRAIRIE HOME
+MO	PRESTON
+MO	PRINCETON
+MO	PROTEM
+MO	PRTG DE SIOUX
+MO	PRTG DE SOUIX
+MO	PURCELL
+MO	PURDIN
+MO	PURDY
+MO	PUXICO
+MO	QUEEN CITY
+MO	QUINCY
+MO	QUITMAN
+MO	QULIN
+MO	RACINE
+MO	RANDOLPH
+MO	RAVENWOOD
+MO	RAYMONDVILLE
+MO	RAYMORE
+MO	RAYTOWN
+MO	RAYVILLE
+MO	REA
+MO	REDFORD
+MO	REEDS
+MO	REEDS SPRING
+MO	RENICK
+MO	REPUBLIC
+MO	REVERE
+MO	REYNOLDS
+MO	RHINELAND
+MO	RICHARDS
+MO	RICH HILL
+MO	RICHLAND
+MO	RICHMOND
+MO	RICHMOND HEIGHTS
+MO	RICHMOND HTS
+MO	RICHWOODS
+MO	RIDGEDALE
+MO	RIDGEWAY
+MO	RISCO
+MO	RIVERMINES
+MO	RIVERSIDE
+MO	RIVES
+MO	ROACH
+MO	ROBERTSVILLE
+MO	ROBY
+MO	ROCHEPORT
+MO	ROCKAWAY BCH
+MO	ROCKAWAY BEACH
+MO	ROCKBRIDGE
+MO	ROCK PORT
+MO	ROCKVILLE
+MO	ROCKY COMFORT
+MO	ROCKY MOUNT
+MO	ROGERSVILLE
+MO	ROLLA
+MO	ROMBAUER
+MO	ROSCOE
+MO	ROSEBUD
+MO	ROSENDALE
+MO	ROTHVILLE
+MO	RUETER
+MO	RUSH HILL
+MO	RUSHVILLE
+MO	RUSSELLVILLE
+MO	RUTLEDGE
+MO	SADDLEBROOKE
+MO	SAGINAW
+MO	SAINT ALBANS
+MO	SAINT ANN
+MO	SAINT CATHARINE
+MO	SAINT CHARLES
+MO	SAINT CLAIR
+MO	SAINTE GENEVIEVE
+MO	SAINT ELIZABETH
+MO	SAINT JAMES
+MO	SAINT JOSEPH
+MO	SAINT LOUIS
+MO	SAINT MARY
+MO	SAINT PATRICK
+MO	SAINT PAUL
+MO	SAINT PETERS
+MO	SAINT ROBERT
+MO	SAINT THOMAS
+MO	SALEM
+MO	SALISBURY
+MO	SANTA FE
+MO	SAPPINGTON
+MO	SARCOXIE
+MO	SAVANNAH
+MO	SAVERTON
+MO	SCHELL CITY
+MO	SCOPUS
+MO	SCOTT CITY
+MO	SEDALIA
+MO	SEDGEWICKVILLE
+MO	SEDGEWICKVLLE
+MO	SELIGMAN
+MO	SENATH
+MO	SENECA
+MO	SEYMOUR
+MO	S GREENFIELD
+MO	SHELBINA
+MO	SHELBYVILLE
+MO	SHELDON
+MO	SHELL KNOB
+MO	SHERIDAN
+MO	SHOOK
+MO	SIBLEY
+MO	SIKESTON
+MO	SILEX
+MO	SILVA
+MO	SKIDMORE
+MO	SLATER
+MO	SMITHTON
+MO	SMITHVILLE
+MO	SOLO
+MO	SOUDER
+MO	SOUTH FORK
+MO	SOUTH GREENFIELD
+MO	SOUTH WEST CITY
+MO	SOUTH WEST CY
+MO	SPARTA
+MO	SPICKARD
+MO	SPOKANE
+MO	SPRINGFIELD
+MO	SQUIRES
+MO	STANBERRY
+MO	STANTON
+MO	STARK CITY
+MO	ST CATHARINE
+MO	STEEDMAN
+MO	STEELE
+MO	STEELVILLE
+MO	STEFFENVILLE
+MO	STE GENEVIEVE
+MO	ST ELIZABETH
+MO	STELLA
+MO	STET
+MO	STEWARTSVILLE
+MO	STOCKTON
+MO	STOTESBURY
+MO	STOTTS CITY
+MO	STOUTLAND
+MO	STOUTSVILLE
+MO	STOVER
+MO	ST PETERS
+MO	STRAFFORD
+MO	STRASBURG
+MO	STURDIVANT
+MO	STURGEON
+MO	SUCCESS
+MO	SUGAR CREEK
+MO	SULLIVAN
+MO	SULPHUR SPG
+MO	SULPHUR SPRINGS
+MO	SUMMERSVILLE
+MO	SUMNER
+MO	SUNRISE BEACH
+MO	SWEDEBORG
+MO	SWEET SPRINGS
+MO	SYCAMORE
+MO	SYRACUSE
+MO	TALLAPOOSA
+MO	TANEYVILLE
+MO	TARKIO
+MO	TAYLOR
+MO	TEBBETTS
+MO	TECUMSEH
+MO	TERESITA
+MO	THAYER
+MO	THEODOSIA
+MO	THOMPSON
+MO	THORNFIELD
+MO	TIFF
+MO	TIFF CITY
+MO	TINA
+MO	TIPTON
+MO	TOWN AND COUNTRY
+MO	TRELOAR
+MO	TRENTON
+MO	TRIMBLE
+MO	TRIPLETT
+MO	TROY
+MO	TRUXTON
+MO	TUNAS
+MO	TURNERS
+MO	TURNEY
+MO	TUSCUMBIA
+MO	TWIN OAKS
+MO	TWN AND CNTRY
+MO	UDALL
+MO	ULMAN
+MO	UNION
+MO	UNION STAR
+MO	UNIONTOWN
+MO	UNIONVILLE
+MO	UNITY VILLAGE
+MO	UNIVERSITY CITY
+MO	UNIVERSITY CY
+MO	URBANA
+MO	URICH
+MO	UTICA
+MO	VALLES MINES
+MO	VALLEY PARK
+MO	VAN BUREN
+MO	VANDALIA
+MO	VANDUSER
+MO	VANZANT
+MO	VERONA
+MO	VERSAILLES
+MO	VIBURNUM
+MO	VICHY
+MO	VIENNA
+MO	VILLAGE OF FOUR SEASONS
+MO	VILLAGE OF LOCH LLOYD
+MO	VILLA RIDGE
+MO	VISTA
+MO	VLG LOCH LOYD
+MO	VLG OF 4 SSNS
+MO	VULCAN
+MO	WACO
+MO	WALDRON
+MO	WALKER
+MO	WALNUT GROVE
+MO	WALNUT SHADE
+MO	WAPPAPELLO
+MO	WARDELL
+MO	WARRENSBURG
+MO	WARRENTON
+MO	WARSAW
+MO	WASHBURN
+MO	WASHINGTON
+MO	WASOLA
+MO	WATSON
+MO	WAVERLY
+MO	WAYLAND
+MO	WAYNESVILLE
+MO	WEATHERBY
+MO	WEATHERBY LAKE
+MO	WEAUBLEAU
+MO	WEBB CITY
+MO	WEBSTER GROVES
+MO	WEBSTER GRVS
+MO	WELDON SPRING
+MO	WELLINGTON
+MO	WELLSVILLE
+MO	WENTWORTH
+MO	WENTZVILLE
+MO	WESCO
+MO	WEST ALTON
+MO	WESTBORO
+MO	WEST LINE
+MO	WESTON
+MO	WESTPHALIA
+MO	WEST PLAINS
+MO	WHEATLAND
+MO	WHEATON
+MO	WHEELING
+MO	WHITEMAN AFB
+MO	WHITEMAN AIR FORCE BASE
+MO	WHITEOAK
+MO	WHITESIDE
+MO	WHITEWATER
+MO	WILDWOOD
+MO	WILLARD
+MO	WILLIAMSBURG
+MO	WILLIAMSTOWN
+MO	WILLIAMSVILLE
+MO	WILLOW SPGS
+MO	WILLOW SPRINGS
+MO	WINDSOR
+MO	WINDYVILLE
+MO	WINFIELD
+MO	WINIGAN
+MO	WINONA
+MO	WINSTON
+MO	WITTENBERG
+MO	WOLF ISLAND
+MO	WOOD HEIGHTS
+MO	WOOLDRIDGE
+MO	WORTH
+MO	WORTHINGTON
+MO	WRIGHT CITY
+MO	WTHRBY LAKE
+MO	WYACONDA
+MO	WYATT
+MO	YUKON
+MO	ZALMA
+MO	ZANONI
+MP	ROTA
+MP	SAIPAN
+MP	TINIAN
+MS	ABBEVILLE
+MS	ABERDEEN
+MS	ACKERMAN
+MS	AGRICOLA
+MS	ALGOMA
+MS	ALLIGATOR
+MS	AMORY
+MS	ANGUILLA
+MS	ARCOLA
+MS	ARKABUTLA
+MS	ARTESIA
+MS	ASHLAND
+MS	ASKEW
+MS	AVALON
+MS	AVON
+MS	BAILEY
+MS	BAIRD
+MS	BALDWYN
+MS	BANNER
+MS	BASSFIELD
+MS	BATESVILLE
+MS	BAY SAINT LOUIS
+MS	BAY SPRINGS
+MS	BAY ST LOUIS
+MS	BEAUMONT
+MS	BECKER
+MS	BELDEN
+MS	BELEN
+MS	BELLEFONTAINE
+MS	BELMONT
+MS	BELZONI
+MS	BENNDALE
+MS	BENOIT
+MS	BENTON
+MS	BENTONIA
+MS	BEULAH
+MS	BIGBEE VALLEY
+MS	BIG CREEK
+MS	BILOXI
+MS	BLUE MOUNTAIN
+MS	BLUE SPRINGS
+MS	BOGUE CHITTO
+MS	BOLTON
+MS	BOONEVILLE
+MS	BOYLE
+MS	BRANDON
+MS	BRAXTON
+MS	BROOKHAVEN
+MS	BROOKLYN
+MS	BROOKSVILLE
+MS	BRUCE
+MS	BUCKATUNNA
+MS	BUDE
+MS	BURNSVILLE
+MS	BYHALIA
+MS	BYRAM
+MS	CALEDONIA
+MS	CALHOUN CITY
+MS	CAMDEN
+MS	CANAAN
+MS	CANTON
+MS	CARRIERE
+MS	CARROLLTON
+MS	CARSON
+MS	CARTHAGE
+MS	CARY
+MS	CASCILLA
+MS	CEDARBLUFF
+MS	CENTREVILLE
+MS	CHARLESTON
+MS	CHATAWA
+MS	CHATHAM
+MS	CHOCTAW
+MS	CHUNKY
+MS	CHURCH HILL
+MS	CLARA
+MS	CLARKSDALE
+MS	CLERMONT HARBOR
+MS	CLERMONT HBR
+MS	CLEVELAND
+MS	CLINTON
+MS	COAHOMA
+MS	COFFEEVILLE
+MS	COILA
+MS	COLDWATER
+MS	COLLINS
+MS	COLLINSVILLE
+MS	COLUMBIA
+MS	COLUMBUS
+MS	COLUMBUS AFB
+MS	COMO
+MS	CONEHATTA
+MS	CORINTH
+MS	COURTLAND
+MS	CRAWFORD
+MS	CRENSHAW
+MS	CROSBY
+MS	CROWDER
+MS	CRUGER
+MS	CRYSTAL SPGS
+MS	CRYSTAL SPRINGS
+MS	DALEVILLE
+MS	DARLING
+MS	DECATUR
+MS	DE KALB
+MS	DELTA CITY
+MS	DENNIS
+MS	DERMA
+MS	DIAMONDHEAD
+MS	DIBERVILLE
+MS	D LO
+MS	DODDSVILLE
+MS	DREW
+MS	DUBLIN
+MS	DUCK HILL
+MS	DUMAS
+MS	DUNCAN
+MS	DUNDEE
+MS	DURANT
+MS	EASTABUCHIE
+MS	ECRU
+MS	EDINBURG
+MS	EDWARDS
+MS	EGYPT
+MS	ELIZABETH
+MS	ELLIOTT
+MS	ELLISVILLE
+MS	ENID
+MS	ENTERPRISE
+MS	ESCATAWPA
+MS	ETHEL
+MS	ETTA
+MS	EUPORA
+MS	FALCON
+MS	FALKNER
+MS	FARRELL
+MS	FAYETTE
+MS	FERNWOOD
+MS	FITLER
+MS	FLORA
+MS	FLORENCE
+MS	FLOWOOD
+MS	FOREST
+MS	FOXWORTH
+MS	FRENCH CAMP
+MS	FRIARS POINT
+MS	FULTON
+MS	GALLMAN
+MS	GATTMAN
+MS	GAUTIER
+MS	GEORGETOWN
+MS	GLEN
+MS	GLEN ALLAN
+MS	GLENDORA
+MS	GLOSTER
+MS	GOLDEN
+MS	GOODMAN
+MS	GORE SPRINGS
+MS	GRACE
+MS	GREENVILLE
+MS	GREENWOOD
+MS	GREENWOOD SPG
+MS	GREENWOOD SPR
+MS	GREENWOOD SPRINGS
+MS	GRENADA
+MS	GULFPORT
+MS	GUNNISON
+MS	GUNTOWN
+MS	HAMILTON
+MS	HARPERVILLE
+MS	HARRISTON
+MS	HARRISVILLE
+MS	HATTIESBURG
+MS	HAZLEHURST
+MS	HEIDELBERG
+MS	HERMANVILLE
+MS	HERNANDO
+MS	HICKORY
+MS	HICKORY FLAT
+MS	HILLSBORO
+MS	HOLCOMB
+MS	HOLLANDALE
+MS	HOLLY BLUFF
+MS	HOLLY RIDGE
+MS	HOLLY SPRINGS
+MS	HORN LAKE
+MS	HOULKA
+MS	HOUSTON
+MS	HURLEY
+MS	INDEPENDENCE
+MS	INDIANOLA
+MS	INVERNESS
+MS	ISOLA
+MS	ITTA BENA
+MS	IUKA
+MS	JACKSON
+MS	JAYESS
+MS	JONESTOWN
+MS	KEESLER AFB
+MS	KILMICHAEL
+MS	KILN
+MS	KOKOMO
+MS	KOSCIUSKO
+MS	KOSSUTH
+MS	KREOLE
+MS	LAFAYETTE
+MS	LAKE
+MS	LAKE CORMORANT
+MS	LAKESHORE
+MS	LAMAR
+MS	LAMBERT
+MS	LAMONT
+MS	LAUDERDALE
+MS	LAUREL
+MS	LAWRENCE
+MS	LEAF
+MS	LEAKESVILLE
+MS	LEARNED
+MS	LELAND
+MS	LENA
+MS	LEXINGTON
+MS	LIBERTY
+MS	LITTLE ROCK
+MS	LK CORMORANT
+MS	LONG BEACH
+MS	LORMAN
+MS	LOUIN
+MS	LOUISE
+MS	LOUISVILLE
+MS	LUCEDALE
+MS	LUDLOW
+MS	LULA
+MS	LUMBERTON
+MS	LYON
+MS	MABEN
+MS	MACON
+MS	MADDEN
+MS	MADISON
+MS	MAGEE
+MS	MAGNOLIA
+MS	MANTACHIE
+MS	MANTEE
+MS	MARIETTA
+MS	MARION
+MS	MARKS
+MS	MATHERVILLE
+MS	MATHISTON
+MS	MATTSON
+MS	MAYERSVILLE
+MS	MAYHEW
+MS	MC ADAMS
+MS	MC CALL CREEK
+MS	MC CARLEY
+MS	MCCOMB
+MS	MC COOL
+MS	MC HENRY
+MS	MC LAIN
+MS	MC NEILL
+MS	MEADVILLE
+MS	MENDENHALL
+MS	MERIDIAN
+MS	MERIGOLD
+MS	METCALFE
+MS	MICHIGAN CITY
+MS	MIDNIGHT
+MS	MINERAL WELLS
+MS	MINTER CITY
+MS	MISSISSIPPI STATE
+MS	MIZE
+MS	MONEY
+MS	MONTICELLO
+MS	MONTPELIER
+MS	MOOREVILLE
+MS	MOORHEAD
+MS	MORGAN CITY
+MS	MORGANTOWN
+MS	MORTON
+MS	MOSELLE
+MS	MOSS
+MS	MOSS POINT
+MS	MOUND BAYOU
+MS	MOUNT OLIVE
+MS	MOUNT PLEASANT
+MS	MS STATE UNIV
+MS	MT PLEASANT
+MS	MYRTLE
+MS	NAS MERIDIAN
+MS	NATCHEZ
+MS	NAVAL AIR STA MERIDIAN
+MS	N CARROLLTON
+MS	NEELY
+MS	NESBIT
+MS	NETTLETON
+MS	NEW ALBANY
+MS	NEW AUGUSTA
+MS	NEWHEBRON
+MS	NEW SITE
+MS	NEWTON
+MS	NICHOLSON
+MS	NITTA YUMA
+MS	NORTH CARROLLTON
+MS	NOXAPATER
+MS	OAKLAND
+MS	OAK VALE
+MS	OCEAN SPRINGS
+MS	OKOLONA
+MS	OLIVE BRANCH
+MS	OSYKA
+MS	OVETT
+MS	OXFORD
+MS	PACE
+MS	PACHUTA
+MS	PANTHER BURN
+MS	PARCHMAN
+MS	PARIS
+MS	PASCAGOULA
+MS	PASS CHRIS
+MS	PASS CHRISTIAN
+MS	PASS CHRISTIN
+MS	PATTISON
+MS	PAULDING
+MS	PEARL
+MS	PEARLINGTON
+MS	PELAHATCHIE
+MS	PERCY
+MS	PERKINSTON
+MS	PETAL
+MS	PHEBA
+MS	PHILADELPHIA
+MS	PHILIPP
+MS	PICAYUNE
+MS	PICKENS
+MS	PINEY WOODS
+MS	PINOLA
+MS	PITTSBORO
+MS	PLANTERSVILLE
+MS	POCAHONTAS
+MS	PONTOTOC
+MS	POPE
+MS	POPLARVILLE
+MS	PORTERVILLE
+MS	PORT GIBSON
+MS	POTTS CAMP
+MS	PRAIRIE
+MS	PRAIRIE POINT
+MS	PRENTISS
+MS	PRESTON
+MS	PUCKETT
+MS	PULASKI
+MS	PURVIS
+MS	QUITMAN
+MS	RALEIGH
+MS	RANDOLPH
+MS	RAYMOND
+MS	RED BANKS
+MS	REDWOOD
+MS	REFORM
+MS	RENA LARA
+MS	RICH
+MS	RICHLAND
+MS	RICHTON
+MS	RIDGELAND
+MS	RIENZI
+MS	RIPLEY
+MS	ROBINSONVILLE
+MS	ROLLING FORK
+MS	ROME
+MS	ROSEDALE
+MS	ROSE HILL
+MS	ROXIE
+MS	RULEVILLE
+MS	RUTH
+MS	SALLIS
+MS	SALTILLO
+MS	SANATORIUM
+MS	SANDERSVILLE
+MS	SANDHILL
+MS	SANDY HOOK
+MS	SARAH
+MS	SARDIS
+MS	SAREPTA
+MS	SATARTIA
+MS	SAUCIER
+MS	SAVAGE
+MS	SCHLATER
+MS	SCOBEY
+MS	SCOOBA
+MS	SCOTT
+MS	SEBASTOPOL
+MS	SEMINARY
+MS	SENATOBIA
+MS	SHANNON
+MS	SHARON
+MS	SHAW
+MS	SHELBY
+MS	SHERARD
+MS	SHERMAN
+MS	SHUBUTA
+MS	SHUQUALAK
+MS	SIBLEY
+MS	SIDON
+MS	SILVER CITY
+MS	SILVER CREEK
+MS	SKENE
+MS	SLATE SPRING
+MS	SLEDGE
+MS	SMITHDALE
+MS	SMITHVILLE
+MS	SONTAG
+MS	SOSO
+MS	SOUTHAVEN
+MS	STAR
+MS	STARKVILLE
+MS	STATE LINE
+MS	STEENS
+MS	STENNIS CTR
+MS	STENNIS SPACE CENTER
+MS	STENNIS SP CT
+MS	STEWART
+MS	STONEVILLE
+MS	STONEWALL
+MS	STOVALL
+MS	STRINGER
+MS	STURGIS
+MS	SUMMIT
+MS	SUMNER
+MS	SUMRALL
+MS	SUNFLOWER
+MS	SWAN LAKE
+MS	SWIFTOWN
+MS	TAYLOR
+MS	TAYLORSVILLE
+MS	TCHULA
+MS	TERRY
+MS	THAXTON
+MS	THOMASTOWN
+MS	THORNTON
+MS	TIE PLANT
+MS	TILLATOBA
+MS	TINSLEY
+MS	TIPLERSVILLE
+MS	TIPPO
+MS	TISHOMINGO
+MS	TOCCOPOLA
+MS	TOMNOLEN
+MS	TOOMSUBA
+MS	TOUGALOO
+MS	TREBLOC
+MS	TREMONT
+MS	TULA
+MS	TUNICA
+MS	TUNICA RESORT
+MS	TUNICA RESORTS
+MS	TUPELO
+MS	TUTWILER
+MS	TYLERTOWN
+MS	UNION
+MS	UNION CHURCH
+MS	UNIVERSITY
+MS	UTICA
+MS	VAIDEN
+MS	VALLEY PARK
+MS	VANCE
+MS	VANCLEAVE
+MS	VAN VLEET
+MS	VARDAMAN
+MS	VAUGHAN
+MS	VERONA
+MS	VICKSBURG
+MS	VICTORIA
+MS	VOSSBURG
+MS	WALLS
+MS	WALNUT
+MS	WALNUT GROVE
+MS	WALTHALL
+MS	WASHINGTON
+MS	WATERFORD
+MS	WATER VALLEY
+MS	WAVELAND
+MS	WAYNESBORO
+MS	WAYSIDE
+MS	WEBB
+MS	WEIR
+MS	WESSON
+MS	WEST
+MS	WEST POINT
+MS	WHEELER
+MS	WHITFIELD
+MS	WIGGINS
+MS	WINONA
+MS	WINSTONVILLE
+MS	WINTERVILLE
+MS	WOODLAND
+MS	WOODVILLE
+MS	YAZOO CITY
+MT	ABSAROKEE
+MT	ACTON
+MT	ALBERTON
+MT	ALDER
+MT	ALZADA
+MT	ANACONDA
+MT	ANGELA
+MT	ANTELOPE
+MT	ARLEE
+MT	ASHLAND
+MT	AUGUSTA
+MT	AVON
+MT	BABB
+MT	BAINVILLE
+MT	BAKER
+MT	BALLANTINE
+MT	BASIN
+MT	BEARCREEK
+MT	BELFRY
+MT	BELGRADE
+MT	BELT
+MT	BIDDLE
+MT	BIG ARM
+MT	BIGFORK
+MT	BIGHORN
+MT	BIG SANDY
+MT	BIG SKY
+MT	BIG TIMBER
+MT	BILLINGS
+MT	BIRNEY
+MT	BLACK EAGLE
+MT	BLOOMFIELD
+MT	BONNER
+MT	BOULDER
+MT	BOX ELDER
+MT	BOYD
+MT	BOYES
+MT	BOZEMAN
+MT	BRADY
+MT	BRIDGER
+MT	BROADUS
+MT	BROADVIEW
+MT	BROCKTON
+MT	BROCKWAY
+MT	BROWNING
+MT	BRUSETT
+MT	BUFFALO
+MT	BUSBY
+MT	BUTTE
+MT	BYNUM
+MT	CAMERON
+MT	CANYON CREEK
+MT	CAPITOL
+MT	CARDWELL
+MT	CARTER
+MT	CASCADE
+MT	CAT CREEK
+MT	CHARLO
+MT	CHESTER
+MT	CHINOOK
+MT	CHOTEAU
+MT	CIRCLE
+MT	CLANCY
+MT	CLINTON
+MT	CLYDE PARK
+MT	COFFEE CREEK
+MT	COHAGEN
+MT	COLSTRIP
+MT	COLUMBIA FALLS
+MT	COLUMBIA FLS
+MT	COLUMBUS
+MT	CONDON
+MT	CONNER
+MT	CONRAD
+MT	COOKE CITY
+MT	CORAM
+MT	CORVALLIS
+MT	CRAIG
+MT	CRANE
+MT	CRESTON
+MT	CROW AGENCY
+MT	CULBERTSON
+MT	CUSTER
+MT	CUT BANK
+MT	DAGMAR
+MT	DARBY
+MT	DAYTON
+MT	DE BORGIA
+MT	DECKER
+MT	DEER LODGE
+MT	DELL
+MT	DENTON
+MT	DILLON
+MT	DIVIDE
+MT	DIXON
+MT	DODSON
+MT	DRUMMOND
+MT	DUPUYER
+MT	DUTTON
+MT	EAST GLACIER PARK
+MT	EAST HELENA
+MT	EDGAR
+MT	E GLACIER PAR
+MT	E GLACIER PARK
+MT	E GLACIER PK
+MT	EKALAKA
+MT	ELLISTON
+MT	ELMO
+MT	EMIGRANT
+MT	ENNIS
+MT	ESSEX
+MT	ETHRIDGE
+MT	EUREKA
+MT	EVERGREEN
+MT	FAIRFIELD
+MT	FAIRVIEW
+MT	FALLON
+MT	FERDIG
+MT	FISHTAIL
+MT	FLAXVILLE
+MT	FLORENCE
+MT	FLOWEREE
+MT	FOREST GROVE
+MT	FORSYTH
+MT	FORT BENTON
+MT	FORT HARRISON
+MT	FORTINE
+MT	FORT PECK
+MT	FORT SHAW
+MT	FORT SMITH
+MT	FOUR BUTTES
+MT	FOX
+MT	FRAZER
+MT	FRENCHTOWN
+MT	FROID
+MT	FROMBERG
+MT	GALATA
+MT	GALLATIN GATEWAY
+MT	GALLATIN GTWY
+MT	GARDINER
+MT	GARNEILL
+MT	GARRISON
+MT	GARRYOWEN
+MT	GERALDINE
+MT	GEYSER
+MT	GILDFORD
+MT	GLASGOW
+MT	GLEN
+MT	GLENDIVE
+MT	GLENTANA
+MT	GOLD CREEK
+MT	GRANTSDALE
+MT	GRASS RANGE
+MT	GREAT FALLS
+MT	GREENOUGH
+MT	GREYCLIFF
+MT	HALL
+MT	HAMILTON
+MT	HAMMOND
+MT	HARDIN
+MT	HARLEM
+MT	HARLOWTON
+MT	HARRISON
+MT	HATHAWAY
+MT	HAUGAN
+MT	HAVRE
+MT	HAYS
+MT	HEART BUTTE
+MT	HELENA
+MT	HELMVILLE
+MT	HERON
+MT	HIGHWOOD
+MT	HILGER
+MT	HINGHAM
+MT	HINSDALE
+MT	HOBSON
+MT	HOGELAND
+MT	HOMESTEAD
+MT	HOT SPRINGS
+MT	HUNGRY HORSE
+MT	HUNTLEY
+MT	HUSON
+MT	HYSHAM
+MT	INGOMAR
+MT	INVERNESS
+MT	ISMAY
+MT	JACKSON
+MT	JEFFERSON CITY
+MT	JEFFERSON CTY
+MT	JOLIET
+MT	JOPLIN
+MT	JORDAN
+MT	JUDITH GAP
+MT	KALISPELL
+MT	KEVIN
+MT	KILA
+MT	KINSEY
+MT	KREMLIN
+MT	LAKE MCDONALD
+MT	LAKE MC DONALD
+MT	LAKESIDE
+MT	LAMBERT
+MT	LAME DEER
+MT	LARSLAN
+MT	LAUREL
+MT	LAVINA
+MT	LEDGER
+MT	LEWISTOWN
+MT	LIBBY
+MT	LIMA
+MT	LINCOLN
+MT	LINDSAY
+MT	LIVINGSTON
+MT	LLOYD
+MT	LODGE GRASS
+MT	LOLO
+MT	LOMA
+MT	LONEPINE
+MT	LORING
+MT	LOTHAIR
+MT	LUSTRE
+MT	LUTHER
+MT	MALMSTROM AFB
+MT	MALMSTROM A F B
+MT	MALTA
+MT	MANHATTAN
+MT	MARION
+MT	MARTIN CITY
+MT	MARTINSDALE
+MT	MARYSVILLE
+MT	MC ALLISTER
+MT	MCCABE
+MT	MC LEOD
+MT	MEDICINE LAKE
+MT	MELROSE
+MT	MELSTONE
+MT	MELVILLE
+MT	MILDRED
+MT	MILES CITY
+MT	MILL IRON
+MT	MILLTOWN
+MT	MISSOULA
+MT	MOCCASIN
+MT	MOIESE
+MT	MOLT
+MT	MONARCH
+MT	MONTANA CITY
+MT	MOORE
+MT	MOSBY
+MT	MUSSELSHELL
+MT	NASHUA
+MT	NEIHART
+MT	NIARADA
+MT	NORRIS
+MT	NOXON
+MT	NYE
+MT	OILMONT
+MT	OLIVE
+MT	OLNEY
+MT	OPHEIM
+MT	OTTER
+MT	OUTLOOK
+MT	OVANDO
+MT	PABLO
+MT	PARADISE
+MT	PARK CITY
+MT	PEERLESS
+MT	PENDROY
+MT	PHILIPSBURG
+MT	PINESDALE
+MT	PLAINS
+MT	PLENTYWOOD
+MT	PLEVNA
+MT	POLARIS
+MT	POLEBRIDGE
+MT	POLSON
+MT	POMPEY PILLAR
+MT	POMPEYS PILLAR
+MT	PONY
+MT	POPLAR
+MT	POTOMAC
+MT	POWDERVILLE
+MT	POWER
+MT	PRAY
+MT	PROCTOR
+MT	PRYOR
+MT	RADERSBURG
+MT	RAMSAY
+MT	RAPELJE
+MT	RAVALLI
+MT	RAYMOND
+MT	RAYNESFORD
+MT	RED LODGE
+MT	REDSTONE
+MT	REED POINT
+MT	RESERVE
+MT	REXFORD
+MT	RICHEY
+MT	RICHLAND
+MT	RINGLING
+MT	ROBERTS
+MT	ROLLINS
+MT	RONAN
+MT	ROSCOE
+MT	ROSEBUD
+MT	ROUNDUP
+MT	ROY
+MT	RUDYARD
+MT	RYEGATE
+MT	SACO
+MT	SAINT IGNATIUS
+MT	SAINT MARIE
+MT	SAINT REGIS
+MT	SAINT XAVIER
+MT	SALTESE
+MT	SAND COULEE
+MT	SANDERS
+MT	SAND SPRINGS
+MT	SANTA RITA
+MT	SAVAGE
+MT	SCOBEY
+MT	SEELEY LAKE
+MT	SHAWMUT
+MT	SHELBY
+MT	SHEPHERD
+MT	SHERIDAN
+MT	SHONKIN
+MT	SIDNEY
+MT	SILESIA
+MT	SILVER GATE
+MT	SILVER STAR
+MT	SIMMS
+MT	SOMERS
+MT	SONNETTE
+MT	SPRINGDALE
+MT	SQUARE BUTTE
+MT	STANFORD
+MT	STEVENSVILLE
+MT	ST IGNATIUS
+MT	STOCKETT
+MT	STRYKER
+MT	SULA
+MT	SUMATRA
+MT	SUNBURST
+MT	SUN RIVER
+MT	SUPERIOR
+MT	SWAN LAKE
+MT	SWEET GRASS
+MT	TEIGEN
+MT	TERRY
+MT	THOMPSON FALLS
+MT	THOMPSON FLS
+MT	THREE FORKS
+MT	TOSTON
+MT	TOWNSEND
+MT	TRACY
+MT	TREGO
+MT	TROUT CREEK
+MT	TROY
+MT	TURNER
+MT	TWIN BRIDGES
+MT	TWO DOT
+MT	ULM
+MT	VALIER
+MT	VANDALIA
+MT	VAUGHN
+MT	VICTOR
+MT	VIDA
+MT	VIRGINIA CITY
+MT	VOLBORG
+MT	WALKERVILLE
+MT	WARM SPRINGS
+MT	WASHOE
+MT	WESTBY
+MT	WEST GLACIER
+MT	WEST YELLOWSTONE
+MT	WHITEFISH
+MT	WHITEHALL
+MT	WHITE SULPHUR SPRINGS
+MT	WHITETAIL
+MT	WHITEWATER
+MT	WHITLASH
+MT	WHT SPHR SPGS
+MT	WIBAUX
+MT	WILLARD
+MT	WILLOW CREEK
+MT	WILSALL
+MT	WINIFRED
+MT	WINNETT
+MT	WINSTON
+MT	WISDOM
+MT	WISE RIVER
+MT	WOLF CREEK
+MT	WOLF POINT
+MT	WORDEN
+MT	W YELLOWSTONE
+MT	WYOLA
+MT	YELLOWTAIL
+MT	ZORTMAN
+MT	ZURICH
+NC	ABERDEEN
+NC	ADVANCE
+NC	AHOSKIE
+NC	ALAMANCE
+NC	ALBEMARLE
+NC	ALBERTSON
+NC	ALEXANDER
+NC	ALEXANDER MILLS
+NC	ALEXANDER MLS
+NC	ALEXIS
+NC	ALLIANCE
+NC	ALMOND
+NC	ALTAMAHAW
+NC	AMF G BORO
+NC	AMF GREENSBORO
+NC	ANDREWS
+NC	ANGIER
+NC	ANSONVILLE
+NC	APEX
+NC	AQUONE
+NC	ARAPAHOE
+NC	ARARAT
+NC	ARCHDALE
+NC	ARDEN
+NC	ASH
+NC	ASHEBORO
+NC	ASHEVILLE
+NC	ATKINSON
+NC	ATLANTIC
+NC	ATLANTIC BCH
+NC	ATLANTIC BEACH
+NC	AULANDER
+NC	AURORA
+NC	AUTRYVILLE
+NC	AVON
+NC	AYDEN
+NC	AYDLETT
+NC	BADIN
+NC	BADIN LAKE
+NC	BAHAMA
+NC	BAILEY
+NC	BAKERSVILLE
+NC	BALD HEAD ISL
+NC	BALD HEAD ISLAND
+NC	BALSAM
+NC	BALSAM GROVE
+NC	BANNER ELK
+NC	BARBER
+NC	BARCO
+NC	BARIUM SPNGS
+NC	BARIUM SPRINGS
+NC	BARNARDSVILLE
+NC	BARNESVILLE
+NC	BAT CAVE
+NC	BATH
+NC	BATTLEBORO
+NC	BAYBORO
+NC	BEAR CREEK
+NC	BEARGRASS
+NC	BEAUFORT
+NC	BEECH MNT
+NC	BEECH MOUNTAIN
+NC	BELEWS CREEK
+NC	BELHAVEN
+NC	BELLARTHUR
+NC	BELMONT
+NC	BELVIDERE
+NC	BELVILLE
+NC	BENNETT
+NC	BENSON
+NC	BESSEMER CITY
+NC	BETHANIA
+NC	BETHEL
+NC	BEULAVILLE
+NC	BILTMORE FOREST
+NC	BILTMORE FRST
+NC	BILTMORE LAKE
+NC	BISCOE
+NC	BLACK CREEK
+NC	BLACK MOUNTAIN
+NC	BLACK MTN
+NC	BLADENBORO
+NC	BLANCH
+NC	BLOUNTS CREEK
+NC	BLOWING ROCK
+NC	BOGER CITY
+NC	BOILING SPGS
+NC	BOILING SPRINGS
+NC	BOLIVIA
+NC	BOLTON
+NC	BONLEE
+NC	BOOMER
+NC	BOONE
+NC	BOONVILLE
+NC	BOSTIC
+NC	BOWDENS
+NC	BRASSTOWN
+NC	BRENTWOOD
+NC	BREVARD
+NC	BRIDGETON
+NC	BROADWAY
+NC	BROWNS SUMMIT
+NC	BRUNSWICK
+NC	BRYSON CITY
+NC	BUFFALO LAKE
+NC	BUIES CREEK
+NC	BULLOCK
+NC	BUNN
+NC	BUNNLEVEL
+NC	BURGAW
+NC	BURLINGTON
+NC	BURNSVILLE
+NC	BUTNER
+NC	BUTTERS
+NC	BUXTON
+NC	BYNUM
+NC	CALABASH
+NC	CALYPSO
+NC	CAMDEN
+NC	CAMERON
+NC	CAMP LEJEUNE
+NC	CANDLER
+NC	CANDOR
+NC	CANTON
+NC	CAPE CARTERET
+NC	CAPE FEAR
+NC	CAROLEEN
+NC	CAROLINA BCH
+NC	CAROLINA BEACH
+NC	CAROLINA SHOR
+NC	CAROLINA SHORES
+NC	CARRBORO
+NC	CARTHAGE
+NC	CARY
+NC	CASAR
+NC	CASHIERS
+NC	CASTALIA
+NC	CASTLE HAYNE
+NC	CASWELL BEACH
+NC	CATAWBA
+NC	CEDAR FALLS
+NC	CEDAR GROVE
+NC	CEDAR ISLAND
+NC	CEDAR MOUNTAIN
+NC	CEDAR MTN
+NC	CEDAR POINT
+NC	CERRO GORDO
+NC	CHADBOURN
+NC	CHAPEL HILL
+NC	CHARLOTTE
+NC	CHEROKEE
+NC	CHERRY POINT
+NC	CHERRYVILLE
+NC	CHIMNEY ROCK
+NC	CHINA GROVE
+NC	CHINQUAPIN
+NC	CHOCOWINITY
+NC	CLAREMONT
+NC	CLARENDON
+NC	CLARKTON
+NC	CLAYTON
+NC	CLEMMONS
+NC	CLEVELAND
+NC	CLIFFSIDE
+NC	CLIMAX
+NC	CLINTON
+NC	CLYDE
+NC	COATS
+NC	COFIELD
+NC	COINJOCK
+NC	COLERAIN
+NC	COLERIDGE
+NC	COLFAX
+NC	COLLETTSVILLE
+NC	COLON
+NC	COLUMBIA
+NC	COLUMBUS
+NC	COMFORT
+NC	COMO
+NC	CONCORD
+NC	CONETOE
+NC	CONNELLY SPG
+NC	CONNELLYS SPG
+NC	CONNELLYS SPRINGS
+NC	CONOVER
+NC	CONWAY
+NC	COOLEEMEE
+NC	CORAPEAKE
+NC	CORDOVA
+NC	CORNELIUS
+NC	COROLLA
+NC	COUNCIL
+NC	COVE CITY
+NC	CRAMERTON
+NC	CREEDMOOR
+NC	CRESTON
+NC	CRESWELL
+NC	CROSSNORE
+NC	CROUSE
+NC	CRUMPLER
+NC	CULBERSON
+NC	CULLOWHEE
+NC	CUMBERLAND
+NC	CUMNOCK
+NC	CURRIE
+NC	CURRITUCK
+NC	DALLAS
+NC	DANA
+NC	DANBURY
+NC	DAVIDSON
+NC	DAVIS
+NC	DEEP GAP
+NC	DEEP RUN
+NC	DELCO
+NC	DENTON
+NC	DENVER
+NC	DILLSBORO
+NC	DOBSON
+NC	DOVER
+NC	DREXEL
+NC	DUBLIN
+NC	DUCK
+NC	DUDLEY
+NC	DUNN
+NC	DURANTS NECK
+NC	DURHAM
+NC	EAGLE ROCK
+NC	EAGLE SPRINGS
+NC	EARL
+NC	EAST BEND
+NC	EAST FAYETTEVILLE
+NC	EAST FLAT ROCK
+NC	EAST LAKE
+NC	EAST SPENCER
+NC	EDEN
+NC	EDENTON
+NC	EDNEYVILLE
+NC	EDWARD
+NC	E FAYETTEVILLE
+NC	E FAYETTEVLLE
+NC	EFLAND
+NC	E FLAT ROCK
+NC	ELIZABETH CITY
+NC	ELIZABETH CTY
+NC	ELIZABETHTOWN
+NC	ELKIN
+NC	ELK PARK
+NC	ELLENBORO
+NC	ELLERBE
+NC	ELM CITY
+NC	ELON
+NC	ELON COLLEGE
+NC	EMERALD ISLE
+NC	ENFIELD
+NC	ENGELHARD
+NC	ENKA
+NC	ENNICE
+NC	ENO VALLEY
+NC	ERNUL
+NC	ERWIN
+NC	ETHER
+NC	ETOWAH
+NC	EURE
+NC	EUREKA
+NC	EVERETTS
+NC	EVERGREEN
+NC	FAIR BLUFF
+NC	FAIRFIELD
+NC	FAIRMONT
+NC	FAIRVIEW
+NC	FAISON
+NC	FAITH
+NC	FALCON
+NC	FALKLAND
+NC	FALLSTON
+NC	FARMVILLE
+NC	FAYETTEVILLE
+NC	FEARRINGTON
+NC	FEARRINGTON VILLAGE
+NC	FERGUSON
+NC	FLAT ROCK
+NC	FLEETWOOD
+NC	FLETCHER
+NC	FONTANA DAM
+NC	FOREST CITY
+NC	FORT BRAGG
+NC	FOUNTAIN
+NC	FOUR OAKS
+NC	FOXFIRE VILLAGE
+NC	FOXFIRE VLG
+NC	FRANK
+NC	FRANKLIN
+NC	FRANKLINTON
+NC	FRANKLINVILLE
+NC	FREMONT
+NC	FRISCO
+NC	FUQUAY VARINA
+NC	GARLAND
+NC	GARNER
+NC	GARYSBURG
+NC	GASTON
+NC	GASTONIA
+NC	GATES
+NC	GATESVILLE
+NC	GEORGE
+NC	GERMANTON
+NC	GERTON
+NC	GIBSON
+NC	GIBSONVILLE
+NC	GLADE VALLEY
+NC	GLEN ALPINE
+NC	GLENDALE SPGS
+NC	GLENDALE SPRINGS
+NC	GLENDON
+NC	GLEN RAVEN
+NC	GLENVILLE
+NC	GLENWOOD
+NC	GLOUCESTER
+NC	GODWIN
+NC	GOLD HILL
+NC	GOLDSBORO
+NC	GOLDSTON
+NC	GRAHAM
+NC	GRANDY
+NC	GRANITE FALLS
+NC	GRANITE QRY
+NC	GRANITE QUARRY
+NC	GRANTSBORO
+NC	GRASSY CREEK
+NC	GREEN LEVEL
+NC	GREEN MOUNTAIN
+NC	GREEN MTN
+NC	GREENSBORO
+NC	GREENVILLE
+NC	GRIFTON
+NC	GRIMESLAND
+NC	GROVER
+NC	GULF
+NC	GUMBERRY
+NC	HALIFAX
+NC	HALLSBORO
+NC	HAMILTON
+NC	HAMLET
+NC	HAMPSTEAD
+NC	HAMPTONVILLE
+NC	HARBINGER
+NC	HARKERS IS
+NC	HARKERS ISLAND
+NC	HARMONY
+NC	HARRELLS
+NC	HARRELLSVILLE
+NC	HARRIS
+NC	HARRISBURG
+NC	HASSELL
+NC	HATTERAS
+NC	HAVELOCK
+NC	HAW RIVER
+NC	HAYESVILLE
+NC	HAYS
+NC	HAZELWOOD
+NC	HENDERSON
+NC	HENDERSONVILLE
+NC	HENDERSONVLLE
+NC	HENRICO
+NC	HENRIETTA
+NC	HERTFORD
+NC	HICKORY
+NC	HIDDENITE
+NC	HIGHFALLS
+NC	HIGHLANDS
+NC	HIGH POINT
+NC	HIGH SHOALS
+NC	HILDEBRAN
+NC	HILLSBOROUGH
+NC	HOBBSVILLE
+NC	HOBGOOD
+NC	HOBUCKEN
+NC	HOFFMAN
+NC	HOLDEN BEACH
+NC	HOLLISTER
+NC	HOLLY RIDGE
+NC	HOLLY SPRINGS
+NC	HOOKERTON
+NC	HOPE MILLS
+NC	HORSE SHOE
+NC	HOT SPRINGS
+NC	HUBERT
+NC	HUDSON
+NC	HUNTERSVILLE
+NC	HURDLE MILLS
+NC	HUSK
+NC	ICARD
+NC	INDIAN BEACH
+NC	INDIAN TRAIL
+NC	INGOLD
+NC	IRON STATION
+NC	IVANHOE
+NC	JACKSON
+NC	JACKSON SPGS
+NC	JACKSON SPRINGS
+NC	JACKSONVILLE
+NC	JAMESTOWN
+NC	JAMESVILLE
+NC	JARVISBURG
+NC	JEFFERSON
+NC	JONAS RIDGE
+NC	JONESVILLE
+NC	JULIAN
+NC	KANNAPOLIS
+NC	KELFORD
+NC	KELLY
+NC	KENANSVILLE
+NC	KENLY
+NC	KERNERSVILLE
+NC	KILL DEVIL HILLS
+NC	KILL DEVIL HL
+NC	KING
+NC	KINGS MOUNTAIN
+NC	KINGS MTN
+NC	KINGSTOWN
+NC	KINSTON
+NC	KIPLING
+NC	KITTRELL
+NC	KITTY HAWK
+NC	KNIGHTDALE
+NC	KNOTTS ISLAND
+NC	KURE BEACH
+NC	LA GRANGE
+NC	LAKE JUNALUSKA
+NC	LAKE LURE
+NC	LAKE PARK
+NC	LAKE SANTEETLAH
+NC	LAKE TOXAWAY
+NC	LAKEVIEW
+NC	LAKE WACCAMAW
+NC	LANDIS
+NC	LANSING
+NC	LASKER
+NC	LATTIMORE
+NC	LAUREL HILL
+NC	LAUREL PARK
+NC	LAUREL SPGS
+NC	LAUREL SPRINGS
+NC	LAURINBURG
+NC	LAWNDALE
+NC	LAWSONVILLE
+NC	LEASBURG
+NC	LEICESTER
+NC	LELAND
+NC	LEMON SPRINGS
+NC	LENOIR
+NC	LEWISTON
+NC	LEWISTON WOODVILLE
+NC	LEWISVILLE
+NC	LEXINGTON
+NC	LIBERTY
+NC	LILESVILLE
+NC	LILLINGTON
+NC	LINCOLNTON
+NC	LINDEN
+NC	LINVILLE
+NC	LINVILLE FALLS
+NC	LINVILLE FLS
+NC	LINWOOD
+NC	LITTLE SWITZERLAND
+NC	LITTLETON
+NC	LK JUNALUSKA
+NC	LK SANTEETLAH
+NC	LOCUST
+NC	LONGISLAND
+NC	LONGWOOD
+NC	LOUISBURG
+NC	LOWELL
+NC	LOWGAP
+NC	LOWLAND
+NC	LTL SWITZRLND
+NC	LUCAMA
+NC	LUMBER BRIDGE
+NC	LUMBERTON
+NC	LYNN
+NC	MACCLESFIELD
+NC	MACON
+NC	MADISON
+NC	MAGGIE VALLEY
+NC	MAGNOLIA
+NC	MAIDEN
+NC	MAMERS
+NC	MANNS HARBOR
+NC	MANSON
+NC	MANTEO
+NC	MAPLE
+NC	MAPLE HILL
+NC	MARBLE
+NC	MARGARETTSVILLE
+NC	MARGARETTSVL
+NC	MARIETTA
+NC	MARION
+NC	MARSHALL
+NC	MARSHALLBERG
+NC	MARS HILL
+NC	MARSHVILLE
+NC	MARSTON
+NC	MARVIN
+NC	MATTHEWS
+NC	MAURY
+NC	MAXTON
+NC	MAYODAN
+NC	MAYSVILLE
+NC	MC ADENVILLE
+NC	MCCUTCHEON FIELD
+NC	MCCUTCHN FLD
+NC	MC FARLAN
+NC	MC GRADY
+NC	MC LEANSVILLE
+NC	MEBANE
+NC	MERRITT
+NC	MERRY HILL
+NC	MESIC
+NC	MICAVILLE
+NC	MICRO
+NC	MIDDLEBURG
+NC	MIDDLESEX
+NC	MIDLAND
+NC	MIDWAY PARK
+NC	MILLERS CREEK
+NC	MILL SPRING
+NC	MILLS RIVER
+NC	MILTON
+NC	MILWAUKEE
+NC	MINERAL SPGS
+NC	MINERAL SPRINGS
+NC	MINNEAPOLIS
+NC	MINNESOTT BCH
+NC	MINNESOTT BEACH
+NC	MINT HILL
+NC	MISENHEIMER
+NC	MOCKSVILLE
+NC	MONCURE
+NC	MONROE
+NC	MONTEZUMA
+NC	MONTREAT
+NC	MOORESBORO
+NC	MOORESVILLE
+NC	MORAVIAN FALLS
+NC	MORAVIAN FLS
+NC	MOREHEAD CITY
+NC	MORGANTON
+NC	MORRISVILLE
+NC	MORVEN
+NC	MOUNTAIN HOME
+NC	MOUNT AIRY
+NC	MOUNT GILEAD
+NC	MOUNT HOLLY
+NC	MOUNT MOURNE
+NC	MOUNT OLIVE
+NC	MOUNT PLEASANT
+NC	MOUNT ULLA
+NC	MOYOCK
+NC	MT HOLLY
+NC	MT PLEASANT
+NC	MURFREESBORO
+NC	MURPHY
+NC	NAGS HEAD
+NC	NAKINA
+NC	NAPLES
+NC	NASHVILLE
+NC	NAVAL HOS
+NC	NAVAL HOSPITAL
+NC	NAVASSA
+NC	NEBO
+NC	NEW BERN
+NC	NEWELL
+NC	NEW HILL
+NC	NEWLAND
+NC	NEW LONDON
+NC	NEWPORT
+NC	NEWTON
+NC	NEWTON GROVE
+NC	NORLINA
+NC	NORMAN
+NC	NORTH WILKESBORO
+NC	NORWOOD
+NC	N TOPSAIL BCH
+NC	N TOPSAIL BEACH
+NC	N WILKESBORO
+NC	OAKBORO
+NC	OAK CITY
+NC	OAK ISLAND
+NC	OAK RIDGE
+NC	OCEAN ISL BCH
+NC	OCEAN ISLE BEACH
+NC	OCRACOKE
+NC	OLD FORT
+NC	OLIN
+NC	OLIVIA
+NC	ORIENTAL
+NC	ORRUM
+NC	OTTO
+NC	OXFORD
+NC	PANTEGO
+NC	PARKTON
+NC	PARMELE
+NC	PATTERSON
+NC	PAW CREEK
+NC	PEACHLAND
+NC	PELETIER
+NC	PELHAM
+NC	PEMBROKE
+NC	PENDLETON
+NC	PENLAND
+NC	PENROSE
+NC	PFAFFTOWN
+NC	PIKEVILLE
+NC	PILOT MOUNTAIN
+NC	PILOT MTN
+NC	PINEBLUFF
+NC	PINE HALL
+NC	PINEHURST
+NC	PINE KNOLL SHORES
+NC	PINE LEVEL
+NC	PINEOLA
+NC	PINETOPS
+NC	PINETOWN
+NC	PINEVILLE
+NC	PINEY CREEK
+NC	PINK HILL
+NC	PINNACLE
+NC	PISGAH FOREST
+NC	PITTSBORO
+NC	PKS
+NC	PLEASANT GARDEN
+NC	PLEASANT GDN
+NC	PLEASANT HILL
+NC	PLUMTREE
+NC	PLYMOUTH
+NC	POINT HARBOR
+NC	POLKTON
+NC	POLKVILLE
+NC	POLLOCKSVILLE
+NC	POPE AFB
+NC	POPE A F B
+NC	POPLAR BRANCH
+NC	POTECASI
+NC	POWELLS POINT
+NC	POWELLSVILLE
+NC	PRINCETON
+NC	PRINCEVILLE
+NC	PROCTORVILLE
+NC	PROSPECT HILL
+NC	PROVIDENCE
+NC	PURLEAR
+NC	RAEFORD
+NC	RALEIGH
+NC	RAMSEUR
+NC	RANDLEMAN
+NC	RED OAK
+NC	RED SPRINGS
+NC	REIDSVILLE
+NC	RESEARCH TRIANGLE PARK
+NC	REX
+NC	RHODHISS
+NC	RICHFIELD
+NC	RICHLANDS
+NC	RICH SQUARE
+NC	RIDGECREST
+NC	RIDGEWAY
+NC	RIEGELWOOD
+NC	ROANOKE RAPID
+NC	ROANOKE RAPIDS
+NC	ROANOKE RAPIDS AIR FORCE STA
+NC	ROARING GAP
+NC	ROARING RIVER
+NC	ROBBINS
+NC	ROBBINSVILLE
+NC	ROBERSONVILLE
+NC	ROCKINGHAM
+NC	ROCKWELL
+NC	ROCKY MOUNT
+NC	ROCKY POINT
+NC	RODANTHE
+NC	RODUCO
+NC	ROLESVILLE
+NC	RONDA
+NC	RONOK RPD AFS
+NC	ROPER
+NC	ROSEBORO
+NC	ROSE HILL
+NC	ROSMAN
+NC	ROUGEMONT
+NC	ROWLAND
+NC	ROXBORO
+NC	ROXOBEL
+NC	RTP
+NC	RUFFIN
+NC	RURAL HALL
+NC	RUTHERFORD COLLEGE
+NC	RUTHERFORDTON
+NC	RUTHERFRD COL
+NC	SAINT PAULS
+NC	SALEMBURG
+NC	SALISBURY
+NC	SALTER PATH
+NC	SALUDA
+NC	SALVO
+NC	SANDY RIDGE
+NC	SANFORD
+NC	SAPPHIRE
+NC	SARATOGA
+NC	SAW MILLS
+NC	SAXAPAHAW
+NC	S BRUNSWICK
+NC	SCALY MOUNTAIN
+NC	SCALY MTN
+NC	SCOTLAND NECK
+NC	SCOTTS
+NC	SCOTTVILLE
+NC	SCRANTON
+NC	SEABOARD
+NC	SEAGROVE
+NC	SEALEVEL
+NC	SEDALIA
+NC	SELMA
+NC	SEMORA
+NC	SEVEN DEVILS
+NC	SEVEN LAKES
+NC	SEVEN SPRINGS
+NC	SEVERN
+NC	SEYMOUR JOHNSON AFB
+NC	SEYMOUR JOHNSON A F B
+NC	SHALLOTTE
+NC	SHANNON
+NC	SHANNON PLAZA
+NC	SHARPSBURG
+NC	SHAWBORO
+NC	SHELBY
+NC	SHERRILLS FORD
+NC	SHERRILLS FRD
+NC	SHILOH
+NC	SILER CITY
+NC	SILOAM
+NC	SIMPSON
+NC	SIMS
+NC	SJAFB
+NC	SKYLAND
+NC	SMITHFIELD
+NC	SMYRNA
+NC	SNEADS FERRY
+NC	SNOW CAMP
+NC	SNOW HILL
+NC	SOPHIA
+NC	SOUTH BRUNSWICK
+NC	SOUTHERN PINES
+NC	SOUTHERN PNES
+NC	SOUTHERN SHORES
+NC	SOUTH MILLS
+NC	SOUTHMONT
+NC	SOUTHPORT
+NC	SOUTHRN SHORE
+NC	SPARTA
+NC	SPEED
+NC	SPENCER
+NC	SPINDALE
+NC	SPRING HOPE
+NC	SPRING LAKE
+NC	SPRUCE PINE
+NC	STACY
+NC	STALEY
+NC	STALLINGS
+NC	STANFIELD
+NC	STANLEY
+NC	STANTONSBURG
+NC	STAR
+NC	STATE ROAD
+NC	STATESVILLE
+NC	STEDMAN
+NC	STELLA
+NC	STEM
+NC	STOKES
+NC	STOKESDALE
+NC	STONEVILLE
+NC	STONEWALL
+NC	STONY POINT
+NC	STOVALL
+NC	STUMPY POINT
+NC	SUGAR GROVE
+NC	SUGAR MOUNTAIN
+NC	SUGAR MTN
+NC	SUMMERFIELD
+NC	SUNBURY
+NC	SUNSET BEACH
+NC	SUPPLY
+NC	SURF CITY
+NC	SWANNANOA
+NC	SWANQUARTER
+NC	SWANSBORO
+NC	SWEPSONVILLE
+NC	SYLVA
+NC	TABOR CITY
+NC	TAPOCO
+NC	TARAWA TER
+NC	TARAWA TERRACE
+NC	TARBORO
+NC	TAR HEEL
+NC	TAYLORSVILLE
+NC	TEACHEY
+NC	TERRELL
+NC	THOMASVILLE
+NC	THURMOND
+NC	TILLERY
+NC	TIMBERLAKE
+NC	TOAST
+NC	TOBACCOVILLE
+NC	TODD
+NC	TOPSAIL BEACH
+NC	TOPTON
+NC	TOWNSVILLE
+NC	TRAPHILL
+NC	TRENTON
+NC	TRENT WOODS
+NC	TRINITY
+NC	TRIPLETT
+NC	TROUTMAN
+NC	TROY
+NC	TRYON
+NC	TUCKASEGEE
+NC	TURKEY
+NC	TURNERSBURG
+NC	TUXEDO
+NC	TYNER
+NC	UNAKA
+NC	UNION GROVE
+NC	UNION MILLS
+NC	VALDESE
+NC	VALE
+NC	VALLE CRUCIS
+NC	VANCEBORO
+NC	VANDEMERE
+NC	VASS
+NC	VAUGHAN
+NC	VILAS
+NC	WACO
+NC	WADE
+NC	WADESBORO
+NC	WAGRAM
+NC	WAKE FOREST
+NC	WALKERTOWN
+NC	WALLACE
+NC	WALLBURG
+NC	WALNUT COVE
+NC	WALSTONBURG
+NC	WANCHESE
+NC	WARNE
+NC	WARRENSVILLE
+NC	WARRENTON
+NC	WARSAW
+NC	WASHINGTON
+NC	WATHA
+NC	WAVES
+NC	WAXHAW
+NC	WAYNESVILLE
+NC	WEAVERVILLE
+NC	WEBSTER
+NC	WEDDINGTON
+NC	WELCOME
+NC	WELDON
+NC	WENDELL
+NC	WENTWORTH
+NC	WESLEYAN COL
+NC	WESLEYAN COLLEGE
+NC	WESLEY CHAPEL
+NC	WEST END
+NC	WESTFIELD
+NC	WEST JEFFERSON
+NC	WHISPERING PINES
+NC	WHISPER PNES
+NC	WHITAKERS
+NC	WHITEHEAD
+NC	WHITE OAK
+NC	WHITE PLAINS
+NC	WHITEVILLE
+NC	WHITSETT
+NC	WHITTIER
+NC	WILBAR
+NC	WILKESBORO
+NC	WILLARD
+NC	WILLIAMSTON
+NC	WILLISTON
+NC	WILLOW SPRING
+NC	WILMINGTON
+NC	WILSON
+NC	WILSONS MILLS
+NC	WINDSOR
+NC	WINFALL
+NC	WINGATE
+NC	WINNABOW
+NC	WINSTON SALEM
+NC	WINTERVILLE
+NC	WINTON
+NC	WISE
+NC	W JEFFERSON
+NC	WOODFIN
+NC	WOODLAND
+NC	WOODLEAF
+NC	WRIGHTSVILLE BEACH
+NC	WRITSVLLE BCH
+NC	YADKINVILLE
+NC	YANCEYVILLE
+NC	YOUNGSVILLE
+NC	ZEBULON
+NC	ZIONVILLE
+NC	ZIRCONIA
+ND	ABERCROMBIE
+ND	ABSARAKA
+ND	ADAMS
+ND	ADRIAN
+ND	AGATE
+ND	ALAMO
+ND	ALEXANDER
+ND	ALFRED
+ND	ALICE
+ND	ALKABO
+ND	ALMONT
+ND	ALSEN
+ND	AMBROSE
+ND	AMENIA
+ND	AMIDON
+ND	ANAMOOSE
+ND	ANETA
+ND	ANTLER
+ND	APPAM
+ND	ARDOCH
+ND	ARENA
+ND	ARGUSVILLE
+ND	ARNEGARD
+ND	ARTHUR
+ND	ARVILLA
+ND	ASHLEY
+ND	AYR
+ND	BACKOO
+ND	BAKER
+ND	BALDWIN
+ND	BALFOUR
+ND	BALTA
+ND	BANTRY
+ND	BARNEY
+ND	BARTON
+ND	BATHGATE
+ND	BATTLEVIEW
+ND	BEACH
+ND	BELCOURT
+ND	BELDEN
+ND	BELFIELD
+ND	BENEDICT
+ND	BENTLEY
+ND	BERGEN
+ND	BERLIN
+ND	BERTHOLD
+ND	BERWICK
+ND	BEULAH
+ND	BINFORD
+ND	BISBEE
+ND	BISMARCK
+ND	BLAISDELL
+ND	BLANCHARD
+ND	BONETRAILL
+ND	BORDULAC
+ND	BOTTINEAU
+ND	BOWBELLS
+ND	BOWDON
+ND	BOWESMONT
+ND	BOWMAN
+ND	BRADDOCK
+ND	BRAMPTON
+ND	BRANTFORD
+ND	BREIEN
+ND	BREMEN
+ND	BRIARWOOD
+ND	BRINSMADE
+ND	BROCKET
+ND	BUCHANAN
+ND	BUCYRUS
+ND	BUFFALO
+ND	BUFFALO SPG
+ND	BUFFALO SPRINGS
+ND	BUFORD
+ND	BURLINGTON
+ND	BURNSTAD
+ND	BURT
+ND	BUTTE
+ND	BUXTON
+ND	CALEDONIA
+ND	CALIO
+ND	CALVIN
+ND	CANDO
+ND	CANNON BALL
+ND	CARBURY
+ND	CARPIO
+ND	CARRINGTON
+ND	CARSON
+ND	CARTWRIGHT
+ND	CASSELTON
+ND	CATHAY
+ND	CAVALIER
+ND	CAVALIER AFS
+ND	CAYUGA
+ND	CENTER
+ND	CHAFFEE
+ND	CHARLSON
+ND	CHASELEY
+ND	CHRISTINE
+ND	CHURCHS FERRY
+ND	CLEVELAND
+ND	CLIFFORD
+ND	CLYDE
+ND	COGSWELL
+ND	COLEHARBOR
+ND	COLFAX
+ND	COLGAN
+ND	COLGATE
+ND	COLUMBUS
+ND	CONCRETE
+ND	COOPERSTOWN
+ND	CORINTH
+ND	COTEAU
+ND	COULEE
+ND	COURTENAY
+ND	CRARY
+ND	CRETE
+ND	CROSBY
+ND	CRYSTAL
+ND	CRYSTAL SPGS
+ND	CRYSTAL SPRINGS
+ND	CUMMINGS
+ND	DAHLEN
+ND	DAVENPORT
+ND	DAWSON
+ND	DAZEY
+ND	DEERING
+ND	DELAMERE
+ND	DENBIGH
+ND	DENHOFF
+ND	DES LACS
+ND	DEVILS LAKE
+ND	DICKEY
+ND	DICKINSON
+ND	DODGE
+ND	DONNYBROOK
+ND	DOUGLAS
+ND	DOYON
+ND	DRAKE
+ND	DRAYTON
+ND	DRISCOLL
+ND	DUNN CENTER
+ND	DUNSEITH
+ND	DURBIN
+ND	DWIGHT
+ND	ECKELSON
+ND	EDGELEY
+ND	EDINBURG
+ND	EDMORE
+ND	EDMUNDS
+ND	EGELAND
+ND	ELDRIDGE
+ND	ELGIN
+ND	ELLENDALE
+ND	ELLIOTT
+ND	EMBDEN
+ND	EMERADO
+ND	EMMET
+ND	EMRICK
+ND	ENDERLIN
+ND	ENGLEVALE
+ND	EPPING
+ND	ERIE
+ND	ESMOND
+ND	FAIRDALE
+ND	FAIRFIELD
+ND	FAIRMOUNT
+ND	FARGO
+ND	FESSENDEN
+ND	FILLMORE
+ND	FINGAL
+ND	FINLEY
+ND	FLASHER
+ND	FLAXTON
+ND	FLORA
+ND	FORBES
+ND	FORDVILLE
+ND	FOREST RIVER
+ND	FORMAN
+ND	FORT CLARK
+ND	FORT RANSOM
+ND	FORT RICE
+ND	FORT TOTTEN
+ND	FORTUNA
+ND	FORT YATES
+ND	FOXHOLM
+ND	FREDONIA
+ND	FRONTIER
+ND	FRYBURG
+ND	FULLERTON
+ND	GACKLE
+ND	GALCHUTT
+ND	GALESBURG
+ND	GARDAR
+ND	GARDNER
+ND	GARRISON
+ND	GASCOYNE
+ND	GENESEO
+ND	GFAFB
+ND	GILBY
+ND	GLADSTONE
+ND	GLASSTON
+ND	GLENBURN
+ND	GLENFIELD
+ND	GLEN ULLIN
+ND	GOLDEN VALLEY
+ND	GOLVA
+ND	GOODRICH
+ND	GORHAM
+ND	GRACE CITY
+ND	GRAFTON
+ND	GRAND FORKS
+ND	GRAND FORKS AFB
+ND	GRANDIN
+ND	GRAND RAPIDS
+ND	GRANVILLE
+ND	GRASSY BUTTE
+ND	GREAT BEND
+ND	GRENORA
+ND	GUELPH
+ND	GWINNER
+ND	HAGUE
+ND	HALLIDAY
+ND	HAMAR
+ND	HAMBERG
+ND	HAMILTON
+ND	HAMLET
+ND	HAMPDEN
+ND	HANKINSON
+ND	HANNAFORD
+ND	HANNAH
+ND	HANNOVER
+ND	HANSBORO
+ND	HARLOW
+ND	HARVEY
+ND	HARWOOD
+ND	HASTINGS
+ND	HATTON
+ND	HAVANA
+ND	HAYNES
+ND	HAZELTON
+ND	HAZEN
+ND	HEATON
+ND	HEBRON
+ND	HEIL
+ND	HEIMDAL
+ND	HENSEL
+ND	HENSLER
+ND	HETTINGER
+ND	HICKSON
+ND	HILLSBORO
+ND	HONEYFORD
+ND	HOOPLE
+ND	HOPE
+ND	HORACE
+ND	HUFF
+ND	HUNTER
+ND	HURDSFIELD
+ND	INKSTER
+ND	JAMESTOWN
+ND	JESSIE
+ND	JOHNSTOWN
+ND	JOLIETTE
+ND	JUANITA
+ND	JUD
+ND	JUDSON
+ND	KARLSRUHE
+ND	KATHRYN
+ND	KEENE
+ND	KELSO
+ND	KEMPTON
+ND	KENMARE
+ND	KENSAL
+ND	KIEF
+ND	KILLDEER
+ND	KINDRED
+ND	KINTYRE
+ND	KLOTEN
+ND	KNOX
+ND	KRAMER
+ND	KULM
+ND	LAKE WILLIAMS
+ND	LAKOTA
+ND	LAMOURE
+ND	LANDA
+ND	LANGDON
+ND	LANKIN
+ND	LANSFORD
+ND	LARIMORE
+ND	LARK
+ND	LARSON
+ND	LAWTON
+ND	LEAL
+ND	LEEDS
+ND	LEFOR
+ND	LEHR
+ND	LEITH
+ND	LEONARD
+ND	LEROY
+ND	LIDGERWOOD
+ND	LIGNITE
+ND	LINCOLN
+ND	LINTON
+ND	LISBON
+ND	LITCHVILLE
+ND	LOMA
+ND	LORAINE
+ND	LOSTWOOD
+ND	LUDDEN
+ND	LUVERNE
+ND	MADDOCK
+ND	MAIDA
+ND	MAKOTI
+ND	MANDAN
+ND	MANDAREE
+ND	MANFRED
+ND	MANNING
+ND	MANTADOR
+ND	MANVEL
+ND	MAPES
+ND	MAPLETON
+ND	MARION
+ND	MARMARTH
+ND	MARSHALL
+ND	MARTIN
+ND	MAX
+ND	MAXBASS
+ND	MAYVILLE
+ND	MAZA
+ND	MCCANNA
+ND	MCCLUSKY
+ND	MCGREGOR
+ND	MCHENRY
+ND	MCKENZIE
+ND	MCLEOD
+ND	MCVILLE
+ND	MEDINA
+ND	MEDORA
+ND	MEKINOCK
+ND	MELVILLE
+ND	MENOKEN
+ND	MERCER
+ND	MERRICOURT
+ND	MICHIGAN
+ND	MILLARTON
+ND	MILNOR
+ND	MILTON
+ND	MINNEWAUKAN
+ND	MINOT
+ND	MINOT AFB
+ND	MINTO
+ND	MOFFIT
+ND	MOHALL
+ND	MONANGO
+ND	MONTPELIER
+ND	MOORETON
+ND	MOTT
+ND	MOUNTAIN
+ND	MUNICH
+ND	MYLO
+ND	NANSON
+ND	NAPOLEON
+ND	NASH
+ND	NECHE
+ND	NEKOMA
+ND	NEWBURG
+ND	NEW ENGLAND
+ND	NEW HRADEC
+ND	NEW LEIPZIG
+ND	NEW ROCKFORD
+ND	NEW SALEM
+ND	NEW TOWN
+ND	NIAGARA
+ND	NOME
+ND	NOONAN
+ND	NORMA
+ND	NORTHGATE
+ND	NORTH RIVER
+ND	NORTHWOOD
+ND	NORTONVILLE
+ND	NORWICH
+ND	OAKES
+ND	OBERON
+ND	ORISKA
+ND	ORR
+ND	ORRIN
+ND	OSNABROCK
+ND	OVERLY
+ND	OXBOW
+ND	PAGE
+ND	PALERMO
+ND	PARK RIVER
+ND	PARSHALL
+ND	PEKIN
+ND	PEMBINA
+ND	PENN
+ND	PERTH
+ND	PETERSBURG
+ND	PETTIBONE
+ND	PILLSBURY
+ND	PINGREE
+ND	PISEK
+ND	PLAZA
+ND	PLEASANT LAKE
+ND	PORTAL
+ND	PORTLAND
+ND	POWERS LAKE
+ND	PRAIRIE ROSE
+ND	PROSPER
+ND	RALEIGH
+ND	RAUB
+ND	RAWSON
+ND	RAY
+ND	REEDER
+ND	REGAN
+ND	REGENT
+ND	REILES ACRES
+ND	REYNOLDS
+ND	RHAME
+ND	RICHARDTON
+ND	RIVERDALE
+ND	RIVERSIDE
+ND	ROBINSON
+ND	ROCKLAKE
+ND	ROGERS
+ND	ROLETTE
+ND	ROLLA
+ND	ROSEGLEN
+ND	ROSS
+ND	ROTH
+ND	RUGBY
+ND	RUSO
+ND	RUTLAND
+ND	RYDER
+ND	SAINT ANTHONY
+ND	SAINT JOHN
+ND	SAINT MICHAEL
+ND	SAINT THOMAS
+ND	SANBORN
+ND	SAN HAVEN
+ND	SANISH
+ND	SARLES
+ND	SAWYER
+ND	SCRANTON
+ND	SELFRIDGE
+ND	SELZ
+ND	SENTINEL BUTTE
+ND	SENTNEL BUTTE
+ND	SHARON
+ND	SHELDON
+ND	SHERWOOD
+ND	SHEYENNE
+ND	SHIELDS
+ND	SIBLEY
+ND	SILVA
+ND	SOLEN
+ND	SOURIS
+ND	SOUTHAM
+ND	SOUTH HEART
+ND	SPIRITWOOD
+ND	SPRINGBROOK
+ND	STANLEY
+ND	STANTON
+ND	STARKWEATHER
+ND	STEELE
+ND	STERLING
+ND	STIRUM
+ND	STRASBURG
+ND	STRAUBVILLE
+ND	STREETER
+ND	SURREY
+ND	SUTTON
+ND	SYDNEY
+ND	SYKESTON
+ND	TAGUS
+ND	TAPPEN
+ND	TAYLOR
+ND	TEMPLE
+ND	TEMVIK
+ND	THOMPSON
+ND	TIOGA
+ND	TOKIO
+ND	TOLLEY
+ND	TOLNA
+ND	TOWER CITY
+ND	TOWNER
+ND	TRENTON
+ND	TROTTERS
+ND	TURTLE LAKE
+ND	TUTTLE
+ND	UNDERWOOD
+ND	UNION
+ND	UPHAM
+ND	VALLEY CITY
+ND	VELVA
+ND	VENTURIA
+ND	VERONA
+ND	VOLTAIRE
+ND	VOSS
+ND	WAHPETON
+ND	WALCOTT
+ND	WALES
+ND	WALHALLA
+ND	WALUM
+ND	WARWICK
+ND	WASHBURN
+ND	WATFORD CITY
+ND	WEBSTER
+ND	WERNER
+ND	WEST FARGO
+ND	WESTFIELD
+ND	WESTHOPE
+ND	WHEATLAND
+ND	WHEELOCK
+ND	WHITE EARTH
+ND	WHITE SHIELD
+ND	WHITMAN
+ND	WILD RICE
+ND	WILDROSE
+ND	WILLISTON
+ND	WILLOW CITY
+ND	WILTON
+ND	WIMBLEDON
+ND	WINDSOR
+ND	WING
+ND	WISHEK
+ND	WOLFORD
+ND	WOLSETH
+ND	WOODWORTH
+ND	WYNDMERE
+ND	YORK
+ND	YPSILANTI
+ND	ZAHL
+ND	ZAP
+ND	ZEELAND
+NE	ABIE
+NE	ADAMS
+NE	AGNEW
+NE	AINSWORTH
+NE	ALBION
+NE	ALDA
+NE	ALEXANDRIA
+NE	ALLEN
+NE	ALLIANCE
+NE	ALMA
+NE	ALMERIA
+NE	ALVO
+NE	AMELIA
+NE	AMES
+NE	AMHERST
+NE	ANGORA
+NE	ANSELMO
+NE	ANSLEY
+NE	ARAPAHOE
+NE	ARCADIA
+NE	ARCHER
+NE	ARLINGTON
+NE	ARNOLD
+NE	ARTHUR
+NE	ASHBY
+NE	ASHLAND
+NE	ASHTON
+NE	ATKINSON
+NE	ATLANTA
+NE	AUBURN
+NE	AURORA
+NE	AVOCA
+NE	AXTELL
+NE	AYR
+NE	BANCROFT
+NE	BARNESTON
+NE	BARTLETT
+NE	BARTLEY
+NE	BASSETT
+NE	BATTLE CREEK
+NE	BAYARD
+NE	BEATRICE
+NE	BEAVER CITY
+NE	BEAVER CROSSING
+NE	BEAVER XING
+NE	BEE
+NE	BEEMER
+NE	BELDEN
+NE	BELGRADE
+NE	BELLEVUE
+NE	BELLWOOD
+NE	BELVIDERE
+NE	BENEDICT
+NE	BENKELMAN
+NE	BENNET
+NE	BENNINGTON
+NE	BERTRAND
+NE	BERWYN
+NE	BIG SPRINGS
+NE	BINGHAM
+NE	BLADEN
+NE	BLAIR
+NE	BLOOMFIELD
+NE	BLOOMINGTON
+NE	BLUE HILL
+NE	BLUE SPRINGS
+NE	BOELUS
+NE	BOONE
+NE	BOYSTOWN
+NE	BOYS TOWN
+NE	BRADSHAW
+NE	BRADY
+NE	BRAINARD
+NE	BREWSTER
+NE	BRIDGEPORT
+NE	BRISTOW
+NE	BROADWATER
+NE	BROCK
+NE	BROKEN BOW
+NE	BROWNLEE
+NE	BROWNVILLE
+NE	BRULE
+NE	BRUNING
+NE	BRUNO
+NE	BRUNSWICK
+NE	BURCHARD
+NE	BURR
+NE	BURWELL
+NE	BUSHNELL
+NE	BUTTE
+NE	BYRON
+NE	CAIRO
+NE	CALLAWAY
+NE	CAMBRIDGE
+NE	CAMPBELL
+NE	CARLETON
+NE	CARROLL
+NE	CEDAR BLUFFS
+NE	CEDAR CREEK
+NE	CEDAR RAPIDS
+NE	CENTER
+NE	CENTRAL CITY
+NE	CERESCO
+NE	CHADRON
+NE	CHAMBERS
+NE	CHAMPION
+NE	CHAPMAN
+NE	CHAPPELL
+NE	CHESTER
+NE	CLARKS
+NE	CLARKSON
+NE	CLATONIA
+NE	CLAY CENTER
+NE	CLEARWATER
+NE	CODY
+NE	COLERIDGE
+NE	COLON
+NE	COLUMBUS
+NE	COMSTOCK
+NE	CONCORD
+NE	COOK
+NE	CORDOVA
+NE	CORNLEA
+NE	CORTLAND
+NE	COTESFIELD
+NE	COWLES
+NE	COZAD
+NE	CRAB ORCHARD
+NE	CRAIG
+NE	CRAWFORD
+NE	CREIGHTON
+NE	CRESTON
+NE	CRETE
+NE	CROFTON
+NE	CROOKSTON
+NE	CULBERTSON
+NE	CURTIS
+NE	DAKOTA CITY
+NE	DALTON
+NE	DANBURY
+NE	DANNEBROG
+NE	DAVENPORT
+NE	DAVEY
+NE	DAVID CITY
+NE	DAWSON
+NE	DAYKIN
+NE	DECATUR
+NE	DENTON
+NE	DESHLER
+NE	DEWEESE
+NE	DE WITT
+NE	DICKENS
+NE	DILLER
+NE	DIX
+NE	DIXON
+NE	DODGE
+NE	DONIPHAN
+NE	DORCHESTER
+NE	DOUGLAS
+NE	DU BOIS
+NE	DUNBAR
+NE	DUNCAN
+NE	DUNNING
+NE	DWIGHT
+NE	EAGLE
+NE	EDDYVILLE
+NE	EDGAR
+NE	EDISON
+NE	ELBA
+NE	ELGIN
+NE	ELK CREEK
+NE	ELKHORN
+NE	ELLSWORTH
+NE	ELM CREEK
+NE	ELMWOOD
+NE	ELSIE
+NE	ELSMERE
+NE	ELWOOD
+NE	ELYRIA
+NE	EMERSON
+NE	EMMET
+NE	ENDERS
+NE	ENDICOTT
+NE	ERICSON
+NE	EUSTIS
+NE	EWING
+NE	EXETER
+NE	FAIRBURY
+NE	FAIRFIELD
+NE	FAIRMONT
+NE	FALLS CITY
+NE	FARNAM
+NE	FARWELL
+NE	FILLEY
+NE	FIRTH
+NE	FONTANELLE
+NE	FORDYCE
+NE	FORT CALHOUN
+NE	FOSTER
+NE	FRANKLIN
+NE	FREMONT
+NE	FRIEND
+NE	FULLERTON
+NE	FUNK
+NE	GARLAND
+NE	GARRISON
+NE	GENEVA
+NE	GENOA
+NE	GERING
+NE	GIBBON
+NE	GILEAD
+NE	GILTNER
+NE	GLADSTONE
+NE	GLENVIL
+NE	GOEHNER
+NE	GORDON
+NE	GOTHENBURG
+NE	GRAFTON
+NE	GRAND ISLAND
+NE	GRANT
+NE	GREELEY
+NE	GREENWOOD
+NE	GRESHAM
+NE	GRETNA
+NE	GUIDE ROCK
+NE	GURLEY
+NE	HADAR
+NE	HAIGLER
+NE	HALLAM
+NE	HALSEY
+NE	HAMLET
+NE	HAMPTON
+NE	HARDY
+NE	HARRISBURG
+NE	HARRISON
+NE	HARTINGTON
+NE	HARVARD
+NE	HASTINGS
+NE	HAYES CENTER
+NE	HAY SPRINGS
+NE	HAZARD
+NE	HEARTWELL
+NE	HEBRON
+NE	HEMINGFORD
+NE	HENDERSON
+NE	HENDLEY
+NE	HENRY
+NE	HERMAN
+NE	HERSHEY
+NE	HICKMAN
+NE	HILDRETH
+NE	HOLBROOK
+NE	HOLDREGE
+NE	HOLLAND
+NE	HOLMESVILLE
+NE	HOLSTEIN
+NE	HOMER
+NE	HOOPER
+NE	HORDVILLE
+NE	HOSKINS
+NE	HOWELLS
+NE	HUBBARD
+NE	HUBBELL
+NE	HUMBOLDT
+NE	HUMPHREY
+NE	HUNTLEY
+NE	HYANNIS
+NE	IMPERIAL
+NE	INAVALE
+NE	INDIANOLA
+NE	INLAND
+NE	INMAN
+NE	ITHACA
+NE	JACKSON
+NE	JANSEN
+NE	JOHNSON
+NE	JOHNSON LAKE
+NE	JOHNSTOWN
+NE	JULIAN
+NE	JUNIATA
+NE	KEARNEY
+NE	KENESAW
+NE	KENNARD
+NE	KEYSTONE
+NE	KILGORE
+NE	KIMBALL
+NE	LAKESIDE
+NE	LAMAR
+NE	LAUREL
+NE	LAVISTA
+NE	LA VISTA
+NE	LAWRENCE
+NE	LEBANON
+NE	LEIGH
+NE	LEMOYNE
+NE	LESHARA
+NE	LEWELLEN
+NE	LEWISTON
+NE	LEXINGTON
+NE	LIBERTY
+NE	LINCOLN
+NE	LINDSAY
+NE	LINWOOD
+NE	LISCO
+NE	LITCHFIELD
+NE	LODGEPOLE
+NE	LONG PINE
+NE	LOOMIS
+NE	LORTON
+NE	LOUISVILLE
+NE	LOUP CITY
+NE	LYMAN
+NE	LYNCH
+NE	LYONS
+NE	MACY
+NE	MADISON
+NE	MADRID
+NE	MAGNET
+NE	MALCOLM
+NE	MALMO
+NE	MANLEY
+NE	MARQUETTE
+NE	MARSLAND
+NE	MARTELL
+NE	MASKELL
+NE	MASON CITY
+NE	MAX
+NE	MAXWELL
+NE	MAYWOOD
+NE	MCCOOK
+NE	MC COOK
+NE	MC COOL JCT
+NE	MC COOL JUNCTION
+NE	MCGREW
+NE	MCLEAN
+NE	MEAD
+NE	MEADOW GROVE
+NE	MELBETA
+NE	MEMPHIS
+NE	MERNA
+NE	MERRIMAN
+NE	MILBURN
+NE	MILFORD
+NE	MILLARD
+NE	MILLER
+NE	MILLIGAN
+NE	MILLS
+NE	MINATARE
+NE	MINDEN
+NE	MITCHELL
+NE	MONROE
+NE	MOOREFIELD
+NE	MORRILL
+NE	MORSE BLUFF
+NE	MULLEN
+NE	MURDOCK
+NE	MURRAY
+NE	NAPER
+NE	NAPONEE
+NE	NEBRASKA CITY
+NE	NEHAWKA
+NE	NELIGH
+NE	NELSON
+NE	NEMAHA
+NE	NENZEL
+NE	NEWCASTLE
+NE	NEWMAN GROVE
+NE	NEWPORT
+NE	NICKERSON
+NE	NIOBRARA
+NE	NORA
+NE	NORFOLK
+NE	NORMAN
+NE	NORTH BEND
+NE	NORTH LOUP
+NE	NORTH PLATTE
+NE	OAK
+NE	OAKDALE
+NE	OAKLAND
+NE	OBERT
+NE	OCONTO
+NE	OCTAVIA
+NE	ODELL
+NE	ODESSA
+NE	OFFUTT AFB
+NE	OFFUTT A F B
+NE	OGALLALA
+NE	OHIOWA
+NE	OMAHA
+NE	ONEILL
+NE	ONG
+NE	ORCHARD
+NE	ORD
+NE	ORLEANS
+NE	OSCEOLA
+NE	OSHKOSH
+NE	OSMOND
+NE	OTOE
+NE	OVERTON
+NE	OXFORD
+NE	PAGE
+NE	PALISADE
+NE	PALMER
+NE	PALMYRA
+NE	PANAMA
+NE	PAPILLION
+NE	PARKS
+NE	PAWNEE CITY
+NE	PAXTON
+NE	PENDER
+NE	PERU
+NE	PETERSBURG
+NE	PHILLIPS
+NE	PICKRELL
+NE	PIERCE
+NE	PILGER
+NE	PLAINVIEW
+NE	PLATTE CENTER
+NE	PLATTSMOUTH
+NE	PLEASANT DALE
+NE	PLEASANTON
+NE	PLYMOUTH
+NE	POLK
+NE	PONCA
+NE	POTTER
+NE	PRAGUE
+NE	PRIMROSE
+NE	PROSSER
+NE	PURDUM
+NE	RAGAN
+NE	RALSTON
+NE	RANDOLPH
+NE	RAVENNA
+NE	RAYMOND
+NE	RED CLOUD
+NE	REPUB CITY
+NE	REPUBLICAN CITY
+NE	REYNOLDS
+NE	RICHFIELD
+NE	RICHLAND
+NE	RISING CITY
+NE	RIVERDALE
+NE	RIVERTON
+NE	ROCA
+NE	ROCKVILLE
+NE	ROGERS
+NE	ROSALIE
+NE	ROSE
+NE	ROSELAND
+NE	ROSEMONT
+NE	ROYAL
+NE	RULO
+NE	RUSHVILLE
+NE	RUSKIN
+NE	SAINT EDWARD
+NE	SAINT HELENA
+NE	SAINT LIBORY
+NE	SAINT MARY
+NE	SAINT PAUL
+NE	SALEM
+NE	SARGENT
+NE	SARONVILLE
+NE	SCHUYLER
+NE	SCOTIA
+NE	SCOTTSBLUFF
+NE	SCRIBNER
+NE	SENECA
+NE	SEWARD
+NE	SHELBY
+NE	SHELTON
+NE	SHICKLEY
+NE	SHUBERT
+NE	SIDNEY
+NE	SILVER CREEK
+NE	SMITHFIELD
+NE	SNYDER
+NE	SOUTH BEND
+NE	SOUTH SIOUX CITY
+NE	SPALDING
+NE	SPARKS
+NE	SPENCER
+NE	SPRAGUE
+NE	SPRINGFIELD
+NE	SPRINGVIEW
+NE	S SIOUX CITY
+NE	STAMFORD
+NE	STANTON
+NE	STAPLEHURST
+NE	STAPLETON
+NE	ST COLUMBANS
+NE	STEELE CITY
+NE	STEINAUER
+NE	STELLA
+NE	STERLING
+NE	STOCKVILLE
+NE	STRANG
+NE	STRATTON
+NE	STROMSBURG
+NE	STUART
+NE	SUMNER
+NE	SUPERIOR
+NE	SURPRISE
+NE	SUTHERLAND
+NE	SUTTON
+NE	SWANTON
+NE	SYRACUSE
+NE	TABLE ROCK
+NE	TALMAGE
+NE	TARNOV
+NE	TAYLOR
+NE	TECUMSEH
+NE	TEKAMAH
+NE	THEDFORD
+NE	THURSTON
+NE	TILDEN
+NE	TOBIAS
+NE	TRENTON
+NE	TRUMBULL
+NE	TRYON
+NE	UEHLING
+NE	ULYSSES
+NE	UNADILLA
+NE	UNION
+NE	UPLAND
+NE	UTICA
+NE	VALENTINE
+NE	VALLEY
+NE	VALPARAISO
+NE	VENANGO
+NE	VERDEL
+NE	VERDIGRE
+NE	VERDON
+NE	VIRGINIA
+NE	WACO
+NE	WAHOO
+NE	WAKEFIELD
+NE	WALLACE
+NE	WALTHILL
+NE	WALTON
+NE	WASHINGTON
+NE	WATERBURY
+NE	WATERLOO
+NE	WAUNETA
+NE	WAUSA
+NE	WAVERLY
+NE	WAYNE
+NE	WEEPING WATER
+NE	WEISSERT
+NE	WELLFLEET
+NE	WESTERN
+NE	WESTERVILLE
+NE	WESTON
+NE	WEST POINT
+NE	WHITECLAY
+NE	WHITMAN
+NE	WHITNEY
+NE	WILBER
+NE	WILCOX
+NE	WILLOW ISLAND
+NE	WILSONVILLE
+NE	WINNEBAGO
+NE	WINNETOON
+NE	WINSIDE
+NE	WINSLOW
+NE	WISNER
+NE	WOLBACH
+NE	WOOD LAKE
+NE	WOOD RIVER
+NE	WYMORE
+NE	WYNOT
+NE	YORK
+NE	YUTAN
+NH	ACWORTH
+NH	ALBANY
+NH	ALEXANDRIA
+NH	ALLENSTOWN
+NH	ALSTEAD
+NH	ALTON
+NH	ALTON BAY
+NH	AMHERST
+NH	ANDOVER
+NH	ANTRIM
+NH	ASHLAND
+NH	ASHUELOT
+NH	ATKINSON
+NH	AUBURN
+NH	BARNSTEAD
+NH	BARRINGTON
+NH	BARTLETT
+NH	BATH
+NH	BEDFORD
+NH	BELMONT
+NH	BENNINGTON
+NH	BENTON
+NH	BERLIN
+NH	BETHLEHEM
+NH	BOSCAWEN
+NH	BOW
+NH	BRADFORD
+NH	BRENTWOOD
+NH	BRETTON WOODS
+NH	BRISTOL
+NH	BROOKFIELD
+NH	BROOKLINE
+NH	CAMPTON
+NH	CANAAN
+NH	CANDIA
+NH	CANTERBURY
+NH	CARROLL
+NH	CENTER BARNSTEAD
+NH	CENTER CONWAY
+NH	CENTER HARBOR
+NH	CENTER OSSIPEE
+NH	CENTER SANDWICH
+NH	CENTER STRAFFORD
+NH	CENTER TUFTONBORO
+NH	CHARLESTOWN
+NH	CHATHAM
+NH	CHESTER
+NH	CHESTERFIELD
+NH	CHICHESTER
+NH	CHOCORUA
+NH	CLAREMONT
+NH	CLARKSVILLE
+NH	COLEBROOK
+NH	CONCORD
+NH	CONTOOCOOK
+NH	CONWAY
+NH	CORNISH
+NH	CORNISH FLAT
+NH	CROYDON
+NH	CTR BARNSTEAD
+NH	CTR OSSIPEE
+NH	CTR SANDWICH
+NH	CTR STRAFFORD
+NH	CTR TUFTNBORO
+NH	DALTON
+NH	DANBURY
+NH	DANVILLE
+NH	DEERFIELD
+NH	DEERING
+NH	DERRY
+NH	DIXVILLE
+NH	DORCHESTER
+NH	DOVER
+NH	DREWSVILLE
+NH	DUBLIN
+NH	DUMMER
+NH	DUNBARTON
+NH	DURHAM
+NH	EAST ANDOVER
+NH	EAST CANDIA
+NH	EAST DERRY
+NH	EAST HAMPSTEAD
+NH	EAST HEBRON
+NH	EAST KINGSTON
+NH	EAST LEMPSTER
+NH	EAST WAKEFIELD
+NH	EATON CENTER
+NH	EFFINGHAM
+NH	E HAMPSTEAD
+NH	ELKINS
+NH	ELLSWORTH
+NH	ENFIELD
+NH	ENFIELD CENTER
+NH	ENFIELD CTR
+NH	EPPING
+NH	EPSOM
+NH	ERROL
+NH	ETNA
+NH	E WAKEFIELD
+NH	EXETER
+NH	FARMINGTON
+NH	FITZWILLIAM
+NH	FRANCESTOWN
+NH	FRANCONIA
+NH	FRANKLIN
+NH	FREEDOM
+NH	FREMONT
+NH	GEORGES MILLS
+NH	GILFORD
+NH	GILMANTON
+NH	GILMANTON IRON WORKS
+NH	GILMANTON IW
+NH	GILSUM
+NH	GLEN
+NH	GLENCLIFF
+NH	GOFFSTOWN
+NH	GORHAM
+NH	GOSHEN
+NH	GRAFTON
+NH	GRANTHAM
+NH	GREENFIELD
+NH	GREENLAND
+NH	GREENVILLE
+NH	GROVETON
+NH	GUILD
+NH	HALES LCTN
+NH	HALES LOCATION
+NH	HAMPSTEAD
+NH	HAMPTON
+NH	HAMPTON FALLS
+NH	HANCOCK
+NH	HANOVER
+NH	HARRISVILLE
+NH	HARTS LCTN
+NH	HARTS LOCATION
+NH	HAVERHILL
+NH	HEBRON
+NH	HENNIKER
+NH	HILL
+NH	HILLSBORO
+NH	HILLSBOROUGH
+NH	HINSDALE
+NH	HOLDERNESS
+NH	HOLLIS
+NH	HOOKSETT
+NH	HOPKINTON
+NH	HUDSON
+NH	INTERVALE
+NH	JACKSON
+NH	JAFFREY
+NH	JEFFERSON
+NH	KEARSARGE
+NH	KEENE
+NH	KENSINGTON
+NH	KINGSTON
+NH	LACONIA
+NH	LANCASTER
+NH	LANDAFF
+NH	LANGDON
+NH	LEBANON
+NH	LEE
+NH	LEMPSTER
+NH	LINCOLN
+NH	LISBON
+NH	LITCHFIELD
+NH	LITTLETON
+NH	LOCHMERE
+NH	LONDONDERRY
+NH	LOUDON
+NH	LYMAN
+NH	LYME
+NH	LYME CENTER
+NH	LYNDEBOROUGH
+NH	MADBURY
+NH	MADISON
+NH	MANCHESTER
+NH	MARLBOROUGH
+NH	MARLOW
+NH	MASON
+NH	MELVIN VILLAGE
+NH	MELVIN VLG
+NH	MEREDITH
+NH	MERIDEN
+NH	MERRIMACK
+NH	MIDDLETON
+NH	MILAN
+NH	MILFORD
+NH	MILTON
+NH	MILTON MILLS
+NH	MIRROR LAKE
+NH	MONROE
+NH	MONT VERNON
+NH	MOULTONBORO
+NH	MOULTONBOROUGH
+NH	MOUNT SUNAPEE
+NH	MOUNT WASHINGTON
+NH	MT WASHINGTON
+NH	MUNSONVILLE
+NH	NASHUA
+NH	NELSON
+NH	NEW BOSTON
+NH	NEWBURY
+NH	NEW CASTLE
+NH	NEW DURHAM
+NH	NEWFIELDS
+NH	NEW HAMPTON
+NH	NEWINGTON
+NH	NEW IPSWICH
+NH	NEW LONDON
+NH	NEWMARKET
+NH	NEWPORT
+NH	NEWTON
+NH	NEWTON JCT
+NH	NEWTON JUNCTION
+NH	N HAVERHILL
+NH	NORTH CONWAY
+NH	NORTHFIELD
+NH	NORTH HAMPTON
+NH	NORTH HAVERHILL
+NH	NORTH SALEM
+NH	NORTH SANDWICH
+NH	NORTH STRATFORD
+NH	NORTH SUTTON
+NH	NORTH SWANZEY
+NH	NORTHUMBERLAND
+NH	NORTHUMBERLND
+NH	NORTH WALPOLE
+NH	NORTHWOOD
+NH	NORTH WOODSTOCK
+NH	NOTTINGHAM
+NH	N SANDWICH
+NH	N STRATFORD
+NH	N WOODSTOCK
+NH	ORANGE
+NH	ORFORD
+NH	OSSIPEE
+NH	PELHAM
+NH	PEMBROKE
+NH	PENACOOK
+NH	PETERBOROUGH
+NH	PIERMONT
+NH	PIKE
+NH	PITTSBURG
+NH	PITTSFIELD
+NH	PLAINFIELD
+NH	PLAISTOW
+NH	PLYMOUTH
+NH	PORTSMOUTH
+NH	RANDOLPH
+NH	RAYMOND
+NH	RICHMOND
+NH	RINDGE
+NH	ROCHESTER
+NH	ROLLINSFORD
+NH	ROXBURY
+NH	RUMNEY
+NH	RYE
+NH	RYE BEACH
+NH	SALEM
+NH	SALISBURY
+NH	SANBORNTON
+NH	SANBORNVILLE
+NH	SANDOWN
+NH	SANDWICH
+NH	SEABROOK
+NH	SHARON
+NH	SHELBURNE
+NH	SILVER LAKE
+NH	SOMERSWORTH
+NH	SOUTH ACWORTH
+NH	SOUTH HAMPTON
+NH	SOUTH NEWBURY
+NH	SOUTH SUTTON
+NH	SOUTH TAMWORTH
+NH	SPOFFORD
+NH	SPRINGFIELD
+NH	S TAMWORTH
+NH	STARK
+NH	STEWARTSTOWN
+NH	STINSON LAKE
+NH	STODDARD
+NH	STRAFFORD
+NH	STRATFORD
+NH	STRATHAM
+NH	SUGAR HILL
+NH	SULLIVAN
+NH	SUNAPEE
+NH	SUNCOOK
+NH	SURRY
+NH	SWANZEY
+NH	TAMWORTH
+NH	TEMPLE
+NH	THORNTON
+NH	TILTON
+NH	TROY
+NH	TWIN MOUNTAIN
+NH	UNION
+NH	WALPOLE
+NH	WARNER
+NH	WARREN
+NH	WASHINGTON
+NH	WATERVILLE VALLEY
+NH	WATERVL VLY
+NH	W CHESTERFLD
+NH	WEARE
+NH	WEBSTER
+NH	WENTWORTH
+NH	WENTWORTHS LOCATION
+NH	WEST CHESTERFIELD
+NH	WEST LEBANON
+NH	WESTMORELAND
+NH	WEST NOTTINGHAM
+NH	WEST OSSIPEE
+NH	WEST PETERBOROUGH
+NH	WEST STEWARTSTOWN
+NH	WEST SWANZEY
+NH	WHITEFIELD
+NH	WILMOT
+NH	WILTON
+NH	WINCHESTER
+NH	WINDHAM
+NH	WINDSOR
+NH	WINNISQUAM
+NH	W NOTTINGHAM
+NH	WNTWRTHS LCTN
+NH	WOLFEBORO
+NH	WOLFEBORO FALLS
+NH	WOLFEBORO FLS
+NH	WONALANCET
+NH	WOODSTOCK
+NH	WOODSVILLE
+NH	W PETERBORO
+NH	W STEWARTSTWN
+NJ	ABERDEEN
+NJ	ABSECON
+NJ	ADELPHIA
+NJ	ALLAMUCHY
+NJ	ALLENDALE
+NJ	ALLENHURST
+NJ	ALLENTOWN
+NJ	ALLENWOOD
+NJ	ALLOWAY
+NJ	ALPHA
+NJ	ALPINE
+NJ	ANDOVER
+NJ	ANNANDALE
+NJ	ASBURY
+NJ	ASBURY PARK
+NJ	ATCO
+NJ	ATLANTIC CITY
+NJ	ATLANTIC HIGHLANDS
+NJ	ATLANTIC HLDS
+NJ	AUDUBON
+NJ	AUGUSTA
+NJ	AVALON
+NJ	AVENEL
+NJ	AVON BY SEA
+NJ	AVON BY THE SEA
+NJ	BAPTISTOWN
+NJ	BARNEGAT
+NJ	BARNEGAT LGT
+NJ	BARNEGAT LIGHT
+NJ	BARRINGTON
+NJ	BASKING RIDGE
+NJ	BATSTO
+NJ	BAY HEAD
+NJ	BAYONNE
+NJ	BAYVILLE
+NJ	BEACH HAVEN
+NJ	BEACHWOOD
+NJ	BEDMINSTER
+NJ	BELFORD
+NJ	BELLE MEAD
+NJ	BELLEVILLE
+NJ	BELLMAWR
+NJ	BELMAR
+NJ	BELVIDERE
+NJ	BERGENFIELD
+NJ	BERKELEY HEIGHTS
+NJ	BERKELEY HTS
+NJ	BERLIN
+NJ	BERLIN TOWNSHIP
+NJ	BERLIN TWP
+NJ	BERNARDSVILLE
+NJ	BEVERLY
+NJ	BIRMINGHAM
+NJ	BLACKWOOD
+NJ	BLACKWOOD TER
+NJ	BLACKWOOD TERRACE
+NJ	BLAIRSTOWN
+NJ	BLAWENBURG
+NJ	BLOOMFIELD
+NJ	BLOOMINGDALE
+NJ	BLOOMSBURY
+NJ	BOGOTA
+NJ	BOONTON
+NJ	BORDENTOWN
+NJ	BOUND BROOK
+NJ	BRADLEY BEACH
+NJ	BRANCHBURG
+NJ	BRANCHVILLE
+NJ	BRICK
+NJ	BRIDGEPORT
+NJ	BRIDGETON
+NJ	BRIDGEWATER
+NJ	BRIELLE
+NJ	BRIGANTINE
+NJ	BROADWAY
+NJ	BROOKLAWN
+NJ	BROOKSIDE
+NJ	BROWNS MILLS
+NJ	BUDD LAKE
+NJ	BUENA
+NJ	BURLINGTON
+NJ	BURLINGTON CITY
+NJ	BURLINGTON TOWNSHIP
+NJ	BURLNGTN CITY
+NJ	BURLNGTN TWP
+NJ	BUTLER
+NJ	BUTTZVILLE
+NJ	CALDWELL
+NJ	CALIFON
+NJ	CAMDEN
+NJ	CAPE MAY
+NJ	CAPE MAY CH
+NJ	CAPE MAY COURT HOUSE
+NJ	CAPE MAY POINT
+NJ	CAPE MAY PT
+NJ	CARLSTADT
+NJ	CARNEYS POINT
+NJ	CARTERET
+NJ	CEDAR BROOK
+NJ	CEDAR GROVE
+NJ	CEDAR KNOLLS
+NJ	CEDARVILLE
+NJ	CHANGEWATER
+NJ	CHATHAM
+NJ	CHATHAM TWP
+NJ	CHATSWORTH
+NJ	CHERRY HILL
+NJ	CHESILHURST
+NJ	CHESTER
+NJ	CHESTERFIELD
+NJ	CINNAMINSON
+NJ	CLARK
+NJ	CLARKSBORO
+NJ	CLARKSBURG
+NJ	CLAYTON
+NJ	CLEMENTON
+NJ	CLIFFSIDE PARK
+NJ	CLIFFSIDE PK
+NJ	CLIFFWOOD
+NJ	CLIFTON
+NJ	CLINTON
+NJ	CLOSTER
+NJ	COLLINGSWOOD
+NJ	COLOGNE
+NJ	COLONIA
+NJ	COLTS NECK
+NJ	COLUMBIA
+NJ	COLUMBUS
+NJ	CONVENT STA
+NJ	CONVENT STATION
+NJ	COOKSTOWN
+NJ	CORBIN CITY
+NJ	CRANBURY
+NJ	CRANFORD
+NJ	CREAM RIDGE
+NJ	CRESSKILL
+NJ	CROSSWICKS
+NJ	DAYTON
+NJ	DEAL
+NJ	DEEPWATER
+NJ	DEERFIELD ST
+NJ	DEERFIELD STREET
+NJ	DELAIR
+NJ	DELANCO
+NJ	DELAWARE
+NJ	DEL HAVEN
+NJ	DELMONT
+NJ	DELRAN
+NJ	DEMAREST
+NJ	DENNISVILLE
+NJ	DENVILLE
+NJ	DIVIDING CREEK
+NJ	DIVIDING CRK
+NJ	DORCHESTER
+NJ	DOROTHY
+NJ	DOVER
+NJ	DUMONT
+NJ	DUNELLEN
+NJ	EASTAMPTN TWP
+NJ	EASTAMPTON
+NJ	EASTAMPTON TOWNSHIP
+NJ	EAST BRUNSWICK
+NJ	EAST HANOVER
+NJ	EAST MILLSTONE
+NJ	EAST NEWARK
+NJ	EAST ORANGE
+NJ	EAST RUTHERFORD
+NJ	EAST WINDSOR
+NJ	EATONTOWN
+NJ	E BRUNSWICK
+NJ	EDGEWATER
+NJ	EDGEWATER PARK
+NJ	EDGEWATER PRK
+NJ	EDISON
+NJ	EGG HARBOR CITY
+NJ	EGG HARBOR CY
+NJ	EGG HARBOR TOWNSHIP
+NJ	EGG HARBOR TWP
+NJ	EGG HBR CITY
+NJ	EGG HBR TWP
+NJ	ELIZABETH
+NJ	ELMER
+NJ	ELMWOOD PARK
+NJ	ELWOOD
+NJ	EMERSON
+NJ	E MILLSTONE
+NJ	ENGLEWD CLFS
+NJ	ENGLEWOOD
+NJ	ENGLEWOOD CLIFFS
+NJ	ENGLISHTOWN
+NJ	ERIAL
+NJ	E RUTHERFORD
+NJ	ESSEX FELLS
+NJ	ESTELL MANOR
+NJ	EVESHAM
+NJ	EWAN
+NJ	EWING
+NJ	FAIRFIELD
+NJ	FAIR HAVEN
+NJ	FAIR LAWN
+NJ	FAIRTON
+NJ	FAIRVIEW
+NJ	FANWOOD
+NJ	FAR HILLS
+NJ	FARMINGDALE
+NJ	FIELDSBORO
+NJ	FLAGTOWN
+NJ	FLANDERS
+NJ	FLEMINGTON
+NJ	FLORENCE
+NJ	FLORHAM PARK
+NJ	FORDS
+NJ	FORKED RIVER
+NJ	FORT DIX
+NJ	FORTESCUE
+NJ	FORT HANCOCK
+NJ	FORT LEE
+NJ	FORT MONMOUTH
+NJ	FRANKLIN
+NJ	FRANKLIN LAKES
+NJ	FRANKLIN LKS
+NJ	FRANKLIN PARK
+NJ	FRANKLINVILLE
+NJ	FREDON
+NJ	FREDON TOWNSHIP
+NJ	FREDON TWP
+NJ	FREEHOLD
+NJ	FRENCHTOWN
+NJ	GALLOWAY
+NJ	GARFIELD
+NJ	GARWOOD
+NJ	GIBBSBORO
+NJ	GIBBSTOWN
+NJ	GILLETTE
+NJ	GLADSTONE
+NJ	GLASSBORO
+NJ	GLASSER
+NJ	GLENDORA
+NJ	GLEN GARDNER
+NJ	GLEN RIDGE
+NJ	GLEN ROCK
+NJ	GLENWOOD
+NJ	GLOUCESTER CITY
+NJ	GLOUCESTER CY
+NJ	GLOUCSTR CITY
+NJ	GOSHEN
+NJ	GREAT MEADOWS
+NJ	GREEN BROOK
+NJ	GREEN CREEK
+NJ	GREENDELL
+NJ	GREEN VILLAGE
+NJ	GREENWICH
+NJ	GRENLOCH
+NJ	GREYSTONE PARK
+NJ	GREYSTONE PK
+NJ	GUTTENBERG
+NJ	HACKENSACK
+NJ	HACKETTSTOWN
+NJ	HADDONFIELD
+NJ	HADDON HEIGHTS
+NJ	HADDON HGTS
+NJ	HADDON HTS
+NJ	HADDON TOWNSHIP
+NJ	HADDON TWP
+NJ	HAINESPORT
+NJ	HAINESPORT TOWNSHIP
+NJ	HAINESPRT TWP
+NJ	HALEDON
+NJ	HAMBURG
+NJ	HAMILTON
+NJ	HAMILTON SQ
+NJ	HAMILTON SQUARE
+NJ	HAMMONTON
+NJ	HAMPTON
+NJ	HANCOCKS BRG
+NJ	HANCOCKS BRIDGE
+NJ	HARDWICK
+NJ	HARDYSTON
+NJ	HARRINGTON PARK
+NJ	HARRINGTON PK
+NJ	HARRISON
+NJ	HARRISONVILLE
+NJ	HARVEY CEDARS
+NJ	HASBROUCK HEIGHTS
+NJ	HASBROUCK HTS
+NJ	HASKELL
+NJ	HAWORTH
+NJ	HAWTHORNE
+NJ	HAZLET
+NJ	HEISLERVILLE
+NJ	HELMETTA
+NJ	HEWITT
+NJ	HIBERNIA
+NJ	HIGH BRIDGE
+NJ	HIGHLAND LAKES
+NJ	HIGHLAND LKS
+NJ	HIGHLAND PARK
+NJ	HIGHLANDS
+NJ	HIGHTSTOWN
+NJ	HILLSBOROUGH
+NJ	HILLSDALE
+NJ	HILLSIDE
+NJ	HI NELLA
+NJ	HOBOKEN
+NJ	HO HO KUS
+NJ	HOLMDEL
+NJ	HOPATCONG
+NJ	HOPE
+NJ	HOPELAWN
+NJ	HOPEWELL
+NJ	HOWELL
+NJ	IMLAYSTOWN
+NJ	IND HILLSIDE
+NJ	INDUSTRIAL HILLSIDE
+NJ	INTERLAKEN
+NJ	IRONIA
+NJ	IRVINGTON
+NJ	ISELIN
+NJ	ISLAND HEIGHTS
+NJ	ISLAND HGTS
+NJ	JACKSON
+NJ	JAMESBURG
+NJ	JERSEY CITY
+NJ	JOBSTOWN
+NJ	JOHNSONBURG
+NJ	JULIUSTOWN
+NJ	KEANSBURG
+NJ	KEARNY
+NJ	KEASBEY
+NJ	KENDALL PARK
+NJ	KENILWORTH
+NJ	KENVIL
+NJ	KEYPORT
+NJ	KINGSTON
+NJ	KINNELON
+NJ	KIRKWD VRHES
+NJ	KIRKWOOD
+NJ	LAFAYETTE
+NJ	LAKE COMO
+NJ	LAKE HIAWATHA
+NJ	LAKE HOPATCONG
+NJ	LAKEHURST
+NJ	LAKEHURST NAE
+NJ	LAKEHURST NAEC
+NJ	LAKEWOOD
+NJ	LAMBERTVILLE
+NJ	LANDING
+NJ	LANDISVILLE
+NJ	LANOKA HARBOR
+NJ	LAUREL SPGS
+NJ	LAUREL SPRINGS
+NJ	LAURENCE HARBOR
+NJ	LAURENCE HBR
+NJ	LAVALLETTE
+NJ	LAWNSIDE
+NJ	LAWRENCE
+NJ	LAWRENCE TOWNSHIP
+NJ	LAWRENCE TWP
+NJ	LAWRENCEVILLE
+NJ	LAYTON
+NJ	LEBANON
+NJ	LEDGEWOOD
+NJ	LEEDS POINT
+NJ	LEESBURG
+NJ	LEONARDO
+NJ	LEONIA
+NJ	LIBERTY COR
+NJ	LIBERTY CORNER
+NJ	LINCOLN PARK
+NJ	LINCROFT
+NJ	LINDEN
+NJ	LINDENWOLD
+NJ	LINWOOD
+NJ	LITTLE EGG HARBOR
+NJ	LITTLE EGG HARBOR TWP
+NJ	LITTLE FALLS
+NJ	LITTLE FERRY
+NJ	LITTLE SILVER
+NJ	LITTLE YORK
+NJ	LIVINGSTON
+NJ	LK HOPATCONG
+NJ	LOCH ARBOUR
+NJ	LOCUST
+NJ	LODI
+NJ	LOGAN TOWNSHIP
+NJ	LOGAN TWP
+NJ	LONG BCH TWP
+NJ	LONG BEACH
+NJ	LONG BEACH TOWNSHIP
+NJ	LONG BRANCH
+NJ	LONGPORT
+NJ	LONG VALLEY
+NJ	LTL EGG HBR
+NJ	LUMBERTON
+NJ	LUMBERTON TOWNSHIP
+NJ	LUMBERTON TWP
+NJ	LYNDHURST
+NJ	LYONS
+NJ	MADISON
+NJ	MAGNOLIA
+NJ	MAHWAH
+NJ	MALAGA
+NJ	MANAHAWKIN
+NJ	MANALAPAN
+NJ	MANASQUAN
+NJ	MANCHESTER
+NJ	MANCHESTER TOWNSHIP
+NJ	MANCHESTER TW
+NJ	MANNINGTON
+NJ	MANTOLOKING
+NJ	MANTUA
+NJ	MANVILLE
+NJ	MAPLE SHADE
+NJ	MAPLEWOOD
+NJ	MARGATE CITY
+NJ	MARLBORO
+NJ	MARLTON
+NJ	MARMORA
+NJ	MARTINSVILLE
+NJ	MATAWAN
+NJ	MAURICETOWN
+NJ	MAYS LANDING
+NJ	MAYWOOD
+NJ	MC AFEE
+NJ	MC GUIRE AFB
+NJ	MCKEE CITY
+NJ	MEDFORD
+NJ	MEDFORD LAKES
+NJ	MENDHAM
+NJ	MERCERVILLE
+NJ	MERCHANTVILLE
+NJ	METUCHEN
+NJ	MICKLETON
+NJ	MIDDLESEX
+NJ	MIDDLETOWN
+NJ	MIDDLEVILLE
+NJ	MIDLAND PARK
+NJ	MILFORD
+NJ	MILLBURN
+NJ	MILLINGTON
+NJ	MILLSTONE TOWNSHIP
+NJ	MILLSTONE TWP
+NJ	MILLTOWN
+NJ	MILLVILLE
+NJ	MILMAY
+NJ	MINE HILL
+NJ	MINOTOLA
+NJ	MIZPAH
+NJ	MONMOUTH BCH
+NJ	MONMOUTH BEACH
+NJ	MONMOUTH JCT
+NJ	MONMOUTH JUNCTION
+NJ	MONROE
+NJ	MONROE TOWNSHIP
+NJ	MONROE TWP
+NJ	MONROEVILLE
+NJ	MONTAGUE
+NJ	MONTCLAIR
+NJ	MONTVALE
+NJ	MONTVILLE
+NJ	MOONACHIE
+NJ	MOORESTOWN
+NJ	MORGANVILLE
+NJ	MORRIS PLAINS
+NJ	MORRISTOWN
+NJ	MOUNTAIN LAKES
+NJ	MOUNTAIN LKS
+NJ	MOUNTAINSIDE
+NJ	MOUNT ARLINGTON
+NJ	MOUNT EPHRAIM
+NJ	MOUNT FREEDOM
+NJ	MOUNT HOLLY
+NJ	MOUNT LAUREL
+NJ	MOUNT ROYAL
+NJ	MOUNT TABOR
+NJ	MT ARLINGTON
+NJ	MULLICA HILL
+NJ	MYSTIC ISLANDS
+NJ	MYSTIC ISLNDS
+NJ	N ARLINGTON
+NJ	NATIONAL PARK
+NJ	NAVESINK
+NJ	N BRUNSWICK
+NJ	N CALDWELL
+NJ	N CAPE MAY
+NJ	NEPTUNE
+NJ	NEPTUNE CITY
+NJ	NESHANIC STA
+NJ	NESHANIC STATION
+NJ	NETCONG
+NJ	NEWARK
+NJ	NEW BRUNSWICK
+NJ	NEW EGYPT
+NJ	NEWFIELD
+NJ	NEWFOUNDLAND
+NJ	NEW GRETNA
+NJ	NEW LISBON
+NJ	NEW MILFORD
+NJ	NEW MONMOUTH
+NJ	NEWPORT
+NJ	NEW PROVIDENCE
+NJ	NEW PROVIDNCE
+NJ	NEWTON
+NJ	NEWTONVILLE
+NJ	NEW VERNON
+NJ	N MIDDLETOWN
+NJ	NORMA
+NJ	NORMANDY BCH
+NJ	NORMANDY BEACH
+NJ	NORTH ARLINGTON
+NJ	NORTH BERGEN
+NJ	NORTH BRANCH
+NJ	NORTH BRUNSWICK
+NJ	NORTH CALDWELL
+NJ	NORTH CAPE MAY
+NJ	NORTHFIELD
+NJ	NORTH HALEDON
+NJ	NORTH MIDDLETOWN
+NJ	NORTH PLAINFIELD
+NJ	NORTHVALE
+NJ	NORTH WILDWOOD
+NJ	NORWOOD
+NJ	N PLAINFIELD
+NJ	NUTLEY
+NJ	N WILDWOOD
+NJ	OAKHURST
+NJ	OAKLAND
+NJ	OAKLYN
+NJ	OAK RIDGE
+NJ	OCEAN
+NJ	OCEAN CITY
+NJ	OCEAN GATE
+NJ	OCEAN GROVE
+NJ	OCEANPORT
+NJ	OCEAN VIEW
+NJ	OCEANVILLE
+NJ	OGDENSBURG
+NJ	OLD BRIDGE
+NJ	OLD TAPPAN
+NJ	OLDWICK
+NJ	ORADELL
+NJ	ORANGE
+NJ	OSBORNSVILLE
+NJ	OXFORD
+NJ	PALISADES PARK
+NJ	PALISADES PK
+NJ	PALMYRA
+NJ	PARAMUS
+NJ	PARK RIDGE
+NJ	PARLIN
+NJ	PARSIPPANY
+NJ	PASSAIC
+NJ	PATERSON
+NJ	PAULSBORO
+NJ	PEAPACK
+NJ	PEDRICKTOWN
+NJ	PEMBERTON
+NJ	PENNINGTON
+NJ	PENNSAUKEN
+NJ	PENNS GROVE
+NJ	PENNSVILLE
+NJ	PEQUANNOCK
+NJ	PERRINEVILLE
+NJ	PERTH AMBOY
+NJ	PHILLIPSBURG
+NJ	PICATINNY ARS
+NJ	PICATINNY ARSENAL
+NJ	PILESGROVE
+NJ	PILESGROVE TOWNSHIP
+NJ	PILESGRV TWP
+NJ	PINE BEACH
+NJ	PINE BROOK
+NJ	PINE HILL
+NJ	PINE VALLEY
+NJ	PISCATAWAY
+NJ	PITMAN
+NJ	PITTSGROVE
+NJ	PITTSTOWN
+NJ	PLAINFIELD
+NJ	PLAINSBORO
+NJ	PLEASANTVILLE
+NJ	PLUCKEMIN
+NJ	POINT PLEASANT BEACH
+NJ	POINT PLEASANT BORO
+NJ	POMONA
+NJ	POMPTON LAKES
+NJ	POMPTON PLAINS
+NJ	POMPTON PLNS
+NJ	PORT ELIZABETH
+NJ	PORT MONMOUTH
+NJ	PORT MURRAY
+NJ	PORT NORRIS
+NJ	PORT READING
+NJ	PORT REPUBLIC
+NJ	POTTERSVILLE
+NJ	PRINCETON
+NJ	PRINCETON JCT
+NJ	PRINCETON JUNCTION
+NJ	PROSPECT PARK
+NJ	PRT ELIZABETH
+NJ	PT PLEASANT
+NJ	PT PLEASANT B
+NJ	PT PLEASANT BEACH
+NJ	PT PLEAS BCH
+NJ	QUAKERTOWN
+NJ	QUINTON
+NJ	RAHWAY
+NJ	RAMSEY
+NJ	RANCOCAS
+NJ	RANDOLPH
+NJ	RARITAN
+NJ	READINGTON
+NJ	RED BANK
+NJ	RICHLAND
+NJ	RICHWOOD
+NJ	RIDGEFIELD
+NJ	RIDGEFIELD PARK
+NJ	RIDGEFIELD PK
+NJ	RIDGEWOOD
+NJ	RINGOES
+NJ	RINGWOOD
+NJ	RIO GRANDE
+NJ	RIVERDALE
+NJ	RIVER EDGE
+NJ	RIVERSIDE
+NJ	RIVERTON
+NJ	RIVERVALE
+NJ	RIVER VALE
+NJ	ROBBINSVILLE
+NJ	ROCHELLE PARK
+NJ	ROCKAWAY
+NJ	ROCKLEIGH
+NJ	ROCKY HILL
+NJ	ROEBLING
+NJ	ROOSEVELT
+NJ	ROSELAND
+NJ	ROSELLE
+NJ	ROSELLE PARK
+NJ	ROSEMONT
+NJ	ROSENHAYN
+NJ	ROXBURY TOWNSHIP
+NJ	ROXBURY TWP
+NJ	RUMSON
+NJ	RUNNEMEDE
+NJ	RUTHERFORD
+NJ	SADDLE BROOK
+NJ	SADDLE RIVER
+NJ	SALEM
+NJ	SANDYSTON
+NJ	SAYREVILLE
+NJ	S BOUND BROOK
+NJ	SCHOOLEYS MOUNTAIN
+NJ	SCHOOLEYS MTN
+NJ	SCOTCH PLAINS
+NJ	SEA BRIGHT
+NJ	SEABROOK
+NJ	SEA GIRT
+NJ	SEA ISLE CITY
+NJ	SEASIDE HEIGHTS
+NJ	SEASIDE HGTS
+NJ	SEASIDE PARK
+NJ	SECAUCUS
+NJ	SERGEANTSVILLE
+NJ	SERGEANTSVLLE
+NJ	SEWAREN
+NJ	SEWELL
+NJ	S HACKENSACK
+NJ	SHAMONG
+NJ	S HARRISN TWP
+NJ	SHILOH
+NJ	SHIP BOTTOM
+NJ	SHORT HILLS
+NJ	SHREWSBURY
+NJ	SICKLERVILLE
+NJ	SKILLMAN
+NJ	SMITHVILLE
+NJ	SOMERDALE
+NJ	SOMERSET
+NJ	SOMERS POINT
+NJ	SOMERVILLE
+NJ	SOUTH AMBOY
+NJ	SOUTHAMPTON
+NJ	SOUTH BOUND BROOK
+NJ	SOUTH DENNIS
+NJ	SOUTH HACKENSACK
+NJ	SOUTH HARRISON TOWNSHIP
+NJ	SOUTH ORANGE
+NJ	SOUTH PLAINFIELD
+NJ	SOUTH RIVER
+NJ	SOUTH SEAVILLE
+NJ	SPARTA
+NJ	S PLAINFIELD
+NJ	SPOTSWOOD
+NJ	SPRINGFIELD
+NJ	SPRING LAKE
+NJ	S SEAVILLE
+NJ	STAFFORD TOWNSHIP
+NJ	STAFFORD TWP
+NJ	STANHOPE
+NJ	STANTON
+NJ	STEWARTSVILLE
+NJ	STILLWATER
+NJ	STIRLING
+NJ	STOCKHOLM
+NJ	STOCKTON
+NJ	STONE HARBOR
+NJ	STRATFORD
+NJ	STRATHMERE
+NJ	SUCCASUNNA
+NJ	SUMMIT
+NJ	SURF CITY
+NJ	SUSSEX
+NJ	SWARTSWOOD
+NJ	SWEDESBORO
+NJ	TABERNACLE
+NJ	TEANECK
+NJ	TENAFLY
+NJ	TENNENT
+NJ	TETERBORO
+NJ	THOROFARE
+NJ	THREE BRIDGES
+NJ	TINTON FALLS
+NJ	TITUSVILLE
+NJ	TOMS RIVER
+NJ	TOTOWA
+NJ	TOWACO
+NJ	TOWNSEND INLT
+NJ	TOWNSENDS INLET
+NJ	TOWNSHIP OF WASHINGTON
+NJ	TRANQUILITY
+NJ	TRENTON
+NJ	TUCKAHOE
+NJ	TUCKERTON
+NJ	TURNERSVILLE
+NJ	TWP WASHINGTN
+NJ	TWP WASHINTON
+NJ	UNION
+NJ	UNION BEACH
+NJ	UNION CITY
+NJ	UPPER MONTCLAIR
+NJ	UPPER SADDLE RIVER
+NJ	UPR MONTCLAIR
+NJ	U SADDLE RIV
+NJ	VAUXHALL
+NJ	VENTNOR CITY
+NJ	VERNON
+NJ	VERONA
+NJ	VIENNA
+NJ	VILLAS
+NJ	VINCENTOWN
+NJ	VINELAND
+NJ	VOORHEES
+NJ	WALDWICK
+NJ	WALL
+NJ	W ALLENHURST
+NJ	WALLINGTON
+NJ	WALLPACK CENTER
+NJ	WALLPACK CTR
+NJ	WALL TOWNSHIP
+NJ	WANAQUE
+NJ	WARETOWN
+NJ	WARREN
+NJ	WASHINGTON
+NJ	WASHINGTON TWPS
+NJ	WATCHUNG
+NJ	WATERFORD WKS
+NJ	WATERFORD WORKS
+NJ	WAYNE
+NJ	W CALDWELL
+NJ	W COLLS
+NJ	W COLLS HGTS
+NJ	WEEHAWKEN
+NJ	WENONAH
+NJ	WEST ALLENHURST
+NJ	WESTAMPTON
+NJ	WEST BERLIN
+NJ	WEST CALDWELL
+NJ	WEST CAPE MAY
+NJ	WEST COLLINGSWOOD
+NJ	WEST COLLINGSWOOD HEIGHTS
+NJ	WEST CREEK
+NJ	WEST DEPTFORD
+NJ	WESTFIELD
+NJ	WEST LONG BRANCH
+NJ	WEST MILFORD
+NJ	WESTMONT
+NJ	WEST NEW YORK
+NJ	WEST ORANGE
+NJ	WEST PATERSON
+NJ	WEST TRENTON
+NJ	WESTVILLE
+NJ	WEST WILDWOOD
+NJ	WEST WINDSOR
+NJ	WESTWOOD
+NJ	WHARTON
+NJ	WHIPPANY
+NJ	WHITEHOUSE
+NJ	WHITEHOUSE STATION
+NJ	WHITE HSE STA
+NJ	WHITESBORO
+NJ	WHITING
+NJ	WICKATUNK
+NJ	WILDWOOD
+NJ	WILDWOOD CREST
+NJ	WILDWOOD CRST
+NJ	WILLIAMSTOWN
+NJ	WILLINGBORO
+NJ	WINDSOR
+NJ	WINFIELD PARK
+NJ	WINSLOW
+NJ	W LONG BRANCH
+NJ	WOODBINE
+NJ	WOODBRIDGE
+NJ	WOODBURY
+NJ	WOODBURY HEIGHTS
+NJ	WOODBURY HTS
+NJ	WOODCLIFF LAKE
+NJ	WOODCLIFF LK
+NJ	WOOD RIDGE
+NJ	WOODSTOWN
+NJ	WOOLWICH TOWNSHIP
+NJ	WOOLWICH TWP
+NJ	WRIGHTSTOWN
+NJ	WYCKOFF
+NJ	YARDVILLE
+NJ	ZAREPHATH
+NM	ABIQUIU
+NM	ALAMEDA
+NM	ALAMOGORDO
+NM	ALBERT
+NM	ALBUQUERQUE
+NM	ALCALDE
+NM	ALGODONES
+NM	ALTO
+NM	AMALIA
+NM	AMISTAD
+NM	ANCHO
+NM	ANGEL FIRE
+NM	ANGUS
+NM	ANIMAS
+NM	ANTHONY
+NM	ANTON CHICO
+NM	ARABELA
+NM	ARAGON
+NM	ARENAS VALLEY
+NM	ARREY
+NM	ARROYO HONDO
+NM	ARROYO SECO
+NM	ARTESIA
+NM	AZTEC
+NM	BARD
+NM	BAYARD
+NM	BELEN
+NM	BELL RANCH
+NM	BELLVIEW
+NM	BENT
+NM	BERINO
+NM	BERNALILLO
+NM	BINGHAM
+NM	BLANCO
+NM	BLOOMFIELD
+NM	BLUEWATER
+NM	BOSQUE
+NM	BOSQUE FARMS
+NM	BRIMHALL
+NM	BROADVIEW
+NM	BUCKHORN
+NM	BUDAGHERS
+NM	BUENA VISTA
+NM	BUEYEROS
+NM	CABALLO
+NM	CANJILON
+NM	CANNON AFB
+NM	CANONCITO
+NM	CANONES
+NM	CAPITAN
+NM	CAPROCK
+NM	CAPULIN
+NM	CARLSBAD
+NM	CARRIZOZO
+NM	CARSON
+NM	CASA BLANCA
+NM	CAUSEY
+NM	CEBOLLA
+NM	CEDAR CREST
+NM	CEDARVALE
+NM	CENTRAL
+NM	CERRILLOS
+NM	CERRO
+NM	CHACON
+NM	CHAMA
+NM	CHAMBERINO
+NM	CHAMISAL
+NM	CHAPARRAL
+NM	CHIMAYO
+NM	CHURCH ROCK
+NM	CIMARRON
+NM	CLAUNCH
+NM	CLAYTON
+NM	CLEVELAND
+NM	CLIFF
+NM	CLINES CORNERS
+NM	CLINES CORS
+NM	CLOUDCROFT
+NM	CLOVIS
+NM	COCHITI LAKE
+NM	COCHITI PUBLO
+NM	COCHITI PUEBLO
+NM	COLUMBUS
+NM	CONCHAS DAM
+NM	CONTINENTAL DIVIDE
+NM	CONTNENTAL DV
+NM	CORDOVA
+NM	CORONA
+NM	CORRALES
+NM	COSTILLA
+NM	COUNSELOR
+NM	COYOTE
+NM	CROSSROADS
+NM	CROWNPOINT
+NM	CUBA
+NM	CUBERO
+NM	CUCHILLO
+NM	CUERVO
+NM	CUNDIYO
+NM	DATIL
+NM	DEMING
+NM	DERRY
+NM	DES MOINES
+NM	DEXTER
+NM	DIXON
+NM	DONA ANA
+NM	DORA
+NM	DULCE
+NM	DURAN
+NM	EAGLE NEST
+NM	EDGEWOOD
+NM	ELEPHANT BTTE
+NM	ELEPHANT BUTTE
+NM	ELIDA
+NM	EL PRADO
+NM	EL RITO
+NM	EMBUDO
+NM	ENCINO
+NM	ESPANOLA
+NM	ESTANCIA
+NM	EUNICE
+NM	FAIRACRES
+NM	FAIRVIEW
+NM	FARMINGTON
+NM	FAYWOOD
+NM	FENCE LAKE
+NM	FLORA VISTA
+NM	FLOYD
+NM	FLYING H
+NM	FOLSOM
+NM	FORT BAYARD
+NM	FORT STANTON
+NM	FORT SUMNER
+NM	FORT WINGATE
+NM	FRUITLAND
+NM	GALISTEO
+NM	GALLINA
+NM	GALLUP
+NM	GAMERCO
+NM	GARFIELD
+NM	GARITA
+NM	GILA
+NM	GLADSTONE
+NM	GLENCOE
+NM	GLENRIO
+NM	GLENWOOD
+NM	GLORIETA
+NM	GOLDEN
+NM	GONZALES RANCH
+NM	GONZALES RNCH
+NM	GRADY
+NM	GRANTS
+NM	GRENVILLE
+NM	GUADALUPITA
+NM	HACHITA
+NM	HAGERMAN
+NM	HANOVER
+NM	HATCH
+NM	HERNANDEZ
+NM	HIGH ROLLS MOUNTAIN PARK
+NM	HILLSBORO
+NM	HI RLS MTN PK
+NM	HOBBS
+NM	HOLLOMAN AFB
+NM	HOLLOMAN AIR FORCE BASE
+NM	HOLMAN
+NM	HONDO
+NM	HOPE
+NM	HOUSE
+NM	HURLEY
+NM	ILFELD
+NM	ISLETA
+NM	JAL
+NM	JAMESTOWN
+NM	JARALES
+NM	JEMEZ PUEBLO
+NM	JEMEZ SPRINGS
+NM	JICARILLA
+NM	KENNA
+NM	KIRTLAND
+NM	KIRTLAND AFB
+NM	LAGUNA
+NM	LA JARA
+NM	LA JOYA
+NM	LAKE ARTHUR
+NM	LAKE SUMNER
+NM	LAKEWOOD
+NM	LA LOMA
+NM	LA LUZ
+NM	LA MADERA
+NM	LA MESA
+NM	LAMY
+NM	LA PLATA
+NM	LAS CRUCES
+NM	LAS TABLAS
+NM	LAS VEGAS
+NM	LEDOUX
+NM	LEMITAR
+NM	LINCOLN
+NM	LINDRITH
+NM	LINGO
+NM	LLANO
+NM	LOCO HILLS
+NM	LOGAN
+NM	LORDSBURG
+NM	LOS ALAMOS
+NM	LOS LUNAS
+NM	LOS OJOS
+NM	LOS RANCHOS
+NM	LOS RANCHOS DE ALBUQUERQUE
+NM	LOS RNCHS ABQ
+NM	LOVING
+NM	LOVINGTON
+NM	LUMBERTON
+NM	LUNA
+NM	MADRID
+NM	MAGDALENA
+NM	MALAGA
+NM	MALJAMAR
+NM	MANUELITO
+NM	MAXWELL
+NM	MAYHILL
+NM	MC ALISTER
+NM	MC DONALD
+NM	MC INTOSH
+NM	MEDANALES
+NM	MELROSE
+NM	MENTMORE
+NM	MESCALERO
+NM	MESILLA
+NM	MESILLA PARK
+NM	MESQUITE
+NM	MEXICAN SPGS
+NM	MEXICAN SPRINGS
+NM	MIAMI
+NM	MILAN
+NM	MILLS
+NM	MILNESAND
+NM	MIMBRES
+NM	MOGOLLON
+NM	MONTEZUMA
+NM	MONTICELLO
+NM	MONUMENT
+NM	MORA
+NM	MORIARTY
+NM	MOSQUERO
+NM	MOUNTAINAIR
+NM	MOUNT DORA
+NM	MULE CREEK
+NM	NAGEEZI
+NM	NAMBE
+NM	NARA VISA
+NM	NAVAJO
+NM	NAVAJO DAM
+NM	NEWCOMB
+NM	NEWKIRK
+NM	NEW LAGUNA
+NM	NOGAL
+NM	OCATE
+NM	OHKAY OWINGEH
+NM	OIL CENTER
+NM	OJO CALIENTE
+NM	OJO FELIZ
+NM	OJO SARCO
+NM	OLD LAGUNA
+NM	ORGAN
+NM	OROGRANDE
+NM	OSCURO
+NM	PAGUATE
+NM	PASTURA
+NM	PBLO OF ACOMA
+NM	PECOS
+NM	PENA BLANCA
+NM	PENASCO
+NM	PEP
+NM	PERALTA
+NM	PETACA
+NM	PICACHO
+NM	PIE TOWN
+NM	PINEHILL
+NM	PINON
+NM	PINOS ALTOS
+NM	PLACITAS
+NM	PLAYAS
+NM	POJOAQUE
+NM	POLVADERA
+NM	PONDEROSA
+NM	PORTALES
+NM	PREWITT
+NM	PUEBLO OF ACOMA
+NM	PUERTA DE LUNA
+NM	PUERTA D LUNA
+NM	QUAY
+NM	QUEMADO
+NM	QUESTA
+NM	RADIUM SPRGS
+NM	RADIUM SPRINGS
+NM	RAINSVILLE
+NM	RAMAH
+NM	RANCHOS DE TAOS
+NM	RATON
+NM	RED RIVER
+NM	REDROCK
+NM	REGINA
+NM	REHOBOTH
+NM	RESERVE
+NM	RIBERA
+NM	RINCON
+NM	RIO RANCHO
+NM	RNCH DE TAOS
+NM	ROAD FORKS
+NM	ROCIADA
+NM	RODEO
+NM	ROGERS
+NM	ROSWELL
+NM	ROWE
+NM	ROY
+NM	RUIDOSO
+NM	RUIDOSO DOWNS
+NM	RUTHERON
+NM	SACRAMENTO
+NM	SAINT VRAIN
+NM	SALEM
+NM	SAN ACACIA
+NM	SAN ANTONIO
+NM	SAN ANTONITO
+NM	SAN CRISTOBAL
+NM	SANDIA PARK
+NM	SANDIA PUEBLO
+NM	SAN FELIPE PB
+NM	SAN FIDEL
+NM	SAN JON
+NM	SAN JOSE
+NM	SAN JUAN PBLO
+NM	SAN JUAN PUEBLO
+NM	SAN LORENZO
+NM	SAN MATEO
+NM	SAN MIGUEL
+NM	SANOSTEE
+NM	SAN PATRICIO
+NM	SAN RAFAEL
+NM	SANTA ANA PUE
+NM	SANTA ANA PUEBLO
+NM	SANTA CLARA
+NM	SANTA CRUZ
+NM	SANTA FE
+NM	SANTA ROSA
+NM	SANTA TERESA
+NM	SANTO DOMINGO PUEBLO
+NM	SAN YSIDRO
+NM	SAPELLO
+NM	SEBOYETA
+NM	SEDAN
+NM	SENA
+NM	SENECA
+NM	SERAFINA
+NM	SHEEP SPRINGS
+NM	SHIPROCK
+NM	SILVER CITY
+NM	SMITH LAKE
+NM	SOCORRO
+NM	SOLANO
+NM	SPRINGER
+NM	STANLEY
+NM	ST DMNG PBLO
+NM	STEAD
+NM	SUNLAND PARK
+NM	SUNSPOT
+NM	TAIBAN
+NM	TAJIQUE
+NM	TAMAYA
+NM	TAOS
+NM	TAOS SKI VALLEY
+NM	TAOS SKI VLY
+NM	TATUM
+NM	TERERRO
+NM	TESUQUE
+NM	TEXICO
+NM	THOREAU
+NM	TIERRA AMARILLA
+NM	TIJERAS
+NM	TIMBERON
+NM	TINNIE
+NM	TIRA AMARILLA
+NM	TOHAJIILEE
+NM	TOHATCHI
+NM	TOME
+NM	T OR C
+NM	TORREON
+NM	TRAMPAS
+NM	TREMENTINA
+NM	TRES PIEDRAS
+NM	TRUCHAS
+NM	TRUTH CONSQ
+NM	TRUTH OR CONSEQUENCES
+NM	TUCUMCARI
+NM	TULAROSA
+NM	TYRONE
+NM	UNIV OF NEW MEXICO
+NM	UNIV OF NM
+NM	UNM
+NM	UTE PARK
+NM	VADITO
+NM	VADO
+NM	VALDEZ
+NM	VALLECITOS
+NM	VALMORA
+NM	VANADIUM
+NM	VANDERWAGEN
+NM	VAUGHN
+NM	VEGUITA
+NM	VELARDE
+NM	VILLANUEVA
+NM	VIRDEN
+NM	WAGON MOUND
+NM	WATERFLOW
+NM	WATROUS
+NM	WEED
+NM	WHITE OAKS
+NM	WHITE ROCK
+NM	WHITE SANDS
+NM	WHITE SANDS MISSILE RANGE
+NM	WHITES CITY
+NM	WILLARD
+NM	WILLIAMSBURG
+NM	WINSTON
+NM	YATAHEY
+NM	YESO
+NM	YOUNGSVILLE
+NM	ZIA PUEBLO
+NM	ZUNI
+NV	ALAMO
+NV	AMARGOSA VALLEY
+NV	AMARGOSA VLY
+NV	AUSTIN
+NV	BAKER
+NV	BATTLE MOUNTAIN
+NV	BATTLE MTN
+NV	BEATTY
+NV	BEOWAWE
+NV	BLUE DIAMOND
+NV	BOULDER CITY
+NV	BUNKERVILLE
+NV	CALICO BASIN
+NV	CALIENTE
+NV	CALLVILLE BAY
+NV	CAL NEV ARI
+NV	CARLIN
+NV	CARSON CITY
+NV	COLD CREEK
+NV	CORN CREEK
+NV	COTTONWOOD CV
+NV	COYOTE SPGS
+NV	COYOTE SPRINGS
+NV	CRESCENT VALLEY
+NV	CRESCENT VLY
+NV	CRYSTAL BAY
+NV	DAYTON
+NV	DEETH
+NV	DENIO
+NV	DUCKWATER
+NV	DYER
+NV	ELKO
+NV	ELY
+NV	EMIGRANT PASS
+NV	EMPIRE
+NV	ENTERPRISE
+NV	EUREKA
+NV	FALLON
+NV	FERNLEY
+NV	GABBS
+NV	GARDNERVILLE
+NV	GENOA
+NV	GERLACH
+NV	GLENBROOK
+NV	GOLCONDA
+NV	GOLDFIELD
+NV	GOODSPRINGS
+NV	HALLECK
+NV	HAWTHORNE
+NV	HENDERSON
+NV	HIKO
+NV	IMLAY
+NV	INCLINE VILLAGE
+NV	INCLINE VLG
+NV	INDIAN SPGS
+NV	INDIAN SPRINGS
+NV	INDIAN SPRINGS AIR FORCE AUX
+NV	ISAFA
+NV	JACKPOT
+NV	JARBIDGE
+NV	JEAN
+NV	JIGGS
+NV	LAMOILLE
+NV	LAS VEGAS
+NV	LAUGHLIN
+NV	LEE
+NV	LOCKWOOD
+NV	LOGANDALE
+NV	LOVELOCK
+NV	LUND
+NV	LUNING
+NV	MANHATTAN
+NV	MCCARRAN
+NV	MC DERMITT
+NV	MC GILL
+NV	MERCURY
+NV	MESQUITE
+NV	MIDAS
+NV	MILL CITY
+NV	MINA
+NV	MINDEN
+NV	MOAPA
+NV	MONTELLO
+NV	MOUND HOUSE
+NV	MOUNTAIN CITY
+NV	MOUNTAIN SPRG
+NV	MOUNTAIN SPRINGS
+NV	MOUNT CHARLESTON
+NV	MT CHARLESTON
+NV	NELLIS AFB
+NV	NIXON
+NV	N LAS VEGAS
+NV	NORTH LAS VEGAS
+NV	OASIS
+NV	OROVADA
+NV	OVERTON
+NV	OWYHEE
+NV	PAHRUMP
+NV	PALM GARDENS
+NV	PANACA
+NV	PARADISE VALLEY
+NV	PARADISE VLY
+NV	PIOCHE
+NV	PRIMM
+NV	RENO
+NV	ROUND MOUNTAIN
+NV	ROUND MTN
+NV	RUBY VALLEY
+NV	RUTH
+NV	SANDY VALLEY
+NV	SCHURZ
+NV	SEARCHLIGHT
+NV	SILVER CITY
+NV	SILVERPEAK
+NV	SILVER SPGS
+NV	SILVER SPRINGS
+NV	SLOAN
+NV	SMITH
+NV	SPANISH SPGS
+NV	SPANISH SPRINGS
+NV	SPARKS
+NV	SPRING CREEK
+NV	STAGECOACH
+NV	STATELINE
+NV	SUN VALLEY
+NV	THE LAKES
+NV	TONOPAH
+NV	TUSCARORA
+NV	UNIONVILLE
+NV	VALMY
+NV	VC HIGHLANDS
+NV	VERDI
+NV	VIRGINIA CITY
+NV	WADSWORTH
+NV	WALKER LAKE
+NV	WASHOE VALLEY
+NV	WELLINGTON
+NV	WELLS
+NV	WENDOVER
+NV	WEST WENDOVER
+NV	WINNEMUCCA
+NV	W WENDOVER
+NV	YERINGTON
+NV	ZEPHYR COVE
+NY	ACCORD
+NY	ACRA
+NY	ADAMS
+NY	ADAMS BASIN
+NY	ADAMS CENTER
+NY	ADDISLEIGH PARK
+NY	ADDISLEIGH PK
+NY	ADDISON
+NY	ADIRONDACK
+NY	AFTON
+NY	AIRMONT
+NY	AKRON
+NY	AKWESASNE
+NY	ALABAMA
+NY	ALBANY
+NY	ALBERTSON
+NY	ALBION
+NY	ALCOVE
+NY	ALDEN
+NY	ALDEN MANOR
+NY	ALDER CREEK
+NY	ALEXANDER
+NY	ALEXANDRIA BAY
+NY	ALEX BAY
+NY	ALFRED
+NY	ALFRED STA
+NY	ALFRED STATION
+NY	ALLEGANY
+NY	ALLENTOWN
+NY	ALMA
+NY	ALMOND
+NY	ALPINE
+NY	ALPLAUS
+NY	ALTAMONT
+NY	ALTMAR
+NY	ALTON
+NY	ALTONA
+NY	AMAGANSETT
+NY	AMAWALK
+NY	AMENIA
+NY	AMES
+NY	AMHERST
+NY	AMITY HARBOR
+NY	AMITYVILLE
+NY	AMSTERDAM
+NY	ANCRAM
+NY	ANCRAMDALE
+NY	ANDES
+NY	ANDOVER
+NY	ANGELICA
+NY	ANGOLA
+NY	ANNANDALE
+NY	ANNANDALE ON HUDSON
+NY	ANTWERP
+NY	APALACHIN
+NY	APPLETON
+NY	APULIA STA
+NY	APULIA STATION
+NY	AQUEBOGUE
+NY	ARCADE
+NY	ARDEN
+NY	ARDSLEY
+NY	ARDSLEY HDSN
+NY	ARDSLEY ON HUDSON
+NY	ARGYLE
+NY	ARKPORT
+NY	ARKVILLE
+NY	ARLINGTON
+NY	ARMONK
+NY	ARVERNE
+NY	ASHLAND
+NY	ASHVILLE
+NY	ASTORIA
+NY	ATHENS
+NY	ATHOL
+NY	ATHOL SPRINGS
+NY	ATLANTA
+NY	ATLANTIC BCH
+NY	ATLANTIC BEACH
+NY	ATTICA
+NY	AUBURN
+NY	AURIESVILLE
+NY	AURORA
+NY	AU SABLE CHASM
+NY	AUSABLE CHASM
+NY	AU SABLE FORKS
+NY	AU SABLE FRKS
+NY	AUSTERLITZ
+NY	AVA
+NY	AVERILL PARK
+NY	AVOCA
+NY	AVON
+NY	BABYLON
+NY	BAINBRIDGE
+NY	BAITING HOLLO
+NY	BAITING HOLLOW
+NY	BAKERS MILLS
+NY	BALDWIN
+NY	BALDWIN PLACE
+NY	BALDWINSVILLE
+NY	BALLSTON LAKE
+NY	BALLSTON SPA
+NY	BANGALL
+NY	BANGOR
+NY	BANKERS TRUST
+NY	BARDONIA
+NY	BARKER
+NY	BARNES CORNERS
+NY	BARNES CORS
+NY	BARNEVELD
+NY	BARRYTOWN
+NY	BARRYVILLE
+NY	BARTON
+NY	BASOM
+NY	BATAVIA
+NY	BATH
+NY	BAYBERRY
+NY	BAYPORT
+NY	BAY SHORE
+NY	BAYSIDE
+NY	BAYVILLE
+NY	BEACON
+NY	BEAR MOUNTAIN
+NY	BEAR STEARNS
+NY	BEARSVILLE
+NY	BEAVER DAMS
+NY	BEAVER FALLS
+NY	BEAVER FLS
+NY	BEAVER RIVER
+NY	BEDFORD
+NY	BEDFORD CORNERS
+NY	BEDFORD CORS
+NY	BEDFORD HILLS
+NY	BEECHHURST
+NY	BELFAST
+NY	BELLE HARBOR
+NY	BELLEROSE
+NY	BELLEROSE MANOR
+NY	BELLEROSE VIL
+NY	BELLEROSE VILLAGE
+NY	BELLEVILLE
+NY	BELLMORE
+NY	BELLONA
+NY	BELLPORT
+NY	BELLRS MANOR
+NY	BELLVALE
+NY	BELMONT
+NY	BEMUS POINT
+NY	BERGEN
+NY	BERKSHIRE
+NY	BERLIN
+NY	BERNE
+NY	BERNHARDS BAY
+NY	BETHEL
+NY	BETHPAGE
+NY	BIBLE SCHOOL PARK
+NY	BIBLE SCH PK
+NY	BIG FLATS
+NY	BIG INDIAN
+NY	BILLINGS
+NY	BINGHAMTON
+NY	BLACK CREEK
+NY	BLACK RIVER
+NY	BLASDELL
+NY	BLAUVELT
+NY	BLISS
+NY	BLODGETT MILLS
+NY	BLODGETT MLS
+NY	BLOOMFIELD
+NY	BLOOMINGBURG
+NY	BLOOMINGDALE
+NY	BLOOMING GROVE
+NY	BLOOMING GRV
+NY	BLOOMINGTON
+NY	BLOOMVILLE
+NY	BLOSSVALE
+NY	BLUE MOUNTAIN LAKE
+NY	BLUE MTN LAKE
+NY	BLUE POINT
+NY	BLUFF POINT
+NY	BOHEMIA
+NY	BOICEVILLE
+NY	BOLIVAR
+NY	BOLTON LANDING
+NY	BOLTON LNDG
+NY	BOMBAY
+NY	BOONVILLE
+NY	BOSTON
+NY	BOUCKVILLE
+NY	BOVINA CENTER
+NY	BOWLING GREEN
+NY	BOWMANSVILLE
+NY	BRADFORD
+NY	BRAINARD
+NY	BRAINARDSVILLE
+NY	BRAINARDSVLE
+NY	BRANCHPORT
+NY	BRANT
+NY	BRANTINGHAM
+NY	BRANT LAKE
+NY	BRASHER FALLS
+NY	BREESPORT
+NY	BREEZY POINT
+NY	BRENTWOOD
+NY	BREWERTON
+NY	BREWSTER
+NY	BRIARCLIFF
+NY	BRIARCLIFF MANOR
+NY	BRIARWOOD
+NY	BRIDGEHAMPTON
+NY	BRIDGEPORT
+NY	BRIDGEWATER
+NY	BRIER HILL
+NY	BRIGHTWATERS
+NY	BRISBEN
+NY	BROADALBIN
+NY	BROAD CHANNEL
+NY	BROCKPORT
+NY	BROCTON
+NY	BRONX
+NY	BRONXVILLE
+NY	BROOKFIELD
+NY	BROOKHAVEN
+NY	BROOKLYN
+NY	BROOKTONDALE
+NY	BROOKVIEW
+NY	BROWNVILLE
+NY	BRUSHTON
+NY	BUCHANAN
+NY	BUFFALO
+NY	BULLVILLE
+NY	BURDETT
+NY	BURKE
+NY	BURLINGHAM
+NY	BURLINGTON FLATS
+NY	BURLNGTN FLT
+NY	BURNT HILLS
+NY	BURT
+NY	BUSKIRK
+NY	BYRON
+NY	CADOSIA
+NY	CADYVILLE
+NY	CAIRO
+NY	CALCIUM
+NY	CALEDONIA
+NY	CALLICOON
+NY	CALLICOON CENTER
+NY	CALLICOON CTR
+NY	CALVERTON
+NY	CAMBRIA HEIGHTS
+NY	CAMBRIA HTS
+NY	CAMBRIDGE
+NY	CAMDEN
+NY	CAMERON
+NY	CAMERON MILLS
+NY	CAMILLUS
+NY	CAMPBELL
+NY	CAMPBELL HALL
+NY	CANAAN
+NY	CANAJOHARIE
+NY	CANAL STREET
+NY	CANANDAIGUA
+NY	CANASERAGA
+NY	CANASTOTA
+NY	CANDOR
+NY	CANEADEA
+NY	CANISTEO
+NY	CANTON
+NY	CAPE VINCENT
+NY	CAPTREE IS
+NY	CAPTREE ISLAND
+NY	CARLE PLACE
+NY	CARLISLE
+NY	CARMEL
+NY	CAROGA LAKE
+NY	CARTHAGE
+NY	CASSADAGA
+NY	CASSVILLE
+NY	CASTILE
+NY	CASTLE CREEK
+NY	CASTLE POINT
+NY	CASTLETON
+NY	CASTLETON ON HUDSON
+NY	CASTORLAND
+NY	CATO
+NY	CATSKILL
+NY	CATTARAUGUS
+NY	CAYUGA
+NY	CAYUTA
+NY	CAZENOVIA
+NY	CEDARHURST
+NY	CELORON
+NY	CEMENTON
+NY	CENTEREACH
+NY	CENTER MORICHES
+NY	CENTERPORT
+NY	CENTERVILLE
+NY	CENTRAL BRG
+NY	CENTRAL BRIDGE
+NY	CENTRAL ISLIP
+NY	CENTRAL SQ
+NY	CENTRAL SQUARE
+NY	CENTRAL VALLEY
+NY	CENTRAL VLY
+NY	CERES
+NY	CHADWICKS
+NY	CHAFFEE
+NY	CHAMPLAIN
+NY	CHAPPAQUA
+NY	CHARLOTTEVILLE
+NY	CHARLOTTEVLE
+NY	CHARLTON
+NY	CHASE MILLS
+NY	CHATEAUGAY
+NY	CHATHAM
+NY	CHAUMONT
+NY	CHAUTAUQUA
+NY	CHAZY
+NY	CHEEKTOWAGA
+NY	CHELSEA
+NY	CHEMUNG
+NY	CHENANGO BRG
+NY	CHENANGO BRIDGE
+NY	CHENANGO FKS
+NY	CHENANGO FORKS
+NY	CHERRY CREEK
+NY	CHERRY GROVE
+NY	CHERRY PLAIN
+NY	CHERRY VALLEY
+NY	CHESTER
+NY	CHESTERTOWN
+NY	CHESTNUT RDG
+NY	CHESTNUT RIDGE
+NY	CHICHESTER
+NY	CHILDWOLD
+NY	CHINATOWN
+NY	CHIPPEWA BAY
+NY	CHITTENANGO
+NY	CHURCHVILLE
+NY	CHURUBUSCO
+NY	CICERO
+NY	CINCINNATUS
+NY	CIRCLEVILLE
+NY	CLARENCE
+NY	CLARENCE CENTER
+NY	CLARENCE CTR
+NY	CLARENDON
+NY	CLARK MILLS
+NY	CLARKSON
+NY	CLARKSVILLE
+NY	CLARYVILLE
+NY	CLAVERACK
+NY	CLAY
+NY	CLAYTON
+NY	CLAYVILLE
+NY	CLEMONS
+NY	CLEVELAND
+NY	CLEVERDALE
+NY	CLIFTON
+NY	CLIFTON PARK
+NY	CLIFTON SPGS
+NY	CLIFTON SPRINGS
+NY	CLIMAX
+NY	CLINTON
+NY	CLINTON CORNERS
+NY	CLINTON CORS
+NY	CLINTONDALE
+NY	CLINTONVILLE
+NY	CLOCKVILLE
+NY	CLYDE
+NY	CLYMER
+NY	COBLESKILL
+NY	COCHECTON
+NY	COCHECTON CENTER
+NY	COCHECTON CTR
+NY	COEYMANS
+NY	COEYMANS HOLLOW
+NY	COEYMANS HOLW
+NY	COHOCTON
+NY	COHOES
+NY	COLD BROOK
+NY	COLDEN
+NY	COLD SPG HBR
+NY	COLD SPRING
+NY	COLD SPRING HARBOR
+NY	COLLEGE POINT
+NY	COLLIERSVILLE
+NY	COLLINS
+NY	COLLINS CENTER
+NY	COLLINS CTR
+NY	COLONIE
+NY	COLTON
+NY	COLUMBIAVILLE
+NY	COMMACK
+NY	COMSTOCK
+NY	CONESUS
+NY	CONEWANGO VALLEY
+NY	CONEWANGO VLY
+NY	CONGERS
+NY	CONKLIN
+NY	CONNELLY
+NY	CONSTABLE
+NY	CONSTABLEVILLE
+NY	CONSTABLEVLE
+NY	CONSTANTIA
+NY	COOPERS PLAINS
+NY	COOPERS PLNS
+NY	COOPERSTOWN
+NY	COPAKE
+NY	COPAKE FALLS
+NY	COPENHAGEN
+NY	COPIAGUE
+NY	CORAM
+NY	CORBETTSVILLE
+NY	CORFU
+NY	CORINTH
+NY	CORNING
+NY	CORNWALL
+NY	CORNWALL HDSN
+NY	CORNWALL ON HUDSON
+NY	CORNWALLVILLE
+NY	CORONA
+NY	CORTLAND
+NY	CORTLANDT MANOR
+NY	CORTLANDT MNR
+NY	COSSAYUNA
+NY	COTTEKILL
+NY	COWLESVILLE
+NY	COXSACKIE
+NY	CRAGSMOOR
+NY	CRANBERRY LAKE
+NY	CRANBERRY LK
+NY	CRARYVILLE
+NY	CRITTENDEN
+NY	CROGHAN
+NY	CROMPOND
+NY	CROPSEYVILLE
+NY	CROSS RIVER
+NY	CROTON FALLS
+NY	CROTON HDSN
+NY	CROTON ON HUDSON
+NY	CROWN POINT
+NY	CRUGERS
+NY	CTR MORICHES
+NY	CUBA
+NY	CUDDEBACKVILLE
+NY	CUDDEBACKVLLE
+NY	CUTCHOGUE
+NY	CUYLER
+NY	DALE
+NY	DALTON
+NY	DANNEMORA
+NY	DANSVILLE
+NY	DARIEN CENTER
+NY	DAVENPORT
+NY	DAVENPORT CENTER
+NY	DAVENPORT CTR
+NY	DAVIS PARK
+NY	DAYTON
+NY	DEANSBORO
+NY	DEERFIELD
+NY	DEER PARK
+NY	DEER RIVER
+NY	DEFERIET
+NY	DEGRASSE
+NY	DE KALB JCT
+NY	DE KALB JUNCTION
+NY	DELANCEY
+NY	DELANSON
+NY	DELEVAN
+NY	DELHI
+NY	DELMAR
+NY	DELPHI FALLS
+NY	DENMARK
+NY	DENVER
+NY	DEPAUVILLE
+NY	DEPEW
+NY	DE PEYSTER
+NY	DEPOSIT
+NY	DERBY
+NY	DE RUYTER
+NY	DE WITT
+NY	DEWITTVILLE
+NY	DEXTER
+NY	DIAMOND POINT
+NY	DICKINSON CENTER
+NY	DICKINSON CTR
+NY	DIX HILLS
+NY	DOBBS FERRY
+NY	DOLGEVILLE
+NY	DORMANSVILLE
+NY	DOUGLASTON
+NY	DOVER PLAINS
+NY	DOWNSVILLE
+NY	DRESDEN
+NY	DRYDEN
+NY	DUANESBURG
+NY	DUNDEE
+NY	DUNKIRK
+NY	DURHAM
+NY	DURHAMVILLE
+NY	EAGLE BAY
+NY	EAGLE BRIDGE
+NY	EAGLE HARBOR
+NY	EARLTON
+NY	EARLVILLE
+NY	EAST AMHERST
+NY	EAST ATLANTIC BEACH
+NY	EAST AURORA
+NY	EAST BERNE
+NY	EAST BETHANY
+NY	EAST BLOOMFIELD
+NY	EAST BRANCH
+NY	EAST CHATHAM
+NY	EASTCHESTER
+NY	EAST CONCORD
+NY	EAST DURHAM
+NY	EAST ELMHURST
+NY	EAST FISHKILL
+NY	EAST FREETOWN
+NY	EAST GREENBUSH
+NY	EAST GREENWICH
+NY	EAST HAMPTON
+NY	EAST HOMER
+NY	EAST ISLIP
+NY	EAST JEWETT
+NY	EAST MARION
+NY	EAST MEADOW
+NY	EAST MEREDITH
+NY	EAST MORICHES
+NY	EAST NASSAU
+NY	EAST NORTHPORT
+NY	EAST NORWICH
+NY	EAST OTTO
+NY	EAST PALMYRA
+NY	EAST PATCHOGUE
+NY	EAST PEMBROKE
+NY	EAST PHARSALIA
+NY	EASTPORT
+NY	EAST QUOGUE
+NY	EAST RANDOLPH
+NY	EAST ROCHESTER
+NY	EAST ROCKAWAY
+NY	EAST SCHODACK
+NY	EAST SETAUKET
+NY	EAST SPRINGFIELD
+NY	EAST SYRACUSE
+NY	EAST WILLIAMSON
+NY	EAST WILLISTON
+NY	EAST WINDHAM
+NY	EAST WORCESTER
+NY	EAST YAPHANK
+NY	E ATLANTC BCH
+NY	E ATLANTIC BEACH
+NY	EATON
+NY	E BLOOMFIELD
+NY	EDDYVILLE
+NY	EDEN
+NY	EDGEMERE
+NY	EDGEWOOD
+NY	EDMESTON
+NY	EDWARDS
+NY	EGGERTSVILLE
+NY	E GREENBUSH
+NY	E GREENWICH
+NY	ELBA
+NY	ELBRIDGE
+NY	ELDRED
+NY	ELIZABETHTOWN
+NY	ELIZAVILLE
+NY	ELKA PARK
+NY	ELLENBURG
+NY	ELLENBURG CENTER
+NY	ELLENBURG CTR
+NY	ELLENBURG DEP
+NY	ELLENBURG DEPOT
+NY	ELLENVILLE
+NY	ELLICOTTVILLE
+NY	ELLINGTON
+NY	ELLISBURG
+NY	ELMA
+NY	ELMHURST
+NY	ELMIRA
+NY	ELMIRA HEIGHTS
+NY	ELMIRA HGTS
+NY	ELMIRA HTS
+NY	ELMONT
+NY	ELMSFORD
+NY	ELWOOD
+NY	ENDICOTT
+NY	ENDWELL
+NY	E NORTHPORT
+NY	E PATCHOGUE
+NY	E PHARSALIA
+NY	ERIEVILLE
+NY	ERIN
+NY	E ROCHESTER
+NY	ESOPUS
+NY	ESPERANCE
+NY	E SPRINGFIELD
+NY	ESSEX
+NY	ETNA
+NY	EVANS MILLS
+NY	E WILLIAMSON
+NY	E WILLISTON
+NY	E WORCESTER
+NY	E YAPHANK
+NY	FABIUS
+NY	FAIR HARBOR
+NY	FAIR HAVEN
+NY	FAIRPORT
+NY	FALCONER
+NY	FALLSBURG
+NY	FANCHER
+NY	FARMERSVILLE STATION
+NY	FARMERSVL STA
+NY	FARMINGDALE
+NY	FARMINGTON
+NY	FARMINGVILLE
+NY	FARNHAM
+NY	FAR ROCKAWAY
+NY	FAYETTE
+NY	FAYETTEVILLE
+NY	FELTS MILLS
+NY	FERNDALE
+NY	FEURA BUSH
+NY	FILLMORE
+NY	FINDLEY LAKE
+NY	FINE
+NY	FINEVIEW
+NY	FIRE ISLAND PINES
+NY	FIRE IS PINES
+NY	FISHERS
+NY	FISHERS ISLAND
+NY	FISHERS ISLE
+NY	FISHERS LANDING
+NY	FISHERS LNDG
+NY	FISHKILL
+NY	FISHS EDDY
+NY	FLANDERS
+NY	FLEETWOOD
+NY	FLEISCHMANNS
+NY	FLORAL PARK
+NY	FLORIDA
+NY	FLUSHING
+NY	FLY CREEK
+NY	FONDA
+NY	FORESTBURGH
+NY	FOREST HILLS
+NY	FORESTPORT
+NY	FORESTVILLE
+NY	FORT ANN
+NY	FORT COVINGTON
+NY	FORT DRUM
+NY	FORT EDWARD
+NY	FORT HAMILTON
+NY	FORT HUNTER
+NY	FORT JACKSON
+NY	FORT JOHNSON
+NY	FORT MONTGOMERY
+NY	FORT PLAIN
+NY	FORT SALONGA
+NY	FORT TILDEN
+NY	FORT TOTTEN
+NY	FRANKFORT
+NY	FRANKLIN
+NY	FRANKLIN SPGS
+NY	FRANKLIN SPRINGS
+NY	FRANKLIN SQ
+NY	FRANKLIN SQUARE
+NY	FRANKLINVILLE
+NY	FREDONIA
+NY	FREEDOM
+NY	FREEHOLD
+NY	FREEPORT
+NY	FREEVILLE
+NY	FREMONT CENTER
+NY	FREMONT CTR
+NY	FRESH MEADOWS
+NY	FREWSBURG
+NY	FRIENDSHIP
+NY	FRONTENAC
+NY	FT COVINGTON
+NY	FT MONTGOMERY
+NY	FULTON
+NY	FULTONHAM
+NY	FULTONVILLE
+NY	GABRIELS
+NY	GAINESVILLE
+NY	GALLUPVILLE
+NY	GALWAY
+NY	GANSEVOORT
+NY	GARDEN CITY
+NY	GARDEN CITY P
+NY	GARDEN CITY PARK
+NY	GARDEN CITY S
+NY	GARDEN CITY SOUTH
+NY	GARDINER
+NY	GARNERVILLE
+NY	GARRATTSVILLE
+NY	GARRISON
+NY	GASPORT
+NY	GENESEO
+NY	GENEVA
+NY	GENOA
+NY	GEORGETOWN
+NY	GERMANTOWN
+NY	GERRY
+NY	GETZVILLE
+NY	GHENT
+NY	GILBERTSVILLE
+NY	GILBOA
+NY	GILGO BEACH
+NY	GLASCO
+NY	GLEN AUBREY
+NY	GLEN COVE
+NY	GLENDALE
+NY	GLENFIELD
+NY	GLENFORD
+NY	GLENHAM
+NY	GLEN HEAD
+NY	GLENMONT
+NY	GLEN OAKS
+NY	GLEN PARK
+NY	GLENS FALLS
+NY	GLEN SPEY
+NY	GLENVILLE
+NY	GLEN WILD
+NY	GLENWOOD
+NY	GLENWOOD LANDING
+NY	GLENWOOD LNDG
+NY	GLOVERSVILLE
+NY	GODEFFROY
+NY	GOLDENS BRG
+NY	GOLDENS BRIDGE
+NY	GORHAM
+NY	GOSHEN
+NY	GOUVERNEUR
+NY	GOWANDA
+NY	GRAFTON
+NY	GRAHAMSVILLE
+NY	GRAND GORGE
+NY	GRAND ISLAND
+NY	GRANITE SPGS
+NY	GRANITE SPRINGS
+NY	GRANVILLE
+NY	GREAT BEND
+NY	GREAT NECK
+NY	GREAT RIVER
+NY	GREAT VALLEY
+NY	GREECE
+NY	GREENE
+NY	GREENFIELD CENTER
+NY	GREENFIELD PARK
+NY	GREENFLD CTR
+NY	GREENFLD PARK
+NY	GREENHURST
+NY	GREEN ISLAND
+NY	GREENLAWN
+NY	GREENPORT
+NY	GREENVALE
+NY	GREENVILLE
+NY	GREENWICH
+NY	GREENWOOD
+NY	GREENWOOD LAKE
+NY	GREENWOOD LK
+NY	GREIG
+NY	GRENELL
+NY	GROTON
+NY	GROVELAND
+NY	GUILDERLAND
+NY	GUILDERLAND CENTER
+NY	GUILDRLND CTR
+NY	GUILFORD
+NY	HADLEY
+NY	HAGAMAN
+NY	HAGUE
+NY	HAILESBORO
+NY	HAINES FALLS
+NY	HALCOTT CENTER
+NY	HALCOTT CTR
+NY	HALCOTTSVILLE
+NY	HALESITE
+NY	HALL
+NY	HAMBURG
+NY	HAMDEN
+NY	HAMILTON
+NY	HAMLIN
+NY	HAMMOND
+NY	HAMMONDSPORT
+NY	HAMPTON
+NY	HAMPTON BAYS
+NY	HANCOCK
+NY	HANKINS
+NY	HANNACROIX
+NY	HANNAWA FALLS
+NY	HANNIBAL
+NY	HARFORD
+NY	HARFORD MILLS
+NY	HARPERSFIELD
+NY	HARPURSVILLE
+NY	HARRIMAN
+NY	HARRIS
+NY	HARRISON
+NY	HARRISVILLE
+NY	HARTFORD
+NY	HARTSDALE
+NY	HARTWICK
+NY	HARTWICK SEMINARY
+NY	HASTINGS
+NY	HASTINGS HDSN
+NY	HASTINGS ON HUDSON
+NY	HAUPPAUGE
+NY	HAVERSTRAW
+NY	HAWTHORNE
+NY	HAYT CORNERS
+NY	HEATHCOTE
+NY	HECTOR
+NY	HELENA
+NY	HEMLOCK
+NY	HEMPSTEAD
+NY	HENDERSON
+NY	HENDERSON HARBOR
+NY	HENDERSON HBR
+NY	HENRIETTA
+NY	HENSONVILLE
+NY	HERKIMER
+NY	HERMON
+NY	HEUVELTON
+NY	HEWLETT
+NY	HICKSVILLE
+NY	HIGH FALLS
+NY	HIGHLAND
+NY	HIGHLAND FALLS
+NY	HIGHLAND FLS
+NY	HIGHLAND LAKE
+NY	HIGHLAND MILLS
+NY	HIGHLAND MLS
+NY	HIGHMOUNT
+NY	HILLBURN
+NY	HILLSDALE
+NY	HILLSIDE MANOR
+NY	HILLSIDE MNR
+NY	HILTON
+NY	HIMROD
+NY	HINCKLEY
+NY	HINSDALE
+NY	HOBART
+NY	HOFFMEISTER
+NY	HOFSTRA UNIV
+NY	HOGANSBURG
+NY	HOLBROOK
+NY	HOLLAND
+NY	HOLLAND PATENT
+NY	HOLLAND PATNT
+NY	HOLLEY
+NY	HOLLIS
+NY	HOLLOWVILLE
+NY	HOLMES
+NY	HOLTSVILLE
+NY	HOMER
+NY	HONEOYE
+NY	HONEOYE FALLS
+NY	HOOSICK
+NY	HOOSICK FALLS
+NY	HOPEWELL
+NY	HOPEWELL JCT
+NY	HOPEWELL JUNCTION
+NY	HOPKINTON
+NY	HORNELL
+NY	HORSEHEADS
+NY	HORTONVILLE
+NY	HOUGHTON
+NY	HOWARD BEACH
+NY	HOWELLS
+NY	HOWES CAVE
+NY	HRTWK SEMINRY
+NY	HUBBARDSVILLE
+NY	HUDSON
+NY	HUDSON FALLS
+NY	HUGHSONVILLE
+NY	HUGUENOT
+NY	HULBERTON
+NY	HULETTS LANDING
+NY	HULETTS LNDG
+NY	HUME
+NY	HUNT
+NY	HUNTER
+NY	HUNTINGTN STA
+NY	HUNTINGTON
+NY	HUNTINGTON STATION
+NY	HURLEY
+NY	HURLEYVILLE
+NY	HYDE PARK
+NY	ILION
+NY	INDIAN LAKE
+NY	INDUSTRY
+NY	INLET
+NY	INTERLAKEN
+NY	INWOOD
+NY	IONIA
+NY	IRONDEQUOIT
+NY	IRVING
+NY	IRVINGTON
+NY	ISCHUA
+NY	ISLANDIA
+NY	ISLAND PARK
+NY	ISLIP
+NY	ISLIP TERRACE
+NY	ITHACA
+NY	ITHACA COLL
+NY	ITHACA COLLEGE
+NY	JACKSON HEIGHTS
+NY	JACKSON HTS
+NY	JACKSONVILLE
+NY	JAMAICA
+NY	JAMESPORT
+NY	JAMESTOWN
+NY	JAMESVILLE
+NY	JASPER
+NY	JAVA CENTER
+NY	JAVA VILLAGE
+NY	JAY
+NY	JEFFERSON
+NY	JEFFERSON VALLEY
+NY	JEFFERSONVILLE
+NY	JEFFERSONVLLE
+NY	JEFFERSON VLY
+NY	JERICHO
+NY	JEWETT
+NY	JF KENNEDY AP
+NY	JOHN F KENNEDY AIRPORT
+NY	JOHNSBURG
+NY	JOHNSON
+NY	JOHNSON CITY
+NY	JOHNSONVILLE
+NY	JOHNSTOWN
+NY	JORDAN
+NY	JORDANVILLE
+NY	KANONA
+NY	KATONAH
+NY	KATTSKILL BAY
+NY	KAUNEONGA LAKE
+NY	KAUNEONGA LK
+NY	KEENE
+NY	KEENE VALLEY
+NY	KEESEVILLE
+NY	KENDALL
+NY	KENMORE
+NY	KENNEDY
+NY	KENOZA LAKE
+NY	KENT
+NY	KENT LAKES
+NY	KERHONKSON
+NY	KEUKA PARK
+NY	KEW GARDEN HL
+NY	KEW GARDENS
+NY	KEW GARDENS HILLS
+NY	KIAMESHA LAKE
+NY	KILLAWOG
+NY	KILL BUCK
+NY	KINDERHOOK
+NY	KING FERRY
+NY	KINGS PARK
+NY	KINGS POINT
+NY	KINGSTON
+NY	KIRKVILLE
+NY	KIRKWOOD
+NY	KISMET
+NY	KNAPP CREEK
+NY	KNICKERBOCKER
+NY	KNOWLESVILLE
+NY	KNOX
+NY	KNOXBORO
+NY	KRUMVILLE
+NY	LACKAWANNA
+NY	LACONA
+NY	LA FARGEVILLE
+NY	LA FAYETTE
+NY	LAGRANGEVILLE
+NY	LA GUARDIA AIRPORT
+NY	LA GURDA ARPT
+NY	LAKE CLEAR
+NY	LAKE GEORGE
+NY	LAKE GROVE
+NY	LAKE HILL
+NY	LAKE HUNTINGTON
+NY	LAKE KATRINE
+NY	LAKE LINCOLND
+NY	LAKE LINCOLNDALE
+NY	LAKE LUZERNE
+NY	LAKEMONT
+NY	LAKE PEEKSKILL
+NY	LAKE PLACID
+NY	LAKE PLEASANT
+NY	LAKE RONKONKOMA
+NY	LAKE SUCCESS
+NY	LAKE VIEW
+NY	LAKEVILLE
+NY	LAKEWOOD
+NY	LANCASTER
+NY	LANESVILLE
+NY	LANSING
+NY	LARCHMONT
+NY	LATHAM
+NY	LAUREL
+NY	LAURELTON
+NY	LAURENS
+NY	LAWRENCE
+NY	LAWRENCEVILLE
+NY	LAWTONS
+NY	LAWYERSVILLE
+NY	LEBANON
+NY	LEBANON SPG
+NY	LEBANON SPRINGS
+NY	LEE CENTER
+NY	LEEDS
+NY	LEICESTER
+NY	LEON
+NY	LEONARDSVILLE
+NY	LE ROY
+NY	LEVITTOWN
+NY	LEW BEACH
+NY	LEWIS
+NY	LEWISTON
+NY	LEXINGTON
+NY	LIBERTY
+NY	LIDO BEACH
+NY	LILY DALE
+NY	LIMA
+NY	LIMERICK
+NY	LIMESTONE
+NY	LINCOLNDALE
+NY	LINDENHURST
+NY	LINDLEY
+NY	LINWOOD
+NY	LISBON
+NY	LISLE
+NY	LITTLE FALLS
+NY	LITTLE GENESE
+NY	LITTLE GENESEE
+NY	LITTLE NECK
+NY	LITTLE VALLEY
+NY	LITTLE YORK
+NY	LIVERPOOL
+NY	LIVINGSTN MNR
+NY	LIVINGSTON
+NY	LIVINGSTON MANOR
+NY	LIVONIA
+NY	LIVONIA CENTER
+NY	LIVONIA CTR
+NY	LK HUNTINGTON
+NY	LK PEEKSKILL
+NY	LK RONKONKOMA
+NY	LLOYD HARBOR
+NY	LOCH SHELDRAKE
+NY	LOCH SHELDRKE
+NY	LOCKE
+NY	LOCKPORT
+NY	LOCKWOOD
+NY	LOCUST VALLEY
+NY	LODI
+NY	LOEHMANNS PLAZA
+NY	LOEHMANNS PLZ
+NY	LONG BEACH
+NY	LONG EDDY
+NY	LONG IS CITY
+NY	LONG ISLAND CITY
+NY	LONG LAKE
+NY	LOON LAKE
+NY	LORRAINE
+NY	LOUDONVILLE
+NY	LOWMAN
+NY	LOWVILLE
+NY	LYCOMING
+NY	LYNBROOK
+NY	LYNDONVILLE
+NY	LYON MOUNTAIN
+NY	LYONS
+NY	LYONS FALLS
+NY	LYSANDER
+NY	MAC DOUGALL
+NY	MACEDON
+NY	MACHIAS
+NY	MADISON
+NY	MADRID
+NY	MAHOPAC
+NY	MAHOPAC FALLS
+NY	MAINE
+NY	MALBA
+NY	MALDEN BRIDGE
+NY	MALDEN HUDSON
+NY	MALDEN ON HUDSON
+NY	MALLORY
+NY	MALONE
+NY	MALTA
+NY	MALVERNE
+NY	MAMARONECK
+NY	MANCHESTER
+NY	MANHASSET
+NY	MANHASSET HIL
+NY	MANHASSET HILLS
+NY	MANLIUS
+NY	MANNSVILLE
+NY	MANORVILLE
+NY	MAPLECREST
+NY	MAPLE SPRINGS
+NY	MAPLE VIEW
+NY	MARATHON
+NY	MARCELLUS
+NY	MARCY
+NY	MARGARETVILLE
+NY	MARIETTA
+NY	MARILLA
+NY	MARION
+NY	MARLBORO
+NY	MARTINSBURG
+NY	MARTVILLE
+NY	MARYKNOLL
+NY	MARYLAND
+NY	MASONVILLE
+NY	MASPETH
+NY	MASSAPEQUA
+NY	MASSAPEQUA PARK
+NY	MASSAPEQUA PK
+NY	MASSAWEPIE
+NY	MASSENA
+NY	MASTIC
+NY	MASTIC BEACH
+NY	MATTITUCK
+NY	MATTYDALE
+NY	MAYBROOK
+NY	MAYFIELD
+NY	MAYVILLE
+NY	MC CONELSVILE
+NY	MC CONNELLSVILLE
+NY	MC DONOUGH
+NY	MC GRAW
+NY	MC LEAN
+NY	MDL GRANVILLE
+NY	MEACHAM
+NY	MECHANICVILLE
+NY	MECKLENBURG
+NY	MEDFORD
+NY	MEDINA
+NY	MEDUSA
+NY	MELLENVILLE
+NY	MELROSE
+NY	MELVILLE
+NY	MEMPHIS
+NY	MENANDS
+NY	MENDON
+NY	MEREDITH
+NY	MERIDALE
+NY	MERIDIAN
+NY	MERRICK
+NY	MERRILL
+NY	MEXICO
+NY	MIDDLEBURGH
+NY	MIDDLE FALLS
+NY	MIDDLE GRANVILLE
+NY	MIDDLE GROVE
+NY	MIDDLE ISLAND
+NY	MIDDLEPORT
+NY	MIDDLESEX
+NY	MIDDLETOWN
+NY	MIDDLE VILLAGE
+NY	MIDDLEVILLE
+NY	MIDDLE VLG
+NY	MID HUDSON
+NY	MILAN
+NY	MILFORD
+NY	MILLBROOK
+NY	MILLER PLACE
+NY	MILLERTON
+NY	MILL NECK
+NY	MILLPORT
+NY	MILLWOOD
+NY	MILTON
+NY	MINEOLA
+NY	MINERVA
+NY	MINETTO
+NY	MINEVILLE
+NY	MINOA
+NY	MODEL CITY
+NY	MODENA
+NY	MOHAWK
+NY	MOHEGAN LAKE
+NY	MOIRA
+NY	MONGAUP VALLEY
+NY	MONGAUP VLY
+NY	MONROE
+NY	MONSEY
+NY	MONTAUK
+NY	MONTEBELLO
+NY	MONTEZUMA
+NY	MONTGOMERY
+NY	MONTICELLO
+NY	MONTOUR FALLS
+NY	MONTROSE
+NY	MOOERS
+NY	MOOERS FORKS
+NY	MORAVIA
+NY	MORIAH
+NY	MORIAH CENTER
+NY	MORICHES
+NY	MORRIS
+NY	MORRISONVILLE
+NY	MORRISTOWN
+NY	MORRISVILLE
+NY	MORTON
+NY	MOTTVILLE
+NY	MOUNTAIN DALE
+NY	MOUNTAINVILLE
+NY	MOUNT KISCO
+NY	MOUNT MARION
+NY	MOUNT MORRIS
+NY	MOUNT SINAI
+NY	MOUNT TREMPER
+NY	MOUNT UPTON
+NY	MOUNT VERNON
+NY	MOUNT VISION
+NY	MUMFORD
+NY	MUNNSVILLE
+NY	MURRAY ISLE
+NY	NANUET
+NY	NAPANOCH
+NY	NAPLES
+NY	NARROWSBURG
+NY	NASSAU
+NY	NATURAL BRG
+NY	NATURAL BRIDGE
+NY	N BALDWIN
+NY	N BELLMORE
+NY	N BLENHEIM
+NY	N BROOKFIELD
+NY	N COHOCTON
+NY	NEDROW
+NY	NELLISTON
+NY	NELSONVILLE
+NY	NEPONSIT
+NY	NESCONSET
+NY	NEVERSINK
+NY	NEWARK
+NY	NEWARK VALLEY
+NY	NEW BALTIMORE
+NY	NEW BERLIN
+NY	NEWBURGH
+NY	NEW CITY
+NY	NEWCOMB
+NY	NEWFANE
+NY	NEWFIELD
+NY	NEW HAMBURG
+NY	NEW HAMPTON
+NY	NEW HARTFORD
+NY	NEW HAVEN
+NY	NEW HYDE PARK
+NY	NEW KINGSTON
+NY	NEW LEBANON
+NY	NEW LISBON
+NY	NEW MILFORD
+NY	NEW PALTZ
+NY	NEWPORT
+NY	NEW ROCHELLE
+NY	NEW RUSSIA
+NY	NEW SUFFOLK
+NY	NEWTON FALLS
+NY	NEWTONVILLE
+NY	NEW WINDSOR
+NY	NEW WOODSTOCK
+NY	NEW YORK
+NY	NEW YORK CITY
+NY	NEW YORK MILLS
+NY	NEW YORK MLS
+NY	N GRANVILLE
+NY	NIAGARA FALLS
+NY	NIAGARA UNIV
+NY	NIAGARA UNIVERSITY
+NY	NICHOLS
+NY	NICHOLVILLE
+NY	NINEVEH
+NY	NIOBE
+NY	NISKAYUNA
+NY	NIVERVILLE
+NY	N LAWRENCE
+NY	N MASSAPEQUA
+NY	N MERRICK
+NY	N NEW HYDE PK
+NY	NORFOLK
+NY	NORTH BABYLON
+NY	NORTH BALDWIN
+NY	NORTH BANGOR
+NY	NORTH BAY
+NY	NORTH BELLMORE
+NY	NORTH BLENHEIM
+NY	NORTH BOSTON
+NY	NORTH BRANCH
+NY	NORTH BROOKFIELD
+NY	NORTH CASTLE
+NY	NORTH CHATHAM
+NY	NORTH CHILI
+NY	NORTH COHOCTON
+NY	NORTH COLLINS
+NY	NORTH CREEK
+NY	NORTH EVANS
+NY	NORTH GRANVILLE
+NY	NORTH GREECE
+NY	NORTH HILLS
+NY	NORTH HOOSICK
+NY	NORTH HUDSON
+NY	NORTH JAVA
+NY	NORTH LAWRENCE
+NY	NORTH MASSAPEQUA
+NY	NORTH MERRICK
+NY	NORTH NEW HYDE PARK
+NY	NORTH NORWICH
+NY	NORTH PITCHER
+NY	NORTHPORT
+NY	NORTH RIVER
+NY	NORTH ROSE
+NY	NORTH SALEM
+NY	NORTH SYRACUSE
+NY	NORTH TARRYTOWN
+NY	NORTH TONAWANDA
+NY	NORTHVILLE
+NY	NORTON HILL
+NY	NORWICH
+NY	NORWOOD
+NY	N SYRACUSE
+NY	N TARRYTOWN
+NY	N TONAWANDA
+NY	NUNDA
+NY	N WHITE PLAINS
+NY	N WHITE PLNS
+NY	NYACK
+NY	OAK BEACH
+NY	OAKDALE
+NY	OAKFIELD
+NY	OAK HILL
+NY	OAK ISLAND
+NY	OAKLAND GARDENS
+NY	OAKLAND GDNS
+NY	OAKS CORNERS
+NY	OBERNBURG
+NY	OCEAN BEACH
+NY	OCEANSIDE
+NY	ODESSA
+NY	OGDENSBURG
+NY	OHIO
+NY	OLCOTT
+NY	OLD BETHPAGE
+NY	OLD CHATHAM
+NY	OLD FORGE
+NY	OLD WESTBURY
+NY	OLEAN
+NY	OLIVEBRIDGE
+NY	OLIVEREA
+NY	OLMSTEDVILLE
+NY	ONCHIOTA
+NY	ONEIDA
+NY	ONEONTA
+NY	ONTARIO
+NY	ONTARIO CENTER
+NY	ONTARIO CTR
+NY	ORANGEBURG
+NY	ORCHARD PARK
+NY	ORIENT
+NY	ORISKANY
+NY	ORISKANY FALLS
+NY	ORISKANY FLS
+NY	ORWELL
+NY	OSSINING
+NY	OSWEGATCHIE
+NY	OSWEGO
+NY	OTEGO
+NY	OTISVILLE
+NY	OTTO
+NY	OUAQUAGA
+NY	OVID
+NY	OWASCO
+NY	OWEGO
+NY	OWLS HEAD
+NY	OXBOW
+NY	OXFORD
+NY	OYSTER BAY
+NY	OZONE PARK
+NY	PAINTED POST
+NY	PALATINE BRG
+NY	PALATINE BRIDGE
+NY	PALENVILLE
+NY	PALISADES
+NY	PALMYRA
+NY	PANAMA
+NY	PANORAMA
+NY	PARADOX
+NY	PARIS
+NY	PARISH
+NY	PARISHVILLE
+NY	PARKSVILLE
+NY	PATCHOGUE
+NY	PATTERSON
+NY	PATTERSONVILLE
+NY	PATTERSONVLE
+NY	PAUL SMITHS
+NY	PAVILION
+NY	PAWLING
+NY	PEARL RIVER
+NY	PECK SLIP
+NY	PECONIC
+NY	PEEKSKILL
+NY	PELHAM
+NY	PENFIELD
+NY	PENNELLVILLE
+NY	PENN YAN
+NY	PERKINSVILLE
+NY	PERRY
+NY	PERRYSBURG
+NY	PERRYVILLE
+NY	PERU
+NY	PETERBORO
+NY	PETERSBURG
+NY	PETERSBURGH
+NY	PHELPS
+NY	PHILADELPHIA
+NY	PHILLIPSPORT
+NY	PHILMONT
+NY	PHOENICIA
+NY	PHOENIX
+NY	PIERCEFIELD
+NY	PIERMONT
+NY	PIERREPNT MNR
+NY	PIERREPONT MANOR
+NY	PIFFARD
+NY	PIKE
+NY	PILOT KNOB
+NY	PINE BUSH
+NY	PINE CITY
+NY	PINE HILL
+NY	PINE ISLAND
+NY	PINE PLAINS
+NY	PINE VALLEY
+NY	PISECO
+NY	PITCHER
+NY	PITTSFORD
+NY	PLAINVIEW
+NY	PLAINVILLE
+NY	PLANDOME
+NY	PLATTEKILL
+NY	PLATTSBURGH
+NY	PLEASANT VALLEY
+NY	PLEASANTVILLE
+NY	PLEASANT VLY
+NY	PLESSIS
+NY	PLYMOUTH
+NY	POESTENKILL
+NY	POINT LOOKOUT
+NY	POINT O WOODS
+NY	POINT VIVIAN
+NY	POLAND
+NY	POMONA
+NY	POMPEY
+NY	POND EDDY
+NY	POOLVILLE
+NY	POPLAR RIDGE
+NY	PORTAGEVILLE
+NY	PORT BYRON
+NY	PORT CHESTER
+NY	PORT CRANE
+NY	PORTER CORNERS
+NY	PORTER CORS
+NY	PORT EWEN
+NY	PORT GIBSON
+NY	PORT HENRY
+NY	PORT JEFFERSON
+NY	PORT JEFFERSON STATION
+NY	PORT JEFF STA
+NY	PORT JERVIS
+NY	PORT KENT
+NY	PORTLAND
+NY	PORTLANDVILLE
+NY	PORT LEYDEN
+NY	PORTVILLE
+NY	PORT WASHINGTON
+NY	POTSDAM
+NY	POTTERSVILLE
+NY	POUGHKEEPSIE
+NY	POUGHQUAG
+NY	POUND RIDGE
+NY	PRATTSBURGH
+NY	PRATTS HOLLOW
+NY	PRATTSVILLE
+NY	PREBLE
+NY	PRESTON HOLLOW
+NY	PRESTON HOLW
+NY	PRINCE
+NY	PROSPECT
+NY	PRT JEFFERSON
+NY	PRT WASHINGTN
+NY	PULASKI
+NY	PULTENEY
+NY	PULTNEYVILLE
+NY	PURCHASE
+NY	PURDYS
+NY	PURLING
+NY	PUTNAM STA
+NY	PUTNAM STATION
+NY	PUTNAM VALLEY
+NY	PYRITES
+NY	QUAKER STREET
+NY	QUEENSBURY
+NY	QUEENS VILLAGE
+NY	QUEENS VLG
+NY	QUOGUE
+NY	RAINBOW LAKE
+NY	RANDOLPH
+NY	RANSOMVILLE
+NY	RAQUETTE LAKE
+NY	RAVENA
+NY	RAY BROOK
+NY	RAYMONDVILLE
+NY	READING CENTER
+NY	READING CTR
+NY	RED CREEK
+NY	REDFIELD
+NY	REDFORD
+NY	RED HOOK
+NY	REDWOOD
+NY	REGO PARK
+NY	REMSEN
+NY	REMSENBURG
+NY	RENSSELAER
+NY	RENSSELAER FALLS
+NY	RENSSELAERVILLE
+NY	RENSSELAERVLE
+NY	RENSSLAER FLS
+NY	RETSOF
+NY	REXFORD
+NY	REXVILLE
+NY	RHINEBECK
+NY	RHINECLIFF
+NY	RICHBURG
+NY	RICHFIELD SPRINGS
+NY	RICHFLD SPGS
+NY	RICHFORD
+NY	RICHLAND
+NY	RICHMOND HILL
+NY	RICHMONDVILLE
+NY	RICHVILLE
+NY	RIDGE
+NY	RIDGEMONT
+NY	RIDGEWOOD
+NY	RIFTON
+NY	RIPARIUS
+NY	RIPLEY
+NY	RIVERHEAD
+NY	ROCHDALE VILL
+NY	ROCHDALE VILLAGE
+NY	ROCHESTER
+NY	ROCKAWAY BEAC
+NY	ROCKAWAY BEACH
+NY	ROCKAWAY PARK
+NY	ROCKAWAY POINT
+NY	ROCKAWAY PT
+NY	ROCK CITY FALLS
+NY	ROCK CITY FLS
+NY	ROCK GLEN
+NY	ROCK HILL
+NY	ROCK STREAM
+NY	ROCK TAVERN
+NY	ROCKVILLE CENTRE
+NY	ROCKVILLE CTR
+NY	ROCKY POINT
+NY	RODMAN
+NY	ROESSLEVILLE
+NY	ROME
+NY	ROMULUS
+NY	RONKONKOMA
+NY	ROOSEVELT
+NY	ROOSEVELT ISL
+NY	ROOSEVELT ISLAND
+NY	ROOSEVELTOWN
+NY	ROSCOE
+NY	ROSE
+NY	ROSEBOOM
+NY	ROSEDALE
+NY	ROSENDALE
+NY	ROSLYN
+NY	ROSLYN HEIGHTS
+NY	ROSLYN HTS
+NY	ROSSBURG
+NY	ROTTERDAM
+NY	ROTTERDAM JCT
+NY	ROTTERDAM JUNCTION
+NY	ROUND LAKE
+NY	ROUND TOP
+NY	ROUSES POINT
+NY	ROXBURY
+NY	RUBY
+NY	RUSH
+NY	RUSHFORD
+NY	RUSHVILLE
+NY	RUSSELL
+NY	RYE
+NY	RYE BROOK
+NY	SABAEL
+NY	SACKETS HARBOR
+NY	SACKETS HBR
+NY	SAGAPONACK
+NY	SAG HARBOR
+NY	SAINT ALBANS
+NY	SAINT BONAVENTURE
+NY	SAINT HUBERTS
+NY	SAINT JAMES
+NY	SAINT JOHNSVILLE
+NY	SAINT REGIS FALLS
+NY	SAINT REMY
+NY	SALAMANCA
+NY	SALEM
+NY	SALISBURY CENTER
+NY	SALISBURY CTR
+NY	SALISBURY MILLS
+NY	SALISBURY MLS
+NY	SALTAIRE
+NY	SALT POINT
+NY	SANBORN
+NY	SAND LAKE
+NY	SANDS POINT
+NY	SANDUSKY
+NY	SANDY CREEK
+NY	SANGERFIELD
+NY	SANITARIA SPG
+NY	SANITARIA SPRINGS
+NY	SARANAC
+NY	SARANAC LAKE
+NY	SARATOGA SPGS
+NY	SARATOGA SPRINGS
+NY	SARDINIA
+NY	SAUGERTIES
+NY	SAUQUOIT
+NY	SAVANNAH
+NY	SAVONA
+NY	SAYVILLE
+NY	S BETHLEHEM
+NY	SCARBOROUGH
+NY	SCARSDALE
+NY	SCHAGHTICOKE
+NY	S CHEEK
+NY	SCHENECTADY
+NY	SCHENEVUS
+NY	SCHODACK LANDING
+NY	SCHODACK LNDG
+NY	SCHOHARIE
+NY	SCHROON LAKE
+NY	SCHUYLER
+NY	SCHUYLER FALLS
+NY	SCHUYLER FLS
+NY	SCHUYLER LAKE
+NY	SCHUYLERVILLE
+NY	SCIO
+NY	SCIPIO CENTER
+NY	SCOTCHTOWN
+NY	SCOTCHTOWN BRANCH
+NY	SCOTIA
+NY	SCOTTSBURG
+NY	SCOTTSVILLE
+NY	SEA CLIFF
+NY	SEAFORD
+NY	S EDMESTON
+NY	SELDEN
+NY	SELKIRK
+NY	SENECA CASTLE
+NY	SENECA FALLS
+NY	SETAUKET
+NY	SEVERANCE
+NY	S FALLSBURG
+NY	S FARMINGDALE
+NY	S FLORAL PARK
+NY	S GLENS FALLS
+NY	SHADY
+NY	SHANDAKEN
+NY	SHARON SPGS
+NY	SHARON SPRINGS
+NY	SHELTER IS
+NY	SHELTER IS HT
+NY	SHELTER ISLAND
+NY	SHELTER ISLAND HEIGHTS
+NY	S HEMPSTEAD
+NY	SHENOROCK
+NY	SHERBURNE
+NY	SHERIDAN
+NY	SHERMAN
+NY	SHERRILL
+NY	SHINHOPPLE
+NY	SHIRLEY
+NY	SHOKAN
+NY	SHOREHAM
+NY	SHORTSVILLE
+NY	SHRUB OAK
+NY	SHUSHAN
+NY	SIDNEY
+NY	SIDNEY CENTER
+NY	SIENA
+NY	SILVER BAY
+NY	SILVER CREEK
+NY	SILVER LAKE
+NY	SILVER SPGS
+NY	SILVER SPRINGS
+NY	SINCLAIRVILLE
+NY	S JAMESPORT
+NY	SKANEATELES
+NY	SKANEATELES FALLS
+NY	SKAN FALLS
+NY	S KORTRIGHT
+NY	SLATE HILL
+NY	SLATERVILLE SPRINGS
+NY	SLATERVLE SPG
+NY	SLEEPY HOLLOW
+NY	SLINGERLANDS
+NY	SLOAN
+NY	SLOANSVILLE
+NY	SLOATSBURG
+NY	SMALLWOOD
+NY	SMITHBORO
+NY	SMITH POINT
+NY	SMITHTOWN
+NY	SMITHVILLE
+NY	SMITHVILLE FLATS
+NY	SMITHVLE FLTS
+NY	SMYRNA
+NY	S NEW BERLIN
+NY	SNYDER
+NY	SODUS
+NY	SODUS CENTER
+NY	SODUS POINT
+NY	SOLSVILLE
+NY	SOLVAY
+NY	SOMERS
+NY	SONYEA
+NY	SO PLYMOUTH
+NY	SOUND BEACH
+NY	SOUTHAMPTON
+NY	SOUTH BETHLEHEM
+NY	SOUTH BUTLER
+NY	SOUTH BYRON
+NY	SOUTH CAIRO
+NY	SOUTH CHEEKTOWAGA
+NY	SOUTH COLTON
+NY	SOUTH DAYTON
+NY	SOUTH EDMESTON
+NY	SOUTH FALLSBURG
+NY	SOUTH FARMINGDALE
+NY	SOUTHFIELDS
+NY	SOUTH FLORAL PARK
+NY	SOUTH GLENS FALLS
+NY	SOUTH HEMPSTEAD
+NY	SOUTH JAMESPORT
+NY	SOUTH KORTRIGHT
+NY	SOUTH LIMA
+NY	SOUTH NEW BERLIN
+NY	SOUTHOLD
+NY	SOUTH OTSELIC
+NY	SOUTH OZONE PARK
+NY	SOUTH PLYMOUTH
+NY	SOUTH RICHMOND HILL
+NY	SOUTH RUTLAND
+NY	SOUTH SALEM
+NY	SOUTH SCHODACK
+NY	SOUTH SETAUKET
+NY	SOUTH WALES
+NY	SOUTH WESTERLO
+NY	S OZONE PARK
+NY	SPARKILL
+NY	SPARROWBUSH
+NY	SPARROW BUSH
+NY	SPECULATOR
+NY	SPENCER
+NY	SPENCERPORT
+NY	SPENCERTOWN
+NY	SPEONK
+NY	SPRAKERS
+NY	SPRING BROOK
+NY	SPRINGFIELD CENTER
+NY	SPRINGFIELD GARDENS
+NY	SPRINGFLD CTR
+NY	SPRING GLEN
+NY	SPRING VALLEY
+NY	SPRINGVILLE
+NY	SPRINGWATER
+NY	SPRNGFLD GDNS
+NY	S RICHMOND HL
+NY	S SCHODACK
+NY	S SETAUKET
+NY	STAATSBURG
+NY	STAFFORD
+NY	STAMFORD
+NY	STANFORDVILLE
+NY	STANLEY
+NY	STAR LAKE
+NY	STATEN ISLAND
+NY	ST BONAS
+NY	STEAMBURG
+NY	STELA NIAGARA
+NY	STELLA NIAGARA
+NY	STEPHENTOWN
+NY	STERLING
+NY	STERLING FOREST
+NY	STERLING FRST
+NY	STEWART MANOR
+NY	STILLWATER
+NY	STITTVILLE
+NY	ST JOHNSVILLE
+NY	STOCKTON
+NY	STONE RIDGE
+NY	STONY BROOK
+NY	STONY CREEK
+NY	STONY POINT
+NY	STORMVILLE
+NY	STOTTVILLE
+NY	STOW
+NY	STRATFORD
+NY	ST REGIS FLS
+NY	STRYKERSVILLE
+NY	STUYVESANT
+NY	STUYVESANT FALLS
+NY	STUYVESANT FL
+NY	STUYVESANT PLAZA
+NY	STUYVSNT PLZ
+NY	SUFFERN
+NY	SUGAR LOAF
+NY	SUMMIT
+NY	SUMMITVILLE
+NY	SUNDOWN
+NY	SUNNYSIDE
+NY	SURPRISE
+NY	SWAIN
+NY	SWAN LAKE
+NY	S WESTERLO
+NY	SWORMVILLE
+NY	SYLVAN BEACH
+NY	SYOSSET
+NY	SYRACUSE
+NY	TABERG
+NY	TACONIC LAKE
+NY	TAGHKANIC
+NY	TAHAWUS
+NY	TALLMAN
+NY	TANNERSVILLE
+NY	TAPPAN
+NY	TARRYTOWN
+NY	THENDARA
+NY	THERESA
+NY	THIELLS
+NY	THOMPSON RDG
+NY	THOMPSON RIDGE
+NY	THOMPSONVILLE
+NY	THOMSON
+NY	THORNWOOD
+NY	THOUSAND ISLAND PARK
+NY	THOUS IS PK
+NY	THREE MILE BAY
+NY	THREE MLE BAY
+NY	THURMAN
+NY	TICONDEROGA
+NY	TILLSON
+NY	TIOGA CENTER
+NY	TIVOLI
+NY	TN OF TONA
+NY	TOMKINS COVE
+NY	TONAWANDA
+NY	TOWN OF TONAWANDA
+NY	TREADWELL
+NY	TRIBES HILL
+NY	TRINITY
+NY	TROUPSBURG
+NY	TROUT CREEK
+NY	TROY
+NY	TRUMANSBURG
+NY	TRUXTON
+NY	TUCKAHOE
+NY	TULLY
+NY	TUNNEL
+NY	TUPPER LAKE
+NY	TURIN
+NY	TUSCARORA
+NY	TUXEDO PARK
+NY	TYRONE
+NY	ULSTER PARK
+NY	UNADILLA
+NY	UNIONDALE
+NY	UNION HILL
+NY	UNION SPRINGS
+NY	UNIONVILLE
+NY	UPPER JAY
+NY	UPPER SAINT REGIS
+NY	UPPER ST REG
+NY	UPTON
+NY	UTICA
+NY	VAILS GATE
+NY	VALATIE
+NY	VALHALLA
+NY	VALLEY COTTAGE
+NY	VALLEY FALLS
+NY	VALLEY STREAM
+NY	VALOIS
+NY	VAN BUREN BAY
+NY	VAN BUREN POINT
+NY	VAN BUREN PT
+NY	VAN ETTEN
+NY	VAN HORNESVILLE
+NY	VAN HORNESVLE
+NY	VARYSBURG
+NY	VENICE CENTER
+NY	VERBANK
+NY	VERMONTVILLE
+NY	VERNON
+NY	VERNON CENTER
+NY	VERONA
+NY	VERONA BEACH
+NY	VERPLANCK
+NY	VERSAILLES
+NY	VESTAL
+NY	VETERANS ADMINISTRATION
+NY	VETERANS ADMN
+NY	VICTOR
+NY	VICTORY MILLS
+NY	VLY COTTAGE
+NY	VOORHEESVILLE
+NY	WACCABUC
+NY	WADDINGTON
+NY	WADHAMS
+NY	WADING RIVER
+NY	WADSWORTH
+NY	WAINSCOTT
+NY	WALDEN
+NY	WALES CENTER
+NY	WALKER VALLEY
+NY	WALLACE
+NY	WALLKILL
+NY	WALL STREET
+NY	WALTON
+NY	WALWORTH
+NY	WAMPSVILLE
+NY	WANAKENA
+NY	WANTAGH
+NY	WAPPINGERS FALLS
+NY	WAPPINGERS FL
+NY	WARNERS
+NY	WARNERVILLE
+NY	WARRENSBURG
+NY	WARSAW
+NY	WARWICK
+NY	WASHINGTN MLS
+NY	WASHINGTON MILLS
+NY	WASHINGTONVILLE
+NY	WASHINGTONVLE
+NY	WASSAIC
+NY	WATERFORD
+NY	WATERLOO
+NY	WATER MILL
+NY	WATERPORT
+NY	WATERTOWN
+NY	WATERVILLE
+NY	WATERVLIET
+NY	WATKINS GLEN
+NY	WAVE CREST
+NY	WAVERLY
+NY	WAWARSING
+NY	WAYLAND
+NY	WAYNE
+NY	W BLOOMFIELD
+NY	W BRENTWOOD
+NY	W BURLINGTON
+NY	W CLARKSVILLE
+NY	W COXSACKIE
+NY	W DAVENPORT
+NY	WEBSTER
+NY	WEBSTER CROSSING
+NY	WEBSTER CRSNG
+NY	WEEDSPORT
+NY	WELLESLEY IS
+NY	WELLESLEY ISLAND
+NY	WELLS
+NY	WELLS BRIDGE
+NY	WELLSBURG
+NY	WELLSVILLE
+NY	WEST BABYLON
+NY	WEST BANGOR
+NY	WEST BLOOMFIELD
+NY	WEST BRENTWOOD
+NY	WESTBROOKVILLE
+NY	WESTBROOKVLLE
+NY	WEST BURLINGTON
+NY	WESTBURY
+NY	WEST CAMP
+NY	WEST CHARLTON
+NY	WEST CHAZY
+NY	WEST CLARKSVILLE
+NY	WEST COPAKE
+NY	WEST COXSACKIE
+NY	WESTDALE
+NY	WEST DANBY
+NY	WEST DAVENPORT
+NY	WEST EATON
+NY	WEST EDMESTON
+NY	WESTERLO
+NY	WESTERNVILLE
+NY	WEST EXETER
+NY	WEST FALLS
+NY	WESTFIELD
+NY	WESTFORD
+NY	WEST FULTON
+NY	WESTGATE
+NY	WEST GILGO BEACH
+NY	WESTHAMPTON
+NY	WESTHAMPTON BEACH
+NY	WEST HARRISON
+NY	WEST HAVERSTRAW
+NY	WEST HEMPSTEAD
+NY	WEST HENRIETTA
+NY	WEST HURLEY
+NY	WEST ISLIP
+NY	WEST KILL
+NY	WEST LEBANON
+NY	WEST LEYDEN
+NY	WEST MONROE
+NY	WESTMORELAND
+NY	WEST NYACK
+NY	WEST ONEONTA
+NY	WESTONS MILLS
+NY	WEST PARK
+NY	WEST POINT
+NY	WESTPORT
+NY	WEST RUSH
+NY	WEST SAND LAKE
+NY	WEST SAYVILLE
+NY	WEST SENECA
+NY	WEST SHOKAN
+NY	WEST STOCKHOLM
+NY	WESTTOWN
+NY	WEST VALLEY
+NY	WEST WINDSOR
+NY	WEST WINFIELD
+NY	WEVERTOWN
+NY	W GILGO BEACH
+NY	WHALLONSBURG
+NY	W HAMPTON BCH
+NY	W HARRISON
+NY	W HAVERSTRAW
+NY	WHEATLEY HEIGHTS
+NY	WHEATLEY HTS
+NY	W HEMPSTEAD
+NY	W HENRIETTA
+NY	WHIPPLEVILLE
+NY	WHITE CREEK
+NY	WHITEFACE MOUNTAIN
+NY	WHITEFACE MTN
+NY	WHITEHALL
+NY	WHITE LAKE
+NY	WHITE PLAINS
+NY	WHITESBORO
+NY	WHITESTONE
+NY	WHITE SULPHUR SPRINGS
+NY	WHITESVILLE
+NY	WHITNEY POINT
+NY	WHT SPHR SPGS
+NY	WICCOPEE
+NY	WILLARD
+NY	WILLET
+NY	WILLIAMSON
+NY	WILLIAMSTOWN
+NY	WILLIAMSVILLE
+NY	WILLISTON PARK
+NY	WILLISTON PK
+NY	WILLOW
+NY	WILLSBORO
+NY	WILLSEYVILLE
+NY	WILMINGTON
+NY	WILSON
+NY	WILTON
+NY	WINDHAM
+NY	WINDSOR
+NY	WINGDALE
+NY	WINTHROP
+NY	WITHERBEE
+NY	WOLCOTT
+NY	WOODBOURNE
+NY	WOODBURY
+NY	WOODGATE
+NY	WOODHAVEN
+NY	WOODHULL
+NY	WOODMERE
+NY	WOODRIDGE
+NY	WOODSIDE
+NY	WOODSTOCK
+NY	WOODVILLE
+NY	WORCESTER
+NY	W SAND LAKE
+NY	W STOCKHOLM
+NY	WURTSBORO
+NY	W WINDSOR
+NY	WYANDANCH
+NY	WYKAGYL
+NY	WYNANTSKILL
+NY	WYOMING
+NY	YAPHANK
+NY	YONKERS
+NY	YORK
+NY	YORKSHIRE
+NY	YORKTOWN HEIGHTS
+NY	YORKTOWN HTS
+NY	YORKVILLE
+NY	YOUNGSTOWN
+NY	YOUNGSVILLE
+NY	YULAN
+OH	ABERDEEN
+OH	ADA
+OH	ADAMS COUNTY
+OH	ADAMS MILLS
+OH	ADAMSVILLE
+OH	ADDYSTON
+OH	ADELPHI
+OH	ADENA
+OH	ADRIAN
+OH	AKRON
+OH	ALBANY
+OH	ALEXANDRIA
+OH	ALGER
+OH	ALLEDONIA
+OH	ALLENSVILLE
+OH	ALLIANCE
+OH	ALPHA
+OH	ALVADA
+OH	ALVORDTON
+OH	AMANDA
+OH	AMELIA
+OH	AMESVILLE
+OH	AMHERST
+OH	AMLIN
+OH	AMSDEN
+OH	AMSTERDAM
+OH	ANDERSON
+OH	ANDOVER
+OH	ANNA
+OH	ANSONIA
+OH	ANTIOCH
+OH	ANTWERP
+OH	APPLE CREEK
+OH	ARCADIA
+OH	ARCANUM
+OH	ARCHBOLD
+OH	ARLINGTON
+OH	ARLINGTON HEIGHTS
+OH	ARLINGTON HTS
+OH	ARMSTRONG MILLS
+OH	ARMSTRONG MLS
+OH	ASHLAND
+OH	ASHLEY
+OH	ASHTABULA
+OH	ASHVILLE
+OH	ATHENS
+OH	ATTICA
+OH	ATWATER
+OH	AUBURN TOWNSHIP
+OH	AUBURN TWP
+OH	AUGUSTA
+OH	AURORA
+OH	AUSTINBURG
+OH	AUSTINTOWN
+OH	AVA
+OH	AVON
+OH	AVONDALE
+OH	AVON LAKE
+OH	BAINBRIDGE
+OH	BAIRDSTOWN
+OH	BAKERSVILLE
+OH	BALTIC
+OH	BALTIMORE
+OH	BANNOCK
+OH	BARBERTON
+OH	BARLOW
+OH	BARNESVILLE
+OH	BARTLETT
+OH	BARTON
+OH	BASCOM
+OH	BATAVIA
+OH	BATH
+OH	BAY VILLAGE
+OH	BEACH CITY
+OH	BEACHWOOD
+OH	BEALLSVILLE
+OH	BEAVER
+OH	BEAVERCREEK
+OH	BEAVERDAM
+OH	BEDFORD
+OH	BEDFORD HEIGHTS
+OH	BEDFORD HTS
+OH	BELLAIRE
+OH	BELLBROOK
+OH	BELLE CENTER
+OH	BELLEFONTAINE
+OH	BELLE VALLEY
+OH	BELLEVUE
+OH	BELLVILLE
+OH	BELMONT
+OH	BELMORE
+OH	BELOIT
+OH	BELPRE
+OH	BENTLEYVILLE
+OH	BENTON RIDGE
+OH	BENTONVILLE
+OH	BEREA
+OH	BERGHOLZ
+OH	BERKEY
+OH	BERLIN
+OH	BERLIN CENTER
+OH	BERLIN HEIGHTS
+OH	BERLIN HTS
+OH	BETHEL
+OH	BETHESDA
+OH	BETTSVILLE
+OH	BEVERLY
+OH	BEXLEY
+OH	BIDWELL
+OH	BIG PRAIRIE
+OH	BIRMINGHAM
+OH	BLACKLICK
+OH	BLADENSBURG
+OH	BLAINE
+OH	BLAKESLEE
+OH	BLANCHESTER
+OH	BLISSFIELD
+OH	BLOOMDALE
+OH	BLOOMINGBURG
+OH	BLOOMINGDALE
+OH	BLOOMVILLE
+OH	BLUE ASH
+OH	BLUE CREEK
+OH	BLUE ROCK
+OH	BLUFFTON
+OH	BOARDMAN
+OH	BOLIVAR
+OH	BONO
+OH	BOTKINS
+OH	BOURNEVILLE
+OH	BOWERSTON
+OH	BOWERSVILLE
+OH	BOWLING GREEN
+OH	BRADFORD
+OH	BRADNER
+OH	BRADY LAKE
+OH	BRATENAHL
+OH	BRECKSVILLE
+OH	BREMEN
+OH	BREWSTER
+OH	BRICE
+OH	BRIDGEPORT
+OH	BRILLIANT
+OH	BRINKHAVEN
+OH	BRISTOLVILLE
+OH	BROADVIEW HEIGHTS
+OH	BROADVIEW HTS
+OH	BROADWAY
+OH	BROOKFIELD
+OH	BROOKLYN
+OH	BROOKLYN HEIGHTS
+OH	BROOKLYN HTS
+OH	BROOK PARK
+OH	BROOKVILLE
+OH	BROWN COUNTY
+OH	BROWNSVILLE
+OH	BRUNSWICK
+OH	BRYAN
+OH	BUCHTEL
+OH	BUCKEYE LAKE
+OH	BUCKLAND
+OH	BUCKS
+OH	BUCYRUS
+OH	BUFFALO
+OH	BUFORD
+OH	BURBANK
+OH	BURGHILL
+OH	BURGOON
+OH	BURKETTSVILLE
+OH	BURTON
+OH	BUTLER
+OH	BYESVILLE
+OH	CABLE
+OH	CADIZ
+OH	CAIRO
+OH	CALCUTTA
+OH	CALDWELL
+OH	CALEDONIA
+OH	CAMBRIDGE
+OH	CAMDEN
+OH	CAMERON
+OH	CAMPBELL
+OH	CAMP DENNISON
+OH	CANAL FULTON
+OH	CANAL WHCHSTR
+OH	CANAL WINCHESTER
+OH	CANAL WNCHSTR
+OH	CANFIELD
+OH	CANTON
+OH	CARBONDALE
+OH	CARBON HILL
+OH	CARDINGTON
+OH	CAREY
+OH	CARLISLE
+OH	CARROLL
+OH	CARROLLTON
+OH	CARROTHERS
+OH	CARTHAGENA
+OH	CASSTOWN
+OH	CASTALIA
+OH	CASTINE
+OH	CATAWBA
+OH	CECIL
+OH	CEDARVILLE
+OH	CELINA
+OH	CENTERBURG
+OH	CENTERVILLE
+OH	CHAGRIN FALLS
+OH	CHANDLERSVILLE
+OH	CHANDLERSVLLE
+OH	CHARDON
+OH	CHARM
+OH	CHATFIELD
+OH	CHAUNCEY
+OH	CHERRY FORK
+OH	CHESAPEAKE
+OH	CHESHIRE
+OH	CHESTER
+OH	CHESTERHILL
+OH	CHESTERLAND
+OH	CHESTERVILLE
+OH	CHICKASAW
+OH	CHILLICOTHE
+OH	CHILO
+OH	CHIPPEWA LAKE
+OH	CHRISTIANSBRG
+OH	CHRISTIANSBURG
+OH	CIN ARPRT ANX
+OH	CINCINNATI
+OH	CINCINNATI AIRPORT ANNEX
+OH	CINCY AMF
+OH	CIRCLEVILLE
+OH	CLARINGTON
+OH	CLARKSBURG
+OH	CLARKSVILLE
+OH	CLAY CENTER
+OH	CLAYSVILLE
+OH	CLAYTON
+OH	CLERMONT CNTY
+OH	CLERMONT COUNTY
+OH	CLEVELAND
+OH	CLEVELAND HEIGHTS
+OH	CLEVELAND HTS
+OH	CLEVES
+OH	CLIFTON
+OH	CLINTON
+OH	CLINTON CNTY
+OH	CLINTON COUNTY
+OH	CLOVERDALE
+OH	CLYDE
+OH	COAL GROVE
+OH	COAL RUN
+OH	COALTON
+OH	COLDWATER
+OH	COLERAIN
+OH	COLERAIN TOWNSHIP
+OH	COLERAIN TWP
+OH	COLG HILL STA
+OH	COLLEGE COR
+OH	COLLEGE CORNER
+OH	COLLEGE HL
+OH	COLLINS
+OH	COLLINSVILLE
+OH	COLTON
+OH	COLUMBIANA
+OH	COLUMBIA STA
+OH	COLUMBIA STATION
+OH	COLUMBUS
+OH	COLUMBUS GROVE
+OH	COLUMBUS GRV
+OH	COMMERCIAL POINT
+OH	COMMERCIAL PT
+OH	CONCORD TOWNSHIP
+OH	CONCORD TWP
+OH	CONESVILLE
+OH	CONGRESS
+OH	CONNEAUT
+OH	CONOVER
+OH	CONTINENTAL
+OH	CONVOY
+OH	COOLVILLE
+OH	COPLEY
+OH	CORNING
+OH	CORTLAND
+OH	COSHOCTON
+OH	COVINGTON
+OH	CREOLA
+OH	CRESTLINE
+OH	CRESTON
+OH	CRIDERSVILLE
+OH	CROOKSVILLE
+OH	CROTON
+OH	CROWN CITY
+OH	CUBA
+OH	CUMBERLAND
+OH	CURTICE
+OH	CUSTAR
+OH	CUTLER
+OH	CUYAHOGA FALLS
+OH	CUYAHOGA FLS
+OH	CUYAHOGA HEIGHTS
+OH	CUYAHOGA HTS
+OH	CYGNET
+OH	CYNTHIANA
+OH	DALTON
+OH	DAMASCUS
+OH	DANVILLE
+OH	DARBYDALE
+OH	DAY HEIGHTS
+OH	DAYTON
+OH	DECATUR
+OH	DEERFIELD
+OH	DEERSVILLE
+OH	DEFIANCE
+OH	DE GRAFF
+OH	DELAWARE
+OH	DELLROY
+OH	DELPHOS
+OH	DELTA
+OH	DENNISON
+OH	DERBY
+OH	DERWENT
+OH	DESHLER
+OH	DEXTER
+OH	DEXTER CITY
+OH	DIAMOND
+OH	DILLONVALE
+OH	DOLA
+OH	DONNELSVILLE
+OH	DORSET
+OH	DOVER
+OH	DOYLESTOWN
+OH	DRESDEN
+OH	DUBLIN
+OH	DUNBRIDGE
+OH	DUNCAN FALLS
+OH	DUNDEE
+OH	DUNKIRK
+OH	DUPONT
+OH	EAST CANTON
+OH	EAST CLARIDON
+OH	EAST CLEVELAND
+OH	EAST FULTONHAM
+OH	EASTLAKE
+OH	EAST LIBERTY
+OH	EAST LIVERPOOL
+OH	EAST ORWELL
+OH	EAST PALESTINE
+OH	EAST ROCHESTER
+OH	EAST SPARTA
+OH	EAST SPRINGFIELD
+OH	EATON
+OH	E CLEVELAND
+OH	EDGERTON
+OH	EDGEWATER
+OH	EDISON
+OH	EDON
+OH	E FULTONHAM
+OH	ELBA
+OH	ELDORADO
+OH	ELGIN
+OH	ELIDA
+OH	E LIVERPOOL
+OH	ELKTON
+OH	ELLISTON
+OH	ELLSWORTH
+OH	ELMORE
+OH	ELYRIA
+OH	EMPIRE
+OH	ENGLEWOOD
+OH	ENON
+OH	E PALESTINE
+OH	E ROCHESTER
+OH	E SPRINGFIELD
+OH	ETNA
+OH	EUCLID
+OH	EVANSPORT
+OH	FAIRBORN
+OH	FAIRFIELD
+OH	FAIRLAWN
+OH	FAIRPOINT
+OH	FAIRPORT HARBOR
+OH	FAIRPORT HBR
+OH	FAIRVIEW
+OH	FAIRVIEW PARK
+OH	FARMDALE
+OH	FARMER
+OH	FARMERSTOWN
+OH	FARMERSVILLE
+OH	FAYETTE
+OH	FAYETTE COUNTY
+OH	FAYETTEVILLE
+OH	FEESBURG
+OH	FELICITY
+OH	FINDLAY
+OH	FLAT ROCK
+OH	FLEMING
+OH	FLETCHER
+OH	FLORIDA
+OH	FLUSHING
+OH	FLY
+OH	FOREST
+OH	FORT JENNINGS
+OH	FORT LORAMIE
+OH	FORT RECOVERY
+OH	FORT SENECA
+OH	FOSTORIA
+OH	FOWLER
+OH	FRANKFORT
+OH	FRANKLIN
+OH	FRANKLIN FURNACE
+OH	FRANKLN FRNCE
+OH	FRAZEYSBURG
+OH	FREDERICKSBRG
+OH	FREDERICKSBURG
+OH	FREDERICKTOWN
+OH	FREEPORT
+OH	FREMONT
+OH	FRESNO
+OH	FRIENDSHIP
+OH	FULTON
+OH	FULTONHAM
+OH	GAHANNA
+OH	GALENA
+OH	GALION
+OH	GALLIPOLIS
+OH	GALLOWAY
+OH	GAMBIER
+OH	GARFIELD HEIGHTS
+OH	GARFIELD HTS
+OH	GARRETTSVILLE
+OH	GATES MILLS
+OH	GENEVA
+OH	GENOA
+OH	GEORGETOWN
+OH	GERMANTOWN
+OH	GETTYSBURG
+OH	GIBSONBURG
+OH	GILBOA
+OH	GIRARD
+OH	GLANDORF
+OH	GLENCOE
+OH	GLENDALE
+OH	GLENFORD
+OH	GLENMONT
+OH	GLOUSTER
+OH	GNADENHUTTEN
+OH	GOMER
+OH	GORDON
+OH	GOSHEN
+OH	GRAFTON
+OH	GRAND RAPIDS
+OH	GRAND RIVER
+OH	GRANDVIEW
+OH	GRANDVIEW HEIGHTS
+OH	GRANVILLE
+OH	GRATIOT
+OH	GRATIS
+OH	GRAYSVILLE
+OH	GRAYTOWN
+OH	GREEN
+OH	GREEN CAMP
+OH	GREENFIELD
+OH	GREENFORD
+OH	GREEN SPRINGS
+OH	GREENTOWN
+OH	GREENVILLE
+OH	GREENWICH
+OH	GRELTON
+OH	GROESBECK
+OH	GROVE CITY
+OH	GROVEPORT
+OH	GROVER HILL
+OH	GUERNSEY
+OH	GUYSVILLE
+OH	GYPSUM
+OH	HALLSVILLE
+OH	HAMDEN
+OH	HAMERSVILLE
+OH	HAMILTON
+OH	HAMILTON TOWNSHIP
+OH	HAMILTON TWP
+OH	HAMLER
+OH	HAMMONDSVILLE
+OH	HANGING ROCK
+OH	HANNIBAL
+OH	HANOVERTON
+OH	HARBOR VIEW
+OH	HARLEM SPGS
+OH	HARLEM SPRINGS
+OH	HARPSTER
+OH	HARRISBURG
+OH	HARRISON
+OH	HARRISVILLE
+OH	HARROD
+OH	HARTFORD
+OH	HARTVILLE
+OH	HARVEYSBURG
+OH	HASKINS
+OH	HAVERHILL
+OH	HAVILAND
+OH	HAYDENVILLE
+OH	HAYESVILLE
+OH	HEATH
+OH	HEBRON
+OH	HELENA
+OH	HEMLOCK
+OH	HGLND COUNTY
+OH	HICKSVILLE
+OH	HIDEAWAY HLS
+OH	HIGGINSPORT
+OH	HIGHLAND
+OH	HIGHLAND COUNTY
+OH	HIGHLAND HEIGHTS
+OH	HIGHLAND HGTS
+OH	HIGHLAND HILLS
+OH	HIGHLAND HLS
+OH	HIGHLAND HTS
+OH	HILLIARD
+OH	HILLSBORO
+OH	HINCKLEY
+OH	HIRAM
+OH	HOCKINGPORT
+OH	HOLGATE
+OH	HOLIDAY CITY
+OH	HOLLAND
+OH	HOLLANSBURG
+OH	HOLLOWAY
+OH	HOLMESVILLE
+OH	HOMER
+OH	HOMERVILLE
+OH	HOMEWORTH
+OH	HOOVEN
+OH	HOPEDALE
+OH	HOPEWELL
+OH	HOUSTON
+OH	HOWARD
+OH	HOYTVILLE
+OH	HUBBARD
+OH	HUBER HEIGHTS
+OH	HUDSON
+OH	HUNTSBURG
+OH	HUNTSVILLE
+OH	HURON
+OH	IBERIA
+OH	IDAHO
+OH	INDEPENDENCE
+OH	INDIAN SPGS
+OH	INDIAN SPRINGS
+OH	IRONDALE
+OH	IRONTON
+OH	IRWIN
+OH	ISLE SAINT GEORGE
+OH	IS ST GEORGE
+OH	ITHACA
+OH	JACKSN BELDEN
+OH	JACKSON
+OH	JACKSON BELDEN
+OH	JACKSON CENTER
+OH	JACKSON CTR
+OH	JACKSONTOWN
+OH	JACKSONVILLE
+OH	JACOBSBURG
+OH	JAMESTOWN
+OH	JASPER
+OH	JEFFERSON
+OH	JEFFERSONVILLE
+OH	JEFFERSONVLLE
+OH	JENERA
+OH	JEROMESVILLE
+OH	JERRY CITY
+OH	JERUSALEM
+OH	JEWELL
+OH	JEWETT
+OH	JOHNSTOWN
+OH	JUNCTION CITY
+OH	KALIDA
+OH	KANSAS
+OH	KEENE
+OH	KELLEYS IS
+OH	KELLEYS ISLAND
+OH	KENSINGTON
+OH	KENT
+OH	KENTON
+OH	KERR
+OH	KETTERING
+OH	KETTLERSVILLE
+OH	KIDRON
+OH	KILBOURNE
+OH	KILLBUCK
+OH	KIMBOLTON
+OH	KINGS ISLAND
+OH	KINGS MILLS
+OH	KINGSTON
+OH	KINGSVILLE
+OH	KINSMAN
+OH	KIPLING
+OH	KIPTON
+OH	KIRBY
+OH	KIRKERSVILLE
+OH	KIRTLAND
+OH	KITTS HILL
+OH	KUNKLE
+OH	LACARNE
+OH	LAFAYETTE
+OH	LAFFERTY
+OH	LAGRANGE
+OH	LAINGS
+OH	LAKELINE
+OH	LAKE MILTON
+OH	LAKEMORE
+OH	LAKESIDE
+OH	LAKESIDE MARBLEHEAD
+OH	LAKEVIEW
+OH	LAKEVILLE
+OH	LAKEWOOD
+OH	LANCASTER
+OH	LANGSVILLE
+OH	LANSING
+OH	LA RUE
+OH	LATHAM
+OH	LATTY
+OH	LAURA
+OH	LAURELVILLE
+OH	LEAVITTSBURG
+OH	LEBANON
+OH	LEESBURG
+OH	LEES CREEK
+OH	LEESVILLE
+OH	LEETONIA
+OH	LEIPSIC
+OH	LEMOYNE
+OH	LEWISBURG
+OH	LEWIS CENTER
+OH	LEWISTOWN
+OH	LEWISVILLE
+OH	LEXINGTON
+OH	LIBERTY CENTER
+OH	LIBERTY CTR
+OH	LIBERTY TNSP
+OH	LIBERTY TOWNSHIP
+OH	LIBERTY TOWNSHP
+OH	LIBERTY TWNSHIP
+OH	LIBERTY TWP
+OH	LIMA
+OH	LIMAVILLE
+OH	LINDENWALD
+OH	LINDSEY
+OH	LISBON
+OH	LITCHFIELD
+OH	LITHOPOLIS
+OH	LITTLE HOCKING
+OH	LITTLE HOCKNG
+OH	LKSID MARBLHD
+OH	LOCKBOURNE
+OH	LOCKLAND
+OH	LODI
+OH	LOGAN
+OH	LONDON
+OH	LONDONDERRY
+OH	LONG BOTTOM
+OH	LORAIN
+OH	LORE CITY
+OH	LOUDONVILLE
+OH	LOUISVILLE
+OH	LOVELAND
+OH	LOWELL
+OH	LOWELLVILLE
+OH	LOWER SALEM
+OH	LUCAS
+OH	LUCASVILLE
+OH	LUCKEY
+OH	LUDLOW FALLS
+OH	LYNCHBURG
+OH	LYNDHURST
+OH	LYNX
+OH	LYONS
+OH	MACEDONIA
+OH	MACKSBURG
+OH	MADEIRA
+OH	MADISON
+OH	MAGNETIC SPGS
+OH	MAGNETIC SPRINGS
+OH	MAGNOLIA
+OH	MAINEVILLE
+OH	MALAGA
+OH	MALINTA
+OH	MALTA
+OH	MALVERN
+OH	MANCHESTER
+OH	MANSFIELD
+OH	MANTUA
+OH	MAPLE HEIGHTS
+OH	MAPLEWOOD
+OH	MARATHON
+OH	MARBLE CLIFF
+OH	MARBLEHEAD
+OH	MARENGO
+OH	MARIA STEIN
+OH	MARIETTA
+OH	MARION
+OH	MARK CENTER
+OH	MARSHALLVILLE
+OH	MARTEL
+OH	MARTIN
+OH	MARTINSBURG
+OH	MARTINS FERRY
+OH	MARTINSVILLE
+OH	MARYSVILLE
+OH	MASON
+OH	MASSILLON
+OH	MASURY
+OH	MATAMORAS
+OH	MAUMEE
+OH	MAXIMO
+OH	MAYFIELD
+OH	MAYFIELD HEIGHTS
+OH	MAYFIELD HTS
+OH	MAYFIELD VILLAGE
+OH	MAYFIELD VLG
+OH	MAYNARD
+OH	MC ARTHUR
+OH	MC CLURE
+OH	MC COMB
+OH	MCCONNELSVILLE
+OH	MCCONNELSVLE
+OH	MC CUTCHENVILLE
+OH	MC CUTCHENVLE
+OH	MC DERMOTT
+OH	MC DONALD
+OH	MC GUFFEY
+OH	MECHANIC
+OH	MECHANICSBURG
+OH	MECHANICSTOWN
+OH	MEDINA
+OH	MEDWAY
+OH	MELMORE
+OH	MELROSE
+OH	MENDON
+OH	MENTOR
+OH	MENTOR ON THE
+OH	MENTOR ON THE LAKE
+OH	MESOPOTAMIA
+OH	METAMORA
+OH	MIAMISBURG
+OH	MIAMITOWN
+OH	MIAMI UNIV
+OH	MIAMI UNIVERSITY
+OH	MIAMIVILLE
+OH	MIDDLE BASS
+OH	MIDDLEBRANCH
+OH	MIDDLEBRG HTS
+OH	MIDDLEBURG
+OH	MIDDLEBURG HEIGHTS
+OH	MIDDLEFIELD
+OH	MIDDLE POINT
+OH	MIDDLEPORT
+OH	MIDDLETOWN
+OH	MIDLAND
+OH	MIDVALE
+OH	MILAN
+OH	MILFORD
+OH	MILFORD CENTER
+OH	MILFORD CTR
+OH	MILLBURY
+OH	MILLEDGEVILLE
+OH	MILLER CITY
+OH	MILLERSBURG
+OH	MILLERSPORT
+OH	MILLERSVILLE
+OH	MILLFIELD
+OH	MILTON CENTER
+OH	MINERAL CITY
+OH	MINERAL RIDGE
+OH	MINERVA
+OH	MINFORD
+OH	MINGO
+OH	MINGO JCT
+OH	MINGO JUNCTION
+OH	MINSTER
+OH	MOGADORE
+OH	MONCLOVA
+OH	MONROE
+OH	MONROEVILLE
+OH	MONTEZUMA
+OH	MONTGOMERY
+OH	MONTPELIER
+OH	MONTVILLE
+OH	MOOREFIELD
+OH	MORAINE
+OH	MORELAND HILLS
+OH	MORELAND HLS
+OH	MORRAL
+OH	MORRISTOWN
+OH	MORROW
+OH	MOSCOW
+OH	MOUNT BLANCHARD
+OH	MOUNT CORY
+OH	MOUNT EATON
+OH	MOUNT GILEAD
+OH	MOUNT HEALTHY
+OH	MOUNT HOPE
+OH	MOUNT LIBERTY
+OH	MOUNT ORAB
+OH	MOUNT PERRY
+OH	MOUNT PLEASANT
+OH	MOUNT SAINT JOSEPH
+OH	MOUNT STERLING
+OH	MOUNT VERNON
+OH	MOUNT VICTORY
+OH	MOUNT WASHING
+OH	MOUNT WASHINGTON
+OH	MOWRYSTOWN
+OH	MOXAHALA
+OH	MT BLANCHARD
+OH	MT PLEASANT
+OH	MT STERLING
+OH	MT ST JOSEPH
+OH	MUNROE FALLS
+OH	MURRAY CITY
+OH	NANKIN
+OH	NAPOLEON
+OH	NASHPORT
+OH	NASHVILLE
+OH	NAVARRE
+OH	N BALTIMORE
+OH	N BLOOMFIELD
+OH	N CANTON
+OH	N COLLEGE HL
+OH	NEAPOLIS
+OH	NEFFS
+OH	NEGLEY
+OH	NELSONVILLE
+OH	NEVADA
+OH	NEVILLE
+OH	NEW ALBANY
+OH	NEWARK
+OH	NEW ATHENS
+OH	NEW BAVARIA
+OH	NEW BEDFORD
+OH	NEW BLOOMINGTON
+OH	NEW BLOOMNGTN
+OH	NEW BOSTON
+OH	NEW BREMEN
+OH	NEWBURGH HEIGHTS
+OH	NEWBURGH HTS
+OH	NEWBURY
+OH	NEW CARLISLE
+OH	NEWCOMERSTOWN
+OH	NEW CONCORD
+OH	NEW HAMPSHIRE
+OH	NEW HAVEN
+OH	NEW HOLLAND
+OH	NEW KNOXVILLE
+OH	NEW LEBANON
+OH	NEW LEXINGTON
+OH	NEW LONDON
+OH	NEW LYME
+OH	NEW MADISON
+OH	NEW MARSHFIELD
+OH	NEW MARSHFLD
+OH	NEW MATAMORAS
+OH	NEW MIDDLETOWN
+OH	NEW MIDDLETWN
+OH	NEW PARIS
+OH	NEW PHILA
+OH	NEW PHILADELPHIA
+OH	NEW PLYMOUTH
+OH	NEWPORT
+OH	NEW RICHMOND
+OH	NEW RIEGEL
+OH	NEW ROME
+OH	NEW RUMLEY
+OH	NEW SPRINGFIELD
+OH	NEW SPRINGFLD
+OH	NEW STRAITSVILLE
+OH	NEW STRAITSVL
+OH	NEWTON FALLS
+OH	NEWTONSVILLE
+OH	NEWTOWN
+OH	NEW VIENNA
+OH	NEW WASHINGTN
+OH	NEW WASHINGTON
+OH	NEW WATERFORD
+OH	NEW WESTON
+OH	NEY
+OH	N FAIRFIELD
+OH	N GEORGETOWN
+OH	NILES
+OH	N INDUSTRY
+OH	N KINGSVILLE
+OH	N LAWRENCE
+OH	N LEWISBURG
+OH	NORTH BALTIMORE
+OH	NORTH BEND
+OH	NORTH BENTON
+OH	NORTH BLOOMFIELD
+OH	NORTH CANTON
+OH	NORTH FAIRFIELD
+OH	NORTHFIELD
+OH	NORTH GEORGETOWN
+OH	NORTH HAMPTON
+OH	NORTH INDUSTRY
+OH	NORTH JACKSON
+OH	NORTH KINGSVILLE
+OH	NORTH LAWRENCE
+OH	NORTH LEWISBURG
+OH	NORTH LIMA
+OH	NORTH OLMSTED
+OH	NORTH RANDALL
+OH	NORTH RIDGEVILLE
+OH	NORTH ROBINSON
+OH	NORTH ROYALTON
+OH	NORTH STAR
+OH	NORTHWOOD
+OH	NORTON
+OH	NORWALK
+OH	NORWICH
+OH	NORWOOD
+OH	NOVA
+OH	NOVELTY
+OH	N RIDGEVILLE
+OH	N ROBINSON
+OH	N ROYALTON
+OH	OAK HARBOR
+OH	OAK HILL
+OH	OAKWOOD
+OH	OAKWOOD VILLAGE
+OH	OAKWOOD VLG
+OH	OBERLIN
+OH	OBETZ
+OH	OCEOLA
+OH	OHIO CITY
+OH	OKEANA
+OH	OKOLONA
+OH	OLD FORT
+OH	OLD WASHINGTN
+OH	OLD WASHINGTON
+OH	OLMSTED FALLS
+OH	ONTARIO
+OH	ORANGEVILLE
+OH	OREGON
+OH	OREGONIA
+OH	ORIENT
+OH	ORRVILLE
+OH	ORWELL
+OH	OSGOOD
+OH	OSTRANDER
+OH	OTTAWA
+OH	OTTAWA HILLS
+OH	OTTOVILLE
+OH	OTWAY
+OH	OVERPECK
+OH	OWENSVILLE
+OH	OXFORD
+OH	PAINESVILLE
+OH	PALESTINE
+OH	PANDORA
+OH	PARIS
+OH	PARKDALE
+OH	PARKMAN
+OH	PARMA
+OH	PARMA HEIGHTS
+OH	PATASKALA
+OH	PATRIOT
+OH	PAULDING
+OH	PAYNE
+OH	PEDRO
+OH	PEEBLES
+OH	PEMBERTON
+OH	PEMBERVILLE
+OH	PENINSULA
+OH	PENNSVILLE
+OH	PEPPER PIKE
+OH	PERRY
+OH	PERRYSBURG
+OH	PERRYSVILLE
+OH	PETERSBURG
+OH	PETTISVILLE
+OH	PHILLIPSBURG
+OH	PHILO
+OH	PHONETON
+OH	PICKERINGTON
+OH	PIEDMONT
+OH	PIERPONT
+OH	PIKETON
+OH	PINEY FORK
+OH	PIONEER
+OH	PIQUA
+OH	PITSBURG
+OH	PLAIN CITY
+OH	PLAINFIELD
+OH	PLEASANT CITY
+OH	PLEASANT HILL
+OH	PLEASANT PLAIN
+OH	PLEASANT PLN
+OH	PLEASANTVILLE
+OH	PLYMOUTH
+OH	POETOWN
+OH	POLAND
+OH	POLK
+OH	POMEROY
+OH	PORTAGE
+OH	PORT CLINTON
+OH	PORT JEFFERSON
+OH	PORTLAND
+OH	PORTSMOUTH
+OH	PORT WASHINGTON
+OH	PORT WILLIAM
+OH	POTSDAM
+OH	POWELL
+OH	POWHATAN POINT
+OH	POWHATAN PT
+OH	PROCTORVILLE
+OH	PROSPECT
+OH	PRT JEFFERSON
+OH	PRT WASHINGTN
+OH	PUT IN BAY
+OH	QUAKER CITY
+OH	QUEEN CITY
+OH	QUINCY
+OH	RACINE
+OH	RADCLIFF
+OH	RADNOR
+OH	RANDOLPH
+OH	RARDEN
+OH	RAVENNA
+OH	RAWSON
+OH	RAY
+OH	RAYLAND
+OH	RAYMOND
+OH	RDGVILLE CORS
+OH	READING
+OH	REEDSVILLE
+OH	REESVILLE
+OH	REMINDERVILLE
+OH	RENO
+OH	REPUBLIC
+OH	REYNOLDSBURG
+OH	RICHFIELD
+OH	RICHMOND
+OH	RICHMOND DALE
+OH	RICHMOND HEIGHTS
+OH	RICHMOND HTS
+OH	RICHWOOD
+OH	RIDGEVILLE CORNERS
+OH	RIDGEWAY
+OH	RINARD MILLS
+OH	RIO GRANDE
+OH	RIPLEY
+OH	RISINGSUN
+OH	RITTMAN
+OH	ROAMING SHORES
+OH	ROAMING SHRS
+OH	ROBERTSVILLE
+OH	ROCHESTER
+OH	ROCKBRIDGE
+OH	ROCK CAMP
+OH	ROCK CREEK
+OH	ROCKFORD
+OH	ROCKY RIDGE
+OH	ROCKY RIVER
+OH	ROGERS
+OH	ROME
+OH	ROOTSTOWN
+OH	ROSELAWN
+OH	ROSEVILLE
+OH	ROSEWOOD
+OH	ROSS
+OH	ROSSBURG
+OH	ROSS COUNTY
+OH	ROSSFORD
+OH	ROSSVILLE
+OH	ROUNDHEAD
+OH	RUDOLPH
+OH	RUSHSYLVANIA
+OH	RUSHVILLE
+OH	RUSSELL
+OH	RUSSELLS POINT
+OH	RUSSELLS PT
+OH	RUSSELLVILLE
+OH	RUSSIA
+OH	RUTLAND
+OH	SABINA
+OH	SAGAMORE HILLS
+OH	SAGAMORE HLS
+OH	SAINT BERNARD
+OH	SAINT CLAIRSVILLE
+OH	SAINT HENRY
+OH	SAINT JOHNS
+OH	SAINT LOUISVILLE
+OH	SAINT LOUISVL
+OH	SAINT MARYS
+OH	SAINT PARIS
+OH	SALEM
+OH	SALESVILLE
+OH	SALINEVILLE
+OH	SANDUSKY
+OH	SANDYVILLE
+OH	SARAHSVILLE
+OH	SARDINIA
+OH	SARDIS
+OH	SAVANNAH
+OH	SAYLER PARK
+OH	S BLOOMFIELD
+OH	S BLOOMINGVIL
+OH	S BLOOMINGVILLE
+OH	S CHARLESTON
+OH	SCIO
+OH	SCIOTO FURNACE
+OH	SCIOTO FURNCE
+OH	SCIOTOVILLE
+OH	SCOTT
+OH	SCOTTOWN
+OH	SEAMAN
+OH	SEBRING
+OH	SEDALIA
+OH	SELMA
+OH	SENECAVILLE
+OH	SEVEN HILLS
+OH	SEVEN MILE
+OH	SEVILLE
+OH	SHADE
+OH	SHADYSIDE
+OH	SHAKER HEIGHTS
+OH	SHAKER HTS
+OH	SHANDON
+OH	SHARON CENTER
+OH	SHARONVILLE
+OH	SHARPSBURG
+OH	SHAUCK
+OH	SHAWNEE
+OH	SHAWNEE HILLS
+OH	SHEFFIELD LAKE
+OH	SHEFFIELD LK
+OH	SHEFFIELD VILLAGE
+OH	SHEFFIELD VLG
+OH	SHELBY
+OH	SHERRODSVILLE
+OH	SHERWOOD
+OH	SHILOH
+OH	SHINROCK
+OH	SHREVE
+OH	SIDNEY
+OH	SILVER LAKE
+OH	SINKING SPG
+OH	SINKING SPRING
+OH	SMITHFIELD
+OH	SMITHVILLE
+OH	SOLON
+OH	SOMERDALE
+OH	SOMERSET
+OH	SOMERTON
+OH	SOMERVILLE
+OH	SONORA
+OH	SOUTH AMHERST
+OH	SOUTH BLOOMFIELD
+OH	SOUTH BLOOMINGVILLE
+OH	SOUTH CHARLESTON
+OH	SOUTH EUCLID
+OH	SOUTHINGTON
+OH	SOUTH LEBANON
+OH	SOUTH POINT
+OH	SOUTH SALEM
+OH	SOUTH SOLON
+OH	SOUTH VIENNA
+OH	SOUTH WEBSTER
+OH	SPARTA
+OH	SPENCER
+OH	SPENCERVILLE
+OH	SPRINGBORO
+OH	SPRINGDALE
+OH	SPRINGFIELD
+OH	SPRING VALLEY
+OH	STAFFORD
+OH	ST CLAIRSVLE
+OH	STERLING
+OH	STEUBENVILLE
+OH	STEWART
+OH	STEWARTSVILLE
+OH	STILLWATER
+OH	ST LOUISVILLE
+OH	STOCKDALE
+OH	STOCKPORT
+OH	STONE CREEK
+OH	STONY RIDGE
+OH	STOUT
+OH	STOUTSVILLE
+OH	STOW
+OH	STRASBURG
+OH	STRATTON
+OH	STREETSBORO
+OH	STRONGSVILLE
+OH	STRUTHERS
+OH	STRYKER
+OH	SUGARCREEK
+OH	SUGAR GROVE
+OH	SULLIVAN
+OH	SULPHUR SPGS
+OH	SULPHUR SPRINGS
+OH	SUMMERFIELD
+OH	SUMMERFORD
+OH	SUMMIT STA
+OH	SUMMIT STATION
+OH	SUMMITVILLE
+OH	SUNBURY
+OH	SWANTON
+OH	SYCAMORE
+OH	SYCAMORE VALLEY
+OH	SYCAMORE VLY
+OH	SYLVANIA
+OH	SYLVANIA TOWNSHIP
+OH	SYLVANIA TWP
+OH	SYMMES
+OH	SYRACUSE
+OH	S ZANESVILLE
+OH	TAFT
+OH	TALLMADGE
+OH	TARLTON
+OH	TERRACE PARK
+OH	THE PLAINS
+OH	THOMPSON
+OH	THORNVILLE
+OH	THURMAN
+OH	THURSTON
+OH	TIFFIN
+OH	TILTONSVILLE
+OH	TIMBERLAKE
+OH	TIPP CITY
+OH	TIPPECANOE
+OH	TIRO
+OH	TOLEDO
+OH	TONTOGANY
+OH	TORCH
+OH	TORONTO
+OH	TREMONT CITY
+OH	TRENTON
+OH	TRIMBLE
+OH	TRINWAY
+OH	TROTWOOD
+OH	TROY
+OH	TUPPERS PLAINS
+OH	TUPPERS PLNS
+OH	TUSCARAWAS
+OH	TWINSBURG
+OH	UHRICHSVILLE
+OH	UNION
+OH	UNION CITY
+OH	UNION FURNACE
+OH	UNIONPORT
+OH	UNIONTOWN
+OH	UNIONVILLE
+OH	UNIONVILLE CENTER
+OH	UNIONVLLE CTR
+OH	UNIOPOLIS
+OH	UNIV DAYTON
+OH	UNIVERSITY HEIGHTS
+OH	UNIVERSITY HT
+OH	UNIVERSITY HTS
+OH	UNIVERSITY OF DAYTON
+OH	UPPER ARLINGTON
+OH	UPPER ARLNGTN
+OH	UPPER SANDSKY
+OH	UPPER SANDUSKY
+OH	URBANA
+OH	URBANCREST
+OH	UTICA
+OH	VALLEY CITY
+OH	VALLEY VIEW
+OH	VAN BUREN
+OH	VANDALIA
+OH	VANLUE
+OH	VAN WERT
+OH	VAUGHNSVILLE
+OH	VENEDOCIA
+OH	VERMILION
+OH	VERONA
+OH	VERSAILLES
+OH	VICKERY
+OH	VIENNA
+OH	VINCENT
+OH	VINTON
+OH	WADSWORTH
+OH	WAITE HILL
+OH	WAKEFIELD
+OH	WAKEMAN
+OH	WALBRIDGE
+OH	WALDO
+OH	W ALEXANDRIA
+OH	WALHONDING
+OH	WALNUT CREEK
+OH	WALNUT HILLS
+OH	WALTON HILLS
+OH	WAPAKONETA
+OH	WARNER
+OH	WARNOCK
+OH	WARREN
+OH	WARRENSVILLE HEIGHTS
+OH	WARRENSVL HTS
+OH	WARSAW
+OH	WASHINGTON COURT HOUSE
+OH	WASHINGTON TOWNSHIP
+OH	WASHINGTONVILLE
+OH	WASHINGTONVLE
+OH	WASHINGTO TWP
+OH	WATERFORD
+OH	WATERLOO
+OH	WATERTOWN
+OH	WATERVILLE
+OH	WAUSEON
+OH	WAVERLY
+OH	WAYLAND
+OH	WAYNE
+OH	WAYNESBURG
+OH	WAYNESFIELD
+OH	WAYNESVILLE
+OH	W CARROLLTON
+OH	WELLINGTON
+OH	WELLSTON
+OH	WELLSVILLE
+OH	WEST ALEXANDRIA
+OH	WEST CARROLLTON
+OH	WEST CHESTER
+OH	WEST ELKTON
+OH	WESTERVILLE
+OH	WEST FARMINGTON
+OH	WESTFIELD CENTER
+OH	WESTFIELD CTR
+OH	WEST JEFFERSON
+OH	WEST LAFAYETTE
+OH	WESTLAKE
+OH	WEST LIBERTY
+OH	WEST MANCHESTER
+OH	WEST MANSFIELD
+OH	WEST MILLGROVE
+OH	WEST MILTON
+OH	WESTON
+OH	WEST POINT
+OH	WEST PORTSMOUTH
+OH	WEST RUSHVILLE
+OH	WEST SALEM
+OH	WEST UNION
+OH	WEST UNITY
+OH	WESTVILLE
+OH	WESTWOOD
+OH	W FARMINGTON
+OH	WHARTON
+OH	WHEELERSBURG
+OH	WHIPPLE
+OH	WHITE COTTAGE
+OH	WHITEHALL
+OH	WHITEHOUSE
+OH	WICKLIFFE
+OH	WILBERFORCE
+OH	WILKESVILLE
+OH	WILLARD
+OH	WILLIAMSBURG
+OH	WILLIAMSFIELD
+OH	WILLIAMSPORT
+OH	WILLIAMSTOWN
+OH	WILLISTON
+OH	WILLOUGHBY
+OH	WILLOWICK
+OH	WILLOW WOOD
+OH	WILLSHIRE
+OH	WILMINGTON
+OH	WILMOT
+OH	WINCHESTER
+OH	WINDHAM
+OH	WINDSOR
+OH	WINESBURG
+OH	WINGETT RUN
+OH	WINONA
+OH	WINTERSVILLE
+OH	W JEFFERSON
+OH	W LAFAYETTE
+OH	W MANCHESTER
+OH	W MANSFIELD
+OH	W MILLGROVE
+OH	WOLF RUN
+OH	WOODMERE
+OH	WOODSFIELD
+OH	WOODSTOCK
+OH	WOODVILLE
+OH	WOOSTER
+OH	WORTHINGTON
+OH	WPAFB
+OH	WP AIR BASE
+OH	W PORTSMOUTH
+OH	WREN
+OH	WRIGHT PAT
+OH	WRIGHT PATTER
+OH	WRIGHT PATTERSON
+OH	WRIGHT PATTERSON AFB
+OH	W RUSHVILLE
+OH	WSHNGTN CT HS
+OH	WYOMING
+OH	XENIA
+OH	YELLOW SPGS
+OH	YELLOW SPRINGS
+OH	YORKSHIRE
+OH	YORKVILLE
+OH	YOUNGSTOWN
+OH	ZALESKI
+OH	ZANESFIELD
+OH	ZANESVILLE
+OH	ZOAR
+OH	ZOARVILLE
+OK	ACHILLE
+OK	ADA
+OK	ADAIR
+OK	ADAMS
+OK	ADDINGTON
+OK	AFTON
+OK	AGRA
+OK	ALBANY
+OK	ALBERT
+OK	ALBION
+OK	ALDERSON
+OK	ALEX
+OK	ALINE
+OK	ALLEN
+OK	ALTUS
+OK	ALTUS AFB
+OK	ALVA
+OK	AMBER
+OK	AMES
+OK	AMORITA
+OK	ANADARKO
+OK	ANTLERS
+OK	APACHE
+OK	ARAPAHO
+OK	ARCADIA
+OK	ARDMORE
+OK	ARKOMA
+OK	ARNETT
+OK	ASHER
+OK	ATOKA
+OK	ATWOOD
+OK	AVANT
+OK	BACHE
+OK	BAKER
+OK	BALKO
+OK	BARNSDALL
+OK	BARTLESVILLE
+OK	BATTIEST
+OK	BEARDEN
+OK	BEAVER
+OK	BEGGS
+OK	BENNINGTON
+OK	BERNICE
+OK	BESSIE
+OK	BETHANY
+OK	BETHEL
+OK	BIG CABIN
+OK	BILLINGS
+OK	BINGER
+OK	BISON
+OK	BIXBY
+OK	BLACKWELL
+OK	BLAIR
+OK	BLANCHARD
+OK	BLANCO
+OK	BLOCKER
+OK	BLUEJACKET
+OK	BOISE CITY
+OK	BOKCHITO
+OK	BOKOSHE
+OK	BOLEY
+OK	BOSWELL
+OK	BOWLEGS
+OK	BOWRING
+OK	BOYNTON
+OK	BRADLEY
+OK	BRAGGS
+OK	BRAMAN
+OK	BRAY
+OK	BRISTOW
+OK	BROKEN ARROW
+OK	BROKEN BOW
+OK	BROMIDE
+OK	BUFFALO
+OK	BUNCH
+OK	BURBANK
+OK	BURLINGTON
+OK	BURNEYVILLE
+OK	BURNS FLAT
+OK	BUTLER
+OK	BYARS
+OK	BYRON
+OK	CACHE
+OK	CADDO
+OK	CALERA
+OK	CALUMET
+OK	CALVIN
+OK	CAMARGO
+OK	CAMERON
+OK	CANADIAN
+OK	CANEY
+OK	CANTON
+OK	CANUTE
+OK	CAPRON
+OK	CARDIN
+OK	CARMEN
+OK	CARNEGIE
+OK	CARNEY
+OK	CARRIER
+OK	CARTER
+OK	CARTWRIGHT
+OK	CASHION
+OK	CASTLE
+OK	CATOOSA
+OK	CEMENT
+OK	CENTRAHOMA
+OK	CENTRALIA
+OK	CHANDLER
+OK	CHATTANOOGA
+OK	CHECOTAH
+OK	CHELSEA
+OK	CHEROKEE
+OK	CHESTER
+OK	CHEYENNE
+OK	CHICKASHA
+OK	CHOCTAW
+OK	CHOUTEAU
+OK	CLAREMORE
+OK	CLARITA
+OK	CLAYTON
+OK	CLEARVIEW
+OK	CLEORA
+OK	CLEO SPRINGS
+OK	CLEVELAND
+OK	CLINTON
+OK	COALGATE
+OK	COLBERT
+OK	COLCORD
+OK	COLEMAN
+OK	COLLINSVILLE
+OK	COLONY
+OK	COMANCHE
+OK	COMMERCE
+OK	CONCHO
+OK	CONNERVILLE
+OK	COOKSON
+OK	COPAN
+OK	CORDELL
+OK	CORN
+OK	COUNCIL HILL
+OK	COUNTYLINE
+OK	COVINGTON
+OK	COWETA
+OK	COWLINGTON
+OK	COYLE
+OK	CRAWFORD
+OK	CRESCENT
+OK	CROMWELL
+OK	CROWDER
+OK	CUSHING
+OK	CUSTER CITY
+OK	CYRIL
+OK	DACOMA
+OK	DAISY
+OK	DALE
+OK	DAVENPORT
+OK	DAVIDSON
+OK	DAVIS
+OK	DEER CREEK
+OK	DELAWARE
+OK	DEL CITY
+OK	DEPEW
+OK	DEVOL
+OK	DEWAR
+OK	DEWEY
+OK	DIBBLE
+OK	DILL CITY
+OK	DISNEY
+OK	DOUGHERTY
+OK	DOUGLAS
+OK	DOVER
+OK	DRUMMOND
+OK	DRUMRIGHT
+OK	DUKE
+OK	DUNCAN
+OK	DURANT
+OK	DURHAM
+OK	DUSTIN
+OK	EAGLE CITY
+OK	EAGLETOWN
+OK	EAKLY
+OK	EARLSBORO
+OK	EDMOND
+OK	ELDORADO
+OK	ELGIN
+OK	ELK CITY
+OK	ELMER
+OK	ELMORE CITY
+OK	ELMWOOD
+OK	EL RENO
+OK	ENID
+OK	ERICK
+OK	EUCHA
+OK	EUFAULA
+OK	FAIRFAX
+OK	FAIRLAND
+OK	FAIRMONT
+OK	FAIRVIEW
+OK	FANSHAWE
+OK	FARGO
+OK	FARRIS
+OK	FAXON
+OK	FAY
+OK	FELT
+OK	FINLEY
+OK	FITTSTOWN
+OK	FITZHUGH
+OK	FLETCHER
+OK	FORAKER
+OK	FORGAN
+OK	FORT COBB
+OK	FORT GIBSON
+OK	FORT SILL
+OK	FORT SUPPLY
+OK	FORT TOWSON
+OK	FOSS
+OK	FOSTER
+OK	FOX
+OK	FOYIL
+OK	FRANCIS
+OK	FREDERICK
+OK	FREEDOM
+OK	FT TOWSON
+OK	GAGE
+OK	GANS
+OK	GARBER
+OK	GARVIN
+OK	GATE
+OK	GEARY
+OK	GENE AUTRY
+OK	GERONIMO
+OK	GLENCOE
+OK	GLENPOOL
+OK	GOLDEN
+OK	GOLDSBY
+OK	GOLTRY
+OK	GOODWELL
+OK	GORE
+OK	GOTEBO
+OK	GOULD
+OK	GOWEN
+OK	GRACEMONT
+OK	GRADY
+OK	GRAHAM
+OK	GRANDFIELD
+OK	GRANITE
+OK	GRANT
+OK	GREENFIELD
+OK	GROVE
+OK	GUTHRIE
+OK	GUYMON
+OK	HAILEYVILLE
+OK	HALLETT
+OK	HAMMON
+OK	HANNA
+OK	HARDEN CITY
+OK	HARDESTY
+OK	HARMON
+OK	HARRAH
+OK	HARTSHORNE
+OK	HASKELL
+OK	HASTINGS
+OK	HAWORTH
+OK	HAYWOOD
+OK	HEADRICK
+OK	HEALDTON
+OK	HEAVENER
+OK	HELENA
+OK	HENDRIX
+OK	HENNEPIN
+OK	HENNESSEY
+OK	HENRYETTA
+OK	HILLSDALE
+OK	HINTON
+OK	HITCHCOCK
+OK	HITCHITA
+OK	HOBART
+OK	HODGEN
+OK	HOFFMAN
+OK	HOLDENVILLE
+OK	HOLLIS
+OK	HOLLISTER
+OK	HOMINY
+OK	HONOBIA
+OK	HOOKER
+OK	HOPETON
+OK	HOWE
+OK	HOYT
+OK	HUGO
+OK	HULBERT
+OK	HUNTER
+OK	HYDRO
+OK	IDABEL
+OK	INDIAHOMA
+OK	INDIANOLA
+OK	INOLA
+OK	ISABELLA
+OK	JAY
+OK	JENKS
+OK	JENNINGS
+OK	JET
+OK	JONES
+OK	KANSAS
+OK	KAW
+OK	KAW CITY
+OK	KELLYVILLE
+OK	KEMP
+OK	KENDRICK
+OK	KENEFIC
+OK	KENTON
+OK	KEOTA
+OK	KETCHUM
+OK	KEYES
+OK	KIAMICHI
+OK	KIAMICHI CHRISTIAN MISSION
+OK	KIEFER
+OK	KINGFISHER
+OK	KINGSTON
+OK	KINTA
+OK	KIOWA
+OK	KNOWLES
+OK	KONAWA
+OK	KREBS
+OK	KREMLIN
+OK	LAHOMA
+OK	LAMAR
+OK	LAMONT
+OK	LANE
+OK	LANGLEY
+OK	LANGSTON
+OK	LAVERNE
+OK	LAWTON
+OK	LEBANON
+OK	LEEDEY
+OK	LEFLORE
+OK	LEHIGH
+OK	LENAPAH
+OK	LEON
+OK	LEONARD
+OK	LEQUIRE
+OK	LEXINGTON
+OK	LINDSAY
+OK	LOCO
+OK	LOCUST GROVE
+OK	LOGAN
+OK	LONE GROVE
+OK	LONE WOLF
+OK	LONGDALE
+OK	LOOKEBA
+OK	LOVELAND
+OK	LOYAL
+OK	LUCIEN
+OK	LUTHER
+OK	MACOMB
+OK	MADILL
+OK	MANCHESTER
+OK	MANGUM
+OK	MANITOU
+OK	MANNFORD
+OK	MANNSVILLE
+OK	MARAMEC
+OK	MARBLE CITY
+OK	MARIETTA
+OK	MARLAND
+OK	MARLOW
+OK	MARSHALL
+OK	MARTHA
+OK	MASON
+OK	MAUD
+OK	MAY
+OK	MAYSVILLE
+OK	MAZIE
+OK	MCALESTER
+OK	MCCURTAIN
+OK	MCLOUD
+OK	MC MILLAN
+OK	MEAD
+OK	MEDFORD
+OK	MEDICINE PARK
+OK	MEEKER
+OK	MEERS
+OK	MENO
+OK	MERIDIAN
+OK	MIAMI
+OK	MIDWEST CITY
+OK	MILBURN
+OK	MILFAY
+OK	MILL CREEK
+OK	MILLERTON
+OK	MILO
+OK	MINCO
+OK	MOFFETT
+OK	MONKEY ISLAND
+OK	MONROE
+OK	MOODYS
+OK	MOORE
+OK	MOORELAND
+OK	MORRIS
+OK	MORRISON
+OK	MOUNDS
+OK	MOUNTAIN PARK
+OK	MOUNTAIN VIEW
+OK	MOYERS
+OK	MULDROW
+OK	MULHALL
+OK	MUSE
+OK	MUSKOGEE
+OK	MUSTANG
+OK	MUTUAL
+OK	NARDIN
+OK	NASH
+OK	NASHOBA
+OK	NEWALLA
+OK	NEWCASTLE
+OK	NEWKIRK
+OK	NEW LIMA
+OK	NICHOLS HILLS
+OK	NICOMA PARK
+OK	NINNEKAH
+OK	NOBLE
+OK	NORMAN
+OK	NORTH MIAMI
+OK	NOWATA
+OK	OAKHURST
+OK	OAKLAND
+OK	OAKS
+OK	OAKWOOD
+OK	OCHELATA
+OK	OCTAVIA
+OK	OILTON
+OK	OKARCHE
+OK	OKAY
+OK	OKEENE
+OK	OKEMAH
+OK	OKLAHOMA CITY
+OK	OKMULGEE
+OK	OK ST UNV ADM
+OK	OKTAHA
+OK	OLUSTEE
+OK	OMEGA
+OK	OOLOGAH
+OK	OPTIMA
+OK	ORIENTA
+OK	ORLANDO
+OK	OSAGE
+OK	OSCAR
+OK	OVERBROOK
+OK	OWASSO
+OK	PADEN
+OK	PANAMA
+OK	PANOLA
+OK	PAOLI
+OK	PARK HILL
+OK	PAULS VALLEY
+OK	PAWHUSKA
+OK	PAWNEE
+OK	PECKHAM
+OK	PEGGS
+OK	PENSACOLA
+OK	PEORIA
+OK	PERKINS
+OK	PERNELL
+OK	PERRY
+OK	PHAROAH
+OK	PICHER
+OK	PICKENS
+OK	PIEDMONT
+OK	PITTSBURG
+OK	PLATTER
+OK	POCASSET
+OK	POCOLA
+OK	PONCA CITY
+OK	POND CREEK
+OK	PONTOTOC
+OK	POOLEVILLE
+OK	PORTER
+OK	PORUM
+OK	POTEAU
+OK	PRAGUE
+OK	PRESTON
+OK	PROCTOR
+OK	PRUE
+OK	PRYOR
+OK	PURCELL
+OK	PUTNAM
+OK	QUAPAW
+OK	QUINTON
+OK	RALSTON
+OK	RAMONA
+OK	RANDLETT
+OK	RATLIFF CITY
+OK	RATTAN
+OK	RAVIA
+OK	REDBIRD
+OK	RED OAK
+OK	RED ROCK
+OK	REED
+OK	RENTIESVILLE
+OK	REYDON
+OK	RINGLING
+OK	RINGOLD
+OK	RINGWOOD
+OK	RIPLEY
+OK	ROCKY
+OK	ROFF
+OK	ROLAND
+OK	ROOSEVELT
+OK	ROSE
+OK	ROSSTON
+OK	RUBOTTOM
+OK	RUFE
+OK	RUSH SPRINGS
+OK	RYAN
+OK	SAINT LOUIS
+OK	SALINA
+OK	SALLISAW
+OK	SAND SPRINGS
+OK	SAPULPA
+OK	SASAKWA
+OK	SAVANNA
+OK	SAWYER
+OK	SAYRE
+OK	SCHULTER
+OK	S COFFEYVILLE
+OK	SEILING
+OK	SELMAN
+OK	SEMINOLE
+OK	SENTINEL
+OK	SHADY POINT
+OK	SHAMROCK
+OK	SHARON
+OK	SHATTUCK
+OK	SHAWNEE
+OK	SHIDLER
+OK	SKIATOOK
+OK	SLICK
+OK	SMITHVILLE
+OK	SNOW
+OK	SNYDER
+OK	SOPER
+OK	SOUTHARD
+OK	SPARKS
+OK	SPAVINAW
+OK	SPENCER
+OK	SPENCERVILLE
+OK	SPERRY
+OK	SPIRO
+OK	SPRINGER
+OK	STERLING
+OK	STIDHAM
+OK	STIGLER
+OK	STILLWATER
+OK	STILWELL
+OK	STONEWALL
+OK	STRANG
+OK	STRATFORD
+OK	STRINGTOWN
+OK	STRONG CITY
+OK	STROUD
+OK	STUART
+OK	SULPHUR
+OK	SWEETWATER
+OK	SWINK
+OK	TAFT
+OK	TAHLEQUAH
+OK	TALALA
+OK	TALIHINA
+OK	TALOGA
+OK	TATUMS
+OK	TECUMSEH
+OK	TEMPLE
+OK	TERLTON
+OK	TERRAL
+OK	TEXHOMA
+OK	TEXOLA
+OK	THACKERVILLE
+OK	THE VILLAGE
+OK	THOMAS
+OK	TINKER AFB
+OK	TIPTON
+OK	TISHOMINGO
+OK	TOM
+OK	TONKAWA
+OK	TRYON
+OK	TULLAHASSEE
+OK	TULSA
+OK	TUPELO
+OK	TURPIN
+OK	TUSKAHOMA
+OK	TUSSY
+OK	TUTTLE
+OK	TWIN OAKS
+OK	TYRONE
+OK	UNION CITY
+OK	VALLIANT
+OK	VELMA
+OK	VERA
+OK	VERDEN
+OK	VERNON
+OK	VIAN
+OK	VICI
+OK	VILLAGE
+OK	VINITA
+OK	VINSON
+OK	WADE
+OK	WAGONER
+OK	WAINWRIGHT
+OK	WAKITA
+OK	WALTERS
+OK	WANETTE
+OK	WANN
+OK	WAPANUCKA
+OK	WARDVILLE
+OK	WARNER
+OK	WARR ACRES
+OK	WASHINGTON
+OK	WASHITA
+OK	WATONGA
+OK	WATSON
+OK	WATTS
+OK	WAUKOMIS
+OK	WAURIKA
+OK	WAYNE
+OK	WAYNOKA
+OK	WEATHERFORD
+OK	WEBBERS FALLS
+OK	WELCH
+OK	WELEETKA
+OK	WELLING
+OK	WELLSTON
+OK	WELTY
+OK	WESTVILLE
+OK	WETUMKA
+OK	WEWOKA
+OK	WHEATLAND
+OK	WHITEFIELD
+OK	WHITE OAK
+OK	WHITESBORO
+OK	WILBURTON
+OK	WILLOW
+OK	WILSON
+OK	WISTER
+OK	WOODWARD
+OK	WRIGHT CITY
+OK	WYANDOTTE
+OK	WYNNEWOOD
+OK	WYNONA
+OK	YALE
+OK	YARNABY
+OK	YUKON
+OR	ADAIR VILLAGE
+OR	ADAMS
+OR	ADEL
+OR	ADRIAN
+OR	AGNESS
+OR	ALBANY
+OR	ALLEGANY
+OR	ALOHA
+OR	ALSEA
+OR	ALVADORE
+OR	AMITY
+OR	ANTELOPE
+OR	APPLEGATE
+OR	ARCH CAPE
+OR	ARLINGTON
+OR	AROCK
+OR	ASHLAND
+OR	ASHWOOD
+OR	ASTORIA
+OR	ATHENA
+OR	AUMSVILLE
+OR	AURORA
+OR	AZALEA
+OR	BAKER CITY
+OR	BANDON
+OR	BANKS
+OR	BATES
+OR	BAY CITY
+OR	BEATTY
+OR	BEAVER
+OR	BEAVERCREEK
+OR	BEAVERTON
+OR	BEND
+OR	BIRKENFELD
+OR	BLACHLY
+OR	BLACK BUTTE RANCH
+OR	BLK BTTE RNCH
+OR	BLODGETT
+OR	BLUE RIVER
+OR	BLY
+OR	BOARDMAN
+OR	BONANZA
+OR	BORING
+OR	BRIDAL VEIL
+OR	BRIDGEPORT
+OR	BRIGHTWOOD
+OR	BROADBENT
+OR	BROGAN
+OR	BROOKINGS
+OR	BROOKS
+OR	BROTHERS
+OR	BROWNSVILLE
+OR	BURNS
+OR	BUTTE FALLS
+OR	BUXTON
+OR	CAMAS VALLEY
+OR	CAMP SHERMAN
+OR	CANBY
+OR	CANNON BEACH
+OR	CANYON CITY
+OR	CANYONVILLE
+OR	CARLTON
+OR	CASCADE LOCKS
+OR	CASCADIA
+OR	CAVE JUNCTION
+OR	CAYUSE
+OR	CENTRAL POINT
+OR	CHARLESTON
+OR	CHEMULT
+OR	CHESHIRE
+OR	CHILOQUIN
+OR	CHRISTMAS VALLEY
+OR	CHRISTMAS VLY
+OR	CLACKAMAS
+OR	CLATSKANIE
+OR	CLOVERDALE
+OR	COBURG
+OR	COLTON
+OR	COLUMBIA CITY
+OR	CONDON
+OR	COOS BAY
+OR	COQUILLE
+OR	CORBETT
+OR	CORNELIUS
+OR	CORVALLIS
+OR	COTTAGE GROVE
+OR	COVE
+OR	CRABTREE
+OR	CRANE
+OR	CRATER LAKE
+OR	CRAWFORDSVILLE
+OR	CRAWFORDSVLLE
+OR	CRESCENT
+OR	CRESCENT LAKE
+OR	CRESWELL
+OR	CRKD RVR RNCH
+OR	CROOKED RIVER
+OR	CROOKED RIVER RANCH
+OR	CULP CREEK
+OR	CULVER
+OR	CURTIN
+OR	DAIRY
+OR	DALE
+OR	DALLAS
+OR	DAMASCUS
+OR	DAYS CREEK
+OR	DAYTON
+OR	DAYVILLE
+OR	DEADWOOD
+OR	DEER ISLAND
+OR	DEPOE BAY
+OR	DETROIT
+OR	DEXTER
+OR	DIAMOND
+OR	DIAMOND LAKE
+OR	DILLARD
+OR	DONALD
+OR	DORENA
+OR	DRAIN
+OR	DREWSEY
+OR	DUFUR
+OR	DUNDEE
+OR	DURKEE
+OR	EAGLE CREEK
+OR	EAGLE POINT
+OR	ECHO
+OR	EDDYVILLE
+OR	ELGIN
+OR	ELKTON
+OR	ELMIRA
+OR	ENTERPRISE
+OR	ESTACADA
+OR	EUGENE
+OR	FAIRVIEW
+OR	FALL CREEK
+OR	FALLS CITY
+OR	FIELDS
+OR	FLORENCE
+OR	FOREST GROVE
+OR	FORT KLAMATH
+OR	FORT ROCK
+OR	FOSSIL
+OR	FOSTER
+OR	FOX
+OR	FRENCHGLEN
+OR	FRIEND
+OR	GALES CREEK
+OR	GARDINER
+OR	GARIBALDI
+OR	GASTON
+OR	GATES
+OR	GEARHART
+OR	GERVAIS
+OR	GILCHRIST
+OR	GLADSTONE
+OR	GLENDALE
+OR	GLENEDEN BCH
+OR	GLENEDEN BEACH
+OR	GLENWOOD
+OR	GLIDE
+OR	GOLD BEACH
+OR	GOLD HILL
+OR	GOVERNMENT CAMP
+OR	GOVERNMENT CP
+OR	GRAND RONDE
+OR	GRANITE
+OR	GRANTS PASS
+OR	GRASS VALLEY
+OR	GREENLEAF
+OR	GRESHAM
+OR	HAINES
+OR	HALFWAY
+OR	HALSEY
+OR	HAMMOND
+OR	HAPPY VALLEY
+OR	HARBOR
+OR	HARPER
+OR	HARRISBURG
+OR	HEBO
+OR	HELIX
+OR	HEPPNER
+OR	HEREFORD
+OR	HERMISTON
+OR	HILLSBORO
+OR	HINES
+OR	HOOD RIVER
+OR	HUBBARD
+OR	HUNTINGTON
+OR	IDANHA
+OR	IDLEYLD PARK
+OR	IMBLER
+OR	IMNAHA
+OR	INDEPENDENCE
+OR	IONE
+OR	IRONSIDE
+OR	IRRIGON
+OR	ISLAND CITY
+OR	JACKSONVILLE
+OR	JAMIESON
+OR	JASPER
+OR	JEFFERSON
+OR	JOHN DAY
+OR	JORDAN VALLEY
+OR	JOSEPH
+OR	JUNCTION CITY
+OR	JUNTURA
+OR	KEIZER
+OR	KENO
+OR	KENT
+OR	KERBY
+OR	KIMBERLY
+OR	KING CITY
+OR	KINZUA
+OR	KLAMATH FALLS
+OR	LAFAYETTE
+OR	LA GRANDE
+OR	LAKE OSWEGO
+OR	LAKESIDE
+OR	LAKEVIEW
+OR	LANGLOIS
+OR	LA PINE
+OR	LAWEN
+OR	LEABURG
+OR	LEBANON
+OR	LEXINGTON
+OR	LINCOLN CITY
+OR	LOGSDEN
+OR	LONG CREEK
+OR	LORANE
+OR	LOSTINE
+OR	LOWELL
+OR	LYONS
+OR	MADRAS
+OR	MALIN
+OR	MANNING
+OR	MANZANITA
+OR	MAPLETON
+OR	MARCOLA
+OR	MARION
+OR	MARYLHURST
+OR	MAUPIN
+OR	MAYVILLE
+OR	MC KENZIE BRG
+OR	MC KENZIE BRIDGE
+OR	MCKENZIE BRIDGE
+OR	MCMINNVILLE
+OR	MCNARY
+OR	MEACHAM
+OR	MEDFORD
+OR	MEDICAL SPGS
+OR	MEDICAL SPRINGS
+OR	MEHAMA
+OR	MERLIN
+OR	MERRILL
+OR	METOLIUS
+OR	MIDLAND
+OR	MIKKALO
+OR	MILL CITY
+OR	MILTON FREEWATER
+OR	MILTON FRWTR
+OR	MILWAUKIE
+OR	MITCHELL
+OR	MOLALLA
+OR	MONMOUTH
+OR	MONROE
+OR	MONUMENT
+OR	MORO
+OR	MOSIER
+OR	MOUNT ANGEL
+OR	MOUNT HOOD PARKDALE
+OR	MOUNT VERNON
+OR	MT HOOD PRKDL
+OR	MULINO
+OR	MURPHY
+OR	MYRTLE CREEK
+OR	MYRTLE POINT
+OR	NEHALEM
+OR	NEOTSU
+OR	NESKOWIN
+OR	NETARTS
+OR	NETARTS BAY
+OR	NEWBERG
+OR	NEW PINE CREEK
+OR	NEW PINE CRK
+OR	NEWPORT
+OR	NORTH BEND
+OR	NORTH PLAINS
+OR	NORTH POWDER
+OR	NORWAY
+OR	NOTI
+OR	NYSSA
+OR	OAK GROVE
+OR	OAKLAND
+OR	OAKRIDGE
+OR	O BRIEN
+OR	OCEANSIDE
+OR	ODELL
+OR	ONTARIO
+OR	OPHIR
+OR	OREGON CITY
+OR	ORETECH
+OR	OTIS
+OR	OTTER ROCK
+OR	OXBOW
+OR	PACIFIC CITY
+OR	PAISLEY
+OR	PAULINA
+OR	PENDLETON
+OR	PHILOMATH
+OR	PHOENIX
+OR	PILOT ROCK
+OR	PISTOL RIVER
+OR	PLEASANT HILL
+OR	PLUSH
+OR	PORTLAND
+OR	PORT ORFORD
+OR	POST
+OR	POWELL BUTTE
+OR	POWERS
+OR	PRAIRIE CITY
+OR	PRINCETON
+OR	PRINEVILLE
+OR	PROSPECT
+OR	RAINIER
+OR	REDMOND
+OR	REEDSPORT
+OR	REMOTE
+OR	RHODODENDRON
+OR	RICHLAND
+OR	RICKREALL
+OR	RIDDLE
+OR	RILEY
+OR	RITTER
+OR	RIVERSIDE
+OR	ROCKAWAY
+OR	ROCKAWAY BCH
+OR	ROCKAWAY BEACH
+OR	ROGUE RIVER
+OR	ROSEBURG
+OR	ROSE LODGE
+OR	RUFUS
+OR	SAGINAW
+OR	SAINT BENEDICT
+OR	SAINT HELENS
+OR	SAINT PAUL
+OR	SALEM
+OR	SANDY
+OR	SCAPPOOSE
+OR	SCIO
+OR	SCOTTSBURG
+OR	SCOTTS MILLS
+OR	SEAL ROCK
+OR	SEASIDE
+OR	SELMA
+OR	SENECA
+OR	SHADY COVE
+OR	SHANIKO
+OR	SHEDD
+OR	SHERIDAN
+OR	SHERWOOD
+OR	SILETZ
+OR	SILVER LAKE
+OR	SILVERTON
+OR	SISTERS
+OR	SIXES
+OR	SOUTH BEACH
+OR	SPRAGUE RIVER
+OR	SPRAY
+OR	SPRINGFIELD
+OR	STANFIELD
+OR	STAYTON
+OR	ST BENEDICT
+OR	SUBLIMITY
+OR	SUMMER LAKE
+OR	SUMMERVILLE
+OR	SUMPTER
+OR	SUNRIVER
+OR	SUTHERLIN
+OR	SWEET HOME
+OR	SWISSHOME
+OR	TALENT
+OR	TANGENT
+OR	TENMILE
+OR	TERREBONNE
+OR	THE DALLES
+OR	THURSTON
+OR	TIDEWATER
+OR	TIGARD
+OR	TILLAMOOK
+OR	TILLER
+OR	TIMBER
+OR	TIMBERLINE LODGE
+OR	TMBRLINE LDG
+OR	TOLEDO
+OR	TOLOVANA PARK
+OR	TRAIL
+OR	TROUTDALE
+OR	TUALATIN
+OR	TURNER
+OR	TYGH VALLEY
+OR	UKIAH
+OR	UMATILLA
+OR	UMPQUA
+OR	UNION
+OR	UNITY
+OR	VALE
+OR	VENETA
+OR	VERNONIA
+OR	VIDA
+OR	WALDPORT
+OR	WALLOWA
+OR	WALTERVILLE
+OR	WALTON
+OR	WAMIC
+OR	WARM SPRINGS
+OR	WARREN
+OR	WARRENTON
+OR	WASCO
+OR	WEDDERBURN
+OR	WELCHES
+OR	WESTFALL
+OR	WESTFIR
+OR	WESTLAKE
+OR	WEST LINN
+OR	WESTON
+OR	WESTPORT
+OR	WEST STAYTON
+OR	WHEELER
+OR	WHITE CITY
+OR	WILBUR
+OR	WILDERVILLE
+OR	WILLAMINA
+OR	WILLIAMS
+OR	WILSONVILLE
+OR	WIN BAY
+OR	WINCHESTER
+OR	WINCHESTER BAY
+OR	WINCHESTR BAY
+OR	WINSTON
+OR	WOLF CREEK
+OR	WOODBURN
+OR	WOOD VILLAGE
+OR	YACHATS
+OR	YAMHILL
+OR	YONCALLA
+OR	ZIGZAG
+PA	AARONSBURG
+PA	ABBOTTSTOWN
+PA	ABINGTON
+PA	ACKERMANVILLE
+PA	ACME
+PA	ACOSTA
+PA	ADAH
+PA	ADAMSBURG
+PA	ADAMSTOWN
+PA	ADAMSVILLE
+PA	ADDISON
+PA	ADRIAN
+PA	AIRVILLE
+PA	AKRON
+PA	ALBA
+PA	ALBION
+PA	ALBRIGHTSVILLE
+PA	ALBRIGHTSVLLE
+PA	ALBURTIS
+PA	ALDAN
+PA	ALEPPO
+PA	ALEXANDRIA
+PA	ALIQUIPPA
+PA	ALLEGHENY
+PA	ALLENPORT
+PA	ALLENSVILLE
+PA	ALLENTOWN
+PA	ALLENWOOD
+PA	ALLISON
+PA	ALLISON PARK
+PA	ALLPORT
+PA	ALTOONA
+PA	ALUM BANK
+PA	ALVERDA
+PA	ALVERTON
+PA	AMBERSON
+PA	AMBLER
+PA	AMBRIDGE
+PA	AMITY
+PA	ANALOMINK
+PA	ANDALUSIA
+PA	ANDREAS
+PA	ANITA
+PA	ANNANDALE
+PA	ANNVILLE
+PA	ANTES FORT
+PA	APOLLO
+PA	AQUASHICOLA
+PA	ARCADIA
+PA	ARCHBALD
+PA	ARCOLA
+PA	ARDARA
+PA	ARDMORE
+PA	ARENDTSVILLE
+PA	ARISTES
+PA	ARMAGH
+PA	ARMBRUST
+PA	ARMSTRONG
+PA	ARNOLD
+PA	ARNOT
+PA	ARONA
+PA	ARSENAL
+PA	ARTEMAS
+PA	ASHFIELD
+PA	ASHLAND
+PA	ASHLEY
+PA	ASHVILLE
+PA	ASPERS
+PA	ASPINWALL
+PA	ASTON
+PA	ATGLEN
+PA	ATHENS
+PA	ATLANTIC
+PA	ATLASBURG
+PA	AUBURN
+PA	AUDUBON
+PA	AULTMAN
+PA	AUSTIN
+PA	AVALON
+PA	AVELLA
+PA	AVIS
+PA	AVOCA
+PA	AVONDALE
+PA	AVONMORE
+PA	BADEN
+PA	BAINBRIDGE
+PA	BAIRDFORD
+PA	BAKERS SUMMIT
+PA	BAKERSTOWN
+PA	BALA CYNWYD
+PA	BALLY
+PA	BANGOR
+PA	BARKING
+PA	BARNESBORO
+PA	BARNESVILLE
+PA	BARREE
+PA	BART
+PA	BARTO
+PA	BARTONSVILLE
+PA	BASTRESS
+PA	BATH
+PA	BAUSMAN
+PA	BEACH HAVEN
+PA	BEACH LAKE
+PA	BEALLSVILLE
+PA	BEAR CREEK
+PA	BEAR CREEK TOWNSHIP
+PA	BEAR CREEK TW
+PA	BEAR LAKE
+PA	BEAVER
+PA	BEAVERDALE
+PA	BEAVER FALLS
+PA	BEAVER MDWS
+PA	BEAVER MEADOWS
+PA	BEAVER SPRGS
+PA	BEAVER SPRINGS
+PA	BEAVERTOWN
+PA	BECCARIA
+PA	BECHTELSVILLE
+PA	BEDFORD
+PA	BEDMINSTER
+PA	BEECH CREEK
+PA	BELLEFONTE
+PA	BELLE VERNON
+PA	BELLEVILLE
+PA	BELLE VRN BR
+PA	BELLEVUE
+PA	BELLVUE
+PA	BELLWOOD
+PA	BELMONT HILLS
+PA	BELSANO
+PA	BEN AVON
+PA	BENDERSVILLE
+PA	BENEZETT
+PA	BENEZETTE
+PA	BENSALEM
+PA	BENTLEYVILLE
+PA	BENTON
+PA	BERLIN
+PA	BERNVILLE
+PA	BERRYSBURG
+PA	BERWICK
+PA	BERWYN
+PA	BESSEMER
+PA	BETHANY
+PA	BETHEL
+PA	BETHEL PARK
+PA	BETHLEHEM
+PA	BEYER
+PA	BIG COVE TANN
+PA	BIG COVE TANNERY
+PA	BIGLER
+PA	BIGLERVILLE
+PA	BIG RUN
+PA	BIRCHRUNVILLE
+PA	BIRD IN HAND
+PA	BIRDSBORO
+PA	BIRMINGHAM
+PA	BLACK HORSE
+PA	BLACK LICK
+PA	BLAIN
+PA	BLAIRS MILLS
+PA	BLAIRSVILLE
+PA	BLAKELY
+PA	BLAKESLEE
+PA	BLANCHARD
+PA	BLANDBURG
+PA	BLANDON
+PA	BLAWNOX
+PA	BLOOMFIELD
+PA	BLOOMING GLEN
+PA	BLOOMING GROVE
+PA	BLOOMING GRV
+PA	BLOOMSBURG
+PA	BLOSSBURG
+PA	BLUE BALL
+PA	BLUE BELL
+PA	BLUE RIDGE SM
+PA	BLUE RIDGE SUMMIT
+PA	BOALSBURG
+PA	BOBTOWN
+PA	BOILING SPRGS
+PA	BOILING SPRINGS
+PA	BOLIVAR
+PA	BOOTHWYN
+PA	BOSTON
+PA	BOSWELL
+PA	BOVARD
+PA	BOWERS
+PA	BOWMANSDALE
+PA	BOWMANSTOWN
+PA	BOWMANSVILLE
+PA	BOYERS
+PA	BOYERTOWN
+PA	BOYNTON
+PA	BRACKENRIDGE
+PA	BRACKNEY
+PA	BRADDOCK
+PA	BRADENVILLE
+PA	BRADFORD
+PA	BRADFORDWOODS
+PA	BRANCHDALE
+PA	BRANCHTON
+PA	BRANDAMORE
+PA	BRANDY CAMP
+PA	BRAVE
+PA	BREEZEWOOD
+PA	BREINIGSVILLE
+PA	BRENTWOOD
+PA	BRESSLER
+PA	BRIDGEPORT
+PA	BRIDGEVILLE
+PA	BRIER HILL
+PA	BRISBIN
+PA	BRISTOL
+PA	BROAD TOP
+PA	BROCKPORT
+PA	BROCKTON
+PA	BROCKWAY
+PA	BRODBECKS
+PA	BRODHEADSVILLE
+PA	BRODHEADSVLLE
+PA	BROGUE
+PA	BROOKHAVEN
+PA	BROOKLINE
+PA	BROOKLYN
+PA	BROOKVILLE
+PA	BROOMALL
+PA	BROWNDALE
+PA	BROWNFIELD
+PA	BROWNSTOWN
+PA	BROWNSVILLE
+PA	BRUIN
+PA	BRUNNERVILLE
+PA	BRUSH VALLEY
+PA	BRYN ATHYN
+PA	BRYN MAWR
+PA	BUCK HILL FALLS
+PA	BUCK HILL FLS
+PA	BUCKINGHAM
+PA	BUENA VISTA
+PA	BUFFALO MILLS
+PA	BULGER
+PA	BULK MAIL CENTER
+PA	BULK MAIL CTR
+PA	BUNOLA
+PA	BURGETTSTOWN
+PA	BURLINGTON
+PA	BURNHAM
+PA	BURNSIDE
+PA	BURNT CABINS
+PA	BUSHKILL
+PA	BUTLER
+PA	BUTZTOWN
+PA	BYRNEDALE
+PA	CABOT
+PA	CADOGAN
+PA	CAIRNBROOK
+PA	CALIFORNIA
+PA	CALLENSBURG
+PA	CALLERY
+PA	CALUMET
+PA	CALVIN
+PA	CAMBRA
+PA	CAMBRIDGE SPRINGS
+PA	CAMBRIDG SPGS
+PA	CAMMAL
+PA	CAMPBELLTOWN
+PA	CAMP HILL
+PA	CAMPTOWN
+PA	CANADENSIS
+PA	CANONSBURG
+PA	CANTON
+PA	CARBONDALE
+PA	CARDALE
+PA	CARLISLE
+PA	CARLISLE BARRACKS
+PA	CARLISLE BRKS
+PA	CARLTON
+PA	CARMICHAELS
+PA	CARNEGIE
+PA	CARROLLTOWN
+PA	CARSON
+PA	CARVERSVILLE
+PA	CASHTOWN
+PA	CASSANDRA
+PA	CASSVILLE
+PA	CASTANEA
+PA	CASTLE SHANN
+PA	CASTLE SHANNON
+PA	CATASAUQUA
+PA	CATAWISSA
+PA	CECIL
+PA	CEDARHURST
+PA	CEDAR RUN
+PA	CEDARS
+PA	CENTERPORT
+PA	CENTER SQUARE
+PA	CENTER VALLEY
+PA	CENTERVILLE
+PA	CENTRAL CITY
+PA	CENTRALIA
+PA	CENTRE HALL
+PA	CHADDS FORD
+PA	CHALFONT
+PA	CHALK HILL
+PA	CHAMBERSBURG
+PA	CHAMBERSVILLE
+PA	CHAMPION
+PA	CHANDLERS VALLEY
+PA	CHANDLRS VLY
+PA	CHARLEROI
+PA	CHATHAM
+PA	CHELTENHAM
+PA	CHERRY TREE
+PA	CHERRYVILLE
+PA	CHESTER
+PA	CHESTERBROOK
+PA	CHESTER HEIGHTS
+PA	CHESTER HTS
+PA	CHESTER SPRGS
+PA	CHESTER SPRINGS
+PA	CHESTER TOWNSHIP
+PA	CHESTER TWP
+PA	CHESTNUT RDG
+PA	CHESTNUT RIDGE
+PA	CHEST SPRINGS
+PA	CHESWICK
+PA	CHEYNEY
+PA	CHICORA
+PA	CHILDS
+PA	CHINCHILLA
+PA	CHRISTIANA
+PA	CHURCHVILLE
+PA	CLAIRTON
+PA	CLARENCE
+PA	CLARENDON
+PA	CLARIDGE
+PA	CLARINGTON
+PA	CLARION
+PA	CLARK
+PA	CLARKSBURG
+PA	CLARKS GREEN
+PA	CLARKS MILLS
+PA	CLARKS SUMMIT
+PA	CLARKSVILLE
+PA	CLAYSBURG
+PA	CLAYSVILLE
+PA	CLEARFIELD
+PA	CLEARVILLE
+PA	CLEONA
+PA	CLIFFORD
+PA	CLIFTON
+PA	CLIFTON HEIGHTS
+PA	CLIFTON HTS
+PA	CLIMAX
+PA	CLINTON
+PA	CLINTONVILLE
+PA	CLUNE
+PA	CLYMER
+PA	COAL CENTER
+PA	COALDALE
+PA	COALPORT
+PA	COAL TOWNSHIP
+PA	COATESVILLE
+PA	COBBS LAKE PRESERVE
+PA	COBBS LK PRES
+PA	COBURN
+PA	COCHRANTON
+PA	COCHRANVILLE
+PA	COCOLAMUS
+PA	CODORUS
+PA	COGAN STATION
+PA	COKEBURG
+PA	COLEBROOK
+PA	COLLEGE HILL
+PA	COLLEGEVILLE
+PA	COLLINGDALE
+PA	COLLOMSVILLE
+PA	COLMAR
+PA	COLUMBIA
+PA	COLUMBIA CROSS ROADS
+PA	COLUMBIA X RD
+PA	COLUMBUS
+PA	COLVER
+PA	COMMODORE
+PA	CONCORD
+PA	CONCORDVILLE
+PA	CONEMAUGH
+PA	CONESTOGA
+PA	CONFLUENCE
+PA	CONNEAUT LAKE
+PA	CONNEAUTVILLE
+PA	CONNELLSVILLE
+PA	CONNOQUENESSING
+PA	CONNOQUNSG
+PA	CONSHOHOCKEN
+PA	CONWAY
+PA	CONYNGHAM
+PA	COOKSBURG
+PA	COOLSPRING
+PA	COOPERSBURG
+PA	COOPERSTOWN
+PA	COPLAY
+PA	CORAL
+PA	CORAOPOLIS
+PA	CORLISS
+PA	CORNWALL
+PA	CORNWELLS HEIGHTS
+PA	CORNWELLS HTS
+PA	CORRY
+PA	CORSICA
+PA	COUDERSPORT
+PA	COULTERS
+PA	COUPON
+PA	COURTDALE
+PA	COVINGTON
+PA	COWANESQUE
+PA	COWANSVILLE
+PA	CRABTREE
+PA	CRAFTON
+PA	CRAIGSVILLE
+PA	CRALEY
+PA	CRANBERRY
+PA	CRANBERRY TOWNSHIP
+PA	CRANBERRY TWP
+PA	CRANESVILLE
+PA	CREAMERY
+PA	CREEKSIDE
+PA	CREIGHTON
+PA	CRESCENT
+PA	CRESCO
+PA	CRESSON
+PA	CRESSONA
+PA	CROSBY
+PA	CROSS FORK
+PA	CROSSINGVILLE
+PA	CROWN
+PA	CROYDON
+PA	CRUCIBLE
+PA	CRUM LYNNE
+PA	CRYSTAL SPG
+PA	CRYSTAL SPRING
+PA	CUDDY
+PA	CUMBOLA
+PA	CURLLSVILLE
+PA	CURRYVILLE
+PA	CURTISVILLE
+PA	CURWENSVILLE
+PA	CUSTER CITY
+PA	CYCLONE
+PA	DAGUS MINES
+PA	DAISYTOWN
+PA	DALLAS
+PA	DALLASTOWN
+PA	DALMATIA
+PA	DALTON
+PA	DAMASCUS
+PA	DANBORO
+PA	DANIELSVILLE
+PA	DANVILLE
+PA	DARBY
+PA	DARLINGTON
+PA	DARRAGH
+PA	DAUBERVILLE
+PA	DAUPHIN
+PA	DAVIDSVILLE
+PA	DAVISTOWN
+PA	DAWSON
+PA	DAYTON
+PA	DEFIANCE
+PA	DE LANCEY
+PA	DELANO
+PA	DELAWARE WATER GAP
+PA	DELMONT
+PA	DELTA
+PA	DENBO
+PA	DENVER
+PA	DERRICK CITY
+PA	DERRY
+PA	DEVAULT
+PA	DEVON
+PA	DEWART
+PA	DE WATER GAP
+PA	DE YOUNG
+PA	DICKERSON RUN
+PA	DICKSON CITY
+PA	DICKSON CTY
+PA	DILLINER
+PA	DILLSBURG
+PA	DILLTOWN
+PA	DIMOCK
+PA	DINGMANS FERRY
+PA	DINGMANS FRY
+PA	DISTANT
+PA	DIXONVILLE
+PA	DONALDSON
+PA	DONEGAL
+PA	DONORA
+PA	DORNSIFE
+PA	DOUGLASSVILLE
+PA	DOVER
+PA	DOWNINGTOWN
+PA	DOYLESBURG
+PA	DOYLESTOWN
+PA	DRAVOSBURG
+PA	DRESHER
+PA	DREXEL HILL
+PA	DRIFTING
+PA	DRIFTON
+PA	DRIFTWOOD
+PA	DRUMORE
+PA	DRUMS
+PA	DRY RUN
+PA	DUBLIN
+PA	DUBOIS
+PA	DU BOIS
+PA	DUBOISTOWN
+PA	DUDLEY
+PA	DUKE CENTER
+PA	DUNBAR
+PA	DUNCANNON
+PA	DUNCANSVILLE
+PA	DUNLEVY
+PA	DUNLO
+PA	DUNMORE
+PA	DUPONT
+PA	DUQUESNE
+PA	DURHAM
+PA	DURYEA
+PA	DUSHORE
+PA	DYSART
+PA	EAGLES MERE
+PA	EAGLEVILLE
+PA	EARLINGTON
+PA	EARLVILLE
+PA	EAST BANGOR
+PA	EAST BERLIN
+PA	EAST BRADY
+PA	EAST BUTLER
+PA	EAST EARL
+PA	EAST FALLOWFIELD TOWNSHIP
+PA	EAST FREEDOM
+PA	EAST GREENVILLE
+PA	EAST HICKORY
+PA	EAST LANCASTER
+PA	EAST LANSDOWNE
+PA	EAST LIBERTY
+PA	EAST MC KEESPORT
+PA	EAST MILLSBORO
+PA	EAST NORRITON
+PA	EASTON
+PA	EAST PETERSBURG
+PA	EAST PITTSBURGH
+PA	EAST PROSPECT
+PA	EAST SMETHPORT
+PA	EAST SMITHFIELD
+PA	EAST SPRINGFIELD
+PA	EAST STROUDSBURG
+PA	EAST TEXAS
+PA	EAST VANDERGRIFT
+PA	EAST WATERFORD
+PA	EAST YORK
+PA	EAU CLAIRE
+PA	EBENSBURG
+PA	EBERVALE
+PA	EDDINGTON
+PA	EDDYSTONE
+PA	EDGELY
+PA	EDGEMONT
+PA	EDGEWORTH
+PA	EDINBORO
+PA	EDINBURG
+PA	EDMON
+PA	EDWARDSVILLE
+PA	E FALLOWFIELD
+PA	EFFORT
+PA	E GREENVILLE
+PA	EIGHTY FOUR
+PA	E LANCASTER
+PA	E LANSDOWNE
+PA	ELCO
+PA	ELDERSVILLE
+PA	ELDERTON
+PA	ELDRED
+PA	ELGIN
+PA	ELIZABETH
+PA	ELIZABETHTOWN
+PA	ELIZABETHVILLE
+PA	ELIZABETHVLE
+PA	ELKINS PARK
+PA	ELKLAND
+PA	ELLIOTTSBURG
+PA	ELLPORT
+PA	ELLSWORTH
+PA	ELLWOOD CITY
+PA	ELM
+PA	ELMHURST
+PA	ELMORA
+PA	ELRAMA
+PA	ELTON
+PA	ELVERSON
+PA	ELWYN
+PA	ELYSBURG
+PA	E MCKEESPORT
+PA	EMEIGH
+PA	EMERALD
+PA	EMIGSVILLE
+PA	E MILLSBORO
+PA	EMLENTON
+PA	EMMAUS
+PA	EMPORIUM
+PA	EMSWORTH
+PA	ENDEAVOR
+PA	ENOLA
+PA	ENON VALLEY
+PA	ENTRIKEN
+PA	E PETERSBURG
+PA	EPHRATA
+PA	E PITTSBURGH
+PA	EQUINUNK
+PA	ERDENHEIM
+PA	ERIE
+PA	ERNEST
+PA	ERWINNA
+PA	E SMETHPORT
+PA	E SMITHFIELD
+PA	E SPRINGFIELD
+PA	ESPYVILLE
+PA	ESSINGTON
+PA	E STROUDSBURG
+PA	ETNA
+PA	ETTERS
+PA	E VANDERGRIFT
+PA	EVANS CITY
+PA	EVANSVILLE
+PA	EVERETT
+PA	EVERSON
+PA	E WATERFORD
+PA	EXCELSIOR
+PA	EXETER
+PA	EXPORT
+PA	EXTON
+PA	EYNON
+PA	FACTORYVILLE
+PA	FAIRBANK
+PA	FAIRCHANCE
+PA	FAIRFIELD
+PA	FAIRHOPE
+PA	FAIRLESS HILLS
+PA	FAIRLESS HLS
+PA	FAIRMOUNT CITY
+PA	FAIRMOUNT CTY
+PA	FAIROAKS
+PA	FAIRVIEW
+PA	FAIRVIEW VILLAGE
+PA	FAIRVIEW VLG
+PA	FALLENTIMBER
+PA	FALLS
+PA	FALLS CREEK
+PA	FALLSINGTON
+PA	FANNETTSBURG
+PA	FARMINGTON
+PA	FARRANDSVILLE
+PA	FARRELL
+PA	FAWN GROVE
+PA	FAYETTE CITY
+PA	FAYETTEVILLE
+PA	FEASTERVILLE TREVOSE
+PA	FELTON
+PA	FENELTON
+PA	FERNDALE
+PA	FERN GLEN
+PA	FINLEYVILLE
+PA	FISHER
+PA	FISHERTOWN
+PA	FLEETVILLE
+PA	FLEETWOOD
+PA	FLEMING
+PA	FLEMINGTON
+PA	FLICKSVILLE
+PA	FLINTON
+PA	FLOREFFE
+PA	FLORIN
+PA	FLOURTOWN
+PA	FOGELSVILLE
+PA	FOLCROFT
+PA	FOLSOM
+PA	FOMBELL
+PA	FORBES ROAD
+PA	FORCE
+PA	FORD CITY
+PA	FORD CLIFF
+PA	FOREST CITY
+PA	FOREST GROVE
+PA	FORESTVILLE
+PA	FORKS TOWNSHIP
+PA	FORKS TWP
+PA	FORKSVILLE
+PA	FORT HILL
+PA	FORT LITTLETN
+PA	FORT LITTLETON
+PA	FORT LOUDON
+PA	FORT WASHINGTON
+PA	FORTY FORT
+PA	FOUNTAIN HILL
+PA	FOUNTAINVILLE
+PA	FOXBURG
+PA	FOXCROFT SQ
+PA	FOXCROFT SQUARE
+PA	FRACKVILLE
+PA	FRANCONIA
+PA	FRANKLIN
+PA	FRANKLIN CENTER
+PA	FRANKLIN CTR
+PA	FRANKLINTOWN
+PA	FRAZER
+PA	FREDERICK
+PA	FREDERICKSBRG
+PA	FREDERICKSBURG
+PA	FREDERICKTOWN
+PA	FREDONIA
+PA	FREEBURG
+PA	FREEDOM
+PA	FREELAND
+PA	FREEMANSBURG
+PA	FREEPORT
+PA	FRENCHVILLE
+PA	FRIEDENS
+PA	FRIEDENSBURG
+PA	FRIENDSVILLE
+PA	FROSTBURG
+PA	FRYBURG
+PA	FSTRVL TRVOSE
+PA	FT WASHINGTON
+PA	FURLONG
+PA	GAINES
+PA	GALETON
+PA	GALILEE
+PA	GALLITZIN
+PA	GANISTER
+PA	GANS
+PA	GAP
+PA	GARARDS FORT
+PA	GARDEN CITY
+PA	GARDENVILLE
+PA	GARDNERS
+PA	GARLAND
+PA	GARNET VALLEY
+PA	GARRETT
+PA	GASTONVILLE
+PA	GEIGERTOWN
+PA	GENESEE
+PA	GEORGE SCHOOL
+PA	GEORGETOWN
+PA	GERMANSVILLE
+PA	GETTYSBURG
+PA	GIBBON GLADE
+PA	GIBSON
+PA	GIBSONIA
+PA	GIFFORD
+PA	GILBERT
+PA	GILBERTON
+PA	GILBERTSVILLE
+PA	GILLETT
+PA	GINTER
+PA	GIPSY
+PA	GIRARD
+PA	GIRARDVILLE
+PA	GLADWYNE
+PA	GLASGOW
+PA	GLASSPORT
+PA	GLEN CAMPBELL
+PA	GLENCOE
+PA	GLENDON
+PA	GLEN HOPE
+PA	GLEN LYON
+PA	GLEN MILLS
+PA	GLENMOORE
+PA	GLENOLDEN
+PA	GLEN RDL LIMA
+PA	GLEN RICHEY
+PA	GLEN RIDDLE
+PA	GLEN RIDDLE LIMA
+PA	GLEN ROCK
+PA	GLENSHAW
+PA	GLENSIDE
+PA	GLENVILLE
+PA	GLENWILLARD
+PA	GOOD SPRING
+PA	GOODVILLE
+PA	GORDON
+PA	GORDONVILLE
+PA	GOULDSBORO
+PA	GOWEN CITY
+PA	GRACETON
+PA	GRADYVILLE
+PA	GRAMPIAN
+PA	GRAND VALLEY
+PA	GRANTHAM
+PA	GRANTVILLE
+PA	GRANVILLE
+PA	GRANVILLE SMT
+PA	GRANVILLE SUMMIT
+PA	GRAPEVILLE
+PA	GRASSFLAT
+PA	GRATZ
+PA	GRAY
+PA	GRAYSVILLE
+PA	GREAT BEND
+PA	GREELEY
+PA	GREENCASTLE
+PA	GREENFIELD TOWNSHIP
+PA	GREENFILD TWP
+PA	GREEN LANE
+PA	GREENOCK
+PA	GREEN PARK
+PA	GREENSBORO
+PA	GREENSBURG
+PA	GREENSTONE
+PA	GREENTOWN
+PA	GREENTREE
+PA	GREENVILLE
+PA	GRINDSTONE
+PA	GROVE CITY
+PA	GROVER
+PA	GULPH MILLS
+PA	GUYS MILLS
+PA	GWYNEDD
+PA	GWYNEDD VALLEY
+PA	GWYNEDD VLY
+PA	HADLEY
+PA	HALIFAX
+PA	HALLAM
+PA	HALLSTEAD
+PA	HALLTON
+PA	HAMBURG
+PA	HAMILTON
+PA	HAMLIN
+PA	HAMPDEN TOWNSHIP
+PA	HAMPDEN TWP
+PA	HANNASTOWN
+PA	HANOVER
+PA	HANOVER TOWNSHIP
+PA	HANOVER TWP
+PA	HARBORCREEK
+PA	HARFORD
+PA	HARLEIGH
+PA	HARLEYSVILLE
+PA	HARMONSBURG
+PA	HARMONY
+PA	HARRISBURG
+PA	HARRISON CITY
+PA	HARRISON VALLEY
+PA	HARRISONVILLE
+PA	HARRISON VLY
+PA	HARRISVILLE
+PA	HARTLETON
+PA	HARTSTOWN
+PA	HARTSVILLE
+PA	HARVEYS LAKE
+PA	HARWICK
+PA	HASTINGS
+PA	HATBORO
+PA	HATFIELD
+PA	HAVERFORD
+PA	HAVERTOWN
+PA	HAWK RUN
+PA	HAWLEY
+PA	HAWTHORN
+PA	HAZEL HURST
+PA	HAZELWOOD
+PA	HAZEN
+PA	HAZLETON
+PA	HAZLE TOWNSHIP
+PA	HAZLE TOWNSHP
+PA	HEGINS
+PA	HEIDELBERG
+PA	HEILWOOD
+PA	HELFENSTEIN
+PA	HELLAM
+PA	HELLERTOWN
+PA	HENDERSONVILLE
+PA	HENDERSONVLLE
+PA	HENRYVILLE
+PA	HEREFORD
+PA	HERMAN
+PA	HERMINIE
+PA	HERMITAGE
+PA	HERNDON
+PA	HERRICK CENTER
+PA	HERRICK CTR
+PA	HERSHEY
+PA	HESSTON
+PA	HIBBS
+PA	HICKORY
+PA	HIDDEN VALLEY
+PA	HIGHSPIRE
+PA	HILLDALE
+PA	HILLER
+PA	HILLIARDS
+PA	HILLSDALE
+PA	HILLSGROVE
+PA	HILLSVILLE
+PA	HILLTOWN
+PA	HOKENDAUQUA
+PA	HOLBROOK
+PA	HOLICONG
+PA	HOLLAND
+PA	HOLLIDAYSBURG
+PA	HOLLSOPPLE
+PA	HOLLYWOOD
+PA	HOLMES
+PA	HOLTWOOD
+PA	HOME
+PA	HOMER CITY
+PA	HOMESTEAD
+PA	HOMEWOOD
+PA	HONESDALE
+PA	HONEY BROOK
+PA	HONEY GROVE
+PA	HOOKSTOWN
+PA	HOOVERSVILLE
+PA	HOP BOTTOM
+PA	HOPELAND
+PA	HOPEWELL
+PA	HOPWOOD
+PA	HORSHAM
+PA	HOSTETTER
+PA	HOUSTON
+PA	HOUTZDALE
+PA	HOWARD
+PA	HUBLERSBURG
+PA	HUDSON
+PA	HUEY
+PA	HUGHESTOWN
+PA	HUGHESVILLE
+PA	HULMEVILLE
+PA	HUMMELSTOWN
+PA	HUMMELS WHARF
+PA	HUNKER
+PA	HUNLOCK CREEK
+PA	HUNTINGDON
+PA	HUNTINGDON VALLEY
+PA	HUNTINGDON VY
+PA	HUNTINGTON MILLS
+PA	HUNTINGTON ML
+PA	HUSTONTOWN
+PA	HUTCHINSON
+PA	HYDE
+PA	HYDE PARK
+PA	HYDETOWN
+PA	HYNDMAN
+PA	HYNER
+PA	ICKESBURG
+PA	IDAVILLE
+PA	IMLER
+PA	IMMACULATA
+PA	IMPERIAL
+PA	INDIANA
+PA	INDIAN HEAD
+PA	INDIANOLA
+PA	INDUSTRY
+PA	INGOMAR
+PA	INKERMAN
+PA	INTERCOURSE
+PA	IRVINE
+PA	IRVONA
+PA	IRWIN
+PA	ISABELLA
+PA	IVYLAND
+PA	JACKSON
+PA	JACKSON CENTER
+PA	JACKSON CTR
+PA	JACKSON TOWNSHIP
+PA	JACKSON TWP
+PA	JACOBS CREEK
+PA	JACOBUS
+PA	JAMES CITY
+PA	JAMES CREEK
+PA	JAMESTOWN
+PA	JAMISON
+PA	JEANNETTE
+PA	JEFFERSON
+PA	JEFFERSON HILLS
+PA	JEFFERSON HLS
+PA	JEFFERSONVILLE
+PA	JEFFERSONVLLE
+PA	JENKINS TOWNSHIP
+PA	JENKINS TWP
+PA	JENKINTOWN
+PA	JENNERS
+PA	JENNERSTOWN
+PA	JERMYN
+PA	JEROME
+PA	JERSEY MILLS
+PA	JERSEY SHORE
+PA	JESSUP
+PA	JIM THORPE
+PA	JOFFRE
+PA	JOHNSONBURG
+PA	JOHNSTOWN
+PA	JOLIETT
+PA	JONES MILLS
+PA	JONESTOWN
+PA	JOSEPHINE
+PA	JULIAN
+PA	JUNEAU
+PA	JUNEDALE
+PA	KANE
+PA	KANTNER
+PA	KARNS CITY
+PA	KARTHAUS
+PA	KASKA
+PA	KEISTERVILLE
+PA	KELAYRES
+PA	KELTON
+PA	KEMBLESVILLE
+PA	KEMPTON
+PA	KENNERDELL
+PA	KENNET SQ
+PA	KENNETT SQUARE
+PA	KENT
+PA	KERSEY
+PA	KILBUCK
+PA	KIMBERTON
+PA	KING OF PRUSSIA
+PA	KINGSLEY
+PA	KINGSTON
+PA	KINTNERSVILLE
+PA	KINZERS
+PA	KIRKWOOD
+PA	KITTANNING
+PA	KLEINFELTERSV
+PA	KLEINFELTERSVILLE
+PA	KLINGERSTOWN
+PA	KNG OF PRUSSA
+PA	KNOX
+PA	KNOX DALE
+PA	KNOXVILLE
+PA	KOPPEL
+PA	KORN KREST
+PA	KOSSUTH
+PA	KREAMER
+PA	KRESGEVILLE
+PA	KULPMONT
+PA	KULPSVILLE
+PA	KUNKLETOWN
+PA	KUTZTOWN
+PA	KYLERTOWN
+PA	LA BELLE
+PA	LACEYVILLE
+PA	LACKAWAXEN
+PA	LAFAYETTE HILL
+PA	LAFAYETTE HL
+PA	LAHASKA
+PA	LAIRDSVILLE
+PA	LA JOSE
+PA	LAKE ARIEL
+PA	LAKE CITY
+PA	LAKE COMO
+PA	LAKE HARMONY
+PA	LAKE LYNN
+PA	LAKEVILLE
+PA	LAKE WINOLA
+PA	LAKEWOOD
+PA	LAMAR
+PA	LAMARTINE
+PA	LAMBERTON
+PA	LAMOTT
+PA	LAMPETER
+PA	LANCASTER
+PA	LANDENBERG
+PA	LANDINGVILLE
+PA	LANDISBURG
+PA	LANDISVILLE
+PA	LANESBORO
+PA	LANGELOTH
+PA	LANGHORNE
+PA	LANSDALE
+PA	LANSDOWNE
+PA	LANSE
+PA	LANSFORD
+PA	LA PLUME
+PA	LAPORTE
+PA	LARGE
+PA	LARIMER
+PA	LARKSVILLE
+PA	LATROBE
+PA	LATTIMER MINES
+PA	LATTIMER MNES
+PA	LAUGHLINTOWN
+PA	LAURELDALE
+PA	LAUREL RUN
+PA	LAURELTON
+PA	LAURYS STA
+PA	LAURYS STATION
+PA	LAVELLE
+PA	LAVEROCK
+PA	LAWN
+PA	LAWRENCE
+PA	LAWRENCEVILLE
+PA	LAWTON
+PA	LAYTON
+PA	LEBANON
+PA	LECK KILL
+PA	LECKRONE
+PA	LECONTES MILLS
+PA	LECONTES MLS
+PA	LEDERACH
+PA	LEECHBURG
+PA	LEEPER
+PA	LEESPORT
+PA	LEETSDALE
+PA	LEHIGHTON
+PA	LEHIGH VALLEY
+PA	LEHMAN
+PA	LEISENRING
+PA	LEMASTERS
+PA	LEMONT
+PA	LEMONT FRNC
+PA	LEMONT FRNCE
+PA	LEMONT FURNACE
+PA	LEMOYNE
+PA	LENHARTSVILLE
+PA	LENNI
+PA	LENOXVILLE
+PA	LEOLA
+PA	LE RAYSVILLE
+PA	LEROY
+PA	LESTER
+PA	LEVITTOWN
+PA	LEWISBERRY
+PA	LEWISBURG
+PA	LEWIS RUN
+PA	LEWISTOWN
+PA	LEWISVILLE
+PA	LIBERTY
+PA	LIBRARY
+PA	LICKINGVILLE
+PA	LIGHTSTREET
+PA	LIGONIER
+PA	LILLY
+PA	LIMA
+PA	LIMEKILN
+PA	LIMEPORT
+PA	LIMERICK
+PA	LIMESTONE
+PA	LINCOLN UNIV
+PA	LINCOLN UNIVERSITY
+PA	LINDEN
+PA	LINE LEXINGTON
+PA	LINE LXNGTN
+PA	LINESVILLE
+PA	LINFIELD
+PA	LINGLESTOWN
+PA	LINWOOD
+PA	LIONVILLE
+PA	LISTIE
+PA	LISTONBURG
+PA	LITITZ
+PA	LITTLE MARSH
+PA	LITTLE MDWS
+PA	LITTLE MEADOWS
+PA	LITTLESTOWN
+PA	LIVERPOOL
+PA	LLEWELLYN
+PA	LOCK HAVEN
+PA	LOCUSTDALE
+PA	LOCUST GAP
+PA	LOGANTON
+PA	LOGANVILLE
+PA	LONG POND
+PA	LOPEZ
+PA	LORDS VALLEY
+PA	LORETTO
+PA	LOST CREEK
+PA	LOWBER
+PA	LOWER BURRELL
+PA	LOWER GWYNEDD
+PA	LOWER PAXTON
+PA	LOWER SHAFT
+PA	LOYALHANNA
+PA	LOYSBURG
+PA	LOYSVILLE
+PA	LUCERNEMINES
+PA	LUCINDA
+PA	LUDLOW
+PA	LUMBERVILLE
+PA	LUNDYS LANE
+PA	LURGAN
+PA	LUTHERSBURG
+PA	LUXOR
+PA	LUZERNE
+PA	LYKENS
+PA	LYNDELL
+PA	LYNDORA
+PA	LYON STATION
+PA	MACARTHUR
+PA	MACKEYVILLE
+PA	MACUNGIE
+PA	MADERA
+PA	MADISON
+PA	MADISONBURG
+PA	MADISON TOWNSHIP
+PA	MADISON TWP
+PA	MAHAFFEY
+PA	MAHANOY CITY
+PA	MAHANOY PLANE
+PA	MAINESBURG
+PA	MAINLAND
+PA	MALVERN
+PA	MAMMOTH
+PA	MANAYUNK
+PA	MANCHESTER
+PA	MANHEIM
+PA	MANNS CHOICE
+PA	MANOA
+PA	MANOR
+PA	MANORVILLE
+PA	MANSFIELD
+PA	MAPLE GLEN
+PA	MAPLETON DEP
+PA	MAPLETON DEPOT
+PA	MARBLE
+PA	MARCHAND
+PA	MARCUS HOOK
+PA	MARIANNA
+PA	MARIENVILLE
+PA	MARIETTA
+PA	MARION
+PA	MARION CENTER
+PA	MARION HEIGHT
+PA	MARION HEIGHTS
+PA	MARKLETON
+PA	MARKLEYSBURG
+PA	MAR LIN
+PA	MARS
+PA	MARSHALLS CREEK
+PA	MARSHALLS CRK
+PA	MARSTELLER
+PA	MARTIN
+PA	MARTINDALE
+PA	MARTINSBURG
+PA	MARTINS CREEK
+PA	MARWOOD
+PA	MARY D
+PA	MARYSVILLE
+PA	MASONTOWN
+PA	MATAMORAS
+PA	MATHER
+PA	MATTAWANA
+PA	MAXATAWNY
+PA	MAYFIELD
+PA	MAYPORT
+PA	MAYTOWN
+PA	MCADOO
+PA	MC ALISTERVILLE
+PA	MC ALISTERVLE
+PA	MC CLELLANDTOWN
+PA	MCCLELLANDTWN
+PA	MC CLURE
+PA	MC CONELSTOWN
+PA	MC CONNELLSBG
+PA	MC CONNELLSBURG
+PA	MC CONNELLSTOWN
+PA	MC DONALD
+PA	MC ELHATTAN
+PA	MC EWENSVILLE
+PA	MCGEES MILLS
+PA	MC GRANN
+PA	MC INTYRE
+PA	MCKEAN
+PA	MC KEAN
+PA	MCKEESPORT
+PA	MC KEES ROCKS
+PA	MCKNIGHT
+PA	MC KNIGHT
+PA	MCKNIGHTSTOWN
+PA	MC KNIGHTSTOWN
+PA	MCMURRAY
+PA	MC MURRAY
+PA	MCSHERRYSTOWN
+PA	MC SHERRYSTOWN
+PA	MC VEYTOWN
+PA	MEADOWBROOK
+PA	MEADOW LANDS
+PA	MEADVILLE
+PA	MECHANICSBURG
+PA	MECHANICSVILLE
+PA	MECHANICSVLLE
+PA	MEDIA
+PA	MEHOOPANY
+PA	MELCROFT
+PA	MELROSE
+PA	MELROSE PARK
+PA	MENDENHALL
+PA	MENGES MILLS
+PA	MENTCLE
+PA	MERCER
+PA	MERCERSBURG
+PA	MERIDIAN
+PA	MERION STA
+PA	MERION STATION
+PA	MERRITTSTOWN
+PA	MERTZTOWN
+PA	MESHOPPEN
+PA	MESSIAH COLL
+PA	MESSIAH COLLEGE
+PA	MEXICO
+PA	MEYERSDALE
+PA	MID CITY EAST
+PA	MID CITY WEST
+PA	MIDDLEBRY CTR
+PA	MIDDLEBURG
+PA	MIDDLEBURY CENTER
+PA	MIDDLE CITY EAST
+PA	MIDDLE CITY WEST
+PA	MIDDLE CREEK
+PA	MIDDLEPORT
+PA	MIDDLETOWN
+PA	MIDLAND
+PA	MIDWAY
+PA	MIFFLIN
+PA	MIFFLINBURG
+PA	MIFFLINTOWN
+PA	MIFFLINVILLE
+PA	MILAN
+PA	MILANVILLE
+PA	MILDRED
+PA	MILESBURG
+PA	MILFORD
+PA	MILFORD SQ
+PA	MILFORD SQUARE
+PA	MILL CREEK
+PA	MILLERSBURG
+PA	MILLERSTOWN
+PA	MILLERSVILLE
+PA	MILLERTON
+PA	MILL HALL
+PA	MILLHEIM
+PA	MILLMONT
+PA	MILLRIFT
+PA	MILL RUN
+PA	MILLS
+PA	MILLSBORO
+PA	MILLVALE
+PA	MILL VILLAGE
+PA	MILLVILLE
+PA	MILMONT PARK
+PA	MILNESVILLE
+PA	MILROY
+PA	MILTON
+PA	MINERAL POINT
+PA	MINERAL SPGS
+PA	MINERAL SPRINGS
+PA	MINERS MILL
+PA	MINERSVILLE
+PA	MINGOVILLE
+PA	MINISINK HILLS
+PA	MINISINK HLS
+PA	MIQUON
+PA	MOCANAQUA
+PA	MODENA
+PA	MOHNTON
+PA	MOHRSVILLE
+PA	MONACA
+PA	MONESSEN
+PA	MONOCACY STA
+PA	MONOCACY STATION
+PA	MONONGAHELA
+PA	MONROETON
+PA	MONROE TOWNSHIP
+PA	MONROE TWP
+PA	MONROEVILLE
+PA	MONT ALTO
+PA	MONTANDON
+PA	MONT CLARE
+PA	MONTGOMERY
+PA	MONTGOMERYVILLE
+PA	MONTGOMERYVLE
+PA	MONTOUR
+PA	MONTOURSVILLE
+PA	MONTROSE
+PA	MOON TOWNSHIP
+PA	MOON TWP
+PA	MOOSIC
+PA	MORANN
+PA	MOREA
+PA	MORGAN
+PA	MORGANTOWN
+PA	MORRIS
+PA	MORRISDALE
+PA	MORRIS RUN
+PA	MORRISVILLE
+PA	MORTON
+PA	MOSCOW
+PA	MOSHANNON
+PA	MOUNT AETNA
+PA	MOUNTAINHOME
+PA	MOUNTAIN TOP
+PA	MOUNT BETHEL
+PA	MOUNT BRADDOCK
+PA	MOUNT CARMEL
+PA	MOUNT COBB
+PA	MOUNT GRETNA
+PA	MOUNT HOLLY SPRINGS
+PA	MOUNT JEWETT
+PA	MOUNT JOY
+PA	MOUNT LEBANON
+PA	MOUNT MORRIS
+PA	MOUNT OLIVER
+PA	MOUNT PENN
+PA	MOUNT PLEASANT
+PA	MOUNT PLEASANT MILLS
+PA	MOUNT POCONO
+PA	MOUNT UNION
+PA	MOUNTVILLE
+PA	MOUNT WASHINGTON
+PA	MOUNT WOLF
+PA	MOYLAN
+PA	MT BRADDOCK
+PA	MT HOLLY SPGS
+PA	MT LEBANON
+PA	MT MORRIS
+PA	MT OLIVER
+PA	MT PLEASANT
+PA	MT PLEASANT M
+PA	MT PLEASANT MILLS
+PA	MT WASHINGTON
+PA	MUIR
+PA	MUNCY
+PA	MUNCY VALLEY
+PA	MUNHALL
+PA	MUNSON
+PA	MURRYSVILLE
+PA	MUSE
+PA	MYERSTOWN
+PA	NANTICOKE
+PA	NANTY GLO
+PA	NARBERTH
+PA	NARVON
+PA	NATRONA HEIGHTS
+PA	NATRONA HTS
+PA	NAZARETH
+PA	N BELLE VERNON
+PA	N BELLE VRN
+PA	N BELL VERNON
+PA	N CAMBRIA
+PA	N CHARLEROI
+PA	NEEDMORE
+PA	NEELYTON
+PA	NEFFS
+PA	NEFFSVILLE
+PA	NELSON
+PA	NEMACOLIN
+PA	NESCOPECK
+PA	NESHANNOCK
+PA	NESQUEHONING
+PA	NEVILLE IS
+PA	NEVILLE ISLAND
+PA	NEW ALBANY
+PA	NEW ALEXANDRI
+PA	NEW ALEXANDRIA
+PA	NEW BALTIMORE
+PA	NEW BEDFORD
+PA	NEW BERLIN
+PA	NEW BERLINVILLE
+PA	NEW BERLINVLE
+PA	NEW BETHLEHEM
+PA	NEW BLOOMFIELD
+PA	NEW BLOOMFLD
+PA	NEW BOSTON
+PA	NEW BRIGHTON
+PA	NEW BRITAIN
+PA	NEW BUFFALO
+PA	NEWBURG
+PA	NEW CASTLE
+PA	NEW COLUMBIA
+PA	NEW CUMBERLAND
+PA	NEW CUMBERLND
+PA	NEW DERRY
+PA	NEW EAGLE
+PA	NEWELL
+PA	NEW ENTERPRISE
+PA	NEW ENTRPRISE
+PA	NEW FLORENCE
+PA	NEWFOUNDLAND
+PA	NEW FREEDOM
+PA	NEW FREEPORT
+PA	NEW GALILEE
+PA	NEW GENEVA
+PA	NEW GERMANTON
+PA	NEW GERMANTOWN
+PA	NEW HOLLAND
+PA	NEW HOPE
+PA	NEW KENSINGTN
+PA	NEW KENSINGTON
+PA	NEW KINGSTOWN
+PA	NEW LONDN TWP
+PA	NEW LONDON
+PA	NEW LONDON TOWNSHIP
+PA	NEWLONDON TWP
+PA	NEWMANSTOWN
+PA	NEW MILFORD
+PA	NEW MILLPORT
+PA	NEW OXFORD
+PA	NEW PARIS
+PA	NEW PARK
+PA	NEW PHILA
+PA	NEW PHILADELPHIA
+PA	NEWPORT
+PA	NEWPORTVILLE
+PA	NEW PROVIDENCE
+PA	NEW PROVIDNCE
+PA	NEW RINGGOLD
+PA	NEWRY
+PA	NEW SALEM
+PA	NEW STANTON
+PA	NEWTON HAMILTON
+PA	NEWTON HAMLTN
+PA	NEWTOWN
+PA	NEWTOWN SQ
+PA	NEWTOWN SQUARE
+PA	NEW TRIPOLI
+PA	NEWVILLE
+PA	NEW WILMINGTON
+PA	NEW WILMNGTN
+PA	N HUNTINGDON
+PA	NICHOLSON
+PA	NICKTOWN
+PA	NINEPOINTS
+PA	NINEVEH
+PA	NISBET
+PA	N LEECHBURG
+PA	NOBLESTOWN
+PA	NO HUNTINGDON
+PA	NORMALVILLE
+PA	NORRISTOWN
+PA	NORTHAMPTON
+PA	NORTH APOLLO
+PA	NORTH BELLE VERNON
+PA	NORTH BEND
+PA	NORTH BINGHAM
+PA	NORTH CHARLEROI
+PA	NORTH EAST
+PA	NORTHERN CAMBRIA
+PA	NORTH HUNTINGDON
+PA	NORTH IRWIN
+PA	NORTH LEECHBURG
+PA	NORTHPOINT
+PA	NORTH SPRINGFIELD
+PA	NORTHUMBERLAND
+PA	NORTHUMBERLND
+PA	NORTH VERSAILLES
+PA	NORTH WALES
+PA	NORTH WARREN
+PA	NORTH WASHINGTON
+PA	NORVELT
+PA	NORWOOD
+PA	NOTTINGHAM
+PA	NOXEN
+PA	N SPRINGFIELD
+PA	NUANGOLA
+PA	NUMIDIA
+PA	NU MINE
+PA	NUREMBERG
+PA	N VERSAILLES
+PA	N WASHINGTON
+PA	OAKDALE
+PA	OAKFORD
+PA	OAKLAND
+PA	OAKLAND MILLS
+PA	OAKMONT
+PA	OAK RIDGE
+PA	OAKS
+PA	OBERLIN
+PA	OBSERVATORY
+PA	OGDEN
+PA	OGONTZ CAMPUS
+PA	OHIOPYLE
+PA	OIL CITY
+PA	OLANTA
+PA	OLD FORGE
+PA	OLD ZIONSVILLE
+PA	OLD ZIONSVLLE
+PA	OLEY
+PA	OLIVEBURG
+PA	OLIVER
+PA	OLYPHANT
+PA	ONEIDA
+PA	ONO
+PA	ORANGEVILLE
+PA	ORBISONIA
+PA	OREFIELD
+PA	ORELAND
+PA	ORMSBY
+PA	ORRSTOWN
+PA	ORRTANNA
+PA	ORSON
+PA	ORVISTON
+PA	ORWIGSBURG
+PA	OSCEOLA
+PA	OSCEOLA MILLS
+PA	OSTERBURG
+PA	OSWAYO
+PA	OTTSVILLE
+PA	OVERBROOK HILLS
+PA	OVERBROOK HLS
+PA	OXFORD
+PA	PA FURNACE
+PA	PALM
+PA	PALMER
+PA	PALMERTON
+PA	PALMER TOWNSHIP
+PA	PALMER TWP
+PA	PALMYRA
+PA	PAOLI
+PA	PARADISE
+PA	PARADISE VALLEY
+PA	PARADISE VLY
+PA	PARDEESVILLE
+PA	PARIS
+PA	PARK
+PA	PARKER
+PA	PARKER FORD
+PA	PARKESBURG
+PA	PARKHILL
+PA	PARNASSUS
+PA	PARRYVILLE
+PA	PARSONS
+PA	PATTERSON HEIGHTS
+PA	PATTERSON HTS
+PA	PATTON
+PA	PAUPACK
+PA	PAXINOS
+PA	PAXTONIA
+PA	PAXTONVILLE
+PA	PEACH BOTTOM
+PA	PEACH GLEN
+PA	PECKVILLE
+PA	PEN ARGYL
+PA	PENBROOK
+PA	PENFIELD
+PA	PENLLYN
+PA	PENN
+PA	PENNDEL
+PA	PENN HILLS
+PA	PENN RUN
+PA	PENNSBURG
+PA	PENNS CREEK
+PA	PENNSDALE
+PA	PENNS PARK
+PA	PENN STATE UNIVERSITY
+PA	PENN ST UNIV
+PA	PENNSYLVANIA FURNACE
+PA	PENN VALLEY
+PA	PENRYN
+PA	PEQUEA
+PA	PERKASIE
+PA	PERKIOMENVILLE
+PA	PERKIOMENVLLE
+PA	PERRYOPOLIS
+PA	PETERSBURG
+PA	PETROLIA
+PA	PGH INT ARPRT
+PA	PHILA
+PA	PHILADELPHIA
+PA	PHILIPSBURG
+PA	PHOENIXVILLE
+PA	PICTURE ROCKS
+PA	PILGRIM GARDENS
+PA	PILGRIM GDNS
+PA	PILLOW
+PA	PINE BANK
+PA	PINE FORGE
+PA	PINE GROVE
+PA	PINE GROVE MILLS
+PA	PINE GRV MLS
+PA	PINEVILLE
+PA	PIPERSVILLE
+PA	PITCAIRN
+PA	PITMAN
+PA	PITTSBURGH
+PA	PITTSFIELD
+PA	PITTSTON
+PA	PITTSTON TOWNSHIP
+PA	PITTSTON TWP
+PA	PLAINFIELD
+PA	PLAINS
+PA	PLAINS TOWNSHIP
+PA	PLAINS TWP
+PA	PLEASANT GAP
+PA	PLEASANT HALL
+PA	PLEASANT HILLS
+PA	PLEASANT HLS
+PA	PLEASANT MOUNT
+PA	PLEASANT MT
+PA	PLEASANT UNITY
+PA	PLEASANT UNTY
+PA	PLEASANTVILLE
+PA	PLUM
+PA	PLUMSTEADVILLE
+PA	PLUMSTEADVLLE
+PA	PLUMVILLE
+PA	PLYMOUTH
+PA	PLYMOUTH MEETING
+PA	PLYMOUTH MTNG
+PA	POCONO LAKE
+PA	POCONO LAKE PRESERVE
+PA	POCONO LK PRS
+PA	POCONO MANOR
+PA	POCONO PINES
+PA	POCONO SUMMIT
+PA	POCOPSON
+PA	POINT MARION
+PA	POINT PLEASANT
+PA	POLK
+PA	POMEROY
+PA	PORTAGE
+PA	PORT ALLEGANY
+PA	PORT CARBON
+PA	PORT CLINTON
+PA	PORTERS SIDELING
+PA	PORTERSVILLE
+PA	PORT GRIFFITH
+PA	PORTLAND
+PA	PORTLAND MILLS
+PA	PORTLAND MLS
+PA	PORT MATILDA
+PA	PORT ROYAL
+PA	PORTS SIDLING
+PA	PORT TREVORTN
+PA	PORT TREVORTON
+PA	POTTERSDALE
+PA	POTTS GROVE
+PA	POTTSTOWN
+PA	POTTSVILLE
+PA	POYNTELLE
+PA	PRESTO
+PA	PRESTON PARK
+PA	PRICEDALE
+PA	PRIMOS
+PA	PRIMOS SECANE
+PA	PRINGLE
+PA	PROMPTON
+PA	PROSPECT
+PA	PROSPECT PARK
+PA	PROSPERITY
+PA	PT PLEASANT
+PA	PULASKI
+PA	PUNXSUTAWNEY
+PA	PURITAN
+PA	QUAKAKE
+PA	QUAKERTOWN
+PA	QUARRYVILLE
+PA	QUECREEK
+PA	QUEEN
+PA	QUENTIN
+PA	QUINCY
+PA	RACINE
+PA	RADNOR
+PA	RAILROAD
+PA	RALSTON
+PA	RAMEY
+PA	RANKIN
+PA	RANSHAW
+PA	RANSOM
+PA	RAVINE
+PA	REA
+PA	READING
+PA	READING STA
+PA	READING STATION
+PA	REAMSTOWN
+PA	REBERSBURG
+PA	REBUCK
+PA	RECTOR
+PA	RED HILL
+PA	RED LION
+PA	REEDERS
+PA	REEDSVILLE
+PA	REFTON
+PA	REHRERSBURG
+PA	REINHOLDS
+PA	RENFREW
+PA	RENO
+PA	RENOVO
+PA	REPUBLIC
+PA	REVERE
+PA	REVLOC
+PA	REW
+PA	REXMONT
+PA	REYNOLDSVILLE
+PA	RHEEMS
+PA	RICES LANDING
+PA	RICEVILLE
+PA	RICHBORO
+PA	RICHEYVILLE
+PA	RICHFIELD
+PA	RICHLAND
+PA	RICHLANDTOWN
+PA	RICHMONDALE
+PA	RIDDLESBURG
+PA	RIDGWAY
+PA	RIDLEY PARK
+PA	RIEGELSVILLE
+PA	RILLTON
+PA	RIMERSBURG
+PA	RINGGOLD
+PA	RINGTOWN
+PA	RIVERSIDE
+PA	RIXFORD
+PA	ROARING BK TP
+PA	ROARING BRANCH
+PA	ROARING BRNCH
+PA	ROARING BROOK TWP
+PA	ROARING SPG
+PA	ROARING SPRING
+PA	ROBERTSDALE
+PA	ROBESONIA
+PA	ROBINSON
+PA	ROCHESTER
+PA	ROCHESTER MILLS
+PA	ROCHESTER MLS
+PA	ROCK GLEN
+PA	ROCKHILL FURN
+PA	ROCKHILL FURNACE
+PA	ROCKLEDGE
+PA	ROCKTON
+PA	ROCKWOOD
+PA	ROGERSVILLE
+PA	ROHRERSTOWN
+PA	ROMANSVILLE
+PA	ROME
+PA	RONCO
+PA	RONKS
+PA	ROSCOE
+PA	ROSETO
+PA	ROSE VALLEY
+PA	ROSLYN
+PA	ROSSITER
+PA	ROSSVILLE
+PA	ROULETTE
+PA	ROUSEVILLE
+PA	ROUZERVILLE
+PA	ROWLAND
+PA	ROXBURY
+PA	ROYERSFORD
+PA	RUFFS DALE
+PA	RURAL RIDGE
+PA	RURAL VALLEY
+PA	RUSHLAND
+PA	RUSHVILLE
+PA	RUSSELL
+PA	RUSSELLTON
+PA	RUTLEDGE
+PA	RYDAL
+PA	S ABINGTN TWP
+PA	S ABINGTON TWP
+PA	SABINSVILLE
+PA	SACRAMENTO
+PA	SADSBURYVILLE
+PA	SAEGERTOWN
+PA	SAGAMORE
+PA	SAINT BENEDICT
+PA	SAINT BONIFACE
+PA	SAINT CLAIR
+PA	SAINT CLAIRSV
+PA	SAINT CLAIRSVILLE
+PA	SAINT DAVIDS
+PA	SAINT JOHNS
+PA	SAINT MARYS
+PA	SAINT MICHAEL
+PA	SAINT PETERS
+PA	SAINT PETERSBURG
+PA	SAINT THOMAS
+PA	SALFORD
+PA	SALFORDVILLE
+PA	SALINA
+PA	SALISBURY
+PA	SALIX
+PA	SALLADASBURG
+PA	SALONA
+PA	SALTILLO
+PA	SALTSBURG
+PA	SALUNGA
+PA	SANATOGA
+PA	SANDY LAKE
+PA	SANDY RIDGE
+PA	SARVER
+PA	SASSAMANSVILLE
+PA	SASSAMANSVLLE
+PA	SAXONBURG
+PA	SAXTON
+PA	SAYLORSBURG
+PA	SAYRE
+PA	SCENERY HILL
+PA	SCHAEFFERSTOWN
+PA	SCHAEFFERSTWN
+PA	SCHELLSBURG
+PA	SCHENLEY
+PA	SCHNECKSVILLE
+PA	SCHUYKL HAVN
+PA	SCHUYLKILL HAVEN
+PA	SCHWENKSVILLE
+PA	SCIOTA
+PA	S CONNELLSVL
+PA	SCOTLAND
+PA	SCOTRUN
+PA	SCOTTDALE
+PA	SCRANTON
+PA	SEANOR
+PA	SECANE
+PA	SELINSGROVE
+PA	SELLERSVILLE
+PA	SELTZER
+PA	SEMINOLE
+PA	SENECA
+PA	SEVEN FIELDS
+PA	SEVEN VALLEYS
+PA	SEWARD
+PA	SEWICKLEY
+PA	SHADE GAP
+PA	SHADY GROVE
+PA	SHADYSIDE
+PA	SHAMOKIN
+PA	SHAMOKIN DAM
+PA	SHANKSVILLE
+PA	SHARON
+PA	SHARON HILL
+PA	SHARPSBURG
+PA	SHARPSVILLE
+PA	SHARTLESVILLE
+PA	SHAVERTOWN
+PA	SHAWANESE
+PA	SHAWNEE
+PA	SHAWNEE ON DE
+PA	SHAWNEE ON DELAWARE
+PA	SHAWVILLE
+PA	SHEAKLEYVILLE
+PA	SHEFFIELD
+PA	SHELOCTA
+PA	SHENANDOAH
+PA	SHENANGO
+PA	SHEPPTON
+PA	SHERMANS DALE
+PA	SHICKSHINNY
+PA	SHILLINGTON
+PA	SHINGLEHOUSE
+PA	SHIPPENSBURG
+PA	SHIPPENVILLE
+PA	SHIPPINGPORT
+PA	SHIREMANSTOWN
+PA	SHIRLEYSBURG
+PA	SHOEMAKERSVILLE
+PA	SHOEMAKERSVLE
+PA	SHOHOLA
+PA	SHREWSBURY
+PA	SHUNK
+PA	SIDMAN
+PA	SIGEL
+PA	SILVERDALE
+PA	SILVER SPRING
+PA	SIMPSON
+PA	SINKING SPG
+PA	SINKING SPRING
+PA	SINNAMAHONING
+PA	SIPESVILLE
+PA	SIX MILE RUN
+PA	SKIPPACK
+PA	SKYTOP
+PA	SLATEDALE
+PA	SLATE RUN
+PA	SLATINGTON
+PA	SLICKVILLE
+PA	SLIGO
+PA	SLIPPERY ROCK
+PA	SLOVAN
+PA	SMETHPORT
+PA	SMICKSBURG
+PA	SMITHFIELD
+PA	SMITHMILL
+PA	SMITHTON
+PA	SMOCK
+PA	SMOKERUN
+PA	SMOKETOWN
+PA	S MONTROSE
+PA	S MOUNTAIN
+PA	SNOW SHOE
+PA	SNYDERSBURG
+PA	SNYDERTOWN
+PA	SOLEBURY
+PA	SOMERSET
+PA	SONESTOWN
+PA	SOUDERSBURG
+PA	SOUDERTON
+PA	SOUTH ABINGTON TOWNSHIP
+PA	SOUTHAMPTON
+PA	SOUTH CANAAN
+PA	SOUTHEASTERN
+PA	SOUTH FORK
+PA	SOUTH GIBSON
+PA	SOUTH HEIGHTS
+PA	SOUTH HILLS
+PA	SOUTH MONTROSE
+PA	SOUTH MOUNTAIN
+PA	SOUTH PARK
+PA	SOUTH STERLING
+PA	SOUTHVIEW
+PA	SOUTH WAVERLY
+PA	SOUTHWEST
+PA	SOUTH WILLIAMSPORT
+PA	SPANGLER
+PA	SPARTANSBURG
+PA	SPINNERSTOWN
+PA	SPRAGGS
+PA	SPRANKLE MILLS
+PA	SPRANKLE MLS
+PA	SPRINGBORO
+PA	SPRING BROOK TOWNSHIP
+PA	SPRING CHURCH
+PA	SPRING CITY
+PA	SPRING CREEK
+PA	SPRINGDALE
+PA	SPRINGFIELD
+PA	SPRING GLEN
+PA	SPRING GROVE
+PA	SPRING HOUSE
+PA	SPRING MILLS
+PA	SPRING MOUNT
+PA	SPRING RUN
+PA	SPRINGS
+PA	SPRINGTOWN
+PA	SPRINGVILLE
+PA	SPRNG BRK TWP
+PA	SPROUL
+PA	SPRUCE CREEK
+PA	SQUIRREL HILL
+PA	S STERLING
+PA	STAHLSTOWN
+PA	STARFORD
+PA	STAR JUNCTION
+PA	STARLIGHT
+PA	STARRUCCA
+PA	STATE COLLEGE
+PA	STATE LINE
+PA	ST BENEDICT
+PA	ST BONIFACE
+PA	ST CLAIRSVILLE
+PA	ST CLRSVILLE
+PA	ST DAVIDS
+PA	STEELTON
+PA	STEELVILLE
+PA	STERLING
+PA	STEVENS
+PA	STEVENSVILLE
+PA	STEWARTSTOWN
+PA	STILLWATER
+PA	STOCKDALE
+PA	STOCKERTOWN
+PA	STONEBORO
+PA	STONY RUN
+PA	STOUCHSBURG
+PA	STOWE
+PA	STOYSTOWN
+PA	ST PETERSBURG
+PA	STRABANE
+PA	STRAFFORD
+PA	STRASBURG
+PA	STRATTANVILLE
+PA	STRAUSSTOWN
+PA	STRONGSTOWN
+PA	STROUDSBURG
+PA	STUMP CREEK
+PA	STURGEON
+PA	SUGAR GROVE
+PA	SUGARLOAF
+PA	SUGAR NOTCH
+PA	SUGAR RUN
+PA	SUMMERDALE
+PA	SUMMERHILL
+PA	SUMMERVILLE
+PA	SUMMIT HILL
+PA	SUMMIT STA
+PA	SUMMIT STATION
+PA	SUMNEYTOWN
+PA	SUNBURY
+PA	SUPLEE
+PA	SUSQUEHANNA
+PA	SUTERSVILLE
+PA	SWARTHMORE
+PA	SWATARA
+PA	SWEET VALLEY
+PA	SWENGEL
+PA	SWIFTWATER
+PA	S WILLIAMSPOR
+PA	S WILLIAMSPORT
+PA	S WILLIAMSPRT
+PA	SWISSVALE
+PA	SWOYERSVILLE
+PA	SYBERTSVILLE
+PA	SYCAMORE
+PA	SYKESVILLE
+PA	SYLVAN DELL
+PA	SYLVANIA
+PA	TAFTON
+PA	TALMAGE
+PA	TAMAQUA
+PA	TAMIMENT
+PA	TANNERSVILLE
+PA	TARENTUM
+PA	TARRS
+PA	TATAMY
+PA	TAYLOR
+PA	TAYLORSTOWN
+PA	TELFORD
+PA	TEMPLE
+PA	TEMPLETON
+PA	TERRE HILL
+PA	THOMASVILLE
+PA	THOMPSON
+PA	THOMPSONTOWN
+PA	THORNDALE
+PA	THORNHURST
+PA	THORNTON
+PA	THREE SPRINGS
+PA	THROOP
+PA	TIDIOUTE
+PA	TIMBLIN
+PA	TIME WARNER
+PA	TIOGA
+PA	TIONA
+PA	TIONESTA
+PA	TIPTON
+PA	TIRE HILL
+PA	TITUSVILLE
+PA	TOBYHANNA
+PA	TODD
+PA	TOPTON
+PA	TORRANCE
+PA	TOUGHKENAMON
+PA	TOWANDA
+PA	TOWER CITY
+PA	TOWNVILLE
+PA	TRAFFORD
+PA	TRAINER
+PA	TRANSFER
+PA	TRAPPE
+PA	TREDYFFRIN
+PA	TREICHLERS
+PA	TREMONT
+PA	TRESCKOW
+PA	TREVORTON
+PA	TREVOSE
+PA	TREXLERTOWN
+PA	TROOPER
+PA	TROUT RUN
+PA	TROUTVILLE
+PA	TROXELVILLE
+PA	TROY
+PA	TRUCKSVILLE
+PA	TRUMBAUERSVILLE
+PA	TRUMBAURSVLLE
+PA	TULLYTOWN
+PA	TUNKHANNOCK
+PA	TURBOTVILLE
+PA	TURKEY CITY
+PA	TURTLE CREEK
+PA	TURTLEPOINT
+PA	TUSCARORA
+PA	TWIN ROCKS
+PA	TYLER HILL
+PA	TYLERSBURG
+PA	TYLERSPORT
+PA	TYLERSVILLE
+PA	TYRONE
+PA	ULEDI
+PA	ULSTER
+PA	ULYSSES
+PA	UNION CITY
+PA	UNION DALE
+PA	UNIONTOWN
+PA	UNIONVILLE
+PA	UNITED
+PA	UNITY HOUSE
+PA	UNITYVILLE
+PA	UNIVERSITY PARK
+PA	UNIVERSITY PK
+PA	UPPER BLACK EDDY
+PA	UPPER DARBY
+PA	UPPER HOLLAND
+PA	UPPER MAKEFIELD
+PA	UPPER SAINT CLAIR
+PA	UPPER ST CLAIR
+PA	UPPERSTRASBRG
+PA	UPPERSTRASBURG
+PA	UPPR BLCK EDY
+PA	UPPR ST CLAIR
+PA	UPR MAKEFIELD
+PA	URSINA
+PA	UTICA
+PA	UWCHLAND
+PA	VALENCIA
+PA	VALIER
+PA	VALLEY FORGE
+PA	VALLEY TOWNSHIP
+PA	VALLEY TWP
+PA	VALLEY VIEW
+PA	VANDERBILT
+PA	VANDERGRIFT
+PA	VANDLING
+PA	VAN METER
+PA	VANPORT
+PA	VAN VOORHIS
+PA	VENANGO
+PA	VENETIA
+PA	VENUS
+PA	VERONA
+PA	VESTABURG
+PA	VICKSBURG
+PA	VILLA MARIA
+PA	VILLANOVA
+PA	VINTONDALE
+PA	VIRGINVILLE
+PA	VOLANT
+PA	VOWINCKEL
+PA	WABASH
+PA	WAGONTOWN
+PA	W ALEXANDER
+PA	W ALIQUIPPA
+PA	WALL
+PA	WALLACETON
+PA	WALLINGFORD
+PA	WALNUT BOTTOM
+PA	WALNUTPORT
+PA	WALSTON
+PA	WALTERSBURG
+PA	WAMPUM
+PA	WAPWALLOPEN
+PA	WARFORDSBURG
+PA	WARMINSTER
+PA	WARREN
+PA	WARREN CENTER
+PA	WARRENDALE
+PA	WARRINGTON
+PA	WARRIOR RUN
+PA	WARRIORS MARK
+PA	WASH BORO
+PA	WASHINGTON
+PA	WASHINGTON BORO
+PA	WASHINGTON CROSSING
+PA	WASHINGTONVILLE
+PA	WASHINGTONVLE
+PA	WASHINGTON XING
+PA	WATERFALL
+PA	WATERFORD
+PA	WATERMAN
+PA	WATERVILLE
+PA	WATSONTOWN
+PA	WATTSBURG
+PA	WAVERLY
+PA	WAYMART
+PA	WAYNE
+PA	WAYNESBORO
+PA	WAYNESBURG
+PA	W BRIDGEWATER
+PA	W CNSHOHOCKEN
+PA	WEATHERLY
+PA	WEBSTER
+PA	WEEDVILLE
+PA	WEIKERT
+PA	WEISSPORT
+PA	W ELIZABETH
+PA	WELLERSBURG
+PA	WELLSBORO
+PA	WELLS TANNERY
+PA	WELLSVILLE
+PA	WENDEL
+PA	WERNERSVILLE
+PA	WESCOSVILLE
+PA	WEST ALEXANDER
+PA	WEST ALIQUIPPA
+PA	WEST BRIDGEWATER
+PA	WEST BRISTOL
+PA	WEST CHESTER
+PA	WEST CONSHOHOCKEN
+PA	WEST DECATUR
+PA	WEST EASTON
+PA	WEST ELIZABETH
+PA	WESTFIELD
+PA	WEST FINLEY
+PA	WESTFORD
+PA	WEST GROVE
+PA	WEST HAZLETON
+PA	WEST HICKORY
+PA	WEST HOMESTEAD
+PA	WESTLAND
+PA	WEST LAWN
+PA	WEST LEBANON
+PA	WEST LEECHBURG
+PA	WEST LEISENRING
+PA	WESTLINE
+PA	WEST MIDDLESEX
+PA	WEST MIDDLETOWN
+PA	WEST MIFFLIN
+PA	WEST MILTON
+PA	WESTMORELAND CITY
+PA	WESTMRLND CTY
+PA	WEST NEWTON
+PA	WESTON
+PA	WESTOVER
+PA	WEST PITTSBURG
+PA	WEST PITTSTON
+PA	WEST POINT
+PA	WESTPORT
+PA	WEST READING
+PA	WEST SALISBURY
+PA	WEST SPRINGFIELD
+PA	WEST SUNBURY
+PA	WESTTOWN
+PA	WEST VIEW
+PA	WEST WILLOW
+PA	WEST WYOMING
+PA	WEST YORK
+PA	WEXFORD
+PA	W HAZLETON
+PA	WHEATLAND
+PA	WHITAKER
+PA	WHITE
+PA	WHITE DEER
+PA	WHITEHALL
+PA	WHITE HAVEN
+PA	WHITE MILLS
+PA	WHITNEY
+PA	WHITSETT
+PA	W HOMESTEAD
+PA	WICKHAVEN
+PA	WICONISCO
+PA	WIDNOON
+PA	WILBURTON
+PA	WILCOX
+PA	WILDWOOD
+PA	WILKES BARRE
+PA	WILKES BARRE TOWNSHIP
+PA	WILKINSBURG
+PA	WILLIAM PENN ANNEX EAST
+PA	WILLIAM PENN ANNEX WEST
+PA	WILLIAMSBURG
+PA	WILLIAMSON
+PA	WILLIAMSPORT
+PA	WILLIAMSTOWN
+PA	WILLIAMS TOWNSHIP
+PA	WILLIAMS TWP
+PA	WILLOW GROVE
+PA	WILLOW HILL
+PA	WILLOW STREET
+PA	WILMERDING
+PA	WILMORE
+PA	WILPEN
+PA	WINBURNE
+PA	WINDBER
+PA	WIND GAP
+PA	WIND RIDGE
+PA	WINDSOR
+PA	WINFIELD
+PA	WINGATE
+PA	WITMER
+PA	W LEECHBURG
+PA	W LEISENRING
+PA	WLKS BARR TWP
+PA	W MIDDLESEX
+PA	W MIDDLETOWN
+PA	WM PENN ANX E
+PA	WM PENN ANX W
+PA	WOMELSDORF
+PA	WOOD
+PA	WOODBURY
+PA	WOODLAND
+PA	WOODLYN
+PA	WOODWARD
+PA	WOOLRICH
+PA	WORCESTER
+PA	WORMLEYSBURG
+PA	WORTHINGTON
+PA	WORTHVILLE
+PA	WOXALL
+PA	W PITTSBURG
+PA	WRIGHTSVILLE
+PA	W SALISBURY
+PA	WSHNGTN XING
+PA	W SPRINGFIELD
+PA	WYALUSING
+PA	WYANO
+PA	WYCOMBE
+PA	WYNCOTE
+PA	WYNDMOOR
+PA	WYNNEWOOD
+PA	WYOMING
+PA	WYOMISSING
+PA	WYSOX
+PA	YARDLEY
+PA	YATESBORO
+PA	YATESVILLE
+PA	YEADON
+PA	YEAGERTOWN
+PA	YOE
+PA	YORK
+PA	YORKANA
+PA	YORK HAVEN
+PA	YORK NEW SALEM
+PA	YORK NW SALEM
+PA	YORK SPRINGS
+PA	YOUNGSTOWN
+PA	YOUNGSVILLE
+PA	YOUNGWOOD
+PA	YUKON
+PA	ZELIENOPLE
+PA	ZERBE
+PA	ZIEGLERSVILLE
+PA	ZIEGLERVILLE
+PA	ZION GROVE
+PA	ZIONHILL
+PA	ZIONSVILLE
+PA	ZULLINGER
+PR	65TH INFANTRY
+PR	ADJUNTAS
+PR	AGUADA
+PR	AGUADILLA
+PR	ANASCO
+PR	ANGELES
+PR	ARECIBO
+PR	BAJADERO
+PR	BARCELONETA
+PR	BARRIO OBRERO
+PR	BAYAMON
+PR	BO OBRERO
+PR	BOQUERON
+PR	CABO ROJO
+PR	CAMUY
+PR	CAPARRA
+PR	CAPARRA HILLS
+PR	CAPARRA TER
+PR	CAPARRA TERRACE
+PR	CAROLINA
+PR	CASTANER
+PR	CATANO
+PR	CIALES
+PR	COLLEGE PARK
+PR	CONDADO
+PR	CUPEY
+PR	DORADO
+PR	ENSENADA
+PR	FDEZ JUNCOS
+PR	FERNANDEZ JUNCOS
+PR	FLORIDA
+PR	FORT BUCHANAN
+PR	FT BUCHANAN
+PR	GARROCHALES
+PR	GPO
+PR	GUANICA
+PR	GUAYANILLA
+PR	GUAYNABO
+PR	HATILLO
+PR	HATO REY
+PR	HORMIGUEROS
+PR	ISABELA
+PR	ISLA VERDE
+PR	JAYUYA
+PR	LAJAS
+PR	LARES
+PR	LAS MARIAS
+PR	LEVITTOWN
+PR	LOIZA STREET
+PR	MANATI
+PR	MARICAO
+PR	MAYAGUEZ
+PR	MINILLAS
+PR	MIRAMAR
+PR	MOCA
+PR	MOROVIS
+PR	OLD SAN JUAN
+PR	PENUELAS
+PR	PTA DE TIERRA
+PR	PTO NUEVO
+PR	PUERTO NUEVO
+PR	QUEBRADILLAS
+PR	RAMEY
+PR	RINCON
+PR	RIO PIEDRAS
+PR	ROSARIO
+PR	SABANA GRANDE
+PR	SABANA HOYOS
+PR	SABANA SECA
+PR	SAINT JUST
+PR	SAN ANTONIO
+PR	SAN GERMAN
+PR	SAN JOSE
+PR	SAN JUAN
+PR	SAN SEBASTIAN
+PR	SANTURCE
+PR	SANTURCE STATION
+PR	TOA ALTA
+PR	TOA BAJA
+PR	TRUJILLO ALTO
+PR	UTUADO
+PR	VEGA ALTA
+PR	VEGA BAJA
+PR	VIEJO SAN JUAN
+PR	VIEJO SN JUAN
+PR	YAUCO
+PW	PALAU
+RI	ADAMSVILLE
+RI	ALBION
+RI	ASHAWAY
+RI	BARRINGTON
+RI	BLOCK ISLAND
+RI	BRADFORD
+RI	BRISTOL
+RI	BROWN STATION
+RI	BURRILLVILLE
+RI	CAROLINA
+RI	CENTRAL FALLS
+RI	CHARLESTOWN
+RI	CHEPACHET
+RI	CLAYVILLE
+RI	COVENTRY
+RI	CRANSTON
+RI	CUMBERLAND
+RI	EAST GREENWICH
+RI	EAST PROVIDENCE
+RI	E GREENWICH
+RI	E PROVIDENCE
+RI	ESCOHEAG
+RI	EXETER
+RI	FISKEVILLE
+RI	FORESTDALE
+RI	FOSTER
+RI	FRIAR STATION
+RI	GLENDALE
+RI	GREENE
+RI	GREENVILLE
+RI	HARMONY
+RI	HARRISVILLE
+RI	HOPE
+RI	HOPE VALLEY
+RI	HOPKINTON
+RI	JAMESTOWN
+RI	JOHNSTON
+RI	KENYON
+RI	KINGSTON
+RI	L COMPTON
+RI	LINCOLN
+RI	LITTLE COMPTON
+RI	MANVILLE
+RI	MAPLEVILLE
+RI	MIDDLETOWN
+RI	NARRAGANSETT
+RI	NEWPORT
+RI	NEW SHOREHAM
+RI	N KINGSTOWN
+RI	NORTH KINGSTOWN
+RI	NORTH PROVIDENCE
+RI	NORTH SCITUATE
+RI	NORTH SMITHFIELD
+RI	N PROVIDENCE
+RI	N SCITUATE
+RI	N SMITHFIELD
+RI	OAKLAND
+RI	PASCOAG
+RI	PAWTUCKET
+RI	PEACE DALE
+RI	POINT JUDITH
+RI	PORTSMOUTH
+RI	PROVIDENCE
+RI	PRUDENCE ISL
+RI	PRUDENCE ISLAND
+RI	RICHMOND
+RI	RIVERSIDE
+RI	ROCKVILLE
+RI	RUMFORD
+RI	SAUNDERSTOWN
+RI	SCITUATE
+RI	SHANNOCK
+RI	S KINGSTOWN
+RI	SLATERSVILLE
+RI	SLOCUM
+RI	SMITHFIELD
+RI	SOUTH KINGSTOWN
+RI	TIVERTON
+RI	VALLEY FALLS
+RI	WAKEFIELD
+RI	WARREN
+RI	WARWICK
+RI	WESTERLY
+RI	WEST GREENWICH
+RI	WEST KINGSTON
+RI	WEST WARWICK
+RI	W GREENWICH
+RI	WOOD RIVER JT
+RI	WOOD RIVER JUNCTION
+RI	WOONSOCKET
+RI	WYOMING
+SC	ABBEVILLE
+SC	ADAMS RUN
+SC	AIKEN
+SC	ALCOLU
+SC	ALLENDALE
+SC	ALVIN
+SC	ANDERSON
+SC	ANDREWS
+SC	ARCADIA
+SC	ATLANTIC BCH
+SC	ATLANTIC BEACH
+SC	AWENDAW
+SC	AYNOR
+SC	BALLENTINE
+SC	BAMBERG
+SC	BARNWELL
+SC	BATESBURG
+SC	BATESBURG-LEESVILLE
+SC	BATH
+SC	BATSBRG-LEVIL
+SC	BEAUFORT
+SC	BEECH ISLAND
+SC	BELTON
+SC	BELVEDERE
+SC	BENNETTSVILLE
+SC	BETHERA
+SC	BETHUNE
+SC	BISHOPVILLE
+SC	BLACKSBURG
+SC	BLACKSTOCK
+SC	BLACKVILLE
+SC	BLAIR
+SC	BLENHEIM
+SC	BLUFFTON
+SC	BLYTHEWOOD
+SC	BOILING SPGS
+SC	BOILING SPRINGS
+SC	BONNEAU
+SC	BORDEN
+SC	BOWLING GREEN
+SC	BOWMAN
+SC	BRADLEY
+SC	BRANCHVILLE
+SC	BRITTONS NECK
+SC	BRUNSON
+SC	BUCKSPORT
+SC	BUFFALO
+SC	BURTON BRANCH
+SC	CADES
+SC	CAINHOY
+SC	CALHOUN FALLS
+SC	CAMDEN
+SC	CAMERON
+SC	CAMPOBELLO
+SC	CANADYS
+SC	CARLISLE
+SC	CASSATT
+SC	CATAWBA
+SC	CATEECHEE
+SC	CAYCE
+SC	CENTENARY
+SC	CENTRAL
+SC	CHAPIN
+SC	CHAPPELLS
+SC	CHARLESTON
+SC	CHARLESTON AFB
+SC	CHAS AFB
+SC	CHERAW
+SC	CHEROKEE FALLS
+SC	CHEROKEE FLS
+SC	CHERRY GROVE
+SC	CHERRY GROVE BEACH
+SC	CHESNEE
+SC	CHESTER
+SC	CHESTERFIELD
+SC	CLARKS HILL
+SC	CLEARWATER
+SC	CLEMSON
+SC	CLEVELAND
+SC	CLIFTON
+SC	CLINTON
+SC	CLIO
+SC	CLOVER
+SC	COLUMBIA
+SC	CONESTEE
+SC	CONVERSE
+SC	CONWAY
+SC	COOSAWHATCHIE
+SC	COPE
+SC	CORDESVILLE
+SC	CORDOVA
+SC	COTTAGEVILLE
+SC	COWARD
+SC	COWPENS
+SC	CROCKETVILLE
+SC	CROSS
+SC	CROSS ANCHOR
+SC	CROSS HILL
+SC	DALE
+SC	DALZELL
+SC	DANIEL ISLAND
+SC	DARLINGTON
+SC	DAUFUSKIE IS
+SC	DAUFUSKIE ISLAND
+SC	DAVIS STATION
+SC	DENMARK
+SC	DEWEES ISLAND
+SC	DILLON
+SC	DONALDS
+SC	DORCHESTER
+SC	DRAYTON
+SC	DUE WEST
+SC	DUNCAN
+SC	EARLY BRANCH
+SC	EASLEY
+SC	EASTOVER
+SC	EDGEFIELD
+SC	EDGEMOOR
+SC	EDISTO
+SC	EDISTO ISLAND
+SC	EFFINGHAM
+SC	EHRHARDT
+SC	ELGIN
+SC	ELKO
+SC	ELLIOTT
+SC	ELLOREE
+SC	ENOREE
+SC	ESTILL
+SC	EUTAWVILLE
+SC	FAIRFAX
+SC	FAIRFOREST
+SC	FAIR PLAY
+SC	FINGERVILLE
+SC	FLORENCE
+SC	FLOYD DALE
+SC	FOLLY BEACH
+SC	FORK
+SC	FORT LAWN
+SC	FORT MILL
+SC	FORT MOTTE
+SC	FOUNTAIN INN
+SC	FRIPP ISLAND
+SC	FURMAN
+SC	GABLE
+SC	GADSDEN
+SC	GAFFNEY
+SC	GALIVANTS FERRY
+SC	GALIVANTS FRY
+SC	GARNETT
+SC	GASTON
+SC	GEORGETOWN
+SC	GIFFORD
+SC	GILBERT
+SC	GLENDALE
+SC	GLENN SPRINGS
+SC	GLOVERVILLE
+SC	GOOSE CREEK
+SC	GRAMLING
+SC	GRANITEVILLE
+SC	GRAY COURT
+SC	GREAT FALLS
+SC	GREELEYVILLE
+SC	GREENPOND
+SC	GREEN POND
+SC	GREEN SEA
+SC	GREENVILLE
+SC	GREENWOOD
+SC	GREER
+SC	GRESHAM
+SC	GROVER
+SC	HAMER
+SC	HAMPTON
+SC	HANAHAN
+SC	HARDEEVILLE
+SC	HARLEYVILLE
+SC	HARTSVILLE
+SC	HEATH SPRINGS
+SC	HEMINGWAY
+SC	HICKORY GROVE
+SC	HILDA
+SC	HILTON HEAD
+SC	HILTON HEAD ISLAND
+SC	HODGES
+SC	HOLLY HILL
+SC	HOLLYWOOD
+SC	HONEA PATH
+SC	HOPKINS
+SC	HORATIO
+SC	HUGER
+SC	INDIAN LAND
+SC	INMAN
+SC	IRMO
+SC	ISLANDTON
+SC	ISLE OF PALMS
+SC	IVA
+SC	JACKSON
+SC	JACKSONBORO
+SC	JAMESTOWN
+SC	JEFFERSON
+SC	JENKINSVILLE
+SC	JERICHO
+SC	JOANNA
+SC	JOHNS ISLAND
+SC	JOHNSONVILLE
+SC	JOHNSTON
+SC	JONESVILLE
+SC	KELTON
+SC	KERSHAW
+SC	KIAWAH ISLAND
+SC	KINARDS
+SC	KINGS CREEK
+SC	KINGSTREE
+SC	KLINE
+SC	KNIGHTSVILLE
+SC	LADSON
+SC	LADYS ISLAND
+SC	LA FRANCE
+SC	LAKE CITY
+SC	LAKE VIEW
+SC	LAKE WYLIE
+SC	LAMAR
+SC	LANCASTER
+SC	LANDO
+SC	LANDRUM
+SC	LANE
+SC	LANGLEY
+SC	LATTA
+SC	LAURENS
+SC	LEESVILLE
+SC	LEXINGTON
+SC	LIBERTY
+SC	LIBERTY HILL
+SC	LINCOLNVILLE
+SC	LITCHFIELD
+SC	LITTLE MOUNTAIN
+SC	LITTLE MTN
+SC	LITTLE RIVER
+SC	LITTLE ROCK
+SC	LIVINGSTON
+SC	LOBECO
+SC	LOCKHART
+SC	LODGE
+SC	LONE STAR
+SC	LONG CREEK
+SC	LONGS
+SC	LORIS
+SC	LOWNDESVILLE
+SC	LUGOFF
+SC	LURAY
+SC	LYDIA
+SC	LYMAN
+SC	LYNCHBURG
+SC	MADISON
+SC	MANNING
+SC	MARIETTA
+SC	MARION
+SC	MARTIN
+SC	MAULDIN
+SC	MAYESVILLE
+SC	MAYO
+SC	MC BEE
+SC	MC CLELLANVILLE
+SC	MCCLELLANVLE
+SC	MC COLL
+SC	MC CONNELLS
+SC	MC CORMICK
+SC	MEGGETT
+SC	MILEY
+SC	MINTURN
+SC	MODOC
+SC	MONCKS CORNER
+SC	MONETTA
+SC	MONTICELLO
+SC	MONTMORENCI
+SC	MOORE
+SC	MOUNTAIN REST
+SC	MOUNT CARMEL
+SC	MOUNT CROGHAN
+SC	MOUNT PLEASANT
+SC	MOUNTVILLE
+SC	MT PLEASANT
+SC	MULLINS
+SC	MURRELLS INLET
+SC	MURRELLS INLT
+SC	MYRTLE BEACH
+SC	N CHARLESTON
+SC	NEESES
+SC	NESMITH
+SC	NEWBERRY
+SC	NEW ELLENTON
+SC	NEWRY
+SC	NEW ZION
+SC	NICHOLS
+SC	NINETY SIX
+SC	N LITCHFIELD
+SC	N MYRTLE BCH
+SC	NORRIS
+SC	NORTH
+SC	NORTH AUGUSTA
+SC	NORTH CHARLESTON
+SC	NORTH MYRTLE BEACH
+SC	NORWAY
+SC	OCEAN DRIVE
+SC	OKATIE
+SC	OLANTA
+SC	OLAR
+SC	ORANGEBURG
+SC	OSWEGO
+SC	PACOLET
+SC	PACOLET MILLS
+SC	PAGELAND
+SC	PAMPLICO
+SC	PARKSVILLE
+SC	PARRIS ISLAND
+SC	PATRICK
+SC	PAULINE
+SC	PAWLEYS ISL
+SC	PAWLEYS ISLAND
+SC	PAXVILLE
+SC	PEAK
+SC	PELION
+SC	PELZER
+SC	PENDLETON
+SC	PERRY
+SC	PICKENS
+SC	PIEDMONT
+SC	PINELAND
+SC	PINEVILLE
+SC	PINEWOOD
+SC	PINOPOLIS
+SC	PLUM BRANCH
+SC	POMARIA
+SC	PORT ROYAL
+SC	POSTON
+SC	PROSPERITY
+SC	QUINBY
+SC	RAINS
+SC	RAVENEL
+SC	REEVESVILLE
+SC	REIDVILLE
+SC	REMBERT
+SC	RICHBURG
+SC	RICHLAND
+SC	RIDGELAND
+SC	RIDGE SPRING
+SC	RIDGEVILLE
+SC	RIDGEWAY
+SC	RIMINI
+SC	RION
+SC	RITTER
+SC	RIVER HILLS
+SC	ROCK HILL
+SC	ROEBUCK
+SC	ROUND O
+SC	ROUND ROCK
+SC	ROWESVILLE
+SC	RUBY
+SC	RUFFIN
+SC	RUSSELLVILLE
+SC	SAINT CHARLES
+SC	SAINT GEORGE
+SC	SAINT HELENA ISLAND
+SC	SAINT MATTHEWS
+SC	SAINT STEPHEN
+SC	SALEM
+SC	SALLEY
+SC	SALTERS
+SC	SALUDA
+SC	SANDY SPRINGS
+SC	SANTEE
+SC	SARDINIA
+SC	SCOTIA
+SC	SCRANTON
+SC	SEABROOK
+SC	SEABROOK ISL
+SC	SEABROOK ISLAND
+SC	SELLERS
+SC	SENECA
+SC	SHARON
+SC	SHAW AFB
+SC	SHAW A F B
+SC	SHELDON
+SC	SHOALS JCT
+SC	SHOALS JUNCTION
+SC	SHULERVILLE
+SC	SILVERSTREET
+SC	SIMPSONVILLE
+SC	SIX MILE
+SC	SLATER
+SC	SMOAKS
+SC	SMYRNA
+SC	SOCIETY HILL
+SC	S OF BORDER
+SC	SOUTH OF THE BORDER
+SC	SPARTANBURG
+SC	SPRINGFIELD
+SC	STARR
+SC	STARTEX
+SC	STATE PARK
+SC	ST HELENA IS
+SC	ST MATTHEWS
+SC	SULLIVANS IS
+SC	SULLIVANS ISLAND
+SC	SUMMERTON
+SC	SUMMERVILLE
+SC	SUMTER
+SC	SUNSET
+SC	SURFSIDE BCH
+SC	SURFSIDE BEACH
+SC	SWANSEA
+SC	SYCAMORE
+SC	TAMASSEE
+SC	TATUM
+SC	TAYLORS
+SC	TEGA CAY
+SC	THE CITADEL
+SC	TIGERVILLE
+SC	TILLMAN
+SC	TIMMONSVILLE
+SC	TOWNVILLE
+SC	TRAVELERS REST
+SC	TRAVELERS RST
+SC	TRENTON
+SC	TRIO
+SC	TROY
+SC	TURBEVILLE
+SC	ULMER
+SC	UNA
+SC	UNION
+SC	VANCE
+SC	VAN WYCK
+SC	VARNVILLE
+SC	VAUCLUSE
+SC	WADMALAW IS
+SC	WADMALAW ISLAND
+SC	WAGENER
+SC	WALHALLA
+SC	WALLACE
+SC	WALTERBORO
+SC	WANDO
+SC	WARD
+SC	WARE SHOALS
+SC	WARRENVILLE
+SC	WATERLOO
+SC	WEDGEFIELD
+SC	WELLFORD
+SC	WEST COLUMBIA
+SC	WESTMINSTER
+SC	WEST UNION
+SC	WESTVILLE
+SC	WHITE OAK
+SC	WHITE ROCK
+SC	WHITE STONE
+SC	WHITMIRE
+SC	WILLIAMS
+SC	WILLIAMSTON
+SC	WILLISTON
+SC	WINDSOR
+SC	WINNSBORO
+SC	WISACKY
+SC	WOODRUFF
+SC	YEMASSEE
+SC	YONGES ISLAND
+SC	YORK
+SD	ABERDEEN
+SD	ACADEMY
+SD	AGAR
+SD	AGENCY VILLAGE
+SD	AGENCY VLG
+SD	AKASKA
+SD	ALBEE
+SD	ALCESTER
+SD	ALEXANDRIA
+SD	ALLEN
+SD	ALPENA
+SD	ALTAMONT
+SD	AMHERST
+SD	ANDOVER
+SD	ARDMORE
+SD	ARLINGTON
+SD	ARMOUR
+SD	ARTAS
+SD	ARTESIAN
+SD	ASHTON
+SD	ASTORIA
+SD	ATHOL
+SD	AURORA
+SD	AVON
+SD	BADGER
+SD	BALTIC
+SD	BANCROFT
+SD	BARNARD
+SD	BATESLAND
+SD	BATH
+SD	BELLE FOURCHE
+SD	BELVIDERE
+SD	BEMIS
+SD	BERESFORD
+SD	BETHLEHEM
+SD	BIG STONE CITY
+SD	BIG STONE CTY
+SD	BISON
+SD	BLACK HAWK
+SD	BLUNT
+SD	BONESTEEL
+SD	BOWDLE
+SD	BOX ELDER
+SD	BRADLEY
+SD	BRANDON
+SD	BRANDT
+SD	BRENTFORD
+SD	BRIDGEWATER
+SD	BRISTOL
+SD	BRITTON
+SD	BROOKINGS
+SD	BRUCE
+SD	BRYANT
+SD	BUFFALO
+SD	BUFFALO GAP
+SD	BUFFALO RIDGE
+SD	BULLHEAD
+SD	BURBANK
+SD	BURDOCK
+SD	BURKE
+SD	BUSHNELL
+SD	BUTLER
+SD	CAMP CROOK
+SD	CANISTOTA
+SD	CANOVA
+SD	CANTON
+SD	CAPUTA
+SD	CARPENTER
+SD	CARTER
+SD	CARTHAGE
+SD	CASTLEWOOD
+SD	CAVOUR
+SD	CEDARBUTTE
+SD	CENTERVILLE
+SD	CENTRAL CITY
+SD	CHAMBERLAIN
+SD	CHANCELLOR
+SD	CHELSEA
+SD	CHERRY CREEK
+SD	CHESTER
+SD	CLAIRE CITY
+SD	CLAREMONT
+SD	CLARK
+SD	CLEARFIELD
+SD	CLEAR LAKE
+SD	COLMAN
+SD	COLOME
+SD	COLTON
+SD	COLUMBIA
+SD	CONDE
+SD	CORONA
+SD	CORSICA
+SD	CORSON
+SD	COTTONWOOD
+SD	CRAZY HORSE
+SD	CREIGHTON
+SD	CRESBARD
+SD	CROCKER
+SD	CROOKS
+SD	CUSTER
+SD	DAKOTA DUNES
+SD	DALLAS
+SD	DANTE
+SD	DAVIS
+SD	DEADWOOD
+SD	DELL RAPIDS
+SD	DELMONT
+SD	DEMPSTER
+SD	DENBY
+SD	DE SMET
+SD	DEWEY
+SD	DIMOCK
+SD	DIXON
+SD	DOLAND
+SD	DOLTON
+SD	DRAPER
+SD	DUPREE
+SD	EAGLE BUTTE
+SD	EDEN
+SD	EDGEMONT
+SD	EGAN
+SD	ELK POINT
+SD	ELKTON
+SD	ELLSWORTH AFB
+SD	ELM SPRINGS
+SD	EMERY
+SD	ENNING
+SD	ERWIN
+SD	ESTELLINE
+SD	ETHAN
+SD	EUREKA
+SD	FAIRBURN
+SD	FAIRFAX
+SD	FAIRVIEW
+SD	FAITH
+SD	FARMER
+SD	FAULKTON
+SD	FEDORA
+SD	FERNEY
+SD	FIRESTEEL
+SD	FLANDREAU
+SD	FLORENCE
+SD	FORESTBURG
+SD	FORT MEADE
+SD	FORT PIERRE
+SD	FORT THOMPSON
+SD	FRANKFORT
+SD	FREDERICK
+SD	FREEMAN
+SD	FRUITDALE
+SD	FULTON
+SD	GANN VALLEY
+SD	GARDEN CITY
+SD	GARRETSON
+SD	GARY
+SD	GAYVILLE
+SD	GEDDES
+SD	GETTYSBURG
+SD	GLAD VALLEY
+SD	GLENCROSS
+SD	GLENHAM
+SD	GOODWIN
+SD	GREGORY
+SD	GRENVILLE
+SD	GROTON
+SD	HAMILL
+SD	HARRISBURG
+SD	HARRISON
+SD	HARROLD
+SD	HARTFORD
+SD	HAYES
+SD	HAYTI
+SD	HAZEL
+SD	HECLA
+SD	HENRY
+SD	HEREFORD
+SD	HERMOSA
+SD	HERREID
+SD	HERRICK
+SD	HETLAND
+SD	HIGHMORE
+SD	HILL CITY
+SD	HITCHCOCK
+SD	HOLABIRD
+SD	HOSMER
+SD	HOT SPRINGS
+SD	HOUGHTON
+SD	HOVEN
+SD	HOWARD
+SD	HOWES
+SD	HUDSON
+SD	HUMBOLDT
+SD	HURLEY
+SD	HURON
+SD	IDEAL
+SD	INTERIOR
+SD	IONA
+SD	IPSWICH
+SD	IRENE
+SD	IROQUOIS
+SD	ISABEL
+SD	JAVA
+SD	JEFFERSON
+SD	KADOKA
+SD	KAYLOR
+SD	KELDRON
+SD	KENNEBEC
+SD	KEYAPAHA
+SD	KEYSTONE
+SD	KIMBALL
+SD	KRANZBURG
+SD	KYLE
+SD	LABOLT
+SD	LAKE ANDES
+SD	LAKE CITY
+SD	LAKE NORDEN
+SD	LAKE PRESTON
+SD	LANE
+SD	LANGFORD
+SD	LANTRY
+SD	LA PLANT
+SD	LEAD
+SD	LEBANON
+SD	LEMMON
+SD	LENNOX
+SD	LEOLA
+SD	LESTERVILLE
+SD	LETCHER
+SD	LILY
+SD	LITTLE EAGLE
+SD	LODGEPOLE
+SD	LONGLAKE
+SD	LONG VALLEY
+SD	LOOMIS
+SD	LOWER BRULE
+SD	LOWRY
+SD	LUCAS
+SD	LUDLOW
+SD	LYONS
+SD	MADISON
+SD	MANDERSON
+SD	MANSFIELD
+SD	MARCUS
+SD	MARION
+SD	MARTIN
+SD	MARTY
+SD	MARVIN
+SD	MCCOOK LAKE
+SD	MC INTOSH
+SD	MC LAUGHLIN
+SD	MEADOW
+SD	MECKLING
+SD	MELLETTE
+SD	MENNO
+SD	MIDLAND
+SD	MILBANK
+SD	MILESVILLE
+SD	MILLBORO
+SD	MILLER
+SD	MINA
+SD	MIRANDA
+SD	MISSION
+SD	MISSION HILL
+SD	MISSION RIDGE
+SD	MITCHELL
+SD	MOBRIDGE
+SD	MONROE
+SD	MONTROSE
+SD	MORRISTOWN
+SD	MOUND CITY
+SD	MOUNT VERNON
+SD	MUD BUTTE
+SD	MURDO
+SD	NEMO
+SD	NEW EFFINGTON
+SD	NEWELL
+SD	NEW HOLLAND
+SD	NEW UNDERWOOD
+SD	NISLAND
+SD	NORBECK
+SD	NORRIS
+SD	NORTH SIOUX CITY
+SD	NORTHVILLE
+SD	N SIOUX CITY
+SD	NUNDA
+SD	OACOMA
+SD	OELRICHS
+SD	OGLALA
+SD	OKATON
+SD	OKREEK
+SD	OLDHAM
+SD	OLIVET
+SD	ONAKA
+SD	ONIDA
+SD	OPAL
+SD	ORAL
+SD	ORIENT
+SD	ORTLEY
+SD	OTTUMWA
+SD	OWANKA
+SD	PARADE
+SD	PARKER
+SD	PARKSTON
+SD	PARMELEE
+SD	PEEVER
+SD	PHILIP
+SD	PICKSTOWN
+SD	PIEDMONT
+SD	PIERPONT
+SD	PIERRE
+SD	PINE RIDGE
+SD	PLAINVIEW
+SD	PLANKINTON
+SD	PLATTE
+SD	POLLOCK
+SD	PORCUPINE
+SD	PRAIRIE CITY
+SD	PRESHO
+SD	PRINGLE
+SD	PROVO
+SD	PUKWANA
+SD	QUINN
+SD	RALPH
+SD	RAMONA
+SD	RAPID CITY
+SD	RAVINIA
+SD	RAYMOND
+SD	REDFIELD
+SD	REDIG
+SD	RED OWL
+SD	REE HEIGHTS
+SD	RELIANCE
+SD	RENNER
+SD	REVA
+SD	REVILLO
+SD	RIDGEVIEW
+SD	ROCHFORD
+SD	ROCKERVILLE
+SD	ROCKHAM
+SD	ROSCOE
+SD	ROSEBUD
+SD	ROSHOLT
+SD	ROSLYN
+SD	ROSWELL
+SD	ROWENA
+SD	RUNNING WATER
+SD	RUTLAND
+SD	SAINT CHARLES
+SD	SAINT FRANCIS
+SD	SAINT LAWRENCE
+SD	SAINT ONGE
+SD	SALEM
+SD	SCENIC
+SD	SCOTLAND
+SD	SELBY
+SD	SENECA
+SD	SHADEHILL
+SD	SHERMAN
+SD	SILVER CITY
+SD	SINAI
+SD	SIOUX FALLS
+SD	SISSETON
+SD	SKY RANCH
+SD	SMITHWICK
+SD	SOUTH SHORE
+SD	SPEARFISH
+SD	SPEARFISH CANYON
+SD	SPEARFISH CYN
+SD	SPENCER
+SD	SPRINGFIELD
+SD	ST CHARLES
+SD	STEPHAN
+SD	STICKNEY
+SD	ST LAWRENCE
+SD	STOCKHOLM
+SD	STONEVILLE
+SD	STRANDBURG
+SD	STRATFORD
+SD	STURGIS
+SD	SUMMERSET
+SD	SUMMIT
+SD	TABOR
+SD	TEA
+SD	THUNDER HAWK
+SD	TIMBER LAKE
+SD	TOLSTOY
+SD	TORONTO
+SD	TRAIL CITY
+SD	TRENT
+SD	TRIPP
+SD	TULARE
+SD	TURTON
+SD	TUTHILL
+SD	TWIN BROOKS
+SD	TYNDALL
+SD	UNION CENTER
+SD	UTICA
+SD	VALE
+SD	VALLEY SPGS
+SD	VALLEY SPRINGS
+SD	VEBLEN
+SD	VERDON
+SD	VERMILLION
+SD	VETAL
+SD	VIBORG
+SD	VIENNA
+SD	VIRGIL
+SD	VIVIAN
+SD	VOLGA
+SD	VOLIN
+SD	WAGNER
+SD	WAKONDA
+SD	WAKPALA
+SD	WALKER
+SD	WALL
+SD	WALLACE
+SD	WANBLEE
+SD	WARD
+SD	WARNER
+SD	WASTA
+SD	WATAUGA
+SD	WATERTOWN
+SD	WAUBAY
+SD	WAVERLY
+SD	WEBSTER
+SD	WECOTA
+SD	WENTWORTH
+SD	WESSINGTN SPG
+SD	WESSINGTON
+SD	WESSINGTON SPRINGS
+SD	WESTPORT
+SD	WETONKA
+SD	WEWELA
+SD	WHITE
+SD	WHITEHORSE
+SD	WHITE LAKE
+SD	WHITE OWL
+SD	WHITE RIVER
+SD	WHITEWOOD
+SD	WILLOW LAKE
+SD	WILMOT
+SD	WINFRED
+SD	WINNER
+SD	WITTEN
+SD	WOLSEY
+SD	WOOD
+SD	WOONSOCKET
+SD	WORTHING
+SD	WOUNDED KNEE
+SD	YALE
+SD	YANKTON
+SD	ZELL
+SD	ZEONA
+TN	ADAMS
+TN	ADAMSVILLE
+TN	AFTON
+TN	ALAMO
+TN	ALCOA
+TN	ALEXANDRIA
+TN	ALGOOD
+TN	ALLARDT
+TN	ALLONS
+TN	ALLRED
+TN	ALPINE
+TN	ALTAMONT
+TN	ANDERSONVILLE
+TN	ANTIOCH
+TN	APISON
+TN	ARDMORE
+TN	ARLINGTON
+TN	ARNOLD A F B
+TN	ARRINGTON
+TN	ARTHUR
+TN	ASHLAND CITY
+TN	ATHENS
+TN	ATOKA
+TN	ATWOOD
+TN	AUBURNTOWN
+TN	BAKEWELL
+TN	BANEBERRY
+TN	BARTLETT
+TN	BATH SPRINGS
+TN	BAXTER
+TN	BEAN STATION
+TN	BEECH BLUFF
+TN	BEECHGROVE
+TN	BEERSHBA SPGS
+TN	BEERSHEBA SPRINGS
+TN	BELFAST
+TN	BELL BUCKLE
+TN	BELLEVUE
+TN	BELLS
+TN	BELVIDERE
+TN	BENTON
+TN	BETHEL SPGS
+TN	BETHEL SPRINGS
+TN	BETHPAGE
+TN	BIG ROCK
+TN	BIG SANDY
+TN	BIRCHWOOD
+TN	BLAINE
+TN	BLMNGTON SPGS
+TN	BLOOMINGDALE
+TN	BLOOMINGTON SPRINGS
+TN	BLOUNTVILLE
+TN	BLUFF CITY
+TN	BOGOTA
+TN	BOLIVAR
+TN	BON AQUA
+TN	BONE CAVE
+TN	BRADEN
+TN	BRADFORD
+TN	BRADYVILLE
+TN	BRENTWOOD
+TN	BRICEVILLE
+TN	BRIGHTON
+TN	BRISTOL
+TN	BROWNSVILLE
+TN	BRUCETON
+TN	BRUNSWICK
+TN	BRUSH CREEK
+TN	BUCHANAN
+TN	BUENA VISTA
+TN	BUFFALO VALLEY
+TN	BUFFALO VLY
+TN	BULLS GAP
+TN	BUMPUS MILLS
+TN	BURLISON
+TN	BURNS
+TN	BUTLER
+TN	BYBEE
+TN	BYRDSTOWN
+TN	CALHOUN
+TN	CAMDEN
+TN	CAMPAIGN
+TN	CANE RIDGE
+TN	CARTHAGE
+TN	CARYVILLE
+TN	CASTALIAN SPRINGS
+TN	CASTALIN SPGS
+TN	CEDAR GROVE
+TN	CEDAR HILL
+TN	CELINA
+TN	CENTERVILLE
+TN	CHAPEL HILL
+TN	CHAPMANSBORO
+TN	CHARLESTON
+TN	CHARLOTTE
+TN	CHATTANOOGA
+TN	CHESTNUT MND
+TN	CHESTNUT MOUND
+TN	CHEWALLA
+TN	CHRISTIANA
+TN	CHUCKEY
+TN	CHURCH HILL
+TN	CLAIRFIELD
+TN	CLARKRANGE
+TN	CLARKSBURG
+TN	CLARKSVILLE
+TN	CLEVELAND
+TN	CLIFTON
+TN	CLINTON
+TN	CMBRLND FRNCE
+TN	COALFIELD
+TN	COALMONT
+TN	COKERCREEK
+TN	COKER CREEK
+TN	COLLEGEDALE
+TN	COLLEGE DALE
+TN	COLLEGE GROVE
+TN	COLLIERVILLE
+TN	COLLINWOOD
+TN	COLONIAL HEIGHTS
+TN	COLONIAL HGTS
+TN	COLUMBIA
+TN	COMO
+TN	CONASAUGA
+TN	CONCORD
+TN	CONCORD FARR
+TN	CONCORD FARRAGUT
+TN	COOKEVILLE
+TN	COPPERHILL
+TN	CORDOVA
+TN	CORNERSVILLE
+TN	CORRYTON
+TN	COSBY
+TN	COTTAGE GROVE
+TN	COTTONTOWN
+TN	COUNCE
+TN	COVINGTON
+TN	COWAN
+TN	CRAB ORCHARD
+TN	CRAWFORD
+TN	CROCKETT MILLS
+TN	CROCKETT MLS
+TN	CROSS PLAINS
+TN	CROSSVILLE
+TN	CRUMP
+TN	CULLEOKA
+TN	CUMBERLAND CITY
+TN	CUMBERLAND FURNACE
+TN	CUMBERLAND GAP
+TN	CUMBERLAND GP
+TN	CUMBERLND CTY
+TN	CUMB GAP
+TN	CUNNINGHAM
+TN	CYPRESS INN
+TN	DANDRIDGE
+TN	DARDEN
+TN	DAYTON
+TN	DECATUR
+TN	DECATURVILLE
+TN	DECHERD
+TN	DEER LODGE
+TN	DEFEATED
+TN	DELANO
+TN	DELLROSE
+TN	DEL RIO
+TN	DENMARK
+TN	DENVER
+TN	DEVONIA
+TN	DICKEL
+TN	DICKSON
+TN	DIXON SPRINGS
+TN	DOVER
+TN	DOWELLTOWN
+TN	DOYLE
+TN	DRESDEN
+TN	DRUMMONDS
+TN	DUCK RIVER
+TN	DUCKTOWN
+TN	DUFF
+TN	DUKEDOM
+TN	DUNLAP
+TN	DYER
+TN	DYERSBURG
+TN	EADS
+TN	EAGAN
+TN	EAGLEVILLE
+TN	EAST RIDGE
+TN	EATON
+TN	EIDSON
+TN	ELGIN
+TN	ELIZABETHTON
+TN	ELKTON
+TN	ELLENDALE
+TN	ELMWOOD
+TN	ELORA
+TN	ENGLEWOOD
+TN	ENVILLE
+TN	ERIN
+TN	ERWIN
+TN	ESTILL SPGS
+TN	ESTILL SPRINGS
+TN	ETHRIDGE
+TN	ETOWAH
+TN	EVA
+TN	EVENSVILLE
+TN	FAIRFIELD GLADE
+TN	FAIRFLD GLDE
+TN	FAIRVIEW
+TN	FALL BRANCH
+TN	FARNER
+TN	FARRAGUT
+TN	FAYETTEVILLE
+TN	FINGER
+TN	FINLEY
+TN	FISHERVILLE
+TN	FIVE POINTS
+TN	FLAG POND
+TN	FLATWOODS
+TN	FLINTVILLE
+TN	FORT PILLOW
+TN	FOSTERVILLE
+TN	FRANKEWING
+TN	FRANKLIN
+TN	FRIENDSHIP
+TN	FRIENDSVILLE
+TN	FRUITVALE
+TN	GADSDEN
+TN	GAINESBORO
+TN	GALLATIN
+TN	GALLAWAY
+TN	GASSAWAY
+TN	GATES
+TN	GATLINBURG
+TN	GEORGETOWN
+TN	GERMANTOWN
+TN	GIBSON
+TN	GILT EDGE
+TN	GLADEVILLE
+TN	GLEASON
+TN	GOODLETTSVILLE
+TN	GOODLETTSVLLE
+TN	GOODSPRING
+TN	GORDONSVILLE
+TN	GRAND JCT
+TN	GRAND JUNCTION
+TN	GRANDVIEW
+TN	GRANVILLE
+TN	GRAY
+TN	GRAYSVILLE
+TN	GREENBACK
+TN	GREENBRIER
+TN	GREENEVILLE
+TN	GREENFIELD
+TN	GRIMSLEY
+TN	GRUETLI LAAGER
+TN	GRUETLI LAAGR
+TN	GUILD
+TN	GUYS
+TN	HALLS
+TN	HAMPSHIRE
+TN	HAMPTON
+TN	HARRIMAN
+TN	HARRISON
+TN	HARROGATE
+TN	HARTFORD
+TN	HARTSVILLE
+TN	HEISKELL
+TN	HELENWOOD
+TN	HENDERSON
+TN	HENDERSONVILLE
+TN	HENDERSONVLLE
+TN	HENNING
+TN	HENRY
+TN	HERMITAGE
+TN	HICKMAN
+TN	HICKORY HILL
+TN	HICKORY VALLEY
+TN	HICKORY VLY
+TN	HILHAM
+TN	HILLSBORO
+TN	HIXSON
+TN	HOHENWALD
+TN	HOLLADAY
+TN	HOLLOW ROCK
+TN	HORNBEAK
+TN	HORNSBY
+TN	HUMBOLDT
+TN	HUNTINGDON
+TN	HUNTLAND
+TN	HUNTSVILLE
+TN	HURON
+TN	HURRICANE MILLS
+TN	HURRICNE MLLS
+TN	IDLEWILD
+TN	INDIAN MOUND
+TN	IRON CITY
+TN	JACKSBORO
+TN	JACKS CREEK
+TN	JACKSON
+TN	JAMESTOWN
+TN	JASPER
+TN	JEFFERSON CITY
+TN	JEFFERSON CTY
+TN	JELLICO
+TN	JOELTON
+TN	JOHNSON CITY
+TN	JONESBOROUGH
+TN	KARNS
+TN	KELSO
+TN	KENTON
+TN	KIMBALL
+TN	KIMBERLIN HEIGHTS
+TN	KIMBERLIN HGT
+TN	KIMMINS
+TN	KINGSPORT
+TN	KINGSTON
+TN	KINGSTON SPGS
+TN	KINGSTON SPRINGS
+TN	KNOXVILLE
+TN	KODAK
+TN	KYLES FORD
+TN	LACONIA
+TN	LAFAYETTE
+TN	LA FOLLETTE
+TN	LA GRANGE
+TN	LAKE CITY
+TN	LAKELAND
+TN	LAKESITE
+TN	LANCASTER
+TN	LANCING
+TN	LASCASSAS
+TN	LAUREL BLMRY
+TN	LAUREL BLOOMERY
+TN	LA VERGNE
+TN	LAVINIA
+TN	LAWRENCEBURG
+TN	LEBANON
+TN	LENOIR CITY
+TN	LENOX
+TN	LEOMA
+TN	LEWISBURG
+TN	LEXINGTON
+TN	LIBERTY
+TN	LIMESTONE
+TN	LINDEN
+TN	LIVINGSTON
+TN	LOBELVILLE
+TN	LONE MOUNTAIN
+TN	LOOKOUT MOUNTAIN
+TN	LOOKOUT MTN
+TN	LORETTO
+TN	LOUDON
+TN	LOUISVILLE
+TN	LOWLAND
+TN	LUPTON CITY
+TN	LURAY
+TN	LUTTRELL
+TN	LUTTS
+TN	LYLES
+TN	LYNCHBURG
+TN	LYNNVILLE
+TN	MACON
+TN	MADISON
+TN	MADISONVILLE
+TN	MANCHESTER
+TN	MANSFIELD
+TN	MARTIN
+TN	MARYVILLE
+TN	MASCOT
+TN	MASON
+TN	MAURY CITY
+TN	MAYNARDVILLE
+TN	MC DONALD
+TN	MC EWEN
+TN	MC KENZIE
+TN	MC LEMORESVILLE
+TN	MC LEMORESVLE
+TN	MC MINNVILLE
+TN	MEDINA
+TN	MEDON
+TN	MELROSE
+TN	MEMPHIS
+TN	MERCER
+TN	MICHIE
+TN	MIDDLETON
+TN	MIDWAY
+TN	MILAN
+TN	MILLEDGEVILLE
+TN	MILLIGAN COLL
+TN	MILLIGAN COLLEGE
+TN	MILLINGTON
+TN	MILTON
+TN	MINOR HILL
+TN	MISTON
+TN	MITCHELLVILLE
+TN	MOHAWK
+TN	MONROE
+TN	MONTEAGLE
+TN	MONTEREY
+TN	MOORESBURG
+TN	MORLEY
+TN	MORRIS CHAPEL
+TN	MORRISON
+TN	MORRISTOWN
+TN	MOSCOW
+TN	MOSHEIM
+TN	MOSS
+TN	MOUNTAIN CITY
+TN	MOUNTAIN HOME
+TN	MOUNT CARMEL
+TN	MOUNT JULIET
+TN	MOUNT PLEASANT
+TN	MT CARMEL
+TN	MTN HOME
+TN	MT PLEASANT
+TN	MULBERRY
+TN	MUNFORD
+TN	MURFREESBORO
+TN	NASHVILLE
+TN	NEWBERN
+TN	NEWCOMB
+TN	NEW JOHNSONVILLE
+TN	NEW JOHSONVLE
+TN	NEW MARKET
+TN	NEWPORT
+TN	NEW TAZEWELL
+TN	NIOTA
+TN	NOLENSVILLE
+TN	NORENE
+TN	NORMANDY
+TN	NORRIS
+TN	NUNNELLY
+TN	OAKDALE
+TN	OAKFIELD
+TN	OAKLAND
+TN	OAK RIDGE
+TN	OBION
+TN	OCOEE
+TN	OLD FORT
+TN	OLD HICKORY
+TN	OLIVEHILL
+TN	OLIVER SPGS
+TN	OLIVER SPRINGS
+TN	ONEIDA
+TN	ONLY
+TN	OOLTEWAH
+TN	ORLINDA
+TN	OZONE
+TN	PALL MALL
+TN	PALMER
+TN	PALMERSVILLE
+TN	PALMYRA
+TN	PARIS
+TN	PARKER CROSSROADS
+TN	PARKER XROADS
+TN	PARROTTSVILLE
+TN	PARSONS
+TN	PEGRAM
+TN	PELHAM
+TN	PETERSBURG
+TN	PETROS
+TN	PHILADELPHIA
+TN	PICKWICK DAM
+TN	PIGEON FORGE
+TN	PIKEVILLE
+TN	PINEY FLATS
+TN	PINSON
+TN	PIONEER
+TN	PIPERTON
+TN	PLEASANT HILL
+TN	PLEASANT SHADE
+TN	PLEASANT SHDE
+TN	PLEASANT VIEW
+TN	PLEASANTVILLE
+TN	POCAHONTAS
+TN	PORTLAND
+TN	POSTELLE
+TN	POWDER SPGS
+TN	POWDER SPRINGS
+TN	POWELL
+TN	POWELLS CROSSROADS
+TN	POWELLS CRSRD
+TN	PRIMM SPRINGS
+TN	PROSPECT
+TN	PRUDEN
+TN	PULASKI
+TN	PURYEAR
+TN	QUEBECK
+TN	RAMER
+TN	RAVENSCROFT
+TN	READYVILLE
+TN	REAGAN
+TN	RED BANK
+TN	RED BLNG SPGS
+TN	RED BOILING SPRINGS
+TN	RELIANCE
+TN	RICEVILLE
+TN	RICKMAN
+TN	RIDDLETON
+TN	RIDGELY
+TN	RIDGETOP
+TN	RIPLEY
+TN	RIVERWATCH
+TN	RIVES
+TN	ROAN MOUNTAIN
+TN	ROBBINS
+TN	ROCK BRIDGE
+TN	ROCKFORD
+TN	ROCK ISLAND
+TN	ROCKVALE
+TN	ROCKWOOD
+TN	ROGERSVILLE
+TN	ROSSVILLE
+TN	ROYAL
+TN	RUGBY
+TN	RUSSELLVILLE
+TN	RUTHERFORD
+TN	RUTLEDGE
+TN	SAINT ANDREWS
+TN	SAINT JOSEPH
+TN	SALE CREEK
+TN	SALTILLO
+TN	SAMBURG
+TN	SANTA FE
+TN	SARDIS
+TN	SAULSBURY
+TN	SAVANNAH
+TN	SCOTTS HILL
+TN	SELMER
+TN	SEQUATCHIE
+TN	SEVIERVILLE
+TN	SEWANEE
+TN	SEYMOUR
+TN	SHADY VALLEY
+TN	SHARON
+TN	SHARPS CHAPEL
+TN	SHAWANEE
+TN	SHELBYVILLE
+TN	SHERWOOD
+TN	SHILOH
+TN	SIGNAL MOUNTAIN
+TN	SIGNAL MTN
+TN	SILERTON
+TN	SILVER POINT
+TN	SLAYDEN
+TN	SMARTT
+TN	SMITHVILLE
+TN	SMYRNA
+TN	SNEEDVILLE
+TN	SODDY DAISY
+TN	SOMERVILLE
+TN	SOUTH FULTON
+TN	SOUTH PITTSBURG
+TN	SOUTHSIDE
+TN	SPARTA
+TN	SPEEDWELL
+TN	SPENCER
+TN	S PITTSBURG
+TN	SPRING CITY
+TN	SPRING CREEK
+TN	SPRINGFIELD
+TN	SPRING HILL
+TN	SPRINGVILLE
+TN	STANTON
+TN	STANTONVILLE
+TN	STEWART
+TN	STRAWBERRY PLAINS
+TN	STRAW PLAINS
+TN	SUGAR TREE
+TN	SUMMERTOWN
+TN	SUMMITVILLE
+TN	SUNBRIGHT
+TN	SURGOINSVILLE
+TN	SWEETWATER
+TN	TAFT
+TN	TALBOTT
+TN	TALLASSEE
+TN	TAZEWELL
+TN	TELFORD
+TN	TELLICO PLAINS
+TN	TELLICO PLNS
+TN	TEN MILE
+TN	TENNESSEE RDG
+TN	TENNESSEE RIDGE
+TN	THOMPSONS STATION
+TN	THOMPSONS STN
+TN	THORN HILL
+TN	THREE WAY
+TN	TIGRETT
+TN	TIPTON
+TN	TIPTONVILLE
+TN	TOONE
+TN	TOWNSEND
+TN	TRACY CITY
+TN	TRADE
+TN	TREADWAY
+TN	TRENTON
+TN	TREZEVANT
+TN	TRIMBLE
+TN	TROY
+TN	TULLAHOMA
+TN	TURTLETOWN
+TN	TUSCULUM COLL
+TN	UNICOI
+TN	UNION CITY
+TN	UNIONVILLE
+TN	VANLEER
+TN	VIOLA
+TN	VONORE
+TN	WALLAND
+TN	WALLING
+TN	WARTBURG
+TN	WARTRACE
+TN	WASHBURN
+TN	WATAUGA
+TN	WATERTOWN
+TN	WATTS BAR DAM
+TN	WAVERLY
+TN	WAYNESBORO
+TN	WESTMORELAND
+TN	WESTPOINT
+TN	WESTPORT
+TN	WHITE BLUFF
+TN	WHITE HOUSE
+TN	WHITE PINE
+TN	WHITESBURG
+TN	WHITES CREEK
+TN	WHITESIDE
+TN	WHITEVILLE
+TN	WHITLEYVILLE
+TN	WHITWELL
+TN	WILDER
+TN	WILDERSVILLE
+TN	WILLIAMSPORT
+TN	WILLISTON
+TN	WINCHESTER
+TN	WINFIELD
+TN	WOODBURY
+TN	WOODLAND MILLS
+TN	WOODLAND MLS
+TN	WOODLAWN
+TN	WRIGLEY
+TN	WYNNBURG
+TN	YORKVILLE
+TN	YUMA
+TX	ABBOTT
+TX	ABERNATHY
+TX	ABILENE
+TX	ACE
+TX	ACKERLY
+TX	ACTON
+TX	ADDISON
+TX	ADKINS
+TX	ADRIAN
+TX	AFTON
+TX	AGUA DULCE
+TX	AIKEN
+TX	ALAMO
+TX	ALAMO HEIGHTS
+TX	ALANREED
+TX	ALBA
+TX	ALBANY
+TX	ALBERT
+TX	ALEDO
+TX	ALICE
+TX	ALIEF
+TX	ALLEN
+TX	ALLEYTON
+TX	ALLISON
+TX	ALPINE
+TX	ALTAIR
+TX	ALTA LOMA
+TX	ALTO
+TX	ALTON
+TX	ALVARADO
+TX	ALVIN
+TX	ALVORD
+TX	AMARILLO
+TX	AMES
+TX	AMHERST
+TX	ANAHUAC
+TX	ANDERSON
+TX	ANDICE
+TX	ANDREWS
+TX	ANGLETON
+TX	ANNA
+TX	ANNONA
+TX	ANSON
+TX	ANTHONY
+TX	ANTON
+TX	APPLE SPRINGS
+TX	AQUILLA
+TX	ARANSAS PASS
+TX	ARCADIA
+TX	ARCHER CITY
+TX	ARCOLA
+TX	ARGYLE
+TX	ARLINGTON
+TX	ARMSTRONG
+TX	ARP
+TX	ART
+TX	ARTESIA WELLS
+TX	ARTHUR CITY
+TX	ASHERTON
+TX	ASPERMONT
+TX	ATASCOCITA
+TX	ATASCOSA
+TX	ATHENS
+TX	ATLANTA
+TX	AUBREY
+TX	AURORA
+TX	AUSTIN
+TX	AUSTWELL
+TX	AVALON
+TX	AVERY
+TX	AVINGER
+TX	AVOCA
+TX	AXTELL
+TX	AZLE
+TX	BACLIFF
+TX	BAGWELL
+TX	BAILEY
+TX	BAIRD
+TX	BALCH SPRINGS
+TX	BALCONES HEIGHTS
+TX	BALCONES HTS
+TX	BALLINGER
+TX	BALMORHEA
+TX	BANDERA
+TX	BANGS
+TX	BANQUETE
+TX	BARDWELL
+TX	BARKER
+TX	BARKSDALE
+TX	BARNHART
+TX	BARNUM
+TX	BARRY
+TX	BARSTOW
+TX	BARTLETT
+TX	BARTONVILLE
+TX	BASTROP
+TX	BATESVILLE
+TX	BATSON
+TX	BAY CITY
+TX	BAYOU VISTA
+TX	BAYSIDE
+TX	BAYTOWN
+TX	BAYVIEW
+TX	BEACH CITY
+TX	BEASLEY
+TX	BEAUMONT
+TX	BEBE
+TX	BECKVILLE
+TX	BEDFORD
+TX	BEDIAS
+TX	BEE CAVE
+TX	BEE CAVES
+TX	BEE HOUSE
+TX	BEEVILLE
+TX	BELLAIRE
+TX	BELLEVUE
+TX	BELLMEAD
+TX	BELLS
+TX	BELLVILLE
+TX	BELMONT
+TX	BELTON
+TX	BEN ARNOLD
+TX	BENAVIDES
+TX	BEN BOLT
+TX	BENBROOK
+TX	BEND
+TX	BEN FRANKLIN
+TX	BENJAMIN
+TX	BEN WHEELER
+TX	BERCLAIR
+TX	BERGHEIM
+TX	BERTRAM
+TX	BEST
+TX	BEVERLY HILLS
+TX	BG BND NTL PK
+TX	BIG BEND NATIONAL PARK
+TX	BIGFOOT
+TX	BIGGS FIELD
+TX	BIG LAKE
+TX	BIG SANDY
+TX	BIG SPRING
+TX	BIG WELLS
+TX	BIROME
+TX	BISHOP
+TX	BIVINS
+TX	BLACK
+TX	BLACKWELL
+TX	BLANCO
+TX	BLANKET
+TX	BLEDSOE
+TX	BLEIBLERVILLE
+TX	BLESSING
+TX	BLOOMBURG
+TX	BLOOMING GROVE
+TX	BLOOMING GRV
+TX	BLOOMINGTON
+TX	BLOSSOM
+TX	BLUEGROVE
+TX	BLUE MOUND
+TX	BLUE RIDGE
+TX	BLUFF DALE
+TX	BLUFFTON
+TX	BLUM
+TX	BOERNE
+TX	BOGATA
+TX	BOLING
+TX	BON AMI
+TX	BONHAM
+TX	BON WIER
+TX	BOOKER
+TX	BOOTH
+TX	BORGER
+TX	BOSTON
+TX	BOVINA
+TX	BOWIE
+TX	BOYD
+TX	BOYS RANCH
+TX	BRACKETTVILLE
+TX	BRADY
+TX	BRANDON
+TX	BRASHEAR
+TX	BRAZORIA
+TX	BRECKENRIDGE
+TX	BREMOND
+TX	BRENHAM
+TX	BRIARCLIFF
+TX	BRIDGE CITY
+TX	BRIDGEPORT
+TX	BRIGGS
+TX	BRISCOE
+TX	BROADDUS
+TX	BROCK
+TX	BRONSON
+TX	BRONTE
+TX	BROOKELAND
+TX	BROOKESMITH
+TX	BROOKS AFB
+TX	BROOKS CB
+TX	BROOKS CITY BASE
+TX	BROOKSHIRE
+TX	BROOKSIDE VILLAGE
+TX	BROOKSIDE VL
+TX	BROOKSTON
+TX	BROWNFIELD
+TX	BROWNSBORO
+TX	BROWNSVILLE
+TX	BROWNWOOD
+TX	BRUCEVILLE
+TX	BRUNI
+TX	BRYAN
+TX	BRYSON
+TX	BUCHANAN DAM
+TX	BUCKHOLTS
+TX	BUDA
+TX	BUFFALO
+TX	BUFFALO GAP
+TX	BULA
+TX	BULLARD
+TX	BULVERDE
+TX	BUNA
+TX	BURKBURNETT
+TX	BURKE
+TX	BURKETT
+TX	BURKEVILLE
+TX	BURLESON
+TX	BURLINGTON
+TX	BURNET
+TX	BURTON
+TX	BUSHLAND
+TX	BYERS
+TX	BYNUM
+TX	CACTUS
+TX	CADDO
+TX	CADDO MILLS
+TX	CALDWELL
+TX	CALL
+TX	CALLIHAM
+TX	CALLISBURG
+TX	CALVERT
+TX	CAMDEN
+TX	CAMERON
+TX	CAMPBELL
+TX	CAMPBELLTON
+TX	CAMP VERDE
+TX	CAMP WOOD
+TX	CANADIAN
+TX	CANTON
+TX	CANUTILLO
+TX	CANYON
+TX	CANYON LAKE
+TX	CARBON
+TX	CARLSBAD
+TX	CARLTON
+TX	CARMINE
+TX	CARRIZO SPGS
+TX	CARRIZO SPRINGS
+TX	CARROLLTON
+TX	CARTHAGE
+TX	CASON
+TX	CASTELL
+TX	CASTLE HILLS
+TX	CASTROVILLE
+TX	CATARINA
+TX	CAT SPRING
+TX	CAYUGA
+TX	CEDAR CREEK
+TX	CEDAR HILL
+TX	CEDAR LANE
+TX	CEDAR PARK
+TX	CEE VEE
+TX	CELESTE
+TX	CELINA
+TX	CENTER
+TX	CENTER POINT
+TX	CENTERVILLE
+TX	CENTRALIA
+TX	CHANDLER
+TX	CHANNELVIEW
+TX	CHANNING
+TX	CHAPMAN RANCH
+TX	CHAPPELL HILL
+TX	CHARLOTTE
+TX	CHATFIELD
+TX	CHEROKEE
+TX	CHESTER
+TX	CHICO
+TX	CHICOTA
+TX	CHILDRESS
+TX	CHILLICOTHE
+TX	CHILTON
+TX	CHINA
+TX	CHINA GROVE
+TX	CHINA SPRING
+TX	CHIRENO
+TX	CHRIESMAN
+TX	CHRISTINE
+TX	CHRISTOVAL
+TX	CIBOLO
+TX	CISCO
+TX	CITY BY THE SEA
+TX	CLARENDON
+TX	CLARKSVILLE
+TX	CLARKSVILLE CITY
+TX	CLARKSVLE CTY
+TX	CLAUDE
+TX	CLAYTON
+TX	CLEAR LAKE SHORES
+TX	CLEAR LK SHRS
+TX	CLEBURNE
+TX	CLEMVILLE
+TX	CLEVELAND
+TX	CLIFTON
+TX	CLINT
+TX	CLODINE
+TX	CLUTCH CITY
+TX	CLUTE
+TX	CLYDE
+TX	COAHOMA
+TX	COLDSPRING
+TX	COLEMAN
+TX	COLLEGEPORT
+TX	COLLEGE STA
+TX	COLLEGE STATION
+TX	COLLEYVILLE
+TX	COLLINSVILLE
+TX	COLMESNEIL
+TX	COLORADO CITY
+TX	COLUMBUS
+TX	COMANCHE
+TX	COMBES
+TX	COMBINE
+TX	COMFORT
+TX	COMMERCE
+TX	COMO
+TX	COMSTOCK
+TX	CONCAN
+TX	CONCEPCION
+TX	CONCORD
+TX	CONE
+TX	CONROE
+TX	CONVERSE
+TX	COOKVILLE
+TX	COOLIDGE
+TX	COOPER
+TX	COPEVILLE
+TX	COPPELL
+TX	COPPERAS COVE
+TX	COPPER CANYON
+TX	CORINTH
+TX	CORPUS CHRISTI
+TX	CORRIGAN
+TX	CORSICANA
+TX	COST
+TX	COTTON CENTER
+TX	COTTONWD SHRS
+TX	COTTONWOOD SHORES
+TX	COTULLA
+TX	COUPLAND
+TX	COVE
+TX	COVINGTON
+TX	COYANOSA
+TX	CRANDALL
+TX	CRANE
+TX	CRANFILLS GAP
+TX	CRAWFORD
+TX	CREEDMOOR
+TX	CRESSON
+TX	CROCKETT
+TX	CROSBY
+TX	CROSBYTON
+TX	CROSS PLAINS
+TX	CROSSROADS
+TX	CROWELL
+TX	CROWLEY
+TX	CRP CHRISTI
+TX	CRYSTAL BEACH
+TX	CRYSTAL CITY
+TX	CTY BY THE SE
+TX	CUERO
+TX	CUMBY
+TX	CUNEY
+TX	CUNNINGHAM
+TX	CUSHING
+TX	CUT AND SHOOT
+TX	CYPRESS
+TX	CYPRESS MILL
+TX	DAINGERFIELD
+TX	DAISETTA
+TX	DALE
+TX	DALHART
+TX	DALLARDSVILLE
+TX	DALLAS
+TX	DAMON
+TX	DANBURY
+TX	DANCIGER
+TX	DANEVANG
+TX	DARROUZETT
+TX	DAVILLA
+TX	DAWN
+TX	DAWSON
+TX	DAYTON
+TX	DEANVILLE
+TX	DE BERRY
+TX	DECATUR
+TX	DECKER PR
+TX	DECKER PRAIRIE
+TX	DEER PARK
+TX	DE KALB
+TX	DE LEON
+TX	DELL CITY
+TX	DELMITA
+TX	DEL RIO
+TX	DEL VALLE
+TX	DENISON
+TX	DENNIS
+TX	DENTON
+TX	DENVER CITY
+TX	DEPORT
+TX	DERMOTT
+TX	DESDEMONA
+TX	DESOTO
+TX	DETROIT
+TX	DEVERS
+TX	DEVINE
+TX	DEWEYVILLE
+TX	DFW
+TX	DFW AIRPORT
+TX	D HANIS
+TX	DIALVILLE
+TX	DIANA
+TX	DIBOLL
+TX	DICKENS
+TX	DICKINSON
+TX	DIKE
+TX	DILLEY
+TX	DIME BOX
+TX	DIMMITT
+TX	DINERO
+TX	DOBBIN
+TX	DODD CITY
+TX	DODGE
+TX	DODSON
+TX	DOGWOOD
+TX	DONIE
+TX	DONNA
+TX	DOOLE
+TX	DORCHESTER
+TX	DOSS
+TX	DOUBLE OAK
+TX	DOUCETTE
+TX	DOUGHERTY
+TX	DOUGLASS
+TX	DOUGLASSVILLE
+TX	DRIFTWOOD
+TX	DRIPPING SPGS
+TX	DRIPPING SPRINGS
+TX	DRISCOLL
+TX	DRYDEN
+TX	DUBLIN
+TX	DUMAS
+TX	DUMONT
+TX	DUNCANVILLE
+TX	DUNLAY
+TX	DUNN
+TX	DYESS AFB
+TX	EAGLE LAKE
+TX	EAGLE PASS
+TX	EARLY
+TX	EARTH
+TX	EAST BERNARD
+TX	EASTLAND
+TX	EASTON
+TX	EAST TAWAKONI
+TX	ECLETO
+TX	ECTOR
+TX	EDCOUCH
+TX	EDDY
+TX	EDEN
+TX	EDGEWOOD
+TX	EDINBURG
+TX	EDMONSON
+TX	EDNA
+TX	EDROY
+TX	EGYPT
+TX	ELBERT
+TX	EL CAMPO
+TX	EL CENIZO
+TX	ELDORADO
+TX	ELDORADO AFS
+TX	ELECTRA
+TX	ELGIN
+TX	ELIASVILLE
+TX	EL INDIO
+TX	ELKHART
+TX	EL LAGO
+TX	ELLINGER
+TX	ELMATON
+TX	ELMENDORF
+TX	ELM MOTT
+TX	ELMO
+TX	EL PASO
+TX	ELSA
+TX	ELYSIAN FIELDS
+TX	ELYSIAN FLDS
+TX	EMORY
+TX	ENCHANTED OAK
+TX	ENCHANTED OAKS
+TX	ENCINAL
+TX	ENCINO
+TX	ENERGY
+TX	ENLOE
+TX	ENNIS
+TX	ENOCHS
+TX	EOLA
+TX	ERA
+TX	ESCAPEES
+TX	ESTELLINE
+TX	ETOILE
+TX	EULESS
+TX	EUSTACE
+TX	EVADALE
+TX	EVANT
+TX	EVERMAN
+TX	FABENS
+TX	FAIRFIELD
+TX	FAIR OAKS
+TX	FAIR OAKS RANCH
+TX	FAIRVIEW
+TX	FALCON
+TX	FALCON HEIGHTS
+TX	FALCON HTS
+TX	FALFURRIAS
+TX	FALLS CITY
+TX	FANNIN
+TX	FARMERS BRANCH
+TX	FARMERS BRNCH
+TX	FARMERSVILLE
+TX	FARNSWORTH
+TX	FARWELL
+TX	FATE
+TX	FAYETTEVILLE
+TX	FENTRESS
+TX	FERRIS
+TX	FIELDTON
+TX	FIFE
+TX	FISCHER
+TX	FLAT
+TX	FLATONIA
+TX	FLINT
+TX	FLOMOT
+TX	FLORENCE
+TX	FLORESVILLE
+TX	FLOWERMOUND
+TX	FLOWER MOUND
+TX	FLOYDADA
+TX	FLUVANNA
+TX	FLYNN
+TX	FOLLETT
+TX	FOREST
+TX	FORESTBURG
+TX	FOREST HILL
+TX	FORNEY
+TX	FORRESTON
+TX	FORSAN
+TX	FORT BLISS
+TX	FORT DAVIS
+TX	FORT HANCOCK
+TX	FORT HOOD
+TX	FORT MCKAVETT
+TX	FORT MC KAVETT
+TX	FORT SAM HOUSTON
+TX	FORT STOCKTON
+TX	FORT WORTH
+TX	FOWLERTON
+TX	FRANCITAS
+TX	FRANKLIN
+TX	FRANKSTON
+TX	FRED
+TX	FREDERICKSBRG
+TX	FREDERICKSBURG
+TX	FREDONIA
+TX	FREEPORT
+TX	FREER
+TX	FRESNO
+TX	FRIENDSWOOD
+TX	FRIONA
+TX	FRISCO
+TX	FRITCH
+TX	FROST
+TX	FRUITVALE
+TX	FT SM HOUSTON
+TX	FULSHEAR
+TX	FULTON
+TX	GAIL
+TX	GAINESVILLE
+TX	GALENA PARK
+TX	GALLATIN
+TX	GALVESTON
+TX	GANADO
+TX	GARCIASVILLE
+TX	GARDEN CITY
+TX	GARDENDALE
+TX	GARDEN RIDGE
+TX	GARDEN VALLEY
+TX	GARLAND
+TX	GARRISON
+TX	GARWOOD
+TX	GARY
+TX	GATESVILLE
+TX	GAUSE
+TX	GENEVA
+TX	GEORGETOWN
+TX	GEORGE WEST
+TX	GERONIMO
+TX	GIDDINGS
+TX	GILCHRIST
+TX	GILLETT
+TX	GILMER
+TX	GIRARD
+TX	GIRVIN
+TX	GLADEWATER
+TX	GLAZIER
+TX	GLEN FLORA
+TX	GLENN HEIGHTS
+TX	GLEN ROSE
+TX	GLIDDEN
+TX	GOBER
+TX	GODLEY
+TX	GOLDEN
+TX	GOLDSBORO
+TX	GOLDSMITH
+TX	GOLDTHWAITE
+TX	GOLIAD
+TX	GONZALES
+TX	GOODFELLOW AFB
+TX	GOODFELOW AFB
+TX	GOODRICH
+TX	GORDON
+TX	GORDONVILLE
+TX	GOREE
+TX	GORMAN
+TX	GOULDBUSK
+TX	GRAFORD
+TX	GRAHAM
+TX	GRANBURY
+TX	GRANDFALLS
+TX	GRAND PRAIRIE
+TX	GRAND SALINE
+TX	GRANDVIEW
+TX	GRANGER
+TX	GRANGERLAND
+TX	GRANITE SHLS
+TX	GRAPE CREEK
+TX	GRAPELAND
+TX	GRAPEVINE
+TX	GREENVILLE
+TX	GREENWOOD
+TX	GREGORY
+TX	GRIDIRON
+TX	GROESBECK
+TX	GROOM
+TX	GROVES
+TX	GROVETON
+TX	GRULLA
+TX	GRUVER
+TX	GUERRA
+TX	GUN BARREL CITY
+TX	GUN BARREL CY
+TX	GUNTER
+TX	GUSTINE
+TX	GUTHRIE
+TX	GUY
+TX	HALE CENTER
+TX	HALLETTSVILLE
+TX	HALLSVILLE
+TX	HALTOM CITY
+TX	HAMILTON
+TX	HAMLIN
+TX	HAMSHIRE
+TX	HANKAMER
+TX	HAPPY
+TX	HARDIN
+TX	HARGILL
+TX	HARKER HEIGHTS
+TX	HARKER HTS
+TX	HARLETON
+TX	HARLINGEN
+TX	HARPER
+TX	HARROLD
+TX	HART
+TX	HARTLEY
+TX	HARWOOD
+TX	HASKELL
+TX	HASLET
+TX	HASSE
+TX	HAWKINS
+TX	HAWLEY
+TX	HEARNE
+TX	HEARTLAND
+TX	HEATH
+TX	HEATHRIDGE
+TX	HEBBRONVILLE
+TX	HEDLEY
+TX	HEIDENHEIMER
+TX	HELOTES
+TX	HEMPHILL
+TX	HEMPSTEAD
+TX	HENDERSON
+TX	HENRIETTA
+TX	HEREFORD
+TX	HERMLEIGH
+TX	HEWITT
+TX	HEXT
+TX	HICKORY CREEK
+TX	HICO
+TX	HIDALGO
+TX	HIDEAWAY
+TX	HIDE A WAY
+TX	HIGGINS
+TX	HIGH ISLAND
+TX	HIGHLAND HAVEN
+TX	HIGHLAND HAVN
+TX	HIGHLANDS
+TX	HIGHLAND VILL
+TX	HIGHLAND VILLAGE
+TX	HILL COUNTRY VILLAGE
+TX	HILLISTER
+TX	HILLSBORO
+TX	HILLTOP LAKES
+TX	HITCHCOCK
+TX	HL CNTRY VLG
+TX	HOBSON
+TX	HOCHHEIM
+TX	HOCKLEY
+TX	HOLLAND
+TX	HOLLIDAY
+TX	HOLLY LAKE RANCH
+TX	HOLLY LK RNCH
+TX	HOLLYWOOD PARK
+TX	HOLLYWOOD PK
+TX	HONDO
+TX	HONEY GROVE
+TX	HOOKS
+TX	HORIZON CITY
+TX	HORSESHOE BAY
+TX	HOUSTON
+TX	HOWARDWICK
+TX	HOWE
+TX	HUBBARD
+TX	HUDSON OAKS
+TX	HUFFMAN
+TX	HUFSMITH
+TX	HUGHES SPGS
+TX	HUGHES SPRINGS
+TX	HULL
+TX	HUMBLE
+TX	HUNGERFORD
+TX	HUNT
+TX	HUNTINGTON
+TX	HUNTSVILLE
+TX	HURST
+TX	HUTCHINS
+TX	HUTTO
+TX	HYE
+TX	IDALOU
+TX	IMPERIAL
+TX	INDIAN LAKE
+TX	INDUSTRY
+TX	INEZ
+TX	INGLESIDE
+TX	INGRAM
+TX	IOLA
+TX	IOWA PARK
+TX	IRA
+TX	IRAAN
+TX	IREDELL
+TX	IRENE
+TX	IRVING
+TX	ITALY
+TX	ITASCA
+TX	IVANHOE
+TX	IZORO
+TX	JACKSBORO
+TX	JACKSONVILLE
+TX	JAMAICA BEACH
+TX	JARRELL
+TX	JASPER
+TX	JAYTON
+TX	JEFFERSON
+TX	JERMYN
+TX	JERSEY VILLAGE
+TX	JERSEY VLG
+TX	JEWETT
+TX	JOAQUIN
+TX	JOHNSON CITY
+TX	JOINERVILLE
+TX	JONESBORO
+TX	JONES CREEK
+TX	JONESTOWN
+TX	JONESVILLE
+TX	JOSEPHINE
+TX	JOSHUA
+TX	JOURDANTON
+TX	JUDSON
+TX	JUNCTION
+TX	JUSTICEBURG
+TX	JUSTIN
+TX	KAMAY
+TX	KARNACK
+TX	KARNES CITY
+TX	KATY
+TX	KAUFMAN
+TX	KEECHI
+TX	KEENE
+TX	KELLER
+TX	KELLY USA
+TX	KEMAH
+TX	KEMP
+TX	KEMPNER
+TX	KENDALIA
+TX	KENDLETON
+TX	KENEDY
+TX	KENNARD
+TX	KENNEDALE
+TX	KENNEY
+TX	KENT
+TX	KERENS
+TX	KERMIT
+TX	KERRICK
+TX	KERRVILLE
+TX	KILDARE
+TX	KILGORE
+TX	KILLEEN
+TX	KINGSBURY
+TX	KINGSLAND
+TX	KINGSVILLE
+TX	KINGSVILLE NAVAL AIR STATION
+TX	KINGSVLLE NAS
+TX	KINGSVL NAVAL
+TX	KINGWOOD
+TX	KIRBY
+TX	KIRBYVILLE
+TX	KIRVIN
+TX	KLEIN
+TX	KLONDIKE
+TX	KNICKERBOCKER
+TX	KNIPPA
+TX	KNOTT
+TX	KNOX CITY
+TX	KOPPERL
+TX	KOSSE
+TX	KOUNTZE
+TX	KRESS
+TX	KRUGERVILLE
+TX	KRUM
+TX	KURTEN
+TX	KYLE
+TX	LA BLANCA
+TX	LACKLAND
+TX	LACKLAND AFB
+TX	LACKLAND A F B
+TX	LA COSTE
+TX	LACY LAKEVIEW
+TX	LADONIA
+TX	LA FERIA
+TX	LAGO VISTA
+TX	LA GRANGE
+TX	LAGUNA PARK
+TX	LAGUNA VISTA
+TX	LAIRD HILL
+TX	LAJITAS
+TX	LA JOYA
+TX	LAKE CITY
+TX	LAKE CREEK
+TX	LAKE DALLAS
+TX	LAKEHILLS
+TX	LAKE JACKSON
+TX	LAKE KIOWA
+TX	LAKE LIMESTONE
+TX	LAKESIDE
+TX	LAKEVIEW
+TX	LAKEWAY
+TX	LAKEWOOD VILLAGE
+TX	LAKEWOOD VLG
+TX	LAKE WORTH
+TX	LA MARQUE
+TX	LAMESA
+TX	LA MESA
+TX	LAMPASAS
+TX	LANCASTER
+TX	LANE CITY
+TX	LANEVILLE
+TX	LANGTRY
+TX	LANTANA
+TX	LA PORTE
+TX	LA PRYOR
+TX	LAREDO
+TX	LARUE
+TX	LA SALLE
+TX	LASARA
+TX	LATEXO
+TX	LAUGHLIN AFB
+TX	LAUGHLIN A F B
+TX	LAVERNIA
+TX	LA VERNIA
+TX	LA VILLA
+TX	LAVON
+TX	LA WARD
+TX	LAWN
+TX	LAZBUDDIE
+TX	LEADAY
+TX	LEAGUE CITY
+TX	LEAKEY
+TX	LEANDER
+TX	LEARY
+TX	LEDBETTER
+TX	LEESBURG
+TX	LEESVILLE
+TX	LEFORS
+TX	LEGGETT
+TX	LELIA LAKE
+TX	LEMING
+TX	LENORAH
+TX	LEONA
+TX	LEONARD
+TX	LEON JUNCTION
+TX	LEON VALLEY
+TX	LEROY
+TX	LEVELLAND
+TX	LEVI STRAUSS
+TX	LEVI STRAUSS EVACUEE CTR
+TX	LEWISVILLE
+TX	LEXINGTON
+TX	LIBERTY
+TX	LIBERTY HILL
+TX	LILLIAN
+TX	LINCOLN
+TX	LINDALE
+TX	LINDEN
+TX	LINDSAY
+TX	LINGLEVILLE
+TX	LINN
+TX	LIPAN
+TX	LIPSCOMB
+TX	LISSIE
+TX	LITTLE ELM
+TX	LITTLEFIELD
+TX	LITTLE RIVER ACADEMY
+TX	LIVE OAK
+TX	LIVERPOOL
+TX	LIVINGSTON
+TX	LK LIMESTONE
+TX	LLANO
+TX	LOCKHART
+TX	LOCKNEY
+TX	LODI
+TX	LOG CABIN
+TX	LOHN
+TX	LOLITA
+TX	LOMETA
+TX	LONDON
+TX	LONE OAK
+TX	LONE STAR
+TX	LONG BRANCH
+TX	LONG MOTT
+TX	LONGVIEW
+TX	LOOP
+TX	LOPENO
+TX	LORAINE
+TX	LORENA
+TX	LORENZO
+TX	LOS EBANOS
+TX	LOS FRESNOS
+TX	LOS INDIOS
+TX	LOST PINES
+TX	LOTT
+TX	LOUISE
+TX	LOVELADY
+TX	LOVING
+TX	LOWAKE
+TX	LOZANO
+TX	LTL RVR ACAD
+TX	LUBBOCK
+TX	LUCAS
+TX	LUEDERS
+TX	LUFKIN
+TX	LULING
+TX	LUMBERTON
+TX	LYFORD
+TX	LYONS
+TX	LYTLE
+TX	MABANK
+TX	MACDONA
+TX	MADISONVILLE
+TX	MAGNOLIA
+TX	MAGNOLIA SPGS
+TX	MAGNOLIA SPRINGS
+TX	MALAKOFF
+TX	MALONE
+TX	MANCHACA
+TX	MANOR
+TX	MANSFIELD
+TX	MANVEL
+TX	MAPLE
+TX	MARATHON
+TX	MARBLE FALLS
+TX	MARFA
+TX	MARIETTA
+TX	MARION
+TX	MARKHAM
+TX	MARLIN
+TX	MARQUEZ
+TX	MARSHALL
+TX	MART
+TX	MARTINDALE
+TX	MARTINSVILLE
+TX	MARYNEAL
+TX	MASON
+TX	MASTERSON
+TX	MATADOR
+TX	MATAGORDA
+TX	MATHIS
+TX	MAUD
+TX	MAURICEVILLE
+TX	MAXWELL
+TX	MAY
+TX	MAYDELLE
+TX	MAYPEARL
+TX	MAYSFIELD
+TX	MCADOO
+TX	MCALLEN
+TX	MCCAMEY
+TX	MC CAMEY
+TX	MC CAULLEY
+TX	MCCOY
+TX	MCDADE
+TX	MC DADE
+TX	MCDONALD OBS
+TX	MCDONALD OBSERVATORY
+TX	MCFADDIN
+TX	MC GREGOR
+TX	MCKINNEY
+TX	MC KINNEY
+TX	MCLEAN
+TX	MC LEOD
+TX	MCMAHAN
+TX	MCNEIL
+TX	MC NEIL
+TX	MCQUEENEY
+TX	MC QUEENEY
+TX	MEADOW
+TX	MEADOWLAKES
+TX	MEADOWS PLACE
+TX	MEDINA
+TX	MEGARGEL
+TX	MELISSA
+TX	MELVIN
+TX	MEMPHIS
+TX	MENARD
+TX	MENTONE
+TX	MERCEDES
+TX	MERETA
+TX	MERIDIAN
+TX	MERIT
+TX	MERKEL
+TX	MERTENS
+TX	MERTZON
+TX	MESQUITE
+TX	MEXIA
+TX	MEYERSVILLE
+TX	MIAMI
+TX	MICO
+TX	MIDFIELD
+TX	MIDKIFF
+TX	MIDLAND
+TX	MIDLOTHIAN
+TX	MIDWAY
+TX	MILAM
+TX	MILANO
+TX	MILES
+TX	MILFORD
+TX	MILLERSVIEW
+TX	MILLICAN
+TX	MILLSAP
+TX	MINDEN
+TX	MINEOLA
+TX	MINERAL
+TX	MINERAL WELLS
+TX	MINGUS
+TX	MIRANDO CITY
+TX	MISSION
+TX	MISSOURI CITY
+TX	MOBEETIE
+TX	MONAHANS
+TX	MONROE CITY
+TX	MONTAGUE
+TX	MONTALBA
+TX	MONT BELVIEU
+TX	MONTE ALTO
+TX	MONTGOMERY
+TX	MOODY
+TX	MOORE
+TX	MORAN
+TX	MORGAN
+TX	MORGAN MILL
+TX	MORGANS POINT
+TX	MORGANS POINT RESORT
+TX	MORSE
+TX	MORTON
+TX	MOSCOW
+TX	MOULTON
+TX	MOUND
+TX	MOUNTAIN CITY
+TX	MOUNTAIN HOME
+TX	MOUNT CALM
+TX	MOUNT ENTERPRISE
+TX	MOUNT PLEASANT
+TX	MOUNT SELMAN
+TX	MOUNT VERNON
+TX	MT ENTERPRISE
+TX	MT PLEASANT
+TX	MT SYLVAN
+TX	MT VERNON
+TX	MUENSTER
+TX	MULDOON
+TX	MULESHOE
+TX	MULLIN
+TX	MUMFORD
+TX	MUNDAY
+TX	MURCHISON
+TX	MURPHY
+TX	MYRA
+TX	NACOGDOCHES
+TX	NADA
+TX	NAPLES
+TX	NASH
+TX	NAS/JRB
+TX	NATALIA
+TX	NAVAL AIR STATION/ JRB
+TX	NAVASOTA
+TX	NAZARETH
+TX	NECHES
+TX	NEDERLAND
+TX	NEEDVILLE
+TX	NEIMAN MARCUS
+TX	NEMO
+TX	NEVADA
+TX	NEWARK
+TX	NEW BADEN
+TX	NEW BOSTON
+TX	NEW BRAUNFELS
+TX	NEW CANEY
+TX	NEWCASTLE
+TX	NEW DEAL
+TX	NEW DIANA
+TX	NEW HOME
+TX	NEW LONDON
+TX	NEW SUMMERFIELD
+TX	NEW SUMMERFLD
+TX	NEWTON
+TX	NEW ULM
+TX	NEW WAVERLY
+TX	NIEDERWALD
+TX	NIXON
+TX	NOCONA
+TX	NOLAN
+TX	NOLANVILLE
+TX	NOME
+TX	NORDHEIM
+TX	NORMANGEE
+TX	NORMANNA
+TX	NORTH BRANCH
+TX	NORTHFIELD
+TX	NORTH HOUSTON
+TX	NORTH RICHLAND HILLS
+TX	NORTH ZULCH
+TX	NORTON
+TX	NOTREES
+TX	NOVICE
+TX	N RICHLND HLS
+TX	NURSERY
+TX	OAKALLA
+TX	OAKHURST
+TX	OAKLAND
+TX	OAK LEAF
+TX	OAK POINT
+TX	OAKVILLE
+TX	OAKWOOD
+TX	O BRIEN
+TX	ODELL
+TX	ODEM
+TX	ODESSA
+TX	ODONNELL
+TX	OGLESBY
+TX	OILTON
+TX	OKLAUNION
+TX	OLDEN
+TX	OLD GLORY
+TX	OLD OCEAN
+TX	OLD RIVER-WINFREE
+TX	OLD RVR-WNFRE
+TX	OLMITO
+TX	OLMOS PARK
+TX	OLNEY
+TX	OLTON
+TX	OMAHA
+TX	ONALASKA
+TX	ORANGE
+TX	ORANGEFIELD
+TX	ORANGE GROVE
+TX	ORCHARD
+TX	ORE CITY
+TX	ORLA
+TX	OTTINE
+TX	OTTO
+TX	OVALO
+TX	OVERTON
+TX	OVILLA
+TX	OYSTER CREEK
+TX	OZONA
+TX	PADUCAH
+TX	PAIGE
+TX	PAINT ROCK
+TX	PALACIOS
+TX	PALESTINE
+TX	PALMER
+TX	PALMHURST
+TX	PALMVIEW
+TX	PALO PINTO
+TX	PALUXY
+TX	PAMPA
+TX	PANDORA
+TX	PANHANDLE
+TX	PANNA MARIA
+TX	PANOLA
+TX	PANORAMA VILLAGE
+TX	PANORAMA VLG
+TX	PANTEGO
+TX	PARADISE
+TX	PARIS
+TX	PARK ROW
+TX	PASADENA
+TX	PATTISON
+TX	PATTON
+TX	PATTONVILLE
+TX	PAWNEE
+TX	PEARLAND
+TX	PEARSALL
+TX	PEAR VALLEY
+TX	PEASTER
+TX	PECAN GAP
+TX	PECOS
+TX	PEGGY
+TX	PENDLETON
+TX	PENELOPE
+TX	PENITAS
+TX	PENNINGTON
+TX	PENWELL
+TX	PEP
+TX	PERRIN
+TX	PERRY
+TX	PERRYTON
+TX	PETERSBURG
+TX	PETROLIA
+TX	PETTUS
+TX	PETTY
+TX	PFLUGERVILLE
+TX	PHARR
+TX	PHILLIPS
+TX	PICKTON
+TX	PIERCE
+TX	PILOT POINT
+TX	PINEHURST
+TX	PINELAND
+TX	PIPE CREEK
+TX	PITTSBURG
+TX	PLACEDO
+TX	PLAINS
+TX	PLAINVIEW
+TX	PLANO
+TX	PLANTERSVILLE
+TX	PLEASANTON
+TX	PLEDGER
+TX	PLUM
+TX	POINT
+TX	POINTBLANK
+TX	POINT COMFORT
+TX	POINT VENTURE
+TX	POLLOK
+TX	PONDER
+TX	PONTOTOC
+TX	POOLVILLE
+TX	PORT ACRES
+TX	PORT ARANSAS
+TX	PORT ARTHUR
+TX	PORT BOLIVAR
+TX	PORTER
+TX	PORT ISABEL
+TX	PORTLAND
+TX	PORT LAVACA
+TX	PORT MANSFIELD
+TX	PORT NECHES
+TX	PORT O CONNOR
+TX	POST
+TX	POTEET
+TX	POTH
+TX	POTTSBORO
+TX	POTTSVILLE
+TX	POWDERLY
+TX	POWELL
+TX	POYNOR
+TX	PRAIRIE HILL
+TX	PRAIRIE LEA
+TX	PRAIRIE VIEW
+TX	PREMONT
+TX	PRESIDIO
+TX	PRICE
+TX	PRIDDY
+TX	PRINCETON
+TX	PROCTOR
+TX	PROGRESO
+TX	PROGRESO LAKES
+TX	PROGRESO LKS
+TX	PROSPER
+TX	PROVIDENCE VILLAGE
+TX	PROVIDNCE VIL
+TX	PRT MANSFIELD
+TX	PURDON
+TX	PURMELA
+TX	PUTNAM
+TX	PYOTE
+TX	QUAIL
+TX	QUANAH
+TX	QUEEN CITY
+TX	QUEMADO
+TX	QUINLAN
+TX	QUINTANA
+TX	QUITAQUE
+TX	QUITMAN
+TX	RAINBOW
+TX	RAISIN
+TX	RALLS
+TX	RANCHO VIEJO
+TX	RANDOLPH
+TX	RANDOLPH AFB
+TX	RANDOLPH A F B
+TX	RANDOLPH AIR
+TX	RANDOLPH AIR FORCE BASE
+TX	RANGER
+TX	RANKIN
+TX	RANSOM CANYON
+TX	RATCLIFF
+TX	RAVENNA
+TX	RAYMONDVILLE
+TX	RAYWOOD
+TX	REAGAN
+TX	REALITOS
+TX	RECYCLE
+TX	REDFORD
+TX	RED OAK
+TX	RED ROCK
+TX	RED SPRINGS
+TX	REDWATER
+TX	REFUGIO
+TX	REKLAW
+TX	RENO
+TX	RHOME
+TX	RICE
+TX	RICHARDS
+TX	RICHARDSON
+TX	RICHLAND
+TX	RICHLAND HILLS
+TX	RICHLAND HLS
+TX	RICHLAND SPGS
+TX	RICHLAND SPRINGS
+TX	RICHMOND
+TX	RICHWOOD
+TX	RIDGE
+TX	RIESEL
+TX	RINGGOLD
+TX	RIO BRAVO
+TX	RIO FRIO
+TX	RIO GRANDE CITY
+TX	RIO GRANDE CY
+TX	RIO HONDO
+TX	RIO MEDINA
+TX	RIO VISTA
+TX	RISING STAR
+TX	RIVER OAKS
+TX	RIVERSIDE
+TX	RIVIERA
+TX	ROANOKE
+TX	ROANS PRAIRIE
+TX	ROARING SPNGS
+TX	ROARING SPRINGS
+TX	ROBERT LEE
+TX	ROBINSON
+TX	ROBSTOWN
+TX	ROBY
+TX	ROCHELLE
+TX	ROCHESTER
+TX	ROCKDALE
+TX	ROCK ISLAND
+TX	ROCKLAND
+TX	ROCKPORT
+TX	ROCKSPRINGS
+TX	ROCKWALL
+TX	ROCKWOOD
+TX	ROGANVILLE
+TX	ROGERS
+TX	ROLLINGWOOD
+TX	ROMA
+TX	ROMAN FOREST
+TX	ROMAYOR
+TX	ROOSEVELT
+TX	ROPESVILLE
+TX	ROSANKY
+TX	ROSCOE
+TX	ROSEBUD
+TX	ROSENBERG
+TX	ROSHARON
+TX	ROSS
+TX	ROSSER
+TX	ROSSTON
+TX	ROTAN
+TX	ROUND MOUNTAIN
+TX	ROUND MTN
+TX	ROUND ROCK
+TX	ROUND TOP
+TX	ROWENA
+TX	ROWLETT
+TX	ROXTON
+TX	ROYSE CITY
+TX	RULE
+TX	RUNAWAY BAY
+TX	RUNGE
+TX	RUSK
+TX	RYE
+TX	SABINAL
+TX	SABINE PASS
+TX	SACHSE
+TX	SACUL
+TX	SADLER
+TX	SAGERTON
+TX	SAGINAW
+TX	SAINT HEDWIG
+TX	SAINT JO
+TX	SALADO
+TX	SALINENO
+TX	SALT FLAT
+TX	SALTILLO
+TX	SAM NORWOOD
+TX	SAN ANGELO
+TX	SAN ANTONIO
+TX	SAN AUGUSTINE
+TX	SAN BENITO
+TX	SANDERSON
+TX	SANDIA
+TX	SAN DIEGO
+TX	SAN ELIZARIO
+TX	SAN FELIPE
+TX	SANFORD
+TX	SANGER
+TX	SAN ISIDRO
+TX	SAN JUAN
+TX	SAN LEON
+TX	SAN MARCOS
+TX	SAN PERLITA
+TX	SAN SABA
+TX	SANTA ANNA
+TX	SANTA ELENA
+TX	SANTA FE
+TX	SANTA MARIA
+TX	SANTA ROSA
+TX	SANTO
+TX	SAN YGNACIO
+TX	SARAGOSA
+TX	SARATOGA
+TX	SARGENT
+TX	SARITA
+TX	SATIN
+TX	SAVANNAH
+TX	SAVOY
+TX	SCHERTZ
+TX	SCHULENBURG
+TX	SCHWERTNER
+TX	SCOTLAND
+TX	SCOTTSVILLE
+TX	SCROGGINS
+TX	SCURRY
+TX	SEABROOK
+TX	SEADRIFT
+TX	SEAGOVILLE
+TX	SEAGRAVES
+TX	SEALY
+TX	SEBASTIAN
+TX	SECURITY SVC
+TX	SEGNO
+TX	SEGUIN
+TX	SELMA
+TX	SELMAN CITY
+TX	SEMINOLE
+TX	SEVEN POINTS
+TX	SEYMOUR
+TX	SHADY SHORES
+TX	SHAFTER
+TX	SHALLOWATER
+TX	SHAMROCK
+TX	SHAVANO PARK
+TX	SHEFFIELD
+TX	SHELBYVILLE
+TX	SHENANDOAH
+TX	SHEPHERD
+TX	SHEPPARD AFB
+TX	SHERIDAN
+TX	SHERMAN
+TX	SHINER
+TX	SHIRO
+TX	SHOREACRES
+TX	SIDNEY
+TX	SIENNA PLANT
+TX	SIENNA PLANTATION
+TX	SIERRA BLANCA
+TX	SILSBEE
+TX	SILVER
+TX	SILVERTON
+TX	SIMMS
+TX	SIMONTON
+TX	SINGLETON
+TX	SINTON
+TX	SKELLYTOWN
+TX	SKIDMORE
+TX	SLATON
+TX	SLIDELL
+TX	SLOCUM
+TX	SMILEY
+TX	SMITHLAND
+TX	SMITHVILLE
+TX	SMYER
+TX	SNOOK
+TX	SNYDER
+TX	SOCORRO
+TX	SOMERSET
+TX	SOMERVILLE
+TX	SONORA
+TX	SOUR LAKE
+TX	SOUTH BEND
+TX	SOUTH HOUSTON
+TX	SOUTHLAKE
+TX	SOUTHLAND
+TX	SOUTHMAYD
+TX	SOUTH PADRE ISLAND
+TX	SOUTH PLAINS
+TX	SOUTH TEXARKANA
+TX	SPADE
+TX	S PADRE ISLE
+TX	S PADRE ISL E
+TX	SPEAKS
+TX	SPEARMAN
+TX	SPICEWOOD
+TX	SPLENDORA
+TX	SPOFFORD
+TX	SPRING
+TX	SPRING BRANCH
+TX	SPRINGLAKE
+TX	SPRINGTOWN
+TX	SPUR
+TX	SPURGER
+TX	STAFFORD
+TX	STAMFORD
+TX	STANTON
+TX	STAPLES
+TX	STAR
+TX	STEPHENVILLE
+TX	STERLING CITY
+TX	S TEXARKANA
+TX	STINNETT
+TX	STOCKDALE
+TX	STONEWALL
+TX	STOWELL
+TX	ST PAUL
+TX	STRATFORD
+TX	STRAWN
+TX	STREETMAN
+TX	SUBLIME
+TX	SUDAN
+TX	SUGAR LAND
+TX	SULLIVAN CITY
+TX	SULPHUR BLUFF
+TX	SULPHUR SPGS
+TX	SULPHUR SPRINGS
+TX	SUL ROSS
+TX	SUMMERFIELD
+TX	SUMNER
+TX	SUN CITY
+TX	SUNDOWN
+TX	SUNNYVALE
+TX	SUNRAY
+TX	SUNRISE BEACH
+TX	SUNSET
+TX	SUNSET VALLEY
+TX	SURFSIDE BCH
+TX	SURFSIDE BEACH
+TX	SUTHERLAND SPRINGS
+TX	SUTHERLND SPG
+TX	SWEENY
+TX	SWEET HOME
+TX	SWEETWATER
+TX	SWINNEY SWITCH
+TX	SWINNEY SWTCH
+TX	SYLVESTER
+TX	TAFT
+TX	TAHOKA
+TX	TALCO
+TX	TALPA
+TX	TARPLEY
+TX	TARZAN
+TX	TATUM
+TX	TAYLOR
+TX	TAYLOR LAKE VILLAGE
+TX	TAYLOR LK VLG
+TX	TEAGUE
+TX	TEHUACANA
+TX	TELEGRAPH
+TX	TELEPHONE
+TX	TELFERNER
+TX	TELL
+TX	TEMPLE
+TX	TENAHA
+TX	TENN COLONY
+TX	TENNESSEE COLONY
+TX	TENNYSON
+TX	TERLINGUA
+TX	TERRELL
+TX	TERRELL HILLS
+TX	TEXARKANA
+TX	TEXAS CITY
+TX	TEXLINE
+TX	TEXON
+TX	THE COLONY
+TX	THE HILLS
+TX	THE WOODLANDS
+TX	THICKET
+TX	THOMASTON
+TX	THOMPSONS
+TX	THORNDALE
+TX	THORNTON
+TX	THRALL
+TX	THREE RIVERS
+TX	THROCKMORTON
+TX	TIKI ISLAND
+TX	TILDEN
+TX	TIMPSON
+TX	TIOGA
+TX	TIVOLI
+TX	TOKIO
+TX	TOLAR
+TX	TOMBALL
+TX	TOM BEAN
+TX	TORNILLO
+TX	TOW
+TX	TOYAH
+TX	TOYAHVALE
+TX	TRENT
+TX	TRENTON
+TX	TRINIDAD
+TX	TRINITY
+TX	TROPHY CLUB
+TX	TROUP
+TX	TROY
+TX	TRUSCOTT
+TX	TULETA
+TX	TULIA
+TX	TURKEY
+TX	TURNERTOWN
+TX	TUSCOLA
+TX	TWITTY
+TX	TYE
+TX	TYLER
+TX	TYNAN
+TX	UHLAND
+TX	UMBARGER
+TX	UNIVERSAL CITY
+TX	UNIVERSAL CTY
+TX	UTOPIA
+TX	UVALDE
+TX	V A HOSPITAL
+TX	VALENTINE
+TX	VALERA
+TX	VALLE DE ORO
+TX	VALLEY MILLS
+TX	VALLEY SPRING
+TX	VALLEY VIEW
+TX	VAN
+TX	VAN ALSTYNE
+TX	VANCOURT
+TX	VANDERBILT
+TX	VANDERPOOL
+TX	VAN HORN
+TX	VAN VLECK
+TX	VEALMOOR
+TX	VEGA
+TX	VENUS
+TX	VERA
+TX	VERHALEN
+TX	VERIBEST
+TX	VERNON
+TX	VICTORIA
+TX	VIDOR
+TX	VIGO PARK
+TX	VILLAGE MILLS
+TX	VILLAGE OF THE HILLS
+TX	VINTON
+TX	VLG O THE HLS
+TX	VOCA
+TX	VOLENTE
+TX	VON ORMY
+TX	VOSS
+TX	VOTAW
+TX	WACO
+TX	WADSWORTH
+TX	WAELDER
+TX	WAKA
+TX	WAKE VILLAGE
+TX	WALBURG
+TX	WALL
+TX	WALLER
+TX	WALLIS
+TX	WALLISVILLE
+TX	WALNUT SPGS
+TX	WALNUT SPRINGS
+TX	WARDA
+TX	WARING
+TX	WARREN
+TX	WARRENTON
+TX	WASHINGTON
+TX	WASKOM
+TX	WATAUGA
+TX	WATER VALLEY
+TX	WAXAHACHIE
+TX	WAYSIDE
+TX	WEATHERFORD
+TX	WEBBERVILLE
+TX	WEBSTER
+TX	WEESATCHE
+TX	WEIMAR
+TX	WEINERT
+TX	WEIR
+TX	WELCH
+TX	WELLBORN
+TX	WELLINGTON
+TX	WELLMAN
+TX	WELLS
+TX	WESLACO
+TX	WEST
+TX	WESTBROOK
+TX	WEST COLUMBIA
+TX	WESTHOFF
+TX	WESTLAKE
+TX	WEST LAKE HILLS
+TX	WEST LAKE HLS
+TX	WESTMINSTER
+TX	WESTON
+TX	WEST ORANGE
+TX	WEST POINT
+TX	WEST TAWAKONI
+TX	WEST UNIVERSITY PLACE
+TX	WESTWORTH VILLAGE
+TX	WESTWORTH VLG
+TX	WETMORE
+TX	WHARTON
+TX	WHEELER
+TX	WHEELOCK
+TX	WHITE DEER
+TX	WHITEFACE
+TX	WHITEHOUSE
+TX	WHITE OAK
+TX	WHITESBORO
+TX	WHITE SETTLEMENT
+TX	WHITEWRIGHT
+TX	WHITHARRAL
+TX	WHITNEY
+TX	WHITSETT
+TX	WHITT
+TX	WHON
+TX	WHT SETTLEMT
+TX	WICHITA FALLS
+TX	WICKETT
+TX	WIERGATE
+TX	WILDORADO
+TX	WILFORD HALL
+TX	WILFORD HALL USAF HOSP
+TX	WILLIS
+TX	WILLOW CITY
+TX	WILLOW PARK
+TX	WILLS POINT
+TX	WILMER
+TX	WILSON
+TX	WIMBERLEY
+TX	WINCHESTER
+TX	WINDCREST
+TX	WINDOM
+TX	WINDTHORST
+TX	WINFIELD
+TX	WINGATE
+TX	WINK
+TX	WINNIE
+TX	WINNSBORO
+TX	WINONA
+TX	WINTERS
+TX	WODEN
+TX	WOLFE CITY
+TX	WOLFFORTH
+TX	WOODCREEK
+TX	WOODLAKE
+TX	WOODLAWN
+TX	WOODSBORO
+TX	WOODSON
+TX	WOODVILLE
+TX	WOODWAY
+TX	WORTHAM
+TX	WRIGHTSBORO
+TX	W UNIV PL
+TX	WYLIE
+TX	YANCEY
+TX	YANTIS
+TX	YOAKUM
+TX	YORKTOWN
+TX	ZAPATA
+TX	ZAVALLA
+TX	ZEPHYR
+UT	ABRAHAM
+UT	ADAMSVILLE
+UT	ALPINE
+UT	ALTA
+UT	ALTAMONT
+UT	ALTON
+UT	ALTONAH
+UT	AMALGA
+UT	AMERICAN FORK
+UT	ANETH
+UT	ANNABELLA
+UT	ANTIMONY
+UT	APPLE VALLEY
+UT	AURORA
+UT	AUSTIN
+UT	AXTELL
+UT	BALLARD
+UT	BEAR RIVER CITY
+UT	BEAR RIVER CY
+UT	BEAVER
+UT	BENJAMIN
+UT	BENSON
+UT	BERYL
+UT	BICKNELL
+UT	BIG WATER
+UT	BINGHAM CANYON
+UT	BINGHAM CYN
+UT	BLANDING
+UT	BLUEBELL
+UT	BLUFF
+UT	BLUFFDALE
+UT	BONANZA
+UT	BOULDER
+UT	BOUNTIFUL
+UT	BRIAN HEAD
+UT	BRIDGELAND
+UT	BRIGHAM CITY
+UT	BRIGHTON
+UT	BROOKSIDE
+UT	BRYCE
+UT	BRYCE CANYON
+UT	BRYCE CANYON CITY
+UT	BRYCE CYN CTY
+UT	BULLFROG
+UT	CACHE JCT
+UT	CACHE JUNCTION
+UT	CANNONVILLE
+UT	CANYON POINT
+UT	CASTLE DALE
+UT	CASTLE VALLEY
+UT	CEDAR CITY
+UT	CEDAR FORT
+UT	CEDAR HILLS
+UT	CEDAR VALLEY
+UT	CENTERFIELD
+UT	CENTERVILLE
+UT	CENTRAL
+UT	CENTRAL VALLEY
+UT	CENTRAL VLY
+UT	CHESTER
+UT	CIRCLEVILLE
+UT	CISCO
+UT	CLARKSTON
+UT	CLAWSON
+UT	CLEARFIELD
+UT	CLEVELAND
+UT	CLINTON
+UT	COALVILLE
+UT	COLLINSTON
+UT	COPPERTON
+UT	CORINNE
+UT	CORNISH
+UT	COTTONWD HGTS
+UT	COTTONWOOD
+UT	COTTONWOOD HEIGHTS
+UT	COTTONWOOD HEIGHTS CITY
+UT	COVE
+UT	CROYDON
+UT	DAMMERON VALLEY
+UT	DAMMERON VLY
+UT	DEER MOUNTAIN
+UT	DEER VALLEY
+UT	DELTA
+UT	DESERET
+UT	DEWEYVILLE
+UT	DRAPER
+UT	DUCHESNE
+UT	DUCK CREEK VILLAGE
+UT	DUCK CRK VLG
+UT	DUGWAY
+UT	DUTCH JOHN
+UT	EAGLE MOUNTAIN
+UT	EAGLE MTN
+UT	EAST CARBON
+UT	ECHO
+UT	EDEN
+UT	ELBERTA
+UT	ELK RIDGE
+UT	ELMO
+UT	ELSINORE
+UT	ELWOOD
+UT	EMERY
+UT	ENOCH
+UT	ENTERPRISE
+UT	EPHRAIM
+UT	ERDA
+UT	ESCALANTE
+UT	EUREKA
+UT	FAIRFIELD
+UT	FAIRVIEW
+UT	FARMINGTON
+UT	FARR WEST
+UT	FAYETTE
+UT	FERRON
+UT	FIELDING
+UT	FILLMORE
+UT	FORT DUCHESNE
+UT	FOUNTAIN GREEN
+UT	FOUNTAIN GRN
+UT	FRANCIS
+UT	FREMONT
+UT	FRUIT HEIGHTS
+UT	FRUITLAND
+UT	GARDEN CITY
+UT	GARLAND
+UT	GARRISON
+UT	GENOLA
+UT	GLENDALE
+UT	GLENWOOD
+UT	GOSHEN
+UT	GRANTSVILLE
+UT	GREENHAVEN
+UT	GREEN RIVER
+UT	GREENVILLE
+UT	GREENWICH
+UT	GROUSE CREEK
+UT	GUNLOCK
+UT	GUNNISON
+UT	GUSHER
+UT	HALLS CROSSING
+UT	HALLS XING
+UT	HANKSVILLE
+UT	HANNA
+UT	HARRISVILLE
+UT	HATCH
+UT	HEBER CITY
+UT	HELPER
+UT	HENEFER
+UT	HENRIEVILLE
+UT	HERRIMAN
+UT	HIGHLAND
+UT	HILDALE
+UT	HILL AFB
+UT	HILL AIR FORCE BASE
+UT	HINCKLEY
+UT	HITE
+UT	HOLDEN
+UT	HOLLADAY
+UT	HOLLADAY COTTONWOOD
+UT	HOLLADAY CTWD
+UT	HONEYVILLE
+UT	HOOPER
+UT	HOWELL
+UT	HUNTINGTON
+UT	HUNTSVILLE
+UT	HURRICANE
+UT	HYDE PARK
+UT	HYRUM
+UT	IBAPAH
+UT	IVINS
+UT	JENSEN
+UT	JOSEPH
+UT	JUNCTION
+UT	KAMAS
+UT	KANAB
+UT	KANARRAVILLE
+UT	KANESVILLE
+UT	KANOSH
+UT	KAYSVILLE
+UT	KEARNS
+UT	KENILWORTH
+UT	KINGSTON
+UT	KOOSHAREM
+UT	LAKE POINT
+UT	LAKE POWELL
+UT	LAKESIDE
+UT	LAKETOWN
+UT	LAPOINT
+UT	LA SAL
+UT	LA VERKIN
+UT	LAYTON
+UT	LEAMINGTON
+UT	LEEDS
+UT	LEHI
+UT	LEVAN
+UT	LEWISTON
+UT	LIBERTY
+UT	LINDON
+UT	LOA
+UT	LOGAN
+UT	LYMAN
+UT	LYNNDYL
+UT	MAGNA
+UT	MAMMOTH
+UT	MANILA
+UT	MANTI
+UT	MANTUA
+UT	MAPLETON
+UT	MARRIOTT-SLATERVILLE CITY
+UT	MARYSVALE
+UT	MAYFIELD
+UT	MEADOW
+UT	MENDON
+UT	MEXICAN HAT
+UT	MIDVALE
+UT	MIDWAY
+UT	MILFORD
+UT	MILLVILLE
+UT	MINERSVILLE
+UT	MOAB
+UT	MODENA
+UT	MONA
+UT	MONROE
+UT	MONTEZUMA CREEK
+UT	MONTEZUMA CRK
+UT	MONTICELLO
+UT	MONUMENT VALLEY
+UT	MONUMENT VLY
+UT	MORGAN
+UT	MORONI
+UT	MOUNTAIN GREEN
+UT	MOUNTAIN HOME
+UT	MOUNT CARMEL
+UT	MOUNT PLEASANT
+UT	MSC
+UT	MS CITY
+UT	MTN GREEN
+UT	MT PLEASANT
+UT	MURRAY
+UT	MYTON
+UT	NAPLES
+UT	NEOLA
+UT	NEPHI
+UT	NEWCASTLE
+UT	NEW HARMONY
+UT	NEWTON
+UT	NORTH LOGAN
+UT	NORTH OGDEN
+UT	NORTH SALT LAKE
+UT	N SALT LAKE
+UT	OAK CITY
+UT	OAKLEY
+UT	OASIS
+UT	OGDEN
+UT	OPHIR
+UT	ORANGEVILLE
+UT	ORDERVILLE
+UT	OREM
+UT	OURAY
+UT	PANGUITCH
+UT	PARADISE
+UT	PARAGONAH
+UT	PARK CITY
+UT	PARK VALLEY
+UT	PAROWAN
+UT	PARTOUN
+UT	PAYSON
+UT	PENROSE
+UT	PEOA
+UT	PERRY
+UT	PINE VALLEY
+UT	PINTURA
+UT	PLAIN CITY
+UT	PLEASANT GROVE
+UT	PLEASANT GRV
+UT	PLEASANT VIEW
+UT	PLYMOUTH
+UT	PORTAGE
+UT	PRICE
+UT	PROVIDENCE
+UT	PROVO
+UT	RANDLETT
+UT	RANDOLPH
+UT	RED CANYON
+UT	REDMOND
+UT	RICHFIELD
+UT	RICHMOND
+UT	RIVERDALE
+UT	RIVER HEIGHTS
+UT	RIVERSIDE
+UT	RIVERTON
+UT	ROCKVILLE
+UT	ROCKY RDG TWN
+UT	ROCKY RIDGE TOWN
+UT	ROOSEVELT
+UT	ROY
+UT	RUSH VALLEY
+UT	SAINT GEORGE
+UT	SALEM
+UT	SALINA
+UT	SALT LAKE CITY
+UT	SALT LAKE CTY
+UT	SANDY
+UT	SANTA CLARA
+UT	SANTAQUIN
+UT	SARATOGA SPGS
+UT	SARATOGA SPRINGS
+UT	SCIPIO
+UT	SCOFIELD
+UT	SEVIER
+UT	SIGURD
+UT	SLC
+UT	SMITHFIELD
+UT	SNOWBIRD
+UT	SNOWVILLE
+UT	SNYDERVILLE
+UT	SOUTH JORDAN
+UT	SOUTH OGDEN
+UT	SOUTH SALT LAKE
+UT	SOUTH WEBER
+UT	SPANISH FORK
+UT	SPRING CITY
+UT	SPRINGDALE
+UT	SPRINGVILLE
+UT	S SALT LAKE
+UT	SSL
+UT	STANSBURY PARK
+UT	STANSBURY PK
+UT	STERLING
+UT	ST GEORGE
+UT	STOCKTON
+UT	SUGARVILLE
+UT	SUMMIT
+UT	SUNDANCE
+UT	SUNNYSIDE
+UT	SUNSET
+UT	SUTHERLAND
+UT	SYRACUSE
+UT	TABIONA
+UT	TALMAGE
+UT	TAYLOR
+UT	TAYLORSVILLE
+UT	TEASDALE
+UT	TERRA
+UT	THATCHER
+UT	THISTLE
+UT	THOMPSON
+UT	TICABOO
+UT	TOOELE
+UT	TOQUERVILLE
+UT	TORREY
+UT	TREMONTON
+UT	TRENTON
+UT	TRIDELL
+UT	TROPIC
+UT	TROUT CREEK
+UT	UINTAH
+UT	VENICE
+UT	VERNAL
+UT	VERNON
+UT	VEYO
+UT	VINEYARD
+UT	VIRGIN
+UT	WALES
+UT	WALLSBURG
+UT	WANSHIP
+UT	WASHINGTON
+UT	WASHINGTON TERRACE
+UT	WASHINGTON TR
+UT	W BOUNTIFUL
+UT	WELLINGTON
+UT	WELLSVILLE
+UT	WENDOVER
+UT	WEST BOUNTIFUL
+UT	WEST HAVEN
+UT	WEST JORDAN
+UT	WEST POINT
+UT	WEST VALLEY
+UT	WEST VALLEY CITY
+UT	WHITE MESA
+UT	WHITEROCKS
+UT	WILLARD
+UT	WOODLAND HILLS
+UT	WOODLAND HLS
+UT	WOODRUFF
+UT	WOODS CROSS
+UT	W VALLEY CITY
+UT	ZION NATIONAL PARK
+UT	ZION NTL PARK
+VA	ABINGDON
+VA	ACCOMAC
+VA	ACHILLES
+VA	ADVANCE MILLS
+VA	AFTON
+VA	ALBERTA
+VA	ALDIE
+VA	ALEXANDRIA
+VA	ALFONSO
+VA	ALLEGHANY
+VA	ALLISONIA
+VA	ALTAVISTA
+VA	ALTON
+VA	ALUM RIDGE
+VA	AMELIA COURT HOUSE
+VA	AMELIA CT HSE
+VA	AMHERST
+VA	AMISSVILLE
+VA	AMMON
+VA	AMONATE
+VA	AMPTHILL
+VA	ANDOVER
+VA	ANNANDALE
+VA	APPALACHIA
+VA	APPOMATTOX
+VA	ARARAT
+VA	ARCOLA
+VA	ARK
+VA	ARLINGTON
+VA	ARODA
+VA	ARRINGTON
+VA	ARVONIA
+VA	ASHBURN
+VA	ASHLAND
+VA	ASSAWOMAN
+VA	ATKINS
+VA	ATLANTIC
+VA	AUGUSTA SPRGS
+VA	AUGUSTA SPRINGS
+VA	AUSTINVILLE
+VA	AXTON
+VA	AYLETT
+VA	AYLOR
+VA	BACOVA
+VA	BAILEYS CROSSROADS
+VA	BAILEYS XRDS
+VA	BANCO
+VA	BANDY
+VA	BARBOURSVILLE
+VA	BARHAMSVILLE
+VA	BARREN SPGS
+VA	BARREN SPRINGS
+VA	BASKERVILLE
+VA	BASSETT
+VA	BASTIAN
+VA	BASYE
+VA	BATESVILLE
+VA	BATTERY PARK
+VA	BAVON
+VA	BEALETON
+VA	BEAUMONT
+VA	BEAVERDAM
+VA	BEAVERLETT
+VA	BEDFORD
+VA	BEE
+VA	BELLAMY
+VA	BELLE HAVEN
+VA	BELLEVIEW
+VA	BELLEVUE
+VA	BELSPRING
+VA	BENA
+VA	BEN HUR
+VA	BENT MOUNTAIN
+VA	BENTONVILLE
+VA	BERGTON
+VA	BERRYVILLE
+VA	BIG ISLAND
+VA	BIG ROCK
+VA	BIG STONE GAP
+VA	BIRCHLEAF
+VA	BIRDSNEST
+VA	BISHOP
+VA	BLACKRIDGE
+VA	BLACKSBURG
+VA	BLACKSTONE
+VA	BLACKWATER
+VA	BLAIRS
+VA	BLAKES
+VA	BLAND
+VA	BLOXOM
+VA	BLUEFIELD
+VA	BLUE GRASS
+VA	BLUEMONT
+VA	BLUE RIDGE
+VA	BOHANNON
+VA	BOISSEVAIN
+VA	BOLAR
+VA	BON AIR
+VA	BOONES MILL
+VA	BOONESVILLE
+VA	BOSTON
+VA	BOWLING GREEN
+VA	BOYCE
+VA	BOYD TAVERN
+VA	BOYDTON
+VA	BOYKINS
+VA	BRACEY
+VA	BRAMBLETON
+VA	BRANCHVILLE
+VA	BRANDY STA
+VA	BRANDY STATION
+VA	BREAKS
+VA	BREMO BLUFF
+VA	BRIDGEWATER
+VA	BRIGHTWOOD
+VA	BRISTOL
+VA	BRISTOW
+VA	BROADFORD
+VA	BROADLANDS
+VA	BROAD RUN
+VA	BROADWAY
+VA	BRODNAX
+VA	BROOKE
+VA	BROOKNEAL
+VA	BROWNSBURG
+VA	BROWNTOWN
+VA	BRUCETOWN
+VA	BRUINGTON
+VA	BUCHANAN
+VA	BUCKINGHAM
+VA	BUENA VISTA
+VA	BUFFALO JCT
+VA	BUFFALO JUNCTION
+VA	BUMPASS
+VA	BURGESS
+VA	BURKE
+VA	BURKES GARDEN
+VA	BURKEVILLE
+VA	BURNLEYS
+VA	BURNSVILLE
+VA	BURNT CHIMNEY
+VA	BURR HILL
+VA	BYBEE
+VA	CALLANDS
+VA	CALLAO
+VA	CALLAWAY
+VA	CALVERTON
+VA	CAMPBELL
+VA	CANA
+VA	CAPE CHARLES
+VA	CAPEVILLE
+VA	CAPRON
+VA	CARDINAL
+VA	CARET
+VA	CARROLLTON
+VA	CARRSVILLE
+VA	CARSON
+VA	CARTERSVILLE
+VA	CASANOVA
+VA	CASCADE
+VA	CASTLETON
+VA	CASTLEWOOD
+VA	CATAWBA
+VA	CATHARPIN
+VA	CATLETT
+VA	CAUTHORNVILLE
+VA	CAVE SPRING
+VA	CEDAR BLUFF
+VA	CENTER CROSS
+VA	CENTREVILLE
+VA	CERES
+VA	CHAMPLAIN
+VA	CHANCE
+VA	CHANTILLY
+VA	CHARITY
+VA	CHARLES CITY
+VA	CHARLOTTE C H
+VA	CHARLOTTE COURT HOUSE
+VA	CHARLOTTESVILLE
+VA	CHARLOTTESVLE
+VA	CHASE CITY
+VA	CHATHAM
+VA	CHECK
+VA	CHERITON
+VA	CHESAPEAKE
+VA	CHESTER
+VA	CHESTERFIELD
+VA	CHESTER GAP
+VA	CHILHOWIE
+VA	CHINCOTEAGUE
+VA	CHINCOTEAGUE ISLAND
+VA	CHRISTCHURCH
+VA	CHRISTIANSBRG
+VA	CHRISTIANSBURG
+VA	CHURCH ROAD
+VA	CHURCH VIEW
+VA	CHURCHVILLE
+VA	CISMONT
+VA	CLAREMONT
+VA	CLARKSVILLE
+VA	CLAUDVILLE
+VA	CLEAR BROOK
+VA	CLEVELAND
+VA	CLIFFORD
+VA	CLIFTON
+VA	CLIFTON FORGE
+VA	CLINCHBURG
+VA	CLINCHCO
+VA	CLINCHPORT
+VA	CLINTWOOD
+VA	CLOVER
+VA	CLOVERDALE
+VA	CLUSTER SPGS
+VA	CLUSTER SPRINGS
+VA	COBBS CREEK
+VA	COBHAM
+VA	COEBURN
+VA	COLEMAN FALLS
+VA	COLES POINT
+VA	COLLINSVILLE
+VA	COLOGNE
+VA	COLONIAL BCH
+VA	COLONIAL BEACH
+VA	COLONIAL HEIGHTS
+VA	COLONIAL HGTS
+VA	COLUMBIA
+VA	COMMUNITY
+VA	CONAWAY
+VA	CONCORD
+VA	COPPER HILL
+VA	CORBIN
+VA	COUNCIL
+VA	COURTLAND
+VA	COVESVILLE
+VA	COVINGTON
+VA	CRADDOCKVILLE
+VA	CRAIGSVILLE
+VA	CREWE
+VA	CRIDERS
+VA	CRIGLERSVILLE
+VA	CRIMORA
+VA	CRIPPLE CREEK
+VA	CRITZ
+VA	CROCKETT
+VA	CROSS JNCT
+VA	CROSS JUNCTION
+VA	CROZET
+VA	CROZIER
+VA	CRYSTAL HILL
+VA	CULLEN
+VA	CULPEPER
+VA	CUMBERLAND
+VA	CUNNINGHAM
+VA	DABNEYS
+VA	DAHLGREN
+VA	DALE CITY
+VA	DALEVILLE
+VA	DAMASCUS
+VA	DANTE
+VA	DANVILLE
+VA	DARLINGTN HTS
+VA	DARLINGTON HEIGHTS
+VA	DAVENPORT
+VA	DAVIS WHARF
+VA	DAYTON
+VA	DEERFIELD
+VA	DELAPLANE
+VA	DELTAVILLE
+VA	DENDRON
+VA	DEWITT
+VA	DIGGS
+VA	DILLWYN
+VA	DINWIDDIE
+VA	DISPUTANTA
+VA	DOE HILL
+VA	DOGUE
+VA	DOLPHIN
+VA	DORAN
+VA	DOSWELL
+VA	DRAKES BRANCH
+VA	DRAPER
+VA	DREWRYVILLE
+VA	DRYDEN
+VA	DRY FORK
+VA	DUBLIN
+VA	DUFFIELD
+VA	DUGSPUR
+VA	DULLES
+VA	DUMFRIES
+VA	DUNDAS
+VA	DUNGANNON
+VA	DUNN LORING
+VA	DUNNSVILLE
+VA	DUTTON
+VA	DYKE
+VA	EAGLE ROCK
+VA	EARLYSVILLE
+VA	EAST STONE GAP
+VA	EASTVILLE
+VA	EBONY
+VA	EDINBURG
+VA	EDWARDSVILLE
+VA	EGGLESTON
+VA	EHEART
+VA	ELBERON
+VA	ELK CREEK
+VA	ELK GARDEN
+VA	ELKTON
+VA	ELKWOOD
+VA	ELLISTON
+VA	EMORY
+VA	EMPORIA
+VA	ENGLESIDE
+VA	ESMONT
+VA	E STONE GAP
+VA	ETLAN
+VA	ETTRICK
+VA	EVERGREEN
+VA	EVINGTON
+VA	EWING
+VA	EXETER
+VA	EXMORE
+VA	FABER
+VA	FAIRFAX
+VA	FAIRFAX STATION
+VA	FAIRFIELD
+VA	FAIRLAWN
+VA	FALLS CHURCH
+VA	FALLS MILLS
+VA	FALMOUTH
+VA	FANCY GAP
+VA	FARMVILLE
+VA	FARNHAM
+VA	FBI ACADEMY
+VA	FERRUM
+VA	FIELDALE
+VA	FIFE
+VA	FINCASTLE
+VA	FISHERS HILL
+VA	FISHERSVILLE
+VA	FLEET
+VA	FLINT HILL
+VA	FLOYD
+VA	FONESWOOD
+VA	FORD
+VA	FOREST
+VA	FORKSVILLE
+VA	FORK UNION
+VA	FORT A P HILL
+VA	FORT BELVOIR
+VA	FORT BLACKMORE
+VA	FORT CHISWELL
+VA	FORT DEFIANCE
+VA	FORT EUSTIS
+VA	FORT LEE
+VA	FORT MITCHELL
+VA	FORT MONROE
+VA	FORT STORY
+VA	FORT VALLEY
+VA	FOSTER
+VA	FOSTER FALLS
+VA	FRANCONIA
+VA	FRANKLIN
+VA	FRANKTOWN
+VA	FREDERICKSBRG
+VA	FREDERICKSBURG
+VA	FREEMAN
+VA	FREE UNION
+VA	FRIES
+VA	FRONT ROYAL
+VA	FT BELVOIR
+VA	FT BLACKMORE
+VA	FT MYER
+VA	FULKS RUN
+VA	FX STATION
+VA	GAINESVILLE
+VA	GALAX
+VA	GARRISONVILLE
+VA	GASBURG
+VA	GATE CITY
+VA	GLADE HILL
+VA	GLADE SPRING
+VA	GLADSTONE
+VA	GLADYS
+VA	GLASGOW
+VA	GLEN ALLEN
+VA	GLEN LYN
+VA	GLEN WILTON
+VA	GLOUCESTER
+VA	GLOUCESTER POINT
+VA	GLOUCESTER PT
+VA	GLOU POINT
+VA	GOLDBOND
+VA	GOLDVEIN
+VA	GOOCHLAND
+VA	GOODE
+VA	GOODVIEW
+VA	GORDONSVILLE
+VA	GORE
+VA	GOSHEN
+VA	GRAFTON
+VA	GRAVES MILL
+VA	GREAT FALLS
+VA	GREENBACKVILE
+VA	GREENBACKVILLE
+VA	GREEN BAY
+VA	GREENBUSH
+VA	GREENVILLE
+VA	GREENWAY
+VA	GREENWOOD
+VA	GRETNA
+VA	GRIMSTEAD
+VA	GROTTOES
+VA	GRUNDY
+VA	GUM SPRING
+VA	GWYNN
+VA	HACKSNECK
+VA	HACKS NECK
+VA	HADENSVILLE
+VA	HAGUE
+VA	HALIFAX
+VA	HALLIEFORD
+VA	HALLWOOD
+VA	HAMILTON
+VA	HAMPDEN SYDNEY
+VA	HAMPTON
+VA	HANOVER
+VA	HARBORTON
+VA	HARDY
+VA	HARDYVILLE
+VA	HARMAN
+VA	HARRISONBURG
+VA	HARTFIELD
+VA	HARTWOOD
+VA	HAYES
+VA	HAYFIELD
+VA	HAYMARKET
+VA	HAYNESVILLE
+VA	HAYSI
+VA	HAYWOOD
+VA	HEAD WATERS
+VA	HEATHSVILLE
+VA	HENRY
+VA	HERNDON
+VA	HIGHLAND SPGS
+VA	HIGHLAND SPRINGS
+VA	HIGHTOWN
+VA	HILLSBORO
+VA	HILLSVILLE
+VA	HILTONS
+VA	HINTON
+VA	HIWASSEE
+VA	HMPDEN SYDNEY
+VA	HOLLINS
+VA	HOLLINS CLG
+VA	HOLLINS COLLEGE
+VA	HONAKER
+VA	HOOD
+VA	HOPEWELL
+VA	HORNTOWN
+VA	HORSEPEN
+VA	HOT SPRINGS
+VA	HOWARDSVILLE
+VA	HOWERTONS
+VA	HUDDLESTON
+VA	HUDGINS
+VA	HUME
+VA	HUNTLY
+VA	HURLEY
+VA	HURT
+VA	HUSTLE
+VA	INDEPENDENCE
+VA	INDIAN NECK
+VA	INDIAN VALLEY
+VA	INGRAM
+VA	IRON GATE
+VA	IRONTO
+VA	IRVINGTON
+VA	ISLE OF WIGHT
+VA	IVANHOE
+VA	IVOR
+VA	IVY
+VA	JAMAICA
+VA	JAMES STORE
+VA	JAMESTOWN
+VA	JAMESVILLE
+VA	JARRATT
+VA	JAVA
+VA	JEFFERSON MANOR
+VA	JEFFERSON MNR
+VA	JEFFERSONTON
+VA	JENKINS BRG
+VA	JENKINS BRIDGE
+VA	JERSEY
+VA	JETERSVILLE
+VA	JEWELL RIDGE
+VA	JEWELL VALLEY
+VA	JONESVILLE
+VA	JORDAN MINES
+VA	KEELING
+VA	KEENE
+VA	KEEN MOUNTAIN
+VA	KEEZLETOWN
+VA	KELLER
+VA	KENBRIDGE
+VA	KENTS STORE
+VA	KEOKEE
+VA	KESWICK
+VA	KEYSVILLE
+VA	KILMARNOCK
+VA	KING AND QUEEN COURT HOUSE
+VA	KING GEORGE
+VA	KING QUEEN CH
+VA	KINGSTOWNE
+VA	KING WILLIAM
+VA	KINSALE
+VA	LACEY SPRING
+VA	LACKEY
+VA	LA CROSSE
+VA	LADYSMITH
+VA	LAFAYETTE
+VA	LAKE FREDERICK
+VA	LAKE OF THE WOODS
+VA	LAKE OF WOODS
+VA	LAKE RIDGE
+VA	LAKESIDE
+VA	LAMBSBURG
+VA	LANCASTER
+VA	LANEVIEW
+VA	LANEXA
+VA	LANGLEY AFB
+VA	LANSDOWNE
+VA	LAUREL FORK
+VA	LAWRENCEVILLE
+VA	LEBANON
+VA	LEBANON CH
+VA	LEBANON CHURCH
+VA	LEE MONT
+VA	LEESBURG
+VA	LENNIG
+VA	LEON
+VA	LEWISETTA
+VA	LEXINGTON
+VA	LIGHTFOOT
+VA	LIGNUM
+VA	LINCOLN
+VA	LINDEN
+VA	LINVILLE
+VA	LITHIA
+VA	LITTLE PLYMOUTH
+VA	LITTLE PLYMTH
+VA	LIVELY
+VA	LK FREDERICK
+VA	LOCUST DALE
+VA	LOCUST GROVE
+VA	LOCUST HILL
+VA	LOCUSTVILLE
+VA	LONG ISLAND
+VA	LORETTO
+VA	LORTON
+VA	LOTTSBURG
+VA	LOUISA
+VA	LOVETTSVILLE
+VA	LOVINGSTON
+VA	LOWESVILLE
+VA	LOW MOOR
+VA	LOWRY
+VA	LUNENBURG
+VA	LURAY
+VA	LYNCHBURG
+VA	LYNCH STATION
+VA	LYNDHURST
+VA	MACHIPONGO
+VA	MACON
+VA	MADISON
+VA	MADISON HEIGHTS
+VA	MADISON HTS
+VA	MADISON MILLS
+VA	MAIDENS
+VA	MANAKIN SABOT
+VA	MANASSAS
+VA	MANASSAS PARK
+VA	MANGOHICK
+VA	MANNBORO
+VA	MANQUIN
+VA	MAPPSVILLE
+VA	MARION
+VA	MARIONVILLE
+VA	MARKHAM
+VA	MARSHALL
+VA	MARTINSVILLE
+VA	MARYUS
+VA	MASCOT
+VA	MASON NECK
+VA	MASSANUTTEN
+VA	MASSIES MILL
+VA	MATHEWS
+VA	MATTAPONI
+VA	MAURERTOWN
+VA	MAVISDALE
+VA	MAXIE
+VA	MAX MEADOWS
+VA	MC CLURE
+VA	MC COY
+VA	MC DOWELL
+VA	MCGAHEYSVILLE
+VA	MC GAHEYSVILLE
+VA	MC KENNEY
+VA	MCLEAN
+VA	MC LEAN
+VA	MEADOWS DAN
+VA	MEADOWS OF DAN
+VA	MEADOWVIEW
+VA	MEARS
+VA	MECHANICSVILLE
+VA	MECHANICSVLLE
+VA	MEHERRIN
+VA	MELFA
+VA	MENDOTA
+VA	MEREDITHVILLE
+VA	MERRIFIELD
+VA	MERRY POINT
+VA	MIDDLEBROOK
+VA	MIDDLEBURG
+VA	MIDDLETOWN
+VA	MIDLAND
+VA	MIDLOTHIAN
+VA	MILES
+VA	MILFORD
+VA	MILLBORO
+VA	MILLERS TAVERN
+VA	MILLERS TAVRN
+VA	MILLWOOD
+VA	MINERAL
+VA	MINE RUN
+VA	MINT SPRING
+VA	MISSION HOME
+VA	MITCHELLS
+VA	MNTPELIER STA
+VA	MOBJACK
+VA	MODEST TOWN
+VA	MOLLUSK
+VA	MONETA
+VA	MONROE
+VA	MONTCLAIR
+VA	MONTEBELLO
+VA	MONTEREY
+VA	MONTEZUMA
+VA	MONTFORD
+VA	MONTICELLO
+VA	MONTPELIER
+VA	MONTPELIER STATION
+VA	MONTROSS
+VA	MONTVALE
+VA	MOON
+VA	MORATTICO
+VA	MORRISVILLE
+VA	MOSBY
+VA	MOSELEY
+VA	MOUNT CRAWFORD
+VA	MOUNT HOLLY
+VA	MOUNT JACKSON
+VA	MOUNT SIDNEY
+VA	MOUNT SOLON
+VA	MOUNT VERNON
+VA	MOUNT WEATHER
+VA	MOUTH OF WILSON
+VA	MOUTH WILSON
+VA	MT CRAWFORD
+VA	MUSTOE
+VA	NARROWS
+VA	NARUNA
+VA	NASONS
+VA	NASSAWADOX
+VA	NATHALIE
+VA	NATURAL BRG
+VA	NATURAL BRIDGE
+VA	NATURAL BRIDGE STATION
+VA	NATURL BR STA
+VA	NAVAL BASE
+VA	NAVAL WEAPONS STATION
+VA	NAV WPNS STA
+VA	NAXERA
+VA	NELLYSFORD
+VA	NELSON
+VA	NELSONIA
+VA	NEW BALTIMORE
+VA	NEWBERN
+VA	NEW CANTON
+VA	NEW CASTLE
+VA	NEW CHURCH
+VA	NEWCOMB HALL
+VA	NEW HOPE
+VA	NEWINGTON
+VA	NEW KENT
+VA	NEW MARKET
+VA	NEW POINT
+VA	NEWPORT
+VA	NEWPORT NEWS
+VA	NEW RIVER
+VA	NEWSOMS
+VA	NEWTOWN
+VA	NICKELSVILLE
+VA	NINDE
+VA	NOKESVILLE
+VA	NORA
+VA	NORFOLK
+VA	NORGE
+VA	NORTH
+VA	NORTH GARDEN
+VA	NORTH SPRINGFIELD
+VA	NORTH TAZEWELL
+VA	NORTON
+VA	NORTONSVILLE
+VA	NORWOOD
+VA	NOTTOWAY
+VA	N SPRINGFIELD
+VA	N TAZEWELL
+VA	NUTTSVILLE
+VA	OAK GROVE
+VA	OAK HALL
+VA	OAK HILL
+VA	OAKPARK
+VA	OAKTON
+VA	OAKWOOD
+VA	OCCOQUAN
+VA	OILVILLE
+VA	OLDHAMS
+VA	ONANCOCK
+VA	ONEMO
+VA	ONLEY
+VA	OPHELIA
+VA	ORANGE
+VA	ORDINARY
+VA	ORISKANY
+VA	ORKNEY SPRINGS
+VA	ORKNEY SPRNGS
+VA	ORLEAN
+VA	OYSTER
+VA	PAEONIAN SPGS
+VA	PAEONIAN SPRINGS
+VA	PAINT BANK
+VA	PAINTER
+VA	PALMYRA
+VA	PAMPLIN
+VA	PARIS
+VA	PARKSLEY
+VA	PARROTT
+VA	PARTLOW
+VA	PATRICK SPGS
+VA	PATRICK SPRINGS
+VA	PATTERSON
+VA	PEARISBURG
+VA	PEARY
+VA	PEMBROKE
+VA	PENHOOK
+VA	PENNINGTN GAP
+VA	PENNINGTON GAP
+VA	PENN LAIRD
+VA	PETERSBURG
+VA	PHENIX
+VA	PHILOMONT
+VA	PILGRIMS KNOB
+VA	PILOT
+VA	PIMMIT
+VA	PINERO
+VA	PINEY RIVER
+VA	PITTSVILLE
+VA	PLAIN VIEW
+VA	PLEASANT VALLEY
+VA	PLEASANT VLY
+VA	POCAHONTAS
+VA	POQUOSON
+VA	PORT HAYWOOD
+VA	PORT REPUBLIC
+VA	PORT ROYAL
+VA	PORTSMOUTH
+VA	POTOMAC
+VA	POTOMAC FALLS
+VA	POUND
+VA	POUNDING MILL
+VA	POWHATAN
+VA	PRATTS
+VA	PRINCE GEORGE
+VA	PRINCE WILLIAM
+VA	PRINCE WM
+VA	PROSPECT
+VA	PROVDENCE FRG
+VA	PROVIDENCE FORGE
+VA	PULASKI
+VA	PUNGOTEAGUE
+VA	PURCELLVILLE
+VA	QUANTICO
+VA	QUICKSBURG
+VA	QUINBY
+VA	QUINQUE
+VA	QUINTON
+VA	RACCOON FORD
+VA	RADFORD
+VA	RADIANT
+VA	RANDOLPH
+VA	RAPHANCK ACAD
+VA	RAPHINE
+VA	RAPIDAN
+VA	RAPPAHANNOCK ACADEMY
+VA	RAVEN
+VA	RAWLINGS
+VA	RECTORTOWN
+VA	REDART
+VA	RED ASH
+VA	RED HOUSE
+VA	RED OAK
+VA	REDWOOD
+VA	REEDVILLE
+VA	REGENCY
+VA	REGINA
+VA	RELIANCE
+VA	REMINGTON
+VA	REPUBLICAN GROVE
+VA	REPUBLICN GRV
+VA	RESCUE
+VA	RESTON
+VA	REVA
+VA	RHOADESVILLE
+VA	RICE
+VA	RICHARDSVILLE
+VA	RICH CREEK
+VA	RICH INT AP
+VA	RICHLANDS
+VA	RICHMOND
+VA	RICHMOND INT AIRPORT
+VA	RIDGE
+VA	RIDGEWAY
+VA	RILEYVILLE
+VA	RINER
+VA	RINGGOLD
+VA	RIPPLEMEAD
+VA	RIVERTON
+VA	RIXEYVILLE
+VA	ROANOKE
+VA	ROCHELLE
+VA	ROCKBDGE BATH
+VA	ROCKBRIDGE BATHS
+VA	ROCKFISH
+VA	ROCKVILLE
+VA	ROCKY GAP
+VA	ROCKY MOUNT
+VA	ROLLINS FORK
+VA	ROSEDALE
+VA	ROSE HILL
+VA	ROSELAND
+VA	ROSSLYN
+VA	ROUND HILL
+VA	ROWE
+VA	RUBY
+VA	RUCKERSVILLE
+VA	RURAL RETREAT
+VA	RUSTBURG
+VA	RUTHER GLEN
+VA	RUTHVILLE
+VA	SAINT CHARLES
+VA	SAINT DAVIDS CHURCH
+VA	SAINT PAUL
+VA	SAINT STEPHENS CHURCH
+VA	SALEM
+VA	SALLIE MAE
+VA	SALTVILLE
+VA	SALUDA
+VA	SANDSTON
+VA	SANDY HOOK
+VA	SANDY LEVEL
+VA	SANDY POINT
+VA	SANFORD
+VA	SAXE
+VA	SAXIS
+VA	SCHLEY
+VA	SCHUYLER
+VA	SCOTTSBURG
+VA	SCOTTSVILLE
+VA	SEAFORD
+VA	SEALSTON
+VA	SEAVIEW
+VA	SEDLEY
+VA	SELMA
+VA	SEVEN CORNERS
+VA	SEVEN FOUNTAINS
+VA	SEVEN FOUNTNS
+VA	SEVEN MILE FD
+VA	SEVEN MILE FORD
+VA	SEVERN
+VA	SHACKLEFORDS
+VA	SHADOW
+VA	SHADWELL
+VA	SHARPS
+VA	SHAWSVILLE
+VA	SHELBY
+VA	SHENANDOAH
+VA	SHENANDOAH CAVERNS
+VA	SHENDOAH CVRN
+VA	SHERANDO
+VA	SHILOH
+VA	SHIPMAN
+VA	SHORTT GAP
+VA	SIMPSONS
+VA	SINGERS GLEN
+VA	SKIPPERS
+VA	SKIPWITH
+VA	SMITHFIELD
+VA	SNELL
+VA	SOMERSET
+VA	SOMERVILLE
+VA	SOUTH BOSTON
+VA	SOUTHBRIDGE
+VA	SOUTH HILL
+VA	SOUTH NORFOLK
+VA	SOUTH RIDING
+VA	SPARTA
+VA	SPEEDWELL
+VA	SPENCER
+VA	SPERRYVILLE
+VA	SPOTSYLVANIA
+VA	SPOTTSWOOD
+VA	SPOUT SPRING
+VA	SPRINGFIELD
+VA	SPRING GROVE
+VA	SPROUSES CORN
+VA	SPROUSES CORNER
+VA	STAFFORD
+VA	STAFFORDSVILLE
+VA	STAFFORDSVLLE
+VA	STANARDSVILLE
+VA	STANLEY
+VA	STANLEYTOWN
+VA	STAR TANNERY
+VA	STATE FARM
+VA	STAUNTON
+VA	ST DAVIDS CH
+VA	STEELES TAVERN
+VA	STEELES TAVRN
+VA	STEPHENS CITY
+VA	STEPHENSON
+VA	STERLING
+VA	STEVENSBURG
+VA	STEVENSVILLE
+VA	ST GEORGE
+VA	STONEGA
+VA	STONE RIDGE
+VA	STONY CREEK
+VA	STRASBURG
+VA	STRATFORD
+VA	ST STEPHNS CH
+VA	STUART
+VA	STUARTS DRAFT
+VA	STUDLEY
+VA	SUDLEY SPGS
+VA	SUDLEY SPRINGS
+VA	SUFFOLK
+VA	SUGAR GROVE
+VA	SULLY STATION
+VA	SUMERDUCK
+VA	SUPPLY
+VA	SURRY
+VA	SUSAN
+VA	SUSSEX
+VA	SUTHERLAND
+VA	SUTHERLIN
+VA	SWEET BRIAR
+VA	SWOOPE
+VA	SWORDS CREEK
+VA	SYRIA
+VA	SYRINGA
+VA	TABB
+VA	TAMWORTH
+VA	TANGIER
+VA	TANNERSVILLE
+VA	TAPPAHANNOCK
+VA	TASLEY
+VA	TAZEWELL
+VA	TEMPERANCEVILLE
+VA	TEMPERANCEVLE
+VA	THAXTON
+VA	THE PLAINS
+VA	THORNBURG
+VA	THORNHILL
+VA	TIMBERLAKE
+VA	TIMBERVILLE
+VA	TIPTOP
+VA	TOANO
+VA	TOMS BROOK
+VA	TOPPING
+VA	TOWNSEND
+VA	TRAMMEL
+VA	TREVILIANS
+VA	TRIANGLE
+VA	TRIPLET
+VA	TROUTDALE
+VA	TROUTVILLE
+VA	TROY
+VA	TURBEVILLE
+VA	TWYMANS MILL
+VA	TYE RIVER
+VA	TYRO
+VA	UNION HALL
+VA	UNIONVILLE
+VA	UNIVERSITY
+VA	UNIVERSITY OF RICHMOND
+VA	UNIV OF RICH
+VA	UNO
+VA	UPPERVILLE
+VA	URBANNA
+VA	VALENTINES
+VA	VANSANT
+VA	VENIA
+VA	VERNON HILL
+VA	VERONA
+VA	VESTA
+VA	VESUVIUS
+VA	VICTORIA
+VA	VIENNA
+VA	VIEWTOWN
+VA	VILLAGE
+VA	VILLAMONT
+VA	VINT HILL FARMS
+VA	VINT HILL FRM
+VA	VINTON
+VA	VIRGILINA
+VA	VIRGINIA BCH
+VA	VIRGINIA BEACH
+VA	VOLNEY
+VA	WACHAPREAGUE
+VA	WAKE
+VA	WAKEFIELD
+VA	WALKERTON
+VA	WALLOPS IS
+VA	WALLOPS ISLAND
+VA	WALTERS
+VA	WARDTOWN
+VA	WARE NECK
+VA	WARFIELD
+VA	WARM SPRINGS
+VA	WARNER
+VA	WARRENTON
+VA	WARSAW
+VA	WASHGTNS BRHP
+VA	WASHINGTON
+VA	WASHINGTONS BIRTHPLACE
+VA	WATERFORD
+VA	WATER VIEW
+VA	WATTSVILLE
+VA	WAVERLY
+VA	WAYNESBORO
+VA	WEBER CITY
+VA	WEEMS
+VA	WEIRWOOD
+VA	WEST AUGUSTA
+VA	WEST END
+VA	WEST MCLEAN
+VA	WEST POINT
+VA	WEST SPRINGFIELD
+VA	WEYERS CAVE
+VA	WHITACRE
+VA	WHITE HALL
+VA	WHITE MARSH
+VA	WHITE PLAINS
+VA	WHITE POST
+VA	WHITE STONE
+VA	WHITETOP
+VA	WHITEWOOD
+VA	WICOMICO
+VA	WICOMICO CHUR
+VA	WICOMICO CHURCH
+VA	WILDWOOD
+VA	WILLIAMSBURG
+VA	WILLIAMSVILLE
+VA	WILLIS
+VA	WILLIS WHARF
+VA	WILMINGTON
+VA	WILSONS
+VA	WINCHESTER
+VA	WINDSOR
+VA	WINGINA
+VA	WINSTON
+VA	WINTERGREEN
+VA	WINTERGREEN RESORT
+VA	WINTERGRN RST
+VA	WIRTZ
+VA	WISE
+VA	WITHAMS
+VA	WOLFORD
+VA	WOLFTOWN
+VA	WOODBERRY FOR
+VA	WOODBERRY FOREST
+VA	WOODBRIDGE
+VA	WOODFORD
+VA	WOODLAWN
+VA	WOODS CROSS ROADS
+VA	WOODS CRS RDS
+VA	WOODSTOCK
+VA	WOODVILLE
+VA	WOOLWINE
+VA	W SPRINGFIELD
+VA	WYLLIESBURG
+VA	WYTHEVILLE
+VA	YALE
+VA	YANCEY MILLS
+VA	YARDS
+VA	YORKTOWN
+VA	ZACATA
+VA	ZANONI
+VA	ZUNI
+VI	CHARLOTTE AMA
+VI	CHARLOTTE AMALIE
+VI	CHRISTIANSTED
+VI	CRUZ BAY
+VI	FREDERIKSTED
+VI	KINGSHILL
+VI	ST CROIX
+VI	ST JOHN
+VI	ST THOMAS
+VT	ADAMANT
+VT	ADDISON
+VT	ALBANY
+VT	ALBURG
+VT	ALBURGH
+VT	ANDOVER
+VT	ARLINGTON
+VT	ASCUTNEY
+VT	ATHENS
+VT	AVERILL
+VT	BAKERSFIELD
+VT	BALTIMORE
+VT	BARNARD
+VT	BARNET
+VT	BARRE
+VT	BARTON
+VT	BEEBE PLAIN
+VT	BEECHER FALLS
+VT	BELLOWS FALLS
+VT	BELMONT
+VT	BELVIDERE CENTER
+VT	BELVIDERE CTR
+VT	BENNINGTON
+VT	BENSON
+VT	BERLIN
+VT	BETHEL
+VT	BLOOMFIELD
+VT	BOLTON VALLEY
+VT	BOMOSEEN
+VT	BONDVILLE
+VT	BRADFORD
+VT	BRAINTREE
+VT	BRANDON
+VT	BRATTLEBORO
+VT	BRDGEWTR CORS
+VT	BREAD LOAF
+VT	BRIDGEWATER
+VT	BRIDGEWATER CORNERS
+VT	BRIDGEWTR COR
+VT	BRIDPORT
+VT	BRISTOL
+VT	BROOKFIELD
+VT	BROOKLINE
+VT	BROWNINGTON
+VT	BROWNSVILLE
+VT	BRUNSWICK
+VT	BURLINGTON
+VT	CABOT
+VT	CALAIS
+VT	CAMBRIDGE
+VT	CAMBRIDGEPORT
+VT	CANAAN
+VT	CASTLETON
+VT	CAVENDISH
+VT	CENTER RUTLAND
+VT	CHARLOTTE
+VT	CHELSEA
+VT	CHESTER
+VT	CHESTER DEPOT
+VT	CHITTENDEN
+VT	CLARENDN SPGS
+VT	CLARENDON SPRINGS
+VT	COLCHESTER
+VT	CONCORD
+VT	CORINTH
+VT	CORNWALL
+VT	COVENTRY
+VT	CRAFTSBRY CMN
+VT	CRAFTSBURY
+VT	CRAFTSBURY CM
+VT	CRAFTSBURY COMMON
+VT	CTR RUTLAND
+VT	CUTTINGSVILLE
+VT	DANBY
+VT	DANVILLE
+VT	DERBY
+VT	DERBY LINE
+VT	DORSET
+VT	DUMMERSTON
+VT	E ARLINGTON
+VT	EAST ARLINGTON
+VT	EAST BARRE
+VT	EAST BERKSHIRE
+VT	EAST BURKE
+VT	EAST CALAIS
+VT	EAST CHARLESTON
+VT	EAST CONCORD
+VT	EAST CORINTH
+VT	EAST DORSET
+VT	EAST DOVER
+VT	EAST FAIRFIELD
+VT	EAST HARDWICK
+VT	EAST HAVEN
+VT	EAST MIDDLEBURY
+VT	EAST MONTPELIER
+VT	EAST ORANGE
+VT	EAST POULTNEY
+VT	EAST RANDOLPH
+VT	EAST RYEGATE
+VT	EAST SAINT JOHNSBURY
+VT	EAST THETFORD
+VT	EAST WALLINGFORD
+VT	E BERKSHIRE
+VT	E CHARLESTON
+VT	EDEN
+VT	EDEN MILLS
+VT	E DUMMERSTON
+VT	E FAIRFIELD
+VT	ELMORE
+VT	E MIDDLEBURY
+VT	E MONTPELIER
+VT	ENOSBURG FALLS
+VT	ENOSBURG FLS
+VT	ESSEX
+VT	ESSEX JCT
+VT	ESSEX JUNCTION
+VT	E ST JOHNSBRY
+VT	E WALLINGFORD
+VT	FAIRFAX
+VT	FAIRFIELD
+VT	FAIR HAVEN
+VT	FAIRLEE
+VT	FERRISBURG
+VT	FERRISBURGH
+VT	FLORENCE
+VT	FOREST DALE
+VT	FRANKLIN
+VT	GAYSVILLE
+VT	GILMAN
+VT	GLOVER
+VT	GOSHEN
+VT	GRAFTON
+VT	GRANBY
+VT	GRAND ISLE
+VT	GRANITEVILLE
+VT	GRANVILLE
+VT	GREENSBORO
+VT	GREENSBORO BEND
+VT	GREENSBRO BND
+VT	GRNSBORO BEND
+VT	GROTON
+VT	GUILDHALL
+VT	GUILFORD
+VT	HANCOCK
+VT	HARDWICK
+VT	HARTFORD
+VT	HARTLAND
+VT	HARTLAND CORS
+VT	HARTLAND FOUR CORNERS
+VT	HIGHGATE CENTER
+VT	HIGHGATE CTR
+VT	HIGHGATE SPRG
+VT	HIGHGATE SPRINGS
+VT	HINESBURG
+VT	HUNTINGTON
+VT	HYDE PARK
+VT	HYDEVILLE
+VT	IRASBURG
+VT	ISLAND POND
+VT	ISLE LA MOTTE
+VT	JACKSONVILLE
+VT	JAMAICA
+VT	JAY
+VT	JAY PEAK
+VT	JEFFERSONVILLE
+VT	JEFFERSONVLLE
+VT	JERICHO
+VT	JERICHO CENTER
+VT	JERICHO CTR
+VT	JOHNSON
+VT	JONESVILLE
+VT	KILLINGTON
+VT	LAKE ELMORE
+VT	LANDGROVE
+VT	LEICESTER
+VT	LEMINGTON
+VT	LINCOLN
+VT	LONDONDERRY
+VT	LOWELL
+VT	LOWER WATERFORD
+VT	LUDLOW
+VT	LUNENBURG
+VT	LWR WATERFORD
+VT	LYNDON
+VT	LYNDON CENTER
+VT	LYNDONVILLE
+VT	MAIDSTONE
+VT	MANCHESTER
+VT	MANCHESTER CENTER
+VT	MANCHESTR CTR
+VT	MARLBORO
+VT	MARSHFIELD
+VT	MC INDOE FALLS
+VT	MC INDOE FLS
+VT	MENDON
+VT	MIDDLEBURY
+VT	MIDDLESEX
+VT	MIDDLESEX CENTER
+VT	MIDDLESEX CTR
+VT	MIDDLETOWN SPRINGS
+VT	MIDDLETWN SPG
+VT	MILTON
+VT	MONKTON
+VT	MONTGOMERY
+VT	MONTGOMERY CENTER
+VT	MONTGOMRY CTR
+VT	MONTPELIER
+VT	MORETOWN
+VT	MORGAN
+VT	MORGAN CTR
+VT	MORRISTOWN
+VT	MORRISVILLE
+VT	MOSCOW
+VT	MOUNT HOLLY
+VT	MOUNT SNOW
+VT	MOUNT TABOR
+VT	N BENNINGTON
+VT	N CHITTENDEN
+VT	N CLARENDON
+VT	NEWBURY
+VT	NEWFANE
+VT	NEW HAVEN
+VT	NEWPORT
+VT	NEWPORT CENTER
+VT	NEWPORT CTR
+VT	N FERRISBURGH
+VT	N HARTLAND
+VT	N HYDE PARK
+VT	N MIDDLESEX
+VT	N MONTPELIER
+VT	NORTH BENNINGTON
+VT	NORTH CHITTENDEN
+VT	NORTH CLARENDON
+VT	NORTH CONCORD
+VT	NORTH FERRISBURGH
+VT	NORTHFIELD
+VT	NORTHFIELD FALLS
+VT	NORTHFIELD FL
+VT	NORTHFLD FLS
+VT	NORTH HARTLAND
+VT	NORTH HERO
+VT	NORTH HYDE PARK
+VT	NORTH MIDDLESEX
+VT	NORTH MONTPELIER
+VT	NORTH POMFRET
+VT	NORTH POWNAL
+VT	NORTH SPRINGFIELD
+VT	NORTH THETFORD
+VT	NORTH TROY
+VT	NORTON
+VT	NORWICH
+VT	N SPRINGFIELD
+VT	N THETFORD
+VT	ORANGE
+VT	ORLEANS
+VT	ORWELL
+VT	PANTON
+VT	PASSUMPSIC
+VT	PAWLET
+VT	PEACHAM
+VT	PERKINSVILLE
+VT	PERU
+VT	PITTSFIELD
+VT	PITTSFORD
+VT	PLAINFIELD
+VT	PLYMOUTH
+VT	POST MILLS
+VT	POULTNEY
+VT	POWNAL
+VT	PROCTOR
+VT	PROCTORSVILLE
+VT	PUTNEY
+VT	QUECHEE
+VT	RANDOLPH
+VT	RANDOLPH CENTER
+VT	RANDOLPH CTR
+VT	READING
+VT	READSBORO
+VT	RICHFORD
+VT	RICHMOND
+VT	RIPTON
+VT	RIVERTON
+VT	ROCHESTER
+VT	ROXBURY
+VT	RUPERT
+VT	RUTLAND
+VT	RYEGATE
+VT	SAINT ALBANS
+VT	SAINT ALBANS BAY
+VT	SAINT GEORGE
+VT	SAINT JOHNSBURY
+VT	SAINT JOHNSBURY CENTER
+VT	SALISBURY
+VT	SANDGATE
+VT	SAXTONS RIVER
+VT	S BURLINGTON
+VT	S CHITTENDEN
+VT	SEARSBURG
+VT	SHAFTSBURY
+VT	SHARON
+VT	SHEFFIELD
+VT	SHELBURNE
+VT	SHELDON
+VT	SHELDON SPGS
+VT	SHELDON SPRINGS
+VT	SHOREHAM
+VT	SHREWSBURY
+VT	S LONDONDERRY
+VT	SMUGGLERS NOTCH
+VT	SMUGLRS NTCH
+VT	SOUTH BARRE
+VT	SOUTH BURLINGTON
+VT	SOUTH CHITTENDEN
+VT	SOUTH DUXBURY
+VT	SOUTH HERO
+VT	SOUTH LONDONDERRY
+VT	SOUTH NEWFANE
+VT	SOUTH POMFRET
+VT	SOUTH READING
+VT	SOUTH ROYALTON
+VT	SOUTH RYEGATE
+VT	SOUTH STRAFFORD
+VT	SOUTH WOODSTOCK
+VT	SPRINGFIELD
+VT	S ROYALTON
+VT	S STRAFFORD
+VT	ST ALBANS BAY
+VT	STAMFORD
+VT	STARKSBORO
+VT	ST GEORGE
+VT	ST JHNSBRY CT
+VT	ST JOHNSBURY
+VT	STOCKBRIDGE
+VT	STOWE
+VT	STRAFFORD
+VT	STRATTON
+VT	STRATTON MNT
+VT	STRATTON MOUNTAIN
+VT	STRATTON MTN
+VT	SUDBURY
+VT	SUGARBUSH VALLEY
+VT	SUGARBUSH VLY
+VT	SUNDERLAND
+VT	SUTTON
+VT	SWANTON
+VT	S WOODSTOCK
+VT	TAFTSVILLE
+VT	THETFORD
+VT	THETFORD CENTER
+VT	THETFORD CTR
+VT	TINMOUTH
+VT	TOPSHAM
+VT	TOWNSHEND
+VT	TROY
+VT	TUNBRIDGE
+VT	UNDERHILL
+VT	UNDERHILL CENTER
+VT	UNDERHILL CTR
+VT	VERGENNES
+VT	VERNON
+VT	VERSHIRE
+VT	VICTORY
+VT	WAITSFIELD
+VT	WALLINGFORD
+VT	WARDSBORO
+VT	WARREN
+VT	WASHINGTON
+VT	WATERBURY
+VT	WATERBURY CENTER
+VT	WATERBURY CTR
+VT	WATERFORD
+VT	WATERVILLE
+VT	W BRAINTREE
+VT	W BRATTLEBORO
+VT	W BROOKFIELD
+VT	W CHARLESTON
+VT	W DUMMERSTON
+VT	WEBSTERVILLE
+VT	WELLS
+VT	WELLS RIVER
+VT	WEST ARLINGTN
+VT	WEST ARLINGTON
+VT	WEST BERLIN
+VT	WEST BRAINTREE
+VT	WEST BRATTLEBORO
+VT	WEST BROOKFIELD
+VT	WEST BURKE
+VT	WEST CHARLESTON
+VT	WEST CORNWALL
+VT	WEST DANVILLE
+VT	WEST DOVER
+VT	WEST DUMMERSTON
+VT	WEST FAIRLEE
+VT	WESTFIELD
+VT	WESTFORD
+VT	WEST GLOVER
+VT	WEST HALIFAX
+VT	WEST HARTFORD
+VT	WEST HAVEN
+VT	WEST MARLBORO
+VT	WESTMINSTER
+VT	WESTMINSTER STATION
+VT	WESTMINSTER W
+VT	WESTMINSTER WEST
+VT	WESTMNSTR STA
+VT	WEST NEWBURY
+VT	WESTON
+VT	WEST PAWLET
+VT	WEST RUPERT
+VT	WEST RUTLAND
+VT	WEST TOPSHAM
+VT	WEST TOWNSHEND
+VT	WEST WARDSBORO
+VT	WEST WINDSOR
+VT	WEYBRIDGE
+VT	WHITE RIVER JUNCTION
+VT	WHITE RIV JCT
+VT	WHITING
+VT	WHITINGHAM
+VT	WILDER
+VT	WILLIAMSTOWN
+VT	WILLIAMSVILLE
+VT	WILLISTON
+VT	WILMINGTON
+VT	WINDHAM
+VT	WINDSOR
+VT	WINOOSKI
+VT	WOLCOTT
+VT	WOODBURY
+VT	WOODFORD
+VT	WOODSTOCK
+VT	WORCESTER
+VT	W TOWNSHEND
+VT	W WARDSBORO
+WA	ABERDEEN
+WA	ACME
+WA	ADDY
+WA	ADNA
+WA	AIRWAY HEIGHTS
+WA	AIRWAY HGTS
+WA	ALBION
+WA	ALGONA
+WA	ALLYN
+WA	ALMIRA
+WA	AMANDA PARK
+WA	AMBOY
+WA	ANACORTES
+WA	ANATONE
+WA	ANDERSON IS
+WA	ANDERSON ISLAND
+WA	APPLETON
+WA	ARDENVOIR
+WA	ARIEL
+WA	ARLINGTON
+WA	ASHFORD
+WA	ASOTIN
+WA	AUBURN
+WA	BAINBRIDGE IS
+WA	BAINBRIDGE ISLAND
+WA	BARING
+WA	BATTLE GROUND
+WA	BAY CENTER
+WA	BEAUX ARTS
+WA	BEAVER
+WA	BELFAIR
+WA	BELLEVUE
+WA	BELLINGHAM
+WA	BELMONT
+WA	BENGE
+WA	BENTON CITY
+WA	BETHEL
+WA	BEVERLY
+WA	BICKLETON
+WA	BINGEN
+WA	BLACK DIAMOND
+WA	BLAINE
+WA	BLAKELY IS
+WA	BLAKELY ISLAND
+WA	BONNEY LAKE
+WA	BOTHELL
+WA	BOW
+WA	BOYDS
+WA	BREMERTON
+WA	BREWSTER
+WA	BRIDGEPORT
+WA	BRIER
+WA	BRINNON
+WA	BROWNSTOWN
+WA	BRUSH PRAIRIE
+WA	BUCKLEY
+WA	BUCODA
+WA	BUENA
+WA	BURBANK
+WA	BURIEN
+WA	BURLEY
+WA	BURLINGTON
+WA	BURTON
+WA	CAMANO ISLAND
+WA	CAMAS
+WA	CAMP MURRAY
+WA	CAPITAL ONE
+WA	CARBONADO
+WA	CARLSBORG
+WA	CARLTON
+WA	CARNATION
+WA	CARROLLS
+WA	CARSON
+WA	CASHMERE
+WA	CASTLE ROCK
+WA	CATHLAMET
+WA	CENTERVILLE
+WA	CENTRALIA
+WA	CHATTAROY
+WA	CHEHALIS
+WA	CHELAN
+WA	CHELAN FALLS
+WA	CHENEY
+WA	CHEWELAH
+WA	CHIMACUM
+WA	CHINOOK
+WA	CINEBAR
+WA	CITY OF SPOKANE VALLEY
+WA	CLALLAM BAY
+WA	CLARKSTON
+WA	CLAYTON
+WA	CLEARLAKE
+WA	CLE ELUM
+WA	CLINTON
+WA	CLYDE HILL
+WA	COLBERT
+WA	COLFAX
+WA	COLLEGE PLACE
+WA	COLTON
+WA	COLVILLE
+WA	CONCONULLY
+WA	CONCRETE
+WA	CONNELL
+WA	CONWAY
+WA	COOK
+WA	COPALIS BEACH
+WA	COPALIS CROSSING
+WA	COPALIS XING
+WA	COSMOPOLIS
+WA	COUGAR
+WA	COULEE CITY
+WA	COULEE DAM
+WA	COUPEVILLE
+WA	COVINGTON
+WA	COWICHE
+WA	CRESTON
+WA	CTY SPOK VAL
+WA	CURLEW
+WA	CURTIS
+WA	CUSICK
+WA	CUSTER
+WA	DALLESPORT
+WA	DANVILLE
+WA	DARRINGTON
+WA	DAVENPORT
+WA	DAYTON
+WA	DEER HARBOR
+WA	DEER MEADOWS
+WA	DEER PARK
+WA	DEMING
+WA	DESERT AIRE
+WA	DES MOINES
+WA	DIAMOND
+WA	DIXIE
+WA	DOTY
+WA	DRYDEN
+WA	DUPONT
+WA	DUVALL
+WA	EAST OLYMPIA
+WA	EASTON
+WA	EASTSOUND
+WA	EAST WENATCHEE
+WA	EATONVILLE
+WA	EDGEWOOD
+WA	EDMONDS
+WA	EDWALL
+WA	ELBE
+WA	ELECTRIC CITY
+WA	ELK
+WA	ELLENSBURG
+WA	ELMA
+WA	ELMER CITY
+WA	ELTOPIA
+WA	ENDICOTT
+WA	ENTIAT
+WA	ENUMCLAW
+WA	EPHRATA
+WA	ESPANOLA
+WA	ETHEL
+WA	EVANS
+WA	EVERETT
+WA	EVERSON
+WA	E WENATCHEE
+WA	FAIRCHILD AFB
+WA	FAIRCHILD AIR FORCE BASE
+WA	FAIRFIELD
+WA	FALL CITY
+WA	FARMINGTON
+WA	FEDERAL WAY
+WA	FERNDALE
+WA	FIFE
+WA	FIRCREST
+WA	FORD
+WA	FORKS
+WA	FORT LEWIS
+WA	FOUR LAKES
+WA	FOX ISLAND
+WA	FREELAND
+WA	FRIDAY HARBOR
+WA	FRUITLAND
+WA	FT LEWIS
+WA	GALVIN
+WA	GARFIELD
+WA	GEORGE
+WA	GIFFORD
+WA	GIG HARBOR
+WA	GLEED
+WA	GLENOMA
+WA	GLENWOOD
+WA	GOLD BAR
+WA	GOLDENDALE
+WA	GOOSE PRAIRIE
+WA	GORST
+WA	GRAHAM
+WA	GRAND COULEE
+WA	GRANDVIEW
+WA	GRANGER
+WA	GRANITE FALLS
+WA	GRAPEVIEW
+WA	GRAYLAND
+WA	GRAYS RIVER
+WA	GREENACRES
+WA	GREENBANK
+WA	HAMILTON
+WA	HANSVILLE
+WA	HARRAH
+WA	HARRINGTON
+WA	HARTLINE
+WA	HATTON
+WA	HAY
+WA	HEISSON
+WA	HOBART
+WA	HOME
+WA	HOODSPORT
+WA	HOOPER
+WA	HOQUIAM
+WA	HUMPTULIPS
+WA	HUNTERS
+WA	HUNTS POINT
+WA	HUSUM
+WA	ILWACO
+WA	INCHELIUM
+WA	INDEX
+WA	INDIANOLA
+WA	IONE
+WA	ISSAQUAH
+WA	JOYCE
+WA	KAHLOTUS
+WA	KALAMA
+WA	KAPOWSIN
+WA	KELLER
+WA	KELSO
+WA	KENMORE
+WA	KENNEWICK
+WA	KENT
+WA	KETTLE FALLS
+WA	KEYPORT
+WA	KINGSTON
+WA	KIRKLAND
+WA	KITTITAS
+WA	KLICKITAT
+WA	LA CENTER
+WA	LACEY
+WA	LA CONNER
+WA	LACROSSE
+WA	LA GRANDE
+WA	LAKEBAY
+WA	LAKE FOREST PARK
+WA	LAKE STEVENS
+WA	LAKE TAPPS
+WA	LAKEWOOD
+WA	LAMONA
+WA	LAMONT
+WA	LANGLEY
+WA	LA PUSH
+WA	LATAH
+WA	LAURIER
+WA	LEAVENWORTH
+WA	LEBAM
+WA	LIBERTY LAKE
+WA	LILLIWAUP
+WA	LINCOLN
+WA	LIND
+WA	LITTLEROCK
+WA	LK FOREST PK
+WA	LONG BEACH
+WA	LONGBRANCH
+WA	LONGMIRE
+WA	LONGVIEW
+WA	LOOMIS
+WA	LOON LAKE
+WA	LOPEZ ISLAND
+WA	LOWDEN
+WA	LUMMI ISLAND
+WA	LYLE
+WA	LYMAN
+WA	LYNDEN
+WA	LYNNWOOD
+WA	MABTON
+WA	MADIGAN HOSP
+WA	MADIGAN HOSPITAL
+WA	MALAGA
+WA	MALDEN
+WA	MALO
+WA	MALONE
+WA	MALOTT
+WA	MANCHESTER
+WA	MANSFIELD
+WA	MANSON
+WA	MAPLE FALLS
+WA	MAPLE VALLEY
+WA	MARBLEMOUNT
+WA	MARCUS
+WA	MARLIN
+WA	MARSHALL
+WA	MARYSVILLE
+WA	MATLOCK
+WA	MATTAWA
+WA	MAZAMA
+WA	MCCHORD AFB
+WA	MCCLEARY
+WA	MCKENNA
+WA	MEAD
+WA	MEDICAL LAKE
+WA	MEDINA
+WA	MENLO
+WA	MERCER ISLAND
+WA	MESA
+WA	METALINE
+WA	METALINE FALLS
+WA	METALINE FLS
+WA	METHOW
+WA	MICA
+WA	MILL CREEK
+WA	MILLWOOD
+WA	MILTON
+WA	MINERAL
+WA	MOCLIPS
+WA	MOHLER
+WA	MONITOR
+WA	MONROE
+WA	MONTESANO
+WA	MORTON
+WA	MOSES LAKE
+WA	MOSSYROCK
+WA	MOUNTLAKE TER
+WA	MOUNTLAKE TERRACE
+WA	MOUNT VERNON
+WA	MOXEE
+WA	MUKILTEO
+WA	NACHES
+WA	NAHCOTTA
+WA	NAPAVINE
+WA	NASELLE
+WA	NAS WHIDBEY
+WA	N BONNEVILLE
+WA	NEAH BAY
+WA	NEILTON
+WA	NESPELEM
+WA	NEWCASTLE
+WA	NEWMAN LAKE
+WA	NEWPORT
+WA	NINE MILE FALLS
+WA	NINE MILE FLS
+WA	N LAKEWOOD
+WA	NOOKSACK
+WA	NORDLAND
+WA	NORMANDY PARK
+WA	NORTH BEND
+WA	NORTH BONNEVILLE
+WA	NORTH LAKEWOOD
+WA	NORTHPORT
+WA	OAKBROOK
+WA	OAKESDALE
+WA	OAK HARBOR
+WA	OAKVILLE
+WA	OCEAN CITY
+WA	OCEAN PARK
+WA	OCEAN SHORES
+WA	ODESSA
+WA	OKANOGAN
+WA	OLALLA
+WA	OLGA
+WA	OLYMPIA
+WA	OMAK
+WA	ONALASKA
+WA	ORCAS
+WA	ORIENT
+WA	ORONDO
+WA	OROVILLE
+WA	ORTING
+WA	OTHELLO
+WA	OTIS ORCHARDS
+WA	OUTLOOK
+WA	OYSTERVILLE
+WA	PACIFIC
+WA	PACIFIC BEACH
+WA	PACKWOOD
+WA	PALISADES
+WA	PALOUSE
+WA	PARADISE INN
+WA	PARKER
+WA	PARKLAND
+WA	PASCO
+WA	PATEROS
+WA	PATERSON
+WA	PE ELL
+WA	PESHASTIN
+WA	PLAZA
+WA	PLYMOUTH
+WA	POINT ROBERTS
+WA	POMEROY
+WA	PORT ANGELES
+WA	PORT GAMBLE
+WA	PORT HADLOCK
+WA	PORT LUDLOW
+WA	PORT ORCHARD
+WA	PORT TOWNSEND
+WA	POULSBO
+WA	PRESCOTT
+WA	PRESTON
+WA	PROSSER
+WA	PULLMAN
+WA	PUYALLUP
+WA	QUILCENE
+WA	QUINAULT
+WA	QUINCY
+WA	RAINIER
+WA	RANDLE
+WA	RAVENSDALE
+WA	RAYMOND
+WA	REARDAN
+WA	REDMOND
+WA	REDONDO
+WA	RENTON
+WA	REPUBLIC
+WA	RETSIL
+WA	RICE
+WA	RICHLAND
+WA	RIDGEFIELD
+WA	RITZVILLE
+WA	RIVERSIDE
+WA	ROCHE HARBOR
+WA	ROCHESTER
+WA	ROCKFORD
+WA	ROCK ISLAND
+WA	ROCKPORT
+WA	ROLLINGBAY
+WA	RONALD
+WA	ROOSEVELT
+WA	ROSALIA
+WA	ROSBURG
+WA	ROSLYN
+WA	ROY
+WA	ROYAL CITY
+WA	RUSTON
+WA	RYDERWOOD
+WA	SAINT JOHN
+WA	SALKUM
+WA	SAMMAMISH
+WA	SATSOP
+WA	S CLE ELUM
+WA	SEABECK
+WA	SEAHURST
+WA	SEATAC
+WA	SEATTLE
+WA	SEAVIEW
+WA	SEDRO WOOLLEY
+WA	SEKIU
+WA	SELAH
+WA	SEQUIM
+WA	SEVEN BAYS
+WA	SHAW ISLAND
+WA	SHELTON
+WA	SHORELINE
+WA	SILVANA
+WA	SILVER CREEK
+WA	SILVERDALE
+WA	SILVERLAKE
+WA	SKAMOKAWA
+WA	SKOK
+WA	SKOKOMISH NATION
+WA	SKYKOMISH
+WA	SNOHOMISH
+WA	SNOQUALMIE
+WA	SNOQUALMIE PASS
+WA	SNOQUALMIE PS
+WA	SOAP LAKE
+WA	SOUTH BEND
+WA	SOUTH CLE ELUM
+WA	SOUTH COLBY
+WA	SOUTH HILL
+WA	SOUTH PARK VILLAGE
+WA	SOUTH PRAIRIE
+WA	SOUTHWORTH
+WA	SPANAWAY
+WA	SPANGLE
+WA	S PARK VLG
+WA	SPOKANE
+WA	SPOKANE VALLEY
+WA	SPOKANE VLY
+WA	SPRAGUE
+WA	SPRINGDALE
+WA	STANWOOD
+WA	STARBUCK
+WA	STARTUP
+WA	STEHEKIN
+WA	STEILACOOM
+WA	STEPTOE
+WA	STEVENSON
+WA	STRATFORD
+WA	SULTAN
+WA	SUMAS
+WA	SUMNER
+WA	SUNNYSIDE
+WA	SUNSET HILL
+WA	SUQUAMISH
+WA	TACOMA
+WA	TAHOLAH
+WA	TAHUYA
+WA	TEKOA
+WA	TENINO
+WA	THORNTON
+WA	THORP
+WA	TIETON
+WA	TOKELAND
+WA	TOLEDO
+WA	TONASKET
+WA	TOPPENISH
+WA	TOUCHET
+WA	TOUTLE
+WA	TRACYTON
+WA	TRI CITIES
+WA	TROUT LAKE
+WA	TUKWILA
+WA	TULALIP
+WA	TUMTUM
+WA	TUMWATER
+WA	TWISP
+WA	UNDERWOOD
+WA	UNION
+WA	UNION GAP
+WA	UNIONTOWN
+WA	UNIVERSITY PL
+WA	UNIVERSITY PLACE
+WA	USK
+WA	VADER
+WA	VALLEY
+WA	VALLEYFORD
+WA	VANCOUVER
+WA	VANTAGE
+WA	VASHON
+WA	VAUGHN
+WA	VERADALE
+WA	WAHKIACUS
+WA	WAITSBURG
+WA	WALDRON
+WA	WALLA WALLA
+WA	WALLULA
+WA	WAPATO
+WA	WARDEN
+WA	WASHOUGAL
+WA	WASHTUCNA
+WA	WATERVILLE
+WA	WAUCONDA
+WA	WAUNA
+WA	WAVERLY
+WA	WELLPINIT
+WA	WENATCHEE
+WA	WESTPORT
+WA	WEST RICHLAND
+WA	WHIDBEY ISLAND NAVAL AIR
+WA	WHITE SALMON
+WA	WHITE SWAN
+WA	WILBUR
+WA	WILKESON
+WA	WILSON CREEK
+WA	WINLOCK
+WA	WINTHROP
+WA	WISHRAM
+WA	WOODINVILLE
+WA	WOODLAND
+WA	WOODWAY
+WA	YACOLT
+WA	YAKIMA
+WA	YARROW POINT
+WA	YELM
+WA	ZILLAH
+WI	ABBOTSFORD
+WI	ABRAMS
+WI	ADAMS
+WI	ADELL
+WI	AFTON
+WI	ALBANY
+WI	ALGOMA
+WI	ALLENTON
+WI	ALLOUEZ
+WI	ALMA
+WI	ALMA CENTER
+WI	ALMENA
+WI	ALMOND
+WI	ALTOONA
+WI	ALVIN
+WI	AMBERG
+WI	AMERY
+WI	AMHERST
+WI	AMHERST JCT
+WI	AMHERST JUNCTION
+WI	ANIWA
+WI	ANTIGO
+WI	APPLETON
+WI	ARBOR VITAE
+WI	ARCADIA
+WI	ARENA
+WI	ARGONNE
+WI	ARGYLE
+WI	ARKANSAW
+WI	ARKDALE
+WI	ARLINGTON
+WI	ARMSTRONG CREEK
+WI	ARMSTRONG CRK
+WI	ARPIN
+WI	ASHIPPUN
+WI	ASHLAND
+WI	ASHWAUBENON
+WI	ATHELSTANE
+WI	ATHENS
+WI	AUBURNDALE
+WI	AUGUSTA
+WI	AVALON
+WI	AVOCA
+WI	BABCOCK
+WI	BAGLEY
+WI	BAILEYS HARBOR
+WI	BAILEYS HBR
+WI	BALDWIN
+WI	BALSAM LAKE
+WI	BANCROFT
+WI	BANGOR
+WI	BARABOO
+WI	BARNES
+WI	BARNEVELD
+WI	BARRON
+WI	BARRONETT
+WI	BASSETT
+WI	BAY CITY
+WI	BAYFIELD
+WI	BAYSIDE
+WI	BAY VIEW
+WI	BEAR CREEK
+WI	BEAVER
+WI	BEAVER DAM
+WI	BEETOWN
+WI	BELDENVILLE
+WI	BELGIUM
+WI	BELLEVILLE
+WI	BELLEVUE
+WI	BELMONT
+WI	BELOIT
+WI	BENET LAKE
+WI	BENNETT
+WI	BENOIT
+WI	BENTON
+WI	BERLIN
+WI	BIG BEND
+WI	BIG FALLS
+WI	BIRCHWOOD
+WI	BIRNAMWOOD
+WI	BLACK CREEK
+WI	BLACK EARTH
+WI	BLACK RIVER FALLS
+WI	BLAIR
+WI	BLANCHARDVILLE
+WI	BLANCHARDVLLE
+WI	BLENKER
+WI	BLK RIVER FLS
+WI	BLOOM CITY
+WI	BLOOMER
+WI	BLOOMINGTON
+WI	BLUE MOUNDS
+WI	BLUE RIVER
+WI	BONDUEL
+WI	BOSCOBEL
+WI	BOULDER JCT
+WI	BOULDER JUNCTION
+WI	BOWLER
+WI	BOYCEVILLE
+WI	BOYD
+WI	BRANCH
+WI	BRANDON
+WI	BRANTWOOD
+WI	BRIGGSVILLE
+WI	BRILL
+WI	BRILLION
+WI	BRISTOL
+WI	BRODHEAD
+WI	BROKAW
+WI	BROOKFIELD
+WI	BROOKLYN
+WI	BROOKS
+WI	BROWN DEER
+WI	BROWNSVILLE
+WI	BROWNTOWN
+WI	BRUCE
+WI	BRULE
+WI	BRUSSELS
+WI	BRYANT
+WI	BTE DES MORTS
+WI	BUFFALO CITY
+WI	BURLINGTON
+WI	BURNETT
+WI	BUTLER
+WI	BUTTE DES MORTS
+WI	BUTTERNUT
+WI	BYRON
+WI	CABLE
+WI	CADOTT
+WI	CALEDONIA
+WI	CAMBRIA
+WI	CAMBRIDGE
+WI	CAMERON
+WI	CAMPBELLSPORT
+WI	CAMP DOUGLAS
+WI	CAMP LAKE
+WI	CANTON
+WI	CAROLINE
+WI	CASCADE
+WI	CASCO
+WI	CASHTON
+WI	CASSVILLE
+WI	CATARACT
+WI	CATAWBA
+WI	CATO
+WI	CAVOUR
+WI	CAZENOVIA
+WI	CECIL
+WI	CEDARBURG
+WI	CEDAR GROVE
+WI	CENTURIA
+WI	CHASEBURG
+WI	CHELSEA
+WI	CHETEK
+WI	CHILI
+WI	CHILTON
+WI	CHIPPEWA FALLS
+WI	CHIPPEWA FLS
+WI	CLAM FALLS
+WI	CLAM LAKE
+WI	CLAYTON
+WI	CLEAR LAKE
+WI	CLEVELAND
+WI	CLINTON
+WI	CLINTONVILLE
+WI	CLYMAN
+WI	COBB
+WI	COCHRANE
+WI	COLBY
+WI	COLEMAN
+WI	COLFAX
+WI	COLGATE
+WI	COLLINS
+WI	COLOMA
+WI	COLUMBUS
+WI	COMBINED LCKS
+WI	COMBINED LOCKS
+WI	COMSTOCK
+WI	CONOVER
+WI	CONRATH
+WI	COON VALLEY
+WI	CORNELL
+WI	CORNUCOPIA
+WI	COTTAGE GROVE
+WI	COUDERAY
+WI	CRANDON
+WI	CRIVITZ
+WI	CROSS PLAINS
+WI	CUBA CITY
+WI	CUDAHY
+WI	CUMBERLAND
+WI	CURTISS
+WI	CUSHING
+WI	CUSTER
+WI	CUTLER
+WI	DAIRYLAND
+WI	DALE
+WI	DALLAS
+WI	DALTON
+WI	DANBURY
+WI	DANE
+WI	DARIEN
+WI	DARLINGTON
+WI	DEERBROOK
+WI	DEERFIELD
+WI	DEER PARK
+WI	DE FOREST
+WI	DELAFIELD
+WI	DELAVAN
+WI	DELLWOOD
+WI	DELTA
+WI	DENMARK
+WI	DE PERE
+WI	DERONDA
+WI	DE SOTO
+WI	DICKEYVILLE
+WI	DODGE
+WI	DODGEVILLE
+WI	DORCHESTER
+WI	DOUSMAN
+WI	DOWNING
+WI	DOWNSVILLE
+WI	DOYLESTOWN
+WI	DRESSER
+WI	DRUMMOND
+WI	DUNBAR
+WI	DURAND
+WI	EAGLE
+WI	EAGLE RIVER
+WI	EAST ELLSWORTH
+WI	EASTMAN
+WI	EAST TROY
+WI	EAU CLAIRE
+WI	EAU GALLE
+WI	EDEN
+WI	EDGAR
+WI	EDGERTON
+WI	EDGEWATER
+WI	EDMUND
+WI	E ELLSWORTH
+WI	EGG HARBOR
+WI	ELAND
+WI	ELCHO
+WI	ELDERON
+WI	ELDORADO
+WI	ELEVA
+WI	ELKHART LAKE
+WI	ELKHORN
+WI	ELK MOUND
+WI	ELLISON BAY
+WI	ELLSWORTH
+WI	ELM GROVE
+WI	ELMWOOD
+WI	ELROY
+WI	ELTON
+WI	EMBARRASS
+WI	EMERALD
+WI	ENDEAVOR
+WI	EPHRAIM
+WI	ETTRICK
+WI	EUREKA
+WI	EVANSVILLE
+WI	EXELAND
+WI	FAIRCHILD
+WI	FAIRWATER
+WI	FALL CREEK
+WI	FALL RIVER
+WI	FENCE
+WI	FENNIMORE
+WI	FENWOOD
+WI	FERRYVILLE
+WI	FIFIELD
+WI	FISH CREEK
+WI	FITCHBURG
+WI	FLORENCE
+WI	FOND DU LAC
+WI	FONTANA
+WI	FOOTVILLE
+WI	FOREST JCT
+WI	FOREST JUNCTION
+WI	FORESTVILLE
+WI	FORT ATKINSON
+WI	FORT MCCOY
+WI	FOUNTAIN CITY
+WI	FOXBORO
+WI	FOX LAKE
+WI	FOX POINT
+WI	FRANCIS CREEK
+WI	FRANKLIN
+WI	FRANKSVILLE
+WI	FREDERIC
+WI	FREDONIA
+WI	FREEDOM
+WI	FREMONT
+WI	FRIENDSHIP
+WI	FRIESLAND
+WI	GALESVILLE
+WI	GALLOWAY
+WI	GAYS MILLS
+WI	GENESEE DEPOT
+WI	GENOA
+WI	GENOA CITY
+WI	GERMANTOWN
+WI	GILE
+WI	GILLETT
+WI	GILMAN
+WI	GILMANTON
+WI	GLEASON
+WI	GLENBEULAH
+WI	GLENDALE
+WI	GLEN FLORA
+WI	GLEN HAVEN
+WI	GLENWOOD CITY
+WI	GLIDDEN
+WI	GOODMAN
+WI	GORDON
+WI	GOTHAM
+WI	GRAFTON
+WI	GRAND CHUTE
+WI	GRAND MARSH
+WI	GRAND VIEW
+WI	GRANTON
+WI	GRANTSBURG
+WI	GRATIOT
+WI	GREEN BAY
+WI	GREENBUSH
+WI	GREENDALE
+WI	GREENFIELD
+WI	GREEN LAKE
+WI	GREENLEAF
+WI	GREEN VALLEY
+WI	GREENVILLE
+WI	GREENWOOD
+WI	GRESHAM
+WI	GURNEY
+WI	HAGER CITY
+WI	HALES CORNERS
+WI	HAMBURG
+WI	HAMMOND
+WI	HANCOCK
+WI	HANNIBAL
+WI	HANOVER
+WI	HARSHAW
+WI	HARTFORD
+WI	HARTLAND
+WI	HATLEY
+WI	HAUGEN
+WI	HAVEN
+WI	HAWKINS
+WI	HAWTHORNE
+WI	HAYWARD
+WI	HAZEL GREEN
+WI	HAZELHURST
+WI	HEAFFORD JCT
+WI	HEAFFORD JUNCTION
+WI	HELENVILLE
+WI	HERBSTER
+WI	HERTEL
+WI	HEWITT
+WI	HIGHBRIDGE
+WI	HIGH BRIDGE
+WI	HIGHLAND
+WI	HILBERT
+WI	HILES
+WI	HILLPOINT
+WI	HILLSBORO
+WI	HILLSDALE
+WI	HINGHAM
+WI	HIXTON
+WI	HOBART
+WI	HOLCOMBE
+WI	HOLLANDALE
+WI	HOLMEN
+WI	HONEY CREEK
+WI	HORICON
+WI	HORTONVILLE
+WI	HOULTON
+WI	HOWARD
+WI	HOWARDS GROVE
+WI	HUBERTUS
+WI	HUDSON
+WI	HUMBIRD
+WI	HURLEY
+WI	HUSTISFORD
+WI	HUSTLER
+WI	INDEPENDENCE
+WI	INGRAM
+WI	IOLA
+WI	IRMA
+WI	IRON BELT
+WI	IRON RIDGE
+WI	IRON RIVER
+WI	IXONIA
+WI	JACKSON
+WI	JANESVILLE
+WI	JEFFERSON
+WI	JIM FALLS
+WI	JOHNSON CREEK
+WI	JUDA
+WI	JUMP RIVER
+WI	JUNCTION CITY
+WI	JUNEAU
+WI	KANSASVILLE
+WI	KAUKAUNA
+WI	KELLNERSVILLE
+WI	KEMPSTER
+WI	KENDALL
+WI	KENNAN
+WI	KENOSHA
+WI	KESHENA
+WI	KEWASKUM
+WI	KEWAUNEE
+WI	KIEL
+WI	KIELER
+WI	KIMBERLY
+WI	KING
+WI	KINGSTON
+WI	KNAPP
+WI	KNOWLES
+WI	KOHLER
+WI	KRAKOW
+WI	LAC DU FLAMBEAU
+WI	LAC DU FLAMBU
+WI	LA CROSSE
+WI	LADYSMITH
+WI	LA FARGE
+WI	LAKE DELTON
+WI	LAKE GENEVA
+WI	LAKE MILLS
+WI	LAKE NEBAGAMON
+WI	LAKE TOMAHAWK
+WI	LAKEWOOD
+WI	LANCASTER
+WI	LAND O LAKES
+WI	LANNON
+WI	LAONA
+WI	LA POINTE
+WI	LARSEN
+WI	LA VALLE
+WI	LEBANON
+WI	LENA
+WI	LEOPOLIS
+WI	LEWIS
+WI	LILY
+WI	LIME RIDGE
+WI	LINDEN
+WI	LISBON
+WI	LITTLE CHUTE
+WI	LITTLE SUAMICO
+WI	LIVINGSTON
+WI	LK NEBAGAMON
+WI	LODI
+WI	LOGANVILLE
+WI	LOMIRA
+WI	LONE ROCK
+WI	LONG LAKE
+WI	LORETTA
+WI	LOWELL
+WI	LOYAL
+WI	LTL SUAMICO
+WI	LUBLIN
+WI	LUCK
+WI	LUXEMBURG
+WI	LYNDON STA
+WI	LYNDON STATION
+WI	LYNXVILLE
+WI	LYONS
+WI	MADISON
+WI	MAIDEN ROCK
+WI	MALONE
+WI	MANAWA
+WI	MANCHESTER
+WI	MANITOWISH WATERS
+WI	MANITOWOC
+WI	MANITOWSH WTR
+WI	MAPLE
+WI	MAPLEWOOD
+WI	MARATHON
+WI	MARENGO
+WI	MARIBEL
+WI	MARINETTE
+WI	MARION
+WI	MARKESAN
+WI	MARQUETTE
+WI	MARSHALL
+WI	MARSHFIELD
+WI	MASON
+WI	MATHER
+WI	MATTOON
+WI	MAUSTON
+WI	MAYVILLE
+WI	MAZOMANIE
+WI	MC FARLAND
+WI	MC NAUGHTON
+WI	MEDFORD
+WI	MEDINA
+WI	MELLEN
+WI	MELROSE
+WI	MENASHA
+WI	MENOMONEE FALLS
+WI	MENOMONEE FLS
+WI	MENOMONIE
+WI	MEQUON
+WI	MERCER
+WI	MERRILL
+WI	MERRILLAN
+WI	MERRIMAC
+WI	MERTON
+WI	MIDDLE INLET
+WI	MIDDLETON
+WI	MIKANA
+WI	MILAN
+WI	MILLADORE
+WI	MILLSTON
+WI	MILLTOWN
+WI	MILTON
+WI	MILWAUKEE
+WI	MINDORO
+WI	MINERAL POINT
+WI	MINOCQUA
+WI	MINONG
+WI	MISHICOT
+WI	MODENA
+WI	MONDOVI
+WI	MONICO
+WI	MONONA
+WI	MONROE
+WI	MONTELLO
+WI	MONTFORT
+WI	MONTICELLO
+WI	MONTREAL
+WI	MOQUAH
+WI	MORRISONVILLE
+WI	MOSINEE
+WI	MOUNTAIN
+WI	MOUNT CALVARY
+WI	MOUNT HOPE
+WI	MOUNT HOREB
+WI	MOUNT STERLING
+WI	MT STERLING
+WI	MUKWONAGO
+WI	MUSCODA
+WI	MUSKEGO
+WI	NASHOTAH
+WI	NAVARINO
+WI	NECEDAH
+WI	NEENAH
+WI	NEILLSVILLE
+WI	NEKOOSA
+WI	NELMA
+WI	NELSON
+WI	NELSONVILLE
+WI	NEOPIT
+WI	NEOSHO
+WI	NESHKORO
+WI	NEWALD
+WI	NEW AUBURN
+WI	NEW BERLIN
+WI	NEWBURG
+WI	NEW FRANKEN
+WI	NEW GLARUS
+WI	NEW HOLSTEIN
+WI	NEW LISBON
+WI	NEW LONDON
+WI	NEW MUNSTER
+WI	NEW POST
+WI	NEW RICHMOND
+WI	NEWTON
+WI	N FOND DU LAC
+WI	NIAGARA
+WI	NICHOLS
+WI	NORTHFIELD
+WI	NORTH FOND DU LAC
+WI	NORTH FREEDOM
+WI	NORTH LAKE
+WI	NORTH PRAIRIE
+WI	NORTH WOODS BEACH
+WI	NORWALK
+WI	N WOODS BEACH
+WI	OAK CREEK
+WI	OAKDALE
+WI	OAKFIELD
+WI	OCONOMOWOC
+WI	OCONTO
+WI	OCONTO FALLS
+WI	ODANAH
+WI	OGDENSBURG
+WI	OGEMA
+WI	OJIBWA
+WI	OKAUCHEE
+WI	OMRO
+WI	ONALASKA
+WI	ONEIDA
+WI	ONTARIO
+WI	OOSTBURG
+WI	OREGON
+WI	ORFORDVILLE
+WI	OSCEOLA
+WI	OSHKOSH
+WI	OSSEO
+WI	OWEN
+WI	OXFORD
+WI	PACKWAUKEE
+WI	PALMYRA
+WI	PARDEEVILLE
+WI	PARK FALLS
+WI	PATCH GROVE
+WI	PEARSON
+WI	PELICAN LAKE
+WI	PELL LAKE
+WI	PEMBINE
+WI	PENCE
+WI	PEPIN
+WI	PESHTIGO
+WI	PEWAUKEE
+WI	PHELPS
+WI	PHILLIPS
+WI	PHLOX
+WI	PICKEREL
+WI	PICKETT
+WI	PIGEON FALLS
+WI	PINE RIVER
+WI	PITTSVILLE
+WI	PLAIN
+WI	PLAINFIELD
+WI	PLATTEVILLE
+WI	PLEASANT PR
+WI	PLEASANT PRAIRIE
+WI	PLOVER
+WI	PLUM CITY
+WI	PLYMOUTH
+WI	POPLAR
+WI	PORTAGE
+WI	PORT EDWARDS
+WI	PORTERFIELD
+WI	PORT WASHINGTON
+WI	PORT WING
+WI	POSKIN
+WI	POTOSI
+WI	POTTER
+WI	POUND
+WI	POWERS LAKE
+WI	POYNETTE
+WI	POY SIPPI
+WI	PRAIRIE DU CHIEN
+WI	PRAIRIE DU SAC
+WI	PRAIRIE FARM
+WI	PR DU CHIEN
+WI	PR DU SAC
+WI	PRENTICE
+WI	PRESCOTT
+WI	PRESQUE ISLE
+WI	PRINCETON
+WI	PRT WASHINGTN
+WI	PULASKI
+WI	PULCIFER
+WI	RACINE
+WI	RADISSON
+WI	RANDOLPH
+WI	RANDOM LAKE
+WI	READFIELD
+WI	READSTOWN
+WI	REDGRANITE
+WI	REEDSBURG
+WI	REEDSVILLE
+WI	REESEVILLE
+WI	REWEY
+WI	RHINELANDER
+WI	RIB LAKE
+WI	RICE LAKE
+WI	RICHFIELD
+WI	RICHLAND CENTER
+WI	RICHLAND CTR
+WI	RIDGELAND
+WI	RIDGEWAY
+WI	RINGLE
+WI	RIO
+WI	RIO CREEK
+WI	RIPON
+WI	RIVER FALLS
+WI	RIVER HILLS
+WI	ROBERTS
+WI	ROCHESTER
+WI	ROCK FALLS
+WI	ROCKFIELD
+WI	ROCKLAND
+WI	ROCK SPRINGS
+WI	ROSENDALE
+WI	ROSHOLT
+WI	ROTHSCHILD
+WI	ROYALTON
+WI	RUBICON
+WI	RUDOLPH
+WI	SAINT CLOUD
+WI	SAINT CROIX FALLS
+WI	SAINT FRANCIS
+WI	SAINT GERMAIN
+WI	SAINT NAZIANZ
+WI	SALEM
+WI	SALVATORIAN CENTER
+WI	SALVTRIAN CTR
+WI	SANBORN
+WI	SAND CREEK
+WI	SARONA
+WI	SAUK CITY
+WI	SAUKVILLE
+WI	SAXEVILLE
+WI	SAXON
+WI	SAYNER
+WI	SCANDINAVIA
+WI	SCHOFIELD
+WI	SENECA
+WI	SEXTONVILLE
+WI	SEYMOUR
+WI	SHARON
+WI	SHAWANO
+WI	SHEBOYGAN
+WI	SHEBOYGAN FALLS
+WI	SHEBOYGAN FLS
+WI	SHELDON
+WI	SHELL LAKE
+WI	SHERWOOD
+WI	SHIOCTON
+WI	SHOREWOOD
+WI	SHULLSBURG
+WI	SILVER CLIFF
+WI	SILVER LAKE
+WI	SINSINAWA
+WI	SIREN
+WI	SISTER BAY
+WI	SLINGER
+WI	S MILWAUKEE
+WI	SOBIESKI
+WI	SOLDIER GROVE
+WI	SOLDIERS GROVE
+WI	SOLON SPRINGS
+WI	SOMERS
+WI	SOMERSET
+WI	SOUTH BYRON
+WI	SOUTH MILWAUKEE
+WI	SOUTH RANGE
+WI	SOUTH WAYNE
+WI	SPARTA
+WI	SPENCER
+WI	SPOONER
+WI	SPRINGBROOK
+WI	SPRINGFIELD
+WI	SPRING GREEN
+WI	SPRING VALLEY
+WI	STANLEY
+WI	STAR LAKE
+WI	STAR PRAIRIE
+WI	ST CROIX FLS
+WI	STETSONVILLE
+WI	STEUBEN
+WI	STEVENS POINT
+WI	ST FRANCIS
+WI	STILES
+WI	STITZER
+WI	STOCKBRIDGE
+WI	STOCKHOLM
+WI	STODDARD
+WI	STONE LAKE
+WI	STOUGHTON
+WI	STRATFORD
+WI	STRUM
+WI	STURGEON BAY
+WI	STURTEVANT
+WI	SUAMICO
+WI	SULLIVAN
+WI	SUMMIT LAKE
+WI	SUN PRAIRIE
+WI	SUPERIOR
+WI	SURING
+WI	SUSSEX
+WI	TAYCHEEDAH
+WI	TAYLOR
+WI	THERESA
+WI	THIENSVILLE
+WI	THORP
+WI	THREE LAKES
+WI	TIGERTON
+WI	TILLEDA
+WI	TIPLER
+WI	TISCH MILLS
+WI	TOMAH
+WI	TOMAHAWK
+WI	TONY
+WI	TOWNSEND
+WI	TREGO
+WI	TREMPEALEAU
+WI	TREVOR
+WI	TRIPOLI
+WI	TUNNEL CITY
+WI	TURTLE LAKE
+WI	TWIN LAKES
+WI	TWO RIVERS
+WI	UNDERHILL
+WI	UNION CENTER
+WI	UNION GROVE
+WI	UNITY
+WI	UPSON
+WI	VALDERS
+WI	VAN DYNE
+WI	VERNON
+WI	VERONA
+WI	VESPER
+WI	VICTORY
+WI	VIOLA
+WI	VIROQUA
+WI	WABENO
+WI	WALDO
+WI	WALES
+WI	WALWORTH
+WI	WARRENS
+WI	WASCOTT
+WI	WASHBURN
+WI	WASHINGTON IS
+WI	WASHINGTON ISLAND
+WI	WATERFORD
+WI	WATERLOO
+WI	WATERTOWN
+WI	WAUBEKA
+WI	WAUKAU
+WI	WAUKESHA
+WI	WAUMANDEE
+WI	WAUNAKEE
+WI	WAUPACA
+WI	WAUPUN
+WI	WAUSAU
+WI	WAUSAUKEE
+WI	WAUTOMA
+WI	WAUWATOSA
+WI	WAUZEKA
+WI	WEBB LAKE
+WI	WEBSTER
+WI	WENTWORTH
+WI	WEST ALLIS
+WI	WEST BEND
+WI	WESTBORO
+WI	WESTBY
+WI	WESTFIELD
+WI	WEST LIMA
+WI	WEST MILWAUKEE
+WI	WESTON
+WI	WESTPORT
+WI	WEST SALEM
+WI	WEYAUWEGA
+WI	WEYERHAEUSER
+WI	WHEELER
+WI	WHITEFISH BAY
+WI	WHITEHALL
+WI	WHITE LAKE
+WI	WHITELAW
+WI	WHITEWATER
+WI	WILD ROSE
+WI	WILLARD
+WI	WILLIAMS BAY
+WI	WILMOT
+WI	WILSON
+WI	WILTON
+WI	WINCHESTER
+WI	WIND LAKE
+WI	WINDSOR
+WI	WINNEBAGO
+WI	WINNECONNE
+WI	WINTER
+WI	WISC DELLS
+WI	WISCONSIN DELLS
+WI	WISCONSIN RAPIDS
+WI	WISC RAPIDS
+WI	WITHEE
+WI	WITTENBERG
+WI	W MILWAUKEE
+WI	WONEWOC
+WI	WOODFORD
+WI	WOODLAND
+WI	WOODMAN
+WI	WOODRUFF
+WI	WOODVILLE
+WI	WOODWORTH
+WI	WRIGHTSTOWN
+WI	WYEVILLE
+WI	WYOCENA
+WI	YELLOW LAKE
+WI	YUBA
+WI	ZACHOW
+WI	ZENDA
+WV	ABRAHAM
+WV	ACCOVILLE
+WV	ADAMSVILLE
+WV	ADRIAN
+WV	ADVENT
+WV	ALBRIGHT
+WV	ALDERSON
+WV	ALEXANDER
+WV	ALGOMA
+WV	ALKOL
+WV	ALLEN JCT
+WV	ALLEN JUNCTION
+WV	ALLOY
+WV	ALMA
+WV	ALTA
+WV	ALUM BRIDGE
+WV	ALUM CREEK
+WV	ALVY
+WV	AMBOY
+WV	AMEAGLE
+WV	AMHERSTDALE
+WV	AMIGO
+WV	AMMA
+WV	ANAWALT
+WV	ANMOORE
+WV	ANSTED
+WV	ANTHONY
+WV	APPLE GROVE
+WV	ARBOVALE
+WV	ARBUCKLE
+WV	ARNETT
+WV	ARNOLDSBURG
+WV	ARTHUR
+WV	ARTHURDALE
+WV	ARTIE
+WV	ASBURY
+WV	ASCO
+WV	ASHFORD
+WV	ASHLAND
+WV	ASHTON
+WV	ASTOR
+WV	ATHENS
+WV	AUBURN
+WV	AUGUSTA
+WV	AURORA
+WV	AUTO
+WV	AVONDALE
+WV	BAISDEN
+WV	BAKER
+WV	BAKERTON
+WV	BALD KNOB
+WV	BALDWIN
+WV	BALLARD
+WV	BALLENGEE
+WV	BANCROFT
+WV	BANDYTOWN
+WV	BARBOURSVILLE
+WV	BARNABUS
+WV	BARRACKVILLE
+WV	BARRETT
+WV	BARTLEY
+WV	BARTOW
+WV	BAXTER
+WV	BAYARD
+WV	BEARDS FORK
+WV	BEAVER
+WV	BECKLEY
+WV	BECKWITH
+WV	BEECH BOTTOM
+WV	BEESON
+WV	BELGIUM
+WV	BELINGTON
+WV	BELLBURN
+WV	BELLE
+WV	BELLEVILLE
+WV	BELLWOOD
+WV	BELMONT
+WV	BELVA
+WV	BENS RUN
+WV	BENTREE
+WV	BENWOOD
+WV	BEREA
+WV	BERGOO
+WV	BERKELEY SPGS
+WV	BERKELEY SPRINGS
+WV	BERWIND
+WV	BETHANY
+WV	BETHLEHEM
+WV	BEVERLY
+WV	BICKMORE
+WV	BIG BEND
+WV	BIG CHIMNEY
+WV	BIG CREEK
+WV	BIG OTTER
+WV	BIG RUN
+WV	BIG SANDY
+WV	BIG SPRINGS
+WV	BIM
+WV	BINGHAM
+WV	BIRCH RIVER
+WV	BLACKBERRY CITY
+WV	BLACKSVILLE
+WV	BLAIR
+WV	BLANDVILLE
+WV	BLCKBERRY CTY
+WV	BLOOMERY
+WV	BLOOMINGROSE
+WV	BLOUNT
+WV	BLUE CREEK
+WV	BLUEFIELD
+WV	BLUE GOOSE
+WV	BLUE JAY
+WV	BLUEWELL
+WV	BOB WHITE
+WV	BOGGS
+WV	BOLT
+WV	BOMONT
+WV	BOOMER
+WV	BOOTH
+WV	BORDERLAND
+WV	BOWDEN
+WV	BOZOO
+WV	BRADLEY
+WV	BRADSHAW
+WV	BRAMWELL
+WV	BRANCHLAND
+WV	BRANDONVILLE
+WV	BRANDYWINE
+WV	BREEDEN
+WV	BRENTON
+WV	BRETZ
+WV	BRIDGEPORT
+WV	BRISTOL
+WV	BROHARD
+WV	BROOKS
+WV	BROWNSVILLE
+WV	BROWNTON
+WV	BRUCETON MILLS
+WV	BRUCETON MLS
+WV	BRUNO
+WV	BRUSHY FORK
+WV	BUCKEYE
+WV	BUCKHANNON
+WV	BUD
+WV	BUFFALO
+WV	BUNKER HILL
+WV	BURLINGTON
+WV	BURNSVILLE
+WV	BURNT HOUSE
+WV	BURNWELL
+WV	BURTON
+WV	CABIN CREEK
+WV	CABINS
+WV	CAIRO
+WV	CALDWELL
+WV	CALVIN
+WV	CAMDEN
+WV	CAMDEN ON GAULEY
+WV	CAMDEN ON GLY
+WV	CAMERON
+WV	CAMP CREEK
+WV	CANAAN VALLEY
+WV	CANEBRAKE
+WV	CANNELTON
+WV	CANVAS
+WV	CAPELS
+WV	CAPON BRIDGE
+WV	CAPON SPRINGS
+WV	CARBON
+WV	CARETTA
+WV	CAROLINA
+WV	CASCADE
+WV	CASS
+WV	CASSVILLE
+WV	CEDAR GROVE
+WV	CEDARVILLE
+WV	CENTER POINT
+WV	CENTRALIA
+WV	CENTURY
+WV	CEREDO
+WV	CHAPEL
+WV	CHAPMANVILLE
+WV	CHARLESTON
+WV	CHARLES TOWN
+WV	CHARLTON HEIGHTS
+WV	CHARLTON HGTS
+WV	CHARMCO
+WV	CHATTAROY
+WV	CHAUNCEY
+WV	CHERRY RUN
+WV	CHESTER
+WV	CHLOE
+WV	CIRCLEVILLE
+WV	CLARKSBURG
+WV	CLAY
+WV	CLEAR CREEK
+WV	CLEAR FORK
+WV	CLEM
+WV	CLENDENIN
+WV	CLEVELAND
+WV	CLIFFTOP
+WV	CLIFTON
+WV	CLINTONVILLE
+WV	CLIO
+WV	CLOTHIER
+WV	COAL CITY
+WV	COALDALE
+WV	COAL MOUNTAIN
+WV	COALTON
+WV	COALWOOD
+WV	COBURN
+WV	COLCORD
+WV	COLDWATER CREEK
+WV	COLFAX
+WV	COLLIERS
+WV	COMFORT
+WV	COOL RIDGE
+WV	COPEN
+WV	CORA
+WV	CORE
+WV	CORINNE
+WV	CORINTH
+WV	CORLEY
+WV	CORLISS
+WV	CORTON
+WV	COSTA
+WV	COTTAGEVILLE
+WV	COTTLE
+WV	COUNTRY CLUB
+WV	COVE GAP
+WV	COVEL
+WV	COWEN
+WV	COXS MILLS
+WV	CRAB ORCHARD
+WV	CRAIGMOORE
+WV	CRAIGSVILLE
+WV	CRAWFORD
+WV	CRAWLEY
+WV	CRESTON
+WV	CRICHTON
+WV	CROSS LANES
+WV	CROWN HILL
+WV	CRUM
+WV	CRUMPLER
+WV	CUCUMBER
+WV	CULLODEN
+WV	CUNARD
+WV	CURTIN
+WV	CUZZART
+WV	CYCLONE
+WV	DAILEY
+WV	DALLAS
+WV	DANESE
+WV	DANIELS
+WV	DANVILLE
+WV	DAVIN
+WV	DAVIS
+WV	DAVISVILLE
+WV	DAVY
+WV	DAWES
+WV	DAWMONT
+WV	DAWSON
+WV	DECOTA
+WV	DEEP WATER
+WV	DEHUE
+WV	DELBARTON
+WV	DELLSLOW
+WV	DELRAY
+WV	DIAMOND
+WV	DIANA
+WV	DILLE
+WV	DINGESS
+WV	DIXIE
+WV	DOLA
+WV	DORCAS
+WV	DOROTHY
+WV	DOTHAN
+WV	DOTT
+WV	DRENNEN
+WV	DROOP
+WV	DRYBRANCH
+WV	DRY CREEK
+WV	DRYFORK
+WV	DUCK
+WV	DUHRING
+WV	DUNBAR
+WV	DUNCAN
+WV	DUNLOW
+WV	DUNMORE
+WV	DUO
+WV	DUPONT CITY
+WV	DURBIN
+WV	EARLING
+WV	EAST BANK
+WV	EAST GULF
+WV	EAST LYNN
+WV	ECCLES
+WV	ECKMAN
+WV	EDGARTON
+WV	EDMOND
+WV	EGLON
+WV	ELBERT
+WV	ELEANOR
+WV	ELGOOD
+WV	ELIZABETH
+WV	ELK GARDEN
+WV	ELKHORN
+WV	ELKINS
+WV	ELKVIEW
+WV	ELLAMORE
+WV	ELLENBORO
+WV	ELM GROVE
+WV	ELMIRA
+WV	ELTON
+WV	EMMETT
+WV	ENGLISH
+WV	ENTERPRISE
+WV	ERBACON
+WV	ESKDALE
+WV	ETHEL
+WV	EUREKA
+WV	EVANS
+WV	EVERETTVILLE
+WV	EXCHANGE
+WV	FAIRDALE
+WV	FAIRLEA
+WV	FAIRMONT
+WV	FAIRVIEW
+WV	FALLING ROCK
+WV	FALLING WATERS
+WV	FALLING WTRS
+WV	FALLS MILL
+WV	FANROCK
+WV	FARMINGTON
+WV	FAYETTEVILLE
+WV	FBI
+WV	FENWICK
+WV	FERRELLSBURG
+WV	FILBERT
+WV	FISHER
+WV	FIVE FORKS
+WV	FLAT TOP
+WV	FLATWOODS
+WV	FLEMINGTON
+WV	FLOE
+WV	FLOWER
+WV	FOLA
+WV	FOLLANSBEE
+WV	FOLSOM
+WV	FOREST HILL
+WV	FORRESTER CENTER
+WV	FORRESTER CTR
+WV	FORT ASHBY
+WV	FORT GAY
+WV	FORT NEAL
+WV	FORT SEYBERT
+WV	FORT SPRING
+WV	FOSTER
+WV	FOUR STATES
+WV	FRAMETOWN
+WV	FRANCIS MINE
+WV	FRANKFORD
+WV	FRANKLIN
+WV	FRAZIERS BOTTOM
+WV	FRAZIERS BTM
+WV	FREEMAN
+WV	FREEPORT
+WV	FRENCH CREEK
+WV	FRENCHTON
+WV	FRIARS HILL
+WV	FRIENDLY
+WV	GALIPOLIS FRY
+WV	GALLAGHER
+WV	GALLIPOLIS FERRY
+WV	GALLOWAY
+WV	GANDEEVILLE
+WV	GAP MILLS
+WV	GARRISON
+WV	GARY
+WV	GASSAWAY
+WV	GAULEY BRIDGE
+WV	GAULEY MILLS
+WV	GAY
+WV	GEM
+WV	GENOA
+WV	GERRARDSTOWN
+WV	GHENT
+WV	GILBERT
+WV	GILBOA
+WV	GILMER
+WV	GIVEN
+WV	GLACE
+WV	GLADE SPRINGS
+WV	GLADY
+WV	GLASGOW
+WV	GLEN
+WV	GLEN DALE
+WV	GLEN DANIEL
+WV	GLENDON
+WV	GLEN EASTON
+WV	GLEN FERRIS
+WV	GLEN FORK
+WV	GLENGARY
+WV	GLENHAYES
+WV	GLEN JEAN
+WV	GLEN MORGAN
+WV	GLEN ROGERS
+WV	GLENVILLE
+WV	GLEN WHITE
+WV	GLENWOOD
+WV	GORDON
+WV	GORMANIA
+WV	GRAFTON
+WV	GRANTSVILLE
+WV	GRANT TOWN
+WV	GRANVILLE
+WV	GRASSY MDWS
+WV	GRASSY MEADOWS
+WV	GREAT CACAPON
+WV	GREEN BANK
+WV	GREEN SPRING
+WV	GREEN SULPHUR SPRINGS
+WV	GREEN VALLEY
+WV	GREENVILLE
+WV	GREENWOOD
+WV	GRIFFITHSVILLE
+WV	GRIFFITHSVLE
+WV	GRIMMS LANDING
+WV	GRIMMS LNDG
+WV	GRN SPHR SPGS
+WV	GYPSY
+WV	HACKER VALLEY
+WV	HALLTOWN
+WV	HAMBLETON
+WV	HAMLIN
+WV	HAMPDEN
+WV	HANCOCK
+WV	HANDLEY
+WV	HANOVER
+WV	HANSFORD
+WV	HARMAN
+WV	HARMONY
+WV	HARMONY GROVE
+WV	HARPER
+WV	HARPERS FERRY
+WV	HARRISON
+WV	HARRISVILLE
+WV	HARTFORD
+WV	HARTS
+WV	HARVEY
+WV	HASTINGS
+WV	HAVACO
+WV	HAYMOND
+WV	HAYWOOD
+WV	HAZELGREEN
+WV	HAZELTON
+WV	HEATERS
+WV	HEDGESVILLE
+WV	HELEN
+WV	HELVETIA
+WV	HEMPHILL
+WV	HENDERSON
+WV	HENDRICKS
+WV	HENLAWSON
+WV	HENSLEY
+WV	HEPZIBAH
+WV	HERNDON
+WV	HERNSHAW
+WV	HEROLD
+WV	HEWETT
+WV	HIAWATHA
+WV	HICO
+WV	HIGHLAND
+WV	HIGH VIEW
+WV	HILLSBORO
+WV	HILLTOP
+WV	HILTON VILLAGE
+WV	HILTON VLG
+WV	HINES
+WV	HINTON
+WV	HOLDEN
+WV	HOMETOWN
+WV	HOPEMONT
+WV	HORNER
+WV	HORSE SHOE RN
+WV	HORSE SHOE RUN
+WV	HUGHES RIVER
+WV	HUGHESTON
+WV	HUNDRED
+WV	HUNTINGTON
+WV	HURRICANE
+WV	HUTTONSVILLE
+WV	IAEGER
+WV	IDAMAY
+WV	IKES FORK
+WV	INDEPENDENCE
+WV	INDIAN MILLS
+WV	INDORE
+WV	INDUSTRIAL
+WV	INSTITUTE
+WV	INWOOD
+WV	IRELAND
+WV	ISABAN
+WV	ITMANN
+WV	IVYDALE
+WV	JACKSONBURG
+WV	JANE LEW
+WV	JEFFERSON
+WV	JEFFREY
+WV	JENKINJONES
+WV	JESSE
+WV	JOB
+WV	JODIE
+WV	JOLO
+WV	JONBEN
+WV	JONES SPRINGS
+WV	JORDAN
+WV	JOSEPHINE
+WV	JULIAN
+WV	JUMPING BR
+WV	JUMPING BRANCH
+WV	JUNCTION
+WV	JUNIOR
+WV	JUSTICE
+WV	KANAWHA FALLS
+WV	KANAWHA HEAD
+WV	KASSON
+WV	KAYFORD
+WV	KEARNEYSVILLE
+WV	KEGLEY
+WV	KELLYSVILLE
+WV	KENNA
+WV	KENOVA
+WV	KENTUCK
+WV	KERENS
+WV	KERMIT
+WV	KESLER CR LNS
+WV	KESLERS CROSS LANES
+WV	KESSLER
+WV	KEYSER
+WV	KEYSTONE
+WV	KIAHSVILLE
+WV	KIEFFER
+WV	KIMBALL
+WV	KIMBERLY
+WV	KINCAID
+WV	KINCHELOE
+WV	KINGMONT
+WV	KINGSTON
+WV	KINGWOOD
+WV	KIRBY
+WV	KISTLER
+WV	KNOB FORK
+WV	KOPPERSTON
+WV	KYLE
+WV	LAHMANSVILLE
+WV	LAKE
+WV	LAKE RIDGE
+WV	LAKIN
+WV	LANARK
+WV	LANDES STA
+WV	LANDES STATION
+WV	LANDVILLE
+WV	LANHAM
+WV	LANSING
+WV	LASHMEET
+WV	LAUREL PARK
+WV	LAUREL VALLEY
+WV	LAVALETTE
+WV	LAWTON
+WV	LAYLAND
+WV	LECKIE
+WV	LEET
+WV	LEEWOOD
+WV	LEFT HAND
+WV	LEHEW
+WV	LEIVASY
+WV	LENORE
+WV	LEON
+WV	LERONA
+WV	LE ROY
+WV	LESAGE
+WV	LESLIE
+WV	LESTER
+WV	LETART
+WV	LETTER GAP
+WV	LEVELS
+WV	LEWISBURG
+WV	LIBERTY
+WV	LILLY PARK
+WV	LIMA
+WV	LIMESTONE HILL
+WV	LIMESTONE HL
+WV	LINDEN
+WV	LINDSIDE
+WV	LINN
+WV	LITTLE BIRCH
+WV	LITTLE FALLS
+WV	LITTLETON
+WV	LIVERPOOL
+WV	LIZEMORES
+WV	LOBATA
+WV	LOCHGELLY
+WV	LOCKBRIDGE
+WV	LOCKNEY
+WV	LOGAN
+WV	LONDON
+WV	LONGACRE
+WV	LOOKOUT
+WV	LOONEYVILLE
+WV	LORADO
+WV	LORENTZ
+WV	LOST CITY
+WV	LOST CREEK
+WV	LOST RIVER
+WV	LOVERN
+WV	LUMBERPORT
+WV	LUNDALE
+WV	LYBURN
+WV	LYNCO
+WV	LYNNCAMP
+WV	MABEN
+WV	MABIE
+WV	MABSCOTT
+WV	MAC ARTHUR
+WV	MACFARLAN
+WV	MADISON
+WV	MAHAN
+WV	MAHONE
+WV	MAIDSVILLE
+WV	MALDEN
+WV	MALLORY
+WV	MAMMOTH
+WV	MAN
+WV	MANHEIM
+WV	MANNINGTON
+WV	MAPLE LAKE
+WV	MAPLEWOOD
+WV	MARFRANCE
+WV	MARIANNA
+WV	MARLINTON
+WV	MARMET
+WV	MARTINSBURG
+WV	MASON
+WV	MASONTOWN
+WV	MATEWAN
+WV	MATHENY
+WV	MATHIAS
+WV	MATOAKA
+WV	MAXWELTON
+WV	MAYBEURY
+WV	MAYSEL
+WV	MAYSVILLE
+WV	MCALPIN
+WV	MC COMAS
+WV	MC CONNELL
+WV	MC DOWELL
+WV	MC GRAWS
+WV	MCMECHEN
+WV	MCWHORTER
+WV	MEAD
+WV	MEADOR
+WV	MEADOW BLUFF
+WV	MEADOW BRIDGE
+WV	MEADOWBROOK
+WV	MEADOW CREEK
+WV	MEDLEY
+WV	METZ
+WV	MIAMI
+WV	MIDDLEBOURNE
+WV	MIDDLEWAY
+WV	MIDKIFF
+WV	MIDWAY
+WV	MILAM
+WV	MILL CREEK
+WV	MILL POINT
+WV	MILLSTONE
+WV	MILLVILLE
+WV	MILLWOOD
+WV	MILTON
+WV	MINDEN
+WV	MINEHAHA SPGS
+WV	MINERAL WELLS
+WV	MINGO
+WV	MINNEHAHA SPRINGS
+WV	MINNORA
+WV	MOATSVILLE
+WV	MOHAWK
+WV	MONAVILLE
+WV	MONONGAH
+WV	MONTANA MINES
+WV	MONTCALM
+WV	MONTCOAL
+WV	MONTERVILLE
+WV	MONTGOMERY
+WV	MONTROSE
+WV	MOOREFIELD
+WV	MORGANTOWN
+WV	MORRISVALE
+WV	MOUNDSVILLE
+WV	MOUNTAIN
+WV	MOUNT ALTO
+WV	MOUNT CARBON
+WV	MOUNT CLARE
+WV	MOUNT GAY
+WV	MOUNT HOPE
+WV	MOUNT LOOKOUT
+WV	MOUNT NEBO
+WV	MOUNT OLIVE
+WV	MOUNT STORM
+WV	MOUNT ZION
+WV	MOYERS
+WV	MOZART
+WV	MULLENS
+WV	MUNDAY
+WV	MURRAYSVILLE
+WV	MYRA
+WV	MYRTLE
+WV	NALLEN
+WV	NAOMA
+WV	NAPIER
+WV	NAUGATUCK
+WV	NEBO
+WV	NELLIS
+WV	NEMOURS
+WV	NEOLA
+WV	NETTIE
+WV	NEWARK
+WV	NEWBERNE
+WV	NEWBURG
+WV	NEW CREEK
+WV	NEW CUMBERLAND
+WV	NEW CUMBERLND
+WV	NEWELL
+WV	NEW ENGLAND
+WV	NEWHALL
+WV	NEW HAVEN
+WV	NEW MANCHESTER
+WV	NEW MANCHESTR
+WV	NEW MARTINSVILLE
+WV	NEW MILTON
+WV	NEW RICHMOND
+WV	NEWTON
+WV	NEWTOWN
+WV	NEWVILLE
+WV	NICUT
+WV	NIMITZ
+WV	NITRO
+WV	N MARTINSVLLE
+WV	NOBE
+WV	NOLAN
+WV	NORMANTOWN
+WV	NORTHFORK
+WV	NORTH MATEWAN
+WV	NORTH PARKERSBURG
+WV	NORTH SPRING
+WV	NORTON
+WV	N PARKERSBURG
+WV	NUTTER FORT
+WV	OAK HILL
+WV	OAKVALE
+WV	OCEANA
+WV	ODD
+WV	OHLEY
+WV	OLD FIELDS
+WV	OMAR
+WV	ONA
+WV	ONEGO
+WV	ORGAN CAVE
+WV	ORGAS
+WV	ORIENT HILL
+WV	ORLANDO
+WV	ORMA
+WV	OSAGE
+WV	OTTAWA
+WV	OVAPA
+WV	OVERBROOK
+WV	OWINGS
+WV	PACKSVILLE
+WV	PADEN CITY
+WV	PAGE
+WV	PAGETON
+WV	PALERMO
+WV	PALESTINE
+WV	PANTHER
+WV	PARCOAL
+WV	PARKERSBURG
+WV	PARSONS
+WV	PATTERSON CREEK
+WV	PATTERSON CRK
+WV	PAW PAW
+WV	PAX
+WV	PAYNESVILLE
+WV	PEACH CREEK
+WV	PECKS MILL
+WV	PEMBERTON
+WV	PENCE SPRINGS
+WV	PENNSBORO
+WV	PENTRESS
+WV	PEORA
+WV	PERKINS
+WV	PETERSBURG
+WV	PETERSTOWN
+WV	PETROLEUM
+WV	PETTUS
+WV	PEYTONA
+WV	PHILIPPI
+WV	PICKAWAY
+WV	PICKENS
+WV	PIEDMONT
+WV	PIGEON
+WV	PINCH
+WV	PINE BLUFF
+WV	PINE GROVE
+WV	PINEVILLE
+WV	PINEY VIEW
+WV	PIPESTEM
+WV	PLEASANT VALLEY
+WV	PLEASANT VLY
+WV	PLINY
+WV	POCA
+WV	POINT PLEASANT
+WV	POINTS
+WV	POND GAP
+WV	POOL
+WV	PORTERS FALLS
+WV	POWELLTON
+WV	POWHATAN
+WV	PRATT
+WV	PREMIER
+WV	PRENTER
+WV	PRICHARD
+WV	PRINCE
+WV	PRINCETON
+WV	PRINCEWICK
+WV	PROCIOUS
+WV	PROCTOR
+WV	PROSPERITY
+WV	PT PLEASANT
+WV	PULLMAN
+WV	PURGITSVILLE
+WV	PURSGLOVE
+WV	QUICK
+WV	QUINCY
+WV	QUINWOOD
+WV	RACHEL
+WV	RACINE
+WV	RADNOR
+WV	RAGLAND
+WV	RAINELLE
+WV	RALEIGH
+WV	RAMAGE
+WV	RAMSEY
+WV	RANGER
+WV	RANSON
+WV	RAVENCLIFF
+WV	RAVENSWOOD
+WV	RAWL
+WV	RAYSAL
+WV	READER
+WV	RED CREEK
+WV	RED HOUSE
+WV	RED JACKET
+WV	REDSTAR
+WV	REEDSVILLE
+WV	REEDY
+WV	RENICK
+WV	REPLETE
+WV	REYNOLDSVILLE
+WV	RHODELL
+WV	RICHWOOD
+WV	RIDGELEY
+WV	RIDGEVIEW
+WV	RIDGEWAY
+WV	RIFFLE
+WV	RIG
+WV	RIO
+WV	RIPLEY
+WV	RIPPON
+WV	RIVERTON
+WV	RIVESVILLE
+WV	ROANOKE
+WV	ROBERTSBURG
+WV	ROBINETTE
+WV	ROBSON
+WV	ROCK
+WV	ROCK CASTLE
+WV	ROCK CAVE
+WV	ROCK CREEK
+WV	ROCKPORT
+WV	ROCK VIEW
+WV	RODERFIELD
+WV	ROMANCE
+WV	ROMNEY
+WV	RONCEVERTE
+WV	ROSEDALE
+WV	ROSEMONT
+WV	ROSSMORE
+WV	ROWLESBURG
+WV	RUNA
+WV	RUPERT
+WV	RUSSELVILLE
+WV	SABINE
+WV	SAINT ALBANS
+WV	SAINT GEORGE
+WV	SAINT MARYS
+WV	SALEM
+WV	SALT ROCK
+WV	SALTWELL
+WV	SAM BLACK
+WV	SAND FORK
+WV	SAND RIDGE
+WV	SANDSTONE
+WV	SANDYVILLE
+WV	SANOMA
+WV	SARAH ANN
+WV	SARTON
+WV	SAULSVILLE
+WV	SAXON
+WV	SCARBRO
+WV	S CHARLESTON
+WV	SCHERR
+WV	SCOTT DEPOT
+WV	SECONDCREEK
+WV	SEEBERT
+WV	SELBYVILLE
+WV	SENECA ROCKS
+WV	SETH
+WV	SHADY SPRING
+WV	SHANKS
+WV	SHARPLES
+WV	SHENANDOAH JUNCTION
+WV	SHENDOAH JCT
+WV	SHEPHERDSTOWN
+WV	SHERMAN
+WV	SHINNSTON
+WV	SHIRLEY
+WV	SHIVELY
+WV	SHOALS
+WV	SHOCK
+WV	SHORT CREEK
+WV	SHORT GAP
+WV	SHREWSBURY
+WV	SIAS
+WV	SIMON
+WV	SIMPSON
+WV	SINKS GROVE
+WV	SISSONVILLE
+WV	SISTERSVILLE
+WV	SKELTON
+WV	SKYGUSTY
+WV	SLAB FORK
+WV	SLANESVILLE
+WV	SLATYFORK
+WV	SMITHBURG
+WV	SMITHERS
+WV	SMITHFIELD
+WV	SMITHVILLE
+WV	SMOOT
+WV	SNOWSHOE
+WV	SOD
+WV	SOMERVLLE FRK
+WV	SOMMERVILLE FORK
+WV	SOPHIA
+WV	SOUTH CHARLESTON
+WV	SOUTHSIDE
+WV	SPANISHBURG
+WV	SPELTER
+WV	SPENCER
+WV	SPRAGUE
+WV	SPRIGG
+WV	SPRING DALE
+WV	SPRINGFIELD
+WV	SPRING HILL
+WV	SPRING VALLEY
+WV	SPURLOCKVILLE
+WV	SQUIRE
+WV	STANAFORD
+WV	STANDING STONE
+WV	STAR CITY
+WV	STATTS MILLS
+WV	STEPHENSON
+WV	STICKNEY
+WV	STIRRAT
+WV	STNDG STONE
+WV	STOLLINGS
+WV	STONEWOOD
+WV	STONY BOTTOM
+WV	STOUTS MILLS
+WV	STRANGE CREEK
+WV	STREETER
+WV	STUMPTOWN
+WV	SUGAR GROVE
+WV	SUMERCO
+WV	SUMMERLEE
+WV	SUMMERSVILLE
+WV	SUMMIT POINT
+WV	SUNDIAL
+WV	SUPERIOR
+WV	SURVEYOR
+WV	SUTTON
+WV	SWEETLAND
+WV	SWEET SPRINGS
+WV	SWISS
+WV	SWITCHBACK
+WV	SWITZER
+WV	SYLVESTER
+WV	TAD
+WV	TALCOTT
+WV	TALLMANSVILLE
+WV	TAMS
+WV	TANNER
+WV	TAPLIN
+WV	TARIFF
+WV	TEAYS
+WV	TENNERTON
+WV	TERRA ALTA
+WV	TERRY
+WV	TESLA
+WV	THACKER
+WV	THOMAS
+WV	THORNTON
+WV	THORPE
+WV	THREE CHRS
+WV	THREE CHURCHES
+WV	THURMOND
+WV	TIOGA
+WV	TOLL GATE
+WV	TORNADO
+WV	TRIADELPHIA
+WV	TROUT
+WV	TROY
+WV	TRUE
+WV	TUNNELTON
+WV	TURTLE CREEK
+WV	TWILIGHT
+WV	TWIN BRANCH
+WV	TWO RUN
+WV	ULER
+WV	UNEEDA
+WV	UNGER
+WV	UNION
+WV	UPPER FALLS
+WV	UPPERGLADE
+WV	UPPER TRACT
+WV	VADIS
+WV	VALLEY BEND
+WV	VALLEY CHAPEL
+WV	VALLEY FORK
+WV	VALLEY GROVE
+WV	VALLEY HEAD
+WV	VALLSCREEK
+WV	VAN
+WV	VARNEY
+WV	VERDUNVILLE
+WV	VERNER
+WV	VICTOR
+WV	VIENNA
+WV	VIVIAN
+WV	VOLGA
+WV	VULCAN
+WV	WADESTOWN
+WV	WAITEVILLE
+WV	WALKER
+WV	WALKERSVILLE
+WV	WALLACE
+WV	WALLBACK
+WV	WALTON
+WV	WANA
+WV	WAR
+WV	WARDENSVILLE
+WV	WARRIORMINE
+WV	WARWOOD
+WV	WASHINGTON
+WV	WAVERLY
+WV	WAYNE
+WV	WAYSIDE
+WV	WEBSTER SPGS
+WV	WEBSTER SPRINGS
+WV	WEIRTON
+WV	WELCH
+WV	WELLSBURG
+WV	WENDEL
+WV	WEST COLUMBIA
+WV	WEST HAMLIN
+WV	WEST LIBERTY
+WV	WEST LOGAN
+WV	WEST MILFORD
+WV	WESTON
+WV	WESTOVER
+WV	WEST UNION
+WV	WHARNCLIFFE
+WV	WHARTON
+WV	WHEELING
+WV	WHITBY
+WV	WHITE DAY
+WV	WHITEHALL
+WV	WHITE HALL
+WV	WHITE OAK
+WV	WHITE SULPHUR SPRINGS
+WV	WHITESVILLE
+WV	WHITMAN
+WV	WHITMER
+WV	WHITTAKER
+WV	WHT SPHR SPGS
+WV	WHT SULPHUR S
+WV	WHT SULPHUR SPGS
+WV	WICK
+WV	WIDEN
+WV	WILBUR
+WV	WILCOE
+WV	WILDCAT
+WV	WILEY FORD
+WV	WILEYVILLE
+WV	WILKINSON
+WV	WILLIAMSBURG
+WV	WILLIAMSON
+WV	WILLIAMSTOWN
+WV	WILLOW BEND
+WV	WILLOW ISLAND
+WV	WILSIE
+WV	WILSON
+WV	WILSONBURG
+WV	WILSONDALE
+WV	WINDING GULF
+WV	WINDSOR HEIGHTS
+WV	WINDSOR HTS
+WV	WINFIELD
+WV	WINIFREDE
+WV	WINONA
+WV	WITCHER
+WV	WOLFCREEK
+WV	WOLFE
+WV	WOLF PEN
+WV	WOLF SUMMIT
+WV	WOODVILLE
+WV	WOOLLY BUGGER
+WV	WORTH
+WV	WORTHINGTON
+WV	WRISTON
+WV	WYATT
+WV	WYCO
+WV	WYMER
+WV	WYOMING
+WV	YAWKEY
+WV	YELLOW SPRING
+WV	YOLYN
+WV	YUKON
+WY	ACME
+WY	AFTON
+WY	ALADDIN
+WY	ALBIN
+WY	ALCOVA
+WY	ALLENDALE
+WY	ALPINE
+WY	ALTA
+WY	ALVA
+WY	ARAPAHOE
+WY	ARLINGTON
+WY	ARMINTO
+WY	ARVADA
+WY	ATLANTIC CITY
+WY	AUBURN
+WY	BAGGS
+WY	BAIROIL
+WY	BANNER
+WY	BAR NUNN
+WY	BASIN
+WY	BEAR RIVER
+WY	BEDFORD
+WY	BEULAH
+WY	BIG HORN
+WY	BIG PINEY
+WY	BITTER CREEK
+WY	BONDURANT
+WY	BORDEAUX
+WY	BOSLER
+WY	BOULDER
+WY	BUFFALO
+WY	BUFORD
+WY	BURLINGTON
+WY	BURNS
+WY	BURRIS
+WY	BYRON
+WY	CARLILE
+WY	CARPENTER
+WY	CASPER
+WY	CENTENNIAL
+WY	CHEYENNE
+WY	CHUGWATER
+WY	CLARK
+WY	CLEARMONT
+WY	CODY
+WY	COKEVILLE
+WY	CORA
+WY	COWLEY
+WY	CRESTON
+WY	CROWHEART
+WY	DANIEL
+WY	DAYTON
+WY	DEAVER
+WY	DEVILS TOWER
+WY	DIAMOND
+WY	DIAMONDVILLE
+WY	DIXON
+WY	DOUGLAS
+WY	DUBOIS
+WY	EDEN
+WY	EDGERTON
+WY	EGBERT
+WY	ELK MOUNTAIN
+WY	ELMO
+WY	EMBLEM
+WY	ENCAMPMENT
+WY	ETHETE
+WY	ETNA
+WY	EVANSTON
+WY	EVANSVILLE
+WY	FAIRVIEW
+WY	FARSON
+WY	FONTENELLE
+WY	FORT BRIDGER
+WY	FORT LARAMIE
+WY	FORT STEELE
+WY	FORT WASHAKIE
+WY	FOUR CORNERS
+WY	FOXPARK
+WY	FRANNIE
+WY	FREEDOM
+WY	FRONTIER
+WY	FT WARREN AFB
+WY	GARLAND
+WY	GARRETT
+WY	GAS HILLS
+WY	GILLETTE
+WY	GLENDO
+WY	GLENROCK
+WY	GRANGER
+WY	GRANITE CANON
+WY	GRANITE CANYON
+WY	GREEN RIVER
+WY	GREYBULL
+WY	GROVER
+WY	GUERNSEY
+WY	HAMILTON DOME
+WY	HAMSFORK
+WY	HANNA
+WY	HARRIMAN
+WY	HARTVILLE
+WY	HAWK SPRINGS
+WY	HILAND
+WY	HILLSDALE
+WY	HOBACK JCT
+WY	HOBACK JUNCTION
+WY	HORSE CREEK
+WY	HUDSON
+WY	HULETT
+WY	HUNTLEY
+WY	HYATTVILLE
+WY	IRON MOUNTAIN
+WY	JACKSON
+WY	JACKSON HOLE
+WY	JAY EM
+WY	JEFFREY CITY
+WY	JELM
+WY	JENNY LAKE
+WY	KAYCEE
+WY	KEELINE
+WY	KELLY
+WY	KEMMERER
+WY	KINNEAR
+WY	KIRBY
+WY	KIRTLEY
+WY	KORTES DAM
+WY	LA BARGE
+WY	LAGRANGE
+WY	LANCE CREEK
+WY	LANDER
+WY	LARAMIE
+WY	LEITER
+WY	LEO
+WY	LINCH
+WY	LINGLE
+WY	LITL AMERICA
+WY	LITTLE AMERICA
+WY	LONETREE
+WY	LOST CABIN
+WY	LOST SPRINGS
+WY	LOVELL
+WY	LUCKY MACCAMP
+WY	LUSK
+WY	LYMAN
+WY	LYSITE
+WY	MAMMOTH
+WY	MAMMOTH HOT SPRINGS
+WY	MANDERSON
+WY	MANTUA
+WY	MANVILLE
+WY	MARBLETON
+WY	MAYOWORTH
+WY	MCFADDEN
+WY	MC KINNON
+WY	MEDICINE BOW
+WY	MEETEETSE
+WY	MERIDEN
+WY	MIDVAL
+WY	MIDWEST
+WY	MILLS
+WY	MONETA
+WY	MOORCROFT
+WY	MOOSE
+WY	MORAN
+WY	MORTON
+WY	MOUNTAIN HOME
+WY	MOUNTAIN VIEW
+WY	MUDDY GAP
+WY	NATRONA
+WY	NEWCASTLE
+WY	NEW HAVEN
+WY	NODE
+WY	OPAL
+WY	ORIN
+WY	OSAGE
+WY	OSHOTO
+WY	OTTO
+WY	PARKERTON
+WY	PARKMAN
+WY	PAVILLION
+WY	PIEDMONT
+WY	PINE BLUFFS
+WY	PINEDALE
+WY	PINE HAVEN
+WY	POINT OF ROCKS
+WY	POWDER RIVER
+WY	POWELL
+WY	PRAIRIE CENTER
+WY	PRAIRIE CTR
+WY	PT OF ROCKS
+WY	QUEALY
+WY	RALSTON
+WY	RANCHESTER
+WY	RAWLINS
+WY	RAYMOND
+WY	RECLUSE
+WY	RED DESERT
+WY	RELIANCE
+WY	RINER
+WY	RIVERSIDE
+WY	RIVERTON
+WY	ROBERTSON
+WY	ROCKEAGLE
+WY	ROCK RIVER
+WY	ROCK SPRINGS
+WY	ROLLING HILLS
+WY	ROZET
+WY	RYAN PARK
+WY	SADDLESTRING
+WY	SAINT STEPHENS
+WY	SAND DRAW
+WY	SARATOGA
+WY	SAVERY
+WY	SHAWNEE
+WY	SHELL
+WY	SHERIDAN
+WY	SHIRLEY BASIN
+WY	SHOSHONI
+WY	SINCLAIR
+WY	SLATER
+WY	SMOOT
+WY	SOUTH PASS CITY
+WY	S PASS CITY
+WY	STAR VALLEY RANCH
+WY	STAR VLY RNCH
+WY	STORY
+WY	ST STEPHENS
+WY	SUNDANCE
+WY	SUNRISE
+WY	SUPERIOR
+WY	SUSSEX
+WY	SWEETWATER STATION
+WY	SWEETWATR STA
+WY	TEN SLEEP
+WY	TETON VILLAGE
+WY	THAYNE
+WY	THERMOPOLIS
+WY	TIE SIDING
+WY	TIPTON
+WY	TORRINGTON
+WY	TURNERVILLE
+WY	UPTON
+WY	URIE
+WY	UVA
+WY	VAN TASSELL
+WY	VETERAN
+WY	WALCOTT
+WY	WAMSUTTER
+WY	WAPITI
+WY	WESTON
+WY	WHEATLAND
+WY	WILLWOOD
+WY	WILSON
+WY	WOLF
+WY	WORLAND
+WY	WRIGHT
+WY	WYARNO
+WY	YELLOWSTONE NATIONAL PARK
+WY	YELWSTN NL PK
+WY	YODER
diff --git a/extensions/postgis/META.json b/extensions/postgis/META.json
index 46a44b1..4dfc8b0 100644
--- a/extensions/postgis/META.json
+++ b/extensions/postgis/META.json
@@ -1,57 +1,53 @@
-{
-	"name": "postgis",
-	"abstract": "PostGIS 2.0 OGC/SQL-MM compliant spatial extender for PostgreSQL",
-	"description": "This module provides GIS geometry, geography, raster types, functions, and tables",
-	"version": "2.0.0a1",
-	"release_status": "unstable",
-	"maintainer": "PostGIS Steering Committee",
-	"license": "gpl_2",
-	"provides": {
-		"postgis": {
-			"abstract": "PostGIS GIS types, indexes and functions",
-			"version": "2.0.0",
-			"file": "sql/postgis.sql",
-			"docfile": "doc/postgis.md"
-		},
-         "spatial_ref_sys": {
-           "file": "sql/spatial_ref_sys.sql",
-           "version": "2.0.0",
-           "abstract": "Directory of spatial reference systems needed for geometry transformation between different spatial reference systems"
-         },
-        "raster": {
-           "file": "sql/rtpostgis.sql",
-           "version": "2.0.0",
-           "abstract": "Raster functions and types"
-         }
-	},
-	"prereqs": {
-      "runtime": {
-         "requires": {
-            "plpgsql": 0,
-            "PostgreSQL": "8.4.0"
-         }
-      }
-    },
-    "generated_by": "Regina O. Obe",
-	"resources": {
-		"bugtracker": {
-			"web": "http://trac.osgeo.org/postgis"
-		},
-		"repository": {
-			"url": "svn://svn.osgeo.org/postgis/",
-			"web": "http://postgis.net",
-			"type": "svn"
-		}
-	},
-	"meta-spec": {
-		"version": "1.0.0",
-		"url": "http://pgxn.org/meta/spec.txt"
-	},
-	"tags": [
-		"gis",
-		"spatial",
-		"geometry","raster",
-		"geography",
-		"location"
-	]
-}
+{
+   "abstract" : "PostGIS 2.2 OGC/SQL-MM compliant spatial extender for PostgreSQL",
+   "release_status" : "stable",
+   "license" : "gpl_2",
+   "generated_by" : "Regina O. Obe",
+   "description" : "This module provides GIS geometry, geography, raster types, functions, and tables",
+   "version" : "2.2.0",
+   "resources" : {
+      "bugtracker" : {
+         "web" : "http://trac.osgeo.org/postgis"
+      },
+      "repository" : {
+         "type" : "svn",
+         "web" : "http://postgis.net",
+         "url" : "svn://svn.osgeo.org/postgis/"
+      }
+   },
+   "tags" : [
+      "gis",
+      "spatial",
+      "geometry",
+      "raster",
+      "geography",
+      "location"
+   ],
+   "meta-spec" : {
+      "version" : "1.0.0",
+      "url" : "http://pgxn.org/meta/spec.txt"
+   },
+   "provides" : {
+      "spatial_ref_sys" : {
+         "version" : "2.2.0",
+         "file" : "sql/spatial_ref_sys.sql",
+         "abstract" : "Directory of spatial reference systems needed for geometry transformation between different spatial reference systems"
+      },
+      "postgis" : {
+         "abstract" : "PostGIS GIS types, indexes and functions",
+         "docfile" : "doc/postgis.md",
+         "file" : "sql/postgis.sql",
+         "version" : "2.2.0"
+      }
+   },
+   "name" : "postgis",
+   "maintainer" : "PostGIS Steering Committee",
+   "prereqs" : {
+      "runtime" : {
+         "requires" : {
+            "PostgreSQL" : "9.1.0",
+            "plpgsql" : 0
+         }
+      }
+   }
+}
diff --git a/extensions/postgis/Makefile.in b/extensions/postgis/Makefile.in
index aefaa8f..088c146 100644
--- a/extensions/postgis/Makefile.in
+++ b/extensions/postgis/Makefile.in
@@ -4,6 +4,7 @@ EXTENSION     = postgis
 EXTVERSION    = @POSTGIS_LIB_VERSION@
 MINORVERSION  = @POSTGIS_MAJOR_VERSION at .@POSTGIS_MINOR_VERSION@
 GREP = @GREP@
+PERL=@PERL@
 
 MICRO_NUMBER  = $(shell echo $(EXTVERSION) | sed "s/[0-9]\.[0-9]\.\([0-9]*\)[a-zA-Z]*[0-9]*/\1/")
 PREREL_NUMBER = $(shell echo $(EXTVERSION) | \
@@ -27,26 +28,32 @@ PG91         = $(shell $(PG_CONFIG) --version | $(GREP) -qE " 8\.| 9\.0" && echo
 SQL_BITS     = $(wildcard sql_bits/*.sql)
 EXTRA_CLEAN += ${SQL_BITS} sql/*.sql
 
+# Update PREV_big manually on branching
+# TODO: move this definition in ../../Version.config
+PREV_big=21
+CURV_big=@POSTGIS_MAJOR_VERSION@@POSTGIS_MINOR_VERSION@
 
 ifeq ($(PG91),yes)
+	
+all: sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql sql_minor_upgrade
+
 sql/$(EXTENSION).sql: sql_bits/postgis.sql sql_bits/postgis_comments.sql sql_bits/rtpostgis.sql sql_bits/mark_editable_objects.sql.in sql_bits/raster_comments.sql sql_bits/spatial_ref_sys.sql
 	mkdir -p sql
-	cat $^ > $@
-	
-all: sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql sql_minor_upgrade sql_patch_upgrade
+	echo '\echo Use "CREATE EXTENSION $(EXTENSION)" to load this file. \quit' > $@
+	cat $^ >> $@
 
 sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
 	mkdir -p sql
 	cp $< $@
 
-sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: sql_bits/postgis--unpackaged.sql.in
+sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: ../../postgis/postgis.sql ../../raster/rt_pg/rtpostgis.sql ../../utils/create_unpackaged.pl
 	mkdir -p sql
-	cp $< $@
+	cat ../../postgis/postgis.sql ../../raster/rt_pg/rtpostgis.sql | $(PERL) ../../utils/create_unpackaged.pl postgis > $@
 	
 #this is a cludge to allow upgrading from same SVN to same SVN
-sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql: sql_bits/extension_upgrade_patch.sql
+sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql: sql_bits/postgis_raster_upgrade_minor.sql
 	cp $< $@
-sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql_bits/extension_upgrade_patch.sql
+sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql_bits/postgis_raster_upgrade_minor.sql
 	cp $< $@
 
 #strip BEGIN/COMMIT since these are not allowed in extensions
@@ -71,31 +78,16 @@ sql_bits/rtpostgis.sql: ../../raster/rt_pg/rtpostgis.sql
 # for casts that are being dropped we need to drop them 
 # from extension only if they are in the existension so we use our postgis_extension_drop..
 # so that it will silently fail if cast is not in extension
-sql_bits/rtpostgis_upgrade_20_21.sql: ../../raster/rt_pg/rtpostgis_upgrade_20_21.sql
-	sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' \
-		-e 's/DROP FUNCTION _rename_raster_tables();/ALTER EXTENSION ${EXTENSION} DROP FUNCTION _rename_raster_tables();DROP FUNCTION _rename_raster_tables();/g' \
-		-e 's/DROP FUNCTION _drop_st_samealignment();/ALTER EXTENSION ${EXTENSION} DROP FUNCTION _drop_st_samealignment();DROP FUNCTION _drop_st_samealignment();/g' \
-		-e 's/DROP CAST\(.*\)/SELECT postgis_extension_drop_if_exists('\''$(EXTENSION)'\'', '\''DROP CAST \1'\'');DROP CAST \1/' \
-	$< > $@
-
-sql_bits/rtpostgis_upgrade_21_minor.sql: ../../raster/rt_pg/rtpostgis_upgrade_21_minor.sql
+sql_bits/rtpostgis_upgrade.sql: ../../raster/rt_pg/rtpostgis_upgrade.sql
 	sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' \
 		-e 's/DROP FUNCTION _rename_raster_tables();/ALTER EXTENSION ${EXTENSION} DROP FUNCTION _rename_raster_tables();DROP FUNCTION _rename_raster_tables();/g' \
 		-e 's/DROP FUNCTION _drop_st_samealignment();/ALTER EXTENSION ${EXTENSION} DROP FUNCTION _drop_st_samealignment();DROP FUNCTION _drop_st_samealignment();/g' \
 		-e 's/DROP CAST\(.*\)/SELECT postgis_extension_drop_if_exists('\''$(EXTENSION)'\'', '\''DROP CAST \1'\'');DROP CAST \1/' \
 	$< > $@
 
-
 #don't drop casts just yet since we don't have provision to remove from extension yet
 #need to also drop temporary functions from extenions since it gets auto-added
-sql_bits/postgis_upgrade_20_21.sql: ../../postgis/postgis_upgrade_20_21.sql 
-		 sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' \
-		 -e '/^\(DROP\|CREATE\) \(CAST\).*;/d' \
-		 -e '/^\(DROP\|CREATE\) \(CAST\)/,/\;/d' \
-		 -e 's/DROP FUNCTION postgis_major_version_check();/ALTER EXTENSION ${EXTENSION} DROP FUNCTION postgis_major_version_check();DROP FUNCTION postgis_major_version_check();/g' \
-	 	 $< > $@
-
-sql_bits/postgis_upgrade_21_minor.sql: ../../postgis/postgis_upgrade_21_minor.sql 
+sql_bits/postgis_upgrade.sql: ../../postgis/postgis_upgrade.sql 
 		 sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' \
 		 -e '/^\(DROP\|CREATE\) \(CAST\).*;/d' \
 		 -e '/^\(DROP\|CREATE\) \(CAST\)/,/\;/d' \
@@ -109,58 +101,15 @@ sql_bits/postgis_upgrade_21_minor.sql: ../../postgis/postgis_upgrade_21_minor.sq
 sql_bits/raster_comments.sql: ../../doc/raster_comments.sql
 	cp $< $@
 
-#extension_upgrade_minor.sql is the one that contains both postgis AND raster
+#postgis_raster_upgrade_minor.sql is the one that contains both postgis AND raster
+#TODO: come up with a better name
 #TODO: what about postgis_drop_after.sql ? where does it fit ??
-sql_bits/extension_upgrade_minor.sql: ../postgis_extension_helper.sql sql_bits/postgis_upgrade_20_21.sql sql_bits/rtpostgis_upgrade_20_21.sql ../../doc/raster_comments.sql ../../doc/postgis_comments.sql ../postgis_extension_helper_uninstall.sql
-	cat $^ > $@
-
-sql_bits/extension_upgrade_patch.sql: ../postgis_extension_helper.sql sql_bits/postgis_upgrade_21_minor.sql sql_bits/rtpostgis_upgrade_21_minor.sql ../../doc/raster_comments.sql ../../doc/postgis_comments.sql ../postgis_extension_helper_uninstall.sql
-	cat $^ > $@
-
-# sql_bits/rtpostgis--unpackaged.sql:  ../../raster/rt_pg/rtpostgis.sql	 
-# 	sed -e 's/^[\t]*//' \
-# 		-e :a -e '$!N; s/,\n/,/; ta' \
-# 	$< > $@
-#remove leading white space and tabs
-#remove line break from a line if it ends in ,
-
-sql_bits/rtpostgis-filtered.sql:  ../../raster/rt_pg/rtpostgis.sql
-		sed \
-		-e 's/^[\t]*//' \
-		$< > $@
-
-## we are going to hard code for now using sql script to generate unpackage script
-# sql_bits/rtpostgis--unpackaged.sql:  ../../raster/rt_pg/rtpostgis.sql
-# 		sed \
-# 		-e 's/^[\t]*//' \
-# 		-e '$!N; s/(\n/(/g' \
-# 		-e '/^CREATE \(OR REPLACE FUNCTION\|TRIGGER\|TYPE\|TABLE\|VIEW\)/!d;' \
-# 		-e 's/OR REPLACE//g' \
-# 		-e 's/CREATE\(.*\)/ALTER EXTENSION $(EXTENSION) ADD\1;/' \
-# 		-e 's/DEFAULT [^()]\+//g' \
-# 		-e 's/\(BEFORE\|AS\|RETURNS\)\(.*\)/;/' \
-# 		-e 's/(;/;/' \
-# 		-e 's/\\(;/;/' \
-# 		-e 's/;;/;/g' $< > $@
-
-# sql_bits/postgis--unpackaged.sql:   ../../postgis/postgis.sql
-# 	sed -e '/^CREATE \(OR REPLACE\|TRIGGER\|TYPE\|TABLE\|VIEW\)/!d;' \
-# 		-e 's/OR REPLACE//g' \
-# 		-e 's/CREATE\(.*\)/ALTER EXTENSION $(EXTENSION) ADD\1;/' \
-# 		-e 's/DEFAULT [\.0-9a-zA-Z]\+//g' \
-# 		-e 's/\(BEFORE\|AS\|RETURNS\)\(.*\)/;/' \
-# 		-e 's/(;/;/' \
-# 		-e 's/\\(;/;/' \
-# 		-e 's/;;/;/g' $< > $@
-
-
-sql_minor_upgrade: sql_bits/extension_upgrade_minor.sql
-	for OLD_VERSION in $(UPGRADEABLE_VERSIONS_MINOR); do \
-  	  cat $< > sql/$(EXTENSION)--$$OLD_VERSION--$(EXTVERSION).sql; \
-	done
+sql_bits/postgis_raster_upgrade_minor.sql: ../postgis_extension_helper.sql sql_bits/postgis_upgrade.sql sql_bits/rtpostgis_upgrade.sql ../../doc/raster_comments.sql ../../doc/postgis_comments.sql ../postgis_extension_helper_uninstall.sql
+	echo '\echo Use "CREATE EXTENSION $(EXTENSION)" to load this file. \quit' > $@
+	cat $^ >> $@
 
-sql_patch_upgrade: sql_bits/extension_upgrade_patch.sql
-	for OLD_VERSION in $(UPGRADEABLE_VERSIONS_PATCH); do \
+sql_minor_upgrade: sql_bits/postgis_raster_upgrade_minor.sql
+	for OLD_VERSION in $(UPGRADEABLE_VERSIONS); do \
   	  cat $< > sql/$(EXTENSION)--$$OLD_VERSION--$(EXTVERSION).sql; \
 	done
 
diff --git a/extensions/postgis/postgis.control b/extensions/postgis/postgis.control
index 5a5d104..4de8395 100644
--- a/extensions/postgis/postgis.control
+++ b/extensions/postgis/postgis.control
@@ -1,5 +1,5 @@
 # postgis extension
 comment = 'PostGIS geometry, geography, and raster spatial types and functions'
-default_version = '2.1.8'
-module_pathname = '$libdir/postgis-2.1'
+default_version = '2.2.0rc1'
+module_pathname = '$libdir/postgis-2.2'
 relocatable = true
diff --git a/extensions/postgis/sql_bits/mark_editable_objects.sql.in b/extensions/postgis/sql_bits/mark_editable_objects.sql.in
index ba57cd6..3f35aac 100644
--- a/extensions/postgis/sql_bits/mark_editable_objects.sql.in
+++ b/extensions/postgis/sql_bits/mark_editable_objects.sql.in
@@ -1 +1 @@
-SELECT pg_catalog.pg_extension_config_dump('spatial_ref_sys', 'WHERE NOT (srid BETWEEN 2000 AND 2180 OR srid BETWEEN 2188 AND 2217 OR srid BETWEEN 2219 AND 2220 OR srid BETWEEN 2222 AND 2292 OR srid BETWEEN 2294 AND 2295 OR srid BETWEEN 2308 AND 2962 OR srid BETWEEN 2964 AND 2973 OR srid BETWEEN 2975 AND 2984 OR srid BETWEEN 2987 AND 3051 OR srid BETWEEN 3054 AND 3138 OR srid BETWEEN 3140 AND 3143 OR srid BETWEEN 3146 AND 3172 OR srid BETWEEN 3174 AND 3294 OR srid BETWEEN 3296 AND 3791 O [...]
+SELECT pg_catalog.pg_extension_config_dump('spatial_ref_sys', 'WHERE NOT (srid BETWEEN 2000 AND 2180 OR srid BETWEEN 2188 AND 2217 OR srid BETWEEN 2219 AND 2220 OR srid BETWEEN 2222 AND 2292 OR srid BETWEEN 2294 AND 2295 OR srid BETWEEN 2308 AND 2962 OR srid BETWEEN 2964 AND 2973 OR srid BETWEEN 2975 AND 2984 OR srid BETWEEN 2987 AND 3051 OR srid BETWEEN 3054 AND 3138 OR srid BETWEEN 3140 AND 3143 OR srid BETWEEN 3146 AND 3172 OR srid BETWEEN 3174 AND 3294 OR srid BETWEEN 3296 AND 3791 O [...]
\ No newline at end of file
diff --git a/extensions/postgis/sql_bits/postgis--unpackaged.sql.in b/extensions/postgis/sql_bits/postgis--unpackaged.sql.in
deleted file mode 100644
index 4cf3542..0000000
--- a/extensions/postgis/sql_bits/postgis--unpackaged.sql.in
+++ /dev/null
@@ -1,1173 +0,0 @@
- ALTER EXTENSION postgis ADD cast(box2d as box3d);
- ALTER EXTENSION postgis ADD cast(box2d as geometry);
- ALTER EXTENSION postgis ADD cast(box3d as box);
- ALTER EXTENSION postgis ADD cast(box3d as box2d);
- ALTER EXTENSION postgis ADD cast(box3d as geometry);
- ALTER EXTENSION postgis ADD cast(bytea as geography);
- ALTER EXTENSION postgis ADD cast(bytea as geometry);
- ALTER EXTENSION postgis ADD cast(geography as bytea);
- ALTER EXTENSION postgis ADD cast(geography as geography);
- ALTER EXTENSION postgis ADD cast(geography as geometry);
- ALTER EXTENSION postgis ADD cast(geometry as box);
- ALTER EXTENSION postgis ADD cast(geometry as box2d);
- ALTER EXTENSION postgis ADD cast(geometry as box3d);
- ALTER EXTENSION postgis ADD cast(geometry as bytea);
- ALTER EXTENSION postgis ADD cast(geometry as geography);
- ALTER EXTENSION postgis ADD cast(geometry as geometry);
- ALTER EXTENSION postgis ADD cast(geometry as path);
- ALTER EXTENSION postgis ADD cast(geometry as point);
- ALTER EXTENSION postgis ADD cast(geometry as polygon);
- ALTER EXTENSION postgis ADD cast(geometry as text);
- ALTER EXTENSION postgis ADD cast(path as geometry);
- ALTER EXTENSION postgis ADD cast(point as geometry);
- ALTER EXTENSION postgis ADD cast(polygon as geometry);
- ALTER EXTENSION postgis ADD cast(raster as box3d);
- ALTER EXTENSION postgis ADD cast(raster as bytea);
- ALTER EXTENSION postgis ADD cast(raster as geometry);
- ALTER EXTENSION postgis ADD cast(text as geometry);
- ALTER EXTENSION postgis ADD function _add_overview_constraint(name,name,name,name,name,name,integer);
- ALTER EXTENSION postgis ADD function _add_raster_constraint(name,text);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_alignment(name,name,name);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_blocksize(name,name,name,text);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_coverage_tile(name,name,name);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_extent(name,name,name);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_nodata_values(name,name,name);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_num_bands(name,name,name);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_out_db(name,name,name);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_pixel_types(name,name,name);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_scale(name,name,name,character);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_spatially_unique(name,name,name);
- ALTER EXTENSION postgis ADD function _add_raster_constraint_srid(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_overview_constraint(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_alignment(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_blocksize(name,name,name,text);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_coverage_tile(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_extent(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_nodata_values(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_num_bands(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_out_db(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_pixel_types(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_regular_blocking(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_scale(name,name,name,character);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_spatially_unique(name,name,name);
- ALTER EXTENSION postgis ADD function _drop_raster_constraint_srid(name,name,name);
- ALTER EXTENSION postgis ADD function _overview_constraint(raster,integer,name,name,name);
- ALTER EXTENSION postgis ADD function _overview_constraint_info(name,name,name);
- ALTER EXTENSION postgis ADD function _postgis_deprecate(text,text,text);
- ALTER EXTENSION postgis ADD function _postgis_join_selectivity(regclass,text,regclass,text,text);
- ALTER EXTENSION postgis ADD function _postgis_selectivity(regclass,text,geometry,text);
- ALTER EXTENSION postgis ADD function _postgis_stats(regclass,text,text);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_alignment(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_blocksize(name,name,name,text);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_coverage_tile(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_extent(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_nodata_values(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_num_bands(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_out_db(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_pixel_types(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_regular_blocking(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_scale(name,name,name,character);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_spatially_unique(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_info_srid(name,name,name);
- ALTER EXTENSION postgis ADD function _raster_constraint_nodata_values(raster);
- ALTER EXTENSION postgis ADD function _raster_constraint_out_db(raster);
- ALTER EXTENSION postgis ADD function _raster_constraint_pixel_types(raster);
- ALTER EXTENSION postgis ADD function _st_3ddfullywithin(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function _st_3ddwithin(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function _st_3dintersects(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_asgeojson(integer,geography,integer,integer);
- ALTER EXTENSION postgis ADD function _st_asgeojson(integer,geometry,integer,integer);
- ALTER EXTENSION postgis ADD function _st_asgml(integer,geography,integer,integer,text,text);
- ALTER EXTENSION postgis ADD function _st_asgml(integer,geometry,integer,integer,text,text);
- ALTER EXTENSION postgis ADD function _st_askml(integer,geography,integer,text);
- ALTER EXTENSION postgis ADD function _st_askml(integer,geometry,integer,text);
- ALTER EXTENSION postgis ADD function _st_aspect4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function _st_asraster(geometry,double precision,double precision,integer,integer,text[],double precision[],double precision[],double precision,double precision,double precision,double precision,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function _st_asx3d(integer,geometry,integer,integer,text);
- ALTER EXTENSION postgis ADD function _st_bestsrid(geography);
- ALTER EXTENSION postgis ADD function _st_bestsrid(geography,geography);
- ALTER EXTENSION postgis ADD function _st_buffer(geometry,double precision,cstring);
- ALTER EXTENSION postgis ADD function _st_colormap(raster,integer,text,text);
- ALTER EXTENSION postgis ADD function _st_concavehull(geometry);
- ALTER EXTENSION postgis ADD function _st_contains(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_contains(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function _st_containsproperly(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_containsproperly(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function _st_convertarray4ma(double precision[]);
- ALTER EXTENSION postgis ADD function _st_count(raster,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function _st_count(text,text,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function _st_coveredby(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_coveredby(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function _st_covers(geography,geography);
- ALTER EXTENSION postgis ADD function _st_covers(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_covers(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function _st_crosses(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_dfullywithin(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function _st_dfullywithin(raster,integer,raster,integer,double precision);
- ALTER EXTENSION postgis ADD function _st_distance(geography,geography,double precision,boolean);
- ALTER EXTENSION postgis ADD function _st_distancetree(geography,geography);
- ALTER EXTENSION postgis ADD function _st_distancetree(geography,geography,double precision,boolean);
- ALTER EXTENSION postgis ADD function _st_distanceuncached(geography,geography);
- ALTER EXTENSION postgis ADD function _st_distanceuncached(geography,geography,boolean);
- ALTER EXTENSION postgis ADD function _st_distanceuncached(geography,geography,double precision,boolean);
- ALTER EXTENSION postgis ADD function _st_dumppoints(geometry,integer[]);
- ALTER EXTENSION postgis ADD function _st_dwithin(geography,geography,double precision,boolean);
- ALTER EXTENSION postgis ADD function _st_dwithin(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function _st_dwithin(raster,integer,raster,integer,double precision);
- ALTER EXTENSION postgis ADD function _st_dwithinuncached(geography,geography,double precision);
- ALTER EXTENSION postgis ADD function _st_dwithinuncached(geography,geography,double precision,boolean);
- ALTER EXTENSION postgis ADD function _st_equals(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_expand(geography,double precision);
- ALTER EXTENSION postgis ADD function _st_gdalwarp(raster,text,double precision,integer,double precision,double precision,double precision,double precision,double precision,double precision,integer,integer);
- ALTER EXTENSION postgis ADD function _st_geomfromgml(text,integer);
- ALTER EXTENSION postgis ADD function _st_hillshade4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function _st_histogram(raster,integer,boolean,double precision,integer,double precision[],boolean,double precision,double precision);
- ALTER EXTENSION postgis ADD function _st_histogram(text,text,integer,boolean,double precision,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function _st_intersects(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_intersects(geometry,raster,integer);
- ALTER EXTENSION postgis ADD function _st_intersects(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function _st_linecrossingdirection(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_longestline(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_mapalgebra(rastbandarg[],regprocedure,text,integer,integer,text,raster,text[]);
- ALTER EXTENSION postgis ADD function _st_mapalgebra(rastbandarg[],text,text,text,text,text,double precision);
- ALTER EXTENSION postgis ADD function _st_maxdistance(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_neighborhood(raster,integer,integer,integer,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function _st_orderingequals(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_overlaps(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_overlaps(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function _st_pixelaspolygons(raster,integer,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function _st_pointoutside(geography);
- ALTER EXTENSION postgis ADD function _st_quantile(raster,integer,boolean,double precision,double precision[]);
- ALTER EXTENSION postgis ADD function _st_quantile(text,text,integer,boolean,double precision,double precision[]);
- ALTER EXTENSION postgis ADD function _st_rastertoworldcoord(raster,integer,integer);
- ALTER EXTENSION postgis ADD function _st_reclass(raster,reclassarg[]);
- ALTER EXTENSION postgis ADD function _st_roughness4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function _st_samealignment_finalfn(agg_samealignment);
- ALTER EXTENSION postgis ADD function _st_samealignment_transfn(agg_samealignment,raster);
- ALTER EXTENSION postgis ADD function _st_setvalues(raster,integer,integer,integer,double precision[],boolean[],boolean,double precision,boolean);
- ALTER EXTENSION postgis ADD function _st_slope4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function _st_summarystats(raster,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function _st_summarystats(text,text,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function _st_tile(raster,integer,integer,integer[],boolean,double precision);
- ALTER EXTENSION postgis ADD function _st_touches(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_touches(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function _st_tpi4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function _st_tri4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function _st_union_finalfn(internal);
- ALTER EXTENSION postgis ADD function _st_union_transfn(internal,raster);
- ALTER EXTENSION postgis ADD function _st_union_transfn(internal,raster,integer);
- ALTER EXTENSION postgis ADD function _st_union_transfn(internal,raster,integer,text);
- ALTER EXTENSION postgis ADD function _st_union_transfn(internal,raster,text);
- ALTER EXTENSION postgis ADD function _st_union_transfn(internal,raster,unionarg[]);
- ALTER EXTENSION postgis ADD function _st_valuecount(raster,integer,boolean,double precision[],double precision);
- ALTER EXTENSION postgis ADD function _st_valuecount(text,text,integer,boolean,double precision[],double precision);
- ALTER EXTENSION postgis ADD function _st_within(geometry,geometry);
- ALTER EXTENSION postgis ADD function _st_within(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function _st_worldtorastercoord(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function _updaterastersrid(name,name,name,integer);
- ALTER EXTENSION postgis ADD function addauth(text);
- ALTER EXTENSION postgis ADD function addgeometrycolumn(character varying,character varying,character varying,character varying,integer,character varying,integer,boolean);
- ALTER EXTENSION postgis ADD function addgeometrycolumn(character varying,character varying,character varying,integer,character varying,integer,boolean);
- ALTER EXTENSION postgis ADD function addgeometrycolumn(character varying,character varying,integer,character varying,integer,boolean);
- ALTER EXTENSION postgis ADD function addoverviewconstraints(name,name,name,name,integer);
- ALTER EXTENSION postgis ADD function addoverviewconstraints(name,name,name,name,name,name,integer);
- ALTER EXTENSION postgis ADD function addrasterconstraints(name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean);
- ALTER EXTENSION postgis ADD function addrasterconstraints(name,name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean);
- ALTER EXTENSION postgis ADD function addrasterconstraints(name,name,name,text[]);
- ALTER EXTENSION postgis ADD function addrasterconstraints(name,name,text[]);
- ALTER EXTENSION postgis ADD function box(box3d);
- ALTER EXTENSION postgis ADD function box(geometry);
- ALTER EXTENSION postgis ADD function box2d(box3d);
- ALTER EXTENSION postgis ADD function box2d(geometry);
- ALTER EXTENSION postgis ADD function box2d_in(cstring);
- ALTER EXTENSION postgis ADD function box2d_out(box2d);
- ALTER EXTENSION postgis ADD function box2df_in(cstring);
- ALTER EXTENSION postgis ADD function box2df_out(box2df);
- ALTER EXTENSION postgis ADD function box3d(box2d);
- ALTER EXTENSION postgis ADD function box3d(geometry);
- ALTER EXTENSION postgis ADD function box3d(raster);
- ALTER EXTENSION postgis ADD function box3d_in(cstring);
- ALTER EXTENSION postgis ADD function box3d_out(box3d);
- ALTER EXTENSION postgis ADD function box3dtobox(box3d);
- ALTER EXTENSION postgis ADD function bytea(geography);
- ALTER EXTENSION postgis ADD function bytea(geometry);
- ALTER EXTENSION postgis ADD function bytea(raster);
- ALTER EXTENSION postgis ADD function checkauth(text,text);
- ALTER EXTENSION postgis ADD function checkauth(text,text,text);
- ALTER EXTENSION postgis ADD function checkauthtrigger();
- ALTER EXTENSION postgis ADD function disablelongtransactions();
- ALTER EXTENSION postgis ADD function dropgeometrycolumn(character varying,character varying);
- ALTER EXTENSION postgis ADD function dropgeometrycolumn(character varying,character varying,character varying);
- ALTER EXTENSION postgis ADD function dropgeometrycolumn(character varying,character varying,character varying,character varying);
- ALTER EXTENSION postgis ADD function dropgeometrytable(character varying);
- ALTER EXTENSION postgis ADD function dropgeometrytable(character varying,character varying);
- ALTER EXTENSION postgis ADD function dropgeometrytable(character varying,character varying,character varying);
- ALTER EXTENSION postgis ADD function dropoverviewconstraints(name,name);
- ALTER EXTENSION postgis ADD function dropoverviewconstraints(name,name,name);
- ALTER EXTENSION postgis ADD function droprasterconstraints(name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean);
- ALTER EXTENSION postgis ADD function droprasterconstraints(name,name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean);
- ALTER EXTENSION postgis ADD function droprasterconstraints(name,name,name,text[]);
- ALTER EXTENSION postgis ADD function droprasterconstraints(name,name,text[]);
- ALTER EXTENSION postgis ADD function enablelongtransactions();
- ALTER EXTENSION postgis ADD function equals(geometry,geometry);
- ALTER EXTENSION postgis ADD function find_srid(character varying,character varying,character varying);
- ALTER EXTENSION postgis ADD function geography(bytea);
- ALTER EXTENSION postgis ADD function geography(geography,integer,boolean);
- ALTER EXTENSION postgis ADD function geography(geometry);
- ALTER EXTENSION postgis ADD function geography_analyze(internal);
- ALTER EXTENSION postgis ADD function geography_cmp(geography,geography);
- ALTER EXTENSION postgis ADD function geography_eq(geography,geography);
- ALTER EXTENSION postgis ADD function geography_ge(geography,geography);
- ALTER EXTENSION postgis ADD function geography_gist_compress(internal);
- ALTER EXTENSION postgis ADD function geography_gist_consistent(internal,geography,integer);
- ALTER EXTENSION postgis ADD function geography_gist_decompress(internal);
- ALTER EXTENSION postgis ADD function geography_gist_penalty(internal,internal,internal);
- ALTER EXTENSION postgis ADD function geography_gist_picksplit(internal,internal);
- ALTER EXTENSION postgis ADD function geography_gist_same(box2d,box2d,internal);
- ALTER EXTENSION postgis ADD function geography_gist_union(bytea,internal);
- ALTER EXTENSION postgis ADD function geography_gt(geography,geography);
- ALTER EXTENSION postgis ADD function geography_in(cstring,oid,integer);
- ALTER EXTENSION postgis ADD function geography_le(geography,geography);
- ALTER EXTENSION postgis ADD function geography_lt(geography,geography);
- ALTER EXTENSION postgis ADD function geography_out(geography);
- ALTER EXTENSION postgis ADD function geography_overlaps(geography,geography);
- ALTER EXTENSION postgis ADD function geography_recv(internal,oid,integer);
- ALTER EXTENSION postgis ADD function geography_send(geography);
- ALTER EXTENSION postgis ADD function geography_typmod_in(cstring[]);
- ALTER EXTENSION postgis ADD function geography_typmod_out(integer);
- ALTER EXTENSION postgis ADD function geometry(box2d);
- ALTER EXTENSION postgis ADD function geometry(box3d);
- ALTER EXTENSION postgis ADD function geometry(bytea);
- ALTER EXTENSION postgis ADD function geometry(geography);
- ALTER EXTENSION postgis ADD function geometry(geometry,integer,boolean);
- ALTER EXTENSION postgis ADD function geometry(path);
- ALTER EXTENSION postgis ADD function geometry(point);
- ALTER EXTENSION postgis ADD function geometry(polygon);
- ALTER EXTENSION postgis ADD function geometry(text);
- ALTER EXTENSION postgis ADD function geometry_above(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_analyze(internal);
- ALTER EXTENSION postgis ADD function geometry_below(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_cmp(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_contained_by_raster(geometry,raster);
- ALTER EXTENSION postgis ADD function geometry_contains(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_distance_box(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_distance_centroid(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_eq(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_ge(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_gist_compress_2d(internal);
- ALTER EXTENSION postgis ADD function geometry_gist_compress_nd(internal);
- ALTER EXTENSION postgis ADD function geometry_gist_consistent_2d(internal,geometry,integer);
- ALTER EXTENSION postgis ADD function geometry_gist_consistent_nd(internal,geometry,integer);
- ALTER EXTENSION postgis ADD function geometry_gist_decompress_2d(internal);
- ALTER EXTENSION postgis ADD function geometry_gist_decompress_nd(internal);
- ALTER EXTENSION postgis ADD function geometry_gist_distance_2d(internal,geometry,integer);
- ALTER EXTENSION postgis ADD function geometry_gist_penalty_2d(internal,internal,internal);
- ALTER EXTENSION postgis ADD function geometry_gist_penalty_nd(internal,internal,internal);
- ALTER EXTENSION postgis ADD function geometry_gist_picksplit_2d(internal,internal);
- ALTER EXTENSION postgis ADD function geometry_gist_picksplit_nd(internal,internal);
- ALTER EXTENSION postgis ADD function geometry_gist_same_2d(geometry,geometry,internal);
- ALTER EXTENSION postgis ADD function geometry_gist_same_nd(geometry,geometry,internal);
- ALTER EXTENSION postgis ADD function geometry_gist_union_2d(bytea,internal);
- ALTER EXTENSION postgis ADD function geometry_gist_union_nd(bytea,internal);
- ALTER EXTENSION postgis ADD function geometry_gt(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_in(cstring);
- ALTER EXTENSION postgis ADD function geometry_le(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_left(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_lt(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_out(geometry);
- ALTER EXTENSION postgis ADD function geometry_overabove(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_overbelow(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_overlaps(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_overlaps_nd(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_overleft(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_overright(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_raster_contain(geometry,raster);
- ALTER EXTENSION postgis ADD function geometry_raster_overlap(geometry,raster);
- ALTER EXTENSION postgis ADD function geometry_recv(internal);
- ALTER EXTENSION postgis ADD function geometry_right(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_same(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometry_send(geometry);
- ALTER EXTENSION postgis ADD function geometry_typmod_in(cstring[]);
- ALTER EXTENSION postgis ADD function geometry_typmod_out(integer);
- ALTER EXTENSION postgis ADD function geometry_within(geometry,geometry);
- ALTER EXTENSION postgis ADD function geometrytype(geography);
- ALTER EXTENSION postgis ADD function geometrytype(geometry);
- ALTER EXTENSION postgis ADD function geomfromewkb(bytea);
- ALTER EXTENSION postgis ADD function geomfromewkt(text);
- ALTER EXTENSION postgis ADD function get_proj4_from_srid(integer);
- ALTER EXTENSION postgis ADD function gettransactionid();
- ALTER EXTENSION postgis ADD function gidx_in(cstring);
- ALTER EXTENSION postgis ADD function gidx_out(gidx);
- ALTER EXTENSION postgis ADD function gserialized_gist_joinsel_2d(internal,oid,internal,smallint);
- ALTER EXTENSION postgis ADD function gserialized_gist_joinsel_nd(internal,oid,internal,smallint);
- ALTER EXTENSION postgis ADD function gserialized_gist_sel_2d(internal,oid,internal,integer);
- ALTER EXTENSION postgis ADD function gserialized_gist_sel_nd(internal,oid,internal,integer);
- ALTER EXTENSION postgis ADD function lockrow(text,text,text);
- ALTER EXTENSION postgis ADD function lockrow(text,text,text,text);
- ALTER EXTENSION postgis ADD function lockrow(text,text,text,text,timestamp without time zone);
- ALTER EXTENSION postgis ADD function lockrow(text,text,text,timestamp without time zone);
- ALTER EXTENSION postgis ADD function longtransactionsenabled();
- ALTER EXTENSION postgis ADD function path(geometry);
- ALTER EXTENSION postgis ADD function pgis_abs_in(cstring);
- ALTER EXTENSION postgis ADD function pgis_abs_out(pgis_abs);
- ALTER EXTENSION postgis ADD function pgis_geometry_accum_finalfn(pgis_abs);
- ALTER EXTENSION postgis ADD function pgis_geometry_accum_transfn(pgis_abs,geometry);
- ALTER EXTENSION postgis ADD function pgis_geometry_collect_finalfn(pgis_abs);
- ALTER EXTENSION postgis ADD function pgis_geometry_makeline_finalfn(pgis_abs);
- ALTER EXTENSION postgis ADD function pgis_geometry_polygonize_finalfn(pgis_abs);
- ALTER EXTENSION postgis ADD function pgis_geometry_union_finalfn(pgis_abs);
- ALTER EXTENSION postgis ADD function point(geometry);
- ALTER EXTENSION postgis ADD function polygon(geometry);
- ALTER EXTENSION postgis ADD function populate_geometry_columns(boolean);
- ALTER EXTENSION postgis ADD function populate_geometry_columns(oid,boolean);
- ALTER EXTENSION postgis ADD function postgis_addbbox(geometry);
- ALTER EXTENSION postgis ADD function postgis_cache_bbox();
- ALTER EXTENSION postgis ADD function postgis_constraint_dims(text,text,text);
- ALTER EXTENSION postgis ADD function postgis_constraint_srid(text,text,text);
- ALTER EXTENSION postgis ADD function postgis_constraint_type(text,text,text);
- ALTER EXTENSION postgis ADD function postgis_dropbbox(geometry);
- ALTER EXTENSION postgis ADD function postgis_full_version();
- ALTER EXTENSION postgis ADD function postgis_gdal_version();
- ALTER EXTENSION postgis ADD function postgis_geos_version();
- ALTER EXTENSION postgis ADD function postgis_getbbox(geometry);
- ALTER EXTENSION postgis ADD function postgis_hasbbox(geometry);
- ALTER EXTENSION postgis ADD function postgis_lib_build_date();
- ALTER EXTENSION postgis ADD function postgis_lib_version();
- ALTER EXTENSION postgis ADD function postgis_libjson_version();
- ALTER EXTENSION postgis ADD function postgis_libxml_version();
- ALTER EXTENSION postgis ADD function postgis_noop(geometry);
- ALTER EXTENSION postgis ADD function postgis_proj_version();
- ALTER EXTENSION postgis ADD function postgis_raster_lib_build_date();
- ALTER EXTENSION postgis ADD function postgis_raster_lib_version();
- ALTER EXTENSION postgis ADD function postgis_raster_scripts_installed();
- ALTER EXTENSION postgis ADD function postgis_scripts_build_date();
- ALTER EXTENSION postgis ADD function postgis_scripts_installed();
- ALTER EXTENSION postgis ADD function postgis_scripts_released();
- ALTER EXTENSION postgis ADD function postgis_svn_version();
- ALTER EXTENSION postgis ADD function postgis_transform_geometry(geometry,text,text,integer);
- ALTER EXTENSION postgis ADD function postgis_type_name(character varying,integer,boolean);
- ALTER EXTENSION postgis ADD function postgis_typmod_dims(integer);
- ALTER EXTENSION postgis ADD function postgis_typmod_srid(integer);
- ALTER EXTENSION postgis ADD function postgis_typmod_type(integer);
- ALTER EXTENSION postgis ADD function postgis_version();
- ALTER EXTENSION postgis ADD function raster_above(raster,raster);
- ALTER EXTENSION postgis ADD function raster_below(raster,raster);
- ALTER EXTENSION postgis ADD function raster_contain(raster,raster);
- ALTER EXTENSION postgis ADD function raster_contained(raster,raster);
- ALTER EXTENSION postgis ADD function raster_contained_by_geometry(raster,geometry);
- ALTER EXTENSION postgis ADD function raster_eq(raster,raster);
- ALTER EXTENSION postgis ADD function raster_geometry_contain(raster,geometry);
- ALTER EXTENSION postgis ADD function raster_geometry_overlap(raster,geometry);
- ALTER EXTENSION postgis ADD function raster_hash(raster);
- ALTER EXTENSION postgis ADD function raster_in(cstring);
- ALTER EXTENSION postgis ADD function raster_left(raster,raster);
- ALTER EXTENSION postgis ADD function raster_out(raster);
- ALTER EXTENSION postgis ADD function raster_overabove(raster,raster);
- ALTER EXTENSION postgis ADD function raster_overbelow(raster,raster);
- ALTER EXTENSION postgis ADD function raster_overlap(raster,raster);
- ALTER EXTENSION postgis ADD function raster_overleft(raster,raster);
- ALTER EXTENSION postgis ADD function raster_overright(raster,raster);
- ALTER EXTENSION postgis ADD function raster_right(raster,raster);
- ALTER EXTENSION postgis ADD function raster_same(raster,raster);
- ALTER EXTENSION postgis ADD function spheroid_in(cstring);
- ALTER EXTENSION postgis ADD function spheroid_out(spheroid);
- ALTER EXTENSION postgis ADD function st_3dclosestpoint(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_3ddfullywithin(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function st_3ddistance(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_3ddwithin(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function st_3dextent(geometry);
- ALTER EXTENSION postgis ADD function st_3dintersects(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_3dlength(geometry);
- ALTER EXTENSION postgis ADD function st_3dlength_spheroid(geometry,spheroid);
- ALTER EXTENSION postgis ADD function st_3dlongestline(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_3dmakebox(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_3dmaxdistance(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_3dperimeter(geometry);
- ALTER EXTENSION postgis ADD function st_3dshortestline(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_accum(geometry);
- ALTER EXTENSION postgis ADD function st_addband(raster,addbandarg[]);
- ALTER EXTENSION postgis ADD function st_addband(raster,integer,text,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_addband(raster,integer,text,integer[],double precision);
- ALTER EXTENSION postgis ADD function st_addband(raster,raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_addband(raster,raster[],integer,integer);
- ALTER EXTENSION postgis ADD function st_addband(raster,text,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_addband(raster,text,integer[],integer,double precision);
- ALTER EXTENSION postgis ADD function st_addmeasure(geometry,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_addpoint(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_addpoint(geometry,geometry,integer);
- ALTER EXTENSION postgis ADD function st_affine(geometry,double precision,double precision,double precision,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_affine(geometry,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_approxcount(raster,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_approxcount(raster,double precision);
- ALTER EXTENSION postgis ADD function st_approxcount(raster,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_approxcount(raster,integer,double precision);
- ALTER EXTENSION postgis ADD function st_approxcount(text,text,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_approxcount(text,text,double precision);
- ALTER EXTENSION postgis ADD function st_approxcount(text,text,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_approxcount(text,text,integer,double precision);
- ALTER EXTENSION postgis ADD function st_approxhistogram(raster,double precision);
- ALTER EXTENSION postgis ADD function st_approxhistogram(raster,integer,boolean,double precision,integer,boolean);
- ALTER EXTENSION postgis ADD function st_approxhistogram(raster,integer,boolean,double precision,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_approxhistogram(raster,integer,double precision);
- ALTER EXTENSION postgis ADD function st_approxhistogram(raster,integer,double precision,integer,boolean);
- ALTER EXTENSION postgis ADD function st_approxhistogram(raster,integer,double precision,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_approxhistogram(text,text,double precision);
- ALTER EXTENSION postgis ADD function st_approxhistogram(text,text,integer,boolean,double precision,integer,boolean);
- ALTER EXTENSION postgis ADD function st_approxhistogram(text,text,integer,boolean,double precision,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_approxhistogram(text,text,integer,double precision);
- ALTER EXTENSION postgis ADD function st_approxhistogram(text,text,integer,double precision,integer,boolean);
- ALTER EXTENSION postgis ADD function st_approxhistogram(text,text,integer,double precision,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_approxquantile(raster,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(raster,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(raster,double precision,double precision[]);
- ALTER EXTENSION postgis ADD function st_approxquantile(raster,double precision[]);
- ALTER EXTENSION postgis ADD function st_approxquantile(raster,integer,boolean,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(raster,integer,boolean,double precision,double precision[]);
- ALTER EXTENSION postgis ADD function st_approxquantile(raster,integer,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(raster,integer,double precision,double precision[]);
- ALTER EXTENSION postgis ADD function st_approxquantile(text,text,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(text,text,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(text,text,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(text,text,double precision,double precision[]);
- ALTER EXTENSION postgis ADD function st_approxquantile(text,text,double precision[]);
- ALTER EXTENSION postgis ADD function st_approxquantile(text,text,integer,boolean,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(text,text,integer,boolean,double precision,double precision[]);
- ALTER EXTENSION postgis ADD function st_approxquantile(text,text,integer,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_approxquantile(text,text,integer,double precision,double precision[]);
- ALTER EXTENSION postgis ADD function st_approxsummarystats(raster,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_approxsummarystats(raster,double precision);
- ALTER EXTENSION postgis ADD function st_approxsummarystats(raster,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_approxsummarystats(raster,integer,double precision);
- ALTER EXTENSION postgis ADD function st_approxsummarystats(text,text,boolean);
- ALTER EXTENSION postgis ADD function st_approxsummarystats(text,text,double precision);
- ALTER EXTENSION postgis ADD function st_approxsummarystats(text,text,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_approxsummarystats(text,text,integer,double precision);
- ALTER EXTENSION postgis ADD function st_area(geography,boolean);
- ALTER EXTENSION postgis ADD function st_area(geometry);
- ALTER EXTENSION postgis ADD function st_area(text);
- ALTER EXTENSION postgis ADD function st_area2d(geometry);
- ALTER EXTENSION postgis ADD function st_asbinary(geography);
- ALTER EXTENSION postgis ADD function st_asbinary(geography,text);
- ALTER EXTENSION postgis ADD function st_asbinary(geometry);
- ALTER EXTENSION postgis ADD function st_asbinary(geometry,text);
- ALTER EXTENSION postgis ADD function st_asbinary(raster,boolean);
- ALTER EXTENSION postgis ADD function st_asewkb(geometry);
- ALTER EXTENSION postgis ADD function st_asewkb(geometry,text);
- ALTER EXTENSION postgis ADD function st_asewkt(geography);
- ALTER EXTENSION postgis ADD function st_asewkt(geometry);
- ALTER EXTENSION postgis ADD function st_asewkt(text);
- ALTER EXTENSION postgis ADD function st_asgdalraster(raster,text,text[],integer);
- ALTER EXTENSION postgis ADD function st_asgeojson(geography,integer,integer);
- ALTER EXTENSION postgis ADD function st_asgeojson(geometry,integer,integer);
- ALTER EXTENSION postgis ADD function st_asgeojson(integer,geography,integer,integer);
- ALTER EXTENSION postgis ADD function st_asgeojson(integer,geometry,integer,integer);
- ALTER EXTENSION postgis ADD function st_asgeojson(text);
- ALTER EXTENSION postgis ADD function st_asgml(geography,integer,integer);
- ALTER EXTENSION postgis ADD function st_asgml(geometry,integer,integer);
- ALTER EXTENSION postgis ADD function st_asgml(integer,geography,integer,integer,text,text);
- ALTER EXTENSION postgis ADD function st_asgml(integer,geometry,integer,integer,text,text);
- ALTER EXTENSION postgis ADD function st_asgml(text);
- ALTER EXTENSION postgis ADD function st_ashexewkb(geometry);
- ALTER EXTENSION postgis ADD function st_ashexewkb(geometry,text);
- ALTER EXTENSION postgis ADD function st_asjpeg(raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_asjpeg(raster,integer,text[]);
- ALTER EXTENSION postgis ADD function st_asjpeg(raster,integer[],integer);
- ALTER EXTENSION postgis ADD function st_asjpeg(raster,integer[],text[]);
- ALTER EXTENSION postgis ADD function st_asjpeg(raster,text[]);
- ALTER EXTENSION postgis ADD function st_askml(geography,integer);
- ALTER EXTENSION postgis ADD function st_askml(geometry,integer);
- ALTER EXTENSION postgis ADD function st_askml(integer,geography,integer,text);
- ALTER EXTENSION postgis ADD function st_askml(integer,geometry,integer,text);
- ALTER EXTENSION postgis ADD function st_askml(text);
- ALTER EXTENSION postgis ADD function st_aslatlontext(geometry);
- ALTER EXTENSION postgis ADD function st_aslatlontext(geometry,text);
- ALTER EXTENSION postgis ADD function st_aspect(raster,integer,raster,text,text,boolean);
- ALTER EXTENSION postgis ADD function st_aspect(raster,integer,text,text,boolean);
- ALTER EXTENSION postgis ADD function st_aspng(raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_aspng(raster,integer,text[]);
- ALTER EXTENSION postgis ADD function st_aspng(raster,integer[],integer);
- ALTER EXTENSION postgis ADD function st_aspng(raster,integer[],text[]);
- ALTER EXTENSION postgis ADD function st_aspng(raster,text[]);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,double precision,double precision,double precision,double precision,text,double precision,double precision,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,double precision,double precision,double precision,double precision,text[],double precision[],double precision[],double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,double precision,double precision,text,double precision,double precision,double precision,double precision,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,double precision,double precision,text[],double precision[],double precision[],double precision,double precision,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,integer,integer,double precision,double precision,text,double precision,double precision,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,integer,integer,double precision,double precision,text[],double precision[],double precision[],double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,integer,integer,text,double precision,double precision,double precision,double precision,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,integer,integer,text[],double precision[],double precision[],double precision,double precision,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,raster,text,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_asraster(geometry,raster,text[],double precision[],double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_assvg(geography,integer,integer);
- ALTER EXTENSION postgis ADD function st_assvg(geometry,integer,integer);
- ALTER EXTENSION postgis ADD function st_assvg(text);
- ALTER EXTENSION postgis ADD function st_astext(geography);
- ALTER EXTENSION postgis ADD function st_astext(geometry);
- ALTER EXTENSION postgis ADD function st_astext(text);
- ALTER EXTENSION postgis ADD function st_astiff(raster,integer[],text,integer);
- ALTER EXTENSION postgis ADD function st_astiff(raster,integer[],text[],integer);
- ALTER EXTENSION postgis ADD function st_astiff(raster,text,integer);
- ALTER EXTENSION postgis ADD function st_astiff(raster,text[],integer);
- ALTER EXTENSION postgis ADD function st_asx3d(geometry,integer,integer);
- ALTER EXTENSION postgis ADD function st_azimuth(geography,geography);
- ALTER EXTENSION postgis ADD function st_azimuth(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_band(raster,integer);
- ALTER EXTENSION postgis ADD function st_band(raster,integer[]);
- ALTER EXTENSION postgis ADD function st_band(raster,text,character);
- ALTER EXTENSION postgis ADD function st_bandisnodata(raster,boolean);
- ALTER EXTENSION postgis ADD function st_bandisnodata(raster,integer,boolean);
- ALTER EXTENSION postgis ADD function st_bandmetadata(raster,integer);
- ALTER EXTENSION postgis ADD function st_bandmetadata(raster,integer[]);
- ALTER EXTENSION postgis ADD function st_bandnodatavalue(raster,integer);
- ALTER EXTENSION postgis ADD function st_bandpath(raster,integer);
- ALTER EXTENSION postgis ADD function st_bandpixeltype(raster,integer);
- ALTER EXTENSION postgis ADD function st_bdmpolyfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_bdpolyfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_boundary(geometry);
- ALTER EXTENSION postgis ADD function st_box2dfromgeohash(text,integer);
- ALTER EXTENSION postgis ADD function st_buffer(geography,double precision);
- ALTER EXTENSION postgis ADD function st_buffer(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_buffer(geometry,double precision,integer);
- ALTER EXTENSION postgis ADD function st_buffer(geometry,double precision,text);
- ALTER EXTENSION postgis ADD function st_buffer(text,double precision);
- ALTER EXTENSION postgis ADD function st_buildarea(geometry);
- ALTER EXTENSION postgis ADD function st_centroid(geometry);
- ALTER EXTENSION postgis ADD function st_cleangeometry(geometry);
- ALTER EXTENSION postgis ADD function st_clip(raster,geometry,boolean);
- ALTER EXTENSION postgis ADD function st_clip(raster,geometry,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_clip(raster,geometry,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_clip(raster,integer,geometry,boolean);
- ALTER EXTENSION postgis ADD function st_clip(raster,integer,geometry,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_clip(raster,integer[],geometry,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_closestpoint(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_collect(geometry);
- ALTER EXTENSION postgis ADD function st_collect(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_collect(geometry[]);
- ALTER EXTENSION postgis ADD function st_collectionextract(geometry,integer);
- ALTER EXTENSION postgis ADD function st_collectionhomogenize(geometry);
- ALTER EXTENSION postgis ADD function st_colormap(raster,integer,text,text);
- ALTER EXTENSION postgis ADD function st_colormap(raster,text,text);
- ALTER EXTENSION postgis ADD function st_combine_bbox(box2d,geometry);
- ALTER EXTENSION postgis ADD function st_combine_bbox(box3d,geometry);
- ALTER EXTENSION postgis ADD function st_concavehull(geometry,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_contains(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_contains(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function st_contains(raster,raster);
- ALTER EXTENSION postgis ADD function st_containsproperly(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_containsproperly(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function st_containsproperly(raster,raster);
- ALTER EXTENSION postgis ADD function st_convexhull(geometry);
- ALTER EXTENSION postgis ADD function st_convexhull(raster);
- ALTER EXTENSION postgis ADD function st_coorddim(geometry);
- ALTER EXTENSION postgis ADD function st_count(raster,boolean);
- ALTER EXTENSION postgis ADD function st_count(raster,integer,boolean);
- ALTER EXTENSION postgis ADD function st_count(text,text,boolean);
- ALTER EXTENSION postgis ADD function st_count(text,text,integer,boolean);
- ALTER EXTENSION postgis ADD function st_coveredby(geography,geography);
- ALTER EXTENSION postgis ADD function st_coveredby(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_coveredby(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function st_coveredby(raster,raster);
- ALTER EXTENSION postgis ADD function st_coveredby(text,text);
- ALTER EXTENSION postgis ADD function st_covers(geography,geography);
- ALTER EXTENSION postgis ADD function st_covers(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_covers(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function st_covers(raster,raster);
- ALTER EXTENSION postgis ADD function st_covers(text,text);
- ALTER EXTENSION postgis ADD function st_crosses(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_curvetoline(geometry);
- ALTER EXTENSION postgis ADD function st_curvetoline(geometry,integer);
- ALTER EXTENSION postgis ADD function st_delaunaytriangles(geometry,double precision,integer);
- ALTER EXTENSION postgis ADD function st_dfullywithin(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function st_dfullywithin(raster,integer,raster,integer,double precision);
- ALTER EXTENSION postgis ADD function st_dfullywithin(raster,raster,double precision);
- ALTER EXTENSION postgis ADD function st_difference(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_dimension(geometry);
- ALTER EXTENSION postgis ADD function st_disjoint(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_disjoint(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function st_disjoint(raster,raster);
- ALTER EXTENSION postgis ADD function st_distance(geography,geography);
- ALTER EXTENSION postgis ADD function st_distance(geography,geography,boolean);
- ALTER EXTENSION postgis ADD function st_distance(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_distance(text,text);
- ALTER EXTENSION postgis ADD function st_distance_sphere(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_distance_spheroid(geometry,geometry,spheroid);
- ALTER EXTENSION postgis ADD function st_distinct4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function st_distinct4ma(double precision[],text,text[]);
- ALTER EXTENSION postgis ADD function st_dump(geometry);
- ALTER EXTENSION postgis ADD function st_dumpaspolygons(raster,integer,boolean);
- ALTER EXTENSION postgis ADD function st_dumppoints(geometry);
- ALTER EXTENSION postgis ADD function st_dumprings(geometry);
- ALTER EXTENSION postgis ADD function st_dumpvalues(raster,integer,boolean);
- ALTER EXTENSION postgis ADD function st_dumpvalues(raster,integer[],boolean);
- ALTER EXTENSION postgis ADD function st_dwithin(geography,geography,double precision);
- ALTER EXTENSION postgis ADD function st_dwithin(geography,geography,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_dwithin(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function st_dwithin(raster,integer,raster,integer,double precision);
- ALTER EXTENSION postgis ADD function st_dwithin(raster,raster,double precision);
- ALTER EXTENSION postgis ADD function st_dwithin(text,text,double precision);
- ALTER EXTENSION postgis ADD function st_endpoint(geometry);
- ALTER EXTENSION postgis ADD function st_envelope(geometry);
- ALTER EXTENSION postgis ADD function st_envelope(raster);
- ALTER EXTENSION postgis ADD function st_equals(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_estimated_extent(text,text);
- ALTER EXTENSION postgis ADD function st_estimated_extent(text,text,text);
- ALTER EXTENSION postgis ADD function st_estimatedextent(text,text);
- ALTER EXTENSION postgis ADD function st_estimatedextent(text,text,text);
- ALTER EXTENSION postgis ADD function st_expand(box2d,double precision);
- ALTER EXTENSION postgis ADD function st_expand(box3d,double precision);
- ALTER EXTENSION postgis ADD function st_expand(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_extent(geometry);
- ALTER EXTENSION postgis ADD function st_exteriorring(geometry);
- ALTER EXTENSION postgis ADD function st_find_extent(text,text);
- ALTER EXTENSION postgis ADD function st_find_extent(text,text,text);
- ALTER EXTENSION postgis ADD function st_flipcoordinates(geometry);
- ALTER EXTENSION postgis ADD function st_force2d(geometry);
- ALTER EXTENSION postgis ADD function st_force3d(geometry);
- ALTER EXTENSION postgis ADD function st_force3dm(geometry);
- ALTER EXTENSION postgis ADD function st_force3dz(geometry);
- ALTER EXTENSION postgis ADD function st_force4d(geometry);
- ALTER EXTENSION postgis ADD function st_force_2d(geometry);
- ALTER EXTENSION postgis ADD function st_force_3d(geometry);
- ALTER EXTENSION postgis ADD function st_force_3dm(geometry);
- ALTER EXTENSION postgis ADD function st_force_3dz(geometry);
- ALTER EXTENSION postgis ADD function st_force_4d(geometry);
- ALTER EXTENSION postgis ADD function st_force_collection(geometry);
- ALTER EXTENSION postgis ADD function st_forcecollection(geometry);
- ALTER EXTENSION postgis ADD function st_forcerhr(geometry);
- ALTER EXTENSION postgis ADD function st_forcesfs(geometry);
- ALTER EXTENSION postgis ADD function st_forcesfs(geometry,text);
- ALTER EXTENSION postgis ADD function st_fromgdalraster(bytea,integer);
- ALTER EXTENSION postgis ADD function st_gdaldrivers();
- ALTER EXTENSION postgis ADD function st_geogfromtext(text);
- ALTER EXTENSION postgis ADD function st_geogfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_geographyfromtext(text);
- ALTER EXTENSION postgis ADD function st_geohash(geography,integer);
- ALTER EXTENSION postgis ADD function st_geohash(geometry,integer);
- ALTER EXTENSION postgis ADD function st_geomcollfromtext(text);
- ALTER EXTENSION postgis ADD function st_geomcollfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_geomcollfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_geomcollfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_geometryfromtext(text);
- ALTER EXTENSION postgis ADD function st_geometryfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_geometryn(geometry,integer);
- ALTER EXTENSION postgis ADD function st_geometrytype(geometry);
- ALTER EXTENSION postgis ADD function st_geomfromewkb(bytea);
- ALTER EXTENSION postgis ADD function st_geomfromewkt(text);
- ALTER EXTENSION postgis ADD function st_geomfromgeohash(text,integer);
- ALTER EXTENSION postgis ADD function st_geomfromgeojson(text);
- ALTER EXTENSION postgis ADD function st_geomfromgml(text);
- ALTER EXTENSION postgis ADD function st_geomfromgml(text,integer);
- ALTER EXTENSION postgis ADD function st_geomfromkml(text);
- ALTER EXTENSION postgis ADD function st_geomfromtext(text);
- ALTER EXTENSION postgis ADD function st_geomfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_geomfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_geomfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_georeference(raster,text);
- ALTER EXTENSION postgis ADD function st_geotransform(raster);
- ALTER EXTENSION postgis ADD function st_gmltosql(text);
- ALTER EXTENSION postgis ADD function st_gmltosql(text,integer);
- ALTER EXTENSION postgis ADD function st_hasarc(geometry);
- ALTER EXTENSION postgis ADD function st_hasnoband(raster,integer);
- ALTER EXTENSION postgis ADD function st_hausdorffdistance(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_hausdorffdistance(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function st_height(raster);
- ALTER EXTENSION postgis ADD function st_hillshade(raster,integer,raster,text,double precision,double precision,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_hillshade(raster,integer,text,double precision,double precision,double precision,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_histogram(raster,integer,boolean,integer,boolean);
- ALTER EXTENSION postgis ADD function st_histogram(raster,integer,boolean,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_histogram(raster,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_histogram(raster,integer,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_histogram(text,text,integer,boolean,integer,boolean);
- ALTER EXTENSION postgis ADD function st_histogram(text,text,integer,boolean,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_histogram(text,text,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_histogram(text,text,integer,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_interiorringn(geometry,integer);
- ALTER EXTENSION postgis ADD function st_interpolatepoint(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_intersection(geography,geography);
- ALTER EXTENSION postgis ADD function st_intersection(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_intersection(geometry,raster,integer);
- ALTER EXTENSION postgis ADD function st_intersection(raster,geometry);
- ALTER EXTENSION postgis ADD function st_intersection(raster,integer,geometry);
- ALTER EXTENSION postgis ADD function st_intersection(raster,integer,raster,integer,double precision);
- ALTER EXTENSION postgis ADD function st_intersection(raster,integer,raster,integer,double precision[]);
- ALTER EXTENSION postgis ADD function st_intersection(raster,integer,raster,integer,text,double precision);
- ALTER EXTENSION postgis ADD function st_intersection(raster,integer,raster,integer,text,double precision[]);
- ALTER EXTENSION postgis ADD function st_intersection(raster,raster,double precision);
- ALTER EXTENSION postgis ADD function st_intersection(raster,raster,double precision[]);
- ALTER EXTENSION postgis ADD function st_intersection(raster,raster,text,double precision);
- ALTER EXTENSION postgis ADD function st_intersection(raster,raster,text,double precision[]);
- ALTER EXTENSION postgis ADD function st_intersection(text,text);
- ALTER EXTENSION postgis ADD function st_intersects(geography,geography);
- ALTER EXTENSION postgis ADD function st_intersects(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_intersects(geometry,raster,integer);
- ALTER EXTENSION postgis ADD function st_intersects(raster,geometry,integer);
- ALTER EXTENSION postgis ADD function st_intersects(raster,integer,geometry);
- ALTER EXTENSION postgis ADD function st_intersects(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function st_intersects(raster,raster);
- ALTER EXTENSION postgis ADD function st_intersects(text,text);
- ALTER EXTENSION postgis ADD function st_invdistweight4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function st_isclosed(geometry);
- ALTER EXTENSION postgis ADD function st_iscollection(geometry);
- ALTER EXTENSION postgis ADD function st_iscoveragetile(raster,raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_isempty(geometry);
- ALTER EXTENSION postgis ADD function st_isempty(raster);
- ALTER EXTENSION postgis ADD function st_isring(geometry);
- ALTER EXTENSION postgis ADD function st_issimple(geometry);
- ALTER EXTENSION postgis ADD function st_isvalid(geometry);
- ALTER EXTENSION postgis ADD function st_isvalid(geometry,integer);
- ALTER EXTENSION postgis ADD function st_isvaliddetail(geometry);
- ALTER EXTENSION postgis ADD function st_isvaliddetail(geometry,integer);
- ALTER EXTENSION postgis ADD function st_isvalidreason(geometry);
- ALTER EXTENSION postgis ADD function st_isvalidreason(geometry,integer);
- ALTER EXTENSION postgis ADD function st_length(geography,boolean);
- ALTER EXTENSION postgis ADD function st_length(geometry);
- ALTER EXTENSION postgis ADD function st_length(text);
- ALTER EXTENSION postgis ADD function st_length2d(geometry);
- ALTER EXTENSION postgis ADD function st_length2d_spheroid(geometry,spheroid);
- ALTER EXTENSION postgis ADD function st_length_spheroid(geometry,spheroid);
- ALTER EXTENSION postgis ADD function st_line_interpolate_point(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_line_locate_point(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_line_substring(geometry,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_linecrossingdirection(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_linefrommultipoint(geometry);
- ALTER EXTENSION postgis ADD function st_linefromtext(text);
- ALTER EXTENSION postgis ADD function st_linefromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_linefromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_linefromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_lineinterpolatepoint(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_linelocatepoint(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_linemerge(geometry);
- ALTER EXTENSION postgis ADD function st_linestringfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_linestringfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_linesubstring(geometry,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_linetocurve(geometry);
- ALTER EXTENSION postgis ADD function st_locate_along_measure(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_locate_between_measures(geometry,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_locatealong(geometry,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_locatebetween(geometry,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_locatebetweenelevations(geometry,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_longestline(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_m(geometry);
- ALTER EXTENSION postgis ADD function st_makebox2d(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_makeemptyraster(integer,integer,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_makeemptyraster(integer,integer,double precision,double precision,double precision,double precision,double precision,double precision,integer);
- ALTER EXTENSION postgis ADD function st_makeemptyraster(raster);
- ALTER EXTENSION postgis ADD function st_makeenvelope(double precision,double precision,double precision,double precision,integer);
- ALTER EXTENSION postgis ADD function st_makeline(geometry);
- ALTER EXTENSION postgis ADD function st_makeline(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_makeline(geometry[]);
- ALTER EXTENSION postgis ADD function st_makepoint(double precision,double precision);
- ALTER EXTENSION postgis ADD function st_makepoint(double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_makepoint(double precision,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_makepointm(double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_makepolygon(geometry);
- ALTER EXTENSION postgis ADD function st_makepolygon(geometry,geometry[]);
- ALTER EXTENSION postgis ADD function st_makevalid(geometry);
- ALTER EXTENSION postgis ADD function st_mapalgebra(rastbandarg[],regprocedure,text,text,raster,integer,integer,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebra(raster,integer,raster,integer,regprocedure,text,text,raster,integer,integer,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebra(raster,integer,raster,integer,text,text,text,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_mapalgebra(raster,integer,regprocedure,text,text,raster,integer,integer,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebra(raster,integer,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_mapalgebra(raster,integer[],regprocedure,text,text,raster,integer,integer,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebra(raster,raster,text,text,text,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_mapalgebra(raster,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_mapalgebraexpr(raster,integer,raster,integer,text,text,text,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_mapalgebraexpr(raster,integer,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_mapalgebraexpr(raster,raster,text,text,text,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_mapalgebraexpr(raster,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,integer,raster,integer,regprocedure,text,text,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,integer,regprocedure);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,integer,regprocedure,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,integer,text,regprocedure);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,integer,text,regprocedure,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,raster,regprocedure,text,text,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,regprocedure);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,regprocedure,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,text,regprocedure);
- ALTER EXTENSION postgis ADD function st_mapalgebrafct(raster,text,regprocedure,text[]);
- ALTER EXTENSION postgis ADD function st_mapalgebrafctngb(raster,integer,text,integer,integer,regprocedure,text,text[]);
- ALTER EXTENSION postgis ADD function st_max4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function st_max4ma(double precision[],text,text[]);
- ALTER EXTENSION postgis ADD function st_maxdistance(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_mean4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function st_mean4ma(double precision[],text,text[]);
- ALTER EXTENSION postgis ADD function st_mem_size(geometry);
- ALTER EXTENSION postgis ADD function st_memcollect(geometry);
- ALTER EXTENSION postgis ADD function st_memunion(geometry);
- ALTER EXTENSION postgis ADD function st_metadata(raster);
- ALTER EXTENSION postgis ADD function st_min4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function st_min4ma(double precision[],text,text[]);
- ALTER EXTENSION postgis ADD function st_minconvexhull(raster,integer);
- ALTER EXTENSION postgis ADD function st_mindist4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function st_minimumboundingcircle(geometry,integer);
- ALTER EXTENSION postgis ADD function st_minpossiblevalue(text);
- ALTER EXTENSION postgis ADD function st_mlinefromtext(text);
- ALTER EXTENSION postgis ADD function st_mlinefromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_mlinefromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_mlinefromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_mpointfromtext(text);
- ALTER EXTENSION postgis ADD function st_mpointfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_mpointfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_mpointfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_mpolyfromtext(text);
- ALTER EXTENSION postgis ADD function st_mpolyfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_mpolyfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_mpolyfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_multi(geometry);
- ALTER EXTENSION postgis ADD function st_multilinefromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_multilinestringfromtext(text);
- ALTER EXTENSION postgis ADD function st_multilinestringfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_multipointfromtext(text);
- ALTER EXTENSION postgis ADD function st_multipointfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_multipointfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_multipolyfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_multipolyfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_multipolygonfromtext(text);
- ALTER EXTENSION postgis ADD function st_multipolygonfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_ndims(geometry);
- ALTER EXTENSION postgis ADD function st_nearestvalue(raster,geometry,boolean);
- ALTER EXTENSION postgis ADD function st_nearestvalue(raster,integer,geometry,boolean);
- ALTER EXTENSION postgis ADD function st_nearestvalue(raster,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_nearestvalue(raster,integer,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_neighborhood(raster,geometry,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_neighborhood(raster,integer,geometry,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_neighborhood(raster,integer,integer,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_neighborhood(raster,integer,integer,integer,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_node(geometry);
- ALTER EXTENSION postgis ADD function st_notsamealignmentreason(raster,raster);
- ALTER EXTENSION postgis ADD function st_npoints(geometry);
- ALTER EXTENSION postgis ADD function st_nrings(geometry);
- ALTER EXTENSION postgis ADD function st_numbands(raster);
- ALTER EXTENSION postgis ADD function st_numgeometries(geometry);
- ALTER EXTENSION postgis ADD function st_numinteriorring(geometry);
- ALTER EXTENSION postgis ADD function st_numinteriorrings(geometry);
- ALTER EXTENSION postgis ADD function st_numpatches(geometry);
- ALTER EXTENSION postgis ADD function st_numpoints(geometry);
- ALTER EXTENSION postgis ADD function st_offsetcurve(geometry,double precision,text);
- ALTER EXTENSION postgis ADD function st_orderingequals(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_overlaps(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_overlaps(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function st_overlaps(raster,raster);
- ALTER EXTENSION postgis ADD function st_patchn(geometry,integer);
- ALTER EXTENSION postgis ADD function st_perimeter(geography,boolean);
- ALTER EXTENSION postgis ADD function st_perimeter(geometry);
- ALTER EXTENSION postgis ADD function st_perimeter2d(geometry);
- ALTER EXTENSION postgis ADD function st_pixelascentroid(raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_pixelascentroids(raster,integer,boolean);
- ALTER EXTENSION postgis ADD function st_pixelaspoint(raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_pixelaspoints(raster,integer,boolean);
- ALTER EXTENSION postgis ADD function st_pixelaspolygon(raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_pixelaspolygons(raster,integer,boolean);
- ALTER EXTENSION postgis ADD function st_pixelheight(raster);
- ALTER EXTENSION postgis ADD function st_pixelofvalue(raster,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_pixelofvalue(raster,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_pixelofvalue(raster,integer,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_pixelofvalue(raster,integer,double precision[],boolean);
- ALTER EXTENSION postgis ADD function st_pixelwidth(raster);
- ALTER EXTENSION postgis ADD function st_point(double precision,double precision);
- ALTER EXTENSION postgis ADD function st_point_inside_circle(geometry,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_pointfromgeohash(text,integer);
- ALTER EXTENSION postgis ADD function st_pointfromtext(text);
- ALTER EXTENSION postgis ADD function st_pointfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_pointfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_pointfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_pointn(geometry,integer);
- ALTER EXTENSION postgis ADD function st_pointonsurface(geometry);
- ALTER EXTENSION postgis ADD function st_polyfromtext(text);
- ALTER EXTENSION postgis ADD function st_polyfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_polyfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_polyfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_polygon(geometry,integer);
- ALTER EXTENSION postgis ADD function st_polygon(raster,integer);
- ALTER EXTENSION postgis ADD function st_polygonfromtext(text);
- ALTER EXTENSION postgis ADD function st_polygonfromtext(text,integer);
- ALTER EXTENSION postgis ADD function st_polygonfromwkb(bytea);
- ALTER EXTENSION postgis ADD function st_polygonfromwkb(bytea,integer);
- ALTER EXTENSION postgis ADD function st_polygonize(geometry);
- ALTER EXTENSION postgis ADD function st_polygonize(geometry[]);
- ALTER EXTENSION postgis ADD function st_project(geography,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_quantile(raster,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_quantile(raster,double precision);
- ALTER EXTENSION postgis ADD function st_quantile(raster,double precision[]);
- ALTER EXTENSION postgis ADD function st_quantile(raster,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_quantile(raster,integer,boolean,double precision[]);
- ALTER EXTENSION postgis ADD function st_quantile(raster,integer,double precision);
- ALTER EXTENSION postgis ADD function st_quantile(raster,integer,double precision[]);
- ALTER EXTENSION postgis ADD function st_quantile(text,text,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_quantile(text,text,double precision);
- ALTER EXTENSION postgis ADD function st_quantile(text,text,double precision[]);
- ALTER EXTENSION postgis ADD function st_quantile(text,text,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_quantile(text,text,integer,boolean,double precision[]);
- ALTER EXTENSION postgis ADD function st_quantile(text,text,integer,double precision);
- ALTER EXTENSION postgis ADD function st_quantile(text,text,integer,double precision[]);
- ALTER EXTENSION postgis ADD function st_range4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function st_range4ma(double precision[],text,text[]);
- ALTER EXTENSION postgis ADD function st_rastertoworldcoord(raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_rastertoworldcoordx(raster,integer);
- ALTER EXTENSION postgis ADD function st_rastertoworldcoordx(raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_rastertoworldcoordy(raster,integer);
- ALTER EXTENSION postgis ADD function st_rastertoworldcoordy(raster,integer,integer);
- ALTER EXTENSION postgis ADD function st_reclass(raster,integer,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_reclass(raster,reclassarg[]);
- ALTER EXTENSION postgis ADD function st_reclass(raster,text,text);
- ALTER EXTENSION postgis ADD function st_relate(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_relate(geometry,geometry,integer);
- ALTER EXTENSION postgis ADD function st_relate(geometry,geometry,text);
- ALTER EXTENSION postgis ADD function st_relatematch(text,text);
- ALTER EXTENSION postgis ADD function st_removepoint(geometry,integer);
- ALTER EXTENSION postgis ADD function st_removerepeatedpoints(geometry);
- ALTER EXTENSION postgis ADD function st_resample(raster,double precision,double precision,double precision,double precision,double precision,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_resample(raster,integer,integer,double precision,double precision,double precision,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_resample(raster,raster,boolean,text,double precision);
- ALTER EXTENSION postgis ADD function st_resample(raster,raster,text,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_rescale(raster,double precision,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_rescale(raster,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_resize(raster,double precision,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_resize(raster,integer,integer,text,double precision);
- ALTER EXTENSION postgis ADD function st_resize(raster,text,text,text,double precision);
- ALTER EXTENSION postgis ADD function st_reskew(raster,double precision,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_reskew(raster,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_reverse(geometry);
- ALTER EXTENSION postgis ADD function st_rotate(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_rotate(geometry,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_rotate(geometry,double precision,geometry);
- ALTER EXTENSION postgis ADD function st_rotatex(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_rotatey(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_rotatez(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_rotation(raster);
- ALTER EXTENSION postgis ADD function st_roughness(raster,integer,raster,text,boolean);
- ALTER EXTENSION postgis ADD function st_samealignment(double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_samealignment(raster);
- ALTER EXTENSION postgis ADD function st_samealignment(raster,raster);
- ALTER EXTENSION postgis ADD function st_scale(geometry,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_scale(geometry,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_scalex(raster);
- ALTER EXTENSION postgis ADD function st_scaley(raster);
- ALTER EXTENSION postgis ADD function st_segmentize(geography,double precision);
- ALTER EXTENSION postgis ADD function st_segmentize(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_setbandisnodata(raster,integer);
- ALTER EXTENSION postgis ADD function st_setbandnodatavalue(raster,double precision);
- ALTER EXTENSION postgis ADD function st_setbandnodatavalue(raster,integer,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_setgeoreference(raster,double precision,double precision,double precision,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_setgeoreference(raster,text,text);
- ALTER EXTENSION postgis ADD function st_setgeotransform(raster,double precision,double precision,double precision,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_setpoint(geometry,integer,geometry);
- ALTER EXTENSION postgis ADD function st_setrotation(raster,double precision);
- ALTER EXTENSION postgis ADD function st_setscale(raster,double precision);
- ALTER EXTENSION postgis ADD function st_setscale(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_setskew(raster,double precision);
- ALTER EXTENSION postgis ADD function st_setskew(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_setsrid(geometry,integer);
- ALTER EXTENSION postgis ADD function st_setsrid(raster,integer);
- ALTER EXTENSION postgis ADD function st_setupperleft(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_setvalue(raster,geometry,double precision);
- ALTER EXTENSION postgis ADD function st_setvalue(raster,integer,geometry,double precision);
- ALTER EXTENSION postgis ADD function st_setvalue(raster,integer,integer,double precision);
- ALTER EXTENSION postgis ADD function st_setvalue(raster,integer,integer,integer,double precision);
- ALTER EXTENSION postgis ADD function st_setvalues(raster,integer,geomval[],boolean);
- ALTER EXTENSION postgis ADD function st_setvalues(raster,integer,integer,integer,double precision[],boolean[],boolean);
- ALTER EXTENSION postgis ADD function st_setvalues(raster,integer,integer,integer,double precision[],double precision,boolean);
- ALTER EXTENSION postgis ADD function st_setvalues(raster,integer,integer,integer,integer,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_setvalues(raster,integer,integer,integer,integer,integer,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_sharedpaths(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_shift_longitude(geometry);
- ALTER EXTENSION postgis ADD function st_shortestline(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_simplify(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_simplifypreservetopology(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_skewx(raster);
- ALTER EXTENSION postgis ADD function st_skewy(raster);
- ALTER EXTENSION postgis ADD function st_slope(raster,integer,raster,text,text,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_slope(raster,integer,text,text,double precision,boolean);
- ALTER EXTENSION postgis ADD function st_snap(geometry,geometry,double precision);
- ALTER EXTENSION postgis ADD function st_snaptogrid(geometry,double precision);
- ALTER EXTENSION postgis ADD function st_snaptogrid(geometry,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_snaptogrid(geometry,double precision,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_snaptogrid(geometry,geometry,double precision,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_snaptogrid(raster,double precision,double precision,double precision,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_snaptogrid(raster,double precision,double precision,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_snaptogrid(raster,double precision,double precision,text,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_split(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_srid(geometry);
- ALTER EXTENSION postgis ADD function st_srid(raster);
- ALTER EXTENSION postgis ADD function st_startpoint(geometry);
- ALTER EXTENSION postgis ADD function st_stddev4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function st_stddev4ma(double precision[],text,text[]);
- ALTER EXTENSION postgis ADD function st_sum4ma(double precision[],integer[],text[]);
- ALTER EXTENSION postgis ADD function st_sum4ma(double precision[],text,text[]);
- ALTER EXTENSION postgis ADD function st_summary(geography);
- ALTER EXTENSION postgis ADD function st_summary(geometry);
- ALTER EXTENSION postgis ADD function st_summary(raster);
- ALTER EXTENSION postgis ADD function st_summarystats(raster,boolean);
- ALTER EXTENSION postgis ADD function st_summarystats(raster,integer,boolean);
- ALTER EXTENSION postgis ADD function st_summarystats(text,text,boolean);
- ALTER EXTENSION postgis ADD function st_summarystats(text,text,integer,boolean);
- ALTER EXTENSION postgis ADD function st_symdifference(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_symmetricdifference(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_tile(raster,integer,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_tile(raster,integer,integer,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_tile(raster,integer[],integer,integer,boolean,double precision);
- ALTER EXTENSION postgis ADD function st_touches(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_touches(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function st_touches(raster,raster);
- ALTER EXTENSION postgis ADD function st_tpi(raster,integer,raster,text,boolean);
- ALTER EXTENSION postgis ADD function st_transform(geometry,integer);
- ALTER EXTENSION postgis ADD function st_transform(raster,integer,double precision,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_transform(raster,integer,double precision,text,double precision);
- ALTER EXTENSION postgis ADD function st_transform(raster,integer,text,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_transform(raster,raster,text,double precision);
- ALTER EXTENSION postgis ADD function st_translate(geometry,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_translate(geometry,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_transscale(geometry,double precision,double precision,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_tri(raster,integer,raster,text,boolean);
- ALTER EXTENSION postgis ADD function st_unaryunion(geometry);
- ALTER EXTENSION postgis ADD function st_union(geometry);
- ALTER EXTENSION postgis ADD function st_union(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_union(geometry[]);
- ALTER EXTENSION postgis ADD function st_union(raster);
- ALTER EXTENSION postgis ADD function st_union(raster,integer);
- ALTER EXTENSION postgis ADD function st_union(raster,integer,text);
- ALTER EXTENSION postgis ADD function st_union(raster,text);
- ALTER EXTENSION postgis ADD function st_union(raster,unionarg[]);
- ALTER EXTENSION postgis ADD function st_upperleftx(raster);
- ALTER EXTENSION postgis ADD function st_upperlefty(raster);
- ALTER EXTENSION postgis ADD function st_value(raster,geometry,boolean);
- ALTER EXTENSION postgis ADD function st_value(raster,integer,geometry,boolean);
- ALTER EXTENSION postgis ADD function st_value(raster,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_value(raster,integer,integer,integer,boolean);
- ALTER EXTENSION postgis ADD function st_valuecount(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(raster,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(raster,integer,boolean,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(raster,integer,boolean,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(raster,integer,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(raster,integer,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(text,text,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(text,text,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(text,text,integer,boolean,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(text,text,integer,boolean,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(text,text,integer,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuecount(text,text,integer,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(raster,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(raster,integer,boolean,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(raster,integer,boolean,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(raster,integer,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(raster,integer,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(text,text,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(text,text,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(text,text,integer,boolean,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(text,text,integer,boolean,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(text,text,integer,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_valuepercent(text,text,integer,double precision[],double precision);
- ALTER EXTENSION postgis ADD function st_width(raster);
- ALTER EXTENSION postgis ADD function st_within(geometry,geometry);
- ALTER EXTENSION postgis ADD function st_within(raster,integer,raster,integer);
- ALTER EXTENSION postgis ADD function st_within(raster,raster);
- ALTER EXTENSION postgis ADD function st_wkbtosql(bytea);
- ALTER EXTENSION postgis ADD function st_wkttosql(text);
- ALTER EXTENSION postgis ADD function st_worldtorastercoord(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_worldtorastercoord(raster,geometry);
- ALTER EXTENSION postgis ADD function st_worldtorastercoordx(raster,double precision);
- ALTER EXTENSION postgis ADD function st_worldtorastercoordx(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_worldtorastercoordx(raster,geometry);
- ALTER EXTENSION postgis ADD function st_worldtorastercoordy(raster,double precision);
- ALTER EXTENSION postgis ADD function st_worldtorastercoordy(raster,double precision,double precision);
- ALTER EXTENSION postgis ADD function st_worldtorastercoordy(raster,geometry);
- ALTER EXTENSION postgis ADD function st_x(geometry);
- ALTER EXTENSION postgis ADD function st_xmax(box3d);
- ALTER EXTENSION postgis ADD function st_xmin(box3d);
- ALTER EXTENSION postgis ADD function st_y(geometry);
- ALTER EXTENSION postgis ADD function st_ymax(box3d);
- ALTER EXTENSION postgis ADD function st_ymin(box3d);
- ALTER EXTENSION postgis ADD function st_z(geometry);
- ALTER EXTENSION postgis ADD function st_zmax(box3d);
- ALTER EXTENSION postgis ADD function st_zmflag(geometry);
- ALTER EXTENSION postgis ADD function st_zmin(box3d);
- ALTER EXTENSION postgis ADD function text(geometry);
- ALTER EXTENSION postgis ADD function unlockrows(text);
- ALTER EXTENSION postgis ADD function updategeometrysrid(character varying,character varying,character varying,character varying,integer);
- ALTER EXTENSION postgis ADD function updategeometrysrid(character varying,character varying,character varying,integer);
- ALTER EXTENSION postgis ADD function updategeometrysrid(character varying,character varying,integer);
- ALTER EXTENSION postgis ADD function updaterastersrid(name,name,integer);
- ALTER EXTENSION postgis ADD function updaterastersrid(name,name,name,integer);
- ALTER EXTENSION postgis ADD operator &&&(geometry,geometry);
- ALTER EXTENSION postgis ADD operator &&(geography,geography);
- ALTER EXTENSION postgis ADD operator &&(geometry,geometry);
- ALTER EXTENSION postgis ADD operator &&(geometry,raster);
- ALTER EXTENSION postgis ADD operator &&(raster,geometry);
- ALTER EXTENSION postgis ADD operator &&(raster,raster);
- ALTER EXTENSION postgis ADD operator &<(geometry,geometry);
- ALTER EXTENSION postgis ADD operator &<(raster,raster);
- ALTER EXTENSION postgis ADD operator &<|(geometry,geometry);
- ALTER EXTENSION postgis ADD operator &<|(raster,raster);
- ALTER EXTENSION postgis ADD operator &>(geometry,geometry);
- ALTER EXTENSION postgis ADD operator &>(raster,raster);
- ALTER EXTENSION postgis ADD operator <#>(geometry,geometry);
- ALTER EXTENSION postgis ADD operator <(geography,geography);
- ALTER EXTENSION postgis ADD operator <(geometry,geometry);
- ALTER EXTENSION postgis ADD operator <->(geometry,geometry);
- ALTER EXTENSION postgis ADD operator <<(geometry,geometry);
- ALTER EXTENSION postgis ADD operator <<(raster,raster);
- ALTER EXTENSION postgis ADD operator <<|(geometry,geometry);
- ALTER EXTENSION postgis ADD operator <<|(raster,raster);
- ALTER EXTENSION postgis ADD operator <=(geography,geography);
- ALTER EXTENSION postgis ADD operator <=(geometry,geometry);
- ALTER EXTENSION postgis ADD operator =(geography,geography);
- ALTER EXTENSION postgis ADD operator =(geometry,geometry);
- ALTER EXTENSION postgis ADD operator =(raster,raster);
- ALTER EXTENSION postgis ADD operator >(geography,geography);
- ALTER EXTENSION postgis ADD operator >(geometry,geometry);
- ALTER EXTENSION postgis ADD operator >=(geography,geography);
- ALTER EXTENSION postgis ADD operator >=(geometry,geometry);
- ALTER EXTENSION postgis ADD operator >>(geometry,geometry);
- ALTER EXTENSION postgis ADD operator >>(raster,raster);
- ALTER EXTENSION postgis ADD operator @(geometry,geometry);
- ALTER EXTENSION postgis ADD operator @(geometry,raster);
- ALTER EXTENSION postgis ADD operator @(raster,geometry);
- ALTER EXTENSION postgis ADD operator @(raster,raster);
- ALTER EXTENSION postgis ADD operator class btree_geography_ops using btree;
- ALTER EXTENSION postgis ADD operator class btree_geometry_ops using btree;
- ALTER EXTENSION postgis ADD operator class gist_geography_ops using gist;
- ALTER EXTENSION postgis ADD operator class gist_geometry_ops_2d using gist;
- ALTER EXTENSION postgis ADD operator class gist_geometry_ops_nd using gist;
- ALTER EXTENSION postgis ADD operator class hash_raster_ops using hash;
- ALTER EXTENSION postgis ADD operator family btree_geography_ops using btree;
- ALTER EXTENSION postgis ADD operator family btree_geometry_ops using btree;
- ALTER EXTENSION postgis ADD operator family gist_geography_ops using gist;
- ALTER EXTENSION postgis ADD operator family gist_geometry_ops_2d using gist;
- ALTER EXTENSION postgis ADD operator family gist_geometry_ops_nd using gist;
- ALTER EXTENSION postgis ADD operator family hash_raster_ops using hash;
- ALTER EXTENSION postgis ADD operator |&>(geometry,geometry);
- ALTER EXTENSION postgis ADD operator |&>(raster,raster);
- ALTER EXTENSION postgis ADD operator |>>(geometry,geometry);
- ALTER EXTENSION postgis ADD operator |>>(raster,raster);
- ALTER EXTENSION postgis ADD operator ~(geometry,geometry);
- ALTER EXTENSION postgis ADD operator ~(geometry,raster);
- ALTER EXTENSION postgis ADD operator ~(raster,geometry);
- ALTER EXTENSION postgis ADD operator ~(raster,raster);
- ALTER EXTENSION postgis ADD operator ~=(geometry,geometry);
- ALTER EXTENSION postgis ADD operator ~=(raster,raster);
- ALTER EXTENSION postgis ADD table spatial_ref_sys;
- ALTER EXTENSION postgis ADD type addbandarg;
- ALTER EXTENSION postgis ADD type agg_samealignment;
- ALTER EXTENSION postgis ADD type box2d;
- ALTER EXTENSION postgis ADD type box2df;
- ALTER EXTENSION postgis ADD type box3d;
- ALTER EXTENSION postgis ADD type geography;
- ALTER EXTENSION postgis ADD type geometry;
- ALTER EXTENSION postgis ADD type geometry_dump;
- ALTER EXTENSION postgis ADD type geomval;
- ALTER EXTENSION postgis ADD type gidx;
- ALTER EXTENSION postgis ADD type pgis_abs;
- ALTER EXTENSION postgis ADD type rastbandarg;
- ALTER EXTENSION postgis ADD type raster;
- ALTER EXTENSION postgis ADD type reclassarg;
- ALTER EXTENSION postgis ADD type spheroid;
- ALTER EXTENSION postgis ADD type unionarg;
- ALTER EXTENSION postgis ADD type valid_detail;
- ALTER EXTENSION postgis ADD view geography_columns;
- ALTER EXTENSION postgis ADD view geometry_columns;
- ALTER EXTENSION postgis ADD view raster_columns;
- ALTER EXTENSION postgis ADD view raster_overviews;
-
diff --git a/extensions/postgis/sql_bits/remove_from_extension.sql.in b/extensions/postgis/sql_bits/remove_from_extension.sql.in
index 6c411ca..55dbbe3 100644
--- a/extensions/postgis/sql_bits/remove_from_extension.sql.in
+++ b/extensions/postgis/sql_bits/remove_from_extension.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: remove_from_extension.sql.in 12288 2014-03-03 03:01:35Z robe $
 ----
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
diff --git a/extensions/postgis_extension_helper.sql b/extensions/postgis_extension_helper.sql
index 3b6dd42..681d53a 100644
--- a/extensions/postgis_extension_helper.sql
+++ b/extensions/postgis_extension_helper.sql
@@ -1,12 +1,10 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: postgis_extension_helper.sql 12288 2014-03-03 03:01:35Z robe $
 ----
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
 --
 -- Copyright (C) 2011 Regina Obe <lr at pcorp.us>
--- Copyright (C) 2005 Refractions Research Inc.
 --
 -- This is free software; you can redistribute and/or modify it under
 -- the terms of the GNU General Public Licence. See the COPYING file.
@@ -93,9 +91,14 @@ BEGIN
 	IF var_cur_search_path LIKE '%' || quote_ident(a_schema_name) || '%' THEN
 		var_result := a_schema_name || ' already in database search_path';
 	ELSE
-		EXECUTE 'ALTER DATABASE ' || quote_ident(current_database()) || ' SET search_path = ' || var_cur_search_path || ', ' || quote_ident(a_schema_name); 
+		var_cur_search_path := var_cur_search_path || ', '
+                        || quote_ident(a_schema_name); 
+		EXECUTE 'ALTER DATABASE ' || quote_ident(current_database())
+                              || ' SET search_path = ' || var_cur_search_path;
 		var_result := a_schema_name || ' has been added to end of database search_path ';
 	END IF;
+
+	EXECUTE 'SET search_path = ' || var_cur_search_path;
   
   RETURN var_result;
 END
diff --git a/extensions/postgis_extension_helper_uninstall.sql b/extensions/postgis_extension_helper_uninstall.sql
index 74f9405..74ff038 100644
--- a/extensions/postgis_extension_helper_uninstall.sql
+++ b/extensions/postgis_extension_helper_uninstall.sql
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: postgis_extension_helper_uninstall.sql 12288 2014-03-03 03:01:35Z robe $
 ----
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
diff --git a/extensions/postgis_sfcgal/Makefile b/extensions/postgis_sfcgal/Makefile
new file mode 100644
index 0000000..5a5e292
--- /dev/null
+++ b/extensions/postgis_sfcgal/Makefile
@@ -0,0 +1,89 @@
+include ../upgradeable_versions.mk
+
+EXTENSION    = postgis_sfcgal
+EXTVERSION    = 2.2.0rc1
+MINORVERSION  = 2.2
+GREP = /usr/bin/grep
+
+MICRO_NUMBER  = $(shell echo $(EXTVERSION) | sed "s/[0-9]\.[0-9]\.\([0-9]*\)[a-zA-Z]*[0-9]*/\1/")
+PREREL_NUMBER = $(shell echo $(EXTVERSION) | \
+                        sed "s/[0-9]\.[0-9]\.\(.*\)/\1/" | \
+                        $(GREP) "[a-zA-Z]" | \
+                        sed "s/[0-9][a-zA-Z]\([0-9]*\)[a-zA-Z]*/\1/")
+MICRO_PREV    = $(shell if test "$(MICRO_NUMBER)x" != "x"; then expr $(MICRO_NUMBER) - 1; fi)
+PREREL_PREV   = $(shell if test "$(PREREL_NUMBER)x" != "x"; then expr $(PREREL_NUMBER) - 1; fi)
+
+PREREL_PREFIX = $(shell echo $(EXTVERSION) | \
+                        sed "s/[0-9]\.[0-9]\.\(.*\)/\1/" | \
+                        $(GREP) "[a-zA-Z]" | \
+                        sed "s/\([0-9][a-zA-Z]*\)[0-9]*/\1/")
+
+DATA         = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql))
+
+PG_CONFIG    =  /opt/pgsql/9.3/bin/pg_config
+
+PG91         = $(shell $(PG_CONFIG) --version | $(GREP) -qE " 8\.| 9\.0" && echo no || echo yes)
+SQL_BITS     = $(wildcard sql_bits/*.sql)
+EXTRA_CLEAN += sql/*.sql ${SQL_BITS} 
+
+
+ifeq ($(PG91),yes)
+all: sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql sql_minor_upgrade
+
+sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
+	mkdir -p sql
+	cp $< $@
+	
+sql/$(EXTENSION).sql: sql_bits/sfcgal.sql  sql_bits/sfcgal_comments.sql
+	mkdir -p sql
+	cat $^ > $@
+
+#this is a cludge to allow upgrading from same SVN to same SVN
+sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql: sql_bits/sfcgal_upgrade_minor.sql
+	mkdir -p sql
+	cat $^ > $@
+sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql
+	mkdir -p sql
+	cp $< $@
+	
+sql_bits/sfcgal.sql: ../../postgis/sfcgal.sql
+	mkdir -p sql_bits
+	sed -e 's/BEGIN;//g' -e 's/COMMIT;//g'  $< > $@
+	
+../../doc/sfcgal_comments.sql:
+	$(MAKE) -C ../../doc comments
+	
+sql_bits/sfcgal_comments.sql: ../../doc/sfcgal_comments.sql
+	mkdir -p sql_bits
+	cp $< $@
+	
+#grep all lines that start with CREATE OR REPLACE FUNCTION, TRIGGER...
+#then replace CREATE OR REPLACE .. with ALTER EXTENSION..;
+#then remove default values and extra junk
+sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: sql_bits/sfcgal.sql ../../utils/create_unpackaged.pl
+	mkdir -p sql
+	cat $< | ../../utils/create_unpackaged.pl ${EXTENSION} > $@
+
+sql_bits/sfcgal_upgrade.sql : ../../postgis/sfcgal_upgrade.sql
+	mkdir -p sql_bits
+	sed -e 's/BEGIN;//g' -e 's/COMMIT;//g'  $< > $@
+
+sql_bits/sfcgal_upgrade_minor.sql: ../postgis_extension_helper.sql sql_bits/sfcgal_upgrade.sql ../../doc/sfcgal_comments.sql ../postgis_extension_helper_uninstall.sql
+	mkdir -p sql_bits
+	echo '\echo Use "CREATE EXTENSION $(EXTENSION)" to load this file. \quit' > $@
+	cat $^ >> $@
+
+sql_minor_upgrade: sql_bits/sfcgal_upgrade_minor.sql
+	for OLD_VERSION in $(UPGRADEABLE_VERSIONS); do \
+  	  cat $< > sql/$(EXTENSION)--$$OLD_VERSION--$(EXTVERSION).sql; \
+	done
+	
+DATA = $(wildcard sql/*--*.sql)
+EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql
+endif
+
+distclean: clean
+	rm Makefile
+
+PGXS := $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
diff --git a/extensions/postgis_sfcgal/Makefile.in b/extensions/postgis_sfcgal/Makefile.in
new file mode 100644
index 0000000..1760305
--- /dev/null
+++ b/extensions/postgis_sfcgal/Makefile.in
@@ -0,0 +1,89 @@
+include ../upgradeable_versions.mk
+
+EXTENSION    = postgis_sfcgal
+EXTVERSION    = @POSTGIS_LIB_VERSION@
+MINORVERSION  = @POSTGIS_MAJOR_VERSION at .@POSTGIS_MINOR_VERSION@
+GREP = @GREP@
+
+MICRO_NUMBER  = $(shell echo $(EXTVERSION) | sed "s/[0-9]\.[0-9]\.\([0-9]*\)[a-zA-Z]*[0-9]*/\1/")
+PREREL_NUMBER = $(shell echo $(EXTVERSION) | \
+                        sed "s/[0-9]\.[0-9]\.\(.*\)/\1/" | \
+                        $(GREP) "[a-zA-Z]" | \
+                        sed "s/[0-9][a-zA-Z]\([0-9]*\)[a-zA-Z]*/\1/")
+MICRO_PREV    = $(shell if test "$(MICRO_NUMBER)x" != "x"; then expr $(MICRO_NUMBER) - 1; fi)
+PREREL_PREV   = $(shell if test "$(PREREL_NUMBER)x" != "x"; then expr $(PREREL_NUMBER) - 1; fi)
+
+PREREL_PREFIX = $(shell echo $(EXTVERSION) | \
+                        sed "s/[0-9]\.[0-9]\.\(.*\)/\1/" | \
+                        $(GREP) "[a-zA-Z]" | \
+                        sed "s/\([0-9][a-zA-Z]*\)[0-9]*/\1/")
+
+DATA         = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql))
+
+PG_CONFIG    =  @PG_CONFIG@
+
+PG91         = $(shell $(PG_CONFIG) --version | $(GREP) -qE " 8\.| 9\.0" && echo no || echo yes)
+SQL_BITS     = $(wildcard sql_bits/*.sql)
+EXTRA_CLEAN += sql/*.sql ${SQL_BITS} 
+
+
+ifeq ($(PG91),yes)
+all: sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql sql_minor_upgrade
+
+sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
+	mkdir -p sql
+	cp $< $@
+	
+sql/$(EXTENSION).sql: sql_bits/sfcgal.sql  sql_bits/sfcgal_comments.sql
+	mkdir -p sql
+	cat $^ > $@
+
+#this is a cludge to allow upgrading from same SVN to same SVN
+sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql: sql_bits/sfcgal_upgrade_minor.sql
+	mkdir -p sql
+	cat $^ > $@
+sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql
+	mkdir -p sql
+	cp $< $@
+	
+sql_bits/sfcgal.sql: ../../postgis/sfcgal.sql
+	mkdir -p sql_bits
+	sed -e 's/BEGIN;//g' -e 's/COMMIT;//g'  $< > $@
+	
+../../doc/sfcgal_comments.sql:
+	$(MAKE) -C ../../doc comments
+	
+sql_bits/sfcgal_comments.sql: ../../doc/sfcgal_comments.sql
+	mkdir -p sql_bits
+	cp $< $@
+	
+#grep all lines that start with CREATE OR REPLACE FUNCTION, TRIGGER...
+#then replace CREATE OR REPLACE .. with ALTER EXTENSION..;
+#then remove default values and extra junk
+sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: sql_bits/sfcgal.sql ../../utils/create_unpackaged.pl
+	mkdir -p sql
+	cat $< | ../../utils/create_unpackaged.pl ${EXTENSION} > $@
+
+sql_bits/sfcgal_upgrade.sql : ../../postgis/sfcgal_upgrade.sql
+	mkdir -p sql_bits
+	sed -e 's/BEGIN;//g' -e 's/COMMIT;//g'  $< > $@
+
+sql_bits/sfcgal_upgrade_minor.sql: ../postgis_extension_helper.sql sql_bits/sfcgal_upgrade.sql ../../doc/sfcgal_comments.sql ../postgis_extension_helper_uninstall.sql
+	mkdir -p sql_bits
+	echo '\echo Use "CREATE EXTENSION $(EXTENSION)" to load this file. \quit' > $@
+	cat $^ >> $@
+
+sql_minor_upgrade: sql_bits/sfcgal_upgrade_minor.sql
+	for OLD_VERSION in $(UPGRADEABLE_VERSIONS); do \
+  	  cat $< > sql/$(EXTENSION)--$$OLD_VERSION--$(EXTVERSION).sql; \
+	done
+	
+DATA = $(wildcard sql/*--*.sql)
+EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql
+endif
+
+distclean: clean
+	rm Makefile
+
+PGXS := $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
diff --git a/extensions/postgis_sfcgal/postgis_sfcgal.control b/extensions/postgis_sfcgal/postgis_sfcgal.control
new file mode 100644
index 0000000..debb131
--- /dev/null
+++ b/extensions/postgis_sfcgal/postgis_sfcgal.control
@@ -0,0 +1,5 @@
+# postgis topology extension
+comment = 'PostGIS SFCGAL functions'
+default_version = '2.2.0rc1'
+relocatable = true
+requires = postgis
diff --git a/extensions/postgis_sfcgal/postgis_sfcgal.control.in b/extensions/postgis_sfcgal/postgis_sfcgal.control.in
new file mode 100644
index 0000000..e478dc0
--- /dev/null
+++ b/extensions/postgis_sfcgal/postgis_sfcgal.control.in
@@ -0,0 +1,5 @@
+# postgis topology extension
+comment = 'PostGIS SFCGAL functions'
+default_version = '@POSTGIS_LIB_VERSION@'
+relocatable = true
+requires = postgis
diff --git a/extensions/postgis_tiger_geocoder/Makefile.in b/extensions/postgis_tiger_geocoder/Makefile.in
index decc331..46d8345 100644
--- a/extensions/postgis_tiger_geocoder/Makefile.in
+++ b/extensions/postgis_tiger_geocoder/Makefile.in
@@ -3,35 +3,60 @@ include ../upgradeable_versions.mk
 EXTENSION    = postgis_tiger_geocoder
 EXTVERSION    = @POSTGIS_LIB_VERSION@
 MINORVERSION  = 2011. at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@
+GREP = @GREP@
 
 MICRO_NUMBER  = $(shell echo $(EXTVERSION) | sed "s/[0-9]\.[0-9]\.\([0-9]*\)[a-zA-Z]*[0-9]*/\1/")
 PREREL_NUMBER = $(shell echo $(EXTVERSION) | \
                         sed "s/[0-9]\.[0-9]\.\(.*\)/\1/" | \
-                        grep "[a-zA-Z]" | \
+                        $(GREP) "[a-zA-Z]" | \
                         sed "s/[0-9][a-zA-Z]\([0-9]*\)[a-zA-Z]*/\1/")
 MICRO_PREV    = $(shell if test "$(MICRO_NUMBER)x" != "x"; then expr $(MICRO_NUMBER) - 1; fi)
 PREREL_PREV   = $(shell if test "$(PREREL_NUMBER)x" != "x"; then expr $(PREREL_NUMBER) - 1; fi)
 
 PREREL_PREFIX = $(shell echo $(EXTVERSION) | \
                         sed "s/[0-9]\.[0-9]\.\(.*\)/\1/" | \
-                        grep "[a-zA-Z]" | \
+                        $(GREP) "[a-zA-Z]" | \
                         sed "s/\([0-9][a-zA-Z]*\)[0-9]*/\1/")
 
 DATA         = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql))
+REGRESS = test-normalize_address
+REGRESS_OPTS = --load-extension=fuzzystrmatch --load-extension=postgis --load-extension=$(EXTENSION)
 
 PG_CONFIG    =  @PG_CONFIG@
 
-PG91         = $(shell $(PG_CONFIG) --version | grep -qE " 8\.| 9\.0" && echo no || echo yes)
+PG91         = $(shell $(PG_CONFIG) --version | $(GREP) -qE " 8\.| 9\.0" && echo no || echo yes)
 SQL_BITS     = $(wildcard sql_bits/*.sql)
 EXTRA_CLEAN += sql/*.sql ${SQL_BITS} 
 
+#test address standardizer if also built
+ifeq (@ADDRESS_STANDARDIZER@,address_standardizer)
+	REGRESS +=  test-pagc_normalize_address
+	REGRESS_OPTS += --load-extension=address_standardizer
+endif
 
 ifeq ($(PG91),yes)
-all: sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql  sql_minor_upgrade
+all: sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql  sql_minor_upgrade sql/test-normalize_address.sql  sql/test-pagc_normalize_address.sql expected/test-normalize_address.out expected/test-pagc_normalize_address.out sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql  sql_minor_upgrade
 
 sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
 	mkdir -p sql
+	mkdir -p expected
 	cp $< $@
+
+
+expected/test-normalize_address.out: sql_bits/test_tuples_only_unaligned.sql.in ../../extras/tiger_geocoder/regress/normalize_address_regress
+	cat $^ > $@
+	
+expected/test-pagc_normalize_address.out: sql_bits/test_tuples_only_unaligned.sql.in ../../extras/tiger_geocoder/regress/pagc_normalize_address_regress
+	cat $^ > $@
+	
+## adding \t .. to force output to be the same as what get in regular regress in tiger folder
+sql/test-normalize_address.sql: sql_bits/test_tuples_only_unaligned.sql.in ../../extras/tiger_geocoder/regress/normalize_address_regress.sql
+	mkdir -p sql
+	cat $^ > $@
+	
+sql/test-pagc_normalize_address.sql: sql_bits/test_tuples_only_unaligned.sql.in ../../extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql
+	mkdir -p sql
+	cat $^ > $@
 	
 sql/$(EXTENSION).sql: sql_bits/tiger_geocoder.sql  sql_bits/mark_editable_objects.sql.in sql_bits/tiger_geocoder_comments.sql
 	mkdir -p sql
@@ -41,6 +66,8 @@ sql/$(EXTENSION).sql: sql_bits/tiger_geocoder.sql  sql_bits/mark_editable_object
 sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql: ../postgis_extension_helper.sql sql_bits/remove_from_extension.sql.in sql/tiger_geocoder_upgrade_minor.sql sql_bits/mark_editable_objects.sql.in sql_bits/tiger_geocoder_comments.sql ../postgis_extension_helper_uninstall.sql
 	mkdir -p sql
 	cat $^ > $@
+
+
 sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql
 	mkdir -p sql
 	cp $< $@
@@ -48,72 +75,72 @@ sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql/$(EXTENSION)--$(EXTV
 #strip BEGIN/COMMIT since these are not allowed in extensions
 #strip CREATE SCHEMA since we force extension 
 # to create schema by setting schema to tiger_geocoder in control
-sql_bits/tiger_geocoder_minor.sql.in: ../../extras/tiger_geocoder/tiger_2011/utility/set_search_path.sql \
-  ../../extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql \
-	../../extras/tiger_geocoder/tiger_2011/utility/utmzone.sql \
-	../../extras/tiger_geocoder/tiger_2011/utility/cull_null.sql \
-	../../extras/tiger_geocoder/tiger_2011/utility/nullable_levenshtein.sql \
-	../../extras/tiger_geocoder/tiger_2011/utility/levenshtein_ignore_case.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/end_soundex.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/count_words.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/state_extract.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/get_last_words.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_exact.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_fuzzy.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_exact.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_fuzzy.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/normalize_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/pprint_addy.sql \
-	../../extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql \
-  ../../extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/other_helper_functions.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/rate_attributes.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/includes_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/interpolate_from_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/geocode_location.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/geocode_intersection.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/geocode.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/census_tracts_functions.sql
+sql_bits/tiger_geocoder_minor.sql.in: ../../extras/tiger_geocoder/utility/set_search_path.sql \
+  	../../extras/tiger_geocoder/geocode_settings.sql \
+  ../../extras/tiger_geocoder/tiger_loader_2015.sql \
+	../../extras/tiger_geocoder/utility/utmzone.sql \
+	../../extras/tiger_geocoder/utility/cull_null.sql \
+	../../extras/tiger_geocoder/utility/nullable_levenshtein.sql \
+	../../extras/tiger_geocoder/utility/levenshtein_ignore_case.sql \
+	../../extras/tiger_geocoder/normalize/end_soundex.sql \
+	../../extras/tiger_geocoder/normalize/count_words.sql \
+	../../extras/tiger_geocoder/normalize/state_extract.sql \
+	../../extras/tiger_geocoder/normalize/get_last_words.sql \
+	../../extras/tiger_geocoder/normalize/location_extract_countysub_exact.sql \
+	../../extras/tiger_geocoder/normalize/location_extract_countysub_fuzzy.sql \
+	../../extras/tiger_geocoder/normalize/location_extract_place_exact.sql \
+	../../extras/tiger_geocoder/normalize/location_extract_place_fuzzy.sql \
+	../../extras/tiger_geocoder/normalize/location_extract.sql \
+	../../extras/tiger_geocoder/normalize/normalize_address.sql \
+	../../extras/tiger_geocoder/normalize/pprint_addy.sql \
+	../../extras/tiger_geocoder/pagc_normalize/pagc_tables.sql \
+  ../../extras/tiger_geocoder/pagc_normalize/pagc_normalize_address.sql \
+	../../extras/tiger_geocoder/geocode/other_helper_functions.sql \
+	../../extras/tiger_geocoder/geocode/rate_attributes.sql \
+	../../extras/tiger_geocoder/geocode/includes_address.sql \
+	../../extras/tiger_geocoder/geocode/interpolate_from_address.sql \
+	../../extras/tiger_geocoder/geocode/geocode_address.sql \
+	../../extras/tiger_geocoder/geocode/geocode_location.sql \
+	../../extras/tiger_geocoder/geocode/geocode_intersection.sql \
+	../../extras/tiger_geocoder/geocode/geocode.sql \
+	../../extras/tiger_geocoder/geocode/reverse_geocode.sql \
+	../../extras/tiger_geocoder/geocode/census_tracts_functions.sql
 	cat $^ > $@
 	
 sql_bits/tiger_geocoder.sql.in: sql_bits/norm_addy_create.sql.in \
-	../../extras/tiger_geocoder/tiger_2011/utility/set_search_path.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode_settings.sql \
-	../../extras/tiger_geocoder/tiger_2011/tables/lookup_tables_2011.sql \
-	../../extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql \
-	../../extras/tiger_geocoder/tiger_2011/census_loader.sql \
-	../../extras/tiger_geocoder/tiger_2011/utility/set_search_path.sql \
-	../../extras/tiger_geocoder/tiger_2011/utility/utmzone.sql \
-	../../extras/tiger_geocoder/tiger_2011/utility/cull_null.sql \
-	../../extras/tiger_geocoder/tiger_2011/utility/nullable_levenshtein.sql \
-	../../extras/tiger_geocoder/tiger_2011/utility/levenshtein_ignore_case.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/end_soundex.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/count_words.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/state_extract.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/get_last_words.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_exact.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_fuzzy.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_exact.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_fuzzy.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/location_extract.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/normalize_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/normalize/pprint_addy.sql \
-	../../extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql \
-    ../../extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/other_helper_functions.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/rate_attributes.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/includes_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/interpolate_from_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/geocode_location.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/geocode_intersection.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/geocode.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql \
-	../../extras/tiger_geocoder/tiger_2011/geocode/census_tracts_functions.sql \
-	../../extras/tiger_geocoder/tiger_2011/topology/tiger_topology_loader.sql \
+	../../extras/tiger_geocoder/utility/set_search_path.sql \
+	../../extras/tiger_geocoder/geocode_settings.sql \
+	../../extras/tiger_geocoder/tables/lookup_tables_2011.sql \
+	../../extras/tiger_geocoder/tiger_loader_2015.sql \
+	../../extras/tiger_geocoder/utility/set_search_path.sql \
+	../../extras/tiger_geocoder/utility/utmzone.sql \
+	../../extras/tiger_geocoder/utility/cull_null.sql \
+	../../extras/tiger_geocoder/utility/nullable_levenshtein.sql \
+	../../extras/tiger_geocoder/utility/levenshtein_ignore_case.sql \
+	../../extras/tiger_geocoder/normalize/end_soundex.sql \
+	../../extras/tiger_geocoder/normalize/count_words.sql \
+	../../extras/tiger_geocoder/normalize/state_extract.sql \
+	../../extras/tiger_geocoder/normalize/get_last_words.sql \
+	../../extras/tiger_geocoder/normalize/location_extract_countysub_exact.sql \
+	../../extras/tiger_geocoder/normalize/location_extract_countysub_fuzzy.sql \
+	../../extras/tiger_geocoder/normalize/location_extract_place_exact.sql \
+	../../extras/tiger_geocoder/normalize/location_extract_place_fuzzy.sql \
+	../../extras/tiger_geocoder/normalize/location_extract.sql \
+	../../extras/tiger_geocoder/normalize/normalize_address.sql \
+	../../extras/tiger_geocoder/normalize/pprint_addy.sql \
+	../../extras/tiger_geocoder/pagc_normalize/pagc_tables.sql \
+    ../../extras/tiger_geocoder/pagc_normalize/pagc_normalize_address.sql \
+	../../extras/tiger_geocoder/geocode/other_helper_functions.sql \
+	../../extras/tiger_geocoder/geocode/rate_attributes.sql \
+	../../extras/tiger_geocoder/geocode/includes_address.sql \
+	../../extras/tiger_geocoder/geocode/interpolate_from_address.sql \
+	../../extras/tiger_geocoder/geocode/geocode_address.sql \
+	../../extras/tiger_geocoder/geocode/geocode_location.sql \
+	../../extras/tiger_geocoder/geocode/geocode_intersection.sql \
+	../../extras/tiger_geocoder/geocode/geocode.sql \
+	../../extras/tiger_geocoder/geocode/reverse_geocode.sql \
+	../../extras/tiger_geocoder/geocode/census_tracts_functions.sql \
+	../../extras/tiger_geocoder/topology/tiger_topology_loader.sql \
 	../postgis_extension_helper.sql \
 	sql_bits/add_search_path.sql \
 	../postgis_extension_helper_uninstall.sql 
@@ -170,8 +197,10 @@ sql_minor_upgrade: ../postgis_extension_helper.sql sql_bits/remove_from_extensio
 	for OLD_VERSION in $(UPGRADEABLE_VERSIONS); do \
   	  cat $^ > sql/$(EXTENSION)--$$OLD_VERSION--$(EXTVERSION).sql; \
 	done
-	
-DATA = $(wildcard sql/*--*.sql)
+
+#only extension files	
+DATA = ${EXTENSION}.control sql/$(EXTENSION).sql $(wildcard sql/*--*.sql)
+EXTRA_CLEAN += $(wildcard expected/*--*.out)
 EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql
 endif
 
diff --git a/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control b/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control
index 28434c6..a655b48 100644
--- a/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control
+++ b/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control
@@ -1,6 +1,6 @@
 # postgis tiger geocoder extension
 comment = 'PostGIS tiger geocoder and reverse geocoder'
-default_version = '2.1.8'
+default_version = '2.2.0rc1'
 relocatable = false
 schema = tiger
 requires = 'postgis,fuzzystrmatch'
diff --git a/extensions/postgis_tiger_geocoder/sql_bits/add_search_path.sql.in b/extensions/postgis_tiger_geocoder/sql_bits/add_search_path.sql.in
index 0be1c1b..c8b123f 100644
--- a/extensions/postgis_tiger_geocoder/sql_bits/add_search_path.sql.in
+++ b/extensions/postgis_tiger_geocoder/sql_bits/add_search_path.sql.in
@@ -1,19 +1,18 @@
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- 
--- $Id: add_search_path.sql.in 10934 2012-12-26 13:44:51Z robe $
-----
--- PostGIS - Spatial Types for PostgreSQL
--- http://postgis.net
---
--- Copyright (C) 2012 Regina Obe <lr at pcorp.us>
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe <lr at pcorp.us>
---  
--- This adds the tiger schema to search path
--- Functions in tiger are not schema qualified 
--- so this is needed for them to work
-
-SELECT postgis_extension_AddToSearchPath('tiger');
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- 
+----
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2012 Regina Obe <lr at pcorp.us>
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe <lr at pcorp.us>
+--  
+-- This adds the tiger schema to search path
+-- Functions in tiger are not schema qualified 
+-- so this is needed for them to work
+
+SELECT postgis_extension_AddToSearchPath('tiger');
diff --git a/extensions/postgis_tiger_geocoder/sql_bits/norm_addy_create.sql.in b/extensions/postgis_tiger_geocoder/sql_bits/norm_addy_create.sql.in
index 12df5b2..5f3bc7d 100644
--- a/extensions/postgis_tiger_geocoder/sql_bits/norm_addy_create.sql.in
+++ b/extensions/postgis_tiger_geocoder/sql_bits/norm_addy_create.sql.in
@@ -1,11 +1,11 @@
-CREATE TYPE norm_addy AS (
-    address INTEGER,
-    preDirAbbrev VARCHAR,
-    streetName VARCHAR,
-    streetTypeAbbrev VARCHAR,
-    postDirAbbrev VARCHAR,
-    internal VARCHAR,
-    location VARCHAR,
-    stateAbbrev VARCHAR,
-    zip VARCHAR,
-    parsed BOOLEAN);
+CREATE TYPE norm_addy AS (
+    address INTEGER,
+    preDirAbbrev VARCHAR,
+    streetName VARCHAR,
+    streetTypeAbbrev VARCHAR,
+    postDirAbbrev VARCHAR,
+    internal VARCHAR,
+    location VARCHAR,
+    stateAbbrev VARCHAR,
+    zip VARCHAR,
+    parsed BOOLEAN);
diff --git a/extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in b/extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in
index 74990c2..23edbcf 100644
--- a/extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in
+++ b/extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in
@@ -1,20 +1,19 @@
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- 
--- $Id: remove_from_extension.sql.in 9324 2012-02-27 22:08:12Z pramsey $
-----
--- PostGIS - Spatial Types for PostgreSQL
--- http://postgis.net
---
--- Copyright (C) 2011 Regina Obe <lr at pcorp.us>
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe <lr at pcorp.us>
---  
--- This drops extension helper functions
--- and should be called at the end of the extension upgrade file
--- removes all postgis_topology functions from postgis_topology extension since they will be readded 
--- during upgrade
-SELECT postgis_extension_remove_objects('postgis_tiger_geocoder', 'FUNCTION');
-SELECT postgis_extension_remove_objects('postgis_tiger_geocoder', 'AGGREGATE');
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- 
+----
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2011 Regina Obe <lr at pcorp.us>
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe <lr at pcorp.us>
+--  
+-- This drops extension helper functions
+-- and should be called at the end of the extension upgrade file
+-- removes all postgis_topology functions from postgis_topology extension since they will be readded 
+-- during upgrade
+SELECT postgis_extension_remove_objects('postgis_tiger_geocoder', 'FUNCTION');
+SELECT postgis_extension_remove_objects('postgis_tiger_geocoder', 'AGGREGATE');
diff --git a/extensions/postgis_tiger_geocoder/sql_bits/test_tuples_only_unaligned.sql.in b/extensions/postgis_tiger_geocoder/sql_bits/test_tuples_only_unaligned.sql.in
new file mode 100644
index 0000000..cebaf64
--- /dev/null
+++ b/extensions/postgis_tiger_geocoder/sql_bits/test_tuples_only_unaligned.sql.in
@@ -0,0 +1 @@
+\t on \a \set ECHO none
diff --git a/extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in b/extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in
index f80c896..fc1f383 100644
--- a/extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in
+++ b/extensions/postgis_tiger_geocoder/sql_bits/tiger_geocoder--unpackaged.sql.in
@@ -1,103 +1,95 @@
- ALTER EXTENSION postgis_tiger_geocoder ADD function count_words(character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function create_census_base_tables();
- ALTER EXTENSION postgis_tiger_geocoder ADD function cull_null(character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function diff_zip(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function drop_dupe_featnames_generate_script();
- ALTER EXTENSION postgis_tiger_geocoder ADD function drop_indexes_generate_script(text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function drop_nation_tables_generate_script(text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function drop_state_tables_generate_script(text,text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function end_soundex(character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function geocode(character varying,integer,geometry);
- ALTER EXTENSION postgis_tiger_geocoder ADD function geocode(norm_addy,integer,geometry);
- ALTER EXTENSION postgis_tiger_geocoder ADD function geocode_address(norm_addy,integer,geometry);
- ALTER EXTENSION postgis_tiger_geocoder ADD function geocode_intersection(text,text,text,text,text,integer);
- ALTER EXTENSION postgis_tiger_geocoder ADD function geocode_location(norm_addy,geometry);
- ALTER EXTENSION postgis_tiger_geocoder ADD function get_geocode_setting(text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function get_last_words(character varying,integer);
- ALTER EXTENSION postgis_tiger_geocoder ADD function get_tract(geometry,text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function greatest_hn(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function includes_address(integer,integer,integer,integer,integer);
- ALTER EXTENSION postgis_tiger_geocoder ADD function install_geocode_settings();
- ALTER EXTENSION postgis_tiger_geocoder ADD function install_missing_indexes();
- ALTER EXTENSION postgis_tiger_geocoder ADD function install_pagc_tables();
- ALTER EXTENSION postgis_tiger_geocoder ADD function interpolate_from_address(integer,character varying,character varying,geometry,character varying,double precision);
- ALTER EXTENSION postgis_tiger_geocoder ADD function is_pretype(text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function least_hn(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function levenshtein_ignore_case(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function loader_generate_census_script(text[],text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function loader_generate_nation_script(text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function loader_generate_script(text[],text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function loader_load_staged_data(text,text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function loader_load_staged_data(text,text,text[]);
- ALTER EXTENSION postgis_tiger_geocoder ADD function loader_macro_replace(text,text[],text[]);
- ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract_countysub_exact(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract_countysub_fuzzy(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract_place_exact(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract_place_fuzzy(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function missing_indexes_generate_script();
- ALTER EXTENSION postgis_tiger_geocoder ADD function normalize_address(character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function nullable_levenshtein(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function numeric_streets_equal(character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function pagc_normalize_address(character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function pprint_addy(norm_addy);
- ALTER EXTENSION postgis_tiger_geocoder ADD function rate_attributes(character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function rate_attributes(character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function reverse_geocode(geometry,boolean);
- ALTER EXTENSION postgis_tiger_geocoder ADD function set_geocode_setting(text,text);
- ALTER EXTENSION postgis_tiger_geocoder ADD function setsearchpathforinstall(character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function state_extract(character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function topology_load_tiger(character varying,character varying,character varying);
- ALTER EXTENSION postgis_tiger_geocoder ADD function utmzone(geometry);
- ALTER EXTENSION postgis_tiger_geocoder ADD function zip_range(text,integer,integer);
- ALTER EXTENSION postgis_tiger_geocoder ADD schema tiger_data;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence addr_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence addrfeat_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence bg_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence county_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence cousub_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence edges_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence faces_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence featnames_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence pagc_gaz_id_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence pagc_lex_id_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence pagc_rules_id_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence place_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence state_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence tabblock_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence tract_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD sequence zcta5_gid_seq;
- ALTER EXTENSION postgis_tiger_geocoder ADD table addr;
- ALTER EXTENSION postgis_tiger_geocoder ADD table addrfeat;
- ALTER EXTENSION postgis_tiger_geocoder ADD table bg;
- ALTER EXTENSION postgis_tiger_geocoder ADD table county;
- ALTER EXTENSION postgis_tiger_geocoder ADD table county_lookup;
- ALTER EXTENSION postgis_tiger_geocoder ADD table countysub_lookup;
- ALTER EXTENSION postgis_tiger_geocoder ADD table cousub;
- ALTER EXTENSION postgis_tiger_geocoder ADD table direction_lookup;
- ALTER EXTENSION postgis_tiger_geocoder ADD table edges;
- ALTER EXTENSION postgis_tiger_geocoder ADD table faces;
- ALTER EXTENSION postgis_tiger_geocoder ADD table featnames;
- ALTER EXTENSION postgis_tiger_geocoder ADD table geocode_settings;
- ALTER EXTENSION postgis_tiger_geocoder ADD table loader_lookuptables;
- ALTER EXTENSION postgis_tiger_geocoder ADD table loader_platform;
- ALTER EXTENSION postgis_tiger_geocoder ADD table loader_variables;
- ALTER EXTENSION postgis_tiger_geocoder ADD table pagc_gaz;
- ALTER EXTENSION postgis_tiger_geocoder ADD table pagc_lex;
- ALTER EXTENSION postgis_tiger_geocoder ADD table pagc_rules;
- ALTER EXTENSION postgis_tiger_geocoder ADD table place;
- ALTER EXTENSION postgis_tiger_geocoder ADD table place_lookup;
- ALTER EXTENSION postgis_tiger_geocoder ADD table secondary_unit_lookup;
- ALTER EXTENSION postgis_tiger_geocoder ADD table state;
- ALTER EXTENSION postgis_tiger_geocoder ADD table state_lookup;
- ALTER EXTENSION postgis_tiger_geocoder ADD table street_type_lookup;
- ALTER EXTENSION postgis_tiger_geocoder ADD table tabblock;
- ALTER EXTENSION postgis_tiger_geocoder ADD table tract;
- ALTER EXTENSION postgis_tiger_geocoder ADD table zcta5;
- ALTER EXTENSION postgis_tiger_geocoder ADD table zip_lookup;
- ALTER EXTENSION postgis_tiger_geocoder ADD table zip_lookup_all;
- ALTER EXTENSION postgis_tiger_geocoder ADD table zip_lookup_base;
- ALTER EXTENSION postgis_tiger_geocoder ADD table zip_state;
- ALTER EXTENSION postgis_tiger_geocoder ADD table zip_state_loc;
- ALTER EXTENSION postgis_tiger_geocoder ADD type norm_addy;
-
+ALTER EXTENSION postgis_tiger_geocoder ADD function count_words(character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function create_census_base_tables();
+ALTER EXTENSION postgis_tiger_geocoder ADD function cull_null(character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function diff_zip(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function drop_dupe_featnames_generate_script();
+ALTER EXTENSION postgis_tiger_geocoder ADD function drop_indexes_generate_script(text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function drop_nation_tables_generate_script(text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function drop_state_tables_generate_script(text,text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function end_soundex(character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function geocode(character varying,integer,geometry);
+ALTER EXTENSION postgis_tiger_geocoder ADD function geocode(norm_addy,integer,geometry);
+ALTER EXTENSION postgis_tiger_geocoder ADD function geocode_address(norm_addy,integer,geometry);
+ALTER EXTENSION postgis_tiger_geocoder ADD function geocode_intersection(text,text,text,text,text,integer);
+ALTER EXTENSION postgis_tiger_geocoder ADD function geocode_location(norm_addy,geometry);
+ALTER EXTENSION postgis_tiger_geocoder ADD function get_geocode_setting(text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function get_last_words(character varying,integer);
+ALTER EXTENSION postgis_tiger_geocoder ADD function get_tract(geometry,text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function greatest_hn(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function includes_address(integer,integer,integer,integer,integer);
+ALTER EXTENSION postgis_tiger_geocoder ADD function install_geocode_settings();
+ALTER EXTENSION postgis_tiger_geocoder ADD function install_missing_indexes();
+ALTER EXTENSION postgis_tiger_geocoder ADD function install_pagc_tables();
+ALTER EXTENSION postgis_tiger_geocoder ADD function interpolate_from_address(integer,character varying,character varying,geometry,character varying,double precision);
+ALTER EXTENSION postgis_tiger_geocoder ADD function is_pretype(text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function least_hn(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function levenshtein_ignore_case(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function loader_generate_census_script(text[],text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function loader_generate_nation_script(text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function loader_generate_script(text[],text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function loader_load_staged_data(text,text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function loader_load_staged_data(text,text,text[]);
+ALTER EXTENSION postgis_tiger_geocoder ADD function loader_macro_replace(text,text[],text[]);
+ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract_countysub_exact(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract_countysub_fuzzy(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract_place_exact(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function location_extract_place_fuzzy(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function missing_indexes_generate_script();
+ALTER EXTENSION postgis_tiger_geocoder ADD function normalize_address(character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function nullable_levenshtein(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function numeric_streets_equal(character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function pagc_normalize_address(character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function pprint_addy(norm_addy);
+ALTER EXTENSION postgis_tiger_geocoder ADD function rate_attributes(character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function rate_attributes(character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function reverse_geocode(geometry,boolean);
+ALTER EXTENSION postgis_tiger_geocoder ADD function set_geocode_setting(text,text);
+ALTER EXTENSION postgis_tiger_geocoder ADD function setsearchpathforinstall(character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function state_extract(character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function topology_load_tiger(character varying,character varying,character varying);
+ALTER EXTENSION postgis_tiger_geocoder ADD function utmzone(geometry);
+ALTER EXTENSION postgis_tiger_geocoder ADD function zip_range(text,integer,integer);
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence addr_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence addrfeat_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence county_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence cousub_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence edges_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence faces_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence featnames_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence pagc_gaz_id_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence pagc_lex_id_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence pagc_rules_id_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence place_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence state_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD sequence zcta5_gid_seq;
+ALTER EXTENSION postgis_tiger_geocoder ADD table addr;
+ALTER EXTENSION postgis_tiger_geocoder ADD table addrfeat;
+ALTER EXTENSION postgis_tiger_geocoder ADD table county;
+ALTER EXTENSION postgis_tiger_geocoder ADD table county_lookup;
+ALTER EXTENSION postgis_tiger_geocoder ADD table countysub_lookup;
+ALTER EXTENSION postgis_tiger_geocoder ADD table cousub;
+ALTER EXTENSION postgis_tiger_geocoder ADD table direction_lookup;
+ALTER EXTENSION postgis_tiger_geocoder ADD table edges;
+ALTER EXTENSION postgis_tiger_geocoder ADD table faces;
+ALTER EXTENSION postgis_tiger_geocoder ADD table featnames;
+ALTER EXTENSION postgis_tiger_geocoder ADD table geocode_settings;
+ALTER EXTENSION postgis_tiger_geocoder ADD table loader_lookuptables;
+ALTER EXTENSION postgis_tiger_geocoder ADD table loader_platform;
+ALTER EXTENSION postgis_tiger_geocoder ADD table loader_variables;
+ALTER EXTENSION postgis_tiger_geocoder ADD table pagc_gaz;
+ALTER EXTENSION postgis_tiger_geocoder ADD table pagc_lex;
+ALTER EXTENSION postgis_tiger_geocoder ADD table pagc_rules;
+ALTER EXTENSION postgis_tiger_geocoder ADD table place;
+ALTER EXTENSION postgis_tiger_geocoder ADD table place_lookup;
+ALTER EXTENSION postgis_tiger_geocoder ADD table secondary_unit_lookup;
+ALTER EXTENSION postgis_tiger_geocoder ADD table state;
+ALTER EXTENSION postgis_tiger_geocoder ADD table state_lookup;
+ALTER EXTENSION postgis_tiger_geocoder ADD table street_type_lookup;
+ALTER EXTENSION postgis_tiger_geocoder ADD table zcta5;
+ALTER EXTENSION postgis_tiger_geocoder ADD table zip_lookup;
+ALTER EXTENSION postgis_tiger_geocoder ADD table zip_lookup_all;
+ALTER EXTENSION postgis_tiger_geocoder ADD table zip_lookup_base;
+ALTER EXTENSION postgis_tiger_geocoder ADD table zip_state;
+ALTER EXTENSION postgis_tiger_geocoder ADD table zip_state_loc;
+ALTER EXTENSION postgis_tiger_geocoder ADD type norm_addy;
\ No newline at end of file
diff --git a/extensions/postgis_topology/Makefile.in b/extensions/postgis_topology/Makefile.in
index fe5c1dc..832d2cc 100644
--- a/extensions/postgis_topology/Makefile.in
+++ b/extensions/postgis_topology/Makefile.in
@@ -3,8 +3,8 @@ include ../upgradeable_versions.mk
 EXTENSION    = postgis_topology
 EXTVERSION    = @POSTGIS_LIB_VERSION@
 MINORVERSION  = @POSTGIS_MAJOR_VERSION at .@POSTGIS_MINOR_VERSION@
-PGIS_MAJ_MIN=@POSTGIS_MAJOR_VERSION@@POSTGIS_MINOR_VERSION@
 GREP=@GREP@
+PERL=@PERL@
 
 MICRO_NUMBER  = $(shell echo $(EXTVERSION) | sed "s/[0-9]\.[0-9]\.\([0-9]*\)[a-zA-Z]*[0-9]*/\1/")
 PREREL_NUMBER = $(shell echo $(EXTVERSION) | \
@@ -29,20 +29,21 @@ EXTRA_CLEAN += sql/*.sql ${SQL_BITS}
 
 
 ifeq ($(PG91),yes)
+
 all: sql/$(EXTENSION)--$(EXTVERSION).sql sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql sql_minor_upgrade
 
 sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
 	mkdir -p sql
 	cp $< $@
 	
-sql/$(EXTENSION).sql: sql_bits/topology.sql  sql_bits/mark_editable_objects.sql.in sql_bits/topology_comments.sql
+sql/$(EXTENSION).sql: extlock.sql sql_bits/topology.sql  sql_bits/mark_editable_objects.sql.in sql_bits/topology_comments.sql
 	mkdir -p sql
 	cat $^ > $@
 	
 #this is a cludge to allow upgrading from same SVN to same SVN
-sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql: ../postgis_extension_helper.sql sql_bits/remove_from_extension.sql.in sql/topology_upgrade_minor.sql sql_bits/mark_editable_objects.sql.in sql_bits/topology_comments.sql ../postgis_extension_helper_uninstall.sql
+sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql: extlock.sql ../postgis_extension_helper.sql sql_bits/remove_from_extension.sql.in sql/topology_upgrade.sql sql_bits/mark_editable_objects.sql.in sql_bits/topology_comments.sql ../postgis_extension_helper_uninstall.sql
 	cat $^ > $@
-sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: ../postgis_extension_helper.sql sql_bits/remove_from_extension.sql.in sql/topology_upgrade_minor.sql sql_bits/mark_editable_objects.sql.in sql_bits/topology_comments.sql ../postgis_extension_helper_uninstall.sql
+sql/$(EXTENSION)--$(EXTVERSION)next--$(EXTVERSION).sql: sql/$(EXTENSION)--$(EXTVERSION)--$(EXTVERSION)next.sql
 	cat $^ > $@
 	
 #strip BEGIN/COMMIT since these are not allowed in extensions
@@ -57,25 +58,9 @@ sql_bits/topology.sql: ../../topology/topology.sql
 sql_bits/topology_comments.sql: ../../doc/topology_comments.sql
 	cp $< $@
 	
-#grep all lines that start with CREATE OR REPLACE FUNCTION, TRIGGER...
-#then replace CREATE OR REPLACE .. with ALTER EXTENSION..;
-#then remove default values and extra junk
-# sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: ../../topology/topology.sql
-# 	sed -e '/^CREATE \(OR REPLACE\|TYPE\|TABLE\|VIEW\|CAST\)/!d;' \
-# 		-e 's/OR REPLACE//g' \
-# 		-e 's/CREATE\(.*\)/ALTER EXTENSION $(EXTENSION) ADD\1;/' \
-# 		-e 's/DEFAULT [\.0-9a-zA-Z]\+//g' \
-# 		-e 's/\(BEFORE\|WITH FUNCTION\)\(.*\)/;/' \
-# 		-e 's/[ \t]+;/;/' \
-# 		-e 's/(;/;/' \
-# 		-e 's/\\(;/;/' \
-# 		-e 's/;;/;/g' $< > $@
-
-#hardcode for now using 
-#the extensions/make_unpackaged.sql script form an install
-sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: sql_bits/topology--unpackaged.sql.in
+sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: ../../topology/topology.sql ../../utils/create_unpackaged.pl
 	mkdir -p sql
-	cp $< $@
+	cat $< | $(PERL) ../../utils/create_unpackaged.pl postgis_topology > $@
 
 #upgrade script should have everything but table, schema, type creation/alter
 #NOTE: we assume all object definitions end in ;
@@ -85,10 +70,10 @@ sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: sql_bits/topology--unpackaged.s
 #aggregates are special 
 #they can be dropped but we need to remove
 #them from the extension first
-sql/topology_upgrade_minor.sql:  ../../topology/topology_upgrade_$(PGIS_MAJ_MIN)_minor.sql
+sql/topology_upgrade.sql:  ../../topology/topology_upgrade.sql
 	 sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' -e '/^CREATE SCHEMA/d;'  $< > $@
 	
-sql_minor_upgrade: ../postgis_extension_helper.sql sql_bits/remove_from_extension.sql.in sql/topology_upgrade_minor.sql sql_bits/mark_editable_objects.sql.in sql_bits/topology_comments.sql ../postgis_extension_helper_uninstall.sql
+sql_minor_upgrade: extlock.sql ../postgis_extension_helper.sql sql_bits/remove_from_extension.sql.in sql/topology_upgrade.sql sql_bits/mark_editable_objects.sql.in sql_bits/topology_comments.sql ../postgis_extension_helper_uninstall.sql
 	for OLD_VERSION in $(UPGRADEABLE_VERSIONS); do \
   	  cat $^ > sql/$(EXTENSION)--$$OLD_VERSION--$(EXTVERSION).sql; \
 	done
diff --git a/extensions/postgis_topology/doc/postgis.md b/extensions/postgis_topology/doc/postgis.md
index 8feab14..3e96c16 100644
--- a/extensions/postgis_topology/doc/postgis.md
+++ b/extensions/postgis_topology/doc/postgis.md
@@ -1,5 +1,5 @@
-PostGIS 
+PostGIS
 ============
 
 Extensive documentation can be found at.
-HTML: http://postgis.net/documentation
+http://postgis.net/documentation
diff --git a/extensions/postgis_topology/extlock.sql b/extensions/postgis_topology/extlock.sql
new file mode 100644
index 0000000..537c36e
--- /dev/null
+++ b/extensions/postgis_topology/extlock.sql
@@ -0,0 +1,2 @@
+-- complain if script is sourced in psql, rather than via CREATE EXTENSION
+\echo Use "CREATE EXTENSION postgis_topology" to load this file. \quit
diff --git a/extensions/postgis_topology/postgis_topology.control b/extensions/postgis_topology/postgis_topology.control
index 1817162..9cf480a 100644
--- a/extensions/postgis_topology/postgis_topology.control
+++ b/extensions/postgis_topology/postgis_topology.control
@@ -1,6 +1,6 @@
 # postgis topology extension
 comment = 'PostGIS topology spatial types and functions'
-default_version = '2.1.8'
+default_version = '2.2.0rc1'
 relocatable = false
 schema = topology
 requires = postgis
diff --git a/extensions/postgis_topology/sql_bits/remove_from_extension.sql.in b/extensions/postgis_topology/sql_bits/remove_from_extension.sql.in
index d7a115a..4145935 100644
--- a/extensions/postgis_topology/sql_bits/remove_from_extension.sql.in
+++ b/extensions/postgis_topology/sql_bits/remove_from_extension.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: remove_from_extension.sql.in 12288 2014-03-03 03:01:35Z robe $
 ----
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
diff --git a/extensions/postgis_topology/sql_bits/topology--unpackaged.sql.in b/extensions/postgis_topology/sql_bits/topology--unpackaged.sql.in
deleted file mode 100644
index ea50f30..0000000
--- a/extensions/postgis_topology/sql_bits/topology--unpackaged.sql.in
+++ /dev/null
@@ -1,95 +0,0 @@
- ALTER EXTENSION postgis_topology ADD cast(topology.topogeometry as geometry);
- ALTER EXTENSION postgis_topology ADD function topology._asgmledge(integer,integer,integer,geometry,regclass,text,integer,integer,text,integer);
- ALTER EXTENSION postgis_topology ADD function topology._asgmlface(text,integer,regclass,text,integer,integer,text,integer);
- ALTER EXTENSION postgis_topology ADD function topology._asgmlnode(integer,geometry,text,integer,integer,text,integer);
- ALTER EXTENSION postgis_topology ADD function topology._st_addfacesplit(character varying,integer,integer,boolean);
- ALTER EXTENSION postgis_topology ADD function topology._st_adjacentedges(character varying,integer,integer);
- ALTER EXTENSION postgis_topology ADD function topology._st_mintolerance(character varying,geometry);
- ALTER EXTENSION postgis_topology ADD function topology._st_mintolerance(geometry);
- ALTER EXTENSION postgis_topology ADD function topology._st_remedgecheck(character varying,integer,integer,integer,integer);
- ALTER EXTENSION postgis_topology ADD function topology.addedge(character varying,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.addface(character varying,geometry,boolean);
- ALTER EXTENSION postgis_topology ADD function topology.addnode(character varying,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.addnode(character varying,geometry,boolean,boolean);
- ALTER EXTENSION postgis_topology ADD function topology.addtopogeometrycolumn(character varying,character varying,character varying,character varying,character varying);
- ALTER EXTENSION postgis_topology ADD function topology.addtopogeometrycolumn(character varying,character varying,character varying,character varying,character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.addtosearchpath(character varying);
- ALTER EXTENSION postgis_topology ADD function topology.asgml(topology.topogeometry);
- ALTER EXTENSION postgis_topology ADD function topology.asgml(topology.topogeometry,regclass);
- ALTER EXTENSION postgis_topology ADD function topology.asgml(topology.topogeometry,regclass,text);
- ALTER EXTENSION postgis_topology ADD function topology.asgml(topology.topogeometry,text);
- ALTER EXTENSION postgis_topology ADD function topology.asgml(topology.topogeometry,text,integer,integer);
- ALTER EXTENSION postgis_topology ADD function topology.asgml(topology.topogeometry,text,integer,integer,regclass);
- ALTER EXTENSION postgis_topology ADD function topology.asgml(topology.topogeometry,text,integer,integer,regclass,text);
- ALTER EXTENSION postgis_topology ADD function topology.asgml(topology.topogeometry,text,integer,integer,regclass,text,integer);
- ALTER EXTENSION postgis_topology ADD function topology.astopojson(topology.topogeometry,regclass);
- ALTER EXTENSION postgis_topology ADD function topology.cleartopogeom(topology.topogeometry);
- ALTER EXTENSION postgis_topology ADD function topology.copytopology(character varying,character varying);
- ALTER EXTENSION postgis_topology ADD function topology.createtopogeom(character varying,integer,integer);
- ALTER EXTENSION postgis_topology ADD function topology.createtopogeom(character varying,integer,integer,topology.topoelementarray);
- ALTER EXTENSION postgis_topology ADD function topology.createtopology(character varying);
- ALTER EXTENSION postgis_topology ADD function topology.createtopology(character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.createtopology(character varying,integer,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.createtopology(character varying,integer,double precision,boolean);
- ALTER EXTENSION postgis_topology ADD function topology.droptopogeometrycolumn(character varying,character varying,character varying);
- ALTER EXTENSION postgis_topology ADD function topology.droptopology(character varying);
- ALTER EXTENSION postgis_topology ADD function topology.equals(topology.topogeometry,topology.topogeometry);
- ALTER EXTENSION postgis_topology ADD function topology.geometry(topology.topogeometry);
- ALTER EXTENSION postgis_topology ADD function topology.geometrytype(topology.topogeometry);
- ALTER EXTENSION postgis_topology ADD function topology.getedgebypoint(character varying,geometry,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.getfacebypoint(character varying,geometry,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.getnodebypoint(character varying,geometry,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.getnodeedges(character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.getringedges(character varying,integer,integer);
- ALTER EXTENSION postgis_topology ADD function topology.gettopogeomelementarray(character varying,integer,integer);
- ALTER EXTENSION postgis_topology ADD function topology.gettopogeomelementarray(topology.topogeometry);
- ALTER EXTENSION postgis_topology ADD function topology.gettopogeomelements(character varying,integer,integer);
- ALTER EXTENSION postgis_topology ADD function topology.gettopogeomelements(topology.topogeometry);
- ALTER EXTENSION postgis_topology ADD function topology.gettopologyid(character varying);
- ALTER EXTENSION postgis_topology ADD function topology.gettopologyname(integer);
- ALTER EXTENSION postgis_topology ADD function topology.gettopologysrid(character varying);
- ALTER EXTENSION postgis_topology ADD function topology.intersects(topology.topogeometry,topology.topogeometry);
- ALTER EXTENSION postgis_topology ADD function topology.layertrigger();
- ALTER EXTENSION postgis_topology ADD function topology.polygonize(character varying);
- ALTER EXTENSION postgis_topology ADD function topology.postgis_topology_scripts_installed();
- ALTER EXTENSION postgis_topology ADD function topology.relationtrigger();
- ALTER EXTENSION postgis_topology ADD function topology.st_addedgemodface(character varying,integer,integer,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_addedgenewfaces(character varying,integer,integer,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_addisoedge(character varying,integer,integer,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_addisonode(character varying,integer,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_changeedgegeom(character varying,integer,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_createtopogeo(character varying,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_geometrytype(topology.topogeometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_getfaceedges(character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.st_getfacegeometry(character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.st_inittopogeo(character varying);
- ALTER EXTENSION postgis_topology ADD function topology.st_modedgeheal(character varying,integer,integer);
- ALTER EXTENSION postgis_topology ADD function topology.st_modedgesplit(character varying,integer,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_moveisonode(character varying,integer,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_newedgeheal(character varying,integer,integer);
- ALTER EXTENSION postgis_topology ADD function topology.st_newedgessplit(character varying,integer,geometry);
- ALTER EXTENSION postgis_topology ADD function topology.st_remedgemodface(character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.st_remedgenewface(character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.st_remisonode(character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.st_removeisoedge(character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.st_removeisonode(character varying,integer);
- ALTER EXTENSION postgis_topology ADD function topology.st_simplify(topology.topogeometry,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.topoelementarray_agg(topology.topoelement);
- ALTER EXTENSION postgis_topology ADD function topology.topoelementarray_append(topology.topoelementarray,topology.topoelement);
- ALTER EXTENSION postgis_topology ADD function topology.topogeo_addgeometry(character varying,geometry,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.topogeo_addlinestring(character varying,geometry,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.topogeo_addpoint(character varying,geometry,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.topogeo_addpolygon(character varying,geometry,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.topologysummary(character varying);
- ALTER EXTENSION postgis_topology ADD function topology.totopogeom(geometry,character varying,integer,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.totopogeom(geometry,topology.topogeometry,double precision);
- ALTER EXTENSION postgis_topology ADD function topology.validatetopology(character varying);
- ALTER EXTENSION postgis_topology ADD sequence topology.topology_id_seq;
- ALTER EXTENSION postgis_topology ADD table topology.layer;
- ALTER EXTENSION postgis_topology ADD table topology.topology;
- ALTER EXTENSION postgis_topology ADD type topology.getfaceedges_returntype;
- ALTER EXTENSION postgis_topology ADD type topology.topoelement;
- ALTER EXTENSION postgis_topology ADD type topology.topoelementarray;
- ALTER EXTENSION postgis_topology ADD type topology.topogeometry;
- ALTER EXTENSION postgis_topology ADD type topology.validatetopology_returntype;
-
diff --git a/extensions/upgradeable_versions.mk b/extensions/upgradeable_versions.mk
index a91f8f1..41f0bbc 100644
--- a/extensions/upgradeable_versions.mk
+++ b/extensions/upgradeable_versions.mk
@@ -6,33 +6,7 @@ UPGRADEABLE_VERSIONS = \
 	2.0.4 \
 	2.0.5 \
 	2.0.6 \
-	2.1.0rc1 \
-	2.1.0rc2 \
-	2.1.0rc3 \
-	2.1.0 \
-	2.1.1 \
-	2.1.2 \
-	2.1.3 \
-	2.1.4 \
-	2.1.5 \
-	2.1.6 \
-	2.1.7 \
-	2.1.8
-	
-UPGRADEABLE_VERSIONS_MINOR = \
-	2.0.0 \
-	2.0.1 \
-	2.0.2 \
-	2.0.3 \
-	2.0.4 \
-	2.0.5 \
-	2.0.6 \
-	2.0.7
-
-UPGRADEABLE_VERSIONS_PATCH = \
-	2.1.0rc1 \
-	2.1.0rc2 \
-	2.1.0rc3 \
+	2.0.7 \
 	2.1.0 \
 	2.1.1 \
 	2.1.2 \
diff --git a/extras/WFS_locks/WFS_locks.sql.in b/extras/WFS_locks/WFS_locks.sql.in
index a4c3c42..0c9f039 100644
--- a/extras/WFS_locks/WFS_locks.sql.in
+++ b/extras/WFS_locks/WFS_locks.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: WFS_locks.sql.in 13134 2014-12-01 08:47:21Z strk $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
diff --git a/extras/rpm/spec/postgis.spec b/extras/rpm/spec/postgis.spec
index 0b614e4..8595524 100644
--- a/extras/rpm/spec/postgis.spec
+++ b/extras/rpm/spec/postgis.spec
@@ -8,7 +8,7 @@ Version:	1.2.0
 Release:	2%{?dist}
 License:	GPL
 Group:		Applications/Databases
-Source0:	http://postgis.refractions.net/download/%{name}-%{version}.tar.gz
+Source0:	http://download.osgeo.org/postgis/source/%{name}-%{version}.tar.gz
 Source4:	filter-requires-perl-Pg.sh
 Patch1:		postgis-configure.patch
 Patch2:		postgis-javamakefile.patch
diff --git a/extras/tiger_geocoder/README b/extras/tiger_geocoder/README
index 248e945..7a88be6 100644
--- a/extras/tiger_geocoder/README
+++ b/extras/tiger_geocoder/README
@@ -1,62 +1,145 @@
-$Id: README 11651 2013-07-10 03:44:48Z robe $
-TIGER Geocoder
 
-  2013/07/09
+Installing The Tiger Geocoder
 
-  A plpgsql based geocoder written for TIGER census data.
+This is a customized version of Steve Frost's tiger geocoder revisions
+(http://www.snowman.net/git/tiger_geocoder/).
 
-Design:
+This version includes a loader that is portable between Linux and
+Windows but loads a full state of data at a time.  The loader helper tables and
+functions are prefixed with loader and stored in the tiger schema.  If
+you only want to load a county, revise the wget call that is generated
+for the state to just download the statewide and specific counties or
+just download them by hand.  The loader will only process files that
+exist.
 
-There are two components to the geocoder, the address normalizer and the
-address geocoder.  These two components are described separately.
+If you are on windows, you will need 7zip and wget.  7zip you can get
+from http://www.7-zip.org/ and wget you can get from
+http://gnuwin32.sourceforge.net/packages/wget.htm
 
-The goal of this project is to build a fully functional geocoder that can 
-process an arbitrary address string and, using normalized TIGER census data,
-produce a point geometry reflecting the location of the given address.
+Tiger Geocoder is now part of the PostGIS documentation
+for further details about function use, refer to:
+http://www.postgis.net/docs/manual-dev/Extras.html#Tiger_Geocoder
 
-- The geocoder should be simple for anyone familiar with PostGIS to install
-  and use.
-- It should be robust enough to function properly despite formatting and 
-  spelling errors.
-- It should be extensible enough to be used with future data updates, or
-  alternate data sources with a minimum of coding changes.
+Steps to install and load (without using extensions)
 
-Installation:
+1.  Create a PostGIS enabled db if you don't have one already
 
-	Refer to the README in the respective year tiger folder for installation and example usage.  The latest scripts as of this writing are for tiger_2012.
-	
+2.	From command line, cd into the tiger_geocoder_2011 folder
 
-Usage:
+3.  Edit the tiger_loader.sql to the paths of your executables server etc.
 
-	SELECT g.rating, g.geomout, (addy).* FROM geocode('address string') As g;
-	
-e.g: SELECT g.rating, 
-	ST_X(geomout) As lon, 
-	ST_Y(geomout) As lat, (addy).*  FROM geocode('1731 New Hampshire Avenue Northwest, Washington, DC 20010') As g;
+4.	Edit the create_geocode.bat or create_geocode.sh and run
+
+5.	Now add tiger schema to your database search path by doing
+something like: 
+ALTER DATABASE geocoder SET search_path=public, tiger;
+
+Steps using extensions:
+1. Create a PostGIS enabled db make sure you installed postgis with:
+CREATE EXTENSION postgis;
+
+2) Next:
+CREATE EXTENSION fuzzystrmatch;
+CREATE EXTENSION postgis_tiger_geocoder;
+
+Loading up data:
+
+1. Create a folder called gisdata on root of server or your local pc
+if you have a fast network connection to the server. This folder is
+where the tiger files will be downloaded to.
+
+2. Create a folder called temp in the gisdata folder.  This will be
+the folder where we extract the downloaded tiger data.
+
+3. Run the following commands at psql or pgAdmin III query window to
+generate the script, replacing 'DC', 'RI' with list of states you want
+and save contents to a .bat or sh file in YOUR CURRENT DIRECTORY. This
+will generate CODE for each state and append it to the script.
+
+(IF YOU ARE AT A PSQL PROMPT, FIRST RUN "\a", "\t", AND "\o
+script.xxx".  THIS WILL MAKE YOUR OUTPUT UNALIGNED AND REDIRECT IT TO
+script.xxx.  WITHOUT "\a" and "\t", THE SCRIPT WILL HAVE EXTRA
+WHITESPACE AND POSSIBLY NON-SCRIPT CHARACTERS THAT CAUSE IT TO BREAK.)
+
+-- UNIX /LINUX USERS --
+-- Note even if you want just specific states you need to 
+-- do this step since 2015 county, state tables are available only at national level
+SELECT loader_generate_nation_script('sh');  
 
-Notes:
+-- After the nation load, generate a bash script suitable for Unix command lines 
+-- for your desired states. 
 
-- The assumed format for the address is the US Postal Service standard:
-  () indicates a field required by the geocoder, [] indicates an optional field.
+SELECT loader_generate_script(ARRAY['DC','RI'], 'sh');
 
-	(address) [dirPrefix] (streetName) [streetType] [dirSuffix]
-	[internalAddress] [location] [state] [zipCode]
 
+ONCE YOU GENERATE THIS SCRIPT, EDIT IT TO ADD "set -e -u" AT THE TOP;
+THIS SETTING WILL MAKE IT STOP ON ERROR OR UNITIALIZED VARIABLE AND
+MAKE IT EASIER TO DEBUG ANY PROBLEMS.  
+THEN RUN THE SCRIPT AT THE COMMAND LINE, REDIRECTING STANDARD OUTPUT AND 
+STANDARD ERROR TO USEFUL FILES.  YOU MAY WANT TO RUN "tail -f " TO SEE THE 
+STANDARD ERROR AS IT GETS WRITTEN.  FOR EXAMPLE: 
 
+$ sh foo.sh 1>out 2>err; tail -f err
 
-Address Normalizer:
+-- WINDOWS USERS --
+--To generate a WINDOWS DOS script
+-- this will generate the script to download the national layers
+-- Note even if you want just specific states you need to 
+-- do this step since 2011 county, state tables are available only at national level
+SELECT loader_generate_nation_script('windows');  
 
-The goal of the address normalizer is to provide a robust function to break a
-given address string down into the components of an address.  While the
-normalizer is built specifically for the normalized US TIGER Census data,  it
-has been designed to be reasonably extensible to other data sets and localities.
+-- this you do after the nation load and for states you want
+SELECT loader_generate_script(ARRAY['DC','RI'], 'windows');
 
-Usage:
+If your script disappears without loading anything, 
+most likely one of your path settings is wrong. 
+To troubleshoot run the batch script by 
+first opening up a commandline and executing the file. 
 
-	normalize_address('address string');
-	
-	e.g.: SELECT naddy.* FROM normalize_address('29645 7th Street SW Federal Way 98023') AS naddy;
-	
-	 address | predirabbrev |      streetname       | streettypeabbrev | postdirabbrev | internal | location | stateabbrev |  zip  | parsed
-	 ---------+-------------+-----------------------+------------------+---------------+----------+----------+-------------+-------+--------
-     29645 |               | 7th Street SW Federal  | Way            |               |          |          |             | 98023 | 
\ No newline at end of file
+That will keep the window open for you to see the error.
+
+-- Next run the script to install any missing indexes --
+SELECT install_missing_indexes();
+
+Alternatively if you want to see what indexes will be created before
+you create them run the below and manually run the steps generated:
+SELECT missing_indexes_generate_script();
+
+
+9. Copy and paste the generated script into a .bat or .sh file and put
+in gisdata folder you created and then run it, OR IF YOU REDIRECTED
+THE OUTPUT TO A FILE WITH "\o" MOVE THAT FILE TO GISDATA.
+
+10. Test out the geocoder run these queries
+
+-- To get the best rated answer --
+-- this is generally faster
+SELECT g.rating, 
+	ST_X(geomout) As lon, 
+	ST_Y(geomout) As lat, (addy).* 
+FROM geocode('1731 New Hampshire Avenue Northwest, Washington, DC 20010', 1) As g;
+
+--To get multiple answers if there is more than 1
+SELECT g.rating, 
+	ST_X(geomout) As lon, 
+	ST_Y(geomout) As lat, (addy).* 
+FROM geocode('1731 New Hampshire Avenue Northwest, Washington, DC 20010') As g;
+
+STEPS TO UPGRADE YOUR INSTALL:
+If you need to upgrade the geocoder/tiger loader from a pre-release
+2.0.0 install -- run the upgrade_geocoder.sh or upgrade_geocoder.bat
+script.
+
+CAUTION: The upgrade script will drop any table columns that have a
+norm_addy type for a column type.  This is rare if ever done so you
+should be fine.  We plan to fix this later. It will also drop any
+customizations you have made to the tiger_loader configuration tables.
+To prevent this, you can remark out the install loader part.  This we
+plan to remedy in the future.
+
+It will also install any missing indexes that are deemed needed by
+queries.
+
+It will fail on some steps such as addition of new columns 
+to lookup tables if they already exist in your intall.  
+These errors can be safely ignored.
diff --git a/extras/tiger_geocoder/census_loader.sql b/extras/tiger_geocoder/census_loader.sql
new file mode 100644
index 0000000..c48ba8b
--- /dev/null
+++ b/extras/tiger_geocoder/census_loader.sql
@@ -0,0 +1,184 @@
+--
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2010, 2011 Regina Obe and Leo Hsu 
+-- Paragon Corporation
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
+--  
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--SET search_path TO tiger,public;
+SELECT tiger.SetSearchPathForInstall('tiger');
+CREATE OR REPLACE FUNCTION create_census_base_tables() 
+	RETURNS text AS
+$$
+DECLARE var_temp text; 
+BEGIN
+var_temp := tiger.SetSearchPathForInstall('tiger');
+IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND column_name = 'tract_id' AND table_name = 'tract')  THEN
+	-- census block group/tracts parent tables not created yet or an older version -- drop old if not in use, create new structure
+	DROP TABLE IF EXISTS tiger.tract;
+	CREATE TABLE tract
+	(
+	  gid serial NOT NULL,
+	  statefp varchar(2),
+	  countyfp varchar(3),
+	  tractce varchar(6),
+	  tract_id varchar(11) PRIMARY KEY,
+	  name varchar(7),
+	  namelsad varchar(20),
+	  mtfcc varchar(5),
+	  funcstat varchar(1),
+	  aland double precision,
+	  awater double precision,
+	  intptlat varchar(11),
+	  intptlon varchar(12),
+	  the_geom geometry,
+	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+	);
+	
+	DROP TABLE IF EXISTS tiger.tabblock;
+	CREATE TABLE tabblock
+	(
+	  gid serial NOT NULL,
+	  statefp varchar(2),
+	  countyfp varchar(3),
+	  tractce varchar(6),
+	  blockce varchar(4),
+	  tabblock_id varchar(16) PRIMARY KEY,
+	  name varchar(20),
+	  mtfcc varchar(5),
+	  ur varchar(1),
+	  uace varchar(5),
+	  funcstat varchar(1),
+	  aland double precision,
+	  awater double precision,
+	  intptlat varchar(11),
+	  intptlon varchar(12),
+	  the_geom geometry,
+	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+	);
+
+	DROP TABLE IF EXISTS tiger.bg;
+	CREATE TABLE bg
+	(
+	  gid serial NOT NULL,
+	  statefp varchar(2),
+	  countyfp varchar(3),
+	  tractce varchar(6),
+	  blkgrpce varchar(1),
+	  bg_id varchar(12) PRIMARY KEY,
+	  namelsad varchar(13),
+	  mtfcc varchar(5),
+	  funcstat varchar(1),
+	  aland double precision,
+	  awater double precision,
+	  intptlat varchar(11),
+	  intptlon varchar(12),
+	  the_geom geometry,
+	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+	);
+	COMMENT ON TABLE tiger.bg IS 'block groups';
+END IF;
+
+IF EXISTS(SELECT * FROM information_schema.columns WHERE table_schema = 'tiger' AND column_name = 'tabblock_id' AND table_name = 'tabblock' AND character_maximum_length < 16)  THEN -- size of name and tabblock_id fields need to be increased
+    ALTER TABLE tiger.tabblock ALTER COLUMN name TYPE varchar(20);
+    ALTER TABLE tiger.tabblock ALTER COLUMN tabblock_id TYPE varchar(16);
+    RAISE NOTICE 'Size of tabblock_id and name are being incrreased';
+END IF;
+RETURN 'Tables already present';
+END
+$$
+language 'plpgsql';
+
+DROP FUNCTION IF EXISTS loader_generate_census(text[], text);
+CREATE OR REPLACE FUNCTION loader_generate_census_script(param_states text[], os text)
+  RETURNS SETOF text AS
+$$
+SELECT create_census_base_tables();
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
+				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
+			), '/', platform.path_sep) || '
+' ||
+	-- State level files - if an override website is specified we use that instead of variable one
+	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
+	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
+				FROM loader_lookuptables AS lu
+				WHERE level_state = true AND load = true AND lookup_name IN('tract','bg','tabblock')
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	-- County Level files
+	|| E'\n' ||
+		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
+				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
+				FROM loader_lookuptables AS lu
+				WHERE level_county = true AND load = true AND lookup_name IN('tract','bg','tabblock')
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
+			AS shell_code
+FROM loader_variables As variables
+		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
+			 lpad(st_code::text,2,'0') || '_' 
+	|| replace(name, ' ', '_') As state_fold
+FROM state_lookup) As s CROSS JOIN loader_platform As platform
+WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
+AND platform.os = $2  -- generate script for selected platform
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+--update with census tract loading logic
+DELETE FROM loader_lookuptables WHERE lookup_name IN('tract','tabblock','bg');           
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(10, 'tract', 'tract', true, false, true,false, 'c', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (tract_id) ) INHERITS(tiger.${lookup_name}); " ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO tract_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); "
+	${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${state_abbrev}_${lookup_name};"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"', ARRAY['gid']);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(11, 'tabblock', 'tabblock', true, false, true,false, 'c', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (tabblock_id)) INHERITS(tiger.${lookup_name});" ',
+'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO tabblock_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''), ''{gid, statefp10, countyfp10, tractce10, blockce10,suffix1ce,blockce,tractce}''::text[]); "
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid']);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(12, 'bg', 'bg', true,false, true,false, 'c', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (bg_id)) INHERITS(tiger.${lookup_name});" ',
+'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO bg_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); "
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid']);
+
+
+SELECT create_census_base_tables();
diff --git a/extras/tiger_geocoder/create_geocode.bat b/extras/tiger_geocoder/create_geocode.bat
new file mode 100755
index 0000000..2f36e16
--- /dev/null
+++ b/extras/tiger_geocoder/create_geocode.bat
@@ -0,0 +1,19 @@
+set PGPORT=5432
+set PGHOST=localhost
+set PGUSER=postgres
+set PGPASSWORD=yourpasswordhere
+set THEDB=geocoder
+set PGBIN=C:\Program Files\PostgreSQL\9.1\bin
+set PGCONTRIB=C:\Program Files\PostgreSQL\9.1\share\contrib
+REM "%PGBIN%\psql" -d "%THEDB%" -f "%PGCONTRIB%\fuzzystrmatch.sql"
+REM If you are using PostgreSQL 9.1 or above, use the extension syntax instead as shown below
+"%PGBIN%\psql"  -d "%THEDB%" -c "CREATE EXTENSION fuzzystrmatch;" 
+"%PGBIN%\psql"  -d "%THEDB%" -c "CREATE SCHEMA tiger;"
+REM unremark this next line and edit if you want the search paths set as part of the install
+REM "%PGBIN%\psql" -d "%THEDB%" -c "ALTER DATABASE %THEDB% SET search_path=public, tiger;"
+"%PGBIN%\psql"  -d "%THEDB%" -f "create_geocode.sql"
+REM "%PGBIN%\psql"  -d "%THEDB%" -f "tables\lookup_tables_2011.sql"
+"%PGBIN%\psql"  -d "%THEDB%" -c "CREATE SCHEMA tiger_data;"
+"%PGBIN%\psql"  -d "%THEDB%" -f "tiger_loader_2015.sql;"
+pause
+
diff --git a/extras/tiger_geocoder/create_geocode.sh b/extras/tiger_geocoder/create_geocode.sh
new file mode 100755
index 0000000..0620962
--- /dev/null
+++ b/extras/tiger_geocoder/create_geocode.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+PGPORT=5432
+PGHOST=localhost
+PGUSER=postgres
+PGPASSWORD=yourpasswordhere
+THEDB=geocoder
+PSQL_CMD= /usr/lib/postgresql/9.4/bin/psql
+PGCONTRIB=/usr/share/postgresql/9.4/contrib
+#if you are on 9.1+ use the CREATE EXTENSION syntax instead
+${PSQL_CMD} -d "${THEDB}" -f "${PGCONTRIB}/fuzzystrmatch.sql"
+#${PSQL_CMD} -d "${THEDB}" -c "CREATE EXTENSION fuzzystrmatch" 
+${PSQL_CMD} -d "${THEDB}" -c "CREATE SCHEMA tiger"
+#unremark this next line and edit if you want the search paths set as part of the install
+#${PSQL_CMD} -d "${THEDB}" -c "ALTER DATABASE ${THEDB} SET search_path=public, tiger;"
+#${PSQL_CMD} -d "${THEDB}" -f "tables/lookup_tables_2011.sql"
+${PSQL_CMD} -d "${THEDB}" -c "CREATE SCHEMA tiger_data"
+${PSQL_CMD} -d "${THEDB}" -f "create_geocode.sql"
+${PSQL_CMD} -d "${THEDB}" -f "tiger_loader_2015.sql"
diff --git a/extras/tiger_geocoder/create_geocode.sql b/extras/tiger_geocoder/create_geocode.sql
new file mode 100644
index 0000000..78570d3
--- /dev/null
+++ b/extras/tiger_geocoder/create_geocode.sql
@@ -0,0 +1,85 @@
+--
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2010, 2011 Regina Obe and Leo Hsu
+-- Copyright (C) 2008 Stephen Frost (et al) 
+-- reintegrated back into PostGIS code base from Steven's git (http://www.snowman.net/git/tiger_geocoder/)
+-- Copyright Refractions Research
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+--  
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- Tiger is where we're going to create the functions, but we need
+-- the PostGIS functions/types which are in public.
+\i utility/set_search_path.sql;
+SELECT tiger.SetSearchPathForInstall('tiger');
+\i tables/lookup_tables_2011.sql
+\i geocode_settings.sql
+--SET search_path TO tiger,public;
+BEGIN;
+-- Type used to pass around a normalized address between functions
+-- This is s bit dangerous since it could potentially drop peoples tables
+-- TODO: put in logic to check if any tables have norm_addy and don't drop if they do
+DROP TYPE IF EXISTS norm_addy CASCADE;
+CREATE TYPE norm_addy AS (
+    address INTEGER,
+    preDirAbbrev VARCHAR,
+    streetName VARCHAR,
+    streetTypeAbbrev VARCHAR,
+    postDirAbbrev VARCHAR,
+    internal VARCHAR,
+    location VARCHAR,
+    stateAbbrev VARCHAR,
+    zip VARCHAR,
+    parsed BOOLEAN);
+
+-- System/General helper functions
+\i utility/utmzone.sql
+\i utility/cull_null.sql
+\i utility/nullable_levenshtein.sql
+\i utility/levenshtein_ignore_case.sql
+
+---- Address normalizer
+-- General helpers
+\i normalize/end_soundex.sql
+\i normalize/count_words.sql
+\i normalize/state_extract.sql
+\i normalize/get_last_words.sql
+-- Location extraction/normalization helpers
+\i normalize/location_extract_countysub_exact.sql
+\i normalize/location_extract_countysub_fuzzy.sql
+\i normalize/location_extract_place_exact.sql
+\i normalize/location_extract_place_fuzzy.sql
+\i normalize/location_extract.sql
+-- Normalization API, called by geocode mainly.
+\i normalize/normalize_address.sql
+\i normalize/pprint_addy.sql
+
+-- PAGC normalizer drop in replacement.
+\i pagc_normalize/pagc_tables.sql
+\i pagc_normalize/pagc_normalize_address.sql
+
+---- Geocoder functions
+-- General helpers
+\i geocode/other_helper_functions.sql
+\i geocode/rate_attributes.sql
+\i geocode/includes_address.sql
+\i geocode/interpolate_from_address.sql
+-- Actual lookups/geocoder helpers
+\i geocode/geocode_address.sql
+\i geocode/geocode_location.sql
+-- Geocode API, called by user
+\i geocode/geocode_intersection.sql
+\i geocode/geocode.sql
+
+-- Reverse Geocode API, called by user
+\i geocode/reverse_geocode.sql
+\i geocode/census_tracts_functions.sql
+COMMIT;
+
+-- Tiger to PostGIS Topology
+-- only useable if you have topology installed
+\i topology/tiger_topology_loader.sql
\ No newline at end of file
diff --git a/extras/tiger_geocoder/geocode/census_tracts_functions.sql b/extras/tiger_geocoder/geocode/census_tracts_functions.sql
new file mode 100644
index 0000000..3e82a50
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/census_tracts_functions.sql
@@ -0,0 +1,55 @@
+ /*** 
+ * 
+ * Copyright (C) 2012 Regina Obe and Leo Hsu (Paragon Corporation)
+ **/
+-- This function given a geometry try will try to determine the tract.
+-- It defaults to returning the tract name but can be changed to return track geoid id.
+-- pass in 'tract_id' to get the full geoid, 'name' to get the short decimal name
+
+CREATE OR REPLACE FUNCTION get_tract(IN loc_geom geometry, output_field text DEFAULT 'name')
+  RETURNS text AS
+$$
+DECLARE
+  var_state text := NULL;
+  var_stusps text := NULL;
+  var_result text := NULL;
+  var_loc_geom geometry;
+  var_stmt text;
+  var_debug boolean = false;
+BEGIN
+	IF loc_geom IS NULL THEN
+		RETURN null;
+	ELSE
+		IF ST_SRID(loc_geom) = 4269 THEN
+			var_loc_geom := loc_geom;
+		ELSIF ST_SRID(loc_geom) > 0 THEN
+			var_loc_geom := ST_Transform(loc_geom, 4269); 
+		ELSE --If srid is unknown, assume its 4269
+			var_loc_geom := ST_SetSRID(loc_geom, 4269);
+		END IF;
+		IF GeometryType(var_loc_geom) != 'POINT' THEN
+			var_loc_geom := ST_Centroid(var_loc_geom);
+		END IF;
+	END IF;
+	-- Determine state tables to check 
+	-- this is needed to take advantage of constraint exclusion
+	IF var_debug THEN
+		RAISE NOTICE 'Get matching states start: %', clock_timestamp();
+	END IF;
+	SELECT statefp, stusps INTO var_state, var_stusps FROM state WHERE ST_Intersects(the_geom, var_loc_geom) LIMIT 1;
+	IF var_debug THEN
+		RAISE NOTICE 'Get matching states end: % -  %', var_state, clock_timestamp();
+	END IF;
+	IF var_state IS NULL THEN
+		-- We don't have any data for this state
+		RAISE NOTICE 'No data for this state';
+		RETURN NULL;
+	END IF;
+	-- locate county
+	var_stmt := 'SELECT ' || quote_ident(output_field) || ' FROM tract WHERE statefp =  $1 AND ST_Intersects(the_geom, $2) LIMIT 1;';
+	EXECUTE var_stmt INTO var_result USING var_state, var_loc_geom ;
+	RETURN var_result;
+END;
+$$
+  LANGUAGE plpgsql IMMUTABLE
+  COST 500;
diff --git a/extras/tiger_geocoder/geocode/geocode.sql b/extras/tiger_geocoder/geocode/geocode.sql
new file mode 100644
index 0000000..9279fe7
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/geocode.sql
@@ -0,0 +1,130 @@
+CREATE OR REPLACE FUNCTION geocode(
+    input VARCHAR, max_results integer DEFAULT 10,
+    restrict_geom geometry DEFAULT NULL,
+    OUT ADDY NORM_ADDY,
+    OUT GEOMOUT GEOMETRY,
+    OUT RATING INTEGER
+) RETURNS SETOF RECORD
+AS $_$
+DECLARE
+  rec RECORD;
+BEGIN
+
+  IF input IS NULL THEN
+    RETURN;
+  END IF;
+
+  -- Pass the input string into the address normalizer
+  ADDY := normalize_address(input);
+  IF NOT ADDY.parsed THEN
+    RETURN;
+  END IF;
+
+/*  FOR rec IN SELECT * FROM geocode(ADDY)
+  LOOP
+
+    ADDY := rec.addy;
+    GEOMOUT := rec.geomout;
+    RATING := rec.rating;
+
+    RETURN NEXT;
+  END LOOP;*/
+ 
+  RETURN QUERY SELECT g.addy, g.geomout, g.rating FROM geocode(ADDY, max_results, restrict_geom) As g ORDER BY g.rating;
+
+END;
+$_$ LANGUAGE plpgsql STABLE;
+
+
+CREATE OR REPLACE FUNCTION geocode(
+    IN_ADDY NORM_ADDY, 
+    max_results integer DEFAULT 10,
+    restrict_geom geometry DEFAULT null,
+    OUT ADDY NORM_ADDY,
+    OUT GEOMOUT GEOMETRY,
+    OUT RATING INTEGER
+) RETURNS SETOF RECORD
+AS $_$
+DECLARE
+  rec RECORD;
+BEGIN
+
+  IF NOT IN_ADDY.parsed THEN
+    RETURN;
+  END IF;
+
+  -- Go for the full monty if we've got enough info
+  IF IN_ADDY.streetName IS NOT NULL AND
+      (IN_ADDY.zip IS NOT NULL OR IN_ADDY.stateAbbrev IS NOT NULL) THEN
+
+    FOR rec IN
+        SELECT *
+        FROM
+          (SELECT
+            DISTINCT ON (
+              (a.addy).address,
+              (a.addy).predirabbrev,
+              (a.addy).streetname,
+              (a.addy).streettypeabbrev,
+              (a.addy).postdirabbrev,
+              (a.addy).internal,
+              (a.addy).location,
+              (a.addy).stateabbrev,
+              (a.addy).zip
+              )
+            *
+           FROM
+             geocode_address(IN_ADDY, max_results, restrict_geom) a
+           ORDER BY
+              (a.addy).address,
+              (a.addy).predirabbrev,
+              (a.addy).streetname,
+              (a.addy).streettypeabbrev,
+              (a.addy).postdirabbrev,
+              (a.addy).internal,
+              (a.addy).location,
+              (a.addy).stateabbrev,
+              (a.addy).zip,
+              a.rating
+          ) as b
+        ORDER BY b.rating LIMIT max_results
+    LOOP
+
+      ADDY := rec.addy;
+      GEOMOUT := rec.geomout;
+      RATING := rec.rating;
+
+      RETURN NEXT;
+
+      IF RATING = 0 THEN
+        RETURN;
+      END IF;
+
+    END LOOP;
+
+    IF RATING IS NOT NULL THEN
+      RETURN;
+    END IF;
+  END IF;
+
+  -- No zip code, try state/location, need both or we'll get too much stuffs.
+  IF IN_ADDY.zip IS NOT NULL OR (IN_ADDY.stateAbbrev IS NOT NULL AND IN_ADDY.location IS NOT NULL) THEN
+    FOR rec in SELECT * FROM geocode_location(IN_ADDY, restrict_geom) As b ORDER BY b.rating LIMIT max_results
+    LOOP
+      ADDY := rec.addy;
+      GEOMOUT := rec.geomout;
+      RATING := rec.rating;
+
+      RETURN NEXT;
+      IF RATING = 100 THEN
+        RETURN;
+      END IF;
+    END LOOP;
+
+  END IF;
+
+  RETURN;
+
+END;
+$_$ LANGUAGE plpgsql STABLE
+  COST 1000;
diff --git a/extras/tiger_geocoder/geocode/geocode_address.sql b/extras/tiger_geocoder/geocode/geocode_address.sql
new file mode 100644
index 0000000..55af747
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/geocode_address.sql
@@ -0,0 +1,436 @@
+--DROP FUNCTION IF EXISTS geocode_address(norm_addy, integer , geometry);
+CREATE OR REPLACE FUNCTION geocode_address(IN parsed norm_addy, max_results integer DEFAULT 10, restrict_geom geometry DEFAULT NULL, OUT addy norm_addy, OUT geomout geometry, OUT rating integer)
+  RETURNS SETOF record AS
+$$
+DECLARE
+  results RECORD;
+  zip_info RECORD;
+  stmt VARCHAR;
+  in_statefp VARCHAR;
+  exact_street boolean := false;
+  var_debug boolean := get_geocode_setting('debug_geocode_address')::boolean;
+  var_sql text := '';
+  var_n integer := 0;
+  var_restrict_geom geometry := NULL;
+  var_bfilter text := null;
+  var_bestrating integer := NULL;
+BEGIN
+  IF parsed.streetName IS NULL THEN
+    -- A street name must be given.  Think about it.
+    RETURN;
+  END IF;
+
+  ADDY.internal := parsed.internal;
+
+  IF parsed.stateAbbrev IS NOT NULL THEN
+    in_statefp := statefp FROM state_lookup As s WHERE s.abbrev = parsed.stateAbbrev;
+  END IF;
+  
+  IF in_statefp IS NULL THEN 
+  --if state is not provided or was bogus, just pick the first where the zip is present
+    in_statefp := statefp FROM zip_lookup_base WHERE zip = substring(parsed.zip,1,5) LIMIT 1;
+  END IF;
+  
+  IF restrict_geom IS NOT NULL THEN
+  		IF ST_SRID(restrict_geom) < 1 OR ST_SRID(restrict_geom) = 4236 THEN 
+  		-- basically has no srid or if wgs84 close enough to NAD 83 -- assume same as data
+  			var_restrict_geom = ST_SetSRID(restrict_geom,4269);
+  		ELSE
+  		--transform and snap
+  			var_restrict_geom = ST_SnapToGrid(ST_Transform(restrict_geom, 4269), 0.000001);
+  		END IF;
+  END IF;
+  var_bfilter := ' SELECT zcta5ce FROM zcta5 AS zc  
+                    WHERE zc.statefp = ' || quote_nullable(in_statefp) || ' 
+                        AND ST_Intersects(zc.the_geom, ' || quote_literal(var_restrict_geom::text) || '::geometry)  ' ;
+
+  SELECT NULL::varchar[] As zip INTO zip_info;
+ 
+  IF parsed.zip IS NOT NULL  THEN
+  -- Create an array of 5 zips containing 2 before and 2 after our target if our streetName is longer
+    IF length(parsed.streetName) > 7 THEN
+        SELECT zip_range(parsed.zip, -2, 2) As zip INTO zip_info;
+    ELSE
+    -- If our street name is short, we'll run into many false positives so reduce our zip window a bit
+        SELECT zip_range(parsed.zip, -1, 1) As zip INTO zip_info;
+    END IF;
+    --This signals bad zip input, only use the range if it falls in the place zip range
+    IF length(parsed.zip) != 5 AND parsed.location IS NOT NULL THEN 
+         stmt := 'SELECT ARRAY(SELECT DISTINCT zip
+          FROM zip_lookup_base AS z
+         WHERE z.statefp = $1
+               AND  z.zip = ANY($3) AND lower(z.city) LIKE lower($2) || ''%''::text '  || COALESCE(' AND z.zip IN(' || var_bfilter || ')', '') || ')::varchar[] AS zip ORDER BY zip' ;
+         EXECUTE stmt INTO zip_info USING in_statefp, parsed.location, zip_info.zip;
+         IF var_debug THEN
+            RAISE NOTICE 'Bad zip newzip range: %', quote_nullable(zip_info.zip);
+         END IF;
+        IF array_upper(zip_info.zip,1) = 0 OR array_upper(zip_info.zip,1) IS NULL THEN
+        -- zips do not fall in city ignore them
+            IF var_debug THEN
+                RAISE NOTICE 'Ignore new zip range that is bad too: %', quote_nullable(zip_info.zip);
+            END IF;
+            zip_info.zip = NULL::varchar[];
+        END IF;
+    END IF;
+  END IF;
+  IF zip_info.zip IS NULL THEN
+  -- If no good zips just include all for the location
+  -- We do a like instead of absolute check since tiger sometimes tacks things like Town at end of places
+    stmt := 'SELECT ARRAY(SELECT DISTINCT zip
+          FROM zip_lookup_base AS z
+         WHERE z.statefp = $1
+               AND  lower(z.city) LIKE lower($2) || ''%''::text '  || COALESCE(' AND z.zip IN(' || var_bfilter || ')', '') || ')::varchar[] AS zip ORDER BY zip' ;
+    EXECUTE stmt INTO zip_info USING in_statefp, parsed.location;
+    IF var_debug THEN
+        RAISE NOTICE 'Zip range based on only considering city: %', quote_nullable(zip_info.zip);
+    END IF;
+  END IF;
+   -- Brute force -- try to find perfect matches and exit if we have one
+   -- we first pull all the names in zip and rank by if zip matches input zip and streetname matches street
+  stmt := 'WITH a AS
+  	( SELECT * 
+  		FROM (SELECT f.*, ad.side, ad.zip, ad.fromhn, ad.tohn,
+  					RANK() OVER(ORDER BY ' || CASE WHEN parsed.zip > '' THEN ' diff_zip(ad.zip,$7) + ' ELSE '' END
+						||' CASE WHEN lower(f.name) = lower($2) THEN 0 ELSE levenshtein_ignore_case(f.name, lower($2) )  END + 
+						levenshtein_ignore_case(f.fullname, lower($2 || '' '' || COALESCE($4,'''')) ) 
+						+ CASE WHEN (greatest_hn(ad.fromhn,ad.tohn) % 2)::integer = ($1 % 2)::integer THEN 0 ELSE 1 END
+						+ CASE WHEN $1::integer BETWEEN least_hn(ad.fromhn,ad.tohn) AND greatest_hn(ad.fromhn, ad.tohn) 
+							THEN 0 ELSE 4 END 
+							+ CASE WHEN lower($4) = lower(f.suftypabrv) OR lower($4) = lower(f.pretypabrv) THEN 0 ELSE 1 END
+							+ rate_attributes($5, f.predirabrv,'
+         || '    $2,  f.name , $4,'
+         || '    suftypabrv , $6,'
+         || '    sufdirabrv, prequalabr)  
+							)
+						As rank
+                		FROM featnames As f INNER JOIN addr As ad ON (f.tlid = ad.tlid) 
+                    WHERE $10 = f.statefp AND $10 = ad.statefp 
+                    	'
+                    || CASE WHEN length(parsed.streetName) > 5  THEN ' AND (lower(f.fullname) LIKE (COALESCE($5 || '' '','''') || lower($2) || ''%'')::text OR lower(f.name) = lower($2) OR soundex(f.name) = soundex($2) ) ' ELSE  ' AND lower(f.name) = lower($2) ' END 
+                    || CASE WHEN zip_info.zip IS NOT NULL THEN '    AND ( ad.zip = ANY($9::varchar[]) )  ' ELSE '' END 
+            || ' ) AS foo ORDER BY rank LIMIT ' || max_results*3 || ' ) 
+  	SELECT * FROM ( 
+    SELECT DISTINCT ON (sub.predirabrv,sub.fename,COALESCE(sub.suftypabrv, sub.pretypabrv) ,sub.sufdirabrv,sub.place,s.stusps,sub.zip)'
+         || '    sub.predirabrv   as fedirp,'
+         || '    sub.fename,'
+         || '    COALESCE(sub.suftypabrv, sub.pretypabrv)   as fetype,'
+         || '    sub.sufdirabrv   as fedirs,'
+         || '    sub.place ,'
+         || '    s.stusps as state,'
+         || '    sub.zip as zip,'
+         || '    interpolate_from_address($1, sub.fromhn,'
+         || '        sub.tohn, sub.the_geom, sub.side) as address_geom,'
+         || '       sub.sub_rating + '
+         || CASE WHEN parsed.zip > '' THEN '  least(coalesce(diff_zip($7 , sub.zip),0), 10)::integer  '
+            ELSE '1' END::text 
+         || ' + coalesce(levenshtein_ignore_case($3, sub.place),5)'
+         || '    as sub_rating,'
+         || '    sub.exact_address as exact_address, sub.tohn, sub.fromhn '
+         || ' FROM ('
+         || '  SELECT tlid, predirabrv, COALESCE(b.prequalabr || '' '','''' ) || b.name As fename, suftypabrv, sufdirabrv, fromhn, tohn, 
+                    side,  zip, rate_attributes($5, predirabrv,'
+         || '    $2,  b.name , $4,'
+         || '    suftypabrv , $6,'
+         || '    sufdirabrv, prequalabr) + '
+         || '    CASE '
+         || '        WHEN $1::integer IS NULL OR b.fromhn IS NULL THEN 20'
+         || '        WHEN $1::integer >= least_hn(b.fromhn, b.tohn) '
+         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn)'
+         || '            AND ($1::integer % 2) = (to_number(b.fromhn,''99999999'') % 2)::integer'
+         || '            THEN 0'
+         || '        WHEN $1::integer >= least_hn(b.fromhn,b.tohn)'
+         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn)'
+         || '            THEN 2'
+         || '        ELSE'
+         || '            ((1.0 - '
+         ||              '(least_hn($1::text,least_hn(b.fromhn,b.tohn)::text)::numeric /'
+         ||              ' (greatest(1,greatest_hn($1::text,greatest_hn(b.fromhn,b.tohn)::text))) )'
+         ||              ') * 5)::integer + 5'
+         || '        END'
+         || '    as sub_rating,$1::integer >= least_hn(b.fromhn,b.tohn) '
+         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn) '
+         || '            AND ($1 % 2)::numeric::integer = (to_number(b.fromhn,''99999999'') % 2)'
+         || '    as exact_address, b.name, b.prequalabr, b.pretypabrv, b.tfidr, b.tfidl, b.the_geom, b.place '
+         || '  FROM 
+             (SELECT   a.tlid, a.fullname, a.name, a.predirabrv, a.suftypabrv, a.sufdirabrv, a.prequalabr, a.pretypabrv, 
+                b.the_geom, tfidr, tfidl,
+                a.side ,
+                a.fromhn,
+                a.tohn,
+                a.zip,
+                p.name as place
+
+                FROM  a INNER JOIN edges As b ON (a.statefp = b.statefp AND a.tlid = b.tlid  '
+               || ')
+                    INNER JOIN faces AS f ON ($10 = f.statefp AND ( (b.tfidl = f.tfid AND a.side = ''L'') OR (b.tfidr = f.tfid AND a.side = ''R'' ) )) 
+                    INNER JOIN place p ON ($10 = p.statefp AND f.placefp = p.placefp ' 
+          || CASE WHEN parsed.location > '' AND zip_info.zip IS NULL THEN ' AND ( lower(p.name) LIKE (lower($3::text) || ''%'')  ) ' ELSE '' END          
+          || ')
+                WHERE a.statefp = $10  AND  b.statefp = $10   '
+             ||   CASE WHEN var_restrict_geom IS NOT NULL THEN ' AND ST_Intersects(b.the_geom, $8::geometry) '  ELSE '' END 
+             || '
+
+          )   As b  
+           ORDER BY 10 ,  11 DESC 
+           LIMIT 20 
+            ) AS sub 
+          JOIN state s ON ($10 = s.statefp) 
+            ORDER BY 1,2,3,4,5,6,7,9 
+          LIMIT 20) As foo ORDER BY sub_rating, exact_address DESC LIMIT  ' || max_results*10 ;
+         
+  IF var_debug THEN
+         RAISE NOTICE 'stmt: %', 
+            replace(replace( replace(
+                replace(
+                replace(replace( replace(replace(replace(replace(stmt, '$10', quote_nullable(in_statefp) ), '$2',quote_nullable(parsed.streetName)),'$3', 
+                quote_nullable(parsed.location)), '$4', quote_nullable(parsed.streetTypeAbbrev) ), 
+                '$5', quote_nullable(parsed.preDirAbbrev) ),
+                   '$6', quote_nullable(parsed.postDirAbbrev) ),
+                   '$7', quote_nullable(parsed.zip) ),
+                   '$8', quote_nullable(var_restrict_geom::text) ),
+                   '$9', quote_nullable(zip_info.zip) ), '$1', quote_nullable(parsed.address) );
+        --RAISE NOTICE 'PREPARE query_base_geo(integer, varchar,varchar,varchar,varchar,varchar,varchar,geometry,varchar[]) As %', stmt;
+        --RAISE NOTICE 'EXECUTE query_base_geo(%,%,%,%,%,%,%,%,%); ', parsed.address,quote_nullable(parsed.streetName), quote_nullable(parsed.location), quote_nullable(parsed.streetTypeAbbrev), quote_nullable(parsed.preDirAbbrev), quote_nullable(parsed.postDirAbbrev), quote_nullable(parsed.zip), quote_nullable(var_restrict_geom::text), quote_nullable(zip_info.zip);
+        --RAISE NOTICE 'DEALLOCATE query_base_geo;';
+    END IF;
+    FOR results IN EXECUTE stmt USING parsed.address,parsed.streetName, parsed.location, parsed.streetTypeAbbrev, parsed.preDirAbbrev, parsed.postDirAbbrev, parsed.zip, var_restrict_geom, zip_info.zip, in_statefp LOOP
+      
+        -- If we found a match with an exact street, then don't bother
+        -- trying to do non-exact matches
+    
+        exact_street := true;    
+        
+        IF results.exact_address THEN
+            ADDY.address := parsed.address;
+        ELSE
+            ADDY.address := CASE WHEN parsed.address > to_number(results.tohn,'99999999') AND parsed.address > to_number(results.fromhn, '99999999') THEN greatest_hn(results.fromhn, results.tohn)::integer
+                ELSE least_hn(results.fromhn, results.tohn)::integer END ;
+        END IF;
+        
+        ADDY.preDirAbbrev     := results.fedirp;
+        ADDY.streetName       := results.fename;
+        ADDY.streetTypeAbbrev := results.fetype;
+        ADDY.postDirAbbrev    := results.fedirs;
+        ADDY.location         := results.place;
+        ADDY.stateAbbrev      := results.state;
+        ADDY.zip              := results.zip;
+        ADDY.parsed := TRUE;
+        
+        GEOMOUT := results.address_geom;
+        RATING := results.sub_rating;
+        var_n := var_n + 1;
+        
+        IF var_bestrating IS NULL THEN
+            var_bestrating := RATING; /** the first record to come is our best rating we will ever get **/
+        END IF;
+        
+        -- Only consider matches with decent ratings
+        IF RATING < 90 THEN
+            RETURN NEXT;
+        END IF;
+        
+        -- If we get an exact match, then just return that
+        IF RATING = 0 THEN
+            RETURN;
+        END IF;
+    
+        IF var_n >= max_results AND RATING < 10  THEN --we have exceeded our desired limit and rating is not horrible
+            RETURN;
+        END IF;
+    
+    END LOOP;
+    
+    IF var_bestrating < 30 THEN --if we already have a match with a rating of 30 or less, its unlikely we can do any better
+        RETURN;
+    END IF;
+    
+
+-- There are a couple of different things to try, from the highest preference and falling back
+  -- to lower-preference options.
+  -- We start out with zip-code matching, where the zip code could possibly be in more than one
+  -- state.  We loop through each state its in.
+  -- Next, we try to find the location in our side-table, which is based off of the 'place' data exact first then sounds like
+  -- Next, we look up the location/city and use the zip code which is returned from that
+  -- Finally, if we didn't get a zip code or a city match, we fall back to just a location/street
+  -- lookup to try and find *something* useful.
+  -- In the end, we *have* to find a statefp, one way or another.
+  var_sql := 
+  ' SELECT statefp,location,a.zip,exact,min(pref) FROM
+    (SELECT zip_state.statefp as statefp,$1 as location, true As exact, ARRAY[zip_state.zip] as zip,1 as pref
+        FROM zip_state WHERE zip_state.zip = $2 
+            AND (' || quote_nullable(in_statefp) || ' IS NULL OR zip_state.statefp = ' || quote_nullable(in_statefp) || ')
+          ' || COALESCE(' AND zip_state.zip IN(' || var_bfilter || ')', '') ||
+        ' UNION SELECT zip_state_loc.statefp,zip_state_loc.place As location,false As exact, array_agg(zip_state_loc.zip) AS zip,1 + abs(COALESCE(diff_zip(max(zip), $2),0) - COALESCE(diff_zip(min(zip), $2),0)) As pref
+              FROM zip_state_loc
+             WHERE zip_state_loc.statefp = ' || quote_nullable(in_statefp) || ' 
+                   AND lower($1) = lower(zip_state_loc.place) '  || COALESCE(' AND zip_state_loc.zip IN(' || var_bfilter || ')', '') ||
+        '     GROUP BY zip_state_loc.statefp,zip_state_loc.place
+      UNION SELECT zip_state_loc.statefp,zip_state_loc.place As location,false As exact, array_agg(zip_state_loc.zip),3
+              FROM zip_state_loc
+             WHERE zip_state_loc.statefp = ' || quote_nullable(in_statefp) || '
+                   AND soundex($1) = soundex(zip_state_loc.place)
+             GROUP BY zip_state_loc.statefp,zip_state_loc.place
+      UNION SELECT zip_lookup_base.statefp,zip_lookup_base.city As location,false As exact, array_agg(zip_lookup_base.zip),4
+              FROM zip_lookup_base
+             WHERE zip_lookup_base.statefp = ' || quote_nullable(in_statefp) || '
+                         AND (soundex($1) = soundex(zip_lookup_base.city) OR soundex($1) = soundex(zip_lookup_base.county))
+             GROUP BY zip_lookup_base.statefp,zip_lookup_base.city
+      UNION SELECT ' || quote_nullable(in_statefp) || ' As statefp,$1 As location,false As exact,NULL, 5) as a ' 
+      ' WHERE a.statefp IS NOT NULL 
+      GROUP BY statefp,location,a.zip,exact, pref ORDER BY exact desc, pref, zip';
+  /** FOR zip_info IN     SELECT statefp,location,zip,exact,min(pref) FROM
+    (SELECT zip_state.statefp as statefp,parsed.location as location, true As exact, ARRAY[zip_state.zip] as zip,1 as pref
+        FROM zip_state WHERE zip_state.zip = parsed.zip 
+            AND (in_statefp IS NULL OR zip_state.statefp = in_statefp)
+        UNION SELECT zip_state_loc.statefp,parsed.location,false As exact, array_agg(zip_state_loc.zip),2 + diff_zip(zip[1], parsed.zip)
+              FROM zip_state_loc
+             WHERE zip_state_loc.statefp = in_statefp
+                   AND lower(parsed.location) = lower(zip_state_loc.place)
+             GROUP BY zip_state_loc.statefp,parsed.location
+      UNION SELECT zip_state_loc.statefp,parsed.location,false As exact, array_agg(zip_state_loc.zip),3
+              FROM zip_state_loc
+             WHERE zip_state_loc.statefp = in_statefp
+                   AND soundex(parsed.location) = soundex(zip_state_loc.place)
+             GROUP BY zip_state_loc.statefp,parsed.location
+      UNION SELECT zip_lookup_base.statefp,parsed.location,false As exact, array_agg(zip_lookup_base.zip),4
+              FROM zip_lookup_base
+             WHERE zip_lookup_base.statefp = in_statefp
+                         AND (soundex(parsed.location) = soundex(zip_lookup_base.city) OR soundex(parsed.location) = soundex(zip_lookup_base.county))
+             GROUP BY zip_lookup_base.statefp,parsed.location
+      UNION SELECT in_statefp,parsed.location,false As exact,NULL, 5) as a
+        --JOIN (VALUES (true),(false)) as b(exact) on TRUE
+      WHERE statefp IS NOT NULL
+      GROUP BY statefp,location,zip,exact, pref ORDER BY exact desc, pref, zip  **/
+  FOR zip_info IN EXECUTE var_sql USING parsed.location, parsed.zip  LOOP
+  -- For zip distance metric we consider both the distance of zip based on numeric as well aa levenshtein
+  -- We use the prequalabr (these are like Old, that may or may not appear in front of the street name)
+  -- We also treat pretypabr as fetype since in normalize we treat these as streetypes  and highways usually have the type here
+  -- In pprint_addy we changed to put it in front if it is a is_hw type
+    stmt := 'SELECT DISTINCT ON (sub.predirabrv,sub.fename,COALESCE(sub.suftypabrv, sub.pretypabrv) ,sub.sufdirabrv,coalesce(p.name,zip.city,cs.name,co.name),s.stusps,sub.zip)'
+         || '    sub.predirabrv   as fedirp,'
+         || '    sub.fename,'
+         || '    COALESCE(sub.suftypabrv, sub.pretypabrv)   as fetype,'
+         || '    sub.sufdirabrv   as fedirs,'
+         || '    coalesce(p.name,zip.city,cs.name,co.name)::varchar as place,'
+         || '    s.stusps as state,'
+         || '    sub.zip as zip,'
+         || '    interpolate_from_address($1, sub.fromhn,'
+         || '        sub.tohn, e.the_geom, sub.side) as address_geom,'
+         || '       sub.sub_rating + '
+         || CASE WHEN parsed.zip > '' THEN '  least((coalesce(diff_zip($7 , sub.zip),0) *1.00/2)::integer, coalesce(levenshtein_ignore_case($7, sub.zip),0) ) '
+            ELSE '3' END::text 
+         || ' + coalesce(least(levenshtein_ignore_case($3, coalesce(p.name,zip.city,cs.name,co.name)), levenshtein_ignore_case($3, coalesce(cs.name,co.name))),5)'
+         || '    as sub_rating,'
+         || '    sub.exact_address as exact_address '
+         || ' FROM ('
+         || '  SELECT a.tlid, predirabrv, COALESCE(a.prequalabr || '' '','''' ) || a.name As fename, suftypabrv, sufdirabrv, fromhn, tohn, 
+                    side, a.statefp, zip, rate_attributes($5, a.predirabrv,'
+         || '    $2,  a.name , $4,'
+         || '    a.suftypabrv , $6,'
+         || '    a.sufdirabrv, a.prequalabr) + '
+         || '    CASE '
+         || '        WHEN $1::integer IS NULL OR b.fromhn IS NULL THEN 20'
+         || '        WHEN $1::integer >= least_hn(b.fromhn, b.tohn) '
+         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn)'
+         || '            AND ($1::integer % 2) = (to_number(b.fromhn,''99999999'') % 2)::integer'
+         || '            THEN 0'
+         || '        WHEN $1::integer >= least_hn(b.fromhn,b.tohn)'
+         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn)'
+         || '            THEN 2'
+         || '        ELSE'
+         || '            ((1.0 - '
+         ||              '(least_hn($1::text,least_hn(b.fromhn,b.tohn)::text)::numeric /'
+         ||              ' greatest(1,greatest_hn($1::text,greatest_hn(b.fromhn,b.tohn)::text)))'
+         ||              ') * 5)::integer + 5'
+         || '        END'
+         || '    as sub_rating,$1::integer >= least_hn(b.fromhn,b.tohn) '
+         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn) '
+         || '            AND ($1 % 2)::numeric::integer = (to_number(b.fromhn,''99999999'') % 2)'
+         || '    as exact_address, a.name, a.prequalabr, a.pretypabrv '
+         || '  FROM featnames a join addr b ON (a.tlid = b.tlid AND a.statefp = b.statefp  )'
+         || '  WHERE'
+         || '        a.statefp = ' || quote_literal(zip_info.statefp) || ' AND a.mtfcc LIKE ''S%''  '
+         || coalesce('    AND b.zip IN (''' || array_to_string(zip_info.zip,''',''') || ''') ','')
+         || CASE WHEN zip_info.exact
+                 THEN '    AND ( lower($2) = lower(a.name) OR  ( a.prequalabr > '''' AND trim(lower($2), lower(a.prequalabr) || '' '') = lower(a.name) ) OR numeric_streets_equal($2, a.name) ) '
+                 ELSE '    AND ( soundex($2) = soundex(a.name)  OR ( (length($2) > 15 or (length($2) > 7 AND a.prequalabr > '''') ) AND lower(a.fullname) LIKE lower(substring($2,1,15)) || ''%'' ) OR  numeric_streets_equal($2, a.name) ) '
+            END
+         || '  ORDER BY 11'
+         || '  LIMIT 20'
+         || '    ) AS sub'
+         || '  JOIN edges e ON (' || quote_literal(zip_info.statefp) || ' = e.statefp AND sub.tlid = e.tlid AND e.mtfcc LIKE ''S%'' ' 
+         ||   CASE WHEN var_restrict_geom IS NOT NULL THEN ' AND ST_Intersects(e.the_geom, $8) '  ELSE '' END || ') '
+         || '  JOIN state s ON (' || quote_literal(zip_info.statefp) || ' = s.statefp)'
+         || '  JOIN faces f ON (' || quote_literal(zip_info.statefp) || ' = f.statefp AND (e.tfidl = f.tfid OR e.tfidr = f.tfid))'
+         || '  LEFT JOIN zip_lookup_base zip ON (sub.zip = zip.zip AND zip.statefp=' || quote_literal(zip_info.statefp) || ')'
+         || '  LEFT JOIN place p ON (' || quote_literal(zip_info.statefp) || ' = p.statefp AND f.placefp = p.placefp)'
+         || '  LEFT JOIN county co ON (' || quote_literal(zip_info.statefp) || ' = co.statefp AND f.countyfp = co.countyfp)'
+         || '  LEFT JOIN cousub cs ON (' || quote_literal(zip_info.statefp) || ' = cs.statefp AND cs.cosbidfp = sub.statefp || co.countyfp || f.cousubfp)'
+         || ' WHERE'
+         || '  ( (sub.side = ''L'' and e.tfidl = f.tfid) OR (sub.side = ''R'' and e.tfidr = f.tfid) ) '
+         || ' ORDER BY 1,2,3,4,5,6,7,9'
+         || ' LIMIT 10'
+         ;
+    IF var_debug THEN
+        RAISE NOTICE '%', stmt;
+        RAISE NOTICE 'PREPARE query_base_geo(integer, varchar,varchar,varchar,varchar,varchar,varchar,geometry) As %', stmt;
+        RAISE NOTICE 'EXECUTE query_base_geo(%,%,%,%,%,%,%,%); ', parsed.address,quote_nullable(parsed.streetName), quote_nullable(parsed.location), quote_nullable(parsed.streetTypeAbbrev), quote_nullable(parsed.preDirAbbrev), quote_nullable(parsed.postDirAbbrev), quote_nullable(parsed.zip), quote_nullable(var_restrict_geom::text);
+        RAISE NOTICE 'DEALLOCATE query_base_geo;';
+    END IF;
+    -- If we got an exact street match then when we hit the non-exact
+    -- set of tests, just drop out.
+    IF NOT zip_info.exact AND exact_street THEN
+        RETURN;
+    END IF;
+
+    FOR results IN EXECUTE stmt USING parsed.address,parsed.streetName, parsed.location, parsed.streetTypeAbbrev, parsed.preDirAbbrev, parsed.postDirAbbrev, parsed.zip, var_restrict_geom LOOP
+
+      -- If we found a match with an exact street, then don't bother
+      -- trying to do non-exact matches
+      IF zip_info.exact THEN
+        exact_street := true;
+      END IF;
+
+      IF results.exact_address THEN
+        ADDY.address := parsed.address;
+      ELSE
+        ADDY.address := NULL;
+      END IF;
+
+      ADDY.preDirAbbrev     := results.fedirp;
+      ADDY.streetName       := results.fename;
+      ADDY.streetTypeAbbrev := results.fetype;
+      ADDY.postDirAbbrev    := results.fedirs;
+      ADDY.location         := results.place;
+      ADDY.stateAbbrev      := results.state;
+      ADDY.zip              := results.zip;
+      ADDY.parsed := TRUE;
+
+      GEOMOUT := results.address_geom;
+      RATING := results.sub_rating;
+      var_n := var_n + 1;
+      
+      -- If our ratings go above 99 exit because its a really bad match
+      IF RATING > 99 THEN
+        RETURN;
+      END IF;
+
+      RETURN NEXT;
+
+      -- If we get an exact match, then just return that
+      IF RATING = 0 THEN
+        RETURN;
+      END IF;
+
+    END LOOP;
+    IF var_n > max_results  THEN --we have exceeded our desired limit
+        RETURN;
+    END IF;
+  END LOOP;
+
+  RETURN;
+END;
+$$
+  LANGUAGE 'plpgsql' STABLE COST 1000 ROWS 50;
+ALTER FUNCTION geocode_address(IN norm_addy, IN integer, IN geometry) SET join_collapse_limit='2';
+
diff --git a/extras/tiger_geocoder/geocode/geocode_intersection.sql b/extras/tiger_geocoder/geocode/geocode_intersection.sql
new file mode 100644
index 0000000..a716566
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/geocode_intersection.sql
@@ -0,0 +1,148 @@
+ /*** 
+ * 
+ * Copyright (C) 2011 Regina Obe and Leo Hsu (Paragon Corporation)
+ **/
+-- This function given two roadways, state and optional city, zip
+-- Will return addresses that are at the intersecton of those roadways
+-- The address returned will be the address on the first road way
+-- Use case example an address at the intersection of 2 streets: 
+-- SELECT pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('School St', 'Washington St', 'MA', 'Boston','02117');
+--DROP FUNCTION tiger.geocode_intersection(text,text,text,text,text,integer);
+CREATE OR REPLACE FUNCTION geocode_intersection(IN roadway1 text, IN roadway2 text, IN in_state text, IN in_city text DEFAULT '', IN in_zip text DEFAULT '', 
+IN num_results integer DEFAULT 10,  OUT ADDY NORM_ADDY,
+    OUT GEOMOUT GEOMETRY,
+    OUT RATING INTEGER) RETURNS SETOF record AS
+$$
+DECLARE
+    var_na_road norm_addy;
+    var_na_inter1 norm_addy;
+    var_sql text := '';
+    var_zip varchar(5)[];
+    in_statefp varchar(2) ; 
+    var_debug boolean := get_geocode_setting('debug_geocode_intersection')::boolean;
+    results record;
+BEGIN
+    IF COALESCE(roadway1,'') = '' OR COALESCE(roadway2,'') = '' THEN
+        -- not enough to give a result just return
+        RETURN ;
+    ELSE
+        var_na_road := normalize_address('0 ' || roadway1 || ', ' || COALESCE(in_city,'') || ', ' || in_state || ' ' || in_zip);
+        var_na_inter1  := normalize_address('0 ' || roadway2 || ', ' || COALESCE(in_city,'') || ', ' || in_state || ' ' || in_zip);
+    END IF;
+    in_statefp := statefp FROM state_lookup As s WHERE s.abbrev = upper(in_state);
+    IF COALESCE(in_zip,'') > '' THEN -- limit search to 2 plus or minus the input zip
+        var_zip := zip_range(in_zip, -2,2);
+    END IF;
+
+    IF var_zip IS NULL AND in_city > '' THEN
+        var_zip := array_agg(zip) FROM zip_lookup_base WHERE statefp = in_statefp AND lower(city) = lower(in_city);
+    END IF;
+    
+    -- if we don't have a city or zip, don't bother doing the zip check, just keep as null
+    IF var_zip IS NULL AND in_city > '' THEN
+        var_zip := array_agg(zip) FROM zip_lookup_base WHERE statefp = in_statefp AND lower(city) LIKE lower(in_city) || '%'  ;
+    END IF; 
+    IF var_debug THEN
+		RAISE NOTICE 'var_zip: %, city: %', quote_nullable(var_zip), quote_nullable(in_city);	
+    END IF;
+    var_sql := '
+    WITH 
+    	a1 AS (SELECT f.*, addr.fromhn, addr.tohn, addr.side , addr.zip
+    				FROM (SELECT * FROM featnames 
+    							WHERE statefp = $1 AND ( lower(name) = $2  ' ||
+    							CASE WHEN length(var_na_road.streetName) > 5 THEN ' or  lower(fullname) LIKE $6 || ''%'' ' ELSE '' END || ')' 
+    							|| ')  AS f LEFT JOIN (SELECT * FROM addr WHERE addr.statefp = $1) As addr ON (addr.tlid = f.tlid AND addr.statefp = f.statefp)
+    					WHERE $5::text[] IS NULL OR addr.zip = ANY($5::text[]) OR addr.zip IS NULL 
+    				ORDER BY CASE WHEN lower(f.fullname) = $6 THEN 0 ELSE 1 END
+    				LIMIT 50000
+    			  ),
+        a2 AS (SELECT f.*, addr.fromhn, addr.tohn, addr.side , addr.zip
+    				FROM (SELECT * FROM featnames 
+    							WHERE statefp = $1 AND ( lower(name) = $4 ' || 
+    							CASE WHEN length(var_na_inter1.streetName) > 5 THEN ' or lower(fullname) LIKE $7 || ''%'' ' ELSE '' END || ')' 
+    							|| ' )  AS f LEFT JOIN (SELECT * FROM addr WHERE addr.statefp = $1) AS addr ON (addr.tlid = f.tlid AND addr.statefp = f.statefp)
+    					WHERE $5::text[] IS NULL OR addr.zip = ANY($5::text[])  or addr.zip IS NULL 
+    			ORDER BY CASE WHEN lower(f.fullname) = $7 THEN 0 ELSE 1 END
+    				LIMIT 50000
+    			  ),
+    	 e1 AS (SELECT e.the_geom, e.tnidf, e.tnidt, a.*,
+    	 			CASE WHEN a.side = ''L'' THEN e.tfidl ELSE e.tfidr END AS tfid
+    	 			FROM a1 As a
+    					INNER JOIN  edges AS e ON (e.statefp = a.statefp AND a.tlid = e.tlid)
+    				WHERE e.statefp = $1 
+    				ORDER BY CASE WHEN lower(a.name) = $4 THEN 0 ELSE 1 END + CASE WHEN lower(e.fullname) = $7 THEN 0 ELSE 1 END
+    				LIMIT 5000) ,
+    	e2 AS (SELECT e.the_geom, e.tnidf, e.tnidt, a.*,
+    	 			CASE WHEN a.side = ''L'' THEN e.tfidl ELSE e.tfidr END AS tfid
+    				FROM (SELECT * FROM edges WHERE statefp = $1) AS e INNER JOIN a2 AS a ON (e.statefp = a.statefp AND a.tlid = e.tlid)
+    					INNER JOIN e1 ON (e.statefp = e1.statefp AND ST_Intersects(e.the_geom, e1.the_geom) 
+    					AND ARRAY[e.tnidf, e.tnidt] && ARRAY[e1.tnidf, e1.tnidt] )
+    					
+    				WHERE (lower(e.fullname) = $7 or lower(a.name) LIKE $4 || ''%'')
+    				ORDER BY CASE WHEN lower(a.name) = $4 THEN 0 ELSE 1 END + CASE WHEN lower(e.fullname) = $7 THEN 0 ELSE 1 END
+    				LIMIT 5000
+    				), 
+    	segs AS (SELECT DISTINCT ON(e1.tlid, e1.side)
+                   CASE WHEN e1.tnidf = e2.tnidf OR e1.tnidf = e2.tnidt THEN
+                                e1.fromhn
+                            ELSE
+                                e1.tohn END As address, e1.predirabrv As fedirp, COALESCE(e1.prequalabr || '' '','''' ) || e1.name As fename, 
+                             COALESCE(e1.suftypabrv,e1.pretypabrv)  As fetype, e1.sufdirabrv AS fedirs, 
+                               p.name As place, e1.zip,
+                             CASE WHEN e1.tnidf = e2.tnidf OR e1.tnidf = e2.tnidt THEN
+                                ST_StartPoint(ST_GeometryN(ST_Multi(e1.the_geom),1))
+                             ELSE ST_EndPoint(ST_GeometryN(ST_Multi(e1.the_geom),1)) END AS geom ,   
+                                CASE WHEN lower(p.name) = $3 THEN 0 ELSE 1 END  
+                                + levenshtein_ignore_case(p.name, $3) 
+                                + levenshtein_ignore_case(e1.name || COALESCE('' '' || e1.sufqualabr, ''''),$2) +
+                                CASE WHEN e1.fullname = $6 THEN 0 ELSE levenshtein_ignore_case(e1.fullname, $6) END +
+                                + levenshtein_ignore_case(e2.name || COALESCE('' '' || e2.sufqualabr, ''''),$4)
+                                AS a_rating  
+                    FROM e1 
+                            INNER JOIN e2 ON (
+                                    ST_Intersects(e1.the_geom, e2.the_geom)  ) 
+                             INNER JOIN (SELECT * FROM faces WHERE statefp = $1) As fa1 ON (e1.tfid = fa1.tfid  )
+                          LEFT JOIN place AS p ON (fa1.placefp = p.placefp AND p.statefp = $1 )
+                       ORDER BY e1.tlid, e1.side, a_rating LIMIT $9*4 )
+    SELECT address, fedirp , fename, fetype,fedirs,place, zip , geom, a_rating 
+        FROM segs ORDER BY a_rating LIMIT  $9';
+
+    IF var_debug THEN
+        RAISE NOTICE 'sql: %', replace(replace(replace(
+        	replace(replace(replace(
+                replace(
+                    replace(
+                        replace(var_sql, '$1', quote_nullable(in_statefp)), 
+                              '$2', quote_nullable(lower(var_na_road.streetName) ) ),
+                      '$3', quote_nullable(lower(in_city)) ),
+                      '$4', quote_nullable(lower(var_na_inter1.streetName) ) ),
+                      '$5', quote_nullable(var_zip) ),
+                      '$6', quote_nullable(lower(var_na_road.streetName || ' ' || COALESCE(var_na_road.streetTypeAbbrev,'') )) ) ,
+                      '$7', quote_nullable(trim(lower(var_na_inter1.streetName || ' ' || COALESCE(var_na_inter1.streetTypeAbbrev,'') )) ) ) ,
+		 '$8', quote_nullable(in_state ) ),  '$9', num_results::text );
+    END IF;
+
+    FOR results IN EXECUTE var_sql USING in_statefp, trim(lower(var_na_road.streetName)), lower(in_city), lower(var_na_inter1.streetName), var_zip,
+		trim(lower(var_na_road.streetName || ' ' || COALESCE(var_na_road.streetTypeAbbrev,''))),
+		trim(lower(var_na_inter1.streetName || ' ' || COALESCE(var_na_inter1.streetTypeAbbrev,''))), in_state, num_results LOOP
+		ADDY.preDirAbbrev     := results.fedirp;
+        ADDY.streetName       := results.fename;
+        ADDY.streetTypeAbbrev := results.fetype;
+        ADDY.postDirAbbrev    := results.fedirs;
+        ADDY.location         := results.place;
+        ADDY.stateAbbrev      := in_state;
+        ADDY.zip              := results.zip;
+        ADDY.parsed := TRUE;
+        ADDY.address := results.address;
+        
+        GEOMOUT := results.geom;
+        RATING := results.a_rating;
+		RETURN NEXT; 
+	END LOOP;
+	RETURN;
+END;
+$$
+  LANGUAGE plpgsql IMMUTABLE
+  COST 1000
+  ROWS 10;
+ALTER FUNCTION geocode_intersection(IN text, IN text, IN text, IN text, IN text, IN integer) SET join_collapse_limit='2';
diff --git a/extras/tiger_geocoder/geocode/geocode_location.sql b/extras/tiger_geocoder/geocode/geocode_location.sql
new file mode 100644
index 0000000..7be01a6
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/geocode_location.sql
@@ -0,0 +1,98 @@
+CREATE OR REPLACE FUNCTION geocode_location(
+    parsed NORM_ADDY,
+    restrict_geom geometry DEFAULT null,
+    OUT ADDY NORM_ADDY,
+    OUT GEOMOUT GEOMETRY,
+    OUT RATING INTEGER
+) RETURNS SETOF RECORD
+AS $_$
+DECLARE
+  result RECORD;
+  in_statefp VARCHAR;
+  stmt VARCHAR;
+  var_debug boolean := false;
+BEGIN
+
+  in_statefp := statefp FROM state WHERE state.stusps = parsed.stateAbbrev;
+
+  IF var_debug THEN
+    RAISE NOTICE 'geocode_location starting: %', clock_timestamp();
+  END IF;
+  FOR result IN
+    SELECT
+        coalesce(zip.city)::varchar as place,
+        zip.zip as zip,
+        ST_Centroid(zcta5.the_geom) as address_geom,
+        stusps as state,
+        100::integer + coalesce(levenshtein_ignore_case(coalesce(zip.city), parsed.location),0) as in_rating
+    FROM
+      zip_lookup_base zip
+      JOIN zcta5 ON (zip.zip = zcta5.zcta5ce AND zip.statefp = zcta5.statefp)
+      JOIN state ON (state.statefp=zip.statefp)
+    WHERE
+      parsed.zip = zip.zip OR
+      (soundex(zip.city) = soundex(parsed.location) and zip.statefp = in_statefp)
+    ORDER BY levenshtein_ignore_case(coalesce(zip.city), parsed.location), zip.zip
+  LOOP
+    ADDY.location := result.place;
+    ADDY.stateAbbrev := result.state;
+    ADDY.zip := result.zip;
+    ADDY.parsed := true;
+    GEOMOUT := result.address_geom;
+    RATING := result.in_rating;
+
+    RETURN NEXT;
+
+    IF RATING = 100 THEN
+      RETURN;
+    END IF;
+
+  END LOOP;
+
+  IF parsed.location IS NULL THEN
+    parsed.location := city FROM zip_lookup_base WHERE zip_lookup_base.zip = parsed.zip ORDER BY zip_lookup_base.zip LIMIT 1;
+    in_statefp := statefp FROM zip_lookup_base WHERE zip_lookup_base.zip = parsed.zip ORDER BY zip_lookup_base.zip LIMIT 1;
+  END IF;
+
+  stmt := 'SELECT '
+       || ' pl.name as place, '
+       || ' state.stusps as stateAbbrev, '
+       || ' ST_Centroid(pl.the_geom) as address_geom, '
+       || ' 100::integer + levenshtein_ignore_case(coalesce(pl.name), ' || quote_literal(coalesce(parsed.location,'')) || ') as in_rating '
+       || ' FROM (SELECT * FROM place WHERE statefp = ' ||  quote_literal(coalesce(in_statefp,'')) || ' ' || COALESCE(' AND ST_Intersects(' || quote_literal(restrict_geom::text) || '::geometry, the_geom)', '') || ') AS pl '
+       || ' INNER JOIN state ON(pl.statefp = state.statefp)'
+       || ' WHERE soundex(pl.name) = soundex(' || quote_literal(coalesce(parsed.location,'')) || ') and pl.statefp = ' || quote_literal(COALESCE(in_statefp,''))
+       || ' ORDER BY levenshtein_ignore_case(coalesce(pl.name), ' || quote_literal(coalesce(parsed.location,'')) || ');'
+       ;
+
+  IF var_debug THEN
+    RAISE NOTICE 'geocode_location stmt: %', stmt;
+  END IF;     
+  FOR result IN EXECUTE stmt
+  LOOP
+
+    ADDY.location := result.place;
+    ADDY.stateAbbrev := result.stateAbbrev;
+    ADDY.zip = parsed.zip;
+    ADDY.parsed := true;
+    GEOMOUT := result.address_geom;
+    RATING := result.in_rating;
+
+    RETURN NEXT;
+
+    IF RATING = 100 THEN
+      RETURN;
+      IF var_debug THEN
+        RAISE NOTICE 'geocode_location ending hit 100 rating result: %', clock_timestamp();
+      END IF;
+    END IF;
+  END LOOP;
+  
+  IF var_debug THEN
+    RAISE NOTICE 'geocode_location ending: %', clock_timestamp();
+  END IF;
+
+  RETURN;
+
+END;
+$_$ LANGUAGE plpgsql STABLE COST 100;
diff --git a/extras/tiger_geocoder/geocode/includes_address.sql b/extras/tiger_geocoder/geocode/includes_address.sql
new file mode 100644
index 0000000..2637d1c
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/includes_address.sql
@@ -0,0 +1,93 @@
+-- This function requires the addresses to be grouped, such that the second and
+-- third arguments are from one side of the street, and the fourth and fifth
+-- from the other.
+CREATE OR REPLACE FUNCTION includes_address(
+    given_address INTEGER,
+    addr1 INTEGER,
+    addr2 INTEGER,
+    addr3 INTEGER,
+    addr4 INTEGER
+) RETURNS BOOLEAN
+AS $_$
+DECLARE
+  lmaxaddr INTEGER := -1;
+  rmaxaddr INTEGER := -1;
+  lminaddr INTEGER := -1;
+  rminaddr INTEGER := -1;
+  maxaddr INTEGER := -1;
+  minaddr INTEGER := -1;
+  verbose BOOLEAN := false;
+BEGIN
+  IF addr1 IS NOT NULL THEN
+    maxaddr := addr1;
+    minaddr := addr1;
+    lmaxaddr := addr1;
+    lminaddr := addr1;
+  END IF;
+
+  IF addr2 IS NOT NULL THEN
+    IF addr2 < minaddr OR minaddr = -1 THEN
+      minaddr := addr2;
+    END IF;
+    IF addr2 > maxaddr OR maxaddr = -1 THEN
+      maxaddr := addr2;
+    END IF;
+    IF addr2 > lmaxaddr OR lmaxaddr = -1 THEN
+      lmaxaddr := addr2;
+    END IF;
+    IF addr2 < lminaddr OR lminaddr = -1 THEN
+      lminaddr := addr2;
+    END IF;
+  END IF;
+
+  IF addr3 IS NOT NULL THEN
+    IF addr3 < minaddr OR minaddr = -1 THEN
+      minaddr := addr3;
+    END IF;
+    IF addr3 > maxaddr OR maxaddr = -1 THEN
+      maxaddr := addr3;
+    END IF;
+    rmaxaddr := addr3;
+    rminaddr := addr3;
+  END IF;
+
+  IF addr4 IS NOT NULL THEN
+    IF addr4 < minaddr OR minaddr = -1 THEN
+      minaddr := addr4;
+    END IF;
+    IF addr4 > maxaddr OR maxaddr = -1 THEN
+      maxaddr := addr4;
+    END IF;
+    IF addr4 > rmaxaddr OR rmaxaddr = -1 THEN
+      rmaxaddr := addr4;
+    END IF;
+    IF addr4 < rminaddr OR rminaddr = -1 THEN
+      rminaddr := addr4;
+    END IF;
+  END IF;
+
+  IF minaddr = -1 OR maxaddr = -1 THEN
+    -- No addresses were non-null, return FALSE (arbitrary)
+    RETURN FALSE;
+  ELSIF given_address >= minaddr AND given_address <= maxaddr THEN
+    -- The address is within the given range
+    IF given_address >= lminaddr AND given_address <= lmaxaddr THEN
+      -- This checks to see if the address is on this side of the
+      -- road, ie if the address is even, the street range must be even
+      IF (given_address % 2) = (lminaddr % 2)
+          OR (given_address % 2) = (lmaxaddr % 2) THEN
+        RETURN TRUE;
+      END IF;
+    END IF;
+    IF given_address >= rminaddr AND given_address <= rmaxaddr THEN
+      -- See above
+      IF (given_address % 2) = (rminaddr % 2)
+          OR (given_address % 2) = (rmaxaddr % 2) THEN
+        RETURN TRUE;
+      END IF;
+    END IF;
+  END IF;
+  -- The address is not within the range
+  RETURN FALSE;
+END;
+$_$ LANGUAGE plpgsql IMMUTABLE COST 100;
diff --git a/extras/tiger_geocoder/geocode/interpolate_from_address.sql b/extras/tiger_geocoder/geocode/interpolate_from_address.sql
new file mode 100644
index 0000000..c5c2f0a
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/interpolate_from_address.sql
@@ -0,0 +1,98 @@
+-- interpolate_from_address(local_address, from_address_l, to_address_l, from_address_r, to_address_r, local_road)
+-- This function returns a point along the given geometry (must be linestring)
+-- corresponding to the given address.  If the given address is not within
+-- the address range of the road, null is returned.
+-- This function requires that the address be grouped, such that the second and
+-- third arguments are from one side of the street, while the fourth and
+-- fifth are from the other.
+-- in_side Side of street -- either 'L', 'R' or if blank ignores side of road
+-- in_offset_m -- number of meters offset to the side
+CREATE OR REPLACE FUNCTION interpolate_from_address(given_address INTEGER, in_addr1 VARCHAR, in_addr2 VARCHAR, in_road GEOMETRY, 
+	in_side VARCHAR DEFAULT '',in_offset_m float DEFAULT 10) RETURNS GEOMETRY
+AS $_$
+DECLARE
+  addrwidth INTEGER;
+  part DOUBLE PRECISION;
+  road GEOMETRY;
+  result GEOMETRY;
+  var_addr1 INTEGER; var_addr2 INTEGER;
+  center_pt GEOMETRY; cl_pt GEOMETRY;
+  npos integer;
+  delx float; dely float;  x0 float; y0 float; x1 float; y1 float; az float;
+  var_dist float; dir integer;
+BEGIN
+    IF in_road IS NULL THEN
+        RETURN NULL;
+    END IF;
+    
+	var_addr1 := to_number(in_addr1, '999999');
+	var_addr2 := to_number(in_addr2, '999999');
+
+    IF geometrytype(in_road) = 'LINESTRING' THEN
+      road := ST_Transform(in_road, utmzone(ST_StartPoint(in_road)) );
+    ELSIF geometrytype(in_road) = 'MULTILINESTRING' THEN
+    	road := ST_GeometryN(in_road,1);
+    	road := ST_Transform(road, utmzone(ST_StartPoint(road)) );
+    ELSE
+      RETURN NULL;
+    END IF;
+
+    addrwidth := greatest(var_addr1,var_addr2) - least(var_addr1,var_addr2);
+    IF addrwidth = 0 or addrwidth IS NULL THEN
+        addrwidth = 1;
+    END IF;
+    part := (given_address - least(var_addr1,var_addr2)) / trunc(addrwidth, 1);
+
+    IF var_addr1 > var_addr2 THEN
+        part := 1 - part;
+    END IF;
+
+    IF part < 0 OR part > 1 OR part IS NULL THEN
+        part := 0.5;
+    END IF;
+
+    center_pt = ST_LineInterpolatePoint(road, part);
+    IF in_side > '' AND in_offset_m > 0 THEN
+    /** Compute point the point to the in_side of the geometry **/
+    /**Take into consideration non-straight so we consider azimuth 
+    	of the 2 points that straddle the center location**/ 
+    	IF part = 0 THEN
+    		az := ST_Azimuth (ST_StartPoint(road), ST_PointN(road,2));
+    	ELSIF part = 1 THEN
+    		az := ST_Azimuth (ST_PointN(road,ST_NPoints(road) - 1), ST_EndPoint(road));
+    	ELSE 
+    		/** Find the largest nth point position that is before the center point
+    			This will be the start of our azimuth calc **/
+    		SELECT i INTO npos
+    			FROM generate_series(1,ST_NPoints(road)) As i 
+    					WHERE part > ST_LineLocatePoint(road,ST_PointN(road,i)) 
+    					ORDER BY i DESC;
+    		IF npos < ST_NPoints(road) THEN				
+    			az := ST_Azimuth (ST_PointN(road,npos), ST_PointN(road, npos + 1));
+    		ELSE
+    			az := ST_Azimuth (center_pt, ST_PointN(road, npos));
+    		END IF;
+    	END IF;
+    	
+        dir := CASE WHEN az < pi() THEN -1 ELSE 1 END;
+        --dir := 1;
+        var_dist := in_offset_m*CASE WHEN in_side = 'L' THEN -1 ELSE 1 END;
+        delx := ABS(COS(az)) * var_dist * dir;
+        dely := ABS(SIN(az)) * var_dist * dir;
+        IF az > pi()/2 AND az < pi() OR az > 3 * pi()/2 THEN
+			result := ST_Translate(center_pt, delx, dely) ;
+		ELSE
+			result := ST_Translate(center_pt, -delx, dely);
+		END IF;
+    ELSE
+    	result := center_pt;
+    END IF;
+    result :=  ST_Transform(result, ST_SRID(in_road));
+    --RAISE NOTICE 'start: %, center: %, new: %, side: %, offset: %, az: %', ST_AsText(ST_Transform(ST_StartPoint(road),ST_SRID(in_road))), ST_AsText(ST_Transform(center_pt,ST_SRID(in_road))),ST_AsText(result), in_side, in_offset_m, az;
+    RETURN result;
+END;
+$_$ LANGUAGE plpgsql IMMUTABLE COST 10;
+-- needed to ban stupid warning about how we are using deprecated functions 
+-- yada yada yada need this to work in 2.0 too bah
+ALTER FUNCTION interpolate_from_address(integer, character varying, character varying, geometry, character varying, double precision)
+  SET client_min_messages='ERROR';
diff --git a/extras/tiger_geocoder/geocode/other_helper_functions.sql b/extras/tiger_geocoder/geocode/other_helper_functions.sql
new file mode 100644
index 0000000..d8b6adf
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/other_helper_functions.sql
@@ -0,0 +1,251 @@
+ /*** 
+ * 
+ * Copyright (C) 2011 Regina Obe and Leo Hsu (Paragon Corporation)
+ **/
+-- Note we are wrapping this in a function so we can make it immutable and thus useable in an index
+-- It also allows us to shorten and possibly better cache the repetitive pattern in the code 
+-- greatest(to_number(b.fromhn,''99999999''),to_number(b.tohn,''99999999'')) 
+-- and least(to_number(b.fromhn,''99999999''),to_number(b.tohn,''99999999''))
+CREATE OR REPLACE FUNCTION least_hn(fromhn varchar, tohn varchar)
+  RETURNS integer AS
+$$ SELECT least(to_number( CASE WHEN trim($1) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'9999999'),to_number(CASE WHEN trim($2) ~ '^[0-9]+$' THEN $2 ELSE '0' END,'9999999') )::integer;  $$
+  LANGUAGE sql IMMUTABLE
+  COST 200;
+  
+-- Note we are wrapping this in a function so we can make it immutable (for some reason least and greatest aren't considered immutable)
+-- and thu useable in an index or cacheable for multiple calls
+CREATE OR REPLACE FUNCTION greatest_hn(fromhn varchar, tohn varchar)
+  RETURNS integer AS
+$$ SELECT greatest(to_number( CASE WHEN trim($1) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'99999999'),to_number(CASE WHEN trim($2) ~ '^[0-9]+$' THEN $2 ELSE '0' END,'99999999') )::integer;  $$
+  LANGUAGE sql IMMUTABLE
+  COST 200;
+  
+-- Returns an absolute difference between two zips
+-- This is generally more efficient than doing levenshtein
+-- Since when people get the wrong zip, its usually off by one or 2 numeric distance
+-- We only consider the first 5 digits
+CREATE OR REPLACE FUNCTION diff_zip(zip1 varchar, zip2 varchar)
+  RETURNS integer AS
+$$ SELECT abs(to_number( CASE WHEN trim(substring($1,1,5)) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'99999')::integer - to_number( CASE WHEN trim(substring($2,1,5)) ~ '^[0-9]+$' THEN $2 ELSE '0' END,'99999')::integer )::integer;  $$
+  LANGUAGE sql IMMUTABLE STRICT
+  COST 200;
+  
+-- function return  true or false if 2 numeric streets are equal such as 15th St, 23rd st
+-- it compares just the numeric part of the street for equality
+-- PURPOSE: handle bad formats such as 23th St so 23th St = 23rd St
+-- as described in: http://trac.osgeo.org/postgis/ticket/1068
+-- This will always return false if one of the streets is not a numeric street
+-- By numeric it must start with numbers (allow fractions such as 1/2 and spaces such as 12 1/2th) and be less than 10 characters
+CREATE OR REPLACE FUNCTION numeric_streets_equal(input_street varchar, output_street varchar)
+    RETURNS boolean AS
+$$
+    SELECT COALESCE(length($1) < 10 AND length($2) < 10 
+            AND $1 ~ E'^[0-9\/\s]+' AND $2 ~ E'^[0-9\/\s]+' 
+            AND  trim(substring($1, E'^[0-9\/\s]+')) = trim(substring($2, E'^[0-9\/\s]+')), false); 
+$$
+LANGUAGE sql IMMUTABLE
+COST 5;
+
+
+-- Generate script to drop all non-primary unique indexes on tiger and tiger_data tables
+CREATE OR REPLACE FUNCTION drop_indexes_generate_script(tiger_data_schema text DEFAULT 'tiger_data')
+RETURNS text AS
+$$
+SELECT array_to_string(ARRAY(SELECT 'DROP INDEX ' || schemaname || '.' || indexname || ';' 
+FROM pg_catalog.pg_indexes  where schemaname IN('tiger',$1)  AND indexname NOT LIKE 'uidx%' AND indexname NOT LIKE 'pk_%' AND indexname NOT LIKE '%key'), E'\n');
+$$
+LANGUAGE sql STABLE;
+-- Generate script to create missing indexes in tiger tables. 
+-- This will generate sql you can run to index commonly used join columns in geocoder for tiger and tiger_data schemas --
+CREATE OR REPLACE FUNCTION missing_indexes_generate_script()
+RETURNS text AS
+$$
+SELECT array_to_string(ARRAY(
+-- create unique index on faces for tfid seems to perform better --
+SELECT 'CREATE UNIQUE INDEX uidx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(' || c.column_name || ');' As index
+FROM (SELECT table_name, table_schema  FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('tfid') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexname LIKE 'uidx%' || c.column_name || '%' ) 
+WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data') AND c.table_name LIKE '%faces'
+UNION ALL
+-- basic btree regular indexes
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(' || c.column_name || ');' As index
+FROM (SELECT table_name, table_schema  FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('countyfp', 'tlid', 'tfidl', 'tfidr', 'tfid', 'zip', 'placefp', 'cousubfp') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%' || c.column_name || '%' ) 
+WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data')  AND (NOT c.table_name LIKE '%faces')
+-- Gist spatial indexes --
+UNION ALL
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || '_gist ON ' || c.table_schema || '.' || c.table_name || ' USING gist(' || c.column_name || ');' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('the_geom', 'geom') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%' || c.column_name || '%') 
+WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data')
+-- Soundex indexes --
+UNION ALL
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_snd_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(soundex(' || c.column_name || '));' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('name', 'place', 'city') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%soundex(%' || c.column_name || '%' AND indexdef LIKE '%_snd_' || c.column_name || '%' ) 
+WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data') 
+    AND (c.table_name LIKE '%county%' OR c.table_name LIKE '%featnames'
+    OR c.table_name  LIKE '%place' or c.table_name LIKE '%zip%'  or c.table_name LIKE '%cousub') 
+-- Lower indexes --
+UNION ALL
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_lower_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(lower(' || c.column_name || '));' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('name', 'place', 'city') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%btree%(%lower(%' || c.column_name || '%') 
+WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data') 
+    AND (c.table_name LIKE '%county%' OR c.table_name LIKE '%featnames' OR c.table_name  LIKE '%place' or c.table_name LIKE '%zip%' or c.table_name LIKE '%cousub') 
+-- Least address index btree least_hn(fromhn, tohn)
+UNION ALL
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_least_address' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(least_hn(fromhn, tohn));' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%addr' AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('fromhn') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%least_hn(%' || c.column_name || '%') 
+WHERE i.tablename IS NULL
+-- var_ops lower --
+UNION ALL
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_l' || c.column_name || '_var_ops' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(lower(' || c.column_name || ') varchar_pattern_ops);' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE' AND (table_name LIKE '%featnames' or table_name LIKE '%place' or table_name LIKE '%zip_lookup_base' or table_name LIKE '%zip_state_loc') AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('name', 'city', 'place', 'fullname') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%btree%(%lower%' || c.column_name || ')%varchar_pattern_ops%') 
+WHERE i.tablename IS NULL
+-- var_ops mtfcc --
+/** UNION ALL
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || '_var_ops' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(' || c.column_name || ' varchar_pattern_ops);' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE' AND (table_name LIKE '%featnames' or table_name LIKE '%edges') AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('mtfcc') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%btree%(' || c.column_name || '%varchar_pattern_ops%') 
+WHERE i.tablename IS NULL **/
+-- zipl zipr on edges --
+UNION ALL
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(' || c.column_name || ' );' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%edges' AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('zipl', 'zipr') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%btree%(' || c.column_name || '%)%') 
+WHERE i.tablename IS NULL
+
+-- unique index on tlid state county --
+/*UNION ALL
+SELECT 'CREATE UNIQUE INDEX uidx_' || t.table_schema || '_' || t.table_name || '_tlid_statefp_countyfp ON ' || t.table_schema || '.' || t.table_name || ' USING btree(tlid,statefp,countyfp);' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%edges' AND table_schema IN('tiger','tiger_data')) As t  
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = t.table_name AND i.schemaname = t.table_schema 
+				AND  indexdef LIKE '%btree%(%tlid,%statefp%countyfp%)%') 
+WHERE i.tablename IS NULL*/
+--full text indexes on name field--
+/**UNION ALL
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_fullname_ft_gist' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING gist(to_tsvector(''english'',fullname))' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%featnames' AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('fullname') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%to_tsvector(%' || c.column_name || '%') 
+WHERE i.tablename IS NULL **/
+
+-- trigram index --
+/**UNION ALL
+SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || '_trgm_gist' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING gist(' || c.column_name || ' gist_trgm_ops);' As index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%featnames' AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
+	(SELECT * FROM information_schema.columns WHERE column_name IN('fullname', 'name') ) AS c  
+		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
+				AND  indexdef LIKE '%gist%(' || c.column_name || '%gist_trgm_ops%') 
+WHERE i.tablename IS NULL **/ 
+ORDER BY 1), E'\r');
+$$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION install_missing_indexes() RETURNS boolean
+AS
+$$
+DECLARE var_sql text = missing_indexes_generate_script();
+BEGIN
+	EXECUTE(var_sql);
+	RETURN true;
+END
+$$
+language plpgsql;
+
+
+CREATE OR REPLACE FUNCTION drop_dupe_featnames_generate_script() RETURNS text 
+AS
+$$
+
+SELECT array_to_string(ARRAY(SELECT 'CREATE TEMPORARY TABLE dup AS
+SELECT min(f.gid) As min_gid, f.tlid, lower(f.fullname) As fname
+	FROM ONLY ' || t.table_schema || '.' || t.table_name || ' As f
+	GROUP BY f.tlid, lower(f.fullname) 
+	HAVING count(*) > 1;
+	
+DELETE FROM ' || t.table_schema || '.' || t.table_name || ' AS feat
+WHERE EXISTS (SELECT tlid FROM dup WHERE feat.tlid = dup.tlid AND lower(feat.fullname) = dup.fname
+		AND feat.gid > dup.min_gid);
+DROP TABLE dup;
+CREATE INDEX idx_' || t.table_schema || '_' || t.table_name || '_tlid ' || ' ON ' || t.table_schema || '.' || t.table_name || ' USING btree(tlid); 
+' As drop_sql_create_index
+FROM (SELECT table_name, table_schema FROM 
+	information_schema.tables WHERE table_type = 'BASE TABLE' AND (table_name LIKE '%featnames' ) AND table_schema IN('tiger','tiger_data')) As t 
+		LEFT JOIN pg_catalog.pg_indexes i ON 
+			(i.tablename = t.table_name AND i.schemaname = t.table_schema 
+				AND  indexdef LIKE '%btree%(%tlid%') 
+WHERE i.tablename IS NULL) ,E'\r');
+
+$$
+LANGUAGE sql VOLATILE;
+
+--DROP FUNCTION IF EXISTS zip_range(text,integer,integer);
+-- Helper function that useful for catch slight mistakes in zip position given a 5 digit zip code
+-- will return a range of zip codes that are between zip - num_before and zip - num_after
+-- e.g. usage -> zip_range('02109', -1,+1) -> {'02108', '02109', '02110'}
+CREATE OR REPLACE FUNCTION zip_range(zip text, range_start integer, range_end integer) RETURNS varchar[] AS
+$$
+   SELECT ARRAY(
+        SELECT lpad((to_number( CASE WHEN trim(substring($1,1,5)) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'99999')::integer + i)::text, 5, '0')::varchar
+        FROM generate_series($2, $3) As i );
+$$
+LANGUAGE sql IMMUTABLE STRICT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/geocode/rate_attributes.sql b/extras/tiger_geocoder/geocode/rate_attributes.sql
new file mode 100644
index 0000000..c0b19b4
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/rate_attributes.sql
@@ -0,0 +1,78 @@
+-- rate_attributes(dirpA, dirpB, streetNameA, streetNameB, streetTypeA,
+-- streetTypeB, dirsA, dirsB, locationA, locationB)
+-- Rates the street based on the given attributes.  The locations must be
+-- non-null.  The other eight values are handled by the other rate_attributes
+-- function, so it's requirements must also be met.
+-- changed: 2010-10-18 Regina Obe - all references to verbose to var_verbose since causes compile errors in 9.0
+-- changed: 2011-06-25 revise to use real named args and fix direction rating typo
+CREATE OR REPLACE FUNCTION rate_attributes(dirpA VARCHAR, dirpB VARCHAR, streetNameA VARCHAR, streetNameB VARCHAR,
+    streetTypeA VARCHAR, streetTypeB VARCHAR, dirsA VARCHAR, dirsB VARCHAR,  locationA VARCHAR, locationB VARCHAR, prequalabr VARCHAR) RETURNS INTEGER
+AS $_$
+DECLARE
+  result INTEGER := 0;
+  locationWeight INTEGER := 14;
+  var_verbose BOOLEAN := FALSE;
+BEGIN
+  IF locationA IS NOT NULL AND locationB IS NOT NULL THEN
+    result := levenshtein_ignore_case(locationA, locationB);
+  ELSE
+    IF var_verbose THEN
+      RAISE NOTICE 'rate_attributes() - Location names cannot be null!';
+    END IF;
+    RETURN NULL;
+  END IF;
+  result := result + rate_attributes($1, $2, streetNameA, streetNameB, $5, $6, $7, $8,prequalabr);
+  RETURN result;
+END;
+$_$ LANGUAGE plpgsql IMMUTABLE;
+
+-- rate_attributes(dirpA, dirpB, streetNameA, streetNameB, streetTypeA,
+-- streetTypeB, dirsA, dirsB)
+-- Rates the street based on the given attributes.  Only streetNames are
+-- required.  If any others are null (either A or B) they are treated as
+-- empty strings.
+CREATE OR REPLACE FUNCTION rate_attributes(dirpA VARCHAR, dirpB VARCHAR, streetNameA VARCHAR, streetNameB VARCHAR,
+    streetTypeA VARCHAR, streetTypeB VARCHAR, dirsA VARCHAR, dirsB VARCHAR, prequalabr VARCHAR) RETURNS INTEGER
+AS $_$
+DECLARE
+  result INTEGER := 0;
+  directionWeight INTEGER := 2;
+  nameWeight INTEGER := 10;
+  typeWeight INTEGER := 5;
+  var_verbose BOOLEAN := false;
+BEGIN
+  result := result + levenshtein_ignore_case(cull_null($1), cull_null($2)) * directionWeight;
+  IF var_verbose THEN
+    RAISE NOTICE 'streetNameA: %, streetNameB: %', streetNameA, streetNameB;
+  END IF;
+  IF streetNameA IS NOT NULL AND streetNameB IS NOT NULL THEN
+    -- We want to treat numeric streets that have numerics as equal 
+    -- and not penalize if they are spelled different e.g. have ND instead of TH
+    IF NOT numeric_streets_equal(streetNameA, streetNameB) THEN
+        IF prequalabr IS NOT NULL THEN
+            -- If the reference address (streetNameB) has a prequalabr streetNameA (prequalabr) - note: streetNameB usually comes thru without prequalabr
+            -- and the input street (streetNameA) is lacking the prequal -- only penalize a little
+            result := (result + levenshtein_ignore_case( trim( trim( lower(streetNameA),lower(prequalabr) ) ), trim( trim( lower(streetNameB),lower(prequalabr) ) ) )*nameWeight*0.75 + levenshtein_ignore_case(trim(streetNameA),prequalabr || ' ' ||  streetNameB) * nameWeight*0.25)::integer;
+        ELSE
+            result := result + levenshtein_ignore_case(streetNameA, streetNameB) * nameWeight;
+        END IF;
+    ELSE 
+    -- Penalize for numeric streets if one is completely numeric and the other is not
+    -- This is to minimize on highways like 3A being matched with numbered streets since streets are usually number followed by 2 characters e.g nth ave and highways are just number with optional letter for name
+        IF  (streetNameB ~ E'[a-zA-Z]{2,10}' AND NOT (streetNameA ~ E'[a-zA-Z]{2,10}') ) OR (streetNameA ~ E'[a-zA-Z]{2,10}' AND NOT (streetNameB ~ E'[a-zA-Z]{2,10}') ) THEN
+            result := result + levenshtein_ignore_case(streetNameA, streetNameB) * nameWeight;
+        END IF;
+    END IF;
+  ELSE
+    IF var_verbose THEN
+      RAISE NOTICE 'rate_attributes() - Street names cannot be null!';
+    END IF;
+    RETURN NULL;
+  END IF;
+  result := result + levenshtein_ignore_case(cull_null(streetTypeA), cull_null(streetTypeB)) *
+      typeWeight;
+  result := result + levenshtein_ignore_case(cull_null(dirsA), cull_null(dirsB)) *
+      directionWeight;
+  return result;
+END;
+$_$ LANGUAGE plpgsql IMMUTABLE;
diff --git a/extras/tiger_geocoder/geocode/reverse_geocode.sql b/extras/tiger_geocoder/geocode/reverse_geocode.sql
new file mode 100644
index 0000000..adb3167
--- /dev/null
+++ b/extras/tiger_geocoder/geocode/reverse_geocode.sql
@@ -0,0 +1,244 @@
+ /*** 
+ * 
+ * Copyright (C) 2011-2014 Regina Obe and Leo Hsu (Paragon Corporation)
+ **/
+-- This function given a point try to determine the approximate street address (norm_addy form)
+-- and array of cross streets, as well as interpolated points along the streets
+-- Use case example an address at the intersection of 3 streets: SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, pprint_addy(r.addy[3]) As st3, array_to_string(r.street, ',') FROM reverse_geocode(ST_GeomFromText('POINT(-71.057811 42.358274)',4269)) As r;
+--set search_path=tiger,public;
+
+CREATE OR REPLACE FUNCTION reverse_geocode(IN pt geometry, IN include_strnum_range boolean DEFAULT false, OUT intpt geometry[], OUT addy norm_addy[], OUT street character varying[])
+  RETURNS record AS
+$BODY$
+DECLARE
+  var_redge RECORD;
+  var_state text := NULL;
+  var_stusps text := NULL;
+  var_countyfp text := NULL;
+  var_addy NORM_ADDY;
+  var_addy_alt NORM_ADDY;
+  var_nstrnum numeric(10);
+  var_primary_line geometry := NULL;
+  var_primary_dist numeric(10,2) ;
+  var_pt geometry;
+  var_place varchar;
+  var_county varchar;
+  var_stmt text;
+  var_debug boolean =  get_geocode_setting('debug_reverse_geocode')::boolean;
+  var_rating_highway integer = COALESCE(get_geocode_setting('reverse_geocode_numbered_roads')::integer,0);/**0 no preference, 1 prefer highway number, 2 prefer local name **/
+  var_zip varchar := NULL;
+  var_primary_fullname varchar := '';
+BEGIN
+	IF pt IS NULL THEN
+		RETURN;
+	ELSE
+		IF ST_SRID(pt) = 4269 THEN
+			var_pt := pt;
+		ELSIF ST_SRID(pt) > 0 THEN
+			var_pt := ST_Transform(pt, 4269); 
+		ELSE --If srid is unknown, assume its 4269
+			var_pt := ST_SetSRID(pt, 4269);
+		END IF;
+		var_pt := ST_SnapToGrid(var_pt, 0.00005); /** Get rid of floating point junk that would prevent intersections **/
+	END IF;
+	-- Determine state tables to check 
+	-- this is needed to take advantage of constraint exclusion
+	IF var_debug THEN
+		RAISE NOTICE 'Get matching states start: %', clock_timestamp();
+	END IF;
+	SELECT statefp, stusps INTO var_state, var_stusps FROM state WHERE ST_Intersects(the_geom, var_pt) LIMIT 1;
+	IF var_debug THEN
+		RAISE NOTICE 'Get matching states end: % -  %', var_state, clock_timestamp();
+	END IF;
+	IF var_state IS NULL THEN
+		-- We don't have any data for this state
+		RETURN;
+	END IF;
+	IF var_debug THEN
+		RAISE NOTICE 'Get matching counties start: %', clock_timestamp();
+	END IF;
+	-- locate county
+	var_stmt := 'SELECT countyfp, name  FROM  county WHERE  statefp =  $1 AND ST_Intersects(the_geom, $2) LIMIT 1;';
+	EXECUTE var_stmt INTO var_countyfp, var_county USING var_state, var_pt ;
+
+	--locate zip
+	var_stmt := 'SELECT zcta5ce  FROM zcta5 WHERE statefp = $1 AND ST_Intersects(the_geom, $2)  LIMIT 1;';
+	EXECUTE var_stmt INTO var_zip USING var_state, var_pt;
+	-- locate city
+	IF var_zip > '' THEN
+	      var_addy.zip := var_zip ;
+	END IF;
+	
+	var_stmt := 'SELECT z.name  FROM place As z WHERE  z.statefp =  $1 AND ST_Intersects(the_geom, $2) LIMIT 1;';
+	EXECUTE var_stmt INTO var_place USING var_state, var_pt ;
+	IF var_place > '' THEN
+			var_addy.location := var_place;
+	ELSE
+		var_stmt := 'SELECT z.name  FROM cousub As z WHERE  z.statefp =  $1 AND ST_Intersects(the_geom, $2) LIMIT 1;';
+		EXECUTE var_stmt INTO var_place USING var_state, var_pt ;
+		IF var_place > '' THEN
+			var_addy.location := var_place;
+		-- ELSIF var_zip > '' THEN
+		-- 	SELECT z.city INTO var_place FROM zip_lookup_base As z WHERE  z.statefp =  var_state AND z.county = var_county AND z.zip = var_zip LIMIT 1;
+		-- 	var_addy.location := var_place;
+		END IF;
+	END IF;
+
+	IF var_debug THEN
+		RAISE NOTICE 'Get matching counties end: % - %',var_countyfp,  clock_timestamp();
+	END IF;
+	IF var_countyfp IS NULL THEN
+		-- We don't have any data for this county
+		RETURN;
+	END IF;
+	
+	var_addy.stateAbbrev = var_stusps;
+
+	-- Find the street edges that this point is closest to with tolerance of 0.005 but only consider the edge if the point is contained in the right or left face
+	-- Then order addresses by proximity to road
+	IF var_debug THEN
+		RAISE NOTICE 'Get matching edges start: %', clock_timestamp();
+	END IF;
+
+	var_stmt := '
+	    WITH ref AS (
+	        SELECT ' || quote_literal(var_pt::text) || '::geometry As ref_geom ) , 
+			f AS 
+			( SELECT faces.* FROM faces  CROSS JOIN ref
+			WHERE faces.statefp = ' || quote_literal(var_state) || ' AND faces.countyfp = ' || quote_literal(var_countyfp) || ' 
+				AND ST_Intersects(faces.the_geom, ref_geom)
+				    ),
+			e AS 
+			( SELECT edges.tlid , edges.statefp, edges.the_geom, CASE WHEN edges.tfidr = f.tfid THEN ''R'' WHEN edges.tfidl = f.tfid THEN ''L'' ELSE NULL END::varchar As eside,
+                    ST_ClosestPoint(edges.the_geom,ref_geom) As center_pt, ref_geom
+				FROM edges INNER JOIN f ON (f.statefp = edges.statefp AND (edges.tfidr = f.tfid OR edges.tfidl = f.tfid)) 
+				    CROSS JOIN ref
+			WHERE edges.statefp = ' || quote_literal(var_state) || ' AND edges.countyfp = ' || quote_literal(var_countyfp) || ' 
+				AND ST_DWithin(edges.the_geom, ref.ref_geom, 0.01) AND (edges.mtfcc LIKE ''S%'') --only consider streets and roads
+				  )	,
+			ea AS 
+			(SELECT e.statefp, e.tlid, a.fromhn, a.tohn, e.center_pt, ref_geom, a.zip, a.side, e.the_geom
+				FROM e LEFT JOIN addr As a ON (a.statefp = ' || quote_literal(var_state) || '  AND e.tlid = a.tlid and e.eside = a.side) 
+				)
+		SELECT * 
+		FROM (SELECT DISTINCT ON(tlid,side)  foo.fullname, foo.predirabrv, foo.streetname, foo.streettypeabbrev, foo.zip,  foo.center_pt,
+			  side, to_number(CASE WHEN trim(fromhn) ~ ''^[0-9]+$'' THEN fromhn ELSE NULL END,''99999999'')  As fromhn, to_number(CASE WHEN trim(tohn) ~ ''^[0-9]+$'' THEN tohn ELSE NULL END,''99999999'') As tohn, 
+			  ST_GeometryN(ST_Multi(line),1) As line, dist
+		FROM 
+		  (SELECT e.tlid, e.the_geom As line, n.fullname, COALESCE(n.prequalabr || '' '','''')  || n.name AS streetname, n.predirabrv, COALESCE(suftypabrv, pretypabrv) As streettypeabbrev,
+		      n.sufdirabrv, e.zip, e.side, e.fromhn, e.tohn , e.center_pt,
+		          ST_Distance_Sphere(ST_SetSRID(e.center_pt,4326),ST_SetSRID(ref_geom,4326)) As dist
+				FROM ea AS e 
+					LEFT JOIN (SELECT featnames.* FROM featnames 
+			    WHERE featnames.statefp = ' || quote_literal(var_state) ||'   ) AS n ON (n.statefp =  e.statefp AND n.tlid = e.tlid) 
+				ORDER BY dist LIMIT 50 ) As foo 
+				ORDER BY foo.tlid, foo.side, ';
+				
+	    -- for numbered street/road use var_rating_highway to determine whether to prefer numbered or not (0 no pref, 1 prefer numbered, 2 prefer named)
+		var_stmt := var_stmt || ' CASE $1 WHEN 0 THEN 0  WHEN 1 THEN CASE WHEN foo.fullname ~ ''[0-9]+'' THEN 0 ELSE 1 END ELSE CASE WHEN foo.fullname > '''' AND NOT (foo.fullname ~ ''[0-9]+'') THEN 0 ELSE 1 END END ';
+		var_stmt := var_stmt || ',  foo.fullname ASC NULLS LAST, dist LIMIT 50) As f ORDER BY f.dist, CASE WHEN fullname > '''' THEN 0 ELSE 1 END '; --don't bother penalizing for distance if less than 20 meters
+				
+	IF var_debug = true THEN
+	    RAISE NOTICE 'Statement 1: %', replace(var_stmt, '$1', var_rating_highway::text);
+	END IF;
+
+    FOR var_redge IN EXECUTE var_stmt USING var_rating_highway LOOP
+        IF var_debug THEN
+            RAISE NOTICE 'Start Get matching edges loop: %,%', var_primary_line, clock_timestamp();
+        END IF;
+        IF var_primary_line IS NULL THEN --this is the first time in the loop and our primary guess
+            var_primary_line := var_redge.line;
+            var_primary_dist := var_redge.dist;
+        END IF;
+  
+        IF var_redge.fullname IS NOT NULL AND COALESCE(var_primary_fullname,'') = '' THEN -- this is the first non-blank name we are hitting grab info
+            var_primary_fullname := var_redge.fullname;
+            var_addy.streetname = var_redge.streetname;
+            var_addy.streettypeabbrev := var_redge.streettypeabbrev;
+            var_addy.predirabbrev := var_redge.predirabrv;
+        END IF;
+       
+        IF ST_Intersects(var_redge.line, var_primary_line) THEN
+            var_addy.streetname := var_redge.streetname; 
+            
+            var_addy.streettypeabbrev := var_redge.streettypeabbrev;
+            var_addy.address := var_nstrnum;
+            IF  var_redge.fromhn IS NOT NULL THEN
+                --interpolate the number -- note that if fromhn > tohn we will be subtracting which is what we want
+                var_nstrnum := (var_redge.fromhn + ST_LineLocatePoint(var_redge.line, var_pt)*(var_redge.tohn - var_redge.fromhn))::numeric(10);
+                -- The odd even street number side of street rule
+                IF (var_nstrnum  % 2)  != (var_redge.tohn % 2) THEN
+                    var_nstrnum := CASE WHEN var_nstrnum + 1 NOT BETWEEN var_redge.fromhn AND var_redge.tohn THEN var_nstrnum - 1 ELSE var_nstrnum + 1 END;
+                END IF;
+                var_addy.address := var_nstrnum;
+            END IF;
+            IF var_redge.zip > ''  THEN
+                var_addy.zip := var_redge.zip;
+            ELSE
+                var_addy.zip := var_zip;
+            END IF;
+            -- IF var_redge.location > '' THEN
+            --     var_addy.location := var_redge.location;
+            -- ELSE
+            --     var_addy.location := var_place;
+            -- END IF;  
+            
+            -- This is a cross streets - only add if not the primary adress street
+            IF var_redge.fullname > '' AND var_redge.fullname <> var_primary_fullname THEN
+                street := array_append(street, (CASE WHEN include_strnum_range THEN COALESCE(var_redge.fromhn::varchar, '')::varchar || COALESCE(' - ' || var_redge.tohn::varchar,'')::varchar || ' '::varchar  ELSE '' END::varchar ||  COALESCE(var_redge.fullname::varchar,''))::varchar);
+            END IF;    
+            
+            -- consider this a potential address
+            IF (var_redge.dist < var_primary_dist*1.1 OR var_redge.dist < 20)   THEN
+                 -- We only consider this a possible address if it is really close to our point
+                 intpt := array_append(intpt,var_redge.center_pt); 
+                -- note that ramps don't have names or addresses but they connect at the edge of a range
+                -- so for ramps the address of connecting is still useful
+                IF var_debug THEN
+                    RAISE NOTICE 'Current addresses: %, last added, %, street: %, %', addy, var_addy, var_addy.streetname, clock_timestamp();
+                END IF;
+                 addy := array_append(addy, var_addy);
+
+                -- Use current values streetname for previous value if previous value has no streetname
+				IF var_addy.streetname > '' AND array_upper(addy,1) > 1 AND COALESCE(addy[array_upper(addy,1) - 1].streetname, '') = ''  THEN
+					-- the match is probably an offshoot of some sort
+					-- replace prior entry with streetname of new if prior had no streetname
+					var_addy_alt := addy[array_upper(addy,1)- 1];
+					IF var_debug THEN
+						RAISE NOTICE 'Replacing answer : %, %', addy[array_upper(addy,1) - 1], clock_timestamp();
+					END IF;
+					var_addy_alt.streetname := var_addy.streetname;
+					var_addy_alt.streettypeabbrev := var_addy.streettypeabbrev;
+                    var_addy_alt.predirabbrev := var_addy.predirabbrev;
+					addy[array_upper(addy,1) - 1 ] := var_addy_alt; 
+					IF var_debug THEN
+						RAISE NOTICE 'Replaced with : %, %', var_addy_alt, clock_timestamp();
+					END IF;
+				END IF;
+				
+				IF var_debug THEN
+					RAISE NOTICE 'End Get matching edges loop: %', clock_timestamp();
+					RAISE NOTICE 'Final addresses: %, %', addy, clock_timestamp();
+				END IF;
+
+            END IF;
+        END IF;
+     
+    END LOOP;
+ 
+    -- not matching roads or streets, just return basic info
+    IF NOT FOUND THEN
+        addy := array_append(addy,var_addy);
+        IF var_debug THEN
+            RAISE NOTICE 'No address found: adding: % street: %, %', var_addy, var_addy.streetname, clock_timestamp();
+        END IF;
+    END IF;
+    IF var_debug THEN
+        RAISE NOTICE 'current array count : %, %', array_upper(addy,1), clock_timestamp();
+    END IF;
+
+    RETURN;   
+END;
+$BODY$
+  LANGUAGE plpgsql STABLE
+  COST 1000;
diff --git a/extras/tiger_geocoder/geocode_settings.sql b/extras/tiger_geocoder/geocode_settings.sql
new file mode 100644
index 0000000..16f1ef8
--- /dev/null
+++ b/extras/tiger_geocoder/geocode_settings.sql
@@ -0,0 +1,69 @@
+--
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2010, 2011-2015 Regina Obe and Leo Hsu
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
+--  
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+SELECT tiger.SetSearchPathForInstall('tiger');
+
+CREATE OR REPLACE FUNCTION install_geocode_settings() 
+	RETURNS void AS
+$$
+DECLARE var_temp text;
+BEGIN
+	var_temp := tiger.SetSearchPathForInstall('tiger'); /** set set search path to have tiger in front **/
+	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'geocode_settings')  THEN
+		CREATE TABLE geocode_settings(name text primary key, setting text, unit text, category text, short_desc text);
+		GRANT SELECT ON geocode_settings TO public;
+	END IF;
+	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'geocode_settings_default')  THEN
+		CREATE TABLE geocode_settings_default(name text primary key, setting text, unit text, category text, short_desc text);
+		GRANT SELECT ON geocode_settings_default TO public;
+	END IF;
+	--recreate defaults
+	TRUNCATE TABLE geocode_settings_default;
+	INSERT INTO geocode_settings_default(name,setting,unit,category,short_desc)
+		SELECT f.*
+		FROM 
+		(VALUES ('debug_geocode_address', 'false', 'boolean','debug', 'outputs debug information in notice log such as queries when geocode_addresss is called if true')
+			, ('debug_geocode_intersection', 'false', 'boolean','debug', 'outputs debug information in notice log such as queries when geocode_intersection is called if true')
+			, ('debug_normalize_address', 'false', 'boolean','debug', 'outputs debug information in notice log such as queries and intermediate expressions when normalize_address is called if true')
+			, ('debug_reverse_geocode', 'false', 'boolean','debug', 'if true, outputs debug information in notice log such as queries and intermediate expressions when reverse_geocode')
+			, ('reverse_geocode_numbered_roads', '0', 'integer','rating', 'For state and county highways, 0 - no preference in name, 1 - prefer the numbered highway name, 2 - prefer local state/county name')
+			, ('use_pagc_address_parser', 'false', 'boolean','normalize', 'If set to true, will try to use the address_standardizer extension (via pagc_normalize_address) instead of tiger normalize_address built on')
+		) f(name,setting,unit,category,short_desc);
+		
+	-- delete entries that are the same as default values 	
+	DELETE FROM geocode_settings As gc USING geocode_settings_default As gf WHERE gf.name = gc.name AND gf.setting = gc.setting;
+END;
+$$
+language plpgsql;
+
+SELECT install_geocode_settings(); /** create the table if it doesn't exist **/
+
+CREATE OR REPLACE FUNCTION get_geocode_setting(setting_name text)
+RETURNS text AS
+$$
+SELECT COALESCE(gc.setting,gd.setting) As setting FROM geocode_settings_default AS gd LEFT JOIN geocode_settings AS gc ON gd.name = gc.name  WHERE gd.name = $1;
+$$
+language sql STABLE;
+
+CREATE OR REPLACE FUNCTION set_geocode_setting(setting_name text, setting_value text)
+RETURNS text AS
+$$
+INSERT INTO geocode_settings(name, setting, unit, category, short_desc)
+SELECT name, setting, unit, category, short_desc 
+    FROM geocode_settings_default
+    WHERE name NOT IN(SELECT name FROM geocode_settings);
+
+UPDATE geocode_settings SET setting = $2 WHERE name = $1
+	RETURNING setting;
+$$
+language sql VOLATILE;
diff --git a/extras/tiger_geocoder/tiger_2011/legacy_import/tiger2008/import_tiger_shps.sh b/extras/tiger_geocoder/legacy_import/tiger2008/import_tiger_shps.sh
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/legacy_import/tiger2008/import_tiger_shps.sh
rename to extras/tiger_geocoder/legacy_import/tiger2008/import_tiger_shps.sh
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/count_words.sql b/extras/tiger_geocoder/normalize/count_words.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/normalize/count_words.sql
rename to extras/tiger_geocoder/normalize/count_words.sql
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/end_soundex.sql b/extras/tiger_geocoder/normalize/end_soundex.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/normalize/end_soundex.sql
rename to extras/tiger_geocoder/normalize/end_soundex.sql
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/get_last_words.sql b/extras/tiger_geocoder/normalize/get_last_words.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/normalize/get_last_words.sql
rename to extras/tiger_geocoder/normalize/get_last_words.sql
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/location_extract.sql b/extras/tiger_geocoder/normalize/location_extract.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/normalize/location_extract.sql
rename to extras/tiger_geocoder/normalize/location_extract.sql
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_exact.sql b/extras/tiger_geocoder/normalize/location_extract_countysub_exact.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_exact.sql
rename to extras/tiger_geocoder/normalize/location_extract_countysub_exact.sql
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_fuzzy.sql b/extras/tiger_geocoder/normalize/location_extract_countysub_fuzzy.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/normalize/location_extract_countysub_fuzzy.sql
rename to extras/tiger_geocoder/normalize/location_extract_countysub_fuzzy.sql
diff --git a/extras/tiger_geocoder/normalize/location_extract_place_exact.sql b/extras/tiger_geocoder/normalize/location_extract_place_exact.sql
new file mode 100644
index 0000000..1ab6101
--- /dev/null
+++ b/extras/tiger_geocoder/normalize/location_extract_place_exact.sql
@@ -0,0 +1,60 @@
+-- location_extract_place_exact(string, stateAbbrev)
+-- This function checks the place_lookup table to find a potential match to
+-- the location described at the end of the given string.  If an exact match
+-- fails, a fuzzy match is performed.  The location as found in the given
+-- string is returned.
+CREATE OR REPLACE FUNCTION location_extract_place_exact(
+    fullStreet VARCHAR,
+    stateAbbrev VARCHAR
+) RETURNS VARCHAR
+AS $_$
+DECLARE
+  ws VARCHAR;
+  location VARCHAR;
+  tempInt INTEGER;
+  lstate VARCHAR;
+  rec RECORD;
+BEGIN
+  ws := E'[ ,.\n\f\t]';
+
+  -- Try for an exact match against places
+  IF stateAbbrev IS NOT NULL THEN
+    lstate := statefp FROM state WHERE stusps = stateAbbrev;
+    SELECT INTO tempInt count(*) FROM place
+        WHERE place.statefp = lstate AND fullStreet ILIKE '%' || name || '%'
+        AND texticregexeq(fullStreet, '(?i)' || name || '$');
+  ELSE
+    SELECT INTO tempInt count(*) FROM place
+        WHERE fullStreet ILIKE '%' || name || '%' AND
+        	texticregexeq(fullStreet, '(?i)' || name || '$');
+  END IF;
+
+  IF tempInt > 0 THEN
+    -- Some matches were found.  Look for the last one in the string.
+    IF stateAbbrev IS NOT NULL THEN
+      FOR rec IN SELECT substring(fullStreet, '(?i)('
+          || name || ')$') AS value, name FROM place
+          WHERE place.statefp = lstate AND fullStreet ILIKE '%' || name || '%'
+          AND texticregexeq(fullStreet, '(?i)'
+          || name || '$') ORDER BY length(name) DESC LOOP
+        -- Since the regex is end of string, only the longest (first) result
+        -- is useful.
+        location := rec.value;
+        EXIT;
+      END LOOP;
+    ELSE
+      FOR rec IN SELECT substring(fullStreet, '(?i)('
+          || name || ')$') AS value, name FROM place
+          WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)'
+          || name || '$') ORDER BY length(name) DESC LOOP
+        -- Since the regex is end of string, only the longest (first) result
+        -- is useful.
+        location := rec.value;
+        EXIT;
+      END LOOP;
+    END IF;
+  END IF;
+
+  RETURN location;
+END;
+$_$ LANGUAGE plpgsql STABLE COST 100;
diff --git a/extras/tiger_geocoder/normalize/location_extract_place_fuzzy.sql b/extras/tiger_geocoder/normalize/location_extract_place_fuzzy.sql
new file mode 100644
index 0000000..30451b0
--- /dev/null
+++ b/extras/tiger_geocoder/normalize/location_extract_place_fuzzy.sql
@@ -0,0 +1,88 @@
+-- location_extract_place_fuzzy(string, stateAbbrev)
+-- This function checks the place_lookup table to find a potential match to
+-- the location described at the end of the given string.  If an exact match
+-- fails, a fuzzy match is performed.  The location as found in the given
+-- string is returned.
+CREATE OR REPLACE FUNCTION location_extract_place_fuzzy(
+    fullStreet VARCHAR,
+    stateAbbrev VARCHAR
+) RETURNS VARCHAR
+AS $_$
+DECLARE
+  ws VARCHAR;
+  tempString VARCHAR;
+  location VARCHAR;
+  tempInt INTEGER;
+  word_count INTEGER;
+  rec RECORD;
+  test BOOLEAN;
+  lstate VARCHAR;
+BEGIN
+  ws := E'[ ,.\n\f\t]';
+
+  tempString := substring(fullStreet, '(?i)' || ws
+      || '([a-zA-Z0-9]+)$');
+  IF tempString IS NULL THEN
+      tempString := fullStreet;
+  END IF;
+
+  IF stateAbbrev IS NOT NULL THEN
+    lstate := statefp FROM state WHERE stusps = stateAbbrev;
+    SELECT into tempInt count(*) FROM place
+        WHERE place.statefp = lstate
+        AND soundex(tempString) = end_soundex(name);
+  ELSE
+    SELECT into tempInt count(*) FROM place
+        WHERE soundex(tempString) = end_soundex(name);
+  END IF;
+
+  IF tempInt > 0 THEN
+    -- Some potentials were found.  Begin a word-by-word soundex on each.
+    tempInt := 50;
+    IF stateAbbrev IS NOT NULL THEN
+      FOR rec IN SELECT name FROM place
+          WHERE place.statefp = lstate
+          AND soundex(tempString) = end_soundex(name) LOOP
+        word_count := count_words(rec.name);
+        test := TRUE;
+        tempString := get_last_words(fullStreet, word_count);
+        FOR i IN 1..word_count LOOP
+          IF soundex(split_part(tempString, ' ', i)) !=
+            soundex(split_part(rec.name, ' ', i)) THEN
+            test := FALSE;
+          END IF;
+        END LOOP;
+          IF test THEN
+            -- The soundex matched, determine if the distance is better.
+            IF levenshtein_ignore_case(rec.name, tempString) < tempInt THEN
+              location := tempString;
+              tempInt := levenshtein_ignore_case(rec.name, tempString);
+            END IF;
+          END IF;
+      END LOOP;
+    ELSE
+      FOR rec IN SELECT name FROM place
+          WHERE soundex(tempString) = end_soundex(name) LOOP
+        word_count := count_words(rec.name);
+        test := TRUE;
+        tempString := get_last_words(fullStreet, word_count);
+        FOR i IN 1..word_count LOOP
+          IF soundex(split_part(tempString, ' ', i)) !=
+            soundex(split_part(rec.name, ' ', i)) THEN
+            test := FALSE;
+          END IF;
+        END LOOP;
+          IF test THEN
+            -- The soundex matched, determine if the distance is better.
+            IF levenshtein_ignore_case(rec.name, tempString) < tempInt THEN
+              location := tempString;
+            tempInt := levenshtein_ignore_case(rec.name, tempString);
+          END IF;
+        END IF;
+      END LOOP;
+    END IF;
+  END IF;
+
+  RETURN location;
+END;
+$_$ LANGUAGE plpgsql STABLE;
diff --git a/extras/tiger_geocoder/normalize/normalize_address.sql b/extras/tiger_geocoder/normalize/normalize_address.sql
new file mode 100644
index 0000000..467f582
--- /dev/null
+++ b/extras/tiger_geocoder/normalize/normalize_address.sql
@@ -0,0 +1,711 @@
+-- normalize_address(addressString)
+-- This takes an address string and parses it into address (internal/street)
+-- street name, type, direction prefix and suffix, location, state and
+-- zip code, depending on what can be found in the string.
+--
+-- The US postal address standard is used:
+-- <Street Number> <Direction Prefix> <Street Name> <Street Type>
+-- <Direction Suffix> <Internal Address> <Location> <State> <Zip Code>
+--
+-- State is assumed to be included in the string, and MUST be matchable to
+-- something in the state_lookup table.  Fuzzy matching is used if no direct
+-- match is found.
+--
+-- Two formats of zip code are acceptable: five digit, and five + 4.
+--
+-- The internal addressing indicators are looked up from the
+-- secondary_unit_lookup table.  A following identifier is accepted
+-- but it must start with a digit.
+--
+-- The location is parsed from the string using other indicators, such
+-- as street type, direction suffix or internal address, if available.
+-- If these are not, the location is extracted using comparisons against
+-- the places_lookup table, then the countysub_lookup table to determine
+-- what, in the original string, is intended to be the location.  In both
+-- cases, an exact match is first pursued, then a word-by-word fuzzy match.
+-- The result is not the name of the location from the tables, but the
+-- section of the given string that corresponds to the name from the tables.
+--
+-- Zip codes and street names are not validated.
+--
+-- Direction indicators are extracted by comparison with the direction_lookup
+-- table.
+--
+-- Street addresses are assumed to be a single word, starting with a number.
+-- Address is manditory; if no address is given, and the street is numbered,
+-- the resulting address will be the street name, and the street name
+-- will be an empty string.
+--
+-- In some cases, the street type is part of the street name.
+-- eg State Hwy 22a.  As long as the word following the type starts with a
+-- number (this is usually the case) this will be caught.  Some street names
+-- include a type name, and have a street type that differs.  This will be
+-- handled properly, so long as both are given.  If the street type is
+-- omitted, the street names included type will be parsed as the street type.
+--
+-- The output is currently a colon seperated list of values:
+-- InternalAddress:StreetAddress:DirectionPrefix:StreetName:StreetType:
+-- DirectionSuffix:Location:State:ZipCode
+-- This returns each element as entered.  It's mainly meant for debugging.
+-- There is also another option that returns:
+-- StreetAddress:DirectionPrefixAbbreviation:StreetName:StreetTypeAbbreviation:
+-- DirectionSuffixAbbreviation:Location:StateAbbreviation:ZipCode
+-- This is more standardized and better for use with a geocoder.
+CREATE OR REPLACE FUNCTION normalize_address(in_rawinput character varying)
+  RETURNS norm_addy AS
+$$
+DECLARE
+  debug_flag boolean := get_geocode_setting('debug_normalize_address')::boolean;
+  use_pagc boolean := COALESCE(get_geocode_setting('use_pagc_address_parser')::boolean, false);
+  result norm_addy;
+  addressString VARCHAR;
+  zipString VARCHAR;
+  preDir VARCHAR;
+  postDir VARCHAR;
+  fullStreet VARCHAR;
+  reducedStreet VARCHAR;
+  streetType VARCHAR;
+  state VARCHAR;
+  tempString VARCHAR;
+  tempInt INTEGER;
+  rec RECORD;
+  ws VARCHAR;
+  rawInput VARCHAR;
+  -- is this a highway 
+  -- (we treat these differently since the road name often comes after the streetType)
+  isHighway boolean := false; 
+BEGIN
+  result.parsed := FALSE;
+  IF use_pagc THEN
+  	result := pagc_normalize_address(in_rawinput);
+  	RETURN result;
+  END IF;
+
+  rawInput := trim(in_rawInput);
+
+  IF rawInput IS NULL THEN
+    RETURN result;
+  END IF;
+
+  ws := E'[ ,.\t\n\f\r]';
+
+  IF debug_flag THEN
+    raise notice '% input: %', clock_timestamp(), rawInput;
+  END IF;
+
+  -- Assume that the address begins with a digit, and extract it from
+  -- the input string.
+  addressString := substring(rawInput from E'^([0-9].*?)[ ,/.]');
+
+  IF debug_flag THEN
+    raise notice '% addressString: %', clock_timestamp(), addressString;
+  END IF;
+
+  -- There are two formats for zip code, the normal 5 digit , and
+  -- the nine digit zip-4.  It may also not exist.
+  
+  zipString := substring(rawInput from ws || E'([0-9]{5})$');
+  IF zipString IS NULL THEN
+    -- Check if the zip is just a partial or a one with -s
+    -- or one that just has more than 5 digits
+    zipString := COALESCE(substring(rawInput from ws || '([0-9]{5})-[0-9]{0,4}$'), 
+                substring(rawInput from ws || '([0-9]{2,5})$'),
+                substring(rawInput from ws || '([0-9]{6,14})$'));
+   
+     -- Check if all we got was a zipcode, of either form
+    IF zipString IS NULL THEN
+      zipString := substring(rawInput from '^([0-9]{5})$');
+      IF zipString IS NULL THEN
+        zipString := substring(rawInput from '^([0-9]{5})-[0-9]{4}$');
+      END IF;
+      -- If it was only a zipcode, then just return it.
+      IF zipString IS NOT NULL THEN
+        result.zip := zipString;
+        result.parsed := TRUE;
+        RETURN result;
+      END IF;
+    END IF;
+  END IF;
+
+  IF debug_flag THEN
+    raise notice '% zipString: %', clock_timestamp(), zipString;
+  END IF;
+
+  IF zipString IS NOT NULL THEN
+    fullStreet := substring(rawInput from '(.*)'
+        || ws || '+' || cull_null(zipString) || '[- ]?([0-9]{4})?$');
+    /** strip off any trailing  spaces or ,**/
+    fullStreet :=  btrim(fullStreet, ' ,');
+    
+  ELSE
+    fullStreet := rawInput;
+  END IF;
+
+  IF debug_flag THEN
+    raise notice '% fullStreet: %', clock_timestamp(), fullStreet;
+  END IF;
+
+  -- FIXME: state_extract should probably be returning a record so we can
+  -- avoid having to parse the result from it.
+  tempString := state_extract(fullStreet);
+  IF tempString IS NOT NULL THEN
+    state := split_part(tempString, ':', 1);
+    result.stateAbbrev := split_part(tempString, ':', 2);
+  END IF;
+
+  IF debug_flag THEN
+    raise notice '% stateAbbrev: %', clock_timestamp(), result.stateAbbrev;
+  END IF;
+
+  -- The easiest case is if the address is comma delimited.  There are some
+  -- likely cases:
+  --   street level, location, state
+  --   street level, location state
+  --   street level, location
+  --   street level, internal address, location, state
+  --   street level, internal address, location state
+  --   street level, internal address location state
+  --   street level, internal address, location
+  --   street level, internal address location
+  -- The first three are useful.
+
+  tempString := substring(fullStreet, '(?i),' || ws || '+(.*?)(,?' || ws ||
+      '*' || cull_null(state) || '$)');
+  IF tempString = '' THEN tempString := NULL; END IF;
+  IF tempString IS NOT NULL THEN
+    IF tempString LIKE '%,%' THEN -- if it has a comma probably has suite, strip it from location
+        result.location := trim(split_part(tempString,',',2));
+    ELSE
+        result.location := tempString;
+    END IF;
+    IF addressString IS NOT NULL THEN
+      fullStreet := substring(fullStreet, '(?i)' || addressString || ws ||
+          '+(.*),' || ws || '+' || result.location);
+    ELSE
+      fullStreet := substring(fullStreet, '(?i)(.*),' || ws || '+' ||
+          result.location);
+    END IF;
+  END IF;
+
+  IF debug_flag THEN
+    raise notice '% fullStreet: %',  clock_timestamp(), fullStreet;
+    raise notice '% location: %', clock_timestamp(), result.location;
+  END IF;
+
+  -- Pull out the full street information, defined as everything between the
+  -- address and the state.  This includes the location.
+  -- This doesnt need to be done if location has already been found.
+  IF result.location IS NULL THEN
+    IF addressString IS NOT NULL THEN
+      IF state IS NOT NULL THEN
+        fullStreet := substring(fullStreet, '(?i)' || addressString ||
+            ws || '+(.*?)' || ws || '+' || state);
+      ELSE
+        fullStreet := substring(fullStreet, '(?i)' || addressString ||
+            ws || '+(.*?)');
+      END IF;
+    ELSE
+      IF state IS NOT NULL THEN
+        fullStreet := substring(fullStreet, '(?i)(.*?)' || ws ||
+            '+' || state);
+      ELSE
+        fullStreet := substring(fullStreet, '(?i)(.*?)');
+      END IF;
+    END IF;
+
+    IF debug_flag THEN
+      raise notice '% fullStreet: %', clock_timestamp(),fullStreet;
+    END IF;
+
+    IF debug_flag THEN
+      raise notice '% start location extract', clock_timestamp();
+    END IF;
+    result.location := location_extract(fullStreet, result.stateAbbrev);
+
+    IF debug_flag THEN
+      raise notice '% end location extract', clock_timestamp();
+    END IF;
+
+    -- A location can't be a street type, sorry.
+    IF lower(result.location) IN (SELECT lower(name) FROM street_type_lookup) THEN
+        result.location := NULL;
+    END IF;
+
+    -- If the location was found, remove it from fullStreet
+    IF result.location IS NOT NULL THEN
+      fullStreet := substring(fullStreet, '(?i)(.*)' || ws || '+' ||
+          result.location);
+    END IF;
+  END IF;
+
+  IF debug_flag THEN
+    raise notice 'fullStreet: %', fullStreet;
+    raise notice 'location: %', result.location;
+  END IF;
+
+  -- Determine if any internal address is included, such as apartment
+  -- or suite number.
+  -- this count is surprisingly slow by itself but much faster if you add an ILIKE AND clause
+  SELECT INTO tempInt count(*) FROM secondary_unit_lookup
+      WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name || '('
+          || ws || '|$)');
+  IF tempInt = 1 THEN
+    result.internal := substring(fullStreet, '(?i)' || ws || '('
+        || name ||  ws || '*#?' || ws
+        || '*(?:[0-9][-0-9a-zA-Z]*)?' || ')(?:' || ws || '|$)')
+        FROM secondary_unit_lookup
+        WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name || '('
+        || ws || '|$)');
+    ELSIF tempInt > 1 THEN
+    -- In the event of multiple matches to a secondary unit designation, we
+    -- will assume that the last one is the true one.
+    tempInt := 0;
+    FOR rec in SELECT trim(substring(fullStreet, '(?i)' || ws || '('
+        || name || '(?:' || ws || '*#?' || ws
+        || '*(?:[0-9][-0-9a-zA-Z]*)?)' || ws || '?|$)')) as value
+        FROM secondary_unit_lookup
+        WHERE fullStreet ILIKE '%' || name || '%' AND  texticregexeq(fullStreet, '(?i)' || ws || name || '('
+        || ws || '|$)') LOOP
+      IF tempInt < position(rec.value in fullStreet) THEN
+        tempInt := position(rec.value in fullStreet);
+        result.internal := rec.value;
+      END IF;
+    END LOOP;
+  END IF;
+
+  IF debug_flag THEN
+    raise notice 'internal: %', result.internal;
+  END IF;
+
+  IF result.location IS NULL THEN
+    -- If the internal address is given, the location is everything after it.
+    result.location := trim(substring(fullStreet, result.internal || ws || '+(.*)$'));
+  END IF;
+
+  IF debug_flag THEN
+    raise notice 'location: %', result.location;
+  END IF;
+
+  -- Pull potential street types from the full street information
+  -- this count is surprisingly slow by itself but much faster if you add an ILIKE AND clause
+  -- difference of 98ms vs 16 ms for example
+  -- Put a space in front to make regex easier can always count on it starting with space
+  -- Reject all street types where the fullstreet name is equal to the name
+  fullStreet := ' ' || trim(fullStreet);
+  tempInt := count(*) FROM street_type_lookup
+      WHERE fullStreet ILIKE '%' || name || '%' AND 
+        trim(upper(fullStreet)) != name AND
+        texticregexeq(fullStreet, '(?i)' || ws || '(' || name
+      || ')(?:' || ws || '|$)');
+  IF tempInt = 1 THEN
+    SELECT INTO rec abbrev, substring(fullStreet, '(?i)' || ws || '('
+        || name || ')(?:' || ws || '|$)') AS given, is_hw FROM street_type_lookup
+        WHERE fullStreet ILIKE '%' || name || '%' AND 
+             trim(upper(fullStreet)) != name AND
+            texticregexeq(fullStreet, '(?i)' || ws || '(' || name
+        || ')(?:' || ws || '|$)')  ;
+    streetType := rec.given;
+    result.streetTypeAbbrev := rec.abbrev;
+    isHighway :=  rec.is_hw;
+    IF debug_flag THEN
+    	   RAISE NOTICE 'street Type: %, street Type abbrev: %', rec.given, rec.abbrev;
+    END IF;
+  ELSIF tempInt > 1 THEN
+    tempInt := 0;
+    -- the last matching abbrev in the string is the most likely one
+    FOR rec IN SELECT * FROM 
+    	(SELECT abbrev, name, substring(fullStreet, '(?i)' || ws || '?('
+        || name || ')(?:' || ws || '|$)') AS given, is_hw ,
+        		RANK() OVER( ORDER BY position(name IN upper(trim(fullStreet))) ) As n_start,
+        		RANK() OVER( ORDER BY position(name IN upper(trim(fullStreet))) + length(name) ) As n_end,
+        		COUNT(*) OVER() As nrecs, position(name IN upper(trim(fullStreet)))
+        		FROM street_type_lookup
+        WHERE fullStreet ILIKE '%' || name || '%'  AND 
+            trim(upper(fullStreet)) != name AND 
+            (texticregexeq(fullStreet, '(?i)' || ws || '(' || name 
+            -- we only consider street types that are regular and not at beginning of name or are highways (since those can be at beg or end)
+            -- we take the one that is the longest e.g Country Road would be more correct than Road
+        || ')(?:' || ws || '|$)') OR (is_hw AND fullstreet ILIKE name || ' %') )
+     AND ((NOT is_hw AND position(name IN upper(trim(fullStreet))) > 1 OR is_hw) )
+        ) As foo
+        -- N_start - N_end - ensure we first get the one with the most overlapping sub types 
+        -- Then of those get the one that ends last and then starts first
+        ORDER BY n_start - n_end, n_end DESC, n_start LIMIT 1  LOOP
+      -- If we have found an internal address, make sure the type
+      -- precedes it.
+      /** TODO: I don't think we need a loop anymore since we are just returning one and the one in the last position
+      * I'll leave for now though **/
+      IF result.internal IS NOT NULL THEN
+        IF position(rec.given IN fullStreet) < position(result.internal IN fullStreet) THEN
+          IF tempInt < position(rec.given IN fullStreet) THEN
+            streetType := rec.given;
+            result.streetTypeAbbrev := rec.abbrev;
+            isHighway := rec.is_hw;
+            tempInt := position(rec.given IN fullStreet);
+          END IF;
+        END IF;
+      ELSIF tempInt < position(rec.given IN fullStreet) THEN
+        streetType := rec.given;
+        result.streetTypeAbbrev := rec.abbrev;
+        isHighway := rec.is_hw;
+        tempInt := position(rec.given IN fullStreet);
+        IF debug_flag THEN
+        	RAISE NOTICE 'street Type: %, street Type abbrev: %', rec.given, rec.abbrev;
+        END IF;
+      END IF;
+    END LOOP;
+  END IF;
+
+  IF debug_flag THEN
+    raise notice '% streetTypeAbbrev: %', clock_timestamp(), result.streetTypeAbbrev;
+  END IF;
+
+  -- There is a little more processing required now.  If the word after the
+  -- street type begins with a number, then its most likely a highway like State Route 225a.  If
+  -- In Tiger 2010+ the reduced Street name just has the number
+  -- the next word starts with a char, then everything after the street type
+  -- will be considered location.  If there is no street type, then I'm sad.
+  IF streetType IS NOT NULL THEN
+    -- Check if the fullStreet contains the streetType and ends in just numbers
+    -- If it does its a road number like a country road or state route or other highway
+    -- Just set the number to be the name of street
+    
+    tempString := NULL;
+    IF isHighway THEN
+        tempString :=  substring(fullStreet, streetType || ws || '+' || E'([0-9a-zA-Z]+)' || ws || '*');
+    END IF;    
+    IF tempString > '' AND result.location IS NOT NULL THEN
+        reducedStreet := tempString;
+        result.streetName := reducedStreet;
+        IF debug_flag THEN
+        	RAISE NOTICE 'reduced Street: %', result.streetName;
+        END IF;
+        -- the post direction might be portion of fullStreet after reducedStreet and type
+		-- reducedStreet: 24  fullStreet: Country Road 24, N or fullStreet: Country Road 24 N
+		tempString := regexp_replace(fullStreet, streetType || ws || '+' || reducedStreet,'');
+		IF tempString > '' THEN
+			IF debug_flag THEN
+				RAISE NOTICE 'remove reduced street: % + streetType: % from fullstreet: %', reducedStreet, streetType, fullStreet;
+			END IF;
+			tempString := abbrev FROM direction_lookup WHERE
+			 tempString ILIKE '%' || name || '%'  AND texticregexeq(reducedStreet || ws || '+' || streetType, '(?i)(' || name || ')' || ws || '+|$')
+			 	ORDER BY length(name) DESC LIMIT 1;
+			IF tempString IS NOT NULL THEN
+				result.postDirAbbrev = trim(tempString);
+				IF debug_flag THEN
+					RAISE NOTICE 'postDirAbbre of highway: %', result.postDirAbbrev;
+				END IF;
+			END IF;
+		END IF;
+    ELSE
+        tempString := substring(fullStreet, streetType || ws ||
+            E'+([0-9][^ ,.\t\r\n\f]*?)' || ws);
+        IF tempString IS NOT NULL THEN
+          IF result.location IS NULL THEN
+            result.location := substring(fullStreet, streetType || ws || '+'
+                     || tempString || ws || '+(.*)$');
+          END IF;
+          reducedStreet := substring(fullStreet, '(.*)' || ws || '+'
+                        || result.location || '$');
+          streetType := NULL;
+          result.streetTypeAbbrev := NULL;
+        ELSE
+          IF result.location IS NULL THEN
+            result.location := substring(fullStreet, streetType || ws || '+(.*)$');
+          END IF;
+          reducedStreet := substring(fullStreet, '^(.*)' || ws || '+'
+                        || streetType);
+          IF COALESCE(trim(reducedStreet),'') = '' THEN --reduced street can't be blank
+            reducedStreet := fullStreet;
+            streetType := NULL;
+            result.streetTypeAbbrev := NULL;
+          END IF;
+        END IF;
+		-- the post direction might be portion of fullStreet after reducedStreet
+		-- reducedStreet: Main  fullStreet: Main St, N or fullStreet: Main St N
+		tempString := trim(regexp_replace(fullStreet,  reducedStreet ||  ws || '+' || streetType,''));
+		IF tempString > '' THEN
+		  tempString := abbrev FROM direction_lookup WHERE
+			 tempString ILIKE '%' || name || '%'  
+			 AND texticregexeq(fullStreet || ' ', '(?i)' || reducedStreet || ws || '+' || streetType || ws || '+(' || name || ')' || ws || '+')
+			ORDER BY length(name) DESC LIMIT 1;
+		  IF tempString IS NOT NULL THEN
+			result.postDirAbbrev = trim(tempString);
+		  END IF;
+		END IF;
+ 
+
+		IF debug_flag THEN
+			raise notice '% reduced street: %', clock_timestamp(), reducedStreet;
+		END IF;
+		
+		-- The pre direction should be at the beginning of the fullStreet string.
+		-- The post direction should be at the beginning of the location string
+		-- if there is no internal address
+		reducedStreet := trim(reducedStreet);
+		tempString := trim(regexp_replace(fullStreet,  ws || '+' || reducedStreet ||  ws || '+',''));
+		IF tempString > '' THEN
+			tempString := substring(reducedStreet, '(?i)(^' || name
+				|| ')' || ws) FROM direction_lookup WHERE
+				 reducedStreet ILIKE '%' || name || '%'  AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
+				ORDER BY length(name) DESC LIMIT 1;
+		END IF;
+		IF tempString > '' THEN
+		  preDir := tempString;
+		  result.preDirAbbrev := abbrev FROM direction_lookup
+			  where reducedStreet ILIKE '%' || name '%' AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
+			  ORDER BY length(name) DESC LIMIT 1;
+		  result.streetName := trim(substring(reducedStreet, '^' || preDir || ws || '(.*)'));
+		ELSE
+		  result.streetName := trim(reducedStreet);
+		END IF;
+    END IF;
+    IF texticregexeq(result.location, '(?i)' || result.internal || '$') THEN
+      -- If the internal address is at the end of the location, then no
+      -- location was given.  We still need to look for post direction.
+      SELECT INTO rec abbrev,
+          substring(result.location, '(?i)^(' || name || ')' || ws) as value
+          FROM direction_lookup 
+            WHERE result.location ILIKE '%' || name || '%' AND texticregexeq(result.location, '(?i)^'
+          || name || ws) ORDER BY length(name) desc LIMIT 1;
+      IF rec.value IS NOT NULL THEN
+        postDir := rec.value;
+        result.postDirAbbrev := rec.abbrev;
+      END IF;
+      result.location := null;
+    ELSIF result.internal IS NULL THEN
+      -- If no location is given, the location string will be the post direction
+      SELECT INTO tempInt count(*) FROM direction_lookup WHERE
+          upper(result.location) = upper(name);
+      IF tempInt != 0 THEN
+        postDir := result.location;
+        SELECT INTO result.postDirAbbrev abbrev FROM direction_lookup WHERE
+            upper(postDir) = upper(name);
+        result.location := NULL;
+        
+        IF debug_flag THEN
+            RAISE NOTICE '% postDir exact match: %', clock_timestamp(), result.postDirAbbrev;
+        END IF;
+      ELSE
+        -- postDirection is not equal location, but may be contained in it
+        -- It is only considered a postDirection if it is not preceded by a ,
+        SELECT INTO tempString substring(result.location, '(?i)(^' || name
+            || ')' || ws) FROM direction_lookup WHERE
+            result.location ILIKE '%' || name || '%' AND texticregexeq(result.location, '(?i)(^' || name || ')' || ws)
+            	AND NOT  texticregexeq(rawInput, '(?i)(,' || ws || '+' || result.location || ')' || ws)
+            ORDER BY length(name) desc LIMIT 1;
+            
+        IF debug_flag THEN
+            RAISE NOTICE '% location trying to extract postdir: %, tempstring: %, rawInput: %', clock_timestamp(), result.location, tempString, rawInput;
+        END IF;
+        IF tempString IS NOT NULL THEN
+            postDir := tempString;
+            SELECT INTO result.postDirAbbrev abbrev FROM direction_lookup
+              WHERE result.location ILIKE '%' || name || '%' AND texticregexeq(result.location, '(?i)(^' || name || ')' || ws) ORDER BY length(name) DESC LIMIT 1;
+              result.location := substring(result.location, '^' || postDir || ws || '+(.*)');
+            IF debug_flag THEN
+                  RAISE NOTICE '% postDir: %', clock_timestamp(), result.postDirAbbrev;
+            END IF;
+        END IF;
+        
+      END IF;
+    ELSE
+      -- internal is not null, but is not at the end of the location string
+      -- look for post direction before the internal address
+        IF debug_flag THEN
+            RAISE NOTICE '%fullstreet before extract postdir: %', clock_timestamp(), fullStreet;
+        END IF;
+        SELECT INTO tempString substring(fullStreet, '(?i)' || streetType
+          || ws || '+(' || name || ')' || ws || '+' || result.internal)
+          FROM direction_lookup 
+          WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)'
+          || ws || name || ws || '+' || result.internal) ORDER BY length(name) desc LIMIT 1;
+        IF tempString IS NOT NULL THEN
+            postDir := tempString;
+            SELECT INTO result.postDirAbbrev abbrev FROM direction_lookup
+                WHERE texticregexeq(fullStreet, '(?i)' || ws || name || ws);
+        END IF;
+    END IF;
+  ELSE
+  -- No street type was found
+
+    -- If an internal address was given, then the split becomes easy, and the
+    -- street name is everything before it, without directions.
+    IF result.internal IS NOT NULL THEN
+      reducedStreet := substring(fullStreet, '(?i)^(.*?)' || ws || '+'
+                    || result.internal);
+      tempInt := count(*) FROM direction_lookup WHERE
+          reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)' || ws || name || '$');
+      IF tempInt > 0 THEN
+        postDir := substring(reducedStreet, '(?i)' || ws || '('
+            || name || ')' || '$') FROM direction_lookup
+            WHERE reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)' || ws || name || '$');
+        result.postDirAbbrev := abbrev FROM direction_lookup
+            WHERE texticregexeq(reducedStreet, '(?i)' || ws || name || '$');
+      END IF;
+      tempString := substring(reducedStreet, '(?i)^(' || name
+          || ')' || ws) FROM direction_lookup WHERE
+           reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)^(' || name || ')' || ws)
+          ORDER BY length(name) DESC;
+      IF tempString IS NOT NULL THEN
+        preDir := tempString;
+        result.preDirAbbrev := abbrev FROM direction_lookup WHERE
+             reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
+            ORDER BY length(name) DESC;
+        result.streetName := substring(reducedStreet, '(?i)^' || preDir || ws
+                   || '+(.*?)(?:' || ws || '+' || cull_null(postDir) || '|$)');
+      ELSE
+        result.streetName := substring(reducedStreet, '(?i)^(.*?)(?:' || ws
+                   || '+' || cull_null(postDir) || '|$)');
+      END IF;
+    ELSE
+
+      -- If a post direction is given, then the location is everything after,
+      -- the street name is everything before, less any pre direction.
+      fullStreet := trim(fullStreet);
+      tempInt := count(*) FROM direction_lookup
+          WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name || '(?:'
+              || ws || '|$)');
+
+      IF tempInt = 1 THEN
+        -- A single postDir candidate was found.  This makes it easier.
+        postDir := substring(fullStreet, '(?i)' || ws || '('
+            || name || ')(?:' || ws || '|$)') FROM direction_lookup WHERE
+             fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name || '(?:'
+            || ws || '|$)');
+        result.postDirAbbrev := abbrev FROM direction_lookup
+            WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name
+            || '(?:' || ws || '|$)');
+        IF result.location IS NULL THEN
+          result.location := substring(fullStreet, '(?i)' || ws || postDir
+                   || ws || '+(.*?)$');
+        END IF;
+        reducedStreet := substring(fullStreet, '^(.*?)' || ws || '+'
+                      || postDir);
+        tempString := substring(reducedStreet, '(?i)(^' || name
+            || ')' || ws) FROM direction_lookup 
+            WHERE
+                reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
+            ORDER BY length(name) DESC;
+        IF tempString IS NOT NULL THEN
+          preDir := tempString;
+          result.preDirAbbrev := abbrev FROM direction_lookup WHERE
+              reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
+              ORDER BY length(name) DESC;
+          result.streetName := trim(substring(reducedStreet, '^' || preDir || ws
+                     || '+(.*)'));
+        ELSE
+          result.streetName := trim(reducedStreet);
+        END IF;
+      ELSIF tempInt > 1 THEN
+        -- Multiple postDir candidates were found.  We need to find the last
+        -- incident of a direction, but avoid getting the last word from
+        -- a two word direction. eg extracting "East" from "North East"
+        -- We do this by sorting by length, and taking the last direction
+        -- in the results that is not included in an earlier one.
+        -- This wont be a problem it preDir is North East and postDir is
+        -- East as the regex requires a space before the direction.  Only
+        -- the East will return from the preDir.
+        tempInt := 0;
+        FOR rec IN SELECT abbrev, substring(fullStreet, '(?i)' || ws || '('
+            || name || ')(?:' || ws || '|$)') AS value
+            FROM direction_lookup
+            WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name
+            || '(?:' || ws || '|$)')
+            ORDER BY length(name) desc LOOP
+          tempInt := 0;
+          IF tempInt < position(rec.value in fullStreet) THEN
+            IF postDir IS NULL THEN
+              tempInt := position(rec.value in fullStreet);
+              postDir := rec.value;
+              result.postDirAbbrev := rec.abbrev;
+            ELSIF NOT texticregexeq(postDir, '(?i)' || rec.value) THEN
+              tempInt := position(rec.value in fullStreet);
+              postDir := rec.value;
+              result.postDirAbbrev := rec.abbrev;
+             END IF;
+          END IF;
+        END LOOP;
+        IF result.location IS NULL THEN
+          result.location := substring(fullStreet, '(?i)' || ws || postDir || ws
+                   || '+(.*?)$');
+        END IF;
+        reducedStreet := substring(fullStreet, '(?i)^(.*?)' || ws || '+'
+                      || postDir);
+        SELECT INTO tempString substring(reducedStreet, '(?i)(^' || name
+            || ')' || ws) FROM direction_lookup WHERE
+             reducedStreet ILIKE '%' || name || '%' AND  texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
+            ORDER BY length(name) DESC;
+        IF tempString IS NOT NULL THEN
+          preDir := tempString;
+          SELECT INTO result.preDirAbbrev abbrev FROM direction_lookup WHERE
+              reducedStreet ILIKE '%' || name || '%' AND  texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
+              ORDER BY length(name) DESC;
+          result.streetName := substring(reducedStreet, '^' || preDir || ws
+                     || '+(.*)');
+        ELSE
+          result.streetName := reducedStreet;
+        END IF;
+      ELSE
+
+        -- There is no street type, directional suffix or internal address
+        -- to allow distinction between street name and location.
+        IF result.location IS NULL THEN
+          IF debug_flag THEN
+            raise notice 'fullStreet: %', fullStreet;
+          END IF;
+
+          result.location := location_extract(fullStreet, result.stateAbbrev);
+          -- If the location was found, remove it from fullStreet
+          IF result.location IS NOT NULL THEN
+            fullStreet := substring(fullStreet, '(?i)(.*),' || ws || '+' ||
+                result.location);
+          END IF;
+        END IF;
+
+        -- Check for a direction prefix.
+        SELECT INTO tempString substring(fullStreet, '(?i)(^' || name
+            || ')' || ws) FROM direction_lookup WHERE
+            texticregexeq(fullStreet, '(?i)(^' || name || ')' || ws)
+            ORDER BY length(name);
+        IF tempString IS NOT NULL THEN
+          preDir := tempString;
+          SELECT INTO result.preDirAbbrev abbrev FROM direction_lookup WHERE
+              texticregexeq(fullStreet, '(?i)(^' || name || ')' || ws)
+              ORDER BY length(name) DESC;
+          IF result.location IS NOT NULL THEN
+            -- The location may still be in the fullStreet, or may
+            -- have been removed already
+            result.streetName := substring(fullStreet, '^' || preDir || ws
+                       || '+(.*?)(' || ws || '+' || result.location || '|$)');
+          ELSE
+            result.streetName := substring(fullStreet, '^' || preDir || ws
+                       || '+(.*?)' || ws || '*');
+          END IF;
+        ELSE
+          IF result.location IS NOT NULL THEN
+            -- The location may still be in the fullStreet, or may
+            -- have been removed already
+            result.streetName := substring(fullStreet, '^(.*?)(' || ws
+                       || '+' || result.location || '|$)');
+          ELSE
+            result.streetName := fullStreet;
+          END IF;
+        END IF;
+      END IF;
+    END IF;
+  END IF;
+
+ -- For address number only put numbers and stop if reach a non-number e.g. 123-456 will return 123
+  result.address := to_number(substring(addressString, '[0-9]+'), '99999999999');
+   --get rid of extraneous spaces before we return
+  result.zip := trim(zipString);
+  result.streetName := trim(result.streetName);
+  result.location := trim(result.location);
+  result.postDirAbbrev := trim(result.postDirAbbrev);
+  result.parsed := TRUE;
+  RETURN result;
+END
+$$
+  LANGUAGE plpgsql IMMUTABLE STRICT
+  COST 100;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/normalize/pprint_addy.sql b/extras/tiger_geocoder/normalize/pprint_addy.sql
new file mode 100644
index 0000000..7d0f2d8
--- /dev/null
+++ b/extras/tiger_geocoder/normalize/pprint_addy.sql
@@ -0,0 +1,43 @@
+-- helper function to determine if street type 
+-- should be put before or after the street name
+-- note in streettype lookup this is misnamed as is_hw
+-- because I originally thought only highways had that behavior
+-- it applies to foreign influenced roads like Camino (for road)
+CREATE OR REPLACE FUNCTION is_pretype(text) RETURNS boolean AS
+$$
+    SELECT EXISTS(SELECT name FROM street_type_lookup WHERE upper(name) = upper($1) AND is_hw );
+$$
+LANGUAGE sql IMMUTABLE STRICT; /** I know this should be stable but it's practically immutable :) **/
+
+CREATE OR REPLACE FUNCTION pprint_addy(
+    input NORM_ADDY
+) RETURNS VARCHAR
+AS $_$
+DECLARE
+  result VARCHAR;
+BEGIN
+  IF NOT input.parsed THEN
+    RETURN NULL;
+  END IF;
+
+  result := cull_null(input.address::text)
+         || COALESCE(' ' || input.preDirAbbrev, '')
+         || CASE WHEN is_pretype(input.streetTypeAbbrev) THEN ' ' || input.streetTypeAbbrev  ELSE '' END
+         || COALESCE(' ' || input.streetName, '')
+         || CASE WHEN NOT is_pretype(input.streetTypeAbbrev) THEN ' ' || input.streetTypeAbbrev  ELSE '' END
+         || COALESCE(' ' || input.postDirAbbrev, '')
+         || CASE WHEN
+              input.address IS NOT NULL OR
+              input.streetName IS NOT NULL
+              THEN ', ' ELSE '' END
+         || cull_null(input.internal)
+         || CASE WHEN input.internal IS NOT NULL THEN ', ' ELSE '' END
+         || cull_null(input.location)
+         || CASE WHEN input.location IS NOT NULL THEN ', ' ELSE '' END
+         || COALESCE(input.stateAbbrev || ' ' , '')
+         || cull_null(input.zip);
+
+  RETURN trim(result);
+
+END;
+$_$ LANGUAGE plpgsql IMMUTABLE;
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/state_extract.sql b/extras/tiger_geocoder/normalize/state_extract.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/normalize/state_extract.sql
rename to extras/tiger_geocoder/normalize/state_extract.sql
diff --git a/extras/tiger_geocoder/pagc_normalize/pagc_normalize_address.sql b/extras/tiger_geocoder/pagc_normalize/pagc_normalize_address.sql
new file mode 100644
index 0000000..6718c85
--- /dev/null
+++ b/extras/tiger_geocoder/pagc_normalize/pagc_normalize_address.sql
@@ -0,0 +1,50 @@
+-- pagc_normalize_address(addressString)
+-- This takes an address string and parses it into address (internal/street)
+-- street name, type, direction prefix and suffix, location, state and
+-- zip code, depending on what can be found in the string.
+-- This is a drop in replacement for packaged normalize_address
+-- that uses the pagc address standardizer C library instead
+-- USAGE: SELECT * FROM tiger.pagc_normalize_address('One Devonshire Place, PH 301, Boston, MA 02109');
+SELECT tiger.SetSearchPathForInstall('tiger');
+CREATE OR REPLACE FUNCTION pagc_normalize_address(in_rawinput character varying)
+  RETURNS norm_addy AS
+$$
+DECLARE
+  result norm_addy;
+  var_rec RECORD;
+  var_parse_rec RECORD;
+  rawInput VARCHAR;
+
+BEGIN
+  result.parsed := FALSE;
+
+  rawInput := trim(in_rawinput);
+  var_parse_rec := parse_address(rawInput);
+  result.location := var_parse_rec.city;
+  result.stateAbbrev := trim(var_parse_rec.state);
+  result.zip := var_parse_rec.zip;
+
+ var_rec := standardize_address('pagc_lex'
+       , 'pagc_gaz'
+       , 'pagc_rules'
+, COALESCE(var_parse_rec.address1,''), 
+   COALESCE(', ' || var_parse_rec.city,'') || COALESCE(', ' || var_parse_rec.state, '') || COALESCE(' ' || var_parse_rec.zip,'')  ) ;
+ 
+ -- For address number only put numbers and stop if reach a non-number e.g. 123-456 will return 123
+  result.address := to_number(substring(var_rec.house_num, '[0-9]+'), '99999999999');
+   --get rid of extraneous spaces before we return
+  result.zip := COALESCE(var_rec.postcode,result.zip);
+  result.streetName := trim(var_rec.name);
+  result.location := trim(var_rec.city);
+  result.stateAbbrev := trim(var_rec.state);
+  --this should be broken out separately like pagc, but normalizer doesn't have a slot for it
+  result.streettypeAbbrev := trim(COALESCE(var_rec.suftype, var_rec.pretype)); 
+  result.preDirAbbrev := trim(var_rec.predir);
+  result.postDirAbbrev := trim(var_rec.sufdir);
+  result.internal := trim(var_rec.unit);
+  result.parsed := TRUE;
+  RETURN result;
+END
+$$
+  LANGUAGE plpgsql IMMUTABLE STRICT
+  COST 100;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/pagc_normalize/pagc_tables.sql b/extras/tiger_geocoder/pagc_normalize/pagc_tables.sql
new file mode 100644
index 0000000..7bac89a
--- /dev/null
+++ b/extras/tiger_geocoder/pagc_normalize/pagc_tables.sql
@@ -0,0 +1,8187 @@
+--  Lookup tables used by pagc to standardize in format expected by tiger geocoder 
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = on;
+SELECT tiger.SetSearchPathForInstall('tiger');
+CREATE OR REPLACE FUNCTION install_pagc_tables() 
+	RETURNS void AS
+$$
+DECLARE var_temp text;
+BEGIN
+	var_temp := tiger.SetSearchPathForInstall('tiger'); /** set set search path to have tiger in front **/
+	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_gaz')  THEN
+		CREATE TABLE pagc_gaz (id serial NOT NULL primary key ,seq integer ,word text, stdword text, token integer,is_custom boolean NOT NULL default true);
+		GRANT SELECT ON pagc_gaz TO public;
+	END IF;
+	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_lex')  THEN
+		CREATE TABLE pagc_lex (id serial NOT NULL primary key,seq integer,word text,stdword text,token integer,is_custom boolean NOT NULL default true);
+		GRANT SELECT ON pagc_lex TO public;
+	END IF;
+	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_rules')  THEN
+		CREATE TABLE pagc_rules (id serial NOT NULL primary key,rule text, is_custom boolean DEFAULT true);
+		GRANT SELECT ON pagc_rules TO public;
+	END IF;
+	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_gaz' AND data_type='text')  THEN
+	-- its probably old table structure change type of lex and gaz columns
+		ALTER TABLE tiger.pagc_lex ALTER COLUMN word TYPE text;
+		ALTER TABLE tiger.pagc_lex ALTER COLUMN stdword TYPE text;
+		ALTER TABLE tiger.pagc_gaz ALTER COLUMN word TYPE text;
+		ALTER TABLE tiger.pagc_gaz ALTER COLUMN stdword TYPE text;
+	END IF;
+	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_rules' AND column_name = 'is_custom' )  THEN
+	-- its probably old table structure add column
+		ALTER TABLE tiger.pagc_rules ADD COLUMN is_custom boolean NOT NULL DEFAULT false;
+	END IF;
+END;
+$$
+language plpgsql;
+
+
+SELECT install_pagc_tables();
+DELETE FROM pagc_gaz WHERE is_custom = false;
+DELETE FROM pagc_lex WHERE is_custom = false;
+DELETE FROM pagc_rules WHERE is_custom = false OR id < 10000;
+
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (1, 1, 'AB', 'ALBERTA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (2, 2, 'AB', 'ALBERTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (3, 3, 'AB', 'ALBERTA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (4, 1, 'AFB', 'AIR FORCE BASE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (5, 1, 'A F B', 'AIR FORCE BASE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (6, 1, 'AIR FORCE BASE', 'AIR FORCE BASE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (8, 2, 'AK', 'ALASKA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (11, 2, 'AL', 'ALABAMA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (14, 2, 'ALA', 'ALABAMA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (17, 2, 'ALABAMA', 'ALABAMA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (19, 2, 'ALASKA', 'ALASKA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (20, 1, 'ALBERTA', 'ALBERTA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (21, 2, 'ALBERTA', 'ALBERTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (23, 2, 'AR', 'ARKANSAS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (26, 2, 'ARIZ', 'ARIZONA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (29, 2, 'ARIZONA', 'ARIZONA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (31, 2, 'ARK', 'ARKANSAS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (34, 2, 'ARKANSAS', 'ARKANSAS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (36, 2, 'AZ', 'ARIZONA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (38, 1, 'B C', 'BRITISH COLUMBIA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (39, 2, 'B C', 'BRITISH COLUMBIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (40, 3, 'B C', 'BRITISH COLUMBIA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (41, 1, 'BC', 'BRITISH COLUMBIA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (42, 2, 'BC', 'BRITISH COLUMBIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (43, 3, 'BC', 'BRITISH COLUMBIA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (44, 1, 'BRITISH COLUMBIA', 'BRITISH COLUMBIA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (45, 2, 'BRITISH COLUMBIA', 'BRITISH COLUMBIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (47, 2, 'CA', 'CALIFORNIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (49, 4, 'CA', 'CANADA', 12, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (50, 5, 'CA', 'CARRE', 2, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (52, 2, 'CALIF', 'CALIFORNIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (55, 2, 'CALIFORNIA', 'CALIFORNIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (56, 1, 'CANADA', 'CANADA', 12, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (57, 2, 'CANADA', 'CANADA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (59, 2, 'CO', 'COLORADO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (61, 1, 'COLOMBIE BRITANNIQUE', 'BRITISH COLUMBIA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (62, 2, 'COLOMBIE BRITANNIQUE', 'BRITISH COLUMBIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (64, 2, 'COLORADO', 'COLORADO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (66, 2, 'CONN', 'CONNECTICUT', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (69, 2, 'CONNECTICUT', 'CONNECTICUT', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (71, 2, 'CT', 'CONNECTICUT', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (74, 2, 'DC', 'DC', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (77, 3, 'DE', 'DELAWARE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (79, 2, 'DEL', 'DELAWARE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (82, 2, 'DELAWARE', 'DELAWARE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (84, 2, 'DC', 'DISTRICT OF COLUMBIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (85, 2, 'EL PASO', 'EL PASO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (87, 2, 'FL', 'FLORIDA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (90, 2, 'FLA', 'FLORIDA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (93, 2, 'FLORIDA', 'FLORIDA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (94, 1, 'FRKS', 'FORKS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (96, 2, 'GA', 'GEORGIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (99, 2, 'GEORGIA', 'GEORGIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (101, 2, 'HAWAII', 'HAWAII', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (103, 2, 'HI', 'HAWAII', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (106, 2, 'IA', 'IOWA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (109, 2, 'ID', 'IDAHO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (112, 2, 'IDAHO', 'IDAHO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (114, 2, 'IL', 'ILLINOIS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (116, 1, 'ILE DU PRINCE EDOUARD', 'PRINCE EDWARD ISLAND', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (117, 2, 'ILE DU PRINCE EDOUARD', 'PRINCE EDWARD ISLAND', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (119, 2, 'ILL', 'ILLINOIS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (122, 2, 'ILLINOIS', 'ILLINOIS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (124, 2, 'IN', 'INDIANA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (127, 2, 'IND', 'INDIANA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (130, 2, 'INDIANA', 'INDIANA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (132, 2, 'IOWA', 'IOWA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (134, 2, 'KANSAS', 'KANSAS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (136, 2, 'KENT', 'KENTUCKY', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (139, 2, 'KENTUCKY', 'KENTUCKY', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (141, 2, 'KS', 'KANSAS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (144, 2, 'KY', 'KENTUCKY', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (147, 2, 'LA', 'LOUISIANA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (149, 1, 'LABRADOR', 'NEWFOUNDLAND AND LABRADOR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (150, 2, 'LABRADOR', 'NEWFOUNDLAND AND LABRADOR', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (152, 2, 'LOUISIANA', 'LOUISIANA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (154, 2, 'MA', 'MASSACHUSETTS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (156, 4, 'MA', 'MANOR', 2, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (158, 2, 'MAINE', 'MAINE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (159, 1, 'MANITOBA', 'MANITOBA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (160, 2, 'MANITOBA', 'MANITOBA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (162, 2, 'MARYLAND', 'MARYLAND', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (164, 2, 'MASS', 'MASSACHUSETTS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (167, 2, 'MASSACHUSETTS', 'MASSACHUSETTS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (168, 1, 'MB', 'MANITOBA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (169, 2, 'MB', 'MANITOBA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (170, 3, 'MB', 'MANITOBA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (172, 2, 'MD', 'MARYLAND', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (175, 2, 'ME', 'MAINE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (178, 2, 'MI', 'MICHIGAN', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (181, 2, 'MICH', 'MICHIGAN', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (184, 2, 'MICHIGAN', 'MICHIGAN', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (186, 2, 'MINN', 'MINNESOTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (189, 2, 'MINNESOTA', 'MINNESOTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (191, 2, 'MISSISSIPPI', 'MISSISSIPPI', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (193, 2, 'MISSOURI', 'MISSOURI', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (195, 2, 'MN', 'MINNESOTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (198, 2, 'MO', 'MISSOURI', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (201, 2, 'MONT', 'MONTANA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (204, 2, 'MONTANA', 'MONTANA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (206, 2, 'MT', 'MONTANA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (209, 2, 'MS', 'MISSISSIPPI', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (212, 2, 'N CAROLINA', 'NORTH CAROLINA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (214, 2, 'N DAKOTA', 'NORTH DAKOTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (215, 1, 'NB', 'NEW BRUNSWICK', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (216, 2, 'NB', 'NEW BRUNSWICK', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (217, 3, 'NB', 'NEW BRUNSWICK', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (219, 2, 'NC', 'NORTH CAROLINA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (222, 2, 'ND', 'NORTH DAKOTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (225, 2, 'NE', 'NEBRASKA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (228, 2, 'NEB', 'NEBRASKA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (231, 2, 'NEBRASKA', 'NEBRASKA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (233, 2, 'NEV', 'NEVADA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (236, 2, 'NEVADA', 'NEVADA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (237, 1, 'NEW BRUNSWICK', 'NEW BRUNSWICK', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (238, 2, 'NEW BRUNSWICK', 'NEW BRUNSWICK', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (240, 2, 'NEW HAMPSHIRE', 'NEW HAMPSHIRE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (242, 2, 'NEW JERSEY', 'NEW JERSEY', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (244, 2, 'NEW MEXICO', 'NEW MEXICO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (246, 2, 'NEW YORK', 'NEW YORK', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (247, 1, 'NEWFOUNDLAND', 'NEWFOUNDLAND AND LABRADOR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (248, 2, 'NEWFOUNDLAND', 'NEWFOUNDLAND AND LABRADOR', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (249, 1, 'NF', 'NEWFOUNDLAND AND LABRADOR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (250, 2, 'NF', 'NEWFOUNDLAND AND LABRADOR', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (251, 3, 'NF', 'NEWFOUNDLAND AND LABRADOR', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (253, 2, 'NH', 'NEW HAMPSHIRE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (256, 2, 'NJ', 'NEW JERSEY', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (258, 1, 'NL', 'NEWFOUNDLAND AND LABRADOR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (259, 2, 'NL', 'NEWFOUNDLAND AND LABRADOR', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (260, 3, 'NL', 'NEWFOUNDLAND AND LABRADOR', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (262, 2, 'NM', 'NEW MEXICO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (265, 2, 'NORTH CAROLINA', 'NORTH CAROLINA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (267, 2, 'NORTH DAKOTA', 'NORTH DAKOTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (268, 1, 'NORTHWEST', 'NORTHWEST', 22, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (269, 1, 'NORTHWEST TERRITORIES', 'NORTHWEST TERRITORIES', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (270, 2, 'NORTHWEST TERRITORIES', 'NORTHWEST TERRITORIES', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (271, 1, 'NOUVEAU BRUNSWICK', 'NEW BRUNSWICK', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (272, 2, 'NOUVEAU BRUNSWICK', 'NEW BRUNSWICK', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (273, 1, 'NOUVELLE ECOSSE', 'NOVA SCOTIA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (274, 2, 'NOUVELLE ECOSSE', 'NOVA SCOTIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (275, 1, 'NOVA SCOTIA', 'NOVA SCOTIA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (276, 2, 'NOVA SCOTIA', 'NOVA SCOTIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (277, 1, 'NS', 'NOVA SCOTIA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (278, 2, 'NS', 'NOVA SCOTIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (279, 3, 'NS', 'NOVA SCOTIA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (280, 1, 'NT', 'NORTHWEST TERRITORIES', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (281, 2, 'NT', 'NORTHWEST TERRITORIES', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (282, 3, 'NT', 'NORTHWEST TERRITORIES', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (283, 1, 'NU', 'NUNAVUT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (284, 2, 'NU', 'NUNAVUT', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (285, 3, 'NU', 'NUNAVUT', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (286, 1, 'NUNAVUT', 'NUNAVUT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (287, 2, 'NUNAVUT', 'NUNAVUT', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (289, 2, 'NV', 'NEVADA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (292, 2, 'NY', 'NEW YORK', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (295, 2, 'OH', 'OHIO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (298, 2, 'OHIO', 'OHIO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (300, 2, 'OK', 'OKLAHOMA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (303, 2, 'OKLA', 'OKLAHOMA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (306, 2, 'OKLAHOMA', 'OKLAHOMA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (307, 1, 'ON', 'ONTARIO', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (308, 2, 'ON', 'ONTARIO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (309, 3, 'ON', 'ONTARIO', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (310, 1, 'ONT', 'ONTARIO', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (311, 2, 'ONT', 'ONTARIO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (312, 3, 'ONT', 'ONTARIO', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (313, 1, 'ONTARIO', 'ONTARIO', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (314, 2, 'ONTARIO', 'ONTARIO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (316, 2, 'OR', 'OREGON', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (319, 2, 'ORE', 'OREGON', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (322, 2, 'OREGON', 'OREGON', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (324, 2, 'PA', 'PENNSYLVANIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (326, 1, 'PE', 'PRINCE EDWARD ISLAND', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (327, 2, 'PE', 'PRINCE EDWARD ISLAND', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (328, 3, 'PE', 'PRINCE EDWARD ISLAND', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (329, 1, 'PEI', 'PRINCE EDWARD ISLAND', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (330, 2, 'PEI', 'PRINCE EDWARD ISLAND', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (331, 3, 'PEI', 'PRINCE EDWARD ISLAND', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (333, 2, 'PENN', 'PENNSYLVANIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (336, 2, 'PENNA', 'PENNSYLVANIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (339, 2, 'PENNSYLVANIA', 'PENNSYLVANIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (340, 1, 'PQ', 'QUEBEC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (341, 2, 'PQ', 'QUEBEC', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (342, 3, 'PQ', 'QUEBEC', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (344, 2, 'PR', 'PUERTO RICO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (346, 1, 'PRINCE EDWARD ISLAND', 'PRINCE EDWARD ISLAND', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (347, 2, 'PRINCE EDWARD ISLAND', 'PRINCE EDWARD ISLAND', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (349, 2, 'PUERTO RICO', 'PUERTO RICO', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (350, 1, 'QC', 'QUEBEC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (351, 2, 'QC', 'QUEBEC', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (352, 3, 'QC', 'QUEBEC', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (353, 1, 'QUEBEC', 'QUEBEC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (354, 2, 'QUEBEC', 'QUEBEC', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (356, 2, 'RHODE ISLAND', 'RHODE ISLAND', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (358, 2, 'RI', 'RHODE ISLAND', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (361, 2, 'S CAROLINA', 'SOUTH CAROLINA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (363, 2, 'S DAKOTA', 'SOUTH DAKOTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (364, 1, 'SASK', 'SASKATCHEWAN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (365, 2, 'SASK', 'SASKATCHEWAN', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (366, 1, 'SASKATCHEWAN', 'SASKATCHEWAN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (367, 2, 'SASKATCHEWAN', 'SASKATCHEWAN', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (369, 2, 'SC', 'SOUTH CAROLINA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (372, 2, 'SD', 'SOUTH DAKOTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (374, 1, 'SK', 'SASKATCHEWAN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (375, 2, 'SK', 'SASKATCHEWAN', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (376, 3, 'SK', 'SASKATCHEWAN', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (378, 2, 'SOUTH CAROLINA', 'SOUTH CAROLINA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (380, 2, 'SOUTH DAKOTA', 'SOUTH DAKOTA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (382, 2, 'TENN', 'TENNESSEE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (385, 2, 'TENNESSEE', 'TENNESSEE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (386, 1, 'TERRE NEUVE', 'NEWFOUNDLAND', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (387, 2, 'TERRE NEUVE', 'NEWFOUNDLAND', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (388, 1, 'TERRITOIRES DU NORD OUES', 'NORTHWEST TERRITORIES', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (389, 2, 'TERRITOIRES DU NORD OUES', 'NORTHWEST TERRITORIES', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (391, 2, 'TEX', 'TEXAS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (394, 2, 'TEXAS', 'TEXAS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (396, 2, 'TN', 'TENNESSEE', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (399, 2, 'TX', 'TEXAS', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (401, 2, 'U S', 'US', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (402, 3, 'U S', 'USA', 12, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (403, 1, 'U S A', 'USA', 12, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (404, 1, 'UNITED STATES OF AMERICA', 'USA', 12, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (405, 2, 'US', 'US', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (406, 3, 'US', 'USA', 12, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (407, 1, 'USA', 'USA', 12, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (409, 2, 'UT', 'UTAH', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (412, 2, 'UTAH', 'UTAH', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (414, 2, 'VA', 'VIRGINIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (417, 2, 'VERMONT', 'VERMONT', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (419, 2, 'VIRGINIA', 'VIRGINIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (421, 2, 'VT', 'VERMONT', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (424, 2, 'W VIRGINIA', 'WEST VIRGINIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (426, 2, 'WA', 'WASHINGTON', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (429, 2, 'WASH', 'WASHINGTON', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (432, 2, 'WASHINGTON', 'WASHINGTON', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (434, 2, 'WEST VIRGINIA', 'WEST VIRGINIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (436, 2, 'WI', 'WISCONSIN', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (439, 2, 'WISC', 'WISCONSIN', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (442, 2, 'WISCONSIN', 'WISCONSIN', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (444, 2, 'WV', 'WEST VIRGINIA', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (447, 2, 'WY', 'WYOMING', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (450, 2, 'WYOMING', 'WYOMING', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (451, 1, 'YK', 'YUKON', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (452, 2, 'YK', 'YUKON', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (453, 3, 'YK', 'YUKON', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (454, 1, 'YT', 'YUKON', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (455, 2, 'YT', 'YUKON', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (456, 3, 'YT', 'YUKON', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (457, 1, 'YUKON', 'YUKON', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (458, 2, 'YUKON', 'YUKON', 1, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (459, 1, 'BOIS D ARC', 'BOIS D ARC', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (460, 1, 'BOIS D''ARC', 'BOIS D ARC', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (461, 1, 'CAMP H M SMITH', 'CAMP H M SMITH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (462, 1, 'CAMP HM SMITH', 'CAMP H M SMITH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (463, 1, 'COEUR D ALENE', 'COEUR D ALENE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (464, 1, 'COEUR D''ALENE', 'COEUR D ALENE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (465, 1, 'D HANIS', 'D HANIS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (466, 1, 'D''HANIS', 'D HANIS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (467, 1, 'EL PASO', 'EL PASO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (468, 1, 'FORT GEORGE G MEADE', 'FORT GEORGE G MEADE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (469, 1, 'FORT GEORGE MEADE', 'FORT GEORGE G MEADE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (470, 1, 'FORT MEADE', 'FORT GEORGE G MEADE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (471, 1, 'LAND O LAKES', 'LAND O LAKES', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (472, 1, 'LAND O''LAKES', 'LAND O LAKES', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (473, 1, 'M C B H KANEOHE BAY', 'M C B H KANEOHE BAY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (474, 1, 'MCBH KANEOHE BAY', 'M C B H KANEOHE BAY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (475, 1, 'N VAN', 'NORTH VANCOUVER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (476, 1, 'N VANCOUVER', 'NORTH VANCOUVER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (477, 1, 'NO VANCOUVER', 'NORTH VANCOUVER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (478, 1, 'NORTH VANCOUVER', 'NORTH VANCOUVER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (479, 1, 'O BRIEN', 'O BRIEN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (480, 1, 'O''BRIEN', 'O BRIEN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (481, 1, 'O FALLON', 'O FALLON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (482, 1, 'O''FALLON', 'O FALLON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (483, 1, 'O NEALS', 'O NEALS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (484, 1, 'O''NEALS', 'O NEALS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (485, 1, 'ROUND O', 'ROUND O', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (486, 1, 'S COFFEYVILLE', 'SOUTH COFFEYVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (487, 1, 'SOUTH COFFEYVILLE', 'SOUTH COFFEYVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (488, 1, 'U S A F ACADEMY', 'U S A F ACADEMY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (489, 1, 'USAF ACADEMY', 'U S A F ACADEMY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (490, 1, 'W VAN', 'WEST VANCOUVER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (491, 1, 'W VANCOUVER', 'WEST VANCOUVER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (492, 1, 'WEST VANCOUVER', 'WEST VANCOUVER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (493, 1, 'AU GRES', 'AU GRES', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (494, 1, 'AU SABLE FORKS', 'AU SABLE FORKS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (495, 1, 'AU SABLE FRKS', 'AU SABLE FORKS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (496, 1, 'AU TRAIN', 'AU TRAIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (497, 1, 'AVON BY THE SEA', 'AVON BY THE SEA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (498, 1, 'AVON BY SEA', 'AVON BY THE SEA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (499, 1, 'BAYOU LA BATRE', 'BAYOU LA BATRE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (500, 1, 'BIRD IN HAND', 'BIRD IN HAND', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (501, 1, 'CAMDEN ON GAULEY', 'CAMDEN ON GAULEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (502, 1, 'CARDIFF BY THE SEA', 'CARDIFF BY THE SEA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (503, 1, 'CARDIFF BY SEA', 'CARDIFF BY THE SEA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (504, 1, 'CASTLETON ON HUDSON', 'CASTLETON ON HUDSON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (505, 1, 'CAVE IN ROCK', 'CAVE IN ROCK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (506, 1, 'CORNWALL ON HUDSON', 'CORNWALL ON HUDSON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (507, 1, 'CROTON ON HUDSON', 'CROTON ON HUDSON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (508, 1, 'DE BEQUE', 'DE BEQUE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (509, 1, 'DE BERRY', 'DE BERRY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (510, 1, 'DE FOREST', 'DE FOREST', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (511, 1, 'DE GRAFF', 'DE GRAFF', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (512, 1, 'DE KALB', 'DE KALB', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (513, 1, 'DE KALB JUNCTION', 'DE KALB JUNCTION', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (514, 1, 'DE LAND', 'DE LAND', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (515, 1, 'DE LEON', 'DE LEON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (516, 1, 'DE LEON SPRINGS', 'DE LEON SPRINGS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (517, 1, 'DE MOSSVILLE', 'DE MOSSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (518, 1, 'DE PERE', 'DE PERE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (519, 1, 'DE PEYSTER', 'DE PEYSTER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (520, 1, 'DE QUEEN', 'DE QUEEN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (521, 1, 'DE RUYTER', 'DE RUYTER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (522, 1, 'DE SMET', 'DE SMET', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (523, 1, 'DE SOTO', 'DE SOTO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (524, 1, 'DE TOUR VILLAGE', 'DE TOUR VILLAGE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (525, 1, 'DE VALLS BLUFF', 'DE VALLS BLUFF', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (526, 1, 'VALLS BLUFF', 'DE VALLS BLUFF', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (527, 1, 'DE WITT', 'DE WITT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (528, 1, 'DE YOUNG', 'DE YOUNG', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (529, 1, 'DU BOIS', 'DU BOIS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (530, 1, 'DU PONT', 'DU PONT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (531, 1, 'DU QUOIN', 'DU QUOIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (532, 1, 'E MC KEESPORT', 'EAST MC KEESPORT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (533, 1, 'E MCKEESPORT', 'EAST MC KEESPORT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (534, 1, 'EAST MC KEESPORT', 'EAST MC KEESPORT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (535, 1, 'EAST MCKEESPORT', 'EAST MC KEESPORT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (536, 1, 'EL CAJON', 'EL CAJON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (537, 1, 'EL CAMPO', 'EL CAMPO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (538, 1, 'EL CENTRO', 'EL CENTRO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (539, 1, 'EL CERRITO', 'EL CERRITO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (540, 1, 'EL DORADO', 'EL DORADO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (541, 1, 'EL DORADO HILLS', 'EL DORADO HILLS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (542, 1, 'EL DORADO SPRINGS', 'EL DORADO SPRINGS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (543, 1, 'EL MIRAGE', 'EL MIRAGE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (544, 1, 'EL MONTE', 'EL MONTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (545, 1, 'EL NIDO', 'EL NIDO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (546, 1, 'EL PASO', 'EL PASO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (547, 1, 'EL PRADO', 'EL PRADO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (548, 1, 'EL RENO', 'EL RENO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (549, 1, 'EL RITO', 'EL RITO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (550, 1, 'EL SEGUNDO', 'EL SEGUNDO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (551, 1, 'EL SOBRANTE', 'EL SOBRANTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (552, 1, 'FALLS OF ROUGH', 'FALLS OF ROUGH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (553, 1, 'FOND DU LAC', 'FOND DU LAC', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (554, 1, 'FORKS OF SALMON', 'FORKS OF SALMON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (555, 1, 'FORT MC COY', 'FORT MC COY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (556, 1, 'FORT MCCOY', 'FORT MC COY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (557, 1, 'FORT MC KAVETT', 'FORT MC KAVETT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (558, 1, 'FORT MCKAVETT', 'FORT MC KAVETT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (559, 1, 'FT MITCHELL', 'FORT MITCHELL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (560, 1, 'FORT MITCHELL', 'FORT MITCHELL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (561, 1, 'FT MYER', 'FORT MYER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (562, 1, 'FORT MYER', 'FORT MYER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (563, 1, 'FT WARREN AFB', 'FORT WARREN AFB', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (564, 1, 'FORT WARREN AFB', 'FORT WARREN AFB', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (565, 1, 'HASTINGS ON HUDSON', 'HASTINGS ON HUDSON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (566, 1, 'HAVRE DE GRACE', 'HAVRE DE GRACE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (567, 1, 'HI HAT', 'HI HAT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (568, 1, 'HO HO KUS', 'HO HO KUS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (569, 1, 'HOWEY IN THE HILLS', 'HOWEY IN THE HILLS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (570, 1, 'HOWEY IN HILLS', 'HOWEY IN THE HILLS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (571, 1, 'ISLE LA MOTTE', 'ISLE LA MOTTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (572, 1, 'ISLE OF PALMS', 'ISLE OF PALMS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (573, 1, 'ISLE OF SPRINGS', 'ISLE OF SPRINGS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (574, 1, 'JAY EM', 'JAY EM', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (575, 1, 'KING OF PRUSSIA', 'KING OF PRUSSIA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (576, 1, 'LA BARGE', 'LA BARGE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (577, 1, 'LA BELLE', 'LA BELLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (578, 1, 'LA CANADA FLINTRIDGE', 'LA CANADA FLINTRIDGE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (579, 1, 'LA CENTER', 'LA CENTER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (580, 1, 'LA CONNER', 'LA CONNER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (581, 1, 'LA COSTE', 'LA COSTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (582, 1, 'LA CRESCENT', 'LA CRESCENT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (583, 1, 'LA CRESCENTA', 'LA CRESCENTA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (584, 1, 'LA CROSSE', 'LA CROSSE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (585, 1, 'LA FARGE', 'LA FARGE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (586, 1, 'LA FARGEVILLE', 'LA FARGEVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (587, 1, 'LA FAYETTE', 'LA FAYETTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (588, 1, 'LA FERIA', 'LA FERIA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (589, 1, 'LA FOLLETTE', 'LA FOLLETTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (590, 1, 'LA FONTAINE', 'LA FONTAINE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (591, 1, 'LA GRANDE', 'LA GRANDE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (592, 1, 'LA GRANGE', 'LA GRANGE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (593, 1, 'LA GRANGE PARK', 'LA GRANGE PARK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (594, 1, 'LA HABRA', 'LA HABRA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (595, 1, 'LA HARPE', 'LA HARPE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (596, 1, 'LA HONDA', 'LA HONDA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (597, 1, 'LA JARA', 'LA JARA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (598, 1, 'LA JOLLA', 'LA JOLLA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (599, 1, 'LA JOSE', 'LA JOSE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (600, 1, 'LA JOYA', 'LA JOYA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (601, 1, 'LA JUNTA', 'LA JUNTA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (602, 1, 'LA LOMA', 'LA LOMA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (603, 1, 'LA LUZ', 'LA LUZ', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (604, 1, 'LA MADERA', 'LA MADERA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (605, 1, 'LA MARQUE', 'LA MARQUE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (606, 1, 'LA MESA', 'LA MESA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (607, 1, 'LA MIRADA', 'LA MIRADA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (608, 1, 'LA MOILLE', 'LA MOILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (609, 1, 'LA MONTE', 'LA MONTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (610, 1, 'LA MOTTE', 'LA MOTTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (611, 1, 'LA PALMA', 'LA PALMA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (612, 1, 'LA PINE', 'LA PINE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (613, 1, 'LA PLACE', 'LA PLACE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (614, 1, 'LA PLATA', 'LA PLATA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (615, 1, 'LA PORTE', 'LA PORTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (616, 1, 'LA PORTE CITY', 'LA PORTE CITY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (617, 1, 'LA PRAIRIE', 'LA PRAIRIE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (618, 1, 'LA PUENTE', 'LA PUENTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (619, 1, 'LA QUINTA', 'LA QUINTA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (620, 1, 'LA RUE', 'LA RUE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (621, 1, 'LA RUSSELL', 'LA RUSSELL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (622, 1, 'LA SALLE', 'LA SALLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (623, 1, 'LA VALLE', 'LA VALLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (624, 1, 'LA VERGNE', 'LA VERGNE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (625, 1, 'LA VERKIN', 'LA VERKIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (626, 1, 'LA VERNE', 'LA VERNE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (627, 1, 'LA VERNIA', 'LA VERNIA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (628, 1, 'LA VETA', 'LA VETA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (629, 1, 'LA VISTA', 'LA VISTA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (630, 1, 'LAC DU FLAMBEAU', 'LAC DU FLAMBEAU', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (631, 1, 'LAKE IN THE HILLS', 'LAKE IN THE HILLS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (632, 1, 'LAKE IN HILLS', 'LAKE IN THE HILLS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (633, 1, 'LE CENTER', 'LE CENTER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (634, 1, 'LE CLAIRE', 'LE CLAIRE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (635, 1, 'LE GRAND', 'LE GRAND', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (636, 1, 'LE MARS', 'LE MARS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (637, 1, 'LE RAYSVILLE', 'LE RAYSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (638, 1, 'LE ROY', 'LE ROY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (639, 1, 'LE SUEUR', 'LE SUEUR', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (640, 1, 'LE VERNE', 'LU VERNE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (641, 1, 'LU VERNE', 'LU VERNE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (642, 1, 'MARINE ON SAINT CROIX', 'MARINE ON SAINT CROIX', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (643, 1, 'MC ADENVILLE', 'MC ADENVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (644, 1, 'MCADENVILLE', 'MC ADENVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (645, 1, 'MC ALISTER', 'MC ALISTER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (646, 1, 'MCALISTER', 'MC ALISTER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (647, 1, 'MC ALISTERVILLE', 'MC ALISTERVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (648, 1, 'MCALISTERVILLE', 'MC ALISTERVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (649, 1, 'MC ALPIN', 'MC ALPIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (650, 1, 'MCALPIN', 'MC ALPIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (651, 1, 'MC ANDREWS', 'MC ANDREWS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (652, 1, 'MCANDREWS', 'MC ANDREWS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (653, 1, 'MC ARTHUR', 'MC ARTHUR', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (654, 1, 'MCARTHUR', 'MC ARTHUR', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (655, 1, 'MC BAIN', 'MC BAIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (656, 1, 'MCBAIN', 'MC BAIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (657, 1, 'MC BEE', 'MC BEE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (658, 1, 'MCBEE', 'MC BEE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (659, 1, 'MC CALL CREEK', 'MC CALL CREEK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (660, 1, 'MCCALL CREEK', 'MC CALL CREEK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (661, 1, 'MC CALLA', 'MC CALLA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (662, 1, 'MCCALLA', 'MC CALLA', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (663, 1, 'MC CALLSBURG', 'MC CALLSBURG', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (664, 1, 'MCCALLSBURG', 'MC CALLSBURG', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (665, 1, 'MC CAMEY', 'MC CAMEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (666, 1, 'MCCAMEY', 'MC CAMEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (667, 1, 'MC CARLEY', 'MC CARLEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (668, 1, 'MCCARLEY', 'MC CARLEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (669, 1, 'MC CARR', 'MC CARR', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (670, 1, 'MCCARR', 'MC CARR', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (671, 1, 'MC CASKILL', 'MC CASKILL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (672, 1, 'MCCASKILL', 'MC CASKILL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (673, 1, 'MC CAULLEY', 'MC CAULLEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (674, 1, 'MCCAULLEY', 'MC CAULLEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (675, 1, 'MC CAYSVILLE', 'MC CAYSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (676, 1, 'MCCAYSVILLE', 'MC CAYSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (677, 1, 'MC CLAVE', 'MC CLAVE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (678, 1, 'MCCLAVE', 'MC CLAVE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (679, 1, 'MC CLELLAND', 'MC CLELLAND', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (680, 1, 'MCCLELLAND', 'MC CLELLAND', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (681, 1, 'MC CLELLANDTOWN', 'MC CLELLANDTOWN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (682, 1, 'MCCLELLANDTOWN', 'MC CLELLANDTOWN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (683, 1, 'MC CLELLANVILLE', 'MC CLELLANVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (684, 1, 'MCCLELLANVILLE', 'MC CLELLANVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (685, 1, 'MC CLURE', 'MC CLURE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (686, 1, 'MCCLURE', 'MC CLURE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (687, 1, 'MC CLURG', 'MC CLURG', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (688, 1, 'MCCLURG', 'MC CLURG', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (689, 1, 'MC COLL', 'MC COLL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (690, 1, 'MCCOLL', 'MC COLL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (691, 1, 'MC COMB', 'MC COMB', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (692, 1, 'MCCOMB', 'MC COMB', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (693, 1, 'MC CONNELL', 'MC CONNELL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (694, 1, 'MCCONNELL', 'MC CONNELL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (695, 1, 'MC CONNELLS', 'MC CONNELLS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (696, 1, 'MCCONNELLS', 'MC CONNELLS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (697, 1, 'MC CONNELLSBURG', 'MC CONNELLSBURG', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (698, 1, 'MCCONNELLSBURG', 'MC CONNELLSBURG', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (699, 1, 'MC COOK', 'MC COOK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (700, 1, 'MCCOOK', 'MC COOK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (701, 1, 'MC COOL', 'MC COOL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (702, 1, 'MCCOOL', 'MC COOL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (703, 1, 'MC COOL JUNCTION', 'MC COOL JUNCTION', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (704, 1, 'MCCOOL JUNCTION', 'MC COOL JUNCTION', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (705, 1, 'MC CORDSVILLE', 'MC CORDSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (706, 1, 'MCCORDSVILLE', 'MC CORDSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (707, 1, 'MC CORMICK', 'MC CORMICK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (708, 1, 'MCCORMICK', 'MC CORMICK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (709, 1, 'MC COY', 'MC COY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (710, 1, 'MCCOY', 'MC COY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (711, 1, 'MC CRACKEN', 'MC CRACKEN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (712, 1, 'MCCRACKEN', 'MC CRACKEN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (713, 1, 'MC CRORY', 'MC CRORY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (714, 1, 'MCCRORY', 'MC CRORY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (715, 1, 'MC CUNE', 'MC CUNE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (716, 1, 'MCCUNE', 'MC CUNE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (717, 1, 'MC CUTCHENVILLE', 'MC CUTCHENVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (718, 1, 'MCCUTCHENVILLE', 'MC CUTCHENVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (719, 1, 'MC DADE', 'MC DADE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (720, 1, 'MCDADE', 'MC DADE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (721, 1, 'MC DANIELS', 'MC DANIELS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (722, 1, 'MCDANIELS', 'MC DANIELS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (723, 1, 'MC DAVID', 'MC DAVID', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (724, 1, 'MCDAVID', 'MC DAVID', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (725, 1, 'MC DERMOTT', 'MC DERMOTT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (726, 1, 'MCDERMOTT', 'MC DERMOTT', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (727, 1, 'MC DONALD', 'MC DONALD', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (728, 1, 'MCDONALD', 'MC DONALD', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (729, 1, 'MC DONOUGH', 'MC DONOUGH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (730, 1, 'MCDONOUGH', 'MC DONOUGH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (731, 1, 'MC DOWELL', 'MC DOWELL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (732, 1, 'MCDOWELL', 'MC DOWELL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (733, 1, 'MC EWEN', 'MC EWEN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (734, 1, 'MCEWEN', 'MC EWEN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (735, 1, 'MC FALL', 'MC FALL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (736, 1, 'MCFALL', 'MC FALL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (737, 1, 'MC FARLAND', 'MC FARLAND', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (738, 1, 'MCFARLAND', 'MC FARLAND', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (739, 1, 'MC GAHEYSVILLE', 'MC GAHEYSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (740, 1, 'MCGAHEYSVILLE', 'MC GAHEYSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (741, 1, 'MC GEE', 'MC GEE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (742, 1, 'MCGEE', 'MC GEE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (743, 1, 'MC GEHEE', 'MC GEHEE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (744, 1, 'MCGEHEE', 'MC GEHEE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (745, 1, 'MC GRADY', 'MC GRADY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (746, 1, 'MCGRADY', 'MC GRADY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (747, 1, 'MC GRATH', 'MC GRATH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (748, 1, 'MCGRATH', 'MC GRATH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (749, 1, 'MC GRAW', 'MC GRAW', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (750, 1, 'MCGRAW', 'MC GRAW', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (751, 1, 'MC GREGOR', 'MC GREGOR', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (752, 1, 'MCGREGOR', 'MC GREGOR', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (753, 1, 'MC HENRY', 'MC HENRY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (754, 1, 'MCHENRY', 'MC HENRY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (755, 1, 'MC INTIRE', 'MC INTIRE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (756, 1, 'MCINTIRE', 'MC INTIRE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (757, 1, 'MC INTOSH', 'MC INTOSH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (758, 1, 'MCINTOSH', 'MC INTOSH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (759, 1, 'MC INTYRE', 'MC INTYRE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (760, 1, 'MCINTYRE', 'MC INTYRE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (761, 1, 'MC KEAN', 'MC KEAN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (762, 1, 'MCKEAN', 'MC KEAN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (763, 1, 'MC KEE', 'MC KEE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (764, 1, 'MCKEE', 'MC KEE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (765, 1, 'MC KEES ROCKS', 'MC KEES ROCKS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (766, 1, 'MCKEES ROCKS', 'MC KEES ROCKS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (767, 1, 'MC KENNEY', 'MC KENNEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (768, 1, 'MCKENNEY', 'MC KENNEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (769, 1, 'MC KENZIE', 'MC KENZIE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (770, 1, 'MCKENZIE', 'MC KENZIE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (771, 1, 'MC KITTRICK', 'MC KITTRICK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (772, 1, 'MCKITTRICK', 'MC KITTRICK', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (773, 1, 'MC LAIN', 'MC LAIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (774, 1, 'MCLAIN', 'MC LAIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (775, 1, 'MC LAUGHLIN', 'MC LAUGHLIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (776, 1, 'MCLAUGHLIN', 'MC LAUGHLIN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (777, 1, 'MC LEAN', 'MC LEAN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (778, 1, 'MCLEAN', 'MC LEAN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (779, 1, 'MC LEANSBORO', 'MC LEANSBORO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (780, 1, 'MCLEANSBORO', 'MC LEANSBORO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (781, 1, 'MC LEANSVILLE', 'MC LEANSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (782, 1, 'MCLEANSVILLE', 'MC LEANSVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (783, 1, 'MC LEOD', 'MC LEOD', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (784, 1, 'MCLEOD', 'MC LEOD', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (785, 1, 'MC LOUTH', 'MC LOUTH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (786, 1, 'MCLOUTH', 'MC LOUTH', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (787, 1, 'MC MILLAN', 'MC MILLAN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (788, 1, 'MCMILLAN', 'MC MILLAN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (789, 1, 'MC MINNVILLE', 'MC MINNVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (790, 1, 'MCMINNVILLE', 'MC MINNVILLE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (791, 1, 'MC NABB', 'MC NABB', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (792, 1, 'MCNABB', 'MC NABB', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (793, 1, 'MC NEAL', 'MC NEAL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (794, 1, 'MCNEAL', 'MC NEAL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (795, 1, 'MC NEIL', 'MC NEIL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (796, 1, 'MCNEIL', 'MC NEIL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (797, 1, 'MC QUEENEY', 'MC QUEENEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (798, 1, 'MCQUEENEY', 'MC QUEENEY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (799, 1, 'MC RAE', 'MC RAE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (800, 1, 'MCRAE', 'MC RAE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (801, 1, 'MC ROBERTS', 'MC ROBERTS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (802, 1, 'MCROBERTS', 'MC ROBERTS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (803, 1, 'MC SHERRYSTOWN', 'MC SHERRYSTOWN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (804, 1, 'MCSHERRYSTOWN', 'MC SHERRYSTOWN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (805, 1, 'MC VEYTOWN', 'MC VEYTOWN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (806, 1, 'MCVEYTOWN', 'MC VEYTOWN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (807, 1, 'MEADOWS OF DAN', 'MEADOWS OF DAN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (808, 1, 'MI WUK VILLAGE', 'MI WUK VILLAGE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (809, 1, 'MOUTH OF WILSON', 'MOUTH OF WILSON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (810, 1, 'MT ZION', 'MOUNT ZION', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (811, 1, 'MOUNT ZION', 'MOUNT ZION', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (812, 1, 'PE ELL', 'PE ELL', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (813, 1, 'POINT OF ROCKS', 'POINT OF ROCKS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (814, 1, 'PONCE DE LEON', 'PONCE DE LEON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (815, 1, 'PRAIRIE DU CHIEN', 'PRAIRIE DU CHIEN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (816, 1, 'PRAIRIE DU ROCHER', 'PRAIRIE DU ROCHER', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (817, 1, 'PRAIRIE DU SAC', 'PRAIRIE DU SAC', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (818, 1, 'RANCHO SANTA FE', 'RANCHO SANTA FE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (819, 1, 'RANCHOS DE TAOS', 'RANCHOS DE TAOS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (820, 1, 'SAINT JO', 'SAINT JO', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (821, 1, 'SANTA FE', 'SANTA FE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (822, 1, 'SANTA FE SPRINGS', 'SANTA FE SPRINGS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (823, 1, 'S EL MONTE', 'SOUTH EL MONTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (824, 1, 'SOUTH EL MONTE', 'SOUTH EL MONTE', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (825, 1, 'SAINT COLUMBANS', 'SAINT COLUMBANS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (826, 1, 'ST COLUMBANS', 'SAINT COLUMBANS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (827, 1, 'SAINT JOHN', 'SAINT JOHN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (828, 1, 'ST JOHN', 'SAINT JOHN', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (829, 1, 'SAINT THOMAS', 'SAINT THOMAS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (830, 1, 'ST THOMAS', 'SAINT THOMAS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (831, 1, 'TOWNSHIP OF WASHINGTON', 'TOWNSHIP OF WASHINGTON', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (832, 1, 'TRUTH OR CONSEQUENCES', 'TRUTH OR CONSEQUENCES', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (833, 1, 'TY TY', 'TY TY', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (834, 1, 'VILLAGE OF NAGOG WOODS', 'VILLAGE OF NAGOG WOODS', 10, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (7, 1, 'AK', 'AK', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (9, 3, 'AK', 'AK', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (10, 1, 'AL', 'AL', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (12, 3, 'AL', 'AL', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (13, 1, 'ALA', 'AL', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (15, 3, 'ALA', 'AL', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (16, 1, 'ALABAMA', 'AL', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (18, 1, 'ALASKA', 'AK', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (22, 1, 'AR', 'AR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (24, 3, 'AR', 'AR', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (25, 1, 'ARIZ', 'AZ', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (27, 3, 'ARIZ', 'AZ', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (28, 1, 'ARIZONA', 'AZ', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (30, 1, 'ARK', 'AR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (32, 3, 'ARK', 'AR', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (33, 1, 'ARKANSAS', 'AR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (35, 1, 'AZ', 'AZ', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (37, 3, 'AZ', 'AZ', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (46, 1, 'CA', 'CA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (48, 3, 'CA', 'CA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (51, 1, 'CALIF', 'CA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (53, 3, 'CALIF', 'CA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (54, 1, 'CALIFORNIA', 'CA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (58, 1, 'CO', 'CO', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (60, 3, 'CO', 'CO', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (63, 1, 'COLORADO', 'CO', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (65, 1, 'CONN', 'CT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (67, 3, 'CONN', 'CT', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (68, 1, 'CONNECTICUT', 'CT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (70, 1, 'CT', 'CT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (72, 3, 'CT', 'CT', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (73, 1, 'DC', 'DC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (75, 3, 'DC', 'DC', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (76, 1, 'DE', 'DE', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (78, 1, 'DEL', 'DE', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (80, 3, 'DEL', 'DE', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (81, 1, 'DELAWARE', 'DE', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (83, 1, 'DC', 'DC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (86, 1, 'FL', 'FL', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (88, 3, 'FL', 'FL', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (89, 1, 'FLA', 'FL', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (91, 3, 'FLA', 'FL', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (92, 1, 'FLORIDA', 'FL', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (95, 1, 'GA', 'GA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (97, 3, 'GA', 'GA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (98, 1, 'GEORGIA', 'GA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (100, 1, 'HAWAII', 'HI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (102, 1, 'HI', 'HI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (104, 3, 'HI', 'HI', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (105, 1, 'IA', 'IA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (107, 3, 'IA', 'IA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (108, 1, 'ID', 'ID', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (110, 3, 'ID', 'ID', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (111, 1, 'IDAHO', 'ID', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (113, 1, 'IL', 'IL', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (115, 3, 'IL', 'IL', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (118, 1, 'ILL', 'IL', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (120, 3, 'ILL', 'IL', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (121, 1, 'ILLINOIS', 'IL', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (123, 1, 'IN', 'IN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (125, 3, 'IN', 'IN', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (126, 1, 'IND', 'IN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (128, 2, 'IND', 'IN', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (129, 1, 'INDIANA', 'IN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (131, 1, 'IOWA', 'IA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (133, 1, 'KANSAS', 'KS', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (135, 1, 'KENT', 'KY', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (137, 3, 'KENT', 'KY', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (138, 1, 'KENTUCKY', 'KY', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (140, 1, 'KS', 'KS', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (142, 3, 'KS', 'KS', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (143, 1, 'KY', 'KY', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (145, 3, 'KY', 'KY', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (146, 1, 'LA', 'LA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (148, 3, 'LA', 'LA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (151, 1, 'LOUISIANA', 'LA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (153, 1, 'MA', 'MA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (155, 3, 'MA', 'MA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (157, 1, 'MAINE', 'ME', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (161, 1, 'MARYLAND', 'MD', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (163, 1, 'MASS', 'MA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (165, 3, 'MASS', 'MA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (166, 1, 'MASSACHUSETTS', 'MA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (171, 1, 'MD', 'MD', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (173, 3, 'MD', 'MD', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (174, 1, 'ME', 'ME', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (176, 3, 'ME', 'ME', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (177, 1, 'MI', 'MI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (179, 3, 'MI', 'MI', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (180, 1, 'MICH', 'MI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (182, 3, 'MICH', 'MI', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (183, 1, 'MICHIGAN', 'MI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (185, 1, 'MINN', 'MN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (187, 3, 'MINN', 'MN', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (188, 1, 'MINNESOTA', 'MN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (190, 1, 'MISSISSIPPI', 'MS', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (192, 1, 'MISSOURI', 'MO', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (194, 1, 'MN', 'MN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (196, 3, 'MN', 'MN', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (197, 1, 'MO', 'MO', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (199, 3, 'MO', 'MO', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (200, 1, 'MONT', 'MT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (202, 3, 'MONT', 'MT', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (203, 1, 'MONTANA', 'MT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (205, 1, 'MT', 'MT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (207, 3, 'MT', 'MT', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (208, 1, 'MS', 'MS', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (210, 3, 'MS', 'MS', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (211, 1, 'N CAROLINA', 'NC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (213, 1, 'N DAKOTA', 'ND', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (218, 1, 'NC', 'NC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (220, 3, 'NC', 'NC', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (221, 1, 'ND', 'ND', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (223, 3, 'ND', 'ND', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (224, 1, 'NE', 'NE', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (226, 3, 'NE', 'NE', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (227, 1, 'NEB', 'NE', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (229, 3, 'NEB', 'NE', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (230, 1, 'NEBRASKA', 'NE', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (232, 1, 'NEV', 'NV', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (234, 3, 'NEV', 'NV', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (235, 1, 'NEVADA', 'NV', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (239, 1, 'NEW HAMPSHIRE', 'NH', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (241, 1, 'NEW JERSEY', 'NJ', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (243, 1, 'NEW MEXICO', 'NM', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (245, 1, 'NEW YORK', 'NY', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (252, 1, 'NH', 'NH', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (254, 3, 'NH', 'NH', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (255, 1, 'NJ', 'NJ', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (257, 3, 'NJ', 'NJ', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (261, 1, 'NM', 'NM', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (263, 3, 'NM', 'NM', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (264, 1, 'NORTH CAROLINA', 'NC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (266, 1, 'NORTH DAKOTA', 'ND', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (288, 1, 'NV', 'NV', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (290, 3, 'NV', 'NV', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (291, 1, 'NY', 'NY', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (293, 3, 'NY', 'NY', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (294, 1, 'OH', 'OH', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (296, 3, 'OH', 'OH', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (297, 1, 'OHIO', 'OH', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (299, 1, 'OK', 'OK', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (301, 3, 'OK', 'OK', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (302, 1, 'OKLA', 'OK', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (304, 3, 'OKLA', 'OK', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (305, 1, 'OKLAHOMA', 'OK', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (315, 1, 'OR', 'OR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (317, 3, 'OR', 'OR', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (318, 1, 'ORE', 'OR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (320, 3, 'ORE', 'OR', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (321, 1, 'OREGON', 'OR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (323, 1, 'PA', 'PA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (325, 3, 'PA', 'PA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (332, 1, 'PENN', 'PA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (334, 3, 'PENN', 'PA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (335, 1, 'PENNA', 'PA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (337, 3, 'PENNA', 'PA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (338, 1, 'PENNSYLVANIA', 'PA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (343, 1, 'PR', 'PR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (345, 3, 'PR', 'PR', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (348, 1, 'PUERTO RICO', 'PR', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (355, 1, 'RHODE ISLAND', 'RI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (357, 1, 'RI', 'RI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (359, 3, 'RI', 'RI', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (360, 1, 'S CAROLINA', 'SC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (362, 1, 'S DAKOTA', 'SD', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (368, 1, 'SC', 'SC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (370, 3, 'SC', 'SC', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (371, 1, 'SD', 'SD', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (373, 3, 'SD', 'SD', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (377, 1, 'SOUTH CAROLINA', 'SC', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (379, 1, 'SOUTH DAKOTA', 'SD', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (381, 1, 'TENN', 'TN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (383, 3, 'TENN', 'TN', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (384, 1, 'TENNESSEE', 'TN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (390, 1, 'TEX', 'TX', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (392, 3, 'TEX', 'TX', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (393, 1, 'TEXAS', 'TX', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (395, 1, 'TN', 'TN', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (397, 3, 'TN', 'TN', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (398, 1, 'TX', 'TX', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (400, 3, 'TX', 'TX', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (408, 1, 'UT', 'UT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (410, 3, 'UT', 'UT', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (411, 1, 'UTAH', 'UT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (413, 1, 'VA', 'VA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (415, 3, 'VA', 'VA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (416, 1, 'VERMONT', 'VT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (418, 1, 'VIRGINIA', 'VA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (420, 1, 'VT', 'VT', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (422, 3, 'VT', 'VT', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (423, 1, 'W VIRGINIA', 'WV', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (425, 1, 'WA', 'WA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (427, 3, 'WA', 'WA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (428, 1, 'WASH', 'WA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (430, 3, 'WASH', 'WA', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (431, 1, 'WASHINGTON', 'WA', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (433, 1, 'WEST VIRGINIA', 'WV', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (435, 1, 'WI', 'WI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (437, 3, 'WI', 'WI', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (438, 1, 'WISC', 'WI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (440, 3, 'WISC', 'WI', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (441, 1, 'WISCONSIN', 'WI', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (443, 1, 'WV', 'WV', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (445, 3, 'WV', 'WV', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (446, 1, 'WY', 'WY', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (448, 3, 'WY', 'WY', 6, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (449, 1, 'WYOMING', 'WY', 11, false);
+INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (835, 1, 'ST LOUIS', 'SAINT LOUIS', 7, false);
+
+SELECT pg_catalog.setval('pagc_gaz_id_seq', (SELECT greatest((SELECT MAX(id) FROM pagc_gaz),50000)), true);
+
+-- start pagc_lex --
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2934, 1, 'BAY STATE', 'BAY STATE', 5, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2389, 2, 'STAT', 'STA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2382, 2, 'STA', 'STA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2403, 2, 'STATION', 'STA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2407, 2, 'STATN', 'STA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2394, 1, 'STATE HIGHWAY', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2368, 1, 'ST HIGHWAY', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2393, 1, 'STATE HI', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2369, 1, 'ST HWY', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2414, 1, 'STHWY', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2415, 1, 'STHY', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2367, 1, 'ST HI', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2413, 1, 'STHW', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2370, 1, 'ST HY', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2396, 1, 'STATE HY', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2373, 1, 'ST RD', 'STATE RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (212, 2, 'AND', 'AND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2395, 1, 'STATE HWY', 'STATE HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (413, 2, 'BYP', 'BYP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2397, 1, 'STATE RD', 'STATE RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2374, 1, 'ST ROAD', 'STATE RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1561, 2, 'MANORS', 'MANOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2398, 1, 'STATE ROAD', 'STATE RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2377, 1, 'ST RT', 'STATE RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1937, 1, 'PR ROUTE', 'STATE RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2399, 1, 'STATE ROUTE', 'STATE RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2375, 1, 'ST ROUTE', 'STATE RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2401, 1, 'STATE RTE', 'STATE RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2400, 1, 'STATE RT', 'STATE RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2379, 1, 'ST RTE', 'STATE RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2493, 1, 'TERR', 'TER', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2488, 1, 'TER', 'TER', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2555, 1, 'THRUWAY', 'TRWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2556, 1, 'THWY', 'TRWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2554, 1, 'THROUGHWAY', 'TRWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2599, 2, 'TPK', 'TPKE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2683, 2, 'TURNPK', 'TPKE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2681, 2, 'TURNPIKE', 'TPKE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2601, 2, 'TPKE', 'TPKE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2679, 2, 'TURN', 'TPKE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2496, 1, 'TFWY', 'TRFY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2616, 1, 'TRAIL', 'TRL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2631, 1, 'TRAILS', 'TRL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2559, 1, 'TL', 'TRL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2674, 1, 'TUNEL', 'TUNL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2675, 1, 'TUNL', 'TUNL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2673, 1, 'TUN', 'TUNL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2676, 1, 'TUNNEL', 'TUNL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2569, 1, 'TNPKE', 'TPKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2568, 1, 'TNPK', 'TPKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2682, 1, 'TURNPK', 'TPKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2680, 1, 'TURNPIKE', 'TPKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2678, 1, 'TURN', 'TPKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2665, 1, 'TRNPK', 'TPKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2600, 1, 'TPKE', 'TPKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2598, 1, 'TPK', 'TPKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2768, 1, 'U S HY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2782, 1, 'UNITED STATES HWY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2764, 1, 'U S HGWY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2765, 1, 'U S HIGHWAY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2781, 1, 'UNITED STATES HIGHWAY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2807, 1, 'US HGWY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2808, 1, 'US HIGHWAY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2809, 1, 'US HIWAY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2810, 1, 'US HWY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2811, 1, 'US HY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2819, 1, 'USHW', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2820, 1, 'USHWY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2821, 1, 'USHY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2824, 1, 'USRT', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2825, 1, 'USRTE', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2816, 1, 'US RTE', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2814, 1, 'US ROUTE', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2770, 1, 'U S RT', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2805, 1, 'US', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2815, 1, 'US RT', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2763, 1, 'U S', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2769, 1, 'U S ROUTE', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2771, 1, 'U S RTE', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2823, 1, 'USROUTE', 'US RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2878, 2, 'VW', 'VW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2869, 1, 'VLGE', 'VLG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2866, 1, 'VLG', 'VLG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2865, 2, 'VL', 'VLG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2855, 1, 'VILLIAGE', 'VLG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2854, 1, 'VILLGE', 'VLG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2851, 1, 'VILLG', 'VLG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2846, 1, 'VILLAGE', 'VLG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2843, 1, 'VILLAG', 'VLG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2861, 2, 'VISTA', 'VIS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2859, 2, 'VIS', 'VIS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2856, 2, 'VILLIAGE', 'VLG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2838, 2, 'VILL', 'VLG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2847, 2, 'VILLAGE', 'VLG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2844, 2, 'VILLAG', 'VLG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2870, 2, 'VLGE', 'VLG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2852, 2, 'VILLG', 'VLG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2867, 2, 'VLG', 'VLG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2881, 1, 'WALK', 'WALK', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2903, 1, 'WK', 'WALK', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2884, 1, 'WALL', 'WALL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2914, 1, 'WY', 'WAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2915, 4, 'WY', 'WAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2888, 1, 'WAY', 'WAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (691, 2, 'CROSSING', 'XING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2918, 2, 'XING', 'XING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (692, 1, 'CROSSINGS', 'XING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (701, 1, 'CRSGS', 'XING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (704, 2, 'CRSSNG', 'XING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (700, 2, 'CRSG', 'XING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (688, 1, 'CROSS ROAD', 'XRD', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1762, 1, 'NORTH', 'N', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1764, 1, 'NORTH EAST', 'NE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1766, 1, 'NORTH WEST', 'NW', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1769, 1, 'NORTHEAST', 'NE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1771, 1, 'NTH', 'N', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1774, 1, 'NW', 'NW', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2931, 1, 'SERVICE DR', 'SVC DR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2932, 1, 'SERVICE DRIVE', 'SVC DR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2933, 1, 'SVC DR', 'SVC DR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2392, 2, 'STATE', 'STATE RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (59, 1, '20MI', 'TWENTY MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (60, 1, '21ST', '21', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (61, 2, '21ST', '21ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (62, 1, '22ND', '22', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (63, 2, '22ND', '22ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (64, 1, '23 MI', 'TWENTY THREE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (65, 1, '23 MILE', 'TWENTY THREE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (66, 1, '23MI', 'TWENTY THREE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (67, 1, '23RD', '23', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (68, 2, '23RD', '23RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (69, 1, '2MI', 'TWO MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2767, 1, 'U S HWY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (70, 1, '3 / 4', '3/4', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (71, 1, '3 / 8', '3/8', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (72, 1, '3 MI', 'THREE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (73, 1, '3 MILE', 'THREE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (75, 1, '3/8', '3/8', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (76, 1, '31ST', '31', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (77, 2, '31ST', '31ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (78, 1, '33RD', '33', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (79, 2, '33RD', '33RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (80, 1, '3MI', 'THREE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (81, 1, '3RD', '3', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (82, 2, '3RD', '3RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (83, 1, '4 CO', 'FOUR CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (84, 1, '4 CORNERS', 'FOUR CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (85, 1, '4 FG', 'FOUR FLAGS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (86, 1, '4 FLAGS', 'FOUR FLAGS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (87, 1, '4 MI', 'FOUR MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (88, 1, '4 MILE', 'FOUR MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (89, 1, '4 SEASONS', 'FOUR SEASONS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (90, 1, '4 SN', 'FOUR SEASONS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (91, 1, '41ST', '41', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (92, 2, '41ST', '41ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (93, 1, '43RD', '43', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (94, 2, '43RD', '43RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (95, 1, '4MI', 'FOUR MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (96, 1, '4WD', 'FOUR WHEEL DRIVE TRAIL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (97, 1, '4WD TRAIL', 'FOUR WHEEL DRIVE TRAIL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (98, 1, '4WD TRL', 'FOUR WHEEL DRIVE TRAIL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (99, 1, '5 CEDARS', 'FIVE CEDARS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (100, 1, '5 CO', 'FIVE CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (101, 1, '5 CORNERS', 'FIVE CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (102, 1, '5 MI', 'FIVE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (103, 1, '5 MILE', 'FIVE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (104, 1, '5 POINTS', 'FIVE POINTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (105, 1, '5 PT', 'FIVE POINTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (106, 1, '5 TO', 'FIVE TOWN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (107, 1, '51ST', '51', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (108, 2, '51ST', '51', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (109, 1, '53RD', '53', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (110, 2, '53RD', '53RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (111, 1, '5MI', 'FIVE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (112, 1, '6 FG', 'SIX FLAGS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (113, 1, '6 FLAGS', 'SIX FLAGS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (114, 1, '6 MI', 'SIX MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (115, 1, '6 MILE', 'SIX MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (116, 1, '61ST', '61', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (117, 2, '61ST', '61ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (118, 1, '63RD', '63', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (119, 2, '63RD', '63RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (120, 1, '6MI', 'SIX MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (121, 1, '7 CO', 'SEVEN CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (122, 2, '7 CO', 'SEVEN CORNERS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (123, 1, '7 CORNERS', 'SEVEN CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (124, 2, '7 CORNERS', 'SEVEN CORNERS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (125, 1, '7 MI', 'SEVEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (126, 1, '7 MILE', 'SEVEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (127, 1, '71ST', '71', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (128, 2, '71ST', '71ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (129, 1, '73RD', '73', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (130, 2, '73RD', '73RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (131, 1, '7MI', 'SEVEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (132, 1, '8 MI', 'EIGHT MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (133, 1, '8 MILE', 'EIGHT MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (134, 1, '81ST', '81', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (135, 2, '81ST', '81ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (136, 1, '83RD', '83', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (137, 2, '83RD', '83RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (138, 1, '8MI', 'EIGHT MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (139, 1, '9 MI', 'NINE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (140, 1, '9 MILE', 'NINE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (141, 1, '91ST', '91', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (142, 2, '91ST', '91ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (143, 1, '93RD', '93', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (144, 2, '93RD', '93RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (145, 1, '9MI', 'NINE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (146, 1, 'A', 'A', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (147, 2, 'A', 'A', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (148, 1, 'A F B', 'AIR FORCE BASE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (149, 2, 'A F B', 'AIR FORCE BASE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (150, 1, 'A F S', 'AIR FORCE BASE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (151, 2, 'A F S', 'AIR FORCE BASE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (152, 1, 'A LA DERECHA', 'A LA DERECHA', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (153, 4, 'AB', 'ABBEY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (154, 1, 'ABBEY', 'ABBEY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (155, 2, 'ABBEY', 'ABBEY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (156, 1, 'AC', 'ACRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (157, 1, 'ACAD', 'ACADEMY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (158, 1, 'ACADE', 'ACADEMIA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (159, 1, 'ACADEMIA', 'ACADEMIA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (160, 1, 'ACADEMY', 'ACADEMY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (161, 1, 'ACCESS', 'ACCESS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (162, 1, 'ACR', 'ACRES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (163, 2, 'ACR', 'ACRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (164, 3, 'ACR', 'ACRES', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (165, 1, 'ACRES', 'ACRES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (166, 2, 'ACRES', 'ACRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (74, 1, '3/4', '3/4', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (167, 3, 'ACRES', 'ACRES', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (168, 1, 'ACRS', 'ACRES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (169, 2, 'ACRS', 'ACRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (170, 3, 'ACRS', 'ACRES', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (171, 1, 'ACUE', 'ACUEDUCTO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (172, 1, 'ACUED', 'ACUEDUCTO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (173, 1, 'ACUEDUCTO', 'ACUEDUCTO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (174, 1, 'AEROPUERTO', 'AEROPUERTO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (175, 2, 'AEROPUERTO', 'AEROPUERTO', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (176, 1, 'AFB', 'AIR FORCE BASE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (177, 2, 'AFB', 'AIR FORCE BASE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (178, 1, 'AFLD', 'AIRPORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (179, 1, 'AFS', 'AIR FORCE BASE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (180, 2, 'AFS', 'AIR FORCE BASE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (181, 1, 'AIR FORCE BASE', 'AIR FORCE BASE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (182, 2, 'AIR FORCE BASE', 'AIR FORCE BASE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (183, 1, 'AIR FORCE STATION', 'AIR FORCE BASE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (184, 2, 'AIR FORCE STATION', 'AIR FORCE BASE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (185, 1, 'AIRFIELD', 'AIRPORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (186, 2, 'AIRFIELD', 'AIRPORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (187, 1, 'AIRPARK', 'AIRPORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (188, 2, 'AIRPARK', 'AIRPORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (189, 1, 'AIRPORT', 'AIRPORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (190, 2, 'AIRPORT', 'AIRPORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (191, 1, 'AIRSTRIP', 'AIRPORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (192, 2, 'AIRSTRIP', 'AIRPORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (193, 1, 'AIRSTRP', 'AIRPORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (194, 2, 'AIRSTRP', 'AIRPORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (198, 1, 'ALC', 'ALCOVE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (199, 1, 'ALD', 'A LA DERECHA', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (202, 2, 'ALLEY', 'ALLEY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (204, 1, 'ALT', 'ALTERNATE', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (205, 1, 'ALTERNATE', 'ALTERNATE', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (206, 1, 'ALTO', 'ALTO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (207, 2, 'ALTO', 'ALTOS', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (208, 1, 'ALTOS', 'ALTOS', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (209, 2, 'ALTOS', 'ALTOS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (213, 1, 'ANEX', 'ANNEX', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (215, 1, 'ANNEX', 'ANNEX', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (217, 1, 'ANNX', 'ANNEX', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (219, 1, 'ANX', 'ANNEX', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (221, 1, 'AP', 'APARTMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (222, 1, 'APART', 'APARTMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (223, 1, 'APARTEMENT', 'APARTEMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (224, 1, 'APARTMENT', 'APARTMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (225, 1, 'APARTMENTS', 'APARTMENTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (226, 1, 'APARTADO', 'BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (227, 1, 'APO', 'APO', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (228, 1, 'APP', 'APARTEMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (229, 1, 'APPART', 'APARTEMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (230, 1, 'APPT', 'APARTEMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (231, 1, 'APRK', 'AIRPORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (232, 1, 'APS', 'APARTMENTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (233, 1, 'APT', 'APARTMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (234, 1, 'APT NO', 'APARTMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (235, 1, 'APTMT', 'APARTMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (236, 1, 'APTS', 'APARTMENTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (237, 1, 'AR', 'ARRIERE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (242, 1, 'ARPT', 'AIRPORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (243, 2, 'ARPT', 'AIRPORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (244, 1, 'ARPTO', 'AIRPORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (245, 2, 'ARPTO', 'AIRPORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (246, 1, 'ARRIERE', 'ARRIERE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (247, 1, 'ARROYO', 'ARROYO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (248, 1, 'ARRYO', 'ARROYO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (249, 1, 'AT', 'AT', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (250, 1, 'ATPS', 'AUTOPISTA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (251, 1, 'ATPTA', 'AUTOPISTA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (252, 1, 'ATTN', 'ATTENTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (253, 1, 'AU', 'AUTOROUTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (254, 2, 'AU', 'AU', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (255, 1, 'AUT', 'AUTOROUTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (256, 1, 'AUTO', 'AUTOPISTA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (257, 2, 'AUTO', 'AUTO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (258, 1, 'AUTOPISTA', 'AUTOPISTA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (259, 1, 'AUTOROUTE', 'AUTOROUTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (261, 2, 'AV', 'AVANT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (262, 1, 'AVA', 'AVENIDA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (263, 1, 'AVANT', 'AVANT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (266, 1, 'AVENIDA', 'AVENIDA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (200, 1, 'ALLEE', 'ALY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (203, 1, 'ALLY', 'ALY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (195, 1, 'AL', 'ALY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (201, 1, 'ALLEY', 'ALY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (210, 1, 'ALY', 'ALY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (238, 1, 'ARC', 'ARC', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (240, 1, 'ARCADE', 'ARC', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (260, 1, 'AV', 'AVE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (269, 1, 'AVENUES', 'AVENUES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (270, 1, 'AVES', 'AVENUES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (273, 1, 'AVS', 'AVENUES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (274, 1, 'BA', 'BAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (275, 1, 'BAJO', 'BAJOS', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (276, 1, 'BAJOS', 'BAJOS', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (277, 1, 'BANK', 'BANK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (278, 1, 'BARRIO', 'BOROUGH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (279, 1, 'BASEMENT', 'BASEMENT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (280, 1, 'BASIN', 'BASIN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (281, 1, 'BASN', 'BASIN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (282, 1, 'BAY', 'BAY', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (283, 2, 'BAY', 'BAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (284, 3, 'BAY', 'BAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (285, 1, 'BAYOU', 'BAYOU', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (286, 1, 'BAZAAR', 'BAZAAR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (287, 1, 'BAZR', 'BAZAAR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (288, 1, 'BCH', 'BEACH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (291, 1, 'BDG', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (292, 2, 'BDG', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (293, 1, 'BDNG', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (294, 2, 'BDNG', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (295, 1, 'BDWY', 'BROADWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (297, 1, 'BEACH', 'BEACH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (299, 1, 'BEND', 'BEND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (301, 1, 'BETWEEN', 'BETWEEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (302, 1, 'BG', 'BURG', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (305, 1, 'BLD', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (306, 2, 'BLD', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (307, 1, 'BLDG', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (308, 2, 'BLDG', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (309, 1, 'BLDING', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (310, 2, 'BLDING', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (311, 1, 'BLDNG', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (312, 2, 'BLDNG', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (313, 1, 'BLF', 'BLUFF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (315, 1, 'BLG', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (316, 2, 'BLG', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (317, 1, 'BLUF', 'BLUFF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (318, 1, 'BLUFF', 'BLUFF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (322, 1, 'BLVR', 'BULEVAR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (323, 1, 'BND', 'BEND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (325, 1, 'BNK', 'BANK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (326, 1, 'BO', 'BOROUGH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (327, 2, 'BO', 'BOURG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (328, 1, 'BOITE', 'BOITE', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (329, 1, 'BOITE POSTALE', 'BOITE POSTALE', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (330, 1, 'BORO', 'BOROUGH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (331, 1, 'BOROUGH', 'BOROUGH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (333, 2, 'BOT', 'BOTTOM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (335, 2, 'BOTTM', 'BOTTOM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (337, 2, 'BOTTOM', 'BOTTOM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (341, 1, 'BOURG', 'BOURG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (342, 1, 'BOX', 'BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (343, 1, 'BOX NO', 'BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (346, 3, 'BP', 'BOITE POSTALE', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (347, 1, 'BR', 'BRANCH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (348, 1, 'BRANCH', 'BRANCH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (349, 1, 'BRDG', 'BRIDGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (350, 1, 'BRDGE', 'BRIDGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (351, 1, 'BRDWY', 'BROADWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (352, 1, 'BRG', 'BRIDGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (354, 1, 'BRIDGE', 'BRIDGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (355, 1, 'BRIDGES', 'BRIDGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (356, 1, 'BRK', 'BROOK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (357, 1, 'BROADWAY', 'BROADWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (358, 1, 'BROOK', 'BROOK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (359, 1, 'BRWY', 'BROADWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (360, 1, 'BSMNT', 'BASEMENT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (361, 1, 'BSMT', 'BASEMENT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (362, 1, 'BSPK', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (405, 1, 'BV', 'BLVD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (363, 1, 'BSRT', 'BUSINESS ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (364, 1, 'BSRTE', 'BUSINESS ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (365, 1, 'BST', 'BASEMENT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (366, 1, 'BTM', 'BOTTOM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (367, 1, 'BTWN', 'BETWEEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (368, 1, 'BUENA VISTA', 'BUENA VISTA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (369, 1, 'BUILD', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (370, 2, 'BUILD', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (371, 1, 'BUILDING', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (372, 2, 'BUILDING', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (373, 1, 'BUILDING NUMBER', '#', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (374, 1, 'BUILDNG', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (375, 2, 'BUILDNG', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (376, 1, 'BULDNG', 'BUILDING', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (377, 2, 'BULDNG', 'BUILDING', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (378, 1, 'BULEVAR', 'BULEVAR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (379, 1, 'BUR', 'BUREAU', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (380, 1, 'BUREAU', 'BUREAU', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (381, 2, 'BUREAU', 'BUREAU', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (382, 3, 'BUREAU', 'BUREAU', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (383, 1, 'BURG', 'BURG', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (384, 1, 'BUS', 'BUSINESS', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (385, 1, 'BUS CENTER', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (386, 1, 'BUS CENTR', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (387, 1, 'BUS CTR', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (388, 1, 'BUS PARK', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (389, 1, 'BUS PK', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (390, 1, 'BUSCENTER', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (391, 1, 'BUSCENTR', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (392, 1, 'BUSCTR', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (393, 1, 'BUSINESS', 'BUSINESS', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (394, 2, 'BUSINESS', 'BUSINESS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (395, 1, 'BUSINESS CENTER', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (396, 1, 'BUSINESS CENTR', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (397, 1, 'BUSINESS CTR', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (398, 1, 'BUSINESS PARK', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (271, 1, 'AVN', 'AVE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (272, 1, 'AVNUE', 'AVE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (267, 1, 'AVENU', 'AVE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (268, 1, 'AVENUE', 'AVE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (399, 1, 'BUSINESS PK', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (400, 1, 'BUSPARK', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (401, 1, 'BUSPK', 'BUSINESS PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (402, 1, 'BUSROUTE', 'BUSINESS ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (403, 1, 'BUSRT', 'BUSINESS ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (404, 1, 'BUSRTE', 'BUSINESS ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (406, 1, 'BX', 'BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (407, 1, 'BY', 'BYWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (408, 2, 'BY', 'BY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (411, 1, 'BY WAY', 'BYWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (422, 1, 'BYU', 'BAYOU', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (423, 1, 'BYWAY', 'BYWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (424, 1, 'C', 'C', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (425, 1, 'C / O', 'CARE OF', 9, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (426, 1, 'C D O', 'COMMERCIAL DEALERSHIP', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (427, 1, 'C F B', 'CANADIAN FORCES BASE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (428, 1, 'C M C', 'COMMUNITY MAIL CENTRE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (431, 1, 'C/O', 'CARE OF', 9, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (432, 1, 'CALLE', 'CALLE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (433, 1, 'CALLEJ', 'CALLEJON', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (434, 1, 'CALLEJA', 'CALLEJA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (435, 1, 'CALLEJO', 'CALLEJON', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (436, 1, 'CALLEJON', 'CALLEJON', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (437, 1, 'CALLER', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (439, 1, 'CAMINITO', 'CAMINITO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (441, 1, 'CAMP', 'CAMP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (442, 1, 'CAMPER PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (443, 1, 'CAMPER PK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (444, 1, 'CAMPUS', 'CAMPUS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (445, 1, 'CAMPUS', 'CAMPUS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (446, 1, 'CANADIAN FORCES BASE', 'CANADIAN FORCES BASE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (447, 1, 'CANYON', 'CANYON', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (448, 1, 'CANYN', 'CANYON', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (449, 1, 'CAPE', 'CAPE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (451, 1, 'CARE OF', 'CARE OF', 9, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (452, 1, 'CARR', 'CARRETERA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (453, 1, 'CARRE', 'CARRE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (454, 2, 'CARRE', 'CARRE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (455, 1, 'CARREF', 'CARREFOUR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (456, 1, 'CARREFOUR', 'CARREFOUR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (457, 1, 'CARRETERA', 'CARRETERA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (458, 1, 'CARRT', 'CARRETERA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (460, 1, 'CC', 'CIRCUIT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (461, 1, 'CDN', 'CANADIAN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (462, 1, 'CDO', 'COMMERCIAL DEALERSHIP', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (463, 1, 'CDS', 'CUL DE SAC', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (473, 3, 'CENTER', 'CENTER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (477, 1, 'CENTRAL', 'CENTRAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (480, 3, 'CENTRE', 'CENTER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (484, 1, 'CERCLE', 'CERCLE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (485, 2, 'CERCLE', 'CERCLE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (486, 1, 'CFB', 'CANADIAN FORCES BASE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (488, 1, 'CH', 'CHEMIN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (489, 2, 'CH', 'CHURCH', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (490, 1, 'CHASE', 'CHASE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (491, 2, 'CHASE', 'CHASE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (492, 1, 'CHEMIN', 'CHEMIN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (493, 1, 'CHURCH', 'CHURCH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (494, 2, 'CHURCH', 'CHURCH', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (496, 1, 'CIRC', 'CIRCULO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (499, 2, 'CIRCLE', 'CIRCLE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (500, 1, 'CIRCT', 'CIRCUIT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (501, 2, 'CIRCT', 'CIRCUIT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (502, 1, 'CIRCUIT', 'CIRCUIT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (503, 2, 'CIRCUIT', 'CIRCUIT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (504, 1, 'CIRCULO', 'CIRCULO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (505, 1, 'CJA', 'CALLEJA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (506, 1, 'CJON', 'CALLEJON', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (507, 1, 'CK', 'CREEK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (509, 2, 'CL', 'CIRCLE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (512, 3, 'CLB', 'CLUB', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (513, 1, 'CLF', 'CLIFF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (514, 1, 'CLFS', 'CLIFFS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (515, 1, 'CLG', 'COLLEGE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (516, 1, 'CLIFF', 'CLIFF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (517, 1, 'CLIFFS', 'CLIFFS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (518, 1, 'CLLE', 'CALLE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (519, 1, 'CLLJ', 'CALLEJON', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (520, 1, 'CLOS', 'CLOSE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (521, 2, 'CLOS', 'CLOSE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (522, 1, 'CLOSE', 'CLOSE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (523, 2, 'CLOSE', 'CLOSE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (524, 1, 'CLTN', 'COLLECTION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (527, 3, 'CLUB', 'CLUB', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (528, 1, 'CMC', 'COMMUNITY MAIL CENTRE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (529, 1, 'CMNS', 'COMMONS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (530, 2, 'CMNS', 'COMMONS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (417, 2, 'BYPAS', 'BYP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (421, 2, 'BYPS', 'BYP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (419, 2, 'BYPASS', 'BYP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (415, 2, 'BYPA', 'BYP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (410, 2, 'BY PASS', 'BYP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (438, 1, 'CAM', 'CAM', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (440, 1, 'CAMINO', 'CAM', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (450, 2, 'CAPE', 'CPE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (459, 1, 'CAUSEWAY', 'CSWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (483, 2, 'CENTRO', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (479, 2, 'CENTRE', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (476, 2, 'CENTR', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (472, 2, 'CENTER', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (470, 2, 'CENTE', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (468, 2, 'CENT', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (531, 1, 'CMP', 'CAMP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (532, 1, 'CN', 'CONCESSION', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (533, 2, 'CN', 'CONCESSION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (534, 1, 'CNCN', 'CONNECTION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (545, 1, 'CNTRL', 'CENTRAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (556, 1, 'CNYN', 'CANYON', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (557, 4, 'CO', 'COTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (569, 1, 'COL', 'COLONEL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (570, 1, 'COLL', 'COLLEGE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (571, 2, 'COLL', 'COLLEGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (572, 1, 'COLLECTION', 'COLLECTION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (573, 1, 'COLLEGE', 'COLLEGE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (574, 2, 'COLLEGE', 'COLLEGE', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (575, 3, 'COLLEGE', 'COLLEGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (576, 1, 'COLONEL', 'COLONEL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (577, 1, 'COLONIA', 'COLONIA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (578, 2, 'COLONIA', 'COLONIA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (579, 1, 'COMMERCIAL DEALERSHIP OU', 'COMMERCIAL DEALERSHIP', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (581, 2, 'COMMON', 'COMMONS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (582, 1, 'COMMONS', 'COMMONS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (583, 2, 'COMMONS', 'COMMONS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (584, 1, 'COMMUNITY MAIL CENTRE', 'COMMUNITY MAIL CENTRE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (586, 2, 'COMN', 'COMMONS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (587, 1, 'COMP', 'COMPLEX', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (588, 1, 'COMPLEX', 'COMPLEX', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (589, 1, 'CONC', 'CONCESSION', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (590, 2, 'CONC', 'CONCESSION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (591, 1, 'CONCESSION', 'CONCESSION', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (592, 2, 'CONCESSION', 'CONCESSION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (593, 1, 'COND', 'CONDOMINIUMS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (594, 1, 'CONDO', 'CONDOMINIUMS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (595, 1, 'CONDOMINIO', 'CONDOMINIUMS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (596, 1, 'CONDOMINIUM', 'CONDOMINIUMS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (597, 1, 'CONDOMINIUMS', 'CONDOMINIUMS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (598, 1, 'CONDOS', 'CONDOMINIUMS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (599, 3, 'CONN', 'CONNECTOR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (600, 4, 'CONN', 'CONNECTOR', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (601, 1, 'CONNECTION', 'CONNECTION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (602, 1, 'CONNECTOR', 'CONNECTOR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (603, 2, 'CONNECTOR', 'CONNECTOR', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (604, 3, 'CONNECTOR', 'CONNECTOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (605, 1, 'CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (606, 2, 'CONTRACT', 'CONTRACT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (607, 1, 'COOP', 'COOPERATIVE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (608, 2, 'COOP', 'COOPERATIVE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (609, 1, 'COOPERATIVE', 'COOPERATIVE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (610, 2, 'COOPERATIVE', 'COOPERATIVE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (612, 2, 'COR', 'CORNER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (616, 2, 'CORNER', 'CORNER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (620, 3, 'CORNERS', 'CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (623, 3, 'CORS', 'CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (624, 1, 'CORSO', 'CORSO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (625, 2, 'CORSO', 'CORSO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (629, 1, 'COTE', 'COTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (630, 2, 'COTE', 'COTE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (631, 1, 'COTTAGE', 'COTTAGE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (632, 2, 'COTTAGE', 'COTTAGE', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (633, 3, 'COTTAGE', 'COTTAGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (634, 1, 'COUNTY', 'COUNTY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (635, 2, 'COUNTY', 'COUNY ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (647, 1, 'COUR', 'COUR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (648, 1, 'COURSE', 'COURSE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (650, 2, 'COURT', 'COURT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (651, 1, 'COURT HOUSE', 'COURTHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (652, 1, 'COURT HSE', 'COURTHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (653, 1, 'COURT YARD', 'COURTYARD', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (654, 1, 'COURTHOUSE', 'COURTHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (655, 2, 'COURTHOUSE', 'COURTHOUSE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (542, 2, 'CNTR', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (538, 2, 'CNT', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (540, 2, 'CNTER', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (544, 2, 'CNTRE', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (580, 1, 'COMMON', 'CMN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (585, 1, 'COMN', 'CMN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (536, 2, 'CNR', 'COR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (617, 3, 'CORNER', 'COR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (618, 1, 'CORNERS', 'CORS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (621, 1, 'CORS', 'CORS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (562, 2, 'CO RD', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (550, 2, 'CNTY RD', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (552, 2, 'CNTY ROAD', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (642, 2, 'COUNTY ROAD', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (640, 2, 'COUNTY RD', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (614, 2, 'CORD', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (564, 2, 'CO ROAD', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (649, 1, 'COURT', 'CT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (628, 2, 'CORTE', 'CT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (656, 1, 'COURTHSE', 'COURTHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (659, 3, 'COURTS', 'COURTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (660, 1, 'COURTYARD', 'COURTYARD', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (661, 1, 'COURTYARDS', 'COURTYARD', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (664, 1, 'CP', 'CAMP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (665, 1, 'CPE', 'CAPE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (666, 1, 'CPLX', 'COMPLEX', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (667, 1, 'CPO', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (668, 1, 'CPO BOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (673, 1, 'CRDS', 'CROSSROADS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (674, 1, 'CREEK', 'CREEK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (677, 2, 'CRESCENT', 'CRESCENT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (679, 1, 'CRK', 'CREEK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (684, 1, 'CROISSANT', 'CROISSANT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (685, 2, 'CROISSANT', 'CROISSANT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (686, 1, 'CROSS', 'CROSS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (687, 2, 'CROSS', 'CROSS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (689, 1, 'CROSS ROADS', 'CROSSROADS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (694, 2, 'CROSSROAD', 'CROSSROAD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (695, 1, 'CROSSROADS', 'CROSSROADS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (697, 1, 'CRSE', 'COURSE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (707, 1, 'CRT HSE', 'COURTHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (708, 1, 'CRTHSE', 'COURTHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (709, 1, 'CRU', 'CRUCE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (710, 1, 'CRUC', 'CRUCE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (711, 1, 'CRUCE', 'CRUCE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (713, 1, 'CS', 'CLOSE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (716, 2, 'CT', 'CONNECTICUT', 11, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (717, 1, 'CT HSE', 'COURTHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (718, 1, 'CT YARD', 'COURTYARD', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (719, 1, 'CT YD', 'COURTYARD', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (722, 1, 'CTHS', 'COURTHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (723, 1, 'CTHSE', 'COURTHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (729, 3, 'CTS', 'COURTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (740, 1, 'CTYD', 'COURTYARD', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (741, 1, 'CU', 'COUR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (742, 1, 'CUL DE SAC', 'CUL DE SAC', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (743, 1, 'CULDESAC', 'CUL DE SAC', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (744, 1, 'CURRY RD', 'CURRY ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (745, 1, 'CURRY ROAD', 'CURRY ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (746, 1, 'CURVE', 'CURVE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (749, 1, 'CX', 'CHASE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (750, 1, 'CYN', 'CANYON', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (752, 1, 'D', 'D', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (753, 2, 'D', 'D', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (754, 1, 'D B A', 'DBA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (755, 1, 'DALE', 'DALE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (757, 1, 'DAM', 'DAM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (758, 1, 'DBA', 'DBA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (759, 2, 'DE', 'DE', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (760, 4, 'DE', 'DE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (761, 1, 'DE LA', 'DE LA', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (762, 1, 'DE LAS', 'DE LAS', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (763, 1, 'DE LOS', 'DE LOS', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (764, 2, 'DEL', 'DE', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (765, 1, 'DELL', 'DELL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (766, 2, 'DELL', 'DELL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (767, 1, 'DEPARTMENT', 'DEPARTMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (768, 2, 'DEPARTMENT', 'DEPARTMENT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (769, 1, 'DEPT', 'DEPARTMENT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (770, 2, 'DEPT', 'DEPARTMENT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (771, 1, 'DERE', 'DERECHO', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (772, 1, 'DERECHO', 'DERECHO', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (773, 1, 'DES', 'DES', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (774, 1, 'DEUX', '2', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (775, 2, 'DEUX', '2', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (776, 1, 'DEUXIEME', 'DEUXIEME', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (777, 1, 'DI', 'DIVERSION', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (778, 2, 'DI', 'DIVERSION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (779, 3, 'DI', 'DI', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (780, 1, 'DIV', 'DIVIDE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (781, 1, 'DIVERS', 'DIVERSION', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (782, 2, 'DIVERS', 'DIVERSION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (783, 1, 'DIVERSION', 'DIVERSION', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (784, 2, 'DIVERSION', 'DIVERSION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (785, 1, 'DIVIDE', 'DIVIDE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (786, 1, 'DL', 'DALE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (787, 2, 'DL', 'DELL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (714, 1, 'CSWY', 'CSWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (721, 2, 'CTER', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (725, 2, 'CTR', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (671, 1, 'CRCL', 'CIR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (672, 1, 'CRCLE', 'CIR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (682, 2, 'CRNR', 'COR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (683, 1, 'CRNRS', 'CORS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (751, 1, 'CZ', 'CORS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (736, 2, 'CTY ROAD', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (734, 2, 'CTY RD', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (706, 1, 'CRT', 'CT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (715, 1, 'CT', 'CT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (727, 1, 'CTS', 'CTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (657, 1, 'COURTS', 'CTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (663, 1, 'COVE', 'CV', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (748, 1, 'CV', 'CV', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (662, 1, 'COV', 'CV', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (680, 2, 'CRK', 'CRK', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (676, 1, 'CRESCENT', 'CRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (696, 1, 'CRSCNT', 'CRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (698, 1, 'CRSENT', 'CRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (702, 1, 'CRSNT', 'CRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (788, 1, 'DM', 'DAM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (789, 1, 'DNS', 'DOWNS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (790, 2, 'DNS', 'DOWNS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (791, 1, 'DO', 'DOWNS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (792, 1, 'DORM', 'DORMITORY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (793, 2, 'DORMITORY', 'DORMITORY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (794, 1, 'DOWN', 'DOWN', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (795, 2, 'DOWN', 'DOWN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (796, 1, 'DOWNS', 'DOWNS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (797, 2, 'DOWNS', 'DOWNS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (798, 1, 'DOWNSTAIRS', 'DOWNSTAIRS', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (800, 1, 'DRAW', 'DRAW', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (801, 2, 'DRAW', 'DRAW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (802, 1, 'DRAWER', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (805, 1, 'DRIVEWAY', 'DRIVEWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (807, 1, 'DRWY', 'DRIVEWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (808, 1, 'DU', 'DU', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (809, 1, 'DV', 'DIVIDE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (813, 1, 'EAST & WEST', 'EAST & WEST', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (814, 1, 'EAST WEST', 'EAST WEST', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (815, 1, 'EASTBOUND', 'EASTBOUND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (816, 2, 'EASTBOUND', 'EASTBOUND', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (817, 1, 'ECH', 'ECHANGEUR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (818, 1, 'ECHO', 'ECHO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (819, 2, 'ECHO', 'ECHO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (820, 1, 'ECHANGEUR', 'ECHANGEUR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (821, 1, 'EDF', 'EDIFICIO', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (822, 1, 'EDIF', 'EDIFICIO', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (823, 1, 'EDIFICIO', 'EDIFICIO', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (824, 1, 'EIGHT', '8', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (825, 2, 'EIGHT', '8', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (826, 1, 'EIGHT MILE', 'EIGHT MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (827, 1, 'EIGHTEEN', '18', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (828, 2, 'EIGHTEEN', '18', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (829, 1, 'EIGHTEEEN MILE', 'EIGHTEEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (830, 1, 'EIGHTEENTH', '18', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (831, 2, 'EIGHTEENTH', '18TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (832, 1, 'EIGHTH', '8', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (833, 2, 'EIGHTH', '8TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (834, 1, 'EIGHTIETH', '80', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (835, 2, 'EIGHTIETH', '80TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (836, 1, 'EIGHTY', '80', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (837, 2, 'EIGHTY', '80', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (838, 1, 'EIGHTY EIGHT', '88', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (839, 2, 'EIGHTY EIGHT', '88', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (840, 1, 'EIGHTY EIGHTH', '88', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (841, 2, 'EIGHTY EIGHTH', '88TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (842, 1, 'EIGHTY FIFTH', '85', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (843, 2, 'EIGHTY FIFTH', '85TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (844, 1, 'EIGHTY FIRST', '81', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (845, 2, 'EIGHTY FIRST', '81ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (846, 1, 'EIGHTY FIVE', '85', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (847, 2, 'EIGHTY FIVE', '85', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (848, 1, 'EIGHTY FOUR', '84', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (849, 2, 'EIGHTY FOUR', '84', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (850, 1, 'EIGHTY FOURTH', '84', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (851, 2, 'EIGHTY FOURTH', '84TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (852, 1, 'EIGHTY NINE', '89', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (853, 2, 'EIGHTY NINE', '89', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (854, 1, 'EIGHTY NINTH', '89', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (855, 2, 'EIGHTY NINTH', '89TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (856, 1, 'EIGHTY ONE', '81', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (857, 2, 'EIGHTY ONE', '81', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (858, 1, 'EIGHTY SECOND', '82', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (859, 2, 'EIGHTY SECOND', '82ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (860, 1, 'EIGHTY SEVEN', '87', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (861, 2, 'EIGHTY SEVEN', '87', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (862, 1, 'EIGHTY SEVENTH', '87', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (863, 2, 'EIGHTY SEVENTH', '87TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (864, 1, 'EIGHTY SIX', '86', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (865, 2, 'EIGHTY SIX', '86', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (866, 1, 'EIGHTY SIXTH', '86', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (867, 2, 'EIGHTY SIXTH', '86TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (868, 1, 'EIGHTY THIRD', '83', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (869, 2, 'EIGHTY THIRD', '83RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (870, 1, 'EIGHTY THREE', '83', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (871, 2, 'EIGHTY THREE', '83', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (872, 1, 'EIGHTY TWO', '82', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (873, 2, 'EIGHTY TWO', '82', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (874, 1, 'EL', 'EL', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (876, 1, 'ELEVEN', '11', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (877, 2, 'ELEVEN', '11', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (878, 1, 'ELEVEN MILE', 'ELEVEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (879, 1, 'ELEVENTH', '11', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (880, 2, 'ELEVENTH', '11TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (881, 1, 'EMS', 'EMS', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (882, 1, 'EN', 'END', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (883, 1, 'END', 'END', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (884, 1, 'END', 'END', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (885, 1, 'ENT', 'ENTRY', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (886, 1, 'ENT', 'ENTRY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (887, 1, 'ENTRY', 'ENTRY', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (888, 2, 'ENTRY', 'ENTRY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (889, 1, 'ENTREE', 'ENTREE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (890, 2, 'ENTREE', 'ENTREE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (891, 1, 'ES', 'ESPLANADE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (892, 1, 'ESP', 'ESPLANADE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (893, 1, 'ESPL', 'ESPLANADE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (894, 2, 'ESPL', 'ESPLANADE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (895, 3, 'ESPL', 'ESPLANADE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (896, 1, 'ESPLANADE', 'ESPLANADE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (897, 2, 'ESPLANADE', 'ESPLANADE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (898, 3, 'ESPLANADE', 'ESPLANADE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (899, 1, 'EST', 'ESTATES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (903, 1, 'ESTATE', 'ESTATES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (906, 1, 'ESTATES', 'ESTATES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (909, 1, 'ESTE', 'ESTE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (910, 2, 'ESTE', 'ESTE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (911, 1, 'ESTS', 'ESTATES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (915, 2, 'ET', 'ETAGE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (916, 3, 'ET', 'ET', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (917, 1, 'ETAGE', 'ETAGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (918, 2, 'ETAGE', 'ETAGE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (919, 1, 'EX', 'EXTENDED', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (921, 1, 'EXCH', 'EXCHANGE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (875, 1, 'EL CAMINO', 'CAM', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (806, 1, 'DRV', 'DR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (799, 1, 'DR', 'DR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (803, 1, 'DRI', 'DR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (804, 1, 'DRIVE', 'DR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (810, 1, 'E', 'E', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (811, 2, 'E', 'E', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (812, 1, 'EAST', 'E', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (922, 2, 'EXCH', 'EXCHANGE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (923, 1, 'EXCHANGE', 'EXCHANGE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (924, 2, 'EXCHANGE', 'EXCHANGE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (925, 3, 'EXCHANGE', 'EXCHANGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (926, 1, 'EXEC', 'EXECUTIVE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (927, 1, 'EXECUTIVE', 'EXECUTIVE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (930, 1, 'EXPRESO', 'EXPRESO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (939, 1, 'EXTD', 'EXTENDED', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (942, 1, 'EXTENDED', 'EXTENDED', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (950, 1, 'F M', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (951, 1, 'F M RD', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (952, 2, 'F M RD', 'FARM TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (953, 1, 'F M ROAD', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (954, 2, 'F M ROAD', 'FARM TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (955, 1, 'FACTORY OUTLET', 'OUTLET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (956, 1, 'FALL', 'FALL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (957, 1, 'FALLS', 'FALLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (958, 1, 'FARM', 'FARM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (959, 2, 'FARM', 'FARM', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (960, 1, 'FARM MAINTENANCE RD', 'FARM MAINTENANCE ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (961, 2, 'FARM MAINTENANCE RD', 'FARM MAINTENANCE ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (962, 1, 'FARM MARKET ROAD', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (963, 2, 'FARM MARKET ROAD', 'FARM TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (964, 1, 'FARM TO MARKET ROAD', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (965, 2, 'FARM TO MARKET ROAD', 'FARM TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (966, 1, 'FERRY', 'FERRY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (967, 1, 'FERRY CROSSING', 'FERRY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (968, 1, 'FEST', 'FESTIVAL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (969, 1, 'FESTIVAL', 'FESTIVAL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (970, 1, 'FIELD', 'FIELD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (972, 1, 'FIELDS', 'FIELDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (973, 1, 'FIFTEEN', '15', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (974, 2, 'FIFTEEN', '15', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (975, 1, 'FIFTEEN MILE', 'FIFTEEN MI', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (976, 1, 'FIFTEENTH', '15', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (977, 2, 'FIFTEENTH', '15TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (978, 1, 'FIFTH', '5', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (979, 2, 'FIFTH', '5TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (980, 1, 'FIFTIETH', '50', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (981, 2, 'FIFTIETH', '50TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (982, 1, 'FIFTY', '50', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (983, 2, 'FIFTY', '50', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (984, 1, 'FIFTY EIGHT', '58', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (985, 2, 'FIFTY EIGHT', '58', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (986, 1, 'FIFTY EIGHTH', '58', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (987, 2, 'FIFTY EIGHTH', '58TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (988, 1, 'FIFTY FIFTH', '55', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (989, 2, 'FIFTY FIFTH', '55TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (990, 1, 'FIFTY FIRST', '51', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (991, 2, 'FIFTY FIRST', '51ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (992, 1, 'FIFTY FIVE', '55', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (993, 2, 'FIFTY FIVE', '55', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (994, 1, 'FIFTY FOUR', '54', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (995, 2, 'FIFTY FOUR', '54', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (996, 1, 'FIFTY FOURTH', '54', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (997, 2, 'FIFTY FOURTH', '54TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (998, 1, 'FIFTY NINE', '59', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (999, 2, 'FIFTY NINE', '59', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1000, 1, 'FIFTY NINTH', '59', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1001, 2, 'FIFTY NINTH', '59TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1002, 1, 'FIFTY ONE', '51', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1003, 2, 'FIFTY ONE', '51', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1004, 1, 'FIFTY SECOND', '52', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1005, 2, 'FIFTY SECOND', '52ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1006, 1, 'FIFTY SEVEN', '57', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1007, 2, 'FIFTY SEVEN', '57', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1008, 1, 'FIFTY SEVENTH', '57', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1009, 2, 'FIFTY SEVENTH', '57TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1094, 1, 'FOUR', '4', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1010, 1, 'FIFTY SIX', '56', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1011, 2, 'FIFTY SIX', '56', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1012, 1, 'FIFTY SIXTH', '56', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1013, 2, 'FIFTY SIXTH', '56TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1014, 1, 'FIFTY THIRD', '53', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1015, 2, 'FIFTY THIRD', '53RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1016, 1, 'FIFTY THREE', '53', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1017, 2, 'FIFTY THREE', '53', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1018, 1, 'FIFTY TWO', '52', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1019, 2, 'FIFTY TWO', '52', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1020, 1, 'FIRST', '1', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1021, 2, 'FIRST', '1ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1022, 1, 'FIVE', '5', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1023, 2, 'FIVE', '5', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1024, 1, 'FIVE CEDARS', 'FIVE CEDARS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1025, 1, 'FIVE CORNERS', 'FIVE CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1026, 1, 'FIVE MILE', 'FIVE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1027, 1, 'FIVE POINTS', 'FIVE POINTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1028, 1, 'FIVE TOWN', 'FIVE TOWN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1029, 1, 'FL', 'FLOOR', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1030, 1, 'FLAT', 'FLAT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1031, 1, 'FLD', 'FIELD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1032, 1, 'FLDS', 'FIELDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1033, 1, 'FLLS', 'FALLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1034, 1, 'FLOOR', 'FLOOR', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1035, 2, 'FLOOR', 'FLOOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1036, 1, 'FLR', 'FLOOR', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1037, 1, 'FLS', 'FALLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1038, 1, 'FLT', 'FLAT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1039, 1, 'FLTS', 'FLATS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1040, 1, 'FM', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1041, 1, 'FM RD', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1042, 2, 'FM RD', 'FARM TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1043, 1, 'FM ROAD', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1044, 2, 'FM ROAD', 'FARM TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1045, 1, 'FMRD', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1046, 2, 'FMRD', 'FARM TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1047, 1, 'FORD', 'FORD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1048, 1, 'FOREST', 'FOREST', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1049, 1, 'FORGE', 'FORGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (936, 1, 'EXPY', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (935, 1, 'EXPWY', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (934, 1, 'EXPWAY', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (932, 1, 'EXPRESSWAY', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (949, 1, 'EXWY', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1050, 1, 'FORK', 'FORK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1051, 1, 'FORKS', 'FORKS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1052, 1, 'FORT', 'FORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1053, 1, 'FORTIETH', '40', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1054, 2, 'FORTIETH', '40TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1055, 1, 'FORTS', 'FORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1056, 1, 'FORTY', '40', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1057, 2, 'FORTY', '40', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1058, 1, 'FORTY EIGHT', '48', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1059, 2, 'FORTY EIGHT', '48', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1060, 1, 'FORTY EIGHTH', '48', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1061, 2, 'FORTY EIGHTH', '48TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1062, 1, 'FORTY FIFTH', '45', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1063, 2, 'FORTY FIFTH', '45TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1064, 1, 'FORTY FIRST', '41', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1065, 2, 'FORTY FIRST', '41ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1066, 1, 'FORTY FIVE', '45', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1067, 2, 'FORTY FIVE', '45', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1068, 1, 'FORTY FOUR', '44', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1069, 2, 'FORTY FOUR', '44', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1070, 1, 'FORTY FOURTH', '44', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1071, 2, 'FORTY FOURTH', '44TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1072, 1, 'FORTY NINE', '49', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1073, 2, 'FORTY NINE', '49', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1074, 1, 'FORTY NINTH', '49', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1075, 2, 'FORTY NINTH', '49TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1076, 1, 'FORTY ONE', '41', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1077, 2, 'FORTY ONE', '41', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1078, 1, 'FORTY SECOND', '42', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1079, 2, 'FORTY SECOND', '42ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1080, 1, 'FORTY SEVEN', '47', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1081, 2, 'FORTY SEVEN', '47', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1082, 1, 'FORTY SEVENTH', '47', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1083, 2, 'FORTY SEVENTH', '47TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1084, 1, 'FORTY SIX', '46', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1085, 2, 'FORTY SIX', '46', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1086, 1, 'FORTY SIXTH', '46', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1087, 2, 'FORTY SIXTH', '46TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1088, 1, 'FORTY THIRD', '43', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1089, 2, 'FORTY THIRD', '43RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1090, 1, 'FORTY THREE', '43', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1091, 2, 'FORTY THREE', '43', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1092, 1, 'FORTY TWO', '42', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1093, 2, 'FORTY TWO', '42', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1095, 2, 'FOUR', '4', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1096, 1, 'FOUR CORNERS', 'FOUR CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1097, 1, 'FOUR FLAGS', 'FOUR FLAGS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1098, 1, 'FOUR MILE', 'FOUR MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1099, 1, 'FOURTEEN', '14', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1100, 2, 'FOURTEEN', '14', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1101, 1, 'FOURTEEN MILE', 'FOURTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1102, 1, 'FOURTEENTH', '14', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1103, 2, 'FOURTEENTH', '14', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1104, 1, 'FOURTH', '4', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1105, 2, 'FOURTH', '4TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1106, 1, 'FPO', 'FPO', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1107, 1, 'FRD', 'FORD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1110, 1, 'FRG', 'FORGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1111, 1, 'FRK', 'FORK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1112, 1, 'FRKS', 'FORKS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1113, 1, 'FRNT', 'FRONT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1114, 2, 'FRNT', 'FRONT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1115, 1, 'FROM', 'FROM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1116, 1, 'FRONT', 'FRONT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1117, 2, 'FRONT', 'FRONT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1118, 3, 'FRONT', 'FRONT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1119, 1, 'FRONTAGE', 'FRONT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1120, 1, 'FRST', 'FOREST', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1121, 2, 'FRST', 'FOREST', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1122, 1, 'FRT', 'FORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1125, 1, 'FRY', 'FERRY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1126, 1, 'FS RD', 'FOREST SERVICE ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1127, 1, 'FT', 'FORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1128, 1, 'FWD', 'FOUR WHEEL DRIVE TRAIL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1130, 1, 'FX', 'FOX', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1131, 1, 'G DEL', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1132, 1, 'G DELIVERY', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1134, 1, 'GALLERIA', 'GALLERIA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1135, 2, 'GALLERIA', 'GALLERIA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1136, 1, 'GALLERIE', 'GALLERIA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1137, 2, 'GALLERIE', 'GALLERIA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1138, 1, 'GALR', 'GALLERIA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1139, 1, 'GARDEN', 'GARDEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1140, 1, 'GARDENS', 'GARDENS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1143, 1, 'GATE', 'GATE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1267, 1, 'HL', 'HILL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1144, 2, 'GATE', 'GATE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1145, 1, 'GATEWAY', 'GATEWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1147, 1, 'GD', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1148, 2, 'GD', 'GROUNDS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1149, 1, 'GDN', 'GARDEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1151, 1, 'GDNS', 'GARDEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1154, 1, 'GDS', 'GARDEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1156, 1, 'GEN D', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1157, 1, 'GEN DEL', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1158, 1, 'GEN DELIVERY', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1159, 1, 'GENDEL', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1160, 1, 'GENERAL D', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1161, 1, 'GENERAL DEL', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1162, 1, 'GENERAL DELIVERY', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1164, 1, 'GLADE', 'GLADE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1165, 2, 'GLADE', 'GLADE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1166, 1, 'GLEN', 'GLEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1168, 1, 'GLN', 'GLEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1170, 1, 'GNDL', 'GENERAL DELIVERY', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1171, 1, 'GOV', 'GOVERNOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1172, 1, 'GOVERNOR', 'GOVERNOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1173, 1, 'GPO', 'GPO', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1174, 1, 'GR', 'GROUND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1176, 1, 'GREEN', 'GREEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1178, 1, 'GREENE RD', 'GREENE ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1179, 1, 'GREENE ROAD', 'GREENE ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1180, 1, 'GRN', 'GREEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1123, 1, 'FRWAY', 'FWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1124, 1, 'FRWY', 'FWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1129, 1, 'FWY', 'FWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1108, 1, 'FREEWAY', 'FWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1182, 1, 'GRNDS', 'GROUNDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1183, 2, 'GRNDS', 'GROUNDS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1184, 1, 'GROUND', 'GROUND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1185, 1, 'GROUNDS', 'GROUNDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1186, 2, 'GROUNDS', 'GROUNDS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1187, 1, 'GROVE', 'GROVE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1189, 1, 'GRV', 'GROVE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1191, 1, 'GT', 'GATE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1192, 1, 'GTWAY', 'GATEWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1194, 1, 'GTWY', 'GATEWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1197, 1, 'H C', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1198, 1, 'H C R', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1199, 1, 'H CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1200, 1, 'H CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1201, 1, 'HALF', 'HALF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1202, 1, 'HALL', 'HALL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1203, 2, 'HALL', 'HALL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1204, 1, 'HANGER', 'HANGER', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1205, 2, 'HANGER', 'HANGER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1206, 1, 'HARBOR', 'HARBOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1207, 1, 'HARBOUR', 'HARBOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1210, 1, 'HARBR', 'HARBOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1213, 1, 'HAVEN', 'HAVEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1214, 1, 'HBR', 'HARBOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1217, 1, 'HC', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1218, 1, 'HC RT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1219, 1, 'HC RTE', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1220, 1, 'HCO', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1221, 1, 'HCR', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1222, 1, 'HCRT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1223, 1, 'HEIGHT', 'HEIGHTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1224, 1, 'HEIGHTS', 'HEIGHTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1227, 1, 'HGHLDS', 'HIGHLANDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1228, 2, 'HGHLDS', 'HIGHLANDS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1229, 1, 'HGT', 'HEIGHTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1232, 1, 'HGTS', 'HEIGHTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1237, 1, 'HGWY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1238, 1, 'HGWY FM', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1241, 1, 'HGY FM', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1244, 1, 'HIGH CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1245, 1, 'HIGH CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1246, 1, 'HIGHLANDS', 'HIGHLANDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1247, 2, 'HIGHLANDS', 'HIGHLANDS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1250, 1, 'HIGHWAY CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1251, 1, 'HIGHWAY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1252, 1, 'HIGHWAY CONTRACT ROUTE', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1253, 1, 'HIGHWAY FM', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1256, 1, 'HIGHWY FM', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1257, 1, 'HILL', 'HILL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1259, 1, 'HILLS', 'HILLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1262, 1, 'HIWAY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1263, 1, 'HIWAY FM', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1266, 1, 'HIWY FM', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1269, 1, 'HLLW', 'HOLLOW', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1271, 1, 'HLS', 'HILLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1272, 1, 'HNGR', 'HANGER', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1273, 2, 'HNGR', 'HANGER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1275, 2, 'H0', 'HOLLOW', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1276, 1, 'HOL', 'HOLLOW', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1278, 1, 'HOLLOW', 'HOLLOW', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1280, 1, 'HOLW', 'HOLLOW', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1282, 1, 'HOME', 'HOME', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1283, 2, 'HOME', 'HOME', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1284, 1, 'HOMES', 'HOME', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1285, 1, 'HOSP', 'HOSPITAL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1286, 1, 'HOSPITAL', 'HOSPITAL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1287, 1, 'HOTEL', 'HOTEL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1288, 2, 'HOTEL', 'HOTEL', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1289, 1, 'HOUS', 'HOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1290, 2, 'HOUS', 'HOUSE', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1291, 1, 'HOUSE', 'HOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1292, 2, 'HOUSE', 'HOUSE', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1293, 3, 'HOUSE', 'HOUSE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1294, 1, 'HOUSING PROJ', 'PROJECTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1295, 1, 'HOUSING PROJECTS', 'PROJECTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1296, 1, 'HRBR', 'HARBOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1299, 1, 'HRBOR', 'HARBOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1302, 1, 'HSE', 'HOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1303, 2, 'HSE', 'HOUSE', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1304, 1, 'HSE PROJ', 'PROJECTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1305, 1, 'HSE PROJECTS', 'PROJECTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1306, 1, 'HT', 'HEIGHTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1190, 2, 'GRV', 'GRV', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1196, 1, 'GV', 'GRV', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1188, 2, 'GROVE', 'GRV', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1211, 2, 'HARBR', 'HBR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1297, 2, 'HRBR', 'HBR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1300, 2, 'HRBOR', 'HBR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1208, 2, 'HARBOUR', 'HBR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1215, 2, 'HBR', 'HBR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1216, 3, 'HBR', 'HBR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1233, 2, 'HGTS', 'HTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1307, 2, 'HT', 'HTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1225, 2, 'HEIGHTS', 'HTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1230, 2, 'HGT', 'HTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1236, 2, 'HGWY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1243, 2, 'HI', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1255, 2, 'HIGHWY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1265, 2, 'HIWY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1309, 1, 'HTL', 'HOTEL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1310, 2, 'HTL', 'HOTEL', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1311, 1, 'HTS', 'HEIGHTS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1314, 1, 'HUI RD', 'HUI ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1315, 1, 'HUI ROAD', 'HUI ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1316, 1, 'HVN', 'HAVEN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1321, 1, 'HWC', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1324, 1, 'HWY CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1325, 1, 'HWY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1326, 1, 'HWY FM', 'FARM TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1327, 1, 'HWYS', 'HIGHWAYS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1330, 1, 'HY CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1331, 1, 'HY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1334, 1, 'I', 'INTERSTATE HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1336, 1, 'I H', 'INTERSTATE HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1337, 1, 'IC', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1338, 1, 'ICHG', 'INTERCHANGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1339, 1, 'IH', 'INTERSTATE HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1340, 1, 'ILE', 'ILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1341, 2, 'ILE', 'ILE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1342, 1, 'IM', 'IMPASSE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1343, 1, 'IMM', 'IMMEUBLE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1344, 2, 'IMM', 'IMMEUBLE', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1345, 1, 'IMMEUBLE', 'IMMEUBLE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1346, 2, 'IMMEUBLE', 'IMMEUBLE', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1347, 1, 'IMP', 'IMPASSE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1348, 1, 'IMPASSE', 'IMPASSE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1349, 1, 'IN CARE OF', 'CARE OF', 9, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1350, 1, 'INCTR', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1351, 1, 'IND PARK', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1352, 1, 'IND PK', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1353, 1, 'INDC', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1354, 1, 'INDL', 'INDUSTRIAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1355, 1, 'INDL CTR', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1356, 1, 'INDL PARK', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1357, 1, 'INDL PK', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1358, 1, 'INDUSTRIAL', 'INDUSTRIAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1359, 1, 'INDUSTRIAL CENTER', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1360, 1, 'INDUSTRIAL CTR', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1361, 1, 'INDUSTRIAL PARK', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1362, 1, 'INDUSTRIAL PK', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1363, 1, 'INLET', 'INLET', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1364, 1, 'INLT', 'INLET', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1365, 1, 'INN', 'INN', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1366, 2, 'INN', 'INN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1367, 1, 'INPK', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1368, 1, 'INT L', 'INTERNATIONAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1369, 1, 'INTE', 'INTERIOR', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1370, 1, 'INTERCHANGE', 'INTERCHANGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1371, 1, 'INTERIOR', 'INTERIOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1372, 1, 'INTERIOR', 'INTERIOR', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1373, 1, 'INTERNATIONAL', 'INTERNATIONAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1374, 1, 'INTERSECTION', 'INTERSECTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1375, 1, 'INTERSTATE', 'INTERSTATE HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1376, 2, 'INTERSTATE', 'INTERSTATE HIGHWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1377, 1, 'INTERSTATE HIGHWAY', 'INTERSTATE HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1378, 2, 'INTERSTATE HIGHWAY', 'INTERSTATE HIGHWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1379, 1, 'INTERSTATE HWY', 'INTERSTATE HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1380, 2, 'INTERSTATE HWY', 'INTERSTATE HIGHWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1381, 1, 'INSTITUTE', 'INSTITUTE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1382, 2, 'INSTITUTE', 'INSTITUTE', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1383, 3, 'INSTITUTE', 'INSTITUTE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1384, 1, 'INTL', 'INTERNATIONAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1385, 1, 'INTR', 'INTERSECTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1386, 1, 'IP', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1387, 1, 'IPRK', 'INDUSTRIAL PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1388, 1, 'IS', 'INTERSTATE HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1389, 2, 'IS', 'ISLE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1391, 1, 'ISLAND', 'ISLAND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1393, 1, 'ISLANDS', 'ISLANDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1394, 1, 'ISLE', 'ISLE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1395, 1, 'ISLES', 'ISLES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1396, 1, 'IZQU', 'IZQUIERDO', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1397, 1, 'IZQUIERDO', 'IZQUIERDO', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1398, 1, 'J F K', 'JOHN F KENNEDY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1399, 1, 'J F KENNEDY', 'JOHN F KENNEDY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1400, 1, 'JA', 'JARDIN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1401, 1, 'JAF', 'JAF', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1402, 1, 'JAF BOX', 'JAF BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1403, 1, 'JAF STATION', 'JAF STATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1404, 1, 'JARDIN', 'JARDIN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1405, 2, 'JARDIN', 'JARDIN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1408, 3, 'JCT', 'JUNCTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1411, 3, 'JCTION', 'JUNCTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1414, 3, 'JCTN', 'JUNCTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1415, 1, 'JEEP TRAIL', 'JEEP TRAIL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1416, 1, 'JEEP TRL', 'JEEP TRAIL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1417, 1, 'JFK', 'JOHN F KENNEDY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1420, 3, 'JNCT', 'JUNCTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1421, 1, 'JOHN F KENNEDY', 'JOHN F KENNEDY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1424, 3, 'JUNC', 'JUNCTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1427, 3, 'JUNCT', 'JUNCTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1430, 3, 'JUNCTION', 'JUNCTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1433, 3, 'JUNCTN', 'JUNCTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1312, 2, 'HTS', 'HTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1318, 2, 'HW', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1333, 2, 'HYWY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1329, 2, 'HY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1323, 2, 'HWY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1320, 2, 'HWAY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1390, 3, 'IS', 'IS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1392, 2, 'ISLAND', 'IS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1406, 1, 'JCT', 'JCT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1409, 1, 'JCTION', 'JCT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1412, 1, 'JCTN', 'JCT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1425, 1, 'JUNCT', 'JCT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1431, 1, 'JUNCTN', 'JCT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1422, 1, 'JUNC', 'JCT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1428, 1, 'JUNCTION', 'JCT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1436, 3, 'JUNCTON', 'JUNCTION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1437, 1, 'K MART', 'K MART', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1438, 1, 'KEY', 'KEY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1440, 1, 'KEYSTONE ROUTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1441, 1, 'KEYSTONE RT', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1442, 1, 'KEYSTONE RTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1443, 1, 'KMART', 'K MART', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1444, 1, 'KNL', 'KNOLL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1446, 1, 'KNLS', 'KNOLLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1449, 1, 'KNOLLS', 'KNOLLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1451, 1, 'L B J', 'LYNDON B JOHNSON', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1452, 1, 'L B JOHNSON', 'LYNDON B JOHNSON', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1453, 1, 'L C D', 'LETTER CARRIER DEPOT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1456, 1, 'LAKE', 'LAKE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1457, 1, 'LAKES', 'LAKE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1460, 3, 'LAND', 'LANDING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1463, 3, 'LANDING', 'LANDING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1466, 3, 'LANDINGS', 'LANDING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1469, 1, 'LAS', 'LAS', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1470, 1, 'LBBY', 'LOBBY', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1471, 1, 'LBJ', 'LYNDON B JOHNSON', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1472, 1, 'LCD', 'LETTER CARRIER DEPOT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1473, 1, 'LCKS', 'LOCKS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1476, 3, 'LDG', 'LODGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1479, 3, 'LDGE', 'LODGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1481, 2, 'LE', 'LE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1482, 3, 'LE', 'LE', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1483, 1, 'LEFT', 'LEFT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1484, 2, 'LEFT', 'LEFT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1485, 1, 'LES', 'LES', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1486, 1, 'LETTER CARRIER DEPOT', 'LETTER CARRIER DEPOT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1487, 1, 'LEVEL', 'LEVEL', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1488, 2, 'LEVEL', 'LEVEL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1489, 1, 'LF', 'LOAF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1490, 1, 'LGT', 'LIGHT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1491, 1, 'LI', 'LINE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1492, 1, 'LIGHT', 'LIGHT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1493, 1, 'LIMITS', 'LIMITS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1494, 2, 'LIMITS', 'LIMITS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1495, 1, 'LINE', 'LINE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1496, 2, 'LINE', 'LINE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1497, 1, 'LINK', 'LINK', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1498, 2, 'LINK', 'LINK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1499, 1, 'LK', 'LAKE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1500, 2, 'LK', 'LINK', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1501, 1, 'LKOUT', 'LOOKOUT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1502, 1, 'LKS', 'LAKE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1503, 1, 'LMTS', 'LIMITS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1504, 2, 'LMTS', 'LIMITS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1508, 3, 'LNDG', 'LANDING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1511, 3, 'LNDNG', 'LANDING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1513, 1, 'LOAF', 'LOAF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1514, 1, 'LOBBY', 'LOBBY', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1515, 1, 'LOBBY', 'LOBBY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1516, 1, 'LOCAL', 'BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1517, 1, 'LOCAL BOX', 'BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1518, 1, 'LOCAL HCR', 'HIGHWAY CONTRACT ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1519, 1, 'LOCAL PO BOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1520, 1, 'LOCKBOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1521, 1, 'LOCKS', 'LOCKS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1524, 3, 'LODGE', 'LODGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1525, 1, 'LOOKOUT', 'LOOKOUT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1526, 2, 'LOOKOUT', 'LOOKOUT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1529, 1, 'LOS', 'LOS', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1530, 1, 'LOT', 'LOT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1531, 2, 'LOT', 'LOT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1532, 3, 'LOT', 'LOT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1533, 1, 'LOWER', 'LOWER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1534, 2, 'LOWER', 'LOWER', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1535, 1, 'LOWR', 'LOWER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1536, 2, 'LOWR', 'LOWER', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1539, 1, 'LT', 'LOT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1540, 2, 'LT', 'LOT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1541, 3, 'LT', 'LOOKOUT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1542, 1, 'LVL', 'LEVEL', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1543, 1, 'LWR', 'LOWER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1544, 2, 'LWR', 'LOWER', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1545, 1, 'LYNDON B JOHNSON', 'LYNDON B JOHNSON', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1546, 1, 'M H P', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1547, 1, 'M L K', 'MARTIN LUTHER KING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1548, 1, 'M L KING', 'MARTIN LUTHER KING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1549, 1, 'MAISON', 'MAISON', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1550, 2, 'MAISON', 'MAISON', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1551, 3, 'MAISON', 'MAISON', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1555, 3, 'MALL', 'MALL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1559, 3, 'MANOR', 'MANOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1562, 1, 'MARG', 'MARGINAL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1563, 1, 'MARGINAL', 'MARGINAL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1564, 1, 'MARKET', 'MARKET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1565, 2, 'MARKET', 'MARKET', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1566, 1, 'MARKET PL', 'MARKET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1567, 1, 'MARKET PLACE', 'MARKET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1434, 1, 'JUNCTON', 'JCT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1450, 4, 'KY', 'KY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1439, 2, 'KEY', 'KY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1445, 2, 'KNL', 'KNL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1448, 1, 'KNOLL', 'KNL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1447, 2, 'KNLS', 'KNLS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1506, 1, 'LNDG', 'LNDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1464, 1, 'LANDINGS', 'LNDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1461, 1, 'LANDING', 'LNDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1458, 1, 'LAND', 'LNDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1467, 1, 'LANDNG', 'LNDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1509, 1, 'LNDNG', 'LNDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1454, 1, 'LA', 'LN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1468, 1, 'LANE', 'LN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1480, 1, 'LE', 'LN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1568, 1, 'MARKETPLACE', 'MARKET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1569, 1, 'MART', 'MARKET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1570, 1, 'MARTIN KING', 'MARTIN LUTHER KING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1571, 1, 'MARTIN L KING', 'MARTIN LUTHER KING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1572, 1, 'MARTIN LUTHER', 'MARTIN LUTHER KING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1573, 1, 'MARTIN LUTHER KING', 'MARTIN LUTHER KING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1574, 1, 'MARTIN LUTHER KING JR', 'MARTIN LUTHER KING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1575, 1, 'MAZE', 'MAZE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1576, 1, 'MC', 'MC', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1577, 1, 'MDWS', 'MEADOWS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1580, 1, 'MEADOW', 'MEADOW', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1582, 1, 'MEADOWS', 'MEADOWS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1584, 1, 'MED', 'MEDICAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1585, 1, 'MEDICAL', 'MEDICAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1586, 1, 'MEM', 'MEMORIAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1587, 1, 'MEMORIAL', 'MEMORIAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1588, 1, 'MERC', 'MERCADO', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1589, 1, 'MERCADO', 'MERCADO', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1591, 2, 'MEWS', 'MEWS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1593, 1, 'MH', 'MOBILE HOME', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1594, 1, 'MH CT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1595, 1, 'MH PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1596, 1, 'MHP', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1597, 1, 'MI', 'MILE POST', 20, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1598, 1, 'MI POST', 'MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1599, 1, 'MIDDLE', 'MIDDLE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1600, 2, 'MIDDLE', 'MIDDLE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1601, 1, 'MILE', 'MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1602, 2, 'MILE', 'MILE POST', 20, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1603, 1, 'MILE POST', 'MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1604, 2, 'MILE POST', 'MILE POST', 20, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1605, 1, 'MILES', 'MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1606, 1, 'MILL', 'MILL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1607, 1, 'MILLS', 'MILLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1608, 1, 'MISSION', 'MISSION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1609, 1, 'MKT', 'MARKET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1610, 1, 'MKT PL', 'MARKET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1611, 1, 'MKT PLACE', 'MARKET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1612, 1, 'MKTPL', 'MARKET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1615, 3, 'ML', 'MALL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1616, 1, 'ML KING', 'MARTIN LUTHER KING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1617, 1, 'MLK', 'MARTIN LUTHER KING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1618, 1, 'MLS', 'MILLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1621, 3, 'MNR', 'MANOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1623, 2, 'MNRS', 'MANOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1624, 1, 'MNT', 'MOUNT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1625, 4, 'MO', 'MONTEE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1626, 1, 'MOB HM PK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1627, 1, 'MOB HOME PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1628, 1, 'MOBIL HOME PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1629, 1, 'MOBIL HOME TRPK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1630, 1, 'MOBILE COURT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1631, 1, 'MOBILE CT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1632, 1, 'MOBILE EST', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1633, 1, 'MOBILE ESTATE', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1634, 1, 'MOBILE HM PK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1635, 1, 'MOBILE HOME', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1636, 2, 'MOBILE HOME', 'MOBILE HOME', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1637, 1, 'MOBILE HOME PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1638, 1, 'MOBILE HOME PK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1639, 1, 'MOBILE HOME TRPK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1640, 1, 'MOBILE HOMES', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1641, 1, 'MOBILE PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1642, 1, 'MOBILE ROUTE', 'MOBILE ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1643, 1, 'MONTEE', 'MONTEE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1644, 2, 'MONTEE', 'MONTEE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1645, 1, 'MOOR', 'MOOR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1646, 2, 'MOOR', 'MOOR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1647, 1, 'MOTEL', 'MOTEL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1649, 1, 'MOUNT', 'MOUNT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1651, 1, 'MOUNTAIN', 'MOUNTAIN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1653, 1, 'MOUNTAINS', 'MOUNTAIN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1654, 1, 'MP', 'MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1655, 2, 'MP', 'MILE POST', 20, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1656, 1, 'MR', 'MOBILE ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1657, 1, 'MS', 'MS', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1658, 1, 'MSN', 'MISSION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1659, 1, 'MT', 'MOUNT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1660, 1, 'MTD ROUTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1661, 1, 'MTD RT', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1662, 1, 'MTD RTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1663, 1, 'MTL', 'MOTEL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1664, 1, 'MTN', 'MOUNTAIN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1665, 1, 'MTNS', 'MOUNTAIN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1668, 1, 'MURO', 'MURO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1672, 1, 'N A B', 'NAVAL AIR STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1673, 2, 'N A B', 'NAVAL AIR STATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1674, 1, 'N A S', 'NAVAL AIR STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1675, 2, 'N A S', 'NAVAL AIR STATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1677, 1, 'N F D', 'NATL FOREST DEVELOP ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1679, 1, 'NAB', 'NAVAL AIR STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1680, 2, 'NAB', 'NAVAL AIR STATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1681, 1, 'NAS', 'NAVAL AIR STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1682, 2, 'NAS', 'NAVAL AIR STATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1683, 1, 'NATIONAL', 'NATIONAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1684, 1, 'NATL', 'NATIONAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1685, 1, 'NATL FOREST', 'NATL FOREST', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1686, 1, 'NATL FOREST DEVELOP ROAD', 'NATL FOREST DEVELOP ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1687, 1, 'NATL FOREST HIGHWAY', 'NATL FOREST HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1688, 1, 'NAVAL AIR BASE', 'NAVAL AIR STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1689, 2, 'NAVAL AIR BASE', 'NAVAL AIR STATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1690, 1, 'NAVAL AIR STATION', 'NAVAL AIR STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1691, 2, 'NAVAL AIR STATION', 'NAVAL AIR STATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1613, 1, 'ML', 'MALL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1619, 1, 'MNR', 'MNR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1669, 1, 'MW', 'MDW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1581, 2, 'MEADOW', 'MDW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1579, 4, 'ME', 'MEWS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1590, 1, 'MEWS', 'MEWS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1670, 1, 'N', 'N', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1671, 2, 'N', 'N', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1676, 1, 'N E', 'NE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1678, 1, 'N W', 'NW', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1692, 1, 'NAVAL BASE', 'NAVAL AIR STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1693, 2, 'NAVAL BASE', 'NAVAL AIR STATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1694, 1, 'NCK', 'NECK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1696, 1, 'NEAR', 'NEAR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1697, 1, 'NECK', 'NECK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1698, 1, 'NF HWY', 'NATL FOREST HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1699, 1, 'NFD', 'NATL FOREST DEVELOP ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1700, 1, 'NFD', 'NATL FOREST DEVELOP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1701, 1, 'NFHWY', 'NATL FOREST HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1702, 1, 'NINE', '9', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1703, 2, 'NINE', '9', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1704, 1, 'NINE MILE', 'NINE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1705, 1, 'NINETEEN', '19', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1706, 2, 'NINETEEN', '19', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1707, 1, 'NINETEEN MILE', 'NINETEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1708, 1, 'NINETEENTH', '19', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1709, 2, 'NINETEENTH', '19TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1710, 1, 'NINETIETH', '90', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1711, 2, 'NINETIETH', '90TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1712, 1, 'NINETY', '90', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1713, 2, 'NINETY', '90', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1714, 1, 'NINETY EIGHT', '98', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1715, 2, 'NINETY EIGHT', '98', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1716, 1, 'NINETY EIGHTH', '98', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1717, 2, 'NINETY EIGHTH', '98TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1718, 1, 'NINETY FIFTH', '95', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1719, 2, 'NINETY FIFTH', '95TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1720, 1, 'NINETY FIRST', '91', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1721, 2, 'NINETY FIRST', '91ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1722, 1, 'NINETY FIVE', '95', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1723, 2, 'NINETY FIVE', '95', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1724, 1, 'NINETY FOUR', '94', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1725, 2, 'NINETY FOUR', '94', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1726, 1, 'NINETY FOURTH', '94', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1727, 2, 'NINETY FOURTH', '94TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1728, 1, 'NINETY NINE', '99', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1729, 2, 'NINETY NINE', '99', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1730, 1, 'NINETY NINTH', '99', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1731, 2, 'NINETY NINTH', '99TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1732, 1, 'NINETY ONE', '91', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1733, 2, 'NINETY ONE', '91', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1734, 1, 'NINETY SECOND', '92', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1735, 2, 'NINETY SECOND', '92ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1736, 1, 'NINETY SEVEN', '97', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1737, 2, 'NINETY SEVEN', '97', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1868, 1, 'PD', 'POND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1738, 1, 'NINETY SEVENTH', '97', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1739, 2, 'NINETY SEVENTH', '97TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1740, 1, 'NINETY SIX', '96', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1741, 2, 'NINETY SIX', '96', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1742, 1, 'NINETY SIXTH', '96', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1743, 2, 'NINETY SIXTH', '96TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1744, 1, 'NINETY THIRD', '93', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1745, 2, 'NINETY THIRD', '93RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1746, 1, 'NINETY THREE', '93', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1747, 2, 'NINETY THREE', '93', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1748, 1, 'NINETY TWO', '92', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1749, 2, 'NINETY TWO', '92', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1750, 1, 'NINTH', '9', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1751, 2, 'NINTH', '9TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1752, 1, 'NO', '#', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1754, 3, 'NO', '#', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1756, 1, 'NORD', 'NORD', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1757, 1, 'NORD EST', 'NORD EST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1758, 1, 'NORD OUEST', 'NORD OUEST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1759, 1, 'NORDEST', 'NORD EST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1760, 1, 'NORDOUEST', 'NORD OUEST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1763, 1, 'NORTH & SOUTH', 'NORTH & SOUTH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1765, 1, 'NORTH SOUTH', 'NORTH SOUTH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1767, 1, 'NORTHBOUND', 'NORTHBOUND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1768, 2, 'NORTHBOUND', 'NORTHBOUND', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1770, 1, 'NR', 'NEAR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1772, 1, 'NUMBER', '#', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1773, 2, 'NUMBER', '#', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1775, 1, 'O', '0', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1776, 2, 'O', 'O', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1777, 1, 'OESTE', 'OESTE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1778, 1, 'OF', 'OF', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1779, 1, 'OF PK', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1780, 1, 'OF PRK', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1781, 1, 'OFC', 'OFFICE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1782, 1, 'OFC CENTER', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1783, 1, 'OFC COMPLEX', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1784, 1, 'OFC CTR', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1785, 1, 'OFC PARK', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1786, 1, 'OFC PRK', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1787, 1, 'OFFICE', 'OFFICE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1788, 2, 'OFFICE', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1789, 1, 'OFFICE CENTER', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1790, 1, 'OFFICE COMPLEX', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1791, 1, 'OFFICE CTR', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1792, 1, 'OFFICE PARK', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1793, 1, 'OFFICE PRK', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1794, 1, 'OFFICES', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1795, 1, 'OFPK', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1796, 1, 'OFPRK', 'OFFICE PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1797, 1, 'OLD', 'OLD', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1798, 2, 'OLD', 'OLD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1799, 4, 'ON', 'ON', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1800, 1, 'ONE', '1', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1801, 2, 'ONE', '1', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1802, 1, 'ONE HUNDRED', 'ONE HUNDRED', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1803, 2, 'ONE HUNDRED', '100', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1804, 1, 'ONE MILE', 'ONE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1805, 1, 'ORCH', 'ORCHARD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1806, 1, 'ORCHARD', 'ORCHARD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1808, 1, 'OTLT', 'OUTLET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1809, 1, 'OUEST', 'OUEST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1810, 1, 'OUTLET', 'OUTLET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1811, 1, 'OUTLETS', 'OUTLET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1812, 1, 'OUTS', 'OUTSIDE OF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1813, 1, 'OUTSIDE', 'OUTSIDE OF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1817, 1, 'P BOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1818, 1, 'P BX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1819, 1, 'P H', 'PENTHOUSE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1820, 1, 'P O', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1821, 1, 'P O B', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1695, 1, 'NE', 'NE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1753, 2, 'NO', 'N', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1755, 1, 'NOR', 'N', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1761, 1, 'NORTE', 'N', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1822, 1, 'P O B X', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1823, 1, 'P O BOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1824, 1, 'P O BX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1825, 1, 'P O DRAWER', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1826, 4, 'PA', 'PARADE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1827, 1, 'PAR', 'PARCELAS', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1828, 2, 'PAR', 'PARCELAS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1829, 3, 'PAR', 'PARCELAS', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1830, 1, 'PAR RD', 'PARISH ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1831, 1, 'PAR ROAD', 'PARISH ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1832, 1, 'PARADE', 'PARADE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1833, 2, 'PARADE', 'PARADE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1834, 1, 'PARADERO', 'PARADERO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1835, 1, 'PARC', 'PARC', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1836, 2, 'PARC', 'PARC', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1837, 3, 'PARC', 'PARC', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1838, 1, 'PARCELAS', 'PARCELAS', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1839, 1, 'PARISH RD', 'PARISH ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1840, 1, 'PARISH ROAD', 'PARISH ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1841, 1, 'PARK', 'PARK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1844, 1, 'PARK & SHOP', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1845, 1, 'PARK N SHOP', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1848, 1, 'PARQUE', 'PARQUE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1849, 1, 'PARRD', 'PARISH ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1850, 1, 'PASAJE', 'PASAJE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1851, 1, 'PASEO', 'PASEO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1852, 1, 'PASO', 'PASO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1853, 2, 'PASO', 'PASO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1857, 1, 'PATHWAY', 'PATHWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1858, 1, 'PAVILION', 'PAVILLION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1859, 2, 'PAVILION', 'PAVILLION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1860, 1, 'PAVILIONS', 'PAVILLION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1861, 2, 'PAVILIONS', 'PAVILLION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1862, 1, 'PAVILLION', 'PAVILLION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1863, 2, 'PAVILLION', 'PAVILLION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1864, 1, 'PAVILLIONS', 'PAVILLION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1865, 2, 'PAVILLIONS', 'PAVILLION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1866, 1, 'PAVL', 'PAVILLION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1867, 2, 'PAVL', 'PAVILLION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1869, 1, 'PDA', 'PARADERO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1870, 1, 'PENTHOUSE', 'PENTHOUSE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1871, 1, 'PH', 'PENTHOUSE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1873, 1, 'PIECE', 'PIECE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1874, 2, 'PIECE', 'PIECE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1875, 1, 'PIER', 'PIER', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1876, 2, 'PIER', 'PIER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1877, 3, 'PIER', 'PIER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1879, 1, 'PINES', 'PINES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1881, 1, 'PISO', 'PISO', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1882, 1, 'PISTA', 'PISTA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1883, 1, 'PK', 'PARK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1893, 1, 'PLAIN', 'PLAINS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1894, 1, 'PLAINS', 'PLAINS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1895, 1, 'PLANTATION', 'PLANTATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1896, 2, 'PLANTATION', 'PLANTATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1897, 1, 'PLATEAU', 'PLATEAU', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1898, 2, 'PLATEAU', 'PLATEAU', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1902, 1, 'PLN', 'PLAINS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1903, 1, 'PLNS', 'PLAINS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1904, 1, 'PLNT', 'PLANTATION', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1909, 1, 'PM', 'PROMENADE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1910, 1, 'PNES', 'PINES', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1911, 1, 'PO', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1912, 1, 'PO B', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1913, 1, 'PO B OX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1914, 1, 'PO B X', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1915, 1, 'PO BOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1916, 1, 'PO BX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1917, 1, 'PO DRAWER', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1918, 1, 'POB', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1919, 1, 'POBOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1920, 1, 'POINT', 'POINT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1921, 1, 'PORT', 'PORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1923, 1, 'POST BOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1924, 1, 'POST BX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1925, 1, 'POST OFFICE BOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1926, 1, 'POSTAL BOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1927, 1, 'POSTAL BX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1928, 1, 'POSTAL OUTLET', 'POSTAL OUTLET', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1929, 2, 'POSTAL OUTLET', 'POSTAL OUTLET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1930, 1, 'POSTOFFICE BOX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1931, 1, 'POSTOFFICE BX', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1932, 1, 'POUCH', 'POST OFFICE BOX', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1934, 1, 'PR HI', 'PROVINCIAL HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1935, 1, 'PR HIGHWAY', 'PROVINCIAL HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1936, 1, 'PR HWY', 'PROVINCIAL HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1938, 1, 'PR RT', 'PROVINCIAL ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1939, 1, 'PR RTE', 'PROVINCIAL ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1940, 1, 'PRAIRIE', 'PRAIRIE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1941, 1, 'PREMIERE', '1', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1942, 2, 'PREMIERE', '1', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1943, 1, 'PRIVATE', 'PRIVATE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1944, 2, 'PRIVATE', 'PRIVATE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1945, 1, 'PRK', 'PARK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1948, 1, 'PRO', 'PROFESSIONAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1949, 1, 'PROF', 'PROFESSIONAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1947, 3, 'PRK', 'PARK', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1843, 3, 'PARK', 'PARK', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1933, 4, 'PR', 'PARK', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1885, 3, 'PK', 'PARK', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1888, 1, 'PKWAY', 'PKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1889, 1, 'PKWY', 'PKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1872, 2, 'PH', 'PATH', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1950, 1, 'PROFESSIONAL', 'PROFESSIONAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1951, 1, 'PROJ', 'PROJECTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1952, 1, 'PROJECTS', 'PROJECTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1953, 1, 'PROM', 'PROMENADE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1954, 2, 'PROM', 'PROMENADE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1955, 1, 'PROMENADE', 'PROMENADE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1956, 2, 'PROMENADE', 'PROMENADE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1957, 1, 'PROVINCIAL HI', 'PROVINCIAL HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1958, 1, 'PROVINCIAL HIGHWAY', 'PROVINCIAL HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1959, 1, 'PROVINCIAL HWY', 'PROVINCIAL HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1960, 1, 'PROVINCIAL HY', 'PROVINCIAL HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1961, 1, 'PROVINCIAL ROUTE', 'PROVINCIAL ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1962, 1, 'PROVINCIAL RT', 'PROVINCIAL ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1963, 1, 'PROVINCIAL RTE', 'PROVINCIAL ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1964, 1, 'PRQE', 'PARQUE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1965, 1, 'PRRD', 'PARISH ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1966, 1, 'PRT', 'PORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1968, 1, 'PSC', 'PSC', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1969, 1, 'PSO', 'PASEO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1970, 1, 'PSTA', 'PISTA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1971, 1, 'PT', 'POINT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1973, 1, 'PTE', 'PUENTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1974, 1, 'PU', 'PLATEAU', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1975, 1, 'PUENTE', 'PUENTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1976, 1, 'PV', 'PRIVATE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1977, 1, 'PVT', 'PRIVATE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1978, 2, 'PVT', 'PRIVATE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1979, 1, 'PW', 'PATHWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1983, 1, 'QTRS', 'QUARTERS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1984, 1, 'QU', 'QUAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1985, 1, 'QUAI', 'QUAI', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1986, 2, 'QUAI', 'QUAI', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1987, 1, 'QUARTERS', 'QUARTERS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1988, 1, 'QUATRE', '4', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1989, 2, 'QUATRE', '3', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1990, 1, 'QUATRIEME', 'QUATRIEME', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1991, 1, 'QUAY', 'QUAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1992, 2, 'QUAY', 'QUAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1993, 1, 'QUAY RD', 'QUAY ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1994, 1, 'QUAY ROAD', 'QUAY ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1995, 1, 'R', 'R', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1996, 2, 'R', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1997, 1, 'R D', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1998, 1, 'R D NO', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1999, 1, 'R F D', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2000, 1, 'R NO', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2001, 1, 'R P O', 'POSTAL OUTLET', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2002, 2, 'R P O', 'POSTAL OUTLET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2003, 1, 'R R', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2004, 1, 'R R NO', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2005, 1, 'R RT', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2006, 1, 'R RTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2009, 1, 'RA', 'RANGE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2010, 1, 'RADIAL', 'RADIAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2011, 1, 'RADL', 'RADIAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2012, 1, 'RAMAL', 'RAMAL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2014, 1, 'RAMPA', 'RAMPA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2015, 1, 'RANCH', 'RANCH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2016, 1, 'RANCH TO MARKET ROAD', 'RANCH TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2017, 1, 'RANCH TO MARKET ROAD', 'RANCH TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2018, 1, 'RANCH RD', 'RANCH ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2019, 1, 'RANCH RD', 'RANCH ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2020, 1, 'RANCH ROAD', 'RANCH ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2021, 1, 'RANCH ROAD', 'RANCH ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2022, 1, 'RANG', 'RANG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2023, 2, 'RANG', 'RANG', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2024, 1, 'RANGE', 'RANGE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2025, 2, 'RANGE', 'RANGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2026, 1, 'RANGE ROAD', 'RANGE ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2027, 1, 'RANGE ROAD', 'RANGE ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2028, 1, 'RAPIDS', 'RAPIDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2030, 1, 'RDG', 'RIDGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2032, 1, 'RDPT', 'ROND POINT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2033, 1, 'RDS', 'ROADS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2034, 1, 'RDWY', 'ROADWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2036, 1, 'REAR', 'REAR', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2037, 1, 'REAR', 'REAR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2038, 1, 'RES', 'RESIDENCIA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2039, 1, 'RES HWY', 'RESERVATION HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2040, 1, 'RESERVATION HIGHWAY', 'RESERVATION HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2041, 1, 'RESHY', 'RESERVATION HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2042, 1, 'RESIDENCIA', 'RESIDENCIA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2043, 1, 'RESORT', 'RESORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2044, 2, 'RESORT', 'RESORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2045, 1, 'REST', 'REST', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2046, 1, 'REZ DE CHAUSEE', 'REZ DE CHAUSEE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2047, 1, 'RFD', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2048, 1, 'RFD ROUTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2049, 1, 'RG', 'RANGE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2050, 2, 'RG', 'RANGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2051, 1, 'RGHT', 'RIGHT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2052, 4, 'RI', 'RISE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2053, 1, 'RIDGE', 'RIDGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2055, 1, 'RIGHT', 'RIGHT', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2056, 1, 'RISE', 'RISE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2057, 1, 'RIV', 'RIVER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2058, 1, 'RIVER', 'RIVER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2059, 1, 'RL', 'RUELLE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2060, 1, 'RLE', 'RUELLE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2061, 1, 'RM', 'ROOM', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2062, 2, 'RM', 'ROOM', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2063, 3, 'RM', 'RANCH TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2064, 4, 'RM', 'RANCH TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2065, 1, 'RM RD', 'RANCH TO MARKET ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2066, 1, 'RM RD', 'RANCH TO MARKET ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2067, 1, 'RML', 'RAMAL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2070, 1, 'RNCH', 'RANCH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2071, 1, 'RNG ROAD', 'RANGE ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2072, 1, 'RNG ROAD', 'RANGE ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2075, 1, 'ROADS', 'ROADS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2076, 1, 'ROADWAY', 'ROADWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1980, 1, 'PWY', 'PKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1982, 1, 'PY', 'PKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2077, 1, 'ROND POINT', 'ROND POINT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2078, 1, 'ROOM', 'ROOM', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2086, 1, 'ROUTES', 'ROUTES', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2089, 1, 'RPDS', 'RAPIDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2090, 1, 'RPO', 'POSTAL OUTLET', 14, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2091, 2, 'RPO', 'POSTAL OUTLET', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2092, 1, 'RR', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2093, 1, 'RR NO', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2094, 1, 'RRT', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2095, 1, 'RRTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2096, 1, 'RSRT', 'RESORT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2097, 2, 'RSRT', 'RESORT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2107, 1, 'RUELLE', 'RUELLE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2109, 2, 'RUN', 'RUN', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2110, 1, 'RURAL', 'RURAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2111, 1, 'RURAL', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2112, 1, 'RURAL ROUTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2113, 1, 'RURAL ROUTE NO', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2114, 1, 'RURAL RT', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2115, 1, 'RUTA', 'RUTA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2119, 1, 'S / C', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2120, 1, 'S C', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2122, 1, 'S R', 'STAR ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2123, 2, 'S R', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2124, 1, 'S RT', 'STAR ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2125, 2, 'S RT', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2127, 1, 'S/C', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2128, 1, 'SAINT', 'SAINT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2129, 1, 'SAINTE', 'SAINTE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2130, 1, 'SANTA FE', 'SANTA FE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2131, 1, 'SC', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2132, 1, 'SCH', 'SCHOOL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2133, 1, 'SCHOOL', 'SCHOOL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2134, 2, 'SCHOOL', 'SCHOOL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2136, 1, 'SEARING ROUTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2137, 1, 'SEARING RT', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2138, 1, 'SEARING RTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2139, 1, 'SECOND', '2', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2140, 2, 'SECOND', '2ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2141, 1, 'SEM', 'SEMINARY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2142, 1, 'SEMINARY', 'SEMINARY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2143, 2, 'SEMINARY', 'SEMINARY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2144, 1, 'SENDERO', 'SENDERO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2145, 1, 'SENT', 'SENTIER', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2146, 1, 'SENTIER', 'SENTIER', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2150, 1, 'SERVICE', 'SERVICE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2154, 1, 'SEVEN', '7', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2155, 2, 'SEVEN', '7', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2156, 1, 'SEVEN CORNERS', 'SEVEN CORNERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2157, 2, 'SEVEN CORNERS', 'SEVEN CORNERS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2158, 1, 'SEVEN MILE', 'SEVEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2159, 1, 'SEVENTEEN', '17', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2160, 2, 'SEVENTEEN', '17', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2161, 1, 'SEVENTEEN MILE', 'SEVENTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2162, 1, 'SEVENTEENTH', '17', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2163, 2, 'SEVENTEENTH', '17TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2164, 1, 'SEVENTH', '7', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2165, 2, 'SEVENTH', '7', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2166, 1, 'SEVENTIETH', '70', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2167, 2, 'SEVENTIETH', '70TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2168, 1, 'SEVENTY', '70', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2169, 2, 'SEVENTY', '70', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2170, 1, 'SEVENTY EIGHT', '78', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2171, 2, 'SEVENTY EIGHT', '78', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2172, 1, 'SEVENTY EIGHTH', '78', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2173, 2, 'SEVENTY EIGHTH', '78TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2174, 1, 'SEVENTY FIFTH', '75', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2175, 2, 'SEVENTY FIFTH', '75TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2176, 1, 'SEVENTY FIRST', '71', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2177, 2, 'SEVENTY FIRST', '71ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2178, 1, 'SEVENTY FIVE', '75', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2179, 2, 'SEVENTY FIVE', '75', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2180, 1, 'SEVENTY FOUR', '74', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2181, 2, 'SEVENTY FOUR', '74', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2182, 1, 'SEVENTY FOURTH', '74', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2183, 2, 'SEVENTY FOURTH', '74TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2184, 1, 'SEVENTY NINE', '79', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2185, 2, 'SEVENTY NINE', '79', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2186, 1, 'SEVENTY NINTH', '79', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2187, 2, 'SEVENTY NINTH', '79TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2188, 1, 'SEVENTY ONE', '71', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2189, 2, 'SEVENTY ONE', '71', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2190, 1, 'SEVENTY SECOND', '72', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2191, 2, 'SEVENTY SECOND', '72ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2192, 1, 'SEVENTY SEVEN', '77', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2193, 2, 'SEVENTY SEVEN', '77', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2194, 1, 'SEVENTY SEVENTH', '77', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2195, 2, 'SEVENTY SEVENTH', '77TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2196, 1, 'SEVENTY SIX', '76', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2197, 2, 'SEVENTY SIX', '76', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2198, 1, 'SEVENTY SIXTH', '76', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2199, 2, 'SEVENTY SIXTH', '76TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2200, 1, 'SEVENTY THIRD', '73', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2201, 2, 'SEVENTY THIRD', '73RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2202, 1, 'SEVENTY THREE', '73', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2203, 2, 'SEVENTY THREE', '73', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2204, 1, 'SEVENTY TWO', '72', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2205, 2, 'SEVENTY TWO', '72', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2088, 1, 'RP', 'RAMP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2081, 3, 'ROUTE', 'RTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2104, 3, 'RTE', 'RTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2087, 1, 'ROW', 'ROW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2116, 1, 'RW', 'ROW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2106, 1, 'RUE', 'RUE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2105, 1, 'RU', 'RUE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2108, 1, 'RUN', 'RUN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2147, 1, 'SER RD', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2148, 1, 'SERV RD', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2149, 1, 'SERV ROAD', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2151, 2, 'SERVICE', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2117, 1, 'S', 'S', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2118, 2, 'S', 'S', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2121, 1, 'S E', 'SE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2126, 1, 'S W', 'SW', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2135, 1, 'SE', 'SE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2206, 1, 'SH', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2207, 1, 'SH CTR', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2208, 1, 'SHC', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2209, 1, 'SHL', 'SHOAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2210, 1, 'SHLS', 'SHOALS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2211, 1, 'SHOAL', 'SHOAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2212, 1, 'SHOALS', 'SHOALS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2213, 1, 'SHOP', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2214, 1, 'SHOP CEN', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2215, 1, 'SHOP CENTER', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2216, 1, 'SHOP CTR', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2218, 1, 'SHOP MART', 'SHOPPING MART', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2219, 1, 'SHOP N SAVE', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2221, 1, 'SHOP SQ', 'SHOPPING SQUARE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2222, 1, 'SHOPETTE', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2223, 1, 'SHOPPERS', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2224, 1, 'SHOPPES', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2225, 1, 'SHOPPETTE', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2226, 1, 'SHOPPING', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2227, 1, 'SHOPPING CENT', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2228, 1, 'SHOPPING CENTE', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2229, 1, 'SHOPPING CENTER', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2230, 1, 'SHOPPING CNTR', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2231, 1, 'SHOPPING CTR', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2233, 1, 'SHOPPING PARK', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2235, 1, 'SHOPS', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2236, 1, 'SHORE', 'SHORE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2237, 1, 'SHP', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2238, 1, 'SHP CENTER', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2239, 1, 'SHP CT', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2240, 1, 'SHP CTR', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2243, 1, 'SHPCT', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2244, 1, 'SHPG', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2245, 1, 'SHPG CENTER', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2246, 1, 'SHPG CNTR', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2247, 1, 'SHPG CTR', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2250, 1, 'SHR', 'SHORE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2251, 1, 'SIDE', 'SIDE', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2252, 2, 'SIDE', 'SIDE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2253, 1, 'SIDE ROAD', 'SIDE ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2254, 1, 'SITE', 'SITE', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2255, 2, 'SITE', 'SITE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2256, 1, 'SIX', '6', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2257, 2, 'SIX', '6', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2258, 1, 'SIX MILE', 'SIX MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2259, 1, 'SIXTEEN', '16', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2260, 2, 'SIXTEEN', '16', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2261, 1, 'SIXTEEN MILE', 'SIXTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2262, 1, 'SIXTEENTH', '16', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2263, 2, 'SIXTEENTH', '16TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2264, 1, 'SIXTH', '6', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2265, 2, 'SIXTH', '6TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2266, 1, 'SIXTIETH', '60', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2267, 2, 'SIXTIETH', '60TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2268, 1, 'SIXTY', '60', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2269, 2, 'SIXTY', '60', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2270, 1, 'SIXTY EIGHT', '68', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2271, 2, 'SIXTY EIGHT', '68', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2272, 1, 'SIXTY EIGHTH', '68', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2273, 2, 'SIXTY EIGHTH', '68TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2274, 1, 'SIXTY FIFTH', '65', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2275, 2, 'SIXTY FIFTH', '65TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2276, 1, 'SIXTY FIRST', '61', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2277, 2, 'SIXTY FIRST', '61ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2278, 1, 'SIXTY FIVE', '65', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2279, 2, 'SIXTY FIVE', '65', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2280, 1, 'SIXTY FOUR', '64', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2281, 2, 'SIXTY FOUR', '64', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2282, 1, 'SIXTY FOURTH', '64', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2283, 2, 'SIXTY FOURTH', '64TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2284, 1, 'SIXTY NINE', '69', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2285, 2, 'SIXTY NINE', '69', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2286, 1, 'SIXTY NINTH', '69', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2287, 2, 'SIXTY NINTH', '69TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2288, 1, 'SIXTY ONE', '61', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2289, 2, 'SIXTY ONE', '61', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2290, 1, 'SIXTY SECOND', '62', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2291, 2, 'SIXTY SECOND', '62ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2292, 1, 'SIXTY SEVEN', '67', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2293, 2, 'SIXTY SEVEN', '67', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2294, 1, 'SIXTY SEVENTH', '67', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2295, 2, 'SIXTY SEVENTH', '67TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2296, 1, 'SIXTY SIX', '66', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2297, 2, 'SIXTY SIX', '66', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2298, 1, 'SIXTY SIXTH', '66', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2299, 2, 'SIXTY SIXTH', '66TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2300, 1, 'SIXTY THIRD', '63', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2301, 2, 'SIXTY THIRD', '63RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2302, 1, 'SIXTY THREE', '63', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2303, 2, 'SIXTY THREE', '63', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2304, 1, 'SIXTY TWO', '62', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2305, 2, 'SIXTY TWO', '62', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2308, 1, 'SLIP', 'SLIP', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2309, 2, 'SLIP', 'SLIP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2311, 1, 'SMT', 'SUMMIT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2312, 2, 'SMT', 'SHOPPING MART', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2313, 1, 'SNDR', 'SENDERO', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2315, 1, 'SOTA', 'SOTANO', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2316, 2, 'SOTA', 'SOTA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2317, 1, 'SOTAN', 'SOTANO', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2318, 1, 'SOTANO', 'SOTANO', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2319, 1, 'SOUS SOL', 'SOUS SOL', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2323, 1, 'SOUTHBOUND', 'SOUTHBOUND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2324, 2, 'SOUTHBOUND', 'SOUTHBOUND', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2327, 1, 'SP', 'SPACE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2328, 2, 'SP', 'SHOPPING PLAZA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2329, 1, 'SPACE', 'SPACE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2330, 2, 'SPACE', 'SPACE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2331, 1, 'SPC', 'SPACE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2332, 1, 'SPDWY', 'SPEEDWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2314, 1, 'SO', 'S', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2310, 1, 'SM', 'MALL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2307, 1, 'SKYWAY', 'SKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2306, 1, 'SKWY', 'SKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2320, 1, 'SOUTH', 'S', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2321, 1, 'SOUTH EAST', 'SE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2322, 1, 'SOUTH WEST', 'SW', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2325, 1, 'SOUTHEAST', 'SE', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2326, 1, 'SOUTHWEST', 'SW', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2333, 1, 'SPEEDWAY', 'SPEEDWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2334, 1, 'SPG', 'SPRING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2335, 1, 'SPGS', 'SPRING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2336, 1, 'SPR', 'SPRING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2337, 1, 'SPRG', 'SPRING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2338, 1, 'SPRING', 'SPRING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2339, 1, 'SPRINGS', 'SPRING', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2342, 3, 'SPUR', 'SPUR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2343, 1, 'SPURNGS', 'SPUR', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2354, 1, 'SR', 'STAR ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2355, 2, 'SR', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2356, 3, 'SR', 'STAR ROUTE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2357, 4, 'SR', 'SIDE ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2358, 1, 'SRA', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2360, 1, 'SRV RTE', 'SERVICE ROUTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2364, 1, 'SS', 'SUBURBAN SERVICE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2366, 2, 'ST', 'SAINT', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2371, 1, 'ST R', 'STAR ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2372, 2, 'ST R', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2376, 2, 'ST ROUTE', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2378, 2, 'ST RT', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2380, 2, 'ST RTE', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2383, 3, 'STA', 'STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2384, 1, 'STALL', 'STALL', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2385, 2, 'STALL', 'STALL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2386, 1, 'STAR ROUTE', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2387, 1, 'STAR RT', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2390, 3, 'STAT', 'STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2391, 1, 'STATE', 'STATE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2404, 3, 'STATION', 'STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2405, 1, 'STATION FORCES', 'STATION FORCES', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2408, 3, 'STATN', 'STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2409, 1, 'STE', 'SUITE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2410, 2, 'STE', 'SAINTE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2411, 1, 'STES', 'SUITES', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2416, 1, 'STLL', 'STALL', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2419, 3, 'STN', 'STATION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2420, 1, 'STN FORCES', 'STATION FORCES', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2421, 1, 'STOP', 'STOP', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2422, 2, 'STOP', 'STOP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2423, 1, 'STOP & SHOP', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2424, 1, 'STOP & SHOP CTR', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2425, 1, 'STOR', 'STORE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2426, 2, 'STOR', 'STORE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2427, 1, 'STORE', 'STORE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2428, 2, 'STORE', 'STORE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2429, 3, 'STORE', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2430, 1, 'STORES', 'SHOPPING CENTER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2439, 1, 'STREAM', 'STREAM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2441, 1, 'STREETS', 'STREETS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2442, 1, 'STRIP', 'STRIP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2443, 2, 'STRIP', 'STRIP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2444, 1, 'STRM', 'STREAM', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2445, 1, 'STRP', 'STRIP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2446, 2, 'STRP', 'STRIP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2447, 1, 'STRT', 'STAR ROUTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2448, 2, 'STRT', 'STAR ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2451, 1, 'STS', 'STREETS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2452, 1, 'STUDIO', 'STUDIO', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2453, 2, 'STUDIO', 'STUDIO', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2454, 1, 'SU', 'SUITE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2455, 1, 'SUBD', 'SUBDIVISION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2456, 2, 'SUBD', 'SUBDIVISION', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2457, 1, 'SUBDIV', 'SUBDIVISION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2458, 2, 'SUBDIV', 'SUBDIVISION', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2459, 1, 'SUBDIVISION', 'SUBDIVISION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2460, 2, 'SUBDIVISION', 'SUBDIVISION', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2361, 1, 'SRVC', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2359, 1, 'SRV RD', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2363, 1, 'SRVRTE', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2362, 1, 'SRVRD', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2341, 2, 'SPUR', 'SPUR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2350, 1, 'SQUARE', 'SQ', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2344, 1, 'SQ', 'SQ', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2346, 1, 'SQR', 'SQ', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2348, 1, 'SQU', 'SQ', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2352, 1, 'SQURE', 'SQ', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2438, 1, 'STRD', 'STATE RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2381, 1, 'STA', 'STA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2417, 1, 'STN', 'STA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2406, 1, 'STATN', 'STA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2402, 1, 'STATION', 'STA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2388, 1, 'STAT', 'STA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2437, 1, 'STRAVN', 'STRA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2450, 1, 'STRVNUE', 'STRA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2449, 1, 'STRVN', 'STRA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2433, 1, 'STRAV', 'STRA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2434, 1, 'STRAVE', 'STRA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2435, 1, 'STRAVEN', 'STRA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2436, 1, 'STRAVENUE', 'STRA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2432, 1, 'STRA', 'STRA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2365, 1, 'ST', 'ST', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2431, 1, 'STR', 'ST', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2440, 1, 'STREET', 'ST', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2412, 1, 'STH', 'S', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2461, 1, 'SUBURBAN ROUTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2462, 1, 'SUBURBAN RT', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2463, 1, 'SUBURBAN RTE', 'RURAL ROUTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2464, 1, 'SUBURBAN SERVICE', 'SUBURBAN SERVICE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2465, 1, 'SUD', 'SUD', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2466, 1, 'SUD EST', 'SUD EST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2467, 1, 'SUD OUEST', 'SUD OUEST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2468, 1, 'SUDEST', 'SUD EST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2469, 1, 'SUDOUEST', 'SUD OUEST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2470, 1, 'SUIT', 'SUITE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2471, 2, 'SUIT', 'SUITE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2472, 1, 'SUITE', 'SUITE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2473, 1, 'SUITES', 'SUITES', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2474, 2, 'SUITES', 'SUITES', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2475, 1, 'SUMMIT', 'SUMMIT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2477, 1, 'SV RTE', 'SERVICE ROUTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2481, 1, 'SWP', 'SWAMP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2482, 1, 'TANK TRAIL', 'TANK TRAIL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2483, 1, 'TEN', '10', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2484, 2, 'TEN', '10', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2485, 1, 'TEN MILE', 'TEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2486, 1, 'TENTH', '10', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2487, 2, 'TENTH', '10TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2489, 1, 'TERM', 'TERMINAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2490, 2, 'TERM', 'TERMINAL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2491, 1, 'TERMINAL', 'TERMINAL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2492, 2, 'TERMINAL', 'TERMINAL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2494, 1, 'TERRASSE', 'TERRASSE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2495, 2, 'TERRASSE', 'TERRASSE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2497, 1, 'THE', 'THE', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2498, 1, 'THFR', 'THOROUGHFARE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2499, 1, 'THICKET', 'THICKET', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2500, 2, 'THICKET', 'THICKET', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2501, 1, 'THIRD', '3', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2502, 2, 'THIRD', '3RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2503, 1, 'THIRTEEN', '13', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2504, 2, 'THIRTEEN', '13', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2505, 1, 'THIRTEEN MILE', 'THIRTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2506, 1, 'THIRTEENTH', '13', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2507, 2, 'THIRTEENTH', '13TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2508, 1, 'THIRTIETH', '30', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2509, 2, 'THIRTIETH', '30TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2510, 1, 'THIRTY', '30', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2511, 2, 'THIRTY', '30', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2512, 1, 'THIRTY EIGHT', '38', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2513, 2, 'THIRTY EIGHT', '38', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2514, 1, 'THIRTY EIGHTH', '38', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2515, 2, 'THIRTY EIGHTH', '38TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2516, 1, 'THIRTY FIFTH', '35', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2517, 2, 'THIRTY FIFTH', '35TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2518, 1, 'THIRTY FIRST', '31', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2519, 2, 'THIRTY FIRST', '31ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2520, 1, 'THIRTY FIVE', '35', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2521, 2, 'THIRTY FIVE', '35', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2522, 1, 'THIRTY FOURTH', '34', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2523, 2, 'THIRTY FOURTH', '34TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2524, 1, 'THIRTY FOUR', '34', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2525, 2, 'THIRTY FOUR', '34', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2526, 1, 'THIRTY NINE', '39', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2527, 2, 'THIRTY NINE', '39', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2528, 1, 'THIRTY NINTH', '39', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2529, 2, 'THIRTY NINTH', '39TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2530, 1, 'THIRTY ONE', '31', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2531, 2, 'THIRTY ONE', '31', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2532, 1, 'THIRTY SECOND', '32', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2533, 2, 'THIRTY SECOND', '32ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2534, 1, 'THIRTY SEVEN', '37', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2535, 2, 'THIRTY SEVEN', '37', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2536, 1, 'THIRTY SEVENTH', '37', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2537, 2, 'THIRTY SEVENTH', '37TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2538, 1, 'THIRTY SIX', '36', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2539, 2, 'THIRTY SIX', '36', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2540, 1, 'THIRTY SIXTH', '36', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2541, 2, 'THIRTY SIXTH', '36TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2542, 1, 'THIRTY THIRD', '33', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2543, 2, 'THIRTY THIRD', '33RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2544, 1, 'THIRTY THREE', '33', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2545, 2, 'THIRTY THREE', '33', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2546, 1, 'THIRTY TWO', '32', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2547, 2, 'THIRTY TWO', '32', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2548, 1, 'THORO', 'THOROUGHFARE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2549, 1, 'THOROFARE', 'THOROUGHFARE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2550, 1, 'THOROUGHFARE', 'THOROUGHFARE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2551, 1, 'THREE', '3', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2552, 2, 'THREE', '3', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2553, 1, 'THREE MILE', 'THREE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2557, 1, 'TK TRL', 'TANK TRAIL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2558, 1, 'TKTRL', 'TANK TRAIL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2560, 1, 'TLINE', 'TOWNLINE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2561, 1, 'TLR', 'TRAILER', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2562, 1, 'TLR COURT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2563, 1, 'TLR CRT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2564, 1, 'TLR CT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2565, 1, 'TLR PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2566, 1, 'TLR PK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2567, 1, 'TLR PRK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2570, 1, 'TOP', 'TOP', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2571, 2, 'TOP', 'TOP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2572, 1, 'TOWER', 'TOWERS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2573, 2, 'TOWER', 'TOWER', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2574, 3, 'TOWER', 'TOWER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2575, 1, 'TOWERS', 'TOWERS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2576, 2, 'TOWERS', 'TOWERS', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2577, 3, 'TOWERS', 'TOWERS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2578, 4, 'TOWERS', 'TOWERS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2579, 1, 'TOWN HIGHWAY', 'TOWN HIGHWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2580, 2, 'TOWN HIGHWAY', 'TOWN HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2581, 1, 'TOWN HWY', 'TOWN HIGHWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2582, 2, 'TOWN HWY', 'TOWN HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2583, 1, 'TOWN RD', 'TOWN ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2584, 2, 'TOWN RD', 'TOWN ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2585, 1, 'TOWN ROAD', 'TOWN ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2586, 2, 'TOWN ROAD', 'TOWN ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2587, 1, 'TOWNHOME', 'TOWNHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2588, 1, 'TOWNHOMES', 'TOWNHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2589, 1, 'TOWNHOUSE', 'TOWNHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2476, 1, 'SUR', 'S', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2480, 1, 'SW', 'SW', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2590, 1, 'TOWNHOUSES', 'TOWNHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2591, 1, 'TOWNLINE', 'TOWNLINE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2592, 1, 'TOWNSHIP HIGHWAY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2593, 1, 'TOWNSHIP HIWAY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2594, 1, 'TOWNSHIP HWY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2595, 1, 'TOWNSHIP RD', 'TOWNSHIP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2596, 1, 'TOWNSHIP ROAD', 'TOWNSHIP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2597, 1, 'TP', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2602, 1, 'TR', 'TOWNSHIP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2604, 1, 'TR COURT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2605, 1, 'TR CRT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2606, 1, 'TR CT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2607, 1, 'TR PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2608, 1, 'TR PK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2609, 1, 'TR PRK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2610, 1, 'TR VILLAGE', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2611, 1, 'TR VLG', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2612, 1, 'TRACE', 'TRACE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2614, 1, 'TRACK', 'TRACK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2617, 2, 'TRAIL', 'TRAIL', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2618, 1, 'TRAILER', 'TRAILER', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2619, 2, 'TRAILER', 'TRAILER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2620, 1, 'TRAILER COURT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2621, 1, 'TRAILER CRT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2622, 1, 'TRAILER CT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2623, 1, 'TRAILER PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2624, 1, 'TRAILER PK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2625, 1, 'TRAILER PRK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2626, 1, 'TRAILER VILLAGE', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2627, 1, 'TRAILER VLG', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2641, 1, 'TRL', 'TRL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2628, 1, 'TRAILERCOURT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2629, 1, 'TRAILERPARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2630, 1, 'TRAILERS', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2632, 1, 'TRAK', 'TRACK', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2633, 1, 'TRANS CANADA', 'TRANS CANADA', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2634, 2, 'TRANS CANADA', 'TRANS CANADA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2635, 1, 'TRANSCANADA', 'TRANS CANADA', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2636, 2, 'TRANSCANADA', 'TRANS CANADA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2637, 1, 'TRCE', 'TRACE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2639, 1, 'TRCRT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2640, 1, 'TRCT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2642, 1, 'TRL COURT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2643, 1, 'TRL CRT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2644, 1, 'TRL CT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2645, 1, 'TRL PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2646, 1, 'TRL PK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2647, 1, 'TRL PRK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2648, 1, 'TRL VILLAGE', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2649, 1, 'TRL VLG', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2650, 1, 'TRLCRT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2651, 1, 'TRLCT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2652, 1, 'TRLPK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2653, 1, 'TRLPRK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2654, 1, 'TRLR', 'TRAILER', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2655, 2, 'TRLR', 'TRAILER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2656, 1, 'TRLR COURT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2657, 1, 'TRLR CRT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2658, 1, 'TRLR CT', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2659, 1, 'TRLR PARK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2660, 1, 'TRLR PK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2661, 1, 'TRLR PRK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2662, 1, 'TRLR VILLAGE', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2663, 1, 'TRLR VLG', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2664, 1, 'TRNABT', 'TURNABOUT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2666, 1, 'TROIS', '3', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2667, 2, 'TROIS', '3', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2668, 1, 'TROISIEME', 'TROISIEME', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2669, 1, 'TRPK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2670, 1, 'TRPRK', 'TRAILER PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2671, 1, 'TSSE', 'TERRASSE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2672, 2, 'TSSE', 'TERRASEE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2677, 1, 'TURNABOUT', 'TURNABOUT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2684, 1, 'TW HY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2685, 1, 'TW RD', 'TOWNSHIP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2686, 1, 'TWELFTH', '12', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2687, 2, 'TWELFTH', '12TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2688, 1, 'TWELVE', '12', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2689, 2, 'TWELVE', '12', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2690, 1, 'TWELVE MILE', 'TWELVE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2691, 1, 'TWENTIETH', '20', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2692, 2, 'TWENTIETH', '20TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2693, 1, 'TWENTY', '20', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2694, 2, 'TWENTY', '20', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2695, 1, 'TWENTY EIGHT', '28', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2696, 2, 'TWENTY EIGHT', '28', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2697, 1, 'TWENTY EIGHTH', '28', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2698, 2, 'TWENTY EIGHTH', '28TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2699, 1, 'TWENTY FIRST', '21', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2700, 2, 'TWENTY FIRST', '21ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2701, 1, 'TWENTY FIFTH', '25', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2702, 2, 'TWENTY FIFTH', '25TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2703, 1, 'TWENTY FIVE', '25', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2704, 2, 'TWENTY FIVE', '25', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2705, 1, 'TWENTY FOURTH', '24', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2706, 2, 'TWENTY FOURTH', '24TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2707, 1, 'TWENTY FOUR', '24', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2708, 2, 'TWENTY FOUR', '24', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2709, 1, 'TWENTY MILE', 'TWENTY MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2710, 1, 'TWENTY NINE', '29', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2711, 2, 'TWENTY NINE', '29', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2712, 1, 'TWENTY NINTH', '29', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2713, 2, 'TWENTY NINTH', '29TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2613, 2, 'TRACE', 'TRCE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2638, 2, 'TRCE', 'TRCE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2615, 1, 'TRAFFICWAY', 'TRFY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2603, 2, 'TR', 'TRL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2714, 1, 'TWENTY ONE', '21', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2715, 2, 'TWENTY ONE', '21', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2716, 1, 'TWENTY SECOND', '22', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2717, 2, 'TWENTY SECOND', '22ND', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2718, 1, 'TWENTY SEVEN', '27', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2719, 2, 'TWENTY SEVEN', '27', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2720, 1, 'TWENTY SEVENTH', '27', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2721, 2, 'TWENTY SEVENTH', '27TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2722, 1, 'TWENTY SIX', '26', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2723, 2, 'TWENTY SIX', '26', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2724, 1, 'TWENTY SIXTH', '26', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2725, 2, 'TWENTY SIXTH', '26TH', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2726, 1, 'TWENTY THIRD', '23', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2727, 2, 'TWENTY THIRD', '23RD', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2728, 1, 'TWENTY THREE', '23', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2729, 2, 'TWENTY THREE', '23', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2730, 1, 'TWENTY THREE MILE', 'TWENTY THREE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2731, 1, 'TWENTY TWO', '22', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2732, 2, 'TWENTY TWO', '22', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2733, 1, 'TWHY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2734, 1, 'TWNH', 'TOWNHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2735, 1, 'TWNHS', 'TOWNHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2736, 1, 'TWNHWY', 'TOWN HIGHWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2737, 2, 'TWNHWY', 'TOWN HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2738, 1, 'TWNRD', 'TOWN ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2739, 2, 'TWNRD', 'TOWN ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2740, 1, 'TWO', '2', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2741, 2, 'TWO', '2', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2742, 1, 'TWO MILE', 'TWO MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2743, 1, 'TWP', 'TOWNSHIP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2744, 2, 'TWP', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2745, 1, 'TWP HIGHWAY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2746, 1, 'TWP HIWAY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2747, 1, 'TWP HWY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2748, 1, 'TWP HY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2749, 1, 'TWP RD', 'TOWNSHIP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2750, 1, 'TWP ROAD', 'TOWNSHIP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2751, 1, 'TWPHWY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2752, 1, 'TWPHY', 'TOWNSHIP HIGHWAY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2753, 1, 'TWPRD', 'TOWNSHIP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2754, 1, 'TWPROAD', 'TOWNSHIP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2755, 1, 'TWR', 'TOWER', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2756, 2, 'TWR', 'TOWER', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2757, 1, 'TWRD', 'TOWNSHIP ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2758, 1, 'TWRS', 'TOWERS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2759, 2, 'TWRS', 'TOWERS', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2760, 3, 'TWRS', 'TOWERS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2761, 1, 'U', 'UNIVERSITY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2762, 2, 'U', 'U', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2772, 1, 'UN', 'UNION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2773, 2, 'UN', '1', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2774, 3, 'UN', '1', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2775, 1, 'UN RD', 'UNNAMED ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2777, 1, 'UNI', 'UNIVERSITY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2778, 1, 'UNION', 'UNION', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2779, 1, 'UNIT', 'UNIT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2780, 1, 'UNITE', 'UNITE', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2783, 1, 'UNITED STATES LOOP', 'US LOOP', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2784, 1, 'UNIV', 'UNIVERSITY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2785, 2, 'UNIV', 'UNIVERSITY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2786, 1, 'UNIVD', 'UNIVERSITY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2787, 2, 'UNIVD', 'UNIVERSITY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2788, 1, 'UNIVERSIDAD', 'UNIVERSIDAD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2789, 2, 'UNIVERSIDAD', 'UNIVERSIDAD', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2790, 1, 'UNIVERSITY', 'UNIVERSITY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2791, 2, 'UNIVERSITY', 'UNIVERSITY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2792, 3, 'UNIVERSITY', 'UNIVERSITY', 19, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2793, 1, 'UNNAMED ROAD', 'UNNAMED ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2796, 1, 'UNRD', 'UNNAMED ROAD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2797, 1, 'UNT', 'UNIT', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2798, 1, 'UP', 'UP', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2799, 2, 'UP', 'UP', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2800, 1, 'UPPER', 'UPPER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2801, 2, 'UPPER', 'UPPER', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2802, 1, 'UPPR', 'UPPER', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2803, 2, 'UPPR', 'UPPER', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2804, 1, 'UPSTAIRS', 'UPSTAIRS', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2806, 1, 'US FOREST SERVICE ROAD', 'US FOREST SERVICE ROAD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2812, 1, 'US LOOP', 'US LOOP', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2813, 1, 'US LP', 'US LOOP', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2817, 1, 'USFS RD', 'US FOREST SERVICE RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2818, 1, 'USFSR', 'US FOREST SERVICE RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2822, 1, 'USLP', 'US LOOP', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2826, 1, 'VAL', 'VALLEY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2827, 1, 'VALL', 'VALLEY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2828, 1, 'VALLEY', 'VALLEY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2829, 1, 'VALLY', 'VALLEY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2830, 1, 'VER', 'VEREDA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2831, 1, 'VEREDA', 'VEREDA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2834, 1, 'VIADUCT', 'VIADUCT', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2835, 1, 'VIEW', 'VIEW', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2839, 3, 'VILL', 'VILLAGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2840, 1, 'VILLA', 'VILLA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2841, 2, 'VILLA', 'VILLA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2794, 1, 'UNP', 'UPAS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2776, 1, 'UNDERPASS', 'UPAS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2795, 1, 'UNPS', 'UPAS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2832, 2, 'VI', 'VIA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2833, 1, 'VIA', 'VIA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2836, 2, 'VIEW', 'VW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2837, 1, 'VILL', 'VLG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2842, 3, 'VILLA', 'VILLA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2845, 3, 'VILLAG', 'VILLAGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2848, 3, 'VILLAGE', 'VILLAGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2849, 1, 'VILLAS', 'VILLA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2850, 1, 'VILLE', 'VILLE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2853, 3, 'VILLG', 'VILLAGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2857, 3, 'VILLIAGE', 'VILLAGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2858, 1, 'VIS', 'VISTA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2860, 1, 'VISTA', 'VISTA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2862, 1, 'VIVI', 'VIVIENDA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2863, 1, 'VIVIENDA', 'VIVIENDA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2864, 1, 'VL', 'VILLE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2868, 3, 'VLG', 'VILLAGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2871, 3, 'VLGE', 'VILLAGE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2872, 1, 'VLLA', 'VILLA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2873, 2, 'VLLA', 'VILLA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2874, 1, 'VLY', 'VALLEY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2875, 1, 'VOIE', 'VOIE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2876, 1, 'VRDA', 'VEREDA', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2877, 1, 'VW', 'VIEW', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2882, 1, 'WALKWAY', 'WALKWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2883, 1, 'WALKWY', 'WALKWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2885, 1, 'WAREHOUSE', 'WAREHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2886, 2, 'WAREHOUSE', 'WAREHOUSE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2887, 1, 'WATERWAY', 'WATERWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2889, 1, 'WD', 'WYND', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2890, 1, 'WDS', 'WOODS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2892, 1, 'WELLS', 'WELLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2894, 1, 'WESTBOUND', 'WESTBOUND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2895, 2, 'WESTBOUND', 'WESTBOUND', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2896, 1, 'WHARF', 'WHARF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2897, 2, 'WHARF', 'WHARF', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2898, 1, 'WHF', 'WHARF', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2899, 2, 'WHF', 'WHARF', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2900, 1, 'WHS', 'WAREHOUSE', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2901, 2, 'WHS', 'WAREHOUSE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2902, 1, 'WILDLIFE MGMT AREA', 'WILDLIFE AREA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2904, 1, 'WKWY', 'WALKWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2905, 1, 'WLKWY', 'WALKWAY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2906, 1, 'WLS', 'WELLS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2907, 1, 'WMA', 'WILDLIFE AREA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2908, 1, 'WO', 'WOOD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2909, 1, 'WOOD', 'WOOD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2910, 2, 'WOOD', 'WOOD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2911, 1, 'WOODS', 'WOODS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2912, 1, 'WTRWY', 'WATERWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2913, 1, 'WWY', 'WATERWAY', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2916, 1, 'WYND', 'WYND', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2920, 1, 'XRDS', 'CROSSROADS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2923, 1, 'YARD', 'YARD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2924, 1, 'YARDS', 'YARDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2925, 1, 'YD', 'YARD', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2926, 1, 'YDS', 'YARDS', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2927, 1, 'ZANJA', 'ZANJA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2928, 1, 'ZERO', '0', 0, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2929, 1, 'ZERO', '0', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2930, 1, 'ZNJA', 'ZANJA', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (197, 4, 'AL', 'ALY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (196, 2, 'AL', 'ALY', 11, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (216, 2, 'ANNEX', 'ANX', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (214, 2, 'ANEX', 'ANX', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (218, 2, 'ANNX', 'ANX', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (220, 2, 'ANX', 'ANX', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (239, 2, 'ARC', 'ARC', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (241, 2, 'ARCADE', 'ARC', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2879, 1, 'W', 'W', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2880, 2, 'W', 'W', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2891, 1, 'WE', 'W', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2893, 1, 'WEST', 'W', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (264, 1, 'AVE', 'AVE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (265, 1, 'AVEN', 'AVE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (298, 2, 'BEACH', 'BCH', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (289, 2, 'BCH', 'BCH', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (303, 1, 'BH', 'BCH', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (324, 2, 'BND', 'BND', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (296, 1, 'BE', 'BND', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (300, 2, 'BEND', 'BND', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (314, 2, 'BLF', 'BLF', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (319, 2, 'BLUFF', 'BLF', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (321, 1, 'BLVD', 'BLVD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (320, 1, 'BLV', 'BLVD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (304, 1, 'BL', 'BLVD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (290, 1, 'BD', 'BLVD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (338, 1, 'BOUL', 'BLVD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (339, 1, 'BOULEVARD', 'BLVD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (340, 1, 'BOULV', 'BLVD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (353, 1, 'BRG', 'BRG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (332, 1, 'BOT', 'BTM', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (334, 1, 'BOTTM', 'BTM', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (336, 1, 'BOTTOM', 'BTM', 17, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (412, 1, 'BYP', 'BYP', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (420, 1, 'BYPS', 'BYP', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (409, 1, 'BY PASS', 'BYP', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (418, 1, 'BYPASS', 'BYP', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (345, 2, 'BP', 'BYP', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (416, 1, 'BYPAS', 'BYP', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (414, 1, 'BYPA', 'BYP', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (344, 1, 'BP', 'BYP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (466, 2, 'CEN', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (464, 1, 'CE', 'CTR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (495, 1, 'CIR', 'CIR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (498, 1, 'CIRCLE', 'CIR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (497, 1, 'CIRCL', 'CIR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (508, 1, 'CL', 'CIR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (526, 2, 'CLUB', 'CLB', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (511, 2, 'CLB', 'CLB', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (525, 1, 'CLUB', 'CLB', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (510, 1, 'CLB', 'CLB', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (730, 1, 'CTY HIGHWAY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (548, 1, 'CNTY HWY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (547, 1, 'CNTY HIWAY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (546, 1, 'CNTY HIGHWAY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (568, 1, 'COHWY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (638, 1, 'COUNTY HWY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (560, 1, 'CO HWY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (559, 1, 'CO HIWAY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (732, 1, 'CTY HWY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (637, 1, 'COUNTY HIWAY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (558, 1, 'CO HIGHWAY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (636, 1, 'COUNTY HIGHWAY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (731, 1, 'CTY HIWAY', 'CO HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (561, 1, 'CO RD', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (563, 1, 'CO ROAD', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (733, 1, 'CTY RD', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (429, 1, 'C R', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (639, 1, 'COUNTY RD', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (641, 1, 'COUNTY ROAD', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (646, 1, 'COUNTY TRUNK', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (735, 1, 'CTY ROAD', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (670, 2, 'CR', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (549, 1, 'CNTY RD', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (551, 1, 'CNTY ROAD', 'CO RD', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (613, 1, 'CORD', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (738, 1, 'CTY RT', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (566, 1, 'CO RT', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (567, 1, 'CO RTE', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (645, 1, 'COUNTY RTE', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (644, 1, 'COUNTY RT', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (739, 1, 'CTY RTE', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (626, 1, 'CORT', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (627, 1, 'CORTE', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (565, 1, 'CO ROUTE', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (555, 1, 'CNTY RTE', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (643, 1, 'COUNTY ROUTE', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (554, 1, 'CNTY RT', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (553, 1, 'CNTY ROUTE', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (737, 1, 'CTY ROUTE', 'CO RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (681, 1, 'CRNR', 'COR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (615, 1, 'CORNER', 'COR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (535, 1, 'CNR', 'COR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (619, 2, 'CORNERS', 'CORS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (611, 1, 'COR', 'CORS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (622, 2, 'CORS', 'CORS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (430, 2, 'C R', 'CO RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (705, 1, 'CRST', 'CRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (675, 1, 'CRES', 'CRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (669, 1, 'CR', 'CRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (678, 1, 'CRESENT', 'CRES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (487, 1, 'CG', 'XING', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (690, 1, 'CROSSING', 'XING', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (699, 1, 'CRSG', 'XING', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (703, 1, 'CRSSNG', 'XING', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2917, 1, 'XING', 'XING', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2919, 1, 'XRD', 'XRD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (693, 1, 'CROSSROAD', 'XRD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (724, 1, 'CTR', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (541, 1, 'CNTR', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (720, 1, 'CTER', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (543, 1, 'CNTRE', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (726, 1, 'CTRO', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (475, 1, 'CENTR', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (482, 1, 'CENTRO', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (481, 1, 'CENTRES', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (478, 1, 'CENTRE', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (465, 1, 'CEN', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (467, 1, 'CENT', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (469, 1, 'CENTE', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (471, 1, 'CENTER', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (474, 1, 'CENTERS', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (537, 1, 'CNT', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (539, 1, 'CNTER', 'CTR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (658, 2, 'COURTS', 'CTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (728, 2, 'CTS', 'CTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (712, 1, 'CRV', 'CURV', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (747, 2, 'CURVE', 'CURV', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (756, 2, 'DALE', 'DL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (902, 4, 'EST', 'EST', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (905, 3, 'ESTATE', 'ESTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (901, 3, 'EST', 'ESTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (908, 3, 'ESTATES', 'ESTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (913, 3, 'ESTS', 'ESTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (914, 1, 'ET', 'ESTS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (912, 2, 'ESTS', 'ESTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (907, 2, 'ESTATES', 'ESTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (904, 2, 'ESTATE', 'ESTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (900, 2, 'EST', 'ESTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2922, 1, 'XWY', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2921, 1, 'XWAY', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (933, 1, 'EXPW', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (928, 1, 'EXP', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (929, 1, 'EXPR', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (931, 1, 'EXPRESS', 'EXPY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (943, 1, 'EXTENSION', 'EXT', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (945, 1, 'EXTN', 'EXT', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (940, 1, 'EXTEN', 'EXT', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (947, 1, 'EXTSN', 'EXT', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (937, 1, 'EXT', 'EXT', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (920, 2, 'EX', 'EXT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (941, 2, 'EXTEN', 'EXT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (946, 2, 'EXTN', 'EXT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (948, 2, 'EXTSN', 'EXT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (938, 2, 'EXT', 'EXT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (944, 2, 'EXTENSION', 'EXT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (971, 2, 'FIELD', 'FLD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1109, 1, 'FREEWY', 'FWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1141, 2, 'GARDENS', 'GDNS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1133, 4, 'GA', 'GDNS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1155, 2, 'GDS', 'GDNS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1152, 2, 'GDNS', 'GDNS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1578, 2, 'MDWS', 'MDWS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1150, 1, 'GDN', 'GDN', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1153, 3, 'GDNS', 'GDNS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1142, 3, 'GARDENS', 'GDNS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1167, 2, 'GLEN', 'GLN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1169, 2, 'GLN', 'GLN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1163, 1, 'GL', 'GLN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1177, 2, 'GREEN', 'GRN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1175, 2, 'GR', 'GRN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1181, 2, 'GRN', 'GRN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1146, 2, 'GATEWAY', 'GTWY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1195, 2, 'GTWY', 'GTWY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1193, 2, 'GTWAY', 'GTWY', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1212, 3, 'HARBR', 'HBR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1209, 3, 'HARBOUR', 'HBR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1298, 3, 'HRBR', 'HBR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1301, 3, 'HRBOR', 'HBR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1261, 2, 'HIWAY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1240, 2, 'HGY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1249, 2, 'HIGHWAY', 'HWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1258, 2, 'HILL', 'HL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1268, 2, 'HL', 'HL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1274, 1, 'HO', 'HOLW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1281, 2, 'HOLW', 'HOLW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1277, 2, 'HOL', 'HOLW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1279, 2, 'H0LL0W', 'HOLW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1270, 2, 'HLLW', 'HOLW', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1231, 3, 'HGT', 'HTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1313, 3, 'HTS', 'HTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1234, 3, 'HGTS', 'HTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1226, 3, 'HEIGHTS', 'HTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1308, 3, 'HT', 'HTS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1242, 1, 'HI', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1332, 1, 'HYWY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1319, 1, 'HWAY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1322, 1, 'HWY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1248, 1, 'HIGHWAY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1260, 1, 'HIWAY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1254, 1, 'HIGHWY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1328, 1, 'HY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1235, 1, 'HGWY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1239, 1, 'HGY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1264, 1, 'HIWY', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1317, 1, 'HW', 'HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1335, 2, 'I', 'I-', 18, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1423, 2, 'JUNC', 'JCT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1429, 2, 'JUNCTION', 'JCT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1432, 2, 'JUNCTN', 'JCT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1410, 2, 'JCTION', 'JCT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1413, 2, 'JCTN', 'JCT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1419, 2, 'JNCT', 'JCT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1407, 2, 'JCT', 'JCT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1426, 2, 'JUNCT', 'JCT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1435, 2, 'JUNCTON', 'JCT', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1418, 1, 'JNCT', 'JCT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1505, 1, 'LN', 'LN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1523, 2, 'LODGE', 'LDG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1475, 2, 'LDG', 'LDG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1478, 2, 'LDGE', 'LDG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1455, 2, 'LA', 'LN', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1507, 2, 'LNDG', 'LNDG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1459, 2, 'LAND', 'LNDG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1510, 2, 'LNDNG', 'LNDG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1465, 2, 'LANDINGS', 'LNDG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1462, 2, 'LANDING', 'LNDG', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1477, 1, 'LDGE', 'LDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1522, 1, 'LODGE', 'LDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1474, 1, 'LDG', 'LDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1527, 1, 'LOOP', 'LOOP', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1528, 2, 'LOOP', 'LOOP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1538, 2, 'LP', 'LOOP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1512, 1, 'LO', 'LOOP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1537, 1, 'LP', 'LOOP', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1556, 1, 'MALL IN', 'MALL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2232, 1, 'SHOPPING MALL', 'MALL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2217, 1, 'SHOP MALL', 'MALL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1552, 1, 'MAL', 'MALL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2241, 1, 'SHP ML', 'MALL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1554, 2, 'MALL', 'MALL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2248, 1, 'SHPML', 'MALL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1614, 2, 'ML', 'MALL', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1553, 1, 'MALL', 'MALL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1557, 1, 'MANOR', 'MNR', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1583, 2, 'MEADOWS', 'MDWS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1592, 3, 'MEWS', 'MEWS', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1620, 2, 'MNR', 'MNR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1560, 1, 'MANORS', 'MNR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1558, 2, 'MANOR', 'MNR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1622, 1, 'MNRS', 'MNR', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1648, 1, 'MOTORWAY', 'MTWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1666, 1, 'MTWY', 'MTWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1667, 1, 'MU', 'MT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1650, 2, 'MOUNT', 'MT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1652, 2, 'MOUNTAIN', 'MTN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1807, 2, 'ORCHARD', 'ORCH', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1814, 1, 'OVAL', 'OVAL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1815, 1, 'OVERPASS', 'OPAS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1816, 1, 'OVPS', 'OPAS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1884, 2, 'PK', 'PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1946, 2, 'PRK', 'PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1842, 2, 'PARK', 'PARK', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1981, 1, 'PWKY', 'PKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1846, 1, 'PARKWAY', 'PKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1890, 1, 'PKY', 'PKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1847, 1, 'PARKWY', 'PKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1887, 1, 'PKW', 'PKWY', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1854, 1, 'PASS', 'PASS', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1855, 1, 'PASSAGE', 'PSGE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1856, 1, 'PATH', 'PATH', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1878, 1, 'PIKE', 'PIKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1886, 1, 'PKE', 'PIKE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1880, 2, 'PINES', 'PNES', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1892, 1, 'PLACE', 'PL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1901, 1, 'PLC', 'PL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1891, 1, 'PL', 'PL', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1899, 1, 'PLAZA', 'PLZ', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1907, 1, 'PLZA', 'PLZ', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1905, 1, 'PLZ', 'PLZ', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1906, 2, 'PLZ', 'PLZ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1908, 2, 'PLZA', 'PLZ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2242, 1, 'SHP PL', 'PLZ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2249, 1, 'SHPPL', 'PLZ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1900, 2, 'PLAZA', 'PLZ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2220, 1, 'SHOP PLZ', 'PLZ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2234, 1, 'SHOPPING PLAZA', 'PLZ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1972, 2, 'PT', 'PT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1922, 2, 'PORT', 'PRT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1967, 2, 'PRT', 'PRT', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2068, 1, 'RMP', 'RAMP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2013, 1, 'RAMP', 'RAMP', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2031, 2, 'RDG', 'RDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2054, 2, 'RIDGE', 'RDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2035, 1, 'RE', 'RDG', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2074, 1, 'ROAD', 'RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2029, 1, 'RD', 'RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2073, 1, 'RO', 'RTE', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2103, 2, 'RTE', 'RTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2007, 1, 'R T', 'RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2008, 2, 'R T', 'RTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2079, 1, 'ROUTE', 'RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2766, 1, 'U S HIWAY', 'US HWY', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1, 1, '#', '#', 16, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2, 2, '#', '#', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (3, 1, '&', 'AND', 13, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (4, 2, '&', 'AND', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (5, 3, '&', 'AND', 7, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (6, 1, '-', '-', 9, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (7, 1, '1 / 2', '1/2', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (8, 1, '1 / 2 MILE', '1/2 MI', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (9, 1, '1 / 3', '1/3', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (10, 1, '1 / 4', '1/4', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (11, 1, '1 MI', 'ONE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (12, 1, '1 MILE', 'ONE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (13, 1, '1/2', '1/2', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (14, 1, '1/2 MILE', '1/2 MI', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (15, 1, '1/3', '1/3', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (16, 1, '1/4', '1/4', 25, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (17, 1, '10 MI', 'TEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (18, 1, '10 MILE', 'TEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (19, 1, '10MI', 'TEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (20, 1, '100 MILE', 'ONE HUNDRED MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (21, 1, '11 MI', 'ELEVEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (22, 1, '11 MILE', 'ELEVEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (23, 1, '11MI', 'ELEVEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (24, 1, '12 MI', 'TWELVE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (25, 1, '12 MILE', 'TWELVE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (26, 1, '12MI', 'TWELVE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (27, 1, '13 MI', 'THIRTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (28, 1, '13 MILE', 'THIRTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (29, 1, '13MI', 'THIRTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (30, 1, '14 MI', 'FOURTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (31, 1, '14 MILE', 'FOURTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (32, 1, '14MI', 'FOURTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (33, 1, '15 MI', 'FIFTEEN MI', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (34, 1, '15 MILE', 'FIFTEEN MI', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (35, 1, '15MI', 'FIFTEEN MI', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (36, 1, '16 MI', 'SIXTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (37, 1, '16 MILE', 'SIXTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (38, 1, '16MI', 'SIXTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (39, 1, '17 MI', 'SEVENTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (40, 1, '17 MILE', 'SEVENTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (41, 1, '17MI', 'SEVENTEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (42, 1, '18 MI', 'EIGHTEEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (43, 1, '18 MILE', 'EIGHTEEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (44, 1, '18MI', 'EIGHTEEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (45, 1, '19 MI', 'NINETEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (46, 1, '19 MILE', 'NINETEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (47, 1, '19MI', 'NINETEEN MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (48, 1, '1ER', 'PREMIERE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (49, 1, '1ER', '1', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (50, 1, '1MI', 'ONE MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (51, 1, '1RE', 'PREMIERE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (52, 1, '1RE', '1', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (53, 1, '1ST', '1', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (54, 2, '1ST', '1ST', 15, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (55, 1, '2 MI', 'TWO MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (56, 1, '2 MILE', 'TWO MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (57, 1, '20 MI', 'TWENTY MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (58, 1, '20 MILE', 'TWENTY MILE', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (211, 1, 'AND', 'AND', 13, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2080, 2, 'ROUTE', 'RTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2082, 1, 'ROUTE NO', 'RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2083, 2, 'ROUTE NO', 'RTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2085, 2, 'ROUTE NUMBER', 'RTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2098, 1, 'RT', 'RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2099, 2, 'RT', 'RTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2100, 1, 'RT NO', 'RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2101, 2, 'RT NO', 'RTE', 8, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2102, 1, 'RTE', 'RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2084, 1, 'ROUTE NUMBER', 'RTE', 6, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2069, 1, 'RN', 'RUN', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2479, 1, 'SVRD', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2152, 1, 'SERVICE RD', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2153, 1, 'SERVICE ROAD', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2478, 1, 'SVC RD', 'SVC RD', 2, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2340, 1, 'SPUR', 'SPUR', 3, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2349, 2, 'SQU', 'SQ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2347, 2, 'SQR', 'SQ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2345, 2, 'SQ', 'SQ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2353, 2, 'SQURE', 'SQ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2351, 2, 'SQUARE', 'SQ', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2418, 2, 'STN', 'STA', 24, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2935, 2, 'NORTHWEST', 'NW', 22, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2936, 2, 'NORTH', 'NORTH', 1, false);
+INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2937, 2, 'SOUTH', 'SOUTH', 1, false);
+
+
+SELECT pg_catalog.setval('pagc_lex_id_seq', (SELECT greatest((SELECT MAX(id) FROM pagc_lex),50000)), true);
+
+
+-- set default to false so all we input will be treated as no custom -- 
+ALTER TABLE tiger.pagc_rules ALTER COLUMN is_custom SET DEFAULT false;
+INSERT INTO pagc_rules (id, rule) VALUES (1, '1 -1 5 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (2, '1 3 -1 5 3 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3, '1 22 -1 5 7 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (4, '1 22 3 -1 5 7 3 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (5, '1 2 -1 5 6 -1 2 13');
+INSERT INTO pagc_rules (id, rule) VALUES (6, '1 2 3 -1 5 6 3 -1 2 13');
+INSERT INTO pagc_rules (id, rule) VALUES (7, '1 2 22 -1 5 6 7 -1 2 13');
+INSERT INTO pagc_rules (id, rule) VALUES (8, '1 2 22 3 -1 5 6 7 3 -1 2 13');
+INSERT INTO pagc_rules (id, rule) VALUES (9, '18 -1 5 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (10, '18 3 -1 5 3 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (11, '18 22 -1 5 7 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (12, '18 22 3 -1 5 7 3 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (13, '18 2 -1 5 6 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (14, '18 2 3 -1 5 6 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (15, '18 2 22 -1 5 6 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (16, '18 2 22 3 -1 5 6 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (17, '2 -1 5 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (18, '2 3 -1 5 3 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (19, '2 22 -1 5 7 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (20, '2 22 3 -1 5 7 3 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (21, '2 2 -1 5 6 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (22, '2 2 3 -1 5 6 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (23, '2 2 22 -1 5 6 7 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (24, '2 2 22 3 -1 5 6 7 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (25, '22 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (26, '22 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (27, '22 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (28, '22 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (29, '22 2 -1 5 6 -1 2 8');
+INSERT INTO pagc_rules (id, rule) VALUES (30, '22 2 3 -1 5 6 3 -1 2 8');
+INSERT INTO pagc_rules (id, rule) VALUES (31, '22 2 22 -1 5 6 7 -1 2 8');
+INSERT INTO pagc_rules (id, rule) VALUES (32, '22 2 22 3 -1 5 6 7 3 -1 2 8');
+INSERT INTO pagc_rules (id, rule) VALUES (33, '22 1 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (34, '22 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (35, '22 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (36, '22 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (37, '22 1 2 -1 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (38, '22 1 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (39, '22 1 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (40, '22 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (41, '1 22 -1 5 5 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (42, '1 22 3 -1 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (43, '1 22 22 -1 5 5 7 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (44, '1 22 22 3 -1 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (45, '1 22 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (46, '1 22 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (47, '1 22 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (48, '1 22 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (49, '1 2 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (50, '1 2 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (51, '1 2 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (52, '1 2 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (53, '1 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (54, '1 2 2 3 -1 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (55, '1 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (56, '1 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (57, '2 1 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (58, '2 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (59, '2 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (60, '2 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (61, '2 1 2 -1 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (62, '2 1 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (63, '2 1 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (64, '2 1 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (65, '15 2 -1 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (66, '15 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (67, '15 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (68, '15 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (69, '16 0 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (70, '16 0 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (71, '24 2 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (72, '24 2 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (73, '24 2 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (74, '24 2 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (75, '24 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (76, '24 2 2 3 -1 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (77, '24 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (78, '24 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (79, '0 22 -1 5 5 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (80, '0 22 3 -1 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (81, '0 22 22 -1 5 5 7 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (82, '0 22 22 3 -1 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (83, '0 22 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (84, '0 22 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (85, '0 22 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (86, '0 22 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (87, '2 24 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (88, '2 24 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (89, '2 24 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (90, '2 24 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (91, '2 24 2 -1 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (92, '2 24 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (93, '2 24 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (94, '2 24 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (95, '2 22 -1 5 5 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (96, '2 22 3 -1 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (97, '2 22 22 -1 5 5 7 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (98, '2 22 22 3 -1 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (99, '2 22 2 -1 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (100, '2 22 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (101, '2 22 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (102, '2 22 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (103, '2 0 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (104, '2 0 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (105, '2 0 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (106, '2 0 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (107, '2 0 2 -1 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (108, '2 0 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (109, '2 0 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (110, '2 0 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (111, '2 18 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (112, '2 18 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (113, '2 18 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (114, '2 18 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (115, '2 18 2 -1 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (116, '2 18 2 3 -1 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (117, '2 18 2 22 -1 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (118, '2 18 2 22 3 -1 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (119, '2 2 -1 5 5 -1 2 3');
+INSERT INTO pagc_rules (id, rule) VALUES (120, '2 2 3 -1 5 5 3 -1 2 3');
+INSERT INTO pagc_rules (id, rule) VALUES (121, '2 2 22 -1 5 5 7 -1 2 3');
+INSERT INTO pagc_rules (id, rule) VALUES (122, '2 2 22 3 -1 5 5 7 3 -1 2 3');
+INSERT INTO pagc_rules (id, rule) VALUES (123, '2 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (124, '2 2 2 3 -1 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (125, '2 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (126, '2 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (127, '18 2 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (128, '18 2 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (129, '18 2 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (130, '18 2 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (131, '18 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (132, '18 2 2 3 -1 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (133, '18 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (134, '18 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (135, '1 18 2 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (136, '1 18 2 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (137, '1 18 2 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (138, '1 18 2 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (139, '1 18 2 2 -1 5 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (140, '1 18 2 2 3 -1 5 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (141, '1 18 2 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (142, '1 18 2 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (143, '0 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (144, '0 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (145, '0 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (146, '0 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (147, '0 2 -1 5 6 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (148, '0 2 3 -1 5 6 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (149, '0 2 22 -1 5 6 7 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (150, '0 2 22 3 -1 5 6 7 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (151, '0 18 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (152, '0 18 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (153, '0 18 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (154, '0 18 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (155, '0 18 2 -1 5 5 6 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (156, '0 18 2 3 -1 5 5 6 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (157, '0 18 2 22 -1 5 5 6 7 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (158, '0 18 2 22 3 -1 5 5 6 7 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (159, '0 1 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (160, '0 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (161, '0 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (162, '0 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (163, '0 1 2 -1 5 5 6 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (164, '0 1 2 3 -1 5 5 6 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (165, '0 1 2 22 -1 5 5 6 7 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (166, '0 1 2 22 3 -1 5 5 6 7 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (167, '1 2 2 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (168, '1 2 2 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (169, '1 2 2 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (170, '1 2 2 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (171, '1 2 2 2 -1 5 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (172, '1 2 2 2 3 -1 5 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (173, '1 2 2 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (174, '1 2 2 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (175, '22 2 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (176, '22 2 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (177, '22 2 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (178, '22 2 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (179, '22 2 2 -1 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (180, '22 2 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (181, '22 2 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (182, '22 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (183, '14 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (184, '14 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (185, '14 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (186, '14 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (187, '14 2 -1 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (188, '14 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (189, '14 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (190, '14 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (191, '15 1 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (192, '15 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (193, '15 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (194, '15 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (195, '15 1 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (196, '15 1 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (197, '15 1 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (198, '15 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (199, '24 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (200, '24 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (201, '24 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (202, '24 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (203, '24 2 -1 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (204, '24 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (205, '24 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (206, '24 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (207, '24 24 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (208, '24 24 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (209, '24 24 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (210, '24 24 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (211, '24 24 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (212, '24 24 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (213, '24 24 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (214, '24 24 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (215, '24 1 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (216, '24 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (217, '24 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (218, '24 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (219, '24 1 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (220, '24 1 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (221, '24 1 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (222, '24 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (223, '25 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (224, '25 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (225, '25 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (226, '25 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (227, '25 2 -1 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (228, '25 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (229, '25 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (230, '25 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (231, '23 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (232, '23 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (233, '23 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (234, '23 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (235, '23 2 -1 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (236, '23 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (237, '23 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (238, '23 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (239, '0 13 0 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (240, '0 13 0 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (241, '0 13 0 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (242, '0 13 0 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (243, '0 13 0 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (244, '0 13 0 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (245, '0 13 0 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (246, '0 13 0 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (247, '0 25 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (248, '0 25 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (249, '0 25 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (250, '0 25 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (251, '0 25 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (252, '0 25 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (253, '0 25 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (254, '0 25 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (255, '11 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (256, '11 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (257, '11 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (258, '11 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (259, '11 2 -1 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (260, '11 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (261, '11 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (262, '11 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (263, '3 0 -1 3 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (264, '3 0 3 -1 3 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (265, '3 0 22 -1 3 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (266, '3 0 22 3 -1 3 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (267, '3 0 2 -1 3 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (268, '3 0 2 3 -1 3 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (269, '3 0 2 22 -1 3 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (270, '3 0 2 22 3 -1 3 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (271, '3 1 -1 3 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (272, '3 1 3 -1 3 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (273, '3 1 22 -1 3 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (274, '3 1 22 3 -1 3 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (275, '3 1 2 -1 3 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (276, '3 1 2 3 -1 3 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (277, '3 1 2 22 -1 3 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (278, '3 1 2 22 3 -1 3 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (279, '18 13 18 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (280, '18 13 18 3 -1 5 5 3 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (281, '18 13 18 22 -1 5 5 3 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (282, '18 13 18 22 3 -1 5 5 3 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (283, '18 13 18 2 -1 5 5 3 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (284, '18 13 18 2 3 -1 5 5 3 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (285, '18 13 18 2 22 -1 5 5 3 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (286, '18 13 18 2 22 3 -1 5 5 3 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (287, '18 0 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (288, '18 0 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (289, '18 0 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (290, '18 0 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (291, '18 0 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (292, '18 0 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (293, '18 0 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (294, '18 0 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (295, '18 18 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (296, '18 18 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (297, '18 18 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (298, '18 18 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (299, '18 18 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (300, '18 18 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (301, '18 18 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (302, '18 18 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (303, '18 18 18 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (304, '18 18 18 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (305, '18 18 18 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (306, '18 18 18 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (307, '18 18 18 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (308, '18 18 18 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (309, '18 18 18 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (310, '18 18 18 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (311, '18 18 1 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (312, '18 18 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (313, '18 18 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (314, '18 18 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (315, '18 18 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (316, '18 18 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (317, '18 18 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (318, '18 18 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (319, '18 1 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (320, '18 1 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (321, '18 1 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (322, '18 1 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (323, '18 1 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (324, '18 1 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (325, '18 1 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (326, '18 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (327, '5 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (328, '5 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (329, '5 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (330, '5 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (331, '5 2 -1 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (332, '5 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (333, '5 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (334, '5 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (335, '21 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (336, '21 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (337, '21 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (338, '21 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (339, '21 2 -1 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (340, '21 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (341, '21 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (342, '21 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (343, '1 13 1 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (344, '1 13 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (345, '1 13 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (346, '1 13 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (347, '1 13 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (348, '1 13 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (349, '1 13 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (350, '1 13 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (351, '1 24 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (352, '1 24 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (353, '1 24 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (354, '1 24 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (355, '1 24 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (356, '1 24 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (357, '1 24 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (358, '1 24 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (359, '1 24 24 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (360, '1 24 24 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (361, '1 24 24 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (362, '1 24 24 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (363, '1 24 24 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (364, '1 24 24 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (365, '1 24 24 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (366, '1 24 24 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (367, '1 24 1 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (368, '1 24 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (369, '1 24 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (370, '1 24 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (371, '1 24 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (372, '1 24 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (373, '1 24 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (374, '1 24 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (375, '1 15 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (376, '1 15 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (377, '1 15 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (378, '1 15 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (379, '1 15 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (380, '1 15 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (381, '1 15 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (382, '1 15 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (383, '1 22 1 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (384, '1 22 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (385, '1 22 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (386, '1 22 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (387, '1 22 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (388, '1 22 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (389, '1 22 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (390, '1 22 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (391, '1 25 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (392, '1 25 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (393, '1 25 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (394, '1 25 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (395, '1 25 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (396, '1 25 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (397, '1 25 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (398, '1 25 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (399, '1 0 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (400, '1 0 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (401, '1 0 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (402, '1 0 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (403, '1 0 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (404, '1 0 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (405, '1 0 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (406, '1 0 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (407, '1 3 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (408, '1 3 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (409, '1 3 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (410, '1 3 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (411, '1 3 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (412, '1 3 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (413, '1 3 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (414, '1 3 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (415, '1 18 -1 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (416, '1 18 3 -1 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (417, '1 18 22 -1 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (418, '1 18 22 3 -1 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (419, '1 18 2 -1 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (420, '1 18 2 3 -1 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (421, '1 18 2 22 -1 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (422, '1 18 2 22 3 -1 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (423, '1 18 18 1 -1 5 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (424, '1 18 18 1 3 -1 5 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (425, '1 18 18 1 22 -1 5 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (426, '1 18 18 1 22 3 -1 5 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (427, '1 18 18 1 2 -1 5 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (428, '1 18 18 1 2 3 -1 5 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (429, '1 18 18 1 2 22 -1 5 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (430, '1 18 18 1 2 22 3 -1 5 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (431, '1 18 1 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (432, '1 18 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (433, '1 18 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (434, '1 18 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (435, '1 18 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (436, '1 18 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (437, '1 18 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (438, '1 18 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (439, '1 2 0 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (440, '1 2 0 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (441, '1 2 0 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (442, '1 2 0 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (443, '1 2 0 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (444, '1 2 0 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (445, '1 2 0 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (446, '1 2 0 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (447, '1 2 1 -1 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (448, '1 2 1 3 -1 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (449, '1 2 1 22 -1 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (450, '1 2 1 22 3 -1 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (451, '1 2 1 2 -1 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (452, '1 2 1 2 3 -1 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (453, '1 2 1 2 22 -1 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (454, '1 2 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (455, '16 -1 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (456, '16 3 -1 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (457, '16 22 -1 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (458, '16 22 3 -1 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (459, '16 2 -1 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (460, '16 2 3 -1 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (461, '16 2 22 -1 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (462, '16 2 22 3 -1 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (463, '2 1 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (464, '2 1 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (465, '2 1 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (466, '2 1 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (467, '2 18 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (468, '2 18 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (469, '2 18 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (470, '2 18 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (471, '2 2 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (472, '2 2 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (473, '2 2 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (474, '2 2 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (475, '2 22 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (476, '2 22 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (477, '2 22 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (478, '2 22 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (479, '2 22 1 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (480, '2 22 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (481, '2 22 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (482, '2 22 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (483, '2 1 22 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (484, '2 1 22 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (485, '2 1 22 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (486, '2 1 22 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (487, '2 1 2 -1 4 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (488, '2 1 2 3 -1 4 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (489, '2 1 2 22 -1 4 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (490, '2 1 2 22 3 -1 4 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (491, '2 2 1 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (492, '2 2 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (493, '2 2 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (494, '2 2 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (495, '2 24 2 -1 4 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (496, '2 24 2 3 -1 4 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (497, '2 24 2 22 -1 4 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (498, '2 24 2 22 3 -1 4 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (499, '2 0 22 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (500, '2 0 22 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (501, '2 0 22 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (502, '2 0 22 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (503, '2 2 24 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (504, '2 2 24 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (505, '2 2 24 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (506, '2 2 24 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (507, '2 2 22 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (508, '2 2 22 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (509, '2 2 22 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (510, '2 2 22 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (511, '2 2 0 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (512, '2 2 0 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (513, '2 2 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (514, '2 2 0 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (515, '2 2 18 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (516, '2 2 18 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (517, '2 2 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (518, '2 2 18 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (519, '2 2 2 -1 4 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (520, '2 2 2 3 -1 4 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (521, '2 2 2 22 -1 4 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (522, '2 2 2 22 3 -1 4 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (523, '2 18 2 -1 4 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (524, '2 18 2 3 -1 4 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (525, '2 18 2 22 -1 4 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (526, '2 18 2 22 3 -1 4 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (527, '2 1 18 2 -1 4 5 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (528, '2 1 18 2 3 -1 4 5 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (529, '2 1 18 2 22 -1 4 5 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (530, '2 1 18 2 22 3 -1 4 5 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (531, '2 0 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (532, '2 0 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (533, '2 0 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (534, '2 0 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (535, '2 0 18 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (536, '2 0 18 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (537, '2 0 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (538, '2 0 18 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (539, '2 0 1 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (540, '2 0 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (541, '2 0 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (542, '2 0 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (543, '2 1 2 2 -1 4 5 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (544, '2 1 2 2 3 -1 4 5 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (545, '2 1 2 2 22 -1 4 5 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (546, '2 1 2 2 22 3 -1 4 5 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (547, '2 22 2 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (548, '2 22 2 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (549, '2 22 2 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (550, '2 22 2 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (551, '2 14 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (552, '2 14 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (553, '2 14 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (554, '2 14 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (555, '2 15 1 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (556, '2 15 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (557, '2 15 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (558, '2 15 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (559, '2 24 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (560, '2 24 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (561, '2 24 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (562, '2 24 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (563, '2 24 24 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (564, '2 24 24 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (565, '2 24 24 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (566, '2 24 24 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (567, '2 24 1 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (568, '2 24 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (569, '2 24 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (570, '2 24 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (571, '2 25 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (572, '2 25 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (573, '2 25 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (574, '2 25 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (575, '2 23 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (576, '2 23 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (577, '2 23 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (578, '2 23 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (579, '2 0 13 0 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (580, '2 0 13 0 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (581, '2 0 13 0 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (582, '2 0 13 0 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (583, '2 0 25 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (584, '2 0 25 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (585, '2 0 25 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (586, '2 0 25 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (587, '2 11 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (588, '2 11 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (589, '2 11 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (590, '2 11 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (591, '2 3 0 -1 4 3 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (592, '2 3 0 3 -1 4 3 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (593, '2 3 0 22 -1 4 3 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (594, '2 3 0 22 3 -1 4 3 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (595, '2 3 1 -1 4 3 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (596, '2 3 1 3 -1 4 3 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (597, '2 3 1 22 -1 4 3 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (598, '2 3 1 22 3 -1 4 3 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (599, '2 18 13 18 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (600, '2 18 13 18 3 -1 4 5 5 3 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (601, '2 18 13 18 22 -1 4 5 5 3 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (602, '2 18 13 18 22 3 -1 4 5 5 3 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (603, '2 18 0 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (604, '2 18 0 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (605, '2 18 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (606, '2 18 0 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (607, '2 18 18 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (608, '2 18 18 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (609, '2 18 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (610, '2 18 18 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (611, '2 18 18 18 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (612, '2 18 18 18 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (613, '2 18 18 18 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (614, '2 18 18 18 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (615, '2 18 18 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (616, '2 18 18 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (617, '2 18 18 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (618, '2 18 18 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (619, '2 18 1 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (620, '2 18 1 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (621, '2 18 1 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (622, '2 18 1 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (623, '2 5 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (624, '2 5 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (625, '2 5 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (626, '2 5 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (627, '2 21 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (628, '2 21 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (629, '2 21 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (630, '2 21 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (631, '2 1 13 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (632, '2 1 13 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (633, '2 1 13 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (634, '2 1 13 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (635, '2 1 24 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (636, '2 1 24 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (637, '2 1 24 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (638, '2 1 24 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (639, '2 1 24 24 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (640, '2 1 24 24 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (641, '2 1 24 24 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (642, '2 1 24 24 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (643, '2 1 24 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (644, '2 1 24 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (645, '2 1 24 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (646, '2 1 24 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (647, '2 1 15 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (648, '2 1 15 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (649, '2 1 15 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (650, '2 1 15 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (651, '2 1 22 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (652, '2 1 22 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (653, '2 1 22 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (654, '2 1 22 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (655, '2 1 25 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (656, '2 1 25 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (657, '2 1 25 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (658, '2 1 25 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (659, '2 1 0 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (660, '2 1 0 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (661, '2 1 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (662, '2 1 0 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (663, '2 1 3 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (664, '2 1 3 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (665, '2 1 3 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (666, '2 1 3 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (667, '2 1 18 -1 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (668, '2 1 18 3 -1 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (669, '2 1 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (670, '2 1 18 22 3 -1 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (671, '2 1 18 18 1 -1 4 5 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (672, '2 1 18 18 1 3 -1 4 5 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (673, '2 1 18 18 1 22 -1 4 5 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (674, '2 1 18 18 1 22 3 -1 4 5 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (675, '2 1 18 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (676, '2 1 18 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (677, '2 1 18 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (678, '2 1 18 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (679, '2 1 2 0 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (680, '2 1 2 0 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (681, '2 1 2 0 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (682, '2 1 2 0 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (683, '2 1 2 1 -1 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (684, '2 1 2 1 3 -1 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (685, '2 1 2 1 22 -1 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (686, '2 1 2 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (687, '2 16 -1 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (688, '2 16 3 -1 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (689, '2 16 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (690, '2 16 22 3 -1 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (691, '22 1 -1 2 5 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (692, '22 1 3 -1 2 5 3 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (693, '22 1 22 -1 2 5 7 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (694, '22 1 22 3 -1 2 5 7 3 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (695, '22 1 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (696, '22 1 2 3 -1 2 5 6 3 -1 2 13');
+INSERT INTO pagc_rules (id, rule) VALUES (697, '22 1 2 22 -1 2 5 6 7 -1 2 13');
+INSERT INTO pagc_rules (id, rule) VALUES (698, '22 1 2 22 3 -1 2 5 6 7 3 -1 2 13');
+INSERT INTO pagc_rules (id, rule) VALUES (699, '22 18 -1 2 5 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (700, '22 18 3 -1 2 5 3 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (701, '22 18 22 -1 2 5 7 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (702, '22 18 22 3 -1 2 5 7 3 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (703, '22 18 2 -1 2 5 6 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (704, '22 18 2 3 -1 2 5 6 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (705, '22 18 2 22 -1 2 5 6 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (706, '22 18 2 22 3 -1 2 5 6 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (707, '22 2 -1 2 5 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (708, '22 2 3 -1 2 5 3 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (709, '22 2 22 -1 2 5 7 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (710, '22 2 22 3 -1 2 5 7 3 -1 2 2');
+INSERT INTO pagc_rules (id, rule) VALUES (711, '22 2 2 -1 2 5 6 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (712, '22 2 2 3 -1 2 5 6 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (713, '22 2 2 22 -1 2 5 6 7 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (714, '22 2 2 22 3 -1 2 5 6 7 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (715, '22 22 -1 2 5 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (716, '22 22 3 -1 2 5 3 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (717, '22 22 22 -1 2 5 7 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (718, '22 22 22 3 -1 2 5 7 3 -1 2 7');
+INSERT INTO pagc_rules (id, rule) VALUES (719, '22 22 2 -1 2 5 6 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (720, '22 22 2 3 -1 2 5 6 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (721, '22 22 2 22 -1 2 5 6 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (722, '22 22 2 22 3 -1 2 5 6 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (723, '22 22 1 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (724, '22 22 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (725, '22 22 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (726, '22 22 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (727, '22 22 1 2 -1 2 5 5 6 -1 2 8');
+INSERT INTO pagc_rules (id, rule) VALUES (728, '22 22 1 2 3 -1 2 5 5 6 3 -1 2 8');
+INSERT INTO pagc_rules (id, rule) VALUES (729, '22 22 1 2 22 -1 2 5 5 6 7 -1 2 8');
+INSERT INTO pagc_rules (id, rule) VALUES (730, '22 22 1 2 22 3 -1 2 5 5 6 7 3 -1 2 8');
+INSERT INTO pagc_rules (id, rule) VALUES (731, '22 1 22 -1 2 5 5 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (732, '22 1 22 3 -1 2 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (733, '22 1 22 22 -1 2 5 5 7 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (734, '22 1 22 22 3 -1 2 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (735, '22 1 22 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (736, '22 1 22 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (737, '22 1 22 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (738, '22 1 22 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (739, '22 1 2 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (740, '22 1 2 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (741, '22 1 2 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (742, '22 1 2 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (743, '22 1 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (744, '22 1 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (745, '22 1 2 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (746, '22 1 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (747, '22 2 1 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (748, '22 2 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (749, '22 2 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (750, '22 2 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (751, '22 2 1 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (752, '22 2 1 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (753, '22 2 1 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (754, '22 2 1 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (755, '22 15 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (756, '22 15 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (757, '22 15 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (758, '22 15 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (759, '22 16 0 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (760, '22 16 0 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (761, '22 24 2 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (762, '22 24 2 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (763, '22 24 2 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (764, '22 24 2 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (765, '22 24 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (766, '22 24 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (767, '22 24 2 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (768, '22 24 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (769, '22 0 22 -1 2 5 5 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (770, '22 0 22 3 -1 2 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (771, '22 0 22 22 -1 2 5 5 7 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (772, '22 0 22 22 3 -1 2 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (773, '22 0 22 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (774, '22 0 22 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (775, '22 0 22 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (776, '22 0 22 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (777, '22 2 24 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (778, '22 2 24 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (779, '22 2 24 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (780, '22 2 24 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (781, '22 2 24 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (782, '22 2 24 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (783, '22 2 24 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (784, '22 2 24 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (785, '22 2 22 -1 2 5 5 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (786, '22 2 22 3 -1 2 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (787, '22 2 22 22 -1 2 5 5 7 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (788, '22 2 22 22 3 -1 2 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (789, '22 2 22 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (790, '22 2 22 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (791, '22 2 22 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (792, '22 2 22 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (793, '22 2 0 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (794, '22 2 0 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (795, '22 2 0 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (796, '22 2 0 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (797, '22 2 0 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (798, '22 2 0 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (799, '22 2 0 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (800, '22 2 0 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (801, '22 2 18 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (802, '22 2 18 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (803, '22 2 18 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (804, '22 2 18 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (805, '22 2 18 2 -1 2 5 5 6 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (806, '22 2 18 2 3 -1 2 5 5 6 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (807, '22 2 18 2 22 -1 2 5 5 6 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (808, '22 2 18 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (809, '22 2 2 -1 2 5 5 -1 2 3');
+INSERT INTO pagc_rules (id, rule) VALUES (810, '22 2 2 3 -1 2 5 5 3 -1 2 3');
+INSERT INTO pagc_rules (id, rule) VALUES (811, '22 2 2 22 -1 2 5 5 7 -1 2 3');
+INSERT INTO pagc_rules (id, rule) VALUES (812, '22 2 2 22 3 -1 2 5 5 7 3 -1 2 3');
+INSERT INTO pagc_rules (id, rule) VALUES (813, '22 2 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (814, '22 2 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (815, '22 2 2 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (816, '22 2 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (817, '22 18 2 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (818, '22 18 2 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (819, '22 18 2 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (820, '22 18 2 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (821, '22 18 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (822, '22 18 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (823, '22 18 2 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (824, '22 18 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (825, '22 1 18 2 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (826, '22 1 18 2 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (827, '22 1 18 2 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (828, '22 1 18 2 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (829, '22 1 18 2 2 -1 2 5 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (830, '22 1 18 2 2 3 -1 2 5 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (831, '22 1 18 2 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (832, '22 1 18 2 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (833, '22 0 -1 2 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (834, '22 0 3 -1 2 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (835, '22 0 22 -1 2 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (836, '22 0 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (837, '22 0 2 -1 2 5 6 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (838, '22 0 2 3 -1 2 5 6 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (839, '22 0 2 22 -1 2 5 6 7 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (840, '22 0 2 22 3 -1 2 5 6 7 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (841, '22 0 18 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (842, '22 0 18 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (843, '22 0 18 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (844, '22 0 18 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (845, '22 0 18 2 -1 2 5 5 6 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (846, '22 0 18 2 3 -1 2 5 5 6 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (847, '22 0 18 2 22 -1 2 5 5 6 7 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (848, '22 0 18 2 22 3 -1 2 5 5 6 7 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (849, '22 0 1 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (850, '22 0 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (851, '22 0 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (852, '22 0 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (853, '22 0 1 2 -1 2 5 5 6 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (854, '22 0 1 2 3 -1 2 5 5 6 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (855, '22 0 1 2 22 -1 2 5 5 6 7 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (856, '22 0 1 2 22 3 -1 2 5 5 6 7 3 -1 2 10');
+INSERT INTO pagc_rules (id, rule) VALUES (857, '22 1 2 2 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (858, '22 1 2 2 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (859, '22 1 2 2 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (860, '22 1 2 2 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (861, '22 1 2 2 2 -1 2 5 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (862, '22 1 2 2 2 3 -1 2 5 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (863, '22 1 2 2 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (864, '22 1 2 2 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (865, '22 22 2 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (866, '22 22 2 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (867, '22 22 2 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (868, '22 22 2 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (869, '22 22 2 2 -1 2 5 5 6 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (870, '22 22 2 2 3 -1 2 5 5 6 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (871, '22 22 2 2 22 -1 2 5 5 6 7 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (872, '22 22 2 2 22 3 -1 2 5 5 6 7 3 -1 2 5');
+INSERT INTO pagc_rules (id, rule) VALUES (873, '22 14 -1 2 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (874, '22 14 3 -1 2 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (875, '22 14 22 -1 2 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (876, '22 14 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (877, '22 14 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (878, '22 14 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (879, '22 14 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (880, '22 14 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (881, '22 15 1 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (882, '22 15 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (883, '22 15 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (884, '22 15 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (885, '22 15 1 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (886, '22 15 1 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (887, '22 15 1 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (888, '22 15 1 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (889, '22 24 -1 2 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (890, '22 24 3 -1 2 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (891, '22 24 22 -1 2 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (892, '22 24 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (893, '22 24 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (894, '22 24 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (895, '22 24 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (896, '22 24 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (897, '22 24 24 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (898, '22 24 24 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (899, '22 24 24 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (900, '22 24 24 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (901, '22 24 24 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (902, '22 24 24 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (903, '22 24 24 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (904, '22 24 24 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (905, '22 24 1 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (906, '22 24 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (907, '22 24 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (908, '22 24 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (909, '22 24 1 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (910, '22 24 1 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (911, '22 24 1 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (912, '22 24 1 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (913, '22 25 -1 2 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (914, '22 25 3 -1 2 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (915, '22 25 22 -1 2 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (916, '22 25 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (917, '22 25 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (918, '22 25 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (919, '22 25 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (920, '22 25 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (921, '22 23 -1 2 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (922, '22 23 3 -1 2 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (923, '22 23 22 -1 2 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (924, '22 23 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (925, '22 23 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (926, '22 23 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (927, '22 23 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (928, '22 23 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (929, '22 0 13 0 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (930, '22 0 13 0 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (931, '22 0 13 0 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (932, '22 0 13 0 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (933, '22 0 13 0 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (934, '22 0 13 0 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (935, '22 0 13 0 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (936, '22 0 13 0 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (937, '22 0 25 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (938, '22 0 25 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (939, '22 0 25 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (940, '22 0 25 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (941, '22 0 25 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (942, '22 0 25 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (943, '22 0 25 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (944, '22 0 25 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (945, '22 11 -1 2 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (946, '22 11 3 -1 2 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (947, '22 11 22 -1 2 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (948, '22 11 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (949, '22 11 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (950, '22 11 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (951, '22 11 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (952, '22 11 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (953, '22 3 0 -1 2 3 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (954, '22 3 0 3 -1 2 3 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (955, '22 3 0 22 -1 2 3 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (956, '22 3 0 22 3 -1 2 3 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (957, '22 3 0 2 -1 2 3 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (958, '22 3 0 2 3 -1 2 3 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (959, '22 3 0 2 22 -1 2 3 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (960, '22 3 0 2 22 3 -1 2 3 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (961, '22 3 1 -1 2 3 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (962, '22 3 1 3 -1 2 3 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (963, '22 3 1 22 -1 2 3 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (964, '22 3 1 22 3 -1 2 3 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (965, '22 3 1 2 -1 2 3 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (966, '22 3 1 2 3 -1 2 3 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (967, '22 3 1 2 22 -1 2 3 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (968, '22 3 1 2 22 3 -1 2 3 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (969, '22 18 13 18 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (970, '22 18 13 18 3 -1 2 5 5 3 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (971, '22 18 13 18 22 -1 2 5 5 3 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (972, '22 18 13 18 22 3 -1 2 5 5 3 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (973, '22 18 13 18 2 -1 2 5 5 3 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (974, '22 18 13 18 2 3 -1 2 5 5 3 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (975, '22 18 13 18 2 22 -1 2 5 5 3 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (976, '22 18 13 18 2 22 3 -1 2 5 5 3 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (977, '22 18 0 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (978, '22 18 0 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (979, '22 18 0 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (980, '22 18 0 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (981, '22 18 0 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (982, '22 18 0 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (983, '22 18 0 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (984, '22 18 0 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (985, '22 18 18 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (986, '22 18 18 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (987, '22 18 18 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (988, '22 18 18 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (989, '22 18 18 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (990, '22 18 18 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (991, '22 18 18 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (992, '22 18 18 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (993, '22 18 18 18 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (994, '22 18 18 18 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (995, '22 18 18 18 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (996, '22 18 18 18 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (997, '22 18 18 18 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (998, '22 18 18 18 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (999, '22 18 18 18 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1000, '22 18 18 18 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1001, '22 18 18 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1002, '22 18 18 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1003, '22 18 18 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1004, '22 18 18 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1005, '22 18 18 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1006, '22 18 18 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1007, '22 18 18 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1008, '22 18 18 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1009, '22 18 1 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1010, '22 18 1 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1011, '22 18 1 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1012, '22 18 1 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1013, '22 18 1 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1014, '22 18 1 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1015, '22 18 1 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1016, '22 18 1 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1017, '22 5 -1 2 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1018, '22 5 3 -1 2 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1019, '22 5 22 -1 2 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1020, '22 5 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1021, '22 5 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1022, '22 5 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1023, '22 5 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1024, '22 5 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1025, '22 21 -1 2 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1026, '22 21 3 -1 2 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1027, '22 21 22 -1 2 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1028, '22 21 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1029, '22 21 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1030, '22 21 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1031, '22 21 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1032, '22 21 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1033, '22 1 13 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1034, '22 1 13 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1035, '22 1 13 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1036, '22 1 13 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1037, '22 1 13 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1038, '22 1 13 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1039, '22 1 13 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1040, '22 1 13 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1041, '22 1 24 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1042, '22 1 24 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1043, '22 1 24 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1044, '22 1 24 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1045, '22 1 24 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1046, '22 1 24 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1047, '22 1 24 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1048, '22 1 24 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1049, '22 1 24 24 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1050, '22 1 24 24 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1051, '22 1 24 24 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1052, '22 1 24 24 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1053, '22 1 24 24 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1054, '22 1 24 24 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1055, '22 1 24 24 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1056, '22 1 24 24 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1057, '22 1 24 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1058, '22 1 24 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1059, '22 1 24 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1060, '22 1 24 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1061, '22 1 24 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1062, '22 1 24 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1063, '22 1 24 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1064, '22 1 24 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1065, '22 1 15 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1066, '22 1 15 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1067, '22 1 15 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1068, '22 1 15 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1069, '22 1 15 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1070, '22 1 15 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1071, '22 1 15 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1072, '22 1 15 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1073, '22 1 22 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1074, '22 1 22 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1075, '22 1 22 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1076, '22 1 22 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1077, '22 1 22 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1078, '22 1 22 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1079, '22 1 22 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1080, '22 1 22 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1081, '22 1 25 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1082, '22 1 25 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1083, '22 1 25 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1084, '22 1 25 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1085, '22 1 25 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1086, '22 1 25 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1087, '22 1 25 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1088, '22 1 25 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1089, '22 1 0 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1090, '22 1 0 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1091, '22 1 0 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1092, '22 1 0 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1093, '22 1 0 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1094, '22 1 0 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1095, '22 1 0 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1096, '22 1 0 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1097, '22 1 3 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1098, '22 1 3 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1099, '22 1 3 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1100, '22 1 3 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1101, '22 1 3 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1102, '22 1 3 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1103, '22 1 3 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1104, '22 1 3 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1105, '22 1 18 -1 2 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1106, '22 1 18 3 -1 2 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1107, '22 1 18 22 -1 2 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1108, '22 1 18 22 3 -1 2 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1109, '22 1 18 2 -1 2 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1110, '22 1 18 2 3 -1 2 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1111, '22 1 18 2 22 -1 2 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1112, '22 1 18 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1113, '22 1 18 18 1 -1 2 5 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1114, '22 1 18 18 1 3 -1 2 5 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1115, '22 1 18 18 1 22 -1 2 5 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1116, '22 1 18 18 1 22 3 -1 2 5 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1117, '22 1 18 18 1 2 -1 2 5 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1118, '22 1 18 18 1 2 3 -1 2 5 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1119, '22 1 18 18 1 2 22 -1 2 5 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1120, '22 1 18 18 1 2 22 3 -1 2 5 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1121, '22 1 18 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1122, '22 1 18 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1123, '22 1 18 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1124, '22 1 18 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1125, '22 1 18 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1126, '22 1 18 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1127, '22 1 18 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1128, '22 1 18 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1129, '22 1 2 0 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1130, '22 1 2 0 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1131, '22 1 2 0 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1132, '22 1 2 0 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1133, '22 1 2 0 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1134, '22 1 2 0 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1135, '22 1 2 0 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1136, '22 1 2 0 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1137, '22 1 2 1 -1 2 5 5 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1138, '22 1 2 1 3 -1 2 5 5 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1139, '22 1 2 1 22 -1 2 5 5 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1140, '22 1 2 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1141, '22 1 2 1 2 -1 2 5 5 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1142, '22 1 2 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1143, '22 1 2 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1144, '22 1 2 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1145, '22 16 -1 2 5 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1146, '22 16 3 -1 2 5 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1147, '22 16 22 -1 2 5 7 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1148, '22 16 22 3 -1 2 5 7 3 -1 2 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1149, '22 16 2 -1 2 5 6 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1150, '22 16 2 3 -1 2 5 6 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1151, '22 16 2 22 -1 2 5 6 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1152, '22 16 2 22 3 -1 2 5 6 7 3 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1153, '22 2 1 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1154, '22 2 1 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1155, '22 2 1 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1156, '22 2 1 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1157, '22 2 18 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1158, '22 2 18 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1159, '22 2 18 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1160, '22 2 18 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1161, '22 2 2 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1162, '22 2 2 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1163, '22 2 2 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1164, '22 2 2 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1165, '22 2 22 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1166, '22 2 22 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1167, '22 2 22 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1168, '22 2 22 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1169, '22 2 22 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1170, '22 2 22 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1171, '22 2 22 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1172, '22 2 22 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1173, '22 2 1 22 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1174, '22 2 1 22 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1175, '22 2 1 22 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1176, '22 2 1 22 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1177, '22 2 1 2 -1 2 4 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1178, '22 2 1 2 3 -1 2 4 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1179, '22 2 1 2 22 -1 2 4 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1180, '22 2 1 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1181, '22 2 2 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1182, '22 2 2 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1183, '22 2 2 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1184, '22 2 2 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1185, '22 2 24 2 -1 2 4 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1186, '22 2 24 2 3 -1 2 4 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1187, '22 2 24 2 22 -1 2 4 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1188, '22 2 24 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1189, '22 2 0 22 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1190, '22 2 0 22 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1191, '22 2 0 22 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1192, '22 2 0 22 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1193, '22 2 2 24 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1194, '22 2 2 24 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1195, '22 2 2 24 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1196, '22 2 2 24 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1197, '22 2 2 22 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1198, '22 2 2 22 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1199, '22 2 2 22 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1200, '22 2 2 22 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1201, '22 2 2 0 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1202, '22 2 2 0 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1203, '22 2 2 0 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1204, '22 2 2 0 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1205, '22 2 2 18 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1206, '22 2 2 18 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1207, '22 2 2 18 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1208, '22 2 2 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1209, '22 2 2 2 -1 2 4 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1210, '22 2 2 2 3 -1 2 4 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1211, '22 2 2 2 22 -1 2 4 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1212, '22 2 2 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1213, '22 2 18 2 -1 2 4 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1214, '22 2 18 2 3 -1 2 4 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1215, '22 2 18 2 22 -1 2 4 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1216, '22 2 18 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1217, '22 2 1 18 2 -1 2 4 5 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1218, '22 2 1 18 2 3 -1 2 4 5 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1219, '22 2 1 18 2 22 -1 2 4 5 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1220, '22 2 1 18 2 22 3 -1 2 4 5 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1221, '22 2 0 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1222, '22 2 0 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1223, '22 2 0 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1224, '22 2 0 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1225, '22 2 0 18 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1226, '22 2 0 18 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1227, '22 2 0 18 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1228, '22 2 0 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1229, '22 2 0 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1230, '22 2 0 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1231, '22 2 0 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1232, '22 2 0 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1233, '22 2 1 2 2 -1 2 4 5 5 5 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1234, '22 2 1 2 2 3 -1 2 4 5 5 5 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1235, '22 2 1 2 2 22 -1 2 4 5 5 5 7 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1236, '22 2 1 2 2 22 3 -1 2 4 5 5 5 7 3 -1 2 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1237, '22 2 22 2 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1238, '22 2 22 2 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1239, '22 2 22 2 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1240, '22 2 22 2 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1241, '22 2 14 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1242, '22 2 14 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1243, '22 2 14 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1244, '22 2 14 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1245, '22 2 15 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1246, '22 2 15 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1247, '22 2 15 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1248, '22 2 15 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1249, '22 2 24 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1250, '22 2 24 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1251, '22 2 24 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1252, '22 2 24 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1253, '22 2 24 24 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1254, '22 2 24 24 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1255, '22 2 24 24 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1256, '22 2 24 24 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1257, '22 2 24 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1258, '22 2 24 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1259, '22 2 24 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1260, '22 2 24 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1261, '22 2 25 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1262, '22 2 25 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1263, '22 2 25 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1264, '22 2 25 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1265, '22 2 23 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1266, '22 2 23 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1267, '22 2 23 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1268, '22 2 23 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1269, '22 2 0 13 0 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1270, '22 2 0 13 0 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1271, '22 2 0 13 0 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1272, '22 2 0 13 0 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1273, '22 2 0 25 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1274, '22 2 0 25 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1275, '22 2 0 25 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1276, '22 2 0 25 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1277, '22 2 11 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1278, '22 2 11 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1279, '22 2 11 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1280, '22 2 11 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1281, '22 2 3 0 -1 2 4 3 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1282, '22 2 3 0 3 -1 2 4 3 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1283, '22 2 3 0 22 -1 2 4 3 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1284, '22 2 3 0 22 3 -1 2 4 3 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1285, '22 2 3 1 -1 2 4 3 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1286, '22 2 3 1 3 -1 2 4 3 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1287, '22 2 3 1 22 -1 2 4 3 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1288, '22 2 3 1 22 3 -1 2 4 3 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1289, '22 2 18 13 18 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1290, '22 2 18 13 18 3 -1 2 4 5 5 3 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1291, '22 2 18 13 18 22 -1 2 4 5 5 3 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1292, '22 2 18 13 18 22 3 -1 2 4 5 5 3 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1293, '22 2 18 0 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1294, '22 2 18 0 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1295, '22 2 18 0 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1296, '22 2 18 0 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1297, '22 2 18 18 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1298, '22 2 18 18 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1299, '22 2 18 18 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1300, '22 2 18 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1301, '22 2 18 18 18 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1302, '22 2 18 18 18 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1303, '22 2 18 18 18 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1304, '22 2 18 18 18 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1305, '22 2 18 18 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1306, '22 2 18 18 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1307, '22 2 18 18 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1308, '22 2 18 18 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1309, '22 2 18 1 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1310, '22 2 18 1 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1311, '22 2 18 1 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1312, '22 2 18 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1313, '22 2 5 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1314, '22 2 5 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1315, '22 2 5 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1316, '22 2 5 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1317, '22 2 21 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1318, '22 2 21 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1319, '22 2 21 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1320, '22 2 21 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1321, '22 2 1 13 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1322, '22 2 1 13 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1323, '22 2 1 13 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1324, '22 2 1 13 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1325, '22 2 1 24 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1326, '22 2 1 24 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1327, '22 2 1 24 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1328, '22 2 1 24 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1329, '22 2 1 24 24 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1330, '22 2 1 24 24 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1331, '22 2 1 24 24 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1332, '22 2 1 24 24 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1333, '22 2 1 24 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1334, '22 2 1 24 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1335, '22 2 1 24 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1336, '22 2 1 24 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1337, '22 2 1 15 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1338, '22 2 1 15 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1339, '22 2 1 15 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1340, '22 2 1 15 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1341, '22 2 1 22 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1342, '22 2 1 22 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1343, '22 2 1 22 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1344, '22 2 1 22 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1345, '22 2 1 25 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1346, '22 2 1 25 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1347, '22 2 1 25 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1348, '22 2 1 25 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1349, '22 2 1 0 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1350, '22 2 1 0 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1351, '22 2 1 0 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1352, '22 2 1 0 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1353, '22 2 1 3 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1354, '22 2 1 3 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1355, '22 2 1 3 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1356, '22 2 1 3 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1357, '22 2 1 18 -1 2 4 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1358, '22 2 1 18 3 -1 2 4 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1359, '22 2 1 18 22 -1 2 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1360, '22 2 1 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1361, '22 2 1 18 18 1 -1 2 4 5 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1362, '22 2 1 18 18 1 3 -1 2 4 5 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1363, '22 2 1 18 18 1 22 -1 2 4 5 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1364, '22 2 1 18 18 1 22 3 -1 2 4 5 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1365, '22 2 1 18 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1366, '22 2 1 18 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1367, '22 2 1 18 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1368, '22 2 1 18 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1369, '22 2 1 2 0 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1370, '22 2 1 2 0 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1371, '22 2 1 2 0 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1372, '22 2 1 2 0 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1373, '22 2 1 2 1 -1 2 4 5 5 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1374, '22 2 1 2 1 3 -1 2 4 5 5 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1375, '22 2 1 2 1 22 -1 2 4 5 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1376, '22 2 1 2 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1377, '22 2 16 -1 2 4 5 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1378, '22 2 16 3 -1 2 4 5 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1379, '22 2 16 22 -1 2 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1380, '22 2 16 22 3 -1 2 4 5 7 3 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1381, '6 0 -1 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1382, '6 0 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1383, '6 21 -1 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1384, '6 21 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1385, '6 21 0 -1 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1386, '6 21 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1387, '6 23 -1 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1388, '6 23 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1389, '6 0 18 -1 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1390, '6 0 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1391, '6 0 0 -1 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1392, '6 0 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1393, '6 18 -1 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1394, '6 18 22 -1 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1395, '6 18 0 -1 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1396, '6 18 0 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1397, '6 18 18 -1 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1398, '6 18 18 22 -1 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1399, '6 6 0 -1 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1400, '6 6 0 22 -1 3 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1401, '6 6 21 -1 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1402, '6 6 21 22 -1 3 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1403, '6 6 21 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1404, '6 6 21 0 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1405, '6 6 23 -1 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1406, '6 6 23 22 -1 3 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1407, '6 6 0 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1408, '6 6 0 18 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1409, '6 6 0 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1410, '6 6 0 0 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1411, '6 6 18 -1 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1412, '6 6 18 22 -1 3 4 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1413, '6 6 18 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1414, '6 6 18 0 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1415, '6 6 18 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1416, '6 6 18 18 22 -1 3 4 5 5 7 -1 2 9');
+INSERT INTO pagc_rules (id, rule) VALUES (1417, '3 6 0 -1 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1418, '3 6 0 22 -1 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1419, '3 6 21 -1 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1420, '3 6 21 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1421, '3 6 21 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1422, '3 6 21 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1423, '3 6 23 -1 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1424, '3 6 23 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1425, '3 6 0 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1426, '3 6 0 18 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1427, '3 6 0 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1428, '3 6 0 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1429, '3 6 18 -1 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1430, '3 6 18 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1431, '3 6 18 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1432, '3 6 18 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1433, '3 6 18 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1434, '3 6 18 18 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1435, '3 6 6 0 -1 3 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1436, '3 6 6 0 22 -1 3 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1437, '3 6 6 21 -1 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1438, '3 6 6 21 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1439, '3 6 6 21 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1440, '3 6 6 21 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1441, '3 6 6 23 -1 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1442, '3 6 6 23 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1443, '3 6 6 0 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1444, '3 6 6 0 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1445, '3 6 6 0 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1446, '3 6 6 0 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1447, '3 6 6 18 -1 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1448, '3 6 6 18 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1449, '3 6 6 18 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1450, '3 6 6 18 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1451, '3 6 6 18 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1452, '3 6 6 18 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1453, '11 6 0 -1 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1454, '11 6 0 22 -1 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1455, '11 6 21 -1 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1456, '11 6 21 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1457, '11 6 21 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1458, '11 6 21 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1459, '11 6 23 -1 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1460, '11 6 23 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1461, '11 6 0 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1462, '11 6 0 18 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1463, '11 6 0 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1464, '11 6 0 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1465, '11 6 18 -1 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1466, '11 6 18 22 -1 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1467, '11 6 18 0 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1468, '11 6 18 0 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1469, '11 6 18 18 -1 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1470, '11 6 18 18 22 -1 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1471, '11 6 6 0 -1 3 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1472, '11 6 6 0 22 -1 3 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1473, '11 6 6 21 -1 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1474, '11 6 6 21 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1475, '11 6 6 21 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1476, '11 6 6 21 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1477, '11 6 6 23 -1 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1478, '11 6 6 23 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1479, '11 6 6 0 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1480, '11 6 6 0 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1481, '11 6 6 0 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1482, '11 6 6 0 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1483, '11 6 6 18 -1 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1484, '11 6 6 18 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1485, '11 6 6 18 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1486, '11 6 6 18 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1487, '11 6 6 18 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1488, '11 6 6 18 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1489, '3 11 6 0 -1 3 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1490, '3 11 6 0 22 -1 3 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1491, '3 11 6 21 -1 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1492, '3 11 6 21 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1493, '3 11 6 21 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1494, '3 11 6 21 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1495, '3 11 6 23 -1 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1496, '3 11 6 23 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1497, '3 11 6 0 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1498, '3 11 6 0 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1499, '3 11 6 0 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1500, '3 11 6 0 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1501, '3 11 6 18 -1 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1502, '3 11 6 18 22 -1 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1503, '3 11 6 18 0 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1504, '3 11 6 18 0 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1505, '3 11 6 18 18 -1 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1506, '3 11 6 18 18 22 -1 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1507, '3 11 6 6 0 -1 3 3 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1508, '3 11 6 6 0 22 -1 3 3 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1509, '3 11 6 6 21 -1 3 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1510, '3 11 6 6 21 22 -1 3 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1511, '3 11 6 6 21 0 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1512, '3 11 6 6 21 0 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1513, '3 11 6 6 23 -1 3 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1514, '3 11 6 6 23 22 -1 3 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1515, '3 11 6 6 0 18 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1516, '3 11 6 6 0 18 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1517, '3 11 6 6 0 0 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1518, '3 11 6 6 0 0 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1519, '3 11 6 6 18 -1 3 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1520, '3 11 6 6 18 22 -1 3 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1521, '3 11 6 6 18 0 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1522, '3 11 6 6 18 0 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1523, '3 11 6 6 18 18 -1 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1524, '3 11 6 6 18 18 22 -1 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1525, '22 6 0 -1 2 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1526, '22 6 0 22 -1 2 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1527, '22 6 21 -1 2 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1528, '22 6 21 22 -1 2 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1529, '22 6 21 0 -1 2 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1530, '22 6 21 0 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1531, '22 6 23 -1 2 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1532, '22 6 23 22 -1 2 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1533, '22 6 0 18 -1 2 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1534, '22 6 0 18 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1535, '22 6 0 0 -1 2 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1536, '22 6 0 0 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1537, '22 6 18 -1 2 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1538, '22 6 18 22 -1 2 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1539, '22 6 18 0 -1 2 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1540, '22 6 18 0 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1541, '22 6 18 18 -1 2 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1542, '22 6 18 18 22 -1 2 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1543, '22 6 6 0 -1 2 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1544, '22 6 6 0 22 -1 2 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1545, '22 6 6 21 -1 2 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1546, '22 6 6 21 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1547, '22 6 6 21 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1548, '22 6 6 21 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1549, '22 6 6 23 -1 2 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1550, '22 6 6 23 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1551, '22 6 6 0 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1552, '22 6 6 0 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1553, '22 6 6 0 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1554, '22 6 6 0 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1555, '22 6 6 18 -1 2 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1556, '22 6 6 18 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1557, '22 6 6 18 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1558, '22 6 6 18 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1559, '22 6 6 18 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1560, '22 6 6 18 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1561, '22 3 6 0 -1 2 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1562, '22 3 6 0 22 -1 2 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1563, '22 3 6 21 -1 2 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1564, '22 3 6 21 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1565, '22 3 6 21 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1566, '22 3 6 21 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1567, '22 3 6 23 -1 2 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1568, '22 3 6 23 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1569, '22 3 6 0 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1570, '22 3 6 0 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1571, '22 3 6 0 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1572, '22 3 6 0 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1573, '22 3 6 18 -1 2 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1574, '22 3 6 18 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1575, '22 3 6 18 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1576, '22 3 6 18 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1577, '22 3 6 18 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1578, '22 3 6 18 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1579, '22 3 6 6 0 -1 2 3 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1580, '22 3 6 6 0 22 -1 2 3 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1581, '22 3 6 6 21 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1582, '22 3 6 6 21 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1583, '22 3 6 6 21 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1584, '22 3 6 6 21 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1585, '22 3 6 6 23 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1586, '22 3 6 6 23 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1587, '22 3 6 6 0 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1588, '22 3 6 6 0 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1589, '22 3 6 6 0 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1590, '22 3 6 6 0 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1591, '22 3 6 6 18 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1592, '22 3 6 6 18 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1593, '22 3 6 6 18 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1594, '22 3 6 6 18 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1595, '22 3 6 6 18 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1596, '22 3 6 6 18 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1597, '22 11 6 0 -1 2 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1598, '22 11 6 0 22 -1 2 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1599, '22 11 6 21 -1 2 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1600, '22 11 6 21 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1601, '22 11 6 21 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1602, '22 11 6 21 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1603, '22 11 6 23 -1 2 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1604, '22 11 6 23 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1605, '22 11 6 0 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1606, '22 11 6 0 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1607, '22 11 6 0 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1608, '22 11 6 0 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1609, '22 11 6 18 -1 2 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1610, '22 11 6 18 22 -1 2 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1611, '22 11 6 18 0 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1612, '22 11 6 18 0 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1613, '22 11 6 18 18 -1 2 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1614, '22 11 6 18 18 22 -1 2 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1615, '22 11 6 6 0 -1 2 3 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1616, '22 11 6 6 0 22 -1 2 3 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1617, '22 11 6 6 21 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1618, '22 11 6 6 21 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1619, '22 11 6 6 21 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1620, '22 11 6 6 21 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1621, '22 11 6 6 23 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1622, '22 11 6 6 23 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1623, '22 11 6 6 0 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1624, '22 11 6 6 0 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1625, '22 11 6 6 0 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1626, '22 11 6 6 0 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1627, '22 11 6 6 18 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1628, '22 11 6 6 18 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1629, '22 11 6 6 18 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1630, '22 11 6 6 18 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1631, '22 11 6 6 18 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1632, '22 11 6 6 18 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1633, '22 3 11 6 0 -1 2 3 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1634, '22 3 11 6 0 22 -1 2 3 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1635, '22 3 11 6 21 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1636, '22 3 11 6 21 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1637, '22 3 11 6 21 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1638, '22 3 11 6 21 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1639, '22 3 11 6 23 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1640, '22 3 11 6 23 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1641, '22 3 11 6 0 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1642, '22 3 11 6 0 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1643, '22 3 11 6 0 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1644, '22 3 11 6 0 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1645, '22 3 11 6 18 -1 2 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1646, '22 3 11 6 18 22 -1 2 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1647, '22 3 11 6 18 0 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1648, '22 3 11 6 18 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1649, '22 3 11 6 18 18 -1 2 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1650, '22 3 11 6 18 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1651, '22 3 11 6 6 0 -1 2 3 3 3 4 5 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1652, '22 3 11 6 6 0 22 -1 2 3 3 3 4 5 7 -1 2 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1653, '22 3 11 6 6 21 -1 2 3 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1654, '22 3 11 6 6 21 22 -1 2 3 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1655, '22 3 11 6 6 21 0 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1656, '22 3 11 6 6 21 0 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1657, '22 3 11 6 6 23 -1 2 3 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1658, '22 3 11 6 6 23 22 -1 2 3 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1659, '22 3 11 6 6 0 18 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1660, '22 3 11 6 6 0 18 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1661, '22 3 11 6 6 0 0 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1662, '22 3 11 6 6 0 0 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1663, '22 3 11 6 6 18 -1 2 3 3 3 4 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1664, '22 3 11 6 6 18 22 -1 2 3 3 3 4 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1665, '22 3 11 6 6 18 0 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1666, '22 3 11 6 6 18 0 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1667, '22 3 11 6 6 18 18 -1 2 3 3 3 4 5 5 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1668, '22 3 11 6 6 18 18 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1669, '0 1 -1 1 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1670, '0 1 22 -1 1 5 7 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1671, '0 1 2 -1 1 5 6 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1672, '0 1 2 22 -1 1 5 6 7 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1673, '0 5 -1 1 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1674, '0 5 22 -1 1 5 7 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1675, '0 5 2 -1 1 5 6 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1676, '0 5 2 22 -1 1 5 6 7 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1677, '0 2 1 -1 1 4 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1678, '0 2 1 22 -1 1 4 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1679, '0 2 5 -1 1 4 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1680, '0 2 5 22 -1 1 4 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1681, '0 22 1 -1 1 2 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1682, '0 22 1 2 -1 1 2 5 6 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1683, '0 22 5 -1 1 2 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1684, '0 22 5 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1685, '0 22 2 1 -1 1 2 4 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1686, '0 22 2 5 -1 1 2 4 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1687, '0 18 1 -1 1 1 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1688, '0 18 1 22 -1 1 1 5 7 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1689, '0 18 1 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1690, '0 18 1 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1691, '0 18 5 -1 1 1 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1692, '0 18 5 22 -1 1 1 5 7 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1693, '0 18 5 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1694, '0 18 5 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1695, '0 18 2 1 -1 1 1 4 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1696, '0 18 2 1 22 -1 1 1 4 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1697, '0 18 2 5 -1 1 1 4 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1698, '0 18 2 5 22 -1 1 1 4 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1699, '0 18 22 1 -1 1 1 2 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1700, '0 18 22 1 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1701, '0 18 22 5 -1 1 1 2 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1702, '0 18 22 5 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1703, '0 18 22 2 1 -1 1 1 2 4 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1704, '0 18 22 2 5 -1 1 1 2 4 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1705, '0 25 1 -1 1 1 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1706, '0 25 1 22 -1 1 1 5 7 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1707, '0 25 1 2 -1 1 1 5 6 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1708, '0 25 1 2 22 -1 1 1 5 6 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1709, '0 25 5 -1 1 1 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1710, '0 25 5 22 -1 1 1 5 7 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1711, '0 25 5 2 -1 1 1 5 6 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1712, '0 25 5 2 22 -1 1 1 5 6 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1713, '0 25 2 1 -1 1 1 4 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1714, '0 25 2 1 22 -1 1 1 4 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1715, '0 25 2 5 -1 1 1 4 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1716, '0 25 2 5 22 -1 1 1 4 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1717, '0 25 22 1 -1 1 1 2 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1718, '0 25 22 1 2 -1 1 1 2 5 6 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1719, '0 25 22 5 -1 1 1 2 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1720, '0 25 22 5 2 -1 1 1 2 5 6 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1721, '0 25 22 2 1 -1 1 1 2 4 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1722, '0 25 22 2 5 -1 1 1 2 4 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1723, '25 1 -1 1 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1724, '25 1 22 -1 1 5 7 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1725, '25 1 2 -1 1 5 6 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1726, '25 1 2 22 -1 1 5 6 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1727, '25 5 -1 1 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1728, '25 5 22 -1 1 5 7 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1729, '25 5 2 -1 1 5 6 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1730, '25 5 2 22 -1 1 5 6 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1731, '25 2 1 -1 1 4 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1732, '25 2 1 22 -1 1 4 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1733, '25 2 5 -1 1 4 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1734, '25 2 5 22 -1 1 4 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1735, '25 22 1 -1 1 2 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1736, '25 22 1 2 -1 1 2 5 6 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1737, '25 22 5 -1 1 2 5 -1 1 7');
+INSERT INTO pagc_rules (id, rule) VALUES (1738, '25 22 5 2 -1 1 2 5 6 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1739, '25 22 2 1 -1 1 2 4 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1740, '25 22 2 5 -1 1 2 4 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1741, '0 0 -1 1 5 -1 1 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1742, '0 0 22 -1 1 5 7 -1 1 4');
+INSERT INTO pagc_rules (id, rule) VALUES (1743, '0 0 2 -1 1 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1744, '0 0 2 22 -1 1 5 6 7 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1745, '0 18 -1 1 5 -1 1 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1746, '0 18 22 -1 1 5 7 -1 1 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1747, '0 18 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1748, '0 18 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1749, '0 2 0 -1 1 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1750, '0 2 0 22 -1 1 4 5 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1751, '0 2 18 -1 1 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1752, '0 2 18 22 -1 1 4 5 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1753, '0 22 0 -1 1 2 5 -1 1 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1754, '0 22 0 22 -1 1 2 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1755, '0 22 0 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1756, '0 22 0 2 22 -1 1 2 5 6 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1757, '0 22 18 -1 1 2 5 -1 1 6');
+INSERT INTO pagc_rules (id, rule) VALUES (1758, '0 22 18 22 -1 1 2 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1759, '0 22 18 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1760, '0 22 18 2 22 -1 1 2 5 6 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1761, '0 22 2 0 -1 1 2 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1762, '0 22 2 0 22 -1 1 2 4 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1763, '0 22 2 18 -1 1 2 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1764, '0 22 2 18 22 -1 1 2 4 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1765, '0 18 0 -1 1 1 5 -1 1 3');
+INSERT INTO pagc_rules (id, rule) VALUES (1766, '0 18 0 22 -1 1 1 5 7 -1 1 3');
+INSERT INTO pagc_rules (id, rule) VALUES (1767, '0 18 0 2 -1 1 1 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1768, '0 18 0 2 22 -1 1 1 5 6 7 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1769, '0 18 18 -1 1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1770, '0 18 18 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1771, '0 18 18 2 -1 1 1 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1772, '0 18 18 2 22 -1 1 1 5 6 7 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1773, '0 18 2 0 -1 1 1 4 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1774, '0 18 2 0 22 -1 1 1 4 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (1775, '0 18 2 18 -1 1 1 4 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1776, '0 18 2 18 22 -1 1 1 4 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (1777, '0 18 22 0 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1778, '0 18 22 0 2 -1 1 1 2 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1779, '0 18 22 18 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1780, '0 18 22 18 2 -1 1 1 2 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1781, '0 18 22 2 0 -1 1 1 2 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1782, '0 18 22 2 18 -1 1 1 2 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1783, '0 25 0 -1 1 1 5 -1 1 3');
+INSERT INTO pagc_rules (id, rule) VALUES (1784, '0 25 0 22 -1 1 1 5 7 -1 1 3');
+INSERT INTO pagc_rules (id, rule) VALUES (1785, '0 25 0 2 -1 1 1 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1786, '0 25 0 2 22 -1 1 1 5 6 7 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1787, '0 25 18 -1 1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1788, '0 25 18 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1789, '0 25 18 2 -1 1 1 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1790, '0 25 18 2 22 -1 1 1 5 6 7 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1791, '0 25 2 0 -1 1 1 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1792, '0 25 2 0 22 -1 1 1 4 5 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1793, '0 25 2 18 -1 1 1 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1794, '0 25 2 18 22 -1 1 1 4 5 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1795, '0 25 22 0 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1796, '0 25 22 0 2 -1 1 1 2 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1797, '0 25 22 18 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1798, '0 25 22 18 2 -1 1 1 2 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1799, '0 25 22 2 0 -1 1 1 2 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1800, '0 25 22 2 18 -1 1 1 2 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1801, '25 0 -1 1 5 -1 1 3');
+INSERT INTO pagc_rules (id, rule) VALUES (1802, '25 0 22 -1 1 5 7 -1 1 3');
+INSERT INTO pagc_rules (id, rule) VALUES (1803, '25 0 2 -1 1 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1804, '25 0 2 22 -1 1 5 6 7 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1805, '25 18 -1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1806, '25 18 22 -1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1807, '25 18 2 -1 1 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1808, '25 18 2 22 -1 1 5 6 7 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1809, '25 2 0 -1 1 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1810, '25 2 0 22 -1 1 4 5 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1811, '25 2 18 -1 1 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1812, '25 2 18 22 -1 1 4 5 7 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1813, '25 22 0 -1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1814, '25 22 0 2 -1 1 2 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1815, '25 22 18 -1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (1816, '25 22 18 2 -1 1 2 5 6 -1 1 15');
+INSERT INTO pagc_rules (id, rule) VALUES (1817, '25 22 2 0 -1 1 2 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1818, '25 22 2 18 -1 1 2 4 5 -1 1 14');
+INSERT INTO pagc_rules (id, rule) VALUES (1819, '0 6 0 -1 1 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1820, '0 6 0 22 -1 1 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1821, '0 6 21 -1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1822, '0 6 21 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1823, '0 6 21 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1824, '0 6 21 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1825, '0 6 23 -1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1826, '0 6 23 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1827, '0 6 0 18 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1828, '0 6 0 18 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1829, '0 6 0 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1830, '0 6 0 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1831, '0 6 18 -1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1832, '0 6 18 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1833, '0 6 18 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1834, '0 6 18 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1835, '0 6 18 18 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1836, '0 6 18 18 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1837, '0 6 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1838, '0 6 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1839, '0 6 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1840, '0 6 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1841, '0 6 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1842, '0 6 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1843, '0 6 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1844, '0 6 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1845, '0 6 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1846, '0 6 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1847, '0 6 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1848, '0 6 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1849, '0 6 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1850, '0 6 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1851, '0 6 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1852, '0 6 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1853, '0 6 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1854, '0 6 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1855, '0 3 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1856, '0 3 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1857, '0 3 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1858, '0 3 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1859, '0 3 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1860, '0 3 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1861, '0 3 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1862, '0 3 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1863, '0 3 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1864, '0 3 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1865, '0 3 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1866, '0 3 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1867, '0 3 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1868, '0 3 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1869, '0 3 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1870, '0 3 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1871, '0 3 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1872, '0 3 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1873, '0 3 6 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1874, '0 3 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1875, '0 3 6 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1876, '0 3 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1877, '0 3 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1878, '0 3 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1879, '0 3 6 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1880, '0 3 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1881, '0 3 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1882, '0 3 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1883, '0 3 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1884, '0 3 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1885, '0 3 6 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1886, '0 3 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1887, '0 3 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1888, '0 3 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1889, '0 3 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1890, '0 3 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1891, '0 11 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1892, '0 11 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1893, '0 11 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1894, '0 11 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1895, '0 11 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1896, '0 11 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1897, '0 11 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1898, '0 11 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1899, '0 11 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1900, '0 11 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1901, '0 11 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1902, '0 11 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1903, '0 11 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1904, '0 11 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1905, '0 11 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1906, '0 11 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1907, '0 11 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1908, '0 11 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1909, '0 11 6 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1910, '0 11 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1911, '0 11 6 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1912, '0 11 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1913, '0 11 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1914, '0 11 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1915, '0 11 6 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1916, '0 11 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1917, '0 11 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1918, '0 11 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1919, '0 11 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1920, '0 11 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1921, '0 11 6 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1922, '0 11 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1923, '0 11 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1924, '0 11 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1925, '0 11 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1926, '0 11 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1927, '0 3 11 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1928, '0 3 11 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1929, '0 3 11 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1930, '0 3 11 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1931, '0 3 11 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1932, '0 3 11 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1933, '0 3 11 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1934, '0 3 11 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1935, '0 3 11 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1936, '0 3 11 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1937, '0 3 11 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1938, '0 3 11 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1939, '0 3 11 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1940, '0 3 11 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1941, '0 3 11 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1942, '0 3 11 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1943, '0 3 11 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1944, '0 3 11 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1945, '0 3 11 6 6 0 -1 1 3 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1946, '0 3 11 6 6 0 22 -1 1 3 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (1947, '0 3 11 6 6 21 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1948, '0 3 11 6 6 21 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1949, '0 3 11 6 6 21 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1950, '0 3 11 6 6 21 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1951, '0 3 11 6 6 23 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1952, '0 3 11 6 6 23 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1953, '0 3 11 6 6 0 18 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1954, '0 3 11 6 6 0 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1955, '0 3 11 6 6 0 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1956, '0 3 11 6 6 0 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1957, '0 3 11 6 6 18 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1958, '0 3 11 6 6 18 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1959, '0 3 11 6 6 18 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1960, '0 3 11 6 6 18 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1961, '0 3 11 6 6 18 18 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1962, '0 3 11 6 6 18 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1963, '0 22 6 0 -1 1 2 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1964, '0 22 6 21 -1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1965, '0 22 6 21 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1966, '0 22 6 23 -1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1967, '0 22 6 0 18 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1968, '0 22 6 0 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1969, '0 22 6 18 -1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1970, '0 22 6 18 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1971, '0 22 6 18 18 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1972, '0 22 6 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1973, '0 22 6 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1974, '0 22 6 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1975, '0 22 6 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1976, '0 22 6 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1977, '0 22 6 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1978, '0 22 6 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1979, '0 22 6 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1980, '0 22 6 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1981, '0 22 3 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1982, '0 22 3 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1983, '0 22 3 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1984, '0 22 3 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1985, '0 22 3 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1986, '0 22 3 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1987, '0 22 3 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1988, '0 22 3 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1989, '0 22 3 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1990, '0 22 3 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (1991, '0 22 3 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1992, '0 22 3 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1993, '0 22 3 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1994, '0 22 3 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1995, '0 22 3 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1996, '0 22 3 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1997, '0 22 3 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1998, '0 22 3 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (1999, '0 22 11 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2000, '0 22 11 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2001, '0 22 11 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2002, '0 22 11 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2003, '0 22 11 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2004, '0 22 11 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2005, '0 22 11 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2006, '0 22 11 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2007, '0 22 11 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2008, '0 22 11 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2009, '0 22 11 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2010, '0 22 11 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2011, '0 22 11 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2012, '0 22 11 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2013, '0 22 11 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2014, '0 22 11 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2015, '0 22 11 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2016, '0 22 11 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2017, '0 22 3 11 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2018, '0 22 3 11 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2019, '0 22 3 11 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2020, '0 22 3 11 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2021, '0 22 3 11 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2022, '0 22 3 11 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2023, '0 22 3 11 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2024, '0 22 3 11 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2025, '0 22 3 11 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2026, '0 22 3 11 6 6 0 -1 1 2 3 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2027, '0 22 3 11 6 6 21 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2028, '0 22 3 11 6 6 21 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2029, '0 22 3 11 6 6 23 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2030, '0 22 3 11 6 6 0 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2031, '0 22 3 11 6 6 0 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2032, '0 22 3 11 6 6 18 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2033, '0 22 3 11 6 6 18 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2034, '0 22 3 11 6 6 18 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2035, '0 18 6 0 -1 1 1 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2036, '0 18 6 0 22 -1 1 1 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2037, '0 18 6 21 -1 1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2038, '0 18 6 21 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2039, '0 18 6 21 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2040, '0 18 6 21 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2041, '0 18 6 23 -1 1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2042, '0 18 6 23 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2043, '0 18 6 0 18 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2044, '0 18 6 0 18 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2045, '0 18 6 0 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2046, '0 18 6 0 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2047, '0 18 6 18 -1 1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2048, '0 18 6 18 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2049, '0 18 6 18 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2050, '0 18 6 18 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2051, '0 18 6 18 18 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2052, '0 18 6 18 18 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2053, '0 18 6 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2054, '0 18 6 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2055, '0 18 6 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2056, '0 18 6 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2057, '0 18 6 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2058, '0 18 6 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2059, '0 18 6 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2060, '0 18 6 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2061, '0 18 6 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2062, '0 18 6 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2063, '0 18 6 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2064, '0 18 6 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2065, '0 18 6 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2066, '0 18 6 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2067, '0 18 6 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2068, '0 18 6 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2069, '0 18 6 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2070, '0 18 6 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2071, '0 18 3 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2072, '0 18 3 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2073, '0 18 3 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2074, '0 18 3 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2075, '0 18 3 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2076, '0 18 3 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2077, '0 18 3 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2078, '0 18 3 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2079, '0 18 3 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2080, '0 18 3 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2081, '0 18 3 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2082, '0 18 3 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2083, '0 18 3 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2084, '0 18 3 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2085, '0 18 3 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2086, '0 18 3 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2087, '0 18 3 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2088, '0 18 3 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2089, '0 18 3 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2090, '0 18 3 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2091, '0 18 3 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2092, '0 18 3 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2093, '0 18 3 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2094, '0 18 3 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2095, '0 18 3 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2096, '0 18 3 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2097, '0 18 3 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2098, '0 18 3 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2099, '0 18 3 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2100, '0 18 3 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2101, '0 18 3 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2102, '0 18 3 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2103, '0 18 3 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2104, '0 18 3 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2105, '0 18 3 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2106, '0 18 3 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2107, '0 18 11 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2108, '0 18 11 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2109, '0 18 11 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2110, '0 18 11 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2111, '0 18 11 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2112, '0 18 11 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2113, '0 18 11 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2114, '0 18 11 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2115, '0 18 11 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2116, '0 18 11 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2117, '0 18 11 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2118, '0 18 11 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2119, '0 18 11 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2120, '0 18 11 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2121, '0 18 11 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2122, '0 18 11 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2123, '0 18 11 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2124, '0 18 11 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2125, '0 18 11 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2126, '0 18 11 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2127, '0 18 11 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2128, '0 18 11 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2129, '0 18 11 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2130, '0 18 11 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2131, '0 18 11 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2132, '0 18 11 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2133, '0 18 11 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2134, '0 18 11 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2135, '0 18 11 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2136, '0 18 11 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2137, '0 18 11 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2138, '0 18 11 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2139, '0 18 11 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2140, '0 18 11 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2141, '0 18 11 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2142, '0 18 11 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2143, '0 18 3 11 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2144, '0 18 3 11 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2145, '0 18 3 11 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2146, '0 18 3 11 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2147, '0 18 3 11 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2148, '0 18 3 11 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2149, '0 18 3 11 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2150, '0 18 3 11 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2151, '0 18 3 11 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2152, '0 18 3 11 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2153, '0 18 3 11 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2154, '0 18 3 11 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2155, '0 18 3 11 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2156, '0 18 3 11 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2157, '0 18 3 11 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2158, '0 18 3 11 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2159, '0 18 3 11 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2160, '0 18 3 11 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2161, '0 18 3 11 6 6 0 -1 1 1 3 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2162, '0 18 3 11 6 6 0 22 -1 1 1 3 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2163, '0 18 3 11 6 6 21 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2164, '0 18 3 11 6 6 21 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2165, '0 18 3 11 6 6 21 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2166, '0 18 3 11 6 6 21 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2167, '0 18 3 11 6 6 23 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2168, '0 18 3 11 6 6 23 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2169, '0 18 3 11 6 6 0 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2170, '0 18 3 11 6 6 0 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2171, '0 18 3 11 6 6 0 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2172, '0 18 3 11 6 6 0 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2173, '0 18 3 11 6 6 18 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2174, '0 18 3 11 6 6 18 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2175, '0 18 3 11 6 6 18 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2176, '0 18 3 11 6 6 18 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2177, '0 18 3 11 6 6 18 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2178, '0 18 3 11 6 6 18 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2179, '0 18 22 6 0 -1 1 1 2 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2180, '0 18 22 6 21 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2181, '0 18 22 6 21 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2182, '0 18 22 6 23 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2183, '0 18 22 6 0 18 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2184, '0 18 22 6 0 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2185, '0 18 22 6 18 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2186, '0 18 22 6 18 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2187, '0 18 22 6 18 18 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2188, '0 18 22 6 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2189, '0 18 22 6 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2190, '0 18 22 6 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2191, '0 18 22 6 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2192, '0 18 22 6 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2193, '0 18 22 6 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2194, '0 18 22 6 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2195, '0 18 22 6 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2196, '0 18 22 6 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2197, '0 18 22 3 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2198, '0 18 22 3 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2199, '0 18 22 3 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2200, '0 18 22 3 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2201, '0 18 22 3 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2202, '0 18 22 3 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2203, '0 18 22 3 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2204, '0 18 22 3 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2205, '0 18 22 3 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2206, '0 18 22 3 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2207, '0 18 22 3 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2208, '0 18 22 3 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2209, '0 18 22 3 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2210, '0 18 22 3 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2211, '0 18 22 3 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2212, '0 18 22 3 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2213, '0 18 22 3 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2214, '0 18 22 3 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2215, '0 18 22 11 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2216, '0 18 22 11 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2217, '0 18 22 11 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2218, '0 18 22 11 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2219, '0 18 22 11 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2220, '0 18 22 11 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2221, '0 18 22 11 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2222, '0 18 22 11 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2223, '0 18 22 11 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2224, '0 18 22 11 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2225, '0 18 22 11 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2226, '0 18 22 11 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2227, '0 18 22 11 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2228, '0 18 22 11 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2229, '0 18 22 11 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2230, '0 18 22 11 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2231, '0 18 22 11 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2232, '0 18 22 11 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2233, '0 18 22 3 11 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2234, '0 18 22 3 11 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2235, '0 18 22 3 11 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2236, '0 18 22 3 11 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2237, '0 18 22 3 11 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2238, '0 18 22 3 11 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2239, '0 18 22 3 11 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2240, '0 18 22 3 11 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2241, '0 18 22 3 11 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2242, '0 18 22 3 11 6 6 0 -1 1 1 2 3 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2243, '0 18 22 3 11 6 6 21 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2244, '0 18 22 3 11 6 6 21 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2245, '0 18 22 3 11 6 6 23 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2246, '0 18 22 3 11 6 6 0 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2247, '0 18 22 3 11 6 6 0 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2248, '0 18 22 3 11 6 6 18 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2249, '0 18 22 3 11 6 6 18 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2250, '0 18 22 3 11 6 6 18 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2251, '0 25 6 0 -1 1 1 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2252, '0 25 6 0 22 -1 1 1 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2253, '0 25 6 21 -1 1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2254, '0 25 6 21 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2255, '0 25 6 21 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2256, '0 25 6 21 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2257, '0 25 6 23 -1 1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2258, '0 25 6 23 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2259, '0 25 6 0 18 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2260, '0 25 6 0 18 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2261, '0 25 6 0 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2262, '0 25 6 0 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2263, '0 25 6 18 -1 1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2264, '0 25 6 18 22 -1 1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2265, '0 25 6 18 0 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2266, '0 25 6 18 0 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2267, '0 25 6 18 18 -1 1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2268, '0 25 6 18 18 22 -1 1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2269, '0 25 6 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2270, '0 25 6 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2271, '0 25 6 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2272, '0 25 6 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2273, '0 25 6 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2274, '0 25 6 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2275, '0 25 6 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2276, '0 25 6 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2277, '0 25 6 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2278, '0 25 6 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2279, '0 25 6 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2280, '0 25 6 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2281, '0 25 6 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2282, '0 25 6 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2283, '0 25 6 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2284, '0 25 6 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2285, '0 25 6 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2286, '0 25 6 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2287, '0 25 3 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2288, '0 25 3 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2289, '0 25 3 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2290, '0 25 3 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2291, '0 25 3 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2292, '0 25 3 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2293, '0 25 3 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2294, '0 25 3 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2295, '0 25 3 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2296, '0 25 3 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2297, '0 25 3 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2298, '0 25 3 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2299, '0 25 3 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2300, '0 25 3 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2301, '0 25 3 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2302, '0 25 3 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2303, '0 25 3 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2304, '0 25 3 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2305, '0 25 3 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2306, '0 25 3 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2307, '0 25 3 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2308, '0 25 3 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2309, '0 25 3 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2310, '0 25 3 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2311, '0 25 3 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2312, '0 25 3 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2313, '0 25 3 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2314, '0 25 3 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2315, '0 25 3 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2316, '0 25 3 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2317, '0 25 3 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2318, '0 25 3 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2319, '0 25 3 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2320, '0 25 3 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2321, '0 25 3 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2322, '0 25 3 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2323, '0 25 11 6 0 -1 1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2324, '0 25 11 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2325, '0 25 11 6 21 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2326, '0 25 11 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2327, '0 25 11 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2328, '0 25 11 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2329, '0 25 11 6 23 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2330, '0 25 11 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2331, '0 25 11 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2332, '0 25 11 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2333, '0 25 11 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2334, '0 25 11 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2335, '0 25 11 6 18 -1 1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2336, '0 25 11 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2337, '0 25 11 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2338, '0 25 11 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2339, '0 25 11 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2340, '0 25 11 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2341, '0 25 11 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2342, '0 25 11 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2343, '0 25 11 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2344, '0 25 11 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2345, '0 25 11 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2346, '0 25 11 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2347, '0 25 11 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2348, '0 25 11 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2349, '0 25 11 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2350, '0 25 11 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2351, '0 25 11 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2352, '0 25 11 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2353, '0 25 11 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2354, '0 25 11 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2355, '0 25 11 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2356, '0 25 11 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2357, '0 25 11 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2358, '0 25 11 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2359, '0 25 3 11 6 0 -1 1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2360, '0 25 3 11 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2361, '0 25 3 11 6 21 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2362, '0 25 3 11 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2363, '0 25 3 11 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2364, '0 25 3 11 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2365, '0 25 3 11 6 23 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2366, '0 25 3 11 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2367, '0 25 3 11 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2368, '0 25 3 11 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2369, '0 25 3 11 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2370, '0 25 3 11 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2371, '0 25 3 11 6 18 -1 1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2372, '0 25 3 11 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2373, '0 25 3 11 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2374, '0 25 3 11 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2375, '0 25 3 11 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2376, '0 25 3 11 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2377, '0 25 3 11 6 6 0 -1 1 1 3 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2378, '0 25 3 11 6 6 0 22 -1 1 1 3 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2379, '0 25 3 11 6 6 21 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2380, '0 25 3 11 6 6 21 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2381, '0 25 3 11 6 6 21 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2382, '0 25 3 11 6 6 21 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2383, '0 25 3 11 6 6 23 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2384, '0 25 3 11 6 6 23 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2385, '0 25 3 11 6 6 0 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2386, '0 25 3 11 6 6 0 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2387, '0 25 3 11 6 6 0 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2388, '0 25 3 11 6 6 0 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2389, '0 25 3 11 6 6 18 -1 1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2390, '0 25 3 11 6 6 18 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2391, '0 25 3 11 6 6 18 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2392, '0 25 3 11 6 6 18 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2393, '0 25 3 11 6 6 18 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2394, '0 25 3 11 6 6 18 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2395, '0 25 22 6 0 -1 1 1 2 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2396, '0 25 22 6 21 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2397, '0 25 22 6 21 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2398, '0 25 22 6 23 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2399, '0 25 22 6 0 18 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2400, '0 25 22 6 0 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2401, '0 25 22 6 18 -1 1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2402, '0 25 22 6 18 0 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2403, '0 25 22 6 18 18 -1 1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2404, '0 25 22 6 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2405, '0 25 22 6 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2406, '0 25 22 6 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2407, '0 25 22 6 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2408, '0 25 22 6 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2409, '0 25 22 6 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2410, '0 25 22 6 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2411, '0 25 22 6 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2412, '0 25 22 6 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2413, '0 25 22 3 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2414, '0 25 22 3 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2415, '0 25 22 3 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2416, '0 25 22 3 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2417, '0 25 22 3 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2418, '0 25 22 3 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2419, '0 25 22 3 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2420, '0 25 22 3 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2421, '0 25 22 3 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2422, '0 25 22 3 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2423, '0 25 22 3 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2424, '0 25 22 3 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2425, '0 25 22 3 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2426, '0 25 22 3 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2427, '0 25 22 3 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2428, '0 25 22 3 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2429, '0 25 22 3 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2430, '0 25 22 3 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2431, '0 25 22 11 6 0 -1 1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2432, '0 25 22 11 6 21 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2433, '0 25 22 11 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2434, '0 25 22 11 6 23 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2435, '0 25 22 11 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2436, '0 25 22 11 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2437, '0 25 22 11 6 18 -1 1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2438, '0 25 22 11 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2439, '0 25 22 11 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2440, '0 25 22 11 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2441, '0 25 22 11 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2442, '0 25 22 11 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2443, '0 25 22 11 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2444, '0 25 22 11 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2445, '0 25 22 11 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2446, '0 25 22 11 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2447, '0 25 22 11 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2448, '0 25 22 11 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2449, '0 25 22 3 11 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2450, '0 25 22 3 11 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2451, '0 25 22 3 11 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2452, '0 25 22 3 11 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2453, '0 25 22 3 11 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2454, '0 25 22 3 11 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2455, '0 25 22 3 11 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2456, '0 25 22 3 11 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2457, '0 25 22 3 11 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2458, '0 25 22 3 11 6 6 0 -1 1 1 2 3 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2459, '0 25 22 3 11 6 6 21 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2460, '0 25 22 3 11 6 6 21 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2461, '0 25 22 3 11 6 6 23 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2462, '0 25 22 3 11 6 6 0 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2463, '0 25 22 3 11 6 6 0 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2464, '0 25 22 3 11 6 6 18 -1 1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2465, '0 25 22 3 11 6 6 18 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2466, '0 25 22 3 11 6 6 18 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2467, '25 6 0 -1 1 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2468, '25 6 0 22 -1 1 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2469, '25 6 21 -1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2470, '25 6 21 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2471, '25 6 21 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2472, '25 6 21 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2473, '25 6 23 -1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2474, '25 6 23 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2475, '25 6 0 18 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2476, '25 6 0 18 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2477, '25 6 0 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2478, '25 6 0 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2479, '25 6 18 -1 1 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2480, '25 6 18 22 -1 1 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2481, '25 6 18 0 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2482, '25 6 18 0 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2483, '25 6 18 18 -1 1 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2484, '25 6 18 18 22 -1 1 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2485, '25 6 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2486, '25 6 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2487, '25 6 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2488, '25 6 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2489, '25 6 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2490, '25 6 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2491, '25 6 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2492, '25 6 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2493, '25 6 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2494, '25 6 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2495, '25 6 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2496, '25 6 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2497, '25 6 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2498, '25 6 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2499, '25 6 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2500, '25 6 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2501, '25 6 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2502, '25 6 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2503, '25 3 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2504, '25 3 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2505, '25 3 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2506, '25 3 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2507, '25 3 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2508, '25 3 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2509, '25 3 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2510, '25 3 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2511, '25 3 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2512, '25 3 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2513, '25 3 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2514, '25 3 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2515, '25 3 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2516, '25 3 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2517, '25 3 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2518, '25 3 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2519, '25 3 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2520, '25 3 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2521, '25 3 6 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2522, '25 3 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2523, '25 3 6 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2524, '25 3 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2525, '25 3 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2526, '25 3 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2527, '25 3 6 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2528, '25 3 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2529, '25 3 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2530, '25 3 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2531, '25 3 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2532, '25 3 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2533, '25 3 6 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2534, '25 3 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2535, '25 3 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2536, '25 3 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2537, '25 3 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2538, '25 3 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2539, '25 11 6 0 -1 1 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2540, '25 11 6 0 22 -1 1 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2541, '25 11 6 21 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2542, '25 11 6 21 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2543, '25 11 6 21 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2544, '25 11 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2545, '25 11 6 23 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2546, '25 11 6 23 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2547, '25 11 6 0 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2548, '25 11 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2549, '25 11 6 0 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2550, '25 11 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2551, '25 11 6 18 -1 1 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2552, '25 11 6 18 22 -1 1 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2553, '25 11 6 18 0 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2554, '25 11 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2555, '25 11 6 18 18 -1 1 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2556, '25 11 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2557, '25 11 6 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2558, '25 11 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2559, '25 11 6 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2560, '25 11 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2561, '25 11 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2562, '25 11 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2563, '25 11 6 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2564, '25 11 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2565, '25 11 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2566, '25 11 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2567, '25 11 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2568, '25 11 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2569, '25 11 6 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2570, '25 11 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2571, '25 11 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2572, '25 11 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2573, '25 11 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2574, '25 11 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2575, '25 3 11 6 0 -1 1 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2576, '25 3 11 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2577, '25 3 11 6 21 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2578, '25 3 11 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2579, '25 3 11 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2580, '25 3 11 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2581, '25 3 11 6 23 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2582, '25 3 11 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2583, '25 3 11 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2584, '25 3 11 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2585, '25 3 11 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2586, '25 3 11 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2587, '25 3 11 6 18 -1 1 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2588, '25 3 11 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2589, '25 3 11 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2590, '25 3 11 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2591, '25 3 11 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2592, '25 3 11 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2593, '25 3 11 6 6 0 -1 1 3 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2594, '25 3 11 6 6 0 22 -1 1 3 3 3 4 5 7 -1 1 12');
+INSERT INTO pagc_rules (id, rule) VALUES (2595, '25 3 11 6 6 21 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2596, '25 3 11 6 6 21 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2597, '25 3 11 6 6 21 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2598, '25 3 11 6 6 21 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2599, '25 3 11 6 6 23 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2600, '25 3 11 6 6 23 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2601, '25 3 11 6 6 0 18 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2602, '25 3 11 6 6 0 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2603, '25 3 11 6 6 0 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2604, '25 3 11 6 6 0 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2605, '25 3 11 6 6 18 -1 1 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2606, '25 3 11 6 6 18 22 -1 1 3 3 3 4 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2607, '25 3 11 6 6 18 0 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2608, '25 3 11 6 6 18 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2609, '25 3 11 6 6 18 18 -1 1 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2610, '25 3 11 6 6 18 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2611, '25 22 6 0 -1 1 2 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2612, '25 22 6 21 -1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2613, '25 22 6 21 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2614, '25 22 6 23 -1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2615, '25 22 6 0 18 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2616, '25 22 6 0 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2617, '25 22 6 18 -1 1 2 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2618, '25 22 6 18 0 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2619, '25 22 6 18 18 -1 1 2 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2620, '25 22 6 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2621, '25 22 6 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2622, '25 22 6 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2623, '25 22 6 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2624, '25 22 6 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2625, '25 22 6 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2626, '25 22 6 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2627, '25 22 6 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2628, '25 22 6 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2629, '25 22 3 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2630, '25 22 3 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2631, '25 22 3 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2632, '25 22 3 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2633, '25 22 3 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2634, '25 22 3 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2635, '25 22 3 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2636, '25 22 3 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2637, '25 22 3 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2638, '25 22 3 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2639, '25 22 3 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2640, '25 22 3 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2641, '25 22 3 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2642, '25 22 3 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2643, '25 22 3 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2644, '25 22 3 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2645, '25 22 3 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2646, '25 22 3 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2647, '25 22 11 6 0 -1 1 2 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2648, '25 22 11 6 21 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2649, '25 22 11 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2650, '25 22 11 6 23 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2651, '25 22 11 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2652, '25 22 11 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2653, '25 22 11 6 18 -1 1 2 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2654, '25 22 11 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2655, '25 22 11 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2656, '25 22 11 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2657, '25 22 11 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2658, '25 22 11 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2659, '25 22 11 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2660, '25 22 11 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2661, '25 22 11 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2662, '25 22 11 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2663, '25 22 11 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2664, '25 22 11 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2665, '25 22 3 11 6 0 -1 1 2 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2666, '25 22 3 11 6 21 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2667, '25 22 3 11 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2668, '25 22 3 11 6 23 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2669, '25 22 3 11 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2670, '25 22 3 11 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2671, '25 22 3 11 6 18 -1 1 2 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2672, '25 22 3 11 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2673, '25 22 3 11 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2674, '25 22 3 11 6 6 0 -1 1 2 3 3 3 4 5 -1 1 17');
+INSERT INTO pagc_rules (id, rule) VALUES (2675, '25 22 3 11 6 6 21 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2676, '25 22 3 11 6 6 21 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2677, '25 22 3 11 6 6 23 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2678, '25 22 3 11 6 6 0 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2679, '25 22 3 11 6 6 0 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2680, '25 22 3 11 6 6 18 -1 1 2 3 3 3 4 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2681, '25 22 3 11 6 6 18 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2682, '25 22 3 11 6 6 18 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2683, '0 22 -1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2684, '0 22 22 -1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2685, '0 22 1 -1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2686, '0 22 1 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2687, '0 15 -1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2688, '0 15 22 -1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2689, '0 18 18 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2690, '0 18 18 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2691, '0 18 1 -1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2692, '0 18 1 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2693, '0 2 -1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2694, '0 2 22 -1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2695, '0 1 13 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2696, '0 1 13 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2697, '0 1 18 -1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2698, '0 1 18 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2699, '0 1 18 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2700, '0 1 18 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2701, '0 22 22 -1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2702, '0 22 22 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2703, '0 22 22 1 -1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2704, '0 22 22 1 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2705, '0 22 15 -1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2706, '0 22 15 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2707, '0 22 18 18 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2708, '0 22 18 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2709, '0 22 18 1 -1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2710, '0 22 18 1 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2711, '0 22 2 -1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2712, '0 22 2 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2713, '0 22 1 13 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2714, '0 22 1 13 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2715, '0 22 1 18 -1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2716, '0 22 1 18 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2717, '0 22 1 18 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2718, '0 22 1 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2719, '0 18 22 -1 1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2720, '0 18 22 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2721, '0 18 22 1 -1 1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2722, '0 18 22 1 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2723, '0 18 15 -1 1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2724, '0 18 15 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2725, '0 18 18 18 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2726, '0 18 18 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2727, '0 18 18 1 -1 1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2728, '0 18 18 1 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2729, '0 18 2 -1 1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2730, '0 18 2 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2731, '0 18 1 13 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2732, '0 18 1 13 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2733, '0 18 1 18 -1 1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2734, '0 18 1 18 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2735, '0 18 1 18 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2736, '0 18 1 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2737, '0 18 22 22 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2738, '0 18 22 22 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2739, '0 18 22 22 1 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2740, '0 18 22 22 1 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2741, '0 18 22 15 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2742, '0 18 22 15 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2743, '0 18 22 18 18 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2744, '0 18 22 18 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2745, '0 18 22 18 1 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2746, '0 18 22 18 1 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2747, '0 18 22 2 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2748, '0 18 22 2 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2749, '0 18 22 1 13 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2750, '0 18 22 1 13 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2751, '0 18 22 1 18 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2752, '0 18 22 1 18 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2753, '0 18 22 1 18 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2754, '0 18 22 1 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2755, '0 25 22 -1 1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2756, '0 25 22 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2757, '0 25 22 1 -1 1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2758, '0 25 22 1 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2759, '0 25 15 -1 1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2760, '0 25 15 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2761, '0 25 18 18 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2762, '0 25 18 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2763, '0 25 18 1 -1 1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2764, '0 25 18 1 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2765, '0 25 2 -1 1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2766, '0 25 2 22 -1 1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2767, '0 25 1 13 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2768, '0 25 1 13 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2769, '0 25 1 18 -1 1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2770, '0 25 1 18 22 -1 1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2771, '0 25 1 18 1 -1 1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2772, '0 25 1 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2773, '0 25 22 22 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2774, '0 25 22 22 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2775, '0 25 22 22 1 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2776, '0 25 22 22 1 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2777, '0 25 22 15 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2778, '0 25 22 15 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2779, '0 25 22 18 18 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2780, '0 25 22 18 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2781, '0 25 22 18 1 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2782, '0 25 22 18 1 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2783, '0 25 22 2 -1 1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2784, '0 25 22 2 22 -1 1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2785, '0 25 22 1 13 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2786, '0 25 22 1 13 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2787, '0 25 22 1 18 -1 1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2788, '0 25 22 1 18 22 -1 1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2789, '0 25 22 1 18 1 -1 1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2790, '0 25 22 1 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2791, '25 22 -1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2792, '25 22 22 -1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2793, '25 22 1 -1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2794, '25 22 1 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2795, '25 15 -1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2796, '25 15 22 -1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2797, '25 18 18 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2798, '25 18 18 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2799, '25 18 1 -1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2800, '25 18 1 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2801, '25 2 -1 1 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2802, '25 2 22 -1 1 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2803, '25 1 13 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2804, '25 1 13 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2805, '25 1 18 -1 1 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2806, '25 1 18 22 -1 1 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2807, '25 1 18 1 -1 1 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2808, '25 1 18 1 22 -1 1 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2809, '25 22 22 -1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2810, '25 22 22 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2811, '25 22 22 1 -1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2812, '25 22 22 1 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2813, '25 22 15 -1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2814, '25 22 15 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2815, '25 22 18 18 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2816, '25 22 18 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2817, '25 22 18 1 -1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2818, '25 22 18 1 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2819, '25 22 2 -1 1 2 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2820, '25 22 2 22 -1 1 2 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2821, '25 22 1 13 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2822, '25 22 1 13 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2823, '25 22 1 18 -1 1 2 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2824, '25 22 1 18 22 -1 1 2 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2825, '25 22 1 18 1 -1 1 2 5 5 5 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2826, '25 22 1 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
+INSERT INTO pagc_rules (id, rule) VALUES (2827, '0 2 1 18 -1 1 4 5 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2828, '0 2 1 18 22 -1 1 4 5 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2829, '0 2 1 18 1 -1 1 4 5 5 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2830, '0 2 1 18 1 22 -1 1 4 5 5 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2831, '0 2 0 18 -1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2832, '0 2 0 18 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2833, '0 2 0 1 -1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2834, '0 2 0 1 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2835, '0 2 18 1 -1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2836, '0 2 18 1 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2837, '0 2 18 18 1 -1 1 4 5 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2838, '0 2 18 18 1 22 -1 1 4 5 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2839, '0 18 2 1 18 -1 1 1 4 5 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2840, '0 18 2 1 18 22 -1 1 1 4 5 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2841, '0 18 2 1 18 1 -1 1 1 4 5 5 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2842, '0 18 2 1 18 1 22 -1 1 1 4 5 5 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2843, '0 18 2 0 18 -1 1 1 4 5 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2844, '0 18 2 0 18 22 -1 1 1 4 5 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2845, '0 18 2 0 1 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2846, '0 18 2 0 1 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2847, '0 18 2 18 1 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2848, '0 18 2 18 1 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2849, '0 18 2 18 18 1 -1 1 1 4 5 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2850, '0 18 2 18 18 1 22 -1 1 1 4 5 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2851, '0 25 2 1 18 -1 1 1 4 5 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2852, '0 25 2 1 18 22 -1 1 1 4 5 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2853, '0 25 2 1 18 1 -1 1 1 4 5 5 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2854, '0 25 2 1 18 1 22 -1 1 1 4 5 5 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2855, '0 25 2 0 18 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2856, '0 25 2 0 18 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2857, '0 25 2 0 1 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2858, '0 25 2 0 1 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2859, '0 25 2 18 1 -1 1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2860, '0 25 2 18 1 22 -1 1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2861, '0 25 2 18 18 1 -1 1 1 4 5 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2862, '0 25 2 18 18 1 22 -1 1 1 4 5 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2863, '25 2 1 18 -1 1 4 5 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2864, '25 2 1 18 22 -1 1 4 5 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2865, '25 2 1 18 1 -1 1 4 5 5 5 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2866, '25 2 1 18 1 22 -1 1 4 5 5 5 7 -1 1 11');
+INSERT INTO pagc_rules (id, rule) VALUES (2867, '25 2 0 18 -1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2868, '25 2 0 18 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2869, '25 2 0 1 -1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2870, '25 2 0 1 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2871, '25 2 18 1 -1 1 4 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2872, '25 2 18 1 22 -1 1 4 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2873, '25 2 18 18 1 -1 1 4 5 5 5 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2874, '25 2 18 18 1 22 -1 1 4 5 5 5 7 -1 1 8');
+INSERT INTO pagc_rules (id, rule) VALUES (2875, '0 14 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2876, '0 14 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2877, '0 15 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2878, '0 15 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2879, '0 24 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2880, '0 24 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2881, '0 24 24 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2882, '0 24 24 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2883, '0 24 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2884, '0 24 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2885, '0 24 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2886, '0 24 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2887, '0 22 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2888, '0 22 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2889, '0 22 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2890, '0 22 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2891, '0 25 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2892, '0 25 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2893, '0 0 25 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2894, '0 0 25 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2895, '0 15 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2896, '0 15 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2897, '0 18 18 18 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2898, '0 18 18 18 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2899, '0 18 18 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2900, '0 18 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2901, '0 18 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2902, '0 18 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2903, '0 18 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2904, '0 18 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2905, '0 2 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2906, '0 2 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2907, '0 2 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2908, '0 2 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2909, '0 2 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2910, '0 2 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2911, '0 16 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2912, '0 16 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2913, '0 1 13 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2914, '0 1 13 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2915, '0 1 15 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2916, '0 1 15 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2917, '0 1 24 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2918, '0 1 24 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2919, '0 1 24 24 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2920, '0 1 24 24 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2921, '0 1 24 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2922, '0 1 24 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2923, '0 1 22 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2924, '0 1 22 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2925, '0 1 22 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2926, '0 1 22 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2927, '0 1 25 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2928, '0 1 25 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2929, '0 1 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2930, '0 1 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2931, '0 1 18 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2932, '0 1 18 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2933, '0 1 18 2 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2934, '0 1 18 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2935, '0 1 18 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2936, '0 1 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2937, '0 1 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2938, '0 1 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2939, '0 1 2 2 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2940, '0 1 2 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2941, '0 21 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2942, '0 21 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2943, '0 22 14 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2944, '0 22 14 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2945, '0 22 15 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2946, '0 22 15 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2947, '0 22 24 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2948, '0 22 24 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2949, '0 22 24 24 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2950, '0 22 24 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2951, '0 22 24 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2952, '0 22 24 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2953, '0 22 24 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2954, '0 22 24 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2955, '0 22 22 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2956, '0 22 22 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2957, '0 22 22 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2958, '0 22 22 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2959, '0 22 25 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2960, '0 22 25 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2961, '0 22 0 25 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2962, '0 22 0 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2963, '0 22 15 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2964, '0 22 15 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2965, '0 22 18 18 18 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2966, '0 22 18 18 18 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2967, '0 22 18 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2968, '0 22 18 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2969, '0 22 18 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2970, '0 22 18 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2971, '0 22 18 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2972, '0 22 18 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2973, '0 22 2 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2974, '0 22 2 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2975, '0 22 2 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2976, '0 22 2 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2977, '0 22 2 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2978, '0 22 2 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2979, '0 22 16 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2980, '0 22 16 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2981, '0 22 1 13 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2982, '0 22 1 13 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2983, '0 22 1 15 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2984, '0 22 1 15 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2985, '0 22 1 24 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2986, '0 22 1 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2987, '0 22 1 24 24 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2988, '0 22 1 24 24 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2989, '0 22 1 24 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2990, '0 22 1 24 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2991, '0 22 1 22 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2992, '0 22 1 22 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2993, '0 22 1 22 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2994, '0 22 1 22 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2995, '0 22 1 25 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2996, '0 22 1 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2997, '0 22 1 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2998, '0 22 1 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (2999, '0 22 1 18 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3000, '0 22 1 18 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3001, '0 22 1 18 2 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3002, '0 22 1 18 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3003, '0 22 1 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3004, '0 22 1 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3005, '0 22 1 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3006, '0 22 1 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3007, '0 22 1 2 2 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3008, '0 22 1 2 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3009, '0 22 21 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3010, '0 22 21 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3011, '0 18 14 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3012, '0 18 14 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3013, '0 18 15 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3014, '0 18 15 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3015, '0 18 24 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3016, '0 18 24 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3017, '0 18 24 24 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3018, '0 18 24 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3019, '0 18 24 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3020, '0 18 24 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3021, '0 18 24 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3022, '0 18 24 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3023, '0 18 22 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3024, '0 18 22 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3025, '0 18 22 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3026, '0 18 22 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3027, '0 18 25 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3028, '0 18 25 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3029, '0 18 0 25 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3030, '0 18 0 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3031, '0 18 15 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3032, '0 18 15 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3033, '0 18 18 18 18 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3034, '0 18 18 18 18 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3035, '0 18 18 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3036, '0 18 18 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3037, '0 18 18 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3038, '0 18 18 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3039, '0 18 18 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3040, '0 18 18 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3041, '0 18 2 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3042, '0 18 2 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3043, '0 18 2 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3044, '0 18 2 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3045, '0 18 2 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3046, '0 18 2 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3047, '0 18 16 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3048, '0 18 16 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3049, '0 18 1 13 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3050, '0 18 1 13 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3051, '0 18 1 15 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3052, '0 18 1 15 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3053, '0 18 1 24 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3054, '0 18 1 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3055, '0 18 1 24 24 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3056, '0 18 1 24 24 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3057, '0 18 1 24 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3058, '0 18 1 24 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3059, '0 18 1 22 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3060, '0 18 1 22 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3061, '0 18 1 22 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3062, '0 18 1 22 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3063, '0 18 1 25 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3064, '0 18 1 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3065, '0 18 1 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3066, '0 18 1 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3067, '0 18 1 18 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3068, '0 18 1 18 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3069, '0 18 1 18 2 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3070, '0 18 1 18 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3071, '0 18 1 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3072, '0 18 1 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3073, '0 18 1 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3074, '0 18 1 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3075, '0 18 1 2 2 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3076, '0 18 1 2 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3077, '0 18 21 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3078, '0 18 21 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3079, '0 18 22 14 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3080, '0 18 22 14 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3081, '0 18 22 15 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3082, '0 18 22 15 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3083, '0 18 22 24 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3084, '0 18 22 24 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3085, '0 18 22 24 24 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3086, '0 18 22 24 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3087, '0 18 22 24 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3088, '0 18 22 24 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3089, '0 18 22 24 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3090, '0 18 22 24 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3091, '0 18 22 22 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3092, '0 18 22 22 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3093, '0 18 22 22 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3094, '0 18 22 22 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3095, '0 18 22 25 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3096, '0 18 22 25 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3097, '0 18 22 0 25 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3098, '0 18 22 0 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3099, '0 18 22 15 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3100, '0 18 22 15 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3101, '0 18 22 18 18 18 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3102, '0 18 22 18 18 18 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3103, '0 18 22 18 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3104, '0 18 22 18 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3105, '0 18 22 18 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3106, '0 18 22 18 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3107, '0 18 22 18 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3108, '0 18 22 18 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3109, '0 18 22 2 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3110, '0 18 22 2 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3111, '0 18 22 2 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3112, '0 18 22 2 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3113, '0 18 22 2 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3114, '0 18 22 2 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3115, '0 18 22 16 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3116, '0 18 22 16 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3117, '0 18 22 1 13 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3118, '0 18 22 1 13 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3119, '0 18 22 1 15 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3120, '0 18 22 1 15 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3121, '0 18 22 1 24 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3122, '0 18 22 1 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3123, '0 18 22 1 24 24 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3124, '0 18 22 1 24 24 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3125, '0 18 22 1 24 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3126, '0 18 22 1 24 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3127, '0 18 22 1 22 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3128, '0 18 22 1 22 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3129, '0 18 22 1 22 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3130, '0 18 22 1 22 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3131, '0 18 22 1 25 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3132, '0 18 22 1 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3133, '0 18 22 1 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3134, '0 18 22 1 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3135, '0 18 22 1 18 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3136, '0 18 22 1 18 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3137, '0 18 22 1 18 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3138, '0 18 22 1 18 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3139, '0 18 22 1 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3140, '0 18 22 1 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3141, '0 18 22 1 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3142, '0 18 22 1 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3143, '0 18 22 1 2 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3144, '0 18 22 1 2 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3145, '0 18 22 21 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3146, '0 18 22 21 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3147, '0 25 14 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3148, '0 25 14 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3149, '0 25 15 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3150, '0 25 15 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3151, '0 25 24 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3152, '0 25 24 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3153, '0 25 24 24 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3154, '0 25 24 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3155, '0 25 24 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3156, '0 25 24 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3157, '0 25 24 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3158, '0 25 24 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3159, '0 25 22 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3160, '0 25 22 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3161, '0 25 22 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3162, '0 25 22 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3163, '0 25 25 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3164, '0 25 25 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3165, '0 25 0 25 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3166, '0 25 0 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3167, '0 25 15 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3168, '0 25 15 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3169, '0 25 18 18 18 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3170, '0 25 18 18 18 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3171, '0 25 18 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3172, '0 25 18 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3173, '0 25 18 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3174, '0 25 18 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3175, '0 25 18 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3176, '0 25 18 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3177, '0 25 2 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3178, '0 25 2 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3179, '0 25 2 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3180, '0 25 2 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3181, '0 25 2 1 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3182, '0 25 2 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3183, '0 25 16 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3184, '0 25 16 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3185, '0 25 1 13 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3186, '0 25 1 13 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3187, '0 25 1 15 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3188, '0 25 1 15 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3189, '0 25 1 24 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3190, '0 25 1 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3191, '0 25 1 24 24 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3192, '0 25 1 24 24 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3193, '0 25 1 24 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3194, '0 25 1 24 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3195, '0 25 1 22 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3196, '0 25 1 22 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3197, '0 25 1 22 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3198, '0 25 1 22 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3199, '0 25 1 25 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3200, '0 25 1 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3201, '0 25 1 0 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3202, '0 25 1 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3203, '0 25 1 18 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3204, '0 25 1 18 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3205, '0 25 1 18 2 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3206, '0 25 1 18 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3207, '0 25 1 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3208, '0 25 1 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3209, '0 25 1 2 2 -1 1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3210, '0 25 1 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3211, '0 25 1 2 2 2 -1 1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3212, '0 25 1 2 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3213, '0 25 21 2 -1 1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3214, '0 25 21 2 22 -1 1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3215, '0 25 22 14 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3216, '0 25 22 14 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3217, '0 25 22 15 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3218, '0 25 22 15 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3219, '0 25 22 24 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3220, '0 25 22 24 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3221, '0 25 22 24 24 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3222, '0 25 22 24 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3223, '0 25 22 24 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3224, '0 25 22 24 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3225, '0 25 22 24 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3226, '0 25 22 24 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3227, '0 25 22 22 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3228, '0 25 22 22 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3229, '0 25 22 22 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3230, '0 25 22 22 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3231, '0 25 22 25 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3232, '0 25 22 25 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3233, '0 25 22 0 25 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3234, '0 25 22 0 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3235, '0 25 22 15 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3236, '0 25 22 15 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3237, '0 25 22 18 18 18 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3238, '0 25 22 18 18 18 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3239, '0 25 22 18 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3240, '0 25 22 18 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3241, '0 25 22 18 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3242, '0 25 22 18 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3243, '0 25 22 18 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3244, '0 25 22 18 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3245, '0 25 22 2 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3246, '0 25 22 2 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3247, '0 25 22 2 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3248, '0 25 22 2 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3249, '0 25 22 2 1 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3250, '0 25 22 2 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3251, '0 25 22 16 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3252, '0 25 22 16 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3253, '0 25 22 1 13 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3254, '0 25 22 1 13 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3255, '0 25 22 1 15 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3256, '0 25 22 1 15 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3257, '0 25 22 1 24 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3258, '0 25 22 1 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3259, '0 25 22 1 24 24 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3260, '0 25 22 1 24 24 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3261, '0 25 22 1 24 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3262, '0 25 22 1 24 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3263, '0 25 22 1 22 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3264, '0 25 22 1 22 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3265, '0 25 22 1 22 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3266, '0 25 22 1 22 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3267, '0 25 22 1 25 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3268, '0 25 22 1 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3269, '0 25 22 1 0 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3270, '0 25 22 1 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3271, '0 25 22 1 18 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3272, '0 25 22 1 18 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3273, '0 25 22 1 18 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3274, '0 25 22 1 18 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3275, '0 25 22 1 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3276, '0 25 22 1 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3277, '0 25 22 1 2 2 -1 1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3278, '0 25 22 1 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3279, '0 25 22 1 2 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3280, '0 25 22 1 2 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3281, '0 25 22 21 2 -1 1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3282, '0 25 22 21 2 22 -1 1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3283, '25 14 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3284, '25 14 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3285, '25 15 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3286, '25 15 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3287, '25 24 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3288, '25 24 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3289, '25 24 24 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3290, '25 24 24 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3291, '25 24 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3292, '25 24 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3293, '25 24 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3294, '25 24 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3295, '25 22 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3296, '25 22 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3297, '25 22 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3298, '25 22 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3299, '25 25 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3300, '25 25 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3301, '25 0 25 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3302, '25 0 25 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3303, '25 15 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3304, '25 15 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3305, '25 18 18 18 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3306, '25 18 18 18 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3307, '25 18 18 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3308, '25 18 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3309, '25 18 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3310, '25 18 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3311, '25 18 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3312, '25 18 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3313, '25 2 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3314, '25 2 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3315, '25 2 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3316, '25 2 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3317, '25 2 1 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3318, '25 2 1 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3319, '25 16 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3320, '25 16 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3321, '25 1 13 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3322, '25 1 13 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3323, '25 1 15 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3324, '25 1 15 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3325, '25 1 24 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3326, '25 1 24 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3327, '25 1 24 24 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3328, '25 1 24 24 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3329, '25 1 24 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3330, '25 1 24 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3331, '25 1 22 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3332, '25 1 22 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3333, '25 1 22 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3334, '25 1 22 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3335, '25 1 25 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3336, '25 1 25 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3337, '25 1 0 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3338, '25 1 0 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3339, '25 1 18 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3340, '25 1 18 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3341, '25 1 18 2 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3342, '25 1 18 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3343, '25 1 18 1 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3344, '25 1 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3345, '25 1 2 2 -1 1 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3346, '25 1 2 2 22 -1 1 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3347, '25 1 2 2 2 -1 1 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3348, '25 1 2 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3349, '25 21 2 -1 1 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3350, '25 21 2 22 -1 1 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3351, '25 22 14 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3352, '25 22 14 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3353, '25 22 15 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3354, '25 22 15 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3355, '25 22 24 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3356, '25 22 24 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3357, '25 22 24 24 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3358, '25 22 24 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3359, '25 22 24 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3360, '25 22 24 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3361, '25 22 24 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3362, '25 22 24 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3363, '25 22 22 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3364, '25 22 22 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3365, '25 22 22 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3366, '25 22 22 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3367, '25 22 25 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3368, '25 22 25 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3369, '25 22 0 25 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3370, '25 22 0 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3371, '25 22 15 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3372, '25 22 15 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3373, '25 22 18 18 18 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3374, '25 22 18 18 18 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3375, '25 22 18 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3376, '25 22 18 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3377, '25 22 18 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3378, '25 22 18 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3379, '25 22 18 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3380, '25 22 18 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3381, '25 22 2 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3382, '25 22 2 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3383, '25 22 2 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3384, '25 22 2 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3385, '25 22 2 1 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3386, '25 22 2 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3387, '25 22 16 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3388, '25 22 16 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3389, '25 22 1 13 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3390, '25 22 1 13 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3391, '25 22 1 15 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3392, '25 22 1 15 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3393, '25 22 1 24 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3394, '25 22 1 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3395, '25 22 1 24 24 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3396, '25 22 1 24 24 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3397, '25 22 1 24 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3398, '25 22 1 24 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3399, '25 22 1 22 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3400, '25 22 1 22 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3401, '25 22 1 22 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3402, '25 22 1 22 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3403, '25 22 1 25 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3404, '25 22 1 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3405, '25 22 1 0 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3406, '25 22 1 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3407, '25 22 1 18 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3408, '25 22 1 18 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3409, '25 22 1 18 2 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3410, '25 22 1 18 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3411, '25 22 1 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3412, '25 22 1 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3413, '25 22 1 2 2 -1 1 2 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3414, '25 22 1 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3415, '25 22 1 2 2 2 -1 1 2 5 5 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3416, '25 22 1 2 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3417, '25 22 21 2 -1 1 2 5 6 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3418, '25 22 21 2 22 -1 1 2 5 6 7 -1 1 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3419, '0 -1 1 -1 3 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3420, '0 18 -1 1 1 -1 3 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3421, '0 25 -1 1 1 -1 3 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3422, '0 22 -1 1 1 -1 3 9');
+INSERT INTO pagc_rules (id, rule) VALUES (3423, '22 0 -1 1 1 -1 3 9');
+INSERT INTO pagc_rules (id, rule) VALUES (3424, '1 0 -1 1 1 -1 3 6');
+INSERT INTO pagc_rules (id, rule) VALUES (3425, '18 0 -1 1 1 -1 3 12');
+INSERT INTO pagc_rules (id, rule) VALUES (3426, '25 -1 1 -1 3 12');
+INSERT INTO pagc_rules (id, rule) VALUES (3427, '21 0 -1 1 1 -1 3 12');
+INSERT INTO pagc_rules (id, rule) VALUES (3428, '0 21 -1 1 1 -1 3 9');
+INSERT INTO pagc_rules (id, rule) VALUES (3429, '0 0 -1 1 1 -1 3 15');
+INSERT INTO pagc_rules (id, rule) VALUES (3430, '21 0 0 -1 1 1 1 -1 3 9');
+INSERT INTO pagc_rules (id, rule) VALUES (3431, '0 0 21 -1 1 1 1 -1 3 9');
+INSERT INTO pagc_rules (id, rule) VALUES (3432, '0 0 18 -1 1 1 1 -1 3 9');
+INSERT INTO pagc_rules (id, rule) VALUES (3433, '18 0 -1 1 1 -1 3 9');
+INSERT INTO pagc_rules (id, rule) VALUES (3434, '18 0 0 -1 1 1 1 -1 3 9');
+INSERT INTO pagc_rules (id, rule) VALUES (3435, '0 0 18 -1 1 1 1 -1 3 9');
+INSERT INTO pagc_rules (id, rule) VALUES (3436, '8 -1 8 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3437, '8 23 -1 8 8 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3438, '8 0 -1 8 8 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3439, '8 0 18 -1 8 8 8 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3440, '8 18 -1 8 8 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3441, '8 18 0 -1 8 8 8 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3442, '8 1 -1 8 8 -1 4 2');
+INSERT INTO pagc_rules (id, rule) VALUES (3443, '14 -1 14 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3444, '14 21 -1 14 15 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3445, '14 23 -1 14 15 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3446, '14 0 -1 14 15 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3447, '14 0 18 -1 14 15 15 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3448, '14 0 18 0 -1 14 15 15 15 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3449, '14 18 -1 14 15 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3450, '14 18 0 -1 14 15 15 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3451, '14 1 -1 14 15 -1 4 2');
+INSERT INTO pagc_rules (id, rule) VALUES (3452, '1 24 -1 0 0 -1 4 15');
+INSERT INTO pagc_rules (id, rule) VALUES (3453, '14 24 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3454, '24 24 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3455, '24 24 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3456, '24 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3457, '24 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3458, '24 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3459, '24 1 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3460, '22 24 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3461, '22 24 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3462, '22 24 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3463, '22 24 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3464, '22 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3465, '22 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3466, '22 1 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3467, '18 24 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3468, '18 13 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3469, '18 24 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3470, '18 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3471, '18 18 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3472, '18 18 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3473, '18 18 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3474, '18 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3475, '18 1 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3476, '18 1 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3477, '2 24 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3478, '2 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3479, '2 0 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3480, '2 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3481, '2 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3482, '2 1 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3483, '1 13 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3484, '1 24 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3485, '1 24 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3486, '1 24 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3487, '1 24 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3488, '1 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3489, '1 22 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3490, '1 0 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3491, '1 0 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3492, '1 0 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3493, '1 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3494, '1 18 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3495, '1 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3496, '1 2 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3497, '0 1 24 -1 0 0 0 -1 4 15');
+INSERT INTO pagc_rules (id, rule) VALUES (3498, '0 14 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3499, '0 24 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3500, '0 24 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3501, '0 24 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3502, '0 24 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3503, '0 24 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3504, '0 24 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3505, '0 22 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3506, '0 22 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3507, '0 22 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3508, '0 22 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3509, '0 22 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3510, '0 22 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3511, '0 22 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3512, '0 18 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3513, '0 18 13 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3514, '0 18 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3515, '0 18 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3516, '0 18 18 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3517, '0 18 18 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3518, '0 18 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3519, '0 18 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3520, '0 18 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3521, '0 18 1 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3522, '0 2 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3523, '0 2 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3524, '0 2 0 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3525, '0 2 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3526, '0 2 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3527, '0 2 1 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3528, '0 1 13 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3529, '0 1 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3530, '0 1 24 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3531, '0 1 24 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3532, '0 1 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3533, '0 1 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3534, '0 1 22 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3535, '0 1 0 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3536, '0 1 0 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3537, '0 1 0 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3538, '0 1 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3539, '0 1 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3540, '0 1 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3541, '0 1 2 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3542, '0 18 1 24 -1 0 0 0 0 -1 4 15');
+INSERT INTO pagc_rules (id, rule) VALUES (3543, '0 18 14 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3544, '0 18 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3545, '0 18 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3546, '0 18 24 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3547, '0 18 24 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3548, '0 18 24 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3549, '0 18 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3550, '0 18 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3551, '0 18 22 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3552, '0 18 22 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3553, '0 18 22 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3554, '0 18 22 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3555, '0 18 22 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3556, '0 18 22 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3557, '0 18 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3558, '0 18 18 13 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3559, '0 18 18 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3560, '0 18 18 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3561, '0 18 18 18 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3562, '0 18 18 18 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3563, '0 18 18 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3564, '0 18 18 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3565, '0 18 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3566, '0 18 18 1 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3567, '0 18 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3568, '0 18 2 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3569, '0 18 2 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3570, '0 18 2 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3571, '0 18 2 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3572, '0 18 2 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3573, '0 18 1 13 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3574, '0 18 1 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3575, '0 18 1 24 22 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3576, '0 18 1 24 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3577, '0 18 1 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3578, '0 18 1 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3579, '0 18 1 22 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3580, '0 18 1 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3581, '0 18 1 0 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3582, '0 18 1 0 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3583, '0 18 1 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3584, '0 18 1 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3585, '0 18 1 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3586, '0 18 1 2 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3587, '0 25 1 24 -1 0 0 0 0 -1 4 15');
+INSERT INTO pagc_rules (id, rule) VALUES (3588, '0 25 14 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3589, '0 25 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3590, '0 25 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3591, '0 25 24 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3592, '0 25 24 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3593, '0 25 24 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3594, '0 25 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3595, '0 25 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3596, '0 25 22 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3597, '0 25 22 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3598, '0 25 22 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3599, '0 25 22 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3600, '0 25 22 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3601, '0 25 22 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3602, '0 25 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3603, '0 25 18 13 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3604, '0 25 18 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3605, '0 25 18 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3606, '0 25 18 18 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3607, '0 25 18 18 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3608, '0 25 18 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3609, '0 25 18 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3610, '0 25 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3611, '0 25 18 1 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3612, '0 25 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3613, '0 25 2 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3614, '0 25 2 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3615, '0 25 2 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3616, '0 25 2 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3617, '0 25 2 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3618, '0 25 1 13 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3619, '0 25 1 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3620, '0 25 1 24 22 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3621, '0 25 1 24 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3622, '0 25 1 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3623, '0 25 1 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3624, '0 25 1 22 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3625, '0 25 1 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3626, '0 25 1 0 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3627, '0 25 1 0 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3628, '0 25 1 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3629, '0 25 1 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3630, '0 25 1 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3631, '0 25 1 2 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3632, '18 0 1 24 -1 0 0 0 0 -1 4 15');
+INSERT INTO pagc_rules (id, rule) VALUES (3633, '18 0 14 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3634, '18 0 24 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3635, '18 0 24 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3636, '18 0 24 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3637, '18 0 24 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3638, '18 0 24 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3639, '18 0 24 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3640, '18 0 22 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3641, '18 0 22 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3642, '18 0 22 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3643, '18 0 22 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3644, '18 0 22 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3645, '18 0 22 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3646, '18 0 22 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3647, '18 0 18 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3648, '18 0 18 13 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3649, '18 0 18 24 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3650, '18 0 18 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3651, '18 0 18 18 18 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3652, '18 0 18 18 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3653, '18 0 18 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3654, '18 0 18 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3655, '18 0 18 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3656, '18 0 18 1 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3657, '18 0 2 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3658, '18 0 2 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3659, '18 0 2 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3660, '18 0 2 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3661, '18 0 2 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3662, '18 0 2 1 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3663, '18 0 1 13 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3664, '18 0 1 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3665, '18 0 1 24 22 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3666, '18 0 1 24 2 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3667, '18 0 1 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3668, '18 0 1 22 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3669, '18 0 1 22 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3670, '18 0 1 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3671, '18 0 1 0 24 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3672, '18 0 1 0 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3673, '18 0 1 18 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3674, '18 0 1 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3675, '18 0 1 2 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3676, '18 0 1 2 1 24 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3677, '19 -1 0 -1 4 2');
+INSERT INTO pagc_rules (id, rule) VALUES (3678, '19 1 -1 0 0 -1 4 6');
+INSERT INTO pagc_rules (id, rule) VALUES (3679, '19 24 1 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3680, '19 24 1 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3681, '19 23 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3682, '19 0 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3683, '19 0 24 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3684, '19 0 1 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3685, '19 18 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3686, '19 2 0 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3687, '19 1 0 -1 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3688, '0 19 -1 0 0 -1 4 2');
+INSERT INTO pagc_rules (id, rule) VALUES (3689, '0 19 1 -1 0 0 0 -1 4 6');
+INSERT INTO pagc_rules (id, rule) VALUES (3690, '0 19 24 1 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3691, '0 19 24 1 0 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3692, '0 19 23 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3693, '0 19 0 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3694, '0 19 0 24 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3695, '0 19 0 1 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3696, '0 19 18 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3697, '0 19 2 0 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3698, '0 19 1 0 -1 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3699, '0 18 19 -1 0 0 0 -1 4 2');
+INSERT INTO pagc_rules (id, rule) VALUES (3700, '0 18 19 1 -1 0 0 0 0 -1 4 6');
+INSERT INTO pagc_rules (id, rule) VALUES (3701, '0 18 19 24 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3702, '0 18 19 24 1 0 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3703, '0 18 19 23 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3704, '0 18 19 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3705, '0 18 19 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3706, '0 18 19 0 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3707, '0 18 19 18 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3708, '0 18 19 2 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3709, '0 18 19 1 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3710, '0 25 19 -1 0 0 0 -1 4 2');
+INSERT INTO pagc_rules (id, rule) VALUES (3711, '0 25 19 1 -1 0 0 0 0 -1 4 6');
+INSERT INTO pagc_rules (id, rule) VALUES (3712, '0 25 19 24 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3713, '0 25 19 24 1 0 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3714, '0 25 19 23 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3715, '0 25 19 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3716, '0 25 19 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3717, '0 25 19 0 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3718, '0 25 19 18 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3719, '0 25 19 2 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3720, '0 25 19 1 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3721, '18 0 19 -1 0 0 0 -1 4 2');
+INSERT INTO pagc_rules (id, rule) VALUES (3722, '18 0 19 1 -1 0 0 0 0 -1 4 6');
+INSERT INTO pagc_rules (id, rule) VALUES (3723, '18 0 19 24 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3724, '18 0 19 24 1 0 -1 0 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3725, '18 0 19 23 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3726, '18 0 19 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3727, '18 0 19 0 24 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3728, '18 0 19 0 1 -1 0 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3729, '18 0 19 18 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3730, '18 0 19 2 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3731, '18 0 19 1 0 -1 0 0 0 0 -1 4 10');
+INSERT INTO pagc_rules (id, rule) VALUES (3732, '23 -1 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3733, '0 -1 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3734, '18 -1 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3735, '18 0 -1 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3736, '18 18 -1 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3737, '18 0 18 -1 17 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3738, '21 -1 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3739, '21 0 -1 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3740, '25 -1 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3741, '0 21 -1 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3742, '0 0 -1 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3743, '0 18 -1 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3744, '0 1 -1 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3745, '1 -1 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3746, '16 -1 16 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3747, '16 23 -1 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3748, '16 0 -1 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3749, '16 18 -1 16 17 -1 4 11');
+INSERT INTO pagc_rules (id, rule) VALUES (3750, '16 18 0 -1 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3751, '16 18 18 -1 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3752, '16 18 0 18 -1 16 17 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3753, '16 21 -1 16 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3754, '16 21 0 -1 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3755, '16 25 -1 16 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3756, '16 0 21 -1 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3757, '16 0 0 -1 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3758, '16 0 18 -1 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3759, '16 0 1 -1 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3760, '16 1 -1 16 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3761, '16 16 -1 16 16 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3762, '16 16 23 -1 16 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3763, '16 16 0 -1 16 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3764, '16 16 18 -1 16 16 17 -1 4 11');
+INSERT INTO pagc_rules (id, rule) VALUES (3765, '16 16 18 0 -1 16 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3766, '16 16 18 18 -1 16 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3767, '16 16 18 0 18 -1 16 16 17 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3768, '16 16 21 -1 16 16 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3769, '16 16 21 0 -1 16 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3770, '16 16 25 -1 16 16 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3771, '16 16 0 21 -1 16 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3772, '16 16 0 0 -1 16 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3773, '16 16 0 18 -1 16 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3774, '16 16 0 1 -1 16 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3775, '16 16 1 -1 16 16 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (3776, '17 -1 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3777, '17 23 -1 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3778, '17 0 -1 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3779, '17 18 -1 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3780, '17 18 0 -1 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3781, '17 18 18 -1 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3782, '17 18 0 18 -1 17 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3783, '17 21 -1 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3784, '17 21 0 -1 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3785, '17 25 -1 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3786, '17 0 21 -1 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3787, '17 0 0 -1 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3788, '17 0 18 -1 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3789, '17 0 1 -1 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3790, '17 1 -1 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3791, '17 16 -1 17 16 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3792, '17 16 23 -1 17 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3793, '17 16 0 -1 17 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3794, '17 16 18 -1 17 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3795, '17 16 18 0 -1 17 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3796, '17 16 18 18 -1 17 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3797, '17 16 18 0 18 -1 17 16 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3798, '17 16 21 -1 17 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3799, '17 16 21 0 -1 17 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3800, '17 16 25 -1 17 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3801, '17 16 0 21 -1 17 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3802, '17 16 0 0 -1 17 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3803, '17 16 0 18 -1 17 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3804, '17 16 0 1 -1 17 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3805, '17 16 1 -1 17 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3806, '17 16 16 -1 17 16 16 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3807, '17 16 16 23 -1 17 16 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3808, '17 16 16 0 -1 17 16 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3809, '17 16 16 18 -1 17 16 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3810, '17 16 16 18 0 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3811, '17 16 16 18 18 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3812, '17 16 16 18 0 18 -1 17 16 16 17 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3813, '17 16 16 21 -1 17 16 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3814, '17 16 16 21 0 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3815, '17 16 16 25 -1 17 16 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3816, '17 16 16 0 21 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3817, '17 16 16 0 0 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3818, '17 16 16 0 18 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3819, '17 16 16 0 1 -1 17 16 16 17 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3820, '17 16 16 1 -1 17 16 16 17 -1 4 17');
+INSERT INTO pagc_rules (id, rule) VALUES (3821, '15 17 -1 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3822, '15 17 23 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3823, '15 17 0 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3824, '15 17 18 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3825, '15 17 18 0 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3826, '15 17 18 18 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3827, '15 17 18 0 18 -1 17 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3828, '15 17 21 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3829, '15 17 21 0 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3830, '15 17 25 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3831, '15 17 0 21 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3832, '15 17 0 0 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3833, '15 17 0 18 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3834, '15 17 0 1 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3835, '15 17 1 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3836, '15 17 16 -1 17 17 16 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3837, '15 17 16 23 -1 17 17 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3838, '15 17 16 0 -1 17 17 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3839, '15 17 16 18 -1 17 17 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3840, '15 17 16 18 0 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3841, '15 17 16 18 18 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3842, '15 17 16 18 0 18 -1 17 17 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3843, '15 17 16 21 -1 17 17 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3844, '15 17 16 21 0 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3845, '15 17 16 25 -1 17 17 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3846, '15 17 16 0 21 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3847, '15 17 16 0 0 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3848, '15 17 16 0 18 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3849, '15 17 16 0 1 -1 17 17 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3850, '15 17 16 1 -1 17 17 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3851, '15 17 16 16 -1 17 17 16 16 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3852, '15 17 16 16 23 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3853, '15 17 16 16 0 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3854, '15 17 16 16 18 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3855, '15 17 16 16 18 0 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3856, '15 17 16 16 18 18 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3857, '15 17 16 16 18 0 18 -1 17 17 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3858, '15 17 16 16 21 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3859, '15 17 16 16 21 0 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3860, '15 17 16 16 25 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3861, '15 17 16 16 0 21 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3862, '15 17 16 16 0 0 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3863, '15 17 16 16 0 18 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3864, '15 17 16 16 0 1 -1 17 17 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3865, '15 17 16 16 1 -1 17 17 16 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3866, '17 17 -1 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3867, '17 17 23 -1 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3868, '17 17 0 -1 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3869, '17 17 18 -1 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3870, '17 17 18 0 -1 17 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3871, '17 17 18 18 -1 17 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3872, '17 17 18 0 18 -1 17 17 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3873, '17 17 21 -1 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3874, '17 17 21 0 -1 17 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3875, '17 17 25 -1 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3876, '17 17 0 21 -1 17 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3877, '17 17 0 0 -1 17 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3878, '17 17 0 18 -1 17 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3879, '17 17 0 1 -1 17 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3880, '17 17 1 -1 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3881, '17 17 16 -1 17 17 16 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3882, '17 17 16 23 -1 17 17 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3883, '17 17 16 0 -1 17 17 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3884, '17 17 16 18 -1 17 17 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3885, '17 17 16 18 0 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3886, '17 17 16 18 18 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3887, '17 17 16 18 0 18 -1 17 17 16 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3888, '17 17 16 21 -1 17 17 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3889, '17 17 16 21 0 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3890, '17 17 16 25 -1 17 17 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3891, '17 17 16 0 21 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3892, '17 17 16 0 0 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3893, '17 17 16 0 18 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3894, '17 17 16 0 1 -1 17 17 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3895, '17 17 16 1 -1 17 17 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3896, '17 17 16 16 -1 17 17 16 16 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3897, '17 17 16 16 23 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3898, '17 17 16 16 0 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3899, '17 17 16 16 18 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3900, '17 17 16 16 18 0 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3901, '17 17 16 16 18 18 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3902, '17 17 16 16 18 0 18 -1 17 17 16 16 17 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3903, '17 17 16 16 21 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3904, '17 17 16 16 21 0 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3905, '17 17 16 16 25 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3906, '17 17 16 16 0 21 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3907, '17 17 16 16 0 0 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3908, '17 17 16 16 0 18 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3909, '17 17 16 16 0 1 -1 17 17 16 16 17 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3910, '17 17 16 16 1 -1 17 17 16 16 17 -1 4 16');
+INSERT INTO pagc_rules (id, rule) VALUES (3911, '17 -1 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3912, '15 17 -1 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3913, '17 17 -1 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3914, '23 17 -1 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3915, '23 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3916, '23 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3917, '0 17 -1 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3918, '0 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3919, '0 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3920, '18 17 -1 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3921, '18 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3922, '18 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3923, '18 0 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3924, '18 0 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3925, '18 0 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3926, '18 18 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3927, '18 18 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3928, '18 18 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3929, '18 0 18 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3930, '18 0 18 15 17 -1 17 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3931, '18 0 18 17 17 -1 17 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3932, '21 17 -1 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3933, '21 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3934, '21 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3935, '21 0 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3936, '21 0 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3937, '21 0 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3938, '25 17 -1 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3939, '25 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3940, '25 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3941, '0 21 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3942, '0 21 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3943, '0 21 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3944, '0 0 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3945, '0 0 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3946, '0 0 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3947, '0 18 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3948, '0 18 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3949, '0 18 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3950, '0 1 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3951, '0 1 15 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3952, '0 1 17 17 -1 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3953, '1 17 -1 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3954, '1 15 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3955, '1 17 17 -1 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3956, '16 17 -1 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3957, '16 15 17 -1 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3958, '16 17 17 -1 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3959, '16 23 17 -1 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3960, '16 23 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3961, '16 23 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3962, '16 0 17 -1 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3963, '16 0 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3964, '16 0 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3965, '16 18 17 -1 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3966, '16 18 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3967, '16 18 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3968, '16 18 0 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3969, '16 18 0 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3970, '16 18 0 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3971, '16 18 18 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3972, '16 18 18 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3973, '16 18 18 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3974, '16 18 0 18 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3975, '16 18 0 18 15 17 -1 16 17 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3976, '16 18 0 18 17 17 -1 16 17 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3977, '16 21 17 -1 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3978, '16 21 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3979, '16 21 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3980, '16 21 0 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3981, '16 21 0 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3982, '16 21 0 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3983, '16 25 17 -1 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3984, '16 25 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3985, '16 25 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3986, '16 0 21 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3987, '16 0 21 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3988, '16 0 21 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3989, '16 0 0 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3990, '16 0 0 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3991, '16 0 0 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3992, '16 0 18 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3993, '16 0 18 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3994, '16 0 18 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3995, '16 0 1 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3996, '16 0 1 15 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3997, '16 0 1 17 17 -1 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3998, '16 1 17 -1 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (3999, '16 1 15 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4000, '16 1 17 17 -1 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4001, '16 16 17 -1 16 16 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4002, '16 16 15 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4003, '16 16 17 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4004, '16 16 23 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4005, '16 16 23 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4006, '16 16 23 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4007, '16 16 0 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4008, '16 16 0 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4009, '16 16 0 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4010, '16 16 18 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4011, '16 16 18 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4012, '16 16 18 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4013, '16 16 18 0 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4014, '16 16 18 0 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4015, '16 16 18 0 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4016, '16 16 18 18 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4017, '16 16 18 18 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4018, '16 16 18 18 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4019, '16 16 18 0 18 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4020, '16 16 18 0 18 15 17 -1 16 16 17 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4021, '16 16 18 0 18 17 17 -1 16 16 17 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4022, '16 16 21 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4023, '16 16 21 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4024, '16 16 21 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4025, '16 16 21 0 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4026, '16 16 21 0 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4027, '16 16 21 0 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4028, '16 16 25 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4029, '16 16 25 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4030, '16 16 25 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4031, '16 16 0 21 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4032, '16 16 0 21 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4033, '16 16 0 21 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4034, '16 16 0 0 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4035, '16 16 0 0 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4036, '16 16 0 0 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4037, '16 16 0 18 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4038, '16 16 0 18 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4039, '16 16 0 18 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4040, '16 16 0 1 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4041, '16 16 0 1 15 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4042, '16 16 0 1 17 17 -1 16 16 17 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4043, '16 16 1 17 -1 16 16 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4044, '16 16 1 15 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4045, '16 16 1 17 17 -1 16 16 17 17 17 -1 4 8');
+INSERT INTO pagc_rules (id, rule) VALUES (4046, '12 -1 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4047, '12 23 23 13 13 -1 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4048, '12 0 -1 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4049, '12 0 0 -1 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4050, '12 27 -1 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4051, '12 27 26 -1 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4052, '12 28 -1 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4053, '12 28 29 -1 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4054, '23 23 13 13 -1 -1 0 14');
+INSERT INTO pagc_rules (id, rule) VALUES (4055, '23 23 13 13 12 -1 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4056, '0 -1 13 -1 0 14');
+INSERT INTO pagc_rules (id, rule) VALUES (4057, '0 12 -1 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4058, '0 0 -1 13 13 -1 0 14');
+INSERT INTO pagc_rules (id, rule) VALUES (4059, '0 0 12 -1 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4060, '27 -1 13 -1 0 14');
+INSERT INTO pagc_rules (id, rule) VALUES (4061, '27 12 -1 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4062, '27 26 -1 13 13 -1 0 14');
+INSERT INTO pagc_rules (id, rule) VALUES (4063, '27 26 12 -1 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4064, '28 -1 13 -1 0 14');
+INSERT INTO pagc_rules (id, rule) VALUES (4065, '28 12 -1 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4066, '28 29 -1 13 13 -1 0 14');
+INSERT INTO pagc_rules (id, rule) VALUES (4067, '28 29 12 -1 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4068, '11 -1 11 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4069, '11 23 23 13 13 -1 11 -1 0 7');
+INSERT INTO pagc_rules (id, rule) VALUES (4070, '11 0 -1 11 13 -1 0 7');
+INSERT INTO pagc_rules (id, rule) VALUES (4071, '11 0 0 -1 11 13 13 -1 0 7');
+INSERT INTO pagc_rules (id, rule) VALUES (4072, '11 27 -1 11 13 -1 0 7');
+INSERT INTO pagc_rules (id, rule) VALUES (4073, '11 27 26 -1 11 13 13 -1 0 7');
+INSERT INTO pagc_rules (id, rule) VALUES (4074, '11 28 -1 11 13 -1 0 7');
+INSERT INTO pagc_rules (id, rule) VALUES (4075, '11 28 29 -1 11 13 13 -1 0 7');
+INSERT INTO pagc_rules (id, rule) VALUES (4076, '10 -1 10 -1 0 5');
+INSERT INTO pagc_rules (id, rule) VALUES (4077, '10 12 -1 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4078, '10 12 23 23 13 13 -1 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4079, '10 12 0 -1 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4080, '10 12 0 0 -1 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4081, '10 12 27 -1 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4082, '10 12 27 26 -1 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4083, '10 12 28 -1 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4084, '10 12 28 29 -1 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4085, '10 23 23 13 13 -1 10 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4086, '10 23 23 13 13 12 -1 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4087, '10 0 -1 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4088, '10 0 12 -1 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4089, '10 0 0 -1 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4090, '10 0 0 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4091, '10 27 -1 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4092, '10 27 12 -1 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4093, '10 27 26 -1 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4094, '10 27 26 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4095, '10 28 -1 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4096, '10 28 12 -1 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4097, '10 28 29 -1 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4098, '10 28 29 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4099, '10 11 -1 10 11 -1 0 13');
+INSERT INTO pagc_rules (id, rule) VALUES (4100, '10 11 12 -1 10 11 12 -1 0 15');
+INSERT INTO pagc_rules (id, rule) VALUES (4101, '10 11 12 23 23 13 13 -1 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4102, '10 11 12 0 -1 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4103, '10 11 12 0 0 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4104, '10 11 12 27 -1 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4105, '10 11 12 27 26 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4106, '10 11 12 28 -1 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4107, '10 11 12 28 29 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4108, '10 11 23 23 13 13 -1 10 11 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4109, '10 11 23 23 13 13 12 -1 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4110, '10 11 0 -1 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4111, '10 11 0 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4112, '10 11 0 0 -1 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4113, '10 11 0 0 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4114, '10 11 27 -1 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4115, '10 11 27 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4116, '10 11 27 26 -1 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4117, '10 11 27 26 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4118, '10 11 28 -1 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4119, '10 11 28 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4120, '10 11 28 29 -1 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4121, '10 11 28 29 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4122, '1 -1 10 -1 0 5');
+INSERT INTO pagc_rules (id, rule) VALUES (4123, '1 12 -1 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4124, '1 12 23 23 13 13 -1 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4125, '1 12 0 -1 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4126, '1 12 0 0 -1 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4127, '1 12 27 -1 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4128, '1 12 27 26 -1 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4129, '1 12 28 -1 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4130, '1 12 28 29 -1 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4131, '1 23 23 13 13 -1 10 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4132, '1 23 23 13 13 12 -1 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4133, '1 0 -1 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4134, '1 0 12 -1 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4135, '1 0 0 -1 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4136, '1 0 0 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4137, '1 27 -1 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4138, '1 27 12 -1 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4139, '1 27 26 -1 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4140, '1 27 26 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4141, '1 28 -1 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4142, '1 28 12 -1 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4143, '1 28 29 -1 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4144, '1 28 29 12 -1 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4145, '1 11 -1 10 11 -1 0 13');
+INSERT INTO pagc_rules (id, rule) VALUES (4146, '1 11 12 -1 10 11 12 -1 0 15');
+INSERT INTO pagc_rules (id, rule) VALUES (4147, '1 11 12 23 23 13 13 -1 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4148, '1 11 12 0 -1 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4149, '1 11 12 0 0 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4150, '1 11 12 27 -1 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4151, '1 11 12 27 26 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4152, '1 11 12 28 -1 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4153, '1 11 12 28 29 -1 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4154, '1 11 23 23 13 13 -1 10 11 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4155, '1 11 23 23 13 13 12 -1 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4156, '1 11 0 -1 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4157, '1 11 0 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4158, '1 11 0 0 -1 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4159, '1 11 0 0 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4160, '1 11 27 -1 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4161, '1 11 27 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4162, '1 11 27 26 -1 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4163, '1 11 27 26 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4164, '1 11 28 -1 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4165, '1 11 28 12 -1 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4166, '1 11 28 29 -1 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4167, '1 11 28 29 12 -1 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4168, '22 1 -1 10 10 -1 0 5');
+INSERT INTO pagc_rules (id, rule) VALUES (4169, '22 1 12 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4170, '22 1 12 23 23 13 13 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4171, '22 1 12 0 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4172, '22 1 12 0 0 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4173, '22 1 12 27 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4174, '22 1 12 27 26 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4175, '22 1 12 28 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4176, '22 1 12 28 29 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4177, '22 1 23 23 13 13 -1 10 10 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4178, '22 1 23 23 13 13 12 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4179, '22 1 0 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4180, '22 1 0 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4181, '22 1 0 0 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4182, '22 1 0 0 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4183, '22 1 27 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4184, '22 1 27 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4185, '22 1 27 26 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4186, '22 1 27 26 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4187, '22 1 28 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4188, '22 1 28 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4189, '22 1 28 29 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4190, '22 1 28 29 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4191, '22 1 11 -1 10 10 11 -1 0 13');
+INSERT INTO pagc_rules (id, rule) VALUES (4192, '22 1 11 12 -1 10 10 11 12 -1 0 15');
+INSERT INTO pagc_rules (id, rule) VALUES (4193, '22 1 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4194, '22 1 11 12 0 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4195, '22 1 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4196, '22 1 11 12 27 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4197, '22 1 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4198, '22 1 11 12 28 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4199, '22 1 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4200, '22 1 11 23 23 13 13 -1 10 10 11 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4201, '22 1 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4202, '22 1 11 0 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4203, '22 1 11 0 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4204, '22 1 11 0 0 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4205, '22 1 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4206, '22 1 11 27 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4207, '22 1 11 27 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4208, '22 1 11 27 26 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4209, '22 1 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4210, '22 1 11 28 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4211, '22 1 11 28 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4212, '22 1 11 28 29 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4213, '22 1 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4214, '1 22 -1 10 10 -1 0 5');
+INSERT INTO pagc_rules (id, rule) VALUES (4215, '1 22 12 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4216, '1 22 12 23 23 13 13 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4217, '1 22 12 0 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4218, '1 22 12 0 0 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4219, '1 22 12 27 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4220, '1 22 12 27 26 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4221, '1 22 12 28 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4222, '1 22 12 28 29 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4223, '1 22 23 23 13 13 -1 10 10 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4224, '1 22 23 23 13 13 12 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4225, '1 22 0 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4226, '1 22 0 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4227, '1 22 0 0 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4228, '1 22 0 0 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4229, '1 22 27 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4230, '1 22 27 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4231, '1 22 27 26 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4232, '1 22 27 26 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4233, '1 22 28 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4234, '1 22 28 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4235, '1 22 28 29 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4236, '1 22 28 29 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4237, '1 22 11 -1 10 10 11 -1 0 13');
+INSERT INTO pagc_rules (id, rule) VALUES (4238, '1 22 11 12 -1 10 10 11 12 -1 0 15');
+INSERT INTO pagc_rules (id, rule) VALUES (4239, '1 22 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4240, '1 22 11 12 0 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4241, '1 22 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4242, '1 22 11 12 27 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4243, '1 22 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4244, '1 22 11 12 28 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4245, '1 22 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4246, '1 22 11 23 23 13 13 -1 10 10 11 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4247, '1 22 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4248, '1 22 11 0 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4249, '1 22 11 0 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4250, '1 22 11 0 0 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4251, '1 22 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4252, '1 22 11 27 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4253, '1 22 11 27 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4254, '1 22 11 27 26 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4255, '1 22 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4256, '1 22 11 28 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4257, '1 22 11 28 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4258, '1 22 11 28 29 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4259, '1 22 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4260, '2 1 -1 10 10 -1 0 5');
+INSERT INTO pagc_rules (id, rule) VALUES (4261, '2 1 12 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4262, '2 1 12 23 23 13 13 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4263, '2 1 12 0 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4264, '2 1 12 0 0 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4265, '2 1 12 27 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4266, '2 1 12 27 26 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4267, '2 1 12 28 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4268, '2 1 12 28 29 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4269, '2 1 23 23 13 13 -1 10 10 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4270, '2 1 23 23 13 13 12 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4271, '2 1 0 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4272, '2 1 0 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4273, '2 1 0 0 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4274, '2 1 0 0 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4275, '2 1 27 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4276, '2 1 27 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4277, '2 1 27 26 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4278, '2 1 27 26 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4279, '2 1 28 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4280, '2 1 28 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4281, '2 1 28 29 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4282, '2 1 28 29 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4283, '2 1 11 -1 10 10 11 -1 0 13');
+INSERT INTO pagc_rules (id, rule) VALUES (4284, '2 1 11 12 -1 10 10 11 12 -1 0 15');
+INSERT INTO pagc_rules (id, rule) VALUES (4285, '2 1 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4286, '2 1 11 12 0 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4287, '2 1 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4288, '2 1 11 12 27 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4289, '2 1 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4290, '2 1 11 12 28 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4291, '2 1 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4292, '2 1 11 23 23 13 13 -1 10 10 11 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4293, '2 1 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4294, '2 1 11 0 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4295, '2 1 11 0 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4296, '2 1 11 0 0 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4297, '2 1 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4298, '2 1 11 27 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4299, '2 1 11 27 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4300, '2 1 11 27 26 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4301, '2 1 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4302, '2 1 11 28 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4303, '2 1 11 28 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4304, '2 1 11 28 29 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4305, '2 1 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4306, '1 2 -1 10 10 -1 0 5');
+INSERT INTO pagc_rules (id, rule) VALUES (4307, '1 2 12 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4308, '1 2 12 23 23 13 13 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4309, '1 2 12 0 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4310, '1 2 12 0 0 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4311, '1 2 12 27 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4312, '1 2 12 27 26 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4313, '1 2 12 28 -1 10 10 12 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4314, '1 2 12 28 29 -1 10 10 12 13 13 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4315, '1 2 23 23 13 13 -1 10 10 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4316, '1 2 23 23 13 13 12 -1 10 10 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4317, '1 2 0 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4318, '1 2 0 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4319, '1 2 0 0 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4320, '1 2 0 0 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4321, '1 2 27 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4322, '1 2 27 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4323, '1 2 27 26 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4324, '1 2 27 26 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4325, '1 2 28 -1 10 10 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4326, '1 2 28 12 -1 10 10 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4327, '1 2 28 29 -1 10 10 13 13 -1 0 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4328, '1 2 28 29 12 -1 10 10 13 13 12 -1 0 3');
+INSERT INTO pagc_rules (id, rule) VALUES (4329, '1 2 11 -1 10 10 11 -1 0 13');
+INSERT INTO pagc_rules (id, rule) VALUES (4330, '1 2 11 12 -1 10 10 11 12 -1 0 15');
+INSERT INTO pagc_rules (id, rule) VALUES (4331, '1 2 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4332, '1 2 11 12 0 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4333, '1 2 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4334, '1 2 11 12 27 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4335, '1 2 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4336, '1 2 11 12 28 -1 10 10 11 12 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4337, '1 2 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4338, '1 2 11 23 23 13 13 -1 10 10 11 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4339, '1 2 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4340, '1 2 11 0 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4341, '1 2 11 0 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4342, '1 2 11 0 0 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4343, '1 2 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4344, '1 2 11 27 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4345, '1 2 11 27 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4346, '1 2 11 27 26 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4347, '1 2 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4348, '1 2 11 28 -1 10 10 11 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4349, '1 2 11 28 12 -1 10 10 11 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) VALUES (4350, '1 2 11 28 29 -1 10 10 11 13 13 -1 0 16');
+INSERT INTO pagc_rules (id, rule) VALUES (4351, '1 2 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
+INSERT INTO pagc_rules (id, rule) values (4352, '16 0 22 -1 16 17 17 -1 4 7');
+INSERT INTO pagc_rules (id, rule) VALUES (4353, '0 1 6 -1 1 5 5 -1 1 9');
+INSERT INTO pagc_rules (id, rule) VALUES (4355, '-1');
+
+-- for some reason all rules are coming in as custom.  just force by id
+UPDATE tiger.pagc_rules SET is_custom = false where id < 10000;
+-- after insert we need to set back to true so all 
+-- user inputs are treated as custom 
+ALTER TABLE tiger.pagc_rules ALTER COLUMN is_custom SET DEFAULT true;
+SELECT pg_catalog.setval('pagc_rules_id_seq', 10000, true);
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/regress/geocode_regress b/extras/tiger_geocoder/regress/geocode_regress
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/regress/geocode_regress
rename to extras/tiger_geocoder/regress/geocode_regress
diff --git a/extras/tiger_geocoder/regress/geocode_regress.sql b/extras/tiger_geocoder/regress/geocode_regress.sql
new file mode 100644
index 0000000..f4d83ac
--- /dev/null
+++ b/extras/tiger_geocoder/regress/geocode_regress.sql
@@ -0,0 +1,108 @@
+\timing
+-- Limit 1
+SELECT 'T1', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('529 Main Street, Boston, MA 02129',1);
+SELECT 'T2', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02109',1);
+SELECT 'T3', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, Boston, MA 02109',1);
+-- default
+SELECT 'T4', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('529 Main Street, Boston, MA 02129');
+SELECT 'T5', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02109');
+SELECT 'T6', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, Boston,MA 02109');
+
+-- 20
+SELECT 'T7', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('529 Main Street, Boston, MA 02129',20);
+SELECT 'T8', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02109',20);
+SELECT 'T9', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, Boston, MA 02109',20);
+
+-- Limit 1 - Test caching effects
+SELECT 'T10', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('530 Main Street, Boston MA, 02129',1);
+SELECT 'T11', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('76 State Street, Boston MA, 02109',1);
+SELECT 'T12', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Federal Street, Boston, MA',20);
+
+-- Test batch geocoding along a street
+SELECT '#TB1' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target::text,1) As g, target FROM (VALUES ('24 School Street, Boston, MA 02108'), ('20 School Street, Boston, MA 02109')) As f(target) ) As foo;
+
+-- Partial address
+SELECT 'T13', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Federal Street, Boston MA',20);
+SELECT 'T14', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Federal Street, Boston MA',1);
+
+--Test misspellings and missing zip --
+SELECT 'T15', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Fedaral Street, Boston, MA',1);
+SELECT 'T16', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Fedaral Street, Boston, MA',50);
+
+-- needs addr these ones have more than 2 sides 
+-- my alma mater doesn't geocode right without addr check  --
+SELECT 'T17', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('77 Massachusetts Avenue, Cambridge, MA 02139',1);
+
+-- zip provided but no state - should still be fast under 250ms
+SELECT 'T18a', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('26 Court Street, 02109',1);
+SELECT 'T18b', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('26 Court Street,Boston,02109',1);
+
+-- Ratings wrong for missing or wrong local zips
+SELECT '#1087a' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02110',3);
+SELECT '#1087b' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA',3);
+--right zip
+SELECT '#1087c' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02109',1);
+
+--Geocoding mangled zipcodes
+SELECT '#1073a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '212 3rd Ave N, MINNEAPOLIS, MN 553404'::text As target) AS f)  As foo;
+SELECT '#1073b' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('212 3rd Ave N, MINNEAPOLIS, MN 55401-',2);
+
+-- country roads and highways with spaces in street type
+SELECT '#1076a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '16725 Co Rd 24, Plymouth, MN 55447'::text As target) As f) As foo;  
+SELECT '#1076b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '16725 County Road 24, Plymouth, MN 55447'::text As target) As f) As foo;
+SELECT '#1076c' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '13800 County Hwy 9, Andover, MN 55304'::text As target) AS f) As foo; 
+SELECT '#1076d' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '13800 9, Andover, MN 55304'::text As target) AS f) As foo; 
+SELECT '#1076e' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,4) As g, target FROM (SELECT '3900 Route 6, Eastham, Massachusetts 02642'::text As target) AS f) As foo; 
+
+-- country road that starts with a letter
+SELECT '#1076f' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,3) As g, target FROM (SELECT '1940 County Road C W, Roseville, MN 55113'::text As target) AS f) As foo; 
+
+-- ad road that in some sections no street range recorded --
+SELECT '#1076g' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '15709 Rockford Road, Plymouth, MN 55447'::text As target) As f) AS foo;
+
+-- testing RT common abbreviation for route, ensure asking for 1 gives most probable  --
+SELECT '#1076h' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,3) As g, target FROM (SELECT '300 Rt 3A, Hingham, MA'::text As target) As f) As foo;
+
+-- alternate spellings
+SELECT '#1074a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '8525 COTTAGE WOOD TERR, Blaine, MN 55434'::text As target) As f) AS foo;
+SELECT '#1074b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '8525 COTTAGEWOOD TERR, Blaine, MN 55434'::text As target) As f) AS foo;
+
+-- testing region --
+SELECT '#1070a' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, Boston, MA 02109',3, (SELECT ST_Union(the_geom) FROM place WHERE statefp = '25' AND name = 'Lynn')::geometry);
+SELECT '#1070b' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, MA',3, (SELECT ST_Union(the_geom) FROM place WHERE statefp = '25' AND name = 'Lynn')::geometry);
+
+
+-- service roads and interstates
+SELECT '#1112a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8401 W 35W Service Dr NE, Blaine, MN 55449'::text As target) As f) As foo; 
+SELECT '#1112b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '8401 35W, Blaine, MN 55449'::text As target) As f) As foo; 
+SELECT '#1112c' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '8401 35W West, Blaine, MN 55449'::text As target) As f) As foo; 
+SELECT '#1112d' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '8401 West 35W, Blaine, MN 55449'::text As target) As f) As foo; 
+SELECT '#1112e' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '8401 W 35W, Blaine, MN 55449'::text As target) As f) As foo; 
+
+-- working with prequalabrv such as Old .. something or other
+SELECT '#1113a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8040 OLD CEDAR AVE S, BLOOMINGTON, MN 55425'::text As target) As f) As foo; 
+SELECT '#1113b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8040 CEDAR AVE S, BLOOMINGTON, MN 55425'::text As target) As f) As foo;
+SELECT '#1113c' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '17405 Old Rockford Rd, Plymouth, MN 55446'::text As target) As f) As foo;
+SELECT '#1113d' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '17405 Rockford Rd, Plymouth, MN 55446'::text As target) As f) As foo;
+SELECT '#1113e' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '198 OLD CONSTANCE BLVD, ANDOVER, MN 55304'::text As target) As f) As foo;
+SELECT '#1113f' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '198 CONSTANCE BLVD, ANDOVER, MN 55304'::text As target) As f) As foo;
+
+-- #1145 addresses used to be slow to geocode took minutes
+SELECT '#1145a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '4051 27th Ave S Minneapolis MN 55405'::text As target) As f) As foo; 
+SELECT '#1145b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '3625 18th Ave S Minneapolis MN 55406'::text As target) As f) As foo; 
+SELECT '#1145c' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '4057 10th Ave S Minneapolis MN 55406'::text As target) As f) As foo; 
+SELECT '#1145d' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8512 141 St Ct Apple Valley MN 55124'::text As target) As f) As foo; 
+SELECT '#1145e' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '103 36th St W Minneapolis MN 55409'::text As target) As f) As foo;
+
+-- cross street intersection
+SELECT '#1333a' AS ticket, pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('Weld', 'School', 'MA', 'Boston');
+SELECT '#1333b' AS ticket, pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('Haverford St','Germania St', 'MA', 'Boston', '02130',1);
+
+-- crossing highways fails -- zip check
+SELECT '#1392a' AS ticket, pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('State Hwy 121', 'N Denton Tap Rd', 'TX', 'Coppell', '', 2);
+SELECT '#1392b' AS ticket, pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('State Hwy 121', 'N Denton Tap Rd', 'TX','', '', 2);
+--
+
+-- Geocode 1 not returning best answer
+SELECT '#2899' AS ticket, st_astext(ST_SnapToGrid(geomout,0.0001)),rating FROM geocode('22 Minnow Ln, Westbrook, CT 06498',1);
+\timing
diff --git a/extras/tiger_geocoder/regress/normalize_address_desired_regress b/extras/tiger_geocoder/regress/normalize_address_desired_regress
new file mode 100644
index 0000000..bf6073e
--- /dev/null
+++ b/extras/tiger_geocoder/regress/normalize_address_desired_regress
@@ -0,0 +1,45 @@
+#887|2450|N|COLORADO|St|||PHILADELPHIA|PA|19132|t
+#1051a|212||3rd|Ave|N|Suite 560|Minneapolis|MN|55401|t
+#1051b|3937||43RD|Ave|S||MINNEAPOLIS|MN|55406|t
+#1051c|212|N|3rd|Ave|||Minneapolis|MN|55401|t
+#1051d|212||3rd|Ave|N||Minneapolis|MN|55401|t
+529||Main|St|||Boston|MA|02129|t
+529||Main|St|||Boston|MA|02129|t
+529||Main|St|||Boston|MA||t
+529||Main|St||Apt 201|Boston|MA|02129|t
+529||Main|St||Apt 201|Boston|MA|02129|t
+529||Main|St||Apt 201|Boston|MA||t
+#1108a|529||Main|St||Suite 201|Boston|MA|02129|t
+#1073a|212||3rd|Ave|N||MINNEAPOLIS|MN|553404|t
+#1073b|212||3rd|Ave|N||MINNEAPOLIS|MN|55401|t
+#1073c|529||Main|St|||Boston|MA|021|t
+#1086a|949|N|3rd|St|||New Hyde Park|NY|11040|t
+#1086b|949|N|3rd|St|||New Hyde Park|NY|11040|t
+#1076a|16725||24|Co Rd|||Plymouth|MN|55447|t
+#1076b|16725||24|Co Rd|||Plymouth|MN|55447|t
+#1076c|13800||9|Co Hwy|||Andover|MN|55304|t
+#1076d|13800||9||||Andover|MN|55304|t
+#1076e|14||Forest|Rd|||Acton|MA||t
+#1076f|1940||C|Co Rd|W||Roseville|MN|55113|t
+#1076g|3900||6|Rte|||Eastham|MA|02642|t
+#1076h|4533||PARK|Ave|S||MINNEAPOLIS|MN|55407|t
+#1076i|4533||33|Co Rd|||MINNEAPOLIS|MN|55407|t
+#1109a|4373||LAKE|Dr|||ROBBINSDALE|MN|55422|t
+#1109b|4373||LAKE|Dr|||ROBBINSDALE|MN|55422|t
+#1074a|3420||RHODE ISLAND|Ave|S||ST. LOUIS PARK|MN|55426|t
+#1074b|26||Court|St|||Boston|MA|02109|t
+#1112a|8401|W|35W|Svc Dr|NE||Blaine|MN|55449|t
+#1112b|8401||35W||||Blaine|MN|55449|t
+#1112c|8401||35W||W||Blaine|MN|55449|t
+#1112d|8401|W|35W||||Blaine|MN|55449|t
+#1112e|8401|W|35W||||Blaine|MN|55449|t
+#1125a|19596 Co Rd 480, COLCORD, OK 74338
+#1125b|4345 Rte 353, SALAMANCA, NY 14779|4345||353|Rte|||SALAMANCA|NY|14779|t
+#1125c|19799 State Rte O, COSBY, MO 64436|19799||O|State Rte|||COSBY|MO|64436|t
+#1125d|I- 90, Boston, MA|||90|I-|||Boston|MA||t
+#1125e|I- 90, Boston, MA|||90|I-|||Boston|MA||t
+#1125f|I- 90, Boston, MA|||90|I-|||Boston|MA||t
+#1310a|1110 W CAPITOL Ave, WEST SACRAMENTO, CA|1110|W|CAPITOL|Ave|||WEST SACRAMENTO|CA||t
+#1614a|8435 Co Rd 20 SE, ROCHESTER, MN 55904|8435||20|Co Rd|SE||ROCHESTER|MN|55904|t
+#1614b|3208 US Hwy 52, Rochester, MN 55901|3208||52|US Hwy|||Rochester|MN|55901|t
+#1108a|529 Main St, Suite 201, Boston, MA 02129|529||Main|St||Suite 201|Boston|MA|02129|t
diff --git a/extras/tiger_geocoder/regress/normalize_address_regress b/extras/tiger_geocoder/regress/normalize_address_regress
new file mode 100644
index 0000000..3eab17e
--- /dev/null
+++ b/extras/tiger_geocoder/regress/normalize_address_regress
@@ -0,0 +1,45 @@
+#887|2450|N|COLORADO|St|||PHILADELPHIA|PA|19132|t
+#1051a|212||3rd|Ave|N|Suite 560|Minneapolis|MN|55401|t
+#1051b|3937||43RD|Ave|S||MINNEAPOLIS|MN|55406|t
+#1051c|212|N|3rd|Ave|||Minneapolis|MN|55401|t
+#1051d|212||3rd|Ave|N||Minneapolis|MN|55401|t
+529||Main|St|||Boston|MA|02129|t
+529||Main|St|||Boston|MA|02129|t
+529||Main|St|||Boston|MA||t
+529||Main|St||Apt 201|Boston|MA|02129|t
+529||Main|St||Apt 201|Boston|MA|02129|t
+529||Main|St||Apt 201|Boston|MA||t
+#1108a|529||Main|St||Suite 201|Boston|MA|02129|t
+#1073a|212||3rd|Ave|N||MINNEAPOLIS|MN|553404|t
+#1073b|212||3rd|Ave|N||MINNEAPOLIS|MN|55401|t
+#1073c|529||Main|St|||Boston|MA|021|t
+#1086a|949|N|3rd|St|||New Hyde Park|NY|11040|t
+#1086b|949|N|3rd|St|||New Hyde Park|NY|11040|t
+#1076a|16725||24|Co Rd|||Plymouth|MN|55447|t
+#1076b|16725||24|Co Rd|||Plymouth|MN|55447|t
+#1076c|13800||9|Co Hwy|||Andover|MN|55304|t
+#1076d|13800||9||||Andover|MN|55304|t
+#1076e|14||Forest|Rd|||Acton|MA||t
+#1076f|1940||C|Co Rd|W||Roseville|MN|55113|t
+#1076g|3900||6|Rte|||Eastham|MA|02642|t
+#1076h|4533||PARK|Ave|S||MINNEAPOLIS|MN|55407|t
+#1076i|4533||33|Co Rd|||MINNEAPOLIS|MN|55407|t
+#1109a|4373||LAKE|Dr|||ROBBINSDALE|MN|55422|t
+#1109b|4373||LAKE|Dr|||ROBBINSDALE|MN|55422|t
+#1074a|3420||RHODE ISLAND|Ave|S||ST. LOUIS PARK|MN|55426|t
+#1074b|26||Court|St|||Boston|MA|02109|t
+#1112a|8401|W|35W|Svc Dr|NE||Blaine|MN|55449|t
+#1112b|8401||35W||||Blaine|MN|55449|t
+#1112c|8401||35W||W||Blaine|MN|55449|t
+#1112d|8401|W|35W||||Blaine|MN|55449|t
+#1112e|8401|W|35W||||Blaine|MN|55449|t
+#1125a|19596 Co Rd 480, COLCORD, OK 74338
+#1125b|4345 353 Rte, SALAMANCA, NY 14779|4345||353|Rte|||SALAMANCA|NY|14779|t
+#1125c|19799 State Rte O, COSBY, MO 64436|19799||O|State Rte|||COSBY|MO|64436|t
+#1125d|Interstate 90, Boston, MA|||Interstate 90||||Boston|MA||t
+#1125e|I-90,Boston, MA|||I-90,Boston|||||MA||t
+#1125f|I 90, Boston, MA|||I 90||||Boston|MA||t
+#1310a|1110 W CAPITOL Ave, WEST SACRAMENTO, CA|1110|W|CAPITOL|Ave|||WEST SACRAMENTO|CA||t
+#1614a|8435 Co Rd 20 SE, ROCHESTER, MN 55904|8435||20|Co Rd|SE||ROCHESTER|MN|55904|t
+#1614b|3208 US Hwy 52, Rochester, MN 55901|3208||52|US Hwy|||Rochester|MN|55901|t
+#1108a|529 Main St, Suite 201, Boston, MA 02129|529||Main|St||Suite 201|Boston|MA|02129|t
diff --git a/extras/tiger_geocoder/regress/normalize_address_regress.sql b/extras/tiger_geocoder/regress/normalize_address_regress.sql
new file mode 100644
index 0000000..8982884
--- /dev/null
+++ b/extras/tiger_geocoder/regress/normalize_address_regress.sql
@@ -0,0 +1,99 @@
+--\timing
+SELECT '#887' As ticket, * FROM normalize_address('2450 N COLORADO ST, PHILADELPHIA, PA, 19132');
+SELECT '#1051a' As ticket, * FROM normalize_address('212 3rd Ave N Suite 560, Minneapolis, MN 55401');
+SELECT '#1051b' As ticket, * FROM normalize_address('3937 43RD AVE S, MINNEAPOLIS, MN 55406');
+SELECT '#1051c' As ticket, * FROM normalize_address('212 N 3rd Ave, Minneapolis, MN 55401');
+-- City missing ,  -- NOTE this one won't normalize right if you don't have MN data loaded
+SELECT '#1051d' As ticket, * FROM normalize_address('212 3rd Ave N Minneapolis, MN 55401'); 
+-- comma in wrong spot
+SELECT * FROM normalize_address('529 Main Street, Boston MA, 02129');
+-- comma in right spot
+SELECT * FROM normalize_address('529 Main Street, Boston,MA 02129');
+-- partial address
+SELECT * FROM normalize_address('529 Main Street, Boston, MA');
+-- Full address with suite using ,
+SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA 02129');
+-- Full address with apart using space
+SELECT * FROM normalize_address('529 Main Street Apt 201, Boston, MA 02129');
+-- Partial address with apartment
+SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA');
+
+--This one fails so lead out for now
+SELECT '#1108a' As ticket, * FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129');
+
+-- Partial and Mangled zipcodes
+SELECT '#1073a' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 553404');
+SELECT '#1073b' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 55401-');
+SELECT '#1073c' As ticket, * FROM normalize_address('529 Main Street, Boston, MA 021');
+
+-- comma in wrong position
+SELECT '#1086a' As ticket, * FROM normalize_address('949 N 3rd St, New Hyde Park, NY, 11040');
+
+-- comma in right position --
+SELECT '#1086b' As ticket, * FROM normalize_address('949 N 3rd St, New Hyde Park, NY 11040');
+
+-- country roads and highways with spaces in street type
+SELECT '#1076a' As ticket, * FROM normalize_address('16725 Co Rd 24, Plymouth, MN 55447'); 
+SELECT '#1076b' As ticket, * FROM normalize_address('16725 County Road 24, Plymouth, MN 55447'); 
+SELECT '#1076c' As ticket, * FROM normalize_address('13800 County Hwy 9, Andover, MN 55304');
+SELECT '#1076d' As ticket, * FROM normalize_address('13800 9, Andover, MN 55304');
+-- this one is a regular street that happens to have a street type as the name
+SELECT '#1076e' As ticket, * FROM normalize_address('14 Forest Road, Acton, MA');
+
+-- A country road with a letter name and direction 
+-- NOTE this doesn't completely normalize right since the direction W is being cut off --
+SELECT '#1076f' As ticket, * FROM normalize_address('1940 County Road C W, Roseville, MN 55113'); 
+
+-- Route with a name that sounds like a direction --
+SELECT '#1076g' As ticket, * FROM normalize_address('3900 Route 6, Eastham, Massachusetts 02642');
+
+-- Street that has same name as type  --
+SELECT '#1076h' As ticket, * FROM normalize_address('4533 PARK AVE S, MINNEAPOLIS, MN 55407');
+-- same street with alternate county name
+SELECT '#1076i' As ticket, * FROM normalize_address('4533 County Road 33, MINNEAPOLIS, MN 55407'); 
+
+-- Same case of street type that has name as a type --
+-- this matches -
+SELECT '#1109a' As ticket, * from normalize_address('4373 LAKE DRIVE, ROBBINSDALE, MN 55422');
+
+-- this failed --
+SELECT '#1109b' As ticket, * from normalize_address('4373 LAKE DR, ROBBINSDALE, MN 55422');
+
+-- another type (Is) that is part of street name but a compound street name
+SELECT '#1074a' As ticket, * FROM normalize_address('3420 RHODE ISLAND AVE S, ST. LOUIS PARK, MN 55426');
+
+-- another type that is part of street name --
+SELECT '#1074b' As ticket, * FROM normalize_address('26 Court Street, Boston,MA 02109');
+
+-- service roads and interstates
+SELECT '#1112a' As ticket, * FROM normalize_address('8401 W 35W Service Dr NE, Blaine, MN 55449');
+SELECT '#1112b' As ticket, * FROM normalize_address('8401 35W, Blaine, MN 55449');
+SELECT '#1112c' As ticket, * FROM normalize_address('8401 35W West, Blaine, MN 55449');
+SELECT '#1112d' As ticket, * FROM normalize_address('8401 West 35W, Blaine, MN 55449');
+SELECT '#1112e' As ticket, * FROM normalize_address('8401 W 35W, Blaine, MN 55449');
+
+-- Testing pretty print of highway addresses
+-- These tests excerpted from Brian Hamlin's CASS failures 
+-- in #1077
+SELECT '#1125a' As ticket, pprint_addy(normalize_address('19596 COUNTY ROAD 480, COLCORD, OK 74338'));
+--(somehow broke #1125b
+SELECT '#1125b' As ticket, pprint_addy(addy), addy.* FROM normalize_address('4345 ROUTE 353, SALAMANCA, NY 14779') AS addy;
+SELECT '#1125c' As ticket, pprint_addy(addy), addy.* FROM normalize_address('19799 STATE ROUTE O, COSBY, MO 64436') AS addy;
+
+-- some more to test interstate permutations - currently fails
+SELECT '#1125d' As ticket, pprint_addy(addy), addy.* FROM normalize_address('Interstate 90,Boston, MA') As addy;
+-- this one is wrong (because the lack of space trips it up) but will fix later
+SELECT '#1125e' As ticket, pprint_addy(addy), addy.* FROM normalize_address('I-90,Boston, MA') As addy;
+--broke this one too
+SELECT '#1125f' As ticket, pprint_addy(addy), addy.* FROM normalize_address('I 90,Boston, MA') As addy;
+
+-- location with prefixes getting caught in post prefix
+SELECT '#1310a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('1110 W CAPITOL AVE, WEST SACRAMENTO, CA') As addy;
+
+-- #1614 County Rd
+SELECT '#1614a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('8435 COUNTY RD 20 SE, ROCHESTER, MN 55904') As addy;
+SELECT '#1614b' As ticket, pprint_addy(addy), addy.* FROM normalize_address('3208 U.S. 52, Rochester, MN 55901') As addy;
+
+--internal address prefix sometimes get caught in post dir
+SELECT '#1108a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129') AS addy;
+--\timing
diff --git a/extras/tiger_geocoder/regress/pagc_normalize_address_desired_regress b/extras/tiger_geocoder/regress/pagc_normalize_address_desired_regress
new file mode 100644
index 0000000..c5907a3
--- /dev/null
+++ b/extras/tiger_geocoder/regress/pagc_normalize_address_desired_regress
@@ -0,0 +1,46 @@
+true
+#887|2450|N|COLORADO|ST|||PHILADELPHIA|PA|19132|t
+#1051a|212||3RD|AVE|N|SUITE 560|MINNEAPOLIS|MN|55401|t
+#1051b|3937||43RD|AVE|S||MINNEAPOLIS|MN|55406|t
+#1051c|212|N|3RD|AVE|||MINNEAPOLIS|MN|55401|t
+#1051d|212||3RD|AVE|||MINNEAPOLIS|MN|N 55401|t
+529||MAIN|ST|||BOSTON|MA|02129|t
+529||MAIN|ST|||BOSTON|MA|02129|t
+529||MAIN|ST|||BOSTON|MA||t
+529||MAIN|ST||APARTMENT 201|BOSTON|MA|02129|t
+529||MAIN|ST||APARTMENT 201|BOSTON|MA|02129|t
+529||MAIN|ST||APARTMENT 201|BOSTON|MA||t
+#1108a|529||MAIN|ST||SUITE 201|BOSTON|MA|02129|t
+#1073a|212||3RD|AVE|N||MINNEAPOLIS|MN|553404|t
+#1073b|212||3RD|AVE|N||MINNEAPOLIS|MN|55401|t
+#1073c|529||MAIN|ST|||BOSTON|MA|021|t
+#1086a|949|N|3|ST|||NEW HYDE PARK|NY|11040|t
+#1086b|949|N|3|ST|||NEW HYDE PARK|NY|11040|t
+#1076a|16725||24|CO RD|||PLYMOUTH|MN|55447|t
+#1076b|16725||24|CO RD|||PLYMOUTH|MN|55447|t
+#1076c|13800||9|CO HWY|||ANDOVER|MN|55304|t
+#1076d|13800||9||||ANDOVER|MN|55304|t
+#1076e|14||FOREST|RD|||ACTON|MA||t
+#1076f|1940||C|CO RD|W||ROSEVILLE|MN|55113|t
+#1076g|3900||6|RTE|||EASTHAM|MA|02642|t
+#1076h|4533||PARK|AVE|S||MINNEAPOLIS|MN|55407|t
+#1076i|4533||33|CO RD|||MINNEAPOLIS|MN|55407|t
+#1109a|4373||LAKE|DR|||ROBBINSDALE|MN|55422|t
+#1109b|4373||LAKE|DR|||ROBBINSDALE|MN|55422|t
+#1074a|3420||RHODE ISLAND|AVE|S||SAINT LOUIS PARK|MN|55426|t
+#1074b|26||COURT|ST|||BOSTON|MA|02109|t
+#1112a|8401|W|35 W|SVC DR|NE||BLAINE|MN|55449|t
+#1112b|8401||35 W||||BLAINE|MN|55449|t
+#1112c|8401||35 W||W||BLAINE|MN|55449|t
+#1112d|8401|W|35||W||BLAINE|MN|55449|t
+#1112e|8401|W|35||W||BLAINE|MN|55449|t
+#1125a|19596 CO RD 480, COLCORD, OK 74338
+#1125b|4345 353 RTE, SALAMANCA, NY 14779|4345||353|RTE|||SALAMANCA|NY|14779|t
+#1125c|19799 STATE RTE 0, COSBY, MO 64436|19799||0|STATE RTE|||COSBY|MO|64436|t
+#1125d|||||||||||t
+#1125e|||||||||||t
+#1125f|||||||||||t
+#1310a|1110 W CAPITOL AVE, WEST SACRAMENTO, CA|1110|W|CAPITOL|AVE|||WEST SACRAMENTO|CA||t
+#1614a|8435 CO RD 20 SE, ROCHESTER, MN 55904|8435||20|CO RD|SE||ROCHESTER|MN|55904|t
+#1614b|3208 US RTE 52, ROCHESTER, MN 55901|3208||52|US RTE|||ROCHESTER|MN|55901|t
+false
diff --git a/extras/tiger_geocoder/regress/pagc_normalize_address_regress b/extras/tiger_geocoder/regress/pagc_normalize_address_regress
new file mode 100644
index 0000000..50f704a
--- /dev/null
+++ b/extras/tiger_geocoder/regress/pagc_normalize_address_regress
@@ -0,0 +1,53 @@
+true
+#887|2450|N|COLORADO|ST|||PHILADELPHIA|PA|19132|t
+#1051a|212||3RD|AVE|N|SUITE 560|MINNEAPOLIS|MN|55401|t
+#1051b|3937||43RD|AVE|S||MINNEAPOLIS|MN|55406|t
+#1051c|212|N|3RD|AVE|||MINNEAPOLIS|MN|55401|t
+#1051d|212||3RD|AVE|||MINNEAPOLIS|MN|N 55401|t
+529||MAIN|ST|||BOSTON|MA|02129|t
+529||MAIN|ST|||BOSTON|MA|02129|t
+529||MAIN|ST|||BOSTON|MA||t
+529||MAIN|ST||APARTMENT 201|BOSTON|MA|02129|t
+529||MAIN|ST||APARTMENT 201|BOSTON|MA|02129|t
+529||MAIN|ST||APARTMENT 201|BOSTON|MA||t
+#1108a|529||MAIN|ST||SUITE 201|BOSTON|MA|02129|t
+#1073a|212||3RD|AVE|N||MINNEAPOLIS|MN|55340|t
+#1073b|212||3RD|AVE|N||MINNEAPOLIS|MN|55401|t
+#1073c|529||MAIN|ST||# BOSTON|MASSACHUSETTS||021|t
+#1086a|949|N|3RD|ST|||NEW HYDE PARK|NY|11040|t
+#1086b|949|N|3RD|ST|||NEW HYDE PARK|NY|11040|t
+#1076a|16725||24|CO RD|||PLYMOUTH|MN|55447|t
+#1076b|16725||24|CO RD|||PLYMOUTH|MN|55447|t
+#1076c|13800||9|CO HWY|||ANDOVER|MN|55304|t
+#1076d|13800||9||||ANDOVER|MN|55304|t
+#1076e|14||FOREST|RD|||ACTON|MA||t
+#1076f|1940||C|CO RD|W||ROSEVILLE|MN|55113|t
+#1076g|3900||6|RTE|||EASTHAM|MA|02642|t
+#1076h|4533||PARK|AVE|S||MINNEAPOLIS|MN|55407|t
+#1076i|4533||33|CO RD|||MINNEAPOLIS|MN|55407|t
+#1109a|4373||LAKE|DR|||ROBBINSDALE|MN|55422|t
+#1109b|4373||LAKE|DR|||ROBBINSDALE|MN|55422|t
+#1074a|3420||RHODE ISLAND|AVE|S||SAINT LOUIS PARK|MN|55426|t
+#1074b|26||COURT|ST|||BOSTON|MA|02109|t
+#1112a|8401|W|35 W|SVC DR|NE||BLAINE|MN|55449|t
+#1112b|8401||35 W||||BLAINE|MN|55449|t
+#1112c|8401||35 W||W||BLAINE|MN|55449|t
+#1112d|8401|W|35||W||BLAINE|MN|55449|t
+#1112e|8401|W|35||W||BLAINE|MN|55449|t
+#1125a|19596 CO RD 480, COLCORD, OK 74338
+#1125b|4345 353 RTE, SALAMANCA, NY 14779|4345||353|RTE|||SALAMANCA|NY|14779|t
+#1125c|19799 STATE RTE 0, COSBY, MO 64436|19799||0|STATE RTE|||COSBY|MO|64436|t
+#1125d|||||||||||t
+#1125e|||||||||||t
+#1125f|||||||||||t
+#1310a|1110 W CAPITOL AVE, WEST SACRAMENTO, CA|1110|W|CAPITOL|AVE|||WEST SACRAMENTO|CA||t
+#1614a|8435 CO RD 20 SE, ROCHESTER, MN 55904|8435||20|CO RD|SE||ROCHESTER|MN|55904|t
+#1614b|3208 US RTE 52, ROCHESTER, MN 55901|3208||52|US RTE|||ROCHESTER|MN|55901|t
+#1108a|529 MAIN ST, SUITE 201, BOSTON, MA 02129|529||MAIN|ST||SUITE 201|BOSTON|MA|02129|t
+#3259a|212||3RD|AVE|N|SUITE 560|MINNEAPOLIS|MN|55401|t
+#3259b|3937||43RD|AVE|S||MINNEAPOLIS|MN|55406|t
+#2981|1566||NEW STATE HWY||||RAYNHAM|MA||t
+#2978a|10||DORRANCE|ST|||PROVIDENCE|RI||t
+#2978b|10||DORRANCE|ST|||PROVIDENCE|RI||t
+#2978c|10||DORRANCE|ST|||PROVIDENCE|RI||t
+false
diff --git a/extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql b/extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql
new file mode 100644
index 0000000..148b68e
--- /dev/null
+++ b/extras/tiger_geocoder/regress/pagc_normalize_address_regress.sql
@@ -0,0 +1,112 @@
+SELECT set_geocode_setting('use_pagc_address_parser', 'true');
+--\timing
+SELECT '#887' As ticket, * FROM normalize_address('2450 N COLORADO ST, PHILADELPHIA, PA, 19132');
+-- this currently turns 3rd to 3, we want to fix to keep 3rd as is
+SELECT '#1051a' As ticket, * FROM normalize_address('212 3rd Ave N Suite 560, Minneapolis, MN 55401');
+-- this currently turns 43rd to 43, we want to fix to keep 43rd as is
+SELECT '#1051b' As ticket, * FROM normalize_address('3937 43RD AVE S, MINNEAPOLIS, MN 55406');
+-- this currently turns 3rd to 3, we want to fix to keep 3rd as is
+SELECT '#1051c' As ticket, * FROM normalize_address('212 N 3rd Ave, Minneapolis, MN 55401');
+-- this currently turns 3rd to 3, we want to fix to keep 3rd as is
+SELECT '#1051d' As ticket, * FROM normalize_address('212 3rd Ave N Minneapolis, MN 55401'); 
+-- comma in wrong spot
+SELECT * FROM normalize_address('529 Main Street, Boston MA, 02129');
+-- comma in right spot
+SELECT * FROM normalize_address('529 Main Street, Boston,MA 02129');
+-- partial address
+SELECT * FROM normalize_address('529 Main Street, Boston, MA');
+-- Full address with suite using ,
+SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA 02129');
+-- Full address with apart using space
+SELECT * FROM normalize_address('529 Main Street Apt 201, Boston, MA 02129');
+-- Partial address with apartment
+SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA');
+
+--This one fails so lead out for now
+SELECT '#1108a' As ticket, * FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129');
+
+-- Partial and Mangled zipcodes
+-- this currently fails and puts MINNEAPOLIS inside internal (seems to be a bug in parse address)
+SELECT '#1073a' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 553404');
+SELECT '#1073b' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 55401-');
+SELECT '#1073c' As ticket, * FROM normalize_address('529 Main Street, Boston, MA 021');
+
+-- comma in wrong position
+SELECT '#1086a' As ticket, * FROM normalize_address('949 N 3rd St, New Hyde Park, NY, 11040');
+
+-- comma in right position --
+SELECT '#1086b' As ticket, * FROM normalize_address('949 N 3rd St, New Hyde Park, NY 11040');
+
+-- country roads and highways with spaces in street type
+SELECT '#1076a' As ticket, * FROM normalize_address('16725 Co Rd 24, Plymouth, MN 55447'); 
+SELECT '#1076b' As ticket, * FROM normalize_address('16725 County Road 24, Plymouth, MN 55447'); 
+SELECT '#1076c' As ticket, * FROM normalize_address('13800 County Hwy 9, Andover, MN 55304');
+SELECT '#1076d' As ticket, * FROM normalize_address('13800 9, Andover, MN 55304');
+-- this one is a regular street that happens to have a street type as the name
+SELECT '#1076e' As ticket, * FROM normalize_address('14 Forest Road, Acton, MA');
+
+-- A country road with a letter name and direction 
+-- NOTE this doesn't completely normalize right since the direction W is being cut off --
+SELECT '#1076f' As ticket, * FROM normalize_address('1940 County Road C W, Roseville, MN 55113'); 
+
+-- Route with a name that sounds like a direction --
+SELECT '#1076g' As ticket, * FROM normalize_address('3900 Route 6, Eastham, Massachusetts 02642');
+
+-- Street that has same name as type  --
+SELECT '#1076h' As ticket, * FROM normalize_address('4533 PARK AVE S, MINNEAPOLIS, MN 55407');
+-- same street with alternate county name
+SELECT '#1076i' As ticket, * FROM normalize_address('4533 County Road 33, MINNEAPOLIS, MN 55407'); 
+
+-- Same case of street type that has name as a type --
+-- this matches -
+SELECT '#1109a' As ticket, * from normalize_address('4373 LAKE DRIVE, ROBBINSDALE, MN 55422');
+
+-- this failed --
+SELECT '#1109b' As ticket, * from normalize_address('4373 LAKE DR, ROBBINSDALE, MN 55422');
+
+-- another type (Is) that is part of street name but a compound street name
+SELECT '#1074a' As ticket, * FROM normalize_address('3420 RHODE ISLAND AVE S, ST. LOUIS PARK, MN 55426');
+
+-- another type that is part of street name --
+SELECT '#1074b' As ticket, * FROM normalize_address('26 Court Street, Boston,MA 02109');
+
+-- service roads and interstates
+SELECT '#1112a' As ticket, * FROM normalize_address('8401 W 35W Service Dr NE, Blaine, MN 55449');
+SELECT '#1112b' As ticket, * FROM normalize_address('8401 35W, Blaine, MN 55449');
+SELECT '#1112c' As ticket, * FROM normalize_address('8401 35W West, Blaine, MN 55449');
+SELECT '#1112d' As ticket, * FROM normalize_address('8401 West 35W, Blaine, MN 55449');
+SELECT '#1112e' As ticket, * FROM normalize_address('8401 W 35W, Blaine, MN 55449');
+
+-- Testing pretty print of highway addresses
+-- These tests excerpted from Brian Hamlin's CASS failures
+-- in #1077
+SELECT '#1125a' As ticket, pprint_addy(normalize_address('19596 COUNTY ROAD 480, COLCORD, OK 74338'));
+SELECT '#1125b' As ticket, pprint_addy(addy), addy.* FROM normalize_address('4345 353 Rte, SALAMANCA, NY 14779') AS addy;
+SELECT '#1125c' As ticket, pprint_addy(addy), addy.* FROM normalize_address('19799 STATE ROUTE O, COSBY, MO 64436') AS addy;
+
+-- some more to test interstate permutations
+SELECT '#1125d' As ticket, pprint_addy(addy), addy.* FROM normalize_address('Interstate 90,Boston, MA') As addy;
+-- this one is wrong (because the lack of space trips it up) but will fix later
+SELECT '#1125e' As ticket, pprint_addy(addy), addy.* FROM normalize_address('I-90,Boston, MA') As addy;
+SELECT '#1125f' As ticket, pprint_addy(addy), addy.* FROM normalize_address('I 90,Boston, MA') As addy;
+
+-- location with prefixes getting caught in post prefix
+SELECT '#1310a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('1110 W CAPITOL AVE, WEST SACRAMENTO, CA') As addy;
+
+-- #1614 County Rd
+SELECT '#1614a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('8435 COUNTY RD 20 SE, ROCHESTER, MN 55904') As addy;
+SELECT '#1614b' As ticket, pprint_addy(addy), addy.* FROM normalize_address('3208 U.S. 52, Rochester, MN 55901') As addy;
+
+-- #1108 suite gets stuck in post dir
+SELECT '#1108a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129') AS addy;
+
+-- #3259 numbered streets
+SELECT '#3259a' As ticket, * FROM normalize_address('212 Third Ave N Suite 560, Minneapolis, MN 55401');
+SELECT '#3259b' As ticket, * FROM normalize_address('3937 Forty Third AVE S, MINNEAPOLIS, MN 55406');
+SELECT '#2981' As ticket, * FROM normalize_address('1566 NEW STATE HWY, RAYNHAM, MA') ;
+SELECT '#2978a' As ticket, * FROM normalize_address('10-20 DORRANCE ST PROVIDENCE RI' ) ;
+SELECT '#2978b' As ticket, * FROM normalize_address('10 20 DORRANCE ST PROVIDENCE RI' ) ;
+SELECT '#2978c' As ticket, * FROM normalize_address('10-20 DORRANCE ST, PROVIDENCE. RI' ) ;
+
+--\timing
+SELECT set_geocode_setting('use_pagc_address_parser', 'false');
diff --git a/extras/tiger_geocoder/tiger_2011/regress/regress.sql b/extras/tiger_geocoder/regress/regress.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/regress/regress.sql
rename to extras/tiger_geocoder/regress/regress.sql
diff --git a/extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress b/extras/tiger_geocoder/regress/reverse_geocode_regress
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress
rename to extras/tiger_geocoder/regress/reverse_geocode_regress
diff --git a/extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress.sql b/extras/tiger_geocoder/regress/reverse_geocode_regress.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/regress/reverse_geocode_regress.sql
rename to extras/tiger_geocoder/regress/reverse_geocode_regress.sql
diff --git a/extras/tiger_geocoder/tables/lookup_tables_2011.sql b/extras/tiger_geocoder/tables/lookup_tables_2011.sql
new file mode 100644
index 0000000..eaf2e86
--- /dev/null
+++ b/extras/tiger_geocoder/tables/lookup_tables_2011.sql
@@ -0,0 +1,1339 @@
+--SET search_path TO tiger, public;
+SELECT tiger.SetSearchPathForInstall('tiger');
+-- Create direction lookup table
+DROP TABLE IF EXISTS tiger.direction_lookup;
+CREATE TABLE direction_lookup (name VARCHAR(20) PRIMARY KEY, abbrev VARCHAR(3));
+INSERT INTO direction_lookup (name, abbrev) VALUES('WEST', 'W');
+INSERT INTO direction_lookup (name, abbrev) VALUES('W', 'W');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SW', 'SW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH-WEST', 'SW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTHWEST', 'SW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH-EAST', 'SE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTHEAST', 'SE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH_WEST', 'SW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH_EAST', 'SE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH', 'S');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH WEST', 'SW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH EAST', 'SE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('SE', 'SE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('S', 'S');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NW', 'NW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH-WEST', 'NW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NORTHWEST', 'NW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH-EAST', 'NE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NORTHEAST', 'NE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH_WEST', 'NW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH_EAST', 'NE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH', 'N');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH WEST', 'NW');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH EAST', 'NE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('NE', 'NE');
+INSERT INTO direction_lookup (name, abbrev) VALUES('N', 'N');
+INSERT INTO direction_lookup (name, abbrev) VALUES('EAST', 'E');
+INSERT INTO direction_lookup (name, abbrev) VALUES('E', 'E');
+CREATE INDEX direction_lookup_abbrev_idx ON direction_lookup (abbrev);
+
+
+
+-- Create secondary unit lookup table
+DROP TABLE IF EXISTS tiger.secondary_unit_lookup;
+CREATE TABLE secondary_unit_lookup (name VARCHAR(20) PRIMARY KEY, abbrev VARCHAR(5));
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('APARTMENT', 'APT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('APT', 'APT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('BASEMENT', 'BSMT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('BSMT', 'BSMT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('BUILDING', 'BLDG');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('BLDG', 'BLDG');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('DEPARTMENT', 'DEPT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('DEPT', 'DEPT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('FLOOR', 'FL');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('FL', 'FL');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('FRONT', 'FRNT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('FRNT', 'FRNT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('HANGAR', 'HNGR');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('HNGR', 'HNGR');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LOBBY', 'LBBY');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LBBY', 'LBBY');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LOT', 'LOT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LOWER', 'LOWR');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LOWR', 'LOWR');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('OFFICE', 'OFC');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('OFC', 'OFC');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('PENTHOUSE', 'PH');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('PH', 'PH');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('PIER', 'PIER');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('REAR', 'REAR');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('ROOM', 'RM');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('RM', 'RM');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SIDE', 'SIDE');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SLIP', 'SLIP');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SPACE', 'SPC');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SPC', 'SPC');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('STOP', 'STOP');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SUITE', 'STE');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('STE', 'STE');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('TRAILER', 'TRLR');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('TRLR', 'TRLR');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('UNIT', 'UNIT');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('UPPER', 'UPPR');
+INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('UPPR', 'UPPR');
+CREATE INDEX secondary_unit_lookup_abbrev_idx ON secondary_unit_lookup (abbrev);
+
+
+
+-- Create state lookup table
+DROP TABLE IF EXISTS tiger.state_lookup;
+CREATE TABLE state_lookup (st_code INTEGER PRIMARY KEY, name VARCHAR(40) UNIQUE, abbrev VARCHAR(3) UNIQUE, statefp char(2) UNIQUE);
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Alabama', 'AL', '01');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Alaska', 'AK', '02');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('American Samoa', 'AS', '60');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Arizona', 'AZ', '04');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Arkansas', 'AR', '05');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('California', 'CA', '06');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Colorado', 'CO', '08');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Connecticut', 'CT', '09');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Delaware', 'DE', '10');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('District of Columbia', 'DC', '11');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Federated States of Micronesia', 'FM', '64');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Florida', 'FL', '12');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Georgia', 'GA', '13');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Guam', 'GU', '66');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Hawaii', 'HI', '15');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Idaho', 'ID', '16');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Illinois', 'IL', '17');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Indiana', 'IN', '18');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Iowa', 'IA', '19');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Kansas', 'KS', '20');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Kentucky', 'KY', '21');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Louisiana', 'LA', '22');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Maine', 'ME', '23');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Marshall Islands', 'MH', '68');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Maryland', 'MD', '24');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Massachusetts', 'MA', '25');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Michigan', 'MI', '26');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Minnesota', 'MN', '27');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Mississippi', 'MS', '28');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Missouri', 'MO', '29');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Montana', 'MT', '30');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Nebraska', 'NE', '31');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Nevada', 'NV', '32');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('New Hampshire', 'NH', '33');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('New Jersey', 'NJ', '34');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('New Mexico', 'NM', '35');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('New York', 'NY', '36');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('North Carolina', 'NC', '37');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('North Dakota', 'ND', '38');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Northern Mariana Islands', 'MP', '69');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Ohio', 'OH', '39');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Oklahoma', 'OK', '40');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Oregon', 'OR', '41');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Palau', 'PW', '70');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Pennsylvania', 'PA', '42');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Puerto Rico', 'PR', '72');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Rhode Island', 'RI', '44');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('South Carolina', 'SC', '45');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('South Dakota', 'SD', '46');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Tennessee', 'TN', '47');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Texas', 'TX', '48');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Utah', 'UT', '49');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Vermont', 'VT', '50');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Virgin Islands', 'VI', '78');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Virginia', 'VA', '51');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Washington', 'WA', '53');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('West Virginia', 'WV', '54');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Wisconsin', 'WI', '55');
+INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Wyoming', 'WY', '56');
+-- NOTE: fix later -- this is wrong for those - state code ones
+UPDATE state_lookup SET statefp = lpad(st_code::text,2,'0');
+
+
+-- Create street type lookup table
+DROP TABLE IF EXISTS tiger.street_type_lookup;
+CREATE TABLE street_type_lookup (name VARCHAR(50) PRIMARY KEY, abbrev VARCHAR(50), is_hw boolean NOT NULL DEFAULT false);
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ALLEE', 'Aly');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ALLEY', 'Aly');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ALLY', 'Aly');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ALY', 'Aly');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ANEX', 'Anx');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ANNEX', 'Anx');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ANNX', 'Anx');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ANX', 'Anx');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ARC', 'Arc');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ARCADE', 'Arc');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('AV', 'Ave');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVE', 'Ave');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVEN', 'Ave');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVENU', 'Ave');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVENUE', 'Ave');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVN', 'Ave');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVNUE', 'Ave');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BAYOO', 'Byu');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BAYOU', 'Byu');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BCH', 'Bch');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BEACH', 'Bch');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BEND', 'Bnd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BND', 'Bnd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLF', 'Blf');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLUF', 'Blf');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLUFF', 'Blf');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLUFFS', 'Blfs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOT', 'Btm');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOTTM', 'Btm');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOTTOM', 'Btm');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BTM', 'Btm');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLVD', 'Blvd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOUL', 'Blvd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOULEVARD', 'Blvd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOULV', 'Blvd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BR', 'Br');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRANCH', 'Br');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRNCH', 'Br');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRDGE', 'Brg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRG', 'Brg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRIDGE', 'Brg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRK', 'Brk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BROOK', 'Brk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BROOKS', 'Brks');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BURG', 'Bg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BURGS', 'Bgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYP', 'Byp');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYPA', 'Byp');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYPAS', 'Byp');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYPASS', 'ByP');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYPS', 'Byp');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CAMP', 'Cp');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CMP', 'Cp');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CP', 'Cp');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CANYN', 'Cyn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CANYON', 'Cyn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CNYN', 'Cyn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CYN', 'Cyn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CAPE', 'Cpe');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CPE', 'Cpe');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CAUSEWAY', 'Cswy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CAUSWAY', 'Cswy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CSWY', 'Cswy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CEN', 'Ctr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENT', 'Ctr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENTER', 'Ctr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENTR', 'Ctr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENTRE', 'Ctr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CNTER', 'Ctr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CNTR', 'Ctr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CTR', 'Ctr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENTERS', 'Ctrs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIR', 'Cir');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRC', 'Cir');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRCL', 'Cir');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRCLE', 'Cir');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRCL', 'Cir');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRCLE', 'Cir');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRCLES', 'Cirs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLF', 'Clf');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLIFF', 'Clf');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLFS', 'Clfs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLIFFS', 'Clfs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLB', 'Clb');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLUB', 'Clb');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('COMMON', 'Cmn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('COR', 'Cor');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CORNER', 'Cor');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CORNERS', 'Cors');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CORS', 'Cors');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('COURSE', 'Crse');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSE', 'Crse');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('COURT', 'Ct');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRT', 'Ct');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CT', 'Ct');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('COURTS', 'Cts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('COVE', 'Cv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CV', 'Cv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('COVES', 'Cvs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CK', 'Crk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CR', 'Crk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CREEK', 'Crk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRK', 'Crk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRECENT', 'Cres');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRES', 'Cres');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRESCENT', 'Cres');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRESENT', 'Cres');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSCNT', 'Cres');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSENT', 'Cres');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSNT', 'Cres');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CREST', 'Crst');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CROSSING', 'Xing');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSSING', 'Xing');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSSNG', 'Xing');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('XING', 'Xing');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CROSSROAD', 'Xrd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CURVE', 'Curv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DALE', 'Dl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DL', 'Dl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DAM', 'Dm');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DM', 'Dm');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DIV', 'Dv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DIVIDE', 'Dv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DV', 'Dv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DVD', 'Dv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DR', 'Dr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRIV', 'Dr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRIVE', 'Dr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRV', 'Dr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRIVES', 'Drs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('EST', 'Est');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ESTATE', 'Est');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ESTATES', 'Ests');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ESTS', 'Ests');
+--INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXP', 'Expy');
+--INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPR', 'Expy');
+--INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPRESS', 'Expy');
+--INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPRESSWAY', 'Expy');
+--INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPW', 'Expy');
+--INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPY', 'Expy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXT', 'Ext');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTENSION', 'Ext');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTN', 'Ext');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTNSN', 'Ext');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTENSIONS', 'Exts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTS', 'Exts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FALL', 'Fall');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FALLS', 'Fls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLS', 'Fls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FERRY', 'Fry');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRRY', 'Fry');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRY', 'Fry');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FIELD', 'Fld');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLD', 'Fld');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FIELDS', 'Flds');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLDS', 'Flds');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLAT', 'Flt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLT', 'Flt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLATS', 'Flts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLTS', 'Flts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORD', 'Frd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRD', 'Frd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORDS', 'Frds');
+--INSERT INTO street_type_lookup (name, abbrev) VALUES ('FOREST', 'Frst');
+--INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORESTS', 'Frst');
+--INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRST', 'Frst');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORG', 'Frg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORGE', 'Frg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRG', 'Frg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORGES', 'Frgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORK', 'Frk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRK', 'Frk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORKS', 'Frks');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRKS', 'Frks');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORT', 'Ft');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRT', 'Ft');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FT', 'Ft');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GARDEN', 'Gdn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GARDN', 'Gdn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GDN', 'Gdn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRDEN', 'Gdn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRDN', 'Gdn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GARDENS', 'Gdns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GDNS', 'Gdns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRDNS', 'Gdns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GATEWAY', 'Gtwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GATEWY', 'Gtwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GATWAY', 'Gtwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GTWAY', 'Gtwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GTWY', 'Gtwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GLEN', 'Gln');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GLN', 'Gln');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GLENS', 'Glns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GREEN', 'Grn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRN', 'Grn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GREENS', 'Grns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GROV', 'Grv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GROVE', 'Grv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRV', 'Grv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GROVES', 'Grvs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HARB', 'Hbr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HARBOR', 'Hbr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HARBR', 'Hbr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HBR', 'Hbr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HRBOR', 'Hbr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HARBORS', 'Hbrs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HAVEN', 'Hvn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HAVN', 'Hvn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HVN', 'Hvn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HEIGHT', 'Hts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HEIGHTS', 'Hts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HGTS', 'Hts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HT', 'Hts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HTS', 'Hts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HILL', 'Hl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HL', 'Hl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HILLS', 'Hls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HLS', 'Hls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HLLW', 'Holw');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HOLLOW', 'Holw');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HOLLOWS', 'Holw');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HOLW', 'Holw');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HOLWS', 'Holw');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('INLET', 'Inlt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('INLT', 'Inlt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('IS', 'Is');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLAND', 'Is');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLND', 'Is');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLANDS', 'Iss');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLNDS', 'Iss');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISS', 'Iss');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLE', 'Isle');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLES', 'Isle');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCT', 'Jct');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCTION', 'Jct');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCTN', 'Jct');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('JUNCTION', 'Jct');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('JUNCTN', 'Jct');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('JUNCTON', 'Jct');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCTNS', 'Jcts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCTS', 'Jcts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('JUNCTIONS', 'Jcts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('KEY', 'Ky');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('KY', 'Ky');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('KEYS', 'Kys');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('KYS', 'Kys');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNL', 'Knl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNOL', 'Knl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNOLL', 'Knl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNLS', 'Knls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNOLLS', 'Knls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LAKE', 'Lk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LK', 'Lk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LAKES', 'Lks');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LKS', 'Lks');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LAND', 'Land');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LANDING', 'Lndg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LNDG', 'Lndg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LNDNG', 'Lndg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LA', 'Ln');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LANE', 'Ln');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LANES', 'Ln');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LN', 'Ln');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LGT', 'Lgt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LIGHT', 'Lgt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LIGHTS', 'Lgts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LF', 'Lf');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOAF', 'Lf');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LCK', 'Lck');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOCK', 'Lck');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LCKS', 'Lcks');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOCKS', 'Lcks');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LDG', 'Ldg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LDGE', 'Ldg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LODG', 'Ldg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LODGE', 'Ldg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOOP', 'Loop');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOOPS', 'Loop');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MALL', 'Mall');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MANOR', 'Mnr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNR', 'Mnr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MANORS', 'Mnrs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNRS', 'Mnrs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MDW', 'Mdw');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MEADOW', 'Mdw');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MDWS', 'Mdws');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MEADOWS', 'Mdws');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MEDOWS', 'Mdws');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MEWS', 'Mews');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MILL', 'Ml');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ML', 'Ml');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MILLS', 'Mls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MLS', 'Mls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MISSION', 'Msn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MISSN', 'Msn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MSN', 'Msn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MSSN', 'Msn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOTORWAY', 'Mtwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNT', 'Mt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOUNT', 'Mt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MT', 'Mt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNTAIN', 'Mtn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNTN', 'Mtn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOUNTAIN', 'Mtn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOUNTIN', 'Mtn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MTIN', 'Mtn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MTN', 'Mtn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNTNS', 'Mtns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOUNTAINS', 'Mtns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('NCK', 'Nck');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('NECK', 'Nck');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ORCH', 'Orch');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ORCHARD', 'Orch');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ORCHRD', 'Orch');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('OVAL', 'Oval');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('OVL', 'Oval');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('OVERPASS', 'Opas');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARK', 'Park');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PK', 'Park');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRK', 'Park');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARKS', 'Park');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARKWAY', 'Pkwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARKWY', 'Pkwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PKWAY', 'Pkwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PKWY', 'Pkwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PKY', 'Pkwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARKWAYS', 'Pkwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PKWYS', 'Pkwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PASS', 'Pass');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PASSAGE', 'Psge');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PATH', 'Path');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PATHS', 'Path');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PIKE', 'Pike');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PIKES', 'Pike');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PINE', 'Pne');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PINES', 'Pnes');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PNES', 'Pnes');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PL', 'Pl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLACE', 'Pl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLAIN', 'Pln');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLN', 'Pln');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLAINES', 'Plns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLAINS', 'Plns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLNS', 'Plns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLAZA', 'Plz');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLZ', 'Plz');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLZA', 'Plz');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('POINT', 'Pt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PT', 'Pt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('POINTS', 'Pts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PTS', 'Pts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PORT', 'Prt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRT', 'Prt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PORTS', 'Prts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRTS', 'Prts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PR', 'Pr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRAIRIE', 'Pr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRARIE', 'Pr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRR', 'Pr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RAD', 'Radl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RADIAL', 'Radl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RADIEL', 'Radl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RADL', 'Radl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RAMP', 'Ramp');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RANCH', 'Rnch');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RANCHES', 'Rnch');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RNCH', 'Rnch');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RNCHS', 'Rnch');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RAPID', 'Rpd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RPD', 'Rpd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RAPIDS', 'Rpds');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RPDS', 'Rpds');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('REST', 'Rst');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RST', 'Rst');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RDG', 'Rdg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RDGE', 'Rdg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIDGE', 'Rdg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RDGS', 'Rdgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIDGES', 'Rdgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIV', 'Riv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIVER', 'Riv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIVR', 'Riv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RVR', 'Riv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RD', 'Rd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ROAD', 'Rd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RDS', 'Rds');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ROADS', 'Rds');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ROW', 'Row');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RUE', 'Rue');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RUN', 'Run');
+-- Start newly added 2011-7-12 --
+INSERT INTO street_type_lookup (name, abbrev)
+ VALUES 
+ ('SERVICE DRIVE', 'Svc Dr'),
+ ('SERVICE DR', 'Svc Dr'),
+ ('SERVICE ROAD', 'Svc Rd'),
+ ('SERVICE RD', 'Svc Rd') ;
+-- end newly added 2011-07-12 --
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHL', 'Shl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHOAL', 'Shl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHLS', 'Shls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHOALS', 'Shls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHOAR', 'Shr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHORE', 'Shr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHR', 'Shr');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHOARS', 'Shrs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHORES', 'Shrs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHRS', 'Shrs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SKYWAY', 'Skwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPG', 'Spg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPNG', 'Spg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPRING', 'Spg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPRNG', 'Spg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPGS', 'Spgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPNGS', 'Spgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPRINGS', 'Spgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPRNGS', 'Spgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPUR', 'Spur');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPURS', 'Spur');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQ', 'Sq');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQR', 'Sq');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQRE', 'Sq');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQU', 'Sq');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQUARE', 'Sq');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQRS', 'Sqs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQUARES', 'Sqs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STA', 'Sta');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STATION', 'Sta');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STATN', 'Sta');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STN', 'Sta');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRA', 'Stra');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAV', 'Stra');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAVE', 'Stra');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAVEN', 'Stra');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAVENUE', 'Stra');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAVN', 'Stra');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRVN', 'Stra');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRVNUE', 'Stra');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STREAM', 'Strm');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STREME', 'Strm');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRM', 'Strm');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('ST', 'St');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STR', 'St');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STREET', 'St');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRT', 'St');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STREETS', 'Sts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SMT', 'Smt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SUMIT', 'Smt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SUMITT', 'Smt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SUMMIT', 'Smt');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TER', 'Ter');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TERR', 'Ter');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TERRACE', 'Ter');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('THROUGHWAY', 'Trwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRACE', 'Trce');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRACES', 'Trce');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRCE', 'Trce');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRACK', 'Trak');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRACKS', 'Trak');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRAK', 'Trak');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRK', 'Trak');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRKS', 'Trak');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRAFFICWAY', 'Trfy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRFY', 'Trfy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TR', 'Trl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRAIL', 'Trl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRAILS', 'Trl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRL', 'Trl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRLS', 'Trl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNEL', 'Tunl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNL', 'Tunl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNLS', 'Tunl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNNEL', 'Tunl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNNELS', 'Tunl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNNL', 'Tunl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('UNDERPASS', 'Upas');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('UN', 'Un');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('UNION', 'Un');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('UNIONS', 'Uns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VALLEY', 'Vly');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VALLY', 'Vly');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLLY', 'Vly');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLY', 'Vly');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VALLEYS', 'Vlys');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLYS', 'Vlys');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VDCT', 'Via');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIA', 'Via');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIADCT', 'Via');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIADUCT', 'Via');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIEW', 'Vw');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VW', 'Vw');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIEWS', 'Vws');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VWS', 'Vws');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILL', 'Vlg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLAG', 'Vlg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLAGE', 'Vlg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLG', 'Vlg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLIAGE', 'Vlg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLG', 'Vlg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLAGES', 'Vlgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLGS', 'Vlgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLE', 'Vl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VL', 'Vl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIS', 'Vis');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIST', 'Vis');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VISTA', 'Vis');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VST', 'Vis');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('VSTA', 'Vis');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WALK', 'Walk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WALKS', 'Walk');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WALL', 'Wall');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WAY', 'Way');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WY', 'Way');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WAYS', 'Ways');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WELL', 'Wl');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WELLS', 'Wls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WLS', 'Wls');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYU', 'Byu');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLFS', 'Blfs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRKS', 'Brks');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BG', 'Bg');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('BGS', 'Bgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CTRS', 'Ctrs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRS', 'Cirs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CMN', 'Cmn');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CTS', 'Cts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CVS', 'Cvs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRST', 'Crst');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('XRD', 'Xrd');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('CURV', 'Curv');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRS', 'Drs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRDS', 'Frds');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRGS', 'Frgs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GLNS', 'Glns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRNS', 'Grns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRVS', 'Grvs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('HBRS', 'Hbrs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('LGTS', 'Lgts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MTWY', 'Mtwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('MTNS', 'Mtns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('OPAS', 'Opas');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PSGE', 'Psge');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('PNE', 'Pne');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('RTE', 'Rte');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SKWY', 'Skwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQS', 'Sqs');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('STS', 'Sts');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRWY', 'Trwy');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('UPAS', 'Upas');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('UNS', 'Uns');
+INSERT INTO street_type_lookup (name, abbrev) VALUES ('WL', 'Wl');
+
+-- prefix and suffix street names for highways and foreign named roads 
+-- where street type is at front of streetname instead of after
+-- these usually have numbers for street names and often have spaces in type
+INSERT INTO street_type_lookup (name, abbrev, is_hw) 
+SELECT name, abbrev, true
+    FROM (VALUES
+        ('CAM', 'Cam'),
+        ('CAM.', 'Cam'),
+        ('CAMINO', 'Cam'),
+        ('CO HWY', 'Co Hwy'),
+        ('COUNTY HWY', 'Co Hwy'),
+        ('COUNTY HIGHWAY', 'Co Hwy'),
+        ('COUNTY HIGH WAY', 'Co Hwy'),
+        ('COUNTY ROAD', 'Co Rd'),
+        ('COUNTY RD', 'Co Rd'),
+        ('CO RD', 'Co Rd'),
+        ('CORD', 'Co Rd'),
+        ('CO RTE', 'Co Rte'),
+        ('COUNTY ROUTE', 'Co Rte'),
+        ('CO ST AID HWY', 'Co St Aid Hwy'),
+        ('EXP', 'Expy'),
+        ('EXPR', 'Expy'),
+        ('EXPRESS', 'Expy'),
+        ('EXPRESSWAY', 'Expy'),
+        ('EXPW', 'Expy'),
+        ('EXPY', 'Expy'),
+        ('FARM RD', 'Farm Rd'),
+        ('FIRE RD', 'Fire Rd'),
+        ('FOREST RD', 'Forest Rd'),
+        ('FOREST ROAD', 'Forest Rd'),
+        ('FOREST RTE', 'Forest Rte'),
+        ('FOREST ROUTE', 'Forest Rte'),
+        ('FREEWAY', 'Fwy'),
+        ('FREEWY', 'Fwy'),
+        ('FRWAY', 'Fwy'),
+        ('FRWY', 'Fwy'),
+        ('FWY', 'Fwy'),
+        ('HIGHWAY', 'Hwy'),
+        ('HIGHWY', 'Hwy'),
+        ('HIWAY', 'Hwy'),
+        ('HIWY', 'Hwy'),
+        ('HWAY', 'Hwy'),
+        ('HWY', 'Hwy'),
+        ('I', 'I-'),
+        ('I-', 'I-'),
+        ('INTERSTATE', 'I-'),
+        ('INTERSTATE ROUTE', 'I-'),
+        ('INTERSTATE RTE', 'I-'),
+        ('INTERSTATE RTE.', 'I-'),
+        ('INTERSTATE RT', 'I-'),
+        ('LOOP', 'Loop'),
+        ('ROUTE', 'Rte'),
+        ('RTE', 'Rte'),
+        ('RT', 'Rte'),
+        ('STATE HWY', 'State Hwy'),
+        ('STATE HIGHWAY', 'State Hwy'),
+        ('STATE HIGH WAY', 'State Hwy'),
+        ('STATE RD', 'State Rd'),
+        ('STATE ROAD', 'State Rd'),
+        ('STATE ROUTE', 'State Rte'),
+        ('STATE RTE', 'State Rte'),
+        ('TPK', 'Tpke'),
+        ('TPKE', 'Tpke'),
+        ('TRNPK', 'Tpke'),
+        ('TRPK', 'Tpke'),
+        ('TURNPIKE', 'Tpke'),
+        ('TURNPK', 'Tpke'),
+        ('US HWY', 'US Hwy'),
+        ('US HIGHWAY', 'US Hwy'),
+        ('US HIGH WAY', 'US Hwy'),
+        ('U.S.', 'US Hwy'),
+        ('US RTE', 'US Rte'),
+        ('US ROUTE', 'US Rte'),
+        ('US RT', 'US Rte'),
+        ('USFS HWY', 'USFS Hwy'),
+        ('USFS HIGHWAY', 'USFS Hwy'),
+        ('USFS HIGH WAY', 'USFS Hwy'),
+        ('USFS RD', 'USFS Rd'),
+        ('USFS ROAD', 'USFS Rd')
+           ) t(name, abbrev)
+           WHERE t.name NOT IN(SELECT name FROM street_type_lookup);
+CREATE INDEX street_type_lookup_abbrev_idx ON street_type_lookup (abbrev);
+
+-- Create place and countysub lookup tables
+DROP TABLE IF EXISTS tiger.place_lookup;
+CREATE TABLE place_lookup (
+    st_code INTEGER,
+    state   VARCHAR(2),
+    pl_code INTEGER,
+    name    VARCHAR(90),
+    PRIMARY KEY (st_code,pl_code)
+);
+
+/**
+INSERT INTO place_lookup
+  SELECT
+    pl.state::integer   as st_code,
+    sl.abbrev           as state,
+    pl.placefp::integer as pl_code,
+    pl.name             as name
+  FROM
+    pl99_d00 pl
+    JOIN state_lookup sl ON (pl.state = lpad(sl.st_code,2,'0'))
+  GROUP BY pl.state, sl.abbrev, pl.placefp, pl.name;
+**/
+CREATE INDEX place_lookup_name_idx ON place_lookup (soundex(name));
+CREATE INDEX place_lookup_state_idx ON place_lookup (state);
+
+DROP TABLE IF EXISTS tiger.county_lookup;
+CREATE TABLE county_lookup (
+    st_code INTEGER,
+    state   VARCHAR(2),
+    co_code INTEGER,
+    name    VARCHAR(90),
+    PRIMARY KEY (st_code, co_code)
+);
+
+/**
+INSERT INTO county_lookup
+  SELECT
+    co.state::integer    as st_code,
+    sl.abbrev            as state,
+    co.county::integer   as co_code,
+    co.name              as name
+  FROM
+    co99_d00 co
+    JOIN state_lookup sl ON (co.state = lpad(sl.st_code,2,'0'))
+  GROUP BY co.state, sl.abbrev, co.county, co.name;
+**/
+CREATE INDEX county_lookup_name_idx ON county_lookup (soundex(name));
+CREATE INDEX county_lookup_state_idx ON county_lookup (state);
+
+DROP TABLE IF EXISTS tiger.countysub_lookup;
+CREATE TABLE countysub_lookup (
+    st_code INTEGER,
+    state   VARCHAR(2),
+    co_code INTEGER,
+    county  VARCHAR(90),
+    cs_code INTEGER,
+    name    VARCHAR(90),
+    PRIMARY KEY (st_code, co_code, cs_code)
+);
+
+/**
+INSERT INTO countysub_lookup
+  SELECT
+    cs.state::integer    as st_code,
+    sl.abbrev            as state,
+    cs.county::integer   as co_code,
+    cl.name              as county,
+    cs.cousubfp::integer as cs_code,
+    cs.name              as name
+  FROM
+    cs99_d00 cs
+    JOIN state_lookup sl ON (cs.state = lpad(sl.st_code,2,'0'))
+    JOIN county_lookup cl ON (cs.state = lpad(cl.st_code,2,'0') AND cs.county = cl.co_code)
+  GROUP BY cs.state, sl.abbrev, cs.county, cl.name, cs.cousubfp, cs.name;
+**/
+CREATE INDEX countysub_lookup_name_idx ON countysub_lookup (soundex(name));
+CREATE INDEX countysub_lookup_state_idx ON countysub_lookup (state);
+
+DROP TABLE IF EXISTS tiger.zip_lookup_all;
+CREATE TABLE zip_lookup_all (
+    zip     INTEGER,
+    st_code INTEGER,
+    state   VARCHAR(2),
+    co_code INTEGER,
+    county  VARCHAR(90),
+    cs_code INTEGER,
+    cousub  VARCHAR(90),
+    pl_code INTEGER,
+    place   VARCHAR(90),
+    cnt     INTEGER
+);
+
+/** SET work_mem = '2GB';
+
+INSERT INTO zip_lookup_all
+  SELECT *,count(*) as cnt FROM
+  (SELECT
+    zipl                 as zip,
+    rl.statel            as st_code,
+    sl.abbrev            as state,
+    rl.countyl           as co_code,
+    cl.name              as county,
+    rl.cousubl           as cs_code,
+    cs.name              as countysub,
+    rl.placel            as pl_code,
+    pl.name              as place
+  FROM
+    roads_local rl
+    JOIN state_lookup sl ON (rl.statel = lpad(sl.st_code,2,'0'))
+    LEFT JOIN county_lookup cl ON (rl.statel = lpad(cl.st_code,2,'0') AND rl.countyl = cl.co_code)
+    LEFT JOIN countysub_lookup cs ON (rl.statel = lpad(cs.st_code,2,'0') AND rl.countyl = cs.co_code AND rl.cousubl = cs.cs_code)
+    LEFT JOIN place_lookup pl ON (rl.statel = lpad(pl.st_code,2,'0') AND rl.placel = pl.pl_code)
+  WHERE zipl IS NOT NULL
+  UNION ALL
+  SELECT
+    zipr                 as zip,
+    rl.stater            as st_code,
+    sl.abbrev            as state,
+    rl.countyr           as co_code,
+    cl.name              as county,
+    rl.cousubr           as cs_code,
+    cs.name              as countysub,
+    rl.placer            as pl_code,
+    pl.name              as place
+  FROM
+    roads_local rl
+    JOIN state_lookup sl ON (rl.stater = lpad(sl.st_code,2,'0'))
+    LEFT JOIN county_lookup cl ON (rl.stater = lpad(cl.st_code,2,'0') AND rl.countyr = cl.co_code)
+    LEFT JOIN countysub_lookup cs ON (rl.stater = lpad(cs.st_code,2,'0') AND rl.countyr = cs.co_code AND rl.cousubr = cs.cs_code)
+    LEFT JOIN place_lookup pl ON (rl.stater = lpad(pl.st_code,2,'0') AND rl.placer = pl.pl_code)
+  WHERE zipr IS NOT NULL
+  ) as subquery
+  GROUP BY zip, st_code, state, co_code, county, cs_code, countysub, pl_code, place;
+**/
+DROP TABLE IF EXISTS tiger.zip_lookup_base;
+CREATE TABLE zip_lookup_base (
+    zip     varchar(5),
+    state   VARCHAR(40),
+    county  VARCHAR(90),
+    city    VARCHAR(90),
+    statefp varchar(2),
+    PRIMARY KEY (zip)
+);
+
+-- INSERT INTO zip_lookup_base
+-- Populate through magic
+-- If anyone knows of a good, public, free, place to pull this information from, that'd be awesome to have...
+
+DROP TABLE IF EXISTS tiger.zip_lookup;
+CREATE TABLE zip_lookup (
+    zip     INTEGER,
+    st_code INTEGER,
+    state   VARCHAR(2),
+    co_code INTEGER,
+    county  VARCHAR(90),
+    cs_code INTEGER,
+    cousub  VARCHAR(90),
+    pl_code INTEGER,
+    place   VARCHAR(90),
+    cnt     INTEGER,
+    PRIMARY KEY (zip)
+);
+
+DROP TABLE IF EXISTS tiger.zcta500;
+/**
+INSERT INTO zip_lookup
+  SELECT
+    DISTINCT ON (zip)
+    zip,
+    st_code,
+    state,
+    co_code,
+    county,
+    cs_code,
+    cousub,
+    pl_code,
+    place,
+    cnt
+  FROM zip_lookup_all
+  ORDER BY zip,cnt desc;
+  **/
+DROP TABLE IF EXISTS tiger.county;
+CREATE TABLE county
+(
+  gid SERIAL NOT NULL,
+  statefp character varying(2),
+  countyfp character varying(3),
+  countyns character varying(8),
+  cntyidfp character varying(5) NOT NULL,
+  "name" character varying(100),
+  namelsad character varying(100),
+  lsad character varying(2),
+  classfp character varying(2),
+  mtfcc character varying(5),
+  csafp character varying(3),
+  cbsafp character varying(5),
+  metdivfp character varying(5),
+  funcstat character varying(1),
+  aland bigint,
+  awater  double precision,
+  intptlat character varying(11),
+  intptlon character varying(12),
+  the_geom geometry,
+  CONSTRAINT uidx_county_gid UNIQUE (gid),
+  CONSTRAINT pk_tiger_county PRIMARY KEY (cntyidfp),
+  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+);
+CREATE INDEX idx_tiger_county ON county USING btree (countyfp);
+
+DROP TABLE IF EXISTS tiger.state;
+CREATE TABLE state
+(
+  gid serial NOT NULL,
+  region character varying(2),
+  division character varying(2),
+  statefp character varying(2),
+  statens character varying(8),
+  stusps character varying(2) NOT NULL,
+  "name" character varying(100),
+  lsad character varying(2),
+  mtfcc character varying(5),
+  funcstat character varying(1),
+  aland bigint,
+  awater bigint,
+  intptlat character varying(11),
+  intptlon character varying(12),
+  the_geom geometry,
+  CONSTRAINT uidx_tiger_state_stusps UNIQUE (stusps),
+  CONSTRAINT uidx_tiger_state_gid UNIQUE (gid),
+  CONSTRAINT pk_tiger_state PRIMARY KEY (statefp),
+  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
+);
+CREATE INDEX idx_tiger_state_the_geom_gist ON state USING gist(the_geom);
+
+DROP TABLE IF EXISTS tiger.place;
+CREATE TABLE place
+(
+  gid serial NOT NULL,
+  statefp character varying(2),
+  placefp character varying(5),
+  placens character varying(8),
+  plcidfp character varying(7) PRIMARY KEY,
+  "name" character varying(100),
+  namelsad character varying(100),
+  lsad character varying(2),
+  classfp character varying(2),
+  cpi character varying(1),
+  pcicbsa character varying(1),
+  pcinecta character varying(1),
+  mtfcc character varying(5),
+  funcstat character varying(1),
+  aland bigint,
+  awater bigint,
+  intptlat character varying(11),
+  intptlon character varying(12),
+  the_geom geometry,
+  CONSTRAINT uidx_tiger_place_gid UNIQUE (gid),
+  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
+);
+CREATE INDEX tiger_place_the_geom_gist ON place USING gist(the_geom);
+
+DROP TABLE IF EXISTS tiger.zip_state;
+CREATE TABLE zip_state
+(
+  zip character varying(5) NOT NULL,
+  stusps character varying(2) NOT NULL,
+  statefp character varying(2),
+  CONSTRAINT zip_state_pkey PRIMARY KEY (zip, stusps)
+);
+
+DROP TABLE IF EXISTS tiger.zip_state_loc;
+CREATE TABLE zip_state_loc
+(
+  zip character varying(5) NOT NULL,
+  stusps character varying(2) NOT NULL,
+  statefp character varying(2),
+  place varchar(100),
+  CONSTRAINT zip_state_loc_pkey PRIMARY KEY (zip, stusps, place)
+);
+
+DROP TABLE IF EXISTS tiger.cousub;
+CREATE TABLE cousub
+(
+  gid serial NOT NULL,
+  statefp character varying(2),
+  countyfp character varying(3),
+  cousubfp character varying(5),
+  cousubns character varying(8),
+  cosbidfp character varying(10) NOT NULL PRIMARY KEY,
+  "name" character varying(100),
+  namelsad character varying(100),
+  lsad character varying(2),
+  classfp character varying(2),
+  mtfcc character varying(5),
+  cnectafp character varying(3),
+  nectafp character varying(5),
+  nctadvfp character varying(5),
+  funcstat character varying(1),
+  aland numeric(14),
+  awater numeric(14),
+  intptlat character varying(11),
+  intptlon character varying(12),
+  the_geom geometry,
+  CONSTRAINT uidx_cousub_gid UNIQUE (gid),
+  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
+);
+
+CREATE INDEX tige_cousub_the_geom_gist ON cousub USING gist(the_geom);
+
+DROP TABLE IF EXISTS tiger.edges;
+CREATE TABLE edges
+(
+  gid SERIAL NOT NULL  PRIMARY KEY,
+  statefp character varying(2),
+  countyfp character varying(3),
+  tlid bigint,
+  tfidl numeric(10),
+  tfidr numeric(10),
+  mtfcc character varying(5),
+  fullname character varying(100),
+  smid character varying(22),
+  lfromadd character varying(12),
+  ltoadd character varying(12),
+  rfromadd character varying(12),
+  rtoadd character varying(12),
+  zipl character varying(5),
+  zipr character varying(5),
+  featcat character varying(1),
+  hydroflg character varying(1),
+  railflg character varying(1),
+  roadflg character varying(1),
+  olfflg character varying(1),
+  passflg character varying(1),
+  divroad character varying(1),
+  exttyp character varying(1),
+  ttyp character varying(1),
+  deckedroad character varying(1),
+  artpath character varying(1),
+  persist character varying(1),
+  gcseflg character varying(1),
+  offsetl character varying(1),
+  offsetr character varying(1),
+  tnidf numeric(10),
+  tnidt numeric(10),
+  the_geom geometry,
+  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTILINESTRING'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
+);
+CREATE INDEX idx_edges_tlid ON edges USING btree(tlid);
+CREATE INDEX idx_tiger_edges_countyfp ON edges USING btree(countyfp);
+CREATE INDEX idx_tiger_edges_the_geom_gist ON edges USING gist(the_geom);
+
+DROP TABLE IF EXISTS tiger.addrfeat;
+CREATE TABLE addrfeat
+(
+  gid serial not null primary key,
+  tlid bigint,
+  statefp character varying(2) NOT NULL,
+  aridl character varying(22),
+  aridr character varying(22),
+  linearid character varying(22),
+  fullname character varying(100),
+  lfromhn character varying(12),
+  ltohn character varying(12),
+  rfromhn character varying(12),
+  rtohn character varying(12),
+  zipl character varying(5),
+  zipr character varying(5),
+  edge_mtfcc character varying(5),
+  parityl character varying(1),
+  parityr character varying(1),
+  plus4l character varying(4),
+  plus4r character varying(4),
+  lfromtyp character varying(1),
+  ltotyp character varying(1),
+  rfromtyp character varying(1),
+  rtotyp character varying(1),
+  offsetl character varying(1),
+  offsetr character varying(1),
+  the_geom geometry,
+  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
+);
+CREATE INDEX idx_addrfeat_geom_gist ON addrfeat USING gist(the_geom );
+CREATE INDEX idx_addrfeat_tlid ON addrfeat USING btree(tlid);
+CREATE INDEX idx_addrfeat_zipl ON addrfeat USING btree(zipl);
+CREATE INDEX idx_addrfeat_zipr ON addrfeat USING btree(zipr);
+
+
+DROP TABLE IF EXISTS tiger.faces;
+CREATE TABLE faces
+(
+gid serial NOT NULL PRIMARY KEY,
+  tfid numeric(10,0),
+  statefp00 varchar(2),
+  countyfp00 varchar(3),
+  tractce00 varchar(6),
+  blkgrpce00 varchar(1),
+  blockce00 varchar(4),
+  cousubfp00 varchar(5),
+  submcdfp00 varchar(5),
+  conctyfp00 varchar(5),
+  placefp00 varchar(5),
+  aiannhfp00 varchar(5),
+  aiannhce00 varchar(4),
+  comptyp00 varchar(1),
+  trsubfp00 varchar(5),
+  trsubce00 varchar(3),
+  anrcfp00 varchar(5),
+  elsdlea00 varchar(5),
+  scsdlea00 varchar(5),
+  unsdlea00 varchar(5),
+  uace00 varchar(5),
+  cd108fp varchar(2),
+  sldust00 varchar(3),
+  sldlst00 varchar(3),
+  vtdst00 varchar(6),
+  zcta5ce00 varchar(5),
+  tazce00 varchar(6),
+  ugace00 varchar(5),
+  puma5ce00 varchar(5),
+  statefp varchar(2),
+  countyfp varchar(3),
+  tractce varchar(6),
+  blkgrpce varchar(1),
+  blockce varchar(4),
+  cousubfp varchar(5),
+  submcdfp varchar(5),
+  conctyfp varchar(5),
+  placefp varchar(5),
+  aiannhfp varchar(5),
+  aiannhce varchar(4),
+  comptyp varchar(1),
+  trsubfp varchar(5),
+  trsubce varchar(3),
+  anrcfp varchar(5),
+  ttractce varchar(6),
+  tblkgpce varchar(1),
+  elsdlea varchar(5),
+  scsdlea varchar(5),
+  unsdlea varchar(5),
+  uace varchar(5),
+  cd111fp varchar(2),
+  sldust varchar(3),
+  sldlst varchar(3),
+  vtdst varchar(6),
+  zcta5ce varchar(5),
+  tazce varchar(6),
+  ugace varchar(5),
+  puma5ce varchar(5),
+  csafp varchar(3),
+  cbsafp varchar(5),
+  metdivfp varchar(5),
+  cnectafp varchar(3),
+  nectafp varchar(5),
+  nctadvfp varchar(5),
+  lwflag varchar(1),
+  "offset" varchar(1),
+  atotal double precision,
+  intptlat varchar(11),
+  intptlon varchar(12),
+  the_geom geometry,
+  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
+);
+CREATE INDEX idx_tiger_faces_tfid ON faces USING btree (tfid);
+CREATE INDEX idx_tiger_faces_countyfp ON faces USING btree(countyfp);
+CREATE INDEX tiger_faces_the_geom_gist ON faces USING gist(the_geom);
+
+DROP TABLE IF EXISTS tiger.featnames;
+CREATE TABLE featnames
+(
+  gid SERIAL NOT NULL,
+  tlid bigint,
+  fullname character varying(100),
+  "name" character varying(100),
+  predirabrv character varying(15),
+  pretypabrv character varying(50),
+  prequalabr character varying(15),
+  sufdirabrv character varying(15),
+  suftypabrv character varying(50),
+  sufqualabr character varying(15),
+  predir character varying(2),
+  pretyp character varying(3),
+  prequal character varying(2),
+  sufdir character varying(2),
+  suftyp character varying(3),
+  sufqual character varying(2),
+  linearid character varying(22),
+  mtfcc character varying(5),
+  paflag character varying(1),
+  CONSTRAINT featnames_pkey PRIMARY KEY (gid)
+);
+ALTER TABLE featnames ADD COLUMN statefp character varying(2);
+CREATE INDEX idx_tiger_featnames_snd_name ON featnames USING btree (soundex(name));
+CREATE INDEX idx_tiger_featnames_lname ON featnames USING btree (lower(name));
+CREATE INDEX idx_tiger_featnames_tlid_statefp ON featnames USING btree (tlid,statefp);
+
+CREATE TABLE addr
+(
+  gid SERIAL NOT NULL,
+  tlid bigint,
+  fromhn character varying(12),
+  tohn character varying(12),
+  side character varying(1),
+  zip character varying(5),
+  plus4 character varying(4),
+  fromtyp character varying(1),
+  totyp character varying(1),
+  fromarmid integer,
+  toarmid integer,
+  arid character varying(22),
+  mtfcc character varying(5),
+  CONSTRAINT addr_pkey PRIMARY KEY (gid)
+);
+ALTER TABLE addr ADD COLUMN statefp character varying(2);
+
+CREATE INDEX idx_tiger_addr_tlid_statefp ON addr USING btree(tlid,statefp);
+CREATE INDEX idx_tiger_addr_zip ON addr USING btree (zip);
+
+--DROP TABLE IF EXISTS tiger.zcta5;
+CREATE TABLE zcta5
+(
+  gid serial NOT NULL,
+  statefp character varying(2),
+  zcta5ce character varying(5),
+  classfp character varying(2),
+  mtfcc character varying(5),
+  funcstat character varying(1),
+  aland double precision,
+  awater double precision,
+  intptlat character varying(11),
+  intptlon character varying(12),
+  partflg character varying(1),
+  the_geom geometry,
+  CONSTRAINT uidx_tiger_zcta5_gid UNIQUE (gid),
+  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269),
+  CONSTRAINT pk_tiger_zcta5_zcta5ce PRIMARY KEY (zcta5ce,statefp)
+ );
diff --git a/extras/tiger_geocoder/tiger_2011/README b/extras/tiger_geocoder/tiger_2011/README
deleted file mode 100644
index 64700a3..0000000
--- a/extras/tiger_geocoder/tiger_2011/README
+++ /dev/null
@@ -1,145 +0,0 @@
-$Id: README 11651 2013-07-10 03:44:48Z robe $
-
-Installing The Tiger Geocoder
-
-This is a customized version of Steve Frost's tiger geocoder revisions
-(http://www.snowman.net/git/tiger_geocoder/).
-
-This version includes a loader that is portable between Linux and
-Windows but loads a full state of data at a time.  The loader helper tables and
-functions are prefixed with loader and stored in the tiger schema.  If
-you only want to load a county, revise the wget call that is generated
-for the state to just download the statewide and specific counties or
-just download them by hand.  The loader will only process files that
-exist.
-
-If you are on windows, you will need 7zip and wget.  7zip you can get
-from http://www.7-zip.org/ and wget you can get from
-http://gnuwin32.sourceforge.net/packages/wget.htm
-
-Tiger Geocoder is now part of the PostGIS documentation
-for further details about function use, refer to:
-http://www.postgis.net/docs/manual-dev/Extras.html#Tiger_Geocoder
-
-Steps to install and load (without using extensions)
-
-1.  Create a PostGIS enabled db if you don't have one already
-
-2.	From command line, cd into the tiger_geocoder_2011 folder
-
-3.  Edit the tiger_loader.sql to the paths of your executables server etc.
-
-4.	Edit the create_geocode.bat or create_geocode.sh and run
-
-5.	Now add tiger schema to your database search path by doing
-something like: 
-ALTER DATABASE geocoder SET search_path=public, tiger;
-
-Steps using extensions:
-1. Create a PostGIS enabled db make sure you installed postgis with:
-CREATE EXTENSION postgis;
-
-2) Next:
-CREATE EXTENSION postgis_tiger_geocoder;
-
-Loading up data:
-
-1. Create a folder called gisdata on root of server or your local pc
-if you have a fast network connection to the server. This folder is
-where the tiger files will be downloaded to.
-
-2. Create a folder called temp in the gisdata folder.  This will be
-the folder where we extract the downloaded tiger data.
-
-3. Run the following commands at psql or pgAdmin III query window to
-generate the script, replacing 'DC', 'RI' with list of states you want
-and save contents to a .bat or sh file in YOUR CURRENT DIRECTORY. This
-will generate CODE for each state and append it to the script.
-
-(IF YOU ARE AT A PSQL PROMPT, FIRST RUN "\a", "\t", AND "\o
-script.xxx".  THIS WILL MAKE YOUR OUTPUT UNALIGNED AND REDIRECT IT TO
-script.xxx.  WITHOUT "\a" and "\t", THE SCRIPT WILL HAVE EXTRA
-WHITESPACE AND POSSIBLY NON-SCRIPT CHARACTERS THAT CAUSE IT TO BREAK.)
-
--- UNIX /LINUX USERS --
--- Note even if you want just specific states you need to 
--- do this step since 2011 county, state tables are available only at national level
-SELECT loader_generate_nation_script('sh');  
-
--- After the nation load, generate a bash script suitable for Unix command lines 
--- for your desired states. 
-
-SELECT loader_generate_script(ARRAY['DC','RI'], 'sh');
-
-
-ONCE YOU GENERATE THIS SCRIPT, EDIT IT TO ADD "set -e -u" AT THE TOP;
-THIS SETTING WILL MAKE IT STOP ON ERROR OR UNITIALIZED VARIABLE AND
-MAKE IT EASIER TO DEBUG ANY PROBLEMS.  
-THEN RUN THE SCRIPT AT THE COMMAND LINE, REDIRECTING STANDARD OUTPUT AND 
-STANDARD ERROR TO USEFUL FILES.  YOU MAY WANT TO RUN "tail -f " TO SEE THE 
-STANDARD ERROR AS IT GETS WRITTEN.  FOR EXAMPLE: 
-
-$ sh foo.sh 1>out 2>err; tail -f err
-
--- WINDOWS USERS --
---To generate a WINDOWS DOS script
--- this will generate the script to download the national layers
--- Note even if you want just specific states you need to 
--- do this step since 2011 county, state tables are available only at national level
-SELECT loader_generate_nation_script('windows');  
-
--- this you do after the nation load and for states you want
-SELECT loader_generate_script(ARRAY['DC','RI'], 'windows');
-
-If your script disappears without loading anything, 
-most likely one of your path settings is wrong. 
-To troubleshoot run the batch script by 
-first opening up a commandline and executing the file. 
-
-That will keep the window open for you to see the error.
-
--- Next run the script to install any missing indexes --
-SELECT install_missing_indexes();
-
-Alternatively if you want to see what indexes will be created before
-you create them run the below and manually run the steps generated:
-SELECT missing_indexes_generate_script();
-
-
-9. Copy and paste the generated script into a .bat or .sh file and put
-in gisdata folder you created and then run it, OR IF YOU REDIRECTED
-THE OUTPUT TO A FILE WITH "\o" MOVE THAT FILE TO GISDATA.
-
-10. Test out the geocoder run these queries
-
--- To get the best rated answer --
--- this is generally faster
-SELECT g.rating, 
-	ST_X(geomout) As lon, 
-	ST_Y(geomout) As lat, (addy).* 
-FROM geocode('1731 New Hampshire Avenue Northwest, Washington, DC 20010', 1) As g;
-
---To get multiple answers if there is more than 1
-SELECT g.rating, 
-	ST_X(geomout) As lon, 
-	ST_Y(geomout) As lat, (addy).* 
-FROM geocode('1731 New Hampshire Avenue Northwest, Washington, DC 20010') As g;
-
-STEPS TO UPGRADE YOUR INSTALL:
-If you need to upgrade the geocoder/tiger loader from a pre-release
-2.0.0 install -- run the upgrade_geocoder.sh or upgrade_geocoder.bat
-script.
-
-CAUTION: The upgrade script will drop any table columns that have a
-norm_addy type for a column type.  This is rare if ever done so you
-should be fine.  We plan to fix this later. It will also drop any
-customizations you have made to the tiger_loader configuration tables.
-To prevent this, you can remark out the install loader part.  This we
-plan to remedy in the future.
-
-It will also install any missing indexes that are deemed needed by
-queries.
-
-It will fail on some steps such as addition of new columns 
-to lookup tables if they already exist in your intall.  
-These errors can be safely ignored.
diff --git a/extras/tiger_geocoder/tiger_2011/census_loader.sql b/extras/tiger_geocoder/tiger_2011/census_loader.sql
deleted file mode 100644
index 64cf1af..0000000
--- a/extras/tiger_geocoder/tiger_2011/census_loader.sql
+++ /dev/null
@@ -1,188 +0,0 @@
---$Id: census_loader.sql 11760 2013-08-10 06:25:55Z robe $
---
--- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
---
--- Copyright (C) 2010, 2011 Regina Obe and Leo Hsu 
--- Paragon Corporation
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
---  
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---SET search_path TO tiger,public;
-SELECT tiger.SetSearchPathForInstall('tiger');
-CREATE OR REPLACE FUNCTION create_census_base_tables() 
-	RETURNS text AS
-$$
-DECLARE var_temp text; 
-BEGIN
-var_temp := tiger.SetSearchPathForInstall('tiger');
-IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND column_name = 'tract_id' AND table_name = 'tract')  THEN
-	-- census block group/tracts parent tables not created yet or an older version -- drop old if not in use, create new structure
-	DROP TABLE IF EXISTS tiger.tract;
-	CREATE TABLE tract
-	(
-	  gid serial NOT NULL,
-	  statefp varchar(2),
-	  countyfp varchar(3),
-	  tractce varchar(6),
-	  tract_id varchar(11) PRIMARY KEY,
-	  name varchar(7),
-	  namelsad varchar(20),
-	  mtfcc varchar(5),
-	  funcstat varchar(1),
-	  aland double precision,
-	  awater double precision,
-	  intptlat varchar(11),
-	  intptlon varchar(12),
-	  the_geom geometry,
-	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
-	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
-	);
-	COMMENT ON TABLE tiger.tract IS 'census tracts - $Id: census_loader.sql 11760 2013-08-10 06:25:55Z robe $';
-	
-	DROP TABLE IF EXISTS tiger.tabblock;
-	CREATE TABLE tabblock
-	(
-	  gid serial NOT NULL,
-	  statefp varchar(2),
-	  countyfp varchar(3),
-	  tractce varchar(6),
-	  blockce varchar(4),
-	  tabblock_id varchar(16) PRIMARY KEY,
-	  name varchar(20),
-	  mtfcc varchar(5),
-	  ur varchar(1),
-	  uace varchar(5),
-	  funcstat varchar(1),
-	  aland double precision,
-	  awater double precision,
-	  intptlat varchar(11),
-	  intptlon varchar(12),
-	  the_geom geometry,
-	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
-	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
-	);
-	COMMENT ON TABLE tiger.tabblock IS 'census blocks - $Id: census_loader.sql 11760 2013-08-10 06:25:55Z robe $';
-
-	DROP TABLE IF EXISTS tiger.bg;
-	CREATE TABLE bg
-	(
-	  gid serial NOT NULL,
-	  statefp varchar(2),
-	  countyfp varchar(3),
-	  tractce varchar(6),
-	  blkgrpce varchar(1),
-	  bg_id varchar(12) PRIMARY KEY,
-	  namelsad varchar(13),
-	  mtfcc varchar(5),
-	  funcstat varchar(1),
-	  aland double precision,
-	  awater double precision,
-	  intptlat varchar(11),
-	  intptlon varchar(12),
-	  the_geom geometry,
-	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
-	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
-	);
-	COMMENT ON TABLE tiger.bg IS 'block groups';
-	RETURN 'Done creating census tract base tables - $Id: census_loader.sql 11760 2013-08-10 06:25:55Z robe $';
-END IF;
-
-IF EXISTS(SELECT * FROM information_schema.columns WHERE table_schema = 'tiger' AND column_name = 'tabblock_id' AND table_name = 'tabblock' AND character_maximum_length < 16)  THEN -- size of name and tabblock_id fields need to be increased
-    ALTER TABLE tiger.tabblock ALTER COLUMN name TYPE varchar(20);
-    ALTER TABLE tiger.tabblock ALTER COLUMN tabblock_id TYPE varchar(16);
-    RAISE NOTICE 'Size of tabblock_id and name are being incrreased';
-END IF;
-RETURN 'Tables already present';
-END
-$$
-language 'plpgsql';
-
-DROP FUNCTION IF EXISTS loader_generate_census(text[], text);
-CREATE OR REPLACE FUNCTION loader_generate_census_script(param_states text[], os text)
-  RETURNS SETOF text AS
-$$
-SELECT create_census_base_tables();
-SELECT 
-	loader_macro_replace(
-		replace(
-			loader_macro_replace(declare_sect
-				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
-				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
-			), '/', platform.path_sep) || '
-' ||
-	-- State level files - if an override website is specified we use that instead of variable one
-	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
-' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
-		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
-	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
-		|| COALESCE(E'\n' || 
-			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
-				FROM loader_lookuptables AS lu
-				WHERE level_state = true AND load = true AND lookup_name IN('tract','bg','tabblock')
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	-- County Level files
-	|| E'\n' ||
-		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
-' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
-				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
-				FROM loader_lookuptables AS lu
-				WHERE level_county = true AND load = true AND lookup_name IN('tract','bg','tabblock')
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
-	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
-			AS shell_code
-FROM loader_variables As variables
-		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
-			 lpad(st_code::text,2,'0') || '_' 
-	|| replace(name, ' ', '_') As state_fold
-FROM state_lookup) As s CROSS JOIN loader_platform As platform
-WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
-AND platform.os = $2  -- generate script for selected platform
-;
-$$
-  LANGUAGE sql VOLATILE;
-  
---update with census tract loading logic
-DELETE FROM loader_lookuptables WHERE lookup_name IN('tract','tabblock','bg');           
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
-VALUES(10, 'tract', 'tract', true, false, true,false, 'c', 
-'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (tract_id) ) INHERITS(tiger.${lookup_name}); " ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO tract_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); "
-	${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${state_abbrev}_${lookup_name};"
-	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"', ARRAY['gid']);
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
-VALUES(11, 'tabblock', 'tabblock', true, false, true,false, 'c', 
-'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (tabblock_id)) INHERITS(tiger.${lookup_name});" ',
-'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO tabblock_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''), ''{gid, statefp10, countyfp10, tractce10, blockce10,suffix1ce,blockce,tractce}''::text[]); "
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid']);
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
-VALUES(12, 'bg', 'bg', true,false, true,false, 'c', 
-'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (bg_id)) INHERITS(tiger.${lookup_name});" ',
-'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO bg_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); "
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid']);
-
-
-SELECT create_census_base_tables();
diff --git a/extras/tiger_geocoder/tiger_2011/create_geocode.bat b/extras/tiger_geocoder/tiger_2011/create_geocode.bat
deleted file mode 100755
index 67396ed..0000000
--- a/extras/tiger_geocoder/tiger_2011/create_geocode.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-REM $Id: create_geocode.bat 11969 2013-09-23 04:36:25Z robe $
-set PGPORT=5432
-set PGHOST=localhost
-set PGUSER=postgres
-set PGPASSWORD=yourpasswordhere
-set THEDB=geocoder
-set PGBIN=C:\Program Files\PostgreSQL\9.1\bin
-set PGCONTRIB=C:\Program Files\PostgreSQL\9.1\share\contrib
-REM "%PGBIN%\psql" -d "%THEDB%" -f "%PGCONTRIB%\fuzzystrmatch.sql"
-REM If you are using PostgreSQL 9.1 or above, use the extension syntax instead as shown below
-"%PGBIN%\psql"  -d "%THEDB%" -c "CREATE EXTENSION fuzzystrmatch;" 
-"%PGBIN%\psql"  -d "%THEDB%" -c "CREATE SCHEMA tiger;"
-REM unremark this next line and edit if you want the search paths set as part of the install
-REM "%PGBIN%\psql" -d "%THEDB%" -c "ALTER DATABASE %THEDB% SET search_path=public, tiger;"
-"%PGBIN%\psql"  -d "%THEDB%" -f "create_geocode.sql"
-REM "%PGBIN%\psql"  -d "%THEDB%" -f "tables\lookup_tables_2011.sql"
-"%PGBIN%\psql"  -d "%THEDB%" -c "CREATE SCHEMA tiger_data;"
-"%PGBIN%\psql"  -d "%THEDB%" -f "tiger_loader_2013.sql;"
-"%PGBIN%\psql"  -d "%THEDB%" -f "census_loader.sql;"
-"%PGBIN%\psql"  -d "%THEDB%" -c "SELECT tiger.create_census_base_tables();"
-"%PGBIN%\psql"  -d "%THEDB%" -c "CREATE INDEX idx_tiger_addr_least_address ON addr USING btree (least_hn(fromhn,tohn));"
-pause
-
diff --git a/extras/tiger_geocoder/tiger_2011/create_geocode.sh b/extras/tiger_geocoder/tiger_2011/create_geocode.sh
deleted file mode 100755
index 112694f..0000000
--- a/extras/tiger_geocoder/tiger_2011/create_geocode.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# $Id: create_geocode.sh 11969 2013-09-23 04:36:25Z robe $
-PGPORT=5432
-PGHOST=localhost
-PGUSER=postgres
-PGPASSWORD=yourpasswordhere
-THEDB=geocoder
-PSQL_CMD=/usr/bin/psql
-PGCONTRIB=/usr/share/postgresql/contrib
-#if you are on 9.1+ use the CREATE EXTENSION syntax instead
-${PSQL_CMD} -d "${THEDB}" -f "${PGCONTRIB}/fuzzystrmatch.sql"
-#${PSQL_CMD} -d "${THEDB}" -c "CREATE EXTENSION fuzzystrmatch" 
-${PSQL_CMD} -d "${THEDB}" -c "CREATE SCHEMA tiger"
-#unremark this next line and edit if you want the search paths set as part of the install
-#${PSQL_CMD} -d "${THEDB}" -c "ALTER DATABASE ${THEDB} SET search_path=public, tiger;"
-#${PSQL_CMD} -d "${THEDB}" -f "tables/lookup_tables_2010.sql"
-${PSQL_CMD} -d "${THEDB}" -c "CREATE SCHEMA tiger_data"
-${PSQL_CMD} -d "${THEDB}" -f "create_geocode.sql"
-${PSQL_CMD} -d "${THEDB}" -f "tiger_loader_2013.sql"
-${PSQL_CMD}  -d "${THEDB}" -f "census_loader.sql"
-${PSQL_CMD}  -d "${THEDB}" -c "SELECT tiger.create_census_base_tables();"
-${PSQL_CMD} -d "${THEDB}" -c "CREATE INDEX idx_tiger_addr_least_address ON addr USING btree (least_hn(fromhn,tohn));"
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/create_geocode.sql b/extras/tiger_geocoder/tiger_2011/create_geocode.sql
deleted file mode 100644
index aa68a36..0000000
--- a/extras/tiger_geocoder/tiger_2011/create_geocode.sql
+++ /dev/null
@@ -1,86 +0,0 @@
---$Id: create_geocode.sql 11244 2013-04-02 20:46:12Z robe $
---
--- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
---
--- Copyright (C) 2010, 2011 Regina Obe and Leo Hsu
--- Copyright (C) 2008 Stephen Frost (et al) 
--- reintegrated back into PostGIS code base from Steven's git (http://www.snowman.net/git/tiger_geocoder/)
--- Copyright Refractions Research
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
---  
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- Tiger is where we're going to create the functions, but we need
--- the PostGIS functions/types which are in public.
-\i utility/set_search_path.sql;
-SELECT tiger.SetSearchPathForInstall('tiger');
-\i tables/lookup_tables_2011.sql
-\i geocode_settings.sql
---SET search_path TO tiger,public;
-BEGIN;
--- Type used to pass around a normalized address between functions
--- This is s bit dangerous since it could potentially drop peoples tables
--- TODO: put in logic to check if any tables have norm_addy and don't drop if they do
-DROP TYPE IF EXISTS norm_addy CASCADE;
-CREATE TYPE norm_addy AS (
-    address INTEGER,
-    preDirAbbrev VARCHAR,
-    streetName VARCHAR,
-    streetTypeAbbrev VARCHAR,
-    postDirAbbrev VARCHAR,
-    internal VARCHAR,
-    location VARCHAR,
-    stateAbbrev VARCHAR,
-    zip VARCHAR,
-    parsed BOOLEAN);
-
--- System/General helper functions
-\i utility/utmzone.sql
-\i utility/cull_null.sql
-\i utility/nullable_levenshtein.sql
-\i utility/levenshtein_ignore_case.sql
-
----- Address normalizer
--- General helpers
-\i normalize/end_soundex.sql
-\i normalize/count_words.sql
-\i normalize/state_extract.sql
-\i normalize/get_last_words.sql
--- Location extraction/normalization helpers
-\i normalize/location_extract_countysub_exact.sql
-\i normalize/location_extract_countysub_fuzzy.sql
-\i normalize/location_extract_place_exact.sql
-\i normalize/location_extract_place_fuzzy.sql
-\i normalize/location_extract.sql
--- Normalization API, called by geocode mainly.
-\i normalize/normalize_address.sql
-\i normalize/pprint_addy.sql
-
--- PAGC normalizer drop in replacement.
-\i pagc_normalize/pagc_tables.sql
-\i pagc_normalize/pagc_normalize_address.sql
-
----- Geocoder functions
--- General helpers
-\i geocode/other_helper_functions.sql
-\i geocode/rate_attributes.sql
-\i geocode/includes_address.sql
-\i geocode/interpolate_from_address.sql
--- Actual lookups/geocoder helpers
-\i geocode/geocode_address.sql
-\i geocode/geocode_location.sql
--- Geocode API, called by user
-\i geocode/geocode_intersection.sql
-\i geocode/geocode.sql
-
--- Reverse Geocode API, called by user
-\i geocode/reverse_geocode.sql
-\i geocode/census_tracts_functions.sql
-COMMIT;
-
--- Tiger to PostGIS Topology
--- only useable if you have topology installed
-\i topology/tiger_topology_loader.sql
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/census_tracts_functions.sql b/extras/tiger_geocoder/tiger_2011/geocode/census_tracts_functions.sql
deleted file mode 100644
index e9fba9f..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/census_tracts_functions.sql
+++ /dev/null
@@ -1,57 +0,0 @@
---$Id: census_tracts_functions.sql 7996 2011-10-21 12:01:12Z robe $
- /*** 
- * 
- * Copyright (C) 2012 Regina Obe and Leo Hsu (Paragon Corporation)
- **/
--- This function given a geometry try will try to determine the tract.
--- It defaults to returning the tract name but can be changed to return track geoid id.
--- pass in 'tract_id' to get the full geoid, 'name' to get the short decimal name
-
-CREATE OR REPLACE FUNCTION get_tract(IN loc_geom geometry, output_field text DEFAULT 'name')
-  RETURNS text AS
-$$
-DECLARE
-  var_state text := NULL;
-  var_stusps text := NULL;
-  var_result text := NULL;
-  var_loc_geom geometry;
-  var_stmt text;
-  var_debug boolean = false;
-BEGIN
-	--$Id: census_tracts_functions.sql 7996 2011-10-21 12:01:12Z robe $
-	IF loc_geom IS NULL THEN
-		RETURN null;
-	ELSE
-		IF ST_SRID(loc_geom) = 4269 THEN
-			var_loc_geom := loc_geom;
-		ELSIF ST_SRID(loc_geom) > 0 THEN
-			var_loc_geom := ST_Transform(loc_geom, 4269); 
-		ELSE --If srid is unknown, assume its 4269
-			var_loc_geom := ST_SetSRID(loc_geom, 4269);
-		END IF;
-		IF GeometryType(var_loc_geom) != 'POINT' THEN
-			var_loc_geom := ST_Centroid(var_loc_geom);
-		END IF;
-	END IF;
-	-- Determine state tables to check 
-	-- this is needed to take advantage of constraint exclusion
-	IF var_debug THEN
-		RAISE NOTICE 'Get matching states start: %', clock_timestamp();
-	END IF;
-	SELECT statefp, stusps INTO var_state, var_stusps FROM state WHERE ST_Intersects(the_geom, var_loc_geom) LIMIT 1;
-	IF var_debug THEN
-		RAISE NOTICE 'Get matching states end: % -  %', var_state, clock_timestamp();
-	END IF;
-	IF var_state IS NULL THEN
-		-- We don't have any data for this state
-		RAISE NOTICE 'No data for this state';
-		RETURN NULL;
-	END IF;
-	-- locate county
-	var_stmt := 'SELECT ' || quote_ident(output_field) || ' FROM tract WHERE statefp =  $1 AND ST_Intersects(the_geom, $2) LIMIT 1;';
-	EXECUTE var_stmt INTO var_result USING var_state, var_loc_geom ;
-	RETURN var_result;
-END;
-$$
-  LANGUAGE plpgsql IMMUTABLE
-  COST 500;
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/geocode.sql b/extras/tiger_geocoder/tiger_2011/geocode/geocode.sql
deleted file mode 100644
index f9e53e5..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/geocode.sql
+++ /dev/null
@@ -1,131 +0,0 @@
---$Id: geocode.sql 9324 2012-02-27 22:08:12Z pramsey $
-CREATE OR REPLACE FUNCTION geocode(
-    input VARCHAR, max_results integer DEFAULT 10,
-    restrict_geom geometry DEFAULT NULL,
-    OUT ADDY NORM_ADDY,
-    OUT GEOMOUT GEOMETRY,
-    OUT RATING INTEGER
-) RETURNS SETOF RECORD
-AS $_$
-DECLARE
-  rec RECORD;
-BEGIN
-
-  IF input IS NULL THEN
-    RETURN;
-  END IF;
-
-  -- Pass the input string into the address normalizer
-  ADDY := normalize_address(input);
-  IF NOT ADDY.parsed THEN
-    RETURN;
-  END IF;
-
-/*  FOR rec IN SELECT * FROM geocode(ADDY)
-  LOOP
-
-    ADDY := rec.addy;
-    GEOMOUT := rec.geomout;
-    RATING := rec.rating;
-
-    RETURN NEXT;
-  END LOOP;*/
- 
-  RETURN QUERY SELECT g.addy, g.geomout, g.rating FROM geocode(ADDY, max_results, restrict_geom) As g ORDER BY g.rating;
-
-END;
-$_$ LANGUAGE plpgsql STABLE;
-
-
-CREATE OR REPLACE FUNCTION geocode(
-    IN_ADDY NORM_ADDY, 
-    max_results integer DEFAULT 10,
-    restrict_geom geometry DEFAULT null,
-    OUT ADDY NORM_ADDY,
-    OUT GEOMOUT GEOMETRY,
-    OUT RATING INTEGER
-) RETURNS SETOF RECORD
-AS $_$
-DECLARE
-  rec RECORD;
-BEGIN
-
-  IF NOT IN_ADDY.parsed THEN
-    RETURN;
-  END IF;
-
-  -- Go for the full monty if we've got enough info
-  IF IN_ADDY.streetName IS NOT NULL AND
-      (IN_ADDY.zip IS NOT NULL OR IN_ADDY.stateAbbrev IS NOT NULL) THEN
-
-    FOR rec IN
-        SELECT *
-        FROM
-          (SELECT
-            DISTINCT ON (
-              (a.addy).address,
-              (a.addy).predirabbrev,
-              (a.addy).streetname,
-              (a.addy).streettypeabbrev,
-              (a.addy).postdirabbrev,
-              (a.addy).internal,
-              (a.addy).location,
-              (a.addy).stateabbrev,
-              (a.addy).zip
-              )
-            *
-           FROM
-             geocode_address(IN_ADDY, max_results, restrict_geom) a
-           ORDER BY
-              (a.addy).address,
-              (a.addy).predirabbrev,
-              (a.addy).streetname,
-              (a.addy).streettypeabbrev,
-              (a.addy).postdirabbrev,
-              (a.addy).internal,
-              (a.addy).location,
-              (a.addy).stateabbrev,
-              (a.addy).zip,
-              a.rating
-          ) as b
-        ORDER BY b.rating LIMIT max_results
-    LOOP
-
-      ADDY := rec.addy;
-      GEOMOUT := rec.geomout;
-      RATING := rec.rating;
-
-      RETURN NEXT;
-
-      IF RATING = 0 THEN
-        RETURN;
-      END IF;
-
-    END LOOP;
-
-    IF RATING IS NOT NULL THEN
-      RETURN;
-    END IF;
-  END IF;
-
-  -- No zip code, try state/location, need both or we'll get too much stuffs.
-  IF IN_ADDY.zip IS NOT NULL OR (IN_ADDY.stateAbbrev IS NOT NULL AND IN_ADDY.location IS NOT NULL) THEN
-    FOR rec in SELECT * FROM geocode_location(IN_ADDY, restrict_geom) As b ORDER BY b.rating LIMIT max_results
-    LOOP
-      ADDY := rec.addy;
-      GEOMOUT := rec.geomout;
-      RATING := rec.rating;
-
-      RETURN NEXT;
-      IF RATING = 100 THEN
-        RETURN;
-      END IF;
-    END LOOP;
-
-  END IF;
-
-  RETURN;
-
-END;
-$_$ LANGUAGE plpgsql STABLE
-  COST 1000;
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql b/extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql
deleted file mode 100644
index f7ba331..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/geocode_address.sql
+++ /dev/null
@@ -1,437 +0,0 @@
---$Id: geocode_address.sql 12912 2014-08-23 05:22:13Z robe $
---DROP FUNCTION IF EXISTS geocode_address(norm_addy, integer , geometry);
-CREATE OR REPLACE FUNCTION geocode_address(IN parsed norm_addy, max_results integer DEFAULT 10, restrict_geom geometry DEFAULT NULL, OUT addy norm_addy, OUT geomout geometry, OUT rating integer)
-  RETURNS SETOF record AS
-$$
-DECLARE
-  results RECORD;
-  zip_info RECORD;
-  stmt VARCHAR;
-  in_statefp VARCHAR;
-  exact_street boolean := false;
-  var_debug boolean := get_geocode_setting('debug_geocode_address')::boolean;
-  var_sql text := '';
-  var_n integer := 0;
-  var_restrict_geom geometry := NULL;
-  var_bfilter text := null;
-  var_bestrating integer := NULL;
-BEGIN
-  IF parsed.streetName IS NULL THEN
-    -- A street name must be given.  Think about it.
-    RETURN;
-  END IF;
-
-  ADDY.internal := parsed.internal;
-
-  IF parsed.stateAbbrev IS NOT NULL THEN
-    in_statefp := statefp FROM state_lookup As s WHERE s.abbrev = parsed.stateAbbrev;
-  END IF;
-  
-  IF in_statefp IS NULL THEN 
-  --if state is not provided or was bogus, just pick the first where the zip is present
-    in_statefp := statefp FROM zip_lookup_base WHERE zip = substring(parsed.zip,1,5) LIMIT 1;
-  END IF;
-  
-  IF restrict_geom IS NOT NULL THEN
-  		IF ST_SRID(restrict_geom) < 1 OR ST_SRID(restrict_geom) = 4236 THEN 
-  		-- basically has no srid or if wgs84 close enough to NAD 83 -- assume same as data
-  			var_restrict_geom = ST_SetSRID(restrict_geom,4269);
-  		ELSE
-  		--transform and snap
-  			var_restrict_geom = ST_SnapToGrid(ST_Transform(restrict_geom, 4269), 0.000001);
-  		END IF;
-  END IF;
-  var_bfilter := ' SELECT zcta5ce FROM zcta5 AS zc  
-                    WHERE zc.statefp = ' || quote_nullable(in_statefp) || ' 
-                        AND ST_Intersects(zc.the_geom, ' || quote_literal(var_restrict_geom::text) || '::geometry)  ' ;
-
-  SELECT NULL::varchar[] As zip INTO zip_info;
- 
-  IF parsed.zip IS NOT NULL  THEN
-  -- Create an array of 5 zips containing 2 before and 2 after our target if our streetName is longer
-    IF length(parsed.streetName) > 7 THEN
-        SELECT zip_range(parsed.zip, -2, 2) As zip INTO zip_info;
-    ELSE
-    -- If our street name is short, we'll run into many false positives so reduce our zip window a bit
-        SELECT zip_range(parsed.zip, -1, 1) As zip INTO zip_info;
-    END IF;
-    --This signals bad zip input, only use the range if it falls in the place zip range
-    IF length(parsed.zip) != 5 AND parsed.location IS NOT NULL THEN 
-         stmt := 'SELECT ARRAY(SELECT DISTINCT zip
-          FROM zip_lookup_base AS z
-         WHERE z.statefp = $1
-               AND  z.zip = ANY($3) AND lower(z.city) LIKE lower($2) || ''%''::text '  || COALESCE(' AND z.zip IN(' || var_bfilter || ')', '') || ')::varchar[] AS zip ORDER BY zip' ;
-         EXECUTE stmt INTO zip_info USING in_statefp, parsed.location, zip_info.zip;
-         IF var_debug THEN
-            RAISE NOTICE 'Bad zip newzip range: %', quote_nullable(zip_info.zip);
-         END IF;
-        IF array_upper(zip_info.zip,1) = 0 OR array_upper(zip_info.zip,1) IS NULL THEN
-        -- zips do not fall in city ignore them
-            IF var_debug THEN
-                RAISE NOTICE 'Ignore new zip range that is bad too: %', quote_nullable(zip_info.zip);
-            END IF;
-            zip_info.zip = NULL::varchar[];
-        END IF;
-    END IF;
-  END IF;
-  IF zip_info.zip IS NULL THEN
-  -- If no good zips just include all for the location
-  -- We do a like instead of absolute check since tiger sometimes tacks things like Town at end of places
-    stmt := 'SELECT ARRAY(SELECT DISTINCT zip
-          FROM zip_lookup_base AS z
-         WHERE z.statefp = $1
-               AND  lower(z.city) LIKE lower($2) || ''%''::text '  || COALESCE(' AND z.zip IN(' || var_bfilter || ')', '') || ')::varchar[] AS zip ORDER BY zip' ;
-    EXECUTE stmt INTO zip_info USING in_statefp, parsed.location;
-    IF var_debug THEN
-        RAISE NOTICE 'Zip range based on only considering city: %', quote_nullable(zip_info.zip);
-    END IF;
-  END IF;
-   -- Brute force -- try to find perfect matches and exit if we have one
-   -- we first pull all the names in zip and rank by if zip matches input zip and streetname matches street
-  stmt := 'WITH a AS
-  	( SELECT * 
-  		FROM (SELECT f.*, ad.side, ad.zip, ad.fromhn, ad.tohn,
-  					RANK() OVER(ORDER BY ' || CASE WHEN parsed.zip > '' THEN ' diff_zip(ad.zip,$7) + ' ELSE '' END
-						||' CASE WHEN lower(f.name) = lower($2) THEN 0 ELSE levenshtein_ignore_case(f.name, lower($2) )  END + 
-						levenshtein_ignore_case(f.fullname, lower($2 || '' '' || COALESCE($4,'''')) ) 
-						+ CASE WHEN (greatest_hn(ad.fromhn,ad.tohn) % 2)::integer = ($1 % 2)::integer THEN 0 ELSE 1 END
-						+ CASE WHEN $1::integer BETWEEN least_hn(ad.fromhn,ad.tohn) AND greatest_hn(ad.fromhn, ad.tohn) 
-							THEN 0 ELSE 4 END 
-							+ CASE WHEN lower($4) = lower(f.suftypabrv) OR lower($4) = lower(f.pretypabrv) THEN 0 ELSE 1 END
-							+ rate_attributes($5, f.predirabrv,'
-         || '    $2,  f.name , $4,'
-         || '    suftypabrv , $6,'
-         || '    sufdirabrv, prequalabr)  
-							)
-						As rank
-                		FROM featnames As f INNER JOIN addr As ad ON (f.tlid = ad.tlid) 
-                    WHERE $10 = f.statefp AND $10 = ad.statefp 
-                    	'
-                    || CASE WHEN length(parsed.streetName) > 5  THEN ' AND (lower(f.fullname) LIKE (COALESCE($5 || '' '','''') || lower($2) || ''%'')::text OR lower(f.name) = lower($2) OR soundex(f.name) = soundex($2) ) ' ELSE  ' AND lower(f.name) = lower($2) ' END 
-                    || CASE WHEN zip_info.zip IS NOT NULL THEN '    AND ( ad.zip = ANY($9::varchar[]) )  ' ELSE '' END 
-            || ' ) AS foo ORDER BY rank LIMIT ' || max_results*3 || ' ) 
-  	SELECT * FROM ( 
-    SELECT DISTINCT ON (sub.predirabrv,sub.fename,COALESCE(sub.suftypabrv, sub.pretypabrv) ,sub.sufdirabrv,sub.place,s.stusps,sub.zip)'
-         || '    sub.predirabrv   as fedirp,'
-         || '    sub.fename,'
-         || '    COALESCE(sub.suftypabrv, sub.pretypabrv)   as fetype,'
-         || '    sub.sufdirabrv   as fedirs,'
-         || '    sub.place ,'
-         || '    s.stusps as state,'
-         || '    sub.zip as zip,'
-         || '    interpolate_from_address($1, sub.fromhn,'
-         || '        sub.tohn, sub.the_geom, sub.side) as address_geom,'
-         || '       sub.sub_rating + '
-         || CASE WHEN parsed.zip > '' THEN '  least(coalesce(diff_zip($7 , sub.zip),0), 10)::integer  '
-            ELSE '1' END::text 
-         || ' + coalesce(levenshtein_ignore_case($3, sub.place),5)'
-         || '    as sub_rating,'
-         || '    sub.exact_address as exact_address, sub.tohn, sub.fromhn '
-         || ' FROM ('
-         || '  SELECT tlid, predirabrv, COALESCE(b.prequalabr || '' '','''' ) || b.name As fename, suftypabrv, sufdirabrv, fromhn, tohn, 
-                    side,  zip, rate_attributes($5, predirabrv,'
-         || '    $2,  b.name , $4,'
-         || '    suftypabrv , $6,'
-         || '    sufdirabrv, prequalabr) + '
-         || '    CASE '
-         || '        WHEN $1::integer IS NULL OR b.fromhn IS NULL THEN 20'
-         || '        WHEN $1::integer >= least_hn(b.fromhn, b.tohn) '
-         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn)'
-         || '            AND ($1::integer % 2) = (to_number(b.fromhn,''99999999'') % 2)::integer'
-         || '            THEN 0'
-         || '        WHEN $1::integer >= least_hn(b.fromhn,b.tohn)'
-         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn)'
-         || '            THEN 2'
-         || '        ELSE'
-         || '            ((1.0 - '
-         ||              '(least_hn($1::text,least_hn(b.fromhn,b.tohn)::text)::numeric /'
-         ||              ' (greatest(1,greatest_hn($1::text,greatest_hn(b.fromhn,b.tohn)::text))) )'
-         ||              ') * 5)::integer + 5'
-         || '        END'
-         || '    as sub_rating,$1::integer >= least_hn(b.fromhn,b.tohn) '
-         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn) '
-         || '            AND ($1 % 2)::numeric::integer = (to_number(b.fromhn,''99999999'') % 2)'
-         || '    as exact_address, b.name, b.prequalabr, b.pretypabrv, b.tfidr, b.tfidl, b.the_geom, b.place '
-         || '  FROM 
-             (SELECT   a.tlid, a.fullname, a.name, a.predirabrv, a.suftypabrv, a.sufdirabrv, a.prequalabr, a.pretypabrv, 
-                b.the_geom, tfidr, tfidl,
-                a.side ,
-                a.fromhn,
-                a.tohn,
-                a.zip,
-                p.name as place
-
-                FROM  a INNER JOIN edges As b ON (a.statefp = b.statefp AND a.tlid = b.tlid  '
-               || ')
-                    INNER JOIN faces AS f ON ($10 = f.statefp AND ( (b.tfidl = f.tfid AND a.side = ''L'') OR (b.tfidr = f.tfid AND a.side = ''R'' ) )) 
-                    INNER JOIN place p ON ($10 = p.statefp AND f.placefp = p.placefp ' 
-          || CASE WHEN parsed.location > '' AND zip_info.zip IS NULL THEN ' AND ( lower(p.name) LIKE (lower($3::text) || ''%'')  ) ' ELSE '' END          
-          || ')
-                WHERE a.statefp = $10  AND  b.statefp = $10   '
-             ||   CASE WHEN var_restrict_geom IS NOT NULL THEN ' AND ST_Intersects(b.the_geom, $8::geometry) '  ELSE '' END 
-             || '
-
-          )   As b  
-           ORDER BY 10 ,  11 DESC 
-           LIMIT 20 
-            ) AS sub 
-          JOIN state s ON ($10 = s.statefp) 
-            ORDER BY 1,2,3,4,5,6,7,9 
-          LIMIT 20) As foo ORDER BY sub_rating, exact_address DESC LIMIT  ' || max_results*10 ;
-         
-  IF var_debug THEN
-         RAISE NOTICE 'stmt: %', 
-            replace(replace( replace(
-                replace(
-                replace(replace( replace(replace(replace(replace(stmt, '$10', quote_nullable(in_statefp) ), '$2',quote_nullable(parsed.streetName)),'$3', 
-                quote_nullable(parsed.location)), '$4', quote_nullable(parsed.streetTypeAbbrev) ), 
-                '$5', quote_nullable(parsed.preDirAbbrev) ),
-                   '$6', quote_nullable(parsed.postDirAbbrev) ),
-                   '$7', quote_nullable(parsed.zip) ),
-                   '$8', quote_nullable(var_restrict_geom::text) ),
-                   '$9', quote_nullable(zip_info.zip) ), '$1', quote_nullable(parsed.address) );
-        --RAISE NOTICE 'PREPARE query_base_geo(integer, varchar,varchar,varchar,varchar,varchar,varchar,geometry,varchar[]) As %', stmt;
-        --RAISE NOTICE 'EXECUTE query_base_geo(%,%,%,%,%,%,%,%,%); ', parsed.address,quote_nullable(parsed.streetName), quote_nullable(parsed.location), quote_nullable(parsed.streetTypeAbbrev), quote_nullable(parsed.preDirAbbrev), quote_nullable(parsed.postDirAbbrev), quote_nullable(parsed.zip), quote_nullable(var_restrict_geom::text), quote_nullable(zip_info.zip);
-        --RAISE NOTICE 'DEALLOCATE query_base_geo;';
-    END IF;
-    FOR results IN EXECUTE stmt USING parsed.address,parsed.streetName, parsed.location, parsed.streetTypeAbbrev, parsed.preDirAbbrev, parsed.postDirAbbrev, parsed.zip, var_restrict_geom, zip_info.zip, in_statefp LOOP
-      
-        -- If we found a match with an exact street, then don't bother
-        -- trying to do non-exact matches
-    
-        exact_street := true;    
-        
-        IF results.exact_address THEN
-            ADDY.address := parsed.address;
-        ELSE
-            ADDY.address := CASE WHEN parsed.address > to_number(results.tohn,'99999999') AND parsed.address > to_number(results.fromhn, '99999999') THEN greatest_hn(results.fromhn, results.tohn)::integer
-                ELSE least_hn(results.fromhn, results.tohn)::integer END ;
-        END IF;
-        
-        ADDY.preDirAbbrev     := results.fedirp;
-        ADDY.streetName       := results.fename;
-        ADDY.streetTypeAbbrev := results.fetype;
-        ADDY.postDirAbbrev    := results.fedirs;
-        ADDY.location         := results.place;
-        ADDY.stateAbbrev      := results.state;
-        ADDY.zip              := results.zip;
-        ADDY.parsed := TRUE;
-        
-        GEOMOUT := results.address_geom;
-        RATING := results.sub_rating;
-        var_n := var_n + 1;
-        
-        IF var_bestrating IS NULL THEN
-            var_bestrating := RATING; /** the first record to come is our best rating we will ever get **/
-        END IF;
-        
-        -- Only consider matches with decent ratings
-        IF RATING < 90 THEN
-            RETURN NEXT;
-        END IF;
-        
-        -- If we get an exact match, then just return that
-        IF RATING = 0 THEN
-            RETURN;
-        END IF;
-    
-        IF var_n >= max_results AND RATING < 10  THEN --we have exceeded our desired limit and rating is not horrible
-            RETURN;
-        END IF;
-    
-    END LOOP;
-    
-    IF var_bestrating < 30 THEN --if we already have a match with a rating of 30 or less, its unlikely we can do any better
-        RETURN;
-    END IF;
-    
-
--- There are a couple of different things to try, from the highest preference and falling back
-  -- to lower-preference options.
-  -- We start out with zip-code matching, where the zip code could possibly be in more than one
-  -- state.  We loop through each state its in.
-  -- Next, we try to find the location in our side-table, which is based off of the 'place' data exact first then sounds like
-  -- Next, we look up the location/city and use the zip code which is returned from that
-  -- Finally, if we didn't get a zip code or a city match, we fall back to just a location/street
-  -- lookup to try and find *something* useful.
-  -- In the end, we *have* to find a statefp, one way or another.
-  var_sql := 
-  ' SELECT statefp,location,a.zip,exact,min(pref) FROM
-    (SELECT zip_state.statefp as statefp,$1 as location, true As exact, ARRAY[zip_state.zip] as zip,1 as pref
-        FROM zip_state WHERE zip_state.zip = $2 
-            AND (' || quote_nullable(in_statefp) || ' IS NULL OR zip_state.statefp = ' || quote_nullable(in_statefp) || ')
-          ' || COALESCE(' AND zip_state.zip IN(' || var_bfilter || ')', '') ||
-        ' UNION SELECT zip_state_loc.statefp,zip_state_loc.place As location,false As exact, array_agg(zip_state_loc.zip) AS zip,1 + abs(COALESCE(diff_zip(max(zip), $2),0) - COALESCE(diff_zip(min(zip), $2),0)) As pref
-              FROM zip_state_loc
-             WHERE zip_state_loc.statefp = ' || quote_nullable(in_statefp) || ' 
-                   AND lower($1) = lower(zip_state_loc.place) '  || COALESCE(' AND zip_state_loc.zip IN(' || var_bfilter || ')', '') ||
-        '     GROUP BY zip_state_loc.statefp,zip_state_loc.place
-      UNION SELECT zip_state_loc.statefp,zip_state_loc.place As location,false As exact, array_agg(zip_state_loc.zip),3
-              FROM zip_state_loc
-             WHERE zip_state_loc.statefp = ' || quote_nullable(in_statefp) || '
-                   AND soundex($1) = soundex(zip_state_loc.place)
-             GROUP BY zip_state_loc.statefp,zip_state_loc.place
-      UNION SELECT zip_lookup_base.statefp,zip_lookup_base.city As location,false As exact, array_agg(zip_lookup_base.zip),4
-              FROM zip_lookup_base
-             WHERE zip_lookup_base.statefp = ' || quote_nullable(in_statefp) || '
-                         AND (soundex($1) = soundex(zip_lookup_base.city) OR soundex($1) = soundex(zip_lookup_base.county))
-             GROUP BY zip_lookup_base.statefp,zip_lookup_base.city
-      UNION SELECT ' || quote_nullable(in_statefp) || ' As statefp,$1 As location,false As exact,NULL, 5) as a ' 
-      ' WHERE a.statefp IS NOT NULL 
-      GROUP BY statefp,location,a.zip,exact, pref ORDER BY exact desc, pref, zip';
-  /** FOR zip_info IN     SELECT statefp,location,zip,exact,min(pref) FROM
-    (SELECT zip_state.statefp as statefp,parsed.location as location, true As exact, ARRAY[zip_state.zip] as zip,1 as pref
-        FROM zip_state WHERE zip_state.zip = parsed.zip 
-            AND (in_statefp IS NULL OR zip_state.statefp = in_statefp)
-        UNION SELECT zip_state_loc.statefp,parsed.location,false As exact, array_agg(zip_state_loc.zip),2 + diff_zip(zip[1], parsed.zip)
-              FROM zip_state_loc
-             WHERE zip_state_loc.statefp = in_statefp
-                   AND lower(parsed.location) = lower(zip_state_loc.place)
-             GROUP BY zip_state_loc.statefp,parsed.location
-      UNION SELECT zip_state_loc.statefp,parsed.location,false As exact, array_agg(zip_state_loc.zip),3
-              FROM zip_state_loc
-             WHERE zip_state_loc.statefp = in_statefp
-                   AND soundex(parsed.location) = soundex(zip_state_loc.place)
-             GROUP BY zip_state_loc.statefp,parsed.location
-      UNION SELECT zip_lookup_base.statefp,parsed.location,false As exact, array_agg(zip_lookup_base.zip),4
-              FROM zip_lookup_base
-             WHERE zip_lookup_base.statefp = in_statefp
-                         AND (soundex(parsed.location) = soundex(zip_lookup_base.city) OR soundex(parsed.location) = soundex(zip_lookup_base.county))
-             GROUP BY zip_lookup_base.statefp,parsed.location
-      UNION SELECT in_statefp,parsed.location,false As exact,NULL, 5) as a
-        --JOIN (VALUES (true),(false)) as b(exact) on TRUE
-      WHERE statefp IS NOT NULL
-      GROUP BY statefp,location,zip,exact, pref ORDER BY exact desc, pref, zip  **/
-  FOR zip_info IN EXECUTE var_sql USING parsed.location, parsed.zip  LOOP
-  -- For zip distance metric we consider both the distance of zip based on numeric as well aa levenshtein
-  -- We use the prequalabr (these are like Old, that may or may not appear in front of the street name)
-  -- We also treat pretypabr as fetype since in normalize we treat these as streetypes  and highways usually have the type here
-  -- In pprint_addy we changed to put it in front if it is a is_hw type
-    stmt := 'SELECT DISTINCT ON (sub.predirabrv,sub.fename,COALESCE(sub.suftypabrv, sub.pretypabrv) ,sub.sufdirabrv,coalesce(p.name,zip.city,cs.name,co.name),s.stusps,sub.zip)'
-         || '    sub.predirabrv   as fedirp,'
-         || '    sub.fename,'
-         || '    COALESCE(sub.suftypabrv, sub.pretypabrv)   as fetype,'
-         || '    sub.sufdirabrv   as fedirs,'
-         || '    coalesce(p.name,zip.city,cs.name,co.name)::varchar as place,'
-         || '    s.stusps as state,'
-         || '    sub.zip as zip,'
-         || '    interpolate_from_address($1, sub.fromhn,'
-         || '        sub.tohn, e.the_geom, sub.side) as address_geom,'
-         || '       sub.sub_rating + '
-         || CASE WHEN parsed.zip > '' THEN '  least((coalesce(diff_zip($7 , sub.zip),0) *1.00/2)::integer, coalesce(levenshtein_ignore_case($7, sub.zip),0) ) '
-            ELSE '3' END::text 
-         || ' + coalesce(least(levenshtein_ignore_case($3, coalesce(p.name,zip.city,cs.name,co.name)), levenshtein_ignore_case($3, coalesce(cs.name,co.name))),5)'
-         || '    as sub_rating,'
-         || '    sub.exact_address as exact_address '
-         || ' FROM ('
-         || '  SELECT a.tlid, predirabrv, COALESCE(a.prequalabr || '' '','''' ) || a.name As fename, suftypabrv, sufdirabrv, fromhn, tohn, 
-                    side, a.statefp, zip, rate_attributes($5, a.predirabrv,'
-         || '    $2,  a.name , $4,'
-         || '    a.suftypabrv , $6,'
-         || '    a.sufdirabrv, a.prequalabr) + '
-         || '    CASE '
-         || '        WHEN $1::integer IS NULL OR b.fromhn IS NULL THEN 20'
-         || '        WHEN $1::integer >= least_hn(b.fromhn, b.tohn) '
-         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn)'
-         || '            AND ($1::integer % 2) = (to_number(b.fromhn,''99999999'') % 2)::integer'
-         || '            THEN 0'
-         || '        WHEN $1::integer >= least_hn(b.fromhn,b.tohn)'
-         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn)'
-         || '            THEN 2'
-         || '        ELSE'
-         || '            ((1.0 - '
-         ||              '(least_hn($1::text,least_hn(b.fromhn,b.tohn)::text)::numeric /'
-         ||              ' greatest(1,greatest_hn($1::text,greatest_hn(b.fromhn,b.tohn)::text)))'
-         ||              ') * 5)::integer + 5'
-         || '        END'
-         || '    as sub_rating,$1::integer >= least_hn(b.fromhn,b.tohn) '
-         || '            AND $1::integer <= greatest_hn(b.fromhn,b.tohn) '
-         || '            AND ($1 % 2)::numeric::integer = (to_number(b.fromhn,''99999999'') % 2)'
-         || '    as exact_address, a.name, a.prequalabr, a.pretypabrv '
-         || '  FROM featnames a join addr b ON (a.tlid = b.tlid AND a.statefp = b.statefp  )'
-         || '  WHERE'
-         || '        a.statefp = ' || quote_literal(zip_info.statefp) || ' AND a.mtfcc LIKE ''S%''  '
-         || coalesce('    AND b.zip IN (''' || array_to_string(zip_info.zip,''',''') || ''') ','')
-         || CASE WHEN zip_info.exact
-                 THEN '    AND ( lower($2) = lower(a.name) OR  ( a.prequalabr > '''' AND trim(lower($2), lower(a.prequalabr) || '' '') = lower(a.name) ) OR numeric_streets_equal($2, a.name) ) '
-                 ELSE '    AND ( soundex($2) = soundex(a.name)  OR ( (length($2) > 15 or (length($2) > 7 AND a.prequalabr > '''') ) AND lower(a.fullname) LIKE lower(substring($2,1,15)) || ''%'' ) OR  numeric_streets_equal($2, a.name) ) '
-            END
-         || '  ORDER BY 11'
-         || '  LIMIT 20'
-         || '    ) AS sub'
-         || '  JOIN edges e ON (' || quote_literal(zip_info.statefp) || ' = e.statefp AND sub.tlid = e.tlid AND e.mtfcc LIKE ''S%'' ' 
-         ||   CASE WHEN var_restrict_geom IS NOT NULL THEN ' AND ST_Intersects(e.the_geom, $8) '  ELSE '' END || ') '
-         || '  JOIN state s ON (' || quote_literal(zip_info.statefp) || ' = s.statefp)'
-         || '  JOIN faces f ON (' || quote_literal(zip_info.statefp) || ' = f.statefp AND (e.tfidl = f.tfid OR e.tfidr = f.tfid))'
-         || '  LEFT JOIN zip_lookup_base zip ON (sub.zip = zip.zip AND zip.statefp=' || quote_literal(zip_info.statefp) || ')'
-         || '  LEFT JOIN place p ON (' || quote_literal(zip_info.statefp) || ' = p.statefp AND f.placefp = p.placefp)'
-         || '  LEFT JOIN county co ON (' || quote_literal(zip_info.statefp) || ' = co.statefp AND f.countyfp = co.countyfp)'
-         || '  LEFT JOIN cousub cs ON (' || quote_literal(zip_info.statefp) || ' = cs.statefp AND cs.cosbidfp = sub.statefp || co.countyfp || f.cousubfp)'
-         || ' WHERE'
-         || '  ( (sub.side = ''L'' and e.tfidl = f.tfid) OR (sub.side = ''R'' and e.tfidr = f.tfid) ) '
-         || ' ORDER BY 1,2,3,4,5,6,7,9'
-         || ' LIMIT 10'
-         ;
-    IF var_debug THEN
-        RAISE NOTICE '%', stmt;
-        RAISE NOTICE 'PREPARE query_base_geo(integer, varchar,varchar,varchar,varchar,varchar,varchar,geometry) As %', stmt;
-        RAISE NOTICE 'EXECUTE query_base_geo(%,%,%,%,%,%,%,%); ', parsed.address,quote_nullable(parsed.streetName), quote_nullable(parsed.location), quote_nullable(parsed.streetTypeAbbrev), quote_nullable(parsed.preDirAbbrev), quote_nullable(parsed.postDirAbbrev), quote_nullable(parsed.zip), quote_nullable(var_restrict_geom::text);
-        RAISE NOTICE 'DEALLOCATE query_base_geo;';
-    END IF;
-    -- If we got an exact street match then when we hit the non-exact
-    -- set of tests, just drop out.
-    IF NOT zip_info.exact AND exact_street THEN
-        RETURN;
-    END IF;
-
-    FOR results IN EXECUTE stmt USING parsed.address,parsed.streetName, parsed.location, parsed.streetTypeAbbrev, parsed.preDirAbbrev, parsed.postDirAbbrev, parsed.zip, var_restrict_geom LOOP
-
-      -- If we found a match with an exact street, then don't bother
-      -- trying to do non-exact matches
-      IF zip_info.exact THEN
-        exact_street := true;
-      END IF;
-
-      IF results.exact_address THEN
-        ADDY.address := parsed.address;
-      ELSE
-        ADDY.address := NULL;
-      END IF;
-
-      ADDY.preDirAbbrev     := results.fedirp;
-      ADDY.streetName       := results.fename;
-      ADDY.streetTypeAbbrev := results.fetype;
-      ADDY.postDirAbbrev    := results.fedirs;
-      ADDY.location         := results.place;
-      ADDY.stateAbbrev      := results.state;
-      ADDY.zip              := results.zip;
-      ADDY.parsed := TRUE;
-
-      GEOMOUT := results.address_geom;
-      RATING := results.sub_rating;
-      var_n := var_n + 1;
-      
-      -- If our ratings go above 99 exit because its a really bad match
-      IF RATING > 99 THEN
-        RETURN;
-      END IF;
-
-      RETURN NEXT;
-
-      -- If we get an exact match, then just return that
-      IF RATING = 0 THEN
-        RETURN;
-      END IF;
-
-    END LOOP;
-    IF var_n > max_results  THEN --we have exceeded our desired limit
-        RETURN;
-    END IF;
-  END LOOP;
-
-  RETURN;
-END;
-$$
-  LANGUAGE 'plpgsql' STABLE COST 1000 ROWS 50;
-ALTER FUNCTION geocode_address(IN norm_addy, IN integer, IN geometry) SET join_collapse_limit='2';
-
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/geocode_intersection.sql b/extras/tiger_geocoder/tiger_2011/geocode/geocode_intersection.sql
deleted file mode 100644
index e8c18e9..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/geocode_intersection.sql
+++ /dev/null
@@ -1,149 +0,0 @@
---$Id: geocode_intersection.sql 10310 2012-09-20 13:32:14Z robe $
- /*** 
- * 
- * Copyright (C) 2011 Regina Obe and Leo Hsu (Paragon Corporation)
- **/
--- This function given two roadways, state and optional city, zip
--- Will return addresses that are at the intersecton of those roadways
--- The address returned will be the address on the first road way
--- Use case example an address at the intersection of 2 streets: 
--- SELECT pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('School St', 'Washington St', 'MA', 'Boston','02117');
---DROP FUNCTION tiger.geocode_intersection(text,text,text,text,text,integer);
-CREATE OR REPLACE FUNCTION geocode_intersection(IN roadway1 text, IN roadway2 text, IN in_state text, IN in_city text DEFAULT '', IN in_zip text DEFAULT '', 
-IN num_results integer DEFAULT 10,  OUT ADDY NORM_ADDY,
-    OUT GEOMOUT GEOMETRY,
-    OUT RATING INTEGER) RETURNS SETOF record AS
-$$
-DECLARE
-    var_na_road norm_addy;
-    var_na_inter1 norm_addy;
-    var_sql text := '';
-    var_zip varchar(5)[];
-    in_statefp varchar(2) ; 
-    var_debug boolean := get_geocode_setting('debug_geocode_intersection')::boolean;
-    results record;
-BEGIN
-    IF COALESCE(roadway1,'') = '' OR COALESCE(roadway2,'') = '' THEN
-        -- not enough to give a result just return
-        RETURN ;
-    ELSE
-        var_na_road := normalize_address('0 ' || roadway1 || ', ' || COALESCE(in_city,'') || ', ' || in_state || ' ' || in_zip);
-        var_na_inter1  := normalize_address('0 ' || roadway2 || ', ' || COALESCE(in_city,'') || ', ' || in_state || ' ' || in_zip);
-    END IF;
-    in_statefp := statefp FROM state_lookup As s WHERE s.abbrev = upper(in_state);
-    IF COALESCE(in_zip,'') > '' THEN -- limit search to 2 plus or minus the input zip
-        var_zip := zip_range(in_zip, -2,2);
-    END IF;
-
-    IF var_zip IS NULL AND in_city > '' THEN
-        var_zip := array_agg(zip) FROM zip_lookup_base WHERE statefp = in_statefp AND lower(city) = lower(in_city);
-    END IF;
-    
-    -- if we don't have a city or zip, don't bother doing the zip check, just keep as null
-    IF var_zip IS NULL AND in_city > '' THEN
-        var_zip := array_agg(zip) FROM zip_lookup_base WHERE statefp = in_statefp AND lower(city) LIKE lower(in_city) || '%'  ;
-    END IF; 
-    IF var_debug THEN
-		RAISE NOTICE 'var_zip: %, city: %', quote_nullable(var_zip), quote_nullable(in_city);	
-    END IF;
-    var_sql := '
-    WITH 
-    	a1 AS (SELECT f.*, addr.fromhn, addr.tohn, addr.side , addr.zip
-    				FROM (SELECT * FROM featnames 
-    							WHERE statefp = $1 AND ( lower(name) = $2  ' ||
-    							CASE WHEN length(var_na_road.streetName) > 5 THEN ' or  lower(fullname) LIKE $6 || ''%'' ' ELSE '' END || ')' 
-    							|| ')  AS f LEFT JOIN (SELECT * FROM addr WHERE addr.statefp = $1) As addr ON (addr.tlid = f.tlid AND addr.statefp = f.statefp)
-    					WHERE $5::text[] IS NULL OR addr.zip = ANY($5::text[]) OR addr.zip IS NULL 
-    				ORDER BY CASE WHEN lower(f.fullname) = $6 THEN 0 ELSE 1 END
-    				LIMIT 5000
-    			  ),
-        a2 AS (SELECT f.*, addr.fromhn, addr.tohn, addr.side , addr.zip
-    				FROM (SELECT * FROM featnames 
-    							WHERE statefp = $1 AND ( lower(name) = $4 ' || 
-    							CASE WHEN length(var_na_inter1.streetName) > 5 THEN ' or lower(fullname) LIKE $7 || ''%'' ' ELSE '' END || ')' 
-    							|| ' )  AS f LEFT JOIN (SELECT * FROM addr WHERE addr.statefp = $1) AS addr ON (addr.tlid = f.tlid AND addr.statefp = f.statefp)
-    					WHERE $5::text[] IS NULL OR addr.zip = ANY($5::text[])  or addr.zip IS NULL 
-    			ORDER BY CASE WHEN lower(f.fullname) = $7 THEN 0 ELSE 1 END
-    				LIMIT 5000
-    			  ),
-    	 e1 AS (SELECT e.the_geom, e.tnidf, e.tnidt, a.*,
-    	 			CASE WHEN a.side = ''L'' THEN e.tfidl ELSE e.tfidr END AS tfid
-    	 			FROM a1 As a
-    					INNER JOIN  edges AS e ON (e.statefp = a.statefp AND a.tlid = e.tlid)
-    				WHERE e.statefp = $1 
-    				ORDER BY CASE WHEN lower(a.name) = $4 THEN 0 ELSE 1 END + CASE WHEN lower(e.fullname) = $7 THEN 0 ELSE 1 END
-    				LIMIT 1000) ,
-    	e2 AS (SELECT e.the_geom, e.tnidf, e.tnidt, a.*,
-    	 			CASE WHEN a.side = ''L'' THEN e.tfidl ELSE e.tfidr END AS tfid
-    				FROM (SELECT * FROM edges WHERE statefp = $1) AS e INNER JOIN a2 AS a ON (e.statefp = a.statefp AND a.tlid = e.tlid)
-    					INNER JOIN e1 ON (e.statefp = e1.statefp AND ST_Intersects(e.the_geom, e1.the_geom) 
-    					AND ARRAY[e.tnidf, e.tnidt] && ARRAY[e1.tnidf, e1.tnidt] )
-    					
-    				WHERE (lower(e.fullname) = $7 or lower(a.name) LIKE $4 || ''%'')
-    				ORDER BY CASE WHEN lower(a.name) = $4 THEN 0 ELSE 1 END + CASE WHEN lower(e.fullname) = $7 THEN 0 ELSE 1 END
-    				LIMIT 100
-    				), 
-    	segs AS (SELECT DISTINCT ON(e1.tlid, e1.side)
-                   CASE WHEN e1.tnidf = e2.tnidf OR e1.tnidf = e2.tnidt THEN
-                                e1.fromhn
-                            ELSE
-                                e1.tohn END As address, e1.predirabrv As fedirp, COALESCE(e1.prequalabr || '' '','''' ) || e1.name As fename, 
-                             COALESCE(e1.suftypabrv,e1.pretypabrv)  As fetype, e1.sufdirabrv AS fedirs, 
-                               p.name As place, e1.zip,
-                             CASE WHEN e1.tnidf = e2.tnidf OR e1.tnidf = e2.tnidt THEN
-                                ST_StartPoint(ST_GeometryN(ST_Multi(e1.the_geom),1))
-                             ELSE ST_EndPoint(ST_GeometryN(ST_Multi(e1.the_geom),1)) END AS geom ,   
-                                CASE WHEN lower(p.name) = $3 THEN 0 ELSE 1 END  
-                                + levenshtein_ignore_case(p.name, $3) 
-                                + levenshtein_ignore_case(e1.name || COALESCE('' '' || e1.sufqualabr, ''''),$2) +
-                                CASE WHEN e1.fullname = $6 THEN 0 ELSE levenshtein_ignore_case(e1.fullname, $6) END +
-                                + levenshtein_ignore_case(e2.name || COALESCE('' '' || e2.sufqualabr, ''''),$4)
-                                AS a_rating  
-                    FROM e1 
-                            INNER JOIN e2 ON (
-                                    ST_Intersects(e1.the_geom, e2.the_geom)  ) 
-                             INNER JOIN (SELECT * FROM faces WHERE statefp = $1) As fa1 ON (e1.tfid = fa1.tfid  )
-                          LEFT JOIN place AS p ON (fa1.placefp = p.placefp AND p.statefp = $1 )
-                       ORDER BY e1.tlid, e1.side, a_rating LIMIT $9*4 )
-    SELECT address, fedirp , fename, fetype,fedirs,place, zip , geom, a_rating 
-        FROM segs ORDER BY a_rating LIMIT  $9';
-
-    IF var_debug THEN
-        RAISE NOTICE 'sql: %', replace(replace(replace(
-        	replace(replace(replace(
-                replace(
-                    replace(
-                        replace(var_sql, '$1', quote_nullable(in_statefp)), 
-                              '$2', quote_nullable(lower(var_na_road.streetName) ) ),
-                      '$3', quote_nullable(lower(in_city)) ),
-                      '$4', quote_nullable(lower(var_na_inter1.streetName) ) ),
-                      '$5', quote_nullable(var_zip) ),
-                      '$6', quote_nullable(lower(var_na_road.streetName || ' ' || COALESCE(var_na_road.streetTypeAbbrev,'') )) ) ,
-                      '$7', quote_nullable(trim(lower(var_na_inter1.streetName || ' ' || COALESCE(var_na_inter1.streetTypeAbbrev,'') )) ) ) ,
-		 '$8', quote_nullable(in_state ) ),  '$9', num_results::text );
-    END IF;
-
-    FOR results IN EXECUTE var_sql USING in_statefp, trim(lower(var_na_road.streetName)), lower(in_city), lower(var_na_inter1.streetName), var_zip,
-		trim(lower(var_na_road.streetName || ' ' || COALESCE(var_na_road.streetTypeAbbrev,''))),
-		trim(lower(var_na_inter1.streetName || ' ' || COALESCE(var_na_inter1.streetTypeAbbrev,''))), in_state, num_results LOOP
-		ADDY.preDirAbbrev     := results.fedirp;
-        ADDY.streetName       := results.fename;
-        ADDY.streetTypeAbbrev := results.fetype;
-        ADDY.postDirAbbrev    := results.fedirs;
-        ADDY.location         := results.place;
-        ADDY.stateAbbrev      := in_state;
-        ADDY.zip              := results.zip;
-        ADDY.parsed := TRUE;
-        ADDY.address := results.address;
-        
-        GEOMOUT := results.geom;
-        RATING := results.a_rating;
-		RETURN NEXT; 
-	END LOOP;
-	RETURN;
-END;
-$$
-  LANGUAGE plpgsql IMMUTABLE
-  COST 1000
-  ROWS 10;
-ALTER FUNCTION geocode_intersection(IN text, IN text, IN text, IN text, IN text, IN integer) SET join_collapse_limit='2';
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/geocode_location.sql b/extras/tiger_geocoder/tiger_2011/geocode/geocode_location.sql
deleted file mode 100644
index 1f6eb74..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/geocode_location.sql
+++ /dev/null
@@ -1,99 +0,0 @@
---$Id: geocode_location.sql 9324 2012-02-27 22:08:12Z pramsey $
-CREATE OR REPLACE FUNCTION geocode_location(
-    parsed NORM_ADDY,
-    restrict_geom geometry DEFAULT null,
-    OUT ADDY NORM_ADDY,
-    OUT GEOMOUT GEOMETRY,
-    OUT RATING INTEGER
-) RETURNS SETOF RECORD
-AS $_$
-DECLARE
-  result RECORD;
-  in_statefp VARCHAR;
-  stmt VARCHAR;
-  var_debug boolean := false;
-BEGIN
-
-  in_statefp := statefp FROM state WHERE state.stusps = parsed.stateAbbrev;
-
-  IF var_debug THEN
-    RAISE NOTICE 'geocode_location starting: %', clock_timestamp();
-  END IF;
-  FOR result IN
-    SELECT
-        coalesce(zip.city)::varchar as place,
-        zip.zip as zip,
-        ST_Centroid(zcta5.the_geom) as address_geom,
-        stusps as state,
-        100::integer + coalesce(levenshtein_ignore_case(coalesce(zip.city), parsed.location),0) as in_rating
-    FROM
-      zip_lookup_base zip
-      JOIN zcta5 ON (zip.zip = zcta5.zcta5ce AND zip.statefp = zcta5.statefp)
-      JOIN state ON (state.statefp=zip.statefp)
-    WHERE
-      parsed.zip = zip.zip OR
-      (soundex(zip.city) = soundex(parsed.location) and zip.statefp = in_statefp)
-    ORDER BY levenshtein_ignore_case(coalesce(zip.city), parsed.location), zip.zip
-  LOOP
-    ADDY.location := result.place;
-    ADDY.stateAbbrev := result.state;
-    ADDY.zip := result.zip;
-    ADDY.parsed := true;
-    GEOMOUT := result.address_geom;
-    RATING := result.in_rating;
-
-    RETURN NEXT;
-
-    IF RATING = 100 THEN
-      RETURN;
-    END IF;
-
-  END LOOP;
-
-  IF parsed.location IS NULL THEN
-    parsed.location := city FROM zip_lookup_base WHERE zip_lookup_base.zip = parsed.zip ORDER BY zip_lookup_base.zip LIMIT 1;
-    in_statefp := statefp FROM zip_lookup_base WHERE zip_lookup_base.zip = parsed.zip ORDER BY zip_lookup_base.zip LIMIT 1;
-  END IF;
-
-  stmt := 'SELECT '
-       || ' pl.name as place, '
-       || ' state.stusps as stateAbbrev, '
-       || ' ST_Centroid(pl.the_geom) as address_geom, '
-       || ' 100::integer + levenshtein_ignore_case(coalesce(pl.name), ' || quote_literal(coalesce(parsed.location,'')) || ') as in_rating '
-       || ' FROM (SELECT * FROM place WHERE statefp = ' ||  quote_literal(coalesce(in_statefp,'')) || ' ' || COALESCE(' AND ST_Intersects(' || quote_literal(restrict_geom::text) || '::geometry, the_geom)', '') || ') AS pl '
-       || ' INNER JOIN state ON(pl.statefp = state.statefp)'
-       || ' WHERE soundex(pl.name) = soundex(' || quote_literal(coalesce(parsed.location,'')) || ') and pl.statefp = ' || quote_literal(COALESCE(in_statefp,''))
-       || ' ORDER BY levenshtein_ignore_case(coalesce(pl.name), ' || quote_literal(coalesce(parsed.location,'')) || ');'
-       ;
-
-  IF var_debug THEN
-    RAISE NOTICE 'geocode_location stmt: %', stmt;
-  END IF;     
-  FOR result IN EXECUTE stmt
-  LOOP
-
-    ADDY.location := result.place;
-    ADDY.stateAbbrev := result.stateAbbrev;
-    ADDY.zip = parsed.zip;
-    ADDY.parsed := true;
-    GEOMOUT := result.address_geom;
-    RATING := result.in_rating;
-
-    RETURN NEXT;
-
-    IF RATING = 100 THEN
-      RETURN;
-      IF var_debug THEN
-        RAISE NOTICE 'geocode_location ending hit 100 rating result: %', clock_timestamp();
-      END IF;
-    END IF;
-  END LOOP;
-  
-  IF var_debug THEN
-    RAISE NOTICE 'geocode_location ending: %', clock_timestamp();
-  END IF;
-
-  RETURN;
-
-END;
-$_$ LANGUAGE plpgsql STABLE COST 100;
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/includes_address.sql b/extras/tiger_geocoder/tiger_2011/geocode/includes_address.sql
deleted file mode 100644
index f85ae81..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/includes_address.sql
+++ /dev/null
@@ -1,94 +0,0 @@
---$Id: includes_address.sql 9324 2012-02-27 22:08:12Z pramsey $
--- This function requires the addresses to be grouped, such that the second and
--- third arguments are from one side of the street, and the fourth and fifth
--- from the other.
-CREATE OR REPLACE FUNCTION includes_address(
-    given_address INTEGER,
-    addr1 INTEGER,
-    addr2 INTEGER,
-    addr3 INTEGER,
-    addr4 INTEGER
-) RETURNS BOOLEAN
-AS $_$
-DECLARE
-  lmaxaddr INTEGER := -1;
-  rmaxaddr INTEGER := -1;
-  lminaddr INTEGER := -1;
-  rminaddr INTEGER := -1;
-  maxaddr INTEGER := -1;
-  minaddr INTEGER := -1;
-  verbose BOOLEAN := false;
-BEGIN
-  IF addr1 IS NOT NULL THEN
-    maxaddr := addr1;
-    minaddr := addr1;
-    lmaxaddr := addr1;
-    lminaddr := addr1;
-  END IF;
-
-  IF addr2 IS NOT NULL THEN
-    IF addr2 < minaddr OR minaddr = -1 THEN
-      minaddr := addr2;
-    END IF;
-    IF addr2 > maxaddr OR maxaddr = -1 THEN
-      maxaddr := addr2;
-    END IF;
-    IF addr2 > lmaxaddr OR lmaxaddr = -1 THEN
-      lmaxaddr := addr2;
-    END IF;
-    IF addr2 < lminaddr OR lminaddr = -1 THEN
-      lminaddr := addr2;
-    END IF;
-  END IF;
-
-  IF addr3 IS NOT NULL THEN
-    IF addr3 < minaddr OR minaddr = -1 THEN
-      minaddr := addr3;
-    END IF;
-    IF addr3 > maxaddr OR maxaddr = -1 THEN
-      maxaddr := addr3;
-    END IF;
-    rmaxaddr := addr3;
-    rminaddr := addr3;
-  END IF;
-
-  IF addr4 IS NOT NULL THEN
-    IF addr4 < minaddr OR minaddr = -1 THEN
-      minaddr := addr4;
-    END IF;
-    IF addr4 > maxaddr OR maxaddr = -1 THEN
-      maxaddr := addr4;
-    END IF;
-    IF addr4 > rmaxaddr OR rmaxaddr = -1 THEN
-      rmaxaddr := addr4;
-    END IF;
-    IF addr4 < rminaddr OR rminaddr = -1 THEN
-      rminaddr := addr4;
-    END IF;
-  END IF;
-
-  IF minaddr = -1 OR maxaddr = -1 THEN
-    -- No addresses were non-null, return FALSE (arbitrary)
-    RETURN FALSE;
-  ELSIF given_address >= minaddr AND given_address <= maxaddr THEN
-    -- The address is within the given range
-    IF given_address >= lminaddr AND given_address <= lmaxaddr THEN
-      -- This checks to see if the address is on this side of the
-      -- road, ie if the address is even, the street range must be even
-      IF (given_address % 2) = (lminaddr % 2)
-          OR (given_address % 2) = (lmaxaddr % 2) THEN
-        RETURN TRUE;
-      END IF;
-    END IF;
-    IF given_address >= rminaddr AND given_address <= rmaxaddr THEN
-      -- See above
-      IF (given_address % 2) = (rminaddr % 2)
-          OR (given_address % 2) = (rmaxaddr % 2) THEN
-        RETURN TRUE;
-      END IF;
-    END IF;
-  END IF;
-  -- The address is not within the range
-  RETURN FALSE;
-END;
-$_$ LANGUAGE plpgsql IMMUTABLE COST 100;
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/interpolate_from_address.sql b/extras/tiger_geocoder/tiger_2011/geocode/interpolate_from_address.sql
deleted file mode 100644
index 34896dd..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/interpolate_from_address.sql
+++ /dev/null
@@ -1,99 +0,0 @@
---$Id: interpolate_from_address.sql 11334 2013-05-01 13:48:41Z robe $
--- interpolate_from_address(local_address, from_address_l, to_address_l, from_address_r, to_address_r, local_road)
--- This function returns a point along the given geometry (must be linestring)
--- corresponding to the given address.  If the given address is not within
--- the address range of the road, null is returned.
--- This function requires that the address be grouped, such that the second and
--- third arguments are from one side of the street, while the fourth and
--- fifth are from the other.
--- in_side Side of street -- either 'L', 'R' or if blank ignores side of road
--- in_offset_m -- number of meters offset to the side
-CREATE OR REPLACE FUNCTION interpolate_from_address(given_address INTEGER, in_addr1 VARCHAR, in_addr2 VARCHAR, in_road GEOMETRY, 
-	in_side VARCHAR DEFAULT '',in_offset_m float DEFAULT 10) RETURNS GEOMETRY
-AS $_$
-DECLARE
-  addrwidth INTEGER;
-  part DOUBLE PRECISION;
-  road GEOMETRY;
-  result GEOMETRY;
-  var_addr1 INTEGER; var_addr2 INTEGER;
-  center_pt GEOMETRY; cl_pt GEOMETRY;
-  npos integer;
-  delx float; dely float;  x0 float; y0 float; x1 float; y1 float; az float;
-  var_dist float; dir integer;
-BEGIN
-    IF in_road IS NULL THEN
-        RETURN NULL;
-    END IF;
-    
-	var_addr1 := to_number(in_addr1, '999999');
-	var_addr2 := to_number(in_addr2, '999999');
-
-    IF geometrytype(in_road) = 'LINESTRING' THEN
-      road := ST_Transform(in_road, utmzone(ST_StartPoint(in_road)) );
-    ELSIF geometrytype(in_road) = 'MULTILINESTRING' THEN
-    	road := ST_GeometryN(in_road,1);
-    	road := ST_Transform(road, utmzone(ST_StartPoint(road)) );
-    ELSE
-      RETURN NULL;
-    END IF;
-
-    addrwidth := greatest(var_addr1,var_addr2) - least(var_addr1,var_addr2);
-    IF addrwidth = 0 or addrwidth IS NULL THEN
-        addrwidth = 1;
-    END IF;
-    part := (given_address - least(var_addr1,var_addr2)) / trunc(addrwidth, 1);
-
-    IF var_addr1 > var_addr2 THEN
-        part := 1 - part;
-    END IF;
-
-    IF part < 0 OR part > 1 OR part IS NULL THEN
-        part := 0.5;
-    END IF;
-
-    center_pt = ST_Line_Interpolate_Point(road, part);
-    IF in_side > '' AND in_offset_m > 0 THEN
-    /** Compute point the point to the in_side of the geometry **/
-    /**Take into consideration non-straight so we consider azimuth 
-    	of the 2 points that straddle the center location**/ 
-    	IF part = 0 THEN
-    		az := ST_Azimuth (ST_StartPoint(road), ST_PointN(road,2));
-    	ELSIF part = 1 THEN
-    		az := ST_Azimuth (ST_PointN(road,ST_NPoints(road) - 1), ST_EndPoint(road));
-    	ELSE 
-    		/** Find the largest nth point position that is before the center point
-    			This will be the start of our azimuth calc **/
-    		SELECT i INTO npos
-    			FROM generate_series(1,ST_NPoints(road)) As i 
-    					WHERE part > ST_Line_Locate_Point(road,ST_PointN(road,i)) 
-    					ORDER BY i DESC;
-    		IF npos < ST_NPoints(road) THEN				
-    			az := ST_Azimuth (ST_PointN(road,npos), ST_PointN(road, npos + 1));
-    		ELSE
-    			az := ST_Azimuth (center_pt, ST_PointN(road, npos));
-    		END IF;
-    	END IF;
-    	
-        dir := CASE WHEN az < pi() THEN -1 ELSE 1 END;
-        --dir := 1;
-        var_dist := in_offset_m*CASE WHEN in_side = 'L' THEN -1 ELSE 1 END;
-        delx := ABS(COS(az)) * var_dist * dir;
-        dely := ABS(SIN(az)) * var_dist * dir;
-        IF az > pi()/2 AND az < pi() OR az > 3 * pi()/2 THEN
-			result := ST_Translate(center_pt, delx, dely) ;
-		ELSE
-			result := ST_Translate(center_pt, -delx, dely);
-		END IF;
-    ELSE
-    	result := center_pt;
-    END IF;
-    result :=  ST_Transform(result, ST_SRID(in_road));
-    --RAISE NOTICE 'start: %, center: %, new: %, side: %, offset: %, az: %', ST_AsText(ST_Transform(ST_StartPoint(road),ST_SRID(in_road))), ST_AsText(ST_Transform(center_pt,ST_SRID(in_road))),ST_AsText(result), in_side, in_offset_m, az;
-    RETURN result;
-END;
-$_$ LANGUAGE plpgsql IMMUTABLE COST 10;
--- needed to ban stupid warning about how we are using deprecated functions 
--- yada yada yada need this to work in 2.0 too bah
-ALTER FUNCTION interpolate_from_address(integer, character varying, character varying, geometry, character varying, double precision)
-  SET client_min_messages='ERROR';
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/other_helper_functions.sql b/extras/tiger_geocoder/tiger_2011/geocode/other_helper_functions.sql
deleted file mode 100644
index 128ba92..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/other_helper_functions.sql
+++ /dev/null
@@ -1,252 +0,0 @@
---$Id: other_helper_functions.sql 9324 2012-02-27 22:08:12Z pramsey $
- /*** 
- * 
- * Copyright (C) 2011 Regina Obe and Leo Hsu (Paragon Corporation)
- **/
--- Note we are wrapping this in a function so we can make it immutable and thus useable in an index
--- It also allows us to shorten and possibly better cache the repetitive pattern in the code 
--- greatest(to_number(b.fromhn,''99999999''),to_number(b.tohn,''99999999'')) 
--- and least(to_number(b.fromhn,''99999999''),to_number(b.tohn,''99999999''))
-CREATE OR REPLACE FUNCTION least_hn(fromhn varchar, tohn varchar)
-  RETURNS integer AS
-$$ SELECT least(to_number( CASE WHEN trim($1) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'9999999'),to_number(CASE WHEN trim($2) ~ '^[0-9]+$' THEN $2 ELSE '0' END,'9999999') )::integer;  $$
-  LANGUAGE sql IMMUTABLE
-  COST 200;
-  
--- Note we are wrapping this in a function so we can make it immutable (for some reason least and greatest aren't considered immutable)
--- and thu useable in an index or cacheable for multiple calls
-CREATE OR REPLACE FUNCTION greatest_hn(fromhn varchar, tohn varchar)
-  RETURNS integer AS
-$$ SELECT greatest(to_number( CASE WHEN trim($1) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'99999999'),to_number(CASE WHEN trim($2) ~ '^[0-9]+$' THEN $2 ELSE '0' END,'99999999') )::integer;  $$
-  LANGUAGE sql IMMUTABLE
-  COST 200;
-  
--- Returns an absolute difference between two zips
--- This is generally more efficient than doing levenshtein
--- Since when people get the wrong zip, its usually off by one or 2 numeric distance
--- We only consider the first 5 digits
-CREATE OR REPLACE FUNCTION diff_zip(zip1 varchar, zip2 varchar)
-  RETURNS integer AS
-$$ SELECT abs(to_number( CASE WHEN trim(substring($1,1,5)) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'99999')::integer - to_number( CASE WHEN trim(substring($2,1,5)) ~ '^[0-9]+$' THEN $2 ELSE '0' END,'99999')::integer )::integer;  $$
-  LANGUAGE sql IMMUTABLE STRICT
-  COST 200;
-  
--- function return  true or false if 2 numeric streets are equal such as 15th St, 23rd st
--- it compares just the numeric part of the street for equality
--- PURPOSE: handle bad formats such as 23th St so 23th St = 23rd St
--- as described in: http://trac.osgeo.org/postgis/ticket/1068
--- This will always return false if one of the streets is not a numeric street
--- By numeric it must start with numbers (allow fractions such as 1/2 and spaces such as 12 1/2th) and be less than 10 characters
-CREATE OR REPLACE FUNCTION numeric_streets_equal(input_street varchar, output_street varchar)
-    RETURNS boolean AS
-$$
-    SELECT COALESCE(length($1) < 10 AND length($2) < 10 
-            AND $1 ~ E'^[0-9\/\s]+' AND $2 ~ E'^[0-9\/\s]+' 
-            AND  trim(substring($1, E'^[0-9\/\s]+')) = trim(substring($2, E'^[0-9\/\s]+')), false); 
-$$
-LANGUAGE sql IMMUTABLE
-COST 5;
-
-
--- Generate script to drop all non-primary unique indexes on tiger and tiger_data tables
-CREATE OR REPLACE FUNCTION drop_indexes_generate_script(tiger_data_schema text DEFAULT 'tiger_data')
-RETURNS text AS
-$$
-SELECT array_to_string(ARRAY(SELECT 'DROP INDEX ' || schemaname || '.' || indexname || ';' 
-FROM pg_catalog.pg_indexes  where schemaname IN('tiger',$1)  AND indexname NOT LIKE 'uidx%' AND indexname NOT LIKE 'pk_%' AND indexname NOT LIKE '%key'), E'\n');
-$$
-LANGUAGE sql STABLE;
--- Generate script to create missing indexes in tiger tables. 
--- This will generate sql you can run to index commonly used join columns in geocoder for tiger and tiger_data schemas --
-CREATE OR REPLACE FUNCTION missing_indexes_generate_script()
-RETURNS text AS
-$$
-SELECT array_to_string(ARRAY(
--- create unique index on faces for tfid seems to perform better --
-SELECT 'CREATE UNIQUE INDEX uidx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(' || c.column_name || ');' As index
-FROM (SELECT table_name, table_schema  FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('tfid') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexname LIKE 'uidx%' || c.column_name || '%' ) 
-WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data') AND c.table_name LIKE '%faces'
-UNION ALL
--- basic btree regular indexes
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(' || c.column_name || ');' As index
-FROM (SELECT table_name, table_schema  FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('countyfp', 'tlid', 'tfidl', 'tfidr', 'tfid', 'zip', 'placefp', 'cousubfp') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%' || c.column_name || '%' ) 
-WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data')  AND (NOT c.table_name LIKE '%faces')
--- Gist spatial indexes --
-UNION ALL
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || '_gist ON ' || c.table_schema || '.' || c.table_name || ' USING gist(' || c.column_name || ');' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('the_geom', 'geom') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%' || c.column_name || '%') 
-WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data')
--- Soundex indexes --
-UNION ALL
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_snd_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(soundex(' || c.column_name || '));' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('name', 'place', 'city') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%soundex(%' || c.column_name || '%' AND indexdef LIKE '%_snd_' || c.column_name || '%' ) 
-WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data') 
-    AND (c.table_name LIKE '%county%' OR c.table_name LIKE '%featnames'
-    OR c.table_name  LIKE '%place' or c.table_name LIKE '%zip%'  or c.table_name LIKE '%cousub') 
--- Lower indexes --
-UNION ALL
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_lower_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(lower(' || c.column_name || '));' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE') As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('name', 'place', 'city') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%btree%(%lower(%' || c.column_name || '%') 
-WHERE i.tablename IS NULL AND c.table_schema IN('tiger','tiger_data') 
-    AND (c.table_name LIKE '%county%' OR c.table_name LIKE '%featnames' OR c.table_name  LIKE '%place' or c.table_name LIKE '%zip%' or c.table_name LIKE '%cousub') 
--- Least address index btree least_hn(fromhn, tohn)
-UNION ALL
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_least_address' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(least_hn(fromhn, tohn));' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%addr' AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('fromhn') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%least_hn(%' || c.column_name || '%') 
-WHERE i.tablename IS NULL
--- var_ops lower --
-UNION ALL
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_l' || c.column_name || '_var_ops' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(lower(' || c.column_name || ') varchar_pattern_ops);' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE' AND (table_name LIKE '%featnames' or table_name LIKE '%place' or table_name LIKE '%zip_lookup_base' or table_name LIKE '%zip_state_loc') AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('name', 'city', 'place', 'fullname') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%btree%(%lower%' || c.column_name || ')%varchar_pattern_ops%') 
-WHERE i.tablename IS NULL
--- var_ops mtfcc --
-/** UNION ALL
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || '_var_ops' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(' || c.column_name || ' varchar_pattern_ops);' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE' AND (table_name LIKE '%featnames' or table_name LIKE '%edges') AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('mtfcc') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%btree%(' || c.column_name || '%varchar_pattern_ops%') 
-WHERE i.tablename IS NULL **/
--- zipl zipr on edges --
-UNION ALL
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || ' ON ' || c.table_schema || '.' || c.table_name || ' USING btree(' || c.column_name || ' );' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%edges' AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('zipl', 'zipr') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%btree%(' || c.column_name || '%)%') 
-WHERE i.tablename IS NULL
-
--- unique index on tlid state county --
-/*UNION ALL
-SELECT 'CREATE UNIQUE INDEX uidx_' || t.table_schema || '_' || t.table_name || '_tlid_statefp_countyfp ON ' || t.table_schema || '.' || t.table_name || ' USING btree(tlid,statefp,countyfp);' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%edges' AND table_schema IN('tiger','tiger_data')) As t  
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = t.table_name AND i.schemaname = t.table_schema 
-				AND  indexdef LIKE '%btree%(%tlid,%statefp%countyfp%)%') 
-WHERE i.tablename IS NULL*/
---full text indexes on name field--
-/**UNION ALL
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_fullname_ft_gist' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING gist(to_tsvector(''english'',fullname))' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%featnames' AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('fullname') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%to_tsvector(%' || c.column_name || '%') 
-WHERE i.tablename IS NULL **/
-
--- trigram index --
-/**UNION ALL
-SELECT 'CREATE INDEX idx_' || c.table_schema || '_' || c.table_name || '_' || c.column_name || '_trgm_gist' || ' ON ' || c.table_schema || '.' || c.table_name || ' USING gist(' || c.column_name || ' gist_trgm_ops);' As index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE '%featnames' AND table_schema IN('tiger','tiger_data')) As t  INNER JOIN
-	(SELECT * FROM information_schema.columns WHERE column_name IN('fullname', 'name') ) AS c  
-		ON (t.table_name = c.table_name AND t.table_schema = c.table_schema)
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = c.table_name AND i.schemaname = c.table_schema 
-				AND  indexdef LIKE '%gist%(' || c.column_name || '%gist_trgm_ops%') 
-WHERE i.tablename IS NULL **/ 
-ORDER BY 1), E'\r');
-$$
-LANGUAGE sql VOLATILE;
-
-
-CREATE OR REPLACE FUNCTION install_missing_indexes() RETURNS boolean
-AS
-$$
-DECLARE var_sql text = missing_indexes_generate_script();
-BEGIN
-	EXECUTE(var_sql);
-	RETURN true;
-END
-$$
-language plpgsql;
-
-
-CREATE OR REPLACE FUNCTION drop_dupe_featnames_generate_script() RETURNS text 
-AS
-$$
-
-SELECT array_to_string(ARRAY(SELECT 'CREATE TEMPORARY TABLE dup AS
-SELECT min(f.gid) As min_gid, f.tlid, lower(f.fullname) As fname
-	FROM ONLY ' || t.table_schema || '.' || t.table_name || ' As f
-	GROUP BY f.tlid, lower(f.fullname) 
-	HAVING count(*) > 1;
-	
-DELETE FROM ' || t.table_schema || '.' || t.table_name || ' AS feat
-WHERE EXISTS (SELECT tlid FROM dup WHERE feat.tlid = dup.tlid AND lower(feat.fullname) = dup.fname
-		AND feat.gid > dup.min_gid);
-DROP TABLE dup;
-CREATE INDEX idx_' || t.table_schema || '_' || t.table_name || '_tlid ' || ' ON ' || t.table_schema || '.' || t.table_name || ' USING btree(tlid); 
-' As drop_sql_create_index
-FROM (SELECT table_name, table_schema FROM 
-	information_schema.tables WHERE table_type = 'BASE TABLE' AND (table_name LIKE '%featnames' ) AND table_schema IN('tiger','tiger_data')) As t 
-		LEFT JOIN pg_catalog.pg_indexes i ON 
-			(i.tablename = t.table_name AND i.schemaname = t.table_schema 
-				AND  indexdef LIKE '%btree%(%tlid%') 
-WHERE i.tablename IS NULL) ,E'\r');
-
-$$
-LANGUAGE sql VOLATILE;
-
---DROP FUNCTION IF EXISTS zip_range(text,integer,integer);
--- Helper function that useful for catch slight mistakes in zip position given a 5 digit zip code
--- will return a range of zip codes that are between zip - num_before and zip - num_after
--- e.g. usage -> zip_range('02109', -1,+1) -> {'02108', '02109', '02110'}
-CREATE OR REPLACE FUNCTION zip_range(zip text, range_start integer, range_end integer) RETURNS varchar[] AS
-$$
-   SELECT ARRAY(
-        SELECT lpad((to_number( CASE WHEN trim(substring($1,1,5)) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'99999')::integer + i)::text, 5, '0')::varchar
-        FROM generate_series($2, $3) As i );
-$$
-LANGUAGE sql IMMUTABLE STRICT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/rate_attributes.sql b/extras/tiger_geocoder/tiger_2011/geocode/rate_attributes.sql
deleted file mode 100644
index e9210d2..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/rate_attributes.sql
+++ /dev/null
@@ -1,80 +0,0 @@
---$Id: rate_attributes.sql 9324 2012-02-27 22:08:12Z pramsey $
--- rate_attributes(dirpA, dirpB, streetNameA, streetNameB, streetTypeA,
--- streetTypeB, dirsA, dirsB, locationA, locationB)
--- Rates the street based on the given attributes.  The locations must be
--- non-null.  The other eight values are handled by the other rate_attributes
--- function, so it's requirements must also be met.
--- changed: 2010-10-18 Regina Obe - all references to verbose to var_verbose since causes compile errors in 9.0
--- changed: 2011-06-25 revise to use real named args and fix direction rating typo
-CREATE OR REPLACE FUNCTION rate_attributes(dirpA VARCHAR, dirpB VARCHAR, streetNameA VARCHAR, streetNameB VARCHAR,
-    streetTypeA VARCHAR, streetTypeB VARCHAR, dirsA VARCHAR, dirsB VARCHAR,  locationA VARCHAR, locationB VARCHAR, prequalabr VARCHAR) RETURNS INTEGER
-AS $_$
-DECLARE
---$Id: rate_attributes.sql 9324 2012-02-27 22:08:12Z pramsey $
-  result INTEGER := 0;
-  locationWeight INTEGER := 14;
-  var_verbose BOOLEAN := FALSE;
-BEGIN
-  IF locationA IS NOT NULL AND locationB IS NOT NULL THEN
-    result := levenshtein_ignore_case(locationA, locationB);
-  ELSE
-    IF var_verbose THEN
-      RAISE NOTICE 'rate_attributes() - Location names cannot be null!';
-    END IF;
-    RETURN NULL;
-  END IF;
-  result := result + rate_attributes($1, $2, streetNameA, streetNameB, $5, $6, $7, $8,prequalabr);
-  RETURN result;
-END;
-$_$ LANGUAGE plpgsql IMMUTABLE;
-
--- rate_attributes(dirpA, dirpB, streetNameA, streetNameB, streetTypeA,
--- streetTypeB, dirsA, dirsB)
--- Rates the street based on the given attributes.  Only streetNames are
--- required.  If any others are null (either A or B) they are treated as
--- empty strings.
-CREATE OR REPLACE FUNCTION rate_attributes(dirpA VARCHAR, dirpB VARCHAR, streetNameA VARCHAR, streetNameB VARCHAR,
-    streetTypeA VARCHAR, streetTypeB VARCHAR, dirsA VARCHAR, dirsB VARCHAR, prequalabr VARCHAR) RETURNS INTEGER
-AS $_$
-DECLARE
-  result INTEGER := 0;
-  directionWeight INTEGER := 2;
-  nameWeight INTEGER := 10;
-  typeWeight INTEGER := 5;
-  var_verbose BOOLEAN := false;
-BEGIN
-  result := result + levenshtein_ignore_case(cull_null($1), cull_null($2)) * directionWeight;
-  IF var_verbose THEN
-    RAISE NOTICE 'streetNameA: %, streetNameB: %', streetNameA, streetNameB;
-  END IF;
-  IF streetNameA IS NOT NULL AND streetNameB IS NOT NULL THEN
-    -- We want to treat numeric streets that have numerics as equal 
-    -- and not penalize if they are spelled different e.g. have ND instead of TH
-    IF NOT numeric_streets_equal(streetNameA, streetNameB) THEN
-        IF prequalabr IS NOT NULL THEN
-            -- If the reference address (streetNameB) has a prequalabr streetNameA (prequalabr) - note: streetNameB usually comes thru without prequalabr
-            -- and the input street (streetNameA) is lacking the prequal -- only penalize a little
-            result := (result + levenshtein_ignore_case( trim( trim( lower(streetNameA),lower(prequalabr) ) ), trim( trim( lower(streetNameB),lower(prequalabr) ) ) )*nameWeight*0.75 + levenshtein_ignore_case(trim(streetNameA),prequalabr || ' ' ||  streetNameB) * nameWeight*0.25)::integer;
-        ELSE
-            result := result + levenshtein_ignore_case(streetNameA, streetNameB) * nameWeight;
-        END IF;
-    ELSE 
-    -- Penalize for numeric streets if one is completely numeric and the other is not
-    -- This is to minimize on highways like 3A being matched with numbered streets since streets are usually number followed by 2 characters e.g nth ave and highways are just number with optional letter for name
-        IF  (streetNameB ~ E'[a-zA-Z]{2,10}' AND NOT (streetNameA ~ E'[a-zA-Z]{2,10}') ) OR (streetNameA ~ E'[a-zA-Z]{2,10}' AND NOT (streetNameB ~ E'[a-zA-Z]{2,10}') ) THEN
-            result := result + levenshtein_ignore_case(streetNameA, streetNameB) * nameWeight;
-        END IF;
-    END IF;
-  ELSE
-    IF var_verbose THEN
-      RAISE NOTICE 'rate_attributes() - Street names cannot be null!';
-    END IF;
-    RETURN NULL;
-  END IF;
-  result := result + levenshtein_ignore_case(cull_null(streetTypeA), cull_null(streetTypeB)) *
-      typeWeight;
-  result := result + levenshtein_ignore_case(cull_null(dirsA), cull_null(dirsB)) *
-      directionWeight;
-  return result;
-END;
-$_$ LANGUAGE plpgsql IMMUTABLE;
diff --git a/extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql b/extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql
deleted file mode 100644
index f4a821f..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode/reverse_geocode.sql
+++ /dev/null
@@ -1,246 +0,0 @@
---$Id: reverse_geocode.sql 13042 2014-10-07 14:11:46Z robe $
- /*** 
- * 
- * Copyright (C) 2011-2014 Regina Obe and Leo Hsu (Paragon Corporation)
- **/
--- This function given a point try to determine the approximate street address (norm_addy form)
--- and array of cross streets, as well as interpolated points along the streets
--- Use case example an address at the intersection of 3 streets: SELECT pprint_addy(r.addy[1]) As st1, pprint_addy(r.addy[2]) As st2, pprint_addy(r.addy[3]) As st3, array_to_string(r.street, ',') FROM reverse_geocode(ST_GeomFromText('POINT(-71.057811 42.358274)',4269)) As r;
---set search_path=tiger,public;
-
-CREATE OR REPLACE FUNCTION reverse_geocode(IN pt geometry, IN include_strnum_range boolean DEFAULT false, OUT intpt geometry[], OUT addy norm_addy[], OUT street character varying[])
-  RETURNS record AS
-$BODY$
-DECLARE
-  var_redge RECORD;
-  var_state text := NULL;
-  var_stusps text := NULL;
-  var_countyfp text := NULL;
-  var_addy NORM_ADDY;
-  var_addy_alt NORM_ADDY;
-  var_nstrnum numeric(10);
-  var_primary_line geometry := NULL;
-  var_primary_dist numeric(10,2) ;
-  var_pt geometry;
-  var_place varchar;
-  var_county varchar;
-  var_stmt text;
-  var_debug boolean =  get_geocode_setting('debug_reverse_geocode')::boolean;
-  var_rating_highway integer = COALESCE(get_geocode_setting('reverse_geocode_numbered_roads')::integer,0);/**0 no preference, 1 prefer highway number, 2 prefer local name **/
-  var_zip varchar := NULL;
-  var_primary_fullname varchar := '';
-BEGIN
-	--$Id: reverse_geocode.sql 13042 2014-10-07 14:11:46Z robe $
-	IF pt IS NULL THEN
-		RETURN;
-	ELSE
-		IF ST_SRID(pt) = 4269 THEN
-			var_pt := pt;
-		ELSIF ST_SRID(pt) > 0 THEN
-			var_pt := ST_Transform(pt, 4269); 
-		ELSE --If srid is unknown, assume its 4269
-			var_pt := ST_SetSRID(pt, 4269);
-		END IF;
-		var_pt := ST_SnapToGrid(var_pt, 0.00005); /** Get rid of floating point junk that would prevent intersections **/
-	END IF;
-	-- Determine state tables to check 
-	-- this is needed to take advantage of constraint exclusion
-	IF var_debug THEN
-		RAISE NOTICE 'Get matching states start: %', clock_timestamp();
-	END IF;
-	SELECT statefp, stusps INTO var_state, var_stusps FROM state WHERE ST_Intersects(the_geom, var_pt) LIMIT 1;
-	IF var_debug THEN
-		RAISE NOTICE 'Get matching states end: % -  %', var_state, clock_timestamp();
-	END IF;
-	IF var_state IS NULL THEN
-		-- We don't have any data for this state
-		RETURN;
-	END IF;
-	IF var_debug THEN
-		RAISE NOTICE 'Get matching counties start: %', clock_timestamp();
-	END IF;
-	-- locate county
-	var_stmt := 'SELECT countyfp, name  FROM  county WHERE  statefp =  $1 AND ST_Intersects(the_geom, $2) LIMIT 1;';
-	EXECUTE var_stmt INTO var_countyfp, var_county USING var_state, var_pt ;
-
-	--locate zip
-	var_stmt := 'SELECT zcta5ce  FROM zcta5 WHERE statefp = $1 AND ST_Intersects(the_geom, $2)  LIMIT 1;';
-	EXECUTE var_stmt INTO var_zip USING var_state, var_pt;
-	-- locate city
-	IF var_zip > '' THEN
-	      var_addy.zip := var_zip ;
-	END IF;
-	
-	var_stmt := 'SELECT z.name  FROM place As z WHERE  z.statefp =  $1 AND ST_Intersects(the_geom, $2) LIMIT 1;';
-	EXECUTE var_stmt INTO var_place USING var_state, var_pt ;
-	IF var_place > '' THEN
-			var_addy.location := var_place;
-	ELSE
-		var_stmt := 'SELECT z.name  FROM cousub As z WHERE  z.statefp =  $1 AND ST_Intersects(the_geom, $2) LIMIT 1;';
-		EXECUTE var_stmt INTO var_place USING var_state, var_pt ;
-		IF var_place > '' THEN
-			var_addy.location := var_place;
-		-- ELSIF var_zip > '' THEN
-		-- 	SELECT z.city INTO var_place FROM zip_lookup_base As z WHERE  z.statefp =  var_state AND z.county = var_county AND z.zip = var_zip LIMIT 1;
-		-- 	var_addy.location := var_place;
-		END IF;
-	END IF;
-
-	IF var_debug THEN
-		RAISE NOTICE 'Get matching counties end: % - %',var_countyfp,  clock_timestamp();
-	END IF;
-	IF var_countyfp IS NULL THEN
-		-- We don't have any data for this county
-		RETURN;
-	END IF;
-	
-	var_addy.stateAbbrev = var_stusps;
-
-	-- Find the street edges that this point is closest to with tolerance of 0.005 but only consider the edge if the point is contained in the right or left face
-	-- Then order addresses by proximity to road
-	IF var_debug THEN
-		RAISE NOTICE 'Get matching edges start: %', clock_timestamp();
-	END IF;
-
-	var_stmt := '
-	    WITH ref AS (
-	        SELECT ' || quote_literal(var_pt::text) || '::geometry As ref_geom ) , 
-			f AS 
-			( SELECT faces.* FROM faces  CROSS JOIN ref
-			WHERE faces.statefp = ' || quote_literal(var_state) || ' AND faces.countyfp = ' || quote_literal(var_countyfp) || ' 
-				AND ST_Intersects(faces.the_geom, ref_geom)
-				    ),
-			e AS 
-			( SELECT edges.tlid , edges.statefp, edges.the_geom, CASE WHEN edges.tfidr = f.tfid THEN ''R'' WHEN edges.tfidl = f.tfid THEN ''L'' ELSE NULL END::varchar As eside,
-                    ST_ClosestPoint(edges.the_geom,ref_geom) As center_pt, ref_geom
-				FROM edges INNER JOIN f ON (f.statefp = edges.statefp AND (edges.tfidr = f.tfid OR edges.tfidl = f.tfid)) 
-				    CROSS JOIN ref
-			WHERE edges.statefp = ' || quote_literal(var_state) || ' AND edges.countyfp = ' || quote_literal(var_countyfp) || ' 
-				AND ST_DWithin(edges.the_geom, ref.ref_geom, 0.01) AND (edges.mtfcc LIKE ''S%'') --only consider streets and roads
-				  )	,
-			ea AS 
-			(SELECT e.statefp, e.tlid, a.fromhn, a.tohn, e.center_pt, ref_geom, a.zip, a.side, e.the_geom
-				FROM e LEFT JOIN addr As a ON (a.statefp = ' || quote_literal(var_state) || '  AND e.tlid = a.tlid and e.eside = a.side) 
-				)
-		SELECT * 
-		FROM (SELECT DISTINCT ON(tlid,side)  foo.fullname, foo.predirabrv, foo.streetname, foo.streettypeabbrev, foo.zip,  foo.center_pt,
-			  side, to_number(CASE WHEN trim(fromhn) ~ ''^[0-9]+$'' THEN fromhn ELSE NULL END,''99999999'')  As fromhn, to_number(CASE WHEN trim(tohn) ~ ''^[0-9]+$'' THEN tohn ELSE NULL END,''99999999'') As tohn, 
-			  ST_GeometryN(ST_Multi(line),1) As line, dist
-		FROM 
-		  (SELECT e.tlid, e.the_geom As line, n.fullname, COALESCE(n.prequalabr || '' '','''')  || n.name AS streetname, n.predirabrv, COALESCE(suftypabrv, pretypabrv) As streettypeabbrev,
-		      n.sufdirabrv, e.zip, e.side, e.fromhn, e.tohn , e.center_pt,
-		          ST_Distance_Sphere(ST_SetSRID(e.center_pt,4326),ST_SetSRID(ref_geom,4326)) As dist
-				FROM ea AS e 
-					LEFT JOIN (SELECT featnames.* FROM featnames 
-			    WHERE featnames.statefp = ' || quote_literal(var_state) ||'   ) AS n ON (n.statefp =  e.statefp AND n.tlid = e.tlid) 
-				ORDER BY dist LIMIT 50 ) As foo 
-				ORDER BY foo.tlid, foo.side, ';
-				
-	    -- for numbered street/road use var_rating_highway to determine whether to prefer numbered or not (0 no pref, 1 prefer numbered, 2 prefer named)
-		var_stmt := var_stmt || ' CASE $1 WHEN 0 THEN 0  WHEN 1 THEN CASE WHEN foo.fullname ~ ''[0-9]+'' THEN 0 ELSE 1 END ELSE CASE WHEN foo.fullname > '''' AND NOT (foo.fullname ~ ''[0-9]+'') THEN 0 ELSE 1 END END ';
-		var_stmt := var_stmt || ',  foo.fullname ASC NULLS LAST, dist LIMIT 50) As f ORDER BY f.dist, CASE WHEN fullname > '''' THEN 0 ELSE 1 END '; --don't bother penalizing for distance if less than 20 meters
-				
-	IF var_debug = true THEN
-	    RAISE NOTICE 'Statement 1: %', replace(var_stmt, '$1', var_rating_highway::text);
-	END IF;
-
-    FOR var_redge IN EXECUTE var_stmt USING var_rating_highway LOOP
-        IF var_debug THEN
-            RAISE NOTICE 'Start Get matching edges loop: %,%', var_primary_line, clock_timestamp();
-        END IF;
-        IF var_primary_line IS NULL THEN --this is the first time in the loop and our primary guess
-            var_primary_line := var_redge.line;
-            var_primary_dist := var_redge.dist;
-        END IF;
-  
-        IF var_redge.fullname IS NOT NULL AND COALESCE(var_primary_fullname,'') = '' THEN -- this is the first non-blank name we are hitting grab info
-            var_primary_fullname := var_redge.fullname;
-            var_addy.streetname = var_redge.streetname;
-            var_addy.streettypeabbrev := var_redge.streettypeabbrev;
-            var_addy.predirabbrev := var_redge.predirabrv;
-        END IF;
-       
-        IF ST_Intersects(var_redge.line, var_primary_line) THEN
-            var_addy.streetname := var_redge.streetname; 
-            
-            var_addy.streettypeabbrev := var_redge.streettypeabbrev;
-            var_addy.address := var_nstrnum;
-            IF  var_redge.fromhn IS NOT NULL THEN
-                --interpolate the number -- note that if fromhn > tohn we will be subtracting which is what we want
-                var_nstrnum := (var_redge.fromhn + ST_LineLocatePoint(var_redge.line, var_pt)*(var_redge.tohn - var_redge.fromhn))::numeric(10);
-                -- The odd even street number side of street rule
-                IF (var_nstrnum  % 2)  != (var_redge.tohn % 2) THEN
-                    var_nstrnum := CASE WHEN var_nstrnum + 1 NOT BETWEEN var_redge.fromhn AND var_redge.tohn THEN var_nstrnum - 1 ELSE var_nstrnum + 1 END;
-                END IF;
-                var_addy.address := var_nstrnum;
-            END IF;
-            IF var_redge.zip > ''  THEN
-                var_addy.zip := var_redge.zip;
-            ELSE
-                var_addy.zip := var_zip;
-            END IF;
-            -- IF var_redge.location > '' THEN
-            --     var_addy.location := var_redge.location;
-            -- ELSE
-            --     var_addy.location := var_place;
-            -- END IF;  
-            
-            -- This is a cross streets - only add if not the primary adress street
-            IF var_redge.fullname > '' AND var_redge.fullname <> var_primary_fullname THEN
-                street := array_append(street, (CASE WHEN include_strnum_range THEN COALESCE(var_redge.fromhn::varchar, '')::varchar || COALESCE(' - ' || var_redge.tohn::varchar,'')::varchar || ' '::varchar  ELSE '' END::varchar ||  COALESCE(var_redge.fullname::varchar,''))::varchar);
-            END IF;    
-            
-            -- consider this a potential address
-            IF (var_redge.dist < var_primary_dist*1.1 OR var_redge.dist < 20)   THEN
-                 -- We only consider this a possible address if it is really close to our point
-                 intpt := array_append(intpt,var_redge.center_pt); 
-                -- note that ramps don't have names or addresses but they connect at the edge of a range
-                -- so for ramps the address of connecting is still useful
-                IF var_debug THEN
-                    RAISE NOTICE 'Current addresses: %, last added, %, street: %, %', addy, var_addy, var_addy.streetname, clock_timestamp();
-                END IF;
-                 addy := array_append(addy, var_addy);
-
-                -- Use current values streetname for previous value if previous value has no streetname
-				IF var_addy.streetname > '' AND array_upper(addy,1) > 1 AND COALESCE(addy[array_upper(addy,1) - 1].streetname, '') = ''  THEN
-					-- the match is probably an offshoot of some sort
-					-- replace prior entry with streetname of new if prior had no streetname
-					var_addy_alt := addy[array_upper(addy,1)- 1];
-					IF var_debug THEN
-						RAISE NOTICE 'Replacing answer : %, %', addy[array_upper(addy,1) - 1], clock_timestamp();
-					END IF;
-					var_addy_alt.streetname := var_addy.streetname;
-					var_addy_alt.streettypeabbrev := var_addy.streettypeabbrev;
-                    var_addy_alt.predirabbrev := var_addy.predirabbrev;
-					addy[array_upper(addy,1) - 1 ] := var_addy_alt; 
-					IF var_debug THEN
-						RAISE NOTICE 'Replaced with : %, %', var_addy_alt, clock_timestamp();
-					END IF;
-				END IF;
-				
-				IF var_debug THEN
-					RAISE NOTICE 'End Get matching edges loop: %', clock_timestamp();
-					RAISE NOTICE 'Final addresses: %, %', addy, clock_timestamp();
-				END IF;
-
-            END IF;
-        END IF;
-     
-    END LOOP;
- 
-    -- not matching roads or streets, just return basic info
-    IF NOT FOUND THEN
-        addy := array_append(addy,var_addy);
-        IF var_debug THEN
-            RAISE NOTICE 'No address found: adding: % street: %, %', var_addy, var_addy.streetname, clock_timestamp();
-        END IF;
-    END IF;
-    IF var_debug THEN
-        RAISE NOTICE 'current array count : %, %', array_upper(addy,1), clock_timestamp();
-    END IF;
-
-    RETURN;   
-END;
-$BODY$
-  LANGUAGE plpgsql STABLE
-  COST 1000;
diff --git a/extras/tiger_geocoder/tiger_2011/geocode_settings.sql b/extras/tiger_geocoder/tiger_2011/geocode_settings.sql
deleted file mode 100644
index 7e33c91..0000000
--- a/extras/tiger_geocoder/tiger_2011/geocode_settings.sql
+++ /dev/null
@@ -1,58 +0,0 @@
---$Id: geocode_settings.sql 11241 2013-04-02 14:43:52Z robe $
---
--- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
---
--- Copyright (C) 2010, 2011 Regina Obe and Leo Hsu
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
---  
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---
-SELECT tiger.SetSearchPathForInstall('tiger');
-
-CREATE OR REPLACE FUNCTION install_geocode_settings() 
-	RETURNS void AS
-$$
-DECLARE var_temp text;
-BEGIN
-	var_temp := tiger.SetSearchPathForInstall('tiger'); /** set set search path to have tiger in front **/
-	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'geocode_settings')  THEN
-		CREATE TABLE geocode_settings(name text primary key, setting text, unit text, category text, short_desc text);
-		GRANT SELECT ON geocode_settings TO public;
-	END IF;
-	--add missing settings
-	INSERT INTO geocode_settings(name,setting,unit,category,short_desc)
-		SELECT f.*
-		FROM 
-		(VALUES ('debug_geocode_address', 'false', 'boolean','debug', 'outputs debug information in notice log such as queries when geocode_addresss is called if true')
-			, ('debug_geocode_intersection', 'false', 'boolean','debug', 'outputs debug information in notice log such as queries when geocode_intersection is called if true')
-			, ('debug_normalize_address', 'false', 'boolean','debug', 'outputs debug information in notice log such as queries and intermediate expressions when normalize_address is called if true')
-			, ('debug_reverse_geocode', 'false', 'boolean','debug', 'if true, outputs debug information in notice log such as queries and intermediate expressions when reverse_geocode')
-			, ('reverse_geocode_numbered_roads', '0', 'integer','rating', 'For state and county highways, 0 - no preference in name, 1 - prefer the numbered highway name, 2 - prefer local state/county name')
-			, ('use_pagc_address_parser', 'false', 'boolean','normalize', 'If set to true, will try to use the pagc_address normalizer instead of tiger built one')
-		) f(name,setting,unit,category,short_desc)
-		WHERE f.name NOT IN(SELECT name FROM geocode_settings);
-END;
-$$
-language plpgsql;
-
-SELECT install_geocode_settings(); /** create the table if it doesn't exist **/
-
-CREATE OR REPLACE FUNCTION get_geocode_setting(setting_name text)
-RETURNS text AS
-$$
-SELECT setting FROM geocode_settings WHERE name = $1;
-$$
-language sql STABLE;
-
-CREATE OR REPLACE FUNCTION set_geocode_setting(setting_name text, setting_value text)
-RETURNS text AS
-$$
-UPDATE geocode_settings SET setting = $2 WHERE name = $1
-	RETURNING setting;
-$$
-language sql VOLATILE;
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_exact.sql b/extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_exact.sql
deleted file mode 100644
index d60311a..0000000
--- a/extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_exact.sql
+++ /dev/null
@@ -1,62 +0,0 @@
---$Id: location_extract_place_exact.sql 9324 2012-02-27 22:08:12Z pramsey $-
--- location_extract_place_exact(string, stateAbbrev)
--- This function checks the place_lookup table to find a potential match to
--- the location described at the end of the given string.  If an exact match
--- fails, a fuzzy match is performed.  The location as found in the given
--- string is returned.
-CREATE OR REPLACE FUNCTION location_extract_place_exact(
-    fullStreet VARCHAR,
-    stateAbbrev VARCHAR
-) RETURNS VARCHAR
-AS $_$
-DECLARE
-  ws VARCHAR;
-  location VARCHAR;
-  tempInt INTEGER;
-  lstate VARCHAR;
-  rec RECORD;
-BEGIN
---$Id: location_extract_place_exact.sql 9324 2012-02-27 22:08:12Z pramsey $-
-  ws := E'[ ,.\n\f\t]';
-
-  -- Try for an exact match against places
-  IF stateAbbrev IS NOT NULL THEN
-    lstate := statefp FROM state WHERE stusps = stateAbbrev;
-    SELECT INTO tempInt count(*) FROM place
-        WHERE place.statefp = lstate AND fullStreet ILIKE '%' || name || '%'
-        AND texticregexeq(fullStreet, '(?i)' || name || '$');
-  ELSE
-    SELECT INTO tempInt count(*) FROM place
-        WHERE fullStreet ILIKE '%' || name || '%' AND
-        	texticregexeq(fullStreet, '(?i)' || name || '$');
-  END IF;
-
-  IF tempInt > 0 THEN
-    -- Some matches were found.  Look for the last one in the string.
-    IF stateAbbrev IS NOT NULL THEN
-      FOR rec IN SELECT substring(fullStreet, '(?i)('
-          || name || ')$') AS value, name FROM place
-          WHERE place.statefp = lstate AND fullStreet ILIKE '%' || name || '%'
-          AND texticregexeq(fullStreet, '(?i)'
-          || name || '$') ORDER BY length(name) DESC LOOP
-        -- Since the regex is end of string, only the longest (first) result
-        -- is useful.
-        location := rec.value;
-        EXIT;
-      END LOOP;
-    ELSE
-      FOR rec IN SELECT substring(fullStreet, '(?i)('
-          || name || ')$') AS value, name FROM place
-          WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)'
-          || name || '$') ORDER BY length(name) DESC LOOP
-        -- Since the regex is end of string, only the longest (first) result
-        -- is useful.
-        location := rec.value;
-        EXIT;
-      END LOOP;
-    END IF;
-  END IF;
-
-  RETURN location;
-END;
-$_$ LANGUAGE plpgsql STABLE COST 100;
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_fuzzy.sql b/extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_fuzzy.sql
deleted file mode 100644
index 12152df..0000000
--- a/extras/tiger_geocoder/tiger_2011/normalize/location_extract_place_fuzzy.sql
+++ /dev/null
@@ -1,90 +0,0 @@
---$Id: location_extract_place_fuzzy.sql 9324 2012-02-27 22:08:12Z pramsey $-
--- location_extract_place_fuzzy(string, stateAbbrev)
--- This function checks the place_lookup table to find a potential match to
--- the location described at the end of the given string.  If an exact match
--- fails, a fuzzy match is performed.  The location as found in the given
--- string is returned.
-CREATE OR REPLACE FUNCTION location_extract_place_fuzzy(
-    fullStreet VARCHAR,
-    stateAbbrev VARCHAR
-) RETURNS VARCHAR
-AS $_$
-DECLARE
-  ws VARCHAR;
-  tempString VARCHAR;
-  location VARCHAR;
-  tempInt INTEGER;
-  word_count INTEGER;
-  rec RECORD;
-  test BOOLEAN;
-  lstate VARCHAR;
-BEGIN
---$Id: location_extract_place_fuzzy.sql 9324 2012-02-27 22:08:12Z pramsey $-
-  ws := E'[ ,.\n\f\t]';
-
-  tempString := substring(fullStreet, '(?i)' || ws
-      || '([a-zA-Z0-9]+)$');
-  IF tempString IS NULL THEN
-      tempString := fullStreet;
-  END IF;
-
-  IF stateAbbrev IS NOT NULL THEN
-    lstate := statefp FROM state WHERE stusps = stateAbbrev;
-    SELECT into tempInt count(*) FROM place
-        WHERE place.statefp = lstate
-        AND soundex(tempString) = end_soundex(name);
-  ELSE
-    SELECT into tempInt count(*) FROM place
-        WHERE soundex(tempString) = end_soundex(name);
-  END IF;
-
-  IF tempInt > 0 THEN
-    -- Some potentials were found.  Begin a word-by-word soundex on each.
-    tempInt := 50;
-    IF stateAbbrev IS NOT NULL THEN
-      FOR rec IN SELECT name FROM place
-          WHERE place.statefp = lstate
-          AND soundex(tempString) = end_soundex(name) LOOP
-        word_count := count_words(rec.name);
-        test := TRUE;
-        tempString := get_last_words(fullStreet, word_count);
-        FOR i IN 1..word_count LOOP
-          IF soundex(split_part(tempString, ' ', i)) !=
-            soundex(split_part(rec.name, ' ', i)) THEN
-            test := FALSE;
-          END IF;
-        END LOOP;
-          IF test THEN
-            -- The soundex matched, determine if the distance is better.
-            IF levenshtein_ignore_case(rec.name, tempString) < tempInt THEN
-              location := tempString;
-              tempInt := levenshtein_ignore_case(rec.name, tempString);
-            END IF;
-          END IF;
-      END LOOP;
-    ELSE
-      FOR rec IN SELECT name FROM place
-          WHERE soundex(tempString) = end_soundex(name) LOOP
-        word_count := count_words(rec.name);
-        test := TRUE;
-        tempString := get_last_words(fullStreet, word_count);
-        FOR i IN 1..word_count LOOP
-          IF soundex(split_part(tempString, ' ', i)) !=
-            soundex(split_part(rec.name, ' ', i)) THEN
-            test := FALSE;
-          END IF;
-        END LOOP;
-          IF test THEN
-            -- The soundex matched, determine if the distance is better.
-            IF levenshtein_ignore_case(rec.name, tempString) < tempInt THEN
-              location := tempString;
-            tempInt := levenshtein_ignore_case(rec.name, tempString);
-          END IF;
-        END IF;
-      END LOOP;
-    END IF;
-  END IF;
-
-  RETURN location;
-END;
-$_$ LANGUAGE plpgsql STABLE;
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/normalize_address.sql b/extras/tiger_geocoder/tiger_2011/normalize/normalize_address.sql
deleted file mode 100644
index 7ffcf15..0000000
--- a/extras/tiger_geocoder/tiger_2011/normalize/normalize_address.sql
+++ /dev/null
@@ -1,713 +0,0 @@
---$Id: normalize_address.sql 11246 2013-04-02 22:22:59Z robe $-
--- normalize_address(addressString)
--- This takes an address string and parses it into address (internal/street)
--- street name, type, direction prefix and suffix, location, state and
--- zip code, depending on what can be found in the string.
---
--- The US postal address standard is used:
--- <Street Number> <Direction Prefix> <Street Name> <Street Type>
--- <Direction Suffix> <Internal Address> <Location> <State> <Zip Code>
---
--- State is assumed to be included in the string, and MUST be matchable to
--- something in the state_lookup table.  Fuzzy matching is used if no direct
--- match is found.
---
--- Two formats of zip code are acceptable: five digit, and five + 4.
---
--- The internal addressing indicators are looked up from the
--- secondary_unit_lookup table.  A following identifier is accepted
--- but it must start with a digit.
---
--- The location is parsed from the string using other indicators, such
--- as street type, direction suffix or internal address, if available.
--- If these are not, the location is extracted using comparisons against
--- the places_lookup table, then the countysub_lookup table to determine
--- what, in the original string, is intended to be the location.  In both
--- cases, an exact match is first pursued, then a word-by-word fuzzy match.
--- The result is not the name of the location from the tables, but the
--- section of the given string that corresponds to the name from the tables.
---
--- Zip codes and street names are not validated.
---
--- Direction indicators are extracted by comparison with the direction_lookup
--- table.
---
--- Street addresses are assumed to be a single word, starting with a number.
--- Address is manditory; if no address is given, and the street is numbered,
--- the resulting address will be the street name, and the street name
--- will be an empty string.
---
--- In some cases, the street type is part of the street name.
--- eg State Hwy 22a.  As long as the word following the type starts with a
--- number (this is usually the case) this will be caught.  Some street names
--- include a type name, and have a street type that differs.  This will be
--- handled properly, so long as both are given.  If the street type is
--- omitted, the street names included type will be parsed as the street type.
---
--- The output is currently a colon seperated list of values:
--- InternalAddress:StreetAddress:DirectionPrefix:StreetName:StreetType:
--- DirectionSuffix:Location:State:ZipCode
--- This returns each element as entered.  It's mainly meant for debugging.
--- There is also another option that returns:
--- StreetAddress:DirectionPrefixAbbreviation:StreetName:StreetTypeAbbreviation:
--- DirectionSuffixAbbreviation:Location:StateAbbreviation:ZipCode
--- This is more standardized and better for use with a geocoder.
-CREATE OR REPLACE FUNCTION normalize_address(in_rawinput character varying)
-  RETURNS norm_addy AS
-$$
-DECLARE
-  debug_flag boolean := get_geocode_setting('debug_normalize_address')::boolean;
-  use_pagc boolean := COALESCE(get_geocode_setting('use_pagc_address_parser')::boolean, false);
-  result norm_addy;
-  addressString VARCHAR;
-  zipString VARCHAR;
-  preDir VARCHAR;
-  postDir VARCHAR;
-  fullStreet VARCHAR;
-  reducedStreet VARCHAR;
-  streetType VARCHAR;
-  state VARCHAR;
-  tempString VARCHAR;
-  tempInt INTEGER;
-  rec RECORD;
-  ws VARCHAR;
-  rawInput VARCHAR;
-  -- is this a highway 
-  -- (we treat these differently since the road name often comes after the streetType)
-  isHighway boolean := false; 
-BEGIN
---$Id: normalize_address.sql 11246 2013-04-02 22:22:59Z robe $-
-  result.parsed := FALSE;
-  IF use_pagc THEN
-  	result := pagc_normalize_address(in_rawinput);
-  	RETURN result;
-  END IF;
-
-  rawInput := trim(in_rawInput);
-
-  IF rawInput IS NULL THEN
-    RETURN result;
-  END IF;
-
-  ws := E'[ ,.\t\n\f\r]';
-
-  IF debug_flag THEN
-    raise notice '% input: %', clock_timestamp(), rawInput;
-  END IF;
-
-  -- Assume that the address begins with a digit, and extract it from
-  -- the input string.
-  addressString := substring(rawInput from E'^([0-9].*?)[ ,/.]');
-
-  IF debug_flag THEN
-    raise notice '% addressString: %', clock_timestamp(), addressString;
-  END IF;
-
-  -- There are two formats for zip code, the normal 5 digit , and
-  -- the nine digit zip-4.  It may also not exist.
-  
-  zipString := substring(rawInput from ws || E'([0-9]{5})$');
-  IF zipString IS NULL THEN
-    -- Check if the zip is just a partial or a one with -s
-    -- or one that just has more than 5 digits
-    zipString := COALESCE(substring(rawInput from ws || '([0-9]{5})-[0-9]{0,4}$'), 
-                substring(rawInput from ws || '([0-9]{2,5})$'),
-                substring(rawInput from ws || '([0-9]{6,14})$'));
-   
-     -- Check if all we got was a zipcode, of either form
-    IF zipString IS NULL THEN
-      zipString := substring(rawInput from '^([0-9]{5})$');
-      IF zipString IS NULL THEN
-        zipString := substring(rawInput from '^([0-9]{5})-[0-9]{4}$');
-      END IF;
-      -- If it was only a zipcode, then just return it.
-      IF zipString IS NOT NULL THEN
-        result.zip := zipString;
-        result.parsed := TRUE;
-        RETURN result;
-      END IF;
-    END IF;
-  END IF;
-
-  IF debug_flag THEN
-    raise notice '% zipString: %', clock_timestamp(), zipString;
-  END IF;
-
-  IF zipString IS NOT NULL THEN
-    fullStreet := substring(rawInput from '(.*)'
-        || ws || '+' || cull_null(zipString) || '[- ]?([0-9]{4})?$');
-    /** strip off any trailing  spaces or ,**/
-    fullStreet :=  btrim(fullStreet, ' ,');
-    
-  ELSE
-    fullStreet := rawInput;
-  END IF;
-
-  IF debug_flag THEN
-    raise notice '% fullStreet: %', clock_timestamp(), fullStreet;
-  END IF;
-
-  -- FIXME: state_extract should probably be returning a record so we can
-  -- avoid having to parse the result from it.
-  tempString := state_extract(fullStreet);
-  IF tempString IS NOT NULL THEN
-    state := split_part(tempString, ':', 1);
-    result.stateAbbrev := split_part(tempString, ':', 2);
-  END IF;
-
-  IF debug_flag THEN
-    raise notice '% stateAbbrev: %', clock_timestamp(), result.stateAbbrev;
-  END IF;
-
-  -- The easiest case is if the address is comma delimited.  There are some
-  -- likely cases:
-  --   street level, location, state
-  --   street level, location state
-  --   street level, location
-  --   street level, internal address, location, state
-  --   street level, internal address, location state
-  --   street level, internal address location state
-  --   street level, internal address, location
-  --   street level, internal address location
-  -- The first three are useful.
-
-  tempString := substring(fullStreet, '(?i),' || ws || '+(.*?)(,?' || ws ||
-      '*' || cull_null(state) || '$)');
-  IF tempString = '' THEN tempString := NULL; END IF;
-  IF tempString IS NOT NULL THEN
-    IF tempString LIKE '%,%' THEN -- if it has a comma probably has suite, strip it from location
-        result.location := trim(split_part(tempString,',',2));
-    ELSE
-        result.location := tempString;
-    END IF;
-    IF addressString IS NOT NULL THEN
-      fullStreet := substring(fullStreet, '(?i)' || addressString || ws ||
-          '+(.*),' || ws || '+' || result.location);
-    ELSE
-      fullStreet := substring(fullStreet, '(?i)(.*),' || ws || '+' ||
-          result.location);
-    END IF;
-  END IF;
-
-  IF debug_flag THEN
-    raise notice '% fullStreet: %',  clock_timestamp(), fullStreet;
-    raise notice '% location: %', clock_timestamp(), result.location;
-  END IF;
-
-  -- Pull out the full street information, defined as everything between the
-  -- address and the state.  This includes the location.
-  -- This doesnt need to be done if location has already been found.
-  IF result.location IS NULL THEN
-    IF addressString IS NOT NULL THEN
-      IF state IS NOT NULL THEN
-        fullStreet := substring(fullStreet, '(?i)' || addressString ||
-            ws || '+(.*?)' || ws || '+' || state);
-      ELSE
-        fullStreet := substring(fullStreet, '(?i)' || addressString ||
-            ws || '+(.*?)');
-      END IF;
-    ELSE
-      IF state IS NOT NULL THEN
-        fullStreet := substring(fullStreet, '(?i)(.*?)' || ws ||
-            '+' || state);
-      ELSE
-        fullStreet := substring(fullStreet, '(?i)(.*?)');
-      END IF;
-    END IF;
-
-    IF debug_flag THEN
-      raise notice '% fullStreet: %', clock_timestamp(),fullStreet;
-    END IF;
-
-    IF debug_flag THEN
-      raise notice '% start location extract', clock_timestamp();
-    END IF;
-    result.location := location_extract(fullStreet, result.stateAbbrev);
-
-    IF debug_flag THEN
-      raise notice '% end location extract', clock_timestamp();
-    END IF;
-
-    -- A location can't be a street type, sorry.
-    IF lower(result.location) IN (SELECT lower(name) FROM street_type_lookup) THEN
-        result.location := NULL;
-    END IF;
-
-    -- If the location was found, remove it from fullStreet
-    IF result.location IS NOT NULL THEN
-      fullStreet := substring(fullStreet, '(?i)(.*)' || ws || '+' ||
-          result.location);
-    END IF;
-  END IF;
-
-  IF debug_flag THEN
-    raise notice 'fullStreet: %', fullStreet;
-    raise notice 'location: %', result.location;
-  END IF;
-
-  -- Determine if any internal address is included, such as apartment
-  -- or suite number.
-  -- this count is surprisingly slow by itself but much faster if you add an ILIKE AND clause
-  SELECT INTO tempInt count(*) FROM secondary_unit_lookup
-      WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name || '('
-          || ws || '|$)');
-  IF tempInt = 1 THEN
-    result.internal := substring(fullStreet, '(?i)' || ws || '('
-        || name ||  ws || '*#?' || ws
-        || '*(?:[0-9][-0-9a-zA-Z]*)?' || ')(?:' || ws || '|$)')
-        FROM secondary_unit_lookup
-        WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name || '('
-        || ws || '|$)');
-    ELSIF tempInt > 1 THEN
-    -- In the event of multiple matches to a secondary unit designation, we
-    -- will assume that the last one is the true one.
-    tempInt := 0;
-    FOR rec in SELECT trim(substring(fullStreet, '(?i)' || ws || '('
-        || name || '(?:' || ws || '*#?' || ws
-        || '*(?:[0-9][-0-9a-zA-Z]*)?)' || ws || '?|$)')) as value
-        FROM secondary_unit_lookup
-        WHERE fullStreet ILIKE '%' || name || '%' AND  texticregexeq(fullStreet, '(?i)' || ws || name || '('
-        || ws || '|$)') LOOP
-      IF tempInt < position(rec.value in fullStreet) THEN
-        tempInt := position(rec.value in fullStreet);
-        result.internal := rec.value;
-      END IF;
-    END LOOP;
-  END IF;
-
-  IF debug_flag THEN
-    raise notice 'internal: %', result.internal;
-  END IF;
-
-  IF result.location IS NULL THEN
-    -- If the internal address is given, the location is everything after it.
-    result.location := trim(substring(fullStreet, result.internal || ws || '+(.*)$'));
-  END IF;
-
-  IF debug_flag THEN
-    raise notice 'location: %', result.location;
-  END IF;
-
-  -- Pull potential street types from the full street information
-  -- this count is surprisingly slow by itself but much faster if you add an ILIKE AND clause
-  -- difference of 98ms vs 16 ms for example
-  -- Put a space in front to make regex easier can always count on it starting with space
-  -- Reject all street types where the fullstreet name is equal to the name
-  fullStreet := ' ' || trim(fullStreet);
-  tempInt := count(*) FROM street_type_lookup
-      WHERE fullStreet ILIKE '%' || name || '%' AND 
-        trim(upper(fullStreet)) != name AND
-        texticregexeq(fullStreet, '(?i)' || ws || '(' || name
-      || ')(?:' || ws || '|$)');
-  IF tempInt = 1 THEN
-    SELECT INTO rec abbrev, substring(fullStreet, '(?i)' || ws || '('
-        || name || ')(?:' || ws || '|$)') AS given, is_hw FROM street_type_lookup
-        WHERE fullStreet ILIKE '%' || name || '%' AND 
-             trim(upper(fullStreet)) != name AND
-            texticregexeq(fullStreet, '(?i)' || ws || '(' || name
-        || ')(?:' || ws || '|$)')  ;
-    streetType := rec.given;
-    result.streetTypeAbbrev := rec.abbrev;
-    isHighway :=  rec.is_hw;
-    IF debug_flag THEN
-    	   RAISE NOTICE 'street Type: %, street Type abbrev: %', rec.given, rec.abbrev;
-    END IF;
-  ELSIF tempInt > 1 THEN
-    tempInt := 0;
-    -- the last matching abbrev in the string is the most likely one
-    FOR rec IN SELECT * FROM 
-    	(SELECT abbrev, name, substring(fullStreet, '(?i)' || ws || '?('
-        || name || ')(?:' || ws || '|$)') AS given, is_hw ,
-        		RANK() OVER( ORDER BY position(name IN upper(trim(fullStreet))) ) As n_start,
-        		RANK() OVER( ORDER BY position(name IN upper(trim(fullStreet))) + length(name) ) As n_end,
-        		COUNT(*) OVER() As nrecs, position(name IN upper(trim(fullStreet)))
-        		FROM street_type_lookup
-        WHERE fullStreet ILIKE '%' || name || '%'  AND 
-            trim(upper(fullStreet)) != name AND 
-            (texticregexeq(fullStreet, '(?i)' || ws || '(' || name 
-            -- we only consider street types that are regular and not at beginning of name or are highways (since those can be at beg or end)
-            -- we take the one that is the longest e.g Country Road would be more correct than Road
-        || ')(?:' || ws || '|$)') OR (is_hw AND fullstreet ILIKE name || ' %') )
-     AND ((NOT is_hw AND position(name IN upper(trim(fullStreet))) > 1 OR is_hw) )
-        ) As foo
-        -- N_start - N_end - ensure we first get the one with the most overlapping sub types 
-        -- Then of those get the one that ends last and then starts first
-        ORDER BY n_start - n_end, n_end DESC, n_start LIMIT 1  LOOP
-      -- If we have found an internal address, make sure the type
-      -- precedes it.
-      /** TODO: I don't think we need a loop anymore since we are just returning one and the one in the last position
-      * I'll leave for now though **/
-      IF result.internal IS NOT NULL THEN
-        IF position(rec.given IN fullStreet) < position(result.internal IN fullStreet) THEN
-          IF tempInt < position(rec.given IN fullStreet) THEN
-            streetType := rec.given;
-            result.streetTypeAbbrev := rec.abbrev;
-            isHighway := rec.is_hw;
-            tempInt := position(rec.given IN fullStreet);
-          END IF;
-        END IF;
-      ELSIF tempInt < position(rec.given IN fullStreet) THEN
-        streetType := rec.given;
-        result.streetTypeAbbrev := rec.abbrev;
-        isHighway := rec.is_hw;
-        tempInt := position(rec.given IN fullStreet);
-        IF debug_flag THEN
-        	RAISE NOTICE 'street Type: %, street Type abbrev: %', rec.given, rec.abbrev;
-        END IF;
-      END IF;
-    END LOOP;
-  END IF;
-
-  IF debug_flag THEN
-    raise notice '% streetTypeAbbrev: %', clock_timestamp(), result.streetTypeAbbrev;
-  END IF;
-
-  -- There is a little more processing required now.  If the word after the
-  -- street type begins with a number, then its most likely a highway like State Route 225a.  If
-  -- In Tiger 2010+ the reduced Street name just has the number
-  -- the next word starts with a char, then everything after the street type
-  -- will be considered location.  If there is no street type, then I'm sad.
-  IF streetType IS NOT NULL THEN
-    -- Check if the fullStreet contains the streetType and ends in just numbers
-    -- If it does its a road number like a country road or state route or other highway
-    -- Just set the number to be the name of street
-    
-    tempString := NULL;
-    IF isHighway THEN
-        tempString :=  substring(fullStreet, streetType || ws || '+' || E'([0-9a-zA-Z]+)' || ws || '*');
-    END IF;    
-    IF tempString > '' AND result.location IS NOT NULL THEN
-        reducedStreet := tempString;
-        result.streetName := reducedStreet;
-        IF debug_flag THEN
-        	RAISE NOTICE 'reduced Street: %', result.streetName;
-        END IF;
-        -- the post direction might be portion of fullStreet after reducedStreet and type
-		-- reducedStreet: 24  fullStreet: Country Road 24, N or fullStreet: Country Road 24 N
-		tempString := regexp_replace(fullStreet, streetType || ws || '+' || reducedStreet,'');
-		IF tempString > '' THEN
-			IF debug_flag THEN
-				RAISE NOTICE 'remove reduced street: % + streetType: % from fullstreet: %', reducedStreet, streetType, fullStreet;
-			END IF;
-			tempString := abbrev FROM direction_lookup WHERE
-			 tempString ILIKE '%' || name || '%'  AND texticregexeq(reducedStreet || ws || '+' || streetType, '(?i)(' || name || ')' || ws || '+|$')
-			 	ORDER BY length(name) DESC LIMIT 1;
-			IF tempString IS NOT NULL THEN
-				result.postDirAbbrev = trim(tempString);
-				IF debug_flag THEN
-					RAISE NOTICE 'postDirAbbre of highway: %', result.postDirAbbrev;
-				END IF;
-			END IF;
-		END IF;
-    ELSE
-        tempString := substring(fullStreet, streetType || ws ||
-            E'+([0-9][^ ,.\t\r\n\f]*?)' || ws);
-        IF tempString IS NOT NULL THEN
-          IF result.location IS NULL THEN
-            result.location := substring(fullStreet, streetType || ws || '+'
-                     || tempString || ws || '+(.*)$');
-          END IF;
-          reducedStreet := substring(fullStreet, '(.*)' || ws || '+'
-                        || result.location || '$');
-          streetType := NULL;
-          result.streetTypeAbbrev := NULL;
-        ELSE
-          IF result.location IS NULL THEN
-            result.location := substring(fullStreet, streetType || ws || '+(.*)$');
-          END IF;
-          reducedStreet := substring(fullStreet, '^(.*)' || ws || '+'
-                        || streetType);
-          IF COALESCE(trim(reducedStreet),'') = '' THEN --reduced street can't be blank
-            reducedStreet := fullStreet;
-            streetType := NULL;
-            result.streetTypeAbbrev := NULL;
-          END IF;
-        END IF;
-		-- the post direction might be portion of fullStreet after reducedStreet
-		-- reducedStreet: Main  fullStreet: Main St, N or fullStreet: Main St N
-		tempString := trim(regexp_replace(fullStreet,  reducedStreet ||  ws || '+' || streetType,''));
-		IF tempString > '' THEN
-		  tempString := abbrev FROM direction_lookup WHERE
-			 tempString ILIKE '%' || name || '%'  
-			 AND texticregexeq(fullStreet || ' ', '(?i)' || reducedStreet || ws || '+' || streetType || ws || '+(' || name || ')' || ws || '+')
-			ORDER BY length(name) DESC LIMIT 1;
-		  IF tempString IS NOT NULL THEN
-			result.postDirAbbrev = trim(tempString);
-		  END IF;
-		END IF;
- 
-
-		IF debug_flag THEN
-			raise notice '% reduced street: %', clock_timestamp(), reducedStreet;
-		END IF;
-		
-		-- The pre direction should be at the beginning of the fullStreet string.
-		-- The post direction should be at the beginning of the location string
-		-- if there is no internal address
-		reducedStreet := trim(reducedStreet);
-		tempString := trim(regexp_replace(fullStreet,  ws || '+' || reducedStreet ||  ws || '+',''));
-		IF tempString > '' THEN
-			tempString := substring(reducedStreet, '(?i)(^' || name
-				|| ')' || ws) FROM direction_lookup WHERE
-				 reducedStreet ILIKE '%' || name || '%'  AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
-				ORDER BY length(name) DESC LIMIT 1;
-		END IF;
-		IF tempString > '' THEN
-		  preDir := tempString;
-		  result.preDirAbbrev := abbrev FROM direction_lookup
-			  where reducedStreet ILIKE '%' || name '%' AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
-			  ORDER BY length(name) DESC LIMIT 1;
-		  result.streetName := trim(substring(reducedStreet, '^' || preDir || ws || '(.*)'));
-		ELSE
-		  result.streetName := trim(reducedStreet);
-		END IF;
-    END IF;
-    IF texticregexeq(result.location, '(?i)' || result.internal || '$') THEN
-      -- If the internal address is at the end of the location, then no
-      -- location was given.  We still need to look for post direction.
-      SELECT INTO rec abbrev,
-          substring(result.location, '(?i)^(' || name || ')' || ws) as value
-          FROM direction_lookup 
-            WHERE result.location ILIKE '%' || name || '%' AND texticregexeq(result.location, '(?i)^'
-          || name || ws) ORDER BY length(name) desc LIMIT 1;
-      IF rec.value IS NOT NULL THEN
-        postDir := rec.value;
-        result.postDirAbbrev := rec.abbrev;
-      END IF;
-      result.location := null;
-    ELSIF result.internal IS NULL THEN
-      -- If no location is given, the location string will be the post direction
-      SELECT INTO tempInt count(*) FROM direction_lookup WHERE
-          upper(result.location) = upper(name);
-      IF tempInt != 0 THEN
-        postDir := result.location;
-        SELECT INTO result.postDirAbbrev abbrev FROM direction_lookup WHERE
-            upper(postDir) = upper(name);
-        result.location := NULL;
-        
-        IF debug_flag THEN
-            RAISE NOTICE '% postDir exact match: %', clock_timestamp(), result.postDirAbbrev;
-        END IF;
-      ELSE
-        -- postDirection is not equal location, but may be contained in it
-        -- It is only considered a postDirection if it is not preceded by a ,
-        SELECT INTO tempString substring(result.location, '(?i)(^' || name
-            || ')' || ws) FROM direction_lookup WHERE
-            result.location ILIKE '%' || name || '%' AND texticregexeq(result.location, '(?i)(^' || name || ')' || ws)
-            	AND NOT  texticregexeq(rawInput, '(?i)(,' || ws || '+' || result.location || ')' || ws)
-            ORDER BY length(name) desc LIMIT 1;
-            
-        IF debug_flag THEN
-            RAISE NOTICE '% location trying to extract postdir: %, tempstring: %, rawInput: %', clock_timestamp(), result.location, tempString, rawInput;
-        END IF;
-        IF tempString IS NOT NULL THEN
-            postDir := tempString;
-            SELECT INTO result.postDirAbbrev abbrev FROM direction_lookup
-              WHERE result.location ILIKE '%' || name || '%' AND texticregexeq(result.location, '(?i)(^' || name || ')' || ws) ORDER BY length(name) DESC LIMIT 1;
-              result.location := substring(result.location, '^' || postDir || ws || '+(.*)');
-            IF debug_flag THEN
-                  RAISE NOTICE '% postDir: %', clock_timestamp(), result.postDirAbbrev;
-            END IF;
-        END IF;
-        
-      END IF;
-    ELSE
-      -- internal is not null, but is not at the end of the location string
-      -- look for post direction before the internal address
-        IF debug_flag THEN
-            RAISE NOTICE '%fullstreet before extract postdir: %', clock_timestamp(), fullStreet;
-        END IF;
-        SELECT INTO tempString substring(fullStreet, '(?i)' || streetType
-          || ws || '+(' || name || ')' || ws || '+' || result.internal)
-          FROM direction_lookup 
-          WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)'
-          || ws || name || ws || '+' || result.internal) ORDER BY length(name) desc LIMIT 1;
-        IF tempString IS NOT NULL THEN
-            postDir := tempString;
-            SELECT INTO result.postDirAbbrev abbrev FROM direction_lookup
-                WHERE texticregexeq(fullStreet, '(?i)' || ws || name || ws);
-        END IF;
-    END IF;
-  ELSE
-  -- No street type was found
-
-    -- If an internal address was given, then the split becomes easy, and the
-    -- street name is everything before it, without directions.
-    IF result.internal IS NOT NULL THEN
-      reducedStreet := substring(fullStreet, '(?i)^(.*?)' || ws || '+'
-                    || result.internal);
-      tempInt := count(*) FROM direction_lookup WHERE
-          reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)' || ws || name || '$');
-      IF tempInt > 0 THEN
-        postDir := substring(reducedStreet, '(?i)' || ws || '('
-            || name || ')' || '$') FROM direction_lookup
-            WHERE reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)' || ws || name || '$');
-        result.postDirAbbrev := abbrev FROM direction_lookup
-            WHERE texticregexeq(reducedStreet, '(?i)' || ws || name || '$');
-      END IF;
-      tempString := substring(reducedStreet, '(?i)^(' || name
-          || ')' || ws) FROM direction_lookup WHERE
-           reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)^(' || name || ')' || ws)
-          ORDER BY length(name) DESC;
-      IF tempString IS NOT NULL THEN
-        preDir := tempString;
-        result.preDirAbbrev := abbrev FROM direction_lookup WHERE
-             reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
-            ORDER BY length(name) DESC;
-        result.streetName := substring(reducedStreet, '(?i)^' || preDir || ws
-                   || '+(.*?)(?:' || ws || '+' || cull_null(postDir) || '|$)');
-      ELSE
-        result.streetName := substring(reducedStreet, '(?i)^(.*?)(?:' || ws
-                   || '+' || cull_null(postDir) || '|$)');
-      END IF;
-    ELSE
-
-      -- If a post direction is given, then the location is everything after,
-      -- the street name is everything before, less any pre direction.
-      fullStreet := trim(fullStreet);
-      tempInt := count(*) FROM direction_lookup
-          WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name || '(?:'
-              || ws || '|$)');
-
-      IF tempInt = 1 THEN
-        -- A single postDir candidate was found.  This makes it easier.
-        postDir := substring(fullStreet, '(?i)' || ws || '('
-            || name || ')(?:' || ws || '|$)') FROM direction_lookup WHERE
-             fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name || '(?:'
-            || ws || '|$)');
-        result.postDirAbbrev := abbrev FROM direction_lookup
-            WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name
-            || '(?:' || ws || '|$)');
-        IF result.location IS NULL THEN
-          result.location := substring(fullStreet, '(?i)' || ws || postDir
-                   || ws || '+(.*?)$');
-        END IF;
-        reducedStreet := substring(fullStreet, '^(.*?)' || ws || '+'
-                      || postDir);
-        tempString := substring(reducedStreet, '(?i)(^' || name
-            || ')' || ws) FROM direction_lookup 
-            WHERE
-                reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
-            ORDER BY length(name) DESC;
-        IF tempString IS NOT NULL THEN
-          preDir := tempString;
-          result.preDirAbbrev := abbrev FROM direction_lookup WHERE
-              reducedStreet ILIKE '%' || name || '%' AND texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
-              ORDER BY length(name) DESC;
-          result.streetName := trim(substring(reducedStreet, '^' || preDir || ws
-                     || '+(.*)'));
-        ELSE
-          result.streetName := trim(reducedStreet);
-        END IF;
-      ELSIF tempInt > 1 THEN
-        -- Multiple postDir candidates were found.  We need to find the last
-        -- incident of a direction, but avoid getting the last word from
-        -- a two word direction. eg extracting "East" from "North East"
-        -- We do this by sorting by length, and taking the last direction
-        -- in the results that is not included in an earlier one.
-        -- This wont be a problem it preDir is North East and postDir is
-        -- East as the regex requires a space before the direction.  Only
-        -- the East will return from the preDir.
-        tempInt := 0;
-        FOR rec IN SELECT abbrev, substring(fullStreet, '(?i)' || ws || '('
-            || name || ')(?:' || ws || '|$)') AS value
-            FROM direction_lookup
-            WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name
-            || '(?:' || ws || '|$)')
-            ORDER BY length(name) desc LOOP
-          tempInt := 0;
-          IF tempInt < position(rec.value in fullStreet) THEN
-            IF postDir IS NULL THEN
-              tempInt := position(rec.value in fullStreet);
-              postDir := rec.value;
-              result.postDirAbbrev := rec.abbrev;
-            ELSIF NOT texticregexeq(postDir, '(?i)' || rec.value) THEN
-              tempInt := position(rec.value in fullStreet);
-              postDir := rec.value;
-              result.postDirAbbrev := rec.abbrev;
-             END IF;
-          END IF;
-        END LOOP;
-        IF result.location IS NULL THEN
-          result.location := substring(fullStreet, '(?i)' || ws || postDir || ws
-                   || '+(.*?)$');
-        END IF;
-        reducedStreet := substring(fullStreet, '(?i)^(.*?)' || ws || '+'
-                      || postDir);
-        SELECT INTO tempString substring(reducedStreet, '(?i)(^' || name
-            || ')' || ws) FROM direction_lookup WHERE
-             reducedStreet ILIKE '%' || name || '%' AND  texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
-            ORDER BY length(name) DESC;
-        IF tempString IS NOT NULL THEN
-          preDir := tempString;
-          SELECT INTO result.preDirAbbrev abbrev FROM direction_lookup WHERE
-              reducedStreet ILIKE '%' || name || '%' AND  texticregexeq(reducedStreet, '(?i)(^' || name || ')' || ws)
-              ORDER BY length(name) DESC;
-          result.streetName := substring(reducedStreet, '^' || preDir || ws
-                     || '+(.*)');
-        ELSE
-          result.streetName := reducedStreet;
-        END IF;
-      ELSE
-
-        -- There is no street type, directional suffix or internal address
-        -- to allow distinction between street name and location.
-        IF result.location IS NULL THEN
-          IF debug_flag THEN
-            raise notice 'fullStreet: %', fullStreet;
-          END IF;
-
-          result.location := location_extract(fullStreet, result.stateAbbrev);
-          -- If the location was found, remove it from fullStreet
-          IF result.location IS NOT NULL THEN
-            fullStreet := substring(fullStreet, '(?i)(.*),' || ws || '+' ||
-                result.location);
-          END IF;
-        END IF;
-
-        -- Check for a direction prefix.
-        SELECT INTO tempString substring(fullStreet, '(?i)(^' || name
-            || ')' || ws) FROM direction_lookup WHERE
-            texticregexeq(fullStreet, '(?i)(^' || name || ')' || ws)
-            ORDER BY length(name);
-        IF tempString IS NOT NULL THEN
-          preDir := tempString;
-          SELECT INTO result.preDirAbbrev abbrev FROM direction_lookup WHERE
-              texticregexeq(fullStreet, '(?i)(^' || name || ')' || ws)
-              ORDER BY length(name) DESC;
-          IF result.location IS NOT NULL THEN
-            -- The location may still be in the fullStreet, or may
-            -- have been removed already
-            result.streetName := substring(fullStreet, '^' || preDir || ws
-                       || '+(.*?)(' || ws || '+' || result.location || '|$)');
-          ELSE
-            result.streetName := substring(fullStreet, '^' || preDir || ws
-                       || '+(.*?)' || ws || '*');
-          END IF;
-        ELSE
-          IF result.location IS NOT NULL THEN
-            -- The location may still be in the fullStreet, or may
-            -- have been removed already
-            result.streetName := substring(fullStreet, '^(.*?)(' || ws
-                       || '+' || result.location || '|$)');
-          ELSE
-            result.streetName := fullStreet;
-          END IF;
-        END IF;
-      END IF;
-    END IF;
-  END IF;
-
- -- For address number only put numbers and stop if reach a non-number e.g. 123-456 will return 123
-  result.address := to_number(substring(addressString, '[0-9]+'), '99999999999');
-   --get rid of extraneous spaces before we return
-  result.zip := trim(zipString);
-  result.streetName := trim(result.streetName);
-  result.location := trim(result.location);
-  result.postDirAbbrev := trim(result.postDirAbbrev);
-  result.parsed := TRUE;
-  RETURN result;
-END
-$$
-  LANGUAGE plpgsql STABLE
-  COST 100;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/normalize/pprint_addy.sql b/extras/tiger_geocoder/tiger_2011/normalize/pprint_addy.sql
deleted file mode 100644
index 558d27f..0000000
--- a/extras/tiger_geocoder/tiger_2011/normalize/pprint_addy.sql
+++ /dev/null
@@ -1,43 +0,0 @@
--- helper function to determine if street type 
--- should be put before or after the street name
--- note in streettype lookup this is misnamed as is_hw
--- because I originally thought only highways had that behavior
--- it applies to foreign influenced roads like Camino (for road)
-CREATE OR REPLACE FUNCTION is_pretype(text) RETURNS boolean AS
-$$
-    SELECT EXISTS(SELECT name FROM street_type_lookup WHERE name = upper($1) AND is_hw );
-$$
-LANGUAGE sql IMMUTABLE STRICT; /** I know this should be stable but it's practically immutable :) **/
-
-CREATE OR REPLACE FUNCTION pprint_addy(
-    input NORM_ADDY
-) RETURNS VARCHAR
-AS $_$
-DECLARE
-  result VARCHAR;
-BEGIN
-  IF NOT input.parsed THEN
-    RETURN NULL;
-  END IF;
-
-  result := cull_null(input.address::text)
-         || COALESCE(' ' || input.preDirAbbrev, '')
-         || CASE WHEN is_pretype(input.streetTypeAbbrev) THEN ' ' || input.streetTypeAbbrev  ELSE '' END
-         || COALESCE(' ' || input.streetName, '')
-         || CASE WHEN NOT is_pretype(input.streetTypeAbbrev) THEN ' ' || input.streetTypeAbbrev  ELSE '' END
-         || COALESCE(' ' || input.postDirAbbrev, '')
-         || CASE WHEN
-              input.address IS NOT NULL OR
-              input.streetName IS NOT NULL
-              THEN ', ' ELSE '' END
-         || cull_null(input.internal)
-         || CASE WHEN input.internal IS NOT NULL THEN ', ' ELSE '' END
-         || cull_null(input.location)
-         || CASE WHEN input.location IS NOT NULL THEN ', ' ELSE '' END
-         || COALESCE(input.stateAbbrev || ' ' , '')
-         || cull_null(input.zip);
-
-  RETURN trim(result);
-
-END;
-$_$ LANGUAGE plpgsql IMMUTABLE;
diff --git a/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql b/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql
deleted file mode 100644
index 3ab96a7..0000000
--- a/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql
+++ /dev/null
@@ -1,52 +0,0 @@
---$Id: pagc_normalize_address.sql 11332 2013-05-01 05:05:16Z robe $-
--- pagc_normalize_address(addressString)
--- This takes an address string and parses it into address (internal/street)
--- street name, type, direction prefix and suffix, location, state and
--- zip code, depending on what can be found in the string.
--- This is a drop in replacement for packaged normalize_address
--- that uses the pagc address standardizer C library instead
--- USAGE: SELECT * FROM tiger.pagc_normalize_address('One Devonshire Place, PH 301, Boston, MA 02109');
-SELECT tiger.SetSearchPathForInstall('tiger');
-CREATE OR REPLACE FUNCTION pagc_normalize_address(in_rawinput character varying)
-  RETURNS norm_addy AS
-$$
-DECLARE
-  result norm_addy;
-  var_rec RECORD;
-  var_parse_rec RECORD;
-  rawInput VARCHAR;
-
-BEGIN
---$Id: pagc_normalize_address.sql 11332 2013-05-01 05:05:16Z robe $-
-  result.parsed := FALSE;
-
-  rawInput := trim(in_rawinput);
-  var_parse_rec := parse_address(rawInput);
-  result.location := var_parse_rec.city;
-  result.stateAbbrev := trim(var_parse_rec.state);
-  result.zip := var_parse_rec.zip;
-
- var_rec := standardize_address('pagc_lex'
-       , 'pagc_gaz'
-       , 'pagc_rules'
-, COALESCE(var_parse_rec.address1,''), 
-   COALESCE(', ' || var_parse_rec.city,'') || COALESCE(', ' || var_parse_rec.state, '') || COALESCE(' ' || var_parse_rec.zip,'')  ) ;
- 
- -- For address number only put numbers and stop if reach a non-number e.g. 123-456 will return 123
-  result.address := to_number(substring(var_rec.house_num, '[0-9]+'), '99999999999');
-   --get rid of extraneous spaces before we return
-  result.zip := COALESCE(var_rec.postcode,result.zip);
-  result.streetName := trim(var_rec.name);
-  result.location := trim(var_rec.city);
-  result.stateAbbrev := trim(var_rec.state);
-  --this should be broken out separately like pagc, but normalizer doesn't have a slot for it
-  result.streettypeAbbrev := trim(COALESCE(var_rec.suftype, var_rec.pretype)); 
-  result.preDirAbbrev := trim(var_rec.predir);
-  result.postDirAbbrev := trim(var_rec.sufdir);
-  result.internal := trim(var_rec.unit);
-  result.parsed := TRUE;
-  RETURN result;
-END
-$$
-  LANGUAGE plpgsql IMMUTABLE
-  COST 100;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql b/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql
deleted file mode 100644
index ad9e82a..0000000
--- a/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql
+++ /dev/null
@@ -1,8185 +0,0 @@
---  Lookup tables used by pagc to standardize in format expected by tiger geocoder 
---$Id: pagc_tables.sql 11758 2013-08-10 06:14:34Z robe $-
-SET client_encoding = 'UTF8';
-SET standard_conforming_strings = on;
-SELECT tiger.SetSearchPathForInstall('tiger');
-CREATE OR REPLACE FUNCTION install_pagc_tables() 
-	RETURNS void AS
-$$
-DECLARE var_temp text;
-BEGIN
-	var_temp := tiger.SetSearchPathForInstall('tiger'); /** set set search path to have tiger in front **/
-	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_gaz')  THEN
-		CREATE TABLE pagc_gaz (id serial NOT NULL primary key ,seq integer ,word text, stdword text, token integer,is_custom boolean NOT NULL default true);
-		GRANT SELECT ON pagc_gaz TO public;
-	END IF;
-	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_lex')  THEN
-		CREATE TABLE pagc_lex (id serial NOT NULL primary key,seq integer,word text,stdword text,token integer,is_custom boolean NOT NULL default true);
-		GRANT SELECT ON pagc_lex TO public;
-	END IF;
-	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_rules')  THEN
-		CREATE TABLE pagc_rules (id serial NOT NULL primary key,rule text, is_custom boolean DEFAULT true);
-		GRANT SELECT ON pagc_rules TO public;
-	END IF;
-	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_gaz' AND data_type='text')  THEN
-	-- its probably old table structure change type of lex and gaz columns
-		ALTER TABLE tiger.pagc_lex ALTER COLUMN word TYPE text;
-		ALTER TABLE tiger.pagc_lex ALTER COLUMN stdword TYPE text;
-		ALTER TABLE tiger.pagc_gaz ALTER COLUMN word TYPE text;
-		ALTER TABLE tiger.pagc_gaz ALTER COLUMN stdword TYPE text;
-	END IF;
-	IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_rules' AND column_name = 'is_custom' )  THEN
-	-- its probably old table structure add column
-		ALTER TABLE tiger.pagc_rules ADD COLUMN is_custom boolean NOT NULL DEFAULT false;
-	END IF;
-END;
-$$
-language plpgsql;
-
-
-SELECT install_pagc_tables();
-DELETE FROM pagc_gaz WHERE is_custom = false;
-DELETE FROM pagc_lex WHERE is_custom = false;
-DELETE FROM pagc_rules WHERE is_custom = false OR id < 10000;
-
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (1, 1, 'AB', 'ALBERTA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (2, 2, 'AB', 'ALBERTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (3, 3, 'AB', 'ALBERTA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (4, 1, 'AFB', 'AIR FORCE BASE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (5, 1, 'A F B', 'AIR FORCE BASE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (6, 1, 'AIR FORCE BASE', 'AIR FORCE BASE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (8, 2, 'AK', 'ALASKA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (11, 2, 'AL', 'ALABAMA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (14, 2, 'ALA', 'ALABAMA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (17, 2, 'ALABAMA', 'ALABAMA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (19, 2, 'ALASKA', 'ALASKA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (20, 1, 'ALBERTA', 'ALBERTA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (21, 2, 'ALBERTA', 'ALBERTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (23, 2, 'AR', 'ARKANSAS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (26, 2, 'ARIZ', 'ARIZONA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (29, 2, 'ARIZONA', 'ARIZONA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (31, 2, 'ARK', 'ARKANSAS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (34, 2, 'ARKANSAS', 'ARKANSAS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (36, 2, 'AZ', 'ARIZONA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (38, 1, 'B C', 'BRITISH COLUMBIA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (39, 2, 'B C', 'BRITISH COLUMBIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (40, 3, 'B C', 'BRITISH COLUMBIA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (41, 1, 'BC', 'BRITISH COLUMBIA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (42, 2, 'BC', 'BRITISH COLUMBIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (43, 3, 'BC', 'BRITISH COLUMBIA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (44, 1, 'BRITISH COLUMBIA', 'BRITISH COLUMBIA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (45, 2, 'BRITISH COLUMBIA', 'BRITISH COLUMBIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (47, 2, 'CA', 'CALIFORNIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (49, 4, 'CA', 'CANADA', 12, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (50, 5, 'CA', 'CARRE', 2, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (52, 2, 'CALIF', 'CALIFORNIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (55, 2, 'CALIFORNIA', 'CALIFORNIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (56, 1, 'CANADA', 'CANADA', 12, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (57, 2, 'CANADA', 'CANADA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (59, 2, 'CO', 'COLORADO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (61, 1, 'COLOMBIE BRITANNIQUE', 'BRITISH COLUMBIA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (62, 2, 'COLOMBIE BRITANNIQUE', 'BRITISH COLUMBIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (64, 2, 'COLORADO', 'COLORADO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (66, 2, 'CONN', 'CONNECTICUT', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (69, 2, 'CONNECTICUT', 'CONNECTICUT', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (71, 2, 'CT', 'CONNECTICUT', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (74, 2, 'DC', 'DC', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (77, 3, 'DE', 'DELAWARE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (79, 2, 'DEL', 'DELAWARE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (82, 2, 'DELAWARE', 'DELAWARE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (84, 2, 'DC', 'DISTRICT OF COLUMBIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (85, 2, 'EL PASO', 'EL PASO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (87, 2, 'FL', 'FLORIDA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (90, 2, 'FLA', 'FLORIDA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (93, 2, 'FLORIDA', 'FLORIDA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (94, 1, 'FRKS', 'FORKS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (96, 2, 'GA', 'GEORGIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (99, 2, 'GEORGIA', 'GEORGIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (101, 2, 'HAWAII', 'HAWAII', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (103, 2, 'HI', 'HAWAII', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (106, 2, 'IA', 'IOWA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (109, 2, 'ID', 'IDAHO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (112, 2, 'IDAHO', 'IDAHO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (114, 2, 'IL', 'ILLINOIS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (116, 1, 'ILE DU PRINCE EDOUARD', 'PRINCE EDWARD ISLAND', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (117, 2, 'ILE DU PRINCE EDOUARD', 'PRINCE EDWARD ISLAND', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (119, 2, 'ILL', 'ILLINOIS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (122, 2, 'ILLINOIS', 'ILLINOIS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (124, 2, 'IN', 'INDIANA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (127, 2, 'IND', 'INDIANA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (130, 2, 'INDIANA', 'INDIANA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (132, 2, 'IOWA', 'IOWA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (134, 2, 'KANSAS', 'KANSAS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (136, 2, 'KENT', 'KENTUCKY', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (139, 2, 'KENTUCKY', 'KENTUCKY', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (141, 2, 'KS', 'KANSAS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (144, 2, 'KY', 'KENTUCKY', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (147, 2, 'LA', 'LOUISIANA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (149, 1, 'LABRADOR', 'NEWFOUNDLAND AND LABRADOR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (150, 2, 'LABRADOR', 'NEWFOUNDLAND AND LABRADOR', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (152, 2, 'LOUISIANA', 'LOUISIANA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (154, 2, 'MA', 'MASSACHUSETTS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (156, 4, 'MA', 'MANOR', 2, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (158, 2, 'MAINE', 'MAINE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (159, 1, 'MANITOBA', 'MANITOBA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (160, 2, 'MANITOBA', 'MANITOBA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (162, 2, 'MARYLAND', 'MARYLAND', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (164, 2, 'MASS', 'MASSACHUSETTS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (167, 2, 'MASSACHUSETTS', 'MASSACHUSETTS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (168, 1, 'MB', 'MANITOBA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (169, 2, 'MB', 'MANITOBA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (170, 3, 'MB', 'MANITOBA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (172, 2, 'MD', 'MARYLAND', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (175, 2, 'ME', 'MAINE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (178, 2, 'MI', 'MICHIGAN', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (181, 2, 'MICH', 'MICHIGAN', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (184, 2, 'MICHIGAN', 'MICHIGAN', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (186, 2, 'MINN', 'MINNESOTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (189, 2, 'MINNESOTA', 'MINNESOTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (191, 2, 'MISSISSIPPI', 'MISSISSIPPI', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (193, 2, 'MISSOURI', 'MISSOURI', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (195, 2, 'MN', 'MINNESOTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (198, 2, 'MO', 'MISSOURI', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (201, 2, 'MONT', 'MONTANA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (204, 2, 'MONTANA', 'MONTANA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (206, 2, 'MT', 'MONTANA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (209, 2, 'MS', 'MISSISSIPPI', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (212, 2, 'N CAROLINA', 'NORTH CAROLINA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (214, 2, 'N DAKOTA', 'NORTH DAKOTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (215, 1, 'NB', 'NEW BRUNSWICK', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (216, 2, 'NB', 'NEW BRUNSWICK', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (217, 3, 'NB', 'NEW BRUNSWICK', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (219, 2, 'NC', 'NORTH CAROLINA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (222, 2, 'ND', 'NORTH DAKOTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (225, 2, 'NE', 'NEBRASKA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (228, 2, 'NEB', 'NEBRASKA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (231, 2, 'NEBRASKA', 'NEBRASKA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (233, 2, 'NEV', 'NEVADA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (236, 2, 'NEVADA', 'NEVADA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (237, 1, 'NEW BRUNSWICK', 'NEW BRUNSWICK', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (238, 2, 'NEW BRUNSWICK', 'NEW BRUNSWICK', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (240, 2, 'NEW HAMPSHIRE', 'NEW HAMPSHIRE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (242, 2, 'NEW JERSEY', 'NEW JERSEY', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (244, 2, 'NEW MEXICO', 'NEW MEXICO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (246, 2, 'NEW YORK', 'NEW YORK', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (247, 1, 'NEWFOUNDLAND', 'NEWFOUNDLAND AND LABRADOR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (248, 2, 'NEWFOUNDLAND', 'NEWFOUNDLAND AND LABRADOR', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (249, 1, 'NF', 'NEWFOUNDLAND AND LABRADOR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (250, 2, 'NF', 'NEWFOUNDLAND AND LABRADOR', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (251, 3, 'NF', 'NEWFOUNDLAND AND LABRADOR', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (253, 2, 'NH', 'NEW HAMPSHIRE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (256, 2, 'NJ', 'NEW JERSEY', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (258, 1, 'NL', 'NEWFOUNDLAND AND LABRADOR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (259, 2, 'NL', 'NEWFOUNDLAND AND LABRADOR', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (260, 3, 'NL', 'NEWFOUNDLAND AND LABRADOR', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (262, 2, 'NM', 'NEW MEXICO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (265, 2, 'NORTH CAROLINA', 'NORTH CAROLINA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (267, 2, 'NORTH DAKOTA', 'NORTH DAKOTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (268, 1, 'NORTHWEST', 'NORTHWEST', 22, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (269, 1, 'NORTHWEST TERRITORIES', 'NORTHWEST TERRITORIES', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (270, 2, 'NORTHWEST TERRITORIES', 'NORTHWEST TERRITORIES', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (271, 1, 'NOUVEAU BRUNSWICK', 'NEW BRUNSWICK', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (272, 2, 'NOUVEAU BRUNSWICK', 'NEW BRUNSWICK', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (273, 1, 'NOUVELLE ECOSSE', 'NOVA SCOTIA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (274, 2, 'NOUVELLE ECOSSE', 'NOVA SCOTIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (275, 1, 'NOVA SCOTIA', 'NOVA SCOTIA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (276, 2, 'NOVA SCOTIA', 'NOVA SCOTIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (277, 1, 'NS', 'NOVA SCOTIA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (278, 2, 'NS', 'NOVA SCOTIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (279, 3, 'NS', 'NOVA SCOTIA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (280, 1, 'NT', 'NORTHWEST TERRITORIES', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (281, 2, 'NT', 'NORTHWEST TERRITORIES', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (282, 3, 'NT', 'NORTHWEST TERRITORIES', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (283, 1, 'NU', 'NUNAVUT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (284, 2, 'NU', 'NUNAVUT', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (285, 3, 'NU', 'NUNAVUT', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (286, 1, 'NUNAVUT', 'NUNAVUT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (287, 2, 'NUNAVUT', 'NUNAVUT', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (289, 2, 'NV', 'NEVADA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (292, 2, 'NY', 'NEW YORK', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (295, 2, 'OH', 'OHIO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (298, 2, 'OHIO', 'OHIO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (300, 2, 'OK', 'OKLAHOMA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (303, 2, 'OKLA', 'OKLAHOMA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (306, 2, 'OKLAHOMA', 'OKLAHOMA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (307, 1, 'ON', 'ONTARIO', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (308, 2, 'ON', 'ONTARIO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (309, 3, 'ON', 'ONTARIO', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (310, 1, 'ONT', 'ONTARIO', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (311, 2, 'ONT', 'ONTARIO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (312, 3, 'ONT', 'ONTARIO', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (313, 1, 'ONTARIO', 'ONTARIO', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (314, 2, 'ONTARIO', 'ONTARIO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (316, 2, 'OR', 'OREGON', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (319, 2, 'ORE', 'OREGON', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (322, 2, 'OREGON', 'OREGON', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (324, 2, 'PA', 'PENNSYLVANIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (326, 1, 'PE', 'PRINCE EDWARD ISLAND', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (327, 2, 'PE', 'PRINCE EDWARD ISLAND', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (328, 3, 'PE', 'PRINCE EDWARD ISLAND', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (329, 1, 'PEI', 'PRINCE EDWARD ISLAND', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (330, 2, 'PEI', 'PRINCE EDWARD ISLAND', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (331, 3, 'PEI', 'PRINCE EDWARD ISLAND', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (333, 2, 'PENN', 'PENNSYLVANIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (336, 2, 'PENNA', 'PENNSYLVANIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (339, 2, 'PENNSYLVANIA', 'PENNSYLVANIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (340, 1, 'PQ', 'QUEBEC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (341, 2, 'PQ', 'QUEBEC', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (342, 3, 'PQ', 'QUEBEC', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (344, 2, 'PR', 'PUERTO RICO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (346, 1, 'PRINCE EDWARD ISLAND', 'PRINCE EDWARD ISLAND', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (347, 2, 'PRINCE EDWARD ISLAND', 'PRINCE EDWARD ISLAND', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (349, 2, 'PUERTO RICO', 'PUERTO RICO', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (350, 1, 'QC', 'QUEBEC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (351, 2, 'QC', 'QUEBEC', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (352, 3, 'QC', 'QUEBEC', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (353, 1, 'QUEBEC', 'QUEBEC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (354, 2, 'QUEBEC', 'QUEBEC', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (356, 2, 'RHODE ISLAND', 'RHODE ISLAND', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (358, 2, 'RI', 'RHODE ISLAND', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (361, 2, 'S CAROLINA', 'SOUTH CAROLINA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (363, 2, 'S DAKOTA', 'SOUTH DAKOTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (364, 1, 'SASK', 'SASKATCHEWAN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (365, 2, 'SASK', 'SASKATCHEWAN', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (366, 1, 'SASKATCHEWAN', 'SASKATCHEWAN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (367, 2, 'SASKATCHEWAN', 'SASKATCHEWAN', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (369, 2, 'SC', 'SOUTH CAROLINA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (372, 2, 'SD', 'SOUTH DAKOTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (374, 1, 'SK', 'SASKATCHEWAN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (375, 2, 'SK', 'SASKATCHEWAN', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (376, 3, 'SK', 'SASKATCHEWAN', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (378, 2, 'SOUTH CAROLINA', 'SOUTH CAROLINA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (380, 2, 'SOUTH DAKOTA', 'SOUTH DAKOTA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (382, 2, 'TENN', 'TENNESSEE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (385, 2, 'TENNESSEE', 'TENNESSEE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (386, 1, 'TERRE NEUVE', 'NEWFOUNDLAND', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (387, 2, 'TERRE NEUVE', 'NEWFOUNDLAND', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (388, 1, 'TERRITOIRES DU NORD OUES', 'NORTHWEST TERRITORIES', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (389, 2, 'TERRITOIRES DU NORD OUES', 'NORTHWEST TERRITORIES', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (391, 2, 'TEX', 'TEXAS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (394, 2, 'TEXAS', 'TEXAS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (396, 2, 'TN', 'TENNESSEE', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (399, 2, 'TX', 'TEXAS', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (401, 2, 'U S', 'US', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (402, 3, 'U S', 'USA', 12, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (403, 1, 'U S A', 'USA', 12, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (404, 1, 'UNITED STATES OF AMERICA', 'USA', 12, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (405, 2, 'US', 'US', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (406, 3, 'US', 'USA', 12, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (407, 1, 'USA', 'USA', 12, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (409, 2, 'UT', 'UTAH', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (412, 2, 'UTAH', 'UTAH', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (414, 2, 'VA', 'VIRGINIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (417, 2, 'VERMONT', 'VERMONT', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (419, 2, 'VIRGINIA', 'VIRGINIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (421, 2, 'VT', 'VERMONT', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (424, 2, 'W VIRGINIA', 'WEST VIRGINIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (426, 2, 'WA', 'WASHINGTON', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (429, 2, 'WASH', 'WASHINGTON', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (432, 2, 'WASHINGTON', 'WASHINGTON', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (434, 2, 'WEST VIRGINIA', 'WEST VIRGINIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (436, 2, 'WI', 'WISCONSIN', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (439, 2, 'WISC', 'WISCONSIN', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (442, 2, 'WISCONSIN', 'WISCONSIN', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (444, 2, 'WV', 'WEST VIRGINIA', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (447, 2, 'WY', 'WYOMING', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (450, 2, 'WYOMING', 'WYOMING', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (451, 1, 'YK', 'YUKON', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (452, 2, 'YK', 'YUKON', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (453, 3, 'YK', 'YUKON', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (454, 1, 'YT', 'YUKON', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (455, 2, 'YT', 'YUKON', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (456, 3, 'YT', 'YUKON', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (457, 1, 'YUKON', 'YUKON', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (458, 2, 'YUKON', 'YUKON', 1, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (459, 1, 'BOIS D ARC', 'BOIS D ARC', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (460, 1, 'BOIS D''ARC', 'BOIS D ARC', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (461, 1, 'CAMP H M SMITH', 'CAMP H M SMITH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (462, 1, 'CAMP HM SMITH', 'CAMP H M SMITH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (463, 1, 'COEUR D ALENE', 'COEUR D ALENE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (464, 1, 'COEUR D''ALENE', 'COEUR D ALENE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (465, 1, 'D HANIS', 'D HANIS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (466, 1, 'D''HANIS', 'D HANIS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (467, 1, 'EL PASO', 'EL PASO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (468, 1, 'FORT GEORGE G MEADE', 'FORT GEORGE G MEADE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (469, 1, 'FORT GEORGE MEADE', 'FORT GEORGE G MEADE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (470, 1, 'FORT MEADE', 'FORT GEORGE G MEADE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (471, 1, 'LAND O LAKES', 'LAND O LAKES', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (472, 1, 'LAND O''LAKES', 'LAND O LAKES', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (473, 1, 'M C B H KANEOHE BAY', 'M C B H KANEOHE BAY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (474, 1, 'MCBH KANEOHE BAY', 'M C B H KANEOHE BAY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (475, 1, 'N VAN', 'NORTH VANCOUVER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (476, 1, 'N VANCOUVER', 'NORTH VANCOUVER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (477, 1, 'NO VANCOUVER', 'NORTH VANCOUVER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (478, 1, 'NORTH VANCOUVER', 'NORTH VANCOUVER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (479, 1, 'O BRIEN', 'O BRIEN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (480, 1, 'O''BRIEN', 'O BRIEN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (481, 1, 'O FALLON', 'O FALLON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (482, 1, 'O''FALLON', 'O FALLON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (483, 1, 'O NEALS', 'O NEALS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (484, 1, 'O''NEALS', 'O NEALS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (485, 1, 'ROUND O', 'ROUND O', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (486, 1, 'S COFFEYVILLE', 'SOUTH COFFEYVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (487, 1, 'SOUTH COFFEYVILLE', 'SOUTH COFFEYVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (488, 1, 'U S A F ACADEMY', 'U S A F ACADEMY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (489, 1, 'USAF ACADEMY', 'U S A F ACADEMY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (490, 1, 'W VAN', 'WEST VANCOUVER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (491, 1, 'W VANCOUVER', 'WEST VANCOUVER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (492, 1, 'WEST VANCOUVER', 'WEST VANCOUVER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (493, 1, 'AU GRES', 'AU GRES', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (494, 1, 'AU SABLE FORKS', 'AU SABLE FORKS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (495, 1, 'AU SABLE FRKS', 'AU SABLE FORKS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (496, 1, 'AU TRAIN', 'AU TRAIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (497, 1, 'AVON BY THE SEA', 'AVON BY THE SEA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (498, 1, 'AVON BY SEA', 'AVON BY THE SEA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (499, 1, 'BAYOU LA BATRE', 'BAYOU LA BATRE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (500, 1, 'BIRD IN HAND', 'BIRD IN HAND', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (501, 1, 'CAMDEN ON GAULEY', 'CAMDEN ON GAULEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (502, 1, 'CARDIFF BY THE SEA', 'CARDIFF BY THE SEA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (503, 1, 'CARDIFF BY SEA', 'CARDIFF BY THE SEA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (504, 1, 'CASTLETON ON HUDSON', 'CASTLETON ON HUDSON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (505, 1, 'CAVE IN ROCK', 'CAVE IN ROCK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (506, 1, 'CORNWALL ON HUDSON', 'CORNWALL ON HUDSON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (507, 1, 'CROTON ON HUDSON', 'CROTON ON HUDSON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (508, 1, 'DE BEQUE', 'DE BEQUE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (509, 1, 'DE BERRY', 'DE BERRY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (510, 1, 'DE FOREST', 'DE FOREST', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (511, 1, 'DE GRAFF', 'DE GRAFF', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (512, 1, 'DE KALB', 'DE KALB', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (513, 1, 'DE KALB JUNCTION', 'DE KALB JUNCTION', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (514, 1, 'DE LAND', 'DE LAND', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (515, 1, 'DE LEON', 'DE LEON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (516, 1, 'DE LEON SPRINGS', 'DE LEON SPRINGS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (517, 1, 'DE MOSSVILLE', 'DE MOSSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (518, 1, 'DE PERE', 'DE PERE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (519, 1, 'DE PEYSTER', 'DE PEYSTER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (520, 1, 'DE QUEEN', 'DE QUEEN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (521, 1, 'DE RUYTER', 'DE RUYTER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (522, 1, 'DE SMET', 'DE SMET', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (523, 1, 'DE SOTO', 'DE SOTO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (524, 1, 'DE TOUR VILLAGE', 'DE TOUR VILLAGE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (525, 1, 'DE VALLS BLUFF', 'DE VALLS BLUFF', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (526, 1, 'VALLS BLUFF', 'DE VALLS BLUFF', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (527, 1, 'DE WITT', 'DE WITT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (528, 1, 'DE YOUNG', 'DE YOUNG', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (529, 1, 'DU BOIS', 'DU BOIS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (530, 1, 'DU PONT', 'DU PONT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (531, 1, 'DU QUOIN', 'DU QUOIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (532, 1, 'E MC KEESPORT', 'EAST MC KEESPORT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (533, 1, 'E MCKEESPORT', 'EAST MC KEESPORT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (534, 1, 'EAST MC KEESPORT', 'EAST MC KEESPORT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (535, 1, 'EAST MCKEESPORT', 'EAST MC KEESPORT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (536, 1, 'EL CAJON', 'EL CAJON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (537, 1, 'EL CAMPO', 'EL CAMPO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (538, 1, 'EL CENTRO', 'EL CENTRO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (539, 1, 'EL CERRITO', 'EL CERRITO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (540, 1, 'EL DORADO', 'EL DORADO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (541, 1, 'EL DORADO HILLS', 'EL DORADO HILLS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (542, 1, 'EL DORADO SPRINGS', 'EL DORADO SPRINGS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (543, 1, 'EL MIRAGE', 'EL MIRAGE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (544, 1, 'EL MONTE', 'EL MONTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (545, 1, 'EL NIDO', 'EL NIDO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (546, 1, 'EL PASO', 'EL PASO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (547, 1, 'EL PRADO', 'EL PRADO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (548, 1, 'EL RENO', 'EL RENO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (549, 1, 'EL RITO', 'EL RITO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (550, 1, 'EL SEGUNDO', 'EL SEGUNDO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (551, 1, 'EL SOBRANTE', 'EL SOBRANTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (552, 1, 'FALLS OF ROUGH', 'FALLS OF ROUGH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (553, 1, 'FOND DU LAC', 'FOND DU LAC', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (554, 1, 'FORKS OF SALMON', 'FORKS OF SALMON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (555, 1, 'FORT MC COY', 'FORT MC COY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (556, 1, 'FORT MCCOY', 'FORT MC COY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (557, 1, 'FORT MC KAVETT', 'FORT MC KAVETT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (558, 1, 'FORT MCKAVETT', 'FORT MC KAVETT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (559, 1, 'FT MITCHELL', 'FORT MITCHELL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (560, 1, 'FORT MITCHELL', 'FORT MITCHELL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (561, 1, 'FT MYER', 'FORT MYER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (562, 1, 'FORT MYER', 'FORT MYER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (563, 1, 'FT WARREN AFB', 'FORT WARREN AFB', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (564, 1, 'FORT WARREN AFB', 'FORT WARREN AFB', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (565, 1, 'HASTINGS ON HUDSON', 'HASTINGS ON HUDSON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (566, 1, 'HAVRE DE GRACE', 'HAVRE DE GRACE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (567, 1, 'HI HAT', 'HI HAT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (568, 1, 'HO HO KUS', 'HO HO KUS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (569, 1, 'HOWEY IN THE HILLS', 'HOWEY IN THE HILLS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (570, 1, 'HOWEY IN HILLS', 'HOWEY IN THE HILLS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (571, 1, 'ISLE LA MOTTE', 'ISLE LA MOTTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (572, 1, 'ISLE OF PALMS', 'ISLE OF PALMS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (573, 1, 'ISLE OF SPRINGS', 'ISLE OF SPRINGS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (574, 1, 'JAY EM', 'JAY EM', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (575, 1, 'KING OF PRUSSIA', 'KING OF PRUSSIA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (576, 1, 'LA BARGE', 'LA BARGE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (577, 1, 'LA BELLE', 'LA BELLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (578, 1, 'LA CANADA FLINTRIDGE', 'LA CANADA FLINTRIDGE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (579, 1, 'LA CENTER', 'LA CENTER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (580, 1, 'LA CONNER', 'LA CONNER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (581, 1, 'LA COSTE', 'LA COSTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (582, 1, 'LA CRESCENT', 'LA CRESCENT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (583, 1, 'LA CRESCENTA', 'LA CRESCENTA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (584, 1, 'LA CROSSE', 'LA CROSSE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (585, 1, 'LA FARGE', 'LA FARGE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (586, 1, 'LA FARGEVILLE', 'LA FARGEVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (587, 1, 'LA FAYETTE', 'LA FAYETTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (588, 1, 'LA FERIA', 'LA FERIA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (589, 1, 'LA FOLLETTE', 'LA FOLLETTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (590, 1, 'LA FONTAINE', 'LA FONTAINE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (591, 1, 'LA GRANDE', 'LA GRANDE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (592, 1, 'LA GRANGE', 'LA GRANGE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (593, 1, 'LA GRANGE PARK', 'LA GRANGE PARK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (594, 1, 'LA HABRA', 'LA HABRA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (595, 1, 'LA HARPE', 'LA HARPE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (596, 1, 'LA HONDA', 'LA HONDA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (597, 1, 'LA JARA', 'LA JARA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (598, 1, 'LA JOLLA', 'LA JOLLA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (599, 1, 'LA JOSE', 'LA JOSE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (600, 1, 'LA JOYA', 'LA JOYA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (601, 1, 'LA JUNTA', 'LA JUNTA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (602, 1, 'LA LOMA', 'LA LOMA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (603, 1, 'LA LUZ', 'LA LUZ', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (604, 1, 'LA MADERA', 'LA MADERA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (605, 1, 'LA MARQUE', 'LA MARQUE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (606, 1, 'LA MESA', 'LA MESA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (607, 1, 'LA MIRADA', 'LA MIRADA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (608, 1, 'LA MOILLE', 'LA MOILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (609, 1, 'LA MONTE', 'LA MONTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (610, 1, 'LA MOTTE', 'LA MOTTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (611, 1, 'LA PALMA', 'LA PALMA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (612, 1, 'LA PINE', 'LA PINE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (613, 1, 'LA PLACE', 'LA PLACE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (614, 1, 'LA PLATA', 'LA PLATA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (615, 1, 'LA PORTE', 'LA PORTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (616, 1, 'LA PORTE CITY', 'LA PORTE CITY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (617, 1, 'LA PRAIRIE', 'LA PRAIRIE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (618, 1, 'LA PUENTE', 'LA PUENTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (619, 1, 'LA QUINTA', 'LA QUINTA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (620, 1, 'LA RUE', 'LA RUE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (621, 1, 'LA RUSSELL', 'LA RUSSELL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (622, 1, 'LA SALLE', 'LA SALLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (623, 1, 'LA VALLE', 'LA VALLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (624, 1, 'LA VERGNE', 'LA VERGNE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (625, 1, 'LA VERKIN', 'LA VERKIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (626, 1, 'LA VERNE', 'LA VERNE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (627, 1, 'LA VERNIA', 'LA VERNIA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (628, 1, 'LA VETA', 'LA VETA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (629, 1, 'LA VISTA', 'LA VISTA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (630, 1, 'LAC DU FLAMBEAU', 'LAC DU FLAMBEAU', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (631, 1, 'LAKE IN THE HILLS', 'LAKE IN THE HILLS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (632, 1, 'LAKE IN HILLS', 'LAKE IN THE HILLS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (633, 1, 'LE CENTER', 'LE CENTER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (634, 1, 'LE CLAIRE', 'LE CLAIRE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (635, 1, 'LE GRAND', 'LE GRAND', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (636, 1, 'LE MARS', 'LE MARS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (637, 1, 'LE RAYSVILLE', 'LE RAYSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (638, 1, 'LE ROY', 'LE ROY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (639, 1, 'LE SUEUR', 'LE SUEUR', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (640, 1, 'LE VERNE', 'LU VERNE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (641, 1, 'LU VERNE', 'LU VERNE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (642, 1, 'MARINE ON SAINT CROIX', 'MARINE ON SAINT CROIX', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (643, 1, 'MC ADENVILLE', 'MC ADENVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (644, 1, 'MCADENVILLE', 'MC ADENVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (645, 1, 'MC ALISTER', 'MC ALISTER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (646, 1, 'MCALISTER', 'MC ALISTER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (647, 1, 'MC ALISTERVILLE', 'MC ALISTERVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (648, 1, 'MCALISTERVILLE', 'MC ALISTERVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (649, 1, 'MC ALPIN', 'MC ALPIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (650, 1, 'MCALPIN', 'MC ALPIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (651, 1, 'MC ANDREWS', 'MC ANDREWS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (652, 1, 'MCANDREWS', 'MC ANDREWS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (653, 1, 'MC ARTHUR', 'MC ARTHUR', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (654, 1, 'MCARTHUR', 'MC ARTHUR', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (655, 1, 'MC BAIN', 'MC BAIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (656, 1, 'MCBAIN', 'MC BAIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (657, 1, 'MC BEE', 'MC BEE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (658, 1, 'MCBEE', 'MC BEE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (659, 1, 'MC CALL CREEK', 'MC CALL CREEK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (660, 1, 'MCCALL CREEK', 'MC CALL CREEK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (661, 1, 'MC CALLA', 'MC CALLA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (662, 1, 'MCCALLA', 'MC CALLA', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (663, 1, 'MC CALLSBURG', 'MC CALLSBURG', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (664, 1, 'MCCALLSBURG', 'MC CALLSBURG', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (665, 1, 'MC CAMEY', 'MC CAMEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (666, 1, 'MCCAMEY', 'MC CAMEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (667, 1, 'MC CARLEY', 'MC CARLEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (668, 1, 'MCCARLEY', 'MC CARLEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (669, 1, 'MC CARR', 'MC CARR', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (670, 1, 'MCCARR', 'MC CARR', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (671, 1, 'MC CASKILL', 'MC CASKILL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (672, 1, 'MCCASKILL', 'MC CASKILL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (673, 1, 'MC CAULLEY', 'MC CAULLEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (674, 1, 'MCCAULLEY', 'MC CAULLEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (675, 1, 'MC CAYSVILLE', 'MC CAYSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (676, 1, 'MCCAYSVILLE', 'MC CAYSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (677, 1, 'MC CLAVE', 'MC CLAVE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (678, 1, 'MCCLAVE', 'MC CLAVE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (679, 1, 'MC CLELLAND', 'MC CLELLAND', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (680, 1, 'MCCLELLAND', 'MC CLELLAND', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (681, 1, 'MC CLELLANDTOWN', 'MC CLELLANDTOWN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (682, 1, 'MCCLELLANDTOWN', 'MC CLELLANDTOWN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (683, 1, 'MC CLELLANVILLE', 'MC CLELLANVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (684, 1, 'MCCLELLANVILLE', 'MC CLELLANVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (685, 1, 'MC CLURE', 'MC CLURE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (686, 1, 'MCCLURE', 'MC CLURE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (687, 1, 'MC CLURG', 'MC CLURG', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (688, 1, 'MCCLURG', 'MC CLURG', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (689, 1, 'MC COLL', 'MC COLL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (690, 1, 'MCCOLL', 'MC COLL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (691, 1, 'MC COMB', 'MC COMB', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (692, 1, 'MCCOMB', 'MC COMB', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (693, 1, 'MC CONNELL', 'MC CONNELL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (694, 1, 'MCCONNELL', 'MC CONNELL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (695, 1, 'MC CONNELLS', 'MC CONNELLS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (696, 1, 'MCCONNELLS', 'MC CONNELLS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (697, 1, 'MC CONNELLSBURG', 'MC CONNELLSBURG', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (698, 1, 'MCCONNELLSBURG', 'MC CONNELLSBURG', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (699, 1, 'MC COOK', 'MC COOK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (700, 1, 'MCCOOK', 'MC COOK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (701, 1, 'MC COOL', 'MC COOL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (702, 1, 'MCCOOL', 'MC COOL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (703, 1, 'MC COOL JUNCTION', 'MC COOL JUNCTION', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (704, 1, 'MCCOOL JUNCTION', 'MC COOL JUNCTION', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (705, 1, 'MC CORDSVILLE', 'MC CORDSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (706, 1, 'MCCORDSVILLE', 'MC CORDSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (707, 1, 'MC CORMICK', 'MC CORMICK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (708, 1, 'MCCORMICK', 'MC CORMICK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (709, 1, 'MC COY', 'MC COY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (710, 1, 'MCCOY', 'MC COY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (711, 1, 'MC CRACKEN', 'MC CRACKEN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (712, 1, 'MCCRACKEN', 'MC CRACKEN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (713, 1, 'MC CRORY', 'MC CRORY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (714, 1, 'MCCRORY', 'MC CRORY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (715, 1, 'MC CUNE', 'MC CUNE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (716, 1, 'MCCUNE', 'MC CUNE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (717, 1, 'MC CUTCHENVILLE', 'MC CUTCHENVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (718, 1, 'MCCUTCHENVILLE', 'MC CUTCHENVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (719, 1, 'MC DADE', 'MC DADE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (720, 1, 'MCDADE', 'MC DADE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (721, 1, 'MC DANIELS', 'MC DANIELS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (722, 1, 'MCDANIELS', 'MC DANIELS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (723, 1, 'MC DAVID', 'MC DAVID', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (724, 1, 'MCDAVID', 'MC DAVID', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (725, 1, 'MC DERMOTT', 'MC DERMOTT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (726, 1, 'MCDERMOTT', 'MC DERMOTT', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (727, 1, 'MC DONALD', 'MC DONALD', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (728, 1, 'MCDONALD', 'MC DONALD', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (729, 1, 'MC DONOUGH', 'MC DONOUGH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (730, 1, 'MCDONOUGH', 'MC DONOUGH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (731, 1, 'MC DOWELL', 'MC DOWELL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (732, 1, 'MCDOWELL', 'MC DOWELL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (733, 1, 'MC EWEN', 'MC EWEN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (734, 1, 'MCEWEN', 'MC EWEN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (735, 1, 'MC FALL', 'MC FALL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (736, 1, 'MCFALL', 'MC FALL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (737, 1, 'MC FARLAND', 'MC FARLAND', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (738, 1, 'MCFARLAND', 'MC FARLAND', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (739, 1, 'MC GAHEYSVILLE', 'MC GAHEYSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (740, 1, 'MCGAHEYSVILLE', 'MC GAHEYSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (741, 1, 'MC GEE', 'MC GEE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (742, 1, 'MCGEE', 'MC GEE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (743, 1, 'MC GEHEE', 'MC GEHEE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (744, 1, 'MCGEHEE', 'MC GEHEE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (745, 1, 'MC GRADY', 'MC GRADY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (746, 1, 'MCGRADY', 'MC GRADY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (747, 1, 'MC GRATH', 'MC GRATH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (748, 1, 'MCGRATH', 'MC GRATH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (749, 1, 'MC GRAW', 'MC GRAW', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (750, 1, 'MCGRAW', 'MC GRAW', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (751, 1, 'MC GREGOR', 'MC GREGOR', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (752, 1, 'MCGREGOR', 'MC GREGOR', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (753, 1, 'MC HENRY', 'MC HENRY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (754, 1, 'MCHENRY', 'MC HENRY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (755, 1, 'MC INTIRE', 'MC INTIRE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (756, 1, 'MCINTIRE', 'MC INTIRE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (757, 1, 'MC INTOSH', 'MC INTOSH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (758, 1, 'MCINTOSH', 'MC INTOSH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (759, 1, 'MC INTYRE', 'MC INTYRE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (760, 1, 'MCINTYRE', 'MC INTYRE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (761, 1, 'MC KEAN', 'MC KEAN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (762, 1, 'MCKEAN', 'MC KEAN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (763, 1, 'MC KEE', 'MC KEE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (764, 1, 'MCKEE', 'MC KEE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (765, 1, 'MC KEES ROCKS', 'MC KEES ROCKS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (766, 1, 'MCKEES ROCKS', 'MC KEES ROCKS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (767, 1, 'MC KENNEY', 'MC KENNEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (768, 1, 'MCKENNEY', 'MC KENNEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (769, 1, 'MC KENZIE', 'MC KENZIE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (770, 1, 'MCKENZIE', 'MC KENZIE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (771, 1, 'MC KITTRICK', 'MC KITTRICK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (772, 1, 'MCKITTRICK', 'MC KITTRICK', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (773, 1, 'MC LAIN', 'MC LAIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (774, 1, 'MCLAIN', 'MC LAIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (775, 1, 'MC LAUGHLIN', 'MC LAUGHLIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (776, 1, 'MCLAUGHLIN', 'MC LAUGHLIN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (777, 1, 'MC LEAN', 'MC LEAN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (778, 1, 'MCLEAN', 'MC LEAN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (779, 1, 'MC LEANSBORO', 'MC LEANSBORO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (780, 1, 'MCLEANSBORO', 'MC LEANSBORO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (781, 1, 'MC LEANSVILLE', 'MC LEANSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (782, 1, 'MCLEANSVILLE', 'MC LEANSVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (783, 1, 'MC LEOD', 'MC LEOD', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (784, 1, 'MCLEOD', 'MC LEOD', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (785, 1, 'MC LOUTH', 'MC LOUTH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (786, 1, 'MCLOUTH', 'MC LOUTH', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (787, 1, 'MC MILLAN', 'MC MILLAN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (788, 1, 'MCMILLAN', 'MC MILLAN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (789, 1, 'MC MINNVILLE', 'MC MINNVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (790, 1, 'MCMINNVILLE', 'MC MINNVILLE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (791, 1, 'MC NABB', 'MC NABB', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (792, 1, 'MCNABB', 'MC NABB', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (793, 1, 'MC NEAL', 'MC NEAL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (794, 1, 'MCNEAL', 'MC NEAL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (795, 1, 'MC NEIL', 'MC NEIL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (796, 1, 'MCNEIL', 'MC NEIL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (797, 1, 'MC QUEENEY', 'MC QUEENEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (798, 1, 'MCQUEENEY', 'MC QUEENEY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (799, 1, 'MC RAE', 'MC RAE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (800, 1, 'MCRAE', 'MC RAE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (801, 1, 'MC ROBERTS', 'MC ROBERTS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (802, 1, 'MCROBERTS', 'MC ROBERTS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (803, 1, 'MC SHERRYSTOWN', 'MC SHERRYSTOWN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (804, 1, 'MCSHERRYSTOWN', 'MC SHERRYSTOWN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (805, 1, 'MC VEYTOWN', 'MC VEYTOWN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (806, 1, 'MCVEYTOWN', 'MC VEYTOWN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (807, 1, 'MEADOWS OF DAN', 'MEADOWS OF DAN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (808, 1, 'MI WUK VILLAGE', 'MI WUK VILLAGE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (809, 1, 'MOUTH OF WILSON', 'MOUTH OF WILSON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (810, 1, 'MT ZION', 'MOUNT ZION', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (811, 1, 'MOUNT ZION', 'MOUNT ZION', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (812, 1, 'PE ELL', 'PE ELL', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (813, 1, 'POINT OF ROCKS', 'POINT OF ROCKS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (814, 1, 'PONCE DE LEON', 'PONCE DE LEON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (815, 1, 'PRAIRIE DU CHIEN', 'PRAIRIE DU CHIEN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (816, 1, 'PRAIRIE DU ROCHER', 'PRAIRIE DU ROCHER', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (817, 1, 'PRAIRIE DU SAC', 'PRAIRIE DU SAC', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (818, 1, 'RANCHO SANTA FE', 'RANCHO SANTA FE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (819, 1, 'RANCHOS DE TAOS', 'RANCHOS DE TAOS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (820, 1, 'SAINT JO', 'SAINT JO', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (821, 1, 'SANTA FE', 'SANTA FE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (822, 1, 'SANTA FE SPRINGS', 'SANTA FE SPRINGS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (823, 1, 'S EL MONTE', 'SOUTH EL MONTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (824, 1, 'SOUTH EL MONTE', 'SOUTH EL MONTE', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (825, 1, 'SAINT COLUMBANS', 'SAINT COLUMBANS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (826, 1, 'ST COLUMBANS', 'SAINT COLUMBANS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (827, 1, 'SAINT JOHN', 'SAINT JOHN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (828, 1, 'ST JOHN', 'SAINT JOHN', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (829, 1, 'SAINT THOMAS', 'SAINT THOMAS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (830, 1, 'ST THOMAS', 'SAINT THOMAS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (831, 1, 'TOWNSHIP OF WASHINGTON', 'TOWNSHIP OF WASHINGTON', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (832, 1, 'TRUTH OR CONSEQUENCES', 'TRUTH OR CONSEQUENCES', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (833, 1, 'TY TY', 'TY TY', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (834, 1, 'VILLAGE OF NAGOG WOODS', 'VILLAGE OF NAGOG WOODS', 10, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (7, 1, 'AK', 'AK', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (9, 3, 'AK', 'AK', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (10, 1, 'AL', 'AL', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (12, 3, 'AL', 'AL', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (13, 1, 'ALA', 'AL', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (15, 3, 'ALA', 'AL', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (16, 1, 'ALABAMA', 'AL', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (18, 1, 'ALASKA', 'AK', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (22, 1, 'AR', 'AR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (24, 3, 'AR', 'AR', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (25, 1, 'ARIZ', 'AZ', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (27, 3, 'ARIZ', 'AZ', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (28, 1, 'ARIZONA', 'AZ', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (30, 1, 'ARK', 'AR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (32, 3, 'ARK', 'AR', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (33, 1, 'ARKANSAS', 'AR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (35, 1, 'AZ', 'AZ', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (37, 3, 'AZ', 'AZ', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (46, 1, 'CA', 'CA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (48, 3, 'CA', 'CA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (51, 1, 'CALIF', 'CA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (53, 3, 'CALIF', 'CA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (54, 1, 'CALIFORNIA', 'CA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (58, 1, 'CO', 'CO', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (60, 3, 'CO', 'CO', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (63, 1, 'COLORADO', 'CO', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (65, 1, 'CONN', 'CT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (67, 3, 'CONN', 'CT', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (68, 1, 'CONNECTICUT', 'CT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (70, 1, 'CT', 'CT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (72, 3, 'CT', 'CT', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (73, 1, 'DC', 'DC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (75, 3, 'DC', 'DC', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (76, 1, 'DE', 'DE', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (78, 1, 'DEL', 'DE', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (80, 3, 'DEL', 'DE', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (81, 1, 'DELAWARE', 'DE', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (83, 1, 'DC', 'DC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (86, 1, 'FL', 'FL', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (88, 3, 'FL', 'FL', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (89, 1, 'FLA', 'FL', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (91, 3, 'FLA', 'FL', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (92, 1, 'FLORIDA', 'FL', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (95, 1, 'GA', 'GA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (97, 3, 'GA', 'GA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (98, 1, 'GEORGIA', 'GA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (100, 1, 'HAWAII', 'HI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (102, 1, 'HI', 'HI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (104, 3, 'HI', 'HI', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (105, 1, 'IA', 'IA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (107, 3, 'IA', 'IA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (108, 1, 'ID', 'ID', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (110, 3, 'ID', 'ID', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (111, 1, 'IDAHO', 'ID', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (113, 1, 'IL', 'IL', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (115, 3, 'IL', 'IL', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (118, 1, 'ILL', 'IL', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (120, 3, 'ILL', 'IL', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (121, 1, 'ILLINOIS', 'IL', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (123, 1, 'IN', 'IN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (125, 3, 'IN', 'IN', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (126, 1, 'IND', 'IN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (128, 2, 'IND', 'IN', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (129, 1, 'INDIANA', 'IN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (131, 1, 'IOWA', 'IA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (133, 1, 'KANSAS', 'KS', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (135, 1, 'KENT', 'KY', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (137, 3, 'KENT', 'KY', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (138, 1, 'KENTUCKY', 'KY', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (140, 1, 'KS', 'KS', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (142, 3, 'KS', 'KS', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (143, 1, 'KY', 'KY', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (145, 3, 'KY', 'KY', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (146, 1, 'LA', 'LA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (148, 3, 'LA', 'LA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (151, 1, 'LOUISIANA', 'LA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (153, 1, 'MA', 'MA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (155, 3, 'MA', 'MA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (157, 1, 'MAINE', 'ME', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (161, 1, 'MARYLAND', 'MD', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (163, 1, 'MASS', 'MA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (165, 3, 'MASS', 'MA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (166, 1, 'MASSACHUSETTS', 'MA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (171, 1, 'MD', 'MD', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (173, 3, 'MD', 'MD', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (174, 1, 'ME', 'ME', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (176, 3, 'ME', 'ME', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (177, 1, 'MI', 'MI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (179, 3, 'MI', 'MI', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (180, 1, 'MICH', 'MI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (182, 3, 'MICH', 'MI', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (183, 1, 'MICHIGAN', 'MI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (185, 1, 'MINN', 'MN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (187, 3, 'MINN', 'MN', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (188, 1, 'MINNESOTA', 'MN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (190, 1, 'MISSISSIPPI', 'MS', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (192, 1, 'MISSOURI', 'MO', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (194, 1, 'MN', 'MN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (196, 3, 'MN', 'MN', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (197, 1, 'MO', 'MO', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (199, 3, 'MO', 'MO', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (200, 1, 'MONT', 'MT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (202, 3, 'MONT', 'MT', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (203, 1, 'MONTANA', 'MT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (205, 1, 'MT', 'MT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (207, 3, 'MT', 'MT', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (208, 1, 'MS', 'MS', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (210, 3, 'MS', 'MS', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (211, 1, 'N CAROLINA', 'NC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (213, 1, 'N DAKOTA', 'ND', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (218, 1, 'NC', 'NC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (220, 3, 'NC', 'NC', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (221, 1, 'ND', 'ND', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (223, 3, 'ND', 'ND', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (224, 1, 'NE', 'NE', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (226, 3, 'NE', 'NE', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (227, 1, 'NEB', 'NE', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (229, 3, 'NEB', 'NE', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (230, 1, 'NEBRASKA', 'NE', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (232, 1, 'NEV', 'NV', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (234, 3, 'NEV', 'NV', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (235, 1, 'NEVADA', 'NV', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (239, 1, 'NEW HAMPSHIRE', 'NH', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (241, 1, 'NEW JERSEY', 'NJ', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (243, 1, 'NEW MEXICO', 'NM', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (245, 1, 'NEW YORK', 'NY', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (252, 1, 'NH', 'NH', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (254, 3, 'NH', 'NH', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (255, 1, 'NJ', 'NJ', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (257, 3, 'NJ', 'NJ', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (261, 1, 'NM', 'NM', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (263, 3, 'NM', 'NM', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (264, 1, 'NORTH CAROLINA', 'NC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (266, 1, 'NORTH DAKOTA', 'ND', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (288, 1, 'NV', 'NV', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (290, 3, 'NV', 'NV', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (291, 1, 'NY', 'NY', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (293, 3, 'NY', 'NY', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (294, 1, 'OH', 'OH', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (296, 3, 'OH', 'OH', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (297, 1, 'OHIO', 'OH', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (299, 1, 'OK', 'OK', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (301, 3, 'OK', 'OK', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (302, 1, 'OKLA', 'OK', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (304, 3, 'OKLA', 'OK', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (305, 1, 'OKLAHOMA', 'OK', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (315, 1, 'OR', 'OR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (317, 3, 'OR', 'OR', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (318, 1, 'ORE', 'OR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (320, 3, 'ORE', 'OR', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (321, 1, 'OREGON', 'OR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (323, 1, 'PA', 'PA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (325, 3, 'PA', 'PA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (332, 1, 'PENN', 'PA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (334, 3, 'PENN', 'PA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (335, 1, 'PENNA', 'PA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (337, 3, 'PENNA', 'PA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (338, 1, 'PENNSYLVANIA', 'PA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (343, 1, 'PR', 'PR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (345, 3, 'PR', 'PR', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (348, 1, 'PUERTO RICO', 'PR', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (355, 1, 'RHODE ISLAND', 'RI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (357, 1, 'RI', 'RI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (359, 3, 'RI', 'RI', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (360, 1, 'S CAROLINA', 'SC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (362, 1, 'S DAKOTA', 'SD', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (368, 1, 'SC', 'SC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (370, 3, 'SC', 'SC', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (371, 1, 'SD', 'SD', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (373, 3, 'SD', 'SD', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (377, 1, 'SOUTH CAROLINA', 'SC', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (379, 1, 'SOUTH DAKOTA', 'SD', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (381, 1, 'TENN', 'TN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (383, 3, 'TENN', 'TN', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (384, 1, 'TENNESSEE', 'TN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (390, 1, 'TEX', 'TX', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (392, 3, 'TEX', 'TX', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (393, 1, 'TEXAS', 'TX', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (395, 1, 'TN', 'TN', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (397, 3, 'TN', 'TN', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (398, 1, 'TX', 'TX', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (400, 3, 'TX', 'TX', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (408, 1, 'UT', 'UT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (410, 3, 'UT', 'UT', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (411, 1, 'UTAH', 'UT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (413, 1, 'VA', 'VA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (415, 3, 'VA', 'VA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (416, 1, 'VERMONT', 'VT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (418, 1, 'VIRGINIA', 'VA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (420, 1, 'VT', 'VT', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (422, 3, 'VT', 'VT', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (423, 1, 'W VIRGINIA', 'WV', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (425, 1, 'WA', 'WA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (427, 3, 'WA', 'WA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (428, 1, 'WASH', 'WA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (430, 3, 'WASH', 'WA', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (431, 1, 'WASHINGTON', 'WA', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (433, 1, 'WEST VIRGINIA', 'WV', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (435, 1, 'WI', 'WI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (437, 3, 'WI', 'WI', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (438, 1, 'WISC', 'WI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (440, 3, 'WISC', 'WI', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (441, 1, 'WISCONSIN', 'WI', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (443, 1, 'WV', 'WV', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (445, 3, 'WV', 'WV', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (446, 1, 'WY', 'WY', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (448, 3, 'WY', 'WY', 6, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (449, 1, 'WYOMING', 'WY', 11, false);
-INSERT INTO pagc_gaz (id, seq, word, stdword, token, is_custom) VALUES (835, 1, 'ST LOUIS', 'SAINT LOUIS', 7, false);
-
-SELECT pg_catalog.setval('pagc_gaz_id_seq', (SELECT greatest((SELECT MAX(id) FROM pagc_gaz),50000)), true);
-
--- start pagc_lex --
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2934, 1, 'BAY STATE', 'BAY STATE', 5, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2389, 2, 'STAT', 'STA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2382, 2, 'STA', 'STA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2403, 2, 'STATION', 'STA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2407, 2, 'STATN', 'STA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2394, 1, 'STATE HIGHWAY', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2368, 1, 'ST HIGHWAY', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2393, 1, 'STATE HI', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2369, 1, 'ST HWY', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2414, 1, 'STHWY', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2415, 1, 'STHY', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2367, 1, 'ST HI', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2413, 1, 'STHW', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2370, 1, 'ST HY', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2396, 1, 'STATE HY', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2373, 1, 'ST RD', 'STATE RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (212, 2, 'AND', 'AND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2395, 1, 'STATE HWY', 'STATE HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (413, 2, 'BYP', 'BYP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2397, 1, 'STATE RD', 'STATE RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2374, 1, 'ST ROAD', 'STATE RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1561, 2, 'MANORS', 'MANOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2398, 1, 'STATE ROAD', 'STATE RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2377, 1, 'ST RT', 'STATE RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1937, 1, 'PR ROUTE', 'STATE RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2399, 1, 'STATE ROUTE', 'STATE RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2375, 1, 'ST ROUTE', 'STATE RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2401, 1, 'STATE RTE', 'STATE RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2400, 1, 'STATE RT', 'STATE RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2379, 1, 'ST RTE', 'STATE RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2493, 1, 'TERR', 'TER', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2488, 1, 'TER', 'TER', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2555, 1, 'THRUWAY', 'TRWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2556, 1, 'THWY', 'TRWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2554, 1, 'THROUGHWAY', 'TRWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2599, 2, 'TPK', 'TPKE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2683, 2, 'TURNPK', 'TPKE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2681, 2, 'TURNPIKE', 'TPKE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2601, 2, 'TPKE', 'TPKE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2679, 2, 'TURN', 'TPKE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2496, 1, 'TFWY', 'TRFY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2616, 1, 'TRAIL', 'TRL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2631, 1, 'TRAILS', 'TRL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2559, 1, 'TL', 'TRL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2674, 1, 'TUNEL', 'TUNL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2675, 1, 'TUNL', 'TUNL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2673, 1, 'TUN', 'TUNL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2676, 1, 'TUNNEL', 'TUNL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2569, 1, 'TNPKE', 'TPKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2568, 1, 'TNPK', 'TPKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2682, 1, 'TURNPK', 'TPKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2680, 1, 'TURNPIKE', 'TPKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2678, 1, 'TURN', 'TPKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2665, 1, 'TRNPK', 'TPKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2600, 1, 'TPKE', 'TPKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2598, 1, 'TPK', 'TPKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2768, 1, 'U S HY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2782, 1, 'UNITED STATES HWY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2764, 1, 'U S HGWY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2765, 1, 'U S HIGHWAY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2781, 1, 'UNITED STATES HIGHWAY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2807, 1, 'US HGWY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2808, 1, 'US HIGHWAY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2809, 1, 'US HIWAY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2810, 1, 'US HWY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2811, 1, 'US HY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2819, 1, 'USHW', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2820, 1, 'USHWY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2821, 1, 'USHY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2824, 1, 'USRT', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2825, 1, 'USRTE', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2816, 1, 'US RTE', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2814, 1, 'US ROUTE', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2770, 1, 'U S RT', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2805, 1, 'US', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2815, 1, 'US RT', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2763, 1, 'U S', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2769, 1, 'U S ROUTE', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2771, 1, 'U S RTE', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2823, 1, 'USROUTE', 'US RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2878, 2, 'VW', 'VW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2869, 1, 'VLGE', 'VLG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2866, 1, 'VLG', 'VLG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2865, 2, 'VL', 'VLG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2855, 1, 'VILLIAGE', 'VLG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2854, 1, 'VILLGE', 'VLG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2851, 1, 'VILLG', 'VLG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2846, 1, 'VILLAGE', 'VLG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2843, 1, 'VILLAG', 'VLG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2861, 2, 'VISTA', 'VIS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2859, 2, 'VIS', 'VIS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2856, 2, 'VILLIAGE', 'VLG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2838, 2, 'VILL', 'VLG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2847, 2, 'VILLAGE', 'VLG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2844, 2, 'VILLAG', 'VLG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2870, 2, 'VLGE', 'VLG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2852, 2, 'VILLG', 'VLG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2867, 2, 'VLG', 'VLG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2881, 1, 'WALK', 'WALK', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2903, 1, 'WK', 'WALK', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2884, 1, 'WALL', 'WALL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2914, 1, 'WY', 'WAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2915, 4, 'WY', 'WAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2888, 1, 'WAY', 'WAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (691, 2, 'CROSSING', 'XING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2918, 2, 'XING', 'XING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (692, 1, 'CROSSINGS', 'XING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (701, 1, 'CRSGS', 'XING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (704, 2, 'CRSSNG', 'XING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (700, 2, 'CRSG', 'XING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (688, 1, 'CROSS ROAD', 'XRD', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1762, 1, 'NORTH', 'N', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1764, 1, 'NORTH EAST', 'NE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1766, 1, 'NORTH WEST', 'NW', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1769, 1, 'NORTHEAST', 'NE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1771, 1, 'NTH', 'N', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1774, 1, 'NW', 'NW', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2931, 1, 'SERVICE DR', 'SVC DR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2932, 1, 'SERVICE DRIVE', 'SVC DR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2933, 1, 'SVC DR', 'SVC DR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2392, 2, 'STATE', 'STATE RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (59, 1, '20MI', 'TWENTY MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (60, 1, '21ST', '21', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (61, 2, '21ST', '21', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (62, 1, '22ND', '22', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (63, 2, '22ND', '22', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (64, 1, '23 MI', 'TWENTY THREE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (65, 1, '23 MILE', 'TWENTY THREE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (66, 1, '23MI', 'TWENTY THREE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (67, 1, '23RD', '23', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (68, 2, '23RD', '23', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (69, 1, '2MI', 'TWO MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2767, 1, 'U S HWY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (70, 1, '3 / 4', '3/4', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (71, 1, '3 / 8', '3/8', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (72, 1, '3 MI', 'THREE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (73, 1, '3 MILE', 'THREE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (75, 1, '3/8', '3/8', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (76, 1, '31ST', '31', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (77, 2, '31ST', '31', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (78, 1, '33RD', '33', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (79, 2, '33RD', '33', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (80, 1, '3MI', 'THREE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (81, 1, '3RD', '3', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (82, 2, '3RD', '3', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (83, 1, '4 CO', 'FOUR CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (84, 1, '4 CORNERS', 'FOUR CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (85, 1, '4 FG', 'FOUR FLAGS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (86, 1, '4 FLAGS', 'FOUR FLAGS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (87, 1, '4 MI', 'FOUR MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (88, 1, '4 MILE', 'FOUR MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (89, 1, '4 SEASONS', 'FOUR SEASONS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (90, 1, '4 SN', 'FOUR SEASONS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (91, 1, '41ST', '41', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (92, 2, '41ST', '41', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (93, 1, '43RD', '43', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (94, 2, '43RD', '43', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (95, 1, '4MI', 'FOUR MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (96, 1, '4WD', 'FOUR WHEEL DRIVE TRAIL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (97, 1, '4WD TRAIL', 'FOUR WHEEL DRIVE TRAIL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (98, 1, '4WD TRL', 'FOUR WHEEL DRIVE TRAIL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (99, 1, '5 CEDARS', 'FIVE CEDARS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (100, 1, '5 CO', 'FIVE CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (101, 1, '5 CORNERS', 'FIVE CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (102, 1, '5 MI', 'FIVE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (103, 1, '5 MILE', 'FIVE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (104, 1, '5 POINTS', 'FIVE POINTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (105, 1, '5 PT', 'FIVE POINTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (106, 1, '5 TO', 'FIVE TOWN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (107, 1, '51ST', '51', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (108, 2, '51ST', '51', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (109, 1, '53RD', '53', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (110, 2, '53RD', '53', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (111, 1, '5MI', 'FIVE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (112, 1, '6 FG', 'SIX FLAGS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (113, 1, '6 FLAGS', 'SIX FLAGS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (114, 1, '6 MI', 'SIX MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (115, 1, '6 MILE', 'SIX MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (116, 1, '61ST', '61', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (117, 2, '61ST', '61', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (118, 1, '63RD', '63', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (119, 2, '63RD', '63', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (120, 1, '6MI', 'SIX MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (121, 1, '7 CO', 'SEVEN CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (122, 2, '7 CO', 'SEVEN CORNERS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (123, 1, '7 CORNERS', 'SEVEN CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (124, 2, '7 CORNERS', 'SEVEN CORNERS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (125, 1, '7 MI', 'SEVEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (126, 1, '7 MILE', 'SEVEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (127, 1, '71ST', '71', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (128, 2, '71ST', '71', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (129, 1, '73RD', '73', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (130, 2, '73RD', '73', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (131, 1, '7MI', 'SEVEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (132, 1, '8 MI', 'EIGHT MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (133, 1, '8 MILE', 'EIGHT MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (134, 1, '81ST', '81', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (135, 2, '81ST', '81', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (136, 1, '83RD', '83', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (137, 2, '83RD', '83', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (138, 1, '8MI', 'EIGHT MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (139, 1, '9 MI', 'NINE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (140, 1, '9 MILE', 'NINE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (141, 1, '91ST', '91', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (142, 2, '91ST', '91', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (143, 1, '93RD', '93', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (144, 2, '93RD', '93', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (145, 1, '9MI', 'NINE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (146, 1, 'A', 'A', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (147, 2, 'A', 'A', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (148, 1, 'A F B', 'AIR FORCE BASE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (149, 2, 'A F B', 'AIR FORCE BASE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (150, 1, 'A F S', 'AIR FORCE BASE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (151, 2, 'A F S', 'AIR FORCE BASE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (152, 1, 'A LA DERECHA', 'A LA DERECHA', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (153, 4, 'AB', 'ABBEY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (154, 1, 'ABBEY', 'ABBEY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (155, 2, 'ABBEY', 'ABBEY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (156, 1, 'AC', 'ACRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (157, 1, 'ACAD', 'ACADEMY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (158, 1, 'ACADE', 'ACADEMIA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (159, 1, 'ACADEMIA', 'ACADEMIA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (160, 1, 'ACADEMY', 'ACADEMY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (161, 1, 'ACCESS', 'ACCESS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (162, 1, 'ACR', 'ACRES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (163, 2, 'ACR', 'ACRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (164, 3, 'ACR', 'ACRES', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (165, 1, 'ACRES', 'ACRES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (166, 2, 'ACRES', 'ACRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (74, 1, '3/4', '3/4', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (167, 3, 'ACRES', 'ACRES', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (168, 1, 'ACRS', 'ACRES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (169, 2, 'ACRS', 'ACRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (170, 3, 'ACRS', 'ACRES', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (171, 1, 'ACUE', 'ACUEDUCTO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (172, 1, 'ACUED', 'ACUEDUCTO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (173, 1, 'ACUEDUCTO', 'ACUEDUCTO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (174, 1, 'AEROPUERTO', 'AEROPUERTO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (175, 2, 'AEROPUERTO', 'AEROPUERTO', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (176, 1, 'AFB', 'AIR FORCE BASE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (177, 2, 'AFB', 'AIR FORCE BASE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (178, 1, 'AFLD', 'AIRPORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (179, 1, 'AFS', 'AIR FORCE BASE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (180, 2, 'AFS', 'AIR FORCE BASE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (181, 1, 'AIR FORCE BASE', 'AIR FORCE BASE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (182, 2, 'AIR FORCE BASE', 'AIR FORCE BASE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (183, 1, 'AIR FORCE STATION', 'AIR FORCE BASE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (184, 2, 'AIR FORCE STATION', 'AIR FORCE BASE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (185, 1, 'AIRFIELD', 'AIRPORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (186, 2, 'AIRFIELD', 'AIRPORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (187, 1, 'AIRPARK', 'AIRPORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (188, 2, 'AIRPARK', 'AIRPORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (189, 1, 'AIRPORT', 'AIRPORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (190, 2, 'AIRPORT', 'AIRPORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (191, 1, 'AIRSTRIP', 'AIRPORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (192, 2, 'AIRSTRIP', 'AIRPORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (193, 1, 'AIRSTRP', 'AIRPORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (194, 2, 'AIRSTRP', 'AIRPORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (198, 1, 'ALC', 'ALCOVE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (199, 1, 'ALD', 'A LA DERECHA', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (202, 2, 'ALLEY', 'ALLEY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (204, 1, 'ALT', 'ALTERNATE', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (205, 1, 'ALTERNATE', 'ALTERNATE', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (206, 1, 'ALTO', 'ALTO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (207, 2, 'ALTO', 'ALTOS', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (208, 1, 'ALTOS', 'ALTOS', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (209, 2, 'ALTOS', 'ALTOS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (213, 1, 'ANEX', 'ANNEX', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (215, 1, 'ANNEX', 'ANNEX', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (217, 1, 'ANNX', 'ANNEX', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (219, 1, 'ANX', 'ANNEX', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (221, 1, 'AP', 'APARTMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (222, 1, 'APART', 'APARTMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (223, 1, 'APARTEMENT', 'APARTEMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (224, 1, 'APARTMENT', 'APARTMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (225, 1, 'APARTMENTS', 'APARTMENTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (226, 1, 'APARTADO', 'BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (227, 1, 'APO', 'APO', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (228, 1, 'APP', 'APARTEMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (229, 1, 'APPART', 'APARTEMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (230, 1, 'APPT', 'APARTEMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (231, 1, 'APRK', 'AIRPORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (232, 1, 'APS', 'APARTMENTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (233, 1, 'APT', 'APARTMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (234, 1, 'APT NO', 'APARTMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (235, 1, 'APTMT', 'APARTMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (236, 1, 'APTS', 'APARTMENTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (237, 1, 'AR', 'ARRIERE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (242, 1, 'ARPT', 'AIRPORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (243, 2, 'ARPT', 'AIRPORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (244, 1, 'ARPTO', 'AIRPORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (245, 2, 'ARPTO', 'AIRPORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (246, 1, 'ARRIERE', 'ARRIERE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (247, 1, 'ARROYO', 'ARROYO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (248, 1, 'ARRYO', 'ARROYO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (249, 1, 'AT', 'AT', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (250, 1, 'ATPS', 'AUTOPISTA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (251, 1, 'ATPTA', 'AUTOPISTA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (252, 1, 'ATTN', 'ATTENTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (253, 1, 'AU', 'AUTOROUTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (254, 2, 'AU', 'AU', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (255, 1, 'AUT', 'AUTOROUTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (256, 1, 'AUTO', 'AUTOPISTA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (257, 2, 'AUTO', 'AUTO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (258, 1, 'AUTOPISTA', 'AUTOPISTA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (259, 1, 'AUTOROUTE', 'AUTOROUTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (261, 2, 'AV', 'AVANT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (262, 1, 'AVA', 'AVENIDA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (263, 1, 'AVANT', 'AVANT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (266, 1, 'AVENIDA', 'AVENIDA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (200, 1, 'ALLEE', 'ALY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (203, 1, 'ALLY', 'ALY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (195, 1, 'AL', 'ALY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (201, 1, 'ALLEY', 'ALY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (210, 1, 'ALY', 'ALY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (238, 1, 'ARC', 'ARC', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (240, 1, 'ARCADE', 'ARC', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (260, 1, 'AV', 'AVE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (269, 1, 'AVENUES', 'AVENUES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (270, 1, 'AVES', 'AVENUES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (273, 1, 'AVS', 'AVENUES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (274, 1, 'BA', 'BAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (275, 1, 'BAJO', 'BAJOS', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (276, 1, 'BAJOS', 'BAJOS', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (277, 1, 'BANK', 'BANK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (278, 1, 'BARRIO', 'BOROUGH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (279, 1, 'BASEMENT', 'BASEMENT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (280, 1, 'BASIN', 'BASIN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (281, 1, 'BASN', 'BASIN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (282, 1, 'BAY', 'BAY', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (283, 2, 'BAY', 'BAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (284, 3, 'BAY', 'BAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (285, 1, 'BAYOU', 'BAYOU', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (286, 1, 'BAZAAR', 'BAZAAR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (287, 1, 'BAZR', 'BAZAAR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (288, 1, 'BCH', 'BEACH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (291, 1, 'BDG', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (292, 2, 'BDG', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (293, 1, 'BDNG', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (294, 2, 'BDNG', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (295, 1, 'BDWY', 'BROADWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (297, 1, 'BEACH', 'BEACH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (299, 1, 'BEND', 'BEND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (301, 1, 'BETWEEN', 'BETWEEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (302, 1, 'BG', 'BURG', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (305, 1, 'BLD', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (306, 2, 'BLD', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (307, 1, 'BLDG', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (308, 2, 'BLDG', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (309, 1, 'BLDING', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (310, 2, 'BLDING', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (311, 1, 'BLDNG', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (312, 2, 'BLDNG', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (313, 1, 'BLF', 'BLUFF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (315, 1, 'BLG', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (316, 2, 'BLG', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (317, 1, 'BLUF', 'BLUFF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (318, 1, 'BLUFF', 'BLUFF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (322, 1, 'BLVR', 'BULEVAR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (323, 1, 'BND', 'BEND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (325, 1, 'BNK', 'BANK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (326, 1, 'BO', 'BOROUGH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (327, 2, 'BO', 'BOURG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (328, 1, 'BOITE', 'BOITE', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (329, 1, 'BOITE POSTALE', 'BOITE POSTALE', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (330, 1, 'BORO', 'BOROUGH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (331, 1, 'BOROUGH', 'BOROUGH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (333, 2, 'BOT', 'BOTTOM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (335, 2, 'BOTTM', 'BOTTOM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (337, 2, 'BOTTOM', 'BOTTOM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (341, 1, 'BOURG', 'BOURG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (342, 1, 'BOX', 'BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (343, 1, 'BOX NO', 'BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (346, 3, 'BP', 'BOITE POSTALE', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (347, 1, 'BR', 'BRANCH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (348, 1, 'BRANCH', 'BRANCH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (349, 1, 'BRDG', 'BRIDGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (350, 1, 'BRDGE', 'BRIDGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (351, 1, 'BRDWY', 'BROADWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (352, 1, 'BRG', 'BRIDGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (354, 1, 'BRIDGE', 'BRIDGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (355, 1, 'BRIDGES', 'BRIDGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (356, 1, 'BRK', 'BROOK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (357, 1, 'BROADWAY', 'BROADWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (358, 1, 'BROOK', 'BROOK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (359, 1, 'BRWY', 'BROADWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (360, 1, 'BSMNT', 'BASEMENT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (361, 1, 'BSMT', 'BASEMENT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (362, 1, 'BSPK', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (405, 1, 'BV', 'BLVD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (363, 1, 'BSRT', 'BUSINESS ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (364, 1, 'BSRTE', 'BUSINESS ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (365, 1, 'BST', 'BASEMENT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (366, 1, 'BTM', 'BOTTOM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (367, 1, 'BTWN', 'BETWEEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (368, 1, 'BUENA VISTA', 'BUENA VISTA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (369, 1, 'BUILD', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (370, 2, 'BUILD', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (371, 1, 'BUILDING', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (372, 2, 'BUILDING', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (373, 1, 'BUILDING NUMBER', '#', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (374, 1, 'BUILDNG', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (375, 2, 'BUILDNG', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (376, 1, 'BULDNG', 'BUILDING', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (377, 2, 'BULDNG', 'BUILDING', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (378, 1, 'BULEVAR', 'BULEVAR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (379, 1, 'BUR', 'BUREAU', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (380, 1, 'BUREAU', 'BUREAU', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (381, 2, 'BUREAU', 'BUREAU', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (382, 3, 'BUREAU', 'BUREAU', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (383, 1, 'BURG', 'BURG', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (384, 1, 'BUS', 'BUSINESS', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (385, 1, 'BUS CENTER', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (386, 1, 'BUS CENTR', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (387, 1, 'BUS CTR', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (388, 1, 'BUS PARK', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (389, 1, 'BUS PK', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (390, 1, 'BUSCENTER', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (391, 1, 'BUSCENTR', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (392, 1, 'BUSCTR', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (393, 1, 'BUSINESS', 'BUSINESS', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (394, 2, 'BUSINESS', 'BUSINESS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (395, 1, 'BUSINESS CENTER', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (396, 1, 'BUSINESS CENTR', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (397, 1, 'BUSINESS CTR', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (398, 1, 'BUSINESS PARK', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (271, 1, 'AVN', 'AVE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (272, 1, 'AVNUE', 'AVE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (267, 1, 'AVENU', 'AVE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (268, 1, 'AVENUE', 'AVE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (399, 1, 'BUSINESS PK', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (400, 1, 'BUSPARK', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (401, 1, 'BUSPK', 'BUSINESS PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (402, 1, 'BUSROUTE', 'BUSINESS ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (403, 1, 'BUSRT', 'BUSINESS ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (404, 1, 'BUSRTE', 'BUSINESS ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (406, 1, 'BX', 'BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (407, 1, 'BY', 'BYWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (408, 2, 'BY', 'BY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (411, 1, 'BY WAY', 'BYWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (422, 1, 'BYU', 'BAYOU', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (423, 1, 'BYWAY', 'BYWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (424, 1, 'C', 'C', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (425, 1, 'C / O', 'CARE OF', 9, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (426, 1, 'C D O', 'COMMERCIAL DEALERSHIP', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (427, 1, 'C F B', 'CANADIAN FORCES BASE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (428, 1, 'C M C', 'COMMUNITY MAIL CENTRE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (431, 1, 'C/O', 'CARE OF', 9, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (432, 1, 'CALLE', 'CALLE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (433, 1, 'CALLEJ', 'CALLEJON', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (434, 1, 'CALLEJA', 'CALLEJA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (435, 1, 'CALLEJO', 'CALLEJON', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (436, 1, 'CALLEJON', 'CALLEJON', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (437, 1, 'CALLER', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (439, 1, 'CAMINITO', 'CAMINITO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (441, 1, 'CAMP', 'CAMP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (442, 1, 'CAMPER PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (443, 1, 'CAMPER PK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (444, 1, 'CAMPUS', 'CAMPUS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (445, 1, 'CAMPUS', 'CAMPUS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (446, 1, 'CANADIAN FORCES BASE', 'CANADIAN FORCES BASE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (447, 1, 'CANYON', 'CANYON', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (448, 1, 'CANYN', 'CANYON', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (449, 1, 'CAPE', 'CAPE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (451, 1, 'CARE OF', 'CARE OF', 9, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (452, 1, 'CARR', 'CARRETERA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (453, 1, 'CARRE', 'CARRE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (454, 2, 'CARRE', 'CARRE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (455, 1, 'CARREF', 'CARREFOUR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (456, 1, 'CARREFOUR', 'CARREFOUR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (457, 1, 'CARRETERA', 'CARRETERA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (458, 1, 'CARRT', 'CARRETERA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (460, 1, 'CC', 'CIRCUIT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (461, 1, 'CDN', 'CANADIAN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (462, 1, 'CDO', 'COMMERCIAL DEALERSHIP', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (463, 1, 'CDS', 'CUL DE SAC', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (473, 3, 'CENTER', 'CENTER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (477, 1, 'CENTRAL', 'CENTRAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (480, 3, 'CENTRE', 'CENTER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (484, 1, 'CERCLE', 'CERCLE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (485, 2, 'CERCLE', 'CERCLE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (486, 1, 'CFB', 'CANADIAN FORCES BASE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (488, 1, 'CH', 'CHEMIN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (489, 2, 'CH', 'CHURCH', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (490, 1, 'CHASE', 'CHASE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (491, 2, 'CHASE', 'CHASE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (492, 1, 'CHEMIN', 'CHEMIN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (493, 1, 'CHURCH', 'CHURCH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (494, 2, 'CHURCH', 'CHURCH', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (496, 1, 'CIRC', 'CIRCULO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (499, 2, 'CIRCLE', 'CIRCLE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (500, 1, 'CIRCT', 'CIRCUIT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (501, 2, 'CIRCT', 'CIRCUIT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (502, 1, 'CIRCUIT', 'CIRCUIT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (503, 2, 'CIRCUIT', 'CIRCUIT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (504, 1, 'CIRCULO', 'CIRCULO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (505, 1, 'CJA', 'CALLEJA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (506, 1, 'CJON', 'CALLEJON', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (507, 1, 'CK', 'CREEK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (509, 2, 'CL', 'CIRCLE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (512, 3, 'CLB', 'CLUB', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (513, 1, 'CLF', 'CLIFF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (514, 1, 'CLFS', 'CLIFFS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (515, 1, 'CLG', 'COLLEGE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (516, 1, 'CLIFF', 'CLIFF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (517, 1, 'CLIFFS', 'CLIFFS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (518, 1, 'CLLE', 'CALLE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (519, 1, 'CLLJ', 'CALLEJON', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (520, 1, 'CLOS', 'CLOSE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (521, 2, 'CLOS', 'CLOSE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (522, 1, 'CLOSE', 'CLOSE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (523, 2, 'CLOSE', 'CLOSE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (524, 1, 'CLTN', 'COLLECTION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (527, 3, 'CLUB', 'CLUB', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (528, 1, 'CMC', 'COMMUNITY MAIL CENTRE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (529, 1, 'CMNS', 'COMMONS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (530, 2, 'CMNS', 'COMMONS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (417, 2, 'BYPAS', 'BYP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (421, 2, 'BYPS', 'BYP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (419, 2, 'BYPASS', 'BYP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (415, 2, 'BYPA', 'BYP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (410, 2, 'BY PASS', 'BYP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (438, 1, 'CAM', 'CAM', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (440, 1, 'CAMINO', 'CAM', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (450, 2, 'CAPE', 'CPE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (459, 1, 'CAUSEWAY', 'CSWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (483, 2, 'CENTRO', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (479, 2, 'CENTRE', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (476, 2, 'CENTR', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (472, 2, 'CENTER', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (470, 2, 'CENTE', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (468, 2, 'CENT', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (531, 1, 'CMP', 'CAMP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (532, 1, 'CN', 'CONCESSION', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (533, 2, 'CN', 'CONCESSION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (534, 1, 'CNCN', 'CONNECTION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (545, 1, 'CNTRL', 'CENTRAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (556, 1, 'CNYN', 'CANYON', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (557, 4, 'CO', 'COTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (569, 1, 'COL', 'COLONEL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (570, 1, 'COLL', 'COLLEGE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (571, 2, 'COLL', 'COLLEGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (572, 1, 'COLLECTION', 'COLLECTION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (573, 1, 'COLLEGE', 'COLLEGE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (574, 2, 'COLLEGE', 'COLLEGE', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (575, 3, 'COLLEGE', 'COLLEGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (576, 1, 'COLONEL', 'COLONEL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (577, 1, 'COLONIA', 'COLONIA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (578, 2, 'COLONIA', 'COLONIA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (579, 1, 'COMMERCIAL DEALERSHIP OU', 'COMMERCIAL DEALERSHIP', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (581, 2, 'COMMON', 'COMMONS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (582, 1, 'COMMONS', 'COMMONS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (583, 2, 'COMMONS', 'COMMONS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (584, 1, 'COMMUNITY MAIL CENTRE', 'COMMUNITY MAIL CENTRE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (586, 2, 'COMN', 'COMMONS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (587, 1, 'COMP', 'COMPLEX', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (588, 1, 'COMPLEX', 'COMPLEX', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (589, 1, 'CONC', 'CONCESSION', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (590, 2, 'CONC', 'CONCESSION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (591, 1, 'CONCESSION', 'CONCESSION', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (592, 2, 'CONCESSION', 'CONCESSION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (593, 1, 'COND', 'CONDOMINIUMS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (594, 1, 'CONDO', 'CONDOMINIUMS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (595, 1, 'CONDOMINIO', 'CONDOMINIUMS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (596, 1, 'CONDOMINIUM', 'CONDOMINIUMS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (597, 1, 'CONDOMINIUMS', 'CONDOMINIUMS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (598, 1, 'CONDOS', 'CONDOMINIUMS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (599, 3, 'CONN', 'CONNECTOR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (600, 4, 'CONN', 'CONNECTOR', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (601, 1, 'CONNECTION', 'CONNECTION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (602, 1, 'CONNECTOR', 'CONNECTOR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (603, 2, 'CONNECTOR', 'CONNECTOR', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (604, 3, 'CONNECTOR', 'CONNECTOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (605, 1, 'CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (606, 2, 'CONTRACT', 'CONTRACT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (607, 1, 'COOP', 'COOPERATIVE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (608, 2, 'COOP', 'COOPERATIVE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (609, 1, 'COOPERATIVE', 'COOPERATIVE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (610, 2, 'COOPERATIVE', 'COOPERATIVE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (612, 2, 'COR', 'CORNER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (616, 2, 'CORNER', 'CORNER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (620, 3, 'CORNERS', 'CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (623, 3, 'CORS', 'CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (624, 1, 'CORSO', 'CORSO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (625, 2, 'CORSO', 'CORSO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (629, 1, 'COTE', 'COTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (630, 2, 'COTE', 'COTE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (631, 1, 'COTTAGE', 'COTTAGE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (632, 2, 'COTTAGE', 'COTTAGE', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (633, 3, 'COTTAGE', 'COTTAGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (634, 1, 'COUNTY', 'COUNTY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (635, 2, 'COUNTY', 'COUNY ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (647, 1, 'COUR', 'COUR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (648, 1, 'COURSE', 'COURSE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (650, 2, 'COURT', 'COURT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (651, 1, 'COURT HOUSE', 'COURTHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (652, 1, 'COURT HSE', 'COURTHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (653, 1, 'COURT YARD', 'COURTYARD', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (654, 1, 'COURTHOUSE', 'COURTHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (655, 2, 'COURTHOUSE', 'COURTHOUSE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (542, 2, 'CNTR', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (538, 2, 'CNT', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (540, 2, 'CNTER', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (544, 2, 'CNTRE', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (580, 1, 'COMMON', 'CMN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (585, 1, 'COMN', 'CMN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (536, 2, 'CNR', 'COR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (617, 3, 'CORNER', 'COR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (618, 1, 'CORNERS', 'CORS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (621, 1, 'CORS', 'CORS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (562, 2, 'CO RD', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (550, 2, 'CNTY RD', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (552, 2, 'CNTY ROAD', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (642, 2, 'COUNTY ROAD', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (640, 2, 'COUNTY RD', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (614, 2, 'CORD', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (564, 2, 'CO ROAD', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (649, 1, 'COURT', 'CT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (628, 2, 'CORTE', 'CT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (656, 1, 'COURTHSE', 'COURTHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (659, 3, 'COURTS', 'COURTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (660, 1, 'COURTYARD', 'COURTYARD', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (661, 1, 'COURTYARDS', 'COURTYARD', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (664, 1, 'CP', 'CAMP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (665, 1, 'CPE', 'CAPE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (666, 1, 'CPLX', 'COMPLEX', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (667, 1, 'CPO', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (668, 1, 'CPO BOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (673, 1, 'CRDS', 'CROSSROADS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (674, 1, 'CREEK', 'CREEK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (677, 2, 'CRESCENT', 'CRESCENT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (679, 1, 'CRK', 'CREEK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (684, 1, 'CROISSANT', 'CROISSANT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (685, 2, 'CROISSANT', 'CROISSANT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (686, 1, 'CROSS', 'CROSS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (687, 2, 'CROSS', 'CROSS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (689, 1, 'CROSS ROADS', 'CROSSROADS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (694, 2, 'CROSSROAD', 'CROSSROAD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (695, 1, 'CROSSROADS', 'CROSSROADS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (697, 1, 'CRSE', 'COURSE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (707, 1, 'CRT HSE', 'COURTHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (708, 1, 'CRTHSE', 'COURTHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (709, 1, 'CRU', 'CRUCE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (710, 1, 'CRUC', 'CRUCE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (711, 1, 'CRUCE', 'CRUCE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (713, 1, 'CS', 'CLOSE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (716, 2, 'CT', 'CONNECTICUT', 11, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (717, 1, 'CT HSE', 'COURTHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (718, 1, 'CT YARD', 'COURTYARD', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (719, 1, 'CT YD', 'COURTYARD', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (722, 1, 'CTHS', 'COURTHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (723, 1, 'CTHSE', 'COURTHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (729, 3, 'CTS', 'COURTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (740, 1, 'CTYD', 'COURTYARD', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (741, 1, 'CU', 'COUR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (742, 1, 'CUL DE SAC', 'CUL DE SAC', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (743, 1, 'CULDESAC', 'CUL DE SAC', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (744, 1, 'CURRY RD', 'CURRY ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (745, 1, 'CURRY ROAD', 'CURRY ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (746, 1, 'CURVE', 'CURVE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (749, 1, 'CX', 'CHASE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (750, 1, 'CYN', 'CANYON', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (752, 1, 'D', 'D', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (753, 2, 'D', 'D', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (754, 1, 'D B A', 'DBA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (755, 1, 'DALE', 'DALE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (757, 1, 'DAM', 'DAM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (758, 1, 'DBA', 'DBA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (759, 2, 'DE', 'DE', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (760, 4, 'DE', 'DE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (761, 1, 'DE LA', 'DE LA', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (762, 1, 'DE LAS', 'DE LAS', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (763, 1, 'DE LOS', 'DE LOS', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (764, 2, 'DEL', 'DE', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (765, 1, 'DELL', 'DELL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (766, 2, 'DELL', 'DELL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (767, 1, 'DEPARTMENT', 'DEPARTMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (768, 2, 'DEPARTMENT', 'DEPARTMENT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (769, 1, 'DEPT', 'DEPARTMENT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (770, 2, 'DEPT', 'DEPARTMENT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (771, 1, 'DERE', 'DERECHO', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (772, 1, 'DERECHO', 'DERECHO', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (773, 1, 'DES', 'DES', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (774, 1, 'DEUX', '2', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (775, 2, 'DEUX', '2', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (776, 1, 'DEUXIEME', 'DEUXIEME', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (777, 1, 'DI', 'DIVERSION', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (778, 2, 'DI', 'DIVERSION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (779, 3, 'DI', 'DI', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (780, 1, 'DIV', 'DIVIDE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (781, 1, 'DIVERS', 'DIVERSION', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (782, 2, 'DIVERS', 'DIVERSION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (783, 1, 'DIVERSION', 'DIVERSION', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (784, 2, 'DIVERSION', 'DIVERSION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (785, 1, 'DIVIDE', 'DIVIDE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (786, 1, 'DL', 'DALE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (787, 2, 'DL', 'DELL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (714, 1, 'CSWY', 'CSWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (721, 2, 'CTER', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (725, 2, 'CTR', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (671, 1, 'CRCL', 'CIR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (672, 1, 'CRCLE', 'CIR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (682, 2, 'CRNR', 'COR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (683, 1, 'CRNRS', 'CORS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (751, 1, 'CZ', 'CORS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (736, 2, 'CTY ROAD', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (734, 2, 'CTY RD', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (706, 1, 'CRT', 'CT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (715, 1, 'CT', 'CT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (727, 1, 'CTS', 'CTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (657, 1, 'COURTS', 'CTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (663, 1, 'COVE', 'CV', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (748, 1, 'CV', 'CV', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (662, 1, 'COV', 'CV', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (680, 2, 'CRK', 'CRK', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (676, 1, 'CRESCENT', 'CRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (696, 1, 'CRSCNT', 'CRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (698, 1, 'CRSENT', 'CRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (702, 1, 'CRSNT', 'CRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (788, 1, 'DM', 'DAM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (789, 1, 'DNS', 'DOWNS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (790, 2, 'DNS', 'DOWNS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (791, 1, 'DO', 'DOWNS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (792, 1, 'DORM', 'DORMITORY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (793, 2, 'DORMITORY', 'DORMITORY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (794, 1, 'DOWN', 'DOWN', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (795, 2, 'DOWN', 'DOWN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (796, 1, 'DOWNS', 'DOWNS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (797, 2, 'DOWNS', 'DOWNS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (798, 1, 'DOWNSTAIRS', 'DOWNSTAIRS', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (800, 1, 'DRAW', 'DRAW', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (801, 2, 'DRAW', 'DRAW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (802, 1, 'DRAWER', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (805, 1, 'DRIVEWAY', 'DRIVEWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (807, 1, 'DRWY', 'DRIVEWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (808, 1, 'DU', 'DU', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (809, 1, 'DV', 'DIVIDE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (813, 1, 'EAST & WEST', 'EAST & WEST', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (814, 1, 'EAST WEST', 'EAST WEST', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (815, 1, 'EASTBOUND', 'EASTBOUND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (816, 2, 'EASTBOUND', 'EASTBOUND', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (817, 1, 'ECH', 'ECHANGEUR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (818, 1, 'ECHO', 'ECHO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (819, 2, 'ECHO', 'ECHO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (820, 1, 'ECHANGEUR', 'ECHANGEUR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (821, 1, 'EDF', 'EDIFICIO', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (822, 1, 'EDIF', 'EDIFICIO', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (823, 1, 'EDIFICIO', 'EDIFICIO', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (824, 1, 'EIGHT', '8', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (825, 2, 'EIGHT', '8', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (826, 1, 'EIGHT MILE', 'EIGHT MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (827, 1, 'EIGHTEEN', '18', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (828, 2, 'EIGHTEEN', '18', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (829, 1, 'EIGHTEEEN MILE', 'EIGHTEEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (830, 1, 'EIGHTEENTH', '18', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (831, 2, 'EIGHTEENTH', '18', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (832, 1, 'EIGHTH', '8', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (833, 2, 'EIGHTH', '8', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (834, 1, 'EIGHTIETH', '80', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (835, 2, 'EIGHTIETH', '80', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (836, 1, 'EIGHTY', '80', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (837, 2, 'EIGHTY', '80', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (838, 1, 'EIGHTY EIGHT', '88', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (839, 2, 'EIGHTY EIGHT', '88', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (840, 1, 'EIGHTY EIGHTH', '88', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (841, 2, 'EIGHTY EIGHTH', '88', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (842, 1, 'EIGHTY FIFTH', '85', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (843, 2, 'EIGHTY FIFTH', '85', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (844, 1, 'EIGHTY FIRST', '81', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (845, 2, 'EIGHTY FIRST', '81', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (846, 1, 'EIGHTY FIVE', '85', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (847, 2, 'EIGHTY FIVE', '85', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (848, 1, 'EIGHTY FOUR', '84', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (849, 2, 'EIGHTY FOUR', '84', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (850, 1, 'EIGHTY FOURTH', '84', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (851, 2, 'EIGHTY FOURTH', '84', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (852, 1, 'EIGHTY NINE', '89', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (853, 2, 'EIGHTY NINE', '89', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (854, 1, 'EIGHTY NINTH', '89', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (855, 2, 'EIGHTY NINTH', '89', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (856, 1, 'EIGHTY ONE', '81', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (857, 2, 'EIGHTY ONE', '81', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (858, 1, 'EIGHTY SECOND', '82', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (859, 2, 'EIGHTY SECOND', '82', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (860, 1, 'EIGHTY SEVEN', '87', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (861, 2, 'EIGHTY SEVEN', '87', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (862, 1, 'EIGHTY SEVENTH', '87', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (863, 2, 'EIGHTY SEVENTH', '87', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (864, 1, 'EIGHTY SIX', '86', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (865, 2, 'EIGHTY SIX', '86', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (866, 1, 'EIGHTY SIXTH', '86', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (867, 2, 'EIGHTY SIXTH', '86', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (868, 1, 'EIGHTY THIRD', '83', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (869, 2, 'EIGHTY THIRD', '83', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (870, 1, 'EIGHTY THREE', '83', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (871, 2, 'EIGHTY THREE', '83', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (872, 1, 'EIGHTY TWO', '82', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (873, 2, 'EIGHTY TWO', '82', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (874, 1, 'EL', 'EL', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (876, 1, 'ELEVEN', '11', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (877, 2, 'ELEVEN', '11', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (878, 1, 'ELEVEN MILE', 'ELEVEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (879, 1, 'ELEVENTH', '11', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (880, 2, 'ELEVENTH', '11', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (881, 1, 'EMS', 'EMS', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (882, 1, 'EN', 'END', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (883, 1, 'END', 'END', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (884, 1, 'END', 'END', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (885, 1, 'ENT', 'ENTRY', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (886, 1, 'ENT', 'ENTRY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (887, 1, 'ENTRY', 'ENTRY', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (888, 2, 'ENTRY', 'ENTRY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (889, 1, 'ENTREE', 'ENTREE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (890, 2, 'ENTREE', 'ENTREE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (891, 1, 'ES', 'ESPLANADE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (892, 1, 'ESP', 'ESPLANADE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (893, 1, 'ESPL', 'ESPLANADE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (894, 2, 'ESPL', 'ESPLANADE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (895, 3, 'ESPL', 'ESPLANADE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (896, 1, 'ESPLANADE', 'ESPLANADE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (897, 2, 'ESPLANADE', 'ESPLANADE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (898, 3, 'ESPLANADE', 'ESPLANADE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (899, 1, 'EST', 'ESTATES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (903, 1, 'ESTATE', 'ESTATES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (906, 1, 'ESTATES', 'ESTATES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (909, 1, 'ESTE', 'ESTE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (910, 2, 'ESTE', 'ESTE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (911, 1, 'ESTS', 'ESTATES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (915, 2, 'ET', 'ETAGE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (916, 3, 'ET', 'ET', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (917, 1, 'ETAGE', 'ETAGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (918, 2, 'ETAGE', 'ETAGE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (919, 1, 'EX', 'EXTENDED', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (921, 1, 'EXCH', 'EXCHANGE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (875, 1, 'EL CAMINO', 'CAM', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (806, 1, 'DRV', 'DR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (799, 1, 'DR', 'DR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (803, 1, 'DRI', 'DR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (804, 1, 'DRIVE', 'DR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (810, 1, 'E', 'E', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (811, 2, 'E', 'E', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (812, 1, 'EAST', 'E', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (922, 2, 'EXCH', 'EXCHANGE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (923, 1, 'EXCHANGE', 'EXCHANGE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (924, 2, 'EXCHANGE', 'EXCHANGE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (925, 3, 'EXCHANGE', 'EXCHANGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (926, 1, 'EXEC', 'EXECUTIVE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (927, 1, 'EXECUTIVE', 'EXECUTIVE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (930, 1, 'EXPRESO', 'EXPRESO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (939, 1, 'EXTD', 'EXTENDED', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (942, 1, 'EXTENDED', 'EXTENDED', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (950, 1, 'F M', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (951, 1, 'F M RD', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (952, 2, 'F M RD', 'FARM TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (953, 1, 'F M ROAD', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (954, 2, 'F M ROAD', 'FARM TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (955, 1, 'FACTORY OUTLET', 'OUTLET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (956, 1, 'FALL', 'FALL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (957, 1, 'FALLS', 'FALLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (958, 1, 'FARM', 'FARM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (959, 2, 'FARM', 'FARM', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (960, 1, 'FARM MAINTENANCE RD', 'FARM MAINTENANCE ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (961, 2, 'FARM MAINTENANCE RD', 'FARM MAINTENANCE ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (962, 1, 'FARM MARKET ROAD', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (963, 2, 'FARM MARKET ROAD', 'FARM TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (964, 1, 'FARM TO MARKET ROAD', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (965, 2, 'FARM TO MARKET ROAD', 'FARM TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (966, 1, 'FERRY', 'FERRY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (967, 1, 'FERRY CROSSING', 'FERRY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (968, 1, 'FEST', 'FESTIVAL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (969, 1, 'FESTIVAL', 'FESTIVAL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (970, 1, 'FIELD', 'FIELD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (972, 1, 'FIELDS', 'FIELDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (973, 1, 'FIFTEEN', '15', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (974, 2, 'FIFTEEN', '15', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (975, 1, 'FIFTEEN MILE', 'FIFTEEN MI', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (976, 1, 'FIFTEENTH', '15', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (977, 2, 'FIFTEENTH', '15', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (978, 1, 'FIFTH', '5', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (979, 2, 'FIFTH', '5', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (980, 1, 'FIFTIETH', '50', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (981, 2, 'FIFTIETH', '50', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (982, 1, 'FIFTY', '50', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (983, 2, 'FIFTY', '50', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (984, 1, 'FIFTY EIGHT', '58', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (985, 2, 'FIFTY EIGHT', '58', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (986, 1, 'FIFTY EIGHTH', '58', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (987, 2, 'FIFTY EIGHTH', '58', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (988, 1, 'FIFTY FIFTH', '55', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (989, 2, 'FIFTY FIFTH', '55', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (990, 1, 'FIFTY FIRST', '51', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (991, 2, 'FIFTY FIRST', '51', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (992, 1, 'FIFTY FIVE', '55', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (993, 2, 'FIFTY FIVE', '55', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (994, 1, 'FIFTY FOUR', '54', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (995, 2, 'FIFTY FOUR', '54', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (996, 1, 'FIFTY FOURTH', '54', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (997, 2, 'FIFTY FOURTH', '54', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (998, 1, 'FIFTY NINE', '59', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (999, 2, 'FIFTY NINE', '59', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1000, 1, 'FIFTY NINTH', '59', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1001, 2, 'FIFTY NINTH', '59', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1002, 1, 'FIFTY ONE', '51', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1003, 2, 'FIFTY ONE', '51', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1004, 1, 'FIFTY SECOND', '52', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1005, 2, 'FIFTY SECOND', '52', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1006, 1, 'FIFTY SEVEN', '57', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1007, 2, 'FIFTY SEVEN', '57', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1008, 1, 'FIFTY SEVENTH', '57', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1009, 2, 'FIFTY SEVENTH', '57', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1094, 1, 'FOUR', '4', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1010, 1, 'FIFTY SIX', '56', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1011, 2, 'FIFTY SIX', '56', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1012, 1, 'FIFTY SIXTH', '56', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1013, 2, 'FIFTY SIXTH', '56', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1014, 1, 'FIFTY THIRD', '53', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1015, 2, 'FIFTY THIRD', '53', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1016, 1, 'FIFTY THREE', '53', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1017, 2, 'FIFTY THREE', '53', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1018, 1, 'FIFTY TWO', '52', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1019, 2, 'FIFTY TWO', '52', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1020, 1, 'FIRST', '1', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1021, 2, 'FIRST', '1', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1022, 1, 'FIVE', '5', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1023, 2, 'FIVE', '5', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1024, 1, 'FIVE CEDARS', 'FIVE CEDARS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1025, 1, 'FIVE CORNERS', 'FIVE CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1026, 1, 'FIVE MILE', 'FIVE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1027, 1, 'FIVE POINTS', 'FIVE POINTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1028, 1, 'FIVE TOWN', 'FIVE TOWN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1029, 1, 'FL', 'FLOOR', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1030, 1, 'FLAT', 'FLAT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1031, 1, 'FLD', 'FIELD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1032, 1, 'FLDS', 'FIELDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1033, 1, 'FLLS', 'FALLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1034, 1, 'FLOOR', 'FLOOR', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1035, 2, 'FLOOR', 'FLOOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1036, 1, 'FLR', 'FLOOR', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1037, 1, 'FLS', 'FALLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1038, 1, 'FLT', 'FLAT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1039, 1, 'FLTS', 'FLATS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1040, 1, 'FM', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1041, 1, 'FM RD', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1042, 2, 'FM RD', 'FARM TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1043, 1, 'FM ROAD', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1044, 2, 'FM ROAD', 'FARM TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1045, 1, 'FMRD', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1046, 2, 'FMRD', 'FARM TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1047, 1, 'FORD', 'FORD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1048, 1, 'FOREST', 'FOREST', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1049, 1, 'FORGE', 'FORGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (936, 1, 'EXPY', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (935, 1, 'EXPWY', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (934, 1, 'EXPWAY', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (932, 1, 'EXPRESSWAY', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (949, 1, 'EXWY', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1050, 1, 'FORK', 'FORK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1051, 1, 'FORKS', 'FORKS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1052, 1, 'FORT', 'FORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1053, 1, 'FORTIETH', '40', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1054, 2, 'FORTIETH', '40', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1055, 1, 'FORTS', 'FORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1056, 1, 'FORTY', '40', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1057, 2, 'FORTY', '40', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1058, 1, 'FORTY EIGHT', '48', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1059, 2, 'FORTY EIGHT', '48', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1060, 1, 'FORTY EIGHTH', '48', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1061, 2, 'FORTY EIGHTH', '48', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1062, 1, 'FORTY FIFTH', '45', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1063, 2, 'FORTY FIFTH', '45', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1064, 1, 'FORTY FIRST', '41', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1065, 2, 'FORTY FIRST', '41', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1066, 1, 'FORTY FIVE', '45', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1067, 2, 'FORTY FIVE', '45', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1068, 1, 'FORTY FOUR', '44', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1069, 2, 'FORTY FOUR', '44', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1070, 1, 'FORTY FOURTH', '44', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1071, 2, 'FORTY FOURTH', '44', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1072, 1, 'FORTY NINE', '49', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1073, 2, 'FORTY NINE', '49', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1074, 1, 'FORTY NINTH', '49', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1075, 2, 'FORTY NINTH', '49', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1076, 1, 'FORTY ONE', '41', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1077, 2, 'FORTY ONE', '41', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1078, 1, 'FORTY SECOND', '42', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1079, 2, 'FORTY SECOND', '42', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1080, 1, 'FORTY SEVEN', '47', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1081, 2, 'FORTY SEVEN', '47', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1082, 1, 'FORTY SEVENTH', '47', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1083, 2, 'FORTY SEVENTH', '47', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1084, 1, 'FORTY SIX', '46', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1085, 2, 'FORTY SIX', '46', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1086, 1, 'FORTY SIXTH', '46', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1087, 2, 'FORTY SIXTH', '46', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1088, 1, 'FORTY THIRD', '43', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1089, 2, 'FORTY THIRD', '43', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1090, 1, 'FORTY THREE', '43', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1091, 2, 'FORTY THREE', '43', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1092, 1, 'FORTY TWO', '42', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1093, 2, 'FORTY TWO', '42', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1095, 2, 'FOUR', '4', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1096, 1, 'FOUR CORNERS', 'FOUR CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1097, 1, 'FOUR FLAGS', 'FOUR FLAGS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1098, 1, 'FOUR MILE', 'FOUR MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1099, 1, 'FOURTEEN', '14', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1100, 2, 'FOURTEEN', '14', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1101, 1, 'FOURTEEN MILE', 'FOURTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1102, 1, 'FOURTEENTH', '14', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1103, 2, 'FOURTEENTH', '14', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1104, 1, 'FOURTH', '4', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1105, 2, 'FOURTH', '4', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1106, 1, 'FPO', 'FPO', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1107, 1, 'FRD', 'FORD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1110, 1, 'FRG', 'FORGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1111, 1, 'FRK', 'FORK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1112, 1, 'FRKS', 'FORKS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1113, 1, 'FRNT', 'FRONT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1114, 2, 'FRNT', 'FRONT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1115, 1, 'FROM', 'FROM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1116, 1, 'FRONT', 'FRONT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1117, 2, 'FRONT', 'FRONT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1118, 3, 'FRONT', 'FRONT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1119, 1, 'FRONTAGE', 'FRONT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1120, 1, 'FRST', 'FOREST', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1121, 2, 'FRST', 'FOREST', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1122, 1, 'FRT', 'FORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1125, 1, 'FRY', 'FERRY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1126, 1, 'FS RD', 'FOREST SERVICE ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1127, 1, 'FT', 'FORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1128, 1, 'FWD', 'FOUR WHEEL DRIVE TRAIL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1130, 1, 'FX', 'FOX', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1131, 1, 'G DEL', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1132, 1, 'G DELIVERY', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1134, 1, 'GALLERIA', 'GALLERIA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1135, 2, 'GALLERIA', 'GALLERIA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1136, 1, 'GALLERIE', 'GALLERIA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1137, 2, 'GALLERIE', 'GALLERIA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1138, 1, 'GALR', 'GALLERIA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1139, 1, 'GARDEN', 'GARDEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1140, 1, 'GARDENS', 'GARDENS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1143, 1, 'GATE', 'GATE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1267, 1, 'HL', 'HILL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1144, 2, 'GATE', 'GATE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1145, 1, 'GATEWAY', 'GATEWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1147, 1, 'GD', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1148, 2, 'GD', 'GROUNDS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1149, 1, 'GDN', 'GARDEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1151, 1, 'GDNS', 'GARDEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1154, 1, 'GDS', 'GARDEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1156, 1, 'GEN D', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1157, 1, 'GEN DEL', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1158, 1, 'GEN DELIVERY', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1159, 1, 'GENDEL', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1160, 1, 'GENERAL D', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1161, 1, 'GENERAL DEL', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1162, 1, 'GENERAL DELIVERY', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1164, 1, 'GLADE', 'GLADE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1165, 2, 'GLADE', 'GLADE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1166, 1, 'GLEN', 'GLEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1168, 1, 'GLN', 'GLEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1170, 1, 'GNDL', 'GENERAL DELIVERY', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1171, 1, 'GOV', 'GOVERNOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1172, 1, 'GOVERNOR', 'GOVERNOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1173, 1, 'GPO', 'GPO', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1174, 1, 'GR', 'GROUND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1176, 1, 'GREEN', 'GREEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1178, 1, 'GREENE RD', 'GREENE ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1179, 1, 'GREENE ROAD', 'GREENE ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1180, 1, 'GRN', 'GREEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1123, 1, 'FRWAY', 'FWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1124, 1, 'FRWY', 'FWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1129, 1, 'FWY', 'FWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1108, 1, 'FREEWAY', 'FWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1182, 1, 'GRNDS', 'GROUNDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1183, 2, 'GRNDS', 'GROUNDS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1184, 1, 'GROUND', 'GROUND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1185, 1, 'GROUNDS', 'GROUNDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1186, 2, 'GROUNDS', 'GROUNDS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1187, 1, 'GROVE', 'GROVE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1189, 1, 'GRV', 'GROVE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1191, 1, 'GT', 'GATE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1192, 1, 'GTWAY', 'GATEWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1194, 1, 'GTWY', 'GATEWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1197, 1, 'H C', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1198, 1, 'H C R', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1199, 1, 'H CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1200, 1, 'H CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1201, 1, 'HALF', 'HALF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1202, 1, 'HALL', 'HALL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1203, 2, 'HALL', 'HALL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1204, 1, 'HANGER', 'HANGER', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1205, 2, 'HANGER', 'HANGER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1206, 1, 'HARBOR', 'HARBOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1207, 1, 'HARBOUR', 'HARBOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1210, 1, 'HARBR', 'HARBOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1213, 1, 'HAVEN', 'HAVEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1214, 1, 'HBR', 'HARBOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1217, 1, 'HC', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1218, 1, 'HC RT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1219, 1, 'HC RTE', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1220, 1, 'HCO', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1221, 1, 'HCR', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1222, 1, 'HCRT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1223, 1, 'HEIGHT', 'HEIGHTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1224, 1, 'HEIGHTS', 'HEIGHTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1227, 1, 'HGHLDS', 'HIGHLANDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1228, 2, 'HGHLDS', 'HIGHLANDS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1229, 1, 'HGT', 'HEIGHTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1232, 1, 'HGTS', 'HEIGHTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1237, 1, 'HGWY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1238, 1, 'HGWY FM', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1241, 1, 'HGY FM', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1244, 1, 'HIGH CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1245, 1, 'HIGH CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1246, 1, 'HIGHLANDS', 'HIGHLANDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1247, 2, 'HIGHLANDS', 'HIGHLANDS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1250, 1, 'HIGHWAY CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1251, 1, 'HIGHWAY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1252, 1, 'HIGHWAY CONTRACT ROUTE', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1253, 1, 'HIGHWAY FM', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1256, 1, 'HIGHWY FM', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1257, 1, 'HILL', 'HILL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1259, 1, 'HILLS', 'HILLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1262, 1, 'HIWAY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1263, 1, 'HIWAY FM', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1266, 1, 'HIWY FM', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1269, 1, 'HLLW', 'HOLLOW', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1271, 1, 'HLS', 'HILLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1272, 1, 'HNGR', 'HANGER', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1273, 2, 'HNGR', 'HANGER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1275, 2, 'H0', 'HOLLOW', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1276, 1, 'HOL', 'HOLLOW', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1278, 1, 'HOLLOW', 'HOLLOW', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1280, 1, 'HOLW', 'HOLLOW', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1282, 1, 'HOME', 'HOME', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1283, 2, 'HOME', 'HOME', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1284, 1, 'HOMES', 'HOME', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1285, 1, 'HOSP', 'HOSPITAL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1286, 1, 'HOSPITAL', 'HOSPITAL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1287, 1, 'HOTEL', 'HOTEL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1288, 2, 'HOTEL', 'HOTEL', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1289, 1, 'HOUS', 'HOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1290, 2, 'HOUS', 'HOUSE', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1291, 1, 'HOUSE', 'HOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1292, 2, 'HOUSE', 'HOUSE', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1293, 3, 'HOUSE', 'HOUSE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1294, 1, 'HOUSING PROJ', 'PROJECTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1295, 1, 'HOUSING PROJECTS', 'PROJECTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1296, 1, 'HRBR', 'HARBOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1299, 1, 'HRBOR', 'HARBOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1302, 1, 'HSE', 'HOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1303, 2, 'HSE', 'HOUSE', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1304, 1, 'HSE PROJ', 'PROJECTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1305, 1, 'HSE PROJECTS', 'PROJECTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1306, 1, 'HT', 'HEIGHTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1190, 2, 'GRV', 'GRV', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1196, 1, 'GV', 'GRV', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1188, 2, 'GROVE', 'GRV', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1211, 2, 'HARBR', 'HBR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1297, 2, 'HRBR', 'HBR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1300, 2, 'HRBOR', 'HBR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1208, 2, 'HARBOUR', 'HBR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1215, 2, 'HBR', 'HBR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1216, 3, 'HBR', 'HBR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1233, 2, 'HGTS', 'HTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1307, 2, 'HT', 'HTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1225, 2, 'HEIGHTS', 'HTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1230, 2, 'HGT', 'HTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1236, 2, 'HGWY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1243, 2, 'HI', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1255, 2, 'HIGHWY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1265, 2, 'HIWY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1309, 1, 'HTL', 'HOTEL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1310, 2, 'HTL', 'HOTEL', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1311, 1, 'HTS', 'HEIGHTS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1314, 1, 'HUI RD', 'HUI ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1315, 1, 'HUI ROAD', 'HUI ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1316, 1, 'HVN', 'HAVEN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1321, 1, 'HWC', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1324, 1, 'HWY CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1325, 1, 'HWY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1326, 1, 'HWY FM', 'FARM TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1327, 1, 'HWYS', 'HIGHWAYS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1330, 1, 'HY CONT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1331, 1, 'HY CONTRACT', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1334, 1, 'I', 'INTERSTATE HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1336, 1, 'I H', 'INTERSTATE HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1337, 1, 'IC', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1338, 1, 'ICHG', 'INTERCHANGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1339, 1, 'IH', 'INTERSTATE HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1340, 1, 'ILE', 'ILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1341, 2, 'ILE', 'ILE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1342, 1, 'IM', 'IMPASSE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1343, 1, 'IMM', 'IMMEUBLE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1344, 2, 'IMM', 'IMMEUBLE', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1345, 1, 'IMMEUBLE', 'IMMEUBLE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1346, 2, 'IMMEUBLE', 'IMMEUBLE', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1347, 1, 'IMP', 'IMPASSE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1348, 1, 'IMPASSE', 'IMPASSE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1349, 1, 'IN CARE OF', 'CARE OF', 9, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1350, 1, 'INCTR', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1351, 1, 'IND PARK', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1352, 1, 'IND PK', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1353, 1, 'INDC', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1354, 1, 'INDL', 'INDUSTRIAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1355, 1, 'INDL CTR', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1356, 1, 'INDL PARK', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1357, 1, 'INDL PK', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1358, 1, 'INDUSTRIAL', 'INDUSTRIAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1359, 1, 'INDUSTRIAL CENTER', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1360, 1, 'INDUSTRIAL CTR', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1361, 1, 'INDUSTRIAL PARK', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1362, 1, 'INDUSTRIAL PK', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1363, 1, 'INLET', 'INLET', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1364, 1, 'INLT', 'INLET', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1365, 1, 'INN', 'INN', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1366, 2, 'INN', 'INN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1367, 1, 'INPK', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1368, 1, 'INT L', 'INTERNATIONAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1369, 1, 'INTE', 'INTERIOR', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1370, 1, 'INTERCHANGE', 'INTERCHANGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1371, 1, 'INTERIOR', 'INTERIOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1372, 1, 'INTERIOR', 'INTERIOR', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1373, 1, 'INTERNATIONAL', 'INTERNATIONAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1374, 1, 'INTERSECTION', 'INTERSECTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1375, 1, 'INTERSTATE', 'INTERSTATE HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1376, 2, 'INTERSTATE', 'INTERSTATE HIGHWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1377, 1, 'INTERSTATE HIGHWAY', 'INTERSTATE HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1378, 2, 'INTERSTATE HIGHWAY', 'INTERSTATE HIGHWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1379, 1, 'INTERSTATE HWY', 'INTERSTATE HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1380, 2, 'INTERSTATE HWY', 'INTERSTATE HIGHWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1381, 1, 'INSTITUTE', 'INSTITUTE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1382, 2, 'INSTITUTE', 'INSTITUTE', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1383, 3, 'INSTITUTE', 'INSTITUTE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1384, 1, 'INTL', 'INTERNATIONAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1385, 1, 'INTR', 'INTERSECTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1386, 1, 'IP', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1387, 1, 'IPRK', 'INDUSTRIAL PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1388, 1, 'IS', 'INTERSTATE HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1389, 2, 'IS', 'ISLE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1391, 1, 'ISLAND', 'ISLAND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1393, 1, 'ISLANDS', 'ISLANDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1394, 1, 'ISLE', 'ISLE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1395, 1, 'ISLES', 'ISLES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1396, 1, 'IZQU', 'IZQUIERDO', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1397, 1, 'IZQUIERDO', 'IZQUIERDO', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1398, 1, 'J F K', 'JOHN F KENNEDY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1399, 1, 'J F KENNEDY', 'JOHN F KENNEDY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1400, 1, 'JA', 'JARDIN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1401, 1, 'JAF', 'JAF', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1402, 1, 'JAF BOX', 'JAF BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1403, 1, 'JAF STATION', 'JAF STATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1404, 1, 'JARDIN', 'JARDIN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1405, 2, 'JARDIN', 'JARDIN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1408, 3, 'JCT', 'JUNCTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1411, 3, 'JCTION', 'JUNCTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1414, 3, 'JCTN', 'JUNCTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1415, 1, 'JEEP TRAIL', 'JEEP TRAIL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1416, 1, 'JEEP TRL', 'JEEP TRAIL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1417, 1, 'JFK', 'JOHN F KENNEDY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1420, 3, 'JNCT', 'JUNCTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1421, 1, 'JOHN F KENNEDY', 'JOHN F KENNEDY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1424, 3, 'JUNC', 'JUNCTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1427, 3, 'JUNCT', 'JUNCTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1430, 3, 'JUNCTION', 'JUNCTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1433, 3, 'JUNCTN', 'JUNCTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1312, 2, 'HTS', 'HTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1318, 2, 'HW', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1333, 2, 'HYWY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1329, 2, 'HY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1323, 2, 'HWY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1320, 2, 'HWAY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1390, 3, 'IS', 'IS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1392, 2, 'ISLAND', 'IS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1406, 1, 'JCT', 'JCT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1409, 1, 'JCTION', 'JCT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1412, 1, 'JCTN', 'JCT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1425, 1, 'JUNCT', 'JCT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1431, 1, 'JUNCTN', 'JCT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1422, 1, 'JUNC', 'JCT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1428, 1, 'JUNCTION', 'JCT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1436, 3, 'JUNCTON', 'JUNCTION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1437, 1, 'K MART', 'K MART', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1438, 1, 'KEY', 'KEY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1440, 1, 'KEYSTONE ROUTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1441, 1, 'KEYSTONE RT', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1442, 1, 'KEYSTONE RTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1443, 1, 'KMART', 'K MART', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1444, 1, 'KNL', 'KNOLL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1446, 1, 'KNLS', 'KNOLLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1449, 1, 'KNOLLS', 'KNOLLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1451, 1, 'L B J', 'LYNDON B JOHNSON', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1452, 1, 'L B JOHNSON', 'LYNDON B JOHNSON', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1453, 1, 'L C D', 'LETTER CARRIER DEPOT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1456, 1, 'LAKE', 'LAKE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1457, 1, 'LAKES', 'LAKE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1460, 3, 'LAND', 'LANDING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1463, 3, 'LANDING', 'LANDING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1466, 3, 'LANDINGS', 'LANDING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1469, 1, 'LAS', 'LAS', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1470, 1, 'LBBY', 'LOBBY', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1471, 1, 'LBJ', 'LYNDON B JOHNSON', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1472, 1, 'LCD', 'LETTER CARRIER DEPOT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1473, 1, 'LCKS', 'LOCKS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1476, 3, 'LDG', 'LODGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1479, 3, 'LDGE', 'LODGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1481, 2, 'LE', 'LE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1482, 3, 'LE', 'LE', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1483, 1, 'LEFT', 'LEFT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1484, 2, 'LEFT', 'LEFT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1485, 1, 'LES', 'LES', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1486, 1, 'LETTER CARRIER DEPOT', 'LETTER CARRIER DEPOT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1487, 1, 'LEVEL', 'LEVEL', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1488, 2, 'LEVEL', 'LEVEL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1489, 1, 'LF', 'LOAF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1490, 1, 'LGT', 'LIGHT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1491, 1, 'LI', 'LINE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1492, 1, 'LIGHT', 'LIGHT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1493, 1, 'LIMITS', 'LIMITS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1494, 2, 'LIMITS', 'LIMITS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1495, 1, 'LINE', 'LINE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1496, 2, 'LINE', 'LINE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1497, 1, 'LINK', 'LINK', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1498, 2, 'LINK', 'LINK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1499, 1, 'LK', 'LAKE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1500, 2, 'LK', 'LINK', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1501, 1, 'LKOUT', 'LOOKOUT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1502, 1, 'LKS', 'LAKE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1503, 1, 'LMTS', 'LIMITS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1504, 2, 'LMTS', 'LIMITS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1508, 3, 'LNDG', 'LANDING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1511, 3, 'LNDNG', 'LANDING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1513, 1, 'LOAF', 'LOAF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1514, 1, 'LOBBY', 'LOBBY', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1515, 1, 'LOBBY', 'LOBBY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1516, 1, 'LOCAL', 'BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1517, 1, 'LOCAL BOX', 'BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1518, 1, 'LOCAL HCR', 'HIGHWAY CONTRACT ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1519, 1, 'LOCAL PO BOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1520, 1, 'LOCKBOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1521, 1, 'LOCKS', 'LOCKS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1524, 3, 'LODGE', 'LODGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1525, 1, 'LOOKOUT', 'LOOKOUT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1526, 2, 'LOOKOUT', 'LOOKOUT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1529, 1, 'LOS', 'LOS', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1530, 1, 'LOT', 'LOT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1531, 2, 'LOT', 'LOT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1532, 3, 'LOT', 'LOT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1533, 1, 'LOWER', 'LOWER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1534, 2, 'LOWER', 'LOWER', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1535, 1, 'LOWR', 'LOWER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1536, 2, 'LOWR', 'LOWER', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1539, 1, 'LT', 'LOT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1540, 2, 'LT', 'LOT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1541, 3, 'LT', 'LOOKOUT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1542, 1, 'LVL', 'LEVEL', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1543, 1, 'LWR', 'LOWER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1544, 2, 'LWR', 'LOWER', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1545, 1, 'LYNDON B JOHNSON', 'LYNDON B JOHNSON', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1546, 1, 'M H P', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1547, 1, 'M L K', 'MARTIN LUTHER KING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1548, 1, 'M L KING', 'MARTIN LUTHER KING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1549, 1, 'MAISON', 'MAISON', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1550, 2, 'MAISON', 'MAISON', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1551, 3, 'MAISON', 'MAISON', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1555, 3, 'MALL', 'MALL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1559, 3, 'MANOR', 'MANOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1562, 1, 'MARG', 'MARGINAL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1563, 1, 'MARGINAL', 'MARGINAL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1564, 1, 'MARKET', 'MARKET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1565, 2, 'MARKET', 'MARKET', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1566, 1, 'MARKET PL', 'MARKET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1567, 1, 'MARKET PLACE', 'MARKET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1434, 1, 'JUNCTON', 'JCT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1450, 4, 'KY', 'KY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1439, 2, 'KEY', 'KY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1445, 2, 'KNL', 'KNL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1448, 1, 'KNOLL', 'KNL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1447, 2, 'KNLS', 'KNLS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1506, 1, 'LNDG', 'LNDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1464, 1, 'LANDINGS', 'LNDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1461, 1, 'LANDING', 'LNDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1458, 1, 'LAND', 'LNDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1467, 1, 'LANDNG', 'LNDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1509, 1, 'LNDNG', 'LNDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1454, 1, 'LA', 'LN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1468, 1, 'LANE', 'LN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1480, 1, 'LE', 'LN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1568, 1, 'MARKETPLACE', 'MARKET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1569, 1, 'MART', 'MARKET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1570, 1, 'MARTIN KING', 'MARTIN LUTHER KING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1571, 1, 'MARTIN L KING', 'MARTIN LUTHER KING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1572, 1, 'MARTIN LUTHER', 'MARTIN LUTHER KING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1573, 1, 'MARTIN LUTHER KING', 'MARTIN LUTHER KING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1574, 1, 'MARTIN LUTHER KING JR', 'MARTIN LUTHER KING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1575, 1, 'MAZE', 'MAZE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1576, 1, 'MC', 'MC', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1577, 1, 'MDWS', 'MEADOWS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1580, 1, 'MEADOW', 'MEADOW', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1582, 1, 'MEADOWS', 'MEADOWS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1584, 1, 'MED', 'MEDICAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1585, 1, 'MEDICAL', 'MEDICAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1586, 1, 'MEM', 'MEMORIAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1587, 1, 'MEMORIAL', 'MEMORIAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1588, 1, 'MERC', 'MERCADO', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1589, 1, 'MERCADO', 'MERCADO', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1591, 2, 'MEWS', 'MEWS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1593, 1, 'MH', 'MOBILE HOME', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1594, 1, 'MH CT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1595, 1, 'MH PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1596, 1, 'MHP', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1597, 1, 'MI', 'MILE POST', 20, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1598, 1, 'MI POST', 'MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1599, 1, 'MIDDLE', 'MIDDLE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1600, 2, 'MIDDLE', 'MIDDLE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1601, 1, 'MILE', 'MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1602, 2, 'MILE', 'MILE POST', 20, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1603, 1, 'MILE POST', 'MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1604, 2, 'MILE POST', 'MILE POST', 20, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1605, 1, 'MILES', 'MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1606, 1, 'MILL', 'MILL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1607, 1, 'MILLS', 'MILLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1608, 1, 'MISSION', 'MISSION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1609, 1, 'MKT', 'MARKET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1610, 1, 'MKT PL', 'MARKET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1611, 1, 'MKT PLACE', 'MARKET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1612, 1, 'MKTPL', 'MARKET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1615, 3, 'ML', 'MALL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1616, 1, 'ML KING', 'MARTIN LUTHER KING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1617, 1, 'MLK', 'MARTIN LUTHER KING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1618, 1, 'MLS', 'MILLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1621, 3, 'MNR', 'MANOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1623, 2, 'MNRS', 'MANOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1624, 1, 'MNT', 'MOUNT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1625, 4, 'MO', 'MONTEE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1626, 1, 'MOB HM PK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1627, 1, 'MOB HOME PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1628, 1, 'MOBIL HOME PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1629, 1, 'MOBIL HOME TRPK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1630, 1, 'MOBILE COURT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1631, 1, 'MOBILE CT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1632, 1, 'MOBILE EST', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1633, 1, 'MOBILE ESTATE', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1634, 1, 'MOBILE HM PK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1635, 1, 'MOBILE HOME', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1636, 2, 'MOBILE HOME', 'MOBILE HOME', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1637, 1, 'MOBILE HOME PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1638, 1, 'MOBILE HOME PK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1639, 1, 'MOBILE HOME TRPK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1640, 1, 'MOBILE HOMES', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1641, 1, 'MOBILE PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1642, 1, 'MOBILE ROUTE', 'MOBILE ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1643, 1, 'MONTEE', 'MONTEE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1644, 2, 'MONTEE', 'MONTEE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1645, 1, 'MOOR', 'MOOR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1646, 2, 'MOOR', 'MOOR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1647, 1, 'MOTEL', 'MOTEL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1649, 1, 'MOUNT', 'MOUNT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1651, 1, 'MOUNTAIN', 'MOUNTAIN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1653, 1, 'MOUNTAINS', 'MOUNTAIN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1654, 1, 'MP', 'MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1655, 2, 'MP', 'MILE POST', 20, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1656, 1, 'MR', 'MOBILE ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1657, 1, 'MS', 'MS', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1658, 1, 'MSN', 'MISSION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1659, 1, 'MT', 'MOUNT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1660, 1, 'MTD ROUTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1661, 1, 'MTD RT', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1662, 1, 'MTD RTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1663, 1, 'MTL', 'MOTEL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1664, 1, 'MTN', 'MOUNTAIN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1665, 1, 'MTNS', 'MOUNTAIN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1668, 1, 'MURO', 'MURO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1672, 1, 'N A B', 'NAVAL AIR STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1673, 2, 'N A B', 'NAVAL AIR STATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1674, 1, 'N A S', 'NAVAL AIR STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1675, 2, 'N A S', 'NAVAL AIR STATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1677, 1, 'N F D', 'NATL FOREST DEVELOP ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1679, 1, 'NAB', 'NAVAL AIR STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1680, 2, 'NAB', 'NAVAL AIR STATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1681, 1, 'NAS', 'NAVAL AIR STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1682, 2, 'NAS', 'NAVAL AIR STATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1683, 1, 'NATIONAL', 'NATIONAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1684, 1, 'NATL', 'NATIONAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1685, 1, 'NATL FOREST', 'NATL FOREST', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1686, 1, 'NATL FOREST DEVELOP ROAD', 'NATL FOREST DEVELOP ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1687, 1, 'NATL FOREST HIGHWAY', 'NATL FOREST HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1688, 1, 'NAVAL AIR BASE', 'NAVAL AIR STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1689, 2, 'NAVAL AIR BASE', 'NAVAL AIR STATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1690, 1, 'NAVAL AIR STATION', 'NAVAL AIR STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1691, 2, 'NAVAL AIR STATION', 'NAVAL AIR STATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1613, 1, 'ML', 'MALL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1619, 1, 'MNR', 'MNR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1669, 1, 'MW', 'MDW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1581, 2, 'MEADOW', 'MDW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1579, 4, 'ME', 'MEWS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1590, 1, 'MEWS', 'MEWS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1670, 1, 'N', 'N', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1671, 2, 'N', 'N', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1676, 1, 'N E', 'NE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1678, 1, 'N W', 'NW', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1692, 1, 'NAVAL BASE', 'NAVAL AIR STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1693, 2, 'NAVAL BASE', 'NAVAL AIR STATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1694, 1, 'NCK', 'NECK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1696, 1, 'NEAR', 'NEAR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1697, 1, 'NECK', 'NECK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1698, 1, 'NF HWY', 'NATL FOREST HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1699, 1, 'NFD', 'NATL FOREST DEVELOP ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1700, 1, 'NFD', 'NATL FOREST DEVELOP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1701, 1, 'NFHWY', 'NATL FOREST HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1702, 1, 'NINE', '9', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1703, 2, 'NINE', '9', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1704, 1, 'NINE MILE', 'NINE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1705, 1, 'NINETEEN', '19', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1706, 2, 'NINETEEN', '19', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1707, 1, 'NINETEEN MILE', 'NINETEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1708, 1, 'NINETEENTH', '19', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1709, 2, 'NINETEENTH', '19', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1710, 1, 'NINETIETH', '90', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1711, 2, 'NINETIETH', '90', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1712, 1, 'NINETY', '90', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1713, 2, 'NINETY', '90', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1714, 1, 'NINETY EIGHT', '98', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1715, 2, 'NINETY EIGHT', '98', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1716, 1, 'NINETY EIGHTH', '98', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1717, 2, 'NINETY EIGHTH', '98', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1718, 1, 'NINETY FIFTH', '95', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1719, 2, 'NINETY FIFTH', '95', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1720, 1, 'NINETY FIRST', '91', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1721, 2, 'NINETY FIRST', '91', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1722, 1, 'NINETY FIVE', '95', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1723, 2, 'NINETY FIVE', '95', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1724, 1, 'NINETY FOUR', '94', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1725, 2, 'NINETY FOUR', '94', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1726, 1, 'NINETY FOURTH', '94', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1727, 2, 'NINETY FOURTH', '94', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1728, 1, 'NINETY NINE', '99', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1729, 2, 'NINETY NINE', '99', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1730, 1, 'NINETY NINTH', '99', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1731, 2, 'NINETY NINTH', '99', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1732, 1, 'NINETY ONE', '91', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1733, 2, 'NINETY ONE', '91', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1734, 1, 'NINETY SECOND', '92', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1735, 2, 'NINETY SECOND', '92', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1736, 1, 'NINETY SEVEN', '97', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1737, 2, 'NINETY SEVEN', '97', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1868, 1, 'PD', 'POND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1738, 1, 'NINETY SEVENTH', '97', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1739, 2, 'NINETY SEVENTH', '97', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1740, 1, 'NINETY SIX', '96', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1741, 2, 'NINETY SIX', '96', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1742, 1, 'NINETY SIXTH', '96', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1743, 2, 'NINETY SIXTH', '96', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1744, 1, 'NINETY THIRD', '93', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1745, 2, 'NINETY THIRD', '93', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1746, 1, 'NINETY THREE', '93', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1747, 2, 'NINETY THREE', '93', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1748, 1, 'NINETY TWO', '92', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1749, 2, 'NINETY TWO', '92', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1750, 1, 'NINTH', '9', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1751, 2, 'NINTH', '9', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1752, 1, 'NO', '#', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1754, 3, 'NO', '#', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1756, 1, 'NORD', 'NORD', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1757, 1, 'NORD EST', 'NORD EST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1758, 1, 'NORD OUEST', 'NORD OUEST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1759, 1, 'NORDEST', 'NORD EST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1760, 1, 'NORDOUEST', 'NORD OUEST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1763, 1, 'NORTH & SOUTH', 'NORTH & SOUTH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1765, 1, 'NORTH SOUTH', 'NORTH SOUTH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1767, 1, 'NORTHBOUND', 'NORTHBOUND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1768, 2, 'NORTHBOUND', 'NORTHBOUND', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1770, 1, 'NR', 'NEAR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1772, 1, 'NUMBER', '#', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1773, 2, 'NUMBER', '#', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1775, 1, 'O', '0', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1776, 2, 'O', 'O', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1777, 1, 'OESTE', 'OESTE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1778, 1, 'OF', 'OF', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1779, 1, 'OF PK', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1780, 1, 'OF PRK', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1781, 1, 'OFC', 'OFFICE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1782, 1, 'OFC CENTER', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1783, 1, 'OFC COMPLEX', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1784, 1, 'OFC CTR', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1785, 1, 'OFC PARK', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1786, 1, 'OFC PRK', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1787, 1, 'OFFICE', 'OFFICE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1788, 2, 'OFFICE', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1789, 1, 'OFFICE CENTER', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1790, 1, 'OFFICE COMPLEX', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1791, 1, 'OFFICE CTR', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1792, 1, 'OFFICE PARK', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1793, 1, 'OFFICE PRK', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1794, 1, 'OFFICES', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1795, 1, 'OFPK', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1796, 1, 'OFPRK', 'OFFICE PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1797, 1, 'OLD', 'OLD', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1798, 2, 'OLD', 'OLD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1799, 4, 'ON', 'ON', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1800, 1, 'ONE', '1', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1801, 2, 'ONE', '1', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1802, 1, 'ONE HUNDRED', 'ONE HUNDRED', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1803, 2, 'ONE HUNDRED', '100', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1804, 1, 'ONE MILE', 'ONE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1805, 1, 'ORCH', 'ORCHARD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1806, 1, 'ORCHARD', 'ORCHARD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1808, 1, 'OTLT', 'OUTLET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1809, 1, 'OUEST', 'OUEST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1810, 1, 'OUTLET', 'OUTLET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1811, 1, 'OUTLETS', 'OUTLET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1812, 1, 'OUTS', 'OUTSIDE OF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1813, 1, 'OUTSIDE', 'OUTSIDE OF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1817, 1, 'P BOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1818, 1, 'P BX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1819, 1, 'P H', 'PENTHOUSE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1820, 1, 'P O', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1821, 1, 'P O B', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1695, 1, 'NE', 'NE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1753, 2, 'NO', 'N', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1755, 1, 'NOR', 'N', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1761, 1, 'NORTE', 'N', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1822, 1, 'P O B X', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1823, 1, 'P O BOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1824, 1, 'P O BX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1825, 1, 'P O DRAWER', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1826, 4, 'PA', 'PARADE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1827, 1, 'PAR', 'PARCELAS', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1828, 2, 'PAR', 'PARCELAS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1829, 3, 'PAR', 'PARCELAS', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1830, 1, 'PAR RD', 'PARISH ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1831, 1, 'PAR ROAD', 'PARISH ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1832, 1, 'PARADE', 'PARADE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1833, 2, 'PARADE', 'PARADE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1834, 1, 'PARADERO', 'PARADERO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1835, 1, 'PARC', 'PARC', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1836, 2, 'PARC', 'PARC', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1837, 3, 'PARC', 'PARC', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1838, 1, 'PARCELAS', 'PARCELAS', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1839, 1, 'PARISH RD', 'PARISH ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1840, 1, 'PARISH ROAD', 'PARISH ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1841, 1, 'PARK', 'PARK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1844, 1, 'PARK & SHOP', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1845, 1, 'PARK N SHOP', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1848, 1, 'PARQUE', 'PARQUE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1849, 1, 'PARRD', 'PARISH ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1850, 1, 'PASAJE', 'PASAJE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1851, 1, 'PASEO', 'PASEO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1852, 1, 'PASO', 'PASO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1853, 2, 'PASO', 'PASO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1857, 1, 'PATHWAY', 'PATHWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1858, 1, 'PAVILION', 'PAVILLION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1859, 2, 'PAVILION', 'PAVILLION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1860, 1, 'PAVILIONS', 'PAVILLION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1861, 2, 'PAVILIONS', 'PAVILLION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1862, 1, 'PAVILLION', 'PAVILLION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1863, 2, 'PAVILLION', 'PAVILLION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1864, 1, 'PAVILLIONS', 'PAVILLION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1865, 2, 'PAVILLIONS', 'PAVILLION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1866, 1, 'PAVL', 'PAVILLION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1867, 2, 'PAVL', 'PAVILLION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1869, 1, 'PDA', 'PARADERO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1870, 1, 'PENTHOUSE', 'PENTHOUSE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1871, 1, 'PH', 'PENTHOUSE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1873, 1, 'PIECE', 'PIECE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1874, 2, 'PIECE', 'PIECE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1875, 1, 'PIER', 'PIER', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1876, 2, 'PIER', 'PIER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1877, 3, 'PIER', 'PIER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1879, 1, 'PINES', 'PINES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1881, 1, 'PISO', 'PISO', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1882, 1, 'PISTA', 'PISTA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1883, 1, 'PK', 'PARK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1893, 1, 'PLAIN', 'PLAINS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1894, 1, 'PLAINS', 'PLAINS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1895, 1, 'PLANTATION', 'PLANTATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1896, 2, 'PLANTATION', 'PLANTATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1897, 1, 'PLATEAU', 'PLATEAU', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1898, 2, 'PLATEAU', 'PLATEAU', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1902, 1, 'PLN', 'PLAINS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1903, 1, 'PLNS', 'PLAINS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1904, 1, 'PLNT', 'PLANTATION', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1909, 1, 'PM', 'PROMENADE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1910, 1, 'PNES', 'PINES', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1911, 1, 'PO', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1912, 1, 'PO B', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1913, 1, 'PO B OX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1914, 1, 'PO B X', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1915, 1, 'PO BOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1916, 1, 'PO BX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1917, 1, 'PO DRAWER', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1918, 1, 'POB', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1919, 1, 'POBOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1920, 1, 'POINT', 'POINT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1921, 1, 'PORT', 'PORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1923, 1, 'POST BOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1924, 1, 'POST BX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1925, 1, 'POST OFFICE BOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1926, 1, 'POSTAL BOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1927, 1, 'POSTAL BX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1928, 1, 'POSTAL OUTLET', 'POSTAL OUTLET', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1929, 2, 'POSTAL OUTLET', 'POSTAL OUTLET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1930, 1, 'POSTOFFICE BOX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1931, 1, 'POSTOFFICE BX', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1932, 1, 'POUCH', 'POST OFFICE BOX', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1934, 1, 'PR HI', 'PROVINCIAL HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1935, 1, 'PR HIGHWAY', 'PROVINCIAL HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1936, 1, 'PR HWY', 'PROVINCIAL HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1938, 1, 'PR RT', 'PROVINCIAL ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1939, 1, 'PR RTE', 'PROVINCIAL ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1940, 1, 'PRAIRIE', 'PRAIRIE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1941, 1, 'PREMIERE', '1', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1942, 2, 'PREMIERE', '1', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1943, 1, 'PRIVATE', 'PRIVATE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1944, 2, 'PRIVATE', 'PRIVATE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1945, 1, 'PRK', 'PARK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1948, 1, 'PRO', 'PROFESSIONAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1949, 1, 'PROF', 'PROFESSIONAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1947, 3, 'PRK', 'PARK', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1843, 3, 'PARK', 'PARK', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1933, 4, 'PR', 'PARK', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1885, 3, 'PK', 'PARK', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1888, 1, 'PKWAY', 'PKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1889, 1, 'PKWY', 'PKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1872, 2, 'PH', 'PATH', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1950, 1, 'PROFESSIONAL', 'PROFESSIONAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1951, 1, 'PROJ', 'PROJECTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1952, 1, 'PROJECTS', 'PROJECTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1953, 1, 'PROM', 'PROMENADE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1954, 2, 'PROM', 'PROMENADE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1955, 1, 'PROMENADE', 'PROMENADE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1956, 2, 'PROMENADE', 'PROMENADE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1957, 1, 'PROVINCIAL HI', 'PROVINCIAL HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1958, 1, 'PROVINCIAL HIGHWAY', 'PROVINCIAL HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1959, 1, 'PROVINCIAL HWY', 'PROVINCIAL HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1960, 1, 'PROVINCIAL HY', 'PROVINCIAL HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1961, 1, 'PROVINCIAL ROUTE', 'PROVINCIAL ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1962, 1, 'PROVINCIAL RT', 'PROVINCIAL ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1963, 1, 'PROVINCIAL RTE', 'PROVINCIAL ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1964, 1, 'PRQE', 'PARQUE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1965, 1, 'PRRD', 'PARISH ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1966, 1, 'PRT', 'PORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1968, 1, 'PSC', 'PSC', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1969, 1, 'PSO', 'PASEO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1970, 1, 'PSTA', 'PISTA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1971, 1, 'PT', 'POINT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1973, 1, 'PTE', 'PUENTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1974, 1, 'PU', 'PLATEAU', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1975, 1, 'PUENTE', 'PUENTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1976, 1, 'PV', 'PRIVATE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1977, 1, 'PVT', 'PRIVATE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1978, 2, 'PVT', 'PRIVATE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1979, 1, 'PW', 'PATHWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1983, 1, 'QTRS', 'QUARTERS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1984, 1, 'QU', 'QUAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1985, 1, 'QUAI', 'QUAI', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1986, 2, 'QUAI', 'QUAI', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1987, 1, 'QUARTERS', 'QUARTERS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1988, 1, 'QUATRE', '4', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1989, 2, 'QUATRE', '3', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1990, 1, 'QUATRIEME', 'QUATRIEME', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1991, 1, 'QUAY', 'QUAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1992, 2, 'QUAY', 'QUAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1993, 1, 'QUAY RD', 'QUAY ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1994, 1, 'QUAY ROAD', 'QUAY ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1995, 1, 'R', 'R', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1996, 2, 'R', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1997, 1, 'R D', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1998, 1, 'R D NO', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1999, 1, 'R F D', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2000, 1, 'R NO', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2001, 1, 'R P O', 'POSTAL OUTLET', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2002, 2, 'R P O', 'POSTAL OUTLET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2003, 1, 'R R', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2004, 1, 'R R NO', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2005, 1, 'R RT', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2006, 1, 'R RTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2009, 1, 'RA', 'RANGE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2010, 1, 'RADIAL', 'RADIAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2011, 1, 'RADL', 'RADIAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2012, 1, 'RAMAL', 'RAMAL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2014, 1, 'RAMPA', 'RAMPA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2015, 1, 'RANCH', 'RANCH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2016, 1, 'RANCH TO MARKET ROAD', 'RANCH TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2017, 1, 'RANCH TO MARKET ROAD', 'RANCH TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2018, 1, 'RANCH RD', 'RANCH ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2019, 1, 'RANCH RD', 'RANCH ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2020, 1, 'RANCH ROAD', 'RANCH ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2021, 1, 'RANCH ROAD', 'RANCH ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2022, 1, 'RANG', 'RANG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2023, 2, 'RANG', 'RANG', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2024, 1, 'RANGE', 'RANGE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2025, 2, 'RANGE', 'RANGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2026, 1, 'RANGE ROAD', 'RANGE ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2027, 1, 'RANGE ROAD', 'RANGE ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2028, 1, 'RAPIDS', 'RAPIDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2030, 1, 'RDG', 'RIDGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2032, 1, 'RDPT', 'ROND POINT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2033, 1, 'RDS', 'ROADS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2034, 1, 'RDWY', 'ROADWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2036, 1, 'REAR', 'REAR', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2037, 1, 'REAR', 'REAR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2038, 1, 'RES', 'RESIDENCIA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2039, 1, 'RES HWY', 'RESERVATION HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2040, 1, 'RESERVATION HIGHWAY', 'RESERVATION HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2041, 1, 'RESHY', 'RESERVATION HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2042, 1, 'RESIDENCIA', 'RESIDENCIA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2043, 1, 'RESORT', 'RESORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2044, 2, 'RESORT', 'RESORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2045, 1, 'REST', 'REST', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2046, 1, 'REZ DE CHAUSEE', 'REZ DE CHAUSEE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2047, 1, 'RFD', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2048, 1, 'RFD ROUTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2049, 1, 'RG', 'RANGE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2050, 2, 'RG', 'RANGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2051, 1, 'RGHT', 'RIGHT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2052, 4, 'RI', 'RISE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2053, 1, 'RIDGE', 'RIDGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2055, 1, 'RIGHT', 'RIGHT', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2056, 1, 'RISE', 'RISE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2057, 1, 'RIV', 'RIVER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2058, 1, 'RIVER', 'RIVER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2059, 1, 'RL', 'RUELLE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2060, 1, 'RLE', 'RUELLE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2061, 1, 'RM', 'ROOM', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2062, 2, 'RM', 'ROOM', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2063, 3, 'RM', 'RANCH TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2064, 4, 'RM', 'RANCH TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2065, 1, 'RM RD', 'RANCH TO MARKET ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2066, 1, 'RM RD', 'RANCH TO MARKET ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2067, 1, 'RML', 'RAMAL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2070, 1, 'RNCH', 'RANCH', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2071, 1, 'RNG ROAD', 'RANGE ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2072, 1, 'RNG ROAD', 'RANGE ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2075, 1, 'ROADS', 'ROADS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2076, 1, 'ROADWAY', 'ROADWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1980, 1, 'PWY', 'PKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1982, 1, 'PY', 'PKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2077, 1, 'ROND POINT', 'ROND POINT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2078, 1, 'ROOM', 'ROOM', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2086, 1, 'ROUTES', 'ROUTES', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2089, 1, 'RPDS', 'RAPIDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2090, 1, 'RPO', 'POSTAL OUTLET', 14, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2091, 2, 'RPO', 'POSTAL OUTLET', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2092, 1, 'RR', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2093, 1, 'RR NO', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2094, 1, 'RRT', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2095, 1, 'RRTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2096, 1, 'RSRT', 'RESORT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2097, 2, 'RSRT', 'RESORT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2107, 1, 'RUELLE', 'RUELLE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2109, 2, 'RUN', 'RUN', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2110, 1, 'RURAL', 'RURAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2111, 1, 'RURAL', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2112, 1, 'RURAL ROUTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2113, 1, 'RURAL ROUTE NO', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2114, 1, 'RURAL RT', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2115, 1, 'RUTA', 'RUTA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2119, 1, 'S / C', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2120, 1, 'S C', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2122, 1, 'S R', 'STAR ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2123, 2, 'S R', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2124, 1, 'S RT', 'STAR ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2125, 2, 'S RT', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2127, 1, 'S/C', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2128, 1, 'SAINT', 'SAINT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2129, 1, 'SAINTE', 'SAINTE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2130, 1, 'SANTA FE', 'SANTA FE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2131, 1, 'SC', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2132, 1, 'SCH', 'SCHOOL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2133, 1, 'SCHOOL', 'SCHOOL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2134, 2, 'SCHOOL', 'SCHOOL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2136, 1, 'SEARING ROUTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2137, 1, 'SEARING RT', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2138, 1, 'SEARING RTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2139, 1, 'SECOND', '2', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2140, 2, 'SECOND', '2', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2141, 1, 'SEM', 'SEMINARY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2142, 1, 'SEMINARY', 'SEMINARY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2143, 2, 'SEMINARY', 'SEMINARY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2144, 1, 'SENDERO', 'SENDERO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2145, 1, 'SENT', 'SENTIER', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2146, 1, 'SENTIER', 'SENTIER', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2150, 1, 'SERVICE', 'SERVICE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2154, 1, 'SEVEN', '7', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2155, 2, 'SEVEN', '7', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2156, 1, 'SEVEN CORNERS', 'SEVEN CORNERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2157, 2, 'SEVEN CORNERS', 'SEVEN CORNERS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2158, 1, 'SEVEN MILE', 'SEVEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2159, 1, 'SEVENTEEN', '17', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2160, 2, 'SEVENTEEN', '17', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2161, 1, 'SEVENTEEN MILE', 'SEVENTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2162, 1, 'SEVENTEENTH', '17', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2163, 2, 'SEVENTEENTH', '17', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2164, 1, 'SEVENTH', '7', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2165, 2, 'SEVENTH', '7', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2166, 1, 'SEVENTIETH', '70', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2167, 2, 'SEVENTIETH', '70', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2168, 1, 'SEVENTY', '70', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2169, 2, 'SEVENTY', '70', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2170, 1, 'SEVENTY EIGHT', '78', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2171, 2, 'SEVENTY EIGHT', '78', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2172, 1, 'SEVENTY EIGHTH', '78', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2173, 2, 'SEVENTY EIGHTH', '78', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2174, 1, 'SEVENTY FIFTH', '75', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2175, 2, 'SEVENTY FIFTH', '75', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2176, 1, 'SEVENTY FIRST', '71', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2177, 2, 'SEVENTY FIRST', '71', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2178, 1, 'SEVENTY FIVE', '75', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2179, 2, 'SEVENTY FIVE', '75', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2180, 1, 'SEVENTY FOUR', '74', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2181, 2, 'SEVENTY FOUR', '74', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2182, 1, 'SEVENTY FOURTH', '74', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2183, 2, 'SEVENTY FOURTH', '74', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2184, 1, 'SEVENTY NINE', '79', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2185, 2, 'SEVENTY NINE', '79', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2186, 1, 'SEVENTY NINTH', '79', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2187, 2, 'SEVENTY NINTH', '79', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2188, 1, 'SEVENTY ONE', '71', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2189, 2, 'SEVENTY ONE', '71', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2190, 1, 'SEVENTY SECOND', '72', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2191, 2, 'SEVENTY SECOND', '72', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2192, 1, 'SEVENTY SEVEN', '77', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2193, 2, 'SEVENTY SEVEN', '77', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2194, 1, 'SEVENTY SEVENTH', '77', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2195, 2, 'SEVENTY SEVENTH', '77', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2196, 1, 'SEVENTY SIX', '76', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2197, 2, 'SEVENTY SIX', '76', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2198, 1, 'SEVENTY SIXTH', '76', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2199, 2, 'SEVENTY SIXTH', '76', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2200, 1, 'SEVENTY THIRD', '73', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2201, 2, 'SEVENTY THIRD', '73', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2202, 1, 'SEVENTY THREE', '73', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2203, 2, 'SEVENTY THREE', '73', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2204, 1, 'SEVENTY TWO', '72', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2205, 2, 'SEVENTY TWO', '72', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2088, 1, 'RP', 'RAMP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2081, 3, 'ROUTE', 'RTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2104, 3, 'RTE', 'RTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2087, 1, 'ROW', 'ROW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2116, 1, 'RW', 'ROW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2106, 1, 'RUE', 'RUE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2105, 1, 'RU', 'RUE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2108, 1, 'RUN', 'RUN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2147, 1, 'SER RD', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2148, 1, 'SERV RD', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2149, 1, 'SERV ROAD', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2151, 2, 'SERVICE', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2117, 1, 'S', 'S', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2118, 2, 'S', 'S', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2121, 1, 'S E', 'SE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2126, 1, 'S W', 'SW', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2135, 1, 'SE', 'SE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2206, 1, 'SH', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2207, 1, 'SH CTR', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2208, 1, 'SHC', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2209, 1, 'SHL', 'SHOAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2210, 1, 'SHLS', 'SHOALS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2211, 1, 'SHOAL', 'SHOAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2212, 1, 'SHOALS', 'SHOALS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2213, 1, 'SHOP', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2214, 1, 'SHOP CEN', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2215, 1, 'SHOP CENTER', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2216, 1, 'SHOP CTR', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2218, 1, 'SHOP MART', 'SHOPPING MART', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2219, 1, 'SHOP N SAVE', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2221, 1, 'SHOP SQ', 'SHOPPING SQUARE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2222, 1, 'SHOPETTE', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2223, 1, 'SHOPPERS', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2224, 1, 'SHOPPES', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2225, 1, 'SHOPPETTE', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2226, 1, 'SHOPPING', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2227, 1, 'SHOPPING CENT', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2228, 1, 'SHOPPING CENTE', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2229, 1, 'SHOPPING CENTER', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2230, 1, 'SHOPPING CNTR', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2231, 1, 'SHOPPING CTR', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2233, 1, 'SHOPPING PARK', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2235, 1, 'SHOPS', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2236, 1, 'SHORE', 'SHORE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2237, 1, 'SHP', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2238, 1, 'SHP CENTER', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2239, 1, 'SHP CT', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2240, 1, 'SHP CTR', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2243, 1, 'SHPCT', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2244, 1, 'SHPG', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2245, 1, 'SHPG CENTER', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2246, 1, 'SHPG CNTR', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2247, 1, 'SHPG CTR', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2250, 1, 'SHR', 'SHORE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2251, 1, 'SIDE', 'SIDE', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2252, 2, 'SIDE', 'SIDE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2253, 1, 'SIDE ROAD', 'SIDE ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2254, 1, 'SITE', 'SITE', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2255, 2, 'SITE', 'SITE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2256, 1, 'SIX', '6', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2257, 2, 'SIX', '6', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2258, 1, 'SIX MILE', 'SIX MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2259, 1, 'SIXTEEN', '16', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2260, 2, 'SIXTEEN', '16', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2261, 1, 'SIXTEEN MILE', 'SIXTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2262, 1, 'SIXTEENTH', '16', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2263, 2, 'SIXTEENTH', '16', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2264, 1, 'SIXTH', '6', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2265, 2, 'SIXTH', '6', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2266, 1, 'SIXTIETH', '60', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2267, 2, 'SIXTIETH', '60', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2268, 1, 'SIXTY', '60', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2269, 2, 'SIXTY', '60', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2270, 1, 'SIXTY EIGHT', '68', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2271, 2, 'SIXTY EIGHT', '68', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2272, 1, 'SIXTY EIGHTH', '68', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2273, 2, 'SIXTY EIGHTH', '68', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2274, 1, 'SIXTY FIFTH', '65', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2275, 2, 'SIXTY FIFTH', '65', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2276, 1, 'SIXTY FIRST', '61', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2277, 2, 'SIXTY FIRST', '61', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2278, 1, 'SIXTY FIVE', '65', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2279, 2, 'SIXTY FIVE', '65', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2280, 1, 'SIXTY FOUR', '64', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2281, 2, 'SIXTY FOUR', '64', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2282, 1, 'SIXTY FOURTH', '64', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2283, 2, 'SIXTY FOURTH', '64', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2284, 1, 'SIXTY NINE', '69', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2285, 2, 'SIXTY NINE', '69', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2286, 1, 'SIXTY NINTH', '69', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2287, 2, 'SIXTY NINTH', '69', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2288, 1, 'SIXTY ONE', '61', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2289, 2, 'SIXTY ONE', '61', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2290, 1, 'SIXTY SECOND', '62', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2291, 2, 'SIXTY SECOND', '62', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2292, 1, 'SIXTY SEVEN', '67', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2293, 2, 'SIXTY SEVEN', '67', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2294, 1, 'SIXTY SEVENTH', '67', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2295, 2, 'SIXTY SEVENTH', '67', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2296, 1, 'SIXTY SIX', '66', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2297, 2, 'SIXTY SIX', '66', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2298, 1, 'SIXTY SIXTH', '66', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2299, 2, 'SIXTY SIXTH', '66', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2300, 1, 'SIXTY THIRD', '63', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2301, 2, 'SIXTY THIRD', '63', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2302, 1, 'SIXTY THREE', '63', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2303, 2, 'SIXTY THREE', '63', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2304, 1, 'SIXTY TWO', '62', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2305, 2, 'SIXTY TWO', '62', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2308, 1, 'SLIP', 'SLIP', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2309, 2, 'SLIP', 'SLIP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2311, 1, 'SMT', 'SUMMIT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2312, 2, 'SMT', 'SHOPPING MART', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2313, 1, 'SNDR', 'SENDERO', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2315, 1, 'SOTA', 'SOTANO', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2316, 2, 'SOTA', 'SOTA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2317, 1, 'SOTAN', 'SOTANO', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2318, 1, 'SOTANO', 'SOTANO', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2319, 1, 'SOUS SOL', 'SOUS SOL', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2323, 1, 'SOUTHBOUND', 'SOUTHBOUND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2324, 2, 'SOUTHBOUND', 'SOUTHBOUND', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2327, 1, 'SP', 'SPACE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2328, 2, 'SP', 'SHOPPING PLAZA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2329, 1, 'SPACE', 'SPACE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2330, 2, 'SPACE', 'SPACE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2331, 1, 'SPC', 'SPACE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2332, 1, 'SPDWY', 'SPEEDWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2314, 1, 'SO', 'S', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2310, 1, 'SM', 'MALL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2307, 1, 'SKYWAY', 'SKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2306, 1, 'SKWY', 'SKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2320, 1, 'SOUTH', 'S', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2321, 1, 'SOUTH EAST', 'SE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2322, 1, 'SOUTH WEST', 'SW', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2325, 1, 'SOUTHEAST', 'SE', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2326, 1, 'SOUTHWEST', 'SW', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2333, 1, 'SPEEDWAY', 'SPEEDWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2334, 1, 'SPG', 'SPRING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2335, 1, 'SPGS', 'SPRING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2336, 1, 'SPR', 'SPRING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2337, 1, 'SPRG', 'SPRING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2338, 1, 'SPRING', 'SPRING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2339, 1, 'SPRINGS', 'SPRING', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2342, 3, 'SPUR', 'SPUR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2343, 1, 'SPURNGS', 'SPUR', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2354, 1, 'SR', 'STAR ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2355, 2, 'SR', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2356, 3, 'SR', 'STAR ROUTE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2357, 4, 'SR', 'SIDE ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2358, 1, 'SRA', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2360, 1, 'SRV RTE', 'SERVICE ROUTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2364, 1, 'SS', 'SUBURBAN SERVICE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2366, 2, 'ST', 'SAINT', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2371, 1, 'ST R', 'STAR ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2372, 2, 'ST R', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2376, 2, 'ST ROUTE', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2378, 2, 'ST RT', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2380, 2, 'ST RTE', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2383, 3, 'STA', 'STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2384, 1, 'STALL', 'STALL', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2385, 2, 'STALL', 'STALL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2386, 1, 'STAR ROUTE', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2387, 1, 'STAR RT', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2390, 3, 'STAT', 'STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2391, 1, 'STATE', 'STATE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2404, 3, 'STATION', 'STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2405, 1, 'STATION FORCES', 'STATION FORCES', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2408, 3, 'STATN', 'STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2409, 1, 'STE', 'SUITE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2410, 2, 'STE', 'SAINTE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2411, 1, 'STES', 'SUITES', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2416, 1, 'STLL', 'STALL', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2419, 3, 'STN', 'STATION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2420, 1, 'STN FORCES', 'STATION FORCES', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2421, 1, 'STOP', 'STOP', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2422, 2, 'STOP', 'STOP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2423, 1, 'STOP & SHOP', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2424, 1, 'STOP & SHOP CTR', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2425, 1, 'STOR', 'STORE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2426, 2, 'STOR', 'STORE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2427, 1, 'STORE', 'STORE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2428, 2, 'STORE', 'STORE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2429, 3, 'STORE', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2430, 1, 'STORES', 'SHOPPING CENTER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2439, 1, 'STREAM', 'STREAM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2441, 1, 'STREETS', 'STREETS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2442, 1, 'STRIP', 'STRIP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2443, 2, 'STRIP', 'STRIP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2444, 1, 'STRM', 'STREAM', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2445, 1, 'STRP', 'STRIP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2446, 2, 'STRP', 'STRIP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2447, 1, 'STRT', 'STAR ROUTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2448, 2, 'STRT', 'STAR ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2451, 1, 'STS', 'STREETS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2452, 1, 'STUDIO', 'STUDIO', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2453, 2, 'STUDIO', 'STUDIO', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2454, 1, 'SU', 'SUITE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2455, 1, 'SUBD', 'SUBDIVISION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2456, 2, 'SUBD', 'SUBDIVISION', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2457, 1, 'SUBDIV', 'SUBDIVISION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2458, 2, 'SUBDIV', 'SUBDIVISION', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2459, 1, 'SUBDIVISION', 'SUBDIVISION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2460, 2, 'SUBDIVISION', 'SUBDIVISION', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2361, 1, 'SRVC', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2359, 1, 'SRV RD', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2363, 1, 'SRVRTE', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2362, 1, 'SRVRD', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2341, 2, 'SPUR', 'SPUR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2350, 1, 'SQUARE', 'SQ', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2344, 1, 'SQ', 'SQ', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2346, 1, 'SQR', 'SQ', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2348, 1, 'SQU', 'SQ', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2352, 1, 'SQURE', 'SQ', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2438, 1, 'STRD', 'STATE RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2381, 1, 'STA', 'STA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2417, 1, 'STN', 'STA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2406, 1, 'STATN', 'STA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2402, 1, 'STATION', 'STA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2388, 1, 'STAT', 'STA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2437, 1, 'STRAVN', 'STRA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2450, 1, 'STRVNUE', 'STRA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2449, 1, 'STRVN', 'STRA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2433, 1, 'STRAV', 'STRA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2434, 1, 'STRAVE', 'STRA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2435, 1, 'STRAVEN', 'STRA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2436, 1, 'STRAVENUE', 'STRA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2432, 1, 'STRA', 'STRA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2365, 1, 'ST', 'ST', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2431, 1, 'STR', 'ST', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2440, 1, 'STREET', 'ST', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2412, 1, 'STH', 'S', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2461, 1, 'SUBURBAN ROUTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2462, 1, 'SUBURBAN RT', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2463, 1, 'SUBURBAN RTE', 'RURAL ROUTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2464, 1, 'SUBURBAN SERVICE', 'SUBURBAN SERVICE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2465, 1, 'SUD', 'SUD', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2466, 1, 'SUD EST', 'SUD EST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2467, 1, 'SUD OUEST', 'SUD OUEST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2468, 1, 'SUDEST', 'SUD EST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2469, 1, 'SUDOUEST', 'SUD OUEST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2470, 1, 'SUIT', 'SUITE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2471, 2, 'SUIT', 'SUITE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2472, 1, 'SUITE', 'SUITE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2473, 1, 'SUITES', 'SUITES', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2474, 2, 'SUITES', 'SUITES', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2475, 1, 'SUMMIT', 'SUMMIT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2477, 1, 'SV RTE', 'SERVICE ROUTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2481, 1, 'SWP', 'SWAMP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2482, 1, 'TANK TRAIL', 'TANK TRAIL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2483, 1, 'TEN', '10', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2484, 2, 'TEN', '10', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2485, 1, 'TEN MILE', 'TEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2486, 1, 'TENTH', '10', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2487, 2, 'TENTH', '10', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2489, 1, 'TERM', 'TERMINAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2490, 2, 'TERM', 'TERMINAL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2491, 1, 'TERMINAL', 'TERMINAL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2492, 2, 'TERMINAL', 'TERMINAL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2494, 1, 'TERRASSE', 'TERRASSE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2495, 2, 'TERRASSE', 'TERRASSE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2497, 1, 'THE', 'THE', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2498, 1, 'THFR', 'THOROUGHFARE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2499, 1, 'THICKET', 'THICKET', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2500, 2, 'THICKET', 'THICKET', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2501, 1, 'THIRD', '3', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2502, 2, 'THIRD', '3', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2503, 1, 'THIRTEEN', '13', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2504, 2, 'THIRTEEN', '13', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2505, 1, 'THIRTEEN MILE', 'THIRTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2506, 1, 'THIRTEENTH', '13', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2507, 2, 'THIRTEENTH', '13', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2508, 1, 'THIRTIETH', '30', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2509, 2, 'THIRTIETH', '30', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2510, 1, 'THIRTY', '30', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2511, 2, 'THIRTY', '30', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2512, 1, 'THIRTY EIGHT', '38', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2513, 2, 'THIRTY EIGHT', '38', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2514, 1, 'THIRTY EIGHTH', '38', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2515, 2, 'THIRTY EIGHTH', '38', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2516, 1, 'THIRTY FIFTH', '35', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2517, 2, 'THIRTY FIFTH', '35', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2518, 1, 'THIRTY FIRST', '31', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2519, 2, 'THIRTY FIRST', '31', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2520, 1, 'THIRTY FIVE', '35', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2521, 2, 'THIRTY FIVE', '35', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2522, 1, 'THIRTY FOURTH', '34', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2523, 2, 'THIRTY FOURTH', '34', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2524, 1, 'THIRTY FOUR', '34', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2525, 2, 'THIRTY FOUR', '34', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2526, 1, 'THIRTY NINE', '39', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2527, 2, 'THIRTY NINE', '39', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2528, 1, 'THIRTY NINTH', '39', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2529, 2, 'THIRTY NINTH', '39', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2530, 1, 'THIRTY ONE', '31', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2531, 2, 'THIRTY ONE', '31', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2532, 1, 'THIRTY SECOND', '32', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2533, 2, 'THIRTY SECOND', '32', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2534, 1, 'THIRTY SEVEN', '37', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2535, 2, 'THIRTY SEVEN', '37', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2536, 1, 'THIRTY SEVENTH', '37', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2537, 2, 'THIRTY SEVENTH', '37', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2538, 1, 'THIRTY SIX', '36', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2539, 2, 'THIRTY SIX', '36', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2540, 1, 'THIRTY SIXTH', '36', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2541, 2, 'THIRTY SIXTH', '36', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2542, 1, 'THIRTY THIRD', '33', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2543, 2, 'THIRTY THIRD', '33', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2544, 1, 'THIRTY THREE', '33', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2545, 2, 'THIRTY THREE', '33', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2546, 1, 'THIRTY TWO', '32', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2547, 2, 'THIRTY TWO', '32', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2548, 1, 'THORO', 'THOROUGHFARE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2549, 1, 'THOROFARE', 'THOROUGHFARE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2550, 1, 'THOROUGHFARE', 'THOROUGHFARE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2551, 1, 'THREE', '3', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2552, 2, 'THREE', '3', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2553, 1, 'THREE MILE', 'THREE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2557, 1, 'TK TRL', 'TANK TRAIL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2558, 1, 'TKTRL', 'TANK TRAIL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2560, 1, 'TLINE', 'TOWNLINE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2561, 1, 'TLR', 'TRAILER', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2562, 1, 'TLR COURT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2563, 1, 'TLR CRT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2564, 1, 'TLR CT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2565, 1, 'TLR PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2566, 1, 'TLR PK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2567, 1, 'TLR PRK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2570, 1, 'TOP', 'TOP', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2571, 2, 'TOP', 'TOP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2572, 1, 'TOWER', 'TOWERS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2573, 2, 'TOWER', 'TOWER', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2574, 3, 'TOWER', 'TOWER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2575, 1, 'TOWERS', 'TOWERS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2576, 2, 'TOWERS', 'TOWERS', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2577, 3, 'TOWERS', 'TOWERS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2578, 4, 'TOWERS', 'TOWERS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2579, 1, 'TOWN HIGHWAY', 'TOWN HIGHWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2580, 2, 'TOWN HIGHWAY', 'TOWN HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2581, 1, 'TOWN HWY', 'TOWN HIGHWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2582, 2, 'TOWN HWY', 'TOWN HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2583, 1, 'TOWN RD', 'TOWN ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2584, 2, 'TOWN RD', 'TOWN ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2585, 1, 'TOWN ROAD', 'TOWN ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2586, 2, 'TOWN ROAD', 'TOWN ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2587, 1, 'TOWNHOME', 'TOWNHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2588, 1, 'TOWNHOMES', 'TOWNHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2589, 1, 'TOWNHOUSE', 'TOWNHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2476, 1, 'SUR', 'S', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2480, 1, 'SW', 'SW', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2590, 1, 'TOWNHOUSES', 'TOWNHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2591, 1, 'TOWNLINE', 'TOWNLINE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2592, 1, 'TOWNSHIP HIGHWAY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2593, 1, 'TOWNSHIP HIWAY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2594, 1, 'TOWNSHIP HWY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2595, 1, 'TOWNSHIP RD', 'TOWNSHIP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2596, 1, 'TOWNSHIP ROAD', 'TOWNSHIP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2597, 1, 'TP', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2602, 1, 'TR', 'TOWNSHIP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2604, 1, 'TR COURT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2605, 1, 'TR CRT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2606, 1, 'TR CT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2607, 1, 'TR PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2608, 1, 'TR PK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2609, 1, 'TR PRK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2610, 1, 'TR VILLAGE', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2611, 1, 'TR VLG', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2612, 1, 'TRACE', 'TRACE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2614, 1, 'TRACK', 'TRACK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2617, 2, 'TRAIL', 'TRAIL', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2618, 1, 'TRAILER', 'TRAILER', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2619, 2, 'TRAILER', 'TRAILER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2620, 1, 'TRAILER COURT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2621, 1, 'TRAILER CRT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2622, 1, 'TRAILER CT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2623, 1, 'TRAILER PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2624, 1, 'TRAILER PK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2625, 1, 'TRAILER PRK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2626, 1, 'TRAILER VILLAGE', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2627, 1, 'TRAILER VLG', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2641, 1, 'TRL', 'TRL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2628, 1, 'TRAILERCOURT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2629, 1, 'TRAILERPARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2630, 1, 'TRAILERS', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2632, 1, 'TRAK', 'TRACK', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2633, 1, 'TRANS CANADA', 'TRANS CANADA', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2634, 2, 'TRANS CANADA', 'TRANS CANADA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2635, 1, 'TRANSCANADA', 'TRANS CANADA', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2636, 2, 'TRANSCANADA', 'TRANS CANADA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2637, 1, 'TRCE', 'TRACE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2639, 1, 'TRCRT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2640, 1, 'TRCT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2642, 1, 'TRL COURT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2643, 1, 'TRL CRT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2644, 1, 'TRL CT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2645, 1, 'TRL PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2646, 1, 'TRL PK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2647, 1, 'TRL PRK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2648, 1, 'TRL VILLAGE', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2649, 1, 'TRL VLG', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2650, 1, 'TRLCRT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2651, 1, 'TRLCT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2652, 1, 'TRLPK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2653, 1, 'TRLPRK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2654, 1, 'TRLR', 'TRAILER', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2655, 2, 'TRLR', 'TRAILER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2656, 1, 'TRLR COURT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2657, 1, 'TRLR CRT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2658, 1, 'TRLR CT', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2659, 1, 'TRLR PARK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2660, 1, 'TRLR PK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2661, 1, 'TRLR PRK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2662, 1, 'TRLR VILLAGE', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2663, 1, 'TRLR VLG', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2664, 1, 'TRNABT', 'TURNABOUT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2666, 1, 'TROIS', '3', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2667, 2, 'TROIS', '3', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2668, 1, 'TROISIEME', 'TROISIEME', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2669, 1, 'TRPK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2670, 1, 'TRPRK', 'TRAILER PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2671, 1, 'TSSE', 'TERRASSE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2672, 2, 'TSSE', 'TERRASEE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2677, 1, 'TURNABOUT', 'TURNABOUT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2684, 1, 'TW HY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2685, 1, 'TW RD', 'TOWNSHIP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2686, 1, 'TWELFTH', '12', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2687, 2, 'TWELFTH', '12', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2688, 1, 'TWELVE', '12', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2689, 2, 'TWELVE', '12', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2690, 1, 'TWELVE MILE', 'TWELVE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2691, 1, 'TWENTIETH', '20', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2692, 2, 'TWENTIETH', '20', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2693, 1, 'TWENTY', '20', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2694, 2, 'TWENTY', '20', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2695, 1, 'TWENTY EIGHT', '28', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2696, 2, 'TWENTY EIGHT', '28', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2697, 1, 'TWENTY EIGHTH', '28', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2698, 2, 'TWENTY EIGHTH', '28', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2699, 1, 'TWENTY FIRST', '21', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2700, 2, 'TWENTY FIRST', '21', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2701, 1, 'TWENTY FIFTH', '25', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2702, 2, 'TWENTY FIFTH', '25', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2703, 1, 'TWENTY FIVE', '25', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2704, 2, 'TWENTY FIVE', '25', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2705, 1, 'TWENTY FOURTH', '24', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2706, 2, 'TWENTY FOURTH', '24', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2707, 1, 'TWENTY FOUR', '24', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2708, 2, 'TWENTY FOUR', '24', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2709, 1, 'TWENTY MILE', 'TWENTY MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2710, 1, 'TWENTY NINE', '29', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2711, 2, 'TWENTY NINE', '29', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2712, 1, 'TWENTY NINTH', '29', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2713, 2, 'TWENTY NINTH', '29', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2613, 2, 'TRACE', 'TRCE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2638, 2, 'TRCE', 'TRCE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2615, 1, 'TRAFFICWAY', 'TRFY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2603, 2, 'TR', 'TRL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2714, 1, 'TWENTY ONE', '21', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2715, 2, 'TWENTY ONE', '21', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2716, 1, 'TWENTY SECOND', '22', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2717, 2, 'TWENTY SECOND', '22', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2718, 1, 'TWENTY SEVEN', '27', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2719, 2, 'TWENTY SEVEN', '27', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2720, 1, 'TWENTY SEVENTH', '27', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2721, 2, 'TWENTY SEVENTH', '27', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2722, 1, 'TWENTY SIX', '26', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2723, 2, 'TWENTY SIX', '26', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2724, 1, 'TWENTY SIXTH', '26', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2725, 2, 'TWENTY SIXTH', '26', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2726, 1, 'TWENTY THIRD', '23', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2727, 2, 'TWENTY THIRD', '23', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2728, 1, 'TWENTY THREE', '23', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2729, 2, 'TWENTY THREE', '23', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2730, 1, 'TWENTY THREE MILE', 'TWENTY THREE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2731, 1, 'TWENTY TWO', '22', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2732, 2, 'TWENTY TWO', '22', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2733, 1, 'TWHY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2734, 1, 'TWNH', 'TOWNHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2735, 1, 'TWNHS', 'TOWNHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2736, 1, 'TWNHWY', 'TOWN HIGHWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2737, 2, 'TWNHWY', 'TOWN HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2738, 1, 'TWNRD', 'TOWN ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2739, 2, 'TWNRD', 'TOWN ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2740, 1, 'TWO', '2', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2741, 2, 'TWO', '2', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2742, 1, 'TWO MILE', 'TWO MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2743, 1, 'TWP', 'TOWNSHIP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2744, 2, 'TWP', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2745, 1, 'TWP HIGHWAY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2746, 1, 'TWP HIWAY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2747, 1, 'TWP HWY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2748, 1, 'TWP HY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2749, 1, 'TWP RD', 'TOWNSHIP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2750, 1, 'TWP ROAD', 'TOWNSHIP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2751, 1, 'TWPHWY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2752, 1, 'TWPHY', 'TOWNSHIP HIGHWAY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2753, 1, 'TWPRD', 'TOWNSHIP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2754, 1, 'TWPROAD', 'TOWNSHIP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2755, 1, 'TWR', 'TOWER', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2756, 2, 'TWR', 'TOWER', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2757, 1, 'TWRD', 'TOWNSHIP ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2758, 1, 'TWRS', 'TOWERS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2759, 2, 'TWRS', 'TOWERS', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2760, 3, 'TWRS', 'TOWERS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2761, 1, 'U', 'UNIVERSITY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2762, 2, 'U', 'U', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2772, 1, 'UN', 'UNION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2773, 2, 'UN', '1', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2774, 3, 'UN', '1', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2775, 1, 'UN RD', 'UNNAMED ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2777, 1, 'UNI', 'UNIVERSITY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2778, 1, 'UNION', 'UNION', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2779, 1, 'UNIT', 'UNIT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2780, 1, 'UNITE', 'UNITE', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2783, 1, 'UNITED STATES LOOP', 'US LOOP', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2784, 1, 'UNIV', 'UNIVERSITY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2785, 2, 'UNIV', 'UNIVERSITY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2786, 1, 'UNIVD', 'UNIVERSITY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2787, 2, 'UNIVD', 'UNIVERSITY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2788, 1, 'UNIVERSIDAD', 'UNIVERSIDAD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2789, 2, 'UNIVERSIDAD', 'UNIVERSIDAD', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2790, 1, 'UNIVERSITY', 'UNIVERSITY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2791, 2, 'UNIVERSITY', 'UNIVERSITY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2792, 3, 'UNIVERSITY', 'UNIVERSITY', 19, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2793, 1, 'UNNAMED ROAD', 'UNNAMED ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2796, 1, 'UNRD', 'UNNAMED ROAD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2797, 1, 'UNT', 'UNIT', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2798, 1, 'UP', 'UP', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2799, 2, 'UP', 'UP', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2800, 1, 'UPPER', 'UPPER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2801, 2, 'UPPER', 'UPPER', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2802, 1, 'UPPR', 'UPPER', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2803, 2, 'UPPR', 'UPPER', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2804, 1, 'UPSTAIRS', 'UPSTAIRS', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2806, 1, 'US FOREST SERVICE ROAD', 'US FOREST SERVICE ROAD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2812, 1, 'US LOOP', 'US LOOP', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2813, 1, 'US LP', 'US LOOP', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2817, 1, 'USFS RD', 'US FOREST SERVICE RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2818, 1, 'USFSR', 'US FOREST SERVICE RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2822, 1, 'USLP', 'US LOOP', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2826, 1, 'VAL', 'VALLEY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2827, 1, 'VALL', 'VALLEY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2828, 1, 'VALLEY', 'VALLEY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2829, 1, 'VALLY', 'VALLEY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2830, 1, 'VER', 'VEREDA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2831, 1, 'VEREDA', 'VEREDA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2834, 1, 'VIADUCT', 'VIADUCT', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2835, 1, 'VIEW', 'VIEW', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2839, 3, 'VILL', 'VILLAGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2840, 1, 'VILLA', 'VILLA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2841, 2, 'VILLA', 'VILLA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2794, 1, 'UNP', 'UPAS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2776, 1, 'UNDERPASS', 'UPAS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2795, 1, 'UNPS', 'UPAS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2832, 2, 'VI', 'VIA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2833, 1, 'VIA', 'VIA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2836, 2, 'VIEW', 'VW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2837, 1, 'VILL', 'VLG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2842, 3, 'VILLA', 'VILLA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2845, 3, 'VILLAG', 'VILLAGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2848, 3, 'VILLAGE', 'VILLAGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2849, 1, 'VILLAS', 'VILLA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2850, 1, 'VILLE', 'VILLE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2853, 3, 'VILLG', 'VILLAGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2857, 3, 'VILLIAGE', 'VILLAGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2858, 1, 'VIS', 'VISTA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2860, 1, 'VISTA', 'VISTA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2862, 1, 'VIVI', 'VIVIENDA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2863, 1, 'VIVIENDA', 'VIVIENDA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2864, 1, 'VL', 'VILLE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2868, 3, 'VLG', 'VILLAGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2871, 3, 'VLGE', 'VILLAGE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2872, 1, 'VLLA', 'VILLA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2873, 2, 'VLLA', 'VILLA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2874, 1, 'VLY', 'VALLEY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2875, 1, 'VOIE', 'VOIE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2876, 1, 'VRDA', 'VEREDA', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2877, 1, 'VW', 'VIEW', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2882, 1, 'WALKWAY', 'WALKWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2883, 1, 'WALKWY', 'WALKWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2885, 1, 'WAREHOUSE', 'WAREHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2886, 2, 'WAREHOUSE', 'WAREHOUSE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2887, 1, 'WATERWAY', 'WATERWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2889, 1, 'WD', 'WYND', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2890, 1, 'WDS', 'WOODS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2892, 1, 'WELLS', 'WELLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2894, 1, 'WESTBOUND', 'WESTBOUND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2895, 2, 'WESTBOUND', 'WESTBOUND', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2896, 1, 'WHARF', 'WHARF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2897, 2, 'WHARF', 'WHARF', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2898, 1, 'WHF', 'WHARF', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2899, 2, 'WHF', 'WHARF', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2900, 1, 'WHS', 'WAREHOUSE', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2901, 2, 'WHS', 'WAREHOUSE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2902, 1, 'WILDLIFE MGMT AREA', 'WILDLIFE AREA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2904, 1, 'WKWY', 'WALKWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2905, 1, 'WLKWY', 'WALKWAY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2906, 1, 'WLS', 'WELLS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2907, 1, 'WMA', 'WILDLIFE AREA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2908, 1, 'WO', 'WOOD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2909, 1, 'WOOD', 'WOOD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2910, 2, 'WOOD', 'WOOD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2911, 1, 'WOODS', 'WOODS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2912, 1, 'WTRWY', 'WATERWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2913, 1, 'WWY', 'WATERWAY', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2916, 1, 'WYND', 'WYND', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2920, 1, 'XRDS', 'CROSSROADS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2923, 1, 'YARD', 'YARD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2924, 1, 'YARDS', 'YARDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2925, 1, 'YD', 'YARD', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2926, 1, 'YDS', 'YARDS', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2927, 1, 'ZANJA', 'ZANJA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2928, 1, 'ZERO', '0', 0, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2929, 1, 'ZERO', '0', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2930, 1, 'ZNJA', 'ZANJA', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (197, 4, 'AL', 'ALY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (196, 2, 'AL', 'ALY', 11, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (216, 2, 'ANNEX', 'ANX', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (214, 2, 'ANEX', 'ANX', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (218, 2, 'ANNX', 'ANX', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (220, 2, 'ANX', 'ANX', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (239, 2, 'ARC', 'ARC', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (241, 2, 'ARCADE', 'ARC', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2879, 1, 'W', 'W', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2880, 2, 'W', 'W', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2891, 1, 'WE', 'W', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2893, 1, 'WEST', 'W', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (264, 1, 'AVE', 'AVE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (265, 1, 'AVEN', 'AVE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (298, 2, 'BEACH', 'BCH', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (289, 2, 'BCH', 'BCH', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (303, 1, 'BH', 'BCH', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (324, 2, 'BND', 'BND', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (296, 1, 'BE', 'BND', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (300, 2, 'BEND', 'BND', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (314, 2, 'BLF', 'BLF', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (319, 2, 'BLUFF', 'BLF', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (321, 1, 'BLVD', 'BLVD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (320, 1, 'BLV', 'BLVD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (304, 1, 'BL', 'BLVD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (290, 1, 'BD', 'BLVD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (338, 1, 'BOUL', 'BLVD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (339, 1, 'BOULEVARD', 'BLVD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (340, 1, 'BOULV', 'BLVD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (353, 1, 'BRG', 'BRG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (332, 1, 'BOT', 'BTM', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (334, 1, 'BOTTM', 'BTM', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (336, 1, 'BOTTOM', 'BTM', 17, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (412, 1, 'BYP', 'BYP', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (420, 1, 'BYPS', 'BYP', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (409, 1, 'BY PASS', 'BYP', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (418, 1, 'BYPASS', 'BYP', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (345, 2, 'BP', 'BYP', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (416, 1, 'BYPAS', 'BYP', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (414, 1, 'BYPA', 'BYP', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (344, 1, 'BP', 'BYP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (466, 2, 'CEN', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (464, 1, 'CE', 'CTR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (495, 1, 'CIR', 'CIR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (498, 1, 'CIRCLE', 'CIR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (497, 1, 'CIRCL', 'CIR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (508, 1, 'CL', 'CIR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (526, 2, 'CLUB', 'CLB', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (511, 2, 'CLB', 'CLB', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (525, 1, 'CLUB', 'CLB', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (510, 1, 'CLB', 'CLB', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (730, 1, 'CTY HIGHWAY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (548, 1, 'CNTY HWY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (547, 1, 'CNTY HIWAY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (546, 1, 'CNTY HIGHWAY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (568, 1, 'COHWY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (638, 1, 'COUNTY HWY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (560, 1, 'CO HWY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (559, 1, 'CO HIWAY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (732, 1, 'CTY HWY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (637, 1, 'COUNTY HIWAY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (558, 1, 'CO HIGHWAY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (636, 1, 'COUNTY HIGHWAY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (731, 1, 'CTY HIWAY', 'CO HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (561, 1, 'CO RD', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (563, 1, 'CO ROAD', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (733, 1, 'CTY RD', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (429, 1, 'C R', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (639, 1, 'COUNTY RD', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (641, 1, 'COUNTY ROAD', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (646, 1, 'COUNTY TRUNK', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (735, 1, 'CTY ROAD', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (670, 2, 'CR', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (549, 1, 'CNTY RD', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (551, 1, 'CNTY ROAD', 'CO RD', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (613, 1, 'CORD', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (738, 1, 'CTY RT', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (566, 1, 'CO RT', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (567, 1, 'CO RTE', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (645, 1, 'COUNTY RTE', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (644, 1, 'COUNTY RT', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (739, 1, 'CTY RTE', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (626, 1, 'CORT', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (627, 1, 'CORTE', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (565, 1, 'CO ROUTE', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (555, 1, 'CNTY RTE', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (643, 1, 'COUNTY ROUTE', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (554, 1, 'CNTY RT', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (553, 1, 'CNTY ROUTE', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (737, 1, 'CTY ROUTE', 'CO RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (681, 1, 'CRNR', 'COR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (615, 1, 'CORNER', 'COR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (535, 1, 'CNR', 'COR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (619, 2, 'CORNERS', 'CORS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (611, 1, 'COR', 'CORS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (622, 2, 'CORS', 'CORS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (430, 2, 'C R', 'CO RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (705, 1, 'CRST', 'CRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (675, 1, 'CRES', 'CRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (669, 1, 'CR', 'CRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (678, 1, 'CRESENT', 'CRES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (487, 1, 'CG', 'XING', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (690, 1, 'CROSSING', 'XING', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (699, 1, 'CRSG', 'XING', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (703, 1, 'CRSSNG', 'XING', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2917, 1, 'XING', 'XING', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2919, 1, 'XRD', 'XRD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (693, 1, 'CROSSROAD', 'XRD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (724, 1, 'CTR', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (541, 1, 'CNTR', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (720, 1, 'CTER', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (543, 1, 'CNTRE', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (726, 1, 'CTRO', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (475, 1, 'CENTR', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (482, 1, 'CENTRO', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (481, 1, 'CENTRES', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (478, 1, 'CENTRE', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (465, 1, 'CEN', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (467, 1, 'CENT', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (469, 1, 'CENTE', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (471, 1, 'CENTER', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (474, 1, 'CENTERS', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (537, 1, 'CNT', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (539, 1, 'CNTER', 'CTR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (658, 2, 'COURTS', 'CTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (728, 2, 'CTS', 'CTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (712, 1, 'CRV', 'CURV', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (747, 2, 'CURVE', 'CURV', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (756, 2, 'DALE', 'DL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (902, 4, 'EST', 'EST', 22, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (905, 3, 'ESTATE', 'ESTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (901, 3, 'EST', 'ESTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (908, 3, 'ESTATES', 'ESTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (913, 3, 'ESTS', 'ESTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (914, 1, 'ET', 'ESTS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (912, 2, 'ESTS', 'ESTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (907, 2, 'ESTATES', 'ESTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (904, 2, 'ESTATE', 'ESTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (900, 2, 'EST', 'ESTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2922, 1, 'XWY', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2921, 1, 'XWAY', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (933, 1, 'EXPW', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (928, 1, 'EXP', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (929, 1, 'EXPR', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (931, 1, 'EXPRESS', 'EXPY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (943, 1, 'EXTENSION', 'EXT', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (945, 1, 'EXTN', 'EXT', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (940, 1, 'EXTEN', 'EXT', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (947, 1, 'EXTSN', 'EXT', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (937, 1, 'EXT', 'EXT', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (920, 2, 'EX', 'EXT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (941, 2, 'EXTEN', 'EXT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (946, 2, 'EXTN', 'EXT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (948, 2, 'EXTSN', 'EXT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (938, 2, 'EXT', 'EXT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (944, 2, 'EXTENSION', 'EXT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (971, 2, 'FIELD', 'FLD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1109, 1, 'FREEWY', 'FWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1141, 2, 'GARDENS', 'GDNS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1133, 4, 'GA', 'GDNS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1155, 2, 'GDS', 'GDNS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1152, 2, 'GDNS', 'GDNS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1578, 2, 'MDWS', 'MDWS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1150, 1, 'GDN', 'GDN', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1153, 3, 'GDNS', 'GDNS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1142, 3, 'GARDENS', 'GDNS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1167, 2, 'GLEN', 'GLN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1169, 2, 'GLN', 'GLN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1163, 1, 'GL', 'GLN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1177, 2, 'GREEN', 'GRN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1175, 2, 'GR', 'GRN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1181, 2, 'GRN', 'GRN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1146, 2, 'GATEWAY', 'GTWY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1195, 2, 'GTWY', 'GTWY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1193, 2, 'GTWAY', 'GTWY', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1212, 3, 'HARBR', 'HBR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1209, 3, 'HARBOUR', 'HBR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1298, 3, 'HRBR', 'HBR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1301, 3, 'HRBOR', 'HBR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1261, 2, 'HIWAY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1240, 2, 'HGY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1249, 2, 'HIGHWAY', 'HWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1258, 2, 'HILL', 'HL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1268, 2, 'HL', 'HL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1274, 1, 'HO', 'HOLW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1281, 2, 'HOLW', 'HOLW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1277, 2, 'HOL', 'HOLW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1279, 2, 'H0LL0W', 'HOLW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1270, 2, 'HLLW', 'HOLW', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1231, 3, 'HGT', 'HTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1313, 3, 'HTS', 'HTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1234, 3, 'HGTS', 'HTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1226, 3, 'HEIGHTS', 'HTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1308, 3, 'HT', 'HTS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1242, 1, 'HI', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1332, 1, 'HYWY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1319, 1, 'HWAY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1322, 1, 'HWY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1248, 1, 'HIGHWAY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1260, 1, 'HIWAY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1254, 1, 'HIGHWY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1328, 1, 'HY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1235, 1, 'HGWY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1239, 1, 'HGY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1264, 1, 'HIWY', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1317, 1, 'HW', 'HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1335, 2, 'I', 'I-', 18, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1423, 2, 'JUNC', 'JCT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1429, 2, 'JUNCTION', 'JCT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1432, 2, 'JUNCTN', 'JCT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1410, 2, 'JCTION', 'JCT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1413, 2, 'JCTN', 'JCT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1419, 2, 'JNCT', 'JCT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1407, 2, 'JCT', 'JCT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1426, 2, 'JUNCT', 'JCT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1435, 2, 'JUNCTON', 'JCT', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1418, 1, 'JNCT', 'JCT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1505, 1, 'LN', 'LN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1523, 2, 'LODGE', 'LDG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1475, 2, 'LDG', 'LDG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1478, 2, 'LDGE', 'LDG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1455, 2, 'LA', 'LN', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1507, 2, 'LNDG', 'LNDG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1459, 2, 'LAND', 'LNDG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1510, 2, 'LNDNG', 'LNDG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1465, 2, 'LANDINGS', 'LNDG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1462, 2, 'LANDING', 'LNDG', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1477, 1, 'LDGE', 'LDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1522, 1, 'LODGE', 'LDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1474, 1, 'LDG', 'LDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1527, 1, 'LOOP', 'LOOP', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1528, 2, 'LOOP', 'LOOP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1538, 2, 'LP', 'LOOP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1512, 1, 'LO', 'LOOP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1537, 1, 'LP', 'LOOP', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1556, 1, 'MALL IN', 'MALL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2232, 1, 'SHOPPING MALL', 'MALL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2217, 1, 'SHOP MALL', 'MALL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1552, 1, 'MAL', 'MALL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2241, 1, 'SHP ML', 'MALL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1554, 2, 'MALL', 'MALL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2248, 1, 'SHPML', 'MALL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1614, 2, 'ML', 'MALL', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1553, 1, 'MALL', 'MALL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1557, 1, 'MANOR', 'MNR', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1583, 2, 'MEADOWS', 'MDWS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1592, 3, 'MEWS', 'MEWS', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1620, 2, 'MNR', 'MNR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1560, 1, 'MANORS', 'MNR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1558, 2, 'MANOR', 'MNR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1622, 1, 'MNRS', 'MNR', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1648, 1, 'MOTORWAY', 'MTWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1666, 1, 'MTWY', 'MTWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1667, 1, 'MU', 'MT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1650, 2, 'MOUNT', 'MT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1652, 2, 'MOUNTAIN', 'MTN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1807, 2, 'ORCHARD', 'ORCH', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1814, 1, 'OVAL', 'OVAL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1815, 1, 'OVERPASS', 'OPAS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1816, 1, 'OVPS', 'OPAS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1884, 2, 'PK', 'PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1946, 2, 'PRK', 'PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1842, 2, 'PARK', 'PARK', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1981, 1, 'PWKY', 'PKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1846, 1, 'PARKWAY', 'PKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1890, 1, 'PKY', 'PKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1847, 1, 'PARKWY', 'PKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1887, 1, 'PKW', 'PKWY', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1854, 1, 'PASS', 'PASS', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1855, 1, 'PASSAGE', 'PSGE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1856, 1, 'PATH', 'PATH', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1878, 1, 'PIKE', 'PIKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1886, 1, 'PKE', 'PIKE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1880, 2, 'PINES', 'PNES', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1892, 1, 'PLACE', 'PL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1901, 1, 'PLC', 'PL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1891, 1, 'PL', 'PL', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1899, 1, 'PLAZA', 'PLZ', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1907, 1, 'PLZA', 'PLZ', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1905, 1, 'PLZ', 'PLZ', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1906, 2, 'PLZ', 'PLZ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1908, 2, 'PLZA', 'PLZ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2242, 1, 'SHP PL', 'PLZ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2249, 1, 'SHPPL', 'PLZ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1900, 2, 'PLAZA', 'PLZ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2220, 1, 'SHOP PLZ', 'PLZ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2234, 1, 'SHOPPING PLAZA', 'PLZ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1972, 2, 'PT', 'PT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1922, 2, 'PORT', 'PRT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1967, 2, 'PRT', 'PRT', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2068, 1, 'RMP', 'RAMP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2013, 1, 'RAMP', 'RAMP', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2031, 2, 'RDG', 'RDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2054, 2, 'RIDGE', 'RDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2035, 1, 'RE', 'RDG', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2074, 1, 'ROAD', 'RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2029, 1, 'RD', 'RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2073, 1, 'RO', 'RTE', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2103, 2, 'RTE', 'RTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2007, 1, 'R T', 'RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2008, 2, 'R T', 'RTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2079, 1, 'ROUTE', 'RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2766, 1, 'U S HIWAY', 'US HWY', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (1, 1, '#', '#', 16, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2, 2, '#', '#', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (3, 1, '&', 'AND', 13, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (4, 2, '&', 'AND', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (5, 3, '&', 'AND', 7, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (6, 1, '-', '-', 9, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (7, 1, '1 / 2', '1/2', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (8, 1, '1 / 2 MILE', '1/2 MI', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (9, 1, '1 / 3', '1/3', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (10, 1, '1 / 4', '1/4', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (11, 1, '1 MI', 'ONE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (12, 1, '1 MILE', 'ONE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (13, 1, '1/2', '1/2', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (14, 1, '1/2 MILE', '1/2 MI', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (15, 1, '1/3', '1/3', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (16, 1, '1/4', '1/4', 25, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (17, 1, '10 MI', 'TEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (18, 1, '10 MILE', 'TEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (19, 1, '10MI', 'TEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (20, 1, '100 MILE', 'ONE HUNDRED MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (21, 1, '11 MI', 'ELEVEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (22, 1, '11 MILE', 'ELEVEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (23, 1, '11MI', 'ELEVEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (24, 1, '12 MI', 'TWELVE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (25, 1, '12 MILE', 'TWELVE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (26, 1, '12MI', 'TWELVE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (27, 1, '13 MI', 'THIRTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (28, 1, '13 MILE', 'THIRTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (29, 1, '13MI', 'THIRTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (30, 1, '14 MI', 'FOURTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (31, 1, '14 MILE', 'FOURTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (32, 1, '14MI', 'FOURTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (33, 1, '15 MI', 'FIFTEEN MI', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (34, 1, '15 MILE', 'FIFTEEN MI', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (35, 1, '15MI', 'FIFTEEN MI', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (36, 1, '16 MI', 'SIXTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (37, 1, '16 MILE', 'SIXTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (38, 1, '16MI', 'SIXTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (39, 1, '17 MI', 'SEVENTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (40, 1, '17 MILE', 'SEVENTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (41, 1, '17MI', 'SEVENTEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (42, 1, '18 MI', 'EIGHTEEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (43, 1, '18 MILE', 'EIGHTEEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (44, 1, '18MI', 'EIGHTEEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (45, 1, '19 MI', 'NINETEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (46, 1, '19 MILE', 'NINETEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (47, 1, '19MI', 'NINETEEN MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (48, 1, '1ER', 'PREMIERE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (49, 1, '1ER', '1', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (50, 1, '1MI', 'ONE MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (51, 1, '1RE', 'PREMIERE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (52, 1, '1RE', '1', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (53, 1, '1ST', '1', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (54, 2, '1ST', '1', 15, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (55, 1, '2 MI', 'TWO MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (56, 1, '2 MILE', 'TWO MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (57, 1, '20 MI', 'TWENTY MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (58, 1, '20 MILE', 'TWENTY MILE', 1, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (211, 1, 'AND', 'AND', 13, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2080, 2, 'ROUTE', 'RTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2082, 1, 'ROUTE NO', 'RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2083, 2, 'ROUTE NO', 'RTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2085, 2, 'ROUTE NUMBER', 'RTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2098, 1, 'RT', 'RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2099, 2, 'RT', 'RTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2100, 1, 'RT NO', 'RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2101, 2, 'RT NO', 'RTE', 8, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2102, 1, 'RTE', 'RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2084, 1, 'ROUTE NUMBER', 'RTE', 6, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2069, 1, 'RN', 'RUN', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2479, 1, 'SVRD', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2152, 1, 'SERVICE RD', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2153, 1, 'SERVICE ROAD', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2478, 1, 'SVC RD', 'SVC RD', 2, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2340, 1, 'SPUR', 'SPUR', 3, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2349, 2, 'SQU', 'SQ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2347, 2, 'SQR', 'SQ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2345, 2, 'SQ', 'SQ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2353, 2, 'SQURE', 'SQ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2351, 2, 'SQUARE', 'SQ', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2418, 2, 'STN', 'STA', 24, false);
-INSERT INTO pagc_lex (id, seq, word, stdword, token, is_custom) VALUES (2935, 2, 'NORTHWEST', 'NW', 22, false);
-
-
-SELECT pg_catalog.setval('pagc_lex_id_seq', (SELECT greatest((SELECT MAX(id) FROM pagc_lex),50000)), true);
-
-
--- set default to false so all we input will be treated as no custom -- 
-ALTER TABLE tiger.pagc_rules ALTER COLUMN is_custom SET DEFAULT false;
-INSERT INTO pagc_rules (id, rule) VALUES (1, '1 -1 5 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (2, '1 3 -1 5 3 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3, '1 22 -1 5 7 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (4, '1 22 3 -1 5 7 3 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (5, '1 2 -1 5 6 -1 2 13');
-INSERT INTO pagc_rules (id, rule) VALUES (6, '1 2 3 -1 5 6 3 -1 2 13');
-INSERT INTO pagc_rules (id, rule) VALUES (7, '1 2 22 -1 5 6 7 -1 2 13');
-INSERT INTO pagc_rules (id, rule) VALUES (8, '1 2 22 3 -1 5 6 7 3 -1 2 13');
-INSERT INTO pagc_rules (id, rule) VALUES (9, '18 -1 5 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (10, '18 3 -1 5 3 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (11, '18 22 -1 5 7 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (12, '18 22 3 -1 5 7 3 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (13, '18 2 -1 5 6 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (14, '18 2 3 -1 5 6 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (15, '18 2 22 -1 5 6 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (16, '18 2 22 3 -1 5 6 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (17, '2 -1 5 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (18, '2 3 -1 5 3 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (19, '2 22 -1 5 7 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (20, '2 22 3 -1 5 7 3 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (21, '2 2 -1 5 6 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (22, '2 2 3 -1 5 6 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (23, '2 2 22 -1 5 6 7 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (24, '2 2 22 3 -1 5 6 7 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (25, '22 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (26, '22 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (27, '22 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (28, '22 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (29, '22 2 -1 5 6 -1 2 8');
-INSERT INTO pagc_rules (id, rule) VALUES (30, '22 2 3 -1 5 6 3 -1 2 8');
-INSERT INTO pagc_rules (id, rule) VALUES (31, '22 2 22 -1 5 6 7 -1 2 8');
-INSERT INTO pagc_rules (id, rule) VALUES (32, '22 2 22 3 -1 5 6 7 3 -1 2 8');
-INSERT INTO pagc_rules (id, rule) VALUES (33, '22 1 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (34, '22 1 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (35, '22 1 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (36, '22 1 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (37, '22 1 2 -1 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (38, '22 1 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (39, '22 1 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (40, '22 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (41, '1 22 -1 5 5 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (42, '1 22 3 -1 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (43, '1 22 22 -1 5 5 7 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (44, '1 22 22 3 -1 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (45, '1 22 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (46, '1 22 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (47, '1 22 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (48, '1 22 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (49, '1 2 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (50, '1 2 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (51, '1 2 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (52, '1 2 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (53, '1 2 2 -1 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (54, '1 2 2 3 -1 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (55, '1 2 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (56, '1 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (57, '2 1 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (58, '2 1 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (59, '2 1 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (60, '2 1 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (61, '2 1 2 -1 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (62, '2 1 2 3 -1 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (63, '2 1 2 22 -1 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (64, '2 1 2 22 3 -1 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (65, '15 2 -1 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (66, '15 2 3 -1 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (67, '15 2 22 -1 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (68, '15 2 22 3 -1 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (69, '16 0 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (70, '16 0 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (71, '24 2 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (72, '24 2 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (73, '24 2 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (74, '24 2 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (75, '24 2 2 -1 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (76, '24 2 2 3 -1 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (77, '24 2 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (78, '24 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (79, '0 22 -1 5 5 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (80, '0 22 3 -1 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (81, '0 22 22 -1 5 5 7 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (82, '0 22 22 3 -1 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (83, '0 22 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (84, '0 22 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (85, '0 22 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (86, '0 22 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (87, '2 24 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (88, '2 24 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (89, '2 24 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (90, '2 24 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (91, '2 24 2 -1 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (92, '2 24 2 3 -1 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (93, '2 24 2 22 -1 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (94, '2 24 2 22 3 -1 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (95, '2 22 -1 5 5 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (96, '2 22 3 -1 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (97, '2 22 22 -1 5 5 7 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (98, '2 22 22 3 -1 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (99, '2 22 2 -1 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (100, '2 22 2 3 -1 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (101, '2 22 2 22 -1 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (102, '2 22 2 22 3 -1 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (103, '2 0 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (104, '2 0 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (105, '2 0 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (106, '2 0 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (107, '2 0 2 -1 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (108, '2 0 2 3 -1 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (109, '2 0 2 22 -1 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (110, '2 0 2 22 3 -1 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (111, '2 18 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (112, '2 18 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (113, '2 18 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (114, '2 18 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (115, '2 18 2 -1 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (116, '2 18 2 3 -1 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (117, '2 18 2 22 -1 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (118, '2 18 2 22 3 -1 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (119, '2 2 -1 5 5 -1 2 3');
-INSERT INTO pagc_rules (id, rule) VALUES (120, '2 2 3 -1 5 5 3 -1 2 3');
-INSERT INTO pagc_rules (id, rule) VALUES (121, '2 2 22 -1 5 5 7 -1 2 3');
-INSERT INTO pagc_rules (id, rule) VALUES (122, '2 2 22 3 -1 5 5 7 3 -1 2 3');
-INSERT INTO pagc_rules (id, rule) VALUES (123, '2 2 2 -1 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (124, '2 2 2 3 -1 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (125, '2 2 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (126, '2 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (127, '18 2 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (128, '18 2 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (129, '18 2 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (130, '18 2 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (131, '18 2 2 -1 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (132, '18 2 2 3 -1 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (133, '18 2 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (134, '18 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (135, '1 18 2 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (136, '1 18 2 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (137, '1 18 2 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (138, '1 18 2 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (139, '1 18 2 2 -1 5 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (140, '1 18 2 2 3 -1 5 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (141, '1 18 2 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (142, '1 18 2 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (143, '0 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (144, '0 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (145, '0 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (146, '0 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (147, '0 2 -1 5 6 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (148, '0 2 3 -1 5 6 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (149, '0 2 22 -1 5 6 7 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (150, '0 2 22 3 -1 5 6 7 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (151, '0 18 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (152, '0 18 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (153, '0 18 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (154, '0 18 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (155, '0 18 2 -1 5 5 6 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (156, '0 18 2 3 -1 5 5 6 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (157, '0 18 2 22 -1 5 5 6 7 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (158, '0 18 2 22 3 -1 5 5 6 7 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (159, '0 1 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (160, '0 1 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (161, '0 1 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (162, '0 1 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (163, '0 1 2 -1 5 5 6 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (164, '0 1 2 3 -1 5 5 6 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (165, '0 1 2 22 -1 5 5 6 7 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (166, '0 1 2 22 3 -1 5 5 6 7 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (167, '1 2 2 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (168, '1 2 2 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (169, '1 2 2 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (170, '1 2 2 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (171, '1 2 2 2 -1 5 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (172, '1 2 2 2 3 -1 5 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (173, '1 2 2 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (174, '1 2 2 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (175, '22 2 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (176, '22 2 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (177, '22 2 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (178, '22 2 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (179, '22 2 2 -1 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (180, '22 2 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (181, '22 2 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (182, '22 2 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (183, '14 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (184, '14 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (185, '14 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (186, '14 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (187, '14 2 -1 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (188, '14 2 3 -1 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (189, '14 2 22 -1 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (190, '14 2 22 3 -1 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (191, '15 1 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (192, '15 1 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (193, '15 1 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (194, '15 1 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (195, '15 1 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (196, '15 1 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (197, '15 1 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (198, '15 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (199, '24 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (200, '24 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (201, '24 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (202, '24 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (203, '24 2 -1 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (204, '24 2 3 -1 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (205, '24 2 22 -1 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (206, '24 2 22 3 -1 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (207, '24 24 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (208, '24 24 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (209, '24 24 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (210, '24 24 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (211, '24 24 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (212, '24 24 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (213, '24 24 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (214, '24 24 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (215, '24 1 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (216, '24 1 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (217, '24 1 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (218, '24 1 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (219, '24 1 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (220, '24 1 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (221, '24 1 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (222, '24 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (223, '25 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (224, '25 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (225, '25 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (226, '25 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (227, '25 2 -1 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (228, '25 2 3 -1 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (229, '25 2 22 -1 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (230, '25 2 22 3 -1 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (231, '23 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (232, '23 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (233, '23 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (234, '23 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (235, '23 2 -1 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (236, '23 2 3 -1 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (237, '23 2 22 -1 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (238, '23 2 22 3 -1 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (239, '0 13 0 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (240, '0 13 0 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (241, '0 13 0 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (242, '0 13 0 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (243, '0 13 0 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (244, '0 13 0 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (245, '0 13 0 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (246, '0 13 0 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (247, '0 25 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (248, '0 25 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (249, '0 25 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (250, '0 25 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (251, '0 25 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (252, '0 25 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (253, '0 25 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (254, '0 25 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (255, '11 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (256, '11 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (257, '11 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (258, '11 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (259, '11 2 -1 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (260, '11 2 3 -1 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (261, '11 2 22 -1 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (262, '11 2 22 3 -1 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (263, '3 0 -1 3 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (264, '3 0 3 -1 3 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (265, '3 0 22 -1 3 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (266, '3 0 22 3 -1 3 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (267, '3 0 2 -1 3 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (268, '3 0 2 3 -1 3 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (269, '3 0 2 22 -1 3 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (270, '3 0 2 22 3 -1 3 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (271, '3 1 -1 3 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (272, '3 1 3 -1 3 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (273, '3 1 22 -1 3 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (274, '3 1 22 3 -1 3 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (275, '3 1 2 -1 3 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (276, '3 1 2 3 -1 3 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (277, '3 1 2 22 -1 3 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (278, '3 1 2 22 3 -1 3 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (279, '18 13 18 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (280, '18 13 18 3 -1 5 5 3 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (281, '18 13 18 22 -1 5 5 3 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (282, '18 13 18 22 3 -1 5 5 3 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (283, '18 13 18 2 -1 5 5 3 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (284, '18 13 18 2 3 -1 5 5 3 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (285, '18 13 18 2 22 -1 5 5 3 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (286, '18 13 18 2 22 3 -1 5 5 3 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (287, '18 0 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (288, '18 0 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (289, '18 0 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (290, '18 0 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (291, '18 0 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (292, '18 0 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (293, '18 0 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (294, '18 0 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (295, '18 18 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (296, '18 18 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (297, '18 18 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (298, '18 18 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (299, '18 18 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (300, '18 18 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (301, '18 18 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (302, '18 18 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (303, '18 18 18 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (304, '18 18 18 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (305, '18 18 18 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (306, '18 18 18 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (307, '18 18 18 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (308, '18 18 18 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (309, '18 18 18 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (310, '18 18 18 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (311, '18 18 1 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (312, '18 18 1 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (313, '18 18 1 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (314, '18 18 1 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (315, '18 18 1 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (316, '18 18 1 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (317, '18 18 1 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (318, '18 18 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (319, '18 1 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (320, '18 1 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (321, '18 1 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (322, '18 1 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (323, '18 1 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (324, '18 1 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (325, '18 1 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (326, '18 1 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (327, '5 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (328, '5 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (329, '5 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (330, '5 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (331, '5 2 -1 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (332, '5 2 3 -1 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (333, '5 2 22 -1 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (334, '5 2 22 3 -1 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (335, '21 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (336, '21 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (337, '21 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (338, '21 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (339, '21 2 -1 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (340, '21 2 3 -1 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (341, '21 2 22 -1 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (342, '21 2 22 3 -1 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (343, '1 13 1 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (344, '1 13 1 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (345, '1 13 1 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (346, '1 13 1 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (347, '1 13 1 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (348, '1 13 1 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (349, '1 13 1 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (350, '1 13 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (351, '1 24 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (352, '1 24 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (353, '1 24 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (354, '1 24 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (355, '1 24 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (356, '1 24 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (357, '1 24 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (358, '1 24 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (359, '1 24 24 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (360, '1 24 24 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (361, '1 24 24 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (362, '1 24 24 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (363, '1 24 24 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (364, '1 24 24 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (365, '1 24 24 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (366, '1 24 24 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (367, '1 24 1 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (368, '1 24 1 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (369, '1 24 1 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (370, '1 24 1 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (371, '1 24 1 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (372, '1 24 1 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (373, '1 24 1 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (374, '1 24 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (375, '1 15 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (376, '1 15 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (377, '1 15 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (378, '1 15 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (379, '1 15 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (380, '1 15 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (381, '1 15 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (382, '1 15 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (383, '1 22 1 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (384, '1 22 1 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (385, '1 22 1 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (386, '1 22 1 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (387, '1 22 1 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (388, '1 22 1 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (389, '1 22 1 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (390, '1 22 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (391, '1 25 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (392, '1 25 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (393, '1 25 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (394, '1 25 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (395, '1 25 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (396, '1 25 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (397, '1 25 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (398, '1 25 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (399, '1 0 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (400, '1 0 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (401, '1 0 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (402, '1 0 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (403, '1 0 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (404, '1 0 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (405, '1 0 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (406, '1 0 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (407, '1 3 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (408, '1 3 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (409, '1 3 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (410, '1 3 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (411, '1 3 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (412, '1 3 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (413, '1 3 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (414, '1 3 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (415, '1 18 -1 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (416, '1 18 3 -1 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (417, '1 18 22 -1 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (418, '1 18 22 3 -1 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (419, '1 18 2 -1 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (420, '1 18 2 3 -1 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (421, '1 18 2 22 -1 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (422, '1 18 2 22 3 -1 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (423, '1 18 18 1 -1 5 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (424, '1 18 18 1 3 -1 5 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (425, '1 18 18 1 22 -1 5 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (426, '1 18 18 1 22 3 -1 5 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (427, '1 18 18 1 2 -1 5 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (428, '1 18 18 1 2 3 -1 5 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (429, '1 18 18 1 2 22 -1 5 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (430, '1 18 18 1 2 22 3 -1 5 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (431, '1 18 1 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (432, '1 18 1 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (433, '1 18 1 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (434, '1 18 1 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (435, '1 18 1 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (436, '1 18 1 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (437, '1 18 1 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (438, '1 18 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (439, '1 2 0 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (440, '1 2 0 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (441, '1 2 0 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (442, '1 2 0 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (443, '1 2 0 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (444, '1 2 0 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (445, '1 2 0 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (446, '1 2 0 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (447, '1 2 1 -1 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (448, '1 2 1 3 -1 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (449, '1 2 1 22 -1 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (450, '1 2 1 22 3 -1 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (451, '1 2 1 2 -1 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (452, '1 2 1 2 3 -1 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (453, '1 2 1 2 22 -1 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (454, '1 2 1 2 22 3 -1 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (455, '16 -1 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (456, '16 3 -1 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (457, '16 22 -1 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (458, '16 22 3 -1 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (459, '16 2 -1 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (460, '16 2 3 -1 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (461, '16 2 22 -1 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (462, '16 2 22 3 -1 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (463, '2 1 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (464, '2 1 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (465, '2 1 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (466, '2 1 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (467, '2 18 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (468, '2 18 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (469, '2 18 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (470, '2 18 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (471, '2 2 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (472, '2 2 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (473, '2 2 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (474, '2 2 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (475, '2 22 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (476, '2 22 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (477, '2 22 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (478, '2 22 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (479, '2 22 1 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (480, '2 22 1 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (481, '2 22 1 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (482, '2 22 1 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (483, '2 1 22 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (484, '2 1 22 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (485, '2 1 22 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (486, '2 1 22 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (487, '2 1 2 -1 4 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (488, '2 1 2 3 -1 4 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (489, '2 1 2 22 -1 4 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (490, '2 1 2 22 3 -1 4 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (491, '2 2 1 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (492, '2 2 1 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (493, '2 2 1 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (494, '2 2 1 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (495, '2 24 2 -1 4 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (496, '2 24 2 3 -1 4 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (497, '2 24 2 22 -1 4 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (498, '2 24 2 22 3 -1 4 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (499, '2 0 22 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (500, '2 0 22 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (501, '2 0 22 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (502, '2 0 22 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (503, '2 2 24 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (504, '2 2 24 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (505, '2 2 24 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (506, '2 2 24 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (507, '2 2 22 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (508, '2 2 22 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (509, '2 2 22 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (510, '2 2 22 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (511, '2 2 0 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (512, '2 2 0 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (513, '2 2 0 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (514, '2 2 0 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (515, '2 2 18 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (516, '2 2 18 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (517, '2 2 18 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (518, '2 2 18 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (519, '2 2 2 -1 4 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (520, '2 2 2 3 -1 4 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (521, '2 2 2 22 -1 4 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (522, '2 2 2 22 3 -1 4 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (523, '2 18 2 -1 4 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (524, '2 18 2 3 -1 4 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (525, '2 18 2 22 -1 4 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (526, '2 18 2 22 3 -1 4 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (527, '2 1 18 2 -1 4 5 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (528, '2 1 18 2 3 -1 4 5 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (529, '2 1 18 2 22 -1 4 5 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (530, '2 1 18 2 22 3 -1 4 5 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (531, '2 0 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (532, '2 0 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (533, '2 0 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (534, '2 0 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (535, '2 0 18 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (536, '2 0 18 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (537, '2 0 18 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (538, '2 0 18 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (539, '2 0 1 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (540, '2 0 1 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (541, '2 0 1 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (542, '2 0 1 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (543, '2 1 2 2 -1 4 5 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (544, '2 1 2 2 3 -1 4 5 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (545, '2 1 2 2 22 -1 4 5 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (546, '2 1 2 2 22 3 -1 4 5 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (547, '2 22 2 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (548, '2 22 2 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (549, '2 22 2 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (550, '2 22 2 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (551, '2 14 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (552, '2 14 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (553, '2 14 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (554, '2 14 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (555, '2 15 1 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (556, '2 15 1 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (557, '2 15 1 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (558, '2 15 1 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (559, '2 24 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (560, '2 24 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (561, '2 24 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (562, '2 24 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (563, '2 24 24 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (564, '2 24 24 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (565, '2 24 24 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (566, '2 24 24 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (567, '2 24 1 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (568, '2 24 1 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (569, '2 24 1 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (570, '2 24 1 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (571, '2 25 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (572, '2 25 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (573, '2 25 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (574, '2 25 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (575, '2 23 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (576, '2 23 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (577, '2 23 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (578, '2 23 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (579, '2 0 13 0 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (580, '2 0 13 0 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (581, '2 0 13 0 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (582, '2 0 13 0 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (583, '2 0 25 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (584, '2 0 25 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (585, '2 0 25 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (586, '2 0 25 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (587, '2 11 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (588, '2 11 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (589, '2 11 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (590, '2 11 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (591, '2 3 0 -1 4 3 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (592, '2 3 0 3 -1 4 3 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (593, '2 3 0 22 -1 4 3 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (594, '2 3 0 22 3 -1 4 3 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (595, '2 3 1 -1 4 3 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (596, '2 3 1 3 -1 4 3 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (597, '2 3 1 22 -1 4 3 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (598, '2 3 1 22 3 -1 4 3 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (599, '2 18 13 18 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (600, '2 18 13 18 3 -1 4 5 5 3 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (601, '2 18 13 18 22 -1 4 5 5 3 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (602, '2 18 13 18 22 3 -1 4 5 5 3 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (603, '2 18 0 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (604, '2 18 0 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (605, '2 18 0 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (606, '2 18 0 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (607, '2 18 18 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (608, '2 18 18 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (609, '2 18 18 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (610, '2 18 18 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (611, '2 18 18 18 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (612, '2 18 18 18 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (613, '2 18 18 18 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (614, '2 18 18 18 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (615, '2 18 18 1 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (616, '2 18 18 1 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (617, '2 18 18 1 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (618, '2 18 18 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (619, '2 18 1 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (620, '2 18 1 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (621, '2 18 1 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (622, '2 18 1 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (623, '2 5 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (624, '2 5 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (625, '2 5 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (626, '2 5 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (627, '2 21 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (628, '2 21 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (629, '2 21 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (630, '2 21 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (631, '2 1 13 1 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (632, '2 1 13 1 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (633, '2 1 13 1 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (634, '2 1 13 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (635, '2 1 24 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (636, '2 1 24 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (637, '2 1 24 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (638, '2 1 24 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (639, '2 1 24 24 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (640, '2 1 24 24 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (641, '2 1 24 24 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (642, '2 1 24 24 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (643, '2 1 24 1 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (644, '2 1 24 1 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (645, '2 1 24 1 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (646, '2 1 24 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (647, '2 1 15 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (648, '2 1 15 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (649, '2 1 15 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (650, '2 1 15 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (651, '2 1 22 1 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (652, '2 1 22 1 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (653, '2 1 22 1 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (654, '2 1 22 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (655, '2 1 25 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (656, '2 1 25 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (657, '2 1 25 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (658, '2 1 25 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (659, '2 1 0 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (660, '2 1 0 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (661, '2 1 0 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (662, '2 1 0 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (663, '2 1 3 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (664, '2 1 3 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (665, '2 1 3 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (666, '2 1 3 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (667, '2 1 18 -1 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (668, '2 1 18 3 -1 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (669, '2 1 18 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (670, '2 1 18 22 3 -1 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (671, '2 1 18 18 1 -1 4 5 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (672, '2 1 18 18 1 3 -1 4 5 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (673, '2 1 18 18 1 22 -1 4 5 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (674, '2 1 18 18 1 22 3 -1 4 5 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (675, '2 1 18 1 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (676, '2 1 18 1 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (677, '2 1 18 1 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (678, '2 1 18 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (679, '2 1 2 0 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (680, '2 1 2 0 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (681, '2 1 2 0 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (682, '2 1 2 0 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (683, '2 1 2 1 -1 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (684, '2 1 2 1 3 -1 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (685, '2 1 2 1 22 -1 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (686, '2 1 2 1 22 3 -1 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (687, '2 16 -1 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (688, '2 16 3 -1 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (689, '2 16 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (690, '2 16 22 3 -1 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (691, '22 1 -1 2 5 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (692, '22 1 3 -1 2 5 3 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (693, '22 1 22 -1 2 5 7 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (694, '22 1 22 3 -1 2 5 7 3 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (695, '22 1 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (696, '22 1 2 3 -1 2 5 6 3 -1 2 13');
-INSERT INTO pagc_rules (id, rule) VALUES (697, '22 1 2 22 -1 2 5 6 7 -1 2 13');
-INSERT INTO pagc_rules (id, rule) VALUES (698, '22 1 2 22 3 -1 2 5 6 7 3 -1 2 13');
-INSERT INTO pagc_rules (id, rule) VALUES (699, '22 18 -1 2 5 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (700, '22 18 3 -1 2 5 3 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (701, '22 18 22 -1 2 5 7 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (702, '22 18 22 3 -1 2 5 7 3 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (703, '22 18 2 -1 2 5 6 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (704, '22 18 2 3 -1 2 5 6 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (705, '22 18 2 22 -1 2 5 6 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (706, '22 18 2 22 3 -1 2 5 6 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (707, '22 2 -1 2 5 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (708, '22 2 3 -1 2 5 3 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (709, '22 2 22 -1 2 5 7 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (710, '22 2 22 3 -1 2 5 7 3 -1 2 2');
-INSERT INTO pagc_rules (id, rule) VALUES (711, '22 2 2 -1 2 5 6 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (712, '22 2 2 3 -1 2 5 6 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (713, '22 2 2 22 -1 2 5 6 7 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (714, '22 2 2 22 3 -1 2 5 6 7 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (715, '22 22 -1 2 5 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (716, '22 22 3 -1 2 5 3 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (717, '22 22 22 -1 2 5 7 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (718, '22 22 22 3 -1 2 5 7 3 -1 2 7');
-INSERT INTO pagc_rules (id, rule) VALUES (719, '22 22 2 -1 2 5 6 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (720, '22 22 2 3 -1 2 5 6 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (721, '22 22 2 22 -1 2 5 6 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (722, '22 22 2 22 3 -1 2 5 6 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (723, '22 22 1 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (724, '22 22 1 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (725, '22 22 1 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (726, '22 22 1 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (727, '22 22 1 2 -1 2 5 5 6 -1 2 8');
-INSERT INTO pagc_rules (id, rule) VALUES (728, '22 22 1 2 3 -1 2 5 5 6 3 -1 2 8');
-INSERT INTO pagc_rules (id, rule) VALUES (729, '22 22 1 2 22 -1 2 5 5 6 7 -1 2 8');
-INSERT INTO pagc_rules (id, rule) VALUES (730, '22 22 1 2 22 3 -1 2 5 5 6 7 3 -1 2 8');
-INSERT INTO pagc_rules (id, rule) VALUES (731, '22 1 22 -1 2 5 5 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (732, '22 1 22 3 -1 2 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (733, '22 1 22 22 -1 2 5 5 7 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (734, '22 1 22 22 3 -1 2 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (735, '22 1 22 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (736, '22 1 22 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (737, '22 1 22 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (738, '22 1 22 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (739, '22 1 2 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (740, '22 1 2 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (741, '22 1 2 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (742, '22 1 2 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (743, '22 1 2 2 -1 2 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (744, '22 1 2 2 3 -1 2 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (745, '22 1 2 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (746, '22 1 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (747, '22 2 1 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (748, '22 2 1 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (749, '22 2 1 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (750, '22 2 1 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (751, '22 2 1 2 -1 2 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (752, '22 2 1 2 3 -1 2 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (753, '22 2 1 2 22 -1 2 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (754, '22 2 1 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (755, '22 15 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (756, '22 15 2 3 -1 2 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (757, '22 15 2 22 -1 2 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (758, '22 15 2 22 3 -1 2 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (759, '22 16 0 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (760, '22 16 0 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (761, '22 24 2 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (762, '22 24 2 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (763, '22 24 2 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (764, '22 24 2 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (765, '22 24 2 2 -1 2 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (766, '22 24 2 2 3 -1 2 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (767, '22 24 2 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (768, '22 24 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (769, '22 0 22 -1 2 5 5 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (770, '22 0 22 3 -1 2 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (771, '22 0 22 22 -1 2 5 5 7 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (772, '22 0 22 22 3 -1 2 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (773, '22 0 22 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (774, '22 0 22 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (775, '22 0 22 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (776, '22 0 22 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (777, '22 2 24 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (778, '22 2 24 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (779, '22 2 24 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (780, '22 2 24 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (781, '22 2 24 2 -1 2 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (782, '22 2 24 2 3 -1 2 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (783, '22 2 24 2 22 -1 2 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (784, '22 2 24 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (785, '22 2 22 -1 2 5 5 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (786, '22 2 22 3 -1 2 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (787, '22 2 22 22 -1 2 5 5 7 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (788, '22 2 22 22 3 -1 2 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (789, '22 2 22 2 -1 2 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (790, '22 2 22 2 3 -1 2 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (791, '22 2 22 2 22 -1 2 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (792, '22 2 22 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (793, '22 2 0 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (794, '22 2 0 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (795, '22 2 0 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (796, '22 2 0 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (797, '22 2 0 2 -1 2 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (798, '22 2 0 2 3 -1 2 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (799, '22 2 0 2 22 -1 2 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (800, '22 2 0 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (801, '22 2 18 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (802, '22 2 18 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (803, '22 2 18 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (804, '22 2 18 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (805, '22 2 18 2 -1 2 5 5 6 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (806, '22 2 18 2 3 -1 2 5 5 6 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (807, '22 2 18 2 22 -1 2 5 5 6 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (808, '22 2 18 2 22 3 -1 2 5 5 6 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (809, '22 2 2 -1 2 5 5 -1 2 3');
-INSERT INTO pagc_rules (id, rule) VALUES (810, '22 2 2 3 -1 2 5 5 3 -1 2 3');
-INSERT INTO pagc_rules (id, rule) VALUES (811, '22 2 2 22 -1 2 5 5 7 -1 2 3');
-INSERT INTO pagc_rules (id, rule) VALUES (812, '22 2 2 22 3 -1 2 5 5 7 3 -1 2 3');
-INSERT INTO pagc_rules (id, rule) VALUES (813, '22 2 2 2 -1 2 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (814, '22 2 2 2 3 -1 2 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (815, '22 2 2 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (816, '22 2 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (817, '22 18 2 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (818, '22 18 2 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (819, '22 18 2 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (820, '22 18 2 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (821, '22 18 2 2 -1 2 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (822, '22 18 2 2 3 -1 2 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (823, '22 18 2 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (824, '22 18 2 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (825, '22 1 18 2 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (826, '22 1 18 2 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (827, '22 1 18 2 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (828, '22 1 18 2 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (829, '22 1 18 2 2 -1 2 5 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (830, '22 1 18 2 2 3 -1 2 5 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (831, '22 1 18 2 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (832, '22 1 18 2 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (833, '22 0 -1 2 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (834, '22 0 3 -1 2 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (835, '22 0 22 -1 2 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (836, '22 0 22 3 -1 2 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (837, '22 0 2 -1 2 5 6 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (838, '22 0 2 3 -1 2 5 6 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (839, '22 0 2 22 -1 2 5 6 7 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (840, '22 0 2 22 3 -1 2 5 6 7 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (841, '22 0 18 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (842, '22 0 18 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (843, '22 0 18 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (844, '22 0 18 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (845, '22 0 18 2 -1 2 5 5 6 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (846, '22 0 18 2 3 -1 2 5 5 6 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (847, '22 0 18 2 22 -1 2 5 5 6 7 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (848, '22 0 18 2 22 3 -1 2 5 5 6 7 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (849, '22 0 1 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (850, '22 0 1 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (851, '22 0 1 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (852, '22 0 1 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (853, '22 0 1 2 -1 2 5 5 6 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (854, '22 0 1 2 3 -1 2 5 5 6 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (855, '22 0 1 2 22 -1 2 5 5 6 7 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (856, '22 0 1 2 22 3 -1 2 5 5 6 7 3 -1 2 10');
-INSERT INTO pagc_rules (id, rule) VALUES (857, '22 1 2 2 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (858, '22 1 2 2 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (859, '22 1 2 2 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (860, '22 1 2 2 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (861, '22 1 2 2 2 -1 2 5 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (862, '22 1 2 2 2 3 -1 2 5 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (863, '22 1 2 2 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (864, '22 1 2 2 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (865, '22 22 2 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (866, '22 22 2 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (867, '22 22 2 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (868, '22 22 2 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (869, '22 22 2 2 -1 2 5 5 6 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (870, '22 22 2 2 3 -1 2 5 5 6 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (871, '22 22 2 2 22 -1 2 5 5 6 7 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (872, '22 22 2 2 22 3 -1 2 5 5 6 7 3 -1 2 5');
-INSERT INTO pagc_rules (id, rule) VALUES (873, '22 14 -1 2 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (874, '22 14 3 -1 2 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (875, '22 14 22 -1 2 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (876, '22 14 22 3 -1 2 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (877, '22 14 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (878, '22 14 2 3 -1 2 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (879, '22 14 2 22 -1 2 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (880, '22 14 2 22 3 -1 2 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (881, '22 15 1 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (882, '22 15 1 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (883, '22 15 1 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (884, '22 15 1 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (885, '22 15 1 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (886, '22 15 1 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (887, '22 15 1 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (888, '22 15 1 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (889, '22 24 -1 2 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (890, '22 24 3 -1 2 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (891, '22 24 22 -1 2 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (892, '22 24 22 3 -1 2 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (893, '22 24 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (894, '22 24 2 3 -1 2 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (895, '22 24 2 22 -1 2 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (896, '22 24 2 22 3 -1 2 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (897, '22 24 24 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (898, '22 24 24 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (899, '22 24 24 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (900, '22 24 24 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (901, '22 24 24 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (902, '22 24 24 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (903, '22 24 24 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (904, '22 24 24 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (905, '22 24 1 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (906, '22 24 1 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (907, '22 24 1 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (908, '22 24 1 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (909, '22 24 1 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (910, '22 24 1 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (911, '22 24 1 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (912, '22 24 1 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (913, '22 25 -1 2 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (914, '22 25 3 -1 2 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (915, '22 25 22 -1 2 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (916, '22 25 22 3 -1 2 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (917, '22 25 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (918, '22 25 2 3 -1 2 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (919, '22 25 2 22 -1 2 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (920, '22 25 2 22 3 -1 2 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (921, '22 23 -1 2 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (922, '22 23 3 -1 2 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (923, '22 23 22 -1 2 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (924, '22 23 22 3 -1 2 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (925, '22 23 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (926, '22 23 2 3 -1 2 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (927, '22 23 2 22 -1 2 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (928, '22 23 2 22 3 -1 2 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (929, '22 0 13 0 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (930, '22 0 13 0 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (931, '22 0 13 0 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (932, '22 0 13 0 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (933, '22 0 13 0 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (934, '22 0 13 0 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (935, '22 0 13 0 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (936, '22 0 13 0 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (937, '22 0 25 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (938, '22 0 25 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (939, '22 0 25 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (940, '22 0 25 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (941, '22 0 25 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (942, '22 0 25 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (943, '22 0 25 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (944, '22 0 25 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (945, '22 11 -1 2 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (946, '22 11 3 -1 2 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (947, '22 11 22 -1 2 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (948, '22 11 22 3 -1 2 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (949, '22 11 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (950, '22 11 2 3 -1 2 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (951, '22 11 2 22 -1 2 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (952, '22 11 2 22 3 -1 2 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (953, '22 3 0 -1 2 3 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (954, '22 3 0 3 -1 2 3 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (955, '22 3 0 22 -1 2 3 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (956, '22 3 0 22 3 -1 2 3 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (957, '22 3 0 2 -1 2 3 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (958, '22 3 0 2 3 -1 2 3 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (959, '22 3 0 2 22 -1 2 3 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (960, '22 3 0 2 22 3 -1 2 3 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (961, '22 3 1 -1 2 3 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (962, '22 3 1 3 -1 2 3 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (963, '22 3 1 22 -1 2 3 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (964, '22 3 1 22 3 -1 2 3 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (965, '22 3 1 2 -1 2 3 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (966, '22 3 1 2 3 -1 2 3 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (967, '22 3 1 2 22 -1 2 3 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (968, '22 3 1 2 22 3 -1 2 3 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (969, '22 18 13 18 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (970, '22 18 13 18 3 -1 2 5 5 3 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (971, '22 18 13 18 22 -1 2 5 5 3 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (972, '22 18 13 18 22 3 -1 2 5 5 3 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (973, '22 18 13 18 2 -1 2 5 5 3 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (974, '22 18 13 18 2 3 -1 2 5 5 3 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (975, '22 18 13 18 2 22 -1 2 5 5 3 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (976, '22 18 13 18 2 22 3 -1 2 5 5 3 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (977, '22 18 0 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (978, '22 18 0 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (979, '22 18 0 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (980, '22 18 0 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (981, '22 18 0 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (982, '22 18 0 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (983, '22 18 0 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (984, '22 18 0 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (985, '22 18 18 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (986, '22 18 18 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (987, '22 18 18 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (988, '22 18 18 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (989, '22 18 18 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (990, '22 18 18 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (991, '22 18 18 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (992, '22 18 18 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (993, '22 18 18 18 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (994, '22 18 18 18 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (995, '22 18 18 18 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (996, '22 18 18 18 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (997, '22 18 18 18 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (998, '22 18 18 18 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (999, '22 18 18 18 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1000, '22 18 18 18 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1001, '22 18 18 1 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1002, '22 18 18 1 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1003, '22 18 18 1 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1004, '22 18 18 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1005, '22 18 18 1 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1006, '22 18 18 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1007, '22 18 18 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1008, '22 18 18 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1009, '22 18 1 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1010, '22 18 1 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1011, '22 18 1 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1012, '22 18 1 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1013, '22 18 1 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1014, '22 18 1 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1015, '22 18 1 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1016, '22 18 1 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1017, '22 5 -1 2 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1018, '22 5 3 -1 2 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1019, '22 5 22 -1 2 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1020, '22 5 22 3 -1 2 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1021, '22 5 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1022, '22 5 2 3 -1 2 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1023, '22 5 2 22 -1 2 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1024, '22 5 2 22 3 -1 2 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1025, '22 21 -1 2 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1026, '22 21 3 -1 2 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1027, '22 21 22 -1 2 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1028, '22 21 22 3 -1 2 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1029, '22 21 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1030, '22 21 2 3 -1 2 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1031, '22 21 2 22 -1 2 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1032, '22 21 2 22 3 -1 2 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1033, '22 1 13 1 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1034, '22 1 13 1 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1035, '22 1 13 1 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1036, '22 1 13 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1037, '22 1 13 1 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1038, '22 1 13 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1039, '22 1 13 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1040, '22 1 13 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1041, '22 1 24 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1042, '22 1 24 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1043, '22 1 24 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1044, '22 1 24 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1045, '22 1 24 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1046, '22 1 24 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1047, '22 1 24 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1048, '22 1 24 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1049, '22 1 24 24 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1050, '22 1 24 24 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1051, '22 1 24 24 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1052, '22 1 24 24 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1053, '22 1 24 24 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1054, '22 1 24 24 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1055, '22 1 24 24 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1056, '22 1 24 24 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1057, '22 1 24 1 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1058, '22 1 24 1 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1059, '22 1 24 1 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1060, '22 1 24 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1061, '22 1 24 1 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1062, '22 1 24 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1063, '22 1 24 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1064, '22 1 24 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1065, '22 1 15 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1066, '22 1 15 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1067, '22 1 15 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1068, '22 1 15 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1069, '22 1 15 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1070, '22 1 15 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1071, '22 1 15 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1072, '22 1 15 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1073, '22 1 22 1 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1074, '22 1 22 1 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1075, '22 1 22 1 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1076, '22 1 22 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1077, '22 1 22 1 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1078, '22 1 22 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1079, '22 1 22 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1080, '22 1 22 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1081, '22 1 25 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1082, '22 1 25 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1083, '22 1 25 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1084, '22 1 25 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1085, '22 1 25 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1086, '22 1 25 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1087, '22 1 25 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1088, '22 1 25 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1089, '22 1 0 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1090, '22 1 0 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1091, '22 1 0 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1092, '22 1 0 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1093, '22 1 0 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1094, '22 1 0 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1095, '22 1 0 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1096, '22 1 0 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1097, '22 1 3 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1098, '22 1 3 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1099, '22 1 3 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1100, '22 1 3 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1101, '22 1 3 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1102, '22 1 3 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1103, '22 1 3 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1104, '22 1 3 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1105, '22 1 18 -1 2 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1106, '22 1 18 3 -1 2 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1107, '22 1 18 22 -1 2 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1108, '22 1 18 22 3 -1 2 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1109, '22 1 18 2 -1 2 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1110, '22 1 18 2 3 -1 2 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1111, '22 1 18 2 22 -1 2 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1112, '22 1 18 2 22 3 -1 2 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1113, '22 1 18 18 1 -1 2 5 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1114, '22 1 18 18 1 3 -1 2 5 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1115, '22 1 18 18 1 22 -1 2 5 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1116, '22 1 18 18 1 22 3 -1 2 5 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1117, '22 1 18 18 1 2 -1 2 5 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1118, '22 1 18 18 1 2 3 -1 2 5 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1119, '22 1 18 18 1 2 22 -1 2 5 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1120, '22 1 18 18 1 2 22 3 -1 2 5 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1121, '22 1 18 1 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1122, '22 1 18 1 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1123, '22 1 18 1 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1124, '22 1 18 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1125, '22 1 18 1 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1126, '22 1 18 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1127, '22 1 18 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1128, '22 1 18 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1129, '22 1 2 0 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1130, '22 1 2 0 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1131, '22 1 2 0 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1132, '22 1 2 0 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1133, '22 1 2 0 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1134, '22 1 2 0 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1135, '22 1 2 0 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1136, '22 1 2 0 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1137, '22 1 2 1 -1 2 5 5 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1138, '22 1 2 1 3 -1 2 5 5 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1139, '22 1 2 1 22 -1 2 5 5 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1140, '22 1 2 1 22 3 -1 2 5 5 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1141, '22 1 2 1 2 -1 2 5 5 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1142, '22 1 2 1 2 3 -1 2 5 5 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1143, '22 1 2 1 2 22 -1 2 5 5 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1144, '22 1 2 1 2 22 3 -1 2 5 5 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1145, '22 16 -1 2 5 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1146, '22 16 3 -1 2 5 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1147, '22 16 22 -1 2 5 7 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1148, '22 16 22 3 -1 2 5 7 3 -1 2 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1149, '22 16 2 -1 2 5 6 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1150, '22 16 2 3 -1 2 5 6 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1151, '22 16 2 22 -1 2 5 6 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1152, '22 16 2 22 3 -1 2 5 6 7 3 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1153, '22 2 1 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1154, '22 2 1 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1155, '22 2 1 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1156, '22 2 1 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1157, '22 2 18 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1158, '22 2 18 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1159, '22 2 18 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1160, '22 2 18 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1161, '22 2 2 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1162, '22 2 2 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1163, '22 2 2 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1164, '22 2 2 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1165, '22 2 22 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1166, '22 2 22 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1167, '22 2 22 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1168, '22 2 22 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1169, '22 2 22 1 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1170, '22 2 22 1 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1171, '22 2 22 1 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1172, '22 2 22 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1173, '22 2 1 22 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1174, '22 2 1 22 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1175, '22 2 1 22 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1176, '22 2 1 22 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1177, '22 2 1 2 -1 2 4 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1178, '22 2 1 2 3 -1 2 4 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1179, '22 2 1 2 22 -1 2 4 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1180, '22 2 1 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1181, '22 2 2 1 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1182, '22 2 2 1 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1183, '22 2 2 1 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1184, '22 2 2 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1185, '22 2 24 2 -1 2 4 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1186, '22 2 24 2 3 -1 2 4 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1187, '22 2 24 2 22 -1 2 4 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1188, '22 2 24 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1189, '22 2 0 22 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1190, '22 2 0 22 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1191, '22 2 0 22 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1192, '22 2 0 22 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1193, '22 2 2 24 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1194, '22 2 2 24 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1195, '22 2 2 24 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1196, '22 2 2 24 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1197, '22 2 2 22 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1198, '22 2 2 22 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1199, '22 2 2 22 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1200, '22 2 2 22 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1201, '22 2 2 0 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1202, '22 2 2 0 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1203, '22 2 2 0 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1204, '22 2 2 0 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1205, '22 2 2 18 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1206, '22 2 2 18 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1207, '22 2 2 18 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1208, '22 2 2 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1209, '22 2 2 2 -1 2 4 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1210, '22 2 2 2 3 -1 2 4 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1211, '22 2 2 2 22 -1 2 4 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1212, '22 2 2 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1213, '22 2 18 2 -1 2 4 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1214, '22 2 18 2 3 -1 2 4 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1215, '22 2 18 2 22 -1 2 4 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1216, '22 2 18 2 22 3 -1 2 4 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1217, '22 2 1 18 2 -1 2 4 5 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1218, '22 2 1 18 2 3 -1 2 4 5 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1219, '22 2 1 18 2 22 -1 2 4 5 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1220, '22 2 1 18 2 22 3 -1 2 4 5 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1221, '22 2 0 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1222, '22 2 0 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1223, '22 2 0 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1224, '22 2 0 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1225, '22 2 0 18 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1226, '22 2 0 18 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1227, '22 2 0 18 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1228, '22 2 0 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1229, '22 2 0 1 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1230, '22 2 0 1 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1231, '22 2 0 1 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1232, '22 2 0 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1233, '22 2 1 2 2 -1 2 4 5 5 5 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1234, '22 2 1 2 2 3 -1 2 4 5 5 5 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1235, '22 2 1 2 2 22 -1 2 4 5 5 5 7 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1236, '22 2 1 2 2 22 3 -1 2 4 5 5 5 7 3 -1 2 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1237, '22 2 22 2 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1238, '22 2 22 2 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1239, '22 2 22 2 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1240, '22 2 22 2 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1241, '22 2 14 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1242, '22 2 14 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1243, '22 2 14 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1244, '22 2 14 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1245, '22 2 15 1 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1246, '22 2 15 1 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1247, '22 2 15 1 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1248, '22 2 15 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1249, '22 2 24 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1250, '22 2 24 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1251, '22 2 24 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1252, '22 2 24 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1253, '22 2 24 24 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1254, '22 2 24 24 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1255, '22 2 24 24 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1256, '22 2 24 24 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1257, '22 2 24 1 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1258, '22 2 24 1 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1259, '22 2 24 1 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1260, '22 2 24 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1261, '22 2 25 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1262, '22 2 25 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1263, '22 2 25 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1264, '22 2 25 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1265, '22 2 23 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1266, '22 2 23 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1267, '22 2 23 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1268, '22 2 23 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1269, '22 2 0 13 0 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1270, '22 2 0 13 0 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1271, '22 2 0 13 0 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1272, '22 2 0 13 0 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1273, '22 2 0 25 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1274, '22 2 0 25 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1275, '22 2 0 25 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1276, '22 2 0 25 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1277, '22 2 11 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1278, '22 2 11 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1279, '22 2 11 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1280, '22 2 11 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1281, '22 2 3 0 -1 2 4 3 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1282, '22 2 3 0 3 -1 2 4 3 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1283, '22 2 3 0 22 -1 2 4 3 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1284, '22 2 3 0 22 3 -1 2 4 3 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1285, '22 2 3 1 -1 2 4 3 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1286, '22 2 3 1 3 -1 2 4 3 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1287, '22 2 3 1 22 -1 2 4 3 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1288, '22 2 3 1 22 3 -1 2 4 3 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1289, '22 2 18 13 18 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1290, '22 2 18 13 18 3 -1 2 4 5 5 3 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1291, '22 2 18 13 18 22 -1 2 4 5 5 3 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1292, '22 2 18 13 18 22 3 -1 2 4 5 5 3 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1293, '22 2 18 0 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1294, '22 2 18 0 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1295, '22 2 18 0 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1296, '22 2 18 0 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1297, '22 2 18 18 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1298, '22 2 18 18 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1299, '22 2 18 18 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1300, '22 2 18 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1301, '22 2 18 18 18 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1302, '22 2 18 18 18 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1303, '22 2 18 18 18 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1304, '22 2 18 18 18 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1305, '22 2 18 18 1 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1306, '22 2 18 18 1 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1307, '22 2 18 18 1 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1308, '22 2 18 18 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1309, '22 2 18 1 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1310, '22 2 18 1 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1311, '22 2 18 1 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1312, '22 2 18 1 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1313, '22 2 5 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1314, '22 2 5 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1315, '22 2 5 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1316, '22 2 5 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1317, '22 2 21 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1318, '22 2 21 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1319, '22 2 21 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1320, '22 2 21 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1321, '22 2 1 13 1 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1322, '22 2 1 13 1 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1323, '22 2 1 13 1 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1324, '22 2 1 13 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1325, '22 2 1 24 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1326, '22 2 1 24 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1327, '22 2 1 24 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1328, '22 2 1 24 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1329, '22 2 1 24 24 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1330, '22 2 1 24 24 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1331, '22 2 1 24 24 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1332, '22 2 1 24 24 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1333, '22 2 1 24 1 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1334, '22 2 1 24 1 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1335, '22 2 1 24 1 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1336, '22 2 1 24 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1337, '22 2 1 15 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1338, '22 2 1 15 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1339, '22 2 1 15 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1340, '22 2 1 15 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1341, '22 2 1 22 1 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1342, '22 2 1 22 1 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1343, '22 2 1 22 1 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1344, '22 2 1 22 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1345, '22 2 1 25 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1346, '22 2 1 25 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1347, '22 2 1 25 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1348, '22 2 1 25 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1349, '22 2 1 0 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1350, '22 2 1 0 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1351, '22 2 1 0 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1352, '22 2 1 0 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1353, '22 2 1 3 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1354, '22 2 1 3 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1355, '22 2 1 3 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1356, '22 2 1 3 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1357, '22 2 1 18 -1 2 4 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1358, '22 2 1 18 3 -1 2 4 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1359, '22 2 1 18 22 -1 2 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1360, '22 2 1 18 22 3 -1 2 4 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1361, '22 2 1 18 18 1 -1 2 4 5 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1362, '22 2 1 18 18 1 3 -1 2 4 5 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1363, '22 2 1 18 18 1 22 -1 2 4 5 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1364, '22 2 1 18 18 1 22 3 -1 2 4 5 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1365, '22 2 1 18 1 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1366, '22 2 1 18 1 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1367, '22 2 1 18 1 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1368, '22 2 1 18 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1369, '22 2 1 2 0 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1370, '22 2 1 2 0 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1371, '22 2 1 2 0 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1372, '22 2 1 2 0 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1373, '22 2 1 2 1 -1 2 4 5 5 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1374, '22 2 1 2 1 3 -1 2 4 5 5 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1375, '22 2 1 2 1 22 -1 2 4 5 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1376, '22 2 1 2 1 22 3 -1 2 4 5 5 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1377, '22 2 16 -1 2 4 5 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1378, '22 2 16 3 -1 2 4 5 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1379, '22 2 16 22 -1 2 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1380, '22 2 16 22 3 -1 2 4 5 7 3 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1381, '6 0 -1 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1382, '6 0 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1383, '6 21 -1 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1384, '6 21 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1385, '6 21 0 -1 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1386, '6 21 0 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1387, '6 23 -1 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1388, '6 23 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1389, '6 0 18 -1 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1390, '6 0 18 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1391, '6 0 0 -1 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1392, '6 0 0 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1393, '6 18 -1 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1394, '6 18 22 -1 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1395, '6 18 0 -1 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1396, '6 18 0 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1397, '6 18 18 -1 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1398, '6 18 18 22 -1 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1399, '6 6 0 -1 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1400, '6 6 0 22 -1 3 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1401, '6 6 21 -1 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1402, '6 6 21 22 -1 3 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1403, '6 6 21 0 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1404, '6 6 21 0 22 -1 3 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1405, '6 6 23 -1 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1406, '6 6 23 22 -1 3 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1407, '6 6 0 18 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1408, '6 6 0 18 22 -1 3 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1409, '6 6 0 0 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1410, '6 6 0 0 22 -1 3 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1411, '6 6 18 -1 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1412, '6 6 18 22 -1 3 4 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1413, '6 6 18 0 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1414, '6 6 18 0 22 -1 3 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1415, '6 6 18 18 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1416, '6 6 18 18 22 -1 3 4 5 5 7 -1 2 9');
-INSERT INTO pagc_rules (id, rule) VALUES (1417, '3 6 0 -1 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1418, '3 6 0 22 -1 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1419, '3 6 21 -1 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1420, '3 6 21 22 -1 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1421, '3 6 21 0 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1422, '3 6 21 0 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1423, '3 6 23 -1 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1424, '3 6 23 22 -1 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1425, '3 6 0 18 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1426, '3 6 0 18 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1427, '3 6 0 0 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1428, '3 6 0 0 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1429, '3 6 18 -1 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1430, '3 6 18 22 -1 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1431, '3 6 18 0 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1432, '3 6 18 0 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1433, '3 6 18 18 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1434, '3 6 18 18 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1435, '3 6 6 0 -1 3 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1436, '3 6 6 0 22 -1 3 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1437, '3 6 6 21 -1 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1438, '3 6 6 21 22 -1 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1439, '3 6 6 21 0 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1440, '3 6 6 21 0 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1441, '3 6 6 23 -1 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1442, '3 6 6 23 22 -1 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1443, '3 6 6 0 18 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1444, '3 6 6 0 18 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1445, '3 6 6 0 0 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1446, '3 6 6 0 0 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1447, '3 6 6 18 -1 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1448, '3 6 6 18 22 -1 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1449, '3 6 6 18 0 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1450, '3 6 6 18 0 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1451, '3 6 6 18 18 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1452, '3 6 6 18 18 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1453, '11 6 0 -1 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1454, '11 6 0 22 -1 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1455, '11 6 21 -1 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1456, '11 6 21 22 -1 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1457, '11 6 21 0 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1458, '11 6 21 0 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1459, '11 6 23 -1 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1460, '11 6 23 22 -1 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1461, '11 6 0 18 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1462, '11 6 0 18 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1463, '11 6 0 0 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1464, '11 6 0 0 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1465, '11 6 18 -1 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1466, '11 6 18 22 -1 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1467, '11 6 18 0 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1468, '11 6 18 0 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1469, '11 6 18 18 -1 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1470, '11 6 18 18 22 -1 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1471, '11 6 6 0 -1 3 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1472, '11 6 6 0 22 -1 3 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1473, '11 6 6 21 -1 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1474, '11 6 6 21 22 -1 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1475, '11 6 6 21 0 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1476, '11 6 6 21 0 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1477, '11 6 6 23 -1 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1478, '11 6 6 23 22 -1 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1479, '11 6 6 0 18 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1480, '11 6 6 0 18 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1481, '11 6 6 0 0 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1482, '11 6 6 0 0 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1483, '11 6 6 18 -1 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1484, '11 6 6 18 22 -1 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1485, '11 6 6 18 0 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1486, '11 6 6 18 0 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1487, '11 6 6 18 18 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1488, '11 6 6 18 18 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1489, '3 11 6 0 -1 3 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1490, '3 11 6 0 22 -1 3 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1491, '3 11 6 21 -1 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1492, '3 11 6 21 22 -1 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1493, '3 11 6 21 0 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1494, '3 11 6 21 0 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1495, '3 11 6 23 -1 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1496, '3 11 6 23 22 -1 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1497, '3 11 6 0 18 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1498, '3 11 6 0 18 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1499, '3 11 6 0 0 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1500, '3 11 6 0 0 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1501, '3 11 6 18 -1 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1502, '3 11 6 18 22 -1 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1503, '3 11 6 18 0 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1504, '3 11 6 18 0 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1505, '3 11 6 18 18 -1 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1506, '3 11 6 18 18 22 -1 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1507, '3 11 6 6 0 -1 3 3 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1508, '3 11 6 6 0 22 -1 3 3 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1509, '3 11 6 6 21 -1 3 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1510, '3 11 6 6 21 22 -1 3 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1511, '3 11 6 6 21 0 -1 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1512, '3 11 6 6 21 0 22 -1 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1513, '3 11 6 6 23 -1 3 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1514, '3 11 6 6 23 22 -1 3 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1515, '3 11 6 6 0 18 -1 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1516, '3 11 6 6 0 18 22 -1 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1517, '3 11 6 6 0 0 -1 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1518, '3 11 6 6 0 0 22 -1 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1519, '3 11 6 6 18 -1 3 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1520, '3 11 6 6 18 22 -1 3 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1521, '3 11 6 6 18 0 -1 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1522, '3 11 6 6 18 0 22 -1 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1523, '3 11 6 6 18 18 -1 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1524, '3 11 6 6 18 18 22 -1 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1525, '22 6 0 -1 2 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1526, '22 6 0 22 -1 2 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1527, '22 6 21 -1 2 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1528, '22 6 21 22 -1 2 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1529, '22 6 21 0 -1 2 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1530, '22 6 21 0 22 -1 2 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1531, '22 6 23 -1 2 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1532, '22 6 23 22 -1 2 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1533, '22 6 0 18 -1 2 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1534, '22 6 0 18 22 -1 2 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1535, '22 6 0 0 -1 2 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1536, '22 6 0 0 22 -1 2 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1537, '22 6 18 -1 2 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1538, '22 6 18 22 -1 2 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1539, '22 6 18 0 -1 2 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1540, '22 6 18 0 22 -1 2 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1541, '22 6 18 18 -1 2 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1542, '22 6 18 18 22 -1 2 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1543, '22 6 6 0 -1 2 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1544, '22 6 6 0 22 -1 2 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1545, '22 6 6 21 -1 2 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1546, '22 6 6 21 22 -1 2 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1547, '22 6 6 21 0 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1548, '22 6 6 21 0 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1549, '22 6 6 23 -1 2 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1550, '22 6 6 23 22 -1 2 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1551, '22 6 6 0 18 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1552, '22 6 6 0 18 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1553, '22 6 6 0 0 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1554, '22 6 6 0 0 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1555, '22 6 6 18 -1 2 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1556, '22 6 6 18 22 -1 2 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1557, '22 6 6 18 0 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1558, '22 6 6 18 0 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1559, '22 6 6 18 18 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1560, '22 6 6 18 18 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1561, '22 3 6 0 -1 2 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1562, '22 3 6 0 22 -1 2 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1563, '22 3 6 21 -1 2 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1564, '22 3 6 21 22 -1 2 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1565, '22 3 6 21 0 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1566, '22 3 6 21 0 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1567, '22 3 6 23 -1 2 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1568, '22 3 6 23 22 -1 2 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1569, '22 3 6 0 18 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1570, '22 3 6 0 18 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1571, '22 3 6 0 0 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1572, '22 3 6 0 0 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1573, '22 3 6 18 -1 2 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1574, '22 3 6 18 22 -1 2 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1575, '22 3 6 18 0 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1576, '22 3 6 18 0 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1577, '22 3 6 18 18 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1578, '22 3 6 18 18 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1579, '22 3 6 6 0 -1 2 3 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1580, '22 3 6 6 0 22 -1 2 3 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1581, '22 3 6 6 21 -1 2 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1582, '22 3 6 6 21 22 -1 2 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1583, '22 3 6 6 21 0 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1584, '22 3 6 6 21 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1585, '22 3 6 6 23 -1 2 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1586, '22 3 6 6 23 22 -1 2 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1587, '22 3 6 6 0 18 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1588, '22 3 6 6 0 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1589, '22 3 6 6 0 0 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1590, '22 3 6 6 0 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1591, '22 3 6 6 18 -1 2 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1592, '22 3 6 6 18 22 -1 2 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1593, '22 3 6 6 18 0 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1594, '22 3 6 6 18 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1595, '22 3 6 6 18 18 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1596, '22 3 6 6 18 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1597, '22 11 6 0 -1 2 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1598, '22 11 6 0 22 -1 2 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1599, '22 11 6 21 -1 2 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1600, '22 11 6 21 22 -1 2 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1601, '22 11 6 21 0 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1602, '22 11 6 21 0 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1603, '22 11 6 23 -1 2 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1604, '22 11 6 23 22 -1 2 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1605, '22 11 6 0 18 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1606, '22 11 6 0 18 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1607, '22 11 6 0 0 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1608, '22 11 6 0 0 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1609, '22 11 6 18 -1 2 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1610, '22 11 6 18 22 -1 2 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1611, '22 11 6 18 0 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1612, '22 11 6 18 0 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1613, '22 11 6 18 18 -1 2 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1614, '22 11 6 18 18 22 -1 2 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1615, '22 11 6 6 0 -1 2 3 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1616, '22 11 6 6 0 22 -1 2 3 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1617, '22 11 6 6 21 -1 2 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1618, '22 11 6 6 21 22 -1 2 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1619, '22 11 6 6 21 0 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1620, '22 11 6 6 21 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1621, '22 11 6 6 23 -1 2 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1622, '22 11 6 6 23 22 -1 2 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1623, '22 11 6 6 0 18 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1624, '22 11 6 6 0 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1625, '22 11 6 6 0 0 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1626, '22 11 6 6 0 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1627, '22 11 6 6 18 -1 2 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1628, '22 11 6 6 18 22 -1 2 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1629, '22 11 6 6 18 0 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1630, '22 11 6 6 18 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1631, '22 11 6 6 18 18 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1632, '22 11 6 6 18 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1633, '22 3 11 6 0 -1 2 3 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1634, '22 3 11 6 0 22 -1 2 3 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1635, '22 3 11 6 21 -1 2 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1636, '22 3 11 6 21 22 -1 2 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1637, '22 3 11 6 21 0 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1638, '22 3 11 6 21 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1639, '22 3 11 6 23 -1 2 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1640, '22 3 11 6 23 22 -1 2 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1641, '22 3 11 6 0 18 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1642, '22 3 11 6 0 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1643, '22 3 11 6 0 0 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1644, '22 3 11 6 0 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1645, '22 3 11 6 18 -1 2 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1646, '22 3 11 6 18 22 -1 2 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1647, '22 3 11 6 18 0 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1648, '22 3 11 6 18 0 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1649, '22 3 11 6 18 18 -1 2 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1650, '22 3 11 6 18 18 22 -1 2 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1651, '22 3 11 6 6 0 -1 2 3 3 3 4 5 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1652, '22 3 11 6 6 0 22 -1 2 3 3 3 4 5 7 -1 2 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1653, '22 3 11 6 6 21 -1 2 3 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1654, '22 3 11 6 6 21 22 -1 2 3 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1655, '22 3 11 6 6 21 0 -1 2 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1656, '22 3 11 6 6 21 0 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1657, '22 3 11 6 6 23 -1 2 3 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1658, '22 3 11 6 6 23 22 -1 2 3 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1659, '22 3 11 6 6 0 18 -1 2 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1660, '22 3 11 6 6 0 18 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1661, '22 3 11 6 6 0 0 -1 2 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1662, '22 3 11 6 6 0 0 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1663, '22 3 11 6 6 18 -1 2 3 3 3 4 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1664, '22 3 11 6 6 18 22 -1 2 3 3 3 4 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1665, '22 3 11 6 6 18 0 -1 2 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1666, '22 3 11 6 6 18 0 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1667, '22 3 11 6 6 18 18 -1 2 3 3 3 4 5 5 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1668, '22 3 11 6 6 18 18 22 -1 2 3 3 3 4 5 5 7 -1 2 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1669, '0 1 -1 1 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1670, '0 1 22 -1 1 5 7 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1671, '0 1 2 -1 1 5 6 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1672, '0 1 2 22 -1 1 5 6 7 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1673, '0 5 -1 1 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1674, '0 5 22 -1 1 5 7 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1675, '0 5 2 -1 1 5 6 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1676, '0 5 2 22 -1 1 5 6 7 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1677, '0 2 1 -1 1 4 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1678, '0 2 1 22 -1 1 4 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1679, '0 2 5 -1 1 4 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1680, '0 2 5 22 -1 1 4 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1681, '0 22 1 -1 1 2 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1682, '0 22 1 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1683, '0 22 5 -1 1 2 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1684, '0 22 5 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1685, '0 22 2 1 -1 1 2 4 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1686, '0 22 2 5 -1 1 2 4 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1687, '0 18 1 -1 1 1 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1688, '0 18 1 22 -1 1 1 5 7 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1689, '0 18 1 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1690, '0 18 1 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1691, '0 18 5 -1 1 1 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1692, '0 18 5 22 -1 1 1 5 7 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1693, '0 18 5 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1694, '0 18 5 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1695, '0 18 2 1 -1 1 1 4 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1696, '0 18 2 1 22 -1 1 1 4 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1697, '0 18 2 5 -1 1 1 4 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1698, '0 18 2 5 22 -1 1 1 4 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1699, '0 18 22 1 -1 1 1 2 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1700, '0 18 22 1 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1701, '0 18 22 5 -1 1 1 2 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1702, '0 18 22 5 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1703, '0 18 22 2 1 -1 1 1 2 4 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1704, '0 18 22 2 5 -1 1 1 2 4 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1705, '0 25 1 -1 1 1 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1706, '0 25 1 22 -1 1 1 5 7 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1707, '0 25 1 2 -1 1 1 5 6 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1708, '0 25 1 2 22 -1 1 1 5 6 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1709, '0 25 5 -1 1 1 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1710, '0 25 5 22 -1 1 1 5 7 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1711, '0 25 5 2 -1 1 1 5 6 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1712, '0 25 5 2 22 -1 1 1 5 6 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1713, '0 25 2 1 -1 1 1 4 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1714, '0 25 2 1 22 -1 1 1 4 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1715, '0 25 2 5 -1 1 1 4 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1716, '0 25 2 5 22 -1 1 1 4 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1717, '0 25 22 1 -1 1 1 2 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1718, '0 25 22 1 2 -1 1 1 2 5 6 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1719, '0 25 22 5 -1 1 1 2 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1720, '0 25 22 5 2 -1 1 1 2 5 6 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1721, '0 25 22 2 1 -1 1 1 2 4 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1722, '0 25 22 2 5 -1 1 1 2 4 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1723, '25 1 -1 1 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1724, '25 1 22 -1 1 5 7 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1725, '25 1 2 -1 1 5 6 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1726, '25 1 2 22 -1 1 5 6 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1727, '25 5 -1 1 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1728, '25 5 22 -1 1 5 7 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1729, '25 5 2 -1 1 5 6 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1730, '25 5 2 22 -1 1 5 6 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1731, '25 2 1 -1 1 4 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1732, '25 2 1 22 -1 1 4 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1733, '25 2 5 -1 1 4 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1734, '25 2 5 22 -1 1 4 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1735, '25 22 1 -1 1 2 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1736, '25 22 1 2 -1 1 2 5 6 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1737, '25 22 5 -1 1 2 5 -1 1 7');
-INSERT INTO pagc_rules (id, rule) VALUES (1738, '25 22 5 2 -1 1 2 5 6 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1739, '25 22 2 1 -1 1 2 4 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1740, '25 22 2 5 -1 1 2 4 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1741, '0 0 -1 1 5 -1 1 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1742, '0 0 22 -1 1 5 7 -1 1 4');
-INSERT INTO pagc_rules (id, rule) VALUES (1743, '0 0 2 -1 1 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1744, '0 0 2 22 -1 1 5 6 7 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1745, '0 18 -1 1 5 -1 1 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1746, '0 18 22 -1 1 5 7 -1 1 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1747, '0 18 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1748, '0 18 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1749, '0 2 0 -1 1 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1750, '0 2 0 22 -1 1 4 5 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1751, '0 2 18 -1 1 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1752, '0 2 18 22 -1 1 4 5 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1753, '0 22 0 -1 1 2 5 -1 1 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1754, '0 22 0 22 -1 1 2 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1755, '0 22 0 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1756, '0 22 0 2 22 -1 1 2 5 6 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1757, '0 22 18 -1 1 2 5 -1 1 6');
-INSERT INTO pagc_rules (id, rule) VALUES (1758, '0 22 18 22 -1 1 2 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1759, '0 22 18 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1760, '0 22 18 2 22 -1 1 2 5 6 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1761, '0 22 2 0 -1 1 2 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1762, '0 22 2 0 22 -1 1 2 4 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1763, '0 22 2 18 -1 1 2 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1764, '0 22 2 18 22 -1 1 2 4 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1765, '0 18 0 -1 1 1 5 -1 1 3');
-INSERT INTO pagc_rules (id, rule) VALUES (1766, '0 18 0 22 -1 1 1 5 7 -1 1 3');
-INSERT INTO pagc_rules (id, rule) VALUES (1767, '0 18 0 2 -1 1 1 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1768, '0 18 0 2 22 -1 1 1 5 6 7 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1769, '0 18 18 -1 1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1770, '0 18 18 22 -1 1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1771, '0 18 18 2 -1 1 1 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1772, '0 18 18 2 22 -1 1 1 5 6 7 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1773, '0 18 2 0 -1 1 1 4 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1774, '0 18 2 0 22 -1 1 1 4 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (1775, '0 18 2 18 -1 1 1 4 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1776, '0 18 2 18 22 -1 1 1 4 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (1777, '0 18 22 0 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1778, '0 18 22 0 2 -1 1 1 2 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1779, '0 18 22 18 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1780, '0 18 22 18 2 -1 1 1 2 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1781, '0 18 22 2 0 -1 1 1 2 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1782, '0 18 22 2 18 -1 1 1 2 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1783, '0 25 0 -1 1 1 5 -1 1 3');
-INSERT INTO pagc_rules (id, rule) VALUES (1784, '0 25 0 22 -1 1 1 5 7 -1 1 3');
-INSERT INTO pagc_rules (id, rule) VALUES (1785, '0 25 0 2 -1 1 1 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1786, '0 25 0 2 22 -1 1 1 5 6 7 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1787, '0 25 18 -1 1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1788, '0 25 18 22 -1 1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1789, '0 25 18 2 -1 1 1 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1790, '0 25 18 2 22 -1 1 1 5 6 7 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1791, '0 25 2 0 -1 1 1 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1792, '0 25 2 0 22 -1 1 1 4 5 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1793, '0 25 2 18 -1 1 1 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1794, '0 25 2 18 22 -1 1 1 4 5 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1795, '0 25 22 0 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1796, '0 25 22 0 2 -1 1 1 2 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1797, '0 25 22 18 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1798, '0 25 22 18 2 -1 1 1 2 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1799, '0 25 22 2 0 -1 1 1 2 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1800, '0 25 22 2 18 -1 1 1 2 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1801, '25 0 -1 1 5 -1 1 3');
-INSERT INTO pagc_rules (id, rule) VALUES (1802, '25 0 22 -1 1 5 7 -1 1 3');
-INSERT INTO pagc_rules (id, rule) VALUES (1803, '25 0 2 -1 1 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1804, '25 0 2 22 -1 1 5 6 7 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1805, '25 18 -1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1806, '25 18 22 -1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1807, '25 18 2 -1 1 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1808, '25 18 2 22 -1 1 5 6 7 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1809, '25 2 0 -1 1 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1810, '25 2 0 22 -1 1 4 5 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1811, '25 2 18 -1 1 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1812, '25 2 18 22 -1 1 4 5 7 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1813, '25 22 0 -1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1814, '25 22 0 2 -1 1 2 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1815, '25 22 18 -1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (1816, '25 22 18 2 -1 1 2 5 6 -1 1 15');
-INSERT INTO pagc_rules (id, rule) VALUES (1817, '25 22 2 0 -1 1 2 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1818, '25 22 2 18 -1 1 2 4 5 -1 1 14');
-INSERT INTO pagc_rules (id, rule) VALUES (1819, '0 6 0 -1 1 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1820, '0 6 0 22 -1 1 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1821, '0 6 21 -1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1822, '0 6 21 22 -1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1823, '0 6 21 0 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1824, '0 6 21 0 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1825, '0 6 23 -1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1826, '0 6 23 22 -1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1827, '0 6 0 18 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1828, '0 6 0 18 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1829, '0 6 0 0 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1830, '0 6 0 0 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1831, '0 6 18 -1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1832, '0 6 18 22 -1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1833, '0 6 18 0 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1834, '0 6 18 0 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1835, '0 6 18 18 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1836, '0 6 18 18 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1837, '0 6 6 0 -1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1838, '0 6 6 0 22 -1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1839, '0 6 6 21 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1840, '0 6 6 21 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1841, '0 6 6 21 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1842, '0 6 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1843, '0 6 6 23 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1844, '0 6 6 23 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1845, '0 6 6 0 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1846, '0 6 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1847, '0 6 6 0 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1848, '0 6 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1849, '0 6 6 18 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1850, '0 6 6 18 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1851, '0 6 6 18 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1852, '0 6 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1853, '0 6 6 18 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1854, '0 6 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1855, '0 3 6 0 -1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1856, '0 3 6 0 22 -1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1857, '0 3 6 21 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1858, '0 3 6 21 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1859, '0 3 6 21 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1860, '0 3 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1861, '0 3 6 23 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1862, '0 3 6 23 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1863, '0 3 6 0 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1864, '0 3 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1865, '0 3 6 0 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1866, '0 3 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1867, '0 3 6 18 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1868, '0 3 6 18 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1869, '0 3 6 18 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1870, '0 3 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1871, '0 3 6 18 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1872, '0 3 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1873, '0 3 6 6 0 -1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1874, '0 3 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1875, '0 3 6 6 21 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1876, '0 3 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1877, '0 3 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1878, '0 3 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1879, '0 3 6 6 23 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1880, '0 3 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1881, '0 3 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1882, '0 3 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1883, '0 3 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1884, '0 3 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1885, '0 3 6 6 18 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1886, '0 3 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1887, '0 3 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1888, '0 3 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1889, '0 3 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1890, '0 3 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1891, '0 11 6 0 -1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1892, '0 11 6 0 22 -1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1893, '0 11 6 21 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1894, '0 11 6 21 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1895, '0 11 6 21 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1896, '0 11 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1897, '0 11 6 23 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1898, '0 11 6 23 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1899, '0 11 6 0 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1900, '0 11 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1901, '0 11 6 0 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1902, '0 11 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1903, '0 11 6 18 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1904, '0 11 6 18 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1905, '0 11 6 18 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1906, '0 11 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1907, '0 11 6 18 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1908, '0 11 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1909, '0 11 6 6 0 -1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1910, '0 11 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1911, '0 11 6 6 21 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1912, '0 11 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1913, '0 11 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1914, '0 11 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1915, '0 11 6 6 23 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1916, '0 11 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1917, '0 11 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1918, '0 11 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1919, '0 11 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1920, '0 11 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1921, '0 11 6 6 18 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1922, '0 11 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1923, '0 11 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1924, '0 11 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1925, '0 11 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1926, '0 11 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1927, '0 3 11 6 0 -1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1928, '0 3 11 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1929, '0 3 11 6 21 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1930, '0 3 11 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1931, '0 3 11 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1932, '0 3 11 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1933, '0 3 11 6 23 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1934, '0 3 11 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1935, '0 3 11 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1936, '0 3 11 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1937, '0 3 11 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1938, '0 3 11 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1939, '0 3 11 6 18 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1940, '0 3 11 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1941, '0 3 11 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1942, '0 3 11 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1943, '0 3 11 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1944, '0 3 11 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1945, '0 3 11 6 6 0 -1 1 3 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1946, '0 3 11 6 6 0 22 -1 1 3 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (1947, '0 3 11 6 6 21 -1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1948, '0 3 11 6 6 21 22 -1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1949, '0 3 11 6 6 21 0 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1950, '0 3 11 6 6 21 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1951, '0 3 11 6 6 23 -1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1952, '0 3 11 6 6 23 22 -1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1953, '0 3 11 6 6 0 18 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1954, '0 3 11 6 6 0 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1955, '0 3 11 6 6 0 0 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1956, '0 3 11 6 6 0 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1957, '0 3 11 6 6 18 -1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1958, '0 3 11 6 6 18 22 -1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1959, '0 3 11 6 6 18 0 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1960, '0 3 11 6 6 18 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1961, '0 3 11 6 6 18 18 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1962, '0 3 11 6 6 18 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1963, '0 22 6 0 -1 1 2 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1964, '0 22 6 21 -1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1965, '0 22 6 21 0 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1966, '0 22 6 23 -1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1967, '0 22 6 0 18 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1968, '0 22 6 0 0 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1969, '0 22 6 18 -1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1970, '0 22 6 18 0 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1971, '0 22 6 18 18 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1972, '0 22 6 6 0 -1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1973, '0 22 6 6 21 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1974, '0 22 6 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1975, '0 22 6 6 23 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1976, '0 22 6 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1977, '0 22 6 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1978, '0 22 6 6 18 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1979, '0 22 6 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1980, '0 22 6 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1981, '0 22 3 6 0 -1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1982, '0 22 3 6 21 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1983, '0 22 3 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1984, '0 22 3 6 23 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1985, '0 22 3 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1986, '0 22 3 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1987, '0 22 3 6 18 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1988, '0 22 3 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1989, '0 22 3 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1990, '0 22 3 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (1991, '0 22 3 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1992, '0 22 3 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1993, '0 22 3 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1994, '0 22 3 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1995, '0 22 3 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1996, '0 22 3 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1997, '0 22 3 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1998, '0 22 3 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (1999, '0 22 11 6 0 -1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2000, '0 22 11 6 21 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2001, '0 22 11 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2002, '0 22 11 6 23 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2003, '0 22 11 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2004, '0 22 11 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2005, '0 22 11 6 18 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2006, '0 22 11 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2007, '0 22 11 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2008, '0 22 11 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2009, '0 22 11 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2010, '0 22 11 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2011, '0 22 11 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2012, '0 22 11 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2013, '0 22 11 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2014, '0 22 11 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2015, '0 22 11 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2016, '0 22 11 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2017, '0 22 3 11 6 0 -1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2018, '0 22 3 11 6 21 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2019, '0 22 3 11 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2020, '0 22 3 11 6 23 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2021, '0 22 3 11 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2022, '0 22 3 11 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2023, '0 22 3 11 6 18 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2024, '0 22 3 11 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2025, '0 22 3 11 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2026, '0 22 3 11 6 6 0 -1 1 2 3 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2027, '0 22 3 11 6 6 21 -1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2028, '0 22 3 11 6 6 21 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2029, '0 22 3 11 6 6 23 -1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2030, '0 22 3 11 6 6 0 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2031, '0 22 3 11 6 6 0 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2032, '0 22 3 11 6 6 18 -1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2033, '0 22 3 11 6 6 18 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2034, '0 22 3 11 6 6 18 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2035, '0 18 6 0 -1 1 1 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2036, '0 18 6 0 22 -1 1 1 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2037, '0 18 6 21 -1 1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2038, '0 18 6 21 22 -1 1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2039, '0 18 6 21 0 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2040, '0 18 6 21 0 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2041, '0 18 6 23 -1 1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2042, '0 18 6 23 22 -1 1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2043, '0 18 6 0 18 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2044, '0 18 6 0 18 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2045, '0 18 6 0 0 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2046, '0 18 6 0 0 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2047, '0 18 6 18 -1 1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2048, '0 18 6 18 22 -1 1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2049, '0 18 6 18 0 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2050, '0 18 6 18 0 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2051, '0 18 6 18 18 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2052, '0 18 6 18 18 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2053, '0 18 6 6 0 -1 1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2054, '0 18 6 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2055, '0 18 6 6 21 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2056, '0 18 6 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2057, '0 18 6 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2058, '0 18 6 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2059, '0 18 6 6 23 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2060, '0 18 6 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2061, '0 18 6 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2062, '0 18 6 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2063, '0 18 6 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2064, '0 18 6 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2065, '0 18 6 6 18 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2066, '0 18 6 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2067, '0 18 6 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2068, '0 18 6 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2069, '0 18 6 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2070, '0 18 6 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2071, '0 18 3 6 0 -1 1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2072, '0 18 3 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2073, '0 18 3 6 21 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2074, '0 18 3 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2075, '0 18 3 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2076, '0 18 3 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2077, '0 18 3 6 23 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2078, '0 18 3 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2079, '0 18 3 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2080, '0 18 3 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2081, '0 18 3 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2082, '0 18 3 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2083, '0 18 3 6 18 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2084, '0 18 3 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2085, '0 18 3 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2086, '0 18 3 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2087, '0 18 3 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2088, '0 18 3 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2089, '0 18 3 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2090, '0 18 3 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2091, '0 18 3 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2092, '0 18 3 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2093, '0 18 3 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2094, '0 18 3 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2095, '0 18 3 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2096, '0 18 3 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2097, '0 18 3 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2098, '0 18 3 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2099, '0 18 3 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2100, '0 18 3 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2101, '0 18 3 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2102, '0 18 3 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2103, '0 18 3 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2104, '0 18 3 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2105, '0 18 3 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2106, '0 18 3 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2107, '0 18 11 6 0 -1 1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2108, '0 18 11 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2109, '0 18 11 6 21 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2110, '0 18 11 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2111, '0 18 11 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2112, '0 18 11 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2113, '0 18 11 6 23 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2114, '0 18 11 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2115, '0 18 11 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2116, '0 18 11 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2117, '0 18 11 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2118, '0 18 11 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2119, '0 18 11 6 18 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2120, '0 18 11 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2121, '0 18 11 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2122, '0 18 11 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2123, '0 18 11 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2124, '0 18 11 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2125, '0 18 11 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2126, '0 18 11 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2127, '0 18 11 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2128, '0 18 11 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2129, '0 18 11 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2130, '0 18 11 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2131, '0 18 11 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2132, '0 18 11 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2133, '0 18 11 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2134, '0 18 11 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2135, '0 18 11 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2136, '0 18 11 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2137, '0 18 11 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2138, '0 18 11 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2139, '0 18 11 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2140, '0 18 11 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2141, '0 18 11 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2142, '0 18 11 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2143, '0 18 3 11 6 0 -1 1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2144, '0 18 3 11 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2145, '0 18 3 11 6 21 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2146, '0 18 3 11 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2147, '0 18 3 11 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2148, '0 18 3 11 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2149, '0 18 3 11 6 23 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2150, '0 18 3 11 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2151, '0 18 3 11 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2152, '0 18 3 11 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2153, '0 18 3 11 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2154, '0 18 3 11 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2155, '0 18 3 11 6 18 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2156, '0 18 3 11 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2157, '0 18 3 11 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2158, '0 18 3 11 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2159, '0 18 3 11 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2160, '0 18 3 11 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2161, '0 18 3 11 6 6 0 -1 1 1 3 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2162, '0 18 3 11 6 6 0 22 -1 1 1 3 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2163, '0 18 3 11 6 6 21 -1 1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2164, '0 18 3 11 6 6 21 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2165, '0 18 3 11 6 6 21 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2166, '0 18 3 11 6 6 21 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2167, '0 18 3 11 6 6 23 -1 1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2168, '0 18 3 11 6 6 23 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2169, '0 18 3 11 6 6 0 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2170, '0 18 3 11 6 6 0 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2171, '0 18 3 11 6 6 0 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2172, '0 18 3 11 6 6 0 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2173, '0 18 3 11 6 6 18 -1 1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2174, '0 18 3 11 6 6 18 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2175, '0 18 3 11 6 6 18 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2176, '0 18 3 11 6 6 18 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2177, '0 18 3 11 6 6 18 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2178, '0 18 3 11 6 6 18 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2179, '0 18 22 6 0 -1 1 1 2 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2180, '0 18 22 6 21 -1 1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2181, '0 18 22 6 21 0 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2182, '0 18 22 6 23 -1 1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2183, '0 18 22 6 0 18 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2184, '0 18 22 6 0 0 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2185, '0 18 22 6 18 -1 1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2186, '0 18 22 6 18 0 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2187, '0 18 22 6 18 18 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2188, '0 18 22 6 6 0 -1 1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2189, '0 18 22 6 6 21 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2190, '0 18 22 6 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2191, '0 18 22 6 6 23 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2192, '0 18 22 6 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2193, '0 18 22 6 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2194, '0 18 22 6 6 18 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2195, '0 18 22 6 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2196, '0 18 22 6 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2197, '0 18 22 3 6 0 -1 1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2198, '0 18 22 3 6 21 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2199, '0 18 22 3 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2200, '0 18 22 3 6 23 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2201, '0 18 22 3 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2202, '0 18 22 3 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2203, '0 18 22 3 6 18 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2204, '0 18 22 3 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2205, '0 18 22 3 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2206, '0 18 22 3 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2207, '0 18 22 3 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2208, '0 18 22 3 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2209, '0 18 22 3 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2210, '0 18 22 3 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2211, '0 18 22 3 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2212, '0 18 22 3 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2213, '0 18 22 3 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2214, '0 18 22 3 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2215, '0 18 22 11 6 0 -1 1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2216, '0 18 22 11 6 21 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2217, '0 18 22 11 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2218, '0 18 22 11 6 23 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2219, '0 18 22 11 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2220, '0 18 22 11 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2221, '0 18 22 11 6 18 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2222, '0 18 22 11 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2223, '0 18 22 11 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2224, '0 18 22 11 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2225, '0 18 22 11 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2226, '0 18 22 11 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2227, '0 18 22 11 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2228, '0 18 22 11 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2229, '0 18 22 11 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2230, '0 18 22 11 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2231, '0 18 22 11 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2232, '0 18 22 11 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2233, '0 18 22 3 11 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2234, '0 18 22 3 11 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2235, '0 18 22 3 11 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2236, '0 18 22 3 11 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2237, '0 18 22 3 11 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2238, '0 18 22 3 11 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2239, '0 18 22 3 11 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2240, '0 18 22 3 11 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2241, '0 18 22 3 11 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2242, '0 18 22 3 11 6 6 0 -1 1 1 2 3 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2243, '0 18 22 3 11 6 6 21 -1 1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2244, '0 18 22 3 11 6 6 21 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2245, '0 18 22 3 11 6 6 23 -1 1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2246, '0 18 22 3 11 6 6 0 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2247, '0 18 22 3 11 6 6 0 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2248, '0 18 22 3 11 6 6 18 -1 1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2249, '0 18 22 3 11 6 6 18 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2250, '0 18 22 3 11 6 6 18 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2251, '0 25 6 0 -1 1 1 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2252, '0 25 6 0 22 -1 1 1 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2253, '0 25 6 21 -1 1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2254, '0 25 6 21 22 -1 1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2255, '0 25 6 21 0 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2256, '0 25 6 21 0 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2257, '0 25 6 23 -1 1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2258, '0 25 6 23 22 -1 1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2259, '0 25 6 0 18 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2260, '0 25 6 0 18 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2261, '0 25 6 0 0 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2262, '0 25 6 0 0 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2263, '0 25 6 18 -1 1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2264, '0 25 6 18 22 -1 1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2265, '0 25 6 18 0 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2266, '0 25 6 18 0 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2267, '0 25 6 18 18 -1 1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2268, '0 25 6 18 18 22 -1 1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2269, '0 25 6 6 0 -1 1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2270, '0 25 6 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2271, '0 25 6 6 21 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2272, '0 25 6 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2273, '0 25 6 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2274, '0 25 6 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2275, '0 25 6 6 23 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2276, '0 25 6 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2277, '0 25 6 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2278, '0 25 6 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2279, '0 25 6 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2280, '0 25 6 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2281, '0 25 6 6 18 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2282, '0 25 6 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2283, '0 25 6 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2284, '0 25 6 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2285, '0 25 6 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2286, '0 25 6 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2287, '0 25 3 6 0 -1 1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2288, '0 25 3 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2289, '0 25 3 6 21 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2290, '0 25 3 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2291, '0 25 3 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2292, '0 25 3 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2293, '0 25 3 6 23 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2294, '0 25 3 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2295, '0 25 3 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2296, '0 25 3 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2297, '0 25 3 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2298, '0 25 3 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2299, '0 25 3 6 18 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2300, '0 25 3 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2301, '0 25 3 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2302, '0 25 3 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2303, '0 25 3 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2304, '0 25 3 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2305, '0 25 3 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2306, '0 25 3 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2307, '0 25 3 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2308, '0 25 3 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2309, '0 25 3 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2310, '0 25 3 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2311, '0 25 3 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2312, '0 25 3 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2313, '0 25 3 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2314, '0 25 3 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2315, '0 25 3 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2316, '0 25 3 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2317, '0 25 3 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2318, '0 25 3 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2319, '0 25 3 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2320, '0 25 3 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2321, '0 25 3 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2322, '0 25 3 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2323, '0 25 11 6 0 -1 1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2324, '0 25 11 6 0 22 -1 1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2325, '0 25 11 6 21 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2326, '0 25 11 6 21 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2327, '0 25 11 6 21 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2328, '0 25 11 6 21 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2329, '0 25 11 6 23 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2330, '0 25 11 6 23 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2331, '0 25 11 6 0 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2332, '0 25 11 6 0 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2333, '0 25 11 6 0 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2334, '0 25 11 6 0 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2335, '0 25 11 6 18 -1 1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2336, '0 25 11 6 18 22 -1 1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2337, '0 25 11 6 18 0 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2338, '0 25 11 6 18 0 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2339, '0 25 11 6 18 18 -1 1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2340, '0 25 11 6 18 18 22 -1 1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2341, '0 25 11 6 6 0 -1 1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2342, '0 25 11 6 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2343, '0 25 11 6 6 21 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2344, '0 25 11 6 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2345, '0 25 11 6 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2346, '0 25 11 6 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2347, '0 25 11 6 6 23 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2348, '0 25 11 6 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2349, '0 25 11 6 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2350, '0 25 11 6 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2351, '0 25 11 6 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2352, '0 25 11 6 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2353, '0 25 11 6 6 18 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2354, '0 25 11 6 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2355, '0 25 11 6 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2356, '0 25 11 6 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2357, '0 25 11 6 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2358, '0 25 11 6 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2359, '0 25 3 11 6 0 -1 1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2360, '0 25 3 11 6 0 22 -1 1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2361, '0 25 3 11 6 21 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2362, '0 25 3 11 6 21 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2363, '0 25 3 11 6 21 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2364, '0 25 3 11 6 21 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2365, '0 25 3 11 6 23 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2366, '0 25 3 11 6 23 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2367, '0 25 3 11 6 0 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2368, '0 25 3 11 6 0 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2369, '0 25 3 11 6 0 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2370, '0 25 3 11 6 0 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2371, '0 25 3 11 6 18 -1 1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2372, '0 25 3 11 6 18 22 -1 1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2373, '0 25 3 11 6 18 0 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2374, '0 25 3 11 6 18 0 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2375, '0 25 3 11 6 18 18 -1 1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2376, '0 25 3 11 6 18 18 22 -1 1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2377, '0 25 3 11 6 6 0 -1 1 1 3 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2378, '0 25 3 11 6 6 0 22 -1 1 1 3 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2379, '0 25 3 11 6 6 21 -1 1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2380, '0 25 3 11 6 6 21 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2381, '0 25 3 11 6 6 21 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2382, '0 25 3 11 6 6 21 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2383, '0 25 3 11 6 6 23 -1 1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2384, '0 25 3 11 6 6 23 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2385, '0 25 3 11 6 6 0 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2386, '0 25 3 11 6 6 0 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2387, '0 25 3 11 6 6 0 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2388, '0 25 3 11 6 6 0 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2389, '0 25 3 11 6 6 18 -1 1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2390, '0 25 3 11 6 6 18 22 -1 1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2391, '0 25 3 11 6 6 18 0 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2392, '0 25 3 11 6 6 18 0 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2393, '0 25 3 11 6 6 18 18 -1 1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2394, '0 25 3 11 6 6 18 18 22 -1 1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2395, '0 25 22 6 0 -1 1 1 2 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2396, '0 25 22 6 21 -1 1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2397, '0 25 22 6 21 0 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2398, '0 25 22 6 23 -1 1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2399, '0 25 22 6 0 18 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2400, '0 25 22 6 0 0 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2401, '0 25 22 6 18 -1 1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2402, '0 25 22 6 18 0 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2403, '0 25 22 6 18 18 -1 1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2404, '0 25 22 6 6 0 -1 1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2405, '0 25 22 6 6 21 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2406, '0 25 22 6 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2407, '0 25 22 6 6 23 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2408, '0 25 22 6 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2409, '0 25 22 6 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2410, '0 25 22 6 6 18 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2411, '0 25 22 6 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2412, '0 25 22 6 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2413, '0 25 22 3 6 0 -1 1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2414, '0 25 22 3 6 21 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2415, '0 25 22 3 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2416, '0 25 22 3 6 23 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2417, '0 25 22 3 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2418, '0 25 22 3 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2419, '0 25 22 3 6 18 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2420, '0 25 22 3 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2421, '0 25 22 3 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2422, '0 25 22 3 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2423, '0 25 22 3 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2424, '0 25 22 3 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2425, '0 25 22 3 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2426, '0 25 22 3 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2427, '0 25 22 3 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2428, '0 25 22 3 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2429, '0 25 22 3 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2430, '0 25 22 3 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2431, '0 25 22 11 6 0 -1 1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2432, '0 25 22 11 6 21 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2433, '0 25 22 11 6 21 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2434, '0 25 22 11 6 23 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2435, '0 25 22 11 6 0 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2436, '0 25 22 11 6 0 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2437, '0 25 22 11 6 18 -1 1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2438, '0 25 22 11 6 18 0 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2439, '0 25 22 11 6 18 18 -1 1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2440, '0 25 22 11 6 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2441, '0 25 22 11 6 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2442, '0 25 22 11 6 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2443, '0 25 22 11 6 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2444, '0 25 22 11 6 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2445, '0 25 22 11 6 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2446, '0 25 22 11 6 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2447, '0 25 22 11 6 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2448, '0 25 22 11 6 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2449, '0 25 22 3 11 6 0 -1 1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2450, '0 25 22 3 11 6 21 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2451, '0 25 22 3 11 6 21 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2452, '0 25 22 3 11 6 23 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2453, '0 25 22 3 11 6 0 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2454, '0 25 22 3 11 6 0 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2455, '0 25 22 3 11 6 18 -1 1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2456, '0 25 22 3 11 6 18 0 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2457, '0 25 22 3 11 6 18 18 -1 1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2458, '0 25 22 3 11 6 6 0 -1 1 1 2 3 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2459, '0 25 22 3 11 6 6 21 -1 1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2460, '0 25 22 3 11 6 6 21 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2461, '0 25 22 3 11 6 6 23 -1 1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2462, '0 25 22 3 11 6 6 0 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2463, '0 25 22 3 11 6 6 0 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2464, '0 25 22 3 11 6 6 18 -1 1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2465, '0 25 22 3 11 6 6 18 0 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2466, '0 25 22 3 11 6 6 18 18 -1 1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2467, '25 6 0 -1 1 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2468, '25 6 0 22 -1 1 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2469, '25 6 21 -1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2470, '25 6 21 22 -1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2471, '25 6 21 0 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2472, '25 6 21 0 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2473, '25 6 23 -1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2474, '25 6 23 22 -1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2475, '25 6 0 18 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2476, '25 6 0 18 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2477, '25 6 0 0 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2478, '25 6 0 0 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2479, '25 6 18 -1 1 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2480, '25 6 18 22 -1 1 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2481, '25 6 18 0 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2482, '25 6 18 0 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2483, '25 6 18 18 -1 1 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2484, '25 6 18 18 22 -1 1 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2485, '25 6 6 0 -1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2486, '25 6 6 0 22 -1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2487, '25 6 6 21 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2488, '25 6 6 21 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2489, '25 6 6 21 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2490, '25 6 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2491, '25 6 6 23 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2492, '25 6 6 23 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2493, '25 6 6 0 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2494, '25 6 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2495, '25 6 6 0 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2496, '25 6 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2497, '25 6 6 18 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2498, '25 6 6 18 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2499, '25 6 6 18 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2500, '25 6 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2501, '25 6 6 18 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2502, '25 6 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2503, '25 3 6 0 -1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2504, '25 3 6 0 22 -1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2505, '25 3 6 21 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2506, '25 3 6 21 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2507, '25 3 6 21 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2508, '25 3 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2509, '25 3 6 23 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2510, '25 3 6 23 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2511, '25 3 6 0 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2512, '25 3 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2513, '25 3 6 0 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2514, '25 3 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2515, '25 3 6 18 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2516, '25 3 6 18 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2517, '25 3 6 18 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2518, '25 3 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2519, '25 3 6 18 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2520, '25 3 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2521, '25 3 6 6 0 -1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2522, '25 3 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2523, '25 3 6 6 21 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2524, '25 3 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2525, '25 3 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2526, '25 3 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2527, '25 3 6 6 23 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2528, '25 3 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2529, '25 3 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2530, '25 3 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2531, '25 3 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2532, '25 3 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2533, '25 3 6 6 18 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2534, '25 3 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2535, '25 3 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2536, '25 3 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2537, '25 3 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2538, '25 3 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2539, '25 11 6 0 -1 1 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2540, '25 11 6 0 22 -1 1 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2541, '25 11 6 21 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2542, '25 11 6 21 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2543, '25 11 6 21 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2544, '25 11 6 21 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2545, '25 11 6 23 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2546, '25 11 6 23 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2547, '25 11 6 0 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2548, '25 11 6 0 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2549, '25 11 6 0 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2550, '25 11 6 0 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2551, '25 11 6 18 -1 1 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2552, '25 11 6 18 22 -1 1 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2553, '25 11 6 18 0 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2554, '25 11 6 18 0 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2555, '25 11 6 18 18 -1 1 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2556, '25 11 6 18 18 22 -1 1 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2557, '25 11 6 6 0 -1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2558, '25 11 6 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2559, '25 11 6 6 21 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2560, '25 11 6 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2561, '25 11 6 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2562, '25 11 6 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2563, '25 11 6 6 23 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2564, '25 11 6 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2565, '25 11 6 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2566, '25 11 6 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2567, '25 11 6 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2568, '25 11 6 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2569, '25 11 6 6 18 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2570, '25 11 6 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2571, '25 11 6 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2572, '25 11 6 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2573, '25 11 6 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2574, '25 11 6 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2575, '25 3 11 6 0 -1 1 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2576, '25 3 11 6 0 22 -1 1 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2577, '25 3 11 6 21 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2578, '25 3 11 6 21 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2579, '25 3 11 6 21 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2580, '25 3 11 6 21 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2581, '25 3 11 6 23 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2582, '25 3 11 6 23 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2583, '25 3 11 6 0 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2584, '25 3 11 6 0 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2585, '25 3 11 6 0 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2586, '25 3 11 6 0 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2587, '25 3 11 6 18 -1 1 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2588, '25 3 11 6 18 22 -1 1 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2589, '25 3 11 6 18 0 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2590, '25 3 11 6 18 0 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2591, '25 3 11 6 18 18 -1 1 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2592, '25 3 11 6 18 18 22 -1 1 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2593, '25 3 11 6 6 0 -1 1 3 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2594, '25 3 11 6 6 0 22 -1 1 3 3 3 4 5 7 -1 1 12');
-INSERT INTO pagc_rules (id, rule) VALUES (2595, '25 3 11 6 6 21 -1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2596, '25 3 11 6 6 21 22 -1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2597, '25 3 11 6 6 21 0 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2598, '25 3 11 6 6 21 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2599, '25 3 11 6 6 23 -1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2600, '25 3 11 6 6 23 22 -1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2601, '25 3 11 6 6 0 18 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2602, '25 3 11 6 6 0 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2603, '25 3 11 6 6 0 0 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2604, '25 3 11 6 6 0 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2605, '25 3 11 6 6 18 -1 1 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2606, '25 3 11 6 6 18 22 -1 1 3 3 3 4 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2607, '25 3 11 6 6 18 0 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2608, '25 3 11 6 6 18 0 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2609, '25 3 11 6 6 18 18 -1 1 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2610, '25 3 11 6 6 18 18 22 -1 1 3 3 3 4 5 5 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2611, '25 22 6 0 -1 1 2 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2612, '25 22 6 21 -1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2613, '25 22 6 21 0 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2614, '25 22 6 23 -1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2615, '25 22 6 0 18 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2616, '25 22 6 0 0 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2617, '25 22 6 18 -1 1 2 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2618, '25 22 6 18 0 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2619, '25 22 6 18 18 -1 1 2 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2620, '25 22 6 6 0 -1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2621, '25 22 6 6 21 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2622, '25 22 6 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2623, '25 22 6 6 23 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2624, '25 22 6 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2625, '25 22 6 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2626, '25 22 6 6 18 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2627, '25 22 6 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2628, '25 22 6 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2629, '25 22 3 6 0 -1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2630, '25 22 3 6 21 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2631, '25 22 3 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2632, '25 22 3 6 23 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2633, '25 22 3 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2634, '25 22 3 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2635, '25 22 3 6 18 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2636, '25 22 3 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2637, '25 22 3 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2638, '25 22 3 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2639, '25 22 3 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2640, '25 22 3 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2641, '25 22 3 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2642, '25 22 3 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2643, '25 22 3 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2644, '25 22 3 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2645, '25 22 3 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2646, '25 22 3 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2647, '25 22 11 6 0 -1 1 2 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2648, '25 22 11 6 21 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2649, '25 22 11 6 21 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2650, '25 22 11 6 23 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2651, '25 22 11 6 0 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2652, '25 22 11 6 0 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2653, '25 22 11 6 18 -1 1 2 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2654, '25 22 11 6 18 0 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2655, '25 22 11 6 18 18 -1 1 2 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2656, '25 22 11 6 6 0 -1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2657, '25 22 11 6 6 21 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2658, '25 22 11 6 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2659, '25 22 11 6 6 23 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2660, '25 22 11 6 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2661, '25 22 11 6 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2662, '25 22 11 6 6 18 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2663, '25 22 11 6 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2664, '25 22 11 6 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2665, '25 22 3 11 6 0 -1 1 2 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2666, '25 22 3 11 6 21 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2667, '25 22 3 11 6 21 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2668, '25 22 3 11 6 23 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2669, '25 22 3 11 6 0 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2670, '25 22 3 11 6 0 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2671, '25 22 3 11 6 18 -1 1 2 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2672, '25 22 3 11 6 18 0 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2673, '25 22 3 11 6 18 18 -1 1 2 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2674, '25 22 3 11 6 6 0 -1 1 2 3 3 3 4 5 -1 1 17');
-INSERT INTO pagc_rules (id, rule) VALUES (2675, '25 22 3 11 6 6 21 -1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2676, '25 22 3 11 6 6 21 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2677, '25 22 3 11 6 6 23 -1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2678, '25 22 3 11 6 6 0 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2679, '25 22 3 11 6 6 0 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2680, '25 22 3 11 6 6 18 -1 1 2 3 3 3 4 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2681, '25 22 3 11 6 6 18 0 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2682, '25 22 3 11 6 6 18 18 -1 1 2 3 3 3 4 5 5 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2683, '0 22 -1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2684, '0 22 22 -1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2685, '0 22 1 -1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2686, '0 22 1 22 -1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2687, '0 15 -1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2688, '0 15 22 -1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2689, '0 18 18 1 -1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2690, '0 18 18 1 22 -1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2691, '0 18 1 -1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2692, '0 18 1 22 -1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2693, '0 2 -1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2694, '0 2 22 -1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2695, '0 1 13 1 -1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2696, '0 1 13 1 22 -1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2697, '0 1 18 -1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2698, '0 1 18 22 -1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2699, '0 1 18 1 -1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2700, '0 1 18 1 22 -1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2701, '0 22 22 -1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2702, '0 22 22 22 -1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2703, '0 22 22 1 -1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2704, '0 22 22 1 22 -1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2705, '0 22 15 -1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2706, '0 22 15 22 -1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2707, '0 22 18 18 1 -1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2708, '0 22 18 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2709, '0 22 18 1 -1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2710, '0 22 18 1 22 -1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2711, '0 22 2 -1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2712, '0 22 2 22 -1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2713, '0 22 1 13 1 -1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2714, '0 22 1 13 1 22 -1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2715, '0 22 1 18 -1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2716, '0 22 1 18 22 -1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2717, '0 22 1 18 1 -1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2718, '0 22 1 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2719, '0 18 22 -1 1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2720, '0 18 22 22 -1 1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2721, '0 18 22 1 -1 1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2722, '0 18 22 1 22 -1 1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2723, '0 18 15 -1 1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2724, '0 18 15 22 -1 1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2725, '0 18 18 18 1 -1 1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2726, '0 18 18 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2727, '0 18 18 1 -1 1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2728, '0 18 18 1 22 -1 1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2729, '0 18 2 -1 1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2730, '0 18 2 22 -1 1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2731, '0 18 1 13 1 -1 1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2732, '0 18 1 13 1 22 -1 1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2733, '0 18 1 18 -1 1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2734, '0 18 1 18 22 -1 1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2735, '0 18 1 18 1 -1 1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2736, '0 18 1 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2737, '0 18 22 22 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2738, '0 18 22 22 22 -1 1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2739, '0 18 22 22 1 -1 1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2740, '0 18 22 22 1 22 -1 1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2741, '0 18 22 15 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2742, '0 18 22 15 22 -1 1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2743, '0 18 22 18 18 1 -1 1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2744, '0 18 22 18 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2745, '0 18 22 18 1 -1 1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2746, '0 18 22 18 1 22 -1 1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2747, '0 18 22 2 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2748, '0 18 22 2 22 -1 1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2749, '0 18 22 1 13 1 -1 1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2750, '0 18 22 1 13 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2751, '0 18 22 1 18 -1 1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2752, '0 18 22 1 18 22 -1 1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2753, '0 18 22 1 18 1 -1 1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2754, '0 18 22 1 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2755, '0 25 22 -1 1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2756, '0 25 22 22 -1 1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2757, '0 25 22 1 -1 1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2758, '0 25 22 1 22 -1 1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2759, '0 25 15 -1 1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2760, '0 25 15 22 -1 1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2761, '0 25 18 18 1 -1 1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2762, '0 25 18 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2763, '0 25 18 1 -1 1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2764, '0 25 18 1 22 -1 1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2765, '0 25 2 -1 1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2766, '0 25 2 22 -1 1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2767, '0 25 1 13 1 -1 1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2768, '0 25 1 13 1 22 -1 1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2769, '0 25 1 18 -1 1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2770, '0 25 1 18 22 -1 1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2771, '0 25 1 18 1 -1 1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2772, '0 25 1 18 1 22 -1 1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2773, '0 25 22 22 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2774, '0 25 22 22 22 -1 1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2775, '0 25 22 22 1 -1 1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2776, '0 25 22 22 1 22 -1 1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2777, '0 25 22 15 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2778, '0 25 22 15 22 -1 1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2779, '0 25 22 18 18 1 -1 1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2780, '0 25 22 18 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2781, '0 25 22 18 1 -1 1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2782, '0 25 22 18 1 22 -1 1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2783, '0 25 22 2 -1 1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2784, '0 25 22 2 22 -1 1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2785, '0 25 22 1 13 1 -1 1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2786, '0 25 22 1 13 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2787, '0 25 22 1 18 -1 1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2788, '0 25 22 1 18 22 -1 1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2789, '0 25 22 1 18 1 -1 1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2790, '0 25 22 1 18 1 22 -1 1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2791, '25 22 -1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2792, '25 22 22 -1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2793, '25 22 1 -1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2794, '25 22 1 22 -1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2795, '25 15 -1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2796, '25 15 22 -1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2797, '25 18 18 1 -1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2798, '25 18 18 1 22 -1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2799, '25 18 1 -1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2800, '25 18 1 22 -1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2801, '25 2 -1 1 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2802, '25 2 22 -1 1 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2803, '25 1 13 1 -1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2804, '25 1 13 1 22 -1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2805, '25 1 18 -1 1 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2806, '25 1 18 22 -1 1 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2807, '25 1 18 1 -1 1 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2808, '25 1 18 1 22 -1 1 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2809, '25 22 22 -1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2810, '25 22 22 22 -1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2811, '25 22 22 1 -1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2812, '25 22 22 1 22 -1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2813, '25 22 15 -1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2814, '25 22 15 22 -1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2815, '25 22 18 18 1 -1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2816, '25 22 18 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2817, '25 22 18 1 -1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2818, '25 22 18 1 22 -1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2819, '25 22 2 -1 1 2 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2820, '25 22 2 22 -1 1 2 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2821, '25 22 1 13 1 -1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2822, '25 22 1 13 1 22 -1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2823, '25 22 1 18 -1 1 2 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2824, '25 22 1 18 22 -1 1 2 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2825, '25 22 1 18 1 -1 1 2 5 5 5 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2826, '25 22 1 18 1 22 -1 1 2 5 5 5 7 -1 1 5');
-INSERT INTO pagc_rules (id, rule) VALUES (2827, '0 2 1 18 -1 1 4 5 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2828, '0 2 1 18 22 -1 1 4 5 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2829, '0 2 1 18 1 -1 1 4 5 5 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2830, '0 2 1 18 1 22 -1 1 4 5 5 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2831, '0 2 0 18 -1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2832, '0 2 0 18 22 -1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2833, '0 2 0 1 -1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2834, '0 2 0 1 22 -1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2835, '0 2 18 1 -1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2836, '0 2 18 1 22 -1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2837, '0 2 18 18 1 -1 1 4 5 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2838, '0 2 18 18 1 22 -1 1 4 5 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2839, '0 18 2 1 18 -1 1 1 4 5 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2840, '0 18 2 1 18 22 -1 1 1 4 5 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2841, '0 18 2 1 18 1 -1 1 1 4 5 5 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2842, '0 18 2 1 18 1 22 -1 1 1 4 5 5 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2843, '0 18 2 0 18 -1 1 1 4 5 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2844, '0 18 2 0 18 22 -1 1 1 4 5 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2845, '0 18 2 0 1 -1 1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2846, '0 18 2 0 1 22 -1 1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2847, '0 18 2 18 1 -1 1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2848, '0 18 2 18 1 22 -1 1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2849, '0 18 2 18 18 1 -1 1 1 4 5 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2850, '0 18 2 18 18 1 22 -1 1 1 4 5 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2851, '0 25 2 1 18 -1 1 1 4 5 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2852, '0 25 2 1 18 22 -1 1 1 4 5 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2853, '0 25 2 1 18 1 -1 1 1 4 5 5 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2854, '0 25 2 1 18 1 22 -1 1 1 4 5 5 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2855, '0 25 2 0 18 -1 1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2856, '0 25 2 0 18 22 -1 1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2857, '0 25 2 0 1 -1 1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2858, '0 25 2 0 1 22 -1 1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2859, '0 25 2 18 1 -1 1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2860, '0 25 2 18 1 22 -1 1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2861, '0 25 2 18 18 1 -1 1 1 4 5 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2862, '0 25 2 18 18 1 22 -1 1 1 4 5 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2863, '25 2 1 18 -1 1 4 5 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2864, '25 2 1 18 22 -1 1 4 5 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2865, '25 2 1 18 1 -1 1 4 5 5 5 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2866, '25 2 1 18 1 22 -1 1 4 5 5 5 7 -1 1 11');
-INSERT INTO pagc_rules (id, rule) VALUES (2867, '25 2 0 18 -1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2868, '25 2 0 18 22 -1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2869, '25 2 0 1 -1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2870, '25 2 0 1 22 -1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2871, '25 2 18 1 -1 1 4 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2872, '25 2 18 1 22 -1 1 4 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2873, '25 2 18 18 1 -1 1 4 5 5 5 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2874, '25 2 18 18 1 22 -1 1 4 5 5 5 7 -1 1 8');
-INSERT INTO pagc_rules (id, rule) VALUES (2875, '0 14 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2876, '0 14 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2877, '0 15 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2878, '0 15 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2879, '0 24 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2880, '0 24 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2881, '0 24 24 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2882, '0 24 24 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2883, '0 24 2 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2884, '0 24 2 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2885, '0 24 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2886, '0 24 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2887, '0 22 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2888, '0 22 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2889, '0 22 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2890, '0 22 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2891, '0 25 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2892, '0 25 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2893, '0 0 25 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2894, '0 0 25 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2895, '0 15 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2896, '0 15 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2897, '0 18 18 18 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2898, '0 18 18 18 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2899, '0 18 18 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2900, '0 18 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2901, '0 18 2 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2902, '0 18 2 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2903, '0 18 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2904, '0 18 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2905, '0 2 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2906, '0 2 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2907, '0 2 0 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2908, '0 2 0 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2909, '0 2 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2910, '0 2 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2911, '0 16 0 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2912, '0 16 0 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2913, '0 1 13 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2914, '0 1 13 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2915, '0 1 15 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2916, '0 1 15 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2917, '0 1 24 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2918, '0 1 24 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2919, '0 1 24 24 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2920, '0 1 24 24 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2921, '0 1 24 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2922, '0 1 24 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2923, '0 1 22 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2924, '0 1 22 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2925, '0 1 22 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2926, '0 1 22 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2927, '0 1 25 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2928, '0 1 25 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2929, '0 1 0 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2930, '0 1 0 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2931, '0 1 18 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2932, '0 1 18 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2933, '0 1 18 2 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2934, '0 1 18 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2935, '0 1 18 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2936, '0 1 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2937, '0 1 2 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2938, '0 1 2 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2939, '0 1 2 2 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2940, '0 1 2 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2941, '0 21 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2942, '0 21 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2943, '0 22 14 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2944, '0 22 14 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2945, '0 22 15 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2946, '0 22 15 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2947, '0 22 24 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2948, '0 22 24 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2949, '0 22 24 24 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2950, '0 22 24 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2951, '0 22 24 2 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2952, '0 22 24 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2953, '0 22 24 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2954, '0 22 24 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2955, '0 22 22 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2956, '0 22 22 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2957, '0 22 22 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2958, '0 22 22 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2959, '0 22 25 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2960, '0 22 25 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2961, '0 22 0 25 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2962, '0 22 0 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2963, '0 22 15 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2964, '0 22 15 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2965, '0 22 18 18 18 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2966, '0 22 18 18 18 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2967, '0 22 18 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2968, '0 22 18 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2969, '0 22 18 2 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2970, '0 22 18 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2971, '0 22 18 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2972, '0 22 18 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2973, '0 22 2 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2974, '0 22 2 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2975, '0 22 2 0 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2976, '0 22 2 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2977, '0 22 2 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2978, '0 22 2 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2979, '0 22 16 0 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2980, '0 22 16 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2981, '0 22 1 13 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2982, '0 22 1 13 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2983, '0 22 1 15 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2984, '0 22 1 15 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2985, '0 22 1 24 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2986, '0 22 1 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2987, '0 22 1 24 24 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2988, '0 22 1 24 24 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2989, '0 22 1 24 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2990, '0 22 1 24 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2991, '0 22 1 22 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2992, '0 22 1 22 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2993, '0 22 1 22 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2994, '0 22 1 22 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2995, '0 22 1 25 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2996, '0 22 1 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2997, '0 22 1 0 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2998, '0 22 1 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (2999, '0 22 1 18 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3000, '0 22 1 18 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3001, '0 22 1 18 2 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3002, '0 22 1 18 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3003, '0 22 1 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3004, '0 22 1 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3005, '0 22 1 2 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3006, '0 22 1 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3007, '0 22 1 2 2 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3008, '0 22 1 2 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3009, '0 22 21 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3010, '0 22 21 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3011, '0 18 14 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3012, '0 18 14 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3013, '0 18 15 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3014, '0 18 15 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3015, '0 18 24 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3016, '0 18 24 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3017, '0 18 24 24 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3018, '0 18 24 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3019, '0 18 24 2 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3020, '0 18 24 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3021, '0 18 24 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3022, '0 18 24 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3023, '0 18 22 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3024, '0 18 22 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3025, '0 18 22 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3026, '0 18 22 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3027, '0 18 25 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3028, '0 18 25 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3029, '0 18 0 25 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3030, '0 18 0 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3031, '0 18 15 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3032, '0 18 15 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3033, '0 18 18 18 18 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3034, '0 18 18 18 18 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3035, '0 18 18 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3036, '0 18 18 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3037, '0 18 18 2 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3038, '0 18 18 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3039, '0 18 18 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3040, '0 18 18 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3041, '0 18 2 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3042, '0 18 2 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3043, '0 18 2 0 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3044, '0 18 2 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3045, '0 18 2 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3046, '0 18 2 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3047, '0 18 16 0 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3048, '0 18 16 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3049, '0 18 1 13 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3050, '0 18 1 13 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3051, '0 18 1 15 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3052, '0 18 1 15 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3053, '0 18 1 24 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3054, '0 18 1 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3055, '0 18 1 24 24 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3056, '0 18 1 24 24 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3057, '0 18 1 24 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3058, '0 18 1 24 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3059, '0 18 1 22 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3060, '0 18 1 22 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3061, '0 18 1 22 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3062, '0 18 1 22 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3063, '0 18 1 25 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3064, '0 18 1 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3065, '0 18 1 0 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3066, '0 18 1 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3067, '0 18 1 18 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3068, '0 18 1 18 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3069, '0 18 1 18 2 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3070, '0 18 1 18 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3071, '0 18 1 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3072, '0 18 1 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3073, '0 18 1 2 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3074, '0 18 1 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3075, '0 18 1 2 2 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3076, '0 18 1 2 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3077, '0 18 21 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3078, '0 18 21 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3079, '0 18 22 14 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3080, '0 18 22 14 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3081, '0 18 22 15 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3082, '0 18 22 15 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3083, '0 18 22 24 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3084, '0 18 22 24 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3085, '0 18 22 24 24 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3086, '0 18 22 24 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3087, '0 18 22 24 2 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3088, '0 18 22 24 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3089, '0 18 22 24 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3090, '0 18 22 24 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3091, '0 18 22 22 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3092, '0 18 22 22 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3093, '0 18 22 22 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3094, '0 18 22 22 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3095, '0 18 22 25 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3096, '0 18 22 25 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3097, '0 18 22 0 25 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3098, '0 18 22 0 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3099, '0 18 22 15 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3100, '0 18 22 15 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3101, '0 18 22 18 18 18 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3102, '0 18 22 18 18 18 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3103, '0 18 22 18 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3104, '0 18 22 18 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3105, '0 18 22 18 2 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3106, '0 18 22 18 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3107, '0 18 22 18 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3108, '0 18 22 18 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3109, '0 18 22 2 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3110, '0 18 22 2 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3111, '0 18 22 2 0 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3112, '0 18 22 2 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3113, '0 18 22 2 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3114, '0 18 22 2 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3115, '0 18 22 16 0 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3116, '0 18 22 16 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3117, '0 18 22 1 13 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3118, '0 18 22 1 13 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3119, '0 18 22 1 15 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3120, '0 18 22 1 15 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3121, '0 18 22 1 24 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3122, '0 18 22 1 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3123, '0 18 22 1 24 24 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3124, '0 18 22 1 24 24 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3125, '0 18 22 1 24 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3126, '0 18 22 1 24 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3127, '0 18 22 1 22 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3128, '0 18 22 1 22 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3129, '0 18 22 1 22 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3130, '0 18 22 1 22 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3131, '0 18 22 1 25 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3132, '0 18 22 1 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3133, '0 18 22 1 0 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3134, '0 18 22 1 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3135, '0 18 22 1 18 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3136, '0 18 22 1 18 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3137, '0 18 22 1 18 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3138, '0 18 22 1 18 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3139, '0 18 22 1 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3140, '0 18 22 1 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3141, '0 18 22 1 2 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3142, '0 18 22 1 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3143, '0 18 22 1 2 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3144, '0 18 22 1 2 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3145, '0 18 22 21 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3146, '0 18 22 21 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3147, '0 25 14 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3148, '0 25 14 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3149, '0 25 15 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3150, '0 25 15 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3151, '0 25 24 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3152, '0 25 24 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3153, '0 25 24 24 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3154, '0 25 24 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3155, '0 25 24 2 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3156, '0 25 24 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3157, '0 25 24 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3158, '0 25 24 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3159, '0 25 22 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3160, '0 25 22 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3161, '0 25 22 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3162, '0 25 22 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3163, '0 25 25 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3164, '0 25 25 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3165, '0 25 0 25 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3166, '0 25 0 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3167, '0 25 15 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3168, '0 25 15 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3169, '0 25 18 18 18 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3170, '0 25 18 18 18 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3171, '0 25 18 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3172, '0 25 18 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3173, '0 25 18 2 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3174, '0 25 18 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3175, '0 25 18 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3176, '0 25 18 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3177, '0 25 2 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3178, '0 25 2 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3179, '0 25 2 0 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3180, '0 25 2 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3181, '0 25 2 1 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3182, '0 25 2 1 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3183, '0 25 16 0 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3184, '0 25 16 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3185, '0 25 1 13 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3186, '0 25 1 13 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3187, '0 25 1 15 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3188, '0 25 1 15 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3189, '0 25 1 24 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3190, '0 25 1 24 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3191, '0 25 1 24 24 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3192, '0 25 1 24 24 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3193, '0 25 1 24 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3194, '0 25 1 24 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3195, '0 25 1 22 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3196, '0 25 1 22 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3197, '0 25 1 22 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3198, '0 25 1 22 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3199, '0 25 1 25 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3200, '0 25 1 25 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3201, '0 25 1 0 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3202, '0 25 1 0 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3203, '0 25 1 18 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3204, '0 25 1 18 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3205, '0 25 1 18 2 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3206, '0 25 1 18 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3207, '0 25 1 18 1 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3208, '0 25 1 18 1 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3209, '0 25 1 2 2 -1 1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3210, '0 25 1 2 2 22 -1 1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3211, '0 25 1 2 2 2 -1 1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3212, '0 25 1 2 2 2 22 -1 1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3213, '0 25 21 2 -1 1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3214, '0 25 21 2 22 -1 1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3215, '0 25 22 14 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3216, '0 25 22 14 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3217, '0 25 22 15 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3218, '0 25 22 15 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3219, '0 25 22 24 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3220, '0 25 22 24 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3221, '0 25 22 24 24 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3222, '0 25 22 24 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3223, '0 25 22 24 2 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3224, '0 25 22 24 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3225, '0 25 22 24 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3226, '0 25 22 24 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3227, '0 25 22 22 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3228, '0 25 22 22 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3229, '0 25 22 22 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3230, '0 25 22 22 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3231, '0 25 22 25 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3232, '0 25 22 25 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3233, '0 25 22 0 25 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3234, '0 25 22 0 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3235, '0 25 22 15 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3236, '0 25 22 15 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3237, '0 25 22 18 18 18 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3238, '0 25 22 18 18 18 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3239, '0 25 22 18 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3240, '0 25 22 18 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3241, '0 25 22 18 2 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3242, '0 25 22 18 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3243, '0 25 22 18 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3244, '0 25 22 18 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3245, '0 25 22 2 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3246, '0 25 22 2 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3247, '0 25 22 2 0 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3248, '0 25 22 2 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3249, '0 25 22 2 1 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3250, '0 25 22 2 1 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3251, '0 25 22 16 0 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3252, '0 25 22 16 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3253, '0 25 22 1 13 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3254, '0 25 22 1 13 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3255, '0 25 22 1 15 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3256, '0 25 22 1 15 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3257, '0 25 22 1 24 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3258, '0 25 22 1 24 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3259, '0 25 22 1 24 24 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3260, '0 25 22 1 24 24 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3261, '0 25 22 1 24 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3262, '0 25 22 1 24 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3263, '0 25 22 1 22 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3264, '0 25 22 1 22 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3265, '0 25 22 1 22 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3266, '0 25 22 1 22 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3267, '0 25 22 1 25 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3268, '0 25 22 1 25 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3269, '0 25 22 1 0 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3270, '0 25 22 1 0 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3271, '0 25 22 1 18 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3272, '0 25 22 1 18 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3273, '0 25 22 1 18 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3274, '0 25 22 1 18 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3275, '0 25 22 1 18 1 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3276, '0 25 22 1 18 1 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3277, '0 25 22 1 2 2 -1 1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3278, '0 25 22 1 2 2 22 -1 1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3279, '0 25 22 1 2 2 2 -1 1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3280, '0 25 22 1 2 2 2 22 -1 1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3281, '0 25 22 21 2 -1 1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3282, '0 25 22 21 2 22 -1 1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3283, '25 14 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3284, '25 14 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3285, '25 15 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3286, '25 15 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3287, '25 24 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3288, '25 24 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3289, '25 24 24 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3290, '25 24 24 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3291, '25 24 2 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3292, '25 24 2 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3293, '25 24 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3294, '25 24 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3295, '25 22 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3296, '25 22 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3297, '25 22 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3298, '25 22 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3299, '25 25 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3300, '25 25 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3301, '25 0 25 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3302, '25 0 25 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3303, '25 15 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3304, '25 15 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3305, '25 18 18 18 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3306, '25 18 18 18 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3307, '25 18 18 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3308, '25 18 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3309, '25 18 2 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3310, '25 18 2 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3311, '25 18 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3312, '25 18 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3313, '25 2 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3314, '25 2 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3315, '25 2 0 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3316, '25 2 0 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3317, '25 2 1 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3318, '25 2 1 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3319, '25 16 0 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3320, '25 16 0 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3321, '25 1 13 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3322, '25 1 13 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3323, '25 1 15 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3324, '25 1 15 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3325, '25 1 24 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3326, '25 1 24 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3327, '25 1 24 24 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3328, '25 1 24 24 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3329, '25 1 24 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3330, '25 1 24 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3331, '25 1 22 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3332, '25 1 22 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3333, '25 1 22 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3334, '25 1 22 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3335, '25 1 25 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3336, '25 1 25 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3337, '25 1 0 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3338, '25 1 0 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3339, '25 1 18 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3340, '25 1 18 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3341, '25 1 18 2 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3342, '25 1 18 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3343, '25 1 18 1 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3344, '25 1 18 1 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3345, '25 1 2 2 -1 1 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3346, '25 1 2 2 22 -1 1 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3347, '25 1 2 2 2 -1 1 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3348, '25 1 2 2 2 22 -1 1 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3349, '25 21 2 -1 1 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3350, '25 21 2 22 -1 1 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3351, '25 22 14 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3352, '25 22 14 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3353, '25 22 15 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3354, '25 22 15 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3355, '25 22 24 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3356, '25 22 24 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3357, '25 22 24 24 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3358, '25 22 24 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3359, '25 22 24 2 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3360, '25 22 24 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3361, '25 22 24 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3362, '25 22 24 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3363, '25 22 22 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3364, '25 22 22 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3365, '25 22 22 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3366, '25 22 22 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3367, '25 22 25 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3368, '25 22 25 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3369, '25 22 0 25 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3370, '25 22 0 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3371, '25 22 15 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3372, '25 22 15 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3373, '25 22 18 18 18 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3374, '25 22 18 18 18 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3375, '25 22 18 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3376, '25 22 18 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3377, '25 22 18 2 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3378, '25 22 18 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3379, '25 22 18 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3380, '25 22 18 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3381, '25 22 2 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3382, '25 22 2 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3383, '25 22 2 0 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3384, '25 22 2 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3385, '25 22 2 1 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3386, '25 22 2 1 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3387, '25 22 16 0 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3388, '25 22 16 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3389, '25 22 1 13 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3390, '25 22 1 13 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3391, '25 22 1 15 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3392, '25 22 1 15 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3393, '25 22 1 24 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3394, '25 22 1 24 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3395, '25 22 1 24 24 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3396, '25 22 1 24 24 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3397, '25 22 1 24 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3398, '25 22 1 24 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3399, '25 22 1 22 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3400, '25 22 1 22 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3401, '25 22 1 22 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3402, '25 22 1 22 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3403, '25 22 1 25 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3404, '25 22 1 25 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3405, '25 22 1 0 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3406, '25 22 1 0 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3407, '25 22 1 18 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3408, '25 22 1 18 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3409, '25 22 1 18 2 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3410, '25 22 1 18 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3411, '25 22 1 18 1 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3412, '25 22 1 18 1 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3413, '25 22 1 2 2 -1 1 2 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3414, '25 22 1 2 2 22 -1 1 2 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3415, '25 22 1 2 2 2 -1 1 2 5 5 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3416, '25 22 1 2 2 2 22 -1 1 2 5 5 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3417, '25 22 21 2 -1 1 2 5 6 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3418, '25 22 21 2 22 -1 1 2 5 6 7 -1 1 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3419, '0 -1 1 -1 3 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3420, '0 18 -1 1 1 -1 3 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3421, '0 25 -1 1 1 -1 3 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3422, '0 22 -1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3423, '22 0 -1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3424, '1 0 -1 1 1 -1 3 6');
-INSERT INTO pagc_rules (id, rule) VALUES (3425, '18 0 -1 1 1 -1 3 12');
-INSERT INTO pagc_rules (id, rule) VALUES (3426, '25 -1 1 -1 3 12');
-INSERT INTO pagc_rules (id, rule) VALUES (3427, '21 0 -1 1 1 -1 3 12');
-INSERT INTO pagc_rules (id, rule) VALUES (3428, '0 21 -1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3429, '0 0 -1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3430, '21 0 0 -1 1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3431, '0 0 21 -1 1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3432, '0 0 18 -1 1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3433, '18 0 -1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3434, '18 0 0 -1 1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3435, '0 0 18 -1 1 1 1 -1 3 9');
-INSERT INTO pagc_rules (id, rule) VALUES (3436, '8 -1 8 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3437, '8 23 -1 8 8 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3438, '8 0 -1 8 8 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3439, '8 0 18 -1 8 8 8 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3440, '8 18 -1 8 8 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3441, '8 18 0 -1 8 8 8 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3442, '8 1 -1 8 8 -1 4 2');
-INSERT INTO pagc_rules (id, rule) VALUES (3443, '14 -1 14 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3444, '14 21 -1 14 15 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3445, '14 23 -1 14 15 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3446, '14 0 -1 14 15 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3447, '14 0 18 -1 14 15 15 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3448, '14 0 18 0 -1 14 15 15 15 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3449, '14 18 -1 14 15 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3450, '14 18 0 -1 14 15 15 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3451, '14 1 -1 14 15 -1 4 2');
-INSERT INTO pagc_rules (id, rule) VALUES (3452, '1 24 -1 0 0 -1 4 15');
-INSERT INTO pagc_rules (id, rule) VALUES (3453, '14 24 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3454, '24 24 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3455, '24 24 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3456, '24 22 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3457, '24 18 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3458, '24 2 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3459, '24 1 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3460, '22 24 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3461, '22 24 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3462, '22 24 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3463, '22 24 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3464, '22 22 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3465, '22 2 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3466, '22 1 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3467, '18 24 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3468, '18 13 18 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3469, '18 24 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3470, '18 18 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3471, '18 18 18 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3472, '18 18 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3473, '18 18 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3474, '18 2 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3475, '18 1 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3476, '18 1 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3477, '2 24 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3478, '2 22 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3479, '2 0 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3480, '2 18 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3481, '2 2 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3482, '2 1 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3483, '1 13 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3484, '1 24 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3485, '1 24 22 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3486, '1 24 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3487, '1 24 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3488, '1 22 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3489, '1 22 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3490, '1 0 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3491, '1 0 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3492, '1 0 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3493, '1 18 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3494, '1 18 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3495, '1 2 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3496, '1 2 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3497, '0 1 24 -1 0 0 0 -1 4 15');
-INSERT INTO pagc_rules (id, rule) VALUES (3498, '0 14 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3499, '0 24 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3500, '0 24 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3501, '0 24 22 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3502, '0 24 18 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3503, '0 24 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3504, '0 24 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3505, '0 22 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3506, '0 22 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3507, '0 22 24 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3508, '0 22 24 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3509, '0 22 22 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3510, '0 22 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3511, '0 22 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3512, '0 18 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3513, '0 18 13 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3514, '0 18 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3515, '0 18 18 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3516, '0 18 18 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3517, '0 18 18 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3518, '0 18 18 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3519, '0 18 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3520, '0 18 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3521, '0 18 1 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3522, '0 2 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3523, '0 2 22 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3524, '0 2 0 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3525, '0 2 18 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3526, '0 2 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3527, '0 2 1 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3528, '0 1 13 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3529, '0 1 24 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3530, '0 1 24 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3531, '0 1 24 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3532, '0 1 24 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3533, '0 1 22 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3534, '0 1 22 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3535, '0 1 0 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3536, '0 1 0 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3537, '0 1 0 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3538, '0 1 18 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3539, '0 1 18 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3540, '0 1 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3541, '0 1 2 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3542, '0 18 1 24 -1 0 0 0 0 -1 4 15');
-INSERT INTO pagc_rules (id, rule) VALUES (3543, '0 18 14 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3544, '0 18 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3545, '0 18 24 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3546, '0 18 24 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3547, '0 18 24 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3548, '0 18 24 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3549, '0 18 24 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3550, '0 18 22 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3551, '0 18 22 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3552, '0 18 22 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3553, '0 18 22 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3554, '0 18 22 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3555, '0 18 22 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3556, '0 18 22 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3557, '0 18 18 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3558, '0 18 18 13 18 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3559, '0 18 18 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3560, '0 18 18 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3561, '0 18 18 18 18 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3562, '0 18 18 18 2 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3563, '0 18 18 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3564, '0 18 18 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3565, '0 18 18 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3566, '0 18 18 1 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3567, '0 18 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3568, '0 18 2 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3569, '0 18 2 0 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3570, '0 18 2 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3571, '0 18 2 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3572, '0 18 2 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3573, '0 18 1 13 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3574, '0 18 1 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3575, '0 18 1 24 22 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3576, '0 18 1 24 2 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3577, '0 18 1 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3578, '0 18 1 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3579, '0 18 1 22 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3580, '0 18 1 0 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3581, '0 18 1 0 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3582, '0 18 1 0 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3583, '0 18 1 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3584, '0 18 1 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3585, '0 18 1 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3586, '0 18 1 2 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3587, '0 25 1 24 -1 0 0 0 0 -1 4 15');
-INSERT INTO pagc_rules (id, rule) VALUES (3588, '0 25 14 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3589, '0 25 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3590, '0 25 24 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3591, '0 25 24 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3592, '0 25 24 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3593, '0 25 24 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3594, '0 25 24 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3595, '0 25 22 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3596, '0 25 22 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3597, '0 25 22 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3598, '0 25 22 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3599, '0 25 22 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3600, '0 25 22 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3601, '0 25 22 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3602, '0 25 18 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3603, '0 25 18 13 18 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3604, '0 25 18 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3605, '0 25 18 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3606, '0 25 18 18 18 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3607, '0 25 18 18 2 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3608, '0 25 18 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3609, '0 25 18 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3610, '0 25 18 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3611, '0 25 18 1 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3612, '0 25 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3613, '0 25 2 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3614, '0 25 2 0 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3615, '0 25 2 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3616, '0 25 2 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3617, '0 25 2 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3618, '0 25 1 13 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3619, '0 25 1 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3620, '0 25 1 24 22 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3621, '0 25 1 24 2 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3622, '0 25 1 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3623, '0 25 1 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3624, '0 25 1 22 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3625, '0 25 1 0 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3626, '0 25 1 0 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3627, '0 25 1 0 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3628, '0 25 1 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3629, '0 25 1 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3630, '0 25 1 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3631, '0 25 1 2 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3632, '18 0 1 24 -1 0 0 0 0 -1 4 15');
-INSERT INTO pagc_rules (id, rule) VALUES (3633, '18 0 14 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3634, '18 0 24 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3635, '18 0 24 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3636, '18 0 24 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3637, '18 0 24 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3638, '18 0 24 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3639, '18 0 24 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3640, '18 0 22 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3641, '18 0 22 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3642, '18 0 22 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3643, '18 0 22 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3644, '18 0 22 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3645, '18 0 22 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3646, '18 0 22 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3647, '18 0 18 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3648, '18 0 18 13 18 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3649, '18 0 18 24 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3650, '18 0 18 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3651, '18 0 18 18 18 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3652, '18 0 18 18 2 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3653, '18 0 18 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3654, '18 0 18 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3655, '18 0 18 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3656, '18 0 18 1 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3657, '18 0 2 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3658, '18 0 2 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3659, '18 0 2 0 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3660, '18 0 2 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3661, '18 0 2 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3662, '18 0 2 1 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3663, '18 0 1 13 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3664, '18 0 1 24 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3665, '18 0 1 24 22 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3666, '18 0 1 24 2 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3667, '18 0 1 24 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3668, '18 0 1 22 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3669, '18 0 1 22 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3670, '18 0 1 0 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3671, '18 0 1 0 24 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3672, '18 0 1 0 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3673, '18 0 1 18 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3674, '18 0 1 18 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3675, '18 0 1 2 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3676, '18 0 1 2 1 24 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3677, '19 -1 0 -1 4 2');
-INSERT INTO pagc_rules (id, rule) VALUES (3678, '19 1 -1 0 0 -1 4 6');
-INSERT INTO pagc_rules (id, rule) VALUES (3679, '19 24 1 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3680, '19 24 1 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3681, '19 23 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3682, '19 0 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3683, '19 0 24 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3684, '19 0 1 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3685, '19 18 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3686, '19 2 0 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3687, '19 1 0 -1 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3688, '0 19 -1 0 0 -1 4 2');
-INSERT INTO pagc_rules (id, rule) VALUES (3689, '0 19 1 -1 0 0 0 -1 4 6');
-INSERT INTO pagc_rules (id, rule) VALUES (3690, '0 19 24 1 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3691, '0 19 24 1 0 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3692, '0 19 23 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3693, '0 19 0 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3694, '0 19 0 24 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3695, '0 19 0 1 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3696, '0 19 18 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3697, '0 19 2 0 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3698, '0 19 1 0 -1 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3699, '0 18 19 -1 0 0 0 -1 4 2');
-INSERT INTO pagc_rules (id, rule) VALUES (3700, '0 18 19 1 -1 0 0 0 0 -1 4 6');
-INSERT INTO pagc_rules (id, rule) VALUES (3701, '0 18 19 24 1 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3702, '0 18 19 24 1 0 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3703, '0 18 19 23 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3704, '0 18 19 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3705, '0 18 19 0 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3706, '0 18 19 0 1 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3707, '0 18 19 18 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3708, '0 18 19 2 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3709, '0 18 19 1 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3710, '0 25 19 -1 0 0 0 -1 4 2');
-INSERT INTO pagc_rules (id, rule) VALUES (3711, '0 25 19 1 -1 0 0 0 0 -1 4 6');
-INSERT INTO pagc_rules (id, rule) VALUES (3712, '0 25 19 24 1 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3713, '0 25 19 24 1 0 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3714, '0 25 19 23 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3715, '0 25 19 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3716, '0 25 19 0 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3717, '0 25 19 0 1 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3718, '0 25 19 18 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3719, '0 25 19 2 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3720, '0 25 19 1 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3721, '18 0 19 -1 0 0 0 -1 4 2');
-INSERT INTO pagc_rules (id, rule) VALUES (3722, '18 0 19 1 -1 0 0 0 0 -1 4 6');
-INSERT INTO pagc_rules (id, rule) VALUES (3723, '18 0 19 24 1 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3724, '18 0 19 24 1 0 -1 0 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3725, '18 0 19 23 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3726, '18 0 19 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3727, '18 0 19 0 24 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3728, '18 0 19 0 1 -1 0 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3729, '18 0 19 18 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3730, '18 0 19 2 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3731, '18 0 19 1 0 -1 0 0 0 0 -1 4 10');
-INSERT INTO pagc_rules (id, rule) VALUES (3732, '23 -1 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3733, '0 -1 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3734, '18 -1 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3735, '18 0 -1 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3736, '18 18 -1 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3737, '18 0 18 -1 17 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3738, '21 -1 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3739, '21 0 -1 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3740, '25 -1 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3741, '0 21 -1 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3742, '0 0 -1 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3743, '0 18 -1 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3744, '0 1 -1 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3745, '1 -1 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3746, '16 -1 16 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3747, '16 23 -1 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3748, '16 0 -1 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3749, '16 18 -1 16 17 -1 4 11');
-INSERT INTO pagc_rules (id, rule) VALUES (3750, '16 18 0 -1 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3751, '16 18 18 -1 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3752, '16 18 0 18 -1 16 17 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3753, '16 21 -1 16 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3754, '16 21 0 -1 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3755, '16 25 -1 16 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3756, '16 0 21 -1 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3757, '16 0 0 -1 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3758, '16 0 18 -1 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3759, '16 0 1 -1 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3760, '16 1 -1 16 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3761, '16 16 -1 16 16 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3762, '16 16 23 -1 16 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3763, '16 16 0 -1 16 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3764, '16 16 18 -1 16 16 17 -1 4 11');
-INSERT INTO pagc_rules (id, rule) VALUES (3765, '16 16 18 0 -1 16 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3766, '16 16 18 18 -1 16 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3767, '16 16 18 0 18 -1 16 16 17 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3768, '16 16 21 -1 16 16 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3769, '16 16 21 0 -1 16 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3770, '16 16 25 -1 16 16 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3771, '16 16 0 21 -1 16 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3772, '16 16 0 0 -1 16 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3773, '16 16 0 18 -1 16 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3774, '16 16 0 1 -1 16 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3775, '16 16 1 -1 16 16 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (3776, '17 -1 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3777, '17 23 -1 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3778, '17 0 -1 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3779, '17 18 -1 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3780, '17 18 0 -1 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3781, '17 18 18 -1 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3782, '17 18 0 18 -1 17 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3783, '17 21 -1 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3784, '17 21 0 -1 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3785, '17 25 -1 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3786, '17 0 21 -1 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3787, '17 0 0 -1 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3788, '17 0 18 -1 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3789, '17 0 1 -1 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3790, '17 1 -1 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3791, '17 16 -1 17 16 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3792, '17 16 23 -1 17 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3793, '17 16 0 -1 17 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3794, '17 16 18 -1 17 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3795, '17 16 18 0 -1 17 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3796, '17 16 18 18 -1 17 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3797, '17 16 18 0 18 -1 17 16 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3798, '17 16 21 -1 17 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3799, '17 16 21 0 -1 17 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3800, '17 16 25 -1 17 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3801, '17 16 0 21 -1 17 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3802, '17 16 0 0 -1 17 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3803, '17 16 0 18 -1 17 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3804, '17 16 0 1 -1 17 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3805, '17 16 1 -1 17 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3806, '17 16 16 -1 17 16 16 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3807, '17 16 16 23 -1 17 16 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3808, '17 16 16 0 -1 17 16 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3809, '17 16 16 18 -1 17 16 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3810, '17 16 16 18 0 -1 17 16 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3811, '17 16 16 18 18 -1 17 16 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3812, '17 16 16 18 0 18 -1 17 16 16 17 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3813, '17 16 16 21 -1 17 16 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3814, '17 16 16 21 0 -1 17 16 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3815, '17 16 16 25 -1 17 16 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3816, '17 16 16 0 21 -1 17 16 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3817, '17 16 16 0 0 -1 17 16 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3818, '17 16 16 0 18 -1 17 16 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3819, '17 16 16 0 1 -1 17 16 16 17 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3820, '17 16 16 1 -1 17 16 16 17 -1 4 17');
-INSERT INTO pagc_rules (id, rule) VALUES (3821, '15 17 -1 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3822, '15 17 23 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3823, '15 17 0 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3824, '15 17 18 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3825, '15 17 18 0 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3826, '15 17 18 18 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3827, '15 17 18 0 18 -1 17 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3828, '15 17 21 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3829, '15 17 21 0 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3830, '15 17 25 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3831, '15 17 0 21 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3832, '15 17 0 0 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3833, '15 17 0 18 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3834, '15 17 0 1 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3835, '15 17 1 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3836, '15 17 16 -1 17 17 16 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3837, '15 17 16 23 -1 17 17 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3838, '15 17 16 0 -1 17 17 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3839, '15 17 16 18 -1 17 17 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3840, '15 17 16 18 0 -1 17 17 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3841, '15 17 16 18 18 -1 17 17 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3842, '15 17 16 18 0 18 -1 17 17 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3843, '15 17 16 21 -1 17 17 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3844, '15 17 16 21 0 -1 17 17 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3845, '15 17 16 25 -1 17 17 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3846, '15 17 16 0 21 -1 17 17 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3847, '15 17 16 0 0 -1 17 17 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3848, '15 17 16 0 18 -1 17 17 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3849, '15 17 16 0 1 -1 17 17 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3850, '15 17 16 1 -1 17 17 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3851, '15 17 16 16 -1 17 17 16 16 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3852, '15 17 16 16 23 -1 17 17 16 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3853, '15 17 16 16 0 -1 17 17 16 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3854, '15 17 16 16 18 -1 17 17 16 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3855, '15 17 16 16 18 0 -1 17 17 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3856, '15 17 16 16 18 18 -1 17 17 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3857, '15 17 16 16 18 0 18 -1 17 17 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3858, '15 17 16 16 21 -1 17 17 16 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3859, '15 17 16 16 21 0 -1 17 17 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3860, '15 17 16 16 25 -1 17 17 16 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3861, '15 17 16 16 0 21 -1 17 17 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3862, '15 17 16 16 0 0 -1 17 17 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3863, '15 17 16 16 0 18 -1 17 17 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3864, '15 17 16 16 0 1 -1 17 17 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3865, '15 17 16 16 1 -1 17 17 16 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3866, '17 17 -1 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3867, '17 17 23 -1 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3868, '17 17 0 -1 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3869, '17 17 18 -1 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3870, '17 17 18 0 -1 17 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3871, '17 17 18 18 -1 17 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3872, '17 17 18 0 18 -1 17 17 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3873, '17 17 21 -1 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3874, '17 17 21 0 -1 17 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3875, '17 17 25 -1 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3876, '17 17 0 21 -1 17 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3877, '17 17 0 0 -1 17 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3878, '17 17 0 18 -1 17 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3879, '17 17 0 1 -1 17 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3880, '17 17 1 -1 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3881, '17 17 16 -1 17 17 16 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3882, '17 17 16 23 -1 17 17 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3883, '17 17 16 0 -1 17 17 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3884, '17 17 16 18 -1 17 17 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3885, '17 17 16 18 0 -1 17 17 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3886, '17 17 16 18 18 -1 17 17 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3887, '17 17 16 18 0 18 -1 17 17 16 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3888, '17 17 16 21 -1 17 17 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3889, '17 17 16 21 0 -1 17 17 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3890, '17 17 16 25 -1 17 17 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3891, '17 17 16 0 21 -1 17 17 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3892, '17 17 16 0 0 -1 17 17 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3893, '17 17 16 0 18 -1 17 17 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3894, '17 17 16 0 1 -1 17 17 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3895, '17 17 16 1 -1 17 17 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3896, '17 17 16 16 -1 17 17 16 16 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3897, '17 17 16 16 23 -1 17 17 16 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3898, '17 17 16 16 0 -1 17 17 16 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3899, '17 17 16 16 18 -1 17 17 16 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3900, '17 17 16 16 18 0 -1 17 17 16 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3901, '17 17 16 16 18 18 -1 17 17 16 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3902, '17 17 16 16 18 0 18 -1 17 17 16 16 17 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3903, '17 17 16 16 21 -1 17 17 16 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3904, '17 17 16 16 21 0 -1 17 17 16 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3905, '17 17 16 16 25 -1 17 17 16 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3906, '17 17 16 16 0 21 -1 17 17 16 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3907, '17 17 16 16 0 0 -1 17 17 16 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3908, '17 17 16 16 0 18 -1 17 17 16 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3909, '17 17 16 16 0 1 -1 17 17 16 16 17 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3910, '17 17 16 16 1 -1 17 17 16 16 17 -1 4 16');
-INSERT INTO pagc_rules (id, rule) VALUES (3911, '17 -1 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3912, '15 17 -1 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3913, '17 17 -1 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3914, '23 17 -1 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3915, '23 15 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3916, '23 17 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3917, '0 17 -1 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3918, '0 15 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3919, '0 17 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3920, '18 17 -1 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3921, '18 15 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3922, '18 17 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3923, '18 0 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3924, '18 0 15 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3925, '18 0 17 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3926, '18 18 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3927, '18 18 15 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3928, '18 18 17 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3929, '18 0 18 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3930, '18 0 18 15 17 -1 17 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3931, '18 0 18 17 17 -1 17 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3932, '21 17 -1 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3933, '21 15 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3934, '21 17 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3935, '21 0 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3936, '21 0 15 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3937, '21 0 17 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3938, '25 17 -1 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3939, '25 15 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3940, '25 17 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3941, '0 21 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3942, '0 21 15 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3943, '0 21 17 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3944, '0 0 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3945, '0 0 15 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3946, '0 0 17 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3947, '0 18 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3948, '0 18 15 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3949, '0 18 17 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3950, '0 1 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3951, '0 1 15 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3952, '0 1 17 17 -1 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3953, '1 17 -1 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3954, '1 15 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3955, '1 17 17 -1 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3956, '16 17 -1 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3957, '16 15 17 -1 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3958, '16 17 17 -1 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3959, '16 23 17 -1 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3960, '16 23 15 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3961, '16 23 17 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3962, '16 0 17 -1 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3963, '16 0 15 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3964, '16 0 17 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3965, '16 18 17 -1 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3966, '16 18 15 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3967, '16 18 17 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3968, '16 18 0 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3969, '16 18 0 15 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3970, '16 18 0 17 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3971, '16 18 18 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3972, '16 18 18 15 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3973, '16 18 18 17 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3974, '16 18 0 18 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3975, '16 18 0 18 15 17 -1 16 17 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3976, '16 18 0 18 17 17 -1 16 17 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3977, '16 21 17 -1 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3978, '16 21 15 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3979, '16 21 17 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3980, '16 21 0 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3981, '16 21 0 15 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3982, '16 21 0 17 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3983, '16 25 17 -1 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3984, '16 25 15 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3985, '16 25 17 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3986, '16 0 21 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3987, '16 0 21 15 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3988, '16 0 21 17 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3989, '16 0 0 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3990, '16 0 0 15 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3991, '16 0 0 17 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3992, '16 0 18 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3993, '16 0 18 15 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3994, '16 0 18 17 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3995, '16 0 1 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3996, '16 0 1 15 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3997, '16 0 1 17 17 -1 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3998, '16 1 17 -1 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (3999, '16 1 15 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4000, '16 1 17 17 -1 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4001, '16 16 17 -1 16 16 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4002, '16 16 15 17 -1 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4003, '16 16 17 17 -1 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4004, '16 16 23 17 -1 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4005, '16 16 23 15 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4006, '16 16 23 17 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4007, '16 16 0 17 -1 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4008, '16 16 0 15 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4009, '16 16 0 17 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4010, '16 16 18 17 -1 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4011, '16 16 18 15 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4012, '16 16 18 17 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4013, '16 16 18 0 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4014, '16 16 18 0 15 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4015, '16 16 18 0 17 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4016, '16 16 18 18 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4017, '16 16 18 18 15 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4018, '16 16 18 18 17 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4019, '16 16 18 0 18 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4020, '16 16 18 0 18 15 17 -1 16 16 17 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4021, '16 16 18 0 18 17 17 -1 16 16 17 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4022, '16 16 21 17 -1 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4023, '16 16 21 15 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4024, '16 16 21 17 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4025, '16 16 21 0 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4026, '16 16 21 0 15 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4027, '16 16 21 0 17 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4028, '16 16 25 17 -1 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4029, '16 16 25 15 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4030, '16 16 25 17 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4031, '16 16 0 21 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4032, '16 16 0 21 15 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4033, '16 16 0 21 17 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4034, '16 16 0 0 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4035, '16 16 0 0 15 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4036, '16 16 0 0 17 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4037, '16 16 0 18 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4038, '16 16 0 18 15 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4039, '16 16 0 18 17 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4040, '16 16 0 1 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4041, '16 16 0 1 15 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4042, '16 16 0 1 17 17 -1 16 16 17 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4043, '16 16 1 17 -1 16 16 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4044, '16 16 1 15 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4045, '16 16 1 17 17 -1 16 16 17 17 17 -1 4 8');
-INSERT INTO pagc_rules (id, rule) VALUES (4046, '12 -1 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4047, '12 23 23 13 13 -1 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4048, '12 0 -1 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4049, '12 0 0 -1 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4050, '12 27 -1 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4051, '12 27 26 -1 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4052, '12 28 -1 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4053, '12 28 29 -1 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4054, '23 23 13 13 -1 -1 0 14');
-INSERT INTO pagc_rules (id, rule) VALUES (4055, '23 23 13 13 12 -1 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4056, '0 -1 13 -1 0 14');
-INSERT INTO pagc_rules (id, rule) VALUES (4057, '0 12 -1 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4058, '0 0 -1 13 13 -1 0 14');
-INSERT INTO pagc_rules (id, rule) VALUES (4059, '0 0 12 -1 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4060, '27 -1 13 -1 0 14');
-INSERT INTO pagc_rules (id, rule) VALUES (4061, '27 12 -1 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4062, '27 26 -1 13 13 -1 0 14');
-INSERT INTO pagc_rules (id, rule) VALUES (4063, '27 26 12 -1 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4064, '28 -1 13 -1 0 14');
-INSERT INTO pagc_rules (id, rule) VALUES (4065, '28 12 -1 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4066, '28 29 -1 13 13 -1 0 14');
-INSERT INTO pagc_rules (id, rule) VALUES (4067, '28 29 12 -1 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4068, '11 -1 11 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4069, '11 23 23 13 13 -1 11 -1 0 7');
-INSERT INTO pagc_rules (id, rule) VALUES (4070, '11 0 -1 11 13 -1 0 7');
-INSERT INTO pagc_rules (id, rule) VALUES (4071, '11 0 0 -1 11 13 13 -1 0 7');
-INSERT INTO pagc_rules (id, rule) VALUES (4072, '11 27 -1 11 13 -1 0 7');
-INSERT INTO pagc_rules (id, rule) VALUES (4073, '11 27 26 -1 11 13 13 -1 0 7');
-INSERT INTO pagc_rules (id, rule) VALUES (4074, '11 28 -1 11 13 -1 0 7');
-INSERT INTO pagc_rules (id, rule) VALUES (4075, '11 28 29 -1 11 13 13 -1 0 7');
-INSERT INTO pagc_rules (id, rule) VALUES (4076, '10 -1 10 -1 0 5');
-INSERT INTO pagc_rules (id, rule) VALUES (4077, '10 12 -1 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4078, '10 12 23 23 13 13 -1 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4079, '10 12 0 -1 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4080, '10 12 0 0 -1 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4081, '10 12 27 -1 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4082, '10 12 27 26 -1 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4083, '10 12 28 -1 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4084, '10 12 28 29 -1 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4085, '10 23 23 13 13 -1 10 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4086, '10 23 23 13 13 12 -1 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4087, '10 0 -1 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4088, '10 0 12 -1 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4089, '10 0 0 -1 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4090, '10 0 0 12 -1 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4091, '10 27 -1 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4092, '10 27 12 -1 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4093, '10 27 26 -1 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4094, '10 27 26 12 -1 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4095, '10 28 -1 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4096, '10 28 12 -1 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4097, '10 28 29 -1 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4098, '10 28 29 12 -1 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4099, '10 11 -1 10 11 -1 0 13');
-INSERT INTO pagc_rules (id, rule) VALUES (4100, '10 11 12 -1 10 11 12 -1 0 15');
-INSERT INTO pagc_rules (id, rule) VALUES (4101, '10 11 12 23 23 13 13 -1 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4102, '10 11 12 0 -1 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4103, '10 11 12 0 0 -1 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4104, '10 11 12 27 -1 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4105, '10 11 12 27 26 -1 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4106, '10 11 12 28 -1 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4107, '10 11 12 28 29 -1 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4108, '10 11 23 23 13 13 -1 10 11 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4109, '10 11 23 23 13 13 12 -1 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4110, '10 11 0 -1 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4111, '10 11 0 12 -1 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4112, '10 11 0 0 -1 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4113, '10 11 0 0 12 -1 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4114, '10 11 27 -1 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4115, '10 11 27 12 -1 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4116, '10 11 27 26 -1 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4117, '10 11 27 26 12 -1 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4118, '10 11 28 -1 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4119, '10 11 28 12 -1 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4120, '10 11 28 29 -1 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4121, '10 11 28 29 12 -1 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4122, '1 -1 10 -1 0 5');
-INSERT INTO pagc_rules (id, rule) VALUES (4123, '1 12 -1 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4124, '1 12 23 23 13 13 -1 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4125, '1 12 0 -1 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4126, '1 12 0 0 -1 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4127, '1 12 27 -1 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4128, '1 12 27 26 -1 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4129, '1 12 28 -1 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4130, '1 12 28 29 -1 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4131, '1 23 23 13 13 -1 10 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4132, '1 23 23 13 13 12 -1 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4133, '1 0 -1 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4134, '1 0 12 -1 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4135, '1 0 0 -1 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4136, '1 0 0 12 -1 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4137, '1 27 -1 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4138, '1 27 12 -1 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4139, '1 27 26 -1 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4140, '1 27 26 12 -1 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4141, '1 28 -1 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4142, '1 28 12 -1 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4143, '1 28 29 -1 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4144, '1 28 29 12 -1 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4145, '1 11 -1 10 11 -1 0 13');
-INSERT INTO pagc_rules (id, rule) VALUES (4146, '1 11 12 -1 10 11 12 -1 0 15');
-INSERT INTO pagc_rules (id, rule) VALUES (4147, '1 11 12 23 23 13 13 -1 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4148, '1 11 12 0 -1 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4149, '1 11 12 0 0 -1 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4150, '1 11 12 27 -1 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4151, '1 11 12 27 26 -1 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4152, '1 11 12 28 -1 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4153, '1 11 12 28 29 -1 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4154, '1 11 23 23 13 13 -1 10 11 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4155, '1 11 23 23 13 13 12 -1 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4156, '1 11 0 -1 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4157, '1 11 0 12 -1 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4158, '1 11 0 0 -1 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4159, '1 11 0 0 12 -1 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4160, '1 11 27 -1 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4161, '1 11 27 12 -1 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4162, '1 11 27 26 -1 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4163, '1 11 27 26 12 -1 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4164, '1 11 28 -1 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4165, '1 11 28 12 -1 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4166, '1 11 28 29 -1 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4167, '1 11 28 29 12 -1 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4168, '22 1 -1 10 10 -1 0 5');
-INSERT INTO pagc_rules (id, rule) VALUES (4169, '22 1 12 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4170, '22 1 12 23 23 13 13 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4171, '22 1 12 0 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4172, '22 1 12 0 0 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4173, '22 1 12 27 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4174, '22 1 12 27 26 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4175, '22 1 12 28 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4176, '22 1 12 28 29 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4177, '22 1 23 23 13 13 -1 10 10 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4178, '22 1 23 23 13 13 12 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4179, '22 1 0 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4180, '22 1 0 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4181, '22 1 0 0 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4182, '22 1 0 0 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4183, '22 1 27 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4184, '22 1 27 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4185, '22 1 27 26 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4186, '22 1 27 26 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4187, '22 1 28 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4188, '22 1 28 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4189, '22 1 28 29 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4190, '22 1 28 29 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4191, '22 1 11 -1 10 10 11 -1 0 13');
-INSERT INTO pagc_rules (id, rule) VALUES (4192, '22 1 11 12 -1 10 10 11 12 -1 0 15');
-INSERT INTO pagc_rules (id, rule) VALUES (4193, '22 1 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4194, '22 1 11 12 0 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4195, '22 1 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4196, '22 1 11 12 27 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4197, '22 1 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4198, '22 1 11 12 28 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4199, '22 1 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4200, '22 1 11 23 23 13 13 -1 10 10 11 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4201, '22 1 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4202, '22 1 11 0 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4203, '22 1 11 0 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4204, '22 1 11 0 0 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4205, '22 1 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4206, '22 1 11 27 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4207, '22 1 11 27 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4208, '22 1 11 27 26 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4209, '22 1 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4210, '22 1 11 28 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4211, '22 1 11 28 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4212, '22 1 11 28 29 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4213, '22 1 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4214, '1 22 -1 10 10 -1 0 5');
-INSERT INTO pagc_rules (id, rule) VALUES (4215, '1 22 12 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4216, '1 22 12 23 23 13 13 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4217, '1 22 12 0 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4218, '1 22 12 0 0 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4219, '1 22 12 27 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4220, '1 22 12 27 26 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4221, '1 22 12 28 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4222, '1 22 12 28 29 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4223, '1 22 23 23 13 13 -1 10 10 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4224, '1 22 23 23 13 13 12 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4225, '1 22 0 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4226, '1 22 0 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4227, '1 22 0 0 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4228, '1 22 0 0 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4229, '1 22 27 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4230, '1 22 27 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4231, '1 22 27 26 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4232, '1 22 27 26 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4233, '1 22 28 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4234, '1 22 28 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4235, '1 22 28 29 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4236, '1 22 28 29 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4237, '1 22 11 -1 10 10 11 -1 0 13');
-INSERT INTO pagc_rules (id, rule) VALUES (4238, '1 22 11 12 -1 10 10 11 12 -1 0 15');
-INSERT INTO pagc_rules (id, rule) VALUES (4239, '1 22 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4240, '1 22 11 12 0 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4241, '1 22 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4242, '1 22 11 12 27 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4243, '1 22 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4244, '1 22 11 12 28 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4245, '1 22 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4246, '1 22 11 23 23 13 13 -1 10 10 11 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4247, '1 22 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4248, '1 22 11 0 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4249, '1 22 11 0 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4250, '1 22 11 0 0 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4251, '1 22 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4252, '1 22 11 27 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4253, '1 22 11 27 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4254, '1 22 11 27 26 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4255, '1 22 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4256, '1 22 11 28 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4257, '1 22 11 28 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4258, '1 22 11 28 29 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4259, '1 22 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4260, '2 1 -1 10 10 -1 0 5');
-INSERT INTO pagc_rules (id, rule) VALUES (4261, '2 1 12 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4262, '2 1 12 23 23 13 13 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4263, '2 1 12 0 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4264, '2 1 12 0 0 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4265, '2 1 12 27 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4266, '2 1 12 27 26 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4267, '2 1 12 28 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4268, '2 1 12 28 29 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4269, '2 1 23 23 13 13 -1 10 10 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4270, '2 1 23 23 13 13 12 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4271, '2 1 0 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4272, '2 1 0 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4273, '2 1 0 0 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4274, '2 1 0 0 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4275, '2 1 27 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4276, '2 1 27 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4277, '2 1 27 26 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4278, '2 1 27 26 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4279, '2 1 28 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4280, '2 1 28 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4281, '2 1 28 29 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4282, '2 1 28 29 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4283, '2 1 11 -1 10 10 11 -1 0 13');
-INSERT INTO pagc_rules (id, rule) VALUES (4284, '2 1 11 12 -1 10 10 11 12 -1 0 15');
-INSERT INTO pagc_rules (id, rule) VALUES (4285, '2 1 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4286, '2 1 11 12 0 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4287, '2 1 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4288, '2 1 11 12 27 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4289, '2 1 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4290, '2 1 11 12 28 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4291, '2 1 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4292, '2 1 11 23 23 13 13 -1 10 10 11 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4293, '2 1 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4294, '2 1 11 0 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4295, '2 1 11 0 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4296, '2 1 11 0 0 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4297, '2 1 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4298, '2 1 11 27 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4299, '2 1 11 27 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4300, '2 1 11 27 26 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4301, '2 1 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4302, '2 1 11 28 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4303, '2 1 11 28 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4304, '2 1 11 28 29 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4305, '2 1 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4306, '1 2 -1 10 10 -1 0 5');
-INSERT INTO pagc_rules (id, rule) VALUES (4307, '1 2 12 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4308, '1 2 12 23 23 13 13 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4309, '1 2 12 0 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4310, '1 2 12 0 0 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4311, '1 2 12 27 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4312, '1 2 12 27 26 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4313, '1 2 12 28 -1 10 10 12 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4314, '1 2 12 28 29 -1 10 10 12 13 13 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4315, '1 2 23 23 13 13 -1 10 10 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4316, '1 2 23 23 13 13 12 -1 10 10 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4317, '1 2 0 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4318, '1 2 0 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4319, '1 2 0 0 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4320, '1 2 0 0 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4321, '1 2 27 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4322, '1 2 27 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4323, '1 2 27 26 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4324, '1 2 27 26 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4325, '1 2 28 -1 10 10 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4326, '1 2 28 12 -1 10 10 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4327, '1 2 28 29 -1 10 10 13 13 -1 0 9');
-INSERT INTO pagc_rules (id, rule) VALUES (4328, '1 2 28 29 12 -1 10 10 13 13 12 -1 0 3');
-INSERT INTO pagc_rules (id, rule) VALUES (4329, '1 2 11 -1 10 10 11 -1 0 13');
-INSERT INTO pagc_rules (id, rule) VALUES (4330, '1 2 11 12 -1 10 10 11 12 -1 0 15');
-INSERT INTO pagc_rules (id, rule) VALUES (4331, '1 2 11 12 23 23 13 13 -1 10 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4332, '1 2 11 12 0 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4333, '1 2 11 12 0 0 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4334, '1 2 11 12 27 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4335, '1 2 11 12 27 26 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4336, '1 2 11 12 28 -1 10 10 11 12 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4337, '1 2 11 12 28 29 -1 10 10 11 12 13 13 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4338, '1 2 11 23 23 13 13 -1 10 10 11 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4339, '1 2 11 23 23 13 13 12 -1 10 10 11 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4340, '1 2 11 0 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4341, '1 2 11 0 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4342, '1 2 11 0 0 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4343, '1 2 11 0 0 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4344, '1 2 11 27 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4345, '1 2 11 27 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4346, '1 2 11 27 26 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4347, '1 2 11 27 26 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4348, '1 2 11 28 -1 10 10 11 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4349, '1 2 11 28 12 -1 10 10 11 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) VALUES (4350, '1 2 11 28 29 -1 10 10 11 13 13 -1 0 16');
-INSERT INTO pagc_rules (id, rule) VALUES (4351, '1 2 11 28 29 12 -1 10 10 11 13 13 12 -1 0 17');
-INSERT INTO pagc_rules (id, rule) values (4352, '16 0 22 -1 16 17 17 -1 4 7');
-INSERT INTO pagc_rules (id, rule) VALUES (4355, '-1');
-
--- for some reason all rules are coming in as custom.  just force by id
-UPDATE tiger.pagc_rules SET is_custom = false where id < 10000;
--- after insert we need to set back to true so all 
--- user inputs are treated as custom 
-ALTER TABLE tiger.pagc_rules ALTER COLUMN is_custom SET DEFAULT true;
-SELECT pg_catalog.setval('pagc_rules_id_seq', 10000, true);
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/regress/geocode_regress.sql b/extras/tiger_geocoder/tiger_2011/regress/geocode_regress.sql
deleted file mode 100644
index b72f889..0000000
--- a/extras/tiger_geocoder/tiger_2011/regress/geocode_regress.sql
+++ /dev/null
@@ -1,109 +0,0 @@
---$Id: geocode_regress.sql 12912 2014-08-23 05:22:13Z robe $
-\timing
--- Limit 1
-SELECT 'T1', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('529 Main Street, Boston, MA 02129',1);
-SELECT 'T2', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02109',1);
-SELECT 'T3', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, Boston, MA 02109',1);
--- default
-SELECT 'T4', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('529 Main Street, Boston, MA 02129');
-SELECT 'T5', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02109');
-SELECT 'T6', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, Boston,MA 02109');
-
--- 20
-SELECT 'T7', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('529 Main Street, Boston, MA 02129',20);
-SELECT 'T8', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02109',20);
-SELECT 'T9', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, Boston, MA 02109',20);
-
--- Limit 1 - Test caching effects
-SELECT 'T10', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('530 Main Street, Boston MA, 02129',1);
-SELECT 'T11', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('76 State Street, Boston MA, 02109',1);
-SELECT 'T12', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Federal Street, Boston, MA',20);
-
--- Test batch geocoding along a street
-SELECT '#TB1' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target::text,1) As g, target FROM (VALUES ('24 School Street, Boston, MA 02108'), ('20 School Street, Boston, MA 02109')) As f(target) ) As foo;
-
--- Partial address
-SELECT 'T13', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Federal Street, Boston MA',20);
-SELECT 'T14', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Federal Street, Boston MA',1);
-
---Test misspellings and missing zip --
-SELECT 'T15', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Fedaral Street, Boston, MA',1);
-SELECT 'T16', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('101 Fedaral Street, Boston, MA',50);
-
--- needs addr these ones have more than 2 sides 
--- my alma mater doesn't geocode right without addr check  --
-SELECT 'T17', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('77 Massachusetts Avenue, Cambridge, MA 02139',1);
-
--- zip provided but no state - should still be fast under 250ms
-SELECT 'T18a', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('26 Court Street, 02109',1);
-SELECT 'T18b', pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('26 Court Street,Boston,02109',1);
-
--- Ratings wrong for missing or wrong local zips
-SELECT '#1087a' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02110',3);
-SELECT '#1087b' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA',3);
---right zip
-SELECT '#1087c' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('75 State Street, Boston, MA 02109',1);
-
---Geocoding mangled zipcodes
-SELECT '#1073a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '212 3rd Ave N, MINNEAPOLIS, MN 553404'::text As target) AS f)  As foo;
-SELECT '#1073b' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('212 3rd Ave N, MINNEAPOLIS, MN 55401-',2);
-
--- country roads and highways with spaces in street type
-SELECT '#1076a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '16725 Co Rd 24, Plymouth, MN 55447'::text As target) As f) As foo;  
-SELECT '#1076b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '16725 County Road 24, Plymouth, MN 55447'::text As target) As f) As foo;
-SELECT '#1076c' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '13800 County Hwy 9, Andover, MN 55304'::text As target) AS f) As foo; 
-SELECT '#1076d' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '13800 9, Andover, MN 55304'::text As target) AS f) As foo; 
-SELECT '#1076e' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,4) As g, target FROM (SELECT '3900 Route 6, Eastham, Massachusetts 02642'::text As target) AS f) As foo; 
-
--- country road that starts with a letter
-SELECT '#1076f' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,3) As g, target FROM (SELECT '1940 County Road C W, Roseville, MN 55113'::text As target) AS f) As foo; 
-
--- ad road that in some sections no street range recorded --
-SELECT '#1076g' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '15709 Rockford Road, Plymouth, MN 55447'::text As target) As f) AS foo;
-
--- testing RT common abbreviation for route, ensure asking for 1 gives most probable  --
-SELECT '#1076h' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,3) As g, target FROM (SELECT '300 Rt 3A, Hingham, MA'::text As target) As f) As foo;
-
--- alternate spellings
-SELECT '#1074a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '8525 COTTAGE WOOD TERR, Blaine, MN 55434'::text As target) As f) AS foo;
-SELECT '#1074b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '8525 COTTAGEWOOD TERR, Blaine, MN 55434'::text As target) As f) AS foo;
-
--- testing region --
-SELECT '#1070a' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, Boston, MA 02109',3, (SELECT ST_Union(the_geom) FROM place WHERE statefp = '25' AND name = 'Lynn')::geometry);
-SELECT '#1070b' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, MA',3, (SELECT ST_Union(the_geom) FROM place WHERE statefp = '25' AND name = 'Lynn')::geometry);
-
-
--- service roads and interstates
-SELECT '#1112a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8401 W 35W Service Dr NE, Blaine, MN 55449'::text As target) As f) As foo; 
-SELECT '#1112b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '8401 35W, Blaine, MN 55449'::text As target) As f) As foo; 
-SELECT '#1112c' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '8401 35W West, Blaine, MN 55449'::text As target) As f) As foo; 
-SELECT '#1112d' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '8401 West 35W, Blaine, MN 55449'::text As target) As f) As foo; 
-SELECT '#1112e' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,1) As g, target FROM (SELECT '8401 W 35W, Blaine, MN 55449'::text As target) As f) As foo; 
-
--- working with prequalabrv such as Old .. something or other
-SELECT '#1113a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8040 OLD CEDAR AVE S, BLOOMINGTON, MN 55425'::text As target) As f) As foo; 
-SELECT '#1113b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8040 CEDAR AVE S, BLOOMINGTON, MN 55425'::text As target) As f) As foo;
-SELECT '#1113c' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '17405 Old Rockford Rd, Plymouth, MN 55446'::text As target) As f) As foo;
-SELECT '#1113d' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '17405 Rockford Rd, Plymouth, MN 55446'::text As target) As f) As foo;
-SELECT '#1113e' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '198 OLD CONSTANCE BLVD, ANDOVER, MN 55304'::text As target) As f) As foo;
-SELECT '#1113f' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '198 CONSTANCE BLVD, ANDOVER, MN 55304'::text As target) As f) As foo;
-
--- #1145 addresses used to be slow to geocode took minutes
-SELECT '#1145a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '4051 27th Ave S Minneapolis MN 55405'::text As target) As f) As foo; 
-SELECT '#1145b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '3625 18th Ave S Minneapolis MN 55406'::text As target) As f) As foo; 
-SELECT '#1145c' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '4057 10th Ave S Minneapolis MN 55406'::text As target) As f) As foo; 
-SELECT '#1145d' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8512 141 St Ct Apple Valley MN 55124'::text As target) As f) As foo; 
-SELECT '#1145e' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target) As g, target FROM (SELECT '103 36th St W Minneapolis MN 55409'::text As target) As f) As foo;
-
--- cross street intersection
-SELECT '#1333a' AS ticket, pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('Weld', 'School', 'MA', 'Boston');
-SELECT '#1333b' AS ticket, pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('Haverford St','Germania St', 'MA', 'Boston', '02130',1);
-
--- crossing highways fails -- zip check
-SELECT '#1392a' AS ticket, pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('State Hwy 121', 'N Denton Tap Rd', 'TX', 'Coppell', '', 2);
-SELECT '#1392b' AS ticket, pprint_addy(addy), st_astext(geomout),rating FROM geocode_intersection('State Hwy 121', 'N Denton Tap Rd', 'TX','', '', 2);
---
-
--- Geocode 1 not returning best answer
-SELECT '#2899' AS ticket, st_astext(ST_SnapToGrid(geomout,0.0001)),rating FROM geocode('22 Minnow Ln, Westbrook, CT 06498',1);
-\timing
diff --git a/extras/tiger_geocoder/tiger_2011/regress/normalize_address_regress b/extras/tiger_geocoder/tiger_2011/regress/normalize_address_regress
deleted file mode 100644
index 5d1791f..0000000
--- a/extras/tiger_geocoder/tiger_2011/regress/normalize_address_regress
+++ /dev/null
@@ -1,44 +0,0 @@
-#887|2450|N|COLORADO|St|||PHILADELPHIA|PA|19132|t
-#1051a|212||3rd|Ave|N|Suite 560|Minneapolis|MN|55401|t
-#1051b|3937||43RD|Ave|S||MINNEAPOLIS|MN|55406|t
-#1051c|212|N|3rd|Ave|||Minneapolis|MN|55401|t
-#1051d|212||3rd|Ave|N||Minneapolis|MN|55401|t
-529||Main|St|||Boston|MA|02129|t
-529||Main|St|||Boston|MA|02129|t
-529||Main|St|||Boston|MA||t
-529||Main|St||Apt 201|Boston|MA|02129|t
-529||Main|St||Apt 201|Boston|MA|02129|t
-529||Main|St||Apt 201|Boston|MA||t
-#1108a|529||Main|St||Suite 201|Boston|MA|02129|t
-#1073a|212||3rd|Ave|N||MINNEAPOLIS|MN|553404|t
-#1073b|212||3rd|Ave|N||MINNEAPOLIS|MN|55401|t
-#1073c|529||Main|St|||Boston|MA|021|t
-#1086a|949|N|3rd|St|||New Hyde Park|NY|11040|t
-#1086b|949|N|3rd|St|||New Hyde Park|NY|11040|t
-#1076a|16725||24|Co Rd|||Plymouth|MN|55447|t
-#1076b|16725||24|Co Rd|||Plymouth|MN|55447|t
-#1076c|13800||9|Co Hwy|||Andover|MN|55304|t
-#1076d|13800||9||||Andover|MN|55304|t
-#1076e|14||Forest|Rd|||Acton|MA||t
-#1076f|1940||C|Co Rd|W||Roseville|MN|55113|t
-#1076g|3900||6|Rte|||Eastham|MA|02642|t
-#1076h|4533||PARK|Ave|S||MINNEAPOLIS|MN|55407|t
-#1076i|4533||33|Co Rd|||MINNEAPOLIS|MN|55407|t
-#1109a|4373||LAKE|Dr|||ROBBINSDALE|MN|55422|t
-#1109b|4373||LAKE|Dr|||ROBBINSDALE|MN|55422|t
-#1074a|3420||RHODE ISLAND|Ave|S||ST. LOUIS PARK|MN|55426|t
-#1074b|26||Court|St|||Boston|MA|02109|t
-#1112a|8401|W|35W|Svc Dr|NE||Blaine|MN|55449|t
-#1112b|8401||35W||||Blaine|MN|55449|t
-#1112c|8401||35W||W||Blaine|MN|55449|t
-#1112d|8401|W|35W||||Blaine|MN|55449|t
-#1112e|8401|W|35W||||Blaine|MN|55449|t
-#1125a|19596 Co Rd 480, COLCORD, OK 74338
-#1125b|4345 Rte 353, SALAMANCA, NY 14779|4345||353|Rte|||SALAMANCA|NY|14779|t
-#1125c|19799 State Rte O, COSBY, MO 64436|19799||O|State Rte|||COSBY|MO|64436|t
-#1125d|I- 90, Boston, MA|||90|I-|||Boston|MA||t
-#1125e|I-90, Boston, MA|||I-90||||Boston|MA||t
-#1125f|I- 90, Boston, MA|||90|I-|||Boston|MA||t
-#1310a|1110 W CAPITOL Ave, WEST SACRAMENTO, CA|1110|W|CAPITOL|Ave|||WEST SACRAMENTO|CA||t
-#1614a|8435 Co Rd 20 SE, ROCHESTER, MN 55904|8435||20|Co Rd|SE||ROCHESTER|MN|55904|t
-#1614b|3208 US Hwy 52, Rochester, MN 55901|3208||52|US Hwy|||Rochester|MN|55901|t
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/regress/normalize_address_regress.sql b/extras/tiger_geocoder/tiger_2011/regress/normalize_address_regress.sql
deleted file mode 100644
index 8c1c968..0000000
--- a/extras/tiger_geocoder/tiger_2011/regress/normalize_address_regress.sql
+++ /dev/null
@@ -1,95 +0,0 @@
---$Id: normalize_address_regress.sql 10309 2012-09-20 11:54:44Z robe $
-\timing
-SELECT '#887' As ticket, * FROM normalize_address('2450 N COLORADO ST, PHILADELPHIA, PA, 19132');
-SELECT '#1051a' As ticket, * FROM normalize_address('212 3rd Ave N Suite 560, Minneapolis, MN 55401');
-SELECT '#1051b' As ticket, * FROM normalize_address('3937 43RD AVE S, MINNEAPOLIS, MN 55406');
-SELECT '#1051c' As ticket, * FROM normalize_address('212 N 3rd Ave, Minneapolis, MN 55401');
--- City missing ,  -- NOTE this one won't normalize right if you don't have MN data loaded
-SELECT '#1051d' As ticket, * FROM normalize_address('212 3rd Ave N Minneapolis, MN 55401'); 
--- comma in wrong spot
-SELECT * FROM normalize_address('529 Main Street, Boston MA, 02129');
--- comma in right spot
-SELECT * FROM normalize_address('529 Main Street, Boston,MA 02129');
--- partial address
-SELECT * FROM normalize_address('529 Main Street, Boston, MA');
--- Full address with suite using ,
-SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA 02129');
--- Full address with apart using space
-SELECT * FROM normalize_address('529 Main Street Apt 201, Boston, MA 02129');
--- Partial address with apartment
-SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA');
-
---This one fails so lead out for now
-SELECT '#1108a' As ticket, * FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129');
-
--- Partial and Mangled zipcodes
-SELECT '#1073a' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 553404');
-SELECT '#1073b' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 55401-');
-SELECT '#1073c' As ticket, * FROM normalize_address('529 Main Street, Boston, MA 021');
-
--- comma in wrong position
-SELECT '#1086a' As ticket, * FROM normalize_address('949 N 3rd St, New Hyde Park, NY, 11040');
-
--- comma in right position --
-SELECT '#1086b' As ticket, * FROM normalize_address('949 N 3rd St, New Hyde Park, NY 11040');
-
--- country roads and highways with spaces in street type
-SELECT '#1076a' As ticket, * FROM normalize_address('16725 Co Rd 24, Plymouth, MN 55447'); 
-SELECT '#1076b' As ticket, * FROM normalize_address('16725 County Road 24, Plymouth, MN 55447'); 
-SELECT '#1076c' As ticket, * FROM normalize_address('13800 County Hwy 9, Andover, MN 55304');
-SELECT '#1076d' As ticket, * FROM normalize_address('13800 9, Andover, MN 55304');
--- this one is a regular street that happens to have a street type as the name
-SELECT '#1076e' As ticket, * FROM normalize_address('14 Forest Road, Acton, MA');
-
--- A country road with a letter name and direction 
--- NOTE this doesn't completely normalize right since the direction W is being cut off --
-SELECT '#1076f' As ticket, * FROM normalize_address('1940 County Road C W, Roseville, MN 55113'); 
-
--- Route with a name that sounds like a direction --
-SELECT '#1076g' As ticket, * FROM normalize_address('3900 Route 6, Eastham, Massachusetts 02642');
-
--- Street that has same name as type  --
-SELECT '#1076h' As ticket, * FROM normalize_address('4533 PARK AVE S, MINNEAPOLIS, MN 55407');
--- same street with alternate county name
-SELECT '#1076i' As ticket, * FROM normalize_address('4533 County Road 33, MINNEAPOLIS, MN 55407'); 
-
--- Same case of street type that has name as a type --
--- this matches -
-SELECT '#1109a' As ticket, * from normalize_address('4373 LAKE DRIVE, ROBBINSDALE, MN 55422');
-
--- this failed --
-SELECT '#1109b' As ticket, * from normalize_address('4373 LAKE DR, ROBBINSDALE, MN 55422');
-
--- another type (Is) that is part of street name but a compound street name
-SELECT '#1074a' As ticket, * FROM normalize_address('3420 RHODE ISLAND AVE S, ST. LOUIS PARK, MN 55426');
-
--- another type that is part of street name --
-SELECT '#1074b' As ticket, * FROM normalize_address('26 Court Street, Boston,MA 02109');
-
--- service roads and interstates
-SELECT '#1112a' As ticket, * FROM normalize_address('8401 W 35W Service Dr NE, Blaine, MN 55449');
-SELECT '#1112b' As ticket, * FROM normalize_address('8401 35W, Blaine, MN 55449');
-SELECT '#1112c' As ticket, * FROM normalize_address('8401 35W West, Blaine, MN 55449');
-SELECT '#1112d' As ticket, * FROM normalize_address('8401 West 35W, Blaine, MN 55449');
-SELECT '#1112e' As ticket, * FROM normalize_address('8401 W 35W, Blaine, MN 55449');
-
--- Testing pretty print of highway addresses
--- These tests excerpted from Brian Hamlin's CASS failures
--- in #1077
-SELECT '#1125a' As ticket, pprint_addy(normalize_address('19596 COUNTY ROAD 480, COLCORD, OK 74338'));
-SELECT '#1125b' As ticket, pprint_addy(addy), addy.* FROM normalize_address('4345 353 Rte, SALAMANCA, NY 14779') AS addy;
-SELECT '#1125c' As ticket, pprint_addy(addy), addy.* FROM normalize_address('19799 STATE ROUTE O, COSBY, MO 64436') AS addy;
-
--- some more to test interstate permutations
-SELECT '#1125d' As ticket, pprint_addy(addy), addy.* FROM normalize_address('Interstate 90,Boston, MA') As addy;
--- this one is wrong (because the lack of space trips it up) but will fix later
-SELECT '#1125e' As ticket, pprint_addy(addy), addy.* FROM normalize_address('I-90,Boston, MA') As addy;
-SELECT '#1125f' As ticket, pprint_addy(addy), addy.* FROM normalize_address('I 90,Boston, MA') As addy;
-
--- location with prefixes getting caught in post prefix
-SELECT '#1310a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('1110 W CAPITOL AVE, WEST SACRAMENTO, CA') As addy;
-
--- #1614 County Rd
-SELECT '#1614a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('8435 COUNTY RD 20 SE, ROCHESTER, MN 55904') As addy;
-SELECT '#1614b' As ticket, pprint_addy(addy), addy.* FROM normalize_address('3208 U.S. 52, Rochester, MN 55901') As addy;
-\timing
diff --git a/extras/tiger_geocoder/tiger_2011/regress/pagc_normalize_address_regress.sql b/extras/tiger_geocoder/tiger_2011/regress/pagc_normalize_address_regress.sql
deleted file mode 100644
index 68a228b..0000000
--- a/extras/tiger_geocoder/tiger_2011/regress/pagc_normalize_address_regress.sql
+++ /dev/null
@@ -1,97 +0,0 @@
---$Id: normalize_address_regress.sql 10309 2012-09-20 11:54:44Z robe $
-SELECT set_geocode_setting('use_pagc_address_parser', 'true');
-\timing
-SELECT '#887' As ticket, * FROM normalize_address('2450 N COLORADO ST, PHILADELPHIA, PA, 19132');
-SELECT '#1051a' As ticket, * FROM normalize_address('212 3rd Ave N Suite 560, Minneapolis, MN 55401');
-SELECT '#1051b' As ticket, * FROM normalize_address('3937 43RD AVE S, MINNEAPOLIS, MN 55406');
-SELECT '#1051c' As ticket, * FROM normalize_address('212 N 3rd Ave, Minneapolis, MN 55401');
--- City missing ,  -- NOTE this one won't normalize right if you don't have MN data loaded
-SELECT '#1051d' As ticket, * FROM normalize_address('212 3rd Ave N Minneapolis, MN 55401'); 
--- comma in wrong spot
-SELECT * FROM normalize_address('529 Main Street, Boston MA, 02129');
--- comma in right spot
-SELECT * FROM normalize_address('529 Main Street, Boston,MA 02129');
--- partial address
-SELECT * FROM normalize_address('529 Main Street, Boston, MA');
--- Full address with suite using ,
-SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA 02129');
--- Full address with apart using space
-SELECT * FROM normalize_address('529 Main Street Apt 201, Boston, MA 02129');
--- Partial address with apartment
-SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA');
-
---This one fails so lead out for now
-SELECT '#1108a' As ticket, * FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129');
-
--- Partial and Mangled zipcodes
-SELECT '#1073a' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 553404');
-SELECT '#1073b' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 55401-');
-SELECT '#1073c' As ticket, * FROM normalize_address('529 Main Street, Boston, MA 021');
-
--- comma in wrong position
-SELECT '#1086a' As ticket, * FROM normalize_address('949 N 3rd St, New Hyde Park, NY, 11040');
-
--- comma in right position --
-SELECT '#1086b' As ticket, * FROM normalize_address('949 N 3rd St, New Hyde Park, NY 11040');
-
--- country roads and highways with spaces in street type
-SELECT '#1076a' As ticket, * FROM normalize_address('16725 Co Rd 24, Plymouth, MN 55447'); 
-SELECT '#1076b' As ticket, * FROM normalize_address('16725 County Road 24, Plymouth, MN 55447'); 
-SELECT '#1076c' As ticket, * FROM normalize_address('13800 County Hwy 9, Andover, MN 55304');
-SELECT '#1076d' As ticket, * FROM normalize_address('13800 9, Andover, MN 55304');
--- this one is a regular street that happens to have a street type as the name
-SELECT '#1076e' As ticket, * FROM normalize_address('14 Forest Road, Acton, MA');
-
--- A country road with a letter name and direction 
--- NOTE this doesn't completely normalize right since the direction W is being cut off --
-SELECT '#1076f' As ticket, * FROM normalize_address('1940 County Road C W, Roseville, MN 55113'); 
-
--- Route with a name that sounds like a direction --
-SELECT '#1076g' As ticket, * FROM normalize_address('3900 Route 6, Eastham, Massachusetts 02642');
-
--- Street that has same name as type  --
-SELECT '#1076h' As ticket, * FROM normalize_address('4533 PARK AVE S, MINNEAPOLIS, MN 55407');
--- same street with alternate county name
-SELECT '#1076i' As ticket, * FROM normalize_address('4533 County Road 33, MINNEAPOLIS, MN 55407'); 
-
--- Same case of street type that has name as a type --
--- this matches -
-SELECT '#1109a' As ticket, * from normalize_address('4373 LAKE DRIVE, ROBBINSDALE, MN 55422');
-
--- this failed --
-SELECT '#1109b' As ticket, * from normalize_address('4373 LAKE DR, ROBBINSDALE, MN 55422');
-
--- another type (Is) that is part of street name but a compound street name
-SELECT '#1074a' As ticket, * FROM normalize_address('3420 RHODE ISLAND AVE S, ST. LOUIS PARK, MN 55426');
-
--- another type that is part of street name --
-SELECT '#1074b' As ticket, * FROM normalize_address('26 Court Street, Boston,MA 02109');
-
--- service roads and interstates
-SELECT '#1112a' As ticket, * FROM normalize_address('8401 W 35W Service Dr NE, Blaine, MN 55449');
-SELECT '#1112b' As ticket, * FROM normalize_address('8401 35W, Blaine, MN 55449');
-SELECT '#1112c' As ticket, * FROM normalize_address('8401 35W West, Blaine, MN 55449');
-SELECT '#1112d' As ticket, * FROM normalize_address('8401 West 35W, Blaine, MN 55449');
-SELECT '#1112e' As ticket, * FROM normalize_address('8401 W 35W, Blaine, MN 55449');
-
--- Testing pretty print of highway addresses
--- These tests excerpted from Brian Hamlin's CASS failures
--- in #1077
-SELECT '#1125a' As ticket, pprint_addy(normalize_address('19596 COUNTY ROAD 480, COLCORD, OK 74338'));
-SELECT '#1125b' As ticket, pprint_addy(addy), addy.* FROM normalize_address('4345 353 Rte, SALAMANCA, NY 14779') AS addy;
-SELECT '#1125c' As ticket, pprint_addy(addy), addy.* FROM normalize_address('19799 STATE ROUTE O, COSBY, MO 64436') AS addy;
-
--- some more to test interstate permutations
-SELECT '#1125d' As ticket, pprint_addy(addy), addy.* FROM normalize_address('Interstate 90,Boston, MA') As addy;
--- this one is wrong (because the lack of space trips it up) but will fix later
-SELECT '#1125e' As ticket, pprint_addy(addy), addy.* FROM normalize_address('I-90,Boston, MA') As addy;
-SELECT '#1125f' As ticket, pprint_addy(addy), addy.* FROM normalize_address('I 90,Boston, MA') As addy;
-
--- location with prefixes getting caught in post prefix
-SELECT '#1310a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('1110 W CAPITOL AVE, WEST SACRAMENTO, CA') As addy;
-
--- #1614 County Rd
-SELECT '#1614a' As ticket, pprint_addy(addy), addy.* FROM normalize_address('8435 COUNTY RD 20 SE, ROCHESTER, MN 55904') As addy;
-SELECT '#1614b' As ticket, pprint_addy(addy), addy.* FROM normalize_address('3208 U.S. 52, Rochester, MN 55901') As addy;
-\timing
-SELECT set_geocode_setting('use_pagc_address_parser', 'false');
diff --git a/extras/tiger_geocoder/tiger_2011/tables/lookup_tables_2011.sql b/extras/tiger_geocoder/tiger_2011/tables/lookup_tables_2011.sql
deleted file mode 100644
index 87e2952..0000000
--- a/extras/tiger_geocoder/tiger_2011/tables/lookup_tables_2011.sql
+++ /dev/null
@@ -1,1340 +0,0 @@
---$Id: lookup_tables_2011.sql 10394 2012-10-10 22:30:55Z robe $
---SET search_path TO tiger, public;
-SELECT tiger.SetSearchPathForInstall('tiger');
--- Create direction lookup table
-DROP TABLE IF EXISTS tiger.direction_lookup;
-CREATE TABLE direction_lookup (name VARCHAR(20) PRIMARY KEY, abbrev VARCHAR(3));
-INSERT INTO direction_lookup (name, abbrev) VALUES('WEST', 'W');
-INSERT INTO direction_lookup (name, abbrev) VALUES('W', 'W');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SW', 'SW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH-WEST', 'SW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTHWEST', 'SW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH-EAST', 'SE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTHEAST', 'SE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH_WEST', 'SW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH_EAST', 'SE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH', 'S');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH WEST', 'SW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SOUTH EAST', 'SE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('SE', 'SE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('S', 'S');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NW', 'NW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH-WEST', 'NW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NORTHWEST', 'NW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH-EAST', 'NE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NORTHEAST', 'NE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH_WEST', 'NW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH_EAST', 'NE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH', 'N');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH WEST', 'NW');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NORTH EAST', 'NE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('NE', 'NE');
-INSERT INTO direction_lookup (name, abbrev) VALUES('N', 'N');
-INSERT INTO direction_lookup (name, abbrev) VALUES('EAST', 'E');
-INSERT INTO direction_lookup (name, abbrev) VALUES('E', 'E');
-CREATE INDEX direction_lookup_abbrev_idx ON direction_lookup (abbrev);
-
-
-
--- Create secondary unit lookup table
-DROP TABLE IF EXISTS tiger.secondary_unit_lookup;
-CREATE TABLE secondary_unit_lookup (name VARCHAR(20) PRIMARY KEY, abbrev VARCHAR(5));
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('APARTMENT', 'APT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('APT', 'APT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('BASEMENT', 'BSMT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('BSMT', 'BSMT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('BUILDING', 'BLDG');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('BLDG', 'BLDG');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('DEPARTMENT', 'DEPT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('DEPT', 'DEPT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('FLOOR', 'FL');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('FL', 'FL');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('FRONT', 'FRNT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('FRNT', 'FRNT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('HANGAR', 'HNGR');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('HNGR', 'HNGR');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LOBBY', 'LBBY');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LBBY', 'LBBY');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LOT', 'LOT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LOWER', 'LOWR');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('LOWR', 'LOWR');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('OFFICE', 'OFC');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('OFC', 'OFC');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('PENTHOUSE', 'PH');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('PH', 'PH');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('PIER', 'PIER');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('REAR', 'REAR');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('ROOM', 'RM');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('RM', 'RM');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SIDE', 'SIDE');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SLIP', 'SLIP');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SPACE', 'SPC');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SPC', 'SPC');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('STOP', 'STOP');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('SUITE', 'STE');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('STE', 'STE');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('TRAILER', 'TRLR');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('TRLR', 'TRLR');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('UNIT', 'UNIT');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('UPPER', 'UPPR');
-INSERT INTO secondary_unit_lookup (name, abbrev) VALUES ('UPPR', 'UPPR');
-CREATE INDEX secondary_unit_lookup_abbrev_idx ON secondary_unit_lookup (abbrev);
-
-
-
--- Create state lookup table
-DROP TABLE IF EXISTS tiger.state_lookup;
-CREATE TABLE state_lookup (st_code INTEGER PRIMARY KEY, name VARCHAR(40) UNIQUE, abbrev VARCHAR(3) UNIQUE, statefp char(2) UNIQUE);
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Alabama', 'AL', '01');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Alaska', 'AK', '02');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('American Samoa', 'AS', '60');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Arizona', 'AZ', '04');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Arkansas', 'AR', '05');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('California', 'CA', '06');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Colorado', 'CO', '08');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Connecticut', 'CT', '09');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Delaware', 'DE', '10');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('District of Columbia', 'DC', '11');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Federated States of Micronesia', 'FM', '64');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Florida', 'FL', '12');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Georgia', 'GA', '13');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Guam', 'GU', '66');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Hawaii', 'HI', '15');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Idaho', 'ID', '16');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Illinois', 'IL', '17');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Indiana', 'IN', '18');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Iowa', 'IA', '19');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Kansas', 'KS', '20');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Kentucky', 'KY', '21');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Louisiana', 'LA', '22');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Maine', 'ME', '23');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Marshall Islands', 'MH', '68');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Maryland', 'MD', '24');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Massachusetts', 'MA', '25');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Michigan', 'MI', '26');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Minnesota', 'MN', '27');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Mississippi', 'MS', '28');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Missouri', 'MO', '29');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Montana', 'MT', '30');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Nebraska', 'NE', '31');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Nevada', 'NV', '32');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('New Hampshire', 'NH', '33');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('New Jersey', 'NJ', '34');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('New Mexico', 'NM', '35');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('New York', 'NY', '36');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('North Carolina', 'NC', '37');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('North Dakota', 'ND', '38');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Northern Mariana Islands', 'MP', '69');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Ohio', 'OH', '39');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Oklahoma', 'OK', '40');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Oregon', 'OR', '41');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Palau', 'PW', '70');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Pennsylvania', 'PA', '42');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Puerto Rico', 'PR', '72');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Rhode Island', 'RI', '44');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('South Carolina', 'SC', '45');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('South Dakota', 'SD', '46');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Tennessee', 'TN', '47');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Texas', 'TX', '48');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Utah', 'UT', '49');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Vermont', 'VT', '50');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Virgin Islands', 'VI', '78');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Virginia', 'VA', '51');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Washington', 'WA', '53');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('West Virginia', 'WV', '54');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Wisconsin', 'WI', '55');
-INSERT INTO state_lookup (name, abbrev, st_code) VALUES ('Wyoming', 'WY', '56');
--- NOTE: fix later -- this is wrong for those - state code ones
-UPDATE state_lookup SET statefp = lpad(st_code::text,2,'0');
-
-
--- Create street type lookup table
-DROP TABLE IF EXISTS tiger.street_type_lookup;
-CREATE TABLE street_type_lookup (name VARCHAR(50) PRIMARY KEY, abbrev VARCHAR(50), is_hw boolean NOT NULL DEFAULT false);
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ALLEE', 'Aly');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ALLEY', 'Aly');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ALLY', 'Aly');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ALY', 'Aly');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ANEX', 'Anx');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ANNEX', 'Anx');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ANNX', 'Anx');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ANX', 'Anx');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ARC', 'Arc');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ARCADE', 'Arc');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('AV', 'Ave');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVE', 'Ave');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVEN', 'Ave');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVENU', 'Ave');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVENUE', 'Ave');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVN', 'Ave');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('AVNUE', 'Ave');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BAYOO', 'Byu');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BAYOU', 'Byu');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BCH', 'Bch');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BEACH', 'Bch');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BEND', 'Bnd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BND', 'Bnd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLF', 'Blf');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLUF', 'Blf');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLUFF', 'Blf');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLUFFS', 'Blfs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOT', 'Btm');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOTTM', 'Btm');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOTTOM', 'Btm');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BTM', 'Btm');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLVD', 'Blvd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOUL', 'Blvd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOULEVARD', 'Blvd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BOULV', 'Blvd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BR', 'Br');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRANCH', 'Br');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRNCH', 'Br');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRDGE', 'Brg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRG', 'Brg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRIDGE', 'Brg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRK', 'Brk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BROOK', 'Brk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BROOKS', 'Brks');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BURG', 'Bg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BURGS', 'Bgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYP', 'Byp');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYPA', 'Byp');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYPAS', 'Byp');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYPASS', 'ByP');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYPS', 'Byp');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CAMP', 'Cp');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CMP', 'Cp');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CP', 'Cp');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CANYN', 'Cyn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CANYON', 'Cyn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CNYN', 'Cyn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CYN', 'Cyn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CAPE', 'Cpe');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CPE', 'Cpe');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CAUSEWAY', 'Cswy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CAUSWAY', 'Cswy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CSWY', 'Cswy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CEN', 'Ctr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENT', 'Ctr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENTER', 'Ctr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENTR', 'Ctr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENTRE', 'Ctr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CNTER', 'Ctr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CNTR', 'Ctr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CTR', 'Ctr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CENTERS', 'Ctrs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIR', 'Cir');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRC', 'Cir');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRCL', 'Cir');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRCLE', 'Cir');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRCL', 'Cir');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRCLE', 'Cir');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRCLES', 'Cirs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLF', 'Clf');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLIFF', 'Clf');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLFS', 'Clfs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLIFFS', 'Clfs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLB', 'Clb');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CLUB', 'Clb');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('COMMON', 'Cmn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('COR', 'Cor');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CORNER', 'Cor');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CORNERS', 'Cors');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CORS', 'Cors');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('COURSE', 'Crse');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSE', 'Crse');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('COURT', 'Ct');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRT', 'Ct');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CT', 'Ct');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('COURTS', 'Cts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('COVE', 'Cv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CV', 'Cv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('COVES', 'Cvs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CK', 'Crk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CR', 'Crk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CREEK', 'Crk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRK', 'Crk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRECENT', 'Cres');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRES', 'Cres');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRESCENT', 'Cres');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRESENT', 'Cres');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSCNT', 'Cres');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSENT', 'Cres');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSNT', 'Cres');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CREST', 'Crst');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CROSSING', 'Xing');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSSING', 'Xing');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRSSNG', 'Xing');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('XING', 'Xing');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CROSSROAD', 'Xrd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CURVE', 'Curv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DALE', 'Dl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DL', 'Dl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DAM', 'Dm');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DM', 'Dm');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DIV', 'Dv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DIVIDE', 'Dv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DV', 'Dv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DVD', 'Dv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DR', 'Dr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRIV', 'Dr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRIVE', 'Dr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRV', 'Dr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRIVES', 'Drs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('EST', 'Est');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ESTATE', 'Est');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ESTATES', 'Ests');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ESTS', 'Ests');
---INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXP', 'Expy');
---INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPR', 'Expy');
---INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPRESS', 'Expy');
---INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPRESSWAY', 'Expy');
---INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPW', 'Expy');
---INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXPY', 'Expy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXT', 'Ext');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTENSION', 'Ext');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTN', 'Ext');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTNSN', 'Ext');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTENSIONS', 'Exts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('EXTS', 'Exts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FALL', 'Fall');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FALLS', 'Fls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLS', 'Fls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FERRY', 'Fry');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRRY', 'Fry');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRY', 'Fry');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FIELD', 'Fld');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLD', 'Fld');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FIELDS', 'Flds');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLDS', 'Flds');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLAT', 'Flt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLT', 'Flt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLATS', 'Flts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FLTS', 'Flts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORD', 'Frd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRD', 'Frd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORDS', 'Frds');
---INSERT INTO street_type_lookup (name, abbrev) VALUES ('FOREST', 'Frst');
---INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORESTS', 'Frst');
---INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRST', 'Frst');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORG', 'Frg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORGE', 'Frg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRG', 'Frg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORGES', 'Frgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORK', 'Frk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRK', 'Frk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORKS', 'Frks');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRKS', 'Frks');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FORT', 'Ft');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRT', 'Ft');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FT', 'Ft');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GARDEN', 'Gdn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GARDN', 'Gdn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GDN', 'Gdn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRDEN', 'Gdn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRDN', 'Gdn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GARDENS', 'Gdns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GDNS', 'Gdns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRDNS', 'Gdns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GATEWAY', 'Gtwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GATEWY', 'Gtwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GATWAY', 'Gtwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GTWAY', 'Gtwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GTWY', 'Gtwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GLEN', 'Gln');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GLN', 'Gln');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GLENS', 'Glns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GREEN', 'Grn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRN', 'Grn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GREENS', 'Grns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GROV', 'Grv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GROVE', 'Grv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRV', 'Grv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GROVES', 'Grvs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HARB', 'Hbr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HARBOR', 'Hbr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HARBR', 'Hbr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HBR', 'Hbr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HRBOR', 'Hbr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HARBORS', 'Hbrs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HAVEN', 'Hvn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HAVN', 'Hvn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HVN', 'Hvn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HEIGHT', 'Hts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HEIGHTS', 'Hts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HGTS', 'Hts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HT', 'Hts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HTS', 'Hts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HILL', 'Hl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HL', 'Hl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HILLS', 'Hls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HLS', 'Hls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HLLW', 'Holw');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HOLLOW', 'Holw');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HOLLOWS', 'Holw');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HOLW', 'Holw');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HOLWS', 'Holw');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('INLET', 'Inlt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('INLT', 'Inlt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('IS', 'Is');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLAND', 'Is');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLND', 'Is');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLANDS', 'Iss');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLNDS', 'Iss');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISS', 'Iss');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLE', 'Isle');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ISLES', 'Isle');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCT', 'Jct');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCTION', 'Jct');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCTN', 'Jct');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('JUNCTION', 'Jct');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('JUNCTN', 'Jct');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('JUNCTON', 'Jct');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCTNS', 'Jcts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('JCTS', 'Jcts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('JUNCTIONS', 'Jcts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('KEY', 'Ky');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('KY', 'Ky');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('KEYS', 'Kys');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('KYS', 'Kys');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNL', 'Knl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNOL', 'Knl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNOLL', 'Knl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNLS', 'Knls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('KNOLLS', 'Knls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LAKE', 'Lk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LK', 'Lk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LAKES', 'Lks');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LKS', 'Lks');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LAND', 'Land');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LANDING', 'Lndg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LNDG', 'Lndg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LNDNG', 'Lndg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LA', 'Ln');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LANE', 'Ln');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LANES', 'Ln');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LN', 'Ln');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LGT', 'Lgt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LIGHT', 'Lgt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LIGHTS', 'Lgts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LF', 'Lf');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOAF', 'Lf');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LCK', 'Lck');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOCK', 'Lck');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LCKS', 'Lcks');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOCKS', 'Lcks');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LDG', 'Ldg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LDGE', 'Ldg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LODG', 'Ldg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LODGE', 'Ldg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOOP', 'Loop');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LOOPS', 'Loop');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MALL', 'Mall');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MANOR', 'Mnr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNR', 'Mnr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MANORS', 'Mnrs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNRS', 'Mnrs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MDW', 'Mdw');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MEADOW', 'Mdw');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MDWS', 'Mdws');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MEADOWS', 'Mdws');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MEDOWS', 'Mdws');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MEWS', 'Mews');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MILL', 'Ml');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ML', 'Ml');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MILLS', 'Mls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MLS', 'Mls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MISSION', 'Msn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MISSN', 'Msn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MSN', 'Msn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MSSN', 'Msn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOTORWAY', 'Mtwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNT', 'Mt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOUNT', 'Mt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MT', 'Mt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNTAIN', 'Mtn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNTN', 'Mtn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOUNTAIN', 'Mtn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOUNTIN', 'Mtn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MTIN', 'Mtn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MTN', 'Mtn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MNTNS', 'Mtns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MOUNTAINS', 'Mtns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('NCK', 'Nck');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('NECK', 'Nck');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ORCH', 'Orch');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ORCHARD', 'Orch');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ORCHRD', 'Orch');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('OVAL', 'Oval');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('OVL', 'Oval');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('OVERPASS', 'Opas');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARK', 'Park');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PK', 'Park');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRK', 'Park');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARKS', 'Park');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARKWAY', 'Pkwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARKWY', 'Pkwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PKWAY', 'Pkwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PKWY', 'Pkwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PKY', 'Pkwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PARKWAYS', 'Pkwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PKWYS', 'Pkwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PASS', 'Pass');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PASSAGE', 'Psge');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PATH', 'Path');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PATHS', 'Path');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PIKE', 'Pike');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PIKES', 'Pike');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PINE', 'Pne');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PINES', 'Pnes');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PNES', 'Pnes');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PL', 'Pl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLACE', 'Pl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLAIN', 'Pln');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLN', 'Pln');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLAINES', 'Plns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLAINS', 'Plns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLNS', 'Plns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLAZA', 'Plz');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLZ', 'Plz');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PLZA', 'Plz');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('POINT', 'Pt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PT', 'Pt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('POINTS', 'Pts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PTS', 'Pts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PORT', 'Prt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRT', 'Prt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PORTS', 'Prts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRTS', 'Prts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PR', 'Pr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRAIRIE', 'Pr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRARIE', 'Pr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PRR', 'Pr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RAD', 'Radl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RADIAL', 'Radl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RADIEL', 'Radl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RADL', 'Radl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RAMP', 'Ramp');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RANCH', 'Rnch');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RANCHES', 'Rnch');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RNCH', 'Rnch');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RNCHS', 'Rnch');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RAPID', 'Rpd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RPD', 'Rpd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RAPIDS', 'Rpds');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RPDS', 'Rpds');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('REST', 'Rst');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RST', 'Rst');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RDG', 'Rdg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RDGE', 'Rdg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIDGE', 'Rdg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RDGS', 'Rdgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIDGES', 'Rdgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIV', 'Riv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIVER', 'Riv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RIVR', 'Riv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RVR', 'Riv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RD', 'Rd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ROAD', 'Rd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RDS', 'Rds');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ROADS', 'Rds');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ROW', 'Row');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RUE', 'Rue');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RUN', 'Run');
--- Start newly added 2011-7-12 --
-INSERT INTO street_type_lookup (name, abbrev)
- VALUES 
- ('SERVICE DRIVE', 'Svc Dr'),
- ('SERVICE DR', 'Svc Dr'),
- ('SERVICE ROAD', 'Svc Rd'),
- ('SERVICE RD', 'Svc Rd') ;
--- end newly added 2011-07-12 --
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHL', 'Shl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHOAL', 'Shl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHLS', 'Shls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHOALS', 'Shls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHOAR', 'Shr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHORE', 'Shr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHR', 'Shr');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHOARS', 'Shrs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHORES', 'Shrs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHRS', 'Shrs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SKYWAY', 'Skwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPG', 'Spg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPNG', 'Spg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPRING', 'Spg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPRNG', 'Spg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPGS', 'Spgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPNGS', 'Spgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPRINGS', 'Spgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPRNGS', 'Spgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPUR', 'Spur');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SPURS', 'Spur');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQ', 'Sq');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQR', 'Sq');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQRE', 'Sq');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQU', 'Sq');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQUARE', 'Sq');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQRS', 'Sqs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQUARES', 'Sqs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STA', 'Sta');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STATION', 'Sta');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STATN', 'Sta');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STN', 'Sta');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRA', 'Stra');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAV', 'Stra');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAVE', 'Stra');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAVEN', 'Stra');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAVENUE', 'Stra');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRAVN', 'Stra');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRVN', 'Stra');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRVNUE', 'Stra');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STREAM', 'Strm');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STREME', 'Strm');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRM', 'Strm');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('ST', 'St');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STR', 'St');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STREET', 'St');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STRT', 'St');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STREETS', 'Sts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SMT', 'Smt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SUMIT', 'Smt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SUMITT', 'Smt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SUMMIT', 'Smt');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TER', 'Ter');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TERR', 'Ter');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TERRACE', 'Ter');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('THROUGHWAY', 'Trwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRACE', 'Trce');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRACES', 'Trce');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRCE', 'Trce');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRACK', 'Trak');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRACKS', 'Trak');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRAK', 'Trak');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRK', 'Trak');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRKS', 'Trak');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRAFFICWAY', 'Trfy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRFY', 'Trfy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TR', 'Trl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRAIL', 'Trl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRAILS', 'Trl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRL', 'Trl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRLS', 'Trl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNEL', 'Tunl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNL', 'Tunl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNLS', 'Tunl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNNEL', 'Tunl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNNELS', 'Tunl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TUNNL', 'Tunl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('UNDERPASS', 'Upas');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('UN', 'Un');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('UNION', 'Un');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('UNIONS', 'Uns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VALLEY', 'Vly');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VALLY', 'Vly');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLLY', 'Vly');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLY', 'Vly');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VALLEYS', 'Vlys');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLYS', 'Vlys');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VDCT', 'Via');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIA', 'Via');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIADCT', 'Via');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIADUCT', 'Via');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIEW', 'Vw');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VW', 'Vw');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIEWS', 'Vws');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VWS', 'Vws');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILL', 'Vlg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLAG', 'Vlg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLAGE', 'Vlg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLG', 'Vlg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLIAGE', 'Vlg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLG', 'Vlg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLAGES', 'Vlgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VLGS', 'Vlgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VILLE', 'Vl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VL', 'Vl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIS', 'Vis');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VIST', 'Vis');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VISTA', 'Vis');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VST', 'Vis');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('VSTA', 'Vis');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WALK', 'Walk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WALKS', 'Walk');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WALL', 'Wall');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WAY', 'Way');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WY', 'Way');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WAYS', 'Ways');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WELL', 'Wl');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WELLS', 'Wls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WLS', 'Wls');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BYU', 'Byu');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BLFS', 'Blfs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BRKS', 'Brks');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BG', 'Bg');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('BGS', 'Bgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CTRS', 'Ctrs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CIRS', 'Cirs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CMN', 'Cmn');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CTS', 'Cts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CVS', 'Cvs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CRST', 'Crst');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('XRD', 'Xrd');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('CURV', 'Curv');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('DRS', 'Drs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRDS', 'Frds');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('FRGS', 'Frgs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GLNS', 'Glns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRNS', 'Grns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('GRVS', 'Grvs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('HBRS', 'Hbrs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('LGTS', 'Lgts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MTWY', 'Mtwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('MTNS', 'Mtns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('OPAS', 'Opas');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PSGE', 'Psge');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('PNE', 'Pne');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('RTE', 'Rte');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SKWY', 'Skwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('SQS', 'Sqs');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('STS', 'Sts');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('TRWY', 'Trwy');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('UPAS', 'Upas');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('UNS', 'Uns');
-INSERT INTO street_type_lookup (name, abbrev) VALUES ('WL', 'Wl');
-
--- prefix and suffix street names for highways and foreign named roads 
--- where street type is at front of streetname instead of after
--- these usually have numbers for street names and often have spaces in type
-INSERT INTO street_type_lookup (name, abbrev, is_hw) 
-SELECT name, abbrev, true
-    FROM (VALUES
-        ('CAM', 'Cam'),
-        ('CAM.', 'Cam'),
-        ('CAMINO', 'Cam'),
-        ('CO HWY', 'Co Hwy'),
-        ('COUNTY HWY', 'Co Hwy'),
-        ('COUNTY HIGHWAY', 'Co Hwy'),
-        ('COUNTY HIGH WAY', 'Co Hwy'),
-        ('COUNTY ROAD', 'Co Rd'),
-        ('COUNTY RD', 'Co Rd'),
-        ('CO RD', 'Co Rd'),
-        ('CORD', 'Co Rd'),
-        ('CO RTE', 'Co Rte'),
-        ('COUNTY ROUTE', 'Co Rte'),
-        ('CO ST AID HWY', 'Co St Aid Hwy'),
-        ('EXP', 'Expy'),
-        ('EXPR', 'Expy'),
-        ('EXPRESS', 'Expy'),
-        ('EXPRESSWAY', 'Expy'),
-        ('EXPW', 'Expy'),
-        ('EXPY', 'Expy'),
-        ('FARM RD', 'Farm Rd'),
-        ('FIRE RD', 'Fire Rd'),
-        ('FOREST RD', 'Forest Rd'),
-        ('FOREST ROAD', 'Forest Rd'),
-        ('FOREST RTE', 'Forest Rte'),
-        ('FOREST ROUTE', 'Forest Rte'),
-        ('FREEWAY', 'Fwy'),
-        ('FREEWY', 'Fwy'),
-        ('FRWAY', 'Fwy'),
-        ('FRWY', 'Fwy'),
-        ('FWY', 'Fwy'),
-        ('HIGHWAY', 'Hwy'),
-        ('HIGHWY', 'Hwy'),
-        ('HIWAY', 'Hwy'),
-        ('HIWY', 'Hwy'),
-        ('HWAY', 'Hwy'),
-        ('HWY', 'Hwy'),
-        ('I', 'I-'),
-        ('I-', 'I-'),
-        ('INTERSTATE', 'I-'),
-        ('INTERSTATE ROUTE', 'I-'),
-        ('INTERSTATE RTE', 'I-'),
-        ('INTERSTATE RTE.', 'I-'),
-        ('INTERSTATE RT', 'I-'),
-        ('LOOP', 'Loop'),
-        ('ROUTE', 'Rte'),
-        ('RTE', 'Rte'),
-        ('RT', 'Rte'),
-        ('STATE HWY', 'State Hwy'),
-        ('STATE HIGHWAY', 'State Hwy'),
-        ('STATE HIGH WAY', 'State Hwy'),
-        ('STATE RD', 'State Rd'),
-        ('STATE ROAD', 'State Rd'),
-        ('STATE ROUTE', 'State Rte'),
-        ('STATE RTE', 'State Rte'),
-        ('TPK', 'Tpke'),
-        ('TPKE', 'Tpke'),
-        ('TRNPK', 'Tpke'),
-        ('TRPK', 'Tpke'),
-        ('TURNPIKE', 'Tpke'),
-        ('TURNPK', 'Tpke'),
-        ('US HWY', 'US Hwy'),
-        ('US HIGHWAY', 'US Hwy'),
-        ('US HIGH WAY', 'US Hwy'),
-        ('U.S.', 'US Hwy'),
-        ('US RTE', 'US Rte'),
-        ('US ROUTE', 'US Rte'),
-        ('US RT', 'US Rte'),
-        ('USFS HWY', 'USFS Hwy'),
-        ('USFS HIGHWAY', 'USFS Hwy'),
-        ('USFS HIGH WAY', 'USFS Hwy'),
-        ('USFS RD', 'USFS Rd'),
-        ('USFS ROAD', 'USFS Rd')
-           ) t(name, abbrev)
-           WHERE t.name NOT IN(SELECT name FROM street_type_lookup);
-CREATE INDEX street_type_lookup_abbrev_idx ON street_type_lookup (abbrev);
-
--- Create place and countysub lookup tables
-DROP TABLE IF EXISTS tiger.place_lookup;
-CREATE TABLE place_lookup (
-    st_code INTEGER,
-    state   VARCHAR(2),
-    pl_code INTEGER,
-    name    VARCHAR(90),
-    PRIMARY KEY (st_code,pl_code)
-);
-
-/**
-INSERT INTO place_lookup
-  SELECT
-    pl.state::integer   as st_code,
-    sl.abbrev           as state,
-    pl.placefp::integer as pl_code,
-    pl.name             as name
-  FROM
-    pl99_d00 pl
-    JOIN state_lookup sl ON (pl.state = lpad(sl.st_code,2,'0'))
-  GROUP BY pl.state, sl.abbrev, pl.placefp, pl.name;
-**/
-CREATE INDEX place_lookup_name_idx ON place_lookup (soundex(name));
-CREATE INDEX place_lookup_state_idx ON place_lookup (state);
-
-DROP TABLE IF EXISTS tiger.county_lookup;
-CREATE TABLE county_lookup (
-    st_code INTEGER,
-    state   VARCHAR(2),
-    co_code INTEGER,
-    name    VARCHAR(90),
-    PRIMARY KEY (st_code, co_code)
-);
-
-/**
-INSERT INTO county_lookup
-  SELECT
-    co.state::integer    as st_code,
-    sl.abbrev            as state,
-    co.county::integer   as co_code,
-    co.name              as name
-  FROM
-    co99_d00 co
-    JOIN state_lookup sl ON (co.state = lpad(sl.st_code,2,'0'))
-  GROUP BY co.state, sl.abbrev, co.county, co.name;
-**/
-CREATE INDEX county_lookup_name_idx ON county_lookup (soundex(name));
-CREATE INDEX county_lookup_state_idx ON county_lookup (state);
-
-DROP TABLE IF EXISTS tiger.countysub_lookup;
-CREATE TABLE countysub_lookup (
-    st_code INTEGER,
-    state   VARCHAR(2),
-    co_code INTEGER,
-    county  VARCHAR(90),
-    cs_code INTEGER,
-    name    VARCHAR(90),
-    PRIMARY KEY (st_code, co_code, cs_code)
-);
-
-/**
-INSERT INTO countysub_lookup
-  SELECT
-    cs.state::integer    as st_code,
-    sl.abbrev            as state,
-    cs.county::integer   as co_code,
-    cl.name              as county,
-    cs.cousubfp::integer as cs_code,
-    cs.name              as name
-  FROM
-    cs99_d00 cs
-    JOIN state_lookup sl ON (cs.state = lpad(sl.st_code,2,'0'))
-    JOIN county_lookup cl ON (cs.state = lpad(cl.st_code,2,'0') AND cs.county = cl.co_code)
-  GROUP BY cs.state, sl.abbrev, cs.county, cl.name, cs.cousubfp, cs.name;
-**/
-CREATE INDEX countysub_lookup_name_idx ON countysub_lookup (soundex(name));
-CREATE INDEX countysub_lookup_state_idx ON countysub_lookup (state);
-
-DROP TABLE IF EXISTS tiger.zip_lookup_all;
-CREATE TABLE zip_lookup_all (
-    zip     INTEGER,
-    st_code INTEGER,
-    state   VARCHAR(2),
-    co_code INTEGER,
-    county  VARCHAR(90),
-    cs_code INTEGER,
-    cousub  VARCHAR(90),
-    pl_code INTEGER,
-    place   VARCHAR(90),
-    cnt     INTEGER
-);
-
-/** SET work_mem = '2GB';
-
-INSERT INTO zip_lookup_all
-  SELECT *,count(*) as cnt FROM
-  (SELECT
-    zipl                 as zip,
-    rl.statel            as st_code,
-    sl.abbrev            as state,
-    rl.countyl           as co_code,
-    cl.name              as county,
-    rl.cousubl           as cs_code,
-    cs.name              as countysub,
-    rl.placel            as pl_code,
-    pl.name              as place
-  FROM
-    roads_local rl
-    JOIN state_lookup sl ON (rl.statel = lpad(sl.st_code,2,'0'))
-    LEFT JOIN county_lookup cl ON (rl.statel = lpad(cl.st_code,2,'0') AND rl.countyl = cl.co_code)
-    LEFT JOIN countysub_lookup cs ON (rl.statel = lpad(cs.st_code,2,'0') AND rl.countyl = cs.co_code AND rl.cousubl = cs.cs_code)
-    LEFT JOIN place_lookup pl ON (rl.statel = lpad(pl.st_code,2,'0') AND rl.placel = pl.pl_code)
-  WHERE zipl IS NOT NULL
-  UNION ALL
-  SELECT
-    zipr                 as zip,
-    rl.stater            as st_code,
-    sl.abbrev            as state,
-    rl.countyr           as co_code,
-    cl.name              as county,
-    rl.cousubr           as cs_code,
-    cs.name              as countysub,
-    rl.placer            as pl_code,
-    pl.name              as place
-  FROM
-    roads_local rl
-    JOIN state_lookup sl ON (rl.stater = lpad(sl.st_code,2,'0'))
-    LEFT JOIN county_lookup cl ON (rl.stater = lpad(cl.st_code,2,'0') AND rl.countyr = cl.co_code)
-    LEFT JOIN countysub_lookup cs ON (rl.stater = lpad(cs.st_code,2,'0') AND rl.countyr = cs.co_code AND rl.cousubr = cs.cs_code)
-    LEFT JOIN place_lookup pl ON (rl.stater = lpad(pl.st_code,2,'0') AND rl.placer = pl.pl_code)
-  WHERE zipr IS NOT NULL
-  ) as subquery
-  GROUP BY zip, st_code, state, co_code, county, cs_code, countysub, pl_code, place;
-**/
-DROP TABLE IF EXISTS tiger.zip_lookup_base;
-CREATE TABLE zip_lookup_base (
-    zip     varchar(5),
-    state   VARCHAR(40),
-    county  VARCHAR(90),
-    city    VARCHAR(90),
-    statefp varchar(2),
-    PRIMARY KEY (zip)
-);
-
--- INSERT INTO zip_lookup_base
--- Populate through magic
--- If anyone knows of a good, public, free, place to pull this information from, that'd be awesome to have...
-
-DROP TABLE IF EXISTS tiger.zip_lookup;
-CREATE TABLE zip_lookup (
-    zip     INTEGER,
-    st_code INTEGER,
-    state   VARCHAR(2),
-    co_code INTEGER,
-    county  VARCHAR(90),
-    cs_code INTEGER,
-    cousub  VARCHAR(90),
-    pl_code INTEGER,
-    place   VARCHAR(90),
-    cnt     INTEGER,
-    PRIMARY KEY (zip)
-);
-
-DROP TABLE IF EXISTS tiger.zcta500;
-/**
-INSERT INTO zip_lookup
-  SELECT
-    DISTINCT ON (zip)
-    zip,
-    st_code,
-    state,
-    co_code,
-    county,
-    cs_code,
-    cousub,
-    pl_code,
-    place,
-    cnt
-  FROM zip_lookup_all
-  ORDER BY zip,cnt desc;
-  **/
-DROP TABLE IF EXISTS tiger.county;
-CREATE TABLE county
-(
-  gid SERIAL NOT NULL,
-  statefp character varying(2),
-  countyfp character varying(3),
-  countyns character varying(8),
-  cntyidfp character varying(5) NOT NULL,
-  "name" character varying(100),
-  namelsad character varying(100),
-  lsad character varying(2),
-  classfp character varying(2),
-  mtfcc character varying(5),
-  csafp character varying(3),
-  cbsafp character varying(5),
-  metdivfp character varying(5),
-  funcstat character varying(1),
-  aland bigint,
-  awater  double precision,
-  intptlat character varying(11),
-  intptlon character varying(12),
-  the_geom geometry,
-  CONSTRAINT uidx_county_gid UNIQUE (gid),
-  CONSTRAINT pk_tiger_county PRIMARY KEY (cntyidfp),
-  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
-);
-CREATE INDEX idx_tiger_county ON county USING btree (countyfp);
-
-DROP TABLE IF EXISTS tiger.state;
-CREATE TABLE state
-(
-  gid serial NOT NULL,
-  region character varying(2),
-  division character varying(2),
-  statefp character varying(2),
-  statens character varying(8),
-  stusps character varying(2) NOT NULL,
-  "name" character varying(100),
-  lsad character varying(2),
-  mtfcc character varying(5),
-  funcstat character varying(1),
-  aland bigint,
-  awater bigint,
-  intptlat character varying(11),
-  intptlon character varying(12),
-  the_geom geometry,
-  CONSTRAINT uidx_tiger_state_stusps UNIQUE (stusps),
-  CONSTRAINT uidx_tiger_state_gid UNIQUE (gid),
-  CONSTRAINT pk_tiger_state PRIMARY KEY (statefp),
-  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
-);
-CREATE INDEX idx_tiger_state_the_geom_gist ON state USING gist(the_geom);
-
-DROP TABLE IF EXISTS tiger.place;
-CREATE TABLE place
-(
-  gid serial NOT NULL,
-  statefp character varying(2),
-  placefp character varying(5),
-  placens character varying(8),
-  plcidfp character varying(7) PRIMARY KEY,
-  "name" character varying(100),
-  namelsad character varying(100),
-  lsad character varying(2),
-  classfp character varying(2),
-  cpi character varying(1),
-  pcicbsa character varying(1),
-  pcinecta character varying(1),
-  mtfcc character varying(5),
-  funcstat character varying(1),
-  aland bigint,
-  awater bigint,
-  intptlat character varying(11),
-  intptlon character varying(12),
-  the_geom geometry,
-  CONSTRAINT uidx_tiger_place_gid UNIQUE (gid),
-  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
-);
-CREATE INDEX tiger_place_the_geom_gist ON place USING gist(the_geom);
-
-DROP TABLE IF EXISTS tiger.zip_state;
-CREATE TABLE zip_state
-(
-  zip character varying(5) NOT NULL,
-  stusps character varying(2) NOT NULL,
-  statefp character varying(2),
-  CONSTRAINT zip_state_pkey PRIMARY KEY (zip, stusps)
-);
-
-DROP TABLE IF EXISTS tiger.zip_state_loc;
-CREATE TABLE zip_state_loc
-(
-  zip character varying(5) NOT NULL,
-  stusps character varying(2) NOT NULL,
-  statefp character varying(2),
-  place varchar(100),
-  CONSTRAINT zip_state_loc_pkey PRIMARY KEY (zip, stusps, place)
-);
-
-DROP TABLE IF EXISTS tiger.cousub;
-CREATE TABLE cousub
-(
-  gid serial NOT NULL,
-  statefp character varying(2),
-  countyfp character varying(3),
-  cousubfp character varying(5),
-  cousubns character varying(8),
-  cosbidfp character varying(10) NOT NULL PRIMARY KEY,
-  "name" character varying(100),
-  namelsad character varying(100),
-  lsad character varying(2),
-  classfp character varying(2),
-  mtfcc character varying(5),
-  cnectafp character varying(3),
-  nectafp character varying(5),
-  nctadvfp character varying(5),
-  funcstat character varying(1),
-  aland numeric(14),
-  awater numeric(14),
-  intptlat character varying(11),
-  intptlon character varying(12),
-  the_geom geometry,
-  CONSTRAINT uidx_cousub_gid UNIQUE (gid),
-  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
-);
-
-CREATE INDEX tige_cousub_the_geom_gist ON cousub USING gist(the_geom);
-
-DROP TABLE IF EXISTS tiger.edges;
-CREATE TABLE edges
-(
-  gid SERIAL NOT NULL  PRIMARY KEY,
-  statefp character varying(2),
-  countyfp character varying(3),
-  tlid bigint,
-  tfidl numeric(10),
-  tfidr numeric(10),
-  mtfcc character varying(5),
-  fullname character varying(100),
-  smid character varying(22),
-  lfromadd character varying(12),
-  ltoadd character varying(12),
-  rfromadd character varying(12),
-  rtoadd character varying(12),
-  zipl character varying(5),
-  zipr character varying(5),
-  featcat character varying(1),
-  hydroflg character varying(1),
-  railflg character varying(1),
-  roadflg character varying(1),
-  olfflg character varying(1),
-  passflg character varying(1),
-  divroad character varying(1),
-  exttyp character varying(1),
-  ttyp character varying(1),
-  deckedroad character varying(1),
-  artpath character varying(1),
-  persist character varying(1),
-  gcseflg character varying(1),
-  offsetl character varying(1),
-  offsetr character varying(1),
-  tnidf numeric(10),
-  tnidt numeric(10),
-  the_geom geometry,
-  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTILINESTRING'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
-);
-CREATE INDEX idx_edges_tlid ON edges USING btree(tlid);
-CREATE INDEX idx_tiger_edges_countyfp ON edges USING btree(countyfp);
-CREATE INDEX idx_tiger_edges_the_geom_gist ON edges USING gist(the_geom);
-
-DROP TABLE IF EXISTS tiger.addrfeat;
-CREATE TABLE addrfeat
-(
-  gid serial not null primary key,
-  tlid bigint,
-  statefp character varying(2) NOT NULL,
-  aridl character varying(22),
-  aridr character varying(22),
-  linearid character varying(22),
-  fullname character varying(100),
-  lfromhn character varying(12),
-  ltohn character varying(12),
-  rfromhn character varying(12),
-  rtohn character varying(12),
-  zipl character varying(5),
-  zipr character varying(5),
-  edge_mtfcc character varying(5),
-  parityl character varying(1),
-  parityr character varying(1),
-  plus4l character varying(4),
-  plus4r character varying(4),
-  lfromtyp character varying(1),
-  ltotyp character varying(1),
-  rfromtyp character varying(1),
-  rtotyp character varying(1),
-  offsetl character varying(1),
-  offsetr character varying(1),
-  the_geom geometry,
-  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
-);
-CREATE INDEX idx_addrfeat_geom_gist ON addrfeat USING gist(the_geom );
-CREATE INDEX idx_addrfeat_tlid ON addrfeat USING btree(tlid);
-CREATE INDEX idx_addrfeat_zipl ON addrfeat USING btree(zipl);
-CREATE INDEX idx_addrfeat_zipr ON addrfeat USING btree(zipr);
-
-
-DROP TABLE IF EXISTS tiger.faces;
-CREATE TABLE faces
-(
-gid serial NOT NULL PRIMARY KEY,
-  tfid numeric(10,0),
-  statefp00 varchar(2),
-  countyfp00 varchar(3),
-  tractce00 varchar(6),
-  blkgrpce00 varchar(1),
-  blockce00 varchar(4),
-  cousubfp00 varchar(5),
-  submcdfp00 varchar(5),
-  conctyfp00 varchar(5),
-  placefp00 varchar(5),
-  aiannhfp00 varchar(5),
-  aiannhce00 varchar(4),
-  comptyp00 varchar(1),
-  trsubfp00 varchar(5),
-  trsubce00 varchar(3),
-  anrcfp00 varchar(5),
-  elsdlea00 varchar(5),
-  scsdlea00 varchar(5),
-  unsdlea00 varchar(5),
-  uace00 varchar(5),
-  cd108fp varchar(2),
-  sldust00 varchar(3),
-  sldlst00 varchar(3),
-  vtdst00 varchar(6),
-  zcta5ce00 varchar(5),
-  tazce00 varchar(6),
-  ugace00 varchar(5),
-  puma5ce00 varchar(5),
-  statefp varchar(2),
-  countyfp varchar(3),
-  tractce varchar(6),
-  blkgrpce varchar(1),
-  blockce varchar(4),
-  cousubfp varchar(5),
-  submcdfp varchar(5),
-  conctyfp varchar(5),
-  placefp varchar(5),
-  aiannhfp varchar(5),
-  aiannhce varchar(4),
-  comptyp varchar(1),
-  trsubfp varchar(5),
-  trsubce varchar(3),
-  anrcfp varchar(5),
-  ttractce varchar(6),
-  tblkgpce varchar(1),
-  elsdlea varchar(5),
-  scsdlea varchar(5),
-  unsdlea varchar(5),
-  uace varchar(5),
-  cd111fp varchar(2),
-  sldust varchar(3),
-  sldlst varchar(3),
-  vtdst varchar(6),
-  zcta5ce varchar(5),
-  tazce varchar(6),
-  ugace varchar(5),
-  puma5ce varchar(5),
-  csafp varchar(3),
-  cbsafp varchar(5),
-  metdivfp varchar(5),
-  cnectafp varchar(3),
-  nectafp varchar(5),
-  nctadvfp varchar(5),
-  lwflag varchar(1),
-  "offset" varchar(1),
-  atotal double precision,
-  intptlat varchar(11),
-  intptlon varchar(12),
-  the_geom geometry,
-  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
-);
-CREATE INDEX idx_tiger_faces_tfid ON faces USING btree (tfid);
-CREATE INDEX idx_tiger_faces_countyfp ON faces USING btree(countyfp);
-CREATE INDEX tiger_faces_the_geom_gist ON faces USING gist(the_geom);
-
-DROP TABLE IF EXISTS tiger.featnames;
-CREATE TABLE featnames
-(
-  gid SERIAL NOT NULL,
-  tlid bigint,
-  fullname character varying(100),
-  "name" character varying(100),
-  predirabrv character varying(15),
-  pretypabrv character varying(50),
-  prequalabr character varying(15),
-  sufdirabrv character varying(15),
-  suftypabrv character varying(50),
-  sufqualabr character varying(15),
-  predir character varying(2),
-  pretyp character varying(3),
-  prequal character varying(2),
-  sufdir character varying(2),
-  suftyp character varying(3),
-  sufqual character varying(2),
-  linearid character varying(22),
-  mtfcc character varying(5),
-  paflag character varying(1),
-  CONSTRAINT featnames_pkey PRIMARY KEY (gid)
-);
-ALTER TABLE featnames ADD COLUMN statefp character varying(2);
-CREATE INDEX idx_tiger_featnames_snd_name ON featnames USING btree (soundex(name));
-CREATE INDEX idx_tiger_featnames_lname ON featnames USING btree (lower(name));
-CREATE INDEX idx_tiger_featnames_tlid_statefp ON featnames USING btree (tlid,statefp);
-
-CREATE TABLE addr
-(
-  gid SERIAL NOT NULL,
-  tlid bigint,
-  fromhn character varying(12),
-  tohn character varying(12),
-  side character varying(1),
-  zip character varying(5),
-  plus4 character varying(4),
-  fromtyp character varying(1),
-  totyp character varying(1),
-  fromarmid integer,
-  toarmid integer,
-  arid character varying(22),
-  mtfcc character varying(5),
-  CONSTRAINT addr_pkey PRIMARY KEY (gid)
-);
-ALTER TABLE addr ADD COLUMN statefp character varying(2);
-
-CREATE INDEX idx_tiger_addr_tlid_statefp ON addr USING btree(tlid,statefp);
-CREATE INDEX idx_tiger_addr_zip ON addr USING btree (zip);
-
---DROP TABLE IF EXISTS tiger.zcta5;
-CREATE TABLE zcta5
-(
-  gid serial NOT NULL,
-  statefp character varying(2),
-  zcta5ce character varying(5),
-  classfp character varying(2),
-  mtfcc character varying(5),
-  funcstat character varying(1),
-  aland double precision,
-  awater double precision,
-  intptlat character varying(11),
-  intptlon character varying(12),
-  partflg character varying(1),
-  the_geom geometry,
-  CONSTRAINT uidx_tiger_zcta5_gid UNIQUE (gid),
-  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269),
-  CONSTRAINT pk_tiger_zcta5_zcta5ce PRIMARY KEY (zcta5ce,statefp)
- );
diff --git a/extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql b/extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql
deleted file mode 100644
index 3a854da..0000000
--- a/extras/tiger_geocoder/tiger_2011/tiger_loader_2011.sql
+++ /dev/null
@@ -1,376 +0,0 @@
---$Id: tiger_loader_2011.sql 11993 2013-09-30 20:26:04Z robe $
---
--- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
---
--- Copyright (C) 2010, 2011, 2012 Regina Obe and Leo Hsu 
--- Paragon Corporation
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
---  
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---SET search_path TO tiger,public;
---ALTER TABLE tiger.faces RENAME cd111fp  TO cdfp;
-SELECT tiger.SetSearchPathForInstall('tiger');
-BEGIN;
-CREATE OR REPLACE FUNCTION loader_macro_replace(param_input text, param_keys text[],param_values text[]) 
-RETURNS text AS
-$$
-	DECLARE var_result text = param_input;
-	DECLARE var_count integer = array_upper(param_keys,1);
-	BEGIN
-		FOR i IN 1..var_count LOOP
-			var_result := replace(var_result, '${' || param_keys[i] || '}', param_values[i]);
-		END LOOP;
-		return var_result;
-	END;
-$$
-  LANGUAGE 'plpgsql' IMMUTABLE
-  COST 100;
-
--- Helper function that generates script to drop all tables in a particular schema for a particular table
--- This is useful in case you need to reload a state
-CREATE OR REPLACE FUNCTION drop_state_tables_generate_script(param_state text, param_schema text DEFAULT 'tiger_data')
-  RETURNS text AS
-$$
-SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
-	FROM (SELECT * FROM information_schema.tables
-	WHERE table_schema = $2 AND table_name like lower($1) || '_%' ORDER BY table_name) AS foo; 
-;
-$$
-  LANGUAGE sql VOLATILE;
-  
--- Helper function that generates script to drop all nation tables (county, state) in a particular schema 
--- This is useful for loading 2011 because state and county tables aren't broken out into separate state files
-DROP FUNCTION IF EXISTS drop_national_tables_generate_script(text);
-CREATE OR REPLACE FUNCTION drop_nation_tables_generate_script(param_schema text DEFAULT 'tiger_data')
-  RETURNS text AS
-$$
-SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
-	FROM (SELECT * FROM information_schema.tables
-	WHERE table_schema = $1 AND (table_name ~ E'^[a-z]{2}\_county' or table_name ~ E'^[a-z]{2}\_state' or table_name = 'state_all' or table_name LIKE 'county_all%') ORDER BY table_name) AS foo; 
-;
-$$
-  LANGUAGE sql VOLATILE;
-  
-
-
-DROP TABLE IF EXISTS loader_platform;
-CREATE TABLE loader_platform(os varchar(50) PRIMARY KEY, declare_sect text, pgbin text, wget text, unzip_command text, psql text, path_sep text, loader text, environ_set_command text, county_process_command text);
-GRANT SELECT ON TABLE loader_platform TO public;
-INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql,path_sep,loader, environ_set_command, county_process_command)
-VALUES('windows', '%WGETTOOL%', '%PGBIN%', 
-E'set TMPDIR=${staging_fold}\\temp\\
-set UNZIPTOOL="C:\\Program Files\\7-Zip\\7z.exe"
-set WGETTOOL="C:\\wget\\wget.exe"
-set PGBIN=C:\\Program Files\\PostgreSQL\\8.4\\bin\\
-set PGPORT=5432
-set PGHOST=localhost
-set PGUSER=postgres
-set PGPASSWORD=yourpasswordhere
-set PGDATABASE=geocoder
-set PSQL="%PGBIN%psql"
-set SHP2PGSQL="%PGBIN%shp2pgsql"
-cd ${staging_fold}
-', E'del %TMPDIR%\\*.* /Q
-%PSQL% -c "DROP SCHEMA ${staging_schema} CASCADE;"
-%PSQL% -c "CREATE SCHEMA ${staging_schema};"
-for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% 
-cd %TMPDIR%', E'%PSQL%', E'\\', E'%SHP2PGSQL%', 'set ', 
-'for /r %%z in (*${table_name}.dbf) do (${loader} -D -s 4269 -g the_geom -W "latin1" %%z tiger_staging.${state_abbrev}_${table_name} | ${psql} & ${psql} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));")'
-);
-
-
-INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql, path_sep, loader, environ_set_command, county_process_command)
-VALUES('sh', 'wget', '', 
-E'TMPDIR="${staging_fold}/temp/"
-UNZIPTOOL=unzip
-WGETTOOL="/usr/bin/wget"
-export PGBIN=/usr/pgsql-9.0/bin
-export PGPORT=5432
-export PGHOST=localhost
-export PGUSER=postgres
-export PGPASSWORD=yourpasswordhere
-export PGDATABASE=geocoder
-PSQL=${PGBIN}/psql
-SHP2PGSQL=${PGBIN}/shp2pgsql
-cd ${staging_fold}
-', E'rm -f ${TMPDIR}/*.*
-${PSQL} -c "DROP SCHEMA tiger_staging CASCADE;"
-${PSQL} -c "CREATE SCHEMA tiger_staging;"
-
-for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
-for z in */*.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
-cd $TMPDIR;\n', '${PSQL}', '/', '${SHP2PGSQL}', 'export ',
-'for z in *${table_name}.dbf; do 
-${loader} -D -s 4269 -g the_geom -W "latin1" $z ${staging_schema}.${state_abbrev}_${table_name} | ${psql} 
-${PSQL} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));"
-done');
-
--- variables table
-DROP TABLE IF EXISTS loader_variables;
-CREATE TABLE loader_variables(tiger_year varchar(4) PRIMARY KEY, website_root text, staging_fold text, data_schema text, staging_schema text);
-INSERT INTO loader_variables(tiger_year, website_root , staging_fold, data_schema, staging_schema)
-	VALUES('2011', 'ftp://ftp2.census.gov/geo/tiger/TIGER2011', '/gisdata', 'tiger_data', 'tiger_staging');
-GRANT SELECT ON TABLE loader_variables TO public;
-
-DROP TABLE IF EXISTS loader_lookuptables;
-CREATE TABLE loader_lookuptables(process_order integer NOT NULL DEFAULT 1000, 
-		lookup_name text primary key, 
-		table_name text, single_mode boolean NOT NULL DEFAULT true, 
-		load boolean NOT NULL DEFAULT true, 
-		level_county boolean NOT NULL DEFAULT false, 
-		level_state boolean NOT NULL DEFAULT false,
-		level_nation boolean NOT NULL DEFAULT false,
-		post_load_process text, single_geom_mode boolean DEFAULT false, 
-		insert_mode char(1) NOT NULL DEFAULT 'c', 
-		pre_load_process text,columns_exclude text[], website_root_override text);
-		
-GRANT SELECT ON TABLE loader_lookuptables TO public;
-		
--- put in explanatory comments of what each column is for
-COMMENT ON COLUMN loader_lookuptables.lookup_name IS 'This is the table name to inherit from and suffix of resulting output table -- how the table will be named --  edges here would mean -- ma_edges , pa_edges etc. except in the case of national tables. national level tables have no prefix';
-COMMENT ON COLUMN loader_lookuptables.level_nation IS 'These are tables that contain all data for the whole US so there is just a single file';
-COMMENT ON COLUMN loader_lookuptables.table_name IS 'suffix of the tables to load e.g.  edges would load all tables like *edges.dbf(shp)  -- so tl_2010_42129_edges.dbf .  ';
-COMMENT ON COLUMN loader_lookuptables.load IS 'Whether or not to load the table.  For states and zcta5 (you may just want to download states10, zcta510 nationwide file manually) load your own into a single table that inherits from tiger.states, tiger.zcta5.  You''ll get improved performance for some geocoding cases.';
-COMMENT ON COLUMN loader_lookuptables.columns_exclude IS 'List of columns to exclude as an array. This is excluded from both input table and output table and rest of columns remaining are assumed to be in same order in both tables. gid, geoid,cpi,suffix1ce are excluded if no columns are specified.';
-COMMENT ON COLUMN loader_lookuptables.website_root_override IS 'Path to use for wget instead of that specified in year table.  Needed currently for zcta where they release that only for 2000 and 2010';
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state,  level_nation, single_geom_mode, pre_load_process, post_load_process)
-VALUES(2, 'county_all', 'county', true, false, false, true,
-	false, '${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${data_schema}_${lookup_name} PRIMARY KEY (cntyidfp),CONSTRAINT uidx_${data_schema}_${lookup_name}_gid UNIQUE (gid)  ) INHERITS(county); " ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${table_name} RENAME geoid TO cntyidfp;  SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}''));"
-	${psql} -c "CREATE INDEX ${data_schema}_${table_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
-	${psql} -c "CREATE UNIQUE INDEX uidx_${data_schema}_${lookup_name}_statefp_countyfp ON ${data_schema}.${lookup_name} USING btree(statefp,countyfp);"
-	${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}_lookup ( CONSTRAINT pk_${lookup_name}_lookup PRIMARY KEY (st_code, co_code)) INHERITS (county_lookup);"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name};"
-	${psql} -c "INSERT INTO ${data_schema}.${lookup_name}_lookup(st_code, state, co_code, name) SELECT CAST(s.statefp as integer), s.abbrev, CAST(c.countyfp as integer), c.name FROM ${data_schema}.${lookup_name} As c INNER JOIN state_lookup As s ON s.statefp = c.statefp;"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}_lookup;" ');
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(1, 'state_all', 'state', true, false, false,true,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${lookup_name} PRIMARY KEY (statefp),CONSTRAINT uidx_${lookup_name}_stusps  UNIQUE (stusps), CONSTRAINT uidx_${lookup_name}_gid UNIQUE (gid) ) INHERITS(state); "',
-	'${psql} -c "SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}'')); "
-	${psql} -c "CREATE INDEX ${data_schema}_${lookup_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}"' );
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(3, 'place', 'place', true, false, true,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (plcidfp) ) INHERITS(place);" ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO plcidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid);"
-${psql} -c "CREATE INDEX idx_${state_abbrev}_${lookup_name}_soundex_name ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (soundex(name));" 
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"'  
-	);
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(4, 'cousub', 'cousub', true, false, true,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (cosbidfp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO cosbidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree(countyfp);"');
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude, website_root_override  )
--- this is a bit of a lie that its county.  It's really state but works better with column routine
-VALUES(4, 'zcta5', 'zcta510', true,true, false,false, false, 'a', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (zcta5ce,statefp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
-	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"'
-, ARRAY['gid','geoid','geoid10'], 'ftp://ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010');
-
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(6, 'faces', 'faces', true, true, false,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (gid)) INHERITS(${lookup_name});" ',
-	'${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfid ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (tfid);"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
-	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"');
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
-VALUES(7, 'featnames', 'featnames', true, true, false,false, 'a', 
-'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
-'${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_snd_name ON ${data_schema}.${state_abbrev}_${table_name} USING btree (soundex(name));"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_lname ON ${data_schema}.${state_abbrev}_${table_name} USING btree (lower(name));"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid,statefp);"
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid','statefp']);
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(8, 'edges', 'edges', true, true, false,false, 'a', 
-'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});" ',
-'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}tfidr ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidr);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfidl ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidl);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${table_name} USING gist(the_geom);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_zipl ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (zipl);"
-${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state_loc(CONSTRAINT pk_${state_abbrev}_zip_state_loc PRIMARY KEY(zip,stusps,place)) INHERITS(zip_state_loc);"
-${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state_loc(zip,stusps,statefp,place) SELECT DISTINCT e.zipl, ''${state_abbrev}'', ''${state_fips}'', p.name FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As p ON(f.statefp = p.statefp AND f.placefp = p.placefp ) WHERE e.zipl IS NOT NULL;"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_state_loc_place ON ${data_schema}.${state_abbrev}_zip_state_loc USING btree(soundex(place));"
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state_loc ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_zip_state_loc;"
-${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_lookup_base(CONSTRAINT pk_${state_abbrev}_zip_state_loc_city PRIMARY KEY(zip,state, county, city, statefp)) INHERITS(zip_lookup_base);"
-${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_lookup_base(zip,state,county,city, statefp) SELECT DISTINCT e.zipl, ''${state_abbrev}'', c.name,p.name,''${state_fips}''  FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN tiger.county As c  ON (e.countyfp = c.countyfp AND e.statefp = c.statefp AND e.statefp = ''${state_fips}'') INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As [...]
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_lookup_base ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_lookup_base_citysnd ON ${data_schema}.${state_abbrev}_zip_lookup_base USING btree(soundex(city));" ');
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
-VALUES(9, 'addr', 'addr', true, true, false,false, 'a', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
-	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_least_address ON tiger_data.${state_abbrev}_addr USING btree (least_hn(fromhn,tohn) );"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid, statefp);"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_zip ON ${data_schema}.${state_abbrev}_${table_name} USING btree (zip);"
-	${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state(CONSTRAINT pk_${state_abbrev}_zip_state PRIMARY KEY(zip,stusps)) INHERITS(zip_state); "
-	${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state(zip,stusps,statefp) SELECT DISTINCT zip, ''${state_abbrev}'', ''${state_fips}'' FROM ${data_schema}.${state_abbrev}_${lookup_name} WHERE zip is not null;"
-	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
-VALUES(9, 'addrfeat', 'addrfeat', false, true, false,true, 'a', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
-	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
-
-CREATE OR REPLACE FUNCTION loader_generate_nation_script(os text)
-  RETURNS SETOF text AS
-$BODY$
-WITH lu AS (SELECT lookup_name, table_name, pre_load_process,post_load_process, process_order, insert_mode, single_geom_mode, level_nation, level_county, level_state
-    FROM  loader_lookuptables 
-				WHERE level_nation = true AND load = true)
-SELECT 
-	loader_macro_replace(
-		replace(
-			loader_macro_replace(declare_sect
-				, ARRAY['staging_fold', 'website_root', 'psql',  'data_schema', 'staging_schema'], 
-				ARRAY[variables.staging_fold, variables.website_root, platform.psql, variables.data_schema, variables.staging_schema]
-			), '/', platform.path_sep) || '
-'  ||
-	-- Nation level files
-	array_to_string( ARRAY(SELECT loader_macro_replace('cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || variables.website_root  || '/' || upper(table_name)  || '/ --no-parent --relative --recursive --level=1 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(variables.website_root, 'http://', ''),'ftp://','')  || '/' || upper(table_name)  || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*' || table_name || '.zip ') || '
-' || COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
-		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year 
-	|| '_us_' || lu.table_name || '.dbf tiger_staging.' || lu.table_name || ' | '::text || platform.psql 
-		|| COALESCE(E'\n' || 
-			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ]
-			)
-				FROM lu
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'website_root'], 
-	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, variables.website_root])
-			AS shell_code
-FROM loader_variables As variables
-	 CROSS JOIN loader_platform As platform
-WHERE platform.os = $1 -- generate script for selected platform
-;
-$BODY$
-  LANGUAGE sql VOLATILE;
-  
-CREATE OR REPLACE FUNCTION loader_generate_script(param_states text[], os text)
-  RETURNS SETOF text AS
-$BODY$
-SELECT 
-	loader_macro_replace(
-		replace(
-			loader_macro_replace(declare_sect
-				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
-				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
-			), '/', platform.path_sep) || '
-' ||
-	-- State level files - if an override website is specified we use that instead of variable one
-	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
-' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
-		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
-	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
-		|| COALESCE(E'\n' || 
-			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
-				FROM loader_lookuptables AS lu
-				WHERE level_state = true AND load = true
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	-- County Level files
-	|| E'\n' ||
-		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
-' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
-				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
-				FROM loader_lookuptables AS lu
-				WHERE level_county = true AND load = true
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
-	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
-			AS shell_code
-FROM loader_variables As variables
-		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
-			 lpad(st_code::text,2,'0') || '_' 
-	|| replace(name, ' ', '_') As state_fold
-FROM state_lookup) As s CROSS JOIN loader_platform As platform
-WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
-AND platform.os = $2  -- generate script for selected platform
-;
-$BODY$
-  LANGUAGE sql VOLATILE;
-
-CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text, param_columns_exclude text[]) RETURNS integer
-AS
-$$
-DECLARE 
-	var_sql text;
-	var_staging_schema text; var_data_schema text;
-	var_temp text;
-	var_num_records bigint;
-BEGIN
--- Add all the fields except geoid and gid
--- Assume all the columns are in same order as target
-	SELECT staging_schema, data_schema INTO var_staging_schema, var_data_schema FROM loader_variables;
-	var_sql := 'INSERT INTO ' || var_data_schema || '.' || quote_ident(param_target_table) || '(' ||
-			array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
-				FROM information_schema.columns 
-				 WHERE table_name = param_target_table
-					AND table_schema = var_data_schema 
-					AND column_name <> ALL(param_columns_exclude) ), ',') || ') SELECT ' 
-					|| array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
-				FROM information_schema.columns 
-				 WHERE table_name = param_staging_table
-					AND table_schema = var_staging_schema 
-					AND column_name <> ALL( param_columns_exclude) ), ',') ||' FROM ' 
-					|| var_staging_schema || '.' || param_staging_table || ';';
-	RAISE NOTICE '%', var_sql;
-	EXECUTE (var_sql);
-	GET DIAGNOSTICS var_num_records = ROW_COUNT;
-	SELECT DropGeometryTable(var_staging_schema,param_staging_table) INTO var_temp;
-	RETURN var_num_records;
-END;
-$$
-LANGUAGE 'plpgsql' VOLATILE;
-
-CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text) 
-RETURNS integer AS
-$$
--- exclude this set list of columns if no exclusion list is specified 
-   SELECT  loader_load_staged_data($1, $2,(SELECT COALESCE(columns_exclude,ARRAY['gid', 'geoid','cpi','suffix1ce', 'statefp00', 'statefp10', 'countyfp00','countyfp10'
-   ,'tractce00','tractce10', 'blkgrpce00', 'blkgrpce10', 'blockce00', 'blockce10'
-      , 'cousubfp00', 'submcdfp00', 'conctyfp00', 'placefp00', 'aiannhfp00', 'aiannhce00', 
-       'comptyp00', 'trsubfp00', 'trsubce00', 'anrcfp00', 'elsdlea00', 'scsdlea00', 
-       'unsdlea00', 'uace00', 'cd108fp', 'sldust00', 'sldlst00', 'vtdst00', 'zcta5ce00', 
-       'tazce00', 'ugace00', 'puma5ce00','vtdst10','tazce10','uace10','puma5ce10','tazce', 'uace', 'vtdst', 'zcta5ce', 'zcta5ce10', 'puma5ce']) FROM loader_lookuptables WHERE $2 LIKE '%' || lookup_name))
-$$
-language 'sql' VOLATILE;
-COMMIT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql b/extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql
deleted file mode 100644
index 565b8d1..0000000
--- a/extras/tiger_geocoder/tiger_2011/tiger_loader_2012.sql
+++ /dev/null
@@ -1,407 +0,0 @@
---$Id: tiger_loader_2012.sql 11993 2013-09-30 20:26:04Z robe $
---
--- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
---
--- Copyright (C) 2010, 2011, 2012 Regina Obe and Leo Hsu 
--- Paragon Corporation
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
---  
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-SELECT tiger.SetSearchPathForInstall('tiger');
-BEGIN;
-CREATE OR REPLACE FUNCTION loader_macro_replace(param_input text, param_keys text[],param_values text[]) 
-RETURNS text AS
-$$
-	DECLARE var_result text = param_input;
-	DECLARE var_count integer = array_upper(param_keys,1);
-	BEGIN
-		FOR i IN 1..var_count LOOP
-			var_result := replace(var_result, '${' || param_keys[i] || '}', param_values[i]);
-		END LOOP;
-		return var_result;
-	END;
-$$
-  LANGUAGE 'plpgsql' IMMUTABLE
-  COST 100;
-
--- Helper function that generates script to drop all tables in a particular schema for a particular table
--- This is useful in case you need to reload a state
-CREATE OR REPLACE FUNCTION drop_state_tables_generate_script(param_state text, param_schema text DEFAULT 'tiger_data')
-  RETURNS text AS
-$$
-SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
-	FROM (SELECT * FROM information_schema.tables
-	WHERE table_schema = $2 AND table_name like lower($1) || '_%' ORDER BY table_name) AS foo; 
-;
-$$
-  LANGUAGE sql VOLATILE;
-  
--- Helper function that generates script to drop all nation tables (county, state) in a particular schema 
--- This is useful for loading 2011 because state and county tables aren't broken out into separate state files
-DROP FUNCTION IF EXISTS drop_national_tables_generate_script(text);
-CREATE OR REPLACE FUNCTION drop_nation_tables_generate_script(param_schema text DEFAULT 'tiger_data')
-  RETURNS text AS
-$$
-SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
-	FROM (SELECT * FROM information_schema.tables
-	WHERE table_schema = $1 AND (table_name ~ E'^[a-z]{2}\_county' or table_name ~ E'^[a-z]{2}\_state' or table_name = 'state_all' or table_name LIKE 'county_all%') ORDER BY table_name) AS foo; 
-;
-$$
-  LANGUAGE sql VOLATILE;
-  
-DO 
-$$
-BEGIN
-  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_platform' AND table_schema = 'tiger') THEN
-      CREATE TABLE loader_platform(os varchar(50) PRIMARY KEY, declare_sect text, pgbin text, wget text, unzip_command text, psql text, path_sep text, loader text, environ_set_command text, county_process_command text);     
-  END IF;   
-END 
-$$ LANGUAGE 'plpgsql';
-
-DO 
-$$
-BEGIN
-  IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = 'tiger_data') THEN
-       CREATE SCHEMA tiger_data;     
-  END IF;   
-END 
-$$ LANGUAGE 'plpgsql';
-
-
-DELETE FROM loader_platform WHERE os IN ('sh', 'windows');
-GRANT SELECT ON TABLE loader_platform TO public;
-INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql,path_sep,loader, environ_set_command, county_process_command)
-VALUES('windows', '%WGETTOOL%', '%PGBIN%', 
-E'set TMPDIR=${staging_fold}\\temp\\
-set UNZIPTOOL="C:\\Program Files\\7-Zip\\7z.exe"
-set WGETTOOL="C:\\wget\\wget.exe"
-set PGBIN=C:\\Program Files\\PostgreSQL\\9.2\\bin\\
-set PGPORT=5432
-set PGHOST=localhost
-set PGUSER=postgres
-set PGPASSWORD=yourpasswordhere
-set PGDATABASE=geocoder
-set PSQL="%PGBIN%psql"
-set SHP2PGSQL="%PGBIN%shp2pgsql"
-cd ${staging_fold}
-', E'del %TMPDIR%\\*.* /Q
-%PSQL% -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
-%PSQL% -c "CREATE SCHEMA ${staging_schema};"
-%PSQL% -c "DO language ''plpgsql'' $$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = ''${data_schema}'' ) THEN CREATE SCHEMA ${data_schema}; END IF;  END $$"
-for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% 
-cd %TMPDIR%', E'%PSQL%', E'\\', E'%SHP2PGSQL%', 'set ', 
-'for /r %%z in (*${table_name}.dbf) do (${loader} -D -s 4269 -g the_geom -W "latin1" %%z tiger_staging.${state_abbrev}_${table_name} | ${psql} & ${psql} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));")'
-);
-
-
-INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql, path_sep, loader, environ_set_command, county_process_command)
-VALUES('sh', 'wget', '', 
-E'TMPDIR="${staging_fold}/temp/"
-UNZIPTOOL=unzip
-WGETTOOL="/usr/bin/wget"
-export PGBIN=/usr/pgsql-9.0/bin
-export PGPORT=5432
-export PGHOST=localhost
-export PGUSER=postgres
-export PGPASSWORD=yourpasswordhere
-export PGDATABASE=geocoder
-PSQL=${PGBIN}/psql
-SHP2PGSQL=${PGBIN}/shp2pgsql
-cd ${staging_fold}
-', E'rm -f ${TMPDIR}/*.*
-${PSQL} -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
-${PSQL} -c "CREATE SCHEMA ${staging_schema};"
-for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
-for z in */*.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
-cd $TMPDIR;\n', '${PSQL}', '/', '${SHP2PGSQL}', 'export ',
-'for z in *${table_name}.dbf; do 
-${loader} -D -s 4269 -g the_geom -W "latin1" $z ${staging_schema}.${state_abbrev}_${table_name} | ${psql} 
-${PSQL} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));"
-done');
-
--- variables table
-DO $$
-BEGIN
-  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_variables' AND table_schema = 'tiger') THEN
-      CREATE TABLE loader_variables(tiger_year varchar(4) PRIMARY KEY, website_root text, staging_fold text, data_schema text, staging_schema text);    
-  END IF;   
-END 
-$$ LANGUAGE 'plpgsql';
-
-TRUNCATE TABLE loader_variables;
-INSERT INTO loader_variables(tiger_year, website_root , staging_fold, data_schema, staging_schema)
-	VALUES('2012', 'ftp://ftp2.census.gov/geo/tiger/TIGER2012', '/gisdata', 'tiger_data', 'tiger_staging');
-GRANT SELECT ON TABLE loader_variables TO public;
-
-DO $$
-BEGIN
-  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_lookuptables' AND table_schema = 'tiger') THEN
-   CREATE TABLE loader_lookuptables(process_order integer NOT NULL DEFAULT 1000, 
-		lookup_name text primary key, 
-		table_name text, single_mode boolean NOT NULL DEFAULT true, 
-		load boolean NOT NULL DEFAULT true, 
-		level_county boolean NOT NULL DEFAULT false, 
-		level_state boolean NOT NULL DEFAULT false,
-		level_nation boolean NOT NULL DEFAULT false,
-		post_load_process text, single_geom_mode boolean DEFAULT false, 
-		insert_mode char(1) NOT NULL DEFAULT 'c', 
-		pre_load_process text,columns_exclude text[], website_root_override text);   
-  END IF;   
-END 
-$$ LANGUAGE 'plpgsql';
-
-TRUNCATE TABLE loader_lookuptables;
-
-		
-GRANT SELECT ON TABLE loader_lookuptables TO public;
-		
--- put in explanatory comments of what each column is for
-COMMENT ON COLUMN loader_lookuptables.lookup_name IS 'This is the table name to inherit from and suffix of resulting output table -- how the table will be named --  edges here would mean -- ma_edges , pa_edges etc. except in the case of national tables. national level tables have no prefix';
-COMMENT ON COLUMN loader_lookuptables.level_nation IS 'These are tables that contain all data for the whole US so there is just a single file';
-COMMENT ON COLUMN loader_lookuptables.table_name IS 'suffix of the tables to load e.g.  edges would load all tables like *edges.dbf(shp)  -- so tl_2010_42129_edges.dbf .  ';
-COMMENT ON COLUMN loader_lookuptables.load IS 'Whether or not to load the table.  For states and zcta5 (you may just want to download states10, zcta510 nationwide file manually) load your own into a single table that inherits from tiger.states, tiger.zcta5.  You''ll get improved performance for some geocoding cases.';
-COMMENT ON COLUMN loader_lookuptables.columns_exclude IS 'List of columns to exclude as an array. This is excluded from both input table and output table and rest of columns remaining are assumed to be in same order in both tables. gid, geoid,cpi,suffix1ce are excluded if no columns are specified.';
-COMMENT ON COLUMN loader_lookuptables.website_root_override IS 'Path to use for wget instead of that specified in year table.  Needed currently for zcta where they release that only for 2000 and 2010';
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state,  level_nation, single_geom_mode, pre_load_process, post_load_process)
-VALUES(2, 'county_all', 'county', true, false, false, true,
-	false, '${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${data_schema}_${lookup_name} PRIMARY KEY (cntyidfp),CONSTRAINT uidx_${data_schema}_${lookup_name}_gid UNIQUE (gid)  ) INHERITS(county); " ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${table_name} RENAME geoid TO cntyidfp;  SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}''));"
-	${psql} -c "CREATE INDEX ${data_schema}_${table_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
-	${psql} -c "CREATE UNIQUE INDEX uidx_${data_schema}_${lookup_name}_statefp_countyfp ON ${data_schema}.${lookup_name} USING btree(statefp,countyfp);"
-	${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}_lookup ( CONSTRAINT pk_${lookup_name}_lookup PRIMARY KEY (st_code, co_code)) INHERITS (county_lookup);"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name};"
-	${psql} -c "INSERT INTO ${data_schema}.${lookup_name}_lookup(st_code, state, co_code, name) SELECT CAST(s.statefp as integer), s.abbrev, CAST(c.countyfp as integer), c.name FROM ${data_schema}.${lookup_name} As c INNER JOIN state_lookup As s ON s.statefp = c.statefp;"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}_lookup;" ');
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(1, 'state_all', 'state', true, false, false,true,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${lookup_name} PRIMARY KEY (statefp),CONSTRAINT uidx_${lookup_name}_stusps  UNIQUE (stusps), CONSTRAINT uidx_${lookup_name}_gid UNIQUE (gid) ) INHERITS(state); "',
-	'${psql} -c "SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}'')); "
-	${psql} -c "CREATE INDEX ${data_schema}_${lookup_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}"' );
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(3, 'place', 'place', true, false, true,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (plcidfp) ) INHERITS(place);" ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO plcidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid);"
-${psql} -c "CREATE INDEX idx_${state_abbrev}_${lookup_name}_soundex_name ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (soundex(name));" 
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"'  
-	);
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(4, 'cousub', 'cousub', true, false, true,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (cosbidfp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO cosbidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree(countyfp);"');
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude, website_root_override  )
--- this is a bit of a lie that its county.  It's really state but works better with column routine
-VALUES(4, 'zcta5', 'zcta510', true,true, false,false, false, 'a', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (zcta5ce,statefp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
-	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"'
-, ARRAY['gid','geoid','geoid10'], 'ftp://ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010');
-
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(6, 'faces', 'faces', true, true, false,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (gid)) INHERITS(${lookup_name});" ',
-	'${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfid ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (tfid);"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
-	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"');
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
-VALUES(7, 'featnames', 'featnames', true, true, false,false, 'a', 
-'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
-'${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_snd_name ON ${data_schema}.${state_abbrev}_${table_name} USING btree (soundex(name));"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_lname ON ${data_schema}.${state_abbrev}_${table_name} USING btree (lower(name));"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid,statefp);"
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid','statefp']);
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(8, 'edges', 'edges', true, true, false,false, 'a', 
-'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});" ',
-'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}tfidr ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidr);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfidl ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidl);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${table_name} USING gist(the_geom);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_zipl ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (zipl);"
-${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state_loc(CONSTRAINT pk_${state_abbrev}_zip_state_loc PRIMARY KEY(zip,stusps,place)) INHERITS(zip_state_loc);"
-${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state_loc(zip,stusps,statefp,place) SELECT DISTINCT e.zipl, ''${state_abbrev}'', ''${state_fips}'', p.name FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As p ON(f.statefp = p.statefp AND f.placefp = p.placefp ) WHERE e.zipl IS NOT NULL;"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_state_loc_place ON ${data_schema}.${state_abbrev}_zip_state_loc USING btree(soundex(place));"
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state_loc ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_zip_state_loc;"
-${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_lookup_base(CONSTRAINT pk_${state_abbrev}_zip_state_loc_city PRIMARY KEY(zip,state, county, city, statefp)) INHERITS(zip_lookup_base);"
-${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_lookup_base(zip,state,county,city, statefp) SELECT DISTINCT e.zipl, ''${state_abbrev}'', c.name,p.name,''${state_fips}''  FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN tiger.county As c  ON (e.countyfp = c.countyfp AND e.statefp = c.statefp AND e.statefp = ''${state_fips}'') INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As [...]
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_lookup_base ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_lookup_base_citysnd ON ${data_schema}.${state_abbrev}_zip_lookup_base USING btree(soundex(city));" ');
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
-VALUES(9, 'addr', 'addr', true, true, false,false, 'a', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
-	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_least_address ON tiger_data.${state_abbrev}_addr USING btree (least_hn(fromhn,tohn) );"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid, statefp);"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_zip ON ${data_schema}.${state_abbrev}_${table_name} USING btree (zip);"
-	${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state(CONSTRAINT pk_${state_abbrev}_zip_state PRIMARY KEY(zip,stusps)) INHERITS(zip_state); "
-	${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state(zip,stusps,statefp) SELECT DISTINCT zip, ''${state_abbrev}'', ''${state_fips}'' FROM ${data_schema}.${state_abbrev}_${lookup_name} WHERE zip is not null;"
-	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
-VALUES(9, 'addrfeat', 'addrfeat', false, true, false,true, 'a', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
-	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
-
-CREATE OR REPLACE FUNCTION loader_generate_nation_script(os text)
-  RETURNS SETOF text AS
-$BODY$
-WITH lu AS (SELECT lookup_name, table_name, pre_load_process,post_load_process, process_order, insert_mode, single_geom_mode, level_nation, level_county, level_state
-    FROM  loader_lookuptables 
-				WHERE level_nation = true AND load = true)
-SELECT 
-	loader_macro_replace(
-		replace(
-			loader_macro_replace(declare_sect
-				, ARRAY['staging_fold', 'website_root', 'psql',  'data_schema', 'staging_schema'], 
-				ARRAY[variables.staging_fold, variables.website_root, platform.psql, variables.data_schema, variables.staging_schema]
-			), '/', platform.path_sep) || '
-'  ||
-	-- Nation level files
-	array_to_string( ARRAY(SELECT loader_macro_replace('cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || variables.website_root  || '/' || upper(table_name)  || '/ --no-parent --relative --recursive --level=1 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(variables.website_root, 'http://', ''),'ftp://','')  || '/' || upper(table_name)  || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*' || table_name || '.zip ') || '
-' || COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
-		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year 
-	|| '_us_' || lu.table_name || '.dbf tiger_staging.' || lu.table_name || ' | '::text || platform.psql 
-		|| COALESCE(E'\n' || 
-			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ]
-			)
-				FROM lu
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'website_root'], 
-	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, variables.website_root])
-			AS shell_code
-FROM loader_variables As variables
-	 CROSS JOIN loader_platform As platform
-WHERE platform.os = $1 -- generate script for selected platform
-;
-$BODY$
-  LANGUAGE sql VOLATILE;
-  
-CREATE OR REPLACE FUNCTION loader_generate_script(param_states text[], os text)
-  RETURNS SETOF text AS
-$BODY$
-SELECT 
-	loader_macro_replace(
-		replace(
-			loader_macro_replace(declare_sect
-				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
-				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
-			), '/', platform.path_sep) || '
-' ||
-	-- State level files - if an override website is specified we use that instead of variable one
-	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/tl_*_' || s.state_fips || '_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
-' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
-		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
-	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
-		|| COALESCE(E'\n' || 
-			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
-				FROM loader_lookuptables AS lu
-				WHERE level_state = true AND load = true
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	-- County Level files
-	|| E'\n' ||
-		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
-' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
-				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
-				FROM loader_lookuptables AS lu
-				WHERE level_county = true AND load = true
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
-	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
-			AS shell_code
-FROM loader_variables As variables
-		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
-			 lpad(st_code::text,2,'0') || '_' 
-	|| replace(name, ' ', '_') As state_fold
-FROM state_lookup) As s CROSS JOIN loader_platform As platform
-WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
-AND platform.os = $2  -- generate script for selected platform
-;
-$BODY$
-  LANGUAGE sql VOLATILE;
-
-CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text, param_columns_exclude text[]) RETURNS integer
-AS
-$$
-DECLARE 
-	var_sql text;
-	var_staging_schema text; var_data_schema text;
-	var_temp text;
-	var_num_records bigint;
-BEGIN
--- Add all the fields except geoid and gid
--- Assume all the columns are in same order as target
-	SELECT staging_schema, data_schema INTO var_staging_schema, var_data_schema FROM loader_variables;
-	var_sql := 'INSERT INTO ' || var_data_schema || '.' || quote_ident(param_target_table) || '(' ||
-			array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
-				FROM information_schema.columns 
-				 WHERE table_name = param_target_table
-					AND table_schema = var_data_schema 
-					AND column_name <> ALL(param_columns_exclude) ), ',') || ') SELECT ' 
-					|| array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
-				FROM information_schema.columns 
-				 WHERE table_name = param_staging_table
-					AND table_schema = var_staging_schema 
-					AND column_name <> ALL( param_columns_exclude) ), ',') ||' FROM ' 
-					|| var_staging_schema || '.' || param_staging_table || ';';
-	RAISE NOTICE '%', var_sql;
-	EXECUTE (var_sql);
-	GET DIAGNOSTICS var_num_records = ROW_COUNT;
-	SELECT DropGeometryTable(var_staging_schema,param_staging_table) INTO var_temp;
-	RETURN var_num_records;
-END;
-$$
-LANGUAGE 'plpgsql' VOLATILE;
-
-CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text) 
-RETURNS integer AS
-$$
--- exclude this set list of columns if no exclusion list is specified 
-
-   SELECT  loader_load_staged_data($1, $2,(SELECT COALESCE(columns_exclude,ARRAY['gid', 'geoid','cpi','suffix1ce', 'statefp00', 'statefp10', 'countyfp00','countyfp10'
-   ,'tractce00','tractce10', 'blkgrpce00', 'blkgrpce10', 'blockce00', 'blockce10'
-      , 'cousubfp00', 'submcdfp00', 'conctyfp00', 'placefp00', 'aiannhfp00', 'aiannhce00', 
-       'comptyp00', 'trsubfp00', 'trsubce00', 'anrcfp00', 'elsdlea00', 'scsdlea00', 
-       'unsdlea00', 'uace00', 'cd108fp', 'sldust00', 'sldlst00', 'vtdst00', 'zcta5ce00', 
-       'tazce00', 'ugace00', 'puma5ce00','vtdst10','tazce10','uace10','puma5ce10','tazce', 'uace', 'vtdst', 'zcta5ce', 'zcta5ce10', 'puma5ce', 'ugace10','pumace10', 'estatefp', 'ugace']) FROM loader_lookuptables WHERE $2 LIKE '%' || lookup_name))
-$$
-language 'sql' VOLATILE;
-COMMIT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql b/extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql
deleted file mode 100644
index 9773025..0000000
--- a/extras/tiger_geocoder/tiger_2011/tiger_loader_2013.sql
+++ /dev/null
@@ -1,406 +0,0 @@
---$Id: tiger_loader_2012.sql 11850 2013-08-22 04:36:09Z robe $
---
--- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
---
--- Copyright (C) 2010, 2011, 2012 Regina Obe and Leo Hsu 
--- Paragon Corporation
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
---  
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-SELECT tiger.SetSearchPathForInstall('tiger');
-BEGIN;
-CREATE OR REPLACE FUNCTION loader_macro_replace(param_input text, param_keys text[],param_values text[]) 
-RETURNS text AS
-$$
-	DECLARE var_result text = param_input;
-	DECLARE var_count integer = array_upper(param_keys,1);
-	BEGIN
-		FOR i IN 1..var_count LOOP
-			var_result := replace(var_result, '${' || param_keys[i] || '}', param_values[i]);
-		END LOOP;
-		return var_result;
-	END;
-$$
-  LANGUAGE 'plpgsql' IMMUTABLE
-  COST 100;
-
--- Helper function that generates script to drop all tables in a particular schema for a particular table
--- This is useful in case you need to reload a state
-CREATE OR REPLACE FUNCTION drop_state_tables_generate_script(param_state text, param_schema text DEFAULT 'tiger_data')
-  RETURNS text AS
-$$
-SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
-	FROM (SELECT * FROM information_schema.tables
-	WHERE table_schema = $2 AND table_name like lower($1) || '_%' ORDER BY table_name) AS foo; 
-;
-$$
-  LANGUAGE sql VOLATILE;
-  
--- Helper function that generates script to drop all nation tables (county, state) in a particular schema 
--- This is useful for loading 2011 because state and county tables aren't broken out into separate state files
-DROP FUNCTION IF EXISTS drop_national_tables_generate_script(text);
-CREATE OR REPLACE FUNCTION drop_nation_tables_generate_script(param_schema text DEFAULT 'tiger_data')
-  RETURNS text AS
-$$
-SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
-	FROM (SELECT * FROM information_schema.tables
-	WHERE table_schema = $1 AND (table_name ~ E'^[a-z]{2}\_county' or table_name ~ E'^[a-z]{2}\_state' or table_name = 'state_all' or table_name LIKE 'county_all%') ORDER BY table_name) AS foo; 
-;
-$$
-  LANGUAGE sql VOLATILE;
-  
-DO 
-$$
-BEGIN
-  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_platform' AND table_schema = 'tiger') THEN
-      CREATE TABLE loader_platform(os varchar(50) PRIMARY KEY, declare_sect text, pgbin text, wget text, unzip_command text, psql text, path_sep text, loader text, environ_set_command text, county_process_command text);     
-  END IF;   
-END 
-$$ LANGUAGE 'plpgsql';
-
-DO 
-$$
-BEGIN
-  IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = 'tiger_data') THEN
-       CREATE SCHEMA tiger_data;     
-  END IF;   
-END 
-$$ LANGUAGE 'plpgsql';
-
-
-DELETE FROM loader_platform WHERE os IN ('sh', 'windows');
-GRANT SELECT ON TABLE loader_platform TO public;
-INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql,path_sep,loader, environ_set_command, county_process_command)
-VALUES('windows', '%WGETTOOL%', '%PGBIN%', 
-E'set TMPDIR=${staging_fold}\\temp\\
-set UNZIPTOOL="C:\\Program Files\\7-Zip\\7z.exe"
-set WGETTOOL="C:\\wget\\wget.exe"
-set PGBIN=C:\\Program Files\\PostgreSQL\\9.2\\bin\\
-set PGPORT=5432
-set PGHOST=localhost
-set PGUSER=postgres
-set PGPASSWORD=yourpasswordhere
-set PGDATABASE=geocoder
-set PSQL="%PGBIN%psql"
-set SHP2PGSQL="%PGBIN%shp2pgsql"
-cd ${staging_fold}
-', E'del %TMPDIR%\\*.* /Q
-%PSQL% -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
-%PSQL% -c "CREATE SCHEMA ${staging_schema};"
-%PSQL% -c "DO language ''plpgsql'' $$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = ''${data_schema}'' ) THEN CREATE SCHEMA ${data_schema}; END IF;  END $$"
-for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% 
-cd %TMPDIR%', E'%PSQL%', E'\\', E'%SHP2PGSQL%', 'set ', 
-'for /r %%z in (*${table_name}.dbf) do (${loader} -D -s 4269 -g the_geom -W "latin1" %%z tiger_staging.${state_abbrev}_${table_name} | ${psql} & ${psql} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));")'
-);
-
-
-INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql, path_sep, loader, environ_set_command, county_process_command)
-VALUES('sh', 'wget', '', 
-E'TMPDIR="${staging_fold}/temp/"
-UNZIPTOOL=unzip
-WGETTOOL="/usr/bin/wget"
-export PGBIN=/usr/pgsql-9.0/bin
-export PGPORT=5432
-export PGHOST=localhost
-export PGUSER=postgres
-export PGPASSWORD=yourpasswordhere
-export PGDATABASE=geocoder
-PSQL=${PGBIN}/psql
-SHP2PGSQL=${PGBIN}/shp2pgsql
-cd ${staging_fold}
-', E'rm -f ${TMPDIR}/*.*
-${PSQL} -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
-${PSQL} -c "CREATE SCHEMA ${staging_schema};"
-for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
-for z in */*.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
-cd $TMPDIR;\n', '${PSQL}', '/', '${SHP2PGSQL}', 'export ',
-'for z in *${table_name}.dbf; do 
-${loader} -D -s 4269 -g the_geom -W "latin1" $z ${staging_schema}.${state_abbrev}_${table_name} | ${psql} 
-${PSQL} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));"
-done');
-
--- variables table
-DO $$
-BEGIN
-  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_variables' AND table_schema = 'tiger') THEN
-      CREATE TABLE loader_variables(tiger_year varchar(4) PRIMARY KEY, website_root text, staging_fold text, data_schema text, staging_schema text);    
-  END IF;   
-END 
-$$ LANGUAGE 'plpgsql';
-
-TRUNCATE TABLE loader_variables;
-INSERT INTO loader_variables(tiger_year, website_root , staging_fold, data_schema, staging_schema)
-	VALUES('2013', 'ftp://ftp2.census.gov/geo/tiger/TIGER2013', '/gisdata', 'tiger_data', 'tiger_staging');
-GRANT SELECT ON TABLE loader_variables TO public;
-
-DO $$
-BEGIN
-  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_lookuptables' AND table_schema = 'tiger') THEN
-   CREATE TABLE loader_lookuptables(process_order integer NOT NULL DEFAULT 1000, 
-		lookup_name text primary key, 
-		table_name text, single_mode boolean NOT NULL DEFAULT true, 
-		load boolean NOT NULL DEFAULT true, 
-		level_county boolean NOT NULL DEFAULT false, 
-		level_state boolean NOT NULL DEFAULT false,
-		level_nation boolean NOT NULL DEFAULT false,
-		post_load_process text, single_geom_mode boolean DEFAULT false, 
-		insert_mode char(1) NOT NULL DEFAULT 'c', 
-		pre_load_process text,columns_exclude text[], website_root_override text);   
-  END IF;   
-END 
-$$ LANGUAGE 'plpgsql';
-
-TRUNCATE TABLE loader_lookuptables;
-
-		
-GRANT SELECT ON TABLE loader_lookuptables TO public;
-		
--- put in explanatory comments of what each column is for
-COMMENT ON COLUMN loader_lookuptables.lookup_name IS 'This is the table name to inherit from and suffix of resulting output table -- how the table will be named --  edges here would mean -- ma_edges , pa_edges etc. except in the case of national tables. national level tables have no prefix';
-COMMENT ON COLUMN loader_lookuptables.level_nation IS 'These are tables that contain all data for the whole US so there is just a single file';
-COMMENT ON COLUMN loader_lookuptables.table_name IS 'suffix of the tables to load e.g.  edges would load all tables like *edges.dbf(shp)  -- so tl_2010_42129_edges.dbf .  ';
-COMMENT ON COLUMN loader_lookuptables.load IS 'Whether or not to load the table.  For states and zcta5 (you may just want to download states10, zcta510 nationwide file manually) load your own into a single table that inherits from tiger.states, tiger.zcta5.  You''ll get improved performance for some geocoding cases.';
-COMMENT ON COLUMN loader_lookuptables.columns_exclude IS 'List of columns to exclude as an array. This is excluded from both input table and output table and rest of columns remaining are assumed to be in same order in both tables. gid, geoid,cpi,suffix1ce are excluded if no columns are specified.';
-COMMENT ON COLUMN loader_lookuptables.website_root_override IS 'Path to use for wget instead of that specified in year table.  Needed currently for zcta where they release that only for 2000 and 2010';
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state,  level_nation, single_geom_mode, pre_load_process, post_load_process)
-VALUES(2, 'county_all', 'county', true, false, false, true,
-	false, '${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${data_schema}_${lookup_name} PRIMARY KEY (cntyidfp),CONSTRAINT uidx_${data_schema}_${lookup_name}_gid UNIQUE (gid)  ) INHERITS(county); " ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${table_name} RENAME geoid TO cntyidfp;  SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}''));"
-	${psql} -c "CREATE INDEX ${data_schema}_${table_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
-	${psql} -c "CREATE UNIQUE INDEX uidx_${data_schema}_${lookup_name}_statefp_countyfp ON ${data_schema}.${lookup_name} USING btree(statefp,countyfp);"
-	${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}_lookup ( CONSTRAINT pk_${lookup_name}_lookup PRIMARY KEY (st_code, co_code)) INHERITS (county_lookup);"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name};"
-	${psql} -c "INSERT INTO ${data_schema}.${lookup_name}_lookup(st_code, state, co_code, name) SELECT CAST(s.statefp as integer), s.abbrev, CAST(c.countyfp as integer), c.name FROM ${data_schema}.${lookup_name} As c INNER JOIN state_lookup As s ON s.statefp = c.statefp;"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}_lookup;" ');
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(1, 'state_all', 'state', true, false, false,true,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${lookup_name} PRIMARY KEY (statefp),CONSTRAINT uidx_${lookup_name}_stusps  UNIQUE (stusps), CONSTRAINT uidx_${lookup_name}_gid UNIQUE (gid) ) INHERITS(state); "',
-	'${psql} -c "SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}'')); "
-	${psql} -c "CREATE INDEX ${data_schema}_${lookup_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
-	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}"' );
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(3, 'place', 'place', true, false, true,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (plcidfp) ) INHERITS(place);" ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO plcidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid);"
-${psql} -c "CREATE INDEX idx_${state_abbrev}_${lookup_name}_soundex_name ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (soundex(name));" 
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"'  
-	);
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(4, 'cousub', 'cousub', true, false, true,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (cosbidfp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
-	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO cosbidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree(countyfp);"');
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude, website_root_override  )
--- this is a bit of a lie that its county.  It's really state but works better with column routine
-VALUES(4, 'zcta5', 'zcta510', true,true, false,false, false, 'a', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (zcta5ce,statefp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
-	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"'
-, ARRAY['gid','geoid','geoid10'], 'ftp://ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010');
-
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(6, 'faces', 'faces', true, true, false,false, 'c', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (gid)) INHERITS(${lookup_name});" ',
-	'${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfid ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (tfid);"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
-	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"');
-
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
-VALUES(7, 'featnames', 'featnames', true, true, false,false, 'a', 
-'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
-'${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_snd_name ON ${data_schema}.${state_abbrev}_${table_name} USING btree (soundex(name));"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_lname ON ${data_schema}.${state_abbrev}_${table_name} USING btree (lower(name));"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid,statefp);"
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid','statefp']);
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
-VALUES(8, 'edges', 'edges', true, true, false,false, 'a', 
-'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});" ',
-'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}tfidr ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidr);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfidl ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidl);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
-${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${table_name} USING gist(the_geom);"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_zipl ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (zipl);"
-${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state_loc(CONSTRAINT pk_${state_abbrev}_zip_state_loc PRIMARY KEY(zip,stusps,place)) INHERITS(zip_state_loc);"
-${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state_loc(zip,stusps,statefp,place) SELECT DISTINCT e.zipl, ''${state_abbrev}'', ''${state_fips}'', p.name FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As p ON(f.statefp = p.statefp AND f.placefp = p.placefp ) WHERE e.zipl IS NOT NULL;"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_state_loc_place ON ${data_schema}.${state_abbrev}_zip_state_loc USING btree(soundex(place));"
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state_loc ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"
-${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_zip_state_loc;"
-${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_lookup_base(CONSTRAINT pk_${state_abbrev}_zip_state_loc_city PRIMARY KEY(zip,state, county, city, statefp)) INHERITS(zip_lookup_base);"
-${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_lookup_base(zip,state,county,city, statefp) SELECT DISTINCT e.zipl, ''${state_abbrev}'', c.name,p.name,''${state_fips}''  FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN tiger.county As c  ON (e.countyfp = c.countyfp AND e.statefp = c.statefp AND e.statefp = ''${state_fips}'') INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As [...]
-${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_lookup_base ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_lookup_base_citysnd ON ${data_schema}.${state_abbrev}_zip_lookup_base USING btree(soundex(city));" ');
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
-VALUES(9, 'addr', 'addr', true, true, false,false, 'a', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
-	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_least_address ON tiger_data.${state_abbrev}_addr USING btree (least_hn(fromhn,tohn) );"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid, statefp);"
-	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_zip ON ${data_schema}.${state_abbrev}_${table_name} USING btree (zip);"
-	${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state(CONSTRAINT pk_${state_abbrev}_zip_state PRIMARY KEY(zip,stusps)) INHERITS(zip_state); "
-	${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state(zip,stusps,statefp) SELECT DISTINCT zip, ''${state_abbrev}'', ''${state_fips}'' FROM ${data_schema}.${state_abbrev}_${lookup_name} WHERE zip is not null;"
-	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
-	
-INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
-VALUES(9, 'addrfeat', 'addrfeat', false, true, false,true, 'a', 
-	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
-	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
-	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
-
-CREATE OR REPLACE FUNCTION loader_generate_nation_script(os text)
-  RETURNS SETOF text AS
-$BODY$
-WITH lu AS (SELECT lookup_name, table_name, pre_load_process,post_load_process, process_order, insert_mode, single_geom_mode, level_nation, level_county, level_state
-    FROM  loader_lookuptables 
-				WHERE level_nation = true AND load = true)
-SELECT 
-	loader_macro_replace(
-		replace(
-			loader_macro_replace(declare_sect
-				, ARRAY['staging_fold', 'website_root', 'psql',  'data_schema', 'staging_schema'], 
-				ARRAY[variables.staging_fold, variables.website_root, platform.psql, variables.data_schema, variables.staging_schema]
-			), '/', platform.path_sep) || '
-'  ||
-	-- Nation level files
-	array_to_string( ARRAY(SELECT loader_macro_replace('cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || variables.website_root  || '/' || upper(table_name)  || '/ --no-parent --relative --recursive --level=1 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(variables.website_root, 'http://', ''),'ftp://','')  || '/' || upper(table_name)  || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*' || table_name || '.zip ') || '
-' || COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
-		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year 
-	|| '_us_' || lu.table_name || '.dbf tiger_staging.' || lu.table_name || ' | '::text || platform.psql 
-		|| COALESCE(E'\n' || 
-			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ]
-			)
-				FROM lu
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'website_root'], 
-	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, variables.website_root])
-			AS shell_code
-FROM loader_variables As variables
-	 CROSS JOIN loader_platform As platform
-WHERE platform.os = $1 -- generate script for selected platform
-;
-$BODY$
-  LANGUAGE sql VOLATILE;
-  
-CREATE OR REPLACE FUNCTION loader_generate_script(param_states text[], os text)
-  RETURNS SETOF text AS
-$BODY$
-SELECT 
-	loader_macro_replace(
-		replace(
-			loader_macro_replace(declare_sect
-				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
-				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
-			), '/', platform.path_sep) || '
-' ||
-	-- State level files - if an override website is specified we use that instead of variable one
-	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/tl_*_' || s.state_fips || '_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
-' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
-		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
-	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
-		|| COALESCE(E'\n' || 
-			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
-				FROM loader_lookuptables AS lu
-				WHERE level_state = true AND load = true
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	-- County Level files
-	|| E'\n' ||
-		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
-' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
-'
-|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
-' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
-' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
-				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
-				FROM loader_lookuptables AS lu
-				WHERE level_county = true AND load = true
-				ORDER BY process_order, lookup_name), E'\n') ::text 
-	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
-	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
-			AS shell_code
-FROM loader_variables As variables
-		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
-			 lpad(st_code::text,2,'0') || '_' 
-	|| replace(name, ' ', '_') As state_fold
-FROM state_lookup) As s CROSS JOIN loader_platform As platform
-WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
-AND platform.os = $2  -- generate script for selected platform
-;
-$BODY$
-  LANGUAGE sql VOLATILE;
-
-CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text, param_columns_exclude text[]) RETURNS integer
-AS
-$$
-DECLARE 
-	var_sql text;
-	var_staging_schema text; var_data_schema text;
-	var_temp text;
-	var_num_records bigint;
-BEGIN
--- Add all the fields except geoid and gid
--- Assume all the columns are in same order as target
-	SELECT staging_schema, data_schema INTO var_staging_schema, var_data_schema FROM loader_variables;
-	var_sql := 'INSERT INTO ' || var_data_schema || '.' || quote_ident(param_target_table) || '(' ||
-			array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
-				FROM information_schema.columns 
-				 WHERE table_name = param_target_table
-					AND table_schema = var_data_schema 
-					AND column_name <> ALL(param_columns_exclude) ), ',') || ') SELECT ' 
-					|| array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
-				FROM information_schema.columns 
-				 WHERE table_name = param_staging_table
-					AND table_schema = var_staging_schema 
-					AND column_name <> ALL( param_columns_exclude) ), ',') ||' FROM ' 
-					|| var_staging_schema || '.' || param_staging_table || ';';
-	RAISE NOTICE '%', var_sql;
-	EXECUTE (var_sql);
-	GET DIAGNOSTICS var_num_records = ROW_COUNT;
-	SELECT DropGeometryTable(var_staging_schema,param_staging_table) INTO var_temp;
-	RETURN var_num_records;
-END;
-$$
-LANGUAGE 'plpgsql' VOLATILE;
-
-CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text) 
-RETURNS integer AS
-$$
--- exclude this set list of columns if no exclusion list is specified 
-
-   SELECT  loader_load_staged_data($1, $2,(SELECT COALESCE(columns_exclude,ARRAY['gid', 'geoid','cpi','suffix1ce', 'statefp00', 'statefp10', 'countyfp00','countyfp10'
-   ,'tractce00','tractce10', 'blkgrpce00', 'blkgrpce10', 'blockce00', 'blockce10'
-      , 'cousubfp00', 'submcdfp00', 'conctyfp00', 'placefp00', 'aiannhfp00', 'aiannhce00', 
-       'comptyp00', 'trsubfp00', 'trsubce00', 'anrcfp00', 'elsdlea00', 'scsdlea00', 
-       'unsdlea00', 'uace00', 'cd108fp', 'sldust00', 'sldlst00', 'vtdst00', 'zcta5ce00', 
-       'tazce00', 'ugace00', 'puma5ce00','vtdst10','tazce10','uace10','puma5ce10','tazce', 'uace', 'vtdst', 'zcta5ce', 'zcta5ce10', 'puma5ce', 'ugace10','pumace10', 'estatefp', 'ugace']) FROM loader_lookuptables WHERE $2 LIKE '%' || lookup_name))
-$$
-language 'sql' VOLATILE;
-COMMIT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/topology/README b/extras/tiger_geocoder/tiger_2011/topology/README
deleted file mode 100644
index d88bf4a..0000000
--- a/extras/tiger_geocoder/tiger_2011/topology/README
+++ /dev/null
@@ -1,4 +0,0 @@
-$Id: README 9324 2012-02-27 22:08:12Z pramsey $
-This folder will contain functions for converting tiger data to 
-PostGIS topology format. It assumes tiger data has already been loaded using
-the tiger loader.
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/topology/tiger_topology_loader.sql b/extras/tiger_geocoder/tiger_2011/topology/tiger_topology_loader.sql
deleted file mode 100644
index 49f312f..0000000
--- a/extras/tiger_geocoder/tiger_2011/topology/tiger_topology_loader.sql
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************
- * $Id: tiger_topology_loader.sql 9324 2012-02-27 22:08:12Z pramsey $
- *
- * PostGIS - Spatial Types for PostgreSQL
- * Copyright 2011 Leo Hsu and Regina Obe <lr at pcorp.us> 
- * Paragon Corporation
- * This is free software; you can redistribute and/or modify it under
- * the terms of the GNU General Public Licence. See the COPYING file.
- *
- * This file contains helper functions for loading tiger data
- * into postgis topology structure
- **********************************************************************/
-
- /** topology_load_tiger: Will load all edges, faces, nodes into 
- *  topology named toponame
- *	that intersect the specified region
- *  region_type: 'place', 'county'
- *  region_id: the respective fully qualified geoid
- *	 place - plcidfp
- *	 county - cntyidfp 
- * USE CASE: 
- *  The following will create a topology called topo_boston 
- *   in Mass State Plane feet and load Boston, MA tiger data
- *  with tolerance of 1 foot
- * SELECT topology.DropTopology('topo_boston');
- * SELECT topology.CreateTopology('topo_boston', 2249,0.25);
- * SELECT tiger.topology_load_tiger('topo_boston', 'place', '2507000'); 
- * SELECT topology.TopologySummary('topo_boston');
- * SELECT topology.ValidateTopology('topo_boston');  
- ****/
-CREATE OR REPLACE FUNCTION tiger.topology_load_tiger(IN toponame varchar,  
-	region_type varchar, region_id varchar)
-  RETURNS text AS
-$$
-DECLARE
- 	var_sql text;
- 	var_rgeom geometry;
- 	var_statefp text;
- 	var_rcnt bigint;
- 	var_result text := '';
- 	var_srid int := 4269;
- 	var_precision double precision := 0;
-BEGIN
-	--$Id: tiger_topology_loader.sql 9324 2012-02-27 22:08:12Z pramsey $
-	CASE region_type
-		WHEN 'place' THEN
-			SELECT the_geom , statefp FROM place INTO var_rgeom, var_statefp WHERE plcidfp = region_id;
-		WHEN 'county' THEN
-			SELECT the_geom, statefp FROM county INTO var_rgeom, var_statefp WHERE cntyidfp = region_id;
-		ELSE
-			RAISE EXCEPTION 'Region type % IS NOT SUPPORTED', region_type;
-	END CASE;
-	SELECT srid, precision FROM topology.topology into var_srid, var_precision
-                WHERE name = toponame;
-	var_sql := '
-	CREATE TEMPORARY TABLE tmp_edge
-   				AS 
-	WITH te AS 
-   			(SELECT tlid,  ST_GeometryN(ST_SnapToGrid(ST_Transform(ST_LineMerge(the_geom),$3),$4),1) As geom, tnidf, tnidt, tfidl, tfidr , the_geom As orig_geom
-									FROM tiger.edges 
-									WHERE statefp = $1 AND ST_Covers($2, the_geom)
-										)
-					SELECT DISTINCT ON (t.tlid) t.tlid As edge_id,t.geom 
-                        , t.tnidf As start_node, t.tnidt As end_node, COALESCE(t.tfidl,0) As left_face
-                        , COALESCE(t.tfidr,0) As right_face, COALESCE(tl.tlid, t.tlid) AS next_left_edge,  COALESCE(tr.tlid, t.tlid) As next_right_edge, t.orig_geom
-						FROM 
-							te AS t LEFT JOIN te As tl ON (t.tnidf = tl.tnidt AND t.tfidl = tl.tfidl)
-							 LEFT JOIN te As tr ON (t.tnidt = tr.tnidf AND t.tfidr = tr.tfidr)				
-						';
-	EXECUTE var_sql USING var_statefp, var_rgeom, var_srid, var_precision;
-	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
-	var_result := var_rcnt::text || ' edges holding in temporary. ';
-	var_sql := 'ALTER TABLE tmp_edge ADD CONSTRAINT pk_tmp_edge PRIMARY KEY(edge_id );';
-	EXECUTE var_sql;
-	-- CREATE node indexes on temporary edges
-	var_sql := 'CREATE INDEX idx_tmp_edge_start_node ON tmp_edge USING btree (start_node ); CREATE INDEX idx_tmp_edge_end_node ON tmp_edge USING btree (end_node );';
-
-	EXECUTE var_sql;
-
-	-- CREATE face indexes on temporary edges
-	var_sql := 'CREATE INDEX idx_tmp_edge_left_face ON tmp_edge USING btree (left_face ); CREATE INDEX idx_tmp_edge_right_face ON tmp_edge USING btree (right_face );';
-
-	EXECUTE var_sql;
-
-	-- CREATE edge indexes on temporary edges
-	var_sql := 'CREATE INDEX idx_tmp_edge_next_left_edge ON tmp_edge USING btree (next_left_edge ); CREATE INDEX idx_tmp_edge_next_right_edge ON tmp_edge USING btree (next_right_edge);';
-
-	EXECUTE var_sql;
-	
-	-- start load in faces
-	var_sql := 'INSERT INTO ' || quote_ident(toponame) || '.face(face_id, mbr) 
-						SELECT f.tfid, ST_Envelope(ST_Transform(f.the_geom,$3)) As mbr 
-							FROM tiger.faces AS f
-								WHERE statefp = $1 AND 
-								(  tfid IN(SELECT left_face FROM tmp_edge)
-									OR tfid IN(SELECT right_face FROM tmp_edge) OR ST_Covers($2, the_geom) )
-							AND tfid NOT IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face) ';
-	EXECUTE var_sql USING var_statefp, var_rgeom, var_srid;
-	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
-	var_result := var_result || var_rcnt::text || ' faces added. ';
-   -- end load in faces
-   
-   -- add remaining missing edges of present faces --
-   var_sql := 'INSERT INTO tmp_edge(edge_id, geom, start_node, end_node, left_face, right_face, next_left_edge, next_right_edge, orig_geom)	
-   			WITH te AS 
-   			(SELECT tlid,  ST_GeometryN(ST_SnapToGrid(ST_Transform(ST_LineMerge(the_geom),$2),$3),1) As geom, tnidf, tnidt, tfidl, tfidr, the_geom As orig_geom 
-									FROM tiger.edges 
-									WHERE statefp = $1 AND
-									 (tfidl IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face)
-				OR tfidr IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face) )
-				AND tlid NOT IN(SELECT edge_id FROM tmp_edge)
-				 )
-				
-			SELECT DISTINCT ON (t.tlid) t.tlid As edge_id,t.geom 
-                        , t.tnidf As start_node, t.tnidt As end_node, t.tfidl As left_face
-                        , t.tfidr As right_face, tl.tlid AS next_left_edge,  tr.tlid As next_right_edge, t.orig_geom
-				FROM 
-						te AS t LEFT JOIN te As tl 
-								ON (t.tnidf = tl.tnidt AND t.tfidl = tl.tfidl)
-			LEFT JOIN te As tr ON (t.tnidt = tr.tnidf AND t.tfidr = tr.tfidr)
-			';
-	EXECUTE var_sql USING var_statefp, var_srid, var_precision;
-	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
-	var_result := var_result || var_rcnt::text || ' edges of faces added. ';
-   	-- start load in nodes
-	var_sql := 'INSERT INTO ' || quote_ident(toponame) || '.node(node_id, geom)
-					SELECT DISTINCT ON(tnid) tnid, geom
-						FROM 
-						( 
-							SELECT start_node AS tnid, ST_StartPoint(e.geom) As geom 
-								FROM tmp_edge As e LEFT JOIN ' || quote_ident(toponame) || '.node AS n ON e.start_node = n.node_id
-						UNION ALL 
-							SELECT end_node AS tnid, ST_EndPoint(e.geom) As geom 
-							FROM tmp_edge As e LEFT JOIN ' || quote_ident(toponame) || '.node AS n ON e.end_node = n.node_id 
-							WHERE n.node_id IS NULL) As f 
-							WHERE tnid NOT IN(SELECT node_id FROM  ' || quote_ident(toponame) || '.node)
-					 ';
-	EXECUTE var_sql USING var_statefp, var_rgeom;
-	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
-	var_result := var_result || ' ' || var_rcnt::text || ' nodes added. ';
-
-   -- end load in nodes
-   -- start Mark which nodes are contained in faces
-   	var_sql := 'UPDATE ' || quote_ident(toponame) || '.node AS n
-					SET containing_face = f.tfid
-						FROM (SELECT tfid, the_geom
-							FROM tiger.faces WHERE statefp = $1 
-							AND tfid IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face) 
-							) As f
-						WHERE ST_ContainsProperly(f.the_geom, ST_Transform(n.geom,4269)) ';
-	EXECUTE var_sql USING var_statefp, var_rgeom;
-	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
-	var_result := var_result || ' ' || var_rcnt::text || ' nodes contained in a face. ';
-   -- end Mark nodes contained in faces
-
-   -- Set orphan left right to itself and set edges with missing faces to world face
-   var_sql := 'UPDATE tmp_edge SET next_left_edge = -1*edge_id WHERE next_left_edge IS NULL OR next_left_edge NOT IN(SELECT edge_id FROM tmp_edge);
-        UPDATE tmp_edge SET next_right_edge = -1*edge_id WHERE next_right_edge IS NULL OR next_right_edge NOT IN(SELECT edge_id FROM tmp_edge);
-        UPDATE tmp_edge SET left_face = 0 WHERE left_face NOT IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face);
-        UPDATE tmp_edge SET right_face = 0 WHERE right_face NOT IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face);';
-   EXECUTE var_sql;
-
-   -- force edges start and end points to match the start and end nodes --
-   var_sql := 'UPDATE tmp_edge SET geom = ST_SetPoint(ST_SetPoint(tmp_edge.geom, 0, s.geom), ST_NPoints(tmp_edge.geom) - 1,e.geom)  
-                FROM ' || quote_ident(toponame) || '.node AS s, ' || quote_ident(toponame) || '.node As e
-                WHERE s.node_id = tmp_edge.start_node AND e.node_id = tmp_edge.end_node AND 
-                    ( NOT ST_Equals(s.geom, ST_StartPoint(tmp_edge.geom) ) OR NOT ST_Equals(e.geom, ST_EndPoint(tmp_edge.geom) ) ) '  ;   
-    EXECUTE var_sql;
-    GET DIAGNOSTICS var_rcnt = ROW_COUNT;
-    var_result := var_result || ' ' || var_rcnt::text || ' edge start end corrected. ';
-   -- TODO: Load in edges --
-   var_sql := '
-   	INSERT INTO ' || quote_ident(toponame) || '.edge(edge_id, geom, start_node, end_node, left_face, right_face, next_left_edge, next_right_edge)
-					SELECT t.edge_id, t.geom, t.start_node, t.end_node, COALESCE(t.left_face,0) As left_face, COALESCE(t.right_face,0) As right_face, t.next_left_edge, t.next_right_edge
-						FROM 
-							tmp_edge AS t
-							WHERE t.edge_id NOT IN(SELECT edge_id FROM ' || quote_ident(toponame) || '.edge) 				
-						';
-	EXECUTE var_sql USING var_statefp, var_rgeom;
-	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
-	var_result := var_result || ' ' || var_rcnt::text || ' edges added. ';
-	var_sql = 'DROP TABLE tmp_edge;';
-	EXECUTE var_sql;
-	RETURN var_result;
-END
-$$
-  LANGUAGE plpgsql VOLATILE
-  COST 1000;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/upgrade_geocode.sql b/extras/tiger_geocoder/tiger_2011/upgrade_geocode.sql
deleted file mode 100644
index 814352a..0000000
--- a/extras/tiger_geocoder/tiger_2011/upgrade_geocode.sql
+++ /dev/null
@@ -1,297 +0,0 @@
---$Id: upgrade_geocode.sql 11245 2013-04-02 20:51:36Z robe $
---
--- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
---
--- Copyright (C) 2010, 2011 Regina Obe and Leo Hsu
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
---  
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---
-\i utility/set_search_path.sql;
--- Tiger is where we're going to create the functions, but we need
--- the PostGIS functions/types which may be anywhere 
--- we'll assume user has postgis functions and other contribs as part of search path
--- the below call will put tiger schema in front so all objects in this script
--- will get created in search path
-SELECT tiger.SetSearchPathForInstall('tiger');
---this is used currently for debugging
-\i geocode_settings.sql
---this will fail if the column already exists which is fine
-ALTER TABLE state_lookup ADD COLUMN statefp char(2);
-UPDATE state_lookup SET statefp = lpad(st_code::text,2,'0') WHERE statefp IS NULL;
-ALTER TABLE state_lookup ADD CONSTRAINT state_lookup_statefp_key UNIQUE(statefp);
-CREATE INDEX idx_tiger_edges_countyfp ON edges USING btree(countyfp);
-CREATE INDEX idx_tiger_faces_countyfp ON faces USING btree(countyfp);
-CREATE INDEX tiger_place_the_geom_gist ON place USING gist(the_geom);
-CREATE INDEX tiger_edges_the_geom_gist ON edges USING gist(the_geom);
-CREATE INDEX tiger_state_the_geom_gist ON faces USING gist(the_geom);
-DROP FUNCTION IF EXISTS reverse_geocode(geometry); /** changed to use default parameters **/
-DROP FUNCTION IF EXISTS geocode_location(norm_addy); /** changed to include default parameter for restrict_geom**/
-DROP FUNCTION IF EXISTS geocode(varchar); /** changed to include default parameter for max_results and restrict_geom**/
-DROP FUNCTION IF EXISTS geocode(norm_addy); /** changed to include default parameter for max_results and restrict_geom **/
-DROP FUNCTION IF EXISTS geocode(varchar, integer); /** changed to include default parameter for max_results and restrict_geom **/
-DROP FUNCTION IF EXISTS geocode(norm_addy,integer); /** changed to include default parameter for max_results and restrict_geom **/
-DROP FUNCTION IF EXISTS geocode_address(norm_addy); /** changed to include default parameter for max_results **/
-DROP FUNCTION IF EXISTS geocode_address(norm_addy,integer); /** changed to include default parameter for max_results and restrict_geom **/
-DROP FUNCTION IF EXISTS interpolate_from_address(integer, character varying, character varying, geometry); /** changed to use default args and added offset and side **/
-DROP FUNCTION IF EXISTS interpolate_from_address(integer, integer, integer, geometry); /**don't need this since got collapes into varchar version **/
-
--- this will fail if already exists, that is fine.  can't use IF NOT EXISTS until 9.1
-SELECT tiger.SetSearchPathForInstall('tiger');
-CREATE TABLE addrfeat
-(
-  gid serial not null primary key,
-  tlid bigint,
-  statefp character varying(2),
-  aridl character varying(22),
-  aridr character varying(22),
-  linearid character varying(22),
-  fullname character varying(100),
-  lfromhn character varying(12),
-  ltohn character varying(12),
-  rfromhn character varying(12),
-  rtohn character varying(12),
-  zipl character varying(5),
-  zipr character varying(5),
-  edge_mtfcc character varying(5),
-  parityl character varying(1),
-  parityr character varying(1),
-  plus4l character varying(4),
-  plus4r character varying(4),
-  lfromtyp character varying(1),
-  ltotyp character varying(1),
-  rfromtyp character varying(1),
-  rtotyp character varying(1),
-  offsetl character varying(1),
-  offsetr character varying(1),
-  the_geom geometry,
-  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
-);
-CREATE INDEX idx_addrfeat_geom_gist ON addrfeat USING gist(geom );
-CREATE INDEX idx_addrfeat_tlid ON addrfeat USING btree(tlid);
-CREATE INDEX idx_addrfeat_zipl ON addrfeat USING btree(zipl);
-CREATE INDEX idx_addrfeat_zipr ON addrfeat USING btree(zipr);
-
--- TODO: Put in logic to update lookup tables as they change.  street_type_lookup has changed since initial release --
-CREATE TABLE zcta5
-(
-  gid serial NOT NULL,
-  statefp character varying(2),
-  zcta5ce character varying(5),
-  classfp character varying(2),
-  mtfcc character varying(5),
-  funcstat character varying(1),
-  aland double precision,
-  awater double precision,
-  intptlat character varying(11),
-  intptlon character varying(12),
-  partflg character varying(1),
-  the_geom geometry,
-  CONSTRAINT uidx_tiger_zcta5_gid UNIQUE (gid),
-  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
-  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
-  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269),
-  CONSTRAINT pk_tiger_zcta5_zcta5ce PRIMARY KEY (zcta5ce,statefp)
- );
-
-ALTER TABLE street_type_lookup ALTER COLUMN abbrev  TYPE varchar(50);
-ALTER TABLE street_type_lookup ALTER COLUMN name  TYPE varchar(50);
-ALTER TABLE street_type_lookup ADD COLUMN is_hw boolean NOT NULL DEFAULT false;
-DROP FUNCTION IF EXISTS rate_attributes(character varying, character varying, character varying, character varying, character varying, character varying, character varying, character varying);
-DROP FUNCTION IF EXISTS rate_attributes(character varying, character varying, character varying, character varying, character varying, character varying, character varying, character varying, character varying, character varying);
-
---ALTER TABLE tiger.addr ALTER tlid TYPE bigint;
-ALTER TABLE featnames ALTER COLUMN tlid SET NOT NULL;
-ALTER TABLE county ALTER COLUMN statefp SET NOT NULL;
-ALTER TABLE edges ALTER COLUMN tlid SET NOT NULL;
-ALTER TABLE addr ALTER COLUMN tlid SET NOT NULL;
-BEGIN;
--- Type used to pass around a normalized address between functions
--- This is s bit dangerous since it could potentially drop peoples tables
--- TODO: put in logic to check if any tables have norm_addy and don't drop if they do
--- Remarking this out for now since we aren't changing norm_addy anyway
-/*DROP TYPE IF EXISTS norm_addy CASCADE; 
-CREATE TYPE norm_addy AS (
-    address INTEGER,
-    preDirAbbrev VARCHAR,
-    streetName VARCHAR,
-    streetTypeAbbrev VARCHAR,
-    postDirAbbrev VARCHAR,
-    internal VARCHAR,
-    location VARCHAR,
-    stateAbbrev VARCHAR,
-    zip VARCHAR,
-    parsed BOOLEAN); */
--- prefix and suffix street names for numbered highways
-CREATE TEMPORARY TABLE temp_types AS
-SELECT name, abbrev, true
-    FROM (VALUES
-        ('CAM', 'Cam'),
-        ('CAM.', 'Cam'),
-        ('CAMINO', 'Cam'),
-        ('CO HWY', 'Co Hwy'),
-        ('COUNTY HWY', 'Co Hwy'),
-        ('COUNTY HIGHWAY', 'Co Hwy'),
-        ('COUNTY HIGH WAY', 'Co Hwy'),
-        ('COUNTY ROAD', 'Co Rd'),
-        ('COUNTY RD', 'Co Rd'),
-        ('CO RD', 'Co Rd'),
-        ('CORD', 'Co Rd'),
-        ('CO RTE', 'Co Rte'),
-        ('COUNTY ROUTE', 'Co Rte'),
-        ('CO ST AID HWY', 'Co St Aid Hwy'),
-        ('EXP', 'Expy'),
-        ('EXPR', 'Expy'),
-        ('EXPRESS', 'Expy'),
-        ('EXPRESSWAY', 'Expy'),
-        ('EXPW', 'Expy'),
-        ('EXPY', 'Expy'),
-        ('FARM RD', 'Farm Rd'),
-        ('FIRE RD', 'Fire Rd'),
-        ('FOREST RD', 'Forest Rd'),
-        ('FOREST ROAD', 'Forest Rd'),
-        ('FOREST RTE', 'Forest Rte'),
-        ('FOREST ROUTE', 'Forest Rte'),
-        ('FREEWAY', 'Fwy'),
-        ('FREEWY', 'Fwy'),
-        ('FRWAY', 'Fwy'),
-        ('FRWY', 'Fwy'),
-        ('FWY', 'Fwy'),
-        ('HIGHWAY', 'Hwy'),
-        ('HIGHWY', 'Hwy'),
-        ('HIWAY', 'Hwy'),
-        ('HIWY', 'Hwy'),
-        ('HWAY', 'Hwy'),
-        ('HWY', 'Hwy'),
-        ('I', 'I-'),
-        ('I-', 'I-'),
-        ('INTERSTATE', 'I-'),
-        ('INTERSTATE ROUTE', 'I-'),
-        ('INTERSTATE RTE', 'I-'),
-        ('INTERSTATE RTE.', 'I-'),
-        ('INTERSTATE RT', 'I-'),
-        ('LOOP', 'Loop'),
-        ('ROUTE', 'Rte'),
-        ('RTE', 'Rte'),
-        ('RT', 'Rte'),
-        ('STATE HWY', 'State Hwy'),
-        ('STATE HIGHWAY', 'State Hwy'),
-        ('STATE HIGH WAY', 'State Hwy'),
-        ('STATE RD', 'State Rd'),
-        ('STATE ROAD', 'State Rd'),
-        ('STATE ROUTE', 'State Rte'),
-        ('STATE RTE', 'State Rte'),
-        ('TPK', 'Tpke'),
-        ('TPKE', 'Tpke'),
-        ('TRNPK', 'Tpke'),
-        ('TRPK', 'Tpke'),
-        ('TURNPIKE', 'Tpke'),
-        ('TURNPK', 'Tpke'),
-        ('US HWY', 'US Hwy'),
-        ('US HIGHWAY', 'US Hwy'),
-        ('US HIGH WAY', 'US Hwy'),
-        ('U.S.', 'US Hwy'),
-        ('US RTE', 'US Rte'),
-        ('US ROUTE', 'US Rte'),
-        ('US RT', 'US Rte'),
-        ('USFS HWY', 'USFS Hwy'),
-        ('USFS HIGHWAY', 'USFS Hwy'),
-        ('USFS HIGH WAY', 'USFS Hwy'),
-        ('USFS RD', 'USFS Rd'),
-        ('USFS ROAD', 'USFS Rd')
-           ) t(name, abbrev)
-           WHERE t.name NOT IN(SELECT name FROM street_type_lookup);
-           
-DELETE FROM street_type_lookup WHERE name IN(SELECT name FROM temp_types);         
-INSERT INTO street_type_lookup (name, abbrev, is_hw) 
-SELECT name, abbrev, true
-    FROM temp_types As t
-           WHERE t.name NOT IN(SELECT name FROM street_type_lookup);
-DROP TABLE temp_types;           
-DELETE FROM street_type_lookup WHERE name = 'FOREST';
-UPDATE street_type_lookup SET is_hw = false WHERE abbrev = 'Loop';
-
-CREATE TEMPORARY TABLE temp_types AS
-SELECT name, abbrev
-    FROM (VALUES 
- ('LOOP', 'Loop'),
- ('SERVICE DRIVE', 'Svc Dr'),
- ('SERVICE DR', 'Svc Dr'),
- ('SERVICE ROAD', 'Svc Rd'),
- ('SERVICE RD', 'Svc Rd') 
-    ) t(name, abbrev);
- 
-DELETE FROM street_type_lookup WHERE name IN(SELECT name FROM temp_types);         
-INSERT INTO street_type_lookup (name, abbrev, is_hw) 
-SELECT name, abbrev, false
-    FROM temp_types As t
-           WHERE t.name NOT IN(SELECT name FROM street_type_lookup);
- 
-SELECT tiger.SetSearchPathForInstall('tiger');
--- new census loader
-\i census_loader.sql
---create parent tables for census
--- if they do not exist
-SELECT create_census_base_tables();
--- System/General helper functions
-\i utility/utmzone.sql
-\i utility/cull_null.sql
-\i utility/nullable_levenshtein.sql
-\i utility/levenshtein_ignore_case.sql
-
----- Address normalizer
--- General helpers
-\i normalize/end_soundex.sql
-\i normalize/count_words.sql
-\i normalize/state_extract.sql
-\i normalize/get_last_words.sql
--- Location extraction/normalization helpers
-\i normalize/location_extract_countysub_exact.sql
-\i normalize/location_extract_countysub_fuzzy.sql
-\i normalize/location_extract_place_exact.sql
-\i normalize/location_extract_place_fuzzy.sql
-\i normalize/location_extract.sql
--- Normalization API, called by geocode mainly.
-\i normalize/normalize_address.sql
-\i normalize/pprint_addy.sql
-\i pagc_normalize/pagc_tables.sql
-\i pagc_normalize/pagc_normalize_address.sql
-
-
----- Geocoder functions
--- General helpers
-\i geocode/other_helper_functions.sql
-\i geocode/rate_attributes.sql
-\i geocode/includes_address.sql
-\i geocode/interpolate_from_address.sql
--- Actual lookups/geocoder helpers
-\i geocode/geocode_address.sql
-\i geocode/geocode_location.sql
--- Geocode API, called by user
-\i geocode/geocode.sql
-
--- Reverse Geocode API, called by user
-\i geocode/geocode_intersection.sql
-\i geocode/reverse_geocode.sql
-\i geocode/census_tracts_functions.sql
-COMMIT;
--- Tiger to PostGIS Topology
--- only useable if you have topology installed
-\i topology/tiger_topology_loader.sql
-
--- install missing indexes
-\echo 'Installing missing indexes - this might take a while so be patient ..'
-SELECT install_missing_indexes();
-\a
---\o 'drop_dup_feat_create_index.sql'
---\i generate_drop_dupe_featnames.sql
-\o 
---\i drop_dup_feat_create_index.sql
-\echo 'Missing index Install completed'
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/upgrade_geocoder.bat b/extras/tiger_geocoder/tiger_2011/upgrade_geocoder.bat
deleted file mode 100755
index 8c9ae0d..0000000
--- a/extras/tiger_geocoder/tiger_2011/upgrade_geocoder.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-REM $Id: upgrade_geocoder.bat 11969 2013-09-23 04:36:25Z robe $
-set PGPORT=5432
-set PGHOST=localhost
-set PGUSER=postgres
-set PGPASSWORD=yourpasswordhere
-set THEDB=geocoder
-set PGBIN=C:\Program Files\PostgreSQL\8.4\bin
-set PGCONTRIB=C:\Program Files\PostgreSQL\8.4\share\contrib
-"%PGBIN%\psql"  -d "%THEDB%" -f "upgrade_geocode.sql"
-
-REM unremark the loader line to update your loader scripts
-REM note this wipes out your custom settings in loader_* tables
-REM "%PGBIN%\psql"  -d "%THEDB%" -f "tiger_loader_2013.sql"
-cd regress
-REM "%PGBIN%\psql"  -d "%THEDB%" -t -f regress.sql
-pause
-
diff --git a/extras/tiger_geocoder/tiger_2011/upgrade_geocoder.sh b/extras/tiger_geocoder/tiger_2011/upgrade_geocoder.sh
deleted file mode 100755
index 98496b4..0000000
--- a/extras/tiger_geocoder/tiger_2011/upgrade_geocoder.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-# $Id: upgrade_geocoder.sh 11969 2013-09-23 04:36:25Z robe $
-export PGPORT=5432
-export PGHOST=localhost
-export PGUSER=postgres
-export PGPASSWORD=yourpasswordhere
-THEDB=geocoder
-PSQL_CMD=/usr/bin/psql
-PGCONTRIB=/usr/share/postgresql/contrib
-${PSQL_CMD} -d "${THEDB}" -f "upgrade_geocode.sql"
-
-#unremark the loader line to update your loader scripts
-#note this wipes out your custom settings in loader_* tables
-#${PSQL_CMD} -d "${THEDB}" -f "tiger_loader_2013.sql"
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/utility/levenshtein_ignore_case.sql b/extras/tiger_geocoder/tiger_2011/utility/levenshtein_ignore_case.sql
deleted file mode 100644
index 6447ae6..0000000
--- a/extras/tiger_geocoder/tiger_2011/utility/levenshtein_ignore_case.sql
+++ /dev/null
@@ -1,5 +0,0 @@
--- This function determines the levenshtein distance irespective of case.
-CREATE OR REPLACE FUNCTION levenshtein_ignore_case(VARCHAR, VARCHAR) RETURNS INTEGER
-AS $_$
-  SELECT levenshtein(upper($1), upper($2));
-$_$ LANGUAGE sql IMMUTABLE;
diff --git a/extras/tiger_geocoder/tiger_2011/utility/set_search_path.sql b/extras/tiger_geocoder/tiger_2011/utility/set_search_path.sql
deleted file mode 100644
index 427c222..0000000
--- a/extras/tiger_geocoder/tiger_2011/utility/set_search_path.sql
+++ /dev/null
@@ -1,24 +0,0 @@
---$Id: set_search_path.sql 9690 2012-04-29 01:06:06Z robe $
- /*** 
- * 
- * Copyright (C) 2012 Regina Obe and Leo Hsu (Paragon Corporation)
- **/
--- Adds a schema to  the front of search path so that functions, tables etc get installed by default in set schema
--- but if people have postgis and other things installed in non-public, it will still keep those in path
--- Example usage: SELECT tiger.SetSearchPathForInstall('tiger');
-CREATE OR REPLACE FUNCTION tiger.SetSearchPathForInstall(a_schema_name varchar)
-RETURNS text
-AS
-$$
-DECLARE
-	var_result text;
-	var_cur_search_path text;
-BEGIN
-	SELECT reset_val INTO var_cur_search_path FROM pg_settings WHERE name = 'search_path';
-
-	EXECUTE 'SET search_path = ' || quote_ident(a_schema_name) || ', ' || var_cur_search_path; 
-	var_result := a_schema_name || ' has been made primary for install ';
-  RETURN var_result;
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE STRICT;
diff --git a/extras/tiger_geocoder/tiger_loader_2011.sql b/extras/tiger_geocoder/tiger_loader_2011.sql
new file mode 100644
index 0000000..c4daf29
--- /dev/null
+++ b/extras/tiger_geocoder/tiger_loader_2011.sql
@@ -0,0 +1,375 @@
+--
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2010, 2011, 2012 Regina Obe and Leo Hsu 
+-- Paragon Corporation
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
+--  
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--SET search_path TO tiger,public;
+--ALTER TABLE tiger.faces RENAME cd111fp  TO cdfp;
+SELECT tiger.SetSearchPathForInstall('tiger');
+BEGIN;
+CREATE OR REPLACE FUNCTION loader_macro_replace(param_input text, param_keys text[],param_values text[]) 
+RETURNS text AS
+$$
+	DECLARE var_result text = param_input;
+	DECLARE var_count integer = array_upper(param_keys,1);
+	BEGIN
+		FOR i IN 1..var_count LOOP
+			var_result := replace(var_result, '${' || param_keys[i] || '}', param_values[i]);
+		END LOOP;
+		return var_result;
+	END;
+$$
+  LANGUAGE 'plpgsql' IMMUTABLE
+  COST 100;
+
+-- Helper function that generates script to drop all tables in a particular schema for a particular table
+-- This is useful in case you need to reload a state
+CREATE OR REPLACE FUNCTION drop_state_tables_generate_script(param_state text, param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $2 AND table_name like lower($1) || '_%' ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+-- Helper function that generates script to drop all nation tables (county, state) in a particular schema 
+-- This is useful for loading 2011 because state and county tables aren't broken out into separate state files
+DROP FUNCTION IF EXISTS drop_national_tables_generate_script(text);
+CREATE OR REPLACE FUNCTION drop_nation_tables_generate_script(param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $1 AND (table_name ~ E'^[a-z]{2}\_county' or table_name ~ E'^[a-z]{2}\_state' or table_name = 'state_all' or table_name LIKE 'county_all%') ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+
+
+DROP TABLE IF EXISTS loader_platform;
+CREATE TABLE loader_platform(os varchar(50) PRIMARY KEY, declare_sect text, pgbin text, wget text, unzip_command text, psql text, path_sep text, loader text, environ_set_command text, county_process_command text);
+GRANT SELECT ON TABLE loader_platform TO public;
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql,path_sep,loader, environ_set_command, county_process_command)
+VALUES('windows', '%WGETTOOL%', '%PGBIN%', 
+E'set TMPDIR=${staging_fold}\\temp\\
+set UNZIPTOOL="C:\\Program Files\\7-Zip\\7z.exe"
+set WGETTOOL="C:\\wget\\wget.exe"
+set PGBIN=C:\\Program Files\\PostgreSQL\\8.4\\bin\\
+set PGPORT=5432
+set PGHOST=localhost
+set PGUSER=postgres
+set PGPASSWORD=yourpasswordhere
+set PGDATABASE=geocoder
+set PSQL="%PGBIN%psql"
+set SHP2PGSQL="%PGBIN%shp2pgsql"
+cd ${staging_fold}
+', E'del %TMPDIR%\\*.* /Q
+%PSQL% -c "DROP SCHEMA ${staging_schema} CASCADE;"
+%PSQL% -c "CREATE SCHEMA ${staging_schema};"
+for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% 
+cd %TMPDIR%', E'%PSQL%', E'\\', E'%SHP2PGSQL%', 'set ', 
+'for /r %%z in (*${table_name}.dbf) do (${loader} -D -s 4269 -g the_geom -W "latin1" %%z tiger_staging.${state_abbrev}_${table_name} | ${psql} & ${psql} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));")'
+);
+
+
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql, path_sep, loader, environ_set_command, county_process_command)
+VALUES('sh', 'wget', '', 
+E'TMPDIR="${staging_fold}/temp/"
+UNZIPTOOL=unzip
+WGETTOOL="/usr/bin/wget"
+export PGBIN=/usr/pgsql-9.0/bin
+export PGPORT=5432
+export PGHOST=localhost
+export PGUSER=postgres
+export PGPASSWORD=yourpasswordhere
+export PGDATABASE=geocoder
+PSQL=${PGBIN}/psql
+SHP2PGSQL=${PGBIN}/shp2pgsql
+cd ${staging_fold}
+', E'rm -f ${TMPDIR}/*.*
+${PSQL} -c "DROP SCHEMA tiger_staging CASCADE;"
+${PSQL} -c "CREATE SCHEMA tiger_staging;"
+
+for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+for z in */*.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+cd $TMPDIR;\n', '${PSQL}', '/', '${SHP2PGSQL}', 'export ',
+'for z in *${table_name}.dbf; do 
+${loader} -D -s 4269 -g the_geom -W "latin1" $z ${staging_schema}.${state_abbrev}_${table_name} | ${psql} 
+${PSQL} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));"
+done');
+
+-- variables table
+DROP TABLE IF EXISTS loader_variables;
+CREATE TABLE loader_variables(tiger_year varchar(4) PRIMARY KEY, website_root text, staging_fold text, data_schema text, staging_schema text);
+INSERT INTO loader_variables(tiger_year, website_root , staging_fold, data_schema, staging_schema)
+	VALUES('2011', 'ftp://ftp2.census.gov/geo/tiger/TIGER2011', '/gisdata', 'tiger_data', 'tiger_staging');
+GRANT SELECT ON TABLE loader_variables TO public;
+
+DROP TABLE IF EXISTS loader_lookuptables;
+CREATE TABLE loader_lookuptables(process_order integer NOT NULL DEFAULT 1000, 
+		lookup_name text primary key, 
+		table_name text, single_mode boolean NOT NULL DEFAULT true, 
+		load boolean NOT NULL DEFAULT true, 
+		level_county boolean NOT NULL DEFAULT false, 
+		level_state boolean NOT NULL DEFAULT false,
+		level_nation boolean NOT NULL DEFAULT false,
+		post_load_process text, single_geom_mode boolean DEFAULT false, 
+		insert_mode char(1) NOT NULL DEFAULT 'c', 
+		pre_load_process text,columns_exclude text[], website_root_override text);
+		
+GRANT SELECT ON TABLE loader_lookuptables TO public;
+		
+-- put in explanatory comments of what each column is for
+COMMENT ON COLUMN loader_lookuptables.lookup_name IS 'This is the table name to inherit from and suffix of resulting output table -- how the table will be named --  edges here would mean -- ma_edges , pa_edges etc. except in the case of national tables. national level tables have no prefix';
+COMMENT ON COLUMN loader_lookuptables.level_nation IS 'These are tables that contain all data for the whole US so there is just a single file';
+COMMENT ON COLUMN loader_lookuptables.table_name IS 'suffix of the tables to load e.g.  edges would load all tables like *edges.dbf(shp)  -- so tl_2010_42129_edges.dbf .  ';
+COMMENT ON COLUMN loader_lookuptables.load IS 'Whether or not to load the table.  For states and zcta5 (you may just want to download states10, zcta510 nationwide file manually) load your own into a single table that inherits from tiger.states, tiger.zcta5.  You''ll get improved performance for some geocoding cases.';
+COMMENT ON COLUMN loader_lookuptables.columns_exclude IS 'List of columns to exclude as an array. This is excluded from both input table and output table and rest of columns remaining are assumed to be in same order in both tables. gid, geoid,cpi,suffix1ce are excluded if no columns are specified.';
+COMMENT ON COLUMN loader_lookuptables.website_root_override IS 'Path to use for wget instead of that specified in year table.  Needed currently for zcta where they release that only for 2000 and 2010';
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state,  level_nation, single_geom_mode, pre_load_process, post_load_process)
+VALUES(2, 'county_all', 'county', true, false, false, true,
+	false, '${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${data_schema}_${lookup_name} PRIMARY KEY (cntyidfp),CONSTRAINT uidx_${data_schema}_${lookup_name}_gid UNIQUE (gid)  ) INHERITS(county); " ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${table_name} RENAME geoid TO cntyidfp;  SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}''));"
+	${psql} -c "CREATE INDEX ${data_schema}_${table_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE UNIQUE INDEX uidx_${data_schema}_${lookup_name}_statefp_countyfp ON ${data_schema}.${lookup_name} USING btree(statefp,countyfp);"
+	${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}_lookup ( CONSTRAINT pk_${lookup_name}_lookup PRIMARY KEY (st_code, co_code)) INHERITS (county_lookup);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name};"
+	${psql} -c "INSERT INTO ${data_schema}.${lookup_name}_lookup(st_code, state, co_code, name) SELECT CAST(s.statefp as integer), s.abbrev, CAST(c.countyfp as integer), c.name FROM ${data_schema}.${lookup_name} As c INNER JOIN state_lookup As s ON s.statefp = c.statefp;"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}_lookup;" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(1, 'state_all', 'state', true, false, false,true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${lookup_name} PRIMARY KEY (statefp),CONSTRAINT uidx_${lookup_name}_stusps  UNIQUE (stusps), CONSTRAINT uidx_${lookup_name}_gid UNIQUE (gid) ) INHERITS(state); "',
+	'${psql} -c "SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}'')); "
+	${psql} -c "CREATE INDEX ${data_schema}_${lookup_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}"' );
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(3, 'place', 'place', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (plcidfp) ) INHERITS(place);" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO plcidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid);"
+${psql} -c "CREATE INDEX idx_${state_abbrev}_${lookup_name}_soundex_name ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (soundex(name));" 
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"'  
+	);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(4, 'cousub', 'cousub', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (cosbidfp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO cosbidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree(countyfp);"');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude, website_root_override  )
+-- this is a bit of a lie that its county.  It's really state but works better with column routine
+VALUES(4, 'zcta5', 'zcta510', true,true, false,false, false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (zcta5ce,statefp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"'
+, ARRAY['gid','geoid','geoid10'], 'ftp://ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010');
+
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(6, 'faces', 'faces', true, true, false,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfid ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (tfid);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"');
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(7, 'featnames', 'featnames', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+'${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_snd_name ON ${data_schema}.${state_abbrev}_${table_name} USING btree (soundex(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_lname ON ${data_schema}.${state_abbrev}_${table_name} USING btree (lower(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid,statefp);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid','statefp']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(8, 'edges', 'edges', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});" ',
+'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}tfidr ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidr);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfidl ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidl);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${table_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_zipl ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (zipl);"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state_loc(CONSTRAINT pk_${state_abbrev}_zip_state_loc PRIMARY KEY(zip,stusps,place)) INHERITS(zip_state_loc);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state_loc(zip,stusps,statefp,place) SELECT DISTINCT e.zipl, ''${state_abbrev}'', ''${state_fips}'', p.name FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As p ON(f.statefp = p.statefp AND f.placefp = p.placefp ) WHERE e.zipl IS NOT NULL;"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_state_loc_place ON ${data_schema}.${state_abbrev}_zip_state_loc USING btree(soundex(place));"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state_loc ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_zip_state_loc;"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_lookup_base(CONSTRAINT pk_${state_abbrev}_zip_state_loc_city PRIMARY KEY(zip,state, county, city, statefp)) INHERITS(zip_lookup_base);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_lookup_base(zip,state,county,city, statefp) SELECT DISTINCT e.zipl, ''${state_abbrev}'', c.name,p.name,''${state_fips}''  FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN tiger.county As c  ON (e.countyfp = c.countyfp AND e.statefp = c.statefp AND e.statefp = ''${state_fips}'') INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As [...]
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_lookup_base ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_lookup_base_citysnd ON ${data_schema}.${state_abbrev}_zip_lookup_base USING btree(soundex(city));" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addr', 'addr', true, true, false,false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_least_address ON tiger_data.${state_abbrev}_addr USING btree (least_hn(fromhn,tohn) );"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid, statefp);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_zip ON ${data_schema}.${state_abbrev}_${table_name} USING btree (zip);"
+	${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state(CONSTRAINT pk_${state_abbrev}_zip_state PRIMARY KEY(zip,stusps)) INHERITS(zip_state); "
+	${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state(zip,stusps,statefp) SELECT DISTINCT zip, ''${state_abbrev}'', ''${state_fips}'' FROM ${data_schema}.${state_abbrev}_${lookup_name} WHERE zip is not null;"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addrfeat', 'addrfeat', false, true, false,true, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+
+CREATE OR REPLACE FUNCTION loader_generate_nation_script(os text)
+  RETURNS SETOF text AS
+$BODY$
+WITH lu AS (SELECT lookup_name, table_name, pre_load_process,post_load_process, process_order, insert_mode, single_geom_mode, level_nation, level_county, level_state
+    FROM  loader_lookuptables 
+				WHERE level_nation = true AND load = true)
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'website_root', 'psql',  'data_schema', 'staging_schema'], 
+				ARRAY[variables.staging_fold, variables.website_root, platform.psql, variables.data_schema, variables.staging_schema]
+			), '/', platform.path_sep) || '
+'  ||
+	-- Nation level files
+	array_to_string( ARRAY(SELECT loader_macro_replace('cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || variables.website_root  || '/' || upper(table_name)  || '/ --no-parent --relative --recursive --level=1 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(variables.website_root, 'http://', ''),'ftp://','')  || '/' || upper(table_name)  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*' || table_name || '.zip ') || '
+' || COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year 
+	|| '_us_' || lu.table_name || '.dbf tiger_staging.' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ]
+			)
+				FROM lu
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'website_root'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, variables.website_root])
+			AS shell_code
+FROM loader_variables As variables
+	 CROSS JOIN loader_platform As platform
+WHERE platform.os = $1 -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+  
+CREATE OR REPLACE FUNCTION loader_generate_script(param_states text[], os text)
+  RETURNS SETOF text AS
+$BODY$
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
+				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
+			), '/', platform.path_sep) || '
+' ||
+	-- State level files - if an override website is specified we use that instead of variable one
+	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
+	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
+				FROM loader_lookuptables AS lu
+				WHERE level_state = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	-- County Level files
+	|| E'\n' ||
+		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
+				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
+				FROM loader_lookuptables AS lu
+				WHERE level_county = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
+			AS shell_code
+FROM loader_variables As variables
+		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
+			 lpad(st_code::text,2,'0') || '_' 
+	|| replace(name, ' ', '_') As state_fold
+FROM state_lookup) As s CROSS JOIN loader_platform As platform
+WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
+AND platform.os = $2  -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text, param_columns_exclude text[]) RETURNS integer
+AS
+$$
+DECLARE 
+	var_sql text;
+	var_staging_schema text; var_data_schema text;
+	var_temp text;
+	var_num_records bigint;
+BEGIN
+-- Add all the fields except geoid and gid
+-- Assume all the columns are in same order as target
+	SELECT staging_schema, data_schema INTO var_staging_schema, var_data_schema FROM loader_variables;
+	var_sql := 'INSERT INTO ' || var_data_schema || '.' || quote_ident(param_target_table) || '(' ||
+			array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_target_table
+					AND table_schema = var_data_schema 
+					AND column_name <> ALL(param_columns_exclude) ), ',') || ') SELECT ' 
+					|| array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_staging_table
+					AND table_schema = var_staging_schema 
+					AND column_name <> ALL( param_columns_exclude) ), ',') ||' FROM ' 
+					|| var_staging_schema || '.' || param_staging_table || ';';
+	RAISE NOTICE '%', var_sql;
+	EXECUTE (var_sql);
+	GET DIAGNOSTICS var_num_records = ROW_COUNT;
+	SELECT DropGeometryTable(var_staging_schema,param_staging_table) INTO var_temp;
+	RETURN var_num_records;
+END;
+$$
+LANGUAGE 'plpgsql' VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text) 
+RETURNS integer AS
+$$
+-- exclude this set list of columns if no exclusion list is specified 
+   SELECT  loader_load_staged_data($1, $2,(SELECT COALESCE(columns_exclude,ARRAY['gid', 'geoid','cpi','suffix1ce', 'statefp00', 'statefp10', 'countyfp00','countyfp10'
+   ,'tractce00','tractce10', 'blkgrpce00', 'blkgrpce10', 'blockce00', 'blockce10'
+      , 'cousubfp00', 'submcdfp00', 'conctyfp00', 'placefp00', 'aiannhfp00', 'aiannhce00', 
+       'comptyp00', 'trsubfp00', 'trsubce00', 'anrcfp00', 'elsdlea00', 'scsdlea00', 
+       'unsdlea00', 'uace00', 'cd108fp', 'sldust00', 'sldlst00', 'vtdst00', 'zcta5ce00', 
+       'tazce00', 'ugace00', 'puma5ce00','vtdst10','tazce10','uace10','puma5ce10','tazce', 'uace', 'vtdst', 'zcta5ce', 'zcta5ce10', 'puma5ce']) FROM loader_lookuptables WHERE $2 LIKE '%' || lookup_name))
+$$
+language 'sql' VOLATILE;
+COMMIT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_loader_2012.sql b/extras/tiger_geocoder/tiger_loader_2012.sql
new file mode 100644
index 0000000..11f621f
--- /dev/null
+++ b/extras/tiger_geocoder/tiger_loader_2012.sql
@@ -0,0 +1,406 @@
+--
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2010, 2011, 2012 Regina Obe and Leo Hsu 
+-- Paragon Corporation
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
+--  
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SELECT tiger.SetSearchPathForInstall('tiger');
+BEGIN;
+CREATE OR REPLACE FUNCTION loader_macro_replace(param_input text, param_keys text[],param_values text[]) 
+RETURNS text AS
+$$
+	DECLARE var_result text = param_input;
+	DECLARE var_count integer = array_upper(param_keys,1);
+	BEGIN
+		FOR i IN 1..var_count LOOP
+			var_result := replace(var_result, '${' || param_keys[i] || '}', param_values[i]);
+		END LOOP;
+		return var_result;
+	END;
+$$
+  LANGUAGE 'plpgsql' IMMUTABLE
+  COST 100;
+
+-- Helper function that generates script to drop all tables in a particular schema for a particular table
+-- This is useful in case you need to reload a state
+CREATE OR REPLACE FUNCTION drop_state_tables_generate_script(param_state text, param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $2 AND table_name like lower($1) || '_%' ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+-- Helper function that generates script to drop all nation tables (county, state) in a particular schema 
+-- This is useful for loading 2011 because state and county tables aren't broken out into separate state files
+DROP FUNCTION IF EXISTS drop_national_tables_generate_script(text);
+CREATE OR REPLACE FUNCTION drop_nation_tables_generate_script(param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $1 AND (table_name ~ E'^[a-z]{2}\_county' or table_name ~ E'^[a-z]{2}\_state' or table_name = 'state_all' or table_name LIKE 'county_all%') ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+DO 
+$$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_platform' AND table_schema = 'tiger') THEN
+      CREATE TABLE loader_platform(os varchar(50) PRIMARY KEY, declare_sect text, pgbin text, wget text, unzip_command text, psql text, path_sep text, loader text, environ_set_command text, county_process_command text);     
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+DO 
+$$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = 'tiger_data') THEN
+       CREATE SCHEMA tiger_data;     
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+
+DELETE FROM loader_platform WHERE os IN ('sh', 'windows');
+GRANT SELECT ON TABLE loader_platform TO public;
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql,path_sep,loader, environ_set_command, county_process_command)
+VALUES('windows', '%WGETTOOL%', '%PGBIN%', 
+E'set TMPDIR=${staging_fold}\\temp\\
+set UNZIPTOOL="C:\\Program Files\\7-Zip\\7z.exe"
+set WGETTOOL="C:\\wget\\wget.exe"
+set PGBIN=C:\\Program Files\\PostgreSQL\\9.2\\bin\\
+set PGPORT=5432
+set PGHOST=localhost
+set PGUSER=postgres
+set PGPASSWORD=yourpasswordhere
+set PGDATABASE=geocoder
+set PSQL="%PGBIN%psql"
+set SHP2PGSQL="%PGBIN%shp2pgsql"
+cd ${staging_fold}
+', E'del %TMPDIR%\\*.* /Q
+%PSQL% -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
+%PSQL% -c "CREATE SCHEMA ${staging_schema};"
+%PSQL% -c "DO language ''plpgsql'' $$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = ''${data_schema}'' ) THEN CREATE SCHEMA ${data_schema}; END IF;  END $$"
+for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% 
+cd %TMPDIR%', E'%PSQL%', E'\\', E'%SHP2PGSQL%', 'set ', 
+'for /r %%z in (*${table_name}.dbf) do (${loader} -D -s 4269 -g the_geom -W "latin1" %%z tiger_staging.${state_abbrev}_${table_name} | ${psql} & ${psql} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));")'
+);
+
+
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql, path_sep, loader, environ_set_command, county_process_command)
+VALUES('sh', 'wget', '', 
+E'TMPDIR="${staging_fold}/temp/"
+UNZIPTOOL=unzip
+WGETTOOL="/usr/bin/wget"
+export PGBIN=/usr/pgsql-9.0/bin
+export PGPORT=5432
+export PGHOST=localhost
+export PGUSER=postgres
+export PGPASSWORD=yourpasswordhere
+export PGDATABASE=geocoder
+PSQL=${PGBIN}/psql
+SHP2PGSQL=${PGBIN}/shp2pgsql
+cd ${staging_fold}
+', E'rm -f ${TMPDIR}/*.*
+${PSQL} -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
+${PSQL} -c "CREATE SCHEMA ${staging_schema};"
+for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+for z in */*.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+cd $TMPDIR;\n', '${PSQL}', '/', '${SHP2PGSQL}', 'export ',
+'for z in *${table_name}.dbf; do 
+${loader} -D -s 4269 -g the_geom -W "latin1" $z ${staging_schema}.${state_abbrev}_${table_name} | ${psql} 
+${PSQL} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));"
+done');
+
+-- variables table
+DO $$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_variables' AND table_schema = 'tiger') THEN
+      CREATE TABLE loader_variables(tiger_year varchar(4) PRIMARY KEY, website_root text, staging_fold text, data_schema text, staging_schema text);    
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+TRUNCATE TABLE loader_variables;
+INSERT INTO loader_variables(tiger_year, website_root , staging_fold, data_schema, staging_schema)
+	VALUES('2012', 'ftp://ftp2.census.gov/geo/tiger/TIGER2012', '/gisdata', 'tiger_data', 'tiger_staging');
+GRANT SELECT ON TABLE loader_variables TO public;
+
+DO $$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_lookuptables' AND table_schema = 'tiger') THEN
+   CREATE TABLE loader_lookuptables(process_order integer NOT NULL DEFAULT 1000, 
+		lookup_name text primary key, 
+		table_name text, single_mode boolean NOT NULL DEFAULT true, 
+		load boolean NOT NULL DEFAULT true, 
+		level_county boolean NOT NULL DEFAULT false, 
+		level_state boolean NOT NULL DEFAULT false,
+		level_nation boolean NOT NULL DEFAULT false,
+		post_load_process text, single_geom_mode boolean DEFAULT false, 
+		insert_mode char(1) NOT NULL DEFAULT 'c', 
+		pre_load_process text,columns_exclude text[], website_root_override text);   
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+TRUNCATE TABLE loader_lookuptables;
+
+		
+GRANT SELECT ON TABLE loader_lookuptables TO public;
+		
+-- put in explanatory comments of what each column is for
+COMMENT ON COLUMN loader_lookuptables.lookup_name IS 'This is the table name to inherit from and suffix of resulting output table -- how the table will be named --  edges here would mean -- ma_edges , pa_edges etc. except in the case of national tables. national level tables have no prefix';
+COMMENT ON COLUMN loader_lookuptables.level_nation IS 'These are tables that contain all data for the whole US so there is just a single file';
+COMMENT ON COLUMN loader_lookuptables.table_name IS 'suffix of the tables to load e.g.  edges would load all tables like *edges.dbf(shp)  -- so tl_2010_42129_edges.dbf .  ';
+COMMENT ON COLUMN loader_lookuptables.load IS 'Whether or not to load the table.  For states and zcta5 (you may just want to download states10, zcta510 nationwide file manually) load your own into a single table that inherits from tiger.states, tiger.zcta5.  You''ll get improved performance for some geocoding cases.';
+COMMENT ON COLUMN loader_lookuptables.columns_exclude IS 'List of columns to exclude as an array. This is excluded from both input table and output table and rest of columns remaining are assumed to be in same order in both tables. gid, geoid,cpi,suffix1ce are excluded if no columns are specified.';
+COMMENT ON COLUMN loader_lookuptables.website_root_override IS 'Path to use for wget instead of that specified in year table.  Needed currently for zcta where they release that only for 2000 and 2010';
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state,  level_nation, single_geom_mode, pre_load_process, post_load_process)
+VALUES(2, 'county_all', 'county', true, false, false, true,
+	false, '${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${data_schema}_${lookup_name} PRIMARY KEY (cntyidfp),CONSTRAINT uidx_${data_schema}_${lookup_name}_gid UNIQUE (gid)  ) INHERITS(county); " ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${table_name} RENAME geoid TO cntyidfp;  SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}''));"
+	${psql} -c "CREATE INDEX ${data_schema}_${table_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE UNIQUE INDEX uidx_${data_schema}_${lookup_name}_statefp_countyfp ON ${data_schema}.${lookup_name} USING btree(statefp,countyfp);"
+	${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}_lookup ( CONSTRAINT pk_${lookup_name}_lookup PRIMARY KEY (st_code, co_code)) INHERITS (county_lookup);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name};"
+	${psql} -c "INSERT INTO ${data_schema}.${lookup_name}_lookup(st_code, state, co_code, name) SELECT CAST(s.statefp as integer), s.abbrev, CAST(c.countyfp as integer), c.name FROM ${data_schema}.${lookup_name} As c INNER JOIN state_lookup As s ON s.statefp = c.statefp;"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}_lookup;" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(1, 'state_all', 'state', true, false, false,true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${lookup_name} PRIMARY KEY (statefp),CONSTRAINT uidx_${lookup_name}_stusps  UNIQUE (stusps), CONSTRAINT uidx_${lookup_name}_gid UNIQUE (gid) ) INHERITS(state); "',
+	'${psql} -c "SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}'')); "
+	${psql} -c "CREATE INDEX ${data_schema}_${lookup_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}"' );
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(3, 'place', 'place', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (plcidfp) ) INHERITS(place);" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO plcidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid);"
+${psql} -c "CREATE INDEX idx_${state_abbrev}_${lookup_name}_soundex_name ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (soundex(name));" 
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"'  
+	);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(4, 'cousub', 'cousub', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (cosbidfp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO cosbidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree(countyfp);"');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude, website_root_override  )
+-- this is a bit of a lie that its county.  It's really state but works better with column routine
+VALUES(4, 'zcta5', 'zcta510', true,true, false,false, false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (zcta5ce,statefp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"'
+, ARRAY['gid','geoid','geoid10'], 'ftp://ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010');
+
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(6, 'faces', 'faces', true, true, false,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfid ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (tfid);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"');
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(7, 'featnames', 'featnames', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+'${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_snd_name ON ${data_schema}.${state_abbrev}_${table_name} USING btree (soundex(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_lname ON ${data_schema}.${state_abbrev}_${table_name} USING btree (lower(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid,statefp);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid','statefp']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(8, 'edges', 'edges', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});" ',
+'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}tfidr ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidr);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfidl ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidl);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${table_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_zipl ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (zipl);"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state_loc(CONSTRAINT pk_${state_abbrev}_zip_state_loc PRIMARY KEY(zip,stusps,place)) INHERITS(zip_state_loc);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state_loc(zip,stusps,statefp,place) SELECT DISTINCT e.zipl, ''${state_abbrev}'', ''${state_fips}'', p.name FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As p ON(f.statefp = p.statefp AND f.placefp = p.placefp ) WHERE e.zipl IS NOT NULL;"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_state_loc_place ON ${data_schema}.${state_abbrev}_zip_state_loc USING btree(soundex(place));"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state_loc ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_zip_state_loc;"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_lookup_base(CONSTRAINT pk_${state_abbrev}_zip_state_loc_city PRIMARY KEY(zip,state, county, city, statefp)) INHERITS(zip_lookup_base);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_lookup_base(zip,state,county,city, statefp) SELECT DISTINCT e.zipl, ''${state_abbrev}'', c.name,p.name,''${state_fips}''  FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN tiger.county As c  ON (e.countyfp = c.countyfp AND e.statefp = c.statefp AND e.statefp = ''${state_fips}'') INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As [...]
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_lookup_base ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_lookup_base_citysnd ON ${data_schema}.${state_abbrev}_zip_lookup_base USING btree(soundex(city));" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addr', 'addr', true, true, false,false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_least_address ON tiger_data.${state_abbrev}_addr USING btree (least_hn(fromhn,tohn) );"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid, statefp);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_zip ON ${data_schema}.${state_abbrev}_${table_name} USING btree (zip);"
+	${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state(CONSTRAINT pk_${state_abbrev}_zip_state PRIMARY KEY(zip,stusps)) INHERITS(zip_state); "
+	${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state(zip,stusps,statefp) SELECT DISTINCT zip, ''${state_abbrev}'', ''${state_fips}'' FROM ${data_schema}.${state_abbrev}_${lookup_name} WHERE zip is not null;"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addrfeat', 'addrfeat', false, true, false,true, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+
+CREATE OR REPLACE FUNCTION loader_generate_nation_script(os text)
+  RETURNS SETOF text AS
+$BODY$
+WITH lu AS (SELECT lookup_name, table_name, pre_load_process,post_load_process, process_order, insert_mode, single_geom_mode, level_nation, level_county, level_state
+    FROM  loader_lookuptables 
+				WHERE level_nation = true AND load = true)
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'website_root', 'psql',  'data_schema', 'staging_schema'], 
+				ARRAY[variables.staging_fold, variables.website_root, platform.psql, variables.data_schema, variables.staging_schema]
+			), '/', platform.path_sep) || '
+'  ||
+	-- Nation level files
+	array_to_string( ARRAY(SELECT loader_macro_replace('cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || variables.website_root  || '/' || upper(table_name)  || '/ --no-parent --relative --recursive --level=1 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(variables.website_root, 'http://', ''),'ftp://','')  || '/' || upper(table_name)  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*' || table_name || '.zip ') || '
+' || COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year 
+	|| '_us_' || lu.table_name || '.dbf tiger_staging.' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ]
+			)
+				FROM lu
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'website_root'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, variables.website_root])
+			AS shell_code
+FROM loader_variables As variables
+	 CROSS JOIN loader_platform As platform
+WHERE platform.os = $1 -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+  
+CREATE OR REPLACE FUNCTION loader_generate_script(param_states text[], os text)
+  RETURNS SETOF text AS
+$BODY$
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
+				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
+			), '/', platform.path_sep) || '
+' ||
+	-- State level files - if an override website is specified we use that instead of variable one
+	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/tl_*_' || s.state_fips || '_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
+	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
+				FROM loader_lookuptables AS lu
+				WHERE level_state = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	-- County Level files
+	|| E'\n' ||
+		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
+				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
+				FROM loader_lookuptables AS lu
+				WHERE level_county = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
+			AS shell_code
+FROM loader_variables As variables
+		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
+			 lpad(st_code::text,2,'0') || '_' 
+	|| replace(name, ' ', '_') As state_fold
+FROM state_lookup) As s CROSS JOIN loader_platform As platform
+WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
+AND platform.os = $2  -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text, param_columns_exclude text[]) RETURNS integer
+AS
+$$
+DECLARE 
+	var_sql text;
+	var_staging_schema text; var_data_schema text;
+	var_temp text;
+	var_num_records bigint;
+BEGIN
+-- Add all the fields except geoid and gid
+-- Assume all the columns are in same order as target
+	SELECT staging_schema, data_schema INTO var_staging_schema, var_data_schema FROM loader_variables;
+	var_sql := 'INSERT INTO ' || var_data_schema || '.' || quote_ident(param_target_table) || '(' ||
+			array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_target_table
+					AND table_schema = var_data_schema 
+					AND column_name <> ALL(param_columns_exclude) ), ',') || ') SELECT ' 
+					|| array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_staging_table
+					AND table_schema = var_staging_schema 
+					AND column_name <> ALL( param_columns_exclude) ), ',') ||' FROM ' 
+					|| var_staging_schema || '.' || param_staging_table || ';';
+	RAISE NOTICE '%', var_sql;
+	EXECUTE (var_sql);
+	GET DIAGNOSTICS var_num_records = ROW_COUNT;
+	SELECT DropGeometryTable(var_staging_schema,param_staging_table) INTO var_temp;
+	RETURN var_num_records;
+END;
+$$
+LANGUAGE 'plpgsql' VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text) 
+RETURNS integer AS
+$$
+-- exclude this set list of columns if no exclusion list is specified 
+
+   SELECT  loader_load_staged_data($1, $2,(SELECT COALESCE(columns_exclude,ARRAY['gid', 'geoid','cpi','suffix1ce', 'statefp00', 'statefp10', 'countyfp00','countyfp10'
+   ,'tractce00','tractce10', 'blkgrpce00', 'blkgrpce10', 'blockce00', 'blockce10'
+      , 'cousubfp00', 'submcdfp00', 'conctyfp00', 'placefp00', 'aiannhfp00', 'aiannhce00', 
+       'comptyp00', 'trsubfp00', 'trsubce00', 'anrcfp00', 'elsdlea00', 'scsdlea00', 
+       'unsdlea00', 'uace00', 'cd108fp', 'sldust00', 'sldlst00', 'vtdst00', 'zcta5ce00', 
+       'tazce00', 'ugace00', 'puma5ce00','vtdst10','tazce10','uace10','puma5ce10','tazce', 'uace', 'vtdst', 'zcta5ce', 'zcta5ce10', 'puma5ce', 'ugace10','pumace10', 'estatefp', 'ugace']) FROM loader_lookuptables WHERE $2 LIKE '%' || lookup_name))
+$$
+language 'sql' VOLATILE;
+COMMIT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_loader_2013.sql b/extras/tiger_geocoder/tiger_loader_2013.sql
new file mode 100644
index 0000000..da65bc5
--- /dev/null
+++ b/extras/tiger_geocoder/tiger_loader_2013.sql
@@ -0,0 +1,405 @@
+--
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2010, 2011, 2012 Regina Obe and Leo Hsu 
+-- Paragon Corporation
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
+--  
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SELECT tiger.SetSearchPathForInstall('tiger');
+BEGIN;
+CREATE OR REPLACE FUNCTION loader_macro_replace(param_input text, param_keys text[],param_values text[]) 
+RETURNS text AS
+$$
+	DECLARE var_result text = param_input;
+	DECLARE var_count integer = array_upper(param_keys,1);
+	BEGIN
+		FOR i IN 1..var_count LOOP
+			var_result := replace(var_result, '${' || param_keys[i] || '}', param_values[i]);
+		END LOOP;
+		return var_result;
+	END;
+$$
+  LANGUAGE 'plpgsql' IMMUTABLE
+  COST 100;
+
+-- Helper function that generates script to drop all tables in a particular schema for a particular table
+-- This is useful in case you need to reload a state
+CREATE OR REPLACE FUNCTION drop_state_tables_generate_script(param_state text, param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $2 AND table_name like lower($1) || '_%' ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+-- Helper function that generates script to drop all nation tables (county, state) in a particular schema 
+-- This is useful for loading 2011 because state and county tables aren't broken out into separate state files
+DROP FUNCTION IF EXISTS drop_national_tables_generate_script(text);
+CREATE OR REPLACE FUNCTION drop_nation_tables_generate_script(param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $1 AND (table_name ~ E'^[a-z]{2}\_county' or table_name ~ E'^[a-z]{2}\_state' or table_name = 'state_all' or table_name LIKE 'county_all%') ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+DO 
+$$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_platform' AND table_schema = 'tiger') THEN
+      CREATE TABLE loader_platform(os varchar(50) PRIMARY KEY, declare_sect text, pgbin text, wget text, unzip_command text, psql text, path_sep text, loader text, environ_set_command text, county_process_command text);     
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+DO 
+$$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = 'tiger_data') THEN
+       CREATE SCHEMA tiger_data;     
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+
+DELETE FROM loader_platform WHERE os IN ('sh', 'windows');
+GRANT SELECT ON TABLE loader_platform TO public;
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql,path_sep,loader, environ_set_command, county_process_command)
+VALUES('windows', '%WGETTOOL%', '%PGBIN%', 
+E'set TMPDIR=${staging_fold}\\temp\\
+set UNZIPTOOL="C:\\Program Files\\7-Zip\\7z.exe"
+set WGETTOOL="C:\\wget\\wget.exe"
+set PGBIN=C:\\Program Files\\PostgreSQL\\9.2\\bin\\
+set PGPORT=5432
+set PGHOST=localhost
+set PGUSER=postgres
+set PGPASSWORD=yourpasswordhere
+set PGDATABASE=geocoder
+set PSQL="%PGBIN%psql"
+set SHP2PGSQL="%PGBIN%shp2pgsql"
+cd ${staging_fold}
+', E'del %TMPDIR%\\*.* /Q
+%PSQL% -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
+%PSQL% -c "CREATE SCHEMA ${staging_schema};"
+%PSQL% -c "DO language ''plpgsql'' $$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = ''${data_schema}'' ) THEN CREATE SCHEMA ${data_schema}; END IF;  END $$"
+for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% 
+cd %TMPDIR%', E'%PSQL%', E'\\', E'%SHP2PGSQL%', 'set ', 
+'for /r %%z in (*${table_name}.dbf) do (${loader} -D -s 4269 -g the_geom -W "latin1" %%z tiger_staging.${state_abbrev}_${table_name} | ${psql} & ${psql} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));")'
+);
+
+
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql, path_sep, loader, environ_set_command, county_process_command)
+VALUES('sh', 'wget', '', 
+E'TMPDIR="${staging_fold}/temp/"
+UNZIPTOOL=unzip
+WGETTOOL="/usr/bin/wget"
+export PGBIN=/usr/pgsql-9.0/bin
+export PGPORT=5432
+export PGHOST=localhost
+export PGUSER=postgres
+export PGPASSWORD=yourpasswordhere
+export PGDATABASE=geocoder
+PSQL=${PGBIN}/psql
+SHP2PGSQL=${PGBIN}/shp2pgsql
+cd ${staging_fold}
+', E'rm -f ${TMPDIR}/*.*
+${PSQL} -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
+${PSQL} -c "CREATE SCHEMA ${staging_schema};"
+for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+for z in */*.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+cd $TMPDIR;\n', '${PSQL}', '/', '${SHP2PGSQL}', 'export ',
+'for z in *${table_name}.dbf; do 
+${loader} -D -s 4269 -g the_geom -W "latin1" $z ${staging_schema}.${state_abbrev}_${table_name} | ${psql} 
+${PSQL} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));"
+done');
+
+-- variables table
+DO $$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_variables' AND table_schema = 'tiger') THEN
+      CREATE TABLE loader_variables(tiger_year varchar(4) PRIMARY KEY, website_root text, staging_fold text, data_schema text, staging_schema text);    
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+TRUNCATE TABLE loader_variables;
+INSERT INTO loader_variables(tiger_year, website_root , staging_fold, data_schema, staging_schema)
+	VALUES('2013', 'ftp://ftp2.census.gov/geo/tiger/TIGER2013', '/gisdata', 'tiger_data', 'tiger_staging');
+GRANT SELECT ON TABLE loader_variables TO public;
+
+DO $$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_lookuptables' AND table_schema = 'tiger') THEN
+   CREATE TABLE loader_lookuptables(process_order integer NOT NULL DEFAULT 1000, 
+		lookup_name text primary key, 
+		table_name text, single_mode boolean NOT NULL DEFAULT true, 
+		load boolean NOT NULL DEFAULT true, 
+		level_county boolean NOT NULL DEFAULT false, 
+		level_state boolean NOT NULL DEFAULT false,
+		level_nation boolean NOT NULL DEFAULT false,
+		post_load_process text, single_geom_mode boolean DEFAULT false, 
+		insert_mode char(1) NOT NULL DEFAULT 'c', 
+		pre_load_process text,columns_exclude text[], website_root_override text);   
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+TRUNCATE TABLE loader_lookuptables;
+
+		
+GRANT SELECT ON TABLE loader_lookuptables TO public;
+		
+-- put in explanatory comments of what each column is for
+COMMENT ON COLUMN loader_lookuptables.lookup_name IS 'This is the table name to inherit from and suffix of resulting output table -- how the table will be named --  edges here would mean -- ma_edges , pa_edges etc. except in the case of national tables. national level tables have no prefix';
+COMMENT ON COLUMN loader_lookuptables.level_nation IS 'These are tables that contain all data for the whole US so there is just a single file';
+COMMENT ON COLUMN loader_lookuptables.table_name IS 'suffix of the tables to load e.g.  edges would load all tables like *edges.dbf(shp)  -- so tl_2010_42129_edges.dbf .  ';
+COMMENT ON COLUMN loader_lookuptables.load IS 'Whether or not to load the table.  For states and zcta5 (you may just want to download states10, zcta510 nationwide file manually) load your own into a single table that inherits from tiger.states, tiger.zcta5.  You''ll get improved performance for some geocoding cases.';
+COMMENT ON COLUMN loader_lookuptables.columns_exclude IS 'List of columns to exclude as an array. This is excluded from both input table and output table and rest of columns remaining are assumed to be in same order in both tables. gid, geoid,cpi,suffix1ce are excluded if no columns are specified.';
+COMMENT ON COLUMN loader_lookuptables.website_root_override IS 'Path to use for wget instead of that specified in year table.  Needed currently for zcta where they release that only for 2000 and 2010';
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state,  level_nation, single_geom_mode, pre_load_process, post_load_process)
+VALUES(2, 'county_all', 'county', true, false, false, true,
+	false, '${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${data_schema}_${lookup_name} PRIMARY KEY (cntyidfp),CONSTRAINT uidx_${data_schema}_${lookup_name}_gid UNIQUE (gid)  ) INHERITS(county); " ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${table_name} RENAME geoid TO cntyidfp;  SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}''));"
+	${psql} -c "CREATE INDEX ${data_schema}_${table_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE UNIQUE INDEX uidx_${data_schema}_${lookup_name}_statefp_countyfp ON ${data_schema}.${lookup_name} USING btree(statefp,countyfp);"
+	${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}_lookup ( CONSTRAINT pk_${lookup_name}_lookup PRIMARY KEY (st_code, co_code)) INHERITS (county_lookup);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name};"
+	${psql} -c "INSERT INTO ${data_schema}.${lookup_name}_lookup(st_code, state, co_code, name) SELECT CAST(s.statefp as integer), s.abbrev, CAST(c.countyfp as integer), c.name FROM ${data_schema}.${lookup_name} As c INNER JOIN state_lookup As s ON s.statefp = c.statefp;"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}_lookup;" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(1, 'state_all', 'state', true, false, false,true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${lookup_name} PRIMARY KEY (statefp),CONSTRAINT uidx_${lookup_name}_stusps  UNIQUE (stusps), CONSTRAINT uidx_${lookup_name}_gid UNIQUE (gid) ) INHERITS(state); "',
+	'${psql} -c "SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}'')); "
+	${psql} -c "CREATE INDEX ${data_schema}_${lookup_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}"' );
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(3, 'place', 'place', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (plcidfp) ) INHERITS(place);" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO plcidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid);"
+${psql} -c "CREATE INDEX idx_${state_abbrev}_${lookup_name}_soundex_name ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (soundex(name));" 
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"'  
+	);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(4, 'cousub', 'cousub', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (cosbidfp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO cosbidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree(countyfp);"');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude, website_root_override  )
+-- this is a bit of a lie that its county.  It's really state but works better with column routine
+VALUES(4, 'zcta5', 'zcta510', true,true, false,false, false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (zcta5ce,statefp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"'
+, ARRAY['gid','geoid','geoid10'], 'ftp://ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010');
+
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(6, 'faces', 'faces', true, true, false,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfid ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (tfid);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"');
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(7, 'featnames', 'featnames', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+'${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_snd_name ON ${data_schema}.${state_abbrev}_${table_name} USING btree (soundex(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_lname ON ${data_schema}.${state_abbrev}_${table_name} USING btree (lower(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid,statefp);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid','statefp']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(8, 'edges', 'edges', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});" ',
+'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}tfidr ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidr);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfidl ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidl);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${table_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_zipl ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (zipl);"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state_loc(CONSTRAINT pk_${state_abbrev}_zip_state_loc PRIMARY KEY(zip,stusps,place)) INHERITS(zip_state_loc);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state_loc(zip,stusps,statefp,place) SELECT DISTINCT e.zipl, ''${state_abbrev}'', ''${state_fips}'', p.name FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As p ON(f.statefp = p.statefp AND f.placefp = p.placefp ) WHERE e.zipl IS NOT NULL;"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_state_loc_place ON ${data_schema}.${state_abbrev}_zip_state_loc USING btree(soundex(place));"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state_loc ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_zip_state_loc;"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_lookup_base(CONSTRAINT pk_${state_abbrev}_zip_state_loc_city PRIMARY KEY(zip,state, county, city, statefp)) INHERITS(zip_lookup_base);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_lookup_base(zip,state,county,city, statefp) SELECT DISTINCT e.zipl, ''${state_abbrev}'', c.name,p.name,''${state_fips}''  FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN tiger.county As c  ON (e.countyfp = c.countyfp AND e.statefp = c.statefp AND e.statefp = ''${state_fips}'') INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As [...]
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_lookup_base ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_lookup_base_citysnd ON ${data_schema}.${state_abbrev}_zip_lookup_base USING btree(soundex(city));" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addr', 'addr', true, true, false,false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_least_address ON tiger_data.${state_abbrev}_addr USING btree (least_hn(fromhn,tohn) );"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid, statefp);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_zip ON ${data_schema}.${state_abbrev}_${table_name} USING btree (zip);"
+	${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state(CONSTRAINT pk_${state_abbrev}_zip_state PRIMARY KEY(zip,stusps)) INHERITS(zip_state); "
+	${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state(zip,stusps,statefp) SELECT DISTINCT zip, ''${state_abbrev}'', ''${state_fips}'' FROM ${data_schema}.${state_abbrev}_${lookup_name} WHERE zip is not null;"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addrfeat', 'addrfeat', false, true, false,true, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+
+CREATE OR REPLACE FUNCTION loader_generate_nation_script(os text)
+  RETURNS SETOF text AS
+$BODY$
+WITH lu AS (SELECT lookup_name, table_name, pre_load_process,post_load_process, process_order, insert_mode, single_geom_mode, level_nation, level_county, level_state
+    FROM  loader_lookuptables 
+				WHERE level_nation = true AND load = true)
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'website_root', 'psql',  'data_schema', 'staging_schema'], 
+				ARRAY[variables.staging_fold, variables.website_root, platform.psql, variables.data_schema, variables.staging_schema]
+			), '/', platform.path_sep) || '
+'  ||
+	-- Nation level files
+	array_to_string( ARRAY(SELECT loader_macro_replace('cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || variables.website_root  || '/' || upper(table_name)  || '/ --no-parent --relative --recursive --level=1 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(variables.website_root, 'http://', ''),'ftp://','')  || '/' || upper(table_name)  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*' || table_name || '.zip ') || '
+' || COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year 
+	|| '_us_' || lu.table_name || '.dbf tiger_staging.' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ]
+			)
+				FROM lu
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'website_root'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, variables.website_root])
+			AS shell_code
+FROM loader_variables As variables
+	 CROSS JOIN loader_platform As platform
+WHERE platform.os = $1 -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+  
+CREATE OR REPLACE FUNCTION loader_generate_script(param_states text[], os text)
+  RETURNS SETOF text AS
+$BODY$
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
+				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
+			), '/', platform.path_sep) || '
+' ||
+	-- State level files - if an override website is specified we use that instead of variable one
+	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/tl_*_' || s.state_fips || '_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
+	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
+				FROM loader_lookuptables AS lu
+				WHERE level_state = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	-- County Level files
+	|| E'\n' ||
+		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/tl_*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
+				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
+				FROM loader_lookuptables AS lu
+				WHERE level_county = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
+			AS shell_code
+FROM loader_variables As variables
+		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
+			 lpad(st_code::text,2,'0') || '_' 
+	|| replace(name, ' ', '_') As state_fold
+FROM state_lookup) As s CROSS JOIN loader_platform As platform
+WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
+AND platform.os = $2  -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text, param_columns_exclude text[]) RETURNS integer
+AS
+$$
+DECLARE 
+	var_sql text;
+	var_staging_schema text; var_data_schema text;
+	var_temp text;
+	var_num_records bigint;
+BEGIN
+-- Add all the fields except geoid and gid
+-- Assume all the columns are in same order as target
+	SELECT staging_schema, data_schema INTO var_staging_schema, var_data_schema FROM loader_variables;
+	var_sql := 'INSERT INTO ' || var_data_schema || '.' || quote_ident(param_target_table) || '(' ||
+			array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_target_table
+					AND table_schema = var_data_schema 
+					AND column_name <> ALL(param_columns_exclude) ), ',') || ') SELECT ' 
+					|| array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_staging_table
+					AND table_schema = var_staging_schema 
+					AND column_name <> ALL( param_columns_exclude) ), ',') ||' FROM ' 
+					|| var_staging_schema || '.' || param_staging_table || ';';
+	RAISE NOTICE '%', var_sql;
+	EXECUTE (var_sql);
+	GET DIAGNOSTICS var_num_records = ROW_COUNT;
+	SELECT DropGeometryTable(var_staging_schema,param_staging_table) INTO var_temp;
+	RETURN var_num_records;
+END;
+$$
+LANGUAGE 'plpgsql' VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text) 
+RETURNS integer AS
+$$
+-- exclude this set list of columns if no exclusion list is specified 
+
+   SELECT  loader_load_staged_data($1, $2,(SELECT COALESCE(columns_exclude,ARRAY['gid', 'geoid','cpi','suffix1ce', 'statefp00', 'statefp10', 'countyfp00','countyfp10'
+   ,'tractce00','tractce10', 'blkgrpce00', 'blkgrpce10', 'blockce00', 'blockce10'
+      , 'cousubfp00', 'submcdfp00', 'conctyfp00', 'placefp00', 'aiannhfp00', 'aiannhce00', 
+       'comptyp00', 'trsubfp00', 'trsubce00', 'anrcfp00', 'elsdlea00', 'scsdlea00', 
+       'unsdlea00', 'uace00', 'cd108fp', 'sldust00', 'sldlst00', 'vtdst00', 'zcta5ce00', 
+       'tazce00', 'ugace00', 'puma5ce00','vtdst10','tazce10','uace10','puma5ce10','tazce', 'uace', 'vtdst', 'zcta5ce', 'zcta5ce10', 'puma5ce', 'ugace10','pumace10', 'estatefp', 'ugace']) FROM loader_lookuptables WHERE $2 LIKE '%' || lookup_name))
+$$
+language 'sql' VOLATILE;
+COMMIT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_loader_2014.sql b/extras/tiger_geocoder/tiger_loader_2014.sql
new file mode 100644
index 0000000..ac02c9b
--- /dev/null
+++ b/extras/tiger_geocoder/tiger_loader_2014.sql
@@ -0,0 +1,572 @@
+--
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2010, 2011, 2012 Regina Obe and Leo Hsu 
+-- Paragon Corporation
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
+--  
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SELECT tiger.SetSearchPathForInstall('tiger');
+BEGIN;
+CREATE OR REPLACE FUNCTION create_census_base_tables() 
+	RETURNS text AS
+$$
+DECLARE var_temp text; 
+BEGIN
+var_temp := tiger.SetSearchPathForInstall('tiger');
+IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND column_name = 'tract_id' AND table_name = 'tract')  THEN
+	-- census block group/tracts parent tables not created yet or an older version -- drop old if not in use, create new structure
+	DROP TABLE IF EXISTS tiger.tract;
+	CREATE TABLE tract
+	(
+	  gid serial NOT NULL,
+	  statefp varchar(2),
+	  countyfp varchar(3),
+	  tractce varchar(6),
+	  tract_id varchar(11) PRIMARY KEY,
+	  name varchar(7),
+	  namelsad varchar(20),
+	  mtfcc varchar(5),
+	  funcstat varchar(1),
+	  aland double precision,
+	  awater double precision,
+	  intptlat varchar(11),
+	  intptlon varchar(12),
+	  the_geom geometry,
+	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+	);
+	
+	DROP TABLE IF EXISTS tiger.tabblock;
+	CREATE TABLE tabblock
+	(
+	  gid serial NOT NULL,
+	  statefp varchar(2),
+	  countyfp varchar(3),
+	  tractce varchar(6),
+	  blockce varchar(4),
+	  tabblock_id varchar(16) PRIMARY KEY,
+	  name varchar(20),
+	  mtfcc varchar(5),
+	  ur varchar(1),
+	  uace varchar(5),
+	  funcstat varchar(1),
+	  aland double precision,
+	  awater double precision,
+	  intptlat varchar(11),
+	  intptlon varchar(12),
+	  the_geom geometry,
+	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+	);
+
+	DROP TABLE IF EXISTS tiger.bg;
+	CREATE TABLE bg
+	(
+	  gid serial NOT NULL,
+	  statefp varchar(2),
+	  countyfp varchar(3),
+	  tractce varchar(6),
+	  blkgrpce varchar(1),
+	  bg_id varchar(12) PRIMARY KEY,
+	  namelsad varchar(13),
+	  mtfcc varchar(5),
+	  funcstat varchar(1),
+	  aland double precision,
+	  awater double precision,
+	  intptlat varchar(11),
+	  intptlon varchar(12),
+	  the_geom geometry,
+	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+	);
+	COMMENT ON TABLE tiger.bg IS 'block groups';
+END IF;
+
+IF EXISTS(SELECT * FROM information_schema.columns WHERE table_schema = 'tiger' AND column_name = 'tabblock_id' AND table_name = 'tabblock' AND character_maximum_length < 16)  THEN -- size of name and tabblock_id fields need to be increased
+    ALTER TABLE tiger.tabblock ALTER COLUMN name TYPE varchar(20);
+    ALTER TABLE tiger.tabblock ALTER COLUMN tabblock_id TYPE varchar(16);
+    RAISE NOTICE 'Size of tabblock_id and name are being incrreased';
+END IF;
+RETURN 'Tables already present';
+END
+$$
+language 'plpgsql';
+
+CREATE OR REPLACE FUNCTION loader_macro_replace(param_input text, param_keys text[],param_values text[]) 
+RETURNS text AS
+$$
+	DECLARE var_result text = param_input;
+	DECLARE var_count integer = array_upper(param_keys,1);
+	BEGIN
+		FOR i IN 1..var_count LOOP
+			var_result := replace(var_result, '${' || param_keys[i] || '}', param_values[i]);
+		END LOOP;
+		return var_result;
+	END;
+$$
+  LANGUAGE 'plpgsql' IMMUTABLE
+  COST 100;
+
+-- Helper function that generates script to drop all tables in a particular schema for a particular table
+-- This is useful in case you need to reload a state
+CREATE OR REPLACE FUNCTION drop_state_tables_generate_script(param_state text, param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $2 AND table_name like lower($1) || '_%' ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+-- Helper function that generates script to drop all nation tables (county, state) in a particular schema 
+-- This is useful for loading 2011 because state and county tables aren't broken out into separate state files
+DROP FUNCTION IF EXISTS drop_national_tables_generate_script(text);
+CREATE OR REPLACE FUNCTION drop_nation_tables_generate_script(param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $1 AND (table_name ~ E'^[a-z]{2}\_county' or table_name ~ E'^[a-z]{2}\_state' or table_name = 'state_all' or table_name LIKE 'county_all%') ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+DO 
+$$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_platform' AND table_schema = 'tiger') THEN
+      CREATE TABLE loader_platform(os varchar(50) PRIMARY KEY, declare_sect text, pgbin text, wget text, unzip_command text, psql text, path_sep text, loader text, environ_set_command text, county_process_command text);     
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+DO 
+$$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = 'tiger_data') THEN
+       CREATE SCHEMA tiger_data;     
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+
+DELETE FROM loader_platform WHERE os IN ('sh', 'windows');
+GRANT SELECT ON TABLE loader_platform TO public;
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql,path_sep,loader, environ_set_command, county_process_command)
+VALUES('windows', '%WGETTOOL%', '%PGBIN%', 
+E'set TMPDIR=${staging_fold}\\temp\\
+set UNZIPTOOL="C:\\Program Files\\7-Zip\\7z.exe"
+set WGETTOOL="C:\\wget\\wget.exe"
+set PGBIN=C:\\Program Files\\PostgreSQL\\9.2\\bin\\
+set PGPORT=5432
+set PGHOST=localhost
+set PGUSER=postgres
+set PGPASSWORD=yourpasswordhere
+set PGDATABASE=geocoder
+set PSQL="%PGBIN%psql"
+set SHP2PGSQL="%PGBIN%shp2pgsql"
+cd ${staging_fold}
+', E'del %TMPDIR%\\*.* /Q
+%PSQL% -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
+%PSQL% -c "CREATE SCHEMA ${staging_schema};"
+%PSQL% -c "DO language ''plpgsql'' $$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = ''${data_schema}'' ) THEN CREATE SCHEMA ${data_schema}; END IF;  END $$"
+for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% 
+cd %TMPDIR%', E'%PSQL%', E'\\', E'%SHP2PGSQL%', 'set ', 
+'for /r %%z in (*${table_name}*.dbf) do (${loader} -D -s 4269 -g the_geom -W "latin1" %%z tiger_staging.${state_abbrev}_${table_name} | ${psql} & ${psql} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));")'
+);
+
+
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql, path_sep, loader, environ_set_command, county_process_command)
+VALUES('sh', 'wget', '', 
+E'TMPDIR="${staging_fold}/temp/"
+UNZIPTOOL=unzip
+WGETTOOL="/usr/bin/wget"
+export PGBIN=/usr/pgsql-9.0/bin
+export PGPORT=5432
+export PGHOST=localhost
+export PGUSER=postgres
+export PGPASSWORD=yourpasswordhere
+export PGDATABASE=geocoder
+PSQL=${PGBIN}/psql
+SHP2PGSQL=${PGBIN}/shp2pgsql
+cd ${staging_fold}
+', E'rm -f ${TMPDIR}/*.*
+${PSQL} -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
+${PSQL} -c "CREATE SCHEMA ${staging_schema};"
+for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+for z in */*.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+cd $TMPDIR;\n', '${PSQL}', '/', '${SHP2PGSQL}', 'export ',
+'for z in *${table_name}*.dbf; do 
+${loader} -D -s 4269 -g the_geom -W "latin1" $z ${staging_schema}.${state_abbrev}_${table_name} | ${psql} 
+${PSQL} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));"
+done');
+
+-- variables table
+DO $$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_variables' AND table_schema = 'tiger') THEN
+      CREATE TABLE loader_variables(tiger_year varchar(4) PRIMARY KEY, website_root text, staging_fold text, data_schema text, staging_schema text);    
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+TRUNCATE TABLE loader_variables;
+INSERT INTO loader_variables(tiger_year, website_root , staging_fold, data_schema, staging_schema)
+	VALUES('2014', 'ftp://ftp2.census.gov/geo/tiger/TIGER2014', '/gisdata', 'tiger_data', 'tiger_staging');
+GRANT SELECT ON TABLE loader_variables TO public;
+
+DO $$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_lookuptables' AND table_schema = 'tiger') THEN
+   CREATE TABLE loader_lookuptables(process_order integer NOT NULL DEFAULT 1000, 
+		lookup_name text primary key, 
+		table_name text, single_mode boolean NOT NULL DEFAULT true, 
+		load boolean NOT NULL DEFAULT true, 
+		level_county boolean NOT NULL DEFAULT false, 
+		level_state boolean NOT NULL DEFAULT false,
+		level_nation boolean NOT NULL DEFAULT false,
+		post_load_process text, single_geom_mode boolean DEFAULT false, 
+		insert_mode char(1) NOT NULL DEFAULT 'c', 
+		pre_load_process text,columns_exclude text[], website_root_override text);   
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+TRUNCATE TABLE loader_lookuptables;
+
+		
+GRANT SELECT ON TABLE loader_lookuptables TO public;
+		
+-- put in explanatory comments of what each column is for
+COMMENT ON COLUMN loader_lookuptables.lookup_name IS 'This is the table name to inherit from and suffix of resulting output table -- how the table will be named --  edges here would mean -- ma_edges , pa_edges etc. except in the case of national tables. national level tables have no prefix';
+COMMENT ON COLUMN loader_lookuptables.level_nation IS 'These are tables that contain all data for the whole US so there is just a single file';
+COMMENT ON COLUMN loader_lookuptables.table_name IS 'suffix of the tables to load e.g.  edges would load all tables like *edges.dbf(shp)  -- so tl_2010_42129_edges.dbf .  ';
+COMMENT ON COLUMN loader_lookuptables.load IS 'Whether or not to load the table.  For states and zcta5 (you may just want to download states10, zcta510 nationwide file manually) load your own into a single table that inherits from tiger.states, tiger.zcta5.  You''ll get improved performance for some geocoding cases.';
+COMMENT ON COLUMN loader_lookuptables.columns_exclude IS 'List of columns to exclude as an array. This is excluded from both input table and output table and rest of columns remaining are assumed to be in same order in both tables. gid, geoid,cpi,suffix1ce are excluded if no columns are specified.';
+COMMENT ON COLUMN loader_lookuptables.website_root_override IS 'Path to use for wget instead of that specified in year table.  Needed currently for zcta where they release that only for 2000 and 2010';
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(10, 'tract', 'tract', true, false, true,false, 'c', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (tract_id) ) INHERITS(tiger.${lookup_name}); " ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO tract_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); "
+	${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${state_abbrev}_${lookup_name};"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"', ARRAY['gid']);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(11, 'tabblock', 'tabblock', true, true, false,false, 'c', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (tabblock_id)) INHERITS(tiger.${lookup_name});" ',
+'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${lookup_name} RENAME geoid10 TO tabblock_id;"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', '{gid, uatyp10, tractce10, blockce10,suffix1ce,blockce,tractce}'::text[]);
+
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(12, 'bg', 'bg', true,false, true,false, 'c', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (bg_id)) INHERITS(tiger.${lookup_name});" ',
+'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO bg_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); "
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid']);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state,  level_nation, single_geom_mode, pre_load_process, post_load_process)
+VALUES(2, 'county_all', 'county', true, false, false, true,
+	false, '${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${data_schema}_${lookup_name} PRIMARY KEY (cntyidfp),CONSTRAINT uidx_${data_schema}_${lookup_name}_gid UNIQUE (gid)  ) INHERITS(county); " ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${table_name} RENAME geoid TO cntyidfp;  SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}''));"
+	${psql} -c "CREATE INDEX ${data_schema}_${table_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE UNIQUE INDEX uidx_${data_schema}_${lookup_name}_statefp_countyfp ON ${data_schema}.${lookup_name} USING btree(statefp,countyfp);"
+	${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}_lookup ( CONSTRAINT pk_${lookup_name}_lookup PRIMARY KEY (st_code, co_code)) INHERITS (county_lookup);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name};"
+	${psql} -c "INSERT INTO ${data_schema}.${lookup_name}_lookup(st_code, state, co_code, name) SELECT CAST(s.statefp as integer), s.abbrev, CAST(c.countyfp as integer), c.name FROM ${data_schema}.${lookup_name} As c INNER JOIN state_lookup As s ON s.statefp = c.statefp;"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}_lookup;" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(1, 'state_all', 'state', true, false, false,true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${lookup_name} PRIMARY KEY (statefp),CONSTRAINT uidx_${lookup_name}_stusps  UNIQUE (stusps), CONSTRAINT uidx_${lookup_name}_gid UNIQUE (gid) ) INHERITS(state); "',
+	'${psql} -c "SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}'')); "
+	${psql} -c "CREATE INDEX ${data_schema}_${lookup_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}"' );
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(3, 'place', 'place', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (plcidfp) ) INHERITS(place);" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO plcidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid);"
+${psql} -c "CREATE INDEX idx_${state_abbrev}_${lookup_name}_soundex_name ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (soundex(name));" 
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"'  
+	);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(4, 'cousub', 'cousub', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (cosbidfp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO cosbidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree(countyfp);"');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude, website_root_override  )
+-- this is a bit of a lie that its county.  It's really state but works better with column routine
+VALUES(4, 'zcta5', 'zcta510', true,true, false,false, false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (zcta5ce,statefp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"'
+, ARRAY['gid','geoid','geoid10'], 'ftp://ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010');
+
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(6, 'faces', 'faces', true, true, false,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (gid)) INHERITS(${lookup_name});" ',
+	'${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfid ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (tfid);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"');
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(7, 'featnames', 'featnames', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+'${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_snd_name ON ${data_schema}.${state_abbrev}_${table_name} USING btree (soundex(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_lname ON ${data_schema}.${state_abbrev}_${table_name} USING btree (lower(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid,statefp);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid','statefp']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(8, 'edges', 'edges', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});" ',
+'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}tfidr ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidr);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfidl ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidl);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${table_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_zipl ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (zipl);"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state_loc(CONSTRAINT pk_${state_abbrev}_zip_state_loc PRIMARY KEY(zip,stusps,place)) INHERITS(zip_state_loc);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state_loc(zip,stusps,statefp,place) SELECT DISTINCT e.zipl, ''${state_abbrev}'', ''${state_fips}'', p.name FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As p ON(f.statefp = p.statefp AND f.placefp = p.placefp ) WHERE e.zipl IS NOT NULL;"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_state_loc_place ON ${data_schema}.${state_abbrev}_zip_state_loc USING btree(soundex(place));"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state_loc ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_zip_state_loc;"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_lookup_base(CONSTRAINT pk_${state_abbrev}_zip_state_loc_city PRIMARY KEY(zip,state, county, city, statefp)) INHERITS(zip_lookup_base);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_lookup_base(zip,state,county,city, statefp) SELECT DISTINCT e.zipl, ''${state_abbrev}'', c.name,p.name,''${state_fips}''  FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN tiger.county As c  ON (e.countyfp = c.countyfp AND e.statefp = c.statefp AND e.statefp = ''${state_fips}'') INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As [...]
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_lookup_base ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_lookup_base_citysnd ON ${data_schema}.${state_abbrev}_zip_lookup_base USING btree(soundex(city));" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addr', 'addr', true, true, false,false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_least_address ON tiger_data.${state_abbrev}_addr USING btree (least_hn(fromhn,tohn) );"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid, statefp);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_zip ON ${data_schema}.${state_abbrev}_${table_name} USING btree (zip);"
+	${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state(CONSTRAINT pk_${state_abbrev}_zip_state PRIMARY KEY(zip,stusps)) INHERITS(zip_state); "
+	${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state(zip,stusps,statefp) SELECT DISTINCT zip, ''${state_abbrev}'', ''${state_fips}'' FROM ${data_schema}.${state_abbrev}_${lookup_name} WHERE zip is not null;"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addrfeat', 'addrfeat', false, true, false,true, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+
+CREATE OR REPLACE FUNCTION loader_generate_nation_script(os text)
+  RETURNS SETOF text AS
+$BODY$
+WITH lu AS (SELECT lookup_name, table_name, pre_load_process,post_load_process, process_order, insert_mode, single_geom_mode, level_nation, level_county, level_state
+    FROM  loader_lookuptables 
+				WHERE level_nation = true AND load = true)
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'website_root', 'psql',  'data_schema', 'staging_schema'], 
+				ARRAY[variables.staging_fold, variables.website_root, platform.psql, variables.data_schema, variables.staging_schema]
+			), '/', platform.path_sep) || '
+'  ||
+	-- Nation level files
+	array_to_string( ARRAY(SELECT loader_macro_replace('cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || variables.website_root  || '/' || upper(table_name)  || '/ --no-parent --relative --recursive --level=1 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(variables.website_root, 'http://', ''),'ftp://','')  || '/' || upper(table_name)  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*' || table_name || '.zip ') || '
+' || COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -D -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year 
+	|| '_us_' || lu.table_name || '.dbf tiger_staging.' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ]
+			)
+				FROM lu
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'website_root'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, variables.website_root])
+			AS shell_code
+FROM loader_variables As variables
+	 CROSS JOIN loader_platform As platform
+WHERE platform.os = $1 -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+  
+CREATE OR REPLACE FUNCTION loader_generate_script(param_states text[], os text)
+  RETURNS SETOF text AS
+$BODY$
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
+				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
+			), '/', platform.path_sep) || '
+' ||
+	-- State level files - if an override website is specified we use that instead of variable one
+	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/tl_*_' || s.state_fips || '_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -D -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
+	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
+				FROM loader_lookuptables AS lu
+				WHERE level_state = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	-- County Level files
+	|| E'\n' ||
+		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/tl_*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '*.zip ') || '
+' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
+				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || ' -D ' || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
+				FROM loader_lookuptables AS lu
+				WHERE level_county = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
+			AS shell_code
+FROM loader_variables As variables
+		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
+			 lpad(st_code::text,2,'0') || '_' 
+	|| replace(name, ' ', '_') As state_fold
+FROM state_lookup) As s CROSS JOIN loader_platform As platform
+WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
+AND platform.os = $2  -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text, param_columns_exclude text[]) RETURNS integer
+AS
+$$
+DECLARE 
+	var_sql text;
+	var_staging_schema text; var_data_schema text;
+	var_temp text;
+	var_num_records bigint;
+BEGIN
+-- Add all the fields except geoid and gid
+-- Assume all the columns are in same order as target
+	SELECT staging_schema, data_schema INTO var_staging_schema, var_data_schema FROM loader_variables;
+	var_sql := 'INSERT INTO ' || var_data_schema || '.' || quote_ident(param_target_table) || '(' ||
+			array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_target_table
+					AND table_schema = var_data_schema 
+					AND column_name <> ALL(param_columns_exclude) ), ',') || ') SELECT ' 
+					|| array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_staging_table
+					AND table_schema = var_staging_schema 
+					AND column_name <> ALL( param_columns_exclude) ), ',') ||' FROM ' 
+					|| var_staging_schema || '.' || param_staging_table || ';';
+	RAISE NOTICE '%', var_sql;
+	EXECUTE (var_sql);
+	GET DIAGNOSTICS var_num_records = ROW_COUNT;
+	SELECT DropGeometryTable(var_staging_schema,param_staging_table) INTO var_temp;
+	RETURN var_num_records;
+END;
+$$
+LANGUAGE 'plpgsql' VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text) 
+RETURNS integer AS
+$$
+-- exclude this set list of columns if no exclusion list is specified 
+
+   SELECT  loader_load_staged_data($1, $2,(SELECT COALESCE(columns_exclude,ARRAY['gid', 'geoid','cpi','suffix1ce', 'statefp00', 'statefp10', 'countyfp00','countyfp10'
+   ,'tractce00','tractce10', 'blkgrpce00', 'blkgrpce10', 'blockce00', 'blockce10'
+      , 'cousubfp00', 'submcdfp00', 'conctyfp00', 'placefp00', 'aiannhfp00', 'aiannhce00', 
+       'comptyp00', 'trsubfp00', 'trsubce00', 'anrcfp00', 'elsdlea00', 'scsdlea00', 
+       'unsdlea00', 'uace00', 'cd108fp', 'sldust00', 'sldlst00', 'vtdst00', 'zcta5ce00', 
+       'tazce00', 'ugace00', 'puma5ce00','vtdst10','tazce10','uace10','puma5ce10','tazce', 'uace', 'vtdst', 'zcta5ce', 'zcta5ce10', 'puma5ce', 'ugace10','pumace10', 'estatefp', 'ugace', 'blockce']) FROM loader_lookuptables WHERE $2 LIKE '%' || lookup_name))
+$$
+language 'sql' VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_generate_census_script(param_states text[], os text)
+  RETURNS SETOF text AS
+$$
+SELECT create_census_base_tables();
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
+				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
+			), '/', platform.path_sep) || '
+' ||
+	-- State level files - if an override website is specified we use that instead of variable one
+	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
+	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
+				FROM loader_lookuptables AS lu
+				WHERE level_state = true AND load = true AND lookup_name IN('tract','bg','tabblock')
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	-- County Level files
+	|| E'\n' ||
+		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '*.zip ') || '
+' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
+				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
+				FROM loader_lookuptables AS lu
+				WHERE level_county = true AND load = true AND lookup_name IN('tract','bg','tabblock')
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
+			AS shell_code
+FROM loader_variables As variables
+		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
+			 lpad(st_code::text,2,'0') || '_' 
+	|| replace(name, ' ', '_') As state_fold
+FROM state_lookup) As s CROSS JOIN loader_platform As platform
+WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
+AND platform.os = $2  -- generate script for selected platform
+;
+$$
+  LANGUAGE sql VOLATILE;
+
+SELECT create_census_base_tables();
+COMMIT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_loader_2015.sql b/extras/tiger_geocoder/tiger_loader_2015.sql
new file mode 100644
index 0000000..66d54a7
--- /dev/null
+++ b/extras/tiger_geocoder/tiger_loader_2015.sql
@@ -0,0 +1,572 @@
+--
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2012-2015 Regina Obe and Leo Hsu 
+-- Paragon Corporation
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
+--  
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SELECT tiger.SetSearchPathForInstall('tiger');
+BEGIN;
+CREATE OR REPLACE FUNCTION create_census_base_tables() 
+	RETURNS text AS
+$$
+DECLARE var_temp text; 
+BEGIN
+var_temp := tiger.SetSearchPathForInstall('tiger');
+IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND column_name = 'tract_id' AND table_name = 'tract')  THEN
+	-- census block group/tracts parent tables not created yet or an older version -- drop old if not in use, create new structure
+	DROP TABLE IF EXISTS tiger.tract;
+	CREATE TABLE tract
+	(
+	  gid serial NOT NULL,
+	  statefp varchar(2),
+	  countyfp varchar(3),
+	  tractce varchar(6),
+	  tract_id varchar(11) PRIMARY KEY,
+	  name varchar(7),
+	  namelsad varchar(20),
+	  mtfcc varchar(5),
+	  funcstat varchar(1),
+	  aland double precision,
+	  awater double precision,
+	  intptlat varchar(11),
+	  intptlon varchar(12),
+	  the_geom geometry,
+	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+	);
+	
+	DROP TABLE IF EXISTS tiger.tabblock;
+	CREATE TABLE tabblock
+	(
+	  gid serial NOT NULL,
+	  statefp varchar(2),
+	  countyfp varchar(3),
+	  tractce varchar(6),
+	  blockce varchar(4),
+	  tabblock_id varchar(16) PRIMARY KEY,
+	  name varchar(20),
+	  mtfcc varchar(5),
+	  ur varchar(1),
+	  uace varchar(5),
+	  funcstat varchar(1),
+	  aland double precision,
+	  awater double precision,
+	  intptlat varchar(11),
+	  intptlon varchar(12),
+	  the_geom geometry,
+	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+	);
+
+	DROP TABLE IF EXISTS tiger.bg;
+	CREATE TABLE bg
+	(
+	  gid serial NOT NULL,
+	  statefp varchar(2),
+	  countyfp varchar(3),
+	  tractce varchar(6),
+	  blkgrpce varchar(1),
+	  bg_id varchar(12) PRIMARY KEY,
+	  namelsad varchar(13),
+	  mtfcc varchar(5),
+	  funcstat varchar(1),
+	  aland double precision,
+	  awater double precision,
+	  intptlat varchar(11),
+	  intptlon varchar(12),
+	  the_geom geometry,
+	  CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 2),
+	  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+	  CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 4269)
+	);
+	COMMENT ON TABLE tiger.bg IS 'block groups';
+END IF;
+
+IF EXISTS(SELECT * FROM information_schema.columns WHERE table_schema = 'tiger' AND column_name = 'tabblock_id' AND table_name = 'tabblock' AND character_maximum_length < 16)  THEN -- size of name and tabblock_id fields need to be increased
+    ALTER TABLE tiger.tabblock ALTER COLUMN name TYPE varchar(20);
+    ALTER TABLE tiger.tabblock ALTER COLUMN tabblock_id TYPE varchar(16);
+    RAISE NOTICE 'Size of tabblock_id and name are being increased';
+END IF;
+RETURN 'Tables already present';
+END
+$$
+language 'plpgsql';
+
+CREATE OR REPLACE FUNCTION loader_macro_replace(param_input text, param_keys text[],param_values text[]) 
+RETURNS text AS
+$$
+	DECLARE var_result text = param_input;
+	DECLARE var_count integer = array_upper(param_keys,1);
+	BEGIN
+		FOR i IN 1..var_count LOOP
+			var_result := replace(var_result, '${' || param_keys[i] || '}', param_values[i]);
+		END LOOP;
+		return var_result;
+	END;
+$$
+  LANGUAGE 'plpgsql' IMMUTABLE
+  COST 100;
+
+-- Helper function that generates script to drop all tables in a particular schema for a particular table
+-- This is useful in case you need to reload a state
+CREATE OR REPLACE FUNCTION drop_state_tables_generate_script(param_state text, param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $2 AND table_name like lower($1) || '_%' ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+-- Helper function that generates script to drop all nation tables (county, state) in a particular schema 
+-- This is useful for loading 2011 because state and county tables aren't broken out into separate state files
+DROP FUNCTION IF EXISTS drop_national_tables_generate_script(text);
+CREATE OR REPLACE FUNCTION drop_nation_tables_generate_script(param_schema text DEFAULT 'tiger_data')
+  RETURNS text AS
+$$
+SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n')
+	FROM (SELECT * FROM information_schema.tables
+	WHERE table_schema = $1 AND (table_name ~ E'^[a-z]{2}\_county' or table_name ~ E'^[a-z]{2}\_state' or table_name = 'state_all' or table_name LIKE 'county_all%') ORDER BY table_name) AS foo; 
+;
+$$
+  LANGUAGE sql VOLATILE;
+  
+DO 
+$$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_platform' AND table_schema = 'tiger') THEN
+      CREATE TABLE loader_platform(os varchar(50) PRIMARY KEY, declare_sect text, pgbin text, wget text, unzip_command text, psql text, path_sep text, loader text, environ_set_command text, county_process_command text);     
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+DO 
+$$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = 'tiger_data') THEN
+       CREATE SCHEMA tiger_data;     
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+
+DELETE FROM loader_platform WHERE os IN ('sh', 'windows');
+GRANT SELECT ON TABLE loader_platform TO public;
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql,path_sep,loader, environ_set_command, county_process_command)
+VALUES('windows', '%WGETTOOL%', '%PGBIN%', 
+E'set TMPDIR=${staging_fold}\\temp\\
+set UNZIPTOOL="C:\\Program Files\\7-Zip\\7z.exe"
+set WGETTOOL="C:\\wget\\wget.exe"
+set PGBIN=C:\\Program Files\\PostgreSQL\\9.4\\bin\\
+set PGPORT=5432
+set PGHOST=localhost
+set PGUSER=postgres
+set PGPASSWORD=yourpasswordhere
+set PGDATABASE=geocoder
+set PSQL="%PGBIN%psql"
+set SHP2PGSQL="%PGBIN%shp2pgsql"
+cd ${staging_fold}
+', E'del %TMPDIR%\\*.* /Q
+%PSQL% -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
+%PSQL% -c "CREATE SCHEMA ${staging_schema};"
+%PSQL% -c "DO language ''plpgsql'' $$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.schemata WHERE schema_name = ''${data_schema}'' ) THEN CREATE SCHEMA ${data_schema}; END IF;  END $$"
+for /r %%z in (*.zip) do %UNZIPTOOL% e %%z  -o%TMPDIR% 
+cd %TMPDIR%', E'%PSQL%', E'\\', E'%SHP2PGSQL%', 'set ', 
+'for /r %%z in (*${table_name}*.dbf) do (${loader} -D -s 4269 -g the_geom -W "latin1" %%z tiger_staging.${state_abbrev}_${table_name} | ${psql} & ${psql} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));")'
+);
+
+
+INSERT INTO loader_platform(os, wget, pgbin, declare_sect, unzip_command, psql, path_sep, loader, environ_set_command, county_process_command)
+VALUES('sh', 'wget', '', 
+E'TMPDIR="${staging_fold}/temp/"
+UNZIPTOOL=unzip
+WGETTOOL="/usr/bin/wget"
+export PGBIN=/usr/lib/postgresql/9.4/bin/
+export PGPORT=5432
+export PGHOST=localhost
+export PGUSER=postgres
+export PGPASSWORD=yourpasswordhere
+export PGDATABASE=geocoder
+PSQL=${PGBIN}/psql
+SHP2PGSQL=${PGBIN}/shp2pgsql
+cd ${staging_fold}
+', E'rm -f ${TMPDIR}/*.*
+${PSQL} -c "DROP SCHEMA IF EXISTS ${staging_schema} CASCADE;"
+${PSQL} -c "CREATE SCHEMA ${staging_schema};"
+for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+for z in */*.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done
+cd $TMPDIR;\n', '${PSQL}', '/', '${SHP2PGSQL}', 'export ',
+'for z in *${table_name}*.dbf; do 
+${loader} -D -s 4269 -g the_geom -W "latin1" $z ${staging_schema}.${state_abbrev}_${table_name} | ${psql} 
+${PSQL} -c "SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}''));"
+done');
+
+-- variables table
+DO $$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_variables' AND table_schema = 'tiger') THEN
+      CREATE TABLE loader_variables(tiger_year varchar(4) PRIMARY KEY, website_root text, staging_fold text, data_schema text, staging_schema text);    
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+TRUNCATE TABLE loader_variables;
+INSERT INTO loader_variables(tiger_year, website_root , staging_fold, data_schema, staging_schema)
+	VALUES('2015', 'ftp://ftp2.census.gov/geo/tiger/TIGER2015', '/gisdata', 'tiger_data', 'tiger_staging');
+GRANT SELECT ON TABLE loader_variables TO public;
+
+DO $$
+BEGIN
+  IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = 'loader_lookuptables' AND table_schema = 'tiger') THEN
+   CREATE TABLE loader_lookuptables(process_order integer NOT NULL DEFAULT 1000, 
+		lookup_name text primary key, 
+		table_name text, single_mode boolean NOT NULL DEFAULT true, 
+		load boolean NOT NULL DEFAULT true, 
+		level_county boolean NOT NULL DEFAULT false, 
+		level_state boolean NOT NULL DEFAULT false,
+		level_nation boolean NOT NULL DEFAULT false,
+		post_load_process text, single_geom_mode boolean DEFAULT false, 
+		insert_mode char(1) NOT NULL DEFAULT 'c', 
+		pre_load_process text,columns_exclude text[], website_root_override text);   
+  END IF;   
+END 
+$$ LANGUAGE 'plpgsql';
+
+TRUNCATE TABLE loader_lookuptables;
+
+		
+GRANT SELECT ON TABLE loader_lookuptables TO public;
+		
+-- put in explanatory comments of what each column is for
+COMMENT ON COLUMN loader_lookuptables.lookup_name IS 'This is the table name to inherit from and suffix of resulting output table -- how the table will be named --  edges here would mean -- ma_edges , pa_edges etc. except in the case of national tables. national level tables have no prefix';
+COMMENT ON COLUMN loader_lookuptables.level_nation IS 'These are tables that contain all data for the whole US so there is just a single file';
+COMMENT ON COLUMN loader_lookuptables.table_name IS 'suffix of the tables to load e.g.  edges would load all tables like *edges.dbf(shp)  -- so tl_2010_42129_edges.dbf .  ';
+COMMENT ON COLUMN loader_lookuptables.load IS 'Whether or not to load the table.  For states and zcta5 (you may just want to download states10, zcta510 nationwide file manually) load your own into a single table that inherits from tiger.states, tiger.zcta5.  You''ll get improved performance for some geocoding cases.';
+COMMENT ON COLUMN loader_lookuptables.columns_exclude IS 'List of columns to exclude as an array. This is excluded from both input table and output table and rest of columns remaining are assumed to be in same order in both tables. gid, geoid,cpi,suffix1ce are excluded if no columns are specified.';
+COMMENT ON COLUMN loader_lookuptables.website_root_override IS 'Path to use for wget instead of that specified in year table.  Needed currently for zcta where they release that only for 2000 and 2010';
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(10, 'tract', 'tract', true, false, true,false, 'c', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (tract_id) ) INHERITS(tiger.${lookup_name}); " ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO tract_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); "
+	${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${state_abbrev}_${lookup_name};"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"', ARRAY['gid']);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(11, 'tabblock', 'tabblock', true, true, false,false, 'c', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (tabblock_id)) INHERITS(tiger.${lookup_name});" ',
+'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${lookup_name} RENAME geoid10 TO tabblock_id;"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', '{gid, uatyp10, uatype, tractce10, blockce10,suffix1ce,blockce,tractce}'::text[]);
+
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(12, 'bg', 'bg', true,false, true,false, 'c', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (bg_id)) INHERITS(tiger.${lookup_name});" ',
+'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO bg_id;  SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); "
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid']);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state,  level_nation, single_geom_mode, pre_load_process, post_load_process)
+VALUES(2, 'county_all', 'county', true, false, false, true,
+	false, '${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${data_schema}_${lookup_name} PRIMARY KEY (cntyidfp),CONSTRAINT uidx_${data_schema}_${lookup_name}_gid UNIQUE (gid)  ) INHERITS(tiger.county); " ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${table_name} RENAME geoid TO cntyidfp;  SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}''));"
+	${psql} -c "CREATE INDEX ${data_schema}_${table_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE UNIQUE INDEX uidx_${data_schema}_${lookup_name}_statefp_countyfp ON ${data_schema}.${lookup_name} USING btree(statefp,countyfp);"
+	${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}_lookup ( CONSTRAINT pk_${lookup_name}_lookup PRIMARY KEY (st_code, co_code)) INHERITS (tiger.county_lookup);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name};"
+	${psql} -c "INSERT INTO ${data_schema}.${lookup_name}_lookup(st_code, state, co_code, name) SELECT CAST(s.statefp as integer), s.abbrev, CAST(c.countyfp as integer), c.name FROM ${data_schema}.${lookup_name} As c INNER JOIN state_lookup As s ON s.statefp = c.statefp;"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}_lookup;" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(1, 'state_all', 'state', true, false, false,true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${lookup_name}(CONSTRAINT pk_${lookup_name} PRIMARY KEY (statefp),CONSTRAINT uidx_${lookup_name}_stusps  UNIQUE (stusps), CONSTRAINT uidx_${lookup_name}_gid UNIQUE (gid) ) INHERITS(tiger.state); "',
+	'${psql} -c "SELECT loader_load_staged_data(lower(''${table_name}''), lower(''${lookup_name}'')); "
+	${psql} -c "CREATE INDEX ${data_schema}_${lookup_name}_the_geom_gist ON ${data_schema}.${lookup_name} USING gist(the_geom);"
+	${psql} -c "VACUUM ANALYZE ${data_schema}.${lookup_name}"' );
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(3, 'place', 'place', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (plcidfp) ) INHERITS(tiger.place);" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO plcidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid);"
+${psql} -c "CREATE INDEX idx_${state_abbrev}_${lookup_name}_soundex_name ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (soundex(name));" 
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"'  
+	);
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(4, 'cousub', 'cousub', true, false, true,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (cosbidfp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(tiger.${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${staging_schema}.${state_abbrev}_${table_name} RENAME geoid TO cosbidfp;SELECT loader_load_staged_data(lower(''${state_abbrev}_${table_name}''), lower(''${state_abbrev}_${lookup_name}'')); ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree(countyfp);"');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, level_nation, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude, website_root_override  )
+-- this is a bit of a lie that its county.  It's really state but works better with column routine
+VALUES(4, 'zcta5', 'zcta510', true,true, false,false, false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (zcta5ce,statefp), CONSTRAINT uidx_${state_abbrev}_${lookup_name}_gid UNIQUE (gid)) INHERITS(tiger.${lookup_name});" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${lookup_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"'
+, ARRAY['gid','geoid','geoid10'], 'ftp://ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010');
+
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(6, 'faces', 'faces', true, true, false,false, 'c', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${lookup_name} PRIMARY KEY (gid)) INHERITS(tiger.${lookup_name});" ',
+	'${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${lookup_name} USING gist(the_geom);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfid ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (tfid);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"');
+
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process, columns_exclude )
+VALUES(7, 'featnames', 'featnames', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(tiger.${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+'${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_snd_name ON ${data_schema}.${state_abbrev}_${table_name} USING btree (soundex(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_lname ON ${data_schema}.${state_abbrev}_${table_name} USING btree (lower(name));"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid,statefp);"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"', ARRAY['gid','statefp']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process )
+VALUES(8, 'edges', 'edges', true, true, false,false, 'a', 
+'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${table_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(tiger.${table_name});" ',
+'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${table_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tlid ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}tfidr ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidr);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_tfidl ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tfidl);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_countyfp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (countyfp);"
+${psql} -c "CREATE INDEX ${data_schema}_${state_abbrev}_${table_name}_the_geom_gist ON ${data_schema}.${state_abbrev}_${table_name} USING gist(the_geom);"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_zipl ON ${data_schema}.${state_abbrev}_${lookup_name} USING btree (zipl);"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state_loc(CONSTRAINT pk_${state_abbrev}_zip_state_loc PRIMARY KEY(zip,stusps,place)) INHERITS(tiger.zip_state_loc);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state_loc(zip,stusps,statefp,place) SELECT DISTINCT e.zipl, ''${state_abbrev}'', ''${state_fips}'', p.name FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As p ON(f.statefp = p.statefp AND f.placefp = p.placefp ) WHERE e.zipl IS NOT NULL;"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_state_loc_place ON ${data_schema}.${state_abbrev}_zip_state_loc USING btree(soundex(place));"
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state_loc ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"
+${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_zip_state_loc;"
+${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_lookup_base(CONSTRAINT pk_${state_abbrev}_zip_state_loc_city PRIMARY KEY(zip,state, county, city, statefp)) INHERITS(tiger.zip_lookup_base);"
+${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_lookup_base(zip,state,county,city, statefp) SELECT DISTINCT e.zipl, ''${state_abbrev}'', c.name,p.name,''${state_fips}''  FROM ${data_schema}.${state_abbrev}_edges AS e INNER JOIN tiger.county As c  ON (e.countyfp = c.countyfp AND e.statefp = c.statefp AND e.statefp = ''${state_fips}'') INNER JOIN ${data_schema}.${state_abbrev}_faces AS f ON (e.tfidl = f.tfid OR e.tfidr = f.tfid) INNER JOIN ${data_schema}.${state_abbrev}_place As [...]
+${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_lookup_base ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_zip_lookup_base_citysnd ON ${data_schema}.${state_abbrev}_zip_lookup_base USING btree(soundex(city));" ');
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addr', 'addr', true, true, false,false, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(tiger.${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${lookup_name}_least_address ON tiger_data.${state_abbrev}_addr USING btree (least_hn(fromhn,tohn) );"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_tlid_statefp ON ${data_schema}.${state_abbrev}_${table_name} USING btree (tlid, statefp);"
+	${psql} -c "CREATE INDEX idx_${data_schema}_${state_abbrev}_${table_name}_zip ON ${data_schema}.${state_abbrev}_${table_name} USING btree (zip);"
+	${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_zip_state(CONSTRAINT pk_${state_abbrev}_zip_state PRIMARY KEY(zip,stusps)) INHERITS(tiger.zip_state); "
+	${psql} -c "INSERT INTO ${data_schema}.${state_abbrev}_zip_state(zip,stusps,statefp) SELECT DISTINCT zip, ''${state_abbrev}'', ''${state_fips}'' FROM ${data_schema}.${state_abbrev}_${lookup_name} WHERE zip is not null;"
+	${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_zip_state ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+	
+INSERT INTO loader_lookuptables(process_order, lookup_name, table_name, load, level_county, level_state, single_geom_mode, insert_mode, pre_load_process, post_load_process,columns_exclude )
+VALUES(9, 'addrfeat', 'addrfeat', false, true, false,true, 'a', 
+	'${psql} -c "CREATE TABLE ${data_schema}.${state_abbrev}_${lookup_name}(CONSTRAINT pk_${state_abbrev}_${table_name} PRIMARY KEY (gid)) INHERITS(tiger.${table_name});ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ALTER COLUMN statefp SET DEFAULT ''${state_fips}'';" ',
+	'${psql} -c "ALTER TABLE ${data_schema}.${state_abbrev}_${lookup_name} ADD CONSTRAINT chk_statefp CHECK (statefp = ''${state_fips}'');"
+	${psql} -c "vacuum analyze ${data_schema}.${state_abbrev}_${lookup_name};"',  ARRAY['gid','statefp','fromarmid', 'toarmid']);
+
+CREATE OR REPLACE FUNCTION loader_generate_nation_script(os text)
+  RETURNS SETOF text AS
+$BODY$
+WITH lu AS (SELECT lookup_name, table_name, pre_load_process,post_load_process, process_order, insert_mode, single_geom_mode, level_nation, level_county, level_state
+    FROM  loader_lookuptables 
+				WHERE level_nation = true AND load = true)
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'website_root', 'psql',  'data_schema', 'staging_schema'], 
+				ARRAY[variables.staging_fold, variables.website_root, platform.psql, variables.data_schema, variables.staging_schema]
+			), '/', platform.path_sep) || '
+'  ||
+	-- Nation level files
+	array_to_string( ARRAY(SELECT loader_macro_replace('cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || variables.website_root  || '/' || upper(table_name)  || '/ --no-parent --relative --recursive --level=1 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(variables.website_root, 'http://', ''),'ftp://','')  || '/' || upper(table_name)  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*' || table_name || '.zip ') || '
+' || COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -D -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year 
+	|| '_us_' || lu.table_name || '.dbf tiger_staging.' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ]
+			)
+				FROM lu
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'website_root'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, variables.website_root])
+			AS shell_code
+FROM loader_variables As variables
+	 CROSS JOIN loader_platform As platform
+WHERE platform.os = $1 -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+  
+CREATE OR REPLACE FUNCTION loader_generate_script(param_states text[], os text)
+  RETURNS SETOF text AS
+$BODY$
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
+				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
+			), '/', platform.path_sep) || '
+' ||
+	-- State level files - if an override website is specified we use that instead of variable one
+	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/tl_*_' || s.state_fips || '_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -D -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
+	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
+				FROM loader_lookuptables AS lu
+				WHERE level_state = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	-- County Level files
+	|| E'\n' ||
+		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/tl_*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '*.zip ') || '
+' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
+				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || ' -D ' || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
+				FROM loader_lookuptables AS lu
+				WHERE level_county = true AND load = true
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
+			AS shell_code
+FROM loader_variables As variables
+		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
+			 lpad(st_code::text,2,'0') || '_' 
+	|| replace(name, ' ', '_') As state_fold
+FROM state_lookup) As s CROSS JOIN loader_platform As platform
+WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
+AND platform.os = $2  -- generate script for selected platform
+;
+$BODY$
+  LANGUAGE sql VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text, param_columns_exclude text[]) RETURNS integer
+AS
+$$
+DECLARE 
+	var_sql text;
+	var_staging_schema text; var_data_schema text;
+	var_temp text;
+	var_num_records bigint;
+BEGIN
+-- Add all the fields except geoid and gid
+-- Assume all the columns are in same order as target
+	SELECT staging_schema, data_schema INTO var_staging_schema, var_data_schema FROM loader_variables;
+	var_sql := 'INSERT INTO ' || var_data_schema || '.' || quote_ident(param_target_table) || '(' ||
+			array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_target_table
+					AND table_schema = var_data_schema 
+					AND column_name <> ALL(param_columns_exclude) ), ',') || ') SELECT ' 
+					|| array_to_string(ARRAY(SELECT quote_ident(column_name::text) 
+				FROM information_schema.columns 
+				 WHERE table_name = param_staging_table
+					AND table_schema = var_staging_schema 
+					AND column_name <> ALL( param_columns_exclude) ), ',') ||' FROM ' 
+					|| var_staging_schema || '.' || param_staging_table || ';';
+	RAISE NOTICE '%', var_sql;
+	EXECUTE (var_sql);
+	GET DIAGNOSTICS var_num_records = ROW_COUNT;
+	SELECT DropGeometryTable(var_staging_schema,param_staging_table) INTO var_temp;
+	RETURN var_num_records;
+END;
+$$
+LANGUAGE 'plpgsql' VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_load_staged_data(param_staging_table text, param_target_table text) 
+RETURNS integer AS
+$$
+-- exclude this set list of columns if no exclusion list is specified 
+
+   SELECT  loader_load_staged_data($1, $2,(SELECT COALESCE(columns_exclude,ARRAY['gid', 'geoid','cpi','suffix1ce', 'statefp00', 'statefp10', 'countyfp00','countyfp10'
+   ,'tractce00','tractce10', 'blkgrpce00', 'blkgrpce10', 'blockce00', 'blockce10'
+      , 'cousubfp00', 'submcdfp00', 'conctyfp00', 'placefp00', 'aiannhfp00', 'aiannhce00', 
+       'comptyp00', 'trsubfp00', 'trsubce00', 'anrcfp00', 'elsdlea00', 'scsdlea00', 
+       'unsdlea00', 'uace00', 'cd108fp', 'sldust00', 'sldlst00', 'vtdst00', 'zcta5ce00', 
+       'tazce00', 'ugace00', 'puma5ce00','vtdst10','tazce10','uace10','puma5ce10','tazce', 'uace', 'vtdst', 'zcta5ce', 'zcta5ce10', 'puma5ce', 'ugace10','pumace10', 'estatefp', 'ugace', 'blockce']) FROM loader_lookuptables WHERE $2 LIKE '%' || lookup_name))
+$$
+language 'sql' VOLATILE;
+
+CREATE OR REPLACE FUNCTION loader_generate_census_script(param_states text[], os text)
+  RETURNS SETOF text AS
+$$
+SELECT create_census_base_tables();
+SELECT 
+	loader_macro_replace(
+		replace(
+			loader_macro_replace(declare_sect
+				, ARRAY['staging_fold', 'state_fold','website_root', 'psql', 'state_abbrev', 'data_schema', 'staging_schema', 'state_fips'], 
+				ARRAY[variables.staging_fold, s.state_fold, variables.website_root, platform.psql, s.state_abbrev, variables.data_schema, variables.staging_schema, s.state_fips::text]
+			), '/', platform.path_sep) || '
+' ||
+	-- State level files - if an override website is specified we use that instead of variable one
+	array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name) ), 'http://', ''),'ftp://','')    || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '.zip ') || '
+' ||loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || platform.loader || ' -' ||  lu.insert_mode || ' -s 4269 -g the_geom ' 
+		|| CASE WHEN lu.single_geom_mode THEN ' -S ' ELSE ' ' END::text || ' -W "latin1" tl_' || variables.tiger_year || '_' || s.state_fips 
+	|| '_' || lu.table_name || '.dbf tiger_staging.' || lower(s.state_abbrev) || '_' || lu.table_name || ' | '::text || platform.psql 
+		|| COALESCE(E'\n' || 
+			lu.post_load_process , '') , ARRAY['loader','table_name', 'lookup_name'], ARRAY[platform.loader, lu.table_name, lu.lookup_name ])
+				FROM loader_lookuptables AS lu
+				WHERE level_state = true AND load = true AND lookup_name IN('tract','bg','tabblock')
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	-- County Level files
+	|| E'\n' ||
+		array_to_string( ARRAY(SELECT 'cd ' || replace(variables.staging_fold,'/', platform.path_sep) || '
+' || platform.wget || ' ' || COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  ) || '/*_' || s.state_fips || '* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html 
+'
+|| 'cd ' ||  replace(variables.staging_fold,'/', platform.path_sep) || '/' || replace(replace(COALESCE(lu.website_root_override,variables.website_root || '/' || upper(table_name)  || '/'), 'http://', ''),'ftp://','')  || '
+' || replace(platform.unzip_command, '*.zip', 'tl_*_' || s.state_fips || '*_' || table_name || '*.zip ') || '
+' || loader_macro_replace(COALESCE(lu.pre_load_process || E'\n', '') || COALESCE(county_process_command || E'\n','')
+				|| COALESCE(E'\n' ||lu.post_load_process , '') , ARRAY['loader','table_name','lookup_name'], ARRAY[platform.loader  || CASE WHEN lu.single_geom_mode THEN ' -S' ELSE ' ' END::text, lu.table_name, lu.lookup_name ]) 
+				FROM loader_lookuptables AS lu
+				WHERE level_county = true AND load = true AND lookup_name IN('tract','bg','tabblock')
+				ORDER BY process_order, lookup_name), E'\n') ::text 
+	, ARRAY['psql', 'data_schema','staging_schema', 'staging_fold', 'state_fold', 'website_root', 'state_abbrev','state_fips'], 
+	ARRAY[platform.psql,  variables.data_schema, variables.staging_schema, variables.staging_fold, s.state_fold,variables.website_root, s.state_abbrev, s.state_fips::text])
+			AS shell_code
+FROM loader_variables As variables
+		CROSS JOIN (SELECT name As state, abbrev As state_abbrev, lpad(st_code::text,2,'0') As state_fips, 
+			 lpad(st_code::text,2,'0') || '_' 
+	|| replace(name, ' ', '_') As state_fold
+FROM state_lookup) As s CROSS JOIN loader_platform As platform
+WHERE $1 @> ARRAY[state_abbrev::text]      -- If state is contained in list of states input generate script for it
+AND platform.os = $2  -- generate script for selected platform
+;
+$$
+  LANGUAGE sql VOLATILE;
+
+SELECT create_census_base_tables();
+COMMIT;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/topology/README b/extras/tiger_geocoder/topology/README
new file mode 100644
index 0000000..c71fd79
--- /dev/null
+++ b/extras/tiger_geocoder/topology/README
@@ -0,0 +1,3 @@
+This folder will contain functions for converting tiger data to 
+PostGIS topology format. It assumes tiger data has already been loaded using
+the tiger loader.
\ No newline at end of file
diff --git a/extras/tiger_geocoder/topology/tiger_topology_loader.sql b/extras/tiger_geocoder/topology/tiger_topology_loader.sql
new file mode 100644
index 0000000..af6068a
--- /dev/null
+++ b/extras/tiger_geocoder/topology/tiger_topology_loader.sql
@@ -0,0 +1,186 @@
+/*******************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * Copyright 2011 Leo Hsu and Regina Obe <lr at pcorp.us> 
+ * Paragon Corporation
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ * This file contains helper functions for loading tiger data
+ * into postgis topology structure
+ **********************************************************************/
+
+ /** topology_load_tiger: Will load all edges, faces, nodes into 
+ *  topology named toponame
+ *	that intersect the specified region
+ *  region_type: 'place', 'county'
+ *  region_id: the respective fully qualified geoid
+ *	 place - plcidfp
+ *	 county - cntyidfp 
+ * USE CASE: 
+ *  The following will create a topology called topo_boston 
+ *   in Mass State Plane feet and load Boston, MA tiger data
+ *  with tolerance of 1 foot
+ * SELECT topology.DropTopology('topo_boston');
+ * SELECT topology.CreateTopology('topo_boston', 2249,0.25);
+ * SELECT tiger.topology_load_tiger('topo_boston', 'place', '2507000'); 
+ * SELECT topology.TopologySummary('topo_boston');
+ * SELECT topology.ValidateTopology('topo_boston');  
+ ****/
+CREATE OR REPLACE FUNCTION tiger.topology_load_tiger(IN toponame varchar,  
+	region_type varchar, region_id varchar)
+  RETURNS text AS
+$$
+DECLARE
+ 	var_sql text;
+ 	var_rgeom geometry;
+ 	var_statefp text;
+ 	var_rcnt bigint;
+ 	var_result text := '';
+ 	var_srid int := 4269;
+ 	var_precision double precision := 0;
+BEGIN
+	CASE region_type
+		WHEN 'place' THEN
+			SELECT the_geom , statefp FROM place INTO var_rgeom, var_statefp WHERE plcidfp = region_id;
+		WHEN 'county' THEN
+			SELECT the_geom, statefp FROM county INTO var_rgeom, var_statefp WHERE cntyidfp = region_id;
+		ELSE
+			RAISE EXCEPTION 'Region type % IS NOT SUPPORTED', region_type;
+	END CASE;
+	SELECT srid, precision FROM topology.topology into var_srid, var_precision
+                WHERE name = toponame;
+	var_sql := '
+	CREATE TEMPORARY TABLE tmp_edge
+   				AS 
+	WITH te AS 
+   			(SELECT tlid,  ST_GeometryN(ST_SnapToGrid(ST_Transform(ST_LineMerge(the_geom),$3),$4),1) As geom, tnidf, tnidt, tfidl, tfidr , the_geom As orig_geom
+									FROM tiger.edges 
+									WHERE statefp = $1 AND ST_Covers($2, the_geom)
+										)
+					SELECT DISTINCT ON (t.tlid) t.tlid As edge_id,t.geom 
+                        , t.tnidf As start_node, t.tnidt As end_node, COALESCE(t.tfidl,0) As left_face
+                        , COALESCE(t.tfidr,0) As right_face, COALESCE(tl.tlid, t.tlid) AS next_left_edge,  COALESCE(tr.tlid, t.tlid) As next_right_edge, t.orig_geom
+						FROM 
+							te AS t LEFT JOIN te As tl ON (t.tnidf = tl.tnidt AND t.tfidl = tl.tfidl)
+							 LEFT JOIN te As tr ON (t.tnidt = tr.tnidf AND t.tfidr = tr.tfidr)				
+						';
+	EXECUTE var_sql USING var_statefp, var_rgeom, var_srid, var_precision;
+	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
+	var_result := var_rcnt::text || ' edges holding in temporary. ';
+	var_sql := 'ALTER TABLE tmp_edge ADD CONSTRAINT pk_tmp_edge PRIMARY KEY(edge_id );';
+	EXECUTE var_sql;
+	-- CREATE node indexes on temporary edges
+	var_sql := 'CREATE INDEX idx_tmp_edge_start_node ON tmp_edge USING btree (start_node ); CREATE INDEX idx_tmp_edge_end_node ON tmp_edge USING btree (end_node );';
+
+	EXECUTE var_sql;
+
+	-- CREATE face indexes on temporary edges
+	var_sql := 'CREATE INDEX idx_tmp_edge_left_face ON tmp_edge USING btree (left_face ); CREATE INDEX idx_tmp_edge_right_face ON tmp_edge USING btree (right_face );';
+
+	EXECUTE var_sql;
+
+	-- CREATE edge indexes on temporary edges
+	var_sql := 'CREATE INDEX idx_tmp_edge_next_left_edge ON tmp_edge USING btree (next_left_edge ); CREATE INDEX idx_tmp_edge_next_right_edge ON tmp_edge USING btree (next_right_edge);';
+
+	EXECUTE var_sql;
+	
+	-- start load in faces
+	var_sql := 'INSERT INTO ' || quote_ident(toponame) || '.face(face_id, mbr) 
+						SELECT f.tfid, ST_Envelope(ST_Transform(f.the_geom,$3)) As mbr 
+							FROM tiger.faces AS f
+								WHERE statefp = $1 AND 
+								(  tfid IN(SELECT left_face FROM tmp_edge)
+									OR tfid IN(SELECT right_face FROM tmp_edge) OR ST_Covers($2, the_geom) )
+							AND tfid NOT IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face) ';
+	EXECUTE var_sql USING var_statefp, var_rgeom, var_srid;
+	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
+	var_result := var_result || var_rcnt::text || ' faces added. ';
+   -- end load in faces
+   
+   -- add remaining missing edges of present faces --
+   var_sql := 'INSERT INTO tmp_edge(edge_id, geom, start_node, end_node, left_face, right_face, next_left_edge, next_right_edge, orig_geom)	
+   			WITH te AS 
+   			(SELECT tlid,  ST_GeometryN(ST_SnapToGrid(ST_Transform(ST_LineMerge(the_geom),$2),$3),1) As geom, tnidf, tnidt, tfidl, tfidr, the_geom As orig_geom 
+									FROM tiger.edges 
+									WHERE statefp = $1 AND
+									 (tfidl IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face)
+				OR tfidr IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face) )
+				AND tlid NOT IN(SELECT edge_id FROM tmp_edge)
+				 )
+				
+			SELECT DISTINCT ON (t.tlid) t.tlid As edge_id,t.geom 
+                        , t.tnidf As start_node, t.tnidt As end_node, t.tfidl As left_face
+                        , t.tfidr As right_face, tl.tlid AS next_left_edge,  tr.tlid As next_right_edge, t.orig_geom
+				FROM 
+						te AS t LEFT JOIN te As tl 
+								ON (t.tnidf = tl.tnidt AND t.tfidl = tl.tfidl)
+			LEFT JOIN te As tr ON (t.tnidt = tr.tnidf AND t.tfidr = tr.tfidr)
+			';
+	EXECUTE var_sql USING var_statefp, var_srid, var_precision;
+	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
+	var_result := var_result || var_rcnt::text || ' edges of faces added. ';
+   	-- start load in nodes
+	var_sql := 'INSERT INTO ' || quote_ident(toponame) || '.node(node_id, geom)
+					SELECT DISTINCT ON(tnid) tnid, geom
+						FROM 
+						( 
+							SELECT start_node AS tnid, ST_StartPoint(e.geom) As geom 
+								FROM tmp_edge As e LEFT JOIN ' || quote_ident(toponame) || '.node AS n ON e.start_node = n.node_id
+						UNION ALL 
+							SELECT end_node AS tnid, ST_EndPoint(e.geom) As geom 
+							FROM tmp_edge As e LEFT JOIN ' || quote_ident(toponame) || '.node AS n ON e.end_node = n.node_id 
+							WHERE n.node_id IS NULL) As f 
+							WHERE tnid NOT IN(SELECT node_id FROM  ' || quote_ident(toponame) || '.node)
+					 ';
+	EXECUTE var_sql USING var_statefp, var_rgeom;
+	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
+	var_result := var_result || ' ' || var_rcnt::text || ' nodes added. ';
+
+   -- end load in nodes
+   -- start Mark which nodes are contained in faces
+   	var_sql := 'UPDATE ' || quote_ident(toponame) || '.node AS n
+					SET containing_face = f.tfid
+						FROM (SELECT tfid, the_geom
+							FROM tiger.faces WHERE statefp = $1 
+							AND tfid IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face) 
+							) As f
+						WHERE ST_ContainsProperly(f.the_geom, ST_Transform(n.geom,4269)) ';
+	EXECUTE var_sql USING var_statefp, var_rgeom;
+	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
+	var_result := var_result || ' ' || var_rcnt::text || ' nodes contained in a face. ';
+   -- end Mark nodes contained in faces
+
+   -- Set orphan left right to itself and set edges with missing faces to world face
+   var_sql := 'UPDATE tmp_edge SET next_left_edge = -1*edge_id WHERE next_left_edge IS NULL OR next_left_edge NOT IN(SELECT edge_id FROM tmp_edge);
+        UPDATE tmp_edge SET next_right_edge = -1*edge_id WHERE next_right_edge IS NULL OR next_right_edge NOT IN(SELECT edge_id FROM tmp_edge);
+        UPDATE tmp_edge SET left_face = 0 WHERE left_face NOT IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face);
+        UPDATE tmp_edge SET right_face = 0 WHERE right_face NOT IN(SELECT face_id FROM ' || quote_ident(toponame) || '.face);';
+   EXECUTE var_sql;
+
+   -- force edges start and end points to match the start and end nodes --
+   var_sql := 'UPDATE tmp_edge SET geom = ST_SetPoint(ST_SetPoint(tmp_edge.geom, 0, s.geom), ST_NPoints(tmp_edge.geom) - 1,e.geom)  
+                FROM ' || quote_ident(toponame) || '.node AS s, ' || quote_ident(toponame) || '.node As e
+                WHERE s.node_id = tmp_edge.start_node AND e.node_id = tmp_edge.end_node AND 
+                    ( NOT ST_Equals(s.geom, ST_StartPoint(tmp_edge.geom) ) OR NOT ST_Equals(e.geom, ST_EndPoint(tmp_edge.geom) ) ) '  ;   
+    EXECUTE var_sql;
+    GET DIAGNOSTICS var_rcnt = ROW_COUNT;
+    var_result := var_result || ' ' || var_rcnt::text || ' edge start end corrected. ';
+   -- TODO: Load in edges --
+   var_sql := '
+   	INSERT INTO ' || quote_ident(toponame) || '.edge(edge_id, geom, start_node, end_node, left_face, right_face, next_left_edge, next_right_edge)
+					SELECT t.edge_id, t.geom, t.start_node, t.end_node, COALESCE(t.left_face,0) As left_face, COALESCE(t.right_face,0) As right_face, t.next_left_edge, t.next_right_edge
+						FROM 
+							tmp_edge AS t
+							WHERE t.edge_id NOT IN(SELECT edge_id FROM ' || quote_ident(toponame) || '.edge) 				
+						';
+	EXECUTE var_sql USING var_statefp, var_rgeom;
+	GET DIAGNOSTICS var_rcnt = ROW_COUNT;
+	var_result := var_result || ' ' || var_rcnt::text || ' edges added. ';
+	var_sql = 'DROP TABLE tmp_edge;';
+	EXECUTE var_sql;
+	RETURN var_result;
+END
+$$
+  LANGUAGE plpgsql VOLATILE
+  COST 1000;
\ No newline at end of file
diff --git a/extras/tiger_geocoder/upgrade_geocode.sql b/extras/tiger_geocoder/upgrade_geocode.sql
new file mode 100644
index 0000000..bbc1718
--- /dev/null
+++ b/extras/tiger_geocoder/upgrade_geocode.sql
@@ -0,0 +1,297 @@
+--
+-- PostGIS - Spatial Types for PostgreSQL
+-- http://postgis.net
+--
+-- Copyright (C) 2010, 2011 Regina Obe and Leo Hsu
+--
+-- This is free software; you can redistribute and/or modify it under
+-- the terms of the GNU General Public Licence. See the COPYING file.
+--
+-- Author: Regina Obe and Leo Hsu <lr at pcorp.us>
+--  
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+\i utility/set_search_path.sql;
+-- Tiger is where we're going to create the functions, but we need
+-- the PostGIS functions/types which may be anywhere 
+-- we'll assume user has postgis functions and other contribs as part of search path
+-- the below call will put tiger schema in front so all objects in this script
+-- will get created in search path
+SELECT tiger.SetSearchPathForInstall('tiger');
+--this is used currently for debugging
+\i geocode_settings.sql
+--this will fail if the column already exists which is fine
+ALTER TABLE state_lookup ADD COLUMN statefp char(2);
+UPDATE state_lookup SET statefp = lpad(st_code::text,2,'0') WHERE statefp IS NULL;
+ALTER TABLE state_lookup ADD CONSTRAINT state_lookup_statefp_key UNIQUE(statefp);
+CREATE INDEX idx_tiger_edges_countyfp ON edges USING btree(countyfp);
+CREATE INDEX idx_tiger_faces_countyfp ON faces USING btree(countyfp);
+CREATE INDEX tiger_place_the_geom_gist ON place USING gist(the_geom);
+CREATE INDEX tiger_edges_the_geom_gist ON edges USING gist(the_geom);
+CREATE INDEX tiger_state_the_geom_gist ON faces USING gist(the_geom);
+DROP FUNCTION IF EXISTS reverse_geocode(geometry); /** changed to use default parameters **/
+DROP FUNCTION IF EXISTS geocode_location(norm_addy); /** changed to include default parameter for restrict_geom**/
+DROP FUNCTION IF EXISTS geocode(varchar); /** changed to include default parameter for max_results and restrict_geom**/
+DROP FUNCTION IF EXISTS geocode(norm_addy); /** changed to include default parameter for max_results and restrict_geom **/
+DROP FUNCTION IF EXISTS geocode(varchar, integer); /** changed to include default parameter for max_results and restrict_geom **/
+DROP FUNCTION IF EXISTS geocode(norm_addy,integer); /** changed to include default parameter for max_results and restrict_geom **/
+DROP FUNCTION IF EXISTS geocode_address(norm_addy); /** changed to include default parameter for max_results **/
+DROP FUNCTION IF EXISTS geocode_address(norm_addy,integer); /** changed to include default parameter for max_results and restrict_geom **/
+DROP FUNCTION IF EXISTS interpolate_from_address(integer, character varying, character varying, geometry); /** changed to use default args and added offset and side **/
+DROP FUNCTION IF EXISTS interpolate_from_address(integer, integer, integer, geometry); /**don't need this since got collapes into varchar version **/
+
+-- this will fail if already exists, that is fine.  can't use IF NOT EXISTS until 9.1
+SELECT tiger.SetSearchPathForInstall('tiger');
+CREATE TABLE addrfeat
+(
+  gid serial not null primary key,
+  tlid bigint,
+  statefp character varying(2),
+  aridl character varying(22),
+  aridr character varying(22),
+  linearid character varying(22),
+  fullname character varying(100),
+  lfromhn character varying(12),
+  ltohn character varying(12),
+  rfromhn character varying(12),
+  rtohn character varying(12),
+  zipl character varying(5),
+  zipr character varying(5),
+  edge_mtfcc character varying(5),
+  parityl character varying(1),
+  parityr character varying(1),
+  plus4l character varying(4),
+  plus4r character varying(4),
+  lfromtyp character varying(1),
+  ltotyp character varying(1),
+  rfromtyp character varying(1),
+  rtotyp character varying(1),
+  offsetl character varying(1),
+  offsetr character varying(1),
+  the_geom geometry,
+  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269)
+);
+CREATE INDEX idx_addrfeat_geom_gist ON addrfeat USING gist(geom );
+CREATE INDEX idx_addrfeat_tlid ON addrfeat USING btree(tlid);
+CREATE INDEX idx_addrfeat_zipl ON addrfeat USING btree(zipl);
+CREATE INDEX idx_addrfeat_zipr ON addrfeat USING btree(zipr);
+
+-- TODO: Put in logic to update lookup tables as they change.  street_type_lookup has changed since initial release --
+CREATE TABLE zcta5
+(
+  gid serial NOT NULL,
+  statefp character varying(2),
+  zcta5ce character varying(5),
+  classfp character varying(2),
+  mtfcc character varying(5),
+  funcstat character varying(1),
+  aland double precision,
+  awater double precision,
+  intptlat character varying(11),
+  intptlon character varying(12),
+  partflg character varying(1),
+  the_geom geometry,
+  CONSTRAINT uidx_tiger_zcta5_gid UNIQUE (gid),
+  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
+  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
+  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4269),
+  CONSTRAINT pk_tiger_zcta5_zcta5ce PRIMARY KEY (zcta5ce,statefp)
+ );
+
+ALTER TABLE street_type_lookup ALTER COLUMN abbrev  TYPE varchar(50);
+ALTER TABLE street_type_lookup ALTER COLUMN name  TYPE varchar(50);
+ALTER TABLE street_type_lookup ADD COLUMN is_hw boolean NOT NULL DEFAULT false;
+DROP FUNCTION IF EXISTS rate_attributes(character varying, character varying, character varying, character varying, character varying, character varying, character varying, character varying);
+DROP FUNCTION IF EXISTS rate_attributes(character varying, character varying, character varying, character varying, character varying, character varying, character varying, character varying, character varying, character varying);
+
+--ALTER TABLE tiger.addr ALTER tlid TYPE bigint;
+ALTER TABLE featnames ALTER COLUMN tlid SET NOT NULL;
+ALTER TABLE county ALTER COLUMN statefp SET NOT NULL;
+ALTER TABLE edges ALTER COLUMN tlid SET NOT NULL;
+ALTER TABLE addr ALTER COLUMN tlid SET NOT NULL;
+BEGIN;
+-- Type used to pass around a normalized address between functions
+-- This is s bit dangerous since it could potentially drop peoples tables
+-- TODO: put in logic to check if any tables have norm_addy and don't drop if they do
+-- Remarking this out for now since we aren't changing norm_addy anyway
+/*DROP TYPE IF EXISTS norm_addy CASCADE; 
+CREATE TYPE norm_addy AS (
+    address INTEGER,
+    preDirAbbrev VARCHAR,
+    streetName VARCHAR,
+    streetTypeAbbrev VARCHAR,
+    postDirAbbrev VARCHAR,
+    internal VARCHAR,
+    location VARCHAR,
+    stateAbbrev VARCHAR,
+    zip VARCHAR,
+    parsed BOOLEAN); */
+-- prefix and suffix street names for numbered highways
+CREATE TEMPORARY TABLE temp_types AS
+SELECT name, abbrev, true
+    FROM (VALUES
+        ('CAM', 'Cam'),
+        ('CAM.', 'Cam'),
+        ('CAMINO', 'Cam'),
+        ('CO HWY', 'Co Hwy'),
+        ('COUNTY HWY', 'Co Hwy'),
+        ('COUNTY HIGHWAY', 'Co Hwy'),
+        ('COUNTY HIGH WAY', 'Co Hwy'),
+        ('COUNTY ROAD', 'Co Rd'),
+        ('COUNTY RD', 'Co Rd'),
+        ('CO RD', 'Co Rd'),
+        ('CORD', 'Co Rd'),
+        ('CO RTE', 'Co Rte'),
+        ('COUNTY ROUTE', 'Co Rte'),
+        ('CO ST AID HWY', 'Co St Aid Hwy'),
+        ('EXP', 'Expy'),
+        ('EXPR', 'Expy'),
+        ('EXPRESS', 'Expy'),
+        ('EXPRESSWAY', 'Expy'),
+        ('EXPW', 'Expy'),
+        ('EXPY', 'Expy'),
+        ('FARM RD', 'Farm Rd'),
+        ('FIRE RD', 'Fire Rd'),
+        ('FOREST RD', 'Forest Rd'),
+        ('FOREST ROAD', 'Forest Rd'),
+        ('FOREST RTE', 'Forest Rte'),
+        ('FOREST ROUTE', 'Forest Rte'),
+        ('FREEWAY', 'Fwy'),
+        ('FREEWY', 'Fwy'),
+        ('FRWAY', 'Fwy'),
+        ('FRWY', 'Fwy'),
+        ('FWY', 'Fwy'),
+        ('HIGHWAY', 'Hwy'),
+        ('HIGHWY', 'Hwy'),
+        ('HIWAY', 'Hwy'),
+        ('HIWY', 'Hwy'),
+        ('HWAY', 'Hwy'),
+        ('HWY', 'Hwy'),
+        ('I', 'I-'),
+        ('I-', 'I-'),
+        ('INTERSTATE', 'I-'),
+        ('INTERSTATE ROUTE', 'I-'),
+        ('INTERSTATE RTE', 'I-'),
+        ('INTERSTATE RTE.', 'I-'),
+        ('INTERSTATE RT', 'I-'),
+        ('LOOP', 'Loop'),
+        ('ROUTE', 'Rte'),
+        ('RTE', 'Rte'),
+        ('RT', 'Rte'),
+        ('STATE HWY', 'State Hwy'),
+        ('STATE HIGHWAY', 'State Hwy'),
+        ('STATE HIGH WAY', 'State Hwy'),
+        ('STATE RD', 'State Rd'),
+        ('STATE ROAD', 'State Rd'),
+        ('STATE ROUTE', 'State Rte'),
+        ('STATE RTE', 'State Rte'),
+        ('TPK', 'Tpke'),
+        ('TPKE', 'Tpke'),
+        ('TRNPK', 'Tpke'),
+        ('TRPK', 'Tpke'),
+        ('TURNPIKE', 'Tpke'),
+        ('TURNPK', 'Tpke'),
+        ('US HWY', 'US Hwy'),
+        ('US HIGHWAY', 'US Hwy'),
+        ('US HIGH WAY', 'US Hwy'),
+        ('U.S.', 'US Hwy'),
+        ('US RTE', 'US Rte'),
+        ('US ROUTE', 'US Rte'),
+        ('US RT', 'US Rte'),
+        ('USFS HWY', 'USFS Hwy'),
+        ('USFS HIGHWAY', 'USFS Hwy'),
+        ('USFS HIGH WAY', 'USFS Hwy'),
+        ('USFS RD', 'USFS Rd'),
+        ('USFS ROAD', 'USFS Rd')
+           ) t(name, abbrev)
+           WHERE t.name NOT IN(SELECT name FROM street_type_lookup);
+           
+DELETE FROM street_type_lookup WHERE name IN(SELECT name FROM temp_types);         
+INSERT INTO street_type_lookup (name, abbrev, is_hw) 
+SELECT name, abbrev, true
+    FROM temp_types As t
+           WHERE t.name NOT IN(SELECT name FROM street_type_lookup);
+DROP TABLE temp_types;           
+DELETE FROM street_type_lookup WHERE name = 'FOREST';
+UPDATE street_type_lookup SET is_hw = false WHERE abbrev = 'Loop';
+
+CREATE TEMPORARY TABLE temp_types AS
+SELECT name, abbrev
+    FROM (VALUES 
+ ('LOOP', 'Loop'),
+ ('SERVICE DRIVE', 'Svc Dr'),
+ ('SERVICE DR', 'Svc Dr'),
+ ('SERVICE ROAD', 'Svc Rd'),
+ ('SERVICE RD', 'Svc Rd') 
+    ) t(name, abbrev);
+ 
+DELETE FROM street_type_lookup WHERE name IN(SELECT name FROM temp_types);         
+INSERT INTO street_type_lookup (name, abbrev, is_hw) 
+SELECT name, abbrev, false
+    FROM temp_types As t
+           WHERE t.name NOT IN(SELECT name FROM street_type_lookup);
+ 
+SELECT tiger.SetSearchPathForInstall('tiger');
+\i geocode_settings.sql
+-- new census loader
+\i census_loader.sql
+--create parent tables for census
+-- if they do not exist
+SELECT create_census_base_tables();
+-- System/General helper functions
+\i utility/utmzone.sql
+\i utility/cull_null.sql
+\i utility/nullable_levenshtein.sql
+\i utility/levenshtein_ignore_case.sql
+
+---- Address normalizer
+-- General helpers
+\i normalize/end_soundex.sql
+\i normalize/count_words.sql
+\i normalize/state_extract.sql
+\i normalize/get_last_words.sql
+-- Location extraction/normalization helpers
+\i normalize/location_extract_countysub_exact.sql
+\i normalize/location_extract_countysub_fuzzy.sql
+\i normalize/location_extract_place_exact.sql
+\i normalize/location_extract_place_fuzzy.sql
+\i normalize/location_extract.sql
+-- Normalization API, called by geocode mainly.
+\i normalize/normalize_address.sql
+\i normalize/pprint_addy.sql
+\i pagc_normalize/pagc_tables.sql
+\i pagc_normalize/pagc_normalize_address.sql
+
+
+---- Geocoder functions
+-- General helpers
+\i geocode/other_helper_functions.sql
+\i geocode/rate_attributes.sql
+\i geocode/includes_address.sql
+\i geocode/interpolate_from_address.sql
+-- Actual lookups/geocoder helpers
+\i geocode/geocode_address.sql
+\i geocode/geocode_location.sql
+-- Geocode API, called by user
+\i geocode/geocode.sql
+
+-- Reverse Geocode API, called by user
+\i geocode/geocode_intersection.sql
+\i geocode/reverse_geocode.sql
+\i geocode/census_tracts_functions.sql
+COMMIT;
+-- Tiger to PostGIS Topology
+-- only useable if you have topology installed
+\i topology/tiger_topology_loader.sql
+
+-- install missing indexes
+\echo 'Installing missing indexes - this might take a while so be patient ..'
+SELECT install_missing_indexes();
+\a
+--\o 'drop_dup_feat_create_index.sql'
+--\i generate_drop_dupe_featnames.sql
+\o 
+--\i drop_dup_feat_create_index.sql
+\echo 'Missing index Install completed'
\ No newline at end of file
diff --git a/extras/tiger_geocoder/upgrade_geocoder.bat b/extras/tiger_geocoder/upgrade_geocoder.bat
new file mode 100755
index 0000000..954e176
--- /dev/null
+++ b/extras/tiger_geocoder/upgrade_geocoder.bat
@@ -0,0 +1,19 @@
+set PGPORT=5432
+set PGHOST=localhost
+set PGUSER=postgres
+set PGPASSWORD=yourpasswordhere
+set THEDB=geocoder
+set PGBIN=C:\Program Files\PostgreSQL\9.4\bin
+set PGCONTRIB=C:\Program Files\PostgreSQL\9.4\share\contrib
+
+"%PGBIN%\psql"  -d "%THEDB%" -f "upgrade_geocode.sql"
+
+REM "%PGBIN%\psql" -d "%THEDB%" -c "ALTER EXTENSION postgis_tiger_geocoder UPDATE;"
+
+REM unremark the loader line to update your loader scripts
+REM note this wipes out your custom settings in loader_* tables
+REM "%PGBIN%\psql"  -d "%THEDB%" -f "tiger_loader_2015.sql"
+cd regress
+REM "%PGBIN%\psql"  -d "%THEDB%" -t -f regress.sql
+pause
+
diff --git a/extras/tiger_geocoder/upgrade_geocoder.sh b/extras/tiger_geocoder/upgrade_geocoder.sh
new file mode 100755
index 0000000..55c4a84
--- /dev/null
+++ b/extras/tiger_geocoder/upgrade_geocoder.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+export PGPORT=5432
+export PGHOST=localhost
+export PGUSER=postgres
+export PGPASSWORD=yourpasswordhere
+THEDB=geocoder
+PSQL_CMD=/usr/bin/psql
+PGCONTRIB=/usr/share/postgresql/contrib
+${PSQL_CMD} -d "${THEDB}" -f "upgrade_geocode.sql"
+
+#unremark the loader line to update your loader scripts
+#note this wipes out your custom settings in loader_* tables
+#${PSQL_CMD} -d "${THEDB}" -f "tiger_loader_2013.sql"
diff --git a/extras/tiger_geocoder/tiger_2011/utility/cull_null.sql b/extras/tiger_geocoder/utility/cull_null.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/utility/cull_null.sql
rename to extras/tiger_geocoder/utility/cull_null.sql
diff --git a/extras/tiger_geocoder/utility/levenshtein_ignore_case.sql b/extras/tiger_geocoder/utility/levenshtein_ignore_case.sql
new file mode 100644
index 0000000..d0e8322
--- /dev/null
+++ b/extras/tiger_geocoder/utility/levenshtein_ignore_case.sql
@@ -0,0 +1,5 @@
+-- This function determines the levenshtein distance irespective of case.
+CREATE OR REPLACE FUNCTION levenshtein_ignore_case(VARCHAR, VARCHAR) RETURNS INTEGER
+AS $_$
+  SELECT levenshtein(COALESCE(upper($1),''), COALESCE(upper($2),''));
+$_$ LANGUAGE sql IMMUTABLE;
diff --git a/extras/tiger_geocoder/tiger_2011/utility/nullable_levenshtein.sql b/extras/tiger_geocoder/utility/nullable_levenshtein.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/utility/nullable_levenshtein.sql
rename to extras/tiger_geocoder/utility/nullable_levenshtein.sql
diff --git a/extras/tiger_geocoder/utility/set_search_path.sql b/extras/tiger_geocoder/utility/set_search_path.sql
new file mode 100644
index 0000000..243116b
--- /dev/null
+++ b/extras/tiger_geocoder/utility/set_search_path.sql
@@ -0,0 +1,23 @@
+ /*** 
+ * 
+ * Copyright (C) 2012 Regina Obe and Leo Hsu (Paragon Corporation)
+ **/
+-- Adds a schema to  the front of search path so that functions, tables etc get installed by default in set schema
+-- but if people have postgis and other things installed in non-public, it will still keep those in path
+-- Example usage: SELECT tiger.SetSearchPathForInstall('tiger');
+CREATE OR REPLACE FUNCTION tiger.SetSearchPathForInstall(a_schema_name varchar)
+RETURNS text
+AS
+$$
+DECLARE
+	var_result text;
+	var_cur_search_path text;
+BEGIN
+	SELECT reset_val INTO var_cur_search_path FROM pg_settings WHERE name = 'search_path';
+
+	EXECUTE 'SET search_path = ' || quote_ident(a_schema_name) || ', ' || var_cur_search_path; 
+	var_result := a_schema_name || ' has been made primary for install ';
+  RETURN var_result;
+END
+$$
+LANGUAGE 'plpgsql' VOLATILE STRICT;
diff --git a/extras/tiger_geocoder/utility/standardize_tiger_data.sql b/extras/tiger_geocoder/utility/standardize_tiger_data.sql
new file mode 100644
index 0000000..67cf946
--- /dev/null
+++ b/extras/tiger_geocoder/utility/standardize_tiger_data.sql
@@ -0,0 +1,8 @@
+CREATE OR REPLACE FUNCTION tiger.standardize_tiger_data(param_states varchar[]) RETURNS void AS
+$$
+-- fix park addresses, normalizer puts this in suftype
+UPDATE tiger.featnames SET name = replace(name,' Park', ''), suftypabrv = 'Park' where statefp IN (SELECT statefp FROM tiger.state_lookup WHERE abbrev = ANY(param_states) ) 
+     AND name ILIKE '% Park' AND suftypabrv is null;
+
+$$
+language 'sql';
\ No newline at end of file
diff --git a/extras/tiger_geocoder/tiger_2011/utility/utmzone.sql b/extras/tiger_geocoder/utility/utmzone.sql
similarity index 100%
rename from extras/tiger_geocoder/tiger_2011/utility/utmzone.sql
rename to extras/tiger_geocoder/utility/utmzone.sql
diff --git a/java/Makefile b/java/Makefile
deleted file mode 100644
index 3f5e9df..0000000
--- a/java/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# **********************************************************************
-# *
-# * PostGIS - Spatial Types for PostgreSQL
-# * http://postgis.net
-# *
-# * Copyright (C) 2012 Sandro Santilli <strk at keybit.net>
-# *
-# * This is free software; you can redistribute and/or modify it under
-# * the terms of the GNU General Public Licence. See the COPYING file.
-# *
-# **********************************************************************
-
-# TODO: add all subdirs
-SUBDIRS = jdbc
-
-all install uninstall clean distclean check maintainer-clean:
-	for s in $(SUBDIRS); do \
-		echo "---- Making $@ in $${s}"; \
-		$(MAKE) -C $${s} $@ || exit 1; \
-	done;
diff --git a/java/ejb2/CHANGES b/java/ejb2/CHANGES
deleted file mode 100644
index 226efe3..0000000
--- a/java/ejb2/CHANGES
+++ /dev/null
@@ -1,6 +0,0 @@
-PostGIS-EJB2-POC 1.0
-2006/08/29
-
-- Initial release!
-- EJB 2.x support
-- XDoclet code generation
diff --git a/java/ejb2/COPYING b/java/ejb2/COPYING
deleted file mode 100644
index a52b16e..0000000
--- a/java/ejb2/COPYING
+++ /dev/null
@@ -1,341 +0,0 @@
-
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-

-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-

-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-

-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-

-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-

-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/java/ejb2/COPYING_LGPL b/java/ejb2/COPYING_LGPL
deleted file mode 100644
index b124cf5..0000000
--- a/java/ejb2/COPYING_LGPL
+++ /dev/null
@@ -1,510 +0,0 @@
-
-                  GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations
-below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-

-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it
-becomes a de-facto standard.  To achieve this, non-free programs must
-be allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-

-                  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control
-compilation and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-

-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-

-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-

-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at least
-    three years, to give the same user the materials specified in
-    Subsection 6a, above, for a charge no more than the cost of
-    performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-

-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-

-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply, and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License
-may add an explicit geographical distribution limitation excluding those
-countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-

-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                            NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-

-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms
-of the ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.
-It is safest to attach them to the start of each source file to most
-effectively convey the exclusion of warranty; and each file should
-have at least the "copyright" line and a pointer to where the full
-notice is found.
-
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the library,
-if necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James
-  Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/java/ejb2/README b/java/ejb2/README
deleted file mode 100644
index d67ef69..0000000
--- a/java/ejb2/README
+++ /dev/null
@@ -1,177 +0,0 @@
-Using PostGIS Geometry Types with EJB2 -- Proof of Concept
-----------------------------------------------------------
-Copyright (C) 2006 by the Geodetix s.r.l. Company. See
-http://www.geodetix.it/ for further information.
-
-Version 1.0.0 (2006/08/29)
-
-Table of Contents
------------------
-
-0. Licensing
-1. Introduction
-2. Directory Contents
-3. Software Requirements
-4. Installation
-5. Running
-6. Code Details
-
-
-0. Licensing
-------------
-The "Using PostGIS Geometry Types with EJB2 -- Proof of Concept" software is
-a short collection of examples related to the use of PostGIS Java API with
-the EJB 2.x technology.
-Copyright (C) 2006 by the Geodetix s.r.l. Company. See
-http://www.geodetix.it/ for further information.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
-
-
-1. Introduction
----------------
-Our software is a simple proof-of-concept application illustrating how the
-PostGIS provided Java geometric types could be integrated with a set of
-Enterprise Java Bean 2.x components.
-
-To achieve such a goal, an attribute of type org.postgis.Geometry has been 
-added to a BMP (Bean managed Persistence) Entity Bean. Furthermore, by using
-the DAO (Data Access Object) Pattern, the persistence code has been clearly 
-separated from the business logic.
-
-Not to add further complexity, some proper programming behaviours were omitted.
-For example the use of PostGIS geometric types directly inside the Entity Bean 
-code could be avoided by using a WKT compliant string attribute. Another issue
-is about security: table creational methods exposed in the 
-com.geodetix.geo.ejb.GeometryBean home interface should be protected by
-a proper role-base security policy, to avoid normal users deleting database 
-tables.
-
-Nevertheless our application, even if quite simple, still holds a lot of 
-generality and some of the implemented patterns or components are readily 
-usable in real-world applications.
-
-
-2. Directory Contents
----------------------
-
-  ./            Build scripts (build.*), README and licensing information
-  ./src         Java source packages and files
-  ./resources   EJB specific configuration files
-  ./lib         JAR libraries needed to compile and run
-
-
-3. Software Requirements
-------------------------
-We here list all third-party libraries with their versions tested to work
-with the application.
-
-PostGIS JDBC driver version 1.1.3
-http://www.postgis.org/
-
-PostgreSQL JDBC driver version 8.1-404 jdbc3
-http://jdbc.postgresql.org/
-
-XDoclet lib version 1.2.3
-http://xdoclet.sourceforge.net
-
-Apache ANT version 1.6.5
-http://ant.apache.org/
-
-JBOSS Application Server version 4.0.4.GA-Patch1
-http://www.jboss.org/
-
-Note that our tool is application server agnostic and could be easily ported
-to any EJB 2.x compliant Container by modifying the provided deployment 
-ant file which is, in turn, written for the JBoss Application Server.
-
-
-4. Installation
----------------
-After downloading (and compiling, if necessary) all of the required software,
-follow these steps:
-
-- copy the PostGIS driver (postgis_1.1.3.jar) into the ./lib/commonlib 
-directory
-
-- copy the PostgreSQL driver (postgresql-8.1-404.jdbc3.jar) into the 
-./lib/compiletimelib directory
-
-- copy the XDoclet libraries (contained in xdoclet-lib-1.2.3.tgz) into the 
-./lib/xdocletlib directory
-
-- install Apache ANT (follow the installation istructions provided 
-with the tool)
-
-- install the JBoss Application Server
-
-- make sure that your JBOSS_HOME environment variable correctly points to
-the JBoss installation directory (i.e. /opt/jboss-4.0.4.GA)
-
-- create a new PostGIS database according to what specified in the
-./resources/build.properties with the "database.name", "database.login",
-"database.password" properties (eventually change them to fit your needs).
-
-
-5. Running
-----------
-Start the JBoss application server with the provided scripts 
-(run.bat or run.sh).
-
-From the main application directory (./) execute these commands:
-
-> ant install-JDBC-driver
-This command installs the PostgreSQL driver into JBoss
-
-> ant install-DataSource
-This command installs the DataSource Connector into JBoss
-
-> ant javadoc
-This command generates the application API documentation into the ./javadoc
-directory (use index.html to start).
-
-> ant deploy
-Installs the application into JBoss
-
-> ant run-client
-Allows to test the installed application
-
-
-6. Code Details
----------------
-The main components made available in the application are:
-
-- GeometryBean.java
-It is an entity bean containing a geometrical attribute of org.postgis.Geometry
-type which could contain every geometrical type (i.e. POINT, LINESTRING, etc.).
-The user can choose wether to create a NON-OpenGIS or an OpenGIS-compliant 
-bean. The first ones can contain different geometric types in the same table
-with undefined SRID (-1), while the second ones can only contain object of the 
-same type and SRID in one table;
-
-- PostgisGeometryDaoIml.java
-A DAO (Data Access Object) implementing persistence operations for the 
-GeometryBean EJB in a PostGIS database;
-
-- GeometryFacadeBean.java
-A stateless session bean implementing the interface between the geometric 
-entity beans and the client applications;
-
-- Client.java
-It is a simple client executing some tests thus illustrating the use of the 
-provided API.
-
-Further informations could be gathered from the source code and by reading the
-javadoc API documentation.
diff --git a/java/ejb2/build.xml b/java/ejb2/build.xml
deleted file mode 100644
index beaf506..0000000
--- a/java/ejb2/build.xml
+++ /dev/null
@@ -1,272 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project name="postgis-ejb2-poc" default="clean" basedir=".">
-  <description>Using PostGIS Geometry Types with EJB2 - Proof of Concept</description>
-
-  <!-- ENVIROMENT VARIABLES -->
-  <property environment="env"/>
-	
-  <!-- JBOSS PROPERTIES -->
-  <property name="jboss.home" value="${env.JBOSS_HOME}"/>
-  <property name="jboss.server.config" value="default"/>
-  <property name="jboss.server.lib" value="${jboss.home}/server/default/lib"/>
-  <property name="jboss.config.dir" value="${jboss.home}/server/default/conf"/>
-  <property name="jboss.deploy.dir" value="${jboss.home}/server/default/deploy"/>
-
-  <!-- REGULAR DIRECTORIES -->	
-  <property name="src.dir" value="src"/>
-  <property name="build.dir" value="build"/>
-  <property name="distro.dir" value="distro"/>
-  <property name="resources.dir" value="resources"/>
-  <property name="lib.dir" value="lib"/>
-  <property name="compiletime.lib.dir" value="${lib.dir}/compiletimelib"/>
-  <property name="common.jar.dir" value="common"/>
-  <property name="common.lib.dir" value="${lib.dir}/commonlib"/>
-  <property name="merge.dir" value="merge"/>
-  <property name="ejb.jar.dir" value="ejbjars"/>
-  <property name="javadoc.dir" value="javadoc"/>
-
-  <!-- GENERATED DIRECTORIES -->
-  <property name="gen.src.dir" value="gensrc"/>	
-  <property name="generated.dir" value="generated"/>
-  <property name="ejb.deployment.dir" value="${generated.dir}/ejbdeploy"/>
-	
-  <!-- WHERE TO DEPLOY THE FINISHED EAR FILE -->
-  <property name="deploy.path" value="${jboss.home}/server/${jboss.server.config}/deploy"/>
-
-  <!-- WHERE XDOCLET JARS ARE -->
-  <property name="xdoclet.lib.dir" value="${lib.dir}/xdocletlib"/>
-	  
-  <!-- PATH DEFINITION -->
-  <path id="classpath">   
-    <fileset dir="${lib.dir}" includes="*.jar"/>
-    <fileset dir="${compiletime.lib.dir}" includes="*.jar"/>
-    <fileset dir="${common.lib.dir}" includes="*.jar"/>
-    <fileset dir="${xdoclet.lib.dir}" includes="*.jar"/>
-    <fileset dir="${jboss.server.lib}" includes="*.jar"/>
-    <fileset dir="${jboss.home}/client" includes="**/*.jar"/>
-    <pathelement location="${resources.dir}/jndi"/>
-    <pathelement location="${build.dir}"/>
-  </path>
-	
-  <!-- LOAD USER DEFINED PROPERTIES -->
-  <!-- You can add your variables and/or properties in this file -->
-  <property file="${resources.dir}/build.properties" /> 
-
-  <!-- DATABASE RELATED PROPERTIES  -->
-  <property name="datasource.name" value="postgis-ejb2-ds"/>
-  <property name="datasource.file.name" value="postgis-ejb2-ds.xml"/>
-  <property name="database.connection.port" value="5432"/>
-  <property name="database.driver" value="org.postgresql.Driver"/>
-  <property name="database.connection.url" value="jdbc:postgresql://${database.host}:${database.connection.port}/${database.name}"/>
-
-  <!-- IMPORT RELATED BUILD FILES -->
-  <import file="${basedir}/prepare-jboss.xml" />
-	
-  
-  <target name="clean"  description="Delete all temporary directories and files created in the build.">
-    <echo message="Delete all temporary directories and files created in the build."/>
-
-    <delete dir="${gen.src.dir}"/>
-    <delete dir="${ejb.deployment.dir}"/>
-    <delete dir="${ejb.jar.dir}"/>
-    <delete dir="${common.jar.dir}"/>
-    <delete dir="${build.dir}"/>
-    <delete dir="${distro.dir}"/>
-    <delete dir="${generated.dir}"/>
-    <delete dir="${javadoc.dir}"/>
-
-    <delete>
-      <fileset dir="${basedir}" includes="**/*.bak"/>
-    </delete>		
-  </target>
-
-  
-  <target name="deploy" description="Deploy the application into JBOSS." depends="build-ear">
-    <echo message="Deploy EAR file."/>
-    <copy file="${distro.dir}/${ant.project.name}.ear"  todir="${deploy.path}"/>
-  </target>
-
-  
-  <target name="undeploy" description="Undeploy the Application." >
-    <echo message="Undeploy EAR file."/>
-    <delete file="${deploy.path}/${ant.project.name}.ear" />
-  </target>
-
-  
-  <target name="generate-ejb">
-    <echo message="Generate files with XDoclet."/>
-
-    <taskdef  name="ejbdoclet" 
-              classname="xdoclet.modules.ejb.EjbDocletTask"
-              classpathref="classpath"/>
-		
-    <!-- Generate EJB "stuff" -->
-    <ejbdoclet destdir="${gen.src.dir}" mergeDir="${merge.dir}" ejbSpec="2.1">
-      <packageSubstitution packages="ejb" substituteWith="interfaces"/>
-
-      <fileset dir="${src.dir}">
-        <include name="**/*Bean.java" />
-        <include name="**/*Service.java" />
-      </fileset>
-
-      <!-- Generate a deployment descriptor file, including all beans processed. -->
-      <deploymentdescriptor destdir="${ejb.deployment.dir}"/>
-
-      <!-- Generate JBOSS specific files  -->
-      <jboss destdir="${ejb.deployment.dir}" version="4.0" />
-
-      <!-- Generate all of the home and logical interfaces, unless told otherwise in the meta-information. -->
-      <homeinterface/>
-      <remoteinterface/>
-      <localinterface/>
-      <localhomeinterface/>
-
-      <!-- Generate a value object if the bean  has a @ejb.value-object tag.-->
-      <valueobject>
-        <packageSubstitution packages="ejb" 
-                             substituteWith="value"/>
-      </valueobject>
-
-      <!-- Generate a utility object for each EJB. -->
-      <utilobject includeGUID="true" 
-                  cacheHomes="true"
-                  kind="physical">
-        <packageSubstitution packages="ejb" 
-                             substituteWith="util"/>
-      </utilobject>
-
-      <!-- Generate complete entity and session classes (including ejbXXX() methods) based on the implementation class. -->
-      <entitybmp/>
-      <entitycmp/>
-      <session/>
-
-      <entitypk>
-        <packageSubstitution packages="ejb" 
-                             substituteWith="pk"/>
-      </entitypk>
-
-      <dao pattern="{0}Dao">
-        <packageSubstitution packages="ejb" 
-                             substituteWith="dao"/>
-      </dao>
-
-    </ejbdoclet>
-  </target>
-
-
-  <target name="build-common-jar" >
-    <mkdir dir="${common.jar.dir}"/>
-
-    <jar destfile="${common.jar.dir}/common.jar">
-      <fileset dir="${common.lib.dir}" includes="*.jar"/>
-    </jar>
-  </target>
-
-
-  <target name="build-ear" 
-          depends="build-ejb-jar,build-common-jar" 
-          description="Build .ear file and put it into distro dir.">
-    <mkdir dir="${distro.dir}"/>
-
-    <ear destfile="${distro.dir}/${ant.project.name}.ear" 
-         appxml="${resources.dir}/application.xml">
-      <fileset dir="${ejb.jar.dir}" includes="*.jar"/>
-      <fileset dir="${common.jar.dir}" includes="*.jar"/>
-    </ear>
-  </target>
-
-
-  <target name="build-ejb-jar" depends="compile" >
-    <mkdir dir="${ejb.jar.dir}"/>
-
-    <jar jarfile="${ejb.jar.dir}/ejb.jar">
-      <fileset dir="${build.dir}">
-        <include name="**/ejb/*.class"/>
-        <include name="**/exception/*.class"/>
-        <include name="**/util/*.class"/>
-        <include name="**/dao/*.class"/>
-        <include name="**/value/*.class"/>
-        <include name="**/interfaces/*.class"/>
-        <exclude name="**/client/*.class"/>
-      </fileset>  
-
-      <metainf dir="${ejb.deployment.dir}">
-        <include name="ejb-jar.xml"/>
-        <include name="jboss.xml"/>
-        <include name="jbosscmp-jdbc.xml"/> 
-      </metainf>
-    </jar>
-  </target> 
-
-
-  <target name="compile" depends="clean,generate-ejb" description="Compile EJB source code.">
-    <echo message="Compile source code."/>
-
-    <mkdir dir="${build.dir}"/>
-
-    <javac debug="on"
-           deprecation="on"
-           optimize="on"
-           encoding="iso-8859-1"
-           listfiles="no"
-           destdir="${build.dir}" 
-           classpathref="classpath">
-      <src path="${gen.src.dir};${src.dir}"/>
-      <exclude name="**/client/*.java"/>
-    </javac>
-  </target>
-
-
-  <target name="compile-client" depends="compile" description="Compile Client source code.">
-    <echo message="Compile Client source code."/>
-
-    <delete>
-      <fileset dir="${build.dir}" includes="**/client/*.*"/>
-    </delete>		
-
-    <mkdir dir="${build.dir}"/>
-
-    <javac debug="on"
-           deprecation="on"
-           optimize="on"
-           encoding="iso-8859-1"
-           listfiles="no"
-           destdir="${build.dir}" 
-           classpathref="classpath">
-      <src path="${gen.src.dir};${src.dir}"/>
-      <include name="**/client/*.java"/>
-    </javac>
-  </target>
-
-  
-  <target name="run-client"  description="Execute Client." depends="compile-client">
-    <java classname="com.geodetix.geo.client.Client" dir="." fork="true" classpathref="classpath" />
-  </target>
-
-
-  <target name="javadoc" 
-          depends="compile"
-          description="Create Project API documentation.">
-    <delete dir="${javadoc.dir}" />
-    <mkdir dir="${javadoc.dir}"/>
-    <javadoc destdir="${javadoc.dir}" sourcepath="${gen.src.dir};${src.dir}">
-      <classpath refid="classpath"/>
-      <packageset dir="${gen.src.dir}" defaultexcludes="yes">
-        <include name="**"/>   
-        <exclude name="**/ejb/**"/>   
-      </packageset>
-
-      <packageset dir="${src.dir}" defaultexcludes="yes">
-        <include name="**/exception/**"/> 
-        <include name="**/client/**"/> 
-        <include name="**/dao/**"/>     
-        <exclude name="**/ejb/**"/>
-      </packageset>
-
-      <doctitle><![CDATA[<h1>Using PostGIS Geometry Types with EJB2 <br> Proof of Concept</h1>]]></doctitle>
-      <bottom><![CDATA[<i>Copyright © 2006 <a href="http://www.geodetix.it" target="_new">Geodetix S.r.l.</a> All Rights Reserved.</i>]]></bottom>
-    </javadoc>
-  </target>
-
-</project>
diff --git a/java/ejb2/prepare-jboss.xml b/java/ejb2/prepare-jboss.xml
deleted file mode 100644
index 16e9c4b..0000000
--- a/java/ejb2/prepare-jboss.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project basedir=".">
-	
-  <!-- PROPERTY DEFINITIONS -->
-  <property name="tmp.dir" value="tmp"/>
-  
-  <target name="install-DataSource" description="Copy DataSource definition file into JBOSS deploy dir." >
-    <echo message="Copy DataSource definition file into JBOSS deploy dir"/> 
-
-    <copy file="${resources.dir}/${datasource.file.name}"  todir="${tmp.dir}"/>
-
-    <mkdir dir="${tmp.dir}"/>	
-
-    <replace  file="${tmp.dir}/${datasource.file.name}">
-      <replacefilter token="@datasource.name@" value="${datasource.name}"/>
-      <replacefilter token="@database.connection.url@" value="${database.connection.url}"/>
-      <replacefilter token="@database.driver@" value="${database.driver}"/>
-      <replacefilter token="@database.login@" value="${database.login}"/>
-      <replacefilter token="@database.password@" value="${database.password}"/>
-    </replace> 
-
-    <copy file="${tmp.dir}/${datasource.file.name}"  todir="${jboss.deploy.dir}"/>	
-
-    <delete dir="${tmp.dir}" />	 
- </target>
-  
-  
-  <target name="install-JDBC-driver" description="Copy Postgresql JDBC Driver into JBOSS deploy dir." >
-    <echo message="Postgresql JDBC Driver into JBOSS deploy dir"/> 
-
-    <copy   todir="${jboss.deploy.dir}">
-      <fileset dir="${compiletime.lib.dir}"> 
-        <include name="postgres*.jar"/>
-      </fileset>
-    </copy>
-  </target>  
-  
-</project>
diff --git a/java/ejb2/resources/application.xml b/java/ejb2/resources/application.xml
deleted file mode 100644
index 6f5654a..0000000
--- a/java/ejb2/resources/application.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN' 
-                             'http://java.sun.com/dtd/application_1_3.dtd'>
-
-<application>
-
-  <display-name>postgis-ejb2-poc</display-name>
-
-  <description>Using PostGIS Geometry Types with EJB2 - Proof of Concept</description>
-
-  <module>
-    <ejb>ejb.jar</ejb>
-  </module>
-
-  <module>
-    <java>common.jar</java>
-  </module>
-
-</application>
diff --git a/java/ejb2/resources/build.properties b/java/ejb2/resources/build.properties
deleted file mode 100644
index 9209cc0..0000000
--- a/java/ejb2/resources/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-# You can change these properties to fit your environment.
-# This should be the only file to modify.
-# Note that you should NOT leave spaces after a property value
-
-# Name of the created database
-database.name=ejb2poc
-# User owner of the database tables
-database.login=CHANGEIT
-# Password for the db user
-database.password=CHANGEIT
-# IP or hostname of the machine running the database server
-database.host=127.0.0.1
diff --git a/java/ejb2/resources/jndi/jndi.properties b/java/ejb2/resources/jndi/jndi.properties
deleted file mode 100644
index 8e65c86..0000000
--- a/java/ejb2/resources/jndi/jndi.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
-java.naming.provider.url=localhost
diff --git a/java/ejb2/resources/postgis-ejb2-ds.xml b/java/ejb2/resources/postgis-ejb2-ds.xml
deleted file mode 100644
index ec10549..0000000
--- a/java/ejb2/resources/postgis-ejb2-ds.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ================================================== -->
-<!--  Datasource config for Postgres                    -->
-<!--  DO NOT EDIT, it is a template configuration file! -->
-<!-- ================================================== -->
-
-
-<datasources>
-  <local-tx-datasource>
-    <jndi-name>@datasource.name@</jndi-name>
-    <connection-url>@database.connection.url@</connection-url>
-    <driver-class>@database.driver@</driver-class>
-    <user-name>@database.login@</user-name>
-    <password>@database.password@</password>
-  </local-tx-datasource>
-</datasources>
\ No newline at end of file
diff --git a/java/ejb2/src/com/geodetix/geo/client/Client.java b/java/ejb2/src/com/geodetix/geo/client/Client.java
deleted file mode 100644
index a077c2c..0000000
--- a/java/ejb2/src/com/geodetix/geo/client/Client.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Client.java
- *
- * Using PostGIS Geometry Types with EJB2 - Proof of Concept
- *
- * Copyright 2006, Geodetix S.r.l. (http://www.geodetix.it)
- * and individual contributors as indicated by the @authors tag.
- *
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- *
- */
-package com.geodetix.geo.client;
-
-import com.geodetix.geo.exception.ApplicationGeoLayerException;
-import com.geodetix.geo.interfaces.GeometryFacade;
-import com.geodetix.geo.interfaces.GeometryFacadeHome;
-
-import com.geodetix.geo.util.GeometryFacadeUtil;
-import com.geodetix.geo.value.GeometryValue;
-
-import java.rmi.RemoteException;
-
-import javax.naming.InitialContext;
-import javax.naming.Context;
-import javax.naming.NamingException;
-import javax.rmi.PortableRemoteObject;
-
-import java.util.*;
-import org.postgis.*;
-
-
-/**
- * A client executing a simple Test Case and illustrating the Geometry Bean Usage.
- * 
- * @author  <a href="mailto:antonio.pace at geodetix.it">Antonio Pace</a>
- */
-public class Client {
-    
-    
-    private GeometryFacade geometryFacade;
-    
-    private Point p1;
-    private Point p2;
-    private LineString fromP1toP2;
-    private Polygon searchPolygon;
-    
-    
-    /**
-     * Initializer method.
-     *
-     * @param geometryFacade the geometry facade object used to interact
-     * with the EJBs
-     */
-    public Client(GeometryFacade geometryFacade) {
-        
-        this.geometryFacade=geometryFacade;
-        
-        this.init();
-    }
-    
-    private void init(){
-        
-        // Create geometry stuff
-        
-        // City Stadium 
-        this.p1= new Point(16.23034006,39.31054320);
-        
-        // City Train Station
-        this.p2= new Point(16.26002601,39.31920668);
-        
-        this.fromP1toP2= new LineString(new Point[] {p1,p2});
-        
-        
-        // Create search polygon
-  
-        Point[] points = new Point[]{
-            
-            new Point(16.16399297, 39.40109388),
-            new Point(16.32368776, 39.39596998),
-            new Point(16.32397242, 39.25335486),
-            new Point(16.16399297, 39.25534748),
-            new Point(16.16399297, 39.40109388),
-        };
-        
-        LinearRing[] linearRings   = { new LinearRing(points) };
-       
-        // City Area Extension
-        this.searchPolygon = new Polygon(linearRings);
-    }
-    
-    
-    
-    private void executeNonOpenGisTest() throws ApplicationGeoLayerException, RemoteException {
-        
-        System.out.println("Execute some Tests on NON-OpenGIS Geometry EJBs");
-        
-        geometryFacade.createGeometryTable();
-        
-        System.out.println("create some geometry stuff...");
-        
-        this.showGeometry(p1);
-        GeometryValue gv1 = geometryFacade.createGeometry(p1,"[ City Stadium ]");
-        
-        this.showGeometry(p2);
-        GeometryValue gv2 = geometryFacade.createGeometry(p2,"[ City Train Station ]");
-        
-        this.showGeometry(fromP1toP2);
-        GeometryValue gv3 = geometryFacade.createGeometry(fromP1toP2,"Line from "
-                                                                     + gv1.getDescription()
-                                                                     + " to " 
-                                                                     + gv2.getDescription());
-        
-        System.out.println("Searching created geometries in City Area Perimeter: ");
-        this.showGeometry(searchPolygon);
-        
-        Collection<GeometryValue>  findResults = (Collection<GeometryValue>) geometryFacade.findByPolygon(searchPolygon);
-        
-        System.out.println("Search Results:");
-        
-        for (GeometryValue geometry  : findResults ) {
-            
-            this.showGeometry(geometry);
-        }
-        
-        geometryFacade.dropGeometryTable();
-    }
-    
-    
-    
-    
-    
-    private void executeOpenGisTest() throws ApplicationGeoLayerException, RemoteException {
-        
-        System.out.println("Execute some Tests on OpenGIS Geometry EJBs");
-        
-        geometryFacade.createGeometryTable("POINT",4326,2);
-        
-        System.out.println("Create some Points ....");
-        
-        // Setting SRID
-        this.p1.setSrid(4326);
-        this.p2.setSrid(4326);
-        this.searchPolygon.setSrid(4326);
-        
-        this.showGeometry(p1);
-        GeometryValue gv1 = geometryFacade.createGeometry(p1,"[ City Stadium ]");
-        
-        this.showGeometry(p2);
-        GeometryValue gv2 = geometryFacade.createGeometry(p2,"[ City Train Station ]");
-        
-        System.out.println();
-        System.out.println("Searching created Points in City Area Perimeter: ");
-        this.showGeometry(searchPolygon);
-        
-        // Note the use of geometricFacade finder method
-        Collection<GeometryValue>  findResults = (Collection<GeometryValue>) geometryFacade.findByPolygon(searchPolygon);
-        
-        System.out.println("Search Results:");
-        
-        for (GeometryValue geometry  : findResults ) {
-            
-            this.showGeometry(geometry);
-        }
-        
-        geometryFacade.dropGeometryTable();
-    }
-    
-    
-    
-    private void showGeometry(Geometry geometry) {
-        
-        System.out.println("Geometry: "+geometry.getTypeString()+geometry.getValue() + " SRID: "+geometry.getSrid());
-    }
-    
-    
-    private void showGeometry(GeometryValue geometryValue) {
-        
-        System.out.println("EJB Id: "+geometryValue.getId());
-        System.out.println("Description: "+geometryValue.getDescription());
-        
-        this.showGeometry(geometryValue.getGeometry());
-    }
-    
-    
-    /**
-     * Main client method.
-     *
-     * @param args arguments from the command line
-     */
-    public static void main(String [] args) {
-        
-        try {
-            
-            GeometryFacadeHome geometryFacadeHome= GeometryFacadeUtil.getHome();
-            
-            GeometryFacade geometryFacade= geometryFacadeHome.create();
-            
-            Client client = new Client(geometryFacade);
-            
-            System.out.println("===============================");
-            System.out.println("== TEST 1 =====================");
-            System.out.println("===============================");
-            client.executeNonOpenGisTest();
-            
-            System.out.println("===============================");
-            System.out.println("== TEST 2 =====================");
-            System.out.println("===============================");
-            client.executeOpenGisTest();
-            
-            System.out.println("===============================");
-            System.out.println("DONE.");
-            
-        } catch (ApplicationGeoLayerException ae) {
-            ae.printStackTrace();
-        } catch (java.rmi.RemoteException re) {
-            re.printStackTrace();
-        } catch (javax.naming.NamingException ne) {
-            ne.printStackTrace();
-        } catch (javax.ejb.CreateException ce) {
-            ce.printStackTrace();
-        }
-        
-    }
-    
-    
-    
-    private static Context getInitialContext()
-    throws javax.naming.NamingException {
-        
-        return new javax.naming.InitialContext();
-    }
-    
-}
diff --git a/java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAO.java b/java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAO.java
deleted file mode 100644
index 5ce836b..0000000
--- a/java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAO.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * PostGisGeometryDAO.java
- *
- * Using PostGIS Geometry Types with EJB2 - Proof of Concept
- *
- * Copyright 2006, Geodetix S.r.l. (http://www.geodetix.it)
- * and individual contributors as indicated by the @authors tag.
- *
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- *
- */
-package com.geodetix.geo.dao;
-
-
-/**
- * This is the DAO (Data Access Object) interface customized for
- * the PostGIS database which extends the XDoclet's auto-generated
- * GeometryDao interface and contains all of the SQL query statements.
- *
- * @author <a href="mailto:antonio.pace at geodetix.it">Antonio Pace</a>
- *
- */
-public interface PostGisGeometryDAO extends GeometryDao {
-    
-    /* ========== Constants Definition ============ */
-    
-    /** DataSource Lookup String */
-    public static final String DATASOURCE_NAME = "java:/postgis-ejb2-ds";
-    
-    /* ========== SQL Queries Definition ============ */
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.ejb.GeometryBean#ejbCreate(org.postgis.Geometry, java.lang.String)}
-     * is called.
-     */
-    public static final String EJB_CREATE_STATEMENT = 
-            "INSERT INTO geometries (id,geometry,description) VALUES (?,?,?)";
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#findByPrimaryKey(java.lang.Integer)}
-     * is called.
-     */
-    public static final String FIND_BY_PRIMARY_KEY_STATEMENT = 
-            "SELECT id FROM geometries WHERE id = ?";
-    
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#findByPolygon(org.postgis.Polygon)}
-     * is called.
-     */
-    public static final String FIND_BY_POLYGON_STATEMENT = 
-            "SELECT id FROM geometries WHERE contains(?,geometry)";
-    
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#makeDbTable()}
-     * is called.
-     */
-    public static final String HOME_CREATE_NON_OPENGIS_TABLE_STATEMENT = 
-            "CREATE TABLE geometries (id INT PRIMARY KEY, description TEXT, geometry GEOMETRY)";
-    
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#makeDbTable(java.lang.String, int, int)}
-     * is called for create initial table.
-     */
-    public static final String HOME_CREATE_OPENGIS_TABLE_STATEMENT = 
-            "CREATE TABLE geometries (id INT PRIMARY KEY, description TEXT)";
-    
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#makeDbTable(java.lang.String, int, int)}
-     * is called for adding geometry column.
-     */
-    public static final String ADD_OPEN_GIS_GEOMETRY_COLUMN_STATEMENT = 
-            "SELECT AddGeometryColumn('','geometries','geometry',?,?,?)";
-    
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#dropDbTable()}
-     * is called for adding geometry column.
-     */
-    public static final String DROP_TABLE_STATEMENT = 
-            "DROP TABLE geometries";
-    
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.ejb.GeometryBMP#ejbLoad()}
-     * is called from the container.
-     */
-    public static final String EJB_LOAD_STATEMENT = 
-            "SELECT id,geometry,description FROM geometries WHERE id=?";
-    
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.ejb.GeometryBMP#ejbStore()}
-     * is called from the container.
-     */
-    public static final String EJB_STORE_STATEMENT = 
-            "UPDATE geometries SET geometry=?, description=? WHERE id=?";
-    
-    
-    /**
-     * Query executed from 
-     * {@link com.geodetix.geo.dao.PostGisGeometryDAOImpl}
-     * on PostGIS when the method 
-     * {@link com.geodetix.geo.ejb.GeometryBean#ejbRemove()}
-     * is called from the container.
-     */
-    public static final String EJB_REMOVE_STATEMENT = 
-            "DELETE FROM geometries WHERE id = ?";
-    
-} // end PostGisGeometryDAO
diff --git a/java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAOImpl.java b/java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAOImpl.java
deleted file mode 100644
index 51d96bb..0000000
--- a/java/ejb2/src/com/geodetix/geo/dao/PostGisGeometryDAOImpl.java
+++ /dev/null
@@ -1,579 +0,0 @@
-/*
- * PostGisGeometryDAOImpl.java
- *
- * Using PostGIS Geometry Types with EJB2 - Proof of Concept
- *
- * Copyright 2006, Geodetix S.r.l. (http://www.geodetix.it)
- * and individual contributors as indicated by the @authors tag.
- *
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- *
- */
-package com.geodetix.geo.dao;
-
-import org.apache.commons.logging.*;
-
-import org.postgis.*;
-
-import java.sql.*;
-
-import java.util.*;
-
-import javax.ejb.*;
-
-import javax.naming.*;
-
-import javax.sql.*;
-
-import java.io.*;
-
-/**
- *
- * PostGis DAO Implementation for 
- * {@link com.geodetix.geo.ejb.GeometryBean} BMP Persistence.
- *
- * @author  <a href="mailto:antonio.pace at geodetix.it">antonio.pace</a>
- *
- */
-public class PostGisGeometryDAOImpl implements PostGisGeometryDAO {
-    
-    
-    private DataSource  dataSource;
-    private Context     jndiCntx;
-    
-    /**
-     * Creates a new instance of PostGisPointDAO.
-     */
-    public PostGisGeometryDAOImpl() {}
-    
-    
-    
-    /** Initializes the bean. */
-    public void init() {
-        try {
-            
-            jndiCntx   = new InitialContext();
-            dataSource = (DataSource) jndiCntx.lookup(PostGisGeometryDAO.DATASOURCE_NAME);
-            
-        } catch (NamingException ne) {
-            throw new EJBException(ne);
-        }
-    }
-    
-    
-    
-    
-    /* =========== Create Methods ============ */
-    
-    
-    
-    /**
-     * PostGIS implementation of the 
-     * {@link com.geodetix.geo.ejb.GeometryBean#ejbCreate(org.postgis.Geometry, java.lang.String)}
-     * method.
-     * 
-     * @return the primary key of the persisted bean.
-     * @param ejb the bean to persist.
-     * @throws javax.ejb.CreateException launched if an EJB creation error is encountered.
-     * @throws javax.ejb.EJBException launched if a generic EJB error is encountered.
-     */
-    public java.lang.Integer create(com.geodetix.geo.ejb.GeometryBean ejb)
-    throws javax.ejb.CreateException, javax.ejb.EJBException {
-        
-        PreparedStatement  pstm = null;
-        Connection          con = null;
-        
-        
-        try {
-            con = this.dataSource.getConnection();
-            
-            pstm  = con.prepareStatement(PostGisGeometryDAO.EJB_CREATE_STATEMENT);
-            
-            pstm.setInt(1, ejb.getId());
-            pstm.setObject(2, new PGgeometry((Geometry)ejb.getGeometry()));
-            pstm.setString(3,ejb.getDescription());
-            
-            if (pstm.executeUpdate() != 1) {
-                throw new CreateException(
-                        "Failed to add EJB to database");
-            }
-            
-            return ejb.getId();
-            
-        } catch (SQLException se) {
-            throw new EJBException(se);
-            
-        } finally {
-            
-            try {
-                if (pstm != null) {
-                    pstm.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (con != null) {
-                    con.close();
-                }
-                
-            } catch (Exception e) {}
-        }
-    }
-    
-    
-    
-    
-    
-    
-    /* ============ Finder Methods ============== */
-    
-    
-    /**
-     * PostGIS implementation of the 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#findByPrimaryKey(java.lang.Integer)}
-     * method
-     * 
-     * 
-     * @return the found bean's prymary key.
-     * @param primaryKey primary key of searching bean.
-     * @throws javax.ejb.FinderException launched if an error occours during the search operation.
-     */
-    public java.lang.Integer findByPrimaryKey(java.lang.Integer primaryKey)
-    throws javax.ejb.FinderException {
-        
-        PreparedStatement  pstm = null;
-        Connection          con = null;
-        ResultSet        result = null;
-        
-        
-        try {
-            
-            con = this.dataSource.getConnection();
-            
-            pstm  = con.prepareStatement(PostGisGeometryDAO.FIND_BY_PRIMARY_KEY_STATEMENT);
-            
-            pstm.setInt(1, primaryKey.intValue());
-            
-            result = pstm.executeQuery();
-            
-            if (!result.next()) {
-                throw new ObjectNotFoundException(
-                        "Cannot find Geometry Bean with id = " + primaryKey);
-            }
-            
-        } catch (SQLException se) {
-            throw new EJBException(se);
-        } finally {
-            try {
-                if (result != null) {
-                    result.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (pstm != null) {
-                    pstm.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (con != null) {
-                    con.close();
-                }
-            } catch (Exception e) {}
-        }
-        
-        return primaryKey;
-    }
-    
-    
-    
-    
-    /**
-     * PostGIS implementation of the  
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#findByPolygon(org.postgis.Polygon)}
-     * method
-     * 
-     * @return a collection of bean's primary key beeing found.
-     * @param polygon the {@link org.postgis.Polygon} to search in.
-     * @throws javax.ejb.FinderException launched if an error occours during the search operation.
-     */
-    public java.util.Collection findByPolygon(org.postgis.Polygon polygon)
-    throws javax.ejb.FinderException {
-        
-        PreparedStatement  pstm = null;
-        Connection          con = null;
-        ResultSet        result = null;
-        
-        try {
-            
-            con = this.dataSource.getConnection();
-            
-            pstm  = con.prepareStatement(PostGisGeometryDAO.FIND_BY_POLYGON_STATEMENT);
-            
-            pstm.setObject(1, new PGgeometry(polygon));
-            
-            result = pstm.executeQuery();
-            
-            Vector keys = new Vector();
-            
-            while (result.next()) {
-                keys.addElement(result.getObject("id"));
-            }
-            
-            return keys;
-            
-        } catch (SQLException se) {
-            throw new EJBException(se);
-            
-        } finally {
-            try {
-                if (result != null) {
-                    result.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (pstm != null) {
-                    pstm.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (con != null) {
-                    con.close();
-                }
-            } catch (Exception e) {}
-        }
-    }
-    
-    
-    
-    
-    /* =========== Bean's Life Cycle Methods ============= */
-    
-    
-    
-    /**
-     * PostGIS implementation of the entity bean's life cycle method 
-     * <code>ejbLoad()</code>.
-     * 
-     * @param pk the primary key of the bean to load.
-     * @param ejb the ejb whose data must be loaded.
-     * @throws javax.ejb.EJBException launched if a generic EJB error is encountered.
-     */
-    public void load(java.lang.Integer pk, com.geodetix.geo.ejb.GeometryBean ejb)
-    throws javax.ejb.EJBException {
-        
-        PreparedStatement  pstm = null;
-        Connection          con = null;
-        ResultSet        result = null;
-        
-        try {
-            
-            con = this.dataSource.getConnection();
-            
-            pstm  = con.prepareStatement(PostGisGeometryDAO.EJB_LOAD_STATEMENT);
-            
-            pstm.setInt(1, pk.intValue());
-            
-            result = pstm.executeQuery();
-            
-            if (result.next()) {
-                ejb.setId(pk);
-                ejb.setGeometry(((PGgeometry) result.getObject("geometry")).getGeometry());
-                ejb.setDescription((String) result.getString("description"));
-                
-            } else {
-                
-                throw new EJBException("ejbLoad unable to load EJB.");
-            }
-            
-        } catch (SQLException se) {
-            throw new EJBException(se);
-            
-        } finally {
-            try {
-                if (result != null) {
-                    result.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (pstm != null) {
-                    pstm.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (con != null) {
-                    con.close();
-                }
-            } catch (Exception e) {}
-        }
-    }
-    
-    
-    /**
-     * PostGIS implementation of the entity bean's lifecicle method 
-     * <code>ejbStore()</code>.
-     * 
-     * @param ejb the ejb whose data must be stored.
-     * @throws javax.ejb.EJBException launched if a generic EJB error is encountered.
-     */
-    public void store(com.geodetix.geo.ejb.GeometryBean ejb)
-    throws javax.ejb.EJBException {
-        
-        PreparedStatement  pstm = null;
-        Connection          con = null;
-        
-        
-        try {
-            
-            con = this.dataSource.getConnection();
-            
-            pstm  = con.prepareStatement(PostGisGeometryDAO.EJB_STORE_STATEMENT);
-            
-            pstm.setObject(1, new PGgeometry(ejb.getGeometry()));
-            pstm.setString(2,ejb.getDescription());
-            pstm.setInt(3, ejb.getId().intValue());
-            
-            if (pstm.executeUpdate() != 1) {
-                throw new EJBException("ejbStore unable to update EJB.");
-            }
-            
-        } catch (SQLException se) {
-            
-            throw new EJBException(se);
-            
-        } finally {
-            
-            try {
-                if (pstm != null) {
-                    pstm.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (con != null) {
-                    con.close();
-                }
-                
-            } catch (Exception e) {}
-        }
-    }
-    
-    
-    /**
-     * PostGIS implementation of the entity bean's lifecicle method 
-     * <code>ejbRemove()</code>.
-     * 
-     * 
-     * @param pk primary key of the bean that must be removed .
-     * @throws javax.ejb.RemoveException launched if an error during
-     *   EJB remove operation is encountered.
-     * @throws javax.ejb.EJBException launched if a generic EJB error is encountered.
-     */
-    public void remove(java.lang.Integer pk)
-    throws javax.ejb.RemoveException, javax.ejb.EJBException {
-        
-        PreparedStatement  pstm = null;
-        Connection          con = null;
-        
-        
-        try {
-            
-            con = this.dataSource.getConnection();
-            
-            pstm  = con.prepareStatement(PostGisGeometryDAO.EJB_REMOVE_STATEMENT);
-            
-            pstm.setInt(1, pk.intValue());
-            
-            if (pstm.executeUpdate() != 1) {
-                throw new EJBException("ejbRemove unable to remove EJB.");
-            }
-        } catch (SQLException se) {
-            
-            throw new EJBException(se);
-            
-        } finally {
-            try {
-                if (pstm != null) {
-                    pstm.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (con != null) {
-                    con.close();
-                }
-            } catch (Exception e) {}
-        }
-    }
-    
-    
-    
-    
-    
-    /* =========== Home Interface Utility Methods ============ */
-
-    
-    /**
-     * PostGIS implementation of the 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#makeDbTable(java.lang.String, int, int)}
-     * method creating a NON-OpenGis compliant table in the PostGIS database.
-     * The table will contain the geometry EJBs.
-     */
-    public void makeDbTable() {
-        
-        PreparedStatement  pstm = null;
-        Connection          con = null;
-        
-        
-        try {
-            
-            con = this.dataSource.getConnection();
-            
-            System.out.println("Creating non-OpenGIG Bean table... ");
-            
-            pstm = con.prepareStatement(PostGisGeometryDAO.HOME_CREATE_NON_OPENGIS_TABLE_STATEMENT);
-            pstm.execute();
-            
-            System.out.println("...done!");
-            
-        } catch (SQLException e) {
-            throw new EJBException(e);
-            
-        } finally {
-            
-            try {
-                if (pstm != null) {
-                    pstm.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (con != null) {
-                    con.close();
-                }
-                
-            } catch (Exception e) {}
-        }
-    }
-    
-    
-    
-    /**
-     * PostGIS implementation of the 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#makeDbTable(java.lang.String, int, int)}
-     * method creating an OpenGIS compliant table in the PostGIS database.
-     * The table will contain the geometry EJBs.
-     *
-     * @param gemetryType the string that rapresent a valid PostGIS 
-     * geometry type (i.e.: POINT, LINESTRING, POLYGON etc.).
-     * @param srid the SRID of the geometry.
-     * @param geometryDimension the dimension of the geometry.
-     */
-    public void makeDbTable(String gemetryType, int srid, int geometryDimension) {
-        
-        PreparedStatement  pstm = null;
-        Connection          con = null;
-        
-        
-        try {
-            
-            con = this.dataSource.getConnection();
-            
-            System.out.println("Creating OpenGIS Bean table...");
-            
-            pstm = con.prepareStatement(PostGisGeometryDAO.HOME_CREATE_OPENGIS_TABLE_STATEMENT);
-            pstm.execute();
-            
-            pstm = con.prepareStatement(PostGisGeometryDAO.ADD_OPEN_GIS_GEOMETRY_COLUMN_STATEMENT);
-            pstm.setInt(1,srid);
-            pstm.setString(2,gemetryType);
-            pstm.setInt(3,geometryDimension);
-            
-            pstm.execute();
-            
-            System.out.println("...done!");
-            
-        } catch (SQLException e) {
-            throw new EJBException(e);
-            
-        } finally {
-            
-            try {
-                if (pstm != null) {
-                    pstm.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (con != null) {
-                    con.close();
-                }
-                
-            } catch (Exception e) {}
-        }
-    }
-    
-    
-    /**
-     * PostGIS implementation of the 
-     * {@link com.geodetix.geo.interfaces.GeometryLocalHome#dropDbTable()}
-     * method removing the table related to the EJBs.
-     */
-    public void dropDbTable() {
-        
-        PreparedStatement  pstm = null;
-        Connection          con = null;
-        
-        
-        try {
-            
-            con = this.dataSource.getConnection();
-            
-            System.out.println("Dropping Bean Table... ");
-            
-            pstm = con.prepareStatement(PostGisGeometryDAO.DROP_TABLE_STATEMENT);
-            pstm.execute();
-            
-            System.out.println("...done!");
-            
-        } catch (SQLException e) {
-            
-            throw new EJBException(e);
-            
-        } finally {
-            
-            try {
-                if (pstm != null) {
-                    pstm.close();
-                }
-            } catch (Exception e) {}
-            
-            try {
-                if (con != null) {
-                    con.close();
-                }
-                
-            } catch (Exception e) {}
-        }
-    }
-    
-    
-}
\ No newline at end of file
diff --git a/java/ejb2/src/com/geodetix/geo/ejb/GeometryBean.java b/java/ejb2/src/com/geodetix/geo/ejb/GeometryBean.java
deleted file mode 100644
index d602c6a..0000000
--- a/java/ejb2/src/com/geodetix/geo/ejb/GeometryBean.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * GeometryBean.java
- *
- * Using PostGIS Geometry Types with EJB2 - Proof of Concept
- *
- * Copyright 2006, Geodetix S.r.l. (http://www.geodetix.it)
- * and individual contributors as indicated by the @authors tag.
- *
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- *
- */
-package com.geodetix.geo.ejb;
-
-
-import javax.ejb.*;
-
-import java.util.*;
-
-import org.postgis.*;
-
-import com.geodetix.geo.value.GeometryValue;
-
-/**
- * This BMP (Bean Managed Persistence) entity bean stores information
- * about geometrical description of a choosen entity in some application
- * domain. It stores geometrical infos in the <code>geometry</code> attribute
- * of type <code>org.postgis.Geometry</code>. Note that such an attribute could 
- * even be implemented as a pure text (i.e. Java <code>String</code>) field 
- * following the WKT format, thus leaving geometric details to the PostGIS 
- * api classes (see <code>README</code> file for further details).
- *
- * @ejb.bean
- *    name="Geometry"
- *    jndi-name="geodetix/geo/Geometry"
- *    local-jndi-name="geodetix/geo/GeometryLocal"
- *    type="BMP"
- *    view-type="local"
- *    primkey-field="id"
- *
- * @ejb.dao
- *     impl-class="com.geodetix.geo.dao.PostGisGeometryDAOImpl"
- *
- *
- * @ejb.transaction
- *     type="RequiresNew"
- *
- *
- * @ejb.value-object
- *     name="Geometry"
- *     match="value"
- *
- * @author  <a href="mailto:antonio.pace at geodetix.it">Antonio Pace</a>
- *
- */
-public abstract class GeometryBean implements javax.ejb.EntityBean {
-    
-    
-    /* TEMPORARY (NOT FOR REAL WORLD) PRIMARY KEY GENERATOR */
-    private static final int SIMPLE_ID_GENERATOR = (int) System.currentTimeMillis();
-    private static int actualId = SIMPLE_ID_GENERATOR;
-    
-    
-    
-    /* BMP fields */
-    private Integer   id;
-    private String    description;
-    private Geometry  geometry;
-    
-    
-    
-    
-    /* CREATE METHODS */
-    
-    
-    /**
-     * Creates a new Geometry Bean.
-     * 
-     * @ejb.create-method 
-     *
-     * @param geometry the <code>org.postgis.Geometry</code> that has to be 
-     * included in this EJB.
-     * @param description the textual description of this bean.
-     * @throws CreateException lauched if an error occours during the 
-     * EJB creation.
-     * @return the EJB's primary key.
-     */
-    public Integer ejbCreate(org.postgis.Geometry geometry,String description)
-    throws CreateException {
-        
-        this.id    = (new Integer(actualId++));
-        this.geometry = geometry;
-        this.description=description;
-        
-        /* For now return null, this will be overrided in the DAO implementation of this method */
-        return null;
-    }
-    
-    /**
-     * This method is called by the container after the EJB creation.
-     *
-     * @param geometry the <code>org.postgis.Geometry</code> that has to be 
-     * included in this EJB.
-     */
-    public void ejbPostCreate(org.postgis.Geometry geometry) {
-        
-        // Do something with Relationship.
-    }
-    
-    
-    
-    
-    
-    /* ========== Finder Methods =========== */
-    
-    
-    /**
-     * Find a Geometry Bean from his primary key.
-     * 
-     * @param primaryKey the primary key of the bean to found.
-     * @throws FinderException lauched if an error occours during the 
-     * EJB search operation.
-     */
-    public abstract Integer ejbFindByPrimaryKey(Integer primaryKey)
-    throws FinderException;
-    
-    
-    
-    
-    /**
-     * Find all of the geometry beans contained in a <code>Polygon</code>.
-     *
-     * @param polygon the Polygon to search in.
-     */
-    public abstract Collection ejbFindByPolygon(org.postgis.Polygon polygon)
-    throws FinderException;
-    
- 
-    
-    
-    
-    /* ============== BMP Fields Accessor Methods ============ */
-    
-    
-    /**
-     * Returns the EJB's id field.
-     *
-     * @ejb.pk-field
-     * @ejb.interface-method
-     * @ejb.value-object match="value"
-     */
-    public Integer getId() {
-        
-        return this.id;
-    }
-    
-    
-    /**
-     * Modifies the id field.
-     */
-    public void setId(Integer id) {
-        
-        this.id = id;
-        
-        this.makeDirty();
-    }
-    
-    
-    /**
-     * Returns the EJB's textual description.
-     *
-     * @ejb.interface-method
-     * @ejb.value-object match="value"
-     * @return the Geometry Bean description.
-     */
-    public String getDescription() {
-        
-        return this.description;
-    }
-    
-    /**
-     * Modifies the EJB's textual description.
-     *
-     * @ejb.interface-method
-     * @param description the Geometry Bean description.
-     */
-    public void setDescription(String description) {
-        
-        this.description = description;
-        
-        this.makeDirty();
-    }
-    
-    
-    
-    /**
-     * Returns the EJB's geometrical description.
-     *
-     * @ejb.interface-method
-     * @ejb.value-object match="value"
-     * @return the org.postgis.Geometry included in this bean.
-     */
-    public org.postgis.Geometry getGeometry() {
-        
-        return this.geometry;
-    }
-    
-    /**
-     * Modifies the EJB's geometrical description.
-     *
-     * @ejb.interface-method
-     * @param geometry the <code>org.postgis.Geometry</code> that has to 
-     * be included in this EJB.
-     */
-    public void setGeometry(org.postgis.Geometry geometry) {
-        
-        this.geometry = geometry;
-        
-        this.makeDirty();
-    }
-    
-    
-    
-    
-    
-    /* HOME INTERFACE BMP UTILITY METHODS */
-    
-    
-    /**
-     * Create a non-OpenGIS DataBase table, used to persist the Geometry Beans.
-     *
-     * @ejb.home-method
-     *
-     * @dao.call
-     */
-    public abstract void ejbHomeMakeDbTable();
-    
-    
-    
-    /**
-     * Create OpenGIS DataBase table, used to persist the Geometry Beans.
-     *
-     * @ejb.home-method
-     *
-     * @dao.call
-     */
-    public abstract void ejbHomeMakeDbTable(String gemetryType, int srid, int geometryDimension);
-    
-    
-    
-    /**
-     * Remove Bean's Persistence Teable of the DataBase.
-     *
-     * @ejb.home-method
-     *
-     * @dao.call
-     */
-    public abstract void ejbHomeDropDbTable();
-    
-    
-    
-    /* VALUE OBJECTS */
-    
-    /**
-     * This is an abstract method to allow XDoclet to expose
-     * value object functionalities in the local/remote interface.
-     *
-     * @ejb.interface-method
-     *
-     * @return a value object for this GeometryBean.
-     */
-    public abstract GeometryValue getGeometryValue();
-    
-    
-    
-    
-    
-    /* XDOCLET BMP METHODS RELATED STUFF */
-    
-    
-    /**
-     * @see com.geodetix.geo.ejb.GeometryBMP source.
-     */
-    protected abstract void makeDirty();
-    
-}
diff --git a/java/ejb2/src/com/geodetix/geo/ejb/GeometryFacadeBean.java b/java/ejb2/src/com/geodetix/geo/ejb/GeometryFacadeBean.java
deleted file mode 100644
index 33ae6b5..0000000
--- a/java/ejb2/src/com/geodetix/geo/ejb/GeometryFacadeBean.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * GeometryFacadeBean.java
- *
- * Using PostGIS Geometry Types with EJB2 - Proof of Concept
- *
- * Copyright 2006, Geodetix S.r.l. (http://www.geodetix.it)
- * and individual contributors as indicated by the @authors tag.
- *
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- *
- */
-package com.geodetix.geo.ejb;
-
-
-import com.geodetix.geo.exception.ApplicationGeoLayerException;
-import com.geodetix.geo.interfaces.GeometryLocalHome;
-import com.geodetix.geo.interfaces.GeometryLocal;
-import com.geodetix.geo.util.GeometryUtil;
-import com.geodetix.geo.value.GeometryValue;
-
-import org.apache.commons.logging.*;
-
-import org.postgis.*;
-
-import java.rmi.*;
-
-import java.util.*;
-
-import javax.ejb.*;
-
-import javax.naming.*;
-
-
-/**
- * A SessionFacade for managing Geometry beans.
- *
- * @ejb.bean
- *     name="GeometryFacade"
- *     jndi-name="geodetix/geo/GeometryFacade"
- *     local-jndi-name="geodetix/geo/GeometryFacadeLocal"
- *     type="Stateless"
- *     view-type="both"
- *     transaction-type="Container"
- *
- * @ejb.ejb-ref
- *     ejb-name="Geometry"
- *     view-type="local"
- *     ref-name="ejb/GeometryLocal"
- *
- * @author  <a href="mailto:antonio.pace at geodetix.it">Antonio Pace</a>
- */
-public abstract class GeometryFacadeBean implements SessionBean {
-    private SessionContext ctx;
-    
-    
-    /**
-     * EJB Initializer.
-     *
-     * @ejb.create-method
-     */
-    public void ejbCreate() throws CreateException {}
-    
-    /**
-     * Called after the EJB creation.
-     */
-    public void ejbPostCreate() throws CreateException {}
-    
-    /**
-     * Save the EJB session context.
-     */
-    public void setSessionContext(SessionContext ctx)
-    throws EJBException, RemoteException {
-        this.ctx = ctx;
-    }
-    
-    
-    
-  
-    /* ============ Finder Methods ============== */
-    
-    /**
-     * Find all of the geometry beans contained in a <code>Polygon</code>.
-     *
-     * @ejb.interface-method
-     *
-     * @param polygon The Polygon to search in.
-     */
-    public Collection findByPolygon(org.postgis.Polygon polygon)
-    throws ApplicationGeoLayerException {
-        try {
-            GeometryLocalHome geometryHome = GeometryUtil.getLocalHome();
-            Collection       geometries    = geometryHome.findByPolygon(polygon);
-            
-            List result = new ArrayList();
-            
-            for (Iterator iter = geometries.iterator(); iter.hasNext(); ) {
-                GeometryLocal geometry = (GeometryLocal) iter.next();
-                
-                result.add(geometry.getGeometryValue());
-            }
-            
-            return result;
-            
-        } catch (NamingException e) {
-            throw new ApplicationGeoLayerException(e);
-        } catch (FinderException e) {
-            throw new ApplicationGeoLayerException(e);
-        }
-    }
-    
-    
-    
-    
-    
-    /* =============== Business Iinterfaces Methods ============= */
-    
-    
-    /**
-     * Creates a new Geometry Bean.
-     *
-     * @ejb.interface-method
-     *
-     * @param geometry the <code>org.postgis.Geometry</code> that has to be 
-     * included in this EJB.
-     * @param description the textual description of this bean.
-     * @return a value object representing the created EJB.
-     */
-    public GeometryValue createGeometry(org.postgis.Geometry geometry, String description)
-    throws ApplicationGeoLayerException {
-        try {
-            GeometryLocalHome geometryHome  = GeometryUtil.getLocalHome();
-            GeometryLocal     geometryLocal =
-                    geometryHome.create(geometry,description);
-            
-            return geometryLocal.getGeometryValue();
-        } catch (NamingException e) {
-            throw new ApplicationGeoLayerException(e);
-        } catch (CreateException e) {
-            throw new ApplicationGeoLayerException(e);
-        }
-    }
-    
-    
-    
-    
-    
-    /* ================== BMP Utility Methods ================= */
-    
-    
-    
-    /**
-     * Create a non-OpenGIS DataBase table used to persist the Geometry Beans.
-     * <em>Note that in a real-world application this method should be protected
-     * by using a role-based security policy.</em>
-     *
-     * @ejb.interface-method
-     *
-     * @throws ApplicationGeoLayerException thrown if an error occours 
-     * during table creation.
-     */
-    public void createGeometryTable() throws ApplicationGeoLayerException {
-        try {
-            GeometryLocalHome geometryHome = GeometryUtil.getLocalHome();
-            
-            geometryHome.makeDbTable();
-        } catch (NamingException e) {
-            throw new ApplicationGeoLayerException(e);
-        } catch (Exception e) {
-            throw new ApplicationGeoLayerException(e);
-        }
-    }
-    
-    
-    /**
-     * Create an OpenGIS compliant database table used to persist the 
-     * Geometry Beans.
-     * <em>Note that in a real-world application this method should be protected
-     * by using a role-based security policy.</em>
-     *
-     * @ejb.interface-method
-     *
-     * @throws ApplicationGeoLayerException thrown if an error occours 
-     * during table creation.
-     */
-    public void createGeometryTable(String gemetryType, int srid, int geometryDimension )
-    throws ApplicationGeoLayerException {
-        try {
-            GeometryLocalHome geometryHome = GeometryUtil.getLocalHome();
-            
-            geometryHome.makeDbTable(gemetryType, srid,  geometryDimension);
-            
-        } catch (NamingException e) {
-            throw new ApplicationGeoLayerException(e);
-        } catch (Exception e) {
-            throw new ApplicationGeoLayerException(e);
-        }
-    }
-    
-    
-    
-    /**
-     * Remove the EJB's persistence table from the database.
-     * <em>Note that in a real-world application this method should be protected
-     * by using a role-based security policy.</em>
-     *
-     * @ejb.interface-method
-     *
-     * @throws ApplicationGeoLayerException thrown if an error occours 
-     * during table creation.
-     */
-    public void dropGeometryTable() throws ApplicationGeoLayerException {
-        try {
-            GeometryLocalHome geometryHome = GeometryUtil.getLocalHome();
-            
-            geometryHome.dropDbTable();
-        } catch (NamingException e) {
-            throw new ApplicationGeoLayerException(e);
-        } catch (Exception e) {
-            throw new ApplicationGeoLayerException(e);
-        }
-    }
-    
-    
-    
-}
diff --git a/java/ejb2/src/com/geodetix/geo/exception/ApplicationGeoLayerException.java b/java/ejb2/src/com/geodetix/geo/exception/ApplicationGeoLayerException.java
deleted file mode 100644
index a36678f..0000000
--- a/java/ejb2/src/com/geodetix/geo/exception/ApplicationGeoLayerException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * ApplicationGeoLayerException.java
- *
- * Using PostGIS Geometry Types with EJB2 - Proof of Concept
- *
- * Copyright 2006, Geodetix S.r.l. (http://www.geodetix.it)
- * and individual contributors as indicated by the @authors tag.
- *
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- *
- */
-package com.geodetix.geo.exception;
-
-
-/**
- * Generic Application Exception.
- *
- * @author <a href="mailto:antonio.pace at geodetix.it">Antonio Pace</a>
- *
- */
-public class ApplicationGeoLayerException extends Exception {
-    
-    /**
-     * Creates a new ApplicationGeoLayerException object.
-     */
-    public ApplicationGeoLayerException() {
-        super("unknown");
-        
-    } // end ApplicationGeoLayerException()
-    
-    
-    /**
-     * Creates a new ApplicationGeoLayerException object.
-     *
-     * @param e the wrapped Exception.
-     */
-    public ApplicationGeoLayerException(Exception e) {
-        super(e.getMessage());
-        
-    } // end ApplicationGeoLayerException()
-    
-    
-    /**
-     * Creates a new ApplicationGeoLayerException object.
-     *
-     * @param msg the wrapped Message.
-     */
-    public ApplicationGeoLayerException(String msg) {
-        super(msg);
-        
-    } // end ApplicationGeoLayerException()
-    
-} // end ApplicationGeoLayerException
diff --git a/java/ejb3/.classpath b/java/ejb3/.classpath
deleted file mode 100644
index fda5da1..0000000
--- a/java/ejb3/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.jboss.ide.eclipse.jdt.aop.core.classpath.AOP_15_CONTAINER"/>
-	<classpathentry kind="con" path="org.jboss.ide.eclipse.jdt.ejb3.wizards.core.classpath.EJB3_CONTAINER/JBoss-4.0.4.GA"/>
-	<classpathentry kind="lib" path="C:/jboss-4.0.4.GA/server/default/lib/postgis_1.1.0.jar"/>
-	<classpathentry kind="lib" path="C:/jboss-4.0.4.GA/client/jbossws-client.jar"/>
-	<classpathentry kind="lib" path="C:/jboss-4.0.4.GA/client/jboss-jaxrpc.jar"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/java/ejb3/.project b/java/ejb3/.project
deleted file mode 100644
index f495192..0000000
--- a/java/ejb3/.project
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>PostGISTutorial</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.jboss.ide.eclipse.ejb3.wizards.core.EJB3ProjectNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/java/ejb3/.settings/org.eclipse.jdt.core.prefs b/java/ejb3/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 65a5762..0000000
--- a/java/ejb3/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Sep 18 15:14:48 BST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/java/ejb3/EJB3Spatial.odt b/java/ejb3/EJB3Spatial.odt
deleted file mode 100644
index c13479e..0000000
Binary files a/java/ejb3/EJB3Spatial.odt and /dev/null differ
diff --git a/java/ejb3/README.txt b/java/ejb3/README.txt
deleted file mode 100644
index 79f2844..0000000
--- a/java/ejb3/README.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-$Id: README.txt 9324 2012-02-27 22:08:12Z pramsey $
-(This code was contributed by Norman Barker <norman.barker at gmail.com>)
-
-Spatial EJB3
-
-
-Spatial EJB3 is a quick investigation to see if it is possible to integrate the
-Java 5 annotation approach to mark a property of an object as spatial and to
-delegate to the EJB3 persistence model to store and retrieve this data. 
-
-The project utilises JBoss and PostGIS, future iterations will look to remove
-the dependency on JBoss and Hibernate to incorporate other Application
-Services. 
-
-Since it is useful to display screenshots in a tutorial this has been written
-as an Openoffice Document. For easy viewing and printing, a PDF version is
-also available.
-
-
-COMPILING:
-
-Run "ant" to compile.
-
-The postgis.jar, pgjdbc.jar and the other needed libs have to 
-be put in the lib/ subdirectory.
-
-If your JBOSS is not installed in C:\jboss-4.0.4.GA, fix the
-path in the build.xml.
diff --git a/java/ejb3/build.xml b/java/ejb3/build.xml
deleted file mode 100644
index cb09289..0000000
--- a/java/ejb3/build.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--
- * build file
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Support
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: build.xml 9324 2012-02-27 22:08:12Z pramsey $
- -->
-<project name="PostGIS EJB3 Tutorial" default="compile" basedir=".">
-    <property name="build.dir" value="bin"/>
-    <property name="lib.dir" value="lib"/>
-    <property name="src.dir" value="src"/>
-    <property name="dist.dir" value="dist"/>
-    <property name="jboss.home" value="C:/jboss-4.0.4.GA"/>
-    <property name="jbossconf" value="jboss"/>
-
-    <path id="class.path">
-        <pathelement location="${build.dir}"/>
-        <fileset dir="${lib.dir}" includes="*.jar"/>
-        <fileset dir="${jboss.home}/client">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="${jboss.home}/server/default/lib" includes="hibernate3.jar"/>
-    </path>
-
-    <target name="clean" description="Removes all generated files">
-        <delete dir="${build.dir}"/>
-        <delete dir="${dist.dir}"/>
-    </target>
-
-    <target name="compile">
-        <mkdir dir="${build.dir}"/>
-        <javac destdir="${build.dir}" fork="true" classpathref="class.path" source="1.5" target="1.5">
-            <src path="${src.dir}"/>
-        </javac>
-        <copy todir="${build.dir}">
-            <fileset dir="${src.dir}"
-                includes="**/images/*,**/*.properties" excludes="**/.svn/*"/>  
-        </copy>
-    </target>
-    
-    <target name="dist" depends="clean, compile">
-        <mkdir dir="${dist.dir}"/>
-        <jar jarfile="${dist.dir}/ingest.jar" basedir="${build.dir}" includes="**/ejb/*, **/mdb/*, **/UserBean/*, **/hibernate/*">
-            <metainf dir="${src.dir}/META-INF" includes="*.xml"/>
-        </jar>
-    </target>
-
-    <target name="deploy" description="deploys the service to JBoss" depends="dist">
-      <copy todir="${jboss.home}/server/default/deploy">
-        <fileset dir="${dist.dir}" includes="ingest.jar, people.war"/>
-        <fileset dir="${jbossconf}" includes="*.xml"/>
-      </copy>
-    </target>
-    
-</project>
diff --git a/java/ejb3/jboss/geodata-ds.xml b/java/ejb3/jboss/geodata-ds.xml
deleted file mode 100644
index f681e9e..0000000
--- a/java/ejb3/jboss/geodata-ds.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<datasources>
-  <local-tx-datasource>
-    <jndi-name>GeoDataDS</jndi-name>
-    <connection-url>jdbc:postgresql://127.0.0.1:5432/geotest</connection-url>
-    <driver-class>org.postgis.DriverWrapper</driver-class>
-    <user-name>geo</user-name>
-    <password>geo</password>
-      <metadata>
-         <type-mapping>PostgreSQL 8.1</type-mapping>
-      </metadata>
-  </local-tx-datasource>
-</datasources>
diff --git a/java/ejb3/jboss/ingest-service.xml b/java/ejb3/jboss/ingest-service.xml
deleted file mode 100644
index 2e6789d..0000000
--- a/java/ejb3/jboss/ingest-service.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-	 name="jboss.mq.destination:service=Queue,name=ingestQueue">
-    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
-  </mbean>
-</server>
\ No newline at end of file
diff --git a/java/ejb3/src/META-INF/persistence.xml b/java/ejb3/src/META-INF/persistence.xml
deleted file mode 100644
index bb06da6..0000000
--- a/java/ejb3/src/META-INF/persistence.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<persistence>
-	<persistence-unit name="People">
-		<jta-data-source>java:/GeoDataDS</jta-data-source>
-	</persistence-unit>
-</persistence>
\ No newline at end of file
diff --git a/java/ejb3/src/jndi.properties b/java/ejb3/src/jndi.properties
deleted file mode 100644
index 66babf6..0000000
--- a/java/ejb3/src/jndi.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
-java.naming.provider.url=localhost:1099
diff --git a/java/ejb3/src/org/postgis/ejb/PersonEntity.java b/java/ejb3/src/org/postgis/ejb/PersonEntity.java
deleted file mode 100644
index c3dcd58..0000000
--- a/java/ejb3/src/org/postgis/ejb/PersonEntity.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * PersonEntity.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: PersonEntity.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.ejb;
-
-import java.util.Date;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-
-import org.hibernate.annotations.Type;
-import org.postgis.Geometry;
-
- at Entity
- at Table(name="people")
- at NamedQuery(name="findPerson",
-		query="SELECT DISTINCT OBJECT(p) FROM PersonEntity p WHERE ((p.name = :name) AND (p.surname = :surname)) ORDER BY p.date")
-public class PersonEntity {
-	private long id;
-	private String name;
-	private String surname;
-	private Geometry location;
-	private Date date;
-	
-	@Id 
-	@GeneratedValue(strategy=GenerationType.IDENTITY)
-	@Column(name="id")
-	public long getId() {
-		return id;
-	}
-	public void setId(long id) {
-		this.id = id;
-	}
-	
-	@Type(type = "org.postgis.hibernate.GeometryType")
-	@Column(name="location", columnDefinition="Geometry")
-	public Geometry getLocation() {
-		return location;
-	}
-	public void setLocation(Geometry location) {
-		this.location = location;
-	}
-	
-	@Column(name="name")
-	public String getName() {
-		return name;
-	}
-	public void setName(String name) {
-		this.name = name;
-	}
-	
-	@Column(name="surname")
-	public String getSurname() {
-		return surname;
-	}
-	public void setSurname(String surname) {
-		this.surname = surname;
-	}
-	
-	@Column(name="ingested")
-	@Temporal(TemporalType.TIMESTAMP)
-	public Date getDate() {
-		return date;
-	}
-	
-	public void setDate(Date date) {
-		this.date = date;
-	}
-}
diff --git a/java/ejb3/src/org/postgis/ejb/UserBean.java b/java/ejb3/src/org/postgis/ejb/UserBean.java
deleted file mode 100644
index 4bad301..0000000
--- a/java/ejb3/src/org/postgis/ejb/UserBean.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * UserBean.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: UserBean.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.ejb;
-
-import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.annotation.Resource;
-import javax.annotation.security.RunAs;
-import javax.ejb.EJBException;
-import javax.ejb.Stateless;
-import javax.jms.JMSException;
-import javax.jms.MapMessage;
-import javax.jms.Queue;
-import javax.jms.QueueConnection;
-import javax.jms.QueueConnectionFactory;
-import javax.jms.QueueSender;
-import javax.jms.QueueSession;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-import javax.jws.WebService;
-import javax.jws.soap.SOAPBinding;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-
-import org.jboss.annotation.security.SecurityDomain;
-
- at Stateless
- at WebService(
-		  name = "EndpointInterface", 
-		  targetNamespace = "http://org.postgis/ejb/UserBean", 
-		  serviceName = "PeopleFinder")
- at SOAPBinding(style = SOAPBinding.Style.RPC)
-public class UserBean implements UserBeanRemote{
-	@PersistenceContext(unitName="People") private EntityManager entityManager;
-
-	@Resource(mappedName = "java:/ConnectionFactory")
-	private QueueConnectionFactory connectionFactory;
-	
-	@Resource(mappedName = "queue/ingestQueue")
-	private Queue queue;
-
-
-	@WebMethod
-	public void ingest(@WebParam(name = "name") String name, at WebParam(name = "surname") String surname, at WebParam(name = "lat") double lat, @WebParam(name = "lon") double lon){
-		// place message on a queue
-		try {
-			QueueConnection qConn = connectionFactory.createQueueConnection();
-			QueueSession qSession = qConn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
-			QueueSender qSender = qSession.createSender(queue);
-
-			// create a message
-			MapMessage message = qSession.createMapMessage();
-			message.setStringProperty("MessageFormat", "Person");
-			message.setString("NAME", name);
-			message.setString("SURNAME", surname);
-			message.setDouble("LAT", lat);
-			message.setDouble("LON", lon);
-			qSender.send(message);
-			qSession.close();
-			qConn.close();
-		} catch (JMSException e) {
-			throw new EJBException(e.getMessage());
-		}
-
-	}
-
-
-	@WebMethod
-	@WebResult(name="positions")
-	public String[] findPerson(@WebParam(name = "name") String name, @WebParam(name = "surname") String surname)
-	{
-		Query query = entityManager.createNamedQuery("findPerson");
-		query.setParameter("name", name);
-		query.setParameter("surname", surname);
-		List list = query.getResultList();
-		
-		if (list != null)
-		{
-			Iterator itr = list.iterator();
-			ArrayList<String> resultList = new ArrayList<String>();
-			
-			while (itr.hasNext())
-			{
-				PersonEntity person = (PersonEntity) itr.next();
-				resultList.add(person.getLocation().getValue() + "," + person.getDate() + "\r\n");
-			}
-			
-			String[] result = (String[])(resultList.toArray(new String[resultList.size()]));
-			return result;
-		}
-		else
-		{
-			return null;
-		}
-		
-	}
-
-}
diff --git a/java/ejb3/src/org/postgis/ejb/UserBeanRemote.java b/java/ejb3/src/org/postgis/ejb/UserBeanRemote.java
deleted file mode 100644
index 995fe13..0000000
--- a/java/ejb3/src/org/postgis/ejb/UserBeanRemote.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * UserBeanRemote.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: UserBeanRemote.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.ejb;
-
-import java.rmi.RemoteException;
-
-import javax.ejb.Remote;
-import javax.jws.WebParam;
-
- at Remote
-public interface UserBeanRemote {
-	public void ingest(String name, String surname, double lat, double lon) throws RemoteException;
-	public String[] findPerson(String name, String surname) throws RemoteException;
-}
diff --git a/java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java b/java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java
deleted file mode 100644
index 584d69b..0000000
--- a/java/ejb3/src/org/postgis/ejb/mdb/IngestMDB.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * IngestMDB.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: IngestMDB.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.ejb.mdb;
-
-import java.util.Date;
-
-import javax.ejb.ActivationConfigProperty;
-import javax.ejb.MessageDriven;
-import javax.jms.JMSException;
-import javax.jms.MapMessage;
-import javax.jms.Message;
-import javax.jms.MessageListener;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
-import org.postgis.Point;
-import org.postgis.ejb.PersonEntity;
-
- at MessageDriven(activationConfig={
-		@ActivationConfigProperty(
-				propertyName="destinationType",
-				propertyValue="javax.jms.Queue"),
-		@ActivationConfigProperty(
-				propertyName="destination", 
-				propertyValue="queue/ingestQueue"),
-		@ActivationConfigProperty(
-				propertyName="messageSelector",
-				propertyValue="MessageFormat ='Person'"),
-		@ActivationConfigProperty(
-				propertyName="acknowledgeMode",
-				propertyValue="Auto-acknowledge")
-})
-/**
- * implements a listener interface to ingest people data
- */
-public class IngestMDB implements MessageListener {
-    
-	public static final String NAME = "NAME";
-	public static final String SURNAME = "SURNAME";
-	public static final String LATITUDE = "LAT";
-	public static final String LONGITUDE = "LON";
-	
-	@PersistenceContext(unitName="People") private EntityManager entityManager;
-
-	
-	/**
-	 * Implements a message listener for Person ingest requests
-	 * @see javax.jms.MessageListener#onMessage(javax.jms.Message)
-	 */
-	public void onMessage(Message msg) {
-		if (msg instanceof MapMessage)
-		{
-			try {
-				MapMessage m = (MapMessage)msg;
-				String name = m.getString(IngestMDB.NAME);
-				String surname = m.getString(IngestMDB.SURNAME);
-				Double lat = m.getDouble(IngestMDB.LATITUDE);
-				Double lon = m.getDouble(IngestMDB.LONGITUDE);
-				
-				PersonEntity person = new PersonEntity();
-				person.setName(name);
-				person.setSurname(surname);
-				person.setLocation(new Point(lon, lat));
-				person.setDate(new Date());
-				entityManager.persist(person);
-				
-				// for tutorial info
-				System.out.println("INGESTED " + name + " " + surname + " into PostGIS");
-			} catch (JMSException e) {
-				e.printStackTrace();
-			}
-			
-			
-		}
-		
-	}
-
-}
diff --git a/java/ejb3/src/org/postgis/hibernate/ContainsExpression.java b/java/ejb3/src/org/postgis/hibernate/ContainsExpression.java
deleted file mode 100644
index 6e88435..0000000
--- a/java/ejb3/src/org/postgis/hibernate/ContainsExpression.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * ContainsExpression.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: ContainsExpression.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.hibernate;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.hibernate.Criteria;
-import org.hibernate.EntityMode;
-import org.hibernate.Hibernate;
-import org.hibernate.HibernateException;
-import org.hibernate.criterion.CriteriaQuery;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.function.StandardSQLFunction;
-import org.hibernate.engine.TypedValue;
-import org.postgis.Geometry;
-
-/**
- * @author nbarker
- *
- */
-public class ContainsExpression implements Criterion{
-	private static final long serialVersionUID = 1L;
-	private String propertyName;
-	private Geometry geom;
-	
-	public ContainsExpression(String propertyName, Geometry geom)
-	{
-		this.propertyName = propertyName;
-		this.geom = geom;
-	}
-	
-	public TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
-		return new TypedValue[]{new TypedValue(Hibernate.custom(GeometryType.class), geom, EntityMode.POJO)};
-	}
-
-	public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
-		Dialect dialect = criteriaQuery.getFactory().getDialect();
-		String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
-		
-		if (columns.length != 1) throw new HibernateException("\"contains\" may only be used with single-column properties");
-		if ( dialect instanceof PostGISDialect) {
-			StandardSQLFunction function = (StandardSQLFunction)dialect.getFunctions().get(PostGISDialect.NAMESPACE + "contains");
-			List args = new ArrayList();
-			args.add(columns[0]);
-			args.add("?");
-			
-			return function.render(args, criteriaQuery.getFactory());
-		}
-		else
-		{
-			throw new HibernateException("\"contains\" may only be used with a spatial hibernate dialect");
-		}
-	}
-	
-	public String toString()
-	{
-		return propertyName + " contains " + geom;
-	}
-
-}
diff --git a/java/ejb3/src/org/postgis/hibernate/GeometryType.java b/java/ejb3/src/org/postgis/hibernate/GeometryType.java
deleted file mode 100644
index e86f568..0000000
--- a/java/ejb3/src/org/postgis/hibernate/GeometryType.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * GeometryType.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: GeometryType.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.hibernate;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import java.sql.Blob;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Types;
-
-import org.hibernate.HibernateException;
-import org.hibernate.usertype.UserType;
-import java.io.InputStream;
-import org.postgis.Geometry;
-import org.postgis.binary.BinaryParser;
-import org.postgis.binary.BinaryWriter;
-
-/**
- * @author nbarker $date 16/8/06
- */
-public class GeometryType implements UserType {
-	 private static final int[] SQL_TYPES = { Types.BLOB };
-	
-
-	/**
-	 * @see org.hibernate.usertype.UserType#deepCopy(java.lang.Object)
-	 */
-	public Object deepCopy(Object value) throws HibernateException {
-		return value;
-	}
-
-	/**
-	 * @see org.hibernate.usertype.UserType#equals(java.lang.Object, java.lang.Object)
-	 */
-	public boolean equals(Object x, Object y) throws HibernateException {
-		if (x == y) {
-			return true;
-		} else if (x == null || y == null) {
-			return false;
-		} else {
-			return x.equals(y);
-		}
-	}
-
-	/**
-	 * @see org.hibernate.usertype.UserType#hashCode(java.lang.Object)
-	 */
-	public int hashCode(Object arg0) throws HibernateException {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	/**
-	 * @see org.hibernate.usertype.UserType#isMutable()
-	 */
-	public boolean isMutable() {
-		return false;
-	}
-
-	/**)
-	 * @see org.hibernate.usertype.UserType#nullSafeGet(java.sql.ResultSet, java.lang.String[], java.lang.Object)
-	 */
-	public Object nullSafeGet(ResultSet resultSet, 
-		      String[] names, Object owner) throws HibernateException, SQLException {
-        Geometry result = null;
-        String geom = resultSet.getString(names[0]);
-        if(geom != null ) {
-            BinaryParser parser = new BinaryParser();
-            result = parser.parse(geom);
-        }
-        return result;
-	}
-
-	/**
-	 * @see org.hibernate.usertype.UserType#nullSafeSet(java.sql.PreparedStatement, java.lang.Object, int)
-	 */
-	public void nullSafeSet(PreparedStatement statement, 
-		      Object value, int index) throws HibernateException, SQLException {
-	    if (value == null) {
-	        statement.setBytes(index, null);
-	      } else {
-	    	BinaryWriter bw = new BinaryWriter();
-	    	
-	    	byte[] bytes = bw.writeBinary((Geometry)value);
-	        statement.setBytes(index, bytes);
-	      }
-	}
-
-	/* (non-Javadoc)
-	 * @see org.hibernate.usertype.UserType#replace(java.lang.Object, java.lang.Object, java.lang.Object)
-	 */
-	public Object replace(Object original, Object target, 
-                              Object owner) throws HibernateException {
-		return original;	
-	}
-
-	/* (non-Javadoc)
-	 * @see org.hibernate.usertype.UserType#returnedClass()
-	 */
-	public Class returnedClass() {
-		return Geometry.class;
-	}
-
-	/**
-	 * @see org.hibernate.usertype.UserType#sqlTypes()
-	 */
-	public int[] sqlTypes() {
-		return GeometryType.SQL_TYPES;
-	}
-
-	/**
-	 * @see org.hibernate.usertype.UserType#assemble(java.io.Serializable, java.lang.Object)
-	 */
-	public Object assemble(Serializable cached, Object owner) throws HibernateException {
-		return cached;
-	}
-	
-	/**
-	 * @see org.hibernate.usertype.UserType#disassemble(java.lang.Object)
-	 */
-	public Serializable disassemble(Object value) throws HibernateException {
-		return (Serializable)value;
-	}
-
-}
-
diff --git a/java/ejb3/src/org/postgis/hibernate/IntersectsExpression.java b/java/ejb3/src/org/postgis/hibernate/IntersectsExpression.java
deleted file mode 100644
index 1014eba..0000000
--- a/java/ejb3/src/org/postgis/hibernate/IntersectsExpression.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * IntersectsExpression.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: IntersectsExpression.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.hibernate;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.hibernate.Criteria;
-import org.hibernate.EntityMode;
-import org.hibernate.Hibernate;
-import org.hibernate.HibernateException;
-import org.hibernate.criterion.CriteriaQuery;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.function.StandardSQLFunction;
-import org.hibernate.engine.TypedValue;
-import org.postgis.Geometry;
-
-/**
- * @author nbarker
- *
- */
-public class IntersectsExpression implements Criterion{
-	private static final long serialVersionUID = 1L;
-	private String propertyName;
-	private Geometry geom;
-	
-	public IntersectsExpression(String propertyName, Geometry geom)
-	{
-		this.propertyName = propertyName;
-		this.geom = geom;
-	}
-	
-	public TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
-		return new TypedValue[]{new TypedValue(Hibernate.custom(GeometryType.class), geom, EntityMode.POJO)};
-	}
-
-	public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
-		Dialect dialect = criteriaQuery.getFactory().getDialect();
-		String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
-		
-		if (columns.length != 1) throw new HibernateException("\"intersects\" may only be used with single-column properties");
-		if ( dialect instanceof PostGISDialect) {
-			StandardSQLFunction function = (StandardSQLFunction)dialect.getFunctions().get(PostGISDialect.NAMESPACE + "intersects");
-			List args = new ArrayList();
-			args.add(columns[0]);
-			args.add("?");
-			
-			return function.render(args, criteriaQuery.getFactory());
-		}
-		else
-		{
-			throw new HibernateException("\"intersects\" may only be used with a spatial hibernate dialect");
-		}
-	}
-	
-	public String toString()
-	{
-		return propertyName + " intersects " + geom;
-	}
-
-}
diff --git a/java/ejb3/src/org/postgis/hibernate/PostGISDialect.java b/java/ejb3/src/org/postgis/hibernate/PostGISDialect.java
deleted file mode 100644
index 2731baa..0000000
--- a/java/ejb3/src/org/postgis/hibernate/PostGISDialect.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * PostGISDialect.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: PostGISDialect.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.hibernate;
-
-import java.sql.Types;
-
-import org.hibernate.Hibernate;
-import org.hibernate.dialect.PostgreSQLDialect;
-import org.hibernate.dialect.function.StandardSQLFunction;
-import org.postgis.hibernate.GeometryType;
-
-/**
- * @author nbarker
- *
- */
-public class PostGISDialect extends PostgreSQLDialect{
-	public static String NAMESPACE = "spatial.";
-	
-
-	public PostGISDialect()
-	{
-		super();
-		registerColumnType(Types.BLOB, "geometry");
-		registerFunction( PostGISDialect.NAMESPACE + "dimension", new StandardSQLFunction("dimension", Hibernate.INTEGER));
-		registerFunction( PostGISDialect.NAMESPACE + "geometrytype", new StandardSQLFunction("geometrytype", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "srid", new StandardSQLFunction("srid", Hibernate.INTEGER));
-		registerFunction( PostGISDialect.NAMESPACE + "envelope", new StandardSQLFunction("envelope", Hibernate.custom(GeometryType.class)));
-		registerFunction( PostGISDialect.NAMESPACE + "astext", new StandardSQLFunction("astext", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "asbinary", new StandardSQLFunction("asbinary", Hibernate.BINARY));
-		registerFunction( PostGISDialect.NAMESPACE + "isempty", new StandardSQLFunction("isempty", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "issimple", new StandardSQLFunction("issimple", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "boundary", new StandardSQLFunction("boundary", Hibernate.custom(GeometryType.class)));
-		registerFunction( PostGISDialect.NAMESPACE + "equals", new StandardSQLFunction("equals", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "disjoint", new StandardSQLFunction("disjoint", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "intersects", new StandardSQLFunction("intersects", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "touches", new StandardSQLFunction("touches", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "crosses", new StandardSQLFunction("crosses", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "within", new StandardSQLFunction("within", Hibernate.BOOLEAN));
-		registerFunction( PostGISDialect.NAMESPACE + "contains", new StandardSQLFunction("contains", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "overlaps", new StandardSQLFunction("overlaps", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "relate", new StandardSQLFunction("relate", Hibernate.STRING));
-		registerFunction( PostGISDialect.NAMESPACE + "distance", new StandardSQLFunction("distance", Hibernate.DOUBLE));
-		registerFunction( PostGISDialect.NAMESPACE + "buffer", new StandardSQLFunction("buffer", Hibernate.custom(GeometryType.class)));
-		registerFunction( PostGISDialect.NAMESPACE + "convexhull", new StandardSQLFunction("convexhull", Hibernate.custom(GeometryType.class)));
-		registerFunction( PostGISDialect.NAMESPACE + "intersection", new StandardSQLFunction("intersection", Hibernate.custom(GeometryType.class)));
-		registerFunction( PostGISDialect.NAMESPACE + "union", new StandardSQLFunction("geomunion", Hibernate.custom(GeometryType.class)));
-		registerFunction( PostGISDialect.NAMESPACE + "difference", new StandardSQLFunction("difference", Hibernate.custom(GeometryType.class)));
-		registerFunction( PostGISDialect.NAMESPACE + "symdifference", new StandardSQLFunction("symdifference", Hibernate.custom(GeometryType.class)));
-		registerFunction( PostGISDialect.NAMESPACE + "numgeometries", new StandardSQLFunction("numgeometries", Hibernate.custom(GeometryType.class)));
-		registerFunction( PostGISDialect.NAMESPACE + "geometryn", new StandardSQLFunction("geometryn", Hibernate.INTEGER));
-		registerFunction( PostGISDialect.NAMESPACE + "x", new StandardSQLFunction("x", Hibernate.DOUBLE));
-		registerFunction( PostGISDialect.NAMESPACE + "y", new StandardSQLFunction("y", Hibernate.DOUBLE));
-		registerFunction( PostGISDialect.NAMESPACE + "geometryfromewtk", new StandardSQLFunction("geometryfromewtk", Hibernate.custom(GeometryType.class)));
-	}
-}
diff --git a/java/ejb3/src/org/postgis/hibernate/WithinExpression.java b/java/ejb3/src/org/postgis/hibernate/WithinExpression.java
deleted file mode 100644
index 8e871ec..0000000
--- a/java/ejb3/src/org/postgis/hibernate/WithinExpression.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * WithinExpression.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - EJB3 Tutorial
- * 
- * (C) 2006  Norman Barker <norman.barker at gmail.com>
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: WithinExpression.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.hibernate;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.hibernate.Criteria;
-import org.hibernate.EntityMode;
-import org.hibernate.Hibernate;
-import org.hibernate.HibernateException;
-import org.hibernate.criterion.CriteriaQuery;
-import org.hibernate.criterion.Criterion;
-import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.function.StandardSQLFunction;
-import org.hibernate.engine.TypedValue;
-import org.postgis.Geometry;
-
-/**
- * @author nbarker
- *
- */
-public class WithinExpression implements Criterion{
-	private static final long serialVersionUID = 1L;
-	private String propertyName;
-	private Geometry geom;
-	
-	public WithinExpression(String propertyName, Geometry geom)
-	{
-		this.propertyName = propertyName;
-		this.geom = geom;
-	}
-	
-	public TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
-		return new TypedValue[]{new TypedValue(Hibernate.custom(GeometryType.class), geom, EntityMode.POJO)};
-	}
-
-	public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
-		Dialect dialect = criteriaQuery.getFactory().getDialect();
-		String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
-		
-		if (columns.length != 1) throw new HibernateException("\"within\" may only be used with single-column properties");
-		if ( dialect instanceof PostGISDialect) {
-			StandardSQLFunction function = (StandardSQLFunction)dialect.getFunctions().get(PostGISDialect.NAMESPACE + "within");
-			List args = new ArrayList();
-			args.add(columns[0]);
-			args.add("?");
-			
-			return function.render(args, criteriaQuery.getFactory());
-		}
-		else
-		{
-			throw new HibernateException("\"within\" may only be used with a spatial hibernate dialect");
-		}
-	}
-	
-	public String toString()
-	{
-		return propertyName + " within " + geom;
-	}
-
-}
diff --git a/java/jdbc/COPYING_LGPL b/java/jdbc/COPYING_LGPL
deleted file mode 100644
index b124cf5..0000000
--- a/java/jdbc/COPYING_LGPL
+++ /dev/null
@@ -1,510 +0,0 @@
-
-                  GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations
-below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-

-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it
-becomes a de-facto standard.  To achieve this, non-free programs must
-be allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-

-                  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control
-compilation and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-

-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-

-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-

-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at least
-    three years, to give the same user the materials specified in
-    Subsection 6a, above, for a charge no more than the cost of
-    performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-

-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-

-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply, and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License
-may add an explicit geographical distribution limitation excluding those
-countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-

-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                            NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-

-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms
-of the ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.
-It is safest to attach them to the start of each source file to most
-effectively convey the exclusion of warranty; and each file should
-have at least the "copyright" line and a pointer to where the full
-notice is found.
-
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the library,
-if necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James
-  Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/java/jdbc/Makefile.in b/java/jdbc/Makefile.in
deleted file mode 100644
index e7cd94e..0000000
--- a/java/jdbc/Makefile.in
+++ /dev/null
@@ -1,33 +0,0 @@
-# **********************************************************************
-# *
-# * PostGIS - Spatial Types for PostgreSQL
-# * http://postgis.net
-# *
-# * Copyright (C) 2012 Sandro Santilli <strk at keybit.net>
-# *
-# * This is free software; you can redistribute and/or modify it under
-# * the terms of the GNU General Public Licence. See the COPYING file.
-# *
-# **********************************************************************
-
-ANT=@ANT@
-POSTGIS_LIB_VERSION=@POSTGIS_LIB_VERSION@
-
-all: build
-
-pom.xml: pom.xml.in
-	sed 's,%VERSION%,$(POSTGIS_LIB_VERSION),g' $< >$@
-
-distclean:
-	rm -f pom.xml
-
-build: pom.xml
-
-build clean distclean check:
-	$(ANT) $@
-
-maintainer-clean: distclean
-	: nothing to do
-
-install uninstall:
-	: TODO !
diff --git a/java/jdbc/README b/java/jdbc/README
deleted file mode 100644
index 706f8e6..0000000
--- a/java/jdbc/README
+++ /dev/null
@@ -1,237 +0,0 @@
-
-*** PostGIS JDBC Driver extension README / FAQ ***
-
-(C) 2005 Markus Schaber <markus.schaber at logix-tt.com>
-
-$Id $
-
-* What is it all about? *
-
-JDBC is an database driver specification for Java. Like ODBC in the C
-world, JDBC allows java applications to transparently use different
-JDBC compliant databases without any source code changes. PostgreSQL,
-the database PostGIS is written for, comes with a driver that
-follows this specification. For downloads and more info, see:
-http://jdbc.postgresql.org/download.html
-
-The purpose of the JDBC Driver extension is to give the PostgreSQL
-JDBC driver some understanding of the PostGIS data types (Geometry,
-Box3D, Box2D). Without this, the Application can only get byte arrays
-or strings (binary and text representation, rsp.) and has to parse it
-on its own. When registering this extension, the Application can
-simply call getObject(column) on the result of the query, and get a
-real java object that is modeled after the OpenGIS spec. It also can
-create or modify this objects itsself and then pass them into the
-database via the PreparedStatement.setObject() method.
-
-Currently, the code is tested with PostGIS 0.8.1, 0.9.1. 0.9.2 and
-1.0.0. It supports both the new hex-encoded EWKB canonical text
-representation used by PostGIS 1.0.0 lwgeom code, and the old, less
-efficient WKT like representation used by previous releases when
-reading data from the server. When sending data to the server, it
-currently always uses the latter form, which is compatible to all
-PostGIS versions.
-
-
-* Do I need it? *
-
-If you happen to write GIS applications, you can propably benefit.
-
-In case your applications are PostGIS specific, you can fully exploit
-the functionality, see "How to I use it" below for instructions and
-the src/examples directory for some code examples.
-
-If you rather prefer to stay OpenGIS compliant, then you cannot use
-the full driver embedding, as this is PostGIS specific functionality.
-But you can still use the geometry classes as a lightweight java
-geometry model if you do not want to use a full-blown GIS
-implementation like jts. Simply use the asText() and
-GeometryFromText() OpenGIS SQL functions against whichever OpenGIS
-compliant server you want, and use the WKT parsing constructors or
-PGgeometry.geomFromString() as well as Geometry.toString() to convert
-between WKT strings and geometry objects.
-
-
-* Is it free? *
-
-Yes. The actual Driver extension code is licensed under the GNU LGPL, 
-this allows everyone to include the code in his projects. You do not
-have to pay any license fees, and you can keep your own application 
-code proprietary, but you have to make the PostGIS source code available 
-to any receivers, including any modifications you apply to it. For 
-details, please see the license file COPYING_LGPL.
-
-The Build files and examples are licensed under GNU GPL, just like the
-rest of PostGIS is. This is not LGPL as applications usually do not
-link against those.
-
-
-* How do I build it? *
-
-There are older make files with which you can try to build, but maven is recommended, 
-as it handles dependencies on a better and cleaner way.
-
-You have to install maven on your computer to build it. To install maven you can try 
-to search on your software repositories or read the documentation:
-http://maven.apache.org/download.html
-
-To compile your postgis driver, go to the jdbc folder and execute the console
-command "mvn package". This should create a postgis jar on the target folder 
-inside the jdbc folder.
-
-Note that your postgis driver version does not constrain the PostgreSQL 
-server version. As the JDBC drivers are downwards compatible against older 
-servers, and PostgreSQL servers typically accept older clients, you can 
-easily use e. G. a pgjdbc 8.0 against a PostgreSQL 7.3 server. To benefit
-from optimizations and bugfixes, it is generally suggested to use the 
-newest stable pgjdbc build that is documented to work against your 
-server release.
-
-* It is called jdbc2 - does it work with jdbc3, too? *
-
-To make it short: The naming does not refer to SUN jdbc standard releases 
-jdbc-1, jdbc-2 or jdbc-3. 
-
-The current naming is somehow unfortunate. The directory simply is named
-jdbc2 because it is the successor of Paul Ramsey's original jdbc directory,
-which used to exist parallel in the CVS repository. As CVS does its best
-to hinder useful version tracking across file renames, the name was kept
-even after removal of the original jdbc subproject. 
-
-Please note that the PostgreSQL JDBC driver itsself is released in
-several flavours for different JDBC relases and sun JDK releases, but
-currently, the same postgis.jar should work with all of them. If not,
-you clearly found a bug, and we kindly ask you to report it.
-
-If you run into troubles, make shure that you use the newest pgjdbc build.
-Especially pre releases are known to contain bugs (that's why they are pre
-releases), and e. G. 8.0 build 309 contained some problems that are fixed
-in 8.0 build 313.
-
-
-* How do I use it? *
-
-To use the PostGIS types, you need the postgis.jar and the pgjdbc
-driver in your classpath.
-
-The PostGIS extension must be registered within the JDBC driver.
-There are three ways to do this:
-
-- If you use pgjdbc 8.0, the org/postgresql/driverconfig.properties
-  file contained in the postgis.jar autoregisters the PostGIS
-  extension for the PostGIS data types (geometry, box2d, box3d)
-  within the pgjdbc driver.
-
-- You can use the org.postgis.DriverWrapper as replacement for the
-  jdbc driver. This class wraps the PostGreSQL Driver to
-  transparently add the PostGIS Object Classes. This method currently
-  works both with J2EE DataSources, and with the older DriverManager
-  framework. I's a thin wrapper around org.postgresql.Driver that
-  simply registers the extension on every new connection created.
-
-  To use it, you replace the "jdbc:postgresql:" with a
-  "jdbc:postgresql_postGIS" in the jdbc URL, and make your
-  environment aware of the new Driver class.
-
-  DriverManager users simply register org/postgis/DriverWrapper
-  instead of  (or in addition to) org.postgresql.Driver, see
-  examples/TestBoxes.connect()  for an working code.
-
-  DataSource users similarly have to configure their datasource to
-  use the different class. The following works for jboss, put it in
-  your-ds.xml: <driver-class>org.postgis.DriverWrapper</driver-class>
-
-- Of course, you can also manually register the Datatypes on your
-  pgjdbc connection. You have to cast your connection to PGConnection
-  and then call:
-
-        pgconn.addDataType("geometry", "org.postgis.PGgeometry");
-        pgconn.addDataType("box3d", "org.postgis.PGbox3d");
-        pgconn.addDataType("box2d", "org.postgis.PGbox2d");
-
-  You may need to dig through some wrappers when running in an
-  appserver. E. G. for JBoss, The datasource actually gives you a
-  instance of org.jboss.resource.adapter.jdbc.WrappedConnection and
-  have to call getUnderlyingConnection() on it to get the
-  PGConnection instance.)
-
-  Also note that the above addDataType() methods known from earlier
-  pgjdbc versions are deprecated in pgjdbc 8.0 (but still work), see
-  the commented code variants in the DriverWrapper.addGisTypes()
-  method for an alternative.
-
-Note: Even using pgjdbc 8.0, you may still want to use the second or
-third approach if you have several pgjdbc extensions that
-autoregister for the same PostGIS types, as the driver cannot guess
-which extension it should actually use on which connection. The
-current pgjdbc implementation simply parses all
-org/postgresql/driverconfig.properties the classloader can find in his
-classpath, using the first definition found for each type.
-
-
-* How to I run the tests? Are they allowed to fail? *
-
-There are two types of tests provided, offline and online. Offline
-tests can run without a PostGIS server, the online tests need a
-PostGIS server to connect to.
-
-- Offline Tests
-
-  The easiest way to run the offline tests is "make offlinetests".
-
-  The offline tests should always complete without any failure. If
-  you happen to get a failure here, it is a bug in the PostGIS code
-  (or, very unlikely, in the JDK/JRE or Hardware you use). Please
-  contact the PostGIS developer list in this case.
-
-- Online tests
-
-  The online tests can be ran with "make onlinetests", but they need
-  a specially prepared database to connect against, and the pgjdbc
-  driver available in your classpath. The Makefile provides defaults
-  for PGHOST, PGPOR, PGDATABASE, PGUSER and PGPASS, you can override
-  them for your needs. For the jtest, the user needs to create and
-  drop table privileges, the two other tests do not use any table.
-  Make shure you have the PostGIS installed in the database.
-
-  None of the online tests should report any failure. However, some of the
-  tests are skipped against PostGix 0.X servers as 0.8.X and 0.9.X, those
-  are the box2d tests (because this datatype simply is missing on those
-  releases), as well as 22 skipped tests for some geometry representations
-  that those old releases do not support. This is a PostGIS server side
-  problem as the server fails to parse some OpenGIS compliant WKT
-  representations, and structurally (but not geometrically or topologically) 
-  mangles some other geometries. They are unlikely to be fixed in those
-  releases as users should migrate to PostGIS 1.0.
-  
-  The Autoregister Test needs a pgjdbc version 8.0 or newer, and will
-  simply do nothing with older pgjdbc versions.
-
-  If you get any failure messages in the online tests, check whether
-  your really fulfil the prerequisites above. If yes, please contact
-  the PostGIS developer list.
-
-
-* What about the JTS stuff *
-
-There's beta support for the JTS 1.6 geometry implementations instead of the
-native PostGIS classes on the java client side. Simply add jts_1.6.jar to your
-CLASSPATH, "make postgis_jts" and use at your own risk.
-
-
-* How can I contact you? *
-
-Well, the best place are the official PostGIS mailing lists for PostGIS,
-subscription information is linked at:
-
-  http://postgis.net/
-  
-If you want to report errors, please try to send us all the details we need
-to reproduce your problem. A small, self-contained test case would be best.
-
-
-* Phew. That's all? *
-
-Yes. For now, at least.
-
-Happy Coding!
diff --git a/java/jdbc/build.xml b/java/jdbc/build.xml
deleted file mode 100644
index dc207c7..0000000
--- a/java/jdbc/build.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0"?>
-<!--
- * build file
- *
- * PostGIS JDBC driver
- *
- * (C) 2007  Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
- * Rewritten on 2012 by Maria Arias de Reyna <delawen at gmail.com> 
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- *
-
- Usage: ant build
-
- -->
-
-<project name="postgis-jdbc-driver" default="all" basedir="." xmlns:artifact="antlib:org.apache.maven.artifact.ant">
-
-
-  <!-- Global properties -->
-  <property name="stubsrc" value="stubs"/>
-  <property name="stubbuild" value="stubbin"/>
-  <property name="src" value="src"/>
-  <property name="build" value="bin"/>
-  <property name="javadocbuild" value="javadoc-build"/>
-  <property name="javadoczip" value="postgis-jdbc-javadoc.zip"/>
-  <property name="regresslog" value="test.log"/>
-  <property name="pgdefaultjar" value="/usr/share/java/postgresql.jar"/>
-  <property name="versioninfo" value="../../Version.config"/>
-
-  <!-- Environment variables -->
-  <property environment="env"/>
-
-  <!-- Load in the version information from Version.config -->
-  <property file="${versioninfo}"/>
-  <property name="postgis_version" value="${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}.${POSTGIS_MICRO_VERSION}"/>
-
-  <path id="regressclasspath">
-    <pathelement path="${pgdefaultjar}"/>
-    <pathelement path="${classpath}"/>
-    <pathelement location="postgis_${postgis_version}.jar"/>
-  </path>
-
-
-     <!-- Loading Maven dependencies -->
-     <mkdir dir="lib"/>
-     <get src="http://www.apache.org/dist/maven/ant-tasks/2.1.3/binaries/maven-ant-tasks-2.1.3.jar"
-          dest="lib/maven-ant-tasks-2.1.3.jar"/>
-
-     <path id="maven-ant-tasks.classpath" path="lib/maven-ant-tasks-2.1.3.jar" />
-     <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
-           uri="antlib:org.apache.maven.artifact.ant"
-           classpathref="maven-ant-tasks.classpath" />
-
-     <target name="build">
-      <artifact:mvn pom="pom.xml">
-         <arg value="package"/>
-      </artifact:mvn> 
-     </target>
-
-    <target name="all" depends="build"/>
-  
-     <target name="clean">
-      <artifact:mvn pom="pom.xml">
-         <arg value="clean"/>
-      </artifact:mvn>
-     </target>
-
-    <target name="distclean" depends="clean">
-      <delete dir="${user.home}/.m2/repository/"/>
-      <delete dir="lib"/>
-    </target>
-
-  <target name="check">
-     <artifact:mvn pom="pom.xml">
-       <arg value="test"/>
-     </artifact:mvn>
-  </target>
-
-  <!-- Extra targets -->
-
-  <!-- Offline regression tests -->
-  <target name="offline-regression" depends="boxtestoffline-regression, ptestoffline-regression, test-regression"/>
- 
-  <target name="boxtestoffline-regression">
-    <java classname="examples.TestBoxes" fork="true" output="${regresslog}" error="${regresslog}.err" append="true">
-      <arg value="offline"/>
-      <classpath refid="regressclasspath"/>
-    </java>
-
-    <!-- Show any errors -->
-    <loadfile property="stderr" srcfile="${regresslog}.err"/>
-    <echo message="${stderr}"/>
-    <delete>
-      <fileset dir="." includes="${regresslog}.err"/>
-    </delete>
-  </target>
-
-  <target name="ptestoffline-regression">
-    <java classname="examples.TestParser" fork="true" output="${regresslog}" error="${regresslog}.err" append="true">
-      <arg value="offline"/>
-      <classpath refid="regressclasspath"/>
-    </java>
-    
-    <!-- Show any errors -->
-    <loadfile property="stderr" srcfile="${regresslog}.err"/>
-    <echo message="${stderr}"/>
-    <delete>
-      <fileset dir="." includes="${regresslog}.err"/>
-    </delete>
-  </target>
-  
-  <target name="test-regression">
-    <java classname="examples.Test" fork="true" output="${regresslog}" error="${regresslog}.err" append="true">
-      <arg value="offline"/>
-      <classpath refid="regressclasspath"/>
-    </java>
-    
-    <!-- Show any errors -->
-    <loadfile property="stderr" srcfile="${regresslog}.err"/>
-    <echo message="${stderr}"/>
-    <delete>
-      <fileset dir="." includes="${regresslog}.err"/>
-    </delete>
-  </target>
-
-
-
-  <!-- Documentation -->
-  <target name="javadoc" depends="build">
-    <javadoc sourcepath="${src}" destdir="${javadocbuild}">
-      <package name="org.postgis"/>
-      <package name="org.postgis.jts"/>
-      <package name="org.postgis.binary"/>
-      <package name="org.postgis.java2d"/>
-      <package name="examples"/>
-    </javadoc>
-  </target>
-
-  <target name="javadoc-compress" depends="javadoc">
-    <!-- Compress the documentation into a single ZIP file -->
-    <zip basedir="${javadocbuild}" destfile="${javadoczip}"/>
-  </target>
-
-</project>
diff --git a/java/jdbc/pom.xml.in b/java/jdbc/pom.xml.in
deleted file mode 100644
index 6ba217f..0000000
--- a/java/jdbc/pom.xml.in
+++ /dev/null
@@ -1,147 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-	
-    <parent>
-        <groupId>org.sonatype.oss</groupId>
-        <artifactId>oss-parent</artifactId>
-        <version>7</version>
-    </parent>
-
-    <groupId>org.postgis</groupId>
-    <artifactId>postgis-jdbc</artifactId>
-    <version>%VERSION%</version>
-    <packaging>jar</packaging>
-    <name>Postgis JDBC Driver</name>
-    <url>http://postgis.net</url>
-    <description>PostGIS adds support for geographic objects to the PostgreSQL object-relational database.</description>
-
-    <licenses>
-        <license>
-            <name>GNU Lesser General Public License</name>
-            <url>http://www.gnu.org/licenses/lgpl-2.1.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-    <developers>
-        <developer>
-            <name>Postgis Development Team</name>
-        </developer>
-        <developer>
-            <name>María Arias de Reyna</name>
-            <email>delawen en gmail.com</email>
-        </developer>
-    </developers>
-    <contributors>
-        <contributor>
-            <name>Hakan Tandogan</name>
-            <email>hakan at gurkensalat.com</email>
-            <url>http://www.gurkensalat.com/</url>
-            <roles>
-                <role>Maven Packager</role>
-            </roles>
-        </contributor>
-        <contributor>
-            <name>Baris Ergun</name>
-            <email>barisergun75 at gmail.com</email>
-            <url>http://www.barisergun.com/</url>
-            <roles>
-                <role>Maven Packager</role>
-            </roles>
-        </contributor>
-    </contributors>
-    <mailingLists>
-        <mailingList>
-            <name>User List</name>
-            <subscribe>postgis-users-subscribe at lists.osgeo.org</subscribe>
-            <unsubscribe>postgis-users-unsubscribe at lists.osgeo.org</unsubscribe>
-            <post>postgis-users at lists.osgeo.org</post>
-            <archive>http://lists.osgeo.org/pipermail/postgis-users/</archive>
-        </mailingList>
-        <mailingList>
-            <name>Developer List</name>
-            <subscribe>postgis-devel-subscribe at lists.osgeo.org</subscribe>
-            <unsubscribe>postgis-devel-unsubscribe at lists.osgeo.org</unsubscribe>
-            <post>postgis-devel at lists.osgeo.org</post>
-            <archive>http://lists.osgeo.org/pipermail/postgis-devel/</archive>
-        </mailingList>
-    </mailingLists>
-    <issueManagement>
-        <system>Trac</system>
-        <url>http://trac.osgeo.org/postgis/</url>
-    </issueManagement>
-    <scm>
-        <url>http://trac.osgeo.org/postgis/browser/branches/2.1</url>
-        <connection>scm:svn:http://svn.osgeo.org/postgis/branches/2.1</connection>
-        <developerConnection>scm:svn:http://svn.osgeo.org/postgis/branches/2.1</developerConnection>
-    </scm>
-
-    <build>
-
-        <sourceDirectory>${basedir}/src</sourceDirectory>
-        <!-- For the driverconfig property file -->
-        <resources>
-            <resource>
-                <directory>src</directory>
-                <filtering>true</filtering>
-                <includes>
-                    <include>**/*.properties</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
-
-        <plugins>
-	    <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <version>2.2.1</version>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <version>2.9.1</version>
-                <configuration>
-                    <overview>${basedir}/src/java/org/postgis/overview.html</overview>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>attach-javadocs</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-        <dependency>
-            <groupId>postgresql</groupId>
-            <artifactId>postgresql</artifactId>
-            <version>9.1-901.jdbc4</version>
-        </dependency>
-    </dependencies>
-	
-    <distributionManagement>
-        <repository>
-            <id>sonatype-postgis-releases</id>
-            <name>Sonatype Postgis Releases Repo</name>
-            <url>http://oss.sonatype.org/content/repositories/postgis-releases</url>
-        </repository>
-    </distributionManagement>
-	
-</project>
diff --git a/java/jdbc/src/examples/Test.java b/java/jdbc/src/examples/Test.java
deleted file mode 100644
index 8a0561b..0000000
--- a/java/jdbc/src/examples/Test.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Test.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - example and test classes
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.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.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: Test.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package examples;
-
-import org.postgis.LineString;
-import org.postgis.LinearRing;
-import org.postgis.MultiLineString;
-import org.postgis.MultiPolygon;
-import org.postgis.PGgeometry;
-import org.postgis.Point;
-import org.postgis.Polygon;
-
-import java.sql.SQLException;
-
-public class Test {
-
-    public static void main(String[] args) throws SQLException {
-        String mlng_str = "MULTILINESTRING ((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))";
-        String mplg_str = "MULTIPOLYGON (((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))";
-        String plg_str = "POLYGON ((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))";
-        String lng_str = "LINESTRING  (10 10 20,20 20 20, 50 50 50, 34 34 34)";
-        String ptg_str = "POINT(10 10 20)";
-        String lr_str = "(10 10 20,34 34 34, 23 19 23 , 10 10 11)";
-
-        System.out.println("LinearRing Test:");
-        System.out.println("\t" + lr_str);
-        LinearRing lr = new LinearRing(lr_str);
-        System.out.println("\t" + lr.toString());
-
-        System.out.println();
-
-        System.out.println("Point Test:");
-        System.out.println("\t" + ptg_str);
-        Point ptg = new Point(ptg_str);
-        System.out.println("\t" + ptg.toString());
-
-        System.out.println();
-
-        System.out.println("LineString Test:");
-        System.out.println("\t" + lng_str);
-        LineString lng = new LineString(lng_str);
-        System.out.println("\t" + lng.toString());
-
-        System.out.println();
-
-        System.out.println("Polygon Test:");
-        System.out.println("\t" + plg_str);
-        Polygon plg = new Polygon(plg_str);
-        System.out.println("\t" + plg.toString());
-
-        System.out.println();
-
-        System.out.println("MultiPolygon Test:");
-        System.out.println("\t" + mplg_str);
-        MultiPolygon mplg = new MultiPolygon(mplg_str);
-        System.out.println("\t" + mplg.toString());
-
-        System.out.println();
-
-        System.out.println("MultiLineString Test:");
-        System.out.println("\t" + mlng_str);
-        MultiLineString mlng = new MultiLineString(mlng_str);
-        System.out.println("\t" + mlng.toString());
-
-        System.out.println();
-
-        System.out.println("PG Test:");
-        System.out.println("\t" + mlng_str);
-        PGgeometry pgf = new PGgeometry(mlng_str);
-        System.out.println("\t" + pgf.toString());
-
-        System.out.println();
-
-        System.out.println("finished");
-        // If we reached here without any exception, we passed all tests.
-        System.err.println("Test.java finished without errors.");
-    }
-}
diff --git a/java/jdbc/src/examples/TestAutoregister.java b/java/jdbc/src/examples/TestAutoregister.java
deleted file mode 100644
index 57ba472..0000000
--- a/java/jdbc/src/examples/TestAutoregister.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * TestAutoregister.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - example and test classes
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.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.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: TestAutoregister.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package examples;
-
-import org.postgis.PGbox2d;
-import org.postgis.PGbox3d;
-import org.postgis.PGgeometry;
-import org.postgresql.Driver;
-import org.postgresql.util.PGobject;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-/**
- * This test program tests whether the autoregistration of PostGIS data types
- * within the pgjdbc driver was successful. This is supposed to work with
- * pgjdbc.jar version 8.0 and newer, and thus refuses to work with older pgjdbc
- * versions. (But it will work fine against older servers.) It also checks for
- * postgis version to know whether box2d is available.
- */
-public class TestAutoregister {
-
-    public static void main(String[] args) {
-        String dburl = null;
-        String dbuser = null;
-        String dbpass = null;
-
-        if (args.length == 3) {
-            System.out.println("Testing proper auto-registration");
-            dburl = args[0];
-            dbuser = args[1];
-            dbpass = args[2];
-        } else {
-            System.err.println("Usage: java examples/TestParser dburl user pass");
-            System.exit(1);
-            // Signal the compiler that code flow ends here.
-            return;
-        }
-
-        System.out.println("Driver version: " + Driver.getVersion());
-        int major;
-        try {
-            major = new Driver().getMajorVersion();
-        } catch (Exception e) {
-            System.err.println("Cannot create Driver instance: " + e.getMessage());
-            System.exit(1);
-            return;
-        }
-
-        if (major < 8) {
-            System.err.println("Your pgdjbc " + major
-                    + ".X is too old, it does not support autoregistration!");
-            return;
-        }
-
-        System.out.println("Creating JDBC connection to " + dburl);
-        Connection conn = null;
-        Statement stat = null;
-        try {
-            conn = DriverManager.getConnection(dburl, dbuser, dbpass);
-            stat = conn.createStatement();
-        } catch (SQLException e) {
-            System.err.println("Connection initialization failed, aborting.");
-            e.printStackTrace();
-            System.exit(1);
-            // signal the compiler that code flow ends here:
-            throw new AssertionError();
-        }
-
-        int postgisServerMajor = 0;
-        try {
-            postgisServerMajor = getPostgisMajor(stat);
-        } catch (SQLException e) {
-            System.err.println("Error fetching PostGIS version: " + e.getMessage());
-            System.err.println("Is PostGIS really installed in the database?");
-             System.exit(1);
-            // signal the compiler that code flow ends here:
-            throw new AssertionError();
-        }
-
-        System.out.println("PostGIS Version: " + postgisServerMajor);
-
-        PGobject result = null;
-
-        /* Test geometries */
-        try {
-            ResultSet rs = stat.executeQuery("SELECT 'POINT(1 2)'::geometry");
-            rs.next();
-            result = (PGobject) rs.getObject(1);
-            if (result instanceof PGgeometry) {
-                System.out.println("PGgeometry successful!");
-            } else {
-                System.out.println("PGgeometry failed!");
-            }
-        } catch (SQLException e) {
-            System.err.println("Selecting geometry failed: " + e.getMessage());
-            System.exit(1);
-            // Signal the compiler that code flow ends here.
-            return;
-        }
-
-        /* Test box3d */
-        try {
-            ResultSet rs = stat.executeQuery("SELECT 'BOX3D(1 2 3, 4 5 6)'::box3d");
-            rs.next();
-            result = (PGobject) rs.getObject(1);
-            if (result instanceof PGbox3d) {
-                System.out.println("Box3d successful!");
-            } else {
-                System.out.println("Box3d failed!");
-            }
-        } catch (SQLException e) {
-            System.err.println("Selecting box3d failed: " + e.getMessage());
-            System.exit(1);
-            // Signal the compiler that code flow ends here.
-            return;
-        }
-
-        /* Test box2d if appropriate */
-        if (postgisServerMajor < 1) {
-            System.out.println("PostGIS version is too old, skipping box2ed test");
-            System.err.println("PostGIS version is too old, skipping box2ed test");
-        } else {
-            try {
-                ResultSet rs = stat.executeQuery("SELECT 'BOX(1 2,3 4)'::box2d");
-                rs.next();
-                result = (PGobject) rs.getObject(1);
-                if (result instanceof PGbox2d) {
-                    System.out.println("Box2d successful!");
-                } else {
-                    System.out.println("Box2d failed! " + result.getClass().getName());
-                }
-            } catch (SQLException e) {
-                System.err.println("Selecting box2d failed: " + e.getMessage());
-                System.exit(1);
-                // Signal the compiler that code flow ends here.
-                return;
-            }
-        }
-
-        System.out.println("Finished.");
-        // If we finished up to here without exitting, we passed all tests.
-        System.err.println("TestAutoregister.java finished without errors.");
-    }
-
-    public static int getPostgisMajor(Statement stat) throws SQLException {
-        ResultSet rs = stat.executeQuery("SELECT postgis_version()");
-        rs.next();
-        String version = rs.getString(1);
-        if (version == null) {
-            throw new SQLException("postgis_version returned NULL!");
-        }
-        version = version.trim();
-        int idx = version.indexOf('.');
-        return Integer.parseInt(version.substring(0, idx));
-    }
-}
diff --git a/java/jdbc/src/examples/TestBoxes.java b/java/jdbc/src/examples/TestBoxes.java
deleted file mode 100644
index c2796cc..0000000
--- a/java/jdbc/src/examples/TestBoxes.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Test.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - example and test classes
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.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.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: TestBoxes.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package examples;
-
-import org.postgis.PGbox2d;
-import org.postgis.PGbox3d;
-import org.postgresql.util.PGobject;
-import org.postgresql.util.PGtokenizer;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-public class TestBoxes {
-
-    /** Our test candidates: */
-    public static final String[] BOXEN3D = new String[]{
-        "BOX3D(1 2 3,4 5 6)", // 3d variant
-        "BOX3D(1 2,4 5)"// 2d variant
-    };
-    public static final String[] BOXEN2D = new String[]{"BOX(1 2,3 4)"};
-
-    /** The srid we use for the srid tests */
-    public static final int SRID = 4326;
-
-    /** The string prefix we get for the srid tests */
-    public static final String SRIDPREFIX = "SRID=" + SRID + ";";
-
-    /** How much tests did fail? */
-    public static int failcount = 0;
-
-    /**
-     * The actual test method
-     */
-    public static void test(String orig, PGobject candidate, Connection[] conns,
-            boolean newPostgisOnly) throws SQLException {
-
-        System.out.println("Original:  " + orig);
-        String redone = candidate.toString();
-        System.out.println("Parsed:    " + redone);
-
-        if (!orig.equals(redone)) {
-            System.out.println("--- Recreated Text Rep not equal!");
-            failcount++;
-        }
-
-        // Let's simulate the way pgjdbc uses to create PGobjects
-        PGobject recreated;
-        try {
-            recreated = (PGobject) candidate.getClass().newInstance();
-        } catch (Exception e) {
-            System.out.println("--- pgjdbc instantiation failed!");
-            System.out.println("--- " + e.getMessage());
-            failcount++;
-            return;
-        }
-        recreated.setValue(redone);
-
-        String reparsed = recreated.toString();
-        System.out.println("Re-Parsed: " + reparsed);
-        if (!recreated.equals(candidate)) {
-            System.out.println("--- Recreated boxen are not equal!");
-            failcount++;
-        } else if (!reparsed.equals(orig)) {
-            System.out.println("--- 2nd generation text reps are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        for (int i = 0; i < conns.length; i++) {
-            System.out.println("Testing on connection " + i + ": " + conns[i].getCatalog());
-            Statement statement = conns[i].createStatement();
-            if (newPostgisOnly && TestAutoregister.getPostgisMajor(statement) < 1) {
-                System.out.println("PostGIS version is too old, not testing box2d");
-            } else {
-
-                try {
-                    PGobject sqlGeom = viaSQL(candidate, statement);
-                    System.out.println("SQLin    : " + sqlGeom.toString());
-                    if (!candidate.equals(sqlGeom)) {
-                        System.out.println("--- Geometries after SQL are not equal!");
-                        failcount++;
-                    } else {
-                        System.out.println("Eq SQL in: yes");
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                try {
-                    PGobject sqlreGeom = viaSQL(recreated, statement);
-                    System.out.println("SQLout  :  " + sqlreGeom.toString());
-                    if (!candidate.equals(sqlreGeom)) {
-                        System.out.println("--- reparsed Geometries after SQL are not equal!");
-                        failcount++;
-                    } else {
-                        System.out.println("Eq SQLout: yes");
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-            }
-            statement.close();
-        }
-        System.out.println("***");
-    }
-
-    /** Pass a geometry representation through the SQL server */
-    private static PGobject viaSQL(PGobject obj, Statement stat) throws SQLException {
-        ResultSet rs = stat.executeQuery("SELECT '" + obj.toString() + "'::" + obj.getType());
-        rs.next();
-        return (PGobject) rs.getObject(1);
-    }
-
-    /**
-     * Connect to the databases
-     * 
-     * We use DriverWrapper here. For alternatives, see the DriverWrapper
-     * Javadoc
-     * 
-     * @param dbuser
-     * 
-     * @throws ClassNotFoundException
-     * 
-     * @see org.postgis.DriverWrapper
-     * 
-     */
-    public static Connection connect(String url, String dbuser, String dbpass) throws SQLException,
-            ClassNotFoundException {
-        Connection conn;
-        Class.forName("org.postgis.DriverWrapper");
-        conn = DriverManager.getConnection(url, dbuser, dbpass);
-        return conn;
-    }
-
-    /** Our apps entry point */
-    public static void main(String[] args) throws SQLException, ClassNotFoundException {
-        PGtokenizer dburls;
-        String dbuser = null;
-        String dbpass = null;
-
-        if (args.length == 1 && args[0].equalsIgnoreCase("offline")) {
-            System.out.println("Performing only offline tests");
-            dburls = new PGtokenizer("", ';');
-        } else if (args.length == 3) {
-            System.out.println("Performing offline and online tests");
-
-            dburls = new PGtokenizer(args[0], ';');
-            dbuser = args[1];
-            dbpass = args[2];
-        } else {
-            System.err.println("Usage: java examples/TestParser dburls user pass [tablename]");
-            System.err.println("   or: java examples/TestParser offline");
-            System.err.println();
-            System.err.println("dburls has one or more jdbc urls separated by ; in the following format");
-            System.err.println("jdbc:postgresql://HOST:PORT/DATABASENAME");
-            System.err.println("tablename is 'jdbc_test' by default.");
-            System.exit(1);
-            // Signal the compiler that code flow ends here.
-            return;
-        }
-
-        Connection[] conns;
-        conns = new Connection[dburls.getSize()];
-        for (int i = 0; i < dburls.getSize(); i++) {
-            System.out.println("Creating JDBC connection to " + dburls.getToken(i));
-            conns[i] = connect(dburls.getToken(i), dbuser, dbpass);
-        }
-
-        System.out.println("Performing tests...");
-        System.out.println("***");
-
-        for (int i = 0; i < BOXEN3D.length; i++) {
-            try {
-                PGbox3d candidate = new PGbox3d(BOXEN3D[i]);
-                test(BOXEN3D[i], candidate, conns, false);
-            } catch (SQLException e) {
-                System.out.println("--- Instantiation of " + BOXEN3D[i] + "failed:");
-                System.out.println("--- " + e.getMessage());
-                failcount++;
-            }
-        }
-
-        for (int i = 0; i < BOXEN2D.length; i++) {
-            try {
-                PGbox2d candidate = new PGbox2d(BOXEN2D[i]);
-                test(BOXEN2D[i], candidate, conns, true);
-            } catch (SQLException e) {
-                System.out.println("--- Instantiation of " + BOXEN2D[i] + "failed:");
-                System.out.println("--- " + e.getMessage());
-                failcount++;
-            }
-
-        }
-
-        System.out.print("cleaning up...");
-        for (int i = 0; i < conns.length; i++) {
-            conns[i].close();
-        }
-
-        System.out.println("Finished, " + failcount + " tests failed!");
-        System.err.println("Finished, " + failcount + " tests failed!");
-        System.exit(failcount);
-    }
-}
diff --git a/java/jdbc/src/examples/TestJava2d.java b/java/jdbc/src/examples/TestJava2d.java
deleted file mode 100644
index 10eec41..0000000
--- a/java/jdbc/src/examples/TestJava2d.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Test.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - example and test classes
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.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.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: TestJava2d.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package examples;
-
-import java.awt.*;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Rectangle2D;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-import org.postgis.java2d.Java2DWrapper;
-
-public class TestJava2d {
-    private static final boolean DEBUG = true;
-
-    public static final Shape[] SHAPEARRAY = new Shape[0];
-
-    static {
-        new Java2DWrapper(); // make shure our driver is initialized
-    }
-
-    public static void main(String[] args) throws ClassNotFoundException, SQLException {
-
-        if (args.length != 5) {
-            System.err.println("Usage: java examples/TestJava2D dburl user pass tablename column");
-            System.err.println();
-            System.err.println("dburl has the following format:");
-            System.err.println(Java2DWrapper.POSTGIS_PROTOCOL + "//HOST:PORT/DATABASENAME");
-            System.err.println("tablename is 'jdbc_test' by default.");
-            System.exit(1);
-        }
-
-        Shape[] geometries = read(args[0], args[1], args[2], "SELECT " + args[4] + " FROM "
-                + args[3]);
-
-        if (geometries.length == 0) {
-            System.err.println("No geometries were found.");
-            return;
-        }
-
-        System.err.println("Painting...");
-        Frame window = new Frame("PostGIS java2D demo");
-
-        Canvas CV = new GisCanvas(geometries);
-
-        window.add(CV);
-
-        window.setSize(500, 500);
-
-        window.addWindowListener(new EventHandler());
-
-        window.setVisible(true);
-    }
-
-    static Rectangle2D calcbbox(Shape[] geometries) {
-        Rectangle2D bbox = geometries[0].getBounds2D();
-        for (int i = 1; i < geometries.length; i++) {
-            bbox = bbox.createUnion(geometries[i].getBounds2D());
-        }
-        return bbox;
-    }
-
-    private static Shape[] read(String dburl, String dbuser, String dbpass, String query)
-            throws ClassNotFoundException, SQLException {
-        ArrayList geometries = new ArrayList();
-        System.out.println("Creating JDBC connection...");
-        Class.forName("org.postgresql.Driver");
-        Connection conn = DriverManager.getConnection(dburl, dbuser, dbpass);
-
-        System.out.println("fetching geometries");
-        ResultSet r = conn.createStatement().executeQuery(query);
-
-        while (r.next()) {
-            final Shape current = (Shape) r.getObject(1);
-            if (current != null) {
-                geometries.add(current);
-            }
-        }
-        conn.close();
-        return (Shape[]) geometries.toArray(SHAPEARRAY);
-    }
-
-    public static class GisCanvas extends Canvas {
-        /** Keep java 1.5 compiler happy */
-        private static final long serialVersionUID = 1L;
-
-        final Rectangle2D bbox;
-        final Shape[] geometries;
-
-        public GisCanvas(Shape[] geometries) {
-            this.geometries = geometries;
-            this.bbox = calcbbox(geometries);
-            setBackground(Color.GREEN);
-        }
-
-        public void paint(Graphics og) {
-            Graphics2D g = (Graphics2D) og;
-
-            final double scaleX = (super.getWidth() - 10) / bbox.getWidth();
-            final double scaleY = (super.getHeight() - 10) / bbox.getHeight();
-
-            AffineTransform at = new AffineTransform();
-            at.translate(super.getX() + 5, super.getY() + 5);
-            at.scale(scaleX, scaleY);
-            at.translate(-bbox.getX(), -bbox.getY());
-
-            if (DEBUG) {
-                System.err.println();
-                System.err.println("bbox:  " + bbox);
-                System.err.println("trans: " + at);
-                System.err.println("new:   " + at.createTransformedShape(bbox).getBounds2D());
-                System.err.println("visual:" + super.getBounds());
-            }
-            for (int i = 0; i < geometries.length; i++) {
-                g.setPaint(Color.BLUE);
-                final Shape shape = at.createTransformedShape(geometries[i]);
-                g.fill(shape);
-                g.setPaint(Color.ORANGE);
-                g.draw(shape);
-            }
-        }
-    }
-
-    public static class EventHandler implements WindowListener {
-
-        public void windowActivated(WindowEvent e) {//
-        }
-
-        public void windowClosed(WindowEvent e) {//
-        }
-
-        public void windowClosing(WindowEvent e) {
-            e.getWindow().setVisible(false);
-            System.exit(0);
-        }
-
-        public void windowDeactivated(WindowEvent e) {//
-        }
-
-        public void windowDeiconified(WindowEvent e) {//
-        }
-
-        public void windowIconified(WindowEvent e) {//
-        }
-
-        public void windowOpened(WindowEvent e) {//
-        }
-    }
-}
diff --git a/java/jdbc/src/examples/TestParser.java b/java/jdbc/src/examples/TestParser.java
deleted file mode 100644
index 3ca7fad..0000000
--- a/java/jdbc/src/examples/TestParser.java
+++ /dev/null
@@ -1,580 +0,0 @@
-/*
- * Test.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - example and test classes
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.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.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: TestParser.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package examples;
-
-import org.postgis.Geometry;
-import org.postgis.PGgeometry;
-import org.postgis.binary.BinaryParser;
-import org.postgis.binary.BinaryWriter;
-import org.postgis.binary.ValueSetter;
-import org.postgresql.util.PGtokenizer;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Types;
-
-public class TestParser {
-
-    public static String ALL = "ALL", ONLY10 = "ONLY10", EQUAL10 = "EQUAL10";
-
-    /**
-     * Our set of geometries to test.
-     */
-    public static final String[][] testset = new String[][]{
-        {
-            ALL, // 2D
-            "POINT(10 10)"},
-        {
-            ALL, // 3D with 3rd coordinate set to 0
-            "POINT(10 10 0)"},
-        {
-            ALL, // 3D
-            "POINT(10 10 20)"},
-        {
-            ALL, // 3D with scientific notation
-            "POINT(1e100 1.2345e-100 -2e-5)"},
-        {
-            ONLY10, // 2D + Measures
-            "POINTM(10 10 20)"},
-        {
-            ONLY10, // 3D + Measures
-            "POINT(10 10 20 30)"},
-        {
-            ALL, // broken format, see http://lists.jump-project.org/pipermail/jts-devel/2006-April/001572.html
-            "MULTIPOINT(11 12, 20 20)"},
-        {
-            ALL,// broken format
-            "MULTIPOINT(11 12 13, 20 20 20)"},
-        {
-            ONLY10,// broken format
-            "MULTIPOINTM(11 12 13, 20 20 20)"},
-        {
-            ONLY10,// broken format
-            "MULTIPOINT(11 12 13 14,20 20 20 20)"},
-        {
-            ALL, // OGC conforming format
-            "MULTIPOINT((11 12), (20 20))"},
-        {
-            ALL,
-            "MULTIPOINT((11 12 13), (20 20 20))"},
-        {
-            ONLY10,
-            "MULTIPOINTM((11 12 13), (20 20 20))"},
-        {
-            ONLY10,
-            "MULTIPOINT((11 12 13 14),(20 20 20 20))"},            
-        {
-            ALL,
-            "LINESTRING(10 10,20 20,50 50,34 34)"},
-        {
-            ALL,
-            "LINESTRING(10 10 20,20 20 20,50 50 50,34 34 34)"},
-        {
-            ONLY10,
-            "LINESTRINGM(10 10 20,20 20 20,50 50 50,34 34 34)"},
-        {
-            ONLY10,
-            "LINESTRING(10 10 20 20,20 20 20 20,50 50 50 50,34 34 34 50)"},
-        {
-            ALL,
-            "POLYGON((10 10,20 10,20 20,20 10,10 10),(5 5,5 6,6 6,6 5,5 5))"},
-        {
-            ALL,
-            "POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))"},
-        {
-            ONLY10,
-            "POLYGONM((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))"},
-        {
-            ONLY10,
-            "POLYGON((10 10 0 7,20 10 0 7,20 20 0 7,20 10 0 7,10 10 0 7),(5 5 0 7,5 6 0 7,6 6 0 7,6 5 0 7,5 5 0 7))"},
-        {
-            ALL,
-            "MULTIPOLYGON(((10 10,20 10,20 20,20 10,10 10),(5 5,5 6,6 6,6 5,5 5)),((10 10,20 10,20 20,20 10,10 10),(5 5,5 6,6 6,6 5,5 5)))"},
-        {
-            ALL,
-            "MULTIPOLYGON(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))"},
-        {
-            ONLY10,
-            "MULTIPOLYGONM(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))"},
-        {
-            ONLY10,
-            "MULTIPOLYGON(((10 10 0 7,20 10 0 7,20 20 0 7,20 10 0 7,10 10 0 7),(5 5 0 7,5 6 0 7,6 6 0 7,6 5 0 7,5 5 0 7)),((10 10 0 7,20 10 0 7,20 20 0 7,20 10 0 7,10 10 0 7),(5 5 0 7,5 6 0 7,6 6 0 7,6 5 0 7,5 5 0 7)))"},
-        {
-            ALL,
-            "MULTILINESTRING((10 10,20 10,20 20,20 10,10 10),(5 5,5 6,6 6,6 5,5 5))"},
-        {
-            ALL,
-            "MULTILINESTRING((10 10 5,20 10 5,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))"},
-        {
-            ONLY10,
-            "MULTILINESTRINGM((10 10 7,20 10 7,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))"},
-        {
-            ONLY10,
-            "MULTILINESTRING((10 10 0 7,20 10 0 7,20 20 0 7,20 10 0 7,10 10 0 7),(5 5 0 7,5 6 0 7,6 6 0 7,6 5 0 7,5 5 0 7))"},
-        {
-            ALL,
-            "GEOMETRYCOLLECTION(POINT(10 10),POINT(20 20))"},
-        {
-            ALL,
-            "GEOMETRYCOLLECTION(POINT(10 10 20),POINT(20 20 20))"},
-        {
-            ONLY10,
-            "GEOMETRYCOLLECTIONM(POINT(10 10 20),POINT(20 20 20))"},
-        {
-            ONLY10,
-            "GEOMETRYCOLLECTION(POINT(10 10 20 7),POINT(20 20 20 7))"},
-        {
-            ALL,
-            "GEOMETRYCOLLECTION(LINESTRING(10 10 20,20 20 20, 50 50 50, 34 34 34),LINESTRING(10 10 20,20 20 20, 50 50 50, 34 34 34))"},
-        {
-            ALL,
-            "GEOMETRYCOLLECTION(POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))"},
-        {
-            ONLY10, // Cannot be parsed by 0.X servers, broken format
-            "GEOMETRYCOLLECTION(MULTIPOINT(10 10 10, 20 20 20),MULTIPOINT(10 10 10, 20 20 20))"},
-        {
-            ONLY10, // Cannot be parsed by 0.X servers, OGC conformant
-            "GEOMETRYCOLLECTION(MULTIPOINT((10 10 10), (20 20 20)),MULTIPOINT((10 10 10), (20 20 20)))"},
-        {
-            EQUAL10, // PostGIs 0.X "flattens" this geometry, so it is not
-            // equal after reparsing.
-            "GEOMETRYCOLLECTION(MULTILINESTRING((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))"},
-        {
-            EQUAL10,// PostGIs 0.X "flattens" this geometry, so it is not equal
-            // after reparsing.
-            "GEOMETRYCOLLECTION(MULTIPOLYGON(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))),MULTIPOLYGON(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))))"},
-        {
-            ALL,
-            "GEOMETRYCOLLECTION(POINT(10 10 20),LINESTRING(10 10 20,20 20 20, 50 50 50, 34 34 34),POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))"},
-        {
-            ONLY10, // Collections that contain both X and MultiX do not work on
-            // PostGIS 0.x, broken format
-            "GEOMETRYCOLLECTION(POINT(10 10 20),MULTIPOINT(10 10 10, 20 20 20),LINESTRING(10 10 20,20 20 20, 50 50 50, 34 34 34),POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),MULTIPOLYGON(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))),MULTILINESTRING((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))"},
-        {
-            ONLY10, // Collections that contain both X and MultiX do not work on
-            // PostGIS 0.x, OGC conformant
-            "GEOMETRYCOLLECTION(POINT(10 10 20),MULTIPOINT((10 10 10), (20 20 20)),LINESTRING(10 10 20,20 20 20, 50 50 50, 34 34 34),POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),MULTIPOLYGON(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))),MULTILINESTRING((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))"},
-        {
-            ALL, // Old (bad) PostGIS 0.X Representation
-            "GEOMETRYCOLLECTION(EMPTY)"},
-
-        {
-            ALL,// new (correct) representation
-            "GEOMETRYCOLLECTION EMPTY"},
-        {
-            ONLY10,// new (correct) representation - does not work on 0.X
-            "POINT EMPTY"},
-        {
-            ONLY10,// new (correct) representation - does not work on 0.X
-            "LINESTRING EMPTY"},
-        {
-            ONLY10,// new (correct) representation - does not work on 0.X
-            "POLYGON EMPTY"},
-        {
-            ONLY10,// new (correct) representation - does not work on 0.X
-            "MULTIPOINT EMPTY"},
-        {
-            ONLY10,// new (correct) representation - does not work on 0.X
-            "MULTILINESTRING EMPTY"},
-        {
-            ONLY10,// new (correct) representation - does not work on 0.X
-            "MULTIPOLYGON EMPTY"},
-    // end
-    };
-
-    /** The srid we use for the srid tests */
-    public static final int SRID = 4326;
-
-    /** The string prefix we get for the srid tests */
-    public static final String SRIDPREFIX = "SRID=" + SRID + ";";
-
-    /** How much tests did fail? */
-    public static int failcount = 0;
-
-    private static BinaryParser bp = new BinaryParser();
-    private static final BinaryWriter bw = new BinaryWriter();
-
-    /** The actual test method */
-    public static void test(String WKT, Connection[] conns, String flags) throws SQLException {
-        System.out.println("Original:  " + WKT);
-        Geometry geom = PGgeometry.geomFromString(WKT);
-        String parsed = geom.toString();
-        System.out.println("Parsed:    " + parsed);
-        Geometry regeom = PGgeometry.geomFromString(parsed);
-        String reparsed = regeom.toString();
-        System.out.println("Re-Parsed: " + reparsed);
-        if (!geom.equals(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else if (!reparsed.equals(parsed)) {
-            System.out.println("--- Text Reps are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        String hexNWKT = bw.writeHexed(regeom, ValueSetter.NDR.NUMBER);
-        System.out.println("NDRHex:    " + hexNWKT);
-        regeom = PGgeometry.geomFromString(hexNWKT);
-        System.out.println("ReNDRHex:  " + regeom.toString());
-        if (!geom.equals(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        String hexXWKT = bw.writeHexed(regeom, ValueSetter.XDR.NUMBER);
-        System.out.println("XDRHex:    " + hexXWKT);
-        regeom = PGgeometry.geomFromString(hexXWKT);
-        System.out.println("ReXDRHex:  " + regeom.toString());
-        if (!geom.equals(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        byte[] NWKT = bw.writeBinary(regeom, ValueSetter.NDR.NUMBER);
-        regeom = bp.parse(NWKT);
-        System.out.println("NDR:       " + regeom.toString());
-        if (!geom.equals(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        byte[] XWKT = bw.writeBinary(regeom, ValueSetter.XDR.NUMBER);
-        regeom = bp.parse(XWKT);
-        System.out.println("XDR:       " + regeom.toString());
-        if (!geom.equals(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        for (int i = 0; i < conns.length; i++) {
-            Connection connection = conns[i];
-            Statement statement = connection.createStatement();
-            int serverPostgisMajor = TestAutoregister.getPostgisMajor(statement);
-
-            if ((flags == ONLY10) && serverPostgisMajor < 1) {
-                System.out.println("PostGIS server too old, skipping test on connection " + i
-                        + ": " + connection.getCatalog());
-            } else {
-                System.out.println("Testing on connection " + i + ": " + connection.getCatalog());
-                try {
-                    Geometry sqlGeom = viaSQL(WKT, statement);
-                    System.out.println("SQLin    : " + sqlGeom.toString());
-                    if (!geom.equals(sqlGeom)) {
-                        System.out.println("--- Geometries after SQL are not equal!");
-                        if (flags == EQUAL10 && serverPostgisMajor < 1) {
-                            System.out.println("--- This is expected with PostGIS "
-                                    + serverPostgisMajor + ".X");
-                        } else {
-                            failcount++;
-                        }
-                    } else {
-                        System.out.println("Eq SQL in: yes");
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                try {
-                    Geometry sqlreGeom = viaSQL(parsed, statement);
-                    System.out.println("SQLout  :  " + sqlreGeom.toString());
-                    if (!geom.equals(sqlreGeom)) {
-                        System.out.println("--- reparsed Geometries after SQL are not equal!");
-                        if (flags == EQUAL10 && serverPostgisMajor < 1) {
-                            System.out.println("--- This is expected with PostGIS "
-                                    + serverPostgisMajor + ".X");
-                        } else {
-                            failcount++;
-                        }
-                    } else {
-                        System.out.println("Eq SQLout: yes");
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                try {
-                    Geometry sqlreGeom = viaPrepSQL(geom, connection);
-                    System.out.println("Prepared:  " + sqlreGeom.toString());
-                    if (!geom.equals(sqlreGeom)) {
-                        System.out.println("--- reparsed Geometries after prepared StatementSQL are not equal!");
-                        if (flags == EQUAL10 && serverPostgisMajor < 1) {
-                            System.out.println("--- This is expected with PostGIS "
-                                    + serverPostgisMajor + ".X");
-                        } else {
-                            failcount++;
-                        }
-                    } else {
-                        System.out.println("Eq Prep: yes");
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                // asEWKT() function is not present on PostGIS 0.X, and the test
-                // is pointless as 0.X uses EWKT as canonical rep so the same
-                // functionality was already tested above.
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = ewktViaSQL(WKT, statement);
-                        System.out.println("asEWKT   : " + sqlGeom.toString());
-                        if (!geom.equals(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKT SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal   : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                // asEWKB() function is not present on PostGIS 0.X.
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = ewkbViaSQL(WKT, statement);
-                        System.out.println("asEWKB   : " + sqlGeom.toString());
-                        if (!geom.equals(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                // HexEWKB parsing is not present on PostGIS 0.X.
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = viaSQL(hexNWKT, statement);
-                        System.out.println("hexNWKT:   " + sqlGeom.toString());
-                        if (!geom.equals(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = viaSQL(hexXWKT, statement);
-                        System.out.println("hexXWKT:   " + sqlGeom.toString());
-                        if (!geom.equals(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                // Canonical binary input is not present before 1.0
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = binaryViaSQL(NWKT, connection);
-                        System.out.println("NWKT:      " + sqlGeom.toString());
-                        if (!geom.equals(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = binaryViaSQL(XWKT, connection);
-                        System.out.println("XWKT:      " + sqlGeom.toString());
-                        if (!geom.equals(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-            }
-            statement.close();
-        }
-        System.out.println("***");
-    }
-
-    /** Pass a geometry representation through the SQL server */
-    private static Geometry viaSQL(String rep, Statement stat) throws SQLException {
-        ResultSet rs = stat.executeQuery("SELECT geometry_in('" + rep + "')");
-        rs.next();
-        return ((PGgeometry) rs.getObject(1)).getGeometry();
-    }
-
-    /**
-     * Pass a geometry representation through the SQL server via prepared
-     * statement
-     */
-    private static Geometry viaPrepSQL(Geometry geom, Connection conn) throws SQLException {
-        PreparedStatement prep = conn.prepareStatement("SELECT ?::geometry");
-        PGgeometry wrapper = new PGgeometry(geom);
-        prep.setObject(1, wrapper, Types.OTHER);
-        ResultSet rs = prep.executeQuery();
-        rs.next();
-        PGgeometry resultwrapper = ((PGgeometry) rs.getObject(1));
-        return resultwrapper.getGeometry();
-    }
-
-    /** Pass a geometry representation through the SQL server via EWKT */
-    private static Geometry ewktViaSQL(String rep, Statement stat) throws SQLException {
-        ResultSet rs = stat.executeQuery("SELECT asEWKT(geometry_in('" + rep + "'))");
-        rs.next();
-        String resrep = rs.getString(1);
-        return PGgeometry.geomFromString(resrep);
-    }
-
-    /** Pass a geometry representation through the SQL server via EWKB */
-    private static Geometry ewkbViaSQL(String rep, Statement stat) throws SQLException {
-        ResultSet rs = stat.executeQuery("SELECT asEWKB(geometry_in('" + rep + "'))");
-        rs.next();
-        byte[] resrep = rs.getBytes(1);
-        return bp.parse(resrep);
-    }
-
-    /** Pass a EWKB geometry representation through the server */
-    private static Geometry binaryViaSQL(byte[] rep, Connection conn) throws SQLException {
-        PreparedStatement prep = conn.prepareStatement("SELECT ?::bytea::geometry");
-        prep.setBytes(1, rep);
-        ResultSet rs = prep.executeQuery();
-        rs.next();
-        PGgeometry resultwrapper = ((PGgeometry) rs.getObject(1));
-        return resultwrapper.getGeometry();
-    }
-
-    /**
-     * Connect to the databases
-     * 
-     * We use DriverWrapper here. For alternatives, see the DriverWrapper
-     * Javadoc
-     * 
-     * @param dbuser
-     * 
-     * @see org.postgis.DriverWrapper
-     * 
-     */
-    public static Connection connect(String url, String dbuser, String dbpass) throws SQLException {
-        Connection conn;
-        conn = DriverManager.getConnection(url, dbuser, dbpass);
-        return conn;
-    }
-
-    public static void loadDrivers() throws ClassNotFoundException {
-        Class.forName("org.postgis.DriverWrapper");
-        Class.forName("org.postgis.DriverWrapperAutoprobe");
-    }
-
-    /** Our apps entry point */
-    public static void main(String[] args) throws SQLException, ClassNotFoundException {
-        loadDrivers();
-
-        PGtokenizer dburls;
-        String dbuser = null;
-        String dbpass = null;
-
-        if (args.length == 1 && args[0].equalsIgnoreCase("offline")) {
-            System.out.println("Performing only offline tests");
-            dburls = new PGtokenizer("", ';');
-        } else if (args.length == 3) {
-            System.out.println("Performing offline and online tests");
-            dburls = new PGtokenizer(args[0], ';');
-
-            dbuser = args[1];
-            dbpass = args[2];
-        } else {
-            System.err.println("Usage: java examples/TestParser dburls user pass");
-            System.err.println("   or: java examples/TestParser offline");
-            System.err.println();
-            System.err.println("dburls has one or more jdbc urls separated by ; in the following format");
-            System.err.println("jdbc:postgresql://HOST:PORT/DATABASENAME");
-            System.exit(1);
-            // Signal the compiler that code flow ends here.
-            return;
-        }
-
-        Connection[] conns;
-        conns = new Connection[dburls.getSize()];
-        for (int i = 0; i < dburls.getSize(); i++) {
-            System.out.println("Creating JDBC connection to " + dburls.getToken(i));
-            conns[i] = connect(dburls.getToken(i), dbuser, dbpass);
-        }
-
-        System.out.println("Performing tests...");
-        System.out.println("***");
-
-        for (int i = 0; i < testset.length; i++) {
-            test(testset[i][1], conns, testset[i][0]);
-            test(SRIDPREFIX + testset[i][1], conns, testset[i][0]);
-        }
-
-        System.out.print("cleaning up...");
-        for (int i = 0; i < conns.length; i++) {
-            conns[i].close();
-        }
-
-        System.out.println("Finished, " + failcount + " tests failed!");
-        System.err.println("Finished, " + failcount + " tests failed!");
-        System.exit(failcount);
-    }
-}
diff --git a/java/jdbc/src/examples/TestServer.java b/java/jdbc/src/examples/TestServer.java
deleted file mode 100644
index 5d440bb..0000000
--- a/java/jdbc/src/examples/TestServer.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Test.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - example and test classes
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.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.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: TestServer.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package examples;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.Statement;
-
-public class TestServer {
-
-	public static void main(String[] args) {
-		if (args.length != 4 && args.length != 3) {
-			System.err
-					.println("Usage: java examples/TestServer dburl user pass [tablename]");
-			System.err.println();
-			System.err.println("dburl has the following format:");
-			System.err.println("jdbc:postgresql://HOST:PORT/DATABASENAME");
-			System.err.println("tablename is 'jdbc_test' by default.");
-			System.exit(1);
-		}
-
-		Connection conn;
-
-		String dburl = args[0];
-		String dbuser = args[1];
-		String dbpass = args[2];
-
-		String dbtable = "jdbc_test";
-
-		String dropSQL = "drop table " + dbtable;
-		String createSQL = "create table " + dbtable
-				+ " (geom geometry, id int4)";
-		String insertPointSQL = "insert into " + dbtable
-				+ " values ('POINT (10 10 10)',1)";
-		String insertPolygonSQL = "insert into " + dbtable
-				+ " values ('POLYGON ((0 0 0,0 10 0,10 10 0,10 0 0,0 0 0))',2)";
-
-		try {
-
-			System.out.println("Creating JDBC connection...");
-			Class.forName("org.postgresql.Driver");
-			conn = DriverManager.getConnection(dburl, dbuser, dbpass);
-			System.out.println("Adding geometric type entries...");
-
-			((org.postgresql.PGConnection) conn).addDataType("geometry",
-					org.postgis.PGgeometry.class);
-			((org.postgresql.PGConnection) conn).addDataType("box3d",
-					org.postgis.PGbox3d.class);
-
-			Statement s = conn.createStatement();
-			System.out.println("Creating table with geometric types...");
-			// table might not yet exist
-			try {
-				s.execute(dropSQL);
-			} catch (Exception e) {
-				System.out.println("Error dropping old table: "
-						+ e.getMessage());
-			}
-			s.execute(createSQL);
-			System.out.println("Inserting point...");
-			s.execute(insertPointSQL);
-			System.out.println("Inserting polygon...");
-			s.execute(insertPolygonSQL);
-			System.out.println("Done.");
-			s = conn.createStatement();
-			System.out.println("Querying table...");
-			ResultSet r = s.executeQuery("select asText(geom),id from "
-					+ dbtable);
-			while (r.next()) {
-				Object obj = r.getObject(1);
-				int id = r.getInt(2);
-				System.out.println("Row " + id + ":");
-				System.out.println(obj.toString());
-			}
-			s.close();
-			conn.close();
-		} catch (Exception e) {
-			System.err.println("Aborted due to error:");
-			e.printStackTrace();
-			System.exit(1);
-		}
-	}
-}
diff --git a/java/jdbc/src/examples/VersionPrinter.java b/java/jdbc/src/examples/VersionPrinter.java
deleted file mode 100644
index 6f93b48..0000000
--- a/java/jdbc/src/examples/VersionPrinter.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * VersionPrinter.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - example and test classes
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.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.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: VersionPrinter.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package examples;
-
-import org.postgis.Version;
-import org.postgresql.Driver;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-/**
- * Prints out as much version information as available.
- */
-public class VersionPrinter {
-
-    public static String[] GISVERSIONS = {
-        "postgis_version",
-        "postgis_proj_version",
-        "postgis_scripts_installed",
-        "postgis_lib_version",
-        "postgis_scripts_released",
-        "postgis_uses_stats",
-        "postgis_geos_version",
-        "postgis_scripts_build_date",
-        "postgis_lib_build_date",
-        "postgis_full_version"};
-
-    public static void main(String[] args) {
-        Statement stat = null;
-        Driver d;
-
-    	// Print PostGIS version
-        printHeading("PostGIS jdbc client code");
-        printVersionString("getFullVersion", Version.getFullVersion());
-
-    	// Print PGJDBC Versions
-        printHeading("PGJDBC Driver");
-        printVersionString("getVersion", Driver.getVersion());
-        try {
-            d = new Driver();
-        } catch (Exception e) {
-            System.err.println("Cannot create Driver instance: " + e.getMessage());
-            System.exit(1);
-            return;
-        }	
-        printVersionString("getMajorVersion", d.getMajorVersion());
-        printVersionString("getMinorVersion", d.getMinorVersion());
-
-    	// Print PostgreSQL server versions
-        if (args.length == 3) {
-            Connection conn = null;
-            try {
-                conn = DriverManager.getConnection(args[0], args[1], args[2]);
-                stat = conn.createStatement();
-            } catch (SQLException e) {
-                System.err.println("Connection to database failed, aborting.");
-                System.err.println(e.getMessage());
-                System.exit(1);
-            }
-        } else if (args.length != 0) {
-            System.err.println("Usage: java examples/VersionPrinter dburl user pass");
-            System.exit(1);
-            // Signal the compiler that code flow ends here.
-            return;
-        }
-
-        if (stat == null) {
-            System.out.println("No online version available.");
-        }
-
-        printHeading("PostgreSQL Server");
-        printVersionString("version", stat);
-
-    	// Print PostGIS versions
-        printHeading("PostGIS Server");
-        for (int i = 0; i < GISVERSIONS.length; i++) {
-            printVersionString(GISVERSIONS[i], stat);
-        }
-
-    }
-
-    public static boolean makeemptyline = false;
-
-    private static void printHeading(String heading) {
-        if (makeemptyline) {
-            System.out.println();
-        }
-        System.out.println("** " + heading + " **");
-        makeemptyline = true;
-    }
-
-    public static void printVersionString(String function, int value) {
-        printVersionString(function, Integer.toString(value));
-    }
-
-    public static void printVersionString(String function, String value) {
-        System.out.println("\t" + function + ": " + value);
-    }
-
-    public static void printVersionString(String function, Statement stat) {
-        printVersionString(function, getVersionString(function, stat));
-    }
-
-    public static String getVersionString(String function, Statement stat) {
-        try {
-            ResultSet rs = stat.executeQuery("SELECT " + function + "()");
-            if (rs.next()==false) {
-                return "-- no result --";
-            }
-            String version = rs.getString(1);
-            if (version==null) {
-                return "-- null result --";
-            }
-            return version.trim();
-        } catch (SQLException e) {
-            return "-- unavailable -- ";
-        }
-    }
-}
diff --git a/java/jdbc/src/org/postgis/ComposedGeom.java b/java/jdbc/src/org/postgis/ComposedGeom.java
deleted file mode 100644
index 8b1bc01..0000000
--- a/java/jdbc/src/org/postgis/ComposedGeom.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * ComposedGeom.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: ComposedGeom.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import org.postgresql.util.PGtokenizer;
-
-import java.sql.SQLException;
-import java.util.Iterator;
-
-/**
- * ComposedGeom - Abstract base class for all Geometries that are composed out
- * of other Geometries.
- * 
- * In fact, this currently are all Geometry subclasses except Point.
- * 
- * @author markus.schaber at logix-tt.com
- * 
- * 
- */
-public abstract class ComposedGeom extends Geometry {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    public static final Geometry[] EMPTY = new Geometry[0];
-
-    /**
-     * The Array containing the geometries
-     * 
-     * This is only to be exposed by concrete subclasses, to retain type safety.
-     */
-    protected Geometry[] subgeoms = EMPTY;
-
-    /**
-     * @param type
-     */
-    public ComposedGeom(int type) {
-        super(type);
-    }
-
-    public Geometry getSubGeometry(int index) {
-        return subgeoms[index];
-    }
-
-    public int numGeoms() {
-        return subgeoms.length;
-    }
-
-    protected ComposedGeom(int type, Geometry[] geoms) {
-        this(type);
-        this.subgeoms = geoms;
-        if (geoms.length > 0) {
-            dimension = geoms[0].dimension;
-            haveMeasure = geoms[0].haveMeasure;
-        } else {
-            dimension = 0;
-        }
-    }
-
-    protected ComposedGeom(int type, String value, boolean haveM) throws SQLException {
-        super(type);
-        value = initSRID(value);
-
-        String typestring = getTypeString();
-        if (value.indexOf(typestring) == 0) {
-            int pfxlen = typestring.length();
-            if (value.charAt(pfxlen) == 'M') {
-                pfxlen += 1;
-                haveM = true;
-            }
-            value = value.substring(pfxlen).trim();
-        } else if (value.charAt(0) != '(') {
-            // we are neigher inner nor outer rep.
-            throw new SQLException("Error parsing a " + typestring + " out of " + value);
-        }
-        if (value.equals("(EMPTY)")) {
-            // Special case for PostGIS 0.X style empty geometry collections
-            // (which are not OpenGIS compliant)
-            return;
-        }
-        PGtokenizer t = new PGtokenizer(PGtokenizer.removePara(value), ',');
-        int subgeomcount = t.getSize();
-        subgeoms = createSubGeomArray(subgeomcount);
-        for (int p = 0; p < subgeomcount; p++) {
-            subgeoms[p] = createSubGeomInstance(t.getToken(p), haveM);
-        }
-        dimension = subgeoms[0].dimension;
-        // fetch haveMeasure from subpoint because haveM does only work with
-        // 2d+M, not with 3d+M geometries
-        haveMeasure = subgeoms[0].haveMeasure;
-    }
-
-    /**
-     * Return the appropriate instance of the subgeometry - this encapsulates
-     * subclass specific constructor calls
-     */
-    protected abstract Geometry createSubGeomInstance(String token, boolean haveM)
-            throws SQLException;
-
-    /**
-     * Return the appropriate instance of the subgeometry array - this
-     * encapsulates subclass specific array instantiation
-     */
-    protected abstract Geometry[] createSubGeomArray(int size);
-
-    protected boolean equalsintern(Geometry other) {
-        // Can be assumed to be the same subclass of Geometry, so it must be a
-        // ComposedGeom, too.
-        ComposedGeom cother = (ComposedGeom) other;
-
-        if (cother.subgeoms == null && subgeoms == null) {
-            return true;
-        } else if (cother.subgeoms == null || subgeoms == null) {
-            return false;
-        } else if (cother.subgeoms.length != subgeoms.length) {
-            return false;
-        } else if (subgeoms.length == 0) {
-            return true;
-        } else {
-            for (int i = 0; i < subgeoms.length; i++) {
-                if (!cother.subgeoms[i].equalsintern(this.subgeoms[i])) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    public int numPoints() {
-        if ((subgeoms == null) || (subgeoms.length == 0)) {
-            return 0;
-        } else {
-            int result = 0;
-            for (int i = 0; i < subgeoms.length; i++) {
-                result += subgeoms[i].numPoints();
-            }
-            return result;
-        }
-    }
-
-    public Point getPoint(int n) {
-        if (n < 0) {
-            throw new ArrayIndexOutOfBoundsException("Negative index not allowed");
-        } else if ((subgeoms == null) || (subgeoms.length == 0)) {
-            throw new ArrayIndexOutOfBoundsException("Empty Geometry has no Points!");
-        } else {
-            for (int i = 0; i < subgeoms.length; i++) {
-
-                Geometry current = subgeoms[i];
-                int np = current.numPoints();
-                if (n < np) {
-                    return current.getPoint(n);
-                } else {
-                    n -= np;
-                }
-            }
-            throw new ArrayIndexOutOfBoundsException("Index too large!");
-        }
-    }
-
-    /**
-     * Optimized version
-     */
-    public Point getLastPoint() {
-        if ((subgeoms == null) || (subgeoms.length == 0)) {
-            throw new ArrayIndexOutOfBoundsException("Empty Geometry has no Points!");
-        } else {
-            return subgeoms[subgeoms.length - 1].getLastPoint();
-        }
-    }
-
-    /**
-     * Optimized version
-     */
-    public Point getFirstPoint() {
-        if ((subgeoms == null) || (subgeoms.length == 0)) {
-            throw new ArrayIndexOutOfBoundsException("Empty Geometry has no Points!");
-        } else {
-            return subgeoms[0].getFirstPoint();
-        }
-    }
-
-    public Iterator iterator() {
-        return java.util.Arrays.asList(subgeoms).iterator();
-    }
-
-    public boolean isEmpty() {
-        return (subgeoms == null) || (subgeoms.length == 0);
-    }
-
-    protected void mediumWKT(StringBuffer sb) {
-        if ((subgeoms == null) || (subgeoms.length == 0)) {
-            sb.append(" EMPTY");
-        } else {
-            sb.append('(');
-            innerWKT(sb);
-            sb.append(')');
-        }
-    }
-
-    protected void innerWKT(StringBuffer sb) {
-        subgeoms[0].mediumWKT(sb);
-        for (int i = 1; i < subgeoms.length; i++) {
-            sb.append(',');
-            subgeoms[i].mediumWKT(sb);
-        }
-    }
-
-    // Hashing - still buggy!
-    boolean nohash = true;
-    int hashcode = 0;
-
-    public int hashCode() {
-        if (nohash) {
-            hashcode = super.hashCode() ^ subgeoms.hashCode();
-            nohash = false;
-        }
-        return hashcode;
-    }
-
-    public boolean checkConsistency() {
-        if (super.checkConsistency()) {
-            if (isEmpty()) {
-                return true;
-            }
-            // cache to avoid getMember opcode
-            int _dimension = this.dimension;
-            boolean _haveMeasure = this.haveMeasure;
-            int _srid = this.srid;
-            for (int i = 0; i < subgeoms.length; i++) {
-                Geometry sub = subgeoms[i];
-                if (!(sub.checkConsistency() && sub.dimension == _dimension
-                        && sub.haveMeasure == _haveMeasure && sub.srid == _srid)) {
-                    return false;
-                }
-            }
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    public void setSrid(int srid) {
-        super.setSrid(srid);
-        for (int i = 0; i < subgeoms.length; i++) {
-            subgeoms[i].setSrid(srid);
-        }
-    }
-}
diff --git a/java/jdbc/src/org/postgis/DriverWrapper.java b/java/jdbc/src/org/postgis/DriverWrapper.java
deleted file mode 100644
index 4d56b06..0000000
--- a/java/jdbc/src/org/postgis/DriverWrapper.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * DriverWrapper.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Wrapper utility class
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: DriverWrapper.java 10206 2012-08-28 04:08:23Z robe $
- */
-
-package org.postgis;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.SQLFeatureNotSupportedException;
-import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.postgresql.Driver;
-import org.postgresql.PGConnection;
-
-/**
- * DriverWrapper
- * 
- * Wraps the PostGreSQL Driver to transparently add the PostGIS Object Classes.
- * This avoids the need of explicit addDataType() calls from the driver users
- * side.
- * 
- * This method currently works with J2EE DataSource implementations, and with
- * DriverManager framework.
- * 
- * Simply replace the "jdbc:postgresql:" with a "jdbc:postgresql_postGIS:" in
- * the jdbc URL.
- * 
- * When using the drivermanager, you need to initialize DriverWrapper instead of
- * (or in addition to) org.postgresql.Driver. When using a J2EE DataSource
- * implementation, set the driver class property in the datasource config, the
- * following works for jboss:
- * 
- * <code>
- * <driver-class>org.postgis.DriverWrapper</driver-class>
- * </code>
- * If you don't like or want to use the DriverWrapper, you have two
- * alternatives, see the README file.
- * 
- * Also note that the addDataType() methods known from earlier pgjdbc versions
- * are deprecated in pgjdbc 8.0, see the commented code variants in the
- * addGisTypes() method.
- * 
- * This wrapper always uses EWKT as canonical text representation, and thus
- * works against PostGIS 1.x servers as well as 0.x (tested with 0.8, 0.9 and
- * 1.0).
- * 
- * @author Markus Schaber <markus.schaber at logix-tt.com>
- * @see DriverWrapperLW
- * @see DriverWrapperAutoprobe
- */
-public class DriverWrapper extends Driver {
-
-    protected static final Logger logger = Logger.getLogger("org.postgis.DriverWrapper");
-    
-    public static final String POSTGRES_PROTOCOL = "jdbc:postgresql:";
-    public static final String POSTGIS_PROTOCOL = "jdbc:postgresql_postGIS:";
-    public static final String REVISION = "$Revision: 10206 $";
-    protected static TypesAdder ta72 = null;
-    protected static TypesAdder ta74 = null;
-    protected static TypesAdder ta80 = null;
-
-    protected TypesAdder typesAdder;
-
-    /**
-     * Default constructor.
-     * 
-     * This also loads the appropriate TypesAdder for our SQL Driver instance.
-     * 
-     * @throws SQLException
-     */
-    public DriverWrapper() throws SQLException {
-        super();
-        typesAdder = getTypesAdder(this);
-        // The debug method is @since 7.2
-        if (super.getMajorVersion() > 8 || super.getMinorVersion() > 1) {
-            logger.fine(this.getClass().getName() + " loaded TypesAdder: "
-                    + typesAdder.getClass().getName());
-        }
-    }
-
-    protected static TypesAdder getTypesAdder(Driver d) throws SQLException {
-        if (d.getMajorVersion() == 7) {
-            if (d.getMinorVersion() >= 3) {
-                if (ta74 == null) {
-                    ta74 = loadTypesAdder("74");
-                }
-                return ta74;
-            } else {
-                if (ta72 == null) {
-                    ta72 = loadTypesAdder("72");
-                }
-                return ta72;
-            }
-        } else {
-            if (ta80 == null) {
-                ta80 = loadTypesAdder("80");
-            }
-            return ta80;
-        }
-    }
-
-    private static TypesAdder loadTypesAdder(String version) throws SQLException {
-        try {
-            Class klass = Class.forName("org.postgis.DriverWrapper$TypesAdder" + version);
-            return (TypesAdder) klass.newInstance();
-        } catch (Exception e) {
-            throw new SQLException("Cannot create TypesAdder instance! " + e.getMessage());
-        }
-    }
-
-    static {
-        try {
-            // Try to register ourself to the DriverManager
-            java.sql.DriverManager.registerDriver(new DriverWrapper());
-        } catch (SQLException e) {
-            logger.log(Level.WARNING, "Error registering PostGIS Wrapper Driver", e);
-        }
-    }
-
-    /**
-     * Creates a postgresql connection, and then adds the PostGIS data types to
-     * it calling addpgtypes()
-     * 
-     * @param url the URL of the database to connect to
-     * @param info a list of arbitrary tag/value pairs as connection arguments
-     * @return a connection to the URL or null if it isnt us
-     * @exception SQLException if a database access error occurs
-     * 
-     * @see java.sql.Driver#connect
-     * @see org.postgresql.Driver
-     */
-    public java.sql.Connection connect(String url, Properties info) throws SQLException {
-        url = mangleURL(url);
-        Connection result = super.connect(url, info);
-        typesAdder.addGT(result, useLW(result));
-        return result;
-    }
-
-    /**
-     * Do we have HexWKB as well known text representation - to be overridden by
-     * subclasses.
-     */
-    protected boolean useLW(Connection result) {
-        if (result == null) {
-            throw new IllegalArgumentException("null is no valid parameter");
-        }
-        return false;
-    }
-
-    /**
-     * Check whether the driver thinks he can handle the given URL.
-     * 
-     * @see java.sql.Driver#acceptsURL
-     * @param url the URL of the driver
-     * @return true if this driver accepts the given URL
-     * @exception SQLException Passed through from the underlying PostgreSQL
-     *                driver, should not happen.
-     */
-    public boolean acceptsURL(String url) throws SQLException {
-        try {
-            url = mangleURL(url);
-        } catch (SQLException e) {
-            return false;
-        }
-        return super.acceptsURL(url);
-    }
-
-    /**
-     * Returns our own CVS version plus postgres Version
-     */
-    public static String getVersion() {
-        return "PostGisWrapper " + REVISION + ", wrapping " + Driver.getVersion();
-    }
-
-    /*
-     * Here follows the addGISTypes() stuff. This is a little tricky because the
-     * pgjdbc people had several, partially incompatible API changes during 7.2
-     * and 8.0. We still want to support all those releases, however.
-     * 
-     */
-    /**
-     * adds the JTS/PostGIS Data types to a PG 7.3+ Connection. If you use
-     * PostgreSQL jdbc drivers V8.0 or newer, those methods are deprecated due
-     * to some class loader problems (but still work for now), and you may want
-     * to use the method below instead.
-     * 
-     * @throws SQLException
-     * 
-     */
-    public static void addGISTypes(PGConnection pgconn) throws SQLException {
-        loadTypesAdder("74").addGT((Connection) pgconn, false);
-    }
-
-    /**
-     * adds the JTS/PostGIS Data types to a PG 8.0+ Connection.
-     */
-    public static void addGISTypes80(PGConnection pgconn) throws SQLException {
-        loadTypesAdder("80").addGT((Connection) pgconn, false);
-    }
-
-    /**
-     * adds the JTS/PostGIS Data types to a PG 7.2 Connection.
-     * 
-     * @throws SQLException
-     */
-    public static void addGISTypes72(org.postgresql.PGConnection pgconn) throws SQLException {
-        loadTypesAdder("72").addGT((Connection) pgconn, false);
-    }
-
-    /**
-     * Mangles the PostGIS URL to return the original PostGreSQL URL
-     */
-    protected String mangleURL(String url) throws SQLException {
-        String myProgo = getProtoString();
-        if (url.startsWith(myProgo)) {
-            return POSTGRES_PROTOCOL + url.substring(myProgo.length());
-        } else {
-            throw new SQLException("Unknown protocol or subprotocol in url " + url);
-        }
-    }
-
-    protected String getProtoString() {
-        return POSTGIS_PROTOCOL;
-    }
-
-    /** Base class for the three typewrapper implementations */
-    protected abstract static class TypesAdder {
-        public final void addGT(java.sql.Connection conn, boolean lw) throws SQLException {
-            if (lw) {
-                addBinaryGeometries(conn);
-            } else {
-                addGeometries(conn);
-            }
-            addBoxen(conn);
-        }
-
-        public abstract void addGeometries(Connection conn) throws SQLException;
-
-        public abstract void addBoxen(Connection conn) throws SQLException;
-
-        public abstract void addBinaryGeometries(Connection conn) throws SQLException;
-    }
-
-    /** addGISTypes for V7.3 and V7.4 pgjdbc */
-    protected static final class TypesAdder74 extends TypesAdder {
-        public void addGeometries(Connection conn) throws SQLException {
-            PGConnection pgconn = (PGConnection) conn;
-            pgconn.addDataType("geometry", org.postgis.PGgeometry.class);
-        }
-
-        public void addBoxen(Connection conn) throws SQLException {
-            PGConnection pgconn = (PGConnection) conn;
-            pgconn.addDataType("box3d", org.postgis.PGbox3d.class);
-            pgconn.addDataType("box2d", org.postgis.PGbox2d.class);
-        }
-
-        public void addBinaryGeometries(Connection conn) throws SQLException {
-            PGConnection pgconn = (PGConnection) conn;
-            pgconn.addDataType("geometry", org.postgis.PGgeometryLW.class);
-        }
-    }
-
-    /** addGISTypes for V7.2 pgjdbc */
-    protected static class TypesAdder72 extends TypesAdder {
-        public void addGeometries(Connection conn) throws SQLException {
-            org.postgresql.PGConnection pgconn = (org.postgresql.PGConnection) conn;
-            pgconn.addDataType("geometry", org.postgis.PGgeometry.class);
-        }
-
-		public void addBoxen(Connection conn) throws SQLException {
-            org.postgresql.PGConnection pgconn = (org.postgresql.PGConnection) conn;
-            pgconn.addDataType("box3d", org.postgis.PGbox3d.class);
-            pgconn.addDataType("box2d", org.postgis.PGbox2d.class);
-        }
-
-        public void addBinaryGeometries(Connection conn) throws SQLException {
-            org.postgresql.PGConnection pgconn = (org.postgresql.PGConnection) conn;
-            pgconn.addDataType("geometry", org.postgis.PGgeometryLW.class);
-        }
-    }
-
-    /** addGISTypes for V8.0 (and hopefully newer) pgjdbc */
-    protected static class TypesAdder80 extends TypesAdder {
-        public void addGeometries(Connection conn) throws SQLException {
-            PGConnection pgconn = (PGConnection) conn;
-            pgconn.addDataType("geometry", org.postgis.PGgeometry.class);
-        }
-
-        public void addBoxen(Connection conn) throws SQLException {
-            PGConnection pgconn = (PGConnection) conn;
-            pgconn.addDataType("box3d", org.postgis.PGbox3d.class);
-            pgconn.addDataType("box2d", org.postgis.PGbox2d.class);
-        }
-
-        public void addBinaryGeometries(Connection conn) throws SQLException {
-            PGConnection pgconn = (PGConnection) conn;
-            pgconn.addDataType("geometry", org.postgis.PGgeometryLW.class);
-        }
-    }
-
-    public Logger getParentLogger() throws SQLFeatureNotSupportedException {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-}
diff --git a/java/jdbc/src/org/postgis/DriverWrapperAutoprobe.java b/java/jdbc/src/org/postgis/DriverWrapperAutoprobe.java
deleted file mode 100644
index 1938356..0000000
--- a/java/jdbc/src/org/postgis/DriverWrapperAutoprobe.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * DriverWrapperAutoprobe.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Wrapper utility class
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: DriverWrapperAutoprobe.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import org.postgresql.Driver;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.logging.Level;
-
-/**
- * DriverWrapperAutoprobe
- * 
- * Wraps the PostGreSQL Driver to transparently add the PostGIS Object Classes.
- * This avoids the need of explicit addDataType() calls from the driver users
- * side.
- * 
- * This DriverWrapper tries to autoprobe the installed PostGIS version to decide
- * whether to use EWKT or hex encoded EWKB as canonical text representation. It
- * uses the first PostGIS installation found in your namespace search path (aka
- * schema search path) on the server side, and this works as long as you do not
- * access incompatible PostGIS versions that reside in other schemas.
- * 
- * For usage notes, see DriverWrapper class, but use "jdbc:postgresql_autogis:"
- * as JDBC url prefix and org.postgis.DriverWrapperAutoprobe as driver class.
- * 
- * @author Markus Schaber <markus.schaber at logix-tt.com>
- * @see DriverWrapper
- */
-public class DriverWrapperAutoprobe extends DriverWrapper {
-
-    public static final String POSTGIS_AUTOPROTOCOL = "jdbc:postgresql_autogis:";
-    public static final String REVISIONAUTO = "$Revision: 9324 $";
-
-    /**
-     * Default constructor.
-     */
-    public DriverWrapperAutoprobe() throws SQLException {
-        super();
-    }
-
-    static {
-        try {
-            // Try to register ourself to the DriverManager
-            java.sql.DriverManager.registerDriver(new DriverWrapperAutoprobe());
-        } catch (SQLException e) {
-            logger.log(Level.WARNING, "Error registering PostGIS LW Wrapper Driver", e);
-        }
-    }
-
-    protected String getProtoString() {
-        return POSTGIS_AUTOPROTOCOL;
-    }
-
-    protected boolean useLW(Connection conn) {
-        try {
-            return supportsEWKB(conn);
-        } catch (SQLException e) {
-            // fail safe default
-            return false;
-        }
-    }
-
-    /**
-     * Returns our own CVS version plus postgres Version
-     */
-    public static String getVersion() {
-        return "PostGisWrapperAutoprobe " + REVISIONAUTO + ", wrapping " + Driver.getVersion();
-    }
-
-    public static boolean supportsEWKB(Connection conn) throws SQLException {
-        Statement stat = conn.createStatement();
-        ResultSet rs = stat.executeQuery("SELECT postgis_version()");
-        rs.next();
-        String version = rs.getString(1);
-        rs.close();
-        stat.close();
-        if (version == null) {
-            throw new SQLException("postgis_version returned NULL!");
-        }
-        version = version.trim();
-        int idx = version.indexOf('.');
-        int majorVersion = Integer.parseInt(version.substring(0, idx));
-        return majorVersion >= 1;
-    }
-}
diff --git a/java/jdbc/src/org/postgis/DriverWrapperLW.java b/java/jdbc/src/org/postgis/DriverWrapperLW.java
deleted file mode 100644
index db891e1..0000000
--- a/java/jdbc/src/org/postgis/DriverWrapperLW.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * DriverWrapperLW.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Wrapper utility class
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: DriverWrapperLW.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import org.postgresql.Driver;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.logging.Level;
-
-/**
- * DriverWrapperLW
- * 
- * Wraps the PostGreSQL Driver to transparently add the PostGIS Object Classes.
- * This avoids the need of explicit addDataType() calls from the driver users
- * side.
- * 
- * This DriverWrapper subclass always uses hex encoded EWKB as canonical text
- * representation, and thus only works against PostGIS 1.x servers and newer.
- * 
- * For usage notes, see DriverWrapper class, but use "jdbc:postgresql_lwgis:" as
- * JDBC url prefix and org.postgis.DriverWrapperLW as driver class.
- * 
- * @author Markus Schaber <markus.schaber at logix-tt.com>
- * @see DriverWrapper
- */
-public class DriverWrapperLW extends DriverWrapper {
-
-    public static final String POSTGIS_LWPROTOCOL = "jdbc:postgresql_lwgis:";
-    public static final String REVISIONLW = "$Revision: 9324 $";
-
-    /**
-     * Default constructor.
-     */
-    public DriverWrapperLW() throws SQLException {
-        super();
-    }
-
-    static {
-        try {
-            // Try to register ourself to the DriverManager
-            java.sql.DriverManager.registerDriver(new DriverWrapperLW());
-        } catch (SQLException e) {
-            logger.log(Level.WARNING, "Error registering PostGIS LW Wrapper Driver", e);
-        }
-    }
-
-    protected String getProtoString() {
-        return POSTGIS_LWPROTOCOL;
-    }
-
-    protected boolean useLW(Connection result) {
-        return true;
-    }
-
-    /**
-     * Returns our own CVS version plus postgres Version
-     */
-    public static String getVersion() {
-        return "PostGisWrapperLW " + REVISIONLW + ", wrapping " + Driver.getVersion();
-    }
-}
diff --git a/java/jdbc/src/org/postgis/Geometry.java b/java/jdbc/src/org/postgis/Geometry.java
deleted file mode 100644
index a1f24cc..0000000
--- a/java/jdbc/src/org/postgis/Geometry.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
- * Geometry.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: Geometry.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import java.io.Serializable;
-
-/** The base class of all geometries */
-public abstract class Geometry implements Serializable {
-	/* JDK 1.5 Serialization */
-	private static final long serialVersionUID = 0x100;
-
-	// OpenGIS Geometry types as defined in the OGC WKB Spec
-	// (May we replace this with an ENUM as soon as JDK 1.5
-	// has gained widespread usage?)
-
-	/** Fake type for linear ring */
-	public static final int LINEARRING = 0;
-	/**
-	 * The OGIS geometry type number for points.
-	 */
-	public static final int POINT = 1;
-
-	/**
-	 * The OGIS geometry type number for lines.
-	 */
-	public static final int LINESTRING = 2;
-
-	/**
-	 * The OGIS geometry type number for polygons.
-	 */
-	public static final int POLYGON = 3;
-
-	/**
-	 * The OGIS geometry type number for aggregate points.
-	 */
-	public static final int MULTIPOINT = 4;
-
-	/**
-	 * The OGIS geometry type number for aggregate lines.
-	 */
-	public static final int MULTILINESTRING = 5;
-
-	/**
-	 * The OGIS geometry type number for aggregate polygons.
-	 */
-	public static final int MULTIPOLYGON = 6;
-
-	/**
-	 * The OGIS geometry type number for feature collections.
-	 */
-	public static final int GEOMETRYCOLLECTION = 7;
-
-	public static final String[] ALLTYPES = new String[] {
-			"", // internally used LinearRing does not have any text in front of
-				// it
-			"POINT", "LINESTRING", "POLYGON", "MULTIPOINT", "MULTILINESTRING",
-			"MULTIPOLYGON", "GEOMETRYCOLLECTION" };
-
-	/**
-	 * The Text representations of the geometry types
-	 */
-	public static String getTypeString(int type) {
-		if (type >= 0 && type <= 7) {
-			return ALLTYPES[type];
-		} else {
-			throw new IllegalArgumentException("Unknown Geometry type" + type);
-		}
-	}
-
-	// Properties common to all geometries
-	/**
-	 * The dimensionality of this feature (2,3)
-	 */
-	public int dimension;
-
-	/**
-	 * Do we have a measure (4th dimension)
-	 */
-	public boolean haveMeasure = false;
-
-	/**
-	 * The OGIS geometry type of this feature. this is final as it never
-	 * changes, it is bound to the subclass of the instance.
-	 */
-	public final int type;
-
-	/**
-	 * Official UNKNOWN srid value
-	 */
-	public final static int UNKNOWN_SRID = 0;
-
-	/**
-	 * The spacial reference system id of this geometry, default is no srid
-	 */
-	public int srid = UNKNOWN_SRID;
-
-	/**
-	 * Parse a SRID value, anything <= 0 is unknown
-	 */
-	public static int parseSRID(int srid) {
-		if (srid < 0) {
-			/* TODO: raise a warning ? */
-			srid = 0;
-		}
-		return srid;
-	}
-
-	/**
-	 * Constructor for subclasses
-	 * 
-	 * @param type
-	 *            has to be given by all subclasses.
-	 */
-	protected Geometry(int type) {
-		this.type = type;
-	}
-
-	/**
-	 * java.lang.Object hashCode implementation
-	 */
-	public int hashCode() {
-		return dimension | (type * 4) | (srid * 32);
-	}
-
-	/**
-	 * java.lang.Object equals implementation
-	 */
-	public boolean equals(Object other) {
-		return (other != null) && (other instanceof Geometry)
-				&& equals((Geometry) other);
-	}
-
-	/**
-	 * geometry specific equals implementation - only defined for non-null
-	 * values
-	 */
-	public boolean equals(Geometry other) {
-		return (other != null) && (this.dimension == other.dimension)
-				&& (this.type == other.type) && (this.srid == other.srid)
-				&& (this.haveMeasure == other.haveMeasure)
-				&& other.getClass().equals(this.getClass())
-				&& this.equalsintern(other);
-	}
-
-	/**
-	 * Whether test coordinates for geometry - subclass specific code
-	 * 
-	 * Implementors can assume that dimensin, type, srid and haveMeasure are
-	 * equal, other != null and other is the same subclass.
-	 */
-	protected abstract boolean equalsintern(Geometry other);
-
-	/**
-	 * Return the number of Points of the geometry
-	 */
-	public abstract int numPoints();
-
-	/**
-	 * Get the nth Point of the geometry
-	 * 
-	 * @param n
-	 *            the index of the point, from 0 to numPoints()-1;
-	 * @throws ArrayIndexOutOfBoundsException
-	 *             in case of an emtpy geometry or bad index.
-	 */
-	public abstract Point getPoint(int n);
-
-	/**
-	 * Same as getPoint(0);
-	 */
-	public abstract Point getFirstPoint();
-
-	/**
-	 * Same as getPoint(numPoints()-1);
-	 */
-	public abstract Point getLastPoint();
-
-	/**
-	 * The OGIS geometry type number of this geometry.
-	 */
-	public int getType() {
-		return this.type;
-	}
-
-	/**
-	 * Return the Type as String
-	 */
-	public String getTypeString() {
-		return getTypeString(this.type);
-	}
-
-	/** Returns whether we have a measure */
-	public boolean isMeasured() {
-		return haveMeasure;
-	}
-
-	/**
-	 * Queries the number of geometric dimensions of this geometry. This does
-	 * not include measures, as opposed to the server.
-	 * 
-	 * @return The dimensionality (eg, 2D or 3D) of this geometry.
-	 */
-	public int getDimension() {
-		return this.dimension;
-	}
-
-	/**
-	 * The OGIS geometry type number of this geometry.
-	 */
-	public int getSrid() {
-		return this.srid;
-	}
-
-	/**
-	 * Recursively sets the srid on this geometry and all contained
-	 * subgeometries
-	 */
-	public void setSrid(int srid) {
-		this.srid = srid;
-	}
-
-	public String toString() {
-		StringBuffer sb = new StringBuffer();
-		if (srid != UNKNOWN_SRID) {
-			sb.append("SRID=");
-			sb.append(srid);
-			sb.append(';');
-		}
-		outerWKT(sb, true);
-		return sb.toString();
-	}
-
-	/**
-	 * Render the WKT version of this Geometry (without SRID) into the given
-	 * StringBuffer.
-	 */
-	public void outerWKT(StringBuffer sb, boolean putM) {
-		sb.append(getTypeString());
-		if (putM && haveMeasure && dimension == 2) {
-			sb.append('M');
-		}
-		mediumWKT(sb);
-	}
-
-	public final void outerWKT(StringBuffer sb) {
-		outerWKT(sb, true);
-	}
-
-	/**
-	 * Render the WKT without the type name, but including the brackets into the
-	 * StringBuffer
-	 */
-	protected void mediumWKT(StringBuffer sb) {
-		sb.append('(');
-		innerWKT(sb);
-		sb.append(')');
-	}
-
-	/**
-	 * Render the "inner" part of the WKT (inside the brackets) into the
-	 * StringBuffer.
-	 */
-	protected abstract void innerWKT(StringBuffer SB);
-
-	/**
-	 * backwards compatibility method
-	 */
-	public String getValue() {
-		StringBuffer sb = new StringBuffer();
-		mediumWKT(sb);
-		return sb.toString();
-	}
-
-	/**
-	 * Do some internal consistency checks on the geometry.
-	 * 
-	 * Currently, all Geometries must have a valid dimension (2 or 3) and a
-	 * valid type. 2-dimensional Points must have Z=0.0, as well as non-measured
-	 * Points must have m=0.0. Composed geometries must have all equal SRID,
-	 * dimensionality and measures, as well as that they do not contain NULL or
-	 * inconsistent subgeometries.
-	 * 
-	 * BinaryParser and WKTParser should only generate consistent geometries.
-	 * BinaryWriter may produce invalid results on inconsistent geometries.
-	 * 
-	 * @return true if all checks are passed.
-	 */
-	public boolean checkConsistency() {
-		return (dimension >= 2 && dimension <= 3) && (type >= 0 && type <= 7);
-	}
-
-	/**
-	 * Splits the SRID=4711; part of a EWKT rep if present and sets the srid.
-	 * 
-	 * @return value without the SRID=4711; part
-	 */
-	protected String initSRID(String value) {
-		value = value.trim();
-		if (value.startsWith("SRID=")) {
-			int index = value.indexOf(';', 5); // sridprefix length is 5
-			if (index == -1) {
-				throw new IllegalArgumentException(
-						"Error parsing Geometry - SRID not delimited with ';' ");
-			} else {
-				this.srid = Integer.parseInt(value.substring(5, index));
-				return value.substring(index + 1).trim();
-			}
-		} else {
-			return value;
-		}
-	}
-}
diff --git a/java/jdbc/src/org/postgis/GeometryCollection.java b/java/jdbc/src/org/postgis/GeometryCollection.java
deleted file mode 100644
index 2eaf968..0000000
--- a/java/jdbc/src/org/postgis/GeometryCollection.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * GeometryCollection.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: GeometryCollection.java 12202 2014-01-30 19:17:00Z pramsey $
- */
-
-package org.postgis;
-
-import java.sql.SQLException;
-
-/**
- * Geometry Collection class WARNING: Currently only implements empty
- * collections
- * 
- * @author markus.schaber at logix-tt.com
- * 
- * $Id: GeometryCollection.java 12202 2014-01-30 19:17:00Z pramsey $
- */
-
-public class GeometryCollection extends ComposedGeom {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    public static final String GeoCollID = "GEOMETRYCOLLECTION";
-
-    public GeometryCollection() {
-        super(GEOMETRYCOLLECTION);
-    }
-
-    public GeometryCollection(Geometry[] geoms) {
-        super(GEOMETRYCOLLECTION, geoms);
-    }
-
-    public GeometryCollection(String value) throws SQLException {
-        this(value, false);
-    }
-
-    public GeometryCollection(String value, boolean haveM) throws SQLException {
-        super(GEOMETRYCOLLECTION, value, haveM);
-    }
-
-    protected Geometry[] createSubGeomArray(int ngeoms) {
-        return new Geometry[ngeoms];
-    }
-
-    protected Geometry createSubGeomInstance(String token, boolean haveM) throws SQLException {
-        return PGgeometry.geomFromString(token, haveM);
-    }
-
-    protected void innerWKT(StringBuffer SB) {
-        subgeoms[0].outerWKT(SB, true);
-        for (int i = 1; i < subgeoms.length; i++) {
-            SB.append(',');
-            subgeoms[i].outerWKT(SB, true);
-        }
-    }
-
-    public Geometry[] getGeometries() {
-        return subgeoms;
-    }
-}
diff --git a/java/jdbc/src/org/postgis/LineString.java b/java/jdbc/src/org/postgis/LineString.java
deleted file mode 100644
index 24db69f..0000000
--- a/java/jdbc/src/org/postgis/LineString.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * LineString.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: LineString.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import java.sql.SQLException;
-
-public class LineString extends PointComposedGeom {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    double len = -1.;
-
-    public LineString() {
-        super(LINESTRING);
-    }
-
-    public LineString(Point[] points) {
-        super(LINESTRING, points);
-    }
-
-    public LineString(String value) throws SQLException {
-        super(LINESTRING, value);
-    }
-
-    public LineString(String value, boolean haveM) throws SQLException {
-        super(LINESTRING, value, haveM);
-    }
-
-    public LineString reverse() {
-        Point[] points = this.getPoints();
-        int l = points.length;
-        int i, j;
-        Point[] p = new Point[l];
-        for (i = 0, j = l - 1; i < l; i++, j--) {
-            p[i] = points[j];
-        }
-        return new LineString(p);
-    }
-
-    public LineString concat(LineString other) {
-        Point[] points = this.getPoints();
-        Point[] opoints = other.getPoints();
-
-        boolean cutPoint = this.getLastPoint() == null
-                || this.getLastPoint().equals(other.getFirstPoint());
-        int count = points.length + opoints.length - (cutPoint ? 1 : 0);
-        Point[] p = new Point[count];
-
-        // Maybe we should use System.arrayCopy here?
-        int i, j;
-        for (i = 0; i < points.length; i++) {
-            p[i] = points[i];
-        }
-        if (!cutPoint) {
-            p[i++] = other.getFirstPoint();
-        }
-        for (j = 1; j < opoints.length; j++, i++) {
-            p[i] = opoints[j];
-        }
-        return new LineString(p);
-    }
-
-    public double length() {
-        if (len < 0) {
-            Point[] points = this.getPoints();
-            if ((points == null) || (points.length < 2)) {
-                len = 0;
-            } else {
-                double sum = 0;
-                for (int i = 1; i < points.length; i++) {
-                    sum += points[i - 1].distance(points[i]);
-                }
-                len = sum;
-            }
-        }
-        return len;
-    }
-}
diff --git a/java/jdbc/src/org/postgis/LinearRing.java b/java/jdbc/src/org/postgis/LinearRing.java
deleted file mode 100644
index a0ba393..0000000
--- a/java/jdbc/src/org/postgis/LinearRing.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * LinearRing.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: LinearRing.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import org.postgresql.util.PGtokenizer;
-
-import java.sql.SQLException;
-
-/**
- * This represents the LinearRing GIS datatype. This type is used to construct
- * the polygon types, but is not stored or retrieved directly from the database.
- */
-public class LinearRing extends PointComposedGeom {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    public LinearRing(Point[] points) {
-        super(LINEARRING, points);
-    }
-
-    /**
-     * This is called to construct a LinearRing from the PostGIS string
-     * representation of a ring.
-     * 
-     * @param value Definition of this ring in the PostGIS string format.
-     */
-    public LinearRing(String value) throws SQLException {
-        this(value, false);
-    }
-
-    /**
-     * @param value The text representation of this LinearRing
-     * @param haveM Hint whether we have a measure. This is given to us by other
-     *            "parent" Polygon, and is passed further to our parent.
-     */
-
-    protected LinearRing(String value, boolean haveM) throws SQLException {
-        super(LINEARRING);
-        PGtokenizer t = new PGtokenizer(PGtokenizer.removePara(value.trim()), ',');
-        int npoints = t.getSize();
-        Point[] points = new Point[npoints];
-        for (int p = 0; p < npoints; p++) {
-            points[p] = new Point(t.getToken(p), haveM);
-        }
-        this.dimension = points[0].dimension;
-        // fetch haveMeasure from subpoint because haveM does only work with
-        // 2d+M, not with 3d+M geometries
-        this.haveMeasure = points[0].haveMeasure;
-        this.subgeoms = points;
-    }
-}
diff --git a/java/jdbc/src/org/postgis/MultiLineString.java b/java/jdbc/src/org/postgis/MultiLineString.java
deleted file mode 100644
index 7a16747..0000000
--- a/java/jdbc/src/org/postgis/MultiLineString.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * MultiLineString.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: MultiLineString.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import java.sql.SQLException;
-
-public class MultiLineString extends ComposedGeom {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    double len = -1;
-
-    public int hashCode() {
-        return super.hashCode() ^ (int) this.length();
-    }
-
-    public MultiLineString() {
-        super(MULTILINESTRING);
-    }
-
-    public MultiLineString(LineString[] lines) {
-        super(MULTILINESTRING, lines);
-    }
-
-    public MultiLineString(String value) throws SQLException {
-        this(value, false);
-    }
-
-    public MultiLineString(String value, boolean haveM) throws SQLException {
-        super(MULTILINESTRING, value, haveM);
-    }
-
-    protected Geometry createSubGeomInstance(String token, boolean haveM) throws SQLException {
-        return new LineString(token, haveM);
-    }
-
-    protected Geometry[] createSubGeomArray(int nlines) {
-        return new LineString[nlines];
-    }
-
-    public int numLines() {
-        return subgeoms.length;
-    }
-
-    public LineString[] getLines() {
-        return (LineString[]) subgeoms.clone();
-    }
-
-    public LineString getLine(int idx) {
-        if (idx >= 0 & idx < subgeoms.length) {
-            return (LineString) subgeoms[idx];
-        } else {
-            return null;
-        }
-    }
-
-    public double length() {
-        if (len < 0) {
-            LineString[] lines = (LineString[]) subgeoms;
-            if (lines.length < 1) {
-                len = 0;
-            } else {
-                double sum = 0;
-                for (int i = 0; i < lines.length; i++) {
-                    sum += lines[i].length();
-                }
-                len = sum;
-            }
-        }
-        return len;
-    }
-}
diff --git a/java/jdbc/src/org/postgis/MultiPoint.java b/java/jdbc/src/org/postgis/MultiPoint.java
deleted file mode 100644
index 9f13a10..0000000
--- a/java/jdbc/src/org/postgis/MultiPoint.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * MultiPoint.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: MultiPoint.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import java.sql.SQLException;
-
-public class MultiPoint extends PointComposedGeom {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    public MultiPoint() {
-        super(MULTIPOINT);
-    }
-
-    public MultiPoint(Point[] points) {
-        super(MULTIPOINT, points);
-    }
-
-    public MultiPoint(String value) throws SQLException {
-        this(value, false);
-    }
-
-    protected MultiPoint(String value, boolean haveM) throws SQLException {
-        super(MULTIPOINT, value, haveM);
-    }
-}
diff --git a/java/jdbc/src/org/postgis/MultiPolygon.java b/java/jdbc/src/org/postgis/MultiPolygon.java
deleted file mode 100644
index 8140a5b..0000000
--- a/java/jdbc/src/org/postgis/MultiPolygon.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * MultiPolygon.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: MultiPolygon.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import java.sql.SQLException;
-
-public class MultiPolygon extends ComposedGeom {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    public MultiPolygon() {
-        super(MULTIPOLYGON);
-    }
-
-    public MultiPolygon(Polygon[] polygons) {
-        super(MULTIPOLYGON, polygons);
-    }
-
-    public MultiPolygon(String value) throws SQLException {
-        this(value, false);
-    }
-
-    protected MultiPolygon(String value, boolean haveM) throws SQLException {
-        super(MULTIPOLYGON, value, haveM);
-    }
-
-    protected Geometry[] createSubGeomArray(int npolygons) {
-        return new Polygon[npolygons];
-    }
-
-    protected Geometry createSubGeomInstance(String token, boolean haveM) throws SQLException {
-        return new Polygon(token, haveM);
-    }
-
-    public int numPolygons() {
-        return subgeoms.length;
-    }
-
-    public Polygon getPolygon(int idx) {
-        if (idx >= 0 & idx < subgeoms.length) {
-            return (Polygon) subgeoms[idx];
-        } else {
-            return null;
-        }
-    }
-    
-    public Polygon[] getPolygons() {
-        return (Polygon[]) subgeoms;
-    }
-}
diff --git a/java/jdbc/src/org/postgis/PGbox2d.java b/java/jdbc/src/org/postgis/PGbox2d.java
deleted file mode 100644
index 08df144..0000000
--- a/java/jdbc/src/org/postgis/PGbox2d.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * PGbox2d.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - bounding box model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: PGbox2d.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import java.sql.SQLException;
-
-public class PGbox2d extends PGboxbase {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    public PGbox2d() {
-        super();
-    }
-
-    public PGbox2d(Point llb, Point urt) {
-        super(llb, urt);
-    }
-
-    public PGbox2d(String value) throws SQLException {
-        super(value);
-    }
-
-    public void setValue(String value) throws SQLException {
-        super.setValue(value);
-
-        if (llb.dimension != 2 || urt.dimension != 2) {
-            throw new SQLException("PGbox2d is only allowed to have 2 dimensions!");
-        }
-    }
-
-    public String getPrefix() {
-        return "BOX";
-    }
-
-    public String getPGtype() {
-        return "box2d";
-    }
-
-    protected PGboxbase newInstance() {
-        return new PGbox2d();
-    }
-}
diff --git a/java/jdbc/src/org/postgis/PGbox3d.java b/java/jdbc/src/org/postgis/PGbox3d.java
deleted file mode 100644
index 14d4bd6..0000000
--- a/java/jdbc/src/org/postgis/PGbox3d.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * PGbox3d.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - bounding box model
- * 
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: PGbox3d.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import java.sql.SQLException;
-
-public class PGbox3d extends PGboxbase {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    public PGbox3d() {
-        super();
-    }
-
-    public PGbox3d(Point llb, Point urt) {
-        super(llb, urt);
-    }
-
-    public PGbox3d(String value) throws SQLException {
-        super(value);
-    }
-
-    public String getPrefix() {
-        return ("BOX3D");
-    }
-
-    public String getPGtype() {
-        return ("box3d");
-    }
-
-    protected PGboxbase newInstance() {
-        return new PGbox3d();
-    }
-}
diff --git a/java/jdbc/src/org/postgis/PGboxbase.java b/java/jdbc/src/org/postgis/PGboxbase.java
deleted file mode 100644
index 93428a4..0000000
--- a/java/jdbc/src/org/postgis/PGboxbase.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * PGboxbase.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - bounding box model
- * 
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: PGboxbase.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import org.postgresql.util.PGobject;
-import org.postgresql.util.PGtokenizer;
-
-import java.sql.SQLException;
-
-/*
- * Updates Oct 2002 - data members made private - getLLB() and getURT() methods
- * added
- */
-
-public abstract class PGboxbase extends PGobject {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    /**
-     * The lower left bottom corner of the box.
-     */
-    protected Point llb;
-
-    /**
-     * The upper right top corner of the box.
-     */
-    protected Point urt;
-
-    /**
-     * The Prefix we have in WKT rep.
-     * 
-     * I use an abstract method here so we do not need to replicate the String
-     * object in every instance.
-     * 
-     */
-    public abstract String getPrefix();
-
-    /**
-     * The Postgres type we have (same construct as getPrefix())
-     */
-    public abstract String getPGtype();
-
-    public PGboxbase() {
-        this.setType(getPGtype());
-    }
-
-    public PGboxbase(Point llb, Point urt) {
-        this();
-        this.llb = llb;
-        this.urt = urt;
-    }
-
-    public PGboxbase(String value) throws SQLException {
-        this();
-        setValue(value);
-    }
-
-    public void setValue(String value) throws SQLException {
-        int srid = Geometry.UNKNOWN_SRID;
-        value = value.trim();
-        if (value.startsWith("SRID=")) {
-            String[] temp = PGgeometry.splitSRID(value);
-            value = temp[1].trim();
-            srid = Geometry.parseSRID(Integer.parseInt(temp[0].substring(5)));
-        }
-        String myPrefix = getPrefix();
-        if (value.startsWith(myPrefix)) {
-            value = value.substring(myPrefix.length()).trim();
-        }
-        PGtokenizer t = new PGtokenizer(PGtokenizer.removePara(value), ',');
-        llb = new Point(t.getToken(0));
-        urt = new Point(t.getToken(1));
-        if (srid != Geometry.UNKNOWN_SRID) {
-            llb.setSrid(srid);
-            urt.setSrid(srid);
-        }
-    }
-
-    public String getValue() {
-        StringBuffer sb = new StringBuffer();
-        outerWKT(sb);
-        return sb.toString();
-    }
-
-    private void outerWKT(StringBuffer sb) {
-        sb.append(getPrefix());
-        sb.append('(');
-        llb.innerWKT(sb);
-        sb.append(',');
-        urt.innerWKT(sb);
-        sb.append(')');
-    }
-
-    /**
-     * Unlike geometries, toString() does _not_ contain the srid, as server-side
-     * PostGIS cannot parse this.
-     */
-    public String toString() {
-        return getValue();
-    }
-
-    /** Returns the lower left bottom corner of the box as a Point object */
-    public Point getLLB() {
-        return llb;
-    }
-
-    /** Returns the upper right top corner of the box as a Point object */
-    public Point getURT() {
-        return urt;
-    }
-
-    public boolean equals(Object other) {
-        if (other instanceof PGboxbase) {
-            PGboxbase otherbox = (PGboxbase) other;
-            return (compareLazyDim(this.llb, otherbox.llb) && compareLazyDim(this.urt, otherbox.urt));
-        }
-        return false;
-    }
-
-    /**
-     * Compare two coordinates with lazy dimension checking.
-     * 
-     * As the Server always returns Box3D with three dimensions, z==0 equals
-     * dimensions==2
-     * 
-     */
-    protected static boolean compareLazyDim(Point first, Point second) {
-        return first.x == second.x
-                && first.y == second.y
-                && (((first.dimension == 2 || first.z == 0.0) && (second.dimension == 2 || second.z == 0)) || (first.z == second.z));
-    }
-
-    public Object clone() {
-        PGboxbase obj = newInstance();
-        obj.llb = this.llb;
-        obj.urt = this.urt;
-        obj.setType(type);
-        return obj;
-    }
-
-    /**
-     * We could have used this.getClass().newInstance() here, but this forces us
-     * dealing with InstantiationException and IllegalAccessException. Due to
-     * the PGObject.clone() brokennes that does not allow clone() to throw
-     * CloneNotSupportedException, we cannot even pass this exceptions down to
-     * callers in a sane way.
-     */
-    protected abstract PGboxbase newInstance();
-}
diff --git a/java/jdbc/src/org/postgis/PGgeometry.java b/java/jdbc/src/org/postgis/PGgeometry.java
deleted file mode 100644
index 5e34cd7..0000000
--- a/java/jdbc/src/org/postgis/PGgeometry.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * PGgeometry.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - PGobject Geometry Wrapper
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: PGgeometry.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import org.postgis.binary.BinaryParser;
-import org.postgresql.util.PGobject;
-
-import java.sql.SQLException;
-
-public class PGgeometry extends PGobject {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    Geometry geom;
-    BinaryParser bp = new BinaryParser();
-
-    public PGgeometry() {
-        this.setType("geometry");
-    }
-
-    public PGgeometry(Geometry geom) {
-        this();
-        this.geom = geom;
-    }
-
-    public PGgeometry(String value) throws SQLException {
-        this();
-        setValue(value);
-    }
-
-    public void setValue(String value) throws SQLException {
-        geom = geomFromString(value, bp);
-    }
-
-    public static Geometry geomFromString(String value) throws SQLException {
-        return geomFromString(value, false);
-    }
-
-    public static Geometry geomFromString(String value, boolean haveM) throws SQLException {
-        BinaryParser bp = new BinaryParser();
-
-        return geomFromString(value, bp, haveM);
-    }
-
-    /**
-     * Maybe we could add more error checking here?
-     */
-    public static Geometry geomFromString(String value, BinaryParser bp) throws SQLException {
-        return geomFromString(value, bp, false);
-    }
-
-    public static Geometry geomFromString(String value, BinaryParser bp, boolean haveM)
-            throws SQLException {
-        value = value.trim();
-
-        int srid = Geometry.UNKNOWN_SRID;
-
-        if (value.startsWith(SRIDPREFIX)) {
-            // break up geometry into srid and wkt
-            String[] parts = PGgeometry.splitSRID(value);
-            value = parts[1].trim();
-            srid = Geometry.parseSRID(Integer.parseInt(parts[0].substring(5)));
-        }
-
-        Geometry result;
-        if (value.startsWith("00") || value.startsWith("01")) {
-            result = bp.parse(value);
-        } else if (value.endsWith("EMPTY")) {
-            // We have a standard conforming representation for an empty
-            // geometry which is to be parsed as an empty GeometryCollection.
-            result = new GeometryCollection();
-        } else if (value.startsWith("MULTIPOLYGON")) {
-            result = new MultiPolygon(value, haveM);
-        } else if (value.startsWith("MULTILINESTRING")) {
-            result = new MultiLineString(value, haveM);
-        } else if (value.startsWith("MULTIPOINT")) {
-            result = new MultiPoint(value, haveM);
-        } else if (value.startsWith("POLYGON")) {
-            result = new Polygon(value, haveM);
-        } else if (value.startsWith("LINESTRING")) {
-            result = new LineString(value, haveM);
-        } else if (value.startsWith("POINT")) {
-            result = new Point(value, haveM);
-        } else if (value.startsWith("GEOMETRYCOLLECTION")) {
-            result = new GeometryCollection(value, haveM);
-        } else {
-            throw new SQLException("Unknown type: " + value);
-        }
-
-        if (srid != Geometry.UNKNOWN_SRID) {
-            result.srid = srid;
-        }
-
-        return result;
-    }
-
-    public Geometry getGeometry() {
-        return geom;
-    }
-
-    public void setGeometry(Geometry newgeom) {
-        this.geom = newgeom;
-    }
-    
-    public int getGeoType() {
-        return geom.type;
-    }
-
-    public String toString() {
-        return geom.toString();
-    }
-
-    public String getValue() {
-        return geom.toString();
-    }
-
-    public Object clone() {
-        return new PGgeometry(geom);
-    }
-
-    /** The prefix that indicates SRID presence */
-    public static final String SRIDPREFIX = "SRID=";
-
-    /**
-     * Splits a String at the first occurrence of border charachter.
-     * 
-     * Poor man's String.split() replacement, as String.split() was invented at
-     * jdk1.4, and the Debian PostGIS Maintainer had problems building the woody
-     * backport of his package using DFSG-free compilers. In all the cases we
-     * used split() in the org.postgis package, we only needed to split at the
-     * first occurence, and thus this code could even be faster.
-     * 
-     * @throws SQLException
-     */
-    public static String[] splitSRID(String whole) throws SQLException {
-        int index = whole.indexOf(';', 5); // sridprefix length is 5
-        if (index == -1) {
-            throw new SQLException("Error parsing Geometry - SRID not delimited with ';' ");
-        } else {
-            return new String[]{
-                whole.substring(0, index),
-                whole.substring(index + 1)};
-        }
-    }
-}
diff --git a/java/jdbc/src/org/postgis/PGgeometryLW.java b/java/jdbc/src/org/postgis/PGgeometryLW.java
deleted file mode 100644
index d895393..0000000
--- a/java/jdbc/src/org/postgis/PGgeometryLW.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * PGgeometryLW.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - PGobject LWGeometry Wrapper
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: PGgeometryLW.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import org.postgis.binary.BinaryWriter;
-
-import java.sql.SQLException;
-
-/**
- * This is a subclas of PGgeometry that uses hex encoded EWKB to communicate
- * with the backend, which is much more efficient, but only works with Lwgeom
- * enabled PostGIS (1.0.0 and up).
- */
-
-public class PGgeometryLW extends PGgeometry {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-    
-    BinaryWriter bw = new BinaryWriter();
-
-    public PGgeometryLW() {
-        super();
-    }
-
-    public PGgeometryLW(Geometry geom) {
-        super(geom);
-    }
-
-    public PGgeometryLW(String value) throws SQLException {
-        super(value);
-    }
-
-    public String toString() {
-        return geom.toString();
-    }
-
-    public String getValue() {
-        return bw.writeHexed(geom);
-    }
-
-    public Object clone() {
-        return new PGgeometryLW(geom);
-    }
-}
diff --git a/java/jdbc/src/org/postgis/Point.java b/java/jdbc/src/org/postgis/Point.java
deleted file mode 100644
index 9a270ff..0000000
--- a/java/jdbc/src/org/postgis/Point.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Point.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: Point.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import org.postgresql.util.PGtokenizer;
-
-import java.sql.SQLException;
-
-public class Point extends Geometry {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    public static final boolean CUTINTS = true;
-
-    public int hashCode() {
-        return super.hashCode() ^ hashCode(x) ^ hashCode(y) ^ hashCode(z) ^ hashCode(m);
-    }
-
-    public static int hashCode(double value) {
-        long v = Double.doubleToLongBits(value);
-        return (int) (v ^ (v >>> 32));
-    }
-
-    protected boolean equalsintern(Geometry otherg) {
-        Point other = (Point) otherg;
-        return equals(other);
-    }
-
-	public static boolean double_equals(double a, double b) {
-		if ( Double.isNaN(a) && Double.isNaN(b) ) {
-			return true;
-		}
-		else {
-			return (a == b);
-		}
-	}
-
-    public final boolean equals(Point other) {
-        boolean xequals = double_equals(x, other.x);
-        boolean yequals = double_equals(y, other.y);
-        boolean zequals = ((dimension == 2) || double_equals(z, other.z));
-        boolean mequals = ((haveMeasure == false) || double_equals(m,other.m));
-        boolean result = xequals && yequals && zequals && mequals;
-        return result;
-    }
-
-    public Point getPoint(int index) {
-        if (index == 0) {
-            return this;
-        } else {
-            throw new ArrayIndexOutOfBoundsException("Point only has a single Point! " + index);
-        }
-    }
-
-    /** Optimized versions for this special case */
-    public Point getFirstPoint() {
-        return this;
-    }
-
-    /** Optimized versions for this special case */
-    public Point getLastPoint() {
-        return this;
-    }
-
-    public int numPoints() {
-        return 1;
-    }
-
-    /**
-     * The X coordinate of the point.
-     * In most long/lat systems, this is the longitude.
-     */
-    public double x;
-
-    /**
-     * The Y coordinate of the point.
-     * In most long/lat systems, this is the latitude.
-     */
-    public double y;
-
-    /**
-     * The Z coordinate of the point.
-     * In most long/lat systems, this is a radius from the 
-     * center of the earth, or the height / elevation over
-     * the ground.
-     */
-    public double z;
-
-    /**
-     * The measure of the point.
-     */
-    public double m = 0.0;
-
-    public Point() {
-        super(POINT);
-    }
-
-    /** Constructs a new Point
-     * @param x the longitude / x ordinate
-     * @param y the latitude / y ordinate
-     * @param z the radius / height / elevation / z ordinate
-     */
-    public Point(double x, double y, double z) {
-        this();
-        this.x = x;
-        this.y = y;
-        this.z = z;
-        dimension = 3;
-    }
-
-    /** Constructs a new Point
-     * @param x the longitude / x ordinate
-     * @param y the latitude / y ordinate
-     */
-    public Point(double x, double y) {
-        this();
-        this.x = x;
-        this.y = y;
-        this.z = 0.0;
-        dimension = 2;
-    }
-
-    /**
-     * Construct a Point from EWKT.
-     * 
-     * (3D and measures are legal, but SRID is not allowed).
-     */
-    public Point(String value) throws SQLException {
-        this(value, false);
-    }
-
-    /**
-     * Construct a Point
-     * 
-     * @param value The text representation of this point
-     * @param haveM Hint whether we have a measure. This is used by other
-     *            geometries parsing inner points where we only get "1 2 3 4"
-     *            like strings without the "POINT(" and ")" stuff. If there
-     *            acutally is a POINTM prefix, this overrides the given value.
-     *            However, POINT does not set it to false, as they can be
-     *            contained in measured collections, as in
-     *            "GEOMETRYCOLLECTIONM(POINT(0 0 0))".
-     */
-    protected Point(String value, boolean haveM) throws SQLException {
-        this();
-        value = initSRID(value);
-
-        if (value.indexOf("POINTM") == 0) {
-            haveM = true;
-            value = value.substring(6).trim();
-        } else if (value.indexOf("POINT") == 0) {
-            value = value.substring(5).trim();
-        }
-        PGtokenizer t = new PGtokenizer(PGtokenizer.removePara(value), ' ');
-        try {
-            x = Double.valueOf(t.getToken(0)).doubleValue();
-            y = Double.valueOf(t.getToken(1)).doubleValue();
-            haveM |= t.getSize() == 4;
-            if ((t.getSize() == 3 && !haveM) || (t.getSize() == 4)) {
-                z = Double.valueOf(t.getToken(2)).doubleValue();
-                dimension = 3;
-            } else {
-                dimension = 2;
-            }
-            if (haveM) {
-                m = Double.valueOf(t.getToken(dimension)).doubleValue();
-            }
-        } catch (NumberFormatException e) {
-            throw new SQLException("Error parsing Point: " + e.toString());
-        }
-        haveMeasure = haveM;
-    }
-
-    public void innerWKT(StringBuffer sb) {
-        sb.append(x);
-        if (CUTINTS)
-            cutint(sb);
-        sb.append(' ');
-        sb.append(y);
-        if (CUTINTS)
-            cutint(sb);
-        if (dimension == 3) {
-            sb.append(' ');
-            sb.append(z);
-            if (CUTINTS)
-                cutint(sb);
-        }
-        if (haveMeasure) {
-            sb.append(' ');
-            sb.append(m);
-            if (CUTINTS)
-                cutint(sb);
-        }
-    }
-
-    private static void cutint(StringBuffer sb) {
-        int l = sb.length() - 2;
-        if ((sb.charAt(l + 1) == '0') && (sb.charAt(l) == '.')) {
-            sb.setLength(l);
-        }
-    }
-
-    public double getX() {
-        return x;
-    }
-
-    public double getY() {
-        return y;
-    }
-
-    public double getZ() {
-        return z;
-    }
-
-    public double getM() {
-        return m;
-    }
-
-    public void setX(double x) {
-        this.x = x;
-    }
-
-    public void setY(double y) {
-        this.y = y;
-    }
-
-    public void setZ(double z) {
-        this.z = z;
-    }
-
-    public void setM(double m) {
-        haveMeasure = true;
-        this.m = m;
-    }
-
-    public void setX(int x) {
-        this.x = x;
-    }
-
-    public void setY(int y) {
-        this.y = y;
-    }
-
-    public void setZ(int z) {
-        this.z = z;
-    }
-
-    public double distance(Point other) {
-        double tx, ty, tz;
-        if (this.dimension != other.dimension) {
-            throw new IllegalArgumentException("Points have different dimensions!");
-        }
-        tx = this.x - other.x;
-        switch (this.dimension) {
-        case 1 :
-            return Math.sqrt(tx * tx);
-        case 2 :
-            ty = this.y - other.y;
-            return Math.sqrt(tx * tx + ty * ty);
-        case 3 :
-            ty = this.y - other.y;
-            tz = this.z - other.z;
-            return Math.sqrt(tx * tx + ty * ty + tz * tz);
-        default :
-            throw new IllegalArgumentException("Illegal dimension of Point" + this.dimension);
-        }
-    }
-
-    public boolean checkConsistency() {
-        return super.checkConsistency() && (this.dimension == 3 || this.z == 0.0)
-                && (this.haveMeasure || this.m == 0.0);
-    }
-}
diff --git a/java/jdbc/src/org/postgis/PointComposedGeom.java b/java/jdbc/src/org/postgis/PointComposedGeom.java
deleted file mode 100644
index e1d49d7..0000000
--- a/java/jdbc/src/org/postgis/PointComposedGeom.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * ComposedGeom.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: PointComposedGeom.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis;
-
-import java.sql.SQLException;
-
-/**
- * PointComposedGeom - base class for all composed geoms that contain only
- * points.
- * 
- * @author markus.schaber at logix-tt.com
- * 
- */
-
-public abstract class PointComposedGeom extends ComposedGeom {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    protected PointComposedGeom(int type) {
-        super(type);
-    }
-
-    protected PointComposedGeom(int type, Point[] points) {
-        super(type, points);
-    }
-
-    public PointComposedGeom(int type, String value) throws SQLException {
-        this(type, value, false);
-    }
-
-    public PointComposedGeom(int type, String value, boolean haveM) throws SQLException {
-        super(type, value, haveM);
-    }
-
-    protected Geometry createSubGeomInstance(String token, boolean haveM) throws SQLException {
-        return new Point(token, haveM);
-    }
-
-    protected Geometry[] createSubGeomArray(int pointcount) {
-        return new Point[pointcount];
-    }
-
-    protected void innerWKT(StringBuffer sb) {
-        subgeoms[0].innerWKT(sb);
-        for (int i = 1; i < subgeoms.length; i++) {
-            sb.append(',');
-            subgeoms[i].innerWKT(sb);
-        }
-    }
-
-    /**
-     * optimized version
-     */
-    public int numPoints() {
-        return subgeoms.length;
-    }
-
-    /**
-     * optimized version
-     */
-    public Point getPoint(int idx) {
-        if (idx >= 0 & idx < subgeoms.length) {
-            return (Point) subgeoms[idx];
-        } else {
-            return null;
-        }
-    }
-
-    /** Get the underlying Point array */
-    public Point[] getPoints() {
-        return (Point[]) subgeoms;
-    }
-}
diff --git a/java/jdbc/src/org/postgis/Polygon.java b/java/jdbc/src/org/postgis/Polygon.java
deleted file mode 100644
index 48f5778..0000000
--- a/java/jdbc/src/org/postgis/Polygon.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Polygon.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - geometry model
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: Polygon.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import java.sql.SQLException;
-
-public class Polygon extends ComposedGeom {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    public Polygon() {
-        super(POLYGON);
-    }
-
-    public Polygon(LinearRing[] rings) {
-        super(POLYGON, rings);
-    }
-
-    public Polygon(String value) throws SQLException {
-        this(value, false);
-    }
-
-    public Polygon(String value, boolean haveM) throws SQLException {
-        super(POLYGON, value, haveM);
-    }
-
-    protected Geometry createSubGeomInstance(String token, boolean haveM) throws SQLException {
-        return new LinearRing(token, haveM);
-    }
-
-    protected Geometry[] createSubGeomArray(int ringcount) {
-        return new LinearRing[ringcount];
-    }
-
-    public int numRings() {
-        return subgeoms.length;
-    }
-
-    public LinearRing getRing(int idx) {
-        if (idx >= 0 & idx < subgeoms.length) {
-            return (LinearRing) subgeoms[idx];
-        } else {
-            return null;
-        }
-    }
-}
diff --git a/java/jdbc/src/org/postgis/Version.java b/java/jdbc/src/org/postgis/Version.java
deleted file mode 100644
index 4cc0daa..0000000
--- a/java/jdbc/src/org/postgis/Version.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Version.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - current version identification
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: Version.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis;
-
-import java.io.IOException;
-import java.util.Properties;
-
-/** Corresponds to the appropriate PostGIS that carried this source */
-public class Version {
-    /** We read our version information from this resource... */
-    private static final String RESSOURCENAME = "org/postgis/version.properties";
-
-    /** The major version */
-    public static final int MAJOR;
-
-    /** The minor version */
-    public static final int MINOR;
-
-    /**
-     * The micro version, usually a number including possibly textual suffixes
-     * like RC3.
-     */
-    public static final String MICRO;
-
-    static {
-        int major = -1;
-        int minor = -1;
-        String micro = null;
-        try {
-            ClassLoader loader = Version.class.getClassLoader();
-
-            Properties prop = new Properties();
-
-            try {
-                prop.load(loader.getResourceAsStream(RESSOURCENAME));
-            } catch (IOException e) {
-                throw new ExceptionInInitializerError("Error initializing PostGIS JDBC version! Cause: Ressource "
-                        + RESSOURCENAME + " cannot be read! " + e.getMessage());
-            } catch (NullPointerException e) {
-                throw new ExceptionInInitializerError("Error initializing PostGIS JDBC version! Cause: Ressource "
-                        + RESSOURCENAME + " not found! " + e.getMessage());
-            }
-
-            try {
-                major = Integer.parseInt(prop.getProperty("REL_MAJOR_VERSION"));
-            } catch (NullPointerException e) {
-                throw new ExceptionInInitializerError(
-                        "Error initializing PostGIS JDBC version! Missing REL_MAJOR_VERSION! " + e.getMessage());
-            } catch (NumberFormatException e) {
-                throw new ExceptionInInitializerError(
-                        "Error initializing PostGIS JDBC version! Error parsing REL_MAJOR_VERSION! " + e.getMessage());
-            }
-
-            try {
-                minor = Integer.parseInt(prop.getProperty("REL_MINOR_VERSION"));
-            } catch (NullPointerException e) {
-                throw new ExceptionInInitializerError(
-                        "Error initializing PostGIS JDBC version! Missing REL_MINOR_VERSION! " + e.getMessage());
-            } catch (NumberFormatException e) {
-                throw new ExceptionInInitializerError(
-                        "Error initializing PostGIS JDBC version! Error parsing REL_MINOR_VERSION! " + e.getMessage());
-            }
-
-            micro = prop.getProperty("REL_MICRO_VERSION");
-            if (micro == null) {
-                throw new ExceptionInInitializerError(
-                        "Error initializing PostGIS JDBC version! Missing REL_MICRO_VERSION! ");
-            }
-        } finally {
-            MAJOR = major;
-            MINOR = minor;
-            MICRO = micro;
-        }
-    }
-
-    /** Full version for human reading - code should use the constants above */
-    public static final String FULL = "PostGIS JDBC V" + MAJOR + "." + MINOR + "." + MICRO;
-
-    public static void main(String[] args) {
-        System.out.println(FULL);
-    }
-
-    public static String getFullVersion() {
-        return FULL;
-    }
-}
diff --git a/java/jdbc/src/org/postgis/binary/BinaryParser.java b/java/jdbc/src/org/postgis/binary/BinaryParser.java
deleted file mode 100644
index b90b82b..0000000
--- a/java/jdbc/src/org/postgis/binary/BinaryParser.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * BinaryParser.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Binary Parser
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: BinaryParser.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.binary;
-
-import org.postgis.Geometry;
-import org.postgis.GeometryCollection;
-import org.postgis.LineString;
-import org.postgis.LinearRing;
-import org.postgis.MultiLineString;
-import org.postgis.MultiPoint;
-import org.postgis.MultiPolygon;
-import org.postgis.Point;
-import org.postgis.Polygon;
-import org.postgis.binary.ByteGetter.BinaryByteGetter;
-import org.postgis.binary.ByteGetter.StringByteGetter;
-
-/**
- * Parse binary representation of geometries.
- * 
- * It should be easy to add char[] and CharSequence ByteGetter instances,
- * although the latter one is not compatible with older jdks.
- * 
- * I did not implement real unsigned 32-bit integers or emulate them with long,
- * as both java Arrays and Strings currently can have only 2^31-1 elements
- * (bytes), so we cannot even get or build Geometries with more than approx.
- * 2^28 coordinates (8 bytes each).
- * 
- * @author Markus Schaber <markus.schaber at logix-tt.com>
- *  
- */
-public class BinaryParser {
-
-    /**
-     * Get the appropriate ValueGetter for my endianness
-     * 
-     * @param bytes The appropriate Byte Getter
-     * 
-     * @return the ValueGetter
-     */
-    public static ValueGetter valueGetterForEndian(ByteGetter bytes) {
-        if (bytes.get(0) == ValueGetter.XDR.NUMBER) { // XDR
-            return new ValueGetter.XDR(bytes);
-        } else if (bytes.get(0) == ValueGetter.NDR.NUMBER) {
-            return new ValueGetter.NDR(bytes);
-        } else {
-            throw new IllegalArgumentException("Unknown Endian type:" + bytes.get(0));
-        }
-    }
-
-    /**
-     * Parse a hex encoded geometry
-     * 
-     * Is synchronized to protect offset counter. (Unfortunately, Java does not
-     * have neither call by reference nor multiple return values.)
-     */
-    public synchronized Geometry parse(String value) {
-        StringByteGetter bytes = new ByteGetter.StringByteGetter(value);
-        return parseGeometry(valueGetterForEndian(bytes));
-    }
-
-    /**
-     * Parse a binary encoded geometry.
-     * 
-     * Is synchronized to protect offset counter. (Unfortunately, Java does not
-     * have neither call by reference nor multiple return values.)
-     */
-    public synchronized Geometry parse(byte[] value) {
-        BinaryByteGetter bytes = new ByteGetter.BinaryByteGetter(value);
-        return parseGeometry(valueGetterForEndian(bytes));
-    }
-
-    /** Parse a geometry starting at offset. */
-    protected Geometry parseGeometry(ValueGetter data) {
-        byte endian = data.getByte(); // skip and test endian flag
-        if (endian != data.endian) {
-            throw new IllegalArgumentException("Endian inconsistency!");
-        }
-        int typeword = data.getInt();
-
-        int realtype = typeword & 0x1FFFFFFF; // cut off high flag bits
-
-        boolean haveZ = (typeword & 0x80000000) != 0;
-        boolean haveM = (typeword & 0x40000000) != 0;
-        boolean haveS = (typeword & 0x20000000) != 0;
-
-        int srid = Geometry.UNKNOWN_SRID;
-
-        if (haveS) {
-            srid = Geometry.parseSRID(data.getInt());
-        }
-        Geometry result1;
-        switch (realtype) {
-        case Geometry.POINT :
-            result1 = parsePoint(data, haveZ, haveM);
-            break;
-        case Geometry.LINESTRING :
-            result1 = parseLineString(data, haveZ, haveM);
-            break;
-        case Geometry.POLYGON :
-            result1 = parsePolygon(data, haveZ, haveM);
-            break;
-        case Geometry.MULTIPOINT :
-            result1 = parseMultiPoint(data);
-            break;
-        case Geometry.MULTILINESTRING :
-            result1 = parseMultiLineString(data);
-            break;
-        case Geometry.MULTIPOLYGON :
-            result1 = parseMultiPolygon(data);
-            break;
-        case Geometry.GEOMETRYCOLLECTION :
-            result1 = parseCollection(data);
-            break;
-        default :
-            throw new IllegalArgumentException("Unknown Geometry Type: " + realtype);
-        }
-
-        Geometry result = result1;
-
-        if (srid != Geometry.UNKNOWN_SRID) {
-            result.setSrid(srid);
-        }
-        return result;
-    }
-
-    private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM) {
-        double X = data.getDouble();
-        double Y = data.getDouble();
-        Point result;
-        if (haveZ) {
-            double Z = data.getDouble();
-            result = new Point(X, Y, Z);
-        } else {
-            result = new Point(X, Y);
-        }
-
-        if (haveM) {
-            result.setM(data.getDouble());
-        }
-
-        return result;
-    }
-
-    /** Parse an Array of "full" Geometries */
-    private void parseGeometryArray(ValueGetter data, Geometry[] container) {
-        for (int i = 0; i < container.length; i++) {
-            container[i] = parseGeometry(data);
-        }
-    }
-
-    /**
-     * Parse an Array of "slim" Points (without endianness and type, part of
-     * LinearRing and Linestring, but not MultiPoint!
-     * 
-     * @param haveZ
-     * @param haveM
-     */
-    private Point[] parsePointArray(ValueGetter data, boolean haveZ, boolean haveM) {
-        int count = data.getInt();
-        Point[] result = new Point[count];
-        for (int i = 0; i < count; i++) {
-            result[i] = parsePoint(data, haveZ, haveM);
-        }
-        return result;
-    }
-
-    private MultiPoint parseMultiPoint(ValueGetter data) {
-        Point[] points = new Point[data.getInt()];
-        parseGeometryArray(data, points);
-        return new MultiPoint(points);
-    }
-
-    private LineString parseLineString(ValueGetter data, boolean haveZ, boolean haveM) {
-        Point[] points = parsePointArray(data, haveZ, haveM);
-        return new LineString(points);
-    }
-
-    private LinearRing parseLinearRing(ValueGetter data, boolean haveZ, boolean haveM) {
-        Point[] points = parsePointArray(data, haveZ, haveM);
-        return new LinearRing(points);
-    }
-
-    private Polygon parsePolygon(ValueGetter data, boolean haveZ, boolean haveM) {
-        int count = data.getInt();
-        LinearRing[] rings = new LinearRing[count];
-        for (int i = 0; i < count; i++) {
-            rings[i] = parseLinearRing(data, haveZ, haveM);
-        }
-        return new Polygon(rings);
-    }
-
-    private MultiLineString parseMultiLineString(ValueGetter data) {
-        int count = data.getInt();
-        LineString[] strings = new LineString[count];
-        parseGeometryArray(data, strings);
-        return new MultiLineString(strings);
-    }
-
-    private MultiPolygon parseMultiPolygon(ValueGetter data) {
-        int count = data.getInt();
-        Polygon[] polys = new Polygon[count];
-        parseGeometryArray(data, polys);
-        return new MultiPolygon(polys);
-    }
-
-    private GeometryCollection parseCollection(ValueGetter data) {
-        int count = data.getInt();
-        Geometry[] geoms = new Geometry[count];
-        parseGeometryArray(data, geoms);
-        return new GeometryCollection(geoms);
-    }
-}
diff --git a/java/jdbc/src/org/postgis/binary/BinaryWriter.java b/java/jdbc/src/org/postgis/binary/BinaryWriter.java
deleted file mode 100644
index edbb4e8..0000000
--- a/java/jdbc/src/org/postgis/binary/BinaryWriter.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * BinaryWriter.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Binary Writer
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: BinaryWriter.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.binary;
-
-import org.postgis.Geometry;
-import org.postgis.GeometryCollection;
-import org.postgis.LineString;
-import org.postgis.LinearRing;
-import org.postgis.MultiLineString;
-import org.postgis.MultiPoint;
-import org.postgis.MultiPolygon;
-import org.postgis.Point;
-import org.postgis.Polygon;
-
-/**
- * Create binary representation of geometries. Currently, only text rep (hexed)
- * implementation is tested.
- * 
- * It should be easy to add char[] and CharSequence ByteGetter instances,
- * although the latter one is not compatible with older jdks.
- * 
- * I did not implement real unsigned 32-bit integers or emulate them with long,
- * as both java Arrays and Strings currently can have only 2^31-1 elements
- * (bytes), so we cannot even get or build Geometries with more than approx.
- * 2^28 coordinates (8 bytes each).
- * 
- * @author markus.schaber at logi-track.com
- * 
- */
-public class BinaryWriter {
-
-    /**
-     * Get the appropriate ValueGetter for my endianness
-     * 
-     * @param bytes The appropriate Byte Getter
-     * 
-     * @return the ValueGetter
-     */
-    public static ValueSetter valueSetterForEndian(ByteSetter bytes, byte endian) {
-        if (endian == ValueSetter.XDR.NUMBER) { // XDR
-            return new ValueSetter.XDR(bytes);
-        } else if (endian == ValueSetter.NDR.NUMBER) {
-            return new ValueSetter.NDR(bytes);
-        } else {
-            throw new IllegalArgumentException("Unknown Endian type:" + endian);
-        }
-    }
-
-    /**
-     * Write a hex encoded geometry
-     * 
-     * Is synchronized to protect offset counter. (Unfortunately, Java does not
-     * have neither call by reference nor multiple return values.) This is a
-     * TODO item.
-     * 
-     * The geometry you put in must be consistent, geom.checkConsistency() must
-     * return true. If not, the result may be invalid WKB.
-     * 
-     * @see Geometry#checkConsistency() the consistency checker
-     */
-    public synchronized String writeHexed(Geometry geom, byte REP) {
-        int length = estimateBytes(geom);
-        ByteSetter.StringByteSetter bytes = new ByteSetter.StringByteSetter(length);
-        writeGeometry(geom, valueSetterForEndian(bytes, REP));
-        return bytes.result();
-    }
-
-    public synchronized String writeHexed(Geometry geom) {
-        return writeHexed(geom, ValueSetter.NDR.NUMBER);
-    }
-
-    /**
-     * Write a binary encoded geometry.
-     * 
-     * Is synchronized to protect offset counter. (Unfortunately, Java does not
-     * have neither call by reference nor multiple return values.) This is a
-     * TODO item.
-     * 
-     * The geometry you put in must be consistent, geom.checkConsistency() must
-     * return true. If not, the result may be invalid WKB.
-     * 
-     * @see Geometry#checkConsistency()
-     */
-    public synchronized byte[] writeBinary(Geometry geom, byte REP) {
-        int length = estimateBytes(geom);
-        ByteSetter.BinaryByteSetter bytes = new ByteSetter.BinaryByteSetter(length);
-        writeGeometry(geom, valueSetterForEndian(bytes, REP));
-        return bytes.result();
-    }
-
-    public synchronized byte[] writeBinary(Geometry geom) {
-        return writeBinary(geom, ValueSetter.NDR.NUMBER);
-    }
-
-    /** Parse a geometry starting at offset. */
-    protected void writeGeometry(Geometry geom, ValueSetter dest) {
-        // write endian flag
-        dest.setByte(dest.endian);
-
-        // write typeword
-        int typeword = geom.type;
-        if (geom.dimension == 3) {
-            typeword |= 0x80000000;
-        }
-        if (geom.haveMeasure) {
-            typeword |= 0x40000000;
-        }
-        if (geom.srid != Geometry.UNKNOWN_SRID) {
-            typeword |= 0x20000000;
-        }
-
-        dest.setInt(typeword);
-
-        if (geom.srid != Geometry.UNKNOWN_SRID) {
-            dest.setInt(geom.srid);
-        }
-
-        switch (geom.type) {
-        case Geometry.POINT :
-            writePoint((Point) geom, dest);
-            break;
-        case Geometry.LINESTRING :
-            writeLineString((LineString) geom, dest);
-            break;
-        case Geometry.POLYGON :
-            writePolygon((Polygon) geom, dest);
-            break;
-        case Geometry.MULTIPOINT :
-            writeMultiPoint((MultiPoint) geom, dest);
-            break;
-        case Geometry.MULTILINESTRING :
-            writeMultiLineString((MultiLineString) geom, dest);
-            break;
-        case Geometry.MULTIPOLYGON :
-            writeMultiPolygon((MultiPolygon) geom, dest);
-            break;
-        case Geometry.GEOMETRYCOLLECTION :
-            writeCollection((GeometryCollection) geom, dest);
-            break;
-        default :
-            throw new IllegalArgumentException("Unknown Geometry Type: " + geom.type);
-        }
-    }
-
-    /**
-     * Writes a "slim" Point (without endiannes, srid ant type, only the
-     * ordinates and measure. Used by writeGeometry as ell as writePointArray.
-     */
-    private void writePoint(Point geom, ValueSetter dest) {
-        dest.setDouble(geom.x);
-        dest.setDouble(geom.y);
-
-        if (geom.dimension == 3) {
-            dest.setDouble(geom.z);
-        }
-
-        if (geom.haveMeasure) {
-            dest.setDouble(geom.m);
-        }
-    }
-
-    /** Write an Array of "full" Geometries */
-    private void writeGeometryArray(Geometry[] container, ValueSetter dest) {
-        for (int i = 0; i < container.length; i++) {
-            writeGeometry(container[i], dest);
-        }
-    }
-
-    /**
-     * Write an Array of "slim" Points (without endianness, srid and type, part
-     * of LinearRing and Linestring, but not MultiPoint!
-     */
-    private void writePointArray(Point[] geom, ValueSetter dest) {
-        // number of points
-        dest.setInt(geom.length);
-        for (int i = 0; i < geom.length; i++) {
-            writePoint(geom[i], dest);
-        }
-    }
-
-    private void writeMultiPoint(MultiPoint geom, ValueSetter dest) {
-        dest.setInt(geom.numPoints());
-        writeGeometryArray(geom.getPoints(), dest);
-    }
-
-    private void writeLineString(LineString geom, ValueSetter dest) {
-        writePointArray(geom.getPoints(), dest);
-    }
-
-    private void writeLinearRing(LinearRing geom, ValueSetter dest) {
-        writePointArray(geom.getPoints(), dest);
-    }
-
-    private void writePolygon(Polygon geom, ValueSetter dest) {
-        dest.setInt(geom.numRings());
-        for (int i = 0; i < geom.numRings(); i++) {
-            writeLinearRing(geom.getRing(i), dest);
-        }
-    }
-
-    private void writeMultiLineString(MultiLineString geom, ValueSetter dest) {
-        dest.setInt(geom.numLines());
-        writeGeometryArray(geom.getLines(), dest);
-    }
-
-    private void writeMultiPolygon(MultiPolygon geom, ValueSetter dest) {
-        dest.setInt(geom.numPolygons());
-        writeGeometryArray(geom.getPolygons(), dest);
-    }
-
-    private void writeCollection(GeometryCollection geom, ValueSetter dest) {
-        dest.setInt(geom.numGeoms());
-        writeGeometryArray(geom.getGeometries(), dest);
-    }
-
-    /** Estimate how much bytes a geometry will need in WKB. */
-    protected int estimateBytes(Geometry geom) {
-        int result = 0;
-
-        // write endian flag
-        result += 1;
-
-        // write typeword
-        result += 4;
-
-        if (geom.srid != Geometry.UNKNOWN_SRID) {
-            result += 4;
-        }
-
-        switch (geom.type) {
-        case Geometry.POINT :
-            result += estimatePoint((Point) geom);
-            break;
-        case Geometry.LINESTRING :
-            result += estimateLineString((LineString) geom);
-            break;
-        case Geometry.POLYGON :
-            result += estimatePolygon((Polygon) geom);
-            break;
-        case Geometry.MULTIPOINT :
-            result += estimateMultiPoint((MultiPoint) geom);
-            break;
-        case Geometry.MULTILINESTRING :
-            result += estimateMultiLineString((MultiLineString) geom);
-            break;
-        case Geometry.MULTIPOLYGON :
-            result += estimateMultiPolygon((MultiPolygon) geom);
-            break;
-        case Geometry.GEOMETRYCOLLECTION :
-            result += estimateCollection((GeometryCollection) geom);
-            break;
-        default :
-            throw new IllegalArgumentException("Unknown Geometry Type: " + geom.type);
-        }
-        return result;
-    }
-
-    private int estimatePoint(Point geom) {
-        // x, y both have 8 bytes
-        int result = 16;
-        if (geom.dimension == 3) {
-            result += 8;
-        }
-
-        if (geom.haveMeasure) {
-            result += 8;
-        }
-        return result;
-    }
-
-    /** Write an Array of "full" Geometries */
-    private int estimateGeometryArray(Geometry[] container) {
-        int result = 0;
-        for (int i = 0; i < container.length; i++) {
-            result += estimateBytes(container[i]);
-        }
-        return result;
-    }
-
-    /**
-     * Write an Array of "slim" Points (without endianness and type, part of
-     * LinearRing and Linestring, but not MultiPoint!
-     */
-    private int estimatePointArray(Point[] geom) {
-        // number of points
-        int result = 4;
-
-        // And the amount of the points itsself, in consistent geometries
-        // all points have equal size.
-        if (geom.length > 0) {
-            result += geom.length * estimatePoint(geom[0]);
-        }
-        return result;
-    }
-
-    private int estimateMultiPoint(MultiPoint geom) {
-        // int size
-        int result = 4;
-        if (geom.numPoints() > 0) {
-            // We can shortcut here, as all subgeoms have the same fixed size
-            result += geom.numPoints() * estimateBytes(geom.getFirstPoint());
-        }
-        return result;
-    }
-
-    private int estimateLineString(LineString geom) {
-        return estimatePointArray(geom.getPoints());
-    }
-
-    private int estimateLinearRing(LinearRing geom) {
-        return estimatePointArray(geom.getPoints());
-    }
-
-    private int estimatePolygon(Polygon geom) {
-        // int length
-        int result = 4;
-        for (int i = 0; i < geom.numRings(); i++) {
-            result += estimateLinearRing(geom.getRing(i));
-        }
-        return result;
-    }
-
-    private int estimateMultiLineString(MultiLineString geom) {
-        // 4-byte count + subgeometries
-        return 4 + estimateGeometryArray(geom.getLines());
-    }
-
-    private int estimateMultiPolygon(MultiPolygon geom) {
-        // 4-byte count + subgeometries
-        return 4 + estimateGeometryArray(geom.getPolygons());
-    }
-
-    private int estimateCollection(GeometryCollection geom) {
-        // 4-byte count + subgeometries
-        return 4 + estimateGeometryArray(geom.getGeometries());
-    }
-}
diff --git a/java/jdbc/src/org/postgis/binary/ByteGetter.java b/java/jdbc/src/org/postgis/binary/ByteGetter.java
deleted file mode 100644
index b52bc17..0000000
--- a/java/jdbc/src/org/postgis/binary/ByteGetter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * ByteGetter.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Binary Parser
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: ByteGetter.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis.binary;
-
-public abstract class ByteGetter {
-    /**
-     * Get a byte.
-     * 
-     * @return The result is returned as Int to eliminate sign problems when
-     *         or'ing several values together.
-     */
-    public abstract int get(int index);
-
-    public static class BinaryByteGetter extends ByteGetter {
-        private byte[] array;
-
-        public BinaryByteGetter(byte[] array) {
-            this.array = array;
-        }
-
-        public int get(int index) {
-            return array[index] & 0xFF; // mask out sign-extended bits.
-        }
-    }
-
-    public static class StringByteGetter extends ByteGetter {
-        private String rep;
-
-        public StringByteGetter(String rep) {
-            this.rep = rep;
-        }
-
-        public int get(int index) {
-            index *= 2;
-            int high = unhex(rep.charAt(index));
-            int low = unhex(rep.charAt(index + 1));
-            return (high << 4) + low;
-        }
-
-        public static byte unhex(char c) {
-            if (c >= '0' && c <= '9') {
-                return (byte) (c - '0');
-            } else if (c >= 'A' && c <= 'F') {
-                return (byte) (c - 'A' + 10);
-            } else if (c >= 'a' && c <= 'f') {
-                return (byte) (c - 'a' + 10);
-            } else {
-                throw new IllegalArgumentException("No valid Hex char " + c);
-            }
-        }
-    }
-}
diff --git a/java/jdbc/src/org/postgis/binary/ByteSetter.java b/java/jdbc/src/org/postgis/binary/ByteSetter.java
deleted file mode 100644
index 56a7243..0000000
--- a/java/jdbc/src/org/postgis/binary/ByteSetter.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * ByteGetter.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Binary Parser
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: ByteSetter.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis.binary;
-
-public abstract class ByteSetter {
-
-    /**
-     * Set a byte.
-     * 
-     */
-    public abstract void set(byte b, int index);
-
-    public static class BinaryByteSetter extends ByteSetter {
-        private byte[] array;
-
-        public BinaryByteSetter(int length) {
-            this.array = new byte[length];
-        }
-
-        public void set(byte b, int index) {
-            array[index] = b; // mask out sign-extended bits.
-        }
-
-        public byte[] result() {
-            return array;
-        }
-        
-        public String toString() {
-            char[] arr = new char[array.length];
-            for (int i=0; i<array.length; i++) {
-                arr[i] = (char)(array[i]&0xFF);
-            }
-            return new String(arr);
-        }
-    }
-
-    public static class StringByteSetter extends ByteSetter {
-        protected static final char[] hextypes = "0123456789ABCDEF".toCharArray();
-        private char[] rep;
-
-        public StringByteSetter(int length) {
-            this.rep = new char[length * 2];
-        }
-
-        public void set(byte b, int index) {
-            index *= 2;
-            rep[index] = hextypes[(b >>> 4) & 0xF];
-            rep[index + 1] = hextypes[b & 0xF];
-        }
-
-        public char[] resultAsArray() {
-            return rep;
-        }
-
-        public String result() {
-            return new String(rep);
-        }
-        
-        public String toString() {
-            return new String(rep);
-        }
-    }
-}
diff --git a/java/jdbc/src/org/postgis/binary/ValueGetter.java b/java/jdbc/src/org/postgis/binary/ValueGetter.java
deleted file mode 100644
index 11c531d..0000000
--- a/java/jdbc/src/org/postgis/binary/ValueGetter.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * ValueGetter.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Binary Parser
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: ValueGetter.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis.binary;
-
-public abstract class ValueGetter {
-    ByteGetter data;
-    int position;
-    public final byte endian;
-
-    public ValueGetter(ByteGetter data, byte endian) {
-        this.data = data;
-        this.endian = endian;
-    }
-
-    /**
-     * Get a byte, should be equal for all endians
-     */
-    public byte getByte() {
-        return (byte) data.get(position++);
-    }
-
-    public int getInt() {
-        int res = getInt(position);
-        position += 4;
-        return res;
-    }
-
-    public long getLong() {
-        long res = getLong(position);
-        position += 8;
-        return res;
-    }
-
-    /** Get a 32-Bit integer */
-    protected abstract int getInt(int index);
-
-    /**
-     * Get a long value. This is not needed directly, but as a nice side-effect
-     * from GetDouble.
-     */
-    protected abstract long getLong(int index);
-
-    /**
-     * Get a double.
-     */
-    public double getDouble() {
-        long bitrep = getLong();
-        return Double.longBitsToDouble(bitrep);
-    }
-
-    public static class XDR extends ValueGetter {
-        public static final byte NUMBER = 0;
-
-        public XDR(ByteGetter data) {
-            super(data, NUMBER);
-        }
-
-        protected int getInt(int index) {
-            return (data.get(index) << 24) + (data.get(index + 1) << 16)
-                    + (data.get(index + 2) << 8) + data.get(index + 3);
-        }
-
-        protected long getLong(int index) {
-            return ((long) data.get(index) << 56) + ((long) data.get(index + 1) << 48)
-                    + ((long) data.get(index + 2) << 40) + ((long) data.get(index + 3) << 32)
-                    + ((long) data.get(index + 4) << 24) + ((long) data.get(index + 5) << 16)
-                    + ((long) data.get(index + 6) << 8) + ((long) data.get(index + 7) << 0);
-        }
-    }
-
-    public static class NDR extends ValueGetter {
-        public static final byte NUMBER = 1;
-
-        public NDR(ByteGetter data) {
-            super(data, NUMBER);
-        }
-
-        protected int getInt(int index) {
-            return (data.get(index + 3) << 24) + (data.get(index + 2) << 16)
-                    + (data.get(index + 1) << 8) + data.get(index);
-        }
-
-        protected long getLong(int index) {
-            return ((long) data.get(index + 7) << 56) + ((long) data.get(index + 6) << 48)
-                    + ((long) data.get(index + 5) << 40) + ((long) data.get(index + 4) << 32)
-                    + ((long) data.get(index + 3) << 24) + ((long) data.get(index + 2) << 16)
-                    + ((long) data.get(index + 1) << 8) + ((long) data.get(index) << 0);
-        }
-    }
-}
diff --git a/java/jdbc/src/org/postgis/binary/ValueSetter.java b/java/jdbc/src/org/postgis/binary/ValueSetter.java
deleted file mode 100644
index 7d0844f..0000000
--- a/java/jdbc/src/org/postgis/binary/ValueSetter.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * ValueGetter.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Binary Parser
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: ValueSetter.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis.binary;
-
-public abstract class ValueSetter {
-    ByteSetter data;
-    int position=0;
-    public final byte endian;
-
-    public ValueSetter(ByteSetter data, byte endian) {
-        this.data = data;
-        this.endian = endian;
-    }
-
-    /**
-     * Get a byte, should be equal for all endians
-     */
-    public void setByte(byte value) {
-        data.set(value, position);
-        position += 1;
-    }
-
-    public void setInt(int value) {
-        setInt(value, position);
-        position += 4;
-    }
-
-    public void setLong(long value) {
-        setLong(value, position);
-        position += 8;
-    }
-
-    /** Get a 32-Bit integer */
-    protected abstract void setInt(int value, int index);
-
-    /**
-     * Get a long value. This is not needed directly, but as a nice side-effect
-     * from GetDouble.
-     */
-    protected abstract void setLong(long data, int index);
-
-    /**
-     * Get a double.
-     */
-    public void setDouble(double data) {
-        long bitrep = Double.doubleToLongBits(data);
-        setLong(bitrep);
-    }
-
-    public String toString() {
-        String name = getClass().getName();
-        int pointpos = name.lastIndexOf('.');
-        String klsName = name.substring(pointpos+1);
-        return klsName+"('"+(data==null?"NULL":data.toString()+"')");
-    }
-    
-    public static class XDR extends ValueSetter {
-        public static final byte NUMBER = 0;
-
-        public XDR(ByteSetter data) {
-            super(data, NUMBER);
-        }
-
-        protected void setInt(int value, int index) {
-            data.set((byte) (value >>> 24), index);
-            data.set((byte) (value >>> 16), index + 1);
-            data.set((byte) (value >>> 8), index + 2);
-            data.set((byte) value, index + 3);
-        }
-
-        protected void setLong(long value, int index) {
-            data.set((byte) (value >>> 56), index);
-            data.set((byte) (value >>> 48), index + 1);
-            data.set((byte) (value >>> 40), index + 2);
-            data.set((byte) (value >>> 32), index + 3);
-            data.set((byte) (value >>> 24), index + 4);
-            data.set((byte) (value >>> 16), index + 5);
-            data.set((byte) (value >>> 8), index + 6);
-            data.set((byte) value, index + 7);
-        }
-    }
-
-    public static class NDR extends ValueSetter {
-        public static final byte NUMBER = 1;
-
-        public NDR(ByteSetter data) {
-            super(data, NUMBER);
-        }
-
-        protected void setInt(int value, int index) {
-            data.set((byte) (value >>> 24), index + 3);
-            data.set((byte) (value >>> 16), index + 2);
-            data.set((byte) (value >>> 8), index + 1);
-            data.set((byte) value, index);
-        }
-
-        protected void setLong(long value, int index) {
-            data.set((byte) (value >>> 56), index + 7);
-            data.set((byte) (value >>> 48), index + 6);
-            data.set((byte) (value >>> 40), index + 5);
-            data.set((byte) (value >>> 32), index + 4);
-            data.set((byte) (value >>> 24), index + 3);
-            data.set((byte) (value >>> 16), index + 2);
-            data.set((byte) (value >>> 8), index + 1);
-            data.set((byte) value, index);
-        }
-    }
-}
diff --git a/java/jdbc/src/org/postgis/java2d/Java2DWrapper.java b/java/jdbc/src/org/postgis/java2d/Java2DWrapper.java
deleted file mode 100644
index 4c9227d..0000000
--- a/java/jdbc/src/org/postgis/java2d/Java2DWrapper.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * JtsWrapper.java
- * 
- * Allows transparent usage of JTS Geometry classes via PostgreSQL JDBC driver
- * connected to a PostGIS enabled PostgreSQL server.
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: Java2DWrapper.java 10206 2012-08-28 04:08:23Z robe $
- */
-
-package org.postgis.java2d;
-
-import org.postgresql.Driver;
-import org.postgresql.PGConnection;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.SQLFeatureNotSupportedException;
-import java.util.Properties;
-import java.util.logging.Logger;
-
-/**
- * Java2DWrapper
- * 
- * Wraps the PostGreSQL Driver to add transparent readonly support for PostGIS
- * objects into java2d path objects.
- * 
- * This method currently works with J2EE DataSource implementations, and with
- * DriverManager framework.
- * 
- * Simply replace the "jdbc:postgresql:" with a "jdbc:postgis_j2d" in the
- * jdbc URL.
- * 
- * @author markus.schaber at logix-tt.com
- * 
- */
-public class Java2DWrapper extends Driver {
-
-    private static final String POSTGRES_PROTOCOL = "jdbc:postgresql:";
-    public static final String POSTGIS_PROTOCOL = "jdbc:postgis_j2d:";
-    public static final String REVISION = "$Revision: 10206 $";
-
-    public Java2DWrapper() {
-        super();
-    }
-
-    static {
-        try {
-            // Analogy to org.postgresql.Driver
-            java.sql.DriverManager.registerDriver(new Java2DWrapper());
-        } catch (SQLException e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * Creates a postgresql connection, and then adds the PostGIS data types to
-     * it calling addpgtypes()
-     * 
-     * @param url the URL of the database to connect to
-     * @param info a list of arbitrary tag/value pairs as connection arguments
-     * @return a connection to the URL or null if it isnt us
-     * @exception SQLException if a database access error occurs
-     * 
-     * @see java.sql.Driver#connect
-     * @see org.postgresql.Driver
-     */
-    public java.sql.Connection connect(String url, Properties info) throws SQLException {
-        url = mangleURL(url);
-        Connection result = super.connect(url, info);
-        addGISTypes((PGConnection) result);
-        return result;
-    }
-
-    /**
-     * adds the JTS/PostGIS Data types to a PG Connection.
-     * @throws SQLException 
-     */
-    public static void addGISTypes(PGConnection pgconn) throws SQLException {
-        pgconn.addDataType("geometry", PGShapeGeometry.class);
-        pgconn.addDataType("box3d", org.postgis.PGbox3d.class);
-        pgconn.addDataType("box2d", org.postgis.PGbox2d.class);
-    }
-
-    /**
-     * Mangles the PostGIS URL to return the original PostGreSQL URL
-     */
-    public static String mangleURL(String url) throws SQLException {
-        if (url.startsWith(POSTGIS_PROTOCOL)) {
-            return POSTGRES_PROTOCOL + url.substring(POSTGIS_PROTOCOL.length());
-        } else {
-            throw new SQLException("Unknown protocol or subprotocol in url " + url);
-        }
-    }
-
-    /**
-     * Returns true if the driver thinks it can open a connection to the given
-     * URL. Typically, drivers will return true if they understand the
-     * subprotocol specified in the URL and false if they don't. Our protocols
-     * start with jdbc:postgresql_postGIS:
-     * 
-     * @see java.sql.Driver#acceptsURL
-     * @param url the URL of the driver
-     * @return true if this driver accepts the given URL
-     * @exception SQLException if a database-access error occurs (Dont know why
-     *                it would *shrug*)
-     */
-    public boolean acceptsURL(String url) throws SQLException {
-        try {
-            url = mangleURL(url);
-        } catch (SQLException e) {
-            return false;
-        }
-        return super.acceptsURL(url);
-    }
-
-    /**
-     * Gets the underlying drivers major version number
-     * 
-     * @return the drivers major version number
-     */
-    public int getMajorVersion() {
-        return super.getMajorVersion();
-    }
-
-    /**
-     * Get the underlying drivers minor version number
-     * 
-     * @return the drivers minor version number
-     */
-    public int getMinorVersion() {
-        return super.getMinorVersion();
-    }
-
-    /**
-     * Returns our own CVS version plus postgres Version
-     */
-    public static String getVersion() {
-        return "Java2DWrapper " + REVISION + ", wrapping " + Driver.getVersion();
-    }
-
-    public Logger getParentLogger() throws SQLFeatureNotSupportedException {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-}
diff --git a/java/jdbc/src/org/postgis/java2d/PGShapeGeometry.java b/java/jdbc/src/org/postgis/java2d/PGShapeGeometry.java
deleted file mode 100644
index ff17fa2..0000000
--- a/java/jdbc/src/org/postgis/java2d/PGShapeGeometry.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * PGShapeGeometry.java
- * 
- * Allows PostGIS data to be read directly into a java2d shape
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: PGShapeGeometry.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis.java2d;
-
-import java.awt.Rectangle;
-import java.awt.Shape;
-import java.awt.geom.*;
-import java.sql.SQLException;
-
-import org.postgresql.util.PGobject;
-
-/**
- * PostGIS Java2D geometry implementation (read-only).
- * 
- * Supports PostGIS 1.x (lwgeom hexwkb).
- * 
- * As the java.awt.Shape methods currently are implemented by using a
- * java.awt.geom.GeneralPath object, they have the same semantics.
- * 
- * BUG/TODO: MultiPoints or Points in a Geometry Collection currently don't work
- * as expected, as some GeneralPath implementations throw away adjacent MoveTo
- * commands as an optimization (e. G. sun 1.5 and ibm 1.5). Points thus are
- * translated into MoveTo() followed by a closePath. This may change when we
- * implement our own path logics. We have to evaluate whether Graphics2D renders
- * a single MoveTo command as a single "brush tip", or we need the closePath()
- * command nevertheless to get any drawing. Maybe we need a LineTo() to the same
- * coordinages instead.
- * 
- * (Multi)LineStrings are translated into a sequence of a single MoveTo and
- * multiple LineTo vertices, and Polygon rings into a sequence of a single
- * MoveTo, multiple LineTo and a closePath command. To allow correct Polygon
- * filling, our PathIterators have GeneralPath.WIND_EVEN_ODD as winding rule.
- * 
- * @see java.awt.geom.GeneralPath
- * @see java.awt.Shape
- * @see org.postgresql.util.PGobject
- * 
- * @author Markus Schaber
- */
-
-public class PGShapeGeometry extends PGobject implements Shape {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    final static ShapeBinaryParser parser = new ShapeBinaryParser();
-
-    private final GeneralPath path;
-
-    private int srid;
-
-    /**
-     * Constructor called by JDBC drivers. call setValue afterwards to fill with
-     * Geometry data.
-     * 
-     */
-    public PGShapeGeometry() {
-        setType("geometry");
-        path = new GeneralPath(GeneralPath.WIND_EVEN_ODD);
-    }
-
-    /** Construct directly from a General Path */
-    public PGShapeGeometry(GeneralPath path, int srid) {
-        setType("geometry");
-        this.path = path;
-        this.srid = srid;
-    }
-
-    /** Reads the HexWKB representation */
-    public PGShapeGeometry(String value) throws SQLException {
-        this();
-        setValue(value);
-    }
-
-    /**
-     * Reads the HexWKB representation - to be called by the jdbc drivers. Be
-     * shure to call this only once and if you used the PGShapeGeometry()
-     * constructor without parameters. In all other cases, behaviour is
-     * undefined.
-     */
-    public void setValue(String value) throws SQLException {
-        srid = parser.parse(value, path);
-    }
-
-    public String toString() {
-        return "PGShapeGeometry " + path.toString();
-    }
-
-    /** We currently have read-only support, so this method returns null */
-    public String getValue() {
-        return null;
-    }
-
-    public boolean equals(Object obj) {
-        if (obj instanceof PGShapeGeometry)
-            return ((PGShapeGeometry) obj).path.equals(path);
-        return false;
-    }
-
-    /** Return the SRID or Geometry.UNKNOWN_SRID if none was available */
-    public int getSRID() {
-        return srid;
-    }
-
-    // following are the java2d Shape method implementations...
-    public boolean contains(double x, double y) {
-        return path.contains(x, y);
-    }
-
-    public boolean contains(double x, double y, double w, double h) {
-        return path.contains(x, y, w, h);
-    }
-
-    public boolean intersects(double x, double y, double w, double h) {
-        return path.intersects(x, y, w, h);
-    }
-
-    public Rectangle getBounds() {
-        return path.getBounds();
-    }
-
-    public boolean contains(Point2D p) {
-        return path.contains(p);
-    }
-
-    public Rectangle2D getBounds2D() {
-        return path.getBounds2D();
-    }
-
-    public boolean contains(Rectangle2D r) {
-        return path.contains(r);
-    }
-
-    public boolean intersects(Rectangle2D r) {
-        return path.intersects(r);
-    }
-
-    public PathIterator getPathIterator(AffineTransform at) {
-        return path.getPathIterator(at);
-    }
-
-    public PathIterator getPathIterator(AffineTransform at, double flatness) {
-        return path.getPathIterator(at, flatness);
-    }
-}
diff --git a/java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java b/java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java
deleted file mode 100644
index 762daf0..0000000
--- a/java/jdbc/src/org/postgis/java2d/ShapeBinaryParser.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * JtsBinaryParser.java
- * 
- * Binary Parser for JTS - relies on org.postgis V1.0.0+ package.
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: ShapeBinaryParser.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.java2d;
-
-import java.awt.geom.GeneralPath;
-
-import org.postgis.Geometry;
-import org.postgis.binary.ByteGetter;
-import org.postgis.binary.ValueGetter;
-import org.postgis.binary.ByteGetter.BinaryByteGetter;
-import org.postgis.binary.ByteGetter.StringByteGetter;
-
-/**
- * Parse binary representation of geometries. Currently, only text rep (hexed)
- * implementation is tested.
- * 
- * It should be easy to add char[] and CharSequence ByteGetter instances,
- * although the latter one is not compatible with older jdks.
- * 
- * I did not implement real unsigned 32-bit integers or emulate them with long,
- * as both java Arrays and Strings currently can have only 2^31-1 elements
- * (bytes), so we cannot even get or build Geometries with more than approx.
- * 2^28 coordinates (8 bytes each).
- * 
- * @author Markus Schaber, markus.schaber at logix-tt.com
- * 
- */
-public class ShapeBinaryParser {
-
-    /**
-     * Get the appropriate ValueGetter for my endianness
-     * 
-     * @param bytes The appropriate Byte Getter
-     * 
-     * @return the ValueGetter
-     */
-    public static ValueGetter valueGetterForEndian(ByteGetter bytes) {
-        if (bytes.get(0) == ValueGetter.XDR.NUMBER) { // XDR
-            return new ValueGetter.XDR(bytes);
-        } else if (bytes.get(0) == ValueGetter.NDR.NUMBER) {
-            return new ValueGetter.NDR(bytes);
-        } else {
-            throw new IllegalArgumentException("Unknown Endian type:" + bytes.get(0));
-        }
-    }
-
-    /**
-     * Parse a hex encoded geometry
-     * 
-     * Is synchronized to protect offset counter. (Unfortunately, Java does not
-     * have neither call by reference nor multiple return values.)
-     * 
-     * @return a potential SRID or Geometry.UNKNOWN_SRID if not present
-     */
-    public synchronized int parse(String value, GeneralPath path) {
-        StringByteGetter bytes = new ByteGetter.StringByteGetter(value);
-        return parseGeometry(valueGetterForEndian(bytes), path);
-    }
-
-    /**
-     * Parse a binary encoded geometry.
-     * 
-     * Is synchronized to protect offset counter. (Unfortunately, Java does not
-     * have neither call by reference nor multiple return values.)
-     * 
-     * @return a potential SRID or Geometry.UNKNOWN_SRID if not present
-     */
-    public synchronized int parse(byte[] value, GeneralPath path) {
-        BinaryByteGetter bytes = new ByteGetter.BinaryByteGetter(value);
-        return parseGeometry(valueGetterForEndian(bytes), path);
-    }
-
-    /**
-     * Parse a geometry starting at offset.
-     * 
-     * @param path
-     */
-    protected int parseGeometry(ValueGetter data, GeneralPath path) {
-        byte endian = data.getByte(); // skip and test endian flag
-        if (endian != data.endian) {
-            throw new IllegalArgumentException("Endian inconsistency!");
-        }
-        int typeword = data.getInt();
-
-        int realtype = typeword & 0x1FFFFFFF; // cut off high flag bits
-
-        boolean haveZ = (typeword & 0x80000000) != 0;
-        boolean haveM = (typeword & 0x40000000) != 0;
-        boolean haveS = (typeword & 0x20000000) != 0;
-
-        int srid = Geometry.UNKNOWN_SRID;
-
-        if (haveS) {
-            srid = Geometry.parseSRID(data.getInt());
-        }
-
-        switch (realtype) {
-            case org.postgis.Geometry.POINT :
-                parsePoint(data, haveZ, haveM, path);
-                break;
-            case org.postgis.Geometry.LINESTRING :
-                parseLineString(data, haveZ, haveM, path);
-                break;
-            case org.postgis.Geometry.POLYGON :
-                parsePolygon(data, haveZ, haveM, path);
-                break;
-            case org.postgis.Geometry.MULTIPOINT :
-                parseMultiPoint(data, path);
-                break;
-            case org.postgis.Geometry.MULTILINESTRING :
-                parseMultiLineString(data, path);
-                break;
-            case org.postgis.Geometry.MULTIPOLYGON :
-                parseMultiPolygon(data, path);
-                break;
-            case org.postgis.Geometry.GEOMETRYCOLLECTION :
-                parseCollection(data, path);
-                break;
-            default :
-                throw new IllegalArgumentException("Unknown Geometry Type!");
-        }
-        return srid;
-    }
-
-    private void parsePoint(ValueGetter data, boolean haveZ, boolean haveM, GeneralPath path) {
-        path.moveTo((float) data.getDouble(), (float) data.getDouble());
-        path.closePath();
-        skipZM(data, haveZ, haveM);
-    }
-
-    private void skipZM(ValueGetter data, boolean haveZ, boolean haveM) {
-        if (haveZ) { // skip Z value
-            data.getDouble();
-        }
-        if (haveM) { // skip M value
-            data.getDouble();
-        }
-    }
-
-    /** Parse an Array of "full" Geometries */
-    private void parseGeometryArray(ValueGetter data, int count, GeneralPath path) {
-        for (int i = 0; i < count; i++) {
-            parseGeometry(data, path);
-        }
-    }
-
-    /**
-     * Parse an Array of "slim" Points (without endianness and type, part of
-     * LinearRing and Linestring, but not MultiPoint!
-     * 
-     * @param haveZ
-     * @param haveM
-     */
-    private void parseCS(ValueGetter data, boolean haveZ, boolean haveM, GeneralPath path) {
-        int count = data.getInt();
-        if (count > 0) {
-            path.moveTo((float) data.getDouble(), (float) data.getDouble());
-            skipZM(data, haveZ, haveM);
-            for (int i = 1; i < count; i++) {
-                path.lineTo((float) data.getDouble(), (float) data.getDouble());
-                skipZM(data, haveZ, haveM);
-            }
-        }
-    }
-
-
-    private void parseMultiPoint(ValueGetter data, GeneralPath path) {
-        parseGeometryArray(data, data.getInt(), path);
-    }
-
-    private void parseLineString(ValueGetter data, boolean haveZ, boolean haveM, GeneralPath path) {
-        parseCS(data, haveZ, haveM, path);
-    }
-
-    private void parseLinearRing(ValueGetter data, boolean haveZ, boolean haveM, GeneralPath path) {
-        parseCS(data, haveZ, haveM, path);
-        path.closePath();
-    }
-
-    private void parsePolygon(ValueGetter data, boolean haveZ, boolean haveM, GeneralPath path) {
-        int holecount = data.getInt() - 1;
-        // parse shell
-        parseLinearRing(data, haveZ, haveM, path);
-        // parse inner rings
-        for (int i = 0; i < holecount; i++) {
-            parseLinearRing(data, haveZ, haveM, path);
-        }
-    }
-
-    private void parseMultiLineString(ValueGetter data, GeneralPath path) {
-        int count = data.getInt();
-        parseGeometryArray(data, count, path);
-    }
-
-    private void parseMultiPolygon(ValueGetter data, GeneralPath path) {
-        int count = data.getInt();
-        parseGeometryArray(data, count, path);
-    }
-
-    private void parseCollection(ValueGetter data, GeneralPath path) {
-        int count = data.getInt();
-        parseGeometryArray(data, count, path);
-    }
-}
diff --git a/java/jdbc/src/org/postgis/overview.html b/java/jdbc/src/org/postgis/overview.html
deleted file mode 100644
index 726a4b9..0000000
--- a/java/jdbc/src/org/postgis/overview.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<BODY>
-    <P>
-        The JDBC extensions provide Java objects corresponding to the internal PostGIS types. These objects can be used to write Java clients which query the PostGIS database and draw or do calculations on the GIS data in PostGIS.
-    </P>
-    <ul>
-        <li>Enter the java/jdbc sub-directory of the PostGIS distribution.</li>
-        <li>Run the mvn clean install command. postgis.jar file will be deployed on your local maven repository</li>
-    </ul>
-    <P>
-        The JDBC extensions require a PostgreSQL JDBC driver to be present in the current CLASSPATH during the build process.
-    </P>
-    <P>
-        PostgreSQL JDBC drivers can be downloaded from http://jdbc.postgresql.org or Sonatype Central Maven repository.
-    </P>
-</BODY>
diff --git a/java/jdbc/src/org/postgis/version.properties b/java/jdbc/src/org/postgis/version.properties
deleted file mode 100644
index 3528898..0000000
--- a/java/jdbc/src/org/postgis/version.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-REL_MAJOR_VERSION=2
-REL_MINOR_VERSION=0
-REL_MICRO_VERSION=0
\ No newline at end of file
diff --git a/java/jdbc/src/org/postgresql/driverconfig.properties b/java/jdbc/src/org/postgresql/driverconfig.properties
deleted file mode 100644
index 1e744c1..0000000
--- a/java/jdbc/src/org/postgresql/driverconfig.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# This property file is included in the postgis jar and autoregisters the
-# PostGIS datatypes within the jdbc driver.
-#
-
-datatype.geometry=org.postgis.PGgeometry
-datatype.box3d=org.postgis.PGbox3d
-datatype.box2d=org.postgis.PGbox2d
diff --git a/java/jdbc/stubs/LICENSE b/java/jdbc/stubs/LICENSE
deleted file mode 100644
index d11155c..0000000
--- a/java/jdbc/stubs/LICENSE
+++ /dev/null
@@ -1,26 +0,0 @@
-Copyright (c) 1997-2005, PostgreSQL Global Development Group
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice,
-   this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-3. Neither the name of the PostgreSQL Global Development Group nor the names
-   of its contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/java/jdbc/stubs/org/postgresql/Connection.java b/java/jdbc/stubs/org/postgresql/Connection.java
deleted file mode 100644
index aeadab1..0000000
--- a/java/jdbc/stubs/org/postgresql/Connection.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*-------------------------------------------------------------------------
- * Derived from org.postgresql.PGConnection Source from jdbc8.0 as well as 
- * the pgjdbc 7.2 binary jar which both are licensed under BSD license.
- *
- * Copyright (c) 2003-2005, PostgreSQL Global Development Group
- * Copyright (c) 2005 Markus Schaber <markus.schaber at logix-tt.com>
- *
- * IDENTIFICATION
- *   $PostgreSQL: pgjdbc/org/postgresql/PGConnection.java,v 1.13 2005/01/17 09:51:40 jurka Exp $
- *
- *-------------------------------------------------------------------------
- */
-package org.postgresql;
-
-/**
- * Stub to compile postgis jdbc against
- */
-public abstract class Connection {
-    public abstract void addDataType(String type, String name);
-}
diff --git a/java/jdbc/stubs/org/postgresql/PGConnection.java b/java/jdbc/stubs/org/postgresql/PGConnection.java
deleted file mode 100644
index a8e2336..0000000
--- a/java/jdbc/stubs/org/postgresql/PGConnection.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*-------------------------------------------------------------------------
- * Derived from org.postgresql.PGConnection from jdbc8.0 which is licensed
- * under BSD license.
- *
- * Copyright (c) 2003-2005, PostgreSQL Global Development Group
- * Copyright (c) 2005 Markus Schaber <markus.schaber at logix-tt.com>
- *
- * IDENTIFICATION
- *   $PostgreSQL: pgjdbc/org/postgresql/PGConnection.java,v 1.13 2005/01/17 09:51:40 jurka Exp $
- *
- *-------------------------------------------------------------------------
- */
-package org.postgresql;
-
-import java.sql.SQLException;
-
-/**
- * Stub to compile postgis jdbc against
- */
-public interface PGConnection {
-    public void addDataType(String type, String name);
-
-    public void addDataType(String type, Class klass) throws SQLException;
-}
-
diff --git a/java/jdbc/todo.txt b/java/jdbc/todo.txt
deleted file mode 100644
index 7f07955..0000000
--- a/java/jdbc/todo.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Todo for PostGIS 1.0 compatible JDBC classes
-$Id: todo.txt 9324 2012-02-27 22:08:12Z pramsey $
-
-- even more Testing, especialy against different postgis, 
-  pgjdbc and postgresql releases.
-  
-- Use JUnit for testing (maven)
-
-- Unify the build of app java projects -> maven
-
-- Handling of length() - esp. with modifying the geometries
-
-- Handling of hashCode() - esp. with modifying the geometries
-
-- Test correctness of toString() and getValue() for compatibility reasons
-
-- See where the code can be cleaned and leaned.
-
-- Finish JTS support
-
-- Creating a sane extension interface for pgjdbc that allows binary
-  transfers and convince upstream to use it, then create support for it.
-
-- Possibly adding server side code to support plJava
-  http://gborg.postgresql.org/project/pljava/projdisplay.php
-
-- Rework the BinaryParser/BinaryWriter to work on SQLInput/SQLOutput 
-  instances, as well as reworking ValueGetter/ValueSetter to implment those interfaces.
diff --git a/java/jdbc_jtsparser/README b/java/jdbc_jtsparser/README
deleted file mode 100644
index 06ee3db..0000000
--- a/java/jdbc_jtsparser/README
+++ /dev/null
@@ -1,2 +0,0 @@
-#TODO Complete me
-As a first step build jdbc driver with 'mvn clean install' so that you have a local copy of latest postgis-jdbc.jar which this project has a dependency to.
diff --git a/java/jdbc_jtsparser/pom.xml b/java/jdbc_jtsparser/pom.xml
deleted file mode 100644
index 6695f4b..0000000
--- a/java/jdbc_jtsparser/pom.xml
+++ /dev/null
@@ -1,143 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<groupId>org.sonatype.oss</groupId>
-		<artifactId>oss-parent</artifactId>
-		<version>7</version>
-	</parent>
-
-
-	<groupId>org.postgis</groupId>
-	<artifactId>postgis-jdbc-jtsparser</artifactId>
-	<version>2.1.6</version>
-	<packaging>jar</packaging>
-	<name>Postgis JDBC Driver JTS Parser</name>
-	<url>http://postgis.net</url>
-	<description>Parser between JTS and PostGIS geometry formats.</description>
-
-	<licenses>
-		<license>
-			<name>GNU Lesser General Public License</name>
-			<url>http://www.gnu.org/licenses/lgpl-2.1.txt</url>
-			<distribution>repo</distribution>
-		</license>
-	</licenses>
-
-	<developers>
-		<developer>
-			<name>Postgis Development Team</name>
-		</developer>
-		<developer>
-			<name>María Arias de Reyna</name>
-			<email>delawen en gmail.com</email>
-		</developer>
-		<developer>
-			<name>Baris ERGUN</name>
-			<email>barisergun75 at gmail.com</email>
-		</developer>
-	</developers>
-	<contributors>
-		<contributor>
-			<name>Hakan Tandogan</name>
-			<email>hakan at gurkensalat.com</email>
-			<url>http://www.gurkensalat.com/</url>
-			<roles>
-				<role>Maven Packager</role>
-			</roles>
-		</contributor>
-		<contributor>
-			<name>Baris Ergun</name>
-			<email>barisergun75 at gmail.com</email>
-			<url>http://www.barisergun.com/</url>
-			<roles>
-				<role>Maven Packager</role>
-			</roles>
-		</contributor>
-	</contributors>
-	<mailingLists>
-		<mailingList>
-			<name>User List</name>
-			<subscribe>postgis-users-subscribe at lists.osgeo.org</subscribe>
-			<unsubscribe>postgis-users-unsubscribe at lists.osgeo.org</unsubscribe>
-			<post>postgis-users at lists.osgeo.org</post>
-			<archive>http://lists.osgeo.org/pipermail/postgis-users/</archive>
-		</mailingList>
-		<mailingList>
-			<name>Developer List</name>
-			<subscribe>postgis-devel-subscribe at lists.osgeo.org</subscribe>
-			<unsubscribe>postgis-devel-unsubscribe at lists.osgeo.org</unsubscribe>
-			<post>postgis-devel at lists.osgeo.org</post>
-			<archive>http://lists.osgeo.org/pipermail/postgis-devel/</archive>
-		</mailingList>
-	</mailingLists>
-
-	<issueManagement>
-		<system>Trac</system>
-		<url>http://trac.osgeo.org/postgis/</url>
-	</issueManagement>
-
-	<scm>
-		<url>http://trac.osgeo.org/postgis/browser/trunk</url>
-		<connection>scm:svn:http://svn.osgeo.org/postgis/trunk</connection>
-		<developerConnection>scm:svn:http://svn.osgeo.org/postgis/trunk</developerConnection>
-	</scm>
-
-	<build>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-source-plugin</artifactId>
-                    <version>2.2.1</version>
-                    <executions>
-                        <execution>
-                            <id>attach-sources</id>
-                            <goals>
-                                <goal>jar</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>2.9.1</version>
-                    <configuration>
-                         <overview>${basedir}/src/java/org/postgis/overview.html</overview>
-                    </configuration>
-                    <executions>
-                        <execution>
-                            <id>attach-javadocs</id>
-                            <goals>
-                                <goal>jar</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-            </plugins>
-	</build>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.postgis</groupId>
-			<artifactId>postgis-jdbc</artifactId>
-			<version>2.1.3</version>
-		</dependency>
-		<dependency>
-			<groupId>com.vividsolutions</groupId>
-			<artifactId>jts</artifactId>
-			<version>1.12</version>
-		</dependency>
-
-	</dependencies>
-
-	<distributionManagement>
-		<repository>
-			<id>sonatype-postgis-releases</id>
-			<name>Sonatype Postgis Releases Repo</name>
-			<url>http://oss.sonatype.org/content/repositories/postgis-releases</url>
-		</repository>
-	</distributionManagement>
-</project>
diff --git a/java/jdbc_jtsparser/src/main/java/examples/JtsTestParser.java b/java/jdbc_jtsparser/src/main/java/examples/JtsTestParser.java
deleted file mode 100644
index ab914e9..0000000
--- a/java/jdbc_jtsparser/src/main/java/examples/JtsTestParser.java
+++ /dev/null
@@ -1,593 +0,0 @@
-/*
- * JtsTestParser.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - example and test classes
- * 
- * (C) 2004 Paul Ramsey, pramsey at refractions.net
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.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.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: JtsTestParser.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package examples;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Types;
-
-import org.postgis.binary.ValueSetter;
-import org.postgis.jts.JtsBinaryParser;
-import org.postgis.jts.JtsBinaryWriter;
-import org.postgis.jts.JtsGeometry;
-import org.postgresql.util.PGtokenizer;
-
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.GeometryCollection;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.LinearRing;
-import com.vividsolutions.jts.geom.MultiLineString;
-import com.vividsolutions.jts.geom.MultiPoint;
-import com.vividsolutions.jts.geom.MultiPolygon;
-import com.vividsolutions.jts.geom.Point;
-import com.vividsolutions.jts.geom.Polygon;
-
-public class JtsTestParser {
-
-    public static String ALL = "ALL", ONLY10 = "ONLY10", EQUAL10 = "EQUAL10";
-
-    /**
-     * Our set of geometries to test.
-     */
-    public static final String[][] testset = new String[][] {
-            { ALL, // 2D
-                    "POINT(10 10)" },
-            { ALL, // 3D with 3rd coordinate set to 0
-                    "POINT(10 10 0)" },
-            { ALL, // 3D
-                    "POINT(10 10 20)" },
-            { ALL, "MULTIPOINT(11 12, 20 20)" },
-            { ALL, "MULTIPOINT(11 12 13, 20 20 20)" },
-            { ALL, "LINESTRING(10 10,20 20,50 50,34 34)" },
-            { ALL, "LINESTRING(10 10 20,20 20 20,50 50 50,34 34 34)" },
-            { ALL, "POLYGON((10 10,20 10,20 20,20 10,10 10),(5 5,5 6,6 6,6 5,5 5))" },
-            { ALL, "POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))" },
-            {
-                    ALL,
-                    "MULTIPOLYGON(((10 10,20 10,20 20,20 10,10 10),(5 5,5 6,6 6,6 5,5 5)),((10 10,20 10,20 20,20 10,10 10),(5 5,5 6,6 6,6 5,5 5)))" },
-            {
-                    ALL,
-                    "MULTIPOLYGON(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))" },
-            { ALL, "MULTILINESTRING((10 10,20 10,20 20,20 10,10 10),(5 5,5 6,6 6,6 5,5 5))" },
-            { ALL, "MULTILINESTRING((10 10 5,20 10 5,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))" },
-            { ALL, "GEOMETRYCOLLECTION(POINT(10 10),POINT(20 20))" },
-            { ALL, "GEOMETRYCOLLECTION(POINT(10 10 20),POINT(20 20 20))" },
-            {
-                    ALL,
-                    "GEOMETRYCOLLECTION(LINESTRING(10 10 20,20 20 20, 50 50 50, 34 34 34),LINESTRING(10 10 20,20 20 20, 50 50 50, 34 34 34))" },
-            {
-                    ALL,
-                    "GEOMETRYCOLLECTION(POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))" },
-            { ONLY10, // Cannot be parsed by 0.X servers
-                    "GEOMETRYCOLLECTION(MULTIPOINT(10 10 10, 20 20 20),MULTIPOINT(10 10 10, 20 20 20))" },
-            { EQUAL10, // PostGIs 0.X "flattens" this geometry, so it is not
-                    // equal after reparsing.
-                    "GEOMETRYCOLLECTION(MULTILINESTRING((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))" },
-            { EQUAL10,// PostGIs 0.X "flattens" this geometry, so it is not
-                        // equal
-                    // after reparsing.
-                    "GEOMETRYCOLLECTION(MULTIPOLYGON(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))),MULTIPOLYGON(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))))" },
-            {
-                    ALL,
-                    "GEOMETRYCOLLECTION(POINT(10 10 20),LINESTRING(10 10 20,20 20 20, 50 50 50, 34 34 34),POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))" },
-            { ONLY10, // Collections that contain both X and MultiX do not
-                        // work on
-                    // PostGIS 0.x
-                    "GEOMETRYCOLLECTION(POINT(10 10 20),MULTIPOINT(10 10 10, 20 20 20),LINESTRING(10 10 20,20 20 20, 50 50 50, 34 34 34),POLYGON((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),MULTIPOLYGON(((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)),((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0))),MULTILINESTRING((10 10 0,20 10 0,20 20 0,20 10 0,10 10 0),(5 5 0,5 6 0,6 6 0,6 5 0,5 5 0)))" },
-            { ALL,// new (correct) representation
-                    "GEOMETRYCOLLECTION EMPTY" },
-    // end
-    };
-
-    /** The srid we use for the srid tests */
-    public static final int SRID = 4326;
-
-    /** The string prefix we get for the srid tests */
-    public static final String SRIDPREFIX = "SRID=" + SRID + ";";
-
-    /** How much tests did fail? */
-    public static int failcount = 0;
-
-    private static JtsBinaryParser bp = new JtsBinaryParser();
-
-    private static final JtsBinaryWriter bw = new JtsBinaryWriter();
-
-    /** The actual test method */
-    public static void test(String WKT, Connection[] conns, String flags) throws SQLException {
-        System.out.println("Original:  " + WKT);
-        Geometry geom = JtsGeometry.geomFromString(WKT);
-        String parsed = geom.toString();
-        if (WKT.startsWith("SRID=")) {
-            parsed = "SRID="+geom.getSRID()+";"+parsed;
-        }
-        System.out.println("Parsed:    " + parsed);
-        Geometry regeom = JtsGeometry.geomFromString(parsed);
-        String reparsed = regeom.toString();
-        if (WKT.startsWith("SRID=")) {
-            reparsed = "SRID="+geom.getSRID()+";"+reparsed;
-        }
-        System.out.println("Re-Parsed: " + reparsed);
-        if (!geom.equalsExact(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else if (geom.getSRID() != regeom.getSRID()) {
-            System.out.println("--- Geometriy SRIDs are not equal!");
-            failcount++;
-        } else if (!reparsed.equals(parsed)) {
-            System.out.println("--- Text Reps are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        String hexNWKT = bw.writeHexed(geom, ValueSetter.NDR.NUMBER);
-        System.out.println("NDRHex:    " + hexNWKT);
-        regeom = JtsGeometry.geomFromString(hexNWKT);
-        System.out.println("ReNDRHex:  " + regeom.toString());
-        if (!geom.equalsExact(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        String hexXWKT = bw.writeHexed(geom, ValueSetter.XDR.NUMBER);
-        System.out.println("XDRHex:    " + hexXWKT);
-        regeom = JtsGeometry.geomFromString(hexXWKT);
-        System.out.println("ReXDRHex:  " + regeom.toString());
-        if (!geom.equalsExact(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        byte[] NWKT = bw.writeBinary(geom, ValueSetter.NDR.NUMBER);
-        regeom = bp.parse(NWKT);
-        System.out.println("NDR:       " + regeom.toString());
-        if (!geom.equalsExact(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        byte[] XWKT = bw.writeBinary(geom, ValueSetter.XDR.NUMBER);
-        regeom = bp.parse(XWKT);
-        System.out.println("XDR:       " + regeom.toString());
-        if (!geom.equalsExact(regeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        Geometry coordArrayGeom = rebuildCS(geom);
-        System.out.println("CoordArray:" + regeom.toString());
-        if (!geom.equalsExact(coordArrayGeom)) {
-            System.out.println("--- Geometries are not equal!");
-            failcount++;
-        } else {
-            System.out.println("Equals:    yes");
-        }
-
-        String coordArrayWKT = bw.writeHexed(coordArrayGeom, ValueSetter.NDR.NUMBER);
-        System.out.println("HexCArray: " + coordArrayWKT);
-        if (!coordArrayWKT.equals(hexNWKT)) {
-            System.out.println("--- CoordArray HexWKT is not equal: "+bp.parse(coordArrayWKT));
-            failcount++;
-        } else {
-            System.out.println("HexEquals: yes");
-        }
-
-        for (int i = 0; i < conns.length; i++) {
-            Connection connection = conns[i];
-            Statement statement = connection.createStatement();
-            int serverPostgisMajor = TestAutoregister.getPostgisMajor(statement);
-
-            if ((flags == ONLY10) && serverPostgisMajor < 1) {
-                System.out.println("PostGIS server too old, skipping test on connection " + i + ": "
-                        + connection.getCatalog());
-            } else {
-                System.out.println("Testing on connection " + i + ": " + connection.getCatalog());
-                try {
-                    Geometry sqlGeom = viaSQL(WKT, statement);
-                    System.out.println("SQLin    : " + sqlGeom.toString());
-                    if (!geom.equalsExact(sqlGeom)) {
-                        System.out.println("--- Geometries after SQL are not equal!");
-                        if (flags == EQUAL10 && serverPostgisMajor < 1) {
-                            System.out.println("--- This is expected with PostGIS " + serverPostgisMajor + ".X");
-                        } else {
-                            failcount++;
-                        }
-                    } else {
-                        System.out.println("Eq SQL in: yes");
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                try {
-                    Geometry sqlreGeom = viaSQL(parsed, statement);
-                    System.out.println("SQLout  :  " + sqlreGeom.toString());
-                    if (!geom.equalsExact(sqlreGeom)) {
-                        System.out.println("--- reparsed Geometries after SQL are not equal!");
-                        if (flags == EQUAL10 && serverPostgisMajor < 1) {
-                            System.out.println("--- This is expected with PostGIS " + serverPostgisMajor + ".X");
-                        } else {
-                            failcount++;
-                        }
-                    } else {
-                        System.out.println("Eq SQLout: yes");
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                try {
-                    Geometry sqlreGeom = viaPrepSQL(geom, connection);
-                    System.out.println("Prepared:  " + sqlreGeom.toString());
-                    if (!geom.equalsExact(sqlreGeom)) {
-                        System.out.println("--- reparsed Geometries after prepared StatementSQL are not equal!");
-                        if (flags == EQUAL10 && serverPostgisMajor < 1) {
-                            System.out.println("--- This is expected with PostGIS " + serverPostgisMajor + ".X");
-                        } else {
-                            failcount++;
-                        }
-                    } else {
-                        System.out.println("Eq Prep: yes");
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                // asEWKT() function is not present on PostGIS 0.X, and the test
-                // is pointless as 0.X uses EWKT as canonical rep so the same
-                // functionality was already tested above.
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = ewktViaSQL(WKT, statement);
-                        System.out.println("asEWKT   : " + sqlGeom.toString());
-                        if (!geom.equalsExact(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKT SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal   : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                // asEWKB() function is not present on PostGIS 0.X.
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = ewkbViaSQL(WKT, statement);
-                        System.out.println("asEWKB   : " + sqlGeom.toString());
-                        if (!geom.equalsExact(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                // HexEWKB parsing is not present on PostGIS 0.X.
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = viaSQL(hexNWKT, statement);
-                        System.out.println("hexNWKT:   " + sqlGeom.toString());
-                        if (!geom.equalsExact(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = viaSQL(hexXWKT, statement);
-                        System.out.println("hexXWKT:   " + sqlGeom.toString());
-                        if (!geom.equalsExact(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-                // Canonical binary input is not present before 1.0
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = binaryViaSQL(NWKT, connection);
-                        System.out.println("NWKT:      " + sqlGeom.toString());
-                        if (!geom.equalsExact(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-                try {
-                    if (serverPostgisMajor >= 1) {
-                        Geometry sqlGeom = binaryViaSQL(XWKT, connection);
-                        System.out.println("XWKT:      " + sqlGeom.toString());
-                        if (!geom.equalsExact(sqlGeom)) {
-                            System.out.println("--- Geometries after EWKB SQL are not equal!");
-                            failcount++;
-                        } else {
-                            System.out.println("equal    : yes");
-                        }
-                    }
-                } catch (SQLException e) {
-                    System.out.println("--- Server side error: " + e.toString());
-                    failcount++;
-                }
-
-            }
-            statement.close();
-        }
-        System.out.println("***");
-    }
-
-    // Rebuild given Geometry with a CoordinateArraySequence implementation. 
-    public static Geometry rebuildCS(Geometry geom) {        
-        if (geom instanceof Point) {
-            return rebuildCSPoint((Point)geom);
-        } else if (geom instanceof MultiPoint) {
-            return rebuildCSMP((MultiPoint)geom);
-        } else if (geom instanceof LineString) {
-            return rebuildCSLS((LineString)geom);
-        } else if (geom instanceof MultiLineString) {
-            return rebuildCSMLS((MultiLineString)geom);
-        } else if (geom instanceof Polygon) {
-            return rebuildCSP((Polygon)geom);
-        } else if (geom instanceof MultiPolygon) {
-            return rebuildCSMP((MultiPolygon)geom);
-        } else if (geom instanceof GeometryCollection) {
-            return rebuildCSGC((GeometryCollection)geom);
-        } else {
-            throw new AssertionError();
-        }
-    }
-
-    private static Geometry rebuildCSGC(GeometryCollection coll) {
-        Geometry[] geoms = new Geometry[coll.getNumGeometries()];
-        for (int i = 0; i < coll.getNumGeometries(); i++) {
-            geoms[i] = rebuildCS(coll.getGeometryN(i));
-        }
-        Geometry result = coll.getFactory().createGeometryCollection(geoms);
-        result.setSRID(coll.getSRID());
-        return result;
-    }
-
-    private static MultiPolygon rebuildCSMP(MultiPolygon multipoly) {
-        Polygon[] polygons = new Polygon[multipoly.getNumGeometries()];
-        for (int i=0; i < polygons.length; i++) {
-            polygons[i] = rebuildCSP((Polygon)multipoly.getGeometryN(i));
-        }
-        MultiPolygon result = multipoly.getFactory().createMultiPolygon(polygons);
-        result.setSRID(multipoly.getSRID());
-        return result;
-    }
-
-    private static Polygon rebuildCSP(Polygon polygon) {
-        LinearRing outer = rebuildLR(polygon.getExteriorRing());
-        LinearRing[] holes = new LinearRing[polygon.getNumInteriorRing()];
-        for (int i=0; i < holes.length; i++) {
-            holes[i] = rebuildLR(polygon.getInteriorRingN(i));
-        }
-        Polygon result = polygon.getFactory().createPolygon(outer, holes);
-        result.setSRID(polygon.getSRID());
-        return result;
-    }
-
-    private static LinearRing rebuildLR(LineString ring) {
-        LinearRing result = ring.getFactory().createLinearRing(ring.getCoordinates());
-        result.setSRID(ring.getSRID());
-        return result;
-    }
-
-    private static MultiLineString rebuildCSMLS(MultiLineString multiline) {
-        LineString[] polygons = new LineString[multiline.getNumGeometries()];
-        for (int i=0; i < polygons.length; i++) {
-            polygons[i] = rebuildCSLS((LineString)multiline.getGeometryN(i));
-        }
-        MultiLineString result = multiline.getFactory().createMultiLineString(polygons);
-        result.setSRID(multiline.getSRID());
-        return result;
-        
-    }
-
-    private static LineString rebuildCSLS(LineString line) {
-        LineString result = line.getFactory().createLineString(line.getCoordinates());
-        result.setSRID(line.getSRID());
-        return result; 
-    }
-
-    private static MultiPoint rebuildCSMP(MultiPoint mp) {
-        Point[] points = new Point[mp.getNumGeometries()];
-        for (int i=0; i < points.length; i++) {
-            points[i] = rebuildCSPoint((Point) mp.getGeometryN(i));
-        }
-        MultiPoint result = mp.getFactory().createMultiPoint(points);
-        result.setSRID(mp.getSRID());
-        return result;
-    }
-
-    private static Point rebuildCSPoint(Point point) {
-        Point result = point.getFactory().createPoint(point.getCoordinate());
-        result.setSRID(point.getSRID());
-        return result;       
-    }
-
-    /** Pass a geometry representation through the SQL server */
-    private static Geometry viaSQL(String rep, Statement stat) throws SQLException {
-        ResultSet rs = stat.executeQuery("SELECT geometry_in('" + rep + "')");
-        rs.next();
-        return ((JtsGeometry) rs.getObject(1)).getGeometry();
-    }
-
-    /**
-     * Pass a geometry representation through the SQL server via prepared
-     * statement
-     */
-    private static Geometry viaPrepSQL(Geometry geom, Connection conn) throws SQLException {
-        PreparedStatement prep = conn.prepareStatement("SELECT ?::geometry");
-        JtsGeometry wrapper = new JtsGeometry(geom);
-        prep.setObject(1, wrapper, Types.OTHER);
-        ResultSet rs = prep.executeQuery();
-        rs.next();
-        JtsGeometry resultwrapper = ((JtsGeometry) rs.getObject(1));
-        return resultwrapper.getGeometry();
-    }
-
-    /** Pass a geometry representation through the SQL server via EWKT */
-    private static Geometry ewktViaSQL(String rep, Statement stat) throws SQLException {
-        ResultSet rs = stat.executeQuery("SELECT asEWKT(geometry_in('" + rep + "'))");
-        rs.next();
-        String resrep = rs.getString(1);
-        return JtsGeometry.geomFromString(resrep);
-    }
-
-    /** Pass a geometry representation through the SQL server via EWKB */
-    private static Geometry ewkbViaSQL(String rep, Statement stat) throws SQLException {
-        ResultSet rs = stat.executeQuery("SELECT asEWKB(geometry_in('" + rep + "'))");
-        rs.next();
-        byte[] resrep = rs.getBytes(1);
-        return bp.parse(resrep);
-    }
-
-    /** Pass a EWKB geometry representation through the server */
-    private static Geometry binaryViaSQL(byte[] rep, Connection conn) throws SQLException {
-        PreparedStatement prep = conn.prepareStatement("SELECT ?::bytea::geometry");
-        prep.setBytes(1, rep);
-        ResultSet rs = prep.executeQuery();
-        rs.next();
-        JtsGeometry resultwrapper = ((JtsGeometry) rs.getObject(1));
-        return resultwrapper.getGeometry();
-    }
-
-    /**
-     * Connect to the databases
-     * 
-     * We use DriverWrapper here. For alternatives, see the DriverWrapper
-     * Javadoc
-     * 
-     * @param dbuser
-     * 
-     * @see org.postgis.DriverWrapper
-     * 
-     */
-    public static Connection connect(String url, String dbuser, String dbpass) throws SQLException {
-        Connection conn;
-        conn = DriverManager.getConnection(url, dbuser, dbpass);
-        return conn;
-    }
-
-    public static void loadDrivers() throws ClassNotFoundException {
-        Class.forName("org.postgis.jts.JtsWrapper");
-    }
-
-    /** Our apps entry point */
-    public static void main(String[] args) throws SQLException, ClassNotFoundException {
-        loadDrivers();
-
-        PGtokenizer dburls;
-        String dbuser = null;
-        String dbpass = null;
-
-        if (args.length == 1 && args[0].equalsIgnoreCase("offline")) {
-            System.out.println("Performing only offline tests");
-            dburls = new PGtokenizer("", ';');
-        } else if (args.length == 3) {
-            System.out.println("Performing offline and online tests");
-            dburls = new PGtokenizer(args[0], ';');
-
-            dbuser = args[1];
-            dbpass = args[2];
-        } else {
-            System.err.println("Usage: java examples/TestParser dburls user pass [tablename]");
-            System.err.println("   or: java examples/TestParser offline");
-            System.err.println();
-            System.err.println("dburls has one or more jdbc urls separated by ; in the following format");
-            System.err.println("jdbc:postgresql://HOST:PORT/DATABASENAME");
-            System.err.println("tablename is 'jdbc_test' by default.");
-            System.exit(1);
-            // Signal the compiler that code flow ends here.
-            return;
-        }
-
-        Connection[] conns;
-        conns = new Connection[dburls.getSize()];
-        for (int i = 0; i < dburls.getSize(); i++) {
-            System.out.println("Creating JDBC connection to " + dburls.getToken(i));
-            conns[i] = connect(dburls.getToken(i), dbuser, dbpass);
-        }
-
-        System.out.println("Performing tests...");
-        System.out.println("***");
-
-        for (int i = 0; i < testset.length; i++) {
-            test(testset[i][1], conns, testset[i][0]);
-            test(SRIDPREFIX + testset[i][1], conns, testset[i][0]);
-        }
-
-        System.out.print("cleaning up...");
-        for (int i = 0; i < conns.length; i++) {
-            conns[i].close();
-        }
-
-        System.out.println("Finished, " + failcount + " tests failed!");
-        System.err.println("Finished, " + failcount + " tests failed!");
-        System.exit(failcount);
-    }
-}
diff --git a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JTSShape.java b/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JTSShape.java
deleted file mode 100644
index 5f34991..0000000
--- a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JTSShape.java
+++ /dev/null
@@ -1,279 +0,0 @@
-package org.postgis.jts;
-
-import java.awt.Rectangle;
-import java.awt.Shape;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.PathIterator;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.CoordinateSequence;
-import com.vividsolutions.jts.geom.Envelope;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.GeometryCollection;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.LinearRing;
-import com.vividsolutions.jts.geom.Point;
-import com.vividsolutions.jts.geom.Polygon;
-import com.vividsolutions.jts.geom.impl.PackedCoordinateSequence;
-
-public class JTSShape implements Shape {
-    static GeometryFactory fac = new GeometryFactory();
-
-    Geometry geom;
-
-    final static LinearRing[] NOSHELLS = {};
-
-    public JTSShape(Geometry _geom) {
-        this.geom = _geom;
-    }
-    
-    public JTSShape(JtsGeometry _geom) {
-        this(_geom.getGeometry());
-    }
-    
-    public boolean contains(Point2D p) {
-        return contains(p.getX(), p.getY());
-    }
-
-    public boolean contains(double x, double y) {
-        Coordinate c = new Coordinate(x, y);
-        Point p = fac.createPoint(c);
-        return geom.contains(p);
-    }
-
-    public boolean contains(Rectangle2D r) {
-        return contains(r.getMinX(), r.getMinY(), r.getWidth(), r.getHeight());
-    }
-
-    public boolean contains(double x, double y, double w, double h) {
-        Polygon p = createRect(x, y, w, h);
-        return geom.contains(p);
-    }
-
-    protected Polygon createRect(double x, double y, double w, double h) {
-        double[] arr = { x, y, x + w, y, x + w, y + h, x, y + h, x, y };
-        PackedCoordinateSequence shell = new PackedCoordinateSequence.Double(arr, 2);
-        Polygon p = fac.createPolygon(fac.createLinearRing(shell), NOSHELLS);
-        return p;
-    }
-
-    public Rectangle2D getBounds2D() {
-        Envelope env = geom.getEnvelopeInternal();
-        return new Rectangle2D.Double(env.getMinX(), env.getMaxX(), env.getWidth(), env.getHeight());
-    }
-
-    public Rectangle getBounds() {
-        // We deal simple code for efficiency here, the getBounds() rounding
-        // rules are ugly...
-        return getBounds2D().getBounds();
-    }
-
-    public PathIterator getPathIterator(AffineTransform at) {
-        return getPathIterator(geom, at);
-    }
-
-    public PathIterator getPathIterator(AffineTransform at, double flatness) {
-        // we don't have much work here, as we only have linear segments, no
-        // "flattening" necessary.
-        return getPathIterator(at);
-    }
-
-    public boolean intersects(Rectangle2D r) {
-        return intersects(r.getMinX(), r.getMinY(), r.getWidth(), r.getHeight());
-    }
-
-    public boolean intersects(double x, double y, double w, double h) {
-        Polygon p = createRect(x, y, w, h);
-        return geom.intersects(p);
-    }
-
-    public static GeometryPathIterator getPathIterator(Geometry geometry, AffineTransform _at) {
-        if (geometry instanceof Point) {
-            return new PointPathIterator((Point) geometry, _at);
-        } else if (geometry instanceof LineString) {
-            return new LineStringPathIterator((LineString) geometry, _at);
-        } else if (geometry instanceof Polygon) {
-            return new PolygonPathIterator((Polygon) geometry, _at);
-        } else {
-            return new GeometryCollectionPathIterator((GeometryCollection) geometry, _at);
-        }
-    }
-
-    public static abstract class GeometryPathIterator implements PathIterator {
-
-        protected final AffineTransform at;
-        protected int index=0;
-
-        GeometryPathIterator(AffineTransform _at) {
-            this.at = _at;
-        }
-
-        public final int getWindingRule() {
-            return PathIterator.WIND_EVEN_ODD;
-        }
-
-        public void next() {
-            index++;
-        }
-    }
-    
-    public static class PointPathIterator extends GeometryPathIterator {
-        final Point p;
-
-        public PointPathIterator(Point _p, AffineTransform _at) {
-            super(_at);
-            p = _p;
-        }
-
-        public int currentSegment(float[] coords) {
-            switch (index) {
-            case 0:
-                coords[0] = (float) p.getX();
-                coords[1] = (float) p.getY();
-                at.transform(coords, 0, coords, 0, 1);
-                return PathIterator.SEG_MOVETO;
-            case 1:
-                return PathIterator.SEG_CLOSE;
-            default:
-                throw new IllegalStateException();
-            }
-        }
-
-        public int currentSegment(double[] coords) {
-            switch (index) {
-            case 0:
-                coords[0] = p.getX();
-                coords[1] = p.getY();
-                at.transform(coords, 0, coords, 0, 1);
-                return PathIterator.SEG_MOVETO;
-            case 1:
-                return PathIterator.SEG_CLOSE;
-            default:
-                throw new IllegalStateException();
-            }
-        }
-
-        public boolean isDone() {
-            return index > 1;
-        }
-    }
-
-    public static class LineStringPathIterator extends GeometryPathIterator {
-        CoordinateSequence cs;
-
-        final boolean isRing;
-
-        public LineStringPathIterator(LineString ls, AffineTransform _at) {
-            super(_at);
-            cs = ls.getCoordinateSequence();
-            isRing = ls instanceof LinearRing;
-        }
-
-        /** only to be called from PolygonPathIterator subclass */
-        protected void reInit(CoordinateSequence _cs) {
-            cs = _cs;
-            index=0;
-        }
-        
-        public int currentSegment(float[] coords) {
-            if (index == 0) {
-                coords[0] = (float) cs.getOrdinate(index, 0);
-                coords[1] = (float) cs.getOrdinate(index, 1);
-                at.transform(coords, 0, coords, 0, 1);
-                return PathIterator.SEG_MOVETO;
-            } else if (index < cs.size()) {
-                coords[0] = (float) cs.getOrdinate(index, 0);
-                coords[1] = (float) cs.getOrdinate(index, 1);
-                at.transform(coords, 0, coords, 0, 1);
-                return PathIterator.SEG_LINETO;
-            } else if (isRing && index == cs.size()) {
-                return PathIterator.SEG_CLOSE;
-            } else {
-                throw new IllegalStateException();
-            }
-        }
-
-        public int currentSegment(double[] coords) {
-            if (index == 0) {
-                coords[0] = cs.getOrdinate(index, 0);
-                coords[1] = cs.getOrdinate(index, 1);
-                at.transform(coords, 0, coords, 0, 1);
-                return PathIterator.SEG_MOVETO;
-            } else if (index < cs.size()) {
-                coords[0] = cs.getOrdinate(index, 0);
-                coords[1] = cs.getOrdinate(index, 1);
-                at.transform(coords, 0, coords, 0, 1);
-                return PathIterator.SEG_LINETO;
-            } else if (isRing && index == cs.size()) {
-                return PathIterator.SEG_CLOSE;
-            } else {
-                throw new IllegalStateException();
-            }
-        }
-
-        public boolean isDone() {
-            return isRing ? index > cs.size() : index >= cs.size();
-        }
-    }
-    
-    public static class PolygonPathIterator extends LineStringPathIterator {
-        final Polygon pg;
-        int outerindex=-1;
-        
-        public PolygonPathIterator(Polygon _pg, AffineTransform _at) {
-            super(_pg.getExteriorRing() ,_at);
-            pg=_pg;
-            index = -1;
-        }
-
-        public boolean isDone() {
-            return outerindex >= pg.getNumInteriorRing();
-        }
-        
-        public void next() {
-            super.next();
-            if (super.isDone()) {
-                outerindex++;
-                if (outerindex < pg.getNumInteriorRing()) {
-                    super.reInit(pg.getInteriorRingN(outerindex).getCoordinateSequence());
-                }
-            }
-        }
-    }
-
-    public static class GeometryCollectionPathIterator extends GeometryPathIterator {
-        final GeometryCollection coll;
-        GeometryPathIterator current;
-
-        public GeometryCollectionPathIterator(GeometryCollection _coll, AffineTransform _at) {
-            super(_at);
-            coll = _coll;
-            current = getPathIterator(coll.getGeometryN(index), _at);
-        }
-
-        public boolean isDone() {
-            return index > coll.getNumGeometries();
-        }
-        
-        public void next() {
-            current.next();
-            if (current.isDone()) {
-                index++;
-                if (index < coll.getNumGeometries()) {
-                    current = getPathIterator(coll.getGeometryN(index), at);
-                }
-            }
-        }
-
-        public int currentSegment(float[] coords) {
-            return current.currentSegment(coords);
-        }
-
-        public int currentSegment(double[] coords) {
-            return current.currentSegment(coords);
-        }
-    }
-}
diff --git a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryParser.java b/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryParser.java
deleted file mode 100644
index bcdaea8..0000000
--- a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryParser.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * JtsBinaryParser.java
- * 
- * Binary Parser for JTS - relies on org.postgis V1.0.0+ package.
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: JtsBinaryParser.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.jts;
-
-import org.postgis.binary.ByteGetter;
-import org.postgis.binary.ValueGetter;
-import org.postgis.binary.ByteGetter.BinaryByteGetter;
-import org.postgis.binary.ByteGetter.StringByteGetter;
-
-import com.vividsolutions.jts.geom.*;
-import com.vividsolutions.jts.geom.impl.PackedCoordinateSequence;
-
-/**
- * Parse binary representation of geometries. Currently, only text rep (hexed)
- * implementation is tested.
- * 
- * It should be easy to add char[] and CharSequence ByteGetter instances,
- * although the latter one is not compatible with older jdks.
- * 
- * I did not implement real unsigned 32-bit integers or emulate them with long,
- * as both java Arrays and Strings currently can have only 2^31-1 elements
- * (bytes), so we cannot even get or build Geometries with more than approx.
- * 2^28 coordinates (8 bytes each).
- * 
- * @author Markus Schaber, markus.schaber at logix-tt.com
- * 
- */
-public class JtsBinaryParser {
-
-    /**
-     * Get the appropriate ValueGetter for my endianness
-     * 
-     * @param bytes
-     *            The appropriate Byte Getter
-     * 
-     * @return the ValueGetter
-     */
-    public static ValueGetter valueGetterForEndian(ByteGetter bytes) {
-        if (bytes.get(0) == ValueGetter.XDR.NUMBER) { // XDR
-            return new ValueGetter.XDR(bytes);
-        } else if (bytes.get(0) == ValueGetter.NDR.NUMBER) {
-            return new ValueGetter.NDR(bytes);
-        } else {
-            throw new IllegalArgumentException("Unknown Endian type:" + bytes.get(0));
-        }
-    }
-
-    /**
-     * Parse a hex encoded geometry
-     */
-    public Geometry parse(String value) {
-        StringByteGetter bytes = new ByteGetter.StringByteGetter(value);
-        return parseGeometry(valueGetterForEndian(bytes));
-    }
-
-    /**
-     * Parse a binary encoded geometry.
-     */
-    public Geometry parse(byte[] value) {
-        BinaryByteGetter bytes = new ByteGetter.BinaryByteGetter(value);
-        return parseGeometry(valueGetterForEndian(bytes));
-    }
-
-    /** Parse a geometry starting at offset. */
-    protected Geometry parseGeometry(ValueGetter data) {
-        return parseGeometry(data, 0, false);
-    }
-
-    /** Parse with a known geometry factory */
-    protected Geometry parseGeometry(ValueGetter data, int srid, boolean inheritSrid) {
-        byte endian = data.getByte(); // skip and test endian flag
-        if (endian != data.endian) {
-            throw new IllegalArgumentException("Endian inconsistency!");
-        }
-        int typeword = data.getInt();
-
-        int realtype = typeword & 0x1FFFFFFF; // cut off high flag bits
-
-        boolean haveZ = (typeword & 0x80000000) != 0;
-        boolean haveM = (typeword & 0x40000000) != 0;
-        boolean haveS = (typeword & 0x20000000) != 0;
-
-        if (haveS) {
-            int newsrid = org.postgis.Geometry.parseSRID(data.getInt());
-            if (inheritSrid && newsrid != srid) {
-                throw new IllegalArgumentException("Inconsistent srids in complex geometry: " + srid + ", " + newsrid);
-            } else {
-                srid = newsrid;
-            }
-        } else if (!inheritSrid) {
-            srid = org.postgis.Geometry.UNKNOWN_SRID;
-        }
-       
-        Geometry result;
-        switch (realtype) {
-        case org.postgis.Geometry.POINT:
-            result = parsePoint(data, haveZ, haveM);
-            break;
-        case org.postgis.Geometry.LINESTRING:
-            result = parseLineString(data, haveZ, haveM);
-            break;
-        case org.postgis.Geometry.POLYGON:
-            result = parsePolygon(data, haveZ, haveM, srid);
-            break;
-        case org.postgis.Geometry.MULTIPOINT:
-            result = parseMultiPoint(data, srid);
-            break;
-        case org.postgis.Geometry.MULTILINESTRING:
-            result = parseMultiLineString(data, srid);
-            break;
-        case org.postgis.Geometry.MULTIPOLYGON:
-            result = parseMultiPolygon(data, srid);
-            break;
-        case org.postgis.Geometry.GEOMETRYCOLLECTION:
-            result = parseCollection(data, srid);
-            break;
-        default:
-            throw new IllegalArgumentException("Unknown Geometry Type!");
-        }
-        
-        result.setSRID(srid);
-        
-        return result;
-    }
-
-    private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM) {
-        double X = data.getDouble();
-        double Y = data.getDouble();
-        Point result;
-        if (haveZ) {
-            double Z = data.getDouble();
-            result = JtsGeometry.geofac.createPoint(new Coordinate(X, Y, Z));
-        } else {
-            result = JtsGeometry.geofac.createPoint(new Coordinate(X, Y));
-        }
-
-        if (haveM) { // skip M value
-            data.getDouble();
-        }
-        
-        return result;
-    }
-
-    /** Parse an Array of "full" Geometries */
-    private void parseGeometryArray(ValueGetter data, Geometry[] container, int srid) {
-        for (int i = 0; i < container.length; i++) {
-            container[i] = parseGeometry(data, srid, true);
-        }
-    }
-
-    /**
-     * Parse an Array of "slim" Points (without endianness and type, part of
-     * LinearRing and Linestring, but not MultiPoint!
-     * 
-     * @param haveZ
-     * @param haveM
-     */
-    private CoordinateSequence parseCS(ValueGetter data, boolean haveZ, boolean haveM) {
-        int count = data.getInt();
-        int dims = haveZ ? 3 : 2;
-        CoordinateSequence cs = new PackedCoordinateSequence.Double(count, dims);
-
-        for (int i = 0; i < count; i++) {
-            for (int d = 0; d < dims; d++) {
-                cs.setOrdinate(i, d, data.getDouble());
-            }
-            if (haveM) { // skip M value
-                data.getDouble();
-            }
-        }
-        return cs;
-    }
-
-    private MultiPoint parseMultiPoint(ValueGetter data, int srid) {
-        Point[] points = new Point[data.getInt()];
-        parseGeometryArray(data, points, srid);
-        return JtsGeometry.geofac.createMultiPoint(points);
-    }
-
-    private LineString parseLineString(ValueGetter data, boolean haveZ, boolean haveM) {
-        return JtsGeometry.geofac.createLineString(parseCS(data, haveZ, haveM));
-    }
-
-    private LinearRing parseLinearRing(ValueGetter data, boolean haveZ, boolean haveM) {
-        return JtsGeometry.geofac.createLinearRing(parseCS(data, haveZ, haveM));
-    }
-
-    private Polygon parsePolygon(ValueGetter data, boolean haveZ, boolean haveM, int srid) {
-        int holecount = data.getInt() - 1;
-        LinearRing[] rings = new LinearRing[holecount];
-        LinearRing shell = parseLinearRing(data, haveZ, haveM);
-        shell.setSRID(srid);
-        for (int i = 0; i < holecount; i++) {
-            rings[i] = parseLinearRing(data, haveZ, haveM);
-            rings[i].setSRID(srid);
-        }
-        return JtsGeometry.geofac.createPolygon(shell, rings);
-    }
-
-    private MultiLineString parseMultiLineString(ValueGetter data, int srid) {
-        int count = data.getInt();
-        LineString[] strings = new LineString[count];
-        parseGeometryArray(data, strings, srid);
-        return JtsGeometry.geofac.createMultiLineString(strings);
-    }
-
-    private MultiPolygon parseMultiPolygon(ValueGetter data, int srid) {
-        int count = data.getInt();
-        Polygon[] polys = new Polygon[count];
-        parseGeometryArray(data, polys, srid);
-        return JtsGeometry.geofac.createMultiPolygon(polys);
-    }
-
-    private GeometryCollection parseCollection(ValueGetter data, int srid) {
-        int count = data.getInt();
-        Geometry[] geoms = new Geometry[count];
-        parseGeometryArray(data, geoms, srid);
-        return JtsGeometry.geofac.createGeometryCollection(geoms);
-    }
-}
diff --git a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryWriter.java b/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryWriter.java
deleted file mode 100644
index 9a786e7..0000000
--- a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsBinaryWriter.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*
- * JtsBinaryWriter.java
- * 
- * PostGIS extension for PostgreSQL JDBC driver - Binary Writer
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: JtsBinaryWriter.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-package org.postgis.jts;
-
-import com.vividsolutions.jts.geom.CoordinateSequence;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.GeometryCollection;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.MultiLineString;
-import com.vividsolutions.jts.geom.MultiPoint;
-import com.vividsolutions.jts.geom.MultiPolygon;
-import com.vividsolutions.jts.geom.Point;
-import com.vividsolutions.jts.geom.Polygon;
-
-import org.postgis.binary.ByteSetter;
-import org.postgis.binary.ValueSetter;
-
-/**
- * Create binary representation of geometries. Currently, only text rep (hexed)
- * implementation is tested. Supports only 2 dimensional geometries.
- * 
- * It should be easy to add char[] and CharSequence ByteGetter instances,
- * although the latter one is not compatible with older jdks.
- * 
- * I did not implement real unsigned 32-bit integers or emulate them with long,
- * as both java Arrays and Strings currently can have only 2^31-1 elements
- * (bytes), so we cannot even get or build Geometries with more than approx.
- * 2^28 coordinates (8 bytes each).
- * 
- * @author markus.schaber at logi-track.com
- * 
- */
-public class JtsBinaryWriter {
-
-    /**
-     * Get the appropriate ValueGetter for my endianness
-     * 
-     * @param bytes
-     *            The appropriate Byte Getter
-     * 
-     * @return the ValueGetter
-     */
-    public static ValueSetter valueSetterForEndian(ByteSetter bytes, byte endian) {
-        if (endian == ValueSetter.XDR.NUMBER) { // XDR
-            return new ValueSetter.XDR(bytes);
-        } else if (endian == ValueSetter.NDR.NUMBER) {
-            return new ValueSetter.NDR(bytes);
-        } else {
-            throw new IllegalArgumentException("Unknown Endian type:" + endian);
-        }
-    }
-
-    /**
-     * Write a hex encoded geometry
-     * 
-     * Currently, geometries with more than 2 dimensions and measures are not
-     * cleanly supported, but SRID is honored.
-     */
-    public String writeHexed(Geometry geom, byte REP) {
-        int length = estimateBytes(geom);
-        ByteSetter.StringByteSetter bytes = new ByteSetter.StringByteSetter(length);
-        writeGeometry(geom, valueSetterForEndian(bytes, REP));
-        return bytes.result();
-    }
-
-    public String writeHexed(Geometry geom) {
-        return writeHexed(geom, ValueSetter.NDR.NUMBER);
-    }
-
-    /**
-     * Write a binary encoded geometry.
-     * 
-     * Currently, geometries with more than 2 dimensions and measures are not
-     * cleanly supported, but SRID is honored.
-     */
-    public byte[] writeBinary(Geometry geom, byte REP) {
-        int length = estimateBytes(geom);
-        ByteSetter.BinaryByteSetter bytes = new ByteSetter.BinaryByteSetter(length);
-        writeGeometry(geom, valueSetterForEndian(bytes, REP));
-        return bytes.result();
-    }
-
-    public byte[] writeBinary(Geometry geom) {
-        return writeBinary(geom, ValueSetter.NDR.NUMBER);
-    }
-
-    /** Parse a geometry starting at offset. */
-    protected void writeGeometry(Geometry geom, ValueSetter dest) {
-        final int dimension;
-        if (geom == null) {
-            throw new NullPointerException();
-        } else if (geom.isEmpty()) {
-            // don't set any flag bits
-            dimension = 0;
-        } else {
-            dimension = getCoordDim(geom);
-            if (dimension < 2 || dimension > 4) {
-                throw new IllegalArgumentException("Unsupported geometry dimensionality: " + dimension);
-            }
-        }
-        // write endian flag
-        dest.setByte(dest.endian);
-
-        // write typeword
-        final int plaintype = getWKBType(geom);
-        int typeword = plaintype;
-        if (dimension == 3 || dimension == 4) {
-            typeword |= 0x80000000;
-        }
-        if (dimension == 4) {
-            typeword |= 0x40000000;
-        }
-
-        final boolean haveSrid = checkSrid(geom);
-        if (haveSrid) {
-            typeword |= 0x20000000;
-        }
-
-        dest.setInt(typeword);
-
-        if (haveSrid) {
-            dest.setInt(geom.getSRID());
-        }
-
-        switch (plaintype) {
-        case org.postgis.Geometry.POINT:
-            writePoint((Point) geom, dest);
-            break;
-        case org.postgis.Geometry.LINESTRING:
-            writeLineString((LineString) geom, dest);
-            break;
-        case org.postgis.Geometry.POLYGON:
-            writePolygon((Polygon) geom, dest);
-            break;
-        case org.postgis.Geometry.MULTIPOINT:
-            writeMultiPoint((MultiPoint) geom, dest);
-            break;
-        case org.postgis.Geometry.MULTILINESTRING:
-            writeMultiLineString((MultiLineString) geom, dest);
-            break;
-        case org.postgis.Geometry.MULTIPOLYGON:
-            writeMultiPolygon((MultiPolygon) geom, dest);
-            break;
-        case org.postgis.Geometry.GEOMETRYCOLLECTION:
-            writeCollection((GeometryCollection) geom, dest);
-            break;
-        default:
-            throw new IllegalArgumentException("Unknown Geometry Type: " + plaintype);
-        }
-    }
-
-    public static int getWKBType(Geometry geom) {
-        // We always write emtpy geometries as emtpy collections - for OpenGIS
-        // conformance
-        if (geom.isEmpty()) {
-            return org.postgis.Geometry.GEOMETRYCOLLECTION;
-        } else if (geom instanceof Point) {
-            return org.postgis.Geometry.POINT;
-        } else if (geom instanceof com.vividsolutions.jts.geom.LineString) {
-            return org.postgis.Geometry.LINESTRING;
-        } else if (geom instanceof com.vividsolutions.jts.geom.Polygon) {
-            return org.postgis.Geometry.POLYGON;
-        } else if (geom instanceof MultiPoint) {
-            return org.postgis.Geometry.MULTIPOINT;
-        } else if (geom instanceof MultiLineString) {
-            return org.postgis.Geometry.MULTILINESTRING;
-        } else if (geom instanceof com.vividsolutions.jts.geom.MultiPolygon) {
-            return org.postgis.Geometry.MULTIPOLYGON;
-        } if (geom instanceof com.vividsolutions.jts.geom.GeometryCollection) {
-            return org.postgis.Geometry.GEOMETRYCOLLECTION;
-        } else {
-            throw new IllegalArgumentException("Unknown Geometry Type: " + geom.getClass().getName());
-        }
-    }
-
-    /**
-     * Writes a "slim" Point (without endiannes, srid ant type, only the
-     * ordinates and measure. Used by writeGeometry.
-     */
-    private void writePoint(Point geom, ValueSetter dest) {
-        writeCoordinates(geom.getCoordinateSequence(), getCoordDim(geom), dest);
-    }
-
-    /**
-     * Write a Coordinatesequence, part of LinearRing and Linestring, but not
-     * MultiPoint!
-     */
-    private void writeCoordinates(CoordinateSequence seq, int dims, ValueSetter dest) {
-        for (int i = 0; i < seq.size(); i++) {
-            for (int d = 0; d < dims; d++) {
-                dest.setDouble(seq.getOrdinate(i, d));
-            }
-        }
-    }
-
-    private void writeMultiPoint(MultiPoint geom, ValueSetter dest) {
-        dest.setInt(geom.getNumPoints());
-        for (int i = 0; i < geom.getNumPoints(); i++) {
-            writeGeometry(geom.getGeometryN(i), dest);
-        }
-    }
-
-    private void writeLineString(LineString geom, ValueSetter dest) {
-        dest.setInt(geom.getNumPoints());
-        writeCoordinates(geom.getCoordinateSequence(), getCoordDim(geom), dest);
-    }
-
-    private void writePolygon(Polygon geom, ValueSetter dest) {
-        dest.setInt(geom.getNumInteriorRing() + 1);
-        writeLineString(geom.getExteriorRing(), dest);
-        for (int i = 0; i < geom.getNumInteriorRing(); i++) {
-            writeLineString(geom.getInteriorRingN(i), dest);
-        }
-    }
-
-    private void writeMultiLineString(MultiLineString geom, ValueSetter dest) {
-        writeGeometryArray(geom, dest);
-    }
-
-    private void writeMultiPolygon(MultiPolygon geom, ValueSetter dest) {
-        writeGeometryArray(geom, dest);
-    }
-
-    private void writeCollection(GeometryCollection geom, ValueSetter dest) {
-        writeGeometryArray(geom, dest);
-    }
-
-    private void writeGeometryArray(Geometry geom, ValueSetter dest) {
-        dest.setInt(geom.getNumGeometries());
-        for (int i = 0; i < geom.getNumGeometries(); i++) {
-            writeGeometry(geom.getGeometryN(i), dest);
-        }
-    }
-
-    /** Estimate how much bytes a geometry will need in WKB. */
-    protected int estimateBytes(Geometry geom) {
-        int result = 0;
-
-        // write endian flag
-        result += 1;
-
-        // write typeword
-        result += 4;
-
-        if (checkSrid(geom)) {
-            result += 4;
-        }
-
-        switch (getWKBType(geom)) {
-        case org.postgis.Geometry.POINT:
-            result += estimatePoint((Point) geom);
-            break;
-        case org.postgis.Geometry.LINESTRING:
-            result += estimateLineString((LineString) geom);
-            break;
-        case org.postgis.Geometry.POLYGON:
-            result += estimatePolygon((Polygon) geom);
-            break;
-        case org.postgis.Geometry.MULTIPOINT:
-            result += estimateMultiPoint((MultiPoint) geom);
-            break;
-        case org.postgis.Geometry.MULTILINESTRING:
-            result += estimateMultiLineString((MultiLineString) geom);
-            break;
-        case org.postgis.Geometry.MULTIPOLYGON:
-            result += estimateMultiPolygon((MultiPolygon) geom);
-            break;
-        case org.postgis.Geometry.GEOMETRYCOLLECTION:
-            result += estimateCollection((GeometryCollection) geom);
-            break;
-        default:
-            throw new IllegalArgumentException("Unknown Geometry Type: " + getWKBType(geom));
-        }
-        return result;
-    }
-
-    private boolean checkSrid(Geometry geom) {
-        final int srid = geom.getSRID();
-        return (srid > 0);
-    }
-
-    private int estimatePoint(Point geom) {
-        return 8 * getCoordDim(geom);
-    }
-
-    /** Write an Array of "full" Geometries */
-    private int estimateGeometryArray(Geometry container) {
-        int result = 0;
-        for (int i = 0; i < container.getNumGeometries(); i++) {
-            result += estimateBytes(container.getGeometryN(i));
-        }
-        return result;
-    }
-
-    /** Estimate an array of "fat" Points */
-    private int estimateMultiPoint(MultiPoint geom) {
-        // int size
-        int result = 4;
-        if (geom.getNumGeometries() > 0) {
-            // We can shortcut here, compared to estimateGeometryArray, as all
-            // subgeoms have the same fixed size
-            result += geom.getNumGeometries() * estimateBytes(geom.getGeometryN(0));
-        }
-        return result;
-    }
-
-    private int estimateLineString(LineString geom) {
-        if (geom == null || geom.getNumGeometries() == 0) {
-            return 0;
-        } else {
-            return 4 + 8 * getCoordSequenceDim(geom.getCoordinateSequence()) * geom.getCoordinateSequence().size();
-        }
-    }
-
-    private int estimatePolygon(Polygon geom) {
-        // int length
-        int result = 4;
-        result += estimateLineString(geom.getExteriorRing());
-        for (int i = 0; i < geom.getNumInteriorRing(); i++) {
-            result += estimateLineString(geom.getInteriorRingN(i));
-        }
-        return result;
-    }
-
-    private int estimateMultiLineString(MultiLineString geom) {
-        // 4-byte count + subgeometries
-        return 4 + estimateGeometryArray(geom);
-    }
-
-    private int estimateMultiPolygon(MultiPolygon geom) {
-        // 4-byte count + subgeometries
-        return 4 + estimateGeometryArray(geom);
-    }
-
-    private int estimateCollection(GeometryCollection geom) {
-        // 4-byte count + subgeometries
-        return 4 + estimateGeometryArray(geom);
-    }
-
-    public static final int getCoordDim(Geometry geom) {
-        if (geom.isEmpty()) {
-            return 0;
-        }
-        if (geom instanceof Point) {
-            return getCoordSequenceDim(((Point) geom).getCoordinateSequence());
-        } else if (geom instanceof LineString) {
-            return getCoordSequenceDim(((LineString) geom).getCoordinateSequence());
-        } else if (geom instanceof Polygon) {
-            return getCoordSequenceDim(((Polygon) geom).getExteriorRing().getCoordinateSequence());
-        } else {
-            return getCoordDim(geom.getGeometryN(0));
-        }
-    }
-
-    public static final int getCoordSequenceDim(CoordinateSequence coords) {
-        if (coords == null || coords.size() == 0)
-            return 0;
-        // JTS has a really strange way to handle dimensions!
-        // Just have a look at PackedCoordinateSequence and
-        // CoordinateArraySequence
-        int dimensions = coords.getDimension();
-        if (dimensions == 3) {
-            // CoordinateArraySequence will always return 3, so we have to
-            // check, if
-            // the third ordinate contains NaN, then the geom is actually
-            // 2-dimensional
-            return Double.isNaN(coords.getOrdinate(0, CoordinateSequence.Z)) ? 2 : 3;
-        } else {
-            return dimensions;
-        }
-    }
-}
diff --git a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGeometry.java b/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGeometry.java
deleted file mode 100644
index 2646e9d..0000000
--- a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGeometry.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * JtsGeometry.java
- * 
- * Wrapper for PostgreSQL JDBC driver to allow transparent reading and writing
- * of JTS geometries
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: JtsGeometry.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis.jts;
-
-import java.sql.SQLException;
-
-import org.postgresql.util.PGobject;
-
-import com.vividsolutions.jts.geom.CoordinateSequenceFactory;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.GeometryCollection;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.geom.Polygon;
-import com.vividsolutions.jts.geom.PrecisionModel;
-import com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory;
-import com.vividsolutions.jts.io.WKTReader;
-
-/**
- * JTS Geometry SQL wrapper. Supports PostGIS 1.x (lwgeom hexwkb) for writing
- * and both PostGIS 0.x (EWKT) and 1.x (lwgeom hexwkb) for reading.
- * 
- * @author Markus Schaber
- */
-
-public class JtsGeometry extends PGobject {
-    /* JDK 1.5 Serialization */
-    private static final long serialVersionUID = 0x100;
-
-    Geometry geom;
-
-    final static JtsBinaryParser bp = new JtsBinaryParser();
-
-    final static JtsBinaryWriter bw = new JtsBinaryWriter();
-
-    final static PrecisionModel prec = new PrecisionModel();
-
-    final static CoordinateSequenceFactory csfac = PackedCoordinateSequenceFactory.DOUBLE_FACTORY;
-
-    final static GeometryFactory geofac = new GeometryFactory(prec, 0, csfac);
-
-    static final WKTReader reader = new WKTReader(geofac);
-
-    /** Constructor called by JDBC drivers */
-    public JtsGeometry() {
-        setType("geometry");
-    }
-
-    public JtsGeometry(Geometry geom) {
-        this();
-        this.geom = geom;
-    }
-
-    public JtsGeometry(String value) throws SQLException {
-        this();
-        setValue(value);
-    }
-
-    public void setValue(String value) throws SQLException {
-        geom = geomFromString(value);
-    }
-
-    public static Geometry geomFromString(String value) throws SQLException {
-        try {
-            value = value.trim();
-            if (value.startsWith("00") || value.startsWith("01")) {
-                return bp.parse(value);
-            } else {
-                Geometry result;
-                // no srid := 0 in JTS world
-                int srid = 0;
-                // break up geometry into srid and wkt
-                if (value.startsWith("SRID=")) {
-                    String[] temp = value.split(";");
-                    value = temp[1].trim();
-                    srid = Integer.parseInt(temp[0].substring(5));
-                }
-
-                result = reader.read(value);
-                setSridRecurse(result, srid);
-                return result;
-            }
-        } catch (Exception E) {
-            E.printStackTrace();
-            throw new SQLException("Error parsing SQL data:" + E);
-        }
-    }
-
-    /** Recursively set a srid for the geometry and all subgeometries */
-    public static void setSridRecurse(final Geometry geom, final int srid) {
-        geom.setSRID(srid);
-        if (geom instanceof GeometryCollection) {
-            final int subcnt = geom.getNumGeometries();
-            for (int i = 0; i < subcnt; i++) {
-                setSridRecurse(geom.getGeometryN(i), srid);
-            }
-        } else if (geom instanceof Polygon) {
-            Polygon poly = (Polygon) geom;
-            poly.getExteriorRing().setSRID(srid);
-            final int subcnt = poly.getNumInteriorRing();
-            for (int i = 0; i < subcnt; i++) {
-                poly.getInteriorRingN(i).setSRID(srid);
-            }
-        }
-    }
-
-    public Geometry getGeometry() {
-        return geom;
-    }
-
-    public String toString() {
-        return geom.toString();
-    }
-
-    public String getValue() {
-        return bw.writeHexed(getGeometry());
-    }
-
-    public Object clone() {
-        JtsGeometry obj = new JtsGeometry(geom);
-        obj.setType(type);
-        return obj;
-    }
-
-    public boolean equals(Object obj) {
-        if ((obj != null) && (obj instanceof JtsGeometry)) {
-            Geometry other = ((JtsGeometry) obj).geom;
-            if (this.geom == other) { // handles identity as well as both
-                                        // ==null
-                return true;
-            } else if (this.geom != null && other != null) {
-                return other.equals(this.geom);
-            }
-        }
-        return false;
-    }
-}
diff --git a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGisWrapper.java b/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGisWrapper.java
deleted file mode 100644
index 7b5f9dd..0000000
--- a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsGisWrapper.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * JtsWrapper.java
- * 
- * Allows transparent usage of JTS Geometry classes via PostgreSQL JDBC driver
- * connected to a PostGIS enabled PostgreSQL server.
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: JtsGisWrapper.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis.jts;
-
-import org.postgresql.Driver;
-import org.postgresql.PGConnection;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Properties;
-
-/**
- * JtsGisWrapper
- * 
- * Wraps the PostGreSQL Driver to add the JTS/PostGIS Object Classes.
- * 
- * This method currently works with J2EE DataSource implementations, and with
- * DriverManager framework.
- * 
- * Simply replace the "jdbc:postgresql:" with a "jdbc:postgresql_JTS" in the
- * jdbc URL.
- * 
- * @author markus.schaber at logix-tt.com
- * 
- */
-public class JtsGisWrapper extends Driver {
-
-    private static final String POSTGRES_PROTOCOL = "jdbc:postgresql:";
-    private static final String POSTGIS_PROTOCOL = "jdbc:postgresql_JTS:";
-    public static final String REVISION = "$Revision: 9324 $";
-
-    public JtsGisWrapper() {
-        super();
-    }
-
-    static {
-        try {
-            // Analogy to org.postgresql.Driver
-            java.sql.DriverManager.registerDriver(new JtsGisWrapper());
-        } catch (SQLException e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * Creates a postgresql connection, and then adds the PostGIS data types to
-     * it calling addpgtypes()
-     * 
-     * @param url the URL of the database to connect to
-     * @param info a list of arbitrary tag/value pairs as connection arguments
-     * @return a connection to the URL or null if it isnt us
-     * @exception SQLException if a database access error occurs
-     * 
-     * @see java.sql.Driver#connect
-     * @see org.postgresql.Driver
-     */
-    public java.sql.Connection connect(String url, Properties info) throws SQLException {
-        url = mangleURL(url);
-        Connection result = super.connect(url, info);
-        addGISTypes((PGConnection) result);
-        return result;
-    }
-
-    /**
-     * adds the JTS/PostGIS Data types to a PG Connection.
-     * 
-     * @throws SQLException
-     */
-    public static void addGISTypes(PGConnection pgconn) throws SQLException {
-        pgconn.addDataType("geometry", org.postgis.jts.JtsGeometry.class);
-        pgconn.addDataType("box3d", org.postgis.PGbox3d.class);
-        pgconn.addDataType("box2d", org.postgis.PGbox2d.class);
-    }
-
-    /**
-     * Mangles the PostGIS URL to return the original PostGreSQL URL
-     */
-    public static String mangleURL(String url) throws SQLException {
-        if (url.startsWith(POSTGIS_PROTOCOL)) {
-            return POSTGRES_PROTOCOL + url.substring(POSTGIS_PROTOCOL.length());
-        } else {
-            throw new SQLException("Unknown protocol or subprotocol in url " + url);
-        }
-    }
-
-    /**
-     * Returns true if the driver thinks it can open a connection to the given
-     * URL. Typically, drivers will return true if they understand the
-     * subprotocol specified in the URL and false if they don't. Our protocols
-     * start with jdbc:postgresql_postGIS:
-     * 
-     * @see java.sql.Driver#acceptsURL
-     * @param url the URL of the driver
-     * @return true if this driver accepts the given URL
-     * @exception SQLException if a database-access error occurs (Dont know why
-     *                it would *shrug*)
-     */
-    public boolean acceptsURL(String url) throws SQLException {
-        try {
-            url = mangleURL(url);
-        } catch (SQLException e) {
-            return false;
-        }
-        return super.acceptsURL(url);
-    }
-
-    /**
-     * Gets the underlying drivers major version number
-     * 
-     * @return the drivers major version number
-     */
-
-    public int getMajorVersion() {
-        return super.getMajorVersion();
-    }
-
-    /**
-     * Get the underlying drivers minor version number
-     * 
-     * @return the drivers minor version number
-     */
-    public int getMinorVersion() {
-        return super.getMinorVersion();
-    }
-
-    /**
-     * Returns our own CVS version plus postgres Version
-     */
-    public static String getVersion() {
-        return "JtsGisWrapper " + REVISION + ", wrapping " + Driver.getVersion();
-    }
-}
diff --git a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsWrapper.java b/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsWrapper.java
deleted file mode 100644
index f81f3af..0000000
--- a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/JtsWrapper.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * JtsWrapper.java
- * 
- * Allows transparent usage of JTS Geometry classes via PostgreSQL JDBC driver
- * connected to a PostGIS enabled PostgreSQL server.
- * 
- * (C) 2005 Markus Schaber, markus.schaber at logix-tt.com
- * 
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 2.1 of the License.
- * 
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
- * http://www.gnu.org.
- * 
- * $Id: JtsWrapper.java 9324 2012-02-27 22:08:12Z pramsey $
- */
-
-package org.postgis.jts;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.postgresql.Driver;
-import org.postgresql.PGConnection;
-
-/**
- * DriverWrapper
- * 
- * Wraps the PostGreSQL Driver to add the JTS/PostGIS Object Classes.
- * 
- * This method currently works with J2EE DataSource implementations, and with
- * DriverManager framework.
- * 
- * Simply replace the "jdbc:postgresql:" with a "jdbc:postgres_jts:" in the jdbc
- * URL.
- * 
- * When using the drivermanager, you need to initialize JtsWrapper instead of
- * (or in addition to) org.postgresql.Driver. When using a J2EE DataSource
- * implementation, set the driver class property in the datasource config, the
- * following works for jboss:
- * 
- * <driver-class>org.postgis.jts.PostGisWrapper</driver-class>
- * 
- * @author markus.schaber at logix-tt.com
- * 
- */
-public class JtsWrapper extends Driver {
-
-    protected static final Logger logger = Logger.getLogger("org.postgis.DriverWrapper");
-
-    private static final String POSTGRES_PROTOCOL = "jdbc:postgresql:";
-    private static final String POSTGIS_PROTOCOL = "jdbc:postgres_jts:";
-    public static final String REVISION = "$Revision: 9324 $";
-
-    public JtsWrapper() {
-        super();
-    }
-
-    static {
-        try {
-            // Try to register ourself to the DriverManager
-            java.sql.DriverManager.registerDriver(new JtsWrapper());
-        } catch (SQLException e) {
-            logger.log(Level.WARNING, "Error registering PostgreSQL Jts Wrapper Driver", e);
-        }
-    }
-
-    /**
-     * Creates a postgresql connection, and then adds the JTS GIS data types to
-     * it calling addpgtypes()
-     * 
-     * @param url the URL of the database to connect to
-     * @param info a list of arbitrary tag/value pairs as connection arguments
-     * @return a connection to the URL or null if it isnt us
-     * @exception SQLException if a database access error occurs
-     * 
-     * @see java.sql.Driver#connect
-     * @see org.postgresql.Driver
-     */
-    public java.sql.Connection connect(String url, Properties info) throws SQLException {
-        url = mangleURL(url);
-        Connection result = super.connect(url, info);
-        addGISTypes((PGConnection) result);
-        return result;
-    }
-
-    /**
-     * adds the JTS/PostGIS Data types to a PG Connection.
-     * @throws SQLException 
-     */
-    public static void addGISTypes(PGConnection pgconn) throws SQLException {
-        pgconn.addDataType("geometry", org.postgis.jts.JtsGeometry.class);
-    }
-
-    /**
-     * Mangles the PostGIS URL to return the original PostGreSQL URL
-     */
-    public static String mangleURL(String url) throws SQLException {
-        if (url.startsWith(POSTGIS_PROTOCOL)) {
-            return POSTGRES_PROTOCOL + url.substring(POSTGIS_PROTOCOL.length());
-        } else {
-            throw new SQLException("Unknown protocol or subprotocol in url " + url);
-        }
-    }
-
-    /**
-     * Check whether the driver thinks he can handle the given URL.
-     * 
-     * @see java.sql.Driver#acceptsURL
-     * @param url the URL of the driver
-     * @return true if this driver accepts the given URL
-     * @exception SQLException Passed through from the underlying PostgreSQL
-     *                driver, should not happen.
-     */
-    public boolean acceptsURL(String url) throws SQLException {
-        try {
-            url = mangleURL(url);
-        } catch (SQLException e) {
-            return false;
-        }
-        return super.acceptsURL(url);
-    }
-
-    /**
-     * Gets the underlying drivers major version number
-     * 
-     * @return the drivers major version number
-     */
-
-    public int getMajorVersion() {
-        return super.getMajorVersion();
-    }
-
-    /**
-     * Get the underlying drivers minor version number
-     * 
-     * @return the drivers minor version number
-     */
-    public int getMinorVersion() {
-        return super.getMinorVersion();
-    }
-
-    /**
-     * Returns our own CVS version plus postgres Version
-     */
-    public static String getVersion() {
-        return "JtsGisWrapper " + REVISION + ", wrapping " + Driver.getVersion();
-    }
-}
diff --git a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/overview.html b/java/jdbc_jtsparser/src/main/java/org/postgis/jts/overview.html
deleted file mode 100644
index 559b8a9..0000000
--- a/java/jdbc_jtsparser/src/main/java/org/postgis/jts/overview.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<BODY>
-    <P>
-	Parser between JTS and PostGIS geometry formats.
-    </P>
-    <ul>
-        <li>Enter the java/jdbc_jtsparser sub-directory of the PostGIS distribution.</li>
-        <li>Run the mvn clean install command. postgis_jts_parser.jar file will be deployed on your local maven repository</li>
-    </ul>
-</BODY>
diff --git a/liblwgeom/Makefile.in b/liblwgeom/Makefile.in
index 7e7d4a0..e8f639a 100644
--- a/liblwgeom/Makefile.in
+++ b/liblwgeom/Makefile.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id: Makefile.in 
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
@@ -23,18 +22,20 @@ SHELL = @SHELL@
 INSTALL = $(SHELL) ../install-sh
 LIBTOOL = @LIBTOOL@
 
-SOVER = @POSTGIS_MAJOR_VERSION at .@POSTGIS_MINOR_VERSION at .@POSTGIS_MICRO_VERSION@
+IFACE_CURRENT = @LIBLWGEOM_CURRENT@
+IFACE_AGE = @LIBLWGEOM_AGE@
+IFACE_REV = @LIBLWGEOM_REV@
+
+VERSION_INFO = $(IFACE_CURRENT):$(IFACE_REV):$(IFACE_AGE)
 
 
 YACC=@YACC@
 LEX=@LEX@
 
-%c: %l
-	@echo "WARNING: Lexer not generated. Run 'make parse' to manually build lexer/parser."
-
 # Standalone LWGEOM objects
 SA_OBJS = \
 	stringbuffer.o \
+	bytebuffer.o \
 	measures.o \
 	measures3d.o \
 	box2d.o \
@@ -59,17 +60,19 @@ SA_OBJS = \
 	lwout_wkb.o \
 	lwin_geojson.o \
 	lwin_wkb.o \
+	lwin_twkb.o \
 	lwout_wkt.o \
+	lwout_twkb.o \
 	lwin_wkt_parse.o \
 	lwin_wkt_lex.o \
 	lwin_wkt.o \
+	lwin_encoded_polyline.o \
 	lwutil.o \
 	lwhomogenize.o \
 	lwalgorithm.o \
-	lwsegmentize.o \
+	lwstroke.o \
 	lwlinearreferencing.o \
 	lwprint.o \
-	vsprintf.o \
 	g_box.o \
 	g_serialized.o \
 	g_util.o \
@@ -81,15 +84,21 @@ SA_OBJS = \
 	lwout_geojson.o \
 	lwout_svg.o \
 	lwout_x3d.o \
+	lwout_encoded_polyline.o \
 	lwgeom_debug.o \
 	lwgeom_geos.o \
 	lwgeom_geos_clean.o \
+	lwgeom_geos_cluster.o \
 	lwgeom_geos_node.o \
 	lwgeom_geos_split.o \
-	lwgeom_transform.o
+	lwgeom_topo.o \
+	lwgeom_transform.o \
+	lwunionfind.o \
+	effectivearea.o \
+	varint.o
 
 NM_OBJS = \
-	lwspheroid.o 
+	lwspheroid.o
 
 ifeq (@SFCGAL@,sfcgal)
 CFLAGS += @SFCGAL_CPPFLAGS@
@@ -97,15 +106,33 @@ LDFLAGS += @SFCGAL_LDFLAGS@
 SA_OBJS += lwgeom_sfcgal.o
 endif
 
+LDFLAGS += -no-undefined
+
 LT_SA_OBJS = $(SA_OBJS:.o=.lo)
 LT_NM_OBJS = $(NM_OBJS:.o=.lo)
 LT_OBJS = $(LT_SA_OBJS) $(LT_NM_OBJS)
 
 SA_HEADERS = \
+	bytebuffer.h \
+	effectivearea.h \
 	liblwgeom.h \
 	liblwgeom_internal.h \
+	lwgeodetic.h \
+	lwgeodetic_tree.h \
+	liblwgeom_topo.h \
+	liblwgeom_topo_internal.h \
 	lwgeom_log.h \
-	lwgeom_geos.h
+	lwgeom_geos.h \
+	lwgeom_log.h \
+	lwgeom_sfcgal.h \
+	lwin_wkt.h \
+	lwin_wkt_parse.h \
+	lwout_twkb.h \
+	lwtree.h \
+	measures3d.h \
+	measures.h \
+	stringbuffer.h \
+	varint.h
 
 all: liblwgeom.la
 
@@ -115,30 +142,33 @@ uninstall: uninstall-liblwgeom
 
 install-liblwgeom: liblwgeom.la
 	$(LIBTOOL) --mode=install $(INSTALL) liblwgeom.la "$(DESTDIR)$(libdir)/liblwgeom.la"
-	$(INSTALL) liblwgeom.h "$(DESTDIR)$(includedir)/liblwgeom.h"
+	$(INSTALL) -m 0644 liblwgeom.h "$(DESTDIR)$(includedir)/liblwgeom.h"
+	$(INSTALL) -m 0644 liblwgeom_topo.h "$(DESTDIR)$(includedir)/liblwgeom_topo.h"
 
-uninstall-liblwgeom: 
+uninstall-liblwgeom:
 	$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/liblwgeom.la"
 	$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(includedir)/liblwgeom.h"
+	$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(includedir)/liblwgeom_topo.h"
 
 # Make all objects depend upon postgis_config.h and postgis_svn_revision.h
-$(LT_OBJS): ../postgis_config.h ../postgis_svn_revision.h
+$(LT_OBJS): ../postgis_config.h ../postgis_svn_revision.h $(SA_HEADERS)
 
 ../postgis_svn_revision.h:
 	$(MAKE) -C .. postgis_svn_revision.h
 
 #liblwgeom.a: $(SA_OBJS) $(NM_OBJS) $(SA_HEADERS)
-#ar rs liblwgeom.a $(SA_OBJS) $(NM_OBJS) 
+#ar rs liblwgeom.a $(SA_OBJS) $(NM_OBJS)
 
-liblwgeom.la: $(LT_OBJS) $(SA_HEADERS)
-	$(LIBTOOL) --tag=CC --mode=link $(CC) -rpath $(libdir) $(LT_OBJS) -release $(SOVER) $(LDFLAGS) -o $@
+liblwgeom.la: $(LT_OBJS)
+	$(LIBTOOL) --tag=CC --mode=link $(CC) -rpath $(libdir) $(LT_OBJS) \
+             -version-info $(VERSION_INFO) $(LDFLAGS) -o $@
 
 maintainer-clean: clean
 	rm -f lwin_wkt_lex.c
 	rm -f lwin_wkt_parse.h
 	rm -f lwin_wkt_parse.c
 
-clean: 
+clean:
 	$(MAKE) -C cunit clean
 	rm -f $(LT_OBJS) $(SA_OBJS) $(NM_OBJS)
 	rm -f liblwgeom.la
@@ -159,15 +189,11 @@ $(LT_SA_OBJS): %.lo: %.c
 $(LT_NM_OBJS): %.lo: %.c
 	$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) $(NUMERICFLAGS) -c -o $@ $<
 
-# Manually generate WKT parser from Flex/Bison inputs
-# Bison 2.5, Flex 2.5.35
-parser:
+lwin_wkt_parse.c lwin_wkt_parse.h: lwin_wkt_parse.y
 	$(YACC) -o'lwin_wkt_parse.c' -d lwin_wkt_parse.y
-	$(LEX) -i lwin_wkt_lex.l
-#	$(YACC) --debug --verbose -o'$@' -d $<
-#	$(YACC) -o'$@' -d $^
-#	$(LEX) -i $<
 
+lwin_wkt_lex.c: lwin_wkt_lex.l
+	$(LEX) -i lwin_wkt_lex.l
 
 liblwgeom.h: liblwgeom.h.in
 	cd .. && ./config.status
diff --git a/liblwgeom/README.topo b/liblwgeom/README.topo
new file mode 100644
index 0000000..7d5b265
--- /dev/null
+++ b/liblwgeom/README.topo
@@ -0,0 +1,26 @@
+About topology support in liblwgeom
+-----------------------------------
+ Author: Sandro Santilli <strk at keybit.net>
+ Last modified: Jun 13, 2015
+
+The topology support in liblwgeom exposes an API to create and manage
+"standard" topologies that use provided callbacks to take care of actual
+data storage.
+
+The topology standard is based on what was provided by PostGIS at its
+version 2.0.0, which in turn is based on ISO SQL/MM (ISO 13249) with
+the addition of the "TopoGeometry" concept.
+
+The public header for topology support is `liblwgeom_topo.h`.
+The caller has to setup a backend interface  (LWT_BE_IFACE) implementing
+all the required callbacks and will then be able to use the provided
+editing functions.
+
+The contract for each callback is fully specified in the header.
+The callbacks are as simple as possible while still allowing for
+backend-specific optimizations.
+
+The backend interface is an opaque object and callabcks are registered
+into it using free functions. This is to allow for modifying the required
+set of callbacks between versions of the library without breaking backward
+compatibility.
diff --git a/liblwgeom/TODO b/liblwgeom/TODO
new file mode 100644
index 0000000..fe68c6c
--- /dev/null
+++ b/liblwgeom/TODO
@@ -0,0 +1,31 @@
+# Status of topology functions (X = done)
+
+lwt_CreateBackendIface X
+lwt_BackendIfaceRegisterCallbacks X
+lwt_FreeBackendIface  X
+lwt_LoadTopology      X
+lwt_FreeTopology      X
+lwt_AddIsoNode        X
+lwt_AddEdgeModFace    X
+lwt_AddEdgeNewFaces   X
+lwt_ModEdgeSplit      X
+lwt_NewEdgesSplit     X
+
+lwt_AddIsoEdge        X
+lwt_GetFaceGeometry   X
+lwt_GetFaceEdges      X
+lwt_ChangeEdgeGeom    X
+lwt_RemoveIsoNode     X
+lwt_RemoveIsoEdge     X
+lwt_MoveIsoNode       X
+lwt_RemEdgeModFace    X
+lwt_RemEdgeNewFace    X
+lwt_ModEdgeHeal       X
+lwt_NewEdgeHeal       X
+
+lwt_GetFaceByPoint    X
+lwt_GetNodeByPoint    X
+lwt_GetEdgeByPoint    X
+lwt_TopoGeo_AddPoint  X
+lwt_TopoGeo_AddLineString X
+lwt_TopoGeo_AddPolygon X
diff --git a/liblwgeom/bytebuffer.c b/liblwgeom/bytebuffer.c
new file mode 100644
index 0000000..4591451
--- /dev/null
+++ b/liblwgeom/bytebuffer.c
@@ -0,0 +1,369 @@
+/**********************************************************************
+ * $Id: bytebuffer.c 11218 2013-03-28 13:32:44Z robe $
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * Copyright 2015 Nicklas Av�n <nicklas.aven at jordogskog.no>
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * The name of the author may not be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ **********************************************************************/
+
+
+#include "liblwgeom_internal.h"
+#include "bytebuffer.h"
+
+/**
+* Allocate a new bytebuffer_t. Use bytebuffer_destroy to free.
+*/
+bytebuffer_t* 
+bytebuffer_create(void)
+{
+	LWDEBUG(2,"Entered bytebuffer_create");
+	return bytebuffer_create_with_size(BYTEBUFFER_STARTSIZE);
+}
+
+/**
+* Allocate a new bytebuffer_t. Use bytebuffer_destroy to free.
+*/
+bytebuffer_t* 
+bytebuffer_create_with_size(size_t size)
+{
+	LWDEBUGF(2,"Entered bytebuffer_create_with_size %d", size);
+	bytebuffer_t *s;
+
+	s = lwalloc(sizeof(bytebuffer_t));
+	s->buf_start = lwalloc(size);
+	s->readcursor = s->writecursor = s->buf_start;
+	s->capacity = size;
+	memset(s->buf_start,0,size);
+	LWDEBUGF(4,"We create a buffer on %p of %d bytes", s->buf_start, size);
+	return s;
+}
+
+/**
+* Allocate just the internal buffer of an existing bytebuffer_t
+* struct. Useful for allocating short-lived bytebuffers off the stack.
+*/
+void 
+bytebuffer_init_with_size(bytebuffer_t *b, size_t size)
+{
+	b->buf_start = lwalloc(size);
+	b->readcursor = b->writecursor = b->buf_start;
+	b->capacity = size;
+	memset(b->buf_start, 0, size);
+}
+
+/**
+* Free the bytebuffer_t and all memory managed within it.
+*/
+void 
+bytebuffer_destroy(bytebuffer_t *s)
+{
+	LWDEBUG(2,"Entered bytebuffer_destroy");
+	LWDEBUGF(4,"The buffer has used %d bytes",bytebuffer_getlength(s));
+	
+	if ( s->buf_start ) 
+	{
+		LWDEBUGF(4,"let's free buf_start %p",s->buf_start);
+		lwfree(s->buf_start);
+		LWDEBUG(4,"buf_start is freed");
+	}
+	if ( s ) 
+	{
+		lwfree(s);		
+		LWDEBUG(4,"bytebuffer_t is freed");
+	}
+	return;
+}
+
+/**
+* Set the read cursor to the beginning
+*/
+void 
+bytebuffer_reset_reading(bytebuffer_t *s)
+{
+	s->readcursor = s->buf_start;
+}
+
+/**
+* Reset the bytebuffer_t. Useful for starting a fresh string
+* without the expense of freeing and re-allocating a new
+* bytebuffer_t.
+*/
+void 
+bytebuffer_clear(bytebuffer_t *s)
+{
+	s->readcursor = s->writecursor = s->buf_start;
+}
+
+/**
+* If necessary, expand the bytebuffer_t internal buffer to accomodate the
+* specified additional size.
+*/
+static inline void 
+bytebuffer_makeroom(bytebuffer_t *s, size_t size_to_add)
+{
+	LWDEBUGF(2,"Entered bytebuffer_makeroom with space need of %d", size_to_add);
+	size_t current_write_size = (s->writecursor - s->buf_start);
+	size_t capacity = s->capacity;
+	size_t required_size = current_write_size + size_to_add;
+
+	LWDEBUGF(2,"capacity = %d and required size = %d",capacity ,required_size);
+	while (capacity < required_size)
+		capacity *= 2;
+
+	if ( capacity > s->capacity )
+	{
+		LWDEBUGF(4,"We need to realloc more memory. New capacity is %d", capacity);
+		s->buf_start = lwrealloc(s->buf_start, capacity);
+		s->capacity = capacity;
+		s->writecursor = s->buf_start + current_write_size;
+		s->readcursor = s->buf_start + (s->readcursor - s->buf_start);
+	}
+	return;
+}
+
+/**
+* Writes a uint8_t value to the buffer
+*/
+void 
+bytebuffer_append_byte(bytebuffer_t *s, const uint8_t val)
+{	
+	LWDEBUGF(2,"Entered bytebuffer_append_byte with value %d", val);	
+	bytebuffer_makeroom(s, 1);
+	*(s->writecursor)=val;
+	s->writecursor += 1;
+	return;
+}
+
+
+/**
+* Writes a uint8_t value to the buffer
+*/
+void 
+bytebuffer_append_bulk(bytebuffer_t *s, void * start, size_t size)
+{	
+	LWDEBUGF(2,"bytebuffer_append_bulk with size %d",size);	
+	bytebuffer_makeroom(s, size);
+	memcpy(s->writecursor, start, size);
+	s->writecursor += size;
+	return;
+}
+
+/**
+* Writes a uint8_t value to the buffer
+*/
+void 
+bytebuffer_append_bytebuffer(bytebuffer_t *write_to,bytebuffer_t *write_from )
+{	
+	LWDEBUG(2,"bytebuffer_append_bytebuffer");	
+	size_t size = bytebuffer_getlength(write_from);
+	bytebuffer_makeroom(write_to, size);
+	memcpy(write_to->writecursor, write_from->buf_start, size);
+	write_to->writecursor += size;
+	return;
+}
+
+
+/**
+* Writes a signed varInt to the buffer
+*/
+void 
+bytebuffer_append_varint(bytebuffer_t *b, const int64_t val)
+{	
+	size_t size;
+	bytebuffer_makeroom(b, 8);
+	size = varint_s64_encode_buf(val, b->writecursor);
+	b->writecursor += size;
+	return;
+}
+
+/**
+* Writes a unsigned varInt to the buffer
+*/
+void 
+bytebuffer_append_uvarint(bytebuffer_t *b, const uint64_t val)
+{	
+	size_t size;
+	bytebuffer_makeroom(b, 8);
+	size = varint_u64_encode_buf(val, b->writecursor);
+	b->writecursor += size;
+	return;
+}
+
+
+/*
+* Writes Integer to the buffer
+*/
+void
+bytebuffer_append_int(bytebuffer_t *buf, const int val, int swap)
+{
+	LWDEBUGF(2,"Entered bytebuffer_append_int with value %d, swap = %d", val, swap);	
+	
+	LWDEBUGF(4,"buf_start = %p and write_cursor=%p", buf->buf_start,buf->writecursor);
+	char *iptr = (char*)(&val);
+	int i = 0;
+
+	if ( sizeof(int) != WKB_INT_SIZE )
+	{
+		lwerror("Machine int size is not %d bytes!", WKB_INT_SIZE);
+	}
+	
+	bytebuffer_makeroom(buf, WKB_INT_SIZE);
+	/* Machine/request arch mismatch, so flip byte order */
+	if ( swap)
+	{
+		LWDEBUG(4,"Ok, let's do the swaping thing");	
+		for ( i = 0; i < WKB_INT_SIZE; i++ )
+		{
+			*(buf->writecursor) = iptr[WKB_INT_SIZE - 1 - i];
+			buf->writecursor += 1;
+		}
+	}
+	/* If machine arch and requested arch match, don't flip byte order */
+	else
+	{
+		LWDEBUG(4,"Ok, let's do the memcopying thing");		
+		memcpy(buf->writecursor, iptr, WKB_INT_SIZE);
+		buf->writecursor += WKB_INT_SIZE;
+	}
+	
+	LWDEBUGF(4,"buf_start = %p and write_cursor=%p", buf->buf_start,buf->writecursor);
+	return;
+
+}
+
+
+
+
+
+/**
+* Writes a float64 to the buffer
+*/
+void
+bytebuffer_append_double(bytebuffer_t *buf, const double val, int swap)
+{
+	LWDEBUGF(2,"Entered bytebuffer_append_double with value %lf swap = %d", val, swap);	
+	
+	LWDEBUGF(4,"buf_start = %p and write_cursor=%p", buf->buf_start,buf->writecursor);
+	char *dptr = (char*)(&val);
+	int i = 0;
+
+	if ( sizeof(double) != WKB_DOUBLE_SIZE )
+	{
+		lwerror("Machine double size is not %d bytes!", WKB_DOUBLE_SIZE);
+	}
+
+	bytebuffer_makeroom(buf, WKB_DOUBLE_SIZE);
+	
+	/* Machine/request arch mismatch, so flip byte order */
+	if ( swap )
+	{
+		LWDEBUG(4,"Ok, let's do the swapping thing");		
+		for ( i = 0; i < WKB_DOUBLE_SIZE; i++ )
+		{
+			*(buf->writecursor) = dptr[WKB_DOUBLE_SIZE - 1 - i];
+			buf->writecursor += 1;
+		}
+	}
+	/* If machine arch and requested arch match, don't flip byte order */
+	else
+	{
+		LWDEBUG(4,"Ok, let's do the memcopying thing");			
+		memcpy(buf->writecursor, dptr, WKB_DOUBLE_SIZE);
+		buf->writecursor += WKB_DOUBLE_SIZE;
+	}
+	
+	LWDEBUG(4,"Return from bytebuffer_append_double");		
+	return;
+
+}
+
+/**
+* Reads a signed varInt from the buffer
+*/
+int64_t 
+bytebuffer_read_varint(bytebuffer_t *b)
+{
+	size_t size;
+	int64_t val = varint_s64_decode(b->readcursor, b->buf_start + b->capacity, &size);
+	b->readcursor += size;
+	return val;
+}
+
+/**
+* Reads a unsigned varInt from the buffer
+*/
+uint64_t 
+bytebuffer_read_uvarint(bytebuffer_t *b)
+{	
+	size_t size;
+	uint64_t val = varint_u64_decode(b->readcursor, b->buf_start + b->capacity, &size);
+	b->readcursor += size;
+	return val;
+}
+
+/**
+* Returns the length of the current buffer
+*/
+size_t 
+bytebuffer_getlength(bytebuffer_t *s)
+{
+	return (size_t) (s->writecursor - s->buf_start);
+}
+
+
+/**
+* Returns a new bytebuffer were both ingoing bytebuffers is merged.
+* Caller is responsible for freeing both incoming bytefyffers and resulting bytebuffer
+*/
+bytebuffer_t*
+bytebuffer_merge(bytebuffer_t **buff_array, int nbuffers)
+{
+	size_t total_size = 0, current_size, acc_size = 0;
+	int i;
+	for ( i = 0; i < nbuffers; i++ )
+	{
+		total_size += bytebuffer_getlength(buff_array[i]);
+	}
+		
+	bytebuffer_t *res = bytebuffer_create_with_size(total_size);
+	for ( i = 0; i < nbuffers; i++)
+	{
+		current_size = bytebuffer_getlength(buff_array[i]);
+		memcpy(res->buf_start+acc_size, buff_array[i]->buf_start, current_size);
+		acc_size += current_size;
+	}
+	res->writecursor = res->buf_start + total_size;
+	res->readcursor = res->buf_start;
+	return res;
+}
+
+
diff --git a/liblwgeom/bytebuffer.h b/liblwgeom/bytebuffer.h
new file mode 100644
index 0000000..175690d
--- /dev/null
+++ b/liblwgeom/bytebuffer.h
@@ -0,0 +1,76 @@
+/**********************************************************************
+ * $Id: bytebuffer.h 12198 2014-01-29 17:49:35Z pramsey $
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * Copyright 2015 Nicklas Avén <nicklas.aven at jordogskog.no>
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * The name of the author may not be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ **********************************************************************/
+
+#ifndef _BYTEBUFFER_H
+#define _BYTEBUFFER_H 1
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include "varint.h"
+
+#include "lwgeom_log.h"
+#define BYTEBUFFER_STARTSIZE 128
+
+typedef struct
+{
+	size_t capacity;
+	uint8_t *buf_start;
+	uint8_t *writecursor;	
+	uint8_t *readcursor;	
+}
+bytebuffer_t;
+
+void bytebuffer_init_with_size(bytebuffer_t *b, size_t size);
+bytebuffer_t *bytebuffer_create_with_size(size_t size);
+bytebuffer_t *bytebuffer_create(void);
+void bytebuffer_destroy(bytebuffer_t *s);
+void bytebuffer_clear(bytebuffer_t *s);
+void bytebuffer_append_byte(bytebuffer_t *s, const uint8_t val);
+void bytebuffer_append_varint(bytebuffer_t *s, const int64_t val);
+void bytebuffer_append_uvarint(bytebuffer_t *s, const uint64_t val);
+uint64_t bytebuffer_read_uvarint(bytebuffer_t *s);
+int64_t bytebuffer_read_varint(bytebuffer_t *s);
+size_t bytebuffer_getlength(bytebuffer_t *s);
+bytebuffer_t* bytebuffer_merge(bytebuffer_t **buff_array, int nbuffers);
+void bytebuffer_reset_reading(bytebuffer_t *s);
+
+void bytebuffer_append_bytebuffer(bytebuffer_t *write_to,bytebuffer_t *write_from);
+void bytebuffer_append_bulk(bytebuffer_t *s, void * start, size_t size);
+void bytebuffer_append_int(bytebuffer_t *buf, const int val, int swap);
+void bytebuffer_append_double(bytebuffer_t *buf, const double val, int swap);
+#endif /* _BYTEBUFFER_H */
diff --git a/liblwgeom/cunit/Makefile.in b/liblwgeom/cunit/Makefile.in
index 489ad68..ea283ab 100644
--- a/liblwgeom/cunit/Makefile.in
+++ b/liblwgeom/cunit/Makefile.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id: Makefile.in
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
@@ -11,8 +10,6 @@
 # **********************************************************************
 
 CC=@CC@
-CFLAGS=@CFLAGS@ @WARNFLAGS@ @GEOS_CPPFLAGS@ @PROJ_CPPFLAGS@ 
-LDFLAGS = @GEOS_LDFLAGS@ -lgeos_c
 top_builddir = @top_builddir@
 SHELL = @SHELL@
 LIBTOOL = @LIBTOOL@
@@ -20,9 +17,13 @@ LIBTOOL = @LIBTOOL@
 CUNIT_LDFLAGS=@CUNIT_LDFLAGS@
 CUNIT_CPPFLAGS=@CUNIT_CPPFLAGS@ -I..
 
+CFLAGS=@CFLAGS@ @WARNFLAGS@ @GEOS_CPPFLAGS@ @PROJ_CPPFLAGS@ $(CUNIT_CPPFLAGS)
+LDFLAGS = @GEOS_LDFLAGS@ -lgeos_c $(CUNIT_LDFLAGS) -lm
+
 # ADD YOUR NEW TEST FILE HERE (1/1)
 OBJS=	\
 	cu_algorithm.o \
+	cu_bytebuffer.o \
 	cu_buildarea.o \
 	cu_clean.o \
 	cu_print.o \
@@ -30,30 +31,39 @@ OBJS=	\
 	cu_ptarray.o \
 	cu_geodetic.o \
 	cu_geos.o \
+	cu_geos_cluster.o \
 	cu_tree.o \
 	cu_measures.o \
+	cu_effectivearea.o \
 	cu_node.o \
+	cu_clip_by_rect.o \
 	cu_libgeom.o \
 	cu_split.o \
 	cu_stringbuffer.o \
 	cu_triangulate.o \
 	cu_homogenize.o \
 	cu_force_sfs.o \
+	cu_out_twkb.o \
 	cu_out_wkt.o \
 	cu_out_wkb.o \
 	cu_out_gml.o \
 	cu_out_kml.o \
 	cu_out_geojson.o \
 	cu_out_svg.o \
+	cu_out_encoded_polyline.o \
 	cu_surface.o \
 	cu_out_x3d.o \
 	cu_in_geojson.o \
+	cu_in_twkb.o \
 	cu_in_wkb.o \
 	cu_in_wkt.o \
-	cu_tester.o 
+	cu_in_encoded_polyline.o \
+	cu_varint.o \
+	cu_unionfind.o \
+	cu_tester.o
 
 ifeq (@SFCGAL@,sfcgal)
-CXXFLAGS += @SFCGAL_CPPFLAGS@
+CFLAGS += @SFCGAL_CPPFLAGS@
 LDFLAGS += @SFCGAL_LDFLAGS@
 OBJS += cu_sfcgal.o
 endif
@@ -75,12 +85,11 @@ endif
 
 # Build the main unit test executable
 cu_tester: ../liblwgeom.la $(OBJS)
-	$(LIBTOOL) --mode=link $(CC) $(CFLAGS) -o $@ $(OBJS) ../liblwgeom.la $(CUNIT_LDFLAGS)
-	#$(CC) -o $@ $(OBJS) ../.libs/liblwgeom.a -lm $(CUNIT_LDFLAGS) $(LDFLAGS)
+	$(LIBTOOL) --mode=link $(CC) $(CFLAGS) -o $@ $(OBJS) ../liblwgeom.la $(LDFLAGS)
 
 # Command to build each of the .o files
 $(OBJS): %.o: %.c
-	$(CC) $(CFLAGS) $(CUNIT_CPPFLAGS) -c -o $@ $<
+	$(CC) $(CFLAGS) -c -o $@ $<
 
 # Clean target
 clean:
diff --git a/liblwgeom/cunit/cu_algorithm.c b/liblwgeom/cunit/cu_algorithm.c
index 704a58f..03faf11 100644
--- a/liblwgeom/cunit/cu_algorithm.c
+++ b/liblwgeom/cunit/cu_algorithm.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_algorithm.c 13696 2015-06-24 19:06:01Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -425,15 +424,19 @@ static void test_point_interpolate(void)
 	q.m = 50.0;
 
 	rv = point_interpolate(&p, &q, &r, 1, 1, 'Z', 35.0);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_EQUAL( r.x, 15.0);
 
 	rv = point_interpolate(&p, &q, &r, 1, 1, 'M', 41.0);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_EQUAL( r.y, 21.0);
 
 	rv = point_interpolate(&p, &q, &r, 1, 1, 'M', 50.0);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_EQUAL( r.y, 30.0);
 
 	rv = point_interpolate(&p, &q, &r, 1, 1, 'M', 40.0);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_EQUAL( r.y, 20.0);
 
 }
@@ -883,40 +886,76 @@ static void test_geohash_point_as_int(void)
 {
 	unsigned int gh;
 	POINT2D p;
+	unsigned long long rs;
 	
 	p.x = 50; p.y = 35;
 	gh = geohash_point_as_int(&p);
-	CU_ASSERT_EQUAL(gh, (unsigned int)3440103613);
+	rs = 3440103613;
+	CU_ASSERT_EQUAL(gh, rs);
 	p.x = 140; p.y = 45;
 	gh = geohash_point_as_int(&p);
-	CU_ASSERT_EQUAL(gh, (unsigned int)3982480893);
+	rs = 3982480893;
+	CU_ASSERT_EQUAL(gh, rs);
 	p.x = 140; p.y = 55;
 	gh = geohash_point_as_int(&p);
-	CU_ASSERT_EQUAL(gh, (unsigned int)4166944232);	
+	rs = 4166944232;
+	CU_ASSERT_EQUAL(gh, rs);
 }
 
 static void test_lwgeom_simplify(void)
 {
 		LWGEOM *l;
-		LWGEOM *i;
+		LWGEOM *g;
 		char *ewkt;
 
+		/* Simplify but only so far... */
+		g = lwgeom_from_wkt("LINESTRING(0 0, 1 0, 1 1, 0 1, 0 0)", LW_PARSER_CHECK_NONE);
+		l = lwgeom_simplify(g, 10, LW_TRUE);
+		ewkt = lwgeom_to_ewkt(l);
+		CU_ASSERT_STRING_EQUAL(ewkt, "LINESTRING(0 0,0 0)");
+		lwgeom_free(g);
+		lwgeom_free(l);
+		lwfree(ewkt);
+
+		/* Simplify but only so far... */
+		g = lwgeom_from_wkt("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))", LW_PARSER_CHECK_NONE);
+		l = lwgeom_simplify(g, 10, LW_TRUE);
+		ewkt = lwgeom_to_ewkt(l);
+		CU_ASSERT_STRING_EQUAL(ewkt, "POLYGON((0 0,1 0,1 1,0 0))");
+		lwgeom_free(g);
+		lwgeom_free(l);
+		lwfree(ewkt);
+
+		/* Simplify and collapse */
+		g = lwgeom_from_wkt("LINESTRING(0 0, 1 0, 1 1, 0 1, 0 0)", LW_PARSER_CHECK_NONE);
+		l = lwgeom_simplify(g, 10, LW_FALSE);
+		CU_ASSERT_EQUAL(l, NULL);
+		lwgeom_free(g);
+		lwgeom_free(l);
+
+		/* Simplify and collapse */
+		g = lwgeom_from_wkt("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))", LW_PARSER_CHECK_NONE);
+		l = lwgeom_simplify(g, 10, LW_FALSE);
+		CU_ASSERT_EQUAL(l, NULL);
+		lwgeom_free(g);
+		lwgeom_free(l);
+		
 		/* Not simplifiable */
-		i = lwgeom_from_wkt("LINESTRING(0 0, 50 1.00001, 100 0)", LW_PARSER_CHECK_NONE);
-		l = lwgeom_simplify(i, 1.0);
+		g = lwgeom_from_wkt("LINESTRING(0 0, 50 1.00001, 100 0)", LW_PARSER_CHECK_NONE);
+		l = lwgeom_simplify(g, 1.0, LW_FALSE);
 		ewkt = lwgeom_to_ewkt(l);
 		CU_ASSERT_STRING_EQUAL(ewkt, "LINESTRING(0 0,50 1.00001,100 0)");
+		lwgeom_free(g);
 		lwgeom_free(l);
-		lwgeom_free(i);
 		lwfree(ewkt);
 
 		/* Simplifiable */
-		i = lwgeom_from_wkt("LINESTRING(0 0,50 0.99999,100 0)", LW_PARSER_CHECK_NONE);
-		l = lwgeom_simplify(i, 1.0);
+		g = lwgeom_from_wkt("LINESTRING(0 0,50 0.99999,100 0)", LW_PARSER_CHECK_NONE);
+		l = lwgeom_simplify(g, 1.0, LW_FALSE);
 		ewkt = lwgeom_to_ewkt(l);
 		CU_ASSERT_STRING_EQUAL(ewkt, "LINESTRING(0 0,100 0)");
+		lwgeom_free(g);
 		lwgeom_free(l);
-		lwgeom_free(i);
 		lwfree(ewkt);
 }
 
@@ -926,7 +965,7 @@ static void test_lwgeom_simplify(void)
 void algorithms_suite_setup(void);
 void algorithms_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Computational Geometry", init_cg_suite, clean_cg_suite);
+	CU_pSuite suite = CU_add_suite("computational_geometry", init_cg_suite, clean_cg_suite);
 	PG_ADD_TEST(suite,test_lw_segment_side);
 	PG_ADD_TEST(suite,test_lw_segment_intersects);
 	PG_ADD_TEST(suite,test_lwline_crossing_short_lines);
diff --git a/liblwgeom/cunit/cu_buildarea.c b/liblwgeom/cunit/cu_buildarea.c
index 0f1a8a1..c3560dd 100644
--- a/liblwgeom/cunit/cu_buildarea.c
+++ b/liblwgeom/cunit/cu_buildarea.c
@@ -326,7 +326,7 @@ static void buildarea7(void)
 void buildarea_suite_setup(void);
 void buildarea_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Buildarea", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("buildarea", NULL, NULL);
 	PG_ADD_TEST(suite,buildarea1);
 	PG_ADD_TEST(suite,buildarea2);
 	PG_ADD_TEST(suite,buildarea3);
diff --git a/liblwgeom/cunit/cu_bytebuffer.c b/liblwgeom/cunit/cu_bytebuffer.c
new file mode 100644
index 0000000..0ee5426
--- /dev/null
+++ b/liblwgeom/cunit/cu_bytebuffer.c
@@ -0,0 +1,58 @@
+/**********************************************************************
+ * $Id$
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright 2012 Sandro Santilli <strk at keybit.net>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "CUnit/Basic.h"
+
+#include "bytebuffer.h"
+#include "cu_tester.h"
+
+#if 0
+
+static void test_bytebuffer_append(void)
+{
+	bytebuffer_t *bb1;
+	int64_t res;
+	bb1 = bytebuffer_create_with_size(2);
+	
+	bytebuffer_append_varint(bb1,(int64_t) -12345);
+
+	
+	bytebuffer_reset_reading(bb1);
+	
+	res= bytebuffer_read_varint(bb1);
+
+	CU_ASSERT_EQUAL(res, -12345);
+
+	bytebuffer_destroy(bb1);
+}
+
+
+/* TODO: add more... */
+
+
+
+/*
+** Used by the test harness to register the tests in this file.
+*/
+void bytebuffer_suite_setup(void);
+void bytebuffer_suite_setup(void)
+{
+	PG_TEST(test_bytebuffer_append),
+	CU_TEST_INFO_NULL
+};
+CU_SuiteInfo bytebuffer_suite = {"bytebuffer", NULL, NULL, bytebuffer_tests };
+
+#endif
diff --git a/liblwgeom/cunit/cu_clean.c b/liblwgeom/cunit/cu_clean.c
index 885a7c2..df31365 100644
--- a/liblwgeom/cunit/cu_clean.c
+++ b/liblwgeom/cunit/cu_clean.c
@@ -130,6 +130,25 @@ static void test_lwgeom_make_valid(void)
 	lwgeom_free(gout);
 	lwgeom_free(gin);
 
+	/* Test unclosed polygon */
+
+	gin = lwgeom_from_hexwkb(
+"0103000000010000000400000000000000000024400000000000003640000000000000244000000000000040400000000000003440000000000000404000000000000034400000000000003640",
+		LW_PARSER_CHECK_NONE);
+	CU_ASSERT(gin != NULL);
+
+	gout = lwgeom_make_valid(gin);
+	CU_ASSERT(gout != NULL);
+
+	ewkt = lwgeom_to_ewkt(gout);
+	/* printf("c = %s\n", ewkt); */
+	CU_ASSERT_STRING_EQUAL(ewkt,
+"POLYGON((10 22,10 32,20 32,20 22,10 22))");
+	lwfree(ewkt);
+
+	lwgeom_free(gout);
+	lwgeom_free(gin);
+
 #endif /* POSTGIS_GEOS_VERSION >= 33 */
 }
 
@@ -142,6 +161,6 @@ static void test_lwgeom_make_valid(void)
 void clean_suite_setup(void);
 void clean_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Geometry Clean", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("geometry_clean", NULL, NULL);
 	PG_ADD_TEST(suite, test_lwgeom_make_valid);
 }
diff --git a/liblwgeom/cunit/cu_clip_by_rect.c b/liblwgeom/cunit/cu_clip_by_rect.c
new file mode 100644
index 0000000..66bad2e
--- /dev/null
+++ b/liblwgeom/cunit/cu_clip_by_rect.c
@@ -0,0 +1,64 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright (C) 2014 Sandro Santilli <strk at keybit.net>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include "CUnit/Basic.h"
+#include "cu_tester.h"
+
+#include "liblwgeom.h"
+#include "liblwgeom_internal.h"
+
+static void test_lwgeom_clip_by_rect(void)
+{
+#if POSTGIS_GEOS_VERSION >= 35
+	LWGEOM *in, *out;
+	const char *wkt;
+	char *tmp;
+
+	/* Because i don't trust that much prior tests...  ;) */
+	cu_error_msg_reset();
+
+	wkt = "LINESTRING(0 0, 5 5, 10 0)";
+	in = lwgeom_from_wkt(wkt, LW_PARSER_CHECK_NONE);
+	out = lwgeom_clip_by_rect(in, 5, 0, 10, 10);
+	tmp = lwgeom_to_ewkt(out);
+	/* printf("%s\n", tmp); */
+	CU_ASSERT_STRING_EQUAL("LINESTRING(5 5,10 0)", tmp)
+	lwfree(tmp); lwgeom_free(out); lwgeom_free(in);
+
+	wkt = "LINESTRING EMPTY";
+	in = lwgeom_from_wkt(wkt, LW_PARSER_CHECK_NONE);
+	out = lwgeom_clip_by_rect(in, 5, 0, 10, 10);
+	tmp = lwgeom_to_ewkt(out);
+	/* printf("%s\n", tmp); */
+	CU_ASSERT_STRING_EQUAL(wkt, tmp)
+	lwfree(tmp); lwgeom_free(out); lwgeom_free(in);
+
+  /* Disjoint polygon */
+	wkt = "POLYGON((311017 4773762,311016 4773749,311006 4773744,310990 4773748,310980 4773758,310985 4773771,311003 4773776,311017 4773762))";
+	in = lwgeom_from_wkt(wkt, LW_PARSER_CHECK_NONE);
+	out = lwgeom_clip_by_rect(in, -80, -80, 80, 80);
+	//tmp = lwgeom_to_ewkt(out); printf("%s\n", tmp); lwfree(tmp);
+	CU_ASSERT(lwgeom_is_empty(out));
+	lwgeom_free(out); lwgeom_free(in);
+
+#endif /* POSTGIS_GEOS_VERSION >= 35 */
+}
+
+/*
+** Used by test harness to register the tests in this file.
+*/
+void clip_by_rect_suite_setup(void);
+void clip_by_rect_suite_setup(void)
+{
+	CU_pSuite suite = CU_add_suite("clip_by_rectangle", NULL, NULL);
+	PG_ADD_TEST(suite, test_lwgeom_clip_by_rect);
+}
diff --git a/liblwgeom/cunit/cu_effectivearea.c b/liblwgeom/cunit/cu_effectivearea.c
new file mode 100644
index 0000000..ec2530f
--- /dev/null
+++ b/liblwgeom/cunit/cu_effectivearea.c
@@ -0,0 +1,79 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright 2012 Sandro Santilli <strk at keybit.net>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "CUnit/Basic.h"
+
+#include "liblwgeom_internal.h"
+#include "effectivearea.h"
+#include "cu_tester.h"
+
+
+static void do_test_lwgeom_effectivearea(POINTARRAY *pa,double *the_areas,int avoid_collaps)
+{
+
+	int i;
+	EFFECTIVE_AREAS *ea;	
+	
+	ea=initiate_effectivearea(pa);		
+	ptarray_calc_areas(ea,avoid_collaps,1,0);
+
+	for (i=0;i<pa->npoints;i++)
+	{
+		CU_ASSERT_EQUAL(ea->res_arealist[i],the_areas[i]);
+	}
+
+	destroy_effectivearea(ea);
+	
+	
+}
+
+static void do_test_lwgeom_effectivearea_lines(void)
+{
+	LWLINE *the_geom;
+	int avoid_collaps=2;
+	/*Line 1*/
+	the_geom = (LWLINE*)lwgeom_from_wkt("LINESTRING(1 1, 0 1, 0 2, -1 4, -1 4)", LW_PARSER_CHECK_NONE);
+	double the_areas1[]={FLT_MAX,0.5,0.5,0,FLT_MAX};
+	do_test_lwgeom_effectivearea(the_geom->points,the_areas1,avoid_collaps);
+	lwline_free(the_geom);
+	/*Line 2*/
+	the_geom = (LWLINE*)lwgeom_from_wkt("LINESTRING(10 10,12 8, 15 7, 18 7, 20 20, 15 21, 18 22, 10 30, 40 100)", LW_PARSER_CHECK_NONE);
+	double the_areas2[]={FLT_MAX,5,1.5,55,100,4,4,300,FLT_MAX};
+	do_test_lwgeom_effectivearea(the_geom->points,the_areas2,avoid_collaps);
+	lwline_free(the_geom);
+}
+
+
+
+static void do_test_lwgeom_effectivearea_polys(void)
+{
+	LWPOLY *the_geom;
+	int avoid_collaps=4;
+	
+	/*POLYGON 1*/
+	the_geom = (LWPOLY*)lwgeom_from_wkt("POLYGON((10 10,12 8, 15 7, 18 7, 20 20, 15 21, 18 22, 10 30,1 99, 0 100, 10 10))", LW_PARSER_CHECK_NONE);
+	double the_areas1[]={FLT_MAX,5,1.5,55,100,4,4,FLT_MAX,30,FLT_MAX,FLT_MAX};
+	do_test_lwgeom_effectivearea(the_geom->rings[0],the_areas1,avoid_collaps);
+	lwpoly_free(the_geom);
+}
+
+
+void effectivearea_suite_setup(void);
+void effectivearea_suite_setup(void)
+{
+	CU_pSuite suite = CU_add_suite("effectivearea",NULL,NULL);
+	PG_ADD_TEST(suite, do_test_lwgeom_effectivearea_lines);
+	PG_ADD_TEST(suite, do_test_lwgeom_effectivearea_polys);
+}
diff --git a/liblwgeom/cunit/cu_force_sfs.c b/liblwgeom/cunit/cu_force_sfs.c
index e3dea5a..157f8fa 100644
--- a/liblwgeom/cunit/cu_force_sfs.c
+++ b/liblwgeom/cunit/cu_force_sfs.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id:$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -167,7 +166,7 @@ static void test_sfs_11(void)
 void force_sfs_suite_setup(void);
 void force_sfs_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Force SFS", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("force_sfs", NULL, NULL);
 	PG_ADD_TEST(suite, test_sfs_11);
 	PG_ADD_TEST(suite, test_sfs_12);
 	PG_ADD_TEST(suite, test_sqlmm);
diff --git a/liblwgeom/cunit/cu_geodetic.c b/liblwgeom/cunit/cu_geodetic.c
index 0f03fa6..51d383d 100644
--- a/liblwgeom/cunit/cu_geodetic.c
+++ b/liblwgeom/cunit/cu_geodetic.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_geodetic.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -8,6 +7,12 @@
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
  *
+ * Note: Geodesic measurements have been independently verified using
+ * GeographicLib v 1.37 with MPFR C++ using utilities GeodSolve and
+ * Planimeter, with -E "exact" flag with the following env vars:
+ *     export GEOGRAPHICLIB_DIGITS=1000
+ *     export WGS84_ELIPSOID="6378137 298.257223563"
+ *     export WGS84_SPHERE="6371008.7714150598325213222 0"
  **********************************************************************/
 
 #include <stdio.h>
@@ -77,13 +82,17 @@ static void test_sphere_direction(void)
 	geographic_point_init(1, 0, &e);
 	dist = sphere_distance(&s, &e);
 	dir = sphere_direction(&s, &e, dist);
-	CU_ASSERT_DOUBLE_EQUAL(dir, M_PI / 2.0, 0.0001);
+	/* GeodSolve -i -E -p 16 -e 1 0 --input-string "0 0 0 1" */
+	CU_ASSERT_DOUBLE_EQUAL(dir, M_PI_2, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dist, 0.0174532925199433, 1e-14);
 
 	geographic_point_init(0, 0, &s);
 	geographic_point_init(0, 1, &e);
 	dist = sphere_distance(&s, &e);
 	dir = sphere_direction(&s, &e, dist);
-	CU_ASSERT_DOUBLE_EQUAL(dir, 0.0, 0.0001);
+	/* GeodSolve -i -E -p 16 -e 1 0 --input-string "0 0 1 0" */
+	CU_ASSERT_DOUBLE_EQUAL(dir, 0.0, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dist, 0.0174532925199433, 1e-14);
 	
 }
 
@@ -92,61 +101,79 @@ static void test_sphere_project(void)
 	GEOGRAPHIC_POINT s, e;
 	double dir1, dist1, dir2, dist2;
 
-	dir1 = M_PI/2;
+	dir1 = M_PI_2;
 	dist1 = 0.1;
 	
-	geographic_point_init(0, 0, &s);  
+	geographic_point_init(0, 0, &s);
 	sphere_project(&s, dist1, dir1, &e);
+
+	CU_ASSERT_DOUBLE_EQUAL(e.lon, 0.1, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(e.lat, 0.0, 1e-14);
 	
+	/* Direct and inverse solutions agree */
 	dist2 = sphere_distance(&s, &e);
 	dir2 = sphere_direction(&s, &e, dist1);
 
-	CU_ASSERT_DOUBLE_EQUAL(dist1, dist2, 0.0001);
-	CU_ASSERT_DOUBLE_EQUAL(dir1, dir2, 0.0001);	
+	CU_ASSERT_DOUBLE_EQUAL(dist1, dist2, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dir1, dir2, 1e-14);
 	
 	dist1 = sphere_distance(&e, &s);
 	dir1 = sphere_direction(&e, &s, dist1);
 	sphere_project(&e, dist1, dir1, &s);
-	
-	CU_ASSERT_DOUBLE_EQUAL(s.lon, 0.0, 0.0001);
-	CU_ASSERT_DOUBLE_EQUAL(s.lat, 0.0, 0.0001);	
+
+	CU_ASSERT_DOUBLE_EQUAL(s.lon, 0.0, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(s.lat, 0.0, 1e-14);
 
 	geographic_point_init(0, 0.2, &e);  
 	geographic_point_init(0, 0.4, &s);  
 	dist1 = sphere_distance(&s, &e);
 	dir1 = sphere_direction(&e, &s, dist1);
-	CU_ASSERT_DOUBLE_EQUAL(dir1, 0.0, 0.0001);	
+	/* GeodSolve -i -E -p 16 -e 1 0 --input-string "0.2 0 0.4 0" */
+	CU_ASSERT_DOUBLE_EQUAL(dir1, 0.0, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dist1, 0.0034906585039887, 1e-14);
 
-	geographic_point_init(0, 1, &s);  
+	geographic_point_init(0, 1, &s); /* same start point for remainder of tests */
 	geographic_point_init(0, 2, &e);  
 	dist2 = sphere_distance(&s, &e);
 	dir2 = sphere_direction(&s, &e, dist2);
-	CU_ASSERT_DOUBLE_EQUAL(dir2, 0.0, 0.0001);	
+	/* GeodSolve -i -E -p 16 -e 1 0 --input-string "1 0 2 0" */
+	CU_ASSERT_DOUBLE_EQUAL(dir2, 0.0, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dist2, 0.0174532925199433, 1e-14);
 	
 	geographic_point_init(1, 1, &e);  
 	dist2 = sphere_distance(&s, &e);
 	dir2 = sphere_direction(&s, &e, dist2);
-	CU_ASSERT_DOUBLE_EQUAL(dir2, 1.57064, 0.0001);	
+	/* GeodSolve -i -E -p 16 -e 1 0 --input-string "1 0 1 1" */
+	CU_ASSERT_DOUBLE_EQUAL(dir2, 89.991273575329292895136 * M_PI / 180.0, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dist2, 0.0174506342314906, 1e-14);
 
 	geographic_point_init(0, 0, &e);  
 	dist2 = sphere_distance(&s, &e);
 	dir2 = sphere_direction(&s, &e, dist2);
-	CU_ASSERT_DOUBLE_EQUAL(dir2, 3.14159, 0.0001);	
+	/* GeodSolve -i -E -p 16 -e 1 0 --input-string "1 0 0 0" */
+	CU_ASSERT_DOUBLE_EQUAL(dir2, M_PI, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dist2, 0.0174532925199433, 1e-14);
 
 	geographic_point_init(-1, 1, &e);  
 	dist2 = sphere_distance(&s, &e);
 	dir2 = sphere_direction(&s, &e, dist2);
-	CU_ASSERT_DOUBLE_EQUAL(dir2, -1.57064, 0.0001);	
+	/* GeodSolve -i -E -p 16 -e 1 0 --input-string "1 0 1 -1" */
+	CU_ASSERT_DOUBLE_EQUAL(dir2, -89.991273575329292895136 * M_PI / 180.0, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dist2, 0.0174506342314906, 1e-14);
 
 	geographic_point_init(1, 2, &e);  
 	dist2 = sphere_distance(&s, &e);
 	dir2 = sphere_direction(&s, &e, dist2);
-	CU_ASSERT_DOUBLE_EQUAL(dir2, 0.785017, 0.0001);	
+	/* GeodSolve -i -E -p 16 -e 1 0 --input-string "1 0 2 1" */
+	CU_ASSERT_DOUBLE_EQUAL(dir2, 44.978182941465044354783 * M_PI / 180.0, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dist2, 0.0246782972905467, 1e-14);
 
 	geographic_point_init(-1, 0, &e);  
 	dist2 = sphere_distance(&s, &e);
 	dir2 = sphere_direction(&s, &e, dist2);
-	CU_ASSERT_DOUBLE_EQUAL(dir2, -2.35612, 0.0001);	
+	/* GeodSolve -i -E -p 16 -e 1 0 --input-string "1 0 0 -1" */
+	CU_ASSERT_DOUBLE_EQUAL(dir2, -134.995636455344851488216 * M_PI / 180.0, 1e-14);
+	CU_ASSERT_DOUBLE_EQUAL(dist2, 0.0246820563917664, 1e-14);
 }
 
 #if 0
@@ -247,12 +274,12 @@ static void test_gbox_from_spherical_coordinates(void)
 		gbox_geocentric_slow = LW_FALSE;
 
 		if (
-		    ( fabs( gbox.xmin - gbox_slow.xmin ) > gtolerance ) ||
-		    ( fabs( gbox.xmax - gbox_slow.xmax ) > gtolerance ) ||
-		    ( fabs( gbox.ymin - gbox_slow.ymin ) > gtolerance ) ||
-		    ( fabs( gbox.ymax - gbox_slow.ymax ) > gtolerance ) ||
-		    ( fabs( gbox.zmin - gbox_slow.zmin ) > gtolerance ) ||
-		    ( fabs( gbox.zmax - gbox_slow.zmax ) > gtolerance ) )
+			( fabs( gbox.xmin - gbox_slow.xmin ) > gtolerance ) ||
+			( fabs( gbox.xmax - gbox_slow.xmax ) > gtolerance ) ||
+			( fabs( gbox.ymin - gbox_slow.ymin ) > gtolerance ) ||
+			( fabs( gbox.ymax - gbox_slow.ymax ) > gtolerance ) ||
+			( fabs( gbox.zmin - gbox_slow.zmin ) > gtolerance ) ||
+			( fabs( gbox.zmax - gbox_slow.zmax ) > gtolerance ) )
 		{
 			printf("\n-------\n");
 			printf("If you are seeing this, cut and paste it, it is a randomly generated test case!\n");
@@ -728,12 +755,12 @@ static void test_edge_distance_to_point(void)
 	CU_ASSERT_DOUBLE_EQUAL(closest.lon, 0.0, 0.00001);
 
 	/* Ticket #2351 */
-     edge_set(149.386990599235, -26.3567415843982, 149.386990599247, -26.3567415843965, &e);
+	edge_set(149.386990599235, -26.3567415843982, 149.386990599247, -26.3567415843965, &e);
 	point_set(149.386990599235, -26.3567415843982, &g);
 	d = edge_distance_to_point(&e, &g, &closest);
 	CU_ASSERT_DOUBLE_EQUAL(d, 0.0, 0.00001);
-    // printf("CLOSE POINT(%g %g)\n", closest.lon,  closest.lat);
-    // printf(" ORIG POINT(%g %g)\n", g.lon, g.lat);
+	// printf("CLOSE POINT(%g %g)\n", closest.lon,  closest.lat);
+	// printf(" ORIG POINT(%g %g)\n", g.lon, g.lat);
 	CU_ASSERT_DOUBLE_EQUAL(g.lat, closest.lat, 0.00001);
 	CU_ASSERT_DOUBLE_EQUAL(g.lon, closest.lon, 0.00001);		 
 }
@@ -1116,6 +1143,15 @@ static void test_lwpoly_covers_point2d(void)
 	result = lwpoly_covers_point2d(poly, &pt_to_test);
 	CU_ASSERT_EQUAL(result, LW_TRUE);
 	lwgeom_free(lwg);
+
+	/* Triangle over the antimeridian */
+	lwg = lwgeom_from_wkt("POLYGON((140 52, 152.0 -6.0, -120.0 -29.0, 140 52))", LW_PARSER_CHECK_NONE);
+	poly = (LWPOLY*)lwg;
+	pt_to_test.x = -172.0;
+	pt_to_test.y = -13.0;
+	result = lwpoly_covers_point2d(poly, &pt_to_test);
+	CU_ASSERT_EQUAL(result, LW_TRUE);
+	lwgeom_free(lwg);
 	
 }
 
@@ -1212,7 +1248,7 @@ static void test_lwgeom_distance_sphere(void)
 	lwgeom_free(lwg1);
 	lwgeom_free(lwg2);
 
-    /* Ticket #2351 */
+	/* Ticket #2351 */
 	lwg1 = lwgeom_from_wkt("LINESTRING(149.386990599235 -26.3567415843982,149.386990599247 -26.3567415843965)", LW_PARSER_CHECK_NONE);
 	lwg2 = lwgeom_from_wkt("POINT(149.386990599235 -26.3567415843982)", LW_PARSER_CHECK_NONE);
 	d = lwgeom_distance_spheroid(lwg1, lwg2, &s, 0.0);
@@ -1241,40 +1277,65 @@ static void test_spheroid_distance(void)
 {
 	GEOGRAPHIC_POINT g1, g2;
 	double d;
+#if ! PROJ_GEODESIC
+	double epsilon; /* irregular */
+#else
+	const double epsilon = 1e-8; /* at least 10 nm precision */
+#endif
 	SPHEROID s;
 
 	/* Init to WGS84 */
 	spheroid_init(&s, 6378137.0, 6356752.314245179498);
 
-	/* One vertical degree */
+	/* One vertical degree
+	$ GeodSolve -E -i -p 16 --input-string "0 0 1 0" */
 	point_set(0.0, 0.0, &g1);
 	point_set(0.0, 1.0, &g2);
 	d = spheroid_distance(&g1, &g2, &s);
-	CU_ASSERT_DOUBLE_EQUAL(d, 110574.388615329, 0.001);
+#if ! PROJ_GEODESIC
+	epsilon = 1e-6;
+#endif
+	CU_ASSERT_DOUBLE_EQUAL(d, 110574.3885577987957342, epsilon);
 
-	/* Ten horizontal degrees */
+	/* Ten horizontal degrees
+	$ GeodSolve -E -i -p 16 --input-string "0 -10 0 0" */
 	point_set(-10.0, 0.0, &g1);
 	point_set(0.0, 0.0, &g2);
 	d = spheroid_distance(&g1, &g2, &s);
-	CU_ASSERT_DOUBLE_EQUAL(d, 1113194.90793274, 0.001);
+#if ! PROJ_GEODESIC
+	epsilon = 1e-3;
+#endif
+	CU_ASSERT_DOUBLE_EQUAL(d, 1113194.9079327357264771, epsilon);
 
-	/* One horizonal degree */
+	/* One horizonal degree
+	$ GeodSolve -E -i -p 16 --input-string "0 -1 0 0" */
 	point_set(-1.0, 0.0, &g1);
 	point_set(0.0, 0.0, &g2);
 	d = spheroid_distance(&g1, &g2, &s);
-	CU_ASSERT_DOUBLE_EQUAL(d, 111319.490779, 0.001);
+#if ! PROJ_GEODESIC
+	epsilon = 1e-4;
+#endif
+	CU_ASSERT_DOUBLE_EQUAL(d, 111319.4907932735726477, epsilon);
 
-	/* Around world w/ slight bend */
+	/* Around world w/ slight bend
+	$ GeodSolve -E -i -p 16 --input-string "0 -180 1 0" */
 	point_set(-180.0, 0.0, &g1);
 	point_set(0.0, 1.0, &g2);
 	d = spheroid_distance(&g1, &g2, &s);
-	CU_ASSERT_DOUBLE_EQUAL(d, 19893357.0704483, 0.001);
+#if ! PROJ_GEODESIC
+	epsilon = 1e-5;
+#endif
+	CU_ASSERT_DOUBLE_EQUAL(d, 19893357.0700676468277450, epsilon);
 
-	/* Up to pole */
+	/* Up to pole
+	$ GeodSolve -E -i -p 16 --input-string "0 -180 90 0" */
 	point_set(-180.0, 0.0, &g1);
 	point_set(0.0, 90.0, &g2);
 	d = spheroid_distance(&g1, &g2, &s);
-	CU_ASSERT_DOUBLE_EQUAL(d, 10001965.7295318, 0.001);
+#if ! PROJ_GEODESIC
+	epsilon = 1e-6;
+#endif
+	CU_ASSERT_DOUBLE_EQUAL(d, 10001965.7293127228117396, epsilon);
 
 }
 
@@ -1293,51 +1354,69 @@ static void test_spheroid_area(void)
 	/* Medford lot test polygon */
 	lwg = lwgeom_from_wkt("POLYGON((-122.848227067007 42.5007249610493,-122.848309475585 42.5007179884263,-122.848327688675 42.500835880696,-122.848245279942 42.5008428533324,-122.848227067007 42.5007249610493))", LW_PARSER_CHECK_NONE);
 	lwgeom_calculate_gbox_geodetic(lwg, &gbox);
+	/* sphere: Planimeter -E -p 20 -e $WGS84_SPHERE -r --input-string \
+	"42.5007249610493 -122.848227067007;42.5007179884263 -122.848309475585;"\
+	"42.500835880696 -122.848327688675;42.5008428533324 -122.848245279942" */
 	a1 = lwgeom_area_sphere(lwg, &s);
+	CU_ASSERT_DOUBLE_EQUAL(a1, 89.721147136698008, 0.1);
+	/* spheroid: Planimeter -E -p 20 -r --input-string \
+	"42.5007249610493 -122.848227067007;42.5007179884263 -122.848309475585;"\
+	"42.500835880696 -122.848327688675;42.5008428533324 -122.848245279942" */
 	a2 = lwgeom_area_spheroid(lwg, &s);
-	//printf("\nsphere: %.12g\nspheroid: %.12g\n", a1, a2);
-	CU_ASSERT_DOUBLE_EQUAL(a1, 89.7127703297, 0.1); /* sphere */
-	CU_ASSERT_DOUBLE_EQUAL(a2, 89.8684316032, 0.1); /* spheroid */
+	CU_ASSERT_DOUBLE_EQUAL(a2, 89.868413479309585, 0.1);
 	lwgeom_free(lwg);
 
 	/* Big-ass polygon */
 	lwg = lwgeom_from_wkt("POLYGON((-2 3, -2 4, -1 4, -1 3, -2 3))", LW_PARSER_CHECK_NONE);
 	lwgeom_calculate_gbox_geodetic(lwg, &gbox);
+	/* sphere: Planimeter -E -p 20 -e $WGS84_SPHERE -r --input-string "3 -2;4 -2;4 -1;3 -1" */
 	a1 = lwgeom_area_sphere(lwg, &s);
+	CU_ASSERT_DOUBLE_EQUAL(a1, 12341436880.106982993974659, 0.1);
+	/* spheroid: Planimeter -E -p 20 -r --input-string "3 -2;4 -2;4 -1;3 -1" */
+#if PROJ_GEODESIC
+	// printf("XXXXX %d\n", PJ_VERSION);
 	a2 = lwgeom_area_spheroid(lwg, &s);
-	//printf("\nsphere: %.12g\nspheroid: %.12g\n", a1, a2);
-	CU_ASSERT_DOUBLE_EQUAL(a1, 12341436880.1, 10.0); /* sphere */
-	CU_ASSERT_DOUBLE_EQUAL(a2, 12286574431.9, 10.0); /* spheroid */
+	CU_ASSERT_DOUBLE_EQUAL(a2, 12286884908.946891319597874, 0.1);
+#endif
 	lwgeom_free(lwg);
 
 	/* One-degree square */
 	lwg = lwgeom_from_wkt("POLYGON((8.5 2,8.5 1,9.5 1,9.5 2,8.5 2))", LW_PARSER_CHECK_NONE);
 	lwgeom_calculate_gbox_geodetic(lwg, &gbox);
+	/* sphere: Planimeter -E -p 20 -e $WGS84_SPHERE --input-string "2 8.5;1 8.5;1 9.5;2 9.5" */
 	a1 = lwgeom_area_sphere(lwg, &s);
+	CU_ASSERT_DOUBLE_EQUAL(a1, 12360265021.368023059138681, 0.1);
+	/* spheroid: Planimeter -E -p 20 --input-string "2 8.5;1 8.5;1 9.5;2 9.5" */
+#if PROJ_GEODESIC
 	a2 = lwgeom_area_spheroid(lwg, &s);
-	//printf("\nsphere: %.12g\nspheroid: %.12g\n", a1, a2);
-	CU_ASSERT_DOUBLE_EQUAL(a1, 12360265021.1, 10.0); /* sphere */
-	CU_ASSERT_DOUBLE_EQUAL(a2, 12304814950.073, 100.0); /* spheroid */
+	CU_ASSERT_DOUBLE_EQUAL(a2, 12305128751.042900673161556, 0.1);
+#endif
 	lwgeom_free(lwg);
 
-	/* One-degree square *near* dateline */
+	/* One-degree square *near* the antimeridian */
 	lwg = lwgeom_from_wkt("POLYGON((179.5 2,179.5 1,178.5 1,178.5 2,179.5 2))", LW_PARSER_CHECK_NONE);
 	lwgeom_calculate_gbox_geodetic(lwg, &gbox);
+	/* sphere: Planimeter -E -p 20 -e $WGS84_SPHERE -r --input-string "2 179.5;1 179.5;1 178.5;2 178.5" */
 	a1 = lwgeom_area_sphere(lwg, &s);
+	CU_ASSERT_DOUBLE_EQUAL(a1, 12360265021.368023059138681, 0.1);
+	/* spheroid: Planimeter -E -p 20 -r --input-string "2 179.5;1 179.5;1 178.5;2 178.5" */
+#if PROJ_GEODESIC
 	a2 = lwgeom_area_spheroid(lwg, &s);
-	//printf("\nsphere: %.12g\nspheroid: %.12g\n", a1, a2);
-	CU_ASSERT_DOUBLE_EQUAL(a1, 12360265021.1, 10.0); /* sphere */
-	CU_ASSERT_DOUBLE_EQUAL(a2, 12304814950.073, 100.0); /* spheroid */
+	CU_ASSERT_DOUBLE_EQUAL(a2, 12305128751.042900673161556, 0.1);
+#endif
 	lwgeom_free(lwg);
 
-	/* One-degree square *across* dateline */
+	/* One-degree square *across* the antimeridian */
 	lwg = lwgeom_from_wkt("POLYGON((179.5 2,179.5 1,-179.5 1,-179.5 2,179.5 2))", LW_PARSER_CHECK_NONE);
 	lwgeom_calculate_gbox_geodetic(lwg, &gbox);
+	/* sphere: Planimeter -E -p 20 -e $WGS84_SPHERE --input-string "2 179.5;1 179.5;1 -179.5;2 -179.5" */
 	a1 = lwgeom_area_sphere(lwg, &s);
+	CU_ASSERT_DOUBLE_EQUAL(a1, 12360265021.368023059138681, 0.1);
+	/* spheroid: Planimeter -E -p 20 --input-string "2 179.5;1 179.5;1 -179.5;2 -179.5" */
+#if PROJ_GEODESIC
 	a2 = lwgeom_area_spheroid(lwg, &s);
-	//printf("\nsphere: %.12g\nspheroid: %.12g\n", a1, a2);
-	CU_ASSERT_DOUBLE_EQUAL(a1, 12360265021.3679, 10.0); /* sphere */
-	CU_ASSERT_DOUBLE_EQUAL(a2, 12304814950.073, 100.0); /* spheroid */
+	CU_ASSERT_DOUBLE_EQUAL(a2, 12305128751.042900673161556, 0.1);
+#endif
 	lwgeom_free(lwg);
 }
 
@@ -1363,7 +1442,7 @@ static void test_gbox_utils(void)
 	CU_ASSERT_DOUBLE_EQUAL(a2, 0.017764, 0.0000001);
 	lwgeom_free(lwg);
 
-	/* One-degree square *across* dateline */
+	/* One-degree square *across* antimeridian */
 	lwg = lwgeom_from_wkt("POLYGON((179.5 2,179.5 1,-179.5 1,-179.5 2,179.5 2))", LW_PARSER_CHECK_NONE);
 	lwgeom_calculate_gbox_geodetic(lwg, &gbox);
 	a1 = gbox_angular_width(&gbox);
@@ -1373,7 +1452,7 @@ static void test_gbox_utils(void)
 	CU_ASSERT_DOUBLE_EQUAL(a2, 0.0174553, 0.0000001);
 	lwgeom_free(lwg);
 	
-	/* One-degree square *across* dateline */
+	/* One-degree square *across* antimeridian */
 	lwg = lwgeom_from_wkt("POLYGON((178.5 2,178.5 1,-179.5 1,-179.5 2,178.5 2))", LW_PARSER_CHECK_NONE);
 	lwgeom_calculate_gbox_geodetic(lwg, &gbox);
 	gbox_centroid(&gbox, &pt);
@@ -1395,18 +1474,18 @@ static void test_vector_angle(void)
 	p1.x = 1.0;
 	p2.y = 1.0;
 	angle = vector_angle(&p1, &p2);
-	CU_ASSERT_DOUBLE_EQUAL(angle, M_PI/2, 0.00001);
+	CU_ASSERT_DOUBLE_EQUAL(angle, M_PI_2, 0.00001);
 
 	p1.x = p2.y = 0.0;
 	p1.y = 1.0;
 	p2.x = 1.0;
 	angle = vector_angle(&p1, &p2);
-	CU_ASSERT_DOUBLE_EQUAL(angle, M_PI/2, 0.00001);
+	CU_ASSERT_DOUBLE_EQUAL(angle, M_PI_2, 0.00001);
 
 	p2.y = p2.x = 1.0;
 	normalize(&p2);
 	angle = vector_angle(&p1, &p2);
-	CU_ASSERT_DOUBLE_EQUAL(angle, M_PI/4, 0.00001);
+	CU_ASSERT_DOUBLE_EQUAL(angle, M_PI_4, 0.00001);
 
 	p2.x = p2.y = p2.z = 1.0;
 	normalize(&p2);
@@ -1426,7 +1505,7 @@ static void test_vector_rotate(void)
 	
 	p1.x = 1.0;
 	p2.y = 1.0;
-	angle = M_PI/4;
+	angle = M_PI_4;
 	vector_rotate(&p1, &p2, angle, &n);
 	//printf("%g %g %g\n\n", n.x, n.y, n.z);
 	CU_ASSERT_DOUBLE_EQUAL(n.x, 0.707107, 0.00001);	
@@ -1487,7 +1566,7 @@ static void test_lwgeom_area_sphere(void)
 void geodetic_suite_setup(void);
 void geodetic_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Geodetic", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("geodetic", NULL, NULL);
 	PG_ADD_TEST(suite, test_sphere_direction);
 	PG_ADD_TEST(suite, test_sphere_project);
 	PG_ADD_TEST(suite, test_lwgeom_area_sphere);
diff --git a/liblwgeom/cunit/cu_geodetic_data.h b/liblwgeom/cunit/cu_geodetic_data.h
index f4f74f5..94062bd 100644
--- a/liblwgeom/cunit/cu_geodetic_data.h
+++ b/liblwgeom/cunit/cu_geodetic_data.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_geodetic_data.h 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/liblwgeom/cunit/cu_geos.c b/liblwgeom/cunit/cu_geos.c
index 877b7bb..bc81410 100644
--- a/liblwgeom/cunit/cu_geos.c
+++ b/liblwgeom/cunit/cu_geos.c
@@ -18,6 +18,8 @@
 #include "lwgeom_geos.h"
 #include "cu_tester.h"
 
+#include "liblwgeom_internal.h"
+
 static void test_geos_noop(void)
 {
 	int i;
@@ -64,6 +66,62 @@ static void test_geos_noop(void)
 
 }
 
+static void test_geos_linemerge(void)
+{
+	char *ewkt;
+	char *out_ewkt;
+	LWGEOM *geom1;
+	LWGEOM *geom2;
+
+	ewkt = "MULTILINESTRING((0 0, 0 100),(0 -5, 0 0))";
+	geom1 = lwgeom_from_wkt(ewkt, LW_PARSER_CHECK_NONE);
+	geom2 = lwgeom_linemerge(geom1);
+	out_ewkt = lwgeom_to_ewkt((LWGEOM*)geom2);
+	ASSERT_STRING_EQUAL(out_ewkt, "LINESTRING(0 -5,0 0,0 100)");
+	lwfree(out_ewkt);
+	lwgeom_free(geom1);
+	lwgeom_free(geom2);
+
+	ewkt = "MULTILINESTRING EMPTY";
+	geom1 = lwgeom_from_wkt(ewkt, LW_PARSER_CHECK_NONE);
+	geom2 = lwgeom_linemerge(geom1);
+	out_ewkt = lwgeom_to_ewkt((LWGEOM*)geom2);
+	ASSERT_STRING_EQUAL(out_ewkt, "GEOMETRYCOLLECTION EMPTY");
+	lwfree(out_ewkt);
+	lwgeom_free(geom1);
+	lwgeom_free(geom2);
+}
+
+
+static void test_geos_subdivide(void)
+{
+#if POSTGIS_GEOS_VERSION < 35
+	// printf("%d\n", POSTGIS_GEOS_VERSION);
+	return;
+#else
+	char *ewkt = "MULTILINESTRING((0 0, 0 100))";
+	char *out_ewkt;
+	LWGEOM *geom1 = lwgeom_from_wkt(ewkt, LW_PARSER_CHECK_NONE);
+	LWGEOM *geom2 = lwgeom_segmentize2d(geom1, 1.0);
+	
+	LWCOLLECTION *geom3 = lwgeom_subdivide(geom2, 80);
+	out_ewkt = lwgeom_to_ewkt((LWGEOM*)geom3);
+	// printf("\n--------\n%s\n--------\n", out_ewkt);
+	CU_ASSERT_EQUAL(2, geom3->ngeoms);
+	lwfree(out_ewkt);
+	lwcollection_free(geom3);
+
+	geom3 = lwgeom_subdivide(geom2, 20);
+	out_ewkt = lwgeom_to_ewkt((LWGEOM*)geom3);
+	// printf("\n--------\n%s\n--------\n", out_ewkt);
+	CU_ASSERT_EQUAL(8, geom3->ngeoms);
+	lwfree(out_ewkt);
+	lwcollection_free(geom3);
+
+	lwgeom_free(geom2);
+	lwgeom_free(geom1);
+#endif
+}
 
 /*
 ** Used by test harness to register the tests in this file.
@@ -73,4 +131,6 @@ void geos_suite_setup(void)
 {
 	CU_pSuite suite = CU_add_suite("GEOS", NULL, NULL);
 	PG_ADD_TEST(suite, test_geos_noop);
+	PG_ADD_TEST(suite, test_geos_subdivide);
+	PG_ADD_TEST(suite, test_geos_linemerge);
 }
diff --git a/liblwgeom/cunit/cu_geos_cluster.c b/liblwgeom/cunit/cu_geos_cluster.c
new file mode 100644
index 0000000..39450f0
--- /dev/null
+++ b/liblwgeom/cunit/cu_geos_cluster.c
@@ -0,0 +1,250 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright 2015 Daniel Baston
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include "CUnit/Basic.h"
+
+#include "../lwgeom_log.h"
+#include "../lwgeom_geos.h"
+#include "cu_tester.h"
+
+static void assert_all_results_found(LWGEOM** results, size_t num_outputs, LWGEOM** expected, size_t num_expected_outputs)
+{
+	size_t i, j;
+
+	char found_equal = 0;
+	for (i = 0; i < num_outputs; i++)
+	{
+		for (j = 0; j < num_expected_outputs; j++)
+		{
+			if (lwgeom_same(results[i], expected[j]))
+			{
+				found_equal = 1;
+				break;
+			}
+		}
+
+		CU_ASSERT_TRUE(found_equal);
+	}
+}
+
+static GEOSGeometry** LWGEOMARRAY2GEOS(LWGEOM** lw_array, size_t num_geoms)
+{
+	size_t i;
+	GEOSGeometry** geos_geoms = lwalloc(num_geoms * sizeof(GEOSGeometry*));
+
+	for (i = 0; i < num_geoms; i++)
+	{
+		geos_geoms[i] = LWGEOM2GEOS(lw_array[i], 0);
+	}
+
+	return geos_geoms;
+}
+
+static LWGEOM** GEOSARRAY2LWGEOM(GEOSGeometry** geos_array, size_t num_geoms)
+{
+	size_t i;
+	LWGEOM** lw_geoms = lwalloc(num_geoms * sizeof(LWGEOM*));
+
+	for (i = 0; i < num_geoms; i++)
+	{
+		lw_geoms[i] = GEOS2LWGEOM(geos_array[i], 0);
+	}
+
+	return lw_geoms;
+}
+
+static LWGEOM** WKTARRAY2LWGEOM(char** wkt_array, size_t num_geoms)
+{
+	size_t i;
+
+	LWGEOM** lw_geoms = lwalloc(num_geoms * sizeof(LWGEOM*));
+
+	for (i = 0; i < num_geoms; i++)
+	{
+		lw_geoms[i] = lwgeom_from_wkt(wkt_array[i], LW_PARSER_CHECK_NONE);
+	}
+
+	return lw_geoms;
+}
+
+static void perform_cluster_intersecting_test(char** wkt_inputs, uint32_t num_inputs, char** wkt_outputs, uint32_t num_outputs)
+{
+	GEOSGeometry** geos_results;
+	LWGEOM** lw_results;
+	uint32_t num_clusters;
+
+	LWGEOM** expected_outputs = WKTARRAY2LWGEOM(wkt_outputs, num_outputs);
+	LWGEOM** lw_inputs = WKTARRAY2LWGEOM(wkt_inputs, num_inputs);
+	GEOSGeometry** geos_inputs = LWGEOMARRAY2GEOS(lw_inputs, num_inputs);
+
+	cluster_intersecting(geos_inputs, num_inputs, &geos_results, &num_clusters);
+	CU_ASSERT_EQUAL(num_outputs, num_clusters);
+
+	lw_results = GEOSARRAY2LWGEOM(geos_results, num_clusters);
+
+	assert_all_results_found(lw_results, num_clusters, expected_outputs, num_outputs);
+
+	/* Cleanup */
+	uint32_t i;
+	for(i = 0; i < num_clusters; i++)
+	{
+		GEOSGeom_destroy(geos_results[i]);
+	}
+	lwfree(geos_inputs);
+	lwfree(geos_results);
+
+	for(i = 0; i < num_outputs; i++)
+	{
+		lwgeom_free(expected_outputs[i]);
+		lwgeom_free(lw_results[i]);
+	}
+	lwfree(expected_outputs);
+	lwfree(lw_results);
+
+	for(i = 0; i < num_inputs; i++)
+	{
+		lwgeom_free(lw_inputs[i]);
+	}
+	lwfree(lw_inputs);
+}
+
+static void perform_cluster_within_distance_test(double tolerance, char** wkt_inputs, uint32_t num_inputs, char** wkt_outputs, uint32_t num_outputs)
+{
+	LWGEOM** lw_results;
+	uint32_t num_clusters;
+
+	LWGEOM** expected_outputs = WKTARRAY2LWGEOM(wkt_outputs, num_outputs);
+	LWGEOM** lw_inputs = WKTARRAY2LWGEOM(wkt_inputs, num_inputs);
+
+	cluster_within_distance(lw_inputs, num_inputs, tolerance, &lw_results, &num_clusters);
+
+	CU_ASSERT_EQUAL(num_outputs, num_clusters);
+
+	assert_all_results_found(lw_results, num_clusters, expected_outputs, num_outputs);
+
+	/* Cleanup */
+	uint32_t i;
+	for(i = 0; i < num_outputs; i++)
+	{
+		lwgeom_free(expected_outputs[i]);
+		lwgeom_free(lw_results[i]);
+	}
+	lwfree(lw_results);
+	lwfree(expected_outputs);
+	lwfree(lw_inputs);
+}
+
+static int init_geos_cluster_suite(void)
+{
+	initGEOS(lwnotice, lwgeom_geos_error);
+	return 0;
+}
+
+static int clean_geos_cluster_suite(void)
+{
+	finishGEOS();
+	return 0;
+}
+
+static void basic_test(void)
+{
+	char* a = "LINESTRING (0 0, 1 1)";
+	char* b = "LINESTRING (1 1, 2 2)";
+	char* c = "LINESTRING (5 5, 6 6)";
+
+	char* wkt_inputs_a[] = {a, b, c};
+	char* wkt_inputs_b[] = {b, c, a};
+	char* wkt_inputs_c[] = {c, a, b};
+
+	char* expected_outputs_a[] = { "GEOMETRYCOLLECTION(LINESTRING (0 0, 1 1), LINESTRING (1 1, 2 2))",
+	                               "GEOMETRYCOLLECTION(LINESTRING (5 5, 6 6))"
+	                             };
+
+	char* expected_outputs_b[] = { "GEOMETRYCOLLECTION(LINESTRING (1 1, 2 2), LINESTRING (0 0, 1 1))",
+	                               "GEOMETRYCOLLECTION(LINESTRING (5 5, 6 6))"
+	                             };
+
+	char* expected_outputs_c[] = { "GEOMETRYCOLLECTION(LINESTRING (0 0, 1 1), LINESTRING (1 1, 2 2))",
+	                               "GEOMETRYCOLLECTION(LINESTRING (5 5, 6 6))"
+	                             };
+
+	perform_cluster_intersecting_test(wkt_inputs_a, 3, expected_outputs_a, 2);
+	perform_cluster_intersecting_test(wkt_inputs_b, 3, expected_outputs_b, 2);
+	perform_cluster_intersecting_test(wkt_inputs_c, 3, expected_outputs_c, 2);
+
+	perform_cluster_within_distance_test(0, wkt_inputs_a, 3, expected_outputs_a, 2);
+	perform_cluster_within_distance_test(0, wkt_inputs_b, 3, expected_outputs_b, 2);
+	perform_cluster_within_distance_test(0, wkt_inputs_c, 3, expected_outputs_c, 2);
+}
+
+static void basic_distance_test(void)
+{
+	char* a = "LINESTRING (0 0, 1 1)";
+	char* b = "LINESTRING (1 1, 2 2)";
+	char* c = "LINESTRING (5 5, 6 6)";
+
+	char* wkt_inputs[] = {a, b, c};
+
+	char* expected_outputs_all[] = {"GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1), LINESTRING(1 1, 2 2), LINESTRING(5 5, 6 6))"};
+	char* expected_outputs_partial[] = {"GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1), LINESTRING(1 1, 2 2))",
+	                                    "GEOMETRYCOLLECTION(LINESTRING(5 5, 6 6))"
+	                                   };
+
+	perform_cluster_within_distance_test(0, wkt_inputs, 3, expected_outputs_partial, 2);
+	perform_cluster_within_distance_test(sqrt(18) - 0.0000001, wkt_inputs, 3, expected_outputs_partial, 2);
+	perform_cluster_within_distance_test(sqrt(18) + 0.0000001, wkt_inputs, 3, expected_outputs_all, 1);
+}
+
+static void nonsequential_test(void)
+{
+	char* wkt_inputs[] = { "LINESTRING (0 0, 1 1)",
+	                       "LINESTRING (1 1, 2 2)",
+	                       "LINESTRING (5 5, 6 6)",
+	                       "LINESTRING (5 5, 4 4)",
+	                       "LINESTRING (3 3, 2 2)",
+	                       "LINESTRING (3 3, 4 4)"
+	                     };
+
+	char* expected_outputs[] = { "GEOMETRYCOLLECTION (LINESTRING (0 0, 1 1), LINESTRING (1 1, 2 2), LINESTRING (5 5, 6 6), LINESTRING (5 5, 4 4), LINESTRING (3 3, 2 2), LINESTRING (3 3, 4 4))" };
+
+	perform_cluster_intersecting_test(wkt_inputs, 6, expected_outputs, 1);
+	perform_cluster_within_distance_test(0, wkt_inputs, 6, expected_outputs, 1);
+}
+
+static void single_input_test(void)
+{
+	char* wkt_inputs[] = { "POINT (0 0)" };
+	char* expected_outputs[] = { "GEOMETRYCOLLECTION (POINT (0 0))" };
+
+	perform_cluster_intersecting_test(wkt_inputs, 1, expected_outputs, 1);
+	perform_cluster_within_distance_test(1, wkt_inputs, 1, expected_outputs, 1);
+}
+
+static void empty_inputs_test(void)
+{
+	char* wkt_inputs[] = { "POLYGON EMPTY", "LINESTRING EMPTY"};
+	char* expected_outputs[] = { "GEOMETRYCOLLECTION( LINESTRING EMPTY )", "GEOMETRYCOLLECTION( POLYGON EMPTY )" };
+
+	perform_cluster_intersecting_test(wkt_inputs, 2, expected_outputs, 2);
+	perform_cluster_within_distance_test(1, wkt_inputs, 2, expected_outputs, 2);
+}
+
+void geos_cluster_suite_setup(void);
+void geos_cluster_suite_setup(void)
+{
+	CU_pSuite suite = CU_add_suite("Clustering", init_geos_cluster_suite, clean_geos_cluster_suite);
+	PG_ADD_TEST(suite, basic_test);
+	PG_ADD_TEST(suite, nonsequential_test);
+	PG_ADD_TEST(suite, basic_distance_test);
+	PG_ADD_TEST(suite, single_input_test);
+	PG_ADD_TEST(suite, empty_inputs_test);
+}
diff --git a/liblwgeom/cunit/cu_homogenize.c b/liblwgeom/cunit/cu_homogenize.c
index 7e26a96..2fbda97 100644
--- a/liblwgeom/cunit/cu_homogenize.c
+++ b/liblwgeom/cunit/cu_homogenize.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_homogenize.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -254,7 +253,7 @@ static void test_geom(void)
 void homogenize_suite_setup(void);
 void homogenize_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Homogenize", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("homogenize", NULL, NULL);
 	PG_ADD_TEST(suite, test_coll_point);
 	PG_ADD_TEST(suite, test_coll_line);
 	PG_ADD_TEST(suite, test_coll_poly);
diff --git a/liblwgeom/cunit/cu_in_encoded_polyline.c b/liblwgeom/cunit/cu_in_encoded_polyline.c
new file mode 100644
index 0000000..597493c
--- /dev/null
+++ b/liblwgeom/cunit/cu_in_encoded_polyline.c
@@ -0,0 +1,65 @@
+/**********************************************************************
+*
+* PostGIS - Spatial Types for PostgreSQL
+* http://postgis.net
+*
+* Copyright 2014 Kashif Rasul <kashif.rasul at gmail.com> and
+*                Shoaib Burq <saburq at gmail.com>
+*
+* This is free software; you can redistribute and/or modify it under
+* the terms of the GNU General Public Licence. See the COPYING file.
+*
+**********************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "CUnit/Basic.h"
+
+#include "liblwgeom_internal.h"
+#include "cu_tester.h"
+
+static void do_encoded_polyline_test(char * in, int precision, char * out)
+{
+	LWGEOM *g;
+	char * h;
+	size_t size;
+
+	g = lwgeom_from_encoded_polyline(in, precision);
+	h = lwgeom_to_wkt(g, WKT_EXTENDED, 15, &size);
+
+	if (strcmp(h, out))
+		fprintf(stderr, "\nIn:   %s\nOut:  %s\nTheo: %s\n", in, h, out);
+
+	CU_ASSERT_STRING_EQUAL(h, out);
+
+	lwgeom_free(g);
+	if ( h ) lwfree(h);
+}
+
+static void in_encoded_polyline_test_geoms(void)
+{
+	do_encoded_polyline_test(
+	    "_p~iF~ps|U_ulLnnqC_mqNvxq`@",
+	    5,
+			"SRID=4326;LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)");
+}
+
+static void in_encoded_polyline_test_precision(void)
+{
+	do_encoded_polyline_test(
+			"o}~~|AdshNoSsBgd at eGoBlm@wKhj@~@?",
+	    6,
+	    "SRID=4326;LINESTRING(-0.250691 49.283048,-0.250633 49.283376,-0.250502 49.283972,-0.251245 49.284028,-0.251938 49.284232,-0.251938 49.2842)");
+}
+
+/*
+** Used by test harness to register the tests in this file.
+*/
+void in_encoded_polyline_suite_setup(void);
+void in_encoded_polyline_suite_setup(void)
+{
+	CU_pSuite suite = CU_add_suite("encoded_polyline_input", NULL, NULL);
+	PG_ADD_TEST(suite, in_encoded_polyline_test_geoms);
+	PG_ADD_TEST(suite, in_encoded_polyline_test_precision);
+}
diff --git a/liblwgeom/cunit/cu_in_geojson.c b/liblwgeom/cunit/cu_in_geojson.c
index 732843a..e6871cc 100644
--- a/liblwgeom/cunit/cu_in_geojson.c
+++ b/liblwgeom/cunit/cu_in_geojson.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -23,73 +22,49 @@ static void do_geojson_test(const char * exp, char * in, char * exp_srs, int pre
 {
 	LWGEOM *g;
 	char * h = NULL;
-  char * srs = NULL;
-  size_t size;
+	char * srs = NULL;
+	size_t size;
 
 	g = lwgeom_from_geojson(in, &srs);
-  if ( ! g ) {
+	if ( ! g ) 
+	{
 		fprintf(stderr, "\nIn:   %s\nExp:  %s\nObt: %s\n", in, exp, cu_error_msg);
-	  CU_ASSERT(g != NULL);
-    return;
-  }
+		CU_ASSERT(g != NULL);
+		return;
+	}
 
 	h = lwgeom_to_wkt(g, WKT_EXTENDED, 15, &size);
 
-	if (strcmp(h, exp)) {
+	if (strcmp(h, exp)) 
+	{
 		fprintf(stderr, "\nIn:   %s\nExp:  %s\nObt: %s\n", in, exp, h);
-	  CU_ASSERT_STRING_EQUAL(h, exp);
-  }
-
-  if ( exp_srs ) {
-    if ( ! srs ) {
-      fprintf(stderr, "\nIn:   %s\nExp:  %s\nObt: (null)\n", in, exp_srs);
-	    CU_ASSERT_EQUAL(srs, exp_srs);
-    }
-    else if (strcmp(srs, exp_srs)) {
-      fprintf(stderr, "\nIn:   %s\nExp:  %s\nObt: %s\n", in, exp_srs, srs);
-	    CU_ASSERT_STRING_EQUAL(srs, exp_srs);
-    }
-  } else if ( srs ) {
-    fprintf(stderr, "\nIn:   %s\nExp:  (null)\nObt: %s\n", in, srs);
-	  CU_ASSERT_EQUAL(srs, exp_srs);
-  }
+		CU_ASSERT_STRING_EQUAL(h, exp);
+	}
+
+	if ( exp_srs ) 
+	{
+		if ( ! srs ) 
+		{
+			fprintf(stderr, "\nIn:   %s\nExp:  %s\nObt: (null)\n", in, exp_srs);
+			CU_ASSERT_EQUAL(srs, exp_srs);
+		}
+		else if (strcmp(srs, exp_srs)) 
+		{
+			fprintf(stderr, "\nIn:   %s\nExp:  %s\nObt: %s\n", in, exp_srs, srs);
+			CU_ASSERT_STRING_EQUAL(srs, exp_srs);
+		}
+	} 
+	else if ( srs ) 
+	{
+		fprintf(stderr, "\nIn:   %s\nExp:  (null)\nObt: %s\n", in, srs);
+		CU_ASSERT_EQUAL(srs, exp_srs);
+	}
 
 	lwgeom_free(g);
 	if ( h ) lwfree(h);
-  if ( srs ) lwfree(srs);
+	if ( srs ) lwfree(srs);
 }
 
-#if 0
-static void do_geojson_unsupported(char * in, char * exp)
-{
-	LWGEOM *g;
-	char * h = NULL;
-  char * srs = NULL;
-  size_t size;
-
-	g = lwgeom_from_geojson(in, &srs);
-
-  if ( g ) {
-	  h = lwgeom_to_wkt(g, WKT_ISO, 1, &size);
-    fprintf(stderr, "\nIn:   %s\nExp:  %s\nObt: %s\n",
-              in, exp, h);
-    CU_ASSERT(!g);
-  } else {
-
-    if (strcmp(cu_error_msg, exp))
-      fprintf(stderr, "\nIn:   %s\nExp:  %s\nObt: %s\n",
-              in, exp, cu_error_msg);
-    CU_ASSERT_STRING_EQUAL(in, cu_error_msg);
-  }
-
-  cu_error_msg_reset();
-
-  if ( srs ) lwfree(srs);
-  if ( h ) lwfree(h);
-	lwgeom_free(g);
-}
-#endif 
-
 static void in_geojson_test_srid(void)
 {
 	/* Linestring */
@@ -206,12 +181,12 @@ static void in_geojson_test_geoms(void)
 	    "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[0,1],[2,3],[4,5],[0,1]]],[[[6,7],[8,9],[10,11],[6,7]]]]}",
 	    NULL, 0, 0);
 
-  /* MultiPolygon with internal rings */
-  /* See http://trac.osgeo.org/postgis/ticket/2216 */
-  do_geojson_test(
-      "MULTIPOLYGON(((4 0,0 -4,-4 0,0 4,4 0),(2 0,0 2,-2 0,0 -2,2 0)),((24 0,20 -4,16 0,20 4,24 0),(22 0,20 2,18 0,20 -2,22 0)),((44 0,40 -4,36 0,40 4,44 0),(42 0,40 2,38 0,40 -2,42 0)))",
-      "{'type':'MultiPolygon','coordinates':[[[[4,0],[0,-4],[-4,0],[0,4],[4,0]],[[2,0],[0,2],[-2,0],[0,-2],[2,0]]],[[[24,0],[20,-4],[16,0],[20,4],[24,0]],[[22,0],[20,2],[18,0],[20,-2],[22,0]]],[[[44,0],[40,-4],[36,0],[40,4],[44,0]],[[42,0],[40,2],[38,0],[40,-2],[42,0]]]]}",
-      NULL, 0, 0);
+	/* MultiPolygon with internal rings */
+	/* See http://trac.osgeo.org/postgis/ticket/2216 */
+	do_geojson_test(
+	    "MULTIPOLYGON(((4 0,0 -4,-4 0,0 4,4 0),(2 0,0 2,-2 0,0 -2,2 0)),((24 0,20 -4,16 0,20 4,24 0),(22 0,20 2,18 0,20 -2,22 0)),((44 0,40 -4,36 0,40 4,44 0),(42 0,40 2,38 0,40 -2,42 0)))",
+	    "{'type':'MultiPolygon','coordinates':[[[[4,0],[0,-4],[-4,0],[0,4],[4,0]],[[2,0],[0,2],[-2,0],[0,-2],[2,0]]],[[[24,0],[20,-4],[16,0],[20,4],[24,0]],[[22,0],[20,2],[18,0],[20,-2],[22,0]]],[[[44,0],[40,-4],[36,0],[40,4],[44,0]],[[42,0],[40,2],[38,0],[40,-2],[42,0]]]]}",
+	    NULL, 0, 0);
 
 	/* GeometryCollection */
 	do_geojson_test(
@@ -224,7 +199,6 @@ static void in_geojson_test_geoms(void)
 	    "GEOMETRYCOLLECTION EMPTY",
 	    "{\"type\":\"GeometryCollection\",\"geometries\":[]}",
 	    NULL, 0, 0);
-
 }
 
 /*
@@ -233,7 +207,7 @@ static void in_geojson_test_geoms(void)
 void in_geojson_suite_setup(void);
 void in_geojson_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("GeoJSON Input", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("geojson_input", NULL, NULL);
 	PG_ADD_TEST(suite, in_geojson_test_srid);
 	PG_ADD_TEST(suite, in_geojson_test_bbox);
 	PG_ADD_TEST(suite, in_geojson_test_geoms);
diff --git a/liblwgeom/cunit/cu_in_twkb.c b/liblwgeom/cunit/cu_in_twkb.c
new file mode 100644
index 0000000..0930741
--- /dev/null
+++ b/liblwgeom/cunit/cu_in_twkb.c
@@ -0,0 +1,244 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ * Copyright 2010 Paul Ramsey <pramsey at cleverelephant.ca>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "CUnit/Basic.h"
+
+#include "liblwgeom_internal.h"
+#include "cu_tester.h"
+
+/*
+** Global variable to hold TWKB strings
+*/
+char *hex_a;
+char *hex_b;
+uint8_t precision = 0;
+uint8_t variant = 0;
+
+/*
+** The suite initialization function.
+** Create any re-used objects.
+*/
+static int init_twkb_in_suite(void)
+{
+	hex_a = NULL;
+	hex_b = NULL;
+	return 0;
+}
+
+/*
+** The suite cleanup function.
+** Frees any global objects.
+*/
+static int clean_twkb_in_suite(void)
+{
+	if (hex_a) free(hex_a);
+	if (hex_b) free(hex_b);
+	hex_a = NULL;
+	hex_b = NULL;
+	return 0;
+}
+
+
+static void cu_twkb_in(char *wkt)
+{
+	LWGEOM_PARSER_RESULT pr;
+	LWGEOM *g_a, *g_b;
+	uint8_t *twkb_a, *twkb_b;
+	size_t twkb_size_a, twkb_size_b;
+	/* int i; char *hex; */
+
+	/* Turn WKT into geom */
+	lwgeom_parse_wkt(&pr, wkt, LW_PARSER_CHECK_NONE);
+	if ( pr.errcode )
+	{
+		printf("ERROR: %s\n", pr.message);
+		printf("POSITION: %d\n", pr.errlocation);
+		exit(0);
+	}
+	
+	/* Get the geom */
+	g_a = pr.geom;
+
+	/* Turn geom into TWKB */
+	twkb_a = lwgeom_to_twkb(g_a, variant, precision, precision, precision, &twkb_size_a);
+
+	// printf("\n Size: %ld\n", twkb_size_a);
+
+	/* Turn TWKB back into geom  */
+	g_b = lwgeom_from_twkb(twkb_a, twkb_size_a, LW_PARSER_CHECK_NONE);
+
+	// printf("\n Org: %s\n 1st: %s\n 2nd: %s\n", wkt, lwgeom_to_ewkt(g_a), lwgeom_to_ewkt(g_b));
+
+	/* Turn geom to TWKB again */
+	twkb_b = lwgeom_to_twkb(g_b, variant, precision, precision, precision, &twkb_size_b);
+
+	/* Turn TWKB into hex for comparisons */
+	if ( hex_a ) lwfree(hex_a);
+	if ( hex_b ) lwfree(hex_b);
+	hex_a = hexbytes_from_bytes(twkb_a, twkb_size_a);
+	hex_b = hexbytes_from_bytes(twkb_b, twkb_size_b);
+
+	/* Clean up */
+	lwfree(twkb_a);
+	lwfree(twkb_b);
+	lwgeom_parser_result_free(&pr);
+	lwgeom_free(g_b);
+}
+
+static void test_twkb_in_point(void)
+{
+	cu_twkb_in("POINT(0 0 0 0)");
+//	printf("old: %s\nnew: %s\n",hex_a, hex_b);
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("POINT(1 1)");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("POINT EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+}
+
+static void test_twkb_in_linestring(void)
+{
+	cu_twkb_in("LINESTRING(0 0,1 1)");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("LINESTRING(0 0 1,1 1 2,2 2 3)");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("LINESTRING EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+}
+
+static void test_twkb_in_polygon(void)
+{
+	cu_twkb_in("POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("POLYGON((0 0 0 1,0 1 0 2,1 1 0 3,1 0 0 4,0 0 0 5))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("POLYGON((0 0 0 1,0 1 0 2,1 1 0 3,1 0 0 4,0 0 0 5))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("POLYGON EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+}
+
+static void test_twkb_in_multipoint(void)
+{
+	cu_twkb_in("MULTIPOINT Z EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("MULTIPOINT(1 2, EMPTY, 5 6)");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+	// printf(" 1st: %s\n 2nd: %s\n", hex_a, hex_b);
+
+	cu_twkb_in("MULTIPOINT(0 0 0,0 1 0,1 1 0,1 0 0,0 0 1)");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("MULTIPOINT(1 2 3, 1 2 3, 4 5 6, -3 -4 -5, -10 -5 -1)");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+}
+
+static void test_twkb_in_multilinestring(void)
+{
+	cu_twkb_in("MULTILINESTRING((0 0,0 1),(1 1, 10 10))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("MULTILINESTRING((0 0,0 1),EMPTY,(1 1, 10 10))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("MULTILINESTRING((0 0 200000,0 1 10),(1 100000000 23, 10 10 45))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+	// printf(" 1st: %s\n 2nd: %s\n", hex_a, hex_b);
+
+	cu_twkb_in("MULTILINESTRING EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+}
+
+static void test_twkb_in_multipolygon(void)
+{
+	cu_twkb_in("MULTIPOLYGON(((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),((-1 -1 0,-1 2 0,2 2 0,2 -1 0,-1 -1 0),(0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+	//printf("old: %s\nnew: %s\n",hex_a, hex_b);
+
+	cu_twkb_in("MULTIPOLYGON EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+	//printf("old: %s\nnew: %s\n",hex_a, hex_b);
+}
+
+static void test_twkb_in_collection(void)
+{
+	cu_twkb_in("GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0))),POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),POINT(1 1 1),LINESTRING(0 0 0, 1 1 1))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("GEOMETRYCOLLECTION(POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),POINT(1 1 1))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("GEOMETRYCOLLECTION EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("GEOMETRYCOLLECTION(POINT(1 2 3), LINESTRING EMPTY, POINT(4 5 6))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_twkb_in("GEOMETRYCOLLECTION(POINT(1 2 3), POINT EMPTY, POINT(4 5 6))");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+}
+
+/*
+** PRECISION TESTS HERE: We ALTER THE 'precision' GLOBAL
+*/
+
+static void test_twkb_in_precision(void)
+{
+	/* Try these cases at several different precisions */
+	for ( precision = 1; precision <= 6; precision++ )
+	{
+		cu_twkb_in("MULTILINESTRING((0 0,0 1),EMPTY,(1 1, 10 10))");
+		CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+		cu_twkb_in("MULTIPOLYGON(((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),((-1 -1 0,-1 2 0,2 2 0,2 -1 0,-1 -1 0),(0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)))");
+		CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+		cu_twkb_in("GEOMETRYCOLLECTION(POLYGON((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),POINT(1 1 1))");
+		CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+		cu_twkb_in("MULTILINESTRING((0 0 200000,0 1 10),(1 100000000 23, 10 10 45))");
+		// printf("old: %s\nnew: %s\n",hex_a, hex_b);
+		CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+	}
+
+	/* Go back to default precision */
+	precision = 0;
+}
+
+
+
+/*
+** Used by test harness to register the tests in this file.
+*/
+void twkb_in_suite_setup(void);
+void twkb_in_suite_setup(void)
+{
+	CU_pSuite suite = CU_add_suite("twkb_input", init_twkb_in_suite, clean_twkb_in_suite);
+	PG_ADD_TEST(suite, test_twkb_in_point);
+	PG_ADD_TEST(suite, test_twkb_in_linestring);
+	PG_ADD_TEST(suite, test_twkb_in_polygon);
+	PG_ADD_TEST(suite, test_twkb_in_multipoint);
+	PG_ADD_TEST(suite, test_twkb_in_multilinestring);
+	PG_ADD_TEST(suite, test_twkb_in_multipolygon);
+	PG_ADD_TEST(suite, test_twkb_in_collection);
+	PG_ADD_TEST(suite, test_twkb_in_precision);
+}
diff --git a/liblwgeom/cunit/cu_in_wkb.c b/liblwgeom/cunit/cu_in_wkb.c
index 7046b40..19c21d7 100644
--- a/liblwgeom/cunit/cu_in_wkb.c
+++ b/liblwgeom/cunit/cu_in_wkb.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_out_wkb.c 6036 2010-10-03 18:14:35Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -110,8 +109,23 @@ static void test_wkb_in_point(void)
 	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
 
 	cu_wkb_in("SRID=4;POINTM(1 1 1)");
-//	printf("old: %s\nnew: %s\n",hex_a, hex_b);
 	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+	
+	cu_wkb_in("POINT EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_wkb_in("SRID=4326;POINT EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_wkb_in("POINT Z EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_wkb_in("POINT M EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
+	cu_wkb_in("POINT ZM EMPTY");
+	CU_ASSERT_STRING_EQUAL(hex_a, hex_b);
+
 }
 
 static void test_wkb_in_linestring(void)
@@ -216,7 +230,7 @@ static void test_wkb_in_malformed(void)
 void wkb_in_suite_setup(void);
 void wkb_in_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("WKB Input", init_wkb_in_suite, clean_wkb_in_suite);
+	CU_pSuite suite = CU_add_suite("wkb_input", init_wkb_in_suite, clean_wkb_in_suite);
 	PG_ADD_TEST(suite, test_wkb_in_point);
 	PG_ADD_TEST(suite, test_wkb_in_linestring);
 	PG_ADD_TEST(suite, test_wkb_in_polygon);
diff --git a/liblwgeom/cunit/cu_in_wkt.c b/liblwgeom/cunit/cu_in_wkt.c
index 5438ad4..04e41c6 100644
--- a/liblwgeom/cunit/cu_in_wkt.c
+++ b/liblwgeom/cunit/cu_in_wkt.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_out_wkt.c 6036 2010-10-03 18:14:35Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -56,8 +55,10 @@ static char* cu_wkt_in(char *wkt, uint8_t variant)
 
 	rv = lwgeom_parse_wkt(&p, wkt, 0);
 	if( p.errcode ) {
+	  CU_ASSERT_EQUAL( rv, LW_FAILURE );
 		return strdup(p.message);
 	}
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	s = lwgeom_to_wkt(p.geom, variant, 8, NULL);
 	lwgeom_parser_result_free(&p);
 	return s;
@@ -68,7 +69,7 @@ static void test_wkt_in_point(void)
 {
 	s = "POINT(1e700 0)";
 	r = cu_wkt_in(s, WKT_SFSQL);
-	CU_TEST ( ! strcmp(r, "POINT(inf 0)") || ! strcmp(r, "POINT(1.#INF 0)") );
+	CU_TEST ( ! strcmp(r, "POINT(inf 0)") || ! strcmp(r, "POINT(1.#INF 0)") || ! strcmp(r, "POINT(Infinity 0)") );
 	lwfree(r);
 
 	s = "POINT(0 0)";
@@ -335,7 +336,8 @@ static void test_wkt_in_errlocation(void)
 	wkt = "LINESTRING((0 0 0,1 1)";
 	lwgeom_parser_result_init(&p);
 	rv = lwgeom_parse_wkt(&p, wkt, LW_PARSER_CHECK_ALL);
-	CU_ASSERT(fabs(12 - p.errlocation) < 1.5);
+	CU_ASSERT_EQUAL( rv, LW_FAILURE );
+	CU_ASSERT((12 - p.errlocation) < 1.5);
 
 //	printf("errlocation %d\n", p.errlocation);
 //	printf("message %s\n", p.message);
@@ -350,7 +352,7 @@ static void test_wkt_in_errlocation(void)
 void wkt_in_suite_setup(void);
 void wkt_in_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("WKT Input", init_wkt_in_suite, clean_wkt_in_suite);
+	CU_pSuite suite = CU_add_suite("wkt_input", init_wkt_in_suite, clean_wkt_in_suite);
 	PG_ADD_TEST(suite, test_wkt_in_point);
 	PG_ADD_TEST(suite, test_wkt_in_linestring);
 	PG_ADD_TEST(suite, test_wkt_in_polygon);
diff --git a/liblwgeom/cunit/cu_libgeom.c b/liblwgeom/cunit/cu_libgeom.c
index 3dc0080..6fb3187 100644
--- a/liblwgeom/cunit/cu_libgeom.c
+++ b/liblwgeom/cunit/cu_libgeom.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_libgeom.c 13698 2015-06-24 20:21:57Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -216,8 +215,8 @@ static void test_lwgeom_calculate_gbox(void)
 	lwgeom_free(g);
 	
 	/* Geometry with NaN 0101000020E8640000000000000000F8FF000000000000F8FF */
-	/* NaN should show up in bbox */
-	g = lwgeom_from_hexwkb("0101000020E8640000000000000000F8FF000000000000F8FF", LW_PARSER_CHECK_NONE);
+	/* NaN should show up in bbox for "SRID=4326;POINT(0 NaN)" */
+	g = lwgeom_from_hexwkb("0101000020E86400000000000000000000000000000000F8FF", LW_PARSER_CHECK_NONE);
 	lwgeom_calculate_gbox_cartesian(g, &b);
 	CU_ASSERT(isnan(b.ymax));
 	lwgeom_free(g);	
@@ -241,7 +240,6 @@ static void test_gbox_serialized_size(void)
 
 
 
-
 static void test_lwgeom_from_gserialized(void)
 {
 	LWGEOM *geom;
@@ -250,7 +248,7 @@ static void test_lwgeom_from_gserialized(void)
 	char *out_ewkt;
 	int i = 0;
 
-	char ewkt[][512] =
+	char *ewkt[] =
 	{
 		"POINT EMPTY",
 		"POINT(0 0.2)",
@@ -271,13 +269,13 @@ static void test_lwgeom_from_gserialized(void)
 		"SRID=4326;MULTIPOLYGON EMPTY",
 		"SRID=4326;GEOMETRYCOLLECTION(POINT(0 1),POLYGON((-1 -1,-1 2.5,2 2,2 -1,-1 -1),(0 0,0 1,1 1,1 0,0 0)),MULTIPOLYGON(((-1 -1,-1 2.5,2 2,2 -1,-1 -1),(0 0,0 1,1 1,1 0,0 0),(-0.5 -0.5,-0.5 -0.4,-0.4 -0.4,-0.4 -0.5,-0.5 -0.5))))",
 		"SRID=4326;GEOMETRYCOLLECTION EMPTY",
-		"SRID=4326;GEOMETRYCOLLECTION(POINT EMPTY, MULTIPOLYGON EMPTY)",
+		"SRID=4326;GEOMETRYCOLLECTION(POINT EMPTY,MULTIPOLYGON EMPTY)",
 		"MULTICURVE((5 5 1 3,3 5 2 2,3 3 3 1,0 3 1 1),CIRCULARSTRING(0 0 0 0,0.26794 1 3 -2,0.5857864 1.414213 1 2))",
 		"MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0)),((7 8,10 10,6 14,4 11,7 8)))",
 		"MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING EMPTY))",
 	};
 
-	for ( i = 0; i < 13; i++ )
+	for ( i = 0; i < (sizeof ewkt/sizeof(char*)); i++ )
 	{
 		LWGEOM* geom2;
 
@@ -641,8 +639,8 @@ static void test_lwgeom_flip_coordinates(void)
 
 
 	/*
-	     * Srid
-	     */
+	* Srid
+	*/
 
 	do_lwgeom_flip_coordinates(
 	    "SRID=4326;POINT(1 2)",
@@ -934,6 +932,61 @@ static void test_lwgeom_same(void)
 
 }
 
+/*
+ * Test lwgeom_force_curve
+ */
+static void test_lwgeom_as_curve(void)
+{
+	LWGEOM *geom;
+	LWGEOM *geom2;
+	char *in_ewkt, *out_ewkt;
+
+	geom = lwgeom_from_wkt("LINESTRING(0 0, 10 0)", LW_PARSER_CHECK_NONE);
+	geom2 = lwgeom_as_curve(geom);
+	in_ewkt = "COMPOUNDCURVE((0 0,10 0))";
+	out_ewkt = lwgeom_to_ewkt(geom2);
+	if (strcmp(in_ewkt, out_ewkt))
+		fprintf(stderr, "\nExp:   %s\nObt:  %s\n", in_ewkt, out_ewkt);
+	CU_ASSERT_STRING_EQUAL(in_ewkt, out_ewkt);
+	lwfree(out_ewkt);
+	lwgeom_free(geom);
+	lwgeom_free(geom2);
+
+	geom = lwgeom_from_wkt("MULTILINESTRING((0 0, 10 0))", LW_PARSER_CHECK_NONE);
+	geom2 = lwgeom_as_curve(geom);
+	in_ewkt = "MULTICURVE((0 0,10 0))";
+	out_ewkt = lwgeom_to_ewkt(geom2);
+	if (strcmp(in_ewkt, out_ewkt))
+		fprintf(stderr, "\nExp:   %s\nObt:  %s\n", in_ewkt, out_ewkt);
+	CU_ASSERT_STRING_EQUAL(in_ewkt, out_ewkt);
+	lwfree(out_ewkt);
+	lwgeom_free(geom);
+	lwgeom_free(geom2);
+
+	geom = lwgeom_from_wkt("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))", LW_PARSER_CHECK_NONE);
+	geom2 = lwgeom_as_curve(geom);
+	in_ewkt = "CURVEPOLYGON((0 0,10 0,10 10,0 10,0 0))";
+	out_ewkt = lwgeom_to_ewkt(geom2);
+	if (strcmp(in_ewkt, out_ewkt))
+		fprintf(stderr, "\nExp:   %s\nObt:  %s\n", in_ewkt, out_ewkt);
+	CU_ASSERT_STRING_EQUAL(in_ewkt, out_ewkt);
+	lwfree(out_ewkt);
+	lwgeom_free(geom);
+	lwgeom_free(geom2);
+
+	geom = lwgeom_from_wkt("MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)))", LW_PARSER_CHECK_NONE);
+	geom2 = lwgeom_as_curve(geom);
+	in_ewkt = "MULTISURFACE(((0 0,10 0,10 10,0 10,0 0)))";
+	out_ewkt = lwgeom_to_ewkt(geom2);
+	if (strcmp(in_ewkt, out_ewkt))
+		fprintf(stderr, "\nExp:   %s\nObt:  %s\n", in_ewkt, out_ewkt);
+	CU_ASSERT_STRING_EQUAL(in_ewkt, out_ewkt);
+	lwfree(out_ewkt);
+	lwgeom_free(geom);
+	lwgeom_free(geom2);
+
+}
+
 static void test_lwline_from_lwmpoint(void)
 {
 	LWLINE *line;
@@ -952,12 +1005,80 @@ static void test_lwline_from_lwmpoint(void)
 }
 
 /*
+ * Test lwgeom_scale
+ */
+static void test_lwgeom_scale(void)
+{
+	LWGEOM *geom;
+	POINT4D factor;
+	char *out_ewkt;
+	GBOX *box;
+
+	geom = lwgeom_from_wkt("SRID=4326;GEOMETRYCOLLECTION(POINT(0 1 2 3),POLYGON((-1 -1 0 1,-1 2.5 0 1,2 2 0 1,2 -1 0 1,-1 -1 0 1),(0 0 1 2,0 1 1 2,1 1 1 2,1 0 2 3,0 0 1 2)),LINESTRING(0 0 0 0, 1 2 3 4))", LW_PARSER_CHECK_NONE);
+	factor.x = 2; factor.y = 3; factor.z = 4; factor.m = 5;
+	lwgeom_scale(geom, &factor);
+	out_ewkt = lwgeom_to_ewkt(geom);
+	ASSERT_STRING_EQUAL(out_ewkt, "SRID=4326;GEOMETRYCOLLECTION(POINT(0 3 8 15),POLYGON((-2 -3 0 5,-2 7.5 0 5,4 6 0 5,4 -3 0 5,-2 -3 0 5),(0 0 4 10,0 3 4 10,2 3 4 10,2 0 8 15,0 0 4 10)),LINESTRING(0 0 0 0,2 6 12 20))");
+	lwgeom_free(geom);
+	lwfree(out_ewkt);
+
+	geom = lwgeom_from_wkt("POINT(1 1 1 1)", LW_PARSER_CHECK_NONE);
+	lwgeom_add_bbox(geom);
+	factor.x = 2; factor.y = 3; factor.z = 4; factor.m = 5;
+	lwgeom_scale(geom, &factor);
+	box = geom->bbox;
+	ASSERT_DOUBLE_EQUAL(box->xmin, 2);
+	ASSERT_DOUBLE_EQUAL(box->xmax, 2);
+	ASSERT_DOUBLE_EQUAL(box->ymin, 3);
+	ASSERT_DOUBLE_EQUAL(box->ymax, 3);
+	ASSERT_DOUBLE_EQUAL(box->zmin, 4);
+	ASSERT_DOUBLE_EQUAL(box->zmax, 4);
+	ASSERT_DOUBLE_EQUAL(box->mmin, 5);
+	ASSERT_DOUBLE_EQUAL(box->mmax, 5);
+	lwgeom_free(geom);
+}
+
+void test_gbox_same_2d(void);
+void test_gbox_same_2d(void)
+{
+	LWGEOM* g1 = lwgeom_from_wkt("LINESTRING(0 0, 1 1)", LW_PARSER_CHECK_NONE);
+    LWGEOM* g2 = lwgeom_from_wkt("LINESTRING(0 0, 0 1, 1 1)", LW_PARSER_CHECK_NONE);
+    LWGEOM* g3 = lwgeom_from_wkt("LINESTRING(0 0, 1 1.000000000001)", LW_PARSER_CHECK_NONE);
+
+    lwgeom_add_bbox(g1);
+    lwgeom_add_bbox(g2);
+    lwgeom_add_bbox(g3);
+
+    CU_ASSERT_TRUE(gbox_same_2d(g1->bbox, g2->bbox));
+    CU_ASSERT_FALSE(gbox_same_2d(g1->bbox, g3->bbox));
+    
+    /* Serializing a GBOX with precise coordinates renders the boxes not strictly equal,
+     * but still equal according to gbox_same_2d_float.
+     */
+    GSERIALIZED* s3 = gserialized_from_lwgeom(g3, LW_FALSE, NULL);
+    GBOX s3box;
+    gserialized_read_gbox_p(s3, &s3box);
+
+    CU_ASSERT_FALSE(gbox_same_2d(g3->bbox, &s3box));
+    CU_ASSERT_TRUE(gbox_same_2d_float(g3->bbox, &s3box));
+
+    /* The serialized box equals itself by either the exact or closest-float compares */
+    CU_ASSERT_TRUE(gbox_same_2d(&s3box, &s3box));
+    CU_ASSERT_TRUE(gbox_same_2d_float(&s3box, &s3box));
+
+    lwgeom_free(g1);
+    lwgeom_free(g2);
+    lwgeom_free(g3);
+    lwfree(s3);
+}
+
+/*
 ** Used by test harness to register the tests in this file.
 */
 void libgeom_suite_setup(void);
 void libgeom_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Serialization/Deserialization", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("serialization/deserialization", NULL, NULL);
 	PG_ADD_TEST(suite, test_typmod_macros);
 	PG_ADD_TEST(suite, test_flags_macros);
 	PG_ADD_TEST(suite, test_serialized_srid);
@@ -977,5 +1098,8 @@ void libgeom_suite_setup(void)
 	PG_ADD_TEST(suite, test_lwgeom_is_empty);
 	PG_ADD_TEST(suite, test_lwgeom_same);
 	PG_ADD_TEST(suite, test_lwline_from_lwmpoint);
+	PG_ADD_TEST(suite, test_lwgeom_as_curve);
+	PG_ADD_TEST(suite, test_lwgeom_scale);
 	PG_ADD_TEST(suite, test_gserialized_is_empty);
+    PG_ADD_TEST(suite, test_gbox_same_2d);
 }
diff --git a/liblwgeom/cunit/cu_measures.c b/liblwgeom/cunit/cu_measures.c
index 3827bbc..2836e73 100644
--- a/liblwgeom/cunit/cu_measures.c
+++ b/liblwgeom/cunit/cu_measures.c
@@ -1,9 +1,10 @@
 /**********************************************************************
- * $Id: cu_measures.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
- * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
+ *
+ * Copyright (C) 2015 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2009 Paul Ramsey <pramsey at cleverelephant.ca>
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
@@ -409,6 +410,46 @@ test_lwgeom_segmentize2d(void)
 	lwfree(strout);
 	lwgeom_free(linein);
 	lwgeom_free(lineout);
+
+	/* test interruption */
+
+	linein = lwgeom_from_wkt("LINESTRING(0 0,10 0)", LW_PARSER_CHECK_NONE);
+	lwgeom_request_interrupt();
+	lineout = lwgeom_segmentize2d(linein, 1e-100);
+	CU_ASSERT_EQUAL(lineout, NULL);
+	lwgeom_free(linein);
+
+	linein = lwgeom_from_wkt("MULTILINESTRING((0 0,10 0),(20 0, 30 0))", LW_PARSER_CHECK_NONE);
+	lwgeom_request_interrupt();
+	lineout = lwgeom_segmentize2d(linein, 1e-100);
+	CU_ASSERT_EQUAL(lineout, NULL);
+	lwgeom_free(linein);
+
+	linein = lwgeom_from_wkt(
+	  "MULTIPOLYGON(((0 0,20 0,20 20,0 20,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6)),((40 0,40 20,60 20,60 0,40 0),(42 2,42 4,44 4,44 2,42 2)))"
+	  , LW_PARSER_CHECK_NONE);
+	lwgeom_request_interrupt();
+	lineout = lwgeom_segmentize2d(linein, 1e-100);
+	CU_ASSERT_EQUAL(lineout, NULL);
+	lwgeom_free(linein);
+
+	linein = lwgeom_from_wkt(
+	  "GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0,20 0,20 20,0 20,0 0),(2 2,2 4,4 4,4 2,2 2),(6 6,6 8,8 8,8 6,6 6)),((40 0,40 20,60 20,60 0,40 0),(42 2,42 4,44 4,44 2,42 2))),MULTILINESTRING((0 0,10 0),(20 0, 30 0)),MULTIPOINT(0 0, 3 4))"
+	  , LW_PARSER_CHECK_NONE);
+	CU_ASSERT_FATAL(linein != NULL);
+	lwgeom_request_interrupt();
+	lineout = lwgeom_segmentize2d(linein, 1e-100);
+	CU_ASSERT_EQUAL(lineout, NULL);
+	lwgeom_free(linein);
+
+	linein = lwgeom_from_wkt("LINESTRING(20 0, 30 0)", LW_PARSER_CHECK_NONE);
+	/* NOT INTERRUPTED */
+	lineout = lwgeom_segmentize2d(linein, 5);
+	strout = lwgeom_to_ewkt(lineout);
+	CU_ASSERT_STRING_EQUAL(strout, "LINESTRING(20 0,25 0,30 0)");
+	lwfree(strout);
+	lwgeom_free(linein);
+	lwgeom_free(lineout);
 }
 
 static void
@@ -455,36 +496,42 @@ test_lw_dist2d_pt_arc(void)
 
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_arc(&P, &A1, &A2, &A3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);
 
 	/* Point outside unit semicircle, 0.5 units from arc */
 	P.x  = 0 ; P.y  = 1.5;	
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_arc(&P, &A1, &A2, &A3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);
 
 	/* Point outside unit semicircle, sqrt(2) units from arc end point*/
 	P.x  = 0 ; P.y  = -1;	
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_arc(&P, &A1, &A2, &A3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, sqrt(2.0), 0.000001);
 
 	/* Point outside unit semicircle, sqrt(2)-1 units from arc end point*/
 	P.x  = 1 ; P.y  = 1;	
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_arc(&P, &A1, &A2, &A3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, sqrt(2.0)-1, 0.000001);
 
 	/* Point on unit semicircle midpoint */
 	P.x  = 0 ; P.y  = 1;	
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_arc(&P, &A1, &A2, &A3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0, 0.000001);
 
 	/* Point on unit semicircle endpoint */
 	P.x  = 1 ; P.y  = 0;	
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_arc(&P, &A1, &A2, &A3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0, 0.000001);
 
 	/* Point inside closed circle */
@@ -494,6 +541,7 @@ test_lw_dist2d_pt_arc(void)
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_arc(&P, &A1, &A2, &A3, &dl);
 	//printf("distance %g\n", dl.distance);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);	
 }
 
@@ -516,6 +564,7 @@ test_lw_dist2d_seg_arc(void)
 	A1.x = -2; A1.y = 2;
 	A2.x = 2 ; A2.y = 2;
 	rv = lw_dist2d_seg_arc(&A1, &A2, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Edge to the right of the unit semicircle */
@@ -523,6 +572,7 @@ test_lw_dist2d_seg_arc(void)
 	A1.x = 2; A1.y = -2;
 	A2.x = 2; A2.y = 2;
 	rv = lw_dist2d_seg_arc(&A1, &A2, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Edge to the left of the unit semicircle */
@@ -530,6 +580,7 @@ test_lw_dist2d_seg_arc(void)
 	A1.x = -2; A1.y = -2;
 	A2.x = -2; A2.y = 2;
 	rv = lw_dist2d_seg_arc(&A1, &A2, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Edge within the unit semicircle */
@@ -537,6 +588,7 @@ test_lw_dist2d_seg_arc(void)
 	A1.x = 0; A1.y = 0;
 	A2.x = 0; A2.y = 0.5;
 	rv = lw_dist2d_seg_arc(&A1, &A2, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);
 
 	/* Edge grazing the unit semicircle */
@@ -544,6 +596,7 @@ test_lw_dist2d_seg_arc(void)
 	A1.x = -2; A1.y = 1;
 	A2.x =  2; A2.y = 1;
 	rv = lw_dist2d_seg_arc(&A1, &A2, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0., 0.000001);
 
 	/* Line grazing the unit semicircle, but edge not */
@@ -551,6 +604,7 @@ test_lw_dist2d_seg_arc(void)
 	A1.x = 1; A1.y = 1;
 	A2.x = 2; A2.y = 1;
 	rv = lw_dist2d_seg_arc(&A1, &A2, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, sqrt(2.0)-1, 0.000001);
 
 	/* Edge intersecting the unit semicircle */
@@ -558,6 +612,7 @@ test_lw_dist2d_seg_arc(void)
 	A1.x = 0; A1.y = 0;
 	A2.x = 2; A2.y = 2;
 	rv = lw_dist2d_seg_arc(&A1, &A2, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0, 0.000001);
 
 	/* Line intersecting the unit semicircle, but edge not */
@@ -566,6 +621,7 @@ test_lw_dist2d_seg_arc(void)
 	A2.x = -2; A2.y = 2;
 	rv = lw_dist2d_seg_arc(&A1, &A2, &B1, &B2, &B3, &dl);
 	//printf("distance %g\n", dl.distance);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, sqrt(2.0)-1, 0.000001);
 }
 
@@ -590,6 +646,7 @@ test_lw_dist2d_arc_arc(void)
 	A2.x = 0 ; A2.y = 2;
 	A3.x = 1 ; A3.y = 3;
 	rv = lw_dist2d_arc_arc(&A1, &A2, &A3, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Arc grazes the unit semicircle */
@@ -598,6 +655,7 @@ test_lw_dist2d_arc_arc(void)
 	A2.x = 0 ; A2.y = 1;
 	A3.x = 1 ; A3.y = 2;
 	rv = lw_dist2d_arc_arc(&A1, &A2, &A3, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0, 0.000001);
 
 	/* Circles intersect, but arcs do not */
@@ -606,6 +664,7 @@ test_lw_dist2d_arc_arc(void)
 	A2.x =  0; A2.y =  2;
 	A3.x =  1; A3.y =  1;
 	rv = lw_dist2d_arc_arc(&A1, &A2, &A3, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, sqrt(2)-1, 0.000001);
 
 	/* Circles and arcs intersect */
@@ -614,6 +673,7 @@ test_lw_dist2d_arc_arc(void)
 	A2.x =  0; A2.y =  0;
 	A3.x =  1; A3.y =  1;
 	rv = lw_dist2d_arc_arc(&A1, &A2, &A3, &B1, &B2, &B3, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0, 0.000001);
 
 	/* inscribed and closest on arcs */
@@ -623,6 +683,7 @@ test_lw_dist2d_arc_arc(void)
 	A3.x =  0.5; A3.y = 0.0;
 	rv = lw_dist2d_arc_arc(&A1, &A2, &A3, &B1, &B2, &B3, &dl);
 	//printf("distance %g\n", dl.distance);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);
 
 	/* inscribed and closest not on arcs */
@@ -632,6 +693,7 @@ test_lw_dist2d_arc_arc(void)
 	A3.x =  0.5; A3.y =  0.0;
 	rv = lw_dist2d_arc_arc(&A1, &A2, &A3, &B1, &B2, &B3, &dl);
 	//printf("distance %g\n", dl.distance);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);
 }
 
@@ -672,9 +734,9 @@ test_lw_arc_length(void)
 
 	/* Arc to right of the unit semicircle */
 	d = lw_arc_length(&A1, &A2, &A3);
-	CU_ASSERT_DOUBLE_EQUAL(d, 3*M_PI/2, 0.000001);
+	CU_ASSERT_DOUBLE_EQUAL(d, 3*M_PI_2, 0.000001);
 	d = lw_arc_length(&A3, &A2, &A1);
-	CU_ASSERT_DOUBLE_EQUAL(d, 3*M_PI/2, 0.000001);	
+	CU_ASSERT_DOUBLE_EQUAL(d, 3*M_PI_2, 0.000001);
 }
 
 static void
@@ -693,18 +755,21 @@ test_lw_dist2d_pt_ptarrayarc(void)
 	P.x = P.y = 0;
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_ptarrayarc(&P, lwline->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Point above arc on Y axis */
 	P.y = 2;
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_ptarrayarc(&P, lwline->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Point 45 degrees off arc, 2 radii from center */
-	P.y = P.x = 2 * cos(M_PI/4);
+	P.y = P.x = 2 * cos(M_PI_4);
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_ptarrayarc(&P, lwline->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Four unit semi-circles surrounding the 2x2 box around origin */
@@ -715,36 +780,42 @@ test_lw_dist2d_pt_ptarrayarc(void)
 	P.x = P.y = 0;
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_ptarrayarc(&P, lwline->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, sqrt(2.0), 0.000001);
 
 	/* Point on box edge */
 	P.x = -1; P.y = 0;
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_ptarrayarc(&P, lwline->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Point within a semicircle lobe */
 	P.x = -1.5; P.y = 0;
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_ptarrayarc(&P, lwline->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);
 
 	/* Point outside a semicircle lobe */
 	P.x = -2.5; P.y = 0;
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_ptarrayarc(&P, lwline->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);
 
 	/* Point outside a semicircle lobe */
 	P.y = -2.5; P.x = 0;
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_ptarrayarc(&P, lwline->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);
 
 	/* Point outside a semicircle lobe */
 	P.y = 2; P.x = 1;
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_pt_ptarrayarc(&P, lwline->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, sqrt(2.0)-1.0, 0.000001);
 
 	/* Clean up */
@@ -767,6 +838,7 @@ test_lw_dist2d_ptarray_ptarrayarc(void)
 	lwline2 = lwgeom_as_lwline(lwgeom_from_text("LINESTRING(-2 2, -1 2, 1 2, 2 2)"));
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_ptarray_ptarrayarc(lwline2->points, lwline1->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Reversed arguments, should fail */
@@ -774,6 +846,7 @@ test_lw_dist2d_ptarray_ptarrayarc(void)
 	cu_error_msg_reset();
 	rv = lw_dist2d_ptarray_ptarrayarc(lwline1->points, lwline2->points, &dl);
 	//printf("%s\n", cu_error_msg);
+	CU_ASSERT_EQUAL( rv, LW_FAILURE );
 	CU_ASSERT_STRING_EQUAL("lw_dist2d_ptarray_ptarrayarc called with non-arc input", cu_error_msg);
 
 	lwline_free(lwline2);
@@ -782,6 +855,7 @@ test_lw_dist2d_ptarray_ptarrayarc(void)
 	lwline2 = lwgeom_as_lwline(lwgeom_from_text("LINESTRING(-2 -3, -2 -2, -2 2, -2 3)"));
 	lw_dist2d_distpts_init(&dl, DIST_MIN);
 	rv = lw_dist2d_ptarray_ptarrayarc(lwline2->points, lwline1->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 1, 0.000001);
 
 	/* Four unit semi-circles surrounding the 2x2 box around origin */
@@ -790,19 +864,308 @@ test_lw_dist2d_ptarray_ptarrayarc(void)
 	lwline1 = lwgeom_as_lwline(lwgeom_from_text("LINESTRING(-1 -1, -2 0, -1 1, 0 2, 1 1, 2 0, 1 -1, 0 -2, -1 -1)"));
 	lwline2 = lwgeom_as_lwline(lwgeom_from_text("LINESTRING(-2.5 -3, -2.5 -2, -2.5 2, -2.5 3)"));
 	rv = lw_dist2d_ptarray_ptarrayarc(lwline2->points, lwline1->points, &dl);
+	CU_ASSERT_EQUAL( rv, LW_SUCCESS );
 	CU_ASSERT_DOUBLE_EQUAL(dl.distance, 0.5, 0.000001);
 
 	lwline_free(lwline2);
 	lwline_free(lwline1);
 }
 
+static void
+test_lwgeom_tcpa(void)
+{
+	LWGEOM *g1, *g2;
+	double m, dist;
+
+	/* Invalid input, lack of dimensions */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 1)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING (0 0 2, 0 0 5)", LW_PARSER_CHECK_NONE);
+	m = lwgeom_tcpa(g1, g2, NULL);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, -1.0);
+	CU_ASSERT_STRING_EQUAL(
+	  "Both input geometries must have a measure dimension",
+	  cu_error_msg
+	  );
+
+	/* Invalid input, not linestrings */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 1)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("POINT M (0 0 2)", LW_PARSER_CHECK_NONE);
+	m = lwgeom_tcpa(g1, g2, NULL);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, -1.0);
+	CU_ASSERT_STRING_EQUAL(
+	  "Both input geometries must be linestrings",
+	  cu_error_msg
+	);
+
+	/* Invalid input, too short linestring */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 1, 10 0 10)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(2 0 1)", LW_PARSER_CHECK_NONE);
+	dist = -77;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(dist, -77.0); /* not touched */
+	ASSERT_DOUBLE_EQUAL(m, -1.0);
+	CU_ASSERT_STRING_EQUAL(
+	  "Both input lines must have at least 2 points", /* should be accepted ? */
+	  cu_error_msg
+	);
+
+	/* Invalid input, empty linestring */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 1, 10 0 10)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M EMPTY", LW_PARSER_CHECK_NONE);
+	m = lwgeom_tcpa(g1, g2, NULL);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, -1.0);
+	CU_ASSERT_STRING_EQUAL(
+	  "Both input lines must have at least 2 points",
+	  cu_error_msg
+	);
+
+	/* Timeranges do not overlap */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 1)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(0 0 2, 0 0 5)", LW_PARSER_CHECK_NONE);
+	m = lwgeom_tcpa(g1, g2, NULL);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, -2.0); /* means timeranges do not overlap */
+
+	/* One of the tracks is still, the other passes to that point */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 1)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 5)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	ASSERT_DOUBLE_EQUAL(m, 1.0);
+	ASSERT_DOUBLE_EQUAL(dist, 0.0);
+	CU_ASSERT( lwgeom_cpa_within(g1, g2, 0.0) == LW_TRUE );
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+
+	/* One of the tracks is still, the other passes at 10 meters from point */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 5)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(-10 10 1, 10 10 5)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	ASSERT_DOUBLE_EQUAL(m, 3.0);
+	ASSERT_DOUBLE_EQUAL(dist, 10.0);
+	CU_ASSERT( lwgeom_cpa_within(g1, g2, 11.0) == LW_TRUE );
+	CU_ASSERT( lwgeom_cpa_within(g1, g2, 10.0) == LW_TRUE );
+	CU_ASSERT( lwgeom_cpa_within(g1, g2, 9.0) == LW_FALSE );
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+
+	/* Equal tracks, 2d */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 10, 10 0 20)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(0 0 10, 10 0 20)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 10.0);
+	ASSERT_DOUBLE_EQUAL(dist, 0.0);
+
+	/* Reversed tracks, 2d */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 10, 10 0 20)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(10 0 10, 0 0 20)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 15.0);
+	ASSERT_DOUBLE_EQUAL(dist, 0.0);
+
+	/*  Parallel tracks, same speed, 2d */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(2 0 10, 12 0 20)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(13 0 10, 23 0 20)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 10.0);
+	ASSERT_DOUBLE_EQUAL(dist, 11.0);
+
+	/*  Parallel tracks, different speed (g2 gets closer as time passes), 2d */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(4 0 10, 10 0 20)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(2 0 10,  9 0 20)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 20.0);
+	ASSERT_DOUBLE_EQUAL(dist, 1.0);
+
+	/*  Parallel tracks, different speed (g2 left behind as time passes), 2d */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(4 0 10, 10 0 20)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(2 0 10,  6 0 20)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 10.0);
+	ASSERT_DOUBLE_EQUAL(dist, 2.0);
+
+	/* Tracks, colliding, 2d */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 0, 10 0 10)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(5 -8 0,  5 8 10)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 5.0);
+	ASSERT_DOUBLE_EQUAL(dist, 0.0);
+
+	/* Tracks crossing, NOT colliding, 2d */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 0, 10 0 10)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(8 -5 0,  8 5 10)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 6.5);
+	ASSERT_DOUBLE_EQUAL(rint(dist*100), 212.0);
+
+	/*  Same origin, different direction, 2d */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 1, 10 0 10)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(0 0 1, -100 0 10)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 1.0);
+	ASSERT_DOUBLE_EQUAL(dist, 0.0);
+
+	/*  Same ending, different direction, 2d */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(10 0 1, 0 0 10)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(0 -100 1, 0 0 10)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 10.0);
+	ASSERT_DOUBLE_EQUAL(dist, 0.0);
+
+	/* Converging tracks, 3d */
+
+	g1 = lwgeom_from_wkt("LINESTRING ZM(0 0 0 10, 10 0 0 20)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING ZM(0 0 8 10, 10 0 5 20)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 20.0);
+	ASSERT_DOUBLE_EQUAL(dist, 5.0);
+
+	/* G1 stops at t=1 until t=4 to let G2 pass by, then continues */
+	/* G2 passes at 1 meter from G1 t=3 */
+
+	g1 = lwgeom_from_wkt("LINESTRING M(0 0 0, 0 1 1, 0 1 4, 0 10 13)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M(-10 2 0, 0 2 3, 12 2 13)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 3.0);
+	ASSERT_DOUBLE_EQUAL(dist, 1.0);
+
+	/* Test for https://trac.osgeo.org/postgis/ticket/3136 */
+
+	g1 = lwgeom_from_wkt("LINESTRING M (0 0 1432291464,2 0 1432291536) ", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRING M (0 0 1432291464,1 0 1432291466.25,2 0 1432291500)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 1432291464.0);
+	ASSERT_DOUBLE_EQUAL(dist, 0.0);
+
+	/* Tracks share a single point in time */
+
+	g1 = lwgeom_from_wkt("LINESTRINGM(0 0 0, 1 0 2)", LW_PARSER_CHECK_NONE);
+	g2 = lwgeom_from_wkt("LINESTRINGM(0 0 2, 1 0 3)", LW_PARSER_CHECK_NONE);
+	dist = -1;
+	m = lwgeom_tcpa(g1, g2, &dist);
+	lwgeom_free(g1);
+	lwgeom_free(g2);
+	ASSERT_DOUBLE_EQUAL(m, 2.0);
+	ASSERT_DOUBLE_EQUAL(dist, 1.0);
+
+}
+
+static void
+test_lwgeom_is_trajectory(void)
+{
+	LWGEOM *g;
+	int ret;
+
+	g = lwgeom_from_wkt("POINT M(0 0 1)", LW_PARSER_CHECK_NONE);
+	ret = lwgeom_is_trajectory(g);
+	lwgeom_free(g);
+	ASSERT_INT_EQUAL(ret, LW_FALSE); /* not a linestring */
+
+	g = lwgeom_from_wkt("LINESTRING Z(0 0 1, 0 0 1)", LW_PARSER_CHECK_NONE);
+	ret = lwgeom_is_trajectory(g);
+	lwgeom_free(g);
+	ASSERT_INT_EQUAL(ret, LW_FALSE); /* no measure */
+
+	g = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 1)", LW_PARSER_CHECK_NONE);
+	ret = lwgeom_is_trajectory(g);
+	lwgeom_free(g);
+	ASSERT_INT_EQUAL(ret, LW_FALSE); /* same measure in two points */
+
+	g = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 0)", LW_PARSER_CHECK_NONE);
+	ret = lwgeom_is_trajectory(g);
+	lwgeom_free(g);
+	ASSERT_INT_EQUAL(ret, LW_FALSE); /* backward measure */
+
+	g = lwgeom_from_wkt("LINESTRING M(0 0 1, 1 0 3, 2 2 2)", LW_PARSER_CHECK_NONE);
+	ret = lwgeom_is_trajectory(g);
+	lwgeom_free(g);
+	ASSERT_INT_EQUAL(ret, LW_FALSE); /* backward measure */
+
+	g = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 2)", LW_PARSER_CHECK_NONE);
+	ret = lwgeom_is_trajectory(g);
+	lwgeom_free(g);
+	ASSERT_INT_EQUAL(ret, LW_TRUE); /* ok (still) */
+
+	g = lwgeom_from_wkt("LINESTRING M EMPTY", LW_PARSER_CHECK_NONE);
+	ret = lwgeom_is_trajectory(g);
+	lwgeom_free(g);
+	ASSERT_INT_EQUAL(ret, LW_TRUE); /* ok (empty) */
+
+	g = lwgeom_from_wkt("LINESTRING M (0 0 1)", LW_PARSER_CHECK_NONE);
+	ret = lwgeom_is_trajectory(g);
+	lwgeom_free(g);
+	ASSERT_INT_EQUAL(ret, LW_TRUE); /* ok (corner case) */
+}
+
 /*
 ** Used by test harness to register the tests in this file.
 */
 void measures_suite_setup(void);
 void measures_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Measures", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("measures", NULL, NULL);
 	PG_ADD_TEST(suite, test_mindistance2d_tolerance);
 	PG_ADD_TEST(suite, test_rect_tree_contains_point);
 	PG_ADD_TEST(suite, test_rect_tree_intersects_tree);
@@ -814,4 +1177,6 @@ void measures_suite_setup(void)
 	PG_ADD_TEST(suite, test_lw_arc_length);
 	PG_ADD_TEST(suite, test_lw_dist2d_pt_ptarrayarc);
 	PG_ADD_TEST(suite, test_lw_dist2d_ptarray_ptarrayarc);
+	PG_ADD_TEST(suite, test_lwgeom_tcpa);
+	PG_ADD_TEST(suite, test_lwgeom_is_trajectory);
 }
diff --git a/liblwgeom/cunit/cu_misc.c b/liblwgeom/cunit/cu_misc.c
index b57f215..832a261 100644
--- a/liblwgeom/cunit/cu_misc.c
+++ b/liblwgeom/cunit/cu_misc.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_print.c 6160 2010-11-01 01:28:12Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -49,7 +48,7 @@ static void test_misc_simplify(void)
 	char *wkt_out;
 
 	geom = lwgeom_from_wkt("LINESTRING(0 0,0 10,0 51,50 20,30 20,7 32)", LW_PARSER_CHECK_NONE);
-	geom2d = lwgeom_simplify(geom,2);
+	geom2d = lwgeom_simplify(geom, 2, LW_FALSE);
 	wkt_out = lwgeom_to_ewkt(geom2d);
 	CU_ASSERT_STRING_EQUAL("LINESTRING(0 0,0 51,50 20,30 20,7 32)",wkt_out);
 	lwgeom_free(geom);
@@ -57,7 +56,7 @@ static void test_misc_simplify(void)
 	lwfree(wkt_out);
 
 	geom = lwgeom_from_wkt("MULTILINESTRING((0 0,0 10,0 51,50 20,30 20,7 32))", LW_PARSER_CHECK_NONE);
-	geom2d = lwgeom_simplify(geom,2);
+	geom2d = lwgeom_simplify(geom, 2, LW_FALSE);
 	wkt_out = lwgeom_to_ewkt(geom2d);
 	CU_ASSERT_STRING_EQUAL("MULTILINESTRING((0 0,0 51,50 20,30 20,7 32))",wkt_out);
 	lwgeom_free(geom);
@@ -119,16 +118,38 @@ static void test_misc_wkb(void)
 		
 }
 
+
+static void test_grid(void)
+{
+	gridspec grid;
+	static char *wkt = "MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)))";
+	LWGEOM *geom = lwgeom_from_wkt(wkt, LW_PARSER_CHECK_ALL);
+	LWGEOM *geomgrid;
+	char *str;
+	
+	grid.ipx = grid.ipy = 0;
+	grid.xsize = grid.ysize = 20;
+
+	geomgrid = lwgeom_grid(geom, &grid);
+	str = lwgeom_to_ewkt(geomgrid);
+	CU_ASSERT_STRING_EQUAL(str, "MULTIPOLYGON EMPTY");
+	lwfree(str);
+	lwgeom_free(geom);
+	lwgeom_free(geomgrid);		
+}
+
+
 /*
 ** Used by the test harness to register the tests in this file.
 */
 void misc_suite_setup(void);
 void misc_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Miscellaneous", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("miscellaneous", NULL, NULL);
 	PG_ADD_TEST(suite, test_misc_force_2d);
 	PG_ADD_TEST(suite, test_misc_simplify);
 	PG_ADD_TEST(suite, test_misc_count_vertices);
 	PG_ADD_TEST(suite, test_misc_area);
 	PG_ADD_TEST(suite, test_misc_wkb);
+	PG_ADD_TEST(suite, test_grid);
 }
diff --git a/liblwgeom/cunit/cu_node.c b/liblwgeom/cunit/cu_node.c
index 74c4a57..a1aa5c6 100644
--- a/liblwgeom/cunit/cu_node.c
+++ b/liblwgeom/cunit/cu_node.c
@@ -66,6 +66,6 @@ static void test_lwgeom_node(void)
 void node_suite_setup(void);
 void node_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Noding", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("noding", NULL, NULL);
 	PG_ADD_TEST(suite, test_lwgeom_node);
 }
diff --git a/liblwgeom/cunit/cu_out_encoded_polyline.c b/liblwgeom/cunit/cu_out_encoded_polyline.c
new file mode 100644
index 0000000..ebaa31c
--- /dev/null
+++ b/liblwgeom/cunit/cu_out_encoded_polyline.c
@@ -0,0 +1,97 @@
+/**********************************************************************
+*
+* PostGIS - Spatial Types for PostgreSQL
+* http://postgis.net
+*
+* Copyright 2014 Kashif Rasul <kashif.rasul at gmail.com> and
+*                Shoaib Burq <saburq at gmail.com>
+*
+* This is free software; you can redistribute and/or modify it under
+* the terms of the GNU General Public Licence. See the COPYING file.
+*
+**********************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "CUnit/Basic.h"
+
+#include "liblwgeom_internal.h"
+#include "cu_tester.h"
+
+static void do_encoded_polyline_test(char * in, int precision, char * out)
+{
+	LWGEOM *g;
+	char * h;
+
+	g = lwgeom_from_wkt(in, LW_PARSER_CHECK_NONE);
+	h = lwgeom_to_encoded_polyline(g, precision);
+
+	if (strcmp(h, out))
+		fprintf(stderr, "\nIn:   %s\nOut:  %s\nTheo: %s\n", in, h, out);
+
+	CU_ASSERT_STRING_EQUAL(h, out);
+
+	lwgeom_free(g);
+	lwfree(h);
+}
+
+
+static void out_encoded_polyline_test_geoms(void)
+{
+	/* Linestring */
+	do_encoded_polyline_test(
+	    "LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)",
+	    5,
+	    "_p~iF~ps|U_ulLnnqC_mqNvxq`@");
+
+	/* MultiPoint */
+	do_encoded_polyline_test(
+	    "MULTIPOINT(-120.2 38.5,-120.95 40.7)",
+	    5,
+	    "_p~iF~ps|U_ulLnnqC");
+}
+
+static void out_encoded_polyline_test_srid(void)
+{
+
+	/* SRID - with PointArray */
+	do_encoded_polyline_test(
+	    "SRID=4326;LINESTRING(0 1,2 3)",
+	    5,
+	    "_ibE?_seK_seK");
+
+	/* wrong SRID */
+	do_encoded_polyline_test(
+	    "SRID=4327;LINESTRING(0 1,2 3)",
+	    5,
+	    "_ibE?_seK_seK");
+}
+
+static void out_encoded_polyline_test_precision(void)
+{
+
+	/* Linestring */
+	do_encoded_polyline_test(
+	    "LINESTRING(-0.250691 49.283048,-0.250633 49.283376,-0.250502 49.283972,-0.251245 49.284028,-0.251938 49.284232,-0.251938 49.2842)",
+	    6,
+	    "o}~~|AdshNoSsBgd at eGoBlm@wKhj@~@?");
+
+	/* MultiPoint */
+	do_encoded_polyline_test(
+	    "MULTIPOINT(-120.2 38.5,-120.95 40.7)",
+	    3,
+	    "gejAnwiFohCzm@");
+}
+
+/*
+** Used by test harness to register the tests in this file.
+*/
+void out_encoded_polyline_suite_setup(void);
+void out_encoded_polyline_suite_setup(void)
+{
+	CU_pSuite suite = CU_add_suite("encoded_polyline_output", NULL, NULL);
+	PG_ADD_TEST(suite, out_encoded_polyline_test_geoms);
+	PG_ADD_TEST(suite, out_encoded_polyline_test_srid);
+	PG_ADD_TEST(suite, out_encoded_polyline_test_precision);
+}
diff --git a/liblwgeom/cunit/cu_out_geojson.c b/liblwgeom/cunit/cu_out_geojson.c
index 6760148..8f26b21 100644
--- a/liblwgeom/cunit/cu_out_geojson.c
+++ b/liblwgeom/cunit/cu_out_geojson.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_out_geojson.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -301,7 +300,7 @@ static void out_geojson_test_geoms(void)
 void out_geojson_suite_setup(void);
 void out_geojson_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("GeoJson Output", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("geojson_output", NULL, NULL);
 	PG_ADD_TEST(suite, out_geojson_test_precision);
 	PG_ADD_TEST(suite, out_geojson_test_dims);
 	PG_ADD_TEST(suite, out_geojson_test_srid);
diff --git a/liblwgeom/cunit/cu_out_gml.c b/liblwgeom/cunit/cu_out_gml.c
index 83e2a31..a4e84fc 100644
--- a/liblwgeom/cunit/cu_out_gml.c
+++ b/liblwgeom/cunit/cu_out_gml.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_out_gml.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -148,26 +147,6 @@ static void do_gml2_unsupported(char * in, char * out)
 	lwgeom_free(g);
 }
 
-static void do_gml3_unsupported(char * in, char * out)
-{
-	LWGEOM *g;
-	char *h;
-	int opts = LW_GML_IS_DIMS;
-
-	g = lwgeom_from_wkt(in, LW_PARSER_CHECK_NONE);
-	h = lwgeom_to_gml3(g, NULL, 0, opts, "", NULL);
-
-	if (strcmp(cu_error_msg, out))
-		fprintf(stderr, "\nGML 3 - In:   %s\nOut:  %s\nTheo: %s\n",
-		        in, cu_error_msg, out);
-
-	CU_ASSERT_STRING_EQUAL(out, cu_error_msg);
-	cu_error_msg_reset();
-
-	lwfree(h);
-	lwgeom_free(g);
-}
-
 static void do_gml2_extent_test(char * in, char * out, char * srs,
                                    double precision, char * prefix)
 {
@@ -550,25 +529,26 @@ static void out_gml_test_geoms(void)
 	    "<gml:MultiGeometry><gml:geometryMember><gml:Point><gml:pos srsDimension=\"2\">0 1</gml:pos></gml:Point></gml:geometryMember><gml:geometryMember><gml:MultiGeometry><gml:geometryMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">2 3 4 5</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:geometryMember></gml:MultiGeometry></gml:geometryMember></gml:MultiGeometry>",
 	    NULL, 0, 0);
 
-
-
 	/* GML2 - CircularString */
 	do_gml2_unsupported(
 	    "CIRCULARSTRING(-2 0,0 2,2 0,0 2,2 4)",
 	    "lwgeom_to_gml2: 'CircularString' geometry type not supported");
 	/* GML3 - CircularString */
-	do_gml3_unsupported(
-	    "CIRCULARSTRING(-2 0,0 2,2 0,0 2,2 4)",
-	    "lwgeom_to_gml3: 'CircularString' geometry type not supported");
+    do_gml3_test(
+                "CIRCULARSTRING(-2 0,0 2,2 0,0 2,2 4)",
+                "<gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">-2 0 0 2 2 0 0 2 2 4</gml:posList></gml:ArcString></gml:segments></gml:Curve>",
+                NULL, 0, 0 );
 
 	/* GML2 - CompoundCurve */
 	do_gml2_unsupported(
 	    "COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,0 1))",
 	    "lwgeom_to_gml2: 'CompoundCurve' geometry type not supported");
 	/* GML3 - CompoundCurve */
-	do_gml3_unsupported(
-	    "COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,0 1))",
-	    "lwgeom_to_gml3: 'CompoundCurve' geometry type not supported");
+
+    do_gml3_test(
+       "COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,0 1))",
+                "<gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">0 0 1 1 1 0</gml:posList></gml:ArcString><gml:LineStringSegment><gml:posList srsDimension=\"2\">1 0 0 1</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve>",
+                NULL, 0, 0 );
 
 	/* GML2 - CurvePolygon */
 	do_gml2_unsupported(
@@ -576,10 +556,14 @@ static void out_gml_test_geoms(void)
 	    "lwgeom_to_gml2: 'CurvePolygon' geometry type not supported");
 
 	/* GML3 - CurvePolygon */
-	do_gml3_unsupported(
-	    "CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0))",
-	    "lwgeom_to_gml3: 'CurvePolygon' geometry type not supported");
-
+    do_gml3_test(
+        "CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0))",
+                "<gml:Polygon><gml:exterior><gml:Ring><gml:curveMember><gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">-2 0 -1 -1 0 0 1 -1 2 0 0 2 -2 0</gml:posList></gml:ArcString></gml:segments></gml:Curve></gml:curveMember></gml:Ring></gml:exterior><gml:interior><gml:LinearRing><gml:posList srsDimension=\"2\">-1 0 0 0.5 1 0 0 1 -1 0</gml:posList></gml:LinearRing></gml:interior></gml:Polygon>",
+                NULL, 1, 0 );
+	do_gml3_test(
+		"CURVEPOLYGON(COMPOUNDCURVE((763650.600000001 189057.100000001,7636.35 189045.199999999, 763650.548999999 189057.844000001,763650.600000001 189057.100000001)))",
+				 "<gml:Polygon><gml:exterior><gml:Ring><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">763650.6 189057.1 7636.35 189045.2 763650.549 189057.844 763650.6 189057.1</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember></gml:Ring></gml:exterior></gml:Polygon>",
+				NULL, 7, 0 );
 
 	/* GML2 - MultiCurve */
 	do_gml2_unsupported(
@@ -587,9 +571,10 @@ static void out_gml_test_geoms(void)
 	    "lwgeom_to_gml2: 'MultiCurve' geometry type not supported");
 
 	/* GML3 - MultiCurve */
-	do_gml3_unsupported(
-	    "MULTICURVE((5 5,3 5,3 3,0 3),CIRCULARSTRING(0 0,2 1,2 2))",
-	    "lwgeom_to_gml3: 'MultiCurve' geometry type not supported");
+    do_gml3_test(
+         "MULTICURVE((5 5,3 5,3 3,0 3),CIRCULARSTRING(0 0,2 1,2 2))",
+                "<gml:MultiCurve><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension=\"2\">5 5 3 5 3 3 0 3</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember><gml:curveMember><gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">0 0 2 1 2 2</gml:posList></gml:ArcString></gml:segments></gml:Curve></gml:curveMember></gml:MultiCurve>",
+                NULL, 0, 0 );
 
 	/* GML2 - MultiSurface */
 	do_gml2_unsupported(
@@ -597,9 +582,10 @@ static void out_gml_test_geoms(void)
 	    "lwgeom_to_gml2: 'MultiSurface' geometry type not supported");
 
 	/* GML3 - MultiSurface */
-	do_gml3_unsupported(
-	    "MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0)),((7 8,10 10,6 14,4 11,7 8)))",
-	    "lwgeom_to_gml3: 'MultiSurface' geometry type not supported");
+    do_gml3_test(
+                "MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0)),((7 8,10 10,6 14,4 11,7 8)))",
+                "<gml:MultiSurface><gml:Polygon><gml:exterior><gml:Ring><gml:curveMember><gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension=\"2\">-2 0 -1 -1 0 0 1 -1 2 0 0 2 -2 0</gml:posList></gml:ArcString></gml:segments></gml:Curve></gml:curveMember></gml:Ring></gml:exterior><gml:interior><gml:LinearRing><gml:posList srsDimension=\"2\">-1 0 0 0.5 1 0 0 1 -1 0</gml:posList></gml:LinearRing></gml:interior></gml:Polygon><gml:Polygon><gml:exterior><gml:LinearRing><gml:posLi [...]
+                NULL, 1, 0 );
 
 	/* GML2 - PolyhedralSurface */
 	do_gml2_unsupported(
@@ -1083,7 +1069,7 @@ static void out_gml3_extent(void)
 void out_gml_suite_setup(void);
 void out_gml_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("GML Output", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("gml_output", NULL, NULL);
 	PG_ADD_TEST(suite, out_gml_test_precision);
 	PG_ADD_TEST(suite, out_gml_test_srid);
 	PG_ADD_TEST(suite, out_gml_test_dims);
diff --git a/liblwgeom/cunit/cu_out_kml.c b/liblwgeom/cunit/cu_out_kml.c
index 5866c3b..45682fd 100644
--- a/liblwgeom/cunit/cu_out_kml.c
+++ b/liblwgeom/cunit/cu_out_kml.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_out_kml.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -239,7 +238,7 @@ static void out_kml_test_prefix(void)
 void out_kml_suite_setup(void);
 void out_kml_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("KML Output", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("kml_output", NULL, NULL);
 	PG_ADD_TEST(suite, out_kml_test_precision);
 	PG_ADD_TEST(suite, out_kml_test_dims);
 	PG_ADD_TEST(suite, out_kml_test_geoms);
diff --git a/liblwgeom/cunit/cu_out_svg.c b/liblwgeom/cunit/cu_out_svg.c
index 485800b..cf929df 100644
--- a/liblwgeom/cunit/cu_out_svg.c
+++ b/liblwgeom/cunit/cu_out_svg.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_out_svg.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -321,7 +320,7 @@ static void out_svg_test_srid(void)
 void out_svg_suite_setup(void);
 void out_svg_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("SVG Output", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("svg_output", NULL, NULL);
 	PG_ADD_TEST(suite, out_svg_test_precision);
 	PG_ADD_TEST(suite, out_svg_test_dims);
 	PG_ADD_TEST(suite, out_svg_test_relative);
diff --git a/liblwgeom/cunit/cu_out_twkb.c b/liblwgeom/cunit/cu_out_twkb.c
new file mode 100644
index 0000000..032434e
--- /dev/null
+++ b/liblwgeom/cunit/cu_out_twkb.c
@@ -0,0 +1,292 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ * Copyright 2014 Nicklas Avén
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "CUnit/Basic.h"
+
+#include "liblwgeom_internal.h"
+#include "cu_tester.h"
+
+
+/*
+** Global variable to hold hex TWKB strings
+*/
+char *s;
+char *w;
+
+/*
+** The suite initialization function.
+** Create any re-used objects.
+*/
+static int init_twkb_out_suite(void)
+{
+	s = NULL;
+	w = NULL;
+	return 0;
+}
+
+/*
+** The suite cleanup function.
+** Frees any global objects.
+*/
+static int clean_twkb_out_suite(void)
+{
+	if (s) free(s);
+	if (w) free(w);
+	s = NULL;
+	w = NULL;
+	return 0;
+}
+
+
+/*
+** Creating an input TWKB from a wkt string
+*/
+static void cu_twkb(char *wkt, int8_t prec_xy, int8_t prec_z, int8_t prec_m, uint8_t variant)
+{
+	LWGEOM *g = lwgeom_from_wkt(wkt, LW_PARSER_CHECK_NONE);
+	size_t twkb_size;
+	uint8_t *twkb;
+	if ( ! g )  lwnotice("input wkt is invalid: %s", wkt);
+	twkb = lwgeom_to_twkb(g, variant, prec_xy,  prec_z, prec_m, &twkb_size);
+	lwgeom_free(g);
+	if ( s ) free(s);
+	s = hexbytes_from_bytes(twkb, twkb_size);
+	free(twkb);
+}
+
+
+/*
+** Creating an input TWKB from a wkt string
+*/
+static void cu_twkb_idlist(char *wkt, int64_t *idlist, int8_t prec_xy, int8_t prec_z, int8_t prec_m, uint8_t variant)
+{
+	LWGEOM *g = lwgeom_from_wkt(wkt, LW_PARSER_CHECK_NONE);
+	LWGEOM *g_b;
+	size_t twkb_size;
+	uint8_t *twkb;
+	if ( ! g )  lwnotice("input wkt is invalid: %s", wkt);
+	twkb = lwgeom_to_twkb_with_idlist(g, idlist, variant, prec_xy,  prec_z, prec_m, &twkb_size);
+	lwgeom_free(g);
+	if ( s ) free(s);
+	if ( w ) free(w);
+	s = hexbytes_from_bytes(twkb, twkb_size);
+	g_b = lwgeom_from_twkb(twkb, twkb_size, LW_PARSER_CHECK_NONE);
+	w = lwgeom_to_ewkt(g_b);
+	lwgeom_free(g_b);
+	free(twkb);
+}
+
+
+
+static void test_twkb_out_point(void)
+{
+
+	cu_twkb("POINT EMPTY", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"0110");
+
+	cu_twkb("POINT(0 0)", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"01000000");
+
+	cu_twkb("POINT(0 0 0 0)", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"01080300000000");
+
+	/* Point with bounding box */
+	cu_twkb("POINT(0 0)", 0, 0, 0, TWKB_BBOX);
+	CU_ASSERT_STRING_EQUAL(s,"0101000000000000");
+	// printf("TWKB: %s\n",s);
+
+	/* Adding a size paramters to X/Y */
+	cu_twkb("POINT(0 0)", 0, 0, 0, TWKB_SIZE);
+	CU_ASSERT_STRING_EQUAL(s,"0102020000");
+
+	/* Adding a size paramters to X/Y/M */
+	cu_twkb("POINTM(0 0 0)", 0, 0, 0, TWKB_SIZE);
+	CU_ASSERT_STRING_EQUAL(s,"010A0203000000");
+
+	/* Adding a size paramters to X/Y/Z/M */
+	cu_twkb("POINT(0 0 0 0)", 0, 0, 0, TWKB_SIZE);
+	CU_ASSERT_STRING_EQUAL(s,"010A030400000000");
+
+	/* Since the third dimension is Z it shall get a precision of 1 decimal (third argument) */
+	cu_twkb("POINTZ(1 1 1)", 0,1,2, 0);
+	CU_ASSERT_STRING_EQUAL(s,"010845020214");
+
+	/* Since the third dimension is M it shall get a precision of 2 decimals (fourth argument) */
+	cu_twkb("POINTM(1 1 1)", 0,1,2, 0);
+	// printf("\n%s\n", s);
+	CU_ASSERT_STRING_EQUAL(s,"0108460202C801");
+}
+
+static void test_twkb_out_linestring(void)
+{
+
+	cu_twkb("LINESTRING(0 0,1 1)", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"02000200000202");
+	// printf("TWKB: %s\n",s);
+
+	cu_twkb("LINESTRING(0 0 1,1 1 2,2 2 3)", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"02080103000002020202020202");
+	// printf("TWKB: %s\n",s);
+
+	/* Line with bounding box */
+	cu_twkb("LINESTRING(0 0,1 1,2 2)", 0, 0, 0, TWKB_BBOX);
+	CU_ASSERT_STRING_EQUAL(s,"02010004000403000002020202");
+	// printf("TWKB: %s\n",s);
+
+	cu_twkb("LINESTRING EMPTY", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"0210");
+	// printf("TWKB: %s\n",s);
+}
+
+static void test_twkb_out_polygon(void)
+{
+	cu_twkb("SRID=4;POLYGON((0 0 0, 0 1 0,1 1 0,1 0 0, 0 0 0))", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"0308010105000000000200020000000100010000");
+	// printf("TWKB: %s\n",s);
+
+	cu_twkb("SRID=14;POLYGON((0 0 0 1, 0 1 0 2,1 1 0 3,1 0 0 4, 0 0 0 5))", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"03080301050000000200020002020000020001000201000002");
+	// printf("TWKB: %s\n",s);
+
+	cu_twkb("POLYGON EMPTY", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"0310");
+	// printf("TWKB: %s\n",s);
+}
+
+static void test_twkb_out_multipoint(void)
+{
+	cu_twkb("MULTIPOINT(0 0 0, 0 1 0,1 1 0,1 0 0, 0 0 0)", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"04080105000000000200020000000100010000");
+
+	cu_twkb("MULTIPOINT(0 0 0, 0.26794919243112270647255365849413 1 3)",7 ,7 , 0, 0);
+	//printf("WKB: %s",s);
+	CU_ASSERT_STRING_EQUAL(s,"E4081D02000000888BC70280DAC409808ECE1C");
+//	printf("TWKB: %s\n",s);
+}
+
+static void test_twkb_out_multilinestring(void) {}
+
+static void test_twkb_out_multipolygon(void)
+{
+	cu_twkb("MULTIPOLYGON(((0 0 0, 0 1 0,1 1 0,1 0 0, 0 0 0)),((-1 -1 0,-1 2 0,2 2 0,2 -1 0,-1 -1 0),(0 0 0, 0 1 0,1 1 0,1 0 0, 0 0 0)))", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"060801020105000000000200020000000100010000020501010000060006000000050005000005020200000200020000000100010000");
+}
+
+static void test_twkb_out_collection(void)
+{
+	cu_twkb("GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), LINESTRING(3 3, 4 4), LINESTRING(5 5, 6 6))", 0, 0, 0, 0);
+	// printf("TWKB: %s\n",s);
+	CU_ASSERT_STRING_EQUAL(s,"07000302000202020202020002060602020200020A0A0202");
+
+	cu_twkb("GEOMETRYCOLLECTION(POLYGON((0 0 0, 0 1 0,1 1 0,1 0 0, 0 0 0)),POINT(1 1 1))", 0, 0, 0, 0);
+	// printf("TWKB: %s\n",s);
+	CU_ASSERT_STRING_EQUAL(s,"070801020308010105000000000200020000000100010000010801020202");
+
+	cu_twkb("GEOMETRYCOLLECTION EMPTY", 0, 0, 0, 0);
+	CU_ASSERT_STRING_EQUAL(s,"0710");
+}
+
+static void test_twkb_out_idlist(void)
+{
+	int64_t idlist[2];
+
+	idlist[0] = 2;
+	idlist[1] = 4;
+	cu_twkb_idlist("MULTIPOINT(1 1, 0 0)",idlist, 0, 0, 0, 0);
+	// printf("TWKB: %s\n",s);   
+	// printf("WKT: %s\n",w);   
+	CU_ASSERT_STRING_EQUAL(s,"040402040802020101");		
+	CU_ASSERT_STRING_EQUAL(w,"MULTIPOINT(1 1,0 0)");		
+
+	/* 
+	04 06 multipoint, size/idlist
+	07 size 7 bytes
+	02 two geometries
+	0408 idlist (2, 4)
+	0202 first point @ 1,1
+	0101 second point offset -1,-1 
+	*/
+	idlist[0] = 2;
+	idlist[1] = 4;
+	cu_twkb_idlist("MULTIPOINT(1 1, 0 0)",idlist, 0, 0, 0, TWKB_SIZE);
+	// printf("TWKB: %s\n",s);
+	// printf("WKT: %s\n",w);   
+	CU_ASSERT_STRING_EQUAL(s,"04060702040802020101");		
+	CU_ASSERT_STRING_EQUAL(w,"MULTIPOINT(1 1,0 0)");		
+
+	/*
+	04 07 multipoint, bbox/size/idlist
+	0B size 11 bytes
+	00020002 bbox x(0,1), y(0,1)
+	02 two geometries
+	0408 idlist (2,4)
+	0202 first point @ 1,1
+	0101 seconds point offset -1,-1
+	*/
+	idlist[0] = 2;
+	idlist[1] = 4;
+	cu_twkb_idlist("MULTIPOINT(1 1, 0 0)",idlist, 0, 0, 0, TWKB_SIZE | TWKB_BBOX);
+	// printf("TWKB: %s\n",s);
+	// printf("WKT: %s\n",w);   
+	CU_ASSERT_STRING_EQUAL(s,"04070B0002000202040802020101");		
+	CU_ASSERT_STRING_EQUAL(w,"MULTIPOINT(1 1,0 0)");		
+
+	/*
+	0704 geometrycollection, idlist
+	02 two geometries
+	0408 idlist (2,4)
+	01000202 first point (type, meta, x, y)
+	01000000 second point (type, meta, x, y)
+	*/		
+	idlist[0] = 2;
+	idlist[1] = 4;
+	cu_twkb_idlist("GEOMETRYCOLLECTION(POINT(1 1),POINT(0 0))",idlist, 0, 0, 0, 0);
+	// printf("TWKB: %s\n",s);
+	CU_ASSERT_STRING_EQUAL(s,"07040204080100020201000000");
+	CU_ASSERT_STRING_EQUAL(w,"GEOMETRYCOLLECTION(POINT(1 1),POINT(0 0))");		
+
+	/*
+	0706 geometrycollection, size/idlist
+	0D size, 13 bytes
+	02 two geometries
+	0408 idlist (2,4)
+	0102020202 first point (type, meta, size, x, y)
+	0102020000 second point (type, meta, size, x, y)
+	*/
+	idlist[0] = 2;
+	idlist[1] = 4;
+	cu_twkb_idlist("GEOMETRYCOLLECTION(POINT(1 1),POINT(0 0))",idlist, 0, 0, 0, TWKB_SIZE);
+	// printf("TWKB: %s\n",s);
+	CU_ASSERT_STRING_EQUAL(s,"07060D02040801020202020102020000");
+	CU_ASSERT_STRING_EQUAL(w,"GEOMETRYCOLLECTION(POINT(1 1),POINT(0 0))");		
+
+}
+
+
+/*
+** Used by test harness to register the tests in this file.
+*/
+void twkb_out_suite_setup(void);
+void twkb_out_suite_setup(void)
+{
+	CU_pSuite suite = CU_add_suite("twkb_output", init_twkb_out_suite, clean_twkb_out_suite);
+	PG_ADD_TEST(suite, test_twkb_out_point);
+	PG_ADD_TEST(suite, test_twkb_out_linestring);
+	PG_ADD_TEST(suite, test_twkb_out_polygon);
+	PG_ADD_TEST(suite, test_twkb_out_multipoint);
+	PG_ADD_TEST(suite, test_twkb_out_multilinestring);
+	PG_ADD_TEST(suite, test_twkb_out_multipolygon);
+	PG_ADD_TEST(suite, test_twkb_out_collection);
+	PG_ADD_TEST(suite, test_twkb_out_idlist);
+}
diff --git a/liblwgeom/cunit/cu_out_wkb.c b/liblwgeom/cunit/cu_out_wkb.c
index 49381f7..8094f87 100644
--- a/liblwgeom/cunit/cu_out_wkb.c
+++ b/liblwgeom/cunit/cu_out_wkb.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_out_wkb.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -74,6 +73,21 @@ static void test_wkb_out_point(void)
 
 	cu_wkb("SRID=4;POINTM(1 1 1)");
 	CU_ASSERT_STRING_EQUAL(s,"0060000001000000043FF00000000000003FF00000000000003FF0000000000000");
+	
+	cu_wkb("POINT EMPTY");
+	CU_ASSERT_STRING_EQUAL(s,"00000000017FF80000000000007FF8000000000000");
+
+	cu_wkb("SRID=4326;POINT EMPTY");
+	CU_ASSERT_STRING_EQUAL(s,"0020000001000010E67FF80000000000007FF8000000000000");
+
+	cu_wkb("POINT Z EMPTY");
+	CU_ASSERT_STRING_EQUAL(s,"00800000017FF80000000000007FF80000000000007FF8000000000000");
+
+	cu_wkb("POINT M EMPTY");
+	CU_ASSERT_STRING_EQUAL(s,"00400000017FF80000000000007FF80000000000007FF8000000000000");
+
+	cu_wkb("POINT ZM EMPTY");
+	CU_ASSERT_STRING_EQUAL(s,"00C00000017FF80000000000007FF80000000000007FF80000000000007FF8000000000000");
 }
 
 static void test_wkb_out_linestring(void)
@@ -116,8 +130,10 @@ static void test_wkb_out_multipoint(void)
 	CU_ASSERT_STRING_EQUAL(s,"00A000000400000004000000050080000001000000000000000000000000000000000000000000000000008000000100000000000000003FF0000000000000000000000000000000800000013FF00000000000003FF0000000000000000000000000000000800000013FF0000000000000000000000000000000000000000000000080000001000000000000000000000000000000000000000000000000");
 
 	cu_wkb("MULTIPOINT(0 0 0, 0.26794919243112270647255365849413 1 3)");
-	//printf("WKB: %s",s);
 	CU_ASSERT_STRING_EQUAL(s,"008000000400000002008000000100000000000000000000000000000000000000000000000000800000013FD126145E9ECD563FF00000000000004008000000000000");
+
+	cu_wkb("MULTIPOINT EMPTY");
+	CU_ASSERT_STRING_EQUAL(s,"000000000400000000");
 }
 
 static void test_wkb_out_multilinestring(void) {}
@@ -126,6 +142,9 @@ static void test_wkb_out_multipolygon(void)
 {
 	cu_wkb("SRID=14;MULTIPOLYGON(((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),((-1 -1 0,-1 2 0,2 2 0,2 -1 0,-1 -1 0),(0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)))");
 	CU_ASSERT_STRING_EQUAL(s,"00A00000060000000E000000020080000003000000010000000500000000000000000000000000000000000000000000000000000000000000003FF000000000000000000000000000003FF00000000000003FF000000000000000000000000000003FF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000030000000200000005BFF0000000000000BFF00000000000000000000000000000BFF000000000000040000000000000000000000000000000400000000000000040000000000000000000000000000000400 [...]
+
+	cu_wkb("MULTIPOLYGON EMPTY");
+	CU_ASSERT_STRING_EQUAL(s,"000000000600000000");
 }
 
 static void test_wkb_out_collection(void)
@@ -135,6 +154,13 @@ static void test_wkb_out_collection(void)
 
 	cu_wkb("GEOMETRYCOLLECTION EMPTY");
 	CU_ASSERT_STRING_EQUAL(s,"000000000700000000");
+
+	cu_wkb("GEOMETRYCOLLECTION(LINESTRING EMPTY)");
+	CU_ASSERT_STRING_EQUAL(s,"000000000700000001000000000200000000");
+
+	cu_wkb("GEOMETRYCOLLECTION(LINESTRING EMPTY, MULTILINESTRING(EMPTY,EMPTY))");
+	// printf("%s\n",s );
+	CU_ASSERT_STRING_EQUAL(s,"000000000700000002000000000200000000000000000500000002000000000200000000000000000200000000");
 }
 
 static void test_wkb_out_circularstring(void) 
@@ -178,7 +204,7 @@ static void test_wkb_out_polyhedralsurface(void)
 void wkb_out_suite_setup(void);
 void wkb_out_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("WKB Output", init_wkb_out_suite, clean_wkb_out_suite);
+	CU_pSuite suite = CU_add_suite("wkb_output", init_wkb_out_suite, clean_wkb_out_suite);
 	PG_ADD_TEST(suite, test_wkb_out_point);
 	PG_ADD_TEST(suite, test_wkb_out_linestring);
 	PG_ADD_TEST(suite, test_wkb_out_polygon);
diff --git a/liblwgeom/cunit/cu_out_wkt.c b/liblwgeom/cunit/cu_out_wkt.c
index 083e889..b9837e4 100644
--- a/liblwgeom/cunit/cu_out_wkt.c
+++ b/liblwgeom/cunit/cu_out_wkt.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_out_wkt.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -211,7 +210,7 @@ static void test_wkt_out_multisurface(void)
 void wkt_out_suite_setup(void);
 void wkt_out_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("WKT Output", init_wkt_out_suite, clean_wkt_out_suite);
+	CU_pSuite suite = CU_add_suite("wkt_output", init_wkt_out_suite, clean_wkt_out_suite);
 	PG_ADD_TEST(suite, test_wkt_out_point);
 	PG_ADD_TEST(suite, test_wkt_out_linestring);
 	PG_ADD_TEST(suite, test_wkt_out_polygon);
diff --git a/liblwgeom/cunit/cu_out_x3d.c b/liblwgeom/cunit/cu_out_x3d.c
index ea95881..b130cc5 100644
--- a/liblwgeom/cunit/cu_out_x3d.c
+++ b/liblwgeom/cunit/cu_out_x3d.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_out_x3d.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://www.postgis.org
@@ -18,13 +17,13 @@
 #include "liblwgeom_internal.h"
 #include "cu_tester.h"
 
-static void do_x3d3_test(char * in, char * out, char * srs, int precision)
+static void do_x3d3_test(char * in, char * out, char * srs, int precision, int option)
 {
 	LWGEOM *g;
 	char * h;
 
 	g = lwgeom_from_wkt(in, LW_PARSER_CHECK_NONE);
-	h = lwgeom_to_x3d3(g, srs, precision, 0, "");
+	h = lwgeom_to_x3d3(g, srs, precision, option, "");
 
 	if (strcmp(h, out))
 		fprintf(stderr, "\nIn:   %s\nOut:  %s\nTheo: %s\n", in, h, out);
@@ -62,40 +61,41 @@ static void out_x3d3_test_precision(void)
 	do_x3d3_test(
 	    "POINT(1.1111111111111 1.1111111111111 2.11111111111111)",
 	    "1 1 2",
-	    NULL, 0);
+	    NULL, 0, 0);
 
 	/* 3 digits precision */
 	do_x3d3_test(
 	    "POINT(1.1111111111111 1.1111111111111 2.11111111111111)",
 	    "1.111 1.111 2.111",
-	    NULL, 3);
+	    NULL, 3, 0);
 
 	/* 9 digits precision */
 	do_x3d3_test(
 	    "POINT(1.2345678901234 1.2345678901234 4.123456789001)",
 	    "1.23456789 1.23456789 4.123456789",
-	    NULL, 9);
+	    NULL, 9, 0);
 
 	/* huge data */
 	do_x3d3_test(
 	    "POINT(1E300 -105E-153 4E300)'",
 	    "1e+300 -0 4e+300",
-	    NULL, 0);
+	    NULL, 0, 0);
 }
 
+
 static void out_x3d3_test_geoms(void)
 {
 	/* Linestring */
 	do_x3d3_test(
 	    "LINESTRING(0 1 5,2 3 6,4 5 7)",
 	    "<LineSet  vertexCount='3'><Coordinate point='0 1 5 2 3 6 4 5 7' /></LineSet>",
-	    NULL, 0);
+	    NULL, 0, 0);
 
 	/* Polygon **/
 	do_x3d3_test(
 	    "POLYGON((15 10 3,13.536 6.464 3,10 5 3,6.464 6.464 3,5 10 3,6.464 13.536 3,10 15 3,13.536 13.536 3,15 10 3))",
 	    "<IndexedFaceSet  coordIndex='0 1 2 3 4 5 6 7'><Coordinate point='15 10 3 13.536 6.464 3 10 5 3 6.464 6.464 3 5 10 3 6.464 13.536 3 10 15 3 13.536 13.536 3 ' /></IndexedFaceSet>",
-	    NULL, 3);
+	    NULL, 3, 0);
 
 	/* TODO: Polygon - with internal ring - the answer is clearly wrong */
 	/** do_x3d3_test(
@@ -107,30 +107,30 @@ static void out_x3d3_test_geoms(void)
 	do_x3d3_test(
 	    "MULTIPOINT(0 1,2 3,4 5)",
 	    "<Polypoint2D  point='0 1 2 3 4 5 ' />",
-	    NULL, 0);
+	    NULL, 0, 0);
 	
 	/* 3D MultiPoint */
 	do_x3d3_test(
 	    "MULTIPOINT Z(0 1 1,2 3 4,4 5 5)",
 	    "<PointSet ><Coordinate point='0 1 1 2 3 4 4 5 5 ' /></PointSet>",
-	    NULL, 0);
+	    NULL, 0, 0);
 	/* 3D Multiline */
 	do_x3d3_test(
 	    "MULTILINESTRING Z((0 1 1,2 3 4,4 5 5),(6 7 5,8 9 8,10 11 5))",
 	    "<IndexedLineSet  coordIndex='0 1 2 -1 3 4 5'><Coordinate point='0 1 1 2 3 4 4 5 5 6 7 5 8 9 8 10 11 5 ' /></IndexedLineSet>",
-	    NULL, 0);
+	    NULL, 0, 0);
 
 	/* MultiPolygon */
 	do_x3d3_test(
 	    "MULTIPOLYGON(((0 1 1,2 3 1,4 5 1,0 1 1)),((6 7 1,8 9 1,10 11 1,6 7 1)))",
 	    "<IndexedFaceSet  coordIndex='0 1 2 -1 3 4 5'><Coordinate point='0 1 1 2 3 1 4 5 1 6 7 1 8 9 1 10 11 1 ' /></IndexedFaceSet>",
-	    NULL, 0);
+	    NULL, 0, 0);
 	
 	/* PolyhedralSurface */
 	do_x3d3_test(
 	    "POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )",
 	    "<IndexedFaceSet  coordIndex='0 1 2 3 -1 4 5 6 7 -1 8 9 10 11 -1 12 13 14 15 -1 16 17 18 19 -1 20 21 22 23'><Coordinate point='0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1' /></IndexedFaceSet>",
-	    NULL, 0);
+	    NULL, 0, 0);
 
 	/* TODO: returns garbage at moment correctly implement GeometryCollection -- */
 	/** do_x3d3_test(
@@ -156,13 +156,38 @@ static void out_x3d3_test_geoms(void)
 
 }
 
+static void out_x3d3_test_option(void)
+{
+	/* 0 precision, flip coordinates*/
+	do_x3d3_test(
+	    "POINT(3.1111111111111 1.1111111111111 2.11111111111111)",
+	    "1 3 2",
+	    NULL, 0, 1);
+		
+	/* geocoordinate long,lat*/
+	do_x3d3_test(
+	    "SRID=4326;POLYGON((15 10 3,13.536 6.464 3,10 5 3,6.464 6.464 3,5 10 3,6.464 13.536 3,10 15 3,13.536 13.536 3,15 10 3))",
+	    "<IndexedFaceSet  coordIndex='0 1 2 3 4 5 6 7'><GeoCoordinate geoSystem='\"GD\" \"WE\" \"longitude_first\"' point='15 10 3 13.536 6.464 3 10 5 3 6.464 6.464 3 5 10 3 6.464 13.536 3 10 15 3 13.536 13.536 3 ' /></IndexedFaceSet>",
+	    NULL, 3, 2);
+		
+	/* geocoordinate lat long*/
+	do_x3d3_test(
+	    "SRID=4326;POLYGON((15 10 3,13.536 6.464 3,10 5 3,6.464 6.464 3,5 10 3,6.464 13.536 3,10 15 3,13.536 13.536 3,15 10 3))",
+	    "<IndexedFaceSet  coordIndex='0 1 2 3 4 5 6 7'><GeoCoordinate geoSystem='\"GD\" \"WE\" \"latitude_first\"' point='10 15 3 6.464 13.536 3 5 10 3 6.464 6.464 3 10 5 3 13.536 6.464 3 15 10 3 13.536 13.536 3 ' /></IndexedFaceSet>",
+	    NULL, 3, 3);
+
+
+}
+
+
 /*
 ** Used by test harness to register the tests in this file.
 */
 void out_x3d_suite_setup(void);
 void out_x3d_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("X3D Output", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("x3d_output", NULL, NULL);
 	PG_ADD_TEST(suite, out_x3d3_test_precision);
 	PG_ADD_TEST(suite, out_x3d3_test_geoms);
+	PG_ADD_TEST(suite, out_x3d3_test_option);
 }
diff --git a/liblwgeom/cunit/cu_print.c b/liblwgeom/cunit/cu_print.c
index 6a93b99..782aa99 100644
--- a/liblwgeom/cunit/cu_print.c
+++ b/liblwgeom/cunit/cu_print.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_print.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -164,7 +163,7 @@ static void test_lwprint_bad_formats(void)
 void print_suite_setup(void);
 void print_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Printing", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("printing", NULL, NULL);
 	PG_ADD_TEST(suite, test_lwprint_default_format);
 	PG_ADD_TEST(suite, test_lwprint_format_orders);
 	PG_ADD_TEST(suite, test_lwprint_optional_format);
diff --git a/liblwgeom/cunit/cu_ptarray.c b/liblwgeom/cunit/cu_ptarray.c
index 27f35f8..f07651c 100644
--- a/liblwgeom/cunit/cu_ptarray.c
+++ b/liblwgeom/cunit/cu_ptarray.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_print.c 6160 2010-11-01 01:28:12Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -46,12 +45,12 @@ static void test_ptarray_append_point(void)
 	p.y = 1;
 	ptarray_append_point(line->points, &p, LW_TRUE);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line));
-	CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(0 0,1 1,1 1)");
+	ASSERT_STRING_EQUAL(wkt,"LINESTRING(0 0,1 1,1 1)");
 	lwfree(wkt);
 
 	ptarray_append_point(line->points, &p, LW_FALSE);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line));
-	CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(0 0,1 1,1 1)");
+	ASSERT_STRING_EQUAL(wkt,"LINESTRING(0 0,1 1,1 1)");
 	lwfree(wkt);
 
 	lwline_free(line);
@@ -68,35 +67,35 @@ static void test_ptarray_insert_point(void)
 	p.y = 1;
 	ptarray_insert_point(line->points, &p, 0);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line));
-	CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(1 1)");
+	ASSERT_STRING_EQUAL(wkt,"LINESTRING(1 1)");
 	lwfree(wkt);
 
 	p.x = 2; 
 	p.y = 20;
 	ptarray_insert_point(line->points, &p, 0);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line));
-	CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(2 20,1 1)");
+	ASSERT_STRING_EQUAL(wkt,"LINESTRING(2 20,1 1)");
 	lwfree(wkt);
 
 	p.x = 3; 
 	p.y = 30;
 	ptarray_insert_point(line->points, &p, 1);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line));
-	CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(2 20,3 30,1 1)");
+	ASSERT_STRING_EQUAL(wkt,"LINESTRING(2 20,3 30,1 1)");
 	lwfree(wkt);
 
 	p.x = 4; 
 	p.y = 40;
 	ptarray_insert_point(line->points, &p, 0);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line));
-	CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(4 40,2 20,3 30,1 1)");
+	ASSERT_STRING_EQUAL(wkt,"LINESTRING(4 40,2 20,3 30,1 1)");
 	lwfree(wkt);
 
 	p.x = 5; 
 	p.y = 50;
 	ptarray_insert_point(line->points, &p, 4);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line));
-	CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(4 40,2 20,3 30,1 1,5 50)");
+	ASSERT_STRING_EQUAL(wkt,"LINESTRING(4 40,2 20,3 30,1 1,5 50)");
 	lwfree(wkt);
 
 	lwline_free(line);
@@ -114,7 +113,7 @@ static void test_ptarray_append_ptarray(void)
 	ret = ptarray_append_ptarray(line1->points, line2->points, -1);
 	CU_ASSERT(ret == LW_SUCCESS);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line1));
-	CU_ASSERT_STRING_EQUAL(wkt, "LINESTRING(0 0,0 10,5 5)");
+	ASSERT_STRING_EQUAL(wkt, "LINESTRING(0 0,0 10,5 5)");
 	lwfree(wkt);
 	lwline_free(line2);
 	lwline_free(line1);
@@ -125,7 +124,7 @@ static void test_ptarray_append_ptarray(void)
 	ret = ptarray_append_ptarray(line1->points, line2->points, -1);
 	CU_ASSERT(ret == LW_SUCCESS);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line1));
-	CU_ASSERT_STRING_EQUAL(wkt, "LINESTRING(0 0,5 5,6 3)");
+	ASSERT_STRING_EQUAL(wkt, "LINESTRING(0 0,5 5,6 3)");
 	lwfree(wkt);
 	lwline_free(line2);
 	lwline_free(line1);
@@ -136,7 +135,7 @@ static void test_ptarray_append_ptarray(void)
 	ret = ptarray_append_ptarray(line1->points, line2->points, -1);
 	CU_ASSERT(ret == LW_SUCCESS);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line1));
-	CU_ASSERT_STRING_EQUAL(wkt, "LINESTRING EMPTY");
+	ASSERT_STRING_EQUAL(wkt, "LINESTRING EMPTY");
 	lwfree(wkt);
 	lwline_free(line2);
 	lwline_free(line1);
@@ -147,7 +146,7 @@ static void test_ptarray_append_ptarray(void)
 	ret = ptarray_append_ptarray(line1->points, line2->points, 0);
 	CU_ASSERT(ret == LW_SUCCESS);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line1));
-	CU_ASSERT_STRING_EQUAL(wkt, "LINESTRING(10 4,0 0,5 7,12 43,42 15)");
+	ASSERT_STRING_EQUAL(wkt, "LINESTRING(10 4,0 0,5 7,12 43,42 15)");
 	lwfree(wkt);
 	lwline_free(line2);
 	lwline_free(line1);
@@ -166,7 +165,7 @@ static void test_ptarray_append_ptarray(void)
 	ret = ptarray_append_ptarray(line1->points, line2->points, .7);
 	CU_ASSERT(ret == LW_SUCCESS);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line1));
-	CU_ASSERT_STRING_EQUAL(wkt, "LINESTRING(10 4,0 0,5 7,5.5 7,12 43,42 15)");
+	ASSERT_STRING_EQUAL(wkt, "LINESTRING(10 4,0 0,5 7,5.5 7,12 43,42 15)");
 	lwfree(wkt);
 	lwline_free(line2);
 	lwline_free(line1);
@@ -177,7 +176,7 @@ static void test_ptarray_append_ptarray(void)
 	ret = ptarray_append_ptarray(line1->points, line2->points, -1);
 	CU_ASSERT(ret == LW_SUCCESS);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line1));
-	CU_ASSERT_STRING_EQUAL(wkt, "LINESTRING(0 0,0 10,0 0,0 10)");
+	ASSERT_STRING_EQUAL(wkt, "LINESTRING(0 0,0 10,0 0,0 10)");
 	lwfree(wkt);
 	lwline_free(line2);
 	lwline_free(line1);
@@ -197,7 +196,7 @@ static void test_ptarray_append_ptarray(void)
 	ret = ptarray_append_ptarray(line1->points, line2->points, -1);
 	CU_ASSERT(ret == LW_SUCCESS);
 	wkt = lwgeom_to_text(lwline_as_lwgeom(line1));
-	CU_ASSERT_STRING_EQUAL(wkt, "LINESTRING(0 10,10 0,11 0)");
+	ASSERT_STRING_EQUAL(wkt, "LINESTRING(0 10,10 0,11 0)");
 	lwfree(wkt);
 	FLAGS_SET_READONLY(line2->points->flags, 0); /* for lwline_free */
 	lwline_free(line2);
@@ -343,7 +342,7 @@ static void test_ptarray_signed_area()
 
 
 
-static void test_ptarray_desegmentize() 
+static void test_ptarray_unstroke() 
 {
 	LWGEOM *in, *out;
 	char *str;
@@ -352,98 +351,98 @@ static void test_ptarray_desegmentize()
 	   but it looks like the intersection itself is too sloppy in generating the derived point
 	   to accurately reconstruct the circles.
 	in = lwgeom_from_text("POLYGON((0.5 0,0.471177920604846 -0.292635483024192,0.38581929876693 -0.574025148547634,0.247204418453818 -0.833355349529403,0.0606601717798223 -1.06066017177982,-5.44089437167602e-17 -1.11044268820754,-0.0606601717798188 -1.06066017177982,-0.247204418453816 -0.833355349529406,-0.385819298766929 -0.574025148547639,-0.471177920604845 -0.292635483024197,-0.5 -4.84663372329776e-15,-0.471177920604847 0.292635483024187,-0.385819298766932 0.57402514854763,-0.24720441845 [...]
-	out = lwgeom_desegmentize(in);
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
 	printf("%s\n", str);
-	CU_ASSERT_STRING_EQUAL(str, "CIRCULARSTRING(-1 0,0 1,0 -1)");
+	ASSERT_STRING_EQUAL(str, "CIRCULARSTRING(-1 0,0 1,0 -1)");
 	lwgeom_free(in);
 	lwgeom_free(out);
 	lwfree(str);	
 	*/
 	
 	in = lwgeom_from_text("CIRCULARSTRING(-1 0,0 1,0 -1)");
-	out = lwgeom_segmentize(in,8);
+	out = lwgeom_stroke(in,8);
 	lwgeom_free(in);
-  in = out;
-	out = lwgeom_desegmentize(in);
+	in = out;
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
-	//printf("%s\n", str);
-	CU_ASSERT_STRING_EQUAL(str, "CIRCULARSTRING(-1 0,0.70710678 0.70710678,0 -1)");
+	// printf("%s\n", str);
+	ASSERT_STRING_EQUAL(str, "CIRCULARSTRING(-1 0,0.70710678 0.70710678,0 -1)");
 	lwgeom_free(in);
 	lwgeom_free(out);
 	lwfree(str);	
 
 	in = lwgeom_from_text("COMPOUNDCURVE(CIRCULARSTRING(-1 0,0 1,0 -1),(0 -1,-1 -1))");
-	out = lwgeom_segmentize(in,8);
+	out = lwgeom_stroke(in,8);
 	lwgeom_free(in);
-  in = out;
-	out = lwgeom_desegmentize(in);
+	in = out;
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
-	//printf("%s\n", str);
-	CU_ASSERT_STRING_EQUAL(str, "COMPOUNDCURVE(CIRCULARSTRING(-1 0,0.70710678 0.70710678,0 -1),(0 -1,-1 -1))");
+	// printf("%s\n", str);
+	ASSERT_STRING_EQUAL(str, "COMPOUNDCURVE(CIRCULARSTRING(-1 0,0.70710678 0.70710678,0 -1),(0 -1,-1 -1))");
 	lwgeom_free(in);
 	lwgeom_free(out);
 	lwfree(str);	
 
 	in = lwgeom_from_text("COMPOUNDCURVE((-3 -3,-1 0),CIRCULARSTRING(-1 0,0 1,0 -1),(0 -1,0 -1.5,0 -2),CIRCULARSTRING(0 -2,-1 -3,1 -3),(1 -3,5 5))");
-	out = lwgeom_segmentize(in,8);
+	out = lwgeom_stroke(in,8);
 	lwgeom_free(in);
-  in = out;
-	out = lwgeom_desegmentize(in);
+	in = out;
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
-	//printf("%s\n", str);
-	CU_ASSERT_STRING_EQUAL(str, "COMPOUNDCURVE((-3 -3,-1 0),CIRCULARSTRING(-1 0,0.70710678 0.70710678,0 -1),(0 -1,0 -1.5,0 -2),CIRCULARSTRING(0 -2,-0.70710678 -3.7071068,1 -3),(1 -3,5 5))");
+	// printf("%s\n", str);
+	ASSERT_STRING_EQUAL(str, "COMPOUNDCURVE((-3 -3,-1 0),CIRCULARSTRING(-1 0,0.70710678 0.70710678,0 -1),(0 -1,0 -1.5,0 -2),CIRCULARSTRING(0 -2,-0.70710678 -3.7071068,1 -3),(1 -3,5 5))");
 	lwgeom_free(in);
 	lwgeom_free(out);
 	lwfree(str);	
 
 	in = lwgeom_from_text("COMPOUNDCURVE(CIRCULARSTRING(-1 0,0 1,0 -1),CIRCULARSTRING(0 -1,-1 -2,1 -2))");
-	out = lwgeom_segmentize(in,8);
+	out = lwgeom_stroke(in,8);
 	lwgeom_free(in);
-  in = out;
-	out = lwgeom_desegmentize(in);
+	in = out;
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
-	//printf("%s\n", str);
-	CU_ASSERT_STRING_EQUAL(str, "COMPOUNDCURVE(CIRCULARSTRING(-1 0,0.70710678 0.70710678,0 -1),CIRCULARSTRING(0 -1,-0.70710678 -2.7071068,1 -2))");
+	// printf("%s\n", str);
+	ASSERT_STRING_EQUAL(str, "COMPOUNDCURVE(CIRCULARSTRING(-1 0,0.70710678 0.70710678,0 -1),CIRCULARSTRING(0 -1,-0.70710678 -2.7071068,1 -2))");
 	lwgeom_free(in);
 	lwgeom_free(out);
 	lwfree(str);	
 	
 	in = lwgeom_from_text("COMPOUNDCURVE((0 0, 1 1), CIRCULARSTRING(1 1, 2 2, 3 1), (3 1, 4 4))");
-	out = lwgeom_segmentize(in,8);
+	out = lwgeom_stroke(in,8);
 	lwgeom_free(in);
-  in = out;
-	out = lwgeom_desegmentize(in);
+	in = out;
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
-	CU_ASSERT_STRING_EQUAL(str, "COMPOUNDCURVE((0 0,1 1),CIRCULARSTRING(1 1,2 2,3 1),(3 1,4 4))");
+	ASSERT_STRING_EQUAL(str, "COMPOUNDCURVE((0 0,1 1),CIRCULARSTRING(1 1,2 2,3 1),(3 1,4 4))");
 	lwgeom_free(in);
 	lwgeom_free(out);
-//	printf("%s\n", str);
+	// printf("%s\n", str);
 	lwfree(str);		
 	
 	// See http://trac.osgeo.org/postgis/ticket/2425 
 	// and http://trac.osgeo.org/postgis/ticket/2420 
 	in = lwgeom_from_text("LINESTRING(0 0,10 0,10 10,0 10,0 0)");
-	out = lwgeom_desegmentize(in);
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
-	CU_ASSERT_STRING_EQUAL(str, "LINESTRING(0 0,10 0,10 10,0 10,0 0)");
+	ASSERT_STRING_EQUAL(str, "LINESTRING(0 0,10 0,10 10,0 10,0 0)");
 	lwgeom_free(in);
 	lwgeom_free(out);
 	lwfree(str);	
 
 	in = lwgeom_from_text("LINESTRING(10 10,0 10,0 0,10 0)");
-	out = lwgeom_desegmentize(in);
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
-	CU_ASSERT_STRING_EQUAL(str, "LINESTRING(10 10,0 10,0 0,10 0)");
+	ASSERT_STRING_EQUAL(str, "LINESTRING(10 10,0 10,0 0,10 0)");
 	// printf("%s\n", str);
 	lwgeom_free(in);
 	lwgeom_free(out);
 	lwfree(str);
 
 	in = lwgeom_from_text("LINESTRING(0 0,10 0,10 10,0 10)");
-	out = lwgeom_desegmentize(in);
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
-	CU_ASSERT_STRING_EQUAL(str, "LINESTRING(0 0,10 0,10 10,0 10)");
+	ASSERT_STRING_EQUAL(str, "LINESTRING(0 0,10 0,10 10,0 10)");
 	// printf("%s\n", str);
 	lwgeom_free(in);
 	lwgeom_free(out);
@@ -451,13 +450,14 @@ static void test_ptarray_desegmentize()
 
 	// See http://trac.osgeo.org/postgis/ticket/2412
 	in = lwgeom_from_text("LINESTRING(0 0, 1 1)");
-	out = lwgeom_desegmentize(in);
+	out = lwgeom_unstroke(in);
 	str = lwgeom_to_wkt(out, WKT_ISO, 8, NULL);
-//printf("%s\n", str);
-	CU_ASSERT_STRING_EQUAL(str, "LINESTRING(0 0,1 1)");
+	// printf("%s\n", str);
+	ASSERT_STRING_EQUAL(str, "LINESTRING(0 0,1 1)");
 	lwgeom_free(in);
 	lwgeom_free(out);
 	lwfree(str);		
+
 }
 
 static void test_ptarray_contains_point() 
@@ -674,7 +674,7 @@ static void test_ptarrayarc_contains_point()
 	cu_error_msg_reset();
 	rv = ptarrayarc_contains_point(pa, &pt);
 	//printf("%s\n", cu_error_msg);
-	CU_ASSERT_STRING_EQUAL("ptarrayarc_contains_point called with even number of points", cu_error_msg);
+	ASSERT_STRING_EQUAL("ptarrayarc_contains_point called with even number of points", cu_error_msg);
 
 	/*** Unclosed ring ***/
 	lwline_free(lwline);
@@ -682,11 +682,60 @@ static void test_ptarrayarc_contains_point()
 	pa = lwline->points;
 	cu_error_msg_reset();
 	rv = ptarrayarc_contains_point(pa, &pt);
-	CU_ASSERT_STRING_EQUAL("ptarrayarc_contains_point called on unclosed ring", cu_error_msg);
+	ASSERT_STRING_EQUAL("ptarrayarc_contains_point called on unclosed ring", cu_error_msg);
 
 	lwline_free(lwline);
 }
 
+static void test_ptarray_scale() 
+{
+  LWLINE *line;
+  POINTARRAY *pa;
+  POINT4D factor;
+  const char *wkt;
+  char *wktout;
+
+  wkt = "LINESTRING ZM (0 1 2 3,1 2 3 0,-2 -3 0 -1,-3 0 -1 -2)";
+  line = lwgeom_as_lwline(lwgeom_from_text(wkt));
+  pa = line->points;
+
+  factor.x = factor.y = factor.z = factor.m = 1;
+  ptarray_scale(pa, &factor);
+  wktout = lwgeom_to_text(lwline_as_lwgeom(line));
+  ASSERT_STRING_EQUAL(wktout, wkt);
+  lwfree(wktout);
+  
+  factor.x = 2;
+  wkt = "LINESTRING ZM (0 1 2 3,2 2 3 0,-4 -3 0 -1,-6 0 -1 -2)";
+  ptarray_scale(pa, &factor);
+  wktout = lwgeom_to_text(lwline_as_lwgeom(line));
+  ASSERT_STRING_EQUAL(wktout, wkt);
+  lwfree(wktout);
+  
+  factor.x = 1; factor.y = 3;
+  wkt = "LINESTRING ZM (0 3 2 3,2 6 3 0,-4 -9 0 -1,-6 0 -1 -2)";
+  ptarray_scale(pa, &factor);
+  wktout = lwgeom_to_text(lwline_as_lwgeom(line));
+  ASSERT_STRING_EQUAL(wktout, wkt);
+  lwfree(wktout);
+  
+  factor.x = 1; factor.y = 1; factor.z = -2;
+  wkt = "LINESTRING ZM (0 3 -4 3,2 6 -6 0,-4 -9 -0 -1,-6 0 2 -2)";
+  ptarray_scale(pa, &factor);
+  wktout = lwgeom_to_text(lwline_as_lwgeom(line));
+  ASSERT_STRING_EQUAL(wktout, wkt);
+  lwfree(wktout);
+  
+  factor.x = 1; factor.y = 1; factor.z = 1; factor.m = 2;
+  wkt = "LINESTRING ZM (0 3 -4 6,2 6 -6 0,-4 -9 -0 -2,-6 0 2 -4)";
+  ptarray_scale(pa, &factor);
+  wktout = lwgeom_to_text(lwline_as_lwgeom(line));
+  ASSERT_STRING_EQUAL(wktout, wkt);
+  lwfree(wktout);
+
+  lwline_free(line);
+}
+
 
 /*
 ** Used by the test harness to register the tests in this file.
@@ -694,14 +743,15 @@ static void test_ptarrayarc_contains_point()
 void ptarray_suite_setup(void);
 void ptarray_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Point Array", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("ptarray", NULL, NULL);
 	PG_ADD_TEST(suite, test_ptarray_append_point);
 	PG_ADD_TEST(suite, test_ptarray_append_ptarray);
 	PG_ADD_TEST(suite, test_ptarray_locate_point);
 	PG_ADD_TEST(suite, test_ptarray_isccw);
 	PG_ADD_TEST(suite, test_ptarray_signed_area);
-	PG_ADD_TEST(suite, test_ptarray_desegmentize);
+	PG_ADD_TEST(suite, test_ptarray_unstroke);
 	PG_ADD_TEST(suite, test_ptarray_insert_point);
 	PG_ADD_TEST(suite, test_ptarray_contains_point);
 	PG_ADD_TEST(suite, test_ptarrayarc_contains_point);
+	PG_ADD_TEST(suite, test_ptarray_scale);
 }
diff --git a/liblwgeom/cunit/cu_split.c b/liblwgeom/cunit/cu_split.c
index 5a66508..205b9a5 100644
--- a/liblwgeom/cunit/cu_split.c
+++ b/liblwgeom/cunit/cu_split.c
@@ -3,7 +3,7 @@
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
  *
- * Copyright (C) 2011 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2011-2015 Sandro Santilli <strk at keybit.net>
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
@@ -154,6 +154,101 @@ static void test_lwgeom_split(void)
 	lwgeom_free(ret);
 	lwgeom_free(geom);
 	lwgeom_free(blade);
+
+  /* Split line by multiline */
+  geom = lwgeom_from_wkt("LINESTRING(0 0, 10 0)", LW_PARSER_CHECK_NONE);
+  CU_ASSERT_FATAL(geom != NULL);
+  blade = lwgeom_from_wkt("MULTILINESTRING((1 1,1 -1),(2 1,2 -1,3 -1,3 1))",
+    LW_PARSER_CHECK_NONE);
+  ret = lwgeom_split(geom, blade);
+  if ( ! ret ) printf("%s", cu_error_msg);
+  CU_ASSERT_FATAL(ret != NULL);
+  wkt = lwgeom_to_ewkt(ret);
+  CU_ASSERT_FATAL(wkt != NULL);
+	in_wkt = "GEOMETRYCOLLECTION(LINESTRING(0 0,1 0),LINESTRING(1 0,2 0),LINESTRING(2 0,3 0),LINESTRING(3 0,10 0))";
+  if (strcmp(in_wkt, wkt))
+                fprintf(stderr, "\nExp:  %s\nObt:  %s\n", in_wkt, wkt);
+  CU_ASSERT_STRING_EQUAL(wkt, in_wkt);
+  lwfree(wkt);
+	lwgeom_free(ret);
+	lwgeom_free(geom);
+	lwgeom_free(blade);
+
+  /* Split line by polygon (boundary) */
+  geom = lwgeom_from_wkt("LINESTRING(0 0, 10 0)", LW_PARSER_CHECK_NONE);
+  CU_ASSERT_FATAL(geom != NULL);
+  blade = lwgeom_from_wkt(
+"POLYGON((1 -2,1 1,2 1,2 -1,3 -1,3 1,11 1,11 -2,1 -2))",
+    LW_PARSER_CHECK_NONE);
+  ret = lwgeom_split(geom, blade);
+  if ( ! ret ) printf("%s", cu_error_msg);
+  CU_ASSERT_FATAL(ret != NULL);
+  wkt = lwgeom_to_ewkt(ret);
+  CU_ASSERT_FATAL(wkt != NULL);
+	in_wkt = "GEOMETRYCOLLECTION(LINESTRING(0 0,1 0),LINESTRING(1 0,2 0),LINESTRING(2 0,3 0),LINESTRING(3 0,10 0))";
+  if (strcmp(in_wkt, wkt))
+                fprintf(stderr, "\nExp:  %s\nObt:  %s\n", in_wkt, wkt);
+  CU_ASSERT_STRING_EQUAL(wkt, in_wkt);
+  lwfree(wkt);
+	lwgeom_free(ret);
+	lwgeom_free(geom);
+	lwgeom_free(blade);
+
+  /* Split line by EMPTY polygon (boundary) */
+  geom = lwgeom_from_wkt("LINESTRING(0 0, 10 0)", LW_PARSER_CHECK_NONE);
+  CU_ASSERT_FATAL(geom != NULL);
+  blade = lwgeom_from_wkt("POLYGON EMPTY", LW_PARSER_CHECK_NONE);
+  ret = lwgeom_split(geom, blade);
+  if ( ! ret ) printf("%s", cu_error_msg);
+  CU_ASSERT_FATAL(ret != NULL);
+  wkt = lwgeom_to_ewkt(ret);
+  CU_ASSERT_FATAL(wkt != NULL);
+	in_wkt = "GEOMETRYCOLLECTION(LINESTRING(0 0,10 0))";
+  if (strcmp(in_wkt, wkt))
+                fprintf(stderr, "\nExp:  %s\nObt:  %s\n", in_wkt, wkt);
+  CU_ASSERT_STRING_EQUAL(wkt, in_wkt);
+  lwfree(wkt);
+	lwgeom_free(ret);
+	lwgeom_free(geom);
+	lwgeom_free(blade);
+
+  /* Split line by multipolygon (boundary) */
+  geom = lwgeom_from_wkt("LINESTRING(0 0, 10 0)", LW_PARSER_CHECK_NONE);
+  CU_ASSERT_FATAL(geom != NULL);
+  blade = lwgeom_from_wkt(
+"MULTIPOLYGON(((1 -1,1 1,2 1,2 -1,1 -1)),((3 -1,3 1,11 1,11 -1,3 -1)))",
+    LW_PARSER_CHECK_NONE);
+  ret = lwgeom_split(geom, blade);
+  if ( ! ret ) printf("%s", cu_error_msg);
+  CU_ASSERT_FATAL(ret != NULL);
+  wkt = lwgeom_to_ewkt(ret);
+  CU_ASSERT_FATAL(wkt != NULL);
+	in_wkt = "GEOMETRYCOLLECTION(LINESTRING(0 0,1 0),LINESTRING(1 0,2 0),LINESTRING(2 0,3 0),LINESTRING(3 0,10 0))";
+  if (strcmp(in_wkt, wkt))
+                fprintf(stderr, "\nExp:  %s\nObt:  %s\n", in_wkt, wkt);
+  CU_ASSERT_STRING_EQUAL(wkt, in_wkt);
+  lwfree(wkt);
+	lwgeom_free(ret);
+	lwgeom_free(geom);
+	lwgeom_free(blade);
+
+  /* Split line by multipoint */
+  geom = lwgeom_from_wkt("LINESTRING(0 0, 10 0)", LW_PARSER_CHECK_NONE);
+  CU_ASSERT_FATAL(geom != NULL);
+  blade = lwgeom_from_wkt("MULTIPOINT(2 0,8 0,4 0)", LW_PARSER_CHECK_NONE);
+  ret = lwgeom_split(geom, blade);
+  if ( ! ret ) printf("%s", cu_error_msg);
+  CU_ASSERT_FATAL(ret != NULL);
+  wkt = lwgeom_to_ewkt(ret);
+  CU_ASSERT_FATAL(wkt != NULL);
+	in_wkt = "GEOMETRYCOLLECTION(LINESTRING(8 0,10 0),LINESTRING(0 0,2 0),LINESTRING(4 0,8 0),LINESTRING(2 0,4 0))";
+  if (strcmp(in_wkt, wkt))
+                fprintf(stderr, "\nExp:  %s\nObt:  %s\n", in_wkt, wkt);
+  CU_ASSERT_STRING_EQUAL(wkt, in_wkt);
+  lwfree(wkt);
+	lwgeom_free(ret);
+	lwgeom_free(geom);
+	lwgeom_free(blade);
 }
 
 
@@ -163,7 +258,7 @@ static void test_lwgeom_split(void)
 void split_suite_setup(void);
 void split_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Split", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("split", NULL, NULL);
 	PG_ADD_TEST(suite, test_lwline_split_by_point_to);
 	PG_ADD_TEST(suite, test_lwgeom_split);
 }
diff --git a/liblwgeom/cunit/cu_stringbuffer.c b/liblwgeom/cunit/cu_stringbuffer.c
index c2b39d8..d7c7ce8 100644
--- a/liblwgeom/cunit/cu_stringbuffer.c
+++ b/liblwgeom/cunit/cu_stringbuffer.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -57,7 +56,7 @@ static void test_stringbuffer_aprintf(void)
 void stringbuffer_suite_setup(void);
 void stringbuffer_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("StringBuffer", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("stringbuffer", NULL, NULL);
 	PG_ADD_TEST(suite, test_stringbuffer_append);
 	PG_ADD_TEST(suite, test_stringbuffer_aprintf);
 }
diff --git a/liblwgeom/cunit/cu_surface.c b/liblwgeom/cunit/cu_surface.c
index b409d52..bf3c271 100644
--- a/liblwgeom/cunit/cu_surface.c
+++ b/liblwgeom/cunit/cu_surface.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id:$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -311,7 +310,7 @@ void polyhedralsurface_parse(void)
 	geom = lwgeom_from_wkt("POLYHEDRALSURFACE EMPTY", LW_PARSER_CHECK_NONE);
 	CU_ASSERT_EQUAL(strlen(cu_error_msg), 0);
 	CU_ASSERT_EQUAL(geom->type, POLYHEDRALSURFACETYPE);
-	tmp = (char*)lwgeom_to_wkb(geom, WKB_HEX | WKB_ISO | WKB_NDR, 0);
+	tmp = (char *)lwgeom_to_wkb(geom, WKB_HEX | WKB_ISO | WKB_NDR, 0);
 	CU_ASSERT_STRING_EQUAL("010F00000000000000", tmp);
 	lwfree(tmp);
 	tmp = lwgeom_to_ewkt(geom);
@@ -404,7 +403,7 @@ surface_dimension(void)
 void surface_suite_setup(void);
 void surface_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Surface", NULL,  NULL);
+	CU_pSuite suite = CU_add_suite("surface", NULL,  NULL);
 	PG_ADD_TEST(suite, triangle_parse);
 	PG_ADD_TEST(suite, tin_parse);
 	PG_ADD_TEST(suite, polyhedralsurface_parse);
diff --git a/liblwgeom/cunit/cu_surface.h b/liblwgeom/cunit/cu_surface.h
index f66e18c..011b4ce 100644
--- a/liblwgeom/cunit/cu_surface.h
+++ b/liblwgeom/cunit/cu_surface.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id:$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/liblwgeom/cunit/cu_tester.c b/liblwgeom/cunit/cu_tester.c
index 6fae557..82af192 100644
--- a/liblwgeom/cunit/cu_tester.c
+++ b/liblwgeom/cunit/cu_tester.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_tester.c 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -21,25 +20,36 @@
 static void
 cu_errorreporter(const char *fmt, va_list ap);
 
+static void
+cu_noticereporter(const char *fmt, va_list ap);
+
 
 /* ADD YOUR SUITE SETUP FUNCTION HERE (1 of 2) */
 extern void print_suite_setup();
 extern void algorithms_suite_setup();
 extern void buildarea_suite_setup();
 extern void clean_suite_setup();
+extern void clip_by_rect_suite_setup();
 extern void force_sfs_suite_setup(void);
 extern void geodetic_suite_setup(void);
 extern void geos_suite_setup(void);
+extern void geos_cluster_suite_setup(void);
+extern void unionfind_suite_setup(void);
 extern void homogenize_suite_setup(void);
+extern void in_encoded_polyline_suite_setup(void);
 extern void in_geojson_suite_setup(void);
+extern void twkb_in_suite_setup(void);
 extern void libgeom_suite_setup(void);
 extern void measures_suite_setup(void);
+extern void effectivearea_suite_setup(void);
 extern void misc_suite_setup(void);
 extern void node_suite_setup(void);
+extern void out_encoded_polyline_suite_setup(void);
 extern void out_geojson_suite_setup(void);
 extern void out_gml_suite_setup(void);
 extern void out_kml_suite_setup(void);
 extern void out_svg_suite_setup(void);
+extern void twkb_out_suite_setup(void);
 extern void out_x3d_suite_setup(void);
 extern void ptarray_suite_setup(void);
 extern void sfcgal_suite_setup(void);
@@ -47,6 +57,7 @@ extern void split_suite_setup(void);
 extern void stringbuffer_suite_setup(void);
 extern void tree_suite_setup(void);
 extern void triangulate_suite_setup(void);
+extern void varint_suite_setup(void);
 extern void wkt_out_suite_setup(void);
 extern void wkb_out_suite_setup(void);
 extern void surface_suite_setup(void);
@@ -57,43 +68,54 @@ extern void wkt_in_suite_setup(void);
 /* AND ADD YOUR SUITE SETUP FUNCTION HERE (2 of 2) */
 PG_SuiteSetup setupfuncs[] =
 {
-	print_suite_setup,
 	algorithms_suite_setup,
 	buildarea_suite_setup,
 	clean_suite_setup,
+	clip_by_rect_suite_setup,
 	force_sfs_suite_setup,
 	geodetic_suite_setup,
 	geos_suite_setup,
+	geos_cluster_suite_setup,
+	unionfind_suite_setup,
 	homogenize_suite_setup,
+	in_encoded_polyline_suite_setup,
 #if HAVE_LIBJSON
 	in_geojson_suite_setup,
 #endif
+	twkb_in_suite_setup,
 	libgeom_suite_setup,
 	measures_suite_setup,
+	effectivearea_suite_setup,
 	misc_suite_setup,
 	node_suite_setup,
+	out_encoded_polyline_suite_setup,
 	out_geojson_suite_setup,
 	out_gml_suite_setup,
 	out_kml_suite_setup,
 	out_svg_suite_setup,
 	out_x3d_suite_setup,
 	ptarray_suite_setup,
+	print_suite_setup,
 #if HAVE_SFCGAL
 	sfcgal_suite_setup,
 #endif
 	split_suite_setup,
 	stringbuffer_suite_setup,
+	surface_suite_setup,
 	tree_suite_setup,
 	triangulate_suite_setup,
-	wkt_out_suite_setup,
-	wkb_out_suite_setup,
-	surface_suite_setup,
+	twkb_out_suite_setup,
+	varint_suite_setup,
 	wkb_in_suite_setup,
+	wkb_out_suite_setup,
 	wkt_in_suite_setup,
+	wkt_out_suite_setup,
 	NULL
 };
 
 
+#define MAX_CUNIT_MSG_LENGTH 256
+
 /*
 ** The main() function for setting up and running the tests.
 ** Returns a CUE_SUCCESS on successful running, another
@@ -110,12 +132,12 @@ int main(int argc, char *argv[])
 	CU_pTestRegistry registry;
 	int num_run;
 	int num_failed;
-        PG_SuiteSetup *setupfunc = setupfuncs;
-	
-	/* install the custom error handler */
-	lwgeom_set_handlers(0, 0, 0, cu_errorreporter, 0);
+	PG_SuiteSetup *setupfunc = setupfuncs;
+
+	/* Install the custom error handler */
+	lwgeom_set_handlers(0, 0, 0, cu_errorreporter, cu_noticereporter);
 
-	/* initialize the CUnit test registry */
+	/* Initialize the CUnit test registry */
 	if (CUE_SUCCESS != CU_initialize_registry())
 	{
 		errCode = CU_get_error();
@@ -124,13 +146,12 @@ int main(int argc, char *argv[])
 	}
 
 	/* Register all the test suites. */
-        while ( *setupfunc )
+	while ( *setupfunc )
 	{
 		(*setupfunc)();
 		setupfunc++;
 	}
 
-
 	/* Run all tests using the CUnit Basic interface */
 	CU_basic_set_mode(CU_BRM_VERBOSE);
 	if (argc <= 1)
@@ -234,19 +255,18 @@ int main(int argc, char *argv[])
 static void
 cu_errorreporter(const char *fmt, va_list ap)
 {
-	char *msg;
-
-	/** This is a GNU extension.
-	* Dunno how to handle errors here.
-	 */
-	if (!lw_vasprintf (&msg, fmt, ap))
-	{
-		va_end (ap);
-		return;
-	}
+  vsnprintf (cu_error_msg, MAX_CUNIT_MSG_LENGTH, fmt, ap);
+  cu_error_msg[MAX_CUNIT_MSG_LENGTH]='\0';
+  /*fprintf(stderr, "ERROR: %s\n", cu_error_msg);*/
+}
 
-	strncpy(cu_error_msg, msg, MAX_CUNIT_ERROR_LENGTH);
-	lwfree(msg);
+static void
+cu_noticereporter(const char *fmt, va_list ap)
+{
+  char buf[MAX_CUNIT_MSG_LENGTH+1];
+  vsnprintf (buf, MAX_CUNIT_MSG_LENGTH, fmt, ap);
+  buf[MAX_CUNIT_MSG_LENGTH]='\0';
+  /*fprintf(stderr, "NOTICE: %s\n", buf);*/
 }
 
 void
diff --git a/liblwgeom/cunit/cu_tester.h b/liblwgeom/cunit/cu_tester.h
index 1dc4bae..918a0d1 100644
--- a/liblwgeom/cunit/cu_tester.h
+++ b/liblwgeom/cunit/cu_tester.h
@@ -1,9 +1,10 @@
 /**********************************************************************
- * $Id: cu_tester.h 13242 2015-02-19 00:22:22Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
  *
+ * Copyright (C) 2009 Paul Ramsey <pramsey at cleverelephant.ca>
+ *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
  *
@@ -21,3 +22,22 @@ void cu_error_msg_reset(void);
 
 /* Our internal callback to register Suites with the main tester */
 typedef void (*PG_SuiteSetup)(void);
+
+#define ASSERT_DOUBLE_EQUAL(o,e) do { \
+  if ( o != e ) \
+    fprintf(stderr, "[%s:%d]\n Expected: %g\n Obtained: %g\n", __FILE__, __LINE__, (double)(e), (o)); \
+  CU_ASSERT_EQUAL(o,(double)e); \
+} while (0);
+
+#define ASSERT_INT_EQUAL(o,e) do { \
+  if ( o != e ) \
+    fprintf(stderr, "[%s:%d]\n Expected: %d\n Obtained: %d\n", __FILE__, __LINE__, (e), (o)); \
+  CU_ASSERT_EQUAL(o,e); \
+} while (0);
+
+#define ASSERT_STRING_EQUAL(o,e) do { \
+  if ( strcmp(o,e) != 0 ) \
+    fprintf(stderr, "[%s:%d]\n Expected: %s\n Obtained: %s\n", __FILE__, __LINE__, (e), (o)); \
+  CU_ASSERT_STRING_EQUAL(o,e); \
+} while (0);
+
diff --git a/liblwgeom/cunit/cu_tree.c b/liblwgeom/cunit/cu_tree.c
index 314f296..a03d5df 100644
--- a/liblwgeom/cunit/cu_tree.c
+++ b/liblwgeom/cunit/cu_tree.c
@@ -177,7 +177,7 @@ static void test_tree_circ_distance(void)
 	LWGEOM *lwg1, *lwg2;
 	CIRC_NODE *c1, *c2;
 	SPHEROID s;
-	double d1, d2;
+	double d1, d2, d3, d4;
 	double threshold = 0.0;
 	
 	spheroid_init(&s, 1.0, 1.0);
@@ -273,11 +273,11 @@ static void test_tree_circ_distance(void)
 	c2 = lwgeom_calculate_circ_tree(lwg2);
 	d1 = circ_tree_distance_tree(c1, c2, &s, threshold);
 	d2 = lwgeom_distance_spheroid(lwg1, lwg2, &s, threshold);
-    // printf("d1 = %g   d2 = %g\n", d1 * WGS84_RADIUS, d2 * WGS84_RADIUS);
-    // printf("line\n");
-    // circ_tree_print(c1, 0);
-    // printf("point\n");
-    // circ_tree_print(c2, 0);
+//	printf("d1 = %g   d2 = %g\n", d1 * WGS84_RADIUS, d2 * WGS84_RADIUS);
+//	printf("line\n");
+//	circ_tree_print(c1, 0);
+//	printf("point\n");
+//	circ_tree_print(c2, 0);
 	circ_tree_free(c1);
 	circ_tree_free(c2);
 	lwgeom_free(lwg1);
@@ -286,24 +286,97 @@ static void test_tree_circ_distance(void)
 	
 	/* Ticket #2634 */
 	lwg1 = lwgeom_from_wkt("MULTIPOINT (-10 40,-10 65,10 40,10 65,30 40,30 65,50 40,50 65)", LW_PARSER_CHECK_NONE);
-	lwg2 = lwgeom_from_wkt("POLYGON((-9.1111111 40,-9.14954053919354 39.6098193559677,-9.26335203497743 39.2346331352698,-9.4481718753949138.8888595339608,-9.6968975376269 38.5857864376269,-9.99997063396079 38.3370607753949,-10.3457442352698 38.1522409349774,-10.7209304559677 38.0384294391935,-11.1111111 38,-11.5012917440323 38.0384294391935,-11.8764779647302 38.1522409349774,-12.2222515660392 38.3370607753949,-12.5253246623731 38.5857864376269,-12.7740503246051 38.8888595339608,-12.9588701 [...]
+	lwg2 = lwgeom_from_wkt("POLYGON((-9.1111111 40,-9.14954053919354 39.6098193559677,-9.26335203497743 39.2346331352698,-9.44817187539491 38.8888595339608,-9.6968975376269 38.5857864376269,-9.99997063396079 38.3370607753949,-10.3457442352698 38.1522409349774,-10.7209304559677 38.0384294391935,-11.1111111 38,-11.5012917440323 38.0384294391935,-11.8764779647302 38.1522409349774,-12.2222515660392 38.3370607753949,-12.5253246623731 38.5857864376269,-12.7740503246051 38.8888595339608,-12.958870 [...]
 	c1 = lwgeom_calculate_circ_tree(lwg1);
 	c2 = lwgeom_calculate_circ_tree(lwg2);
 	d1 = circ_tree_distance_tree(c1, c2, &s, threshold);
 	d2 = lwgeom_distance_spheroid(lwg1, lwg2, &s, threshold);
-	// printf("d1 = %g   d2 = %g\n", d1 * WGS84_RADIUS, d2 * WGS84_RADIUS);
-	// printf("multipoint\n");
-	// circ_tree_print(c1, 0);
-	// printf("polygon\n");
-	// circ_tree_print(c2, 0);
+//	printf("d1 = %g   d2 = %g\n", d1 * WGS84_RADIUS, d2 * WGS84_RADIUS);
+//	printf("multipoint\n");
+//	circ_tree_print(c1, 0);
+//	printf("polygon\n");
+//	circ_tree_print(c2, 0);
+	circ_tree_free(c1);
+	circ_tree_free(c2);
+	lwgeom_free(lwg1);
+	lwgeom_free(lwg2);
+	CU_ASSERT_DOUBLE_EQUAL(d1, d2, 0.0000001);
+
+	/* Ticket #2634 */
+	lwg1 = lwgeom_from_wkt("MULTIPOINT Z (-10 40 1,-10 65 1,10 40 1,10 65 1,30 40 1,30 65 1,50 40 1,50 65 1,-10 40 2,-10 65 2,10 40 2,10 65 2,30 40 2,30 65 2,50 40 2,50 65 2,-10 40 3,-10 65 3,10 40 3,10 65 3,30 40 3,30 65 3,50 40 3,50 65 3)", LW_PARSER_CHECK_NONE);
+	lwg2 = lwgeom_from_wkt("MULTIPOLYGON(((-9.1111111 40,-9.14954053919354 39.6098193559677,-9.26335203497743 39.2346331352698,-9.44817187539491 38.8888595339608,-9.6968975376269 38.5857864376269,-9.99997063396079 38.3370607753949,-10.3457442352698 38.1522409349774,-10.7209304559677 38.0384294391935,-11.1111111 38,-11.5012917440323 38.0384294391935,-11.8764779647302 38.1522409349774,-12.2222515660392 38.3370607753949,-12.5253246623731 38.5857864376269,-12.7740503246051 38.8888595339608,-12. [...]
+	c1 = lwgeom_calculate_circ_tree(lwg1);
+	c2 = lwgeom_calculate_circ_tree(lwg2);
+//	printf("\n");
+//	circ_tree_print(c1, 0);
+//	printf("\n");
+//	circ_tree_print(c2, 0);	
+//	printf("\n");
+	d1 = lwgeom_distance_spheroid(lwg1, lwg2, &s, threshold);
+	d2 = circ_tree_distance_tree(c1, c2, &s, threshold);
+	d3 = circ_tree_distance_tree(c1, c2, &s, threshold);
+	d4 = circ_tree_distance_tree(c1, c2, &s, threshold);
+//	printf("\n d1-no-tree %20.20g\n d2 %20.20g\n d3 %20.20g\n d4 %20.20g\n", d1, d2, d3, d4);
 	circ_tree_free(c1);
 	circ_tree_free(c2);
 	lwgeom_free(lwg1);
 	lwgeom_free(lwg2);
-	CU_ASSERT_DOUBLE_EQUAL(d1, d2, 0.0000001);	
+	CU_ASSERT_DOUBLE_EQUAL(d1, d2, 0.00000001);
+	CU_ASSERT_DOUBLE_EQUAL(d1, d3, 0.00000001);
+	CU_ASSERT_DOUBLE_EQUAL(d1, d4, 0.00000001);
+
 }
 
+static void test_tree_circ_distance_threshold(void)
+{
+	SPHEROID s;
+	int i, j;
+	int step = 10;
+	
+	const char *txt_poly1 = "0103000020E6100000010000000B0000000AA2F068F47651C0F7893DEB70B8454007ABD4C6D57651C000FB650799B84540C21AA2645A7651C011C24BA84AB8454089A9A325E87751C03314EB5453B74540AF9ED96BF57751C0BF9818F889B74540E936A498B47751C0690C87D1C5B74540F5386204DC7751C02FCA658F1AB8454077B65F7B657751C012C586EE37B845408C1862C5977751C00F17E41674B84540D4012F57357751C0AD3BC67E99B845400AA2F068F47651C0F7893DEB70B84540";
+	const char *txt_poly2 = "0103000020E610000003000000B5000000E0D13F40187451C01A09009164BB4540771C07D8FA7351C04DBBEDB634BB45400D27D627A47351C070625C9386BB4540D691981FAD7351C02F382CCDFABA4540AA38FA85B97351C03AD3A8271CBB4540D211F0CBBE7351C027F11A8FD9BA4540839AE427EB7351C0BF97C6BBA3BA4540748967A4D47351C00C0037C970BA45408F182A0CF07351C0C050808070BA45405063F06DD27351C0681018D037BA4540E509D5C2EE7351C0B9429E0231BA4540EA39B20CCC7351C018FBB70F22BA454072DD47C8ED7351C04C992D5E0BBA4540934BDE09CE7351C0 [...]
+	const char *polys[2];
+	static int npolys = 2;
+	
+	polys[0] = txt_poly1;
+	polys[1] = txt_poly2;
+
+	// spheroid_init(&s, WGS84_RADIUS, WGS84_RADIUS);
+	spheroid_init(&s, WGS84_MAJOR_AXIS, WGS84_MINOR_AXIS);
 
+	for ( j = 0; j < npolys; j++ )
+	{
+		LWGEOM *lwg1 = lwgeom_from_hexwkb(txt_poly2, LW_PARSER_CHECK_NONE);
+		LWGEOM *lwg2 = lwgeom_from_wkt("POINT(-69.83262 43.43636)", LW_PARSER_CHECK_NONE);
+	
+		CIRC_NODE *c1 = lwgeom_calculate_circ_tree(lwg1);
+		CIRC_NODE *c2 = lwgeom_calculate_circ_tree(lwg2);
+
+		for ( i = 50; i < 1500 / step; i++ )
+		{
+			double d1, d2;
+			double d = lwgeom_distance_spheroid(lwg1, lwg2, &s, 0);
+			double threshold = step * i;
+			d1 = circ_tree_distance_tree(c1, c2, &s, threshold);
+			d2 = lwgeom_distance_spheroid(lwg1, lwg2, &s, threshold);
+			if (threshold > d && (d1 > threshold || d2 > threshold))
+			{
+				printf("polygon #%d\n"
+		       "threshold = %g\n"
+					"true distance = %g\n"
+		       "circ_tree_distance = %g\n"
+		       "lwgeom_distance_spheroid = %g\n", j, threshold, d, d1, d2);
+				CU_FAIL_FATAL();
+			}
+		}
+
+		circ_tree_free(c1);
+		circ_tree_free(c2);
+		lwgeom_free(lwg1);
+		lwgeom_free(lwg2);
+	}
+	
+}
 
 /*
 ** Used by test harness to register the tests in this file.
@@ -316,4 +389,5 @@ void tree_suite_setup(void)
 	PG_ADD_TEST(suite, test_tree_circ_pip);
 	PG_ADD_TEST(suite, test_tree_circ_pip2);
 	PG_ADD_TEST(suite, test_tree_circ_distance);
+	PG_ADD_TEST(suite, test_tree_circ_distance_threshold);
 }
diff --git a/liblwgeom/cunit/cu_triangulate.c b/liblwgeom/cunit/cu_triangulate.c
index 1257ddc..22a4944 100644
--- a/liblwgeom/cunit/cu_triangulate.c
+++ b/liblwgeom/cunit/cu_triangulate.c
@@ -53,6 +53,6 @@ static void test_lwgeom_delaunay_triangulation(void)
 void triangulate_suite_setup(void);
 void triangulate_suite_setup(void)
 {
-	CU_pSuite suite = CU_add_suite("Triangulate", NULL, NULL);
+	CU_pSuite suite = CU_add_suite("triangulate", NULL, NULL);
 	PG_ADD_TEST(suite, test_lwgeom_delaunay_triangulation);
 }
diff --git a/liblwgeom/cunit/cu_unionfind.c b/liblwgeom/cunit/cu_unionfind.c
new file mode 100644
index 0000000..5f679b9
--- /dev/null
+++ b/liblwgeom/cunit/cu_unionfind.c
@@ -0,0 +1,97 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright 2015 Daniel Baston
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include "CUnit/Basic.h"
+
+#include "../lwunionfind.h"
+#include "cu_tester.h"
+
+static void test_unionfind_create(void)
+{
+	UNIONFIND *uf = UF_create(10);
+
+	uint32_t expected_initial_ids[] =   { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+	uint32_t expected_initial_sizes[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
+
+	CU_ASSERT_EQUAL(10, uf->N);
+	CU_ASSERT_EQUAL(10, uf->num_clusters);
+	CU_ASSERT_EQUAL(0, memcmp(uf->clusters, expected_initial_ids, 10*sizeof(uint32_t)));
+	CU_ASSERT_EQUAL(0, memcmp(uf->cluster_sizes, expected_initial_sizes, 10*sizeof(uint32_t)));
+
+	UF_destroy(uf);
+}
+
+static void test_unionfind_union(void)
+{
+	UNIONFIND *uf = UF_create(10);
+
+	UF_union(uf, 0, 7); /* both have size = 1, so 7 becomes 0 */
+	UF_union(uf, 3, 2); /* both have size = 1, so 3 becomes 2 */
+	UF_union(uf, 8, 7); /* add 8 (smaller) to 0-7 (larger)    */
+	UF_union(uf, 1, 2); /* add 1 (smaller) to 2-3 (larger)    */
+
+	uint32_t expected_final_ids[] =   { 0, 2, 2, 2, 4, 5, 6, 0, 0, 9 };
+	uint32_t expected_final_sizes[] = { 3, 0, 3, 0, 1, 1, 1, 0, 0, 1 };
+
+	CU_ASSERT_EQUAL(10, uf->N);
+	CU_ASSERT_EQUAL(6, uf->num_clusters);
+	CU_ASSERT_EQUAL(0, memcmp(uf->clusters, expected_final_ids, 10*sizeof(uint32_t)));
+	CU_ASSERT_EQUAL(0, memcmp(uf->cluster_sizes, expected_final_sizes, 10*sizeof(uint32_t)));
+
+	UF_destroy(uf);
+}
+
+static void test_unionfind_ordered_by_cluster(void)
+{
+	uint32_t final_clusters[] = { 0, 2, 2, 2, 4, 5, 6, 0, 0, 2 };
+	uint32_t final_sizes[]    = { 3, 0, 4, 0, 1, 1, 1, 0, 0, 0 };
+
+	/* Manually create UF at desired final state */
+	UNIONFIND uf =
+	{
+		.N = 10,
+		.num_clusters = 5,
+		.clusters = final_clusters,
+		.cluster_sizes = final_sizes
+	};
+
+	uint32_t* ids_by_cluster = UF_ordered_by_cluster(&uf);
+
+	char encountered_cluster[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+
+	uint32_t i;
+	for (i = 0; i < uf.N; i++)
+	{
+		uint32_t c = final_clusters[ids_by_cluster[i]];
+		if (!encountered_cluster[c])
+		{
+			encountered_cluster[c] = 1;
+		}
+		else
+		{
+			/* If we've seen an element of this cluster before, then the
+			 * current cluster must be the same as the previous cluster. */
+			uint32_t c_prev = final_clusters[ids_by_cluster[i-1]];
+			CU_ASSERT_EQUAL(c, c_prev);
+		}
+	}
+	lwfree(ids_by_cluster);
+}
+
+void unionfind_suite_setup(void);
+void unionfind_suite_setup(void)
+{
+	CU_pSuite suite = CU_add_suite("Clustering Union-Find", NULL, NULL);
+	PG_ADD_TEST(suite, test_unionfind_create);
+	PG_ADD_TEST(suite, test_unionfind_union);
+	PG_ADD_TEST(suite, test_unionfind_ordered_by_cluster);
+}
diff --git a/liblwgeom/cunit/cu_varint.c b/liblwgeom/cunit/cu_varint.c
new file mode 100644
index 0000000..aaa5505
--- /dev/null
+++ b/liblwgeom/cunit/cu_varint.c
@@ -0,0 +1,240 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright (C) 2013 Nicklas Avén
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "CUnit/Basic.h"
+#include "CUnit/CUnit.h"
+#include "liblwgeom_internal.h" 
+#include "varint.h"
+#include "cu_tester.h"
+
+
+
+// size_t varint_u32_encode_buf(uint32_t val, uint8_t *buf);
+// size_t varint_s32_encode_buf(int32_t val, uint8_t *buf);
+// size_t varint_u64_encode_buf(uint64_t val, uint8_t *buf);
+// size_t varint_s64_encode_buf(int64_t val, uint8_t *buf);
+// int64_t varint_s64_decode(const uint8_t *the_start, const uint8_t *the_end, size_t *size);
+// uint64_t varint_u64_decode(const uint8_t *the_start, const uint8_t *the_end, size_t *size);
+//
+// size_t varint_size(const uint8_t *the_start, const uint8_t *the_end);
+//
+
+static void do_test_u32_varint(uint32_t nr, int expected_size, char* expected_res)
+{
+	int size;
+	char *hex;
+	uint8_t buf[16];
+	
+	size = varint_u32_encode_buf(nr, buf);
+	if ( size != expected_size ) 
+		printf("Expected: %d\nObtained: %d\n", expected_size, size);
+
+	CU_ASSERT_EQUAL(size, expected_size);
+	
+	hex = hexbytes_from_bytes(buf, size);
+	ASSERT_STRING_EQUAL(hex, expected_res);	
+	lwfree(hex);
+}
+
+static void do_test_s32_varint(int32_t nr,int expected_size, char* expected_res)
+{
+	uint8_t buf[16];
+	int size;
+	char *hex;
+	
+	size = varint_s32_encode_buf(nr, buf);
+	if ( size != expected_size ) 
+	{
+		printf("Expected: %d\nObtained: %d\n", expected_size, size);
+	}
+	CU_ASSERT_EQUAL(size,expected_size);
+
+	hex = hexbytes_from_bytes(buf, size);
+	ASSERT_STRING_EQUAL(hex, expected_res);	
+	lwfree(hex);
+}
+
+static void do_test_u64_varint(uint64_t nr,int expected_size, char* expected_res)
+{
+	uint8_t buf[16];
+	int size;
+	char *hex;
+	
+	size = varint_u64_encode_buf(nr, buf);
+	if ( size != expected_size ) 
+	{
+		printf("Expected: %d\nObtained: %d\n", expected_size, size);
+	}
+	CU_ASSERT_EQUAL(size,expected_size);
+
+	hex = hexbytes_from_bytes(buf,size);
+	ASSERT_STRING_EQUAL(hex, expected_res);
+	lwfree(hex);
+}
+
+static void do_test_s64_varint(int64_t nr,int expected_size, char* expected_res)
+{
+	uint8_t buf[16];
+	int size;
+	char *hex;
+	
+	size = varint_s64_encode_buf(nr, buf);
+	if ( size != expected_size ) 
+	{
+		printf("Expected: %d\nObtained: %d\n", expected_size, size);
+	}
+	CU_ASSERT_EQUAL(size,expected_size);
+	
+	hex = hexbytes_from_bytes(buf,size);
+	ASSERT_STRING_EQUAL(hex, expected_res);	
+	lwfree(hex);
+}
+
+static void test_varint(void)
+{
+
+	do_test_u64_varint(1, 1, "01");
+	do_test_u64_varint(300, 2, "AC02");
+	do_test_u64_varint(150, 2, "9601");
+	do_test_u64_varint(240, 2, "F001");
+	do_test_u64_varint(0x4000, 3, "808001");
+  /*
+                0100:0000 0000:0000 - input (0x4000)
+      1000:0000 1000:0000 0000:0001 - output (0x808001)
+       000:0000  000:0000  000:0001 - chop
+       000:0001  000:0000  000:0000 - swap
+         0:0000 0100:0000 0000:0000 - concat = input
+   */
+	do_test_u64_varint(2147483647, 5, "FFFFFFFF07");
+  /*
+              0111:1111 1111:1111 1111:1111 1111:1111 - input (0x7FFFFFFF)
+    1111:1111 1111:1111 1111:1111 1111:1111 0000:0111 - output(0xFFFFFFFF07)
+     111:1111  111:1111  111:1111  111:1111  000:0111 - chop
+     000:0111  111:1111  111:1111  111:1111  111:1111 - swap
+              0111:1111 1111:1111 1111:1111 1111:1111 - concat = input
+                      |         |         |         |
+                   2^32      2^16       2^8       2^0
+   */
+	do_test_s64_varint(1, 1, "02");
+	do_test_s64_varint(-1, 1, "01");
+	do_test_s64_varint(-2, 1, "03");
+
+	do_test_u32_varint(2147483647, 5, "FFFFFFFF07");
+  /*
+              0111:1111 1111:1111 1111:1111 1111:1111 - input (7fffffff)
+    1111:1111 1111:1111 1111:1111 1111:1111 0000:0111 - output (ffffff07)
+     111:1111  111:1111  111:1111  111:1111  000:0111 - chop
+     000:0111  111:1111  111:1111  111:1111  111:1111 - swap
+              0111:1111 1111:1111 1111:1111 1111:1111 - concat = input
+                      |         |         |         |
+                   2^32      2^16       2^8       2^0
+   */
+	do_test_s32_varint(2147483647, 5, "FEFFFFFF0F");
+  /*
+              0111:1111 1111:1111 1111:1111 1111:1111 - input (7fffffff)
+    1111:1110 1111:1111 1111:1111 1111:1111 0000:1111 - output(feffffff0f)
+    1111:1111 1111:1111 1111:1111 1111:1111 0000:0111 - zigzag (ffffff07)
+     111:1111  111:1111  111:1111  111:1111  000:0111 - chop
+     000:0111  111:1111  111:1111  111:1111  111:1111 - swap
+              0111:1111 1111:1111 1111:1111 1111:1111 - concat = input
+                      |         |         |         |
+                   2^32      2^16       2^8       2^0
+   */
+	do_test_s32_varint(-2147483648, 5, "FFFFFFFF0F");
+
+	do_test_s32_varint(1, 1, "02");
+  /*
+    0000:0001 - input (01)
+    0000:0010 - A: input << 1
+    0000:0000 - B: input >> 31
+    0000:0010 - zigzag (A xor B) == output
+   */
+
+	do_test_s32_varint(-1, 1, "01");
+  /*
+    1111:1111 ... 1111:1111 - input (FFFFFFFF)
+    1111:1111 ... 1111:1110 - A: input << 1
+    1111:1111 ... 1111:1111 - B: input >> 31
+    0000:0000 ... 0000:0001 - zigzag (A xor B) == output
+   */
+
+
+}
+
+
+static void do_test_u64_roundtrip(uint64_t i64_in)
+{
+	uint8_t buffer[16];
+	uint64_t i64_out;
+	size_t size_in, size_out;
+	size_in = varint_u64_encode_buf(i64_in, buffer);
+	i64_out = varint_u64_decode(buffer, buffer + size_in, &size_out);
+	CU_ASSERT_EQUAL(i64_in, i64_out);
+	CU_ASSERT_EQUAL(size_in, size_out);
+}
+
+static void do_test_s64_roundtrip(int64_t i64_in)
+{
+	uint8_t buffer[16];
+	int64_t i64_out;
+	size_t size_in, size_out;
+	size_in = varint_s64_encode_buf(i64_in, buffer);
+	i64_out = varint_s64_decode(buffer, buffer + size_in, &size_out);
+	CU_ASSERT_EQUAL(i64_in, i64_out);
+	CU_ASSERT_EQUAL(size_in, size_out);
+}
+
+static void test_varint_roundtrip(void)
+{
+	int i;
+	for ( i = 0; i < 1024; i += 63 )
+	{
+		do_test_u64_roundtrip(i);
+		do_test_s64_roundtrip(i);
+		do_test_s64_roundtrip(-1*i);
+	}
+}
+
+static void test_zigzag(void)
+{
+	int64_t a;
+	int32_t b;
+	int i;
+
+	for ( i = 1; i < 1024; i += 31 )
+	{
+		a = b = i;
+		CU_ASSERT_EQUAL(a, unzigzag64(zigzag64(a)));
+		CU_ASSERT_EQUAL(b, unzigzag32(zigzag64(b)));
+		
+		a = b = -1 * i;
+		CU_ASSERT_EQUAL(a, unzigzag64(zigzag64(a)));
+		CU_ASSERT_EQUAL(b, unzigzag32(zigzag64(b)));
+	}
+
+}
+
+
+/*
+** Used by the test harness to register the tests in this file.
+*/
+void varint_suite_setup(void);
+void varint_suite_setup(void)
+{
+	CU_pSuite suite = CU_add_suite("varint", NULL, NULL);
+	PG_ADD_TEST(suite, test_zigzag);
+	PG_ADD_TEST(suite, test_varint);
+	PG_ADD_TEST(suite, test_varint_roundtrip);
+}
diff --git a/liblwgeom/effectivearea.c b/liblwgeom/effectivearea.c
new file mode 100644
index 0000000..cf7d7e2
--- /dev/null
+++ b/liblwgeom/effectivearea.c
@@ -0,0 +1,547 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ * Copyright 2014 Nicklas Avén
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+ 
+ #include "effectivearea.h"
+
+
+EFFECTIVE_AREAS*
+initiate_effectivearea(const POINTARRAY *inpts)
+{
+	LWDEBUG(2, "Entered  initiate_effectivearea");
+	EFFECTIVE_AREAS *ea;
+	ea=lwalloc(sizeof(EFFECTIVE_AREAS));
+	ea->initial_arealist = lwalloc(inpts->npoints*sizeof(areanode));
+	ea->res_arealist = lwalloc(inpts->npoints*sizeof(double));
+	ea->inpts=inpts;
+	return ea;	
+}
+
+
+void destroy_effectivearea(EFFECTIVE_AREAS *ea)
+{
+	lwfree(ea->initial_arealist);
+	lwfree(ea->res_arealist);
+	lwfree(ea);
+}
+
+
+static MINHEAP
+initiate_minheap(int npoints)
+{
+	MINHEAP tree;
+	tree.key_array = lwalloc(npoints*sizeof(void*));
+	tree.maxSize=npoints;
+	tree.usedSize=0;
+	return tree;
+}
+
+
+static void 
+destroy_minheap(MINHEAP tree)
+{
+	lwfree(tree.key_array);
+}
+
+
+/**
+
+Calculate the area of a triangle in 2d
+*/
+static double triarea2d(const double *P1, const double *P2, const double *P3)
+{
+	return fabs(0.5*((P1[0]-P2[0])*(P3[1]-P2[1])-(P1[1]-P2[1])*(P3[0]-P2[0])));
+}
+
+/**
+
+Calculate the area of a triangle in 3d space
+*/
+static double triarea3d(const double *P1, const double *P2, const double *P3)
+{
+	LWDEBUG(2, "Entered  triarea3d");
+	double ax,bx,ay,by,az,bz,cx,cy,cz, area;
+	
+	ax=P1[0]-P2[0];
+	bx=P3[0]-P2[0];
+	ay=P1[1]-P2[1];
+	by=P3[1]-P2[1];
+	az=P1[2]-P2[2];
+	bz=P3[2]-P2[2];	
+	
+	cx = ay*bz - az*by;
+	cy = az*bx - ax*bz;
+	cz = ax*by - ay*bx;
+
+	area = fabs(0.5*(sqrt(cx*cx+cy*cy+cz*cz)));		
+	return area;
+}
+
+/**
+
+We create the minheap by ordering the minheap array by the areas in the areanode structs that the minheap keys refere to
+*/
+static int cmpfunc (const void * a, const void * b)
+{
+	double v1 =  (*(areanode**)a)->area;
+	double v2 = (*(areanode**)b)->area;
+	/*qsort gives unpredictable results when comaping identical values. 
+	If two values is the same we force returning the last point in hte point array.
+	That way we get the same ordering on diffreent machines and pllatforms*/
+	if (v1==v2)
+		return (*(areanode**)a)-(*(areanode**)b);
+	else
+		return  (v1>v2 ) ? 1 : -1;
+}
+
+
+/**
+
+Sift Down
+*/
+static void down(MINHEAP *tree,areanode *arealist,int parent)
+{
+	LWDEBUG(2, "Entered  down");
+	areanode **treearray=tree->key_array;
+	int left=parent*2+1;
+	int right = left +1;
+	void *tmp;
+	int swap=parent;
+	double leftarea=0;
+	double rightarea=0;
+	
+	double parentarea=((areanode*) treearray[parent])->area;
+	
+	if(left<tree->usedSize)
+	{	
+		leftarea=((areanode*) treearray[left])->area;
+		if(parentarea>leftarea)
+			swap=left;
+	}
+	if(right<tree->usedSize)
+	{
+		rightarea=((areanode*) treearray[right])->area;		
+		if(rightarea<parentarea&&rightarea<leftarea)
+			swap=right;
+	}	
+	if(swap>parent)
+	{
+	/*ok, we have to swap something*/
+		tmp=treearray[parent];
+		treearray[parent]=treearray[swap];
+		/*Update reference*/
+		((areanode*) treearray[parent])->treeindex=parent;
+		treearray[swap]=tmp;
+		/*Update reference*/
+		((areanode*) treearray[swap])->treeindex=swap;	
+		if(swap<tree->usedSize)
+			down(tree,arealist,swap);
+	}
+	return;
+}
+
+
+/**
+
+Sift Up
+*/
+static void up(MINHEAP *tree,areanode *arealist,int c)
+{
+	LWDEBUG(2, "Entered  up");
+	void *tmp;
+
+	areanode **treearray=tree->key_array;
+	
+	int parent=floor((c-1)/2);
+	
+	while(((areanode*) treearray[c])->area<((areanode*) treearray[parent])->area)
+	{
+		/*ok, we have to swap*/
+		tmp=treearray[parent];
+		treearray[parent]=treearray[c];
+		/*Update reference*/
+		((areanode*) treearray[parent])->treeindex=parent;
+		treearray[c]=tmp;	
+		/*Update reference*/
+		((areanode*) treearray[c])->treeindex=c;
+		c=parent;		
+		parent=floor((c-1)/2);
+	}
+	return;
+}
+
+
+/**
+
+Get a reference to the point with the smallest effective area from the root of the min heap
+*/
+static 	areanode* minheap_pop(MINHEAP *tree,areanode *arealist )
+{
+	LWDEBUG(2, "Entered  minheap_pop");
+	areanode *res = tree->key_array[0];
+	
+	/*put last value first*/
+	tree->key_array[0]=tree->key_array[(tree->usedSize)-1];
+	((areanode*) tree->key_array[0])->treeindex=0;	
+	
+	tree->usedSize--;	
+	down(tree,arealist,0);
+	return res;
+}
+
+
+/**
+
+The member of the minheap at index idx is changed. Update the tree and make restore the heap property
+*/
+static void minheap_update(MINHEAP *tree,areanode *arealist , int idx)
+{
+	areanode **treearray=tree->key_array;
+	int 	parent=floor((idx-1)/2);
+
+	if(((areanode*) treearray[idx])->area<((areanode*) treearray[parent])->area)
+		up(tree,arealist,idx);
+	else
+		down(tree,arealist,idx);
+	return;
+}
+
+/**
+
+To get the effective area, we have to check what area a point results in when all smaller areas are eliminated
+*/
+static void tune_areas(EFFECTIVE_AREAS *ea, int avoid_collaps, int set_area, double trshld)
+{
+	LWDEBUG(2, "Entered  tune_areas");
+	const double *P1;
+	const double *P2;
+	const double *P3;
+	double area;
+	int go_on=1;
+	double check_order_min_area = 0;
+	
+	int npoints=ea->inpts->npoints;
+	int i;
+	int current, before_current, after_current;
+	
+	MINHEAP tree = initiate_minheap(npoints);
+	
+	int is3d = FLAGS_GET_Z(ea->inpts->flags);
+	
+	
+	/*Add all keys (index in initial_arealist) into minheap array*/
+	for (i=0;i<npoints;i++)
+	{
+		tree.key_array[i]=ea->initial_arealist+i;
+		LWDEBUGF(2, "add nr %d, with area %lf, and %lf",i,ea->initial_arealist[i].area, tree.key_array[i]->area );
+	}
+	tree.usedSize=npoints;
+	
+	/*order the keys by area, small to big*/	
+	qsort(tree.key_array, npoints, sizeof(void*), cmpfunc);
+	
+	/*We have to put references to our tree in our point-list*/
+	for (i=0;i<npoints;i++)
+	{
+		 ((areanode*) tree.key_array[i])->treeindex=i;
+		LWDEBUGF(4,"Check ordering qsort gives, area=%lf and belong to point %d",((areanode*) tree.key_array[i])->area, tree.key_array[i]-ea->initial_arealist);
+	}
+	/*Ok, now we have a minHeap, just need to keep it*/
+	
+	/*for (i=0;i<npoints-1;i++)*/
+	i=0;
+	while (go_on)
+	{	
+		/*Get a reference to the point with the currently smallest effective area*/
+		current=minheap_pop(&tree, ea->initial_arealist)-ea->initial_arealist;
+	
+		/*We have found the smallest area. That is the resulting effective area for the "current" point*/
+		if (i<npoints-avoid_collaps)
+			ea->res_arealist[current]=ea->initial_arealist[current].area;
+		else
+			ea->res_arealist[current]=FLT_MAX;	
+		
+		if(ea->res_arealist[current]<check_order_min_area)
+			lwerror("Oh no, this is a bug. For some reason the minHeap returned our points in the wrong order. Please file a ticket in PostGIS ticket system, or send a mial at the mailing list.Returned area = %lf, and last area = %lf",ea->res_arealist[current],check_order_min_area);
+		
+		check_order_min_area=ea->res_arealist[current];		
+		
+		/*The found smallest area point is now regarded as elimnated and we have to recalculate the area the adjacent (ignoring earlier elimnated points) points gives*/
+		
+		/*FInd point before and after*/
+		before_current=ea->initial_arealist[current].prev;
+		after_current=ea->initial_arealist[current].next;
+		
+		P2= (double*)getPoint_internal(ea->inpts, before_current);
+		P3= (double*)getPoint_internal(ea->inpts, after_current);
+		
+		/*Check if point before current point is the first in the point array. */
+		if(before_current>0)
+		{		
+					
+			P1= (double*)getPoint_internal(ea->inpts, ea->initial_arealist[before_current].prev);
+			if(is3d)
+				area=triarea3d(P1, P2, P3);
+			else
+				area=triarea2d(P1, P2, P3);			
+			
+			ea->initial_arealist[before_current].area = FP_MAX(area,ea->res_arealist[current]);
+			minheap_update(&tree, ea->initial_arealist, ea->initial_arealist[before_current].treeindex);
+		}
+		if(after_current<npoints-1)/*Check if point after current point is the last in the point array. */
+		{
+			P1=P2;
+			P2=P3;	
+			
+			P3= (double*)getPoint_internal(ea->inpts, ea->initial_arealist[after_current].next);
+			
+
+			if(is3d)
+				area=triarea3d(P1, P2, P3);
+			else
+				area=triarea2d(P1, P2, P3);	
+		
+				
+			ea->initial_arealist[after_current].area = FP_MAX(area,ea->res_arealist[current]);
+			minheap_update(&tree, ea->initial_arealist, ea->initial_arealist[after_current].treeindex);
+		}
+		
+		/*rearrange the nodes so the eliminated point will be ingored on the next run*/
+		ea->initial_arealist[before_current].next = ea->initial_arealist[current].next;
+		ea->initial_arealist[after_current].prev = ea->initial_arealist[current].prev;
+		
+		/*Check if we are finnished*/
+		if((!set_area && ea->res_arealist[current]>trshld) || (ea->initial_arealist[0].next==(npoints-1)))
+			go_on=0;
+		
+		i++;
+	};
+	destroy_minheap(tree);
+	return;	
+}
+
+
+/**
+
+We calculate the effective area for the first time
+*/
+void ptarray_calc_areas(EFFECTIVE_AREAS *ea, int avoid_collaps, int set_area, double trshld)
+{
+	LWDEBUG(2, "Entered  ptarray_calc_areas");
+	int i;
+	int npoints=ea->inpts->npoints;
+	int is3d = FLAGS_GET_Z(ea->inpts->flags);
+	double area;
+	
+	const double *P1;
+	const double *P2;
+	const double *P3;	
+		
+	P1 = (double*)getPoint_internal(ea->inpts, 0);
+	P2 = (double*)getPoint_internal(ea->inpts, 1);
+	
+	/*The first and last point shall always have the maximum effective area. We use float max to not make trouble for bbox*/
+	ea->initial_arealist[0].area=ea->initial_arealist[npoints-1].area=FLT_MAX;
+	ea->res_arealist[0]=ea->res_arealist[npoints-1]=FLT_MAX;
+	
+	ea->initial_arealist[0].next=1;
+	ea->initial_arealist[0].prev=0;
+	
+	for (i=1;i<(npoints)-1;i++)
+	{
+		ea->initial_arealist[i].next=i+1;
+		ea->initial_arealist[i].prev=i-1;
+		P3 = (double*)getPoint_internal(ea->inpts, i+1);
+
+		if(is3d)
+			area=triarea3d(P1, P2, P3);
+		else
+			area=triarea2d(P1, P2, P3);
+		
+		LWDEBUGF(4,"Write area %lf to point %d on address %p",area,i,&(ea->initial_arealist[i].area));
+		ea->initial_arealist[i].area=area;
+		P1=P2;
+		P2=P3;
+		
+	}	
+		ea->initial_arealist[npoints-1].next=npoints-1;
+		ea->initial_arealist[npoints-1].prev=npoints-2;
+	
+	for (i=1;i<(npoints)-1;i++)
+	{
+		ea->res_arealist[i]=FLT_MAX;
+	}
+	
+	tune_areas(ea,avoid_collaps,set_area, trshld);
+	return ;
+}
+
+
+
+static POINTARRAY * ptarray_set_effective_area(POINTARRAY *inpts,int avoid_collaps,int set_area, double trshld)
+{
+	LWDEBUG(2, "Entered  ptarray_set_effective_area");
+	int p;
+	POINT4D pt;
+	EFFECTIVE_AREAS *ea;
+	POINTARRAY *opts;
+	int set_m;
+	if(set_area)
+		set_m=1;
+	else
+		set_m=FLAGS_GET_M(inpts->flags);
+	ea=initiate_effectivearea(inpts);
+
+	opts = ptarray_construct_empty(FLAGS_GET_Z(inpts->flags), set_m, inpts->npoints);
+
+	ptarray_calc_areas(ea,avoid_collaps,set_area,trshld);	
+	
+	if(set_area)
+	{
+		/*Only return points with an effective area above the threashold*/
+		for (p=0;p<ea->inpts->npoints;p++)
+		{
+			if(ea->res_arealist[p]>trshld)
+			{
+				pt=getPoint4d(ea->inpts, p);
+				pt.m=ea->res_arealist[p];
+				ptarray_append_point(opts, &pt, LW_TRUE);
+			}
+		}
+	}
+	else
+	{	
+		/*Only return points with an effective area above the threashold*/
+		for (p=0;p<ea->inpts->npoints;p++)
+		{
+			if(ea->res_arealist[p]>trshld)
+			{
+				pt=getPoint4d(ea->inpts, p);
+				ptarray_append_point(opts, &pt, LW_TRUE);
+			}
+		}	
+	}
+	destroy_effectivearea(ea);
+	
+	return opts;
+	
+}
+
+static LWLINE* lwline_set_effective_area(const LWLINE *iline,int set_area, double trshld)
+{
+	LWDEBUG(2, "Entered  lwline_set_effective_area");
+	
+		/* Skip empty case or too small to simplify */
+	if( lwline_is_empty(iline) || iline->points->npoints<3)
+		return lwline_clone(iline);
+	
+	int set_m;
+	if(set_area)
+		set_m=1;
+	else
+		set_m=FLAGS_GET_M(iline->flags);
+	
+	LWLINE *oline = lwline_construct_empty(iline->srid, FLAGS_GET_Z(iline->flags), set_m);
+
+
+			
+	oline = lwline_construct(iline->srid, NULL, ptarray_set_effective_area(iline->points,2,set_area,trshld));
+		
+	oline->type = iline->type;
+	return oline;
+	
+}
+
+
+static LWPOLY* lwpoly_set_effective_area(const LWPOLY *ipoly,int set_area, double trshld)
+{
+	LWDEBUG(2, "Entered  lwpoly_set_effective_area");
+	int i;
+	int set_m;
+	int avoid_collapse=4;
+	if(set_area)
+		set_m=1;
+	else
+		set_m=FLAGS_GET_M(ipoly->flags);
+	LWPOLY *opoly = lwpoly_construct_empty(ipoly->srid, FLAGS_GET_Z(ipoly->flags), set_m);
+
+	if( lwpoly_is_empty(ipoly) )
+		return opoly; /* should we return NULL instead ? */
+
+	for (i = 0; i < ipoly->nrings; i++)
+	{
+		POINTARRAY *pa = ptarray_set_effective_area(ipoly->rings[i],avoid_collapse,set_area,trshld);
+		/* Add ring to simplified polygon */
+		if(pa->npoints>=4)
+		{
+			if( lwpoly_add_ring(opoly,pa ) == LW_FAILURE )
+				return NULL;
+		}
+		/*Inner rings we allow to ocollapse and then we remove them*/
+		avoid_collapse=0;
+	}
+
+
+	opoly->type = ipoly->type;
+
+	if( lwpoly_is_empty(opoly) )
+		return NULL;	
+
+	return opoly;
+	
+}
+
+
+static LWCOLLECTION* lwcollection_set_effective_area(const LWCOLLECTION *igeom,int set_area, double trshld)
+{
+	LWDEBUG(2, "Entered  lwcollection_set_effective_area");	
+	int i;
+	int set_m;
+	if(set_area)
+		set_m=1;
+	else
+		set_m=FLAGS_GET_M(igeom->flags);
+	LWCOLLECTION *out = lwcollection_construct_empty(igeom->type, igeom->srid, FLAGS_GET_Z(igeom->flags), set_m);
+
+	if( lwcollection_is_empty(igeom) )
+		return out; /* should we return NULL instead ? */
+
+	for( i = 0; i < igeom->ngeoms; i++ )
+	{
+		LWGEOM *ngeom = lwgeom_set_effective_area(igeom->geoms[i],set_area,trshld);
+		if ( ngeom ) out = lwcollection_add_lwgeom(out, ngeom);
+	}
+
+	return out;
+}
+ 
+
+LWGEOM* lwgeom_set_effective_area(const LWGEOM *igeom,int set_area, double trshld)
+{
+	LWDEBUG(2, "Entered  lwgeom_set_effective_area");
+	switch (igeom->type)
+	{
+	case POINTTYPE:
+	case MULTIPOINTTYPE:
+		return lwgeom_clone(igeom);
+	case LINETYPE:
+		return (LWGEOM*)lwline_set_effective_area((LWLINE*)igeom,set_area, trshld);
+	case POLYGONTYPE:
+		return (LWGEOM*)lwpoly_set_effective_area((LWPOLY*)igeom,set_area, trshld);
+	case MULTILINETYPE:
+	case MULTIPOLYGONTYPE:
+	case COLLECTIONTYPE:
+		return (LWGEOM*)lwcollection_set_effective_area((LWCOLLECTION *)igeom,set_area, trshld);
+	default:
+		lwerror("lwgeom_simplify: unsupported geometry type: %s",lwtype_name(igeom->type));
+	}
+	return NULL;
+}
+
diff --git a/liblwgeom/effectivearea.h b/liblwgeom/effectivearea.h
new file mode 100644
index 0000000..6865a4c
--- /dev/null
+++ b/liblwgeom/effectivearea.h
@@ -0,0 +1,64 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ * Copyright 2014 Nicklas Avén
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+ #ifndef _EFFECTIVEAREA_H
+#define _EFFECTIVEAREA_H 1
+
+
+ #include "liblwgeom_internal.h"
+ #include "lwgeom_log.h"
+
+
+/**
+
+This structure is placed in an array with one member per point. 
+It has links into the minheap rtee and kepps track of eliminated points
+*/
+typedef struct
+{
+	double area;
+	int treeindex;
+	int prev;
+	int next;
+} areanode;
+
+
+/**
+
+This structure holds a minheap tree that is used to keep track of what points that has the smallest effective area.
+When elliminating points the neighbor points has its effective area affected and the minheap helps to resort efficient.
+*/
+typedef struct
+{		
+	int maxSize;
+	int usedSize;
+	areanode **key_array;
+} MINHEAP;
+
+
+/**
+
+Structure to hold pointarray and it's arealist
+*/
+typedef struct
+{
+	const POINTARRAY *inpts;
+	areanode *initial_arealist;
+	double *res_arealist;
+} EFFECTIVE_AREAS;
+
+
+EFFECTIVE_AREAS* initiate_effectivearea(const POINTARRAY *inpts);
+
+void destroy_effectivearea(EFFECTIVE_AREAS *ea);
+
+void ptarray_calc_areas(EFFECTIVE_AREAS *ea,int avoid_collaps, int set_area, double trshld);
+
+#endif /* _EFFECTIVEAREA_H */
diff --git a/liblwgeom/g_box.c b/liblwgeom/g_box.c
index ebde499..3269ac3 100644
--- a/liblwgeom/g_box.c
+++ b/liblwgeom/g_box.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: g_box.c 12901 2014-08-20 14:10:28Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -9,20 +8,23 @@
  *
  **********************************************************************/
 
-/* Fall back to older finite() if necessary */ 
-#ifndef HAVE_ISFINITE 
-# ifdef HAVE_GNU_ISFINITE 
-#  define _GNU_SOURCE 
-# else 
-#  define isfinite finite 
-# endif 
-#endif 
+#if !HAVE_ISFINITE
+#endif
 
 #include "liblwgeom_internal.h"
 #include "lwgeom_log.h"
 #include <stdlib.h>
 #include <math.h>
 
+/* Fall back to older finite() if necessary */
+#ifndef HAVE_ISFINITE
+# ifdef HAVE_GNU_ISFINITE
+#  define _GNU_SOURCE
+# else
+#  define isfinite finite
+# endif
+#endif
+
 GBOX* gbox_new(uint8_t flags)
 {
 	GBOX *g = (GBOX*)lwalloc(sizeof(GBOX));
@@ -141,8 +143,7 @@ int gbox_same(const GBOX *g1, const GBOX *g2)
 	if (FLAGS_GET_ZM(g1->flags) != FLAGS_GET_ZM(g2->flags))
 		return LW_FALSE;
 
-	if ( g1->xmin != g2->xmin || g1->ymin != g2->ymin ||
-	     g1->xmax != g2->xmax || g1->ymax != g2->ymax ) return LW_FALSE;
+	if (!gbox_same_2d(g1, g2)) return LW_FALSE;
 
 	if (FLAGS_GET_Z(g1->flags) && (g1->zmin != g2->zmin || g1->zmax != g2->zmax))
 		return LW_FALSE;
@@ -152,6 +153,24 @@ int gbox_same(const GBOX *g1, const GBOX *g2)
 	return LW_TRUE;
 }
 
+int gbox_same_2d(const GBOX *g1, const GBOX *g2)
+{
+    if (g1->xmin == g2->xmin && g1->ymin == g2->ymin &&
+        g1->xmax == g2->xmax && g1->ymax == g2->ymax)
+		return LW_TRUE;
+	return LW_FALSE;
+}
+
+int gbox_same_2d_float(const GBOX *g1, const GBOX *g2)
+{
+  if  ((g1->xmax == g2->xmax || next_float_up(g1->xmax)   == next_float_up(g2->xmax))   &&
+       (g1->ymax == g2->ymax || next_float_up(g1->ymax)   == next_float_up(g2->ymax))   &&
+       (g1->xmin == g2->xmin || next_float_down(g1->xmin) == next_float_down(g1->xmin)) &&
+       (g1->ymin == g2->ymin || next_float_down(g2->ymin) == next_float_down(g2->ymin)))
+      return LW_TRUE;
+  return LW_FALSE;
+}
+
 int gbox_is_valid(const GBOX *gbox)
 {
 	/* X */
@@ -293,6 +312,28 @@ gbox_overlaps_2d(const GBOX *g1, const GBOX *g2)
 	return LW_TRUE;
 }
 
+int 
+gbox_contains_2d(const GBOX *g1, const GBOX *g2)
+{
+	if ( ( g2->xmin < g1->xmin ) || ( g2->xmax > g1->xmax ) ||
+	     ( g2->ymin < g1->ymin ) || ( g2->ymax > g1->ymax ) )
+	{
+		return LW_FALSE;
+	}
+	return LW_TRUE;
+}
+
+int 
+gbox_contains_point2d(const GBOX *g, const POINT2D *p)
+{
+	if ( ( g->xmin <= p->x ) && ( g->xmax >= p->x ) &&
+	     ( g->ymin <= p->y ) && ( g->ymax >= p->y ) )
+	{
+		return LW_TRUE;
+	}
+	return LW_FALSE;
+}
+
 /**
 * Warning, this function is only good for x/y/z boxes, used
 * in unit testing of geodetic box generation.
@@ -525,8 +566,8 @@ static int lwcircstring_calculate_gbox_cartesian(LWCIRCSTRING *curve, GBOX *gbox
 	tmp.flags = flags;
 
 	/* Initialize */
-	gbox->xmin = gbox->ymin = gbox->zmin = gbox->mmin = MAXFLOAT;
-	gbox->xmax = gbox->ymax = gbox->zmax = gbox->mmax = -1 * MAXFLOAT;
+	gbox->xmin = gbox->ymin = gbox->zmin = gbox->mmin = FLT_MAX;
+	gbox->xmax = gbox->ymax = gbox->zmax = gbox->mmax = FLT_MIN;
 
 	for ( i = 2; i < curve->points->npoints; i += 2 )
 	{
diff --git a/liblwgeom/g_serialized.c b/liblwgeom/g_serialized.c
index 5065c7f..ced4177 100644
--- a/liblwgeom/g_serialized.c
+++ b/liblwgeom/g_serialized.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: g_serialized.c 13698 2015-06-24 20:21:57Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  *
@@ -44,10 +43,10 @@ int gserialized_ndims(const GSERIALIZED *gser)
 
 int gserialized_is_geodetic(const GSERIALIZED *gser)
 {
-	return FLAGS_GET_GEODETIC(gser->flags);
+	  return FLAGS_GET_GEODETIC(gser->flags);
 }
-
-uint32_t gserialized_max_header_size(void)
+ 
+uint32_t gserialized_max_header_size(void) 
 {
 	/* read GSERIALIZED size + max bbox according gbox_serialized_size (2 + Z + M) + 1 int for type */
 	return sizeof(GSERIALIZED) + 8 * sizeof(float) + sizeof(int);
@@ -365,7 +364,6 @@ static int gserialized_peek_gbox_p(const GSERIALIZED *g, GBOX *gbox)
 	return LW_FAILURE;
 }
 
-
 /**
 * Read the bounding box off a serialization and calculate one if
 * it is not already there.
diff --git a/liblwgeom/g_util.c b/liblwgeom/g_util.c
index 48de669..3f58b07 100644
--- a/liblwgeom/g_util.c
+++ b/liblwgeom/g_util.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: g_util.c 10680 2012-11-15 00:15:24Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
diff --git a/liblwgeom/liblwgeom.h.in b/liblwgeom/liblwgeom.h.in
index 8a9d43d..c580f5b 100644
--- a/liblwgeom/liblwgeom.h.in
+++ b/liblwgeom/liblwgeom.h.in
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: liblwgeom.h.in 13391 2015-03-23 16:34:30Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  *
@@ -21,6 +20,14 @@
 #include <stdint.h>
 #include "proj_api.h"
 
+#if defined(PJ_VERSION) && PJ_VERSION >= 490
+/* Enable new geodesic functions */
+#define PROJ_GEODESIC 1
+#else
+/* Use the old (pre-2.2) geodesic functions */
+#define PROJ_GEODESIC 0
+#endif
+
 /**
 * @file liblwgeom.h
 *
@@ -84,6 +91,14 @@
 #define WKBSRIDFLAG 0x20000000
 #define WKBBBOXFLAG 0x10000000
 
+/** Ordinate names */
+typedef enum LWORD_T {
+  LWORD_X = 0,
+  LWORD_Y = 1,
+  LWORD_Z = 2,
+  LWORD_M = 3
+} LWORD;
+
 /**********************************************************************
 ** Spherical radius.
 ** Moritz, H. (1980). Geodetic Reference System 1980, by resolution of 
@@ -160,6 +175,10 @@
 */
 #define SRID_DEFAULT 4326
 
+#ifndef __GNUC__
+# define __attribute__(x)
+#endif
+
 /**
 * Return a valid SRID from an arbitrary integer
 * Raises a notice if what comes out is different from
@@ -168,6 +187,8 @@
 */
 extern int clamp_srid(int srid);
 
+/* Raise an lwerror if srids do not match */
+void error_if_srid_mismatch(int srid1, int srid2);
 
 /**
  * Global functions for memory/logging handlers.
@@ -175,7 +196,10 @@ extern int clamp_srid(int srid);
 typedef void* (*lwallocator)(size_t size);
 typedef void* (*lwreallocator)(void *mem, size_t size);
 typedef void (*lwfreeor)(void* mem);
-typedef void (*lwreporter)(const char* fmt, va_list ap);
+typedef void (*lwreporter)(const char* fmt, va_list ap)
+  __attribute__ (( format(printf, 1, 0) ));
+typedef void (*lwdebuglogger)(int level, const char* fmt, va_list ap)
+  __attribute__ (( format(printf, 2,0) ));
 
 /**
 * Install custom memory management and error handling functions you want your
@@ -187,38 +211,39 @@ extern void lwgeom_set_handlers(lwallocator allocator,
         lwreallocator reallocator, lwfreeor freeor, lwreporter errorreporter,
         lwreporter noticereporter);
 
+extern void lwgeom_set_debuglogger(lwdebuglogger debuglogger);
+
 /**
- * Write a notice out to the notice handler.
+ * Request interruption of any running code
  *
- * Uses standard printf() substitutions.
- * Use for messages you always want output.
- * For debugging, use LWDEBUG() or LWDEBUGF().
- * @ingroup logging
+ * Safe for use from signal handlers
+ *
+ * Interrupted code will (as soon as it finds out
+ * to be interrupted) cleanup and return as soon as possible.
+ *
+ * The return value from interrupted code is undefined,
+ * it is the caller responsibility to not take it in consideration.
+ * 
  */
-void lwnotice(const char *fmt, ...);
+extern void lwgeom_request_interrupt(void);
 
 /**
- * Write a notice out to the error handler.
- *
- * Uses standard printf() substitutions.
- * Use for errors you always want output.
- * For debugging, use LWDEBUG() or LWDEBUGF().
- * @ingroup logging
+ * Cancel any interruption request
  */
-void lwerror(const char *fmt, ...);
-
-
-/* TODO: move these elsewhere */
-extern int lw_vasprintf (char **result, const char *format, va_list args);
-extern int lw_asprintf
-#if __STDC__
-(char **result, const char *format, ...);
-#else
-(result, va_alist);
-char **result;
-va_dcl
-#endif
+extern void lwgeom_cancel_interrupt(void);
 
+/**
+ * Install a callback to be called periodically during
+ * algorithm execution. Mostly only needed on WIN32 to
+ * dispatch queued signals.
+ *
+ * The callback is invoked before checking for interrupt
+ * being requested, so you can request interruption from
+ * the callback, if you want (see lwgeom_request_interrupt).
+ *
+ */
+typedef void (lwinterrupt_callback)();
+extern lwinterrupt_callback *lwgeom_register_interrupt_callback(lwinterrupt_callback *);
 
 /******************************************************************/
 
@@ -559,6 +584,7 @@ extern LWPSURFACE *lwgeom_as_lwpsurface(const LWGEOM *lwgeom);
 extern LWTRIANGLE *lwgeom_as_lwtriangle(const LWGEOM *lwgeom);
 extern LWTIN *lwgeom_as_lwtin(const LWGEOM *lwgeom);
 extern LWGEOM *lwgeom_as_multi(const LWGEOM *lwgeom);
+extern LWGEOM *lwgeom_as_curve(const LWGEOM *lwgeom);
 
 /* Casts LW*->LWGEOM (always cast) */
 extern LWGEOM *lwtin_as_lwgeom(const LWTIN *obj);
@@ -778,6 +804,14 @@ extern const POINT2D* getPoint2d_cp(const POINTARRAY *pa, int n);
 */
 extern const POINT3DZ* getPoint3dz_cp(const POINTARRAY *pa, int n);
 
+/**
+* Returns a POINT4D pointer into the POINTARRAY serialized_ptlist, 
+* suitable for reading from. This is very high performance
+* and declared const because you aren't allowed to muck with the 
+* values, only read them.
+*/
+extern const POINT4D* getPoint4d_cp(const POINTARRAY *pa, int n);
+
 /*
  * set point N to the given value
  * NOTE that the pointarray can be of any
@@ -862,14 +896,40 @@ extern int ptarray_insert_point(POINTARRAY *pa, const POINT4D *p, int where);
 */
 extern int ptarray_remove_point(POINTARRAY *pa, int where);
 
+/**
+ * @brief Add a point in a pointarray.
+ *
+ * @param pa the source POINTARRAY
+ * @param p the point to add
+ * @param pdims number of ordinates in p (2..4)
+ * @param where to insert the point. 0 prepends, pa->npoints appends
+ *
+ * @returns a newly constructed POINTARRAY using a newly allocated buffer
+ *          for the actual points, or NULL on error.
+ */
 extern POINTARRAY *ptarray_addPoint(const POINTARRAY *pa, uint8_t *p, size_t pdims, uint32_t where);
+
+/**
+ * @brief Remove a point from a pointarray.
+ * 	@param which -  is the offset (starting at 0)
+ * @return #POINTARRAY is newly allocated
+ */
 extern POINTARRAY *ptarray_removePoint(POINTARRAY *pa, uint32_t where);
+
+/**
+ * @brief Merge two given POINTARRAY and returns a pointer
+ * on the new aggregate one.
+ * Warning: this function free the two inputs POINTARRAY
+ * @return #POINTARRAY is newly allocated
+ */
 extern POINTARRAY *ptarray_merge(POINTARRAY *pa1, POINTARRAY *pa2);
+
 extern int ptarray_is_closed(const POINTARRAY *pa);
 extern int ptarray_is_closed_2d(const POINTARRAY *pa);
 extern int ptarray_is_closed_3d(const POINTARRAY *pa);
 extern int ptarray_is_closed_z(const POINTARRAY *pa);
 extern void ptarray_longitude_shift(POINTARRAY *pa);
+extern int ptarray_isccw(const POINTARRAY *pa);
 extern void ptarray_reverse(POINTARRAY *pa);
 extern POINTARRAY* ptarray_flip_coordinates(POINTARRAY *pa);
 
@@ -890,7 +950,8 @@ extern LWGEOM* lwgeom_force_3dz(const LWGEOM *geom);
 extern LWGEOM* lwgeom_force_3dm(const LWGEOM *geom);
 extern LWGEOM* lwgeom_force_4d(const LWGEOM *geom);
 
-extern LWGEOM* lwgeom_simplify(const LWGEOM *igeom, double dist);
+extern LWGEOM* lwgeom_simplify(const LWGEOM *igeom, double dist, int preserve_collapsed);
+extern LWGEOM* lwgeom_set_effective_area(const LWGEOM *igeom, int set_area, double area);
 
 /* 
  * Force to use SFS 1.1 geometry type
@@ -945,6 +1006,12 @@ extern int lwcurvepoly_add_ring(LWCURVEPOLY *poly, LWGEOM *ring);
 extern int lwcompound_add_lwgeom(LWCOMPOUND *comp, LWGEOM *geom);
 
 /**
+* Construct an equivalent compound curve from a linestring. 
+* Compound curves can have linear components, so this works fine 
+*/
+extern LWCOMPOUND* lwcompound_construct_from_lwline(const LWLINE *lwpoly);
+
+/**
 * Construct an equivalent curve polygon from a polygon. Curve polygons
 * can have linear rings as their rings, so this works fine (in theory?)
 */
@@ -1059,29 +1126,33 @@ extern float  next_float_up(double d);
 extern double next_double_down(float d);
 extern double next_double_up(float d);
 
-/* general utilities
-	2D*/
-extern double distance2d_pt_pt(const POINT2D *p1, const POINT2D *p2);
-extern double distance2d_pt_seg(const POINT2D *p, const POINT2D *A, const POINT2D *B);
+/* general utilities 2D */
+extern double  distance2d_pt_pt(const POINT2D *p1, const POINT2D *p2);
 extern double  distance2d_sqr_pt_pt(const POINT2D *p1, const POINT2D *p2);
+extern double  distance2d_pt_seg(const POINT2D *p, const POINT2D *A, const POINT2D *B);
 extern double  distance2d_sqr_pt_seg(const POINT2D *p, const POINT2D *A, const POINT2D *B);
-extern LWGEOM *lw_dist2d_distancepoint(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode);
-extern LWGEOM *lw_dist2d_distanceline(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode);
-extern double lwgeom_mindistance2d(LWGEOM *lw1, LWGEOM *lw2);
-extern double lwgeom_mindistance2d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance);
-extern double lwgeom_maxdistance2d(LWGEOM *lw1, LWGEOM *lw2);
-extern double lwgeom_maxdistance2d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance);
-/*
-	3D*/
+extern LWGEOM* lwgeom_closest_line(const LWGEOM *lw1, const LWGEOM *lw2);
+extern LWGEOM* lwgeom_furthest_line(const LWGEOM *lw1, const LWGEOM *lw2);
+extern LWGEOM* lwgeom_closest_point(const LWGEOM *lw1, const LWGEOM *lw2);
+extern LWGEOM* lwgeom_furthest_point(const LWGEOM *lw1, const LWGEOM *lw2);
+extern double  lwgeom_mindistance2d(const LWGEOM *lw1, const LWGEOM *lw2);
+extern double  lwgeom_mindistance2d_tolerance(const LWGEOM *lw1, const LWGEOM *lw2, double tolerance);
+extern double  lwgeom_maxdistance2d(const LWGEOM *lw1, const LWGEOM *lw2);
+extern double  lwgeom_maxdistance2d_tolerance(const LWGEOM *lw1, const LWGEOM *lw2, double tolerance);
+
+/* 3D */
 extern double distance3d_pt_pt(const POINT3D *p1, const POINT3D *p2);
 extern double distance3d_pt_seg(const POINT3D *p, const POINT3D *A, const POINT3D *B);
-extern LWGEOM *lw_dist3d_distancepoint(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode);
-extern LWGEOM *lw_dist3d_distanceline(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode);
-extern double lwgeom_mindistance3d(LWGEOM *lw1, LWGEOM *lw2);
-extern double lwgeom_mindistance3d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance);
-extern double lwgeom_maxdistance3d(LWGEOM *lw1, LWGEOM *lw2);
-extern double lwgeom_maxdistance3d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance);
 
+extern LWGEOM* lwgeom_furthest_line_3d(LWGEOM *lw1, LWGEOM *lw2);
+extern LWGEOM* lwgeom_closest_line_3d(const LWGEOM *lw1, const LWGEOM *lw2);
+extern LWGEOM* lwgeom_closest_point_3d(const LWGEOM *lw1, const LWGEOM *lw2);
+
+
+extern double lwgeom_mindistance3d(const LWGEOM *lw1, const LWGEOM *lw2);
+extern double lwgeom_mindistance3d_tolerance(const LWGEOM *lw1, const LWGEOM *lw2, double tolerance);
+extern double lwgeom_maxdistance3d(const LWGEOM *lw1, const LWGEOM *lw2);
+extern double lwgeom_maxdistance3d_tolerance(const LWGEOM *lw1, const LWGEOM *lw2, double tolerance);
 
 extern double lwgeom_area(const LWGEOM *geom);
 extern double lwgeom_length(const LWGEOM *geom);
@@ -1089,10 +1160,16 @@ extern double lwgeom_length_2d(const LWGEOM *geom);
 extern double lwgeom_perimeter(const LWGEOM *geom);
 extern double lwgeom_perimeter_2d(const LWGEOM *geom);
 extern void lwgeom_affine(LWGEOM *geom, const AFFINE *affine);
+extern void lwgeom_scale(LWGEOM *geom, const POINT4D *factors);
 extern int lwgeom_dimension(const LWGEOM *geom);
 
-extern LWPOINT* lwline_get_lwpoint(LWLINE *line, int where);
-extern LWPOINT* lwcircstring_get_lwpoint(LWCIRCSTRING *circ, int where);
+extern LWPOINT* lwline_get_lwpoint(const LWLINE *line, int where);
+extern LWPOINT* lwcircstring_get_lwpoint(const LWCIRCSTRING *circ, int where);
+
+extern LWPOINT* lwcompound_get_startpoint(const LWCOMPOUND *lwcmp);
+extern LWPOINT* lwcompound_get_endpoint(const LWCOMPOUND *lwcmp);
+extern LWPOINT* lwcompound_get_lwpoint(const LWCOMPOUND *lwcmp, int where);
+
 
 extern double ptarray_length_2d(const POINTARRAY *pts);
 extern double ptarray_length(const POINTARRAY *pts);
@@ -1237,7 +1314,7 @@ extern LWPOINT *lwpoint_make4d(int srid, double x, double y, double z, double m)
 extern LWPOINT *lwpoint_make(int srid, int hasz, int hasm, const POINT4D *p);
 extern LWLINE *lwline_from_lwgeom_array(int srid, uint32_t ngeoms, LWGEOM **geoms);
 extern LWLINE *lwline_from_ptarray(int srid, uint32_t npoints, LWPOINT **points); /* TODO: deprecate */
-extern LWLINE *lwline_from_lwmpoint(int srid, LWMPOINT *mpoint);
+extern LWLINE *lwline_from_lwmpoint(int srid, const LWMPOINT *mpoint);
 extern LWLINE *lwline_addpoint(LWLINE *line, LWPOINT *point, uint32_t where);
 extern LWLINE *lwline_removepoint(LWLINE *line, uint32_t which);
 extern void lwline_setPoint4d(LWLINE *line, uint32_t which, POINT4D *newpoint);
@@ -1310,6 +1387,32 @@ extern LWCOLLECTION* lwgeom_locate_between(const LWGEOM *lwin, double from, doub
 */
 extern double lwgeom_interpolate_point(const LWGEOM *lwin, const LWPOINT *lwpt);
 
+/**
+* Find the time of closest point of approach
+*
+* @param mindist if not null will be set to the minimum distance between
+*                the trajectories at the closest point of approach.
+*
+* @return the time value in which the minimum distance was reached, -1
+*         if inputs are invalid (lwerror is called in that case),
+*         -2 if the trajectories do not share any point in time.
+*/
+extern double lwgeom_tcpa(const LWGEOM *g1, const LWGEOM *g2, double *mindist);
+
+/**
+* Is the closest point of approach within a distance ?
+*
+* @return LW_TRUE or LW_FALSE
+*/
+extern int lwgeom_cpa_within(const LWGEOM *g1, const LWGEOM *g2, double maxdist);
+
+/**
+* Return LW_TRUE or LW_FALSE depending on whether or not a geometry is
+* a linestring with measure value growing from start to end vertex
+*/
+extern int lwgeom_is_trajectory(const LWGEOM *geom);
+extern int lwline_is_trajectory(const LWLINE *geom);
+
 /*
  * Ensure every segment is at most 'dist' long.
  * Returned LWGEOM might is unchanged if a POINT.
@@ -1368,6 +1471,17 @@ LWCOLLECTION* lwgeom_clip_to_ordinate_range(const LWGEOM *lwin, char ordinate, d
 #define IS_DEGREE(x) ((x) & LW_GML_IS_DEGREE)
 /** @} */
 
+/**
+ * Macros for specifying X3D options. 
+ * @{
+ */
+/** For flip X/Y coordinates to Y/X */
+#define LW_X3D_FLIP_XY     (1<<0)
+#define LW_X3D_USE_GEOCOORDS     (1<<1)
+#define X3D_USE_GEOCOORDS(x) ((x) & LW_X3D_USE_GEOCOORDS)
+
+
+
 extern char* lwgeom_to_gml2(const LWGEOM *geom, const char *srs, int precision, const char *prefix);
 extern char* lwgeom_extent_to_gml2(const LWGEOM *geom, const char *srs, int precision, const char *prefix);
 /**
@@ -1379,6 +1493,7 @@ extern char* lwgeom_to_kml2(const LWGEOM *geom, int precision, const char *prefi
 extern char* lwgeom_to_geojson(const LWGEOM *geo, char *srs, int precision, int has_bbox);
 extern char* lwgeom_to_svg(const LWGEOM *geom, int precision, int relative);
 extern char* lwgeom_to_x3d3(const LWGEOM *geom, char *srs, int precision, int opts, const char *defid);
+extern char* lwgeom_to_encoded_polyline(const LWGEOM *geom, int precision);
 
 /**
  * Create an LWGEOM object from a GeoJSON representation
@@ -1392,6 +1507,13 @@ extern char* lwgeom_to_x3d3(const LWGEOM *geom, char *srs, int precision, int op
 extern LWGEOM* lwgeom_from_geojson(const char *geojson, char **srs);
 
 /**
+ * Create an LWGEOM object from an Encoded Polyline representation
+ *
+ * @param encodedpolyline the Encoded Polyline input
+ */
+extern LWGEOM* lwgeom_from_encoded_polyline(const char *encodedpolyline, int precision);
+
+/**
 * Initialize a spheroid object for use in geodetic functions.
 */
 extern void spheroid_init(SPHEROID *s, double a, double b);
@@ -1446,13 +1568,30 @@ extern int lwgeom_covers_lwgeom_sphere(const LWGEOM *lwgeom1, const LWGEOM *lwge
 /**
 * Remove repeated points!
 */
-extern LWGEOM* lwgeom_remove_repeated_points(LWGEOM *in);
+extern LWGEOM* lwgeom_remove_repeated_points(LWGEOM *in, double tolerance);
 
 extern char lwtriangle_is_repeated_points(LWTRIANGLE *triangle);
 
 /**
+ * Swap ordinate values in every vertex of the geometry.
+ *
+ * Ordinates to swap are specified using an index with meaning:
+ * 0=x, 1=y, 2=z, 3=m
+ *
+ * Swapping an existing ordinate with an unexisting one results
+ * in undefined value being written in the existing ordinate.
+ * Caller should verify and prevent such calls.
+ *
+ * Availability: 2.2.0
+ */
+extern void lwgeom_swap_ordinates(LWGEOM *in, LWORD o1, LWORD o2);
+
+/**
 * Reverse the X and Y coordinate order. Useful for geometries in lat/lon order
 * than need to be converted to lon/lat order.
+*
+* NOTE: uses lwgeom_swap_ordinates internally,
+*       kept for backward compatibility
 */
 extern LWGEOM* lwgeom_flip_coordinates(LWGEOM *in);
 
@@ -1627,6 +1766,11 @@ extern int gbox_overlaps(const GBOX *g1, const GBOX *g2);
 extern int gbox_overlaps_2d(const GBOX *g1, const GBOX *g2);
 
 /**
+* Return #LW_TRUE if the first #GBOX contains the second on the 2d plane, #LW_FALSE otherwise. 
+*/
+extern int  gbox_contains_2d(const GBOX *g1, const GBOX *g2);
+
+/**
 * Copy the values of original #GBOX into duplicate.
 */
 extern void gbox_duplicate(const GBOX *original, GBOX *duplicate);
@@ -1643,6 +1787,17 @@ extern size_t gbox_serialized_size(uint8_t flags);
 extern int gbox_same(const GBOX *g1, const GBOX *g2);
 
 /**
+* Check if 2 given GBOX are the same in x and y
+*/
+extern int gbox_same_2d(const GBOX *g1, const GBOX *g2);
+
+/**
+* Check if two given GBOX are the same in x and y, or would round to the same
+* GBOX in x and if serialized in GSERIALIZED
+*/
+extern int gbox_same_2d_float(const GBOX *g1, const GBOX *g2);
+
+/**
  * Round given GBOX to float boundaries
  *
  * This turns a GBOX into the version it would become
@@ -1777,6 +1932,17 @@ LWGEOM_UNPARSER_RESULT;
 #define WKT_SFSQL 0x02
 #define WKT_EXTENDED 0x04
 
+
+/*
+** Variants available for TWKB
+*/
+#define TWKB_BBOX 0x01 /* User wants bboxes */
+#define TWKB_SIZE 0x02 /* User wants sizes */
+#define TWKB_ID 0x04 /* User wants id */
+#define TWKB_NO_TYPE 0x10 /* No type because it is a sub geoemtry */
+#define TWKB_NO_ID 0x20 /* No ID because it is a subgeoemtry */
+#define TWKB_DEFAULT_PRECISION 0 /* Aim for 1m (or ft) rounding by default */
+
 /*
 ** New parsing and unparsing functions.
 */
@@ -1801,7 +1967,6 @@ extern uint8_t*  lwgeom_to_wkb(const LWGEOM *geom, uint8_t variant, size_t *size
 */
 extern char*   lwgeom_to_hexwkb(const LWGEOM *geom, uint8_t variant, size_t *size_out);
 
-
 /**
 * @param lwgeom geometry to convert to EWKT
 */
@@ -1809,10 +1974,13 @@ extern char *lwgeom_to_ewkt(const LWGEOM *lwgeom);
 
 /**
  * @param check parser check flags, see LW_PARSER_CHECK_* macros
+ * @param size length of WKB byte buffer
+ * @param wkb WKB byte buffer
  */
 extern LWGEOM* lwgeom_from_wkb(const uint8_t *wkb, const size_t wkb_size, const char check);
 
 /**
+ * @param wkt WKT string
  * @param check parser check flags, see LW_PARSER_CHECK_* macros
  */
 extern LWGEOM* lwgeom_from_wkt(const char *wkt, const char check);
@@ -1842,13 +2010,32 @@ extern void lwfree(void *mem);
 /* Utilities */
 extern char *lwmessage_truncate(char *str, int startpos, int endpos, int maxlength, int truncdirection);
 
+/*
+* TWKB functions
+*/
+
+/**
+ * @param check parser check flags, see LW_PARSER_CHECK_* macros
+ * @param size parser check flags, see LW_PARSER_CHECK_* macros
+ */
+extern LWGEOM* lwgeom_from_twkb(uint8_t *twkb, size_t twkb_size, char check);
+
+/**
+ * @param geom input geometry
+ * @param variant what variations on TWKB are requested?
+ * @param twkb_size returns the length of the output TWKB in bytes if set
+ */
+extern uint8_t* lwgeom_to_twkb(const LWGEOM *geom, uint8_t variant, int8_t precision_xy, int8_t precision_z, int8_t precision_m, size_t *twkb_size);
+
+extern uint8_t* lwgeom_to_twkb_with_idlist(const LWGEOM *geom, int64_t *idlist, uint8_t variant, int8_t precision_xy, int8_t precision_z, int8_t precision_m, size_t *twkb_size);
+
 /*******************************************************************************
  * SQLMM internal functions - TODO: Move into separate header files
  ******************************************************************************/
 
 int lwgeom_has_arc(const LWGEOM *geom);
-LWGEOM *lwgeom_segmentize(LWGEOM *geom, uint32_t perQuad);
-LWGEOM *lwgeom_desegmentize(LWGEOM *geom);
+LWGEOM *lwgeom_stroke(const LWGEOM *geom, uint32_t perQuad);
+LWGEOM *lwgeom_unstroke(const LWGEOM *geom);
 
 /*******************************************************************************
  * GEOS proxy functions on LWGEOM
@@ -1865,6 +2052,10 @@ LWGEOM *lwgeom_intersection(const LWGEOM *geom1, const LWGEOM *geom2);
 LWGEOM *lwgeom_difference(const LWGEOM *geom1, const LWGEOM *geom2);
 LWGEOM *lwgeom_symdifference(const LWGEOM* geom1, const LWGEOM* geom2);
 LWGEOM *lwgeom_union(const LWGEOM *geom1, const LWGEOM *geom2);
+LWGEOM *lwgeom_linemerge(const LWGEOM *geom1);
+LWGEOM *lwgeom_unaryunion(const LWGEOM *geom1);
+LWGEOM *lwgeom_clip_by_rect(const LWGEOM *geom1, double x0, double y0, double x1, double y1);
+LWCOLLECTION *lwgeom_subdivide(const LWGEOM *geom, int maxvertices);
 
 /**
  * Snap vertices and segments of a geometry to another using a given tolerance.
@@ -1902,6 +2093,14 @@ LWGEOM* lwgeom_sharedpaths(const LWGEOM* geom1, const LWGEOM* geom2);
  */
 LWGEOM* lwgeom_offsetcurve(const LWLINE *lwline, double size, int quadsegs, int joinStyle, double mitreLimit);
 
+/*
+ * Return true if the input geometry is "simple" as per OGC defn.
+ *
+ * @return 1 if simple, 0 if non-simple, -1 on exception (lwerror is called
+ *         in that case)
+ */
+int lwgeom_is_simple(const LWGEOM *lwgeom);
+
 
 /*******************************************************************************
  * PROJ4-dependent extra functions on LWGEOM
@@ -1948,15 +2147,11 @@ LWGEOM* lwgeom_buildarea(const LWGEOM *geom) ;
 LWGEOM* lwgeom_make_valid(LWGEOM* geom);
 
 /*
- * Split polygon by line, line by line, line by point.
+ * Split (multi)polygon by line; (multi)line by (multi)line,
+ * (multi)point or (multi)polygon boundary.
  *
- * Returns all components as a collection.
- * First element of the collection is always the part which
- * remains after the cut, while the second element is the
- * part which has been cut out. We arbitrarely take the part
- * on the *right* of cut lines as the part which has been cut out.
- * For a line cut by a point the part which remains is the one
- * from start of the line to the cut point.
+ * Collections are accepted as first argument.
+ * Returns all obtained pieces as a collection.
  */
 LWGEOM* lwgeom_split(const LWGEOM* lwgeom_in, const LWGEOM* blade_in);
 
diff --git a/liblwgeom/liblwgeom_internal.h b/liblwgeom/liblwgeom_internal.h
index 03d43ce..5d12d3c 100644
--- a/liblwgeom/liblwgeom_internal.h
+++ b/liblwgeom/liblwgeom_internal.h
@@ -18,6 +18,8 @@
 
 #include "../postgis_config.h"
 
+#include "lwgeom_log.h"
+
 #include <assert.h>
 #include <stdarg.h>
 #include <stdint.h>
@@ -28,17 +30,12 @@
 #include <ieeefp.h>
 #endif
 
-#include "liblwgeom.h"
-
-
-/**
-* PI
-*/
-#define PI 3.1415926535897932384626433832795
+#include <float.h>
 
+#include "liblwgeom.h"
 
 /**
-* Floating point comparitors.
+* Floating point comparators.
 */
 #define FP_TOLERANCE 1e-12
 #define FP_IS_ZERO(A) (fabs(A) <= FP_TOLERANCE)
@@ -57,16 +54,6 @@
 #define FP_CONTAINS_EXCL(A, X, B) (FP_LT(A, X) && FP_LT(X, B))
 #define FP_CONTAINS(A, X, B) FP_CONTAINS_EXCL(A, X, B)
 
-/**
-* Largest float value. Should this be from math.h instead?
-*/
-#ifndef MAXFLOAT
-#define MAXFLOAT      3.402823466e+38F
-#endif
-
-/* for the measure functions*/
-#define DIST_MAX		-1
-#define DIST_MIN		1
 
 /*
 * this will change to NaN when I figure out how to
@@ -151,9 +138,6 @@
 #define NDR 1 /* little endian */
 extern char getMachineEndian(void);
 
-/* Raise an lwerror if srids do not match */
-void error_if_srid_mismatch(int srid1, int srid2);
-
 
 /*
 * Force dims
@@ -165,6 +149,13 @@ LWPOLY* lwpoly_force_dims(const LWPOLY *lwpoly, int hasz, int hasm);
 LWCOLLECTION* lwcollection_force_dims(const LWCOLLECTION *lwcol, int hasz, int hasm);
 POINTARRAY* ptarray_force_dims(const POINTARRAY *pa, int hasz, int hasm);
 
+/**
+ * Swap ordinate values o1 and o2 on a given POINTARRAY
+ *
+ * Ordinates semantic is: 0=x 1=y 2=z 3=m
+ */
+void ptarray_swap_ordinates(POINTARRAY *pa, LWORD o1, LWORD o2);
+
 /*
 * Is Empty?
 */
@@ -196,9 +187,9 @@ extern int32_t lw_get_int32_t(const uint8_t *loc);
  * @param minpts minimun number of points to retain, if possible.
  */
 POINTARRAY* ptarray_simplify(POINTARRAY *inpts, double epsilon, unsigned int minpts);
-LWLINE* lwline_simplify(const LWLINE *iline, double dist);
-LWPOLY* lwpoly_simplify(const LWPOLY *ipoly, double dist);
-LWCOLLECTION* lwcollection_simplify(const LWCOLLECTION *igeom, double dist);
+LWLINE* lwline_simplify(const LWLINE *iline, double dist, int preserve_collapsed);
+LWPOLY* lwpoly_simplify(const LWPOLY *ipoly, double dist, int preserve_collapsed);
+LWCOLLECTION* lwcollection_simplify(const LWCOLLECTION *igeom, double dist, int preserve_collapsed);
 
 /*
 * Computational geometry
@@ -301,9 +292,9 @@ double lwtriangle_perimeter_2d(const LWTRIANGLE *triangle);
 /*
 * Segmentization
 */
-LWLINE *lwcircstring_segmentize(const LWCIRCSTRING *icurve, uint32_t perQuad);
-LWLINE *lwcompound_segmentize(const LWCOMPOUND *icompound, uint32_t perQuad);
-LWPOLY *lwcurvepoly_segmentize(const LWCURVEPOLY *curvepoly, uint32_t perQuad);
+LWLINE *lwcircstring_stroke(const LWCIRCSTRING *icurve, uint32_t perQuad);
+LWLINE *lwcompound_stroke(const LWCOMPOUND *icompound, uint32_t perQuad);
+LWPOLY *lwcurvepoly_stroke(const LWCURVEPOLY *curvepoly, uint32_t perQuad);
 
 /*
 * Affine
@@ -311,9 +302,13 @@ LWPOLY *lwcurvepoly_segmentize(const LWCURVEPOLY *curvepoly, uint32_t perQuad);
 void ptarray_affine(POINTARRAY *pa, const AFFINE *affine);
 
 /*
+* Scale
+*/
+void ptarray_scale(POINTARRAY *pa, const POINT4D *factor);
+
+/*
 * PointArray
 */
-int ptarray_isccw(const POINTARRAY *pa);
 int ptarray_has_z(const POINTARRAY *pa);
 int ptarray_has_m(const POINTARRAY *pa);
 double ptarray_signed_area(const POINTARRAY *pa);
@@ -349,11 +344,12 @@ void closest_point_on_segment(const POINT4D *R, const POINT4D *A, const POINT4D
 /* 
 * Repeated points
 */
-POINTARRAY *ptarray_remove_repeated_points(POINTARRAY *in);
-LWGEOM* lwmpoint_remove_repeated_points(LWMPOINT *in);
-LWGEOM* lwline_remove_repeated_points(LWLINE *in);
-LWGEOM* lwcollection_remove_repeated_points(LWCOLLECTION *in);
-LWGEOM* lwpoly_remove_repeated_points(LWPOLY *in);
+POINTARRAY *ptarray_remove_repeated_points_minpoints(POINTARRAY *in, double tolerance, int minpoints);
+POINTARRAY *ptarray_remove_repeated_points(POINTARRAY *in, double tolerance);
+LWGEOM* lwmpoint_remove_repeated_points(LWMPOINT *in, double tolerance);
+LWGEOM* lwline_remove_repeated_points(LWLINE *in, double tolerance);
+LWGEOM* lwcollection_remove_repeated_points(LWCOLLECTION *in, double tolerance);
+LWGEOM* lwpoly_remove_repeated_points(LWPOLY *in, double tolerance);
 
 /*
 * Closure test
@@ -365,7 +361,33 @@ int lwcompound_is_closed(const LWCOMPOUND *curve);
 int lwpsurface_is_closed(const LWPSURFACE *psurface);
 int lwtin_is_closed(const LWTIN *tin);
 
+/**
+* Snap to grid
+*/
 
+/**
+* Snap-to-grid Support
+*/
+typedef struct gridspec_t
+{
+	double ipx;
+	double ipy;
+	double ipz;
+	double ipm;
+	double xsize;
+	double ysize;
+	double zsize;
+	double msize;
+}
+gridspec;
+
+LWGEOM* lwgeom_grid(const LWGEOM *lwgeom, const gridspec *grid);
+LWCOLLECTION* lwcollection_grid(const LWCOLLECTION *coll, const gridspec *grid);
+LWPOINT* lwpoint_grid(const LWPOINT *point, const gridspec *grid);
+LWPOLY* lwpoly_grid(const LWPOLY *poly, const gridspec *grid);
+LWLINE* lwline_grid(const LWLINE *line, const gridspec *grid);
+LWCIRCSTRING* lwcircstring_grid(const LWCIRCSTRING *line, const gridspec *grid);
+POINTARRAY* ptarray_grid(const POINTARRAY *pa, const gridspec *grid);
 
 /*
 * What side of the line formed by p1 and p2 does q fall? 
@@ -416,4 +438,21 @@ extern void trim_trailing_zeros(char *num);
 
 extern uint8_t MULTITYPE[NUMTYPES];
 
+extern lwinterrupt_callback *_lwgeom_interrupt_callback;
+extern int _lwgeom_interrupt_requested;
+#define LW_ON_INTERRUPT(x) { \
+  if ( _lwgeom_interrupt_callback ) { \
+    (*_lwgeom_interrupt_callback)(); \
+  } \
+  if ( _lwgeom_interrupt_requested ) { \
+    _lwgeom_interrupt_requested = 0; \
+    lwnotice("liblwgeom code interrupted"); \
+    x; \
+  } \
+}
+
+int ptarray_npoints_in_rect(const POINTARRAY *pa, const GBOX *gbox);
+int gbox_contains_point2d(const GBOX *g, const POINT2D *p);
+int lwpoly_contains_point(const LWPOLY *poly, const POINT2D *pt);
+
 #endif /* _LIBLWGEOM_INTERNAL_H */
diff --git a/liblwgeom/liblwgeom_topo.h b/liblwgeom/liblwgeom_topo.h
new file mode 100644
index 0000000..b422cdb
--- /dev/null
+++ b/liblwgeom/liblwgeom_topo.h
@@ -0,0 +1,1329 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright (C) 2015 Sandro Santilli <strk at keybit.net>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#ifndef LIBLWGEOM_TOPO_H
+#define LIBLWGEOM_TOPO_H 1
+
+#include "liblwgeom.h"
+
+/* INT64 */
+typedef int64_t LWT_INT64;
+
+/** Identifier of topology element */
+typedef LWT_INT64 LWT_ELEMID;
+
+/*
+ * ISO primitive elements
+ */
+
+/** NODE */
+typedef struct
+{
+  LWT_ELEMID node_id;
+  LWT_ELEMID containing_face; /* -1 if not isolated */
+  LWPOINT *geom;
+}
+LWT_ISO_NODE;
+
+void lwt_iso_node_release(LWT_ISO_NODE* node);
+
+/** Node fields */
+#define LWT_COL_NODE_NODE_ID         1<<0
+#define LWT_COL_NODE_CONTAINING_FACE 1<<1
+#define LWT_COL_NODE_GEOM            1<<2
+#define LWT_COL_NODE_ALL            (1<<3)-1
+
+/** EDGE */
+typedef struct
+{
+  LWT_ELEMID edge_id;
+  LWT_ELEMID start_node;
+  LWT_ELEMID end_node;
+  LWT_ELEMID face_left;
+  LWT_ELEMID face_right;
+  LWT_ELEMID next_left;
+  LWT_ELEMID next_right;
+  LWLINE *geom;
+}
+LWT_ISO_EDGE;
+
+/** Edge fields */
+#define LWT_COL_EDGE_EDGE_ID         1<<0
+#define LWT_COL_EDGE_START_NODE      1<<1
+#define LWT_COL_EDGE_END_NODE        1<<2
+#define LWT_COL_EDGE_FACE_LEFT       1<<3
+#define LWT_COL_EDGE_FACE_RIGHT      1<<4
+#define LWT_COL_EDGE_NEXT_LEFT       1<<5
+#define LWT_COL_EDGE_NEXT_RIGHT      1<<6
+#define LWT_COL_EDGE_GEOM            1<<7
+#define LWT_COL_EDGE_ALL            (1<<8)-1
+
+/** FACE */
+typedef struct
+{
+  LWT_ELEMID face_id;
+  GBOX *mbr;
+}
+LWT_ISO_FACE;
+
+/** Face fields */
+#define LWT_COL_FACE_FACE_ID         1<<0
+#define LWT_COL_FACE_MBR             1<<1
+#define LWT_COL_FACE_ALL            (1<<2)-1
+
+typedef enum LWT_SPATIALTYPE_T {
+  LWT_PUNTAL = 0,
+  LWT_LINEAL = 1,
+  LWT_AREAL = 2,
+  LWT_COLLECTION = 3
+} LWT_SPATIALTYPE;
+
+/*
+ * Backend handling functions
+ */
+
+/* opaque pointers referencing native backend objects */
+
+/**
+ * Backend private data pointer
+ *
+ * Only the backend handler needs to know what it really is.
+ * It will be passed to all registered callback functions.
+ */
+typedef struct LWT_BE_DATA_T LWT_BE_DATA;
+
+/**
+ * Backend interface handler
+ *
+ * Embeds all registered backend callbacks and private data pointer.
+ * Will need to be passed (directly or indirectly) to al public facing
+ * APIs of this library.
+ */
+typedef struct LWT_BE_IFACE_T LWT_BE_IFACE;
+
+/**
+ * Topology handler.
+ *
+ * Embeds backend interface handler.
+ * Will need to be passed to all topology manipulation APIs
+ * of this library.
+ */
+typedef struct LWT_BE_TOPOLOGY_T LWT_BE_TOPOLOGY;
+
+/**
+ * Structure containing base backend callbacks
+ *
+ * Used for registering into the backend iface
+ */
+typedef struct LWT_BE_CALLBACKS_T {
+
+  /**
+   * Read last error message from backend
+   *
+   * @return NULL-terminated error string
+   */
+  const char* (*lastErrorMessage) (const LWT_BE_DATA* be);
+
+  /**
+   * Create a new topology in the backend
+   *
+   * @param name the topology name
+   * @param srid the topology SRID
+   * @param precision the topology precision/tolerance
+   * @param hasZ non-zero if topology primitives should have a Z ordinate
+   * @return a topology handler, which embeds the backend data/params
+   *         or NULL on error (@see lastErrorMessage)
+   */
+  LWT_BE_TOPOLOGY* (*createTopology) (
+    const LWT_BE_DATA* be,
+    const char* name, int srid, double precision, int hasZ
+  );
+
+  /**
+   * Load a topology from the backend
+   *
+   * @param name the topology name
+   * @return a topology handler, which embeds the backend data/params
+   *         or NULL on error (@see lastErrorMessage)
+   */
+  LWT_BE_TOPOLOGY* (*loadTopologyByName) (
+    const LWT_BE_DATA* be,
+    const char* name
+  );
+
+  /**
+   * Release memory associated to a backend topology
+   *
+   * @param topo the backend topology handler
+   * @return 1 on success, 0 on error (@see lastErrorMessage)
+   */
+  int (*freeTopology) (LWT_BE_TOPOLOGY* topo);
+
+  /**
+   * Get nodes by id
+   *
+   * @param topo the topology to act upon
+   * @param ids an array of element identifiers
+   * @param numelems input/output parameter, pass number of node identifiers
+   *                 in the input array, gets number of node in output array.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_NODE_* macros
+   *
+   * @return an array of nodes
+   *         or NULL in the following cases:
+   *         - no edge found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   *           (@see lastErrorMessage)
+   *
+   */
+  LWT_ISO_NODE* (*getNodeById) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields
+  );
+
+  /**
+   * Get nodes within distance by point
+   *
+   * @param topo the topology to act upon
+   * @param pt the query point
+   * @param dist the distance
+   * @param numelems output parameter, gets number of elements found
+   *                 if the return is not null, otherwise see @return
+   *                 section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_NODE_* macros
+   * @param limit max number of nodes to return, 0 for no limit, -1
+   *              to only check for existance if a matching row.
+   *
+   * @return an array of nodes or null in the following cases:
+   *         - limit=-1 ("numelems" is set to 1 if found, 0 otherwise)
+   *         - limit>0 and no records found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   *
+   */
+  LWT_ISO_NODE* (*getNodeWithinDistance2D) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWPOINT* pt, double dist, int* numelems,
+      int fields, int limit
+  );
+
+  /**
+   * Insert nodes
+   *
+   * Insert node primitives in the topology, performing no
+   * consistency checks.
+   *
+   * @param topo the topology to act upon
+   * @param nodes the nodes to insert. Those with a node_id set to -1
+   *              it will be replaced to an automatically assigned identifier
+   * @param nelems number of elements in the nodes array
+   *
+   * @return 1 on success, 0 on error (@see lastErrorMessage)
+   */
+  int (*insertNodes) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ISO_NODE* nodes,
+      int numelems
+  );
+
+  /**
+   * Get edge by id
+   *
+   * @param topo the topology to act upon
+   * @param ids an array of element identifiers
+   * @param numelems input/output parameter, pass number of edge identifiers
+   *                 in the input array, gets number of edges in output array
+   *                 if the return is not null, otherwise see @return
+   *                 section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_EDGE_* macros
+   *
+   * @return an array of edges or NULL in the following cases:
+   *         - none found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   */
+  LWT_ISO_EDGE* (*getEdgeById) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields
+  );
+
+  /**
+   * Get edges within distance by point
+   *
+   * @param topo the topology to act upon
+   * @param pt the query point
+   * @param dist the distance
+   * @param numelems output parameter, gets number of elements found
+   *                 if the return is not null, otherwise see @return
+   *                 section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_EDGE_* macros
+   * @param limit max number of edges to return, 0 for no limit, -1
+   *              to only check for existance if a matching row.
+   *
+   * @return an array of edges or null in the following cases:
+   *         - limit=-1 ("numelems" is set to 1 if found, 0 otherwise)
+   *         - limit>0 and no records found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   *
+   */
+  LWT_ISO_EDGE* (*getEdgeWithinDistance2D) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWPOINT* pt, double dist, int* numelems,
+      int fields, int limit
+  );
+
+  /**
+   * Get next available edge identifier
+   *
+   * Identifiers returned by this function should not be considered
+   * available anymore.
+   *
+   * @param topo the topology to act upon
+   *
+   * @return next available edge identifier or -1 on error
+   */
+  LWT_ELEMID (*getNextEdgeId) (
+      const LWT_BE_TOPOLOGY* topo
+  );
+
+  /**
+   * Insert edges
+   *
+   * Insert edge primitives in the topology, performing no
+   * consistency checks.
+   *
+   * @param topo the topology to act upon
+   * @param edges the edges to insert. Those with a edge_id set to -1
+   *              it will be replaced to an automatically assigned identifier
+   * @param nelems number of elements in the edges array
+   *
+   * @return number of inserted edges, or -1 (@see lastErrorMessage)
+   */
+  int (*insertEdges) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ISO_EDGE* edges,
+      int numelems
+  );
+
+  /**
+   * Update edges selected by fields match/mismatch
+   *
+   * @param topo the topology to act upon
+   * @param sel_edge an LWT_ISO_EDGE object with selecting fields set.
+   * @param sel_fields fields used to select edges to be updated,
+   *                   see LWT_COL_EDGE_* macros
+   * @param upd_edge an LWT_ISO_EDGE object with updated fields set.
+   * @param upd_fields fields to be updated for the selected edges,
+   *                   see LWT_COL_EDGE_* macros
+   * @param exc_edge an LWT_ISO_EDGE object with exclusion fields set,
+   *                 can be NULL if no exlusion condition exists.
+   * @param exc_fields fields used for excluding edges from the update,
+   *                   see LWT_COL_EDGE_* macros
+   *
+   * @return number of edges being updated or -1 on error
+   *         (@see lastErroMessage)
+   */
+  int (*updateEdges) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_EDGE* sel_edge, int sel_fields,
+      const LWT_ISO_EDGE* upd_edge, int upd_fields,
+      const LWT_ISO_EDGE* exc_edge, int exc_fields
+  );
+
+  /**
+   * Get faces by id
+   *
+   * @param topo the topology to act upon
+   * @param ids an array of element identifiers
+   * @param numelems input/output parameter, pass number of edge identifiers
+   *                 in the input array, gets number of node in output array
+   *                 if the return is not null, otherwise see @return
+   *                 section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_FACE_* macros
+   *
+   * @return an array of faces or NULL in the following cases:
+   *         - none found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   */
+  LWT_ISO_FACE* (*getFaceById) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields
+  );
+
+  /**
+   * Get face containing point
+   *
+   * @param topo the topology to act upon
+   * @param pt the query point
+   *
+   * @return a face identifier, -1 if no face contains the point
+   *         (could be in universe face or on an edge)
+   *         or -2 on error (@see lastErrorMessage)
+   */
+  LWT_ELEMID (*getFaceContainingPoint) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWPOINT* pt
+  );
+
+  /**
+   * Update TopoGeometry objects after an edge split event
+   *
+   * @param topo the topology to act upon
+   * @param split_edge identifier of the edge that was splitted.
+   * @param new_edge1 identifier of the first new edge that was created
+   *        as a result of edge splitting.
+   * @param new_edge2 identifier of the second new edge that was created
+   *        as a result of edge splitting, or -1 if the old edge was
+   *        modified rather than replaced.
+   *
+	 * @return 1 on success, 0 on error
+   *
+   * @note on splitting an edge, the new edges both have the
+   *       same direction as the original one. If a second new edge was
+   *       created, its start node will be equal to the first new edge
+   *       end node.
+   */
+  int (*updateTopoGeomEdgeSplit) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ELEMID split_edge, LWT_ELEMID new_edge1, LWT_ELEMID new_edge2
+  );
+
+  /**
+   * Delete edges
+   *
+   * @param topo the topology to act upon
+   * @param sel_edge an LWT_ISO_EDGE object with selecting fields set.
+   * @param sel_fields fields used to select edges to be deleted,
+   *                   see LWT_COL_EDGE_* macros
+   *
+   * @return number of edges being deleted or -1 on error
+   *         (@see lastErroMessage)
+   */
+  int (*deleteEdges) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_EDGE* sel_edge, int sel_fields
+  );
+
+  /**
+   * Get edges whose bounding box overlaps a given 2D bounding box
+   *
+   * @param topo the topology to act upon
+   * @param box the query box
+   * @param numelems output parameter, gets number of elements found
+   *                 if the return is not null, otherwise see @return
+   *                 section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_NODE_* macros
+   * @param limit max number of nodes to return, 0 for no limit, -1
+   *              to only check for existance if a matching row.
+   *
+   * @return an array of nodes or null in the following cases:
+   *         - limit=-1 ("numelems" is set to 1 if found, 0 otherwise)
+   *         - limit>0 and no records found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   *
+   */
+  LWT_ISO_NODE* (*getNodeWithinBox2D) (
+      const LWT_BE_TOPOLOGY* topo,
+      const GBOX* box,
+      int* numelems, int fields, int limit
+  );
+
+  /**
+   * Get edges whose bounding box overlaps a given 2D bounding box
+   *
+   * @param topo the topology to act upon
+   * @param box the query box
+   * @param numelems output parameter, gets number of elements found
+   *                 if the return is not null, otherwise see @return
+   *                 section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_EDGE_* macros
+   * @param limit max number of edges to return, 0 for no limit, -1
+   *              to only check for existance if a matching row.
+   *
+   * @return an array of edges or null in the following cases:
+   *         - limit=-1 ("numelems" is set to 1 if found, 0 otherwise)
+   *         - limit>0 and no records found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   *
+   */
+  LWT_ISO_EDGE* (*getEdgeWithinBox2D) (
+      const LWT_BE_TOPOLOGY* topo,
+      const GBOX* box,
+      int* numelems, int fields, int limit
+  );
+
+  /**
+   * Get edges that start or end on any of the given node identifiers
+   *
+   * @param topo the topology to act upon
+   * @param ids an array of node identifiers
+   * @param numelems input/output parameter, pass number of node identifiers
+   *                 in the input array, gets number of edges in output array
+   *                 if the return is not null, otherwise see @return
+   *                 section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_EDGE_* macros
+   *
+   * @return an array of edges that are incident to a node
+   *         or NULL in the following cases:
+   *         - no edge found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   *           (@see lastErrorMessage)
+   */
+  LWT_ISO_EDGE* (*getEdgeByNode) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields
+  );
+
+  /**
+   * Update nodes selected by fields match/mismatch
+   *
+   * @param topo the topology to act upon
+   * @param sel_node an LWT_ISO_NODE object with selecting fields set.
+   * @param sel_fields fields used to select nodes to be updated,
+   *                   see LWT_COL_NODE_* macros
+   * @param upd_node an LWT_ISO_NODE object with updated fields set.
+   * @param upd_fields fields to be updated for the selected nodes,
+   *                   see LWT_COL_NODE_* macros
+   * @param exc_node an LWT_ISO_NODE object with exclusion fields set,
+   *                 can be NULL if no exlusion condition exists.
+   * @param exc_fields fields used for excluding nodes from the update,
+   *                   see LWT_COL_NODE_* macros
+   *
+   * @return number of nodes being updated or -1 on error
+   *         (@see lastErroMessage)
+   */
+  int (*updateNodes) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_NODE* sel_node, int sel_fields,
+      const LWT_ISO_NODE* upd_node, int upd_fields,
+      const LWT_ISO_NODE* exc_node, int exc_fields
+  );
+
+  /**
+   * Update TopoGeometry objects after a face split event
+   *
+   * @param topo the topology to act upon
+   * @param split_face identifier of the face that was splitted.
+   * @param new_face1 identifier of the first new face that was created
+   *        as a result of face splitting.
+   * @param new_face2 identifier of the second new face that was created
+   *        as a result of face splitting, or -1 if the old face was
+   *        modified rather than replaced.
+   *
+	 * @return 1 on success, 0 on error (@see lastErroMessage)
+   *
+   */
+  int (*updateTopoGeomFaceSplit) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ELEMID split_face, LWT_ELEMID new_face1, LWT_ELEMID new_face2
+  );
+
+  /**
+   * Insert faces
+   *
+   * Insert face primitives in the topology, performing no
+   * consistency checks.
+   *
+   * @param topo the topology to act upon
+   * @param faces the faces to insert. Those with a node_id set to -1
+   *              it will be replaced to an automatically assigned identifier
+   * @param nelems number of elements in the faces array
+   *
+   * @return number of inserted faces, or -1 (@see lastErrorMessage)
+   */
+  int (*insertFaces) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ISO_FACE* faces,
+      int numelems
+  );
+
+  /**
+   * Update faces by id
+   *
+   * @param topo the topology to act upon
+   * @param faces an array of LWT_ISO_FACE object with selecting id
+   *              and setting mbr.
+   * @param numfaces number of faces in the "faces" array
+   *
+   * @return number of faces being updated or -1 on error
+   *         (@see lastErroMessage)
+   */
+  int (*updateFacesById) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_FACE* faces, int numfaces
+  );
+
+  /*
+   * Get the ordered list edge visited by a side walk
+   *
+   * The walk starts from the side of an edge and stops when
+   * either the max number of visited edges OR the starting
+   * position is reached. The output list never includes a
+   * duplicated signed edge identifier.
+   *
+   * It is expected that the walk uses the "next_left" and "next_right"
+   * attributes of ISO edges to perform the walk (rather than recomputing
+   * the turns at each node).
+   *
+   * @param topo the topology to operate on
+   * @param edge walk start position and direction:
+   *             abs value identifies the edge, sign expresses
+   *             side (left if positive, right if negative)
+   *             and direction (forward if positive, backward if negative).
+   * @param numedges output parameter, gets the number of edges visited
+   * @param limit max edges to return (to avoid an infinite loop in case
+   *              of a corrupted topology). 0 is for unlimited.
+   *              The function is expected to error out if the limit is hit.
+   *
+   * @return an array of signed edge identifiers (positive edges being
+   *         walked in their direction, negative ones in opposite) or
+   *         NULL on error (@see lastErroMessage)
+   */
+  LWT_ELEMID* (*getRingEdges) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ELEMID edge, int *numedges, int limit
+  );
+
+  /**
+   * Update edges by id
+   *
+   * @param topo the topology to act upon
+   * @param edges an array of LWT_ISO_EDGE object with selecting id
+   *              and updating fields.
+   * @param numedges number of edges in the "edges" array
+   * @param upd_fields fields to be updated for the selected edges,
+   *                   see LWT_COL_EDGE_* macros
+   *
+   * @return number of edges being updated or -1 on error
+   *         (@see lastErroMessage)
+   */
+  int (*updateEdgesById) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_EDGE* edges, int numedges,
+      int upd_fields
+  );
+
+  /**
+   * Get edges that have any of the given faces on the left or right side
+   *
+   * @param topo the topology to act upon
+   * @param ids an array of face identifiers
+   * @param numelems input/output parameter, pass number of face identifiers
+   *                 in the input array, gets number of edges in output array
+   *                 if the return is not null, otherwise see @return
+   *                 section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_EDGE_* macros
+   *
+   * @return an array of edges identifiers or NULL in the following cases:
+   *         - no edge found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   */
+  LWT_ISO_EDGE* (*getEdgeByFace) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields
+  );
+
+  /**
+   * Get isolated nodes contained in any of the given faces
+   *
+   * @param topo the topology to act upon
+   * @param faces an array of face identifiers
+   * @param numelems input/output parameter, pass number of face
+   *                 identifiers in the input array, gets number of
+   *                 nodes in output array if the return is not null,
+   *                 otherwise see @return section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_NODE_* macros
+   *
+   * @return an array of nodes or NULL in the following cases:
+   *         - no nod found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1, @see lastErrorMessage)
+   */
+  LWT_ISO_NODE* (*getNodeByFace) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* faces, int* numelems, int fields
+  );
+
+  /**
+   * Update nodes by id
+   *
+   * @param topo the topology to act upon
+   * @param nodes an array of LWT_ISO_EDGE objects with selecting id
+   *              and updating fields.
+   * @param numnodes number of nodes in the "nodes" array
+   * @param upd_fields fields to be updated for the selected edges,
+   *                   see LWT_COL_NODE_* macros
+   *
+   * @return number of nodes being updated or -1 on error
+   *         (@see lastErroMessage)
+   */
+  int (*updateNodesById) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_NODE* nodes, int numnodes,
+      int upd_fields
+  );
+
+  /**
+   * Delete faces by id
+   *
+   * @param topo the topology to act upon
+   * @param ids an array of face identifiers
+   * @param numelems number of face identifiers in the ids array
+   *
+   * @return number of faces being deleted or -1 on error
+   *         (@see lastErroMessage)
+   */
+  int (*deleteFacesById) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids,
+      int numelems
+  );
+
+  /**
+   * Get topology SRID
+   * @return 0 for unknown
+   */
+  int (*topoGetSRID) (
+      const LWT_BE_TOPOLOGY* topo
+  );
+
+  /**
+   * Get topology precision
+   */
+  double (*topoGetPrecision) (
+      const LWT_BE_TOPOLOGY* topo
+  );
+
+  /**
+   * Get topology Z flag
+   * @return 1 if topology elements do have Z value, 0 otherwise
+   */
+  int (*topoHasZ) (
+      const LWT_BE_TOPOLOGY* topo
+  );
+
+  /**
+   * Delete nodes by id
+   *
+   * @param topo the topology to act upon
+   * @param ids an array of node identifiers
+   * @param numelems number of node identifiers in the ids array
+   *
+   * @return number of nodes being deleted or -1 on error
+   *         (@see lastErroMessage)
+   */
+  int (*deleteNodesById) (
+      const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids,
+      int numelems
+  );
+
+  /**
+   * Check TopoGeometry objects before an edge removal event
+   *
+   * @param topo the topology to act upon
+   * @param rem_edge identifier of the edge that's been removed
+   * @param face_left identifier of the face on the edge's left side
+   * @param face_right identifier of the face on the edge's right side
+   *
+   * @return 1 to allow, 0 to forbid the operation
+   *         (reporting reason via lastErrorMessage)
+   *
+   */
+  int (*checkTopoGeomRemEdge) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ELEMID rem_edge,
+      LWT_ELEMID face_left,
+      LWT_ELEMID face_right
+  );
+
+  /**
+   * Update TopoGeometry objects after healing two faces
+   *
+   * @param topo the topology to act upon
+   * @param face1 identifier of the first face
+   * @param face2 identifier of the second face
+   * @param newface identifier of the new face
+   *
+   * @note that newface may or may not be equal to face1 or face2,
+   *       while face1 should never be the same as face2.
+   *
+   * @return 1 on success, 0 on error (@see lastErrorMessage)
+   *
+   */
+  int (*updateTopoGeomFaceHeal) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ELEMID face1, LWT_ELEMID face2, LWT_ELEMID newface
+  );
+
+  /**
+   * Check TopoGeometry objects before a node removal event
+   *
+   * @param topo the topology to act upon
+   * @param rem_node identifier of the node that's been removed
+   * @param e1 identifier of the first connected edge
+   * @param e2 identifier of the second connected edge
+   *
+   * The operation should be forbidden if any TopoGeometry object
+   * exists which contains only one of the two healed edges.
+   *
+   * The operation should also be forbidden if the removed node
+   * takes part in the definition of a TopoGeometry, although
+   * this wasn't the case yet as of PostGIS version 2.1.8:
+   * https://trac.osgeo.org/postgis/ticket/3239
+   *
+   * @return 1 to allow, 0 to forbid the operation
+   *         (reporting reason via lastErrorMessage)
+   *
+   */
+  int (*checkTopoGeomRemNode) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ELEMID rem_node,
+      LWT_ELEMID e1,
+      LWT_ELEMID e2
+  );
+
+  /**
+   * Update TopoGeometry objects after healing two edges
+   *
+   * @param topo the topology to act upon
+   * @param edge1 identifier of the first edge
+   * @param edge2 identifier of the second edge
+   * @param newedge identifier of the new edge, taking the space
+   *                previously occupied by both original edges
+   *
+   * @note that newedge may or may not be equal to edge1 or edge2,
+   *       while edge1 should never be the same as edge2.
+   *
+   * @return 1 on success, 0 on error (@see lastErrorMessage)
+   *
+   */
+  int (*updateTopoGeomEdgeHeal) (
+      const LWT_BE_TOPOLOGY* topo,
+      LWT_ELEMID edge1, LWT_ELEMID edge2, LWT_ELEMID newedge
+  );
+
+  /**
+   * Get faces whose bounding box overlaps a given 2D bounding box
+   *
+   * @param topo the topology to act upon
+   * @param box the query box
+   * @param numelems output parameter, gets number of elements found
+   *                 if the return is not null, otherwise see @return
+   *                 section for semantic.
+   * @param fields fields to be filled in the returned structure, see
+   *               LWT_COL_FACE_* macros
+   * @param limit max number of faces to return, 0 for no limit, -1
+   *              to only check for existance if a matching row.
+   *
+   * @return an array of faces or null in the following cases:
+   *         - limit=-1 ("numelems" is set to 1 if found, 0 otherwise)
+   *         - limit>0 and no records found ("numelems" is set to 0)
+   *         - error ("numelems" is set to -1)
+   *
+   */
+  LWT_ISO_FACE* (*getFaceWithinBox2D) (
+      const LWT_BE_TOPOLOGY* topo,
+      const GBOX* box,
+      int* numelems, int fields, int limit
+  );
+
+} LWT_BE_CALLBACKS;
+
+
+/**
+ * Create a new backend interface
+ *
+ * Ownership to caller delete with lwt_FreeBackendIface
+ *
+ * @param data Backend data, passed as first parameter to all callback functions
+ */
+LWT_BE_IFACE* lwt_CreateBackendIface(const LWT_BE_DATA* data);
+
+/**
+ * Register backend callbacks into the opaque iface handler
+ *
+ * @param iface the backend interface handler (see lwt_CreateBackendIface)
+ * @param cb a pointer to the callbacks structure; ownership left to caller.
+ */
+void lwt_BackendIfaceRegisterCallbacks(LWT_BE_IFACE* iface, const LWT_BE_CALLBACKS* cb);
+
+/** Release memory associated with an LWT_BE_IFACE */
+void lwt_FreeBackendIface(LWT_BE_IFACE* iface);
+
+/********************************************************************
+ *
+ * End of BE interface
+ *
+ *******************************************************************/
+
+/**
+ * Topology errors type
+ */
+typedef enum LWT_TOPOERR_TYPE_T {
+  LWT_TOPOERR_EDGE_CROSSES_NODE,
+  LWT_TOPOERR_EDGE_INVALID,
+  LWT_TOPOERR_EDGE_NOT_SIMPLE,
+  LWT_TOPOERR_EDGE_CROSSES_EDGE,
+  LWT_TOPOERR_EDGE_STARTNODE_MISMATCH,
+  LWT_TOPOERR_EDGE_ENDNODE_MISMATCH,
+  LWT_TOPOERR_FACE_WITHOUT_EDGES,
+  LWT_TOPOERR_FACE_HAS_NO_RINGS,
+  LWT_TOPOERR_FACE_OVERLAPS_FACE,
+  LWT_TOPOERR_FACE_WITHIN_FACE
+} LWT_TOPOERR_TYPE;
+
+/** Topology error */
+typedef struct LWT_TOPOERR_T {
+  /** Type of error */
+  LWT_TOPOERR_TYPE err;
+  /** Identifier of first affected element */
+  LWT_ELEMID elem1;
+  /** Identifier of second affected element (0 if inapplicable) */
+  LWT_ELEMID elem2;
+} LWT_TOPOERR;
+
+/*
+ * Topology functions
+ */
+
+/** Opaque topology structure
+ *
+ * Embeds backend interface and topology
+ */
+typedef struct LWT_TOPOLOGY_T LWT_TOPOLOGY;
+
+
+/*******************************************************************
+ *
+ * Non-ISO signatures here
+ *
+ *******************************************************************/
+
+/**
+ * Initializes a new topology
+ *
+ * @param iface the backend interface handler (see lwt_CreateBackendIface)
+ * @param name name of the new topology
+ * @param srid the topology SRID
+ * @param prec the topology precision/tolerance
+ * @param hasz non-zero if topology primitives should have a Z ordinate
+ *
+ * @return the handler of the topology, or NULL on error
+ *         (liblwgeom error handler will be invoked with error message)
+ */
+LWT_TOPOLOGY *lwt_CreateTopology(LWT_BE_IFACE *iface, const char *name,
+                        int srid, double prec, int hasz);
+
+/**
+ * Loads an existing topology by name from the database
+ *
+ * @param iface the backend interface handler (see lwt_CreateBackendIface)
+ * @param name name of the topology to load
+ *
+ * @return the handler of the topology, or NULL on error
+ *         (liblwgeom error handler will be invoked with error message)
+ */
+LWT_TOPOLOGY *lwt_LoadTopology(LWT_BE_IFACE *iface, const char *name);
+
+/**
+ * Drop a topology and all its associated objects from the database
+ *
+ * @param topo the topology to drop
+ */
+void lwt_DropTopology(LWT_TOPOLOGY* topo);
+
+/** Release memory associated with an LWT_TOPOLOGY
+ *
+ * @param topo the topology to release (it's not removed from db)
+ */
+void lwt_FreeTopology(LWT_TOPOLOGY* topo);
+
+/**
+ * Retrieve the id of a node at a point location
+ *
+ * @param topo the topology to operate on
+ * @param point the point to use for query
+ * @param tol max distance around the given point to look for a node
+ * @return a node identifier if one is found, 0 if none is found, -1
+ *         on error (multiple nodes within distance).
+ *         The liblwgeom error handler will be invoked in case of error.
+ */
+LWT_ELEMID lwt_GetNodeByPoint(LWT_TOPOLOGY *topo, LWPOINT *pt, double tol);
+
+/**
+ * Find the edge-id of an edge that intersects a given point
+ *
+ * @param topo the topology to operate on
+ * @param point the point to use for query
+ * @param tol max distance around the given point to look for an
+ *            intersecting edge
+ * @return an edge identifier if one is found, 0 if none is found, -1
+ *         on error (multiple edges within distance).
+ *         The liblwgeom error handler will be invoked in case of error.
+ */
+LWT_ELEMID lwt_GetEdgeByPoint(LWT_TOPOLOGY *topo, LWPOINT *pt, double tol);
+
+/**
+ * Find the face-id of a face containing a given point
+ *
+ * @param topo the topology to operate on
+ * @param point the point to use for query
+ * @param tol max distance around the given point to look for a
+ *            containing face
+ * @return a face identifier if one is found (0 if universe), -1
+ *         on error (multiple faces within distance or point on node
+ *         or edge).
+ *         The liblwgeom error handler will be invoked in case of error.
+ */
+LWT_ELEMID lwt_GetFaceByPoint(LWT_TOPOLOGY *topo, LWPOINT *pt, double tol);
+
+
+/*******************************************************************
+ *
+ * Topology population (non-ISO)
+ *
+ *******************************************************************/
+
+/**
+ * Adds a point to the topology
+ *
+ * The given point will snap to existing nodes or edges within given
+ * tolerance. An existing edge may be split by the point.
+ *
+ * @param topo the topology to operate on
+ * @param point the point to add
+ * @param tol snap tolerance, the topology tolerance will be used if 0
+ *
+ * @return identifier of added (or pre-existing) node or -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ */
+LWT_ELEMID lwt_AddPoint(LWT_TOPOLOGY* topo, LWPOINT* point, double tol);
+
+/**
+ * Adds a linestring to the topology
+ *
+ * The given line will snap to existing nodes or edges within given
+ * tolerance. Existing edges or faces may be split by the line.
+ *
+ * @param topo the topology to operate on
+ * @param line the line to add
+ * @param tol snap tolerance, the topology tolerance will be used if 0
+ * @param nedges output parameter, will be set to number of edges the
+ *               line was split into, or -1 on error
+ *               (liblwgeom error handler will be invoked with error message)
+ *
+ * @return an array of <nedges> edge identifiers that sewed togheter
+ *         will build up the input linestring (after snapping). Caller
+ *         will need to free the array using lwfree(), if not null.
+ */
+LWT_ELEMID* lwt_AddLine(LWT_TOPOLOGY* topo, LWLINE* line, double tol,
+                        int* nedges);
+
+/**
+ * Adds a polygon to the topology
+ *
+ * The boundary of the given polygon will snap to existing nodes or
+ * edges within given tolerance.
+ * Existing edges or faces may be split by the boundary of the polygon.
+ *
+ * @param topo the topology to operate on
+ * @param poly the polygon to add
+ * @param tol snap tolerance, the topology tolerance will be used if 0
+ * @param nfaces output parameter, will be set to number of faces the
+ *               polygon was split into, or -1 on error
+ *               (liblwgeom error handler will be invoked with error message)
+ *
+ * @return an array of <nfaces> face identifiers that sewed togheter
+ *         will build up the input polygon (after snapping). Caller
+ *         will need to free the array using lwfree(), if not null.
+ */
+LWT_ELEMID* lwt_AddPolygon(LWT_TOPOLOGY* topo, LWPOLY* poly, double tol,
+                        int* nfaces);
+
+/*******************************************************************
+ *
+ * ISO signatures here
+ *
+ *******************************************************************/
+
+/**
+ * Populate an empty topology with data from a simple geometry
+ *
+ * For ST_CreateTopoGeo
+ *
+ * @param topo the topology to operate on
+ * @param geom the geometry to import
+ *
+ */
+void lwt_CreateTopoGeo(LWT_TOPOLOGY* topo, LWGEOM *geom);
+
+/**
+ * Add an isolated node
+ *
+ * For ST_AddIsoNode
+ *
+ * @param topo the topology to operate on
+ * @param face the identifier of containing face or -1 for "unknown"
+ * @param pt the node position
+ * @param skipChecks if non-zero skips consistency checks
+ *                   (coincident nodes, crossing edges,
+ *                    actual face containement)
+ *
+ * @return ID of the newly added node, or -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+LWT_ELEMID lwt_AddIsoNode(LWT_TOPOLOGY* topo, LWT_ELEMID face,
+                          LWPOINT* pt, int skipChecks);
+
+/**
+ * Move an isolated node
+ *
+ * For ST_MoveIsoNode
+ *
+ * @param topo the topology to operate on
+ * @param node the identifier of the nod to be moved
+ * @param pt the new node position
+ * @return 0 on success, -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+int lwt_MoveIsoNode(LWT_TOPOLOGY* topo,
+                    LWT_ELEMID node, LWPOINT* pt);
+
+/**
+ * Remove an isolated node
+ *
+ * For ST_RemoveIsoNode
+ *
+ * @param topo the topology to operate on
+ * @param node the identifier of the node to be moved
+ * @return 0 on success, -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+int lwt_RemoveIsoNode(LWT_TOPOLOGY* topo, LWT_ELEMID node);
+
+/**
+ * Remove an isolated edge
+ *
+ * For ST_RemIsoEdge
+ *
+ * @param topo the topology to operate on
+ * @param edge the identifier of the edge to be moved
+ * @return 0 on success, -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+int lwt_RemIsoEdge(LWT_TOPOLOGY* topo, LWT_ELEMID edge);
+
+/**
+ * Add an isolated edge connecting two existing isolated nodes
+ *
+ * For ST_AddIsoEdge
+ *
+ * @param topo the topology to operate on
+ * @param start_node identifier of the starting node
+ * @param end_node identifier of the ending node
+ * @param geom the edge geometry
+ * @return ID of the newly added edge, or -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+LWT_ELEMID lwt_AddIsoEdge(LWT_TOPOLOGY* topo,
+                          LWT_ELEMID startNode, LWT_ELEMID endNode,
+                          const LWLINE *geom);
+
+/**
+ * Add a new edge possibly splitting a face (modifying it)
+ *
+ * For ST_AddEdgeModFace
+ *
+ * If the new edge splits a face, the face is shrinked and a new one
+ * is created. Unless the face being split is the Universal Face, the
+ * new face will be on the right side of the newly added edge.
+ *
+ * @param topo the topology to operate on
+ * @param start_node identifier of the starting node
+ * @param end_node identifier of the ending node
+ * @param geom the edge geometry
+ * @param skipChecks if non-zero skips consistency checks
+ *                   (curve being simple and valid, start/end nodes
+ *                    consistency actual face containement)
+ *
+ * @return ID of the newly added edge or null on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+LWT_ELEMID lwt_AddEdgeModFace(LWT_TOPOLOGY* topo,
+                              LWT_ELEMID start_node, LWT_ELEMID end_node,
+                              LWLINE *geom, int skipChecks);
+
+/**
+ * Add a new edge possibly splitting a face (replacing with two new faces)
+ *
+ * For ST_AddEdgeNewFaces
+ *
+ * If the new edge splits a face, the face is replaced by two new faces.
+ *
+ * @param topo the topology to operate on
+ * @param start_node identifier of the starting node
+ * @param end_node identifier of the ending node
+ * @param geom the edge geometry
+ * @param skipChecks if non-zero skips consistency checks
+ *                   (curve being simple and valid, start/end nodes
+ *                    consistency actual face containement)
+ * @return ID of the newly added edge
+ *
+ */
+LWT_ELEMID lwt_AddEdgeNewFaces(LWT_TOPOLOGY* topo,
+                              LWT_ELEMID start_node, LWT_ELEMID end_node,
+                              LWLINE *geom, int skipChecks);
+
+/**
+ * Remove an edge, possibly merging two faces (replacing both with a new one)
+ *
+ * For ST_RemEdgeNewFace
+ *
+ * @param topo the topology to operate on
+ * @param edge identifier of the edge to be removed
+ * @return the id of newly created face, 0 if no new face was created
+ *         or -1 on error
+ *
+ */
+LWT_ELEMID lwt_RemEdgeNewFace(LWT_TOPOLOGY* topo, LWT_ELEMID edge);
+
+/**
+ * Remove an edge, possibly merging two faces (replacing one with the other)
+ *
+ * For ST_RemEdgeModFace
+ *
+ * Preferentially keep the face on the right, to be symmetric with
+ * lwt_AddEdgeModFace.
+ *
+ * @param topo the topology to operate on
+ * @param edge identifier of the edge to be removed
+ * @return the id of the face that takes the space previously occupied
+ *         by the removed edge, or -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+LWT_ELEMID lwt_RemEdgeModFace(LWT_TOPOLOGY* topo, LWT_ELEMID edge);
+
+/**
+ * Changes the shape of an edge without affecting the topology structure.
+ *
+ * For ST_ChangeEdgeGeom
+ *
+ * @param topo the topology to operate on
+ * @param curve the edge geometry
+ * @return 0 on success, -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+int lwt_ChangeEdgeGeom(LWT_TOPOLOGY* topo, LWT_ELEMID edge, LWLINE* curve);
+
+/**
+ * Split an edge by a node, modifying the original edge and adding a new one.
+ *
+ * For ST_ModEdgeSplit
+ *
+ * @param topo the topology to operate on
+ * @param edge identifier of the edge to be split
+ * @param pt geometry of the new node
+ * @param skipChecks if non-zero skips consistency checks
+ *                   (coincident node, point not on edge...)
+ * @return the id of newly created node, or -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+LWT_ELEMID lwt_ModEdgeSplit(LWT_TOPOLOGY* topo, LWT_ELEMID edge, LWPOINT* pt, int skipChecks);
+
+/**
+ * Split an edge by a node, replacing it with two new edges
+ *
+ * For ST_NewEdgesSplit
+ *
+ * @param topo the topology to operate on
+ * @param edge identifier of the edge to be split
+ * @param pt geometry of the new node
+ * @param skipChecks if non-zero skips consistency checks
+ *                   (coincident node, point not on edge...)
+ * @return the id of newly created node
+ *
+ */
+LWT_ELEMID lwt_NewEdgesSplit(LWT_TOPOLOGY* topo, LWT_ELEMID edge, LWPOINT* pt, int skipChecks);
+
+/**
+ * Merge two edges, modifying the first and deleting the second
+ *
+ * For ST_ModEdgeHeal
+ *
+ * @param topo the topology to operate on
+ * @param e1 identifier of first edge
+ * @param e2 identifier of second edge
+ * @return the id of the removed node or -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+LWT_ELEMID lwt_ModEdgeHeal(LWT_TOPOLOGY* topo, LWT_ELEMID e1, LWT_ELEMID e2);
+
+/**
+ * Merge two edges, replacing both with a new one
+ *
+ * For ST_NewEdgeHeal
+ *
+ * @param topo the topology to operate on
+ * @param e1 identifier of first edge
+ * @param e2 identifier of second edge
+ * @return the id of the new edge or -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+LWT_ELEMID lwt_NewEdgeHeal(LWT_TOPOLOGY* topo, LWT_ELEMID e1, LWT_ELEMID e2);
+
+/**
+ * Return the list of directed edges bounding a face
+ *
+ * For ST_GetFaceEdges
+ *
+ * @param topo the topology to operate on
+ * @param face identifier of the face
+ * @param edges will be set to an array of signed edge identifiers, will
+ *              need to be released with lwfree
+ * @return the number of edges in the edges array, or -1 on error
+ *         (liblwgeom error handler will be invoked with error message)
+ *
+ */
+int lwt_GetFaceEdges(LWT_TOPOLOGY* topo, LWT_ELEMID face, LWT_ELEMID **edges);
+
+/**
+ * Return the geometry of a face
+ *
+ * For ST_GetFaceGeometry
+ *
+ * @param topo the topology to operate on
+ * @param face identifier of the face
+ * @return a polygon geometry representing the face, ownership to caller,
+ *         to be released with lwgeom_release, or NULL on error
+ *         (liblwgeom error handler will be invoked with error message)
+ */
+LWGEOM* lwt_GetFaceGeometry(LWT_TOPOLOGY* topo, LWT_ELEMID face);
+
+#endif /* LIBLWGEOM_TOPO_H */
diff --git a/liblwgeom/liblwgeom_topo_internal.h b/liblwgeom/liblwgeom_topo_internal.h
new file mode 100644
index 0000000..4ef1da1
--- /dev/null
+++ b/liblwgeom/liblwgeom_topo_internal.h
@@ -0,0 +1,81 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright (C) 2015 Sandro Santilli <strk at keybit.net>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#ifndef LIBLWGEOM_TOPO_INTERNAL_H
+#define LIBLWGEOM_TOPO_INTERNAL_H 1
+
+#include "../postgis_config.h"
+
+#include "liblwgeom.h"
+#include "liblwgeom_topo.h"
+
+/************************************************************************
+ *
+ * Generic SQL handler
+ *
+ ************************************************************************/
+
+struct LWT_BE_IFACE_T
+{
+  const LWT_BE_DATA *data;
+  const LWT_BE_CALLBACKS *cb;
+};
+
+const char* lwt_be_lastErrorMessage(const LWT_BE_IFACE* be);
+
+LWT_BE_TOPOLOGY * lwt_be_loadTopologyByName(LWT_BE_IFACE *be, const char *name);
+
+int lwt_be_freeTopology(LWT_TOPOLOGY *topo);
+
+LWT_ISO_NODE* lwt_be_getNodeWithinDistance2D(LWT_TOPOLOGY* topo, LWPOINT* pt, double dist, int* numelems, int fields, int limit);
+
+LWT_ISO_NODE* lwt_be_getNodeById(LWT_TOPOLOGY* topo, const LWT_ELEMID* ids, int* numelems, int fields);
+
+int lwt_be_ExistsCoincidentNode(LWT_TOPOLOGY* topo, LWPOINT* pt);
+int lwt_be_insertNodes(LWT_TOPOLOGY* topo, LWT_ISO_NODE* node, int numelems);
+
+int lwt_be_ExistsEdgeIntersectingPoint(LWT_TOPOLOGY* topo, LWPOINT* pt);
+
+LWT_ELEMID lwt_be_getNextEdgeId(LWT_TOPOLOGY* topo);
+LWT_ISO_EDGE* lwt_be_getEdgeById(LWT_TOPOLOGY* topo, const LWT_ELEMID* ids,
+                               int* numelems, int fields);
+LWT_ISO_EDGE* lwt_be_getEdgeWithinDistance2D(LWT_TOPOLOGY* topo, LWPOINT* pt,
+                               double dist, int* numelems, int fields,
+                               int limit);
+int
+lwt_be_insertEdges(LWT_TOPOLOGY* topo, LWT_ISO_EDGE* edge, int numelems);
+int
+lwt_be_updateEdges(LWT_TOPOLOGY* topo, const LWT_ISO_EDGE* sel_edge, int sel_fields, const LWT_ISO_EDGE* upd_edge, int upd_fields, const LWT_ISO_EDGE* exc_edge, int exc_fields);
+int
+lwt_be_deleteEdges(LWT_TOPOLOGY* topo, const LWT_ISO_EDGE* sel_edge, int sel_fields);
+
+LWT_ELEMID lwt_be_getFaceContainingPoint(LWT_TOPOLOGY* topo, LWPOINT* pt);
+
+int lwt_be_updateTopoGeomEdgeSplit(LWT_TOPOLOGY* topo, LWT_ELEMID split_edge, LWT_ELEMID new_edge1, LWT_ELEMID new_edge2);
+
+
+/************************************************************************
+ *
+ * Internal objects
+ *
+ ************************************************************************/
+
+struct LWT_TOPOLOGY_T
+{
+  const LWT_BE_IFACE *be_iface;
+  LWT_BE_TOPOLOGY *be_topo;
+  int srid;
+  double precision;
+  int hasZ;
+};
+
+#endif /* LIBLWGEOM_TOPO_INTERNAL_H */
diff --git a/liblwgeom/lwalgorithm.c b/liblwgeom/lwalgorithm.c
index 775e039..3340c2d 100644
--- a/liblwgeom/lwalgorithm.c
+++ b/liblwgeom/lwalgorithm.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwalgorithm.c 13252 2015-02-20 17:48:52Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -456,7 +455,7 @@ int lw_segment_intersects(const POINT2D *p1, const POINT2D *p2, const POINT2D *q
 int lwline_crossing_direction(const LWLINE *l1, const LWLINE *l2)
 {
 	int i = 0, j = 0;
-	POINT2D p1, p2, q1, q2;
+	const POINT2D *p1, *p2, *q1, *q2;
 	POINTARRAY *pa1 = NULL, *pa2 = NULL;
 	int cross_left = 0;
 	int cross_right = 0;
@@ -474,26 +473,26 @@ int lwline_crossing_direction(const LWLINE *l1, const LWLINE *l2)
 	LWDEBUGF(4, "l2 = %s", lwgeom_to_ewkt((LWGEOM*)l2));
 
 	/* Initialize first point of q */
-	getPoint2d_p(pa2, 0, &q1);
+	q1 = getPoint2d_cp(pa2, 0);
 
 	for ( i = 1; i < pa2->npoints; i++ )
 	{
 
 		/* Update second point of q to next value */
-		getPoint2d_p(pa2, i, &q2);
+		q2 = getPoint2d_cp(pa2, i);
 
 		/* Initialize first point of p */
-		getPoint2d_p(pa1, 0, &p1);
+		p1 = getPoint2d_cp(pa1, 0);
 
 		for ( j = 1; j < pa1->npoints; j++ )
 		{
 
 			/* Update second point of p to next value */
-			getPoint2d_p(pa1, j, &p2);
+			p2 = getPoint2d_cp(pa1, j);
 
-			this_cross = lw_segment_intersects(&p1, &p2, &q1, &q2);
+			this_cross = lw_segment_intersects(p1, p2, q1, q2);
 
-			LWDEBUGF(4, "i=%d, j=%d (%.8g %.8g, %.8g %.8g)", this_cross, i, j, p1.x, p1.y, p2.x, p2.y);
+			LWDEBUGF(4, "i=%d, j=%d (%.8g %.8g, %.8g %.8g)", this_cross, i, j, p1->x, p1->y, p2->x, p2->y);
 
 			if ( this_cross == SEG_CROSS_LEFT )
 			{
diff --git a/liblwgeom/lwcircstring.c b/liblwgeom/lwcircstring.c
index fa40166..47d9dea 100644
--- a/liblwgeom/lwcircstring.c
+++ b/liblwgeom/lwcircstring.c
@@ -40,10 +40,10 @@ lwcircstring_construct(int srid, GBOX *bbox, POINTARRAY *points)
 	LWCIRCSTRING *result;
 
 	/*
-	        * The first arc requires three points.  Each additional
-	        * arc requires two more points.  Thus the minimum point count
-	        * is three, and the count must be odd.
-	        */
+	* The first arc requires three points.  Each additional
+	* arc requires two more points.  Thus the minimum point count
+	* is three, and the count must be odd.
+	*/
 	if (points->npoints % 2 != 1 || points->npoints < 3)
 	{
 		lwnotice("lwcircstring_construct: invalid point count %d", points->npoints);
@@ -277,14 +277,14 @@ double lwcircstring_length_2d(const LWCIRCSTRING *circ)
 	if ( lwcircstring_is_empty(circ) )
 		return 0.0;
 	
-    return ptarray_arc_length_2d(circ->points);
+	return ptarray_arc_length_2d(circ->points);
 }
 
 /*
  * Returns freshly allocated #LWPOINT that corresponds to the index where.
  * Returns NULL if the geometry is empty or the index invalid.
  */
-LWPOINT* lwcircstring_get_lwpoint(LWCIRCSTRING *circ, int where) {
+LWPOINT* lwcircstring_get_lwpoint(const LWCIRCSTRING *circ, int where) {
 	POINT4D pt;
 	LWPOINT *lwpoint;
 	POINTARRAY *pa;
@@ -298,3 +298,23 @@ LWPOINT* lwcircstring_get_lwpoint(LWCIRCSTRING *circ, int where) {
 	lwpoint = lwpoint_construct(circ->srid, NULL, pa);
 	return lwpoint;
 }
+
+/*
+* Snap to grid 
+*/
+LWCIRCSTRING* lwcircstring_grid(const LWCIRCSTRING *line, const gridspec *grid)
+{
+	LWCIRCSTRING *oline;
+	POINTARRAY *opa;
+
+	opa = ptarray_grid(line->points, grid);
+
+	/* Skip line3d with less then 2 points */
+	if ( opa->npoints < 2 ) return NULL;
+
+	/* TODO: grid bounding box... */
+	oline = lwcircstring_construct(line->srid, NULL, opa);
+
+	return oline;
+}
+
diff --git a/liblwgeom/lwcollection.c b/liblwgeom/lwcollection.c
index d348914..be254dc 100644
--- a/liblwgeom/lwcollection.c
+++ b/liblwgeom/lwcollection.c
@@ -200,6 +200,8 @@ LWCOLLECTION* lwcollection_add_lwgeom(LWCOLLECTION *col, const LWGEOM *geom)
 #if PARANOIA_LEVEL > 1
 	/* See http://trac.osgeo.org/postgis/ticket/2933 */
 	/* Make sure we don't already have a reference to this geom */
+	{
+	int i = 0;
 	for ( i = 0; i < col->ngeoms; i++ )
 	{
 		if ( col->geoms[i] == geom )
@@ -208,6 +210,7 @@ LWCOLLECTION* lwcollection_add_lwgeom(LWCOLLECTION *col, const LWGEOM *geom)
 			return col;
 		}
 	}
+	}
 #endif
 
 	col->geoms[col->ngeoms] = (LWGEOM*)geom;
@@ -226,7 +229,14 @@ lwcollection_segmentize2d(LWCOLLECTION *col, double dist)
 
 	newgeoms = lwalloc(sizeof(LWGEOM *)*col->ngeoms);
 	for (i=0; i<col->ngeoms; i++)
+	{
 		newgeoms[i] = lwgeom_segmentize2d(col->geoms[i], dist);
+		if ( ! newgeoms[i] ) {
+			while (i--) lwgeom_free(newgeoms[i]);
+			lwfree(newgeoms);
+			return NULL;
+		}
+	}
 
 	return lwcollection_construct(col->type, col->srid, NULL, col->ngeoms, newgeoms);
 }
@@ -427,7 +437,7 @@ LWCOLLECTION* lwcollection_extract(LWCOLLECTION *col, int type)
 }
 
 LWGEOM*
-lwcollection_remove_repeated_points(LWCOLLECTION *coll)
+lwcollection_remove_repeated_points(LWCOLLECTION *coll, double tolerance)
 {
 	uint32_t i;
 	LWGEOM **newgeoms;
@@ -435,7 +445,7 @@ lwcollection_remove_repeated_points(LWCOLLECTION *coll)
 	newgeoms = lwalloc(sizeof(LWGEOM *)*coll->ngeoms);
 	for (i=0; i<coll->ngeoms; i++)
 	{
-		newgeoms[i] = lwgeom_remove_repeated_points(coll->geoms[i]);
+		newgeoms[i] = lwgeom_remove_repeated_points(coll->geoms[i], tolerance);
 	}
 
 	return (LWGEOM*)lwcollection_construct(coll->type,
@@ -493,7 +503,7 @@ int lwcollection_count_vertices(LWCOLLECTION *col)
 	return v;
 }
 
-LWCOLLECTION* lwcollection_simplify(const LWCOLLECTION *igeom, double dist)
+LWCOLLECTION* lwcollection_simplify(const LWCOLLECTION *igeom, double dist, int preserve_collapsed)
 {
  	int i;
 	LWCOLLECTION *out = lwcollection_construct_empty(igeom->type, igeom->srid, FLAGS_GET_Z(igeom->flags), FLAGS_GET_M(igeom->flags));
@@ -503,7 +513,7 @@ LWCOLLECTION* lwcollection_simplify(const LWCOLLECTION *igeom, double dist)
 
 	for( i = 0; i < igeom->ngeoms; i++ )
 	{
-		LWGEOM *ngeom = lwgeom_simplify(igeom->geoms[i], dist);
+		LWGEOM *ngeom = lwgeom_simplify(igeom->geoms[i], dist, preserve_collapsed);
 		if ( ngeom ) out = lwcollection_add_lwgeom(out, ngeom);
 	}
 
@@ -554,3 +564,21 @@ lwcollection_startpoint(const LWCOLLECTION* col, POINT4D* pt)
 		
 	return lwgeom_startpoint(col->geoms[0], pt);
 }
+
+
+LWCOLLECTION* lwcollection_grid(const LWCOLLECTION *coll, const gridspec *grid)
+{
+	uint32_t i;
+	LWCOLLECTION *newcoll;
+	
+	newcoll = lwcollection_construct_empty(coll->type, coll->srid, lwgeom_has_z((LWGEOM*)coll), lwgeom_has_m((LWGEOM*)coll));
+
+	for (i=0; i<coll->ngeoms; i++)
+	{
+		LWGEOM *g = lwgeom_grid(coll->geoms[i], grid);
+		if ( g ) 
+			lwcollection_add_lwgeom(newcoll, g);
+	}
+
+	return newcoll;
+}
diff --git a/liblwgeom/lwcompound.c b/liblwgeom/lwcompound.c
index 8583311..ae2286f 100644
--- a/liblwgeom/lwcompound.c
+++ b/liblwgeom/lwcompound.c
@@ -59,7 +59,7 @@ double lwcompound_length(const LWCOMPOUND *comp)
 	LWLINE *line;
 	if ( lwgeom_is_empty((LWGEOM*)comp) )
 		return 0.0;
-	line = lwcompound_segmentize(comp, 32);
+	line = lwcompound_stroke(comp, 32);
 	length = lwline_length(line);
 	lwline_free(line);
 	return length;
@@ -71,7 +71,7 @@ double lwcompound_length_2d(const LWCOMPOUND *comp)
 	LWLINE *line;
 	if ( lwgeom_is_empty((LWGEOM*)comp) )
 		return 0.0;
-	line = lwcompound_segmentize(comp, 32);
+	line = lwcompound_stroke(comp, 32);
 	length = lwline_length_2d(line);
 	lwline_free(line);
 	return length;
@@ -114,8 +114,8 @@ int lwcompound_add_lwgeom(LWCOMPOUND *comp, LWGEOM *geom)
 LWCOMPOUND *
 lwcompound_construct_empty(int srid, char hasz, char hasm)
 {
-        LWCOMPOUND *ret = (LWCOMPOUND*)lwcollection_construct_empty(COMPOUNDTYPE, srid, hasz, hasm);
-        return ret;
+	LWCOMPOUND *ret = (LWCOMPOUND*)lwcollection_construct_empty(COMPOUNDTYPE, srid, hasz, hasm);
+	return ret;
 }
 
 int lwgeom_contains_point(const LWGEOM *geom, const POINT2D *pt)
@@ -191,3 +191,73 @@ lwcompound_contains_point(const LWCOMPOUND *comp, const POINT2D *pt)
 	/* Inside */
 	return LW_INSIDE;
 }	
+
+LWCOMPOUND *
+lwcompound_construct_from_lwline(const LWLINE *lwline)
+{
+  LWCOMPOUND* ogeom = lwcompound_construct_empty(lwline->srid, FLAGS_GET_Z(lwline->flags), FLAGS_GET_M(lwline->flags));
+  lwcompound_add_lwgeom(ogeom, lwgeom_clone((LWGEOM*)lwline));
+	/* ogeom->bbox = lwline->bbox; */
+  return ogeom;
+}
+
+LWPOINT* 
+lwcompound_get_lwpoint(const LWCOMPOUND *lwcmp, int where)
+{
+	int i;
+	int count = 0;
+	int npoints = 0;
+	if ( lwgeom_is_empty((LWGEOM*)lwcmp) )
+		return NULL;
+	
+	npoints = lwgeom_count_vertices((LWGEOM*)lwcmp);
+	if ( where < 0 || where >= npoints )
+	{
+		lwerror("%s: index %d is not in range of number of vertices (%d) in input", __func__, where, npoints);
+		return NULL;
+	}
+	
+	for ( i = 0; i < lwcmp->ngeoms; i++ )
+	{
+		LWGEOM* part = lwcmp->geoms[i];
+		int npoints_part = lwgeom_count_vertices(part);
+		if ( where >= count && where < count + npoints_part )
+		{
+			return lwline_get_lwpoint((LWLINE*)part, where - count);
+		}
+		else
+		{
+			count += npoints_part;
+		}
+	}
+
+	return NULL;	
+}
+
+
+
+LWPOINT *
+lwcompound_get_startpoint(const LWCOMPOUND *lwcmp)
+{
+	return lwcompound_get_lwpoint(lwcmp, 0);
+}
+
+LWPOINT *
+lwcompound_get_endpoint(const LWCOMPOUND *lwcmp)
+{
+	LWLINE *lwline;
+	if ( lwcmp->ngeoms < 1 )
+	{
+		return NULL;
+	}
+	
+	lwline = (LWLINE*)(lwcmp->geoms[lwcmp->ngeoms-1]);
+
+	if ( (!lwline) || (!lwline->points) || (lwline->points->npoints < 1) )
+	{
+		return NULL;
+	}
+	
+	return lwline_get_lwpoint(lwline, lwline->points->npoints-1);
+}
+
diff --git a/liblwgeom/lwcurvepoly.c b/liblwgeom/lwcurvepoly.c
index 5619a70..8a6478c 100644
--- a/liblwgeom/lwcurvepoly.c
+++ b/liblwgeom/lwcurvepoly.c
@@ -123,7 +123,7 @@ lwcurvepoly_area(const LWCURVEPOLY *curvepoly)
 	LWPOLY *poly;
 	if( lwgeom_is_empty((LWGEOM*)curvepoly) )
 		return 0.0;
-	poly = lwcurvepoly_segmentize(curvepoly, 32);
+	poly = lwcurvepoly_stroke(curvepoly, 32);
 	area = lwpoly_area(poly);
 	lwpoly_free(poly);
 	return area;
diff --git a/liblwgeom/lwgeodetic.c b/liblwgeom/lwgeodetic.c
index 1570604..ed42180 100644
--- a/liblwgeom/lwgeodetic.c
+++ b/liblwgeom/lwgeodetic.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeodetic.c 12674 2014-06-27 07:34:45Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -166,8 +165,8 @@ gbox_angular_height(const GBOX* gbox)
 {
 	double d[6];
 	int i;
-	double zmin = MAXFLOAT;
-	double zmax = -1 * MAXFLOAT;
+	double zmin = FLT_MAX;
+	double zmax = -1 * FLT_MAX;
 	POINT3D pt;
 	
 	/* Take a copy of the box corners so we can treat them as a list */
@@ -212,7 +211,7 @@ gbox_angular_width(const GBOX* gbox)
 	/* Find the vector furthest from our seed vector */
 	for ( j = 0; j < 2; j++ )
 	{
-		maxangle = -1 * MAXFLOAT;
+		maxangle = -1 * FLT_MAX;
 		for ( i = 0; i < 4; i++ )
 		{
 			double angle, dotprod;
@@ -297,7 +296,7 @@ static int gbox_check_poles(GBOX *gbox)
 	LWDEBUGF(4, "gbox %s", gbox_to_string(gbox));
 	/* Z axis */
 	if ( gbox->xmin < 0.0 && gbox->xmax > 0.0 &&
-	        gbox->ymin < 0.0 && gbox->ymax > 0.0 )
+	     gbox->ymin < 0.0 && gbox->ymax > 0.0 )
 	{
 		if ( (gbox->zmin + gbox->zmax) > 0.0 )
 		{
@@ -314,7 +313,7 @@ static int gbox_check_poles(GBOX *gbox)
 
 	/* Y axis */
 	if ( gbox->xmin < 0.0 && gbox->xmax > 0.0 &&
-	        gbox->zmin < 0.0 && gbox->zmax > 0.0 )
+	     gbox->zmin < 0.0 && gbox->zmax > 0.0 )
 	{
 		if ( gbox->ymin + gbox->ymax > 0.0 )
 		{
@@ -331,7 +330,7 @@ static int gbox_check_poles(GBOX *gbox)
 
 	/* X axis */
 	if ( gbox->ymin < 0.0 && gbox->ymax > 0.0 &&
-	        gbox->zmin < 0.0 && gbox->zmax > 0.0 )
+	     gbox->zmin < 0.0 && gbox->zmax > 0.0 )
 	{
 		if ( gbox->xmin + gbox->xmax > 0.0 )
 		{
@@ -443,10 +442,12 @@ static void vector_scale(POINT3D *n, double scale)
 	return;
 }
 
-// static inline double vector_magnitude(const POINT3D* v)
-// {
-// 	return sqrt(v->x*v->x + v->y*v->y + v->z*v->z);
-// }
+/*
+* static inline double vector_magnitude(const POINT3D* v)
+* {
+*	return sqrt(v->x*v->x + v->y*v->y + v->z*v->z);
+* }
+*/
 
 /**
 * Angle between two unit vectors
@@ -806,7 +807,7 @@ int edge_contains_coplanar_point(const GEOGRAPHIC_EDGE *e, const GEOGRAPHIC_POIN
 			return LW_FALSE;
 
 		if ( ( g.start.lat <= q.lat && q.lat <= g.end.lat ) ||
-		        ( g.end.lat <= q.lat && q.lat <= g.start.lat ) )
+		     ( g.end.lat <= q.lat && q.lat <= g.start.lat ) )
 		{
 			return LW_TRUE;
 		}
@@ -880,7 +881,7 @@ int edge_contains_coplanar_point(const GEOGRAPHIC_EDGE *e, const GEOGRAPHIC_POIN
 	}
 
 	if ( ( g.start.lon <= q.lon && q.lon <= g.end.lon ) ||
-	        ( g.end.lon <= q.lon && q.lon <= g.start.lon ) )
+	     ( g.end.lon <= q.lon && q.lon <= g.start.lon ) )
 	{
 		LWDEBUG(4, "true, this edge contains point");
 		return LW_TRUE;
@@ -1171,7 +1172,7 @@ double edge_distance_to_point(const GEOGRAPHIC_EDGE *e, const GEOGRAPHIC_POINT *
 	/* Zero length edge, */
 	if ( geographic_point_equals(&(e->start), &(e->end)) )
 	{
-        *closest = e->start;
+		*closest = e->start;
 		return sphere_distance(&(e->start), gp);
 	}
 
@@ -1733,13 +1734,13 @@ static double ptarray_distance_spheroid(const POINTARRAY *pa1, const POINTARRAY
 	GEOGRAPHIC_POINT g1, g2;
 	GEOGRAPHIC_POINT nearest1, nearest2;
 	POINT3D A1, A2, B1, B2;
-	POINT2D p;
+	const POINT2D *p;
 	double distance;
 	int i, j;
 	int use_sphere = (s->a == s->b ? 1 : 0);
 
 	/* Make result really big, so that everything will be smaller than it */
-	distance = MAXFLOAT;
+	distance = FLT_MAX;
 
 	/* Empty point arrays? Return negative */
 	if ( pa1->npoints == 0 || pa2->npoints == 0 )
@@ -1748,10 +1749,10 @@ static double ptarray_distance_spheroid(const POINTARRAY *pa1, const POINTARRAY
 	/* Handle point/point case here */
 	if ( pa1->npoints == 1 && pa2->npoints == 1 )
 	{
-		getPoint2d_p(pa1, 0, &p);
-		geographic_point_init(p.x, p.y, &g1);
-		getPoint2d_p(pa2, 0, &p);
-		geographic_point_init(p.x, p.y, &g2);
+		p = getPoint2d_cp(pa1, 0);
+		geographic_point_init(p->x, p->y, &g1);
+		p = getPoint2d_cp(pa2, 0);
+		geographic_point_init(p->x, p->y, &g2);
 		/* Sphere special case, axes equal */
 		distance = s->radius * sphere_distance(&g1, &g2);
 		if ( use_sphere )
@@ -1784,19 +1785,19 @@ static double ptarray_distance_spheroid(const POINTARRAY *pa1, const POINTARRAY
 		}
 
 		/* Initialize our point */
-		getPoint2d_p(pa_one, 0, &p);
-		geographic_point_init(p.x, p.y, &g1);
+		p = getPoint2d_cp(pa_one, 0);
+		geographic_point_init(p->x, p->y, &g1);
 
 		/* Initialize start of line */
-		getPoint2d_p(pa_many, 0, &p);
-		geographic_point_init(p.x, p.y, &(e1.start));
+		p = getPoint2d_cp(pa_many, 0);
+		geographic_point_init(p->x, p->y, &(e1.start));
 
 		/* Iterate through the edges in our line */
 		for ( i = 1; i < pa_many->npoints; i++ )
 		{
 			double d;
-			getPoint2d_p(pa_many, i, &p);
-			geographic_point_init(p.x, p.y, &(e1.end));
+			p = getPoint2d_cp(pa_many, i);
+			geographic_point_init(p->x, p->y, &(e1.end));
 			/* Get the spherical distance between point and edge */
 			d = s->radius * edge_distance_to_point(&e1, &g1, &g2);
 			/* New shortest distance! Record this distance / location */
@@ -1836,32 +1837,33 @@ static double ptarray_distance_spheroid(const POINTARRAY *pa1, const POINTARRAY
 		/* On spheroid, calculate final answer based on closest approach */
 		else
 			return spheroid_distance(&g1, &nearest2, s);
+
 	}
 
 	/* Initialize start of line 1 */
-	getPoint2d_p(pa1, 0, &p);
-	geographic_point_init(p.x, p.y, &(e1.start));
+	p = getPoint2d_cp(pa1, 0);
+	geographic_point_init(p->x, p->y, &(e1.start));
 	geog2cart(&(e1.start), &A1);
 
 
 	/* Handle line/line case */
 	for ( i = 1; i < pa1->npoints; i++ )
 	{
-		getPoint2d_p(pa1, i, &p);
-		geographic_point_init(p.x, p.y, &(e1.end));
+		p = getPoint2d_cp(pa1, i);
+		geographic_point_init(p->x, p->y, &(e1.end));
 		geog2cart(&(e1.end), &A2);
 
 		/* Initialize start of line 2 */
-		getPoint2d_p(pa2, 0, &p);
-		geographic_point_init(p.x, p.y, &(e2.start));
+		p = getPoint2d_cp(pa2, 0);
+		geographic_point_init(p->x, p->y, &(e2.start));
 		geog2cart(&(e2.start), &B1);
 
 		for ( j = 1; j < pa2->npoints; j++ )
 		{
 			double d;
 
-			getPoint2d_p(pa2, j, &p);
-			geographic_point_init(p.x, p.y, &(e2.end));
+			p = getPoint2d_cp(pa2, j);
+			geographic_point_init(p->x, p->y, &(e2.end));
 			geog2cart(&(e2.end), &B2);
 
 			LWDEBUGF(4, "e1.start == GPOINT(%.6g %.6g) ", e1.start.lat, e1.start.lon);
@@ -2117,7 +2119,7 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
 
 	/* Point/line combinations can all be handled with simple point array iterations */
 	if ( ( type1 == POINTTYPE || type1 == LINETYPE ) &&
-	        ( type2 == POINTTYPE || type2 == LINETYPE ) )
+	     ( type2 == POINTTYPE || type2 == LINETYPE ) )
 	{
 		POINTARRAY *pa1, *pa2;
 
@@ -2136,12 +2138,12 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
 
 	/* Point/Polygon cases, if point-in-poly, return zero, else return distance. */
 	if ( ( type1 == POLYGONTYPE && type2 == POINTTYPE ) ||
-	        ( type2 == POLYGONTYPE && type1 == POINTTYPE ) )
+	     ( type2 == POLYGONTYPE && type1 == POINTTYPE ) )
 	{
-		POINT2D p;
+		const POINT2D *p;
 		LWPOLY *lwpoly;
 		LWPOINT *lwpt;
-		double distance = MAXFLOAT;
+		double distance = FLT_MAX;
 		int i;
 
 		if ( type1 == POINTTYPE )
@@ -2154,10 +2156,10 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
 			lwpt = (LWPOINT*)lwgeom2;
 			lwpoly = (LWPOLY*)lwgeom1;
 		}
-		getPoint2d_p(lwpt->point, 0, &p);
+		p = getPoint2d_cp(lwpt->point, 0);
 
 		/* Point in polygon implies zero distance */
-		if ( lwpoly_covers_point2d(lwpoly, &p) )
+		if ( lwpoly_covers_point2d(lwpoly, p) )
 		{
 			return 0.0;
 		}
@@ -2176,12 +2178,12 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
 
 	/* Line/polygon case, if start point-in-poly, return zero, else return distance. */
 	if ( ( type1 == POLYGONTYPE && type2 == LINETYPE ) ||
-	        ( type2 == POLYGONTYPE && type1 == LINETYPE ) )
+	     ( type2 == POLYGONTYPE && type1 == LINETYPE ) )
 	{
-		POINT2D p;
+		const POINT2D *p;
 		LWPOLY *lwpoly;
 		LWLINE *lwline;
-		double distance = MAXFLOAT;
+		double distance = FLT_MAX;
 		int i;
 
 		if ( type1 == LINETYPE )
@@ -2194,12 +2196,12 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
 			lwline = (LWLINE*)lwgeom2;
 			lwpoly = (LWPOLY*)lwgeom1;
 		}
-		getPoint2d_p(lwline->points, 0, &p);
+		p = getPoint2d_cp(lwline->points, 0);
 
 		LWDEBUG(4, "checking if a point of line is in polygon");
 
 		/* Point in polygon implies zero distance */
-		if ( lwpoly_covers_point2d(lwpoly, &p) ) 
+		if ( lwpoly_covers_point2d(lwpoly, p) ) 
 			return 0.0;
 
 		LWDEBUG(4, "checking ring distances");
@@ -2221,22 +2223,22 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
 
 	/* Polygon/polygon case, if start point-in-poly, return zero, else return distance. */
 	if ( ( type1 == POLYGONTYPE && type2 == POLYGONTYPE ) ||
-	        ( type2 == POLYGONTYPE && type1 == POLYGONTYPE ) )
+	     ( type2 == POLYGONTYPE && type1 == POLYGONTYPE ) )
 	{
-		POINT2D p;
+		const POINT2D *p;
 		LWPOLY *lwpoly1 = (LWPOLY*)lwgeom1;
 		LWPOLY *lwpoly2 = (LWPOLY*)lwgeom2;
-		double distance = MAXFLOAT;
+		double distance = FLT_MAX;
 		int i, j;
 
 		/* Point of 2 in polygon 1 implies zero distance */
-		getPoint2d_p(lwpoly1->rings[0], 0, &p);
-		if ( lwpoly_covers_point2d(lwpoly2, &p) )
+		p = getPoint2d_cp(lwpoly1->rings[0], 0);
+		if ( lwpoly_covers_point2d(lwpoly2, p) )
 			return 0.0;
 
 		/* Point of 1 in polygon 2 implies zero distance */
-		getPoint2d_p(lwpoly2->rings[0], 0, &p);
-		if ( lwpoly_covers_point2d(lwpoly1, &p) )
+		p = getPoint2d_cp(lwpoly2->rings[0], 0);
+		if ( lwpoly_covers_point2d(lwpoly1, p) )
 			return 0.0;
 
 		/* Not contained, so what's the actual distance? */
@@ -2258,7 +2260,7 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
 	if ( lwtype_is_collection(type1) )
 	{
 		int i;
-		double distance = MAXFLOAT;
+		double distance = FLT_MAX;
 		LWCOLLECTION *col = (LWCOLLECTION*)lwgeom1;
 
 		for ( i = 0; i < col->ngeoms; i++ )
@@ -2276,7 +2278,7 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
 	if ( lwtype_is_collection(type2) )
 	{
 		int i;
-		double distance = MAXFLOAT;
+		double distance = FLT_MAX;
 		LWCOLLECTION *col = (LWCOLLECTION*)lwgeom2;
 
 		for ( i = 0; i < col->ngeoms; i++ )
diff --git a/liblwgeom/lwgeodetic.h b/liblwgeom/lwgeodetic.h
index 75420e4..8e4ddc9 100644
--- a/liblwgeom/lwgeodetic.h
+++ b/liblwgeom/lwgeodetic.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeodetic.h 13697 2015-06-24 19:07:17Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -57,8 +56,8 @@ typedef struct
 /**
 * Conversion functions
 */
-#define deg2rad(d) (PI * (d) / 180.0)
-#define rad2deg(r) (180.0 * (r) / PI)
+#define deg2rad(d) (M_PI * (d) / 180.0)
+#define rad2deg(r) (180.0 * (r) / M_PI)
 
 /**
 * Ape a java function
@@ -144,3 +143,5 @@ int spheroid_project(const GEOGRAPHIC_POINT *r, const SPHEROID *spheroid, double
 * Put an index pointer onto LWGEOM itself, and cache the indexed LWGEOM instead of a bare tree
 * only primitive objects should get a tree
 */
+
+
diff --git a/liblwgeom/lwgeodetic_tree.c b/liblwgeom/lwgeodetic_tree.c
index c972fd6..3426bfd 100644
--- a/liblwgeom/lwgeodetic_tree.c
+++ b/liblwgeom/lwgeodetic_tree.c
@@ -81,10 +81,10 @@ circ_node_leaf_new(const POINTARRAY* pa, int i)
 	node->nodes = NULL;
 	node->edge_num = i;
     
-    /* Zero out metadata */
-    node->pt_outside.x = 0.0;
-    node->pt_outside.y = 0.0;
-    node->geom_type = 0;
+	/* Zero out metadata */
+	node->pt_outside.x = 0.0;
+	node->pt_outside.y = 0.0;
+	node->geom_type = 0;
 	
 	return node;
 }
@@ -102,9 +102,9 @@ circ_node_leaf_point_new(const POINTARRAY* pa)
 	tree->nodes = NULL;
 	tree->num_nodes = 0;
 	tree->edge_num = 0;
-    tree->geom_type = POINTTYPE;
-    tree->pt_outside.x = 0.0;
-    tree->pt_outside.y = 0.0;
+	tree->geom_type = POINTTYPE;
+	tree->pt_outside.x = 0.0;
+	tree->pt_outside.y = 0.0;
 	return tree;
 }
 
@@ -315,9 +315,9 @@ circ_node_internal_new(CIRC_NODE** c, int num_nodes)
 	node->num_nodes = num_nodes;
 	node->nodes = c;
 	node->edge_num = -1;
-    node->geom_type = new_geom_type;
-    node->pt_outside.x = 0.0;
-    node->pt_outside.y = 0.0;
+	node->geom_type = new_geom_type;
+	node->pt_outside.x = 0.0;
+	node->pt_outside.y = 0.0;
 	return node;
 }
 
@@ -388,8 +388,9 @@ circ_nodes_merge(CIRC_NODE** nodes, int num_nodes)
 	int num_parents = 0;
 	int j;
 
-	// TODO, roll geom_type *up* as tree is built, changing to collection types as simple types are merged 
-	// TODO, change the distance algorithm to drive down to simple types first, test pip on poly/other cases, then test edges
+	/* TODO, roll geom_type *up* as tree is built, changing to collection types as simple types are merged 
+	 * TODO, change the distance algorithm to drive down to simple types first, test pip on poly/other cases, then test edges
+	 */
 
 	while( num_children > 1 )
 	{
@@ -433,15 +434,15 @@ circ_nodes_merge(CIRC_NODE** nodes, int num_nodes)
 int circ_tree_get_point(const CIRC_NODE* node, POINT2D* pt)
 {
 	if ( circ_node_is_leaf(node) )
-    {
-        pt->x = node->p1->x;
-        pt->y = node->p1->y;
-        return LW_SUCCESS;
-    }
-    else
-    {
-        return circ_tree_get_point(node->nodes[0], pt);
-    }
+	{
+		pt->x = node->p1->x;
+		pt->y = node->p1->y;
+		return LW_SUCCESS;
+	}
+	else
+	{
+		return circ_tree_get_point(node->nodes[0], pt);
+	}
 }
 
 
@@ -552,10 +553,13 @@ circ_node_max_distance(const CIRC_NODE *n1, const CIRC_NODE *n2)
 double
 circ_tree_distance_tree(const CIRC_NODE* n1, const CIRC_NODE* n2, const SPHEROID* spheroid, double threshold)
 {
-	double min_dist = MAXFLOAT;
-	double max_dist = MAXFLOAT;
+	double min_dist = FLT_MAX;
+	double max_dist = FLT_MAX;
 	GEOGRAPHIC_POINT closest1, closest2;
-	double threshold_radians = threshold / spheroid->radius;
+	/* Quietly decrease the threshold just a little to avoid cases where */
+	/* the actual spheroid distance is larger than the sphere distance */
+	/* causing the return value to be larger than the threshold value */
+	double threshold_radians = 0.95 * threshold / spheroid->radius;
 	
 	circ_tree_distance_tree_internal(n1, n2, threshold_radians, &min_dist, &max_dist, &closest1, &closest2);
 
@@ -578,18 +582,20 @@ circ_tree_distance_tree_internal(const CIRC_NODE* n1, const CIRC_NODE* n2, doubl
 	int i;
 	
 	LWDEBUGF(4, "entered, min_dist=%.8g max_dist=%.8g, type1=%d, type2=%d", *min_dist, *max_dist, n1->geom_type, n2->geom_type);
-//	circ_tree_print(n1, 0);
-//	circ_tree_print(n2, 0);
+/*
+	circ_tree_print(n1, 0);
+	circ_tree_print(n2, 0);
+*/
 	
 	/* Short circuit if we've already hit the minimum */
-	if( *min_dist <= threshold )
+	if( *min_dist < threshold || *min_dist == 0.0 )
 		return *min_dist;
 	
 	/* If your minimum is greater than anyone's maximum, you can't hold the winner */
 	if( circ_node_min_distance(n1, n2) > *max_dist )
 	{
 		LWDEBUGF(4, "pruning pair %p, %p", n1, n2);		
-		return MAXFLOAT;
+		return FLT_MAX;
 	}
 	
 	/* If your maximum is a new low, we'll use that as our new global tolerance */
@@ -707,7 +713,7 @@ circ_tree_distance_tree_internal(const CIRC_NODE* n1, const CIRC_NODE* n2, doubl
 	}
 	else
 	{	
-		d_min = MAXFLOAT;
+		d_min = FLT_MAX;
 		/* Drive the recursion into the COLLECTION types first so we end up with */
 		/* pairings of primitive geometries that can be forced into the point-in-polygon */
 		/* tests above. */
@@ -809,8 +815,8 @@ static CIRC_NODE*
 lwpoint_calculate_circ_tree(const LWPOINT* lwpoint)
 {
 	CIRC_NODE* node;
-    node = circ_tree_new(lwpoint->point);
-    node->geom_type = lwgeom_get_type((LWGEOM*)lwpoint);;
+	node = circ_tree_new(lwpoint->point);
+	node->geom_type = lwgeom_get_type((LWGEOM*)lwpoint);;
 	return node;
 }
 
@@ -818,8 +824,8 @@ static CIRC_NODE*
 lwline_calculate_circ_tree(const LWLINE* lwline)
 {
 	CIRC_NODE* node;
-    node = circ_tree_new(lwline->points);
-    node->geom_type = lwgeom_get_type((LWGEOM*)lwline);
+	node = circ_tree_new(lwline->points);
+	node->geom_type = lwgeom_get_type((LWGEOM*)lwline);
 	return node;
 }
 
@@ -855,7 +861,7 @@ lwpoly_calculate_circ_tree(const LWPOLY* lwpoly)
 
 	/* Metatdata about polygons, we need this to apply P-i-P tests */
 	/* selectively when doing distance calculations */
-    node->geom_type = lwgeom_get_type((LWGEOM*)lwpoly);
+	node->geom_type = lwgeom_get_type((LWGEOM*)lwpoly);
 	lwpoly_pt_outside(lwpoly, &(node->pt_outside));
 	
 	return node;
@@ -886,9 +892,7 @@ lwcollection_calculate_circ_tree(const LWCOLLECTION* lwcol)
 	node = circ_nodes_merge(nodes, j);
 	/* Don't need the working list any more */
 	lwfree(nodes);
-	
-    node->geom_type = lwgeom_get_type((LWGEOM*)lwcol);
-    
+	node->geom_type = lwgeom_get_type((LWGEOM*)lwcol);
 	return node;
 }
 
diff --git a/liblwgeom/lwgeodetic_tree.h b/liblwgeom/lwgeodetic_tree.h
index 806a0e4..af772bb 100644
--- a/liblwgeom/lwgeodetic_tree.h
+++ b/liblwgeom/lwgeodetic_tree.h
@@ -31,3 +31,5 @@ CIRC_NODE* lwgeom_calculate_circ_tree(const LWGEOM* lwgeom);
 int circ_tree_get_point(const CIRC_NODE* node, POINT2D* pt);
 
 #endif /* _LWGEODETIC_TREE_H */
+
+
diff --git a/liblwgeom/lwgeom.c b/liblwgeom/lwgeom.c
index cde9183..f07b4ac 100644
--- a/liblwgeom/lwgeom.c
+++ b/liblwgeom/lwgeom.c
@@ -317,6 +317,50 @@ lwgeom_as_multi(const LWGEOM *lwgeom)
 	return ogeom;
 }
 
+/**
+* Create a new LWGEOM of the appropriate CURVE* type.
+*/
+LWGEOM *
+lwgeom_as_curve(const LWGEOM *lwgeom)
+{
+	LWGEOM *ogeom;
+	int type = lwgeom->type;
+	/*
+	int hasz = FLAGS_GET_Z(lwgeom->flags);
+	int hasm = FLAGS_GET_M(lwgeom->flags);
+	int srid = lwgeom->srid;
+	*/
+
+	switch(type)
+	{
+		case LINETYPE:
+			/* turn to COMPOUNDCURVE */
+			ogeom = (LWGEOM*)lwcompound_construct_from_lwline((LWLINE*)lwgeom);
+			break;
+		case POLYGONTYPE:
+			ogeom = (LWGEOM*)lwcurvepoly_construct_from_lwpoly(lwgeom_as_lwpoly(lwgeom));
+			break;
+		case MULTILINETYPE:
+			/* turn to MULTICURVE */
+			ogeom = lwgeom_clone(lwgeom);
+			ogeom->type = MULTICURVETYPE;
+			break;
+		case MULTIPOLYGONTYPE:
+			/* turn to MULTISURFACE */
+			ogeom = lwgeom_clone(lwgeom);
+			ogeom->type = MULTISURFACETYPE;
+			break;
+		case COLLECTIONTYPE:
+		default:
+			ogeom = lwgeom_clone(lwgeom);
+			break;
+	}
+
+	/* TODO: copy bbox from input geom ? */
+
+	return ogeom;
+}
+
 
 /**
 * Free the containing LWGEOM and the associated BOX. Leave the underlying 
@@ -521,18 +565,18 @@ lwgeom_same(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2)
 int
 lwpoint_inside_circle(const LWPOINT *p, double cx, double cy, double rad)
 {
+	const POINT2D *pt;
 	POINT2D center;
-	POINT2D pt;
 
 	if ( ! p || ! p->point )
 		return LW_FALSE;
 		
-	getPoint2d_p(p->point, 0, &pt);
+	pt = getPoint2d_cp(p->point, 0);
 
 	center.x = cx;
 	center.y = cy;
 
-	if ( distance2d_pt_pt(&pt, &center) < rad ) 
+	if ( distance2d_pt_pt(pt, &center) < rad ) 
 		return LW_TRUE;
 
 	return LW_FALSE;
@@ -714,7 +758,7 @@ lwgeom_force_sfs(LWGEOM *geom, int version)
 			case CURVEPOLYTYPE:
 			case MULTICURVETYPE:
 			case MULTISURFACETYPE:
-				return lwgeom_segmentize(geom, 32);
+				return lwgeom_stroke(geom, 32);
 
 			case COLLECTIONTYPE:
 				col = (LWCOLLECTION*)geom;
@@ -738,7 +782,7 @@ lwgeom_force_sfs(LWGEOM *geom, int version)
 		case CURVEPOLYTYPE:
 		case MULTICURVETYPE:
 		case MULTISURFACETYPE:
-			return lwgeom_segmentize(geom, 32);
+			return lwgeom_stroke(geom, 32);
 
 		/* SFS 1.2 types */
 		case TRIANGLETYPE:
@@ -1063,7 +1107,31 @@ int lwgeom_needs_bbox(const LWGEOM *geom)
 	{
 		return LW_FALSE;
 	}
-	return LW_TRUE;
+	else if ( geom->type == LINETYPE )
+	{
+		if ( lwgeom_count_vertices(geom) <= 2 )
+			return LW_FALSE;
+		else
+			return LW_TRUE;
+	}
+	else if ( geom->type == MULTIPOINTTYPE )
+	{
+		if ( ((LWCOLLECTION*)geom)->ngeoms == 1 )
+			return LW_FALSE;
+		else
+			return LW_TRUE;
+	}
+	else if ( geom->type == MULTILINETYPE )
+	{
+		if ( ((LWCOLLECTION*)geom)->ngeoms == 1 && lwgeom_count_vertices(geom) <= 2 )
+			return LW_FALSE;
+		else
+			return LW_TRUE;
+	}
+	else
+	{
+		return LW_TRUE;
+	}
 }
 
 /**
@@ -1108,8 +1176,8 @@ int lwgeom_count_vertices(const LWGEOM *geom)
 		result = lwcollection_count_vertices((LWCOLLECTION *)geom);
 		break;
 	default:
-		lwerror("lwgeom_count_vertices: unsupported input geometry type: %s",
-		        lwtype_name(geom->type));
+		lwerror("%s: unsupported input geometry type: %s",
+		        __func__, lwtype_name(geom->type));
 		break;
 	}
 	LWDEBUGF(3, "counted %d vertices", result);
@@ -1169,8 +1237,8 @@ int lwgeom_dimension(const LWGEOM *geom)
 		return maxdim;
 	}
 	default:
-		lwerror("lwgeom_dimension: unsupported input geometry type: %s",
-		        lwtype_name(geom->type));
+		lwerror("%s: unsupported input geometry type: %s",
+		        __func__, lwtype_name(geom->type));
 	}
 	return -1;
 }
@@ -1336,7 +1404,7 @@ extern int lwgeom_dimensionality(LWGEOM *geom)
 	return 0;
 }
 
-extern LWGEOM* lwgeom_remove_repeated_points(LWGEOM *in)
+extern LWGEOM* lwgeom_remove_repeated_points(LWGEOM *in, double tolerance)
 {
 	LWDEBUGF(4, "lwgeom_remove_repeated_points got type %s",
 	         lwtype_name(in->type));
@@ -1344,19 +1412,19 @@ extern LWGEOM* lwgeom_remove_repeated_points(LWGEOM *in)
 	switch (in->type)
 	{
 	case MULTIPOINTTYPE:
-		return lwmpoint_remove_repeated_points((LWMPOINT*)in);
+		return lwmpoint_remove_repeated_points((LWMPOINT*)in, tolerance);
 		break;
 	case LINETYPE:
-		return lwline_remove_repeated_points((LWLINE*)in);
+		return lwline_remove_repeated_points((LWLINE*)in, tolerance);
 
 	case MULTILINETYPE:
 	case COLLECTIONTYPE:
 	case MULTIPOLYGONTYPE:
 	case POLYHEDRALSURFACETYPE:
-		return lwcollection_remove_repeated_points((LWCOLLECTION *)in);
+		return lwcollection_remove_repeated_points((LWCOLLECTION *)in, tolerance);
 
 	case POLYGONTYPE:
-		return lwpoly_remove_repeated_points((LWPOLY *)in);
+		return lwpoly_remove_repeated_points((LWPOLY *)in, tolerance);
 		break;
 
 	case POINTTYPE:
@@ -1374,8 +1442,8 @@ extern LWGEOM* lwgeom_remove_repeated_points(LWGEOM *in)
 		return in;
 
 	default:
-		lwnotice("lwgeom_remove_repeated_points: unsupported geometry type: %s",
-		         lwtype_name(in->type));
+		lwnotice("%s: unsupported geometry type: %s",
+		         __func__, lwtype_name(in->type));
 		return in;
 		break;
 	}
@@ -1384,12 +1452,24 @@ extern LWGEOM* lwgeom_remove_repeated_points(LWGEOM *in)
 
 LWGEOM* lwgeom_flip_coordinates(LWGEOM *in)
 {
+  lwgeom_swap_ordinates(in,LWORD_X,LWORD_Y);
+  return in;
+}
+
+void lwgeom_swap_ordinates(LWGEOM *in, LWORD o1, LWORD o2)
+{
 	LWCOLLECTION *col;
 	LWPOLY *poly;
 	int i;
 
-	if ( (!in) || lwgeom_is_empty(in) )
-		return in;
+#if PARANOIA_LEVEL > 0
+  assert(o1 < 4);
+  assert(o2 < 4);
+#endif
+
+	if ( (!in) || lwgeom_is_empty(in) ) return;
+
+  /* TODO: check for lwgeom NOT having the specified dimension ? */
 
 	LWDEBUGF(4, "lwgeom_flip_coordinates, got type: %s",
 	         lwtype_name(in->type));
@@ -1397,27 +1477,27 @@ LWGEOM* lwgeom_flip_coordinates(LWGEOM *in)
 	switch (in->type)
 	{
 	case POINTTYPE:
-		ptarray_flip_coordinates(lwgeom_as_lwpoint(in)->point);
+		ptarray_swap_ordinates(lwgeom_as_lwpoint(in)->point, o1, o2);
 		break;
 
 	case LINETYPE:
-		ptarray_flip_coordinates(lwgeom_as_lwline(in)->points);
+		ptarray_swap_ordinates(lwgeom_as_lwline(in)->points, o1, o2);
 		break;
 
 	case CIRCSTRINGTYPE:
-		ptarray_flip_coordinates(lwgeom_as_lwcircstring(in)->points);
+		ptarray_swap_ordinates(lwgeom_as_lwcircstring(in)->points, o1, o2);
 		break;
 
 	case POLYGONTYPE:
 		poly = (LWPOLY *) in;
 		for (i=0; i<poly->nrings; i++)
 		{
-			ptarray_flip_coordinates(poly->rings[i]);
+			ptarray_swap_ordinates(poly->rings[i], o1, o2);
 		}
 		break;
 
 	case TRIANGLETYPE:
-		ptarray_flip_coordinates(lwgeom_as_lwtriangle(in)->points);
+		ptarray_swap_ordinates(lwgeom_as_lwtriangle(in)->points, o1, o2);
 		break;
 
 	case MULTIPOINTTYPE:
@@ -1433,22 +1513,22 @@ LWGEOM* lwgeom_flip_coordinates(LWGEOM *in)
 		col = (LWCOLLECTION *) in;
 		for (i=0; i<col->ngeoms; i++)
 		{
-			lwgeom_flip_coordinates(col->geoms[i]);
+			lwgeom_swap_ordinates(col->geoms[i], o1, o2);
 		}
 		break;
 
 	default:
-		lwerror("lwgeom_flip_coordinates: unsupported geometry type: %s",
+		lwerror("lwgeom_swap_ordinates: unsupported geometry type: %s",
 		        lwtype_name(in->type));
-		return NULL;
+		return;
 	}
 
-  /* only refresh bbox if X or Y changed */
-	if ( in->bbox ) {
+	/* only refresh bbox if X or Y changed */
+	if ( in->bbox && (o1 < 2 || o2 < 2) ) 
+	{
 		lwgeom_drop_bbox(in);
 		lwgeom_add_bbox(in);
 	}
-	return in;
 }
 
 void lwgeom_set_srid(LWGEOM *geom, int32_t srid)
@@ -1470,7 +1550,7 @@ void lwgeom_set_srid(LWGEOM *geom, int32_t srid)
 	}
 }
 
-LWGEOM* lwgeom_simplify(const LWGEOM *igeom, double dist)
+LWGEOM* lwgeom_simplify(const LWGEOM *igeom, double dist, int preserve_collapsed)
 {
 	switch (igeom->type)
 	{
@@ -1478,15 +1558,15 @@ LWGEOM* lwgeom_simplify(const LWGEOM *igeom, double dist)
 	case MULTIPOINTTYPE:
 		return lwgeom_clone(igeom);
 	case LINETYPE:
-		return (LWGEOM*)lwline_simplify((LWLINE*)igeom, dist);
+		return (LWGEOM*)lwline_simplify((LWLINE*)igeom, dist, preserve_collapsed);
 	case POLYGONTYPE:
-		return (LWGEOM*)lwpoly_simplify((LWPOLY*)igeom, dist);
+		return (LWGEOM*)lwpoly_simplify((LWPOLY*)igeom, dist, preserve_collapsed);
 	case MULTILINETYPE:
 	case MULTIPOLYGONTYPE:
 	case COLLECTIONTYPE:
-		return (LWGEOM*)lwcollection_simplify((LWCOLLECTION *)igeom, dist);
+		return (LWGEOM*)lwcollection_simplify((LWCOLLECTION *)igeom, dist, preserve_collapsed);
 	default:
-		lwerror("lwgeom_simplify: unsupported geometry type: %s",lwtype_name(igeom->type));
+		lwerror("%s: unsupported geometry type: %s", __func__, lwtype_name(igeom->type));
 	}
 	return NULL;
 }
@@ -1653,6 +1733,71 @@ lwgeom_affine(LWGEOM *geom, const AFFINE *affine)
 
 }
 
+void
+lwgeom_scale(LWGEOM *geom, const POINT4D *factor)
+{
+	int type = geom->type;
+	int i;
+
+	switch(type) 
+	{
+		/* Take advantage of fact tht pt/ln/circ/tri have same memory structure */
+		case POINTTYPE:
+		case LINETYPE:
+		case CIRCSTRINGTYPE:
+		case TRIANGLETYPE:
+		{
+			LWLINE *l = (LWLINE*)geom;
+			ptarray_scale(l->points, factor);
+			break;
+		}
+		case POLYGONTYPE:
+		{
+			LWPOLY *p = (LWPOLY*)geom;
+			for( i = 0; i < p->nrings; i++ )
+				ptarray_scale(p->rings[i], factor);
+			break;
+		}
+		case CURVEPOLYTYPE:
+		{
+			LWCURVEPOLY *c = (LWCURVEPOLY*)geom;
+			for( i = 0; i < c->nrings; i++ )
+				lwgeom_scale(c->rings[i], factor);
+			break;
+		}
+		default:
+		{
+			if( lwgeom_is_collection(geom) )
+			{
+				LWCOLLECTION *c = (LWCOLLECTION*)geom;
+				for( i = 0; i < c->ngeoms; i++ )
+				{
+					lwgeom_scale(c->geoms[i], factor);
+				}
+			}
+			else 
+			{
+				lwerror("lwgeom_scale: unable to handle type '%s'", lwtype_name(type));
+			}
+		}
+	}
+
+	/* Recompute bbox if needed */
+
+	if ( geom->bbox ) 
+	{
+		/* TODO: expose a gbox_scale function */
+		geom->bbox->xmin *= factor->x;
+		geom->bbox->xmax *= factor->x;
+		geom->bbox->ymin *= factor->y;
+		geom->bbox->ymax *= factor->y;
+		geom->bbox->zmin *= factor->z;
+		geom->bbox->zmax *= factor->z;
+		geom->bbox->mmin *= factor->m;
+		geom->bbox->mmax *= factor->m;
+	}
+}
+
 LWGEOM*
 lwgeom_construct_empty(uint8_t type, int srid, char hasz, char hasm)
 {
@@ -1713,3 +1858,173 @@ lwgeom_startpoint(const LWGEOM* lwgeom, POINT4D* pt)
 	}
 }
 
+
+LWGEOM *
+lwgeom_grid(const LWGEOM *lwgeom, const gridspec *grid)
+{
+	switch ( lwgeom->type )
+	{
+		case POINTTYPE:
+			return (LWGEOM *)lwpoint_grid((LWPOINT *)lwgeom, grid);
+		case LINETYPE:
+			return (LWGEOM *)lwline_grid((LWLINE *)lwgeom, grid);
+		case POLYGONTYPE:
+			return (LWGEOM *)lwpoly_grid((LWPOLY *)lwgeom, grid);
+		case MULTIPOINTTYPE:
+		case MULTILINETYPE:
+		case MULTIPOLYGONTYPE:
+		case COLLECTIONTYPE:
+		case COMPOUNDTYPE:
+			return (LWGEOM *)lwcollection_grid((LWCOLLECTION *)lwgeom, grid);
+		case CIRCSTRINGTYPE:
+			return (LWGEOM *)lwcircstring_grid((LWCIRCSTRING *)lwgeom, grid);
+		default:
+			lwerror("lwgeom_grid: Unsupported geometry type: %s",
+			        lwtype_name(lwgeom->type));
+			return NULL;
+	}
+}
+
+
+/* Prototype for recursion */
+static int 
+lwgeom_subdivide_recursive(const LWGEOM *geom, int maxvertices, int depth, LWCOLLECTION *col, const GBOX *clip);
+
+static int
+lwgeom_subdivide_recursive(const LWGEOM *geom, int maxvertices, int depth, LWCOLLECTION *col, const GBOX *clip)
+{
+	const int maxdepth = 50;
+	int nvertices = 0;
+	int i, n = 0;
+	double width = clip->xmax - clip->xmin;
+	double height = clip->ymax - clip->ymin;
+	GBOX subbox1, subbox2;
+	LWGEOM *clipped1, *clipped2;
+	
+	if ( geom->type == POLYHEDRALSURFACETYPE || geom->type == TINTYPE )
+	{
+		lwerror("%s: unsupported geometry type '%s'", __func__, lwtype_name(geom->type));
+	}
+	
+	if ( width == 0.0 && height == 0.0 )
+		return 0;
+	
+	/* Always just recurse into collections */
+	if ( lwgeom_is_collection(geom) )
+	{
+		LWCOLLECTION *incol = (LWCOLLECTION*)geom;
+		int n = 0;
+		for ( i = 0; i < incol->ngeoms; i++ )
+		{
+			/* Don't increment depth yet, since we aren't actually subdividing geomtries yet */
+			n += lwgeom_subdivide_recursive(incol->geoms[i], maxvertices, depth, col, clip);
+		}
+		return n;
+	}
+	
+	/* But don't go too far. 2^25 = 33M, that's enough subdivision */
+	/* Signal callers above that we depth'ed out with a negative */
+	/* return value */
+	if ( depth > maxdepth )
+	{
+		return 0;
+	}
+	
+	nvertices = lwgeom_count_vertices(geom);
+	/* Skip empties entirely */
+	if ( nvertices == 0 )
+	{
+		return 0;
+	}
+	
+	/* If it is under the vertex tolerance, just add it, we're done */
+	if ( nvertices < maxvertices )
+	{
+		lwcollection_add_lwgeom(col, lwgeom_clone_deep(geom));
+		return 1;
+	}
+	
+	subbox1 = subbox2 = *clip;
+	if ( width > height )
+	{
+		subbox1.xmax = subbox2.xmin = (clip->xmin + clip->xmax)/2;
+	}
+	else
+	{
+		subbox1.ymax = subbox2.ymin = (clip->ymin + clip->ymax)/2;
+	}
+	
+	if ( height == 0 )
+	{
+		subbox1.ymax += FP_TOLERANCE;
+		subbox2.ymax += FP_TOLERANCE;
+		subbox1.ymin -= FP_TOLERANCE;
+		subbox2.ymin -= FP_TOLERANCE;
+	}
+
+	if ( width == 0 )
+	{
+		subbox1.xmax += FP_TOLERANCE;
+		subbox2.xmax += FP_TOLERANCE;
+		subbox1.xmin -= FP_TOLERANCE;
+		subbox2.xmin -= FP_TOLERANCE;
+	}
+		
+	clipped1 = lwgeom_clip_by_rect(geom, subbox1.xmin, subbox1.ymin, subbox1.xmax, subbox1.ymax);
+	clipped2 = lwgeom_clip_by_rect(geom, subbox2.xmin, subbox2.ymin, subbox2.xmax, subbox2.ymax);
+	
+	if ( clipped1 )
+	{
+		n += lwgeom_subdivide_recursive(clipped1, maxvertices, ++depth, col, &subbox1);
+		lwgeom_free(clipped1);
+	}
+
+	if ( clipped2 )
+	{
+		n += lwgeom_subdivide_recursive(clipped2, maxvertices, ++depth, col, &subbox2);
+		lwgeom_free(clipped2);
+	}
+	
+	return n;
+	
+}
+
+LWCOLLECTION *
+lwgeom_subdivide(const LWGEOM *geom, int maxvertices)
+{
+	static int startdepth = 0;
+	static int minmaxvertices = 8;
+	LWCOLLECTION *col;
+	GBOX clip;
+	
+	col = lwcollection_construct_empty(COLLECTIONTYPE, geom->srid, lwgeom_has_z(geom), lwgeom_has_m(geom));
+
+	if ( lwgeom_is_empty(geom) )
+		return col;
+
+	if ( maxvertices < minmaxvertices )
+	{
+		lwcollection_free(col);
+		lwerror("%s: cannot subdivide to fewer than %d vertices per output", __func__, minmaxvertices);
+	}
+	
+	clip = *(lwgeom_get_bbox(geom));
+	lwgeom_subdivide_recursive(geom, maxvertices, startdepth, col, &clip);
+	lwgeom_set_srid((LWGEOM*)col, geom->srid);
+	return col;
+}
+
+
+int
+lwgeom_is_trajectory(const LWGEOM *geom)
+{
+	int type = geom->type;
+
+	if( type != LINETYPE ) 
+	{
+		lwnotice("Geometry is not a LINESTRING");
+		return LW_FALSE;
+	}
+	return lwline_is_trajectory((LWLINE*)geom);
+}
+
diff --git a/liblwgeom/lwgeom_api.c b/liblwgeom/lwgeom_api.c
index 609c240..1e9fcd8 100644
--- a/liblwgeom/lwgeom_api.c
+++ b/liblwgeom/lwgeom_api.c
@@ -14,7 +14,6 @@
 #include "liblwgeom_internal.h"
 #include "lwgeom_log.h"
 
-#include <float.h>
 #include <stdio.h>
 #include <errno.h>
 #include <assert.h>
@@ -489,6 +488,27 @@ getPoint3dz_cp(const POINTARRAY *pa, int n)
 }
 
 
+const POINT4D*
+getPoint4d_cp(const POINTARRAY *pa, int n)
+{
+	if ( ! pa ) return 0;
+	
+	if ( ! (FLAGS_GET_Z(pa->flags) && FLAGS_GET_Z(pa->flags)) )
+	{
+		lwerror("getPoint3dz_cp: no Z and M coordinates in point array");
+		return 0; /*error */
+	}
+
+	if ( (n<0) || (n>=pa->npoints))
+	{
+		lwerror("getPoint3dz_cp: point offset out of range");
+		return 0; /*error */
+	}
+
+	return (const POINT4D*)getPoint_internal(pa, n);
+}
+
+
 
 /*
  * set point N to the given value
@@ -784,4 +804,20 @@ interpolate_point4d(POINT4D *A, POINT4D *B, POINT4D *I, double F)
 }
 
 
+int _lwgeom_interrupt_requested = 0;
+void
+lwgeom_request_interrupt() {
+  _lwgeom_interrupt_requested = 1;
+}
+void
+lwgeom_cancel_interrupt() {
+  _lwgeom_interrupt_requested = 0;
+}
 
+lwinterrupt_callback *_lwgeom_interrupt_callback = 0;
+lwinterrupt_callback *
+lwgeom_register_interrupt_callback(lwinterrupt_callback *cb) {
+  lwinterrupt_callback *old = _lwgeom_interrupt_callback;
+  _lwgeom_interrupt_callback = cb;
+  return old;
+}
diff --git a/liblwgeom/lwgeom_debug.c b/liblwgeom/lwgeom_debug.c
index f1d42da..a25c6e9 100644
--- a/liblwgeom/lwgeom_debug.c
+++ b/liblwgeom/lwgeom_debug.c
@@ -30,7 +30,7 @@ lwgeom_flagchars(LWGEOM *lwg)
 	if ( lwg->srid != SRID_UNKNOWN ) tflags[flagno++] = 'S';
 	tflags[flagno] = '\0';
 
-	LWDEBUGF(4, "Flags: %s - returning %p", flags, tflags);
+	LWDEBUGF(4, "Flags: %s - returning %p", lwg->flags, tflags);
 
 	return tflags;
 }
@@ -151,12 +151,19 @@ lwgeom_summary(const LWGEOM *lwgeom, int offset)
 	case POINTTYPE:
 		return lwpoint_summary((LWPOINT *)lwgeom, offset);
 
+	case CIRCSTRINGTYPE:
+	case TRIANGLETYPE:
 	case LINETYPE:
 		return lwline_summary((LWLINE *)lwgeom, offset);
 
 	case POLYGONTYPE:
 		return lwpoly_summary((LWPOLY *)lwgeom, offset);
 
+	case TINTYPE:
+	case MULTISURFACETYPE:
+	case MULTICURVETYPE:
+	case CURVEPOLYTYPE:
+	case COMPOUNDTYPE:
 	case MULTIPOINTTYPE:
 	case MULTILINETYPE:
 	case MULTIPOLYGONTYPE:
diff --git a/liblwgeom/lwgeom_geos.c b/liblwgeom/lwgeom_geos.c
index 459b626..a6f0c16 100644
--- a/liblwgeom/lwgeom_geos.c
+++ b/liblwgeom/lwgeom_geos.c
@@ -3,7 +3,7 @@
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
  *
- * Copyright 2011-2012 Sandro Santilli <strk at keybit.net>
+ * Copyright 2011-2014 Sandro Santilli <strk at keybit.net>
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
@@ -245,11 +245,81 @@ ptarray_to_GEOSCoordSeq(const POINTARRAY *pa)
 	return sq;
 }
 
+static GEOSGeometry *
+ptarray_to_GEOSLinearRing(const POINTARRAY *pa, int autofix)
+{
+	GEOSCoordSeq sq;
+	GEOSGeom g;
+	POINTARRAY *npa = 0;
 
+	if ( autofix )
+	{
+		/* check ring for being closed and fix if not */
+		if ( ! ptarray_is_closed_2d(pa) ) 
+		{
+			npa = ptarray_addPoint(pa, getPoint_internal(pa, 0), FLAGS_NDIMS(pa->flags), pa->npoints);
+			pa = npa;
+		}
+		/* TODO: check ring for having at least 4 vertices */
+#if 0
+		while ( pa->npoints < 4 ) 
+		{
+			npa = ptarray_addPoint(npa, getPoint_internal(pa, 0), FLAGS_NDIMS(pa->flags), pa->npoints);
+		}
+#endif
+	}
 
+	sq = ptarray_to_GEOSCoordSeq(pa);
+	if ( npa ) ptarray_free(npa);
+	g = GEOSGeom_createLinearRing(sq);
+	return g;
+}
 
 GEOSGeometry *
-LWGEOM2GEOS(const LWGEOM *lwgeom)
+GBOX2GEOS(const GBOX *box)
+{
+	GEOSGeometry* envelope;
+	GEOSGeometry* ring;
+	GEOSCoordSequence* seq = GEOSCoordSeq_create(5, 2);
+	if (!seq) 
+	{
+		return NULL;
+	}
+
+	GEOSCoordSeq_setX(seq, 0, box->xmin);
+	GEOSCoordSeq_setY(seq, 0, box->ymin);
+
+	GEOSCoordSeq_setX(seq, 1, box->xmax);
+	GEOSCoordSeq_setY(seq, 1, box->ymin);
+
+	GEOSCoordSeq_setX(seq, 2, box->xmax);
+	GEOSCoordSeq_setY(seq, 2, box->ymax);
+
+	GEOSCoordSeq_setX(seq, 3, box->xmin);
+	GEOSCoordSeq_setY(seq, 3, box->ymax);
+
+	GEOSCoordSeq_setX(seq, 4, box->xmin);
+	GEOSCoordSeq_setY(seq, 4, box->ymin);
+
+	ring = GEOSGeom_createLinearRing(seq);
+	if (!ring) 
+	{
+		GEOSCoordSeq_destroy(seq);
+		return NULL;
+	}
+
+	envelope = GEOSGeom_createPolygon(ring, NULL, 0);
+	if (!envelope) 
+	{
+		GEOSGeom_destroy(ring);
+		return NULL;
+	}
+
+	return envelope;
+}
+
+GEOSGeometry *
+LWGEOM2GEOS(const LWGEOM *lwgeom, int autofix)
 {
 	GEOSCoordSeq sq;
 	GEOSGeom g, shell;
@@ -267,10 +337,10 @@ LWGEOM2GEOS(const LWGEOM *lwgeom)
 
 	if (lwgeom_has_arc(lwgeom))
 	{
-		LWDEBUG(3, "LWGEOM2GEOS: arced geometry found.");
-
-		lwerror("Exception in LWGEOM2GEOS: curved geometry not supported.");
-		return NULL;
+		LWGEOM *lwgeom_stroked = lwgeom_stroke(lwgeom, 32);
+		GEOSGeometry *g = LWGEOM2GEOS(lwgeom_stroked, autofix);
+		lwgeom_free(lwgeom_stroked);
+		return g;
 	}
 	
 	switch (lwgeom->type)
@@ -310,6 +380,7 @@ LWGEOM2GEOS(const LWGEOM *lwgeom)
 		break;
 	case LINETYPE:
 		lwl = (LWLINE *)lwgeom;
+		/* TODO: if (autofix) */
 		if ( lwl->points->npoints == 1 ) {
 			/* Duplicate point, to make geos-friendly */
 			lwl->points = ptarray_addPoint(lwl->points,
@@ -341,9 +412,7 @@ LWGEOM2GEOS(const LWGEOM *lwgeom)
 		}
 		else
 		{
-			sq = ptarray_to_GEOSCoordSeq(lwpoly->rings[0]);
-			/* TODO: check ring for being closed and fix if not */
-			shell = GEOSGeom_createLinearRing(sq);
+			shell = ptarray_to_GEOSLinearRing(lwpoly->rings[0], autofix);
 			if ( ! shell ) return NULL;
 			/*lwerror("LWGEOM2GEOS: exception during polygon shell conversion"); */
 			ngeoms = lwpoly->nrings-1;
@@ -352,8 +421,7 @@ LWGEOM2GEOS(const LWGEOM *lwgeom)
 
 			for (i=1; i<lwpoly->nrings; ++i)
 			{
-				sq = ptarray_to_GEOSCoordSeq(lwpoly->rings[i]);
-				geoms[i-1] = GEOSGeom_createLinearRing(sq);
+				geoms[i-1] = ptarray_to_GEOSLinearRing(lwpoly->rings[i], autofix);
 				if ( ! geoms[i-1] )
 				{
 					--i;
@@ -390,7 +458,7 @@ LWGEOM2GEOS(const LWGEOM *lwgeom)
 
 		for (i=0; i<ngeoms; ++i)
 		{
-			GEOSGeometry* g = LWGEOM2GEOS(lwc->geoms[i]);
+			GEOSGeometry* g = LWGEOM2GEOS(lwc->geoms[i], 0);
 			if ( ! g )
 			{
 				while (i) GEOSGeom_destroy(geoms[--i]);
@@ -440,7 +508,7 @@ lwgeom_normalize(const LWGEOM *geom1)
 
 	initGEOS(lwnotice, lwgeom_geos_error);
 
-	g1 = LWGEOM2GEOS(geom1);
+	g1 = LWGEOM2GEOS(geom1, 0);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
 		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
@@ -477,11 +545,11 @@ lwgeom_intersection(const LWGEOM *geom1, const LWGEOM *geom2)
 
 	/* A.Intersection(Empty) == Empty */
 	if ( lwgeom_is_empty(geom2) )
-		return lwgeom_clone(geom2);
+		return lwgeom_clone_deep(geom2);
 
 	/* Empty.Intersection(A) == Empty */
 	if ( lwgeom_is_empty(geom1) )
-		return lwgeom_clone(geom1);
+		return lwgeom_clone_deep(geom1);
 
 	/* ensure srids are identical */
 	srid = (int)(geom1->srid);
@@ -493,14 +561,14 @@ lwgeom_intersection(const LWGEOM *geom1, const LWGEOM *geom2)
 
 	LWDEBUG(3, "intersection() START");
 
-	g1 = LWGEOM2GEOS(geom1);
+	g1 = LWGEOM2GEOS(geom1, 0);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
 		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
 		return NULL ;
 	}
 
-	g2 = LWGEOM2GEOS(geom2);
+	g2 = LWGEOM2GEOS(geom2, 0);
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
 		lwerror("Second argument geometry could not be converted to GEOS.");
@@ -522,8 +590,8 @@ lwgeom_intersection(const LWGEOM *geom1, const LWGEOM *geom2)
 	{
 		GEOSGeom_destroy(g1);
 		GEOSGeom_destroy(g2);
-	        lwerror("Error performing intersection: %s",
-	                lwgeom_geos_errmsg);
+		lwerror("Error performing intersection: %s",
+		        lwgeom_geos_errmsg);
 		return NULL; /* never get here */
 	}
 
@@ -538,8 +606,8 @@ lwgeom_intersection(const LWGEOM *geom1, const LWGEOM *geom2)
 		GEOSGeom_destroy(g1);
 		GEOSGeom_destroy(g2);
 		GEOSGeom_destroy(g3);
-	        lwerror("Error performing intersection: GEOS2LWGEOM: %s",
-	                lwgeom_geos_errmsg);
+		lwerror("Error performing intersection: GEOS2LWGEOM: %s",
+		        lwgeom_geos_errmsg);
 		return NULL ; /* never get here */
 	}
 
@@ -551,6 +619,119 @@ lwgeom_intersection(const LWGEOM *geom1, const LWGEOM *geom2)
 }
 
 LWGEOM *
+lwgeom_linemerge(const LWGEOM *geom1)
+{
+	LWGEOM *result ;
+	GEOSGeometry *g1, *g3 ;
+	int is3d = FLAGS_GET_Z(geom1->flags);
+	int srid = geom1->srid;
+
+	/* Empty.Linemerge() == Empty */
+	if ( lwgeom_is_empty(geom1) )
+		return (LWGEOM*)lwcollection_construct_empty( COLLECTIONTYPE, srid, is3d,
+                                         lwgeom_has_m(geom1) );
+
+	initGEOS(lwnotice, lwgeom_geos_error);
+
+	LWDEBUG(3, "linemerge() START");
+
+	g1 = LWGEOM2GEOS(geom1, 0);
+	if ( 0 == g1 )   /* exception thrown at construction */
+	{
+		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		return NULL ;
+	}
+
+	LWDEBUG(3, " constructed geometrys - calling geos");
+	LWDEBUGF(3, " g1 = %s", GEOSGeomToWKT(g1));
+	/*LWDEBUGF(3, "g1 is valid = %i",GEOSisvalid(g1)); */
+
+	g3 = GEOSLineMerge(g1);
+
+	LWDEBUG(3, " linemerge finished");
+
+	if (g3 == NULL)
+	{
+		GEOSGeom_destroy(g1);
+		lwerror("Error performing linemerge: %s",
+		        lwgeom_geos_errmsg);
+		return NULL; /* never get here */
+	}
+
+	LWDEBUGF(3, "result: %s", GEOSGeomToWKT(g3) ) ;
+
+	GEOSSetSRID(g3, srid);
+
+	result = GEOS2LWGEOM(g3, is3d);
+
+	if (result == NULL)
+	{
+		GEOSGeom_destroy(g1);
+		GEOSGeom_destroy(g3);
+		lwerror("Error performing linemerge: GEOS2LWGEOM: %s",
+		        lwgeom_geos_errmsg);
+		return NULL ; /* never get here */
+	}
+
+	GEOSGeom_destroy(g1);
+	GEOSGeom_destroy(g3);
+
+	return result ;
+}
+
+LWGEOM *
+lwgeom_unaryunion(const LWGEOM *geom1)
+{
+	LWGEOM *result ;
+	GEOSGeometry *g1, *g3 ;
+	int is3d = FLAGS_GET_Z(geom1->flags);
+	int srid = geom1->srid;
+
+	/* Empty.UnaryUnion() == Empty */
+	if ( lwgeom_is_empty(geom1) )
+		return lwgeom_clone_deep(geom1);
+
+	initGEOS(lwnotice, lwgeom_geos_error);
+
+	g1 = LWGEOM2GEOS(geom1, 0);
+	if ( 0 == g1 )   /* exception thrown at construction */
+	{
+		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		return NULL ;
+	}
+
+	g3 = GEOSUnaryUnion(g1);
+
+	if (g3 == NULL)
+	{
+		GEOSGeom_destroy(g1);
+		lwerror("Error performing unaryunion: %s",
+		        lwgeom_geos_errmsg);
+		return NULL; /* never get here */
+	}
+
+	LWDEBUGF(3, "result: %s", GEOSGeomToWKT(g3) ) ;
+
+	GEOSSetSRID(g3, srid);
+
+	result = GEOS2LWGEOM(g3, is3d);
+
+	if (result == NULL)
+	{
+		GEOSGeom_destroy(g1);
+		GEOSGeom_destroy(g3);
+		lwerror("Error performing unaryunion: GEOS2LWGEOM: %s",
+		        lwgeom_geos_errmsg);
+		return NULL ; /* never get here */
+	}
+
+	GEOSGeom_destroy(g1);
+	GEOSGeom_destroy(g3);
+
+	return result ;
+}
+
+LWGEOM *
 lwgeom_difference(const LWGEOM *geom1, const LWGEOM *geom2)
 {
 	GEOSGeometry *g1, *g2, *g3;
@@ -560,11 +741,11 @@ lwgeom_difference(const LWGEOM *geom1, const LWGEOM *geom2)
 
 	/* A.Difference(Empty) == A */
 	if ( lwgeom_is_empty(geom2) )
-		return lwgeom_clone(geom1);
+		return lwgeom_clone_deep(geom1);
 
 	/* Empty.Intersection(A) == Empty */
 	if ( lwgeom_is_empty(geom1) )
-		return lwgeom_clone(geom1);
+		return lwgeom_clone_deep(geom1);
 
 	/* ensure srids are identical */
 	srid = (int)(geom1->srid);
@@ -574,14 +755,14 @@ lwgeom_difference(const LWGEOM *geom1, const LWGEOM *geom2)
 
 	initGEOS(lwnotice, lwgeom_geos_error);
 
-	g1 = LWGEOM2GEOS(geom1);
+	g1 = LWGEOM2GEOS(geom1, 0);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
 		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
 		return NULL;
 	}
 
-	g2 = LWGEOM2GEOS(geom2);
+	g2 = LWGEOM2GEOS(geom2, 0);
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
 		GEOSGeom_destroy(g1);
@@ -610,8 +791,8 @@ lwgeom_difference(const LWGEOM *geom1, const LWGEOM *geom2)
 		GEOSGeom_destroy(g1);
 		GEOSGeom_destroy(g2);
 		GEOSGeom_destroy(g3);
-	        lwerror("Error performing difference: GEOS2LWGEOM: %s",
-	                lwgeom_geos_errmsg);
+		lwerror("Error performing difference: GEOS2LWGEOM: %s",
+		        lwgeom_geos_errmsg);
 		return NULL; /* never get here */
 	}
 
@@ -634,11 +815,11 @@ lwgeom_symdifference(const LWGEOM* geom1, const LWGEOM* geom2)
 
 	/* A.SymDifference(Empty) == A */
 	if ( lwgeom_is_empty(geom2) )
-		return lwgeom_clone(geom1);
+		return lwgeom_clone_deep(geom1);
 
 	/* Empty.DymDifference(B) == B */
 	if ( lwgeom_is_empty(geom1) )
-		return lwgeom_clone(geom2);
+		return lwgeom_clone_deep(geom2);
 
 	/* ensure srids are identical */
 	srid = (int)(geom1->srid);
@@ -648,7 +829,7 @@ lwgeom_symdifference(const LWGEOM* geom1, const LWGEOM* geom2)
 
 	initGEOS(lwnotice, lwgeom_geos_error);
 
-	g1 = LWGEOM2GEOS(geom1);
+	g1 = LWGEOM2GEOS(geom1, 0);
 
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
@@ -656,7 +837,7 @@ lwgeom_symdifference(const LWGEOM* geom1, const LWGEOM* geom2)
 		return NULL;
 	}
 
-	g2 = LWGEOM2GEOS(geom2);
+	g2 = LWGEOM2GEOS(geom2, 0);
 
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
@@ -709,11 +890,11 @@ lwgeom_union(const LWGEOM *geom1, const LWGEOM *geom2)
 
 	/* A.Union(empty) == A */
 	if ( lwgeom_is_empty(geom1) )
-		return lwgeom_clone(geom2);
+		return lwgeom_clone_deep(geom2);
 
 	/* B.Union(empty) == B */
 	if ( lwgeom_is_empty(geom2) )
-		return lwgeom_clone(geom1);
+		return lwgeom_clone_deep(geom1);
 
 
 	/* ensure srids are identical */
@@ -724,7 +905,7 @@ lwgeom_union(const LWGEOM *geom1, const LWGEOM *geom2)
 
 	initGEOS(lwnotice, lwgeom_geos_error);
 
-	g1 = LWGEOM2GEOS(geom1);
+	g1 = LWGEOM2GEOS(geom1, 0);
 
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
@@ -732,7 +913,7 @@ lwgeom_union(const LWGEOM *geom1, const LWGEOM *geom2)
 		return NULL;
 	}
 
-	g2 = LWGEOM2GEOS(geom2);
+	g2 = LWGEOM2GEOS(geom2, 0);
 
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
@@ -766,14 +947,78 @@ lwgeom_union(const LWGEOM *geom1, const LWGEOM *geom2)
 
 	if (result == NULL)
 	{
-	        lwerror("Error performing union: GEOS2LWGEOM: %s",
-	                lwgeom_geos_errmsg);
+		lwerror("Error performing union: GEOS2LWGEOM: %s",
+		        lwgeom_geos_errmsg);
 		return NULL; /*never get here */
 	}
 
 	return result;
 }
 
+LWGEOM *
+lwgeom_clip_by_rect(const LWGEOM *geom1, double x0, double y0, double x1, double y1)
+{
+#if POSTGIS_GEOS_VERSION < 35
+	lwerror("The GEOS version this postgis binary "
+	        "was compiled against (%d) doesn't support "
+	        "'GEOSClipByRect' function (3.3.5+ required)",
+	        POSTGIS_GEOS_VERSION);
+	return NULL;
+#else /* POSTGIS_GEOS_VERSION >= 35 */
+	LWGEOM *result ;
+	GEOSGeometry *g1, *g3 ;
+	int is3d ;
+
+	/* A.Intersection(Empty) == Empty */
+	if ( lwgeom_is_empty(geom1) )
+		return lwgeom_clone_deep(geom1);
+
+	is3d = FLAGS_GET_Z(geom1->flags);
+
+	initGEOS(lwnotice, lwgeom_geos_error);
+
+	LWDEBUG(3, "clip_by_rect() START");
+
+	g1 = LWGEOM2GEOS(geom1, 1); /* auto-fix structure */
+	if ( 0 == g1 )   /* exception thrown at construction */
+	{
+		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		return NULL ;
+	}
+
+	LWDEBUG(3, " constructed geometrys - calling geos");
+	LWDEBUGF(3, " g1 = %s", GEOSGeomToWKT(g1));
+	/*LWDEBUGF(3, "g1 is valid = %i",GEOSisvalid(g1)); */
+
+	g3 = GEOSClipByRect(g1,x0,y0,x1,y1);
+	GEOSGeom_destroy(g1);
+
+	LWDEBUG(3, " clip_by_rect finished");
+
+	if (g3 == NULL)
+	{
+		lwnotice("Error performing rectangular clipping: %s", lwgeom_geos_errmsg);
+		return NULL;
+	}
+
+	LWDEBUGF(3, "result: %s", GEOSGeomToWKT(g3) ) ;
+
+	result = GEOS2LWGEOM(g3, is3d);
+	GEOSGeom_destroy(g3);
+
+	if (result == NULL)
+	{
+		lwerror("Error performing intersection: GEOS2LWGEOM: %s", lwgeom_geos_errmsg);
+		return NULL ; /* never get here */
+	}
+
+	result->srid = geom1->srid;
+
+	return result ;
+#endif /* POSTGIS_GEOS_VERSION >= 35 */
+}
+
+
 /* ------------ BuildArea stuff ---------------------------------------------------------------------{ */
 
 typedef struct Face_t {
@@ -1068,7 +1313,7 @@ lwgeom_buildarea(const LWGEOM *geom)
 
 	initGEOS(lwnotice, lwgeom_geos_error);
 
-	geos_in = LWGEOM2GEOS(geom);
+	geos_in = LWGEOM2GEOS(geom, 0);
 	
 	if ( 0 == geos_in )   /* exception thrown at construction */
 	{
@@ -1106,6 +1351,38 @@ lwgeom_buildarea(const LWGEOM *geom)
 	return geom_out;
 }
 
+int
+lwgeom_is_simple(const LWGEOM *geom)
+{
+	GEOSGeometry* geos_in;
+	int simple;
+
+	/* Empty is always simple */
+	if ( lwgeom_is_empty(geom) )
+	{
+		return 1;
+	}
+
+	initGEOS(lwnotice, lwgeom_geos_error);
+
+	geos_in = LWGEOM2GEOS(geom, 0);
+	if ( 0 == geos_in )   /* exception thrown at construction */
+	{
+		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		return -1;
+	}
+	simple = GEOSisSimple(geos_in);
+	GEOSGeom_destroy(geos_in);
+
+	if ( simple == 2 ) /* exception thrown */
+	{
+		lwerror("lwgeom_is_simple: %s", lwgeom_geos_errmsg);
+		return -1;
+	}
+
+	return simple ? 1 : 0;
+}
+
 /* ------------ end of BuildArea stuff ---------------------------------------------------------------------} */
 
 LWGEOM*
@@ -1117,7 +1394,7 @@ lwgeom_geos_noop(const LWGEOM* geom_in)
 	int is3d = FLAGS_GET_Z(geom_in->flags);
 
 	initGEOS(lwnotice, lwgeom_geos_error);
-	geosgeom = LWGEOM2GEOS(geom_in);
+	geosgeom = LWGEOM2GEOS(geom_in, 0);
 	if ( ! geosgeom ) {
 		lwerror("Geometry could not be converted to GEOS: %s",
 			lwgeom_geos_errmsg);
@@ -1155,14 +1432,14 @@ lwgeom_snap(const LWGEOM* geom1, const LWGEOM* geom2, double tolerance)
 
 	initGEOS(lwnotice, lwgeom_geos_error);
 
-	g1 = (GEOSGeometry *)LWGEOM2GEOS(geom1);
+	g1 = (GEOSGeometry *)LWGEOM2GEOS(geom1, 0);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
 		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
 		return NULL;
 	}
 
-	g2 = (GEOSGeometry *)LWGEOM2GEOS(geom2);
+	g2 = (GEOSGeometry *)LWGEOM2GEOS(geom2, 0);
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
 		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
@@ -1218,14 +1495,14 @@ lwgeom_sharedpaths(const LWGEOM* geom1, const LWGEOM* geom2)
 
 	initGEOS(lwnotice, lwgeom_geos_error);
 
-	g1 = (GEOSGeometry *)LWGEOM2GEOS(geom1);
+	g1 = (GEOSGeometry *)LWGEOM2GEOS(geom1, 0);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
 		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
 		return NULL;
 	}
 
-	g2 = (GEOSGeometry *)LWGEOM2GEOS(geom2);
+	g2 = (GEOSGeometry *)LWGEOM2GEOS(geom2, 0);
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
 		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
@@ -1270,7 +1547,7 @@ lwgeom_offsetcurve(const LWLINE *lwline, double size, int quadsegs, int joinStyl
 
 	initGEOS(lwnotice, lwgeom_geos_error);
 
-	g1 = (GEOSGeometry *)LWGEOM2GEOS(lwgeom_in);
+	g1 = (GEOSGeometry *)LWGEOM2GEOS(lwgeom_in, 0);
 	if ( ! g1 ) 
 	{
 		lwerror("lwgeom_offsetcurve: Geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
@@ -1391,7 +1668,7 @@ LWGEOM* lwgeom_delaunay_triangulation(const LWGEOM *lwgeom_in, double tolerance,
 
 	initGEOS(lwnotice, lwgeom_geos_error);
 
-	g1 = (GEOSGeometry *)LWGEOM2GEOS(lwgeom_in);
+	g1 = (GEOSGeometry *)LWGEOM2GEOS(lwgeom_in, 0);
 	if ( ! g1 ) 
 	{
 		lwerror("lwgeom_delaunay_triangulation: Geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
diff --git a/liblwgeom/lwgeom_geos.h b/liblwgeom/lwgeom_geos.h
index 31f1eb9..bc0cd22 100644
--- a/liblwgeom/lwgeom_geos.h
+++ b/liblwgeom/lwgeom_geos.h
@@ -24,9 +24,12 @@
 ** Public prototypes for GEOS utility functions.
 */
 LWGEOM *GEOS2LWGEOM(const GEOSGeometry *geom, char want3d);
-GEOSGeometry * LWGEOM2GEOS(const LWGEOM *g);
+GEOSGeometry * LWGEOM2GEOS(const LWGEOM *g, int autofix);
+GEOSGeometry * GBOX2GEOS(const GBOX *g);
 GEOSGeometry * LWGEOM_GEOS_buildArea(const GEOSGeometry* geom_in);
 
+int cluster_intersecting(GEOSGeometry** geoms, uint32_t num_geoms, GEOSGeometry*** clusterGeoms, uint32_t* num_clusters);
+int cluster_within_distance(LWGEOM** geoms, uint32_t num_geoms, double tolerance, LWGEOM*** clusterGeoms, uint32_t* num_clusters);
 
 POINTARRAY *ptarray_from_GEOSCoordSeq(const GEOSCoordSequence *cs, char want3d);
 
diff --git a/liblwgeom/lwgeom_geos_clean.c b/liblwgeom/lwgeom_geos_clean.c
index e1b37cc..f37e775 100644
--- a/liblwgeom/lwgeom_geos_clean.c
+++ b/liblwgeom/lwgeom_geos_clean.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_geos.c 5258 2010-02-17 21:02:49Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -206,12 +205,12 @@ POINTARRAY*
 ring_make_geos_friendly(POINTARRAY* ring)
 {
 	POINTARRAY* closedring;
+	POINTARRAY* ring_in = ring;
 
 	/* close the ring if not already closed (2d only) */
 	closedring = ptarray_close2d(ring);
 	if (closedring != ring )
 	{
-		ptarray_free(ring); /* should we do this ? */
 		ring = closedring;
 	}
 
@@ -219,12 +218,14 @@ ring_make_geos_friendly(POINTARRAY* ring)
 
 	while ( ring->npoints < 4 )
 	{
+		POINTARRAY *oring = ring;
 		LWDEBUGF(4, "ring has %d points, adding another", ring->npoints);
 		/* let's add another... */
 		ring = ptarray_addPoint(ring,
 		                        getPoint_internal(ring, 0),
 		                        FLAGS_NDIMS(ring->flags),
 		                        ring->npoints);
+		if ( oring != ring_in ) ptarray_free(oring);
 	}
 
 
@@ -256,10 +257,7 @@ lwpoly_make_geos_friendly(LWPOLY *poly)
 		if ( ring_in != ring_out )
 		{
 			LWDEBUGF(3, "lwpoly_make_geos_friendly: ring %d cleaned, now has %d points", i, ring_out->npoints);
-			/* this may come right from
-			 * the binary representation lands
-			 */
-			/*ptarray_free(ring_in); */
+			ptarray_free(ring_in);
 		}
 		else
 		{
@@ -1009,7 +1007,7 @@ lwgeom_make_valid(LWGEOM* lwgeom_in)
 	initGEOS(lwgeom_geos_error, lwgeom_geos_error);
 
 	lwgeom_out = lwgeom_in;
-	geosgeom = LWGEOM2GEOS(lwgeom_out);
+	geosgeom = LWGEOM2GEOS(lwgeom_out, 0);
 	if ( ! geosgeom )
 	{
 		LWDEBUGF(4,
@@ -1025,7 +1023,8 @@ lwgeom_make_valid(LWGEOM* lwgeom_in)
 		}
 
 		/* try again as we did cleanup now */
-		geosgeom = LWGEOM2GEOS(lwgeom_out);
+		/* TODO: invoke LWGEOM2GEOS directly with autoclean ? */
+		geosgeom = LWGEOM2GEOS(lwgeom_out, 0);
 		if ( ! geosgeom )
 		{
 			lwerror("Couldn't convert POSTGIS geom to GEOS: %s",
diff --git a/liblwgeom/lwgeom_geos_cluster.c b/liblwgeom/lwgeom_geos_cluster.c
new file mode 100644
index 0000000..130f59c
--- /dev/null
+++ b/liblwgeom/lwgeom_geos_cluster.c
@@ -0,0 +1,357 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright 2015 Daniel Baston <dbaston at gmail.com>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include <string.h>
+#include "liblwgeom.h"
+#include "liblwgeom_internal.h"
+#include "lwgeom_log.h"
+#include "lwgeom_geos.h"
+#include "lwunionfind.h"
+
+/* Utility struct used to pass information to the GEOSSTRtree_query callback */
+struct UnionIfIntersectingContext
+{
+	UNIONFIND* uf;
+	char error;
+	uint32_t* p;
+	const GEOSPreparedGeometry* prep;
+	GEOSGeometry** geoms;
+};
+
+/* Utility struct used to pass information to the GEOSSTRtree_query callback */
+struct UnionIfDWithinContext
+{
+	UNIONFIND* uf;
+	char error;
+	uint32_t* p;
+	LWGEOM** geoms;
+	double tolerance;
+};
+
+/* Utility struct to keep GEOSSTRtree and associated structures to be freed after use */
+struct STRTree
+{
+	GEOSSTRtree* tree;
+	GEOSGeometry** envelopes;
+	uint32_t* geom_ids;
+	uint32_t num_geoms;
+};
+
+static struct STRTree make_strtree(void** geoms, uint32_t num_geoms, char is_lwgeom);
+static void destroy_strtree(struct STRTree tree);
+static void union_if_intersecting(void* item, void* userdata);
+static void union_if_dwithin(void* item, void* userdata);
+static int union_intersecting_pairs(GEOSGeometry** geoms, uint32_t num_geoms, UNIONFIND* uf);
+static int combine_geometries(UNIONFIND* uf, void** geoms, uint32_t num_geoms, void*** clustersGeoms, uint32_t* num_clusters, char is_lwgeom);
+
+/** Make a GEOSSTRtree of either GEOSGeometry* or LWGEOM* pointers */
+static struct STRTree
+make_strtree(void** geoms, uint32_t num_geoms, char is_lwgeom)
+{
+	struct STRTree tree;
+	tree.tree = GEOSSTRtree_create(num_geoms);
+	if (tree.tree == NULL)
+	{
+		return tree;
+	}
+	tree.envelopes = lwalloc(num_geoms * sizeof(GEOSGeometry*));
+	tree.geom_ids  = lwalloc(num_geoms * sizeof(uint32_t));
+	tree.num_geoms = num_geoms;
+
+	size_t i;
+	for (i = 0; i < num_geoms; i++)
+	{
+		tree.geom_ids[i] = i;
+		if (!is_lwgeom)
+		{
+			tree.envelopes[i] = GEOSEnvelope(geoms[i]);
+		}
+		else
+		{
+            const GBOX* box = lwgeom_get_bbox(geoms[i]);
+            if (box)
+            {
+                tree.envelopes[i] = GBOX2GEOS(box);
+            } 
+            else
+            {
+                /* Empty geometry */
+                tree.envelopes[i] = GEOSGeom_createEmptyPolygon();
+            }
+		}
+		GEOSSTRtree_insert(tree.tree, tree.envelopes[i], &(tree.geom_ids[i]));
+	}
+	return tree;
+}
+
+/** Clean up STRTree after use */
+static void
+destroy_strtree(struct STRTree tree)
+{
+	size_t i;
+	GEOSSTRtree_destroy(tree.tree);
+
+	for (i = 0; i < tree.num_geoms; i++)
+	{
+		GEOSGeom_destroy(tree.envelopes[i]);
+	}
+	lwfree(tree.geom_ids);
+	lwfree(tree.envelopes);
+}
+
+/* Callback function for GEOSSTRtree_query */
+static void
+union_if_intersecting(void* item, void* userdata)
+{
+	struct UnionIfIntersectingContext *cxt = userdata;
+	if (cxt->error)
+	{
+		return;
+	}
+	uint32_t q = *((uint32_t*) item);
+	uint32_t p = *(cxt->p);
+
+	if (p != q && UF_find(cxt->uf, p) != UF_find(cxt->uf, q))
+	{
+		/* Lazy initialize prepared geometry */
+		if (cxt->prep == NULL)
+		{
+			cxt->prep = GEOSPrepare(cxt->geoms[p]);
+		}
+		int geos_result = GEOSPreparedIntersects(cxt->prep, cxt->geoms[q]);
+		if (geos_result > 1)
+		{
+			cxt->error = geos_result;
+			return;
+		}
+		if (geos_result)
+		{
+			UF_union(cxt->uf, p, q);
+		}
+	}
+}
+
+/* Callback function for GEOSSTRtree_query */
+static void
+union_if_dwithin(void* item, void* userdata)
+{
+	struct UnionIfDWithinContext *cxt = userdata;
+	if (cxt->error)
+	{
+		return;
+	}
+	uint32_t q = *((uint32_t*) item);
+	uint32_t p = *(cxt->p);
+
+	if (p != q && UF_find(cxt->uf, p) != UF_find(cxt->uf, q))
+	{
+		double mindist = lwgeom_mindistance2d_tolerance(cxt->geoms[p], cxt->geoms[q], cxt->tolerance);
+		if (mindist == FLT_MAX)
+		{
+			cxt->error = 1;
+			return;
+		}
+
+		if (mindist <= cxt->tolerance)
+		{
+			UF_union(cxt->uf, p, q);
+		}
+	}
+}
+
+/* Identify intersecting geometries and mark them as being in the same set */
+static int
+union_intersecting_pairs(GEOSGeometry** geoms, uint32_t num_geoms, UNIONFIND* uf)
+{
+	uint32_t i;
+
+	if (num_geoms <= 1)
+	{
+		return LW_SUCCESS;
+	}
+
+	struct STRTree tree = make_strtree((void**) geoms, num_geoms, 0);
+	if (tree.tree == NULL)
+	{
+		destroy_strtree(tree);
+		return LW_FAILURE;
+	}
+	for (i = 0; i < num_geoms; i++)
+	{
+        if (GEOSisEmpty(geoms[i]))
+        {
+            continue;
+        }
+
+		struct UnionIfIntersectingContext cxt =
+		{
+			.uf = uf,
+			.error = 0,
+			.p = &i,
+			.prep = NULL,
+			.geoms = geoms
+		};
+		GEOSGeometry* query_envelope = GEOSEnvelope(geoms[i]);
+		GEOSSTRtree_query(tree.tree, query_envelope, &union_if_intersecting, &cxt);
+
+		GEOSGeom_destroy(query_envelope);
+		GEOSPreparedGeom_destroy(cxt.prep);
+		if (cxt.error)
+		{
+			return LW_FAILURE;
+		}
+	}
+
+	destroy_strtree(tree);
+	return LW_SUCCESS;
+}
+
+/* Identify geometries within a distance tolerance and mark them as being in the same set */
+static int
+union_pairs_within_distance(LWGEOM** geoms, uint32_t num_geoms, UNIONFIND* uf, double tolerance)
+{
+	uint32_t i;
+
+	if (num_geoms <= 1)
+	{
+		return LW_SUCCESS;
+	}
+
+	struct STRTree tree = make_strtree((void**) geoms, num_geoms, 1);
+	if (tree.tree == NULL)
+	{
+		destroy_strtree(tree);
+		return LW_FAILURE;
+	}
+
+	for (i = 0; i < num_geoms; i++)
+	{
+		struct UnionIfDWithinContext cxt =
+		{
+			.uf = uf,
+			.error = 0,
+			.p = &i,
+			.geoms = geoms,
+			.tolerance = tolerance
+		};
+
+        const GBOX* geom_extent = lwgeom_get_bbox(geoms[i]);
+        if (!geom_extent)
+        {
+            /* Empty geometry */
+            continue;
+        }
+		GBOX* query_extent = gbox_clone(geom_extent);
+		gbox_expand(query_extent, tolerance);
+		GEOSGeometry* query_envelope = GBOX2GEOS(query_extent);
+
+		if (!query_envelope)
+		{
+			destroy_strtree(tree);
+			return LW_FAILURE;
+		}
+
+		GEOSSTRtree_query(tree.tree, query_envelope, &union_if_dwithin, &cxt);
+
+		lwfree(query_extent);
+		GEOSGeom_destroy(query_envelope);
+		if (cxt.error)
+		{
+			return LW_FAILURE;
+		}
+	}
+
+	destroy_strtree(tree);
+	return LW_SUCCESS;
+}
+
+/** Takes an array of GEOSGeometry* and constructs an array of GEOSGeometry*, where each element in the constructed
+ *  array is a GeometryCollection representing a set of interconnected geometries. Caller is responsible for
+ *  freeing the input array, but not for destroying the GEOSGeometry* items inside it.  */
+int
+cluster_intersecting(GEOSGeometry** geoms, uint32_t num_geoms, GEOSGeometry*** clusterGeoms, uint32_t* num_clusters)
+{
+	int cluster_success;
+	UNIONFIND* uf = UF_create(num_geoms);
+
+	if (union_intersecting_pairs(geoms, num_geoms, uf) == LW_FAILURE)
+	{
+		UF_destroy(uf);
+		return LW_FAILURE;
+	}
+
+	cluster_success = combine_geometries(uf, (void**) geoms, num_geoms, (void***) clusterGeoms, num_clusters, 0);
+	UF_destroy(uf);
+	return cluster_success;
+}
+
+/** Takes an array of LWGEOM* and constructs an array of LWGEOM*, where each element in the constructed array is a
+ *  GeometryCollection representing a set of geometries separated by no more than the specified tolerance. Caller is
+ *  responsible for freeing the input array, but not the LWGEOM* items inside it. */
+int
+cluster_within_distance(LWGEOM** geoms, uint32_t num_geoms, double tolerance, LWGEOM*** clusterGeoms, uint32_t* num_clusters)
+{
+	int cluster_success;
+	UNIONFIND* uf = UF_create(num_geoms);
+
+	if (union_pairs_within_distance(geoms, num_geoms, uf, tolerance) == LW_FAILURE)
+	{
+		UF_destroy(uf);
+		return LW_FAILURE;
+	}
+
+	cluster_success = combine_geometries(uf, (void**) geoms, num_geoms, (void***) clusterGeoms, num_clusters, 1);
+	UF_destroy(uf);
+	return cluster_success;
+}
+
+/** Uses a UNIONFIND to identify the set with which each input geometry is associated, and groups the geometries into
+ *  GeometryCollections.  Supplied geometry array may be of either LWGEOM* or GEOSGeometry*; is_lwgeom is used to
+ *  identify which. Caller is responsible for freeing input geometry array but not the items contained within it. */
+static int
+combine_geometries(UNIONFIND* uf, void** geoms, uint32_t num_geoms, void*** clusterGeoms, uint32_t* num_clusters, char is_lwgeom)
+{
+	size_t i, j, k;
+
+	/* Combine components of each cluster into their own GeometryCollection */
+	*num_clusters = uf->num_clusters;
+	*clusterGeoms = lwalloc(*num_clusters * sizeof(void*));
+
+	void** geoms_in_cluster = lwalloc(num_geoms * sizeof(void*));
+	uint32_t* ordered_components = UF_ordered_by_cluster(uf);
+	for (i = 0, j = 0, k = 0; i < num_geoms; i++)
+	{
+		geoms_in_cluster[j++] = geoms[ordered_components[i]];
+
+		/* Is this the last geometry in the component? */
+		if ((i == num_geoms - 1) ||
+		        (UF_find(uf, ordered_components[i]) != UF_find(uf, ordered_components[i+1])))
+		{
+			if (is_lwgeom)
+			{
+				LWGEOM** components = lwalloc(num_geoms * sizeof(LWGEOM*));
+				memcpy(components, geoms_in_cluster, num_geoms * sizeof(LWGEOM*));
+				(*clusterGeoms)[k++] = lwcollection_construct(COLLECTIONTYPE, components[0]->srid, NULL, j, (LWGEOM**) components);
+			}
+			else
+			{
+				(*clusterGeoms)[k++] = GEOSGeom_createCollection(GEOS_GEOMETRYCOLLECTION, (GEOSGeometry**) geoms_in_cluster, j);
+			}
+			j = 0;
+		}
+	}
+
+	lwfree(geoms_in_cluster);
+	lwfree(ordered_components);
+
+	return LW_SUCCESS;
+}
diff --git a/liblwgeom/lwgeom_geos_node.c b/liblwgeom/lwgeom_geos_node.c
index 0773af9..61a0894 100644
--- a/liblwgeom/lwgeom_geos_node.c
+++ b/liblwgeom/lwgeom_geos_node.c
@@ -95,7 +95,7 @@ lwgeom_extract_unique_endpoints(const LWGEOM* lwg)
 	LWGEOM* ret;
 	GEOSGeometry *gepu;
 	LWMPOINT *epall = lwgeom_extract_endpoints(lwg);
-	GEOSGeometry *gepall = LWGEOM2GEOS((LWGEOM*)epall);
+	GEOSGeometry *gepall = LWGEOM2GEOS((LWGEOM*)epall, 1);
 	lwmpoint_free(epall);
 	if ( ! gepall ) {
 		lwerror("LWGEOM2GEOS: %s", lwgeom_geos_errmsg);
@@ -146,7 +146,7 @@ lwgeom_node(const LWGEOM* lwgeom_in)
 	}
 
 	initGEOS(lwgeom_geos_error, lwgeom_geos_error);
-	g1 = LWGEOM2GEOS(lwgeom_in);
+	g1 = LWGEOM2GEOS(lwgeom_in, 1);
 	if ( ! g1 ) {
 		lwerror("LWGEOM2GEOS: %s", lwgeom_geos_errmsg);
 		return NULL;
diff --git a/liblwgeom/lwgeom_geos_split.c b/liblwgeom/lwgeom_geos_split.c
index 336ceeb..2517340 100644
--- a/liblwgeom/lwgeom_geos_split.c
+++ b/liblwgeom/lwgeom_geos_split.c
@@ -1,17 +1,17 @@
 /**********************************************************************
- * $Id: lwgeom_geos.c 5258 2010-02-17 21:02:49Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
  *
- * Copyright 2009-2010 Sandro Santilli <strk at keybit.net>
+ * Copyright 2011-2015 Sandro Santilli <strk at keybit.net>
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
  *
  **********************************************************************
  *
- * Split polygon by line, line by line, line by point.
+ * Split (multi)polygon by line, line by (multi)line
+ * or (multi)polygon boundary, line by point.
  * Returns at most components as a collection.
  * First element of the collection is always the part which
  * remains after the cut, while the second element is the
@@ -20,7 +20,6 @@
  * For a line cut by a point the part which remains is the one
  * from start of the line to the cut point.
  *
- *
  * Author: Sandro Santilli <strk at keybit.net>
  *
  * Work done for Faunalia (http://www.faunalia.it) with fundings
@@ -31,6 +30,8 @@
  *
  * [1] http://trac.osgeo.org/postgis/wiki/UsersWikiSplitPolygonWithLineString
  *
+ * Further evolved for RT-SITA to allow splitting lines by multilines
+ * and (multi)polygon boundaries (CIG 6002233F59)
  *
  **********************************************************************/
 
@@ -40,8 +41,9 @@
 #include <string.h>
 #include <assert.h>
 
-static LWGEOM* lwline_split_by_line(const LWLINE* lwgeom_in, const LWLINE* blade_in);
+static LWGEOM* lwline_split_by_line(const LWLINE* lwgeom_in, const LWGEOM* blade_in);
 static LWGEOM* lwline_split_by_point(const LWLINE* lwgeom_in, const LWPOINT* blade_in);
+static LWGEOM* lwline_split_by_mpoint(const LWLINE* lwgeom_in, const LWMPOINT* blade_in);
 static LWGEOM* lwline_split(const LWLINE* lwgeom_in, const LWGEOM* blade_in);
 static LWGEOM* lwpoly_split_by_line(const LWPOLY* lwgeom_in, const LWLINE* blade_in);
 static LWGEOM* lwcollection_split(const LWCOLLECTION* lwcoll_in, const LWGEOM* blade_in);
@@ -49,7 +51,7 @@ static LWGEOM* lwpoly_split(const LWPOLY* lwpoly_in, const LWGEOM* blade_in);
 
 /* Initializes and uses GEOS internally */
 static LWGEOM*
-lwline_split_by_line(const LWLINE* lwline_in, const LWLINE* blade_in)
+lwline_split_by_line(const LWLINE* lwline_in, const LWGEOM* blade_in)
 {
 	LWGEOM** components;
 	LWGEOM* diff;
@@ -59,6 +61,12 @@ lwline_split_by_line(const LWLINE* lwline_in, const LWLINE* blade_in)
 	GEOSGeometry* g2;
 	int ret;
 
+	/* ASSERT blade_in is LINE or MULTILINE */
+	assert (blade_in->type == LINETYPE ||
+	        blade_in->type == MULTILINETYPE ||
+	        blade_in->type == POLYGONTYPE ||
+	        blade_in->type == MULTIPOLYGONTYPE );
+
 	/* Possible outcomes:
 	 *
 	 *  1. The lines do not cross or overlap
@@ -69,13 +77,13 @@ lwline_split_by_line(const LWLINE* lwline_in, const LWLINE* blade_in)
 
 	initGEOS(lwgeom_geos_error, lwgeom_geos_error);
 
-	g1 = LWGEOM2GEOS((LWGEOM*)lwline_in);
+	g1 = LWGEOM2GEOS((LWGEOM*)lwline_in, 0);
 	if ( ! g1 )
 	{
 		lwerror("LWGEOM2GEOS: %s", lwgeom_geos_errmsg);
 		return NULL;
 	}
-	g2 = LWGEOM2GEOS((LWGEOM*)blade_in);
+	g2 = LWGEOM2GEOS(blade_in, 0);
 	if ( ! g2 )
 	{
 		GEOSGeom_destroy(g1);
@@ -83,6 +91,20 @@ lwline_split_by_line(const LWLINE* lwline_in, const LWLINE* blade_in)
 		return NULL;
 	}
 
+	/* If blade is a polygon, pick its boundary */
+	if ( blade_in->type == POLYGONTYPE || blade_in->type == MULTIPOLYGONTYPE )
+	{
+		gdiff = GEOSBoundary(g2);
+		GEOSGeom_destroy(g2);
+		if ( ! gdiff )
+		{
+			GEOSGeom_destroy(g1);
+			lwerror("GEOSBoundary: %s", lwgeom_geos_errmsg);
+			return NULL;
+		}
+		g2 = gdiff; gdiff = NULL;
+	}
+
 	/* If interior intersecton is linear we can't split */
 	ret = GEOSRelatePattern(g1, g2, "1********");
 	if ( 2 == ret )
@@ -148,7 +170,7 @@ lwline_split_by_point(const LWLINE* lwline_in, const LWPOINT* blade_in)
 		FLAGS_GET_M(lwline_in->flags));
 	if ( lwline_split_by_point_to(lwline_in, blade_in, out) < 2 )
 	{
-		lwmline_add_lwline(out, lwline_clone(lwline_in));
+		lwmline_add_lwline(out, lwline_clone_deep(lwline_in));
 	}
 
 	/* Turn multiline into collection */
@@ -157,6 +179,43 @@ lwline_split_by_point(const LWLINE* lwline_in, const LWPOINT* blade_in)
 	return (LWGEOM*)out;
 }
 
+static LWGEOM*
+lwline_split_by_mpoint(const LWLINE* lwline_in, const LWMPOINT* mp)
+{
+  LWMLINE* out;
+  int i, j;
+
+  out = lwmline_construct_empty(lwline_in->srid,
+          FLAGS_GET_Z(lwline_in->flags),
+          FLAGS_GET_M(lwline_in->flags));
+  lwmline_add_lwline(out, lwline_clone_deep(lwline_in));
+
+  for (i=0; i<mp->ngeoms; ++i)
+  {
+    for (j=0; j<out->ngeoms; ++j)
+    {
+      lwline_in = out->geoms[j];
+      LWPOINT *blade_in = mp->geoms[i];
+      int ret = lwline_split_by_point_to(lwline_in, blade_in, out);
+      if ( 2 == ret )
+      {
+        /* the point splits this line,
+         * 2 splits were added to collection.
+         * We'll move the latest added into
+         * the slot of the current one.
+         */
+        lwline_free(out->geoms[j]);
+        out->geoms[j] = out->geoms[--out->ngeoms];
+      }
+    }
+  }
+
+  /* Turn multiline into collection */
+  out->type = COLLECTIONTYPE;
+
+  return (LWGEOM*)out;
+}
+
 int
 lwline_split_by_point_to(const LWLINE* lwline_in, const LWPOINT* blade_in,
                          LWMLINE* v)
@@ -226,9 +285,14 @@ lwline_split(const LWLINE* lwline_in, const LWGEOM* blade_in)
 	{
 	case POINTTYPE:
 		return lwline_split_by_point(lwline_in, (LWPOINT*)blade_in);
+	case MULTIPOINTTYPE:
+		return lwline_split_by_mpoint(lwline_in, (LWMPOINT*)blade_in);
 
 	case LINETYPE:
-		return lwline_split_by_line(lwline_in, (LWLINE*)blade_in);
+	case MULTILINETYPE:
+	case POLYGONTYPE:
+	case MULTIPOLYGONTYPE:
+		return lwline_split_by_line(lwline_in, blade_in);
 
 	default:
 		lwerror("Splitting a Line by a %s is unsupported",
@@ -262,7 +326,7 @@ lwpoly_split_by_line(const LWPOLY* lwpoly_in, const LWLINE* blade_in)
 
 	initGEOS(lwgeom_geos_error, lwgeom_geos_error);
 
-	g1 = LWGEOM2GEOS((LWGEOM*)lwpoly_in);
+	g1 = LWGEOM2GEOS((LWGEOM*)lwpoly_in, 0);
 	if ( NULL == g1 )
 	{
 		lwerror("LWGEOM2GEOS: %s", lwgeom_geos_errmsg);
@@ -276,7 +340,7 @@ lwpoly_split_by_line(const LWPOLY* lwpoly_in, const LWLINE* blade_in)
 		return NULL;
 	}
 
-	g2 = LWGEOM2GEOS((LWGEOM*)blade_in);
+	g2 = LWGEOM2GEOS((LWGEOM*)blade_in, 0);
 	if ( NULL == g2 )
 	{
 		GEOSGeom_destroy(g1);
diff --git a/liblwgeom/lwgeom_log.h b/liblwgeom/lwgeom_log.h
index 9671065..f26b65e 100644
--- a/liblwgeom/lwgeom_log.h
+++ b/liblwgeom/lwgeom_log.h
@@ -31,7 +31,7 @@
 #define LWDEBUG(level, msg) \
         do { \
             if (POSTGIS_DEBUG_LEVEL >= level) \
-              lwnotice("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__); \
+              lwdebug(level, "[%s:%s:%d] " msg, __FILE__, __func__, __LINE__); \
         } while (0);
 
 /* Display a formatted notice at the given debug level
@@ -39,7 +39,7 @@
 #define LWDEBUGF(level, msg, ...) \
         do { \
             if (POSTGIS_DEBUG_LEVEL >= level) \
-              lwnotice("[%s:%s:%d] " msg, \
+              lwdebug(level, "[%s:%s:%d] " msg, \
                 __FILE__, __func__, __LINE__, __VA_ARGS__); \
         } while (0);
 
@@ -57,4 +57,35 @@
 
 #endif /* POSTGIS_DEBUG_LEVEL <= 0 */
 
+/**
+ * Write a notice out to the notice handler.
+ *
+ * Uses standard printf() substitutions.
+ * Use for messages you always want output.
+ * For debugging, use LWDEBUG() or LWDEBUGF().
+ * @ingroup logging
+ */
+void lwnotice(const char *fmt, ...);
+
+/**
+ * Write a notice out to the error handler.
+ *
+ * Uses standard printf() substitutions.
+ * Use for errors you always want output.
+ * For debugging, use LWDEBUG() or LWDEBUGF().
+ * @ingroup logging
+ */
+void lwerror(const char *fmt, ...);
+
+/**
+ * Write a debug message out. 
+ * Don't call this function directly, use the 
+ * macros, LWDEBUG() or LWDEBUGF(), for
+ * efficiency.
+ * @ingroup logging
+ */
+void lwdebug(int level, const char *fmt, ...);
+
+
+
 #endif /* LWGEOM_LOG_H */
diff --git a/liblwgeom/lwgeom_sfcgal.c b/liblwgeom/lwgeom_sfcgal.c
index b9c6822..de3f79c 100644
--- a/liblwgeom/lwgeom_sfcgal.c
+++ b/liblwgeom/lwgeom_sfcgal.c
@@ -12,8 +12,6 @@
  *
  **********************************************************************/
 
-
-#include <assert.h>
 #include "lwgeom_sfcgal.h"
 
 static int SFCGAL_type_to_lwgeom_type(sfcgal_geometry_type_t type);
@@ -268,7 +266,7 @@ ptarray_to_SFCGAL(const POINTARRAY* pa, int type)
 LWGEOM*
 SFCGAL2LWGEOM(const sfcgal_geometry_t* geom, int force3D, int srid)
 {
-	uint32_t ngeoms, nshells;
+	uint32_t ngeoms, nshells, nsolids;
 	uint32_t i, j, k;
 	int want3d;
 
@@ -330,16 +328,24 @@ SFCGAL2LWGEOM(const sfcgal_geometry_t* geom, int force3D, int srid)
 		LWGEOM** geoms = NULL;
 		if (ngeoms)
 		{
+			nsolids = 0;
 			geoms = (LWGEOM**) lwalloc(sizeof(LWGEOM*) * ngeoms);
 			for (i = 0; i < ngeoms; i++)
 			{
 				const sfcgal_geometry_t* g = sfcgal_geometry_collection_geometry_n(geom, i);
 				geoms[i] = SFCGAL2LWGEOM(g, 0, srid);
+				if ( FLAGS_GET_SOLID( geoms[i]->flags ) ) ++nsolids;
 			}
 			geoms = (LWGEOM**) lwrealloc(geoms, sizeof(LWGEOM*) * ngeoms);
 		}
-		return (LWGEOM*) lwcollection_construct(SFCGAL_type_to_lwgeom_type(
-		        sfcgal_geometry_type_id(geom)), srid, NULL, ngeoms, geoms);
+		LWGEOM* rgeom = (LWGEOM*) lwcollection_construct(SFCGAL_type_to_lwgeom_type(
+				sfcgal_geometry_type_id(geom)), srid, NULL, ngeoms, geoms);
+		if ( ngeoms )
+		{
+		        if ( ngeoms == nsolids ) FLAGS_SET_SOLID( rgeom->flags, 1);
+			else if ( nsolids ) lwnotice("SFCGAL2LWGEOM: SOLID in heterogeneous collection will be treated as a POLYHEDRALSURFACETYPE");
+		}
+		return rgeom;
 	}
 
 #if 0
diff --git a/liblwgeom/lwgeom_sfcgal.h b/liblwgeom/lwgeom_sfcgal.h
index 2e29c6e..4615ed3 100644
--- a/liblwgeom/lwgeom_sfcgal.h
+++ b/liblwgeom/lwgeom_sfcgal.h
@@ -13,7 +13,7 @@
  **********************************************************************/
 
 
-#include "liblwgeom.h"
+#include "liblwgeom_internal.h"
 #include <SFCGAL/capi/sfcgal_c.h>
 
 
diff --git a/liblwgeom/lwgeom_topo.c b/liblwgeom/lwgeom_topo.c
new file mode 100644
index 0000000..86d9bfe
--- /dev/null
+++ b/liblwgeom/lwgeom_topo.c
@@ -0,0 +1,5746 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright (C) 2015 Sandro Santilli <strk at keybit.net>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************
+ *
+ * Topology extension for liblwgeom.
+ * Initially funded by Tuscany Region (Italy) - SITA (CIG: 60351023B8)
+ *
+ **********************************************************************/
+
+
+#include "../postgis_config.h"
+
+/*#define POSTGIS_DEBUG_LEVEL 1*/
+#include "lwgeom_log.h"
+
+#include "liblwgeom_internal.h"
+#include "liblwgeom_topo_internal.h"
+#include "lwgeom_geos.h"
+
+#include <stdio.h>
+#include <inttypes.h> /* for PRId64 */
+#include <errno.h>
+#include <math.h>
+
+#ifdef WIN32
+# define LWTFMT_ELEMID "lld"
+#else
+# define LWTFMT_ELEMID PRId64
+#endif
+
+/* TODO: move this to lwgeom_log.h */
+#define LWDEBUGG(level, geom, msg) \
+  if (POSTGIS_DEBUG_LEVEL >= level) \
+  do { \
+    size_t sz; \
+    char *wkt1 = lwgeom_to_wkt(geom, WKT_EXTENDED, 15, &sz); \
+    LWDEBUGF(level, msg ": %s", wkt1); \
+    lwfree(wkt1); \
+  } while (0);
+
+
+/*********************************************************************
+ *
+ * Backend iface
+ *
+ ********************************************************************/
+
+LWT_BE_IFACE* lwt_CreateBackendIface(const LWT_BE_DATA *data)
+{
+  LWT_BE_IFACE *iface = lwalloc(sizeof(LWT_BE_IFACE));
+  iface->data = data;
+  iface->cb = NULL;
+  return iface;
+}
+
+void lwt_BackendIfaceRegisterCallbacks(LWT_BE_IFACE *iface,
+                                       const LWT_BE_CALLBACKS* cb)
+{
+  iface->cb = cb;
+}
+
+void lwt_FreeBackendIface(LWT_BE_IFACE* iface)
+{
+  lwfree(iface);
+}
+
+/*********************************************************************
+ *
+ * Backend wrappers
+ *
+ ********************************************************************/
+
+#define CHECKCB(be, method) do { \
+  if ( ! (be)->cb || ! (be)->cb->method ) \
+  lwerror("Callback " # method " not registered by backend"); \
+} while (0)
+
+#define CB0(be, method) \
+  CHECKCB(be, method);\
+  return (be)->cb->method((be)->data)
+
+#define CB1(be, method, a1) \
+  CHECKCB(be, method);\
+  return (be)->cb->method((be)->data, a1)
+
+#define CBT0(to, method) \
+  CHECKCB((to)->be_iface, method);\
+  return (to)->be_iface->cb->method((to)->be_topo)
+
+#define CBT1(to, method, a1) \
+  CHECKCB((to)->be_iface, method);\
+  return (to)->be_iface->cb->method((to)->be_topo, a1)
+
+#define CBT2(to, method, a1, a2) \
+  CHECKCB((to)->be_iface, method);\
+  return (to)->be_iface->cb->method((to)->be_topo, a1, a2)
+
+#define CBT3(to, method, a1, a2, a3) \
+  CHECKCB((to)->be_iface, method);\
+  return (to)->be_iface->cb->method((to)->be_topo, a1, a2, a3)
+
+#define CBT4(to, method, a1, a2, a3, a4) \
+  CHECKCB((to)->be_iface, method);\
+  return (to)->be_iface->cb->method((to)->be_topo, a1, a2, a3, a4)
+
+#define CBT5(to, method, a1, a2, a3, a4, a5) \
+  CHECKCB((to)->be_iface, method);\
+  return (to)->be_iface->cb->method((to)->be_topo, a1, a2, a3, a4, a5)
+
+#define CBT6(to, method, a1, a2, a3, a4, a5, a6) \
+  CHECKCB((to)->be_iface, method);\
+  return (to)->be_iface->cb->method((to)->be_topo, a1, a2, a3, a4, a5, a6)
+
+const char *
+lwt_be_lastErrorMessage(const LWT_BE_IFACE* be)
+{
+  CB0(be, lastErrorMessage);
+}
+
+LWT_BE_TOPOLOGY *
+lwt_be_loadTopologyByName(LWT_BE_IFACE *be, const char *name)
+{
+  CB1(be, loadTopologyByName, name);
+}
+
+static int
+lwt_be_topoGetSRID(LWT_TOPOLOGY *topo)
+{
+  CBT0(topo, topoGetSRID);
+}
+
+static double
+lwt_be_topoGetPrecision(LWT_TOPOLOGY *topo)
+{
+  CBT0(topo, topoGetPrecision);
+}
+
+static int
+lwt_be_topoHasZ(LWT_TOPOLOGY *topo)
+{
+  CBT0(topo, topoHasZ);
+}
+
+int
+lwt_be_freeTopology(LWT_TOPOLOGY *topo)
+{
+  CBT0(topo, freeTopology);
+}
+
+LWT_ISO_NODE*
+lwt_be_getNodeById(LWT_TOPOLOGY* topo, const LWT_ELEMID* ids,
+                   int* numelems, int fields)
+{
+  CBT3(topo, getNodeById, ids, numelems, fields);
+}
+
+LWT_ISO_NODE*
+lwt_be_getNodeWithinDistance2D(LWT_TOPOLOGY* topo, LWPOINT* pt,
+                               double dist, int* numelems, int fields,
+                               int limit)
+{
+  CBT5(topo, getNodeWithinDistance2D, pt, dist, numelems, fields, limit);
+}
+
+static LWT_ISO_NODE*
+lwt_be_getNodeWithinBox2D( const LWT_TOPOLOGY* topo,
+                           const GBOX* box, int* numelems, int fields,
+                           int limit )
+{
+  CBT4(topo, getNodeWithinBox2D, box, numelems, fields, limit);
+}
+
+static LWT_ISO_EDGE*
+lwt_be_getEdgeWithinBox2D( const LWT_TOPOLOGY* topo,
+                           const GBOX* box, int* numelems, int fields,
+                           int limit )
+{
+  CBT4(topo, getEdgeWithinBox2D, box, numelems, fields, limit);
+}
+
+static LWT_ISO_FACE*
+lwt_be_getFaceWithinBox2D( const LWT_TOPOLOGY* topo,
+                           const GBOX* box, int* numelems, int fields,
+                           int limit )
+{
+  CBT4(topo, getFaceWithinBox2D, box, numelems, fields, limit);
+}
+
+int
+lwt_be_insertNodes(LWT_TOPOLOGY* topo, LWT_ISO_NODE* node, int numelems)
+{
+  CBT2(topo, insertNodes, node, numelems);
+}
+
+static int
+lwt_be_insertFaces(LWT_TOPOLOGY* topo, LWT_ISO_FACE* face, int numelems)
+{
+  CBT2(topo, insertFaces, face, numelems);
+}
+
+static int
+lwt_be_deleteFacesById(const LWT_TOPOLOGY* topo, const LWT_ELEMID* ids, int numelems)
+{
+  CBT2(topo, deleteFacesById, ids, numelems);
+}
+
+static int
+lwt_be_deleteNodesById(const LWT_TOPOLOGY* topo, const LWT_ELEMID* ids, int numelems)
+{
+  CBT2(topo, deleteNodesById, ids, numelems);
+}
+
+LWT_ELEMID
+lwt_be_getNextEdgeId(LWT_TOPOLOGY* topo)
+{
+  CBT0(topo, getNextEdgeId);
+}
+
+LWT_ISO_EDGE*
+lwt_be_getEdgeById(LWT_TOPOLOGY* topo, const LWT_ELEMID* ids,
+                   int* numelems, int fields)
+{
+  CBT3(topo, getEdgeById, ids, numelems, fields);
+}
+
+static LWT_ISO_FACE*
+lwt_be_getFaceById(LWT_TOPOLOGY* topo, const LWT_ELEMID* ids,
+                   int* numelems, int fields)
+{
+  CBT3(topo, getFaceById, ids, numelems, fields);
+}
+
+static LWT_ISO_EDGE*
+lwt_be_getEdgeByNode(LWT_TOPOLOGY* topo, const LWT_ELEMID* ids,
+                   int* numelems, int fields)
+{
+  CBT3(topo, getEdgeByNode, ids, numelems, fields);
+}
+
+static LWT_ISO_EDGE*
+lwt_be_getEdgeByFace(LWT_TOPOLOGY* topo, const LWT_ELEMID* ids,
+                   int* numelems, int fields)
+{
+  CBT3(topo, getEdgeByFace, ids, numelems, fields);
+}
+
+static LWT_ISO_NODE*
+lwt_be_getNodeByFace(LWT_TOPOLOGY* topo, const LWT_ELEMID* ids,
+                   int* numelems, int fields)
+{
+  CBT3(topo, getNodeByFace, ids, numelems, fields);
+}
+
+LWT_ISO_EDGE*
+lwt_be_getEdgeWithinDistance2D(LWT_TOPOLOGY* topo, LWPOINT* pt,
+                               double dist, int* numelems, int fields,
+                               int limit)
+{
+  CBT5(topo, getEdgeWithinDistance2D, pt, dist, numelems, fields, limit);
+}
+
+int
+lwt_be_insertEdges(LWT_TOPOLOGY* topo, LWT_ISO_EDGE* edge, int numelems)
+{
+  CBT2(topo, insertEdges, edge, numelems);
+}
+
+int
+lwt_be_updateEdges(LWT_TOPOLOGY* topo,
+  const LWT_ISO_EDGE* sel_edge, int sel_fields,
+  const LWT_ISO_EDGE* upd_edge, int upd_fields,
+  const LWT_ISO_EDGE* exc_edge, int exc_fields
+)
+{
+  CBT6(topo, updateEdges, sel_edge, sel_fields,
+                          upd_edge, upd_fields,
+                          exc_edge, exc_fields);
+}
+
+static int
+lwt_be_updateNodes(LWT_TOPOLOGY* topo,
+  const LWT_ISO_NODE* sel_node, int sel_fields,
+  const LWT_ISO_NODE* upd_node, int upd_fields,
+  const LWT_ISO_NODE* exc_node, int exc_fields
+)
+{
+  CBT6(topo, updateNodes, sel_node, sel_fields,
+                          upd_node, upd_fields,
+                          exc_node, exc_fields);
+}
+
+static int
+lwt_be_updateFacesById(LWT_TOPOLOGY* topo,
+  const LWT_ISO_FACE* faces, int numfaces
+)
+{
+  CBT2(topo, updateFacesById, faces, numfaces);
+}
+
+static int
+lwt_be_updateEdgesById(LWT_TOPOLOGY* topo,
+  const LWT_ISO_EDGE* edges, int numedges, int upd_fields
+)
+{
+  CBT3(topo, updateEdgesById, edges, numedges, upd_fields);
+}
+
+static int
+lwt_be_updateNodesById(LWT_TOPOLOGY* topo,
+  const LWT_ISO_NODE* nodes, int numnodes, int upd_fields
+)
+{
+  CBT3(topo, updateNodesById, nodes, numnodes, upd_fields);
+}
+
+int
+lwt_be_deleteEdges(LWT_TOPOLOGY* topo,
+  const LWT_ISO_EDGE* sel_edge, int sel_fields
+)
+{
+  CBT2(topo, deleteEdges, sel_edge, sel_fields);
+}
+
+LWT_ELEMID
+lwt_be_getFaceContainingPoint(LWT_TOPOLOGY* topo, LWPOINT* pt)
+{
+  CBT1(topo, getFaceContainingPoint, pt);
+}
+
+
+int
+lwt_be_updateTopoGeomEdgeSplit(LWT_TOPOLOGY* topo, LWT_ELEMID split_edge, LWT_ELEMID new_edge1, LWT_ELEMID new_edge2)
+{
+  CBT3(topo, updateTopoGeomEdgeSplit, split_edge, new_edge1, new_edge2);
+}
+
+static int
+lwt_be_updateTopoGeomFaceSplit(LWT_TOPOLOGY* topo, LWT_ELEMID split_face,
+                               LWT_ELEMID new_face1, LWT_ELEMID new_face2)
+{
+  CBT3(topo, updateTopoGeomFaceSplit, split_face, new_face1, new_face2);
+}
+
+static int
+lwt_be_checkTopoGeomRemEdge(LWT_TOPOLOGY* topo, LWT_ELEMID edge_id,
+                            LWT_ELEMID face_left, LWT_ELEMID face_right)
+{
+  CBT3(topo, checkTopoGeomRemEdge, edge_id, face_left, face_right);
+}
+
+static int
+lwt_be_checkTopoGeomRemNode(LWT_TOPOLOGY* topo, LWT_ELEMID node_id,
+                            LWT_ELEMID eid1, LWT_ELEMID eid2)
+{
+  CBT3(topo, checkTopoGeomRemNode, node_id, eid1, eid2);
+}
+
+static int
+lwt_be_updateTopoGeomFaceHeal(LWT_TOPOLOGY* topo,
+                             LWT_ELEMID face1, LWT_ELEMID face2,
+                             LWT_ELEMID newface)
+{
+  CBT3(topo, updateTopoGeomFaceHeal, face1, face2, newface);
+}
+
+static int
+lwt_be_updateTopoGeomEdgeHeal(LWT_TOPOLOGY* topo,
+                             LWT_ELEMID edge1, LWT_ELEMID edge2,
+                             LWT_ELEMID newedge)
+{
+  CBT3(topo, updateTopoGeomEdgeHeal, edge1, edge2, newedge);
+}
+
+static LWT_ELEMID*
+lwt_be_getRingEdges( LWT_TOPOLOGY* topo,
+                     LWT_ELEMID edge, int *numedges, int limit )
+{
+  CBT3(topo, getRingEdges, edge, numedges, limit);
+}
+
+
+/* wrappers of backend wrappers... */
+
+int
+lwt_be_ExistsCoincidentNode(LWT_TOPOLOGY* topo, LWPOINT* pt)
+{
+  int exists = 0;
+  lwt_be_getNodeWithinDistance2D(topo, pt, 0, &exists, 0, -1);
+  if ( exists == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return 0;
+  }
+  return exists;
+}
+
+int
+lwt_be_ExistsEdgeIntersectingPoint(LWT_TOPOLOGY* topo, LWPOINT* pt)
+{
+  int exists = 0;
+  lwt_be_getEdgeWithinDistance2D(topo, pt, 0, &exists, 0, -1);
+  if ( exists == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return 0;
+  }
+  return exists;
+}
+
+/************************************************************************
+ *
+ * Utility functions
+ *
+ ************************************************************************/
+
+static void
+_lwt_release_faces(LWT_ISO_FACE *faces, int num_faces)
+{
+  int i;
+  for ( i=0; i<num_faces; ++i ) {
+    if ( faces[i].mbr ) lwfree(faces[i].mbr);
+  }
+  lwfree(faces);
+}
+
+static void
+_lwt_release_edges(LWT_ISO_EDGE *edges, int num_edges)
+{
+  int i;
+  for ( i=0; i<num_edges; ++i ) {
+    if ( edges[i].geom ) lwline_free(edges[i].geom);
+  }
+  lwfree(edges);
+}
+
+static void
+_lwt_release_nodes(LWT_ISO_NODE *nodes, int num_nodes)
+{
+  int i;
+  for ( i=0; i<num_nodes; ++i ) {
+    if ( nodes[i].geom ) lwpoint_free(nodes[i].geom);
+  }
+  lwfree(nodes);
+}
+
+/************************************************************************
+ *
+ * API implementation
+ *
+ ************************************************************************/
+
+LWT_TOPOLOGY *
+lwt_LoadTopology( LWT_BE_IFACE *iface, const char *name )
+{
+  LWT_BE_TOPOLOGY* be_topo;
+  LWT_TOPOLOGY* topo;
+
+  be_topo = lwt_be_loadTopologyByName(iface, name);
+  if ( ! be_topo ) {
+    //lwerror("Could not load topology from backend: %s",
+    lwerror("%s", lwt_be_lastErrorMessage(iface));
+    return NULL;
+  }
+  topo = lwalloc(sizeof(LWT_TOPOLOGY));
+  topo->be_iface = iface;
+  topo->be_topo = be_topo;
+  topo->srid = lwt_be_topoGetSRID(topo);
+  topo->hasZ = lwt_be_topoHasZ(topo);
+  topo->precision = lwt_be_topoGetPrecision(topo);
+
+  return topo;
+}
+
+void
+lwt_FreeTopology( LWT_TOPOLOGY* topo )
+{
+  if ( ! lwt_be_freeTopology(topo) ) {
+    lwnotice("Could not release backend topology memory: %s",
+            lwt_be_lastErrorMessage(topo->be_iface));
+  }
+  lwfree(topo);
+}
+
+LWT_ELEMID
+lwt_AddIsoNode( LWT_TOPOLOGY* topo, LWT_ELEMID face,
+                LWPOINT* pt, int skipISOChecks )
+{
+  LWT_ELEMID foundInFace = -1;
+
+  if ( ! skipISOChecks )
+  {
+    if ( lwt_be_ExistsCoincidentNode(topo, pt) ) /*x*/
+    {
+      lwerror("SQL/MM Spatial exception - coincident node");
+      return -1;
+    }
+    if ( lwt_be_ExistsEdgeIntersectingPoint(topo, pt) ) /*x*/
+    {
+      lwerror("SQL/MM Spatial exception - edge crosses node.");
+      return -1;
+    }
+  }
+
+  if ( face == -1 || ! skipISOChecks )
+  {
+    foundInFace = lwt_be_getFaceContainingPoint(topo, pt); /*x*/
+    if ( foundInFace == -2 ) {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+    if ( foundInFace == -1 ) foundInFace = 0;
+  }
+
+  if ( face == -1 ) {
+    face = foundInFace;
+  }
+  else if ( ! skipISOChecks && foundInFace != face ) {
+#if 0
+    lwerror("SQL/MM Spatial exception - within face %d (not %d)",
+            foundInFace, face);
+#else
+    lwerror("SQL/MM Spatial exception - not within face");
+#endif
+    return -1;
+  }
+
+  LWT_ISO_NODE node;
+  node.node_id = -1;
+  node.containing_face = face;
+  node.geom = pt;
+  if ( ! lwt_be_insertNodes(topo, &node, 1) )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  return node.node_id;
+}
+
+/* Check that an edge does not cross an existing node or edge
+ *
+ * @param myself the id of an edge to skip, if any
+ *               (for ChangeEdgeGeom). Can use 0 for none.
+ *
+ * Return -1 on cross or error, 0 if everything is fine.
+ * Note that before returning -1, lwerror is invoked...
+ */
+static int
+_lwt_CheckEdgeCrossing( LWT_TOPOLOGY* topo,
+                        LWT_ELEMID start_node, LWT_ELEMID end_node,
+                        const LWLINE *geom, LWT_ELEMID myself )
+{
+  int i, num_nodes, num_edges;
+  LWT_ISO_EDGE *edges;
+  LWT_ISO_NODE *nodes;
+  const GBOX *edgebox;
+  GEOSGeometry *edgegg;
+  const GEOSPreparedGeometry* prepared_edge;
+
+  initGEOS(lwnotice, lwgeom_geos_error);
+
+  edgegg = LWGEOM2GEOS( lwline_as_lwgeom(geom), 0);
+  if ( ! edgegg ) {
+    lwerror("Could not convert edge geometry to GEOS: %s", lwgeom_geos_errmsg);
+    return -1;
+  }
+  prepared_edge = GEOSPrepare( edgegg );
+  if ( ! prepared_edge ) {
+    lwerror("Could not prepare edge geometry: %s", lwgeom_geos_errmsg);
+    return -1;
+  }
+  edgebox = lwgeom_get_bbox( lwline_as_lwgeom(geom) );
+
+  /* loop over each node within the edge's gbox */
+  nodes = lwt_be_getNodeWithinBox2D( topo, edgebox, &num_nodes,
+                                            LWT_COL_NODE_ALL, 0 );
+  LWDEBUGF(1, "lwt_be_getNodeWithinBox2D returned %d nodes", num_nodes);
+  if ( num_nodes == -1 ) {
+    GEOSPreparedGeom_destroy(prepared_edge);
+    GEOSGeom_destroy(edgegg);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  for ( i=0; i<num_nodes; ++i )
+  {
+    LWT_ISO_NODE* node = &(nodes[i]);
+    GEOSGeometry *nodegg;
+    int contains;
+    if ( node->node_id == start_node ) continue;
+    if ( node->node_id == end_node ) continue;
+    /* check if the edge contains this node (not on boundary) */
+    nodegg = LWGEOM2GEOS( lwpoint_as_lwgeom(node->geom) , 0);
+    /* ST_RelateMatch(rec.relate, 'T********') */
+    contains = GEOSPreparedContains( prepared_edge, nodegg );
+    GEOSGeom_destroy(nodegg);
+    if (contains == 2)
+    {
+      GEOSPreparedGeom_destroy(prepared_edge);
+      GEOSGeom_destroy(edgegg);
+      _lwt_release_nodes(nodes, num_nodes);
+      lwerror("GEOS exception on PreparedContains: %s", lwgeom_geos_errmsg);
+      return -1;
+    }
+    if ( contains )
+    {
+      GEOSPreparedGeom_destroy(prepared_edge);
+      GEOSGeom_destroy(edgegg);
+      _lwt_release_nodes(nodes, num_nodes);
+      lwerror("SQL/MM Spatial exception - geometry crosses a node");
+      return -1;
+    }
+  }
+  if ( nodes ) _lwt_release_nodes(nodes, num_nodes);
+               /* may be NULL if num_nodes == 0 */
+
+  /* loop over each edge within the edge's gbox */
+  edges = lwt_be_getEdgeWithinBox2D( topo, edgebox, &num_edges, LWT_COL_EDGE_ALL, 0 );
+  LWDEBUGF(1, "lwt_be_getEdgeWithinBox2D returned %d edges", num_edges);
+  if ( num_edges == -1 ) {
+    GEOSPreparedGeom_destroy(prepared_edge);
+    GEOSGeom_destroy(edgegg);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  for ( i=0; i<num_edges; ++i )
+  {
+    LWT_ISO_EDGE* edge = &(edges[i]);
+    LWT_ELEMID edge_id = edge->edge_id;
+    GEOSGeometry *eegg;
+    char *relate;
+    int match;
+
+    if ( edge_id == myself ) continue;
+
+    if ( ! edge->geom ) {
+      _lwt_release_edges(edges, num_edges);
+      lwerror("Edge %d has NULL geometry!", edge_id);
+      return -1;
+    }
+
+    eegg = LWGEOM2GEOS( lwline_as_lwgeom(edge->geom), 0 );
+    if ( ! eegg ) {
+      GEOSPreparedGeom_destroy(prepared_edge);
+      GEOSGeom_destroy(edgegg);
+      _lwt_release_edges(edges, num_edges);
+      lwerror("Could not convert edge geometry to GEOS: %s", lwgeom_geos_errmsg);
+      return -1;
+    }
+
+    LWDEBUGF(2, "Edge %d converted to GEOS", edge_id);
+
+    /* check if the edge crosses our edge (not boundary-boundary) */
+
+    relate = GEOSRelateBoundaryNodeRule(eegg, edgegg, 2);
+    if ( ! relate ) {
+      GEOSGeom_destroy(eegg);
+      GEOSPreparedGeom_destroy(prepared_edge);
+      GEOSGeom_destroy(edgegg);
+      _lwt_release_edges(edges, num_edges);
+      lwerror("GEOSRelateBoundaryNodeRule error: %s", lwgeom_geos_errmsg);
+      return -1;
+    }
+
+    LWDEBUGF(2, "Edge %d relate pattern is %s", edge_id, relate);
+
+    match = GEOSRelatePatternMatch(relate, "F********");
+    if ( match ) {
+      /* error or no interior intersection */
+      GEOSGeom_destroy(eegg);
+      GEOSFree(relate);
+      if ( match == 2 ) {
+        _lwt_release_edges(edges, num_edges);
+        GEOSPreparedGeom_destroy(prepared_edge);
+        GEOSGeom_destroy(edgegg);
+        lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg);
+        return -1;
+      }
+      else continue; /* no interior intersection */
+    }
+
+    match = GEOSRelatePatternMatch(relate, "1FFF*FFF2");
+    if ( match ) {
+      _lwt_release_edges(edges, num_edges);
+      GEOSPreparedGeom_destroy(prepared_edge);
+      GEOSGeom_destroy(edgegg);
+      GEOSGeom_destroy(eegg);
+      GEOSFree(relate);
+      if ( match == 2 ) {
+        lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg);
+      } else {
+        lwerror("SQL/MM Spatial exception - coincident edge %" LWTFMT_ELEMID,
+                edge_id);
+      }
+      return -1;
+    }
+
+    match = GEOSRelatePatternMatch(relate, "1********");
+    if ( match ) {
+      _lwt_release_edges(edges, num_edges);
+      GEOSPreparedGeom_destroy(prepared_edge);
+      GEOSGeom_destroy(edgegg);
+      GEOSGeom_destroy(eegg);
+      GEOSFree(relate);
+      if ( match == 2 ) {
+        lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg);
+      } else {
+        lwerror("Spatial exception - geometry intersects edge %"
+                LWTFMT_ELEMID, edge_id);
+      }
+      return -1;
+    }
+
+    match = GEOSRelatePatternMatch(relate, "T********");
+    if ( match ) {
+      _lwt_release_edges(edges, num_edges);
+      GEOSPreparedGeom_destroy(prepared_edge);
+      GEOSGeom_destroy(edgegg);
+      GEOSGeom_destroy(eegg);
+      GEOSFree(relate);
+      if ( match == 2 ) {
+        lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg);
+      } else {
+        lwerror("SQL/MM Spatial exception - geometry crosses edge %"
+                LWTFMT_ELEMID, edge_id);
+      }
+      return -1;
+    }
+
+    LWDEBUGF(2, "Edge %d analisys completed, it does no harm", edge_id);
+
+    GEOSFree(relate);
+    GEOSGeom_destroy(eegg);
+  }
+  if ( edges ) _lwt_release_edges(edges, num_edges);
+              /* would be NULL if num_edges was 0 */
+
+  GEOSPreparedGeom_destroy(prepared_edge);
+  GEOSGeom_destroy(edgegg);
+
+  return 0;
+}
+
+
+LWT_ELEMID
+lwt_AddIsoEdge( LWT_TOPOLOGY* topo, LWT_ELEMID startNode,
+                LWT_ELEMID endNode, const LWLINE* geom )
+{
+  int num_nodes;
+  int i;
+  LWT_ISO_EDGE newedge;
+  LWT_ISO_NODE *endpoints;
+  LWT_ELEMID containing_face = -1;
+  LWT_ELEMID node_ids[2];
+  LWT_ISO_NODE updated_nodes[2];
+  int skipISOChecks = 0;
+  POINT2D p1, p2;
+
+  /* NOT IN THE SPECS:
+   * A closed edge is never isolated (as it forms a face)
+   */
+  if ( startNode == endNode )
+  {
+    lwerror("Closed edges would not be isolated, try lwt_AddEdgeNewFaces");
+    return -1;
+  }
+
+  if ( ! skipISOChecks )
+  {
+    /* Acurve must be simple */
+    if ( ! lwgeom_is_simple(lwline_as_lwgeom(geom)) )
+    {
+      lwerror("SQL/MM Spatial exception - curve not simple");
+      return -1;
+    }
+  }
+
+  /*
+   * Check for:
+   *    existence of nodes
+   *    nodes faces match
+   * Extract:
+   *    nodes face id
+   *    nodes geoms
+   */
+  num_nodes = 2;
+  node_ids[0] = startNode;
+  node_ids[1] = endNode;
+  endpoints = lwt_be_getNodeById( topo, node_ids, &num_nodes,
+                                             LWT_COL_NODE_ALL );
+  if ( num_nodes < 0 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  else if ( num_nodes < 2 )
+  {
+    if ( num_nodes ) _lwt_release_nodes(endpoints, num_nodes);
+    lwerror("SQL/MM Spatial exception - non-existent node");
+    return -1;
+  }
+  for ( i=0; i<num_nodes; ++i )
+  {
+    const LWT_ISO_NODE *n = &(endpoints[i]);
+    if ( n->containing_face == -1 )
+    {
+      _lwt_release_nodes(endpoints, num_nodes);
+      lwerror("SQL/MM Spatial exception - not isolated node");
+      return -1;
+    }
+    if ( containing_face == -1 ) containing_face = n->containing_face;
+    else if ( containing_face != n->containing_face )
+    {
+      _lwt_release_nodes(endpoints, num_nodes);
+      lwerror("SQL/MM Spatial exception - nodes in different faces");
+      return -1;
+    }
+
+    if ( ! skipISOChecks )
+    {
+      if ( n->node_id == startNode )
+      {
+        /* l) Check that start point of acurve match start node geoms. */
+        getPoint2d_p(geom->points, 0, &p1);
+        getPoint2d_p(n->geom->point, 0, &p2);
+        if ( ! p2d_same(&p1, &p2) )
+        {
+          _lwt_release_nodes(endpoints, num_nodes);
+          lwerror("SQL/MM Spatial exception - "
+                  "start node not geometry start point.");
+          return -1;
+        }
+      }
+      else
+      {
+        /* m) Check that end point of acurve match end node geoms. */
+        getPoint2d_p(geom->points, geom->points->npoints-1, &p1);
+        getPoint2d_p(n->geom->point, 0, &p2);
+        if ( ! p2d_same(&p1, &p2) )
+        {
+          _lwt_release_nodes(endpoints, num_nodes);
+          lwerror("SQL/MM Spatial exception - "
+                  "end node not geometry end point.");
+          return -1;
+        }
+      }
+    }
+  }
+
+  if ( num_nodes ) _lwt_release_nodes(endpoints, num_nodes);
+
+  if ( ! skipISOChecks )
+  {
+    if ( _lwt_CheckEdgeCrossing( topo, startNode, endNode, geom, 0 ) )
+    {
+      /* would have called lwerror already, leaking :( */
+      return -1;
+    }
+  }
+
+  /*
+   * All checks passed, time to prepare the new edge
+   */
+
+  newedge.edge_id = lwt_be_getNextEdgeId( topo );
+  if ( newedge.edge_id == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /* TODO: this should likely be an exception instead ! */
+  if ( containing_face == -1 ) containing_face = 0;
+
+  newedge.start_node = startNode;
+  newedge.end_node = endNode;
+  newedge.face_left = newedge.face_right = containing_face;
+  newedge.next_left = -newedge.edge_id;
+  newedge.next_right = newedge.edge_id;
+  newedge.geom = (LWLINE *)geom; /* const cast.. */
+
+  int ret = lwt_be_insertEdges(topo, &newedge, 1);
+  if ( ret == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  } else if ( ret == 0 ) {
+    lwerror("Insertion of split edge failed (no reason)");
+    return -1;
+  }
+
+  /*
+   * Update Node containing_face values
+   *
+   * the nodes anode and anothernode are no more isolated
+   * because now there is an edge connecting them
+   */ 
+  updated_nodes[0].node_id = startNode;
+  updated_nodes[0].containing_face = -1;
+  updated_nodes[1].node_id = endNode;
+  updated_nodes[1].containing_face = -1;
+  ret = lwt_be_updateNodesById(topo, updated_nodes, 2,
+                               LWT_COL_NODE_CONTAINING_FACE);
+  if ( ret == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  return newedge.edge_id;
+}
+
+static LWCOLLECTION *
+_lwt_EdgeSplit( LWT_TOPOLOGY* topo, LWT_ELEMID edge, LWPOINT* pt, int skipISOChecks, LWT_ISO_EDGE** oldedge )
+{
+  LWGEOM *split;
+  LWCOLLECTION *split_col;
+  int i;
+
+  /* Get edge */
+  i = 1;
+  LWDEBUG(1, "calling lwt_be_getEdgeById");
+  *oldedge = lwt_be_getEdgeById(topo, &edge, &i, LWT_COL_EDGE_ALL);
+  LWDEBUGF(1, "lwt_be_getEdgeById returned %p", *oldedge);
+  if ( ! *oldedge )
+  {
+    LWDEBUGF(1, "lwt_be_getEdgeById returned NULL and set i=%d", i);
+    if ( i == -1 )
+    {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return NULL;
+    }
+    else if ( i == 0 )
+    {
+      lwerror("SQL/MM Spatial exception - non-existent edge");
+      return NULL;
+    }
+    else
+    {
+      lwerror("Backend coding error: getEdgeById callback returned NULL "
+              "but numelements output parameter has value %d "
+              "(expected 0 or 1)", i);
+      return NULL;
+    }
+  }
+
+
+  /*
+   *  - check if a coincident node already exists
+   */
+  if ( ! skipISOChecks )
+  {
+    LWDEBUG(1, "calling lwt_be_ExistsCoincidentNode");
+    if ( lwt_be_ExistsCoincidentNode(topo, pt) ) /*x*/
+    {
+      LWDEBUG(1, "lwt_be_ExistsCoincidentNode returned");
+      _lwt_release_edges(*oldedge, 1);
+      lwerror("SQL/MM Spatial exception - coincident node");
+      return NULL;
+    }
+    LWDEBUG(1, "lwt_be_ExistsCoincidentNode returned");
+  }
+
+  /* Split edge */
+  split = lwgeom_split((LWGEOM*)(*oldedge)->geom, (LWGEOM*)pt);
+  if ( ! split )
+  {
+    _lwt_release_edges(*oldedge, 1);
+    lwerror("could not split edge by point ?");
+    return NULL;
+  }
+  split_col = lwgeom_as_lwcollection(split);
+  if ( ! split_col ) {
+    _lwt_release_edges(*oldedge, 1);
+    lwgeom_free(split);
+    lwerror("lwgeom_as_lwcollection returned NULL");
+    return NULL;
+  }
+  if (split_col->ngeoms < 2) {
+    _lwt_release_edges(*oldedge, 1);
+    lwgeom_free(split);
+    lwerror("SQL/MM Spatial exception - point not on edge");
+    return NULL;
+  }
+
+#if 0
+  {
+  size_t sz;
+  char *wkt = lwgeom_to_wkt((LWGEOM*)split_col, WKT_EXTENDED, 2, &sz);
+  LWDEBUGF(1, "returning split col: %s", wkt);
+  lwfree(wkt);
+  }
+#endif
+  return split_col;
+}
+
+LWT_ELEMID
+lwt_ModEdgeSplit( LWT_TOPOLOGY* topo, LWT_ELEMID edge,
+                  LWPOINT* pt, int skipISOChecks )
+{
+  LWT_ISO_NODE node;
+  LWT_ISO_EDGE* oldedge = NULL;
+  LWCOLLECTION *split_col;
+  const LWGEOM *oldedge_geom;
+  const LWGEOM *newedge_geom;
+  LWT_ISO_EDGE newedge1;
+  LWT_ISO_EDGE seledge, updedge, excedge;
+  int ret;
+
+  split_col = _lwt_EdgeSplit( topo, edge, pt, skipISOChecks, &oldedge );
+  if ( ! split_col ) return -1; /* should have raised an exception */
+  oldedge_geom = split_col->geoms[0];
+  newedge_geom = split_col->geoms[1];
+  /* Make sure the SRID is set on the subgeom */
+  ((LWGEOM*)oldedge_geom)->srid = split_col->srid;
+  ((LWGEOM*)newedge_geom)->srid = split_col->srid;
+
+  /* Add new node, getting new id back */
+  node.node_id = -1;
+  node.containing_face = -1; /* means not-isolated */
+  node.geom = pt;
+  if ( ! lwt_be_insertNodes(topo, &node, 1) )
+  {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if (node.node_id == -1) {
+    /* should have been set by backend */
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend coding error: "
+            "insertNodes callback did not return node_id");
+    return -1;
+  }
+
+  /* Insert the new edge */
+  newedge1.edge_id = lwt_be_getNextEdgeId(topo);
+  if ( newedge1.edge_id == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  newedge1.start_node = node.node_id;
+  newedge1.end_node = oldedge->end_node;
+  newedge1.face_left = oldedge->face_left;
+  newedge1.face_right = oldedge->face_right;
+  newedge1.next_left = oldedge->next_left == -oldedge->edge_id ?
+      -newedge1.edge_id : oldedge->next_left;
+  newedge1.next_right = -oldedge->edge_id;
+  newedge1.geom = lwgeom_as_lwline(newedge_geom);
+  /* lwgeom_split of a line should only return lines ... */
+  if ( ! newedge1.geom ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("first geometry in lwgeom_split output is not a line");
+    return -1;
+  }
+  ret = lwt_be_insertEdges(topo, &newedge1, 1);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  } else if ( ret == 0 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Insertion of split edge failed (no reason)");
+    return -1;
+  }
+
+  /* Update the old edge */
+  updedge.geom = lwgeom_as_lwline(oldedge_geom);
+  /* lwgeom_split of a line should only return lines ... */
+  if ( ! updedge.geom ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("second geometry in lwgeom_split output is not a line");
+    return -1;
+  }
+  updedge.next_left = newedge1.edge_id;
+  updedge.end_node = node.node_id;
+  ret = lwt_be_updateEdges(topo,
+      oldedge, LWT_COL_EDGE_EDGE_ID,
+      &updedge, LWT_COL_EDGE_GEOM|LWT_COL_EDGE_NEXT_LEFT|LWT_COL_EDGE_END_NODE,
+      NULL, 0);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  } else if ( ret == 0 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Edge being splitted (%d) disappeared during operations?", oldedge->edge_id);
+    return -1;
+  } else if ( ret > 1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("More than a single edge found with id %d !", oldedge->edge_id);
+    return -1;
+  }
+
+  /* Update all next edge references to match new layout (ST_ModEdgeSplit) */
+
+  updedge.next_right = -newedge1.edge_id;
+  excedge.edge_id = newedge1.edge_id;
+  seledge.next_right = -oldedge->edge_id;
+  seledge.start_node = oldedge->end_node;
+  ret = lwt_be_updateEdges(topo,
+      &seledge, LWT_COL_EDGE_NEXT_RIGHT|LWT_COL_EDGE_START_NODE,
+      &updedge, LWT_COL_EDGE_NEXT_RIGHT,
+      &excedge, LWT_COL_EDGE_EDGE_ID);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  updedge.next_left = -newedge1.edge_id;
+  excedge.edge_id = newedge1.edge_id;
+  seledge.next_left = -oldedge->edge_id;
+  seledge.end_node = oldedge->end_node;
+  ret = lwt_be_updateEdges(topo,
+      &seledge, LWT_COL_EDGE_NEXT_LEFT|LWT_COL_EDGE_END_NODE,
+      &updedge, LWT_COL_EDGE_NEXT_LEFT,
+      &excedge, LWT_COL_EDGE_EDGE_ID);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /* Update TopoGeometries composition */
+  ret = lwt_be_updateTopoGeomEdgeSplit(topo, oldedge->edge_id, newedge1.edge_id, -1);
+  if ( ! ret ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  _lwt_release_edges(oldedge, 1);
+  lwcollection_free(split_col);
+
+  /* return new node id */
+  return node.node_id;
+}
+
+LWT_ELEMID
+lwt_NewEdgesSplit( LWT_TOPOLOGY* topo, LWT_ELEMID edge,
+                   LWPOINT* pt, int skipISOChecks )
+{
+  LWT_ISO_NODE node;
+  LWT_ISO_EDGE* oldedge = NULL;
+  LWCOLLECTION *split_col;
+  const LWGEOM *oldedge_geom;
+  const LWGEOM *newedge_geom;
+  LWT_ISO_EDGE newedges[2];
+  LWT_ISO_EDGE seledge, updedge;
+  int ret;
+
+  split_col = _lwt_EdgeSplit( topo, edge, pt, skipISOChecks, &oldedge );
+  if ( ! split_col ) return -1; /* should have raised an exception */
+  oldedge_geom = split_col->geoms[0];
+  newedge_geom = split_col->geoms[1];
+  /* Make sure the SRID is set on the subgeom */
+  ((LWGEOM*)oldedge_geom)->srid = split_col->srid;
+  ((LWGEOM*)newedge_geom)->srid = split_col->srid;
+
+  /* Add new node, getting new id back */
+  node.node_id = -1;
+  node.containing_face = -1; /* means not-isolated */
+  node.geom = pt;
+  if ( ! lwt_be_insertNodes(topo, &node, 1) )
+  {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if (node.node_id == -1) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    /* should have been set by backend */
+    lwerror("Backend coding error: "
+            "insertNodes callback did not return node_id");
+    return -1;
+  }
+
+  /* Delete the old edge */
+  seledge.edge_id = edge;
+  ret = lwt_be_deleteEdges(topo, &seledge, LWT_COL_EDGE_EDGE_ID);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /* Get new edges identifiers */
+  newedges[0].edge_id = lwt_be_getNextEdgeId(topo);
+  if ( newedges[0].edge_id == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  newedges[1].edge_id = lwt_be_getNextEdgeId(topo);
+  if ( newedges[1].edge_id == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /* Define the first new edge (to new node) */
+  newedges[0].start_node = oldedge->start_node;
+  newedges[0].end_node = node.node_id;
+  newedges[0].face_left = oldedge->face_left;
+  newedges[0].face_right = oldedge->face_right;
+  newedges[0].next_left = newedges[1].edge_id;
+  if ( oldedge->next_right == edge )
+    newedges[0].next_right = newedges[0].edge_id;
+  else if ( oldedge->next_right == -edge )
+    newedges[0].next_right = -newedges[1].edge_id;
+  else
+    newedges[0].next_right = oldedge->next_right;
+  newedges[0].geom = lwgeom_as_lwline(oldedge_geom);
+  /* lwgeom_split of a line should only return lines ... */
+  if ( ! newedges[0].geom ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("first geometry in lwgeom_split output is not a line");
+    return -1;
+  }
+
+  /* Define the second new edge (from new node) */
+  newedges[1].start_node = node.node_id;
+  newedges[1].end_node = oldedge->end_node;
+  newedges[1].face_left = oldedge->face_left;
+  newedges[1].face_right = oldedge->face_right;
+  newedges[1].next_right = -newedges[0].edge_id;
+  if ( oldedge->next_left == -edge )
+    newedges[1].next_left = -newedges[1].edge_id;
+  else if ( oldedge->next_left == edge )
+    newedges[1].next_left = newedges[0].edge_id;
+  else
+    newedges[1].next_left = oldedge->next_left;
+  newedges[1].geom = lwgeom_as_lwline(newedge_geom);
+  /* lwgeom_split of a line should only return lines ... */
+  if ( ! newedges[1].geom ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("second geometry in lwgeom_split output is not a line");
+    return -1;
+  }
+
+  /* Insert both new edges */
+  ret = lwt_be_insertEdges(topo, newedges, 2);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  } else if ( ret == 0 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Insertion of split edge failed (no reason)");
+    return -1;
+  }
+
+  /* Update all next edge references pointing to old edge id */
+
+  updedge.next_right = newedges[1].edge_id;
+  seledge.next_right = edge;
+  seledge.start_node = oldedge->start_node;
+  ret = lwt_be_updateEdges(topo,
+      &seledge, LWT_COL_EDGE_NEXT_RIGHT|LWT_COL_EDGE_START_NODE,
+      &updedge, LWT_COL_EDGE_NEXT_RIGHT,
+      NULL, 0);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  updedge.next_right = -newedges[0].edge_id;
+  seledge.next_right = -edge;
+  seledge.start_node = oldedge->end_node;
+  ret = lwt_be_updateEdges(topo,
+      &seledge, LWT_COL_EDGE_NEXT_RIGHT|LWT_COL_EDGE_START_NODE,
+      &updedge, LWT_COL_EDGE_NEXT_RIGHT,
+      NULL, 0);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  updedge.next_left = newedges[0].edge_id;
+  seledge.next_left = edge;
+  seledge.end_node = oldedge->start_node;
+  ret = lwt_be_updateEdges(topo,
+      &seledge, LWT_COL_EDGE_NEXT_LEFT|LWT_COL_EDGE_END_NODE,
+      &updedge, LWT_COL_EDGE_NEXT_LEFT,
+      NULL, 0);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  updedge.next_left = -newedges[1].edge_id;
+  seledge.next_left = -edge;
+  seledge.end_node = oldedge->end_node;
+  ret = lwt_be_updateEdges(topo,
+      &seledge, LWT_COL_EDGE_NEXT_LEFT|LWT_COL_EDGE_END_NODE,
+      &updedge, LWT_COL_EDGE_NEXT_LEFT,
+      NULL, 0);
+  if ( ret == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_release(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /* Update TopoGeometries composition */
+  ret = lwt_be_updateTopoGeomEdgeSplit(topo, oldedge->edge_id, newedges[0].edge_id, newedges[1].edge_id);
+  if ( ! ret ) {
+    _lwt_release_edges(oldedge, 1);
+    lwcollection_free(split_col);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  _lwt_release_edges(oldedge, 1);
+  lwcollection_free(split_col);
+
+  /* return new node id */
+  return node.node_id;
+}
+
+/* Data structure used by AddEdgeX functions */
+typedef struct edgeend_t {
+  /* Signed identifier of next clockwise edge (+outgoing,-incoming) */
+  LWT_ELEMID nextCW;
+  /* Identifier of face between myaz and next CW edge */
+  LWT_ELEMID cwFace;
+  /* Signed identifier of next counterclockwise edge (+outgoing,-incoming) */
+  LWT_ELEMID nextCCW;
+  /* Identifier of face between myaz and next CCW edge */
+  LWT_ELEMID ccwFace;
+  int was_isolated;
+  double myaz; /* azimuth of edgeend geometry */
+} edgeend;
+
+/* 
+ * Get first distinct vertex from endpoint
+ * @param pa the pointarray to seek points in
+ * @param ref the point we want to search a distinct one
+ * @param from vertex index to start from
+ * @param dir  1 to go forward
+ *            -1 to go backward
+ * @return 0 if edge is collapsed (no distinct points)
+ */
+static int
+_lwt_FirstDistinctVertex2D(const POINTARRAY* pa, POINT2D *ref, int from, int dir, POINT2D *op)
+{
+  int i, toofar, inc;
+  POINT2D fp;
+
+  if ( dir > 0 )
+  {
+    toofar = pa->npoints;
+    inc = 1;
+  }
+  else
+  {
+    toofar = -1;
+    inc = -1;
+  }
+
+  LWDEBUGF(1, "first point is index %d", from);
+  getPoint2d_p(pa, from, &fp);
+  for ( i = from+inc; i != toofar; i += inc )
+  {
+    LWDEBUGF(1, "testing point %d", i);
+    getPoint2d_p(pa, i, op); /* pick next point */
+    if ( p2d_same(op, &fp) ) continue; /* equal to startpoint */
+    /* this is a good one, neither same of start nor of end point */
+    return 1; /* found */
+  }
+
+  /* no distinct vertices found */
+  return 0;
+}
+
+
+/*
+ * Return non-zero on failure (lwerror is invoked in that case)
+ * Possible failures:
+ *  -1 no two distinct vertices exist
+ *  -2 azimuth computation failed for first edge end
+ */
+static int
+_lwt_InitEdgeEndByLine(edgeend *fee, edgeend *lee, LWLINE *edge,
+                                            POINT2D *fp, POINT2D *lp)
+{
+  POINTARRAY *pa = edge->points;
+  POINT2D pt;
+
+  fee->nextCW = fee->nextCCW =
+  lee->nextCW = lee->nextCCW = 0;
+  fee->cwFace = fee->ccwFace =
+  lee->cwFace = lee->ccwFace = -1;
+
+  /* Compute azimuth of first edge end */
+  LWDEBUG(1, "computing azimuth of first edge end");
+  if ( ! _lwt_FirstDistinctVertex2D(pa, fp, 0, 1, &pt) )
+  {
+    lwerror("Invalid edge (no two distinct vertices exist)");
+    return -1;
+  }
+  if ( ! azimuth_pt_pt(fp, &pt, &(fee->myaz)) ) {
+    lwerror("error computing azimuth of first edgeend [%g %g,%g %g]",
+            fp->x, fp->y, pt.x, pt.y);
+    return -2;
+  }
+  LWDEBUGF(1, "azimuth of first edge end [%g %g,%g %g] is %g",
+            fp->x, fp->y, pt.x, pt.y, fee->myaz);
+
+  /* Compute azimuth of second edge end */
+  LWDEBUG(1, "computing azimuth of second edge end");
+  if ( ! _lwt_FirstDistinctVertex2D(pa, lp, pa->npoints-1, -1, &pt) )
+  {
+    lwerror("Invalid edge (no two distinct vertices exist)");
+    return -1;
+  }
+  if ( ! azimuth_pt_pt(lp, &pt, &(lee->myaz)) ) {
+    lwerror("error computing azimuth of last edgeend [%g %g,%g %g]",
+            lp->x, lp->y, pt.x, pt.y);
+    return -2;
+  }
+  LWDEBUGF(1, "azimuth of last edge end [%g %g,%g %g] is %g",
+            lp->x, lp->y, pt.x, pt.y, lee->myaz);
+
+  return 0;
+}
+
+/*
+ * Find the first edges encountered going clockwise and counterclockwise
+ * around a node, starting from the given azimuth, and take
+ * note of the face on the both sides.
+ *
+ * @param topo the topology to act upon
+ * @param node the identifier of the node to analyze
+ * @param data input (myaz) / output (nextCW, nextCCW) parameter
+ * @param other edgeend, if also incident to given node (closed edge).
+ * @param myedge_id identifier of the edge id that data->myaz belongs to
+ * @return number of incident edges found
+ *
+ */
+static int
+_lwt_FindAdjacentEdges( LWT_TOPOLOGY* topo, LWT_ELEMID node, edgeend *data,
+                        edgeend *other, int myedge_id )
+{
+  LWT_ISO_EDGE *edges;
+  int numedges = 1;
+  int i;
+  double minaz, maxaz;
+  double az, azdif;
+
+  data->nextCW = data->nextCCW = 0;
+  data->cwFace = data->ccwFace = -1;
+
+  if ( other ) {
+    azdif = other->myaz - data->myaz;
+    if ( azdif < 0 ) azdif += 2 * M_PI;
+    minaz = maxaz = azdif;
+    /* TODO: set nextCW/nextCCW/cwFace/ccwFace to other->something ? */
+    LWDEBUGF(1, "Other edge end has cwFace=%d and ccwFace=%d",
+                other->cwFace, other->ccwFace);
+  } else {
+    minaz = maxaz = -1;
+  }
+
+  LWDEBUGF(1, "Looking for edges incident to node %" LWTFMT_ELEMID
+              " and adjacent to azimuth %g", node, data->myaz);
+
+  /* Get incident edges */
+  edges = lwt_be_getEdgeByNode( topo, &node, &numedges, LWT_COL_EDGE_ALL );
+  if ( numedges == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return 0;
+  }
+
+  LWDEBUGF(1, "getEdgeByNode returned %d edges, minaz=%g, maxaz=%g",
+              numedges, minaz, maxaz);
+
+  /* For each incident edge-end (1 or 2): */
+  for ( i = 0; i < numedges; ++i )
+  {
+    LWT_ISO_EDGE *edge;
+    LWGEOM *g;
+    LWGEOM *cleangeom;
+    POINT2D p1, p2;
+    POINTARRAY *pa;
+
+    edge = &(edges[i]);
+
+    if ( edge->edge_id == myedge_id ) continue;
+
+    g = lwline_as_lwgeom(edge->geom);
+    /* NOTE: remove_repeated_points call could be replaced by
+     * some other mean to pick two distinct points for endpoints */
+    cleangeom = lwgeom_remove_repeated_points( g, 0 );
+    pa = lwgeom_as_lwline(cleangeom)->points;
+
+    if ( pa->npoints < 2 ) {{
+      LWT_ELEMID id = edge->edge_id;
+      _lwt_release_edges(edges, numedges);
+      lwgeom_free(cleangeom);
+      lwerror("corrupted topology: edge %" LWTFMT_ELEMID
+              " does not have two distinct points", id);
+      return -1;
+    }}
+
+    if ( edge->start_node == node ) {
+      getPoint2d_p(pa, 0, &p1);
+      getPoint2d_p(pa, 1, &p2);
+      LWDEBUGF(1, "edge %" LWTFMT_ELEMID
+                  " starts on node %" LWTFMT_ELEMID
+                  ", edgeend is %g,%g-%g,%g",
+                  edge->edge_id, node, p1.x, p1.y, p2.x, p2.y);
+      if ( ! azimuth_pt_pt(&p1, &p2, &az) ) {{
+        LWT_ELEMID id = edge->edge_id;
+        _lwt_release_edges(edges, numedges);
+        lwgeom_free(cleangeom);
+        lwerror("error computing azimuth of edge %d first edgeend [%g,%g-%g,%g]",
+                id, p1.x, p1.y, p2.x, p2.y);
+        return -1;
+      }}
+      azdif = az - data->myaz;
+      LWDEBUGF(1, "azimuth of edge %" LWTFMT_ELEMID
+                  ": %g (diff: %g)", edge->edge_id, az, azdif);
+
+      if ( azdif < 0 ) azdif += 2 * M_PI;
+      if ( minaz == -1 ) {
+        minaz = maxaz = azdif;
+        data->nextCW = data->nextCCW = edge->edge_id; /* outgoing */
+        data->cwFace = edge->face_left;
+        data->ccwFace = edge->face_right;
+        LWDEBUGF(1, "new nextCW and nextCCW edge is %" LWTFMT_ELEMID
+                    ", outgoing, "
+                    "with face_left %" LWTFMT_ELEMID " and face_right %" LWTFMT_ELEMID
+                    " (face_right is new ccwFace, face_left is new cwFace)",
+                    edge->edge_id, edge->face_left,
+                    edge->face_right);
+      } else {
+        if ( azdif < minaz ) {
+          data->nextCW = edge->edge_id; /* outgoing */
+          data->cwFace = edge->face_left;
+          LWDEBUGF(1, "new nextCW edge is %" LWTFMT_ELEMID
+                      ", outgoing, "
+                      "with face_left %" LWTFMT_ELEMID " and face_right %" LWTFMT_ELEMID
+                      " (previous had minaz=%g, face_left is new cwFace)",
+                      edge->edge_id, edge->face_left,
+                      edge->face_right, minaz);
+          minaz = azdif;
+        }
+        else if ( azdif > maxaz ) {
+          data->nextCCW = edge->edge_id; /* outgoing */
+          data->ccwFace = edge->face_right;
+          LWDEBUGF(1, "new nextCCW edge is %" LWTFMT_ELEMID
+                      ", outgoing, "
+                      "with face_left %" LWTFMT_ELEMID " and face_right %" LWTFMT_ELEMID
+                      " (previous had maxaz=%g, face_right is new ccwFace)",
+                      edge->edge_id, edge->face_left,
+                      edge->face_right, maxaz);
+          maxaz = azdif;
+        }
+      }
+    }
+
+    if ( edge->end_node == node ) {
+      getPoint2d_p(pa, pa->npoints-1, &p1);
+      getPoint2d_p(pa, pa->npoints-2, &p2);
+      LWDEBUGF(1, "edge %" LWTFMT_ELEMID " ends on node %" LWTFMT_ELEMID
+                  ", edgeend is %g,%g-%g,%g",
+                  edge->edge_id, node, p1.x, p1.y, p2.x, p2.y);
+      if ( ! azimuth_pt_pt(&p1, &p2, &az) ) {{
+        LWT_ELEMID id = edge->edge_id;
+        _lwt_release_edges(edges, numedges);
+        lwgeom_free(cleangeom);
+        lwerror("error computing azimuth of edge %d last edgeend [%g,%g-%g,%g]",
+                id, p1.x, p1.y, p2.x, p2.y);
+        return -1;
+      }}
+      azdif = az - data->myaz;
+      LWDEBUGF(1, "azimuth of edge %" LWTFMT_ELEMID
+                  ": %g (diff: %g)", edge->edge_id, az, azdif);
+      if ( azdif < 0 ) azdif += 2 * M_PI;
+      if ( minaz == -1 ) {
+        minaz = maxaz = azdif;
+        data->nextCW = data->nextCCW = -edge->edge_id; /* incoming */
+        data->cwFace = edge->face_right;
+        data->ccwFace = edge->face_left;
+        LWDEBUGF(1, "new nextCW and nextCCW edge is %" LWTFMT_ELEMID
+                    ", incoming, "
+                    "with face_left %" LWTFMT_ELEMID " and face_right %" LWTFMT_ELEMID
+                    " (face_right is new cwFace, face_left is new ccwFace)",
+                    edge->edge_id, edge->face_left,
+                    edge->face_right);
+      } else {
+        if ( azdif < minaz ) {
+          data->nextCW = -edge->edge_id; /* incoming */
+          data->cwFace = edge->face_right;
+          LWDEBUGF(1, "new nextCW edge is %" LWTFMT_ELEMID
+                      ", incoming, "
+                      "with face_left %" LWTFMT_ELEMID " and face_right %" LWTFMT_ELEMID
+                      " (previous had minaz=%g, face_right is new cwFace)",
+                      edge->edge_id, edge->face_left,
+                      edge->face_right, minaz);
+          minaz = azdif;
+        }
+        else if ( azdif > maxaz ) {
+          data->nextCCW = -edge->edge_id; /* incoming */
+          data->ccwFace = edge->face_left;
+          LWDEBUGF(1, "new nextCCW edge is %" LWTFMT_ELEMID
+                      ", outgoing, from start point, "
+                      "with face_left %" LWTFMT_ELEMID " and face_right %" LWTFMT_ELEMID
+                      " (previous had maxaz=%g, face_left is new ccwFace)",
+                      edge->edge_id, edge->face_left,
+                      edge->face_right, maxaz);
+          maxaz = azdif;
+        }
+      }
+    }
+
+    lwgeom_free(cleangeom);
+  }
+  if ( numedges ) _lwt_release_edges(edges, numedges);
+
+  LWDEBUGF(1, "edges adjacent to azimuth %g"
+              " (incident to node %" LWTFMT_ELEMID ")"
+              ": CW:%" LWTFMT_ELEMID "(%g) CCW:%" LWTFMT_ELEMID "(%g)",
+              data->myaz, node, data->nextCW, minaz,
+              data->nextCCW, maxaz);
+
+  if ( myedge_id < 1 && numedges && data->cwFace != data->ccwFace )
+  {
+    if ( data->cwFace != -1 && data->ccwFace != -1 ) {
+      lwerror("Corrupted topology: adjacent edges %" LWTFMT_ELEMID " and %" LWTFMT_ELEMID
+              " bind different face (%" LWTFMT_ELEMID " and %" LWTFMT_ELEMID ")",
+              data->nextCW, data->nextCCW,
+              data->cwFace, data->ccwFace);
+      return -1;
+    }
+  }
+
+  /* Return number of incident edges found */
+  return numedges;
+}
+
+/*
+ * Get a point internal to the line and write it into the "ip"
+ * parameter
+ *
+ * return 0 on failure (line is empty or collapsed), 1 otherwise
+ */
+static int
+_lwt_GetInteriorEdgePoint(const LWLINE* edge, POINT2D* ip)
+{
+  int i;
+  POINT2D fp, lp, tp;
+  POINTARRAY *pa = edge->points;
+
+  if ( pa->npoints < 2 ) return 0; /* empty or structurally collapsed */
+
+  getPoint2d_p(pa, 0, &fp); /* save first point */
+  getPoint2d_p(pa, pa->npoints-1, &lp); /* save last point */
+  for (i=1; i<pa->npoints-1; ++i)
+  {
+    getPoint2d_p(pa, i, &tp); /* pick next point */
+    if ( p2d_same(&tp, &fp) ) continue; /* equal to startpoint */
+    if ( p2d_same(&tp, &lp) ) continue; /* equal to endpoint */
+    /* this is a good one, neither same of start nor of end point */
+    *ip = tp;
+    return 1; /* found */
+  }
+
+  /* no distinct vertex found */
+
+  /* interpolate if start point != end point */
+
+  if ( p2d_same(&fp, &lp) ) return 0; /* no distinct points in edge */
+ 
+  ip->x = fp.x + ( (lp.x - fp.x) * 0.5 );
+  ip->y = fp.y + ( (lp.y - fp.y) * 0.5 );
+
+  return 1;
+}
+
+/*
+ * Add a split face by walking on the edge side.
+ *
+ * @param topo the topology to act upon
+ * @param sedge edge id and walking side and direction
+ *              (forward,left:positive backward,right:negative)
+ * @param face the face in which the edge identifier is known to be
+ * @param mbr_only do not create a new face but update MBR of the current
+ *
+ * @return:
+ *    -1: if mbr_only was requested
+ *     0: if the edge does not form a ring
+ *    -1: if it is impossible to create a face on the requested side
+ *        ( new face on the side is the universe )
+ *    -2: error
+ *   >0 : id of newly added face
+ */
+static LWT_ELEMID
+_lwt_AddFaceSplit( LWT_TOPOLOGY* topo,
+                   LWT_ELEMID sedge, LWT_ELEMID face,
+                   int mbr_only )
+{
+  int numedges, numfaceedges, i, j;
+  int newface_outside;
+  int num_signed_edge_ids;
+  LWT_ELEMID *signed_edge_ids;
+  LWT_ELEMID *edge_ids;
+  LWT_ISO_EDGE *edges;
+  LWT_ISO_EDGE *ring_edges;
+  LWT_ISO_EDGE *forward_edges = NULL;
+  int forward_edges_count = 0;
+  LWT_ISO_EDGE *backward_edges = NULL;
+  int backward_edges_count = 0;
+
+  signed_edge_ids = lwt_be_getRingEdges(topo, sedge,
+                                        &num_signed_edge_ids, 0);
+  if ( ! signed_edge_ids ) {
+    lwerror("Backend error (no ring edges for edge %" LWTFMT_ELEMID "): %s",
+            sedge, lwt_be_lastErrorMessage(topo->be_iface));
+    return -2;
+  }
+  LWDEBUGF(1, "getRingEdges returned %d edges", num_signed_edge_ids);
+
+  /* You can't get to the other side of an edge forming a ring */
+  for (i=0; i<num_signed_edge_ids; ++i) {
+    if ( signed_edge_ids[i] == -sedge ) {
+      /* No split here */
+      LWDEBUG(1, "not a ring");
+      lwfree( signed_edge_ids );
+      return 0;
+    }
+  }
+
+  LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " splitted face %" LWTFMT_ELEMID " (mbr_only:%d)",
+           sedge, face, mbr_only);
+
+  /* Construct a polygon using edges of the ring */
+  numedges = 0;
+  edge_ids = lwalloc(sizeof(LWT_ELEMID)*num_signed_edge_ids);
+  for (i=0; i<num_signed_edge_ids; ++i) {
+    int absid = llabs(signed_edge_ids[i]);
+    int found = 0;
+    /* Do not add the same edge twice */
+    for (j=0; j<numedges; ++j) {
+      if ( edge_ids[j] == absid ) {
+        found = 1;
+        break;
+      }
+    }
+    if ( ! found ) edge_ids[numedges++] = absid;
+  }
+  i = numedges;
+  ring_edges = lwt_be_getEdgeById(topo, edge_ids, &i,
+                                  LWT_COL_EDGE_EDGE_ID|LWT_COL_EDGE_GEOM);
+  lwfree( edge_ids );
+  if ( i == -1 )
+  {
+    lwfree( signed_edge_ids );
+    /* ring_edges should be NULL */
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -2;
+  }
+  else if ( i != numedges )
+  {
+    lwfree( signed_edge_ids );
+    _lwt_release_edges(ring_edges, numedges);
+    lwerror("Unexpected error: %d edges found when expecting %d", i, numedges);
+    return -2;
+  }
+
+  /* Should now build a polygon with those edges, in the order
+   * given by GetRingEdges.
+   */
+  POINTARRAY *pa = NULL;
+  for ( i=0; i<num_signed_edge_ids; ++i )
+  {
+    LWT_ELEMID eid = signed_edge_ids[i];
+    LWDEBUGF(1, "Edge %d in ring of edge %" LWTFMT_ELEMID " is edge %" LWTFMT_ELEMID,
+                i, sedge, eid);
+    LWT_ISO_EDGE *edge = NULL;
+    POINTARRAY *epa;
+    for ( j=0; j<numedges; ++j )
+    {
+      if ( ring_edges[j].edge_id == llabs(eid) )
+      {
+        edge = &(ring_edges[j]);
+        break;
+      }
+    }
+    if ( edge == NULL )
+    {
+      lwfree( signed_edge_ids );
+      _lwt_release_edges(ring_edges, numedges);
+      lwerror("missing edge that was found in ring edges loop");
+      return -2;
+    }
+
+    if ( pa == NULL )
+    {
+      pa = ptarray_clone_deep(edge->geom->points);
+      if ( eid < 0 ) ptarray_reverse(pa);
+    }
+    else
+    {
+      if ( eid < 0 )
+      {
+        epa = ptarray_clone_deep(edge->geom->points);
+        ptarray_reverse(epa);
+        ptarray_append_ptarray(pa, epa, 0);
+        ptarray_free(epa);
+      }
+      else
+      {
+        /* avoid a clone here */
+        ptarray_append_ptarray(pa, edge->geom->points, 0);
+      }
+    }
+  }
+  POINTARRAY **points = lwalloc(sizeof(POINTARRAY*));
+  points[0] = pa;
+  /* NOTE: the ring may very well have collapsed components,
+   *       which would make it topologically invalid
+   */
+  LWPOLY* shell = lwpoly_construct(0, 0, 1, points);
+
+  int isccw = ptarray_isccw(pa);
+  LWDEBUGF(1, "Ring of edge %" LWTFMT_ELEMID " is %sclockwise",
+              sedge, isccw ? "counter" : "");
+  const GBOX* shellbox = lwgeom_get_bbox(lwpoly_as_lwgeom(shell));
+
+  if ( face == 0 )
+  {
+    /* Edge splitted the universe face */
+    if ( ! isccw )
+    {
+      lwpoly_free(shell);
+      lwfree( signed_edge_ids );
+      _lwt_release_edges(ring_edges, numedges);
+      /* Face on the left side of this ring is the universe face.
+       * Next call (for the other side) should create the split face
+       */
+      LWDEBUG(1, "The left face of this clockwise ring is the universe, "
+                 "won't create a new face there");
+      return -1;
+    }
+  }
+
+  if ( mbr_only && face != 0 )
+  {
+    if ( isccw )
+    {{
+      LWT_ISO_FACE updface;
+      updface.face_id = face;
+      updface.mbr = (GBOX *)shellbox; /* const cast, we won't free it, later */
+      int ret = lwt_be_updateFacesById( topo, &updface, 1 );
+      if ( ret == -1 )
+      {
+        lwfree( signed_edge_ids );
+        _lwt_release_edges(ring_edges, numedges);
+        lwpoly_free(shell); /* NOTE: owns shellbox above */
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -2;
+      }
+      if ( ret != 1 )
+      {
+        lwfree( signed_edge_ids );
+        _lwt_release_edges(ring_edges, numedges);
+        lwpoly_free(shell); /* NOTE: owns shellbox above */
+        lwerror("Unexpected error: %d faces found when expecting 1", ret);
+        return -2;
+      }
+    }}
+    lwfree( signed_edge_ids );
+    _lwt_release_edges(ring_edges, numedges);
+    lwpoly_free(shell); /* NOTE: owns shellbox above */
+    return -1; /* mbr only was requested */
+  }
+
+  LWT_ISO_FACE *oldface = NULL;
+  LWT_ISO_FACE newface;
+  newface.face_id = -1;
+  if ( face != 0 && ! isccw)
+  {{
+    /* Face created an hole in an outer face */
+    int nfaces = 1;
+    oldface = lwt_be_getFaceById(topo, &face, &nfaces, LWT_COL_FACE_ALL);
+    if ( nfaces == -1 )
+    {
+      lwfree( signed_edge_ids );
+      lwpoly_free(shell); /* NOTE: owns shellbox */
+      _lwt_release_edges(ring_edges, numedges);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -2;
+    }
+    if ( nfaces != 1 )
+    {
+      lwfree( signed_edge_ids );
+      lwpoly_free(shell); /* NOTE: owns shellbox */
+      _lwt_release_edges(ring_edges, numedges);
+      lwerror("Unexpected error: %d faces found when expecting 1", nfaces);
+      return -2;
+    }
+    newface.mbr = oldface->mbr;
+  }}
+  else
+  {
+    newface.mbr = (GBOX *)shellbox; /* const cast, we won't free it, later */
+  }
+
+  /* Insert the new face */
+  int ret = lwt_be_insertFaces( topo, &newface, 1 );
+  if ( ret == -1 )
+  {
+    lwfree( signed_edge_ids );
+    lwpoly_free(shell); /* NOTE: owns shellbox */
+    _lwt_release_edges(ring_edges, numedges);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -2;
+  }
+  if ( ret != 1 )
+  {
+    lwfree( signed_edge_ids );
+    lwpoly_free(shell); /* NOTE: owns shellbox */
+    _lwt_release_edges(ring_edges, numedges);
+    lwerror("Unexpected error: %d faces inserted when expecting 1", ret);
+    return -2;
+  }
+  if ( oldface ) {
+    newface.mbr = NULL; /* it is a reference to oldface mbr... */
+    _lwt_release_faces(oldface, 1);
+  }
+
+  /* Update side location of new face edges */
+
+  /* We want the new face to be on the left, if possible */
+  if ( face != 0 && ! isccw ) { /* ring is clockwise in a real face */
+    /* face shrinked, must update all non-contained edges and nodes */
+    LWDEBUG(1, "New face is on the outside of the ring, updating rings in former shell");
+    newface_outside = 1;
+    /* newface is outside */
+  } else {
+    LWDEBUG(1, "New face is on the inside of the ring, updating forward edges in new ring");
+    newface_outside = 0;
+    /* newface is inside */
+  }
+
+  /* Update edges bounding the old face */
+  /* (1) fetch all edges where left_face or right_face is = oldface */
+  int fields = LWT_COL_EDGE_EDGE_ID |
+               LWT_COL_EDGE_FACE_LEFT |
+               LWT_COL_EDGE_FACE_RIGHT |
+               LWT_COL_EDGE_GEOM
+               ;
+  numfaceedges = 1;
+  edges = lwt_be_getEdgeByFace( topo, &face, &numfaceedges, fields );
+  if ( numfaceedges == -1 ) {
+    lwfree( signed_edge_ids );
+    _lwt_release_edges(ring_edges, numedges);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -2;
+  }
+  LWDEBUGF(1, "lwt_be_getEdgeByFace returned %d edges", numfaceedges);
+  GEOSGeometry *shellgg = 0;
+  const GEOSPreparedGeometry* prepshell = 0;
+  shellgg = LWGEOM2GEOS( lwpoly_as_lwgeom(shell), 0);
+  if ( ! shellgg ) {
+    lwpoly_free(shell);
+    lwfree(signed_edge_ids);
+    _lwt_release_edges(ring_edges, numedges);
+    _lwt_release_edges(edges, numfaceedges);
+    lwerror("Could not convert shell geometry to GEOS: %s", lwgeom_geos_errmsg);
+    return -2;
+  }
+  prepshell = GEOSPrepare( shellgg );
+  if ( ! prepshell ) {
+    GEOSGeom_destroy(shellgg);
+    lwpoly_free(shell);
+    lwfree(signed_edge_ids);
+    _lwt_release_edges(ring_edges, numedges);
+    _lwt_release_edges(edges, numfaceedges);
+    lwerror("Could not prepare shell geometry: %s", lwgeom_geos_errmsg);
+    return -2;
+  }
+
+  if ( numfaceedges )
+  {
+    forward_edges = lwalloc(sizeof(LWT_ISO_EDGE)*numfaceedges);
+    forward_edges_count = 0;
+    backward_edges = lwalloc(sizeof(LWT_ISO_EDGE)*numfaceedges);
+    backward_edges_count = 0;
+
+    /* (2) loop over the results and: */
+    for ( i=0; i<numfaceedges; ++i )
+    {
+      LWT_ISO_EDGE *e = &(edges[i]);
+      int found = 0;
+      int contains;
+      GEOSGeometry *egg;
+      LWPOINT *epgeom;
+      POINT2D ep;
+
+      /* (2.1) skip edges whose ID is in the list of boundary edges ? */
+      for ( j=0; j<num_signed_edge_ids; ++j )
+      {
+        int seid = signed_edge_ids[j];
+        if ( seid == e->edge_id )
+        {
+          /* IDEA: remove entry from signed_edge_ids ? */
+          LWDEBUGF(1, "Edge %d is a forward edge of the new ring", e->edge_id);
+          forward_edges[forward_edges_count].edge_id = e->edge_id;
+          forward_edges[forward_edges_count++].face_left = newface.face_id;
+          found++;
+          if ( found == 2 ) break;
+        }
+        else if ( -seid == e->edge_id )
+        {
+          /* IDEA: remove entry from signed_edge_ids ? */
+          LWDEBUGF(1, "Edge %d is a backward edge of the new ring", e->edge_id);
+          backward_edges[backward_edges_count].edge_id = e->edge_id;
+          backward_edges[backward_edges_count++].face_right = newface.face_id;
+          found++;
+          if ( found == 2 ) break;
+        }
+      }
+      if ( found ) continue;
+
+      /* We need to check only a single point
+       * (to avoid collapsed elements of the shell polygon
+       * giving false positive).
+       * The point but must not be an endpoint.
+       */
+      if ( ! _lwt_GetInteriorEdgePoint(e->geom, &ep) )
+      {
+        GEOSPreparedGeom_destroy(prepshell);
+        GEOSGeom_destroy(shellgg);
+        lwfree(signed_edge_ids);
+        lwpoly_free(shell);
+        lwfree(forward_edges); /* contents owned by ring_edges */
+        lwfree(backward_edges); /* contents owned by ring_edges */
+        _lwt_release_edges(ring_edges, numedges);
+        _lwt_release_edges(edges, numfaceedges);
+        lwerror("Could not find interior point for edge %d: %s",
+                e->edge_id, lwgeom_geos_errmsg);
+        return -2;
+      }
+
+      epgeom = lwpoint_make2d(0, ep.x, ep.y);
+      egg = LWGEOM2GEOS( lwpoint_as_lwgeom(epgeom) , 0);
+      lwpoint_free(epgeom);
+      if ( ! egg ) {
+        GEOSPreparedGeom_destroy(prepshell);
+        GEOSGeom_destroy(shellgg);
+        lwfree(signed_edge_ids);
+        lwpoly_free(shell);
+        lwfree(forward_edges); /* contents owned by ring_edges */
+        lwfree(backward_edges); /* contents owned by ring_edges */
+        _lwt_release_edges(ring_edges, numedges);
+        _lwt_release_edges(edges, numfaceedges);
+        lwerror("Could not convert edge geometry to GEOS: %s",
+                lwgeom_geos_errmsg);
+        return -2;
+      }
+      /* IDEA: can be optimized by computing this on our side rather
+       *       than on GEOS (saves conversion of big edges) */
+      /* IDEA: check that bounding box shortcut is taken, or use
+       *       shellbox to do it here */
+      contains = GEOSPreparedContains( prepshell, egg );
+      GEOSGeom_destroy(egg);
+      if ( contains == 2 )
+      {
+        GEOSPreparedGeom_destroy(prepshell);
+        GEOSGeom_destroy(shellgg);
+        lwfree(signed_edge_ids);
+        lwpoly_free(shell);
+        lwfree(forward_edges); /* contents owned by ring_edges */
+        lwfree(backward_edges); /* contents owned by ring_edges */
+        _lwt_release_edges(ring_edges, numedges);
+        _lwt_release_edges(edges, numfaceedges);
+        lwerror("GEOS exception on PreparedContains: %s", lwgeom_geos_errmsg);
+        return -2;
+      }
+      LWDEBUGF(1, "Edge %d %scontained in new ring", e->edge_id,
+                  (contains?"":"not "));
+
+      /* (2.2) skip edges (NOT, if newface_outside) contained in shell */
+      if ( newface_outside )
+      {
+        if ( contains )
+        {
+          LWDEBUGF(1, "Edge %d contained in an hole of the new face",
+                      e->edge_id);
+          continue;
+        }
+      }
+      else
+      {
+        if ( ! contains )
+        {
+          LWDEBUGF(1, "Edge %d not contained in the face shell",
+                      e->edge_id);
+          continue;
+        }
+      }
+
+      /* (2.3) push to forward_edges if left_face = oface */
+      if ( e->face_left == face )
+      {
+        LWDEBUGF(1, "Edge %d has new face on the left side", e->edge_id);
+        forward_edges[forward_edges_count].edge_id = e->edge_id;
+        forward_edges[forward_edges_count++].face_left = newface.face_id;
+      }
+
+      /* (2.4) push to backward_edges if right_face = oface */
+      if ( e->face_right == face )
+      {
+        LWDEBUGF(1, "Edge %d has new face on the right side", e->edge_id);
+        backward_edges[backward_edges_count].edge_id = e->edge_id;
+        backward_edges[backward_edges_count++].face_right = newface.face_id;
+      }
+    }
+
+    /* Update forward edges */
+    if ( forward_edges_count )
+    {
+      ret = lwt_be_updateEdgesById(topo, forward_edges,
+                                   forward_edges_count,
+                                   LWT_COL_EDGE_FACE_LEFT);
+      if ( ret == -1 )
+      {
+        lwfree( signed_edge_ids );
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -2;
+      }
+      if ( ret != forward_edges_count )
+      {
+        lwfree( signed_edge_ids );
+        lwerror("Unexpected error: %d edges updated when expecting %d",
+                ret, forward_edges_count);
+        return -2;
+      }
+    }
+
+    /* Update backward edges */
+    if ( backward_edges_count )
+    {
+      ret = lwt_be_updateEdgesById(topo, backward_edges,
+                                   backward_edges_count,
+                                   LWT_COL_EDGE_FACE_RIGHT);
+      if ( ret == -1 )
+      {
+        lwfree( signed_edge_ids );
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -2;
+      }
+      if ( ret != backward_edges_count )
+      {
+        lwfree( signed_edge_ids );
+        lwerror("Unexpected error: %d edges updated when expecting %d",
+                ret, backward_edges_count);
+        return -2;
+      }
+    }
+
+    lwfree(forward_edges);
+    lwfree(backward_edges);
+
+  }
+
+  _lwt_release_edges(ring_edges, numedges);
+  _lwt_release_edges(edges, numfaceedges);
+
+  /* Update isolated nodes which are now in new face */
+  int numisonodes = 1;
+  fields = LWT_COL_NODE_NODE_ID | LWT_COL_NODE_GEOM;
+  LWT_ISO_NODE *nodes = lwt_be_getNodeByFace(topo, &face,
+                                             &numisonodes, fields);
+  if ( numisonodes == -1 ) {
+    lwfree( signed_edge_ids );
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -2;
+  }
+  if ( numisonodes ) {
+    LWT_ISO_NODE *updated_nodes = lwalloc(sizeof(LWT_ISO_NODE)*numisonodes);
+    int nodes_to_update = 0;
+    for (i=0; i<numisonodes; ++i)
+    {
+      LWT_ISO_NODE *n = &(nodes[i]);
+      GEOSGeometry *ngg;
+      ngg = LWGEOM2GEOS( lwpoint_as_lwgeom(n->geom), 0 );
+      int contains;
+      if ( ! ngg ) {
+        _lwt_release_nodes(nodes, numisonodes);
+        if ( prepshell ) GEOSPreparedGeom_destroy(prepshell);
+        if ( shellgg ) GEOSGeom_destroy(shellgg);
+        lwfree(signed_edge_ids);
+        lwpoly_free(shell);
+        lwerror("Could not convert node geometry to GEOS: %s",
+                lwgeom_geos_errmsg);
+        return -2;
+      }
+      contains = GEOSPreparedContains( prepshell, ngg );
+      GEOSGeom_destroy(ngg);
+      if ( contains == 2 )
+      {
+        _lwt_release_nodes(nodes, numisonodes);
+        if ( prepshell ) GEOSPreparedGeom_destroy(prepshell);
+        if ( shellgg ) GEOSGeom_destroy(shellgg);
+        lwfree(signed_edge_ids);
+        lwpoly_free(shell);
+        lwerror("GEOS exception on PreparedContains: %s", lwgeom_geos_errmsg);
+        return -2;
+      }
+      LWDEBUGF(1, "Node %d is %scontained in new ring, newface is %s",
+                  n->node_id, contains ? "" : "not ",
+                  newface_outside ? "outside" : "inside" );
+      if ( newface_outside )
+      {
+        if ( contains )
+        {
+          LWDEBUGF(1, "Node %d contained in an hole of the new face",
+                      n->node_id);
+          continue;
+        }
+      }
+      else
+      {
+        if ( ! contains )
+        {
+          LWDEBUGF(1, "Node %d not contained in the face shell",
+                      n->node_id);
+          continue;
+        }
+      }
+      updated_nodes[nodes_to_update].node_id = n->node_id;
+      updated_nodes[nodes_to_update++].containing_face =
+                                       newface.face_id;
+      LWDEBUGF(1, "Node %d will be updated", n->node_id);
+    }
+    _lwt_release_nodes(nodes, numisonodes);
+    if ( nodes_to_update )
+    {
+      int ret = lwt_be_updateNodesById(topo, updated_nodes,
+                                       nodes_to_update,
+                                       LWT_COL_NODE_CONTAINING_FACE);
+      if ( ret == -1 ) {
+        lwfree( signed_edge_ids );
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -2;
+      }
+    }
+    lwfree(updated_nodes);
+  }
+
+  GEOSPreparedGeom_destroy(prepshell);
+  GEOSGeom_destroy(shellgg);
+  lwfree(signed_edge_ids);
+  lwpoly_free(shell);
+
+  return newface.face_id;
+}
+
+static LWT_ELEMID
+_lwt_AddEdge( LWT_TOPOLOGY* topo,
+              LWT_ELEMID start_node, LWT_ELEMID end_node,
+              LWLINE *geom, int skipChecks, int modFace )
+{
+  LWT_ISO_EDGE newedge;
+  LWGEOM *cleangeom;
+  edgeend span; /* start point analisys */
+  edgeend epan; /* end point analisys */
+  POINT2D p1, pn, p2;
+  POINTARRAY *pa;
+  LWT_ELEMID node_ids[2];
+  const LWPOINT *start_node_geom = NULL;
+  const LWPOINT *end_node_geom = NULL;
+  int num_nodes;
+  LWT_ISO_NODE *endpoints;
+  int i;
+  int prev_left;
+  int prev_right;
+  LWT_ISO_EDGE seledge;
+  LWT_ISO_EDGE updedge;
+
+  if ( ! skipChecks )
+  {
+    /* curve must be simple */
+    if ( ! lwgeom_is_simple(lwline_as_lwgeom(geom)) )
+    {
+      lwerror("SQL/MM Spatial exception - curve not simple");
+      return -1;
+    }
+  }
+
+  newedge.start_node = start_node;
+  newedge.end_node = end_node;
+  newedge.geom = geom;
+  newedge.face_left = -1;
+  newedge.face_right = -1;
+  cleangeom = lwgeom_remove_repeated_points( lwline_as_lwgeom(geom), 0 );
+
+  pa = lwgeom_as_lwline(cleangeom)->points;
+  if ( pa->npoints < 2 ) {
+    lwgeom_free(cleangeom);
+    lwerror("Invalid edge (no two distinct vertices exist)");
+    return -1;
+  }
+
+  /* Initialize endpoint info (some of that ) */
+  span.cwFace = span.ccwFace =
+  epan.cwFace = epan.ccwFace = -1;
+
+  /* Compute azimut of first edge end on start node */
+  getPoint2d_p(pa, 0, &p1);
+  getPoint2d_p(pa, 1, &pn);
+  if ( p2d_same(&p1, &pn) ) {
+    lwgeom_free(cleangeom);
+    /* Can still happen, for 2-point lines */
+    lwerror("Invalid edge (no two distinct vertices exist)");
+    return -1;
+  }
+  if ( ! azimuth_pt_pt(&p1, &pn, &span.myaz) ) {
+    lwgeom_free(cleangeom);
+    lwerror("error computing azimuth of first edgeend [%g,%g-%g,%g]",
+            p1.x, p1.y, pn.x, pn.y);
+    return -1;
+  }
+  LWDEBUGF(1, "edge's start node is %g,%g", p1.x, p1.y);
+
+  /* Compute azimuth of last edge end on end node */
+  getPoint2d_p(pa, pa->npoints-1, &p2);
+  getPoint2d_p(pa, pa->npoints-2, &pn);
+  lwgeom_free(cleangeom);
+  if ( ! azimuth_pt_pt(&p2, &pn, &epan.myaz) ) {
+    lwerror("error computing azimuth of last edgeend [%g,%g-%g,%g]",
+            p2.x, p2.y, pn.x, pn.y);
+    return -1;
+  }
+  LWDEBUGF(1, "edge's end node is %g,%g", p2.x, p2.y);
+
+  /*
+   * Check endpoints existance, match with Curve geometry
+   * and get face information (if any)
+   */
+
+  if ( start_node != end_node ) {
+    num_nodes = 2;
+    node_ids[0] = start_node;
+    node_ids[1] = end_node;
+  } else {
+    num_nodes = 1;
+    node_ids[0] = start_node;
+  }
+
+  endpoints = lwt_be_getNodeById( topo, node_ids, &num_nodes, LWT_COL_NODE_ALL );
+  if ( num_nodes < 0 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  for ( i=0; i<num_nodes; ++i )
+  {
+    LWT_ISO_NODE* node = &(endpoints[i]);
+    if ( node->containing_face != -1 )
+    {
+      if ( newedge.face_left == -1 )
+      {
+        newedge.face_left = newedge.face_right = node->containing_face;
+      }
+      else if ( newedge.face_left != node->containing_face )
+      {
+        _lwt_release_nodes(endpoints, num_nodes);
+        lwerror("SQL/MM Spatial exception - geometry crosses an edge"
+                " (endnodes in faces %" LWTFMT_ELEMID " and %" LWTFMT_ELEMID ")",
+                newedge.face_left, node->containing_face);
+      }
+    }
+
+    LWDEBUGF(1, "Node %d, with geom %p (looking for %d and %d)",
+             node->node_id, node->geom, start_node, end_node);
+    if ( node->node_id == start_node ) {
+      start_node_geom = node->geom;
+    } 
+    if ( node->node_id == end_node ) {
+      end_node_geom = node->geom;
+    } 
+  }
+
+  if ( ! skipChecks )
+  {
+    if ( ! start_node_geom )
+    {
+      if ( num_nodes ) _lwt_release_nodes(endpoints, num_nodes);
+      lwerror("SQL/MM Spatial exception - non-existent node");
+      return -1;
+    }
+    else
+    {
+      pa = start_node_geom->point;
+      getPoint2d_p(pa, 0, &pn);
+      if ( ! p2d_same(&pn, &p1) )
+      {
+        if ( num_nodes ) _lwt_release_nodes(endpoints, num_nodes);
+        lwerror("SQL/MM Spatial exception"
+                " - start node not geometry start point."
+                //" - start node not geometry start point (%g,%g != %g,%g).", pn.x, pn.y, p1.x, p1.y
+        );
+        return -1;
+      }
+    }
+
+    if ( ! end_node_geom )
+    {
+      if ( num_nodes ) _lwt_release_nodes(endpoints, num_nodes);
+      lwerror("SQL/MM Spatial exception - non-existent node");
+      return -1;
+    }
+    else
+    {
+      pa = end_node_geom->point;
+      getPoint2d_p(pa, 0, &pn);
+      if ( ! p2d_same(&pn, &p2) )
+      {
+        if ( num_nodes ) _lwt_release_nodes(endpoints, num_nodes);
+        lwerror("SQL/MM Spatial exception"
+                " - end node not geometry end point."
+                //" - end node not geometry end point (%g,%g != %g,%g).", pn.x, pn.y, p2.x, p2.y
+        );
+        return -1;
+      }
+    }
+
+    if ( num_nodes ) _lwt_release_nodes(endpoints, num_nodes);
+
+    if ( _lwt_CheckEdgeCrossing( topo, start_node, end_node, geom, 0 ) )
+      return -1;
+
+  } /* ! skipChecks */
+
+  /*
+   * All checks passed, time to prepare the new edge
+   */
+
+  newedge.edge_id = lwt_be_getNextEdgeId( topo );
+  if ( newedge.edge_id == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /* Find adjacent edges to each endpoint */
+  int isclosed = start_node == end_node;
+  int found;
+  found = _lwt_FindAdjacentEdges( topo, start_node, &span,
+                                  isclosed ? &epan : NULL, -1 );
+  if ( found ) {
+    span.was_isolated = 0;
+    newedge.next_right = span.nextCW ? span.nextCW : -newedge.edge_id;
+    prev_left = span.nextCCW ? -span.nextCCW : newedge.edge_id;
+    LWDEBUGF(1, "New edge %d is connected on start node, "
+                "next_right is %d, prev_left is %d",
+                newedge.edge_id, newedge.next_right, prev_left);
+    if ( newedge.face_right == -1 ) {
+      newedge.face_right = span.cwFace;
+    }
+    if ( newedge.face_left == -1 ) {
+      newedge.face_left = span.ccwFace;
+    }
+  } else {
+    span.was_isolated = 1;
+    newedge.next_right = isclosed ? -newedge.edge_id : newedge.edge_id;
+    prev_left = isclosed ? newedge.edge_id : -newedge.edge_id;
+    LWDEBUGF(1, "New edge %d is isolated on start node, "
+                "next_right is %d, prev_left is %d",
+                newedge.edge_id, newedge.next_right, prev_left);
+  }
+
+  found = _lwt_FindAdjacentEdges( topo, end_node, &epan,
+                                  isclosed ? &span : NULL, -1 );
+  if ( found ) {
+    epan.was_isolated = 0;
+    newedge.next_left = epan.nextCW ? epan.nextCW : newedge.edge_id;
+    prev_right = epan.nextCCW ? -epan.nextCCW : -newedge.edge_id;
+    LWDEBUGF(1, "New edge %d is connected on end node, "
+                "next_left is %d, prev_right is %d",
+                newedge.edge_id, newedge.next_left, prev_right);
+    if ( newedge.face_right == -1 ) {
+      newedge.face_right = span.ccwFace;
+    }
+    if ( newedge.face_left == -1 ) {
+      newedge.face_left = span.cwFace;
+    }
+  } else {
+    epan.was_isolated = 1;
+    newedge.next_left = isclosed ? newedge.edge_id : -newedge.edge_id;
+    prev_right = isclosed ? -newedge.edge_id : newedge.edge_id;
+    LWDEBUGF(1, "New edge %d is isolated on end node, "
+                "next_left is %d, prev_right is %d",
+                newedge.edge_id, newedge.next_left, prev_right);
+  }
+
+  /*
+   * If we don't have faces setup by now we must have encountered
+   * a malformed topology (no containing_face on isolated nodes, no
+   * left/right faces on adjacent edges or mismatching values)
+   */
+  if ( newedge.face_left != newedge.face_right )
+  {
+    lwerror("Left(%" LWTFMT_ELEMID ")/right(%" LWTFMT_ELEMID ")"
+            "faces mismatch: invalid topology ?",
+            newedge.face_left, newedge.face_right);
+    return -1;
+  }
+  else if ( newedge.face_left == -1 )
+  {
+    lwerror("Could not derive edge face from linked primitives:"
+            " invalid topology ?");
+    return -1;
+  }
+
+  /*
+   * Insert the new edge, and update all linking
+   */
+
+  int ret = lwt_be_insertEdges(topo, &newedge, 1);
+  if ( ret == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  } else if ( ret == 0 ) {
+    lwerror("Insertion of split edge failed (no reason)");
+    return -1;
+  }
+
+  int updfields;
+
+  /* Link prev_left to us
+   * (if it's not us already) */
+  if ( llabs(prev_left) != newedge.edge_id )
+  {
+    if ( prev_left > 0 )
+    {
+      /* its next_left_edge is us */
+      updfields = LWT_COL_EDGE_NEXT_LEFT;
+      updedge.next_left = newedge.edge_id;
+      seledge.edge_id = prev_left;
+    }
+    else
+    {
+      /* its next_right_edge is us */
+      updfields = LWT_COL_EDGE_NEXT_RIGHT;
+      updedge.next_right = newedge.edge_id;
+      seledge.edge_id = -prev_left;
+    }
+
+    ret = lwt_be_updateEdges(topo,
+        &seledge, LWT_COL_EDGE_EDGE_ID,
+        &updedge, updfields,
+        NULL, 0);
+    if ( ret == -1 ) {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+
+  /* Link prev_right to us 
+   * (if it's not us already) */
+  if ( llabs(prev_right) != newedge.edge_id )
+  {
+    if ( prev_right > 0 )
+    {
+      /* its next_left_edge is -us */
+      updfields = LWT_COL_EDGE_NEXT_LEFT;
+      updedge.next_left = -newedge.edge_id;
+      seledge.edge_id = prev_right;
+    }
+    else
+    {
+      /* its next_right_edge is -us */
+      updfields = LWT_COL_EDGE_NEXT_RIGHT;
+      updedge.next_right = -newedge.edge_id;
+      seledge.edge_id = -prev_right;
+    }
+
+    ret = lwt_be_updateEdges(topo,
+        &seledge, LWT_COL_EDGE_EDGE_ID,
+        &updedge, updfields,
+        NULL, 0);
+    if ( ret == -1 ) {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+
+  /* NOT IN THE SPECS...
+   * set containing_face = null for start_node and end_node
+   * if they where isolated
+   *
+   */
+  LWT_ISO_NODE updnode, selnode;
+  updnode.containing_face = -1;
+  if ( span.was_isolated )
+  {
+    selnode.node_id = start_node;
+    ret = lwt_be_updateNodes(topo,
+        &selnode, LWT_COL_NODE_NODE_ID,
+        &updnode, LWT_COL_NODE_CONTAINING_FACE,
+        NULL, 0);
+    if ( ret == -1 ) {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+  if ( epan.was_isolated )
+  {
+    selnode.node_id = end_node;
+    ret = lwt_be_updateNodes(topo,
+        &selnode, LWT_COL_NODE_NODE_ID,
+        &updnode, LWT_COL_NODE_CONTAINING_FACE,
+        NULL, 0);
+    if ( ret == -1 ) {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+
+  int newface1 = -1;
+
+  if ( ! modFace )
+  {
+    newface1 = _lwt_AddFaceSplit( topo, -newedge.edge_id, newedge.face_left, 0 );
+    if ( newface1 == 0 ) {
+      LWDEBUG(1, "New edge does not split any face");
+      return newedge.edge_id; /* no split */
+    }
+  }
+
+  /* Check face splitting */
+  int newface = _lwt_AddFaceSplit( topo, newedge.edge_id,
+                                   newedge.face_left, 0 );
+  if ( modFace )
+  {
+    if ( newface == 0 ) {
+      LWDEBUG(1, "New edge does not split any face");
+      return newedge.edge_id; /* no split */
+    }
+
+    if ( newface < 0 )
+    {
+      /* face on the left is the universe face */
+      /* must be forming a maximal ring in universal face */
+      newface = _lwt_AddFaceSplit( topo, -newedge.edge_id,
+                                   newedge.face_left, 0 );
+      if ( newface < 0 ) return newedge.edge_id; /* no split */
+    }
+    else
+    {
+      _lwt_AddFaceSplit( topo, -newedge.edge_id, newedge.face_left, 1 );
+    }
+  }
+
+  /*
+   * Update topogeometries, if needed
+   */
+  if ( newedge.face_left != 0 )
+  {
+    ret = lwt_be_updateTopoGeomFaceSplit(topo, newedge.face_left,
+                                         newface, newface1);
+    if ( ret == 0 ) {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+
+    if ( ! modFace )
+    {
+      /* drop old face from the face table */
+      ret = lwt_be_deleteFacesById(topo, &(newedge.face_left), 1);
+      if ( ret == -1 ) {
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -1;
+      }
+    }
+  }
+
+  return newedge.edge_id;
+}
+
+LWT_ELEMID
+lwt_AddEdgeModFace( LWT_TOPOLOGY* topo,
+                    LWT_ELEMID start_node, LWT_ELEMID end_node,
+                    LWLINE *geom, int skipChecks )
+{
+  return _lwt_AddEdge( topo, start_node, end_node, geom, skipChecks, 1 );
+}
+
+LWT_ELEMID
+lwt_AddEdgeNewFaces( LWT_TOPOLOGY* topo,
+                    LWT_ELEMID start_node, LWT_ELEMID end_node,
+                    LWLINE *geom, int skipChecks )
+{
+  return _lwt_AddEdge( topo, start_node, end_node, geom, skipChecks, 0 );
+}
+
+static LWGEOM *
+_lwt_FaceByEdges(LWT_TOPOLOGY *topo, LWT_ISO_EDGE *edges, int numfaceedges)
+{
+  LWGEOM *outg;
+  LWCOLLECTION *bounds;
+  LWGEOM **geoms = lwalloc( sizeof(LWGEOM*) * numfaceedges );
+  int i, validedges = 0;
+
+  for ( i=0; i<numfaceedges; ++i )
+  {
+    /* NOTE: skipping edges with same face on both sides, although
+     *       correct, results in a failure to build faces from
+     *       invalid topologies as expected by legacy tests.
+     * TODO: update legacy tests expectances/unleash this skipping ?
+     */
+    /* if ( edges[i].face_left == edges[i].face_right ) continue; */
+    geoms[validedges++] = lwline_as_lwgeom(edges[i].geom);
+  }
+  if ( ! validedges )
+  {
+    /* Face has no valid boundary edges, we'll return EMPTY, see
+     * https://trac.osgeo.org/postgis/ticket/3221 */
+    if ( numfaceedges ) lwfree(geoms);
+    LWDEBUG(1, "_lwt_FaceByEdges returning empty polygon");
+    return lwpoly_as_lwgeom(
+            lwpoly_construct_empty(topo->srid, topo->hasZ, 0)
+           );
+  }
+  bounds = lwcollection_construct(MULTILINETYPE,
+                                  topo->srid,
+                                  NULL, /* gbox */
+                                  validedges,
+                                  geoms);
+  outg = lwgeom_buildarea( lwcollection_as_lwgeom(bounds) );
+  lwcollection_release(bounds);
+  lwfree(geoms);
+#if 0
+  {
+  size_t sz;
+  char *wkt = lwgeom_to_wkt(outg, WKT_EXTENDED, 2, &sz);
+  LWDEBUGF(1, "_lwt_FaceByEdges returning area: %s", wkt);
+  lwfree(wkt);
+  }
+#endif
+  return outg;
+}
+
+LWGEOM*
+lwt_GetFaceGeometry(LWT_TOPOLOGY* topo, LWT_ELEMID faceid)
+{
+  int numfaceedges;
+  LWT_ISO_EDGE *edges;
+  LWT_ISO_FACE *face;
+  LWPOLY *out;
+  LWGEOM *outg;
+  int i;
+  int fields;
+
+  if ( faceid == 0 )
+  {
+    lwerror("SQL/MM Spatial exception - universal face has no geometry");
+    return NULL;
+  }
+
+  /* Construct the face geometry */
+  numfaceedges = 1;
+  fields = LWT_COL_EDGE_GEOM |
+           LWT_COL_EDGE_FACE_LEFT |
+           LWT_COL_EDGE_FACE_RIGHT
+           ;
+  edges = lwt_be_getEdgeByFace( topo, &faceid, &numfaceedges, fields );
+  if ( numfaceedges == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return NULL;
+  }
+
+  if ( numfaceedges == 0 )
+  {
+    i = 1;
+    face = lwt_be_getFaceById(topo, &faceid, &i, LWT_COL_FACE_FACE_ID);
+    if ( i == -1 ) {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return NULL;
+    }
+    if ( i == 0 ) {
+      lwerror("SQL/MM Spatial exception - non-existent face.");
+      return NULL;
+    }
+    lwfree( face );
+    if ( i > 1 ) {
+      lwerror("Corrupted topology: multiple face records have face_id=%"
+              PRId64, faceid);
+      return NULL;
+    }
+    /* Face has no boundary edges, we'll return EMPTY, see
+     * https://trac.osgeo.org/postgis/ticket/3221 */
+    out = lwpoly_construct_empty(topo->srid, topo->hasZ, 0);
+    return lwpoly_as_lwgeom(out);
+  }
+
+  outg = _lwt_FaceByEdges( topo, edges, numfaceedges );
+  _lwt_release_edges(edges, numfaceedges);
+
+  return outg;
+}
+
+/* Find which edge from the "edges" set defines the next
+ * portion of the given "ring".
+ *
+ * The edge might be either forward or backward.
+ *
+ * @param ring The ring to find definition of.
+ *             It is assumed it does not contain duplicated vertices.
+ * @param from offset of the ring point to start looking from
+ * @param edges array of edges to search into
+ * @param numedges number of edges in the edges array
+ *
+ * @return index of the edge defining the next ring portion or
+ *               -1 if no edge was found to be part of the ring
+ */
+static int
+_lwt_FindNextRingEdge(const POINTARRAY *ring, int from,
+                      const LWT_ISO_EDGE *edges, int numedges)
+{
+  int i;
+  POINT2D p1;
+
+  /* Get starting ring point */
+  getPoint2d_p(ring, from, &p1);
+
+  LWDEBUGF(1, "Ring's 'from' point (%d) is %g,%g", from, p1.x, p1.y);
+
+  /* find the edges defining the next portion of ring starting from
+   * vertex "from" */
+  for ( i=0; i<numedges; ++i )
+  {
+    const LWT_ISO_EDGE *isoe = &(edges[i]);
+    LWLINE *edge = isoe->geom;
+    POINTARRAY *epa = edge->points;
+    POINT2D p2, pt;
+    int match = 0;
+    int j;
+
+    /* Skip if the edge is a dangling one */
+    if ( isoe->face_left == isoe->face_right )
+    {
+      LWDEBUGF(3, "_lwt_FindNextRingEdge: edge %" LWTFMT_ELEMID
+                  " has same face (%" LWTFMT_ELEMID
+                  ") on both sides, skipping",
+                  isoe->edge_id, isoe->face_left);
+      continue;
+    }
+
+#if 0
+    size_t sz;
+    LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " is %s",
+                isoe->edge_id,
+                lwgeom_to_wkt(lwline_as_lwgeom(edge), WKT_EXTENDED, 2, &sz));
+#endif
+
+    /* ptarray_remove_repeated_points ? */
+
+    getPoint2d_p(epa, 0, &p2);
+    LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " 'first' point is %g,%g",
+                isoe->edge_id, p2.x, p2.y);
+    LWDEBUGF(1, "Rings's 'from' point is still %g,%g", p1.x, p1.y);
+    if ( p2d_same(&p1, &p2) )
+    {
+      LWDEBUG(1, "p2d_same(p1,p2) returned true");
+      LWDEBUGF(1, "First point of edge %" LWTFMT_ELEMID
+                  " matches ring vertex %d", isoe->edge_id, from);
+      /* first point matches, let's check next non-equal one */
+      for ( j=1; j<epa->npoints; ++j )
+      {
+        getPoint2d_p(epa, j, &p2);
+        LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " 'next' point %d is %g,%g",
+                    isoe->edge_id, j, p2.x, p2.y);
+        /* we won't check duplicated edge points */
+        if ( p2d_same(&p1, &p2) ) continue;
+        /* we assume there are no duplicated points in ring */
+        getPoint2d_p(ring, from+1, &pt);
+        LWDEBUGF(1, "Ring's point %d is %g,%g",
+                    from+1, pt.x, pt.y);
+        match = p2d_same(&pt, &p2);
+        break; /* we want to check a single non-equal next vertex */
+      }
+#if POSTGIS_DEBUG_LEVEL > 0
+      if ( match ) {
+        LWDEBUGF(1, "Prev point of edge %" LWTFMT_ELEMID
+                    " matches ring vertex %d", isoe->edge_id, from+1);
+      } else {
+        LWDEBUGF(1, "Prev point of edge %" LWTFMT_ELEMID
+                    " does not match ring vertex %d", isoe->edge_id, from+1);
+      }
+#endif
+    }
+
+    if ( ! match )
+    {
+      LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " did not match as forward",
+                 isoe->edge_id);
+      getPoint2d_p(epa, epa->npoints-1, &p2);
+      LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " 'last' point is %g,%g",
+                  isoe->edge_id, p2.x, p2.y);
+      if ( p2d_same(&p1, &p2) )
+      {
+        LWDEBUGF(1, "Last point of edge %" LWTFMT_ELEMID
+                    " matches ring vertex %d", isoe->edge_id, from);
+        /* last point matches, let's check next non-equal one */
+        for ( j=epa->npoints-2; j>=0; --j )
+        {
+          getPoint2d_p(epa, j, &p2);
+          LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " 'prev' point %d is %g,%g",
+                      isoe->edge_id, j, p2.x, p2.y);
+          /* we won't check duplicated edge points */
+          if ( p2d_same(&p1, &p2) ) continue;
+          /* we assume there are no duplicated points in ring */
+          getPoint2d_p(ring, from+1, &pt);
+          LWDEBUGF(1, "Ring's point %d is %g,%g",
+                      from+1, pt.x, pt.y);
+          match = p2d_same(&pt, &p2);
+          break; /* we want to check a single non-equal next vertex */
+        }
+      }
+#if POSTGIS_DEBUG_LEVEL > 0
+      if ( match ) {
+        LWDEBUGF(1, "Prev point of edge %" LWTFMT_ELEMID
+                    " matches ring vertex %d", isoe->edge_id, from+1);
+      } else {
+        LWDEBUGF(1, "Prev point of edge %" LWTFMT_ELEMID
+                    " does not match ring vertex %d", isoe->edge_id, from+1);
+      }
+#endif
+    }
+
+    if ( match ) return i;
+
+  }
+
+  return -1;
+}
+
+/* Reverse values in array between "from" (inclusive)
+ * and "to" (exclusive) indexes */
+static void
+_lwt_ReverseElemidArray(LWT_ELEMID *ary, int from, int to)
+{
+  LWT_ELEMID t;
+  while (from < to)
+  {
+    t = ary[from];
+    ary[from++] = ary[to];
+    ary[to--] = t;
+  }
+}
+
+/* Rotate values in array between "from" (inclusive)
+ * and "to" (exclusive) indexes, so that "rotidx" is
+ * the new value at "from" */
+static void
+_lwt_RotateElemidArray(LWT_ELEMID *ary, int from, int to, int rotidx)
+{
+  _lwt_ReverseElemidArray(ary, from, rotidx-1);
+  _lwt_ReverseElemidArray(ary, rotidx, to-1);
+  _lwt_ReverseElemidArray(ary, from, to-1);
+}
+
+
+int
+lwt_GetFaceEdges(LWT_TOPOLOGY* topo, LWT_ELEMID face_id, LWT_ELEMID **out )
+{
+  LWGEOM *face;
+  LWPOLY *facepoly;
+  LWT_ISO_EDGE *edges;
+  int numfaceedges;
+  int fields, i;
+  int nseid = 0; /* number of signed edge ids */
+  int prevseid;
+  LWT_ELEMID *seid; /* signed edge ids */
+
+  /* Get list of face edges */
+  numfaceedges = 1;
+  fields = LWT_COL_EDGE_EDGE_ID |
+           LWT_COL_EDGE_GEOM |
+           LWT_COL_EDGE_FACE_LEFT |
+           LWT_COL_EDGE_FACE_RIGHT
+           ;
+  edges = lwt_be_getEdgeByFace( topo, &face_id, &numfaceedges, fields );
+  if ( numfaceedges == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if ( ! numfaceedges ) return 0; /* no edges in output */
+
+  /* order edges by occurrence in face */
+
+  face = _lwt_FaceByEdges(topo, edges, numfaceedges);
+  if ( ! face )
+  {
+    /* _lwt_FaceByEdges should have already invoked lwerror in this case */
+    _lwt_release_edges(edges, numfaceedges);
+    return -1;
+  }
+
+  if ( lwgeom_is_empty(face) )
+  {
+    /* no edges in output */
+    _lwt_release_edges(edges, numfaceedges);
+    lwgeom_free(face);
+    return 0;
+  }
+
+  /* force_lhr, if the face is not the universe */
+  /* _lwt_FaceByEdges seems to guaranteed RHR */
+  /* lwgeom_force_clockwise(face); */
+  if ( face_id ) lwgeom_reverse(face);
+
+#if 0
+  {
+  size_t sz;
+  char *wkt = lwgeom_to_wkt(face, WKT_EXTENDED, 6, &sz);
+  LWDEBUGF(1, "Geometry of face %" LWTFMT_ELEMID " is: %s",
+              face_id, wkt);
+  lwfree(wkt);
+  }
+#endif
+
+  facepoly = lwgeom_as_lwpoly(face);
+  if ( ! facepoly )
+  {
+    _lwt_release_edges(edges, numfaceedges);
+    lwgeom_free(face);
+    lwerror("Geometry of face %" LWTFMT_ELEMID " is not a polygon", face_id);
+    return -1;
+  }
+
+  nseid = prevseid = 0;
+  seid = lwalloc( sizeof(LWT_ELEMID) * numfaceedges );
+
+  /* for each ring of the face polygon... */
+  for ( i=0; i<facepoly->nrings; ++i )
+  {
+    const POINTARRAY *ring = facepoly->rings[i];
+    int j = 0;
+    LWT_ISO_EDGE *nextedge;
+    LWLINE *nextline;
+
+    LWDEBUGF(1, "Ring %d has %d points", i, ring->npoints);
+
+    while ( j < ring->npoints-1 )
+    {
+      LWDEBUGF(1, "Looking for edge covering ring %d from vertex %d",
+                  i, j);
+
+      int edgeno = _lwt_FindNextRingEdge(ring, j, edges, numfaceedges);
+      if ( edgeno == -1 )
+      {
+        /* should never happen */
+        _lwt_release_edges(edges, numfaceedges);
+        lwgeom_free(face);
+        lwfree(seid);
+        lwerror("No edge (among %d) found to be defining geometry of face %"
+                LWTFMT_ELEMID, numfaceedges, face_id);
+        return -1;
+      }
+
+      nextedge = &(edges[edgeno]);
+      nextline = nextedge->geom;
+
+      LWDEBUGF(1, "Edge %" LWTFMT_ELEMID
+                  " covers ring %d from vertex %d to %d",
+                  nextedge->edge_id, i, j, j + nextline->points->npoints - 1);
+
+#if 0
+      {
+      size_t sz;
+      char *wkt = lwgeom_to_wkt(lwline_as_lwgeom(nextline), WKT_EXTENDED, 6, &sz);
+      LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " is %s",
+                  nextedge->edge_id, wkt);
+      lwfree(wkt);
+      }
+#endif
+
+      j += nextline->points->npoints - 1;
+
+      /* Add next edge to the output array */
+      seid[nseid++] = nextedge->face_left == face_id ?
+                          nextedge->edge_id :
+                         -nextedge->edge_id;
+
+      /* avoid checking again on next time turn */
+      nextedge->face_left = nextedge->face_right = -1;
+    }
+
+    /* now "scroll" the list of edges so that the one
+     * with smaller absolute edge_id is first */
+    /* Range is: [prevseid, nseid) -- [inclusive, exclusive) */
+    if ( (nseid - prevseid) > 1 )
+    {{
+      LWT_ELEMID minid = 0;
+      int minidx = 0;
+      LWDEBUGF(1, "Looking for smallest id among the %d edges "
+                  "composing ring %d", (nseid-prevseid), i);
+      for ( j=prevseid; j<nseid; ++j )
+      {
+        LWT_ELEMID id = llabs(seid[j]);
+        LWDEBUGF(1, "Abs id of edge in pos %d is %" LWTFMT_ELEMID, j, id);
+        if ( ! minid || id < minid )
+        {
+          minid = id;
+          minidx = j;
+        }
+      }
+      LWDEBUGF(1, "Smallest id is %" LWTFMT_ELEMID
+                  " at position %d", minid, minidx);
+      if ( minidx != prevseid )
+      {
+        _lwt_RotateElemidArray(seid, prevseid, nseid, minidx);
+      }
+    }}
+
+    prevseid = nseid;
+  }
+
+  lwgeom_free(face);
+  _lwt_release_edges(edges, numfaceedges);
+
+  *out = seid;
+  return nseid;
+}
+
+static GEOSGeometry *
+_lwt_EdgeMotionArea(LWLINE *geom, int isclosed)
+{
+  GEOSGeometry *gg;
+  POINT4D p4d;
+  POINTARRAY *pa;
+  POINTARRAY **pas;
+  LWPOLY *poly;
+  LWGEOM *g;
+
+  pas = lwalloc(sizeof(POINTARRAY*));
+
+  initGEOS(lwnotice, lwgeom_geos_error);
+
+  if ( isclosed )
+  {
+    pas[0] = ptarray_clone_deep( geom->points );
+    poly = lwpoly_construct(0, 0, 1, pas);
+    gg = LWGEOM2GEOS( lwpoly_as_lwgeom(poly), 0 );
+    lwpoly_free(poly); /* should also delete the pointarrays */
+  }
+  else
+  {
+    pa = geom->points;
+    getPoint4d_p(pa, 0, &p4d);
+    pas[0] = ptarray_clone_deep( pa );
+    /* don't bother dup check */
+    if ( LW_FAILURE == ptarray_append_point(pas[0], &p4d, LW_TRUE) )
+    {
+      ptarray_free(pas[0]);
+      lwfree(pas);
+      lwerror("Could not append point to pointarray");
+      return NULL;
+    }
+    poly = lwpoly_construct(0, NULL, 1, pas);
+    /* make valid, in case the edge self-intersects on its first-last
+     * vertex segment */
+    g = lwgeom_make_valid(lwpoly_as_lwgeom(poly));
+    lwpoly_free(poly); /* should also delete the pointarrays */
+    if ( ! g )
+    {
+      lwerror("Could not make edge motion area valid");
+      return NULL;
+    }
+    gg = LWGEOM2GEOS(g, 0);
+    lwgeom_free(g);
+  }
+  if ( ! gg )
+  {
+    lwerror("Could not convert old edge area geometry to GEOS: %s",
+            lwgeom_geos_errmsg);
+    return NULL;
+  }
+  return gg;
+}
+
+int
+lwt_ChangeEdgeGeom(LWT_TOPOLOGY* topo, LWT_ELEMID edge_id, LWLINE *geom)
+{
+  LWT_ISO_EDGE *oldedge;
+  LWT_ISO_EDGE newedge;
+  POINT2D p1, p2, pt;
+  int i;
+  int isclosed = 0;
+
+  /* curve must be simple */
+  if ( ! lwgeom_is_simple(lwline_as_lwgeom(geom)) )
+  {
+    lwerror("SQL/MM Spatial exception - curve not simple");
+    return -1;
+  }
+
+  i = 1;
+  oldedge = lwt_be_getEdgeById(topo, &edge_id, &i, LWT_COL_EDGE_ALL);
+  if ( ! oldedge )
+  {
+    LWDEBUGF(1, "lwt_ChangeEdgeGeom: "
+                "lwt_be_getEdgeById returned NULL and set i=%d", i);
+    if ( i == -1 )
+    {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+    else if ( i == 0 )
+    {
+      lwerror("SQL/MM Spatial exception - non-existent edge %"
+              LWTFMT_ELEMID, edge_id);
+      return -1;
+    }
+    else
+    {
+      lwerror("Backend coding error: getEdgeById callback returned NULL "
+              "but numelements output parameter has value %d "
+              "(expected 0 or 1)", i);
+      return -1;
+    }
+  }
+
+  LWDEBUGF(1, "lwt_ChangeEdgeGeom: "
+              "old edge has %d points, new edge has %d points",
+              oldedge->geom->points->npoints, geom->points->npoints);
+
+  /*
+   * e) Check StartPoint consistency
+   */
+  getPoint2d_p(oldedge->geom->points, 0, &p1);
+  getPoint2d_p(geom->points, 0, &pt);
+  if ( ! p2d_same(&p1, &pt) )
+  {
+    _lwt_release_edges(oldedge, 1);
+    lwerror("SQL/MM Spatial exception - "
+            "start node not geometry start point.");
+    return -1;
+  }
+
+  /*
+   * f) Check EndPoint consistency
+   */
+  if ( oldedge->geom->points->npoints < 2 )
+  {
+    _lwt_release_edges(oldedge, 1);
+    lwerror("Corrupted topology: edge %" LWTFMT_ELEMID
+            " has less than 2 vertices", oldedge->edge_id);
+    return -1;
+  }
+  getPoint2d_p(oldedge->geom->points, oldedge->geom->points->npoints-1, &p2);
+  if ( geom->points->npoints < 2 )
+  {
+    _lwt_release_edges(oldedge, 1);
+    lwerror("Invalid edge: less than 2 vertices");
+    return -1;
+  }
+  getPoint2d_p(geom->points, geom->points->npoints-1, &pt);
+  if ( ! p2d_same(&pt, &p2) )
+  {
+    _lwt_release_edges(oldedge, 1);
+    lwerror("SQL/MM Spatial exception - "
+            "end node not geometry end point.");
+    return -1;
+  }
+
+  /* Not in the specs:
+   * if the edge is closed, check we didn't change winding !
+   *       (should be part of isomorphism checking)
+   */
+  if ( oldedge->start_node == oldedge->end_node )
+  {
+    isclosed = 1;
+#if 1 /* TODO: this is actually bogus as a test */
+    /* check for valid edge (distinct vertices must exist) */
+    if ( ! _lwt_GetInteriorEdgePoint(geom, &pt) )
+    {
+      _lwt_release_edges(oldedge, 1);
+      lwerror("Invalid edge (no two distinct vertices exist)");
+      return -1;
+    }
+#endif
+
+    if ( ptarray_isccw(oldedge->geom->points) !=
+         ptarray_isccw(geom->points) )
+    {
+      _lwt_release_edges(oldedge, 1);
+      lwerror("Edge twist at node POINT(%g %g)", p1.x, p1.y);
+      return -1;
+    }
+  }
+
+  if ( _lwt_CheckEdgeCrossing(topo, oldedge->start_node,
+                                    oldedge->end_node, geom, edge_id ) )
+  {
+    /* would have called lwerror already, leaking :( */
+    _lwt_release_edges(oldedge, 1);
+    return -1;
+  }
+
+  LWDEBUG(1, "lwt_ChangeEdgeGeom: "
+             "edge crossing check passed ");
+
+  /*
+   * Not in the specs:
+   * Check topological isomorphism
+   */
+
+  /* Check that the "motion range" doesn't include any node */
+  // 1. compute combined bbox of old and new edge
+  GBOX mbox; /* motion box */
+  lwgeom_add_bbox((LWGEOM*)oldedge->geom); /* just in case */
+  lwgeom_add_bbox((LWGEOM*)geom); /* just in case */
+  gbox_union(oldedge->geom->bbox, geom->bbox, &mbox);
+  // 2. fetch all nodes in the combined box
+  LWT_ISO_NODE *nodes;
+  int numnodes;
+  nodes = lwt_be_getNodeWithinBox2D(topo, &mbox, &numnodes,
+                                          LWT_COL_NODE_ALL, 0);
+  LWDEBUGF(1, "lwt_be_getNodeWithinBox2D returned %d nodes", numnodes);
+  if ( numnodes == -1 ) {
+    _lwt_release_edges(oldedge, 1);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  // 3. if any node beside endnodes are found:
+  if ( numnodes > ( 1 + isclosed ? 0 : 1 ) )
+  {{
+    GEOSGeometry *oarea, *narea;
+    const GEOSPreparedGeometry *oareap, *nareap;
+
+    initGEOS(lwnotice, lwgeom_geos_error);
+
+    oarea = _lwt_EdgeMotionArea(oldedge->geom, isclosed);
+    if ( ! oarea )
+    {
+      _lwt_release_edges(oldedge, 1);
+      lwerror("Could not compute edge motion area for old edge");
+      return -1;
+    }
+
+    narea = _lwt_EdgeMotionArea(geom, isclosed);
+    if ( ! narea )
+    {
+      GEOSGeom_destroy(oarea);
+      _lwt_release_edges(oldedge, 1);
+      lwerror("Could not compute edge motion area for new edge");
+      return -1;
+    }
+
+    //   3.2. bail out if any node is in one and not the other
+    oareap = GEOSPrepare( oarea );
+    nareap = GEOSPrepare( narea );
+    for (i=0; i<numnodes; ++i)
+    {
+      LWT_ISO_NODE *n = &(nodes[i]);
+      GEOSGeometry *ngg;
+      int ocont, ncont;
+      size_t sz;
+      char *wkt;
+      if ( n->node_id == oldedge->start_node ) continue;
+      if ( n->node_id == oldedge->end_node ) continue;
+      ngg = LWGEOM2GEOS( lwpoint_as_lwgeom(n->geom) , 0);
+      ocont = GEOSPreparedContains( oareap, ngg );
+      ncont = GEOSPreparedContains( nareap, ngg );
+      GEOSGeom_destroy(ngg);
+      if (ocont == 2 || ncont == 2)
+      {
+        _lwt_release_nodes(nodes, numnodes);
+        GEOSPreparedGeom_destroy(oareap);
+        GEOSGeom_destroy(oarea);
+        GEOSPreparedGeom_destroy(nareap);
+        GEOSGeom_destroy(narea);
+        lwerror("GEOS exception on PreparedContains: %s", lwgeom_geos_errmsg);
+        return -1;
+      }
+      if (ocont != ncont)
+      {
+        GEOSPreparedGeom_destroy(oareap);
+        GEOSGeom_destroy(oarea);
+        GEOSPreparedGeom_destroy(nareap);
+        GEOSGeom_destroy(narea);
+        wkt = lwgeom_to_wkt(lwpoint_as_lwgeom(n->geom), WKT_ISO, 6, &sz);
+        _lwt_release_nodes(nodes, numnodes);
+        lwerror("Edge motion collision at %s", wkt);
+        lwfree(wkt); /* would not necessarely reach this point */
+        return -1;
+      }
+    }
+    GEOSPreparedGeom_destroy(oareap);
+    GEOSGeom_destroy(oarea);
+    GEOSPreparedGeom_destroy(nareap);
+    GEOSGeom_destroy(narea);
+  }}
+  if ( numnodes ) _lwt_release_nodes(nodes, numnodes);
+
+  LWDEBUG(1, "nodes containment check passed");
+
+  /*
+   * Check edge adjacency before
+   * TODO: can be optimized to gather azimuths of all edge ends once
+   */
+
+  edgeend span_pre, epan_pre;
+  /* initialize span_pre.myaz and epan_pre.myaz with existing edge */
+  i = _lwt_InitEdgeEndByLine(&span_pre, &epan_pre,
+                             oldedge->geom, &p1, &p2);
+  if ( i ) return -1; /* lwerror should have been raised */
+  _lwt_FindAdjacentEdges( topo, oldedge->start_node, &span_pre,
+                                  isclosed ? &epan_pre : NULL, edge_id );
+  _lwt_FindAdjacentEdges( topo, oldedge->end_node, &epan_pre,
+                                  isclosed ? &span_pre : NULL, edge_id );
+
+  LWDEBUGF(1, "edges adjacent to old edge are %" LWTFMT_ELEMID
+              " and % (first point), %" LWTFMT_ELEMID
+              " and % (last point)" LWTFMT_ELEMID,
+              span_pre.nextCW, span_pre.nextCCW,
+              epan_pre.nextCW, epan_pre.nextCCW);
+
+  /* update edge geometry */
+  newedge.edge_id = edge_id;
+  newedge.geom = geom;
+  i = lwt_be_updateEdgesById(topo, &newedge, 1, LWT_COL_EDGE_GEOM);
+  if ( i == -1 )
+  {
+    _lwt_release_edges(oldedge, 1);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if ( ! i )
+  {
+    _lwt_release_edges(oldedge, 1);
+    lwerror("Unexpected error: %d edges updated when expecting 1", i);
+    return -1;
+  }
+
+  /*
+   * Check edge adjacency after
+   */
+  edgeend span_post, epan_post;
+  i = _lwt_InitEdgeEndByLine(&span_post, &epan_post, geom, &p1, &p2);
+  if ( i ) return -1; /* lwerror should have been raised */
+  /* initialize epan_post.myaz and epan_post.myaz */
+  i = _lwt_InitEdgeEndByLine(&span_post, &epan_post,
+                             geom, &p1, &p2);
+  if ( i ) return -1; /* lwerror should have been raised */
+  _lwt_FindAdjacentEdges( topo, oldedge->start_node, &span_post,
+                          isclosed ? &epan_post : NULL, edge_id );
+  _lwt_FindAdjacentEdges( topo, oldedge->end_node, &epan_post,
+                          isclosed ? &span_post : NULL, edge_id );
+
+  LWDEBUGF(1, "edges adjacent to new edge are %" LWTFMT_ELEMID
+              " and %" LWTFMT_ELEMID
+              " (first point), %" LWTFMT_ELEMID
+              " and % (last point)" LWTFMT_ELEMID,
+              span_pre.nextCW, span_pre.nextCCW,
+              epan_pre.nextCW, epan_pre.nextCCW);
+
+
+  /* Bail out if next CW or CCW edge on start node changed */
+  if ( span_pre.nextCW != span_post.nextCW ||
+       span_pre.nextCCW != span_pre.nextCCW )
+  {{
+    LWT_ELEMID nid = oldedge->start_node;
+    _lwt_release_edges(oldedge, 1);
+    lwerror("Edge changed disposition around start node %"
+            LWTFMT_ELEMID, nid);
+    return -1;
+  }}
+
+  /* Bail out if next CW or CCW edge on end node changed */
+  if ( epan_pre.nextCW != epan_post.nextCW ||
+       epan_pre.nextCCW != epan_pre.nextCCW )
+  {{
+    LWT_ELEMID nid = oldedge->end_node;
+    _lwt_release_edges(oldedge, 1);
+    lwerror("Edge changed disposition around end node %"
+            LWTFMT_ELEMID, nid);
+    return -1;
+  }}
+
+  /*
+  -- Update faces MBR of left and right faces
+  -- TODO: think about ways to optimize this part, like see if
+  --       the old edge geometry partecipated in the definition
+  --       of the current MBR (for shrinking) or the new edge MBR
+  --       would be larger than the old face MBR...
+  --
+  */
+  int facestoupdate = 0;
+  LWT_ISO_FACE faces[2];
+  LWGEOM *nface1 = NULL;
+  LWGEOM *nface2 = NULL;
+  if ( oldedge->face_left != 0 )
+  {
+    nface1 = lwt_GetFaceGeometry(topo, oldedge->face_left);
+#if 0
+    {
+    size_t sz;
+    char *wkt = lwgeom_to_wkt(nface1, WKT_EXTENDED, 2, &sz);
+    LWDEBUGF(1, "new geometry of face left (%d): %s", (int)oldedge->face_left, wkt);
+    lwfree(wkt);
+    }
+#endif
+    lwgeom_add_bbox(nface1);
+    faces[facestoupdate].face_id = oldedge->face_left;
+    /* ownership left to nface */
+    faces[facestoupdate++].mbr = nface1->bbox;
+  }
+  if ( oldedge->face_right != 0
+       /* no need to update twice the same face.. */
+       && oldedge->face_right != oldedge->face_left )
+  {
+    nface2 = lwt_GetFaceGeometry(topo, oldedge->face_right);
+#if 0
+    {
+    size_t sz;
+    char *wkt = lwgeom_to_wkt(nface2, WKT_EXTENDED, 2, &sz);
+    LWDEBUGF(1, "new geometry of face right (%d): %s", (int)oldedge->face_right, wkt);
+    lwfree(wkt);
+    }
+#endif
+    lwgeom_add_bbox(nface2);
+    faces[facestoupdate].face_id = oldedge->face_right;
+    faces[facestoupdate++].mbr = nface2->bbox; /* ownership left to nface */
+  }
+  LWDEBUGF(1, "%d faces to update", facestoupdate);
+  if ( facestoupdate )
+  {
+    i = lwt_be_updateFacesById( topo, &(faces[0]), facestoupdate );
+    if ( i != facestoupdate )
+    {
+      if ( nface1 ) lwgeom_free(nface1);
+      if ( nface2 ) lwgeom_free(nface2);
+      _lwt_release_edges(oldedge, 1);
+      if ( i == -1 )
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      else
+        lwerror("Unexpected error: %d faces found when expecting 1", i);
+      return -1;
+    }
+  }
+
+  LWDEBUG(1, "all done, cleaning up edges");
+
+  _lwt_release_edges(oldedge, 1);
+  return 0; /* success */
+}
+
+/* Only return CONTAINING_FACE in the node object */
+static LWT_ISO_NODE *
+_lwt_GetIsoNode(LWT_TOPOLOGY* topo, LWT_ELEMID nid)
+{
+  LWT_ISO_NODE *node;
+  int n = 1;
+
+  node = lwt_be_getNodeById( topo, &nid, &n, LWT_COL_NODE_CONTAINING_FACE );
+  if ( n < 0 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return 0;
+  }
+  if ( n < 1 ) {
+    lwerror("SQL/MM Spatial exception - non-existent node");
+    return 0;
+  }
+  if ( node->containing_face == -1 )
+  {
+    lwfree(node);
+    lwerror("SQL/MM Spatial exception - not isolated node");
+    return 0;
+  }
+
+  return node;
+}
+
+int
+lwt_MoveIsoNode(LWT_TOPOLOGY* topo, LWT_ELEMID nid, LWPOINT *pt)
+{
+  LWT_ISO_NODE *node;
+  int ret;
+
+  node = _lwt_GetIsoNode( topo, nid );
+  if ( ! node ) return -1;
+
+  if ( lwt_be_ExistsCoincidentNode(topo, pt) )
+  {
+    lwfree(node);
+    lwerror("SQL/MM Spatial exception - coincident node");
+    return -1;
+  }
+
+  if ( lwt_be_ExistsEdgeIntersectingPoint(topo, pt) )
+  {
+    lwfree(node);
+    lwerror("SQL/MM Spatial exception - edge crosses node.");
+    return -1;
+  }
+
+  /* TODO: check that the new point is in the same containing face !
+   * See https://trac.osgeo.org/postgis/ticket/3232
+   */
+
+  node->node_id = nid;
+  node->geom = pt;
+  ret = lwt_be_updateNodesById(topo, node, 1,
+                               LWT_COL_NODE_GEOM);
+  if ( ret == -1 ) {
+    lwfree(node);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  lwfree(node);
+  return 0;
+}
+
+int
+lwt_RemoveIsoNode(LWT_TOPOLOGY* topo, LWT_ELEMID nid)
+{
+  LWT_ISO_NODE *node;
+  int n = 1;
+
+  node = _lwt_GetIsoNode( topo, nid );
+  if ( ! node ) return -1;
+
+  n = lwt_be_deleteNodesById( topo, &nid, n );
+  if ( n == -1 )
+  {
+    lwfree(node);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if ( n != 1 )
+  {
+    lwfree(node);
+    lwerror("Unexpected error: %d nodes deleted when expecting 1", n);
+    return -1;
+  }
+
+  /* TODO: notify to caller about node being removed ?
+   * See https://trac.osgeo.org/postgis/ticket/3231
+   */
+
+  lwfree(node);
+  return 0; /* success */
+}
+
+int
+lwt_RemIsoEdge(LWT_TOPOLOGY* topo, LWT_ELEMID id)
+{
+  LWT_ISO_EDGE deledge;
+  LWT_ISO_EDGE *edge;
+  LWT_ELEMID nid[2];
+  int n = 1;
+  int i;
+
+  edge = lwt_be_getEdgeById( topo, &id, &n, LWT_COL_EDGE_START_NODE|
+                                            LWT_COL_EDGE_END_NODE |
+                                            LWT_COL_EDGE_FACE_LEFT |
+                                            LWT_COL_EDGE_FACE_RIGHT );
+  if ( ! edge )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if ( ! n )
+  {
+    lwerror("SQL/MM Spatial exception - non-existent edge");
+    return -1;
+  }
+  if ( n > 1 )
+  {
+    lwfree(edge);
+    lwerror("Corrupted topology: more than a single edge have id %"
+            LWTFMT_ELEMID, id);
+    return -1;
+  }
+
+  if ( edge[0].face_left != edge[0].face_right )
+  {
+    lwfree(edge);
+    lwerror("SQL/MM Spatial exception - not isolated edge");
+    return -1;
+  }
+
+  nid[0] = edge[0].start_node;
+  nid[1] = edge[0].end_node;
+  lwfree(edge);
+
+  n = 2;
+  edge = lwt_be_getEdgeByNode( topo, nid, &n, LWT_COL_EDGE_EDGE_ID );
+  if ( n == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  for ( i=0; i<n; ++i )
+  {
+    if ( edge[i].edge_id == id ) continue;
+    lwfree(edge);
+    lwerror("SQL/MM Spatial exception - not isolated edge");
+    return -1;
+  }
+  if ( edge ) lwfree(edge);
+
+  deledge.edge_id = id;
+  n = lwt_be_deleteEdges( topo, &deledge, LWT_COL_EDGE_EDGE_ID );
+  if ( n == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if ( n != 1 )
+  {
+    lwerror("Unexpected error: %d edges deleted when expecting 1", n);
+    return -1;
+  }
+
+  /* TODO: notify to caller about edge being removed ?
+   * See https://trac.osgeo.org/postgis/ticket/3248
+   */
+
+  return 0; /* success */
+}
+
+/* Used by _lwt_RemEdge to update edge face ref on healing
+ *
+ * @param of old face id (never 0 as you cannot remove face 0)
+ * @param nf new face id
+ * @return 0 on success, -1 on backend error
+ */
+static int
+_lwt_UpdateEdgeFaceRef( LWT_TOPOLOGY *topo, LWT_ELEMID of, LWT_ELEMID nf)
+{
+  LWT_ISO_EDGE sel_edge, upd_edge;
+  int ret;
+
+  assert( of != 0 );
+
+  /* Update face_left for all edges still referencing old face */
+  sel_edge.face_left = of;
+  upd_edge.face_left = nf;
+  ret = lwt_be_updateEdges(topo, &sel_edge, LWT_COL_EDGE_FACE_LEFT,
+                                 &upd_edge, LWT_COL_EDGE_FACE_LEFT,
+                                 NULL, 0);
+  if ( ret == -1 ) return -1;
+
+  /* Update face_right for all edges still referencing old face */
+  sel_edge.face_right = of;
+  upd_edge.face_right = nf;
+  ret = lwt_be_updateEdges(topo, &sel_edge, LWT_COL_EDGE_FACE_RIGHT,
+                                 &upd_edge, LWT_COL_EDGE_FACE_RIGHT,
+                                 NULL, 0);
+  if ( ret == -1 ) return -1;
+
+  return 0;
+}
+
+/* Used by _lwt_RemEdge to update node face ref on healing
+ *
+ * @param of old face id (never 0 as you cannot remove face 0)
+ * @param nf new face id
+ * @return 0 on success, -1 on backend error
+ */
+static int
+_lwt_UpdateNodeFaceRef( LWT_TOPOLOGY *topo, LWT_ELEMID of, LWT_ELEMID nf)
+{
+  LWT_ISO_NODE sel, upd;
+  int ret;
+
+  assert( of != 0 );
+
+  /* Update face_left for all edges still referencing old face */
+  sel.containing_face = of;
+  upd.containing_face = nf;
+  ret = lwt_be_updateNodes(topo, &sel, LWT_COL_NODE_CONTAINING_FACE,
+                                 &upd, LWT_COL_NODE_CONTAINING_FACE,
+                                 NULL, 0);
+  if ( ret == -1 ) return -1;
+
+  return 0;
+}
+
+/* Used by lwt_RemEdgeModFace and lwt_RemEdgeNewFaces
+ *
+ * Returns -1 on error, identifier of the face that takes up the space
+ * previously occupied by the removed edge if modFace is 1, identifier of
+ * the created face (0 if none) if modFace is 0.
+ */
+static LWT_ELEMID
+_lwt_RemEdge( LWT_TOPOLOGY* topo, LWT_ELEMID edge_id, int modFace )
+{
+  int i, nedges, nfaces, fields;
+  LWT_ISO_EDGE *edge = NULL;
+  LWT_ISO_EDGE *upd_edge = NULL;
+  LWT_ISO_EDGE upd_edge_left[2];
+  int nedge_left = 0;
+  LWT_ISO_EDGE upd_edge_right[2];
+  int nedge_right = 0;
+  LWT_ISO_NODE upd_node[2];
+  int nnode = 0;
+  LWT_ISO_FACE *faces = NULL;
+  LWT_ISO_FACE newface;
+  LWT_ELEMID node_ids[2];
+  LWT_ELEMID face_ids[2];
+  int fnode_edges = 0; /* number of edges on the first node (excluded
+                        * the one being removed ) */
+  int lnode_edges = 0; /* number of edges on the last node (excluded
+                        * the one being removed ) */
+
+  newface.face_id = 0;
+
+  i = 1;
+  edge = lwt_be_getEdgeById(topo, &edge_id, &i, LWT_COL_EDGE_ALL);
+  if ( ! edge )
+  {
+    LWDEBUGF(1, "lwt_be_getEdgeById returned NULL and set i=%d", i);
+    if ( i == -1 )
+    {
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+    else if ( i == 0 )
+    {
+      lwerror("SQL/MM Spatial exception - non-existent edge %"
+              LWTFMT_ELEMID, edge_id);
+      return -1;
+    }
+    else
+    {
+      lwerror("Backend coding error: getEdgeById callback returned NULL "
+              "but numelements output parameter has value %d "
+              "(expected 0 or 1)", i);
+      return -1;
+    }
+  }
+
+  if ( ! lwt_be_checkTopoGeomRemEdge(topo, edge_id,
+                                     edge->face_left, edge->face_right) )
+  {
+    lwerror("%s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  LWDEBUG(1, "Updating next_{right,left}_face of ring edges...");
+
+  /* Update edge linking */
+
+  nedges = 0;
+  node_ids[nedges++] = edge->start_node;
+  if ( edge->end_node != edge->start_node )
+  {
+    node_ids[nedges++] = edge->end_node;
+  }
+  fields = LWT_COL_EDGE_EDGE_ID | LWT_COL_EDGE_START_NODE |
+           LWT_COL_EDGE_END_NODE | LWT_COL_EDGE_NEXT_LEFT |
+           LWT_COL_EDGE_NEXT_RIGHT;
+  upd_edge = lwt_be_getEdgeByNode( topo, &(node_ids[0]), &nedges, fields );
+  if ( nedges == -1 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  nedge_left = nedge_right = 0;
+  for ( i=0; i<nedges; ++i )
+  {
+    LWT_ISO_EDGE *e = &(upd_edge[i]);
+    if ( e->edge_id == edge_id ) continue;
+    if ( e->start_node == edge->start_node || e->end_node == edge->start_node )
+    {
+      ++fnode_edges;
+    }
+    if ( e->start_node == edge->end_node || e->end_node == edge->end_node )
+    {
+      ++lnode_edges;
+    }
+    if ( e->next_left == -edge_id )
+    {
+      upd_edge_left[nedge_left].edge_id = e->edge_id;
+      upd_edge_left[nedge_left++].next_left =
+        edge->next_left != edge_id ? edge->next_left : edge->next_right;
+    }
+    else if ( e->next_left == edge_id )
+    {
+      upd_edge_left[nedge_left].edge_id = e->edge_id;
+      upd_edge_left[nedge_left++].next_left =
+        edge->next_right != -edge_id ? edge->next_right : edge->next_left;
+    }
+
+    if ( e->next_right == -edge_id )
+    {
+      upd_edge_right[nedge_right].edge_id = e->edge_id;
+      upd_edge_right[nedge_right++].next_right =
+        edge->next_left != edge_id ? edge->next_left : edge->next_right;
+    }
+    else if ( e->next_right == edge_id )
+    {
+      upd_edge_right[nedge_right].edge_id = e->edge_id;
+      upd_edge_right[nedge_right++].next_right =
+        edge->next_right != -edge_id ? edge->next_right : edge->next_left;
+    }
+  }
+
+  if ( nedge_left )
+  {
+    LWDEBUGF(1, "updating %d 'next_left' edges", nedge_left);
+    /* update edges in upd_edge_left set next_left */
+    i = lwt_be_updateEdgesById(topo, &(upd_edge_left[0]), nedge_left,
+                               LWT_COL_EDGE_NEXT_LEFT);
+    if ( i == -1 )
+    {
+      _lwt_release_edges(edge, 1);
+      lwfree(upd_edge);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+  if ( nedge_right )
+  {
+    LWDEBUGF(1, "updating %d 'next_right' edges", nedge_right);
+    /* update edges in upd_edge_right set next_right */
+    i = lwt_be_updateEdgesById(topo, &(upd_edge_right[0]), nedge_right,
+                               LWT_COL_EDGE_NEXT_RIGHT);
+    if ( i == -1 )
+    {
+      _lwt_release_edges(edge, 1);
+      lwfree(upd_edge);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+  LWDEBUGF(1, "releasing %d updateable edges in %p", nedges, upd_edge);
+  lwfree(upd_edge);
+
+  /* Id of face that will take up all the space previously
+   * taken by left and right faces of the edge */
+  LWT_ELEMID floodface;
+
+  /* Find floodface, and update its mbr if != 0 */
+  if ( edge->face_left == edge->face_right )
+  {
+    floodface = edge->face_right;
+  }
+  else
+  {
+    /* Two faces healed */
+    if ( edge->face_left == 0 || edge->face_right == 0 )
+    {
+      floodface = 0;
+      LWDEBUG(1, "floodface is universe");
+    }
+    else
+    {
+      /* we choose right face as the face that will remain
+       * to be symmetric with ST_AddEdgeModFace */
+      floodface = edge->face_right;
+      LWDEBUGF(1, "floodface is %" LWTFMT_ELEMID, floodface);
+      /* update mbr of floodface as union of mbr of both faces */
+      face_ids[0] = edge->face_left;
+      face_ids[1] = edge->face_right;
+      nfaces = 2;
+      fields = LWT_COL_FACE_ALL;
+      faces = lwt_be_getFaceById(topo, face_ids, &nfaces, fields);
+      if ( nfaces == -1 ) {
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -1;
+      }
+      GBOX *box1=NULL;
+      GBOX *box2=NULL;
+      for ( i=0; i<nfaces; ++i )
+      {
+        if ( faces[i].face_id == edge->face_left )
+        {
+          if ( ! box1 ) box1 = faces[i].mbr;
+          else
+          {
+            i = edge->face_left;
+            _lwt_release_edges(edge, 1);
+            _lwt_release_faces(faces, nfaces);
+            lwerror("corrupted topology: more than 1 face have face_id=%"
+                    LWTFMT_ELEMID, i);
+            return -1;
+          }
+        }
+        else if ( faces[i].face_id == edge->face_right )
+        {
+          if ( ! box2 ) box2 = faces[i].mbr;
+          else
+          {
+            i = edge->face_right;
+            _lwt_release_edges(edge, 1);
+            _lwt_release_faces(faces, nfaces);
+            lwerror("corrupted topology: more than 1 face have face_id=%"
+                    LWTFMT_ELEMID, i);
+            return -1;
+          }
+        }
+        else
+        {
+          i = faces[i].face_id;
+          _lwt_release_edges(edge, 1);
+          _lwt_release_faces(faces, nfaces);
+          lwerror("Backend coding error: getFaceById returned face "
+                  "with non-requested id %" LWTFMT_ELEMID, i);
+          return -1;
+        }
+      }
+      if ( ! box1 ) {
+        i = edge->face_left;
+        _lwt_release_edges(edge, 1);
+        _lwt_release_faces(faces, nfaces);
+        lwerror("corrupted topology: no face have face_id=%"
+                LWTFMT_ELEMID " (left face for edge %"
+                LWTFMT_ELEMID ")", i, edge_id);
+        return -1;
+      }
+      if ( ! box2 ) {
+        i = edge->face_right;
+        _lwt_release_edges(edge, 1);
+        _lwt_release_faces(faces, nfaces);
+        lwerror("corrupted topology: no face have face_id=%"
+                LWTFMT_ELEMID " (right face for edge %"
+                LWTFMT_ELEMID ")", i, edge_id);
+        return -1;
+      }
+      gbox_merge(box2, box1); /* box1 is now the union of the two */
+      newface.mbr = box1;
+      if ( modFace )
+      {
+        newface.face_id = floodface;
+        i = lwt_be_updateFacesById( topo, &newface, 1 );
+        _lwt_release_faces(faces, 2);
+        if ( i == -1 )
+        {
+          _lwt_release_edges(edge, 1);
+          lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+          return -1;
+        }
+        if ( i != 1 )
+        {
+          _lwt_release_edges(edge, 1);
+          lwerror("Unexpected error: %d faces updated when expecting 1", i);
+          return -1;
+        }
+      }
+      else
+      {
+        /* New face replaces the old two faces */
+        newface.face_id = -1;
+        i = lwt_be_insertFaces( topo, &newface, 1 );
+        _lwt_release_faces(faces, 2);
+        if ( i == -1 )
+        {
+          _lwt_release_edges(edge, 1);
+          lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+          return -1;
+        }
+        if ( i != 1 )
+        {
+          _lwt_release_edges(edge, 1);
+          lwerror("Unexpected error: %d faces inserted when expecting 1", i);
+          return -1;
+        }
+        floodface = newface.face_id;
+      }
+    }
+
+    /* Update face references for edges and nodes still referencing
+     * the removed face(s) */
+
+    if ( edge->face_left != floodface )
+    {
+      if ( -1 == _lwt_UpdateEdgeFaceRef(topo, edge->face_left, floodface) )
+      {
+        _lwt_release_edges(edge, 1);
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -1;
+      }
+      if ( -1 == _lwt_UpdateNodeFaceRef(topo, edge->face_left, floodface) )
+      {
+        _lwt_release_edges(edge, 1);
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -1;
+      }
+    }
+
+    if ( edge->face_right != floodface )
+    {
+      if ( -1 == _lwt_UpdateEdgeFaceRef(topo, edge->face_right, floodface) )
+      {
+        _lwt_release_edges(edge, 1);
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -1;
+      }
+      if ( -1 == _lwt_UpdateNodeFaceRef(topo, edge->face_right, floodface) )
+      {
+        _lwt_release_edges(edge, 1);
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -1;
+      }
+    }
+
+    /* Update topogeoms on heal */
+    if ( ! lwt_be_updateTopoGeomFaceHeal(topo,
+                                  edge->face_right, edge->face_left,
+                                  floodface) )
+    {
+      _lwt_release_edges(edge, 1);
+      lwerror("%s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  } /* two faces healed */
+
+  /* Delete the edge */
+  i = lwt_be_deleteEdges(topo, edge, LWT_COL_EDGE_EDGE_ID);
+  if ( i == -1 ) {
+    _lwt_release_edges(edge, 1);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /* If any of the edge nodes remained isolated, set
+   * containing_face = floodface
+   */
+  if ( ! fnode_edges )
+  {
+    upd_node[nnode].node_id = edge->start_node;
+    upd_node[nnode].containing_face = floodface;
+    ++nnode;
+  }
+  if ( edge->end_node != edge->start_node && ! lnode_edges )
+  {
+    upd_node[nnode].node_id = edge->end_node;
+    upd_node[nnode].containing_face = floodface;
+    ++nnode;
+  }
+  if ( nnode )
+  {
+    i = lwt_be_updateNodesById(topo, upd_node, nnode,
+                               LWT_COL_NODE_CONTAINING_FACE);
+    if ( i == -1 ) {
+      _lwt_release_edges(edge, 1);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+
+  if ( edge->face_left != edge->face_right )
+  /* or there'd be no face to remove */
+  {
+    LWT_ELEMID ids[2];
+    int nids = 0;
+    if ( edge->face_right != floodface )
+      ids[nids++] = edge->face_right;
+    if ( edge->face_left != floodface )
+      ids[nids++] = edge->face_left;
+    i = lwt_be_deleteFacesById(topo, ids, nids);
+    if ( i == -1 ) {
+      _lwt_release_edges(edge, 1);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+
+  _lwt_release_edges(edge, 1);
+  return modFace ? floodface : newface.face_id;
+}
+
+LWT_ELEMID
+lwt_RemEdgeModFace( LWT_TOPOLOGY* topo, LWT_ELEMID edge_id )
+{
+  return _lwt_RemEdge( topo, edge_id, 1 );
+}
+
+LWT_ELEMID
+lwt_RemEdgeNewFace( LWT_TOPOLOGY* topo, LWT_ELEMID edge_id )
+{
+  return _lwt_RemEdge( topo, edge_id, 0 );
+}
+
+static LWT_ELEMID
+_lwt_HealEdges( LWT_TOPOLOGY* topo, LWT_ELEMID eid1, LWT_ELEMID eid2,
+                int modEdge )
+{
+  LWT_ELEMID ids[2];
+  LWT_ELEMID commonnode = -1;
+  int caseno = 0;
+  LWT_ISO_EDGE *node_edges;
+  int num_node_edges;
+  LWT_ISO_EDGE *edges;
+  LWT_ISO_EDGE *e1 = NULL;
+  LWT_ISO_EDGE *e2 = NULL;
+  LWT_ISO_EDGE newedge, updedge, seledge;
+  int nedges, i;
+  int e1freenode;
+  int e2sign, e2freenode;
+  POINTARRAY *pa;
+  char buf[256];
+  char *ptr;
+  size_t bufleft = 256;
+
+  ptr = buf;
+
+  /* NOT IN THE SPECS: see if the same edge is given twice.. */
+  if ( eid1 == eid2 )
+  {
+    lwerror("Cannot heal edge %" LWTFMT_ELEMID
+            " with itself, try with another", eid1);
+    return -1;
+  }
+  ids[0] = eid1;
+  ids[1] = eid2;
+  nedges = 2;
+  edges = lwt_be_getEdgeById(topo, ids, &nedges, LWT_COL_EDGE_ALL);
+  if ( nedges == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  for ( i=0; i<nedges; ++i )
+  {
+    if ( edges[i].edge_id == eid1 ) {
+      if ( e1 ) {
+        _lwt_release_edges(edges, nedges);
+        lwerror("Corrupted topology: multiple edges have id %"
+                LWTFMT_ELEMID, eid1);
+        return -1;
+      }
+      e1 = &(edges[i]);
+    }
+    else if ( edges[i].edge_id == eid2 ) {
+      if ( e2 ) {
+        _lwt_release_edges(edges, nedges);
+        lwerror("Corrupted topology: multiple edges have id %"
+                LWTFMT_ELEMID, eid2);
+        return -1;
+      }
+      e2 = &(edges[i]);
+    }
+  }
+  if ( ! e1 )
+  {
+    if ( edges ) _lwt_release_edges(edges, nedges);
+    lwerror("SQL/MM Spatial exception - non-existent edge %"
+            LWTFMT_ELEMID, eid1);
+    return -1;
+  }
+  if ( ! e2 )
+  {
+    if ( edges ) _lwt_release_edges(edges, nedges);
+    lwerror("SQL/MM Spatial exception - non-existent edge %"
+            LWTFMT_ELEMID, eid2);
+    return -1;
+  }
+
+  /* NOT IN THE SPECS: See if any of the two edges are closed. */
+  if ( e1->start_node == e1->end_node )
+  {
+    _lwt_release_edges(edges, nedges);
+    lwerror("Edge %" LWTFMT_ELEMID " is closed, cannot heal to edge %"
+            LWTFMT_ELEMID, eid1, eid2);
+    return -1;
+  }
+  if ( e2->start_node == e2->end_node )
+  {
+    _lwt_release_edges(edges, nedges);
+    lwerror("Edge %" LWTFMT_ELEMID " is closed, cannot heal to edge %"
+            LWTFMT_ELEMID, eid2, eid1);
+    return -1;
+  }
+
+  /* Find common node */
+
+  if ( e1->end_node == e2->start_node )
+  {
+    commonnode = e1->end_node;
+    caseno = 1;
+  }
+  else if ( e1->end_node == e2->end_node )
+  {
+    commonnode = e1->end_node;
+    caseno = 2;
+  }
+  /* Check if any other edge is connected to the common node, if found */
+  if ( commonnode != -1 )
+  {
+    num_node_edges = 1;
+    node_edges = lwt_be_getEdgeByNode( topo, &commonnode,
+                                       &num_node_edges, LWT_COL_EDGE_EDGE_ID );
+    if ( num_node_edges == -1 ) {
+      _lwt_release_edges(edges, nedges);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+    for (i=0; i<num_node_edges; ++i)
+    {
+      int r;
+      if ( node_edges[i].edge_id == eid1 ) continue;
+      if ( node_edges[i].edge_id == eid2 ) continue;
+      commonnode = -1;
+      /* append to string, for error message */
+      if ( bufleft ) {
+        r = snprintf(ptr, bufleft, "%s%" LWTFMT_ELEMID,
+                     ( ptr==buf ? "" : "," ), node_edges[i].edge_id);
+        if ( r >= bufleft )
+        {
+          bufleft = 0;
+          buf[252] = '.';
+          buf[253] = '.';
+          buf[254] = '.';
+          buf[255] = '\0';
+        }
+        else
+        {
+          bufleft -= r;
+          ptr += r;
+        }
+      }
+    }
+    lwfree(node_edges);
+  }
+
+  if ( commonnode == -1 )
+  {
+    if ( e1->start_node == e2->start_node )
+    {
+      commonnode = e1->start_node;
+      caseno = 3;
+    }
+    else if ( e1->start_node == e2->end_node )
+    {
+      commonnode = e1->start_node;
+      caseno = 4;
+    }
+    /* Check if any other edge is connected to the common node, if found */
+    if ( commonnode != -1 )
+    {
+      num_node_edges = 1;
+      node_edges = lwt_be_getEdgeByNode( topo, &commonnode,
+                                         &num_node_edges, LWT_COL_EDGE_EDGE_ID );
+      if ( num_node_edges == -1 ) {
+        _lwt_release_edges(edges, nedges);
+        lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+        return -1;
+      }
+      for (i=0; i<num_node_edges; ++i)
+      {
+        int r;
+        if ( node_edges[i].edge_id == eid1 ) continue;
+        if ( node_edges[i].edge_id == eid2 ) continue;
+        commonnode = -1;
+        /* append to string, for error message */
+        if ( bufleft ) {
+          r = snprintf(ptr, bufleft, "%s%" LWTFMT_ELEMID,
+                       ( ptr==buf ? "" : "," ), node_edges[i].edge_id);
+          if ( r >= bufleft )
+          {
+            bufleft = 0;
+            buf[252] = '.';
+            buf[253] = '.';
+            buf[254] = '.';
+            buf[255] = '\0';
+          }
+          else
+          {
+            bufleft -= r;
+            ptr += r;
+          }
+        }
+      }
+      if ( num_node_edges ) lwfree(node_edges);
+    }
+  }
+
+  if ( commonnode == -1 )
+  {
+    _lwt_release_edges(edges, nedges);
+    if ( ptr != buf )
+    {
+      lwerror("SQL/MM Spatial exception - other edges connected (%s)",
+              buf);
+    }
+    else
+    {
+      lwerror("SQL/MM Spatial exception - non-connected edges");
+    }
+    return -1;
+  }
+
+  if ( ! lwt_be_checkTopoGeomRemNode(topo, commonnode,
+                                     eid1, eid2 ) )
+  {
+    _lwt_release_edges(edges, nedges);
+    lwerror("%s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /* Construct the geometry of the new edge */
+  switch (caseno)
+  {
+    case 1: /* e1.end = e2.start */
+      pa = ptarray_clone_deep(e1->geom->points);
+      //pa = ptarray_merge(pa, e2->geom->points);
+      ptarray_append_ptarray(pa, e2->geom->points, 0);
+      newedge.start_node = e1->start_node;
+      newedge.end_node = e2->end_node;
+      newedge.next_left = e2->next_left;
+      newedge.next_right = e1->next_right;
+      e1freenode = 1;
+      e2freenode = -1;
+      e2sign = 1;
+      break;
+    case 2: /* e1.end = e2.end */
+    {
+      POINTARRAY *pa2;
+      pa2 = ptarray_clone_deep(e2->geom->points);
+      ptarray_reverse(pa2);
+      pa = ptarray_clone_deep(e1->geom->points);
+      //pa = ptarray_merge(e1->geom->points, pa);
+      ptarray_append_ptarray(pa, pa2, 0);
+      ptarray_free(pa2);
+      newedge.start_node = e1->start_node;
+      newedge.end_node = e2->start_node;
+      newedge.next_left = e2->next_right;
+      newedge.next_right = e1->next_right;
+      e1freenode = 1;
+      e2freenode = 1;
+      e2sign = -1;
+      break;
+    }
+    case 3: /* e1.start = e2.start */
+      pa = ptarray_clone_deep(e2->geom->points);
+      ptarray_reverse(pa);
+      //pa = ptarray_merge(pa, e1->geom->points);
+      ptarray_append_ptarray(pa, e1->geom->points, 0);
+      newedge.end_node = e1->end_node;
+      newedge.start_node = e2->end_node;
+      newedge.next_left = e1->next_left;
+      newedge.next_right = e2->next_left;
+      e1freenode = -1;
+      e2freenode = -1;
+      e2sign = -1;
+      break;
+    case 4: /* e1.start = e2.end */
+      pa = ptarray_clone_deep(e2->geom->points);
+      //pa = ptarray_merge(pa, e1->geom->points);
+      ptarray_append_ptarray(pa, e1->geom->points, 0);
+      newedge.end_node = e1->end_node;
+      newedge.start_node = e2->start_node;
+      newedge.next_left = e1->next_left;
+      newedge.next_right = e2->next_right;
+      e1freenode = -1;
+      e2freenode = 1;
+      e2sign = 1;
+      break;
+    default:
+      pa = NULL;
+      e1freenode = 0;
+      e2freenode = 0;
+      e2sign = 0;
+      _lwt_release_edges(edges, nedges);
+      lwerror("Coding error: caseno=%d should never happen", caseno);
+      break;
+  }
+  newedge.geom = lwline_construct(topo->srid, NULL, pa);
+
+  if ( modEdge )
+  {
+    /* Update data of the first edge */
+    newedge.edge_id = eid1;
+    i = lwt_be_updateEdgesById(topo, &newedge, 1,
+                               LWT_COL_EDGE_NEXT_LEFT|
+                               LWT_COL_EDGE_NEXT_RIGHT |
+                               LWT_COL_EDGE_START_NODE |
+                               LWT_COL_EDGE_END_NODE |
+                               LWT_COL_EDGE_GEOM);
+    if ( i == -1 )
+    {
+      lwline_free(newedge.geom);
+      _lwt_release_edges(edges, nedges);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+    else if ( i != 1 )
+    {
+      lwline_free(newedge.geom);
+      if ( edges ) _lwt_release_edges(edges, nedges);
+      lwerror("Unexpected error: %d edges updated when expecting 1", i);
+      return -1;
+    }
+  }
+  else
+  {
+    /* Add new edge */
+    newedge.edge_id = -1;
+    newedge.face_left = e1->face_left;
+    newedge.face_right = e1->face_right;
+    i = lwt_be_insertEdges(topo, &newedge, 1);
+    if ( i == -1 ) {
+      lwline_free(newedge.geom);
+      _lwt_release_edges(edges, nedges);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    } else if ( i == 0 ) {
+      lwline_free(newedge.geom);
+      _lwt_release_edges(edges, nedges);
+      lwerror("Insertion of split edge failed (no reason)");
+      return -1;
+    }
+  }
+  lwline_free(newedge.geom);
+
+  /*
+  -- Update next_left_edge/next_right_edge for
+  -- any edge having them still pointing at the edge being removed
+  -- (eid2 only when modEdge, or both otherwise)
+  --
+  -- NOTE:
+  -- e#freenode is 1 when edge# end node was the common node
+  -- and -1 otherwise. This gives the sign of possibly found references
+  -- to its "free" (non connected to other edge) endnode.
+  -- e2sign is -1 if edge1 direction is opposite to edge2 direction,
+  -- or 1 otherwise.
+  --
+  */
+
+  /* update edges connected to e2's boundary from their end node */
+  seledge.next_left = e2freenode * eid2;
+  updedge.next_left = e2freenode * newedge.edge_id * e2sign;
+  i = lwt_be_updateEdges(topo, &seledge, LWT_COL_EDGE_NEXT_LEFT,
+                               &updedge, LWT_COL_EDGE_NEXT_LEFT,
+                               NULL, 0);
+  if ( i == -1 )
+  {
+    _lwt_release_edges(edges, nedges);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /* update edges connected to e2's boundary from their start node */
+  seledge.next_right = e2freenode * eid2;
+  updedge.next_right = e2freenode * newedge.edge_id * e2sign;
+  i = lwt_be_updateEdges(topo, &seledge, LWT_COL_EDGE_NEXT_RIGHT,
+                               &updedge, LWT_COL_EDGE_NEXT_RIGHT,
+                               NULL, 0);
+  if ( i == -1 )
+  {
+    _lwt_release_edges(edges, nedges);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  if ( ! modEdge )
+  {
+    /* update edges connected to e1's boundary from their end node */
+    seledge.next_left = e1freenode * eid1;
+    updedge.next_left = e1freenode * newedge.edge_id;
+    i = lwt_be_updateEdges(topo, &seledge, LWT_COL_EDGE_NEXT_LEFT,
+                                 &updedge, LWT_COL_EDGE_NEXT_LEFT,
+                                 NULL, 0);
+    if ( i == -1 )
+    {
+      _lwt_release_edges(edges, nedges);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+
+    /* update edges connected to e1's boundary from their start node */
+    seledge.next_right = e1freenode * eid1;
+    updedge.next_right = e1freenode * newedge.edge_id;
+    i = lwt_be_updateEdges(topo, &seledge, LWT_COL_EDGE_NEXT_RIGHT,
+                                 &updedge, LWT_COL_EDGE_NEXT_RIGHT,
+                                 NULL, 0);
+    if ( i == -1 )
+    {
+      _lwt_release_edges(edges, nedges);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+
+  /* delete the edges (only second on modEdge or both) */
+  i = lwt_be_deleteEdges(topo, e2, LWT_COL_EDGE_EDGE_ID);
+  if ( i == -1 )
+  {
+    _lwt_release_edges(edges, nedges);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if ( ! modEdge ) {
+    i = lwt_be_deleteEdges(topo, e1, LWT_COL_EDGE_EDGE_ID);
+    if ( i == -1 )
+    {
+      _lwt_release_edges(edges, nedges);
+      lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+      return -1;
+    }
+  }
+
+  _lwt_release_edges(edges, nedges);
+
+  /* delete the common node */
+  i = lwt_be_deleteNodesById( topo, &commonnode, 1 );
+  if ( i == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  /*
+  --
+  -- NOT IN THE SPECS:
+  -- Drop composition rows involving second
+  -- edge, as the first edge took its space,
+  -- and all affected TopoGeom have been previously checked
+  -- for being composed by both edges.
+  */
+  if ( ! lwt_be_updateTopoGeomEdgeHeal(topo,
+                                eid1, eid2, newedge.edge_id) )
+  {
+    lwerror("%s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  return modEdge ? commonnode : newedge.edge_id;
+}
+
+LWT_ELEMID
+lwt_ModEdgeHeal( LWT_TOPOLOGY* topo, LWT_ELEMID e1, LWT_ELEMID e2 )
+{
+  return _lwt_HealEdges( topo, e1, e2, 1 );
+}
+
+LWT_ELEMID
+lwt_NewEdgeHeal( LWT_TOPOLOGY* topo, LWT_ELEMID e1, LWT_ELEMID e2 )
+{
+  return _lwt_HealEdges( topo, e1, e2, 0 );
+}
+
+LWT_ELEMID
+lwt_GetNodeByPoint(LWT_TOPOLOGY *topo, LWPOINT *pt, double tol)
+{
+  LWT_ISO_NODE *elem;
+  int num;
+  int flds = LWT_COL_NODE_NODE_ID|LWT_COL_NODE_GEOM; /* geom not needed */
+  LWT_ELEMID id = 0;
+  POINT2D qp; /* query point */
+
+  if ( ! getPoint2d_p(pt->point, 0, &qp) )
+  {
+    lwerror("Empty query point");
+    return -1;
+  }
+  elem = lwt_be_getNodeWithinDistance2D(topo, pt, tol, &num, flds, 0);
+  if ( num == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  else if ( num )
+  {
+    if ( num > 1 )
+    {
+      _lwt_release_nodes(elem, num);
+      lwerror("Two or more nodes found");
+      return -1;
+    }
+    id = elem[0].node_id;
+    _lwt_release_nodes(elem, num);
+  }
+
+  return id;
+}
+
+LWT_ELEMID
+lwt_GetEdgeByPoint(LWT_TOPOLOGY *topo, LWPOINT *pt, double tol)
+{
+  LWT_ISO_EDGE *elem;
+  int num, i;
+  int flds = LWT_COL_EDGE_EDGE_ID|LWT_COL_EDGE_GEOM; /* GEOM is not needed */
+  LWT_ELEMID id = 0;
+  LWGEOM *qp = lwpoint_as_lwgeom(pt); /* query point */
+
+  if ( lwgeom_is_empty(qp) )
+  {
+    lwerror("Empty query point");
+    return -1;
+  }
+  elem = lwt_be_getEdgeWithinDistance2D(topo, pt, tol, &num, flds, 0);
+  if ( num == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  for (i=0; i<num;++i)
+  {
+    LWT_ISO_EDGE *e = &(elem[i]);
+#if 0
+    LWGEOM* geom;
+    double dist;
+
+    if ( ! e->geom )
+    {
+      _lwt_release_edges(elem, num);
+      lwnotice("Corrupted topology: edge %" LWTFMT_ELEMID
+               " has null geometry", e->edge_id);
+      continue;
+    }
+
+    /* Should we check for intersection not being on an endpoint
+     * as documented ? */
+    geom = lwline_as_lwgeom(e->geom);
+    dist = lwgeom_mindistance2d_tolerance(geom, qp, tol);
+    if ( dist > tol ) continue;
+#endif
+
+    if ( id )
+    {
+      _lwt_release_edges(elem, num);
+      lwerror("Two or more edges found");
+      return -1;
+    }
+    else id = e->edge_id;
+  }
+
+  if ( num ) _lwt_release_edges(elem, num);
+
+  return id;
+}
+
+LWT_ELEMID
+lwt_GetFaceByPoint(LWT_TOPOLOGY *topo, LWPOINT *pt, double tol)
+{
+  LWT_ELEMID id = 0;
+  LWT_ISO_EDGE *elem;
+  int num, i;
+  int flds = LWT_COL_EDGE_EDGE_ID |
+             LWT_COL_EDGE_GEOM |
+             LWT_COL_EDGE_FACE_LEFT |
+             LWT_COL_EDGE_FACE_RIGHT;
+  LWGEOM *qp = lwpoint_as_lwgeom(pt);
+
+  id = lwt_be_getFaceContainingPoint(topo, pt);
+  if ( id == -2 ) {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+
+  if ( id > 0 )
+  {
+    return id;
+  }
+  id = 0; /* or it'll be -1 for not found */
+
+  LWDEBUG(1, "No face properly contains query point,"
+             " looking for edges");
+
+  /* Not in a face, may be in universe or on edge, let's check
+   * for distance */
+  /* NOTE: we never pass a tolerance of 0 to avoid ever using
+   * ST_Within, which doesn't include endpoints matches */
+  elem = lwt_be_getEdgeWithinDistance2D(topo, pt, tol?tol:1e-5, &num, flds, 0);
+  if ( num == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  for (i=0; i<num; ++i)
+  {
+    LWT_ISO_EDGE *e = &(elem[i]);
+    LWT_ELEMID eface = 0;
+    LWGEOM* geom;
+    double dist;
+
+    if ( ! e->geom )
+    {
+      _lwt_release_edges(elem, num);
+      lwnotice("Corrupted topology: edge %" LWTFMT_ELEMID
+               " has null geometry", e->edge_id);
+      continue;
+    }
+
+    /* don't consider dangling edges */
+    if ( e->face_left == e->face_right )
+    {
+      LWDEBUGF(1, "Edge %" LWTFMT_ELEMID
+                  " is dangling, won't consider it", e->edge_id);
+      continue;
+    }
+
+    geom = lwline_as_lwgeom(e->geom);
+    dist = lwgeom_mindistance2d_tolerance(geom, qp, tol);
+
+    LWDEBUGF(1, "Distance from edge %" LWTFMT_ELEMID
+                " is %g (tol=%g)", e->edge_id, dist, tol);
+
+    /* we won't consider edges too far */
+    if ( dist > tol ) continue;
+    if ( e->face_left == 0 ) {
+      eface = e->face_right;
+    }
+    else if ( e->face_right == 0 ) {
+      eface = e->face_left;
+    }
+    else {
+      _lwt_release_edges(elem, num);
+      lwerror("Two or more faces found");
+      return -1;
+    }
+
+    if ( id && id != eface )
+    {
+      _lwt_release_edges(elem, num);
+      lwerror("Two or more faces found"
+#if 0 /* debugging */
+              " (%" LWTFMT_ELEMID
+              " and %" LWTFMT_ELEMID ")", id, eface
+#endif
+             );
+      return -1;
+    }
+    else id = eface;
+  }
+  if ( num ) _lwt_release_edges(elem, num);
+
+  return id;
+}
+
+/* Return the smallest delta that can perturbate
+ * the maximum absolute value of a geometry ordinate
+ */
+static double
+_lwt_minTolerance( LWGEOM *g )
+{
+  const GBOX* gbox;
+  double max;
+  double ret;
+
+  gbox = lwgeom_get_bbox(g);
+  if ( ! gbox ) return 0; /* empty */
+  max = FP_ABS(gbox->xmin);
+  if ( max < FP_ABS(gbox->xmax) ) max = FP_ABS(gbox->xmax);
+  if ( max < FP_ABS(gbox->ymin) ) max = FP_ABS(gbox->ymin);
+  if ( max < FP_ABS(gbox->ymax) ) max = FP_ABS(gbox->ymax);
+
+  ret = 3.6 * pow(10,  - ( 15 - log10(max?max:1.0) ) );
+
+  return ret;
+}
+
+#define _LWT_MINTOLERANCE( topo, geom ) ( \
+  topo->precision ?  topo->precision : _lwt_minTolerance(geom) )
+
+LWT_ELEMID
+lwt_AddPoint(LWT_TOPOLOGY* topo, LWPOINT* point, double tol)
+{
+  int num, i;
+  double mindist;
+  LWT_ISO_NODE *nodes;
+  LWT_ISO_EDGE *edges;
+  LWGEOM *pt = lwpoint_as_lwgeom(point);
+  int flds;
+  LWT_ELEMID id = 0;
+
+  /* Get tolerance, if 0 was given */
+  if ( ! tol ) tol = _LWT_MINTOLERANCE( topo, pt );
+
+  /*
+  -- 1. Check if any existing node is closer than the given precision
+  --    and if so pick the closest
+  TODO: use WithinBox2D
+  */
+  flds = LWT_COL_NODE_NODE_ID|LWT_COL_NODE_GEOM;
+  nodes = lwt_be_getNodeWithinDistance2D(topo, point, tol, &num, flds, 0);
+  if ( num == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  for ( i=0; i<num; ++i )
+  {
+    LWT_ISO_NODE *n = &(nodes[i]);
+    LWGEOM *g = lwpoint_as_lwgeom(n->geom);
+    double dist = lwgeom_mindistance2d(g, pt);
+    if ( dist >= tol ) continue; /* must be closer than tolerated */
+    if ( ! id || dist < mindist )
+    {
+      id = n->node_id;
+      mindist = dist;
+    }
+  }
+  if ( id )
+  {
+    /* found an existing node */
+    if ( nodes ) _lwt_release_nodes(nodes, num);
+    return id;
+  }
+
+  initGEOS(lwnotice, lwgeom_geos_error);
+
+  /*
+  -- 2. Check if any existing edge falls within tolerance
+  --    and if so split it by a point projected on it
+  TODO: use WithinBox2D
+  */
+  flds = LWT_COL_EDGE_EDGE_ID|LWT_COL_EDGE_GEOM;
+  edges = lwt_be_getEdgeWithinDistance2D(topo, point, tol, &num, flds, 1);
+  if ( num == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if ( num )
+  {{
+    /* The point is on or near an edge, split the edge */
+
+    LWT_ISO_EDGE *e = &(edges[0]);
+    LWGEOM *g = lwline_as_lwgeom(e->geom);
+    LWGEOM *prj;
+    int contains;
+    GEOSGeometry *prjg, *gg;
+
+    LWDEBUGF(1, "Splitting edge %" LWTFMT_ELEMID, e->edge_id);
+
+    /* project point to line, split edge by point */
+    prj = lwgeom_closest_point(g, pt);
+    if ( lwgeom_has_z(pt) )
+    {{
+      /*
+      -- This is a workaround for ClosestPoint lack of Z support:
+      -- http://trac.osgeo.org/postgis/ticket/2033
+      */
+      LWGEOM *tmp;
+      double z;
+      POINT4D p4d;
+      LWPOINT *prjpt;
+      /* add Z to "prj" */
+      tmp = lwgeom_force_3dz(prj);
+      prjpt = lwgeom_as_lwpoint(tmp);
+      getPoint4d_p(point->point, 0, &p4d);
+      z = p4d.z;
+      getPoint4d_p(prjpt->point, 0, &p4d);
+      p4d.z = z;
+      ptarray_set_point4d(prjpt->point, 0, &p4d);
+      lwgeom_free(prj);
+      prj = tmp;
+    }}
+    prjg = LWGEOM2GEOS(prj, 0);
+    if ( ! prjg ) {
+      lwgeom_free(prj);
+      _lwt_release_edges(edges, num);
+      lwerror("Could not convert edge geometry to GEOS: %s", lwgeom_geos_errmsg);
+      return -1;
+    }
+    gg = LWGEOM2GEOS(g, 0);
+    if ( ! gg ) {
+      lwgeom_free(prj);
+      _lwt_release_edges(edges, num);
+      GEOSGeom_destroy(prjg);
+      lwerror("Could not convert edge geometry to GEOS: %s", lwgeom_geos_errmsg);
+      return -1;
+    }
+    contains = GEOSContains(gg, prjg);
+    GEOSGeom_destroy(prjg);
+    GEOSGeom_destroy(gg);
+    if ( contains == 2 )
+    {
+      lwgeom_free(prj);
+      _lwt_release_edges(edges, num);
+      lwerror("GEOS exception on Contains: %s", lwgeom_geos_errmsg);
+      return -1;
+    } 
+    if ( ! contains )
+    {{
+      double snaptol;
+      LWGEOM *snapedge;
+      LWLINE *snapline;
+      POINT4D p1, p2;
+
+      LWDEBUGF(1, "Edge %" LWTFMT_ELEMID
+                  " does not contain projected point to it",
+                  e->edge_id);
+
+      /*
+      -- The tolerance must be big enough for snapping to happen
+      -- and small enough to snap only to the projected point.
+      -- Unfortunately ST_Distance returns 0 because it also uses
+      -- a projected point internally, so we need another way.
+      */
+      snaptol = _lwt_minTolerance(prj);
+      snapedge = lwgeom_snap(g, prj, snaptol);
+      snapline = lwgeom_as_lwline(snapedge);
+
+      LWDEBUGF(1, "Edge snapped with tolerance %g", snaptol);
+
+      /* TODO: check if snapping did anything ? */
+#if POSTGIS_DEBUG_LEVEL > 0
+      {
+      size_t sz;
+      char *wkt1 = lwgeom_to_wkt(g, WKT_EXTENDED, 15, &sz);
+      char *wkt2 = lwgeom_to_wkt(snapedge, WKT_EXTENDED, 15, &sz);
+      LWDEBUGF(1, "Edge %s snapped became %s", wkt1, wkt2);
+      lwfree(wkt1);
+      lwfree(wkt2);
+      }
+#endif
+
+
+      /*
+      -- Snapping currently snaps the first point below tolerance
+      -- so may possibly move first point. See ticket #1631
+      */
+      getPoint4d_p(e->geom->points, 0, &p1);
+      getPoint4d_p(snapline->points, 0, &p2);
+      LWDEBUGF(1, "Edge first point is %g %g, "
+                  "snapline first point is %g %g",
+                  p1.x, p1.y, p2.x, p2.y);
+      if ( p1.x != p2.x || p1.y != p2.y )
+      {
+        LWDEBUG(1, "Snapping moved first point, re-adding it");
+        if ( LW_SUCCESS != ptarray_insert_point(snapline->points, &p1, 0) )
+        {
+          lwgeom_free(prj);
+          lwgeom_free(snapedge);
+          _lwt_release_edges(edges, num);
+          lwerror("GEOS exception on Contains: %s", lwgeom_geos_errmsg);
+          return -1;
+        }
+#if POSTGIS_DEBUG_LEVEL > 0
+        {
+        size_t sz;
+        char *wkt1 = lwgeom_to_wkt(g, WKT_EXTENDED, 15, &sz);
+        LWDEBUGF(1, "Tweaked snapline became %s", wkt1);
+        lwfree(wkt1);
+        }
+#endif
+      }
+#if POSTGIS_DEBUG_LEVEL > 0
+      else {
+        LWDEBUG(1, "Snapping did not move first point");
+      }
+#endif
+
+      if ( -1 == lwt_ChangeEdgeGeom( topo, e->edge_id, snapline ) )
+      {
+        /* TODO: should have invoked lwerror already, leaking memory */
+        lwgeom_free(prj);
+        lwgeom_free(snapedge);
+        _lwt_release_edges(edges, num);
+        lwerror("lwt_ChangeEdgeGeom failed");
+        return -1;
+      }
+      lwgeom_free(snapedge);
+    }}
+#if POSTGIS_DEBUG_LEVEL > 0
+    else
+    {{
+      size_t sz;
+      char *wkt1 = lwgeom_to_wkt(g, WKT_EXTENDED, 15, &sz);
+      char *wkt2 = lwgeom_to_wkt(prj, WKT_EXTENDED, 15, &sz);
+      LWDEBUGF(1, "Edge %s contains projected point %s", wkt1, wkt2);
+      lwfree(wkt1);
+      lwfree(wkt2);
+    }}
+#endif
+
+    /* TODO: pass 1 as last argument (skipChecks) ? */
+    id = lwt_ModEdgeSplit( topo, e->edge_id, lwgeom_as_lwpoint(prj), 0 );
+    if ( -1 == id )
+    {
+      /* TODO: should have invoked lwerror already, leaking memory */
+      lwgeom_free(prj);
+      _lwt_release_edges(edges, num);
+      lwerror("lwt_ModEdgeSplit failed");
+      return -1;
+    }
+
+    lwgeom_free(prj);
+    _lwt_release_edges(edges, num);
+  }}
+  else
+  {
+    /* The point is isolated, add it as such */
+    /* TODO: pass 1 as last argument (skipChecks) ? */
+    id = lwt_AddIsoNode(topo, -1, point, 0);
+    if ( -1 == id )
+    {
+      /* should have invoked lwerror already, leaking memory */
+      lwerror("lwt_AddIsoNode failed");
+      return -1;
+    }
+  }
+
+  return id;
+}
+
+/* Return identifier of an equal edge, 0 if none or -1 on error
+ * (and lwerror gets called on error)
+ */
+static LWT_ELEMID
+_lwt_GetEqualEdge( LWT_TOPOLOGY *topo, LWLINE *edge )
+{
+  LWT_ELEMID id;
+  LWT_ISO_EDGE *edges;
+  int num, i;
+  const GBOX *qbox = lwgeom_get_bbox( lwline_as_lwgeom(edge) );
+  GEOSGeometry *edgeg;
+  const int flds = LWT_COL_EDGE_EDGE_ID|LWT_COL_EDGE_GEOM;
+
+  edges = lwt_be_getEdgeWithinBox2D( topo, qbox, &num, flds, 0 );
+  if ( num == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  if ( num )
+  {
+    initGEOS(lwnotice, lwgeom_geos_error);
+
+    edgeg = LWGEOM2GEOS( lwline_as_lwgeom(edge), 0 );
+    if ( ! edgeg )
+    {
+      _lwt_release_edges(edges, num);
+      lwerror("Could not convert edge geometry to GEOS: %s", lwgeom_geos_errmsg);
+      return -1;
+    }
+    for (i=0; i<num; ++i)
+    {
+      LWT_ISO_EDGE *e = &(edges[i]);
+      LWGEOM *g = lwline_as_lwgeom(e->geom);
+      GEOSGeometry *gg;
+      int equals;
+      gg = LWGEOM2GEOS( g, 0 );
+      if ( ! gg )
+      {
+        GEOSGeom_destroy(edgeg);
+        _lwt_release_edges(edges, num);
+        lwerror("Could not convert edge geometry to GEOS: %s", lwgeom_geos_errmsg);
+        return -1;
+      }
+      equals = GEOSEquals(gg, edgeg);
+      GEOSGeom_destroy(gg);
+      if ( equals == 2 )
+      {
+        GEOSGeom_destroy(edgeg);
+        _lwt_release_edges(edges, num);
+        lwerror("GEOSEquals exception: %s", lwgeom_geos_errmsg);
+        return -1;
+      }
+      if ( equals )
+      {
+        id = e->edge_id;
+        GEOSGeom_destroy(edgeg);
+        _lwt_release_edges(edges, num);
+        return id;
+      }
+    }
+    GEOSGeom_destroy(edgeg);
+    _lwt_release_edges(edges, num);
+  }
+
+  return 0;
+}
+
+/*
+ * Add a pre-noded pre-splitted line edge. Used by lwt_AddLine
+ * Return edge id, 0 if none added (empty edge), -1 on error
+ */
+static LWT_ELEMID
+_lwt_AddLineEdge( LWT_TOPOLOGY* topo, LWLINE* edge, double tol )
+{
+  LWCOLLECTION *col;
+  LWPOINT *start_point, *end_point;
+  LWGEOM *tmp;
+  LWT_ISO_NODE *node;
+  LWT_ELEMID nid[2]; /* start_node, end_node */
+  LWT_ELEMID id; /* edge id */
+  POINT4D p4d;
+  int nn, i;
+
+  start_point = lwline_get_lwpoint(edge, 0);
+  if ( ! start_point )
+  {
+    lwnotice("Empty component of noded line");
+    return 0; /* must be empty */
+  }
+  nid[0] = lwt_AddPoint( topo, start_point, tol );
+  lwpoint_free(start_point); /* too late if lwt_AddPoint calls lwerror */
+  if ( nid[0] == -1 ) return -1; /* lwerror should have been called */
+
+  end_point = lwline_get_lwpoint(edge, edge->points->npoints-1);
+  if ( ! end_point )
+  {
+    lwerror("could not get last point of line "
+            "after successfully getting first point !?");
+    return -1;
+  }
+  nid[1] = lwt_AddPoint( topo, end_point, tol );
+  lwpoint_free(end_point); /* too late if lwt_AddPoint calls lwerror */
+  if ( nid[1] == -1 ) return -1; /* lwerror should have been called */
+
+  /*
+    -- Added endpoints may have drifted due to tolerance, so
+    -- we need to re-snap the edge to the new nodes before adding it
+  */
+
+  nn = nid[0] == nid[1] ? 1 : 2;
+  node = lwt_be_getNodeById( topo, nid, &nn,
+                             LWT_COL_NODE_NODE_ID|LWT_COL_NODE_GEOM );
+  if ( nn == -1 )
+  {
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return -1;
+  }
+  start_point = NULL; end_point = NULL;
+  for (i=0; i<nn; ++i)
+  {
+    if ( node[i].node_id == nid[0] ) start_point = node[i].geom;
+    if ( node[i].node_id == nid[1] ) end_point = node[i].geom;
+  }
+  if ( ! start_point  || ! end_point )
+  {
+    if ( nn ) _lwt_release_nodes(node, nn);
+    lwerror("Could not find just-added nodes % " LWTFMT_ELEMID
+            " and %" LWTFMT_ELEMID, nid[0], nid[1]);
+    return -1;
+  }
+
+  /* snap */
+
+  getPoint4d_p( start_point->point, 0, &p4d );
+  lwline_setPoint4d(edge, 0, &p4d);
+
+  getPoint4d_p( end_point->point, 0, &p4d );
+  lwline_setPoint4d(edge, edge->points->npoints-1, &p4d);
+
+  if ( nn ) _lwt_release_nodes(node, nn);
+
+  /* make valid, after snap (to handle collapses) */
+  tmp = lwgeom_make_valid(lwline_as_lwgeom(edge));
+
+  col = lwgeom_as_lwcollection(tmp);
+  if ( col )
+  {{
+    LWGEOM *tmp2;
+
+    col = lwcollection_extract(col, LINETYPE);
+
+    /* Check if the so-snapped edge collapsed (see #1650) */
+    if ( col->ngeoms == 0 )
+    {
+      lwcollection_free(col);
+      lwgeom_free(tmp);
+      LWDEBUG(1, "Made-valid snapped edge collapsed");
+      return 0;
+    }
+
+    tmp2 = lwgeom_clone_deep( col->geoms[0] );
+    lwgeom_free(tmp);
+    tmp = tmp2;
+    edge = lwgeom_as_lwline(tmp);
+    lwcollection_free(col);
+    if ( ! edge )
+    {
+      /* should never happen */
+      lwerror("lwcollection_extract(LINETYPE) returned a non-line?");
+      return -1;
+    }
+  }}
+  else
+  {
+    edge = lwgeom_as_lwline(tmp);
+    if ( ! edge )
+    {
+      LWDEBUGF(1, "Made-valid snapped edge collapsed to %s",
+                  lwtype_name(lwgeom_get_type(tmp)));
+      lwgeom_free(tmp);
+      return 0;
+    }
+  }
+
+  /* check if the so-snapped edge _now_ exists */
+  id = _lwt_GetEqualEdge ( topo, edge );
+  LWDEBUGF(1, "_lwt_GetEqualEdge returned %" LWTFMT_ELEMID, id);
+  if ( id == -1 )
+  {
+    lwgeom_free(tmp); /* probably too late, due to internal lwerror */
+    return -1;
+  }
+  if ( id ) 
+  {
+    lwgeom_free(tmp); /* possibly takes "edge" down with it */
+    return id;
+  }
+
+  /* No previously existing edge was found, we'll add one */
+  /* TODO: skip checks, I guess ? */
+  id = lwt_AddEdgeModFace( topo, nid[0], nid[1], edge, 0 );
+  LWDEBUGF(1, "lwt_AddEdgeModFace returned %" LWTFMT_ELEMID, id);
+  if ( id == -1 )
+  {
+    lwgeom_free(tmp); /* probably too late, due to internal lwerror */
+    return -1;
+  }
+  lwgeom_free(tmp); /* possibly takes "edge" down with it */
+
+  return id;
+}
+
+/* Simulate split-loop as it was implemented in pl/pgsql version
+ * of TopoGeo_addLinestring */
+static LWGEOM *
+_lwt_split_by_nodes(const LWGEOM *g, const LWGEOM *nodes)
+{
+  LWCOLLECTION *col = lwgeom_as_lwcollection(nodes);
+  int i;
+  LWGEOM *bg;
+
+  bg = lwgeom_clone_deep(g);
+  if ( ! col->ngeoms ) return bg;
+
+  for (i=0; i<col->ngeoms; ++i)
+  {
+    LWGEOM *g2;
+    g2 = lwgeom_split(bg, col->geoms[i]);
+    lwgeom_free(bg);
+    bg = g2;
+  }
+  bg->srid = nodes->srid;
+
+  return bg;
+}
+
+LWT_ELEMID*
+lwt_AddLine(LWT_TOPOLOGY* topo, LWLINE* line, double tol, int* nedges)
+{
+  LWGEOM *geomsbuf[1];
+  LWGEOM **geoms;
+  int ngeoms;
+  LWGEOM *noded;
+  LWCOLLECTION *col;
+  LWT_ELEMID *ids;
+  LWT_ISO_EDGE *edges;
+  LWT_ISO_NODE *nodes;
+  int num;
+  int i;
+  GBOX qbox;
+
+  *nedges = -1; /* error condition, by default */
+
+  /* Get tolerance, if 0 was given */
+  if ( ! tol ) tol = _LWT_MINTOLERANCE( topo, (LWGEOM*)line );
+  LWDEBUGF(1, "Working tolerance:%.15g", tol);
+  LWDEBUGF(1, "Input line has srid=%d", line->srid);
+
+  /* 1. Self-node */
+  noded = lwgeom_node((LWGEOM*)line);
+  if ( ! noded ) return NULL; /* should have called lwerror already */
+  LWDEBUGG(1, noded, "Noded");
+
+  qbox = *lwgeom_get_bbox( lwline_as_lwgeom(line) );
+  LWDEBUGF(1, "Line BOX is %.15g %.15g, %.15g %.15g", qbox.xmin, qbox.ymin,
+                                          qbox.xmax, qbox.ymax);
+  gbox_expand(&qbox, tol);
+  LWDEBUGF(1, "BOX expanded by %g is %.15g %.15g, %.15g %.15g",
+              tol, qbox.xmin, qbox.ymin, qbox.xmax, qbox.ymax);
+
+  /* 2. Node to edges falling within tol distance */
+  edges = lwt_be_getEdgeWithinBox2D( topo, &qbox, &num, LWT_COL_EDGE_ALL, 0 );
+  if ( num == -1 )
+  {
+    lwgeom_free(noded);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return NULL;
+  }
+  LWDEBUGF(1, "Line bbox intersects %d edges bboxes", num);
+  if ( num )
+  {{
+    /* collect those whose distance from us is < tol */
+    LWGEOM **nearby = lwalloc(sizeof(LWGEOM *)*num);
+    int nn=0;
+    for (i=0; i<num; ++i)
+    {
+      LWT_ISO_EDGE *e = &(edges[i]);
+      LWGEOM *g = lwline_as_lwgeom(e->geom);
+      double dist = lwgeom_mindistance2d(g, noded);
+      if ( dist >= tol ) continue; /* must be closer than tolerated */
+      nearby[nn++] = g;
+    }
+    if ( nn )
+    {{
+      LWCOLLECTION *col;
+      LWGEOM *iedges; /* just an alias for col */
+      LWGEOM *snapped;
+      LWGEOM *set1, *set2;
+
+      LWDEBUGF(1, "Line intersects %d edges", nn);
+
+      col = lwcollection_construct(COLLECTIONTYPE, topo->srid,
+                                   NULL, nn, nearby);
+      iedges = lwcollection_as_lwgeom(col);
+      LWDEBUGG(1, iedges, "Collected edges");
+      LWDEBUGF(1, "Snapping noded, with srid=%d "
+                  "to interesecting edges, with srid=%d",
+                  noded->srid, iedges->srid);
+      snapped = lwgeom_snap(noded, iedges, tol);
+      lwgeom_free(noded);
+      LWDEBUGG(1, snapped, "Snapped");
+      LWDEBUGF(1, "Diffing snapped, with srid=%d "
+                  "and interesecting edges, with srid=%d",
+                  snapped->srid, iedges->srid);
+      noded = lwgeom_difference(snapped, iedges);
+      LWDEBUGG(1, noded, "Differenced");
+      LWDEBUGF(1, "Intersecting snapped, with srid=%d "
+                  "and interesecting edges, with srid=%d",
+                  snapped->srid, iedges->srid);
+      set1 = lwgeom_intersection(snapped, iedges);
+      LWDEBUGG(1, set1, "Intersected");
+      lwgeom_free(snapped);
+      LWDEBUGF(1, "Linemerging set1, with srid=%d", set1->srid);
+      set2 = lwgeom_linemerge(set1);
+      LWDEBUGG(1, set2, "Linemerged");
+      LWDEBUGG(1, noded, "Noded");
+      lwgeom_free(set1);
+      LWDEBUGF(1, "Unioning noded, with srid=%d "
+                  "and set2, with srid=%d", noded->srid, set2->srid);
+      set1 = lwgeom_union(noded, set2);
+      lwgeom_free(set2);
+      lwgeom_free(noded);
+      noded = set1;
+      LWDEBUGG(1, set1, "Unioned");
+
+      /* will not release the geoms array */
+      lwcollection_release(col);
+    }}
+    lwfree(nearby);
+    _lwt_release_edges(edges, num);
+  }}
+
+  /* 2.1. Node with existing nodes within tol
+   * TODO: check if we should be only considering _isolated_ nodes! */
+  nodes = lwt_be_getNodeWithinBox2D( topo, &qbox, &num, LWT_COL_EDGE_ALL, 0 );
+  if ( num == -1 )
+  {
+    lwgeom_free(noded);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return NULL;
+  }
+  LWDEBUGF(1, "Line bbox intersects %d nodes bboxes", num);
+  if ( num )
+  {{
+    /* collect those whose distance from us is < tol */
+    LWGEOM **nearby = lwalloc(sizeof(LWGEOM *)*num);
+    int nn=0;
+    for (i=0; i<num; ++i)
+    {
+      LWT_ISO_NODE *n = &(nodes[i]);
+      LWGEOM *g = lwpoint_as_lwgeom(n->geom);
+      double dist = lwgeom_mindistance2d(g, noded);
+      if ( dist >= tol ) continue; /* must be closer than tolerated */
+      nearby[nn++] = g;
+    }
+    if ( nn )
+    {{
+      LWCOLLECTION *col;
+      LWGEOM *inodes; /* just an alias for col */
+      LWGEOM *tmp;
+
+      LWDEBUGF(1, "Line intersects %d nodes", nn);
+
+      col = lwcollection_construct(MULTIPOINTTYPE, topo->srid,
+                                   NULL, nn, nearby);
+      inodes = lwcollection_as_lwgeom(col);
+
+      LWDEBUGG(1, inodes, "Collected nodes");
+
+      /* TODO: consider snapping once against all elements
+       *      (rather than once with edges and once with nodes) */
+      tmp = lwgeom_snap(noded, inodes, tol);
+      lwgeom_free(noded);
+      noded = tmp;
+      LWDEBUGG(1, noded, "Node-snapped");
+
+      tmp = _lwt_split_by_nodes(noded, inodes);
+          /* lwgeom_split(noded, inodes); */
+      lwgeom_free(noded);
+      noded = tmp;
+      LWDEBUGG(1, noded, "Node-splitted");
+
+      /* will not release the geoms array */
+      lwcollection_release(col);
+
+      /*
+      -- re-node to account for ST_Snap introduced self-intersections
+      -- See http://trac.osgeo.org/postgis/ticket/1714
+      -- TODO: consider running UnaryUnion once after all noding
+      */
+      tmp = lwgeom_unaryunion(noded);
+      lwgeom_free(noded);
+      noded = tmp;
+      LWDEBUGG(1, noded, "Unary-unioned");
+
+    }}
+    lwfree(nearby);
+    _lwt_release_nodes(nodes, num);
+  }}
+
+  LWDEBUGG(1, noded, "Finally-noded");
+
+  /* 3. For each (now-noded) segment, insert an edge */
+  col = lwgeom_as_lwcollection(noded);
+  if ( col )
+  {
+    LWDEBUG(1, "Noded line was a collection");
+    geoms = col->geoms;
+    ngeoms = col->ngeoms;
+  }
+  else
+  {
+    LWDEBUG(1, "Noded line was a single geom");
+    geomsbuf[0] = noded;
+    geoms = geomsbuf;
+    ngeoms = 1;
+  }
+
+  LWDEBUGF(1, "Line was splitted into %d edges", ngeoms);
+
+  /* TODO: refactor to first add all nodes (re-snapping edges if
+   * needed) and then check all edges for existing already
+   * ( so to save a DB scan for each edge to be added )
+   */
+  ids = lwalloc(sizeof(LWT_ELEMID)*ngeoms);
+  num = 0;
+  for ( i=0; i<ngeoms; ++i )
+  {
+    LWT_ELEMID id;
+    LWGEOM *g = geoms[i];
+    g->srid = noded->srid;
+
+#if POSTGIS_DEBUG_LEVEL > 0
+    {
+      size_t sz;
+      char *wkt1 = lwgeom_to_wkt(g, WKT_EXTENDED, 15, &sz);
+      LWDEBUGF(1, "Component %d of split line is: %s", i, wkt1);
+      lwfree(wkt1);
+    }
+#endif
+
+    id = _lwt_AddLineEdge( topo, lwgeom_as_lwline(g), tol );
+    LWDEBUGF(1, "_lwt_AddLineEdge returned %" LWTFMT_ELEMID, id);
+    if ( id < 0 )
+    {
+      lwgeom_free(noded);
+      lwfree(ids);
+      return NULL;
+    }
+    if ( ! id )
+    {
+      LWDEBUGF(1, "Component %d of split line collapsed", i);
+      continue;
+    }
+
+    LWDEBUGF(1, "Component %d of split line is edge %" LWTFMT_ELEMID,
+                  i, id);
+    ids[num++] = id; /* TODO: skip duplicates */
+  }
+
+  LWDEBUGG(1, noded, "Noded before free");
+  lwgeom_free(noded);
+
+  /* TODO: XXX remove duplicated ids if not done before */
+
+  *nedges = num;
+  return ids;
+}
+
+LWT_ELEMID*
+lwt_AddPolygon(LWT_TOPOLOGY* topo, LWPOLY* poly, double tol, int* nfaces)
+{
+  int i;
+  *nfaces = -1; /* error condition, by default */
+  int num;
+  LWT_ISO_FACE *faces;
+  int nfacesinbox;
+  LWT_ELEMID *ids = NULL;
+  GBOX qbox;
+  const GEOSPreparedGeometry *ppoly;
+  GEOSGeometry *polyg;
+
+  /* Get tolerance, if 0 was given */
+  if ( ! tol ) tol = _LWT_MINTOLERANCE( topo, (LWGEOM*)poly );
+  LWDEBUGF(1, "Working tolerance:%.15g", tol);
+
+  /* Add each ring as an edge */
+  for ( i=0; i<poly->nrings; ++i )
+  {
+    LWLINE *line;
+    POINTARRAY *pa;
+    LWT_ELEMID *eids;
+    int nedges;
+
+    pa = ptarray_clone(poly->rings[i]);
+    line = lwline_construct(topo->srid, NULL, pa);
+    eids = lwt_AddLine( topo, line, tol, &nedges );
+    if ( nedges < 0 ) {
+      /* probably too late as lwt_AddLine invoked lwerror */
+      lwline_free(line);
+      lwerror("Error adding ring %d of polygon", i);
+      return NULL;
+    }
+    lwline_free(line);
+    lwfree(eids);
+  }
+
+  /*
+  -- Find faces covered by input polygon
+  -- NOTE: potential snapping changed polygon edges
+  */
+  qbox = *lwgeom_get_bbox( lwpoly_as_lwgeom(poly) );
+  gbox_expand(&qbox, tol);
+  faces = lwt_be_getFaceWithinBox2D( topo, &qbox, &nfacesinbox,
+                                     LWT_COL_FACE_ALL, 0 );
+  if ( nfacesinbox == -1 )
+  {
+    lwfree(ids);
+    lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
+    return NULL;
+  }
+
+  num = 0;
+  if ( nfacesinbox )
+  {
+    polyg = LWGEOM2GEOS(lwpoly_as_lwgeom(poly), 0);
+    if ( ! polyg )
+    {
+      _lwt_release_faces(faces, nfacesinbox);
+      lwerror("Could not convert poly geometry to GEOS: %s", lwgeom_geos_errmsg);
+      return NULL;
+    }
+    ppoly = GEOSPrepare(polyg);
+    ids = lwalloc(sizeof(LWT_ELEMID)*nfacesinbox);
+    for ( i=0; i<nfacesinbox; ++i )
+    {
+      LWT_ISO_FACE *f = &(faces[i]);
+      LWGEOM *fg;
+      GEOSGeometry *fgg, *sp;
+      int covers;
+
+      /* check if a point on this face surface is covered by our polygon */
+      fg = lwt_GetFaceGeometry( topo, f->face_id );
+      if ( ! fg )
+      {
+        i = f->face_id; /* so we can destroy faces */
+        GEOSPreparedGeom_destroy(ppoly);
+        GEOSGeom_destroy(polyg);
+        lwfree(ids);
+        _lwt_release_faces(faces, nfacesinbox);
+        lwerror("Could not get geometry of face %" LWTFMT_ELEMID, i);
+        return NULL;
+      }
+      /* check if a point on this face's surface is covered by our polygon */
+      fgg = LWGEOM2GEOS(fg, 0);
+      lwgeom_free(fg);
+      if ( ! fgg )
+      {
+        GEOSPreparedGeom_destroy(ppoly);
+        GEOSGeom_destroy(polyg);
+        _lwt_release_faces(faces, nfacesinbox);
+        lwerror("Could not convert edge geometry to GEOS: %s", lwgeom_geos_errmsg);
+        return NULL;
+      }
+      sp = GEOSPointOnSurface(fgg);
+      GEOSGeom_destroy(fgg);
+      if ( ! sp )
+      {
+        GEOSPreparedGeom_destroy(ppoly);
+        GEOSGeom_destroy(polyg);
+        _lwt_release_faces(faces, nfacesinbox);
+        lwerror("Could not find point on face surface: %s", lwgeom_geos_errmsg);
+        return NULL;
+      }
+      covers = GEOSPreparedCovers( ppoly, sp );
+      GEOSGeom_destroy(sp);
+      if (covers == 2)
+      {
+        GEOSPreparedGeom_destroy(ppoly);
+        GEOSGeom_destroy(polyg);
+        _lwt_release_faces(faces, nfacesinbox);
+        lwerror("PreparedCovers error: %s", lwgeom_geos_errmsg);
+        return NULL;
+      }
+      if ( ! covers )
+      {
+        continue; /* we're not composed by this face */
+      }
+
+      /* TODO: avoid duplicates ? */
+      ids[num++] = f->face_id;
+    }
+    GEOSPreparedGeom_destroy(ppoly);
+    GEOSGeom_destroy(polyg);
+    _lwt_release_faces(faces, nfacesinbox);
+  }
+
+  /* possibly 0 if non face's surface point was found
+   * to be covered by input polygon */
+  *nfaces = num;
+
+  return ids;
+}
diff --git a/liblwgeom/lwhomogenize.c b/liblwgeom/lwhomogenize.c
index 9cc9e50..9563473 100644
--- a/liblwgeom/lwhomogenize.c
+++ b/liblwgeom/lwhomogenize.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwhomogenize.c 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/liblwgeom/lwin_encoded_polyline.c b/liblwgeom/lwin_encoded_polyline.c
new file mode 100644
index 0000000..e5d3ddd
--- /dev/null
+++ b/liblwgeom/lwin_encoded_polyline.c
@@ -0,0 +1,67 @@
+/**********************************************************************
+*
+* PostGIS - Spatial Types for PostgreSQL
+* http://postgis.net
+*
+* Copyright 2014 Kashif Rasul <kashif.rasul at gmail.com> and
+*                Shoaib Burq <saburq at gmail.com>
+*
+* This is free software; you can redistribute and/or modify it under
+* the terms of the GNU General Public Licence. See the COPYING file.
+*
+**********************************************************************/
+
+#include <assert.h>
+#include <string.h>
+#include "liblwgeom.h"
+#include "../postgis_config.h"
+
+LWGEOM*
+lwgeom_from_encoded_polyline(const char *encodedpolyline, int precision)
+{
+  LWGEOM *geom = NULL;
+  POINTARRAY *pa = NULL;
+  int length = strlen(encodedpolyline);
+  int idx = 0;
+	double scale = pow(10,precision);
+
+  float latitude = 0.0f;
+  float longitude = 0.0f;
+
+  pa = ptarray_construct_empty(LW_FALSE, LW_FALSE, 1);
+
+  while (idx < length) {
+    POINT4D pt;
+    char byte = 0;
+
+    int res = 0;
+    char shift = 0;
+    do {
+      byte = encodedpolyline[idx++] - 63;
+      res |= (byte & 0x1F) << shift;
+      shift += 5;
+    } while (byte >= 0x20);
+    float deltaLat = ((res & 1) ? ~(res >> 1) : (res >> 1));
+    latitude += deltaLat;
+
+    shift = 0;
+    res = 0;
+    do {
+      byte = encodedpolyline[idx++] - 63;
+      res |= (byte & 0x1F) << shift;
+      shift += 5;
+    } while (byte >= 0x20);
+    float deltaLon = ((res & 1) ? ~(res >> 1) : (res >> 1));
+    longitude += deltaLon;
+
+    pt.x = longitude/scale;
+    pt.y = latitude/scale;
+	pt.m = pt.z = 0.0;
+    ptarray_append_point(pa, &pt, LW_FALSE);
+  }
+
+  geom = (LWGEOM *)lwline_construct(4326, NULL, pa);
+  lwgeom_add_bbox(geom);
+
+  return geom;
+}
diff --git a/liblwgeom/lwin_geojson.c b/liblwgeom/lwin_geojson.c
index be706f8..e645c23 100644
--- a/liblwgeom/lwin_geojson.c
+++ b/liblwgeom/lwin_geojson.c
@@ -15,9 +15,7 @@
 #include "lwgeom_log.h"
 #include "../postgis_config.h"
 
-#ifdef HAVE_LIBJSON
-
-#include <string.h>
+#if defined(HAVE_LIBJSON) || defined(HAVE_LIBJSON_C) /* --{ */
 
 #ifdef HAVE_LIBJSON_C
 #include <json-c/json.h>
@@ -28,10 +26,11 @@
 #endif
 
 #ifndef JSON_C_VERSION
-// Adds support for libjson < 0.10
+/* Adds support for libjson < 0.10 */
 # define json_tokener_error_desc(x) json_tokener_errors[(x)]
 #endif
 
+#include <string.h>
 
 static void geojson_lwerror(char *msg, int error_code)
 {
@@ -40,7 +39,7 @@ static void geojson_lwerror(char *msg, int error_code)
 }
 
 /* Prototype */
-static LWGEOM* parse_geojson(json_object *geojson, int *hasz,  int root_srid);
+static LWGEOM* parse_geojson(json_object *geojson, int *hasz, int root_srid);
 
 static json_object*
 findMemberByName(json_object* poObj, const char* pszName )
@@ -100,19 +99,19 @@ parse_geojson_coord(json_object *poObj, int *hasz, POINTARRAY *pa)
 			return LW_FAILURE;
 		}
 		
-		// Read X coordinate
+		/* Read X coordinate */
 		poObjCoord = json_object_array_get_idx( poObj, 0 );
 		pt.x = json_object_get_double( poObjCoord );
 		LWDEBUGF(3, "parse_geojson_coord pt.x = %f.", pt.x );
 
-		// Read Y coordinate
+		/* Read Y coordinate */
 		poObjCoord = json_object_array_get_idx( poObj, 1 );
 		pt.y = json_object_get_double( poObjCoord );
 		LWDEBUGF(3, "parse_geojson_coord pt.y = %f.", pt.y );
 
 		if( nSize > 2 ) /* should this be >= 3 ? */
 		{
-			// Read Z coordinate
+			/* Read Z coordinate */
 			poObjCoord = json_object_array_get_idx( poObj, 2 );
 			pt.z = json_object_get_double( poObjCoord );
 			LWDEBUGF(3, "parse_geojson_coord pt.z = %f.", pt.z );
@@ -144,7 +143,7 @@ parse_geojson_coord(json_object *poObj, int *hasz, POINTARRAY *pa)
 }
 
 static LWGEOM*
-parse_geojson_point(json_object *geojson, int *hasz,  int root_srid)
+parse_geojson_point(json_object *geojson, int *hasz, int root_srid)
 {
 	LWGEOM *geom;
 	POINTARRAY *pa;
@@ -168,7 +167,7 @@ parse_geojson_point(json_object *geojson, int *hasz,  int root_srid)
 }
 
 static LWGEOM*
-parse_geojson_linestring(json_object *geojson, int *hasz,  int root_srid)
+parse_geojson_linestring(json_object *geojson, int *hasz, int root_srid)
 {
 	LWGEOM *geom;
 	POINTARRAY *pa;
@@ -178,9 +177,10 @@ parse_geojson_linestring(json_object *geojson, int *hasz,  int root_srid)
 	LWDEBUG(2, "parse_geojson_linestring called.");
 
 	points = findMemberByName( geojson, "coordinates" );
-	if ( ! points ) {
+	if ( ! points ) 
+	{
 		geojson_lwerror("Unable to find 'coordinates' in GeoJSON string", 4);
-		return NULL;
+	return NULL;
 	}
 
 	pa = ptarray_construct_empty(1, 0, 1);
@@ -203,7 +203,7 @@ parse_geojson_linestring(json_object *geojson, int *hasz,  int root_srid)
 }
 
 static LWGEOM*
-parse_geojson_polygon(json_object *geojson, int *hasz,  int root_srid)
+parse_geojson_polygon(json_object *geojson, int *hasz, int root_srid)
 {
 	POINTARRAY **ppa = NULL;
 	json_object* rings = NULL;
@@ -265,7 +265,7 @@ parse_geojson_polygon(json_object *geojson, int *hasz,  int root_srid)
 }
 
 static LWGEOM*
-parse_geojson_multipoint(json_object *geojson, int *hasz,  int root_srid)
+parse_geojson_multipoint(json_object *geojson, int *hasz, int root_srid)
 {
 	LWGEOM *geom;
 	int i = 0;
@@ -281,10 +281,11 @@ parse_geojson_multipoint(json_object *geojson, int *hasz,  int root_srid)
 	}
 
 	poObjPoints = findMemberByName( geojson, "coordinates" );
-	if ( ! poObjPoints ) {
+	if ( ! poObjPoints ) 
+	{
 		geojson_lwerror("Unable to find 'coordinates' in GeoJSON string", 4);
-    return NULL;
-  }
+		return NULL;
+	}
 
 	if( json_type_array == json_object_get_type( poObjPoints ) )
 	{
@@ -307,7 +308,7 @@ parse_geojson_multipoint(json_object *geojson, int *hasz,  int root_srid)
 }
 
 static LWGEOM*
-parse_geojson_multilinestring(json_object *geojson, int *hasz,  int root_srid)
+parse_geojson_multilinestring(json_object *geojson, int *hasz, int root_srid)
 {
 	LWGEOM *geom = NULL;
 	int i, j;
@@ -323,10 +324,11 @@ parse_geojson_multilinestring(json_object *geojson, int *hasz,  int root_srid)
 	}
 
 	poObjLines = findMemberByName( geojson, "coordinates" );
-	if ( ! poObjLines ) {
+	if ( ! poObjLines ) 
+	{
 		geojson_lwerror("Unable to find 'coordinates' in GeoJSON string", 4);
-    return NULL;
-  }
+		return NULL;
+	}
 
 	if( json_type_array == json_object_get_type( poObjLines ) )
 	{
@@ -358,7 +360,7 @@ parse_geojson_multilinestring(json_object *geojson, int *hasz,  int root_srid)
 }
 
 static LWGEOM*
-parse_geojson_multipolygon(json_object *geojson, int *hasz,  int root_srid)
+parse_geojson_multipolygon(json_object *geojson, int *hasz, int root_srid)
 {
 	LWGEOM *geom = NULL;
 	int i, j, k;
@@ -374,7 +376,7 @@ parse_geojson_multipolygon(json_object *geojson, int *hasz,  int root_srid)
 	}
 
 	poObjPolys = findMemberByName( geojson, "coordinates" );
-	if ( ! poObjPolys )
+	if ( ! poObjPolys ) 
 	{
 		geojson_lwerror("Unable to find 'coordinates' in GeoJSON string", 4);
 		return NULL;
@@ -421,7 +423,7 @@ parse_geojson_multipolygon(json_object *geojson, int *hasz,  int root_srid)
 }
 
 static LWGEOM*
-parse_geojson_geometrycollection(json_object *geojson, int *hasz,  int root_srid)
+parse_geojson_geometrycollection(json_object *geojson, int *hasz, int root_srid)
 {
 	LWGEOM *geom = NULL;
 	int i;
@@ -459,7 +461,7 @@ parse_geojson_geometrycollection(json_object *geojson, int *hasz,  int root_srid
 }
 
 static LWGEOM*
-parse_geojson(json_object *geojson, int *hasz,  int root_srid)
+parse_geojson(json_object *geojson, int *hasz, int root_srid)
 {
 	json_object* type = NULL;
 	const char* name;
@@ -504,16 +506,16 @@ parse_geojson(json_object *geojson, int *hasz,  int root_srid)
 	return NULL; /* Never reach */
 }
 
-#endif /* HAVE_LIBJSON  */
+#endif /* HAVE_LIBJSON or HAVE_LIBJSON_C --} */
 
 LWGEOM*
 lwgeom_from_geojson(const char *geojson, char **srs)
 {
 #ifndef HAVE_LIBJSON
-  *srs = NULL;
+	*srs = NULL;
 	lwerror("You need JSON-C for lwgeom_from_geojson");
 	return NULL;
-#else /* HAVE_LIBJSON  */
+#else /* HAVE_LIBJSON */
 
 	/* size_t geojson_size = strlen(geojson); */
 
@@ -575,8 +577,8 @@ lwgeom_from_geojson(const char *geojson, char **srs)
 		LWDEBUG(2, "geom_from_geojson called.");
 	}
 
-  return lwgeom;
-#endif /* HAVE_LIBJSON  */
+	return lwgeom;
+#endif /* HAVE_LIBJSON } */
 }
 
 
diff --git a/liblwgeom/lwin_twkb.c b/liblwgeom/lwin_twkb.c
new file mode 100644
index 0000000..ffba9e0
--- /dev/null
+++ b/liblwgeom/lwin_twkb.c
@@ -0,0 +1,668 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ *
+ * Copyright (C) 2014 Nicklas Avén
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include <math.h>
+#include "liblwgeom_internal.h"
+#include "lwgeom_log.h"
+#include "varint.h"
+
+#define TWKB_IN_MAXCOORDS 4
+
+/**
+* Used for passing the parse state between the parsing functions.
+*/
+typedef struct
+{
+	/* Pointers to the bytes */
+	uint8_t *twkb; /* Points to start of TWKB */
+	uint8_t *twkb_end; /* Points to end of TWKB */
+	uint8_t *pos; /* Current read position */
+
+	uint32_t check; /* Simple validity checks on geometries */
+	uint32_t lwtype; /* Current type we are handling */
+
+	uint8_t has_bbox;
+	uint8_t has_size;
+	uint8_t has_idlist;
+	uint8_t has_z;
+	uint8_t has_m;
+	uint8_t is_empty;
+
+	/* Precision factors to convert ints to double */
+	double factor;
+	double factor_z;
+	double factor_m;
+
+	uint64_t size;
+
+	/* Info about current geometry */
+	uint8_t magic_byte; /* the magic byte contain info about if twkb contain id, size info, bboxes and precision */
+
+	int ndims; /* Number of dimensions */
+
+	int64_t *coords; /* An array to keep delta values from 4 dimensions */
+
+} twkb_parse_state;
+
+
+/**
+* Internal function declarations.
+*/
+LWGEOM* lwgeom_from_twkb_state(twkb_parse_state *s);
+
+
+/**********************************************************************/
+
+/**
+* Check that we are not about to read off the end of the WKB
+* array.
+*/
+static inline void twkb_parse_state_advance(twkb_parse_state *s, size_t next)
+{
+	if( (s->pos + next) > s->twkb_end)
+	{
+		lwerror("%s: TWKB structure does not match expected size!", __func__);
+		// lwnotice("TWKB structure does not match expected size!");
+	}
+
+	s->pos += next;
+}
+
+static inline int64_t twkb_parse_state_varint(twkb_parse_state *s)
+{
+	size_t size;
+	int64_t val = varint_s64_decode(s->pos, s->twkb_end, &size);
+	twkb_parse_state_advance(s, size);
+	return val;
+}
+
+static inline uint64_t twkb_parse_state_uvarint(twkb_parse_state *s)
+{
+	size_t size;
+	uint64_t val = varint_u64_decode(s->pos, s->twkb_end, &size);
+	twkb_parse_state_advance(s, size);
+	return val;
+}
+
+static inline double twkb_parse_state_double(twkb_parse_state *s, double factor)
+{
+	size_t size;
+	int64_t val = varint_s64_decode(s->pos, s->twkb_end, &size);
+	twkb_parse_state_advance(s, size);
+	return val / factor;
+}
+
+static inline void twkb_parse_state_varint_skip(twkb_parse_state *s)
+{
+	size_t size = varint_size(s->pos, s->twkb_end);
+
+	if ( ! size )
+		lwerror("%s: no varint to skip", __func__);
+
+	twkb_parse_state_advance(s, size);
+	return;
+}
+
+
+
+static uint32_t lwtype_from_twkb_type(uint8_t twkb_type)
+{
+	switch (twkb_type)
+	{
+		case 1:
+			return POINTTYPE;
+		case 2:
+			return LINETYPE;
+		case 3:
+			return POLYGONTYPE;
+		case 4:
+			return MULTIPOINTTYPE;
+		case 5:
+			return MULTILINETYPE;
+		case 6:
+			return MULTIPOLYGONTYPE;
+		case 7:
+			return COLLECTIONTYPE;
+
+		default: /* Error! */
+			lwerror("Unknown WKB type");
+			return 0;
+	}
+	return 0;
+}
+
+/**
+* Byte
+* Read a byte and advance the parse state forward.
+*/
+static uint8_t byte_from_twkb_state(twkb_parse_state *s)
+{
+	uint8_t val = *(s->pos);
+	twkb_parse_state_advance(s, WKB_BYTE_SIZE);
+	return val;
+}
+
+
+/**
+* POINTARRAY
+* Read a dynamically sized point array and advance the parse state forward.
+*/
+static POINTARRAY* ptarray_from_twkb_state(twkb_parse_state *s, uint32_t npoints)
+{
+	POINTARRAY *pa = NULL;
+	uint32_t ndims = s->ndims;
+	int i;
+	double *dlist;
+
+	LWDEBUG(2,"Entering ptarray_from_twkb_state");
+	LWDEBUGF(4,"Pointarray has %d points", npoints);
+
+	/* Empty! */
+	if( npoints == 0 )
+		return ptarray_construct_empty(s->has_z, s->has_m, 0);
+
+	pa = ptarray_construct(s->has_z, s->has_m, npoints);
+	dlist = (double*)(pa->serialized_pointlist);
+	for( i = 0; i < npoints; i++ )
+	{
+		int j = 0;
+		/* X */
+		s->coords[j] += twkb_parse_state_varint(s);
+		dlist[ndims*i + j] = s->coords[j] / s->factor;
+		j++;
+		/* Y */
+		s->coords[j] += twkb_parse_state_varint(s);
+		dlist[ndims*i + j] = s->coords[j] / s->factor;
+		j++;
+		/* Z */
+		if ( s->has_z )
+		{
+			s->coords[j] += twkb_parse_state_varint(s);
+			dlist[ndims*i + j] = s->coords[j] / s->factor_z;
+			j++;
+		}
+		/* M */
+		if ( s->has_m )
+		{
+			s->coords[j] += twkb_parse_state_varint(s);
+			dlist[ndims*i + j] = s->coords[j] / s->factor_m;
+			j++;
+		}
+	}
+
+	return pa;
+}
+
+/**
+* POINT
+*/
+static LWPOINT* lwpoint_from_twkb_state(twkb_parse_state *s)
+{
+	static uint32_t npoints = 1;
+	POINTARRAY *pa;
+
+	LWDEBUG(2,"Entering lwpoint_from_twkb_state");
+
+	if ( s->is_empty )
+		return lwpoint_construct_empty(SRID_UNKNOWN, s->has_z, s->has_m);
+
+	pa = ptarray_from_twkb_state(s, npoints);
+	return lwpoint_construct(SRID_UNKNOWN, NULL, pa);
+}
+
+/**
+* LINESTRING
+*/
+static LWLINE* lwline_from_twkb_state(twkb_parse_state *s)
+{
+	uint32_t npoints;
+	POINTARRAY *pa;
+
+	LWDEBUG(2,"Entering lwline_from_twkb_state");
+
+	if ( s->is_empty )
+		return lwline_construct_empty(SRID_UNKNOWN, s->has_z, s->has_m);
+
+	/* Read number of points */
+	npoints = twkb_parse_state_uvarint(s);
+
+	if ( npoints == 0 )
+		return lwline_construct_empty(SRID_UNKNOWN, s->has_z, s->has_m);
+
+	/* Read coordinates */
+	pa = ptarray_from_twkb_state(s, npoints);
+
+	if( pa == NULL )
+		return lwline_construct_empty(SRID_UNKNOWN, s->has_z, s->has_m);
+
+	if( s->check & LW_PARSER_CHECK_MINPOINTS && pa->npoints < 2 )
+	{
+		lwerror("%s must have at least two points", lwtype_name(s->lwtype));
+		return NULL;
+	}
+
+	return lwline_construct(SRID_UNKNOWN, NULL, pa);
+}
+
+/**
+* POLYGON
+*/
+static LWPOLY* lwpoly_from_twkb_state(twkb_parse_state *s)
+{
+	uint32_t nrings;
+	int i;
+	LWPOLY *poly;
+
+	LWDEBUG(2,"Entering lwpoly_from_twkb_state");
+
+	if ( s->is_empty )
+		return lwpoly_construct_empty(SRID_UNKNOWN, s->has_z, s->has_m);
+
+	/* Read number of rings */
+	nrings = twkb_parse_state_uvarint(s);
+
+	/* Start w/ empty polygon */
+	poly = lwpoly_construct_empty(SRID_UNKNOWN, s->has_z, s->has_m);
+
+	LWDEBUGF(4,"Polygon has %d rings", nrings);
+
+	/* Empty polygon? */
+	if( nrings == 0 )
+		return poly;
+
+	for( i = 0; i < nrings; i++ )
+	{
+		/* Ret number of points */
+		uint32_t npoints = twkb_parse_state_uvarint(s);
+		POINTARRAY *pa = ptarray_from_twkb_state(s, npoints);
+
+		/* Skip empty rings */
+		if( pa == NULL )
+			continue;
+
+		/* Force first and last points to be the same. */
+		if( ! ptarray_is_closed_2d(pa) )
+		{
+			POINT4D pt;
+			getPoint4d_p(pa, 0, &pt);
+			ptarray_append_point(pa, &pt, LW_FALSE);
+		}
+
+		/* Check for at least four points. */
+		if( s->check & LW_PARSER_CHECK_MINPOINTS && pa->npoints < 4 )
+		{
+			LWDEBUGF(2, "%s must have at least four points in each ring", lwtype_name(s->lwtype));
+			lwerror("%s must have at least four points in each ring", lwtype_name(s->lwtype));
+			return NULL;
+		}
+
+		/* Add ring to polygon */
+		if ( lwpoly_add_ring(poly, pa) == LW_FAILURE )
+		{
+			LWDEBUG(2, "Unable to add ring to polygon");
+			lwerror("Unable to add ring to polygon");
+		}
+
+	}
+	return poly;
+}
+
+
+/**
+* MULTIPOINT
+*/
+static LWCOLLECTION* lwmultipoint_from_twkb_state(twkb_parse_state *s)
+{
+	int ngeoms, i;
+	LWGEOM *geom = NULL;
+	LWCOLLECTION *col = lwcollection_construct_empty(s->lwtype, SRID_UNKNOWN, s->has_z, s->has_m);
+
+	LWDEBUG(2,"Entering lwmultipoint_from_twkb_state");
+
+	if ( s->is_empty )
+		return col;
+
+	/* Read number of geometries */
+	ngeoms = twkb_parse_state_uvarint(s);
+	LWDEBUGF(4,"Number of geometries %d", ngeoms);
+
+	/* It has an idlist, we need to skip that */
+	if ( s->has_idlist )
+	{
+		for ( i = 0; i < ngeoms; i++ )
+			twkb_parse_state_varint_skip(s);
+	}
+
+	for ( i = 0; i < ngeoms; i++ )
+	{
+		geom = lwpoint_as_lwgeom(lwpoint_from_twkb_state(s));
+		if ( lwcollection_add_lwgeom(col, geom) == NULL )
+		{
+			lwerror("Unable to add geometry (%p) to collection (%p)", geom, col);
+			return NULL;
+		}
+	}
+
+	return col;
+}
+
+/**
+* MULTILINESTRING
+*/
+static LWCOLLECTION* lwmultiline_from_twkb_state(twkb_parse_state *s)
+{
+	int ngeoms, i;
+	LWGEOM *geom = NULL;
+	LWCOLLECTION *col = lwcollection_construct_empty(s->lwtype, SRID_UNKNOWN, s->has_z, s->has_m);
+
+	LWDEBUG(2,"Entering lwmultilinestring_from_twkb_state");
+
+	if ( s->is_empty )
+		return col;
+
+	/* Read number of geometries */
+	ngeoms = twkb_parse_state_uvarint(s);
+
+	LWDEBUGF(4,"Number of geometries %d",ngeoms);
+
+	/* It has an idlist, we need to skip that */
+	if ( s->has_idlist )
+	{
+		for ( i = 0; i < ngeoms; i++ )
+			twkb_parse_state_varint_skip(s);
+	}
+
+	for ( i = 0; i < ngeoms; i++ )
+	{
+		geom = lwline_as_lwgeom(lwline_from_twkb_state(s));
+		if ( lwcollection_add_lwgeom(col, geom) == NULL )
+		{
+			lwerror("Unable to add geometry (%p) to collection (%p)", geom, col);
+			return NULL;
+		}
+	}
+
+	return col;
+}
+
+/**
+* MULTIPOLYGON
+*/
+static LWCOLLECTION* lwmultipoly_from_twkb_state(twkb_parse_state *s)
+{
+	int ngeoms, i;
+	LWGEOM *geom = NULL;
+	LWCOLLECTION *col = lwcollection_construct_empty(s->lwtype, SRID_UNKNOWN, s->has_z, s->has_m);
+
+	LWDEBUG(2,"Entering lwmultipolygon_from_twkb_state");
+
+	if ( s->is_empty )
+		return col;
+
+	/* Read number of geometries */
+	ngeoms = twkb_parse_state_uvarint(s);
+	LWDEBUGF(4,"Number of geometries %d",ngeoms);
+
+	/* It has an idlist, we need to skip that */
+	if ( s->has_idlist )
+	{
+		for ( i = 0; i < ngeoms; i++ )
+			twkb_parse_state_varint_skip(s);
+	}
+
+	for ( i = 0; i < ngeoms; i++ )
+	{
+		geom = lwpoly_as_lwgeom(lwpoly_from_twkb_state(s));
+		if ( lwcollection_add_lwgeom(col, geom) == NULL )
+		{
+			lwerror("Unable to add geometry (%p) to collection (%p)", geom, col);
+			return NULL;
+		}
+	}
+
+	return col;
+}
+
+
+/**
+* COLLECTION, MULTIPOINTTYPE, MULTILINETYPE, MULTIPOLYGONTYPE
+**/
+static LWCOLLECTION* lwcollection_from_twkb_state(twkb_parse_state *s)
+{
+	int ngeoms, i;
+	LWGEOM *geom = NULL;
+	LWCOLLECTION *col = lwcollection_construct_empty(s->lwtype, SRID_UNKNOWN, s->has_z, s->has_m);
+
+	LWDEBUG(2,"Entering lwcollection_from_twkb_state");
+
+	if ( s->is_empty )
+		return col;
+
+	/* Read number of geometries */
+	ngeoms = twkb_parse_state_uvarint(s);
+
+	LWDEBUGF(4,"Number of geometries %d",ngeoms);
+
+	/* It has an idlist, we need to skip that */
+	if ( s->has_idlist )
+	{
+		for ( i = 0; i < ngeoms; i++ )
+			twkb_parse_state_varint_skip(s);
+	}
+
+	for ( i = 0; i < ngeoms; i++ )
+	{
+		geom = lwgeom_from_twkb_state(s);
+		if ( lwcollection_add_lwgeom(col, geom) == NULL )
+		{
+			lwerror("Unable to add geometry (%p) to collection (%p)", geom, col);
+			return NULL;
+		}
+	}
+
+
+	return col;
+}
+
+
+static void header_from_twkb_state(twkb_parse_state *s)
+{
+	LWDEBUG(2,"Entering magicbyte_from_twkb_state");
+
+	uint8_t extended_dims;
+
+	/* Read the first two bytes */
+	uint8_t type_precision = byte_from_twkb_state(s);
+	uint8_t metadata = byte_from_twkb_state(s);
+
+	/* Strip type and precision out of first byte */
+	uint8_t type = type_precision & 0x0F;
+	int8_t precision = unzigzag8((type_precision & 0xF0) >> 4);
+
+	/* Convert TWKB type to internal type */
+	s->lwtype = lwtype_from_twkb_type(type);
+
+	/* Convert the precision into factor */
+	s->factor = pow(10, (double)precision);
+
+	/* Strip metadata flags out of second byte */
+	s->has_bbox   =  metadata & 0x01;
+	s->has_size   = (metadata & 0x02) >> 1;
+	s->has_idlist = (metadata & 0x04) >> 2;
+	extended_dims = (metadata & 0x08) >> 3;
+	s->is_empty   = (metadata & 0x10) >> 4;
+
+	/* Flag for higher dims means read a third byte */
+	if ( extended_dims )
+	{
+		int8_t precision_z, precision_m;
+
+		extended_dims = byte_from_twkb_state(s);
+
+		/* Strip Z/M presence and precision from ext byte */
+		s->has_z    = (extended_dims & 0x01);
+		s->has_m    = (extended_dims & 0x02) >> 1;
+		precision_z = (extended_dims & 0x1C) >> 2;
+		precision_m = (extended_dims & 0xE0) >> 5;
+
+		/* Convert the precision into factor */
+		s->factor_z = pow(10, (double)precision_z);
+		s->factor_m = pow(10, (double)precision_m);
+	}
+	else
+	{
+		s->has_z = 0;
+		s->has_m = 0;
+		s->factor_z = 0;
+		s->factor_m = 0;
+	}
+
+	/* Read the size, if there is one */
+	if ( s->has_size )
+	{
+		s->size = twkb_parse_state_uvarint(s);
+	}
+
+	/* Calculate the number of dimensions */
+	s->ndims = 2 + s->has_z + s->has_m;
+
+	return;
+}
+
+
+
+/**
+* Generic handling for TWKB geometries. The front of every TWKB geometry
+* (including those embedded in collections) is a type byte and metadata byte,
+* then optional size, bbox, etc. Read those, then switch to particular type
+* handling code.
+*/
+LWGEOM* lwgeom_from_twkb_state(twkb_parse_state *s)
+{
+	GBOX bbox;
+	LWGEOM *geom = NULL;
+	uint32_t has_bbox = LW_FALSE;
+	int i;
+
+	/* Read the first two bytes, and optional */
+	/* extended precision info and optional size info */
+	header_from_twkb_state(s);
+
+	/* Just experienced a geometry header, so now we */
+	/* need to reset our coordinate deltas */
+	for ( i = 0; i < TWKB_IN_MAXCOORDS; i++ )
+	{
+		s->coords[i] = 0.0;
+	}
+
+	/* Read the bounding box, is there is one */
+	if ( s->has_bbox )
+	{
+		/* Initialize */
+		has_bbox = s->has_bbox;
+		memset(&bbox, 0, sizeof(GBOX));
+		bbox.flags = gflags(s->has_z, s->has_m, 0);
+
+		/* X */
+		bbox.xmin = twkb_parse_state_double(s, s->factor);
+		bbox.xmax = bbox.xmin + twkb_parse_state_double(s, s->factor);
+		/* Y */
+		bbox.ymin = twkb_parse_state_double(s, s->factor);
+		bbox.ymax = bbox.ymin + twkb_parse_state_double(s, s->factor);
+		/* Z */
+		if ( s->has_z )
+		{
+			bbox.zmin = twkb_parse_state_double(s, s->factor_z);
+			bbox.zmax = bbox.zmin + twkb_parse_state_double(s, s->factor_z);
+		}
+		/* M */
+		if ( s->has_z )
+		{
+			bbox.mmin = twkb_parse_state_double(s, s->factor_m);
+			bbox.mmax = bbox.mmin + twkb_parse_state_double(s, s->factor_m);
+		}
+	}
+
+	/* Switch to code for the particular type we're dealing with */
+	switch( s->lwtype )
+	{
+		case POINTTYPE:
+			geom = lwpoint_as_lwgeom(lwpoint_from_twkb_state(s));
+			break;
+		case LINETYPE:
+			geom = lwline_as_lwgeom(lwline_from_twkb_state(s));
+			break;
+		case POLYGONTYPE:
+			geom = lwpoly_as_lwgeom(lwpoly_from_twkb_state(s));
+			break;
+		case MULTIPOINTTYPE:
+			geom = lwcollection_as_lwgeom(lwmultipoint_from_twkb_state(s));
+			break;
+		case MULTILINETYPE:
+			geom = lwcollection_as_lwgeom(lwmultiline_from_twkb_state(s));
+			break;
+		case MULTIPOLYGONTYPE:
+			geom = lwcollection_as_lwgeom(lwmultipoly_from_twkb_state(s));
+			break;
+		case COLLECTIONTYPE:
+			geom = lwcollection_as_lwgeom(lwcollection_from_twkb_state(s));
+			break;
+		/* Unknown type! */
+		default:
+			lwerror("Unsupported geometry type: %s [%d]", lwtype_name(s->lwtype), s->lwtype);
+			break;
+	}
+
+	if ( has_bbox )
+	{
+		geom->bbox = gbox_clone(&bbox);
+	}
+
+	return geom;
+}
+
+
+/**
+* WKB inputs *must* have a declared size, to prevent malformed WKB from reading
+* off the end of the memory segment (this stops a malevolent user from declaring
+* a one-ring polygon to have 10 rings, causing the WKB reader to walk off the
+* end of the memory).
+*
+* Check is a bitmask of: LW_PARSER_CHECK_MINPOINTS, LW_PARSER_CHECK_ODD,
+* LW_PARSER_CHECK_CLOSURE, LW_PARSER_CHECK_NONE, LW_PARSER_CHECK_ALL
+*/
+LWGEOM* lwgeom_from_twkb(uint8_t *twkb, size_t twkb_size, char check)
+{
+	int64_t coords[TWKB_IN_MAXCOORDS] = {0, 0, 0, 0};
+	twkb_parse_state s;
+
+	LWDEBUG(2,"Entering lwgeom_from_twkb");
+	LWDEBUGF(4,"twkb_size: %d",(int) twkb_size);
+
+	/* Zero out the state */
+	memset(&s, 0, sizeof(twkb_parse_state));
+
+	/* Initialize the state appropriately */
+	s.twkb = s.pos = twkb;
+	s.twkb_end = twkb + twkb_size;
+	s.check = check;
+	s.coords = coords;
+
+	/* Handle the check catch-all values */
+	if ( check & LW_PARSER_CHECK_NONE )
+		s.check = 0;
+	else
+		s.check = check;
+
+
+	/* Read the rest of the geometry */
+	return lwgeom_from_twkb_state(&s);
+}
diff --git a/liblwgeom/lwin_wkb.c b/liblwgeom/lwin_wkb.c
index 2cd15b9..135bcfd 100644
--- a/liblwgeom/lwin_wkb.c
+++ b/liblwgeom/lwin_wkb.c
@@ -9,8 +9,11 @@
  *
  **********************************************************************/
 
-#include "liblwgeom_internal.h"
+#include "../postgis_config.h"
+/*#define POSTGIS_DEBUG_LEVEL 4*/
+#include "liblwgeom_internal.h" /* NOTE: includes lwgeom_log.h */
 #include "lwgeom_log.h"
+#include <math.h>
 
 /**
 * Used for passing the parse state between the parsing functions.
@@ -318,6 +321,9 @@ static POINTARRAY* ptarray_from_wkb_state(wkb_parse_state *s)
 
 	/* Calculate the size of this point array. */
 	npoints = integer_from_wkb_state(s);
+
+	LWDEBUGF(4,"Pointarray has %d points", npoints);
+
 	if( s->has_z ) ndims++;
 	if( s->has_m ) ndims++;
 	pa_size = npoints * ndims * WKB_DOUBLE_SIZE;
@@ -366,6 +372,7 @@ static LWPOINT* lwpoint_from_wkb_state(wkb_parse_state *s)
 	POINTARRAY *pa = NULL;
 	size_t pa_size;
 	uint32_t ndims = 2;
+	const POINT2D *pt;
 
 	/* Count the dimensions. */
 	if( s->has_z ) ndims++;
@@ -394,7 +401,17 @@ static LWPOINT* lwpoint_from_wkb_state(wkb_parse_state *s)
 		}
 	}
 	
-	return lwpoint_construct(s->srid, NULL, pa);
+	/* Check for POINT(NaN NaN) ==> POINT EMPTY */
+	pt = getPoint2d_cp(pa, 0);
+	if ( isnan(pt->x) && isnan(pt->y) )
+	{
+		ptarray_free(pa);
+		return lwpoint_construct_empty(s->srid, s->has_z, s->has_m);
+	}
+	else
+	{
+		return lwpoint_construct(s->srid, NULL, pa);
+	}
 }
 
 /**
@@ -465,6 +482,8 @@ static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s)
 	uint32_t nrings = integer_from_wkb_state(s);
 	int i = 0;
 	LWPOLY *poly = lwpoly_construct_empty(s->srid, s->has_z, s->has_m);
+
+	LWDEBUGF(4,"Polygon has %d rings", nrings);
 	
 	/* Empty polygon? */
 	if( nrings == 0 )
@@ -553,9 +572,9 @@ static LWTRIANGLE* lwtriangle_from_wkb_state(wkb_parse_state *s)
 	}
 
 	/* Empty TRIANGLE starts w/ empty POINTARRAY, free it first */
-	if ( tri->points) 
+	if (tri->points)
 		ptarray_free(tri->points);
-
+	
 	tri->points = pa;	
 	return tri;
 }
@@ -599,6 +618,8 @@ static LWCOLLECTION* lwcollection_from_wkb_state(wkb_parse_state *s)
 	LWCOLLECTION *col = lwcollection_construct_empty(s->lwtype, s->srid, s->has_z, s->has_m);
 	LWGEOM *geom = NULL;
 	int i;
+
+	LWDEBUGF(4,"Collection has %d components", ngeoms);
 	
 	/* Empty collection? */
 	if ( ngeoms == 0 )
diff --git a/liblwgeom/lwin_wkt.c b/liblwgeom/lwin_wkt.c
index b7262bc..e5e50a1 100644
--- a/liblwgeom/lwin_wkt.c
+++ b/liblwgeom/lwin_wkt.c
@@ -96,55 +96,68 @@ static int wkt_parser_set_dims(LWGEOM *geom, uint8_t flags)
 
 	FLAGS_SET_Z(geom->flags, hasz);
 	FLAGS_SET_M(geom->flags, hasm);
-		
-	if( ! lwgeom_is_empty(geom) )
+	
+	switch( geom->type )
 	{
-		if( geom->type == POINTTYPE )
+		case POINTTYPE:
 		{
 			LWPOINT *pt = (LWPOINT*)geom;
-			FLAGS_SET_Z(pt->point->flags, hasz);
-			FLAGS_SET_M(pt->point->flags, hasm);
-			return LW_SUCCESS;
+			if ( pt->point )
+			{
+				FLAGS_SET_Z(pt->point->flags, hasz);
+				FLAGS_SET_M(pt->point->flags, hasm);
+			}
+			break;
 		}
-		else if ( (geom->type == TRIANGLETYPE) || 
-		          (geom->type == CIRCSTRINGTYPE) || 
-		          (geom->type == LINETYPE) )
+		case TRIANGLETYPE:
+		case CIRCSTRINGTYPE:
+		case LINETYPE:
 		{
 			LWLINE *ln = (LWLINE*)geom;
-			FLAGS_SET_Z(ln->points->flags, hasz);
-			FLAGS_SET_M(ln->points->flags, hasm);
-			return LW_SUCCESS;
+			if ( ln->points )
+			{
+				FLAGS_SET_Z(ln->points->flags, hasz);
+				FLAGS_SET_M(ln->points->flags, hasm);
+			}
+			break;
 		}
-		else if ( geom->type == POLYGONTYPE )
+		case POLYGONTYPE:
 		{
 			LWPOLY *poly = (LWPOLY*)geom;
 			for ( i = 0; i < poly->nrings; i++ )
 			{
-				FLAGS_SET_Z(poly->rings[i]->flags, hasz);
-				FLAGS_SET_M(poly->rings[i]->flags, hasm);
+				if( poly->rings[i] )
+				{
+					FLAGS_SET_Z(poly->rings[i]->flags, hasz);
+					FLAGS_SET_M(poly->rings[i]->flags, hasm);
+				}
 			}
-			return LW_SUCCESS;
+			break;
 		}
-		else if ( geom->type == CURVEPOLYTYPE )
+		case CURVEPOLYTYPE:
 		{
 			LWCURVEPOLY *poly = (LWCURVEPOLY*)geom;
 			for ( i = 0; i < poly->nrings; i++ )
 				wkt_parser_set_dims(poly->rings[i], flags);
-			return LW_SUCCESS;
+			break;
 		}
-		else if ( lwtype_is_collection(geom->type) )
+		default: 
 		{
-			LWCOLLECTION *col = (LWCOLLECTION*)geom;
-			for ( i = 0; i < col->ngeoms; i++ )
-				wkt_parser_set_dims(col->geoms[i], flags);			
-			return LW_SUCCESS;
+			if ( lwtype_is_collection(geom->type) )
+			{
+				LWCOLLECTION *col = (LWCOLLECTION*)geom;
+				for ( i = 0; i < col->ngeoms; i++ )
+					wkt_parser_set_dims(col->geoms[i], flags);			
+				return LW_SUCCESS;
+			}
+			else
+			{
+				LWDEBUGF(2,"Unknown geometry type: %d", geom->type);
+				return LW_FAILURE;
+			}
 		}
-		else
-		{
-			LWDEBUGF(2,"Unknown geometry type: %d", geom->type);
-			return LW_FAILURE;
-		}	
 	}
+
 	return LW_SUCCESS;				
 }
 
@@ -687,7 +700,42 @@ LWGEOM* wkt_parser_collection_new(LWGEOM *geom)
 	geoms[0] = geom;
 	
 	/* Make a new collection */
-	col = lwcollection_construct(COLLECTIONTYPE, SRID_UNKNOWN, NULL, ngeoms, geoms); 
+	col = lwcollection_construct(COLLECTIONTYPE, SRID_UNKNOWN, NULL, ngeoms, geoms);
+
+	/* Return the result. */
+	return lwcollection_as_lwgeom(col);
+}
+
+
+LWGEOM* wkt_parser_compound_new(LWGEOM *geom) 
+{
+	LWCOLLECTION *col;
+	LWGEOM **geoms;
+	static int ngeoms = 1;
+	LWDEBUG(4,"entered");
+	
+	/* Toss error on null geometry input */
+	if( ! geom )
+	{
+		SET_PARSER_ERROR(PARSER_ERROR_OTHER);
+		return NULL;
+	}
+	
+	/* Elements of a compoundcurve cannot be empty, because */
+	/* empty things can't join up and form a ring */
+	if ( lwgeom_is_empty(geom) )
+	{
+		lwgeom_free(geom);
+		SET_PARSER_ERROR(PARSER_ERROR_INCONTINUOUS);
+		return NULL;		
+	}
+	
+	/* Create our geometry array */
+	geoms = lwalloc(sizeof(LWGEOM*) * ngeoms);
+	geoms[0] = geom;
+	
+	/* Make a new collection */
+	col = lwcollection_construct(COLLECTIONTYPE, SRID_UNKNOWN, NULL, ngeoms, geoms);
 
 	/* Return the result. */
 	return lwcollection_as_lwgeom(col);
@@ -736,26 +784,17 @@ LWGEOM* wkt_parser_collection_add_geom(LWGEOM *col, LWGEOM *geom)
 		SET_PARSER_ERROR(PARSER_ERROR_OTHER);
 		return NULL;
 	}
-		
-	/* All the elements must agree on dimensionality */
-	if( FLAGS_NDIMS(col->flags) != FLAGS_NDIMS(geom->flags) )
-	{
-		lwgeom_free(col);
-		lwgeom_free(geom);
-		SET_PARSER_ERROR(PARSER_ERROR_MIXDIMS);
-		return NULL;
-	}
-	
+			
 	return lwcollection_as_lwgeom(lwcollection_add_lwgeom(lwgeom_as_lwcollection(col), geom));
 }
 
-LWGEOM* wkt_parser_collection_finalize(int lwtype, LWGEOM *col, char *dimensionality) 
+LWGEOM* wkt_parser_collection_finalize(int lwtype, LWGEOM *geom, char *dimensionality) 
 {
 	uint8_t flags = wkt_dimensionality(dimensionality);
 	int flagdims = FLAGS_NDIMS(flags);
 	
 	/* No geometry means it is empty */
-	if( ! col )
+	if( ! geom )
 	{
 		return lwcollection_as_lwgeom(lwcollection_construct_empty(lwtype, SRID_UNKNOWN, FLAGS_GET_Z(flags), FLAGS_GET_M(flags)));
 	}
@@ -763,37 +802,44 @@ LWGEOM* wkt_parser_collection_finalize(int lwtype, LWGEOM *col, char *dimensiona
 	/* There are 'Z' or 'M' tokens in the signature */
 	if ( flagdims > 2 )
 	{
-		/* If the number of dimensions are not consistent, we have a problem. */
-		if( flagdims != FLAGS_NDIMS(col->flags) )
-		{
-			lwgeom_free(col);
-			SET_PARSER_ERROR(PARSER_ERROR_MIXDIMS);
-			return NULL;
-		}
-
-		/* For GEOMETRYCOLLECTION, the exact type of the dimensions must match too */
-		if( lwtype == COLLECTIONTYPE &&
-		    ( (FLAGS_GET_Z(flags) != FLAGS_GET_Z(col->flags)) ||
-		      (FLAGS_GET_M(flags) != FLAGS_GET_M(col->flags)) ) )
+		LWCOLLECTION *col = lwgeom_as_lwcollection(geom);
+		int i;
+		
+		for ( i = 0 ; i < col->ngeoms; i++ )
 		{
-			lwgeom_free(col);
-			SET_PARSER_ERROR(PARSER_ERROR_MIXDIMS);
-			return NULL;
+			LWGEOM *subgeom = col->geoms[i];
+			if ( FLAGS_NDIMS(flags) != FLAGS_NDIMS(subgeom->flags) &&
+				 ! lwgeom_is_empty(subgeom) )
+			{
+				lwgeom_free(geom);
+				SET_PARSER_ERROR(PARSER_ERROR_MIXDIMS);
+				return NULL;
+			}
+			
+			if ( lwtype == COLLECTIONTYPE &&
+			   ( (FLAGS_GET_Z(flags) != FLAGS_GET_Z(subgeom->flags)) ||
+			     (FLAGS_GET_M(flags) != FLAGS_GET_M(subgeom->flags)) ) &&
+				! lwgeom_is_empty(subgeom) )
+			{
+				lwgeom_free(geom);
+				SET_PARSER_ERROR(PARSER_ERROR_MIXDIMS);
+				return NULL;
+			}
 		}
 		
 		/* Harmonize the collection dimensionality */
-		if( LW_FAILURE == wkt_parser_set_dims(col, flags) )
+		if( LW_FAILURE == wkt_parser_set_dims(geom, flags) )
 		{
-			lwgeom_free(col);
+			lwgeom_free(geom);
 			SET_PARSER_ERROR(PARSER_ERROR_OTHER);
 			return NULL;
 		}
 	}
 		
 	/* Set the collection type */
-	col->type=lwtype;
+	geom->type = lwtype;
 			
-	return col;
+	return geom;
 }
 
 void wkt_parser_geometry_new(LWGEOM *geom, int srid)
diff --git a/liblwgeom/lwin_wkt.h b/liblwgeom/lwin_wkt.h
index febe97d..cc62130 100644
--- a/liblwgeom/lwin_wkt.h
+++ b/liblwgeom/lwin_wkt.h
@@ -25,6 +25,7 @@ extern const char *parser_error_messages[];
 */
 extern void wkt_lexer_init(char *str);
 extern void wkt_lexer_close(void);
+extern int wkt_yylex_destroy(void);
 
 
 /*
@@ -46,6 +47,7 @@ LWGEOM* wkt_parser_polygon_finalize(LWGEOM *poly, char *dimensionality);
 LWGEOM* wkt_parser_curvepolygon_new(LWGEOM *ring);
 LWGEOM* wkt_parser_curvepolygon_add_ring(LWGEOM *poly, LWGEOM *ring);
 LWGEOM* wkt_parser_curvepolygon_finalize(LWGEOM *poly, char *dimensionality);
+LWGEOM* wkt_parser_compound_new(LWGEOM *element);
 LWGEOM* wkt_parser_compound_add_geom(LWGEOM *col, LWGEOM *geom);
 LWGEOM* wkt_parser_collection_new(LWGEOM *geom);
 LWGEOM* wkt_parser_collection_add_geom(LWGEOM *col, LWGEOM *geom);
diff --git a/liblwgeom/lwin_wkt_lex.c b/liblwgeom/lwin_wkt_lex.c
index a9e1314..073b7d1 100644
--- a/liblwgeom/lwin_wkt_lex.c
+++ b/liblwgeom/lwin_wkt_lex.c
@@ -28,7 +28,7 @@
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
+#define YY_FLEX_SUBMINOR_VERSION 37
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -73,7 +73,6 @@ typedef int flex_int32_t;
 typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
 
 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -104,6 +103,8 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
+#endif /* ! C99 */
+
 #endif /* ! FLEXINT_H */
 
 #ifdef __cplusplus
@@ -351,7 +352,7 @@ void wkt_yyfree (void *  );
 
 /* Begin user sect3 */
 
-#define wkt_yywrap(n) 1
+#define wkt_yywrap() 1
 #define YY_SKIP_YYWRAP
 
 typedef unsigned char YY_CHAR;
@@ -672,7 +673,9 @@ static void wkt_lexer_unknown()
 	} while (0);
 
  
-#line 676 "lwin_wkt_lex.c"
+#define YY_NO_INPUT 1
+/* Suppress the default implementations. */
+#line 679 "lwin_wkt_lex.c"
 
 #define INITIAL 0
 
@@ -759,7 +762,7 @@ static int input (void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO fwrite( wkt_yytext, wkt_yyleng, 1, wkt_yyout )
+#define ECHO do { if (fwrite( wkt_yytext, wkt_yyleng, 1, wkt_yyout )) {} } while (0)
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -770,7 +773,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		yy_size_t n; \
+		size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( wkt_yyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -852,10 +855,10 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 64 "lwin_wkt_lex.l"
+#line 67 "lwin_wkt_lex.l"
 
 
-#line 859 "lwin_wkt_lex.c"
+#line 862 "lwin_wkt_lex.c"
 
 	if ( !(yy_init) )
 		{
@@ -936,7 +939,7 @@ do_action:	/* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 66 "lwin_wkt_lex.l"
+#line 69 "lwin_wkt_lex.l"
 {  
 	LWDEBUG(5,"DOUBLE");
 	wkt_yylval.doublevalue = atof(wkt_yytext); 
@@ -945,7 +948,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 72 "lwin_wkt_lex.l"
+#line 75 "lwin_wkt_lex.l"
 { 
 	LWDEBUG(5,"SRID");
 	wkt_yylval.integervalue = wkt_lexer_read_srid(wkt_yytext); 
@@ -954,87 +957,87 @@ YY_RULE_SETUP
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 78 "lwin_wkt_lex.l"
+#line 81 "lwin_wkt_lex.l"
 { return COLLECTION_TOK; }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 79 "lwin_wkt_lex.l"
+#line 82 "lwin_wkt_lex.l"
 { return MSURFACE_TOK; }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 80 "lwin_wkt_lex.l"
+#line 83 "lwin_wkt_lex.l"
 { return MPOLYGON_TOK; }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 81 "lwin_wkt_lex.l"
+#line 84 "lwin_wkt_lex.l"
 { return MCURVE_TOK; }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 82 "lwin_wkt_lex.l"
+#line 85 "lwin_wkt_lex.l"
 { return MLINESTRING_TOK; }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 83 "lwin_wkt_lex.l"
+#line 86 "lwin_wkt_lex.l"
 { return MPOINT_TOK; }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 84 "lwin_wkt_lex.l"
+#line 87 "lwin_wkt_lex.l"
 { return CURVEPOLYGON_TOK; }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 85 "lwin_wkt_lex.l"
+#line 88 "lwin_wkt_lex.l"
 { return POLYGON_TOK; }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 86 "lwin_wkt_lex.l"
+#line 89 "lwin_wkt_lex.l"
 { return COMPOUNDCURVE_TOK; }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 87 "lwin_wkt_lex.l"
+#line 90 "lwin_wkt_lex.l"
 { return CIRCULARSTRING_TOK; }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 88 "lwin_wkt_lex.l"
+#line 91 "lwin_wkt_lex.l"
 { return LINESTRING_TOK; }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 89 "lwin_wkt_lex.l"
+#line 92 "lwin_wkt_lex.l"
 { return POLYHEDRALSURFACE_TOK; }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 90 "lwin_wkt_lex.l"
+#line 93 "lwin_wkt_lex.l"
 { return TRIANGLE_TOK; }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 91 "lwin_wkt_lex.l"
+#line 94 "lwin_wkt_lex.l"
 { return TIN_TOK; }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 92 "lwin_wkt_lex.l"
+#line 95 "lwin_wkt_lex.l"
 { return POINT_TOK; }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 93 "lwin_wkt_lex.l"
+#line 96 "lwin_wkt_lex.l"
 { return EMPTY_TOK; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 95 "lwin_wkt_lex.l"
+#line 98 "lwin_wkt_lex.l"
 { 
 	LWDEBUG(5,"DIMENSIONALITY");
 	wkt_yylval.stringvalue = wkt_yytext;
@@ -1043,33 +1046,33 @@ YY_RULE_SETUP
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 101 "lwin_wkt_lex.l"
+#line 104 "lwin_wkt_lex.l"
 { LWDEBUG(5,"LBRACKET"); return LBRACKET_TOK; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 102 "lwin_wkt_lex.l"
+#line 105 "lwin_wkt_lex.l"
 { LWDEBUG(5,"RBRACKET"); return RBRACKET_TOK; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 103 "lwin_wkt_lex.l"
+#line 106 "lwin_wkt_lex.l"
 { LWDEBUG(5,"COMMA"); return COMMA_TOK; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 104 "lwin_wkt_lex.l"
+#line 107 "lwin_wkt_lex.l"
 { LWDEBUG(5,"SEMICOLON"); return SEMICOLON_TOK; }
 	YY_BREAK
 case 24:
 /* rule 24 can match eol */
 YY_RULE_SETUP
-#line 106 "lwin_wkt_lex.l"
+#line 109 "lwin_wkt_lex.l"
 { /* ignore whitespace */ LWDEBUG(5,"WHITESPACE"); }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 108 "lwin_wkt_lex.l"
+#line 111 "lwin_wkt_lex.l"
 { /* Error out and stop parsing on unknown/unexpected characters */
 	LWDEBUG(5,"UNKNOWN"); 
 	wkt_lexer_unknown();
@@ -1078,10 +1081,10 @@ YY_RULE_SETUP
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 114 "lwin_wkt_lex.l"
+#line 117 "lwin_wkt_lex.l"
 ECHO;
 	YY_BREAK
-#line 1085 "lwin_wkt_lex.c"
+#line 1088 "lwin_wkt_lex.c"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -1275,7 +1278,7 @@ static int yy_get_next_buffer (void)
 			{ /* Not enough room in the buffer - grow it. */
 
 			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
 
 			int yy_c_buf_p_offset =
 				(int) ((yy_c_buf_p) - b->yy_ch_buf);
@@ -1408,7 +1411,7 @@ static int yy_get_next_buffer (void)
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 	yy_is_jam = (yy_current_state == 171);
 
-	return yy_is_jam ? 0 : yy_current_state;
+		return yy_is_jam ? 0 : yy_current_state;
 }
 
 #ifndef YY_NO_INPUT
@@ -1459,7 +1462,7 @@ static int yy_get_next_buffer (void)
 				case EOB_ACT_END_OF_FILE:
 					{
 					if ( wkt_yywrap( ) )
-						return 0;
+						return EOF;
 
 					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
@@ -1799,8 +1802,8 @@ YY_BUFFER_STATE wkt_yy_scan_string (yyconst char * yystr )
 
 /** Setup the input buffer state to scan the given bytes. The next call to wkt_yylex() will
  * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * 
  * @return the newly allocated buffer state object.
  */
@@ -1808,7 +1811,8 @@ YY_BUFFER_STATE wkt_yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_
 {
 	YY_BUFFER_STATE b;
 	char *buf;
-	yy_size_t n, i;
+	yy_size_t n;
+	int i;
     
 	/* Get memory for full buffer, including space for trailing EOB's. */
 	n = _yybytes_len + 2;
@@ -2014,31 +2018,23 @@ static int yy_flex_strlen (yyconst char * s )
 }
 #endif
 
+#define YYTABLES_NAME "yytables"
+
+#line 117 "lwin_wkt_lex.l"
+
+
+
 void *wkt_yyalloc (yy_size_t  size )
 {
-	return (void *) malloc( size );
+	return (void *) lwalloc( size );
 }
 
 void *wkt_yyrealloc  (void * ptr, yy_size_t  size )
 {
-	/* The cast to (char *) in the following accommodates both
-	 * implementations that use char* generic pointers, and those
-	 * that use void* generic pointers.  It works with the latter
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return (void *) realloc( (char *) ptr, size );
+	return (void *) lwrealloc( (char *) ptr, size );
 }
 
 void wkt_yyfree (void * ptr )
 {
-	free( (char *) ptr );	/* see wkt_yyrealloc() for (char *) cast */
+	lwfree( (char *) ptr );	/* see wkt_yyrealloc() for (char *) cast */
 }
-
-#define YYTABLES_NAME "yytables"
-
-#line 114 "lwin_wkt_lex.l"
-
-
-
diff --git a/liblwgeom/lwin_wkt_lex.l b/liblwgeom/lwin_wkt_lex.l
index 5d20ce6..188b5a0 100644
--- a/liblwgeom/lwin_wkt_lex.l
+++ b/liblwgeom/lwin_wkt_lex.l
@@ -57,9 +57,12 @@ static void wkt_lexer_unknown()
 
 %option prefix="wkt_yy"
 %option nounput
+%option noinput
 %option never-interactive
 %option outfile="lwin_wkt_lex.c"
 %option noyywrap
+/* Suppress the default implementations. */
+%option noyyalloc noyyrealloc noyyfree
 
 %%
 
@@ -112,3 +115,18 @@ Z|M|ZM {
 	}
 
 %%
+
+void *wkt_yyalloc (yy_size_t  size )
+{
+	return (void *) lwalloc( size );
+}
+
+void *wkt_yyrealloc  (void * ptr, yy_size_t  size )
+{
+	return (void *) lwrealloc( (char *) ptr, size );
+}
+
+void wkt_yyfree (void * ptr )
+{
+	lwfree( (char *) ptr );	/* see wkt_yyrealloc() for (char *) cast */
+}
\ No newline at end of file
diff --git a/liblwgeom/lwin_wkt_parse.c b/liblwgeom/lwin_wkt_parse.c
index 96b8c86..199ecee 100644
--- a/liblwgeom/lwin_wkt_parse.c
+++ b/liblwgeom/lwin_wkt_parse.c
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
+/* A Bison parser, made by GNU Bison 3.0.4.  */
 
 /* Bison implementation for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-   
+
+   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
@@ -26,7 +26,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-   
+
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.5"
+#define YYBISON_VERSION "3.0.4"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -58,23 +58,20 @@
 /* Pull parsers.  */
 #define YYPULL 1
 
-/* Using locations.  */
-#define YYLSP_NEEDED 1
 
 /* Substitute the variable and function names.  */
 #define yyparse         wkt_yyparse
 #define yylex           wkt_yylex
 #define yyerror         wkt_yyerror
-#define yylval          wkt_yylval
-#define yychar          wkt_yychar
 #define yydebug         wkt_yydebug
 #define yynerrs         wkt_yynerrs
+
+#define yylval          wkt_yylval
+#define yychar          wkt_yychar
 #define yylloc          wkt_yylloc
 
 /* Copy the first part of user declarations.  */
-
-/* Line 268 of yacc.c  */
-#line 1 "lwin_wkt_parse.y"
+#line 1 "lwin_wkt_parse.y" /* yacc.c:339  */
 
 
 /* WKT Parser */
@@ -127,7 +124,15 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars
 	int parse_rv = 0;
 
 	/* Clean up our global parser result. */
-    lwgeom_parser_result_init(&global_parser_result);
+	lwgeom_parser_result_init(&global_parser_result);
+	/* Work-around possible bug in GNU Bison 3.0.2 resulting in wkt_yylloc
+	 * members not being initialized on yyparse() as documented here:
+	 * https://www.gnu.org/software/bison/manual/html_node/Location-Type.html
+	 * See discussion here:
+	 * http://lists.osgeo.org/pipermail/postgis-devel/2014-September/024506.html
+	 */
+	wkt_yylloc.last_column = wkt_yylloc.last_line = \
+	wkt_yylloc.first_column = wkt_yylloc.first_line = 1;
 
 	/* Set the input text string, and parse checks. */
 	global_parser_result.wkinput = wktstr;
@@ -155,11 +160,13 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars
 		
 		/* Copy the global values into the return pointer */
 		*parser_result = global_parser_result;
+                wkt_yylex_destroy();
 		return LW_FAILURE;
 	}
 	
 	/* Copy the global value into the return pointer */
 	*parser_result = global_parser_result;
+        wkt_yylex_destroy();
 	return LW_SUCCESS;
 }
 
@@ -167,14 +174,15 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars
 
 
 
+#line 178 "lwin_wkt_parse.c" /* yacc.c:339  */
 
-/* Line 268 of yacc.c  */
-#line 173 "lwin_wkt_parse.c"
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
+# ifndef YY_NULLPTR
+#  if defined __cplusplus && 201103L <= __cplusplus
+#   define YY_NULLPTR nullptr
+#  else
+#   define YY_NULLPTR 0
+#  endif
+# endif
 
 /* Enabling verbose error messages.  */
 #ifdef YYERROR_VERBOSE
@@ -184,42 +192,47 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars
 # define YYERROR_VERBOSE 1
 #endif
 
-/* Enabling the token table.  */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
+/* In a future release of Bison, this section will be replaced
+   by #include "lwin_wkt_parse.h".  */
+#ifndef YY_WKT_YY_LWIN_WKT_PARSE_H_INCLUDED
+# define YY_WKT_YY_LWIN_WKT_PARSE_H_INCLUDED
+/* Debug traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int wkt_yydebug;
 #endif
 
-
-/* Tokens.  */
+/* Token type.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     POINT_TOK = 258,
-     LINESTRING_TOK = 259,
-     POLYGON_TOK = 260,
-     MPOINT_TOK = 261,
-     MLINESTRING_TOK = 262,
-     MPOLYGON_TOK = 263,
-     MSURFACE_TOK = 264,
-     MCURVE_TOK = 265,
-     CURVEPOLYGON_TOK = 266,
-     COMPOUNDCURVE_TOK = 267,
-     CIRCULARSTRING_TOK = 268,
-     COLLECTION_TOK = 269,
-     RBRACKET_TOK = 270,
-     LBRACKET_TOK = 271,
-     COMMA_TOK = 272,
-     EMPTY_TOK = 273,
-     SEMICOLON_TOK = 274,
-     TRIANGLE_TOK = 275,
-     TIN_TOK = 276,
-     POLYHEDRALSURFACE_TOK = 277,
-     DOUBLE_TOK = 278,
-     DIMENSIONALITY_TOK = 279,
-     SRID_TOK = 280
-   };
+  enum yytokentype
+  {
+    POINT_TOK = 258,
+    LINESTRING_TOK = 259,
+    POLYGON_TOK = 260,
+    MPOINT_TOK = 261,
+    MLINESTRING_TOK = 262,
+    MPOLYGON_TOK = 263,
+    MSURFACE_TOK = 264,
+    MCURVE_TOK = 265,
+    CURVEPOLYGON_TOK = 266,
+    COMPOUNDCURVE_TOK = 267,
+    CIRCULARSTRING_TOK = 268,
+    COLLECTION_TOK = 269,
+    RBRACKET_TOK = 270,
+    LBRACKET_TOK = 271,
+    COMMA_TOK = 272,
+    EMPTY_TOK = 273,
+    SEMICOLON_TOK = 274,
+    TRIANGLE_TOK = 275,
+    TIN_TOK = 276,
+    POLYHEDRALSURFACE_TOK = 277,
+    DOUBLE_TOK = 278,
+    DIMENSIONALITY_TOK = 279,
+    SRID_TOK = 280
+  };
 #endif
 /* Tokens.  */
 #define POINT_TOK 258
@@ -246,15 +259,12 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars
 #define DIMENSIONALITY_TOK 279
 #define SRID_TOK 280
 
-
-
-
+/* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-{
 
-/* Line 293 of yacc.c  */
-#line 98 "lwin_wkt_parse.y"
+union YYSTYPE
+{
+#line 108 "lwin_wkt_parse.y" /* yacc.c:355  */
 
 	int integervalue;
 	double doublevalue;
@@ -263,35 +273,38 @@ typedef union YYSTYPE
 	POINT coordinatevalue;
 	POINTARRAY *ptarrayvalue;
 
+#line 277 "lwin_wkt_parse.c" /* yacc.c:355  */
+};
 
-
-/* Line 293 of yacc.c  */
-#line 270 "lwin_wkt_parse.c"
-} YYSTYPE;
+typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
+/* Location type.  */
 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
-typedef struct YYLTYPE
+typedef struct YYLTYPE YYLTYPE;
+struct YYLTYPE
 {
   int first_line;
   int first_column;
   int last_line;
   int last_column;
-} YYLTYPE;
-# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
+};
 # define YYLTYPE_IS_DECLARED 1
 # define YYLTYPE_IS_TRIVIAL 1
 #endif
 
 
-/* Copy the second part of user declarations.  */
+extern YYSTYPE wkt_yylval;
+extern YYLTYPE wkt_yylloc;
+int wkt_yyparse (void);
 
+#endif /* !YY_WKT_YY_LWIN_WKT_PARSE_H_INCLUDED  */
 
-/* Line 343 of yacc.c  */
-#line 295 "lwin_wkt_parse.c"
+/* Copy the second part of user declarations.  */
+
+#line 308 "lwin_wkt_parse.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -305,11 +318,8 @@ typedef unsigned char yytype_uint8;
 
 #ifdef YYTYPE_INT8
 typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
 #else
-typedef short int yytype_int8;
+typedef signed char yytype_int8;
 #endif
 
 #ifdef YYTYPE_UINT16
@@ -329,8 +339,7 @@ typedef short int yytype_int16;
 #  define YYSIZE_T __SIZE_TYPE__
 # elif defined size_t
 #  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+# elif ! defined YYSIZE_T
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 #  define YYSIZE_T size_t
 # else
@@ -344,39 +353,68 @@ typedef short int yytype_int16;
 # if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(msgid) dgettext ("bison-runtime", msgid)
+#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
 #  endif
 # endif
 # ifndef YY_
-#  define YY_(msgid) msgid
+#  define YY_(Msgid) Msgid
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE
+# if (defined __GNUC__                                               \
+      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
+     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
+#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
+# else
+#  define YY_ATTRIBUTE(Spec) /* empty */
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE_PURE
+# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
+#endif
+
+#ifndef YY_ATTRIBUTE_UNUSED
+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
+#endif
+
+#if !defined _Noreturn \
+     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+# if defined _MSC_VER && 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
 # endif
 #endif
 
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
+# define YYUSE(E) ((void) (E))
 #else
-# define YYUSE(e) /* empty */
+# define YYUSE(E) /* empty */
 #endif
 
-/* Identity function, used to suppress warnings about constant conditions.  */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int yyi)
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+    _Pragma ("GCC diagnostic pop")
 #else
-static int
-YYID (yyi)
-    int yyi;
+# define YY_INITIAL_VALUE(Value) Value
 #endif
-{
-  return yyi;
-}
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
 #endif
 
+
 #if ! defined yyoverflow || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
@@ -394,9 +432,9 @@ YYID (yyi)
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
 #     ifndef EXIT_SUCCESS
 #      define EXIT_SUCCESS 0
 #     endif
@@ -406,8 +444,8 @@ YYID (yyi)
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+   /* Pacify GCC's 'empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
 #  ifndef YYSTACK_ALLOC_MAXIMUM
     /* The OS might guarantee only one guard page at the bottom of the stack,
        and a page size can be as small as 4096 bytes.  So we cannot safely
@@ -423,7 +461,7 @@ YYID (yyi)
 #  endif
 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \
-	     && (defined YYFREE || defined free)))
+             && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 #   ifndef EXIT_SUCCESS
 #    define EXIT_SUCCESS 0
@@ -431,15 +469,13 @@ YYID (yyi)
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#   if ! defined malloc && ! defined EXIT_SUCCESS
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#   if ! defined free && ! defined EXIT_SUCCESS
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
@@ -449,8 +485,8 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
-	 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
-	     && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+         || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
+             && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
@@ -476,35 +512,35 @@ union yyalloc
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
-    do									\
-      {									\
-	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
-	Stack = &yyptr->Stack_alloc;					\
-	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-	yyptr += yynewbytes / sizeof (*yyptr);				\
-      }									\
-    while (YYID (0))
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
+    do                                                                  \
+      {                                                                 \
+        YYSIZE_T yynewbytes;                                            \
+        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
+        Stack = &yyptr->Stack_alloc;                                    \
+        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+        yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                 \
+    while (0)
 
 #endif
 
 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from FROM to TO.  The source and destination do
+/* Copy COUNT objects from SRC to DST.  The source and destination do
    not overlap.  */
 # ifndef YYCOPY
 #  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#   define YYCOPY(Dst, Src, Count) \
+      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
 #  else
-#   define YYCOPY(To, From, Count)		\
-      do					\
-	{					\
-	  YYSIZE_T yyi;				\
-	  for (yyi = 0; yyi < (Count); yyi++)	\
-	    (To)[yyi] = (From)[yyi];		\
-	}					\
-      while (YYID (0))
+#   define YYCOPY(Dst, Src, Count)              \
+      do                                        \
+        {                                       \
+          YYSIZE_T yyi;                         \
+          for (yyi = 0; yyi < (Count); yyi++)   \
+            (Dst)[yyi] = (Src)[yyi];            \
+        }                                       \
+      while (0)
 #  endif
 # endif
 #endif /* !YYCOPY_NEEDED */
@@ -520,17 +556,19 @@ union yyalloc
 #define YYNNTS  40
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  136
-/* YYNRULES -- Number of states.  */
+/* YYNSTATES -- Number of states.  */
 #define YYNSTATES  264
 
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+   by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   280
 
-#define YYTRANSLATE(YYX)						\
+#define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, without out-of-bounds checking.  */
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -565,102 +603,27 @@ static const yytype_uint8 yytranslate[] =
 };
 
 #if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const yytype_uint16 yyprhs[] =
-{
-       0,     0,     3,     5,     9,    11,    13,    15,    17,    19,
-      21,    23,    25,    27,    29,    31,    33,    35,    37,    39,
-      44,    50,    54,    57,    61,    63,    68,    74,    78,    81,
-      85,    89,    93,    95,    97,    99,   104,   110,   114,   117,
-     122,   128,   132,   135,   140,   146,   150,   153,   157,   159,
-     163,   165,   170,   176,   180,   183,   187,   189,   193,   198,
-     204,   208,   211,   215,   217,   219,   221,   223,   225,   229,
-     231,   235,   237,   241,   245,   250,   256,   260,   263,   267,
-     271,   275,   277,   279,   281,   286,   292,   296,   299,   303,
-     307,   311,   315,   317,   319,   321,   323,   328,   334,   338,
-     341,   345,   347,   352,   358,   362,   365,   370,   376,   380,
-     383,   387,   389,   393,   395,   402,   410,   414,   417,   423,
-     428,   434,   438,   441,   445,   447,   449,   453,   455,   460,
-     466,   470,   473,   477,   479,   482,   486
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const yytype_int8 yyrhs[] =
-{
-      27,     0,    -1,    28,    -1,    25,    19,    28,    -1,    63,
-      -1,    55,    -1,    54,    -1,    48,    -1,    38,    -1,    41,
-      -1,    60,    -1,    52,    -1,    35,    -1,    31,    -1,    50,
-      -1,    33,    -1,    34,    -1,    58,    -1,    29,    -1,    14,
-      16,    30,    15,    -1,    14,    24,    16,    30,    15,    -1,
-      14,    24,    18,    -1,    14,    18,    -1,    30,    17,    28,
-      -1,    28,    -1,     9,    16,    32,    15,    -1,     9,    24,
-      16,    32,    15,    -1,     9,    24,    18,    -1,     9,    18,
-      -1,    32,    17,    38,    -1,    32,    17,    41,    -1,    32,
-      17,    39,    -1,    38,    -1,    41,    -1,    39,    -1,    21,
-      16,    57,    15,    -1,    21,    24,    16,    57,    15,    -1,
-      21,    24,    18,    -1,    21,    18,    -1,    22,    16,    37,
-      15,    -1,    22,    24,    16,    37,    15,    -1,    22,    24,
-      18,    -1,    22,    18,    -1,     8,    16,    36,    15,    -1,
-       8,    24,    16,    36,    15,    -1,     8,    24,    18,    -1,
-       8,    18,    -1,    36,    17,    39,    -1,    39,    -1,    37,
-      17,    40,    -1,    40,    -1,     5,    16,    45,    15,    -1,
-       5,    24,    16,    45,    15,    -1,     5,    24,    18,    -1,
-       5,    18,    -1,    16,    45,    15,    -1,    18,    -1,    16,
-      44,    15,    -1,    11,    16,    42,    15,    -1,    11,    24,
-      16,    42,    15,    -1,    11,    24,    18,    -1,    11,    18,
-      -1,    42,    17,    43,    -1,    43,    -1,    56,    -1,    55,
-      -1,    48,    -1,    54,    -1,    44,    17,    46,    -1,    46,
-      -1,    45,    17,    47,    -1,    47,    -1,    16,    64,    15,
-      -1,    16,    64,    15,    -1,    12,    16,    49,    15,    -1,
-      12,    24,    16,    49,    15,    -1,    12,    24,    18,    -1,
-      12,    18,    -1,    49,    17,    54,    -1,    49,    17,    55,
-      -1,    49,    17,    56,    -1,    54,    -1,    55,    -1,    56,
-      -1,    10,    16,    51,    15,    -1,    10,    24,    16,    51,
-      15,    -1,    10,    24,    18,    -1,    10,    18,    -1,    51,
-      17,    54,    -1,    51,    17,    48,    -1,    51,    17,    55,
-      -1,    51,    17,    56,    -1,    54,    -1,    48,    -1,    55,
-      -1,    56,    -1,     7,    16,    53,    15,    -1,     7,    24,
-      16,    53,    15,    -1,     7,    24,    18,    -1,     7,    18,
-      -1,    53,    17,    56,    -1,    56,    -1,    13,    16,    64,
-      15,    -1,    13,    24,    16,    64,    15,    -1,    13,    24,
-      18,    -1,    13,    18,    -1,     4,    16,    64,    15,    -1,
-       4,    24,    16,    64,    15,    -1,     4,    24,    18,    -1,
-       4,    18,    -1,    16,    64,    15,    -1,    18,    -1,    57,
-      17,    59,    -1,    59,    -1,    20,    16,    16,    64,    15,
-      15,    -1,    20,    24,    16,    16,    64,    15,    15,    -1,
-      20,    24,    18,    -1,    20,    18,    -1,    16,    16,    64,
-      15,    15,    -1,     6,    16,    61,    15,    -1,     6,    24,
-      16,    61,    15,    -1,     6,    24,    18,    -1,     6,    18,
-      -1,    61,    17,    62,    -1,    62,    -1,    65,    -1,    16,
-      65,    15,    -1,    18,    -1,     3,    16,    64,    15,    -1,
-       3,    24,    16,    64,    15,    -1,     3,    24,    18,    -1,
-       3,    18,    -1,    64,    17,    65,    -1,    65,    -1,    23,
-      23,    -1,    23,    23,    23,    -1,    23,    23,    23,    23,
-      -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   202,   202,   204,   208,   209,   210,   211,   212,   213,
-     214,   215,   216,   217,   218,   219,   220,   221,   222,   225,
-     227,   229,   231,   235,   237,   241,   243,   245,   247,   251,
-     253,   255,   257,   259,   261,   265,   267,   269,   271,   275,
-     277,   279,   281,   285,   287,   289,   291,   295,   297,   301,
-     303,   307,   309,   311,   313,   317,   319,   323,   326,   328,
-     330,   332,   336,   338,   342,   343,   344,   345,   348,   350,
-     354,   356,   360,   363,   366,   368,   370,   372,   376,   378,
-     380,   382,   384,   386,   390,   392,   394,   396,   400,   402,
-     404,   406,   408,   410,   412,   414,   418,   420,   422,   424,
-     428,   430,   434,   436,   438,   440,   444,   446,   448,   450,
-     454,   456,   460,   462,   466,   468,   470,   472,   476,   480,
-     482,   484,   486,   490,   492,   496,   498,   500,   504,   506,
-     508,   510,   514,   516,   520,   522,   524
+       0,   212,   212,   214,   218,   219,   220,   221,   222,   223,
+     224,   225,   226,   227,   228,   229,   230,   231,   232,   235,
+     237,   239,   241,   245,   247,   251,   253,   255,   257,   261,
+     263,   265,   267,   269,   271,   275,   277,   279,   281,   285,
+     287,   289,   291,   295,   297,   299,   301,   305,   307,   311,
+     313,   317,   319,   321,   323,   327,   329,   333,   336,   338,
+     340,   342,   346,   348,   352,   353,   354,   355,   358,   360,
+     364,   366,   370,   373,   376,   378,   380,   382,   386,   388,
+     390,   392,   394,   396,   400,   402,   404,   406,   410,   412,
+     414,   416,   418,   420,   422,   424,   428,   430,   432,   434,
+     438,   440,   444,   446,   448,   450,   454,   456,   458,   460,
+     464,   466,   470,   472,   476,   478,   480,   482,   486,   490,
+     492,   494,   496,   500,   502,   506,   508,   510,   514,   516,
+     518,   520,   524,   526,   530,   532,   534
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+#if YYDEBUG || YYERROR_VERBOSE || 1
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
@@ -680,13 +643,13 @@ static const char *const yytname[] =
   "multilinestring", "linestring_list", "circularstring", "linestring",
   "linestring_untagged", "triangle_list", "triangle", "triangle_untagged",
   "multipoint", "point_list", "point_untagged", "point", "ptarray",
-  "coordinate", 0
+  "coordinate", YY_NULLPTR
 };
 #endif
 
 # ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+   (internal) symbol number NUM (which must be that of a token).  */
 static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
@@ -695,90 +658,18 @@ static const yytype_uint16 yytoknum[] =
 };
 # endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    26,    27,    27,    28,    28,    28,    28,    28,    28,
-      28,    28,    28,    28,    28,    28,    28,    28,    28,    29,
-      29,    29,    29,    30,    30,    31,    31,    31,    31,    32,
-      32,    32,    32,    32,    32,    33,    33,    33,    33,    34,
-      34,    34,    34,    35,    35,    35,    35,    36,    36,    37,
-      37,    38,    38,    38,    38,    39,    39,    40,    41,    41,
-      41,    41,    42,    42,    43,    43,    43,    43,    44,    44,
-      45,    45,    46,    47,    48,    48,    48,    48,    49,    49,
-      49,    49,    49,    49,    50,    50,    50,    50,    51,    51,
-      51,    51,    51,    51,    51,    51,    52,    52,    52,    52,
-      53,    53,    54,    54,    54,    54,    55,    55,    55,    55,
-      56,    56,    57,    57,    58,    58,    58,    58,    59,    60,
-      60,    60,    60,    61,    61,    62,    62,    62,    63,    63,
-      63,    63,    64,    64,    65,    65,    65
-};
+#define YYPACT_NINF -90
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     1,     3,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
-       5,     3,     2,     3,     1,     4,     5,     3,     2,     3,
-       3,     3,     1,     1,     1,     4,     5,     3,     2,     4,
-       5,     3,     2,     4,     5,     3,     2,     3,     1,     3,
-       1,     4,     5,     3,     2,     3,     1,     3,     4,     5,
-       3,     2,     3,     1,     1,     1,     1,     1,     3,     1,
-       3,     1,     3,     3,     4,     5,     3,     2,     3,     3,
-       3,     1,     1,     1,     4,     5,     3,     2,     3,     3,
-       3,     3,     1,     1,     1,     1,     4,     5,     3,     2,
-       3,     1,     4,     5,     3,     2,     4,     5,     3,     2,
-       3,     1,     3,     1,     6,     7,     3,     2,     5,     4,
-       5,     3,     2,     3,     1,     1,     3,     1,     4,     5,
-       3,     2,     3,     1,     2,     3,     4
-};
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-90)))
 
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
-   Performed when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const yytype_uint8 yydefact[] =
-{
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     2,    18,
-      13,    15,    16,    12,     8,     9,     7,    14,    11,     6,
-       5,    17,    10,     4,     0,   131,     0,     0,   109,     0,
-       0,    54,     0,     0,   122,     0,     0,    99,     0,     0,
-      46,     0,     0,    28,     0,     0,    87,     0,     0,    61,
-       0,     0,    77,     0,     0,   105,     0,     0,    22,     0,
-       0,   117,     0,     0,    38,     0,     0,    42,     0,     0,
-       1,     0,     0,   133,     0,   130,     0,     0,   108,     0,
-       0,    71,     0,    53,     0,   127,     0,   124,   125,     0,
-     121,     0,   111,     0,   101,     0,    98,     0,    56,     0,
-      48,     0,    45,     0,    32,    34,    33,     0,    27,    93,
-       0,    92,    94,    95,     0,    86,     0,    63,    66,    67,
-      65,    64,     0,    60,     0,    81,    82,    83,     0,    76,
-       0,     0,   104,    24,     0,     0,    21,     0,     0,   116,
-       0,     0,   113,     0,    37,     0,     0,    50,     0,    41,
-       3,   134,   128,     0,     0,   106,     0,     0,    51,     0,
-       0,     0,   119,     0,     0,     0,    96,     0,     0,     0,
-      43,     0,     0,    25,     0,     0,    84,     0,     0,    58,
-       0,     0,    74,     0,     0,   102,     0,    19,     0,     0,
-       0,     0,     0,    35,     0,     0,     0,     0,    69,    39,
-       0,     0,   135,   132,   129,   107,    73,    70,    52,   126,
-     123,   120,   110,   100,    97,    55,    47,    44,    29,    31,
-      30,    26,    89,    88,    90,    91,    85,    62,    59,    78,
-      79,    80,    75,   103,    23,    20,     0,     0,     0,   112,
-      36,     0,    57,     0,    49,    40,   136,   114,     0,     0,
-      72,    68,   115,   118
-};
+#define YYTABLE_NINF -1
 
-/* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int16 yydefgoto[] =
-{
-      -1,    17,   143,    19,   144,    20,   113,    21,    22,    23,
-     109,   156,    24,   110,   157,    25,   126,   127,   207,    90,
-     208,    91,    26,   134,    27,   120,    28,   103,    29,    30,
-     131,   151,    31,   152,    32,    96,    97,    33,    82,    83
-};
+#define yytable_value_is_error(Yytable_value) \
+  0
 
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -90
+  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+     STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
      109,    -2,    16,    23,    26,    36,    39,    40,    52,    53,
@@ -810,7 +701,41 @@ static const yytype_int16 yypact[] =
      -90,   -90,   -90,   -90
 };
 
-/* YYPGOTO[NTERM-NUM].  */
+  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+     Performed when YYTABLE does not specify something else to do.  Zero
+     means the default is an error.  */
+static const yytype_uint8 yydefact[] =
+{
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     2,    18,
+      13,    15,    16,    12,     8,     9,     7,    14,    11,     6,
+       5,    17,    10,     4,     0,   131,     0,     0,   109,     0,
+       0,    54,     0,     0,   122,     0,     0,    99,     0,     0,
+      46,     0,     0,    28,     0,     0,    87,     0,     0,    61,
+       0,     0,    77,     0,     0,   105,     0,     0,    22,     0,
+       0,   117,     0,     0,    38,     0,     0,    42,     0,     0,
+       1,     0,     0,   133,     0,   130,     0,     0,   108,     0,
+       0,    71,     0,    53,     0,   127,     0,   124,   125,     0,
+     121,     0,   111,     0,   101,     0,    98,     0,    56,     0,
+      48,     0,    45,     0,    32,    34,    33,     0,    27,    93,
+       0,    92,    94,    95,     0,    86,     0,    63,    66,    67,
+      65,    64,     0,    60,     0,    81,    82,    83,     0,    76,
+       0,     0,   104,    24,     0,     0,    21,     0,     0,   116,
+       0,     0,   113,     0,    37,     0,     0,    50,     0,    41,
+       3,   134,   128,     0,     0,   106,     0,     0,    51,     0,
+       0,     0,   119,     0,     0,     0,    96,     0,     0,     0,
+      43,     0,     0,    25,     0,     0,    84,     0,     0,    58,
+       0,     0,    74,     0,     0,   102,     0,    19,     0,     0,
+       0,     0,     0,    35,     0,     0,     0,     0,    69,    39,
+       0,     0,   135,   132,   129,   107,    73,    70,    52,   126,
+     123,   120,   110,   100,    97,    55,    47,    44,    29,    31,
+      30,    26,    89,    88,    90,    91,    85,    62,    59,    78,
+      79,    80,    75,   103,    23,    20,     0,     0,     0,   112,
+      36,     0,    57,     0,    49,    40,   136,   114,     0,     0,
+      72,    68,   115,   118
+};
+
+  /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
      -90,   -90,     0,   -90,     5,   -90,    37,   -90,   -90,   -90,
@@ -819,10 +744,18 @@ static const yytype_int16 yypgoto[] =
      -44,   138,   -90,    89,   -90,   193,   121,   -90,   -36,    -6
 };
 
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -1
+  /* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int16 yydefgoto[] =
+{
+      -1,    17,   143,    19,   144,    20,   113,    21,    22,    23,
+     109,   156,    24,   110,   157,    25,   126,   127,   207,    90,
+     208,    91,    26,   134,    27,   120,    28,   103,    29,    30,
+     131,   151,    31,   152,    32,    96,    97,    33,    82,    83
+};
+
+  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+     positive, shift that token.  If negative, reduce the rule whose
+     number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_uint16 yytable[] =
 {
       18,    86,   104,   170,   121,   119,   122,   129,   128,   130,
@@ -857,12 +790,6 @@ static const yytype_uint16 yytable[] =
      178,   205,   174,   249,   220
 };
 
-#define yypact_value_is_default(yystate) \
-  ((yystate) == (-90))
-
-#define yytable_value_is_error(yytable_value) \
-  YYID (0)
-
 static const yytype_uint8 yycheck[] =
 {
        0,    37,    46,    92,    55,    55,    55,    58,    58,    58,
@@ -897,8 +824,8 @@ static const yytype_uint8 yycheck[] =
      105,   153,    99,   204,   173
 };
 
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
+  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+     symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
@@ -930,79 +857,120 @@ static const yytype_uint8 yystos[] =
       15,    46,    15,    15
 };
 
-#define yyerrok		(yyerrstatus = 0)
-#define yyclearin	(yychar = YYEMPTY)
-#define YYEMPTY		(-2)
-#define YYEOF		0
-
-#define YYACCEPT	goto yyacceptlab
-#define YYABORT		goto yyabortlab
-#define YYERROR		goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  However,
-   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
-   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
-   discussed.  */
-
-#define YYFAIL		goto yyerrlab
-#if defined YYFAIL
-  /* This is here to suppress warnings from the GCC cpp's
-     -Wunused-macros.  Normally we don't worry about that warning, but
-     some users do, and we want to make it easy for users to remove
-     YYFAIL uses, which will produce warnings from Bison 2.5.  */
-#endif
+  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,    26,    27,    27,    28,    28,    28,    28,    28,    28,
+      28,    28,    28,    28,    28,    28,    28,    28,    28,    29,
+      29,    29,    29,    30,    30,    31,    31,    31,    31,    32,
+      32,    32,    32,    32,    32,    33,    33,    33,    33,    34,
+      34,    34,    34,    35,    35,    35,    35,    36,    36,    37,
+      37,    38,    38,    38,    38,    39,    39,    40,    41,    41,
+      41,    41,    42,    42,    43,    43,    43,    43,    44,    44,
+      45,    45,    46,    47,    48,    48,    48,    48,    49,    49,
+      49,    49,    49,    49,    50,    50,    50,    50,    51,    51,
+      51,    51,    51,    51,    51,    51,    52,    52,    52,    52,
+      53,    53,    54,    54,    54,    54,    55,    55,    55,    55,
+      56,    56,    57,    57,    58,    58,    58,    58,    59,    60,
+      60,    60,    60,    61,    61,    62,    62,    62,    63,    63,
+      63,    63,    64,    64,    65,    65,    65
+};
+
+  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
+       5,     3,     2,     3,     1,     4,     5,     3,     2,     3,
+       3,     3,     1,     1,     1,     4,     5,     3,     2,     4,
+       5,     3,     2,     4,     5,     3,     2,     3,     1,     3,
+       1,     4,     5,     3,     2,     3,     1,     3,     4,     5,
+       3,     2,     3,     1,     1,     1,     1,     1,     3,     1,
+       3,     1,     3,     3,     4,     5,     3,     2,     3,     3,
+       3,     1,     1,     1,     4,     5,     3,     2,     3,     3,
+       3,     3,     1,     1,     1,     1,     4,     5,     3,     2,
+       3,     1,     4,     5,     3,     2,     4,     5,     3,     2,
+       3,     1,     3,     1,     6,     7,     3,     2,     5,     4,
+       5,     3,     2,     3,     1,     1,     3,     1,     4,     5,
+       3,     2,     3,     1,     2,     3,     4
+};
+
+
+#define yyerrok         (yyerrstatus = 0)
+#define yyclearin       (yychar = YYEMPTY)
+#define YYEMPTY         (-2)
+#define YYEOF           0
+
+#define YYACCEPT        goto yyacceptlab
+#define YYABORT         goto yyabortlab
+#define YYERROR         goto yyerrorlab
+
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)					\
-do								\
-  if (yychar == YYEMPTY && yylen == 1)				\
-    {								\
-      yychar = (Token);						\
-      yylval = (Value);						\
-      YYPOPSTACK (1);						\
-      goto yybackup;						\
-    }								\
-  else								\
-    {								\
+#define YYBACKUP(Token, Value)                                  \
+do                                                              \
+  if (yychar == YYEMPTY)                                        \
+    {                                                           \
+      yychar = (Token);                                         \
+      yylval = (Value);                                         \
+      YYPOPSTACK (yylen);                                       \
+      yystate = *yyssp;                                         \
+      goto yybackup;                                            \
+    }                                                           \
+  else                                                          \
+    {                                                           \
       yyerror (YY_("syntax error: cannot back up")); \
-      YYERROR;							\
-    }								\
-while (YYID (0))
+      YYERROR;                                                  \
+    }                                                           \
+while (0)
 
-
-#define YYTERROR	1
-#define YYERRCODE	256
+/* Error token number */
+#define YYTERROR        1
+#define YYERRCODE       256
 
 
 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    If N is 0, then set CURRENT to the empty location which ends
    the previous symbol: RHS[0] (always defined).  */
 
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)				\
-    do									\
-      if (YYID (N))                                                    \
-	{								\
-	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
-	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
-	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
-	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
-	}								\
-      else								\
-	{								\
-	  (Current).first_line   = (Current).last_line   =		\
-	    YYRHSLOC (Rhs, 0).last_line;				\
-	  (Current).first_column = (Current).last_column =		\
-	    YYRHSLOC (Rhs, 0).last_column;				\
-	}								\
-    while (YYID (0))
+# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
+    do                                                                  \
+      if (N)                                                            \
+        {                                                               \
+          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
+          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
+          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
+          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
+        }                                                               \
+      else                                                              \
+        {                                                               \
+          (Current).first_line   = (Current).last_line   =              \
+            YYRHSLOC (Rhs, 0).last_line;                                \
+          (Current).first_column = (Current).last_column =              \
+            YYRHSLOC (Rhs, 0).last_column;                              \
+        }                                                               \
+    while (0)
 #endif
 
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+
+
+/* Enable debugging if requested.  */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)                        \
+do {                                            \
+  if (yydebug)                                  \
+    YYFPRINTF Args;                             \
+} while (0)
+
 
 /* YY_LOCATION_PRINT -- Print the location on the stream.
    This macro was not mandated originally: define only if we know
@@ -1010,82 +978,73 @@ while (YYID (0))
 
 #ifndef YY_LOCATION_PRINT
 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-#  define YY_LOCATION_PRINT(File, Loc)			\
-     fprintf (File, "%d.%d-%d.%d",			\
-	      (Loc).first_line, (Loc).first_column,	\
-	      (Loc).last_line,  (Loc).last_column)
-# else
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif
-
 
-/* YYLEX -- calling `yylex' with the right arguments.  */
+/* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
 
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
+YY_ATTRIBUTE_UNUSED
+static unsigned
+yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
+{
+  unsigned res = 0;
+  int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
+  if (0 <= yylocp->first_line)
+    {
+      res += YYFPRINTF (yyo, "%d", yylocp->first_line);
+      if (0 <= yylocp->first_column)
+        res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
+    }
+  if (0 <= yylocp->last_line)
+    {
+      if (yylocp->first_line < yylocp->last_line)
+        {
+          res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
+          if (0 <= end_col)
+            res += YYFPRINTF (yyo, ".%d", end_col);
+        }
+      else if (0 <= end_col && yylocp->first_column < end_col)
+        res += YYFPRINTF (yyo, "-%d", end_col);
+    }
+  return res;
+ }
 
-/* Enable debugging if requested.  */
-#if YYDEBUG
+#  define YY_LOCATION_PRINT(File, Loc)          \
+  yy_location_print_ (File, &(Loc))
 
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
+# else
+#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 # endif
+#endif
 
-# define YYDPRINTF(Args)			\
-do {						\
-  if (yydebug)					\
-    YYFPRINTF Args;				\
-} while (YYID (0))
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
-do {									  \
-  if (yydebug)								  \
-    {									  \
-      YYFPRINTF (stderr, "%s ", Title);					  \
-      yy_symbol_print (stderr,						  \
-		  Type, Value, Location); \
-      YYFPRINTF (stderr, "\n");						  \
-    }									  \
-} while (YYID (0))
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
+do {                                                                      \
+  if (yydebug)                                                            \
+    {                                                                     \
+      YYFPRINTF (stderr, "%s ", Title);                                   \
+      yy_symbol_print (stderr,                                            \
+                  Type, Value, Location); \
+      YYFPRINTF (stderr, "\n");                                           \
+    }                                                                     \
+} while (0)
 
 
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
+/*----------------------------------------.
+| Print this symbol's value on YYOUTPUT.  |
+`----------------------------------------*/
 
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    YYLTYPE const * const yylocationp;
-#endif
 {
+  FILE *yyo = yyoutput;
+  YYUSE (yyo);
+  YYUSE (yylocationp);
   if (!yyvaluep)
     return;
-  YYUSE (yylocationp);
 # ifdef YYPRINT
   if (yytype < YYNTOKENS)
     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
-  YYUSE (yyoutput);
 # endif
-  switch (yytype)
-    {
-      default:
-	break;
-    }
+  YYUSE (yytype);
 }
 
 
@@ -1093,23 +1052,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
 | Print this symbol on YYOUTPUT.  |
 `--------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    YYLTYPE const * const yylocationp;
-#endif
 {
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+  YYFPRINTF (yyoutput, "%s %s (",
+             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
 
   YY_LOCATION_PRINT (yyoutput, *yylocationp);
   YYFPRINTF (yyoutput, ": ");
@@ -1122,16 +1069,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
 | TOP (included).                                                   |
 `------------------------------------------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-#else
-static void
-yy_stack_print (yybottom, yytop)
-    yytype_int16 *yybottom;
-    yytype_int16 *yytop;
-#endif
 {
   YYFPRINTF (stderr, "Stack now");
   for (; yybottom <= yytop; yybottom++)
@@ -1142,50 +1081,42 @@ yy_stack_print (yybottom, yytop)
   YYFPRINTF (stderr, "\n");
 }
 
-# define YY_STACK_PRINT(Bottom, Top)				\
-do {								\
-  if (yydebug)							\
-    yy_stack_print ((Bottom), (Top));				\
-} while (YYID (0))
+# define YY_STACK_PRINT(Bottom, Top)                            \
+do {                                                            \
+  if (yydebug)                                                  \
+    yy_stack_print ((Bottom), (Top));                           \
+} while (0)
 
 
 /*------------------------------------------------.
 | Report that the YYRULE is going to be reduced.  |
 `------------------------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
-#else
 static void
-yy_reduce_print (yyvsp, yylsp, yyrule)
-    YYSTYPE *yyvsp;
-    YYLTYPE *yylsp;
-    int yyrule;
-#endif
+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
 {
+  unsigned long int yylno = yyrline[yyrule];
   int yynrhs = yyr2[yyrule];
   int yyi;
-  unsigned long int yylno = yyrline[yyrule];
   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-	     yyrule - 1, yylno);
+             yyrule - 1, yylno);
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-		       &(yyvsp[(yyi + 1) - (yynrhs)])
-		       , &(yylsp[(yyi + 1) - (yynrhs)])		       );
+      yy_symbol_print (stderr,
+                       yystos[yyssp[yyi + 1 - yynrhs]],
+                       &(yyvsp[(yyi + 1) - (yynrhs)])
+                       , &(yylsp[(yyi + 1) - (yynrhs)])                       );
       YYFPRINTF (stderr, "\n");
     }
 }
 
-# define YY_REDUCE_PRINT(Rule)		\
-do {					\
-  if (yydebug)				\
-    yy_reduce_print (yyvsp, yylsp, Rule); \
-} while (YYID (0))
+# define YY_REDUCE_PRINT(Rule)          \
+do {                                    \
+  if (yydebug)                          \
+    yy_reduce_print (yyssp, yyvsp, yylsp, Rule); \
+} while (0)
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
@@ -1199,7 +1130,7 @@ int yydebug;
 
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef	YYINITDEPTH
+#ifndef YYINITDEPTH
 # define YYINITDEPTH 200
 #endif
 
@@ -1222,15 +1153,8 @@ int yydebug;
 #   define yystrlen strlen
 #  else
 /* Return the length of YYSTR.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static YYSIZE_T
 yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
-    const char *yystr;
-#endif
 {
   YYSIZE_T yylen;
   for (yylen = 0; yystr[yylen]; yylen++)
@@ -1246,16 +1170,8 @@ yystrlen (yystr)
 #  else
 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    YYDEST.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static char *
 yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
-    char *yydest;
-    const char *yysrc;
-#endif
 {
   char *yyd = yydest;
   const char *yys = yysrc;
@@ -1285,27 +1201,27 @@ yytnamerr (char *yyres, const char *yystr)
       char const *yyp = yystr;
 
       for (;;)
-	switch (*++yyp)
-	  {
-	  case '\'':
-	  case ',':
-	    goto do_not_strip_quotes;
-
-	  case '\\':
-	    if (*++yyp != '\\')
-	      goto do_not_strip_quotes;
-	    /* Fall through.  */
-	  default:
-	    if (yyres)
-	      yyres[yyn] = *yyp;
-	    yyn++;
-	    break;
-
-	  case '"':
-	    if (yyres)
-	      yyres[yyn] = '\0';
-	    return yyn;
-	  }
+        switch (*++yyp)
+          {
+          case '\'':
+          case ',':
+            goto do_not_strip_quotes;
+
+          case '\\':
+            if (*++yyp != '\\')
+              goto do_not_strip_quotes;
+            /* Fall through.  */
+          default:
+            if (yyres)
+              yyres[yyn] = *yyp;
+            yyn++;
+            break;
+
+          case '"':
+            if (yyres)
+              yyres[yyn] = '\0';
+            return yyn;
+          }
     do_not_strip_quotes: ;
     }
 
@@ -1328,12 +1244,11 @@ static int
 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                 yytype_int16 *yyssp, int yytoken)
 {
-  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
   YYSIZE_T yysize = yysize0;
-  YYSIZE_T yysize1;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   /* Internationalized format string. */
-  const char *yyformat = 0;
+  const char *yyformat = YY_NULLPTR;
   /* Arguments of yyformat. */
   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   /* Number of reported tokens (one for the "unexpected", one per
@@ -1341,10 +1256,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
   int yycount = 0;
 
   /* There are many possibilities here to consider:
-     - Assume YYFAIL is not used.  It's too flawed to consider.  See
-       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
-       for details.  YYERROR is fine as it does not invoke this
-       function.
      - If this state is a consistent state with a default action, then
        the only way this function was invoked is if the default action
        is an error action.  In that case, don't check for expected
@@ -1393,11 +1304,13 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                     break;
                   }
                 yyarg[yycount++] = yytname[yyx];
-                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-                if (! (yysize <= yysize1
-                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                  return 2;
-                yysize = yysize1;
+                {
+                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+                  if (! (yysize <= yysize1
+                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                    return 2;
+                  yysize = yysize1;
+                }
               }
         }
     }
@@ -1417,10 +1330,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 # undef YYCASE_
     }
 
-  yysize1 = yysize + yystrlen (yyformat);
-  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-    return 2;
-  yysize = yysize1;
+  {
+    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+      return 2;
+    yysize = yysize1;
+  }
 
   if (*yymsg_alloc < yysize)
     {
@@ -1457,374 +1372,242 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep, yylocationp)
-    const char *yymsg;
-    int yytype;
-    YYSTYPE *yyvaluep;
-    YYLTYPE *yylocationp;
-#endif
 {
   YYUSE (yyvaluep);
   YYUSE (yylocationp);
-
   if (!yymsg)
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   switch (yytype)
     {
-      case 28: /* "geometry_no_srid" */
-
-/* Line 1391 of yacc.c  */
-#line 180 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1491 "lwin_wkt_parse.c"
-	break;
-      case 29: /* "geometrycollection" */
-
-/* Line 1391 of yacc.c  */
-#line 181 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1500 "lwin_wkt_parse.c"
-	break;
-      case 31: /* "multisurface" */
-
-/* Line 1391 of yacc.c  */
-#line 188 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1509 "lwin_wkt_parse.c"
-	break;
-      case 32: /* "surface_list" */
-
-/* Line 1391 of yacc.c  */
-#line 167 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1518 "lwin_wkt_parse.c"
-	break;
-      case 33: /* "tin" */
-
-/* Line 1391 of yacc.c  */
-#line 195 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1527 "lwin_wkt_parse.c"
-	break;
-      case 34: /* "polyhedralsurface" */
-
-/* Line 1391 of yacc.c  */
-#line 194 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1536 "lwin_wkt_parse.c"
-	break;
-      case 35: /* "multipolygon" */
-
-/* Line 1391 of yacc.c  */
-#line 187 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1545 "lwin_wkt_parse.c"
-	break;
-      case 36: /* "polygon_list" */
-
-/* Line 1391 of yacc.c  */
-#line 168 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1554 "lwin_wkt_parse.c"
-	break;
-      case 37: /* "patch_list" */
-
-/* Line 1391 of yacc.c  */
-#line 169 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1563 "lwin_wkt_parse.c"
-	break;
-      case 38: /* "polygon" */
-
-/* Line 1391 of yacc.c  */
-#line 191 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1572 "lwin_wkt_parse.c"
-	break;
-      case 39: /* "polygon_untagged" */
-
-/* Line 1391 of yacc.c  */
-#line 193 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1581 "lwin_wkt_parse.c"
-	break;
-      case 40: /* "patch" */
-
-/* Line 1391 of yacc.c  */
-#line 192 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1590 "lwin_wkt_parse.c"
-	break;
-      case 41: /* "curvepolygon" */
-
-/* Line 1391 of yacc.c  */
-#line 178 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1599 "lwin_wkt_parse.c"
-	break;
-      case 42: /* "curvering_list" */
-
-/* Line 1391 of yacc.c  */
-#line 165 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1608 "lwin_wkt_parse.c"
-	break;
-      case 43: /* "curvering" */
-
-/* Line 1391 of yacc.c  */
-#line 179 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1617 "lwin_wkt_parse.c"
-	break;
-      case 44: /* "patchring_list" */
-
-/* Line 1391 of yacc.c  */
-#line 175 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1626 "lwin_wkt_parse.c"
-	break;
-      case 45: /* "ring_list" */
-
-/* Line 1391 of yacc.c  */
-#line 174 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1635 "lwin_wkt_parse.c"
-	break;
-      case 46: /* "patchring" */
-
-/* Line 1391 of yacc.c  */
-#line 164 "lwin_wkt_parse.y"
-	{ ptarray_free((yyvaluep->ptarrayvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1644 "lwin_wkt_parse.c"
-	break;
-      case 47: /* "ring" */
-
-/* Line 1391 of yacc.c  */
-#line 163 "lwin_wkt_parse.y"
-	{ ptarray_free((yyvaluep->ptarrayvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1653 "lwin_wkt_parse.c"
-	break;
-      case 48: /* "compoundcurve" */
-
-/* Line 1391 of yacc.c  */
-#line 177 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1662 "lwin_wkt_parse.c"
-	break;
-      case 49: /* "compound_list" */
-
-/* Line 1391 of yacc.c  */
-#line 173 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1671 "lwin_wkt_parse.c"
-	break;
-      case 50: /* "multicurve" */
-
-/* Line 1391 of yacc.c  */
-#line 184 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1680 "lwin_wkt_parse.c"
-	break;
-      case 51: /* "curve_list" */
-
-/* Line 1391 of yacc.c  */
-#line 172 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1689 "lwin_wkt_parse.c"
-	break;
-      case 52: /* "multilinestring" */
-
-/* Line 1391 of yacc.c  */
-#line 185 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1698 "lwin_wkt_parse.c"
-	break;
-      case 53: /* "linestring_list" */
-
-/* Line 1391 of yacc.c  */
-#line 171 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1707 "lwin_wkt_parse.c"
-	break;
-      case 54: /* "circularstring" */
-
-/* Line 1391 of yacc.c  */
-#line 176 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1716 "lwin_wkt_parse.c"
-	break;
-      case 55: /* "linestring" */
-
-/* Line 1391 of yacc.c  */
-#line 182 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1725 "lwin_wkt_parse.c"
-	break;
-      case 56: /* "linestring_untagged" */
-
-/* Line 1391 of yacc.c  */
-#line 183 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1734 "lwin_wkt_parse.c"
-	break;
-      case 57: /* "triangle_list" */
-
-/* Line 1391 of yacc.c  */
-#line 166 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1743 "lwin_wkt_parse.c"
-	break;
-      case 58: /* "triangle" */
-
-/* Line 1391 of yacc.c  */
-#line 196 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1752 "lwin_wkt_parse.c"
-	break;
-      case 59: /* "triangle_untagged" */
-
-/* Line 1391 of yacc.c  */
-#line 197 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1761 "lwin_wkt_parse.c"
-	break;
-      case 60: /* "multipoint" */
-
-/* Line 1391 of yacc.c  */
-#line 186 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1770 "lwin_wkt_parse.c"
-	break;
-      case 61: /* "point_list" */
-
-/* Line 1391 of yacc.c  */
-#line 170 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1779 "lwin_wkt_parse.c"
-	break;
-      case 62: /* "point_untagged" */
-
-/* Line 1391 of yacc.c  */
-#line 190 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1788 "lwin_wkt_parse.c"
-	break;
-      case 63: /* "point" */
-
-/* Line 1391 of yacc.c  */
-#line 189 "lwin_wkt_parse.y"
-	{ lwgeom_free((yyvaluep->geometryvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1797 "lwin_wkt_parse.c"
-	break;
-      case 64: /* "ptarray" */
-
-/* Line 1391 of yacc.c  */
-#line 162 "lwin_wkt_parse.y"
-	{ ptarray_free((yyvaluep->ptarrayvalue)); };
-
-/* Line 1391 of yacc.c  */
-#line 1806 "lwin_wkt_parse.c"
-	break;
+          case 28: /* geometry_no_srid  */
+#line 190 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1391 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 29: /* geometrycollection  */
+#line 191 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1397 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 31: /* multisurface  */
+#line 198 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1403 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 32: /* surface_list  */
+#line 177 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1409 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 33: /* tin  */
+#line 205 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1415 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 34: /* polyhedralsurface  */
+#line 204 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1421 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 35: /* multipolygon  */
+#line 197 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1427 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 36: /* polygon_list  */
+#line 178 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1433 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 37: /* patch_list  */
+#line 179 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1439 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 38: /* polygon  */
+#line 201 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1445 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 39: /* polygon_untagged  */
+#line 203 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1451 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 40: /* patch  */
+#line 202 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1457 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 41: /* curvepolygon  */
+#line 188 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1463 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 42: /* curvering_list  */
+#line 175 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1469 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 43: /* curvering  */
+#line 189 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1475 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 44: /* patchring_list  */
+#line 185 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1481 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 45: /* ring_list  */
+#line 184 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1487 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 46: /* patchring  */
+#line 174 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { ptarray_free(((*yyvaluep).ptarrayvalue)); }
+#line 1493 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 47: /* ring  */
+#line 173 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { ptarray_free(((*yyvaluep).ptarrayvalue)); }
+#line 1499 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 48: /* compoundcurve  */
+#line 187 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1505 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 49: /* compound_list  */
+#line 183 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1511 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 50: /* multicurve  */
+#line 194 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1517 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 51: /* curve_list  */
+#line 182 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1523 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 52: /* multilinestring  */
+#line 195 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1529 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 53: /* linestring_list  */
+#line 181 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1535 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 54: /* circularstring  */
+#line 186 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1541 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 55: /* linestring  */
+#line 192 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1547 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 56: /* linestring_untagged  */
+#line 193 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1553 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 57: /* triangle_list  */
+#line 176 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1559 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 58: /* triangle  */
+#line 206 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1565 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 59: /* triangle_untagged  */
+#line 207 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1571 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 60: /* multipoint  */
+#line 196 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1577 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 61: /* point_list  */
+#line 180 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1583 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 62: /* point_untagged  */
+#line 200 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1589 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 63: /* point  */
+#line 199 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { lwgeom_free(((*yyvaluep).geometryvalue)); }
+#line 1595 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
+    case 64: /* ptarray  */
+#line 172 "lwin_wkt_parse.y" /* yacc.c:1257  */
+      { ptarray_free(((*yyvaluep).ptarrayvalue)); }
+#line 1601 "lwin_wkt_parse.c" /* yacc.c:1257  */
+        break;
+
 
       default:
-	break;
+        break;
     }
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
 
-/* Prevent warnings from -Wmissing-prototypes.  */
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
 
 
 /* The lookahead symbol.  */
@@ -1832,10 +1615,12 @@ int yychar;
 
 /* The semantic value of the lookahead symbol.  */
 YYSTYPE yylval;
-
 /* Location data for the lookahead symbol.  */
-YYLTYPE yylloc;
-
+YYLTYPE yylloc
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
+  = { 1, 1, 1, 1 }
+# endif
+;
 /* Number of syntax errors so far.  */
 int yynerrs;
 
@@ -1844,38 +1629,19 @@ int yynerrs;
 | yyparse.  |
 `----------*/
 
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
-    void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 int
 yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
 {
     int yystate;
     /* Number of tokens to shift before error messages enabled.  */
     int yyerrstatus;
 
     /* The stacks and their tools:
-       `yyss': related to states.
-       `yyvs': related to semantic values.
-       `yyls': related to locations.
+       'yyss': related to states.
+       'yyvs': related to semantic values.
+       'yyls': related to locations.
 
-       Refer to the stacks thru separate pointers, to allow yyoverflow
+       Refer to the stacks through separate pointers, to allow yyoverflow
        to reallocate them elsewhere.  */
 
     /* The state stack.  */
@@ -1901,7 +1667,7 @@ yyparse ()
   int yyn;
   int yyresult;
   /* Lookahead token as an internal (translated) token number.  */
-  int yytoken;
+  int yytoken = 0;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
@@ -1920,10 +1686,9 @@ yyparse ()
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
-  yytoken = 0;
-  yyss = yyssa;
-  yyvs = yyvsa;
-  yyls = yylsa;
+  yyssp = yyss = yyssa;
+  yyvsp = yyvs = yyvsa;
+  yylsp = yyls = yylsa;
   yystacksize = YYINITDEPTH;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
@@ -1932,21 +1697,7 @@ yyparse ()
   yyerrstatus = 0;
   yynerrs = 0;
   yychar = YYEMPTY; /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-  yyssp = yyss;
-  yyvsp = yyvs;
-  yylsp = yyls;
-
-#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-  /* Initialize the default location before parsing starts.  */
-  yylloc.first_line   = yylloc.last_line   = 1;
-  yylloc.first_column = yylloc.last_column = 1;
-#endif
-
+  yylsp[0] = yylloc;
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -1967,26 +1718,26 @@ yyparse ()
 
 #ifdef yyoverflow
       {
-	/* Give user a chance to reallocate the stack.  Use copies of
-	   these so that the &'s don't force the real ones into
-	   memory.  */
-	YYSTYPE *yyvs1 = yyvs;
-	yytype_int16 *yyss1 = yyss;
-	YYLTYPE *yyls1 = yyls;
-
-	/* Each stack pointer address is followed by the size of the
-	   data in use in that stack, in bytes.  This used to be a
-	   conditional around just the two extra args, but that might
-	   be undefined if yyoverflow is a macro.  */
-	yyoverflow (YY_("memory exhausted"),
-		    &yyss1, yysize * sizeof (*yyssp),
-		    &yyvs1, yysize * sizeof (*yyvsp),
-		    &yyls1, yysize * sizeof (*yylsp),
-		    &yystacksize);
-
-	yyls = yyls1;
-	yyss = yyss1;
-	yyvs = yyvs1;
+        /* Give user a chance to reallocate the stack.  Use copies of
+           these so that the &'s don't force the real ones into
+           memory.  */
+        YYSTYPE *yyvs1 = yyvs;
+        yytype_int16 *yyss1 = yyss;
+        YYLTYPE *yyls1 = yyls;
+
+        /* Each stack pointer address is followed by the size of the
+           data in use in that stack, in bytes.  This used to be a
+           conditional around just the two extra args, but that might
+           be undefined if yyoverflow is a macro.  */
+        yyoverflow (YY_("memory exhausted"),
+                    &yyss1, yysize * sizeof (*yyssp),
+                    &yyvs1, yysize * sizeof (*yyvsp),
+                    &yyls1, yysize * sizeof (*yylsp),
+                    &yystacksize);
+
+        yyls = yyls1;
+        yyss = yyss1;
+        yyvs = yyvs1;
       }
 #else /* no yyoverflow */
 # ifndef YYSTACK_RELOCATE
@@ -1994,23 +1745,23 @@ yyparse ()
 # else
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-	goto yyexhaustedlab;
+        goto yyexhaustedlab;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
-	yystacksize = YYMAXDEPTH;
+        yystacksize = YYMAXDEPTH;
 
       {
-	yytype_int16 *yyss1 = yyss;
-	union yyalloc *yyptr =
-	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-	if (! yyptr)
-	  goto yyexhaustedlab;
-	YYSTACK_RELOCATE (yyss_alloc, yyss);
-	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-	YYSTACK_RELOCATE (yyls_alloc, yyls);
+        yytype_int16 *yyss1 = yyss;
+        union yyalloc *yyptr =
+          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+        if (! yyptr)
+          goto yyexhaustedlab;
+        YYSTACK_RELOCATE (yyss_alloc, yyss);
+        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+        YYSTACK_RELOCATE (yyls_alloc, yyls);
 #  undef YYSTACK_RELOCATE
-	if (yyss1 != yyssa)
-	  YYSTACK_FREE (yyss1);
+        if (yyss1 != yyssa)
+          YYSTACK_FREE (yyss1);
       }
 # endif
 #endif /* no yyoverflow */
@@ -2020,10 +1771,10 @@ yyparse ()
       yylsp = yyls + yysize - 1;
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-		  (unsigned long int) yystacksize));
+                  (unsigned long int) yystacksize));
 
       if (yyss + yystacksize - 1 <= yyssp)
-	YYABORT;
+        YYABORT;
     }
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
@@ -2052,7 +1803,7 @@ yybackup:
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
+      yychar = yylex ();
     }
 
   if (yychar <= YYEOF)
@@ -2092,7 +1843,9 @@ yybackup:
   yychar = YYEMPTY;
 
   yystate = yyn;
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
   *++yylsp = yylloc;
   goto yynewstate;
 
@@ -2115,7 +1868,7 @@ yyreduce:
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
+     '$$ = $1'.
 
      Otherwise, the following line sets YYVAL to garbage.
      This behavior is undocumented and Bison
@@ -2130,954 +1883,817 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-
-/* Line 1806 of yacc.c  */
-#line 203 "lwin_wkt_parse.y"
-    { wkt_parser_geometry_new((yyvsp[(1) - (1)].geometryvalue), SRID_UNKNOWN); WKT_ERROR(); }
+#line 213 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { wkt_parser_geometry_new((yyvsp[0].geometryvalue), SRID_UNKNOWN); WKT_ERROR(); }
+#line 1889 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 3:
-
-/* Line 1806 of yacc.c  */
-#line 205 "lwin_wkt_parse.y"
-    { wkt_parser_geometry_new((yyvsp[(3) - (3)].geometryvalue), (yyvsp[(1) - (3)].integervalue)); WKT_ERROR(); }
+#line 215 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { wkt_parser_geometry_new((yyvsp[0].geometryvalue), (yyvsp[-2].integervalue)); WKT_ERROR(); }
+#line 1895 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 4:
-
-/* Line 1806 of yacc.c  */
-#line 208 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 218 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1901 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 5:
-
-/* Line 1806 of yacc.c  */
-#line 209 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 219 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1907 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 6:
-
-/* Line 1806 of yacc.c  */
-#line 210 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 220 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1913 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 7:
-
-/* Line 1806 of yacc.c  */
-#line 211 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 221 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1919 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 8:
-
-/* Line 1806 of yacc.c  */
-#line 212 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 222 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1925 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 9:
-
-/* Line 1806 of yacc.c  */
-#line 213 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 223 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1931 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 10:
-
-/* Line 1806 of yacc.c  */
-#line 214 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 224 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1937 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 11:
-
-/* Line 1806 of yacc.c  */
-#line 215 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 225 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1943 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 12:
-
-/* Line 1806 of yacc.c  */
-#line 216 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 226 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1949 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 13:
-
-/* Line 1806 of yacc.c  */
-#line 217 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 227 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1955 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 14:
-
-/* Line 1806 of yacc.c  */
-#line 218 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 228 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1961 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 15:
-
-/* Line 1806 of yacc.c  */
-#line 219 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 229 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1967 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 16:
-
-/* Line 1806 of yacc.c  */
-#line 220 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 230 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1973 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 17:
-
-/* Line 1806 of yacc.c  */
-#line 221 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 231 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1979 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 18:
-
-/* Line 1806 of yacc.c  */
-#line 222 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 232 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 1985 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 19:
-
-/* Line 1806 of yacc.c  */
-#line 226 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 236 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 1991 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 20:
-
-/* Line 1806 of yacc.c  */
-#line 228 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 238 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 1997 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 21:
-
-/* Line 1806 of yacc.c  */
-#line 230 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 240 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2003 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 22:
-
-/* Line 1806 of yacc.c  */
-#line 232 "lwin_wkt_parse.y"
+#line 242 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, NULL, NULL); WKT_ERROR(); }
+#line 2009 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 23:
-
-/* Line 1806 of yacc.c  */
-#line 236 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 246 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2015 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 24:
-
-/* Line 1806 of yacc.c  */
-#line 238 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 248 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2021 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 25:
-
-/* Line 1806 of yacc.c  */
-#line 242 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 252 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2027 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 26:
-
-/* Line 1806 of yacc.c  */
-#line 244 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 254 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2033 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 27:
-
-/* Line 1806 of yacc.c  */
-#line 246 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 256 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2039 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 28:
-
-/* Line 1806 of yacc.c  */
-#line 248 "lwin_wkt_parse.y"
+#line 258 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, NULL, NULL); WKT_ERROR(); }
+#line 2045 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 29:
-
-/* Line 1806 of yacc.c  */
-#line 252 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 262 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2051 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 30:
-
-/* Line 1806 of yacc.c  */
-#line 254 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 264 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2057 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 31:
-
-/* Line 1806 of yacc.c  */
-#line 256 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 266 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2063 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 32:
-
-/* Line 1806 of yacc.c  */
-#line 258 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 268 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2069 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 33:
-
-/* Line 1806 of yacc.c  */
-#line 260 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 270 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2075 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 34:
-
-/* Line 1806 of yacc.c  */
-#line 262 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 272 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2081 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 35:
-
-/* Line 1806 of yacc.c  */
-#line 266 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 276 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2087 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 36:
-
-/* Line 1806 of yacc.c  */
-#line 268 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 278 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2093 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 37:
-
-/* Line 1806 of yacc.c  */
-#line 270 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 280 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2099 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 38:
-
-/* Line 1806 of yacc.c  */
-#line 272 "lwin_wkt_parse.y"
+#line 282 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, NULL, NULL); WKT_ERROR(); }
+#line 2105 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 39:
-
-/* Line 1806 of yacc.c  */
-#line 276 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 286 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2111 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 40:
-
-/* Line 1806 of yacc.c  */
-#line 278 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 288 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2117 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 41:
-
-/* Line 1806 of yacc.c  */
-#line 280 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 290 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2123 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 42:
-
-/* Line 1806 of yacc.c  */
-#line 282 "lwin_wkt_parse.y"
+#line 292 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, NULL, NULL); WKT_ERROR(); }
+#line 2129 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 43:
-
-/* Line 1806 of yacc.c  */
-#line 286 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 296 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2135 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 44:
-
-/* Line 1806 of yacc.c  */
-#line 288 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 298 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2141 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 45:
-
-/* Line 1806 of yacc.c  */
-#line 290 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 300 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2147 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 46:
-
-/* Line 1806 of yacc.c  */
-#line 292 "lwin_wkt_parse.y"
+#line 302 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, NULL, NULL); WKT_ERROR(); }
+#line 2153 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 47:
-
-/* Line 1806 of yacc.c  */
-#line 296 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 306 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2159 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 48:
-
-/* Line 1806 of yacc.c  */
-#line 298 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 308 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2165 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 49:
-
-/* Line 1806 of yacc.c  */
-#line 302 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 312 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2171 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 50:
-
-/* Line 1806 of yacc.c  */
-#line 304 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 314 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2177 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 51:
-
-/* Line 1806 of yacc.c  */
-#line 308 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 318 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2183 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 52:
-
-/* Line 1806 of yacc.c  */
-#line 310 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 320 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2189 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 53:
-
-/* Line 1806 of yacc.c  */
-#line 312 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 322 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2195 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 54:
-
-/* Line 1806 of yacc.c  */
-#line 314 "lwin_wkt_parse.y"
+#line 324 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, NULL); WKT_ERROR(); }
+#line 2201 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 55:
-
-/* Line 1806 of yacc.c  */
-#line 318 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(2) - (3)].geometryvalue); }
+#line 328 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[-1].geometryvalue); }
+#line 2207 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 56:
-
-/* Line 1806 of yacc.c  */
-#line 320 "lwin_wkt_parse.y"
+#line 330 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, NULL); WKT_ERROR(); }
+#line 2213 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 57:
-
-/* Line 1806 of yacc.c  */
-#line 323 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(2) - (3)].geometryvalue); }
+#line 333 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[-1].geometryvalue); }
+#line 2219 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 58:
-
-/* Line 1806 of yacc.c  */
-#line 327 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 337 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2225 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 59:
-
-/* Line 1806 of yacc.c  */
-#line 329 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 339 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2231 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 60:
-
-/* Line 1806 of yacc.c  */
-#line 331 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize(NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 341 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2237 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 61:
-
-/* Line 1806 of yacc.c  */
-#line 333 "lwin_wkt_parse.y"
+#line 343 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize(NULL, NULL); WKT_ERROR(); }
+#line 2243 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 62:
-
-/* Line 1806 of yacc.c  */
-#line 337 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_curvepolygon_add_ring((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 347 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_curvepolygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2249 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 63:
-
-/* Line 1806 of yacc.c  */
-#line 339 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_curvepolygon_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 349 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_curvepolygon_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2255 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 64:
-
-/* Line 1806 of yacc.c  */
-#line 342 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 352 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 2261 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 65:
-
-/* Line 1806 of yacc.c  */
-#line 343 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 353 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 2267 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 66:
-
-/* Line 1806 of yacc.c  */
-#line 344 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 354 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 2273 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 67:
-
-/* Line 1806 of yacc.c  */
-#line 345 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = (yyvsp[(1) - (1)].geometryvalue); }
+#line 355 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
+#line 2279 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 68:
-
-/* Line 1806 of yacc.c  */
-#line 349 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].ptarrayvalue),'Z'); WKT_ERROR(); }
+#line 359 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].ptarrayvalue),'Z'); WKT_ERROR(); }
+#line 2285 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 69:
-
-/* Line 1806 of yacc.c  */
-#line 351 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[(1) - (1)].ptarrayvalue),'Z'); WKT_ERROR(); }
+#line 361 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[0].ptarrayvalue),'Z'); WKT_ERROR(); }
+#line 2291 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 70:
-
-/* Line 1806 of yacc.c  */
-#line 355 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].ptarrayvalue),'2'); WKT_ERROR(); }
+#line 365 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].ptarrayvalue),'2'); WKT_ERROR(); }
+#line 2297 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 71:
-
-/* Line 1806 of yacc.c  */
-#line 357 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[(1) - (1)].ptarrayvalue),'2'); WKT_ERROR(); }
+#line 367 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[0].ptarrayvalue),'2'); WKT_ERROR(); }
+#line 2303 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 72:
-
-/* Line 1806 of yacc.c  */
-#line 360 "lwin_wkt_parse.y"
-    { (yyval.ptarrayvalue) = (yyvsp[(2) - (3)].ptarrayvalue); }
+#line 370 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.ptarrayvalue) = (yyvsp[-1].ptarrayvalue); }
+#line 2309 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 73:
-
-/* Line 1806 of yacc.c  */
-#line 363 "lwin_wkt_parse.y"
-    { (yyval.ptarrayvalue) = (yyvsp[(2) - (3)].ptarrayvalue); }
+#line 373 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.ptarrayvalue) = (yyvsp[-1].ptarrayvalue); }
+#line 2315 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 74:
-
-/* Line 1806 of yacc.c  */
-#line 367 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 377 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2321 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 75:
-
-/* Line 1806 of yacc.c  */
-#line 369 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 379 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2327 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 76:
-
-/* Line 1806 of yacc.c  */
-#line 371 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 381 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2333 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 77:
-
-/* Line 1806 of yacc.c  */
-#line 373 "lwin_wkt_parse.y"
+#line 383 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, NULL, NULL); WKT_ERROR(); }
+#line 2339 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 78:
-
-/* Line 1806 of yacc.c  */
-#line 377 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 387 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2345 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 79:
-
-/* Line 1806 of yacc.c  */
-#line 379 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 389 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2351 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 80:
-
-/* Line 1806 of yacc.c  */
-#line 381 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 391 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2357 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 81:
-
-/* Line 1806 of yacc.c  */
-#line 383 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 393 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2363 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 82:
-
-/* Line 1806 of yacc.c  */
-#line 385 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 395 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2369 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 83:
-
-/* Line 1806 of yacc.c  */
-#line 387 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 397 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2375 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 84:
-
-/* Line 1806 of yacc.c  */
-#line 391 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 401 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2381 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 85:
-
-/* Line 1806 of yacc.c  */
-#line 393 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 403 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2387 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 86:
-
-/* Line 1806 of yacc.c  */
-#line 395 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 405 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2393 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 87:
-
-/* Line 1806 of yacc.c  */
-#line 397 "lwin_wkt_parse.y"
+#line 407 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, NULL, NULL); WKT_ERROR(); }
+#line 2399 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 88:
-
-/* Line 1806 of yacc.c  */
-#line 401 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 411 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2405 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 89:
-
-/* Line 1806 of yacc.c  */
-#line 403 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 413 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2411 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 90:
-
-/* Line 1806 of yacc.c  */
-#line 405 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 415 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2417 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 91:
-
-/* Line 1806 of yacc.c  */
-#line 407 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 417 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2423 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 92:
-
-/* Line 1806 of yacc.c  */
-#line 409 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 419 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2429 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 93:
-
-/* Line 1806 of yacc.c  */
-#line 411 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 421 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2435 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 94:
-
-/* Line 1806 of yacc.c  */
-#line 413 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 423 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2441 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 95:
-
-/* Line 1806 of yacc.c  */
-#line 415 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 425 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2447 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 96:
-
-/* Line 1806 of yacc.c  */
-#line 419 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 429 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2453 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 97:
-
-/* Line 1806 of yacc.c  */
-#line 421 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 431 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2459 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 98:
-
-/* Line 1806 of yacc.c  */
-#line 423 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 433 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2465 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 99:
-
-/* Line 1806 of yacc.c  */
-#line 425 "lwin_wkt_parse.y"
+#line 435 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, NULL, NULL); WKT_ERROR(); }
+#line 2471 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 100:
-
-/* Line 1806 of yacc.c  */
-#line 429 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 439 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2477 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 101:
-
-/* Line 1806 of yacc.c  */
-#line 431 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 441 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2483 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 102:
-
-/* Line 1806 of yacc.c  */
-#line 435 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[(3) - (4)].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 445 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 2489 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 103:
-
-/* Line 1806 of yacc.c  */
-#line 437 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[(4) - (5)].ptarrayvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 447 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2495 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 104:
-
-/* Line 1806 of yacc.c  */
-#line 439 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_circularstring_new(NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 449 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_circularstring_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2501 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 105:
-
-/* Line 1806 of yacc.c  */
-#line 441 "lwin_wkt_parse.y"
+#line 451 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_circularstring_new(NULL, NULL); WKT_ERROR(); }
+#line 2507 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 106:
-
-/* Line 1806 of yacc.c  */
-#line 445 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[(3) - (4)].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 455 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 2513 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 107:
-
-/* Line 1806 of yacc.c  */
-#line 447 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[(4) - (5)].ptarrayvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 457 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2519 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 108:
-
-/* Line 1806 of yacc.c  */
-#line 449 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 459 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2525 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 109:
-
-/* Line 1806 of yacc.c  */
-#line 451 "lwin_wkt_parse.y"
+#line 461 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, NULL); WKT_ERROR(); }
+#line 2531 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 110:
-
-/* Line 1806 of yacc.c  */
-#line 455 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[(2) - (3)].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 465 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 2537 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 111:
-
-/* Line 1806 of yacc.c  */
-#line 457 "lwin_wkt_parse.y"
+#line 467 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, NULL); WKT_ERROR(); }
+#line 2543 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 112:
-
-/* Line 1806 of yacc.c  */
-#line 461 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 471 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2549 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 113:
-
-/* Line 1806 of yacc.c  */
-#line 463 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 473 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2555 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 114:
-
-/* Line 1806 of yacc.c  */
-#line 467 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[(4) - (6)].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 477 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 2561 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 115:
-
-/* Line 1806 of yacc.c  */
-#line 469 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[(5) - (7)].ptarrayvalue), (yyvsp[(2) - (7)].stringvalue)); WKT_ERROR(); }
+#line 479 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), (yyvsp[-5].stringvalue)); WKT_ERROR(); }
+#line 2567 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 116:
-
-/* Line 1806 of yacc.c  */
-#line 471 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_triangle_new(NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 481 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_triangle_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2573 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 117:
-
-/* Line 1806 of yacc.c  */
-#line 473 "lwin_wkt_parse.y"
+#line 483 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_triangle_new(NULL, NULL); WKT_ERROR(); }
+#line 2579 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 118:
-
-/* Line 1806 of yacc.c  */
-#line 477 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[(3) - (5)].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 487 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 2585 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 119:
-
-/* Line 1806 of yacc.c  */
-#line 481 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[(3) - (4)].geometryvalue), NULL); WKT_ERROR(); }
+#line 491 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
+#line 2591 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 120:
-
-/* Line 1806 of yacc.c  */
-#line 483 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[(4) - (5)].geometryvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 493 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2597 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 121:
-
-/* Line 1806 of yacc.c  */
-#line 485 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 495 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2603 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 122:
-
-/* Line 1806 of yacc.c  */
-#line 487 "lwin_wkt_parse.y"
+#line 497 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, NULL, NULL); WKT_ERROR(); }
+#line 2609 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 123:
-
-/* Line 1806 of yacc.c  */
-#line 491 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[(1) - (3)].geometryvalue),(yyvsp[(3) - (3)].geometryvalue)); WKT_ERROR(); }
+#line 501 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2615 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 124:
-
-/* Line 1806 of yacc.c  */
-#line 493 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[(1) - (1)].geometryvalue)); WKT_ERROR(); }
+#line 503 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2621 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 125:
-
-/* Line 1806 of yacc.c  */
-#line 497 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[(1) - (1)].coordinatevalue)),NULL); WKT_ERROR(); }
+#line 507 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[0].coordinatevalue)),NULL); WKT_ERROR(); }
+#line 2627 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 126:
-
-/* Line 1806 of yacc.c  */
-#line 499 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[(2) - (3)].coordinatevalue)),NULL); WKT_ERROR(); }
+#line 509 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[-1].coordinatevalue)),NULL); WKT_ERROR(); }
+#line 2633 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 127:
-
-/* Line 1806 of yacc.c  */
-#line 501 "lwin_wkt_parse.y"
+#line 511 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_point_new(NULL, NULL); WKT_ERROR(); }
+#line 2639 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 128:
-
-/* Line 1806 of yacc.c  */
-#line 505 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[(3) - (4)].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 515 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); }
+#line 2645 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 129:
-
-/* Line 1806 of yacc.c  */
-#line 507 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[(4) - (5)].ptarrayvalue), (yyvsp[(2) - (5)].stringvalue)); WKT_ERROR(); }
+#line 517 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
+#line 2651 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 130:
-
-/* Line 1806 of yacc.c  */
-#line 509 "lwin_wkt_parse.y"
-    { (yyval.geometryvalue) = wkt_parser_point_new(NULL, (yyvsp[(2) - (3)].stringvalue)); WKT_ERROR(); }
+#line 519 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_point_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
+#line 2657 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 131:
-
-/* Line 1806 of yacc.c  */
-#line 511 "lwin_wkt_parse.y"
+#line 521 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_point_new(NULL,NULL); WKT_ERROR(); }
+#line 2663 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 132:
-
-/* Line 1806 of yacc.c  */
-#line 515 "lwin_wkt_parse.y"
-    { (yyval.ptarrayvalue) = wkt_parser_ptarray_add_coord((yyvsp[(1) - (3)].ptarrayvalue), (yyvsp[(3) - (3)].coordinatevalue)); WKT_ERROR(); }
+#line 525 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.ptarrayvalue) = wkt_parser_ptarray_add_coord((yyvsp[-2].ptarrayvalue), (yyvsp[0].coordinatevalue)); WKT_ERROR(); }
+#line 2669 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 133:
-
-/* Line 1806 of yacc.c  */
-#line 517 "lwin_wkt_parse.y"
-    { (yyval.ptarrayvalue) = wkt_parser_ptarray_new((yyvsp[(1) - (1)].coordinatevalue)); WKT_ERROR(); }
+#line 527 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.ptarrayvalue) = wkt_parser_ptarray_new((yyvsp[0].coordinatevalue)); WKT_ERROR(); }
+#line 2675 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 134:
-
-/* Line 1806 of yacc.c  */
-#line 521 "lwin_wkt_parse.y"
-    { (yyval.coordinatevalue) = wkt_parser_coord_2((yyvsp[(1) - (2)].doublevalue), (yyvsp[(2) - (2)].doublevalue)); WKT_ERROR(); }
+#line 531 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.coordinatevalue) = wkt_parser_coord_2((yyvsp[-1].doublevalue), (yyvsp[0].doublevalue)); WKT_ERROR(); }
+#line 2681 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 135:
-
-/* Line 1806 of yacc.c  */
-#line 523 "lwin_wkt_parse.y"
-    { (yyval.coordinatevalue) = wkt_parser_coord_3((yyvsp[(1) - (3)].doublevalue), (yyvsp[(2) - (3)].doublevalue), (yyvsp[(3) - (3)].doublevalue)); WKT_ERROR(); }
+#line 533 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.coordinatevalue) = wkt_parser_coord_3((yyvsp[-2].doublevalue), (yyvsp[-1].doublevalue), (yyvsp[0].doublevalue)); WKT_ERROR(); }
+#line 2687 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 136:
-
-/* Line 1806 of yacc.c  */
-#line 525 "lwin_wkt_parse.y"
-    { (yyval.coordinatevalue) = wkt_parser_coord_4((yyvsp[(1) - (4)].doublevalue), (yyvsp[(2) - (4)].doublevalue), (yyvsp[(3) - (4)].doublevalue), (yyvsp[(4) - (4)].doublevalue)); WKT_ERROR(); }
+#line 535 "lwin_wkt_parse.y" /* yacc.c:1646  */
+    { (yyval.coordinatevalue) = wkt_parser_coord_4((yyvsp[-3].doublevalue), (yyvsp[-2].doublevalue), (yyvsp[-1].doublevalue), (yyvsp[0].doublevalue)); WKT_ERROR(); }
+#line 2693 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
 
-
-/* Line 1806 of yacc.c  */
-#line 3081 "lwin_wkt_parse.c"
+#line 2697 "lwin_wkt_parse.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -3100,7 +2716,7 @@ yyreduce:
   *++yyvsp = yyval;
   *++yylsp = yyloc;
 
-  /* Now `shift' the result of the reduction.  Determine what state
+  /* Now 'shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
 
@@ -3115,9 +2731,9 @@ yyreduce:
   goto yynewstate;
 
 
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
+/*--------------------------------------.
+| yyerrlab -- here on detecting error.  |
+`--------------------------------------*/
 yyerrlab:
   /* Make sure we have latest lookahead translation.  See comments at
      user semantic actions for why this is necessary.  */
@@ -3168,20 +2784,20 @@ yyerrlab:
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
-	 error, discard it.  */
+         error, discard it.  */
 
       if (yychar <= YYEOF)
-	{
-	  /* Return failure if at end of input.  */
-	  if (yychar == YYEOF)
-	    YYABORT;
-	}
+        {
+          /* Return failure if at end of input.  */
+          if (yychar == YYEOF)
+            YYABORT;
+        }
       else
-	{
-	  yydestruct ("Error: discarding",
-		      yytoken, &yylval, &yylloc);
-	  yychar = YYEMPTY;
-	}
+        {
+          yydestruct ("Error: discarding",
+                      yytoken, &yylval, &yylloc);
+          yychar = YYEMPTY;
+        }
     }
 
   /* Else will try to reuse lookahead token after shifting the error
@@ -3201,7 +2817,7 @@ yyerrorlab:
      goto yyerrorlab;
 
   yyerror_range[1] = yylsp[1-yylen];
-  /* Do not reclaim the symbols of the rule which action triggered
+  /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
   yylen = 0;
@@ -3214,35 +2830,37 @@ yyerrorlab:
 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
 `-------------------------------------------------------------*/
 yyerrlab1:
-  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
   for (;;)
     {
       yyn = yypact[yystate];
       if (!yypact_value_is_default (yyn))
-	{
-	  yyn += YYTERROR;
-	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-	    {
-	      yyn = yytable[yyn];
-	      if (0 < yyn)
-		break;
-	    }
-	}
+        {
+          yyn += YYTERROR;
+          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+            {
+              yyn = yytable[yyn];
+              if (0 < yyn)
+                break;
+            }
+        }
 
       /* Pop the current state because it cannot handle the error token.  */
       if (yyssp == yyss)
-	YYABORT;
+        YYABORT;
 
       yyerror_range[1] = *yylsp;
       yydestruct ("Error: popping",
-		  yystos[yystate], yyvsp, yylsp);
+                  yystos[yystate], yyvsp, yylsp);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
     }
 
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
 
   yyerror_range[2] = yylloc;
   /* Using YYLLOC is tempting, but would change the location of
@@ -3271,7 +2889,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#if !defined(yyoverflow) || YYERROR_VERBOSE
+#if !defined yyoverflow || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -3290,14 +2908,14 @@ yyreturn:
       yydestruct ("Cleanup: discarding lookahead",
                   yytoken, &yylval, &yylloc);
     }
-  /* Do not reclaim the symbols of the rule which action triggered
+  /* Do not reclaim the symbols of the rule whose action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
   YY_STACK_PRINT (yyss, yyssp);
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-		  yystos[*yyssp], yyvsp, yylsp);
+                  yystos[*yyssp], yyvsp, yylsp);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
@@ -3308,14 +2926,8 @@ yyreturn:
   if (yymsg != yymsgbuf)
     YYSTACK_FREE (yymsg);
 #endif
-  /* Make sure YYID is used.  */
-  return YYID (yyresult);
+  return yyresult;
 }
-
-
-
-/* Line 2067 of yacc.c  */
-#line 527 "lwin_wkt_parse.y"
-
+#line 537 "lwin_wkt_parse.y" /* yacc.c:1906  */
 
 
diff --git a/liblwgeom/lwin_wkt_parse.h b/liblwgeom/lwin_wkt_parse.h
index d294fb8..acb2560 100644
--- a/liblwgeom/lwin_wkt_parse.h
+++ b/liblwgeom/lwin_wkt_parse.h
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
+/* A Bison parser, made by GNU Bison 3.0.4.  */
 
 /* Bison interface for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-   
+
+   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
@@ -26,41 +26,49 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-   
+
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
+#ifndef YY_WKT_YY_LWIN_WKT_PARSE_H_INCLUDED
+# define YY_WKT_YY_LWIN_WKT_PARSE_H_INCLUDED
+/* Debug traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int wkt_yydebug;
+#endif
 
-/* Tokens.  */
+/* Token type.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     POINT_TOK = 258,
-     LINESTRING_TOK = 259,
-     POLYGON_TOK = 260,
-     MPOINT_TOK = 261,
-     MLINESTRING_TOK = 262,
-     MPOLYGON_TOK = 263,
-     MSURFACE_TOK = 264,
-     MCURVE_TOK = 265,
-     CURVEPOLYGON_TOK = 266,
-     COMPOUNDCURVE_TOK = 267,
-     CIRCULARSTRING_TOK = 268,
-     COLLECTION_TOK = 269,
-     RBRACKET_TOK = 270,
-     LBRACKET_TOK = 271,
-     COMMA_TOK = 272,
-     EMPTY_TOK = 273,
-     SEMICOLON_TOK = 274,
-     TRIANGLE_TOK = 275,
-     TIN_TOK = 276,
-     POLYHEDRALSURFACE_TOK = 277,
-     DOUBLE_TOK = 278,
-     DIMENSIONALITY_TOK = 279,
-     SRID_TOK = 280
-   };
+  enum yytokentype
+  {
+    POINT_TOK = 258,
+    LINESTRING_TOK = 259,
+    POLYGON_TOK = 260,
+    MPOINT_TOK = 261,
+    MLINESTRING_TOK = 262,
+    MPOLYGON_TOK = 263,
+    MSURFACE_TOK = 264,
+    MCURVE_TOK = 265,
+    CURVEPOLYGON_TOK = 266,
+    COMPOUNDCURVE_TOK = 267,
+    CIRCULARSTRING_TOK = 268,
+    COLLECTION_TOK = 269,
+    RBRACKET_TOK = 270,
+    LBRACKET_TOK = 271,
+    COMMA_TOK = 272,
+    EMPTY_TOK = 273,
+    SEMICOLON_TOK = 274,
+    TRIANGLE_TOK = 275,
+    TIN_TOK = 276,
+    POLYHEDRALSURFACE_TOK = 277,
+    DOUBLE_TOK = 278,
+    DIMENSIONALITY_TOK = 279,
+    SRID_TOK = 280
+  };
 #endif
 /* Tokens.  */
 #define POINT_TOK 258
@@ -87,15 +95,12 @@
 #define DIMENSIONALITY_TOK 279
 #define SRID_TOK 280
 
-
-
-
+/* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-{
 
-/* Line 2068 of yacc.c  */
-#line 98 "lwin_wkt_parse.y"
+union YYSTYPE
+{
+#line 108 "lwin_wkt_parse.y" /* yacc.c:1909  */
 
 	int integervalue;
 	double doublevalue;
@@ -104,30 +109,31 @@ typedef union YYSTYPE
 	POINT coordinatevalue;
 	POINTARRAY *ptarrayvalue;
 
+#line 113 "lwin_wkt_parse.h" /* yacc.c:1909  */
+};
 
-
-/* Line 2068 of yacc.c  */
-#line 111 "lwin_wkt_parse.h"
-} YYSTYPE;
+typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
-extern YYSTYPE wkt_yylval;
-
+/* Location type.  */
 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
-typedef struct YYLTYPE
+typedef struct YYLTYPE YYLTYPE;
+struct YYLTYPE
 {
   int first_line;
   int first_column;
   int last_line;
   int last_column;
-} YYLTYPE;
-# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
+};
 # define YYLTYPE_IS_DECLARED 1
 # define YYLTYPE_IS_TRIVIAL 1
 #endif
 
+
+extern YYSTYPE wkt_yylval;
 extern YYLTYPE wkt_yylloc;
+int wkt_yyparse (void);
 
+#endif /* !YY_WKT_YY_LWIN_WKT_PARSE_H_INCLUDED  */
diff --git a/liblwgeom/lwin_wkt_parse.y b/liblwgeom/lwin_wkt_parse.y
index 9a937d1..1ddb06c 100644
--- a/liblwgeom/lwin_wkt_parse.y
+++ b/liblwgeom/lwin_wkt_parse.y
@@ -50,7 +50,15 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars
 	int parse_rv = 0;
 
 	/* Clean up our global parser result. */
-    lwgeom_parser_result_init(&global_parser_result);
+	lwgeom_parser_result_init(&global_parser_result);
+	/* Work-around possible bug in GNU Bison 3.0.2 resulting in wkt_yylloc
+	 * members not being initialized on yyparse() as documented here:
+	 * https://www.gnu.org/software/bison/manual/html_node/Location-Type.html
+	 * See discussion here:
+	 * http://lists.osgeo.org/pipermail/postgis-devel/2014-September/024506.html
+	 */
+	wkt_yylloc.last_column = wkt_yylloc.last_line = \
+	wkt_yylloc.first_column = wkt_yylloc.first_line = 1;
 
 	/* Set the input text string, and parse checks. */
 	global_parser_result.wkinput = wktstr;
@@ -78,11 +86,13 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars
 		
 		/* Copy the global values into the return pointer */
 		*parser_result = global_parser_result;
+                wkt_yylex_destroy();
 		return LW_FAILURE;
 	}
 	
 	/* Copy the global value into the return pointer */
 	*parser_result = global_parser_result;
+        wkt_yylex_destroy();
 	return LW_SUCCESS;
 }
 
@@ -93,7 +103,7 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars
 
 %locations
 %error-verbose
-%name-prefix="wkt_yy"
+%name-prefix "wkt_yy"
 
 %union {
 	int integervalue;
@@ -380,11 +390,11 @@ compound_list :
 	compound_list COMMA_TOK linestring_untagged
 		{ $$ = wkt_parser_compound_add_geom($1,$3); WKT_ERROR(); } |
 	circularstring
-		{ $$ = wkt_parser_collection_new($1); WKT_ERROR(); } |
+		{ $$ = wkt_parser_compound_new($1); WKT_ERROR(); } |
 	linestring
-		{ $$ = wkt_parser_collection_new($1); WKT_ERROR(); } |
+		{ $$ = wkt_parser_compound_new($1); WKT_ERROR(); } |
 	linestring_untagged
-		{ $$ = wkt_parser_collection_new($1); WKT_ERROR(); } ;
+		{ $$ = wkt_parser_compound_new($1); WKT_ERROR(); } ;
 
 multicurve :
 	MCURVE_TOK LBRACKET_TOK curve_list RBRACKET_TOK
diff --git a/liblwgeom/lwline.c b/liblwgeom/lwline.c
index 0dddaa3..cfd4d3f 100644
--- a/liblwgeom/lwline.c
+++ b/liblwgeom/lwline.c
@@ -133,8 +133,9 @@ lwline_reverse(LWLINE *line)
 LWLINE *
 lwline_segmentize2d(LWLINE *line, double dist)
 {
-	return lwline_construct(line->srid, NULL,
-	                        ptarray_segmentize2d(line->points, dist));
+	POINTARRAY *segmentized = ptarray_segmentize2d(line->points, dist);
+	if ( ! segmentized ) return NULL;
+	return lwline_construct(line->srid, NULL, segmentized);
 }
 
 /* check coordinate equality  */
@@ -257,7 +258,7 @@ lwline_from_ptarray(int srid, uint32_t npoints, LWPOINT **points)
  * Construct a LWLINE from a LWMPOINT
  */
 LWLINE *
-lwline_from_lwmpoint(int srid, LWMPOINT *mpoint)
+lwline_from_lwmpoint(int srid, const LWMPOINT *mpoint)
 {
 	uint32_t i;
 	POINTARRAY *pa = NULL;
@@ -291,7 +292,7 @@ lwline_from_lwmpoint(int srid, LWMPOINT *mpoint)
 * Returns NULL if the geometry is empty or the index invalid.
 */
 LWPOINT*
-lwline_get_lwpoint(LWLINE *line, int where)
+lwline_get_lwpoint(const LWLINE *line, int where)
 {
 	POINT4D pt;
 	LWPOINT *lwpoint;
@@ -406,6 +407,9 @@ lwline_measured_from_lwline(const LWLINE *lwline, double m_start, double m_end)
 		length_so_far += distance2d_pt_pt(&a, &b);
 		if ( length > 0.0 )
 			m = m_start + m_range * length_so_far / length;
+		/* #3172, support (valid) zero-length inputs */
+		else if ( length == 0.0 && npoints > 1 )
+			m = m_start + m_range * i / (npoints-1);
 		else
 			m = 0.0;
 		q.x = p2.x;
@@ -420,11 +424,11 @@ lwline_measured_from_lwline(const LWLINE *lwline, double m_start, double m_end)
 }
 
 LWGEOM*
-lwline_remove_repeated_points(LWLINE *lwline)
+lwline_remove_repeated_points(LWLINE *lwline, double tolerance)
 {
-	POINTARRAY* npts = ptarray_remove_repeated_points(lwline->points);
+	POINTARRAY* npts = ptarray_remove_repeated_points_minpoints(lwline->points, tolerance, 2);
 
-	LWDEBUGF(3, "lwline_remove_repeated_points: npts %p", npts);
+	LWDEBUGF(3, "%s: npts %p", __func__, npts);
 
 	return (LWGEOM*)lwline_construct(lwline->srid,
 	                                 lwline->bbox ? gbox_copy(lwline->bbox) : 0,
@@ -440,6 +444,34 @@ lwline_is_closed(const LWLINE *line)
 	return ptarray_is_closed_2d(line->points);
 }
 
+int
+lwline_is_trajectory(const LWLINE *line)
+{
+  POINT3DM p;
+  int i, n;
+  double m = -1 * FLT_MAX;
+
+  if ( ! FLAGS_GET_M(line->flags) ) {
+    lwnotice("Line does not have M dimension");
+    return LW_FALSE;
+  }
+
+  n = line->points->npoints;
+  if ( n < 2 ) return LW_TRUE; /* empty or single-point are "good" */
+
+  for (i=0; i<n; ++i) {
+    getPoint3dm_p(line->points, i, &p);
+    if ( p.m <= m ) {
+      lwnotice("Measure of vertex %d (%g) not bigger than measure of vertex %d (%g)",
+        i, p.m, i-1, m);
+      return LW_FALSE;
+    }
+    m = p.m;
+  }
+
+  return LW_TRUE;
+}
+
 
 LWLINE*
 lwline_force_dims(const LWLINE *line, int hasz, int hasm)
@@ -477,18 +509,40 @@ int lwline_count_vertices(LWLINE *line)
 	return line->points->npoints;
 }
 
-LWLINE* lwline_simplify(const LWLINE *iline, double dist)
+LWLINE* lwline_simplify(const LWLINE *iline, double dist, int preserve_collapsed)
 {
+	static const int minvertices = 2; /* TODO: allow setting this */
 	LWLINE *oline;
+	POINTARRAY *pa;
 
 	LWDEBUG(2, "function called");
 
 	/* Skip empty case */
 	if( lwline_is_empty(iline) )
-		return lwline_clone(iline);
-		
-	static const int minvertices = 0; /* TODO: allow setting this */
-	oline = lwline_construct(iline->srid, NULL, ptarray_simplify(iline->points, dist, minvertices));
+		return NULL;
+
+	pa = ptarray_simplify(iline->points, dist, minvertices);
+	if ( ! pa ) return NULL;
+
+	/* Make sure single-point collapses have two points */
+	if ( pa->npoints == 1 )
+	{
+		/* Make sure single-point collapses have two points */
+		if ( preserve_collapsed )
+		{
+			POINT4D pt;
+			getPoint4d_p(pa, 0, &pt);		
+			ptarray_append_point(pa, &pt, LW_TRUE);
+		}
+		/* Return null for collapse */
+		else 
+		{
+			ptarray_free(pa);
+			return NULL;
+		}
+	}
+
+	oline = lwline_construct(iline->srid, NULL, pa);
 	oline->type = iline->type;
 	return oline;
 }
@@ -506,3 +560,22 @@ double lwline_length_2d(const LWLINE *line)
 		return 0.0;
 	return ptarray_length_2d(line->points);
 }
+
+
+
+LWLINE* lwline_grid(const LWLINE *line, const gridspec *grid)
+{
+	LWLINE *oline;
+	POINTARRAY *opa;
+
+	opa = ptarray_grid(line->points, grid);
+
+	/* Skip line3d with less then 2 points */
+	if ( opa->npoints < 2 ) return NULL;
+
+	/* TODO: grid bounding box... */
+	oline = lwline_construct(line->srid, NULL, opa);
+
+	return oline;
+}
+
diff --git a/liblwgeom/lwlinearreferencing.c b/liblwgeom/lwlinearreferencing.c
index 73f95ac..b702292 100644
--- a/liblwgeom/lwlinearreferencing.c
+++ b/liblwgeom/lwlinearreferencing.c
@@ -1,9 +1,10 @@
 /**********************************************************************
- * $Id$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
- * Copyright 2011 Paul Ramsey
+ *
+ * Copyright (C) 2015 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2011 Paul Ramsey
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
@@ -12,9 +13,9 @@
 
 #include "liblwgeom_internal.h"
 #include "lwgeom_log.h"
+#include "measures3d.h"
 
-
-static int 
+static int
 segment_locate_along(const POINT4D *p1, const POINT4D *p2, double m, double offset, POINT4D *pn)
 {
 	double m1 = p1->m;
@@ -27,12 +28,19 @@ segment_locate_along(const POINT4D *p1, const POINT4D *p2, double m, double offs
 		return LW_FALSE;
 	}
 
-	/* We'll just can out on this degenerate case for now. 
-	   Correct behavior is probably an mprop of 0.5? 
-	   Still would have to deal with case of true p1==p2. */
-	if( m1 == m2 ) 
+	if( m1 == m2 )
 	{
+		/* Degenerate case: same M on both points.
+		   If they are the same point we just return one of them. */
+		if ( p4d_same(p1,p2) )
+		{
+			*pn = *p1;
+			return LW_TRUE;
+		}
+		/* If the points are different we can out.
+		   Correct behavior is probably an mprop of 0.5? */
 		lwerror("Zero measure-length line encountered!");
+		return LW_FALSE;
 	}
 
 	/* M is in range, new point to be generated. */
@@ -50,7 +58,7 @@ segment_locate_along(const POINT4D *p1, const POINT4D *p2, double m, double offs
 		pn->y += cos(theta) * offset;
 	}
 
-	return LW_TRUE;	
+	return LW_TRUE;
 }
 
 
@@ -60,10 +68,10 @@ ptarray_locate_along(const POINTARRAY *pa, double m, double offset)
 	int i;
 	POINT4D p1, p2, pn;
 	POINTARRAY *dpa = NULL;
-		
+
 	/* Can't do anything with degenerate point arrays */
 	if ( ! pa || pa->npoints < 2 ) return NULL;
-	
+
 	/* Walk through each segment in the point array */
 	for ( i = 1; i < pa->npoints; i++ )
 	{
@@ -80,7 +88,7 @@ ptarray_locate_along(const POINTARRAY *pa, double m, double offset)
 
 		/* Add our new point to the array */
 		ptarray_append_point(dpa, &pn, 0);
-	}	
+	}
 
 	return dpa;
 }
@@ -95,7 +103,7 @@ lwline_locate_along(const LWLINE *lwline, double m, double offset)
 
 	/* Return degenerates upwards */
 	if ( ! lwline ) return NULL;
-	
+
 	/* Create empty return shell */
 	srid = lwgeom_get_srid(lwg);
 	hasz = lwgeom_has_z(lwg);
@@ -106,7 +114,7 @@ lwline_locate_along(const LWLINE *lwline, double m, double offset)
 		/* Find points along */
 		opa = ptarray_locate_along(lwline->points, m, offset);
 	}
-	else 
+	else
 	{
 		LWLINE *lwline_measured = lwline_measured_from_lwline(lwline, 0.0, 1.0);
 		opa = ptarray_locate_along(lwline_measured->points, m, offset);
@@ -114,9 +122,9 @@ lwline_locate_along(const LWLINE *lwline, double m, double offset)
 	}
 
 	/* Return NULL as EMPTY */
-	if ( ! opa ) 
+	if ( ! opa )
 		return lwmpoint_construct_empty(srid, hasz, hasm);
-	
+
 	/* Convert pointarray into a multipoint */
 	mp = lwmpoint_construct(srid, opa);
 	ptarray_free(opa);
@@ -142,15 +150,16 @@ lwmline_locate_along(const LWMLINE *lwmline, double m, double offset)
 		LWMPOINT *along = lwline_locate_along(lwmline->geoms[i], m, offset);
 		if ( along )
 		{
-			if ( ! lwgeom_is_empty((LWGEOM*)along) ) 
+			if ( ! lwgeom_is_empty((LWGEOM*)along) )
 			{
-				for ( j = 0; j < along->ngeoms; j++ ) 
+				for ( j = 0; j < along->ngeoms; j++ )
 				{
 					lwmpoint_add_lwpoint(lwmpoint, along->geoms[j]);
 				}
 			}
 			/* Free the containing geometry, but leave the sub-geometries around */
-			along->ngeoms = 0; lwmpoint_free(along);
+			along->ngeoms = 0;
+			lwmpoint_free(along);
 		}
 	}
 	return lwmpoint;
@@ -175,7 +184,7 @@ lwmpoint_locate_along(const LWMPOINT *lwin, double m, double offset)
 	LWGEOM *lwg = lwmpoint_as_lwgeom(lwin);
 	LWMPOINT *lwout = NULL;
 	int i;
-	
+
 	/* Construct return */
 	lwout = lwmpoint_construct_empty(lwgeom_get_srid(lwg), lwgeom_has_z(lwg), lwgeom_has_m(lwg));
 
@@ -185,7 +194,7 @@ lwmpoint_locate_along(const LWMPOINT *lwin, double m, double offset)
 		if ( FP_EQUALS(m, point_m) )
 		{
 			lwmpoint_add_lwpoint(lwout, lwpoint_clone(lwin->geoms[i]));
-		}	
+		}
 	}
 
 	return lwout;
@@ -197,8 +206,8 @@ lwgeom_locate_along(const LWGEOM *lwin, double m, double offset)
 	if ( ! lwin ) return NULL;
 
 	if ( ! lwgeom_has_m(lwin) )
-		lwerror("Input geometry does not have a measure dimension");	
-	
+		lwerror("Input geometry does not have a measure dimension");
+
 	switch (lwin->type)
 	{
 	case POINTTYPE:
@@ -254,7 +263,7 @@ double lwpoint_get_ordinate(const POINT4D *p, char ordinate)
 
 }
 
-/** 
+/**
 * Given a point, ordinate number and value, set that ordinate on the
 * point.
 */
@@ -311,7 +320,7 @@ int point_interpolate(const POINT4D *p1, const POINT4D *p2, POINT4D *p, int hasz
 	}
 
 	if ( FP_MIN(p1_value, p2_value) > interpolation_value ||
-	     FP_MAX(p1_value, p2_value) < interpolation_value )
+	        FP_MAX(p1_value, p2_value) < interpolation_value )
 	{
 		lwerror("Cannot interpolate to a value (%g) not between the input points (%g, %g).", interpolation_value, p1_value, p2_value);
 		return 0;
@@ -361,19 +370,19 @@ lwpoint_clip_to_ordinate_range(const LWPOINT *point, char ordinate, double from,
 	/* Read Z/M info */
 	hasz = lwgeom_has_z(lwpoint_as_lwgeom(point));
 	hasm = lwgeom_has_m(lwpoint_as_lwgeom(point));
-	
+
 	/* Prepare return object */
 	lwgeom_out = lwcollection_construct_empty(MULTIPOINTTYPE, point->srid, hasz, hasm);
 
 	/* Test if ordinate is in range */
-	lwpoint_getPoint4d_p(point, &p4d);	
+	lwpoint_getPoint4d_p(point, &p4d);
 	ordinate_value = lwpoint_get_ordinate(&p4d, ordinate);
 	if ( from <= ordinate_value && to >= ordinate_value )
 	{
 		LWPOINT *lwp = lwpoint_clone(point);
 		lwcollection_add_lwgeom(lwgeom_out, lwpoint_as_lwgeom(lwp));
 	}
-	
+
 	/* Set the bbox, if necessary */
 	if ( lwgeom_out->bbox )
 	{
@@ -411,7 +420,7 @@ lwmpoint_clip_to_ordinate_range(const LWMPOINT *mpoint, char ordinate, double fr
 	/* Read Z/M info */
 	hasz = lwgeom_has_z(lwmpoint_as_lwgeom(mpoint));
 	hasm = lwgeom_has_m(lwmpoint_as_lwgeom(mpoint));
-	
+
 	/* Prepare return object */
 	lwgeom_out = lwcollection_construct_empty(MULTIPOINTTYPE, mpoint->srid, hasz, hasm);
 
@@ -420,17 +429,17 @@ lwmpoint_clip_to_ordinate_range(const LWMPOINT *mpoint, char ordinate, double fr
 	{
 		POINT4D p4d;
 		double ordinate_value;
-		
+
 		lwpoint_getPoint4d_p(mpoint->geoms[i], &p4d);
 		ordinate_value = lwpoint_get_ordinate(&p4d, ordinate);
-		
+
 		if ( from <= ordinate_value && to >= ordinate_value )
 		{
 			LWPOINT *lwp = lwpoint_clone(mpoint->geoms[i]);
 			lwcollection_add_lwgeom(lwgeom_out, lwpoint_as_lwgeom(lwp));
 		}
 	}
-	
+
 	/* Set the bbox, if necessary */
 	if ( lwgeom_out->bbox )
 	{
@@ -508,7 +517,7 @@ lwmline_clip_to_ordinate_range(const LWMLINE *mline, char ordinate, double from,
 			lwgeom_drop_bbox((LWGEOM*)lwgeom_out);
 			lwgeom_add_bbox((LWGEOM*)lwgeom_out);
 		}
-		
+
 		if ( ! homogeneous )
 		{
 			lwgeom_out->type = COLLECTIONTYPE;
@@ -699,7 +708,7 @@ lwline_clip_to_ordinate_range(const LWLINE *line, char ordinate, double from, do
 					LWPOINT *opoint = lwpoint_construct(line->srid, NULL, dp);
 					lwgeom_out->type = COLLECTIONTYPE;
 					lwgeom_out = lwcollection_add_lwgeom(lwgeom_out, lwpoint_as_lwgeom(opoint));
-					
+
 				}
 				else
 				{
@@ -758,41 +767,41 @@ lwgeom_clip_to_ordinate_range(const LWGEOM *lwin, char ordinate, double from, do
 	LWCOLLECTION *out_col;
 	LWCOLLECTION *out_offset;
 	int i;
-	
+
 	if ( ! lwin )
 		lwerror("lwgeom_clip_to_ordinate_range: null input geometry!");
-		
+
 	switch ( lwin->type )
 	{
-		case LINETYPE:
-			out_col = lwline_clip_to_ordinate_range((LWLINE*)lwin, ordinate, from, to);
-			break;
-		case MULTILINETYPE:
-			out_col = lwmline_clip_to_ordinate_range((LWMLINE*)lwin, ordinate, from, to);
-			break;
-		case MULTIPOINTTYPE:
-			out_col = lwmpoint_clip_to_ordinate_range((LWMPOINT*)lwin, ordinate, from, to);
-			break;
-		case POINTTYPE:
-			out_col = lwpoint_clip_to_ordinate_range((LWPOINT*)lwin, ordinate, from, to);
-			break;
-		default:
-			lwerror("This function does not accept %s geometries.", lwtype_name(lwin->type));
-			return NULL;;
+	case LINETYPE:
+		out_col = lwline_clip_to_ordinate_range((LWLINE*)lwin, ordinate, from, to);
+		break;
+	case MULTILINETYPE:
+		out_col = lwmline_clip_to_ordinate_range((LWMLINE*)lwin, ordinate, from, to);
+		break;
+	case MULTIPOINTTYPE:
+		out_col = lwmpoint_clip_to_ordinate_range((LWMPOINT*)lwin, ordinate, from, to);
+		break;
+	case POINTTYPE:
+		out_col = lwpoint_clip_to_ordinate_range((LWPOINT*)lwin, ordinate, from, to);
+		break;
+	default:
+		lwerror("This function does not accept %s geometries.", lwtype_name(lwin->type));
+		return NULL;;
 	}
-	
+
 	/* Stop if result is NULL */
 	if ( out_col == NULL )
 		lwerror("lwgeom_clip_to_ordinate_range clipping routine returned NULL");
-	
+
 	/* Return if we aren't going to offset the result */
 	if ( FP_EQUALS(offset, 0.0) || lwgeom_is_empty(lwcollection_as_lwgeom(out_col)) )
 		return out_col;
-	
+
 	/* Construct a collection to hold our outputs. */
 	/* Things get ugly: GEOS offset drops Z's and M's so we have to drop ours */
 	out_offset = lwcollection_construct_empty(MULTILINETYPE, lwin->srid, 0, 0);
-	
+
 	/* Try and offset the linear portions of the return value */
 	for ( i = 0; i < out_col->ngeoms; i++ )
 	{
@@ -812,7 +821,7 @@ lwgeom_clip_to_ordinate_range(const LWGEOM *lwin, char ordinate, double from, do
 			}
 			lwcollection_add_lwgeom(out_offset, lwoff);
 		}
-		else 
+		else
 		{
 			lwerror("lwgeom_clip_to_ordinate_range found an unexpected type (%s) in the offset routine",lwtype_name(type));
 		}
@@ -825,38 +834,554 @@ LWCOLLECTION*
 lwgeom_locate_between(const LWGEOM *lwin, double from, double to, double offset)
 {
 	if ( ! lwgeom_has_m(lwin) )
-		lwerror("Input geometry does not have a measure dimension");	
+		lwerror("Input geometry does not have a measure dimension");
 
 	return lwgeom_clip_to_ordinate_range(lwin, 'M', from, to, offset);
-}	
+}
 
 double
 lwgeom_interpolate_point(const LWGEOM *lwin, const LWPOINT *lwpt)
 {
 	POINT4D p, p_proj;
 	double ret = 0.0;
-	
+
 	if ( ! lwin )
 		lwerror("lwgeom_interpolate_point: null input geometry!");
 
 	if ( ! lwgeom_has_m(lwin) )
-		lwerror("Input geometry does not have a measure dimension");	
-	
+		lwerror("Input geometry does not have a measure dimension");
+
 	if ( lwgeom_is_empty(lwin) || lwpoint_is_empty(lwpt) )
-		lwerror("Input geometry is empty");	
-		
+		lwerror("Input geometry is empty");
+
 	switch ( lwin->type )
 	{
-		case LINETYPE:
+	case LINETYPE:
+	{
+		LWLINE *lwline = lwgeom_as_lwline(lwin);
+		lwpoint_getPoint4d_p(lwpt, &p);
+		ret = ptarray_locate_point(lwline->points, &p, NULL, &p_proj);
+		ret = p_proj.m;
+		break;
+	}
+	default:
+		lwerror("This function does not accept %s geometries.", lwtype_name(lwin->type));
+	}
+	return ret;
+}
+
+/*
+ * Time of closest point of approach
+ *
+ * Given two vectors (p1-p2 and q1-q2) and
+ * a time range (t1-t2) return the time in which
+ * a point p is closest to a point q on their
+ * respective vectors, and the actual points
+ *
+ * Here we use algorithm from softsurfer.com
+ * that can be found here
+ * http://softsurfer.com/Archive/algorithm_0106/algorithm_0106.htm
+ *
+ * @param p0 start of first segment, will be set to actual
+ *           closest point of approach on segment.
+ * @param p1 end of first segment
+ * @param q0 start of second segment, will be set to actual
+ *           closest point of approach on segment.
+ * @param q1 end of second segment
+ * @param t0 start of travel time
+ * @param t1 end of travel time
+ *
+ * @return time of closest point of approach
+ *
+ */
+static double
+segments_tcpa(POINT4D* p0, const POINT4D* p1,
+              POINT4D* q0, const POINT4D* q1,
+              double t0, double t1)
+{
+	POINT3DZ pv; /* velocity of p, aka u */
+	POINT3DZ qv; /* velocity of q, aka v */
+	POINT3DZ dv; /* velocity difference */
+	POINT3DZ w0; /* vector between first points */
+
+	/*
+	  lwnotice("FROM %g,%g,%g,%g -- %g,%g,%g,%g",
+	    p0->x, p0->y, p0->z, p0->m,
+	    p1->x, p1->y, p1->z, p1->m);
+	  lwnotice("  TO %g,%g,%g,%g -- %g,%g,%g,%g",
+	    q0->x, q0->y, q0->z, q0->m,
+	    q1->x, q1->y, q1->z, q1->m);
+	*/
+
+	/* PV aka U */
+	pv.x = ( p1->x - p0->x );
+	pv.y = ( p1->y - p0->y );
+	pv.z = ( p1->z - p0->z );
+	/*lwnotice("PV:  %g, %g, %g", pv.x, pv.y, pv.z);*/
+
+	/* QV aka V */
+	qv.x = ( q1->x - q0->x );
+	qv.y = ( q1->y - q0->y );
+	qv.z = ( q1->z - q0->z );
+	/*lwnotice("QV:  %g, %g, %g", qv.x, qv.y, qv.z);*/
+
+	dv.x = pv.x - qv.x;
+	dv.y = pv.y - qv.y;
+	dv.z = pv.z - qv.z;
+	/*lwnotice("DV:  %g, %g, %g", dv.x, dv.y, dv.z);*/
+
+	double dv2 = DOT(dv,dv);
+	/*lwnotice("DOT: %g", dv2);*/
+
+	if ( dv2 == 0.0 )
+	{
+		/* Distance is the same at any time, we pick the earliest */
+		return t0;
+	}
+
+	/* Distance at any given time, with t0 */
+	w0.x = ( p0->x - q0->x );
+	w0.y = ( p0->y - q0->y );
+	w0.z = ( p0->z - q0->z );
+
+	/*lwnotice("W0:  %g, %g, %g", w0.x, w0.y, w0.z);*/
+
+	/* Check that at distance dt w0 is distance */
+
+	/* This is the fraction of measure difference */
+	double t = -DOT(w0,dv) / dv2;
+	/*lwnotice("CLOSEST TIME (fraction): %g", t);*/
+
+	if ( t > 1.0 )
+	{
+		/* Getting closer as we move to the end */
+		/*lwnotice("Converging");*/
+		t = 1;
+	}
+	else if ( t < 0.0 )
+	{
+		/*lwnotice("Diverging");*/
+		t = 0;
+	}
+
+	/* Interpolate the actual points now */
+
+	p0->x += pv.x * t;
+	p0->y += pv.y * t;
+	p0->z += pv.z * t;
+
+	q0->x += qv.x * t;
+	q0->y += qv.y * t;
+	q0->z += qv.z * t;
+
+	t = t0 + (t1 - t0) * t;
+	/*lwnotice("CLOSEST TIME (real): %g", t);*/
+
+	return t;
+}
+
+static int
+ptarray_collect_mvals(const POINTARRAY *pa, double tmin, double tmax, double *mvals)
+{
+	POINT4D pbuf;
+	int i, n=0;
+	for (i=0; i<pa->npoints; ++i)
+	{
+		getPoint4d_p(pa, i, &pbuf); /* could be optimized */
+		if ( pbuf.m >= tmin && pbuf.m <= tmax )
+			mvals[n++] = pbuf.m;
+	}
+	return n;
+}
+
+static int
+compare_double(const void *pa, const void *pb)
+{
+	double a = *((double *)pa);
+	double b = *((double *)pb);
+	if ( a < b )
+		return -1;
+	else if ( a > b )
+		return 1;
+	else
+		return 0;
+}
+
+/* Return number of elements in unique array */
+static int
+uniq(double *vals, int nvals)
+{
+	int i, last=0;
+	for (i=1; i<nvals; ++i)
+	{
+		// lwnotice("(I%d):%g", i, vals[i]);
+		if ( vals[i] != vals[last] )
+		{
+			vals[++last] = vals[i];
+			// lwnotice("(O%d):%g", last, vals[last]);
+		}
+	}
+	return last+1;
+}
+
+/*
+ * Find point at a given measure
+ *
+ * The function assumes measures are linear so that always a single point
+ * is returned for a single measure.
+ *
+ * @param pa the point array to perform search on
+ * @param m the measure to search for
+ * @param p the point to write result into
+ * @param from the segment number to start from
+ *
+ * @return the segment number the point was found into
+ *         or -1 if given measure was out of the known range.
+ */
+static int
+ptarray_locate_along_linear(const POINTARRAY *pa, double m, POINT4D *p, int from)
+{
+	int i = from;
+	POINT4D p1, p2;
+
+	/* Walk through each segment in the point array */
+	getPoint4d_p(pa, i, &p1);
+	for ( i = from+1; i < pa->npoints; i++ )
+	{
+		getPoint4d_p(pa, i, &p2);
+
+		if ( segment_locate_along(&p1, &p2, m, 0, p) == LW_TRUE )
+			return i-1; /* found */
+
+		p1 = p2;
+	}
+
+	return -1; /* not found */
+}
+
+double
+lwgeom_tcpa(const LWGEOM *g1, const LWGEOM *g2, double *mindist)
+{
+	LWLINE *l1, *l2;
+	int i;
+	const GBOX *gbox1, *gbox2;
+	double tmin, tmax;
+	double *mvals;
+	int nmvals = 0;
+	double mintime;
+	double mindist2 = FLT_MAX; /* minimum distance, squared */
+
+	if ( ! lwgeom_has_m(g1) || ! lwgeom_has_m(g2) )
+	{
+		lwerror("Both input geometries must have a measure dimension");
+		return -1;
+	}
+
+	l1 = lwgeom_as_lwline(g1);
+	l2 = lwgeom_as_lwline(g2);
+
+	if ( ! l1 || ! l2 )
+	{
+		lwerror("Both input geometries must be linestrings");
+		return -1;
+	}
+
+	if ( l1->points->npoints < 2 || l2->points->npoints < 2 )
+	{
+		lwerror("Both input lines must have at least 2 points");
+		return -1;
+	}
+
+	/* WARNING: these ranges may be wider than real ones */
+	gbox1 = lwgeom_get_bbox(g1);
+	gbox2 = lwgeom_get_bbox(g2);
+
+	assert(gbox1); /* or the npoints check above would have failed */
+	assert(gbox2); /* or the npoints check above would have failed */
+
+	/*
+	 * Find overlapping M range
+	 * WARNING: may be larger than the real one
+	 */
+
+	tmin = FP_MAX(gbox1->mmin, gbox2->mmin);
+	tmax = FP_MIN(gbox1->mmax, gbox2->mmax);
+
+	if ( tmax < tmin )
+	{
+		LWDEBUG(1, "Inputs never exist at the same time");
+		return -2;
+	}
+
+	// lwnotice("Min:%g, Max:%g", tmin, tmax);
+
+	/*
+	 * Collect M values in common time range from inputs
+	 */
+
+	mvals = lwalloc( sizeof(double) *
+	                 ( l1->points->npoints + l2->points->npoints ) );
+
+	/* TODO: also clip the lines ? */
+	nmvals  = ptarray_collect_mvals(l1->points, tmin, tmax, mvals);
+	nmvals += ptarray_collect_mvals(l2->points, tmin, tmax, mvals + nmvals);
+
+	/* Sort values in ascending order */
+	qsort(mvals, nmvals, sizeof(double), compare_double);
+
+	/* Remove duplicated values */
+	nmvals = uniq(mvals, nmvals);
+
+	if ( nmvals < 2 )
+	{
+		{
+			/* there's a single time, must be that one... */
+			double t0 = mvals[0];
+			POINT4D p0, p1;
+			LWDEBUGF(1, "Inputs only exist both at a single time (%g)", t0);
+			if ( mindist )
+			{
+				if ( -1 == ptarray_locate_along_linear(l1->points, t0, &p0, 0) )
+				{
+					lwfree(mvals);
+					lwerror("Could not find point with M=%g on first geom", t0);
+					return -1;
+				}
+				if ( -1 == ptarray_locate_along_linear(l2->points, t0, &p1, 0) )
+				{
+					lwfree(mvals);
+					lwerror("Could not find point with M=%g on second geom", t0);
+					return -1;
+				}
+				*mindist = distance3d_pt_pt((POINT3D*)&p0, (POINT3D*)&p1);
+			}
+			lwfree(mvals);
+			return t0;
+		}
+	}
+
+	/*
+	 * For each consecutive pair of measures, compute time of closest point
+	 * approach and actual distance between points at that time
+	 */
+	mintime = tmin;
+	for (i=1; i<nmvals; ++i)
+	{
+		double t0 = mvals[i-1];
+		double t1 = mvals[i];
+		double t;
+		POINT4D p0, p1, q0, q1;
+		int seg;
+		double dist2;
+
+		// lwnotice("T %g-%g", t0, t1);
+
+		seg = ptarray_locate_along_linear(l1->points, t0, &p0, 0);
+		if ( -1 == seg ) continue; /* possible, if GBOX is approximated */
+		// lwnotice("Measure %g on segment %d of line 1: %g, %g, %g", t0, seg, p0.x, p0.y, p0.z);
+
+		seg = ptarray_locate_along_linear(l1->points, t1, &p1, seg);
+		if ( -1 == seg ) continue; /* possible, if GBOX is approximated */
+		// lwnotice("Measure %g on segment %d of line 1: %g, %g, %g", t1, seg, p1.x, p1.y, p1.z);
+
+		seg = ptarray_locate_along_linear(l2->points, t0, &q0, 0);
+		if ( -1 == seg ) continue; /* possible, if GBOX is approximated */
+		// lwnotice("Measure %g on segment %d of line 2: %g, %g, %g", t0, seg, q0.x, q0.y, q0.z);
+
+		seg = ptarray_locate_along_linear(l2->points, t1, &q1, seg);
+		if ( -1 == seg ) continue; /* possible, if GBOX is approximated */
+		// lwnotice("Measure %g on segment %d of line 2: %g, %g, %g", t1, seg, q1.x, q1.y, q1.z);
+
+		t = segments_tcpa(&p0, &p1, &q0, &q1, t0, t1);
+
+		/*
+		lwnotice("Closest points: %g,%g,%g and %g,%g,%g at time %g",
+		p0.x, p0.y, p0.z,
+		q0.x, q0.y, q0.z, t);
+		*/
+
+		dist2 = ( q0.x - p0.x ) * ( q0.x - p0.x ) +
+		        ( q0.y - p0.y ) * ( q0.y - p0.y ) +
+		        ( q0.z - p0.z ) * ( q0.z - p0.z );
+		if ( dist2 < mindist2 )
+		{
+			mindist2 = dist2;
+			mintime = t;
+			// lwnotice("MINTIME: %g", mintime);
+		}
+	}
+
+	/*
+	 * Release memory
+	 */
+
+	lwfree(mvals);
+
+	if ( mindist )
+	{
+		*mindist = sqrt(mindist2);
+	}
+	/*lwnotice("MINDIST: %g", sqrt(mindist2));*/
+
+	return mintime;
+}
+
+int
+lwgeom_cpa_within(const LWGEOM *g1, const LWGEOM *g2, double maxdist)
+{
+	LWLINE *l1, *l2;
+	int i;
+	const GBOX *gbox1, *gbox2;
+	double tmin, tmax;
+	double *mvals;
+	int nmvals = 0;
+	double maxdist2 = maxdist * maxdist;
+	int within = LW_FALSE;
+
+	if ( ! lwgeom_has_m(g1) || ! lwgeom_has_m(g2) )
+	{
+		lwerror("Both input geometries must have a measure dimension");
+		return LW_FALSE;
+	}
+
+	l1 = lwgeom_as_lwline(g1);
+	l2 = lwgeom_as_lwline(g2);
+
+	if ( ! l1 || ! l2 )
+	{
+		lwerror("Both input geometries must be linestrings");
+		return LW_FALSE;
+	}
+
+	if ( l1->points->npoints < 2 || l2->points->npoints < 2 )
+	{
+		/* TODO: return distance between these two points */
+		lwerror("Both input lines must have at least 2 points");
+		return LW_FALSE;
+	}
+
+	/* WARNING: these ranges may be wider than real ones */
+	gbox1 = lwgeom_get_bbox(g1);
+	gbox2 = lwgeom_get_bbox(g2);
+
+	assert(gbox1); /* or the npoints check above would have failed */
+	assert(gbox2); /* or the npoints check above would have failed */
+
+	/*
+	 * Find overlapping M range
+	 * WARNING: may be larger than the real one
+	 */
+
+	tmin = FP_MAX(gbox1->mmin, gbox2->mmin);
+	tmax = FP_MIN(gbox1->mmax, gbox2->mmax);
+
+	if ( tmax < tmin )
+	{
+		LWDEBUG(1, "Inputs never exist at the same time");
+		return LW_FALSE;
+	}
+
+	// lwnotice("Min:%g, Max:%g", tmin, tmax);
+
+	/*
+	 * Collect M values in common time range from inputs
+	 */
+
+	mvals = lwalloc( sizeof(double) *
+	                 ( l1->points->npoints + l2->points->npoints ) );
+
+	/* TODO: also clip the lines ? */
+	nmvals  = ptarray_collect_mvals(l1->points, tmin, tmax, mvals);
+	nmvals += ptarray_collect_mvals(l2->points, tmin, tmax, mvals + nmvals);
+
+	/* Sort values in ascending order */
+	qsort(mvals, nmvals, sizeof(double), compare_double);
+
+	/* Remove duplicated values */
+	nmvals = uniq(mvals, nmvals);
+
+	if ( nmvals < 2 )
+	{
+		/* there's a single time, must be that one... */
+		double t0 = mvals[0];
+		POINT4D p0, p1;
+		LWDEBUGF(1, "Inputs only exist both at a single time (%g)", t0);
+		if ( -1 == ptarray_locate_along_linear(l1->points, t0, &p0, 0) )
+		{
+			lwnotice("Could not find point with M=%g on first geom", t0);
+			return LW_FALSE;
+		}
+		if ( -1 == ptarray_locate_along_linear(l2->points, t0, &p1, 0) )
+		{
+			lwnotice("Could not find point with M=%g on second geom", t0);
+			return LW_FALSE;
+		}
+		if ( distance3d_pt_pt((POINT3D*)&p0, (POINT3D*)&p1) <= maxdist )
+			within = LW_TRUE;
+		lwfree(mvals);
+		return within;
+	}
+
+	/*
+	 * For each consecutive pair of measures, compute time of closest point
+	 * approach and actual distance between points at that time
+	 */
+	for (i=1; i<nmvals; ++i)
+	{
+		double t0 = mvals[i-1];
+		double t1 = mvals[i];
+#if POSTGIS_DEBUG_LEVEL >= 1
+		double t;
+#endif
+		POINT4D p0, p1, q0, q1;
+		int seg;
+		double dist2;
+
+		// lwnotice("T %g-%g", t0, t1);
+
+		seg = ptarray_locate_along_linear(l1->points, t0, &p0, 0);
+		if ( -1 == seg ) continue; /* possible, if GBOX is approximated */
+		// lwnotice("Measure %g on segment %d of line 1: %g, %g, %g", t0, seg, p0.x, p0.y, p0.z);
+
+		seg = ptarray_locate_along_linear(l1->points, t1, &p1, seg);
+		if ( -1 == seg ) continue; /* possible, if GBOX is approximated */
+		// lwnotice("Measure %g on segment %d of line 1: %g, %g, %g", t1, seg, p1.x, p1.y, p1.z);
+
+		seg = ptarray_locate_along_linear(l2->points, t0, &q0, 0);
+		if ( -1 == seg ) continue; /* possible, if GBOX is approximated */
+		// lwnotice("Measure %g on segment %d of line 2: %g, %g, %g", t0, seg, q0.x, q0.y, q0.z);
+
+		seg = ptarray_locate_along_linear(l2->points, t1, &q1, seg);
+		if ( -1 == seg ) continue; /* possible, if GBOX is approximated */
+		// lwnotice("Measure %g on segment %d of line 2: %g, %g, %g", t1, seg, q1.x, q1.y, q1.z);
+
+#if POSTGIS_DEBUG_LEVEL >= 1
+		t =
+#endif
+		segments_tcpa(&p0, &p1, &q0, &q1, t0, t1);
+
+		/*
+		lwnotice("Closest points: %g,%g,%g and %g,%g,%g at time %g",
+		p0.x, p0.y, p0.z,
+		q0.x, q0.y, q0.z, t);
+		*/
+
+		dist2 = ( q0.x - p0.x ) * ( q0.x - p0.x ) +
+		        ( q0.y - p0.y ) * ( q0.y - p0.y ) +
+		        ( q0.z - p0.z ) * ( q0.z - p0.z );
+		if ( dist2 <= maxdist2 )
 		{
-			LWLINE *lwline = lwgeom_as_lwline(lwin);
-			lwpoint_getPoint4d_p(lwpt, &p);
-			ret = ptarray_locate_point(lwline->points, &p, NULL, &p_proj);
-			ret = p_proj.m;
+			LWDEBUGF(1, "Within distance %g at time %g, breaking", sqrt(dist2), t);
+			within = LW_TRUE;
 			break;
 		}
-		default:
-			lwerror("This function does not accept %s geometries.", lwtype_name(lwin->type));
 	}
-	return ret;
+
+	/*
+	 * Release memory
+	 */
+
+	lwfree(mvals);
+
+	return within;
 }
diff --git a/liblwgeom/lwmcurve.c b/liblwgeom/lwmcurve.c
index f66b474..cb730e2 100644
--- a/liblwgeom/lwmcurve.c
+++ b/liblwgeom/lwmcurve.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwmcurve.c 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/liblwgeom/lwmline.c b/liblwgeom/lwmline.c
index 44bd972..f29022c 100644
--- a/liblwgeom/lwmline.c
+++ b/liblwgeom/lwmline.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwmline.c 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/liblwgeom/lwmpoint.c b/liblwgeom/lwmpoint.c
index 2169560..17b5bac 100644
--- a/liblwgeom/lwmpoint.c
+++ b/liblwgeom/lwmpoint.c
@@ -76,7 +76,7 @@ void lwmpoint_free(LWMPOINT *mpt)
 }
 
 LWGEOM*
-lwmpoint_remove_repeated_points(LWMPOINT *mpoint)
+lwmpoint_remove_repeated_points(LWMPOINT *mpoint, double tolerance)
 {
 	uint32_t nnewgeoms;
 	uint32_t i, j;
diff --git a/liblwgeom/lwout_encoded_polyline.c b/liblwgeom/lwout_encoded_polyline.c
new file mode 100644
index 0000000..10acdb0
--- /dev/null
+++ b/liblwgeom/lwout_encoded_polyline.c
@@ -0,0 +1,117 @@
+/**********************************************************************
+*
+* PostGIS - Spatial Types for PostgreSQL
+* http://postgis.net
+*
+* Copyright 2014 Kashif Rasul <kashif.rasul at gmail.com> and
+*                Shoaib Burq <saburq at gmail.com>
+*
+* This is free software; you can redistribute and/or modify it under
+* the terms of the GNU General Public Licence. See the COPYING file.
+*
+**********************************************************************/
+
+#include "stringbuffer.h"
+#include "liblwgeom_internal.h"
+
+static char * lwline_to_encoded_polyline(const LWLINE*, int precision);
+static char * lwmmpoint_to_encoded_polyline(const LWMPOINT*, int precision);
+static char * pointarray_to_encoded_polyline(const POINTARRAY*, int precision);
+
+/* takes a GEOMETRY and returns an Encoded Polyline representation */
+extern char *
+lwgeom_to_encoded_polyline(const LWGEOM *geom, int precision)
+{
+	int type = geom->type;
+	switch (type)
+	{
+	case LINETYPE:
+		return lwline_to_encoded_polyline((LWLINE*)geom, precision);
+	case MULTIPOINTTYPE:
+		return lwmmpoint_to_encoded_polyline((LWMPOINT*)geom, precision);
+	default:
+		lwerror("lwgeom_to_encoded_polyline: '%s' geometry type not supported", lwtype_name(type));
+		return NULL;
+	}
+}
+
+static
+char * lwline_to_encoded_polyline(const LWLINE *line, int precision)
+{
+	return pointarray_to_encoded_polyline(line->points, precision);
+}
+
+static
+char * lwmmpoint_to_encoded_polyline(const LWMPOINT *mpoint, int precision)
+{
+	LWLINE *line = lwline_from_lwmpoint(mpoint->srid, mpoint);
+	char *encoded_polyline = lwline_to_encoded_polyline(line, precision);
+
+	lwline_free(line);
+	return encoded_polyline;
+}
+
+static
+char * pointarray_to_encoded_polyline(const POINTARRAY *pa, int precision)
+{
+	int i;
+	const POINT2D *prevPoint;
+	int *delta = lwalloc(2*sizeof(int)*pa->npoints);
+	char *encoded_polyline = NULL;
+	stringbuffer_t *sb;
+	double scale = pow(10,precision);
+
+	/* Take the double value and multiply it by 1x10^percision, rounding the result */
+	prevPoint = getPoint2d_cp(pa, 0);
+	delta[0] = round(prevPoint->y*scale);
+	delta[1] = round(prevPoint->x*scale);
+
+	/*  points only include the offset from the previous point */
+	for (i=1; i<pa->npoints; i++)
+	{
+		const POINT2D *point = getPoint2d_cp(pa, i);
+		delta[2*i] = round(point->y*scale) - round(prevPoint->y*scale);
+		delta[(2*i)+1] = round(point->x*scale) - round(prevPoint->x*scale);
+		prevPoint = point;
+	}
+
+	/* value to binary: a negative value must be calculated using its two's complement */
+	for (i=0; i<pa->npoints*2; i++)
+	{
+		/* Left-shift the binary value one bit */
+		delta[i] <<= 1;
+		/* if value is negative, invert this encoding */
+		if (delta[i] < 0) {
+			delta[i] = ~(delta[i]);
+		}
+	}
+
+	sb = stringbuffer_create();
+	for (i=0; i<pa->npoints*2; i++)
+	{
+		int numberToEncode = delta[i];
+
+		while (numberToEncode >= 0x20) {
+			/* Place the 5-bit chunks into reverse order or
+			 each value with 0x20 if another bit chunk follows and add 63*/
+			int nextValue = (0x20 | (numberToEncode & 0x1f)) + 63;
+			stringbuffer_aprintf(sb, "%c", (char)nextValue);
+			if(92 == nextValue)
+				stringbuffer_aprintf(sb, "%c", (char)nextValue);
+
+			/* Break the binary value out into 5-bit chunks */
+			numberToEncode >>= 5;
+		}
+
+		numberToEncode += 63;
+		stringbuffer_aprintf(sb, "%c", (char)numberToEncode);
+		if(92 == numberToEncode)
+			stringbuffer_aprintf(sb, "%c", (char)numberToEncode);
+	}
+
+	lwfree(delta);
+	encoded_polyline = stringbuffer_getstringcopy(sb);
+	stringbuffer_destroy(sb);
+
+	return encoded_polyline;
+}
diff --git a/liblwgeom/lwout_geojson.c b/liblwgeom/lwout_geojson.c
index 3992139..ca4cbfa 100644
--- a/liblwgeom/lwout_geojson.c
+++ b/liblwgeom/lwout_geojson.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwout_geojson.c 13252 2015-02-20 17:48:52Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/liblwgeom/lwout_gml.c b/liblwgeom/lwout_gml.c
index b6fd362..ff41414 100644
--- a/liblwgeom/lwout_gml.c
+++ b/liblwgeom/lwout_gml.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwout_gml.c 13252 2015-02-20 17:48:52Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -39,8 +38,10 @@ static size_t asgml3_point_size(const LWPOINT *point, const char *srs, int preci
 static char *asgml3_point(const LWPOINT *point, const char *srs, int precision, int opts, const char *prefix, const char *id);
 static size_t asgml3_line_size(const LWLINE *line, const char *srs, int precision, int opts, const char *prefix, const char *id);
 static char *asgml3_line(const LWLINE *line, const char *srs, int precision, int opts, const char *prefix, const char *id);
+static char *asgml3_circstring( const LWCIRCSTRING *circ, const char *srs, int precision, int opts, const char *prefix, const char *id );
 static size_t asgml3_poly_size(const LWPOLY *poly, const char *srs, int precision, int opts, const char *prefix, const char *id);
 static char *asgml3_poly(const LWPOLY *poly, const char *srs, int precision, int opts, int is_patch, const char *prefix, const char *id);
+static char * asgml3_curvepoly(const LWCURVEPOLY* poly, const char *srs, int precision, int opts, const char *prefix, const char *id);
 static size_t asgml3_triangle_size(const LWTRIANGLE *triangle, const char *srs, int precision, int opts, const char *prefix, const char *id);
 static char *asgml3_triangle(const LWTRIANGLE *triangle, const char *srs, int precision, int opts, const char *prefix, const char *id);
 static size_t asgml3_multi_size(const LWCOLLECTION *col, const char *srs, int precision, int opts, const char *prefix, const char *id);
@@ -49,20 +50,25 @@ static char *asgml3_psurface(const LWPSURFACE *psur, const char *srs, int precis
 static char *asgml3_tin(const LWTIN *tin, const char *srs, int precision, int opts, const char *prefix, const char *id);
 static size_t asgml3_collection_size(const LWCOLLECTION *col, const char *srs, int precision, int opts, const char *prefix, const char *id);
 static char *asgml3_collection(const LWCOLLECTION *col, const char *srs, int precision, int opts, const char *prefix, const char *id);
+static char *asgml3_compound(const LWCOMPOUND *col, const char *srs, int precision, int opts, const char *prefix, const char *id );
+static char *asgml3_multicurve( const LWMCURVE* cur, const char *srs, int precision, int opts, const char *prefix, const char *id );
+static char *asgml3_multisurface(const LWMSURFACE *sur, const char *srs, int precision, int opts, const char *prefix, const char *id);
 static size_t pointArray_toGML3(POINTARRAY *pa, char *buf, int precision, int opts);
 
+
 static size_t pointArray_GMLsize(POINTARRAY *pa, int precision);
 
 static char *
 gbox_to_gml2(const GBOX *bbox, const char *srs, int precision, const char *prefix)
 {
 	int size;
-        POINT4D pt;
-        POINTARRAY *pa;
+	POINT4D pt;
+	POINTARRAY *pa;
 	char *ptr, *output;
 	size_t prefixlen = strlen(prefix);
 
-	if ( ! bbox ) {
+	if ( ! bbox )
+	{
 		size = ( sizeof("<Box>/") + (prefixlen*2) ) * 2;
 		if ( srs ) size += strlen(srs) + sizeof(" srsName=..");
 
@@ -77,17 +83,17 @@ gbox_to_gml2(const GBOX *bbox, const char *srs, int precision, const char *prefi
 		return output;
 	}
 
-        pa = ptarray_construct_empty(FLAGS_GET_Z(bbox->flags), 0, 2);
+	pa = ptarray_construct_empty(FLAGS_GET_Z(bbox->flags), 0, 2);
+
+	pt.x = bbox->xmin;
+	pt.y = bbox->ymin;
+	if (FLAGS_GET_Z(bbox->flags)) pt.z = bbox->zmin;
+	ptarray_append_point(pa, &pt, LW_TRUE);
 
-        pt.x = bbox->xmin; 
-        pt.y = bbox->ymin; 
-        if (FLAGS_GET_Z(bbox->flags)) pt.z = bbox->zmin; 
-        ptarray_append_point(pa, &pt, LW_TRUE);
-    
-        pt.x = bbox->xmax; 
-        pt.y = bbox->ymax; 
-        if (FLAGS_GET_Z(bbox->flags)) pt.z = bbox->zmax; 
-        ptarray_append_point(pa, &pt, LW_TRUE);
+	pt.x = bbox->xmax;
+	pt.y = bbox->ymax;
+	if (FLAGS_GET_Z(bbox->flags)) pt.z = bbox->zmax;
+	ptarray_append_point(pa, &pt, LW_TRUE);
 
 	size = pointArray_GMLsize(pa, precision);
 	size += ( sizeof("<Box><coordinates>/") + (prefixlen*2) ) * 2;
@@ -102,7 +108,7 @@ gbox_to_gml2(const GBOX *bbox, const char *srs, int precision, const char *prefi
 	ptr += pointArray_toGML2(pa, ptr, precision);
 	ptr += sprintf(ptr, "</%scoordinates></%sBox>", prefix, prefix);
 
-        ptarray_free(pa);
+	ptarray_free(pa);
 
 	return output;
 }
@@ -111,13 +117,14 @@ static char *
 gbox_to_gml3(const GBOX *bbox, const char *srs, int precision, int opts, const char *prefix)
 {
 	int size;
-        POINT4D pt;
-        POINTARRAY *pa;
+	POINT4D pt;
+	POINTARRAY *pa;
 	char *ptr, *output;
 	size_t prefixlen = strlen(prefix);
 	int dimension = 2;
 
-	if ( ! bbox ) {
+	if ( ! bbox )
+	{
 		size = ( sizeof("<Envelope>/") + (prefixlen*2) ) * 2;
 		if ( srs ) size += strlen(srs) + sizeof(" srsName=..");
 
@@ -131,14 +138,14 @@ gbox_to_gml3(const GBOX *bbox, const char *srs, int precision, int opts, const c
 		return output;
 	}
 
-        if (FLAGS_GET_Z(bbox->flags)) dimension = 3;
+	if (FLAGS_GET_Z(bbox->flags)) dimension = 3;
 
-        pa = ptarray_construct_empty(FLAGS_GET_Z(bbox->flags), 0, 1);
+	pa = ptarray_construct_empty(FLAGS_GET_Z(bbox->flags), 0, 1);
 
-        pt.x = bbox->xmin;
-        pt.y = bbox->ymin; 
-        if (FLAGS_GET_Z(bbox->flags)) pt.z = bbox->zmin; 
-        ptarray_append_point(pa, &pt, LW_TRUE);
+	pt.x = bbox->xmin;
+	pt.y = bbox->ymin;
+	if (FLAGS_GET_Z(bbox->flags)) pt.z = bbox->zmin;
+	ptarray_append_point(pa, &pt, LW_TRUE);
 
 	size = pointArray_GMLsize(pa, precision) * 2;
 	size += ( sizeof("<Envelope><lowerCorner><upperCorner>//") + (prefixlen*3) ) * 2;
@@ -156,11 +163,11 @@ gbox_to_gml3(const GBOX *bbox, const char *srs, int precision, int opts, const c
 	ptr += pointArray_toGML3(pa, ptr, precision, opts);
 	ptr += sprintf(ptr, "</%slowerCorner>", prefix);
 
-        ptarray_remove_point(pa, 0);
-        pt.x = bbox->xmax;
-        pt.y = bbox->ymax; 
-        if (FLAGS_GET_Z(bbox->flags)) pt.z = bbox->zmax; 
-        ptarray_append_point(pa, &pt, LW_TRUE);
+	ptarray_remove_point(pa, 0);
+	pt.x = bbox->xmax;
+	pt.y = bbox->ymax;
+	if (FLAGS_GET_Z(bbox->flags)) pt.z = bbox->zmax;
+	ptarray_append_point(pa, &pt, LW_TRUE);
 
 	ptr += sprintf(ptr, "<%supperCorner>", prefix);
 	ptr += pointArray_toGML3(pa, ptr, precision, opts);
@@ -168,7 +175,7 @@ gbox_to_gml3(const GBOX *bbox, const char *srs, int precision, int opts, const c
 
 	ptr += sprintf(ptr, "</%sEnvelope>", prefix);
 
-        ptarray_free(pa);
+	ptarray_free(pa);
 
 	return output;
 }
@@ -178,31 +185,31 @@ extern char *
 lwgeom_extent_to_gml2(const LWGEOM *geom, const char *srs, int precision, const char *prefix)
 {
 	const GBOX* bbox = lwgeom_get_bbox(geom);
-/*
-	if ( ! bbox ) {
-		lwerror("lwgeom_extent_to_gml2: empty geometry doesn't have a bounding box");
-		return NULL;
-	}
-*/
+	/*
+		if ( ! bbox ) {
+			lwerror("lwgeom_extent_to_gml2: empty geometry doesn't have a bounding box");
+			return NULL;
+		}
+	*/
 	char *ret = gbox_to_gml2(bbox, srs, precision, prefix);
 	return ret;
 }
-	
+
 
 extern char *
 lwgeom_extent_to_gml3(const LWGEOM *geom, const char *srs, int precision, int opts, const char *prefix)
 {
 	const GBOX* bbox = lwgeom_get_bbox(geom);
-/*
-	if ( ! bbox ) {
-		lwerror("lwgeom_extent_to_gml3: empty geometry doesn't have a bounding box");
-		return NULL;
-	}
-*/
+	/*
+		if ( ! bbox ) {
+			lwerror("lwgeom_extent_to_gml3: empty geometry doesn't have a bounding box");
+			return NULL;
+		}
+	*/
 	return gbox_to_gml3(bbox, srs, precision, opts, prefix);
 }
-	
-	
+
+
 /**
  *  @brief VERSION GML 2
  *  	takes a GEOMETRY and returns a GML2 representation
@@ -240,7 +247,7 @@ lwgeom_to_gml2(const LWGEOM *geom, const char *srs, int precision, const char* p
 	case TINTYPE:
 		lwerror("Cannot convert %s to GML2. Try ST_AsGML(3, <geometry>) to generate GML3.", lwtype_name(type));
 		return NULL;
-		
+
 	default:
 		lwerror("lwgeom_to_gml2: '%s' geometry type not supported", lwtype_name(type));
 		return NULL;
@@ -266,7 +273,8 @@ asgml2_point_buf(const LWPOINT *point, const char *srs, char *output, int precis
 
 	ptr += sprintf(ptr, "<%sPoint", prefix);
 	if ( srs ) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
-	if ( lwpoint_is_empty(point) ) {
+	if ( lwpoint_is_empty(point) )
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
@@ -311,7 +319,8 @@ asgml2_line_buf(const LWLINE *line, const char *srs, char *output, int precision
 	ptr += sprintf(ptr, "<%sLineString", prefix);
 	if ( srs ) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
 
-	if ( lwline_is_empty(line) ) {
+	if ( lwline_is_empty(line) )
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
@@ -345,7 +354,7 @@ asgml2_poly_size(const LWPOLY *poly, const char *srs, int precision, const char
 
 	size = sizeof("<polygon></polygon>") + prefixlen*2;
 	if ( srs ) size += strlen(srs) + sizeof(" srsName=..");
-	if ( lwpoly_is_empty(poly) ) 
+	if ( lwpoly_is_empty(poly) )
 		return size;
 	size += ( sizeof("<outerboundaryis><linearring><coordinates>/") + ( prefixlen*3) ) * 2;
 	size += ( sizeof("<innerboundaryis><linearring><coordinates>/") + ( prefixlen*2) ) * 2 * poly->nrings;
@@ -365,13 +374,14 @@ asgml2_poly_buf(const LWPOLY *poly, const char *srs, char *output, int precision
 
 	ptr += sprintf(ptr, "<%sPolygon", prefix);
 	if ( srs ) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
-	if ( lwpoly_is_empty(poly) ) {
+	if ( lwpoly_is_empty(poly) )
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
 	ptr += sprintf(ptr, ">");
 	ptr += sprintf(ptr, "<%souterBoundaryIs><%sLinearRing><%scoordinates>",
-		       prefix, prefix, prefix);
+	               prefix, prefix, prefix);
 	ptr += pointArray_toGML2(poly->rings[0], ptr, precision);
 	ptr += sprintf(ptr, "</%scoordinates></%sLinearRing></%souterBoundaryIs>", prefix, prefix, prefix);
 	for (i=1; i<poly->nrings; i++)
@@ -463,7 +473,8 @@ asgml2_multi_buf(const LWCOLLECTION *col, const char *srs, char *output,
 	ptr += sprintf(ptr, "<%s%s", prefix, gmltype);
 	if ( srs ) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
 
-	if (!col->ngeoms) {
+	if (!col->ngeoms)
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
@@ -535,7 +546,7 @@ asgml2_collection_size(const LWCOLLECTION *col, const char *srs, int precision,
 	for (i=0; i<col->ngeoms; i++)
 	{
 		subgeom = col->geoms[i];
-		
+
 		size += ( sizeof("<geometryMember>/") + prefixlen ) * 2;
 		if ( subgeom->type == POINTTYPE)
 		{
@@ -570,14 +581,15 @@ asgml2_collection_buf(const LWCOLLECTION *col, const char *srs, char *output, in
 	char *ptr;
 	int i;
 	LWGEOM *subgeom;
-	
+
 	ptr = output;
 
 	/* Open outmost tag */
 	ptr += sprintf(ptr, "<%sMultiGeometry", prefix);
 	if ( srs ) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
 
-	if (!col->ngeoms) {
+	if (!col->ngeoms)
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
@@ -585,7 +597,7 @@ asgml2_collection_buf(const LWCOLLECTION *col, const char *srs, char *output, in
 
 	for (i=0; i<col->ngeoms; i++)
 	{
- 		subgeom = col->geoms[i];
+		subgeom = col->geoms[i];
 
 		ptr += sprintf(ptr, "<%sgeometryMember>", prefix);
 		if (subgeom->type == POINTTYPE)
@@ -724,9 +736,15 @@ lwgeom_to_gml3(const LWGEOM *geom, const char *srs, int precision, int opts, con
 	case LINETYPE:
 		return asgml3_line((LWLINE*)geom, srs, precision, opts, prefix, id);
 
+	case CIRCSTRINGTYPE:
+		return asgml3_circstring((LWCIRCSTRING*)geom, srs, precision, opts, prefix, id );
+
 	case POLYGONTYPE:
 		return asgml3_poly((LWPOLY*)geom, srs, precision, opts, 0, prefix, id);
 
+	case CURVEPOLYTYPE:
+		return asgml3_curvepoly((LWCURVEPOLY*)geom, srs, precision, opts, prefix, id);
+
 	case TRIANGLETYPE:
 		return asgml3_triangle((LWTRIANGLE*)geom, srs, precision, opts, prefix, id);
 
@@ -744,6 +762,15 @@ lwgeom_to_gml3(const LWGEOM *geom, const char *srs, int precision, int opts, con
 	case COLLECTIONTYPE:
 		return asgml3_collection((LWCOLLECTION*)geom, srs, precision, opts, prefix, id);
 
+	case COMPOUNDTYPE:
+		return asgml3_compound( (LWCOMPOUND*)geom, srs, precision, opts, prefix, id );
+
+	case MULTICURVETYPE:
+		return asgml3_multicurve( (LWMCURVE*)geom, srs, precision, opts, prefix, id );
+
+	case MULTISURFACETYPE:
+		return asgml3_multisurface( (LWMSURFACE*)geom, srs, precision, opts, prefix, id );
+
 	default:
 		lwerror("lwgeom_to_gml3: '%s' geometry type not supported", lwtype_name(type));
 		return NULL;
@@ -775,7 +802,8 @@ asgml3_point_buf(const LWPOINT *point, const char *srs, char *output, int precis
 	ptr += sprintf(ptr, "<%sPoint", prefix);
 	if ( srs ) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
 	if ( id )  ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id);
-	if ( lwpoint_is_empty(point) ) {
+	if ( lwpoint_is_empty(point) )
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
@@ -812,16 +840,16 @@ asgml3_line_size(const LWLINE *line, const char *srs, int precision, int opts, c
 	if ( opts & LW_GML_SHORTLINE )
 	{
 		size += (
-		  sizeof("<LineString><posList>/") +
-		  ( prefixlen * 2 )
-		) * 2;
+		            sizeof("<LineString><posList>/") +
+		            ( prefixlen * 2 )
+		        ) * 2;
 	}
 	else
 	{
 		size += (
-		  sizeof("<Curve><segments><LineStringSegment><posList>/") +
-		  ( prefixlen * 4 )
-		) * 2;
+		            sizeof("<Curve><segments><LineStringSegment><posList>/") +
+		            ( prefixlen * 4 )
+		        ) * 2;
 	}
 	if (srs) size += strlen(srs) + sizeof(" srsName=..");
 	if (id)  size += strlen(id) + strlen(prefix) + sizeof(" id=..");
@@ -838,30 +866,38 @@ asgml3_line_buf(const LWLINE *line, const char *srs, char *output, int precision
 
 	if (FLAGS_GET_Z(line->flags)) dimension = 3;
 
-	if ( shortline ) {
+	if ( shortline )
+	{
 		ptr += sprintf(ptr, "<%sLineString", prefix);
-	} else {
+	}
+	else
+	{
 		ptr += sprintf(ptr, "<%sCurve", prefix);
 	}
 
 	if (srs) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
 	if (id)  ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id);
 
-	if ( lwline_is_empty(line) ) {
+	if ( lwline_is_empty(line) )
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
 	ptr += sprintf(ptr, ">");
 
-	if ( ! shortline ) {
+	if ( ! shortline )
+	{
 		ptr += sprintf(ptr, "<%ssegments>", prefix);
 		ptr += sprintf(ptr, "<%sLineStringSegment>", prefix);
 	}
 
-	if (IS_DIMS(opts)) {
+	if (IS_DIMS(opts))
+	{
 		ptr += sprintf(ptr, "<%sposList srsDimension=\"%d\">",
-			prefix, dimension);
-	} else {
+		               prefix, dimension);
+	}
+	else
+	{
 		ptr += sprintf(ptr, "<%sposList>", prefix);
 	}
 
@@ -869,9 +905,12 @@ asgml3_line_buf(const LWLINE *line, const char *srs, char *output, int precision
 
 	ptr += sprintf(ptr, "</%sposList>", prefix);
 
-	if ( shortline ) {
+	if ( shortline )
+	{
 		ptr += sprintf(ptr, "</%sLineString>", prefix);
-	} else {
+	}
+	else
+	{
 		ptr += sprintf(ptr, "</%sLineStringSegment>", prefix);
 		ptr += sprintf(ptr, "</%ssegments>", prefix);
 		ptr += sprintf(ptr, "</%sCurve>", prefix);
@@ -894,6 +933,71 @@ asgml3_line(const LWLINE *line, const char *srs, int precision, int opts, const
 
 
 static size_t
+asgml3_circstring_size(const LWCIRCSTRING *circ, const char *srs, int precision, int opts, const char *prefix, const char *id)
+{
+	int size = pointArray_GMLsize( circ->points, precision );
+	size_t prefixlen = strlen(prefix);
+	size += 2 * ( sizeof( "<Curve><segments>/" ) + 2 * prefixlen );
+	size += 2 * ( sizeof( "<ArcString><posList>/" ) + 2 * prefixlen );
+	if (srs) size += strlen(srs) + sizeof(" srsName=..");
+	if (id)  size += strlen(id) + strlen(prefix) + sizeof(" id=..");
+	if (IS_DIMS(opts)) size += sizeof(" srsDimension='x'");
+	return size;
+}
+
+static size_t
+asgml3_circstring_buf(const LWCIRCSTRING *circ, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
+{
+	char* ptr = output;
+	int dimension=2;
+
+	if (FLAGS_GET_Z(circ->flags))
+	{
+		dimension = 3;
+	}
+
+	ptr += sprintf(ptr, "<%sCurve", prefix);
+	if (srs)
+	{
+		ptr += sprintf(ptr, " srsName=\"%s\"", srs);
+	}
+	if (id)
+	{
+		ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id);
+	}
+	ptr += sprintf(ptr, ">");
+	ptr += sprintf(ptr, "<%ssegments>", prefix);
+	ptr += sprintf(ptr, "<%sArcString>", prefix);
+	ptr += sprintf(ptr, "<%sposList", prefix);
+
+	if (IS_DIMS(opts))
+	{
+		ptr += sprintf(ptr, " srsDimension=\"%d\"", dimension);
+	}
+	ptr += sprintf(ptr, ">");
+
+	ptr += pointArray_toGML3(circ->points, ptr, precision, opts);
+	ptr += sprintf(ptr, "</%sposList>", prefix);
+	ptr += sprintf(ptr, "</%sArcString>", prefix);
+	ptr += sprintf(ptr, "</%ssegments>", prefix);
+	ptr += sprintf(ptr, "</%sCurve>", prefix);
+	return (ptr-output);
+}
+
+static char *
+asgml3_circstring( const LWCIRCSTRING *circ, const char *srs, int precision, int opts, const char *prefix, const char *id )
+{
+	char *output;
+	int size;
+
+	size = asgml3_circstring_size(circ, srs, precision, opts, prefix, id);
+	output = lwalloc( size );
+	asgml3_circstring_buf(circ, srs, output, precision, opts, prefix, id);
+	return output;
+}
+
+
+static size_t
 asgml3_poly_size(const LWPOLY *poly, const char *srs, int precision, int opts, const char *prefix, const char *id)
 {
 	size_t size;
@@ -934,7 +1038,8 @@ asgml3_poly_buf(const LWPOLY *poly, const char *srs, char *output, int precision
 	if (srs) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
 	if (id)  ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id);
 
-	if ( lwpoly_is_empty(poly) ) {
+	if ( lwpoly_is_empty(poly) )
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
@@ -974,6 +1079,259 @@ asgml3_poly(const LWPOLY *poly, const char *srs, int precision, int opts, int is
 	return output;
 }
 
+static size_t 
+asgml3_compound_size(const LWCOMPOUND *col, const char *srs, int precision, int opts, const char *prefix, const char *id )
+{
+	int i;
+	size_t size;
+	LWGEOM *subgeom;
+	size_t prefixlen = strlen(prefix);
+
+	size = ( sizeof( "<Curve></Curve>" ) + 2 * prefixlen );
+
+	if (srs) size += strlen(srs) + sizeof(" srsName=..");
+	if (id)  size += strlen(id) + strlen(prefix) + sizeof(" id=..");
+
+	size += ( sizeof("<segments></segments>") + 2 * prefixlen );
+
+	for(i= 0; i < col->ngeoms; ++i )
+	{
+		subgeom = col->geoms[i];
+		if ( subgeom->type == LINETYPE )
+		{
+
+			size += sizeof( "<LineStringSegment></LineStringSegment" ) + 2 * prefixlen;
+			size += sizeof( "<posList></posList" ) + 2 * prefixlen;
+			size += pointArray_GMLsize( ((LWLINE*)subgeom)->points, precision );
+		}
+		else if( subgeom->type == CIRCSTRINGTYPE )
+		{
+			size += sizeof( "<ArcString><posList></ArcString></posList>") + 4 * prefixlen;
+			size += pointArray_GMLsize( ((LWCIRCSTRING*)subgeom)->points, precision );
+		}
+		else
+		{
+			continue;
+		}
+		if (IS_DIMS(opts))
+		{
+			size += sizeof(" srsDimension='x'");
+		}
+	}
+	return size;
+}
+
+static size_t 
+asgml3_compound_buf(const LWCOMPOUND *col, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
+{
+	LWGEOM *subgeom;
+	int i;
+	char* ptr = output;
+	int dimension=2;
+
+	if (FLAGS_GET_Z(col->flags))
+	{
+		dimension = 3;
+	}
+
+	ptr += sprintf( ptr, "<%sCurve", prefix );
+	if (srs)
+	{
+		ptr += sprintf(ptr, " srsName=\"%s\"", srs);
+	}
+	if (id)
+	{
+		ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id );
+	}
+	ptr += sprintf( ptr, ">" );
+	ptr += sprintf( ptr, "<%ssegments>", prefix );
+
+	for( i = 0; i < col->ngeoms; ++i )
+	{
+		subgeom = col->geoms[i];
+		if( subgeom->type != LINETYPE && subgeom->type != CIRCSTRINGTYPE )
+		{
+			continue;
+		}
+
+		if ( subgeom->type == LINETYPE )
+		{
+			ptr += sprintf( ptr, "<%sLineStringSegment><%sposList", prefix, prefix );
+			if (IS_DIMS(opts))
+			{
+				ptr += sprintf(ptr, " srsDimension=\"%d\"", dimension);
+			}
+			ptr += sprintf(ptr, ">");
+			ptr += pointArray_toGML3(((LWCIRCSTRING*)subgeom)->points, ptr, precision, opts);
+			ptr += sprintf( ptr, "</%sposList></%sLineStringSegment>", prefix, prefix );
+		}
+		else if( subgeom->type == CIRCSTRINGTYPE )
+		{
+			ptr += sprintf( ptr, "<%sArcString><%sposList" , prefix, prefix );
+			if (IS_DIMS(opts))
+			{
+				ptr += sprintf(ptr, " srsDimension=\"%d\"", dimension);
+			}
+			ptr += sprintf(ptr, ">");
+			ptr += pointArray_toGML3(((LWLINE*)subgeom)->points, ptr, precision, opts);
+			ptr += sprintf( ptr, "</%sposList></%sArcString>", prefix, prefix );
+		}
+	}
+
+	ptr += sprintf( ptr, "</%ssegments>", prefix );
+	ptr += sprintf( ptr, "</%sCurve>", prefix );
+	return ( ptr - output );
+}
+
+static char *
+asgml3_compound(const LWCOMPOUND *col, const char *srs, int precision, int opts, const char *prefix, const char *id )
+{
+	char* gml;
+	size_t size;
+
+	size = asgml3_compound_size( col, srs, precision, opts, prefix, id );
+	gml = lwalloc( size );
+	asgml3_compound_buf( col, srs, gml, precision, opts, prefix, id );
+	return gml;
+}
+
+static size_t asgml3_curvepoly_size(const LWCURVEPOLY* poly, const char *srs, int precision, int opts, const char *prefix, const char *id)
+{
+	size_t prefixlen = strlen(prefix);
+	LWGEOM* subgeom;
+	size_t size = sizeof( "<Polygon></Polygon" ) + 2 * prefixlen;
+	if (srs) size += strlen(srs) + sizeof(" srsName=..");
+	if (id)  size += strlen(id) + strlen(prefix) + sizeof(" id=..");
+	int i;
+
+	for( i = 0; i < poly->nrings; ++i )
+	{
+		if( i == 0 )
+		{
+			size += sizeof( "<exterior></exterior>" ) + 2 * prefixlen;
+		}
+		else
+		{
+			size += sizeof( "<interior></interior>" ) + 2 * prefixlen;
+		}
+		subgeom = poly->rings[i];
+
+		if ( subgeom->type == LINETYPE )
+		{
+			size += sizeof("<LinearRing></LinearRing>") + 2 * prefixlen;
+			size += sizeof("<posList></posList") + 2 * prefixlen;
+			if (IS_DIMS(opts))
+			{
+				size += sizeof(" srsDimension='x'");
+			}
+			size += pointArray_GMLsize( ((LWLINE*)subgeom)->points, precision );
+		}
+		else if( subgeom->type == CIRCSTRINGTYPE )
+		{
+			size += sizeof("<Ring></Ring>") + 2 * prefixlen;
+			size += sizeof("<CurveMember></CurveMember>") + 2 * prefixlen;
+			size += asgml3_circstring_size((LWCIRCSTRING*)subgeom, srs, precision, opts, prefix, id);
+		}
+		else if( subgeom->type == COMPOUNDTYPE )
+		{
+			size += sizeof("<Ring></Ring>") + 2 * prefixlen;
+			size += sizeof("<curveMember></curveMember>") + 2 * prefixlen;
+			size += asgml3_compound_size( (LWCOMPOUND*)subgeom, srs, precision, opts, prefix, id );
+		}
+	}
+	return size;
+}
+
+static size_t asgml3_curvepoly_buf(const LWCURVEPOLY* poly, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
+{
+	int i;
+	LWGEOM* subgeom;
+	char *ptr=output;
+	int dimension=2;
+
+	if (FLAGS_GET_Z(poly->flags))
+	{
+		dimension = 3;
+	}
+
+	ptr += sprintf( ptr, "<%sPolygon", prefix );
+	if (srs)
+	{
+		ptr += sprintf(ptr, " srsName=\"%s\"", srs);
+	}
+	if (id)
+	{
+		ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id );
+	}
+	ptr += sprintf(ptr, ">");
+
+	for( i = 0; i < poly->nrings; ++i )
+	{
+		if( i == 0 )
+		{
+			ptr += sprintf( ptr, "<%sexterior>", prefix);
+		}
+		else
+		{
+			ptr += sprintf( ptr, "<%sinterior>", prefix);
+		}
+
+		subgeom = poly->rings[i];
+		if ( subgeom->type == LINETYPE )
+		{
+			ptr += sprintf( ptr, "<%sLinearRing>", prefix );
+			ptr += sprintf( ptr, "<%sposList", prefix );
+			if (IS_DIMS(opts))
+			{
+				ptr += sprintf(ptr, " srsDimension=\"%d\"", dimension);
+			}
+			ptr += sprintf( ptr, ">" );
+			ptr += pointArray_toGML3(((LWLINE*)subgeom)->points, ptr, precision, opts);
+			ptr += sprintf( ptr, "</%sposList>", prefix );
+			ptr += sprintf( ptr, "</%sLinearRing>", prefix );
+		}
+		else if( subgeom->type == CIRCSTRINGTYPE )
+		{
+			ptr += sprintf( ptr, "<%sRing>", prefix );
+			ptr += sprintf( ptr, "<%scurveMember>", prefix );
+			ptr += asgml3_circstring_buf( (LWCIRCSTRING*)subgeom, srs, ptr, precision, opts, prefix, id );
+			ptr += sprintf( ptr, "</%scurveMember>", prefix );
+			ptr += sprintf( ptr, "</%sRing>", prefix );
+		}
+		else if( subgeom->type == COMPOUNDTYPE )
+		{
+			ptr += sprintf( ptr, "<%sRing>", prefix );
+			ptr += sprintf( ptr, "<%scurveMember>", prefix );
+			ptr += asgml3_compound_buf( (LWCOMPOUND*)subgeom, srs, ptr, precision, opts, prefix, id );
+			ptr += sprintf( ptr, "</%scurveMember>", prefix );
+			ptr += sprintf( ptr, "</%sRing>", prefix );
+		}
+
+		if( i == 0 )
+		{
+			ptr += sprintf( ptr, "</%sexterior>", prefix);
+		}
+		else
+		{
+			ptr += sprintf( ptr, "</%sinterior>", prefix);
+		}
+	}
+
+	ptr += sprintf( ptr, "</%sPolygon>", prefix );
+	return (ptr - output);
+}
+
+static char* asgml3_curvepoly(const LWCURVEPOLY* poly, const char *srs, int precision, int opts, const char *prefix, const char *id)
+{
+	char* gml;
+	size_t size;
+
+	size = asgml3_curvepoly_size( poly, srs, precision, opts, prefix, id );
+	gml = lwalloc( size );
+	asgml3_curvepoly_buf( poly, srs, gml, precision, opts, prefix, id );
+	return gml;
+}
+
 
 static size_t
 asgml3_triangle_size(const LWTRIANGLE *triangle, const char *srs, int precision, int opts, const char *prefix, const char *id)
@@ -1095,7 +1453,8 @@ asgml3_multi_buf(const LWCOLLECTION *col, const char *srs, char *output, int pre
 	if (srs) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
 	if (id)  ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id);
 
-	if (!col->ngeoms) {
+	if (!col->ngeoms)
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
@@ -1329,7 +1688,8 @@ asgml3_collection_buf(const LWCOLLECTION *col, const char *srs, char *output, in
 	if (srs) ptr += sprintf(ptr, " srsName=\"%s\"", srs);
 	if (id)  ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id);
 
-	if (!col->ngeoms) {
+	if (!col->ngeoms)
+	{
 		ptr += sprintf(ptr, "/>");
 		return (ptr-output);
 	}
@@ -1358,9 +1718,9 @@ asgml3_collection_buf(const LWCOLLECTION *col, const char *srs, char *output, in
 			else
 				ptr += asgml3_multi_buf((LWCOLLECTION*)subgeom, 0, ptr, precision, opts, prefix, id);
 		}
-		else 
+		else
 			lwerror("asgml3_collection_buf: unknown geometry type");
-			
+
 		ptr += sprintf(ptr, "</%sgeometryMember>", prefix);
 	}
 
@@ -1385,6 +1745,149 @@ asgml3_collection(const LWCOLLECTION *col, const char *srs, int precision, int o
 	return gml;
 }
 
+static size_t asgml3_multicurve_size( const LWMCURVE* cur, const char *srs, int precision, int opts, const char *prefix, const char *id )
+{
+	size_t prefixlen = strlen(prefix);
+	size_t size = sizeof( "<MultiCurve></MultiCurve>" ) + 2 * prefixlen;
+	if (srs) size += strlen(srs) + sizeof(" srsName=..");
+	if (id)  size += strlen(id) + strlen(prefix) + sizeof(" id=..");
+	LWGEOM* subgeom;
+	int i;
+
+	for( i = 0; i < cur->ngeoms; ++i )
+	{
+		size += sizeof( "<curveMember></curveMember>" ) + 2 * prefixlen;
+		subgeom = cur->geoms[i];
+		if ( subgeom->type == LINETYPE )
+		{
+			size += asgml3_line_size( (LWLINE*)subgeom, srs, precision, opts, prefix, id );
+		}
+		else if( subgeom->type == CIRCSTRINGTYPE )
+		{
+			size += asgml3_circstring_size( (LWCIRCSTRING*)subgeom, srs, precision, opts, prefix, id );
+		}
+		else if( subgeom->type == COMPOUNDTYPE )
+		{
+			size += asgml3_compound_size( (LWCOMPOUND*)subgeom, srs, precision, opts, prefix, id );
+		}
+	}
+	return size;
+}
+
+static size_t asgml3_multicurve_buf( const LWMCURVE* cur, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id )
+{
+	char* ptr = output;
+	LWGEOM* subgeom;
+	int i;
+
+	ptr += sprintf(ptr, "<%sMultiCurve", prefix );
+	if (srs)
+	{
+		ptr += sprintf(ptr, " srsName=\"%s\"", srs);
+	}
+	if (id)
+	{
+		ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id );
+	}
+	ptr += sprintf( ptr, ">");
+
+	for( i = 0; i < cur->ngeoms; ++i )
+	{
+		ptr += sprintf(ptr, "<%scurveMember>", prefix );
+		subgeom = cur->geoms[i];
+		if ( subgeom->type == LINETYPE )
+		{
+			ptr += asgml3_line_buf( (LWLINE*)subgeom, srs, ptr, precision, opts, prefix, id );
+		}
+		else if( subgeom->type == CIRCSTRINGTYPE )
+		{
+			ptr += asgml3_circstring_buf( (LWCIRCSTRING*)subgeom, srs, ptr, precision, opts, prefix, id );
+		}
+		else if( subgeom->type == COMPOUNDTYPE )
+		{
+			ptr += asgml3_compound_buf( (LWCOMPOUND*)subgeom, srs, ptr, precision, opts, prefix, id );
+		}
+		ptr += sprintf(ptr, "</%scurveMember>", prefix );
+	}
+	ptr += sprintf(ptr, "</%sMultiCurve>", prefix );
+	return (ptr - output);
+}
+
+static char *asgml3_multicurve( const LWMCURVE* cur, const char *srs, int precision, int opts, const char *prefix, const char *id )
+{
+	char* gml;
+	size_t size =asgml3_multicurve_size( cur, srs, precision, opts, prefix, id );
+	gml = lwalloc( size );
+	asgml3_multicurve_buf( cur, srs, gml, precision, opts, prefix, id );
+	return gml;
+}
+
+static size_t asgml3_multisurface_size(const LWMSURFACE *sur, const char *srs, int precision, int opts, const char *prefix, const char *id)
+{
+	size_t prefixlen = strlen(prefix);
+	size_t size = sizeof( "<MultiSurface></MultiSurface>" ) + 2 * prefixlen;
+	if (srs) size += strlen(srs) + sizeof(" srsName=..");
+	if (id)  size += strlen(id) + strlen(prefix) + sizeof(" id=..");
+	LWGEOM* subgeom;
+	int i;
+
+	for( i = 0; i < sur->ngeoms; ++i )
+	{
+		subgeom = sur->geoms[i];
+		if( subgeom->type == POLYGONTYPE )
+		{
+			size += asgml3_poly_size( (LWPOLY*)sur->geoms[i], srs, precision, opts, prefix, id );
+		}
+		else if( subgeom->type == CURVEPOLYTYPE )
+		{
+			size += asgml3_curvepoly_size( (LWCURVEPOLY*)sur->geoms[i], srs, precision, opts, prefix, id );
+		}
+	}
+	return size;
+}
+
+static size_t asgml3_multisurface_buf(const LWMSURFACE *sur, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
+{
+	char* ptr = output;
+	int i;
+	LWGEOM* subgeom;
+
+	ptr += sprintf( ptr, "<%sMultiSurface", prefix );
+	if (srs)
+	{
+		ptr += sprintf(ptr, " srsName=\"%s\"", srs);
+	}
+	if (id)
+	{
+		ptr += sprintf(ptr, " %sid=\"%s\"", prefix, id );
+	}
+	ptr += sprintf( ptr, ">" );
+
+	for( i = 0; i < sur->ngeoms; ++i )
+	{
+		subgeom = sur->geoms[i];
+		if( subgeom->type == POLYGONTYPE )
+		{
+			ptr += asgml3_poly_buf( (LWPOLY*)sur->geoms[i], srs, ptr, precision, opts, 0, prefix, id );
+		}
+		else if( subgeom->type == CURVEPOLYTYPE )
+		{
+			ptr += asgml3_curvepoly_buf( (LWCURVEPOLY*)sur->geoms[i], srs, ptr, precision, opts, prefix, id );
+		}
+	}
+	ptr += sprintf( ptr, "</%sMultiSurface>", prefix );
+	return ptr - output;
+}
+
+static char *asgml3_multisurface(const LWMSURFACE *sur, const char *srs, int precision, int opts, const char *prefix, const char *id)
+{
+	char* gml;
+	size_t size = asgml3_multisurface_size( sur, srs, precision, opts, prefix, id );
+	gml = lwalloc( size );
+	asgml3_multisurface_buf( sur, srs, gml, precision, opts, prefix, id );
+	return gml;
+}
+
 
 /* In GML3, inside <posList> or <pos>, coordinates are separated by a space separator
  * In GML3 also, lat/lon are reversed for geocentric data
diff --git a/liblwgeom/lwout_kml.c b/liblwgeom/lwout_kml.c
index b15a4df..27d659d 100644
--- a/liblwgeom/lwout_kml.c
+++ b/liblwgeom/lwout_kml.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwout_kml.c 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/liblwgeom/lwout_svg.c b/liblwgeom/lwout_svg.c
index 56c2b09..e2194da 100644
--- a/liblwgeom/lwout_svg.c
+++ b/liblwgeom/lwout_svg.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwout_svg.c 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/liblwgeom/lwout_twkb.c b/liblwgeom/lwout_twkb.c
new file mode 100644
index 0000000..ae542e8
--- /dev/null
+++ b/liblwgeom/lwout_twkb.c
@@ -0,0 +1,601 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ *
+ * Copyright (C) 2013 Nicklas Avén
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include "lwout_twkb.h"
+
+/*
+* GeometryType, and dimensions
+*/
+static uint8_t lwgeom_twkb_type(const LWGEOM *geom)
+{
+	uint8_t twkb_type = 0;
+
+	LWDEBUGF(2, "Entered  lwgeom_twkb_type",0);
+
+	switch ( geom->type )
+	{
+		case POINTTYPE:
+			twkb_type = WKB_POINT_TYPE;
+			break;
+		case LINETYPE:
+			twkb_type = WKB_LINESTRING_TYPE;
+			break;
+		case POLYGONTYPE:
+			twkb_type = WKB_POLYGON_TYPE;
+			break;
+		case MULTIPOINTTYPE:
+			twkb_type = WKB_MULTIPOINT_TYPE;
+			break;
+		case MULTILINETYPE:
+			twkb_type = WKB_MULTILINESTRING_TYPE;
+			break;
+		case MULTIPOLYGONTYPE:
+			twkb_type = WKB_MULTIPOLYGON_TYPE;
+			break;
+		case COLLECTIONTYPE:
+			twkb_type = WKB_GEOMETRYCOLLECTION_TYPE;
+			break;
+		default:
+			lwerror("Unsupported geometry type: %s [%d]",
+				lwtype_name(geom->type), geom->type);
+	}
+	return twkb_type;
+}
+
+
+/**
+* Calculates the size of the bbox in varints in the form:
+* xmin, xdelta, ymin, ydelta
+*/
+static size_t sizeof_bbox(TWKB_STATE *ts, int ndims)
+{
+	int i;
+	uint8_t buf[16];
+	size_t size = 0;
+	LWDEBUGF(2, "Entered %s", __func__);
+	for ( i = 0; i < ndims; i++ )
+	{
+		size += varint_s64_encode_buf(ts->bbox_min[i], buf);
+		size += varint_s64_encode_buf((ts->bbox_max[i] - ts->bbox_min[i]), buf);
+	}
+	return size;
+}
+/**
+* Writes the bbox in varints in the form:
+* xmin, xdelta, ymin, ydelta
+*/
+static void write_bbox(TWKB_STATE *ts, int ndims)
+{
+	int i;
+	LWDEBUGF(2, "Entered %s", __func__);
+	for ( i = 0; i < ndims; i++ )
+	{
+		bytebuffer_append_varint(ts->header_buf, ts->bbox_min[i]);
+		bytebuffer_append_varint(ts->header_buf, (ts->bbox_max[i] - ts->bbox_min[i]));
+	}
+}
+
+
+/**
+* Stores a pointarray as varints in the buffer
+* @register_npoints, controls whether an npoints entry is added to the buffer (used to skip npoints for point types)
+* @dimension, states the dimensionality of object this array is part of (0 = point, 1 = linear, 2 = areal)
+*/
+static int ptarray_to_twkb_buf(const POINTARRAY *pa, TWKB_GLOBALS *globals, TWKB_STATE *ts, int register_npoints, int minpoints)
+{
+	int ndims = FLAGS_NDIMS(pa->flags);
+	int i, j;
+	bytebuffer_t b;
+	bytebuffer_t *b_p;
+	int64_t nextdelta[MAX_N_DIMS];
+	int npoints = 0;
+	size_t npoints_offset = 0;
+
+	LWDEBUGF(2, "Entered %s", __func__);
+
+	/* Dispense with the empty case right away */
+	if ( pa->npoints == 0 && register_npoints )	
+	{		
+		LWDEBUGF(4, "Register npoints:%d", pa->npoints);
+		bytebuffer_append_uvarint(ts->geom_buf, pa->npoints);
+		return 0;
+	}
+
+	/* If npoints is more than 127 it is unpredictable how many bytes npoints will need */
+	/* Then we have to store the deltas in a temp buffer to later add them after npoints */
+	/* If noints is below 128 we know 1 byte will be needed */
+	/* Then we can make room for that 1 byte at once and write to */
+	/* ordinary buffer */
+	if( pa->npoints > 127 )
+	{
+		/* Independent buffer to hold the coordinates, so we can put the npoints */
+		/* into the stream once we know how many points we actually have */
+		bytebuffer_init_with_size(&b, 3 * ndims * pa->npoints);
+		b_p = &b;
+	}
+	else
+	{
+		/* We give an alias to our ordinary buffer */
+		b_p = ts->geom_buf;
+		if ( register_npoints )		
+		{		
+			/* We do not store a pointer to the place where we want the npoints value */
+			/* Instead we store how far from the beginning of the buffer we want the value */
+			/* That is because we otherwise will get in trouble if the buffer is reallocated */			
+			npoints_offset = b_p->writecursor - b_p->buf_start;
+			
+			/* We just move the cursor 1 step to make room for npoints byte */
+			/* We use the function append_byte even if we have no value yet, */
+			/* since that gives us the check for big enough buffer and moves the cursor */
+			bytebuffer_append_byte(b_p, 0);
+		}
+	}
+	
+	for ( i = 0; i < pa->npoints; i++ )
+	{
+		double *dbl_ptr = (double*)getPoint_internal(pa, i);
+		int diff = 0;
+
+		/* Write this coordinate to the buffer as a varint */
+		for ( j = 0; j < ndims; j++ )
+		{
+			/* To get the relative coordinate we don't get the distance */
+			/* from the last point but instead the distance from our */
+			/* last accumulated point. This is important to not build up an */
+			/* accumulated error when rounding the coordinates */
+			nextdelta[j] = (int64_t) lround(globals->factor[j] * dbl_ptr[j]) - ts->accum_rels[j];
+			LWDEBUGF(4, "deltavalue: %d, ", nextdelta[j]);
+			diff += llabs(nextdelta[j]);
+		}
+		
+		/* Skipping the first point is not allowed */
+		/* If the sum(abs()) of all the deltas was zero, */
+		/* then this was a duplicate point, so we can ignore it */
+		if ( i > minpoints && diff == 0 )
+			continue;
+		
+		/* We really added a point, so... */
+		npoints++;
+		
+		/* Write this vertex to the temporary buffer as varints */
+		for ( j = 0; j < ndims; j++ )
+		{
+			ts->accum_rels[j] += nextdelta[j];
+			bytebuffer_append_varint(b_p, nextdelta[j]);
+		}
+
+		/* See if this coordinate expands the bounding box */
+		if( globals->variant & TWKB_BBOX )
+		{
+			for ( j = 0; j < ndims; j++ )
+			{
+				if( ts->accum_rels[j] > ts->bbox_max[j] )
+					ts->bbox_max[j] = ts->accum_rels[j];
+
+				if( ts->accum_rels[j] < ts->bbox_min[j] )
+					ts->bbox_min[j] = ts->accum_rels[j];
+			}
+		}
+
+	}	
+
+	if ( pa->npoints > 127 )
+	{		
+		/* Now write the temporary results into the main buffer */
+		/* First the npoints */
+		if ( register_npoints )	
+			bytebuffer_append_uvarint(ts->geom_buf, npoints);
+		/* Now the coordinates */
+		bytebuffer_append_bytebuffer(ts->geom_buf, b_p);
+		
+		/* Clear our temporary buffer */
+		lwfree(b.buf_start);
+	}
+	else
+	{
+		/* If we didn't use a temp buffer, we just write that npoints value */
+		/* to where it belongs*/
+		if ( register_npoints )	
+			varint_u64_encode_buf(npoints, b_p->buf_start + npoints_offset);
+	}
+	
+	return 0;
+}
+
+/******************************************************************
+* POINTS
+*******************************************************************/
+
+static int lwpoint_to_twkb_buf(const LWPOINT *pt, TWKB_GLOBALS *globals, TWKB_STATE *ts)
+{
+	LWDEBUGF(2, "Entered %s", __func__);
+
+	/* Set the coordinates (don't write npoints) */
+	ptarray_to_twkb_buf(pt->point, globals, ts, 0, 1);
+	return 0;
+}
+
+/******************************************************************
+* LINESTRINGS
+*******************************************************************/
+
+static int lwline_to_twkb_buf(const LWLINE *line, TWKB_GLOBALS *globals, TWKB_STATE *ts)
+{
+	LWDEBUGF(2, "Entered %s", __func__);
+
+	/* Set the coordinates (do write npoints) */
+	ptarray_to_twkb_buf(line->points, globals, ts, 1, 2);
+	return 0;
+}
+
+/******************************************************************
+* POLYGONS
+*******************************************************************/
+
+static int lwpoly_to_twkb_buf(const LWPOLY *poly, TWKB_GLOBALS *globals, TWKB_STATE *ts)
+{
+	int i;
+
+	/* Set the number of rings */
+	bytebuffer_append_uvarint(ts->geom_buf, (uint64_t) poly->nrings);
+
+	for ( i = 0; i < poly->nrings; i++ )
+	{
+		/* Set the coordinates (do write npoints) */
+		ptarray_to_twkb_buf(poly->rings[i], globals, ts, 1, 4);
+	}
+
+	return 0;
+}
+
+
+
+/******************************************************************
+* MULTI-GEOMETRYS (MultiPoint, MultiLinestring, MultiPolygon)
+*******************************************************************/
+
+static int lwmulti_to_twkb_buf(const LWCOLLECTION *col, TWKB_GLOBALS *globals, TWKB_STATE *ts)
+{
+	int i;
+	int nempty = 0;
+
+	LWDEBUGF(2, "Entered %s", __func__);
+	LWDEBUGF(4, "Number of geometries in multi is %d", col->ngeoms);
+
+	/* Deal with special case for MULTIPOINT: skip any empty points */
+	if ( col->type == MULTIPOINTTYPE )
+	{
+		for ( i = 0; i < col->ngeoms; i++ )
+			if ( lwgeom_is_empty(col->geoms[i]) )
+				nempty++;
+	}
+
+	/* Set the number of geometries */
+	bytebuffer_append_uvarint(ts->geom_buf, (uint64_t) (col->ngeoms - nempty));
+
+	/* We've been handed an idlist, so write it in */
+	if ( ts->idlist )
+	{
+		for ( i = 0; i < col->ngeoms; i++ )
+		{
+			/* Skip empty points in multipoints, we can't represent them */
+			if ( col->type == MULTIPOINTTYPE && lwgeom_is_empty(col->geoms[i]) )
+				continue;
+			
+			bytebuffer_append_varint(ts->geom_buf, ts->idlist[i]);
+		}
+		
+		/* Empty it out to nobody else uses it now */
+		ts->idlist = NULL;
+	}
+
+	for ( i = 0; i < col->ngeoms; i++ )
+	{
+		/* Skip empty points in multipoints, we can't represent them */
+		if ( col->type == MULTIPOINTTYPE && lwgeom_is_empty(col->geoms[i]) )
+			continue;
+
+		lwgeom_to_twkb_buf(col->geoms[i], globals, ts);
+	}
+	return 0;
+}
+
+/******************************************************************
+* GEOMETRYCOLLECTIONS
+*******************************************************************/
+
+static int lwcollection_to_twkb_buf(const LWCOLLECTION *col, TWKB_GLOBALS *globals, TWKB_STATE *ts)
+{
+	int i;
+
+	LWDEBUGF(2, "Entered %s", __func__);
+	LWDEBUGF(4, "Number of geometries in collection is %d", col->ngeoms);
+
+	/* Set the number of geometries */
+	bytebuffer_append_uvarint(ts->geom_buf, (uint64_t) col->ngeoms);
+
+	/* We've been handed an idlist, so write it in */
+	if ( ts->idlist )
+	{
+		for ( i = 0; i < col->ngeoms; i++ )
+			bytebuffer_append_varint(ts->geom_buf, ts->idlist[i]);
+		
+		/* Empty it out to nobody else uses it now */
+		ts->idlist = NULL;
+	}
+
+	/* Write in the sub-geometries */
+	for ( i = 0; i < col->ngeoms; i++ )
+	{
+		lwgeom_write_to_buffer(col->geoms[i], globals, ts);
+	}
+	return 0;
+}
+
+
+/******************************************************************
+* Handle whole TWKB
+*******************************************************************/
+
+static int lwgeom_to_twkb_buf(const LWGEOM *geom, TWKB_GLOBALS *globals, TWKB_STATE *ts)
+{
+	LWDEBUGF(2, "Entered %s", __func__);
+
+	switch ( geom->type )
+	{
+		case POINTTYPE:
+		{
+			LWDEBUGF(4,"Type found is Point, %d", geom->type);
+			return lwpoint_to_twkb_buf((LWPOINT*) geom, globals, ts);
+		}
+		case LINETYPE:
+		{
+			LWDEBUGF(4,"Type found is Linestring, %d", geom->type);
+			return lwline_to_twkb_buf((LWLINE*) geom, globals, ts);
+		}
+		/* Polygon has 'nrings' and 'rings' elements */
+		case POLYGONTYPE:
+		{
+			LWDEBUGF(4,"Type found is Polygon, %d", geom->type);
+			return lwpoly_to_twkb_buf((LWPOLY*)geom, globals, ts);
+		}
+
+		/* All these Collection types have 'ngeoms' and 'geoms' elements */
+		case MULTIPOINTTYPE:
+		case MULTILINETYPE:
+		case MULTIPOLYGONTYPE:
+		{
+			LWDEBUGF(4,"Type found is Multi, %d", geom->type);
+			return lwmulti_to_twkb_buf((LWCOLLECTION*)geom, globals, ts);
+		}
+		case COLLECTIONTYPE:
+		{
+			LWDEBUGF(4,"Type found is collection, %d", geom->type);
+			return lwcollection_to_twkb_buf((LWCOLLECTION*) geom, globals, ts);
+		}
+		/* Unknown type! */
+		default:
+			lwerror("Unsupported geometry type: %s [%d]", lwtype_name((geom)->type), (geom)->type);
+	}
+
+	return 0;
+}
+
+
+static int lwgeom_write_to_buffer(const LWGEOM *geom, TWKB_GLOBALS *globals, TWKB_STATE *parent_state)
+{
+	int i, is_empty, has_z, has_m, ndims;
+	size_t bbox_size = 0, optional_precision_byte = 0;
+	uint8_t flag = 0, type_prec = 0;
+
+	TWKB_STATE child_state;
+	memset(&child_state, 0, sizeof(TWKB_STATE));
+	child_state.header_buf = bytebuffer_create_with_size(16);
+	child_state.geom_buf = bytebuffer_create_with_size(64);
+	child_state.idlist = parent_state->idlist;
+
+	/* Read dimensionality from input */
+	has_z = lwgeom_has_z(geom);
+	has_m = lwgeom_has_m(geom);
+	ndims = lwgeom_ndims(geom);
+	is_empty = lwgeom_is_empty(geom);
+
+	/* Do we need extended precision? If we have a Z or M we do. */
+	optional_precision_byte = (has_z || has_m);
+
+	/* Both X and Y dimension use the same precision */
+	globals->factor[0] = pow(10, globals->prec_xy);
+	globals->factor[1] = globals->factor[0];
+
+	/* Z and M dimensions have their own precisions */
+	if ( has_z )
+		globals->factor[2] = pow(10, globals->prec_z);
+	if ( has_m )
+		globals->factor[2 + has_z] = pow(10, globals->prec_m);
+
+	/* Reset stats */
+	for ( i = 0; i < MAX_N_DIMS; i++ )
+	{
+		/* Reset bbox calculation */
+		child_state.bbox_max[i] = INT64_MIN;
+		child_state.bbox_min[i] = INT64_MAX;
+		/* Reset acumulated delta values to get absolute values on next point */
+		child_state.accum_rels[i] = 0;
+	}
+
+	/* TYPE/PRECISION BYTE */
+	if ( abs(globals->prec_xy) > 7 )
+		lwerror("%s: X/Z precision cannot be greater than 7 or less than -7", __func__);
+	
+	/* Read the TWKB type number from the geometry */
+	TYPE_PREC_SET_TYPE(type_prec, lwgeom_twkb_type(geom));
+	/* Zig-zag the precision value before encoding it since it is a signed value */
+	TYPE_PREC_SET_PREC(type_prec, zigzag8(globals->prec_xy));
+	/* Write the type and precision byte */
+	bytebuffer_append_byte(child_state.header_buf, type_prec);
+
+	/* METADATA BYTE */
+	/* Set first bit if we are going to store bboxes */
+	FIRST_BYTE_SET_BBOXES(flag, (globals->variant & TWKB_BBOX) && ! is_empty);
+	/* Set second bit if we are going to store resulting size */
+	FIRST_BYTE_SET_SIZES(flag, globals->variant & TWKB_SIZE);
+	/* There will be no ID-list (for now) */
+	FIRST_BYTE_SET_IDLIST(flag, parent_state->idlist && ! is_empty);
+	/* Are there higher dimensions */
+	FIRST_BYTE_SET_EXTENDED(flag, optional_precision_byte);
+	/* Empty? */
+	FIRST_BYTE_SET_EMPTY(flag, is_empty);
+	/* Write the header byte */
+	bytebuffer_append_byte(child_state.header_buf, flag);
+
+	/* EXTENDED PRECISION BYTE (OPTIONAL) */
+	/* If needed, write the extended dim byte */
+	if( optional_precision_byte )
+	{
+		uint8_t flag = 0;
+
+		if ( has_z && ( globals->prec_z > 7 || globals->prec_z < 0 ) )
+			lwerror("%s: Z precision cannot be negative or greater than 7", __func__);
+
+		if ( has_m && ( globals->prec_m > 7 || globals->prec_m < 0 ) )
+			lwerror("%s: M precision cannot be negative or greater than 7", __func__);
+
+		HIGHER_DIM_SET_HASZ(flag, has_z);
+		HIGHER_DIM_SET_HASM(flag, has_m);
+		HIGHER_DIM_SET_PRECZ(flag, globals->prec_z);
+		HIGHER_DIM_SET_PRECM(flag, globals->prec_m);
+		bytebuffer_append_byte(child_state.header_buf, flag);
+	}
+
+	/* It the geometry is empty, we're almost done */
+	if ( is_empty )
+	{
+		/* If this output is sized, write the size of */
+		/* all following content, which is zero because */
+		/* there is none */
+		if ( globals->variant & TWKB_SIZE )
+			bytebuffer_append_byte(child_state.header_buf, 0);
+
+		bytebuffer_append_bytebuffer(parent_state->geom_buf, child_state.header_buf);
+		bytebuffer_destroy(child_state.header_buf);
+		bytebuffer_destroy(child_state.geom_buf);
+		return 0;
+	}
+
+	/* Write the TWKB into the output buffer */
+	lwgeom_to_twkb_buf(geom, globals, &child_state);
+
+	/*If we have a header_buf, we know that this function is called inside a collection*/
+	/*and then we have to merge the bboxes of the included geometries*/
+	/*and put the result to the parent (the collection)*/
+	if( (globals->variant & TWKB_BBOX) && parent_state->header_buf )
+	{
+		LWDEBUG(4,"Merge bboxes");
+		for ( i = 0; i < ndims; i++ )
+		{
+			if(child_state.bbox_min[i]<parent_state->bbox_min[i])
+				parent_state->bbox_min[i] = child_state.bbox_min[i];
+			if(child_state.bbox_max[i]>parent_state->bbox_max[i])
+				parent_state->bbox_max[i] = child_state.bbox_max[i];
+		}
+	}
+	
+	/* Did we have a box? If so, how big? */
+	bbox_size = 0;
+	if( globals->variant & TWKB_BBOX )
+	{
+		LWDEBUG(4,"We want boxes and will calculate required size");
+		bbox_size = sizeof_bbox(&child_state, ndims);
+	}
+
+	/* Write the size if wanted */
+	if( globals->variant & TWKB_SIZE )
+	{
+		/* Here we have to add what we know will be written to header */
+		/* buffer after size value is written */
+		size_t size_to_register = bytebuffer_getlength(child_state.geom_buf);
+		size_to_register += bbox_size;
+		bytebuffer_append_uvarint(child_state.header_buf, size_to_register);
+	}
+
+	if( globals->variant & TWKB_BBOX )
+		write_bbox(&child_state, ndims);
+
+	bytebuffer_append_bytebuffer(parent_state->geom_buf,child_state.header_buf);
+	bytebuffer_append_bytebuffer(parent_state->geom_buf,child_state.geom_buf);
+
+	bytebuffer_destroy(child_state.header_buf);
+	bytebuffer_destroy(child_state.geom_buf);
+	return 0;
+}
+
+
+/**
+* Convert LWGEOM to a char* in TWKB format. Caller is responsible for freeing
+* the returned array.
+*/
+uint8_t*
+lwgeom_to_twkb_with_idlist(const LWGEOM *geom, int64_t *idlist, uint8_t variant,
+               int8_t precision_xy, int8_t precision_z, int8_t precision_m,
+               size_t *twkb_size)
+{
+	LWDEBUGF(2, "Entered %s", __func__);
+	LWDEBUGF(2, "variant value %x", variant);
+
+	TWKB_GLOBALS tg;
+	TWKB_STATE ts;
+
+	uint8_t *twkb;
+
+	memset(&ts, 0, sizeof(TWKB_STATE));
+	memset(&tg, 0, sizeof(TWKB_GLOBALS));
+	
+	tg.variant = variant;
+	tg.prec_xy = precision_xy;
+	tg.prec_z = precision_z;
+	tg.prec_m = precision_m;
+
+	if ( idlist && ! lwgeom_is_collection(geom) )
+	{
+		lwerror("Only collections can support ID lists");
+		return NULL;
+	}
+
+	if ( ! geom )
+	{
+		LWDEBUG(4,"Cannot convert NULL into TWKB.");
+		lwerror("Cannot convert NULL into TWKB");
+		return NULL;
+	}
+	
+	ts.idlist = idlist;
+	ts.header_buf = NULL;
+	ts.geom_buf = bytebuffer_create();
+	lwgeom_write_to_buffer(geom, &tg, &ts);
+
+	if ( twkb_size )
+		*twkb_size = bytebuffer_getlength(ts.geom_buf);
+
+	twkb = ts.geom_buf->buf_start;
+	lwfree(ts.geom_buf);
+	return twkb;
+}
+
+
+uint8_t*
+lwgeom_to_twkb(const LWGEOM *geom, uint8_t variant,
+               int8_t precision_xy, int8_t precision_z, int8_t precision_m,
+               size_t *twkb_size)
+{
+	return lwgeom_to_twkb_with_idlist(geom, NULL, variant, precision_xy, precision_z, precision_m, twkb_size);
+}
+
+
diff --git a/liblwgeom/lwout_twkb.h b/liblwgeom/lwout_twkb.h
new file mode 100644
index 0000000..a1a7024
--- /dev/null
+++ b/liblwgeom/lwout_twkb.h
@@ -0,0 +1,81 @@
+
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ * Copyright 2013 Nicklas Avén
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include "liblwgeom_internal.h"
+#include "lwgeom_log.h"
+#include <limits.h>
+#include "bytebuffer.h"
+
+/* Maximum number of geometry dimmensions that internal arrays can hold */
+#define MAX_N_DIMS 4
+
+#define MAX_BBOX_SIZE 64
+#define MAX_SIZE_SIZE 8
+
+
+/**
+* Header true/false flags
+*/
+
+#define FIRST_BYTE_SET_BBOXES(flag, bool)   ((flag) = ((bool) ? (flag) | 0x01 : (flag) & (~0x01)))
+#define FIRST_BYTE_SET_SIZES(flag, bool)    ((flag) = ((bool) ? (flag) | 0x02 : (flag) & (~0x02)))
+#define FIRST_BYTE_SET_IDLIST(flag, bool)   ((flag) = ((bool) ? (flag) | 0x04 : (flag) & (~0x04)))
+#define FIRST_BYTE_SET_EXTENDED(flag, bool) ((flag) = ((bool) ? (flag) | 0x08 : (flag) & (~0x08)))
+#define FIRST_BYTE_SET_EMPTY(flag, bool)    ((flag) = ((bool) ? (flag) | 0x10 : (flag) & (~0x10)))
+
+
+/**
+* Macros for manipulating the 'type_precision' int. An int8_t used as follows:
+* Type 4 bits
+* Precision 4 bits
+*/
+
+#define TYPE_PREC_SET_TYPE(flag, type) ((flag) = ((flag) & 0xF0) | (((type) & 0x0F)))
+#define TYPE_PREC_SET_PREC(flag, prec) ((flag) = ((flag) & 0x0F) | (((prec) & 0x0F) << 4))
+
+#define HIGHER_DIM_SET_HASZ(flag, bool) ((flag) = ((bool) ? (flag) | 0x01 : (flag) & (~0x01)))
+#define HIGHER_DIM_SET_HASM(flag, bool) ((flag) = ((bool) ? (flag) | 0x02 : (flag) & (~0x02)))
+
+#define HIGHER_DIM_SET_PRECZ(flag, prec) ((flag) = ((flag) & 0xE3) | (((prec) & 0x07) << 2))
+#define HIGHER_DIM_SET_PRECM(flag, prec) ((flag) = ((flag) & 0x1F) | (((prec) & 0x07) << 5))
+
+typedef struct
+{
+	/* Options defined at start */
+	uint8_t variant;
+	int8_t prec_xy;
+	int8_t prec_z;
+	int8_t prec_m;
+	float factor[4]; /*What factor to multiply the coordiinates with to get the requested precision*/
+} TWKB_GLOBALS;
+
+typedef struct
+{
+	uint8_t variant;  /*options that change at runtime*/
+	bytebuffer_t *header_buf;
+	bytebuffer_t *geom_buf;
+	int hasz;
+	int hasm;
+	const int64_t *idlist;
+	int64_t bbox_min[MAX_N_DIMS];
+	int64_t bbox_max[MAX_N_DIMS];
+	int64_t accum_rels[MAX_N_DIMS]; /*Holds the acculmulated relative values*/
+} TWKB_STATE;
+
+static int lwgeom_to_twkb_buf(const LWGEOM *geom, TWKB_GLOBALS *global_values, TWKB_STATE *ts);
+
+static int lwpoint_to_twkb_buf(const LWPOINT *line, TWKB_GLOBALS *global_values, TWKB_STATE *ts);
+static int lwline_to_twkb_buf(const LWLINE *line, TWKB_GLOBALS *global_values, TWKB_STATE *ts);
+static int lwpoly_to_twkb_buf(const LWPOLY *poly, TWKB_GLOBALS *global_values, TWKB_STATE *ts);
+static int lwcollection_to_twkb_buf(const LWCOLLECTION *col, TWKB_GLOBALS *global_values, TWKB_STATE *ts);
+static int lwgeom_write_to_buffer(const LWGEOM *geom, TWKB_GLOBALS *global_values, TWKB_STATE *parent_state);
+
diff --git a/liblwgeom/lwout_wkb.c b/liblwgeom/lwout_wkb.c
index 6486680..dc1aa68 100644
--- a/liblwgeom/lwout_wkb.c
+++ b/liblwgeom/lwout_wkb.c
@@ -9,6 +9,8 @@
  *
  **********************************************************************/
 
+#include <math.h>
+
 #include "liblwgeom_internal.h"
 #include "lwgeom_log.h"
 
@@ -274,11 +276,25 @@ static uint8_t* double_to_wkb_buf(const double d, uint8_t *buf, uint8_t variant)
 */
 static size_t empty_to_wkb_size(const LWGEOM *geom, uint8_t variant)
 {
-	size_t size = WKB_BYTE_SIZE + WKB_INT_SIZE + WKB_INT_SIZE;
+	/* endian byte + type integer */
+	size_t size = WKB_BYTE_SIZE + WKB_INT_SIZE;
 
+	/* optional srid integer */
 	if ( lwgeom_wkb_needs_srid(geom, variant) )
 		size += WKB_INT_SIZE;
 
+	/* Represent POINT EMPTY as POINT(NaN NaN) */
+	if ( geom->type == POINTTYPE )
+	{
+		const LWPOINT *pt = (LWPOINT*)geom;
+		size += WKB_DOUBLE_SIZE * FLAGS_NDIMS(pt->point->flags);		
+	}
+	/* num-elements */
+	else
+	{
+		size += WKB_INT_SIZE;
+	}
+
 	return size;
 }
 
@@ -286,13 +302,6 @@ static uint8_t* empty_to_wkb_buf(const LWGEOM *geom, uint8_t *buf, uint8_t varia
 {
 	uint32_t wkb_type = lwgeom_wkb_type(geom, variant);
 
-	if ( geom->type == POINTTYPE )
-	{
-		/* Change POINT to MULTIPOINT */
-		wkb_type &= ~WKB_POINT_TYPE;     /* clear POINT flag */
-		wkb_type |= WKB_MULTIPOINT_TYPE; /* set MULTIPOINT flag */
-	}
-
 	/* Set the endian flag */
 	buf = endian_to_wkb_buf(buf, variant);
 
@@ -303,8 +312,24 @@ static uint8_t* empty_to_wkb_buf(const LWGEOM *geom, uint8_t *buf, uint8_t varia
 	if ( lwgeom_wkb_needs_srid(geom, variant) )
 		buf = integer_to_wkb_buf(geom->srid, buf, variant);
 
-	/* Set nrings/npoints/ngeoms to zero */
-	buf = integer_to_wkb_buf(0, buf, variant);
+	/* Represent POINT EMPTY as POINT(NaN NaN) */
+	if ( geom->type == POINTTYPE )
+	{
+		const LWPOINT *pt = (LWPOINT*)geom;
+		static double nn = NAN;
+		int i;
+		for ( i = 0; i < FLAGS_NDIMS(pt->point->flags); i++ )
+		{
+			buf = double_to_wkb_buf(nn, buf, variant);
+		}
+	}
+	/* Everything else is flagged as empty using num-elements == 0 */
+	else
+	{
+		/* Set nrings/npoints/ngeoms to zero */
+		buf = integer_to_wkb_buf(0, buf, variant);
+	}
+	
 	return buf;
 }
 
@@ -346,7 +371,7 @@ static uint8_t* ptarray_to_wkb_buf(const POINTARRAY *pa, uint8_t *buf, uint8_t v
 
 	/* Bulk copy the coordinates when: dimensionality matches, output format */
 	/* is not hex, and output endian matches internal endian. */
-	if ( (dims == pa_dims) && ! wkb_swap_bytes(variant) && ! (variant & WKB_HEX)  )
+	if ( pa->npoints && (dims == pa_dims) && ! wkb_swap_bytes(variant) && ! (variant & WKB_HEX)  )
 	{
 		size_t size = pa->npoints * dims * WKB_DOUBLE_SIZE;
 		memcpy(buf, getPoint_internal(pa, 0), size);
@@ -378,6 +403,10 @@ static size_t lwpoint_to_wkb_size(const LWPOINT *pt, uint8_t variant)
 	/* Endian flag + type number */
 	size_t size = WKB_BYTE_SIZE + WKB_INT_SIZE;
 
+	/* Only process empty at this level in the EXTENDED case */
+	if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)pt) )
+		return empty_to_wkb_size((LWGEOM*)pt, variant);
+
 	/* Extended WKB needs space for optional SRID integer */
 	if ( lwgeom_wkb_needs_srid((LWGEOM*)pt, variant) )
 		size += WKB_INT_SIZE;
@@ -389,6 +418,10 @@ static size_t lwpoint_to_wkb_size(const LWPOINT *pt, uint8_t variant)
 
 static uint8_t* lwpoint_to_wkb_buf(const LWPOINT *pt, uint8_t *buf, uint8_t variant)
 {
+	/* Only process empty at this level in the EXTENDED case */
+	if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)pt) )
+		return empty_to_wkb_buf((LWGEOM*)pt, buf, variant);
+
 	/* Set the endian flag */
 	LWDEBUGF(4, "Entering function, buf = %p", buf);
 	buf = endian_to_wkb_buf(buf, variant);
@@ -416,6 +449,10 @@ static size_t lwline_to_wkb_size(const LWLINE *line, uint8_t variant)
 	/* Endian flag + type number */
 	size_t size = WKB_BYTE_SIZE + WKB_INT_SIZE;
 
+	/* Only process empty at this level in the EXTENDED case */
+	if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)line) )
+		return empty_to_wkb_size((LWGEOM*)line, variant);
+
 	/* Extended WKB needs space for optional SRID integer */
 	if ( lwgeom_wkb_needs_srid((LWGEOM*)line, variant) )
 		size += WKB_INT_SIZE;
@@ -427,6 +464,10 @@ static size_t lwline_to_wkb_size(const LWLINE *line, uint8_t variant)
 
 static uint8_t* lwline_to_wkb_buf(const LWLINE *line, uint8_t *buf, uint8_t variant)
 {
+	/* Only process empty at this level in the EXTENDED case */
+	if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)line) )
+		return empty_to_wkb_buf((LWGEOM*)line, buf, variant);
+
 	/* Set the endian flag */
 	buf = endian_to_wkb_buf(buf, variant);
 	/* Set the geometry type */
@@ -447,6 +488,10 @@ static size_t lwtriangle_to_wkb_size(const LWTRIANGLE *tri, uint8_t variant)
 	/* endian flag + type number + number of rings */
 	size_t size = WKB_BYTE_SIZE + WKB_INT_SIZE + WKB_INT_SIZE;
 
+	/* Only process empty at this level in the EXTENDED case */
+	if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)tri) )
+		return empty_to_wkb_size((LWGEOM*)tri, variant);
+
 	/* Extended WKB needs space for optional SRID integer */
 	if ( lwgeom_wkb_needs_srid((LWGEOM*)tri, variant) )
 		size += WKB_INT_SIZE;
@@ -459,6 +504,10 @@ static size_t lwtriangle_to_wkb_size(const LWTRIANGLE *tri, uint8_t variant)
 
 static uint8_t* lwtriangle_to_wkb_buf(const LWTRIANGLE *tri, uint8_t *buf, uint8_t variant)
 {
+	/* Only process empty at this level in the EXTENDED case */
+	if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)tri) )
+		return empty_to_wkb_buf((LWGEOM*)tri, buf, variant);
+
 	/* Set the endian flag */
 	buf = endian_to_wkb_buf(buf, variant);
 	
@@ -486,6 +535,10 @@ static size_t lwpoly_to_wkb_size(const LWPOLY *poly, uint8_t variant)
 	/* endian flag + type number + number of rings */
 	size_t size = WKB_BYTE_SIZE + WKB_INT_SIZE + WKB_INT_SIZE;
 	int i = 0;
+	
+	/* Only process empty at this level in the EXTENDED case */
+	if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)poly) )
+		return empty_to_wkb_size((LWGEOM*)poly, variant);
 
 	/* Extended WKB needs space for optional SRID integer */
 	if ( lwgeom_wkb_needs_srid((LWGEOM*)poly, variant) )
@@ -504,6 +557,10 @@ static uint8_t* lwpoly_to_wkb_buf(const LWPOLY *poly, uint8_t *buf, uint8_t vari
 {
 	int i;
 
+	/* Only process empty at this level in the EXTENDED case */
+	if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)poly) )
+		return empty_to_wkb_buf((LWGEOM*)poly, buf, variant);
+
 	/* Set the endian flag */
 	buf = endian_to_wkb_buf(buf, variant);
 	/* Set the geometry type */
@@ -582,7 +639,7 @@ static size_t lwgeom_to_wkb_size(const LWGEOM *geom, uint8_t variant)
 		return 0;
 
 	/* Short circuit out empty geometries */
-	if ( lwgeom_is_empty(geom) )
+	if ( (!(variant & WKB_EXTENDED)) && lwgeom_is_empty(geom) )
 	{
 		return empty_to_wkb_size(geom, variant);
 	}
@@ -636,7 +693,8 @@ static size_t lwgeom_to_wkb_size(const LWGEOM *geom, uint8_t variant)
 static uint8_t* lwgeom_to_wkb_buf(const LWGEOM *geom, uint8_t *buf, uint8_t variant)
 {
 
-	if ( lwgeom_is_empty(geom) )
+	/* Do not simplify empties when outputting to canonical form */
+	if ( lwgeom_is_empty(geom) & ! (variant & WKB_EXTENDED) )
 		return empty_to_wkb_buf(geom, buf, variant);
 
 	switch ( geom->type )
diff --git a/liblwgeom/lwout_x3d.c b/liblwgeom/lwout_x3d.c
index 904cb95..11c8dbf 100644
--- a/liblwgeom/lwout_x3d.c
+++ b/liblwgeom/lwout_x3d.c
@@ -1,10 +1,9 @@
 /**********************************************************************
- * $Id: lwout_x3d.c 11511 2013-06-03 08:26:51Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
- * http://www.postgis.org
+ * http://postgis.net
  * adapted from lwout_asgml.c
- * Copyright 2011 Arrival 3D
+ * Copyright 2011-2015 Arrival 3D
  * 				Regina Obe with input from Dave Arendash
  *
  * This is free software; you can redistribute and/or modify it under
@@ -28,7 +27,7 @@ static char *asx3d3_line(const LWLINE *line, char *srs, int precision, int opts,
 static size_t asx3d3_poly_size(const LWPOLY *poly, char *srs, int precision, int opts, const char *defid);
 static size_t asx3d3_triangle_size(const LWTRIANGLE *triangle, char *srs, int precision, int opts, const char *defid);
 static char *asx3d3_triangle(const LWTRIANGLE *triangle, char *srs, int precision, int opts, const char *defid);
-static size_t asx3d3_multi_size(const LWCOLLECTION *col, char *srs, int precision, int opts, const char *defid);
+static size_t asx3d3_multi_size(const LWCOLLECTION *col, char *srs, int precisioSn, int opts, const char *defid);
 static char *asx3d3_multi(const LWCOLLECTION *col, char *srs, int precision, int opts, const char *defid);
 static char *asx3d3_psurface(const LWPSURFACE *psur, char *srs, int precision, int opts, const char *defid);
 static char *asx3d3_tin(const LWTIN *tin, char *srs, int precision, int opts, const char *defid);
@@ -145,10 +144,17 @@ asx3d3_line_size(const LWLINE *line, char *srs, int precision, int opts, const c
 	size_t defidlen = strlen(defid);
 
 	size = pointArray_X3Dsize(line->points, precision)*2;
-
-	size += (
-	            sizeof("<LineSet vertexCount=''><Coordinate point='' /></LineSet>")  + defidlen
+	
+	if ( X3D_USE_GEOCOORDS(opts) ) {
+			size += (
+	            sizeof("<LineSet vertexCount=''><GeoCoordinate geoSystem='\"GD\" \"WE\" \"longitude_first\"' point='' /></LineSet>")  + defidlen
 	        ) * 2;
+	}
+	else {
+		size += (
+		            sizeof("<LineSet vertexCount=''><Coordinate point='' /></LineSet>")  + defidlen
+		        ) * 2;
+	}
 
 	/* if (srs)     size += strlen(srs) + sizeof(" srsName=.."); */
 	return size;
@@ -167,8 +173,9 @@ asx3d3_line_buf(const LWLINE *line, char *srs, char *output, int precision, int
 	pa = line->points;
 	ptr += sprintf(ptr, "<LineSet %s vertexCount='%d'>", defid, pa->npoints);
 
-
-	ptr += sprintf(ptr, "<Coordinate point='");
+	if ( X3D_USE_GEOCOORDS(opts) ) ptr += sprintf(ptr, "<GeoCoordinate geoSystem='\"GD\" \"WE\" \"%s\"' point='", ( (opts & LW_X3D_FLIP_XY) ? "latitude_first" : "longitude_first") );
+	else
+		ptr += sprintf(ptr, "<Coordinate point='");
 	ptr += pointArray_toX3D3(line->points, ptr, precision, opts, lwline_is_closed((LWLINE *) line));
 
 	ptr += sprintf(ptr, "' />");
@@ -371,7 +378,11 @@ asx3d3_multi_size(const LWCOLLECTION *col, char *srs, int precision, int opts, c
 	LWGEOM *subgeom;
 
 	/* the longest possible multi version needs to hold DEF=defid and coordinate breakout */
-	size = sizeof("<PointSet><Coordinate point='' /></PointSet>") + defidlen;
+	if ( X3D_USE_GEOCOORDS(opts) )
+		size = sizeof("<PointSet><GeoCoordinate geoSystem='\"GD\" \"WE\" \"longitude_first\"' point='' /></PointSet>");
+	else
+		size = sizeof("<PointSet><Coordinate point='' /></PointSet>") + defidlen;
+	
 
 	/* if ( srs ) size += strlen(srs) + sizeof(" srsName=.."); */
 
@@ -443,7 +454,10 @@ asx3d3_multi_buf(const LWCOLLECTION *col, char *srs, char *output, int precision
             return 0;
     }
     if (dimension == 3){
-        ptr += sprintf(ptr, "<Coordinate point='");
+		if ( X3D_USE_GEOCOORDS(opts) ) 
+			ptr += sprintf(ptr, "<GeoCoordinate geoSystem='\"GD\" \"WE\" \"%s\"' point='", ((opts & LW_X3D_FLIP_XY) ? "latitude_first" : "longitude_first") );
+		else
+        	ptr += sprintf(ptr, "<Coordinate point='");
     }
 
 	for (i=0; i<col->ngeoms; i++)
@@ -497,7 +511,9 @@ asx3d3_psurface_size(const LWPSURFACE *psur, char *srs, int precision, int opts,
 	size_t size;
 	size_t defidlen = strlen(defid);
 
-	size = sizeof("<IndexedFaceSet coordIndex=''><Coordinate point='' />") + defidlen;
+	if ( X3D_USE_GEOCOORDS(opts) ) size = sizeof("<IndexedFaceSet coordIndex=''><GeoCoordinate geoSystem='\"GD\" \"WE\" \"longitude_first\"' point='' />") + defidlen;
+	else size = sizeof("<IndexedFaceSet coordIndex=''><Coordinate point='' />") + defidlen;
+	
 
 	for (i=0; i<psur->ngeoms; i++)
 	{
@@ -546,7 +562,9 @@ asx3d3_psurface_buf(const LWPSURFACE *psur, char *srs, char *output, int precisi
 		j += k;
 	}
 
-	ptr += sprintf(ptr, "'><Coordinate point='");
+	if ( X3D_USE_GEOCOORDS(opts) ) 
+		ptr += sprintf(ptr, "'><GeoCoordinate geoSystem='\"GD\" \"WE\" \"%s\"' point='", ( (opts & LW_X3D_FLIP_XY) ? "latitude_first" : "longitude_first") );
+	else ptr += sprintf(ptr, "'><Coordinate point='");
 
 	for (i=0; i<psur->ngeoms; i++)
 	{
@@ -626,7 +644,9 @@ asx3d3_tin_buf(const LWTIN *tin, char *srs, char *output, int precision, int opt
 		k += 3;
 	}
 
-	ptr += sprintf(ptr, "'><Coordinate point='");
+	if ( X3D_USE_GEOCOORDS(opts) ) ptr += sprintf(ptr, "'><GeoCoordinate geoSystem='\"GD\" \"WE\" \"%s\"' point='", ( (opts & LW_X3D_FLIP_XY) ? "latitude_first" : "longitude_first") );
+	else ptr += sprintf(ptr, "'><Coordinate point='");
+	
 	for (i=0; i<tin->ngeoms; i++)
 	{
 		ptr += asx3d3_triangle_buf(tin->geoms[i], 0, ptr, precision,
@@ -667,15 +687,16 @@ asx3d3_collection_size(const LWCOLLECTION *col, char *srs, int precision, int op
 	size_t defidlen = strlen(defid);
 	LWGEOM *subgeom;
 
-	size = sizeof("<MultiGeometry></MultiGeometry>") + defidlen*2;
+	/* size = sizeof("<MultiGeometry></MultiGeometry>") + defidlen*2; */
+	size = defidlen*2;
 
-	if ( srs )
-		size += strlen(srs) + sizeof(" srsName=..");
+	/** if ( srs )
+		size += strlen(srs) + sizeof(" srsName=.."); **/
 
 	for (i=0; i<col->ngeoms; i++)
 	{
 		subgeom = col->geoms[i];
-		size += ( sizeof("<geometryMember>/") + defidlen ) * 2;
+		size += ( sizeof("<Shape />") + defidlen ) * 2; /** for collections we need to wrap each in a shape tag to make valid **/
 		if ( subgeom->type == POINTTYPE )
 		{
 			size += asx3d3_point_size((LWPOINT*)subgeom, 0, precision, opts, defid);
@@ -688,6 +709,14 @@ asx3d3_collection_size(const LWCOLLECTION *col, char *srs, int precision, int op
 		{
 			size += asx3d3_poly_size((LWPOLY*)subgeom, 0, precision, opts, defid);
 		}
+		else if ( subgeom->type == TINTYPE )
+		{
+			size += asx3d3_tin_size((LWTIN*)subgeom, 0, precision, opts, defid);
+		}
+		else if ( subgeom->type == POLYHEDRALSURFACETYPE )
+		{
+			size += asx3d3_psurface_size((LWPSURFACE*)subgeom, 0, precision, opts, defid);
+		}
 		else if ( lwgeom_is_collection(subgeom) )
 		{
 			size += asx3d3_multi_size((LWCOLLECTION*)subgeom, 0, precision, opts, defid);
@@ -709,6 +738,8 @@ asx3d3_collection_buf(const LWCOLLECTION *col, char *srs, char *output, int prec
 	ptr = output;
 
 	/* Open outmost tag */
+	/** @TODO: decide if we need outtermost tags, this one was just a copy from gml so is wrong **/
+#ifdef PGIS_X3D_OUTERMOST_TAGS
 	if ( srs )
 	{
 		ptr += sprintf(ptr, "<%sMultiGeometry srsName=\"%s\">", defid, srs);
@@ -717,11 +748,12 @@ asx3d3_collection_buf(const LWCOLLECTION *col, char *srs, char *output, int prec
 	{
 		ptr += sprintf(ptr, "<%sMultiGeometry>", defid);
 	}
+#endif
 
 	for (i=0; i<col->ngeoms; i++)
 	{
 		subgeom = col->geoms[i];
-		ptr += sprintf(ptr, "<%sgeometryMember>", defid);
+		ptr += sprintf(ptr, "<Shape%s>", defid);
 		if ( subgeom->type == POINTTYPE )
 		{
 			ptr += asx3d3_point_buf((LWPOINT*)subgeom, 0, ptr, precision, opts, defid);
@@ -734,6 +766,16 @@ asx3d3_collection_buf(const LWCOLLECTION *col, char *srs, char *output, int prec
 		{
 			ptr += asx3d3_poly_buf((LWPOLY*)subgeom, 0, ptr, precision, opts, 0, defid);
 		}
+		else if ( subgeom->type == TINTYPE )
+		{
+			ptr += asx3d3_tin_buf((LWTIN*)subgeom, srs, ptr, precision, opts,  defid);
+			
+		}
+		else if ( subgeom->type == POLYHEDRALSURFACETYPE )
+		{
+			ptr += asx3d3_psurface_buf((LWPSURFACE*)subgeom, srs, ptr, precision, opts,  defid);
+			
+		}
 		else if ( lwgeom_is_collection(subgeom) )
 		{
 			if ( subgeom->type == COLLECTIONTYPE )
@@ -744,11 +786,13 @@ asx3d3_collection_buf(const LWCOLLECTION *col, char *srs, char *output, int prec
 		else
 			lwerror("asx3d3_collection_buf: unknown geometry type");
 
-		ptr += sprintf(ptr, "</%sgeometryMember>", defid);
+		ptr += printf(ptr, "</Shape>");
 	}
 
 	/* Close outmost tag */
+#ifdef PGIS_X3D_OUTERMOST_TAGS
 	ptr += sprintf(ptr, "</%sMultiGeometry>", defid);
+#endif
 
 	return (ptr-output);
 }
@@ -806,7 +850,11 @@ pointArray_toX3D3(POINTARRAY *pa, char *output, int precision, int opts, int is_
 
 				if ( i )
 					ptr += sprintf(ptr, " ");
-				ptr += sprintf(ptr, "%s %s", x, y);
+					
+				if ( ( opts & LW_X3D_FLIP_XY) )
+					ptr += sprintf(ptr, "%s %s", y, x);
+				else
+					ptr += sprintf(ptr, "%s %s", x, y);
 			}
 		}
 	}
@@ -841,7 +889,10 @@ pointArray_toX3D3(POINTARRAY *pa, char *output, int precision, int opts, int is_
 				if ( i )
 					ptr += sprintf(ptr, " ");
 
-				ptr += sprintf(ptr, "%s %s %s", x, y, z);
+				if ( ( opts & LW_X3D_FLIP_XY) )
+					ptr += sprintf(ptr, "%s %s %s", y, x, z);
+				else
+					ptr += sprintf(ptr, "%s %s %s", x, y, z);
 			}
 		}
 	}
diff --git a/liblwgeom/lwpoint.c b/liblwgeom/lwpoint.c
index 8da187b..303c78a 100644
--- a/liblwgeom/lwpoint.c
+++ b/liblwgeom/lwpoint.c
@@ -13,6 +13,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "../postgis_config.h"
+/*#define POSTGIS_DEBUG_LEVEL 4*/
 #include "liblwgeom_internal.h"
 #include "lwgeom_log.h"
 
@@ -262,3 +264,11 @@ int lwpoint_is_empty(const LWPOINT *point)
 	return LW_FALSE;
 }
 
+
+LWPOINT *
+lwpoint_grid(const LWPOINT *point, const gridspec *grid)
+{
+	POINTARRAY *opa = ptarray_grid(point->point, grid);
+	return lwpoint_construct(point->srid, NULL, opa);
+}
+
diff --git a/liblwgeom/lwpoly.c b/liblwgeom/lwpoly.c
index de47579..fee37ff 100644
--- a/liblwgeom/lwpoly.c
+++ b/liblwgeom/lwpoly.c
@@ -216,6 +216,11 @@ lwpoly_segmentize2d(LWPOLY *poly, double dist)
 	for (i=0; i<poly->nrings; i++)
 	{
 		newrings[i] = ptarray_segmentize2d(poly->rings[i], dist);
+		if ( ! newrings[i] ) {
+			while (i--) ptarray_free(newrings[i]);
+			lwfree(newrings);
+			return NULL;
+		}
 	}
 	return lwpoly_construct(poly->srid, NULL,
 	                        poly->nrings, newrings);
@@ -281,7 +286,7 @@ lwpoly_from_lwlines(const LWLINE *shell,
 }
 
 LWGEOM*
-lwpoly_remove_repeated_points(LWPOLY *poly)
+lwpoly_remove_repeated_points(LWPOLY *poly, double tolerance)
 {
 	uint32_t i;
 	POINTARRAY **newrings;
@@ -289,7 +294,7 @@ lwpoly_remove_repeated_points(LWPOLY *poly)
 	newrings = lwalloc(sizeof(POINTARRAY *)*poly->nrings);
 	for (i=0; i<poly->nrings; i++)
 	{
-		newrings[i] = ptarray_remove_repeated_points(poly->rings[i]);
+		newrings[i] = ptarray_remove_repeated_points_minpoints(poly->rings[i], tolerance, 4);
 	}
 
 	return (LWGEOM*)lwpoly_construct(poly->srid,
@@ -343,20 +348,30 @@ int lwpoly_count_vertices(LWPOLY *poly)
 	return v;
 }
 
-LWPOLY* lwpoly_simplify(const LWPOLY *ipoly, double dist)
+LWPOLY* lwpoly_simplify(const LWPOLY *ipoly, double dist, int preserve_collapsed)
 {
 	int i;
 	LWPOLY *opoly = lwpoly_construct_empty(ipoly->srid, FLAGS_GET_Z(ipoly->flags), FLAGS_GET_M(ipoly->flags));
 
-	LWDEBUGF(2, "simplify_polygon3d: simplifying polygon with %d rings", ipoly->nrings);
+	LWDEBUGF(2, "%s: simplifying polygon with %d rings", __func__, ipoly->nrings);
 
-	if( lwpoly_is_empty(ipoly) )
-		return opoly; /* should we return NULL instead ? */
+	if ( lwpoly_is_empty(ipoly) )
+	{
+		lwpoly_free(opoly);
+		return NULL;
+	}
 
-	for (i = 0; i < ipoly->nrings; i++)
+	for ( i = 0; i < ipoly->nrings; i++ )
 	{
-		static const int minvertices = 0; /* TODO: allow setting this */
-		POINTARRAY *opts = ptarray_simplify(ipoly->rings[i], dist, minvertices);
+		POINTARRAY *opts;
+		int minvertices = 0;
+
+		/* We'll still let holes collapse, but if we're preserving */
+		/* and this is a shell, we ensure it is kept */
+		if ( preserve_collapsed && i == 0 )
+			minvertices = 4; 
+			
+		opts = ptarray_simplify(ipoly->rings[i], dist, minvertices);
 
 		LWDEBUGF(3, "ring%d simplified from %d to %d points", i, ipoly->rings[i]->npoints, opts->npoints);
 
@@ -371,14 +386,20 @@ LWPOLY* lwpoly_simplify(const LWPOLY *ipoly, double dist)
 
 		/* Add ring to simplified polygon */
 		if( lwpoly_add_ring(opoly, opts) == LW_FAILURE )
+		{
+			lwpoly_free(opoly);
 			return NULL;
+		}
 	}
 
 	LWDEBUGF(3, "simplified polygon with %d rings", ipoly->nrings);
 	opoly->type = ipoly->type;
 
 	if( lwpoly_is_empty(opoly) )
+	{
+		lwpoly_free(opoly);
 		return NULL;
+	}
 
 	return opoly;
 }
@@ -484,3 +505,78 @@ lwpoly_startpoint(const LWPOLY* poly, POINT4D* pt)
 	return ptarray_startpoint(poly->rings[0], pt);
 }
 
+int
+lwpoly_contains_point(const LWPOLY *poly, const POINT2D *pt)
+{
+	int i;
+	
+	if ( lwpoly_is_empty(poly) )
+		return LW_FALSE;
+	
+	if ( ptarray_contains_point(poly->rings[0], pt) == LW_OUTSIDE )
+		return LW_FALSE;
+	
+	for ( i = 1; i < poly->nrings; i++ )
+	{
+		if ( ptarray_contains_point(poly->rings[i], pt) == LW_INSIDE )
+			return LW_FALSE;
+	}
+	return LW_TRUE;
+}
+
+
+
+LWPOLY* lwpoly_grid(const LWPOLY *poly, const gridspec *grid)
+{
+	LWPOLY *opoly;
+	int ri;
+
+#if 0
+	/*
+	 * TODO: control this assertion
+	 * it is assumed that, since the grid size will be a pixel,
+	 * a visible ring should show at least a white pixel inside,
+	 * thus, for a square, that would be grid_xsize*grid_ysize
+	 */
+	double minvisiblearea = grid->xsize * grid->ysize;
+#endif
+
+	LWDEBUGF(3, "lwpoly_grid: applying grid to polygon with %d rings", poly->nrings);
+
+	opoly = lwpoly_construct_empty(poly->srid, lwgeom_has_z((LWGEOM*)poly), lwgeom_has_m((LWGEOM*)poly));
+
+	for (ri=0; ri<poly->nrings; ri++)
+	{
+		POINTARRAY *ring = poly->rings[ri];
+		POINTARRAY *newring;
+
+		newring = ptarray_grid(ring, grid);
+
+		/* Skip ring if not composed by at least 4 pts (3 segments) */
+		if ( newring->npoints < 4 )
+		{
+			ptarray_free(newring);
+
+			LWDEBUGF(3, "grid_polygon3d: ring%d skipped ( <4 pts )", ri);
+
+			if ( ri ) continue;
+			else break; /* this is the external ring, no need to work on holes */
+		}
+		
+		if ( ! lwpoly_add_ring(opoly, newring) )
+		{
+			lwerror("lwpoly_grid, memory error");
+			return NULL;
+		}
+	}
+
+	LWDEBUGF(3, "lwpoly_grid: simplified polygon with %d rings", opoly->nrings);
+
+	if ( ! opoly->nrings ) 
+	{
+		lwpoly_free(opoly);
+		return NULL;
+	}
+
+	return opoly;
+}
diff --git a/liblwgeom/lwprint.c b/liblwgeom/lwprint.c
index ed80a48..8e5aae3 100644
--- a/liblwgeom/lwprint.c
+++ b/liblwgeom/lwprint.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwprint.c 9324 2012-02-27 22:08:12Z pramsey $
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
@@ -57,8 +56,8 @@ static void lwprint_normalize_latlon(double *lat, double *lon)
 static char * lwdouble_to_dms(double val, const char *pos_dir_symbol, const char *neg_dir_symbol, const char * format)
 {
 	/* 3 numbers, 1 sign or compass dir, and 5 possible strings (degree signs, spaces, misc text, etc) between or around them.*/
-	const int NUM_PIECES = 9;
-	const int WORK_SIZE = 1024;
+	static int NUM_PIECES = 9;
+	static int WORK_SIZE = 1024;
 	char pieces[NUM_PIECES][WORK_SIZE];
 	int current_piece = 0;
 	int is_negative = 0;
@@ -322,7 +321,10 @@ static char * lwdouble_to_dms(double val, const char *pos_dir_symbol, const char
 	{
 		lwerror("Bad format, degrees (DD.DDD) number of digits was greater than our working limit.");
 	}
-	sprintf(pieces[deg_piece], "%*.*f", deg_digits, deg_dec_digits, degrees);
+	if(deg_piece >= 0) 
+	{
+		sprintf(pieces[deg_piece], "%*.*f", deg_digits, deg_dec_digits, degrees);
+	}
 
 	if (min_piece >= 0)
 	{
@@ -390,7 +392,7 @@ static char * lwdoubles_to_latlon(double lat, double lon, const char * format)
  */
 char* lwpoint_to_latlon(const LWPOINT * pt, const char *format)
 {
-	POINT2D p;
+	const POINT2D *p;
 	if (NULL == pt)
 	{
 		lwerror("Cannot convert a null point into formatted text.");
@@ -399,6 +401,6 @@ char* lwpoint_to_latlon(const LWPOINT * pt, const char *format)
 	{
 		lwerror("Cannot convert an empty point into formatted text.");
 	}
-	getPoint2d_p(pt->point, 0, &p);
-	return lwdoubles_to_latlon(p.y, p.x, format);
+	p = getPoint2d_cp(pt->point, 0);
+	return lwdoubles_to_latlon(p->y, p->x, format);
 }
diff --git a/liblwgeom/lwsegmentize.c b/liblwgeom/lwsegmentize.c
deleted file mode 100644
index d698b20..0000000
--- a/liblwgeom/lwsegmentize.c
+++ /dev/null
@@ -1,859 +0,0 @@
-/**********************************************************************
- * $Id: lwsegmentize.c 13134 2014-12-01 08:47:21Z strk $
- *
- * PostGIS - Spatial Types for PostgreSQL
- * http://postgis.net
- * Copyright 2001-2006 Refractions Research Inc.
- *
- * This is free software; you can redistribute and/or modify it under
- * the terms of the GNU General Public Licence. See the COPYING file.
- *
- **********************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-
-#include "liblwgeom_internal.h"
-
-/* #define POSTGIS_DEBUG_LEVEL 4 */
-
-#include "lwgeom_log.h"
-
-
-LWMLINE *lwmcurve_segmentize(LWMCURVE *mcurve, uint32_t perQuad);
-LWMPOLY *lwmsurface_segmentize(LWMSURFACE *msurface, uint32_t perQuad);
-LWCOLLECTION *lwcollection_segmentize(LWCOLLECTION *collection, uint32_t perQuad);
-
-LWGEOM *pta_desegmentize(POINTARRAY *points, int type, int srid);
-LWGEOM *lwline_desegmentize(LWLINE *line);
-LWGEOM *lwpolygon_desegmentize(LWPOLY *poly);
-LWGEOM *lwmline_desegmentize(LWMLINE *mline);
-LWGEOM *lwmpolygon_desegmentize(LWMPOLY *mpoly);
-LWGEOM *lwgeom_desegmentize(LWGEOM *geom);
-
-
-/*
- * Determines (recursively in the case of collections) whether the geometry
- * contains at least on arc geometry or segment.
- */
-int
-lwgeom_has_arc(const LWGEOM *geom)
-{
-	LWCOLLECTION *col;
-	int i;
-
-	LWDEBUG(2, "lwgeom_has_arc called.");
-
-	switch (geom->type)
-	{
-	case POINTTYPE:
-	case LINETYPE:
-	case POLYGONTYPE:
-	case TRIANGLETYPE:
-	case MULTIPOINTTYPE:
-	case MULTILINETYPE:
-	case MULTIPOLYGONTYPE:
-	case POLYHEDRALSURFACETYPE:
-	case TINTYPE:
-		return LW_FALSE;
-	case CIRCSTRINGTYPE:
-		return LW_TRUE;
-	/* It's a collection that MAY contain an arc */
-	default:
-		col = (LWCOLLECTION *)geom;
-		for (i=0; i<col->ngeoms; i++)
-		{
-			if (lwgeom_has_arc(col->geoms[i]) == LW_TRUE) 
-				return LW_TRUE;
-		}
-		return LW_FALSE;
-	}
-}
-
-
-
-/*******************************************************************************
- * Begin curve segmentize functions
- ******************************************************************************/
-
-static double interpolate_arc(double angle, double a1, double a2, double a3, double zm1, double zm2, double zm3)
-{
-	LWDEBUGF(4,"angle %.05g a1 %.05g a2 %.05g a3 %.05g zm1 %.05g zm2 %.05g zm3 %.05g",angle,a1,a2,a3,zm1,zm2,zm3);
-	/* Counter-clockwise sweep */
-	if ( a1 < a2 )
-	{
-		if ( angle <= a2 )
-			return zm1 + (zm2-zm1) * (angle-a1) / (a2-a1);
-		else
-			return zm2 + (zm3-zm2) * (angle-a2) / (a3-a2);
-	}
-	/* Clockwise sweep */
-	else
-	{
-		if ( angle >= a2 )
-			return zm1 + (zm2-zm1) * (a1-angle) / (a1-a2);
-		else
-			return zm2 + (zm3-zm2) * (a2-angle) / (a2-a3);
-	}
-}
-
-static POINTARRAY *
-lwcircle_segmentize(POINT4D *p1, POINT4D *p2, POINT4D *p3, uint32_t perQuad)
-{
-	POINT2D center;
-	POINT2D *t1 = (POINT2D*)p1;
-	POINT2D *t2 = (POINT2D*)p2;
-	POINT2D *t3 = (POINT2D*)p3;
-	POINT4D pt;
-	int p2_side = 0;
-	int clockwise = LW_TRUE;
-	double radius; /* Arc radius */
-	double increment; /* Angle per segment */
-	double a1, a2, a3, angle;
-	POINTARRAY *pa;
-	int is_circle = LW_FALSE;
-
-	LWDEBUG(2, "lwcircle_calculate_gbox called.");
-
-	radius = lw_arc_center(t1, t2, t3, &center);
-	p2_side = lw_segment_side(t1, t3, t2);
-
-	/* Matched start/end points imply circle */
-	if ( p1->x == p3->x && p1->y == p3->y )
-		is_circle = LW_TRUE;
-	
-	/* Negative radius signals straight line, p1/p2/p3 are colinear */
-	if ( (radius < 0.0 || p2_side == 0) && ! is_circle )
-	    return NULL;
-		
-	/* The side of the p1/p3 line that p2 falls on dictates the sweep  
-	   direction from p1 to p3. */
-	if ( p2_side == -1 )
-		clockwise = LW_TRUE;
-	else
-		clockwise = LW_FALSE;
-		
-	increment = fabs(M_PI_2 / perQuad);
-	
-	/* Angles of each point that defines the arc section */
-	a1 = atan2(p1->y - center.y, p1->x - center.x);
-	a2 = atan2(p2->y - center.y, p2->x - center.x);
-	a3 = atan2(p3->y - center.y, p3->x - center.x);
-
-	/* p2 on left side => clockwise sweep */
-	if ( clockwise )
-	{
-		increment *= -1;
-		/* Adjust a3 down so we can decrement from a1 to a3 cleanly */
-		if ( a3 > a1 )
-			a3 -= 2.0 * M_PI;
-		if ( a2 > a1 )
-			a2 -= 2.0 * M_PI;
-	}
-	/* p2 on right side => counter-clockwise sweep */
-	else
-	{
-		/* Adjust a3 up so we can increment from a1 to a3 cleanly */
-		if ( a3 < a1 )
-			a3 += 2.0 * M_PI;
-		if ( a2 < a1 )
-			a2 += 2.0 * M_PI;
-	}
-	
-	/* Override angles for circle case */
-	if( is_circle )
-	{
-		a3 = a1 + 2.0 * M_PI;
-		a2 = a1 + M_PI;
-		increment = fabs(increment);
-		clockwise = LW_FALSE;
-	}
-	
-	/* Initialize point array */
-	pa = ptarray_construct_empty(1, 1, 32);
-
-	/* Sweep from a1 to a3 */
-	ptarray_append_point(pa, p1, LW_FALSE);
-	for ( angle = a1 + increment; clockwise ? angle > a3 : angle < a3; angle += increment ) 
-	{
-		pt.x = center.x + radius * cos(angle);
-		pt.y = center.y + radius * sin(angle);
-		pt.z = interpolate_arc(angle, a1, a2, a3, p1->z, p2->z, p3->z);
-		pt.m = interpolate_arc(angle, a1, a2, a3, p1->m, p2->m, p3->m);
-		ptarray_append_point(pa, &pt, LW_FALSE);
-	}	
-	return pa;
-}
-
-LWLINE *
-lwcircstring_segmentize(const LWCIRCSTRING *icurve, uint32_t perQuad)
-{
-	LWLINE *oline;
-	POINTARRAY *ptarray;
-	POINTARRAY *tmp;
-	uint32_t i, j;
-	POINT4D p1, p2, p3, p4;
-
-	LWDEBUGF(2, "lwcircstring_segmentize called., dim = %d", icurve->points->flags);
-
-	ptarray = ptarray_construct_empty(FLAGS_GET_Z(icurve->points->flags), FLAGS_GET_M(icurve->points->flags), 64);
-
-	for (i = 2; i < icurve->points->npoints; i+=2)
-	{
-		LWDEBUGF(3, "lwcircstring_segmentize: arc ending at point %d", i);
-
-		getPoint4d_p(icurve->points, i - 2, &p1);
-		getPoint4d_p(icurve->points, i - 1, &p2);
-		getPoint4d_p(icurve->points, i, &p3);
-		tmp = lwcircle_segmentize(&p1, &p2, &p3, perQuad);
-
-		if (tmp)
-		{
-			LWDEBUGF(3, "lwcircstring_segmentize: generated %d points", tmp->npoints);
-
-			for (j = 0; j < tmp->npoints; j++)
-			{
-				getPoint4d_p(tmp, j, &p4);
-				ptarray_append_point(ptarray, &p4, LW_TRUE);
-			}
-			ptarray_free(tmp);
-		}
-		else
-		{
-			LWDEBUG(3, "lwcircstring_segmentize: points are colinear, returning curve points as line");
-
-			for (j = i - 2 ; j < i ; j++)
-			{
-				getPoint4d_p(icurve->points, j, &p4);
-				ptarray_append_point(ptarray, &p4, LW_TRUE);
-			}
-		}
-
-	}
-	getPoint4d_p(icurve->points, icurve->points->npoints-1, &p1);
-	ptarray_append_point(ptarray, &p1, LW_TRUE);
-		
-	oline = lwline_construct(icurve->srid, NULL, ptarray);
-	return oline;
-}
-
-LWLINE *
-lwcompound_segmentize(const LWCOMPOUND *icompound, uint32_t perQuad)
-{
-	LWGEOM *geom;
-	POINTARRAY *ptarray = NULL, *ptarray_out = NULL;
-	LWLINE *tmp = NULL;
-	uint32_t i, j;
-	POINT4D p;
-
-	LWDEBUG(2, "lwcompound_segmentize called.");
-
-	ptarray = ptarray_construct_empty(FLAGS_GET_Z(icompound->flags), FLAGS_GET_M(icompound->flags), 64);
-
-	for (i = 0; i < icompound->ngeoms; i++)
-	{
-		geom = icompound->geoms[i];
-		if (geom->type == CIRCSTRINGTYPE)
-		{
-			tmp = lwcircstring_segmentize((LWCIRCSTRING *)geom, perQuad);
-			for (j = 0; j < tmp->points->npoints; j++)
-			{
-				getPoint4d_p(tmp->points, j, &p);
-				ptarray_append_point(ptarray, &p, LW_TRUE);
-			}
-			lwline_free(tmp);
-		}
-		else if (geom->type == LINETYPE)
-		{
-			tmp = (LWLINE *)geom;
-			for (j = 0; j < tmp->points->npoints; j++)
-			{
-				getPoint4d_p(tmp->points, j, &p);
-				ptarray_append_point(ptarray, &p, LW_TRUE);
-			}
-		}
-		else
-		{
-			lwerror("Unsupported geometry type %d found.",
-			        geom->type, lwtype_name(geom->type));
-			return NULL;
-		}
-	}
-	ptarray_out = ptarray_remove_repeated_points(ptarray);
-	ptarray_free(ptarray);
-	return lwline_construct(icompound->srid, NULL, ptarray_out);
-}
-
-LWPOLY *
-lwcurvepoly_segmentize(const LWCURVEPOLY *curvepoly, uint32_t perQuad)
-{
-	LWPOLY *ogeom;
-	LWGEOM *tmp;
-	LWLINE *line;
-	POINTARRAY **ptarray;
-	int i;
-
-	LWDEBUG(2, "lwcurvepoly_segmentize called.");
-
-	ptarray = lwalloc(sizeof(POINTARRAY *)*curvepoly->nrings);
-
-	for (i = 0; i < curvepoly->nrings; i++)
-	{
-		tmp = curvepoly->rings[i];
-		if (tmp->type == CIRCSTRINGTYPE)
-		{
-			line = lwcircstring_segmentize((LWCIRCSTRING *)tmp, perQuad);
-			ptarray[i] = ptarray_clone_deep(line->points);
-			lwline_free(line);
-		}
-		else if (tmp->type == LINETYPE)
-		{
-			line = (LWLINE *)tmp;
-			ptarray[i] = ptarray_clone_deep(line->points);
-		}
-		else if (tmp->type == COMPOUNDTYPE)
-		{
-			line = lwcompound_segmentize((LWCOMPOUND *)tmp, perQuad);
-			ptarray[i] = ptarray_clone_deep(line->points);
-			lwline_free(line);
-		}
-		else
-		{
-			lwerror("Invalid ring type found in CurvePoly.");
-			return NULL;
-		}
-	}
-
-	ogeom = lwpoly_construct(curvepoly->srid, NULL, curvepoly->nrings, ptarray);
-	return ogeom;
-}
-
-LWMLINE *
-lwmcurve_segmentize(LWMCURVE *mcurve, uint32_t perQuad)
-{
-	LWMLINE *ogeom;
-	LWGEOM *tmp;
-	LWGEOM **lines;
-	int i;
-
-	LWDEBUGF(2, "lwmcurve_segmentize called, geoms=%d, dim=%d.", mcurve->ngeoms, FLAGS_NDIMS(mcurve->flags));
-
-	lines = lwalloc(sizeof(LWGEOM *)*mcurve->ngeoms);
-
-	for (i = 0; i < mcurve->ngeoms; i++)
-	{
-		tmp = mcurve->geoms[i];
-		if (tmp->type == CIRCSTRINGTYPE)
-		{
-			lines[i] = (LWGEOM *)lwcircstring_segmentize((LWCIRCSTRING *)tmp, perQuad);
-		}
-		else if (tmp->type == LINETYPE)
-		{
-			lines[i] = (LWGEOM *)lwline_construct(mcurve->srid, NULL, ptarray_clone_deep(((LWLINE *)tmp)->points));
-		}
-		else if (tmp->type == COMPOUNDTYPE)
-		{
-			lines[i] = (LWGEOM *)lwcompound_segmentize((LWCOMPOUND *)tmp, perQuad);
-		}
-		else
-		{
-			lwerror("Unsupported geometry found in MultiCurve.");
-			return NULL;
-		}
-	}
-
-	ogeom = (LWMLINE *)lwcollection_construct(MULTILINETYPE, mcurve->srid, NULL, mcurve->ngeoms, lines);
-	return ogeom;
-}
-
-LWMPOLY *
-lwmsurface_segmentize(LWMSURFACE *msurface, uint32_t perQuad)
-{
-	LWMPOLY *ogeom;
-	LWGEOM *tmp;
-	LWPOLY *poly;
-	LWGEOM **polys;
-	POINTARRAY **ptarray;
-	int i, j;
-
-	LWDEBUG(2, "lwmsurface_segmentize called.");
-
-	polys = lwalloc(sizeof(LWGEOM *)*msurface->ngeoms);
-
-	for (i = 0; i < msurface->ngeoms; i++)
-	{
-		tmp = msurface->geoms[i];
-		if (tmp->type == CURVEPOLYTYPE)
-		{
-			polys[i] = (LWGEOM *)lwcurvepoly_segmentize((LWCURVEPOLY *)tmp, perQuad);
-		}
-		else if (tmp->type == POLYGONTYPE)
-		{
-			poly = (LWPOLY *)tmp;
-			ptarray = lwalloc(sizeof(POINTARRAY *)*poly->nrings);
-			for (j = 0; j < poly->nrings; j++)
-			{
-				ptarray[j] = ptarray_clone_deep(poly->rings[j]);
-			}
-			polys[i] = (LWGEOM *)lwpoly_construct(msurface->srid, NULL, poly->nrings, ptarray);
-		}
-	}
-	ogeom = (LWMPOLY *)lwcollection_construct(MULTIPOLYGONTYPE, msurface->srid, NULL, msurface->ngeoms, polys);
-	return ogeom;
-}
-
-LWCOLLECTION *
-lwcollection_segmentize(LWCOLLECTION *collection, uint32_t perQuad)
-{
-	LWCOLLECTION *ocol;
-	LWGEOM *tmp;
-	LWGEOM **geoms;
-	int i;
-
-	LWDEBUG(2, "lwcollection_segmentize called.");
-
-	geoms = lwalloc(sizeof(LWGEOM *)*collection->ngeoms);
-
-	for (i=0; i<collection->ngeoms; i++)
-	{
-		tmp = collection->geoms[i];
-		switch (tmp->type)
-		{
-		case CIRCSTRINGTYPE:
-			geoms[i] = (LWGEOM *)lwcircstring_segmentize((LWCIRCSTRING *)tmp, perQuad);
-			break;
-		case COMPOUNDTYPE:
-			geoms[i] = (LWGEOM *)lwcompound_segmentize((LWCOMPOUND *)tmp, perQuad);
-			break;
-		case CURVEPOLYTYPE:
-			geoms[i] = (LWGEOM *)lwcurvepoly_segmentize((LWCURVEPOLY *)tmp, perQuad);
-			break;
-		case COLLECTIONTYPE:
-			geoms[i] = (LWGEOM *)lwcollection_segmentize((LWCOLLECTION *)tmp, perQuad);
-			break;
-		default:
-			geoms[i] = lwgeom_clone(tmp);
-			break;
-		}
-	}
-	ocol = lwcollection_construct(COLLECTIONTYPE, collection->srid, NULL, collection->ngeoms, geoms);
-	return ocol;
-}
-
-LWGEOM *
-lwgeom_segmentize(LWGEOM *geom, uint32_t perQuad)
-{
-	LWGEOM * ogeom = NULL;
-	switch (geom->type)
-	{
-	case CIRCSTRINGTYPE:
-		ogeom = (LWGEOM *)lwcircstring_segmentize((LWCIRCSTRING *)geom, perQuad);
-		break;
-	case COMPOUNDTYPE:
-		ogeom = (LWGEOM *)lwcompound_segmentize((LWCOMPOUND *)geom, perQuad);
-		break;
-	case CURVEPOLYTYPE:
-		ogeom = (LWGEOM *)lwcurvepoly_segmentize((LWCURVEPOLY *)geom, perQuad);
-		break;
-	case MULTICURVETYPE:
-		ogeom = (LWGEOM *)lwmcurve_segmentize((LWMCURVE *)geom, perQuad);
-		break;
-	case MULTISURFACETYPE:
-		ogeom = (LWGEOM *)lwmsurface_segmentize((LWMSURFACE *)geom, perQuad);
-		break;
-	case COLLECTIONTYPE:
-		ogeom = (LWGEOM *)lwcollection_segmentize((LWCOLLECTION *)geom, perQuad);
-		break;
-	default:
-		ogeom = lwgeom_clone(geom);
-	}
-	return ogeom;
-}
-
-/**
- * Return ABC angle in radians
- * TODO: move to lwalgorithm
- */
-static double
-lw_arc_angle(const POINT2D *a, const POINT2D *b, const POINT2D *c)
-{
-  POINT2D ab, cb;
-
-  ab.x = b->x - a->x;
-  ab.y = b->y - a->y;
-
-  cb.x = b->x - c->x;
-  cb.y = b->y - c->y;
-
-  double dot = (ab.x * cb.x + ab.y * cb.y); /* dot product */
-  double cross = (ab.x * cb.y - ab.y * cb.x); /* cross product */
-
-  double alpha = atan2(cross, dot);
-
-  return alpha;
-}
-
-/**
-* Returns LW_TRUE if b is on the arc formed by a1/a2/a3, but not within
-* that portion already described by a1/a2/a3
-*/
-static int pt_continues_arc(const POINT4D *a1, const POINT4D *a2, const POINT4D *a3, const POINT4D *b)
-{
-	POINT2D center;
-	POINT2D *t1 = (POINT2D*)a1;
-	POINT2D *t2 = (POINT2D*)a2;
-	POINT2D *t3 = (POINT2D*)a3;
-	POINT2D *tb = (POINT2D*)b;
-	double radius = lw_arc_center(t1, t2, t3, &center);
-	double b_distance, diff;
-
-	/* Co-linear a1/a2/a3 */
-	if ( radius < 0.0 )
-		return LW_FALSE;
-
-	b_distance = distance2d_pt_pt(tb, &center);
-	diff = fabs(radius - b_distance);
-	LWDEBUGF(4, "circle_radius=%g, b_distance=%g, diff=%g, percentage=%g", radius, b_distance, diff, diff/radius);
-	
-	/* Is the point b on the circle? */
-	if ( diff < EPSILON_SQLMM ) 
-	{
-		int a2_side = lw_segment_side(t1, t3, t2);
-		int b_side  = lw_segment_side(t1, t3, tb);
-		double angle1 = lw_arc_angle(t1, t2, t3);
-		double angle2 = lw_arc_angle(t2, t3, tb);
-
-		/* Is the angle similar to the previous one ? */
-		diff = fabs(angle1 - angle2);
-		LWDEBUGF(4, " angle1: %g, angle2: %g, diff:%g", angle1, angle2, diff);
-		if ( diff > EPSILON_SQLMM ) 
-		{
-			return LW_FALSE;
-		}
-
-		/* Is the point b on the same side of a1/a3 as the mid-point a2 is? */
-		/* If not, it's in the unbounded part of the circle, so it continues the arc, return true. */
-		if ( b_side != a2_side )
-			return LW_TRUE;
-	}
-	return LW_FALSE;
-}
-
-static LWGEOM*
-linestring_from_pa(const POINTARRAY *pa, int srid, int start, int end)
-{
-	int i = 0, j = 0;
-	POINT4D p;
-	POINTARRAY *pao = ptarray_construct(ptarray_has_z(pa), ptarray_has_m(pa), end-start+2);
-	LWDEBUGF(4, "srid=%d, start=%d, end=%d", srid, start, end);
-	for( i = start; i < end + 2; i++ )
-	{
-		getPoint4d_p(pa, i, &p);
-		ptarray_set_point4d(pao, j++, &p);	
-	}
-	return lwline_as_lwgeom(lwline_construct(srid, NULL, pao));
-}
-
-static LWGEOM*
-circstring_from_pa(const POINTARRAY *pa, int srid, int start, int end)
-{
-	
-	POINT4D p0, p1, p2;
-	POINTARRAY *pao = ptarray_construct(ptarray_has_z(pa), ptarray_has_m(pa), 3);
-	LWDEBUGF(4, "srid=%d, start=%d, end=%d", srid, start, end);
-	getPoint4d_p(pa, start, &p0);
-	ptarray_set_point4d(pao, 0, &p0);	
-	getPoint4d_p(pa, (start+end+1)/2, &p1);
-	ptarray_set_point4d(pao, 1, &p1);	
-	getPoint4d_p(pa, end+1, &p2);
-	ptarray_set_point4d(pao, 2, &p2);	
-	return lwcircstring_as_lwgeom(lwcircstring_construct(srid, NULL, pao));
-}
-
-static LWGEOM*
-geom_from_pa(const POINTARRAY *pa, int srid, int is_arc, int start, int end)
-{
-	LWDEBUGF(4, "srid=%d, is_arc=%d, start=%d, end=%d", srid, is_arc, start, end);
-	if ( is_arc )
-		return circstring_from_pa(pa, srid, start, end);
-	else
-		return linestring_from_pa(pa, srid, start, end);
-}
-
-LWGEOM*
-pta_desegmentize(POINTARRAY *points, int type, int srid)
-{
-	int i = 0, j, k;
-	POINT4D a1, a2, a3, b;
-	POINT4D first, center;
-	char *edges_in_arcs;
-	int found_arc = LW_FALSE;
-	int current_arc = 1;
-	int num_edges;
-	int edge_type; /* non-zero if edge is part of an arc */
-	int start, end;
-	LWCOLLECTION *outcol;
-	/* Minimum number of edges, per quadrant, required to define an arc */
-	const unsigned int min_quad_edges = 2;
-
-	/* Die on null input */
-	if ( ! points )
-		lwerror("pta_desegmentize called with null pointarray");
-
-	/* Null on empty input? */
-	if ( points->npoints == 0 )
-		return NULL;
-	
-	/* We can't desegmentize anything shorter than four points */
-	if ( points->npoints < 4 )
-	{
-		/* Return a linestring here*/
-		lwerror("pta_desegmentize needs implementation for npoints < 4");
-	}
-	
-	/* Allocate our result array of vertices that are part of arcs */
-	num_edges = points->npoints - 1;
-	edges_in_arcs = lwalloc(num_edges + 1);
-	memset(edges_in_arcs, 0, num_edges + 1);
-	
-	/* We make a candidate arc of the first two edges, */
-	/* And then see if the next edge follows it */
-	while( i < num_edges-2 )
-	{
-		unsigned int arc_edges;
-		double num_quadrants;
-		double angle;
-
-		found_arc = LW_FALSE;
-		/* Make candidate arc */
-		getPoint4d_p(points, i  , &a1);
-		getPoint4d_p(points, i+1, &a2);
-		getPoint4d_p(points, i+2, &a3);
-		memcpy(&first, &a1, sizeof(POINT4D));
-
-		for( j = i+3; j < num_edges+1; j++ )
-		{
-			LWDEBUGF(4, "i=%d, j=%d", i, j);
-			getPoint4d_p(points, j, &b);
-			/* Does this point fall on our candidate arc? */
-			if ( pt_continues_arc(&a1, &a2, &a3, &b) )
-			{
-				/* Yes. Mark this edge and the two preceding it as arc components */
-				LWDEBUGF(4, "pt_continues_arc #%d", current_arc);
-				found_arc = LW_TRUE;
-				for ( k = j-1; k > j-4; k-- )
-					edges_in_arcs[k] = current_arc;
-			}
-			else
-			{
-				/* No. So we're done with this candidate arc */
-				LWDEBUG(4, "pt_continues_arc = false");
-				current_arc++;
-				break;
-			}
-
-			memcpy(&a1, &a2, sizeof(POINT4D));
-			memcpy(&a2, &a3, sizeof(POINT4D));
-			memcpy(&a3,  &b, sizeof(POINT4D));
-		}
-		/* Jump past all the edges that were added to the arc */
-		if ( found_arc )
-		{
-			/* Check if an arc was composed by enough edges to be
-			 * really considered an arc
-			 * See http://trac.osgeo.org/postgis/ticket/2420
-			 */
-			arc_edges = j - 1 - i;
-			LWDEBUGF(4, "arc defined by %d edges found", arc_edges);
-			if ( first.x == b.x && first.y == b.y ) {
-				LWDEBUG(4, "arc is a circle");
-				num_quadrants = 4;
-			}
-			else {
-				lw_arc_center((POINT2D*)&first, (POINT2D*)&b, (POINT2D*)&a1, (POINT2D*)&center);
-				angle = lw_arc_angle((POINT2D*)&first, (POINT2D*)&center, (POINT2D*)&b);
-        int p2_side = lw_segment_side((POINT2D*)&first, (POINT2D*)&a1, (POINT2D*)&b);
-        if ( p2_side >= 0 ) angle = -angle; 
-
-				if ( angle < 0 ) angle = 2 * M_PI + angle;
-				num_quadrants = ( 4 * angle ) / ( 2 * M_PI );
-				LWDEBUGF(4, "arc angle (%g %g, %g %g, %g %g) is %g (side is %d), quandrants:%g", first.x, first.y, center.x, center.y, b.x, b.y, angle, p2_side, num_quadrants);
-			}
-			/* a1 is first point, b is last point */
-			if ( arc_edges < min_quad_edges * num_quadrants ) {
-				LWDEBUGF(4, "Not enough edges for a %g quadrants arc, %g needed", num_quadrants, min_quad_edges * num_quadrants);
-				for ( k = j-1; k >= i; k-- )
-					edges_in_arcs[k] = 0;
-			}
-			i = j-1;
-		}
-		else
-		{
-			/* Mark this edge as a linear edge */
-			edges_in_arcs[i] = 0;
-			i = i+1;
-		}
-	}
-	
-#if POSTGIS_DEBUG_LEVEL > 3
-	{
-		char *edgestr = lwalloc(num_edges+1);
-		for ( i = 0; i < num_edges; i++ )
-		{
-			if ( edges_in_arcs[i] )
-				edgestr[i] = 48 + edges_in_arcs[i];
-			else
-				edgestr[i] = '.';
-		}
-		edgestr[num_edges] = 0;
-		LWDEBUGF(3, "edge pattern %s", edgestr);
-		lwfree(edgestr);
-	}
-#endif
-
-	start = 0;
-	edge_type = edges_in_arcs[0];
-	outcol = lwcollection_construct_empty(COMPOUNDTYPE, srid, ptarray_has_z(points), ptarray_has_m(points));
-	for( i = 1; i < num_edges; i++ )
-	{
-		if( edge_type != edges_in_arcs[i] )
-		{
-			end = i - 1;
-			lwcollection_add_lwgeom(outcol, geom_from_pa(points, srid, edge_type, start, end));
-			start = i;
-			edge_type = edges_in_arcs[i];
-		}
-	}
-	lwfree(edges_in_arcs); /* not needed anymore */
-
-	/* Roll out last item */
-	end = num_edges - 1;
-	lwcollection_add_lwgeom(outcol, geom_from_pa(points, srid, edge_type, start, end));
-	
-	/* Strip down to singleton if only one entry */
-	if ( outcol->ngeoms == 1 )
-	{
-		LWGEOM *outgeom = outcol->geoms[0];
-		outcol->ngeoms = 0; lwcollection_free(outcol);
-		return outgeom;
-	}
-	return lwcollection_as_lwgeom(outcol);
-}
-
-
-LWGEOM *
-lwline_desegmentize(LWLINE *line)
-{
-	LWDEBUG(2, "lwline_desegmentize called.");
-
-	if ( line->points->npoints < 4 ) return lwline_as_lwgeom(lwline_clone(line));
-	else return pta_desegmentize(line->points, line->flags, line->srid);
-}
-
-LWGEOM *
-lwpolygon_desegmentize(LWPOLY *poly)
-{
-	LWGEOM **geoms;
-	int i, hascurve = 0;
-
-	LWDEBUG(2, "lwpolygon_desegmentize called.");
-
-	geoms = lwalloc(sizeof(LWGEOM *)*poly->nrings);
-	for (i=0; i<poly->nrings; i++)
-	{
-		geoms[i] = pta_desegmentize(poly->rings[i], poly->flags, poly->srid);
-		if (geoms[i]->type == CIRCSTRINGTYPE || geoms[i]->type == COMPOUNDTYPE)
-		{
-			hascurve = 1;
-		}
-	}
-	if (hascurve == 0)
-	{
-		for (i=0; i<poly->nrings; i++)
-		{
-			lwfree(geoms[i]); /* TODO: should this be lwgeom_free instead ? */
-		}
-		return lwgeom_clone((LWGEOM *)poly);
-	}
-
-	return (LWGEOM *)lwcollection_construct(CURVEPOLYTYPE, poly->srid, NULL, poly->nrings, geoms);
-}
-
-LWGEOM *
-lwmline_desegmentize(LWMLINE *mline)
-{
-	LWGEOM **geoms;
-	int i, hascurve = 0;
-
-	LWDEBUG(2, "lwmline_desegmentize called.");
-
-	geoms = lwalloc(sizeof(LWGEOM *)*mline->ngeoms);
-	for (i=0; i<mline->ngeoms; i++)
-	{
-		geoms[i] = lwline_desegmentize((LWLINE *)mline->geoms[i]);
-		if (geoms[i]->type == CIRCSTRINGTYPE || geoms[i]->type == COMPOUNDTYPE)
-		{
-			hascurve = 1;
-		}
-	}
-	if (hascurve == 0)
-	{
-		for (i=0; i<mline->ngeoms; i++)
-		{
-			lwfree(geoms[i]); /* TODO: should this be lwgeom_free instead ? */
-		}
-		return lwgeom_clone((LWGEOM *)mline);
-	}
-	return (LWGEOM *)lwcollection_construct(MULTICURVETYPE, mline->srid, NULL, mline->ngeoms, geoms);
-}
-
-LWGEOM *
-lwmpolygon_desegmentize(LWMPOLY *mpoly)
-{
-	LWGEOM **geoms;
-	int i, hascurve = 0;
-
-	LWDEBUG(2, "lwmpoly_desegmentize called.");
-
-	geoms = lwalloc(sizeof(LWGEOM *)*mpoly->ngeoms);
-	for (i=0; i<mpoly->ngeoms; i++)
-	{
-		geoms[i] = lwpolygon_desegmentize((LWPOLY *)mpoly->geoms[i]);
-		if (geoms[i]->type == CURVEPOLYTYPE)
-		{
-			hascurve = 1;
-		}
-	}
-	if (hascurve == 0)
-	{
-		for (i=0; i<mpoly->ngeoms; i++)
-		{
-			lwfree(geoms[i]); /* TODO: should this be lwgeom_free instead ? */
-		}
-		return lwgeom_clone((LWGEOM *)mpoly);
-	}
-	return (LWGEOM *)lwcollection_construct(MULTISURFACETYPE, mpoly->srid, NULL, mpoly->ngeoms, geoms);
-}
-
-LWGEOM *
-lwgeom_desegmentize(LWGEOM *geom)
-{
-	LWDEBUG(2, "lwgeom_desegmentize called.");
-
-	switch (geom->type)
-	{
-	case LINETYPE:
-		return lwline_desegmentize((LWLINE *)geom);
-	case POLYGONTYPE:
-		return lwpolygon_desegmentize((LWPOLY *)geom);
-	case MULTILINETYPE:
-		return lwmline_desegmentize((LWMLINE *)geom);
-	case MULTIPOLYGONTYPE:
-		return lwmpolygon_desegmentize((LWMPOLY *)geom);
-	default:
-		return lwgeom_clone(geom);
-	}
-}
-
diff --git a/liblwgeom/lwspheroid.c b/liblwgeom/lwspheroid.c
index a16f917..c8d9cf6 100644
--- a/liblwgeom/lwspheroid.c
+++ b/liblwgeom/lwspheroid.c
@@ -14,6 +14,11 @@
 #include "lwgeodetic.h"
 #include "lwgeom_log.h"
 
+/* GeographicLib */
+#if PROJ_GEODESIC
+#include <geodesic.h>
+#endif
+
 /**
 * Initialize spheroid object based on major and minor axis
 */
@@ -26,6 +31,7 @@ void spheroid_init(SPHEROID *s, double a, double b)
 	s->radius = (2.0 * a + b ) / 3.0;
 }
 
+#if ! PROJ_GEODESIC
 static double spheroid_mu2(double alpha, const SPHEROID *s)
 {
 	double b2 = POW2(s->b);
@@ -41,6 +47,113 @@ static double spheroid_big_b(double u2)
 {
 	return (u2 / 1024.0) * (256.0 + u2 * (-128.0 + u2 * (74.0 - 47.0 * u2)));
 }
+#endif /* ! PROJ_GEODESIC */
+
+
+#if PROJ_GEODESIC
+
+/**
+* Computes the shortest distance along the surface of the spheroid
+* between two points, using the inverse geodesic problem from
+* GeographicLib (Karney 2013).
+*
+* @param a - location of first point
+* @param b - location of second point
+* @param s - spheroid to calculate on
+* @return spheroidal distance between a and b in spheroid units
+*/
+double spheroid_distance(const GEOGRAPHIC_POINT *a, const GEOGRAPHIC_POINT *b, const SPHEROID *spheroid)
+{
+	struct geod_geodesic gd;
+	geod_init(&gd, spheroid->a, spheroid->f);
+	double lat1 = a->lat * 180.0 / M_PI;
+	double lon1 = a->lon * 180.0 / M_PI;
+	double lat2 = b->lat * 180.0 / M_PI;
+	double lon2 = b->lon * 180.0 / M_PI;
+	double s12; /* return distance */
+	geod_inverse(&gd, lat1, lon1, lat2, lon2, &s12, 0, 0);
+	return s12;
+}
+
+/**
+* Computes the forward azimuth of the geodesic joining two points on
+* the spheroid, using the inverse geodesic problem (Karney 2013).
+*
+* @param r - location of first point
+* @param s - location of second point
+* @return azimuth of line joining r to s (but not reverse)
+*/
+double spheroid_direction(const GEOGRAPHIC_POINT *a, const GEOGRAPHIC_POINT *b, const SPHEROID *spheroid)
+{
+	struct geod_geodesic gd;
+	geod_init(&gd, spheroid->a, spheroid->f);
+	double lat1 = a->lat * 180.0 / M_PI;
+	double lon1 = a->lon * 180.0 / M_PI;
+	double lat2 = b->lat * 180.0 / M_PI;
+	double lon2 = b->lon * 180.0 / M_PI;
+	double azi1; /* return azimuth */
+	geod_inverse(&gd, lat1, lon1, lat2, lon2, 0, &azi1, 0);
+	return azi1 * M_PI / 180.0;
+}
+
+/**
+* Given a location, an azimuth and a distance, computes the location of
+* the projected point. Using the direct geodesic problem from
+* GeographicLib (Karney 2013).
+*
+* @param r - location of first point
+* @param distance - distance in meters
+* @param azimuth - azimuth in radians
+* @return g - location of projected point
+*/
+int spheroid_project(const GEOGRAPHIC_POINT *r, const SPHEROID *spheroid, double distance, double azimuth, GEOGRAPHIC_POINT *g)
+{
+	struct geod_geodesic gd;
+	geod_init(&gd, spheroid->a, spheroid->f);
+	double lat1 = r->lat * 180.0 / M_PI;
+	double lon1 = r->lon * 180.0 / M_PI;
+	double lat2, lon2; /* return projected position */
+	geod_direct(&gd, lat1, lon1, azimuth * 180.0 / M_PI, distance, &lat2, &lon2, 0);
+	g->lat = lat2 * M_PI / 180.0;
+	g->lon = lon2 * M_PI / 180.0;
+	return LW_SUCCESS;
+}
+
+
+static double ptarray_area_spheroid(const POINTARRAY *pa, const SPHEROID *spheroid)
+{
+	/* Return zero on non-sensical inputs */
+	if ( ! pa || pa->npoints < 4 )
+		return 0.0;
+
+	struct geod_geodesic gd;
+	geod_init(&gd, spheroid->a, spheroid->f);
+	struct geod_polygon poly;
+	geod_polygon_init(&poly, 0);
+	int i;
+	double area; /* returned polygon area */
+	POINT2D p; /* long/lat units are degrees */
+
+	/* Pass points from point array; don't close the linearring */
+	for ( i = 0; i < pa->npoints - 1; i++ )
+	{
+		getPoint2d_p(pa, i, &p);
+		geod_polygon_addpoint(&gd, &poly, p.y, p.x);
+		LWDEBUGF(4, "geod_polygon_addpoint %d: %.12g %.12g", i, p.y, p.x);
+	}
+	i = geod_polygon_compute(&gd, &poly, 0, 1, &area, 0);
+	if ( i != pa->npoints - 1 )
+	{
+		lwerror("ptarray_area_spheroid: different number of points %d vs %d",
+				i, pa->npoints - 1);
+	}
+	LWDEBUGF(4, "geod_polygon_compute area: %.12g", area);
+	return fabs(area);
+}
+
+/* Above use GeographicLib */
+#else /* ! PROJ_GEODESIC */
+/* Below use pre-version 2.2 geodesic functions */
 
 /**
 * Computes the shortest distance along the surface of the spheroid
@@ -244,7 +357,7 @@ int spheroid_project(const GEOGRAPHIC_POINT *r, const SPHEROID *spheroid, double
 	{
 		azimuth = azimuth + M_PI * 2.0;
 	}
-	if (azimuth > (PI * 2.0))
+	if (azimuth > (M_PI * 2.0))
 	{
 		azimuth = azimuth - M_PI * 2.0;
 	}
@@ -503,6 +616,8 @@ static double ptarray_area_spheroid(const POINTARRAY *pa, const SPHEROID *sphero
 	}
 	return fabs(area);
 }
+#endif /* else ! PROJ_GEODESIC */
+
 /**
 * Calculate the area of an LWGEOM. Anything except POLYGON, MULTIPOLYGON
 * and GEOMETRYCOLLECTION return zero immediately. Multi's recurse, polygons
diff --git a/liblwgeom/lwstroke.c b/liblwgeom/lwstroke.c
new file mode 100644
index 0000000..47cd169
--- /dev/null
+++ b/liblwgeom/lwstroke.c
@@ -0,0 +1,858 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ * Copyright 2001-2006 Refractions Research Inc.
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+
+#include "liblwgeom_internal.h"
+
+/* #define POSTGIS_DEBUG_LEVEL 4 */
+
+#include "lwgeom_log.h"
+
+
+LWMLINE* lwmcurve_stroke(const LWMCURVE *mcurve, uint32_t perQuad);
+LWMPOLY* lwmsurface_stroke(const LWMSURFACE *msurface, uint32_t perQuad);
+LWCOLLECTION* lwcollection_stroke(const LWCOLLECTION *collection, uint32_t perQuad);
+
+LWGEOM* pta_unstroke(const POINTARRAY *points, int type, int srid);
+LWGEOM* lwline_unstroke(const LWLINE *line);
+LWGEOM* lwpolygon_unstroke(const LWPOLY *poly);
+LWGEOM* lwmline_unstroke(const LWMLINE *mline);
+LWGEOM* lwmpolygon_unstroke(const LWMPOLY *mpoly);
+LWGEOM* lwgeom_unstroke(const LWGEOM *geom);
+
+
+/*
+ * Determines (recursively in the case of collections) whether the geometry
+ * contains at least on arc geometry or segment.
+ */
+int
+lwgeom_has_arc(const LWGEOM *geom)
+{
+	LWCOLLECTION *col;
+	int i;
+
+	LWDEBUG(2, "lwgeom_has_arc called.");
+
+	switch (geom->type)
+	{
+	case POINTTYPE:
+	case LINETYPE:
+	case POLYGONTYPE:
+	case TRIANGLETYPE:
+	case MULTIPOINTTYPE:
+	case MULTILINETYPE:
+	case MULTIPOLYGONTYPE:
+	case POLYHEDRALSURFACETYPE:
+	case TINTYPE:
+		return LW_FALSE;
+	case CIRCSTRINGTYPE:
+		return LW_TRUE;
+	/* It's a collection that MAY contain an arc */
+	default:
+		col = (LWCOLLECTION *)geom;
+		for (i=0; i<col->ngeoms; i++)
+		{
+			if (lwgeom_has_arc(col->geoms[i]) == LW_TRUE) 
+				return LW_TRUE;
+		}
+		return LW_FALSE;
+	}
+}
+
+
+
+/*******************************************************************************
+ * Begin curve segmentize functions
+ ******************************************************************************/
+
+static double interpolate_arc(double angle, double a1, double a2, double a3, double zm1, double zm2, double zm3)
+{
+	LWDEBUGF(4,"angle %.05g a1 %.05g a2 %.05g a3 %.05g zm1 %.05g zm2 %.05g zm3 %.05g",angle,a1,a2,a3,zm1,zm2,zm3);
+	/* Counter-clockwise sweep */
+	if ( a1 < a2 )
+	{
+		if ( angle <= a2 )
+			return zm1 + (zm2-zm1) * (angle-a1) / (a2-a1);
+		else
+			return zm2 + (zm3-zm2) * (angle-a2) / (a3-a2);
+	}
+	/* Clockwise sweep */
+	else
+	{
+		if ( angle >= a2 )
+			return zm1 + (zm2-zm1) * (a1-angle) / (a1-a2);
+		else
+			return zm2 + (zm3-zm2) * (a2-angle) / (a2-a3);
+	}
+}
+
+static POINTARRAY *
+lwcircle_stroke(const POINT4D *p1, const POINT4D *p2, const POINT4D *p3, uint32_t perQuad)
+{
+	POINT2D center;
+	POINT2D *t1 = (POINT2D*)p1;
+	POINT2D *t2 = (POINT2D*)p2;
+	POINT2D *t3 = (POINT2D*)p3;
+	POINT4D pt;
+	int p2_side = 0;
+	int clockwise = LW_TRUE;
+	double radius; /* Arc radius */
+	double increment; /* Angle per segment */
+	double a1, a2, a3, angle;
+	POINTARRAY *pa;
+	int is_circle = LW_FALSE;
+
+	LWDEBUG(2, "lwcircle_calculate_gbox called.");
+
+	radius = lw_arc_center(t1, t2, t3, &center);
+	p2_side = lw_segment_side(t1, t3, t2);
+
+	/* Matched start/end points imply circle */
+	if ( p1->x == p3->x && p1->y == p3->y )
+		is_circle = LW_TRUE;
+	
+	/* Negative radius signals straight line, p1/p2/p3 are colinear */
+	if ( (radius < 0.0 || p2_side == 0) && ! is_circle )
+	    return NULL;
+		
+	/* The side of the p1/p3 line that p2 falls on dictates the sweep  
+	   direction from p1 to p3. */
+	if ( p2_side == -1 )
+		clockwise = LW_TRUE;
+	else
+		clockwise = LW_FALSE;
+		
+	increment = fabs(M_PI_2 / perQuad);
+	
+	/* Angles of each point that defines the arc section */
+	a1 = atan2(p1->y - center.y, p1->x - center.x);
+	a2 = atan2(p2->y - center.y, p2->x - center.x);
+	a3 = atan2(p3->y - center.y, p3->x - center.x);
+
+	/* p2 on left side => clockwise sweep */
+	if ( clockwise )
+	{
+		increment *= -1;
+		/* Adjust a3 down so we can decrement from a1 to a3 cleanly */
+		if ( a3 > a1 )
+			a3 -= 2.0 * M_PI;
+		if ( a2 > a1 )
+			a2 -= 2.0 * M_PI;
+	}
+	/* p2 on right side => counter-clockwise sweep */
+	else
+	{
+		/* Adjust a3 up so we can increment from a1 to a3 cleanly */
+		if ( a3 < a1 )
+			a3 += 2.0 * M_PI;
+		if ( a2 < a1 )
+			a2 += 2.0 * M_PI;
+	}
+	
+	/* Override angles for circle case */
+	if( is_circle )
+	{
+		a3 = a1 + 2.0 * M_PI;
+		a2 = a1 + M_PI;
+		increment = fabs(increment);
+		clockwise = LW_FALSE;
+	}
+	
+	/* Initialize point array */
+	pa = ptarray_construct_empty(1, 1, 32);
+
+	/* Sweep from a1 to a3 */
+	ptarray_append_point(pa, p1, LW_FALSE);
+	for ( angle = a1 + increment; clockwise ? angle > a3 : angle < a3; angle += increment ) 
+	{
+		pt.x = center.x + radius * cos(angle);
+		pt.y = center.y + radius * sin(angle);
+		pt.z = interpolate_arc(angle, a1, a2, a3, p1->z, p2->z, p3->z);
+		pt.m = interpolate_arc(angle, a1, a2, a3, p1->m, p2->m, p3->m);
+		ptarray_append_point(pa, &pt, LW_FALSE);
+	}	
+	return pa;
+}
+
+LWLINE *
+lwcircstring_stroke(const LWCIRCSTRING *icurve, uint32_t perQuad)
+{
+	LWLINE *oline;
+	POINTARRAY *ptarray;
+	POINTARRAY *tmp;
+	uint32_t i, j;
+	POINT4D p1, p2, p3, p4;
+
+	LWDEBUGF(2, "lwcircstring_stroke called., dim = %d", icurve->points->flags);
+
+	ptarray = ptarray_construct_empty(FLAGS_GET_Z(icurve->points->flags), FLAGS_GET_M(icurve->points->flags), 64);
+
+	for (i = 2; i < icurve->points->npoints; i+=2)
+	{
+		LWDEBUGF(3, "lwcircstring_stroke: arc ending at point %d", i);
+
+		getPoint4d_p(icurve->points, i - 2, &p1);
+		getPoint4d_p(icurve->points, i - 1, &p2);
+		getPoint4d_p(icurve->points, i, &p3);
+		tmp = lwcircle_stroke(&p1, &p2, &p3, perQuad);
+
+		if (tmp)
+		{
+			LWDEBUGF(3, "lwcircstring_stroke: generated %d points", tmp->npoints);
+
+			for (j = 0; j < tmp->npoints; j++)
+			{
+				getPoint4d_p(tmp, j, &p4);
+				ptarray_append_point(ptarray, &p4, LW_TRUE);
+			}
+			ptarray_free(tmp);
+		}
+		else
+		{
+			LWDEBUG(3, "lwcircstring_stroke: points are colinear, returning curve points as line");
+
+			for (j = i - 2 ; j < i ; j++)
+			{
+				getPoint4d_p(icurve->points, j, &p4);
+				ptarray_append_point(ptarray, &p4, LW_TRUE);
+			}
+		}
+
+	}
+	getPoint4d_p(icurve->points, icurve->points->npoints-1, &p1);
+	ptarray_append_point(ptarray, &p1, LW_TRUE);
+		
+	oline = lwline_construct(icurve->srid, NULL, ptarray);
+	return oline;
+}
+
+LWLINE *
+lwcompound_stroke(const LWCOMPOUND *icompound, uint32_t perQuad)
+{
+	LWGEOM *geom;
+	POINTARRAY *ptarray = NULL, *ptarray_out = NULL;
+	LWLINE *tmp = NULL;
+	uint32_t i, j;
+	POINT4D p;
+
+	LWDEBUG(2, "lwcompound_stroke called.");
+
+	ptarray = ptarray_construct_empty(FLAGS_GET_Z(icompound->flags), FLAGS_GET_M(icompound->flags), 64);
+
+	for (i = 0; i < icompound->ngeoms; i++)
+	{
+		geom = icompound->geoms[i];
+		if (geom->type == CIRCSTRINGTYPE)
+		{
+			tmp = lwcircstring_stroke((LWCIRCSTRING *)geom, perQuad);
+			for (j = 0; j < tmp->points->npoints; j++)
+			{
+				getPoint4d_p(tmp->points, j, &p);
+				ptarray_append_point(ptarray, &p, LW_TRUE);
+			}
+			lwline_free(tmp);
+		}
+		else if (geom->type == LINETYPE)
+		{
+			tmp = (LWLINE *)geom;
+			for (j = 0; j < tmp->points->npoints; j++)
+			{
+				getPoint4d_p(tmp->points, j, &p);
+				ptarray_append_point(ptarray, &p, LW_TRUE);
+			}
+		}
+		else
+		{
+			lwerror("Unsupported geometry type %d found.",
+			        geom->type, lwtype_name(geom->type));
+			return NULL;
+		}
+	}
+	ptarray_out = ptarray_remove_repeated_points(ptarray, 0.0);
+	ptarray_free(ptarray);
+	return lwline_construct(icompound->srid, NULL, ptarray_out);
+}
+
+LWPOLY *
+lwcurvepoly_stroke(const LWCURVEPOLY *curvepoly, uint32_t perQuad)
+{
+	LWPOLY *ogeom;
+	LWGEOM *tmp;
+	LWLINE *line;
+	POINTARRAY **ptarray;
+	int i;
+
+	LWDEBUG(2, "lwcurvepoly_stroke called.");
+
+	ptarray = lwalloc(sizeof(POINTARRAY *)*curvepoly->nrings);
+
+	for (i = 0; i < curvepoly->nrings; i++)
+	{
+		tmp = curvepoly->rings[i];
+		if (tmp->type == CIRCSTRINGTYPE)
+		{
+			line = lwcircstring_stroke((LWCIRCSTRING *)tmp, perQuad);
+			ptarray[i] = ptarray_clone_deep(line->points);
+			lwline_free(line);
+		}
+		else if (tmp->type == LINETYPE)
+		{
+			line = (LWLINE *)tmp;
+			ptarray[i] = ptarray_clone_deep(line->points);
+		}
+		else if (tmp->type == COMPOUNDTYPE)
+		{
+			line = lwcompound_stroke((LWCOMPOUND *)tmp, perQuad);
+			ptarray[i] = ptarray_clone_deep(line->points);
+			lwline_free(line);
+		}
+		else
+		{
+			lwerror("Invalid ring type found in CurvePoly.");
+			return NULL;
+		}
+	}
+
+	ogeom = lwpoly_construct(curvepoly->srid, NULL, curvepoly->nrings, ptarray);
+	return ogeom;
+}
+
+LWMLINE *
+lwmcurve_stroke(const LWMCURVE *mcurve, uint32_t perQuad)
+{
+	LWMLINE *ogeom;
+	LWGEOM **lines;
+	int i;
+
+	LWDEBUGF(2, "lwmcurve_stroke called, geoms=%d, dim=%d.", mcurve->ngeoms, FLAGS_NDIMS(mcurve->flags));
+
+	lines = lwalloc(sizeof(LWGEOM *)*mcurve->ngeoms);
+
+	for (i = 0; i < mcurve->ngeoms; i++)
+	{
+		const LWGEOM *tmp = mcurve->geoms[i];
+		if (tmp->type == CIRCSTRINGTYPE)
+		{
+			lines[i] = (LWGEOM *)lwcircstring_stroke((LWCIRCSTRING *)tmp, perQuad);
+		}
+		else if (tmp->type == LINETYPE)
+		{
+			lines[i] = (LWGEOM *)lwline_construct(mcurve->srid, NULL, ptarray_clone_deep(((LWLINE *)tmp)->points));
+		}
+		else if (tmp->type == COMPOUNDTYPE)
+		{
+			lines[i] = (LWGEOM *)lwcompound_stroke((LWCOMPOUND *)tmp, perQuad);
+		}
+		else
+		{
+			lwerror("Unsupported geometry found in MultiCurve.");
+			return NULL;
+		}
+	}
+
+	ogeom = (LWMLINE *)lwcollection_construct(MULTILINETYPE, mcurve->srid, NULL, mcurve->ngeoms, lines);
+	return ogeom;
+}
+
+LWMPOLY *
+lwmsurface_stroke(const LWMSURFACE *msurface, uint32_t perQuad)
+{
+	LWMPOLY *ogeom;
+	LWGEOM *tmp;
+	LWPOLY *poly;
+	LWGEOM **polys;
+	POINTARRAY **ptarray;
+	int i, j;
+
+	LWDEBUG(2, "lwmsurface_stroke called.");
+
+	polys = lwalloc(sizeof(LWGEOM *)*msurface->ngeoms);
+
+	for (i = 0; i < msurface->ngeoms; i++)
+	{
+		tmp = msurface->geoms[i];
+		if (tmp->type == CURVEPOLYTYPE)
+		{
+			polys[i] = (LWGEOM *)lwcurvepoly_stroke((LWCURVEPOLY *)tmp, perQuad);
+		}
+		else if (tmp->type == POLYGONTYPE)
+		{
+			poly = (LWPOLY *)tmp;
+			ptarray = lwalloc(sizeof(POINTARRAY *)*poly->nrings);
+			for (j = 0; j < poly->nrings; j++)
+			{
+				ptarray[j] = ptarray_clone_deep(poly->rings[j]);
+			}
+			polys[i] = (LWGEOM *)lwpoly_construct(msurface->srid, NULL, poly->nrings, ptarray);
+		}
+	}
+	ogeom = (LWMPOLY *)lwcollection_construct(MULTIPOLYGONTYPE, msurface->srid, NULL, msurface->ngeoms, polys);
+	return ogeom;
+}
+
+LWCOLLECTION *
+lwcollection_stroke(const LWCOLLECTION *collection, uint32_t perQuad)
+{
+	LWCOLLECTION *ocol;
+	LWGEOM *tmp;
+	LWGEOM **geoms;
+	int i;
+
+	LWDEBUG(2, "lwcollection_stroke called.");
+
+	geoms = lwalloc(sizeof(LWGEOM *)*collection->ngeoms);
+
+	for (i=0; i<collection->ngeoms; i++)
+	{
+		tmp = collection->geoms[i];
+		switch (tmp->type)
+		{
+		case CIRCSTRINGTYPE:
+			geoms[i] = (LWGEOM *)lwcircstring_stroke((LWCIRCSTRING *)tmp, perQuad);
+			break;
+		case COMPOUNDTYPE:
+			geoms[i] = (LWGEOM *)lwcompound_stroke((LWCOMPOUND *)tmp, perQuad);
+			break;
+		case CURVEPOLYTYPE:
+			geoms[i] = (LWGEOM *)lwcurvepoly_stroke((LWCURVEPOLY *)tmp, perQuad);
+			break;
+		case COLLECTIONTYPE:
+			geoms[i] = (LWGEOM *)lwcollection_stroke((LWCOLLECTION *)tmp, perQuad);
+			break;
+		default:
+			geoms[i] = lwgeom_clone(tmp);
+			break;
+		}
+	}
+	ocol = lwcollection_construct(COLLECTIONTYPE, collection->srid, NULL, collection->ngeoms, geoms);
+	return ocol;
+}
+
+LWGEOM *
+lwgeom_stroke(const LWGEOM *geom, uint32_t perQuad)
+{
+	LWGEOM * ogeom = NULL;
+	switch (geom->type)
+	{
+	case CIRCSTRINGTYPE:
+		ogeom = (LWGEOM *)lwcircstring_stroke((LWCIRCSTRING *)geom, perQuad);
+		break;
+	case COMPOUNDTYPE:
+		ogeom = (LWGEOM *)lwcompound_stroke((LWCOMPOUND *)geom, perQuad);
+		break;
+	case CURVEPOLYTYPE:
+		ogeom = (LWGEOM *)lwcurvepoly_stroke((LWCURVEPOLY *)geom, perQuad);
+		break;
+	case MULTICURVETYPE:
+		ogeom = (LWGEOM *)lwmcurve_stroke((LWMCURVE *)geom, perQuad);
+		break;
+	case MULTISURFACETYPE:
+		ogeom = (LWGEOM *)lwmsurface_stroke((LWMSURFACE *)geom, perQuad);
+		break;
+	case COLLECTIONTYPE:
+		ogeom = (LWGEOM *)lwcollection_stroke((LWCOLLECTION *)geom, perQuad);
+		break;
+	default:
+		ogeom = lwgeom_clone(geom);
+	}
+	return ogeom;
+}
+
+/**
+ * Return ABC angle in radians
+ * TODO: move to lwalgorithm
+ */
+static double
+lw_arc_angle(const POINT2D *a, const POINT2D *b, const POINT2D *c)
+{
+  POINT2D ab, cb;
+
+  ab.x = b->x - a->x;
+  ab.y = b->y - a->y;
+
+  cb.x = b->x - c->x;
+  cb.y = b->y - c->y;
+
+  double dot = (ab.x * cb.x + ab.y * cb.y); /* dot product */
+  double cross = (ab.x * cb.y - ab.y * cb.x); /* cross product */
+
+  double alpha = atan2(cross, dot);
+
+  return alpha;
+}
+
+/**
+* Returns LW_TRUE if b is on the arc formed by a1/a2/a3, but not within
+* that portion already described by a1/a2/a3
+*/
+static int pt_continues_arc(const POINT4D *a1, const POINT4D *a2, const POINT4D *a3, const POINT4D *b)
+{
+	POINT2D center;
+	POINT2D *t1 = (POINT2D*)a1;
+	POINT2D *t2 = (POINT2D*)a2;
+	POINT2D *t3 = (POINT2D*)a3;
+	POINT2D *tb = (POINT2D*)b;
+	double radius = lw_arc_center(t1, t2, t3, &center);
+	double b_distance, diff;
+
+	/* Co-linear a1/a2/a3 */
+	if ( radius < 0.0 )
+		return LW_FALSE;
+
+	b_distance = distance2d_pt_pt(tb, &center);
+	diff = fabs(radius - b_distance);
+	LWDEBUGF(4, "circle_radius=%g, b_distance=%g, diff=%g, percentage=%g", radius, b_distance, diff, diff/radius);
+	
+	/* Is the point b on the circle? */
+	if ( diff < EPSILON_SQLMM ) 
+	{
+		int a2_side = lw_segment_side(t1, t3, t2);
+		int b_side  = lw_segment_side(t1, t3, tb);
+		double angle1 = lw_arc_angle(t1, t2, t3);
+		double angle2 = lw_arc_angle(t2, t3, tb);
+
+		/* Is the angle similar to the previous one ? */
+		diff = fabs(angle1 - angle2);
+		LWDEBUGF(4, " angle1: %g, angle2: %g, diff:%g", angle1, angle2, diff);
+		if ( diff > EPSILON_SQLMM ) 
+		{
+			return LW_FALSE;
+		}
+
+		/* Is the point b on the same side of a1/a3 as the mid-point a2 is? */
+		/* If not, it's in the unbounded part of the circle, so it continues the arc, return true. */
+		if ( b_side != a2_side )
+			return LW_TRUE;
+	}
+	return LW_FALSE;
+}
+
+static LWGEOM*
+linestring_from_pa(const POINTARRAY *pa, int srid, int start, int end)
+{
+	int i = 0, j = 0;
+	POINT4D p;
+	POINTARRAY *pao = ptarray_construct(ptarray_has_z(pa), ptarray_has_m(pa), end-start+2);
+	LWDEBUGF(4, "srid=%d, start=%d, end=%d", srid, start, end);
+	for( i = start; i < end + 2; i++ )
+	{
+		getPoint4d_p(pa, i, &p);
+		ptarray_set_point4d(pao, j++, &p);	
+	}
+	return lwline_as_lwgeom(lwline_construct(srid, NULL, pao));
+}
+
+static LWGEOM*
+circstring_from_pa(const POINTARRAY *pa, int srid, int start, int end)
+{
+	
+	POINT4D p0, p1, p2;
+	POINTARRAY *pao = ptarray_construct(ptarray_has_z(pa), ptarray_has_m(pa), 3);
+	LWDEBUGF(4, "srid=%d, start=%d, end=%d", srid, start, end);
+	getPoint4d_p(pa, start, &p0);
+	ptarray_set_point4d(pao, 0, &p0);	
+	getPoint4d_p(pa, (start+end+1)/2, &p1);
+	ptarray_set_point4d(pao, 1, &p1);	
+	getPoint4d_p(pa, end+1, &p2);
+	ptarray_set_point4d(pao, 2, &p2);	
+	return lwcircstring_as_lwgeom(lwcircstring_construct(srid, NULL, pao));
+}
+
+static LWGEOM*
+geom_from_pa(const POINTARRAY *pa, int srid, int is_arc, int start, int end)
+{
+	LWDEBUGF(4, "srid=%d, is_arc=%d, start=%d, end=%d", srid, is_arc, start, end);
+	if ( is_arc )
+		return circstring_from_pa(pa, srid, start, end);
+	else
+		return linestring_from_pa(pa, srid, start, end);
+}
+
+LWGEOM*
+pta_unstroke(const POINTARRAY *points, int type, int srid)
+{
+	int i = 0, j, k;
+	POINT4D a1, a2, a3, b;
+	POINT4D first, center;
+	char *edges_in_arcs;
+	int found_arc = LW_FALSE;
+	int current_arc = 1;
+	int num_edges;
+	int edge_type; /* non-zero if edge is part of an arc */
+	int start, end;
+	LWCOLLECTION *outcol;
+	/* Minimum number of edges, per quadrant, required to define an arc */
+	const unsigned int min_quad_edges = 2;
+
+	/* Die on null input */
+	if ( ! points )
+		lwerror("pta_unstroke called with null pointarray");
+
+	/* Null on empty input? */
+	if ( points->npoints == 0 )
+		return NULL;
+	
+	/* We can't desegmentize anything shorter than four points */
+	if ( points->npoints < 4 )
+	{
+		/* Return a linestring here*/
+		lwerror("pta_unstroke needs implementation for npoints < 4");
+	}
+	
+	/* Allocate our result array of vertices that are part of arcs */
+	num_edges = points->npoints - 1;
+	edges_in_arcs = lwalloc(num_edges + 1);
+	memset(edges_in_arcs, 0, num_edges + 1);
+	
+	/* We make a candidate arc of the first two edges, */
+	/* And then see if the next edge follows it */
+	while( i < num_edges-2 )
+	{
+		unsigned int arc_edges;
+		double num_quadrants;
+		double angle;
+
+		found_arc = LW_FALSE;
+		/* Make candidate arc */
+		getPoint4d_p(points, i  , &a1);
+		getPoint4d_p(points, i+1, &a2);
+		getPoint4d_p(points, i+2, &a3);
+		memcpy(&first, &a1, sizeof(POINT4D));
+
+		for( j = i+3; j < num_edges+1; j++ )
+		{
+			LWDEBUGF(4, "i=%d, j=%d", i, j);
+			getPoint4d_p(points, j, &b);
+			/* Does this point fall on our candidate arc? */
+			if ( pt_continues_arc(&a1, &a2, &a3, &b) )
+			{
+				/* Yes. Mark this edge and the two preceding it as arc components */
+				LWDEBUGF(4, "pt_continues_arc #%d", current_arc);
+				found_arc = LW_TRUE;
+				for ( k = j-1; k > j-4; k-- )
+					edges_in_arcs[k] = current_arc;
+			}
+			else
+			{
+				/* No. So we're done with this candidate arc */
+				LWDEBUG(4, "pt_continues_arc = false");
+				current_arc++;
+				break;
+			}
+
+			memcpy(&a1, &a2, sizeof(POINT4D));
+			memcpy(&a2, &a3, sizeof(POINT4D));
+			memcpy(&a3,  &b, sizeof(POINT4D));
+		}
+		/* Jump past all the edges that were added to the arc */
+		if ( found_arc )
+		{
+			/* Check if an arc was composed by enough edges to be
+			 * really considered an arc
+			 * See http://trac.osgeo.org/postgis/ticket/2420
+			 */
+			arc_edges = j - 1 - i;
+			LWDEBUGF(4, "arc defined by %d edges found", arc_edges);
+			if ( first.x == b.x && first.y == b.y ) {
+				LWDEBUG(4, "arc is a circle");
+				num_quadrants = 4;
+			}
+			else {
+				lw_arc_center((POINT2D*)&first, (POINT2D*)&b, (POINT2D*)&a1, (POINT2D*)&center);
+				angle = lw_arc_angle((POINT2D*)&first, (POINT2D*)&center, (POINT2D*)&b);
+        int p2_side = lw_segment_side((POINT2D*)&first, (POINT2D*)&a1, (POINT2D*)&b);
+        if ( p2_side >= 0 ) angle = -angle; 
+
+				if ( angle < 0 ) angle = 2 * M_PI + angle;
+				num_quadrants = ( 4 * angle ) / ( 2 * M_PI );
+				LWDEBUGF(4, "arc angle (%g %g, %g %g, %g %g) is %g (side is %d), quandrants:%g", first.x, first.y, center.x, center.y, b.x, b.y, angle, p2_side, num_quadrants);
+			}
+			/* a1 is first point, b is last point */
+			if ( arc_edges < min_quad_edges * num_quadrants ) {
+				LWDEBUGF(4, "Not enough edges for a %g quadrants arc, %g needed", num_quadrants, min_quad_edges * num_quadrants);
+				for ( k = j-1; k >= i; k-- )
+					edges_in_arcs[k] = 0;
+			}
+
+			i = j-1;
+		}
+		else
+		{
+			/* Mark this edge as a linear edge */
+			edges_in_arcs[i] = 0;
+			i = i+1;
+		}
+	}
+	
+#if POSTGIS_DEBUG_LEVEL > 3
+	{
+		char *edgestr = lwalloc(num_edges+1);
+		for ( i = 0; i < num_edges; i++ )
+		{
+			if ( edges_in_arcs[i] )
+				edgestr[i] = 48 + edges_in_arcs[i];
+			else
+				edgestr[i] = '.';
+		}
+		edgestr[num_edges] = 0;
+		LWDEBUGF(3, "edge pattern %s", edgestr);
+		lwfree(edgestr);
+	}
+#endif
+
+	start = 0;
+	edge_type = edges_in_arcs[0];
+	outcol = lwcollection_construct_empty(COMPOUNDTYPE, srid, ptarray_has_z(points), ptarray_has_m(points));
+	for( i = 1; i < num_edges; i++ )
+	{
+		if( edge_type != edges_in_arcs[i] )
+		{
+			end = i - 1;
+			lwcollection_add_lwgeom(outcol, geom_from_pa(points, srid, edge_type, start, end));
+			start = i;
+			edge_type = edges_in_arcs[i];
+		}
+	}
+	lwfree(edges_in_arcs); /* not needed anymore */
+
+	/* Roll out last item */
+	end = num_edges - 1;
+	lwcollection_add_lwgeom(outcol, geom_from_pa(points, srid, edge_type, start, end));
+	
+	/* Strip down to singleton if only one entry */
+	if ( outcol->ngeoms == 1 )
+	{
+		LWGEOM *outgeom = outcol->geoms[0];
+		outcol->ngeoms = 0; lwcollection_free(outcol);
+		return outgeom;
+	}
+	return lwcollection_as_lwgeom(outcol);
+}
+
+
+LWGEOM *
+lwline_unstroke(const LWLINE *line)
+{
+	LWDEBUG(2, "lwline_unstroke called.");
+
+	if ( line->points->npoints < 4 ) return lwline_as_lwgeom(lwline_clone(line));
+	else return pta_unstroke(line->points, line->flags, line->srid);
+}
+
+LWGEOM *
+lwpolygon_unstroke(const LWPOLY *poly)
+{
+	LWGEOM **geoms;
+	int i, hascurve = 0;
+
+	LWDEBUG(2, "lwpolygon_unstroke called.");
+
+	geoms = lwalloc(sizeof(LWGEOM *)*poly->nrings);
+	for (i=0; i<poly->nrings; i++)
+	{
+		geoms[i] = pta_unstroke(poly->rings[i], poly->flags, poly->srid);
+		if (geoms[i]->type == CIRCSTRINGTYPE || geoms[i]->type == COMPOUNDTYPE)
+		{
+			hascurve = 1;
+		}
+	}
+	if (hascurve == 0)
+	{
+		for (i=0; i<poly->nrings; i++)
+		{
+			lwfree(geoms[i]); /* TODO: should this be lwgeom_free instead ? */
+		}
+		return lwgeom_clone((LWGEOM *)poly);
+	}
+
+	return (LWGEOM *)lwcollection_construct(CURVEPOLYTYPE, poly->srid, NULL, poly->nrings, geoms);
+}
+
+LWGEOM *
+lwmline_unstroke(const LWMLINE *mline)
+{
+	LWGEOM **geoms;
+	int i, hascurve = 0;
+
+	LWDEBUG(2, "lwmline_unstroke called.");
+
+	geoms = lwalloc(sizeof(LWGEOM *)*mline->ngeoms);
+	for (i=0; i<mline->ngeoms; i++)
+	{
+		geoms[i] = lwline_unstroke((LWLINE *)mline->geoms[i]);
+		if (geoms[i]->type == CIRCSTRINGTYPE || geoms[i]->type == COMPOUNDTYPE)
+		{
+			hascurve = 1;
+		}
+	}
+	if (hascurve == 0)
+	{
+		for (i=0; i<mline->ngeoms; i++)
+		{
+			lwfree(geoms[i]); /* TODO: should this be lwgeom_free instead ? */
+		}
+		return lwgeom_clone((LWGEOM *)mline);
+	}
+	return (LWGEOM *)lwcollection_construct(MULTICURVETYPE, mline->srid, NULL, mline->ngeoms, geoms);
+}
+
+LWGEOM * 
+lwmpolygon_unstroke(const LWMPOLY *mpoly)
+{
+	LWGEOM **geoms;
+	int i, hascurve = 0;
+
+	LWDEBUG(2, "lwmpoly_unstroke called.");
+
+	geoms = lwalloc(sizeof(LWGEOM *)*mpoly->ngeoms);
+	for (i=0; i<mpoly->ngeoms; i++)
+	{
+		geoms[i] = lwpolygon_unstroke((LWPOLY *)mpoly->geoms[i]);
+		if (geoms[i]->type == CURVEPOLYTYPE)
+		{
+			hascurve = 1;
+		}
+	}
+	if (hascurve == 0)
+	{
+		for (i=0; i<mpoly->ngeoms; i++)
+		{
+			lwfree(geoms[i]); /* TODO: should this be lwgeom_free instead ? */
+		}
+		return lwgeom_clone((LWGEOM *)mpoly);
+	}
+	return (LWGEOM *)lwcollection_construct(MULTISURFACETYPE, mpoly->srid, NULL, mpoly->ngeoms, geoms);
+}
+
+LWGEOM *
+lwgeom_unstroke(const LWGEOM *geom)
+{
+	LWDEBUG(2, "lwgeom_unstroke called.");
+
+	switch (geom->type)
+	{
+	case LINETYPE:
+		return lwline_unstroke((LWLINE *)geom);
+	case POLYGONTYPE:
+		return lwpolygon_unstroke((LWPOLY *)geom);
+	case MULTILINETYPE:
+		return lwmline_unstroke((LWMLINE *)geom);
+	case MULTIPOLYGONTYPE:
+		return lwmpolygon_unstroke((LWMPOLY *)geom);
+	default:
+		return lwgeom_clone(geom);
+	}
+}
+
diff --git a/liblwgeom/lwtriangle.c b/liblwgeom/lwtriangle.c
index ce106cd..905d088 100644
--- a/liblwgeom/lwtriangle.c
+++ b/liblwgeom/lwtriangle.c
@@ -152,7 +152,7 @@ lwtriangle_is_repeated_points(LWTRIANGLE *triangle)
 	char ret;
 	POINTARRAY *pa;
 
-	pa = ptarray_remove_repeated_points(triangle->points);
+	pa = ptarray_remove_repeated_points(triangle->points, 0.0);
 	ret = ptarray_same(pa, triangle->points);
 	ptarray_free(pa);
 
diff --git a/liblwgeom/lwunionfind.c b/liblwgeom/lwunionfind.c
new file mode 100644
index 0000000..8c61562
--- /dev/null
+++ b/liblwgeom/lwunionfind.c
@@ -0,0 +1,152 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright 2015 Daniel Baston <dbaston at gmail.com>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include "liblwgeom.h"
+#include "lwunionfind.h"
+#include <string.h>
+
+static int cmp_int(const void *a, const void *b);
+static int cmp_int_ptr(const void *a, const void *b);
+
+UNIONFIND*
+UF_create(uint32_t N)
+{
+	size_t i;
+	UNIONFIND* uf = lwalloc(sizeof(UNIONFIND));
+	uf->N = N;
+	uf->num_clusters = N;
+	uf->clusters = lwalloc(N * sizeof(uint32_t));
+	uf->cluster_sizes = lwalloc(N * sizeof(uint32_t));
+
+	for (i = 0; i < N; i++)
+	{
+		uf->clusters[i] = i;
+		uf->cluster_sizes[i] = 1;
+	}
+
+	return uf;
+}
+
+void
+UF_destroy(UNIONFIND* uf)
+{
+	lwfree(uf->clusters);
+	lwfree(uf->cluster_sizes);
+	lwfree(uf);
+}
+
+uint32_t
+UF_find (UNIONFIND* uf, uint32_t i)
+{
+	while (uf->clusters[i] != i)
+	{
+		uf->clusters[i] = uf->clusters[uf->clusters[i]];
+		i = uf->clusters[i];
+	}
+	return i;
+}
+
+void
+UF_union(UNIONFIND* uf, uint32_t i, uint32_t j)
+{
+	uint32_t a = UF_find(uf, i);
+	uint32_t b = UF_find(uf, j);
+
+	if (a == b)
+	{
+		return;
+	}
+
+	if (uf->cluster_sizes[a] < uf->cluster_sizes[b] ||
+	        (uf->cluster_sizes[a] == uf->cluster_sizes[b] && a > b))
+	{
+		uf->clusters[a] = uf->clusters[b];
+		uf->cluster_sizes[b] += uf->cluster_sizes[a];
+		uf->cluster_sizes[a] = 0;
+	}
+	else
+	{
+		uf->clusters[b] = uf->clusters[a];
+		uf->cluster_sizes[a] += uf->cluster_sizes[b];
+		uf->cluster_sizes[b] = 0;
+	}
+
+	uf->num_clusters--;
+}
+
+uint32_t*
+UF_ordered_by_cluster(UNIONFIND* uf)
+{
+	size_t i;
+	uint32_t** cluster_id_ptr_by_elem_id = lwalloc(uf->N * sizeof (uint32_t*));
+	uint32_t* ordered_ids = lwalloc(uf->N * sizeof (uint32_t));
+
+	for (i = 0; i < uf->N; i++)
+	{
+		/* Make sure each value in uf->clusters is pointing to the
+		 * root of the cluster.
+		 * */
+		UF_find(uf, i);
+		cluster_id_ptr_by_elem_id[i] = &(uf->clusters[i]);
+	}
+
+	/* Sort the array of cluster id pointers, so that pointers to the
+	 * same cluster id are grouped together.
+	 * */
+	qsort(cluster_id_ptr_by_elem_id, uf->N, sizeof (uint32_t*), &cmp_int_ptr);
+
+	/* Recover the input element ids from the cluster id pointers, so
+	 * we can return element ids grouped by cluster id.
+	 * */
+	for (i = 0; i < uf-> N; i++)
+	{
+		ordered_ids[i] = (cluster_id_ptr_by_elem_id[i] - uf->clusters);
+	}
+
+	lwfree(cluster_id_ptr_by_elem_id);
+	return ordered_ids;
+}
+static int
+cmp_int(const void *a, const void *b)
+{
+	if (*((uint32_t*) a) > *((uint32_t*) b))
+	{
+		return 1;
+	}
+	else if (*((uint32_t*) a) < *((uint32_t*) b))
+	{
+		return -1;
+	}
+	else
+	{
+		return 0;
+	}
+}
+
+static int
+cmp_int_ptr(const void *a, const void *b)
+{
+	int val_cmp = cmp_int(*((uint32_t**) a), *((uint32_t**) b));
+	if (val_cmp != 0)
+	{
+		return val_cmp;
+	}
+	if (a > b)
+	{
+		return 1;
+	}
+	if (a < b)
+	{
+		return -1;
+	}
+	return 0;
+}
diff --git a/liblwgeom/lwunionfind.h b/liblwgeom/lwunionfind.h
new file mode 100644
index 0000000..ab722ff
--- /dev/null
+++ b/liblwgeom/lwunionfind.h
@@ -0,0 +1,42 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright 2015 Daniel Baston <dbaston at gmail.com>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#ifndef _LWUNIONFIND
+#define _LWUNIONFIND 1
+
+#include "liblwgeom.h"
+
+typedef struct
+{
+	uint32_t* clusters;
+	uint32_t* cluster_sizes;
+	uint32_t num_clusters;
+	uint32_t N;
+} UNIONFIND;
+
+/* Allocate a UNIONFIND structure of capacity N */
+UNIONFIND* UF_create(uint32_t N);
+
+/* Release memory associated with UNIONFIND structure */
+void UF_destroy(UNIONFIND* uf);
+
+/* Identify the cluster id associated with specified component id */
+uint32_t UF_find(UNIONFIND* uf, uint32_t i);
+
+/* Merge the clusters that contain the two specified components ids */
+void UF_union(UNIONFIND* uf, uint32_t i, uint32_t j);
+
+/* Return an array of component ids, where components that are in the
+ * same cluster are contiguous in the array */
+uint32_t* UF_ordered_by_cluster(UNIONFIND* uf);
+
+#endif
diff --git a/liblwgeom/lwutil.c b/liblwgeom/lwutil.c
index f7f00c9..d7140d7 100644
--- a/liblwgeom/lwutil.c
+++ b/liblwgeom/lwutil.c
@@ -2,6 +2,7 @@
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
+#include <ctype.h> /* for tolower */
 
 /* Global variables */
 #include "../postgis_config.h"
@@ -22,6 +23,12 @@ static void default_errorreporter(const char *fmt, va_list ap);
 lwreporter lwnotice_var = default_noticereporter;
 lwreporter lwerror_var = default_errorreporter;
 
+/* Default logger */
+static void default_debuglogger(int level, const char *fmt, va_list ap);
+lwdebuglogger lwdebug_var = default_debuglogger;
+
+#define LW_MSG_MAXLEN 256
+
 static char *lwgeomTypeName[] =
 {
 	"Unknown",
@@ -76,6 +83,19 @@ lwerror(const char *fmt, ...)
 	va_end(ap);
 }
 
+void
+lwdebug(int level, const char *fmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, fmt);
+
+	/* Call the supplied function */
+	(*lwdebug_var)(level, fmt, ap);
+
+	va_end(ap);
+}
+
 /*
  * Default allocators
  *
@@ -107,37 +127,35 @@ default_reallocator(void *mem, size_t size)
 static void
 default_noticereporter(const char *fmt, va_list ap)
 {
-	char *msg;
+	char msg[LW_MSG_MAXLEN+1];
+	vsnprintf (msg, LW_MSG_MAXLEN, fmt, ap);
+	msg[LW_MSG_MAXLEN]='\0';
+	printf("%s\n", msg);
+}
 
-	/*
-	 * This is a GNU extension.
-	 * Dunno how to handle errors here.
-	 */
-	if (!lw_vasprintf (&msg, fmt, ap))
+static void
+default_debuglogger(int level, const char *fmt, va_list ap)
+{
+	char msg[LW_MSG_MAXLEN+1];
+	if ( POSTGIS_DEBUG_LEVEL >= level )
 	{
-		va_end (ap);
-		return;
+		/* Space pad the debug output */
+		int i;
+		for ( i = 0; i < level; i++ )
+			msg[i] = ' ';
+		vsnprintf(msg+i, LW_MSG_MAXLEN-i, fmt, ap);
+		msg[LW_MSG_MAXLEN]='\0';
+		printf("%s\n", msg);
 	}
-	printf("%s\n", msg);
-	free(msg);
 }
 
 static void
 default_errorreporter(const char *fmt, va_list ap)
 {
-	char *msg;
-
-	/*
-	 * This is a GNU extension.
-	 * Dunno how to handle errors here.
-	 */
-	if (!lw_vasprintf (&msg, fmt, ap))
-	{
-		va_end (ap);
-		return;
-	}
+	char msg[LW_MSG_MAXLEN+1];
+	vsnprintf (msg, LW_MSG_MAXLEN, fmt, ap);
+	msg[LW_MSG_MAXLEN]='\0';
 	fprintf(stderr, "%s\n", msg);
-	free(msg);
 	exit(1);
 }
 
@@ -160,6 +178,12 @@ lwgeom_set_handlers(lwallocator allocator, lwreallocator reallocator,
 	if ( noticereporter ) lwnotice_var = noticereporter;
 }
 
+void
+lwgeom_set_debuglogger(lwdebuglogger debuglogger) {
+
+	if ( debuglogger ) lwdebug_var = debuglogger;
+}
+
 const char* 
 lwtype_name(uint8_t type)
 {
diff --git a/liblwgeom/measures.c b/liblwgeom/measures.c
index 3fe3e0a..b0c3814 100644
--- a/liblwgeom/measures.c
+++ b/liblwgeom/measures.c
@@ -3,7 +3,7 @@
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
  * Copyright 2001-2006 Refractions Research Inc.
- * Copyright 2010 Nicklas Av�n
+ * Copyright 2010 Nicklas Avén
  * Copyright 2012 Paul Ramsey
  *
  * This is free software; you can redistribute and/or modify it under
@@ -18,11 +18,37 @@
 #include "lwgeom_log.h"
 
 
+
 /*------------------------------------------------------------------------------------------------------------
 Initializing functions
 The functions starting the distance-calculation processses
 --------------------------------------------------------------------------------------------------------------*/
 
+LWGEOM *
+lwgeom_closest_line(const LWGEOM *lw1, const LWGEOM *lw2)
+{
+  return lw_dist2d_distanceline(lw1, lw2, lw1->srid, DIST_MIN);
+}
+
+LWGEOM *
+lwgeom_furthest_line(const LWGEOM *lw1, const LWGEOM *lw2)
+{
+  return lw_dist2d_distanceline(lw1, lw2, lw1->srid, DIST_MAX);
+}
+
+LWGEOM *
+lwgeom_closest_point(const LWGEOM *lw1, const LWGEOM *lw2)
+{
+  return lw_dist2d_distancepoint(lw1, lw2, lw1->srid, DIST_MIN);  
+}
+
+LWGEOM *
+lwgeom_furthest_point(const LWGEOM *lw1, const LWGEOM *lw2)
+{
+  return lw_dist2d_distancepoint(lw1, lw2, lw1->srid, DIST_MAX);  
+}
+
+
 void
 lw_dist2d_distpts_init(DISTPTS *dl, int mode)
 {
@@ -32,20 +58,20 @@ lw_dist2d_distpts_init(DISTPTS *dl, int mode)
 	dl->mode = mode;
 	dl->tolerance = 0.0;
 	if ( mode == DIST_MIN )
-		dl->distance = MAXFLOAT;
+		dl->distance = FLT_MAX;
 	else
-		dl->distance = -1 * MAXFLOAT;
+		dl->distance = -1 * FLT_MAX;
 }
 
 /**
 Function initializing shortestline and longestline calculations.
 */
 LWGEOM *
-lw_dist2d_distanceline(LWGEOM *lw1, LWGEOM *lw2, int srid, int mode)
+lw_dist2d_distanceline(const LWGEOM *lw1, const LWGEOM *lw2, int srid, int mode)
 {
 	double x1,x2,y1,y2;
 
-	double initdistance = ( mode == DIST_MIN ? MAXFLOAT : -1.0);
+	double initdistance = ( mode == DIST_MIN ? FLT_MAX : -1.0);
 	DISTPTS thedl;
 	LWPOINT *lwpoints[2];
 	LWGEOM *result;
@@ -88,11 +114,11 @@ lw_dist2d_distanceline(LWGEOM *lw1, LWGEOM *lw2, int srid, int mode)
 Function initializing closestpoint calculations.
 */
 LWGEOM *
-lw_dist2d_distancepoint(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode)
+lw_dist2d_distancepoint(const LWGEOM *lw1, const LWGEOM *lw2,int srid,int mode)
 {
 	double x,y;
 	DISTPTS thedl;
-	double initdistance = MAXFLOAT;
+	double initdistance = FLT_MAX;
 	LWGEOM *result;
 
 	thedl.mode = mode;
@@ -126,7 +152,7 @@ lw_dist2d_distancepoint(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode)
 Function initialazing max distance calculation
 */
 double
-lwgeom_maxdistance2d(LWGEOM *lw1, LWGEOM *lw2)
+lwgeom_maxdistance2d(const LWGEOM *lw1, const LWGEOM *lw2)
 {
 	LWDEBUG(2, "lwgeom_maxdistance2d is called");
 
@@ -138,7 +164,7 @@ Function handling max distance calculations and dfyllywithin calculations.
 The difference is just the tolerance.
 */
 double
-lwgeom_maxdistance2d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance)
+lwgeom_maxdistance2d_tolerance(const LWGEOM *lw1, const LWGEOM *lw2, double tolerance)
 {
 	/*double thedist;*/
 	DISTPTS thedl;
@@ -159,7 +185,7 @@ lwgeom_maxdistance2d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance)
 	Function initialazing min distance calculation
 */
 double
-lwgeom_mindistance2d(LWGEOM *lw1, LWGEOM *lw2)
+lwgeom_mindistance2d(const LWGEOM *lw1, const LWGEOM *lw2)
 {
 	LWDEBUG(2, "lwgeom_mindistance2d is called");
 	return lwgeom_mindistance2d_tolerance( lw1, lw2, 0.0 );
@@ -170,12 +196,12 @@ lwgeom_mindistance2d(LWGEOM *lw1, LWGEOM *lw2)
 	The difference is just the tolerance.
 */
 double
-lwgeom_mindistance2d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance)
+lwgeom_mindistance2d_tolerance(const LWGEOM *lw1, const LWGEOM *lw2, double tolerance)
 {
 	DISTPTS thedl;
 	LWDEBUG(2, "lwgeom_mindistance2d_tolerance is called");
 	thedl.mode = DIST_MIN;
-	thedl.distance= MAXFLOAT;
+	thedl.distance= FLT_MAX;
 	thedl.tolerance = tolerance;
 	if (lw_dist2d_comp( lw1,lw2,&thedl))
 	{
@@ -183,7 +209,7 @@ lwgeom_mindistance2d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance)
 	}
 	/*should never get here. all cases ought to be error handled earlier*/
 	lwerror("Some unspecified error.");
-	return MAXFLOAT;
+	return FLT_MAX;
 }
 
 
@@ -202,7 +228,7 @@ Functions preparing geometries for distance-calculations
 	bboxes we will use anyway.
 */
 int
-lw_dist2d_comp(LWGEOM *lw1, LWGEOM *lw2, DISTPTS *dl)
+lw_dist2d_comp(const LWGEOM *lw1,const LWGEOM *lw2, DISTPTS *dl)
 {
 	LWDEBUG(2, "lw_dist2d_comp is called");
 
@@ -327,7 +353,7 @@ int lw_dist2d_recursive(const LWGEOM *lwg1, const LWGEOM *lwg2, DISTPTS *dl)
 
 
 int
-lw_dist2d_distribute_bruteforce(LWGEOM *lwg1, LWGEOM *lwg2, DISTPTS *dl)
+lw_dist2d_distribute_bruteforce(const LWGEOM *lwg1,const LWGEOM *lwg2, DISTPTS *dl)
 {
 
 	int	t1 = lwg1->type;
diff --git a/liblwgeom/measures.h b/liblwgeom/measures.h
index 6b9e5b8..5151727 100644
--- a/liblwgeom/measures.h
+++ b/liblwgeom/measures.h
@@ -1,10 +1,9 @@
 
 /**********************************************************************
- * $Id: measures.h 4715 2009-11-01 17:58:42Z nicklas $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
- * Copyright 2010 Nicklas Av�n
+ * Copyright 2010 Nicklas Avén
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
@@ -13,10 +12,12 @@
 
 #include "liblwgeom_internal.h"
 
+/* for the measure functions*/
+#define DIST_MAX		-1
+#define DIST_MIN		1
 
-/**
-
-Structure used in distance-calculations
+/** 
+* Structure used in distance-calculations
 */
 typedef struct
 {
@@ -30,18 +31,18 @@ typedef struct
 
 typedef struct
 {
-	double	themeasure;	/*a value calculated to compare distances*/
-	int		pnr;	/*pointnumber. the ordernumber of the point*/
+	double themeasure;	/*a value calculated to compare distances*/
+	int pnr;	/*pointnumber. the ordernumber of the point*/
 } LISTSTRUCT;
 
 
 /*
 * Preprocessing functions
 */
-int lw_dist2d_comp(LWGEOM *lw1, LWGEOM *lw2, DISTPTS *dl);
-int lw_dist2d_distribute_bruteforce(LWGEOM *lwg1, LWGEOM *lwg2, DISTPTS *dl);
+int lw_dist2d_comp(const LWGEOM *lw1, const LWGEOM *lw2, DISTPTS *dl);
+int lw_dist2d_distribute_bruteforce(const LWGEOM *lwg1, const LWGEOM *lwg2, DISTPTS *dl);
 int lw_dist2d_recursive(const LWGEOM *lwg1, const LWGEOM *lwg2, DISTPTS *dl);
-int lw_dist2d_check_overlap(LWGEOM *lwg1,LWGEOM *lwg2);
+int lw_dist2d_check_overlap(LWGEOM *lwg1, LWGEOM *lwg2);
 int lw_dist2d_distribute_fast(LWGEOM *lwg1, LWGEOM *lwg2, DISTPTS *dl);
 
 /*
@@ -93,3 +94,10 @@ void lw_dist2d_distpts_init(DISTPTS *dl, int mode);
 */
 double lw_arc_length(const POINT2D *A1, const POINT2D *A2, const POINT2D *A3);
 
+/*
+* Geometry returning functions
+*/
+LWGEOM* lw_dist2d_distancepoint(const LWGEOM *lw1, const LWGEOM *lw2, int srid, int mode);
+LWGEOM* lw_dist2d_distanceline(const LWGEOM *lw1, const LWGEOM *lw2, int srid, int mode);
+
+
diff --git a/liblwgeom/measures3d.c b/liblwgeom/measures3d.c
index a71e72a..873e078 100644
--- a/liblwgeom/measures3d.c
+++ b/liblwgeom/measures3d.c
@@ -1,10 +1,9 @@
 
 /**********************************************************************
- * $Id: measures.c 5439 2010-03-16 03:13:33Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
- * Copyright 2011 Nicklas Av�n
+ * Copyright 2011 Nicklas Avén
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
@@ -18,19 +17,89 @@
 #include "lwgeom_log.h"
 
 
-/*------------------------------------------------------------------------------------------------------------
-Initializing functions
-The functions starting the distance-calculation processses
---------------------------------------------------------------------------------------------------------------*/
+static inline int
+get_3dvector_from_points(POINT3DZ *p1,POINT3DZ *p2, VECTOR3D *v)
+{
+	v->x=p2->x-p1->x;
+	v->y=p2->y-p1->y;
+	v->z=p2->z-p1->z;
+	
+	return LW_TRUE;
+}
+
+static inline int
+get_3dcross_product(VECTOR3D *v1,VECTOR3D *v2, VECTOR3D *v)
+{
+	v->x=(v1->y*v2->z)-(v1->z*v2->y);
+	v->y=(v1->z*v2->x)-(v1->x*v2->z);
+	v->z=(v1->x*v2->y)-(v1->y*v2->x);
+
+	return LW_TRUE;
+}
+
+/**
+Used for check compability before sending control to 2D calculations
+in case of mixed dimmentionality*/
+static inline int
+supported_type(const LWGEOM *lwg)
+{
+	int	t = lwg->type;
+	if(t==POINTTYPE || t==LINETYPE || t==POLYGONTYPE)
+		return LW_TRUE;
+	else
+		return LW_FALSE;
+}
+
+/**
+This function is used to create a vertical line used for cases where one if the 
+geometries lacks z-values. The vertical line crosses the 2d point that is closest 
+and the z-range is from maxz to minz in the geoemtrie that has z values.
+*/
+static 
+LWGEOM* create_v_line(const LWGEOM *lwgeom,double x, double y, int srid)
+{
+	
+	LWPOINT *lwpoints[2];
+	GBOX gbox;
+	int rv = lwgeom_calculate_gbox(lwgeom, &gbox);
+	
+	if ( rv == LW_FAILURE )
+		return NULL;
+	
+	lwpoints[0] = lwpoint_make3dz(srid, x, y, gbox.zmin);
+	lwpoints[1] = lwpoint_make3dz(srid, x, y, gbox.zmax);
+	
+	 return (LWGEOM *)lwline_from_ptarray(srid, 2, lwpoints);		
+}
+
+LWGEOM * 
+lwgeom_closest_line_3d(const LWGEOM *lw1, const LWGEOM *lw2)
+{
+	return lw_dist3d_distanceline(lw1, lw2, lw1->srid, DIST_MIN);
+}
+
+LWGEOM * 
+lwgeom_furthest_line_3d(LWGEOM *lw1, LWGEOM *lw2)
+{
+	return lw_dist3d_distanceline(lw1, lw2, lw1->srid, DIST_MAX);
+}
+
+LWGEOM * 
+lwgeom_closest_point_3d(const LWGEOM *lw1, const LWGEOM *lw2)
+{
+	return lw_dist3d_distancepoint(lw1, lw2, lw1->srid, DIST_MIN);
+}
+
 
 /**
 Function initializing 3dshortestline and 3dlongestline calculations.
 */
 LWGEOM *
-lw_dist3d_distanceline(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode)
+lw_dist3d_distanceline(const LWGEOM *lw1, const LWGEOM *lw2, int srid, int mode)
 {
-	double x1,x2,y1,y2, z1, z2;
-	double initdistance = ( mode == DIST_MIN ? MAXFLOAT : -1.0);
+	LWDEBUG(2, "lw_dist3d_distanceline is called");
+	double x1,x2,y1,y2, z1, z2, x, y;
+	double initdistance = ( mode == DIST_MIN ? FLT_MAX : -1.0);
 	DISTPTS3D thedl;
 	LWPOINT *lwpoints[2];
 	LWGEOM *result;
@@ -39,14 +108,73 @@ lw_dist3d_distanceline(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode)
 	thedl.distance = initdistance;
 	thedl.tolerance = 0.0;
 
-	LWDEBUG(2, "lw_dist3d_distanceline is called");
-	if (!lw_dist3d_recursive(lw1, lw2, &thedl))
+	/*Check if we really have 3D geoemtries*/
+	/*If not, send it to 2D-calculations which will give the same result*/
+	/*as an infinite z-value at one or two of the geometries*/
+	if(!lwgeom_has_z(lw1) || !lwgeom_has_z(lw2))
 	{
-		/*should never get here. all cases ought to be error handled earlier*/
-		lwerror("Some unspecified error.");
-		result = (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
-	}
+		if(!supported_type(lw1))
+			lwerror("Unsupported geometry type: %s", lwtype_name(lw1->type));
+		if(!supported_type(lw2))
+			lwerror("Unsupported geometry type: %s", lwtype_name(lw2->type));
+		
+		lwnotice("One or both of the geometries is missing z-value. The unknown z-value will be regarded as \"any value\"");
+		
+		if(!lwgeom_has_z(lw1) && !lwgeom_has_z(lw2))
+			return lw_dist2d_distanceline(lw1, lw2, srid, mode);	
+		
+		DISTPTS thedl2d;
+		thedl2d.mode = mode;
+		thedl2d.distance = initdistance;
+		thedl2d.tolerance = 0.0;
+		if (!lw_dist2d_comp( lw1,lw2,&thedl2d))
+		{
+			/*should never get here. all cases ought to be error handled earlier*/
+			lwerror("Some unspecified error.");
+			result = (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
+		}
+		LWGEOM *vertical_line;
+		if(!lwgeom_has_z(lw1))
+		{
+			x=thedl2d.p1.x;
+			y=thedl2d.p1.y;
 
+			vertical_line = create_v_line(lw2,x,y,srid);
+			if (!lw_dist3d_recursive(vertical_line, lw2, &thedl))
+			{
+				/*should never get here. all cases ought to be error handled earlier*/
+				lwfree(vertical_line);
+				lwerror("Some unspecified error.");
+				result = (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
+			}			
+			lwfree(vertical_line);	
+		}	
+		if(!lwgeom_has_z(lw2))
+		{
+			x=thedl2d.p2.x;
+			y=thedl2d.p2.y;			
+			
+			vertical_line = create_v_line(lw1,x,y,srid);
+			if (!lw_dist3d_recursive(lw1, vertical_line, &thedl))
+			{
+				/*should never get here. all cases ought to be error handled earlier*/
+				lwfree(vertical_line);
+				lwerror("Some unspecified error.");
+				return (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
+			}	
+			lwfree(vertical_line);		
+		}			
+				
+	}
+	else
+	{		
+		if (!lw_dist3d_recursive(lw1, lw2, &thedl))
+		{
+			/*should never get here. all cases ought to be error handled earlier*/
+			lwerror("Some unspecified error.");
+			result = (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
+		}
+	}
 	/*if thedl.distance is unchanged there where only empty geometries input*/
 	if (thedl.distance == initdistance)
 	{
@@ -62,7 +190,6 @@ lw_dist3d_distanceline(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode)
 		y2=thedl.p2.y;
 		z2=thedl.p2.z;
 
-
 		lwpoints[0] = lwpoint_make3dz(srid, x1, y1, z1);
 		lwpoints[1] = lwpoint_make3dz(srid, x2, y2, z2);
 
@@ -76,11 +203,12 @@ lw_dist3d_distanceline(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode)
 Function initializing 3dclosestpoint calculations.
 */
 LWGEOM *
-lw_dist3d_distancepoint(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode)
+lw_dist3d_distancepoint(const LWGEOM *lw1, const LWGEOM *lw2, int srid, int mode)
 {
+	
 	double x,y,z;
 	DISTPTS3D thedl;
-	double initdistance = MAXFLOAT;
+	double initdistance = FLT_MAX;
 	LWGEOM *result;
 
 	thedl.mode = mode;
@@ -88,14 +216,78 @@ lw_dist3d_distancepoint(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode)
 	thedl.tolerance = 0;
 
 	LWDEBUG(2, "lw_dist3d_distancepoint is called");
+	
+	/*Check if we really have 3D geoemtries*/
+	/*If not, send it to 2D-calculations which will give the same result*/
+	/*as an infinite z-value at one or two of the geometries*/
+	if(!lwgeom_has_z(lw1) || !lwgeom_has_z(lw2))
+	{
+		if(!supported_type(lw1))
+			lwerror("Unsupported geometry type: %s", lwtype_name(lw1->type));
+		if(!supported_type(lw2))
+			lwerror("Unsupported geometry type: %s", lwtype_name(lw2->type));
+		
+		lwnotice("One or both of the geometries is missing z-value. The unknown z-value will be regarded as \"any value\"");
+		
+		
+		if(!lwgeom_has_z(lw1) && !lwgeom_has_z(lw2))
+			return lw_dist2d_distancepoint(lw1, lw2, srid, mode);
+			
+		
+		DISTPTS thedl2d;
+		thedl2d.mode = mode;
+		thedl2d.distance = initdistance;
+		thedl2d.tolerance = 0.0;
+		if (!lw_dist2d_comp( lw1,lw2,&thedl2d))
+		{
+			/*should never get here. all cases ought to be error handled earlier*/
+			lwerror("Some unspecified error.");
+			return (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
+		}
+		
+		LWGEOM *vertical_line;
+		if(!lwgeom_has_z(lw1))
+		{
+			x=thedl2d.p1.x;
+			y=thedl2d.p1.y;
+			
+			vertical_line = create_v_line(lw2,x,y,srid);	
+			if (!lw_dist3d_recursive(vertical_line, lw2, &thedl))
+			{
+				/*should never get here. all cases ought to be error handled earlier*/
+				lwfree(vertical_line);	
+				lwerror("Some unspecified error.");
+				return (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
+			}		
+			lwfree(vertical_line);		
+		}	
+				
+		if(!lwgeom_has_z(lw2))
+		{
+			x=thedl2d.p2.x;
+			y=thedl2d.p2.y;
 
-	if (!lw_dist3d_recursive(lw1, lw2, &thedl))
+			vertical_line = create_v_line(lw1,x,y,srid);
+			if (!lw_dist3d_recursive(lw1, vertical_line, &thedl))
+			{
+				/*should never get here. all cases ought to be error handled earlier*/
+				lwfree(vertical_line);	
+				lwerror("Some unspecified error.");
+				result = (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
+			}	
+			lwfree(vertical_line);			
+		}	
+		
+	}
+	else
 	{
-		/*should never get here. all cases ought to be error handled earlier*/
-		lwerror("Some unspecified error.");
-		result = (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
+		if (!lw_dist3d_recursive(lw1, lw2, &thedl))
+		{
+			/*should never get here. all cases ought to be error handled earlier*/
+			lwerror("Some unspecified error.");
+			result = (LWGEOM *)lwcollection_construct_empty(COLLECTIONTYPE, srid, 0, 0);
+		}
 	}
-
 	if (thedl.distance == initdistance)
 	{
 		LWDEBUG(3, "didn't find geometries to measure between, returning null");
@@ -114,10 +306,10 @@ lw_dist3d_distancepoint(LWGEOM *lw1, LWGEOM *lw2,int srid,int mode)
 
 
 /**
-Function initialazing 3d max distance calculation
+Function initializing 3d max distance calculation
 */
 double
-lwgeom_maxdistance3d(LWGEOM *lw1, LWGEOM *lw2)
+lwgeom_maxdistance3d(const LWGEOM *lw1, const LWGEOM *lw2)
 {
 	LWDEBUG(2, "lwgeom_maxdistance3d is called");
 
@@ -125,12 +317,22 @@ lwgeom_maxdistance3d(LWGEOM *lw1, LWGEOM *lw2)
 }
 
 /**
-Function handling 3d max distance calculations and dfyllywithin calculations.
+Function handling 3d max distance calculations and dfullywithin calculations.
 The difference is just the tolerance.
 */
 double
-lwgeom_maxdistance3d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance)
+lwgeom_maxdistance3d_tolerance(const LWGEOM *lw1, const LWGEOM *lw2, double tolerance)
 {
+	if(!lwgeom_has_z(lw1) || !lwgeom_has_z(lw2))
+	{
+		if(!supported_type(lw1))
+			lwerror("Unsupported geometry type: %s", lwtype_name(lw1->type));
+		if(!supported_type(lw2))
+			lwerror("Unsupported geometry type: %s", lwtype_name(lw2->type));
+		
+		lwnotice("One or both of the geometries is missing z-value. The unknown z-value will be regarded as \"any value\"");
+		return lwgeom_maxdistance2d_tolerance(lw1, lw2, tolerance);	
+	}
 	/*double thedist;*/
 	DISTPTS3D thedl;
 	LWDEBUG(2, "lwgeom_maxdistance3d_tolerance is called");
@@ -147,10 +349,10 @@ lwgeom_maxdistance3d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance)
 }
 
 /**
-	Function initialazing 3d min distance calculation
+	Function initializing 3d min distance calculation
 */
 double
-lwgeom_mindistance3d(LWGEOM *lw1, LWGEOM *lw2)
+lwgeom_mindistance3d(const LWGEOM *lw1, const LWGEOM *lw2)
 {
 	LWDEBUG(2, "lwgeom_mindistance3d is called");
 	return lwgeom_mindistance3d_tolerance( lw1, lw2, 0.0 );
@@ -161,12 +363,22 @@ lwgeom_mindistance3d(LWGEOM *lw1, LWGEOM *lw2)
 	The difference is just the tolerance.
 */
 double
-lwgeom_mindistance3d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance)
+lwgeom_mindistance3d_tolerance(const LWGEOM *lw1, const LWGEOM *lw2, double tolerance)
 {
+	if(!lwgeom_has_z(lw1) || !lwgeom_has_z(lw2))
+	{
+		if(!supported_type(lw1))
+			lwerror("Unsupported geometry type: %s", lwtype_name(lw1->type));
+		if(!supported_type(lw2))
+			lwerror("Unsupported geometry type: %s", lwtype_name(lw2->type));
+
+		lwnotice("One or both of the geometries is missing z-value. The unknown z-value will be regarded as \"any value\"");
+		return lwgeom_mindistance2d_tolerance(lw1, lw2, tolerance);	
+	}
 	DISTPTS3D thedl;
 	LWDEBUG(2, "lwgeom_mindistance3d_tolerance is called");
 	thedl.mode = DIST_MIN;
-	thedl.distance= MAXFLOAT;
+	thedl.distance= FLT_MAX;
 	thedl.tolerance = tolerance;
 	if (lw_dist3d_recursive(lw1, lw2, &thedl))
 	{
@@ -174,7 +386,7 @@ lwgeom_mindistance3d_tolerance(LWGEOM *lw1, LWGEOM *lw2, double tolerance)
 	}
 	/*should never get here. all cases ought to be error handled earlier*/
 	lwerror("Some unspecified error.");
-	return MAXFLOAT;
+	return FLT_MAX;
 }
 
 
@@ -189,7 +401,7 @@ Functions preparing geometries for distance-calculations
 
 
 /**
-This is a recursive function delivering every possible combinatin of subgeometries
+This is a recursive function delivering every possible combination of subgeometries
 */
 int lw_dist3d_recursive(const LWGEOM *lwg1,const LWGEOM *lwg2, DISTPTS3D *dl)
 {
@@ -269,10 +481,10 @@ int lw_dist3d_recursive(const LWGEOM *lwg1,const LWGEOM *lwg2, DISTPTS3D *dl)
 
 /**
 
-This function distributes the brut-force for 3D so far the only type, tasks depending on type
+This function distributes the brute-force for 3D so far the only type, tasks depending on type
 */
 int
-lw_dist3d_distribute_bruteforce(LWGEOM *lwg1, LWGEOM *lwg2, DISTPTS3D *dl)
+lw_dist3d_distribute_bruteforce(const LWGEOM *lwg1, const LWGEOM *lwg2, DISTPTS3D *dl)
 {
 
 	int	t1 = lwg1->type;
@@ -586,6 +798,15 @@ lw_dist3d_pt_seg(POINT3DZ *p, POINT3DZ *A, POINT3DZ *B, DISTPTS3D *dl)
 	return lw_dist3d_pt_pt(p,&c,dl);
 }
 
+double
+distance3d_pt_pt(const POINT3D *p1, const POINT3D *p2)
+{
+  double dx = p2->x - p1->x;
+  double dy = p2->y - p1->y;
+  double dz = p2->z - p1->z;
+  return sqrt ( dx*dx + dy*dy + dz*dz);
+}
+
 
 /**
 
@@ -689,12 +910,12 @@ lw_dist3d_seg_seg(POINT3DZ *s1p1, POINT3DZ *s1p2, POINT3DZ *s2p1, POINT3DZ *s2p2
 	double a, b, c, d, e, D;
 			
 	/*s1p1 and s1p2 are the same point */
-	if (  ( s1p1->x == s1p2->x) && (s1p1->y == s1p2->y) && (s1p1->z == s1p2->y) )
+	if (  ( s1p1->x == s1p2->x) && (s1p1->y == s1p2->y) && (s1p1->z == s1p2->z) )
 	{
 		return lw_dist3d_pt_seg(s1p1,s2p1,s2p2,dl);
 	}
 	/*s2p1 and s2p2 are the same point */
-	if (  ( s2p1->x == s2p2->x) && (s2p1->y == s2p2->y) && (s2p1->z == s2p2->y) )
+	if (  ( s2p1->x == s2p2->x) && (s2p1->y == s2p2->y) && (s2p1->z == s2p2->z) )
 	{
 		dl->twisted= ((dl->twisted) * (-1));
 		return lw_dist3d_pt_seg(s2p1,s1p1,s1p2,dl);
diff --git a/liblwgeom/measures3d.h b/liblwgeom/measures3d.h
index 1621b1a..3fe19a1 100644
--- a/liblwgeom/measures3d.h
+++ b/liblwgeom/measures3d.h
@@ -1,20 +1,21 @@
-
 /**********************************************************************
- * $Id: measures.h 4715 2009-11-01 17:58:42Z nicklas $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
- * Copyright 2011 Nicklas Av�n
+ * Copyright 2011 Nicklas Avén
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
  *
  **********************************************************************/
 
-#include "liblwgeom_internal.h"
+#ifndef _MEASURES3D_H
+#define _MEASURES3D_H 1
+#include <float.h>
+#include "measures.h"
 
-#define DOT(u,v)   (u.x * v.x + u.y * v.y + u.z * v.z)
-#define VECTORLENGTH(v)   sqrt((v.x * v.x) + (v.y * v.y) + (v.z * v.z))
+#define DOT(u,v)   ((u).x * (v).x + (u).y * (v).y + (u).z * (v).z)
+#define VECTORLENGTH(v)   sqrt(((v).x * (v).x) + ((v).y * (v).y) + ((v).z * (v).z))
 
 
 /**
@@ -46,11 +47,17 @@ PLANE3D;
 
 
 /*
+Geometry returning functions
+*/
+LWGEOM * lw_dist3d_distancepoint(const LWGEOM *lw1, const LWGEOM *lw2,int srid,int mode);
+LWGEOM * lw_dist3d_distanceline(const LWGEOM *lw1, const LWGEOM *lw2,int srid,int mode);
+
+/*
 Preprocessing functions
 */
-int lw_dist3d_distribute_bruteforce(LWGEOM *lwg1, LWGEOM *lwg2, DISTPTS3D *dl);
+int lw_dist3d_distribute_bruteforce(const LWGEOM *lwg1, const LWGEOM *lwg2, DISTPTS3D *dl);
 int lw_dist3d_recursive(const LWGEOM *lwg1,const LWGEOM *lwg2, DISTPTS3D *dl);
-int lw_dist3d_distribute_fast(LWGEOM *lwg1, LWGEOM *lwg2, DISTPTS3D *dl);
+int lw_dist3d_distribute_fast(const LWGEOM *lwg1, const LWGEOM *lwg2, DISTPTS3D *dl);
 
 /*
 Brute force functions
@@ -74,29 +81,10 @@ int lw_dist3d_ptarray_poly(POINTARRAY *pa, LWPOLY *poly, PLANE3D *plane, DISTPTS
 double project_point_on_plane(POINT3DZ *p,  PLANE3D *pl, POINT3DZ *p0);
 int define_plane(POINTARRAY *pa, PLANE3D *pl);
 int pt_in_ring_3d(const POINT3DZ *p, const POINTARRAY *ring,PLANE3D *plane);
+
 /*
 Helper functions
 */
-int get_3dvector_from_points(POINT3DZ *p1,POINT3DZ *p2, VECTOR3D *v);
-int get_3dcross_product(VECTOR3D *v1,VECTOR3D *v2, VECTOR3D *v);
 
 
-int
-get_3dvector_from_points(POINT3DZ *p1,POINT3DZ *p2, VECTOR3D *v)
-{
-	v->x=p2->x-p1->x;
-	v->y=p2->y-p1->y;
-	v->z=p2->z-p1->z;
-	
-	return LW_TRUE;
-}
-
-int
-get_3dcross_product(VECTOR3D *v1,VECTOR3D *v2, VECTOR3D *v)
-{
-	v->x=(v1->y*v2->z)-(v1->z*v2->y);
-	v->y=(v1->z*v2->x)-(v1->x*v2->z);
-	v->z=(v1->x*v2->y)-(v1->y*v2->x);
-
-	return LW_TRUE;
-}
\ No newline at end of file
+#endif /* !defined _MEASURES3D_H  */
diff --git a/liblwgeom/ptarray.c b/liblwgeom/ptarray.c
index 99a9410..a3ad34a 100644
--- a/liblwgeom/ptarray.c
+++ b/liblwgeom/ptarray.c
@@ -14,9 +14,9 @@
 #include <stdio.h>
 #include <string.h>
 
-#include "liblwgeom_internal.h"
-
+#include "../postgis_config.h"
 /*#define POSTGIS_DEBUG_LEVEL 4*/
+#include "liblwgeom_internal.h"
 #include "lwgeom_log.h"
 
 int
@@ -56,12 +56,11 @@ ptarray_construct(char hasz, char hasm, uint32_t npoints)
 POINTARRAY*
 ptarray_construct_empty(char hasz, char hasm, uint32_t maxpoints)
 {
-	uint8_t dims = gflags(hasz, hasm, 0);
 	POINTARRAY *pa = lwalloc(sizeof(POINTARRAY));
 	pa->serialized_pointlist = NULL;
 	
 	/* Set our dimsionality info on the bitmap */
-	pa->flags = dims;
+	pa->flags = gflags(hasz, hasm, 0);
 	
 	/* We will be allocating a bit of room */
 	pa->npoints = 0;
@@ -110,7 +109,10 @@ ptarray_insert_point(POINTARRAY *pa, const POINT4D *p, int where)
 
 	/* Error out if we have a bad situation */
 	if ( pa->npoints > pa->maxpoints )
+	{
 		lwerror("npoints (%d) is greated than maxpoints (%d)", pa->npoints, pa->maxpoints);
+		return LW_FAILURE;
+	}
 	
 	/* Check if we have enough storage, add more if necessary */
 	if( pa->npoints == pa->maxpoints )
@@ -369,6 +371,30 @@ ptarray_flip_coordinates(POINTARRAY *pa)
 	return pa;
 }
 
+void
+ptarray_swap_ordinates(POINTARRAY *pa, LWORD o1, LWORD o2)
+{
+	int i;
+	double d, *dp1, *dp2;
+	POINT4D p;
+
+#if PARANOIA_LEVEL > 0
+  assert(o1 < 4);
+  assert(o2 < 4);
+#endif
+
+  dp1 = ((double*)&p)+(unsigned)o1;
+  dp2 = ((double*)&p)+(unsigned)o2;
+	for (i=0 ; i < pa->npoints ; i++)
+	{
+		getPoint4d_p(pa, i, &p);
+		d = *dp2;
+		*dp2 = *dp1;
+		*dp1 = d;
+		ptarray_set_point4d(pa, i, &p);
+	}
+}
+
 
 /**
  * @brief Returns a modified #POINTARRAY so that no segment is
@@ -434,6 +460,8 @@ ptarray_segmentize2d(const POINTARRAY *ipa, double dist)
 			p1 = p2;
 			ipoff++;
 		}
+
+		LW_ON_INTERRUPT(ptarray_free(opa); return NULL);
 	}
 
 	return opa;
@@ -464,19 +492,6 @@ ptarray_same(const POINTARRAY *pa1, const POINTARRAY *pa2)
 	return LW_TRUE;
 }
 
-
-
-/**
- * @brief Add a point in a pointarray.
- *
- * @param pa the source POINTARRAY
- * @param p the point to add
- * @param pdims number of ordinates in p (2..4)
- * @param where to insert the point. 0 prepends, pa->npoints appends
- *
- * @returns a newly constructed POINTARRAY using a newly allocated buffer
- *          for the actual points, or NULL on error.
- */
 POINTARRAY *
 ptarray_addPoint(const POINTARRAY *pa, uint8_t *p, size_t pdims, uint32_t where)
 {
@@ -530,12 +545,6 @@ ptarray_addPoint(const POINTARRAY *pa, uint8_t *p, size_t pdims, uint32_t where)
 	return ret;
 }
 
-
-/**
- * @brief Remove a point from a pointarray.
- * 	@param which -  is the offset (starting at 0)
- * @return #POINTARRAY is newly allocated
- */
 POINTARRAY *
 ptarray_removePoint(POINTARRAY *pa, uint32_t which)
 {
@@ -577,13 +586,6 @@ ptarray_removePoint(POINTARRAY *pa, uint32_t which)
 	return ret;
 }
 
-
-/**
- * @brief Merge two given POINTARRAY and returns a pointer
- * on the new aggregate one.
- * Warning: this function free the two inputs POINTARRAY
- * @return #POINTARRAY is newly allocated
- */
 POINTARRAY *
 ptarray_merge(POINTARRAY *pa1, POINTARRAY *pa2)
 {
@@ -605,8 +607,8 @@ ptarray_merge(POINTARRAY *pa1, POINTARRAY *pa2)
 	                getPoint_internal(pa2, 0),
 	                ptsize*(pa2->npoints));
 
-	lwfree(pa1);
-	lwfree(pa2);
+	ptarray_free(pa1);
+	ptarray_free(pa2);
 
 	return pa;
 }
@@ -1278,9 +1280,9 @@ ptarray_locate_point(const POINTARRAY *pa, const POINT4D *p4d, double *mindistou
 	p.y = p4d->y;
 	
 	if ( ! proj4d ) proj4d = &projtmp;
-
+	
 	start = getPoint2d_cp(pa, 0);
-
+	
 	/* If the pointarray has only one point, the nearest point is */
 	/* just that point */
 	if ( pa->npoints == 1 )
@@ -1290,7 +1292,7 @@ ptarray_locate_point(const POINTARRAY *pa, const POINT4D *p4d, double *mindistou
 			*mindistout = distance2d_pt_pt(&p, start);
 		return 0.0;
 	}
-
+	
 	/* Loop through pointarray looking for nearest segment */
 	for (t=1; t<pa->npoints; t++)
 	{
@@ -1398,20 +1400,24 @@ ptarray_longitude_shift(POINTARRAY *pa)
  *
  */
 POINTARRAY *
-ptarray_remove_repeated_points(POINTARRAY *in)
+ptarray_remove_repeated_points_minpoints(POINTARRAY *in, double tolerance, int minpoints)
 {
 	POINTARRAY* out;
 	size_t ptsize;
 	size_t ipn, opn;
+	const POINT2D *last_point, *this_point;
+	double tolsq = tolerance * tolerance;
+
+	if ( minpoints < 1 ) minpoints = 1;
 
-	LWDEBUG(3, "ptarray_remove_repeated_points called.");
+	LWDEBUGF(3, "%s called", __func__);
 
 	/* Single or zero point arrays can't have duplicates */
 	if ( in->npoints < 3 ) return ptarray_clone_deep(in);
 
 	ptsize = ptarray_point_size(in);
 
-	LWDEBUGF(3, "ptsize: %d", ptsize);
+	LWDEBUGF(3, " ptsize: %d", ptsize);
 
 	/* Allocate enough space for all points */
 	out = ptarray_construct(FLAGS_GET_Z(in->flags),
@@ -1421,18 +1427,20 @@ ptarray_remove_repeated_points(POINTARRAY *in)
 
 	opn=1;
 	memcpy(getPoint_internal(out, 0), getPoint_internal(in, 0), ptsize);
+	last_point = getPoint2d_cp(in, 0);
 	LWDEBUGF(3, " first point copied, out points: %d", opn);
-	for (ipn=1; ipn<in->npoints; ++ipn)
+	for ( ipn = 1; ipn < in->npoints; ++ipn)
 	{
-		if ( (ipn==in->npoints-1 && opn==1) || memcmp(getPoint_internal(in, ipn-1),
-		        getPoint_internal(in, ipn), ptsize) )
+		this_point = getPoint2d_cp(in, ipn);
+		if ( (ipn >= in->npoints-minpoints+1 && opn < minpoints) || 
+		     (tolerance == 0 && memcmp(getPoint_internal(in, ipn-1), getPoint_internal(in, ipn), ptsize) != 0) ||
+		     (tolerance > 0.0 && distance2d_sqr_pt_pt(last_point, this_point) > tolsq) )
 		{
 			/* The point is different from the previous,
 			 * we add it to output */
-			memcpy(getPoint_internal(out, opn++),
-			       getPoint_internal(in, ipn), ptsize);
-			LWDEBUGF(3, " Point %d differs from point %d. Out points: %d",
-			         ipn, ipn-1, opn);
+			memcpy(getPoint_internal(out, opn++), getPoint_internal(in, ipn), ptsize);
+			last_point = this_point;
+			LWDEBUGF(3, " Point %d differs from point %d. Out points: %d", ipn, ipn-1, opn);
 		}
 	}
 
@@ -1442,6 +1450,12 @@ ptarray_remove_repeated_points(POINTARRAY *in)
 	return out;
 }
 
+POINTARRAY *
+ptarray_remove_repeated_points(POINTARRAY *in, double tolerance)
+{
+	return ptarray_remove_repeated_points_minpoints(in, tolerance, 2);
+}
+
 static void
 ptarray_dp_findsplit(POINTARRAY *pts, int p1, int p2, int *split, double *dist)
 {
@@ -1638,8 +1652,10 @@ ptarray_length(const POINTARRAY *pts)
 
 /*
  * Get a pointer to nth point of a POINTARRAY.
- * You cannot safely cast this to a real POINT, due to memory alignment
- * constraints. Use getPoint*_p for that.
+ *
+ * Casting to returned pointer to POINT2D* should be safe,
+ * as gserialized format always keeps the POINTARRAY pointer
+ * aligned to double boundary.
  */
 uint8_t *
 getPoint_internal(const POINTARRAY *pa, int n)
@@ -1736,8 +1752,100 @@ ptarray_affine(POINTARRAY *pa, const AFFINE *a)
 
 }
 
+/**
+ * Scale a pointarray.
+ */
+void
+ptarray_scale(POINTARRAY *pa, const POINT4D *fact)
+{
+  int i;
+  POINT4D p4d;
+
+  LWDEBUG(3, "ptarray_scale start");
+
+  for (i=0; i<pa->npoints; ++i)
+  {
+    getPoint4d_p(pa, i, &p4d);
+    p4d.x *= fact->x;
+    p4d.y *= fact->y;
+    p4d.z *= fact->z;
+    p4d.m *= fact->m;
+    ptarray_set_point4d(pa, i, &p4d);
+  }
+
+  LWDEBUG(3, "ptarray_scale end");
+
+}
+
 int
 ptarray_startpoint(const POINTARRAY* pa, POINT4D* pt)
 {
 	return getPoint4d_p(pa, 0, pt);
 }
+
+
+
+
+/*
+ * Stick an array of points to the given gridspec.
+ * Return "gridded" points in *outpts and their number in *outptsn.
+ *
+ * Two consecutive points falling on the same grid cell are collapsed
+ * into one single point.
+ *
+ */
+POINTARRAY *
+ptarray_grid(const POINTARRAY *pa, const gridspec *grid)
+{
+	POINT4D pt;
+	int ipn; /* input point numbers */
+	POINTARRAY *dpa;
+
+	LWDEBUGF(2, "ptarray_grid called on %p", pa);
+
+	dpa = ptarray_construct_empty(FLAGS_GET_Z(pa->flags),FLAGS_GET_M(pa->flags), pa->npoints);
+
+	for (ipn=0; ipn<pa->npoints; ++ipn)
+	{
+
+		getPoint4d_p(pa, ipn, &pt);
+
+		if ( grid->xsize )
+			pt.x = rint((pt.x - grid->ipx)/grid->xsize) *
+			         grid->xsize + grid->ipx;
+
+		if ( grid->ysize )
+			pt.y = rint((pt.y - grid->ipy)/grid->ysize) *
+			         grid->ysize + grid->ipy;
+
+		if ( FLAGS_GET_Z(pa->flags) && grid->zsize )
+			pt.z = rint((pt.z - grid->ipz)/grid->zsize) *
+			         grid->zsize + grid->ipz;
+
+		if ( FLAGS_GET_M(pa->flags) && grid->msize )
+			pt.m = rint((pt.m - grid->ipm)/grid->msize) *
+			         grid->msize + grid->ipm;
+
+		ptarray_append_point(dpa, &pt, LW_FALSE);
+
+	}
+
+	return dpa;
+}
+
+int 
+ptarray_npoints_in_rect(const POINTARRAY *pa, const GBOX *gbox)
+{
+	const POINT2D *pt;
+	int n = 0;
+	int i;
+	for ( i = 0; i < pa->npoints; i++ )
+	{
+		pt = getPoint2d_cp(pa, i);
+		if ( gbox_contains_point2d(gbox, pt) )
+			n++;
+	}
+	return n;
+}
+
+
diff --git a/liblwgeom/stringbuffer.c b/liblwgeom/stringbuffer.c
index b1a9fab..c14b585 100644
--- a/liblwgeom/stringbuffer.c
+++ b/liblwgeom/stringbuffer.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: stringbuffer.c 11218 2013-03-28 13:32:44Z robe $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2002 Thamer Alharbash
diff --git a/liblwgeom/stringbuffer.h b/liblwgeom/stringbuffer.h
index 0574aea..1cfb326 100644
--- a/liblwgeom/stringbuffer.h
+++ b/liblwgeom/stringbuffer.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: stringbuffer.h 9916 2012-06-15 22:51:57Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2002 Thamer Alharbash
@@ -69,4 +68,4 @@ extern char stringbuffer_lastchar(stringbuffer_t *s);
 extern int stringbuffer_trim_trailing_white(stringbuffer_t *s);
 extern int stringbuffer_trim_trailing_zeroes(stringbuffer_t *s);
 
-#endif /* _STRINGBUFFER_H */
\ No newline at end of file
+#endif /* _STRINGBUFFER_H */
diff --git a/liblwgeom/varint.c b/liblwgeom/varint.c
new file mode 100644
index 0000000..e2f992a
--- /dev/null
+++ b/liblwgeom/varint.c
@@ -0,0 +1,199 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright (C) 2014 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2013 Nicklas Avén
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************
+ * 
+ * Handle varInt values, as described here:
+ * http://developers.google.com/protocol-buffers/docs/encoding#varints
+ *
+ **********************************************************************/
+
+#include "varint.h"
+#include "lwgeom_log.h"
+#include "liblwgeom.h"
+
+/* -------------------------------------------------------------------------------- */
+
+static size_t 
+_varint_u64_encode_buf(uint64_t val, uint8_t *buf)
+{
+	uint8_t grp;	
+	uint64_t q = val;
+	uint8_t *ptr = buf;
+	while (1) 
+	{
+		/* We put the 7 least significant bits in grp */
+		grp = 0x7f & q; 
+		/* We rightshift our input value 7 bits */
+		/* which means that the 7 next least significant bits */
+		/* becomes the 7 least significant */
+		q = q >> 7;	
+		/* Check if, after our rightshifting, we still have */
+		/* anything to read in our input value. */
+		if ( q > 0 )
+		{
+			/* In the next line quite a lot is happening. */
+			/* Since there is more to read in our input value */
+			/* we signal that by setting the most siginicant bit */
+			/* in our byte to 1. */
+			/* Then we put that byte in our buffer and move the pointer */
+			/* forward one step */
+			*ptr = 0x80 | grp;
+			ptr++;
+		}
+		else
+		{
+			/* The same as above, but since there is nothing more */
+			/* to read in our input value we leave the most significant bit unset */
+			*ptr = grp;
+			ptr++;
+			return ptr - buf;
+		}
+	}
+	/* This cannot happen */
+	lwerror("%s: Got out of infinite loop. Consciousness achieved.", __func__);
+	return (size_t)0;
+}
+
+
+size_t
+varint_u64_encode_buf(uint64_t val, uint8_t *buf)
+{
+	return _varint_u64_encode_buf(val, buf);
+}
+
+
+size_t
+varint_u32_encode_buf(uint32_t val, uint8_t *buf)
+{
+	return _varint_u64_encode_buf((uint64_t)val, buf);
+}
+
+size_t
+varint_s64_encode_buf(int64_t val, uint8_t *buf)
+{
+	return _varint_u64_encode_buf(zigzag64(val), buf);
+}
+
+size_t
+varint_s32_encode_buf(int32_t val, uint8_t *buf)
+{
+	return _varint_u64_encode_buf((uint64_t)zigzag32(val), buf);
+}
+
+/* Read from signed 64bit varint */
+int64_t 
+varint_s64_decode(const uint8_t *the_start, const uint8_t *the_end, size_t *size)
+{	
+	return unzigzag64(varint_u64_decode(the_start, the_end, size));
+}
+
+/* Read from unsigned 64bit varint */
+uint64_t 
+varint_u64_decode(const uint8_t *the_start, const uint8_t *the_end, size_t *size)
+{
+	uint64_t nVal = 0;
+	int nShift = 0;
+	uint8_t nByte;
+	const uint8_t *ptr = the_start;
+
+	/* Check so we don't read beyond the twkb */
+	while( ptr < the_end )
+	{
+		nByte = *ptr;
+		/* Hibit is set, so this isn't the last byte */
+		if (nByte & 0x80)
+		{
+			/* We get here when there is more to read in the input varInt */
+			/* Here we take the least significant 7 bits of the read */
+			/* byte and put it in the most significant place in the result variable. */
+			nVal |= ((uint64_t)(nByte & 0x7f)) << nShift; 
+			/* move the "cursor" of the input buffer step (8 bits) */
+			ptr++; 
+			/* move the cursor in the resulting variable (7 bits) */
+			nShift += 7;
+		}
+		else
+		{
+			/* move the "cursor" one step */
+			ptr++; 
+			/* Move the last read byte to the most significant */
+			/* place in the result and return the whole result */
+			*size = ptr - the_start;
+			return nVal | ((uint64_t)nByte << nShift);
+		}
+	}
+	lwerror("%s: varint extends past end of buffer", __func__);
+	return 0;
+}
+
+size_t 
+varint_size(const uint8_t *the_start, const uint8_t *the_end)
+{
+	const uint8_t *ptr = the_start;
+
+	/* Check so we don't read beyond the twkb */
+	while( ptr < the_end )
+	{
+		/* Hibit is set, this isn't the last byte */
+		if (*ptr & 0x80)
+		{
+			ptr++;
+		}
+		else
+		{
+			ptr++;
+			return ptr - the_start;
+		}
+	}
+	return 0;
+}
+
+uint64_t zigzag64(int64_t val)
+{
+	return (val << 1) ^ (val >> 63);
+}
+
+uint32_t zigzag32(int32_t val)
+{
+	return (val << 1) ^ (val >> 31);
+}
+	
+uint8_t zigzag8(int8_t val)
+{
+	return (val << 1) ^ (val >> 7);
+}
+	
+int64_t unzigzag64(uint64_t val)
+{
+        if ( val & 0x01 ) 
+            return -1 * (int64_t)((val+1) >> 1);
+        else
+            return (int64_t)(val >> 1);
+}
+	
+int32_t unzigzag32(uint32_t val)
+{
+        if ( val & 0x01 ) 
+            return -1 * (int32_t)((val+1) >> 1);
+        else
+            return (int32_t)(val >> 1);
+}
+	
+int8_t unzigzag8(uint8_t val)
+{
+        if ( val & 0x01 ) 
+            return -1 * (int8_t)((val+1) >> 1);
+        else
+            return (int8_t)(val >> 1);
+}
+	
+
diff --git a/liblwgeom/varint.h b/liblwgeom/varint.h
new file mode 100644
index 0000000..9233f3d
--- /dev/null
+++ b/liblwgeom/varint.h
@@ -0,0 +1,45 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright (C) 2014 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2013 Nicklas Avén
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************
+ * 
+ * Handle varInt values, as described here:
+ * http://developers.google.com/protocol-buffers/docs/encoding#varints
+ *
+ **********************************************************************/
+
+#ifndef _LIBLWGEOM_VARINT_H
+#define _LIBLWGEOM_VARINT_H 1
+
+#include <stdint.h>
+#include <stdlib.h>
+
+
+/* NEW SIGNATURES */
+
+size_t varint_u32_encode_buf(uint32_t val, uint8_t *buf);
+size_t varint_s32_encode_buf(int32_t val, uint8_t *buf);
+size_t varint_u64_encode_buf(uint64_t val, uint8_t *buf);
+size_t varint_s64_encode_buf(int64_t val, uint8_t *buf);
+int64_t varint_s64_decode(const uint8_t *the_start, const uint8_t *the_end, size_t *size);
+uint64_t varint_u64_decode(const uint8_t *the_start, const uint8_t *the_end, size_t *size);
+
+size_t varint_size(const uint8_t *the_start, const uint8_t *the_end);
+
+uint64_t zigzag64(int64_t val);
+uint32_t zigzag32(int32_t val);
+uint8_t zigzag8(int8_t val);
+int64_t unzigzag64(uint64_t val);
+int32_t unzigzag32(uint32_t val);
+int8_t unzigzag8(uint8_t val);
+
+#endif /* !defined _LIBLWGEOM_VARINT_H  */
+
diff --git a/liblwgeom/vsprintf.c b/liblwgeom/vsprintf.c
deleted file mode 100644
index 3153ebc..0000000
--- a/liblwgeom/vsprintf.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Like vsprintf but provides a pointer to malloc'd storage, which must
-   be freed by the caller.
-   Copyright (C) 1994, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#if __STDC__
-# include <stdarg.h>
-#else
-# include <varargs.h>
-#endif
-
-#ifdef TEST
-int global_total_width;
-#endif
-
-/* Make sure we have a va_copy that will work on all platforms */
-#ifndef va_copy
-# ifdef __va_copy
-#  define va_copy(d, s)         __va_copy((d), (s))
-# else
-#  define va_copy(d, s)         memcpy(&(d), &(s), sizeof(va_list))
-# endif
-#endif
-
-int lw_vasprintf (char **result, const char *format, va_list args);
-int lw_asprintf
-#if __STDC__
-(char **result, const char *format, ...);
-#else
-(result, va_alist);
-char **result;
-va_dcl
-#endif
-
-
-static int
-int_vasprintf (result, format, args)
-char **result;
-const char *format;
-va_list *args;
-{
-	const char *p = format;
-	/* Add one to make sure that it is never zero, which might cause malloc
-	   to return NULL.  */
-	int total_width = strlen (format) + 1;
-	va_list ap;
-
-	memcpy (&ap, args, sizeof (va_list));
-
-	while (*p != '\0')
-	{
-		if (*p++ == '%')
-		{
-			while (strchr ("-+ #0", *p))
-				++p;
-			if (*p == '*')
-			{
-				++p;
-				total_width += abs (va_arg (ap, int));
-			}
-			else
-				total_width += strtoul (p, (char **) &p, 10);
-			if (*p == '.')
-			{
-				++p;
-				if (*p == '*')
-				{
-					++p;
-					total_width += abs (va_arg (ap, int));
-				}
-				else
-					total_width += strtoul (p, (char **) &p, 10);
-			}
-			while (strchr ("hlLjtz", *p))
-				++p;
-			/* Should be big enough for any format specifier except %s
-			   and floats.  */
-			total_width += 30;
-			switch (*p)
-			{
-			case 'd':
-			case 'i':
-			case 'o':
-			case 'u':
-			case 'x':
-			case 'X':
-			case 'c':
-				(void) va_arg (ap, int);
-				break;
-			case 'f':
-			{
-				double arg = va_arg (ap, double);
-				if (arg >= 1.0 || arg <= -1.0)
-					/* Since an ieee double can have an exponent of 307, we'll
-					   make the buffer wide enough to cover the gross case. */
-					total_width += 307;
-			}
-			break;
-			case 'e':
-			case 'E':
-			case 'g':
-			case 'G':
-				(void) va_arg (ap, double);
-				break;
-			case 's':
-				total_width += strlen (va_arg (ap, char *));
-				break;
-			case 'p':
-			case 'n':
-				(void) va_arg (ap, char *);
-				break;
-			}
-			p++;
-		}
-	}
-#ifdef TEST
-	global_total_width = total_width;
-#endif
-	*result = malloc (total_width);
-	if (*result != NULL)
-		return vsprintf (*result, format, *args);
-	else
-		return 0;
-}
-
-int
-lw_vasprintf (result, format, args)
-char **result;
-const char *format;
-va_list args;
-{
-	va_list temp;
-
-	va_copy(temp, args);
-
-	return int_vasprintf (result, format, &temp);
-}
-
-int
-lw_asprintf
-#if __STDC__
-(char **result, const char *format, ...)
-#else
-(result, va_alist)
-char **result;
-va_dcl
-#endif
-{
-	va_list args;
-	int done;
-
-#if __STDC__
-	va_start (args, format);
-#else
-	char *format;
-	va_start (args);
-	format = va_arg (args, char *);
-#endif
-	done = lw_vasprintf (result, format, args);
-	va_end (args);
-
-	return done;
-}
diff --git a/libpgcommon/Makefile.in b/libpgcommon/Makefile.in
index 7e3b012..e89a1f2 100644
--- a/libpgcommon/Makefile.in
+++ b/libpgcommon/Makefile.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id: Makefile.in 
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
diff --git a/libpgcommon/common.h b/libpgcommon/common.h
index 31e404c..a84b70c 100644
--- a/libpgcommon/common.h
+++ b/libpgcommon/common.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: common.h 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/libpgcommon/cunit/Makefile.in b/libpgcommon/cunit/Makefile.in
index dd1d0d7..b4a660b 100644
--- a/libpgcommon/cunit/Makefile.in
+++ b/libpgcommon/cunit/Makefile.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id: Makefile.in 
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
diff --git a/libpgcommon/gserialized_gist.c b/libpgcommon/gserialized_gist.c
index 71ccebe..6f57129 100644
--- a/libpgcommon/gserialized_gist.c
+++ b/libpgcommon/gserialized_gist.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -29,7 +28,6 @@
 
 
 /* Generate human readable form for GIDX. */
-#if POSTGIS_DEBUG_LEVEL > 0
 char* gidx_to_string(GIDX *a)
 {
 	char *str, *rv;
@@ -38,7 +36,7 @@ char* gidx_to_string(GIDX *a)
 	if ( a == NULL )
 		return pstrdup("<NULLPTR>");
 
-	str = (char*)palloc(128);
+	str = (char*)palloc(128); /* 15*2*4+8==128 */
 	rv = str;
 	ndims = GIDX_NDIMS(a);
 
@@ -52,7 +50,6 @@ char* gidx_to_string(GIDX *a)
 
 	return rv;
 }
-#endif
 
 
 static uint8_t
diff --git a/libpgcommon/gserialized_gist.h b/libpgcommon/gserialized_gist.h
index bd26f4b..aedd899 100644
--- a/libpgcommon/gserialized_gist.h
+++ b/libpgcommon/gserialized_gist.h
@@ -56,9 +56,7 @@ void gidx_expand(GIDX *a, float d);
 
 
 /* Generate human readable form for GIDX. */
-#if POSTGIS_DEBUG_LEVEL > 0
 char* gidx_to_string(GIDX *a) ; 
-#endif
 
 /* typedef to correct array-bounds checking for casts to GIDX - do not
    use this ANYWHERE except in the casts below */
diff --git a/libpgcommon/lwgeom_pg.c b/libpgcommon/lwgeom_pg.c
index 5b73f62..b989c3d 100644
--- a/libpgcommon/lwgeom_pg.c
+++ b/libpgcommon/lwgeom_pg.c
@@ -29,6 +29,8 @@
 
 #define PARANOIA_LEVEL 1
 
+#define PGC_ERRMSG_MAXLEN 256
+
 /**
 * Utility to convert cstrings to textp pointers 
 */
@@ -152,32 +154,48 @@ pg_free(void *ptr)
 static void
 pg_error(const char *fmt, va_list ap)
 {
-#define ERRMSG_MAXLEN 256
-
-	char errmsg[ERRMSG_MAXLEN+1];
+	char errmsg[PGC_ERRMSG_MAXLEN+1];
 
-	vsnprintf (errmsg, ERRMSG_MAXLEN, fmt, ap);
+	vsnprintf (errmsg, PGC_ERRMSG_MAXLEN, fmt, ap);
 
-	errmsg[ERRMSG_MAXLEN]='\0';
+	errmsg[PGC_ERRMSG_MAXLEN]='\0';
 	ereport(ERROR, (errmsg_internal("%s", errmsg)));
 }
 
 static void
+pg_warning(const char *fmt, va_list ap)
+{
+	char errmsg[PGC_ERRMSG_MAXLEN+1];
+
+	vsnprintf (errmsg, PGC_ERRMSG_MAXLEN, fmt, ap);
+
+	errmsg[PGC_ERRMSG_MAXLEN]='\0';
+	ereport(WARNING, (errmsg_internal("%s", errmsg)));
+}
+
+static void
 pg_notice(const char *fmt, va_list ap)
 {
-	char *msg;
+	char errmsg[PGC_ERRMSG_MAXLEN+1];
 
-	/*
-	 * This is a GNU extension.
-	 * Dunno how to handle errors here.
-	 */
-	if (!lw_vasprintf (&msg, fmt, ap))
-	{
-		va_end (ap);
-		return;
-	}
-	ereport(NOTICE, (errmsg_internal("%s", msg)));
-	free(msg);
+	vsnprintf (errmsg, PGC_ERRMSG_MAXLEN, fmt, ap);
+
+	errmsg[PGC_ERRMSG_MAXLEN]='\0';
+	ereport(NOTICE, (errmsg_internal("%s", errmsg)));
+}
+
+static void
+pg_debug(int level, const char *fmt, va_list ap)
+{
+	char errmsg[PGC_ERRMSG_MAXLEN+1];
+	vsnprintf (errmsg, PGC_ERRMSG_MAXLEN, fmt, ap);
+	errmsg[PGC_ERRMSG_MAXLEN]='\0';
+	int pglevel[6] = {NOTICE, DEBUG1, DEBUG2, DEBUG3, DEBUG4, DEBUG5};
+
+	if ( level >= 0 && level <= 5 )
+		ereport(pglevel[level], (errmsg_internal("%s", errmsg)));
+	else
+		ereport(DEBUG5, (errmsg_internal("%s", errmsg)));		
 }
 
 void
@@ -185,6 +203,7 @@ pg_install_lwgeom_handlers(void)
 {
 	/* install PostgreSQL handlers */
 	lwgeom_set_handlers(pg_alloc, pg_realloc, pg_free, pg_error, pg_notice);
+	lwgeom_set_debuglogger(pg_debug);
 }
 
 /**
@@ -203,7 +222,7 @@ GSERIALIZED* geography_serialize(LWGEOM *lwgeom)
 	GSERIALIZED *g = NULL;
 
 	g = gserialized_from_lwgeom(lwgeom, is_geodetic, &ret_size);
-	if ( ! g ) lwerror("Unable to serialize lwgeom.");
+	if ( ! g ) lwpgerror("Unable to serialize lwgeom.");
 	SET_VARSIZE(g, ret_size);
 	return g;
 }
@@ -220,7 +239,43 @@ GSERIALIZED* geometry_serialize(LWGEOM *lwgeom)
 	GSERIALIZED *g = NULL;
 
 	g = gserialized_from_lwgeom(lwgeom, is_geodetic, &ret_size);
-	if ( ! g ) lwerror("Unable to serialize lwgeom.");
+	if ( ! g ) lwpgerror("Unable to serialize lwgeom.");
 	SET_VARSIZE(g, ret_size);
 	return g;
 }
+
+void
+lwpgnotice(const char *fmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, fmt);
+
+  pg_notice(fmt, ap);
+
+	va_end(ap);
+}
+
+void
+lwpgwarning(const char *fmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, fmt);
+
+  pg_warning(fmt, ap);
+
+	va_end(ap);
+}
+
+void
+lwpgerror(const char *fmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, fmt);
+
+  pg_error(fmt, ap);
+
+	va_end(ap);
+}
diff --git a/libpgcommon/lwgeom_pg.h b/libpgcommon/lwgeom_pg.h
index 594bff9..d5a4d17 100644
--- a/libpgcommon/lwgeom_pg.h
+++ b/libpgcommon/lwgeom_pg.h
@@ -25,25 +25,31 @@
 /* Install PosgreSQL handlers for liblwgeom use */
 void pg_install_lwgeom_handlers(void);
 
+/* Argument handling macros */
+#define PG_GETARG_GSERIALIZED_P(varno) ((GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(varno)))
+#define PG_GETARG_GSERIALIZED_P_COPY(varno) ((GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(varno)))
+#define PG_GETARG_GSERIALIZED_P_SLICE(varno, start, size) ((GSERIALIZED *)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(varno), start, size))
+
 /* Debugging macros */
 #if POSTGIS_DEBUG_LEVEL > 0
 
 /* Display a simple message at NOTICE level */
+/* from PgSQL utils/elog.h, LOG is 15, and DEBUG5 is 10 and everything else is in between */
 #define POSTGIS_DEBUG(level, msg) \
         do { \
                 if (POSTGIS_DEBUG_LEVEL >= level) \
-                        ereport(NOTICE, (errmsg_internal("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__))); \
+                        ereport((level < 1 || level > 5) ? DEBUG5 : (LOG - level), (errmsg_internal("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__))); \
         } while (0);
 
 /* Display a formatted message at NOTICE level (like printf, with variadic arguments) */
 #define POSTGIS_DEBUGF(level, msg, ...) \
         do { \
                 if (POSTGIS_DEBUG_LEVEL >= level) \
-                        ereport(NOTICE, (errmsg_internal("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__, __VA_ARGS__))); \
+                        ereport((level < 1 || level > 5) ? DEBUG5 : (LOG - level), (errmsg_internal("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__, __VA_ARGS__))); \
         } while (0);
 
-#else
-
+#else /* POSTGIS_DEBUG_LEVEL */
+	
 /* Empty prototype that can be optimised away by the compiler for non-debug builds */
 #define POSTGIS_DEBUG(level, msg) \
         ((void) 0)
@@ -52,7 +58,7 @@ void pg_install_lwgeom_handlers(void);
 #define POSTGIS_DEBUGF(level, msg, ...) \
         ((void) 0)
 
-#endif
+#endif /* POSTGIS_DEBUG_LEVEL */
 
 
 /*
@@ -75,6 +81,11 @@ extern void pg_unparser_errhint(LWGEOM_UNPARSER_RESULT *lwg_unparser_result);
                 pg_unparser_errhint(&lwg_unparser_result); \
         } while(0);
 
+/* TODO: only cancel the interrupt if inside an outer call ? */
+#define LWGEOM_INIT() { \
+  lwgeom_cancel_interrupt(); \
+}
+
 
 /*
 ** GSERIALIED prototypes used outside the index functions
@@ -150,12 +161,17 @@ Datum LWGEOM_force_3dz(PG_FUNCTION_ARGS);
 Datum LWGEOM_force_4d(PG_FUNCTION_ARGS);
 Datum LWGEOM_force_collection(PG_FUNCTION_ARGS);
 Datum LWGEOM_force_multi(PG_FUNCTION_ARGS);
+Datum LWGEOM_force_curve(PG_FUNCTION_ARGS);
 
-Datum LWGEOMFromWKB(PG_FUNCTION_ARGS);
-Datum WKBFromLWGEOM(PG_FUNCTION_ARGS);
+Datum LWGEOMFromEWKB(PG_FUNCTION_ARGS);
+Datum LWGEOMFromTWKB(PG_FUNCTION_ARGS);
 
 Datum LWGEOM_getBBOX(PG_FUNCTION_ARGS);
 Datum LWGEOM_addBBOX(PG_FUNCTION_ARGS);
 Datum LWGEOM_dropBBOX(PG_FUNCTION_ARGS);
 
+void lwpgerror(const char *fmt, ...);
+void lwpgnotice(const char *fmt, ...);
+void lwpgwarning(const char *fmt, ...);
+
 #endif /* !defined _LWGEOM_PG_H */
diff --git a/libpgcommon/lwgeom_transform.c b/libpgcommon/lwgeom_transform.c
index 525c4a2..608fa0a 100644
--- a/libpgcommon/lwgeom_transform.c
+++ b/libpgcommon/lwgeom_transform.c
@@ -765,3 +765,28 @@ void srid_is_latlong(FunctionCallInfo fcinfo, int srid)
 }
 
 
+srs_precision srid_axis_precision(FunctionCallInfo fcinfo, int srid, int precision)
+{
+	projPJ pj1;
+	projPJ pj2;
+
+	srs_precision sp;
+	
+	sp.precision_xy = precision;
+	sp.precision_z = precision;
+	sp.precision_m = precision;
+	
+	if ( srid == SRID_UNKNOWN )
+		return sp;
+
+	if ( GetProjectionsUsingFCInfo(fcinfo, srid, srid, &pj1, &pj2) == LW_FAILURE)
+		return sp;
+
+	if ( pj_is_latlong(pj1) )
+	{
+		sp.precision_xy += 5;
+		return sp;
+	}
+	
+	return sp;
+}
diff --git a/libpgcommon/lwgeom_transform.h b/libpgcommon/lwgeom_transform.h
index 827c113..09a2e35 100644
--- a/libpgcommon/lwgeom_transform.h
+++ b/libpgcommon/lwgeom_transform.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_transform.h -1M 2011-08-11 11:15:57Z (local) $ 
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -14,7 +13,12 @@
 #include "liblwgeom.h"
 #include "lwgeom_pg.h"
 
-
+typedef struct srs_precision 
+{
+	int precision_xy;
+	int precision_z;
+	int precision_m;
+} srs_precision;
 
 char* GetProj4StringSPI(int srid);
 void SetPROJ4LibPath(void) ;
@@ -34,6 +38,7 @@ projPJ GetProjectionFromPROJ4Cache(Proj4Cache cache, int srid);
 int GetProjectionsUsingFCInfo(FunctionCallInfo fcinfo, int srid1, int srid2, projPJ *pj1, projPJ *pj2);
 int spheroid_init_from_srid(FunctionCallInfo fcinfo, int srid, SPHEROID *s);
 void srid_is_latlong(FunctionCallInfo fcinfo, int srid);
+srs_precision srid_axis_precision(FunctionCallInfo fcinfo, int srid, int precision);
 
 /**
  * Builtin SRID values
diff --git a/libpgcommon/pgsql_compat.h b/libpgcommon/pgsql_compat.h
index 8104db9..30053ff 100644
--- a/libpgcommon/pgsql_compat.h
+++ b/libpgcommon/pgsql_compat.h
@@ -6,14 +6,4 @@
 #define PG_NARGS() (fcinfo->nargs)
 #endif
 
-/* Define ARR_OVERHEAD_NONULLS for PostgreSQL < 8.2 */
-#if POSTGIS_PGSQL_VERSION < 82
-#define ARR_OVERHEAD_NONULLS(x) ARR_OVERHEAD((x))
-#endif
-
-/* PostgreSQL < 8.3 uses VARATT_SIZEP rather than SET_VARSIZE for varlena types */
-#if POSTGIS_PGSQL_VERSION < 83
-#define SET_VARSIZE(var, size)   VARATT_SIZEP(var) = size
-#endif
-
 #endif /* _PGSQL_COMPAT_H */
diff --git a/libtool b/libtool
index 3346985..9b38d34 100755
--- a/libtool
+++ b/libtool
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Generated automatically by config.status () 
-# Libtool was configured on host Crane.local:
+# Libtool was configured on host Butterfly.local:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 
 # Provide generalized library-building support services.
@@ -30,7 +30,7 @@
 
 
 # The names of the tagged configurations supported by this script.
-available_tags='CXX '
+available_tags=''
 
 # Configured defaults for sys_lib_dlsearch_path munging.
 : ${LT_SYS_LIBRARY_PATH=""}
@@ -67,13 +67,13 @@ PATH_SEPARATOR=":"
 
 # The host system.
 host_alias=
-host=x86_64-apple-darwin14.4.0
-host_os=darwin14.4.0
+host=x86_64-apple-darwin13.4.0
+host_os=darwin13.4.0
 
 # The build system.
 build_alias=
-build=x86_64-apple-darwin14.4.0
-build_os=darwin14.4.0
+build=x86_64-apple-darwin13.4.0
+build_os=darwin13.4.0
 
 # A sed program that does not truncate output.
 SED="/usr/bin/sed"
@@ -91,7 +91,7 @@ EGREP="/usr/bin/grep -E"
 FGREP="/usr/bin/grep -F"
 
 # A BSD- or MS-compatible name lister.
-NM="/opt/local/bin/nm"
+NM="/usr/bin/nm"
 
 # Whether we need soft or hard links.
 LN_S="ln -s"
@@ -282,7 +282,7 @@ finish_eval=""
 hardcode_into_libs=no
 
 # Compile-time system search path for libraries.
-sys_lib_search_path_spec="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.1.0  /usr/local/lib"
+sys_lib_search_path_spec="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0  /usr/local/lib"
 
 # Detected run-time system search path for libraries.
 sys_lib_dlsearch_path_spec="/usr/local/lib /lib /usr/lib"
@@ -435,20 +435,6 @@ file_list_spec=""
 # How to hardcode a shared library path into an executable.
 hardcode_action=immediate
 
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=""
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=""
-postdep_objects=""
-predeps=""
-postdeps=""
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=""
-
 # ### END LIBTOOL CONFIG
 
 
@@ -11654,152 +11640,3 @@ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
 # mode:shell-script
 # sh-indentation:2
 # End:
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld"
-
-# How to create reloadable object files.
-reload_flag=" -r"
-reload_cmds="\$LTCC \$LTCFLAGS -nostdlib \$wl-r -o \$output\$reload_objs"
-
-# Commands used to build an old-style archive.
-old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
-
-# A language specific compiler.
-CC="g++"
-
-# Is the compiler the GNU compiler?
-with_gcc=yes
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=" -fno-builtin"
-
-# Additional compiler flags for building library objects.
-pic_flag=" -fno-common -DPIC"
-
-# How to pass a linker flag through the compiler.
-wl="-Wl,"
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=""
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o="yes"
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=no
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=no
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=""
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec="\`for conv in \$convenience\\\"\\\"; do test  -n \\\"\$conv\\\" && new_convenience=\\\"\$new_convenience \$wl-force_load,\$conv\\\"; done; func_echo_all \\\"\$new_convenience\\\"\`"
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object="no"
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=""
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=""
-
-# Commands used to build a shared archive.
-archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module"
-archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags"
-module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld="no"
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag="\$wl-undefined \${wl}dynamic_lookup"
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=""
-
-# Flag to hardcode $libdir into a binary during linking.
-# This must work even if $libdir does not exist
-hardcode_libdir_flag_spec=""
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=""
-
-# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=no
-
-# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting $shlibpath_var if the
-# library is relocated.
-hardcode_direct_absolute=no
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=no
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=unsupported
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=yes
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=no
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=yes
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=no
-
-# The commands to list exported symbols.
-export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
-
-# Symbols that must always be exported.
-include_expsyms=""
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=""
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=""
-
-# Specify filename containing input files.
-file_list_spec=""
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=immediate
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=""
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=""
-postdep_objects=""
-predeps=""
-postdeps=""
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=""
-
-# ### END LIBTOOL TAG CONFIG: CXX
diff --git a/loader/Makefile.in b/loader/Makefile.in
index e190491..f555dbc 100644
--- a/loader/Makefile.in
+++ b/loader/Makefile.in
@@ -84,7 +84,7 @@ shp2pgsql-gui.res: shp2pgsql-gui.rc shp2pgsql-gui.ico
 # liblwgeom.a dependency to allow "make install" in 
 # the loader/ subdirectory to work  
 $(LIBLWGEOM):
-	make -C ../liblwgeom
+	$(MAKE) -C ../liblwgeom
 
 shp2pgsql-core.o: shp2pgsql-core.c shp2pgsql-core.h shpcommon.h
 	$(CC) $(CFLAGS) -c $<
@@ -128,7 +128,7 @@ uninstall:
 
 check:
 ifdef gtk_build
-	make -C cunit check
+	$(MAKE) -C cunit check
 endif
 
 clean:
diff --git a/loader/README.pgsql2shp b/loader/README.pgsql2shp
index 04605ea..4f65f47 100644
--- a/loader/README.pgsql2shp
+++ b/loader/README.pgsql2shp
@@ -85,7 +85,7 @@ EXAMPLES
 
 AUTHORS
        Originally   written   by  Jeff  Lounsbury  <jeffloun at refractions.net>.
-       Improved and  maintained  by  Sandro  Santilli  <strk at refractions.net>.
+       Improved and  maintained  by  Sandro  Santilli  <strk at keybit.net>.
        Includes small contributions and improvements by others.
 
        This  application  uses  functionality  from  shapelib  1.2.9  by Frank
diff --git a/loader/README.shp2pgsql b/loader/README.shp2pgsql
index 941f5df..d3d2cb2 100644
--- a/loader/README.shp2pgsql
+++ b/loader/README.shp2pgsql
@@ -114,7 +114,7 @@ EXAMPLES
 
 AUTHORS
        Originally   written   by  Jeff  Lounsbury  <jeffloun at refractions.net>.
-       Improved and  maintained  by  Sandro  Santilli  <strk at refractions.net>.
+       Improved and  maintained  by  Sandro  Santilli  <strk at keybit.net>.
        Includes small contributions and improvements by others.
 
        This  application  uses  functionality  from  shapelib  1.2.9  by Frank
diff --git a/loader/cunit/Makefile.in b/loader/cunit/Makefile.in
index 442e291..8bc51fe 100644
--- a/loader/cunit/Makefile.in
+++ b/loader/cunit/Makefile.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id: Makefile.in
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
@@ -10,8 +9,11 @@
 # *
 # **********************************************************************
 
+top_builddir = @top_builddir@
 CC=@CC@
 CFLAGS=@CFLAGS@ @WARNFLAGS@
+SHELL = @SHELL@
+LIBTOOL = @LIBTOOL@
 
 CUNIT_LDFLAGS=@CUNIT_LDFLAGS@
 CUNIT_CPPFLAGS=@CUNIT_CPPFLAGS@ -I..
@@ -26,7 +28,7 @@ PGSQL_FE_CPPFLAGS=@PGSQL_FE_CPPFLAGS@
 PGSQL_FE_LDFLAGS=@PGSQL_FE_LDFLAGS@
 
 # liblwgeom
-LIBLWGEOM=../../liblwgeom/.libs/liblwgeom.a
+LIBLWGEOM=../../liblwgeom/.libs/liblwgeom.la
 
 # iconv flags
 ICONV_LDFLAGS=@ICONV_LDFLAGS@
@@ -64,7 +66,7 @@ check: requirements_not_met_cunit
 else
 
 $(LOADER_OBJS):
-	make -C ..
+	$(MAKE) -C ..
 
 # Build the unit tester
 all: cu_tester
@@ -77,6 +79,7 @@ endif
 
 # Build the main unit test executable
 cu_tester: $(LOADER_OBJS) $(OBJS) 
+	$(LIBTOOL) --mode=link \
 	$(CC)  $^ -o $@ $(LIBLWGEOM) $(LDFLAGS)
 
 # Command to build each of the .o files
diff --git a/loader/cunit/cu_pgsql2shp.c b/loader/cunit/cu_pgsql2shp.c
index 41e9763..1f5360a 100644
--- a/loader/cunit/cu_pgsql2shp.c
+++ b/loader/cunit/cu_pgsql2shp.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_pgsql2shp.c 5674 2010-06-03 02:04:15Z mleslie $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/loader/cunit/cu_shp2pgsql.c b/loader/cunit/cu_shp2pgsql.c
index 1ec9416..a4ce63c 100644
--- a/loader/cunit/cu_shp2pgsql.c
+++ b/loader/cunit/cu_shp2pgsql.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_shp2pgsql.c 5674 2010-06-03 02:04:15Z mleslie $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/loader/cunit/cu_tester.c b/loader/cunit/cu_tester.c
index 09e4567..d23bde7 100644
--- a/loader/cunit/cu_tester.c
+++ b/loader/cunit/cu_tester.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_tester.c 5675 2010-06-03 07:35:41Z mleslie $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/loader/cunit/cu_tester.h b/loader/cunit/cu_tester.h
index ce33932..18707b6 100644
--- a/loader/cunit/cu_tester.h
+++ b/loader/cunit/cu_tester.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: cu_tester.h 5674 2010-06-03 02:04:15Z mleslie $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/loader/dbfopen.c b/loader/dbfopen.c
index 1b4bf82..a5590c0 100644
--- a/loader/dbfopen.c
+++ b/loader/dbfopen.c
@@ -1,5 +1,4 @@
 /******************************************************************************
- * $Id: dbfopen.c 9324 2012-02-27 22:08:12Z pramsey $
  *
  * Project:  Shapelib
  * Purpose:  Implementation of .dbf access API documented in dbf_api.html.
@@ -163,7 +162,7 @@
 #include <ctype.h>
 #include <string.h>
 
-SHP_CVSID("$Id: dbfopen.c 9324 2012-02-27 22:08:12Z pramsey $")
+SHP_CVSID("$Id: dbfopen.c 13497 2015-05-13 18:29:52Z pramsey $")
 
 #ifndef FALSE
 #  define FALSE		0
@@ -505,7 +504,7 @@ DBFOpenLL( const char * pszFilename, const char * pszAccess, SAHooks *psHooks )
         }
 		psDBF->sHooks.FClose( pfCPG );
     }
-    if( psDBF->pszCodePage == NULL && pabyBuf[29] != 0 )
+    if( (psDBF->pszCodePage == NULL) && (psDBF->iLanguageDriver != 0) )
     {
         sprintf( (char *) pabyBuf, "LDID/%d", psDBF->iLanguageDriver );
         psDBF->pszCodePage = (char *) malloc(strlen((char*)pabyBuf) + 1);
@@ -629,7 +628,7 @@ DBFHandle SHPAPI_CALL
 DBFCreate( const char * pszFilename )
 
 {
-    return DBFCreateEx( pszFilename, "LDID/87" ); // 0x57
+    return DBFCreateEx( pszFilename, "LDID/87" ); /* 0x57 */
 }
 
 /************************************************************************/
@@ -704,7 +703,7 @@ DBFCreateLL( const char * pszFilename, const char * pszCodePage, SAHooks *psHook
         {
             ldid = atoi( pszCodePage + 5 );
             if( ldid > 255 )
-                ldid = -1; // don't use 0 to indicate out of range as LDID/0 is a valid one
+                ldid = -1; /* don't use 0 to indicate out of range as LDID/0 is a valid one */
         }
         if( ldid < 0 )
         {
@@ -1133,14 +1132,14 @@ static int DBFIsValueNULL( char chType, const char* pszValue )
 
       case 'D':
         /* NULL date fields have value "00000000" or blank or empty */
-        if (pszValue[0] == '\0' ||                  // emtpy string
+        if (pszValue[0] == '\0' ||                  /* emtpy string */
             strncmp(pszValue,"00000000",8) == 0 || 
             strncmp(pszValue,"        ",8) == 0) {
             return 1;
         } else {
             return 0;
         }
-        // return strncmp(pszValue,"00000000",8) == 0;
+        /* return strncmp(pszValue,"00000000",8) == 0; */
 
       case 'L':
         /* NULL boolean fields have value "?" or empty */
diff --git a/loader/getopt.c b/loader/getopt.c
index 7c1145d..cf12879 100644
--- a/loader/getopt.c
+++ b/loader/getopt.c
@@ -32,11 +32,7 @@
 
 #define ERR(s, c)\
   if(pgis_opterr){\
-        char errbuf[2];\
-        errbuf[0] = (char)c; errbuf[1] = '\n';\
-        (void) write(2, argv[0], (unsigned)strlen(argv[0]));\
-        (void) write(2, s, (unsigned)strlen(s));\
-        (void) write(2, errbuf, 2);\
+    fprintf(stderr, "%s%s%c\n", argv[0], s, c);\
   }
 
 int     pgis_opterr = 1;
diff --git a/loader/pgsql2shp-cli.c b/loader/pgsql2shp-cli.c
index c155f3f..75ac6e1 100644
--- a/loader/pgsql2shp-cli.c
+++ b/loader/pgsql2shp-cli.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: pgsql2shp-cli.c 5450 2010-03-22 19:38:14Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/loader/pgsql2shp-core.c b/loader/pgsql2shp-core.c
index 4c41583..9e3f115 100644
--- a/loader/pgsql2shp-core.c
+++ b/loader/pgsql2shp-core.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: pgsql2shp.c 5450 2010-03-22 19:38:14Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://www.postgis.org
@@ -833,16 +832,18 @@ projFileCreate(SHPDUMPERSTATE *state)
 				{
 					return 0;
 				}
-				result = fputs (srtext,fp);
-        LWDEBUGF(3, "\n result %d proj SRText is %s .\n", result, srtext);
-        if (result == EOF)
-        {
-            fclose( fp );
-            free( pszFullname );
-            PQclear(res);
-            free(query);
-            return 0;
-        }
+				{
+				    result = fputs (srtext,fp);
+                    LWDEBUGF(3, "\n result %d proj SRText is %s .\n", result, srtext);
+                    if (result == EOF)
+                    {
+                        fclose( fp );
+                        free( pszFullname );
+                        PQclear(res);
+                        free(query);
+                        return 0;
+                    }
+				}
 				fclose( fp );
 				free( pszFullname );
 			}
@@ -1141,100 +1142,6 @@ set_dumper_config_defaults(SHPDUMPERCONFIG *config)
 	config->column_map_filename = NULL;
 }
 
-/**
- * Read the content of filename into a symbol map stored
- * at state->column_map_filename.
- *
- * The content of the file is lines of two names separated by
- * white space and no trailing or leading space:
- *
- *    COLUMNNAME DBFFIELD1
- *    AVERYLONGCOLUMNNAME DBFFIELD2
- *
- *    etc.
- *
- * It is the reponsibility of the caller to reclaim the allocated space
- * as follows:
- *
- * free(state->column_map_pgfieldnames[]) to free the column names
- * free(state->column_map_dbffieldnames[]) to free the dbf field names
- *
- * @param state : container of state->column_map where the malloc'd
- *                symbol map will be stored.
- */
-static int
-read_column_map(SHPDUMPERSTATE *state)
-{
-	FILE *fptr;
-	char linebuffer[1024];
-	char *tmpstr, *tmpptr;
-	int curmapsize, fieldnamesize;
-	
-	/* Read column map file and load the column_map_dbffieldnames and column_map_pgfieldnames
-	   arrays */
-	fptr = fopen(state->config->column_map_filename, "r");
-	if (!fptr)
-	{
-		/* Return an error */
-		snprintf(state->message, SHPDUMPERMSGLEN, _("ERROR: Unable to open column map file %s"), state->config->column_map_filename);
-		return SHPDUMPERERR;
-	}
-	
-	/* First count how many columns we have... */
-	while (fgets(linebuffer, 1024, fptr) != NULL)
-		state->column_map_size++;
-	
-	/* Now we know the final size, allocate the arrays and load the data */
-	fseek(fptr, 0, SEEK_SET);
-	state->column_map_pgfieldnames = (char **)malloc(sizeof(char *) * state->column_map_size);
-	state->column_map_dbffieldnames = (char **)malloc(sizeof(char *) * state->column_map_size);
-	
-	/* Read in a line at a time... */
-	curmapsize = 0;
-	while (fgets(linebuffer, 1024, fptr) != NULL)
-	{
-		/* Split into two separate strings - pgfieldname followed by dbffieldname */
-
-		/* First locate end of first column (pgfieldname) */
- 		for (tmpptr = tmpstr = linebuffer; *tmpptr != '\t' && *tmpptr != '\n' && *tmpptr != ' ' && *tmpptr != '\0'; tmpptr++);		
-		fieldnamesize = tmpptr - tmpstr;
-
-		/* Allocate memory and copy the string ensuring it is terminated */
-		state->column_map_pgfieldnames[curmapsize] = malloc(fieldnamesize + 1);
-		strncpy(state->column_map_pgfieldnames[curmapsize], tmpstr, fieldnamesize);
-		state->column_map_pgfieldnames[curmapsize][fieldnamesize] = '\0';
-		
-		/* Now swallow up any whitespace */
-		for (tmpstr = tmpptr; *tmpptr == '\t' || *tmpptr == '\n' || *tmpptr == ' '; tmpptr++) {
-            ; /* Do nothing */
-        }
-
-		/* Finally locate end of second column (dbffieldname) */
- 		for (tmpstr = tmpptr; *tmpptr != '\t' && *tmpptr != '\n' && *tmpptr != ' ' && *tmpptr != '\0'; tmpptr++);		
-		fieldnamesize = tmpptr - tmpstr;
-		
-		/* Allocate memory and copy the string ensuring it is terminated */
-		state->column_map_dbffieldnames[curmapsize] = malloc(fieldnamesize + 1);
-		strncpy(state->column_map_dbffieldnames[curmapsize], tmpstr, fieldnamesize);
-		state->column_map_dbffieldnames[curmapsize][fieldnamesize] = '\0';
-		
-		/* Error out if the dbffieldname is > 10 chars */
-		if (strlen(state->column_map_dbffieldnames[curmapsize]) > 10)
-		{
-			snprintf(state->message, SHPDUMPERMSGLEN, _("ERROR: column map file specifies a DBF field name \"%s\" which is longer than 10 characters"), state->column_map_dbffieldnames[curmapsize]);
-			return SHPDUMPERERR;
-		}
-		
-		curmapsize++;
-	}
-
-	fclose(fptr);
-
-	/* Done; return success */
-	return SHPDUMPEROK;
-}
-
-
 /* Create a new shapefile state object */
 SHPDUMPERSTATE *
 ShpDumperCreate(SHPDUMPERCONFIG *config)
@@ -1258,10 +1165,8 @@ ShpDumperCreate(SHPDUMPERCONFIG *config)
 	state->dbffieldnames = NULL;
 	state->dbffieldtypes = NULL;
 	state->pgfieldnames = NULL;
-	state->column_map_pgfieldnames = NULL;
-	state->column_map_dbffieldnames = NULL;
-	state->column_map_size = 0;
 	state->big_endian = is_bigendian();
+	colmap_init(&state->column_map);
 	
 	return state;
 }
@@ -1312,6 +1217,11 @@ ShpDumperGetConnectionStringFromConn(SHPCONNECTIONCONFIG *conn)
 		strcat(connstring, conn->database);
 	}
 
+	if ( ! getenv("PGCLIENTENCODING") )
+	{
+		strcat(connstring, " client_encoding=UTF8");
+	}
+
 	return connstring;
 }
 
@@ -1427,15 +1337,15 @@ ShpDumperOpenTable(SHPDUMPERSTATE *state)
 	/* Open the column map if one was specified */
 	if (state->config->column_map_filename)
 	{
-		ret = read_column_map(state);
-		if (ret != SHPDUMPEROK)
-			return SHPDUMPERERR;
+		ret = colmap_read(state->config->column_map_filename,
+		                  &state->column_map, state->message, SHPDUMPERMSGLEN);
+		if (!ret) return SHPDUMPERERR;
 	}
 		
 	/* If a user-defined query has been specified, create and point the state to our new table */
 	if (state->config->usrquery)
 	{
-		state->table = malloc(20 + 20);		// string + max long precision
+		state->table = malloc(20 + 20);		/* string + max long precision */
 		sprintf(state->table, "__pgsql2shp%lu_tmp_table", (long)getpid());
 
 		query = malloc(32 + strlen(state->table) + strlen(state->config->usrquery));
@@ -1512,8 +1422,19 @@ ShpDumperOpenTable(SHPDUMPERSTATE *state)
 	else
 		state->shp_file = state->table;
 
-	/* Create the dbf file */
-	state->dbf = DBFCreate(state->shp_file);
+	/* Create the dbf file: */
+	/* If there's a user-specified encoding hanging around, try and use that. */
+	/* Otherwise, just use UTF-8 encoding, since that's usually our client encoding. */
+	if ( getenv("PGCLIENTENCODING") )
+	{
+		char *codepage = encoding2codepage(getenv("PGCLIENTENCODING"));
+		state->dbf = DBFCreateEx(state->shp_file, codepage);
+	}
+	else
+	{
+		state->dbf = DBFCreateEx(state->shp_file, "UTF-8");
+	}
+		
 	if (!state->dbf)
 	{
 		snprintf(state->message, SHPDUMPERMSGLEN, _("Could not create dbf file %s"), state->shp_file);
@@ -1602,17 +1523,15 @@ ShpDumperOpenTable(SHPDUMPERSTATE *state)
 		strncpy(dbffieldname, ptr, 10);
 		dbffieldname[10] = '\0';
 
-		/* If a column map file has been passed in, use this to create the dbf field name from
-		   the PostgreSQL column name */
-		if (state->column_map_size > 0)
+		/* If a column map file has been passed in,
+		 * use this to create the dbf field name from
+		 * the PostgreSQL column name */
 		{
-			for (j = 0; j < state->column_map_size; j++)
-			{
-				if (!strcasecmp(state->column_map_pgfieldnames[j], dbffieldname))
-				{
-					strncpy(dbffieldname, state->column_map_dbffieldnames[j], 10);
-					dbffieldname[10] = '\0';
-				}
+		  const char *mapped = colmap_dbf_by_pg(&state->column_map, dbffieldname);
+		  if (mapped)
+		  {
+			  strncpy(dbffieldname, mapped, 10);
+			  dbffieldname[10] = '\0';
 			}
 		}
 			
@@ -2291,20 +2210,7 @@ ShpDumperDestroy(SHPDUMPERSTATE *state)
 			free(state->pgfieldnames);
 
 		/* Free any column map fieldnames if specified */
-		if (state->column_map_size > 0)
-		{
-			for (i = 0; i < state->column_map_size; i++)
-			{
-				if (state->column_map_pgfieldnames[i])
-					free(state->column_map_pgfieldnames[i]);
-				
-				if (state->column_map_dbffieldnames[i])
-					free(state->column_map_dbffieldnames[i]);
-			}
-			
-			free(state->column_map_pgfieldnames);
-			free(state->column_map_dbffieldnames);
-		}
+		colmap_clean(&state->column_map);
 		
 		/* Free other names */
 		if (state->table)
diff --git a/loader/pgsql2shp-core.h b/loader/pgsql2shp-core.h
index 42b2a19..82fb69e 100644
--- a/loader/pgsql2shp-core.h
+++ b/loader/pgsql2shp-core.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: pgsql2shp-core.h 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -29,8 +28,7 @@
 #include "shpcommon.h"
 #include "getopt.h"
 
-#define P2S_RCSID "$Id: pgsql2shp-core.h 13134 2014-12-01 08:47:21Z strk $"
-
+#define P2S_RCSID "$Id: pgsql2shp-core.h 13497 2015-05-13 18:29:52Z pramsey $"
 
 /*
  * Error message handling
@@ -184,14 +182,8 @@ typedef struct shp_dumper_state
 	/* Last (error) message */
 	char message[SHPDUMPERMSGLEN];
 
-	/* Column map pgfieldnames */
-	char **column_map_pgfieldnames;
-	
-	/* Column map dbffieldnames */
-	char **column_map_dbffieldnames;
-	
-	/* Number of entries within column map */
-	int column_map_size;
+	/* Column map */
+  colmap column_map;
 
 } SHPDUMPERSTATE;
 
diff --git a/loader/safileio.c b/loader/safileio.c
index a7d8432..c7f7a2a 100644
--- a/loader/safileio.c
+++ b/loader/safileio.c
@@ -1,5 +1,4 @@
 /******************************************************************************
- * $Id: safileio.c,v 1.4 2008-01-16 20:05:14 bram Exp $
  *
  * Project:  Shapelib
  * Purpose:  Default implementation of file io based on stdio.
@@ -65,7 +64,7 @@
 #include <string.h>
 #include <stdio.h>
 
-SHP_CVSID("$Id: safileio.c,v 1.4 2008-01-16 20:05:14 bram Exp $");
+SHP_CVSID("$Id$")
 
 #ifdef SHPAPI_UTF8_HOOKS
 #   ifdef SHPAPI_WINDOWS
diff --git a/loader/shapefil.h b/loader/shapefil.h
index bf70155..962cb9c 100644
--- a/loader/shapefil.h
+++ b/loader/shapefil.h
@@ -2,7 +2,6 @@
 #define SHAPEFILE_H_INCLUDED
 
 /******************************************************************************
- * $Id: shapefil.h 9324 2012-02-27 22:08:12Z pramsey $
  *
  * Project:  Shapelib
  * Purpose:  Primary include file for Shapelib.
diff --git a/loader/shp2pgsql-cli.c b/loader/shp2pgsql-cli.c
index 4d82b07..3f38523 100644
--- a/loader/shp2pgsql-cli.c
+++ b/loader/shp2pgsql-cli.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: shp2pgsql-cli.c 11294 2013-04-13 18:26:44Z mcayland $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://www.postgis.org
@@ -44,8 +43,15 @@ usage()
 	printf(_( "  -k  Keep postgresql identifiers case.\n" ));
 	printf(_( "  -i  Use int4 type for all integer dbf fields.\n" ));
 	printf(_( "  -I  Create a spatial index on the geocolumn.\n" ));
+	printf(_("  -m <filename>  Specify a file containing a set of mappings of (long) column\n"
+	         "     names to 10 character DBF column names. The content of the file is one or\n"
+	         "     more lines of two names separated by white space and no trailing or\n"
+	         "     leading space. For example:\n"
+	         "         COLUMNNAME DBFFIELD1\n"
+	         "         AVERYLONGCOLUMNNAME DBFFIELD2\n" ));
 	printf(_( "  -S  Generate simple geometries instead of MULTI geometries.\n" ));
 	printf(_( "  -t <dimensionality> Force geometry to be one of '2D', '3DZ', '3DM', or '4D'\n" ));
+
 	printf(_( "  -w  Output WKT instead of WKB.  Note that this can result in\n"
 	          "      coordinate drift.\n" ));
 	printf(_( "  -W <encoding> Specify the character encoding of Shape's\n"
@@ -89,7 +95,7 @@ main (int argc, char **argv)
 	set_loader_config_defaults(config);
 
 	/* Keep the flag list alphabetic so it's easy to see what's left. */
-	while ((c = pgis_getopt(argc, argv, "acdeg:iknps:t:wDGIN:ST:W:X:")) != EOF)
+	while ((c = pgis_getopt(argc, argv, "acdeg:ikm:nps:t:wDGIN:ST:W:X:")) != EOF)
 	{
 		switch (c)
 		{
@@ -138,7 +144,10 @@ main (int argc, char **argv)
 		case 'g':
 			config->geo_col = pgis_optarg;
 			break;
-
+		case 'm':
+			config->column_map_filename = pgis_optarg;
+			break;
+			
 		case 'k':
 			config->quoteidentifiers = 1;
 			break;
diff --git a/loader/shp2pgsql-core.c b/loader/shp2pgsql-core.c
index 8e7c20e..460baff 100644
--- a/loader/shp2pgsql-core.c
+++ b/loader/shp2pgsql-core.c
@@ -1,7 +1,7 @@
 /**********************************************************************
  *
  * PostGIS - Spatial Types for PostgreSQL
- * http://www.postgis.org
+ * http://postgis.net
  * 
  * Copyright (C) 2008 OpenGeo.org
  * Copyright (C) 2009 Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
@@ -16,10 +16,11 @@
 #include "../postgis_config.h"
 
 #include "shp2pgsql-core.h"
-#include "../liblwgeom/liblwgeom.h" /* for lw_vasprintf */
+#include "../liblwgeom/liblwgeom.h"
 #include "../liblwgeom/lwgeom_log.h" /* for LWDEBUG macros */
 
 
+
 /* Internal ring/point structures */
 typedef struct struct_point
 {
@@ -43,7 +44,6 @@ typedef struct struct_ring
 #define UTF8_BAD_RESULT 1
 #define UTF8_NO_RESULT 2
 
-int utf8(const char *fromcode, char *inputbuf, char **outputbuf);
 char *escape_copy_string(char *str);
 char *escape_insert_string(char *str);
 
@@ -54,30 +54,10 @@ int FindPolygons(SHPObject *obj, Ring ***Out);
 void ReleasePolygons(Ring **polys, int npolys);
 int GeneratePolygonGeometry(SHPLOADERSTATE *state, SHPObject *obj, char **geometry);
 
-/* Append variadic formatted string to a stringbuffer */
-void
-vasbappend(stringbuffer_t *sb, char *fmt, ... )
-{
-	va_list ap;
-	char *msg;
-
-	va_start(ap, fmt);
-
-	if (!lw_vasprintf (&msg, fmt, ap))
-	{
-		va_end (ap);
-		return;
-	}
-
-	/* Append to the stringbuffer */
-	stringbuffer_append(sb, msg);
-	free(msg);
-
-	va_end(ap);
-}
 
 /* Return allocated string containing UTF8 string converted from encoding fromcode */
-int utf8(const char *fromcode, char *inputbuf, char **outputbuf)
+static int 
+utf8(const char *fromcode, char *inputbuf, char **outputbuf)
 {
 	iconv_t cd;
 	char *outputptr;
@@ -544,7 +524,14 @@ FindPolygons(SHPObject *obj, Ring ***Out)
 		pt2.x = inner->list[1].x;
 		pt2.y = inner->list[1].y;
 
-		for (i = 0; i < out_index; i++)
+		/* 
+		* If we assume that the case of the "big polygon w/o hole 
+		* containing little polygon w/ hold" is ordered so that the 
+		* big polygon comes first, then checking the list in reverse
+		* will assign the little polygon's hole to the little polygon
+		* w/o a lot of extra fancy containment logic here
+		*/
+		for (i = out_index - 1; i >= 0; i--)
 		{
 			int in;
 
@@ -554,7 +541,6 @@ FindPolygons(SHPObject *obj, Ring ***Out)
 				outer = Outer[i];
 				break;
 			}
-			/*fprintf(stderr, "!PIP %s\nOUTE %s\n", dump_ring(inner), dump_ring(Outer[i])); */
 		}
 
 		if (outer)
@@ -577,7 +563,11 @@ FindPolygons(SHPObject *obj, Ring ***Out)
 	}
 
 	*Out = Outer;
-	free(Inner);
+	/* 
+	* Only free the containing Inner array, not the ring elements, because
+	* the rings are now owned by the linked lists in the Outer array elements.
+	*/
+	free(Inner); 
 
 	return out_index;
 }
@@ -771,6 +761,7 @@ set_loader_config_defaults(SHPLOADERCONFIG *config)
 	config->tablespace = NULL;
 	config->idxtablespace = NULL;
 	config->usetransaction = 1;
+	config->column_map_filename = NULL;
 }
 
 /* Create a new shapefile state object */
@@ -823,6 +814,8 @@ ShpLoaderCreate(SHPLOADERCONFIG *config)
 		state->geo_col = strdup(config->geography ? GEOGRAPHY_DEFAULT : GEOMETRY_DEFAULT);
 	}
 
+	colmap_init(&state->column_map);
+
 	return state;
 }
 
@@ -863,6 +856,31 @@ ShpLoaderOpenShape(SHPLOADERSTATE *state)
 
 		return SHPLOADERERR;
 	}
+	
+		
+	/* Open the column map if one was specified */
+	if (state->config->column_map_filename)
+	{
+		ret = colmap_read(state->config->column_map_filename,
+		                  &state->column_map, state->message, SHPLOADERMSGLEN);
+		if (!ret) return SHPLOADERERR;
+	}
+	
+	/* User hasn't altered the default encoding preference... */
+	if ( strcmp(state->config->encoding, ENCODING_DEFAULT) == 0 )
+	{
+	    /* But the file has a code page entry... */
+	    if ( state->hDBFHandle->pszCodePage )
+	    {
+	        /* And we figured out what iconv encoding it maps to, so use it! */
+            char *newencoding = NULL;
+	        if ( (newencoding = codepage2encoding(state->hDBFHandle->pszCodePage)) )
+	        {
+                lwfree(state->config->encoding);
+                state->config->encoding = newencoding;
+            }
+        }
+	}
 
 	/* If reading the whole shapefile (not just attributes)... */
 	if (state->config->readshape == 1)
@@ -1103,6 +1121,17 @@ ShpLoaderOpenShape(SHPLOADERSTATE *state)
 			strncpy(name, utf8str, MAXFIELDNAMELEN);
 			free(utf8str);
 		}
+		
+		/* If a column map file has been passed in, use this to create the postgresql field name from
+		   the dbf column name */
+		{
+		  const char *mapped = colmap_pg_by_dbf(&state->column_map, name);
+		  if (mapped)
+		  {
+			  strncpy(name, mapped, MAXFIELDNAMELEN);
+			  name[MAXFIELDNAMELEN-1] = '\0';
+			}
+		}
 
 		/*
 		 * Make field names lowercase unless asked to
@@ -1813,6 +1842,14 @@ ShpLoaderGetSQLFooter(SHPLOADERSTATE *state, char **strfooter)
 		stringbuffer_aprintf(sb, "COMMIT;\n");
 	}
 
+	/* Always ANALYZE the resulting table, for better stats */
+	stringbuffer_aprintf(sb, "ANALYZE ");
+	if (state->config->schema)
+	{
+		stringbuffer_aprintf(sb, "\"%s\".", state->config->schema);
+	}
+	stringbuffer_aprintf(sb, "\"%s\";\n", state->config->table);
+
 	/* Copy the string buffer into a new string, destroying the string buffer */
 	ret = (char *)malloc(strlen((char *)stringbuffer_getstring(sb)) + 1);
 	strcpy(ret, (char *)stringbuffer_getstring(sb));
@@ -1859,6 +1896,9 @@ ShpLoaderDestroy(SHPLOADERSTATE *state)
 		if (state->col_names)
 			free(state->col_names);
 
+		/* Free any column map fieldnames if specified */
+		colmap_clean(&state->column_map);
+		
 		/* Free the state itself */
 		free(state);
 	}
diff --git a/loader/shp2pgsql-core.h b/loader/shp2pgsql-core.h
index 27b8070..ef4b21d 100644
--- a/loader/shp2pgsql-core.h
+++ b/loader/shp2pgsql-core.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: shp2pgsql-core.h 13447 2015-04-26 04:33:54Z robe $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -30,8 +29,7 @@
 
 #include "../liblwgeom/stringbuffer.h"
 
-#define S2P_RCSID "$Id: shp2pgsql-core.h 13447 2015-04-26 04:33:54Z robe $"
-
+#define S2P_RCSID "$Id: shp2pgsql-core.h 13497 2015-05-13 18:29:52Z pramsey $"
 
 /* Number of digits of precision in WKT produced. */
 #define WKT_PRECISION 15
@@ -145,6 +143,9 @@ typedef struct shp_loader_config
 
 	/* whether to do a single transaction or run each statement on its own */
 	int usetransaction;
+	
+	/* Name of the column map file if specified */
+	char *column_map_filename;
 
 } SHPLOADERCONFIG;
 
@@ -215,13 +216,15 @@ typedef struct shp_loader_state
 	/* geometry/geography column name to use.  Will be set to the default if the config did
 	   not specify a column name. */
 	char *geo_col; 
+	
+	/* Column map */
+  colmap column_map;
 
 } SHPLOADERSTATE;
 
 
 /* Externally accessible functions */
 void strtolower(char *s);
-void vasbappend(stringbuffer_t *sb, char *fmt, ... );
 void set_loader_config_defaults(SHPLOADERCONFIG *config);
 
 SHPLOADERSTATE *ShpLoaderCreate(SHPLOADERCONFIG *config);
diff --git a/loader/shp2pgsql-gui.c b/loader/shp2pgsql-gui.c
index 3f03ab6..d0c6e14 100644
--- a/loader/shp2pgsql-gui.c
+++ b/loader/shp2pgsql-gui.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: shp2pgsql-gui.c 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -27,9 +26,7 @@
 #include "shp2pgsql-core.h"
 #include "pgsql2shp-core.h"
 
-#include "../liblwgeom/liblwgeom.h" /* for lw_vasprintf */
-
-#define GUI_RCSID "shp2pgsql-gui $Revision: 13134 $"
+#define GUI_RCSID "shp2pgsql-gui $Revision: 13651 $"
 #define SHAPEFIELDMAXWIDTH 60
 
 static void pgui_log_va(const char *fmt, va_list ap);
@@ -206,7 +203,8 @@ enum
 };
 
 /* Other */
-static char *pgui_errmsg = NULL;
+#define GUIMSG_LINE_MAXLEN 256
+static char pgui_errmsg[GUIMSG_LINE_MAXLEN+1];
 static PGconn *pg_connection = NULL;
 static SHPCONNECTIONCONFIG *conn = NULL;
 static SHPLOADERCONFIG *global_loader_config = NULL;
@@ -224,10 +222,11 @@ static void pgui_sanitize_connection_string(char *connection_string);
 void
 pgui_log_va(const char *fmt, va_list ap)
 {
-	char *msg;
+	char msg[GUIMSG_LINE_MAXLEN+1];
 	GtkTextIter iter;
 
-	if (!lw_vasprintf (&msg, fmt, ap)) return;
+	if ( -1 == vsnprintf (msg, GUIMSG_LINE_MAXLEN, fmt, ap) ) return;
+	msg[GUIMSG_LINE_MAXLEN] = '\0';
 
 	/* Append text to the end of the text area, scrolling if required to make it visible */
 	gtk_text_buffer_get_end_iter(textbuffer_log, &iter);
@@ -239,9 +238,6 @@ pgui_log_va(const char *fmt, va_list ap)
 	/* Allow GTK to process events */
 	while (gtk_events_pending())
 		gtk_main_iteration();
-
-	free(msg);
-	return;
 }
 
 /*
@@ -263,11 +259,8 @@ pgui_logf(const char *fmt, ...)
 void
 pgui_seterr_va(const char *fmt, va_list ap)
 {
-	/* Free any existing message */
-	if (pgui_errmsg)
-		free(pgui_errmsg);
-	
-	if (!lw_vasprintf (&pgui_errmsg, fmt, ap)) return;
+	if ( -1 == vsnprintf (pgui_errmsg, GUIMSG_LINE_MAXLEN, fmt, ap) ) return;
+	pgui_errmsg[GUIMSG_LINE_MAXLEN] = '\0';
 }
 
 static void
@@ -724,7 +717,7 @@ update_table_chooser_from_database()
 			{
 				geocol_name = PQgetvalue(geocol_result, j, PQfnumber(geocol_result, "attname"));
 			
-				gtk_list_store_insert_before(dumper_geocol_combo_list, &geocol_iter, TABLECHOOSER_GEOCOL_COMBO_TEXT);
+				gtk_list_store_insert_before(dumper_geocol_combo_list, &geocol_iter, (GtkTreeIter *)TABLECHOOSER_GEOCOL_COMBO_TEXT);
 				gtk_list_store_set(dumper_geocol_combo_list, &geocol_iter, 
 						TABLECHOOSER_GEOCOL_COMBO_TEXT, geocol_name,
 						-1);
@@ -735,7 +728,7 @@ update_table_chooser_from_database()
 			/* Add a "default" entry */
 			geocol_name = NULL;
 			
-			gtk_list_store_insert_before(dumper_geocol_combo_list, &geocol_iter, TABLECHOOSER_GEOCOL_COMBO_TEXT);
+			gtk_list_store_insert_before(dumper_geocol_combo_list, &geocol_iter, (GtkTreeIter *)TABLECHOOSER_GEOCOL_COMBO_TEXT);
 			gtk_list_store_set(dumper_geocol_combo_list, &geocol_iter, 
 						TABLECHOOSER_GEOCOL_COMBO_TEXT, _("(None)"),
 						-1);
@@ -961,10 +954,16 @@ static void
 add_loader_file_config_to_list(SHPLOADERCONFIG *loader_file_config)
 {
 	GtkTreeIter iter;
-	char *srid;
+#define MAXLEN 16
+	char srid[MAXLEN+1];
 	
 	/* Convert SRID into string */
-	lw_asprintf(&srid, "%d", loader_file_config->sr_id);
+	if ( MAXLEN+1 <= snprintf(srid, MAXLEN+1, "%d", loader_file_config->sr_id) )
+	{
+		pgui_logf("Invalid SRID requiring more than %d digits: %d", MAXLEN, loader_file_config->sr_id);
+		pgui_raise_error_dialogue();
+		srid[MAXLEN] = '\0';
+	}
 	
 	gtk_list_store_insert_before(import_file_list_store, &iter, NULL);
 	gtk_list_store_set(import_file_list_store, &iter,
@@ -1419,7 +1418,8 @@ pgui_action_import(GtkWidget *widget, gpointer data)
 	gint is_valid;
 	gpointer gptr;
 	GtkTreeIter iter;
-	char *sql_form, *query, *connection_string, *progress_text = NULL, *progress_shapefile = NULL;
+	char *sql_form, *query, *connection_string, *progress_shapefile = NULL;
+  char progress_text[GUIMSG_LINE_MAXLEN+1];
 	PGresult *result;
 	
 	int ret, i = 0;
@@ -1542,7 +1542,8 @@ pgui_action_import(GtkWidget *widget, gpointer data)
 		strcpy(progress_shapefile, &loader_file_config->shp_file[i]);
 		
 		/* Display the progress dialog */
-		lw_asprintf(&progress_text, _("Importing shapefile %s (%d records)..."), progress_shapefile, ShpLoaderGetRecordCount(state));
+		snprintf(progress_text, GUIMSG_LINE_MAXLEN, _("Importing shapefile %s (%d records)..."), progress_shapefile, ShpLoaderGetRecordCount(state));
+		progress_text[GUIMSG_LINE_MAXLEN] = '\0';
 		gtk_label_set_text(GTK_LABEL(label_progress), progress_text);
 		gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress), 0.0);
 		gtk_widget_show_all(dialog_progress);
@@ -1728,9 +1729,6 @@ import_cleanup:
 		ShpLoaderDestroy(state);
 
 		/* Tidy up */
-		if (progress_text)
-			free(progress_text);
-		
 		if (progress_shapefile)
 			free(progress_shapefile);
 		
@@ -1769,7 +1767,8 @@ pgui_action_export(GtkWidget *widget, gpointer data)
 	gint is_valid;
 	gpointer gptr;
 	GtkTreeIter iter;
-	char *output_shapefile, *orig_shapefile, *progress_text = NULL;
+	char *output_shapefile, *orig_shapefile;
+  char progress_text[GUIMSG_LINE_MAXLEN+1];
 	gchar *folder_path;
 	
 	int ret, success = FALSE, i = 0;
@@ -1877,7 +1876,8 @@ pgui_action_export(GtkWidget *widget, gpointer data)
 		}
 
 		/* Update the text */
-		lw_asprintf(&progress_text, _("Exporting table %s (%d records)..."), dumper_table_config->table, ShpDumperGetRecordCount(state));
+		snprintf(progress_text, GUIMSG_LINE_MAXLEN, _("Exporting table %s (%d records)..."), dumper_table_config->table, ShpDumperGetRecordCount(state));
+		progress_text[GUIMSG_LINE_MAXLEN] = '\0';
 		gtk_label_set_text(GTK_LABEL(label_progress), progress_text);
 
 		/* Allow GTK events to get a look in */
@@ -2175,7 +2175,8 @@ pgui_action_handle_loader_edit(GtkCellRendererText *renderer,
 	gpointer gptr;
 	gint columnindex;
 	SHPLOADERCONFIG *loader_file_config;
-	char *srid;
+#define MAXLEN 16
+	char srid[MAXLEN+1];
 	
 	/* Empty doesn't fly */
 	if (strlen(new_text) == 0)
@@ -2194,7 +2195,12 @@ pgui_action_handle_loader_edit(GtkCellRendererText *renderer,
 	update_loader_file_config_from_listview_iter(&iter, loader_file_config);
 	
 	/* Now refresh the listview UI row with the new configuration */
-	lw_asprintf(&srid, "%d", loader_file_config->sr_id);
+	if ( MAXLEN+1 <= snprintf(srid, MAXLEN+1, "%d", loader_file_config->sr_id) )
+	{
+		pgui_logf("Invalid SRID requiring more than %d digits: %d", MAXLEN, loader_file_config->sr_id);
+		pgui_raise_error_dialogue();
+		srid[MAXLEN] = '\0';
+	}
 	
 	gtk_list_store_set(import_file_list_store, &iter,
 	                   IMPORT_SCHEMA_COLUMN, loader_file_config->schema,
diff --git a/loader/shpcommon.c b/loader/shpcommon.c
index 52f496c..e3f0b41 100644
--- a/loader/shpcommon.c
+++ b/loader/shpcommon.c
@@ -1,9 +1,10 @@
 /**********************************************************************
- * $Id: shpcommon.c 5646 2010-05-27 13:19:12Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
- * Copyright 2010 Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+ *
+ * Copyright (C) 2014 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2010 Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
@@ -12,7 +13,10 @@
 
 /* This file contains functions that are shared between the loader and dumper */
 
+#include <stdio.h>
+#include <string.h>
 #include <stdlib.h>
+
 #include "shpcommon.h"
 
 
@@ -70,3 +74,208 @@ escape_connection_string(char *str)
 
 	return result;
 }
+
+void
+colmap_init(colmap *map)
+{
+  map->size = 0;
+  map->pgfieldnames = NULL;
+  map->dbffieldnames = NULL;
+}
+
+void
+colmap_clean(colmap *map)
+{
+  int i;
+  if (map->size)
+  {
+    for (i = 0; i < map->size; i++)
+    {
+      if (map->pgfieldnames[i]) free(map->pgfieldnames[i]);
+      if (map->dbffieldnames[i]) free(map->dbffieldnames[i]);
+    }
+    free(map->pgfieldnames);
+    free(map->dbffieldnames);
+  }
+}
+
+const char *
+colmap_dbf_by_pg(colmap *map, const char *pgname)
+{
+  int i;
+  for (i=0; i<map->size; ++i)
+  {
+    if (!strcasecmp(map->pgfieldnames[i], pgname))
+    {
+      return map->dbffieldnames[i];
+    }
+  }
+  return NULL;
+}
+
+const char *
+colmap_pg_by_dbf(colmap *map, const char *dbfname)
+{
+  int i;
+  for (i=0; i<map->size; ++i)
+  {
+    if (!strcasecmp(map->dbffieldnames[i], dbfname))
+    {
+      return map->pgfieldnames[i];
+    }
+  }
+  return NULL;
+}
+
+int
+colmap_read(const char *filename, colmap *map, char *errbuf, size_t errbuflen)
+{
+  FILE *fptr;
+  char linebuffer[1024];
+  char *tmpstr;
+  int curmapsize, fieldnamesize;
+  
+  /* Read column map file and load the colmap_dbffieldnames
+   * and colmap_pgfieldnames arrays */
+  fptr = fopen(filename, "r");
+  if (!fptr)
+  {
+    /* Return an error */
+    snprintf(errbuf, errbuflen, _("ERROR: Unable to open column map file %s"),
+                     filename);
+    return 0;
+  }
+  
+  /* First count how many columns we have... */
+  while (fgets(linebuffer, 1024, fptr) != NULL) ++map->size;
+  
+  /* Now we know the final size, allocate the arrays and load the data */
+  fseek(fptr, 0, SEEK_SET);
+  map->pgfieldnames = (char **)malloc(sizeof(char *) * map->size);
+  map->dbffieldnames = (char **)malloc(sizeof(char *) * map->size);
+  
+  /* Read in a line at a time... */
+  curmapsize = 0;
+  while (fgets(linebuffer, 1024, fptr) != NULL)
+  {
+    /* Split into two separate strings: pgfieldname and dbffieldname */
+    /* First locate end of first column (pgfieldname) */
+    fieldnamesize = strcspn(linebuffer, "\t\n "); 
+    tmpstr = linebuffer;
+
+    /* Allocate memory and copy the string ensuring it is terminated */
+    map->pgfieldnames[curmapsize] = malloc(fieldnamesize + 1);
+    strncpy(map->pgfieldnames[curmapsize], tmpstr, fieldnamesize);
+    map->pgfieldnames[curmapsize][fieldnamesize] = '\0';
+
+    /* Now swallow up any whitespace */
+    tmpstr = linebuffer + fieldnamesize;
+    tmpstr += strspn(tmpstr, "\t\n "); 
+
+    /* Finally locate end of second column (dbffieldname) */
+    fieldnamesize = strcspn(tmpstr, "\t\n "); 
+
+    /* Allocate memory and copy the string ensuring it is terminated */
+    map->dbffieldnames[curmapsize] = malloc(fieldnamesize + 1);
+    strncpy(map->dbffieldnames[curmapsize], tmpstr, fieldnamesize);
+    map->dbffieldnames[curmapsize][fieldnamesize] = '\0';
+    
+    /* Error out if the dbffieldname is > 10 chars */
+    if (strlen(map->dbffieldnames[curmapsize]) > 10)
+    {
+      snprintf(errbuf, errbuflen, _("ERROR: column map file specifies a DBF field name \"%s\" which is longer than 10 characters"), map->dbffieldnames[curmapsize]);
+      return 0;
+    }
+    
+    ++curmapsize;
+  }
+
+  fclose(fptr);
+
+  /* Done; return success */
+  return 1;
+}
+
+/*
+* Code page info will come out of dbfopen as either a bare codepage number
+* (e.g. 1256) or as "LDID/1234" from the DBF hreader. We want to look up 
+* the equivalent iconv encoding string so we can use iconv to transcode
+* the data into UTF8
+*/
+char *
+codepage2encoding(const char *cpg)
+{
+    int cpglen;
+    int is_ldid = 0;
+    int num, i;
+    
+    /* Do nothing on nothing. */
+    if ( ! cpg ) return NULL;
+    
+    /* Is this an LDID string? */
+    /* If so, note it and move past the "LDID/" tag */
+    cpglen = strlen(cpg);
+    if ( strstr(cpg, "LDID/") )
+    {
+        if ( cpglen > 5 )
+        {
+            cpg += 5;
+            is_ldid = 1;
+        }
+        else
+        {
+            return NULL;
+        }
+    }
+    
+    /* Read the number */
+    num = atoi(cpg);
+    
+    /* Can we find this number in our lookup table? */
+    for ( i = is_ldid ; i < num_code_pages; i++ )
+    {
+        if ( is_ldid )
+        {
+            if ( code_pages[i].ldid == num )
+                return strdup(code_pages[i].iconv);
+        }
+        else
+        {
+            if ( code_pages[i].cpg == num )
+                return strdup(code_pages[i].iconv);
+        }
+    }
+    
+    /* Didn't find a matching entry */
+    return NULL;
+    
+}
+
+/*
+* In the case where data is coming out of the database in some wierd encoding
+* we want to look up the appropriate code page entry to feed to DBFCreateEx
+*/
+char *
+encoding2codepage(const char *encoding)
+{
+	int i;
+	for ( i = 0; i < num_code_pages; i++ )
+	{
+		if ( strcasecmp(encoding, code_pages[i].pg) == 0 )
+		{
+			if ( code_pages[i].ldid == 0xFF )
+			{
+				return strdup("UTF-8");
+			}
+			else
+			{
+				char *codepage = NULL;
+				asprintf(&codepage, "LDID/%d", code_pages[i].ldid);
+				return codepage;
+			}
+		}
+	}
+
+	/* OK, we give up, pretend it's UTF8 */
+	return strdup("UTF-8");
+}
diff --git a/loader/shpcommon.h b/loader/shpcommon.h
index 8b495b8..817c7b2 100644
--- a/loader/shpcommon.h
+++ b/loader/shpcommon.h
@@ -1,9 +1,10 @@
 /**********************************************************************
- * $Id: shpcommon.h 5646 2010-05-27 13:19:12Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
- * Copyright 2010 Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
+ *
+ * Copyright (C) 2014 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2010 Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
  *
  * This is free software; you can redistribute and/or modify it under
  * the terms of the GNU General Public Licence. See the COPYING file.
@@ -23,6 +24,87 @@
 #define _(String) String
 #endif
 
+
+
+typedef struct 
+{
+    int ldid;
+    int cpg;
+    char *desc;
+    char *iconv;
+    char *pg;
+} code_page_entry;
+
+static int num_code_pages = 60;
+
+/* http://www.autopark.ru/ASBProgrammerGuide/DBFSTRUC.HTM */
+/* http://resources.arcgis.com/fr/content/kbase?fa=articleShow&d=21106 */
+
+static code_page_entry code_pages[] = {
+    {0x01, 437, "U.S. MS-DOS", "CP437",""},
+    {0x02, 850, "International MS-DOS", "CP850",""},
+    {0x03, 1252, "Window ANSI", "WINDOWS-1252","WIN1252"},
+    {0x08, 865, "Danish OEM", "CP865",""},
+    {0x09, 437, "Dutch OEM", "CP437",""},
+    {0x0A, 850, "Dutch OEM*", "CP850",""},
+    {0x0B, 437, "Finnish OEM", "CP437",""},
+    {0x0D, 437, "French OEM", "CP437",""},
+    {0x0E, 850, "French OEM*", "CP850",""},
+    {0x0F, 437, "German OEM", "CP437",""},
+    {0x10, 850, "German OEM*", "CP850",""},
+    {0x11, 437, "Italian OEM", "CP437",""},
+    {0x12, 850, "Italian OEM*", "CP850",""},
+    {0x13, 932, "Japanese Shift-JIS", "CP932","SJIS"},
+    {0x14, 850, "Spanish OEM*", "CP850",""},
+    {0x15, 437, "Swedish OEM", "CP437",""},
+    {0x16, 850, "Swedish OEM*", "CP850",""},
+    {0x17, 865, "Norwegian OEM", "CP865",""},
+    {0x18, 437, "Spanish OEM", "CP865",""},
+    {0x19, 437, "English OEM (Britain)", "CP437",""},
+    {0x1A, 850, "English OEM (Britain)*", "CP850",""},
+    {0x1B, 437, "English OEM (U.S.)", "CP437",""},
+    {0x1C, 863, "French OEM (Canada)", "CP863",""},
+    {0x1D, 850, "French OEM*", "CP850",""},
+    {0x1F, 852, "Czech OEM", "CP852",""},
+    {0x22, 852, "Hungarian OEM", "CP852",""},
+    {0x23, 852, "Polish OEM", "CP852",""},
+    {0x24, 860, "Portugese OEM", "CP860",""},
+    {0x25, 850, "Potugese OEM*", "CP850",""},
+    {0x26, 866, "Russian OEM", "WINDOWS-866","WIN866"},
+    {0x37, 850, "English OEM (U.S.)*", "CP850",""},
+    {0x40, 852, "Romanian OEM", "CP852",""},
+    {0x4D, 936, "Chinese GBK (PRC)", "CP936",""},
+    {0x4E, 949, "Korean (ANSI/OEM)", "CP949",""},
+    {0x4F, 950, "Chinese Big 5 (Taiwan)", "CP950","BIG5"},
+    {0x50, 874, "Thai (ANSI/OEM)", "WIN874",""},
+    {0x57, 1252, "ANSI", "WINDOWS-1252",""},
+    {0x58, 1252, "Western European ANSI", "WINDOWS-1252",""},
+    {0x59, 1252, "Spanish ANSI", "WINDOWS-1252",""},
+    {0x64, 852, "Eastern European MS-DOS", "CP852",""},
+    {0x65, 866, "Russian MS-DOS", "CP866",""},
+    {0x66, 865, "Nordic MS-DOS", "CP865",""},
+    {0x67, 861, "Icelandic MS-DOS", "",""},
+    {0x6A, 737, "Greek MS-DOS (437G)", "CP737",""},
+    {0x6B, 857, "Turkish MS-DOS", "CP857",""},
+    {0x6C, 863, "French-Canadian MS-DOS", "CP863",""},
+    {0x78, 950, "Taiwan Big 5", "CP950",""},
+    {0x79, 949, "Hangul (Wansung)", "CP949",""},
+    {0x7A, 936, "PRC GBK", "CP936","GBK"},
+    {0x7B, 932, "Japanese Shift-JIS", "CP932",""},
+    {0x7C, 874, "Thai Windows/MS-DOS", "WINDOWS-874","WIN874"},
+    {0x86, 737, "Greek OEM", "CP737",""},
+    {0x87, 852, "Slovenian OEM", "CP852",""},
+    {0x88, 857, "Turkish OEM", "CP857",""},
+    {0xC8, 1250, "Eastern European Windows", "WINDOWS-1250","WIN1250"},
+    {0xC9, 1251, "Russian Windows", "WINDOWS-1251","WIN1251"},
+    {0xCA, 1254, "Turkish Windows", "WINDOWS-1254","WIN1254"},
+    {0xCB, 1253, "Greek Windows", "WINDOWS-1253","WIN1253"},
+    {0xCC, 1257, "Baltic Window", "WINDOWS-1257","WIN1257"},
+    {0xFF, 65001, "UTF-8", "UTF-8","UTF8"}
+};
+
+
+
 typedef struct shp_connection_state
 {
 	/* PgSQL username to log in with */
@@ -45,4 +127,61 @@ typedef struct shp_connection_state
 /* External shared functions */
 char *escape_connection_string(char *str);
 
+/* Column map between pgsql and dbf */
+typedef struct colmap_t {
+	
+	/* Column map pgfieldnames */
+	char **pgfieldnames;
+	
+	/* Column map dbffieldnames */
+	char **dbffieldnames;
+	
+	/* Number of entries within column map */
+	int size;
+
+} colmap;
+
+/**
+ * Read the content of filename into a symbol map 
+ *
+ * The content of the file is lines of two names separated by
+ * white space and no trailing or leading space:
+ *
+ *    COLUMNNAME DBFFIELD1
+ *    AVERYLONGCOLUMNNAME DBFFIELD2
+ *
+ *    etc.
+ *
+ * It is the reponsibility of the caller to reclaim the allocated space
+ * as follows:
+ *
+ * free(map->colmap_pgfieldnames[]) to free the column names
+ * free(map->colmap_dbffieldnames[]) to free the dbf field names
+ *
+ * TODO: provide a clean_colmap()
+ *
+ * @param filename name of the mapping file
+ *
+ * @param map container of colmap where the malloc'd
+ *            symbol map will be stored.
+ *
+ * @param errbuf buffer to write error messages to
+ *
+ * @param errbuflen length of buffer to write error messages to
+ *
+ * @return 1 on success, 0 on error (and errbuf would be filled)
+ */
+int colmap_read(const char *fname, colmap *map, char *ebuf, size_t ebuflen);
+
+void colmap_init(colmap *map);
+
+void colmap_clean(colmap *map);
+
+const char *colmap_dbf_by_pg(colmap *map, const char *pgname);
+
+const char *colmap_pg_by_dbf(colmap *map, const char *dbfname);
+
+char *codepage2encoding(const char *cpg);
+char *encoding2codepage(const char *encoding);
+
 #endif
diff --git a/loader/shpopen.c b/loader/shpopen.c
index 70e413d..3326e96 100644
--- a/loader/shpopen.c
+++ b/loader/shpopen.c
@@ -1,5 +1,4 @@
 /******************************************************************************
- * $Id: shpopen.c 12083 2013-11-04 23:17:11Z pramsey $
  *
  * Project:  Shapelib
  * Purpose:  Implementation of core Shapefile read/write functions.
@@ -233,7 +232,7 @@
  *
  * Revision 1.7  1995/10/21 03:15:58  warmerda
  * Added support for binary file access, the magic cookie 9997
- * and tried to improve the uint32 selection logic for 16bit systems.
+ * and tried to improve the int32 selection logic for 16bit systems.
  *
  * Revision 1.6  1995/09/04  04:19:41  warmerda
  * Added fix for file bounds.
@@ -264,14 +263,14 @@
 #include <string.h>
 #include <stdio.h>
 
-SHP_CVSID("$Id: shpopen.c 12083 2013-11-04 23:17:11Z pramsey $")
+SHP_CVSID("$Id: shpopen.c 13822 2015-07-22 12:35:40Z pramsey $")
 
 typedef unsigned char uchar;
 
 #if UINT_MAX == 65535
-typedef unsigned long	      uint32;
+typedef unsigned long	      int32;
 #else
-typedef unsigned int	      uint32;
+typedef unsigned int	      int32;
 #endif
 
 #ifndef FALSE
@@ -342,9 +341,9 @@ void SHPAPI_CALL SHPWriteHeader( SHPHandle psSHP )
 {
     uchar     	abyHeader[100];
     int		i;
-    uint32	i32;
+    int32	i32;
     double	dValue;
-    uint32	*panSHX;
+    int32	*panSHX;
     
     if (psSHP->fpSHX == NULL)
     {
@@ -418,7 +417,7 @@ void SHPAPI_CALL SHPWriteHeader( SHPHandle psSHP )
 /* -------------------------------------------------------------------- */
 /*      Prepare, and write .shx file header.                            */
 /* -------------------------------------------------------------------- */
-    i32 = (psSHP->nRecords * 2 * sizeof(uint32) + 100)/2;   /* file size */
+    i32 = (psSHP->nRecords * 2 * sizeof(int32) + 100)/2;   /* file size */
     ByteCopy( &i32, abyHeader+24, 4 );
     if( !bBigEndian ) SwapWord( 4, abyHeader+24 );
     
@@ -432,7 +431,7 @@ void SHPAPI_CALL SHPWriteHeader( SHPHandle psSHP )
 /* -------------------------------------------------------------------- */
 /*      Write out the .shx contents.                                    */
 /* -------------------------------------------------------------------- */
-    panSHX = (uint32 *) malloc(sizeof(uint32) * 2 * psSHP->nRecords);
+    panSHX = (int32 *) malloc(sizeof(int32) * 2 * psSHP->nRecords);
 
     for( i = 0; i < psSHP->nRecords; i++ )
     {
@@ -442,7 +441,7 @@ void SHPAPI_CALL SHPWriteHeader( SHPHandle psSHP )
         if( !bBigEndian ) SwapWord( 4, panSHX+i*2+1 );
     }
 
-    if( (int)psSHP->sHooks.FWrite( panSHX, sizeof(uint32)*2, psSHP->nRecords, psSHP->fpSHX ) 
+    if( (int)psSHP->sHooks.FWrite( panSHX, sizeof(int32)*2, psSHP->nRecords, psSHP->fpSHX ) 
         != psSHP->nRecords )
     {
         psSHP->sHooks.Error( "Failure writing .shx contents" );
@@ -734,7 +733,7 @@ SHPOpenLL( const char * pszLayer, const char * pszAccess, SAHooks *psHooks )
 
     for( i = 0; i < psSHP->nRecords; i++ )
     {
-        uint32		nOffset, nLength;
+        int32		nOffset, nLength;
 
         memcpy( &nOffset, pabyBuf + i * 8, 4 );
         if( !bBigEndian ) SwapWord( 4, &nOffset );
@@ -851,7 +850,7 @@ SHPCreateLL( const char * pszLayer, int nShapeType, SAHooks *psHooks )
     int		i;
     SAFile	fpSHP = NULL, fpSHX = NULL;
     uchar     	abyHeader[100];
-    uint32	i32;
+    int32	i32;
     double	dValue;
     
 /* -------------------------------------------------------------------- */
@@ -1174,7 +1173,7 @@ SHPWriteObject(SHPHandle psSHP, int nShapeId, SHPObject * psObject )
     unsigned int	       	nRecordOffset, nRecordSize=0;
     int i;
     uchar	*pabyRec;
-    uint32	i32;
+    int32	i32;
 
     psSHP->bUpdated = TRUE;
 
@@ -1226,7 +1225,7 @@ SHPWriteObject(SHPHandle psSHP, int nShapeId, SHPObject * psObject )
         || psObject->nSHPType == SHPT_ARCM
         || psObject->nSHPType == SHPT_MULTIPATCH )
     {
-        uint32		nPoints, nParts;
+        int32		nPoints, nParts;
         int    		i;
 
         nPoints = psObject->nVertices;
@@ -1343,7 +1342,7 @@ SHPWriteObject(SHPHandle psSHP, int nShapeId, SHPObject * psObject )
              || psObject->nSHPType == SHPT_MULTIPOINTZ
              || psObject->nSHPType == SHPT_MULTIPOINTM )
     {
-        uint32		nPoints;
+        int32		nPoints;
         int    		i;
 
         nPoints = psObject->nVertices;
@@ -1457,7 +1456,7 @@ SHPWriteObject(SHPHandle psSHP, int nShapeId, SHPObject * psObject )
     if( nShapeId == -1 || psSHP->panRecSize[nShapeId] < nRecordSize-8 )
     {
         unsigned int nExpectedSize = psSHP->nFileSize + nRecordSize;
-        if( nExpectedSize < psSHP->nFileSize ) // due to unsigned int overflow
+        if( nExpectedSize < psSHP->nFileSize ) /* due to unsigned int overflow */
         {
             char str[128];
             sprintf( str, "Failed to write shape object. "
@@ -1668,7 +1667,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
         || psShape->nSHPType == SHPT_ARCM
         || psShape->nSHPType == SHPT_MULTIPATCH )
     {
-        uint32		nPoints, nParts;
+        int32		nPoints, nParts;
         int    		i, nOffset;
 
         if ( 40 + 8 + 4 > nEntitySize )
@@ -1703,7 +1702,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
         if( bBigEndian ) SwapWord( 4, &nPoints );
         if( bBigEndian ) SwapWord( 4, &nParts );
 
-        if ( nPoints > 50 * 1000 * 1000 || nParts > 10 * 1000 * 1000 )
+        if (nPoints > 50 * 1000 * 1000 || nParts > 10 * 1000 * 1000)
         {
             snprintf(szErrorMsg, sizeof(szErrorMsg),
                      "Corrupted .shp file : shape %d, nPoints=%d, nParts=%d.",
@@ -1885,7 +1884,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
              || psShape->nSHPType == SHPT_MULTIPOINTM
              || psShape->nSHPType == SHPT_MULTIPOINTZ )
     {
-        uint32		nPoints;
+        int32		nPoints;
         int    		i, nOffset;
 
         if ( 44 + 4 > nEntitySize )
@@ -1901,7 +1900,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 
         if( bBigEndian ) SwapWord( 4, &nPoints );
 
-        if ( nPoints > 50 * 1000 * 1000)
+        if (nPoints > 50 * 1000 * 1000)
         {
             snprintf(szErrorMsg, sizeof(szErrorMsg),
                      "Corrupted .shp file : shape %d : nPoints = %d",
diff --git a/macros/ac_proj4_version.m4 b/macros/ac_proj4_version.m4
index 40585fe..3d9deca 100644
--- a/macros/ac_proj4_version.m4
+++ b/macros/ac_proj4_version.m4
@@ -1,5 +1,4 @@
 dnl **********************************************************************
-dnl * $Id: ac_proj4_version.m4 2797 2008-05-31 09:56:44Z mcayland $
 dnl *
 dnl * PostGIS - Spatial Types for PostgreSQL
 dnl * http://postgis.net
diff --git a/postgis/Makefile.in b/postgis/Makefile.in
index 9f5db81..ab903c6 100644
--- a/postgis/Makefile.in
+++ b/postgis/Makefile.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id$
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
@@ -15,7 +14,7 @@ MODULE_big=postgis- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@
 MODULEDIR=contrib/$(MODULE_big)
 
 # Files to be copied to the contrib/ directory
-SQL_built=postgis.sql uninstall_postgis.sql postgis_upgrade_20_21.sql postgis_upgrade_21_minor.sql legacy.sql uninstall_legacy.sql legacy_minimal.sql legacy_gist.sql uninstall_sfcgal.sql
+SQL_built=postgis.sql uninstall_postgis.sql postgis_upgrade.sql  legacy.sql uninstall_legacy.sql legacy_minimal.sql legacy_gist.sql 
 DATA=../spatial_ref_sys.sql
 
 # SQL objects (files requiring pre-processing)
@@ -25,7 +24,7 @@ GEOM_BACKEND_OBJ = lwgeom_geos.o
 SFCGAL_BACKEND_OBJ = lwgeom_sfcgal.o
 
 ifeq (@SFCGAL@,sfcgal)
-DATA_built=$(SQL_built) sfcgal.sql
+DATA_built=$(SQL_built) sfcgal.sql sfcgal_upgrade.sql uninstall_sfcgal.sql
 SQL_OBJS=$(SQL_objs) sfcgal.sql
 BACKEND_OBJ=$(GEOM_BACKEND_OBJ) $(SFCGAL_BACKEND_OBJ)
 else
@@ -61,10 +60,12 @@ PG_OBJS= \
 	lwgeom_in_kml.o \
 	lwgeom_in_geohash.o \
 	lwgeom_in_geojson.o \
+	lwgeom_in_encoded_polyline.o \
 	lwgeom_triggers.o \
 	lwgeom_dump.o \
 	lwgeom_dumppoints.o \
 	lwgeom_functions_lrs.o \
+	lwgeom_functions_temporal.o \
 	long_xact.o \
 	lwgeom_sqlmm.o \
 	lwgeom_rtree.o \
@@ -87,7 +88,7 @@ OBJS=$(PG_OBJS)
 # Note: we specify liblwgeom.a directly in SHLIB_LINK rather than using
 # -L... -l options to prevent issues with some platforms trying to link
 # to an existing liblwgeom.so in the PostgreSQL $libdir supplied by an
-# older version of PostGIS, rather than with the static liblwgeom.a 
+# older version of PostGIS, rather than with the static liblwgeom.a
 # supplied with newer versions of PostGIS
 PG_CPPFLAGS += -I../liblwgeom -I../libpgcommon @CPPFLAGS@ -fPIC
 SHLIB_LINK_F = ../libpgcommon/libpgcommon.a ../liblwgeom/.libs/liblwgeom.a @SHLIB_LINK@
@@ -103,13 +104,17 @@ EXTRA_CLEAN=$(SQL_OBJS) \
 	uninstall_postgis.sql \
 	uninstall_legacy.sql \
 	uninstall_sfcgal.sql \
-	postgis_upgrade_20_21.sql.in \
-	postgis_upgrade_20_21.sql \
-	postgis_upgrade_21_minor.sql 
+	postgis_upgrade.sql.in \
+	postgis_upgrade.sql \
+	sfcgal_upgrade.sql.in \
+	sfcgal_upgrade.sql 
 
 # PGXS information
-PG_CONFIG = @PG_CONFIG@ 
+PG_CONFIG = @PG_CONFIG@
 PGXS := @PGXS@
+# NO_TEMP_INSTALL is a workaround for a 9.5dev bug. See:
+# http://www.postgresql.org/message-id/CAB7nPqTsR5o3g-fBi6jbsVdhfPiLFWQ_0cGU5=94Rv_8W3qvFA@mail.gmail.com
+NO_TEMP_INSTALL=yes
 include $(PGXS)
 
 # Set PERL _after_ the include of PGXS
@@ -119,18 +124,6 @@ PERL=@PERL@
 # see http://trac.osgeo.org/postgis/ticket/1158#comment:57
 SHLIB_LINK := $(SHLIB_LINK_F) $(SHLIB_LINK)
 
-# PGXS override feature. The ability to allow PostGIS to install itself
-# in a versioned directory is only available in PostgreSQL >= 8.5. To
-# do this by default on older PostgreSQL versions, we need to override
-# the existing PGXS targets.
-#
-# Once PostgreSQL 8.5 becomes the minimum supported version, this entire
-# section and its associated Makefile.pgxs should be removed.
-PGXSOVERRIDE = @PGXSOVERRIDE@
-ifeq ($(PGXSOVERRIDE),1)
-	include Makefile.pgxs
-endif
-
 # If REGRESS=1 passed as a parameter, change the default install paths
 # so that no prefix is included. This allows us to relocate to a temporary
 # directory for regression testing.
@@ -144,7 +137,7 @@ endif
 # Make all PostGIS objects depend upon liblwgeom, so that if an underlying
 # change is made, a PostGIS rebuild is triggered.
 #
-# Also they are all dependent on postgis_config.h 
+# Also they are all dependent on postgis_config.h
 # and thus postgis_svn_revision.h
 #
 $(PG_OBJS): ../liblwgeom/.libs/liblwgeom.a ../libpgcommon/libpgcommon.a ../postgis_config.h ../postgis_svn_revision.h
@@ -153,10 +146,10 @@ $(PG_OBJS): ../liblwgeom/.libs/liblwgeom.a ../libpgcommon/libpgcommon.a ../postg
 	$(MAKE) -C .. postgis_svn_revision.h
 
 ../liblwgeom/.libs/liblwgeom.a:
-	make -C ../liblwgeom liblwgeom.la
+	$(MAKE) -C ../liblwgeom liblwgeom.la
 
 ../libpgcommon/libpgcommon.a:
-	make -C ../libpgcommon libpgcommon.a
+	$(MAKE) -C ../libpgcommon libpgcommon.a
 
 # Borrow the $libdir substitution from PGXS but customise by running the preprocessor
 # and adding the version number
@@ -164,32 +157,35 @@ $(PG_OBJS): ../liblwgeom/.libs/liblwgeom.a ../libpgcommon/libpgcommon.a ../postg
 	$(SQLPP) -I../libpgcommon $< | grep -v '^#' | \
 	$(PERL) -lpe "s'MODULE_PATHNAME'\$$libdir/postgis- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@'g" > $@
 
-postgis_upgrade_20_21.sql.in: postgis_drop_before.sql postgis.sql postgis_drop_after.sql
-	cat $^ > $@
-postgis_upgrade_20_21.sql: postgis_upgrade_20_21.sql.in ../utils/postgis_proc_upgrade.pl 
-	$(PERL) ../utils/postgis_proc_upgrade.pl $< 2.0 > $@
-	
-#this is same as 20_21 until we release a 2.1.0	
-postgis_upgrade_21_minor.sql: postgis_upgrade_20_21.sql
-	cp $< $@
+postgis_upgrade.sql.in: postgis.sql ../utils/postgis_proc_upgrade.pl
+	$(PERL) ../utils/postgis_proc_upgrade.pl $< UNUSED > $@
 
-# Generate any .sql.in files from .sql.in.c files by running them through the SQL pre-processor 
-#$(SQL_OBJS): %.in: %.in.c
-# $(SQLPP) -I../libpgcommon $< | grep -v '^#' > $@
+postgis_upgrade.sql: postgis_drop_before.sql postgis_upgrade.sql.in postgis_drop_after.sql
+	echo "BEGIN;" > $@
+	cat $^ >> $@
+	echo "COMMIT;" >> $@
+
+sfcgal_upgrade.sql.in: sfcgal.sql ../utils/postgis_proc_upgrade.pl 
+	$(PERL) ../utils/postgis_proc_upgrade.pl $< UNUSED > $@
+
+sfcgal_upgrade.sql: sfcgal_upgrade.sql.in postgis_drop_after.sql
+	cat $^ > $@
 
 # SQL objects are also dependent on postgis_config.h for PostgreSQL version
 $(SQL_OBJS): ../postgis_config.h ../postgis_svn_revision.h
 
-#postgis.sql.in: sqldefines.h long_xact.sql.in.c geography.sql.in.c 
+#postgis.sql.in: sqldefines.h long_xact.sql.in.c geography.sql.in.c
 
-uninstall_postgis.sql: postgis.sql ../utils/create_undef.pl 
+uninstall_postgis.sql: postgis.sql ../utils/create_undef.pl
 	$(PERL) ../utils/create_undef.pl $< $(POSTGIS_PGSQL_VERSION) > $@
 
-uninstall_legacy.sql: legacy.sql ../utils/create_undef.pl 
+uninstall_legacy.sql: legacy.sql ../utils/create_undef.pl
 	$(PERL) ../utils/create_undef.pl $< $(POSTGIS_PGSQL_VERSION) > $@
 
-uninstall_sfcgal.sql: sfcgal.sql ../utils/create_undef.pl 
+uninstall_sfcgal.sql: sfcgal.sql ../utils/create_undef.pl
 	$(PERL) ../utils/create_undef.pl $< $(POSTGIS_PGSQL_VERSION) > $@
 
 distclean: clean
 	rm -f Makefile
+
+maintainer-clean: distclean
diff --git a/postgis/Makefile.pgxs b/postgis/Makefile.pgxs
deleted file mode 100644
index f7ffc8e..0000000
--- a/postgis/Makefile.pgxs
+++ /dev/null
@@ -1,102 +0,0 @@
-#
-# PostGIS PGXS override file for PostgreSQL <= 8.5
-# (updates relevant targets for MODULEDIR as per the
-# PostgreSQL 8.5 PGXS Makefile)
-#
-
-ifdef MODULEDIR
-datamoduledir = $(MODULEDIR)
-docmoduledir = $(MODULEDIR)
-else
-datamoduledir = contrib
-docmoduledir = contrib
-endif
-
-install: all installdirs
-ifneq (,$(DATA)$(DATA_built))
-	@for file in $(addprefix $(srcdir)/, $(DATA)) $(DATA_built); do \
-	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir)'"; \
-	  $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir)'; \
-	done
-endif # DATA
-ifneq (,$(DATA_TSEARCH))
-	@for file in $(addprefix $(srcdir)/, $(DATA_TSEARCH)); do \
-	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/tsearch_data'"; \
-	  $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/tsearch_data'; \
-	done
-endif # DATA_TSEARCH
-ifdef MODULES
-	@for file in $(addsuffix $(DLSUFFIX), $(MODULES)); do \
-	  echo "$(INSTALL_SHLIB) $$file '$(DESTDIR)$(pkglibdir)'"; \
-	  $(INSTALL_SHLIB) $$file '$(DESTDIR)$(pkglibdir)'; \
-	done
-endif # MODULES
-ifdef DOCS
-ifdef docdir
-	@for file in $(addprefix $(srcdir)/, $(DOCS)); do \
-	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/$(docmoduledir)'"; \
-	  $(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/$(docmoduledir)'; \
-	done
-endif # docdir
-endif # DOCS
-ifdef PROGRAM
-	$(INSTALL_PROGRAM) $(PROGRAM)$(X) '$(DESTDIR)$(bindir)'
-endif # PROGRAM
-ifdef SCRIPTS
-	@for file in $(addprefix $(srcdir)/, $(SCRIPTS)); do \
-	  echo "$(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'"; \
-	  $(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'; \
-	done
-endif # SCRIPTS
-ifdef SCRIPTS_built
-	@for file in $(SCRIPTS_built); do \
-	  echo "$(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'"; \
-	  $(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'; \
-	done
-endif # SCRIPTS_built
-ifdef MODULE_big
-	$(INSTALL_SHLIB) $(shlib) '$(DESTDIR)$(pkglibdir)/$(MODULE_big)$(DLSUFFIX)'
-endif # MODULE_big
-
-installdirs:
-ifneq (,$(DATA)$(DATA_built))
-	$(mkinstalldirs) '$(DESTDIR)$(datadir)/$(datamoduledir)'
-endif
-ifneq (,$(DATA_TSEARCH))
-	$(mkinstalldirs) '$(DESTDIR)$(datadir)/tsearch_data'
-endif
-ifneq (,$(MODULES))
-	$(mkinstalldirs) '$(DESTDIR)$(pkglibdir)'
-endif
-ifdef DOCS
-ifdef docdir
-	$(mkinstalldirs) '$(DESTDIR)$(docdir)/$(docmoduledir)'
-endif # docdir
-endif # DOCS
-ifneq (,$(PROGRAM)$(SCRIPTS)$(SCRIPTS_built))
-	$(mkinstalldirs) '$(DESTDIR)$(bindir)'
-endif
-
-uninstall:
-ifneq (,$(DATA)$(DATA_built))
-	rm -f $(addprefix '$(DESTDIR)$(datadir)/$(datamoduledir)'/, $(notdir $(DATA) $(DATA_built)))
-endif
-ifneq (,$(DATA_TSEARCH))
-	rm -f $(addprefix '$(DESTDIR)$(datadir)/tsearch_data'/, $(notdir $(DATA_TSEARCH)))
-endif
-ifdef MODULES
-	rm -f $(addprefix '$(DESTDIR)$(pkglibdir)'/, $(addsuffix $(DLSUFFIX), $(MODULES)))
-endif
-ifdef DOCS
-	rm -f $(addprefix '$(DESTDIR)$(docdir)/$(docmoduledir)'/, $(DOCS))
-endif
-ifdef PROGRAM
-	rm -f '$(DESTDIR)$(bindir)/$(PROGRAM)$(X)'
-endif
-ifdef SCRIPTS
-	rm -f $(addprefix '$(DESTDIR)$(bindir)'/, $(SCRIPTS))
-endif
-ifdef SCRIPTS_built
-	rm -f $(addprefix '$(DESTDIR)$(bindir)'/, $(SCRIPTS_built))
-endif
-
diff --git a/postgis/geography.h b/postgis/geography.h
index 4cc1cfb..f3d3ac3 100644
--- a/postgis/geography.h
+++ b/postgis/geography.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: geography.h 13367 2015-03-20 13:53:44Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
diff --git a/postgis/geography.sql.in b/postgis/geography.sql.in
index f7f6321..d9d2dfb 100644
--- a/postgis/geography.sql.in
+++ b/postgis/geography.sql.in
@@ -1,5 +1,4 @@
 ---------------------------------------------------------------------------
--- $Id: geography.sql.in 12890 2014-08-16 05:23:10Z robe $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -248,6 +247,25 @@ CREATE OPERATOR && (
 	JOIN = gserialized_gist_joinsel_nd	
 );
 
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION geography_distance_knn(geography, geography)
+  RETURNS float8
+  AS 'MODULE_PATHNAME','geography_distance_knn'
+  LANGUAGE 'c' IMMUTABLE STRICT
+  COST 100;
+
+-- Availability: 2.2.0
+CREATE OPERATOR <-> (
+  LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_distance_knn,
+  COMMUTATOR = '<->'
+);
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION geography_gist_distance(internal, geography, int4) 
+	RETURNS float8 
+	AS 'MODULE_PATHNAME' ,'gserialized_gist_geog_distance'
+	LANGUAGE 'c';
+
 
 -- Availability: 1.5.0
 CREATE OPERATOR CLASS gist_geography_ops
@@ -257,6 +275,9 @@ CREATE OPERATOR CLASS gist_geography_ops
 --	OPERATOR        6        ~=	,
 --	OPERATOR        7        ~	,
 --	OPERATOR        8        @	,
+-- Availability: 2.2.0
+	OPERATOR        13       <-> FOR ORDER BY pg_catalog.float_ops,
+	FUNCTION        8        geography_gist_distance (internal, geography, int4),
 	FUNCTION        1        geography_gist_consistent (internal, geography, int4),
 	FUNCTION        2        geography_gist_union (bytea, internal),
 	FUNCTION        3        geography_gist_compress (internal),
@@ -271,32 +292,37 @@ CREATE OPERATOR CLASS gist_geography_ops
 -- For sorting and grouping
 -- Availability: 1.5.0
 -- ---------- ---------- ---------- ---------- ---------- ---------- ----------
-
+-- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION geography_lt(geography, geography)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'geography_lt'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION geography_le(geography, geography)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'geography_le'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION geography_gt(geography, geography)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'geography_gt'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 1.5.0	
 CREATE OR REPLACE FUNCTION geography_ge(geography, geography)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'geography_ge'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 1.5.0	
 CREATE OR REPLACE FUNCTION geography_eq(geography, geography)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'geography_eq'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 1.5.0	
 CREATE OR REPLACE FUNCTION geography_cmp(geography, geography)
 	RETURNS integer
 	AS 'MODULE_PATHNAME', 'geography_cmp'
@@ -305,36 +331,42 @@ CREATE OR REPLACE FUNCTION geography_cmp(geography, geography)
 --
 -- Sorting operators for Btree
 --
-
+-- Availability: 1.5.0
 CREATE OPERATOR < (
 	LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_lt,
 	COMMUTATOR = '>', NEGATOR = '>=',
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
+-- Availability: 1.5.0
 CREATE OPERATOR <= (
 	LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_le,
 	COMMUTATOR = '>=', NEGATOR = '>',
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
+-- Availability: 1.5.0
 CREATE OPERATOR = (
 	LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_eq,
 	COMMUTATOR = '=', -- we might implement a faster negator here
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
+-- Availability: 1.5.0
 CREATE OPERATOR >= (
 	LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_ge,
 	COMMUTATOR = '<=', NEGATOR = '<',
 	RESTRICT = contsel, JOIN = contjoinsel
 );
+
+-- Availability: 1.5.0
 CREATE OPERATOR > (
 	LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_gt,
 	COMMUTATOR = '<', NEGATOR = '<=',
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
+-- Availability: 1.5.0
 CREATE OPERATOR CLASS btree_geography_ops
 	DEFAULT FOR TYPE geography USING btree AS
 	OPERATOR	1	< ,
@@ -509,7 +541,8 @@ CREATE OR REPLACE FUNCTION ST_Distance(text, text)
 CREATE OR REPLACE FUNCTION _ST_Expand(geography, float8)
 	RETURNS geography
 	AS 'MODULE_PATHNAME','geography_expand'
-	LANGUAGE 'c' IMMUTABLE STRICT;
+	LANGUAGE 'c' IMMUTABLE STRICT
+	COST 50;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_DWithin(geography, geography, float8, boolean)
@@ -769,7 +802,18 @@ CREATE OR REPLACE FUNCTION ST_GeoHash(geog geography, maxchars int4 DEFAULT 0)
 	AS 'MODULE_PATHNAME', 'ST_GeoHash'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_SRID(geog geography)
+	RETURNS int4
+	AS 'MODULE_PATHNAME', 'LWGEOM_get_srid'
+	LANGUAGE 'c' IMMUTABLE STRICT;
 	
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_SetSRID(geog geography, srid int4)
+	RETURNS geography
+	AS 'MODULE_PATHNAME', 'LWGEOM_set_srid'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+  
 -----------------------------------------------------------------------------
 
 
diff --git a/postgis/geography_btree.c b/postgis/geography_btree.c
index b42e1b5..8250fa4 100644
--- a/postgis/geography_btree.c
+++ b/postgis/geography_btree.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: geography_btree.c 13436 2015-04-23 18:19:47Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -178,8 +177,8 @@ PG_FUNCTION_INFO_V1(geography_eq);
 Datum geography_eq(PG_FUNCTION_ARGS)
 {
 	/* Perfect equals test based on hash */
-	GSERIALIZED *g1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *g2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *g1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *g2 = PG_GETARG_GSERIALIZED_P(1);
 
 	uint32 h1 = geography_hash(g1);
 	uint32 h2 = geography_hash(g2);
@@ -210,7 +209,7 @@ Datum geography_eq(PG_FUNCTION_ARGS)
 
 	/* Must be able to build box for each argument (ie, not empty geometry) */
 	if ( ! gserialized_datum_get_gidx_p(PG_GETARG_DATUM(0), gbox1) ||
-	        ! gserialized_datum_get_gidx_p(PG_GETARG_DATUM(1), gbox2) )
+	     ! gserialized_datum_get_gidx_p(PG_GETARG_DATUM(1), gbox2) )
 	{
 		PG_RETURN_BOOL(FALSE);
 	}
@@ -241,7 +240,7 @@ Datum geography_cmp(PG_FUNCTION_ARGS)
 
 	/* Must be able to build box for each argument (ie, not empty geometry) */
 	if ( ! gserialized_datum_get_gidx_p(PG_GETARG_DATUM(0), gbox1) ||
-	     ! gserialized_datum_get_gidx_p(PG_GETARG_DATUM(1), gbox2) )
+	        ! gserialized_datum_get_gidx_p(PG_GETARG_DATUM(1), gbox2) )
 	{
 		PG_RETURN_BOOL(FALSE);
 	}
diff --git a/postgis/geography_inout.c b/postgis/geography_inout.c
index c6a8c1e..1308fae 100644
--- a/postgis/geography_inout.c
+++ b/postgis/geography_inout.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: geography_inout.c 13659 2015-06-11 19:47:14Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009-2011 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -180,7 +179,7 @@ Datum geography_out(PG_FUNCTION_ARGS)
 	GSERIALIZED *g = NULL;
 	char *hexwkb;
 
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	g = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom = lwgeom_from_gserialized(g);
 	hexwkb = lwgeom_to_hexwkb(lwgeom, WKB_EXTENDED, 0);
 	lwgeom_free(lwgeom);
@@ -223,7 +222,7 @@ Datum geography_as_gml(PG_FUNCTION_ARGS)
 
 	/* Get the geography */
 	if ( PG_ARGISNULL(1) ) PG_RETURN_NULL();
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Convert to lwgeom so we can run the old functions */
 	lwgeom = lwgeom_from_gserialized(g);
@@ -341,7 +340,7 @@ Datum geography_as_kml(PG_FUNCTION_ARGS)
 
 	/* Get the geometry */
 	if ( PG_ARGISNULL(1) ) PG_RETURN_NULL();
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Convert to lwgeom so we can run the old functions */
 	lwgeom = lwgeom_from_gserialized(g);
@@ -407,7 +406,7 @@ Datum geography_as_svg(PG_FUNCTION_ARGS)
 
 	if ( PG_ARGISNULL(0) ) PG_RETURN_NULL();
 
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	g = PG_GETARG_GSERIALIZED_P(0);
 
 	/* Convert to lwgeom so we can run the old functions */
 	lwgeom = lwgeom_from_gserialized(g);
@@ -463,7 +462,7 @@ Datum geography_as_geojson(PG_FUNCTION_ARGS)
 
 	/* Get the geography */
 	if (PG_ARGISNULL(1) ) PG_RETURN_NULL();
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Convert to lwgeom so we can run the old functions */
 	lwgeom = lwgeom_from_gserialized(g);
@@ -533,6 +532,9 @@ Datum geography_from_text(PG_FUNCTION_ARGS)
 	if ( lwgeom_parse_wkt(&lwg_parser_result, wkt, LW_PARSER_CHECK_ALL) == LW_FAILURE )
 		PG_PARSER_ERROR(lwg_parser_result);
 
+	/* Error on any SRID != default */
+	srid_is_latlong(fcinfo, lwg_parser_result.geom->srid);
+
 	/* Clean up string */
 	pfree(wkt);
 	g_ser = gserialized_geography_from_lwgeom(lwg_parser_result.geom, -1);
@@ -556,7 +558,10 @@ Datum geography_from_binary(PG_FUNCTION_ARGS)
 	LWGEOM *lwgeom = lwgeom_from_wkb(wkb, wkb_size, LW_PARSER_CHECK_NONE);
 	
 	if ( ! lwgeom )
-		lwerror("Unable to parse WKB");
+		lwpgerror("Unable to parse WKB");
+
+	/* Error on any SRID != default */
+	srid_is_latlong(fcinfo, lwgeom->srid);
  		
 	gser = gserialized_geography_from_lwgeom(lwgeom, -1);
 	lwgeom_free(lwgeom);
@@ -567,7 +572,7 @@ Datum geography_from_binary(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(geography_from_geometry);
 Datum geography_from_geometry(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED*)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P_COPY(0);
 	LWGEOM *lwgeom = NULL;
 	GSERIALIZED *g_ser = NULL;
 
@@ -620,7 +625,7 @@ Datum geometry_from_geography(PG_FUNCTION_ARGS)
 {
 	LWGEOM *lwgeom = NULL;
 	GSERIALIZED *ret = NULL;
-	GSERIALIZED *g_ser = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *g_ser = PG_GETARG_GSERIALIZED_P(0);
 
 	lwgeom = lwgeom_from_gserialized(g_ser);
 
@@ -678,7 +683,7 @@ Datum geography_send(PG_FUNCTION_ARGS)
 	uint8_t *wkb;
 	bytea *result;
 
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	g = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom = lwgeom_from_gserialized(g);
 	wkb = lwgeom_to_wkb(lwgeom, WKB_EXTENDED, &size_result);
 	lwgeom_free(lwgeom);
diff --git a/postgis/geography_measurement.c b/postgis/geography_measurement.c
index ce37004..84acdd9 100644
--- a/postgis/geography_measurement.c
+++ b/postgis/geography_measurement.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: geography_inout.c 4535 2009-09-28 18:16:21Z colivier $
  *
  * PostGIS - Spatial Types for PostgreSQL
  *
@@ -27,8 +26,17 @@
 #include "geography_measurement_trees.h" /* For circ_tree caching */
 #include "lwgeom_transform.h" /* For SRID functions */
 
+#if PROJ_GEODESIC
+/* round to 10 nm precision */
+#define INVMINDIST 1.0e8
+#else
+/* round to 100 nm precision */
+#define INVMINDIST 1.0e9
+#endif
+
 Datum geography_distance(PG_FUNCTION_ARGS);
 Datum geography_distance_uncached(PG_FUNCTION_ARGS);
+Datum geography_distance_knn(PG_FUNCTION_ARGS);
 Datum geography_distance_tree(PG_FUNCTION_ARGS);
 Datum geography_dwithin(PG_FUNCTION_ARGS);
 Datum geography_dwithin_uncached(PG_FUNCTION_ARGS);
@@ -43,6 +51,66 @@ Datum geography_project(PG_FUNCTION_ARGS);
 Datum geography_azimuth(PG_FUNCTION_ARGS);
 Datum geography_segmentize(PG_FUNCTION_ARGS);
 
+
+PG_FUNCTION_INFO_V1(geography_distance_knn);
+Datum geography_distance_knn(PG_FUNCTION_ARGS)
+{
+	LWGEOM *lwgeom1 = NULL;
+	LWGEOM *lwgeom2 = NULL;
+	GSERIALIZED *g1 = NULL;
+	GSERIALIZED *g2 = NULL;
+	double distance;
+	double tolerance = FP_TOLERANCE;
+	bool use_spheroid = false; /* must use sphere, can't get index to harmonize with spheroid */ 
+	SPHEROID s;
+
+	/* Get our geometry objects loaded into memory. */
+	g1 = PG_GETARG_GSERIALIZED_P(0);
+	g2 = PG_GETARG_GSERIALIZED_P(1);
+
+	/* Initialize spheroid */
+	spheroid_init_from_srid(fcinfo, gserialized_get_srid(g1), &s);
+
+	error_if_srid_mismatch(gserialized_get_srid(g1), gserialized_get_srid(g2));
+	
+	/* Set to sphere if requested */
+	if ( ! use_spheroid )
+		s.a = s.b = s.radius;
+
+	lwgeom1 = lwgeom_from_gserialized(g1);
+	lwgeom2 = lwgeom_from_gserialized(g2);
+
+	/* Return NULL on empty arguments. */
+	if ( lwgeom_is_empty(lwgeom1) || lwgeom_is_empty(lwgeom2) )
+	{
+		PG_FREE_IF_COPY(g1, 0);
+		PG_FREE_IF_COPY(g2, 1);
+		PG_RETURN_NULL();
+	}
+
+	/* Make sure we have boxes attached */
+	lwgeom_add_bbox_deep(lwgeom1, NULL);
+	lwgeom_add_bbox_deep(lwgeom2, NULL);
+	
+	distance = lwgeom_distance_spheroid(lwgeom1, lwgeom2, &s, tolerance);
+
+	POSTGIS_DEBUGF(2, "[GIST] '%s' got distance %g", __func__, distance);
+
+	/* Clean up */
+	lwgeom_free(lwgeom1);
+	lwgeom_free(lwgeom2);
+	PG_FREE_IF_COPY(g1, 0);
+	PG_FREE_IF_COPY(g2, 1);
+
+	/* Something went wrong, negative return... should already be eloged, return NULL */
+	if ( distance < 0.0 )
+	{
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_FLOAT8(distance);
+}
+
 /*
 ** geography_distance_uncached(GSERIALIZED *g1, GSERIALIZED *g2, double tolerance, boolean use_spheroid)
 ** returns double distance in meters
@@ -55,19 +123,23 @@ Datum geography_distance_uncached(PG_FUNCTION_ARGS)
 	GSERIALIZED *g1 = NULL;
 	GSERIALIZED *g2 = NULL;
 	double distance;
-	/* double tolerance; */
-	bool use_spheroid;
+	double tolerance = FP_TOLERANCE;
+	bool use_spheroid = true; 
 	SPHEROID s;
 
 	/* Get our geometry objects loaded into memory. */
-	g1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	g2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g1 = PG_GETARG_GSERIALIZED_P(0);
+	g2 = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Read our tolerance value. */
-	/* tolerance = PG_GETARG_FLOAT8(2); */
+	if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
+		tolerance = PG_GETARG_FLOAT8(2);
     
 	/* Read our calculation type. */
-	use_spheroid = PG_GETARG_BOOL(3);
+	if ( PG_NARGS() > 3 && ! PG_ARGISNULL(3) )
+		use_spheroid = PG_GETARG_BOOL(3);
+
+	error_if_srid_mismatch(gserialized_get_srid(g1), gserialized_get_srid(g2));
 
 	/* Initialize spheroid */
 	spheroid_init_from_srid(fcinfo, gserialized_get_srid(g1), &s);
@@ -91,7 +163,9 @@ Datum geography_distance_uncached(PG_FUNCTION_ARGS)
 	lwgeom_add_bbox_deep(lwgeom1, NULL);
 	lwgeom_add_bbox_deep(lwgeom2, NULL);
 	
-	distance = lwgeom_distance_spheroid(lwgeom1, lwgeom2, &s, FP_TOLERANCE);
+	distance = lwgeom_distance_spheroid(lwgeom1, lwgeom2, &s, tolerance);
+
+	POSTGIS_DEBUGF(2, "[GIST] '%s' got distance %g", __func__, distance);
 
 	/* Clean up */
 	lwgeom_free(lwgeom1);
@@ -119,20 +193,24 @@ Datum geography_distance(PG_FUNCTION_ARGS)
 	GSERIALIZED* g1 = NULL;
 	GSERIALIZED* g2 = NULL;
 	double distance;
-	double tolerance;
-	bool use_spheroid;
+	double tolerance = 0.0;
+	bool use_spheroid = true;
 	SPHEROID s;
 
 	/* Get our geometry objects loaded into memory. */
-	g1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	g2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g1 = PG_GETARG_GSERIALIZED_P(0);
+	g2 = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Read our tolerance value. */
-	tolerance = PG_GETARG_FLOAT8(2);
+	if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
+		tolerance = PG_GETARG_FLOAT8(2);
 
 	/* Read our calculation type. */
-	use_spheroid = PG_GETARG_BOOL(3);
+	if ( PG_NARGS() > 3 && ! PG_ARGISNULL(3) )
+		use_spheroid = PG_GETARG_BOOL(3);
 
+	error_if_srid_mismatch(gserialized_get_srid(g1), gserialized_get_srid(g2));
+	
 	/* Initialize spheroid */
 	spheroid_init_from_srid(fcinfo, gserialized_get_srid(g1), &s);
 	
@@ -162,6 +240,9 @@ Datum geography_distance(PG_FUNCTION_ARGS)
 	PG_FREE_IF_COPY(g1, 0);
 	PG_FREE_IF_COPY(g2, 1);
 
+	/* Knock off any funny business at the nanometer level, ticket #2168 */
+	distance = round(distance * INVMINDIST) / INVMINDIST;
+
 	/* Something went wrong, negative return... should already be eloged, return NULL */
 	if ( distance < 0.0 )
 	{
@@ -169,9 +250,6 @@ Datum geography_distance(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
-    /* Knock off any funny business at the micrometer level, ticket #2168 */
-    distance = round(distance * 10e8) / 10e8;
-
 	PG_RETURN_FLOAT8(distance);
 }
 
@@ -185,21 +263,25 @@ Datum geography_dwithin(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *g1 = NULL;
 	GSERIALIZED *g2 = NULL;
-	double tolerance;
+	double tolerance = 0.0;
 	double distance;
-	bool use_spheroid;
+	bool use_spheroid = true;
 	SPHEROID s;
 	int dwithin = LW_FALSE;
 
 	/* Get our geometry objects loaded into memory. */
-	g1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	g2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g1 = PG_GETARG_GSERIALIZED_P(0);
+	g2 = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Read our tolerance value. */
-	tolerance = PG_GETARG_FLOAT8(2);
+	if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
+		tolerance = PG_GETARG_FLOAT8(2);
 
 	/* Read our calculation type. */
-	use_spheroid = PG_GETARG_BOOL(3);
+	if ( PG_NARGS() > 3 && ! PG_ARGISNULL(3) )
+		use_spheroid = PG_GETARG_BOOL(3);
+
+	error_if_srid_mismatch(gserialized_get_srid(g1), gserialized_get_srid(g2));
 
 	/* Initialize spheroid */
 	spheroid_init_from_srid(fcinfo, gserialized_get_srid(g1), &s);
@@ -247,14 +329,14 @@ Datum geography_distance_tree(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *g1 = NULL;
 	GSERIALIZED *g2 = NULL;
-	double tolerance;
+	double tolerance = 0.0;
 	double distance;
-	bool use_spheroid;
+	bool use_spheroid = true;
 	SPHEROID s;
 
 	/* Get our geometry objects loaded into memory. */
-	g1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	g2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g1 = PG_GETARG_GSERIALIZED_P(0);
+	g2 = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Return FALSE on empty arguments. */
 	if ( gserialized_is_empty(g1) || gserialized_is_empty(g2) )
@@ -265,11 +347,15 @@ Datum geography_distance_tree(PG_FUNCTION_ARGS)
 	}
 
 	/* Read our tolerance value. */
-	tolerance = PG_GETARG_FLOAT8(2);
+	if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
+		tolerance = PG_GETARG_FLOAT8(2);
 
 	/* Read our calculation type. */
-	use_spheroid = PG_GETARG_BOOL(3);
+	if ( PG_NARGS() > 3 && ! PG_ARGISNULL(3) )
+		use_spheroid = PG_GETARG_BOOL(3);
 
+	error_if_srid_mismatch(gserialized_get_srid(g1), gserialized_get_srid(g2));
+	
 	/* Initialize spheroid */
 	spheroid_init_from_srid(fcinfo, gserialized_get_srid(g1), &s);
 
@@ -299,20 +385,24 @@ Datum geography_dwithin_uncached(PG_FUNCTION_ARGS)
 	LWGEOM *lwgeom2 = NULL;
 	GSERIALIZED *g1 = NULL;
 	GSERIALIZED *g2 = NULL;
-	double tolerance;
+	double tolerance = 0.0;
 	double distance;
-	bool use_spheroid;
+	bool use_spheroid = true;
 	SPHEROID s;
 
 	/* Get our geometry objects loaded into memory. */
-	g1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	g2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g1 = PG_GETARG_GSERIALIZED_P(0);
+	g2 = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Read our tolerance value. */
-	tolerance = PG_GETARG_FLOAT8(2);
+	if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
+		tolerance = PG_GETARG_FLOAT8(2);
 
 	/* Read our calculation type. */
-	use_spheroid = PG_GETARG_BOOL(3);
+	if ( PG_NARGS() > 3 && ! PG_ARGISNULL(3) )
+		use_spheroid = PG_GETARG_BOOL(3);
+
+	error_if_srid_mismatch(gserialized_get_srid(g1), gserialized_get_srid(g2));
 
 	/* Initialize spheroid */
 	spheroid_init_from_srid(fcinfo, gserialized_get_srid(g1), &s);
@@ -365,7 +455,7 @@ Datum geography_expand(PG_FUNCTION_ARGS)
 	double distance;
 
 	/* Get a wholly-owned pointer to the geography */
-	g = (GSERIALIZED*)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+	g = PG_GETARG_GSERIALIZED_P_COPY(0);
 
 	/* Read our distance value and normalize to unit-sphere. */
 	distance = PG_GETARG_FLOAT8(1) / WGS84_RADIUS;
@@ -402,7 +492,7 @@ Datum geography_area(PG_FUNCTION_ARGS)
 	SPHEROID s;
 
 	/* Get our geometry object loaded into memory. */
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	g = PG_GETARG_GSERIALIZED_P(0);
 
 	/* Read our calculation type */
 	use_spheroid = PG_GETARG_BOOL(1);
@@ -424,6 +514,7 @@ Datum geography_area(PG_FUNCTION_ARGS)
 	else
 		lwgeom_calculate_gbox_geodetic(lwgeom, &gbox);
 
+#if ! PROJ_GEODESIC
 	/* Test for cases that are currently not handled by spheroid code */
 	if ( use_spheroid )
 	{
@@ -434,6 +525,7 @@ Datum geography_area(PG_FUNCTION_ARGS)
 		if ( gbox.zmax > 0.0 && gbox.zmin < 0.0 )
 			use_spheroid = LW_FALSE;
 	}
+#endif /* if ! PROJ_GEODESIC */
 
 	/* User requests spherical calculation, turn our spheroid into a sphere */
 	if ( ! use_spheroid )
@@ -471,17 +563,17 @@ Datum geography_perimeter(PG_FUNCTION_ARGS)
 	double length;
 	bool use_spheroid = LW_TRUE;
 	SPHEROID s;
-    int type;
+	int type;
 
 	/* Get our geometry object loaded into memory. */
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	g = PG_GETARG_GSERIALIZED_P(0);
 	
 	/* Only return for area features. */
-    type = gserialized_get_type(g);
-    if ( ! (type == POLYGONTYPE || type == MULTIPOLYGONTYPE || type == COLLECTIONTYPE) )
-    {
+	type = gserialized_get_type(g);
+	if ( ! (type == POLYGONTYPE || type == MULTIPOLYGONTYPE || type == COLLECTIONTYPE) )
+	{
 		PG_RETURN_FLOAT8(0.0);
-    }
+	}
 	
 	lwgeom = lwgeom_from_gserialized(g);
 
@@ -533,7 +625,7 @@ Datum geography_length(PG_FUNCTION_ARGS)
 	SPHEROID s;
 
 	/* Get our geometry object loaded into memory. */
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	g = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom = lwgeom_from_gserialized(g);
 
 	/* EMPTY things have no length */
@@ -585,7 +677,7 @@ Datum geography_point_outside(PG_FUNCTION_ARGS)
 	POINT2D pt;
 
 	/* Get our geometry object loaded into memory. */
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	g = PG_GETARG_GSERIALIZED_P(0);
 	
 	/* We need the bounding box to get an outside point for area algorithm */
 	if ( gserialized_get_gbox_p(g, &gbox) == LW_FAILURE )
@@ -627,8 +719,8 @@ Datum geography_covers(PG_FUNCTION_ARGS)
 	int result = LW_FALSE;
 
 	/* Get our geometry objects loaded into memory. */
-	g1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	g2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g1 = PG_GETARG_GSERIALIZED_P(0);
+	g2 = PG_GETARG_GSERIALIZED_P(1);
 
 	type1 = gserialized_get_type(g1);
 	type2 = gserialized_get_type(g2);
@@ -645,6 +737,8 @@ Datum geography_covers(PG_FUNCTION_ARGS)
 	lwgeom1 = lwgeom_from_gserialized(g1);
 	lwgeom2 = lwgeom_from_gserialized(g2);
 
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
+
 	/* EMPTY never intersects with another geometry */
 	if ( lwgeom_is_empty(lwgeom1) || lwgeom_is_empty(lwgeom2) )
 	{
@@ -831,24 +925,25 @@ Datum geography_project(PG_FUNCTION_ARGS)
 	LWPOINT *lwp_projected;
 	GSERIALIZED *g = NULL;
 	GSERIALIZED *g_out = NULL;
-	double azimuth, distance;
+	double azimuth = 0.0;
+	double distance;
 	SPHEROID s;
 	uint32_t type;
 
 	/* Return NULL on NULL distance or geography */
-	if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) )
+	if ( PG_NARGS() < 2 || PG_ARGISNULL(0) || PG_ARGISNULL(1) )
 		PG_RETURN_NULL();
 	
 	/* Get our geometry object loaded into memory. */
-	g = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	g = PG_GETARG_GSERIALIZED_P(0);
 	
 	/* Only return for points. */
-    type = gserialized_get_type(g);
-    if ( type != POINTTYPE )
-    {
+	type = gserialized_get_type(g);
+	if ( type != POINTTYPE )
+	{
 		elog(ERROR, "ST_Project(geography) is only valid for point inputs");
 		PG_RETURN_NULL();
-    }
+	}
 
 	distance = PG_GETARG_FLOAT8(1); /* Distance in Meters */
 	lwgeom = lwgeom_from_gserialized(g);
@@ -861,9 +956,7 @@ Datum geography_project(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 	
-	if ( PG_ARGISNULL(2) )
-		azimuth = 0.0;
-	else
+	if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
 		azimuth = PG_GETARG_FLOAT8(2); /* Azimuth in Radians */
 
 	/* Initialize spheroid */
@@ -912,17 +1005,17 @@ Datum geography_azimuth(PG_FUNCTION_ARGS)
 	uint32_t type1, type2;
 
 	/* Get our geometry object loaded into memory. */
-	g1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	g2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	g1 = PG_GETARG_GSERIALIZED_P(0);
+	g2 = PG_GETARG_GSERIALIZED_P(1);
 	
 	/* Only return for points. */
-    type1 = gserialized_get_type(g1);
-    type2 = gserialized_get_type(g2);
-    if ( type1 != POINTTYPE || type2 != POINTTYPE )
-    {
+	type1 = gserialized_get_type(g1);
+	type2 = gserialized_get_type(g2);
+	if ( type1 != POINTTYPE || type2 != POINTTYPE )
+	{
 		elog(ERROR, "ST_Azimuth(geography, geography) is only valid for point inputs");
 		PG_RETURN_NULL();
-    }
+	}
 	
 	lwgeom1 = lwgeom_from_gserialized(g1);
 	lwgeom2 = lwgeom_from_gserialized(g2);
@@ -975,14 +1068,14 @@ Datum geography_segmentize(PG_FUNCTION_ARGS)
 	uint32_t type1;
 
 	/* Get our geometry object loaded into memory. */
-	g1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-    type1 = gserialized_get_type(g1);
+	g1 = PG_GETARG_GSERIALIZED_P(0);
+	type1 = gserialized_get_type(g1);
 
 	/* Convert max_seg_length from metric units to radians */
 	max_seg_length = PG_GETARG_FLOAT8(1) / WGS84_RADIUS;
 
 	/* We can't densify points or points, reflect them back */
-    if ( type1 == POINTTYPE || type1 == MULTIPOINTTYPE || gserialized_is_empty(g1) )
+	if ( type1 == POINTTYPE || type1 == MULTIPOINTTYPE || gserialized_is_empty(g1) )
 		PG_RETURN_POINTER(g1);
 
 	/* Deserialize */
diff --git a/postgis/geography_measurement_trees.c b/postgis/geography_measurement_trees.c
index 59f537e..692cdc3 100644
--- a/postgis/geography_measurement_trees.c
+++ b/postgis/geography_measurement_trees.c
@@ -180,7 +180,7 @@ geography_distance_cache_tolerance(FunctionCallInfoData* fcinfo, const GSERIALIZ
 		}
 		else
 		{
-			lwerror("geography_distance_cache this cannot happen!");
+			lwpgerror("geography_distance_cache this cannot happen!");
 			return LW_FAILURE;
 		}
 		
@@ -234,9 +234,13 @@ int
 geography_dwithin_cache(FunctionCallInfoData* fcinfo, const GSERIALIZED* g1, const GSERIALIZED* g2, const SPHEROID* s, double tolerance, int* dwithin)
 {
 	double distance;
-	/* TODO!!! Why does the tolerance stopper in the circ_tree_distance_tree_internal arbitrarily screw up? */
-/*	if ( LW_SUCCESS == geography_distance_cache_tolerance(fcinfo, g1, g2, s, tolerance, &distance) ) */
-	if ( LW_SUCCESS == geography_distance_cache_tolerance(fcinfo, g1, g2, s, FP_TOLERANCE, &distance) ) 
+	/* Ticket #2422, difference between sphere and spheroid distance can trip up the */
+	/* threshold shortcircuit (stopping a calculation before the spheroid distance is actually */
+	/* below the threshold. Lower in the code line, we actually reduce the threshold a little to */
+	/* avoid this. */
+	/* Correct fix: propogate the spheroid information all the way to the bottom of the calculation */
+	/* so the "right thing" can be done in all cases. */
+	if ( LW_SUCCESS == geography_distance_cache_tolerance(fcinfo, g1, g2, s, tolerance, &distance) )
 	{
 		*dwithin = (distance <= (tolerance + FP_TOLERANCE) ? LW_TRUE : LW_FALSE);
 		return LW_SUCCESS;
diff --git a/postgis/geometry_inout.c b/postgis/geometry_inout.c
index 26a994f..6919736 100644
--- a/postgis/geometry_inout.c
+++ b/postgis/geometry_inout.c
@@ -57,7 +57,7 @@ Datum geometry_to_point(PG_FUNCTION_ARGS)
 	if ( PG_ARGISNULL(0) )
 		PG_RETURN_NULL();
 	
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	
 	if ( gserialized_get_type(geom) != POINTTYPE )
 		elog(ERROR, "geometry_to_point only accepts Points");
@@ -88,7 +88,7 @@ Datum geometry_to_path(PG_FUNCTION_ARGS)
 	GSERIALIZED *geom;
 	POINTARRAY *pa;
 	int i;
-	POINT2D pt;
+	const POINT2D *pt;
 	size_t size;
 
 	POSTGIS_DEBUG(2, "geometry_to_path called");
@@ -96,7 +96,7 @@ Datum geometry_to_path(PG_FUNCTION_ARGS)
 	if ( PG_ARGISNULL(0) )
 		PG_RETURN_NULL();
 		
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	
 	if ( gserialized_get_type(geom) != LINETYPE )
 		elog(ERROR, "geometry_to_path only accepts LineStrings");
@@ -116,9 +116,9 @@ Datum geometry_to_path(PG_FUNCTION_ARGS)
 
 	for ( i = 0; i < pa->npoints; i++ )
 	{
-		getPoint2d_p(pa, i, &pt);
-		(path->p[i]).x = pt.x;
-		(path->p[i]).y = pt.y;
+		pt = getPoint2d_cp(pa, i);
+		(path->p[i]).x = pt->x;
+		(path->p[i]).y = pt->y;
 	}
 	
 	lwgeom_free(lwgeom);
@@ -181,7 +181,7 @@ Datum geometry_to_polygon(PG_FUNCTION_ARGS)
 	if ( PG_ARGISNULL(0) )
 		PG_RETURN_NULL();
 		
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	
 	if ( gserialized_get_type(geom) != POLYGONTYPE )
 		elog(ERROR, "geometry_to_polygon only accepts Polygons");
@@ -207,10 +207,9 @@ Datum geometry_to_polygon(PG_FUNCTION_ARGS)
 		
 	for ( i = 0; i < pa->npoints; i++ )
 	{
-		POINT2D pt;
-		getPoint2d_p(pa, i, &pt);
-		(polygon->p[i]).x = pt.x;
-		(polygon->p[i]).y = pt.y;
+		const POINT2D *pt = getPoint2d_cp(pa, i);
+		(polygon->p[i]).x = pt->x;
+		(polygon->p[i]).y = pt->y;
 	}
 
 	lwgeom_free(lwgeom);
diff --git a/postgis/gserialized_estimate.c b/postgis/gserialized_estimate.c
index f5aa190..7c7056a 100644
--- a/postgis/gserialized_estimate.c
+++ b/postgis/gserialized_estimate.c
@@ -56,6 +56,7 @@ dimensionality cases. (2D geometry) &&& (3D column), etc.
 #include "utils/builtins.h"
 #include "utils/syscache.h"
 #include "utils/rel.h"
+#include "utils/selfuncs.h"
 
 #include "../postgis_config.h"
 
@@ -799,6 +800,35 @@ nd_increment(ND_IBOX *ibox, int ndims, int *counter)
 	return TRUE;
 }
 
+static ND_STATS*
+pg_nd_stats_from_tuple(HeapTuple stats_tuple, int mode)
+{
+  int stats_kind = STATISTIC_KIND_ND;
+  int rv, nvalues;
+	float4 *floatptr;
+	ND_STATS *nd_stats;
+
+  /* If we're in 2D mode, set the kind appropriately */
+  if ( mode == 2 ) stats_kind = STATISTIC_KIND_2D;
+
+  /* Then read the geom status histogram from that */
+  rv = get_attstatsslot(stats_tuple, 0, 0, stats_kind, InvalidOid,
+                        NULL, NULL, NULL, &floatptr, &nvalues);
+  if ( ! rv ) {
+    POSTGIS_DEBUGF(2,
+            "no slot of kind %d in stats tuple", stats_kind);
+    return NULL;
+  }
+	
+  /* Clone the stats here so we can release the attstatsslot immediately */
+  nd_stats = palloc(sizeof(float) * nvalues);
+  memcpy(nd_stats, floatptr, sizeof(float) * nvalues);
+
+  /* Clean up */
+  free_attstatsslot(0, NULL, 0, floatptr, nvalues);
+
+  return nd_stats;
+}
 
 /**
 * Pull the stats object from the PgSQL system catalogs. Used
@@ -808,10 +838,7 @@ static ND_STATS*
 pg_get_nd_stats(const Oid table_oid, AttrNumber att_num, int mode)
 {
 	HeapTuple stats_tuple;
-	float4 *floatptr;
 	ND_STATS *nd_stats;
-	int rv, nvalues;
-	int stats_kind = STATISTIC_KIND_ND;
 
 	/* First pull the stats tuple */
 	stats_tuple = SearchSysCache2(STATRELATT, table_oid, att_num);
@@ -820,32 +847,19 @@ pg_get_nd_stats(const Oid table_oid, AttrNumber att_num, int mode)
 		POSTGIS_DEBUGF(2, "stats for \"%s\" do not exist", get_rel_name(table_oid)? get_rel_name(table_oid) : "NULL");
 		return NULL;
 	}
-	
-	/* If we're in 2D mode, set the kind appropriately */
-	if ( mode == 2 )
-		stats_kind = STATISTIC_KIND_2D;
-			
-	/* Then read the geom status histogram from that */
-	rv = get_attstatsslot(stats_tuple, 0, 0, stats_kind, InvalidOid, NULL, NULL, NULL, &floatptr, &nvalues);
-	if ( ! rv )
+
+	nd_stats = pg_nd_stats_from_tuple(stats_tuple, mode);
+	ReleaseSysCache(stats_tuple);
+	if ( ! nd_stats )
 	{
-		ReleaseSysCache(stats_tuple);
-		POSTGIS_DEBUGF(2, "histogram for \"%s\" does not exist?", get_rel_name(table_oid));
-		return NULL;
+		POSTGIS_DEBUGF(2,
+			"histogram for attribute %d of table \"%s\" does not exist?",
+			att_num, get_rel_name(table_oid));
 	}
 	
-	/* Clone the stats here so we can release the attstatsslot immediately */
-	nd_stats = palloc(sizeof(float) * nvalues);
-	memcpy(nd_stats, floatptr, sizeof(float) * nvalues);
-	
-	/* Clean up */
-	free_attstatsslot(0, NULL, 0, floatptr, nvalues);
-	ReleaseSysCache(stats_tuple);
-
 	return nd_stats;
 }
 
-
 /**
 * Pull the stats object from the PgSQL system catalogs. The
 * debugging functions are taking human input (table names)
@@ -1077,9 +1091,15 @@ estimate_join_selectivity(const ND_STATS *s1, const ND_STATS *s2)
 	 */
 	selectivity = val / ntuples_max;
 
-    /* Guard against over-estimates :) */
-    if ( selectivity > 1.0 ) 
-        selectivity = 1.0;
+	/* Guard against over-estimates and crazy numbers :) */
+	if ( isnan(selectivity) || ! isfinite(selectivity) || selectivity < 0.0 )
+	{
+		selectivity = DEFAULT_ND_JOINSEL;
+	}
+	else if ( selectivity > 1.0 )
+	{
+		selectivity = 1.0;
+	}
 	
 	return selectivity;
 }
@@ -1141,7 +1161,7 @@ Datum gserialized_gist_joinsel(PG_FUNCTION_ARGS)
 	/* Only respond to an inner join/unknown context join */
 	if (jointype != JOIN_INNER)
 	{
-		elog(NOTICE, "gserialized_gist_joinsel: jointype %d not supported", jointype);
+		elog(DEBUG1, "%s: jointype %d not supported", __func__, jointype);
 		PG_RETURN_FLOAT8(DEFAULT_ND_JOINSEL);
 	}
 
@@ -1155,7 +1175,7 @@ Datum gserialized_gist_joinsel(PG_FUNCTION_ARGS)
 	/* TODO: handle g1 && ST_Expand(g2) */
 	if (!IsA(arg1, Var) || !IsA(arg2, Var))
 	{
-		elog(DEBUG1, "gserialized_gist_joinsel called with arguments that are not column references");
+		elog(DEBUG1, "%s called with arguments that are not column references", __func__);
 		PG_RETURN_FLOAT8(DEFAULT_ND_JOINSEL);
 	}
 
@@ -1249,8 +1269,9 @@ compute_gserialized_stats_mode(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfu
 	int stats_slot;                     /* What slot is this data going into? (2D vs ND) */
 	int stats_kind;                     /* And this is what? (2D vs ND) */
 
-	/* Initialize sums */
-	memset(&sum, 0, sizeof(ND_BOX));
+	/* Initialize sum and stddev */
+	nd_box_init(&sum);
+	nd_box_init(&stddev);
 
 	/*
 	 * This is where gserialized_analyze_nd
@@ -1285,6 +1306,7 @@ compute_gserialized_stats_mode(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfu
 		GBOX gbox;
 		ND_BOX *nd_box;
 		bool is_null;
+		bool is_copy;
 
 		datum = fetchfunc(stats, i, &is_null);
 
@@ -1298,6 +1320,7 @@ compute_gserialized_stats_mode(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfu
 			
 		/* Read the bounds from the gserialized. */
 		geom = (GSERIALIZED *)PG_DETOAST_DATUM(datum);
+		is_copy = VARATT_IS_EXTENDED(datum);
 		if ( LW_FAILURE == gserialized_get_gbox_p(geom, &gbox) )
 		{
 			/* Skip empties too. */
@@ -1349,6 +1372,10 @@ compute_gserialized_stats_mode(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfu
 
 		/* Increment our "good feature" count */
 		notnull_cnt++;
+		
+		/* Free up memory if our sample geometry was copied */
+		if ( is_copy ) 
+			pfree(geom);
 
 		/* Give backend a chance of interrupting us */
 		vacuum_delay_point();
@@ -2056,8 +2083,8 @@ Datum gserialized_gist_sel(PG_FUNCTION_ARGS)
 	/* int varRelid = PG_GETARG_INT32(3); */
 	int mode = PG_GETARG_INT32(4);
 	
-	Oid relid;
-	ND_STATS *nd_stats;
+	VariableStatData vardata;
+	ND_STATS *nd_stats = NULL;
 
 	Node *other;
 	Var *self;
@@ -2100,25 +2127,6 @@ Datum gserialized_gist_sel(PG_FUNCTION_ARGS)
 		PG_RETURN_FLOAT8(DEFAULT_ND_SEL);
 	}
 
-	/*
-	* We don't have a nice <const> && <var> or <var> && <const> 
-	* situation here. <const> && <const> would probably get evaluated
-	* away by PgSQL earlier on. <func> && <const> is harder, and the
-	* case we get often is <const> && ST_Expand(<var>), which does 
-	* actually have a subtly different selectivity than a bae
-	* <const> && <var> call. It's calculatable though, by expanding
-	* every cell in the histgram appropriately.
-	* 
-	* Discussion: http://trac.osgeo.org/postgis/ticket/1828
-	*
-	* To do? Do variable selectivity based on the <func> node.
-	*/
-	if ( ! IsA(self, Var) )
-	{
-		POSTGIS_DEBUG(3, " no bare variable argument ? - returning a moderate selectivity");
-		PG_RETURN_FLOAT8(FALLBACK_ND_SEL);
-	}
-
 	/* Convert the constant to a BOX */
 	if( ! gserialized_datum_get_gbox_p(((Const*)other)->constvalue, &search_box) )
 	{
@@ -2128,13 +2136,18 @@ Datum gserialized_gist_sel(PG_FUNCTION_ARGS)
 	POSTGIS_DEBUGF(4, " requested search box is: %s", gbox_to_string(&search_box));
 
 	/* Get pg_statistic row */
-	relid = getrelid(self->varno, root->parse->rtable);
-	nd_stats = pg_get_nd_stats(relid, self->varattno, mode);
+	examine_variable(root, (Node*)self, 0, &vardata);
+	if ( vardata.statsTuple ) {
+		nd_stats = pg_nd_stats_from_tuple(vardata.statsTuple, mode);
+	}
+	ReleaseVariableStats(vardata);
+
 	if ( ! nd_stats )
 	{
 		POSTGIS_DEBUG(3, " unable to load stats from syscache, not analyzed yet?");
 		PG_RETURN_FLOAT8(FALLBACK_ND_SEL);
 	}
+
 	POSTGIS_DEBUGF(4, " got stats:\n%s", nd_stats_to_json(nd_stats));
 
 	/* Do the estimation! */
diff --git a/postgis/gserialized_gist_2d.c b/postgis/gserialized_gist_2d.c
index 44c87c2..eb08781 100644
--- a/postgis/gserialized_gist_2d.c
+++ b/postgis/gserialized_gist_2d.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: gserialized_gist_2d.c 6519 2010-12-28 00:54:19Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -34,16 +33,17 @@
 #include "liblwgeom.h"         /* For standard geometry types. */
 #include "lwgeom_pg.h"       /* For debugging macros. */
 #include "gserialized_gist.h"	     /* For utility functions. */
-#include "liblwgeom_internal.h"  /* For MAXFLOAT */
-
-/* Fall back to older finite() if necessary */ 
-#ifndef HAVE_ISFINITE 
-# ifdef HAVE_GNU_ISFINITE 
-#  define _GNU_SOURCE 
-# else 
-#  define isfinite finite 
-# endif 
-#endif 
+
+/* Fall back to older finite() if necessary */
+#ifndef HAVE_ISFINITE
+# ifdef HAVE_GNU_ISFINITE
+#  define _GNU_SOURCE
+# else
+#  define isfinite finite
+# endif
+#endif
+
+#include <float.h> /* For FLT_MAX */
 
 /*
 ** When is a node split not so good? If more than 90% of the entries
@@ -107,7 +107,6 @@ Datum gserialized_distance_centroid_2d(PG_FUNCTION_ARGS);
 typedef bool (*box2df_predicate)(const BOX2DF *a, const BOX2DF *b);
 
 
-#if POSTGIS_DEBUG_LEVEL > 0
 static char* box2df_to_string(const BOX2DF *a)
 {
 	char *rv = NULL;
@@ -119,8 +118,6 @@ static char* box2df_to_string(const BOX2DF *a)
 	sprintf(rv, "BOX2DF(%.12g %.12g, %.12g %.12g)", a->xmin, a->ymin, a->xmax, a->ymax);
 	return rv;
 }
-#endif
-
 
 /* Allocate a new copy of BOX2DF */
 static BOX2DF* box2df_copy(BOX2DF *b)
@@ -390,6 +387,7 @@ static double box2df_distance_leaf_centroid(const BOX2DF *a, const BOX2DF *b)
     return sqrt((a_x - b_x) * (a_x - b_x) + (a_y - b_y) * (a_y - b_y));
 }
 
+#if POSTGIS_PGSQL_VERSION < 95
 /**
 * Calculate the The node_box_edge->query_centroid distance 
 * between the boxes.
@@ -458,11 +456,13 @@ static double box2df_distance_node_centroid(const BOX2DF *node, const BOX2DF *qu
         else
         {
             /*ERROR*/
+			elog(ERROR, "%s: reached unreachable code", __func__);
         }
     }
     
     return sqrt(d);
 }
+#endif 
 
 /* Quick distance function */
 static inline double pt_distance(double ax, double ay, double bx, double by)
@@ -516,7 +516,7 @@ static double box2df_distance(const BOX2DF *a, const BOX2DF *b)
 			return b->ymin - a->ymax;
 	}
 	
-	return MAXFLOAT;
+	return FLT_MAX;
 }
 
 
@@ -539,14 +539,14 @@ gserialized_datum_get_box2df_p(Datum gsdatum, BOX2DF *box2df)
 	** The most info we need is the 8 bytes of serialized header plus the 
 	** of floats necessary to hold the bounding box.
 	*/
-	if (VARATT_IS_EXTENDED(gsdatum)) 
-	{ 
-		gpart = (GSERIALIZED*)PG_DETOAST_DATUM_SLICE(gsdatum, 0, 8 + sizeof(BOX2DF)); 
-	} 
-	else 
-	{ 
-		gpart = (GSERIALIZED*)PG_DETOAST_DATUM(gsdatum); 
-	} 
+	if (VARATT_IS_EXTENDED(gsdatum))
+	{
+		gpart = (GSERIALIZED*)PG_DETOAST_DATUM_SLICE(gsdatum, 0, 8 + sizeof(BOX2DF));
+	}
+	else
+	{
+		gpart = (GSERIALIZED*)PG_DETOAST_DATUM(gsdatum);
+	}
 
 	flags = gpart->flags;
 
@@ -630,7 +630,7 @@ Datum gserialized_distance_centroid_2d(PG_FUNCTION_ARGS)
 		POSTGIS_DEBUGF(3, "got boxes %s and %s", box2df_to_string(&b1), box2df_to_string(&b2));
 		PG_RETURN_FLOAT8(distance);
 	}
-	PG_RETURN_FLOAT8(MAXFLOAT);
+	PG_RETURN_FLOAT8(FLT_MAX);
 }
 
 PG_FUNCTION_INFO_V1(gserialized_distance_box_2d);
@@ -650,7 +650,7 @@ Datum gserialized_distance_box_2d(PG_FUNCTION_ARGS)
 		POSTGIS_DEBUGF(3, "got boxes %s and %s", box2df_to_string(&b1), box2df_to_string(&b2));
 		PG_RETURN_FLOAT8(distance);
 	}
-	PG_RETURN_FLOAT8(MAXFLOAT);
+	PG_RETURN_FLOAT8(FLT_MAX);
 }
 
 PG_FUNCTION_INFO_V1(gserialized_same_2d);
@@ -1058,8 +1058,8 @@ Datum gserialized_gist_consistent_2d(PG_FUNCTION_ARGS)
 ** represents the distance to the index entry; for an internal tree node, the
 ** result must be the smallest distance that any child entry could have.
 ** 
-** Strategy 13 = centroid-based distance tests
-** Strategy 14 = box-based distance tests
+** Strategy 13 = true distance tests <->
+** Strategy 14 = box-based distance tests <#>
 */
 PG_FUNCTION_INFO_V1(gserialized_gist_distance_2d);
 Datum gserialized_gist_distance_2d(PG_FUNCTION_ARGS)
@@ -1069,26 +1069,53 @@ Datum gserialized_gist_distance_2d(PG_FUNCTION_ARGS)
 	BOX2DF *entry_box;
 	StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2);
 	double distance;
+#if POSTGIS_PGSQL_VERSION >= 95
+	bool *recheck = (bool *) PG_GETARG_POINTER(4);
+#endif
 
 	POSTGIS_DEBUG(4, "[GIST] 'distance' function called");
 
-    /* We are using '13' as the gist distance-betweeen-centroids strategy number 
-    *  and '14' as the gist distance-between-boxes strategy number */
-    if ( strategy != 13 && strategy != 14 ) {
-        elog(ERROR, "unrecognized strategy number: %d", strategy);
-		PG_RETURN_FLOAT8(MAXFLOAT);
+	/* We are using '13' as the gist true-distance <-> strategy number 
+	*  and '14' as the gist distance-between-boxes <#> strategy number */
+	if ( strategy != 13 && strategy != 14 ) {
+		elog(ERROR, "unrecognized strategy number: %d", strategy);
+		PG_RETURN_FLOAT8(FLT_MAX);
 	}
 
 	/* Null box should never make this far. */
 	if ( gserialized_datum_get_box2df_p(PG_GETARG_DATUM(1), &query_box) == LW_FAILURE )
 	{
 		POSTGIS_DEBUG(4, "[GIST] null query_gbox_index!");
-		PG_RETURN_FLOAT8(MAXFLOAT);
+		PG_RETURN_FLOAT8(FLT_MAX);
 	}
-
+	
 	/* Get the entry box */
-    entry_box = (BOX2DF*)DatumGetPointer(entry->key);
+	entry_box = (BOX2DF*)DatumGetPointer(entry->key);
 	
+#if POSTGIS_PGSQL_VERSION >= 95
+	
+	/* Box-style distance test */
+	if ( strategy == 14 ) /* operator <#> */
+	{
+		distance = (double)box2df_distance(entry_box, &query_box);
+	}
+	/* True distance test (formerly centroid distance) */
+	else if ( strategy == 13 ) /* operator <-> */
+	{
+		/* In all cases, since we only have keys (boxes) we'll return */
+		/* the minimum possible distance, which is the box2df_distance */
+		/* and let the recheck sort things out in the case of leaves */
+		distance = (double)box2df_distance(entry_box, &query_box);
+
+		if (GIST_LEAF(entry))
+			*recheck = true;
+	}
+	else
+	{
+		elog(ERROR, "%s: reached unreachable code", __func__);
+		PG_RETURN_NULL();
+	}
+#else
 	/* Box-style distance test */
 	if ( strategy == 14 )
 	{
@@ -1099,15 +1126,16 @@ Datum gserialized_gist_distance_2d(PG_FUNCTION_ARGS)
 	/* Treat leaf node tests different from internal nodes */
 	if (GIST_LEAF(entry))
 	{
-	    /* Calculate distance to leaves */
+		/* Calculate distance to leaves */
 		distance = (double)box2df_distance_leaf_centroid(entry_box, &query_box);
 	}
 	else
 	{
-	    /* Calculate distance for internal nodes */
+		/* Calculate distance for internal nodes */
 		distance = (double)box2df_distance_node_centroid(entry_box, &query_box);
 	}
-
+#endif	
+	
 	PG_RETURN_FLOAT8(distance);
 }
 
@@ -2206,7 +2234,7 @@ Datum box2df_in(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(box2df_out);
 Datum box2df_out(PG_FUNCTION_ARGS)
 {
-	ereport(ERROR,(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-	               errmsg("function box2df_out not implemented")));
-	PG_RETURN_POINTER(NULL);
+  BOX2DF *box = (BOX2DF *) PG_GETARG_POINTER(0);
+  char *result = box2df_to_string(box);
+  PG_RETURN_CSTRING(result);
 }
diff --git a/postgis/gserialized_gist_nd.c b/postgis/gserialized_gist_nd.c
index 40132d2..16d93d3 100644
--- a/postgis/gserialized_gist_nd.c
+++ b/postgis/gserialized_gist_nd.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: gserialized_gist_nd.c 6519 2010-12-28 00:54:19Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -36,14 +35,17 @@
 #include "gserialized_gist.h"	     /* For utility functions. */
 #include "geography.h"
 
-/* Fall back to older finite() if necessary */ 
-#ifndef HAVE_ISFINITE 
-# ifdef HAVE_GNU_ISFINITE 
-#  define _GNU_SOURCE 
-# else 
-#  define isfinite finite 
-# endif 
-#endif 
+#include <assert.h>
+
+
+/* Fall back to older finite() if necessary */
+#ifndef HAVE_ISFINITE
+# ifdef HAVE_GNU_ISFINITE
+#  define _GNU_SOURCE
+# else
+#  define isfinite finite
+# endif
+#endif
 
 /*
 ** When is a node split not so good? If more than 90% of the entries
@@ -75,6 +77,8 @@ Datum gserialized_gist_penalty(PG_FUNCTION_ARGS);
 Datum gserialized_gist_picksplit(PG_FUNCTION_ARGS);
 Datum gserialized_gist_union(PG_FUNCTION_ARGS);
 Datum gserialized_gist_same(PG_FUNCTION_ARGS);
+Datum gserialized_gist_distance(PG_FUNCTION_ARGS);
+Datum gserialized_gist_geog_distance(PG_FUNCTION_ARGS);
 
 /*
 ** ND Operator prototypes
@@ -82,6 +86,7 @@ Datum gserialized_gist_same(PG_FUNCTION_ARGS);
 Datum gserialized_overlaps(PG_FUNCTION_ARGS);
 Datum gserialized_contains(PG_FUNCTION_ARGS);
 Datum gserialized_within(PG_FUNCTION_ARGS);
+Datum gserialized_distance_nd(PG_FUNCTION_ARGS);
 
 /*
 ** GIDX true/false test function type
@@ -457,6 +462,178 @@ gserialized_datum_predicate(Datum gs1, Datum gs2, gidx_predicate predicate)
 }
 
 /**
+* Calculate the centroid->centroid distance between the boxes.
+*/
+#if POSTGIS_PGSQL_VERSION < 95
+static double gidx_distance_leaf_centroid(const GIDX *a, const GIDX *b)
+{
+  int ndims, i;
+  double sum = 0;
+
+  /* Base computation on least available dimensions */
+  ndims = Min(GIDX_NDIMS(b), GIDX_NDIMS(a));
+  for ( i = 0; i < ndims; ++i )
+  {
+    double ca, cb, d;
+    double amin = GIDX_GET_MIN(a,i);
+    double amax = GIDX_GET_MAX(a,i);
+    double bmin = GIDX_GET_MIN(b,i);
+    double bmax = GIDX_GET_MAX(b,i);
+    ca = amin + ( ( amax - amin ) / 2.0 );
+    cb = bmin + ( ( bmax - bmin ) / 2.0 );
+    d = ca - cb;
+    if ( ! isfinite(d) )
+    {
+      /* Can happen if a dimension was padded with FLT_MAX,
+       * effectively meaning "infinite range". In that case
+       * we take that dimension as adding 0 to the total
+       * distance.
+       */
+      continue;
+    }
+    sum += d * d;
+/*
+    POSTGIS_DEBUGF(3, " centroid of A for dimension %d is %g", i, ca);
+    POSTGIS_DEBUGF(3, " centroid of B for dimension %d is %g", i, cb);
+    POSTGIS_DEBUGF(3, " distance on dimension %d is %g, squared as %g, grows sum to %g", i, d, d*d, sum);
+*/
+  }
+  return sqrt(sum);
+}
+#endif
+
+/**
+* Calculate the box->box distance.
+*/
+static double gidx_distance(const GIDX *a, const GIDX *b, int m_is_time)
+{
+  int ndims, i;
+  double sum = 0;
+
+  /* Base computation on least available dimensions */
+  ndims = Min(GIDX_NDIMS(b), GIDX_NDIMS(a));
+  for ( i = 0; i < ndims; ++i )
+  {
+    double d;
+    double amin = GIDX_GET_MIN(a,i);
+    double amax = GIDX_GET_MAX(a,i);
+    double bmin = GIDX_GET_MIN(b,i);
+    double bmax = GIDX_GET_MAX(b,i);
+    POSTGIS_DEBUGF(3, "A %g - %g", amin, amax);
+    POSTGIS_DEBUGF(3, "B %g - %g", bmin, bmax);
+
+    if ( ( amin <= bmax && amax >= bmin ) )
+    {
+      /* overlaps */
+      d = 0;
+    }
+    else if ( i == 4 && m_is_time )
+    {
+      return FLT_MAX;
+    }
+    else if ( bmax < amin )
+    {
+      /* is "left" */
+      d = amin - bmax;
+    }
+    else
+    {
+      /* is "right" */
+      assert( bmin > amax );
+      d = bmin - amax;
+    }
+    if ( ! isfinite(d) )
+    {
+      /* Can happen if coordinates are corrupted/NaN */
+      continue;
+    }
+    sum += d * d;
+    POSTGIS_DEBUGF(3, "dist %g, squared %g, grows sum to %g", d, d*d, sum);
+  }
+  return sqrt(sum);
+}
+
+#if POSTGIS_PGSQL_VERSION < 95
+static double gidx_distance_node_centroid(const GIDX *node, const GIDX *query)
+{
+	int i;
+	double sum = 0;
+
+	/* Base computation on least available dimensions */
+	int ndims = Min(GIDX_NDIMS(node), GIDX_NDIMS(query));
+
+	for ( i = 0; i < ndims; ++i )
+	{
+		double d;
+		double amin = GIDX_GET_MIN(query,i);
+		double amax = GIDX_GET_MAX(query,i);
+		double bmin = GIDX_GET_MIN(node,i);
+		double bmax = GIDX_GET_MAX(node,i);
+		double ca = amin + ( ( amax - amin ) / 2.0 );
+
+		if ( ( ca <= bmax && ca >= bmin ) )
+		{
+			/* overlaps */
+			d = 0;
+		}
+		else if ( bmax < ca )
+		{
+			/* is "left" */
+			d = ca - bmax;
+		}
+		else
+		{
+			/* is "right" */
+			assert( bmin > ca );
+			d = bmin - ca;
+		}
+		if ( ! isfinite(d) )
+		{
+			/* Can happen if coordinates are corrupted/NaN */
+			continue;
+		}
+		sum += d * d;
+		POSTGIS_DEBUGF(3, "dist %g, squared %g, grows sum to %g", d, d*d, sum);
+	}
+	return sqrt(sum);
+}
+#else /* POSTGIS_PGSQL_VERSION >= 95 */
+static double gidx_distance_m(const GIDX *a, const GIDX *b)
+{
+	int mdim_a, mdim_b;
+	double d, amin, amax, bmin, bmax;
+
+	/* Base computation on least available dimensions */
+	mdim_a = GIDX_NDIMS(a) - 1;
+	mdim_b = GIDX_NDIMS(b) - 1;
+
+	amin = GIDX_GET_MIN(a,mdim_a);
+	amax = GIDX_GET_MAX(a,mdim_a);
+	bmin = GIDX_GET_MIN(b,mdim_b);
+	bmax = GIDX_GET_MAX(b,mdim_b);
+
+    if ( ( amin <= bmax && amax >= bmin ) )
+    {
+      /* overlaps */
+      d = 0;
+    }
+    else if ( bmax < amin )
+    {
+      /* is "left" */
+      d = amin - bmax;
+    }
+    else
+    {
+      /* is "right" */
+      assert( bmin > amax );
+      d = bmin - amax;
+    }
+	
+	return d;
+}
+#endif /* POSTGIS_PGSQL_VERSION >= 96 */
+
+/**
 * Return a #GSERIALIZED with an expanded bounding box.
 */
 GSERIALIZED* 
@@ -482,6 +659,123 @@ gserialized_expand(GSERIALIZED *g, double distance)
 * GiST N-D Index Operator Functions
 */
 
+/* 
+* Do centroid to centroid n-d distance if you don't have 
+* re-check available (PgSQL 9.5+), do "real" n-d distance
+* if you do
+*/
+PG_FUNCTION_INFO_V1(gserialized_distance_nd);
+Datum gserialized_distance_nd(PG_FUNCTION_ARGS)
+{
+	char b1mem[GIDX_MAX_SIZE];
+	GIDX *b1 = (GIDX*)b1mem;
+	char b2mem[GIDX_MAX_SIZE];
+	GIDX *b2 = (GIDX*)b2mem;
+
+#if POSTGIS_PGSQL_VERSION < 95
+
+	/* Centroid-to-centroid distance */
+	Datum gs1 = PG_GETARG_DATUM(0);
+	Datum gs2 = PG_GETARG_DATUM(1);
+	double box_distance = FLT_MAX;
+
+	/* Must be able to build box for each argument (ie, not empty geometry). */
+	if ( (gserialized_datum_get_gidx_p(gs1, b1) == LW_SUCCESS) &&
+	     (gserialized_datum_get_gidx_p(gs2, b2) == LW_SUCCESS) )
+	{
+		box_distance = gidx_distance_leaf_centroid(b1, b2);
+		POSTGIS_DEBUGF(3, "got boxes %s and %s", gidx_to_string(b1), gidx_to_string(b2));
+	}
+	PG_RETURN_FLOAT8(box_distance);
+
+#else /* POSTGIS_PGSQL_VERSION >= 96 */
+
+	/* Feature-to-feature distance */
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
+	LWGEOM *lw1 = lwgeom_from_gserialized(geom1);
+	LWGEOM *lw2 = lwgeom_from_gserialized(geom2);
+	LWGEOM *closest;
+	double distance;
+
+
+	/* Find an exact shortest line w/ the dimensions we support */
+	if ( lwgeom_has_z(lw1) && lwgeom_has_z(lw2) )
+	{
+		closest = lwgeom_closest_line_3d(lw1, lw2);
+		distance = lwgeom_length(closest);
+	}
+	else
+	{
+		closest = lwgeom_closest_line(lw1, lw2);
+		distance = lwgeom_length_2d(closest);
+	}
+
+	/* Un-sqrt the distance so we can add extra terms */
+	distance = distance*distance;
+
+	/* Can only add the M term if both objects have M */
+	if ( lwgeom_has_m(lw1) && lwgeom_has_m(lw2) )
+	{
+		double m1, m2;
+		int usebox = false;
+		
+		if ( lwgeom_get_type(lw1) == POINTTYPE )
+		{
+			POINT4D p;
+			lwpoint_getPoint4d_p((LWPOINT*)lw1, &p);
+			m1 = p.m;
+		}
+		else if ( lwgeom_get_type(lw1) == LINETYPE )
+		{
+			LWPOINT *lwp1 = lwline_get_lwpoint(lwgeom_as_lwline(closest), 0);
+			m1 = lwgeom_interpolate_point(lw1, lwp1);
+			lwpoint_free(lwp1);
+		}
+		else
+		{
+			usebox = true;
+		}
+		
+		if ( lwgeom_get_type(lw2) == POINTTYPE )
+		{
+			POINT4D p;
+			lwpoint_getPoint4d_p((LWPOINT*)lw2, &p);
+			m2 = p.m;
+		}
+		else if ( lwgeom_get_type(lw2) == LINETYPE )
+		{
+			LWPOINT *lwp2 = lwline_get_lwpoint(lwgeom_as_lwline(closest), 1);
+			m1 = lwgeom_interpolate_point(lw2, lwp2);
+			lwpoint_free(lwp2);
+		}
+		else 
+		{
+			usebox = true;
+		}
+
+		if ( usebox )
+		{
+			double d;
+			gserialized_get_gidx_p(geom1, b1);
+			gserialized_get_gidx_p(geom2, b2);
+			d = gidx_distance_m(b1, b2);
+			distance += d*d;
+		}
+		else
+		{
+			distance += (m2-m1)*(m2-m1);
+		}
+	}
+
+	lwgeom_free(closest);
+
+	PG_FREE_IF_COPY(geom1, 0);
+	PG_FREE_IF_COPY(geom2, 1);
+	PG_RETURN_FLOAT8(sqrt(distance));
+#endif /* POSTGIS_PGSQL_VERSION >= 96 */
+}
+
 /*
 ** '~' and operator function. Based on two serialized return true if
 ** the first is contained by the second.
@@ -596,8 +890,8 @@ Datum gserialized_gist_compress(PG_FUNCTION_ARGS)
 	 * If not, use the "unknown" GIDX as a key */
 	for ( i = 0; i < GIDX_NDIMS(bbox_out); i++ )
 	{
-		if ( ! isfinite(GIDX_GET_MAX(bbox_out, i)) ||
-		     ! isfinite(GIDX_GET_MIN(bbox_out, i)) )
+		if ( ! isfinite(GIDX_GET_MAX(bbox_out, i))
+		     || ! isfinite(GIDX_GET_MIN(bbox_out, i)) )
 		{
 			gidx_set_unknown(bbox_out);
 			gistentryinit(*entry_out, 
@@ -842,8 +1136,6 @@ Datum gserialized_gist_union(PG_FUNCTION_ARGS)
 
 }
 
-
-
 /*
 ** GiST support function. Test equality of keys.
 */
@@ -863,6 +1155,141 @@ Datum gserialized_gist_same(PG_FUNCTION_ARGS)
 
 
 
+
+PG_FUNCTION_INFO_V1(gserialized_gist_geog_distance);
+Datum gserialized_gist_geog_distance(PG_FUNCTION_ARGS)
+{
+	GISTENTRY *entry = (GISTENTRY*) PG_GETARG_POINTER(0);
+	Datum query_datum = PG_GETARG_DATUM(1);
+	StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2);
+#if POSTGIS_PGSQL_VERSION >= 95
+	bool *recheck = (bool *) PG_GETARG_POINTER(4);
+#endif
+	char query_box_mem[GIDX_MAX_SIZE];
+	GIDX *query_box = (GIDX*)query_box_mem;
+	GIDX *entry_box;
+	double distance;
+
+	POSTGIS_DEBUGF(3, "[GIST] '%s' function called", __func__);
+ 
+	/* We are using '13' as the gist geography distance <-> strategy number */
+	if ( strategy != 13  ) 
+	{
+		elog(ERROR, "unrecognized strategy number: %d", strategy);
+		PG_RETURN_FLOAT8(FLT_MAX);
+	}
+
+	/* Null box should never make this far. */
+	if ( gserialized_datum_get_gidx_p(query_datum, query_box) == LW_FAILURE )
+	{
+		POSTGIS_DEBUG(2, "[GIST] null query_gbox_index!");
+		PG_RETURN_FLOAT8(FLT_MAX);
+	}
+
+#if POSTGIS_PGSQL_VERSION >= 95
+	/* When we hit leaf nodes, it's time to turn on recheck */
+	if (GIST_LEAF(entry))
+	{
+		*recheck = true;
+	}
+#endif
+			
+	/* Get the entry box */
+	entry_box = (GIDX*)DatumGetPointer(entry->key);
+
+	/* Return distances from key-based tests should always be */
+	/* the minimum possible distance, box-to-box */
+	/* We scale up to "world units" so that the box-to-box distances */
+	/* compare reasonably with the over-the-spheroid distances that */
+	/* the recheck process will turn up */
+	distance = WGS84_RADIUS * gidx_distance(entry_box, query_box, 0);
+	POSTGIS_DEBUGF(2, "[GIST] '%s' got distance %g", __func__, distance);
+
+	PG_RETURN_FLOAT8(distance);
+}
+
+
+/*
+** GiST support function.
+** Take in a query and an entry and return the "distance" between them.
+**
+** Given an index entry p and a query value q, this function determines the
+** index entry's "distance" from the query value. This function must be
+** supplied if the operator class contains any ordering operators. A query
+** using the ordering operator will be implemented by returning index entries
+** with the smallest "distance" values first, so the results must be consistent
+** with the operator's semantics. For a leaf index entry the result just
+** represents the distance to the index entry; for an internal tree node, the
+** result must be the smallest distance that any child entry could have.
+**
+** Strategy 13 is centroid-based distance tests <<->>
+** Strategy 20 is cpa based distance tests |=|
+*/
+PG_FUNCTION_INFO_V1(gserialized_gist_distance);
+Datum gserialized_gist_distance(PG_FUNCTION_ARGS)
+{
+	GISTENTRY *entry = (GISTENTRY*) PG_GETARG_POINTER(0);
+	StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2);
+	char query_box_mem[GIDX_MAX_SIZE];
+	GIDX *query_box = (GIDX*)query_box_mem;
+	GIDX *entry_box;
+#if POSTGIS_PGSQL_VERSION >= 95
+	bool *recheck = (bool *) PG_GETARG_POINTER(4);
+#endif
+	
+	double distance;
+
+	POSTGIS_DEBUG(4, "[GIST] 'distance' function called");
+ 
+	/* Strategy 13 is <<->> */
+	/* Strategy 20 is |=| */
+	if ( strategy != 13 && strategy != 20 ) {
+		elog(ERROR, "unrecognized strategy number: %d", strategy);
+		PG_RETURN_FLOAT8(FLT_MAX);
+	}
+
+	/* Null box should never make this far. */
+	if ( gserialized_datum_get_gidx_p(PG_GETARG_DATUM(1), query_box) == LW_FAILURE )
+	{
+		POSTGIS_DEBUG(4, "[GIST] null query_gbox_index!");
+		PG_RETURN_FLOAT8(FLT_MAX);
+	}
+
+	/* Get the entry box */
+	entry_box = (GIDX*)DatumGetPointer(entry->key);
+
+#if POSTGIS_PGSQL_VERSION >= 95
+
+	/* Strategy 20 is |=| */
+	distance = gidx_distance(entry_box, query_box, strategy == 20);
+
+	/* Treat leaf node tests different from internal nodes */
+	if (GIST_LEAF(entry))
+		*recheck = true;
+#else
+
+	if ( strategy == 20 )
+	{
+		elog(ERROR, "You need PostgreSQL 9.5.0 or higher in order to use |=| with index");
+		PG_RETURN_FLOAT8(FLT_MAX);
+	}
+
+	/* Treat leaf node tests different from internal nodes */
+	if (GIST_LEAF(entry))
+	{
+		/* Calculate distance to leaves */
+		distance = (double)gidx_distance_leaf_centroid(entry_box, query_box);
+	}
+	else
+	{
+		/* Calculate distance for internal nodes */
+		distance = (double)gidx_distance_node_centroid(entry_box, query_box);
+	}
+#endif
+	PG_RETURN_FLOAT8(distance);
+}
+
+
 /*
 ** Utility function to add entries to the axis partition lists in the
 ** picksplit function.
@@ -1285,7 +1712,7 @@ Datum gidx_in(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(gidx_out); 
 Datum gidx_out(PG_FUNCTION_ARGS)
 {
-	ereport(ERROR,(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-	               errmsg("function gidx_out not implemented")));
-	PG_RETURN_POINTER(NULL);
+  GIDX *box = (GIDX *) PG_GETARG_POINTER(0);
+  char *result = gidx_to_string(box);
+  PG_RETURN_CSTRING(result);
 }
diff --git a/postgis/gserialized_typmod.c b/postgis/gserialized_typmod.c
index 82f6def..407b015 100644
--- a/postgis/gserialized_typmod.c
+++ b/postgis/gserialized_typmod.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: geography_inout.c 7248 2011-05-25 18:42:16Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
@@ -29,7 +28,8 @@
 #include "lwgeom_pg.h"       /* For debugging macros. */
 #include "geography.h"	     /* For utility functions. */
 #include "lwgeom_export.h"   /* For export functions. */
-#include "lwgeom_transform.h" /* for srid_is_latlon */ 
+#include "lwgeom_transform.h" /* for srid_is_latlon */
+
 
 Datum geography_typmod_in(PG_FUNCTION_ARGS);
 Datum geometry_typmod_in(PG_FUNCTION_ARGS);
@@ -96,11 +96,12 @@ Datum postgis_typmod_out(PG_FUNCTION_ARGS)
 
 }
 
+
 /**
 * Check the consistency of the metadata we want to enforce in the typmod:
 * srid, type and dimensionality. If things are inconsistent, shut down the query.
 */
-GSERIALIZED * postgis_valid_typmod(GSERIALIZED *gser, int32_t typmod)
+GSERIALIZED* postgis_valid_typmod(GSERIALIZED *gser, int32_t typmod)
 {
 	int32 geom_srid = gserialized_get_srid(gser);
 	int32 geom_type = gserialized_get_type(gser);
@@ -132,8 +133,8 @@ GSERIALIZED * postgis_valid_typmod(GSERIALIZED *gser, int32_t typmod)
 	     gserialized_is_empty(gser) )
 	{
 		LWPOINT *empty_point = lwpoint_construct_empty(geom_srid, geom_z, geom_m);
-		pfree(gser);
 		geom_type = POINTTYPE;
+		pfree(gser);
 		if ( gserialized_is_geodetic(gser) )
 			gser = geography_serialize(lwpoint_as_lwgeom(empty_point));
 		else
@@ -264,7 +265,7 @@ static uint32 gserialized_typmod_in(ArrayType *arr, int is_geography)
 			POSTGIS_DEBUGF(3, "srid: %d", srid);
 			if ( srid != SRID_UNKNOWN )
 			{
-				TYPMOD_SET_SRID(typmod, srid); 
+				TYPMOD_SET_SRID(typmod, srid);
 			}
 		}
 	}
@@ -284,10 +285,10 @@ Datum geography_typmod_in(PG_FUNCTION_ARGS)
 {
 	ArrayType *arr = (ArrayType *) DatumGetPointer(PG_GETARG_DATUM(0));
 	uint32 typmod = gserialized_typmod_in(arr, LW_TRUE);
-	int srid = TYPMOD_GET_SRID(typmod); 
-	/* Check the SRID is legal (geographic coordinates) */ 
-	srid_is_latlong(fcinfo, srid); 
-
+	int srid = TYPMOD_GET_SRID(typmod);
+	/* Check the SRID is legal (geographic coordinates) */
+	srid_is_latlong(fcinfo, srid);
+	
 	PG_RETURN_INT32(typmod);
 }
 
@@ -312,7 +313,7 @@ Datum geometry_typmod_in(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(geography_enforce_typmod);
 Datum geography_enforce_typmod(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *arg = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *arg = PG_GETARG_GSERIALIZED_P(0);
 	int32 typmod = PG_GETARG_INT32(1);
 	/* We don't need to have different behavior based on explicitness. */
 	/* bool isExplicit = PG_GETARG_BOOL(2); */
@@ -331,7 +332,7 @@ Datum geography_enforce_typmod(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(geometry_enforce_typmod);
 Datum geometry_enforce_typmod(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *arg = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *arg = PG_GETARG_GSERIALIZED_P(0);
 	int32 typmod = PG_GETARG_INT32(1);
 	/* We don't need to have different behavior based on explicitness. */
 	/* bool isExplicit = PG_GETARG_BOOL(2); */
diff --git a/postgis/legacy.sql.in b/postgis/legacy.sql.in
index 79f0c47..c44ddfa 100644
--- a/postgis/legacy.sql.in
+++ b/postgis/legacy.sql.in
@@ -1,4 +1,3 @@
--- $Id: legacy.sql.in 11175 2013-03-18 17:20:18Z strk $
 -- Legacy functions without chip functions --
 -- This is the full list including the legacy_minimal.sql (minimal)
 -- so no need to install both legacy and the minimal 
diff --git a/postgis/legacy_gist.sql.in b/postgis/legacy_gist.sql.in
index bc89cc5..ebdc14a 100644
--- a/postgis/legacy_gist.sql.in
+++ b/postgis/legacy_gist.sql.in
@@ -24,4 +24,4 @@ CREATE OPERATOR CLASS gist_geometry_ops
 	FUNCTION        4        geometry_gist_decompress_2d (internal),
 	FUNCTION        5        geometry_gist_penalty_2d (internal, internal, internal),
 	FUNCTION        6        geometry_gist_picksplit_2d (internal, internal),
-	FUNCTION        7        geometry_gist_same_2d (geom1 geometry, geom2 geometry, internal);
\ No newline at end of file
+	FUNCTION        7        geometry_gist_same_2d (geom1 geometry, geom2 geometry, internal);
diff --git a/postgis/legacy_minimal.sql.in b/postgis/legacy_minimal.sql.in
index 402f118..46b1070 100644
--- a/postgis/legacy_minimal.sql.in
+++ b/postgis/legacy_minimal.sql.in
@@ -1,4 +1,3 @@
--- $Id: legacy_minimal.sql.in 11175 2013-03-18 17:20:18Z strk $
 -- Bare minimum Legacy functions --
 -- This file that contains what we have determined are
 -- the most common functions used by older apps
diff --git a/postgis/long_xact.c b/postgis/long_xact.c
index c2b7c2f..bbcaf96 100644
--- a/postgis/long_xact.c
+++ b/postgis/long_xact.c
@@ -49,7 +49,7 @@ Datum check_authorization(PG_FUNCTION_ARGS)
 	char *authtable = "authorization_table";
 	const char *op;
 #define ERRMSGLEN 256
-	char errmsg[ERRMSGLEN];
+	char err_msg[ERRMSGLEN];
 
 
 	/* Make sure trigdata is pointing at what I expect */
@@ -155,14 +155,14 @@ Datum check_authorization(PG_FUNCTION_ARGS)
 
 fail:
 
-	snprintf(errmsg, ERRMSGLEN, "%s where \"%s\" = '%s' requires authorization '%s'",
+	snprintf(err_msg, ERRMSGLEN, "%s where \"%s\" = '%s' requires authorization '%s'",
 	         op, colname, pk_id, lockcode);
-	errmsg[ERRMSGLEN-1] = '\0';
+	err_msg[ERRMSGLEN-1] = '\0';
 
 #ifdef ABORT_ON_AUTH_FAILURE
-	elog(ERROR, "%s", errmsg);
+	elog(ERROR, "%s", err_msg);
 #else
-	elog(NOTICE, "%s", errmsg);
+	elog(NOTICE, "%s", err_msg);
 #endif
 
 	SPI_finish();
diff --git a/postgis/long_xact.sql.in b/postgis/long_xact.sql.in
index 4ec3994..63c93d9 100644
--- a/postgis/long_xact.sql.in
+++ b/postgis/long_xact.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: long_xact.sql.in 13134 2014-12-01 08:47:21Z strk $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
diff --git a/postgis/lwgeom_accum.c b/postgis/lwgeom_accum.c
index 1beb0b0..e89d22a 100644
--- a/postgis/lwgeom_accum.c
+++ b/postgis/lwgeom_accum.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_accum.c 13525 2015-05-19 17:38:43Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -14,22 +13,28 @@
 #include "fmgr.h"
 #include "funcapi.h"
 #include "access/tupmacs.h"
+#include "utils/datum.h"
 #include "utils/array.h"
 #include "utils/lsyscache.h"
 
 #include "../postgis_config.h"
 
 #include "liblwgeom.h"
+#include "lwgeom_geos.h"
 #include "lwgeom_pg.h"
+#include "lwgeom_transform.h"
 
 /* Local prototypes */
 Datum PGISDirectFunctionCall1(PGFunction func, Datum arg1);
+Datum PGISDirectFunctionCall2(PGFunction func, Datum arg1, Datum arg2);
 Datum pgis_geometry_accum_transfn(PG_FUNCTION_ARGS);
 Datum pgis_geometry_accum_finalfn(PG_FUNCTION_ARGS);
 Datum pgis_geometry_union_finalfn(PG_FUNCTION_ARGS);
 Datum pgis_geometry_collect_finalfn(PG_FUNCTION_ARGS);
 Datum pgis_geometry_polygonize_finalfn(PG_FUNCTION_ARGS);
 Datum pgis_geometry_makeline_finalfn(PG_FUNCTION_ARGS);
+Datum pgis_geometry_clusterintersecting_finalfn(PG_FUNCTION_ARGS);
+Datum pgis_geometry_clusterwithin_finalfn(PG_FUNCTION_ARGS);
 Datum pgis_abs_in(PG_FUNCTION_ARGS);
 Datum pgis_abs_out(PG_FUNCTION_ARGS);
 
@@ -37,6 +42,8 @@ Datum pgis_abs_out(PG_FUNCTION_ARGS);
 Datum pgis_union_geometry_array(PG_FUNCTION_ARGS);
 Datum LWGEOM_collect_garray(PG_FUNCTION_ARGS);
 Datum polygonize_garray(PG_FUNCTION_ARGS);
+Datum clusterintersecting_garray(PG_FUNCTION_ARGS);
+Datum cluster_within_distance_garray(PG_FUNCTION_ARGS);
 Datum LWGEOM_makeline_garray(PG_FUNCTION_ARGS);
 
 
@@ -55,15 +62,19 @@ Datum LWGEOM_makeline_garray(PG_FUNCTION_ARGS);
 /**
 ** To pass the internal ArrayBuildState pointer between the
 ** transfn and finalfn we need to wrap it into a custom type first,
-** the pgis_abs type in our case.
+** the pgis_abs type in our case.  The extra "data" member can optionally
+** be used to pass an additional constant argument to a finalizer function.
 */
 
 typedef struct
 {
 	ArrayBuildState *a;
+	Datum data;
 }
 pgis_abs;
 
+
+
 /**
 ** We're never going to use this type externally so the in/out
 ** functions are dummies.
@@ -73,7 +84,7 @@ Datum
 pgis_abs_in(PG_FUNCTION_ARGS)
 {
 	ereport(ERROR,(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-	               errmsg("function pgis_abs_in not implemented")));
+	               errmsg("function %s not implemented", __func__)));
 	PG_RETURN_POINTER(NULL);
 }
 PG_FUNCTION_INFO_V1(pgis_abs_out);
@@ -81,7 +92,7 @@ Datum
 pgis_abs_out(PG_FUNCTION_ARGS)
 {
 	ereport(ERROR,(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-	               errmsg("function pgis_abs_out not implemented")));
+	               errmsg("function %s not implemented", __func__)));
 	PG_RETURN_POINTER(NULL);
 }
 
@@ -116,6 +127,18 @@ pgis_geometry_accum_transfn(PG_FUNCTION_ARGS)
 	{
 		p = (pgis_abs*) palloc(sizeof(pgis_abs));
 		p->a = NULL;
+		p->data = (Datum) NULL;
+
+		if (PG_NARGS() == 3)
+		{
+			Datum argument = PG_GETARG_DATUM(2);
+			Oid dataOid = get_fn_expr_argtype(fcinfo->flinfo, 2);
+			MemoryContext old = MemoryContextSwitchTo(aggcontext);
+
+			p->data = datumCopy(argument, get_typbyval(dataOid), get_typlen(dataOid));
+
+			MemoryContextSwitchTo(old);
+		}
 	}
 	else
 	{
@@ -133,6 +156,8 @@ pgis_geometry_accum_transfn(PG_FUNCTION_ARGS)
 	PG_RETURN_POINTER(p);
 }
 
+
+
 Datum pgis_accum_finalfn(pgis_abs *p, MemoryContext mctx, FunctionCallInfo fcinfo);
 
 /**
@@ -182,7 +207,7 @@ pgis_geometry_accum_finalfn(PG_FUNCTION_ARGS)
 }
 
 /**
-* The "accum" final function passes the geometry[] to a union
+* The "union" final function passes the geometry[] to a union
 * conversion before returning the result.
 */
 PG_FUNCTION_INFO_V1(pgis_geometry_union_finalfn);
@@ -231,6 +256,7 @@ pgis_geometry_collect_finalfn(PG_FUNCTION_ARGS)
 	PG_RETURN_DATUM(result);
 }
 
+
 /**
 * The "polygonize" final function passes the geometry[] to a polygonization
 * before returning the result.
@@ -280,6 +306,61 @@ pgis_geometry_makeline_finalfn(PG_FUNCTION_ARGS)
 }
 
 /**
+ * The "clusterintersecting" final function passes the geometry[] to a
+ * clustering function before returning the result.
+*/
+PG_FUNCTION_INFO_V1(pgis_geometry_clusterintersecting_finalfn);
+Datum
+pgis_geometry_clusterintersecting_finalfn(PG_FUNCTION_ARGS)
+{
+	pgis_abs *p;
+	Datum result = 0;
+	Datum geometry_array = 0;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	p = (pgis_abs*) PG_GETARG_POINTER(0);
+	geometry_array = pgis_accum_finalfn(p, CurrentMemoryContext, fcinfo);
+	result = PGISDirectFunctionCall1( clusterintersecting_garray, geometry_array );
+	if (!result)
+		PG_RETURN_NULL();
+
+	PG_RETURN_DATUM(result);
+}
+
+/**
+ * The "cluster_within_distance" final function passes the geometry[] to a
+ * clustering function before returning the result.
+*/
+PG_FUNCTION_INFO_V1(pgis_geometry_clusterwithin_finalfn);
+Datum
+pgis_geometry_clusterwithin_finalfn(PG_FUNCTION_ARGS)
+{
+	pgis_abs *p;
+	Datum result = 0;
+	Datum geometry_array = 0;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	p = (pgis_abs*) PG_GETARG_POINTER(0);
+
+	if (!p->data)
+	{
+		elog(ERROR, "Tolerance not defined");
+		PG_RETURN_NULL();
+	}
+
+	geometry_array = pgis_accum_finalfn(p, CurrentMemoryContext, fcinfo);
+	result = PGISDirectFunctionCall2( cluster_within_distance_garray, geometry_array, p->data);
+	if (!result)
+		PG_RETURN_NULL();
+
+	PG_RETURN_DATUM(result);
+}
+
+/**
 * A modified version of PostgreSQL's DirectFunctionCall1 which allows NULL results; this
 * is required for aggregates that return NULL.
 */
@@ -308,3 +389,35 @@ PGISDirectFunctionCall1(PGFunction func, Datum arg1)
 
 	return result;
 }
+
+/**
+* A modified version of PostgreSQL's DirectFunctionCall2 which allows NULL results; this
+* is required for aggregates that return NULL.
+*/
+Datum
+PGISDirectFunctionCall2(PGFunction func, Datum arg1, Datum arg2)
+{
+	FunctionCallInfoData fcinfo;
+	Datum           result;
+
+#if POSTGIS_PGSQL_VERSION > 90
+
+	InitFunctionCallInfoData(fcinfo, NULL, 1, InvalidOid, NULL, NULL);
+#else
+
+	InitFunctionCallInfoData(fcinfo, NULL, 1, NULL, NULL);
+#endif
+
+	fcinfo.arg[0] = arg1;
+	fcinfo.arg[1] = arg2;
+	fcinfo.argnull[0] = false;
+	fcinfo.argnull[1] = false;
+
+	result = (*func) (&fcinfo);
+
+	/* Check for null result, returning a "NULL" Datum if indicated */
+	if (fcinfo.isnull)
+		return (Datum) 0;
+
+	return result;
+}
diff --git a/postgis/lwgeom_backend_api.c b/postgis/lwgeom_backend_api.c
index 0910ad0..9da26bf 100644
--- a/postgis/lwgeom_backend_api.c
+++ b/postgis/lwgeom_backend_api.c
@@ -14,12 +14,12 @@
 
 #include "postgres.h"
 #include "fmgr.h"
-#include "../liblwgeom/liblwgeom.h"
-
-/* for custom variables */
-#include "utils/guc.h"
+#include "utils/guc.h" /* for custom variables */
 
 #include "../postgis_config.h"
+#include "lwgeom_pg.h"
+#include "liblwgeom.h"
+
 #include "lwgeom_backend_api.h"
 #include "lwgeom_geos.h"
 #if HAVE_SFCGAL
@@ -29,6 +29,8 @@
 Datum intersects(PG_FUNCTION_ARGS);
 Datum intersects3d(PG_FUNCTION_ARGS);
 Datum intersection(PG_FUNCTION_ARGS);
+Datum difference(PG_FUNCTION_ARGS);
+Datum geomunion(PG_FUNCTION_ARGS);
 Datum area(PG_FUNCTION_ARGS);
 Datum distance(PG_FUNCTION_ARGS);
 Datum distance3d(PG_FUNCTION_ARGS);
@@ -42,6 +44,8 @@ struct lwgeom_backend_definition
     Datum (*intersects_fn)    (PG_FUNCTION_ARGS);
     Datum (*intersects3d_fn)  (PG_FUNCTION_ARGS);
     Datum (*intersection_fn)  (PG_FUNCTION_ARGS);
+    Datum (*difference_fn)    (PG_FUNCTION_ARGS);
+    Datum (*union_fn)         (PG_FUNCTION_ARGS);
     Datum (*area_fn)          (PG_FUNCTION_ARGS);
     Datum (*distance_fn)      (PG_FUNCTION_ARGS);
     Datum (*distance3d_fn)    (PG_FUNCTION_ARGS);
@@ -58,6 +62,8 @@ struct lwgeom_backend_definition lwgeom_backends[LWGEOM_NUM_BACKENDS] = {
       .intersects_fn    = geos_intersects,
       .intersects3d_fn  = intersects3d_dwithin,
       .intersection_fn  = geos_intersection,
+      .difference_fn    = geos_difference,
+      .union_fn         = geos_geomunion,
       .area_fn          = LWGEOM_area_polygon,
       .distance_fn      = LWGEOM_mindistance2d,
       .distance3d_fn    = LWGEOM_mindistance3d
@@ -67,6 +73,8 @@ struct lwgeom_backend_definition lwgeom_backends[LWGEOM_NUM_BACKENDS] = {
       .intersects_fn    = sfcgal_intersects,
       .intersects3d_fn  = sfcgal_intersects3D,
       .intersection_fn  = sfcgal_intersection,
+      .difference_fn    = sfcgal_difference,
+      .union_fn         = sfcgal_union,
       .area_fn          = sfcgal_area,
       .distance_fn      = sfcgal_distance,
       .distance3d_fn    = sfcgal_distance3D
@@ -91,12 +99,118 @@ static void lwgeom_backend_switch( const char* newvalue, void* extra )
 	    return;
 	}
     }
-    lwerror("Can't find %s geometry backend", newvalue );
+    lwpgerror("Can't find %s geometry backend", newvalue );
 }
 
+
+#include "utils/guc.h"
+#include "utils/guc_tables.h"
+
+
+/*
+ * the bare comparison function for GUC names
+ */
+static int
+guc_name_compare(const char *namea, const char *nameb)
+{
+	/*
+	 * The temptation to use strcasecmp() here must be resisted, because the
+	 * array ordering has to remain stable across setlocale() calls. So, build
+	 * our own with a simple ASCII-only downcasing.
+	 */
+	while (*namea && *nameb)
+	{
+		char		cha = *namea++;
+		char		chb = *nameb++;
+
+		if (cha >= 'A' && cha <= 'Z')
+			cha += 'a' - 'A';
+		if (chb >= 'A' && chb <= 'Z')
+			chb += 'a' - 'A';
+		if (cha != chb)
+			return cha - chb;
+	}
+	if (*namea)
+		return 1;				/* a is longer */
+	if (*nameb)
+		return -1;				/* b is longer */
+	return 0;
+}
+
+/*
+ * comparator for qsorting and bsearching guc_variables array
+ */
+static int
+guc_var_compare(const void *a, const void *b)
+{
+	const struct config_generic *confa = *(struct config_generic * const *) a;
+	const struct config_generic *confb = *(struct config_generic * const *) b;
+
+	return guc_name_compare(confa->name, confb->name);
+}
+
+/* 
+* This is copied from the top half of the find_option function 
+* in postgresql's guc.c. We search the guc_variables for our option.
+* Then we make sure it's not a placeholder. Only then are we sure 
+* we have a potential conflict, of the sort experienced during an 
+* extension upgrade.
+*/
+static int
+guc_find_option(const char *name)
+{
+	const char **key = &name;
+	struct config_generic **res;
+
+	/*
+	 * By equating const char ** with struct config_generic *, we are assuming
+	 * the name field is first in config_generic.
+	 */
+	res = (struct config_generic **) bsearch((void *) &key,
+											 (void *) get_guc_variables(),
+											 GetNumConfigOptions(),
+											 sizeof(struct config_generic *),
+											 guc_var_compare);
+	
+	/* Found nothing? Good */
+	if ( ! res ) return 0;
+	 
+	/* Hm, you found something, but maybe it's just a placeholder? */
+	/* We'll consider a placehold a "not found" */
+	if ( (*res)->flags & GUC_CUSTOM_PLACEHOLDER )
+		return 0;
+		
+	return 1;
+}
+
+
 void lwgeom_init_backend()
 {
-    DefineCustomStringVariable( "postgis.backend", /* name */
+	/* #2382 Before trying to create a user GUC, make sure */
+	/* that the name is not already in use. Why would it be in use? */
+	/* During an upgrade, a prior copy of the PostGIS library will */
+	/* already be loaded in memory and the GUC already defined. We */
+	/* can skip GUC definition in this case, so we just return. */
+	static const char *guc_name = "postgis.backend";
+	// const char *guc_installed = GetConfigOption(guc_name, TRUE, FALSE);
+		
+	/* Uh oh, this GUC name already exists. Ordinarily we could just go on */
+	/* our way, but the way the postgis.backend works is by using the "assign" */
+	/* callback to change which backend is in use by flipping a global variable */
+	/* over. This saves the overhead of looking up the engine every time, at */
+	/* the expense of the extra complexity. */
+	if ( guc_find_option(guc_name) )
+	{
+		/* In this narrow case the previously installed GUC is tied to the callback in */
+		/* the previously loaded library. Probably this is happening during an */
+		/* upgrade, so the old library is where the callback ties to. */
+		elog(WARNING, "'%s' is already set and cannot be changed until you reconnect", guc_name);
+		return;
+	}
+
+	/* Good, the GUC name is not already in use, so this must be a fresh */
+	/* and clean new load of the library, and we can define the user GUC */
+	DefineCustomStringVariable( guc_name, /* name */
 				"Sets the PostGIS Geometry Backend.", /* short_desc */
 				"Sets the PostGIS Geometry Backend (allowed values are 'geos' or 'sfcgal')", /* long_desc */
 				&lwgeom_backend_name, /* valueAddr */
@@ -111,6 +225,19 @@ void lwgeom_init_backend()
 				);
 }
 
+#if 0
+
+backend/utils/misc/guc.h
+int GetNumConfigOptions(void) returns num_guc_variables
+
+backend/utils/misc/guc_tables.h
+struct config_generic ** get_guc_variables(void)
+
+
+
+
+#endif
+
 PG_FUNCTION_INFO_V1(intersects);
 Datum intersects(PG_FUNCTION_ARGS)
 {
@@ -123,6 +250,18 @@ Datum intersection(PG_FUNCTION_ARGS)
     return (*lwgeom_backend->intersection_fn)( fcinfo );
 }
 
+PG_FUNCTION_INFO_V1(difference);
+Datum difference(PG_FUNCTION_ARGS)
+{
+    return (*lwgeom_backend->difference_fn)( fcinfo );
+}
+
+PG_FUNCTION_INFO_V1(geomunion);
+Datum geomunion(PG_FUNCTION_ARGS)
+{
+    return (*lwgeom_backend->union_fn)( fcinfo );
+}
+
 PG_FUNCTION_INFO_V1(area);
 Datum area(PG_FUNCTION_ARGS)
 {
@@ -156,22 +295,18 @@ PG_FUNCTION_INFO_V1(intersects3d_dwithin);
 Datum intersects3d_dwithin(PG_FUNCTION_ARGS)
 {
     double mindist;
-    GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-    GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+    GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+    GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
     LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
     LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-    if (lwgeom1->srid != lwgeom2->srid)
-    {
-	elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-	PG_RETURN_NULL();
-    }
-    
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
+	
     mindist = lwgeom_mindistance3d_tolerance(lwgeom1,lwgeom2,0.0);
     
     PG_FREE_IF_COPY(geom1, 0);
     PG_FREE_IF_COPY(geom2, 1);
     /*empty geometries cases should be right handled since return from underlying
-      functions should be MAXFLOAT which causes false as answer*/
+      functions should be FLT_MAX which causes false as answer*/
     PG_RETURN_BOOL(0.0 == mindist);
 }
diff --git a/postgis/lwgeom_box.c b/postgis/lwgeom_box.c
index e353074..458de6f 100644
--- a/postgis/lwgeom_box.c
+++ b/postgis/lwgeom_box.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_box.c 13391 2015-03-23 16:34:30Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -21,7 +20,6 @@
 #include "../postgis_config.h"
 #include "lwgeom_pg.h"
 #include "liblwgeom.h"
-#include "liblwgeom_internal.h"
 
 #include <math.h>
 #include <float.h>
@@ -34,6 +32,7 @@
 Datum BOX2D_in(PG_FUNCTION_ARGS);
 Datum BOX2D_out(PG_FUNCTION_ARGS);
 Datum LWGEOM_to_BOX2D(PG_FUNCTION_ARGS);
+Datum LWGEOM_to_BOX2DF(PG_FUNCTION_ARGS);
 Datum BOX2D_expand(PG_FUNCTION_ARGS);
 Datum BOX2D_to_BOX3D(PG_FUNCTION_ARGS);
 Datum BOX2D_combine(PG_FUNCTION_ARGS);
@@ -102,7 +101,7 @@ Datum BOX2D_out(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_to_BOX2D);
 Datum LWGEOM_to_BOX2D(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	GBOX gbox;
 
@@ -118,9 +117,30 @@ Datum LWGEOM_to_BOX2D(PG_FUNCTION_ARGS)
 	FLAGS_SET_Z(gbox.flags, 0);
 	FLAGS_SET_M(gbox.flags, 0);
 
+	PG_FREE_IF_COPY(geom, 0);
 	PG_RETURN_POINTER(gbox_copy(&gbox));
 }
 
+
+/*convert a GSERIALIZED to BOX2D */
+PG_FUNCTION_INFO_V1(LWGEOM_to_BOX2DF);
+Datum LWGEOM_to_BOX2DF(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
+	GBOX gbox;
+
+	if ( gserialized_get_gbox_p(geom, &gbox) == LW_FAILURE )
+		PG_RETURN_NULL();
+
+	/* Strip out higher dimensions */
+	FLAGS_SET_Z(gbox.flags, 0);
+	FLAGS_SET_M(gbox.flags, 0);
+
+	PG_FREE_IF_COPY(geom, 0);
+	PG_RETURN_POINTER(gbox_copy(&gbox));
+}
+
+
 /*----------------------------------------------------------
  *	Relational operators for BOXes.
  *		<, >, <=, >=, and == are based on box area.
@@ -379,7 +399,7 @@ Datum BOX2D_combine(PG_FUNCTION_ARGS)
 
 	if (box2d_ptr == NULL)
 	{
-		lwgeom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+		lwgeom = PG_GETARG_GSERIALIZED_P(1);
 		/* empty geom would make getbox2d_p return NULL */
 		if ( ! gserialized_get_gbox_p(lwgeom, &box) ) PG_RETURN_NULL();
 		memcpy(result, &box, sizeof(GBOX));
@@ -395,7 +415,7 @@ Datum BOX2D_combine(PG_FUNCTION_ARGS)
 
 	/*combine_bbox(BOX3D, geometry) => union(BOX3D, geometry->bvol) */
 
-	lwgeom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	lwgeom = PG_GETARG_GSERIALIZED_P(1);
 	if ( ! gserialized_get_gbox_p(lwgeom, &box) )
 	{
 		/* must be the empty geom */
@@ -493,8 +513,8 @@ Datum BOX2D_to_LWGEOM(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(BOX2D_construct);
 Datum BOX2D_construct(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *pgmin = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *pgmax = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *pgmin = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *pgmax = PG_GETARG_GSERIALIZED_P(1);
 	GBOX *result;
 	LWPOINT *minpoint, *maxpoint;
 	double min, max, tmp;
diff --git a/postgis/lwgeom_box3d.c b/postgis/lwgeom_box3d.c
index 5f816e9..73fb7d0 100644
--- a/postgis/lwgeom_box3d.c
+++ b/postgis/lwgeom_box3d.c
@@ -12,7 +12,6 @@
 #include "../postgis_config.h"
 #include "lwgeom_pg.h"
 #include "liblwgeom.h"
-#include "liblwgeom_internal.h"
 
 #include <math.h>
 #include <float.h>
@@ -283,7 +282,7 @@ Datum BOX3D_expand(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_to_BOX3D);
 Datum LWGEOM_to_BOX3D(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	GBOX gbox;
 	BOX3D *result;
@@ -413,8 +412,8 @@ Datum BOX3D_combine(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(BOX3D_construct);
 Datum BOX3D_construct(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *min = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *max = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *min = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *max = PG_GETARG_GSERIALIZED_P(1);
 	BOX3D *result = palloc(sizeof(BOX3D));
 	LWGEOM *minpoint, *maxpoint;
 	POINT3DZ minp, maxp;
diff --git a/postgis/lwgeom_btree.c b/postgis/lwgeom_btree.c
index 4b161b4..b891ebe 100644
--- a/postgis/lwgeom_btree.c
+++ b/postgis/lwgeom_btree.c
@@ -38,27 +38,17 @@ Datum lwgeom_ge(PG_FUNCTION_ARGS);
 Datum lwgeom_gt(PG_FUNCTION_ARGS);
 Datum lwgeom_cmp(PG_FUNCTION_ARGS);
 
-
-#define BTREE_SRID_MISMATCH_SEVERITY ERROR
-
 PG_FUNCTION_INFO_V1(lwgeom_lt);
 Datum lwgeom_lt(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom1 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	GBOX box1;
 	GBOX box2;
 
 	POSTGIS_DEBUG(2, "lwgeom_lt called");
 
-	if (gserialized_get_srid(geom1) != gserialized_get_srid(geom2))
-	{
-		elog(BTREE_SRID_MISMATCH_SEVERITY,
-		     "Operation on two GEOMETRIES with different SRIDs\n");
-		PG_FREE_IF_COPY(geom1, 0);
-		PG_FREE_IF_COPY(geom2, 1);
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
 	POSTGIS_DEBUG(3, "lwgeom_lt passed getSRID test");
 
@@ -100,21 +90,14 @@ Datum lwgeom_lt(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(lwgeom_le);
 Datum lwgeom_le(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom1 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	GBOX box1;
 	GBOX box2;
 
 	POSTGIS_DEBUG(2, "lwgeom_le called");
 
-	if (gserialized_get_srid(geom1) != gserialized_get_srid(geom2))
-	{
-		elog(BTREE_SRID_MISMATCH_SEVERITY,
-		     "Operation on two GEOMETRIES with different SRIDs\n");
-		PG_FREE_IF_COPY(geom1, 0);
-		PG_FREE_IF_COPY(geom2, 1);
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
 	gserialized_get_gbox_p(geom1, &box1);
 	gserialized_get_gbox_p(geom2, &box2);
@@ -164,8 +147,8 @@ Datum lwgeom_le(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(lwgeom_eq);
 Datum lwgeom_eq(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom1 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	GBOX box1;
 	GBOX box2;
   bool empty1, empty2;
@@ -173,14 +156,7 @@ Datum lwgeom_eq(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "lwgeom_eq called");
 
-	if (gserialized_get_srid(geom1) != gserialized_get_srid(geom2))
-	{
-		elog(BTREE_SRID_MISMATCH_SEVERITY,
-		     "Operation on two GEOMETRIES with different SRIDs\n");
-		PG_FREE_IF_COPY(geom1, 0);
-		PG_FREE_IF_COPY(geom2, 1);
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
 	gbox_init(&box1);
 	gbox_init(&box2);
@@ -210,21 +186,14 @@ Datum lwgeom_eq(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(lwgeom_ge);
 Datum lwgeom_ge(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom1 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	GBOX box1;
 	GBOX box2;
 
 	POSTGIS_DEBUG(2, "lwgeom_ge called");
 
-	if (gserialized_get_srid(geom1) != gserialized_get_srid(geom2))
-	{
-		elog(BTREE_SRID_MISMATCH_SEVERITY,
-		     "Operation on two GEOMETRIES with different SRIDs\n");
-		PG_FREE_IF_COPY(geom1, 0);
-		PG_FREE_IF_COPY(geom2, 1);
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
 	gserialized_get_gbox_p(geom1, &box1);
 	gserialized_get_gbox_p(geom2, &box2);
@@ -274,21 +243,14 @@ Datum lwgeom_ge(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(lwgeom_gt);
 Datum lwgeom_gt(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom1 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	GBOX box1;
 	GBOX box2;
 
 	POSTGIS_DEBUG(2, "lwgeom_gt called");
 
-	if (gserialized_get_srid(geom1) != gserialized_get_srid(geom2))
-	{
-		elog(BTREE_SRID_MISMATCH_SEVERITY,
-		     "Operation on two GEOMETRIES with different SRIDs\n");
-		PG_FREE_IF_COPY(geom1, 0);
-		PG_FREE_IF_COPY(geom2, 1);
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
 	gserialized_get_gbox_p(geom1, &box1);
 	gserialized_get_gbox_p(geom2, &box2);
@@ -334,21 +296,14 @@ Datum lwgeom_gt(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(lwgeom_cmp);
 Datum lwgeom_cmp(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom1 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	GBOX box1;
 	GBOX box2;
 
 	POSTGIS_DEBUG(2, "lwgeom_cmp called");
 
-	if (gserialized_get_srid(geom1) != gserialized_get_srid(geom2))
-	{
-		elog(BTREE_SRID_MISMATCH_SEVERITY,
-		     "Operation on two GEOMETRIES with different SRIDs\n");
-		PG_FREE_IF_COPY(geom1, 0);
-		PG_FREE_IF_COPY(geom2, 1);
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
 	gserialized_get_gbox_p(geom1, &box1);
 	gserialized_get_gbox_p(geom2, &box2);
diff --git a/postgis/lwgeom_dump.c b/postgis/lwgeom_dump.c
index 84eb478..9479135 100644
--- a/postgis/lwgeom_dump.c
+++ b/postgis/lwgeom_dump.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_dump.c 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -31,6 +30,7 @@
 
 Datum LWGEOM_dump(PG_FUNCTION_ARGS);
 Datum LWGEOM_dump_rings(PG_FUNCTION_ARGS);
+Datum ST_Subdivide(PG_FUNCTION_ARGS);
 
 typedef struct GEOMDUMPNODE_T
 {
@@ -79,7 +79,7 @@ Datum LWGEOM_dump(PG_FUNCTION_ARGS)
 
 		oldcontext = MemoryContextSwitchTo(newcontext);
 
-		pglwgeom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+		pglwgeom = PG_GETARG_GSERIALIZED_P_COPY(0);
 		lwgeom = lwgeom_from_gserialized(pglwgeom);
 
 		/* Create function state */
@@ -222,10 +222,10 @@ Datum LWGEOM_dump_rings(PG_FUNCTION_ARGS)
 
 		oldcontext = MemoryContextSwitchTo(newcontext);
 
-		pglwgeom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+		pglwgeom = PG_GETARG_GSERIALIZED_P_COPY(0);
 		if ( gserialized_get_type(pglwgeom) != POLYGONTYPE )
 		{
-			lwerror("Input is not a polygon");
+			elog(ERROR, "Input is not a polygon");
 		}
 
 		lwgeom = lwgeom_from_gserialized(pglwgeom);
@@ -300,3 +300,105 @@ Datum LWGEOM_dump_rings(PG_FUNCTION_ARGS)
 
 }
 
+
+struct FLATCOLLECTIONDUMPSTATE
+{
+	int geomnum;
+	LWCOLLECTION *col;
+};
+
+/*
+* Break an object up into smaller objects of no more than N vertices 
+*/
+PG_FUNCTION_INFO_V1(ST_Subdivide);
+Datum ST_Subdivide(PG_FUNCTION_ARGS)
+{
+#if POSTGIS_GEOS_VERSION < 35
+
+	elog(ERROR, "The GEOS version this PostGIS binary "
+	        "was compiled against (%d) doesn't support "
+	        "'%s' function (3.5.0+ required)",
+	        POSTGIS_GEOS_VERSION, __func__);
+	PG_RETURN_NULL();
+
+#else /* POSTGIS_GEOS_VERSION >= 35 */
+
+	typedef struct
+	{
+		int nextgeom;
+		int numgeoms;
+		LWCOLLECTION *col;
+	} collection_fctx;
+
+	FuncCallContext *funcctx;
+	collection_fctx *fctx;
+	MemoryContext oldcontext;
+
+	/* stuff done only on the first call of the function */
+	if (SRF_IS_FIRSTCALL())
+	{
+		GSERIALIZED *gser;
+		LWGEOM *geom;
+		LWCOLLECTION *col;
+		int maxvertices = 256;
+
+		/* 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);
+
+		/*
+		* Get the geometry value 
+		*/
+		gser = PG_GETARG_GSERIALIZED_P(0);
+		geom = lwgeom_from_gserialized(gser);
+		
+		/*
+		* Get the max vertices value 
+		*/
+		if ( PG_NARGS() > 1 && ! PG_ARGISNULL(1) )
+			maxvertices = PG_GETARG_INT32(1);
+		
+		/*
+		* Compute the subdivision of the geometry
+		*/
+		col = lwgeom_subdivide(geom, maxvertices);
+		
+		if ( ! col ) 
+			SRF_RETURN_DONE(funcctx);
+
+		/* allocate memory for user context */
+		fctx = (collection_fctx *) palloc(sizeof(collection_fctx));
+
+		/* initialize state */
+		fctx->nextgeom = 0;
+		fctx->numgeoms = col->ngeoms;
+		fctx->col = col;
+
+		/* save user context, switch back to function context */
+		funcctx->user_fctx = fctx;
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+	fctx = funcctx->user_fctx;
+
+	if (fctx->nextgeom < fctx->numgeoms)
+	{
+		GSERIALIZED *gpart = geometry_serialize(fctx->col->geoms[fctx->nextgeom]);
+		fctx->nextgeom++;
+		SRF_RETURN_NEXT(funcctx, PointerGetDatum(gpart));
+	}
+	else
+	{
+		/* do when there is no more left */
+		SRF_RETURN_DONE(funcctx);
+	}
+	
+#endif /* POSTGIS_GEOS_VERSION >= 35 */
+}
+
diff --git a/postgis/lwgeom_dumppoints.c b/postgis/lwgeom_dumppoints.c
index c26d514..7c27578 100644
--- a/postgis/lwgeom_dumppoints.c
+++ b/postgis/lwgeom_dumppoints.c
@@ -8,6 +8,7 @@
 #include "funcapi.h"
 
 #include "../postgis_config.h"
+#include "lwgeom_pg.h"
 #if POSTGIS_PGSQL_VERSION > 92
 #include "access/htup_details.h"
 #endif
@@ -69,7 +70,7 @@ Datum LWGEOM_dumppoints(PG_FUNCTION_ARGS) {
 		oldcontext = MemoryContextSwitchTo(newcontext);
 
 		/* get a local copy of what we're doing a dump points on */
-		pglwgeom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+		pglwgeom = PG_GETARG_GSERIALIZED_P_COPY(0);
 		lwgeom = lwgeom_from_gserialized(pglwgeom);
 
 		/* return early if nothing to do */
diff --git a/postgis/lwgeom_export.c b/postgis/lwgeom_export.c
index ab4d8e5..96357b2 100644
--- a/postgis/lwgeom_export.c
+++ b/postgis/lwgeom_export.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id:$
  *
  * PostGIS - Export functions for PostgreSQL/PostGIS
  * Copyright 2009-2011 Olivier Courtin <olivier.courtin at oslandia.com>
@@ -26,8 +25,10 @@
 Datum LWGEOM_asGML(PG_FUNCTION_ARGS);
 Datum LWGEOM_asKML(PG_FUNCTION_ARGS);
 Datum LWGEOM_asGeoJson(PG_FUNCTION_ARGS);
+Datum LWGEOM_asGeoJson_old(PG_FUNCTION_ARGS);
 Datum LWGEOM_asSVG(PG_FUNCTION_ARGS);
 Datum LWGEOM_asX3D(PG_FUNCTION_ARGS);
+Datum LWGEOM_asEncodedPolyline(PG_FUNCTION_ARGS);
 
 /*
  * Retrieve an SRS from a given SRID
@@ -112,7 +113,6 @@ int getSRIDbySRS(const char* srs)
 		SPI_finish();
 		return 0;
 	}
-
 	sprintf(query, 
 		"SELECT srid "
 		"FROM spatial_ref_sys, "
@@ -197,7 +197,7 @@ Datum LWGEOM_asGML(PG_FUNCTION_ARGS)
 
 	/* Get the geometry */
 	if ( PG_ARGISNULL(1) ) PG_RETURN_NULL();
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Retrieve precision if any (default is max) */
 	if (PG_NARGS() >2 && !PG_ARGISNULL(2))
@@ -312,7 +312,7 @@ Datum LWGEOM_asKML(PG_FUNCTION_ARGS)
 
 	/* Get the geometry */
 	if ( PG_ARGISNULL(1) ) PG_RETURN_NULL();
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Retrieve precision if any (default is max) */
 	if (PG_NARGS() >2 && !PG_ARGISNULL(2))
@@ -361,6 +361,29 @@ Datum LWGEOM_asKML(PG_FUNCTION_ARGS)
 
 
 /**
+ * Encode Feature in GeoJson (Old C Signature)
+ * ST_AsGeoJSON(version, geom, precision, options)
+ * why was this written with a version param when there 
+ * is only one version?
+ */
+PG_FUNCTION_INFO_V1(LWGEOM_asGeoJson_old);
+Datum LWGEOM_asGeoJson_old(PG_FUNCTION_ARGS)
+{
+	switch( PG_NARGS() )
+	{
+	case 2: 
+		return DirectFunctionCall1(LWGEOM_asGeoJson, PG_GETARG_DATUM(1));
+	case 3:
+		return DirectFunctionCall2(LWGEOM_asGeoJson, PG_GETARG_DATUM(1), PG_GETARG_DATUM(2));
+	case 4:
+		return DirectFunctionCall3(LWGEOM_asGeoJson, PG_GETARG_DATUM(1), PG_GETARG_DATUM(2), PG_GETARG_DATUM(3));
+	default:
+		elog(ERROR, "bad call in %s", __func__);
+	}
+	PG_RETURN_NULL();
+}
+
+/**
  * Encode Feature in GeoJson
  */
 PG_FUNCTION_INFO_V1(LWGEOM_asGeoJson);
@@ -370,32 +393,24 @@ Datum LWGEOM_asGeoJson(PG_FUNCTION_ARGS)
 	LWGEOM *lwgeom;
 	char *geojson;
 	text *result;
-	int srid;
-	int version;
-	int option = 0;
 	int has_bbox = 0;
 	int precision = DBL_DIG;
-	char * srs = NULL;
-
-	/* Get the version */
-	version = PG_GETARG_INT32(0);
-	if ( version != 1)
-	{
-		elog(ERROR, "Only GeoJSON 1 is supported");
-		PG_RETURN_NULL();
-	}
+	char *srs = NULL;
 
 	/* Get the geometry */
-	if (PG_ARGISNULL(1) ) PG_RETURN_NULL();
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	if ( PG_ARGISNULL(0) ) 
+		PG_RETURN_NULL();
+	
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	/* Retrieve precision if any (default is max) */
-	if (PG_NARGS() >2 && !PG_ARGISNULL(2))
+	if ( PG_NARGS() > 1 && !PG_ARGISNULL(1) )
 	{
-		precision = PG_GETARG_INT32(2);
+		precision = PG_GETARG_INT32(1);
 		if ( precision > DBL_DIG )
 			precision = DBL_DIG;
-		else if ( precision < 0 ) precision = 0;
+		else if ( precision < 0 ) 
+			precision = 0;
 	}
 
 	/* Retrieve output option
@@ -404,39 +419,45 @@ Datum LWGEOM_asGeoJson(PG_FUNCTION_ARGS)
 	 * 2 = short crs
 	 * 4 = long crs
 	 */
-	if (PG_NARGS() >3 && !PG_ARGISNULL(3))
-		option = PG_GETARG_INT32(3);
-
-	if (option & 2 || option & 4)
+	if ( PG_NARGS() > 2 && !PG_ARGISNULL(2) )
 	{
-		srid = gserialized_get_srid(geom);
-		if ( srid != SRID_UNKNOWN )
+		int option = PG_GETARG_INT32(2);
+
+		if ( option & 2 || option & 4 )
 		{
-			if (option & 2) srs = getSRSbySRID(srid, true);
-			if (option & 4) srs = getSRSbySRID(srid, false);
-			if (!srs)
+			int srid = gserialized_get_srid(geom);
+			if ( srid != SRID_UNKNOWN )
 			{
-				elog(	ERROR,
-				      "SRID %i unknown in spatial_ref_sys table",
-				      srid);
-				PG_RETURN_NULL();
+				if ( option & 2 )
+					srs = getSRSbySRID(srid, true);
+			
+				if ( option & 4 )
+					srs = getSRSbySRID(srid, false);
+			
+				if ( !srs )
+				{
+					elog(ERROR,
+					      "SRID %i unknown in spatial_ref_sys table",
+					      srid);
+					PG_RETURN_NULL();
+				}
 			}
 		}
-	}
 
-	if (option & 1) has_bbox = 1;
+		if (option & 1) 
+			has_bbox = 1;
+	}
 
 	lwgeom = lwgeom_from_gserialized(geom);
 	geojson = lwgeom_to_geojson(lwgeom, srs, precision, has_bbox);
 	lwgeom_free(lwgeom);
 
-	PG_FREE_IF_COPY(geom, 1);
 	if (srs) pfree(srs);
 
 	result = cstring2text(geojson);
-
 	lwfree(geojson);
 
+	PG_FREE_IF_COPY(geom, 0);
 	PG_RETURN_TEXT_P(result);
 }
 
@@ -456,7 +477,7 @@ Datum LWGEOM_asSVG(PG_FUNCTION_ARGS)
 
 	if ( PG_ARGISNULL(0) ) PG_RETURN_NULL();
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	/* check for relative path notation */
 	if ( PG_NARGS() > 1 && ! PG_ARGISNULL(1) )
@@ -511,7 +532,7 @@ Datum LWGEOM_asX3D(PG_FUNCTION_ARGS)
 
 	/* Get the geometry */
 	if ( PG_ARGISNULL(1) ) PG_RETURN_NULL();
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom = PG_GETARG_GSERIALIZED_P(1);
 
 	/* Retrieve precision if any (default is max) */
 	if (PG_NARGS() >2 && !PG_ARGISNULL(2))
@@ -526,6 +547,8 @@ Datum LWGEOM_asX3D(PG_FUNCTION_ARGS)
 	/* retrieve option */
 	if (PG_NARGS() >3 && !PG_ARGISNULL(3))
 		option = PG_GETARG_INT32(3);
+		
+	
 
 	/* retrieve defid */
 	if (PG_NARGS() >4 && !PG_ARGISNULL(4))
@@ -548,12 +571,22 @@ Datum LWGEOM_asX3D(PG_FUNCTION_ARGS)
 		}
 	}
 
+	lwgeom = lwgeom_from_gserialized(geom);
 	srid = gserialized_get_srid(geom);
 	if (srid == SRID_UNKNOWN)      srs = NULL;
 	else if (option & 1) srs = getSRSbySRID(srid, false);
 	else                 srs = getSRSbySRID(srid, true);
-
-	lwgeom = lwgeom_from_gserialized(geom);
+	
+	if (option & LW_X3D_USE_GEOCOORDS) {
+		if (srid != 4326) {
+			PG_FREE_IF_COPY(geom, 0);
+			/** TODO: we need to support UTM and other coordinate systems supported by X3D eventually 
+			http://www.web3d.org/documents/specifications/19775-1/V3.2/Part01/components/geodata.html#t-earthgeoids **/
+			elog(ERROR, "Only SRID 4326 is supported for geocoordinates.");
+			PG_RETURN_NULL();
+		}
+	}
+	
 
 	x3d = lwgeom_to_x3d3(lwgeom, srs, precision,option, defid);
 
@@ -565,3 +598,41 @@ Datum LWGEOM_asX3D(PG_FUNCTION_ARGS)
 
 	PG_RETURN_TEXT_P(result);
 }
+
+/**
+ * Encode feature as Encoded Polyline
+ */
+PG_FUNCTION_INFO_V1(LWGEOM_asEncodedPolyline);
+Datum LWGEOM_asEncodedPolyline(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *geom;
+	LWGEOM *lwgeom;
+	char *encodedpolyline;
+	int precision = 5;
+	text *result;
+
+	if ( PG_ARGISNULL(0) ) PG_RETURN_NULL();
+
+	geom = PG_GETARG_GSERIALIZED_P(0);
+	if (gserialized_get_srid(geom) != 4326) {
+		PG_FREE_IF_COPY(geom, 0);
+		elog(ERROR, "Only SRID 4326 is supported.");
+		PG_RETURN_NULL();
+	}
+	lwgeom = lwgeom_from_gserialized(geom);
+	PG_FREE_IF_COPY(geom, 0);
+	
+	if (PG_NARGS() >2 && !PG_ARGISNULL(2))
+	{
+		precision = PG_GETARG_INT32(2);
+		if ( precision < 0 ) precision = 5;
+	}
+
+	encodedpolyline = lwgeom_to_encoded_polyline(lwgeom, precision);
+	lwgeom_free(lwgeom);
+
+  result = cstring2text(encodedpolyline);
+	lwfree(encodedpolyline);
+
+	PG_RETURN_TEXT_P(result);
+}
diff --git a/postgis/lwgeom_export.h b/postgis/lwgeom_export.h
index a1fb9d9..d8e1021 100644
--- a/postgis/lwgeom_export.h
+++ b/postgis/lwgeom_export.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_export.h 9324 2012-02-27 22:08:12Z pramsey $
  *
  * PostGIS - Export functions for PostgreSQL/PostGIS
  * Copyright 2009 Olivier Courtin <olivier.courtin at oslandia.com>
diff --git a/postgis/lwgeom_functions_analytic.c b/postgis/lwgeom_functions_analytic.c
index 2816901..2f6c055 100644
--- a/postgis/lwgeom_functions_analytic.c
+++ b/postgis/lwgeom_functions_analytic.c
@@ -13,7 +13,7 @@
 #include "postgres.h"
 #include "fmgr.h"
 #include "liblwgeom.h"
-#include "liblwgeom_internal.h"
+#include "liblwgeom_internal.h"  /* For FP comparators. */
 #include "lwgeom_pg.h"
 #include "math.h"
 #include "lwgeom_rtree.h"
@@ -31,8 +31,10 @@
 
 /* Prototypes */
 Datum LWGEOM_simplify2d(PG_FUNCTION_ARGS);
+Datum LWGEOM_SetEffectiveArea(PG_FUNCTION_ARGS);
 Datum ST_LineCrossingDirection(PG_FUNCTION_ARGS);
 
+
 double determineSide(POINT2D *seg1, POINT2D *seg2, POINT2D *point);
 int isOnSegment(POINT2D *seg1, POINT2D *seg2, POINT2D *point);
 int point_in_ring(POINTARRAY *pts, POINT2D *point);
@@ -42,20 +44,58 @@ int point_in_ring_rtree(RTREE_NODE *root, POINT2D *point);
 PG_FUNCTION_INFO_V1(LWGEOM_simplify2d);
 Datum LWGEOM_simplify2d(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
+	double dist = PG_GETARG_FLOAT8(1);
+	GSERIALIZED *result;
+	int type = gserialized_get_type(geom);
+	LWGEOM *in, *out;
+	bool preserve_collapsed = false;
+
+	/* Handle optional argument to preserve collapsed features */
+	if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
+		preserve_collapsed = true;
+
+	/* Can't simplify points! */
+	if ( type == POINTTYPE || type == MULTIPOINTTYPE )
+		PG_RETURN_POINTER(geom);
+		
+	in = lwgeom_from_gserialized(geom);
+
+	out = lwgeom_simplify(in, dist, preserve_collapsed);
+	if ( ! out ) PG_RETURN_NULL();
+
+	/* COMPUTE_BBOX TAINTING */
+	if ( in->bbox ) lwgeom_add_bbox(out);
+
+	result = geometry_serialize(out);
+	lwgeom_free(out);
+	PG_FREE_IF_COPY(geom, 0);
+	PG_RETURN_POINTER(result);
+}
+
+PG_FUNCTION_INFO_V1(LWGEOM_SetEffectiveArea);
+Datum LWGEOM_SetEffectiveArea(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *result;
-  int type = gserialized_get_type(geom);
+	int type = gserialized_get_type(geom);
 	LWGEOM *in;
 	LWGEOM *out;
-	double dist;
+	double area=0;
+	int set_area=0;
+
+	if ( type == POINTTYPE || type == MULTIPOINTTYPE )
+		PG_RETURN_POINTER(geom);
+
+	if ( (PG_NARGS()>1) && (!PG_ARGISNULL(1)) )
+		area = PG_GETARG_FLOAT8(1);
 
-  if ( type == POINTTYPE || type == MULTIPOINTTYPE )
-    PG_RETURN_POINTER(geom);
+	if ( (PG_NARGS()>2) && (!PG_ARGISNULL(2)) )
+	set_area = PG_GETARG_INT32(2);
 
-	dist = PG_GETARG_FLOAT8(1);
 	in = lwgeom_from_gserialized(geom);
 
-	out = lwgeom_simplify(in, dist);
+	out = lwgeom_set_effective_area(in,set_area, area);
 	if ( ! out ) PG_RETURN_NULL();
 
 	/* COMPUTE_BBOX TAINTING */
@@ -67,6 +107,7 @@ Datum LWGEOM_simplify2d(PG_FUNCTION_ARGS)
 	PG_RETURN_POINTER(result);
 }
 
+	
 /***********************************************************************
  * --strk at keybit.net;
  ***********************************************************************/
@@ -86,7 +127,7 @@ Datum LWGEOM_line_interpolate_point(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(LWGEOM_line_interpolate_point);
 Datum LWGEOM_line_interpolate_point(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *gser = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *gser = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *result;
 	double distance = PG_GETARG_FLOAT8(1);
 	LWLINE *line;
@@ -241,319 +282,40 @@ Datum LWGEOM_line_interpolate_point(PG_FUNCTION_ARGS)
 #define CHECK_RING_IS_CLOSE
 #define SAMEPOINT(a,b) ((a)->x==(b)->x&&(a)->y==(b)->y)
 
-typedef struct gridspec_t
-{
-	double ipx;
-	double ipy;
-	double ipz;
-	double ipm;
-	double xsize;
-	double ysize;
-	double zsize;
-	double msize;
-}
-gridspec;
 
 
 /* Forward declarations */
-LWGEOM *lwgeom_grid(LWGEOM *lwgeom, gridspec *grid);
-LWCOLLECTION *lwcollection_grid(LWCOLLECTION *coll, gridspec *grid);
-LWPOINT * lwpoint_grid(LWPOINT *point, gridspec *grid);
-LWPOLY * lwpoly_grid(LWPOLY *poly, gridspec *grid);
-LWLINE *lwline_grid(LWLINE *line, gridspec *grid);
-LWCIRCSTRING *lwcirc_grid(LWCIRCSTRING *line, gridspec *grid);
-POINTARRAY *ptarray_grid(POINTARRAY *pa, gridspec *grid);
 Datum LWGEOM_snaptogrid(PG_FUNCTION_ARGS);
 Datum LWGEOM_snaptogrid_pointoff(PG_FUNCTION_ARGS);
-static int grid_isNull(const gridspec *grid);
-#if POSTGIS_DEBUG_LEVEL >=4
-static void grid_print(const gridspec *grid);
-#endif
-
-/* A NULL grid is a grid in which size in all dimensions is 0 */
-static int
-grid_isNull(const gridspec *grid)
-{
-	if ( grid->xsize==0 &&
-	        grid->ysize==0 &&
-	        grid->zsize==0 &&
-	        grid->msize==0 ) return 1;
-	else return 0;
-}
-
-#if POSTGIS_DEBUG_LEVEL >= 4
-/* Print grid using given reporter */
-static void
-grid_print(const gridspec *grid)
-{
-	lwnotice("GRID(%g %g %g %g, %g %g %g %g)",
-	         grid->ipx, grid->ipy, grid->ipz, grid->ipm,
-	         grid->xsize, grid->ysize, grid->zsize, grid->msize);
-}
-#endif
-
-/*
- * Stick an array of points to the given gridspec.
- * Return "gridded" points in *outpts and their number in *outptsn.
- *
- * Two consecutive points falling on the same grid cell are collapsed
- * into one single point.
- *
- */
-POINTARRAY *
-ptarray_grid(POINTARRAY *pa, gridspec *grid)
-{
-	POINT4D pbuf;
-	int ipn; /* input point numbers */
-	POINTARRAY *dpa;
-
-	POSTGIS_DEBUGF(2, "ptarray_grid called on %p", pa);
-
-	dpa = ptarray_construct_empty(FLAGS_GET_Z(pa->flags),FLAGS_GET_M(pa->flags), pa->npoints);
-
-	for (ipn=0; ipn<pa->npoints; ++ipn)
-	{
-
-		getPoint4d_p(pa, ipn, &pbuf);
-
-		if ( grid->xsize )
-			pbuf.x = rint((pbuf.x - grid->ipx)/grid->xsize) *
-			         grid->xsize + grid->ipx;
-
-		if ( grid->ysize )
-			pbuf.y = rint((pbuf.y - grid->ipy)/grid->ysize) *
-			         grid->ysize + grid->ipy;
-
-		if ( FLAGS_GET_Z(pa->flags) && grid->zsize )
-			pbuf.z = rint((pbuf.z - grid->ipz)/grid->zsize) *
-			         grid->zsize + grid->ipz;
-
-		if ( FLAGS_GET_M(pa->flags) && grid->msize )
-			pbuf.m = rint((pbuf.m - grid->ipm)/grid->msize) *
-			         grid->msize + grid->ipm;
-
-		ptarray_append_point(dpa, &pbuf, LW_FALSE);
-
-	}
-
-	return dpa;
-}
-
-LWLINE *
-lwline_grid(LWLINE *line, gridspec *grid)
-{
-	LWLINE *oline;
-	POINTARRAY *opa;
-
-	opa = ptarray_grid(line->points, grid);
-
-	/* Skip line3d with less then 2 points */
-	if ( opa->npoints < 2 ) return NULL;
-
-	/* TODO: grid bounding box... */
-	oline = lwline_construct(line->srid, NULL, opa);
-
-	return oline;
-}
-
-LWCIRCSTRING *
-lwcirc_grid(LWCIRCSTRING *line, gridspec *grid)
-{
-	LWCIRCSTRING *oline;
-	POINTARRAY *opa;
-
-	opa = ptarray_grid(line->points, grid);
-
-	/* Skip line3d with less then 2 points */
-	if ( opa->npoints < 2 ) return NULL;
-
-	/* TODO: grid bounding box... */
-	oline = lwcircstring_construct(line->srid, NULL, opa);
-
-	return oline;
-}
-
-LWPOLY *
-lwpoly_grid(LWPOLY *poly, gridspec *grid)
-{
-	LWPOLY *opoly;
-	int ri;
-	POINTARRAY **newrings = NULL;
-	int nrings = 0;
-#if 0
-	/*
-	 * TODO: control this assertion
-	 * it is assumed that, since the grid size will be a pixel,
-	 * a visible ring should show at least a white pixel inside,
-	 * thus, for a square, that would be grid_xsize*grid_ysize
-	 */
-	double minvisiblearea = grid->xsize * grid->ysize;
-#endif
-
-	nrings = 0;
-
-	POSTGIS_DEBUGF(3, "grid_polygon3d: applying grid to polygon with %d rings",
-	         poly->nrings);
 
-	for (ri=0; ri<poly->nrings; ri++)
-	{
-		POINTARRAY *ring = poly->rings[ri];
-		POINTARRAY *newring;
-
-#if POSTGIS_DEBUG_LEVEL >= 4
-		POINT2D p1, p2;
-		getPoint2d_p(ring, 0, &p1);
-		getPoint2d_p(ring, ring->npoints-1, &p2);
-		if ( ! SAMEPOINT(&p1, &p2) )
-			POSTGIS_DEBUG(4, "Before gridding: first point != last point");
-#endif
-
-		newring = ptarray_grid(ring, grid);
-
-		/* Skip ring if not composed by at least 4 pts (3 segments) */
-		if ( newring->npoints < 4 )
-		{
-			pfree(newring);
-
-			POSTGIS_DEBUGF(3, "grid_polygon3d: ring%d skipped ( <4 pts )", ri);
-
-			if ( ri ) continue;
-			else break; /* this is the external ring, no need to work on holes */
-		}
-
-#if POSTGIS_DEBUG_LEVEL >= 4
-		getPoint2d_p(newring, 0, &p1);
-		getPoint2d_p(newring, newring->npoints-1, &p2);
-		if ( ! SAMEPOINT(&p1, &p2) )
-			POSTGIS_DEBUG(4, "After gridding: first point != last point");
-#endif
-
-		POSTGIS_DEBUGF(3, "grid_polygon3d: ring%d simplified from %d to %d points", ri,
-		         ring->npoints, newring->npoints);
-
-		/*
-		 * Add ring to simplified ring array
-		 * (TODO: dinamic allocation of pts_per_ring)
-		 */
-		if ( ! nrings )
-		{
-			newrings = palloc(sizeof(POINTARRAY *));
-		}
-		else
-		{
-			newrings = repalloc(newrings, sizeof(POINTARRAY *)*(nrings+1));
-		}
-		if ( ! newrings )
-		{
-			elog(ERROR, "Out of virtual memory");
-			return NULL;
-		}
-		newrings[nrings++] = newring;
-	}
-
-	POSTGIS_DEBUGF(3, "grid_polygon3d: simplified polygon with %d rings", nrings);
-
-	if ( ! nrings ) return NULL;
-
-	opoly = lwpoly_construct(poly->srid, NULL, nrings, newrings);
-	return opoly;
-}
-
-LWPOINT *
-lwpoint_grid(LWPOINT *point, gridspec *grid)
-{
-	LWPOINT *opoint;
-	POINTARRAY *opa;
-
-	opa = ptarray_grid(point->point, grid);
-
-	/* TODO: grid bounding box ? */
-	opoint = lwpoint_construct(point->srid, NULL, opa);
-
-	POSTGIS_DEBUG(2, "lwpoint_grid called");
-
-	return opoint;
-}
-
-LWCOLLECTION *
-lwcollection_grid(LWCOLLECTION *coll, gridspec *grid)
-{
-	uint32 i;
-	LWGEOM **geoms;
-	uint32 ngeoms=0;
 
-	geoms = palloc(coll->ngeoms * sizeof(LWGEOM *));
-
-	for (i=0; i<coll->ngeoms; i++)
-	{
-		LWGEOM *g = lwgeom_grid(coll->geoms[i], grid);
-		if ( g ) geoms[ngeoms++] = g;
-	}
-
-	if ( ! ngeoms ) return lwcollection_construct_empty(coll->type, coll->srid, 0, 0);
-
-	return lwcollection_construct(coll->type, coll->srid,
-	                              NULL, ngeoms, geoms);
-}
-
-LWGEOM *
-lwgeom_grid(LWGEOM *lwgeom, gridspec *grid)
-{
-	switch (lwgeom->type)
-	{
-	case POINTTYPE:
-		return (LWGEOM *)lwpoint_grid((LWPOINT *)lwgeom, grid);
-	case LINETYPE:
-		return (LWGEOM *)lwline_grid((LWLINE *)lwgeom, grid);
-	case POLYGONTYPE:
-		return (LWGEOM *)lwpoly_grid((LWPOLY *)lwgeom, grid);
-	case MULTIPOINTTYPE:
-	case MULTILINETYPE:
-	case MULTIPOLYGONTYPE:
-	case COLLECTIONTYPE:
-	case COMPOUNDTYPE:
-		return (LWGEOM *)lwcollection_grid((LWCOLLECTION *)lwgeom, grid);
-	case CIRCSTRINGTYPE:
-		return (LWGEOM *)lwcirc_grid((LWCIRCSTRING *)lwgeom, grid);
-	default:
-		elog(ERROR, "lwgeom_grid: Unsupported geometry type: %s",
-		     lwtype_name(lwgeom->type));
-		return NULL;
-	}
-}
 
 PG_FUNCTION_INFO_V1(LWGEOM_snaptogrid);
 Datum LWGEOM_snaptogrid(PG_FUNCTION_ARGS)
 {
-	Datum datum;
-	GSERIALIZED *in_geom;
 	LWGEOM *in_lwgeom;
 	GSERIALIZED *out_geom = NULL;
 	LWGEOM *out_lwgeom;
 	gridspec grid;
-	/* BOX3D box3d; */
 
-	if ( PG_ARGISNULL(0) ) PG_RETURN_NULL();
-	datum = PG_GETARG_DATUM(0);
-	in_geom = (GSERIALIZED *)PG_DETOAST_DATUM(datum);
+	GSERIALIZED *in_geom = PG_GETARG_GSERIALIZED_P(0);
 
-	if ( PG_ARGISNULL(1) ) PG_RETURN_NULL();
-	grid.ipx = PG_GETARG_FLOAT8(1);
+	/* Set grid values to zero to start */
+	memset(&grid, 0, sizeof(gridspec));
 
-	if ( PG_ARGISNULL(2) ) PG_RETURN_NULL();
+	grid.ipx = PG_GETARG_FLOAT8(1);
 	grid.ipy = PG_GETARG_FLOAT8(2);
-
-	if ( PG_ARGISNULL(3) ) PG_RETURN_NULL();
 	grid.xsize = PG_GETARG_FLOAT8(3);
-
-	if ( PG_ARGISNULL(4) ) PG_RETURN_NULL();
 	grid.ysize = PG_GETARG_FLOAT8(4);
 
-	/* Do not support gridding Z and M values for now */
-	grid.ipz=grid.ipm=grid.zsize=grid.msize=0;
-
-	/* Return input geometry if grid is null or input geometry is empty */
-	if ( grid_isNull(&grid) || gserialized_is_empty(in_geom) )
+	/* Return input geometry if input geometry is empty */
+	if ( gserialized_is_empty(in_geom) )
+	{
+		PG_RETURN_POINTER(in_geom);
+	}
+	
+	/* Return input geometry if input grid is meaningless */
+	if ( grid.xsize==0 && grid.ysize==0 && grid.zsize==0 && grid.msize==0 )
 	{
 		PG_RETURN_POINTER(in_geom);
 	}
@@ -566,7 +328,8 @@ Datum LWGEOM_snaptogrid(PG_FUNCTION_ARGS)
 	if ( out_lwgeom == NULL ) PG_RETURN_NULL();
 
 	/* COMPUTE_BBOX TAINTING */
-	if ( in_lwgeom->bbox ) lwgeom_add_bbox(out_lwgeom);
+	if ( in_lwgeom->bbox ) 
+		lwgeom_add_bbox(out_lwgeom);
 
 
 	POSTGIS_DEBUGF(3, "SnapToGrid made a %s", lwtype_name(out_lwgeom->type));
@@ -576,10 +339,22 @@ Datum LWGEOM_snaptogrid(PG_FUNCTION_ARGS)
 	PG_RETURN_POINTER(out_geom);
 }
 
+
+#if POSTGIS_DEBUG_LEVEL >= 4
+/* Print grid using given reporter */
+static void
+grid_print(const gridspec *grid)
+{
+	lwpgnotice("GRID(%g %g %g %g, %g %g %g %g)",
+	         grid->ipx, grid->ipy, grid->ipz, grid->ipm,
+	         grid->xsize, grid->ysize, grid->zsize, grid->msize);
+}
+#endif
+
+
 PG_FUNCTION_INFO_V1(LWGEOM_snaptogrid_pointoff);
 Datum LWGEOM_snaptogrid_pointoff(PG_FUNCTION_ARGS)
 {
-	Datum datum;
 	GSERIALIZED *in_geom, *in_point;
 	LWGEOM *in_lwgeom;
 	LWPOINT *in_lwpoint;
@@ -589,29 +364,24 @@ Datum LWGEOM_snaptogrid_pointoff(PG_FUNCTION_ARGS)
 	/* BOX3D box3d; */
 	POINT4D offsetpoint;
 
-	if ( PG_ARGISNULL(0) ) PG_RETURN_NULL();
-	datum = PG_GETARG_DATUM(0);
-	in_geom = (GSERIALIZED *)PG_DETOAST_DATUM(datum);
+	in_geom = PG_GETARG_GSERIALIZED_P(0);
+
+	/* Return input geometry if input geometry is empty */
+	if ( gserialized_is_empty(in_geom) )
+	{
+		PG_RETURN_POINTER(in_geom);
+	}
 
-	if ( PG_ARGISNULL(1) ) PG_RETURN_NULL();
-	datum = PG_GETARG_DATUM(1);
-	in_point = (GSERIALIZED *)PG_DETOAST_DATUM(datum);
+	in_point = PG_GETARG_GSERIALIZED_P(1);
 	in_lwpoint = lwgeom_as_lwpoint(lwgeom_from_gserialized(in_point));
 	if ( in_lwpoint == NULL )
 	{
-		lwerror("Offset geometry must be a point");
+		lwpgerror("Offset geometry must be a point");
 	}
 
-	if ( PG_ARGISNULL(2) ) PG_RETURN_NULL();
 	grid.xsize = PG_GETARG_FLOAT8(2);
-
-	if ( PG_ARGISNULL(3) ) PG_RETURN_NULL();
 	grid.ysize = PG_GETARG_FLOAT8(3);
-
-	if ( PG_ARGISNULL(4) ) PG_RETURN_NULL();
 	grid.zsize = PG_GETARG_FLOAT8(4);
-
-	if ( PG_ARGISNULL(5) ) PG_RETURN_NULL();
 	grid.msize = PG_GETARG_FLOAT8(5);
 
 	/* Take offsets from point geometry */
@@ -626,9 +396,9 @@ Datum LWGEOM_snaptogrid_pointoff(PG_FUNCTION_ARGS)
 #if POSTGIS_DEBUG_LEVEL >= 4
 	grid_print(&grid);
 #endif
-
-	/* Return input geometry if grid is null */
-	if ( grid_isNull(&grid) )
+	
+	/* Return input geometry if input grid is meaningless */
+	if ( grid.xsize==0 && grid.ysize==0 && grid.zsize==0 && grid.msize==0 )
 	{
 		PG_RETURN_POINTER(in_geom);
 	}
@@ -663,8 +433,8 @@ Datum ST_LineCrossingDirection(PG_FUNCTION_ARGS)
 	int type1, type2, rv;
 	LWLINE *l1 = NULL;
 	LWLINE *l2 = NULL;
-	GSERIALIZED *geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
@@ -700,7 +470,7 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(LWGEOM_line_substring);
 Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	double from = PG_GETARG_FLOAT8(1);
 	double to = PG_GETARG_FLOAT8(2);
 	LWGEOM *olwgeom;
diff --git a/postgis/lwgeom_functions_analytic.h b/postgis/lwgeom_functions_analytic.h
index 4307b0b..428087b 100644
--- a/postgis/lwgeom_functions_analytic.h
+++ b/postgis/lwgeom_functions_analytic.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/postgis/lwgeom_functions_basic.c b/postgis/lwgeom_functions_basic.c
index 7debad8..09fc198 100644
--- a/postgis/lwgeom_functions_basic.c
+++ b/postgis/lwgeom_functions_basic.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_functions_basic.c 13659 2015-06-11 19:47:14Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -16,7 +15,8 @@
 #include "utils/array.h"
 #include "utils/geo_decls.h"
 
-#include "liblwgeom_internal.h"
+#include "../postgis_config.h"
+#include "liblwgeom.h"
 #include "lwgeom_pg.h"
 
 #include <math.h>
@@ -103,7 +103,7 @@ Datum ST_IsCollection(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(LWGEOM_mem_size);
 Datum LWGEOM_mem_size(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	size_t size = VARSIZE(geom);
 	PG_FREE_IF_COPY(geom,0);
 	PG_RETURN_INT32(size);
@@ -113,7 +113,7 @@ Datum LWGEOM_mem_size(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_summary);
 Datum LWGEOM_summary(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	char *result;
 	text *mytext;
 	LWGEOM *lwgeom;
@@ -210,7 +210,7 @@ Datum postgis_libxml_version(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_npoints);
 Datum LWGEOM_npoints(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	int npoints = 0;
 
@@ -225,7 +225,7 @@ Datum LWGEOM_npoints(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_nrings);
 Datum LWGEOM_nrings(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	int nrings = 0;
 
@@ -245,7 +245,7 @@ Datum LWGEOM_nrings(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_area_polygon);
 Datum LWGEOM_area_polygon(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	double area = 0.0;
 
@@ -269,7 +269,7 @@ Datum LWGEOM_area_polygon(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_length2d_linestring);
 Datum LWGEOM_length2d_linestring(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	double dist = lwgeom_length_2d(lwgeom);
 	lwgeom_free(lwgeom);
@@ -287,7 +287,7 @@ Datum LWGEOM_length2d_linestring(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_length_linestring);
 Datum LWGEOM_length_linestring(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	double dist = lwgeom_length(lwgeom);
 	lwgeom_free(lwgeom);
@@ -305,7 +305,7 @@ Datum LWGEOM_length_linestring(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_perimeter_poly);
 Datum LWGEOM_perimeter_poly(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	double perimeter = 0.0;
 	
@@ -324,7 +324,7 @@ Datum LWGEOM_perimeter_poly(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_perimeter2d_poly);
 Datum LWGEOM_perimeter2d_poly(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	double perimeter = 0.0;
 	
@@ -338,7 +338,7 @@ Datum LWGEOM_perimeter2d_poly(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_force_2d);
 Datum LWGEOM_force_2d(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *pg_geom_in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *pg_geom_in = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *pg_geom_out;
 	LWGEOM *lwg_in, *lwg_out;
 
@@ -359,7 +359,7 @@ Datum LWGEOM_force_2d(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_force_3dz);
 Datum LWGEOM_force_3dz(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *pg_geom_in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *pg_geom_in = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *pg_geom_out;
 	LWGEOM *lwg_in, *lwg_out;
 
@@ -381,7 +381,7 @@ Datum LWGEOM_force_3dz(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_force_3dm);
 Datum LWGEOM_force_3dm(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *pg_geom_in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *pg_geom_in = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *pg_geom_out;
 	LWGEOM *lwg_in, *lwg_out;
 
@@ -403,7 +403,7 @@ Datum LWGEOM_force_3dm(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_force_4d);
 Datum LWGEOM_force_4d(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *pg_geom_in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *pg_geom_in = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *pg_geom_out;
 	LWGEOM *lwg_in, *lwg_out;
 
@@ -425,7 +425,7 @@ Datum LWGEOM_force_4d(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_force_collection);
 Datum LWGEOM_force_collection(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *result;
 	LWGEOM **lwgeoms;
 	LWGEOM *lwgeom;
@@ -480,7 +480,7 @@ Datum LWGEOM_force_collection(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_force_multi);
 Datum LWGEOM_force_multi(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *result;
 	LWGEOM *lwgeom;
 	LWGEOM *ogeom;
@@ -519,11 +519,34 @@ Datum LWGEOM_force_multi(PG_FUNCTION_ARGS)
 	PG_RETURN_POINTER(result);
 }
 
+/** transform input geometry to a curved type */
+PG_FUNCTION_INFO_V1(LWGEOM_force_curve);
+Datum LWGEOM_force_curve(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *result;
+	LWGEOM *lwgeom;
+	LWGEOM *ogeom;
+
+	POSTGIS_DEBUG(2, "LWGEOM_force_curve called");
+
+  /* TODO: early out if input is already a curve */
+
+	lwgeom = lwgeom_from_gserialized(geom);
+	ogeom = lwgeom_as_curve(lwgeom);
+
+	result = geometry_serialize(ogeom);
+
+	PG_FREE_IF_COPY(geom, 0);
+
+	PG_RETURN_POINTER(result);
+}
+
 /** transform input geometry to a SFS 1.1 geometry type compliant */
 PG_FUNCTION_INFO_V1(LWGEOM_force_sfs);
 Datum LWGEOM_force_sfs(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *result;
 	LWGEOM *lwgeom;
 	LWGEOM *ogeom;
@@ -561,19 +584,15 @@ PG_FUNCTION_INFO_V1(LWGEOM_closestpoint);
 Datum LWGEOM_closestpoint(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *result;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *point;
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
-	point = lw_dist2d_distancepoint(lwgeom1, lwgeom2, lwgeom1->srid, DIST_MIN);
+	point = lwgeom_closest_point(lwgeom1, lwgeom2);
 
 	if (lwgeom_is_empty(point))
 		PG_RETURN_NULL();
@@ -595,19 +614,15 @@ PG_FUNCTION_INFO_V1(LWGEOM_shortestline2d);
 Datum LWGEOM_shortestline2d(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *result;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *theline;
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
-	theline = lw_dist2d_distanceline(lwgeom1, lwgeom2, lwgeom1->srid, DIST_MIN);
+	theline = lwgeom_closest_line(lwgeom1, lwgeom2);
 	
 	if (lwgeom_is_empty(theline))
 		PG_RETURN_NULL();	
@@ -629,19 +644,15 @@ PG_FUNCTION_INFO_V1(LWGEOM_longestline2d);
 Datum LWGEOM_longestline2d(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *result;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *theline;
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
-	theline = lw_dist2d_distanceline(lwgeom1, lwgeom2, lwgeom1->srid, DIST_MAX);
+	theline = lwgeom_furthest_line(lwgeom1, lwgeom2);
 	
 	if (lwgeom_is_empty(theline))
 		PG_RETURN_NULL();
@@ -662,16 +673,12 @@ PG_FUNCTION_INFO_V1(LWGEOM_mindistance2d);
 Datum LWGEOM_mindistance2d(PG_FUNCTION_ARGS)
 {
 	double mindist;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
 	mindist = lwgeom_mindistance2d(lwgeom1, lwgeom2);
 
@@ -682,7 +689,7 @@ Datum LWGEOM_mindistance2d(PG_FUNCTION_ARGS)
 	PG_FREE_IF_COPY(geom2, 1);
 	
 	/*if called with empty geometries the ingoing mindistance is untouched, and makes us return NULL*/
-	if (mindist<MAXFLOAT)
+	if (mindist<FLT_MAX)
 		PG_RETURN_FLOAT8(mindist);
 	
 	PG_RETURN_NULL();
@@ -697,8 +704,8 @@ PG_FUNCTION_INFO_V1(LWGEOM_dwithin);
 Datum LWGEOM_dwithin(PG_FUNCTION_ARGS)
 {
 	double mindist;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	double tolerance = PG_GETARG_FLOAT8(2);	
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
@@ -709,18 +716,14 @@ Datum LWGEOM_dwithin(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
 	mindist = lwgeom_mindistance2d_tolerance(lwgeom1,lwgeom2,tolerance);
 
 	PG_FREE_IF_COPY(geom1, 0);
 	PG_FREE_IF_COPY(geom2, 1);
 	/*empty geometries cases should be right handled since return from underlying
-	 functions should be MAXFLOAT which causes false as answer*/
+	 functions should be FLT_MAX which causes false as answer*/
 	PG_RETURN_BOOL(tolerance >= mindist);
 }
 
@@ -733,8 +736,8 @@ PG_FUNCTION_INFO_V1(LWGEOM_dfullywithin);
 Datum LWGEOM_dfullywithin(PG_FUNCTION_ARGS)
 {
 	double maxdist;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	double tolerance = PG_GETARG_FLOAT8(2);	
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
@@ -745,11 +748,7 @@ Datum LWGEOM_dfullywithin(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 	
 	maxdist = lwgeom_maxdistance2d_tolerance(lwgeom1, lwgeom2, tolerance);
 
@@ -770,16 +769,12 @@ PG_FUNCTION_INFO_V1(LWGEOM_maxdistance2d_linestring);
 Datum LWGEOM_maxdistance2d_linestring(PG_FUNCTION_ARGS)
 {
 	double maxdist;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
 	maxdist = lwgeom_maxdistance2d(lwgeom1, lwgeom2);
 
@@ -801,19 +796,16 @@ PG_FUNCTION_INFO_V1(LWGEOM_closestpoint3d);
 Datum LWGEOM_closestpoint3d(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *result;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *point;
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
-	point = lw_dist3d_distancepoint(lwgeom1, lwgeom2, lwgeom1->srid, DIST_MIN);
+	point = lwgeom_closest_point_3d(lwgeom1, lwgeom2);
+	// point = lw_dist3d_distancepoint(lwgeom1, lwgeom2, lwgeom1->srid, DIST_MIN);
 
 	if (lwgeom_is_empty(point))
 		PG_RETURN_NULL();	
@@ -836,19 +828,16 @@ PG_FUNCTION_INFO_V1(LWGEOM_shortestline3d);
 Datum LWGEOM_shortestline3d(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *result;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *theline;
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
-	theline = lw_dist3d_distanceline(lwgeom1, lwgeom2, lwgeom1->srid, DIST_MIN);
+	theline = lwgeom_closest_line_3d(lwgeom1, lwgeom2);
+	// theline = lw_dist3d_distanceline(lwgeom1, lwgeom2, lwgeom1->srid, DIST_MIN);
 	
 	if (lwgeom_is_empty(theline))
 		PG_RETURN_NULL();
@@ -871,19 +860,16 @@ PG_FUNCTION_INFO_V1(LWGEOM_longestline3d);
 Datum LWGEOM_longestline3d(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *result;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *theline;
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
-	theline = lw_dist3d_distanceline(lwgeom1, lwgeom2, lwgeom1->srid, DIST_MAX);
+	theline = lwgeom_furthest_line_3d(lwgeom1, lwgeom2);
+	// theline = lw_dist3d_distanceline(lwgeom1, lwgeom2, lwgeom1->srid, DIST_MAX);
 	
 	if (lwgeom_is_empty(theline))
 		PG_RETURN_NULL();
@@ -905,16 +891,12 @@ PG_FUNCTION_INFO_V1(LWGEOM_mindistance3d);
 Datum LWGEOM_mindistance3d(PG_FUNCTION_ARGS)
 {
 	double mindist;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
 	mindist = lwgeom_mindistance3d(lwgeom1, lwgeom2);
 
@@ -922,7 +904,7 @@ Datum LWGEOM_mindistance3d(PG_FUNCTION_ARGS)
 	PG_FREE_IF_COPY(geom2, 1);
 	
 	/*if called with empty geometries the ingoing mindistance is untouched, and makes us return NULL*/
-	if (mindist<MAXFLOAT)
+	if (mindist<FLT_MAX)
 		PG_RETURN_FLOAT8(mindist);
 
 	PG_RETURN_NULL();
@@ -937,8 +919,8 @@ PG_FUNCTION_INFO_V1(LWGEOM_dwithin3d);
 Datum LWGEOM_dwithin3d(PG_FUNCTION_ARGS)
 {
 	double mindist;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	double tolerance = PG_GETARG_FLOAT8(2);	
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
@@ -949,11 +931,7 @@ Datum LWGEOM_dwithin3d(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
 	mindist = lwgeom_mindistance3d_tolerance(lwgeom1,lwgeom2,tolerance);
 
@@ -961,7 +939,7 @@ Datum LWGEOM_dwithin3d(PG_FUNCTION_ARGS)
 	PG_FREE_IF_COPY(geom2, 1);
 	
 	/*empty geometries cases should be right handled since return from underlying
-	 functions should be MAXFLOAT which causes false as answer*/
+	 functions should be FLT_MAX which causes false as answer*/
 	PG_RETURN_BOOL(tolerance >= mindist);
 }
 
@@ -974,8 +952,8 @@ PG_FUNCTION_INFO_V1(LWGEOM_dfullywithin3d);
 Datum LWGEOM_dfullywithin3d(PG_FUNCTION_ARGS)
 {
 	double maxdist;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	double tolerance = PG_GETARG_FLOAT8(2);	
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
@@ -986,11 +964,7 @@ Datum LWGEOM_dfullywithin3d(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 	maxdist = lwgeom_maxdistance3d_tolerance(lwgeom1, lwgeom2, tolerance);
 
 	PG_FREE_IF_COPY(geom1, 0);
@@ -1010,16 +984,12 @@ PG_FUNCTION_INFO_V1(LWGEOM_maxdistance3d);
 Datum LWGEOM_maxdistance3d(PG_FUNCTION_ARGS)
 {
 	double maxdist;
-	GSERIALIZED *geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
 	LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-	if (lwgeom1->srid != lwgeom2->srid)
-	{
-		elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
 
 	maxdist = lwgeom_maxdistance3d(lwgeom1, lwgeom2);
 
@@ -1043,7 +1013,7 @@ Datum LWGEOM_longitude_shift(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "LWGEOM_longitude_shift called.");
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P_COPY(0);
 	lwgeom = lwgeom_from_gserialized(geom);
 
 	/* Drop bbox, will be recomputed */
@@ -1075,7 +1045,7 @@ Datum LWGEOM_inside_circle_point(PG_FUNCTION_ARGS)
 	LWGEOM *lwgeom;
 	int inside;
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom = lwgeom_from_gserialized(geom);
 	lwpoint = lwgeom_as_lwpoint(lwgeom);
 	if ( lwpoint == NULL || lwgeom_is_empty(lwgeom) )
@@ -1121,8 +1091,8 @@ Datum LWGEOM_collect(PG_FUNCTION_ARGS)
 	if (PG_ARGISNULL(1))
 		PG_RETURN_DATUM(PG_GETARG_DATUM(0));
 
-	gser1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	gser2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	gser1 = PG_GETARG_GSERIALIZED_P(0);
+	gser2 = PG_GETARG_GSERIALIZED_P(1);
 
 	POSTGIS_DEBUGF(3, "LWGEOM_collect(%s, %s): call", lwtype_name(gserialized_get_type(gser1)), lwtype_name(gserialized_get_type(gser2)));
 
@@ -1179,150 +1149,119 @@ Datum LWGEOM_collect(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_collect_garray);
 Datum LWGEOM_collect_garray(PG_FUNCTION_ARGS)
 {
-	Datum datum;
 	ArrayType *array;
 	int nelems;
 	/*GSERIALIZED **geoms; */
-	GSERIALIZED *result=NULL;
+	GSERIALIZED *result = NULL;
 	LWGEOM **lwgeoms, *outlwg;
 	uint32 outtype;
-	int i, count;
-	int srid=SRID_UNKNOWN;
-	size_t offset;
-	GBOX *box=NULL;
-	bits8 *bitmap;
-	int bitmask;
+	int count;
+	int srid = SRID_UNKNOWN;
+	GBOX *box = NULL;
 
-	POSTGIS_DEBUG(2, "LWGEOM_collect_garray called.");
+	ArrayIterator iterator;
+	Datum value;
+	bool isnull;
 
-	/* Get input datum */
-	datum = PG_GETARG_DATUM(0);
+	POSTGIS_DEBUG(2, "LWGEOM_collect_garray called.");
 
-	/* Return null on null input */
-	if ( (Pointer *)datum == NULL )
-	{
-		elog(NOTICE, "NULL input");
+	if ( PG_ARGISNULL(0) )
 		PG_RETURN_NULL();
-	}
 
 	/* Get actual ArrayType */
-	array = DatumGetArrayTypeP(datum);
+	array = PG_GETARG_ARRAYTYPE_P(0);
+	nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
 
 	POSTGIS_DEBUGF(3, " array is %d-bytes in size, %ld w/out header",
 	               ARR_SIZE(array), ARR_SIZE(array)-ARR_OVERHEAD_NONULLS(ARR_NDIM(array)));
 
-
-	/* Get number of geometries in array */
-	nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
-
 	POSTGIS_DEBUGF(3, "LWGEOM_collect_garray: array has %d elements", nelems);
 
 	/* Return null on 0-elements input array */
 	if ( nelems == 0 )
-	{
-		elog(NOTICE, "0 elements input array");
 		PG_RETURN_NULL();
-	}
 
 	/*
 	 * Deserialize all geometries in array into the lwgeoms pointers
 	 * array. Check input types to form output type.
 	 */
-	lwgeoms = palloc(sizeof(LWGEOM *)*nelems);
+	lwgeoms = palloc(sizeof(LWGEOM*) * nelems);
 	count = 0;
 	outtype = 0;
-	offset = 0;
-	bitmap = ARR_NULLBITMAP(array);
-	bitmask = 1;
-	for (i=0; i<nelems; i++)
+
+#if POSTGIS_PGSQL_VERSION >= 95	
+	iterator = array_create_iterator(array, 0, NULL);
+#else
+	iterator = array_create_iterator(array, 0);
+#endif
+	
+	while( array_iterate(iterator, &value, &isnull) )
 	{
+		GSERIALIZED *geom;
+		uint8_t intype;
+
 		/* Don't do anything for NULL values */
-		if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
-		{
-			GSERIALIZED *geom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
-			uint8_t intype = gserialized_get_type(geom);
+		if ( isnull )
+			continue;
+		
+		geom = (GSERIALIZED *)DatumGetPointer(value);
+		intype = gserialized_get_type(geom);
 
-			offset += INTALIGN(VARSIZE(geom));
+		lwgeoms[count] = lwgeom_from_gserialized(geom);
 
-			lwgeoms[count] = lwgeom_from_gserialized(geom);
+		POSTGIS_DEBUGF(3, "%s: geom %d deserialized", __func__, count);
 
-			POSTGIS_DEBUGF(3, "LWGEOM_collect_garray: geom %d deserialized", i);
+		if ( ! count )
+		{
+			/* Get first geometry SRID */
+			srid = lwgeoms[count]->srid;
 
-			if ( ! count )
+			/* COMPUTE_BBOX WHEN_SIMPLE */
+			if ( lwgeoms[count]->bbox )
 			{
-				/* Get first geometry SRID */
-				srid = lwgeoms[count]->srid;
-
-				/* COMPUTE_BBOX WHEN_SIMPLE */
-				if ( lwgeoms[count]->bbox )
-				{
-					box = gbox_copy(lwgeoms[count]->bbox);
-				}
+				box = gbox_copy(lwgeoms[count]->bbox);
 			}
-			else
+		}
+		else
+		{
+			/* Check SRID homogeneity */
+			error_if_srid_mismatch(lwgeoms[count]->srid, srid);
+
+			/* COMPUTE_BBOX WHEN_SIMPLE */
+			if ( box )
 			{
-				/* Check SRID homogeneity */
-				if ( lwgeoms[count]->srid != srid )
+				if ( lwgeoms[count]->bbox )
 				{
-					elog(ERROR,
-					     "Operation on mixed SRID geometries");
-					PG_RETURN_NULL();
+					gbox_merge(lwgeoms[count]->bbox, box);
 				}
-
-				/* COMPUTE_BBOX WHEN_SIMPLE */
-				if ( box )
+				else
 				{
-					if ( lwgeoms[count]->bbox )
-					{
-						box->xmin = Min(box->xmin, lwgeoms[count]->bbox->xmin);
-						box->ymin = Min(box->ymin, lwgeoms[count]->bbox->ymin);
-						box->xmax = Max(box->xmax, lwgeoms[count]->bbox->xmax);
-						box->ymax = Max(box->ymax, lwgeoms[count]->bbox->ymax);
-					}
-					else
-					{
-						pfree(box);
-						box = NULL;
-					}
+					pfree(box);
+					box = NULL;
 				}
 			}
+		}
 
-			lwgeom_drop_srid(lwgeoms[count]);
-			lwgeom_drop_bbox(lwgeoms[count]);
-
-			/* Output type not initialized */
-			if ( ! outtype )
-			{
-				/* Input is single, make multi */
-				if ( ! lwtype_is_collection(intype) ) 
-					outtype = lwtype_get_collectiontype(intype);
-				/* Input is multi, make collection */
-				else 
-					outtype = COLLECTIONTYPE;
-			}
-
-			/* Input type not compatible with output */
-			/* make output type a collection */
-			else if ( outtype != COLLECTIONTYPE && intype != outtype-3 )
-			{
-				outtype = COLLECTIONTYPE;
-			}
+		lwgeom_drop_srid(lwgeoms[count]);
+		lwgeom_drop_bbox(lwgeoms[count]);
 
-			count++;
+		/* Output type not initialized */
+		if ( ! outtype )
+		{
+			outtype = lwtype_get_collectiontype(intype);
 		}
-
-		/* Advance NULL bitmap */
-		if (bitmap)
+		/* Input type not compatible with output */
+		/* make output type a collection */
+		else if ( outtype != COLLECTIONTYPE && lwtype_get_collectiontype(intype) != outtype )
 		{
-			bitmask <<= 1;
-			if (bitmask == 0x100)
-			{
-				bitmap++;
-				bitmask = 1;
-			}
+			outtype = COLLECTIONTYPE;
 		}
-		
+
+		count++;
+
 	}
+	array_free_iterator(iterator);
+	
 
 	POSTGIS_DEBUGF(3, "LWGEOM_collect_garray: outtype = %d", outtype);
 
@@ -1357,7 +1296,7 @@ Datum LWGEOM_line_from_mpoint(PG_FUNCTION_ARGS)
 	POSTGIS_DEBUG(2, "LWGEOM_line_from_mpoint called");
 
 	/* Get input GSERIALIZED and deserialize it */
-	ingeom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	ingeom = PG_GETARG_GSERIALIZED_P(0);
 
 	if ( gserialized_get_type(ingeom) != MULTIPOINTTYPE )
 	{
@@ -1390,48 +1329,36 @@ Datum LWGEOM_line_from_mpoint(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_makeline_garray);
 Datum LWGEOM_makeline_garray(PG_FUNCTION_ARGS)
 {
-	Datum datum;
 	ArrayType *array;
 	int nelems;
-	GSERIALIZED *result=NULL;
+	GSERIALIZED *result = NULL;
 	LWGEOM **geoms;
 	LWGEOM *outlwg;
 	uint32 ngeoms;
-	int i;
-	size_t offset;
-	int srid=SRID_UNKNOWN;
-
-	bits8 *bitmap;
-	int bitmask;
-
-	POSTGIS_DEBUG(2, "LWGEOM_makeline_garray called.");
+	int srid = SRID_UNKNOWN;
+	
+	ArrayIterator iterator;
+	Datum value;
+	bool isnull;
 
-	/* Get input datum */
-	datum = PG_GETARG_DATUM(0);
+	POSTGIS_DEBUGF(2, "%s called", __func__);
 
 	/* Return null on null input */
-	if ( (Pointer *)datum == NULL )
-	{
-		elog(NOTICE, "NULL input");
+	if ( PG_ARGISNULL(0) )
 		PG_RETURN_NULL();
-	}
 
 	/* Get actual ArrayType */
-	array = DatumGetArrayTypeP(datum);
-
-	POSTGIS_DEBUG(3, "LWGEOM_makeline_garray: array detoasted");
+	array = PG_GETARG_ARRAYTYPE_P(0);
 
 	/* Get number of geometries in array */
 	nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
 
-	POSTGIS_DEBUGF(3, "LWGEOM_makeline_garray: array has %d elements", nelems);
+	POSTGIS_DEBUGF(3, "%s: array has %d elements", __func__, nelems);
 
 	/* Return null on 0-elements input array */
 	if ( nelems == 0 )
-	{
-		elog(NOTICE, "0 elements input array");
 		PG_RETURN_NULL();
-	}
+
 
 	/*
 	 * Deserialize all point geometries in array into the
@@ -1440,55 +1367,47 @@ Datum LWGEOM_makeline_garray(PG_FUNCTION_ARGS)
 	 */
 
 	/* possibly more then required */
-	geoms = palloc(sizeof(LWGEOM *)*nelems);
+	geoms = palloc(sizeof(LWGEOM *) * nelems);
 	ngeoms = 0;
-	offset = 0;
-	bitmap = ARR_NULLBITMAP(array);
-	bitmask = 1;
-	for (i=0; i<nelems; i++)
-	{
-		/* Don't do anything for NULL values */
-		if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
-		{
-			GSERIALIZED *geom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
-			offset += INTALIGN(VARSIZE(geom));
 
-			if ( gserialized_get_type(geom) != POINTTYPE && gserialized_get_type(geom) != LINETYPE ) continue;
+#if POSTGIS_PGSQL_VERSION >= 95	
+	iterator = array_create_iterator(array, 0, NULL);
+#else
+	iterator = array_create_iterator(array, 0);
+#endif
 
-			geoms[ngeoms++] =
-			    lwgeom_from_gserialized(geom);
+	while( array_iterate(iterator, &value, &isnull) )
+	{
+		GSERIALIZED *geom;
 
-			/* Check SRID homogeneity */
-			if ( ngeoms == 1 )
-			{
-				/* Get first geometry SRID */
-				srid = geoms[ngeoms-1]->srid;
-				/* TODO: also get ZMflags */
-			}
-			else
-			{
-				if ( geoms[ngeoms-1]->srid != srid )
-				{
-					elog(ERROR,
-					     "Operation on mixed SRID geometries");
-					PG_RETURN_NULL();
-				}
-			}
+		if ( isnull )
+			continue;
+		
+		geom = (GSERIALIZED *)DatumGetPointer(value);
 
-			POSTGIS_DEBUGF(3, "LWGEOM_makeline_garray: element %d deserialized", i);
+		if ( gserialized_get_type(geom) != POINTTYPE && 
+		     gserialized_get_type(geom) != LINETYPE ) 
+		{
+			continue;
 		}
 
-		/* Advance NULL bitmap */
-		if (bitmap)
+		geoms[ngeoms++] = lwgeom_from_gserialized(geom);
+
+		/* Check SRID homogeneity */
+		if ( ngeoms == 1 )
 		{
-			bitmask <<= 1;
-			if (bitmask == 0x100)
-			{
-				bitmap++;
-				bitmask = 1;
-			}
+			/* Get first geometry SRID */
+			srid = geoms[ngeoms-1]->srid;
+			/* TODO: also get ZMflags */
+		}
+		else
+		{
+			error_if_srid_mismatch(geoms[ngeoms-1]->srid, srid);
 		}
+
+		POSTGIS_DEBUGF(3, "%s: element %d deserialized", __func__, ngeoms);
 	}
+	array_free_iterator(iterator);
 
 	/* Return null on 0-points input array */
 	if ( ngeoms == 0 )
@@ -1522,8 +1441,8 @@ Datum LWGEOM_makeline(PG_FUNCTION_ARGS)
 	POSTGIS_DEBUG(2, "LWGEOM_makeline called.");
 
 	/* Get input datum */
-	pglwg1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	pglwg2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	pglwg1 = PG_GETARG_GSERIALIZED_P(0);
+	pglwg2 = PG_GETARG_GSERIALIZED_P(1);
 
 	if ( (gserialized_get_type(pglwg1) != POINTTYPE && gserialized_get_type(pglwg1) != LINETYPE) ||
 	     (gserialized_get_type(pglwg2) != POINTTYPE && gserialized_get_type(pglwg2) != LINETYPE) )
@@ -1569,10 +1488,10 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
 	POSTGIS_DEBUG(2, "LWGEOM_makepoly called.");
 
 	/* Get input shell */
-	pglwg1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	pglwg1 = PG_GETARG_GSERIALIZED_P(0);
 	if ( gserialized_get_type(pglwg1) != LINETYPE )
 	{
-		lwerror("Shell is not a line");
+		lwpgerror("Shell is not a line");
 	}
 	shell = lwgeom_as_lwline(lwgeom_from_gserialized(pglwg1));
 
@@ -1589,7 +1508,7 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
 			offset += INTALIGN(VARSIZE(g));
 			if ( gserialized_get_type(g) != LINETYPE )
 			{
-				lwerror("Hole %d is not a line", i);
+				lwpgerror("Hole %d is not a line", i);
 			}
 			hole = lwgeom_as_lwline(lwgeom_from_gserialized(g));
 			holes[i] = hole;
@@ -1619,7 +1538,7 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_expand);
 Datum LWGEOM_expand(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	double d = PG_GETARG_FLOAT8(1);
 	POINT4D pt;
@@ -1698,7 +1617,7 @@ Datum LWGEOM_expand(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_to_BOX);
 Datum LWGEOM_to_BOX(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *pg_lwgeom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *pg_lwgeom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(pg_lwgeom);
 	GBOX gbox;
 	int result;
@@ -1734,7 +1653,7 @@ Datum LWGEOM_to_BOX(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_envelope);
 Datum LWGEOM_envelope(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	int srid = lwgeom->srid;
 	POINT4D pt;
@@ -1830,7 +1749,7 @@ Datum LWGEOM_envelope(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_isempty);
 Datum LWGEOM_isempty(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	bool empty = lwgeom_is_empty(lwgeom);
 
@@ -1856,7 +1775,7 @@ Datum LWGEOM_segmentize2d(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "LWGEOM_segmentize2d called");
 
-	ingeom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	ingeom = PG_GETARG_GSERIALIZED_P(0);
 	dist = PG_GETARG_FLOAT8(1);
 	type = gserialized_get_type(ingeom); 
 
@@ -1877,15 +1796,22 @@ Datum LWGEOM_segmentize2d(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
+	LWGEOM_INIT();
+
 	inlwgeom = lwgeom_from_gserialized(ingeom);
-	
 	if ( lwgeom_is_empty(inlwgeom) )
 	{
+		/* Should only happen on interruption */
 		lwgeom_free(inlwgeom);
 		PG_RETURN_POINTER(ingeom);
 	}
 	
 	outlwgeom = lwgeom_segmentize2d(inlwgeom, dist);
+	if ( ! outlwgeom ) {
+		/* Should only happen on interruption */
+		PG_FREE_IF_COPY(ingeom, 0);
+		PG_RETURN_NULL();
+	}
 
 	/* Copy input bounding box if any */
 	if ( inlwgeom->bbox )
@@ -1910,7 +1836,7 @@ Datum LWGEOM_reverse(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "LWGEOM_reverse called");
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P_COPY(0);
 
 	lwgeom = lwgeom_from_gserialized(geom);
 	lwgeom_reverse(lwgeom);
@@ -1929,7 +1855,7 @@ Datum LWGEOM_force_clockwise_poly(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "LWGEOM_force_clockwise_poly called");
 
-	ingeom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+	ingeom = PG_GETARG_GSERIALIZED_P_COPY(0);
 
 	lwgeom = lwgeom_from_gserialized(ingeom);
 	lwgeom_force_clockwise(lwgeom);
@@ -1950,7 +1876,7 @@ Datum LWGEOM_noop(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "LWGEOM_noop called");
 
-	in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	in = PG_GETARG_GSERIALIZED_P(0);
 
 	lwgeom = lwgeom_from_gserialized(in);
 
@@ -1977,7 +1903,7 @@ Datum LWGEOM_zmflag(PG_FUNCTION_ARGS)
 	GSERIALIZED *in;
 	int ret = 0;
 
-	in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	in = PG_GETARG_GSERIALIZED_P(0);
 	if ( gserialized_has_z(in) ) ret += 2;
 	if ( gserialized_has_m(in) ) ret += 1;
 	PG_FREE_IF_COPY(in, 0);
@@ -1987,14 +1913,14 @@ Datum LWGEOM_zmflag(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_hasz);
 Datum LWGEOM_hasz(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *in = PG_GETARG_GSERIALIZED_P(0);
 	PG_RETURN_BOOL(gserialized_has_z(in));
 }
 
 PG_FUNCTION_INFO_V1(LWGEOM_hasm);
 Datum LWGEOM_hasm(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *in = PG_GETARG_GSERIALIZED_P(0);
 	PG_RETURN_BOOL(gserialized_has_m(in));
 }
 
@@ -2002,7 +1928,7 @@ Datum LWGEOM_hasm(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_hasBBOX);
 Datum LWGEOM_hasBBOX(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *in = PG_GETARG_GSERIALIZED_P(0);
 	char res = gserialized_has_bbox(in);
 	PG_FREE_IF_COPY(in, 0);
 	PG_RETURN_BOOL(res);
@@ -2015,7 +1941,7 @@ Datum LWGEOM_ndims(PG_FUNCTION_ARGS)
 	GSERIALIZED *in;
 	int ret;
 
-	in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	in = PG_GETARG_GSERIALIZED_P(0);
 	ret = (gserialized_ndims(in));
 	PG_FREE_IF_COPY(in, 0);
 	PG_RETURN_INT16(ret);
@@ -2025,8 +1951,8 @@ Datum LWGEOM_ndims(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_same);
 Datum LWGEOM_same(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *g1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *g2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *g1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *g2 = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *lwg1, *lwg2;
 	bool result;
 
@@ -2128,7 +2054,7 @@ Datum ST_IsCollection(PG_FUNCTION_ARGS)
 	/* header + srid/flags + bbox? + type number */
 	size = VARHDRSZ + 8 + 32 + 4;  
 
-	geom = (GSERIALIZED*)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, size);
+	geom = PG_GETARG_GSERIALIZED_P_SLICE(0, 0, size);
 
 	type = gserialized_get_type(geom);
 	PG_RETURN_BOOL(lwtype_is_collection(type));
@@ -2197,10 +2123,10 @@ Datum LWGEOM_addpoint(PG_FUNCTION_ARGS)
 	LWLINE *line, *linecopy;
 	int where = -1;
 
-	POSTGIS_DEBUG(2, "LWGEOM_addpoint called.");
+	POSTGIS_DEBUGF(2, "%s called.", __func__);
 
-	pglwg1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	pglwg2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	pglwg1 = PG_GETARG_GSERIALIZED_P(0);
+	pglwg2 = PG_GETARG_GSERIALIZED_P(1);
 
 	if ( PG_NARGS() > 2 )
 	{
@@ -2258,7 +2184,7 @@ Datum LWGEOM_removepoint(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "LWGEOM_removepoint called.");
 
-	pglwg1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	pglwg1 = PG_GETARG_GSERIALIZED_P(0);
 	which = PG_GETARG_INT32(1);
 
 	if ( gserialized_get_type(pglwg1) != LINETYPE )
@@ -2305,10 +2231,10 @@ Datum LWGEOM_setpoint_linestring(PG_FUNCTION_ARGS)
 	POSTGIS_DEBUG(2, "LWGEOM_setpoint_linestring called.");
 
 	/* we copy input as we're going to modify it */
-	pglwg1 = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+	pglwg1 = PG_GETARG_GSERIALIZED_P_COPY(0);
 
 	which = PG_GETARG_INT32(1);
-	pglwg2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(2));
+	pglwg2 = PG_GETARG_GSERIALIZED_P(2);
 
 
 	/* Extract a POINT4D from the point */
@@ -2361,7 +2287,7 @@ Datum LWGEOM_asEWKT(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "LWGEOM_asEWKT called.");
 
-	geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom = lwgeom_from_gserialized(geom);
 
 	/* Write to WKT and free the geometry */
@@ -2393,43 +2319,43 @@ Datum LWGEOM_azimuth(PG_FUNCTION_ARGS)
 	int srid;
 
 	/* Extract first point */
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	lwpoint = lwgeom_as_lwpoint(lwgeom_from_gserialized(geom));
 	if ( ! lwpoint )
 	{
 		PG_FREE_IF_COPY(geom, 0);
-		lwerror("Argument must be POINT geometries");
+		lwpgerror("Argument must be POINT geometries");
 		PG_RETURN_NULL();
 	}
 	srid = lwpoint->srid;
 	if ( ! getPoint2d_p(lwpoint->point, 0, &p1) )
 	{
 		PG_FREE_IF_COPY(geom, 0);
-		lwerror("Error extracting point");
+		lwpgerror("Error extracting point");
 		PG_RETURN_NULL();
 	}
 	lwpoint_free(lwpoint);
 	PG_FREE_IF_COPY(geom, 0);
 
 	/* Extract second point */
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom = PG_GETARG_GSERIALIZED_P(1);
 	lwpoint = lwgeom_as_lwpoint(lwgeom_from_gserialized(geom));
 	if ( ! lwpoint )
 	{
 		PG_FREE_IF_COPY(geom, 1);
-		lwerror("Argument must be POINT geometries");
+		lwpgerror("Argument must be POINT geometries");
 		PG_RETURN_NULL();
 	}
 	if ( lwpoint->srid != srid )
 	{
 		PG_FREE_IF_COPY(geom, 1);
-		lwerror("Operation on mixed SRID geometries");
+		lwpgerror("Operation on mixed SRID geometries");
 		PG_RETURN_NULL();
 	}
 	if ( ! getPoint2d_p(lwpoint->point, 0, &p2) )
 	{
 		PG_FREE_IF_COPY(geom, 1);
-		lwerror("Error extracting point");
+		lwpgerror("Error extracting point");
 		PG_RETURN_NULL();
 	}
 	lwpoint_free(lwpoint);
@@ -2460,8 +2386,8 @@ Datum LWGEOM_azimuth(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(optimistic_overlap);
 Datum optimistic_overlap(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *pg_geom1 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *pg_geom2 = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *pg_geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *pg_geom2 = PG_GETARG_GSERIALIZED_P(1);
 	double dist = PG_GETARG_FLOAT8(2);
 	GBOX g1_bvol;
 	double calc_dist;
@@ -2469,11 +2395,7 @@ Datum optimistic_overlap(PG_FUNCTION_ARGS)
 	LWGEOM *geom1 = lwgeom_from_gserialized(pg_geom1);
 	LWGEOM *geom2 = lwgeom_from_gserialized(pg_geom2);
 
-	if (geom1->srid != geom2->srid)
-	{
-		elog(ERROR,"optimistic_overlap:Operation on two GEOMETRIES with different SRIDs\\n");
-		PG_RETURN_NULL();
-	}
+	error_if_srid_mismatch(geom1->srid, geom2->srid);
 
 	if (geom1->type != POLYGONTYPE)
 	{
@@ -2517,7 +2439,7 @@ Datum optimistic_overlap(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_affine);
 Datum LWGEOM_affine(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P_COPY(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	GSERIALIZED *ret;
 	AFFINE affine;
@@ -2568,7 +2490,7 @@ Datum ST_GeoHash(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	if ( ! PG_ARGISNULL(1) )
 	{
@@ -2589,7 +2511,7 @@ Datum ST_GeoHash(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(ST_CollectionExtract);
 Datum ST_CollectionExtract(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *input = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *input = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *output;
 	LWGEOM *lwgeom = lwgeom_from_gserialized(input);
 	LWGEOM *lwcol = NULL;
@@ -2641,7 +2563,7 @@ Datum ST_CollectionExtract(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(ST_CollectionHomogenize);
 Datum ST_CollectionHomogenize(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *input = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *input = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *output;
 	LWGEOM *lwgeom = lwgeom_from_gserialized(input);
 	LWGEOM *lwoutput = NULL;
@@ -2663,36 +2585,198 @@ Datum ST_RemoveRepeatedPoints(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(ST_RemoveRepeatedPoints);
 Datum ST_RemoveRepeatedPoints(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *input = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
-	GSERIALIZED *output;
-	LWGEOM *lwgeom_in = lwgeom_from_gserialized(input);
-	LWGEOM *lwgeom_out;
+	GSERIALIZED *g_in = PG_GETARG_GSERIALIZED_P_COPY(0);
+	GSERIALIZED *g_out;
+	LWGEOM *lwgeom_in = lwgeom_from_gserialized(g_in);
+	LWGEOM *lwgeom_out = NULL;
+	double tolerance = 0.0;
 
-	/* lwnotice("ST_RemoveRepeatedPoints got %p", lwgeom_in); */
+	if ( PG_NARGS() > 1 && ! PG_ARGISNULL(1) )
+		tolerance = PG_GETARG_FLOAT8(1);
 
-	lwgeom_out = lwgeom_remove_repeated_points(lwgeom_in);
-	output = geometry_serialize(lwgeom_out);
+	lwgeom_out = lwgeom_remove_repeated_points(lwgeom_in, tolerance);
+	g_out = geometry_serialize(lwgeom_out);
 
+	if ( lwgeom_out != lwgeom_in )
+		lwgeom_free(lwgeom_out);
 	lwgeom_free(lwgeom_in);
-	PG_FREE_IF_COPY(input, 0);
 
-	PG_RETURN_POINTER(output);
+	PG_FREE_IF_COPY(g_in, 0);
+	PG_RETURN_POINTER(g_out);
 }
 
 Datum ST_FlipCoordinates(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(ST_FlipCoordinates);
 Datum ST_FlipCoordinates(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *input = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
-	GSERIALIZED *output;
-	LWGEOM *lwgeom_in = lwgeom_from_gserialized(input);
-	LWGEOM *lwgeom_out;
+	GSERIALIZED *in = PG_GETARG_GSERIALIZED_P_COPY(0);
+	GSERIALIZED *out;
+	LWGEOM *lwgeom = lwgeom_from_gserialized(in);
 
-	lwgeom_out = lwgeom_flip_coordinates(lwgeom_in);
-	output = geometry_serialize(lwgeom_out);
+	lwgeom_swap_ordinates(lwgeom, LWORD_X, LWORD_Y);
+	out = geometry_serialize(lwgeom);
 
-	lwgeom_free(lwgeom_in);
-	PG_FREE_IF_COPY(input, 0);
+	lwgeom_free(lwgeom);
+	PG_FREE_IF_COPY(in, 0);
 
-	PG_RETURN_POINTER(output);
+	PG_RETURN_POINTER(out);
+}
+
+static LWORD ordname2ordval(char n)
+{
+  if ( n == 'x' || n == 'X' ) return LWORD_X;
+  if ( n == 'y' || n == 'y' ) return LWORD_Y;
+  if ( n == 'z' || n == 'Z' ) return LWORD_Z;
+  if ( n == 'm' || n == 'M' ) return LWORD_M;
+  lwpgerror("Invalid ordinate name '%c'. Expected x,y,z or m", n);
+  return (LWORD)-1;
+}
+
+Datum ST_SwapOrdinates(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_SwapOrdinates);
+Datum ST_SwapOrdinates(PG_FUNCTION_ARGS)
+{
+  GSERIALIZED *in;
+  GSERIALIZED *out;
+  LWGEOM *lwgeom;
+  const char *ospec;
+  LWORD o1, o2;
+
+  ospec = PG_GETARG_CSTRING(1);
+  if ( strlen(ospec) != 2 )
+  {
+    lwpgerror("Invalid ordinate specification. "
+            "Need two letters from the set (x,y,z,m). "
+            "Got '%s'", ospec);
+    PG_RETURN_NULL();
+  }
+  o1 = ordname2ordval( ospec[0] );
+  o2 = ordname2ordval( ospec[1] );
+
+  in = PG_GETARG_GSERIALIZED_P_COPY(0);
+
+  /* Check presence of given ordinates */
+  if ( ( o1 == LWORD_M || o2 == LWORD_M ) && ! gserialized_has_m(in) )
+  {
+    lwpgerror("Geometry does not have an M ordinate");
+    PG_RETURN_NULL();
+  }
+  if ( ( o1 == LWORD_Z || o2 == LWORD_Z ) && ! gserialized_has_z(in) )
+  {
+    lwpgerror("Geometry does not have a Z ordinate");
+    PG_RETURN_NULL();
+  }
+
+  /* Nothing to do if swapping the same ordinate, pity for the copy... */
+  if ( o1 == o2 ) PG_RETURN_POINTER(in);
+
+  lwgeom = lwgeom_from_gserialized(in);
+  lwgeom_swap_ordinates(lwgeom, o1, o2);
+  out = geometry_serialize(lwgeom);
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(in, 0);
+  PG_RETURN_POINTER(out);
+}
+
+/*
+ * ST_BoundingDiagonal(inp geometry, fits boolean)
+ */
+Datum ST_BoundingDiagonal(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_BoundingDiagonal);
+Datum ST_BoundingDiagonal(PG_FUNCTION_ARGS)
+{
+  GSERIALIZED *geom_in = PG_GETARG_GSERIALIZED_P(0);
+  GSERIALIZED *geom_out;
+  bool fits = PG_GETARG_BOOL(1);
+  LWGEOM *lwgeom_in = lwgeom_from_gserialized(geom_in);
+  LWGEOM *lwgeom_out;
+  const GBOX *gbox;
+  int hasz = FLAGS_GET_Z(lwgeom_in->flags);
+  int hasm = FLAGS_GET_M(lwgeom_in->flags);
+  int srid = lwgeom_in->srid;
+  POINT4D pt;
+  POINTARRAY *pa;
+
+  if ( fits ) {
+    /* unregister any cached bbox to ensure it's recomputed */
+    lwgeom_in->bbox = NULL;
+  }
+
+  gbox = lwgeom_get_bbox(lwgeom_in);
+
+  if ( ! gbox )
+  {
+    lwgeom_out = lwgeom_construct_empty(LINETYPE, srid, hasz, hasm);
+  }
+  else
+  {
+    pa = ptarray_construct_empty(hasz, hasm, 2);
+    pt.x = gbox->xmin;
+    pt.y = gbox->ymin;
+    pt.z = gbox->zmin;
+    pt.m = gbox->mmin;
+    ptarray_append_point(pa, &pt, LW_TRUE);
+    pt.x = gbox->xmax;
+    pt.y = gbox->ymax;
+    pt.z = gbox->zmax;
+    pt.m = gbox->mmax;
+    ptarray_append_point(pa, &pt, LW_TRUE);
+    lwgeom_out = lwline_as_lwgeom( lwline_construct(srid, NULL, pa) );
+  }
+
+  lwgeom_free(lwgeom_in);
+  PG_FREE_IF_COPY(geom_in, 0);
+
+  geom_out = geometry_serialize(lwgeom_out);
+  lwgeom_free(lwgeom_out);
+
+  PG_RETURN_POINTER(geom_out);
+}
+
+Datum ST_Scale(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_Scale);
+Datum ST_Scale(PG_FUNCTION_ARGS)
+{
+  GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P_COPY(0); /* will be modified */
+  GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
+  GSERIALIZED *ret;
+  LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
+  LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
+  LWPOINT *lwpoint;
+  POINT4D factors;
+
+  lwpoint = lwgeom_as_lwpoint(lwgeom2);
+  if ( lwpoint == NULL )
+  {
+    lwgeom_free(lwgeom1);
+    lwgeom_free(lwgeom2);
+    PG_FREE_IF_COPY(geom1, 0);
+    PG_FREE_IF_COPY(geom2, 1);
+    lwpgerror("Scale factor geometry parameter must be a point");
+    PG_RETURN_NULL();
+  }
+  if ( ! lwpoint->point->npoints )
+  {
+    /* empty point, return input untouched */ 
+    lwgeom_free(lwgeom1);
+    lwgeom_free(lwgeom2);
+    PG_FREE_IF_COPY(geom2, 1);
+    PG_RETURN_POINTER(geom1);
+  }
+  getPoint4d_p(lwpoint->point, 0, &factors);
+  if ( ! FLAGS_GET_Z(lwpoint->flags ) ) factors.z = 1;
+  if ( ! FLAGS_GET_M(lwpoint->flags ) ) factors.m = 1;
+
+  lwgeom_scale(lwgeom1, &factors);
+
+  /* Construct GSERIALIZED */
+  ret = geometry_serialize(lwgeom1);
+
+  /* Cleanup */
+  lwgeom_free(lwgeom1);
+  lwgeom_free(lwgeom2);
+  PG_FREE_IF_COPY(geom1, 0);
+  PG_FREE_IF_COPY(geom2, 1);
+
+  PG_RETURN_POINTER(ret);
 }
diff --git a/postgis/lwgeom_functions_lrs.c b/postgis/lwgeom_functions_lrs.c
index fd18319..4e038f5 100644
--- a/postgis/lwgeom_functions_lrs.c
+++ b/postgis/lwgeom_functions_lrs.c
@@ -28,7 +28,7 @@ Datum ST_AddMeasure(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(ST_AddMeasure);
 Datum ST_AddMeasure(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *gin = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *gin = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *gout;
 	double start_measure = PG_GETARG_FLOAT8(1);
 	double end_measure = PG_GETARG_FLOAT8(2);
@@ -38,7 +38,7 @@ Datum ST_AddMeasure(PG_FUNCTION_ARGS)
 	/* Raise an error if input is not a linestring or multilinestring */
 	if ( type != LINETYPE && type != MULTILINETYPE )
 	{
-		lwerror("Only LINESTRING and MULTILINESTRING are supported");
+		lwpgerror("Only LINESTRING and MULTILINESTRING are supported");
 		PG_RETURN_NULL();
 	}
 
@@ -68,7 +68,7 @@ Datum ST_LocateAlong(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(ST_LocateAlong);
 Datum ST_LocateAlong(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *gin = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *gin = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *gout;
 	LWGEOM *lwin = NULL, *lwout = NULL;
 	double measure = PG_GETARG_FLOAT8(1);
@@ -96,7 +96,7 @@ Datum ST_LocateBetween(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(ST_LocateBetween);
 Datum ST_LocateBetween(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom_in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom_in = PG_GETARG_GSERIALIZED_P(0);
 	double from = PG_GETARG_FLOAT8(1);
 	double to = PG_GETARG_FLOAT8(2);
 	double offset = PG_GETARG_FLOAT8(3);
@@ -137,7 +137,7 @@ Datum ST_LocateBetweenElevations(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(ST_LocateBetweenElevations);
 Datum ST_LocateBetweenElevations(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom_in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom_in = PG_GETARG_GSERIALIZED_P(0);
 	double from = PG_GETARG_FLOAT8(1);
 	double to = PG_GETARG_FLOAT8(2);
 	LWCOLLECTION *geom_out = NULL;
@@ -170,8 +170,8 @@ Datum ST_InterpolatePoint(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(ST_InterpolatePoint);
 Datum ST_InterpolatePoint(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *gser_line = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *gser_point = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *gser_line = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *gser_point = PG_GETARG_GSERIALIZED_P(1);
 	LWGEOM *lwline;
 	LWPOINT *lwpoint;
 
@@ -185,11 +185,9 @@ Datum ST_InterpolatePoint(PG_FUNCTION_ARGS)
 		elog(ERROR,"ST_InterpolatePoint: 2st argument isn't a point");
 		PG_RETURN_NULL();
 	}
-	if ( gserialized_get_srid(gser_line) != gserialized_get_srid(gser_point) )
-	{
-		elog(ERROR, "Operation on two geometries with different SRIDs");
-		PG_RETURN_NULL();
-	}
+
+	error_if_srid_mismatch(gserialized_get_srid(gser_line), gserialized_get_srid(gser_point));
+
 	if ( ! gserialized_has_m(gser_line) )
 	{
 		elog(ERROR,"ST_InterpolatePoint only accepts geometries that have an M dimension");
@@ -207,8 +205,8 @@ Datum LWGEOM_line_locate_point(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(LWGEOM_line_locate_point);
 Datum LWGEOM_line_locate_point(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	LWLINE *lwline;
 	LWPOINT *lwpoint;
 	POINTARRAY *pa;
@@ -225,11 +223,8 @@ Datum LWGEOM_line_locate_point(PG_FUNCTION_ARGS)
 		elog(ERROR,"line_locate_point: 2st arg isnt a point");
 		PG_RETURN_NULL();
 	}
-	if ( gserialized_get_srid(geom1) != gserialized_get_srid(geom2) )
-	{
-		elog(ERROR, "Operation on two geometries with different SRIDs");
-		PG_RETURN_NULL();
-	}
+
+	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
 	lwline = lwgeom_as_lwline(lwgeom_from_gserialized(geom1));
 	lwpoint = lwgeom_as_lwpoint(lwgeom_from_gserialized(geom2));
@@ -442,7 +437,7 @@ ptarray_locate_between_m(POINTARRAY *ipa, double m0, double m1)
 	 */
 	ret.ptarrays=lwalloc(sizeof(POINTARRAY *)*ipa->npoints-1);
 
-	POSTGIS_DEBUGF(2, "ptarray_locate...: called for pointarray %x, m0:%g, m1:%g",
+	POSTGIS_DEBUGF(2, "ptarray_locate...: called for pointarray %p, m0:%g, m1:%g",
 	         ipa, m0, m1);
 
 
@@ -464,7 +459,7 @@ ptarray_locate_between_m(POINTARRAY *ipa, double m0, double m1)
 		/* segment completely outside, nothing to do */
 		if (! clipval ) continue;
 
-		POSTGIS_DEBUGF(3, " clipped to: [ %g %g %g %g - %g %g %g %g ]   clipval: %x", p1.x, p1.y, p1.z, p1.m,
+		POSTGIS_DEBUGF(3, " clipped to: [ %g %g %g %g - %g %g %g %g ]   clipval: %d", p1.x, p1.y, p1.z, p1.m,
 		         p2.x, p2.y, p2.z, p2.m, clipval);
 
 		/* If no points have been accumulated so far, then if clipval != 0 the first point must be the
@@ -486,7 +481,7 @@ ptarray_locate_between_m(POINTARRAY *ipa, double m0, double m1)
 		 */
 		if ( clipval & 0x0100 || i == ipa->npoints-1 )
 		{
-			POSTGIS_DEBUGF(3, " closing pointarray %x with %d points", dpa, dpa->npoints);
+			POSTGIS_DEBUGF(3, " closing pointarray %p with %d points", dpa, dpa->npoints);
 
 			ret.ptarrays[ret.nptarrays++] = dpa;
 			dpa = NULL;
@@ -497,7 +492,7 @@ ptarray_locate_between_m(POINTARRAY *ipa, double m0, double m1)
 	 * if dpa!=NULL it means we didn't close it yet.
 	 * this should never happen.
 	 */
-	if ( dpa != NULL ) lwerror("Something wrong with algorithm");
+	if ( dpa != NULL ) lwpgerror("Something wrong with algorithm");
 
 	return ret;
 }
@@ -512,7 +507,7 @@ lwpoint_locate_between_m(LWPOINT *lwpoint, double m0, double m1)
 {
 	POINT3DM p3dm;
 
-	POSTGIS_DEBUGF(2, "lwpoint_locate_between called for lwpoint %x", lwpoint);
+	POSTGIS_DEBUGF(2, "lwpoint_locate_between called for lwpoint %p", lwpoint);
 
 	lwpoint_getPoint3dm_p(lwpoint, &p3dm);
 	if ( p3dm.m >= m0 && p3dm.m <= m1)
@@ -553,7 +548,7 @@ lwline_locate_between_m(LWLINE *lwline_in, double m0, double m1)
 	const int lineflag=0x10;
 	POINTARRAYSET paset=ptarray_locate_between_m(ipa, m0, m1);
 
-	POSTGIS_DEBUGF(2, "lwline_locate_between called for lwline %x", lwline_in);
+	POSTGIS_DEBUGF(2, "lwline_locate_between called for lwline %p", lwline_in);
 
 	POSTGIS_DEBUGF(3, " ptarray_locate... returned %d pointarrays",
 	         paset.nptarrays);
@@ -592,7 +587,7 @@ lwline_locate_between_m(LWLINE *lwline_in, double m0, double m1)
 		/* This is a bug */
 		else
 		{
-			lwerror("ptarray_locate_between_m returned a POINARRAY set containing POINTARRAY with 0 points");
+			lwpgerror("ptarray_locate_between_m returned a POINARRAY set containing POINTARRAY with 0 points");
 		}
 
 	}
@@ -624,7 +619,7 @@ lwcollection_locate_between_m(LWCOLLECTION *lwcoll, double m0, double m1)
 	int ngeoms=0;
 	LWGEOM **geoms;
 
-	POSTGIS_DEBUGF(2, "lwcollection_locate_between_m called for lwcoll %x", lwcoll);
+	POSTGIS_DEBUGF(2, "lwcollection_locate_between_m called for lwcoll %p", lwcoll);
 
 	geoms=lwalloc(sizeof(LWGEOM *)*lwcoll->ngeoms);
 	for (i=0; i<lwcoll->ngeoms; i++)
@@ -653,7 +648,7 @@ lwcollection_locate_between_m(LWCOLLECTION *lwcoll, double m0, double m1)
 static LWGEOM *
 lwgeom_locate_between_m(LWGEOM *lwin, double m0, double m1)
 {
-	POSTGIS_DEBUGF(2, "lwgeom_locate_between called for lwgeom %x", lwin);
+	POSTGIS_DEBUGF(2, "lwgeom_locate_between called for lwgeom %p", lwin);
 
 	switch (lwin->type)
 	{
@@ -673,11 +668,11 @@ lwgeom_locate_between_m(LWGEOM *lwin, double m0, double m1)
 		/* Polygon types are not supported */
 	case POLYGONTYPE:
 	case MULTIPOLYGONTYPE:
-		lwerror("Areal geometries are not supported by locate_between_measures");
+		lwpgerror("Areal geometries are not supported by locate_between_measures");
 		return NULL;
 	}
 
-	lwerror("Unkonwn geometry type (%s:%d)", __FILE__, __LINE__);
+	lwpgerror("Unkonwn geometry type (%s:%d)", __FILE__, __LINE__);
 	return NULL;
 }
 
@@ -693,7 +688,7 @@ Datum LWGEOM_locate_between_m(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(LWGEOM_locate_between_m);
 Datum LWGEOM_locate_between_m(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *gin = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *gin = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *gout;
 	double start_measure = PG_GETARG_FLOAT8(1);
 	double end_measure = PG_GETARG_FLOAT8(2);
@@ -702,11 +697,11 @@ Datum LWGEOM_locate_between_m(PG_FUNCTION_ARGS)
 	int hasm = gserialized_has_m(gin);
 	int type;
 
-	elog(NOTICE,"ST_Locate_Between_Measures and ST_Locate_Along_Measure are deprecated. Use ST_LocateAlong and ST_LocateBetween.");	
+	elog(WARNING,"ST_Locate_Between_Measures and ST_Locate_Along_Measure were deprecated in 2.2.0. Please use ST_LocateAlong and ST_LocateBetween");
 
 	if ( end_measure < start_measure )
 	{
-		lwerror("locate_between_m: 2nd arg must be bigger then 1st arg");
+		lwpgerror("locate_between_m: 2nd arg must be bigger then 1st arg");
 		PG_RETURN_NULL();
 	}
 	
@@ -715,7 +710,7 @@ Datum LWGEOM_locate_between_m(PG_FUNCTION_ARGS)
 	 */
 	if ( ! hasm )
 	{
-		lwerror("Geometry argument does not have an 'M' ordinate");
+		lwpgerror("Geometry argument does not have an 'M' ordinate");
 		PG_RETURN_NULL();
 	}
 
@@ -727,7 +722,7 @@ Datum LWGEOM_locate_between_m(PG_FUNCTION_ARGS)
 
 	if ( type == POLYGONTYPE || type == MULTIPOLYGONTYPE || type == COLLECTIONTYPE )
 	{
-		lwerror("Areal or Collection types are not supported");
+		lwpgerror("Areal or Collection types are not supported");
 		PG_RETURN_NULL();
 	}
 
diff --git a/postgis/lwgeom_functions_temporal.c b/postgis/lwgeom_functions_temporal.c
new file mode 100644
index 0000000..ef3b3cc
--- /dev/null
+++ b/postgis/lwgeom_functions_temporal.c
@@ -0,0 +1,113 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright (C) 2015 Sandro Santilli <strk at keybit.net>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence (version 2 or later).
+ * See the COPYING file.
+ *
+ **********************************************************************/
+
+#include "postgres.h"
+#include "fmgr.h"
+#include "utils/elog.h"
+#include "utils/array.h"
+#include "utils/geo_decls.h"
+
+#include "../postgis_config.h"
+#include "liblwgeom.h"
+#include "lwgeom_pg.h"
+
+#include <math.h>
+#include <float.h>
+#include <string.h>
+#include <stdio.h>
+#include <errno.h>
+
+
+/*
+ * Return the measure at which interpolated points on the two
+ * input lines are at the smallest distance.
+ */
+Datum ST_ClosestPointOfApproach(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_ClosestPointOfApproach);
+Datum ST_ClosestPointOfApproach(PG_FUNCTION_ARGS)
+{
+  GSERIALIZED *gs0 = PG_GETARG_GSERIALIZED_P(0);
+  GSERIALIZED *gs1 = PG_GETARG_GSERIALIZED_P(1);
+  /* All checks already performed by liblwgeom, not worth checking again */
+  LWGEOM *g0 = lwgeom_from_gserialized(gs0);
+  LWGEOM *g1 = lwgeom_from_gserialized(gs1);
+  double m = lwgeom_tcpa(g0, g1, NULL);
+	lwgeom_free(g0);
+	lwgeom_free(g1);
+  PG_FREE_IF_COPY(gs0, 0);
+  PG_FREE_IF_COPY(gs1, 1);
+	if ( m < 0 ) PG_RETURN_NULL();
+	PG_RETURN_FLOAT8(m);
+}
+
+/*
+ * Does the object correctly model a trajectory ?
+ * Must be a LINESTRINGM with growing measures
+ */
+Datum ST_IsValidTrajectory(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_IsValidTrajectory);
+Datum ST_IsValidTrajectory(PG_FUNCTION_ARGS)
+{
+  GSERIALIZED *gs0 = PG_GETARG_GSERIALIZED_P(0);
+  /* All checks already performed by liblwgeom, not worth checking again */
+  LWGEOM *g0 = lwgeom_from_gserialized(gs0);
+  int ret = lwgeom_is_trajectory(g0);
+  lwgeom_free(g0);
+  PG_RETURN_BOOL(ret == LW_TRUE);
+}
+
+/*
+ * Return the distance between two trajectories at their
+ * closest point of approach.
+ */
+Datum ST_DistanceCPA(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_DistanceCPA);
+Datum ST_DistanceCPA(PG_FUNCTION_ARGS)
+{
+  GSERIALIZED *gs0 = PG_GETARG_GSERIALIZED_P(0);
+  GSERIALIZED *gs1 = PG_GETARG_GSERIALIZED_P(1);
+  /* All checks already performed by liblwgeom, not worth checking again */
+  LWGEOM *g0 = lwgeom_from_gserialized(gs0);
+  LWGEOM *g1 = lwgeom_from_gserialized(gs1);
+  double mindist;
+  double m = lwgeom_tcpa(g0, g1, &mindist);
+  lwgeom_free(g0);
+  lwgeom_free(g1);
+  PG_FREE_IF_COPY(gs0, 0);
+  PG_FREE_IF_COPY(gs1, 1);
+	if ( m < 0 ) PG_RETURN_NULL();
+  PG_RETURN_FLOAT8(mindist);
+}
+
+/*
+ * Return true if the distance between two trajectories at their
+ * closest point of approach is within the given max.
+ */
+Datum ST_CPAWithin(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_CPAWithin);
+Datum ST_CPAWithin(PG_FUNCTION_ARGS)
+{
+  GSERIALIZED *gs0 = PG_GETARG_GSERIALIZED_P(0);
+  GSERIALIZED *gs1 = PG_GETARG_GSERIALIZED_P(1);
+  double maxdist = PG_GETARG_FLOAT8(2);
+  /* All checks already performed by liblwgeom, not worth checking again */
+  LWGEOM *g0 = lwgeom_from_gserialized(gs0);
+  LWGEOM *g1 = lwgeom_from_gserialized(gs1);
+  int ret = lwgeom_cpa_within(g0, g1, maxdist);
+  lwgeom_free(g0);
+  lwgeom_free(g1);
+  PG_FREE_IF_COPY(gs0, 0);
+  PG_FREE_IF_COPY(gs1, 1);
+	PG_RETURN_BOOL( ret == LW_TRUE );
+}
+
diff --git a/postgis/lwgeom_geos.c b/postgis/lwgeom_geos.c
index 60d56e3..576f910 100644
--- a/postgis/lwgeom_geos.c
+++ b/postgis/lwgeom_geos.c
@@ -3,7 +3,7 @@
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
  *
- * Copyright 2009-2012 Sandro Santilli <strk at keybit.net>
+ * Copyright 2009-2014 Sandro Santilli <strk at keybit.net>
  * Copyright 2008 Paul Ramsey <pramsey at cleverelephant.ca>
  * Copyright 2001-2003 Refractions Research Inc.
  *
@@ -12,19 +12,14 @@
  *
  **********************************************************************/
 
-/* TODO: we probaby don't need _all_ these pgsql headers */
+#include "../postgis_config.h"
+
+/* PostgreSQL */
 #include "postgres.h"
-#include "fmgr.h"
-#include "miscadmin.h"
+#include "funcapi.h"
 #include "utils/array.h"
-
 #include "utils/builtins.h"
-#include "utils/hsearch.h"
-#include "utils/memutils.h"
-#include "executor/spi.h"
-#include "funcapi.h"
-
-#include "../postgis_config.h"
+#include "utils/lsyscache.h"
 
 #if POSTGIS_PGSQL_VERSION >= 93
 #include "access/htup_details.h"
@@ -32,17 +27,26 @@
 #include "access/htup.h"
 #endif
 
+/* PostGIS */
 #include "lwgeom_functions_analytic.h" /* for point_in_polygon */
 #include "lwgeom_geos.h"
-#include "liblwgeom_internal.h"
+#include "liblwgeom.h"
 #include "lwgeom_rtree.h"
-#include "lwgeom_geos_prepared.h" 
+#include "lwgeom_geos_prepared.h"
 
-#include "float.h" /* for DBL_DIG */ 
+#include "float.h" /* for DBL_DIG */
 
 
-#include <string.h>
-#include <assert.h>
+/* Return NULL on GEOS error
+ *
+ * Prints error message only if it was not for interruption, in which
+ * case we let PostgreSQL deal with the error.
+ */
+#define HANDLE_GEOS_ERROR(label) { \
+  if ( ! strstr(lwgeom_geos_errmsg, "InterruptedException") ) \
+    lwpgerror(label": %s", lwgeom_geos_errmsg); \
+  PG_RETURN_NULL(); \
+}
 
 /*
 ** Prototypes for SQL-bound functions
@@ -64,10 +68,10 @@ Datum buffer(PG_FUNCTION_ARGS);
 Datum geos_intersection(PG_FUNCTION_ARGS);
 Datum convexhull(PG_FUNCTION_ARGS);
 Datum topologypreservesimplify(PG_FUNCTION_ARGS);
-Datum difference(PG_FUNCTION_ARGS);
+Datum geos_difference(PG_FUNCTION_ARGS);
 Datum boundary(PG_FUNCTION_ARGS);
 Datum symdifference(PG_FUNCTION_ARGS);
-Datum geomunion(PG_FUNCTION_ARGS);
+Datum geos_geomunion(PG_FUNCTION_ARGS);
 Datum issimple(PG_FUNCTION_ARGS);
 Datum isring(PG_FUNCTION_ARGS);
 Datum pointonsurface(PG_FUNCTION_ARGS);
@@ -75,6 +79,8 @@ Datum GEOSnoop(PG_FUNCTION_ARGS);
 Datum postgis_geos_version(PG_FUNCTION_ARGS);
 Datum centroid(PG_FUNCTION_ARGS);
 Datum polygonize_garray(PG_FUNCTION_ARGS);
+Datum clusterintersecting_garray(PG_FUNCTION_ARGS);
+Datum cluster_within_distance_garray(PG_FUNCTION_ARGS);
 Datum linemerge(PG_FUNCTION_ARGS);
 Datum coveredby(PG_FUNCTION_ARGS);
 Datum hausdorffdistance(PG_FUNCTION_ARGS);
@@ -111,7 +117,7 @@ PG_FUNCTION_INFO_V1(hausdorffdistance);
 Datum hausdorffdistance(PG_FUNCTION_ARGS)
 {
 #if POSTGIS_GEOS_VERSION < 32
-	lwerror("The GEOS version this PostGIS binary "
+	lwpgerror("The GEOS version this PostGIS binary "
 	        "was compiled against (%d) doesn't support "
 	        "'ST_HausdorffDistance' function (3.2.0+ required)",
 	        POSTGIS_GEOS_VERSION);
@@ -126,25 +132,25 @@ Datum hausdorffdistance(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "hausdorff_distance called");
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	if ( gserialized_is_empty(geom1) || gserialized_is_empty(geom2) )
 		PG_RETURN_NULL();
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
 	g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 	if ( 0 == g2 )   /* exception thrown */
 	{
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		GEOSGeom_destroy(g1);
 		PG_RETURN_NULL();
 	}
@@ -155,7 +161,7 @@ Datum hausdorffdistance(PG_FUNCTION_ARGS)
 
 	if (retcode == 0)
 	{
-		lwerror("GEOSHausdorffDistance: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSHausdorffDistance");
 		PG_RETURN_NULL(); /*never get here */
 	}
 
@@ -177,7 +183,7 @@ PG_FUNCTION_INFO_V1(hausdorffdistancedensify);
 Datum hausdorffdistancedensify(PG_FUNCTION_ARGS)
 {
 #if POSTGIS_GEOS_VERSION < 32
-	lwerror("The GEOS version this PostGIS binary "
+	lwpgerror("The GEOS version this PostGIS binary "
 	        "was compiled against (%d) doesn't support "
 	        "'ST_HausdorffDistance' function (3.2.0+ required)",
 	        POSTGIS_GEOS_VERSION);
@@ -192,26 +198,26 @@ Datum hausdorffdistancedensify(PG_FUNCTION_ARGS)
 	int retcode;
 
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 	densifyFrac = PG_GETARG_FLOAT8(2);
 
 	if ( gserialized_is_empty(geom1) || gserialized_is_empty(geom2) )
 		PG_RETURN_NULL();
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
 	g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		GEOSGeom_destroy(g1);
 		PG_RETURN_NULL();
 	}
@@ -222,7 +228,7 @@ Datum hausdorffdistancedensify(PG_FUNCTION_ARGS)
 
 	if (retcode == 0)
 	{
-		lwerror("GEOSHausdorffDistanceDensify: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSHausdorffDistanceDensify");
 		PG_RETURN_NULL(); /*never get here */
 	}
 
@@ -248,13 +254,16 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 {
 	/*
 	** For GEOS >= 3.3, use the new UnaryUnion functionality to merge the
-	** terminal collection from the ST_Union aggregate 
+	** terminal collection from the ST_Union aggregate
 	*/
-	Datum datum;
 	ArrayType *array;
 
+	ArrayIterator iterator;
+	Datum value;
+	bool isnull;
+
 	int is3d = LW_FALSE, gotsrid = LW_FALSE;
-	int nelems = 0, i = 0, geoms_size = 0, curgeom = 0;
+	int nelems = 0, geoms_size = 0, curgeom = 0, count = 0;
 
 	GSERIALIZED *gser_out = NULL;
 
@@ -264,119 +273,119 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 
 	int srid = SRID_UNKNOWN;
 
-	size_t offset = 0;
-	bits8 *bitmap;
-	int bitmask;
 	int empty_type = 0;
 
-	datum = PG_GETARG_DATUM(0);
-
 	/* Null array, null geometry (should be empty?) */
-	if ( (Pointer *)datum == NULL ) PG_RETURN_NULL();
-
-	array = DatumGetArrayTypeP(datum);
+	if ( PG_ARGISNULL(0) )
+		PG_RETURN_NULL();
 
-	/* How many things in our array? */
+	array = PG_GETARG_ARRAYTYPE_P(0);
 	nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
-
-	/* PgSQL supplies a bitmap of which array entries are null */
-	bitmap = ARR_NULLBITMAP(array);
-
+	
 	/* Empty array? Null return */
 	if ( nelems == 0 ) PG_RETURN_NULL();
 
-	/* One-element union is the element itself! */
-	if ( nelems == 1 )
+	/* Quick scan for nulls */
+#if POSTGIS_PGSQL_VERSION >= 95	
+	iterator = array_create_iterator(array, 0, NULL);
+#else
+	iterator = array_create_iterator(array, 0);
+#endif
+	while( array_iterate(iterator, &value, &isnull) )
 	{
-		/* If the element is a NULL then we need to handle it separately */
-		if (bitmap && (*bitmap & 1) == 0)
-			PG_RETURN_NULL();
-		else
-			PG_RETURN_POINTER((GSERIALIZED *)(ARR_DATA_PTR(array)));
+		/* Skip null array items */
+		if ( isnull )
+			continue;
+		
+		count++;
 	}
-
+	array_free_iterator(iterator);
+	
+	
+	/* All-nulls? Return null */
+	if ( count == 0 )
+		PG_RETURN_NULL();
+	
+	/* One geom, good geom? Return it */
+	if ( count == 1 && nelems == 1 )
+		PG_RETURN_POINTER((GSERIALIZED *)(ARR_DATA_PTR(array)));
+	
 	/* Ok, we really need GEOS now ;) */
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	/*
 	** Collect the non-empty inputs and stuff them into a GEOS collection
 	*/
 	geoms_size = nelems;
-	geoms = palloc( sizeof(GEOSGeometry*) * geoms_size );
+	geoms = palloc(sizeof(GEOSGeometry*) * geoms_size);
 
 	/*
 	** We need to convert the array of GSERIALIZED into a GEOS collection.
 	** First make an array of GEOS geometries.
 	*/
-	offset = 0;
-	bitmap = ARR_NULLBITMAP(array);
-	bitmask = 1;
-	for ( i = 0; i < nelems; i++ )
+#if POSTGIS_PGSQL_VERSION >= 95	
+	iterator = array_create_iterator(array, 0, NULL);
+#else
+	iterator = array_create_iterator(array, 0);
+#endif
+	while( array_iterate(iterator, &value, &isnull) )
 	{
-		/* Only work on non-NULL entries in the array */
-		if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
+		GSERIALIZED *gser_in;
+
+		/* Skip null array items */
+		if ( isnull )
+			continue;
+		
+		gser_in = (GSERIALIZED *)DatumGetPointer(value);
+
+		/* Check for SRID mismatch in array elements */
+		if ( gotsrid ) 
 		{
-			GSERIALIZED *gser_in = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
+			error_if_srid_mismatch(srid, gserialized_get_srid(gser_in));
+		}
+		else
+		{
+			/* Initialize SRID/dimensions info */
+			srid = gserialized_get_srid(gser_in);
+			is3d = gserialized_has_z(gser_in);
+			gotsrid = 1;
+		}
 
-			/* Check for SRID mismatch in array elements */
-			if ( gotsrid ) 
+		/* Don't include empties in the union */
+		if ( gserialized_is_empty(gser_in) )
+		{
+			int gser_type = gserialized_get_type(gser_in);
+			if (gser_type > empty_type)
 			{
-				error_if_srid_mismatch(srid, gserialized_get_srid(gser_in));
+				empty_type = gser_type;
+				POSTGIS_DEBUGF(4, "empty_type = %d  gser_type = %d", empty_type, gser_type);
 			}
-			else
+		}
+		else
+		{
+			g = (GEOSGeometry *)POSTGIS2GEOS(gser_in);
+
+			/* Uh oh! Exception thrown at construction... */
+			if ( ! g )  
 			{
-				/* Initialize SRID/dimensions info */
-				srid = gserialized_get_srid(gser_in);
-				is3d = gserialized_has_z(gser_in);
-				gotsrid = 1;
+				HANDLE_GEOS_ERROR("One of the geometries in the set "
+				                  "could not be converted to GEOS");
+				PG_RETURN_NULL();
 			}
 
-			/* Don't include empties in the union */
-			if ( gserialized_is_empty(gser_in) )
+			/* Ensure we have enough space in our storage array */
+			if ( curgeom == geoms_size )
 			{
-				int gser_type = gserialized_get_type(gser_in);
-				if (gser_type > empty_type)
-				{
-					empty_type = gser_type;
-					POSTGIS_DEBUGF(4, "empty_type = %d  gser_type = %d", empty_type, gser_type);
-				}
+				geoms_size *= 2;
+				geoms = repalloc( geoms, sizeof(GEOSGeometry*) * geoms_size );
 			}
-			else
-			{
-				g = (GEOSGeometry *)POSTGIS2GEOS(gser_in);
-
-				/* Uh oh! Exception thrown at construction... */
-				if ( ! g )  
-				{
-					lwerror("One of the geometries in the set "
-					        "could not be converted to GEOS: %s", lwgeom_geos_errmsg);
-					PG_RETURN_NULL();
-				}
-
-				/* Ensure we have enough space in our storage array */
-				if ( curgeom == geoms_size )
-				{
-					geoms_size *= 2;
-					geoms = repalloc( geoms, sizeof(GEOSGeometry*) * geoms_size );
-				}
 
-				geoms[curgeom] = g;
-				curgeom++;
-			}
-			offset += INTALIGN(VARSIZE(gser_in));			
+			geoms[curgeom] = g;
+			curgeom++;
 		}
 
-		/* Advance NULL bitmap */
-		if (bitmap)
-		{
-			bitmask <<= 1;
-			if (bitmask == 0x100)
-			{
-				bitmap++;
-				bitmask = 1;
-			}
-		}
 	}
+	array_free_iterator(iterator);
 
 	/*
 	** Take our GEOS geometries and turn them into a GEOS collection,
@@ -387,7 +396,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 		g = GEOSGeom_createCollection(GEOS_GEOMETRYCOLLECTION, geoms, curgeom);
 		if ( ! g )
 		{
-			lwerror("Could not create GEOS COLLECTION from geometry array: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("Could not create GEOS COLLECTION from geometry array");
 			PG_RETURN_NULL();
 		}
 
@@ -395,8 +404,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 		GEOSGeom_destroy(g);
 		if ( ! g_union )
 		{
-			lwerror("GEOSUnaryUnion: %s",
-			        lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("GEOSUnaryUnion");
 			PG_RETURN_NULL();
 		}
 
@@ -432,104 +440,90 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 {
 /* For GEOS < 3.3, use the old CascadedUnion function for polygons and
    brute force two-by-two for other types. */
-	Datum datum;
 	ArrayType *array;
 	int is3d = 0;
-	int nelems, i;
+	int nelems = 0;
 	GSERIALIZED *result = NULL;
 	GSERIALIZED *pgis_geom = NULL;
 	GEOSGeometry * g1 = NULL;
 	GEOSGeometry * g2 = NULL;
-	GEOSGeometry * geos_result=NULL;
-	int srid=SRID_UNKNOWN;
-	size_t offset = 0;
-	bits8 *bitmap;
-	int bitmask;
-#if POSTGIS_DEBUG_LEVEL > 0
-	static int call=1;
-#endif
-	int gotsrid = 0;
-	int allpolys=1;
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	call++;
-	POSTGIS_DEBUGF(2, "GEOS incremental union (call %d)", call);
-#endif
-
-	datum = PG_GETARG_DATUM(0);
-
-	/* TODO handle empties */
+	GEOSGeometry * geos_result = NULL;
+	int srid = SRID_UNKNOWN;
+	int count;
 
-	/* Null array, null geometry (should be empty?) */
-	if ( (Pointer *)datum == NULL ) PG_RETURN_NULL();
+	ArrayIterator iterator;
+	Datum value;
+	bool isnull;
 
-	array = DatumGetArrayTypeP(datum);
+	int gotsrid = 0;
+	int allpolys = 1;
 
+	if ( PG_ARGISNULL(0) )
+		PG_RETURN_NULL();
+	
+	array = PG_GETARG_ARRAYTYPE_P(0);
 	nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
+	
+	POSTGIS_DEBUGF(3, "%s: number of elements: %d", __func__, nelems);
 
-	bitmap = ARR_NULLBITMAP(array);
-
-	POSTGIS_DEBUGF(3, "unite_garray: number of elements: %d", nelems);
-
-	if ( nelems == 0 ) PG_RETURN_NULL();
-
-	/* One-element union is the element itself */
-	if ( nelems == 1 )
-	{
-		/* If the element is a NULL then we need to handle it separately */
-		if (bitmap && (*bitmap & 1) == 0)
-			PG_RETURN_NULL();
-		else
-			PG_RETURN_POINTER((GSERIALIZED *)(ARR_DATA_PTR(array)));
-	}
-
-	/* Ok, we really need geos now ;) */
-	initGEOS(lwnotice, lwgeom_geos_error);
+	/* Zero elements in array? return NULL */
+	if ( nelems == 0 ) 
+		PG_RETURN_NULL();
 
 	/*
 	** First, see if all our elements are POLYGON/MULTIPOLYGON
 	** If they are, we can use UnionCascaded for faster results.
 	*/
-	offset = 0;
-	bitmask = 1;
-	gotsrid = 0;
-	for ( i = 0; i < nelems; i++ )
+	count = 0;
+#if POSTGIS_PGSQL_VERSION >= 95	
+	iterator = array_create_iterator(array, 0, NULL);
+#else
+	iterator = array_create_iterator(array, 0);
+#endif
+	while( array_iterate(iterator, &value, &isnull) )
 	{
+		GSERIALIZED *pggeom;
+		int pgtype;
+		
 		/* Don't do anything for NULL values */
-		if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
-		{
-			GSERIALIZED *pggeom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
-			int pgtype = gserialized_get_type(pggeom);
-			offset += INTALIGN(VARSIZE(pggeom));
-			if ( ! gotsrid ) /* Initialize SRID */
-			{
-				srid = gserialized_get_srid(pggeom);
-				gotsrid = 1;
-				if ( gserialized_has_z(pggeom) ) is3d = 1;
-			}
-			else
-			{
-				error_if_srid_mismatch(srid, gserialized_get_srid(pggeom));
-			}
+		if ( isnull )
+			continue;
 
-			if ( pgtype != POLYGONTYPE && pgtype != MULTIPOLYGONTYPE )
-			{
-				allpolys = 0;
-				break;
-			}
+		pggeom = (GSERIALIZED *)DatumGetPointer(value);
+		pgtype = gserialized_get_type(pggeom);
+		
+		if ( ! gotsrid ) /* Initialize SRID */
+		{
+			srid = gserialized_get_srid(pggeom);
+			gotsrid = 1;
+			if ( gserialized_has_z(pggeom) ) is3d = 1;
+		}
+		else
+		{
+			error_if_srid_mismatch(srid, gserialized_get_srid(pggeom));
 		}
 
-		/* Advance NULL bitmap */
-		if (bitmap)
+		if ( pgtype != POLYGONTYPE && pgtype != MULTIPOLYGONTYPE )
 		{
-			bitmask <<= 1;
-			if (bitmask == 0x100)
-			{
-				bitmap++;
-				bitmask = 1;
-			}
+			allpolys = 0;
+			break;
 		}
+		
+		count++;
 	}
+	array_free_iterator(iterator);
+
+	/* All the components are null? Return null */
+	if ( count == 0 )
+		PG_RETURN_NULL();
+
+	/* Just one non-null component? Return that */
+	if ( count == 1 && nelems == 1 )
+		PG_RETURN_POINTER((GSERIALIZED *)(ARR_DATA_PTR(array)));
+
+	/* Ok, we really need geos now ;) */
+	initGEOS(lwpgnotice, lwgeom_geos_error);
+
 
 	if ( allpolys )
 	{
@@ -539,79 +533,75 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 		int geoms_size = nelems;
 		int curgeom = 0;
 		GEOSGeometry **geoms = NULL;
-		geoms = palloc( sizeof(GEOSGeometry *) * geoms_size );
+		geoms = palloc(sizeof(GEOSGeometry *) * geoms_size);
 		/*
 		** We need to convert the array of GSERIALIZED into a GEOS MultiPolygon.
 		** First make an array of GEOS Polygons.
 		*/
-		offset = 0;
-		bitmap = ARR_NULLBITMAP(array);
-		bitmask = 1;
-		for ( i = 0; i < nelems; i++ )
+#if POSTGIS_PGSQL_VERSION >= 95	
+		iterator = array_create_iterator(array, 0, NULL);
+#else
+		iterator = array_create_iterator(array, 0);
+#endif
+		while( array_iterate(iterator, &value, &isnull) )
 		{
 			GEOSGeometry* g;
-
+			GSERIALIZED *pggeom;
+			int pgtype;
+							
 			/* Don't do anything for NULL values */
-			if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
+			if ( isnull )
+				continue;
+
+			pggeom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
+			pgtype = gserialized_get_type(pggeom);
+
+			if ( pgtype == POLYGONTYPE )
 			{
-				GSERIALIZED *pggeom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
-				int pgtype = gserialized_get_type(pggeom);
-				offset += INTALIGN(VARSIZE(pggeom));
-				if ( pgtype == POLYGONTYPE )
+				if ( curgeom == geoms_size )
 				{
+					geoms_size *= 2;
+					geoms = repalloc( geoms, sizeof(GEOSGeom) * geoms_size );
+				}
+				g = (GEOSGeometry *)POSTGIS2GEOS(pggeom);
+				if ( 0 == g )   /* exception thrown at construction */
+				{
+					/* TODO: release GEOS allocated memory ! */
+					HANDLE_GEOS_ERROR("One of the geometries in the set "
+				                    "could not be converted to GEOS");
+					PG_RETURN_NULL();
+				}
+				geoms[curgeom] = g;
+				curgeom++;
+			}
+			if ( pgtype == MULTIPOLYGONTYPE )
+			{
+				int j = 0;
+				LWMPOLY *lwmpoly = (LWMPOLY*)lwgeom_from_gserialized(pggeom);;
+				for ( j = 0; j < lwmpoly->ngeoms; j++ )
+				{
+					GEOSGeometry* g;
 					if ( curgeom == geoms_size )
 					{
 						geoms_size *= 2;
 						geoms = repalloc( geoms, sizeof(GEOSGeom) * geoms_size );
 					}
-					g = (GEOSGeometry *)POSTGIS2GEOS(pggeom);
+					/* This builds a LWPOLY on top of the serialized form */
+					g = LWGEOM2GEOS(lwpoly_as_lwgeom(lwmpoly->geoms[j], 0));
 					if ( 0 == g )   /* exception thrown at construction */
 					{
-						/* TODO: release GEOS allocated memory ! */
-						lwerror("One of the geometries in the set "
-						        "could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+						/* TODO: cleanup all GEOS memory */
+						HANDLE_GEOS_ERROR("Geometry could not be converted to GEOS");
 						PG_RETURN_NULL();
 					}
-					geoms[curgeom] = g;
-					curgeom++;
-				}
-				if ( pgtype == MULTIPOLYGONTYPE )
-				{
-					int j = 0;
-					LWMPOLY *lwmpoly = (LWMPOLY*)lwgeom_from_gserialized(pggeom);;
-					for ( j = 0; j < lwmpoly->ngeoms; j++ )
-					{
-						GEOSGeometry* g;
-						if ( curgeom == geoms_size )
-						{
-							geoms_size *= 2;
-							geoms = repalloc( geoms, sizeof(GEOSGeom) * geoms_size );
-						}
-						/* This builds a LWPOLY on top of the serialized form */
-						g = LWGEOM2GEOS(lwpoly_as_lwgeom(lwmpoly->geoms[j]));
-						if ( 0 == g )   /* exception thrown at construction */
-						{
-							/* TODO: cleanup all GEOS memory */
-							lwerror("Geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
-							PG_RETURN_NULL();
-						}
-						geoms[curgeom++] = g;
-					}
-					lwmpoly_free(lwmpoly);
+					geoms[curgeom++] = g;
 				}
+				lwmpoly_free(lwmpoly);
 			}
 
-			/* Advance NULL bitmap */
-			if (bitmap)
-			{
-				bitmask <<= 1;
-				if (bitmask == 0x100)
-				{
-					bitmap++;
-					bitmask = 1;
-				}
-			}
 		}
+		array_free_iterator(iterator);
+		
 		/*
 		** Take our GEOS Polygons and turn them into a GEOS MultiPolygon,
 		** then pass that into cascaded union.
@@ -622,15 +612,14 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 			if ( ! g1 )
 			{
 				/* TODO: cleanup geoms memory */
-				lwerror("Could not create MULTIPOLYGON from geometry array: %s", lwgeom_geos_errmsg);
+				HANDLE_GEOS_ERROR("Could not create MULTIPOLYGON from geometry array");
 				PG_RETURN_NULL();
 			}
 			g2 = GEOSUnionCascaded(g1);
 			GEOSGeom_destroy(g1);
 			if ( ! g2 )
 			{
-				lwerror("GEOSUnionCascaded: %s",
-				        lwgeom_geos_errmsg);
+				HANDLE_GEOS_ERROR("GEOSUnionCascaded");
 				PG_RETURN_NULL();
 			}
 
@@ -649,77 +638,68 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 		/*
 		** Heterogeneous result, let's slog through this one union at a time.
 		*/
-		offset = 0;
-		bitmap = ARR_NULLBITMAP(array);
-		bitmask = 1;
-		for (i=0; i<nelems; i++)
+
+#if POSTGIS_PGSQL_VERSION >= 95	
+		iterator = array_create_iterator(array, 0, NULL);
+#else
+		iterator = array_create_iterator(array, 0);
+#endif
+		while( array_iterate(iterator, &value, &isnull) )
 		{
+			GSERIALIZED *geom;
+							
 			/* Don't do anything for NULL values */
-			if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
-			{
-				GSERIALIZED *geom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
-				offset += INTALIGN(VARSIZE(geom));
+			if ( isnull )
+				continue;
+			
+			geom = (GSERIALIZED *)DatumGetPointer(value);
+			pgis_geom = geom;
 
-				pgis_geom = geom;
+			POSTGIS_DEBUGF(3, "geom %d @ %p", i, geom);
 
-				POSTGIS_DEBUGF(3, "geom %d @ %p", i, geom);
+			/* Check is3d flag */
+			if ( gserialized_has_z(geom) ) is3d = 1;
 
-				/* Check is3d flag */
-				if ( gserialized_has_z(geom) ) is3d = 1;
-
-				/* Check SRID homogeneity and initialize geos result */
-				if ( ! geos_result )
+			/* Check SRID homogeneity and initialize geos result */
+			if ( ! geos_result )
+			{
+				geos_result = (GEOSGeometry *)POSTGIS2GEOS(geom);
+				if ( 0 == geos_result )   /* exception thrown at construction */
 				{
-					geos_result = (GEOSGeometry *)POSTGIS2GEOS(geom);
-					if ( 0 == geos_result )   /* exception thrown at construction */
-					{
-						lwerror("geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
-						PG_RETURN_NULL();
-					}
-					srid = gserialized_get_srid(geom);
-					POSTGIS_DEBUGF(3, "first geom is a %s", lwtype_name(gserialized_get_type(geom)));
+					HANDLE_GEOS_ERROR("geometry could not be converted to GEOS");
+					PG_RETURN_NULL();
 				}
-				else
-				{
-					error_if_srid_mismatch(srid, gserialized_get_srid(geom));
+				srid = gserialized_get_srid(geom);
+				POSTGIS_DEBUGF(3, "first geom is a %s", lwtype_name(gserialized_get_type(geom)));
+			}
+			else
+			{
+				error_if_srid_mismatch(srid, gserialized_get_srid(geom));
 
-					g1 = POSTGIS2GEOS(pgis_geom);
-					if ( 0 == g1 )   /* exception thrown at construction */
-					{
-						/* TODO: release GEOS allocated memory ! */
-						lwerror("First argument geometry could not be converted to GEOS: %s",
-						        lwgeom_geos_errmsg);
-						PG_RETURN_NULL();
-					}
+                g1 = POSTGIS2GEOS(pgis_geom);
+                if ( 0 == g1 )   /* exception thrown at construction */
+                {
+                    /* TODO: release GEOS allocated memory ! */
+                    HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
+                    PG_RETURN_NULL();
+                }
 
-					POSTGIS_DEBUGF(3, "unite_garray(%d): adding geom %d to union (%s)",
-					               call, i, lwtype_name(gserialized_get_type(geom)));
+				POSTGIS_DEBUGF(3, "unite_garray(%d): adding geom %d to union (%s)",
+				               call, i, lwtype_name(gserialized_get_type(geom)));
 
-					g2 = GEOSUnion(g1, geos_result);
-					if ( g2 == NULL )
-					{
-						GEOSGeom_destroy((GEOSGeometry *)g1);
-						GEOSGeom_destroy((GEOSGeometry *)geos_result);
-						lwerror("GEOSUnion: %s", lwgeom_geos_errmsg);
-					}
+				g2 = GEOSUnion(g1, geos_result);
+				if ( g2 == NULL )
+				{
 					GEOSGeom_destroy((GEOSGeometry *)g1);
 					GEOSGeom_destroy((GEOSGeometry *)geos_result);
-					geos_result = g2;
-				}
-			}
-
-			/* Advance NULL bitmap */
-			if (bitmap)
-			{
-				bitmask <<= 1;
-				if (bitmask == 0x100)
-				{
-					bitmap++;
-					bitmask = 1;
+					HANDLE_GEOS_ERROR("GEOSUnion");
 				}
+				GEOSGeom_destroy((GEOSGeometry *)g1);
+				GEOSGeom_destroy((GEOSGeometry *)geos_result);
+				geos_result = g2;
 			}
-
 		}
+		array_free_iterator(iterator);
 
 		/* If geos_result is set then we found at least one non-NULL geometry */
 		if (geos_result)
@@ -756,75 +736,24 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(ST_UnaryUnion);
 Datum ST_UnaryUnion(PG_FUNCTION_ARGS)
 {
-#if POSTGIS_GEOS_VERSION < 33
-	PG_RETURN_NULL();
-	lwerror("The GEOS version this PostGIS binary "
-	        "was compiled against (%d) doesn't support "
-	        "'GEOSUnaryUnion' function (3.3.0+ required)",
-	        POSTGIS_GEOS_VERSION);
-	PG_RETURN_NULL();
-#else /* POSTGIS_GEOS_VERSION >= 33 */
 	GSERIALIZED *geom1;
-	int is3d;
-	int srid;
-	GEOSGeometry *g1, *g3;
 	GSERIALIZED *result;
+	LWGEOM *lwgeom1, *lwresult ;
 
-	POSTGIS_DEBUG(2, "in ST_UnaryUnion");
-
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	/* UnaryUnion(empty) == (empty) */
-	if ( gserialized_is_empty(geom1) )
-		PG_RETURN_POINTER(geom1);
-
-	is3d = ( gserialized_has_z(geom1) );
-
-	srid = gserialized_get_srid(geom1);
-
-	initGEOS(lwnotice, lwgeom_geos_error);
-
-	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
-
-	if ( 0 == g1 )   /* exception thrown at construction */
-	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
-		PG_RETURN_NULL();
-	}
-
-	POSTGIS_DEBUGF(3, "g1=%s", GEOSGeomToWKT(g1));
-
-	g3 = GEOSUnaryUnion(g1);
-
-	POSTGIS_DEBUGF(3, "g3=%s", GEOSGeomToWKT(g3));
-
-	GEOSGeom_destroy(g1);
-
-	if (g3 == NULL)
-	{
-		lwerror("GEOSUnion: %s", lwgeom_geos_errmsg);
-		PG_RETURN_NULL(); /* never get here */
-	}
-
-
-	GEOSSetSRID(g3, srid);
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
 
-	result = GEOS2POSTGIS(g3, is3d);
 
-	GEOSGeom_destroy(g3);
+	lwgeom1 = lwgeom_from_gserialized(geom1) ;
 
-	if (result == NULL)
-	{
-		elog(ERROR, "ST_UnaryUnion failed converting GEOS result Geometry to PostGIS format");
-		PG_RETURN_NULL(); /*never get here */
-	}
+	lwresult = lwgeom_unaryunion(lwgeom1);
+	result = geometry_serialize(lwresult) ;
 
-	/* compressType(result); */
+	lwgeom_free(lwgeom1) ;
+	lwgeom_free(lwresult) ;
 
 	PG_FREE_IF_COPY(geom1, 0);
 
 	PG_RETURN_POINTER(result);
-#endif /* POSTGIS_GEOS_VERSION >= 33 */
 }
 
 
@@ -835,16 +764,16 @@ Datum ST_UnaryUnion(PG_FUNCTION_ARGS)
  * );
  *
  */
-PG_FUNCTION_INFO_V1(geomunion);
-Datum geomunion(PG_FUNCTION_ARGS)
+PG_FUNCTION_INFO_V1(geos_geomunion);
+Datum geos_geomunion(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *geom1;
 	GSERIALIZED *geom2;
 	GSERIALIZED *result;
 	LWGEOM *lwgeom1, *lwgeom2, *lwresult ;
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	lwgeom1 = lwgeom_from_gserialized(geom1) ;
 	lwgeom2 = lwgeom_from_gserialized(geom2) ;
@@ -876,8 +805,8 @@ Datum symdifference(PG_FUNCTION_ARGS)
 	GSERIALIZED *result;
 	LWGEOM *lwgeom1, *lwgeom2, *lwresult ;
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	lwgeom1 = lwgeom_from_gserialized(geom1) ;
 	lwgeom2 = lwgeom_from_gserialized(geom2) ;
@@ -906,7 +835,7 @@ Datum boundary(PG_FUNCTION_ARGS)
 	int srid;
 
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
 
 	/* Empty.Boundary() == Empty */
 	if ( gserialized_is_empty(geom1) )
@@ -916,26 +845,27 @@ Datum boundary(PG_FUNCTION_ARGS)
 
 	lwgeom = lwgeom_from_gserialized(geom1);
 	if ( ! lwgeom ) {
-		lwerror("POSTGIS2GEOS: unable to deserialize input");
+		lwpgerror("POSTGIS2GEOS: unable to deserialize input");
 		PG_RETURN_NULL();
 	}
 
 	/* GEOS doesn't do triangle type, so we special case that here */
-	if (lwgeom->type == TRIANGLETYPE) {
+	if (lwgeom->type == TRIANGLETYPE)
+	{
 		lwgeom->type = LINETYPE;
 		result = geometry_serialize(lwgeom);
 		lwgeom_free(lwgeom);
 		PG_RETURN_POINTER(result);
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
-	g1 = LWGEOM2GEOS(lwgeom);
+	g1 = LWGEOM2GEOS(lwgeom, 0);
 	lwgeom_free(lwgeom);
 
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
@@ -944,7 +874,7 @@ Datum boundary(PG_FUNCTION_ARGS)
 	if (g3 == NULL)
 	{
 		GEOSGeom_destroy(g1);
-		lwerror("GEOSBoundary: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSBoundary");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -981,7 +911,7 @@ Datum convexhull(PG_FUNCTION_ARGS)
 	int srid;
 	GBOX bbox;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
 
 	/* Empty.ConvexHull() == Empty */
 	if ( gserialized_is_empty(geom1) )
@@ -989,13 +919,13 @@ Datum convexhull(PG_FUNCTION_ARGS)
 
 	srid = gserialized_get_srid(geom1);
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
@@ -1004,7 +934,7 @@ Datum convexhull(PG_FUNCTION_ARGS)
 
 	if (g3 == NULL)
 	{
-		lwerror("GEOSConvexHull: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSConvexHull");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -1050,19 +980,19 @@ Datum topologypreservesimplify(PG_FUNCTION_ARGS)
 	GEOSGeometry *g1, *g3;
 	GSERIALIZED *result;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
 	tolerance = PG_GETARG_FLOAT8(1);
 
 	/* Empty.Simplify() == Empty */
 	if ( gserialized_is_empty(geom1) )
 		PG_RETURN_POINTER(geom1);
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
@@ -1071,7 +1001,7 @@ Datum topologypreservesimplify(PG_FUNCTION_ARGS)
 
 	if (g3 == NULL)
 	{
-		lwerror("GEOSTopologyPreserveSimplify: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSTopologyPreserveSimplify");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -1103,15 +1033,15 @@ Datum buffer(PG_FUNCTION_ARGS)
 	int nargs;
 	enum
 	{
-		ENDCAP_ROUND = 1,
-		ENDCAP_FLAT = 2,
-		ENDCAP_SQUARE = 3
+	    ENDCAP_ROUND = 1,
+	    ENDCAP_FLAT = 2,
+	    ENDCAP_SQUARE = 3
 	};
 	enum
 	{
-		JOIN_ROUND = 1,
-		JOIN_MITRE = 2,
-		JOIN_BEVEL = 3
+	    JOIN_ROUND = 1,
+	    JOIN_MITRE = 2,
+	    JOIN_BEVEL = 3
 	};
 	static const double DEFAULT_MITRE_LIMIT = 5.0;
 	static const int DEFAULT_ENDCAP_STYLE = ENDCAP_ROUND;
@@ -1124,7 +1054,7 @@ Datum buffer(PG_FUNCTION_ARGS)
 	char *params = NULL;
 	LWGEOM *lwg;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
 	size = PG_GETARG_FLOAT8(1);
 
 	/* Empty.Buffer() == Empty[polygon] */
@@ -1138,12 +1068,12 @@ Datum buffer(PG_FUNCTION_ARGS)
 
 	nargs = PG_NARGS();
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
@@ -1165,7 +1095,7 @@ Datum buffer(PG_FUNCTION_ARGS)
 			val = strchr(key, '=');
 			if ( val == NULL || *(val+1) == '\0' )
 			{
-				lwerror("Missing value for buffer "
+				lwpgerror("Missing value for buffer "
 				        "parameter %s", key);
 				break;
 			}
@@ -1194,7 +1124,7 @@ Datum buffer(PG_FUNCTION_ARGS)
 				}
 				else
 				{
-					lwerror("Invalid buffer end cap "
+					lwpgerror("Invalid buffer end cap "
 					        "style: %s (accept: "
 					        "'round', 'flat', 'butt' "
 					        "or 'square'"
@@ -1220,7 +1150,7 @@ Datum buffer(PG_FUNCTION_ARGS)
 				}
 				else
 				{
-					lwerror("Invalid buffer end cap "
+					lwpgerror("Invalid buffer end cap "
 					        "style: %s (accept: "
 					        "'round', 'mitre', 'miter' "
 					        " or 'bevel'"
@@ -1241,7 +1171,7 @@ Datum buffer(PG_FUNCTION_ARGS)
 			}
 			else
 			{
-				lwerror("Invalid buffer parameter: %s (accept: "
+				lwpgerror("Invalid buffer parameter: %s (accept: "
 				        "'endcap', 'join', 'mitre_limit', "
 				        "'miter_limit and "
 				        "'quad_segs')", key);
@@ -1267,7 +1197,7 @@ Datum buffer(PG_FUNCTION_ARGS)
 	        endCapStyle != DEFAULT_ENDCAP_STYLE ||
 	        joinStyle != DEFAULT_JOIN_STYLE )
 	{
-		lwerror("The GEOS version this PostGIS binary "
+		lwpgerror("The GEOS version this PostGIS binary "
 		        "was compiled against (%d) doesn't support "
 		        "specifying a mitre limit != %d or styles different "
 		        "from 'round' (needs 3.2 or higher)",
@@ -1281,7 +1211,7 @@ Datum buffer(PG_FUNCTION_ARGS)
 
 	if (g3 == NULL)
 	{
-		lwerror("GEOSBuffer: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSBuffer");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -1303,14 +1233,14 @@ Datum buffer(PG_FUNCTION_ARGS)
 }
 
 /*
-* Compute at offset curve to a line 
+* Compute at offset curve to a line
 */
 Datum ST_OffsetCurve(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(ST_OffsetCurve);
 Datum ST_OffsetCurve(PG_FUNCTION_ARGS)
 {
 #if POSTGIS_GEOS_VERSION < 32
-	lwerror("The GEOS version this PostGIS binary "
+	lwpgerror("The GEOS version this PostGIS binary "
 	        "was compiled against (%d) doesn't support "
 	        "ST_OffsetCurve function "
 	        "(needs 3.2 or higher)",
@@ -1332,23 +1262,23 @@ Datum ST_OffsetCurve(PG_FUNCTION_ARGS)
 		JOIN_MITRE = 2,
 		JOIN_BEVEL = 3
 	};
-	
+
 	static const double DEFAULT_MITRE_LIMIT = 5.0;
 	static const int DEFAULT_JOIN_STYLE = JOIN_ROUND;
 	double mitreLimit = DEFAULT_MITRE_LIMIT;
 	int joinStyle  = DEFAULT_JOIN_STYLE;
 	char *param = NULL;
 	char *paramstr = NULL;
-	
+
 	/* Read SQL arguments */
 	nargs = PG_NARGS();
-	gser_input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	gser_input = PG_GETARG_GSERIALIZED_P(0);
 	size = PG_GETARG_FLOAT8(1);
 
 	/* Check for a useable type */
 	if ( gserialized_get_type(gser_input) != LINETYPE )
 	{
-		lwerror("ST_OffsetCurve only works with LineStrings");
+		lwpgerror("ST_OffsetCurve only works with LineStrings");
 		PG_RETURN_NULL();
 	}
 
@@ -1357,13 +1287,13 @@ Datum ST_OffsetCurve(PG_FUNCTION_ARGS)
 	* Note that due to a bug, GEOS 3.3.0 would return EMPTY.
 	* See http://trac.osgeo.org/geos/ticket/454
 	*/
-	if ( size == 0 ) 
+	if ( size == 0 )
 		PG_RETURN_POINTER(gser_input);
 
 	/* Read the lwgeom, check for errors */
 	lwgeom_input = lwgeom_from_gserialized(gser_input);
 	if ( ! lwgeom_input )
-		lwerror("ST_OffsetCurve: lwgeom_from_gserialized returned NULL");
+		lwpgerror("ST_OffsetCurve: lwgeom_from_gserialized returned NULL");
 	
 	/* For empty inputs, just echo them back */
 	if ( lwgeom_is_empty(lwgeom_input) )
@@ -1388,7 +1318,7 @@ Datum ST_OffsetCurve(PG_FUNCTION_ARGS)
 			val = strchr(key, '=');
 			if ( val == NULL || *(val+1) == '\0' )
 			{
-				lwerror("ST_OffsetCurve: Missing value for buffer parameter %s", key);
+				lwpgerror("ST_OffsetCurve: Missing value for buffer parameter %s", key);
 				break;
 			}
 			*val = '\0';
@@ -1412,7 +1342,7 @@ Datum ST_OffsetCurve(PG_FUNCTION_ARGS)
 				}
 				else
 				{
-					lwerror("Invalid buffer end cap style: %s (accept: "
+					lwpgerror("Invalid buffer end cap style: %s (accept: "
 					        "'round', 'mitre', 'miter' or 'bevel')", val);
 					break;
 				}
@@ -1430,7 +1360,7 @@ Datum ST_OffsetCurve(PG_FUNCTION_ARGS)
 			}
 			else
 			{
-				lwerror("Invalid buffer parameter: %s (accept: "
+				lwpgerror("Invalid buffer parameter: %s (accept: "
 				        "'join', 'mitre_limit', 'miter_limit and "
 				        "'quad_segs')", key);
 				break;
@@ -1439,11 +1369,11 @@ Datum ST_OffsetCurve(PG_FUNCTION_ARGS)
 		POSTGIS_DEBUGF(3, "joinStyle:%d mitreLimit:%g", joinStyle, mitreLimit);
 		pfree(paramstr); /* alloc'ed in text2cstring */
 	}
-	
+
 	lwgeom_result = lwgeom_offsetcurve(lwgeom_as_lwline(lwgeom_input), size, quadsegs, joinStyle, mitreLimit);
-	
+
 	if (lwgeom_result == NULL)
-		lwerror("ST_OffsetCurve: lwgeom_offsetcurve returned NULL");
+		lwpgerror("ST_OffsetCurve: lwgeom_offsetcurve returned NULL");
 
 	gser_result = gserialized_from_lwgeom(lwgeom_result, 0, 0);
 	lwgeom_free(lwgeom_input);
@@ -1462,8 +1392,8 @@ Datum geos_intersection(PG_FUNCTION_ARGS)
 	GSERIALIZED *result;
 	LWGEOM *lwgeom1, *lwgeom2, *lwresult ;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	lwgeom1 = lwgeom_from_gserialized(geom1) ;
 	lwgeom2 = lwgeom_from_gserialized(geom2) ;
@@ -1486,16 +1416,16 @@ Datum geos_intersection(PG_FUNCTION_ARGS)
  *      'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))',
  *	'POLYGON((5 5, 15 5, 15 7, 5 7, 5 5))');
  */
-PG_FUNCTION_INFO_V1(difference);
-Datum difference(PG_FUNCTION_ARGS)
+PG_FUNCTION_INFO_V1(geos_difference);
+Datum geos_difference(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *geom1;
 	GSERIALIZED *geom2;
 	GSERIALIZED *result;
 	LWGEOM *lwgeom1, *lwgeom2, *lwresult ;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	lwgeom1 = lwgeom_from_gserialized(geom1) ;
 	lwgeom2 = lwgeom_from_gserialized(geom2) ;
@@ -1524,26 +1454,28 @@ Datum pointonsurface(PG_FUNCTION_ARGS)
 	GEOSGeometry *g1, *g3;
 	GSERIALIZED *result;
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	/* Empty.PointOnSurface == Point Empty */
 	if ( gserialized_is_empty(geom) )
 	{
 		LWPOINT *lwp = lwpoint_construct_empty(
 		                   gserialized_get_srid(geom),
-		                   gserialized_has_z(geom), 
+		                   gserialized_has_z(geom),
 		                   gserialized_has_m(geom));
 		result = geometry_serialize(lwpoint_as_lwgeom(lwp));
 		lwpoint_free(lwp);
 		PG_RETURN_POINTER(result);
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom);
 
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
+		/* Why is this a WARNING rather than an error ? */
+		/* TODO: use HANDLE_GEOS_ERROR instead */
 		elog(WARNING, "GEOSPointOnSurface(): %s", lwgeom_geos_errmsg);
 		PG_RETURN_NULL();
 	}
@@ -1553,7 +1485,7 @@ Datum pointonsurface(PG_FUNCTION_ARGS)
 	if (g3 == NULL)
 	{
 		GEOSGeom_destroy(g1);
-		lwerror("GEOSPointOnSurface: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSPointOnSurface");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -1585,27 +1517,27 @@ Datum centroid(PG_FUNCTION_ARGS)
 	GSERIALIZED *geom, *result;
 	GEOSGeometry *geosgeom, *geosresult;
 
-	geom = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	/* Empty.Centroid() == Point Empty */
 	if ( gserialized_is_empty(geom) )
 	{
 		LWPOINT *lwp = lwpoint_construct_empty(
-		                    gserialized_get_srid(geom), 
-		                    gserialized_has_z(geom), 
-		                    gserialized_has_m(geom));
+		                   gserialized_get_srid(geom),
+		                   gserialized_has_z(geom),
+		                   gserialized_has_m(geom));
 		result = geometry_serialize(lwpoint_as_lwgeom(lwp));
 		lwpoint_free(lwp);
 		PG_RETURN_POINTER(result);
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	geosgeom = (GEOSGeometry *)POSTGIS2GEOS(geom);
 
 	if ( 0 == geosgeom )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
@@ -1614,7 +1546,7 @@ Datum centroid(PG_FUNCTION_ARGS)
 	if ( geosresult == NULL )
 	{
 		GEOSGeom_destroy(geosgeom);
-		lwerror("GEOSGetCentroid: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSGetCentroid");
 		PG_RETURN_NULL();
 	}
 
@@ -1637,6 +1569,75 @@ Datum centroid(PG_FUNCTION_ARGS)
 	PG_RETURN_POINTER(result);
 }
 
+Datum ST_ClipByBox2d(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_ClipByBox2d);
+Datum ST_ClipByBox2d(PG_FUNCTION_ARGS)
+{
+#if POSTGIS_GEOS_VERSION < 35
+
+	lwpgerror("The GEOS version this PostGIS binary "
+					"was compiled against (%d) doesn't support "
+					"'GEOSClipByRect' function (3.5.0+ required)",
+					POSTGIS_GEOS_VERSION);
+	PG_RETURN_NULL();
+
+#else /* POSTGIS_GEOS_VERSION >= 35 */
+
+	GSERIALIZED *geom1;
+	GSERIALIZED *result;
+	LWGEOM *lwgeom1, *lwresult ;
+	const GBOX *bbox1;
+	GBOX *bbox2;
+
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	lwgeom1 = lwgeom_from_gserialized(geom1) ;
+
+	bbox1 = lwgeom_get_bbox(lwgeom1);
+	if ( ! bbox1 )
+	{
+		/* empty clips to empty, no matter rect */
+		lwgeom_free(lwgeom1);
+		PG_RETURN_POINTER(geom1);
+	}
+
+	/* WARNING: this is really a BOX2DF, use only xmin and ymin fields */
+	bbox2 = (GBOX *)PG_GETARG_POINTER(1);
+	bbox2->flags = 0;
+
+	/* If bbox1 outside of bbox2, return empty */
+	if ( ! gbox_overlaps_2d(bbox1, bbox2) )
+	{
+		lwresult = lwgeom_construct_empty(lwgeom1->type, lwgeom1->srid, 0, 0);
+		lwgeom_free(lwgeom1);
+		PG_FREE_IF_COPY(geom1, 0);
+		result = geometry_serialize(lwresult) ;
+		lwgeom_free(lwresult) ;
+		PG_RETURN_POINTER(result);
+	}
+
+	/* if bbox1 is covered by bbox2, return lwgeom1 */
+	if ( gbox_contains_2d(bbox2, bbox1) )
+	{
+		lwgeom_free(lwgeom1);
+		PG_RETURN_POINTER(geom1);
+	}
+
+	lwresult = lwgeom_clip_by_rect(lwgeom1, bbox2->xmin, bbox2->ymin,
+	                               bbox2->xmax, bbox2->ymax);
+
+	lwgeom_free(lwgeom1);
+	PG_FREE_IF_COPY(geom1, 0);
+
+	if ( lwresult == NULL ) 
+		PG_RETURN_NULL();
+
+	result = geometry_serialize(lwresult) ;
+	lwgeom_free(lwresult) ;
+	PG_RETURN_POINTER(result);
+	
+#endif /* POSTGIS_GEOS_VERSION >= 35 */
+}
+
 
 
 /*---------------------------------------------*/
@@ -1662,6 +1663,7 @@ void errorIfGeometryCollection(GSERIALIZED *g1, GSERIALIZED *g2)
 	{
 		lwgeom = lwgeom_from_gserialized(g1);
 		hintwkt = lwgeom_to_wkt(lwgeom, WKT_SFSQL, DBL_DIG, &hintsz);
+		lwgeom_free(lwgeom);
 		hintmsg = lwmessage_truncate(hintwkt, 0, hintsz-1, 80, 1);
 		ereport(ERROR,
 		        (errmsg("Relate Operation called with a LWGEOMCOLLECTION type.  This is unsupported."),
@@ -1669,20 +1671,19 @@ void errorIfGeometryCollection(GSERIALIZED *g1, GSERIALIZED *g2)
 		       );
 		pfree(hintwkt);
 		pfree(hintmsg);
-		lwgeom_free(lwgeom);
 	}
 	else if (t2 == COLLECTIONTYPE)
 	{
 		lwgeom = lwgeom_from_gserialized(g2);
 		hintwkt = lwgeom_to_wkt(lwgeom, WKT_SFSQL, DBL_DIG, &hintsz);
 		hintmsg = lwmessage_truncate(hintwkt, 0, hintsz-1, 80, 1);
+		lwgeom_free(lwgeom);
 		ereport(ERROR,
 		        (errmsg("Relate Operation called with a LWGEOMCOLLECTION type.  This is unsupported."),
 		         errhint("Change argument 2: '%s'", hintmsg))
 		       );
 		pfree(hintwkt);
 		pfree(hintmsg);
-		lwgeom_free(lwgeom);
 	}
 }
 
@@ -1697,7 +1698,7 @@ Datum isvalid(PG_FUNCTION_ARGS)
 	GBOX box1;
 #endif
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
 
 	/* Empty.IsValid() == TRUE */
 	if ( gserialized_is_empty(geom1) )
@@ -1706,33 +1707,33 @@ Datum isvalid(PG_FUNCTION_ARGS)
 #if POSTGIS_GEOS_VERSION < 33
 	/* Short circuit and return FALSE if we have infinite coordinates */
 	/* GEOS 3.3+ is supposed to  handle this stuff OK */
-	if ( gserialized_get_gbox_p(geom1, &box1) )	
+	if ( gserialized_get_gbox_p(geom1, &box1) )
 	{
-		if ( isinf(box1.xmax) || isinf(box1.ymax) || isinf(box1.xmin) || isinf(box1.ymin) || 
-		     isnan(box1.xmax) || isnan(box1.ymax) || isnan(box1.xmin) || isnan(box1.ymin)  )
+		if ( isinf(box1.xmax) || isinf(box1.ymax) || isinf(box1.xmin) || isinf(box1.ymin) ||
+		        isnan(box1.xmax) || isnan(box1.ymax) || isnan(box1.xmin) || isnan(box1.ymin)  )
 		{
-			lwnotice("Geometry contains an Inf or NaN coordinate");
+			lwpgnotice("Geometry contains an Inf or NaN coordinate");
 			PG_RETURN_BOOL(FALSE);
 		}
 	}
 #endif
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	lwgeom = lwgeom_from_gserialized(geom1);
 	if ( ! lwgeom )
 	{
-		lwerror("unable to deserialize input");
+		lwpgerror("unable to deserialize input");
 	}
-	g1 = LWGEOM2GEOS(lwgeom);
+	g1 = LWGEOM2GEOS(lwgeom, 0);
 	lwgeom_free(lwgeom);
-	
+
 	if ( ! g1 )
 	{
 		/* should we drop the following
 		 * notice now that we have ST_isValidReason ?
 		 */
-		lwnotice("%s", lwgeom_geos_errmsg);
+		lwpgnotice("%s", lwgeom_geos_errmsg);
 		PG_RETURN_BOOL(FALSE);
 	}
 
@@ -1761,18 +1762,18 @@ Datum isvalidreason(PG_FUNCTION_ARGS)
 	text *result = NULL;
 	const GEOSGeometry *g1 = NULL;
 #if POSTGIS_GEOS_VERSION < 33
-  GBOX box;
+	GBOX box;
 #endif
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 #if POSTGIS_GEOS_VERSION < 33
 	/* Short circuit and return if we have infinite coordinates */
 	/* GEOS 3.3+ is supposed to  handle this stuff OK */
-	if ( gserialized_get_gbox_p(geom, &box) )	
+	if ( gserialized_get_gbox_p(geom, &box) )
 	{
-		if ( isinf(box.xmax) || isinf(box.ymax) || isinf(box.xmin) || isinf(box.ymin) || 
-		     isnan(box.xmax) || isnan(box.ymax) || isnan(box.xmin) || isnan(box.ymin)  )
+		if ( isinf(box.xmax) || isinf(box.ymax) || isinf(box.xmin) || isinf(box.ymin) ||
+		        isnan(box.xmax) || isnan(box.ymax) || isnan(box.xmin) || isnan(box.ymin)  )
 		{
 			const char *rsn = "Geometry contains an Inf or NaN coordinate";
 			size_t len = strlen(rsn);
@@ -1780,12 +1781,12 @@ Datum isvalidreason(PG_FUNCTION_ARGS)
 			SET_VARSIZE(result, VARHDRSZ + len);
 			memcpy(VARDATA(result), rsn, len);
 			PG_FREE_IF_COPY(geom, 0);
-			PG_RETURN_POINTER(result);			
+			PG_RETURN_POINTER(result);
 		}
 	}
 #endif
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom);
 	if ( g1 )
@@ -1794,7 +1795,7 @@ Datum isvalidreason(PG_FUNCTION_ARGS)
 		GEOSGeom_destroy((GEOSGeometry *)g1);
 		if (reason_str == NULL)
 		{
-			elog(ERROR,"GEOSisValidReason() threw an error: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("GEOSisValidReason");
 			PG_RETURN_NULL(); /* never get here */
 		}
 		result = cstring2text(reason_str);
@@ -1819,7 +1820,7 @@ PG_FUNCTION_INFO_V1(isvaliddetail);
 Datum isvaliddetail(PG_FUNCTION_ARGS)
 {
 #if POSTGIS_GEOS_VERSION < 33
-	lwerror("The GEOS version this PostGIS binary "
+	lwpgerror("The GEOS version this PostGIS binary "
 	        "was compiled against (%d) doesn't support "
 	        "'isValidDetail' function (3.3.0+ required)",
 	        POSTGIS_GEOS_VERSION);
@@ -1847,7 +1848,7 @@ Datum isvaliddetail(PG_FUNCTION_ARGS)
 	tupdesc = RelationNameGetTupleDesc("valid_detail");
 	if ( ! tupdesc )
 	{
-		lwerror("TYPE valid_detail not found");
+		lwpgerror("TYPE valid_detail not found");
 		PG_RETURN_NULL();
 	}
 
@@ -1857,20 +1858,21 @@ Datum isvaliddetail(PG_FUNCTION_ARGS)
 	 */
 	attinmeta = TupleDescGetAttInMetadata(tupdesc);
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
-	if ( PG_NARGS() > 1 && ! PG_ARGISNULL(1) ) {
+	if ( PG_NARGS() > 1 && ! PG_ARGISNULL(1) )
+	{
 		flags = PG_GETARG_INT32(1);
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom);
 
 	if ( g1 )
 	{
 		valid = GEOSisValidDetail(g1, flags,
-			&geos_reason, &geos_location);
+		                          &geos_reason, &geos_location);
 		GEOSGeom_destroy((GEOSGeometry *)g1);
 		if ( geos_reason )
 		{
@@ -1886,7 +1888,7 @@ Datum isvaliddetail(PG_FUNCTION_ARGS)
 		if (valid == 2)
 		{
 			/* NOTE: should only happen on OOM or similar */
-			lwerror("GEOS isvaliddetail() threw an exception!");
+			lwpgerror("GEOS isvaliddetail() threw an exception!");
 			PG_RETURN_NULL(); /* never gets here */
 		}
 	}
@@ -1931,8 +1933,8 @@ Datum overlaps(PG_FUNCTION_ARGS)
 	bool result;
 	GBOX box1, box2;
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
@@ -1949,18 +1951,18 @@ Datum overlaps(PG_FUNCTION_ARGS)
 	if ( gserialized_get_gbox_p(geom1, &box1) &&
 	        gserialized_get_gbox_p(geom2, &box2) )
 	{
-		if ( gbox_overlaps_2d(&box1, &box2) == LW_FALSE )
+		if ( ! gbox_overlaps_2d(&box1, &box2) )
 		{
 			PG_RETURN_BOOL(FALSE);
 		}
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
@@ -1969,7 +1971,7 @@ Datum overlaps(PG_FUNCTION_ARGS)
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
 		GEOSGeom_destroy(g1);
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
@@ -1979,7 +1981,7 @@ Datum overlaps(PG_FUNCTION_ARGS)
 	GEOSGeom_destroy(g2);
 	if (result == 2)
 	{
-		lwerror("GEOSOverlaps: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSOverlaps");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2004,8 +2006,8 @@ Datum contains(PG_FUNCTION_ARGS)
 	int result;
 	PrepGeomCache *prep_cache;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
@@ -2022,10 +2024,9 @@ Datum contains(PG_FUNCTION_ARGS)
 	** Do the test IFF BOUNDING BOX AVAILABLE.
 	*/
 	if ( gserialized_get_gbox_p(geom1, &box1) &&
-	     gserialized_get_gbox_p(geom2, &box2) )
+	        gserialized_get_gbox_p(geom2, &box2) )
 	{
-		if ( ( box2.xmin < box1.xmin ) || ( box2.xmax > box1.xmax ) ||
-		     ( box2.ymin < box1.ymin ) || ( box2.ymax > box1.ymax ) )
+		if ( ! gbox_contains_2d(&box1, &box2) )
 		{
 			PG_RETURN_BOOL(FALSE);
 		}
@@ -2083,7 +2084,7 @@ Datum contains(PG_FUNCTION_ARGS)
 		POSTGIS_DEBUGF(3, "Contains: type1: %d, type2: %d", type1, type2);
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	prep_cache = GetPrepGeomCache( fcinfo, geom1, 0 );
 
@@ -2092,7 +2093,7 @@ Datum contains(PG_FUNCTION_ARGS)
 		g1 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 		if ( 0 == g1 )   /* exception thrown at construction */
 		{
-			lwerror("Geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("Geometry could not be converted to GEOS");
 			PG_RETURN_NULL();
 		}
 		POSTGIS_DEBUG(4, "containsPrepared: cache is live, running preparedcontains");
@@ -2104,13 +2105,13 @@ Datum contains(PG_FUNCTION_ARGS)
 		g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 		if ( 0 == g1 )   /* exception thrown at construction */
 		{
-			lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 			PG_RETURN_NULL();
 		}
 		g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 		if ( 0 == g2 )   /* exception thrown at construction */
 		{
-			lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 			GEOSGeom_destroy(g1);
 			PG_RETURN_NULL();
 		}
@@ -2122,7 +2123,7 @@ Datum contains(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSContains: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSContains");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2142,8 +2143,8 @@ Datum containsproperly(PG_FUNCTION_ARGS)
 	GBOX 			box1, box2;
 	PrepGeomCache *	prep_cache;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
@@ -2160,12 +2161,11 @@ Datum containsproperly(PG_FUNCTION_ARGS)
 	if ( gserialized_get_gbox_p(geom1, &box1) &&
 	        gserialized_get_gbox_p(geom2, &box2) )
 	{
-		if (( box2.xmin < box1.xmin ) || ( box2.xmax > box1.xmax ) ||
-		        ( box2.ymin < box1.ymin ) || ( box2.ymax > box1.ymax ))
+		if ( ! gbox_contains_2d(&box1, &box2) )
 			PG_RETURN_BOOL(FALSE);
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	prep_cache = GetPrepGeomCache( fcinfo, geom1, 0 );
 
@@ -2174,7 +2174,7 @@ Datum containsproperly(PG_FUNCTION_ARGS)
 		GEOSGeometry *g = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 		if ( 0 == g )   /* exception thrown at construction */
 		{
-			lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 			PG_RETURN_NULL();
 		}
 		result = GEOSPreparedContainsProperly( prep_cache->prepared_geom, g);
@@ -2188,13 +2188,13 @@ Datum containsproperly(PG_FUNCTION_ARGS)
 		g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 		if ( 0 == g1 )   /* exception thrown at construction */
 		{
-			lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 			PG_RETURN_NULL();
 		}
 		g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 		if ( 0 == g2 )   /* exception thrown at construction */
 		{
-			lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 			GEOSGeom_destroy(g1);
 			PG_RETURN_NULL();
 		}
@@ -2205,7 +2205,7 @@ Datum containsproperly(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSContains: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSContains");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2232,8 +2232,8 @@ Datum covers(PG_FUNCTION_ARGS)
 	RTREE_POLY_CACHE *poly_cache;
 	PrepGeomCache *prep_cache;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	/* A.Covers(Empty) == FALSE */
 	if ( gserialized_is_empty(geom1) || gserialized_is_empty(geom2) )
@@ -2250,8 +2250,7 @@ Datum covers(PG_FUNCTION_ARGS)
 	if ( gserialized_get_gbox_p(geom1, &box1) &&
 	        gserialized_get_gbox_p(geom2, &box2) )
 	{
-		if (( box2.xmin < box1.xmin ) || ( box2.xmax > box1.xmax ) ||
-		    ( box2.ymin < box1.ymin ) || ( box2.ymax > box1.ymax ))
+		if ( ! gbox_contains_2d(&box1, &box2) )
 		{
 			PG_RETURN_BOOL(FALSE);
 		}
@@ -2310,7 +2309,7 @@ Datum covers(PG_FUNCTION_ARGS)
 		POSTGIS_DEBUGF(3, "Covers: type1: %d, type2: %d", type1, type2);
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	prep_cache = GetPrepGeomCache( fcinfo, geom1, 0 );
 
@@ -2319,7 +2318,7 @@ Datum covers(PG_FUNCTION_ARGS)
 		GEOSGeometry *g1 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 		if ( 0 == g1 )   /* exception thrown at construction */
 		{
-			lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 			PG_RETURN_NULL();
 		}
 		result = GEOSPreparedCovers( prep_cache->prepared_geom, g1);
@@ -2333,13 +2332,13 @@ Datum covers(PG_FUNCTION_ARGS)
 		g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 		if ( 0 == g1 )   /* exception thrown at construction */
 		{
-			lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 			PG_RETURN_NULL();
 		}
 		g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 		if ( 0 == g2 )   /* exception thrown at construction */
 		{
-			lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 			GEOSGeom_destroy(g1);
 			PG_RETURN_NULL();
 		}
@@ -2350,7 +2349,7 @@ Datum covers(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSCovers: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSCovers");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2363,7 +2362,7 @@ Datum covers(PG_FUNCTION_ARGS)
 
 
 /**
-* ST_Within(A, B) => ST_Contains(B, A) so we just delegate this calculation to the 
+* ST_Within(A, B) => ST_Contains(B, A) so we just delegate this calculation to the
 * Contains implementation.
 PG_FUNCTION_INFO_V1(within);
 Datum within(PG_FUNCTION_ARGS)
@@ -2387,8 +2386,8 @@ Datum coveredby(PG_FUNCTION_ARGS)
 	RTREE_POLY_CACHE *poly_cache;
 	char *patt = "**F**F***";
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
@@ -2405,8 +2404,7 @@ Datum coveredby(PG_FUNCTION_ARGS)
 	if ( gserialized_get_gbox_p(geom1, &box1) &&
 	        gserialized_get_gbox_p(geom2, &box2) )
 	{
-		if ( ( box1.xmin < box2.xmin ) || ( box1.xmax > box2.xmax ) ||
-		        ( box1.ymin < box2.ymin ) || ( box1.ymax > box2.ymax ) )
+		if ( ! gbox_contains_2d(&box2, &box1) )
 		{
 			PG_RETURN_BOOL(FALSE);
 		}
@@ -2461,13 +2459,13 @@ Datum coveredby(PG_FUNCTION_ARGS)
 		}
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
@@ -2475,7 +2473,7 @@ Datum coveredby(PG_FUNCTION_ARGS)
 
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		GEOSGeom_destroy(g1);
 		PG_RETURN_NULL();
 	}
@@ -2487,7 +2485,7 @@ Datum coveredby(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSCoveredBy: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSCoveredBy");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2508,8 +2506,8 @@ Datum crosses(PG_FUNCTION_ARGS)
 	int result;
 	GBOX box1, box2;
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
@@ -2524,7 +2522,7 @@ Datum crosses(PG_FUNCTION_ARGS)
 	 * Do the test IFF BOUNDING BOX AVAILABLE.
 	 */
 	if ( gserialized_get_gbox_p(geom1, &box1) &&
-	     gserialized_get_gbox_p(geom2, &box2) )
+	        gserialized_get_gbox_p(geom2, &box2) )
 	{
 		if ( gbox_overlaps_2d(&box1, &box2) == LW_FALSE )
 		{
@@ -2532,19 +2530,19 @@ Datum crosses(PG_FUNCTION_ARGS)
 		}
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
 	g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		GEOSGeom_destroy(g1);
 		PG_RETURN_NULL();
 	}
@@ -2556,7 +2554,7 @@ Datum crosses(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSCrosses: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSCrosses");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2581,8 +2579,8 @@ Datum geos_intersects(PG_FUNCTION_ARGS)
 	RTREE_POLY_CACHE *poly_cache;
 	PrepGeomCache *prep_cache;
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
@@ -2612,7 +2610,7 @@ Datum geos_intersects(PG_FUNCTION_ARGS)
 	type1 = gserialized_get_type(geom1);
 	type2 = gserialized_get_type(geom2);
 	if ( (type1 == POINTTYPE && (type2 == POLYGONTYPE || type2 == MULTIPOLYGONTYPE)) ||
-	     (type2 == POINTTYPE && (type1 == POLYGONTYPE || type1 == MULTIPOLYGONTYPE)))
+	        (type2 == POINTTYPE && (type1 == POLYGONTYPE || type1 == MULTIPOLYGONTYPE)))
 	{
 		POSTGIS_DEBUG(3, "Point in Polygon test requested...short-circuiting.");
 
@@ -2666,7 +2664,7 @@ Datum geos_intersects(PG_FUNCTION_ARGS)
 		}
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 	prep_cache = GetPrepGeomCache( fcinfo, geom1, geom2 );
 
 	if ( prep_cache && prep_cache->prepared_geom )
@@ -2676,7 +2674,7 @@ Datum geos_intersects(PG_FUNCTION_ARGS)
 			GEOSGeometry *g = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 			if ( 0 == g )   /* exception thrown at construction */
 			{
-				lwerror("Geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+				HANDLE_GEOS_ERROR("Geometry could not be converted to GEOS");
 				PG_RETURN_NULL();
 			}
 			result = GEOSPreparedIntersects( prep_cache->prepared_geom, g);
@@ -2687,7 +2685,7 @@ Datum geos_intersects(PG_FUNCTION_ARGS)
 			GEOSGeometry *g = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 			if ( 0 == g )   /* exception thrown at construction */
 			{
-				lwerror("Geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+				HANDLE_GEOS_ERROR("Geometry could not be converted to GEOS");
 				PG_RETURN_NULL();
 			}
 			result = GEOSPreparedIntersects( prep_cache->prepared_geom, g);
@@ -2701,13 +2699,13 @@ Datum geos_intersects(PG_FUNCTION_ARGS)
 		g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 		if ( 0 == g1 )   /* exception thrown at construction */
 		{
-			lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 			PG_RETURN_NULL();
 		}
 		g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 		if ( 0 == g2 )   /* exception thrown at construction */
 		{
-			lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 			GEOSGeom_destroy(g1);
 			PG_RETURN_NULL();
 		}
@@ -2718,7 +2716,7 @@ Datum geos_intersects(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSIntersects: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSIntersects");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2738,8 +2736,8 @@ Datum touches(PG_FUNCTION_ARGS)
 	bool result;
 	GBOX box1, box2;
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
@@ -2762,19 +2760,19 @@ Datum touches(PG_FUNCTION_ARGS)
 		}
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1 );
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
 	g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2 );
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		GEOSGeom_destroy(g1);
 		PG_RETURN_NULL();
 	}
@@ -2786,7 +2784,7 @@ Datum touches(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSTouches: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSTouches");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2806,8 +2804,8 @@ Datum disjoint(PG_FUNCTION_ARGS)
 	bool result;
 	GBOX box1, box2;
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
@@ -2830,19 +2828,19 @@ Datum disjoint(PG_FUNCTION_ARGS)
 		}
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
 	g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		GEOSGeom_destroy(g1);
 		PG_RETURN_NULL();
 	}
@@ -2854,7 +2852,7 @@ Datum disjoint(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSDisjoint: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSDisjoint");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2875,8 +2873,8 @@ Datum relate_pattern(PG_FUNCTION_ARGS)
 	GEOSGeometry *g1, *g2;
 	int i;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 
 	/* TODO handle empty */
@@ -2884,18 +2882,18 @@ Datum relate_pattern(PG_FUNCTION_ARGS)
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 	g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		GEOSGeom_destroy(g1);
 		PG_RETURN_NULL();
 	}
@@ -2919,7 +2917,7 @@ Datum relate_pattern(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSRelatePattern: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSRelatePattern");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -2947,14 +2945,15 @@ Datum relate_full(PG_FUNCTION_ARGS)
 
 	/* TODO handle empty */
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
-	if ( PG_NARGS() > 2 ) {
+	if ( PG_NARGS() > 2 )
+	{
 #if POSTGIS_GEOS_VERSION >= 33
 		bnr = PG_GETARG_INT32(2);
 #else
-		lwerror("The GEOS version this PostGIS binary "
+		lwpgerror("The GEOS version this PostGIS binary "
 			"was compiled against (%d) doesn't support "
 			"specifying a boundary node rule with ST_Relate"
 			" (3.3.0+ required)",
@@ -2966,18 +2965,18 @@ Datum relate_full(PG_FUNCTION_ARGS)
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1 );
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 	g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2 );
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		GEOSGeom_destroy(g1);
 		PG_RETURN_NULL();
 	}
@@ -3001,7 +3000,7 @@ Datum relate_full(PG_FUNCTION_ARGS)
 
 	if (relate_str == NULL)
 	{
-		lwerror("GEOSRelate: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSRelate");
 		PG_RETURN_NULL(); /* never get here */
 	}
 
@@ -3024,8 +3023,8 @@ Datum ST_Equals(PG_FUNCTION_ARGS)
 	bool result;
 	GBOX box1, box2;
 
-	geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	errorIfGeometryCollection(geom1,geom2);
 	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
@@ -3035,27 +3034,33 @@ Datum ST_Equals(PG_FUNCTION_ARGS)
 		PG_RETURN_BOOL(TRUE);
 
 	/*
-	 * short-circuit: Loose test, if geom2 bounding box does not overlap
-	 * geom1 bounding box we can prematurely return FALSE.
-	 *
-	 * TODO: use gbox_same_2d instead (not available at time of writing)
+	 * short-circuit: If geom1 and geom2 do not have the same bounding box
+	 * we can return FALSE.
 	 */
 	if ( gserialized_get_gbox_p(geom1, &box1) &&
 	     gserialized_get_gbox_p(geom2, &box2) )
 	{
-		if ( gbox_overlaps_2d(&box1, &box2) == LW_FALSE )
+		if ( gbox_same_2d_float(&box1, &box2) == LW_FALSE )
 		{
 			PG_RETURN_BOOL(FALSE);
 		}
 	}
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	/*
+	 * short-circuit: if geom1 and geom2 are binary-equivalent, we can return
+	 * TRUE.  This is much faster than doing the comparison using GEOS.
+	 */
+	if (VARSIZE(geom1) == VARSIZE(geom2) && !memcmp(geom1, geom2, VARSIZE(geom1))) {
+	    PG_RETURN_BOOL(TRUE);
+	}
+
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
 
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
 
@@ -3063,7 +3068,7 @@ Datum ST_Equals(PG_FUNCTION_ARGS)
 
 	if ( 0 == g2 )   /* exception thrown at construction */
 	{
-		lwerror("Second argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("Second argument geometry could not be converted to GEOS");
 		GEOSGeom_destroy(g1);
 		PG_RETURN_NULL();
 	}
@@ -3075,7 +3080,7 @@ Datum ST_Equals(PG_FUNCTION_ARGS)
 
 	if (result == 2)
 	{
-		lwerror("GEOSEquals: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSEquals");
 		PG_RETURN_NULL(); /*never get here */
 	}
 
@@ -3089,35 +3094,25 @@ PG_FUNCTION_INFO_V1(issimple);
 Datum issimple(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *geom;
-	GEOSGeometry *g1;
+	LWGEOM *lwgeom_in;
 	int result;
 
 	POSTGIS_DEBUG(2, "issimple called");
 
-	geom = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	if ( gserialized_is_empty(geom) )
 		PG_RETURN_BOOL(TRUE);
 
-	initGEOS(lwnotice, lwgeom_geos_error);
-
-	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom);
-	if ( 0 == g1 )   /* exception thrown at construction */
-	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
-		PG_RETURN_NULL();
-	}
-	result = GEOSisSimple(g1);
-	GEOSGeom_destroy(g1);
+	lwgeom_in = lwgeom_from_gserialized(geom);
+	result = lwgeom_is_simple(lwgeom_in);
+	lwgeom_free(lwgeom_in) ;
+	PG_FREE_IF_COPY(geom, 0);
 
-	if (result == 2)
-	{
-		lwerror("GEOSisSimple: %s", lwgeom_geos_errmsg);
+	if (result == -1) {
 		PG_RETURN_NULL(); /*never get here */
 	}
 
-	PG_FREE_IF_COPY(geom, 0);
-
 	PG_RETURN_BOOL(result);
 }
 
@@ -3128,31 +3123,33 @@ Datum isring(PG_FUNCTION_ARGS)
 	GEOSGeometry *g1;
 	int result;
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	if (gserialized_get_type(geom) != LINETYPE)
-	{
-		elog(ERROR,"isring() should only be called on a LINE");
-	}
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	/* Empty things can't close */
 	if ( gserialized_is_empty(geom) )
 		PG_RETURN_BOOL(FALSE);
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
-	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom );
+	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom);
 	if ( 0 == g1 )   /* exception thrown at construction */
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("First argument geometry could not be converted to GEOS");
 		PG_RETURN_NULL();
 	}
+
+	if ( GEOSGeomTypeId(g1) != GEOS_LINESTRING )
+	{
+		GEOSGeom_destroy(g1);
+		elog(ERROR, "ST_IsRing() should only be called on a linear feature");
+	}
+
 	result = GEOSisRing(g1);
 	GEOSGeom_destroy(g1);
 
 	if (result == 2)
 	{
-		lwerror("GEOSisRing: %s", lwgeom_geos_errmsg);
+		HANDLE_GEOS_ERROR("GEOSisRing");
 		PG_RETURN_NULL();
 	}
 
@@ -3173,11 +3170,11 @@ GEOS2POSTGIS(GEOSGeom geom, char want3d)
 	lwgeom = GEOS2LWGEOM(geom, want3d);
 	if ( ! lwgeom )
 	{
-		lwerror("GEOS2POSTGIS: GEOS2LWGEOM returned NULL");
+		lwpgerror("%s: GEOS2LWGEOM returned NULL", __func__);
 		return NULL;
 	}
 
-	POSTGIS_DEBUGF(4, "GEOS2POSTGIS: GEOS2LWGEOM returned a %s", lwgeom_summary(lwgeom, 0));
+	POSTGIS_DEBUGF(4, "%s: GEOS2LWGEOM returned a %s", __func__, lwgeom_summary(lwgeom, 0));
 
 	if ( lwgeom_needs_bbox(lwgeom) == LW_TRUE )
 	{
@@ -3200,19 +3197,155 @@ POSTGIS2GEOS(GSERIALIZED *pglwgeom)
 	LWGEOM *lwgeom = lwgeom_from_gserialized(pglwgeom);
 	if ( ! lwgeom )
 	{
-		lwerror("POSTGIS2GEOS: unable to deserialize input");
+		lwpgerror("POSTGIS2GEOS: unable to deserialize input");
 		return NULL;
 	}
-	ret = LWGEOM2GEOS(lwgeom);
+	ret = LWGEOM2GEOS(lwgeom, 0);
 	lwgeom_free(lwgeom);
 	if ( ! ret )
 	{
-		/* lwerror("POSTGIS2GEOS conversion failed"); */
+		/* lwpgerror("POSTGIS2GEOS conversion failed"); */
 		return NULL;
 	}
 	return ret;
 }
 
+uint32_t array_nelems_not_null(ArrayType* array) {
+    ArrayIterator iterator;
+    Datum value;
+    bool isnull;
+    uint32_t nelems_not_null = 0;
+
+#if POSTGIS_PGSQL_VERSION >= 95	
+	iterator = array_create_iterator(array, 0, NULL);
+#else
+	iterator = array_create_iterator(array, 0);
+#endif
+	while(array_iterate(iterator, &value, &isnull) )
+	{
+        if (!isnull)
+        {
+            nelems_not_null++;
+        }
+    }
+    array_free_iterator(iterator);
+
+    return nelems_not_null;
+}
+
+/* ARRAY2LWGEOM: Converts the non-null elements of a Postgres array into a LWGEOM* array */
+LWGEOM** ARRAY2LWGEOM(ArrayType* array, uint32_t nelems,  int* is3d, int* srid)
+{
+    ArrayIterator iterator;
+    Datum value;
+    bool isnull;
+    bool gotsrid = false;
+    uint32_t i = 0;
+
+	LWGEOM** lw_geoms = palloc(nelems * sizeof(LWGEOM*));
+
+#if POSTGIS_PGSQL_VERSION >= 95
+    iterator = array_create_iterator(array, 0, NULL);
+#else
+    iterator = array_create_iterator(array, 0);
+#endif
+
+	while(array_iterate(iterator, &value, &isnull))
+	{
+		GSERIALIZED *geom = (GSERIALIZED*) DatumGetPointer(value);
+
+        if (isnull)
+        {
+            continue;
+        }
+
+		*is3d = *is3d || gserialized_has_z(geom);
+
+		lw_geoms[i] = lwgeom_from_gserialized(geom);
+		if (!lw_geoms[i]) /* error in creation */
+		{
+			lwpgerror("Geometry deserializing geometry");
+			return NULL;
+		}
+		if (!gotsrid)
+		{
+            gotsrid = true;
+			*srid = gserialized_get_srid(geom);
+		}
+		else if (*srid != gserialized_get_srid(geom))
+		{
+            error_if_srid_mismatch(*srid, gserialized_get_srid(geom));
+			return NULL;
+		}
+
+		i++;
+	}
+
+	return lw_geoms;
+}
+
+/* ARRAY2GEOS: Converts the non-null elements of a Postgres array into a GEOSGeometry* array */
+GEOSGeometry** ARRAY2GEOS(ArrayType* array, uint32_t nelems, int* is3d, int* srid)
+{
+    ArrayIterator iterator;
+    Datum value;
+    bool isnull;
+    bool gotsrid = false;
+    uint32_t i = 0;
+
+	GEOSGeometry** geos_geoms = palloc(nelems * sizeof(GEOSGeometry*));
+
+#if POSTGIS_PGSQL_VERSION >= 95
+    iterator = array_create_iterator(array, 0, NULL);
+#else
+    iterator = array_create_iterator(array, 0);
+#endif
+
+    while(array_iterate(iterator, &value, &isnull))
+	{
+        GSERIALIZED *geom = (GSERIALIZED*) DatumGetPointer(value);
+
+        if (isnull)
+        {
+            continue;
+        }
+
+		*is3d = *is3d || gserialized_has_z(geom);
+
+		geos_geoms[i] = (GEOSGeometry*) POSTGIS2GEOS(geom);
+		if (!geos_geoms[i])   /* exception thrown at construction */
+		{
+            uint32_t j;
+            lwpgerror("Geometry could not be converted to GEOS");
+
+			for (j = 0; j < i; j++) {
+				GEOSGeom_destroy(geos_geoms[j]);
+			}
+			return NULL;
+		}
+
+		if (!gotsrid)
+		{
+			*srid = gserialized_get_srid(geom);
+            gotsrid = true;
+		}
+		else if (*srid != gserialized_get_srid(geom))
+		{
+            uint32_t j;
+            error_if_srid_mismatch(*srid, gserialized_get_srid(geom));
+
+            for (j = 0; j <= i; j++) {
+				GEOSGeom_destroy(geos_geoms[j]);
+			}
+			return NULL;
+		}
+       	 
+        i++;
+	}
+
+    array_free_iterator(iterator);
+	return geos_geoms;
+}
 
 PG_FUNCTION_INFO_V1(GEOSnoop);
 Datum GEOSnoop(PG_FUNCTION_ARGS)
@@ -3220,23 +3353,16 @@ Datum GEOSnoop(PG_FUNCTION_ARGS)
 	GSERIALIZED *geom;
 	GEOSGeometry *geosgeom;
 	GSERIALIZED *lwgeom_result;
-#if POSTGIS_DEBUG_LEVEL > 0
-	int result;
-	LWGEOM_UNPARSER_RESULT lwg_unparser_result;
-#endif
-
-	initGEOS(lwnotice, lwgeom_geos_error);
-
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
 
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	geosgeom = (GEOSGeometry *)POSTGIS2GEOS(geom);
 	if ( ! geosgeom ) PG_RETURN_NULL();
 
 	lwgeom_result = GEOS2POSTGIS(geosgeom, gserialized_has_z(geom));
 	GEOSGeom_destroy(geosgeom);
 
-
 	PG_FREE_IF_COPY(geom, 0);
 
 	PG_RETURN_POINTER(lwgeom_result);
@@ -3276,7 +3402,7 @@ Datum polygonize_garray(PG_FUNCTION_ARGS)
 	if ( nelems == 0 ) PG_RETURN_NULL();
 
 	/* Ok, we really need geos now ;) */
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	vgeoms = palloc(sizeof(GEOSGeometry *)*nelems);
 	offset = 0;
@@ -3290,7 +3416,7 @@ Datum polygonize_garray(PG_FUNCTION_ARGS)
 		g = (GEOSGeometry *)POSTGIS2GEOS(geom);
 		if ( 0 == g )   /* exception thrown at construction */
 		{
-			lwerror("Geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
+			HANDLE_GEOS_ERROR("Geometry could not be converted to GEOS");
 			PG_RETURN_NULL();
 		}
 		vgeoms[i] = g;
@@ -3300,11 +3426,7 @@ Datum polygonize_garray(PG_FUNCTION_ARGS)
 		}
 		else
 		{
-			if ( srid != gserialized_get_srid(geom) )
-			{
-				elog(ERROR, "polygonize: operation on mixed SRID geometries");
-				PG_RETURN_NULL();
-			}
+			error_if_srid_mismatch(srid, gserialized_get_srid(geom));
 		}
 	}
 
@@ -3324,7 +3446,7 @@ Datum polygonize_garray(PG_FUNCTION_ARGS)
 	GEOSGeom_destroy(geos_result);
 	if ( result == NULL )
 	{
-		elog(ERROR, "GEOS2POSTGIS returned an error");
+		elog(ERROR, "%s returned an error", __func__);
 		PG_RETURN_NULL(); /*never get here */
 	}
 
@@ -3334,53 +3456,159 @@ Datum polygonize_garray(PG_FUNCTION_ARGS)
 
 }
 
-PG_FUNCTION_INFO_V1(linemerge);
-Datum linemerge(PG_FUNCTION_ARGS)
+
+PG_FUNCTION_INFO_V1(clusterintersecting_garray);
+Datum clusterintersecting_garray(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED	*geom1;
-	GEOSGeometry *g1, *g3;
-	GSERIALIZED *result;
+	Datum* result_array_data;
+	ArrayType *array, *result;
+	int is3d = 0;
+	uint32 nelems, nclusters, i;
+	GEOSGeometry **geos_inputs, **geos_results;
+	int srid=SRID_UNKNOWN;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	/* Parameters used to construct a result array */
+	int16 elmlen;
+	bool elmbyval;
+	char elmalign;
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	/* Null array, null geometry (should be empty?) */
+    if (PG_ARGISNULL(0))
+        PG_RETURN_NULL();
 
-	g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
+	array = PG_GETARG_ARRAYTYPE_P(0);
+    nelems = array_nelems_not_null(array);
 
-	if ( 0 == g1 )   /* exception thrown at construction */
+	POSTGIS_DEBUGF(3, "clusterintersecting_garray: number of non-null elements: %d", nelems);
+
+	if ( nelems == 0 ) PG_RETURN_NULL();
+
+    /* TODO short-circuit for one element? */
+
+	/* Ok, we really need geos now ;) */
+	initGEOS(lwpgnotice, lwgeom_geos_error);
+
+	geos_inputs = ARRAY2GEOS(array, nelems, &is3d, &srid);
+	if(!geos_inputs)
 	{
-		lwerror("First argument geometry could not be converted to GEOS: %s", lwgeom_geos_errmsg);
 		PG_RETURN_NULL();
 	}
 
-	g3 = GEOSLineMerge(g1);
+	if (cluster_intersecting(geos_inputs, nelems, &geos_results, &nclusters) != LW_SUCCESS)
+	{
+		elog(ERROR, "clusterintersecting: Error performing clustering");
+		PG_RETURN_NULL();
+	}
+	pfree(geos_inputs); /* don't need to destroy items because GeometryCollections have taken ownership */
 
-	if (g3 == NULL)
+	if (!geos_results) PG_RETURN_NULL();
+
+	result_array_data = palloc(nclusters * sizeof(Datum));
+	for (i=0; i<nclusters; ++i)
 	{
-		elog(ERROR,"GEOS LineMerge() threw an error!");
-		GEOSGeom_destroy(g1);
-		PG_RETURN_NULL(); /*never get here */
+		result_array_data[i] = PointerGetDatum(GEOS2POSTGIS(geos_results[i], is3d));
+		GEOSGeom_destroy(geos_results[i]);
 	}
+	pfree(geos_results);
 
+	get_typlenbyvalalign(array->elemtype, &elmlen, &elmbyval, &elmalign);
+	result = (ArrayType*) construct_array(result_array_data, nclusters, array->elemtype, elmlen, elmbyval, elmalign);
 
-	POSTGIS_DEBUGF(3, "result: %s", GEOSGeomToWKT(g3) ) ;
+	if (!result)
+	{
+		elog(ERROR, "clusterintersecting: Error constructing return-array");
+		PG_RETURN_NULL();
+	}
 
-	GEOSSetSRID(g3, gserialized_get_srid(geom1));
+	PG_RETURN_POINTER(result);
+}
 
-	result = GEOS2POSTGIS(g3, gserialized_has_z(geom1));
+PG_FUNCTION_INFO_V1(cluster_within_distance_garray);
+Datum cluster_within_distance_garray(PG_FUNCTION_ARGS)
+{
+	Datum* result_array_data;
+	ArrayType *array, *result;
+	int is3d = 0;
+	uint32 nelems, nclusters, i;
+	LWGEOM** lw_inputs;
+	LWGEOM** lw_results;
+	double tolerance;
+	int srid=SRID_UNKNOWN;
 
-	if (result == NULL)
+	/* Parameters used to construct a result array */
+	int16 elmlen;
+	bool elmbyval;
+	char elmalign;
+
+	/* Null array, null geometry (should be empty?) */
+    if (PG_ARGISNULL(0))
+        PG_RETURN_NULL();
+
+    array = PG_GETARG_ARRAYTYPE_P(0);
+	tolerance = PG_GETARG_FLOAT8(1);
+    nelems = array_nelems_not_null(array);
+
+	POSTGIS_DEBUGF(3, "cluster_within_distance_garray: number of non-null elements: %d", nelems);
+
+	if ( nelems == 0 ) PG_RETURN_NULL();
+
+    /* TODO short-circuit for one element? */
+
+	/* Ok, we really need geos now ;) */
+	initGEOS(lwpgnotice, lwgeom_geos_error);
+
+	lw_inputs = ARRAY2LWGEOM(array, nelems, &is3d, &srid);
+	if (!lw_inputs)
 	{
-		GEOSGeom_destroy(g1);
-		GEOSGeom_destroy(g3);
-		elog(ERROR,"GEOS LineMerge() threw an error (result postgis geometry formation)!");
-		PG_RETURN_NULL(); /*never get here */
+		PG_RETURN_NULL();
+	}
+
+	if (cluster_within_distance(lw_inputs, nelems, tolerance, &lw_results, &nclusters) != LW_SUCCESS)
+	{
+		elog(ERROR, "cluster_within: Error performing clustering");
+		PG_RETURN_NULL();
+	}
+	pfree(lw_inputs); /* don't need to destroy items because GeometryCollections have taken ownership */
+
+	if (!lw_results) PG_RETURN_NULL();
+
+	result_array_data = palloc(nclusters * sizeof(Datum));
+	for (i=0; i<nclusters; ++i)
+	{
+		result_array_data[i] = PointerGetDatum(gserialized_from_lwgeom(lw_results[i], 0, NULL));
+		lwgeom_free(lw_results[i]);
+	}
+	pfree(lw_results);
+
+	get_typlenbyvalalign(array->elemtype, &elmlen, &elmbyval, &elmalign);
+	result = (ArrayType*) construct_array(result_array_data, nclusters, array->elemtype, elmlen, elmbyval, elmalign);
+
+	if (!result)
+	{
+		elog(ERROR, "clusterwithin: Error constructing return-array");
+		PG_RETURN_NULL();
 	}
-	GEOSGeom_destroy(g1);
-	GEOSGeom_destroy(g3);
 
+	PG_RETURN_POINTER(result);
+}
+
+PG_FUNCTION_INFO_V1(linemerge);
+Datum linemerge(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *geom1;
+	GSERIALIZED *result;
+	LWGEOM *lwgeom1, *lwresult ;
+
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
 
-	/* compressType(result); */
+
+	lwgeom1 = lwgeom_from_gserialized(geom1) ;
+
+	lwresult = lwgeom_linemerge(lwgeom1);
+	result = geometry_serialize(lwresult) ;
+
+	lwgeom_free(lwgeom1) ;
+	lwgeom_free(lwresult) ;
 
 	PG_FREE_IF_COPY(geom1, 0);
 
@@ -3401,13 +3629,14 @@ Datum ST_BuildArea(PG_FUNCTION_ARGS)
 	GSERIALIZED *geom;
 	LWGEOM *lwgeom_in, *lwgeom_out;
 
-	geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom_in = lwgeom_from_gserialized(geom);
 
 	lwgeom_out = lwgeom_buildarea(lwgeom_in);
 	lwgeom_free(lwgeom_in) ;
-	
-	if ( ! lwgeom_out ) {
+
+	if ( ! lwgeom_out )
+	{
 		PG_FREE_IF_COPY(geom, 0);
 		PG_RETURN_NULL();
 	}
@@ -3432,15 +3661,16 @@ Datum ST_DelaunayTriangles(PG_FUNCTION_ARGS)
 	double	tolerance = 0.0;
 	int flags = 0;
 
-	geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	tolerance = PG_GETARG_FLOAT8(1);
 	flags = PG_GETARG_INT32(2);
 
 	lwgeom_in = lwgeom_from_gserialized(geom);
 	lwgeom_out = lwgeom_delaunay_triangulation(lwgeom_in, tolerance, flags);
 	lwgeom_free(lwgeom_in) ;
-	
-	if ( ! lwgeom_out ) {
+
+	if ( ! lwgeom_out )
+	{
 		PG_FREE_IF_COPY(geom, 0);
 		PG_RETURN_NULL();
 	}
@@ -3462,7 +3692,7 @@ PG_FUNCTION_INFO_V1(ST_Snap);
 Datum ST_Snap(PG_FUNCTION_ARGS)
 {
 #if POSTGIS_GEOS_VERSION < 33
-	lwerror("The GEOS version this PostGIS binary "
+	lwpgerror("The GEOS version this PostGIS binary "
 	        "was compiled against (%d) doesn't support "
 	        "'ST_Snap' function (3.3.0+ required)",
 	        POSTGIS_GEOS_VERSION);
@@ -3472,8 +3702,8 @@ Datum ST_Snap(PG_FUNCTION_ARGS)
 	LWGEOM *lwgeom1, *lwgeom2, *lwresult;
 	double tolerance;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 	tolerance = PG_GETARG_FLOAT8(2);
 
 	lwgeom1 = lwgeom_from_gserialized(geom1);
@@ -3525,10 +3755,10 @@ Datum ST_Split(PG_FUNCTION_ARGS)
 	GSERIALIZED *in, *blade_in, *out;
 	LWGEOM *lwgeom_in, *lwblade_in, *lwgeom_out;
 
-	in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	in = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom_in = lwgeom_from_gserialized(in);
 
-	blade_in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	blade_in = PG_GETARG_GSERIALIZED_P(1);
 	lwblade_in = lwgeom_from_gserialized(blade_in);
 
 	error_if_srid_mismatch(lwgeom_in->srid, lwblade_in->srid);
@@ -3536,7 +3766,7 @@ Datum ST_Split(PG_FUNCTION_ARGS)
 	lwgeom_out = lwgeom_split(lwgeom_in, lwblade_in);
 	lwgeom_free(lwgeom_in);
 	lwgeom_free(lwblade_in);
-	
+
 	if ( ! lwgeom_out )
 	{
 		PG_FREE_IF_COPY(in, 0); /* possibly referenced by lwgeom_out */
@@ -3572,7 +3802,7 @@ PG_FUNCTION_INFO_V1(ST_SharedPaths);
 Datum ST_SharedPaths(PG_FUNCTION_ARGS)
 {
 #if POSTGIS_GEOS_VERSION < 33
-	lwerror("The GEOS version this PostGIS binary "
+	lwpgerror("The GEOS version this PostGIS binary "
 	        "was compiled against (%d) doesn't support "
 	        "'ST_SharedPaths' function (3.3.0+ required)",
 	        POSTGIS_GEOS_VERSION);
@@ -3581,8 +3811,8 @@ Datum ST_SharedPaths(PG_FUNCTION_ARGS)
 	GSERIALIZED *geom1, *geom2, *out;
 	LWGEOM *g1, *g2, *lwgeom_out;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom2 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
+	geom2 = PG_GETARG_GSERIALIZED_P(1);
 
 	g1 = lwgeom_from_gserialized(geom1);
 	g2 = lwgeom_from_gserialized(geom2);
@@ -3623,7 +3853,7 @@ PG_FUNCTION_INFO_V1(ST_Node);
 Datum ST_Node(PG_FUNCTION_ARGS)
 {
 #if POSTGIS_GEOS_VERSION < 33
-	lwerror("The GEOS version this PostGIS binary "
+	lwpgerror("The GEOS version this PostGIS binary "
 	        "was compiled against (%d) doesn't support "
 	        "'ST_Node' function (3.3.0+ required)",
 	        POSTGIS_GEOS_VERSION);
@@ -3632,7 +3862,7 @@ Datum ST_Node(PG_FUNCTION_ARGS)
 	GSERIALIZED *geom1, *out;
 	LWGEOM *g1, *lwgeom_out;
 
-	geom1 = (GSERIALIZED *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom1 = PG_GETARG_GSERIALIZED_P(0);
 
 	g1 = lwgeom_from_gserialized(geom1);
 
diff --git a/postgis/lwgeom_geos.h b/postgis/lwgeom_geos.h
index 793b5ae..5633ef6 100644
--- a/postgis/lwgeom_geos.h
+++ b/postgis/lwgeom_geos.h
@@ -15,6 +15,7 @@
 
 #include "../liblwgeom/lwgeom_geos.h" /* for GEOSGeom */
 #include "liblwgeom.h" /* for GSERIALIZED */
+#include "utils/array.h" /* for ArrayType */
 
 /*
 ** Public prototypes for GEOS utility functions.
@@ -22,13 +23,18 @@
 
 GSERIALIZED *GEOS2POSTGIS(GEOSGeom geom, char want3d);
 GEOSGeometry * POSTGIS2GEOS(GSERIALIZED *g);
+GEOSGeometry** ARRAY2GEOS(ArrayType* array, uint32_t nelems, int* is3d, int* srid);
+LWGEOM** ARRAY2LWGEOM(ArrayType* array, uint32_t nelems, int* is3d, int* srid);
 
 Datum geos_intersects(PG_FUNCTION_ARGS);
 Datum geos_intersection(PG_FUNCTION_ARGS);
+Datum geos_difference(PG_FUNCTION_ARGS);
+Datum geos_geomunion(PG_FUNCTION_ARGS);
 Datum LWGEOM_area_polygon(PG_FUNCTION_ARGS);
 Datum LWGEOM_mindistance2d(PG_FUNCTION_ARGS);
 Datum LWGEOM_mindistance3d(PG_FUNCTION_ARGS);
 
 void errorIfGeometryCollection(GSERIALIZED *g1, GSERIALIZED *g2);
+uint32_t array_nelems_not_null(ArrayType* array);
 
 #endif /* LWGEOM_GEOS_H_ */
diff --git a/postgis/lwgeom_geos_clean.c b/postgis/lwgeom_geos_clean.c
index ea2942e..7bea220 100644
--- a/postgis/lwgeom_geos_clean.c
+++ b/postgis/lwgeom_geos_clean.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_geos.c 5258 2010-02-17 21:02:49Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -42,7 +41,6 @@
 #include "../postgis_config.h"
 #include "lwgeom_geos.h"
 #include "liblwgeom.h"
-#include "liblwgeom_internal.h"
 #include "lwgeom_pg.h"
 
 #include <string.h>
@@ -62,7 +60,7 @@ Datum ST_MakeValid(PG_FUNCTION_ARGS)
 	GSERIALIZED *in, *out;
 	LWGEOM *lwgeom_in, *lwgeom_out;
 
-	in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	in = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom_in = lwgeom_from_gserialized(in);
 
 	switch ( lwgeom_in->type )
@@ -77,7 +75,7 @@ Datum ST_MakeValid(PG_FUNCTION_ARGS)
 		break;
 
 	default:
-		lwerror("ST_MakeValid: unsupported geometry type %s",
+		lwpgerror("ST_MakeValid: unsupported geometry type %s",
 		        lwtype_name(lwgeom_in->type));
 		PG_RETURN_NULL();
 		break;
@@ -114,7 +112,7 @@ lwgeom_clean(LWGEOM* lwgeom_in)
 	/* Check dimensionality is the same as input */
 	if ( lwgeom_dimensionality(lwgeom_in) != lwgeom_dimensionality(lwgeom_out) )
 	{
-		lwnotice("lwgeom_clean: dimensional collapse (%d to %d)",
+		lwpgnotice("lwgeom_clean: dimensional collapse (%d to %d)",
 		         lwgeom_dimensionality(lwgeom_in), lwgeom_dimensionality(lwgeom_out));
 
 		return NULL;
@@ -124,7 +122,7 @@ lwgeom_clean(LWGEOM* lwgeom_in)
 	if ( lwgeom_out->type == COLLECTIONTYPE &&
 	        lwgeom_in->type != COLLECTIONTYPE )
 	{
-		lwnotice("lwgeom_clean: mixed-type output (%s) "
+		lwpgnotice("lwgeom_clean: mixed-type output (%s) "
 		         "from single-type input (%s)",
 		         lwtype_name(lwgeom_out->type),
 		         lwtype_name(lwgeom_in->type));
@@ -155,7 +153,7 @@ Datum ST_CleanGeometry(PG_FUNCTION_ARGS)
 	GSERIALIZED *in, *out;
 	LWGEOM *lwgeom_in, *lwgeom_out;
 
-	in = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	in = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom_in = lwgeom_from_gserialized(in);
 
 	/* Short-circuit: empty geometry are the cleanest ! */
diff --git a/postgis/lwgeom_geos_prepared.c b/postgis/lwgeom_geos_prepared.c
index 33e5890..8e7e10d 100644
--- a/postgis/lwgeom_geos_prepared.c
+++ b/postgis/lwgeom_geos_prepared.c
@@ -314,11 +314,11 @@ PrepGeomCacheBuilder(const LWGEOM *lwgeom, GeomCache *cache)
 	*/
 	if ( prepcache->argnum || prepcache->geom || prepcache->prepared_geom )
 	{
-		lwerror("PrepGeomCacheBuilder asked to build new prepcache where one already exists.");
+		lwpgerror("PrepGeomCacheBuilder asked to build new prepcache where one already exists.");
 		return LW_FAILURE;
 	}
 	
-	prepcache->geom = LWGEOM2GEOS( lwgeom );
+	prepcache->geom = LWGEOM2GEOS( lwgeom , 0);
 	if ( ! prepcache->geom ) return LW_FAILURE;
 	prepcache->prepared_geom = GEOSPrepare( prepcache->geom );
 	if ( ! prepcache->prepared_geom ) return LW_FAILURE;
@@ -331,7 +331,7 @@ PrepGeomCacheBuilder(const LWGEOM *lwgeom, GeomCache *cache)
 	pghe = GetPrepGeomHashEntry(prepcache->context_callback);
 	if ( ! pghe )
 	{
-		lwerror("PrepGeomCacheBuilder failed to find hash entry for context %p", prepcache->context_callback);
+		lwpgerror("PrepGeomCacheBuilder failed to find hash entry for context %p", prepcache->context_callback);
 		return LW_FAILURE;
 	}
 	
@@ -367,7 +367,7 @@ PrepGeomCacheCleaner(GeomCache *cache)
 	pghe = GetPrepGeomHashEntry(prepcache->context_callback);
 	if ( ! pghe )
 	{
-		lwerror("PrepGeomCacheCleaner failed to find hash entry for context %p", prepcache->context_callback);
+		lwpgerror("PrepGeomCacheCleaner failed to find hash entry for context %p", prepcache->context_callback);
 		return LW_FAILURE;
 	}
 	pghe->geom = 0;
diff --git a/postgis/lwgeom_geos_prepared.h b/postgis/lwgeom_geos_prepared.h
index d06b6ac..96219f9 100644
--- a/postgis/lwgeom_geos_prepared.h
+++ b/postgis/lwgeom_geos_prepared.h
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_geos_prepared.h 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
diff --git a/postgis/lwgeom_geos_relatematch.c b/postgis/lwgeom_geos_relatematch.c
index 3cdf196..3264ce4 100644
--- a/postgis/lwgeom_geos_relatematch.c
+++ b/postgis/lwgeom_geos_relatematch.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_geos.c 5258 2010-02-17 21:02:49Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -42,7 +41,7 @@ PG_FUNCTION_INFO_V1(ST_RelateMatch);
 Datum ST_RelateMatch(PG_FUNCTION_ARGS)
 {
 #if POSTGIS_GEOS_VERSION < 33
-	lwerror("The GEOS version this postgis binary "
+	lwpgerror("The GEOS version this postgis binary "
 	        "was compiled against (%d) doesn't support "
 	        "'ST_RelateMatch' function (3.3.0+ required)",
 	        POSTGIS_GEOS_VERSION);
@@ -61,13 +60,13 @@ Datum ST_RelateMatch(PG_FUNCTION_ARGS)
         mat = text2cstring(mat_text);
         pat = text2cstring(pat_text);
 
-	initGEOS(lwnotice, lwgeom_geos_error);
+	initGEOS(lwpgnotice, lwgeom_geos_error);
 
 	result = GEOSRelatePatternMatch(mat, pat);
 	if (result == 2)
 	{
 		lwfree(mat); lwfree(pat);
-		lwerror("GEOSRelatePatternMatch: %s", lwgeom_geos_errmsg);
+		lwpgerror("GEOSRelatePatternMatch: %s", lwgeom_geos_errmsg);
 		PG_RETURN_NULL();
 	}
 
diff --git a/postgis/lwgeom_in_encoded_polyline.c b/postgis/lwgeom_in_encoded_polyline.c
new file mode 100644
index 0000000..944d3a3
--- /dev/null
+++ b/postgis/lwgeom_in_encoded_polyline.c
@@ -0,0 +1,55 @@
+/**********************************************************************
+*
+* PostGIS - Spatial Types for PostgreSQL
+* http://postgis.net
+*
+* Copyright 2014 Kashif Rasul <kashif.rasul at gmail.com> and
+*                Shoaib Burq <saburq at gmail.com>
+*
+* This is free software; you can redistribute and/or modify it under
+* the terms of the GNU General Public Licence. See the COPYING file.
+*
+**********************************************************************/
+
+#include <assert.h>
+
+#include "postgres.h"
+
+#include "../postgis_config.h"
+#include "lwgeom_pg.h"
+#include "liblwgeom.h"
+
+Datum line_from_encoded_polyline(PG_FUNCTION_ARGS);
+
+PG_FUNCTION_INFO_V1(line_from_encoded_polyline);
+Datum line_from_encoded_polyline(PG_FUNCTION_ARGS)
+{
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  text *encodedpolyline_input;
+  char *encodedpolyline;
+  int precision = 5;
+
+  if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+
+  encodedpolyline_input = PG_GETARG_TEXT_P(0);
+  encodedpolyline = text2cstring(encodedpolyline_input);
+
+  if (PG_NARGS() >2 && !PG_ARGISNULL(2))
+  {
+    precision = PG_GETARG_INT32(2);
+    if ( precision < 0 ) precision = 5;
+  }
+
+  lwgeom = lwgeom_from_encoded_polyline(encodedpolyline, precision);
+  if ( ! lwgeom ) {
+    /* Shouldn't get here */
+    elog(ERROR, "lwgeom_from_encoded_polyline returned NULL");
+    PG_RETURN_NULL();
+  }
+  lwgeom_set_srid(lwgeom, 4326);
+
+  geom = geometry_serialize(lwgeom);
+  lwgeom_free(lwgeom);
+  PG_RETURN_POINTER(geom);
+}
diff --git a/postgis/lwgeom_in_geohash.c b/postgis/lwgeom_in_geohash.c
index 7036861..966812b 100644
--- a/postgis/lwgeom_in_geohash.c
+++ b/postgis/lwgeom_in_geohash.c
@@ -20,10 +20,10 @@
 Datum box2d_from_geohash(PG_FUNCTION_ARGS);
 Datum point_from_geohash(PG_FUNCTION_ARGS);
 
-static void geohash_lwerror(char *msg, int error_code)
+static void geohash_lwpgerror(char *msg, int error_code)
 {
 	POSTGIS_DEBUGF(3, "ST_Box2dFromGeoHash ERROR %i", error_code);
-	lwerror("%s", msg);
+	lwpgerror("%s", msg);
 }
 
 #include "lwgeom_export.h"
@@ -38,7 +38,7 @@ parse_geohash(char *geohash, int precision)
 
 	if (NULL == geohash)
 	{
-		geohash_lwerror("invalid GeoHash representation", 2);
+		geohash_lwpgerror("invalid GeoHash representation", 2);
 	}
 
 	decode_geohash_bbox(geohash, lat, lon, precision);
diff --git a/postgis/lwgeom_in_geojson.c b/postgis/lwgeom_in_geojson.c
index 8a0ddfc..f95c638 100644
--- a/postgis/lwgeom_in_geojson.c
+++ b/postgis/lwgeom_in_geojson.c
@@ -17,6 +17,14 @@
 #include "liblwgeom.h"
 #include "lwgeom_export.h"
 
+#ifdef HAVE_LIBJSON
+# ifdef HAVE_LIBJSON_C
+#  include <json-c/json.h>
+# else
+#  include <json/json.h>
+# endif
+#endif
+
 Datum geom_from_geojson(PG_FUNCTION_ARGS);
 Datum postgis_libjson_version(PG_FUNCTION_ARGS);
 
@@ -26,7 +34,11 @@ Datum postgis_libjson_version(PG_FUNCTION_ARGS)
 #ifndef HAVE_LIBJSON
 	PG_RETURN_NULL();
 #else /* HAVE_LIBJSON  */
+# ifdef JSON_C_VERSION
+	const char *ver = json_c_version(); 
+# else
 	const char *ver = "UNKNOWN";
+# endif
 	text *result = cstring2text(ver);
 	PG_RETURN_POINTER(result);
 #endif
@@ -44,24 +56,28 @@ Datum geom_from_geojson(PG_FUNCTION_ARGS)
 	LWGEOM *lwgeom;
 	text *geojson_input;
 	char *geojson;
-  char *srs = NULL;
+	char *srs = NULL;
 
 	/* Get the geojson stream */
-	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+	if (PG_ARGISNULL(0)) 
+		PG_RETURN_NULL();
+	
 	geojson_input = PG_GETARG_TEXT_P(0);
 	geojson = text2cstring(geojson_input);
 
-  lwgeom = lwgeom_from_geojson(geojson, &srs);
-  if ( ! lwgeom ) {
-    /* Shouldn't get here */
-	  elog(ERROR, "lwgeom_from_geojson returned NULL");
-    PG_RETURN_NULL();
-  }
+	lwgeom = lwgeom_from_geojson(geojson, &srs);
+	if ( ! lwgeom ) 
+	{
+		/* Shouldn't get here */
+		elog(ERROR, "lwgeom_from_geojson returned NULL");
+		PG_RETURN_NULL();
+	}
 
-  if ( srs ) {
-    lwgeom_set_srid(lwgeom, getSRIDbySRS(srs));
-    lwfree(srs);
-  }
+	if ( srs ) 
+	{
+		lwgeom_set_srid(lwgeom, getSRIDbySRS(srs));
+		lwfree(srs);
+	}
 
 	geom = geometry_serialize(lwgeom);
 	lwgeom_free(lwgeom);
diff --git a/postgis/lwgeom_in_gml.c b/postgis/lwgeom_in_gml.c
index 0e9ffde..968f654 100644
--- a/postgis/lwgeom_in_gml.c
+++ b/postgis/lwgeom_in_gml.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_in_gml.c 13339 2015-03-16 18:35:17Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -65,10 +64,10 @@ gmlSrs;
 
 
 
-static void gml_lwerror(char *msg, int error_code) 
+static void gml_lwpgerror(char *msg, int error_code) 
 {
         POSTGIS_DEBUGF(3, "ST_GeomFromGML ERROR %i", error_code);
-        lwerror("%s", msg);
+        lwpgerror("%s", msg);
 }
 
 /**
@@ -267,7 +266,7 @@ static xmlNodePtr get_xlink_node(xmlNodePtr xnode)
 		if (node_id != NULL)
 		{
 			if (!xmlStrcmp(node_id, p))
-				gml_lwerror("invalid GML representation", 2);
+				gml_lwpgerror("invalid GML representation", 2);
 			xmlFree(node_id);
 		}
 	}
@@ -282,13 +281,11 @@ static xmlNodePtr get_xlink_node(xmlNodePtr xnode)
  */
 static POINTARRAY* gml_reproject_pa(POINTARRAY *pa, int srid_in, int srid_out)
 {
-	int i;
-	POINT4D p;
 	projPJ in_pj, out_pj;
 	char *text_in, *text_out;
 
 	if (srid_in == SRID_UNKNOWN) return pa; /* nothing to do */
-	if (srid_out == SRID_UNKNOWN) gml_lwerror("invalid GML representation", 3);
+	if (srid_out == SRID_UNKNOWN) gml_lwpgerror("invalid GML representation", 3);
 
 	text_in = GetProj4StringSPI(srid_in);
 	text_out = GetProj4StringSPI(srid_out);
@@ -299,11 +296,9 @@ static POINTARRAY* gml_reproject_pa(POINTARRAY *pa, int srid_in, int srid_out)
 	lwfree(text_in);
 	lwfree(text_out);
 
-	for (i=0 ; i < pa->npoints ; i++)
+	if ( ptarray_transform(pa, in_pj, out_pj) == LW_FAILURE )
 	{
-		getPoint4d_p(pa, i, &p);
-		point4d_transform(&p, in_pj, out_pj);
-		ptarray_set_point4d(pa, i, &p);
+		elog(ERROR, "gml_reproject_pa: reprojection failed");
 	}
 
 	pj_free(in_pj);
@@ -324,14 +319,14 @@ static int gml_is_srid_planar(int srid)
 	int is_planar, err;
 
 	if (SPI_OK_CONNECT != SPI_connect ())
-		lwerror("gml_is_srid_planar: could not connect to SPI manager");
+		lwpgerror("gml_is_srid_planar: could not connect to SPI manager");
 
 	/* A way to find if this projection is planar or geocentric */
 	sprintf(query, "SELECT position('+units=m ' in proj4text) \
                         FROM spatial_ref_sys WHERE srid='%d'", srid);
 
 	err = SPI_exec(query, 1);
-	if (err < 0) lwerror("gml_is_srid_planar: error executing query %d", err);
+	if (err < 0) lwpgerror("gml_is_srid_planar: error executing query %d", err);
 
 	/* No entry in spatial_ref_sys */
 	if (SPI_processed <= 0)
@@ -410,19 +405,19 @@ static void parse_gml_srs(xmlNodePtr xnode, gmlSrs *srs)
 			sep = '#';
 			latlon = false;
 		}
-		else gml_lwerror("unknown spatial reference system", 4);
+		else gml_lwpgerror("unknown spatial reference system", 4);
 
 		/* retrieve the last ':' or '#' char */
 		for (p = (char *) srsname ; *p ; p++);
 		for (--p ; *p != sep ; p--)
-			if (!isdigit(*p)) gml_lwerror("unknown spatial reference system", 5);
+			if (!isdigit(*p)) gml_lwpgerror("unknown spatial reference system", 5);
 
 		srs->srid = atoi(++p);
 
 		/* Check into spatial_ref_sys that this SRID really exist */
 		is_planar = gml_is_srid_planar(srs->srid);
 		if (srs->srid == SRID_UNKNOWN || is_planar == -1)
-			gml_lwerror("unknown spatial reference system", 6);
+			gml_lwpgerror("unknown spatial reference system", 6);
 
 		/* About lat/lon issue, Cf: http://tinyurl.com/yjpr55z */
 		srs->reverse_axis = !is_planar && latlon;
@@ -470,37 +465,37 @@ static double parse_gml_double(char *d, bool space_before, bool space_after)
 			else if (st == NEED_DIG_DEC) 			st = DIG_DEC;
 			else if (st == NEED_DIG_EXP || st == EXP) 	st = DIG_EXP;
 			else if (st == DIG || st == DIG_DEC || st == DIG_EXP);
-			else gml_lwerror("invalid GML representation", 7);
+			else gml_lwpgerror("invalid GML representation", 7);
 		}
 		else if (*p == '.')
 		{
 			if      (st == DIG) 				st = NEED_DIG_DEC;
-			else    gml_lwerror("invalid GML representation", 8);
+			else    gml_lwpgerror("invalid GML representation", 8);
 		}
 		else if (*p == '-' || *p == '+')
 		{
 			if      (st == INIT) 				st = NEED_DIG;
 			else if (st == EXP) 				st = NEED_DIG_EXP;
-			else    gml_lwerror("invalid GML representation", 9);
+			else    gml_lwpgerror("invalid GML representation", 9);
 		}
 		else if (*p == 'e' || *p == 'E')
 		{
 			if      (st == DIG || st == DIG_DEC) 		st = EXP;
-			else    gml_lwerror("invalid GML representation", 10);
+			else    gml_lwpgerror("invalid GML representation", 10);
 		}
 		else if (isspace(*p))
 		{
-			if (!space_after) gml_lwerror("invalid GML representation", 11);
+			if (!space_after) gml_lwpgerror("invalid GML representation", 11);
 			if (st == DIG || st == DIG_DEC || st == DIG_EXP)st = END;
 			else if (st == NEED_DIG_DEC)			st = END;
 			else if (st == END);
-			else    gml_lwerror("invalid GML representation", 12);
+			else    gml_lwpgerror("invalid GML representation", 12);
 		}
-		else  gml_lwerror("invalid GML representation", 13);
+		else  gml_lwpgerror("invalid GML representation", 13);
 	}
 
 	if (st != DIG && st != NEED_DIG_DEC && st != DIG_DEC && st != DIG_EXP && st != END)
-		gml_lwerror("invalid GML representation", 14);
+		gml_lwpgerror("invalid GML representation", 14);
 
 	return atof(d);
 }
@@ -535,7 +530,7 @@ static POINTARRAY* parse_gml_coordinates(xmlNodePtr xnode, bool *hasz)
 	else
 	{
 		if (xmlStrlen(gml_ts) > 1 || isdigit(gml_ts[0]))
-			gml_lwerror("invalid GML representation", 15);
+			gml_lwpgerror("invalid GML representation", 15);
 		ts = gml_ts[0];
 		xmlFree(gml_ts);
 	}
@@ -546,7 +541,7 @@ static POINTARRAY* parse_gml_coordinates(xmlNodePtr xnode, bool *hasz)
 	else
 	{
 		if (xmlStrlen(gml_cs) > 1 || isdigit(gml_cs[0]))
-			gml_lwerror("invalid GML representation", 16);
+			gml_lwpgerror("invalid GML representation", 16);
 		cs = gml_cs[0];
 		xmlFree(gml_cs);
 	}
@@ -557,13 +552,13 @@ static POINTARRAY* parse_gml_coordinates(xmlNodePtr xnode, bool *hasz)
 	else
 	{
 		if (xmlStrlen(gml_dec) > 1 || isdigit(gml_dec[0]))
-			gml_lwerror("invalid GML representation", 17);
+			gml_lwpgerror("invalid GML representation", 17);
 		dec = gml_dec[0];
 		xmlFree(gml_dec);
 	}
 
 	if (cs == ts || cs == dec || ts == dec)
-		gml_lwerror("invalid GML representation", 18);
+		gml_lwpgerror("invalid GML representation", 18);
 
 	/* HasZ, !HasM, 1 Point */
 	dpa = ptarray_construct_empty(1, 0, 1);
@@ -580,7 +575,7 @@ static POINTARRAY* parse_gml_coordinates(xmlNodePtr xnode, bool *hasz)
 			*p = '\0';
 			gml_dims++;
 
-			if (*(p+1) == '\0') gml_lwerror("invalid GML representation", 19);
+			if (*(p+1) == '\0') gml_lwpgerror("invalid GML representation", 19);
 
 			if 	(gml_dims == 1) pt.x = parse_gml_double(q, false, true);
 			else if (gml_dims == 2) pt.y = parse_gml_double(q, false, true);
@@ -595,7 +590,7 @@ static POINTARRAY* parse_gml_coordinates(xmlNodePtr xnode, bool *hasz)
 			gml_dims++;
 
 			if (gml_dims < 2 || gml_dims > 3)
-				gml_lwerror("invalid GML representation", 20);
+				gml_lwpgerror("invalid GML representation", 20);
 
 			if (gml_dims == 3)
 				pt.z = parse_gml_double(q, false, true);
@@ -644,7 +639,7 @@ static POINTARRAY* parse_gml_coord(xmlNodePtr xnode, bool *hasz)
 
 		if (!strcmp((char *) xyz->name, "X"))
 		{
-			if (x) gml_lwerror("invalid GML representation", 21);
+			if (x) gml_lwpgerror("invalid GML representation", 21);
 			c = xmlNodeGetContent(xyz);
 			p.x = parse_gml_double((char *) c, true, true);
 			x = true;
@@ -652,7 +647,7 @@ static POINTARRAY* parse_gml_coord(xmlNodePtr xnode, bool *hasz)
 		}
 		else  if (!strcmp((char *) xyz->name, "Y"))
 		{
-			if (y) gml_lwerror("invalid GML representation", 22);
+			if (y) gml_lwpgerror("invalid GML representation", 22);
 			c = xmlNodeGetContent(xyz);
 			p.y = parse_gml_double((char *) c, true, true);
 			y = true;
@@ -660,7 +655,7 @@ static POINTARRAY* parse_gml_coord(xmlNodePtr xnode, bool *hasz)
 		}
 		else if (!strcmp((char *) xyz->name, "Z"))
 		{
-			if (z) gml_lwerror("invalid GML representation", 23);
+			if (z) gml_lwpgerror("invalid GML representation", 23);
 			c = xmlNodeGetContent(xyz);
 			p.z = parse_gml_double((char *) c, true, true);
 			z = true;
@@ -668,7 +663,7 @@ static POINTARRAY* parse_gml_coord(xmlNodePtr xnode, bool *hasz)
 		}
 	}
 	/* Check dimension consistancy */
-	if (!x || !y) gml_lwerror("invalid GML representation", 24);
+	if (!x || !y) gml_lwpgerror("invalid GML representation", 24);
 	if (!z) *hasz = false;
 
 	ptarray_append_point(dpa, &p, LW_FALSE);
@@ -702,7 +697,7 @@ static POINTARRAY* parse_gml_pos(xmlNodePtr xnode, bool *hasz)
         dim = atoi((char *) dimension);
         xmlFree(dimension);
         if (dim < 2 || dim > 3)
-            gml_lwerror("invalid GML representation", 25);
+            gml_lwpgerror("invalid GML representation", 25);
     }
     if (dim == 2) *hasz = false;
 
@@ -737,7 +732,7 @@ static POINTARRAY* parse_gml_pos(xmlNodePtr xnode, bool *hasz)
     /* Test again coherent dimensions on each coord */
     if (gml_dim == 2) *hasz = false;
     if (gml_dim < 2 || gml_dim > 3 || gml_dim != dim)
-        gml_lwerror("invalid GML representation", 26);
+        gml_lwpgerror("invalid GML representation", 26);
 
     ptarray_append_point(dpa, &pt, LW_FALSE);
 
@@ -766,7 +761,7 @@ static POINTARRAY* parse_gml_poslist(xmlNodePtr xnode, bool *hasz)
 	{
 		dim = atoi((char *) dimension);
 		xmlFree(dimension);
-		if (dim < 2 || dim > 3) gml_lwerror("invalid GML representation", 27);
+		if (dim < 2 || dim > 3) gml_lwpgerror("invalid GML representation", 27);
 	}
 	if (dim == 2) *hasz = false;
 
@@ -799,7 +794,7 @@ static POINTARRAY* parse_gml_poslist(xmlNodePtr xnode, bool *hasz)
 				gml_dim = 0;
 			}
 			else if (*(poslist+1) == '\0')
-				gml_lwerror("invalid GML representation", 28);
+				gml_lwpgerror("invalid GML representation", 28);
 
 			p = poslist+1;
 			digit = false;
@@ -883,15 +878,15 @@ static POINTARRAY* parse_gml_data(xmlNodePtr xnode, bool *hasz, int *root_srid)
 				}
 			}
 			if (!found || xb == NULL)
-				gml_lwerror("invalid GML representation", 29);
+				gml_lwpgerror("invalid GML representation", 29);
 
 			if (is_xlink(xb)) xb = get_xlink_node(xb);
 			if (xb == NULL || xb->children == NULL)
-				gml_lwerror("invalid GML representation", 30);
+				gml_lwpgerror("invalid GML representation", 30);
 
 			tmp_pa = parse_gml_data(xb->children, hasz, root_srid);
 			if (tmp_pa->npoints != 1)
-				gml_lwerror("invalid GML representation", 31);
+				gml_lwpgerror("invalid GML representation", 31);
 
 			parse_gml_srs(xb, &srs);
 			if (srs.reverse_axis) tmp_pa = ptarray_flip_coordinates(tmp_pa);
@@ -903,7 +898,7 @@ static POINTARRAY* parse_gml_data(xmlNodePtr xnode, bool *hasz, int *root_srid)
 		}
 	}
 
-	if (pa == NULL) gml_lwerror("invalid GML representation", 32);
+	if (pa == NULL) gml_lwpgerror("invalid GML representation", 32);
 
 	return pa;
 }
@@ -924,7 +919,7 @@ static LWGEOM* parse_gml_point(xmlNodePtr xnode, bool *hasz, int *root_srid)
 		return lwpoint_as_lwgeom(lwpoint_construct_empty(*root_srid, 0, 0));
 
 	pa = parse_gml_data(xnode->children, hasz, root_srid);
-	if (pa->npoints != 1) gml_lwerror("invalid GML representation", 34);
+	if (pa->npoints != 1) gml_lwpgerror("invalid GML representation", 34);
 
 	parse_gml_srs(xnode, &srs);
 	if (srs.reverse_axis) pa = ptarray_flip_coordinates(pa);
@@ -959,7 +954,7 @@ static LWGEOM* parse_gml_line(xmlNodePtr xnode, bool *hasz, int *root_srid)
 		return lwline_as_lwgeom(lwline_construct_empty(*root_srid, 0, 0));
 		
 	pa = parse_gml_data(xnode->children, hasz, root_srid);
-	if (pa->npoints < 2) gml_lwerror("invalid GML representation", 36);
+	if (pa->npoints < 2) gml_lwpgerror("invalid GML representation", 36);
 
 	parse_gml_srs(xnode, &srs);
 	if (srs.reverse_axis) pa = ptarray_flip_coordinates(pa);
@@ -1007,7 +1002,7 @@ static LWGEOM* parse_gml_curve(xmlNodePtr xnode, bool *hasz, int *root_srid)
 			break;
 		}
 	}
-	if (!found) gml_lwerror("invalid GML representation", 37);
+	if (!found) gml_lwpgerror("invalid GML representation", 37);
 
 	ppa = (POINTARRAY**) lwalloc(sizeof(POINTARRAY*));
 
@@ -1023,7 +1018,7 @@ static LWGEOM* parse_gml_curve(xmlNodePtr xnode, bool *hasz, int *root_srid)
 		if (interpolation != NULL)
 		{
 			if (strcmp((char *) interpolation, "linear"))
-				gml_lwerror("invalid GML representation", 38);
+				gml_lwpgerror("invalid GML representation", 38);
 			xmlFree(interpolation);
 		}
 
@@ -1033,10 +1028,10 @@ static LWGEOM* parse_gml_curve(xmlNodePtr xnode, bool *hasz, int *root_srid)
 		ppa[lss] = parse_gml_data(xa->children, hasz, root_srid);
 		npoints += ppa[lss]->npoints;
 		if (ppa[lss]->npoints < 2)
-			gml_lwerror("invalid GML representation", 39);
+			gml_lwpgerror("invalid GML representation", 39);
 		lss++;
 	}
-	if (lss == 0) gml_lwerror("invalid GML representation", 40);
+	if (lss == 0) gml_lwpgerror("invalid GML representation", 40);
 
 	/* Most common case, a single segment */
 	if (lss == 1) pa = ppa[0];
@@ -1056,10 +1051,10 @@ static LWGEOM* parse_gml_curve(xmlNodePtr xnode, bool *hasz, int *root_srid)
 		{
 			if (i + 1 == lss) last = 1;
 			/* Check if segments are not disjoints */
-			if (i > 0 && memcmp(	getPoint_internal(pa, npoints),
+			if (i > 0 && memcmp( getPoint_internal(pa, npoints),
 			                     getPoint_internal(ppa[i], 0),
-			                     *hasz?sizeof(POINT3D):sizeof(POINT2D)))
-				gml_lwerror("invalid GML representation", 41);
+			                     *hasz ? sizeof(POINT3D) : sizeof(POINT2D)))
+				gml_lwpgerror("invalid GML representation", 41);
 
 			/* Aggregate stuff */
 			memcpy(	getPoint_internal(pa, npoints),
@@ -1100,7 +1095,7 @@ static LWGEOM* parse_gml_linearring(xmlNodePtr xnode, bool *hasz, int *root_srid
 	if (ppa[0]->npoints < 4
             || (!*hasz && !ptarray_is_closed_2d(ppa[0]))
             ||  (*hasz && !ptarray_is_closed_3d(ppa[0])))
-	    gml_lwerror("invalid GML representation", 42);
+	    gml_lwpgerror("invalid GML representation", 42);
 
 	if (srs.reverse_axis) 
 		ppa[0] = ptarray_flip_coordinates(ppa[0]);
@@ -1153,7 +1148,7 @@ static LWGEOM* parse_gml_polygon(xmlNodePtr xnode, bool *hasz, int *root_srid)
 			if (ppa[0]->npoints < 4
 			        || (!*hasz && !ptarray_is_closed_2d(ppa[0]))
 			        ||  (*hasz && !ptarray_is_closed_3d(ppa[0])))
-				gml_lwerror("invalid GML representation", 43);
+				gml_lwpgerror("invalid GML representation", 43);
 
 			if (srs.reverse_axis) ppa[0] = ptarray_flip_coordinates(ppa[0]);
 		}
@@ -1161,7 +1156,7 @@ static LWGEOM* parse_gml_polygon(xmlNodePtr xnode, bool *hasz, int *root_srid)
 
 	/* Found an <exterior> or <outerBoundaryIs> but no rings?!? We're outa here! */
 	if ( ! ppa )
-		gml_lwerror("invalid GML representation", 43);	
+		gml_lwpgerror("invalid GML representation", 43);	
 
 	for (ring=1, xa = xnode->children ; xa != NULL ; xa = xa->next)
 	{
@@ -1185,7 +1180,7 @@ static LWGEOM* parse_gml_polygon(xmlNodePtr xnode, bool *hasz, int *root_srid)
 			if (ppa[ring]->npoints < 4
 			        || (!*hasz && !ptarray_is_closed_2d(ppa[ring]))
 			        ||  (*hasz && !ptarray_is_closed_3d(ppa[ring])))
-				gml_lwerror("invalid GML representation", 43);
+				gml_lwpgerror("invalid GML representation", 43);
 
 			if (srs.reverse_axis) ppa[ring] = ptarray_flip_coordinates(ppa[ring]);
 			ring++;
@@ -1193,7 +1188,7 @@ static LWGEOM* parse_gml_polygon(xmlNodePtr xnode, bool *hasz, int *root_srid)
 	}
 
 	/* Exterior Ring is mandatory */
-	if (ppa == NULL || ppa[0] == NULL) gml_lwerror("invalid GML representation", 44);
+	if (ppa == NULL || ppa[0] == NULL) gml_lwpgerror("invalid GML representation", 44);
 
 	if (srs.srid != *root_srid && *root_srid != SRID_UNKNOWN)
 	{
@@ -1229,7 +1224,7 @@ static LWGEOM* parse_gml_triangle(xmlNodePtr xnode, bool *hasz, int *root_srid)
 	if (interpolation != NULL)
 	{
 		if (strcmp((char *) interpolation, "planar"))
-			gml_lwerror("invalid GML representation", 45);
+			gml_lwpgerror("invalid GML representation", 45);
 		xmlFree(interpolation);
 	}
 
@@ -1255,14 +1250,14 @@ static LWGEOM* parse_gml_triangle(xmlNodePtr xnode, bool *hasz, int *root_srid)
 			if (pa->npoints != 4
 			        || (!*hasz && !ptarray_is_closed_2d(pa))
 			        ||  (*hasz && !ptarray_is_closed_3d(pa)))
-				gml_lwerror("invalid GML representation", 46);
+				gml_lwpgerror("invalid GML representation", 46);
 
 			if (srs.reverse_axis) pa = ptarray_flip_coordinates(pa);
 		}
 	}
 
 	/* Exterior Ring is mandatory */
-	if (pa == NULL) gml_lwerror("invalid GML representation", 47);
+	if (pa == NULL) gml_lwpgerror("invalid GML representation", 47);
 
 	if (srs.srid != *root_srid && *root_srid != SRID_UNKNOWN)
 		gml_reproject_pa(pa, srs.srid, *root_srid);
@@ -1287,14 +1282,14 @@ static LWGEOM* parse_gml_patch(xmlNodePtr xnode, bool *hasz, int *root_srid)
 
 	/* PolygonPatch */
 	if (strcmp((char *) xnode->name, "PolygonPatch"))
-		gml_lwerror("invalid GML representation", 48);
+		gml_lwpgerror("invalid GML representation", 48);
 
 	/* GML SF is resticted to planar interpolation  */
 	interpolation = gmlGetProp(xnode, (xmlChar *) "interpolation");
 	if (interpolation != NULL)
 	{
 		if (strcmp((char *) interpolation, "planar"))
-			gml_lwerror("invalid GML representation", 48);
+			gml_lwpgerror("invalid GML representation", 48);
 		xmlFree(interpolation);
 	}
 
@@ -1319,16 +1314,16 @@ static LWGEOM* parse_gml_patch(xmlNodePtr xnode, bool *hasz, int *root_srid)
 			if (ppa[0]->npoints < 4
 			        || (!*hasz && !ptarray_is_closed_2d(ppa[0]))
 			        ||  (*hasz && !ptarray_is_closed_3d(ppa[0])))
-				gml_lwerror("invalid GML representation", 48);
+				gml_lwpgerror("invalid GML representation", 48);
 
 			if (srs.reverse_axis)
 				ppa[0] = ptarray_flip_coordinates(ppa[0]);
 		}
 	}
 
-	/* Interior but no Exterior ! */ 
+	/* Interior but no Exterior ! */
 	if ( ! ppa )
- 		gml_lwerror("invalid GML representation", 48);
+	 	gml_lwpgerror("invalid GML representation", 48);
 
 	/* PolygonPatch/interior */
 	for (ring=1, xa = xnode->children ; xa != NULL ; xa = xa->next)
@@ -1350,7 +1345,7 @@ static LWGEOM* parse_gml_patch(xmlNodePtr xnode, bool *hasz, int *root_srid)
 			if (ppa[ring]->npoints < 4
 			        || (!*hasz && !ptarray_is_closed_2d(ppa[ring]))
 			        || ( *hasz && !ptarray_is_closed_3d(ppa[ring])))
-				gml_lwerror("invalid GML representation", 49);
+				gml_lwpgerror("invalid GML representation", 49);
 
 			if (srs.reverse_axis)
 				ppa[ring] = ptarray_flip_coordinates(ppa[ring]);
@@ -1360,7 +1355,7 @@ static LWGEOM* parse_gml_patch(xmlNodePtr xnode, bool *hasz, int *root_srid)
 	}
 
 	/* Exterior Ring is mandatory */
-	if (ppa == NULL || ppa[0] == NULL) gml_lwerror("invalid GML representation", 50);
+	if (ppa == NULL || ppa[0] == NULL) gml_lwpgerror("invalid GML representation", 50);
 
 	if (srs.srid != *root_srid && *root_srid != SRID_UNKNOWN)
 	{
@@ -1396,7 +1391,7 @@ static LWGEOM* parse_gml_surface(xmlNodePtr xnode, bool *hasz, int *root_srid)
 			break;
 		}
 	}
-	if (!found) gml_lwerror("invalid GML representation", 51);
+	if (!found) gml_lwpgerror("invalid GML representation", 51);
 
 	/* Processing gml:PolygonPatch */
 	for (patch=0, xa = xa->children ; xa != NULL ; xa = xa->next)
@@ -1408,12 +1403,12 @@ static LWGEOM* parse_gml_surface(xmlNodePtr xnode, bool *hasz, int *root_srid)
 
 		/* SQL/MM define ST_CurvePolygon as a single patch only,
 		   cf ISO 13249-3:2009 -> 4.2.9 (p27) */
-		if (patch > 1) gml_lwerror("invalid GML representation", 52);
+		if (patch > 1) gml_lwpgerror("invalid GML representation", 52);
 
 		geom = parse_gml_patch(xa, hasz, root_srid);
 	}
 
-	if (!patch) gml_lwerror("invalid GML representation", 53);
+	if (!patch) gml_lwpgerror("invalid GML representation", 53);
 
 	return geom;
 }
@@ -1798,7 +1793,7 @@ static LWGEOM* lwgeom_from_gml(const char* xml)
 	{
 		xmlFreeDoc(xmldoc);
 		xmlCleanupParser();
-		gml_lwerror("invalid GML representation", 1);
+		gml_lwpgerror("invalid GML representation", 1);
 	}
 
 	lwgeom = parse_gml(xmlroot, &hasz, &root_srid);
@@ -1843,7 +1838,7 @@ static LWGEOM* parse_gml(xmlNodePtr xnode, bool *hasz, int *root_srid)
 	while (xa != NULL && (xa->type != XML_ELEMENT_NODE
 	                      || !is_gml_namespace(xa, false))) xa = xa->next;
 
-	if (xa == NULL) gml_lwerror("invalid GML representation", 55);
+	if (xa == NULL) gml_lwpgerror("invalid GML representation", 55);
 
 	parse_gml_srs(xa, &srs);
 	if (*root_srid == SRID_UNKNOWN && srs.srid != SRID_UNKNOWN)
@@ -1897,6 +1892,6 @@ static LWGEOM* parse_gml(xmlNodePtr xnode, bool *hasz, int *root_srid)
 	if (!strcmp((char *) xa->name, "MultiGeometry"))
 		return parse_gml_coll(xa, hasz, root_srid);
 
-	gml_lwerror("invalid GML representation", 56);
+	gml_lwpgerror("invalid GML representation", 56);
 	return NULL; /* Never reach */
 }
diff --git a/postgis/lwgeom_in_kml.c b/postgis/lwgeom_in_kml.c
index 6324e9d..82b0f85 100644
--- a/postgis/lwgeom_in_kml.c
+++ b/postgis/lwgeom_in_kml.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id:$
  *
  * PostGIS - Spatial Types for PostgreSQL
 
@@ -84,7 +83,7 @@ Datum geom_from_kml(PG_FUNCTION_ARGS)
 	{
 		xmlFreeDoc(xmldoc);
 		xmlCleanupParser();
-		lwerror("invalid KML representation");
+		lwpgerror("invalid KML representation");
 	}
 
 	lwgeom = parse_kml(xmlroot, &hasz);
@@ -216,7 +215,7 @@ static double parse_kml_double(char *d, bool space_before, bool space_after)
 	for (st = INIT, p = d ; *p ; p++)
 	{
 
-lwnotice("State: %d, *p=%c", st, *p);
+lwpgnotice("State: %d, *p=%c", st, *p);
 
 		if (isdigit(*p))
 		{
@@ -224,37 +223,37 @@ lwnotice("State: %d, *p=%c", st, *p);
 			else if (st == NEED_DIG_DEC) 			st = DIG_DEC;
 			else if (st == NEED_DIG_EXP || st == EXP) 	st = DIG_EXP;
 			else if (st == DIG || st == DIG_DEC || st == DIG_EXP);
-			else lwerror("invalid KML representation");
+			else lwpgerror("invalid KML representation");
 		}
 		else if (*p == '.')
 		{
 			if      (st == DIG) 				st = NEED_DIG_DEC;
-			else    lwerror("invalid KML representation");
+			else    lwpgerror("invalid KML representation");
 		}
 		else if (*p == '-' || *p == '+')
 		{
 			if      (st == INIT) 				st = NEED_DIG;
 			else if (st == EXP) 				st = NEED_DIG_EXP;
-			else    lwerror("invalid KML representation");
+			else    lwpgerror("invalid KML representation");
 		}
 		else if (*p == 'e' || *p == 'E')
 		{
 			if      (st == DIG || st == DIG_DEC) 		st = EXP;
-			else    lwerror("invalid KML representation");
+			else    lwpgerror("invalid KML representation");
 		}
 		else if (isspace(*p))
 		{
-			if (!space_after) lwerror("invalid KML representation");
+			if (!space_after) lwpgerror("invalid KML representation");
 			if (st == DIG || st == DIG_DEC || st == DIG_EXP)st = END;
 			else if (st == NEED_DIG_DEC)			st = END;
 			else if (st == END);
-			else    lwerror("invalid KML representation");
+			else    lwpgerror("invalid KML representation");
 		}
-		else  lwerror("invalid KML representation");
+		else  lwpgerror("invalid KML representation");
 	}
 
 	if (st != DIG && st != NEED_DIG_DEC && st != DIG_DEC && st != DIG_EXP && st != END)
-		lwerror("invalid KML representation");
+		lwpgerror("invalid KML representation");
 
 	return atof(d);
 }
@@ -269,12 +268,13 @@ static POINTARRAY* parse_kml_coordinates(xmlNodePtr xnode, bool *hasz)
 	xmlChar *kml_coord;
 	bool found;
 	POINTARRAY *dpa;
+	int seen_kml_dims = 0;
 	int kml_dims;
 	char *p, *q;
 	POINT4D pt;
   double d;
 
-	if (xnode == NULL) lwerror("invalid KML representation");
+	if (xnode == NULL) lwpgerror("invalid KML representation");
 
 	for (found = false ; xnode != NULL ; xnode = xnode->next)
 	{
@@ -285,7 +285,7 @@ static POINTARRAY* parse_kml_coordinates(xmlNodePtr xnode, bool *hasz)
 		found = true;
 		break;
 	}
-	if (!found) lwerror("invalid KML representation");
+	if (!found) lwpgerror("invalid KML representation");
 
 	/* We begin to retrieve coordinates string */
 	kml_coord = xmlNodeGetContent(xnode);
@@ -302,40 +302,44 @@ static POINTARRAY* parse_kml_coordinates(xmlNodePtr xnode, bool *hasz)
   while (*p && isspace(*p)) ++p;
 	for (kml_dims=0; *p ; p++)
 	{
-//lwnotice("*p:%c, kml_dims:%d", *p, kml_dims);
+//lwpgnotice("*p:%c, kml_dims:%d", *p, kml_dims);
     if ( isdigit(*p) || *p == '+' || *p == '-' || *p == '.' ) {
 			  kml_dims++;
         errno = 0; d = strtod(p, &q);
         if ( errno != 0 ) {
           // TODO: destroy dpa, return NULL
-          lwerror("invalid KML representation"); /*: %s", strerror(errno));*/
+          lwpgerror("invalid KML representation"); /*: %s", strerror(errno));*/
         }
         if      (kml_dims == 1) pt.x = d;
         else if (kml_dims == 2) pt.y = d;
         else if (kml_dims == 3) pt.z = d;
         else {
-          lwerror("invalid KML representation"); /* (more than 3 dimensions)"); */
+          lwpgerror("invalid KML representation"); /* (more than 3 dimensions)"); */
           // TODO: destroy dpa, return NULL
         }
 
-//lwnotice("after strtod d:%f, *q:%c, kml_dims:%d", d, *q, kml_dims);
+//lwpgnotice("after strtod d:%f, *q:%c, kml_dims:%d", d, *q, kml_dims);
 
         if ( *q && ! isspace(*q) && *q != ',' ) {
-          lwerror("invalid KML representation"); /* (invalid character %c follows ordinate value)", *q); */
+          lwpgerror("invalid KML representation"); /* (invalid character %c follows ordinate value)", *q); */
         }
 
         /* Look-ahead to see if we're done reading */
         while (*q && isspace(*q)) ++q;
         if ( isdigit(*q) || *q == '+' || *q == '-' || *q == '.' || ! *q ) {
-          if ( kml_dims < 2 ) lwerror("invalid KML representation"); /* (not enough ordinates)"); */
-          if ( kml_dims < 3 ) *hasz = false;
+          if ( kml_dims < 2 ) lwpgerror("invalid KML representation"); /* (not enough ordinates)"); */
+          else if ( kml_dims < 3 ) *hasz = false;
+          if ( ! seen_kml_dims ) seen_kml_dims = kml_dims;
+          else if ( seen_kml_dims != kml_dims ) {
+            lwpgerror("invalid KML representation: mixed coordinates dimension");
+          }
           ptarray_append_point(dpa, &pt, LW_TRUE);
           kml_dims = 0;
         }
         p = q-1; /* will be incrementedon next iteration */
-//lwnotice("after look-ahead *p:%c, kml_dims:%d", *p, kml_dims);
+//lwpgnotice("after look-ahead *p:%c, kml_dims:%d", *p, kml_dims);
     } else if ( *p != ',' && ! isspace(*p) ) {
-          lwerror("invalid KML representation"); /* (unexpected character %c)", *p); */
+          lwpgerror("invalid KML representation"); /* (unexpected character %c)", *p); */
     }
 	}
 
@@ -353,9 +357,9 @@ static LWGEOM* parse_kml_point(xmlNodePtr xnode, bool *hasz)
 {
 	POINTARRAY *pa;
 
-	if (xnode->children == NULL) lwerror("invalid KML representation");
+	if (xnode->children == NULL) lwpgerror("invalid KML representation");
 	pa = parse_kml_coordinates(xnode->children, hasz);
-	if (pa->npoints != 1) lwerror("invalid KML representation");
+	if (pa->npoints != 1) lwpgerror("invalid KML representation");
 
 	return (LWGEOM *) lwpoint_construct(4326, NULL, pa);
 }
@@ -368,9 +372,9 @@ static LWGEOM* parse_kml_line(xmlNodePtr xnode, bool *hasz)
 {
 	POINTARRAY *pa;
 
-	if (xnode->children == NULL) lwerror("invalid KML representation");
+	if (xnode->children == NULL) lwpgerror("invalid KML representation");
 	pa = parse_kml_coordinates(xnode->children, hasz);
-	if (pa->npoints < 2) lwerror("invalid KML representation");
+	if (pa->npoints < 2) lwpgerror("invalid KML representation");
 
 	return (LWGEOM *) lwline_construct(4326, NULL, pa);
 }
@@ -403,10 +407,17 @@ static LWGEOM* parse_kml_polygon(xmlNodePtr xnode, bool *hasz)
 			ppa = (POINTARRAY**) lwalloc(sizeof(POINTARRAY*));
 			ppa[0] = parse_kml_coordinates(xb->children, hasz);
 
-			if (ppa[0]->npoints < 4
-			        || (!*hasz && !ptarray_is_closed_2d(ppa[0]))
-			        ||  (*hasz && !ptarray_is_closed_3d(ppa[0])))
-				lwerror("invalid KML representation");
+			if (ppa[0]->npoints < 4)
+				lwpgerror("invalid KML representation");
+
+			if ((!*hasz && !ptarray_is_closed_2d(ppa[0])) || 
+			    ( *hasz && !ptarray_is_closed_3d(ppa[0])))
+			{
+				POINT4D pt;
+				getPoint4d_p(ppa[0], 0, &pt);
+				ptarray_append_point(ppa[0], &pt, LW_TRUE);
+				lwpgnotice("forced closure on an un-closed KML polygon");
+			}
 		}
 	}
 
@@ -429,17 +440,24 @@ static LWGEOM* parse_kml_polygon(xmlNodePtr xnode, bool *hasz)
 			                               sizeof(POINTARRAY*) * (ring + 1));
 			ppa[ring] = parse_kml_coordinates(xb->children, hasz);
 
-			if (ppa[ring]->npoints < 4
-			        || (!*hasz && !ptarray_is_closed_2d(ppa[ring]))
-			        ||  (*hasz && !ptarray_is_closed_3d(ppa[ring])))
-				lwerror("invalid KML representation");
+			if (ppa[ring]->npoints < 4)
+				lwpgerror("invalid KML representation");
+
+			if ((!*hasz && !ptarray_is_closed_2d(ppa[ring])) || 
+			    ( *hasz && !ptarray_is_closed_3d(ppa[ring])))
+			{
+				POINT4D pt;
+				getPoint4d_p(ppa[ring], 0, &pt);
+				ptarray_append_point(ppa[ring], &pt, LW_TRUE);
+				lwpgnotice("forced closure on an un-closed KML polygon");
+			}
 
 			ring++;
 		}
 	}
 
 	/* Exterior Ring is mandatory */
-	if (ppa == NULL || ppa[0] == NULL) lwerror("invalid KML representation");
+	if (ppa == NULL || ppa[0] == NULL) lwpgerror("invalid KML representation");
 
 	return (LWGEOM *) lwpoly_construct(4326, NULL, ring, ppa);
 }
@@ -486,7 +504,7 @@ static LWGEOM* parse_kml(xmlNodePtr xnode, bool *hasz)
 	while (xa != NULL && (xa->type != XML_ELEMENT_NODE
 	                      || !is_kml_namespace(xa, false))) xa = xa->next;
 
-	if (xa == NULL) lwerror("invalid KML representation");
+	if (xa == NULL) lwpgerror("invalid KML representation");
 
 	if (!strcmp((char *) xa->name, "Point"))
 		return parse_kml_point(xa, hasz);
@@ -500,6 +518,6 @@ static LWGEOM* parse_kml(xmlNodePtr xnode, bool *hasz)
 	if (!strcmp((char *) xa->name, "MultiGeometry"))
 		return parse_kml_multi(xa, hasz);
 
-	lwerror("invalid KML representation");
+	lwpgerror("invalid KML representation");
 	return NULL; /* Never reach */
 }
diff --git a/postgis/lwgeom_inout.c b/postgis/lwgeom_inout.c
index aa954bc..2db0ea0 100644
--- a/postgis/lwgeom_inout.c
+++ b/postgis/lwgeom_inout.c
@@ -16,10 +16,18 @@
 #include "utils/elog.h"
 #include "mb/pg_wchar.h"
 # include "lib/stringinfo.h" /* for binary input */
+#include "utils/array.h"
+#include "utils/lsyscache.h"
+#include "funcapi.h"
 
 #include "liblwgeom.h"
 #include "lwgeom_pg.h"
 #include "geography.h" /* for lwgeom_valid_typmod */
+#include "lwgeom_transform.h"
+
+#if POSTGIS_PGSQL_VERSION > 92
+#include "access/htup_details.h"
+#endif
 
 void elog_ERROR(const char* string);
 
@@ -33,6 +41,10 @@ Datum parse_WKT_lwgeom(PG_FUNCTION_ARGS);
 Datum LWGEOM_recv(PG_FUNCTION_ARGS);
 Datum LWGEOM_send(PG_FUNCTION_ARGS);
 Datum LWGEOM_to_latlon(PG_FUNCTION_ARGS);
+Datum WKBFromLWGEOM(PG_FUNCTION_ARGS);
+Datum TWKBFromLWGEOM(PG_FUNCTION_ARGS);
+Datum TWKBFromLWGEOMArray(PG_FUNCTION_ARGS);
+Datum LWGEOMFromTWKB(PG_FUNCTION_ARGS);
 
 
 /*
@@ -162,7 +174,7 @@ PG_FUNCTION_INFO_V1(LWGEOM_to_latlon);
 Datum LWGEOM_to_latlon(PG_FUNCTION_ARGS)
 {
 	/* Get the parameters */
-	GSERIALIZED *pg_lwgeom = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *pg_lwgeom = PG_GETARG_GSERIALIZED_P(0);
 	text *format_text = PG_GETARG_TEXT_P(1);
 
 	LWGEOM *lwgeom;
@@ -176,13 +188,13 @@ Datum LWGEOM_to_latlon(PG_FUNCTION_ARGS)
 	uint8_t geom_type = gserialized_get_type(pg_lwgeom);
 	if (POINTTYPE != geom_type)
 	{
-		lwerror("Only points are supported, you tried type %s.", lwtype_name(geom_type));
+		lwpgerror("Only points are supported, you tried type %s.", lwtype_name(geom_type));
 	}
 	/* Convert to LWGEOM type */
 	lwgeom = lwgeom_from_gserialized(pg_lwgeom);
 
   if (format_text == NULL) {
-    lwerror("ST_AsLatLonText: invalid format string (null");
+    lwpgerror("ST_AsLatLonText: invalid format string (null");
     PG_RETURN_NULL();
   }
 
@@ -231,7 +243,7 @@ Datum LWGEOM_to_latlon(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_out);
 Datum LWGEOM_out(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom;
 	char *hexwkb;
 	size_t hexwkb_size;
@@ -249,7 +261,7 @@ Datum LWGEOM_out(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_asHEXEWKB);
 Datum LWGEOM_asHEXEWKB(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom;
 	char *hexwkb;
 	size_t hexwkb_size;
@@ -302,7 +314,7 @@ Datum LWGEOM_asHEXEWKB(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_to_text);
 Datum LWGEOM_to_text(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom;
 	char *hexwkb;
 	size_t hexwkb_size;
@@ -323,14 +335,14 @@ Datum LWGEOM_to_text(PG_FUNCTION_ARGS)
 }
 
 /*
- * LWGEOMFromWKB(wkb,  [SRID] )
+ * LWGEOMFromEWKB(wkb,  [SRID] )
  * NOTE: wkb is in *binary* not hex form.
  *
  * NOTE: this function parses EWKB (extended form)
  *       which also contains SRID info. 
  */
-PG_FUNCTION_INFO_V1(LWGEOMFromWKB);
-Datum LWGEOMFromWKB(PG_FUNCTION_ARGS)
+PG_FUNCTION_INFO_V1(LWGEOMFromEWKB);
+Datum LWGEOMFromEWKB(PG_FUNCTION_ARGS)
 {
 	bytea *bytea_wkb = (bytea*)PG_GETARG_BYTEA_P(0);
 	int32 srid = 0;
@@ -354,6 +366,29 @@ Datum LWGEOMFromWKB(PG_FUNCTION_ARGS)
 	PG_FREE_IF_COPY(bytea_wkb, 0);
 	PG_RETURN_POINTER(geom);
 }
+/*
+ * LWGEOMFromTWKB(wkb)
+ * NOTE: twkb is in *binary* not hex form.
+ *
+ */
+PG_FUNCTION_INFO_V1(LWGEOMFromTWKB);
+Datum LWGEOMFromTWKB(PG_FUNCTION_ARGS)
+{
+	bytea *bytea_twkb = (bytea*)PG_GETARG_BYTEA_P(0);
+	GSERIALIZED *geom;
+	LWGEOM *lwgeom;
+	uint8_t *twkb = (uint8_t*)VARDATA(bytea_twkb);
+	
+	lwgeom = lwgeom_from_twkb(twkb, VARSIZE(bytea_twkb)-VARHDRSZ, LW_PARSER_CHECK_ALL);
+
+	if ( lwgeom_needs_bbox(lwgeom) )
+		lwgeom_add_bbox(lwgeom);
+
+	geom = geometry_serialize(lwgeom);
+	lwgeom_free(lwgeom);
+	PG_FREE_IF_COPY(bytea_twkb, 0);
+	PG_RETURN_POINTER(geom);
+}
 
 /*
  * WKBFromLWGEOM(lwgeom) --> wkb
@@ -362,14 +397,13 @@ Datum LWGEOMFromWKB(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(WKBFromLWGEOM);
 Datum WKBFromLWGEOM(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom;
 	uint8_t *wkb;
 	size_t wkb_size;
 	uint8_t variant = 0;
  	bytea *result;
 	text *type;
-
 	/* If user specified endianness, respect it */
 	if ( (PG_NARGS()>1) && (!PG_ARGISNULL(1)) )
 	{
@@ -385,9 +419,10 @@ Datum WKBFromLWGEOM(PG_FUNCTION_ARGS)
 			variant = variant | WKB_NDR;
 		}
 	}
-
+	wkb_size= VARSIZE(geom) - VARHDRSZ;
 	/* Create WKB hex string */
 	lwgeom = lwgeom_from_gserialized(geom);
+
 	wkb = lwgeom_to_wkb(lwgeom, variant | WKB_EXTENDED , &wkb_size);
 	lwgeom_free(lwgeom);
 	
@@ -402,12 +437,234 @@ Datum WKBFromLWGEOM(PG_FUNCTION_ARGS)
 	PG_RETURN_BYTEA_P(result);
 }
 
+PG_FUNCTION_INFO_V1(TWKBFromLWGEOM);
+Datum TWKBFromLWGEOM(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *geom;
+	LWGEOM *lwgeom;
+	uint8_t *twkb;
+	size_t twkb_size;
+	uint8_t variant = 0;
+ 	bytea *result;
+	srs_precision sp;
+	
+	/*check for null input since we cannot have the sql-function as strict. 
+	That is because we use null as default for optional ID*/	
+	if ( PG_ARGISNULL(0) ) PG_RETURN_NULL();
+	
+	geom = PG_GETARG_GSERIALIZED_P(0);
+
+	/* Read sensible precision defaults (about one meter) given the srs */
+	sp = srid_axis_precision(fcinfo, gserialized_get_srid(geom), TWKB_DEFAULT_PRECISION);
+	
+	/* If user specified XY precision, use it */
+	if ( PG_NARGS() > 1 && ! PG_ARGISNULL(1) )
+		sp.precision_xy = PG_GETARG_INT32(1);
+
+	/* If user specified Z precision, use it */
+	if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
+		sp.precision_z = PG_GETARG_INT32(2);
+
+	/* If user specified M precision, use it */
+	if ( PG_NARGS() > 3 && ! PG_ARGISNULL(3) )
+		sp.precision_m = PG_GETARG_INT32(3);
+
+	/* We don't permit ids for single geoemtries */
+	variant = variant & ~TWKB_ID;
+
+	/* If user wants registered twkb sizes */
+	if ( PG_NARGS() > 4 && ! PG_ARGISNULL(4) && PG_GETARG_BOOL(4) )
+		variant |= TWKB_SIZE;
+	
+	/* If user wants bounding boxes */
+	if ( PG_NARGS() > 5 && ! PG_ARGISNULL(5) && PG_GETARG_BOOL(5) )
+		variant |= TWKB_BBOX;
+
+	/* Create TWKB binary string */
+	lwgeom = lwgeom_from_gserialized(geom);
+	twkb = lwgeom_to_twkb(lwgeom, variant, sp.precision_xy, sp.precision_z, sp.precision_m, &twkb_size);
+	lwgeom_free(lwgeom);
+	
+	/* Prepare the PgSQL text return type */
+	result = palloc(twkb_size + VARHDRSZ);
+	memcpy(VARDATA(result), twkb, twkb_size);
+	SET_VARSIZE(result, twkb_size + VARHDRSZ);
+	
+	pfree(twkb);
+	PG_FREE_IF_COPY(geom, 0);
+	PG_RETURN_BYTEA_P(result);
+}
+
+
+PG_FUNCTION_INFO_V1(TWKBFromLWGEOMArray);
+Datum TWKBFromLWGEOMArray(PG_FUNCTION_ARGS)
+{
+	ArrayType *arr_geoms = NULL;
+	ArrayType *arr_ids = NULL;
+	int num_geoms, num_ids, i = 0;
+
+	ArrayIterator iter_geoms, iter_ids;
+	bool null_geom, null_id;
+	Datum val_geom, val_id;
+
+	int is_homogeneous = true;
+	int subtype = 0;
+	int has_z = 0;
+	int has_m  = 0;
+	LWCOLLECTION *col = NULL;
+	int64_t *idlist = NULL;
+	uint8_t variant = 0;
+
+	srs_precision sp;
+	uint8_t *twkb;
+	size_t twkb_size;
+ 	bytea *result;
+
+	/* The first two arguments are required */
+	if ( PG_NARGS() < 2 || PG_ARGISNULL(0) || PG_ARGISNULL(1) ) 
+		PG_RETURN_NULL();
+
+	arr_geoms = PG_GETARG_ARRAYTYPE_P(0);
+	arr_ids = PG_GETARG_ARRAYTYPE_P(1);
+
+	num_geoms = ArrayGetNItems(ARR_NDIM(arr_geoms), ARR_DIMS(arr_geoms));
+	num_ids = ArrayGetNItems(ARR_NDIM(arr_ids), ARR_DIMS(arr_ids));
+	
+	if ( num_geoms != num_ids )
+	{
+		elog(ERROR, "size of geometry[] and integer[] arrays must match");
+		PG_RETURN_NULL();
+	}
+
+	/* Loop through array and build a collection of geometry and */
+	/* a simple array of ids. If either side is NULL, skip it */
+
+#if POSTGIS_PGSQL_VERSION >= 95	
+	iter_geoms = array_create_iterator(arr_geoms, 0, NULL);
+	iter_ids = array_create_iterator(arr_ids, 0, NULL);
+#else
+	iter_geoms = array_create_iterator(arr_geoms, 0);
+	iter_ids = array_create_iterator(arr_ids, 0);
+#endif
+
+	while( array_iterate(iter_geoms, &val_geom, &null_geom) && 
+	       array_iterate(iter_ids, &val_id, &null_id) )
+	{
+		LWGEOM *geom;
+		int32_t uid;
+
+		if ( null_geom || null_id )
+		{
+			elog(NOTICE, "ST_AsTWKB skipping NULL entry at position %d", i);
+			continue;
+		}
+
+		geom = lwgeom_from_gserialized((GSERIALIZED*)DatumGetPointer(val_geom));
+		uid = DatumGetInt64(val_id);
+		
+		/* Construct collection/idlist first time through */
+		if ( ! col )
+		{
+			has_z = lwgeom_has_z(geom);
+			has_m = lwgeom_has_m(geom);
+			col = lwcollection_construct_empty(COLLECTIONTYPE, lwgeom_get_srid(geom), has_z, has_m);
+		}
+		if ( ! idlist ) 
+			idlist = palloc0(num_geoms * sizeof(int64_t));
+
+		
+		/*Check if there is differences in dimmenstionality*/
+		if( lwgeom_has_z(geom)!=has_z || lwgeom_has_m(geom)!=has_m)
+		{
+			elog(ERROR, "Geometries have differenct dimensionality");
+			PG_FREE_IF_COPY(arr_geoms, 0);
+			PG_FREE_IF_COPY(arr_ids, 1);
+			PG_RETURN_NULL();			
+		}
+		/* Store the values */
+		lwcollection_add_lwgeom(col, geom);
+		idlist[i++] = uid;
+		
+		/* Grab the geometry type and note if all geometries share it */
+		/* If so, we can make this a homogeneous collection and save some space */
+		if ( lwgeom_get_type(geom) != subtype && subtype )
+		{
+			is_homogeneous = false;
+		}
+		else
+		{
+			subtype = lwgeom_get_type(geom);
+		}
+
+	}
+	array_free_iterator(iter_geoms);
+	array_free_iterator(iter_ids);
+	
+	if(i==0)
+	{
+		elog(NOTICE, "No valid geometry - id pairs found");
+		PG_FREE_IF_COPY(arr_geoms, 0);
+		PG_FREE_IF_COPY(arr_ids, 1);
+		PG_RETURN_NULL();		
+	}
+	if ( is_homogeneous )
+	{
+		col->type = lwtype_get_collectiontype(subtype);
+	}
+
+	/* Read sensible precision defaults (about one meter) given the srs */
+	sp = srid_axis_precision(fcinfo, lwgeom_get_srid(lwcollection_as_lwgeom(col)), TWKB_DEFAULT_PRECISION);
+	
+	/* If user specified XY precision, use it */
+	if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
+		sp.precision_xy = PG_GETARG_INT32(2);
+
+	/* If user specified Z precision, use it */
+	if ( PG_NARGS() > 3 && ! PG_ARGISNULL(3) )
+		sp.precision_z = PG_GETARG_INT32(3);
+
+	/* If user specified M precision, use it */
+	if ( PG_NARGS() > 4 && ! PG_ARGISNULL(4) )
+		sp.precision_m = PG_GETARG_INT32(4);
+
+	/* We are building an ID'ed output */
+	variant = TWKB_ID;
+	
+	/* If user wants registered twkb sizes */
+	if ( PG_NARGS() > 5 && ! PG_ARGISNULL(5) && PG_GETARG_BOOL(5) )
+		variant |= TWKB_SIZE;
+	
+	/* If user wants bounding boxes */
+	if ( PG_NARGS() > 6 && ! PG_ARGISNULL(6) && PG_GETARG_BOOL(6) )
+		variant |= TWKB_BBOX;
+
+	/* Write out the TWKB */
+	twkb = lwgeom_to_twkb_with_idlist(lwcollection_as_lwgeom(col), 
+	                                  idlist, variant, 
+	                                  sp.precision_xy, sp.precision_z, sp.precision_m, 
+	                                  &twkb_size);
+					  
+	/* Convert to a bytea return type */
+	result = palloc(twkb_size + VARHDRSZ);
+	memcpy(VARDATA(result), twkb, twkb_size);
+	SET_VARSIZE(result, twkb_size + VARHDRSZ);
+	
+	/* Clean up */
+	pfree(twkb);
+	pfree(idlist);
+	lwcollection_free(col);
+	PG_FREE_IF_COPY(arr_geoms, 0);
+	PG_FREE_IF_COPY(arr_ids, 1);
+	
+	PG_RETURN_BYTEA_P(result);
+}
+
 
 /* puts a bbox inside the geometry */
 PG_FUNCTION_INFO_V1(LWGEOM_addBBOX);
 Datum LWGEOM_addBBOX(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *result;
 	LWGEOM *lwgeom;
 
@@ -423,7 +680,7 @@ Datum LWGEOM_addBBOX(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_dropBBOX);
 Datum LWGEOM_dropBBOX(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 
 	/* No box? we're done already! */
 	if ( ! gserialized_has_bbox(geom) )
@@ -546,7 +803,7 @@ Datum LWGEOM_from_bytea(PG_FUNCTION_ARGS)
 	POSTGIS_DEBUG(2, "LWGEOM_from_bytea start");
 
 	result = (GSERIALIZED *)DatumGetPointer(DirectFunctionCall1(
-	                                          LWGEOMFromWKB, PG_GETARG_DATUM(0)));
+	                                          LWGEOMFromEWKB, PG_GETARG_DATUM(0)));
 
 	PG_RETURN_POINTER(result);
 }
diff --git a/postgis/lwgeom_ogc.c b/postgis/lwgeom_ogc.c
index 2f55c6b..f4b1879 100644
--- a/postgis/lwgeom_ogc.c
+++ b/postgis/lwgeom_ogc.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_ogc.c 13254 2015-02-20 18:23:13Z pramsey $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -82,7 +81,7 @@ Datum LWGEOM_isclosed(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(LWGEOM_get_srid);
 Datum LWGEOM_get_srid(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom=(GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom=PG_GETARG_GSERIALIZED_P(0);
 	int srid = gserialized_get_srid (geom);
 	PG_FREE_IF_COPY(geom,0);
 	PG_RETURN_INT32(srid);
@@ -92,15 +91,10 @@ Datum LWGEOM_get_srid(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_set_srid);
 Datum LWGEOM_set_srid(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *result;
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *g = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
 	int srid = PG_GETARG_INT32(1);
-	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
-	lwgeom_set_srid(lwgeom, srid);
-	result = geometry_serialize(lwgeom);
-	lwgeom_free(lwgeom);
-	PG_FREE_IF_COPY(geom, 0);
-	PG_RETURN_POINTER(result);
+	gserialized_set_srid(g, srid);
+	PG_RETURN_POINTER(g);
 }
 
 /* returns a string representation of this geometry's type */
@@ -113,7 +107,7 @@ Datum LWGEOM_getTYPE(PG_FUNCTION_ARGS)
 	uint8_t type;
 	static int maxtyplen = 20;
 
-	gser = (GSERIALIZED*)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, gserialized_max_header_size());
+	gser = PG_GETARG_GSERIALIZED_P_SLICE(0, 0, gserialized_max_header_size());
 	text_ob = palloc0(VARHDRSZ + maxtyplen);
 	result = VARDATA(text_ob);
 
@@ -169,21 +163,21 @@ Datum geometry_geometrytype(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *gser;
 	text *type_text;
-	char *type_str = palloc(32);
+	static int type_str_len = 32;
+	char type_str[type_str_len];
 
 	/* Read just the header from the toasted tuple */
-	gser = (GSERIALIZED*)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, gserialized_max_header_size());
+	gser = PG_GETARG_GSERIALIZED_P_SLICE(0, 0, gserialized_max_header_size());
 
 	/* Make it empty string to start */
-	*type_str = 0;
+	type_str[0] = 0;
 
 	/* Build up the output string */
-	strncat(type_str, "ST_", 32);
-	strncat(type_str, lwtype_name(gserialized_get_type(gser)), 32);
+	strncat(type_str, "ST_", type_str_len);
+	strncat(type_str, lwtype_name(gserialized_get_type(gser)), type_str_len - 3);
 	
 	/* Build a text type to store things in */
 	type_text = cstring2text(type_str);
-	pfree(type_str);
 
 	PG_FREE_IF_COPY(gser, 0);
 	PG_RETURN_TEXT_P(type_text);
@@ -198,11 +192,12 @@ Datum geometry_geometrytype(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_numpoints_linestring);
 Datum LWGEOM_numpoints_linestring(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	int count = -1;
+	int type = lwgeom->type;
 	
-	if ( lwgeom->type == LINETYPE || lwgeom->type == CIRCSTRINGTYPE )
+	if ( type == LINETYPE || type == CIRCSTRINGTYPE || type == COMPOUNDTYPE )
 		count = lwgeom_count_vertices(lwgeom);
 
 	lwgeom_free(lwgeom);
@@ -218,7 +213,7 @@ Datum LWGEOM_numpoints_linestring(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_numgeometries_collection);
 Datum LWGEOM_numgeometries_collection(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom;
 	int32 ret = 1;
 
@@ -241,7 +236,7 @@ Datum LWGEOM_numgeometries_collection(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_geometryn_collection);
 Datum LWGEOM_geometryn_collection(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *result;
 	int type = gserialized_get_type(geom);
 	int32 idx;
@@ -292,7 +287,7 @@ Datum LWGEOM_geometryn_collection(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_dimension);
 Datum LWGEOM_dimension(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	int dimension = -1;
 
@@ -318,7 +313,7 @@ Datum LWGEOM_dimension(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_exteriorring_polygon);
 Datum LWGEOM_exteriorring_polygon(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *result;
 	POINTARRAY *extring;
 	LWGEOM *lwgeom;
@@ -402,7 +397,7 @@ Datum LWGEOM_exteriorring_polygon(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_numinteriorrings_polygon);
 Datum LWGEOM_numinteriorrings_polygon(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	LWPOLY *poly = NULL;
 	LWCURVEPOLY *curvepoly = NULL;
@@ -457,7 +452,7 @@ Datum LWGEOM_interiorringn_polygon(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL(); /* index out of range */
 	}
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	type = gserialized_get_type(geom);
 
 	if ( (type != POLYGONTYPE) && (type != CURVEPOLYTYPE) )
@@ -531,7 +526,7 @@ Datum LWGEOM_interiorringn_polygon(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_pointn_linestring);
 Datum LWGEOM_pointn_linestring(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	int where = PG_GETARG_INT32(1);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	LWPOINT *lwpoint = NULL;
@@ -546,6 +541,10 @@ Datum LWGEOM_pointn_linestring(PG_FUNCTION_ARGS)
 		/* OGC index starts at one, so we substract first. */
 		lwpoint = lwline_get_lwpoint((LWLINE*)lwgeom, where - 1);
 	}
+	else if ( type == COMPOUNDTYPE )
+	{
+		lwpoint = lwcompound_get_lwpoint((LWCOMPOUND*)lwgeom, where - 1);
+	}	
 
 	lwgeom_free(lwgeom);
 	PG_FREE_IF_COPY(geom, 0);
@@ -568,10 +567,10 @@ Datum LWGEOM_x_point(PG_FUNCTION_ARGS)
 	LWPOINT *point = NULL;
 	POINT2D p;
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	if ( gserialized_get_type(geom) != POINTTYPE )
-		lwerror("Argument to X() must be a point");
+		lwpgerror("Argument to ST_X() must be a point");
 
 	lwgeom = lwgeom_from_gserialized(geom);
 	point = lwgeom_as_lwpoint(lwgeom);
@@ -597,10 +596,10 @@ Datum LWGEOM_y_point(PG_FUNCTION_ARGS)
 	LWGEOM *lwgeom;
 	POINT2D p;
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	if ( gserialized_get_type(geom) != POINTTYPE )
-		lwerror("Argument to Y() must be a point");
+		lwpgerror("Argument to ST_Y() must be a point");
 
 	lwgeom = lwgeom_from_gserialized(geom);
 	point = lwgeom_as_lwpoint(lwgeom);
@@ -628,10 +627,10 @@ Datum LWGEOM_z_point(PG_FUNCTION_ARGS)
 	LWGEOM *lwgeom;
 	POINT3DZ p;
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	if ( gserialized_get_type(geom) != POINTTYPE )
-		lwerror("Argument to Z() must be a point");
+		lwpgerror("Argument to ST_Z() must be a point");
 
 	lwgeom = lwgeom_from_gserialized(geom);
 	point = lwgeom_as_lwpoint(lwgeom);
@@ -661,10 +660,10 @@ Datum LWGEOM_m_point(PG_FUNCTION_ARGS)
 	LWGEOM *lwgeom;
 	POINT3DM p;
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 
 	if ( gserialized_get_type(geom) != POINTTYPE )
-		lwerror("Argument to M() must be a point");
+		lwpgerror("Argument to ST_M() must be a point");
 
 	lwgeom = lwgeom_from_gserialized(geom);
 	point = lwgeom_as_lwpoint(lwgeom);
@@ -690,7 +689,7 @@ Datum LWGEOM_m_point(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_startpoint_linestring);
 Datum LWGEOM_startpoint_linestring(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	LWPOINT *lwpoint = NULL;
 	int type = lwgeom->type;
@@ -699,6 +698,10 @@ Datum LWGEOM_startpoint_linestring(PG_FUNCTION_ARGS)
 	{
 		lwpoint = lwline_get_lwpoint((LWLINE*)lwgeom, 0);
 	}
+	else if ( type == COMPOUNDTYPE )
+	{
+		lwpoint = lwcompound_get_startpoint((LWCOMPOUND*)lwgeom);
+	}
 
 	lwgeom_free(lwgeom);
 	PG_FREE_IF_COPY(geom, 0);
@@ -716,7 +719,7 @@ Datum LWGEOM_startpoint_linestring(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_endpoint_linestring);
 Datum LWGEOM_endpoint_linestring(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	LWPOINT *lwpoint = NULL;
 	int type = lwgeom->type;
@@ -727,6 +730,10 @@ Datum LWGEOM_endpoint_linestring(PG_FUNCTION_ARGS)
 		if ( line->points )
 			lwpoint = lwline_get_lwpoint((LWLINE*)lwgeom, line->points->npoints - 1);
 	}
+	else if ( type == COMPOUNDTYPE )
+	{
+		lwpoint = lwcompound_get_endpoint((LWCOMPOUND*)lwgeom);
+	}
 
 	lwgeom_free(lwgeom);
 	PG_FREE_IF_COPY(geom, 0);
@@ -830,7 +837,7 @@ Datum LWGEOM_asText(PG_FUNCTION_ARGS)
 
 	POSTGIS_DEBUG(2, "Called.");
 
-	geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom = lwgeom_from_gserialized(geom);
 
 	/* Write to WKT and free the geometry */
@@ -860,7 +867,7 @@ Datum LWGEOM_asBinary(PG_FUNCTION_ARGS)
 	uint8_t variant = WKB_ISO;
 
 	/* Get a 2D version of the geometry */
-	geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P(0);
 	lwgeom = lwgeom_from_gserialized(geom);
 
 	/* If user specified endianness, respect it */
@@ -905,7 +912,7 @@ Datum LWGEOM_asBinary(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_isclosed);
 Datum LWGEOM_isclosed(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED*)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	int closed = lwgeom_is_closed(lwgeom);
 	
diff --git a/postgis/lwgeom_rtree.c b/postgis/lwgeom_rtree.c
index f88627a..838fb66 100644
--- a/postgis/lwgeom_rtree.c
+++ b/postgis/lwgeom_rtree.c
@@ -165,7 +165,7 @@ RTreeCreateLeafNode(POINTARRAY* pa, int startPoint)
 
 	if (pa->npoints < startPoint + 2)
 	{
-		lwerror("RTreeCreateLeafNode: npoints = %d, startPoint = %d", pa->npoints, startPoint);
+		lwpgerror("RTreeCreateLeafNode: npoints = %d, startPoint = %d", pa->npoints, startPoint);
 	}
 
 	/*
@@ -313,7 +313,7 @@ RTreeBuilder(const LWGEOM* lwgeom, GeomCache* cache)
 
 	if ( rtree_cache->index )
 	{
-		lwerror("RTreeBuilder asked to build index where one already exists.");
+		lwpgerror("RTreeBuilder asked to build index where one already exists.");
 		return LW_FAILURE;
 	}
 	
@@ -370,7 +370,7 @@ RTreeBuilder(const LWGEOM* lwgeom, GeomCache* cache)
 	else
 	{
 		/* Uh oh, shouldn't be here. */
-		lwerror("RTreeBuilder got asked to build index on non-polygon");
+		lwpgerror("RTreeBuilder got asked to build index on non-polygon");
 		return LW_FAILURE;
 	}
 	return LW_SUCCESS;	
diff --git a/postgis/lwgeom_sfcgal.c b/postgis/lwgeom_sfcgal.c
index 9adf607..1900c70 100644
--- a/postgis/lwgeom_sfcgal.c
+++ b/postgis/lwgeom_sfcgal.c
@@ -16,10 +16,9 @@
 #include "fmgr.h"
 #include "../liblwgeom/liblwgeom.h"
 
-#include "../postgis_config.h"
-
 #include "lwgeom_pg.h"
 #include "lwgeom_sfcgal.h"
+#include "../postgis_config.h"
 
 
 Datum postgis_sfcgal_version(PG_FUNCTION_ARGS);
@@ -33,14 +32,22 @@ Datum sfcgal_intersects(PG_FUNCTION_ARGS);
 Datum sfcgal_intersects3D(PG_FUNCTION_ARGS);
 Datum sfcgal_intersection(PG_FUNCTION_ARGS);
 Datum sfcgal_intersection3D(PG_FUNCTION_ARGS);
+Datum sfcgal_difference(PG_FUNCTION_ARGS);
+Datum sfcgal_difference3D(PG_FUNCTION_ARGS);
+Datum sfcgal_union(PG_FUNCTION_ARGS);
+Datum sfcgal_union3D(PG_FUNCTION_ARGS);
+Datum sfcgal_volume(PG_FUNCTION_ARGS);
 Datum sfcgal_extrude(PG_FUNCTION_ARGS);
 Datum sfcgal_straight_skeleton(PG_FUNCTION_ARGS);
+Datum sfcgal_approximate_medial_axis(PG_FUNCTION_ARGS);
 Datum sfcgal_is_planar(PG_FUNCTION_ARGS);
 Datum sfcgal_orientation(PG_FUNCTION_ARGS);
 Datum sfcgal_force_lhr(PG_FUNCTION_ARGS);
 Datum sfcgal_triangulate(PG_FUNCTION_ARGS);
 Datum sfcgal_tesselate(PG_FUNCTION_ARGS);
 Datum sfcgal_minkowski_sum(PG_FUNCTION_ARGS);
+Datum sfcgal_make_solid(PG_FUNCTION_ARGS);
+Datum sfcgal_is_solid(PG_FUNCTION_ARGS);
 
 
 GSERIALIZED *geometry_serialize(LWGEOM *lwgeom);
@@ -52,7 +59,7 @@ void sfcgal_postgis_init(void)
 {
     if ( ! __sfcgal_init ) {
 	sfcgal_init();
-	sfcgal_set_error_handlers((sfcgal_error_handler_t) lwnotice, (sfcgal_error_handler_t) lwerror);
+	sfcgal_set_error_handlers((sfcgal_error_handler_t) lwpgnotice, (sfcgal_error_handler_t) lwpgerror);
 	sfcgal_set_alloc_handlers(lwalloc, lwfree);
 	__sfcgal_init = 1;
     }
@@ -67,7 +74,7 @@ sfcgal_geometry_t* POSTGIS2SFCGALGeometry(GSERIALIZED *pglwgeom)
 
 	if (! lwgeom)
 	{
-		lwerror("POSTGIS2SFCGALGeometry: Unable to deserialize input");
+		lwpgerror("POSTGIS2SFCGALGeometry: Unable to deserialize input");
 	}
 	g = LWGEOM2SFCGAL(lwgeom);
 	lwgeom_free(lwgeom);
@@ -84,7 +91,7 @@ sfcgal_prepared_geometry_t* POSTGIS2SFCGALPreparedGeometry(GSERIALIZED *pglwgeom
 
 	if (!lwgeom)
 	{
-		lwerror("POSTGIS2SFCGALPreparedGeometry: Unable to deserialize input");
+		lwpgerror("POSTGIS2SFCGALPreparedGeometry: Unable to deserialize input");
 	}
 	g = LWGEOM2SFCGAL(lwgeom);
 
@@ -146,7 +153,7 @@ Datum sfcgal_area(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	input = PG_GETARG_GSERIALIZED_P(0);
 	geom = POSTGIS2SFCGALGeometry(input);
 
 	result = sfcgal_geometry_area(geom);
@@ -167,7 +174,7 @@ Datum sfcgal_area3D(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	input = PG_GETARG_GSERIALIZED_P(0);
 	geom = POSTGIS2SFCGALGeometry(input);
 
 	result = sfcgal_geometry_area_3d(geom);
@@ -188,7 +195,7 @@ Datum sfcgal_is_planar(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	input = PG_GETARG_GSERIALIZED_P(0);
 	geom = POSTGIS2SFCGALGeometry(input);
 
 	result = sfcgal_geometry_is_planar(geom);
@@ -209,7 +216,7 @@ Datum sfcgal_orientation(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	input = PG_GETARG_GSERIALIZED_P(0);
 	geom = POSTGIS2SFCGALGeometry(input);
 
 	result = sfcgal_geometry_orientation(geom);
@@ -230,8 +237,8 @@ Datum sfcgal_intersects(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input0 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	input1 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	input0 = PG_GETARG_GSERIALIZED_P(0);
+	input1 = PG_GETARG_GSERIALIZED_P(1);
 	geom0 = POSTGIS2SFCGALGeometry(input0);
 	PG_FREE_IF_COPY(input0, 0);
 	geom1 = POSTGIS2SFCGALGeometry(input1);
@@ -254,8 +261,8 @@ Datum sfcgal_intersects3D(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input0 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	input1 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	input0 = PG_GETARG_GSERIALIZED_P(0);
+	input1 = PG_GETARG_GSERIALIZED_P(1);
 	geom0 = POSTGIS2SFCGALGeometry(input0);
 	PG_FREE_IF_COPY(input0, 0);
 	geom1 = POSTGIS2SFCGALGeometry(input1);
@@ -278,8 +285,8 @@ Datum sfcgal_distance(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input0 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	input1 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	input0 = PG_GETARG_GSERIALIZED_P(0);
+	input1 = PG_GETARG_GSERIALIZED_P(1);
 	geom0 = POSTGIS2SFCGALGeometry(input0);
 	PG_FREE_IF_COPY(input0, 0);
 	geom1 = POSTGIS2SFCGALGeometry(input1);
@@ -302,8 +309,8 @@ Datum sfcgal_distance3D(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input0 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	input1 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	input0 = PG_GETARG_GSERIALIZED_P(0);
+	input1 = PG_GETARG_GSERIALIZED_P(1);
 	geom0 = POSTGIS2SFCGALGeometry(input0);
 	PG_FREE_IF_COPY(input0, 0);
 	geom1 = POSTGIS2SFCGALGeometry(input1);
@@ -327,7 +334,7 @@ Datum sfcgal_tesselate(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	input = PG_GETARG_GSERIALIZED_P(0);
 	srid = gserialized_get_srid(input);
 	geom = POSTGIS2SFCGALGeometry(input);
 	PG_FREE_IF_COPY(input, 0);
@@ -352,7 +359,7 @@ Datum sfcgal_triangulate(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	input = PG_GETARG_GSERIALIZED_P(0);
 	srid = gserialized_get_srid(input);
 	geom = POSTGIS2SFCGALGeometry(input);
 	PG_FREE_IF_COPY(input, 0);
@@ -377,7 +384,7 @@ Datum sfcgal_force_lhr(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	input = PG_GETARG_GSERIALIZED_P(0);
 	srid = gserialized_get_srid(input);
 	geom = POSTGIS2SFCGALGeometry(input);
 	PG_FREE_IF_COPY(input, 0);
@@ -402,7 +409,7 @@ Datum sfcgal_straight_skeleton(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	input = PG_GETARG_GSERIALIZED_P(0);
 	srid = gserialized_get_srid(input);
 	geom = POSTGIS2SFCGALGeometry(input);
 	PG_FREE_IF_COPY(input, 0);
@@ -416,6 +423,38 @@ Datum sfcgal_straight_skeleton(PG_FUNCTION_ARGS)
 	PG_RETURN_POINTER(output);
 }
 
+PG_FUNCTION_INFO_V1(sfcgal_approximate_medial_axis);
+Datum sfcgal_approximate_medial_axis(PG_FUNCTION_ARGS)
+{
+#if POSTGIS_SFCGAL_VERSION < 12
+	lwpgerror("The SFCGAL version this PostGIS binary "
+	        "was compiled against (%d) doesn't support "
+	        "'sfcgal_geometry_approximate_medial_axis' function (1.2.0+ required)",
+	        POSTGIS_SFCGAL_VERSION);
+	PG_RETURN_NULL();
+#else /* POSTGIS_SFCGAL_VERSION >= 12 */
+	GSERIALIZED *input, *output;
+	sfcgal_geometry_t *geom;
+	sfcgal_geometry_t *result;
+	srid_t srid;
+
+	sfcgal_postgis_init();
+
+	input = PG_GETARG_GSERIALIZED_P(0);
+	srid = gserialized_get_srid(input);
+	geom = POSTGIS2SFCGALGeometry(input);
+	PG_FREE_IF_COPY(input, 0);
+
+	result = sfcgal_geometry_approximate_medial_axis(geom);
+	sfcgal_geometry_delete(geom);
+
+	output = SFCGALGeometry2POSTGIS(result, 0, srid);
+	sfcgal_geometry_delete(result);
+
+	PG_RETURN_POINTER(output);
+#endif /* POSTGIS_SFCGAL_VERSION >= 12 */
+}
+
 
 PG_FUNCTION_INFO_V1(sfcgal_intersection);	
 Datum sfcgal_intersection(PG_FUNCTION_ARGS)
@@ -427,9 +466,9 @@ Datum sfcgal_intersection(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
-	input0 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	input0 = PG_GETARG_GSERIALIZED_P(0);
 	srid = gserialized_get_srid(input0);
-	input1 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	input1 = PG_GETARG_GSERIALIZED_P(1);
 	geom0 = POSTGIS2SFCGALGeometry(input0);
 	PG_FREE_IF_COPY(input0, 0);
 	geom1 = POSTGIS2SFCGALGeometry(input1);
@@ -456,6 +495,34 @@ Datum sfcgal_intersection3D(PG_FUNCTION_ARGS)
 
 	sfcgal_postgis_init();
 
+	input0 = PG_GETARG_GSERIALIZED_P(0);
+	srid = gserialized_get_srid(input0);
+	input1 = PG_GETARG_GSERIALIZED_P(1);
+	geom0 = POSTGIS2SFCGALGeometry(input0);
+	PG_FREE_IF_COPY(input0, 0);
+	geom1 = POSTGIS2SFCGALGeometry(input1);
+	PG_FREE_IF_COPY(input1, 1);
+
+	result = sfcgal_geometry_intersection_3d(geom0, geom1);
+	sfcgal_geometry_delete(geom0);
+	sfcgal_geometry_delete(geom1);
+
+	output = SFCGALGeometry2POSTGIS(result, 0, srid);
+	sfcgal_geometry_delete(result);
+
+	PG_RETURN_POINTER(output);
+}
+
+PG_FUNCTION_INFO_V1(sfcgal_difference);	
+Datum sfcgal_difference(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *input0, *input1, *output;
+	sfcgal_geometry_t *geom0, *geom1;
+	sfcgal_geometry_t *result;
+	srid_t srid;
+
+	sfcgal_postgis_init();
+
 	input0 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
 	srid = gserialized_get_srid(input0);
 	input1 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
@@ -464,7 +531,7 @@ Datum sfcgal_intersection3D(PG_FUNCTION_ARGS)
 	geom1 = POSTGIS2SFCGALGeometry(input1);
 	PG_FREE_IF_COPY(input1, 1);
 
-	result = sfcgal_geometry_intersection_3d(geom0, geom1);
+	result = sfcgal_geometry_difference(geom0, geom1);
 	sfcgal_geometry_delete(geom0);
 	sfcgal_geometry_delete(geom1);
 
@@ -475,8 +542,36 @@ Datum sfcgal_intersection3D(PG_FUNCTION_ARGS)
 }
 
 
-PG_FUNCTION_INFO_V1(sfcgal_minkowski_sum);	
-Datum sfcgal_minkowski_sum(PG_FUNCTION_ARGS)
+PG_FUNCTION_INFO_V1(sfcgal_difference3D);	
+Datum sfcgal_difference3D(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *input0, *input1, *output;
+	sfcgal_geometry_t *geom0, *geom1;
+	sfcgal_geometry_t *result;
+	srid_t srid;
+
+	sfcgal_postgis_init();
+
+	input0 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	srid = gserialized_get_srid(input0);
+	input1 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom0 = POSTGIS2SFCGALGeometry(input0);
+	PG_FREE_IF_COPY(input0, 0);
+	geom1 = POSTGIS2SFCGALGeometry(input1);
+	PG_FREE_IF_COPY(input1, 1);
+
+	result = sfcgal_geometry_difference_3d(geom0, geom1);
+	sfcgal_geometry_delete(geom0);
+	sfcgal_geometry_delete(geom1);
+
+	output = SFCGALGeometry2POSTGIS(result, 0, srid);
+	sfcgal_geometry_delete(result);
+
+	PG_RETURN_POINTER(output);
+}
+
+PG_FUNCTION_INFO_V1(sfcgal_union);	
+Datum sfcgal_union(PG_FUNCTION_ARGS)
 {
 	GSERIALIZED *input0, *input1, *output;
 	sfcgal_geometry_t *geom0, *geom1;
@@ -493,6 +588,83 @@ Datum sfcgal_minkowski_sum(PG_FUNCTION_ARGS)
 	geom1 = POSTGIS2SFCGALGeometry(input1);
 	PG_FREE_IF_COPY(input1, 1);
 
+	result = sfcgal_geometry_union(geom0, geom1);
+	sfcgal_geometry_delete(geom0);
+	sfcgal_geometry_delete(geom1);
+
+	output = SFCGALGeometry2POSTGIS(result, 0, srid);
+	sfcgal_geometry_delete(result);
+
+	PG_RETURN_POINTER(output);
+}
+
+
+PG_FUNCTION_INFO_V1(sfcgal_union3D);	
+Datum sfcgal_union3D(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *input0, *input1, *output;
+	sfcgal_geometry_t *geom0, *geom1;
+	sfcgal_geometry_t *result;
+	srid_t srid;
+
+	sfcgal_postgis_init();
+
+	input0 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	srid = gserialized_get_srid(input0);
+	input1 = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	geom0 = POSTGIS2SFCGALGeometry(input0);
+	PG_FREE_IF_COPY(input0, 0);
+	geom1 = POSTGIS2SFCGALGeometry(input1);
+	PG_FREE_IF_COPY(input1, 1);
+
+	result = sfcgal_geometry_union_3d(geom0, geom1);
+	sfcgal_geometry_delete(geom0);
+	sfcgal_geometry_delete(geom1);
+
+	output = SFCGALGeometry2POSTGIS(result, 0, srid);
+	sfcgal_geometry_delete(result);
+
+	PG_RETURN_POINTER(output);
+}
+
+PG_FUNCTION_INFO_V1(sfcgal_volume);
+Datum sfcgal_volume(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *input;
+	sfcgal_geometry_t *geom;
+	double result;
+
+	sfcgal_postgis_init();
+
+	input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	geom = POSTGIS2SFCGALGeometry(input);
+
+	result = sfcgal_geometry_volume(geom);
+	sfcgal_geometry_delete(geom);
+
+	PG_FREE_IF_COPY(input, 0);
+
+	PG_RETURN_FLOAT8(result);
+}
+
+PG_FUNCTION_INFO_V1(sfcgal_minkowski_sum);	
+Datum sfcgal_minkowski_sum(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *input0, *input1, *output;
+	sfcgal_geometry_t *geom0, *geom1;
+	sfcgal_geometry_t *result;
+	srid_t srid;
+
+	sfcgal_postgis_init();
+
+	input0 = PG_GETARG_GSERIALIZED_P(0);
+	srid = gserialized_get_srid(input0);
+	input1 = PG_GETARG_GSERIALIZED_P(1);
+	geom0 = POSTGIS2SFCGALGeometry(input0);
+	PG_FREE_IF_COPY(input0, 0);
+	geom1 = POSTGIS2SFCGALGeometry(input1);
+	PG_FREE_IF_COPY(input1, 1);
+
 	result = sfcgal_geometry_minkowski_sum(geom0, geom1);
 	sfcgal_geometry_delete(geom0);
 	sfcgal_geometry_delete(geom1);
@@ -515,7 +687,7 @@ Datum sfcgal_extrude(PG_FUNCTION_ARGS)
 
     sfcgal_postgis_init();
     
-    input = (GSERIALIZED*) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+    input = PG_GETARG_GSERIALIZED_P(0);
     srid = gserialized_get_srid(input);
 
     geom = POSTGIS2SFCGALGeometry(input);
@@ -542,3 +714,41 @@ Datum postgis_sfcgal_version(PG_FUNCTION_ARGS)
         PG_RETURN_POINTER(result);
 }
 
+PG_FUNCTION_INFO_V1(sfcgal_is_solid);	
+Datum sfcgal_is_solid(PG_FUNCTION_ARGS)
+{
+	int result;
+	GSERIALIZED *input = PG_GETARG_GSERIALIZED_P(0);
+        LWGEOM *lwgeom = lwgeom_from_gserialized(input);
+	PG_FREE_IF_COPY(input, 0);
+	if (! lwgeom)
+	{
+		lwerror("sfcgal_is_solid: Unable to deserialize input");
+	}
+        result = FLAGS_GET_SOLID( lwgeom->flags );
+
+	lwgeom_free(lwgeom);
+
+	PG_RETURN_BOOL(result);
+}
+
+PG_FUNCTION_INFO_V1(sfcgal_make_solid);	
+Datum sfcgal_make_solid(PG_FUNCTION_ARGS)
+{
+        GSERIALIZED *output;
+	GSERIALIZED *input = PG_GETARG_GSERIALIZED_P(0);
+        LWGEOM *lwgeom = lwgeom_from_gserialized(input);
+	PG_FREE_IF_COPY(input, 0);
+	if (! lwgeom)
+	{
+		lwerror("sfcgal_make_solid: Unable to deserialize input");
+	}
+
+        FLAGS_SET_SOLID( lwgeom->flags, 1);
+
+	output = geometry_serialize( lwgeom );
+	lwgeom_free(lwgeom);
+
+	PG_RETURN_POINTER(output);
+}
+
diff --git a/postgis/lwgeom_sfcgal.h b/postgis/lwgeom_sfcgal.h
index 52ad40a..067a277 100644
--- a/postgis/lwgeom_sfcgal.h
+++ b/postgis/lwgeom_sfcgal.h
@@ -29,10 +29,17 @@ GSERIALIZED* SFCGALPreparedGeometry2POSTGIS( const sfcgal_prepared_geometry_t* g
 Datum sfcgal_intersects(PG_FUNCTION_ARGS);
 Datum sfcgal_intersects3D(PG_FUNCTION_ARGS);
 Datum sfcgal_intersection(PG_FUNCTION_ARGS);
+Datum sfcgal_difference3D(PG_FUNCTION_ARGS);
+Datum sfcgal_difference(PG_FUNCTION_ARGS);
+Datum sfcgal_union3D(PG_FUNCTION_ARGS);
+Datum sfcgal_union(PG_FUNCTION_ARGS);
+Datum sfcgal_volume(PG_FUNCTION_ARGS);
 Datum sfcgal_triangulate(PG_FUNCTION_ARGS);
 Datum sfcgal_area(PG_FUNCTION_ARGS);
 Datum sfcgal_distance(PG_FUNCTION_ARGS);
 Datum sfcgal_distance3D(PG_FUNCTION_ARGS);
+Datum sfcgal_make_solid(PG_FUNCTION_ARGS);
+Datum sfcgal_is_solid(PG_FUNCTION_ARGS);
 
 
 /* Initialize sfcgal with PostGIS error handlers */
diff --git a/postgis/lwgeom_spheroid.c b/postgis/lwgeom_spheroid.c
index 9bb42b0..41e7ed6 100644
--- a/postgis/lwgeom_spheroid.c
+++ b/postgis/lwgeom_spheroid.c
@@ -323,7 +323,7 @@ distance_ellipse_calculation(double lat1, double long1,
 PG_FUNCTION_INFO_V1(LWGEOM_length2d_ellipsoid);
 Datum LWGEOM_length2d_ellipsoid(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	SPHEROID *sphere = (SPHEROID *) PG_GETARG_POINTER(1);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	double dist = lwgeom_length_spheroid(lwgeom, sphere);
@@ -346,7 +346,7 @@ Datum LWGEOM_length2d_ellipsoid(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_length_ellipsoid_linestring);
 Datum LWGEOM_length_ellipsoid_linestring(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	SPHEROID *sphere = (SPHEROID *) PG_GETARG_POINTER(1);
 	double length = 0.0;
@@ -449,7 +449,7 @@ double distance_sphere_method(double lat1, double long1,double lat2,double long2
 
 	R  	= Geocent_a / (sqrt(1.0e0 - Geocent_e2 * sin2_lat));
 	/* 90 - lat1, but in radians */
-	S 	= R * sin(M_PI/2.0-lat1) ;
+	S 	= R * sin(M_PI_2 - lat1) ;
 
 	deltaX = long2 - long1;  /* in rads */
 	deltaY = lat2 - lat1;    /* in rads */
@@ -469,8 +469,8 @@ double distance_sphere_method(double lat1, double long1,double lat2,double long2
 PG_FUNCTION_INFO_V1(geometry_distance_spheroid);
 Datum geometry_distance_spheroid(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	GSERIALIZED *geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+	GSERIALIZED *geom1 = PG_GETARG_GSERIALIZED_P(0);
+	GSERIALIZED *geom2 = PG_GETARG_GSERIALIZED_P(1);
 	SPHEROID *sphere = (SPHEROID *)PG_GETARG_POINTER(2);
 	int type1 = gserialized_get_type(geom1);
 	int type2 = gserialized_get_type(geom2);
@@ -481,6 +481,8 @@ Datum geometry_distance_spheroid(PG_FUNCTION_ARGS)
 	/* Calculate some other parameters on the spheroid */
 	spheroid_init(sphere, sphere->a, sphere->b);
 
+	error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
+
 	/* Catch sphere special case and re-jig spheroid appropriately */
 	if ( ! use_spheroid )
 	{
@@ -501,13 +503,6 @@ Datum geometry_distance_spheroid(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
-
-	if (gserialized_get_srid(geom1) != gserialized_get_srid(geom2))
-	{
-		elog(ERROR, "geometry_distance_spheroid: Operation on two GEOMETRIES with different SRIDs\n");
-		PG_RETURN_NULL();
-	}
-
 	/* Get #LWGEOM structures */
 	lwgeom1 = lwgeom_from_gserialized(geom1);
 	lwgeom2 = lwgeom_from_gserialized(geom2);
diff --git a/postgis/lwgeom_sqlmm.c b/postgis/lwgeom_sqlmm.c
index cbccf1f..af59249 100644
--- a/postgis/lwgeom_sqlmm.c
+++ b/postgis/lwgeom_sqlmm.c
@@ -1,5 +1,4 @@
 /**********************************************************************
- * $Id: lwgeom_sqlmm.c 13134 2014-12-01 08:47:21Z strk $
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
@@ -37,7 +36,7 @@ Datum LWGEOM_line_desegmentize(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(LWGEOM_has_arc);
 Datum LWGEOM_has_arc(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	LWGEOM *lwgeom = lwgeom_from_gserialized(geom);
 	uint32 result = lwgeom_has_arc(lwgeom);
 	lwgeom_free(lwgeom);
@@ -53,7 +52,7 @@ Datum LWGEOM_has_arc(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_curve_segmentize);
 Datum LWGEOM_curve_segmentize(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	int32 perQuad = PG_GETARG_INT32(1);
 	GSERIALIZED *ret;
 	LWGEOM *igeom = NULL, *ogeom = NULL;
@@ -69,7 +68,7 @@ Datum LWGEOM_curve_segmentize(PG_FUNCTION_ARGS)
 	POSTGIS_DEBUGF(3, "perQuad = %d", perQuad);
 
 	igeom = lwgeom_from_gserialized(geom);
-	ogeom = lwgeom_segmentize(igeom, perQuad);
+	ogeom = lwgeom_stroke(igeom, perQuad);
 	lwgeom_free(igeom);
 	
 	if (ogeom == NULL) 
@@ -84,14 +83,14 @@ Datum LWGEOM_curve_segmentize(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_line_desegmentize);
 Datum LWGEOM_line_desegmentize(PG_FUNCTION_ARGS)
 {
-	GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	GSERIALIZED *geom = PG_GETARG_GSERIALIZED_P(0);
 	GSERIALIZED *ret;
 	LWGEOM *igeom = NULL, *ogeom = NULL;
 
 	POSTGIS_DEBUG(2, "LWGEOM_line_desegmentize.");
 
 	igeom = lwgeom_from_gserialized(geom);
-	ogeom = lwgeom_desegmentize(igeom);
+	ogeom = lwgeom_unstroke(igeom);
 	lwgeom_free(igeom);
 
 	if (ogeom == NULL)
diff --git a/postgis/lwgeom_transform.c b/postgis/lwgeom_transform.c
index cfedca5..f4711ed 100644
--- a/postgis/lwgeom_transform.c
+++ b/postgis/lwgeom_transform.c
@@ -46,7 +46,7 @@ Datum transform(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P_COPY(0);
 	input_srid = gserialized_get_srid(geom);
 	if ( input_srid == SRID_UNKNOWN )
 	{
@@ -118,7 +118,7 @@ Datum transform_geom(PG_FUNCTION_ARGS)
 		PG_RETURN_NULL();
 	}
 
-	geom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+	geom = PG_GETARG_GSERIALIZED_P_COPY(0);
 	if (gserialized_get_srid(geom) == SRID_UNKNOWN)
 	{
 		pfree(geom);
diff --git a/postgis/postgis.sql.in b/postgis/postgis.sql.in
index 0590591..c862be4 100644
--- a/postgis/postgis.sql.in
+++ b/postgis/postgis.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
--- $Id: postgis.sql.in 13462 2015-04-29 20:03:05Z robe $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
@@ -79,6 +78,7 @@ CREATE OR REPLACE FUNCTION spheroid_out(spheroid)
 	AS 'MODULE_PATHNAME','ellipsoid_out'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.5.0
 CREATE TYPE spheroid (
 	alignment = double,
 	internallength = 65,
@@ -126,6 +126,7 @@ CREATE OR REPLACE FUNCTION geometry_send(geometry)
 	AS 'MODULE_PATHNAME','LWGEOM_send'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE TYPE geometry (
 	internallength = variable,
 	input = geometry_in,
@@ -236,6 +237,7 @@ CREATE OR REPLACE FUNCTION box3d_out(box3d)
 	AS 'MODULE_PATHNAME', 'BOX3D_out'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE TYPE box3d (
 	alignment = double,
 	internallength = 52,
@@ -257,6 +259,7 @@ CREATE OR REPLACE FUNCTION box2d_out(box2d)
 	AS 'MODULE_PATHNAME','BOX2D_out'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.8.2
 CREATE TYPE box2d (
 	internallength = 65,
 	input = box2d_in,
@@ -359,36 +362,42 @@ CREATE OR REPLACE FUNCTION geometry_cmp(geom1 geometry, geom2 geometry)
 -- Sorting operators for Btree
 --
 
+-- Availability: 0.9.0
 CREATE OPERATOR < (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_lt,
 	COMMUTATOR = '>', NEGATOR = '>=',
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
+-- Availability: 0.9.0
 CREATE OPERATOR <= (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_le,
 	COMMUTATOR = '>=', NEGATOR = '>',
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
+-- Availability: 0.9.0
 CREATE OPERATOR = (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_eq,
 	COMMUTATOR = '=', -- we might implement a faster negator here
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
+-- Availability: 0.9.0
 CREATE OPERATOR >= (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_ge,
 	COMMUTATOR = '<=', NEGATOR = '<',
 	RESTRICT = contsel, JOIN = contjoinsel
 );
+
+-- Availability: 0.9.0
 CREATE OPERATOR > (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_gt,
 	COMMUTATOR = '<', NEGATOR = '<=',
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
-
+-- Availability: 0.9.0
 CREATE OPERATOR CLASS btree_geometry_ops
 	DEFAULT FOR TYPE geometry USING btree AS
 	OPERATOR	1	< ,
@@ -525,6 +534,8 @@ CREATE OR REPLACE FUNCTION geometry_overlaps(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME' ,'gserialized_overlaps_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
+-- Changed: 2.0.0 use gserialized selectivity estimators
 CREATE OPERATOR && (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overlaps,
 	COMMUTATOR = '&&',
@@ -538,21 +549,29 @@ CREATE OR REPLACE FUNCTION geometry_same(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME' ,'gserialized_same_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR ~= (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_same,
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
+-- As of 2.2.0 this no longer returns the centroid/centroid distance, it 
+-- returns the actual distance, to support the 'recheck' functionality
+-- enabled in the KNN operator
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_distance_centroid(geom1 geometry, geom2 geometry) 
 	RETURNS float8 
-	AS 'MODULE_PATHNAME' ,'gserialized_distance_centroid_2d'
+#if POSTGIS_PGSQL_VERSION >= 95
+  AS 'MODULE_PATHNAME' ,'distance'
+#else
+  AS 'MODULE_PATHNAME' ,'gserialized_distance_centroid_2d'
+#endif
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_distance_box(geom1 geometry, geom2 geometry) 
 	RETURNS float8 
-	AS 'MODULE_PATHNAME' ,'gserialized_distance_box_2d'
+  AS 'MODULE_PATHNAME' ,'gserialized_distance_box_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Availability: 2.0.0
@@ -579,12 +598,14 @@ CREATE OR REPLACE FUNCTION geometry_within(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'gserialized_within_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR @ (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_within,
 	COMMUTATOR = '~',
 	RESTRICT = contsel, JOIN = contjoinsel
 );
 
+-- Availability: 0.1.0
 CREATE OPERATOR ~ (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_contains,
 	COMMUTATOR = '@',
@@ -597,6 +618,7 @@ CREATE OR REPLACE FUNCTION geometry_left(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'gserialized_left_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR << (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_left,
 	COMMUTATOR = '>>',
@@ -609,6 +631,7 @@ CREATE OR REPLACE FUNCTION geometry_overleft(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'gserialized_overleft_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR &< (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overleft,
 	COMMUTATOR = '&>',
@@ -621,6 +644,7 @@ CREATE OR REPLACE FUNCTION geometry_below(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'gserialized_below_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR <<| (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_below,
 	COMMUTATOR = '|>>',
@@ -633,6 +657,7 @@ CREATE OR REPLACE FUNCTION geometry_overbelow(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'gserialized_overbelow_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR &<| (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overbelow,
 	COMMUTATOR = '|&>',
@@ -645,6 +670,7 @@ CREATE OR REPLACE FUNCTION geometry_overright(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'gserialized_overright_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR &> (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overright,
 	COMMUTATOR = '&<',
@@ -657,6 +683,7 @@ CREATE OR REPLACE FUNCTION geometry_right(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'gserialized_right_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR >> (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_right,
 	COMMUTATOR = '<<',
@@ -669,6 +696,7 @@ CREATE OR REPLACE FUNCTION geometry_overabove(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'gserialized_overabove_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR |&> (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overabove,
 	COMMUTATOR = '&<|',
@@ -681,6 +709,7 @@ CREATE OR REPLACE FUNCTION geometry_above(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'gserialized_above_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 0.1.0
 CREATE OPERATOR |>> (
 	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_above,
 	COMMUTATOR = '<<|',
@@ -786,6 +815,44 @@ CREATE OPERATOR &&& (
 	JOIN = gserialized_gist_joinsel_nd	
 );
 
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION geometry_distance_centroid_nd(geometry,geometry)
+	RETURNS float8
+	AS 'MODULE_PATHNAME', 'gserialized_distance_nd'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- Availability: 2.2.0
+CREATE OPERATOR <<->> (
+    LEFTARG = geometry, RIGHTARG = geometry,
+    PROCEDURE = geometry_distance_centroid_nd,
+    COMMUTATOR = '<<->>'
+);
+
+--
+-- This is for use with |=| operator, which does not directly use
+-- ST_DistanceCPA just in case it'll ever need to change behavior
+-- (operators definition cannot be altered)
+--
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION geometry_distance_cpa(geometry, geometry)
+	RETURNS float8
+	AS 'MODULE_PATHNAME', 'ST_DistanceCPA'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- Availability: 2.2.0
+CREATE OPERATOR |=| (
+    LEFTARG = geometry, RIGHTARG = geometry,
+    PROCEDURE = geometry_distance_cpa,
+    COMMUTATOR = '|=|'
+);
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION geometry_gist_distance_nd(internal,geometry,int4)
+	RETURNS float8
+	AS 'MODULE_PATHNAME', 'gserialized_gist_distance'
+	LANGUAGE 'c';
+
+
 -- Availability: 2.0.0
 CREATE OPERATOR CLASS gist_geometry_ops_nd
 	FOR TYPE geometry USING GIST AS
@@ -794,6 +861,16 @@ CREATE OPERATOR CLASS gist_geometry_ops_nd
 --	OPERATOR        6        ~=	,
 --	OPERATOR        7        ~	,
 --	OPERATOR        8        @	,
+#if POSTGIS_PGSQL_VERSION >= 91
+	-- Availability: 2.2.0
+	OPERATOR        13       <<->> FOR ORDER BY pg_catalog.float_ops,
+#if POSTGIS_PGSQL_VERSION >= 95
+	-- Availability: 2.2.0
+	OPERATOR        20       |=| FOR ORDER BY pg_catalog.float_ops,
+#endif
+	-- Availability: 2.2.0
+	FUNCTION        8        geometry_gist_distance_nd (internal, geometry, int4),
+#endif
 	FUNCTION        1        geometry_gist_consistent_nd (internal, geometry, int4),
 	FUNCTION        2        geometry_gist_union_nd (bytea, internal),
 	FUNCTION        3        geometry_gist_compress_nd (internal),
@@ -803,94 +880,20 @@ CREATE OPERATOR CLASS gist_geometry_ops_nd
 	FUNCTION        7        geometry_gist_same_nd (geometry, geometry, internal);
 
 
------------------------------------------------------------------------------
--- Affine transforms
------------------------------------------------------------------------------
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8)
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_ShiftLongitude(geometry)
 	RETURNS geometry
-	AS 'MODULE_PATHNAME', 'LWGEOM_affine'
+	AS 'MODULE_PATHNAME', 'LWGEOM_longitude_shift'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Affine($1,  $2, $3, 0,  $4, $5, 0,  0, 0, 1,  $6, $7, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Affine($1,  cos($2), -sin($2), 0,  sin($2), cos($2), 0,  0, 0, 1,  0, 0, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 2.0.0
-CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8,float8,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Affine($1,  cos($2), -sin($2), 0,  sin($2),  cos($2), 0, 0, 0, 1,	$3 - cos($2) * $3 + sin($2) * $4, $4 - sin($2) * $3 - cos($2) * $4, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 2.0.0
-CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8,geometry)
-	RETURNS geometry
-	AS 'SELECT ST_Affine($1,  cos($2), -sin($2), 0,  sin($2),  cos($2), 0, 0, 0, 1, ST_X($3) - cos($2) * ST_X($3) + sin($2) * ST_Y($3), ST_Y($3) - sin($2) * ST_X($3) - cos($2) * ST_Y($3), 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_RotateZ(geometry,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Rotate($1, $2)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_RotateX(geometry,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_RotateY(geometry,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Affine($1,  cos($2), 0, sin($2),  0, 1, 0,  -sin($2), 0, cos($2), 0,  0, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Translate($1, $2, $3, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Affine($1,  $2, 0, 0,  0, $3, 0,  0, 0, $4,  0, 0, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Scale($1, $2, $3, 1)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Transscale(geometry,float8,float8,float8,float8)
-	RETURNS geometry
-	AS 'SELECT ST_Affine($1,  $4, 0, 0,  0, $5, 0,
-		0, 0, 1,  $2 * $4, $3 * $5, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- Availability: 1.2.2
+-- Deprecation in 2.2.0
 CREATE OR REPLACE FUNCTION ST_Shift_Longitude(geometry)
-	RETURNS geometry
-	AS 'MODULE_PATHNAME', 'LWGEOM_longitude_shift'
-	LANGUAGE 'c' IMMUTABLE STRICT;
+	RETURNS geometry AS
+  $$ SELECT _postgis_deprecate('ST_Shift_Longitude', 'ST_ShiftLongitude', '2.2.0');
+    SELECT ST_ShiftLongitude($1);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 -----------------------------------------------------------------------------
 --  BOX3D FUNCTIONS
@@ -945,7 +948,7 @@ CREATE OR REPLACE FUNCTION ST_expand(box2d,float8)
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION postgis_getbbox(geometry)
 	RETURNS box2d
-	AS 'MODULE_PATHNAME','LWGEOM_to_BOX2D'
+	AS 'MODULE_PATHNAME','LWGEOM_to_BOX2DF'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Availability: 1.2.2
@@ -954,13 +957,6 @@ CREATE OR REPLACE FUNCTION ST_MakeBox2d(geom1 geometry, geom2 geometry)
 	AS 'MODULE_PATHNAME', 'BOX2D_construct'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Combine_BBox(box2d,geometry)
-	RETURNS box2d
-	AS 'MODULE_PATHNAME', 'BOX2D_combine'
-	LANGUAGE 'c' IMMUTABLE;
-
 -----------------------------------------------------------------------
 -- ST_ESTIMATED_EXTENT( <schema name>, <table name>, <column name> )
 -----------------------------------------------------------------------
@@ -1003,15 +999,15 @@ CREATE OR REPLACE FUNCTION ST_estimated_extent(text,text) RETURNS box2d AS
 -----------------------------------------------------------------------
 -- FIND_EXTENT( <schema name>, <table name>, <column name> )
 -----------------------------------------------------------------------
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_find_extent(text,text,text) RETURNS box2d AS
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_FindExtent(text,text,text) RETURNS box2d AS
 $$
 DECLARE
 	schemaname alias for $1;
 	tablename alias for $2;
 	columnname alias for $3;
 	myrec RECORD;
-
 BEGIN
 	FOR myrec IN EXECUTE 'SELECT ST_Extent("' || columnname || '") As extent FROM "' || schemaname || '"."' || tablename || '"' LOOP
 		return myrec.extent;
@@ -1020,12 +1016,20 @@ END;
 $$
 LANGUAGE 'plpgsql' IMMUTABLE STRICT;
 
+-- Availability: 1.2.2
+-- Deprecation in 2.2.0
+CREATE OR REPLACE FUNCTION ST_find_extent(text,text,text) RETURNS box2d AS
+  $$ SELECT _postgis_deprecate('ST_Find_Extent', 'ST_FindExtent', '2.2.0');
+    SELECT ST_FindExtent($1,$2,$3);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 -----------------------------------------------------------------------
 -- FIND_EXTENT( <table name>, <column name> )
 -----------------------------------------------------------------------
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_find_extent(text,text) RETURNS box2d AS
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_FindExtent(text,text) RETURNS box2d AS
 $$
 DECLARE
 	tablename alias for $1;
@@ -1040,6 +1044,13 @@ END;
 $$
 LANGUAGE 'plpgsql' IMMUTABLE STRICT;
 
+-- Availability: 1.2.2
+-- Deprecation in 2.2.0
+CREATE OR REPLACE FUNCTION ST_find_extent(text,text) RETURNS box2d AS
+  $$ SELECT _postgis_deprecate('ST_Find_Extent', 'ST_FindExtent', '2.2.0');
+    SELECT ST_FindExtent($1,$2);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 -------------------------------------------
 -- other lwgeom functions
@@ -1066,13 +1077,23 @@ CREATE OR REPLACE FUNCTION postgis_hasbbox(geometry)
 ------------------------------------------------------------------------
 -- DEBUG
 ------------------------------------------------------------------------
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_mem_size(geometry)
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_MemSize(geometry)
 	RETURNS int4
 	AS 'MODULE_PATHNAME', 'LWGEOM_mem_size'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Availability: 1.2.2
+-- Deprecation in 2.2.0
+CREATE OR REPLACE FUNCTION ST_mem_size(geometry)
+	RETURNS int4 AS
+  $$ SELECT _postgis_deprecate('ST_Mem_Size', 'ST_MemSize', '2.2.0');
+    SELECT ST_MemSize($1);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT SECURITY INVOKER;
+
+-- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_summary(geometry)
 	RETURNS text
 	AS 'MODULE_PATHNAME', 'LWGEOM_summary'
@@ -1111,28 +1132,50 @@ CREATE OR REPLACE FUNCTION ST_Length(geometry)
 	AS 'MODULE_PATHNAME', 'LWGEOM_length2d_linestring'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability in 2.2.0
+CREATE OR REPLACE FUNCTION ST_LengthSpheroid(geometry, spheroid)
+	RETURNS FLOAT8
+	AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
+	LANGUAGE 'c' IMMUTABLE STRICT
+	COST 100;
+
 -- this is a fake (for back-compatibility)
 -- uses 3d if 3d is available, 2d otherwise
 -- Availability: 2.0.0
+-- Deprecation in 2.2.0
 CREATE OR REPLACE FUNCTION ST_3DLength_spheroid(geometry, spheroid)
-	RETURNS FLOAT8
-	AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
-	LANGUAGE 'c' IMMUTABLE STRICT
+	RETURNS FLOAT8 AS
+  $$ SELECT _postgis_deprecate('ST_3DLength_Spheroid', 'ST_LengthSpheroid', '2.2.0');
+    SELECT ST_LengthSpheroid($1,$2);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT
 	COST 100;
 
+
 -- Availability: 1.2.2
+-- Deprecation in 2.2.0
 CREATE OR REPLACE FUNCTION ST_length_spheroid(geometry, spheroid)
+	RETURNS FLOAT8 AS
+  $$ SELECT _postgis_deprecate('ST_Length_Spheroid', 'ST_LengthSpheroid', '2.2.0');
+    SELECT ST_LengthSpheroid($1,$2);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_Length2DSpheroid(geometry, spheroid)
 	RETURNS FLOAT8
-	AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
+	AS 'MODULE_PATHNAME','LWGEOM_length2d_ellipsoid'
 	LANGUAGE 'c' IMMUTABLE STRICT
 	COST 100;
 
 -- Availability: 1.2.2
+-- Deprecation in 2.2.0
 CREATE OR REPLACE FUNCTION ST_length2d_spheroid(geometry, spheroid)
-	RETURNS FLOAT8
-	AS 'MODULE_PATHNAME','LWGEOM_length2d_ellipsoid'
-	LANGUAGE 'c' IMMUTABLE STRICT
-	COST 100;
+	RETURNS FLOAT8 AS
+  $$ SELECT _postgis_deprecate('ST_Length2D_Spheroid', 'ST_Length2DSpheroid', '2.2.0');
+    SELECT ST_Length2DSpheroid($1,$2);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION ST_3DPerimeter(geometry)
@@ -1165,13 +1208,22 @@ CREATE OR REPLACE FUNCTION ST_Area(geometry)
 	AS 'MODULE_PATHNAME','area'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_distance_spheroid(geom1 geometry, geom2 geometry,spheroid)
+-- Availability: 2.0.0
+CREATE OR REPLACE FUNCTION ST_DistanceSpheroid(geom1 geometry, geom2 geometry,spheroid)
 	RETURNS FLOAT8
 	AS 'MODULE_PATHNAME','LWGEOM_distance_ellipsoid'
 	LANGUAGE 'c' IMMUTABLE STRICT
 	COST 100;
 
+-- Availability: 1.2.2
+-- Deprecation in 2.2.0
+CREATE OR REPLACE FUNCTION ST_distance_spheroid(geom1 geometry, geom2 geometry,spheroid)
+	RETURNS FLOAT8 AS
+  $$ SELECT _postgis_deprecate('ST_Distance_Spheroid', 'ST_DistanceSpheroid', '2.2.0');
+    SELECT ST_DistanceSpheroid($1,$2,$3);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
 -- Minimum distance. 2d only.
 
 -- PostGIS equivalent function: distance(geom1 geometry, geom2 geometry)
@@ -1181,13 +1233,22 @@ CREATE OR REPLACE FUNCTION ST_Distance(geom1 geometry, geom2 geometry)
 	LANGUAGE 'c' IMMUTABLE STRICT
 	COST 100;
 
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_point_inside_circle(geometry,float8,float8,float8)
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_PointInsideCircle(geometry,float8,float8,float8)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'LWGEOM_inside_circle_point'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Availability: 1.2.2
+-- Deprecation in 2.2.0
+CREATE OR REPLACE FUNCTION ST_point_inside_circle(geometry,float8,float8,float8)
+	RETURNS bool AS
+  $$ SELECT _postgis_deprecate('ST_Point_Inside_Circle', 'ST_PointInsideCircle', '2.2.0');
+    SELECT ST_PointInsideCircle($1,$2,$3,$4);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_azimuth(geom1 geometry, geom2 geometry)
 	RETURNS float8
 	AS 'MODULE_PATHNAME', 'LWGEOM_azimuth'
@@ -1305,6 +1366,12 @@ CREATE OR REPLACE FUNCTION ST_Multi(geometry)
 	AS 'MODULE_PATHNAME', 'LWGEOM_force_multi'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_ForceCurve(geometry)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'LWGEOM_force_curve'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
 -- Availability: 2.1.0
 CREATE OR REPLACE FUNCTION ST_ForceSFS(geometry)
 	RETURNS geometry
@@ -1335,6 +1402,12 @@ CREATE OR REPLACE FUNCTION ST_Envelope(geometry)
 	AS 'MODULE_PATHNAME', 'LWGEOM_envelope'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_BoundingDiagonal(geom geometry, fits boolean DEFAULT false)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'ST_BoundingDiagonal'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Reverse(geometry)
 	RETURNS geometry
@@ -1370,6 +1443,18 @@ CREATE OR REPLACE FUNCTION ST_AsEWKT(geometry)
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asEWKT'
 	LANGUAGE 'c' IMMUTABLE STRICT;
+	
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_AsTWKB(geom geometry, prec int4 default NULL, prec_z int4 default NULL, prec_m int4 default NULL, with_sizes boolean default NULL, with_boxes boolean default NULL)
+	RETURNS bytea
+	AS 'MODULE_PATHNAME','TWKBFromLWGEOM'
+	LANGUAGE 'c' IMMUTABLE;
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_AsTWKB(geom geometry[], ids bigint[], prec int4 default NULL, prec_z int4 default NULL, prec_m int4 default NULL, with_sizes boolean default NULL, with_boxes boolean default NULL)
+	RETURNS bytea
+	AS 'MODULE_PATHNAME','TWKBFromLWGEOMArray'
+	LANGUAGE 'c' IMMUTABLE;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_AsEWKB(geometry)
@@ -1396,27 +1481,27 @@ CREATE OR REPLACE FUNCTION ST_AsEWKB(geometry,text)
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Availability: 2.0.0
-CREATE OR REPLACE FUNCTION ST_AsLatLonText(geometry, text)
+CREATE OR REPLACE FUNCTION ST_AsLatLonText(geom geometry, tmpl text DEFAULT '')
 	RETURNS text
 	AS 'MODULE_PATHNAME','LWGEOM_to_latlon'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
--- Availability: 2.0.0
-CREATE OR REPLACE FUNCTION ST_AsLatLonText(geometry)
-	RETURNS text
-	AS $$ SELECT ST_AsLatLonText($1, '') $$
-	LANGUAGE 'sql' IMMUTABLE STRICT;
-
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION GeomFromEWKB(bytea)
 	RETURNS geometry
-	AS 'MODULE_PATHNAME','LWGEOMFromWKB'
+	AS 'MODULE_PATHNAME','LWGEOMFromEWKB'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_GeomFromEWKB(bytea)
 	RETURNS geometry
-	AS 'MODULE_PATHNAME','LWGEOMFromWKB'
+	AS 'MODULE_PATHNAME','LWGEOMFromEWKB'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION ST_GeomFromTWKB(bytea)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME','LWGEOMFromTWKB'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Deprecation in 1.2.3
@@ -1546,6 +1631,18 @@ CREATE OR REPLACE FUNCTION ST_Polygonize (geometry[])
 	LANGUAGE 'c' IMMUTABLE STRICT
 	COST 100;
 
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION ST_ClusterIntersecting(geometry[])
+    RETURNS geometry[]
+    AS '$libdir/postgis-2.2', 'clusterintersecting_garray'
+    LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION ST_ClusterWithin(geometry[], float8)
+    RETURNS geometry[]
+    AS '$libdir/postgis-2.2', 'cluster_within_distance_garray'
+    LANGUAGE 'c' IMMUTABLE STRICT;
+
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_LineMerge(geometry)
 	RETURNS geometry
@@ -1553,7 +1650,101 @@ CREATE OR REPLACE FUNCTION ST_LineMerge(geometry)
 	LANGUAGE 'c' IMMUTABLE STRICT
 	COST 100;
 
+-----------------------------------------------------------------------------
+-- Affine transforms
+-----------------------------------------------------------------------------
 
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'LWGEOM_affine'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Affine($1,  $2, $3, 0,  $4, $5, 0,  0, 0, 1,  $6, $7, 0)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Affine($1,  cos($2), -sin($2), 0,  sin($2), cos($2), 0,  0, 0, 1,  0, 0, 0)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 2.0.0
+CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8,float8,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Affine($1,  cos($2), -sin($2), 0,  sin($2),  cos($2), 0, 0, 0, 1,	$3 - cos($2) * $3 + sin($2) * $4, $4 - sin($2) * $3 - cos($2) * $4, 0)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 2.0.0
+CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8,geometry)
+	RETURNS geometry
+	AS 'SELECT ST_Affine($1,  cos($2), -sin($2), 0,  sin($2),  cos($2), 0, 0, 0, 1, ST_X($3) - cos($2) * ST_X($3) + sin($2) * ST_Y($3), ST_Y($3) - sin($2) * ST_X($3) - cos($2) * ST_Y($3), 0)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_RotateZ(geometry,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Rotate($1, $2)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_RotateX(geometry,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_RotateY(geometry,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Affine($1,  cos($2), 0, sin($2),  0, 1, 0,  -sin($2), 0, cos($2), 0,  0, 0)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Translate($1, $2, $3, 0)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_Scale(geometry,geometry)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'ST_Scale'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8,float8)
+	RETURNS geometry
+	--AS 'SELECT ST_Affine($1,  $2, 0, 0,  0, $3, 0,  0, 0, $4,  0, 0, 0)'
+	AS 'SELECT ST_Scale($1, ST_MakePoint($2, $3, $4))'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Scale($1, $2, $3, 1)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-- Availability: 1.2.2
+CREATE OR REPLACE FUNCTION ST_Transscale(geometry,float8,float8,float8,float8)
+	RETURNS geometry
+	AS 'SELECT ST_Affine($1,  $4, 0, 0,  0, $5, 0,
+		0, 0, 1,  $2 * $4, $3 * $5, 0)'
+	LANGUAGE 'sql' IMMUTABLE STRICT;
+
+-----------------------------------------------------------------------
+-- Dumping
+-----------------------------------------------------------------------
+
+-- Availability: 1.0.0
 CREATE TYPE geometry_dump AS (
 	path integer[],
 	geom geometry
@@ -1898,7 +2089,7 @@ BEGIN
                     BEGIN
                         EXECUTE 'ALTER TABLE ONLY ' || quote_ident(gcs.nspname) || '.' || quote_ident(gcs.relname) || '
                         ADD CONSTRAINT ' || quote_ident('enforce_geotype_' || gcs.attname) || '
-                        CHECK ((geometrytype(' || quote_ident(gcs.attname) || ') = ' || quote_literal(gtype) || ') OR (' || quote_ident(gcs.attname) || ' IS NULL))';
+                        CHECK (geometrytype(' || quote_ident(gcs.attname) || ') = ' || quote_literal(gtype) || ')';
                         constraint_successful := true;
                     EXCEPTION
                         WHEN check_violation THEN
@@ -2460,7 +2651,6 @@ $$
 LANGUAGE 'plpgsql' IMMUTABLE STRICT;
 
 
-
 ---------------------------------------------------------------
 -- PROJ support
 ---------------------------------------------------------------
@@ -2555,6 +2745,8 @@ DECLARE
 	rast_scr_ver text;
 	topo_scr_ver text;
 	json_lib_ver text;
+	sfcgal_lib_ver text;
+	sfcgal_scr_ver text;
 BEGIN
 	SELECT postgis_lib_version() INTO libver;
 	SELECT postgis_proj_version() INTO projver;
@@ -2569,6 +2761,12 @@ BEGIN
 	END;
 	BEGIN
 		SELECT postgis_sfcgal_version() INTO sfcgalver;
+    BEGIN
+      SELECT postgis_sfcgal_scripts_installed() INTO sfcgal_scr_ver;
+    EXCEPTION
+      WHEN undefined_function THEN
+        sfcgal_scr_ver := 'missing';
+    END;
 	EXCEPTION
 		WHEN undefined_function THEN
 			sfcgalver := NULL;
@@ -2582,7 +2780,7 @@ BEGIN
 	EXCEPTION
 		WHEN undefined_function OR invalid_schema_name THEN
 			topo_scr_ver := NULL;
-			RAISE NOTICE 'Function postgis_topology_scripts_installed() not found. Is topology support enabled and topology.sql installed?';
+			RAISE DEBUG 'Function postgis_topology_scripts_installed() not found. Is topology support enabled and topology.sql installed?';
 		WHEN insufficient_privilege THEN
 			RAISE NOTICE 'Topology support cannot be inspected. Is current user granted USAGE on schema "topology" ?';
 		WHEN OTHERS THEN
@@ -2662,6 +2860,10 @@ BEGIN
 		fullver = fullver || ' (raster procs from "' || rast_scr_ver || '" need upgrade)';
 	END IF;
 
+	IF sfcgal_scr_ver IS NOT NULL AND sfcgal_scr_ver != relproc THEN
+    fullver = fullver || ' (sfcgal procs from "' || sfcgal_scr_ver || '" need upgrade)';
+	END IF;
+
 	RETURN fullver;
 END
 $$
@@ -2710,8 +2912,8 @@ CREATE OR REPLACE FUNCTION text(geometry)
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION box3dtobox(box3d)
 	RETURNS box
-	AS 'SELECT box($1)'
-	LANGUAGE 'sql' IMMUTABLE STRICT;
+	AS 'MODULE_PATHNAME','BOX3D_to_BOX'
+	LANGUAGE 'c' IMMUTABLE STRICT;
 
 CREATE OR REPLACE FUNCTION geometry(box2d)
 	RETURNS geometry
@@ -2767,6 +2969,24 @@ CREATE OR REPLACE FUNCTION ST_Simplify(geometry, float8)
 	AS 'MODULE_PATHNAME', 'LWGEOM_simplify2d'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_Simplify(geometry, float8, boolean)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'LWGEOM_simplify2d'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+	
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_SimplifyVW(geometry,  float8)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'LWGEOM_SetEffectiveArea'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+	
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_SetEffectiveArea(geometry,  float8 default -1, integer default 1)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'LWGEOM_SetEffectiveArea'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
 -- ST_SnapToGrid(input, xoff, yoff, xsize, ysize)
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_SnapToGrid(geometry, float8, float8, float8, float8)
@@ -2851,12 +3071,16 @@ CREATE OR REPLACE FUNCTION ST_line_locate_point(geom1 geometry, geom2 geometry)
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 -- Availability: 1.2.2
+-- Deprecation in 2.0.0 replaced by ST_LocateBetween
+-- TODO: switch to use of _postgis_deprecate() in 2.3.0 (or drop)
 CREATE OR REPLACE FUNCTION ST_locate_between_measures(geometry, float8, float8)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- Availability: 1.2.2
+-- Deprecation in 2.0.0 replaced by ST_LocateAlong
+-- TODO: switch to use of _postgis_deprecate() in 2.3.0 (or drop)
 CREATE OR REPLACE FUNCTION ST_locate_along_measure(geometry, float8)
 	RETURNS geometry
 	AS $$ SELECT ST_locate_between_measures($1, $2, $2) $$
@@ -2867,6 +3091,34 @@ CREATE OR REPLACE FUNCTION ST_AddMeasure(geometry, float8, float8)
 	RETURNS geometry 
 	AS 'MODULE_PATHNAME', 'ST_AddMeasure' 
 	LANGUAGE 'c' IMMUTABLE STRICT;
+
+---------------------------------------------------------------
+-- TEMPORAL
+---------------------------------------------------------------
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_ClosestPointOfApproach(geometry, geometry)
+	RETURNS float8 
+	AS 'MODULE_PATHNAME', 'ST_ClosestPointOfApproach' 
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_DistanceCPA(geometry, geometry)
+	RETURNS float8 
+	AS 'MODULE_PATHNAME', 'ST_DistanceCPA'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_CPAWithin(geometry, geometry, float8)
+	RETURNS bool
+	AS 'MODULE_PATHNAME', 'ST_CPAWithin'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_IsValidTrajectory(geometry)
+	RETURNS bool 
+	AS 'MODULE_PATHNAME', 'ST_IsValidTrajectory' 
+	LANGUAGE 'c' IMMUTABLE STRICT;
     
 ---------------------------------------------------------------
 -- GEOS
@@ -3058,13 +3310,30 @@ CREATE OR REPLACE FUNCTION ST_UnaryUnion(geometry)
 -- Only checks consecutive points for lineal and polygonal geoms.
 -- Checks all points for multipoint geoms.
 --
--- Availability: 2.0.0
-CREATE OR REPLACE FUNCTION ST_RemoveRepeatedPoints(geometry)
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_RemoveRepeatedPoints(geom geometry, tolerance float8 default 0.0)
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'ST_RemoveRepeatedPoints'
        LANGUAGE 'c' IMMUTABLE STRICT
        COST 100;
 
+-- Requires GEOS >= 3.5.0
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_ClipByBox2d(geom geometry, box box2d)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'ST_ClipByBox2d'
+	LANGUAGE 'c' IMMUTABLE STRICT
+	COST 50;
+
+-- Requires GEOS >= 3.5.0
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_Subdivide(geom geometry, maxvertices integer DEFAULT 256)
+	RETURNS setof geometry
+	AS 'MODULE_PATHNAME', 'ST_Subdivide'
+	LANGUAGE 'c' IMMUTABLE STRICT
+	COST 100;
+
+
 --------------------------------------------------------------------------------
 -- ST_CleanGeometry / ST_MakeValid
 --------------------------------------------------------------------------------
@@ -3231,15 +3500,41 @@ CREATE OR REPLACE FUNCTION ST_DelaunayTriangles(g1 geometry, tolerance float8 DE
 --------------------------------------------------------------------------------
 
 ------------------------------------------------------------------------
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_Combine_BBox(box3d,geometry)
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_CombineBBox(box3d,geometry)
 	RETURNS box3d
 	AS 'MODULE_PATHNAME', 'BOX3D_combine'
 	LANGUAGE 'c' IMMUTABLE;
 
 -- Availability: 1.2.2
+-- Deprecation in 2.2.0
+CREATE OR REPLACE FUNCTION ST_Combine_BBox(box3d,geometry)
+	RETURNS box3d AS
+  $$ SELECT _postgis_deprecate('ST_Combine_BBox', 'ST_CombineBbox', '2.2.0');
+    SELECT ST_CombineBbox($1,$2);
+  $$
+	LANGUAGE 'sql' IMMUTABLE;
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_CombineBbox(box2d,geometry)
+	RETURNS box2d
+	AS 'MODULE_PATHNAME', 'BOX2D_combine'
+	LANGUAGE 'c' IMMUTABLE;
+
+-- Availability: 1.2.2
+-- Deprecation in 2.2.0
+CREATE OR REPLACE FUNCTION ST_Combine_BBox(box2d,geometry)
+	RETURNS box2d AS
+  $$ SELECT _postgis_deprecate('ST_Combine_BBox', 'ST_CombineBbox', '2.2.0');
+    SELECT ST_CombineBbox($1,$2);
+  $$
+	LANGUAGE 'sql' IMMUTABLE;
+
+
+-- Availability: 1.2.2
 CREATE AGGREGATE ST_Extent(
-	sfunc = ST_combine_bbox,
+	sfunc = ST_CombineBBox,
 	finalfunc = box2d,
 	basetype = geometry,
 	stype = box3d
@@ -3247,7 +3542,7 @@ CREATE AGGREGATE ST_Extent(
 
 -- Availability: 2.0.0
 CREATE AGGREGATE ST_3DExtent(
-	sfunc = ST_combine_bbox,
+	sfunc = ST_CombineBBox,
 	basetype = geometry,
 	stype = box3d
 	);
@@ -3293,8 +3588,9 @@ CREATE OR REPLACE FUNCTION pgis_abs_out(pgis_abs)
 	AS 'MODULE_PATHNAME'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 1.4.0
 CREATE TYPE pgis_abs (
-	internallength = 8,
+	internallength = 16,
 	input = pgis_abs_in,
 	output = pgis_abs_out,
 	alignment = double
@@ -3306,6 +3602,12 @@ CREATE OR REPLACE FUNCTION pgis_geometry_accum_transfn(pgis_abs, geometry)
 	AS 'MODULE_PATHNAME'
 	LANGUAGE 'c';
 
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION pgis_geometry_accum_transfn(pgis_abs, geometry, float8)
+	RETURNS pgis_abs
+	AS 'MODULE_PATHNAME'
+	LANGUAGE 'c';
+
 -- Availability: 1.4.0
 CREATE OR REPLACE FUNCTION pgis_geometry_accum_finalfn(pgis_abs)
 	RETURNS geometry[]
@@ -3330,6 +3632,18 @@ CREATE OR REPLACE FUNCTION pgis_geometry_polygonize_finalfn(pgis_abs)
 	AS 'MODULE_PATHNAME'
 	LANGUAGE 'c';
 
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION pgis_geometry_clusterintersecting_finalfn(pgis_abs)
+	RETURNS geometry[]
+	AS 'MODULE_PATHNAME'
+	LANGUAGE 'c';
+
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION pgis_geometry_clusterwithin_finalfn(pgis_abs)
+	RETURNS geometry[]
+	AS 'MODULE_PATHNAME'
+	LANGUAGE 'c';
+
 -- Availability: 1.4.0
 CREATE OR REPLACE FUNCTION pgis_geometry_makeline_finalfn(pgis_abs)
 	RETURNS geometry
@@ -3366,6 +3680,21 @@ CREATE AGGREGATE ST_Collect (
 	FINALFUNC = pgis_geometry_collect_finalfn
 	);
 
+-- Availability: 2.2
+CREATE AGGREGATE ST_ClusterIntersecting (
+	BASETYPE = geometry,
+	SFUNC = pgis_geometry_accum_transfn,
+	STYPE = pgis_abs,
+	FINALFUNC = pgis_geometry_clusterintersecting_finalfn
+	);
+
+-- Availability: 2.2
+CREATE AGGREGATE ST_ClusterWithin (geometry, float8) (
+	SFUNC = pgis_geometry_accum_transfn,
+	STYPE = pgis_abs,
+	FINALFUNC = pgis_geometry_clusterwithin_finalfn
+	);
+
 -- Availability: 1.2.2
 CREATE AGGREGATE ST_Polygonize (
 	BASETYPE = geometry,
@@ -3477,7 +3806,7 @@ CREATE OR REPLACE FUNCTION _ST_Contains(geom1 geometry, geom2 geometry)
 -- Inlines index magic
 CREATE OR REPLACE FUNCTION ST_Contains(geom1 geometry, geom2 geometry)
 	RETURNS boolean
-	AS 'SELECT $1 && $2 AND _ST_Contains($1,$2)'
+	AS 'SELECT $1 ~ $2 AND _ST_Contains($1,$2)'
 	LANGUAGE 'sql' IMMUTABLE;
 
 -- Availability: 1.2.2
@@ -3490,7 +3819,7 @@ CREATE OR REPLACE FUNCTION _ST_CoveredBy(geom1 geometry, geom2 geometry)
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_CoveredBy(geom1 geometry, geom2 geometry)
 	RETURNS boolean
-	AS 'SELECT $1 && $2 AND _ST_CoveredBy($1,$2)'
+	AS 'SELECT $1 @ $2 AND _ST_CoveredBy($1,$2)'
 	LANGUAGE 'sql' IMMUTABLE;
 
 -- Availability: 1.2.2
@@ -3504,7 +3833,7 @@ CREATE OR REPLACE FUNCTION _ST_Covers(geom1 geometry, geom2 geometry)
 -- Inlines index magic
 CREATE OR REPLACE FUNCTION ST_Covers(geom1 geometry, geom2 geometry)
 	RETURNS boolean
-	AS 'SELECT $1 && $2 AND _ST_Covers($1,$2)'
+	AS 'SELECT $1 ~ $2 AND _ST_Covers($1,$2)'
 	LANGUAGE 'sql' IMMUTABLE;
 
 -- Availability: 1.4.0
@@ -3518,7 +3847,7 @@ CREATE OR REPLACE FUNCTION _ST_ContainsProperly(geom1 geometry, geom2 geometry)
 -- Inlines index magic
 CREATE OR REPLACE FUNCTION ST_ContainsProperly(geom1 geometry, geom2 geometry)
 	RETURNS boolean
-	AS 'SELECT $1 && $2 AND _ST_ContainsProperly($1,$2)'
+	AS 'SELECT $1 ~ $2 AND _ST_ContainsProperly($1,$2)'
 	LANGUAGE 'sql' IMMUTABLE;
 
 -- PostGIS equivalent function: overlaps(geom1 geometry, geom2 geometry)
@@ -3538,7 +3867,7 @@ CREATE OR REPLACE FUNCTION _ST_Within(geom1 geometry, geom2 geometry)
 -- Inlines index magic
 CREATE OR REPLACE FUNCTION ST_Within(geom1 geometry, geom2 geometry)
 	RETURNS boolean
-	AS 'SELECT $1 && $2 AND _ST_Contains($2,$1)'
+	AS 'SELECT $2 ~ $1 AND _ST_Contains($2,$1)'
 	LANGUAGE 'sql' IMMUTABLE;
 
 -- Availability: 1.2.2
@@ -3660,6 +3989,30 @@ CREATE OR REPLACE FUNCTION postgis_libjson_version()
 	AS 'MODULE_PATHNAME','postgis_libjson_version'
 	LANGUAGE 'c' IMMUTABLE STRICT;
 
+----------------------------------------------------------------------
+-- ENCODED POLYLINE INPUT
+-----------------------------------------------------------------------
+-- Availability: 2.2.0
+-- ST_LineFromEncodedPolyline(polyline text, precision int4)
+CREATE OR REPLACE FUNCTION ST_LineFromEncodedPolyline(text, int4 DEFAULT 5)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME','line_from_encoded_polyline'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+------------------------------------------------------------------------
+
+----------------------------------------------------------------------
+-- ENCODED POLYLINE OUTPUT
+-----------------------------------------------------------------------
+-- Availability: 2.2.0
+-- ST_AsEncodedPolyline(geom geometry, precision int4)
+CREATE OR REPLACE FUNCTION ST_AsEncodedPolyline(geom geometry, int4 DEFAULT 5)
+	RETURNS TEXT
+	AS 'MODULE_PATHNAME','LWGEOM_asEncodedPolyline'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+------------------------------------------------------------------------
+
 -----------------------------------------------------------------------
 -- SVG OUTPUT
 -----------------------------------------------------------------------
@@ -3733,24 +4086,25 @@ CREATE OR REPLACE FUNCTION ST_AsKML(version int4, geom geometry, maxdecimaldigit
 -- GEOJSON OUTPUT
 -- Availability: 1.3.4
 -----------------------------------------------------------------------
--- _ST_AsGeoJson(version, geom, precision, options)
-CREATE OR REPLACE FUNCTION _ST_AsGeoJson(int4, geometry, int4, int4)
-	RETURNS TEXT
-	AS 'MODULE_PATHNAME','LWGEOM_asGeoJson'
-	LANGUAGE 'c' IMMUTABLE STRICT;
 
 -- ST_AsGeoJson(geom, precision, options) / version=1
 -- Changed 2.0.0 to use default args and named args
 CREATE OR REPLACE FUNCTION ST_AsGeoJson(geom geometry, maxdecimaldigits int4 DEFAULT 15, options int4 DEFAULT 0)
 	RETURNS TEXT
-	AS $$ SELECT _ST_AsGeoJson(1, $1, $2, $3); $$
+	AS 'MODULE_PATHNAME','LWGEOM_asGeoJson'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- _ST_AsGeoJson(version, geom, precision, options)
+CREATE OR REPLACE FUNCTION _ST_AsGeoJson(int4, geometry, int4, int4)
+	RETURNS TEXT
+	AS $$ SELECT ST_AsGeoJson($2::geometry, $3::int4, $4::int4); $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 -- ST_AsGeoJson(version, geom, precision,options)
 -- Changed 2.0.0 to use default args and named args
 CREATE OR REPLACE FUNCTION ST_AsGeoJson(gj_version int4, geom geometry, maxdecimaldigits int4 DEFAULT 15, options int4 DEFAULT 0)
 	RETURNS TEXT
-	AS $$ SELECT _ST_AsGeoJson($1, $2, $3, $4); $$
+	AS $$ SELECT ST_AsGeoJson($2::geometry, $3::int4, $4::int4); $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 ------------------------------------------------------------------------
@@ -4441,6 +4795,15 @@ CREATE OR REPLACE FUNCTION ST_DFullyWithin(geom1 geometry, geom2 geometry, float
 	AS 'SELECT $1 && ST_Expand($2,$3) AND $2 && ST_Expand($1,$3) AND _ST_DFullyWithin(ST_ConvexHull($1), ST_ConvexHull($2), $3)'
 	LANGUAGE 'sql' IMMUTABLE; 
 	
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_SwapOrdinates(geom geometry, ords cstring)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'ST_SwapOrdinates'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
+-- NOTE: same as ST_SwapOrdinates(geometry, 'xy')
+--       but slightly faster in that it doesn't need to parse ordinate
+--       spec strings
 CREATE OR REPLACE FUNCTION ST_FlipCoordinates(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_FlipCoordinates'
@@ -4532,9 +4895,8 @@ LANGUAGE 'plpgsql' IMMUTABLE STRICT;
 #include "geography.sql.in"
 
 
-
--- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_distance_sphere(geom1 geometry, geom2 geometry)
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_DistanceSphere(geom1 geometry, geom2 geometry)
 	RETURNS FLOAT8
 	AS $$
 	select st_distance(geography($1),geography($2),false)
@@ -4542,6 +4904,16 @@ CREATE OR REPLACE FUNCTION ST_distance_sphere(geom1 geometry, geom2 geometry)
 	LANGUAGE 'sql' IMMUTABLE STRICT
 	COST 300;
 
+-- Availability: 1.2.2
+-- Deprecation in 2.2.0
+CREATE OR REPLACE FUNCTION ST_distance_sphere(geom1 geometry, geom2 geometry)
+	RETURNS FLOAT8 AS
+  $$ SELECT _postgis_deprecate('ST_Distance_Sphere', 'ST_DistanceSphere', '2.2.0');
+    SELECT ST_DistanceSphere($1,$2);
+  $$
+	LANGUAGE 'sql' IMMUTABLE STRICT
+	COST 300;
+
 ---------------------------------------------------------------
 -- GEOMETRY_COLUMNS view support functions
 ---------------------------------------------------------------
@@ -4638,6 +5010,8 @@ $$
 $$
 LANGUAGE 'sql' IMMUTABLE STRICT COST 200;
 
+-- Availability: 2.0.0
+-- Deprecation in 2.2.0
 CREATE OR REPLACE FUNCTION postgis_constraint_srid(geomschema text, geomtable text, geomcolumn text) RETURNS integer AS
 $$
 SELECT replace(replace(split_part(s.consrc, ' = ', 2), ')', ''), '(', '')::integer
@@ -4653,6 +5027,8 @@ SELECT replace(replace(split_part(s.consrc, ' = ', 2), ')', ''), '(', '')::integ
 $$
 LANGUAGE 'sql' STABLE STRICT;
 
+-- Availability: 2.0.0
+-- Deprecation in 2.2.0
 CREATE OR REPLACE FUNCTION postgis_constraint_dims(geomschema text, geomtable text, geomcolumn text) RETURNS integer AS
 $$
 SELECT  replace(split_part(s.consrc, ' = ', 2), ')', '')::integer
@@ -4670,6 +5046,8 @@ LANGUAGE 'sql' STABLE STRICT;
 
 -- support function to pull out geometry type from constraint check
 -- will return pretty name instead of ugly name
+-- Availability: 2.0.0
+-- Deprecation in 2.2.0
 CREATE OR REPLACE FUNCTION postgis_constraint_type(geomschema text, geomtable text, geomcolumn text) RETURNS varchar AS
 $$
 SELECT  replace(split_part(s.consrc, '''', 2), ')', '')::varchar		
@@ -4687,13 +5065,12 @@ LANGUAGE 'sql' STABLE STRICT;
 
 -- Availability: 2.0.0
 -- Changed: 2.1.8 significant performance improvement for constraint based columns
+-- Changed: 2.2.0 get rid of scheman, table, column cast to improve performance
 CREATE OR REPLACE VIEW geometry_columns AS 
  SELECT current_database()::character varying(256) AS f_table_catalog,
--- TODO: consider getting rid of CASTING it slows things down by 2 to 6 fold for table/column exact matches.  
---      Geography doesn't have casting by the way
-    n.nspname::varchar(256) AS f_table_schema,
-    c.relname::varchar(256) AS f_table_name,
-    a.attname::varchar(256) AS f_geometry_column,
+    n.nspname AS f_table_schema,
+    c.relname AS f_table_name,
+    a.attname AS f_geometry_column,
     COALESCE(postgis_typmod_dims(a.atttypmod), sn.ndims, 2) AS coord_dimension,
     COALESCE(NULLIF(postgis_typmod_srid(a.atttypmod), 0), sr.srid, 0) AS srid,
     replace(replace(COALESCE(NULLIF(upper(postgis_typmod_type(a.atttypmod)), 'GEOMETRY'::text), st.type, 'GEOMETRY'::text), 'ZM'::text, ''::text), 'Z'::text, ''::text)::character varying(30) AS type
@@ -4726,6 +5103,7 @@ CREATE OR REPLACE VIEW geometry_columns AS
   AND NOT c.relname = 'raster_columns'::name AND t.typname = 'geometry'::name 
   AND NOT pg_is_other_temp_schema(c.relnamespace) AND has_table_privilege(c.oid, 'SELECT'::text);
 
+
 -- TODO: support RETURNING and raise a WARNING
 CREATE OR REPLACE RULE geometry_columns_insert AS
         ON INSERT TO geometry_columns
@@ -4868,7 +5246,7 @@ CREATE OR REPLACE FUNCTION ST_OrderingEquals(GeometryA geometry, GeometryB geome
 	AS $$ 
 	SELECT $1 ~= $2 AND _ST_OrderingEquals($1, $2)
 	$$	
-	LANGUAGE 'sql' IMMUTABLE STRICT; 
+	LANGUAGE 'sql' IMMUTABLE; 
 	
 -------------------------------------------------------------------------------
 -- SQL/MM - SQL Functions on type ST_Point
diff --git a/postgis/postgis_drop_after.sql b/postgis/postgis_drop_after.sql
index 4e8b368..12e0530 100644
--- a/postgis/postgis_drop_after.sql
+++ b/postgis/postgis_drop_after.sql
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
--- $Id: postgis_drop_after.sql 13134 2014-12-01 08:47:21Z strk $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
@@ -138,6 +137,7 @@ DROP FUNCTION IF EXISTS st_geometry_ge(geometry, geometry);
 DROP FUNCTION IF EXISTS st_geometry_eq(geometry, geometry);
 DROP FUNCTION IF EXISTS st_geometry_cmp(geometry, geometry);
 DROP FUNCTION IF EXISTS SnapToGrid(geometry, float8, float8);
+DROP FUNCTION IF EXISTS st_removerepeatedpoints(geometry);
 
 DROP FUNCTION IF EXISTS geometry_gist_sel_2d (internal, oid, internal, int4);
 DROP FUNCTION IF EXISTS geometry_gist_joinsel_2d(internal, oid, internal, smallint);
@@ -146,3 +146,4 @@ DROP FUNCTION IF EXISTS geography_gist_join_selectivity(internal, oid, internal,
 
 DROP FUNCTION IF EXISTS ST_AsBinary(text); -- deprecated in 2.0
 DROP FUNCTION IF EXISTS postgis_uses_stats(); -- deprecated in 2.0
+
diff --git a/postgis/postgis_drop_before.sql b/postgis/postgis_drop_before.sql
index 8fa7cbc..8e63186 100644
--- a/postgis/postgis_drop_before.sql
+++ b/postgis/postgis_drop_before.sql
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
--- $Id$
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
@@ -59,3 +58,13 @@ BEGIN
 	END IF;
 END;
 $$ ;
+
+-- Going from multiple functions to default args
+-- Need to drop old multiple variants to not get in trouble.
+DROP FUNCTION IF EXISTS ST_AsLatLonText(geometry);
+DROP FUNCTION IF EXISTS ST_AsLatLonText(geometry, text);
+DROP FUNCTION IF EXISTS ST_AsTWKB(geometry,int4);
+DROP FUNCTION IF EXISTS ST_AsTWKB(geometry,int4,int8);
+DROP FUNCTION IF EXISTS ST_AsTWKB(geometry,int4,int8,boolean);
+
+DROP VIEW IF EXISTS geometry_columns; -- removed cast 2.2.0 so need to recreate
diff --git a/postgis/postgis_module.c b/postgis/postgis_module.c
index cefb7d4..d1d0866 100644
--- a/postgis/postgis_module.c
+++ b/postgis/postgis_module.c
@@ -32,13 +32,11 @@ static pqsigfunc coreIntHandler = 0;
 static void handleInterrupt(int sig);
 
 #ifdef WIN32
-#if POSTGIS_GEOS_VERSION >= 34 
-static void geosInterruptCallback() {
+static void interruptCallback() {
   if (UNBLOCKED_SIGNAL_QUEUE()) 
     pgwin32_dispatch_queued_signals(); 
 }
 #endif
-#endif
 
 /*
  * Module load callback
@@ -52,8 +50,9 @@ _PG_init(void)
 
 #ifdef WIN32
 #if POSTGIS_GEOS_VERSION >= 34 
-  GEOS_interruptRegisterCallback(geosInterruptCallback);
+  GEOS_interruptRegisterCallback(interruptCallback);
 #endif
+  lwgeom_register_interrupt_callback(interruptCallback);
 #endif
 
 #if 0
@@ -108,6 +107,7 @@ void
 _PG_fini(void)
 {
   elog(NOTICE, "Goodbye from PostGIS %s", POSTGIS_VERSION);
+  pqsignal(SIGINT, coreIntHandler);
 }
 
 
@@ -120,7 +120,8 @@ handleInterrupt(int sig)
   GEOS_interruptRequest();
 #endif
 
-  /* TODO: request interruption of liblwgeom as well ? */
+  /* request interruption of liblwgeom as well */
+  lwgeom_request_interrupt();
 
   if ( coreIntHandler ) {
     (*coreIntHandler)(sig);
diff --git a/postgis/sfcgal.sql.in b/postgis/sfcgal.sql.in
index 84e961b..6f8a100 100644
--- a/postgis/sfcgal.sql.in
+++ b/postgis/sfcgal.sql.in
@@ -13,7 +13,16 @@
 -- New SFCGAL functions (meaning prototype not already provided by GEOS)
 --
 
+#include "sqldefines.h"
+
+-- INSTALL VERSION: POSTGIS_LIB_VERSION
+
 BEGIN;
+
+CREATE OR REPLACE FUNCTION postgis_sfcgal_scripts_installed() RETURNS text
+	AS _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION
+	LANGUAGE 'sql' IMMUTABLE;
+
 -- Availability: 2.1.0
 CREATE OR REPLACE FUNCTION postgis_sfcgal_version() RETURNS text
         AS 'MODULE_PATHNAME'
@@ -25,6 +34,20 @@ CREATE OR REPLACE FUNCTION ST_3DIntersection(geom1 geometry, geom2 geometry)
        AS 'MODULE_PATHNAME','sfcgal_intersection3D'
        LANGUAGE 'c' IMMUTABLE STRICT
        COST 100;
+
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION ST_3DDifference(geom1 geometry, geom2 geometry)
+       RETURNS geometry
+       AS 'MODULE_PATHNAME','sfcgal_difference3D'
+       LANGUAGE 'c' IMMUTABLE STRICT
+       COST 100;
+       
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION ST_3DUnion(geom1 geometry, geom2 geometry)
+       RETURNS geometry
+       AS 'MODULE_PATHNAME','sfcgal_union3D'
+       LANGUAGE 'c' IMMUTABLE STRICT
+       COST 100;
        
 -- Availability: 2.1.0
 CREATE OR REPLACE FUNCTION ST_Tesselate(geometry)
@@ -75,4 +98,62 @@ CREATE OR REPLACE FUNCTION ST_StraightSkeleton(geometry)
        LANGUAGE 'c' IMMUTABLE STRICT
        COST 100;
 
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_ApproximateMedialAxis(geometry)
+       RETURNS geometry
+#if POSTGIS_SFCGAL_VERSION < 12
+       AS $$
+       DECLARE
+         poly alias for $1;
+         ret GEOMETRY;
+       BEGIN
+         WITH components AS (
+           SELECT (ST_Dump(ST_StraightSkeleton(poly))).geom
+         ),
+         filtered AS (
+           SELECT ST_Collect(geom) g
+           FROM components
+           WHERE NOT ST_Touches(geom, ST_Boundary(poly))
+         )
+         SELECT
+          COALESCE(g, ST_SetSRID('MULTILINESTRING EMPTY'::geometry, ST_Srid(poly)))
+         INTO ret
+         FROM filtered;
+         RETURN ret;
+       END; $$
+       LANGUAGE 'plpgsql'
+#else // POSTGIS_SFCGAL_VERSION >= 12
+       AS 'MODULE_PATHNAME','sfcgal_approximate_medial_axis'
+       LANGUAGE 'c'
+#endif // POSTGIS_SFCGAL_VERSION >= 12
+       IMMUTABLE STRICT COST 100;
+
+-- Availability: 2.2.0       
+CREATE OR REPLACE FUNCTION ST_IsPlanar(geometry)
+       RETURNS boolean
+       AS 'MODULE_PATHNAME','sfcgal_is_planar'
+       LANGUAGE 'c' IMMUTABLE STRICT
+       COST 100;
+
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION ST_Volume(geometry)
+       RETURNS FLOAT8
+       AS 'MODULE_PATHNAME','sfcgal_volume'
+       LANGUAGE 'c' IMMUTABLE STRICT
+       COST 100;
+
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION ST_MakeSolid(geometry)
+       RETURNS geometry
+       AS 'MODULE_PATHNAME','sfcgal_make_solid'
+       LANGUAGE 'c' IMMUTABLE STRICT
+       COST 100;
+
+-- Availability: 2.2
+CREATE OR REPLACE FUNCTION ST_IsSolid(geometry)
+       RETURNS boolean
+       AS 'MODULE_PATHNAME','sfcgal_is_solid'
+       LANGUAGE 'c' IMMUTABLE STRICT
+       COST 100;
+
 COMMIT;
diff --git a/postgis/sqldefines.h b/postgis/sqldefines.h
index 7848165..56fa1c9 100644
--- a/postgis/sqldefines.h
+++ b/postgis/sqldefines.h
@@ -9,21 +9,22 @@
 #define POSTGIS_PGSQL_VERSION 93
 #define POSTGIS_GEOS_VERSION 35
 #define POSTGIS_PROJ_VERSION 49
-#define POSTGIS_LIB_VERSION '2.1.8'
+#define POSTGIS_LIB_VERSION '2.2.0rc1'
 #define POSTGIS_LIBXML2_VERSION 2.9.2
+#define POSTGIS_SFCGAL_VERSION 
 
 /*
  * Define the build date and the version number
  * (these substitiutions are done with extra quotes sinces CPP
  * won't substitute within apostrophes)
  */
-#define _POSTGIS_SQL_SELECT_POSTGIS_VERSION 'SELECT ''2.1 USE_GEOS=1 USE_PROJ=1 USE_STATS=1''::text AS version'
-#define _POSTGIS_SQL_SELECT_POSTGIS_BUILD_DATE 'SELECT ''2015-07-07 13:50:01''::text AS version'
+#define _POSTGIS_SQL_SELECT_POSTGIS_VERSION 'SELECT ''2.2 USE_GEOS=1 USE_PROJ=1 USE_STATS=1''::text AS version'
+#define _POSTGIS_SQL_SELECT_POSTGIS_BUILD_DATE 'SELECT ''2015-09-24 21:54:52''::text AS version'
 
 #if POSTGIS_SVN_REVISION
-#define _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION $$ SELECT '2.1.8'::text || ' r' || POSTGIS_SVN_REVISION::text AS version $$
+#define _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION $$ SELECT '2.2.0rc1'::text || ' r' || POSTGIS_SVN_REVISION::text AS version $$
 #else
-#define _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION $$ SELECT '2.1.8'::text AS version $$
+#define _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION $$ SELECT '2.2.0rc1'::text AS version $$
 #endif
 
 #define SRID_USR_MAX 998999
diff --git a/postgis/sqldefines.h.in b/postgis/sqldefines.h.in
index 1235af6..d623698 100644
--- a/postgis/sqldefines.h.in
+++ b/postgis/sqldefines.h.in
@@ -11,6 +11,7 @@
 #define POSTGIS_PROJ_VERSION @POSTGIS_PROJ_VERSION@
 #define POSTGIS_LIB_VERSION '@POSTGIS_LIB_VERSION@'
 #define POSTGIS_LIBXML2_VERSION @POSTGIS_LIBXML2_VERSION@
+#define POSTGIS_SFCGAL_VERSION @POSTGIS_SFCGAL_VERSION@
 
 /*
  * Define the build date and the version number
diff --git a/postgis/uninstall_geography.sql.in b/postgis/uninstall_geography.sql.in
index a648e56..7a8c43e 100644
--- a/postgis/uninstall_geography.sql.in
+++ b/postgis/uninstall_geography.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: uninstall_geography.sql.in 11175 2013-03-18 17:20:18Z strk $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.org/
diff --git a/postgis/uninstall_long_xact.sql.in b/postgis/uninstall_long_xact.sql.in
index 7dfcfb6..fcf1e1e 100644
--- a/postgis/uninstall_long_xact.sql.in
+++ b/postgis/uninstall_long_xact.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: uninstall_long_xact.sql.in 13134 2014-12-01 08:47:21Z strk $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
diff --git a/postgis/uninstall_sqlmm.sql.in b/postgis/uninstall_sqlmm.sql.in
index 08ac613..2f4fbd8 100644
--- a/postgis/uninstall_sqlmm.sql.in
+++ b/postgis/uninstall_sqlmm.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: uninstall_sqlmm.sql.in 13134 2014-12-01 08:47:21Z strk $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
diff --git a/postgis_config.h.in b/postgis_config.h.in
index bcdc3d1..133270b 100644
--- a/postgis_config.h.in
+++ b/postgis_config.h.in
@@ -25,9 +25,9 @@
 /* Define for some functions we are interested in */
 #undef HAVE_VASPRINTF
 #undef HAVE_ASPRINTF
+#undef HAVE_ISFINITE
+#undef HAVE_GNU_ISFINITE
 #undef HAVE_FSEEKO
-#undef HAVE_ISFINITE 
-#undef HAVE_GNU_ISFINITE 
 #undef HAVE_STRCASESTR
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
@@ -121,6 +121,9 @@
 /* PostGIS library debug level (0=disabled) */
 #undef POSTGIS_DEBUG_LEVEL
 
+/* SFCGAL library version at buil time */
+#undef POSTGIS_SFCGAL_VERSION
+
 /* GDAL library version */
 #undef POSTGIS_GDAL_VERSION
 
diff --git a/postgis_svn_revision.h b/postgis_svn_revision.h
index a1fedf4..ca54f1b 100644
--- a/postgis_svn_revision.h
+++ b/postgis_svn_revision.h
@@ -1 +1 @@
-#define POSTGIS_SVN_REVISION 13780
+#define POSTGIS_SVN_REVISION 14102
diff --git a/raster/Makefile.in b/raster/Makefile.in
index 86df62a..e0d1b33 100644
--- a/raster/Makefile.in
+++ b/raster/Makefile.in
@@ -1,7 +1,6 @@
 #############################################################################
-# $Id: Makefile 3940 2009-03-30 09:30:43Z mloskot $
 #
-# Master makefile used to build WKT Raster
+# Master Makefile used to build WKT Raster
 #
 # Copyright (c) 2009 Sandro Santilli <strk at keybit.net>
 #
@@ -18,11 +17,8 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-#
 #############################################################################
 
-.NOTPARALLEL:
-
 all: @RT_CORE_LIB@ @RT_PG_LIB@ @RT_LOADER@ @RT_POSTGIS_SQL@ 
 
 corelib:
diff --git a/raster/TODO b/raster/TODO
index 7ed5bf8..c6de48c 100644
--- a/raster/TODO
+++ b/raster/TODO
@@ -1,4 +1,3 @@
-$Id: TODO 11096 2013-02-16 21:47:18Z dustymugs $
 
 This is the TODO list for PostGIS Raster.  Items in this TODO file should be
 kept brief and to the point.  TODO items should only be those items that have
diff --git a/raster/doc/RFC1-SerializedFormat b/raster/doc/RFC1-SerializedFormat
index ebed5be..a4f44b4 100644
--- a/raster/doc/RFC1-SerializedFormat
+++ b/raster/doc/RFC1-SerializedFormat
@@ -1,8 +1,11 @@
 RFC1: serialized format (storage) for RASTER type
 ------------------------------------------------------
-$Author: jorgearevalo $
-$Date: 2011-01-24 07:06:02 -0800 (Mon, 24 Jan 2011) $
-$Revision: 6716 $
+Author: Sandro Santilli <strk at keybit.net>
+Date: 2009-01-28
+Status: Adopted
+Revisions:
+ 2011-01-24 by Jorge Arévalo
+  - Adds isNodataValue bit to band flags
 ------------------------------------------------------
 
 The goals of the serialized version for RASTER type are:
diff --git a/raster/doc/RFC2-WellKnownBinaryFormat b/raster/doc/RFC2-WellKnownBinaryFormat
index 5d58a36..96b34d2 100644
--- a/raster/doc/RFC2-WellKnownBinaryFormat
+++ b/raster/doc/RFC2-WellKnownBinaryFormat
@@ -1,8 +1,11 @@
 RFC2: Well Known Binary format for RASTER type
 ----------------------------------------------
-$Author: chodgson $
-$Date: 2011-06-23 16:50:13 -0700 (Thu, 23 Jun 2011) $
-$Revision: 7461 $
+Author: Sandro Santilli <strk at keybit.net>
+Date: 2009-01-29
+Status: Adopted
+Revisions:
+ 2011-01-24 by Jorge Arévalo
+  - Adds isNodataValue bit to band flags
 ------------------------------------------------------
 
 The WKB format for RASTER is meant for transport.
diff --git a/raster/loader/Makefile.in b/raster/loader/Makefile.in
index a539fba..47124c6 100644
--- a/raster/loader/Makefile.in
+++ b/raster/loader/Makefile.in
@@ -1,5 +1,4 @@
 #############################################################################
-# $Id$
 #
 # Copyright (c) 2011 Regents of the University of California
 #   <bkpark at ucdavis.edu>
diff --git a/raster/loader/raster2pgsql.c b/raster/loader/raster2pgsql.c
index 15828f8..6e6286c 100644
--- a/raster/loader/raster2pgsql.c
+++ b/raster/loader/raster2pgsql.c
@@ -1,5 +1,4 @@
 /*
- * $Id: raster2pgsql.c 12748 2014-07-07 08:57:57Z strk $
  *
  * PostGIS raster loader
  * http://trac.osgeo.org/postgis/wiki/WKTRaster
@@ -22,7 +21,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
@@ -329,10 +328,18 @@ usage() {
 		"\n"
 		"OPTIONS:\n"
 	));
+	/*
 	printf(_(
-		"  -s <srid> Set the raster's SRID. Defaults to %d. If SRID not\n"
-		"      provided or is %d, raster's metadata will be checked to\n"
-		"      determine an appropriate SRID.\n"
+		"  -s [<from>:]<srid> Set the SRID field. Defaults to %d.\n"
+		"     Optionally reprojects from given SRID (cannot be used with -Y).\n"
+		"     Raster's metadata will be checked to determine an appropriate SRID.\n"
+		"     If a srid of %d is provided (either as from or as target).\n"
+	), SRID_UNKNOWN, SRID_UNKNOWN);
+	*/
+	printf(_(
+		"  -s <srid> Set the SRID field. Defaults to %d. If SRID not\n"
+		"     provided or is %d, raster's metadata will be checked to\n"
+		"     determine an appropriate SRID.\n"
 	), SRID_UNKNOWN, SRID_UNKNOWN);
 	printf(_(
 		"  -b <band> Index (1-based) of band to extract from raster. For more\n"
@@ -626,7 +633,7 @@ diff_rastinfo(RASTERINFO *x, RASTERINFO *ref) {
 	if (!msg[3]) {
 		for (i = 0; i < ref->nband_count; i++) {
 			if (!x->hasnodata[i] && !ref->hasnodata[i]) continue;
-			if (FLT_NEQ(x->hasnodata[i], ref->hasnodata[i])) {
+			if (x->hasnodata[i] != ref->hasnodata[i]) {
 				rtwarn(_("Different NODATA values found for band %d in the set of rasters being converted to PostGIS raster"), ref->nband[i]);
 				msg[3]++;
 			}
@@ -670,7 +677,7 @@ diff_rastinfo(RASTERINFO *x, RASTERINFO *ref) {
 	/* tile size */
 	if (!msg[5]) {
 		for (i = 0; i < 2; i++) {
-			if (FLT_NEQ(x->tile_size[i], ref->tile_size[i])) {
+			if (x->tile_size[i] != ref->tile_size[i]) {
 				rtwarn(_("Different tile sizes found in the set of rasters being converted to PostGIS raster"));
 				msg[5]++;
 				break;
@@ -693,7 +700,7 @@ init_config(RTLOADERCFG *config) {
 	config->overview = NULL;
 	config->overview_table = NULL;
 	config->quoteident = 0;
-	config->srid = SRID_UNKNOWN;
+	config->srid = config->out_srid = SRID_UNKNOWN;
 	config->nband = NULL;
 	config->nband_count = 0;
 	memset(config->tile_size, 0, sizeof(int) * 2);
@@ -794,6 +801,7 @@ flush_stringbuffer(STRINGBUFFER *buffer) {
 	rtdealloc_stringbuffer(buffer, 0);
 }
 
+/* Takes ownership of the passed string */
 static int
 append_stringbuffer(STRINGBUFFER *buffer, const char *str) {
 	buffer->length++;
@@ -804,13 +812,7 @@ append_stringbuffer(STRINGBUFFER *buffer, const char *str) {
 		return 0;
 	}
 
-	buffer->line[buffer->length - 1] = NULL;
-	buffer->line[buffer->length - 1] = rtalloc(sizeof(char) * (strlen(str) + 1));
-	if (buffer->line[buffer->length - 1] == NULL) {
-		rterror(_("append_stringbuffer: Could not allocate memory for appending string to buffer"));
-		return 0;
-	}
-	strcpy(buffer->line[buffer->length - 1], str);
+	buffer->line[buffer->length - 1] = (char *) str;
 
 	return 1;
 }
@@ -824,10 +826,57 @@ append_sql_to_buffer(STRINGBUFFER *buffer, const char *str) {
 }
 
 static int
+copy_from(const char *schema, const char *table, const char *column,
+          const char *filename, const char *file_column_name,
+          STRINGBUFFER *buffer)
+{
+	char *sql = NULL;
+	uint32_t len = 0;
+
+	assert(table != NULL);
+	assert(column != NULL);
+
+	len = strlen("COPY  () FROM stdin;") + 1;
+	if (schema != NULL)
+		len += strlen(schema);
+	len += strlen(table);
+	len += strlen(column);
+	if (filename != NULL)
+		len += strlen(",") + strlen(file_column_name);
+
+	sql = rtalloc(sizeof(char) * len);
+	if (sql == NULL) {
+		rterror(_("copy_from: Could not allocate memory for COPY statement"));
+		return 0;
+	}
+	sprintf(sql, "COPY %s%s (%s%s%s) FROM stdin;",
+		(schema != NULL ? schema : ""),
+		table,
+		column,
+		(filename != NULL ? "," : ""),
+		(filename != NULL ? file_column_name : "")
+	);
+
+	append_sql_to_buffer(buffer, sql);
+	sql = NULL;
+
+	return 1;
+}
+
+static int
+copy_from_end(STRINGBUFFER *buffer)
+{
+	/* end of data */
+	append_sql_to_buffer(buffer, strdup("\\."));
+
+	return 1;
+}
+
+static int
 insert_records(
 	const char *schema, const char *table, const char *column,
 	const char *filename, const char *file_column_name,
-	int copy_statements,
+	int copy_statements, int out_srid,
 	STRINGBUFFER *tileset, STRINGBUFFER *buffer
 ) {
 	char *fn = NULL;
@@ -841,6 +890,16 @@ insert_records(
 	/* COPY statements */
 	if (copy_statements) {
 
+    if (!copy_from(
+      schema, table, column,
+      (file_column_name ? filename : NULL), file_column_name,
+      buffer
+    )) {
+      rterror(_("insert_records: Could not add COPY statement to string buffer"));
+      return 0;
+    }
+
+
 		/* escape tabs in filename */
 		if (filename != NULL)
 			fn = strreplace(filename, "\t", "\\t", NULL);
@@ -864,14 +923,18 @@ insert_records(
 			);
 
 			append_sql_to_buffer(buffer, sql);
-			rtdealloc(sql);
 			sql = NULL;
 		}
 
+    if (!copy_from_end(buffer)) {
+      rterror(_("process_rasters: Could not add COPY end statement to string buffer"));
+      return 0;
+    }
+
 	}
 	/* INSERT statements */
 	else {
-		len = strlen("INSERT INTO  () VALUES (''::raster);") + 1;
+		len = strlen("INSERT INTO  () VALUES (ST_Transform(''::raster,xxxxxxxxx));") + 1;
 		if (schema != NULL)
 			len += strlen(schema);
 		len += strlen(table);
@@ -884,6 +947,7 @@ insert_records(
 			fn = strreplace(filename, "'", "''", NULL);
 
 		for (x = 0; x < tileset->length; x++) {
+			char *ptr;
 			int sqllen = len;
 
 			sqllen += strlen(tileset->line[x]);
@@ -895,20 +959,29 @@ insert_records(
 				rterror(_("insert_records: Could not allocate memory for INSERT statement"));
 				return 0;
 			}
-			sprintf(sql, "INSERT INTO %s%s (%s%s%s) VALUES ('%s'::raster%s%s%s);",
-				(schema != NULL ? schema : ""),
-				table,
-				column,
-				(filename != NULL ? "," : ""),
-				(filename != NULL ? file_column_name : ""),
-				tileset->line[x],
-				(filename != NULL ? ",'" : ""),
-				(filename != NULL ? fn : ""),
-				(filename != NULL ? "'" : "")
-			);
+			ptr = sql;
+			ptr += sprintf(sql, "INSERT INTO %s%s (%s%s%s) VALUES (",
+					(schema != NULL ? schema : ""),
+					table,
+					column,
+					(filename != NULL ? "," : ""),
+					(filename != NULL ? file_column_name : "")
+				);
+			if (out_srid != SRID_UNKNOWN) {
+				ptr += sprintf(ptr, "ST_Transform(");
+			}
+			ptr += sprintf(ptr, "'%s'::raster",
+					tileset->line[x]
+				);
+			if (out_srid != SRID_UNKNOWN) {
+				ptr += sprintf(ptr, ", %d)", out_srid);
+			}
+			if (filename != NULL) {
+				ptr += sprintf(ptr, ",'%s'", fn);
+			}
+			ptr += sprintf(ptr, ");");
 
 			append_sql_to_buffer(buffer, sql);
-			rtdealloc(sql);
 			sql = NULL;
 		}
 	}
@@ -938,7 +1011,6 @@ drop_table(const char *schema, const char *table, STRINGBUFFER *buffer) {
 	);
 
 	append_sql_to_buffer(buffer, sql);
-	rtdealloc(sql);
 
 	return 1;
 }
@@ -987,55 +1059,6 @@ create_table(
 	);
 
 	append_sql_to_buffer(buffer, sql);
-	rtdealloc(sql);
-
-	return 1;
-}
-
-static int
-copy_from(
-	const char *schema, const char *table, const char *column,
-	const char *filename, const char *file_column_name,
-	STRINGBUFFER *buffer
-) {
-	char *sql = NULL;
-	uint32_t len = 0;
-
-	assert(table != NULL);
-	assert(column != NULL);
-
-	len = strlen("COPY  () FROM stdin;") + 1;
-	if (schema != NULL)
-		len += strlen(schema);
-	len += strlen(table);
-	len += strlen(column);
-	if (filename != NULL)
-		len += strlen(",") + strlen(file_column_name);
-
-	sql = rtalloc(sizeof(char) * len);
-	if (sql == NULL) {
-		rterror(_("copy_from: Could not allocate memory for COPY statement"));
-		return 0;
-	}
-	sprintf(sql, "COPY %s%s (%s%s%s) FROM stdin;",
-		(schema != NULL ? schema : ""),
-		table,
-		column,
-		(filename != NULL ? "," : ""),
-		(filename != NULL ? file_column_name : "")
-	);
-
-	append_sql_to_buffer(buffer, sql);
-	rtdealloc(sql);
-	sql = NULL;
-
-	return 1;
-}
-
-static int
-copy_from_end(STRINGBUFFER *buffer) {
-	/* end of data */
-	append_sql_to_buffer(buffer, "\\.");
 
 	return 1;
 }
@@ -1086,7 +1109,6 @@ create_index(
 	rtdealloc(_column);
 
 	append_sql_to_buffer(buffer, sql);
-	rtdealloc(sql);
 
 	return 1;
 }
@@ -1117,7 +1139,6 @@ analyze_table(
 	);
 
 	append_sql_to_buffer(buffer, sql);
-	rtdealloc(sql);
 
 	return 1;
 }
@@ -1148,7 +1169,6 @@ vacuum_table(
 	);
 
 	append_sql_to_buffer(buffer, sql);
-	rtdealloc(sql);
 
 	return 1;
 }
@@ -1215,7 +1235,6 @@ add_raster_constraints(
 	rtdealloc(_column);
 
 	append_sql_to_buffer(buffer, sql);
-	rtdealloc(sql);
 
 	return 1;
 }
@@ -1322,7 +1341,6 @@ add_overview_constraints(
 	rtdealloc(_column);
 
 	append_sql_to_buffer(buffer, sql);
-	rtdealloc(sql);
 
 	return 1;
 }
@@ -1515,7 +1533,6 @@ build_overview(int idx, RTLOADERCFG *config, RASTERINFO *info, int ovx, STRINGBU
 			/* add hexwkb to tileset */
 			append_stringbuffer(tileset, hex);
 
-			rtdealloc(hex);
 			GDALClose(hdsDst);
 
 			/* flush if tileset gets too big */
@@ -1523,7 +1540,7 @@ build_overview(int idx, RTLOADERCFG *config, RASTERINFO *info, int ovx, STRINGBU
 				if (!insert_records(
 					config->schema, ovtable, config->raster_column,
 					(config->file_column ? config->rt_filename[idx] : NULL), config->file_column_name,
-					config->copy_statements,
+					config->copy_statements, config->out_srid,
 					tileset, buffer
 				)) {
 					rterror(_("build_overview: Could not convert raster tiles into INSERT or COPY statements"));
@@ -1613,6 +1630,12 @@ convert_raster(int idx, RTLOADERCFG *config, RASTERINFO *info, STRINGBUFFER *til
 		}
 	}
 
+	if ( info->srid == SRID_UNKNOWN && config->out_srid != SRID_UNKNOWN ) {
+		  rterror(_("convert_raster: could not determine source srid, cannot transform to target srid %d"), config->out_srid);
+		  GDALClose(hdsSrc);
+		  return 0;
+	}
+
 	/* record geotransform matrix */
 	if (GDALGetGeoTransform(hdsSrc, info->gt) != CE_None) {
 		rtinfo(_("Using default geotransform matrix (0, 1, 0, 0, 0, -1) for raster: %s"), config->rt_file[idx]);
@@ -1832,14 +1855,12 @@ convert_raster(int idx, RTLOADERCFG *config, RASTERINFO *info, STRINGBUFFER *til
 				/* add hexwkb to tileset */
 				append_stringbuffer(tileset, hex);
 
-				rtdealloc(hex);
-
 				/* flush if tileset gets too big */
 				if (tileset->length > 10) {
 					if (!insert_records(
 						config->schema, config->table, config->raster_column,
 						(config->file_column ? config->rt_filename[idx] : NULL), config->file_column_name,
-						config->copy_statements,
+						config->copy_statements, config->out_srid,
 						tileset, buffer
 					)) {
 						rterror(_("convert_raster: Could not convert raster tiles into INSERT or COPY statements"));
@@ -1951,7 +1972,6 @@ convert_raster(int idx, RTLOADERCFG *config, RASTERINFO *info, STRINGBUFFER *til
 				/* add hexwkb to tileset */
 				append_stringbuffer(tileset, hex);
 
-				rtdealloc(hex);
 				GDALClose(hdsDst);
 
 				/* flush if tileset gets too big */
@@ -1959,7 +1979,7 @@ convert_raster(int idx, RTLOADERCFG *config, RASTERINFO *info, STRINGBUFFER *til
 					if (!insert_records(
 						config->schema, config->table, config->raster_column,
 						(config->file_column ? config->rt_filename[idx] : NULL), config->file_column_name,
-						config->copy_statements,
+						config->copy_statements, config->out_srid,
 						tileset, buffer
 					)) {
 						rterror(_("convert_raster: Could not convert raster tiles into INSERT or COPY statements"));
@@ -1987,7 +2007,7 @@ process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
 	assert(config->raster_column != NULL);
 
 	if (config->transaction) {
-		if (!append_sql_to_buffer(buffer, "BEGIN;")) {
+		if (!append_sql_to_buffer(buffer, strdup("BEGIN;"))) {
 			rterror(_("process_rasters: Could not add BEGIN statement to string buffer"));
 			return 0;
 		}
@@ -2052,17 +2072,6 @@ process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
 			init_rastinfo(&rastinfo);
 			init_stringbuffer(&tileset);
 
-			if (config->copy_statements && !copy_from(
-				config->schema, config->table, config->raster_column,
-				(config->file_column ? config->rt_filename[i] : NULL), config->file_column_name,
-				buffer
-			)) {
-				rterror(_("process_rasters: Could not add COPY statement to string buffer"));
-				rtdealloc_rastinfo(&rastinfo);
-				rtdealloc_stringbuffer(&tileset, 0);
-				return 0;
-			}
-
 			/* convert raster */
 			if (!convert_raster(i, config, &rastinfo, &tileset, buffer)) {
 				rterror(_("process_rasters: Could not process raster: %s"), config->rt_file[i]);
@@ -2074,8 +2083,9 @@ process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
 			/* process raster tiles into COPY or INSERT statements */
 			if (tileset.length && !insert_records(
 				config->schema, config->table, config->raster_column,
-				(config->file_column ? config->rt_filename[i] : NULL), config->file_column_name,
-				config->copy_statements,
+				(config->file_column ? config->rt_filename[i] : NULL),
+        config->file_column_name,
+				config->copy_statements, config->out_srid,
 				&tileset, buffer
 			)) {
 				rterror(_("process_rasters: Could not convert raster tiles into INSERT or COPY statements"));
@@ -2086,12 +2096,6 @@ process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
 
 			rtdealloc_stringbuffer(&tileset, 0);
 
-			if (config->copy_statements && !copy_from_end(buffer)) {
-				rterror(_("process_rasters: Could not add COPY end statement to string buffer"));
-				rtdealloc_rastinfo(&rastinfo);
-				return 0;
-			}
-
 			/* flush buffer after every raster */
 			flush_stringbuffer(buffer);
 
@@ -2101,17 +2105,6 @@ process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
 
 				for (j = 0; j < config->overview_count; j++) {
 
-					if (config->copy_statements && !copy_from(
-							config->schema, config->overview_table[j], config->raster_column,
-							(config->file_column ? config->rt_filename[i] : NULL), config->file_column_name,
-							buffer
-					)) {
-						rterror(_("process_rasters: Could not add COPY statement to string buffer"));
-						rtdealloc_rastinfo(&rastinfo);
-						rtdealloc_stringbuffer(&tileset, 0);
-						return 0;
-					}
-
 					if (!build_overview(i, config, &rastinfo, j, &tileset, buffer)) {
 						rterror(_("process_rasters: Could not create overview of factor %d for raster %s"), config->overview[j], config->rt_file[i]);
 						rtdealloc_rastinfo(&rastinfo);
@@ -2122,7 +2115,7 @@ process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
 					if (tileset.length && !insert_records(
 						config->schema, config->overview_table[j], config->raster_column,
 						(config->file_column ? config->rt_filename[i] : NULL), config->file_column_name,
-						config->copy_statements,
+						config->copy_statements, config->out_srid,
 						&tileset, buffer
 					)) {
 						rterror(_("process_rasters: Could not convert overview tiles into INSERT or COPY statements"));
@@ -2135,14 +2128,6 @@ process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
 
 					/* flush buffer after every raster */
 					flush_stringbuffer(buffer);
-
-					if (config->copy_statements) {
-						if (!copy_from_end(buffer)) {
-							rterror(_("process_rasters: Could not add COPY end statement to string buffer"));
-							rtdealloc_rastinfo(&rastinfo);
-							return 0;
-						}
-					}
 				}
 			}
 
@@ -2250,7 +2235,7 @@ process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
 	}
 
 	if (config->transaction) {
-		if (!append_sql_to_buffer(buffer, "END;")) {
+		if (!append_sql_to_buffer(buffer, strdup("END;"))) {
 			rterror(_("process_rasters: Could not add END statement to string buffer"));
 			return 0;
 		}
@@ -2319,9 +2304,18 @@ main(int argc, char **argv) {
 	****************************************************************************/
 
 	for (i = 1; i < argc; i++) {
+		char *optarg, *ptr;
 		/* srid */
 		if (CSEQUAL(argv[i], "-s") && i < argc - 1) {
-			config->srid = atoi(argv[++i]);
+			optarg = argv[++i];
+			ptr = strchr(optarg, ':');
+			if (ptr) {
+				*ptr++ = '\0';
+				sscanf(optarg, "%d", &config->srid);
+				sscanf(ptr, "%d", &config->out_srid);
+			} else {
+				config->srid = config->out_srid = atoi(optarg);
+			}
 		}
 		/* band index */
 		else if (CSEQUAL(argv[i], "-b") && i < argc - 1) {
@@ -2651,6 +2645,17 @@ main(int argc, char **argv) {
 		}
 	}
 
+	if (config->srid != config->out_srid) {
+		if (config->copy_statements) {
+			rterror(_("Invalid argument combination - cannot use -Y with -s FROM_SRID:TO_SRID"));
+			exit(1);
+		}
+		if (config->out_srid == SRID_UNKNOWN) {
+			rterror(_("Unknown target SRID is invalid when source SRID is given"));
+			exit(1);
+		}
+	}
+
 	/* register GDAL drivers */
 	GDALAllRegister();
 
diff --git a/raster/loader/raster2pgsql.h b/raster/loader/raster2pgsql.h
index 302e49a..9d79131 100644
--- a/raster/loader/raster2pgsql.h
+++ b/raster/loader/raster2pgsql.h
@@ -1,5 +1,4 @@
 /*
- * $Id: raster2pgsql.h 12093 2013-11-06 05:12:11Z dustymugs $
  *
  * PostGIS Raster loader
  * http://trac.osgeo.org/postgis/wiki/WKTRaster
@@ -22,7 +21,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
@@ -41,7 +40,10 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "../rt_core/rt_api.h"
+#include "librtcore.h"
+
+#include "../../postgis_config.h"
+#include "../raster_config.h"
 
 #define CSEQUAL(a,b) (strcmp(a,b)==0)
 
@@ -65,7 +67,7 @@
 */
 #define MAXTILESIZE 1073741824
 
-#define RCSID "$Id: raster2pgsql.h 12093 2013-11-06 05:12:11Z dustymugs $"
+#define RCSID "$Id: raster2pgsql.h 13497 2015-05-13 18:29:52Z pramsey $"
 
 typedef struct raster_loader_config {
 	/* raster filename */
@@ -94,9 +96,12 @@ typedef struct raster_loader_config {
 	/* case-sensitive of identifiers, 1 = yes, 0 = no (default) */
 	int quoteident;
 
-	/* SRID of raster */
+	/* SRID of input raster */
 	int srid;
 
+	/* SRID of output raster (reprojection) */
+	int out_srid;
+
 	/* bands to extract */
 	int *nband; /* 1-based */
 	int nband_count;
diff --git a/raster/macros/ac_proj4_version.m4 b/raster/macros/ac_proj4_version.m4
index 533c3d6..d87ee11 100644
--- a/raster/macros/ac_proj4_version.m4
+++ b/raster/macros/ac_proj4_version.m4
@@ -1,5 +1,4 @@
 dnl **********************************************************************
-dnl * $Id: ac_proj4_version.m4 13134 2014-12-01 08:47:21Z strk $
 dnl *
 dnl * PostGIS - Spatial Types for PostgreSQL
 dnl * http://postgis.net
@@ -17,7 +16,7 @@ dnl * GNU General Public License for more details.
 dnl *
 dnl * You should have received a copy of the GNU General Public License
 dnl * along with this program; if not, write to the Free Software Foundation,
-dnl * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+dnl * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 dnl *
 dnl **********************************************************************
 
diff --git a/raster/rt_core/Makefile.in b/raster/rt_core/Makefile.in
index 38b3412..c6df021 100644
--- a/raster/rt_core/Makefile.in
+++ b/raster/rt_core/Makefile.in
@@ -1,5 +1,4 @@
 #############################################################################
-# $Id: Makefile.in 12060 2013-10-28 19:44:03Z dustymugs $
 #
 # Copyright (c) 2009 Sandro Santilli <strk at keybit.net>
 #
@@ -19,25 +18,44 @@
 #
 #############################################################################
 
-AR=ar rs
+AR = ar rs
 
-CC=@CC@
-LIBLWGEOM_LDFLAGS=../../liblwgeom/.libs/liblwgeom.a
-LIBLWGEOM_CFLAGS=-I../../liblwgeom
-LIBGDAL_CFLAGS=@LIBGDAL_CFLAGS@
-LIBGDAL_LDFLAGS=@LIBGDAL_LDFLAGS@
-GEOS_LDFLAGS=@GEOS_LDFLAGS@ -lgeos_c
-PROJ_LDFLAGS=@PROJ_LDFLAGS@ -lproj
-LDFLAGS=$(LIBLWGEOM_LDFLAGS) $(LIBGDAL_LDFLAGS) $(PROJ_LDFLAGS) $(GEOS_LDFLAGS)
-CFLAGS=@CFLAGS@ @PICFLAGS@ @WARNFLAGS@ $(LIBLWGEOM_CFLAGS) $(LIBGDAL_CFLAGS) @PROJ_CPPFLAGS@ @GEOS_CPPFLAGS@
+CC = @CC@
+LIBLWGEOM_LDFLAGS = ../../liblwgeom/.libs/liblwgeom.a
+LIBLWGEOM_CFLAGS = -I../../liblwgeom
+LIBGDAL_CFLAGS = @LIBGDAL_CFLAGS@
+LIBGDAL_LDFLAGS = @LIBGDAL_LDFLAGS@
+GEOS_LDFLAGS = @GEOS_LDFLAGS@ -lgeos_c
+PROJ_LDFLAGS = @PROJ_LDFLAGS@ -lproj
+LDFLAGS = $(LIBLWGEOM_LDFLAGS) $(LIBGDAL_LDFLAGS) $(PROJ_LDFLAGS) $(GEOS_LDFLAGS)
+CFLAGS = @CFLAGS@ @PICFLAGS@ @WARNFLAGS@ $(LIBLWGEOM_CFLAGS) $(LIBGDAL_CFLAGS) @PROJ_CPPFLAGS@ @GEOS_CPPFLAGS@
 
 # Standalone RTCORE objects
-RT_OBJS=rt_api.o
-RT_LIB=librtcore.a
-RT_HEADERS=rt_api.h
+RT_OBJS = \
+	rt_util.o \
+	rt_spatial_relationship.o \
+	rt_mapalgebra.o \
+	rt_geometry.o \
+	rt_statistics.o \
+	rt_pixel.o \
+	rt_warp.o \
+	rt_band.o \
+	rt_raster.o \
+	rt_serialize.o \
+	rt_wkb.o \
+	rt_context.o
+
+RT_LIB = librtcore.a
+RT_HEADERS = \
+	rt_serialize.h \
+	librtcore.h \
+	librtcore_internal.h \
+	../raster_config.h
 
 all: $(RT_LIB)
 
+$(RT_OBJS): $(RT_HEADERS)
+
 clean:
 	rm -f $(RT_OBJS)
 	rm -f $(RT_LIB)
@@ -45,5 +63,5 @@ clean:
 distclean: clean
 	rm -f Makefile
 
-librtcore.a: $(RT_OBJS) $(RT_HEADERS)
+librtcore.a: $(RT_OBJS)
 	$(AR) $(RT_LIB) $(RT_OBJS)
diff --git a/raster/rt_core/librtcore.h b/raster/rt_core/librtcore.h
new file mode 100644
index 0000000..5a2b773
--- /dev/null
+++ b/raster/rt_core/librtcore.h
@@ -0,0 +1,2467 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2013 Nathaneil Hunter Clay <clay.nathaniel 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.
+ *
+ */
+
+/**
+ * @file librtcore.h
+ *
+ * This library is the generic raster handling section of PostGIS. The raster
+ * objects, constructors, destructors, and a set of spatial processing functions
+ * are implemented here.
+ *
+ * The library is designed for use in non-PostGIS applications if necessary. The
+ * units tests at test/core (and the future loader/dumper programs) are examples
+ * of non-PostGIS applications using rt_core.
+ *
+ * Programs using this library should set up the default memory managers and error
+ * handlers by implementing an rt_init_allocators() function, which can be as
+ * a wrapper around the rt_install_default_allocators() function if you want
+ * no special handling for memory management and error reporting.
+ *
+ **/
+
+/******************************************************************************
+* Some rules for *.(c|h) files in rt_core
+*
+* All functions in rt_core that receive a band index parameter
+*   must be 0-based
+*
+* Variables and functions internal for a public function should be prefixed
+*   with _rti_, e.g. _rti_iterator_arg.
+******************************************************************************/
+
+#ifndef LIBRTCORE_H_INCLUDED
+#define LIBRTCORE_H_INCLUDED
+
+/* define the systems */
+#if defined(__linux__)  /* (predefined) */
+#if !defined(LINUX)
+#define LINUX
+#endif
+#if !defined(UNIX)
+#define UNIX        /* make sure this is defined */
+#endif
+#endif
+
+
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__)    /* seems to work like Linux... */
+#if !defined(LINUX)
+#define LINUX
+#endif
+#if !defined(UNIX)
+#define UNIX        /* make sure this is defined */
+#endif
+#endif
+
+#if defined(__MSDOS__)
+#if !defined(MSDOS)
+#define MSDOS       /* make sure this is defined */
+#endif
+#endif
+
+#if defined(__WIN32__) || defined(__NT__) || defined(_WIN32)
+#if !defined(WIN32)
+#define WIN32
+#endif
+#if defined(__BORLANDC__) && defined(MSDOS) /* Borland always defines MSDOS */
+#undef  MSDOS
+#endif
+#endif
+
+#if defined(__APPLE__)
+#if !defined(UNIX)
+#define UNIX
+#endif
+#endif
+
+#if defined(sun) || defined(__sun) 
+#if !defined(UNIX) 
+#define UNIX 
+#endif 
+#endif
+
+/* if we are in Unix define stricmp to be strcasecmp and strnicmp to */
+/* be strncasecmp. I'm not sure if all Unices have these, but Linux */
+/* does. */
+#if defined(UNIX)
+#if !defined(HAVE_STRICMP)
+#define stricmp     strcasecmp
+#endif
+#if !defined(HAVE_STRNICMP)
+#define strnicmp    strncasecmp
+#endif
+#endif
+
+#include <stdio.h> /* for printf, sprintf */
+#include <stdlib.h> /* For size_t, srand and rand */
+#include <stdint.h> /* For C99 int types */
+#include <string.h> /* for memcpy, strlen, etc */
+#include <float.h> /* for FLT_EPSILON, DBL_EPSILON and float type limits */
+#include <limits.h> /* for integer type limits */
+
+#include "liblwgeom.h"
+
+#include "gdal_alg.h"
+#include "gdal_frmts.h"
+#include "gdal.h"
+#include "gdalwarper.h"
+#include "cpl_vsi.h"
+#include "cpl_conv.h"
+#include "ogr_api.h"
+#include "ogr_srs_api.h"
+
+#include "../../postgis_config.h"
+#include "../raster_config.h"
+
+#ifndef __GNUC__
+# define __attribute__ (x)
+#endif
+
+/**
+ * Types definitions
+ */
+typedef struct rt_raster_t* rt_raster;
+typedef struct rt_band_t* rt_band;
+typedef struct rt_pixel_t* rt_pixel;
+typedef struct rt_mask_t* rt_mask;
+typedef struct rt_geomval_t* rt_geomval;
+typedef struct rt_bandstats_t* rt_bandstats;
+typedef struct rt_histogram_t* rt_histogram;
+typedef struct rt_quantile_t* rt_quantile;
+typedef struct rt_valuecount_t* rt_valuecount;
+typedef struct rt_gdaldriver_t* rt_gdaldriver;
+typedef struct rt_reclassexpr_t* rt_reclassexpr;
+
+typedef struct rt_iterator_t* rt_iterator;
+typedef struct rt_iterator_arg_t* rt_iterator_arg;
+
+typedef struct rt_colormap_entry_t* rt_colormap_entry;
+typedef struct rt_colormap_t* rt_colormap;
+
+/* envelope information */
+typedef struct {
+	double MinX;
+	double MaxX;
+	double MinY;
+	double MaxY;
+
+	double UpperLeftX;
+	double UpperLeftY;
+} rt_envelope;
+
+/**
+ * Enum definitions
+ */
+
+/* function return error states */
+typedef enum {
+	ES_NONE = 0, /* no error */
+	ES_ERROR = 1 /* generic error */
+} rt_errorstate;
+
+/* Pixel types */
+typedef enum {
+    PT_1BB=0,     /* 1-bit boolean            */
+    PT_2BUI=1,    /* 2-bit unsigned integer   */
+    PT_4BUI=2,    /* 4-bit unsigned integer   */
+    PT_8BSI=3,    /* 8-bit signed integer     */
+    PT_8BUI=4,    /* 8-bit unsigned integer   */
+    PT_16BSI=5,   /* 16-bit signed integer    */
+    PT_16BUI=6,   /* 16-bit unsigned integer  */
+    PT_32BSI=7,   /* 32-bit signed integer    */
+    PT_32BUI=8,   /* 32-bit unsigned integer  */
+    PT_32BF=10,   /* 32-bit float             */
+    PT_64BF=11,   /* 64-bit float             */
+    PT_END=13
+} rt_pixtype;
+
+typedef enum {
+	ET_INTERSECTION = 0,
+	ET_UNION,
+	ET_FIRST,
+	ET_SECOND,
+	ET_LAST,
+	ET_CUSTOM
+} rt_extenttype;
+
+/**
+ * GEOS spatial relationship tests available
+ *
+ * GEOS tests not available are:
+ *   intersects
+ *   crosses
+ *   disjoint
+ */
+typedef enum {
+	GSR_OVERLAPS = 0,
+	GSR_TOUCHES,
+	GSR_CONTAINS,
+	GSR_CONTAINSPROPERLY,
+	GSR_COVERS,
+	GSR_COVEREDBY
+} rt_geos_spatial_test;
+
+/**
+* Global functions for memory/logging handlers.
+*/
+typedef void* (*rt_allocator)(size_t size);
+typedef void* (*rt_reallocator)(void *mem, size_t size);
+typedef void  (*rt_deallocator)(void *mem);
+typedef void  (*rt_message_handler)(const char* string, va_list ap)
+  __attribute__ (( format(printf,1,0) ));
+
+/****************************************************************************
+ * Functions that must be implemented for the raster core function's caller
+ * (for example: rt_pg functions, test functions, future loader/exporter)
+ ****************************************************************************/
+
+/**
+ * Supply the memory management and error handling functions you want your
+ * application to use
+ */
+extern void rt_init_allocators(void);
+
+/*********************************************************************/
+
+
+/*******************************************************************
+ * Functions that may be used by the raster core function's caller
+ * (for example: rt_pg functions, test functions, future loader/exporter)
+ *******************************************************************/
+/**
+ * Apply the default memory management (malloc() and free()) and error handlers.
+ * Called inside rt_init_allocators() generally.
+ */
+extern void rt_install_default_allocators(void);
+
+
+/**
+ * Wrappers used for managing memory. They simply call the functions defined by
+ * the caller
+ **/
+extern void* rtalloc(size_t size);
+extern void* rtrealloc(void* mem, size_t size);
+extern void rtdealloc(void* mem);
+
+/******************************************************************/
+
+
+/**
+ * Wrappers used for reporting errors and info.
+ **/
+void rterror(const char *fmt, ...);
+void rtinfo(const char *fmt, ...);
+void rtwarn(const char *fmt, ...);
+
+
+/**
+* The default memory/logging handlers installed by lwgeom_install_default_allocators()
+*/
+void * default_rt_allocator(size_t size);
+void * default_rt_reallocator(void * mem, size_t size);
+void default_rt_deallocator(void * mem);
+void default_rt_error_handler(const char * fmt, va_list ap);
+void default_rt_warning_handler(const char * fmt, va_list ap);
+void default_rt_info_handler(const char * fmt, va_list ap);
+
+
+/* Debugging macros */
+#if POSTGIS_DEBUG_LEVEL > 0
+
+/* Display a simple message at NOTICE level */
+#define RASTER_DEBUG(level, msg) \
+    do { \
+        if (POSTGIS_DEBUG_LEVEL >= level) \
+            rtinfo("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__); \
+    } while (0);
+
+/* Display a formatted message at NOTICE level (like printf, with variadic arguments) */
+#define RASTER_DEBUGF(level, msg, ...) \
+    do { \
+        if (POSTGIS_DEBUG_LEVEL >= level) \
+            rtinfo("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__, __VA_ARGS__); \
+    } while (0);
+
+#else
+
+/* Empty prototype that can be optimised away by the compiler for non-debug builds */
+#define RASTER_DEBUG(level, msg) \
+    ((void) 0)
+
+/* Empty prototype that can be optimised away by the compiler for non-debug builds */
+#define RASTER_DEBUGF(level, msg, ...) \
+    ((void) 0)
+
+#endif
+
+/*- memory context -------------------------------------------------------*/
+
+void rt_set_handlers(rt_allocator allocator, rt_reallocator reallocator,
+        rt_deallocator deallocator, rt_message_handler error_handler,
+        rt_message_handler info_handler, rt_message_handler warning_handler);
+
+
+
+/*- rt_pixtype --------------------------------------------------------*/
+
+/**
+ * Return size in bytes of a value in the given pixtype
+ *
+ * @param pixtype : the pixel type to get byte size for
+ *
+ * @return the pixel type's byte size
+ */
+int rt_pixtype_size(rt_pixtype pixtype);
+
+/**
+ * Return alignment requirements for data in the given pixel type.
+ * Fast access to pixel values of this type must be aligned to as
+ * many bytes as returned by this function.
+ *
+ * @param pixtype : the pixel type to get alignment requirements for
+ *
+ * @return the alignment requirements
+ */
+int rt_pixtype_alignment(rt_pixtype pixtype);
+
+/* Return human-readable name of pixel type */
+const char* rt_pixtype_name(rt_pixtype pixtype);
+
+/* Return pixel type index from human-readable name */
+rt_pixtype rt_pixtype_index_from_name(const char* pixname);
+
+/**
+ * Return minimum value possible for pixel type
+ *
+ * @param pixtype : the pixel type to get minimum possible value for
+ *
+ * @return the minimum possible value for the pixel type.
+ */
+double rt_pixtype_get_min_value(rt_pixtype pixtype);
+
+/**
+ * Test to see if two values are equal when clamped
+ *
+ * @param pixtype : the pixel type to clamp the provided values
+ * @param val : value to compare to reference value
+ * @param refval : reference value to be compared with
+ * @param isequal : non-zero if clamped values are equal, 0 otherwise
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_pixtype_compare_clamped_values(
+	rt_pixtype pixtype,
+	double val, double refval,
+	int *isequal
+);
+
+/*- rt_pixel ----------------------------------------------------------*/
+
+/*
+ * Convert an array of rt_pixel objects to two 2D arrays of value and NODATA.
+ * The dimensions of the returned 2D array are [Y][X], going by row Y and
+ * then column X.
+ *
+ * @param npixel : array of rt_pixel objects
+ * @param count : number of elements in npixel
+ * @param mask : mask to be respected when returning array
+ * @param x : the column of the center pixel (0-based)
+ * @param y : the line of the center pixel (0-based)
+ * @param distancex : the number of pixels around the specified pixel
+ * along the X axis
+ * @param distancey : the number of pixels around the specified pixel
+ * along the Y axis
+ * @param value : pointer to pointer for 2D value array
+ * @param nodata : pointer to pointer for 2D NODATA array
+ * @param dimx : size of value and nodata along the X axis
+ * @param dimy : size of value and nodata along the Y axis
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_pixel_set_to_array(
+	rt_pixel npixel,int count,
+	rt_mask mask,
+	int x, int y,
+	uint16_t distancex, uint16_t distancey,
+	double ***value,
+	int ***nodata,
+	int *dimx, int *dimy
+);
+
+/*- rt_band ----------------------------------------------------------*/
+
+/**
+ * Create an in-db rt_band with no data
+ *
+ * @param width     : number of pixel columns
+ * @param height    : number of pixel rows
+ * @param pixtype   : pixel type for the band
+ * @param hasnodata : indicates if the band has nodata value
+ * @param nodataval : the nodata value, will be appropriately
+ *                    truncated to fit the pixtype size.
+ * @param data      : pointer to actual band data, required to
+ *                    be aligned accordingly to
+ *                    rt_pixtype_aligment(pixtype) and big enough
+ *                    to hold raster width*height values.
+ *                    Data will NOT be copied, ownership is left
+ *                    to caller which is responsible to keep it
+ *                    allocated for the whole lifetime of the returned
+ *                    rt_band.
+ *
+ * @return an rt_band or NULL on failure
+ */
+rt_band rt_band_new_inline(
+	uint16_t width, uint16_t height,
+	rt_pixtype pixtype,
+	uint32_t hasnodata, double nodataval,
+	uint8_t* data
+);
+
+/**
+ * Create an out-db rt_band
+ *
+ * @param width     : number of pixel columns
+ * @param height    : number of pixel rows
+ * @param pixtype   : pixel type for the band
+ * @param hasnodata : indicates if the band has nodata value
+ * @param nodataval : the nodata value, will be appropriately
+ *                    truncated to fit the pixtype size.
+ * @param bandNum   : 0-based band number in the external file
+ *                    to associate this band with.
+ * @param path      : NULL-terminated path string pointing to the file
+ *                    containing band data. The string will NOT be
+ *                    copied, ownership is left to caller which is
+ *                    responsible to keep it allocated for the whole
+ *                    lifetime of the returned rt_band.
+ *
+ * @return an rt_band or NULL on failure
+ */
+rt_band rt_band_new_offline(
+	uint16_t width, uint16_t height,
+	rt_pixtype pixtype,
+	uint32_t hasnodata, double nodataval,
+	uint8_t bandNum, const char* path
+);
+
+/**
+ * Create a new band duplicated from source band.  Memory is allocated
+ * for band path (if band is offline) or band data (if band is online).
+ * The caller is responsible for freeing the memory when the returned
+ * rt_band is destroyed.
+ *
+ * @param : the band to duplicate
+ *
+ * @return an rt_band or NULL on failure
+ */
+rt_band rt_band_duplicate(rt_band band);
+
+/**
+ * Return non-zero if the given band data is on
+ * the filesystem.
+ *
+ * @param band : the band
+ *
+ * @return non-zero if the given band data is on
+ *         the filesystem.
+ */
+int rt_band_is_offline(rt_band band);
+
+/**
+ * Return band's external path (only valid when rt_band_is_offline
+ * returns non-zero).
+ *
+ * @param band : the band
+ *
+ * @return string or NULL if band is not offline
+ */
+const char* rt_band_get_ext_path(rt_band band);
+
+/**
+ * Return bands' external band number (only valid when
+ * rt_band_is_offline returns non-zero).
+ *
+ * @param band : the band
+ * @param bandnum : external band number (0-based)
+ *
+ * @return ES_NONE or ES_ERROR if band is NOT out-db
+ */
+rt_errorstate rt_band_get_ext_band_num(rt_band band, uint8_t *bandnum);
+
+/**
+ * Return pixeltype of this band
+ *
+ * @param band : the band
+ *
+ * @return band's pixeltype
+ */
+rt_pixtype rt_band_get_pixtype(rt_band band);
+
+/**
+ * Return width of this band
+ *
+ * @param band : the band
+ *
+ * @return band's width
+ */
+uint16_t rt_band_get_width(rt_band band);
+
+/**
+ * Return height of this band
+ *
+ * @param band : the band
+ *
+ * @return band's height
+ */
+uint16_t rt_band_get_height(rt_band band);
+
+/**
+ * Return 0 (FALSE) or non-zero (TRUE) indicating if rt_band is responsible
+ * for managing the memory for band data
+ *
+ * @param band : the band
+ *
+ * @return non-zero indicates that rt_band manages the memory
+ * allocated for band data
+ */
+int rt_band_get_ownsdata_flag(rt_band band);
+
+/* set ownsdata flag */
+void rt_band_set_ownsdata_flag(rt_band band, int flag);
+
+/**
+	* Get pointer to raster band data
+	*
+	* @param band : the band who's data to get
+	*
+	* @return pointer to band data or NULL if error
+	*/
+void* rt_band_get_data(rt_band band);
+
+/**
+	* Load offline band's data.  Loaded data is internally owned
+	* and should not be released by the caller.  Data will be
+	* released when band is destroyed with rt_band_destroy().
+	*
+	* @param band : the band who's data to get
+	*
+	* @return ES_NONE if success, ES_ERROR if failure
+	*/
+rt_errorstate rt_band_load_offline_data(rt_band band);
+
+/**
+ * Destroy a raster band
+ *
+ * @param band : the band to destroy
+ */
+void rt_band_destroy(rt_band band);
+
+/**
+ * Get hasnodata flag value
+ *
+ * @param band : the band on which to check the hasnodata flag
+ *
+ * @return the hasnodata flag.
+ */
+int rt_band_get_hasnodata_flag(rt_band band);
+
+/**
+ * Set hasnodata flag value
+ * @param band : the band on which to set the hasnodata flag
+ * @param flag : the new hasnodata flag value. Must be 1 or 0.
+ */
+void rt_band_set_hasnodata_flag(rt_band band, int flag);
+
+/**
+ * Set isnodata flag value
+ *
+ * @param band : the band on which to set the isnodata flag
+ * @param flag : the new isnodata flag value. Must be 1 or 0
+ *
+ * @return ES_NONE or ES_ERROR
+ */
+rt_errorstate rt_band_set_isnodata_flag(rt_band band, int flag);
+
+/**
+ * Get isnodata flag value
+ *
+ * @param band : the band on which to check the isnodata flag
+ *
+ * @return the hasnodata flag.
+ */
+int rt_band_get_isnodata_flag(rt_band band);
+
+/**
+ * Set nodata value
+ *
+ * @param band : the band to set nodata value to
+ * @param val : the nodata value
+ * @param converted : (optional) if non-zero, value was
+ * truncated/clamped/converted
+ *
+ * @return ES_NONE or ES_ERROR
+ */
+rt_errorstate rt_band_set_nodata(rt_band band, double val, int *converted);
+
+/**
+ * Get NODATA value
+ *
+ * @param band: the band whose NODATA value will be returned
+ * @param nodata: the band's NODATA value
+ *
+ * @return ES_NONE or ES_ERROR
+ */
+rt_errorstate rt_band_get_nodata(rt_band band, double *nodata);
+
+/**
+ * Set values of multiple pixels.  Unlike rt_band_set_pixel,
+ * values in vals are expected to be of the band's pixel type
+ * as this function uses memcpy.
+ *
+ * It is important to be careful when using this function as
+ * the number of values being set may exceed a pixel "row".
+ * Remember that the band values are stored in a stream (1-D array)
+ * regardless of what the raster's width and height might be.
+ * So, setting a number of values may cross multiple pixel "rows".
+ *
+ * @param band : the band to set value to
+ * @param x : pixel column (0-based)
+ * @param y : pixel row (0-based)
+ * @param vals : the pixel values to apply
+ * @param len : # of elements in vals
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_band_set_pixel_line(
+	rt_band band,
+	int x, int y,
+	void *vals, uint32_t len
+);
+
+/**
+ * Set single pixel's value
+ *
+ * @param band : the band to set value to
+ * @param x : pixel column (0-based)
+ * @param y : pixel row (0-based)
+ * @param val : the pixel value
+ * @param converted : (optional) non-zero if value truncated/clamped/converted
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_band_set_pixel(
+	rt_band band,
+	int x, int y,
+	double val,
+	int *converted
+);
+
+/**
+ * Get values of multiple pixels.  Unlike rt_band_get_pixel,
+ * values in vals are of the band's pixel type so cannot be
+ * assumed to be double.  Function uses memcpy.
+ *
+ * It is important to be careful when using this function as
+ * the number of values being fetched may exceed a pixel "row".
+ * Remember that the band values are stored in a stream (1-D array)
+ * regardless of what the raster's width and height might be.
+ * So, getting a number of values may cross multiple pixel "rows".
+ *
+ * @param band : the band to get pixel value from
+ * @param x : pixel column (0-based)
+ * @param y : pixel row (0-based)
+ * @param len : the number of pixels to get
+ * @param **vals : the pixel values
+ * @param *nvals : the number of pixel values being returned
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_band_get_pixel_line(
+	rt_band band,
+	int x, int y,
+	uint16_t len,
+	void **vals, uint16_t *nvals
+);
+
+/**
+ * Get pixel value. If band's isnodata flag is TRUE, value returned 
+ * will be the band's NODATA value
+ *
+ * @param band : the band to get pixel value from
+ * @param x : pixel column (0-based)
+ * @param y : pixel row (0-based)
+ * @param *value : pixel value
+ * @param *nodata : 0 if pixel is not NODATA
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_band_get_pixel(
+	rt_band band,
+	int x, int y,
+	double *value,
+	int *nodata
+);
+
+/**
+ * Get nearest pixel(s) with value (not NODATA) to specified pixel
+ *
+ * @param band : the band to get nearest pixel(s) from
+ * @param x : pixel column (0-based)
+ * @param y : pixel row (0-based)
+ * @param distancex : the number of pixels around the specified pixel
+ * along the X axis
+ * @param distancey : the number of pixels around the specified pixel
+ * along the Y axis
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * to check for pixels with value
+ * @param npixels : return set of rt_pixel object or NULL
+ *
+ * @return -1 on error, otherwise the number of rt_pixel objects
+ * in npixels
+ */
+int rt_band_get_nearest_pixel(
+	rt_band band,
+	int x, int y,
+	uint16_t distancex, uint16_t distancey,
+	int exclude_nodata_value,
+	rt_pixel *npixels
+);
+
+/**
+ * Search band for pixel(s) with search values
+ *
+ * @param band : the band to query for minimum and maximum pixel values
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * @param searchset : array of values to count
+ * @param searchcount : the number of search values
+ * @param pixels : pixels with the search value
+ *
+ * @return -1 on error, otherwise number of pixels
+ */
+int rt_band_get_pixel_of_value(
+	rt_band band, int exclude_nodata_value,
+	double *searchset, int searchcount,
+	rt_pixel *pixels
+);
+
+/**
+ * Returns the minimal possible value for the band according to the pixel type.
+ *
+ * @param band : the band to get info from
+ *
+ * @return the minimal possible value for the band.
+ */
+double rt_band_get_min_value(rt_band band);
+
+/**
+ * Returns TRUE if the band is only nodata values
+ *
+ * @param band : the band to get info from
+ *
+ * @return TRUE if the band is only nodata values, FALSE otherwise
+ */
+int rt_band_check_is_nodata(rt_band band);
+
+/**
+ * Compare clamped value to band's clamped NODATA value
+ *
+ * @param band : the band whose NODATA value will be used for comparison
+ * @param val : the value to compare to the NODATA value
+ *
+ * @return 2 if unclamped value is unclamped NODATA
+ *         1 if clamped value is clamped NODATA
+ *         0 if clamped values is NOT clamped NODATA
+ */
+int rt_band_clamped_value_is_nodata(rt_band band, double val);
+
+/**
+ * Correct value when clamped value is equal to clamped NODATA value.
+ * Correction does NOT occur if unclamped value is exactly unclamped
+ * NODATA value.
+ * 
+ * @param band : the band whose NODATA value will be used for comparison
+ * @param val : the value to compare to the NODATA value and correct
+ * @param *newval : pointer to corrected value
+ * @param *corrected : (optional) non-zero if val was corrected
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_band_corrected_clamped_value(
+	rt_band band,
+	double val,
+	double *newval, int *corrected
+);
+
+/**
+ * Compute summary statistics for a band
+ *
+ * @param band : the band to query for summary stats 
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * @param sample : percentage of pixels to sample
+ * @param inc_vals : flag to include values in return struct
+ * @param cK : number of pixels counted thus far in coverage
+ * @param cM : M component of 1-pass stddev for coverage
+ * @param cQ : Q component of 1-pass stddev for coverage
+ *
+ * @return the summary statistics for a band or NULL
+ */
+rt_bandstats rt_band_get_summary_stats(
+	rt_band band,
+	int exclude_nodata_value, double sample, int inc_vals,
+	uint64_t *cK, double *cM, double *cQ
+);
+	
+/**
+ * Count the distribution of data
+ *
+ * @param stats : a populated stats struct for processing
+ * @param bin_count : the number of bins to group the data by
+ * @param bin_width : the width of each bin as an array
+ * @param bin_width_count : number of values in bin_width
+ * @param right : evaluate bins by (a,b] rather than default [a,b)
+ * @param min : user-defined minimum value of the histogram
+ *   a value less than the minimum value is not counted in any bins
+ *   if min = max, min and max are not used
+ * @param max : user-defined maximum value of the histogram
+ *   a value greater than the max value is not counted in any bins
+ *   if min = max, min and max are not used
+ * @param rtn_count : set to the number of bins being returned
+ *
+ * @return the histogram of the data or NULL
+ */
+rt_histogram rt_band_get_histogram(
+	rt_bandstats stats,
+	int bin_count, double *bin_widths, int bin_widths_count,
+	int right, double min, double max,
+	uint32_t *rtn_count
+);
+
+/**
+ * Compute the default set of or requested quantiles for a set of data
+ * the quantile formula used is same as Excel and R default method
+ *
+ * @param stats : a populated stats struct for processing
+ * @param quantiles : the quantiles to be computed
+ * @param quantiles_count : the number of quantiles to be computed
+ * @param rtn_count : the number of quantiles being returned
+ *
+ * @return the default set of or requested quantiles for a band or NULL
+ */
+rt_quantile rt_band_get_quantiles(rt_bandstats stats,
+	double *quantiles, int quantiles_count, uint32_t *rtn_count);
+
+struct quantile_llist;
+int quantile_llist_destroy(
+	struct quantile_llist **list,
+	uint32_t list_count
+);
+
+/**
+ * Compute the default set of or requested quantiles for a coverage
+ *
+ * This function is based upon the algorithm described in:
+ *
+ * A One-Pass Space-Efficient Algorithm for Finding Quantiles (1995)
+ *   by Rakesh Agrawal, Arun Swami
+ *   in Proc. 7th Intl. Conf. Management of Data (COMAD-95)
+ *
+ * http://www.almaden.ibm.com/cs/projects/iis/hdb/Publications/papers/comad95.pdf
+ *
+ * In the future, it may be worth exploring algorithms that don't
+ *   require the size of the coverage
+ *
+ * @param band : the band to include in the quantile search
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * @param sample : percentage of pixels to sample
+ * @param cov_count : number of values in coverage
+ * @param qlls : set of quantile_llist structures
+ * @param qlls_count : the number of quantile_llist structures
+ * @param quantiles : the quantiles to be computed
+ *   if bot qlls and quantiles provided, qlls is used
+ * @param quantiles_count : the number of quantiles to be computed
+ * @param rtn_count : the number of quantiles being returned
+ *
+ * @return the default set of or requested quantiles for a band or NULL
+ */
+rt_quantile rt_band_get_quantiles_stream(
+	rt_band band,
+	int exclude_nodata_value, double sample,
+	uint64_t cov_count,
+	struct quantile_llist **qlls, uint32_t *qlls_count,
+	double *quantiles, int quantiles_count,
+	uint32_t *rtn_count
+);
+
+/**
+ * Count the number of times provided value(s) occur in
+ * the band
+ *
+ * @param band : the band to query for minimum and maximum pixel values
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * @param search_values : array of values to count
+ * @param search_values_count : the number of search values
+ * @param roundto : the decimal place to round the values to
+ * @param rtn_total : the number of pixels examined in the band
+ * @param rtn_count : the number of value counts being returned
+ *
+ * @return the number of times the provide value(s) occur or NULL
+ */
+rt_valuecount rt_band_get_value_count(
+	rt_band band, int exclude_nodata_value,
+	double *search_values, uint32_t search_values_count, double roundto,
+	uint32_t *rtn_total, uint32_t *rtn_count
+);
+
+/**
+ * Returns new band with values reclassified
+ * 
+ * @param srcband : the band who's values will be reclassified
+ * @param pixtype : pixel type of the new band
+ * @param hasnodata : indicates if the band has a nodata value
+ * @param nodataval : nodata value for the new band
+ * @param exprset : array of rt_reclassexpr structs
+ * @param exprcount : number of elements in expr
+ *
+ * @return a new rt_band or NULL on error
+ */
+rt_band rt_band_reclass(
+	rt_band srcband, rt_pixtype pixtype,
+	uint32_t hasnodata, double nodataval,
+	rt_reclassexpr *exprset, int exprcount
+);
+
+/*- rt_raster --------------------------------------------------------*/
+
+/**
+ * Construct a raster with given dimensions.
+ *
+ * Transform will be set to identity.
+ * Will contain no bands.
+ *
+ * @param width : number of pixel columns
+ * @param height : number of pixel rows
+ *
+ * @return an rt_raster or NULL if out of memory
+ */
+rt_raster rt_raster_new(uint32_t width, uint32_t height);
+
+/**
+ * Construct an rt_raster from a binary WKB representation
+ *
+ * @param wkb : an octet stream
+ * @param wkbsize : size (in bytes) of the wkb octet stream
+ *
+ * @return an rt_raster or NULL on error (out of memory or
+ *         malformed WKB).
+ *
+ */
+rt_raster rt_raster_from_wkb(const uint8_t* wkb, uint32_t wkbsize);
+
+/**
+ * Construct an rt_raster from a text HEXWKB representation
+ *
+ * @param hexwkb : an hex-encoded stream
+ * @param hexwkbsize : size (in bytes) of the hexwkb stream
+ *
+ * @return an rt_raster or NULL on error (out of memory or
+ *         malformed WKB).
+ *
+ */
+rt_raster rt_raster_from_hexwkb(const char* hexwkb, uint32_t hexwkbsize);
+
+/**
+ * Return this raster in WKB form
+ *
+ * @param raster : the raster
+ * @param outasin : if TRUE, out-db bands are treated as in-db
+ * @param wkbsize : will be set to the size of returned wkb form
+ *
+ * @return WKB of raster or NULL on error
+ */
+uint8_t *rt_raster_to_wkb(rt_raster raster, int outasin, uint32_t *wkbsize);
+
+/**
+ * Return this raster in HEXWKB form (null-terminated hex)
+ *
+ * @param raster : the raster
+ * @param outasin : if TRUE, out-db bands are treated as in-db
+ * @param hexwkbsize : will be set to the size of returned wkb form,
+ *                     not including the null termination
+ *
+ * @return HEXWKB of raster or NULL on error
+ */
+char *rt_raster_to_hexwkb(rt_raster raster, int outasin, uint32_t *hexwkbsize);
+
+/**
+ * Release memory associated to a raster
+ *
+ * Note that this will not release data
+ * associated to the band themselves (but only
+ * the one associated with the pointers pointing
+ * at them).
+ *
+ * @param raster : the raster to destroy
+ */
+void rt_raster_destroy(rt_raster raster);
+
+/* Get number of bands */
+int rt_raster_get_num_bands(rt_raster raster);
+
+/**
+ * Return Nth band, or NULL if unavailable
+ *
+ * @param raster : the raster
+ * @param bandNum : 0-based index of the band to return
+ *
+ * Return band at specified index or NULL if error
+ */
+rt_band rt_raster_get_band(rt_raster raster, int bandNum);
+
+/* Get number of rows */
+uint16_t rt_raster_get_width(rt_raster raster);
+
+/* Get number of columns */
+uint16_t rt_raster_get_height(rt_raster raster);
+
+/**
+ * Add band data to a raster.
+ *
+ * @param raster : the raster to add a band to
+ * @param band : the band to add, ownership left to caller.
+ *               Band dimensions are required to match with raster ones.
+ * @param index : the position where to insert the new band (0 based)
+ *
+ * @return identifier (position) for the just-added raster, or -1 on error
+ */
+int rt_raster_add_band(rt_raster raster, rt_band band, int index);
+
+/**
+ * Generate a new inline band and add it to a raster.
+ *
+ * @param raster : the raster to add a band to
+ * @param pixtype : the pixel type for the new band
+ * @param initialvalue : initial value for pixels
+ * @param hasnodata : indicates if the band has a nodata value
+ * @param nodatavalue : nodata value for the new band
+ * @param index : position to add the new band in the raster
+ *
+ * @return identifier (position) for the just-added raster, or -1 on error
+ */
+int rt_raster_generate_new_band(
+	rt_raster raster,
+	rt_pixtype pixtype,
+	double initialvalue,
+	uint32_t hasnodata, double nodatavalue,
+	int index
+);
+
+/**
+ * Set scale in projection units
+ *
+ * @param raster : the raster to set georeference of
+ * @param scaleX : scale X in projection units
+ * @param scaleY : scale Y height in projection units
+ *
+ * NOTE: doesn't recompute offsets
+ */
+void rt_raster_set_scale(rt_raster raster,
+                               double scaleX, double scaleY);
+
+/**
+ * Get scale X in projection units
+ *
+ * @param raster : the raster to get georeference of
+ *
+ * @return scale X in projection units
+ */
+double rt_raster_get_x_scale(rt_raster raster);
+
+/**
+ * Get scale Y in projection units
+ *
+ * @param raster : the raster to get georeference of
+ *
+ * @return scale Y in projection units
+ */
+double rt_raster_get_y_scale(rt_raster raster);
+
+/**
+ * Set insertion points in projection units
+ *
+ * @param raster : the raster to set georeference of
+ * @param x : x ordinate of the upper-left corner of upper-left pixel,
+ *            in projection units
+ * @param y : y ordinate of the upper-left corner of upper-left pixel,
+ *            in projection units
+ */
+void rt_raster_set_offsets(rt_raster raster,
+                           double x, double y);
+
+/**
+ * Get raster x offset, in projection units
+ *
+ * @param raster : the raster to get georeference of
+ *
+ * @return  x ordinate of the upper-left corner of upper-left pixel,
+ *          in projection units
+ */
+double rt_raster_get_x_offset(rt_raster raster);
+
+/**
+ * Get raster y offset, in projection units
+ *
+ * @param raster : the raster to get georeference of
+ *
+ * @return  y ordinate of the upper-left corner of upper-left pixel,
+ *          in projection units
+ */
+double rt_raster_get_y_offset(rt_raster raster);
+
+/**
+ * Set skews about the X and Y axis
+ *
+ * @param raster : the raster to set georeference of
+ * @param skewX : skew about the x axis
+ * @param skewY : skew about the y axis
+ */
+void rt_raster_set_skews(rt_raster raster,
+                             double skewX, double skewY);
+
+/**
+ * Get skew about the X axis
+ *
+ * @param raster : the raster to set georeference of
+ * @return skew about the Y axis
+ */
+double rt_raster_get_x_skew(rt_raster raster);
+
+/**
+ * Get skew about the Y axis
+ *
+ * @param raster : the raster to set georeference of
+ * @return skew about the Y axis
+ */
+double rt_raster_get_y_skew(rt_raster raster);
+
+/**
+* Calculates and returns the physically significant descriptors embodied
+* in the geotransform attached to the provided raster.
+*
+* @param rast the raster containing the geotransform of interest
+* @param i_mag size of a pixel along the transformed i axis
+* @param j_mag size of a pixel along the transformed j axis
+* @param theta_i angle by which the raster is rotated (radians positive clockwise)
+* @param theta_ij angle from transformed i axis to transformed j axis
+* (radians positive counterclockwise)
+*
+*/
+void rt_raster_get_phys_params(rt_raster rast,
+        double *i_mag, double *j_mag, double *theta_i, double *theta_ij) ;
+
+/**
+* Calculates the geotransform coefficients and applies them to the
+* supplied raster. The coefficients will not be applied if there was an
+* error during the calculation.
+*
+* This method affects only the scale and skew coefficients. The offset
+* parameters are not changed.
+*
+* @param rast the raster in which the geotransform will be stored.
+* @param i_mag size of a pixel along the transformed i axis
+* @param j_mag size of a pixel along the transformed j axis
+* @param theta_i angle by which the raster is rotated (radians positive clockwise)
+* @param theta_ij angle from transformed i axis to transformed j axis
+* (radians positive counterclockwise)
+*/
+void rt_raster_set_phys_params(rt_raster rast,
+        double i_mag, double j_mag, double theta_i, double theta_ij) ;
+
+
+/**
+* Calculates the physically significant descriptors embodied in an
+* arbitrary geotransform. Always succeeds unless one or more of the
+* output pointers is set to NULL.
+*
+* @param xscale geotransform coefficient o_11
+* @param xskew geotransform coefficient o_12
+* @param yskew geotransform coefficient o_21
+* @param yscale geotransform coefficient o_22
+* @param i_mag size of a pixel along the transformed i axis
+* @param j_mag size of a pixel along the transformed j axis
+* @param theta_i angle by which the raster is rotated (radians positive clockwise)
+* @param theta_ij angle from transformed i axis to transformed j axis
+* (radians positive counterclockwise)
+*/
+void rt_raster_calc_phys_params(double xscale,
+        double xskew, double yskew, double yscale,
+        double *i_mag, double *j_mag, double *theta_i, double *theta_ij) ;
+
+
+/**
+* Calculates the coefficients of a geotransform given the physically
+* significant parameters describing the transform. Will fail if any of the
+* result pointers is NULL, or if theta_ij has an illegal value (0 or PI).
+*
+* @param i_mag size of a pixel along the transformed i axis
+* @param j_mag size of a pixel along the transformed j axis
+* @param theta_i angle by which the raster is rotated (radians positive clockwise)
+* @param theta_ij angle from transformed i axis to transformed j axis
+* (radians positive counterclockwise)
+* @param xscale geotransform coefficient o_11
+* @param xskew geotransform coefficient o_12
+* @param yskew geotransform coefficient o_21
+* @param yscale geotransform coefficient o_22
+* @return 1 if the calculation succeeded, 0 if error.
+*/
+int rt_raster_calc_gt_coeff(double i_mag,
+        double j_mag, double theta_i, double theta_ij,
+        double *xscale, double *xskew, double *yskew, double *yscale) ;
+
+/**
+ * Set raster's SRID
+ *
+ * @param raster : the raster to set SRID of
+ * @param srid : the SRID to set for the raster
+ */
+void rt_raster_set_srid(rt_raster raster, int32_t srid);
+
+/**
+ * Get raster's SRID
+ * @param raster : the raster to set SRID of
+ *
+ * @return the raster's SRID
+ */
+int32_t rt_raster_get_srid(rt_raster raster);
+
+/**
+ * Get 6-element array of raster inverse geotransform matrix
+ *
+ * @param raster : the raster to get matrix of
+ * @param gt : optional input parameter, 6-element geotransform matrix
+ * @param igt : output parameter, 6-element inverse geotransform matrix
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_get_inverse_geotransform_matrix(
+	rt_raster raster,
+	double *gt, double *igt
+);
+
+/**
+ * Get 6-element array of raster geotransform matrix
+ *
+ * @param raster : the raster to get matrix of
+ * @param gt : output parameter, 6-element geotransform matrix
+ */
+void rt_raster_get_geotransform_matrix(rt_raster raster,
+	double *gt);
+
+/**
+ * Set raster's geotransform using 6-element array
+ *
+ * @param raster : the raster to set matrix of
+ * @param gt : intput parameter, 6-element geotransform matrix
+ *
+ */
+void rt_raster_set_geotransform_matrix(rt_raster raster,
+	double *gt);
+
+/**
+ * Convert an xr, yr raster point to an xw, yw point on map
+ *
+ * @param raster : the raster to get info from
+ * @param xr : the pixel's column
+ * @param yr : the pixel's row
+ * @param xw : output parameter, X ordinate of the geographical point
+ * @param yw : output parameter, Y ordinate of the geographical point
+ * @param gt : input/output parameter, 3x2 geotransform matrix
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_cell_to_geopoint(
+	rt_raster raster,
+	double xr, double yr,
+	double* xw, double* yw,
+	double *gt
+);
+
+/**
+ * Convert an xw, yw map point to a xr, yr raster point
+ *
+ * @param raster : the raster to get info from
+ * @param xw : X ordinate of the geographical point
+ * @param yw : Y ordinate of the geographical point
+ * @param xr : output parameter, the pixel's column
+ * @param yr : output parameter, the pixel's row
+ * @param igt : input/output parameter, inverse geotransform matrix
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_geopoint_to_cell(
+	rt_raster raster,
+	double xw, double yw,
+	double *xr, double *yr,
+	double *igt
+);
+
+/**
+ * Get raster's convex hull.
+ *
+ * The convex hull is a 4 vertices (5 to be closed)
+ * single ring polygon bearing the raster's rotation and using
+ * projection coordinates.
+ *
+ * @param raster : the raster to get info from
+ * @param **hull : pointer to convex hull
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_get_convex_hull(rt_raster raster, LWGEOM **hull);
+
+/**
+ * Get raster's envelope.
+ *
+ * The envelope is the minimum bounding rectangle of the raster
+ *
+ * @param raster : the raster to get envelope of
+ * @param env : pointer to rt_envelope
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_get_envelope(rt_raster raster, rt_envelope *env);
+
+/**
+ * Get raster's envelope as a geometry
+ *
+ * @param raster : the raster to get info from
+ * @param **env : pointer to envelope geom
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_get_envelope_geom(rt_raster raster, LWGEOM **env);
+
+/**
+ * Get raster perimeter
+ *
+ * The perimeter is a 4 vertices (5 to be closed)
+ * single ring polygon bearing the raster's rotation and using
+ * projection coordinates.
+ *
+ * @param raster : the raster to get info from
+ * @param nband : the band for the perimeter. 0-based
+ * @param **perimeter : pointer to perimeter
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_get_perimeter(
+	rt_raster raster, int nband,
+	LWGEOM **perimeter
+);
+
+/*
+ * Compute skewed extent that covers unskewed extent.
+ *
+ * @param envelope : unskewed extent of type rt_envelope
+ * @param skew : pointer to 2-element array (x, y) of skew
+ * @param scale : pointer to 2-element array (x, y) of scale
+ * @param tolerance : value between 0 and 1 where the smaller the tolerance
+ * results in an extent approaching the "minimum" skewed extent.
+ * If value <= 0, tolerance = 0.1.  If value > 1, tolerance = 1.
+ *
+ * @return skewed raster who's extent covers unskewed extent, NULL on error
+ */
+rt_raster
+rt_raster_compute_skewed_raster(
+	rt_envelope extent,
+	double *skew,
+	double *scale,
+	double tolerance
+);
+
+/**
+ * Get a raster pixel as a polygon.
+ *
+ * The pixel shape is a 4 vertices (5 to be closed) single
+ * ring polygon bearing the raster's rotation
+ * and using projection coordinates
+ *
+ * @param raster : the raster to get pixel from
+ * @param x : the column number
+ * @param y : the row number
+ *
+ * @return the pixel polygon, or NULL on error.
+ *
+ */
+LWPOLY* rt_raster_pixel_as_polygon(rt_raster raster, int x, int y);
+
+/**
+ * Get a raster as a surface (multipolygon).  If a band is specified,
+ * those pixels with value (not NODATA) contribute to the area
+ * of the output multipolygon.
+ *
+ * @param raster : the raster to convert to a multipolygon
+ * @param nband : the 0-based band of raster rast to use
+ *   if value is less than zero, bands are ignored.
+ * @param **surface : raster as a surface (multipolygon).
+ *   if all pixels are NODATA, NULL is set
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_raster_surface(rt_raster raster, int nband, LWMPOLY **surface);
+
+/**
+ * Returns a set of "geomval" value, one for each group of pixel
+ * sharing the same value for the provided band.
+ *
+ * A "geomval" value is a complex type composed of a geometry 
+ * in LWPOLY representation (one for each group of pixel sharing
+ * the same value) and the value associated with this geometry.
+ *
+ * @param raster : the raster to get info from.
+ * @param nband : the band to polygonize. 0-based
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * to check for pixels with value
+ *
+ * @return A set of "geomval" values, one for each group of pixels
+ * sharing the same value for the provided band. The returned values are
+ * LWPOLY geometries.
+ */
+rt_geomval
+rt_raster_gdal_polygonize(
+	rt_raster raster, int nband,
+	int exclude_nodata_value,
+	int * pnElements
+);
+
+/**
+ * Return this raster in serialized form.
+ * Memory (band data included) is copied from rt_raster.
+ *
+ * Serialized form is documented in doc/RFC1-SerializedFormat.
+ */
+void* rt_raster_serialize(rt_raster raster);
+
+/**
+ * Return a raster from a serialized form.
+ *
+ * Serialized form is documented in doc/RFC1-SerializedFormat.
+ *
+ * NOTE: the raster will contain pointer to the serialized
+ * form (including band data), which must be kept alive.
+ */
+rt_raster rt_raster_deserialize(void* serialized, int header_only);
+
+/**
+ * Return TRUE if the raster is empty. i.e. is NULL, width = 0 or height = 0
+ *
+ * @param raster : the raster to get info from
+ *
+ * @return TRUE if the raster is empty, FALSE otherwise
+ */
+int rt_raster_is_empty(rt_raster raster);
+
+/**
+ * Return TRUE if the raster has a band of this number.
+ *
+ * @param raster : the raster to get info from
+ * @param nband : the band number. 0-based
+ *
+ * @return TRUE if the raster has a band of this number, FALSE otherwise
+ */
+int rt_raster_has_band(rt_raster raster, int nband);
+
+/**
+ * Copy one band from one raster to another.  Bands are duplicated from
+ * fromrast to torast using rt_band_duplicate.  The caller will need
+ * to ensure that the copied band's data or path remains allocated
+ * for the lifetime of the copied bands.
+ *
+ * @param torast : raster to copy band to
+ * @param fromrast : raster to copy band from
+ * @param fromindex : index of band in source raster, 0-based
+ * @param toindex : index of new band in destination raster, 0-based
+ *
+ * @return The band index of the second raster where the new band is copied.
+ *   -1 if error
+ */
+int rt_raster_copy_band(
+	rt_raster torast, rt_raster fromrast,
+	int fromindex, int toindex
+);
+
+/**
+ * Construct a new rt_raster from an existing rt_raster and an array
+ * of band numbers
+ *
+ * @param raster : the source raster
+ * @param bandNums : array of band numbers to extract from source raster
+ *                   and add to the new raster (0 based)
+ * @param count : number of elements in bandNums
+ *
+ * @return a new rt_raster or NULL on error
+ */
+rt_raster rt_raster_from_band(rt_raster raster, uint32_t *bandNums,
+	int count);
+
+/**
+ * Replace band at provided index with new band
+ * 
+ * @param raster: raster of band to be replaced
+ * @param band : new band to add to raster
+ * @param index : index of band to replace (0-based)
+ *
+ * @return NULL on error or replaced band
+ */
+rt_band rt_raster_replace_band(rt_raster raster, rt_band band,
+	int index);
+
+/**
+ * Clone an existing raster
+ *
+ * @param raster : raster to clone
+ * @param deep : flag indicating if bands should be cloned
+ *
+ * @return a new rt_raster or NULL on error
+ */
+rt_raster rt_raster_clone(rt_raster raster, uint8_t deep);
+
+/**
+ * Return formatted GDAL raster from raster
+ *
+ * @param raster : the raster to convert
+ * @param srs : the raster's coordinate system in OGC WKT
+ * @param format : format to convert to. GDAL driver short name
+ * @param options : list of format creation options. array of strings
+ * @param gdalsize : will be set to the size of returned bytea
+ *
+ * @return formatted GDAL raster.  the calling function is responsible
+ *   for freeing the returned data using CPLFree()
+ */
+uint8_t *rt_raster_to_gdal(rt_raster raster, const char *srs,
+	char *format, char **options, uint64_t *gdalsize);
+
+/**
+ * Returns a set of available GDAL drivers
+ *
+ * @param drv_count : number of GDAL drivers available
+ * @param cancc : if non-zero, filter drivers to only those
+ *   with support for CreateCopy and VirtualIO
+ *
+ * @return set of "gdaldriver" values of available GDAL drivers
+ */
+rt_gdaldriver rt_raster_gdal_drivers(uint32_t *drv_count, uint8_t cancc);
+
+/**
+ * Return GDAL dataset using GDAL MEM driver from raster
+ *
+ * @param raster : raster to convert to GDAL MEM
+ * @param srs : the raster's coordinate system in OGC WKT
+ * @param bandNums : array of band numbers to extract from raster
+ *   and include in the GDAL dataset (0 based)
+ * @param excludeNodataValues : array of zero, nonzero where if non-zero,
+ *   ignore nodata values for the band
+ * to check for pixels with value
+ * @param count : number of elements in bandNums and exclude_nodata_values
+ * @param rtn_drv : is set to the GDAL driver object
+ * @param destroy_rtn_drv : if non-zero, caller must destroy the MEM driver
+ *
+ * @return GDAL dataset using GDAL MEM driver
+ */
+GDALDatasetH rt_raster_to_gdal_mem(
+	rt_raster raster,
+	const char *srs,
+	uint32_t *bandNums,
+	int *excludeNodataValues,
+	int count,
+	GDALDriverH *rtn_drv, int *destroy_rtn_drv
+);
+
+/**
+ * Return a raster from a GDAL dataset
+ *
+ * @param ds : the GDAL dataset to convert to a raster
+ *
+ * @return raster or NULL
+ */
+rt_raster rt_raster_from_gdal_dataset(GDALDatasetH ds);
+
+/**
+ * Return a warped raster using GDAL Warp API
+ *
+ * @param raster : raster to transform
+ * @param src_srs : the raster's coordinate system in OGC WKT
+ * @param dst_srs : the warped raster's coordinate system in OGC WKT
+ * @param scale_x : the x size of pixels of the warped raster's pixels in
+ *   units of dst_srs
+ * @param scale_y : the y size of pixels of the warped raster's pixels in
+ *   units of dst_srs
+ * @param width : the number of columns of the warped raster.  note that
+ *   width/height CANNOT be used with scale_x/scale_y
+ * @param height : the number of rows of the warped raster.  note that
+ *   width/height CANNOT be used with scale_x/scale_y
+ * @param ul_xw : the X value of upper-left corner of the warped raster in
+ *   units of dst_srs
+ * @param ul_yw : the Y value of upper-left corner of the warped raster in
+ *   units of dst_srs
+ * @param grid_xw : the X value of point on a grid to align warped raster
+ *   to in units of dst_srs
+ * @param grid_yw : the Y value of point on a grid to align warped raster
+ *   to in units of dst_srs
+ * @param skew_x : the X skew of the warped raster in units of dst_srs
+ * @param skew_y : the Y skew of the warped raster in units of dst_srs
+ * @param resample_alg : the resampling algorithm
+ * @param max_err : maximum error measured in input pixels permitted
+ *   (0.0 for exact calculations)
+ *
+ * @return the warped raster or NULL
+ */
+rt_raster rt_raster_gdal_warp(
+	rt_raster raster,
+	const char *src_srs, const char *dst_srs,
+	double *scale_x, double *scale_y,
+	int *width, int *height,
+	double *ul_xw, double *ul_yw,
+	double *grid_xw, double *grid_yw,
+	double *skew_x, double *skew_y,
+	GDALResampleAlg resample_alg, double max_err);
+
+/**
+ * Return a raster of the provided geometry
+ *
+ * @param wkb : WKB representation of the geometry to convert
+ * @param wkb_len : length of the WKB representation of the geometry
+ * @param srs : the geometry's coordinate system in OGC WKT
+ * @param num_bands : number of bands in the output raster
+ * @param pixtype : data type of each band
+ * @param init : array of values to initialize each band with
+ * @param value : array of values for pixels of geometry
+ * @param nodata : array of nodata values for each band
+ * @param hasnodata : array flagging the presence of nodata for each band
+ * @param width : the number of columns of the raster
+ * @param height : the number of rows of the raster
+ * @param scale_x : the pixel width of the raster
+ * @param scale_y : the pixel height of the raster
+ * @param ul_xw : the X value of upper-left corner of the raster
+ * @param ul_yw : the Y value of upper-left corner of the raster
+ * @param grid_xw : the X value of point on grid to align raster to
+ * @param grid_yw : the Y value of point on grid to align raster to
+ * @param skew_x : the X skew of the raster
+ * @param skew_y : the Y skew of the raster
+ * @param options : array of options.  only option is "ALL_TOUCHED"
+ *
+ * @return the raster of the provided geometry or NULL
+ */
+rt_raster rt_raster_gdal_rasterize(const unsigned char *wkb,
+	uint32_t wkb_len, const char *srs,
+	uint32_t num_bands, rt_pixtype *pixtype,
+	double *init, double *value,
+	double *nodata, uint8_t *hasnodata,
+	int *width, int *height,
+	double *scale_x, double *scale_y,
+	double *ul_xw, double *ul_yw,
+	double *grid_xw, double *grid_yw,
+	double *skew_x, double *skew_y,
+	char **options
+);
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter intersects returns non-zero if two rasters intersect
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param intersects : non-zero value if the two rasters' bands intersects
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_intersects(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *intersects
+);
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter overlaps returns non-zero if two rasters overlap
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param overlaps : non-zero value if the two rasters' bands overlaps
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_overlaps(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *overlaps
+);
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter contains returns non-zero if rast1 contains rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param contains : non-zero value if rast1 contains rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_contains(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *contains
+);
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter contains returns non-zero if rast1 contains properly rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param contains : non-zero value if rast1 contains properly rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_contains_properly(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *contains
+);
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter touches returns non-zero if two rasters touch
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param touches : non-zero value if the two rasters' bands touch
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_touches(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *touches
+);
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter covers returns non-zero if rast1 covers rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param covers : non-zero value if rast1 covers rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_covers(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *covers
+);
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter coveredby returns non-zero if rast1 is covered by rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param coveredby : non-zero value if rast1 is covered by rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_coveredby(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *coveredby
+);
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter dwithin returns non-zero if rast1 is within the specified
+ *   distance of rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param dwithin : non-zero value if rast1 is within the specified distance
+ *   of rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_within_distance(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	double distance,
+	int *dwithin
+);
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter dfwithin returns non-zero if rast1 is fully within the specified
+ *   distance of rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param dfwithin : non-zero value if rast1 is fully within the specified
+ *   distance of rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_fully_within_distance(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	double distance,
+	int *dfwithin
+);
+
+/*
+ * Return ES_ERROR if error occurred in function.
+ * Paramter aligned returns non-zero if two rasters are aligned
+ *
+ * @param rast1 : the first raster for alignment test
+ * @param rast2 : the second raster for alignment test
+ * @param *aligned : non-zero value if the two rasters are aligned
+ * @param *reason : reason why rasters are not aligned
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_same_alignment(
+	rt_raster rast1,
+	rt_raster rast2,
+	int *aligned, char **reason
+);
+
+/*
+ * Return raster of computed extent specified extenttype applied
+ * on two input rasters.  The raster returned should be freed by
+ * the caller
+ *
+ * @param rast1 : the first raster
+ * @param rast2 : the second raster
+ * @param extenttype : type of extent for the output raster
+ * @param *rtnraster : raster of computed extent
+ * @param *offset : 4-element array indicating the X,Y offsets
+ * for each raster. 0,1 for rast1 X,Y. 2,3 for rast2 X,Y.
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_raster_from_two_rasters(
+	rt_raster rast1, rt_raster rast2,
+	rt_extenttype extenttype,
+	rt_raster *rtnraster, double *offset
+);
+
+/**
+ * n-raster iterator.  Returns a raster with one band.
+ * The raster returned should be freed by the caller
+ *
+ * @param itrset : set of rt_iterator objects.
+ * @param itrcount : number of objects in itrset.
+ * @param extenttype : type of extent for the output raster.
+ * @param customextent : raster specifying custom extent.
+ * is only used if extenttype is ET_CUSTOM.
+ * @param pixtype : the desired pixel type of the output raster's band.
+ * @param hasnodata : indicates if the band has nodata value
+ * @param nodataval : the nodata value, will be appropriately
+ * truncated to fit the pixtype size.
+ * @param distancex : the number of pixels around the specified pixel
+ * along the X axis
+ * @param distancey : the number of pixels around the specified pixel
+ * along the Y axis
+ * @param *userarg : pointer to any argument that is passed as-is to callback.
+ * @param *callback : callback function for actual processing of pixel values.
+ * @param *rtnraster : return one band raster from iterator process
+ *
+ * The callback function _must_ have the following signature.
+ *
+ *    int FNAME(rt_iterator_arg arg, void *userarg, double *value, int *nodata)
+ *
+ * The callback function _must_ return zero (error) or non-zero (success)
+ * indicating whether the function ran successfully.
+ * The parameters passed to the callback function are as follows.
+ *
+ * - rt_iterator_arg arg : struct containing pixel values, NODATA flags and metadata
+ * - void *userarg : NULL or calling function provides to rt_raster_iterator() for use by callback function
+ * - double *value : value of pixel to be burned by rt_raster_iterator()
+ * - int *nodata : flag (0 or 1) indicating that pixel to be burned is NODATA
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate
+rt_raster_iterator(
+	rt_iterator itrset, uint16_t itrcount,
+	rt_extenttype extenttype, rt_raster customextent,
+	rt_pixtype pixtype,
+	uint8_t hasnodata, double nodataval,
+	uint16_t distancex, uint16_t distancey,
+	rt_mask mask,
+	void *userarg,
+	int (*callback)(
+		rt_iterator_arg arg,
+		void *userarg,
+		double *value,
+		int *nodata
+	),
+	rt_raster *rtnraster
+);
+
+/**
+ * Returns a new raster with up to four 8BUI bands (RGBA) from
+ * applying a colormap to the user-specified band of the
+ * input raster.
+ *
+ * @param raster: input raster
+ * @param nband: 0-based index of the band to process with colormap
+ * @param colormap: rt_colormap object of colormap to apply to band
+ *
+ * @return new raster or NULL on error
+ */
+rt_raster rt_raster_colormap(
+	rt_raster raster, int nband,
+	rt_colormap colormap
+);
+
+/*- utilities -------------------------------------------------------*/
+
+/*
+ * rt_core memory functions
+ */
+extern void *rtalloc(size_t size);
+extern void *rtrealloc(void *mem, size_t size);
+extern void rtdealloc(void *mem);
+
+/*
+ * GDAL driver flags
+ */
+
+#define GDAL_ENABLE_ALL "ENABLE_ALL"
+#define GDAL_DISABLE_ALL "DISABLE_ALL"
+#define GDAL_VSICURL "VSICURL"
+
+/*
+ * Set of functions to clamp double to int of different size
+ */
+
+#if !defined(POSTGIS_RASTER_WARN_ON_TRUNCATION)
+#define POSTGIS_RASTER_WARN_ON_TRUNCATION 0
+#endif
+
+#define POSTGIS_RT_1BBMAX 1
+#define POSTGIS_RT_2BUIMAX 3
+#define POSTGIS_RT_4BUIMAX 15
+
+uint8_t
+rt_util_clamp_to_1BB(double value);
+
+uint8_t
+rt_util_clamp_to_2BUI(double value);
+
+uint8_t
+rt_util_clamp_to_4BUI(double value);
+
+int8_t
+rt_util_clamp_to_8BSI(double value);
+
+uint8_t
+rt_util_clamp_to_8BUI(double value);
+
+int16_t
+rt_util_clamp_to_16BSI(double value);
+
+uint16_t
+rt_util_clamp_to_16BUI(double value);
+
+int32_t
+rt_util_clamp_to_32BSI(double value);
+
+uint32_t
+rt_util_clamp_to_32BUI(double value);
+
+float
+rt_util_clamp_to_32F(double value);
+
+int
+rt_util_dbl_trunc_warning(
+	double initialvalue,
+	int32_t checkvalint, uint32_t checkvaluint,
+	float checkvalfloat, double checkvaldouble,
+	rt_pixtype pixtype
+);
+
+/**
+ * Convert cstring name to GDAL Resample Algorithm
+ *
+ * @param algname : cstring name to convert
+ *
+ * @return valid GDAL resampling algorithm
+ */
+GDALResampleAlg
+rt_util_gdal_resample_alg(const char *algname);
+
+/**
+ * Convert rt_pixtype to GDALDataType
+ *
+ * @param pt : pixeltype to convert
+ *
+ * @return valid GDALDataType
+ */
+GDALDataType
+rt_util_pixtype_to_gdal_datatype(rt_pixtype pt);
+
+/**
+ * Convert GDALDataType to rt_pixtype
+ *
+ * @param gdt : GDAL datatype to convert
+ *
+ * @return valid rt_pixtype
+ */
+rt_pixtype
+rt_util_gdal_datatype_to_pixtype(GDALDataType gdt);
+
+/*
+	get GDAL runtime version information
+*/
+const char*
+rt_util_gdal_version(const char *request);
+
+/*
+	computed extent type from c string
+*/
+rt_extenttype
+rt_util_extent_type(const char *name);
+
+/*
+	convert the spatial reference string from a GDAL recognized format to either WKT or Proj4
+*/
+char*
+rt_util_gdal_convert_sr(const char *srs, int proj4);
+
+/*
+	is the spatial reference string supported by GDAL
+*/
+int
+rt_util_gdal_supported_sr(const char *srs);
+
+/**
+ * Get auth name and code
+ *
+ * @param authname: authority organization of code. calling function
+ * is expected to free the memory allocated for value
+ * @param authcode: code assigned by authority organization. calling function
+ * is expected to free the memory allocated for value
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate
+rt_util_gdal_sr_auth_info(GDALDatasetH hds, char **authname, char **authcode);
+
+/*
+	is GDAL configured correctly?
+*/
+int
+rt_util_gdal_configured(void);
+
+/*
+	register all GDAL drivers
+*/
+int
+rt_util_gdal_register_all(int force_register_all);
+
+/*
+	is the driver registered?
+*/
+int
+rt_util_gdal_driver_registered(const char *drv);
+
+/*
+	wrapper for GDALOpen and GDALOpenShared
+*/
+GDALDatasetH
+rt_util_gdal_open(const char *fn, GDALAccess fn_access, int shared);
+
+void
+rt_util_from_ogr_envelope(
+	OGREnvelope	env,
+	rt_envelope *ext
+);
+
+void
+rt_util_to_ogr_envelope(
+	rt_envelope ext,
+	OGREnvelope	*env
+);
+
+LWPOLY *
+rt_util_envelope_to_lwpoly(
+	rt_envelope ext
+);
+
+int
+rt_util_same_geotransform_matrix(
+	double *gt1,
+	double *gt2
+);
+
+/* coordinates in RGB and HSV are floating point values between 0 and 1 */
+rt_errorstate
+rt_util_rgb_to_hsv(
+	double rgb[3],
+	double hsv[3]
+);
+
+/* coordinates in RGB and HSV are floating point values between 0 and 1 */
+rt_errorstate
+rt_util_hsv_to_rgb(
+	double hsv[3],
+	double rgb[3]
+);
+
+/*
+	helper macros for consistent floating point equality checks
+*/
+#define FLT_NEQ(x, y) (fabs(x - y) > FLT_EPSILON)
+#define FLT_EQ(x, y) (!FLT_NEQ(x, y))
+#define DBL_NEQ(x, y) (fabs(x - y) > DBL_EPSILON)
+#define DBL_EQ(x, y) (!DBL_NEQ(x, y))
+
+/*
+	helper macro for symmetrical rounding
+*/
+#define ROUND(x, y) (((x > 0.0) ? floor((x * pow(10, y) + 0.5)) : ceil((x * pow(10, y) - 0.5))) / pow(10, y))
+
+/**
+ * Struct definitions
+ *
+ * These structs are defined here as they are needed elsewhere
+ * including rt_pg/rt_pg.c and reduce duplicative declarations
+ *
+ */
+struct rt_raster_serialized_t {
+    /*---[ 8 byte boundary ]---{ */
+    uint32_t size; /* required by postgresql: 4 bytes */
+    uint16_t version; /* format version (this is version 0): 2 bytes */
+    uint16_t numBands; /* Number of bands: 2 bytes */
+
+    /* }---[ 8 byte boundary ]---{ */
+    double scaleX; /* pixel width: 8 bytes */
+
+    /* }---[ 8 byte boundary ]---{ */
+    double scaleY; /* pixel height: 8 bytes */
+
+    /* }---[ 8 byte boundary ]---{ */
+    double ipX; /* insertion point X: 8 bytes */
+
+    /* }---[ 8 byte boundary ]---{ */
+    double ipY; /* insertion point Y: 8 bytes */
+
+    /* }---[ 8 byte boundary ]---{ */
+    double skewX; /* skew about the X axis: 8 bytes */
+
+    /* }---[ 8 byte boundary ]---{ */
+    double skewY; /* skew about the Y axis: 8 bytes */
+
+    /* }---[ 8 byte boundary ]--- */
+    int32_t srid; /* Spatial reference id: 4 bytes */
+    uint16_t width; /* pixel columns: 2 bytes */
+    uint16_t height; /* pixel rows: 2 bytes */
+};
+
+/* NOTE: the initial part of this structure matches the layout
+ *       of data in the serialized form version 0, starting
+ *       from the numBands element
+ */
+struct rt_raster_t {
+    uint32_t size;
+    uint16_t version;
+
+    /* Number of bands, all share the same dimension
+     * and georeference */
+    uint16_t numBands;
+
+    /* Georeference (in projection units) */
+    double scaleX; /* pixel width */
+    double scaleY; /* pixel height */
+    double ipX; /* geo x ordinate of the corner of upper-left pixel */
+    double ipY; /* geo y ordinate of the corner of bottom-right pixel */
+    double skewX; /* skew about the X axis*/
+    double skewY; /* skew about the Y axis */
+
+    int32_t srid; /* spatial reference id */
+    uint16_t width; /* pixel columns - max 65535 */
+    uint16_t height; /* pixel rows - max 65535 */
+    rt_band *bands; /* actual bands */
+
+};
+
+struct rt_extband_t {
+    uint8_t bandNum; /* 0-based */
+    char* path; /* internally owned */
+		void *mem; /* loaded external band data, internally owned */
+};
+
+struct rt_band_t {
+    rt_pixtype pixtype;
+    int32_t offline;
+    uint16_t width;
+    uint16_t height;
+    int32_t hasnodata; /* a flag indicating if this band contains nodata values */
+    int32_t isnodata;   /* a flag indicating if this band is filled only with
+                           nodata values. flag CANNOT be TRUE if hasnodata is FALSE */
+    double nodataval; /* int will be converted ... */
+    int8_t ownsdata; /* 0, externally owned. 1, internally owned. only applies to data.mem */
+
+		rt_raster raster; /* reference to parent raster */
+
+    union {
+        void* mem; /* actual data, externally owned */
+        struct rt_extband_t offline;
+    } data;
+
+};
+
+struct rt_pixel_t {
+	int x; /* column */
+	int y; /* line */
+
+	uint8_t nodata;
+	double value;
+
+	LWGEOM *geom;
+};
+
+struct rt_mask_t {
+  uint16_t dimx;
+  uint16_t dimy;
+  double **values;
+  int **nodata;
+  int weighted; /* 0 if not weighted values 1 if weighted values */
+};
+
+/* polygon as LWPOLY with associated value */
+struct rt_geomval_t {
+	LWPOLY *geom;
+	double val;
+};
+
+/* summary stats of specified band */
+struct rt_bandstats_t {
+	double sample;
+	uint32_t count;
+
+	double min;
+	double max;
+	double sum;
+	double mean;
+	double stddev;
+
+	double *values;
+	int sorted; /* flag indicating that values is sorted ascending by value */
+};
+
+/* histogram bin(s) of specified band */
+struct rt_histogram_t {
+	uint32_t count;
+	double percent;
+
+	double min;
+	double max;
+
+	int inc_min;
+	int inc_max;
+};
+
+/* quantile(s) of the specified band */
+struct rt_quantile_t {
+	double quantile;
+	double value;
+	uint32_t has_value;
+};
+
+/* listed-list structures for rt_band_get_quantiles_stream */
+struct quantile_llist {
+	uint8_t algeq; /* AL-GEQ (1) or AL-GT (0) */
+	double quantile;
+	uint64_t tau; /* position in sequence */
+
+	struct quantile_llist_element *head; /* H index 0 */
+	struct quantile_llist_element *tail; /* H index last */
+	uint32_t count; /* # of elements in H */
+
+	/* faster access to elements at specific intervals */
+	struct quantile_llist_index *index;
+	uint32_t index_max; /* max # of elements in index */
+
+	uint64_t sum1; /* N1H */
+	uint64_t sum2; /* N2H */
+};
+
+struct quantile_llist_element {
+	double value;
+	uint32_t count;
+
+	struct quantile_llist_element *prev;
+	struct quantile_llist_element *next;
+};
+
+struct quantile_llist_index {
+	struct quantile_llist_element *element;
+	uint32_t index;
+};
+
+/* number of times a value occurs */
+struct rt_valuecount_t {
+	double value;
+	uint32_t count;
+	double percent;
+};
+
+/* reclassification expression */
+struct rt_reclassexpr_t {
+	struct rt_reclassrange {
+		double min;
+		double max;
+		int inc_min; /* include min */
+		int inc_max; /* include max */
+		int exc_min; /* exceed min */
+		int exc_max; /* exceed max */
+	} src, dst;
+};
+
+/* raster iterator */
+struct rt_iterator_t {
+	rt_raster raster;
+	uint16_t nband; /* 0-based */
+	uint8_t nbnodata; /* no band = treat as NODATA  */
+};
+
+/* callback argument from raster iterator */
+struct rt_iterator_arg_t {
+	/* # of rasters, Z-axis */
+	uint16_t rasters;
+	/* # of rows, Y-axis */
+	uint32_t rows;
+	/* # of columns, X-axis */
+	uint32_t columns;
+
+	/* axis order: Z,X,Y */
+	/* individual pixel values */
+	double ***values;
+	/* 0,1 value of nodata flag */
+	int ***nodata;
+
+	/* X,Y of pixel from each input raster */
+	int **src_pixel;
+
+	/* X,Y of pixel from output raster */
+	int dst_pixel[2];
+};
+
+/* gdal driver information */
+struct rt_gdaldriver_t {
+	int idx;
+	char *short_name;
+	char *long_name;
+	char *create_options;
+};
+
+/* raster colormap entry */
+struct rt_colormap_entry_t {
+	int isnodata;
+	double value;
+	uint8_t color[4]; /* RGBA */
+};
+
+struct rt_colormap_t {
+	enum {
+		CM_INTERPOLATE,
+		CM_EXACT,
+		CM_NEAREST
+	} method;
+
+	int ncolor;
+	uint16_t nentry;
+	rt_colormap_entry entry;
+};
+
+#endif /* LIBRTCORE_H_INCLUDED */
diff --git a/raster/rt_core/librtcore_internal.h b/raster/rt_core/librtcore_internal.h
new file mode 100644
index 0000000..f02e6e5
--- /dev/null
+++ b/raster/rt_core/librtcore_internal.h
@@ -0,0 +1,39 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public 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 LIBRTCORE_INTERNAL_H_INCLUDED
+#define LIBRTCORE_INTERNAL_H_INCLUDED
+
+#include <assert.h>
+
+#include "lwgeom_geos.h"
+
+#include "librtcore.h"
+
+#endif /* LIBRTCORE_INTERNAL_H_INCLUDED */
diff --git a/raster/rt_core/rt_api.c b/raster/rt_core/rt_api.c
deleted file mode 100644
index 5cc0564..0000000
--- a/raster/rt_core/rt_api.c
+++ /dev/null
@@ -1,15339 +0,0 @@
-/*
- * $Id: rt_api.c 12951 2014-09-05 15:46:40Z strk $
- *
- * WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
- *
- * Copyright (C) 2011-2013 Regents of the University of California
- *   <bkpark at ucdavis.edu>
- * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
- * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
- * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
- * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
- * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include <math.h>
-#include <stdio.h>  /* for printf (default message handler) */
-#include <stdarg.h> /* for va_list, va_start etc */
-#include <string.h> /* for memcpy and strlen */
-#include <assert.h>
-#include <time.h> /* for time */
-#include "rt_api.h"
-#include "gdal_vrt.h"
-
-/******************************************************************************
-* Some rules for *.(c|h) files in rt_core
-*
-* All functions in rt_core that receive a band index parameter
-*   must be 0-based
-*
-* Variables and functions internal for a public function should be prefixed
-*   with _rti_, e.g. _rti_iterator_arg.
-******************************************************************************/
-
-/*--- Utilities -------------------------------------------------*/
-
-static void
-swap_char(uint8_t *a, uint8_t *b) {
-    uint8_t c = 0;
-
-    assert(NULL != a && NULL != b);
-
-    c = *a;
-    *a = *b;
-    *b = c;
-}
-
-static void
-flip_endian_16(uint8_t *d) {
-    assert(NULL != d);
-
-    swap_char(d, d + 1);
-}
-
-static void
-flip_endian_32(uint8_t *d) {
-    assert(NULL != d);
-
-    swap_char(d, d + 3);
-    swap_char(d + 1, d + 2);
-}
-
-static void
-flip_endian_64(uint8_t *d) {
-    assert(NULL != d);
-
-    swap_char(d + 7, d);
-    swap_char(d + 6, d + 1);
-    swap_char(d + 5, d + 2);
-    swap_char(d + 4, d + 3);
-}
-
-uint8_t
-rt_util_clamp_to_1BB(double value) {
-    return (uint8_t)fmin(fmax((value), 0), POSTGIS_RT_1BBMAX);
-}
-
-uint8_t
-rt_util_clamp_to_2BUI(double value) {
-    return (uint8_t)fmin(fmax((value), 0), POSTGIS_RT_2BUIMAX);
-}
-
-uint8_t
-rt_util_clamp_to_4BUI(double value) {
-    return (uint8_t)fmin(fmax((value), 0), POSTGIS_RT_4BUIMAX);
-}
-
-int8_t
-rt_util_clamp_to_8BSI(double value) {
-    return (int8_t)fmin(fmax((value), SCHAR_MIN), SCHAR_MAX);
-}
-
-uint8_t
-rt_util_clamp_to_8BUI(double value) {
-    return (uint8_t)fmin(fmax((value), 0), UCHAR_MAX);
-}
-
-int16_t
-rt_util_clamp_to_16BSI(double value) {
-    return (int16_t)fmin(fmax((value), SHRT_MIN), SHRT_MAX);
-}
-
-uint16_t
-rt_util_clamp_to_16BUI(double value) {
-    return (uint16_t)fmin(fmax((value), 0), USHRT_MAX);
-}
-
-int32_t
-rt_util_clamp_to_32BSI(double value) {
-    return (int32_t)fmin(fmax((value), INT_MIN), INT_MAX);
-}
-
-uint32_t
-rt_util_clamp_to_32BUI(double value) {
-    return (uint32_t)fmin(fmax((value), 0), UINT_MAX);
-}
-
-float
-rt_util_clamp_to_32F(double value) {
-    return (float)fmin(fmax((value), -FLT_MAX), FLT_MAX);
-}
-
-/* quicksort */
-#define SWAP(x, y) { double t; t = x; x = y; y = t; }
-#define ORDER(x, y) if (x > y) SWAP(x, y)
-
-static double pivot(double *left, double *right) {
-	double l, m, r, *p;
-
-	l = *left;
-	m = *(left + (right - left) / 2);
-	r = *right;
-
-	/* order */
-	ORDER(l, m);
-	ORDER(l, r);
-	ORDER(m, r);
-
-	/* pivot is higher of two values */
-	if (l < m) return m;
-	if (m < r) return r;
-
-	/* find pivot that isn't left */
-	for (p = left + 1; p <= right; ++p) {
-		if (*p != *left)
-			return (*p < *left) ? *left : *p;
-	}
-
-	/* all values are same */
-	return -1;
-}
-
-static double *partition(double *left, double *right, double pivot) {
-	while (left <= right) {
-		while (*left < pivot) ++left;
-		while (*right >= pivot) --right;
-
-		if (left < right) {
-			SWAP(*left, *right);
-			++left;
-			--right;
-		}
-	}
-
-	return left;
-}
-
-static void quicksort(double *left, double *right) {
-	double p = pivot(left, right);
-	double *pos;
-
-	if (p != -1) {
-		pos = partition(left, right, p);
-		quicksort(left, pos - 1);
-		quicksort(pos, right);
-	}
-}
-
-/**
- * Convert cstring name to GDAL Resample Algorithm
- *
- * @param algname : cstring name to convert
- *
- * @return valid GDAL resampling algorithm
- */
-GDALResampleAlg
-rt_util_gdal_resample_alg(const char *algname) {
-	assert(algname != NULL && strlen(algname) > 0);
-
-	if (strcmp(algname, "NEARESTNEIGHBOUR") == 0)
-		return GRA_NearestNeighbour;
-	else if (strcmp(algname, "NEARESTNEIGHBOR") == 0)
-		return GRA_NearestNeighbour;
-	else if (strcmp(algname, "BILINEAR") == 0)
-		return GRA_Bilinear;
-	else if (strcmp(algname, "CUBICSPLINE") == 0)
-		return GRA_CubicSpline;
-	else if (strcmp(algname, "CUBIC") == 0)
-		return GRA_Cubic;
-	else if (strcmp(algname, "LANCZOS") == 0)
-		return GRA_Lanczos;
-
-	return GRA_NearestNeighbour;
-}
-
-/**
- * Convert rt_pixtype to GDALDataType
- *
- * @param pt : pixeltype to convert
- *
- * @return valid GDALDataType
- */
-GDALDataType
-rt_util_pixtype_to_gdal_datatype(rt_pixtype pt) {
-	switch (pt) {
-		case PT_1BB:
-		case PT_2BUI:
-		case PT_4BUI:
-		case PT_8BUI:
-			return GDT_Byte;
-		case PT_8BSI:
-		case PT_16BSI:
-			return GDT_Int16;
-		case PT_16BUI:
-			return GDT_UInt16;
-		case PT_32BSI:
-			return GDT_Int32;
-		case PT_32BUI:
-			return GDT_UInt32;
-		case PT_32BF:
-			return GDT_Float32;
-		case PT_64BF:
-			return GDT_Float64;
-		default:
-			return GDT_Unknown;
-	}
-
-	return GDT_Unknown;
-}
-
-/**
- * Convert GDALDataType to rt_pixtype
- *
- * @param gdt : GDAL datatype to convert
- *
- * @return valid rt_pixtype
- */
-rt_pixtype
-rt_util_gdal_datatype_to_pixtype(GDALDataType gdt) {
-	switch (gdt) {
-		case GDT_Byte:
-			return PT_8BUI;
-		case GDT_UInt16:
-			return PT_16BUI;
-		case GDT_Int16:
-			return PT_16BSI;
-		case GDT_UInt32:
-			return PT_32BUI;
-		case GDT_Int32:
-			return PT_32BSI;
-		case GDT_Float32:
-			return PT_32BF;
-		case GDT_Float64:
-			return PT_64BF;
-		default:
-			return PT_END;
-	}
-
-	return PT_END;
-}
-
-/*
-	get GDAL runtime version information
-*/
-const char*
-rt_util_gdal_version(const char *request) {
-	if (NULL == request || !strlen(request))
-		return GDALVersionInfo("RELEASE_NAME");
-	else
-		return GDALVersionInfo(request);
-}
-
-/*
-	computed extent type
-*/
-rt_extenttype
-rt_util_extent_type(const char *name) {
-	assert(name != NULL && strlen(name) > 0);
-
-	if (strcmp(name, "UNION") == 0)
-		return ET_UNION;
-	else if (strcmp(name, "FIRST") == 0)
-		return ET_FIRST;
-	else if (strcmp(name, "SECOND") == 0)
-		return ET_SECOND;
-	else if (strcmp(name, "LAST") == 0)
-		return ET_LAST;
-	else if (strcmp(name, "CUSTOM") == 0)
-		return ET_CUSTOM;
-	else
-		return ET_INTERSECTION;
-}
-
-/*
-	convert the spatial reference string from a GDAL recognized format to either WKT or Proj4
-*/
-char*
-rt_util_gdal_convert_sr(const char *srs, int proj4) {
-	OGRSpatialReferenceH hsrs;
-	char *rtn = NULL;
-
-	assert(srs != NULL);
-
-	hsrs = OSRNewSpatialReference(NULL);
-	if (OSRSetFromUserInput(hsrs, srs) == OGRERR_NONE) {
-		if (proj4)
-			OSRExportToProj4(hsrs, &rtn);
-		else
-			OSRExportToWkt(hsrs, &rtn);
-	}
-	else {
-		rterror("rt_util_gdal_convert_sr: Could not process the provided srs: %s", srs);
-		return NULL;
-	}
-
-	OSRDestroySpatialReference(hsrs);
-	if (rtn == NULL) {
-		rterror("rt_util_gdal_convert_sr: Could not process the provided srs: %s", srs);
-		return NULL;
-	}
-
-	return rtn;
-}
-
-/*
-	is the spatial reference string supported by GDAL
-*/
-int
-rt_util_gdal_supported_sr(const char *srs) {
-	OGRSpatialReferenceH hsrs;
-	OGRErr rtn = OGRERR_NONE;
-
-	assert(srs != NULL);
-
-	hsrs = OSRNewSpatialReference(NULL);
-	rtn = OSRSetFromUserInput(hsrs, srs);
-	OSRDestroySpatialReference(hsrs);
-
-	if (rtn == OGRERR_NONE)
-		return 1;
-	else
-		return 0;
-}
-
-/**
- * Get auth name and code
- *
- * @param authname: authority organization of code. calling function
- * is expected to free the memory allocated for value
- * @param authcode: code assigned by authority organization. calling function
- * is expected to free the memory allocated for value
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate
-rt_util_gdal_sr_auth_info(GDALDatasetH hds, char **authname, char **authcode) {
-	const char *srs = NULL;
-
-	assert(authname != NULL);
-	assert(authcode != NULL);
-
-	*authname = NULL;
-	*authcode = NULL;
-
-	srs = GDALGetProjectionRef(hds);
-	if (srs != NULL && srs[0] != '\0') {
-		OGRSpatialReferenceH hSRS = OSRNewSpatialReference(NULL);
-
-		if (OSRSetFromUserInput(hSRS, srs) == OGRERR_NONE) {
-			const char* pszAuthorityName = OSRGetAuthorityName(hSRS, NULL);
-			const char* pszAuthorityCode = OSRGetAuthorityCode(hSRS, NULL);
-
-			if (pszAuthorityName != NULL && pszAuthorityCode != NULL) {
-				*authname = rtalloc(sizeof(char) * (strlen(pszAuthorityName) + 1));
-				*authcode = rtalloc(sizeof(char) * (strlen(pszAuthorityCode) + 1));
-
-				if (*authname == NULL || *authcode == NULL) {
-					rterror("rt_util_gdal_sr_auth_info: Could not allocate memory for auth name and code");
-					if (*authname != NULL) rtdealloc(*authname);
-					if (*authcode != NULL) rtdealloc(*authcode);
-					OSRDestroySpatialReference(hSRS);
-					return ES_ERROR;
-				}
-
-				strncpy(*authname, pszAuthorityName, strlen(pszAuthorityName) + 1);
-				strncpy(*authcode, pszAuthorityCode, strlen(pszAuthorityCode) + 1);
-			}
-		}
-
-		OSRDestroySpatialReference(hSRS);
-	}
-
-	return ES_NONE;
-}
-
-/*
-	is GDAL configured correctly?
-*/
-int rt_util_gdal_configured(void) {
-
-	/* set of EPSG codes */
-	if (!rt_util_gdal_supported_sr("EPSG:4326"))
-		return 0;
-	if (!rt_util_gdal_supported_sr("EPSG:4269"))
-		return 0;
-	if (!rt_util_gdal_supported_sr("EPSG:4267"))
-		return 0;
-	if (!rt_util_gdal_supported_sr("EPSG:3310"))
-		return 0;
-	if (!rt_util_gdal_supported_sr("EPSG:2163"))
-		return 0;
-
-	return 1;
-}
-
-/*
-	register all GDAL drivers
-*/
-int
-rt_util_gdal_register_all(int force_register_all) {
-	static int registered = 0;
-
-	if (registered && !force_register_all)
-		return 0;
-
-	GDALAllRegister();
-	registered = 1;
-
-	return 1;
-}
-
-/*
-	is the driver registered?
-*/
-int
-rt_util_gdal_driver_registered(const char *drv) {
-	int count = GDALGetDriverCount();
-	int i = 0;
-	GDALDriverH hdrv = NULL;
-
-	if (drv == NULL || !strlen(drv) || count < 1)
-		return 0;
-
-	for (i = 0; i < count; i++) {
-		hdrv = GDALGetDriver(i);
-		if (hdrv == NULL) continue;
-
-		if (strcmp(drv, GDALGetDriverShortName(hdrv)) == 0)
-			return 1;
-	}
-
-	return 0;
-}
-
-/* variable for PostgreSQL GUC: postgis.gdal_enabled_drivers */
-char *gdal_enabled_drivers = NULL;
-
-/*
-	wrapper for GDALOpen and GDALOpenShared
-*/
-GDALDatasetH
-rt_util_gdal_open(const char *fn, GDALAccess fn_access, int shared) {
-	assert(NULL != fn);
-
-	if (gdal_enabled_drivers != NULL) {
-		if (strstr(gdal_enabled_drivers, GDAL_DISABLE_ALL) != NULL) {
-			rterror("rt_util_gdal_open: Cannot open file. All GDAL drivers disabled");
-			return NULL;
-		}
-		else if (strstr(gdal_enabled_drivers, GDAL_ENABLE_ALL) != NULL) {
-			/* do nothing */
-		}
-		else if (
-			(strstr(fn, "/vsicurl") != NULL) &&
-			(strstr(gdal_enabled_drivers, GDAL_VSICURL) == NULL)
-		) {
-			rterror("rt_util_gdal_open: Cannot open VSICURL file. VSICURL disabled");
-			return NULL;
-		}
-	}
-
-	if (shared)
-		return GDALOpenShared(fn, fn_access);
-	else
-		return GDALOpen(fn, fn_access);
-}
-
-void
-rt_util_from_ogr_envelope(
-	OGREnvelope	env,
-	rt_envelope *ext
-) {
-	assert(ext != NULL);
-
-	ext->MinX = env.MinX;
-	ext->MaxX = env.MaxX;
-	ext->MinY = env.MinY;
-	ext->MaxY = env.MaxY;
-
-	ext->UpperLeftX = env.MinX;
-	ext->UpperLeftY = env.MaxY;
-}
-
-void
-rt_util_to_ogr_envelope(
-	rt_envelope ext,
-	OGREnvelope	*env
-) {
-	assert(env != NULL);
-
-	env->MinX = ext.MinX;
-	env->MaxX = ext.MaxX;
-	env->MinY = ext.MinY;
-	env->MaxY = ext.MaxY;
-}
-
-LWPOLY *
-rt_util_envelope_to_lwpoly(
-	rt_envelope env
-) {
-	LWPOLY *npoly = NULL;
-	POINTARRAY **rings = NULL;
-	POINTARRAY *pts = NULL;
-	POINT4D p4d;
-
-	rings = (POINTARRAY **) rtalloc(sizeof (POINTARRAY*));
-	if (!rings) {
-		rterror("rt_util_envelope_to_lwpoly: Out of memory building envelope's geometry");
-		return NULL;
-	}
-	rings[0] = ptarray_construct(0, 0, 5);
-	if (!rings[0]) {
-		rterror("rt_util_envelope_to_lwpoly: Out of memory building envelope's geometry ring");
-		return NULL;
-	}
-
-	pts = rings[0];
-	
-	/* Upper-left corner (first and last points) */
-	p4d.x = env.MinX;
-	p4d.y = env.MaxY;
-	ptarray_set_point4d(pts, 0, &p4d);
-	ptarray_set_point4d(pts, 4, &p4d);
-
-	/* Upper-right corner (we go clockwise) */
-	p4d.x = env.MaxX;
-	p4d.y = env.MaxY;
-	ptarray_set_point4d(pts, 1, &p4d);
-
-	/* Lower-right corner */
-	p4d.x = env.MaxX;
-	p4d.y = env.MinY;
-	ptarray_set_point4d(pts, 2, &p4d);
-
-	/* Lower-left corner */
-	p4d.x = env.MinX;
-	p4d.y = env.MinY;
-	ptarray_set_point4d(pts, 3, &p4d);
-
-	npoly = lwpoly_construct(SRID_UNKNOWN, 0, 1, rings);
-	if (npoly == NULL) {
-		rterror("rt_util_envelope_to_lwpoly: Could not build envelope's geometry");
-		return NULL;
-	}
-
-	return npoly;
-}
-
-int
-rt_util_same_geotransform_matrix(double *gt1, double *gt2) {
-	int k = 0;
-
-	if (gt1 == NULL || gt2 == NULL)
-		return FALSE;
-
-	for (k = 0; k < 6; k++) {
-		if (FLT_NEQ(gt1[k], gt2[k]))
-			return FALSE;
-	}
-
-	return TRUE;
-}
-
-/* coordinates in RGB and HSV are floating point values between 0 and 1 */
-rt_errorstate
-rt_util_rgb_to_hsv(double rgb[3], double hsv[3]) {
-	int i;
-
-	double minc;
-	double maxc;
-
-	double h = 0.;
-	double s = 0.;
-	double v = 0.;
-
-	minc = rgb[0];
-	maxc = rgb[0];
-
-	/* get min and max values from RGB */
-	for (i = 1; i < 3; i++) {
-		if (rgb[i] > maxc)
-			maxc = rgb[i];
-		if (rgb[i] < minc)
-			minc = rgb[i];
-	}
-	v = maxc;
-
-	if (maxc != minc) {
-		double diff = 0.;
-		double rc = 0.;
-		double gc = 0.;
-		double bc = 0.;
-		double junk = 0.;
-
-		diff = maxc - minc;
-		s = diff / maxc;
-		rc = (maxc - rgb[0]) / diff;
-		gc = (maxc - rgb[1]) / diff;
-		bc = (maxc - rgb[2]) / diff;
-
-		if (DBL_EQ(rgb[0], maxc))
-			h = bc - gc;
-		else if (DBL_EQ(rgb[1], maxc))
-			h = 2.0 + rc - bc;
-		else
-			h = 4.0 + gc - rc;
-
-		h = modf((h / 6.0), &junk);
-	}
-
-	hsv[0] = h;
-	hsv[1] = s;
-	hsv[2] = v;
-
-	return ES_NONE;
-}
-
-/* coordinates in RGB and HSV are floating point values between 0 and 1 */
-rt_errorstate
-rt_util_hsv_to_rgb(double hsv[3], double rgb[3]) {
-	double r = 0;
-	double g = 0;
-	double b = 0;
-	double v = hsv[2];
-
-	if (DBL_EQ(hsv[1], 0.))
-		r = g = b = v;
-	else {
-		double i;
-		double f;
-		double p;
-		double q;
-		double t;
-
-		int a;
-
-		i = floor(hsv[0] * 6.);
-		f = (hsv[0] * 6.0) - i;
-		p = v * (1. - hsv[1]);
-		q = v * (1. - hsv[1] * f);
-		t = v * (1. - hsv[1] * (1. - f));
-
-		a = (int) i;
-		switch (a) {
-			case 1:
-				r = q;
-				g = v;
-				b = p;
-				break;
-			case 2:
-				r = p;
-				g = v;
-				b = t;
-				break;
-			case 3:
-				r = p;
-				g = q;
-				b = v;
-				break;
-			case 4:
-				r = t;
-				g = p;
-				b = v;
-				break;
-			case 5:
-				r = v;
-				g = p;
-				b = q;
-				break;
-			case 0:
-			case 6:
-			default:
-				r = v;
-				g = t;
-				b = p;
-				break;
-		}
-	}
-
-	rgb[0] = r;
-	rgb[1] = g;
-	rgb[2] = b;
-
-	return ES_NONE;
-}
-
-/*- rt_context -------------------------------------------------------*/
-
-/* Functions definitions */
-void * init_rt_allocator(size_t size);
-void * init_rt_reallocator(void * mem, size_t size);
-void init_rt_deallocator(void * mem);
-void init_rt_errorreporter(const char * fmt, va_list ap);
-void init_rt_warnreporter(const char * fmt, va_list ap);
-void init_rt_inforeporter(const char * fmt, va_list ap);
-
-/*
- * Default allocators
- *
- * We include some default allocators that use malloc/free/realloc
- * along with stdout/stderr since this is the most common use case
- *
- */
-void *
-default_rt_allocator(size_t size)
-{
-    void *mem = malloc(size);
-    return mem;
-}
-
-void *
-default_rt_reallocator(void *mem, size_t size)
-{
-    void *ret = realloc(mem, size);
-    return ret;
-}
-
-void
-default_rt_deallocator(void *mem)
-{
-    free(mem);
-}
-
-void
-default_rt_error_handler(const char *fmt, va_list ap) {
-
-    static const char *label = "ERROR: ";
-    char newfmt[1024] = {0};
-    snprintf(newfmt, 1024, "%s%s\n", label, fmt);
-    newfmt[1023] = '\0';
-
-    vprintf(newfmt, ap);
-
-    va_end(ap);
-}
-
-void
-default_rt_warning_handler(const char *fmt, va_list ap) {
-
-    static const char *label = "WARNING: ";
-    char newfmt[1024] = {0};
-    snprintf(newfmt, 1024, "%s%s\n", label, fmt);
-    newfmt[1023] = '\0';
-
-    vprintf(newfmt, ap);
-
-    va_end(ap);
-}
-
-void
-default_rt_info_handler(const char *fmt, va_list ap) {
-
-    static const char *label = "INFO: ";
-    char newfmt[1024] = {0};
-    snprintf(newfmt, 1024, "%s%s\n", label, fmt);
-    newfmt[1023] = '\0';
-
-    vprintf(newfmt, ap);
-
-    va_end(ap);
-}
-
-/**
- * Struct definition here
- */
-struct rt_context_t {
-    rt_allocator alloc;
-    rt_reallocator realloc;
-    rt_deallocator dealloc;
-    rt_message_handler err;
-    rt_message_handler warn;
-    rt_message_handler info;
-};
-
-/* Static variable, to be used for all rt_core functions */
-static struct rt_context_t ctx_t = {
-    .alloc = init_rt_allocator,
-    .realloc = init_rt_reallocator,
-    .dealloc = init_rt_deallocator,
-    .err = init_rt_errorreporter,
-    .warn = init_rt_warnreporter,
-    .info = init_rt_inforeporter
-};
-
-
-/**
- * This function is normally called by rt_init_allocators when no special memory
- * management is needed. Useful in raster core testing and in the (future)
- * loader, when we need to use raster core functions but we don't have
- * PostgreSQL backend behind. We must take care of memory by ourselves in those
- * situations
- */
-void
-rt_install_default_allocators(void)
-{
-    ctx_t.alloc = default_rt_allocator;
-    ctx_t.realloc = default_rt_reallocator;
-    ctx_t.dealloc = default_rt_deallocator;
-    ctx_t.err = default_rt_error_handler;
-    ctx_t.info = default_rt_info_handler;
-    ctx_t.warn = default_rt_warning_handler;
-}
-
-
-/**
- * This function is called by rt_init_allocators when the PostgreSQL backend is
- * taking care of the memory and we want to use palloc family
- */
-void
-rt_set_handlers(rt_allocator allocator, rt_reallocator reallocator,
-        rt_deallocator deallocator, rt_message_handler error_handler,
-        rt_message_handler info_handler, rt_message_handler warning_handler) {
-
-    ctx_t.alloc = allocator;
-    ctx_t.realloc = reallocator;
-    ctx_t.dealloc = deallocator;
-
-    ctx_t.err = error_handler;
-    ctx_t.info = info_handler;
-    ctx_t.warn = warning_handler;
-}
-
-
-
-/**
- * Initialisation allocators
- *
- * These are used the first time any of the allocators are called to enable
- * executables/libraries that link into raster to be able to set up their own
- * allocators. This is mainly useful for older PostgreSQL versions that don't
- * have functions that are called upon startup.
- **/
-void *
-init_rt_allocator(size_t size)
-{
-    rt_init_allocators();
-
-    return ctx_t.alloc(size);
-}
-
-void
-init_rt_deallocator(void *mem)
-{
-    rt_init_allocators();
-
-    ctx_t.dealloc(mem);
-}
-
-
-void *
-init_rt_reallocator(void *mem, size_t size)
-{
-    rt_init_allocators();
-
-    return ctx_t.realloc(mem, size);
-}
-
-void
-init_rt_inforeporter(const char *fmt, va_list ap)
-{
-    rt_init_allocators();
-
-    (*ctx_t.info)(fmt, ap);
-}
-
-void
-init_rt_warnreporter(const char *fmt, va_list ap)
-{
-    rt_init_allocators();
-
-    (*ctx_t.warn)(fmt, ap);
-}
-
-
-void
-init_rt_errorreporter(const char *fmt, va_list ap)
-{
-    rt_init_allocators();
-
-    (*ctx_t.err)(fmt, ap);
-
-}
-
-
-
-/**
- * Raster core memory management functions.
- *
- * They use the functions defined by the caller.
- */
-void *
-rtalloc(size_t size) {
-    void * mem = ctx_t.alloc(size);
-    RASTER_DEBUGF(5, "rtalloc called: %d@%p", size, mem);
-    return mem;
-}
-
-
-void *
-rtrealloc(void * mem, size_t size) {
-    void * result = ctx_t.realloc(mem, size);
-    RASTER_DEBUGF(5, "rtrealloc called: %d@%p", size, result);
-    return result;
-}
-
-void
-rtdealloc(void * mem) {
-    ctx_t.dealloc(mem);
-    RASTER_DEBUG(5, "rtdealloc called");
-}
-
-/**
- * Raster core error and info handlers
- *
- * Since variadic functions cannot pass their parameters directly, we need
- * wrappers for these functions to convert the arguments into a va_list
- * structure.
- */
-void
-rterror(const char *fmt, ...) {
-    va_list ap;
-
-    va_start(ap, fmt);
-
-    /* Call the supplied function */
-    (*ctx_t.err)(fmt, ap);
-
-    va_end(ap);
-}
-
-void
-rtinfo(const char *fmt, ...) {
-    va_list ap;
-
-    va_start(ap, fmt);
-
-    /* Call the supplied function */
-    (*ctx_t.info)(fmt, ap);
-
-    va_end(ap);
-}
-
-
-void
-rtwarn(const char *fmt, ...) {
-    va_list ap;
-
-    va_start(ap, fmt);
-
-    /* Call the supplied function */
-    (*ctx_t.warn)(fmt, ap);
-
-    va_end(ap);
-}
-
-
-
-int
-rt_util_dbl_trunc_warning(
-	double initialvalue,
-	int32_t checkvalint, uint32_t checkvaluint,
-	float checkvalfloat, double checkvaldouble,
-	rt_pixtype pixtype
-) {
-	int result = 0;
-
-	switch (pixtype) {
-		case PT_1BB:
-		case PT_2BUI:
-		case PT_4BUI:
-		case PT_8BSI:
-		case PT_8BUI:
-		case PT_16BSI:
-		case PT_16BUI:
-		case PT_32BSI: {
-			if (fabs(checkvalint - initialvalue) >= 1) {
-#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
-				rtwarn("Value set for %s band got clamped from %f to %d",
-					rt_pixtype_name(pixtype),
-					initialvalue, checkvalint
-				);
-#endif
-				result = 1;
-			}
-			else if (FLT_NEQ(checkvalint, initialvalue)) {
-#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
-				rtwarn("Value set for %s band got truncated from %f to %d",
-					rt_pixtype_name(pixtype),
-					initialvalue, checkvalint
-				);
-#endif
-				result = 1;
-			}
-			break;
-		}
-		case PT_32BUI: {
-			if (fabs(checkvaluint - initialvalue) >= 1) {
-#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
-				rtwarn("Value set for %s band got clamped from %f to %u",
-					rt_pixtype_name(pixtype),
-					initialvalue, checkvaluint
-				);
-#endif
-				result = 1;
-			}
-			else if (FLT_NEQ(checkvaluint, initialvalue)) {
-#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
-				rtwarn("Value set for %s band got truncated from %f to %u",
-					rt_pixtype_name(pixtype),
-					initialvalue, checkvaluint
-				);
-#endif
-				result = 1;
-			}
-			break;
-		}
-		case PT_32BF: {
-			/*
-				For float, because the initial value is a double,
-				there is very often a difference between the desired value and the obtained one
-			*/
-			if (FLT_NEQ(checkvalfloat, initialvalue)) {
-#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
-				rtwarn("Value set for %s band got converted from %f to %f",
-					rt_pixtype_name(pixtype),
-					initialvalue, checkvalfloat
-				);
-#endif
-				result = 1;
-			}
-			break;
-		}
-		case PT_64BF: {
-			if (FLT_NEQ(checkvaldouble, initialvalue)) {
-#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
-				rtwarn("Value set for %s band got converted from %f to %f",
-					rt_pixtype_name(pixtype),
-					initialvalue, checkvaldouble
-				);
-#endif
-				result = 1;
-			}
-			break;
-		}
-		case PT_END:
-			break;
-	}
-
-	return result;
-}
-
-/*--- Debug and Testing Utilities --------------------------------------------*/
-
-#if POSTGIS_DEBUG_LEVEL > 2
-
-static char*
-d_binary_to_hex(const uint8_t * const raw, uint32_t size, uint32_t *hexsize) {
-    char* hex = NULL;
-    uint32_t i = 0;
-
-
-    assert(NULL != raw);
-    assert(NULL != hexsize);
-
-
-    *hexsize = size * 2; /* hex is 2 times bytes */
-    hex = (char*) rtalloc((*hexsize) + 1);
-    if (!hex) {
-        rterror("d_binary_to_hex: Out of memory hexifying raw binary");
-        return NULL;
-    }
-    hex[*hexsize] = '\0'; /* Null-terminate */
-
-    for (i = 0; i < size; ++i) {
-        deparse_hex(raw[i], &(hex[2 * i]));
-    }
-
-    assert(NULL != hex);
-    assert(0 == strlen(hex) % 2);
-    return hex;
-}
-
-static void
-d_print_binary_hex(const char* msg, const uint8_t * const raw, uint32_t size) {
-    char* hex = NULL;
-    uint32_t hexsize = 0;
-
-
-    assert(NULL != msg);
-    assert(NULL != raw);
-
-
-    hex = d_binary_to_hex(raw, size, &hexsize);
-    if (NULL != hex) {
-        rtinfo("%s\t%s", msg, hex);
-        rtdealloc(hex);
-    }
-}
-
-static size_t
-d_binptr_to_pos(const uint8_t * const ptr, const uint8_t * const end, size_t size) {
-    assert(NULL != ptr && NULL != end);
-
-    return (size - (end - ptr));
-}
-
-#define CHECK_BINPTR_POSITION(ptr, end, size, pos) \
-    { if (pos != d_binptr_to_pos(ptr, end, size)) { \
-    fprintf(stderr, "Check of binary stream pointer position failed on line %d\n", __LINE__); \
-    fprintf(stderr, "\tactual = %lu, expected = %lu\n", (long unsigned)d_binptr_to_pos(ptr, end, size), (long unsigned)pos); \
-    } }
-
-#else
-
-#define CHECK_BINPTR_POSITION(ptr, end, size, pos) ((void)0);
-
-#endif /* ifndef POSTGIS_DEBUG_LEVEL > 3 */
-
-/*- rt_pixeltype -----------------------------------------------------*/
-
-int
-rt_pixtype_size(rt_pixtype pixtype) {
-	int pixbytes = -1;
-
-	switch (pixtype) {
-		case PT_1BB:
-		case PT_2BUI:
-		case PT_4BUI:
-		case PT_8BSI:
-		case PT_8BUI:
-			pixbytes = 1;
-			break;
-		case PT_16BSI:
-		case PT_16BUI:
-			pixbytes = 2;
-			break;
-		case PT_32BSI:
-		case PT_32BUI:
-		case PT_32BF:
-			pixbytes = 4;
-			break;
-		case PT_64BF:
-			pixbytes = 8;
-			break;
-		default:
-			rterror("rt_pixtype_size: Unknown pixeltype %d", pixtype);
-			pixbytes = -1;
-			break;
-	}
-
-	RASTER_DEBUGF(3, "Pixel type = %s and size = %d bytes",
-		rt_pixtype_name(pixtype), pixbytes);
-
-	return pixbytes;
-}
-
-int
-rt_pixtype_alignment(rt_pixtype pixtype) {
-	return rt_pixtype_size(pixtype);
-}
-
-rt_pixtype
-rt_pixtype_index_from_name(const char* pixname) {
-	assert(pixname && strlen(pixname) > 0);
-
-	if (strcmp(pixname, "1BB") == 0)
-		return PT_1BB;
-	else if (strcmp(pixname, "2BUI") == 0)
-		return PT_2BUI;
-	else if (strcmp(pixname, "4BUI") == 0)
-		return PT_4BUI;
-	else if (strcmp(pixname, "8BSI") == 0)
-		return PT_8BSI;
-	else if (strcmp(pixname, "8BUI") == 0)
-		return PT_8BUI;
-	else if (strcmp(pixname, "16BSI") == 0)
-		return PT_16BSI;
-	else if (strcmp(pixname, "16BUI") == 0)
-		return PT_16BUI;
-	else if (strcmp(pixname, "32BSI") == 0)
-		return PT_32BSI;
-	else if (strcmp(pixname, "32BUI") == 0)
-		return PT_32BUI;
-	else if (strcmp(pixname, "32BF") == 0)
-		return PT_32BF;
-	else if (strcmp(pixname, "64BF") == 0)
-		return PT_64BF;
-
-	return PT_END;
-}
-
-const char*
-rt_pixtype_name(rt_pixtype pixtype) {
-	switch (pixtype) {
-		case PT_1BB:
-			return "1BB";
-		case PT_2BUI:
-			return "2BUI";
-		case PT_4BUI:
-			return "4BUI";
-		case PT_8BSI:
-			return "8BSI";
-		case PT_8BUI:
-			return "8BUI";
-		case PT_16BSI:
-			return "16BSI";
-		case PT_16BUI:
-			return "16BUI";
-		case PT_32BSI:
-			return "32BSI";
-		case PT_32BUI:
-			return "32BUI";
-		case PT_32BF:
-			return "32BF";
-		case PT_64BF:
-			return "64BF";
-		default:
-			rterror("rt_pixtype_name: Unknown pixeltype %d", pixtype);
-			return "Unknown";
-	}
-}
-
-/**
- * Return minimum value possible for pixel type
- *
- * @param pixtype : the pixel type to get minimum possible value for
- *
- * @return the minimum possible value for the pixel type.
- */
-double
-rt_pixtype_get_min_value(rt_pixtype pixtype) {
-	switch (pixtype) {
-		case PT_1BB: {
-			return (double) rt_util_clamp_to_1BB((double) CHAR_MIN);
-		}
-		case PT_2BUI: {
-			return (double) rt_util_clamp_to_2BUI((double) CHAR_MIN);
-		}
-		case PT_4BUI: {
-			return (double) rt_util_clamp_to_4BUI((double) CHAR_MIN);
-		}
-		case PT_8BUI: {
-			return (double) rt_util_clamp_to_8BUI((double) CHAR_MIN);
-		}
-		case PT_8BSI: {
-			return (double) rt_util_clamp_to_8BSI((double) SCHAR_MIN);
-		}
-		case PT_16BSI: {
-			return (double) rt_util_clamp_to_16BSI((double) SHRT_MIN);
-		}
-		case PT_16BUI: {
-			return (double) rt_util_clamp_to_16BUI((double) SHRT_MIN);
-		}
-		case PT_32BSI: {
-			return (double) rt_util_clamp_to_32BSI((double) INT_MIN);
-		}
-		case PT_32BUI: {
-			return (double) rt_util_clamp_to_32BUI((double) INT_MIN);
-		}
-		case PT_32BF: {
-			return (double) -FLT_MAX;
-		}
-		case PT_64BF: {
-			return (double) -DBL_MAX;
-		}
-		default: {
-			rterror("rt_pixtype_get_min_value: Unknown pixeltype %d", pixtype);
-			return (double) rt_util_clamp_to_8BUI((double) CHAR_MIN);
-		}
-	}
-}
-
-/**
- * Returns 1 if clamped values are equal, 0 if not equal, -1 if error
- *
- * @param pixtype : the pixel type to clamp the provided values
- * @param val : value to compare to reference value
- * @param refval : reference value to be compared with
- * @param isequal : non-zero if clamped values are equal, 0 otherwise
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_pixtype_compare_clamped_values(
-	rt_pixtype pixtype,
-	double val, double refval,
-	int *isequal
-) {
-	assert(isequal != NULL);
-	*isequal = 0;
-
-	switch (pixtype) {
-		case PT_1BB:
-			if (rt_util_clamp_to_1BB(val) == rt_util_clamp_to_1BB(refval))
-				*isequal = 1;
-			break;
-		case PT_2BUI:
-			if (rt_util_clamp_to_2BUI(val) == rt_util_clamp_to_2BUI(refval))
-				*isequal = 1;
-			break;
-		case PT_4BUI:
-			if (rt_util_clamp_to_4BUI(val) == rt_util_clamp_to_4BUI(refval))
-				*isequal = 1;
-			break;
-		case PT_8BSI:
-			if (rt_util_clamp_to_8BSI(val) == rt_util_clamp_to_8BSI(refval))
-				*isequal = 1;
-			break;
-		case PT_8BUI:
-			if (rt_util_clamp_to_8BUI(val) == rt_util_clamp_to_8BUI(refval))
-				*isequal = 1;
-			break;
-		case PT_16BSI:
-			if (rt_util_clamp_to_16BSI(val) == rt_util_clamp_to_16BSI(refval))
-				*isequal = 1;
-			break;
-		case PT_16BUI:
-			if (rt_util_clamp_to_16BUI(val) == rt_util_clamp_to_16BUI(refval))
-				*isequal = 1;
-			break;
-		case PT_32BSI:
-			if (rt_util_clamp_to_32BSI(val) == rt_util_clamp_to_32BSI(refval))
-				*isequal = 1;
-			break;
-		case PT_32BUI:
-			if (rt_util_clamp_to_32BUI(val) == rt_util_clamp_to_32BUI(refval))
-				*isequal = 1;
-			break;
-		case PT_32BF:
-			if (FLT_EQ(rt_util_clamp_to_32F(val), rt_util_clamp_to_32F(refval)))
-				*isequal = 1;
-			break;
-		case PT_64BF:
-			if (FLT_EQ(val, refval))
-				*isequal = 1;
-			break;
-		default:
-			rterror("rt_pixtype_compare_clamped_values: Unknown pixeltype %d", pixtype);
-			return ES_ERROR;
-	}
-
-	return ES_NONE;
-}
-
-/*- rt_pixel ----------------------------------------------------------*/
-
-/*
- * Convert an array of rt_pixel objects to two 2D arrays of value and NODATA.
- * The dimensions of the returned 2D array are [Y][X], going by row Y and
- * then column X.
- *
- * @param npixel : array of rt_pixel objects
- * @param count : number of elements in npixel
- * @param x : the column of the center pixel (0-based)
- * @param y : the line of the center pixel (0-based)
- * @param distancex : the number of pixels around the specified pixel
- * along the X axis
- * @param distancey : the number of pixels around the specified pixel
- * along the Y axis
- * @param value : pointer to pointer for 2D value array
- * @param nodata : pointer to pointer for 2D NODATA array
- * @param dimx : size of value and nodata along the X axis
- * @param dimy : size of value and nodata along the Y axis
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_pixel_set_to_array(
-	rt_pixel npixel, int count,
-	int x, int y,
-	uint16_t distancex, uint16_t distancey,
-	double ***value,
-	int ***nodata,
-	int *dimx, int *dimy
-) {
-	uint32_t i;
-	uint32_t j;
-	uint32_t dim[2] = {0};
-	double **values = NULL;
-	int **nodatas = NULL;
-	int zero[2] = {0};
-	int _x;
-	int _y;
-
-	assert(npixel != NULL && count > 0);
-	assert(value != NULL);
-	assert(nodata != NULL);
-
-	/* dimensions */
-	dim[0] = distancex * 2 + 1;
-	dim[1] = distancey * 2 + 1;
-	RASTER_DEBUGF(4, "dimensions = %d x %d", dim[0], dim[1]);
-
-	/* establish 2D arrays (Y axis) */
-	values = rtalloc(sizeof(double *) * dim[1]);
-	nodatas = rtalloc(sizeof(int *) * dim[1]);
-
-	if (values == NULL || nodatas == NULL) {
-		rterror("rt_pixel_set_to_array: Could not allocate memory for 2D array");
-		return ES_ERROR;
-	}
-
-	/* initialize X axis */
-	for (i = 0; i < dim[1]; i++) {
-		values[i] = rtalloc(sizeof(double) * dim[0]);
-		nodatas[i] = rtalloc(sizeof(int) * dim[0]);
-
-		if (values[i] == NULL || nodatas[i] == NULL) {
-			rterror("rt_pixel_set_to_array: Could not allocate memory for dimension of 2D array");
-
-			if (values[i] == NULL) {
-				for (j = 0; j < i; j++) {
-					rtdealloc(values[j]);
-					rtdealloc(nodatas[j]);
-				}
-			}
-			else {
-				for (j = 0; j <= i; j++) {
-					rtdealloc(values[j]);
-					if (j < i)
-						rtdealloc(nodatas[j]);
-				}
-			}
-
-			rtdealloc(values);
-			rtdealloc(nodatas);
-			
-			return ES_ERROR;
-		}
-
-		/* set values to 0 */
-		memset(values[i], 0, sizeof(double) * dim[0]);
-
-		/* set nodatas to 1 */
-		for (j = 0; j < dim[0]; j++)
-			nodatas[i][j] = 1;
-	}
-
-	/* get 0,0 of grid */
-	zero[0] = x - distancex;
-	zero[1] = y - distancey;
-
-	/* populate 2D arrays */
-	for (i = 0; i < count; i++) {
-		if (npixel[i].nodata)
-			continue;
-
-		_x = npixel[i].x - zero[0];
-		_y = npixel[i].y - zero[1];
-
-		RASTER_DEBUGF(4, "absolute x,y: %d x %d", npixel[i].x, npixel[i].y);
-		RASTER_DEBUGF(4, "relative x,y: %d x %d", _x, _y);
-
-		values[_y][_x] = npixel[i].value;
-		nodatas[_y][_x] = 0;
-
-		RASTER_DEBUGF(4, "(x, y, nodata, value) = (%d, %d, %d, %f)", _x, _y, nodatas[_y][_x], values[_y][_x]);
-	}
-
-	*value = &(*values);
-	*nodata = &(*nodatas);
-	if (dimx != NULL)
-		*dimx = dim[0];
-	if (dimy != NULL)
-		*dimy = dim[1];
-
-	return ES_NONE;
-}
-
-/*- rt_band ----------------------------------------------------------*/
-
-/**
- * Create an in-db rt_band with no data
- *
- * @param width     : number of pixel columns
- * @param height    : number of pixel rows
- * @param pixtype   : pixel type for the band
- * @param hasnodata : indicates if the band has nodata value
- * @param nodataval : the nodata value, will be appropriately
- *                    truncated to fit the pixtype size.
- * @param data      : pointer to actual band data, required to
- *                    be aligned accordingly to
- *                    rt_pixtype_aligment(pixtype) and big enough
- *                    to hold raster width*height values.
- *                    Data will NOT be copied, ownership is left
- *                    to caller which is responsible to keep it
- *                    allocated for the whole lifetime of the returned
- *                    rt_band.
- *
- * @return an rt_band, or 0 on failure
- */
-rt_band
-rt_band_new_inline(
-	uint16_t width, uint16_t height,
-	rt_pixtype pixtype,
-	uint32_t hasnodata, double nodataval,
-	uint8_t* data
-) {
-	rt_band band = NULL;
-
-	assert(NULL != data);
-
-	band = rtalloc(sizeof(struct rt_band_t));
-	if (band == NULL) {
-		rterror("rt_band_new_inline: Out of memory allocating rt_band");
-		return NULL;
-	}
-
-	RASTER_DEBUGF(3, "Created rt_band @ %p with pixtype %s", band, rt_pixtype_name(pixtype));
-
-	band->pixtype = pixtype;
-	band->offline = 0;
-	band->width = width;
-	band->height = height;
-	band->hasnodata = hasnodata ? 1 : 0;
-	band->isnodata = FALSE; /* we don't know what is in data, so must be FALSE */
-	band->nodataval = 0;
-	band->data.mem = data;
-	band->ownsdata = 0; /* we do NOT own this data!!! */
-	band->raster = NULL;
-
-	RASTER_DEBUGF(3, "Created rt_band with dimensions %d x %d", band->width, band->height);
-
-	/* properly set nodataval as it may need to be constrained to the data type */
-	if (hasnodata && rt_band_set_nodata(band, nodataval, NULL) != ES_NONE) {
-		rterror("rt_band_new_inline: Could not set NODATA value");
-		rt_band_destroy(band);
-		return NULL;
-	}
-
-	return band;
-}
-
-/**
- * Create an out-db rt_band
- *
- * @param width     : number of pixel columns
- * @param height    : number of pixel rows
- * @param pixtype   : pixel type for the band
- * @param hasnodata : indicates if the band has nodata value
- * @param nodataval : the nodata value, will be appropriately
- *                    truncated to fit the pixtype size.
- * @param bandNum   : 0-based band number in the external file
- *                    to associate this band with.
- * @param path      : NULL-terminated path string pointing to the file
- *                    containing band data. The string will NOT be
- *                    copied, ownership is left to caller which is
- *                    responsible to keep it allocated for the whole
- *                    lifetime of the returned rt_band.
- *
- * @return an rt_band, or 0 on failure
- */
-rt_band
-rt_band_new_offline(
-	uint16_t width, uint16_t height,
-	rt_pixtype pixtype,
-	uint32_t hasnodata, double nodataval,
-	uint8_t bandNum, const char* path
-) {
-	rt_band band = NULL;
-	int pathlen = 0;
-
-	assert(NULL != path);
-
-	band = rtalloc(sizeof(struct rt_band_t));
-	if (band == NULL) {
-		rterror("rt_band_new_offline: Out of memory allocating rt_band");
-		return NULL;
-	}
-
-	RASTER_DEBUGF(3, "Created rt_band @ %p with pixtype %s",
-		band, rt_pixtype_name(pixtype)
-	); 
-
-	band->pixtype = pixtype;
-	band->offline = 1;
-	band->width = width;
-	band->height = height;
-	band->hasnodata = hasnodata ? 1 : 0;
-	band->nodataval = 0;
-	band->isnodata = FALSE; /* we don't know if the offline band is NODATA */
-	band->ownsdata = 0; /* offline, flag is useless as all offline data cache is owned internally */
-	band->raster = NULL;
-
-	/* properly set nodataval as it may need to be constrained to the data type */
-	if (hasnodata && rt_band_set_nodata(band, nodataval, NULL) != ES_NONE) {
-		rterror("rt_band_new_offline: Could not set NODATA value");
-		rt_band_destroy(band);
-		return NULL;
-	}
-
-	band->data.offline.bandNum = bandNum;
-
-	/* memory for data.offline.path is managed internally */
-	pathlen = strlen(path);
-	band->data.offline.path = rtalloc(sizeof(char) * (pathlen + 1));
-	if (band->data.offline.path == NULL) {
-		rterror("rt_band_new_offline: Out of memory allocating offline path");
-		rt_band_destroy(band);
-		return NULL;
-	}
-	memcpy(band->data.offline.path, path, pathlen);
-	band->data.offline.path[pathlen] = '\0';
-
-	band->data.offline.mem = NULL;
-
-	return band;
-}
-
-/**
- * Create a new band duplicated from source band.  Memory is allocated
- * for band path (if band is offline) or band data (if band is online).
- * The caller is responsible for freeing the memory when the returned
- * rt_band is destroyed.
- *
- * @param : the band to copy
- *
- * @return an rt_band or NULL on failure
- */
-rt_band
-rt_band_duplicate(rt_band band) {
-	rt_band rtn = NULL;
-
-	assert(band != NULL);
-
-	/* offline */
-	if (band->offline) {
-		rtn = rt_band_new_offline(
-			band->width, band->height,
-			band->pixtype,
-			band->hasnodata, band->nodataval,
-			band->data.offline.bandNum, (const char *) band->data.offline.path 
-		);
-	}
-	/* online */
-	else {
-		uint8_t *data = NULL;
-		data = rtalloc(rt_pixtype_size(band->pixtype) * band->width * band->height);
-		if (data == NULL) {
-			rterror("rt_band_duplicate: Out of memory allocating online band data");
-			return NULL;
-		}
-		memcpy(data, band->data.mem, rt_pixtype_size(band->pixtype) * band->width * band->height);
-
-		rtn = rt_band_new_inline(
-			band->width, band->height,
-			band->pixtype,
-			band->hasnodata, band->nodataval,
-			data
-		);
-		rt_band_set_ownsdata_flag(rtn, 1); /* we DO own this data!!! */
-	}
-
-	if (rtn == NULL) {
-		rterror("rt_band_duplicate: Could not copy band");
-		return NULL;
-	}
-
-	return rtn;
-}
-
-int
-rt_band_is_offline(rt_band band) {
-
-    assert(NULL != band);
-
-
-    return band->offline ? 1 : 0;
-}
-
-/**
- * Destroy a raster band
- *
- * @param band : the band to destroy
- */
-void
-rt_band_destroy(rt_band band) { 
-	if (band == NULL)
-		return;
-
-	RASTER_DEBUGF(3, "Destroying rt_band @ %p", band);
-
-	/* offline band */
-	if (band->offline) {
-		/* memory cache */
-		if (band->data.offline.mem != NULL)
-			rtdealloc(band->data.offline.mem);
-		/* offline file path */
-		if (band->data.offline.path != NULL)
-			rtdealloc(band->data.offline.path);
-	}
-	/* inline band and band owns the data */
-	else if (band->data.mem != NULL && band->ownsdata)
-		rtdealloc(band->data.mem);
-
-	rtdealloc(band);
-}
-
-const char*
-rt_band_get_ext_path(rt_band band) {
-
-    assert(NULL != band);
-
-
-    if (!band->offline) {
-        RASTER_DEBUG(3, "rt_band_get_ext_path: Band is not offline");
-        return NULL;
-    }
-    return band->data.offline.path;
-}
-
-rt_errorstate
-rt_band_get_ext_band_num(rt_band band, uint8_t *bandnum) {
-	assert(NULL != band);
-	assert(NULL != bandnum);
-
-	*bandnum = 0;
-
-	if (!band->offline) {
-		RASTER_DEBUG(3, "rt_band_get_ext_band_num: Band is not offline");
-		return ES_ERROR;
-	}
-
-	*bandnum = band->data.offline.bandNum;
-
-	return ES_NONE;
-}
-
-/**
-	* Get pointer to raster band data
-	*
-	* @param band : the band who's data to get
-	*
-	* @return pointer to band data or NULL if error
-	*/
-void *
-rt_band_get_data(rt_band band) {
-	assert(NULL != band);
-
-	if (band->offline) {
-		if (band->data.offline.mem != NULL)
-			return band->data.offline.mem;
-
-		if (rt_band_load_offline_data(band) != ES_NONE)
-			return NULL;
-		else
-			return band->data.offline.mem;
-	}
-	else
-		return band->data.mem;
-}
-
-/* variable for PostgreSQL env variable: POSTGIS_ENABLE_OUTDB_RASTERS */
-char enable_outdb_rasters = 1;
-
-/**
-	* Load offline band's data.  Loaded data is internally owned
-	* and should not be released by the caller.  Data will be
-	* released when band is destroyed with rt_band_destroy().
-	*
-	* @param band : the band who's data to get
-	*
-	* @return ES_NONE if success, ES_ERROR if failure
-	*/
-rt_errorstate
-rt_band_load_offline_data(rt_band band) {
-	GDALDatasetH hdsSrc = NULL;
-	int nband = 0;
-	VRTDatasetH hdsDst = NULL;
-	VRTSourcedRasterBandH hbandDst = NULL;
-	double gt[6] = {0.};
-	double ogt[6] = {0};
-	double offset[2] = {0};
-
-	rt_raster _rast = NULL;
-	rt_band _band = NULL;
-	int aligned = 0;
-	int err = ES_NONE;
-
-	assert(band != NULL);
-	assert(band->raster != NULL);
-
-	if (!band->offline) {
-		rterror("rt_band_load_offline_data: Band is not offline");
-		return ES_ERROR;
-	}
-	else if (!strlen(band->data.offline.path)) {
-		rterror("rt_band_load_offline_data: Offline band does not a have a specified file");
-		return ES_ERROR;
-	}
-
-	/* out-db is disabled */
-	if (!enable_outdb_rasters) {
-		rterror("rt_raster_load_offline_data: Access to offline bands disabled");
-		return ES_ERROR;
-	}
-
-	rt_util_gdal_register_all(0);
-	/*
-	 hdsSrc = rt_util_gdal_open(band->data.offline.path, GA_ReadOnly, 1);
-	*/
-	hdsSrc = rt_util_gdal_open(band->data.offline.path, GA_ReadOnly, 0);
-	if (hdsSrc == NULL) {
-		rterror("rt_band_load_offline_data: Cannot open offline raster: %s", band->data.offline.path);
-		return ES_ERROR;
-	}
-
-	/* # of bands */
-	nband = GDALGetRasterCount(hdsSrc);
-	if (!nband) {
-		rterror("rt_band_load_offline_data: No bands found in offline raster: %s", band->data.offline.path);
-		GDALClose(hdsSrc);
-		return ES_ERROR;
-	}
-	/* bandNum is 0-based */
-	else if (band->data.offline.bandNum + 1 > nband) {
-		rterror("rt_band_load_offline_data: Specified band %d not found in offline raster: %s", band->data.offline.bandNum, band->data.offline.path);
-		GDALClose(hdsSrc);
-		return ES_ERROR;
-	}
-
-	/* get raster's geotransform */
-	rt_raster_get_geotransform_matrix(band->raster, gt);
-	RASTER_DEBUGF(3, "Raster geotransform (%f, %f, %f, %f, %f, %f)",
-		gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
-
-	/* get offline raster's geotransform */
-	if (GDALGetGeoTransform(hdsSrc, ogt) != CE_None) {
-		RASTER_DEBUG(4, "Using default geotransform matrix (0, 1, 0, 0, 0, -1)");
-		ogt[0] = 0;
-		ogt[1] = 1;
-		ogt[2] = 0;
-		ogt[3] = 0;
-		ogt[4] = 0;
-		ogt[5] = -1;
-	}
-	RASTER_DEBUGF(3, "Offline geotransform (%f, %f, %f, %f, %f, %f)",
-		ogt[0], ogt[1], ogt[2], ogt[3], ogt[4], ogt[5]);
-
-	/* are rasters aligned? */
-	_rast = rt_raster_new(1, 1);
-	rt_raster_set_geotransform_matrix(_rast, ogt);
-	rt_raster_set_srid(_rast, band->raster->srid);
-	err = rt_raster_same_alignment(band->raster, _rast, &aligned, NULL);
-	rt_raster_destroy(_rast);
-
-	if (err != ES_NONE) {
-		rterror("rt_band_load_offline_data: Could not test alignment of in-db representation of out-db raster");
-		GDALClose(hdsSrc);
-		return ES_ERROR;
-	}
-	else if (!aligned) {
-		rtwarn("The in-db representation of the out-db raster is not aligned. Band data may be incorrect");
-	}
-
-	/* get offsets */
-	rt_raster_geopoint_to_cell(
-		band->raster,
-		ogt[0], ogt[3],
-		&(offset[0]), &(offset[1]),
-		NULL
-	);
-
-	RASTER_DEBUGF(4, "offsets: (%f, %f)", offset[0], offset[1]);
-
-	/* create VRT dataset */
-	hdsDst = VRTCreate(band->width, band->height);
-	GDALSetGeoTransform(hdsDst, gt);
-	/*
-	GDALSetDescription(hdsDst, "/tmp/offline.vrt");
-	*/
-
-	/* add band as simple sources */
-	GDALAddBand(hdsDst, rt_util_pixtype_to_gdal_datatype(band->pixtype), NULL);
-	hbandDst = (VRTSourcedRasterBandH) GDALGetRasterBand(hdsDst, 1);
-
-	if (band->hasnodata)
-		GDALSetRasterNoDataValue(hbandDst, band->nodataval);
-
-	VRTAddSimpleSource(
-		hbandDst, GDALGetRasterBand(hdsSrc, band->data.offline.bandNum + 1),
-		abs(offset[0]), abs(offset[1]),
-		band->width, band->height,
-		0, 0,
-		band->width, band->height,
-		"near", VRT_NODATA_UNSET
-	);
-
-	/* make sure VRT reflects all changes */
-	VRTFlushCache(hdsDst);
-
-	/* convert VRT dataset to rt_raster */
-	_rast = rt_raster_from_gdal_dataset(hdsDst);
-
-	GDALClose(hdsDst);
-	/* XXX: need to find a way to clean up the GDALOpenShared datasets at end of transaction */
-	/* GDALClose(hdsSrc); */
-	GDALClose(hdsSrc);
-
-	if (_rast == NULL) {
-		rterror("rt_band_load_offline_data: Cannot load data from offline raster: %s", band->data.offline.path);
-		return ES_ERROR;
-	}
-
-	_band = rt_raster_get_band(_rast, 0);
-	if (_band == NULL) {
-		rterror("rt_band_load_offline_data: Cannot load data from offline raster: %s", band->data.offline.path);
-		rt_raster_destroy(_rast);
-		return ES_ERROR;
-	}
-
-	/* band->data.offline.mem not NULL, free first */
-	if (band->data.offline.mem != NULL) {
-		rtdealloc(band->data.offline.mem);
-		band->data.offline.mem = NULL;
-	}
-
-	band->data.offline.mem = _band->data.mem;
-
-	rtdealloc(_band); /* cannot use rt_band_destroy */
-	rt_raster_destroy(_rast);
-
-	return ES_NONE;
-}
-
-rt_pixtype
-rt_band_get_pixtype(rt_band band) {
-
-    assert(NULL != band);
-
-
-    return band->pixtype;
-}
-
-uint16_t
-rt_band_get_width(rt_band band) {
-
-    assert(NULL != band);
-
-
-    return band->width;
-}
-
-uint16_t
-rt_band_get_height(rt_band band) {
-
-    assert(NULL != band);
-
-
-    return band->height;
-}
-
-/* Get ownsdata flag */
-int
-rt_band_get_ownsdata_flag(rt_band band) {
-	assert(NULL != band);
-
-	return band->ownsdata ? 1 : 0;
-}
-
-/* set ownsdata flag */
-void
-rt_band_set_ownsdata_flag(rt_band band, int flag) {
-	assert(NULL != band);
-
-	band->ownsdata = flag ? 1 : 0;
-}
-
-#ifdef OPTIMIZE_SPACE
-
-/*
- * Set given number of bits of the given byte,
- * starting from given bitOffset (from the first)
- * to the given value.
- *
- * Examples:
- *   char ch;
- *   ch=0; setBits(&ch, 1, 1, 0) -> ch==8
- *   ch=0; setBits(&ch, 3, 2, 1) -> ch==96 (0x60)
- *
- * Note that number of bits set must be <= 8-bitOffset
- *
- */
-static void
-setBits(char* ch, double val, int bits, int bitOffset) {
-    char mask = 0xFF >> (8 - bits);
-    char ival = val;
-
-
-		assert(ch != NULL);
-    assert(8 - bitOffset >= bits);
-
-    RASTER_DEBUGF(4, "ival:%d bits:%d mask:%hhx bitoffset:%d\n",
-            ival, bits, mask, bitOffset);
-
-    /* clear all but significant bits from ival */
-    ival &= mask;
-#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
-    if (ival != val) {
-        rtwarn("Pixel value for %d-bits band got truncated"
-                " from %g to %hhu", bits, val, ival);
-    }
-#endif /* POSTGIS_RASTER_WARN_ON_TRUNCATION */
-
-    RASTER_DEBUGF(4, " cleared ival:%hhx\n", ival);
-
-
-    /* Shift ival so the significant bits start at
-     * the first bit */
-    ival <<= (8 - bitOffset - bits);
-
-    RASTER_DEBUGF(4, " ival shifted:%hhx\n", ival);
-    RASTER_DEBUGF(4, "  ch:%hhx\n", *ch);
-
-    /* clear first bits of target */
-    *ch &= ~(mask << (8 - bits - bitOffset));
-
-    RASTER_DEBUGF(4, "  ch cleared:%hhx\n", *ch);
-
-    /* Set the first bit of target */
-    *ch |= ival;
-
-    RASTER_DEBUGF(4, "  ch ored:%hhx\n", *ch);
-
-}
-#endif /* OPTIMIZE_SPACE */
-
-int
-rt_band_get_hasnodata_flag(rt_band band) {
-	assert(NULL != band);
-
-	return band->hasnodata ? 1 : 0;
-}
-
-void
-rt_band_set_hasnodata_flag(rt_band band, int flag) {
-
-    assert(NULL != band);
-
-    band->hasnodata = (flag) ? 1 : 0;
-
-		/* isnodata depends on hasnodata */
-		if (!band->hasnodata && band->isnodata) {
-			RASTER_DEBUG(3, "Setting isnodata to FALSE as band no longer has NODATA");
-			band->isnodata = 0;
-		}
-}
-
-rt_errorstate
-rt_band_set_isnodata_flag(rt_band band, int flag) {
-	assert(NULL != band);
-
-	if (!band->hasnodata) {
-		/* silently permit setting isnodata flag to FALSE */
-		if (!flag)
-			band->isnodata = 0;
-		else {
-			rterror("rt_band_set_isnodata_flag: Cannot set isnodata flag as band has no NODATA");
-			return ES_ERROR;
-		}
-	}
-	else 
-		band->isnodata = (flag) ? 1 : 0;
-
-	return ES_NONE;
-}
-
-int
-rt_band_get_isnodata_flag(rt_band band) {
-	assert(NULL != band);
-
-	if (band->hasnodata)
-		return band->isnodata ? 1 : 0;
-	else
-		return 0;
-}
-
-/**
- * Set nodata value
- *
- * @param band : the band to set nodata value to
- * @param val : the nodata value
- * @param converted : if non-zero, value was truncated/clamped/coverted
- *
- * @return ES_NONE or ES_ERROR
- */
-rt_errorstate
-rt_band_set_nodata(rt_band band, double val, int *converted) {
-	rt_pixtype pixtype = PT_END;
-	int32_t checkvalint = 0;
-	uint32_t checkvaluint = 0;
-	float checkvalfloat = 0;
-	double checkvaldouble = 0;
-
-	assert(NULL != band);
-
-	if (converted != NULL)
-		*converted = 0;
-
-	pixtype = band->pixtype;
-
-	RASTER_DEBUGF(3, "rt_band_set_nodata: setting nodata value %g with band type %s", val, rt_pixtype_name(pixtype));
-
-	/* return -1 on out of range */
-	switch (pixtype) {
-		case PT_1BB: {
-			band->nodataval = rt_util_clamp_to_1BB(val);
-			checkvalint = band->nodataval;
-			break;
-		}
-		case PT_2BUI: {
-			band->nodataval = rt_util_clamp_to_2BUI(val);
-			checkvalint = band->nodataval;
-			break;
-		}
-		case PT_4BUI: {
-			band->nodataval = rt_util_clamp_to_4BUI(val);
-			checkvalint = band->nodataval;
-			break;
-		}
-		case PT_8BSI: {
-			band->nodataval = rt_util_clamp_to_8BSI(val);
-			checkvalint = band->nodataval;
-			break;
-		}
-		case PT_8BUI: {
-			band->nodataval = rt_util_clamp_to_8BUI(val);
-			checkvalint = band->nodataval;
-			break;
-		}
-		case PT_16BSI: {
-			band->nodataval = rt_util_clamp_to_16BSI(val);
-			checkvalint = band->nodataval;
-			break;
-		}
-		case PT_16BUI: {
-			band->nodataval = rt_util_clamp_to_16BUI(val);
-			checkvalint = band->nodataval;
-			break;
-		}
-		case PT_32BSI: {
-			band->nodataval = rt_util_clamp_to_32BSI(val);
-			checkvalint = band->nodataval;
-			break;
-		}
-		case PT_32BUI: {
-			band->nodataval = rt_util_clamp_to_32BUI(val);
-			checkvaluint = band->nodataval;
-			break;
-		}
-		case PT_32BF: {
-			band->nodataval = rt_util_clamp_to_32F(val);
-			checkvalfloat = band->nodataval;
-			break;
-		}
-		case PT_64BF: {
-			band->nodataval = val;
-			checkvaldouble = band->nodataval;
-			break;
-		}
-		default: {
-			rterror("rt_band_set_nodata: Unknown pixeltype %d", pixtype);
-			band->hasnodata = 0;
-			return ES_ERROR;
-		}
-	}
-
-	RASTER_DEBUGF(3, "rt_band_set_nodata: band->hasnodata = %d", band->hasnodata);
-	RASTER_DEBUGF(3, "rt_band_set_nodata: band->nodataval = %f", band->nodataval); 
-	/* the nodata value was just set, so this band has NODATA */
-	band->hasnodata = 1;
-
-	/* also set isnodata flag to false */
-	band->isnodata = 0; 
-
-	if (rt_util_dbl_trunc_warning(
-		val,
-		checkvalint, checkvaluint,
-		checkvalfloat, checkvaldouble,
-		pixtype
-	) && converted != NULL) {
-		*converted = 1;
-	}
-
-	return ES_NONE;
-}
-
-/**
- * Set values of multiple pixels.  Unlike rt_band_set_pixel,
- * values in vals are expected to be of the band's pixel type
- * as this function uses memcpy.
- *
- * It is important to be careful when using this function as
- * the number of values being set may exceed a pixel "row".
- * Remember that the band values are stored in a stream (1-D array)
- * regardless of what the raster's width and height might be.
- * So, setting a number of values may cross multiple pixel "rows".
- *
- * @param band : the band to set value to
- * @param x : X coordinate (0-based)
- * @param y : Y coordinate (0-based)
- * @param vals : the pixel values to apply
- * @param len : # of elements in vals
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate
-rt_band_set_pixel_line(
-	rt_band band,
-	int x, int y,
-	void *vals, uint32_t len
-) {
-	rt_pixtype pixtype = PT_END;
-	int size = 0;
-	uint8_t *data = NULL;
-	uint32_t offset = 0;
-
-	assert(NULL != band);
-	assert(vals != NULL && len > 0);
-
-	RASTER_DEBUGF(3, "length of values = %d", len);
-
-	if (band->offline) {
-		rterror("rt_band_set_pixel_line not implemented yet for OFFDB bands");
-		return ES_ERROR;
-	}
-
-	pixtype = band->pixtype;
-	size = rt_pixtype_size(pixtype);
-
-	if (
-		x < 0 || x >= band->width ||
-		y < 0 || y >= band->height
-	) {
-		rterror("rt_band_set_pixel_line: Coordinates out of range (%d, %d) vs (%d, %d)", x, y, band->width, band->height);
-		return ES_ERROR;
-	}
-
-	data = rt_band_get_data(band);
-	offset = x + (y * band->width);
-	RASTER_DEBUGF(4, "offset = %d", offset);
-
-	/* make sure len of values to copy don't exceed end of data */
-	if (len > (band->width * band->height) - offset) {
-		rterror("rt_band_set_pixel_line: Could not apply pixels as values length exceeds end of data");
-		return ES_ERROR;
-	}
-
-	switch (pixtype) {
-		case PT_1BB:
-		case PT_2BUI:
-		case PT_4BUI:
-		case PT_8BUI:
-		case PT_8BSI: {
-			uint8_t *ptr = data;
-			ptr += offset;
-			memcpy(ptr, vals, size * len);
-			break;
-		}
-		case PT_16BUI: {
-			uint16_t *ptr = (uint16_t *) data;
-			ptr += offset;
-			memcpy(ptr, vals, size * len);
-			break;
-		}
-		case PT_16BSI: {
-			int16_t *ptr = (int16_t *) data;
-			ptr += offset;
-			memcpy(ptr, vals, size * len);
-			break;
-		}
-		case PT_32BUI: {
-			uint32_t *ptr = (uint32_t *) data;
-			ptr += offset;
-			memcpy(ptr, vals, size * len);
-			break;
-		}
-		case PT_32BSI: {
-			int32_t *ptr = (int32_t *) data;
-			ptr += offset;
-			memcpy(ptr, vals, size * len);
-			break;
-		}
-		case PT_32BF: {
-			float *ptr = (float *) data;
-			ptr += offset;
-			memcpy(ptr, vals, size * len);
-			break;
-		}
-		case PT_64BF: {
-			double *ptr = (double *) data;
-			ptr += offset;
-			memcpy(ptr, vals, size * len);
-			break;
-		}
-		default: {
-			rterror("rt_band_set_pixel_line: Unknown pixeltype %d", pixtype);
-			return ES_ERROR;
-		}
-	}
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	{
-		double value;
-		rt_band_get_pixel(band, x, y, &value, NULL);
-		RASTER_DEBUGF(4, "pixel at (%d, %d) = %f", x, y, value);
-	}
-#endif
-
-	/* set band's isnodata flag to FALSE */
-	if (rt_band_get_hasnodata_flag(band))
-		rt_band_set_isnodata_flag(band, 0);
-
-	return ES_NONE;
-}
-
-/**
- * Set single pixel's value
- *
- * @param band : the band to set value to
- * @param x : x ordinate (0-based)
- * @param y : y ordinate (0-based)
- * @param val : the pixel value
- * @param converted : (optional) non-zero if value truncated/clamped/converted
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate
-rt_band_set_pixel(
-	rt_band band,
-	int x, int y,
-	double val,
-	int *converted
-) {
-	rt_pixtype pixtype = PT_END;
-	unsigned char* data = NULL;
-	uint32_t offset = 0;
-
-	int32_t checkvalint = 0;
-	uint32_t checkvaluint = 0;
-	float checkvalfloat = 0;
-	double checkvaldouble = 0;
-
-	assert(NULL != band);
-
-	if (converted != NULL)
-		*converted = 0;
-
-	if (band->offline) {
-		rterror("rt_band_set_pixel not implemented yet for OFFDB bands");
-		return ES_ERROR;
-	}
-
-	pixtype = band->pixtype;
-
-	if (
-		x < 0 || x >= band->width ||
-		y < 0 || y >= band->height
-	) {
-		rterror("rt_band_set_pixel: Coordinates out of range");
-		return ES_ERROR;
-	}
-
-	/* check that clamped value isn't clamped NODATA */
-	if (band->hasnodata && pixtype != PT_64BF) {
-		double newval;
-		int corrected;
-
-		rt_band_corrected_clamped_value(band, val, &newval, &corrected);
-
-		if (corrected) {
-#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
-			rtwarn("Value for pixel %d x %d has been corrected as clamped value becomes NODATA", x, y);
-#endif
-			val = newval;
-
-			if (converted != NULL)
-				*converted = 1;
-		}
-	}
-
-	data = rt_band_get_data(band);
-	offset = x + (y * band->width);
-
-	switch (pixtype) {
-		case PT_1BB: {
-			data[offset] = rt_util_clamp_to_1BB(val);
-			checkvalint = data[offset];
-			break;
-		}
-		case PT_2BUI: {
-			data[offset] = rt_util_clamp_to_2BUI(val);
-			checkvalint = data[offset];
-			break;
-		}
-		case PT_4BUI: {
-			data[offset] = rt_util_clamp_to_4BUI(val);
-			checkvalint = data[offset];
-			break;
-		}
-		case PT_8BSI: {
-			data[offset] = rt_util_clamp_to_8BSI(val);
-			checkvalint = (int8_t) data[offset];
-			break;
-		}
-		case PT_8BUI: {
-			data[offset] = rt_util_clamp_to_8BUI(val);
-			checkvalint = data[offset];
-			break;
-		}
-		case PT_16BSI: {
-			int16_t *ptr = (int16_t*) data; /* we assume correct alignment */
-			ptr[offset] = rt_util_clamp_to_16BSI(val);
-			checkvalint = (int16_t) ptr[offset];
-			break;
-		}
-		case PT_16BUI: {
-			uint16_t *ptr = (uint16_t*) data; /* we assume correct alignment */
-			ptr[offset] = rt_util_clamp_to_16BUI(val);
-			checkvalint = ptr[offset];
-			break;
-		}
-		case PT_32BSI: {
-			int32_t *ptr = (int32_t*) data; /* we assume correct alignment */
-			ptr[offset] = rt_util_clamp_to_32BSI(val);
-			checkvalint = (int32_t) ptr[offset];
-			break;
-		}
-		case PT_32BUI: {
-			uint32_t *ptr = (uint32_t*) data; /* we assume correct alignment */
-			ptr[offset] = rt_util_clamp_to_32BUI(val);
-			checkvaluint = ptr[offset];
-			break;
-		}
-		case PT_32BF: {
-			float *ptr = (float*) data; /* we assume correct alignment */
-			ptr[offset] = rt_util_clamp_to_32F(val);
-			checkvalfloat = ptr[offset];
-			break;
-		}
-		case PT_64BF: {
-			double *ptr = (double*) data; /* we assume correct alignment */
-			ptr[offset] = val;
-			checkvaldouble = ptr[offset];
-			break;
-		}
-		default: {
-			rterror("rt_band_set_pixel: Unknown pixeltype %d", pixtype);
-			return ES_ERROR;
-		}
-	}
-
-	/* If the stored value is not NODATA, reset the isnodata flag */
-	if (!rt_band_clamped_value_is_nodata(band, val)) {
-		RASTER_DEBUG(3, "Band has a value that is not NODATA. Setting isnodata to FALSE");
-		band->isnodata = FALSE;
-	}
-
-	/* Overflow checking */
-	if (rt_util_dbl_trunc_warning(
-		val,
-		checkvalint, checkvaluint,
-		checkvalfloat, checkvaldouble,
-		pixtype
-	) && converted != NULL) {
-		*converted = 1;
-	}
-
-	return ES_NONE;
-}
-
-/**
- * Get values of multiple pixels.  Unlike rt_band_get_pixel,
- * values in vals are of the band's pixel type so cannot be
- * assumed to be double.  Function uses memcpy.
- *
- * It is important to be careful when using this function as
- * the number of values being fetched may exceed a pixel "row".
- * Remember that the band values are stored in a stream (1-D array)
- * regardless of what the raster's width and height might be.
- * So, getting a number of values may cross multiple pixel "rows".
- *
- * @param band : the band to get pixel value from
- * @param x : pixel column (0-based)
- * @param y : pixel row (0-based)
- * @param len : the number of pixels to get
- * @param **vals : the pixel values
- * @param *nvals : the number of pixel values being returned
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_band_get_pixel_line(
-	rt_band band,
-	int x, int y,
-	uint16_t len,
-	void **vals, uint16_t *nvals
-) {
-	uint8_t *_vals = NULL;
-	int pixsize = 0;
-	uint8_t *data = NULL;
-	uint32_t offset = 0; 
-	uint16_t _nvals = 0;
-	int maxlen = 0;
-	uint8_t *ptr = NULL;
-
-	assert(NULL != band);
-	assert(vals != NULL && nvals != NULL);
-
-	/* initialize to no values */
-	*nvals = 0;
-
-	if (
-		x < 0 || x >= band->width ||
-		y < 0 || y >= band->height
-	) {
-		rtwarn("Attempting to get pixel values with out of range raster coordinates: (%d, %d)", x, y);
-		return ES_ERROR;
-	}
-
-	if (len < 1)
-		return ES_NONE;
-
-	data = rt_band_get_data(band);
-	if (data == NULL) {
-		rterror("rt_band_get_pixel_line: Cannot get band data");
-		return ES_ERROR;
-	}
-
-	/* +1 for the nodata value */
-	offset = x + (y * band->width);
-	RASTER_DEBUGF(4, "offset = %d", offset);
-
-	pixsize = rt_pixtype_size(band->pixtype);
-	RASTER_DEBUGF(4, "pixsize = %d", pixsize);
-
-	/* cap _nvals so that it doesn't overflow */
-	_nvals = len;
-	maxlen = band->width * band->height;
-
-	if (((int) (offset + _nvals)) > maxlen) {
-		_nvals = maxlen - offset;
-		rtwarn("Limiting returning number values to %d", _nvals);
-	}
-	RASTER_DEBUGF(4, "_nvals = %d", _nvals);
-
-	ptr = data + (offset * pixsize);
-
-	_vals = rtalloc(_nvals * pixsize);
-	if (_vals == NULL) {
-		rterror("rt_band_get_pixel_line: Could not allocate memory for pixel values");
-		return ES_ERROR;
-	}
-
-	/* copy pixels */
-	memcpy(_vals, ptr, _nvals * pixsize);
-
-	*vals = _vals;
-	*nvals = _nvals;
-
-	return ES_NONE;
-}
-
-/**
- * Get pixel value. If band's isnodata flag is TRUE, value returned 
- * will be the band's NODATA value
- *
- * @param band : the band to set nodata value to
- * @param x : x ordinate (0-based)
- * @param y : x ordinate (0-based)
- * @param *value : pixel value
- * @param *nodata : 0 if pixel is not NODATA
- *
- * @return 0 on success, -1 on error (value out of valid range).
- */
-rt_errorstate
-rt_band_get_pixel(
-	rt_band band,
-	int x, int y,
-	double *value,
-	int *nodata
-) {
-	rt_pixtype pixtype = PT_END;
-	uint8_t* data = NULL;
-	uint32_t offset = 0; 
-
-	assert(NULL != band);
-	assert(NULL != value);
-
-	/* set nodata to 0 */
-	if (nodata != NULL)
-		*nodata = 0;
-
-	if (
-		x < 0 || x >= band->width ||
-		y < 0 || y >= band->height
-	) {
-		rtwarn("Attempting to get pixel value with out of range raster coordinates: (%d, %d)", x, y);
-		return ES_ERROR;
-	}
-
-	/* band is NODATA */
-	if (band->isnodata) {
-		RASTER_DEBUG(3, "Band's isnodata flag is TRUE. Returning NODATA value");
-		*value = band->nodataval;
-		if (nodata != NULL) *nodata = 1;
-		return ES_NONE;
-	}
-
-	data = rt_band_get_data(band);
-	if (data == NULL) {
-		rterror("rt_band_get_pixel: Cannot get band data");
-		return ES_ERROR;
-	}
-
-	/* +1 for the nodata value */
-	offset = x + (y * band->width);
-
-	pixtype = band->pixtype;
-
-	switch (pixtype) {
-		case PT_1BB:
-#ifdef OPTIMIZE_SPACE
-			{
-				int byteOffset = offset / 8;
-				int bitOffset = offset % 8;
-				data += byteOffset;
-
-				/* Bit to set is bitOffset into data */
-				*value = getBits(data, val, 1, bitOffset);
-				break;
-			}
-#endif
-		case PT_2BUI:
-#ifdef OPTIMIZE_SPACE
-			{
-				int byteOffset = offset / 4;
-				int bitOffset = offset % 4;
-				data += byteOffset;
-
-				/* Bits to set start at bitOffset into data */
-				*value = getBits(data, val, 2, bitOffset);
-				break;
-			}
-#endif
-		case PT_4BUI:
-#ifdef OPTIMIZE_SPACE
-			{
-				int byteOffset = offset / 2;
-				int bitOffset = offset % 2;
-				data += byteOffset;
-
-				/* Bits to set start at bitOffset into data */
-				*value = getBits(data, val, 2, bitOffset);
-				break;
-			}
-#endif
-		case PT_8BSI: {
-			int8_t val = data[offset];
-			*value = val;
-			break;
-		}
-		case PT_8BUI: {
-			uint8_t val = data[offset];
-			*value = val;
-			break;
-		}
-		case PT_16BSI: {
-			int16_t *ptr = (int16_t*) data; /* we assume correct alignment */
-			*value = ptr[offset];
-			break;
-		}
-		case PT_16BUI: {
-			uint16_t *ptr = (uint16_t*) data; /* we assume correct alignment */
-			*value = ptr[offset];
-			break;
-		}
-		case PT_32BSI: {
-			int32_t *ptr = (int32_t*) data; /* we assume correct alignment */
-			*value = ptr[offset];
-			break;
-		}
-		case PT_32BUI: {
-			uint32_t *ptr = (uint32_t*) data; /* we assume correct alignment */
-			*value = ptr[offset];
-			break;
-		}
-		case PT_32BF: {
-			float *ptr = (float*) data; /* we assume correct alignment */
-			*value = ptr[offset];
-			break;
-		}
-		case PT_64BF: {
-			double *ptr = (double*) data; /* we assume correct alignment */
-			*value = ptr[offset];
-			break;
-		}
-		default: {
-			rterror("rt_band_get_pixel: Unknown pixeltype %d", pixtype);
-			return ES_ERROR;
-		}
-	}
-
-	/* set NODATA flag */
-	if (band->hasnodata && nodata != NULL) {
-		if (rt_band_clamped_value_is_nodata(band, *value))
-			*nodata = 1;
-	}
-
-	return ES_NONE;
-}
-
-/**
- * Get nearest pixel(s) with value (not NODATA) to specified pixel
- *
- * @param band : the band to get nearest pixel(s) from
- * @param x : the column of the pixel (0-based)
- * @param y : the line of the pixel (0-based)
- * @param distancex : the number of pixels around the specified pixel
- * along the X axis
- * @param distancey : the number of pixels around the specified pixel
- * along the Y axis
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * to check for pixels with value
- * @param npixels : return set of rt_pixel object or NULL
- *
- * @return -1 on error, otherwise the number of rt_pixel objects
- * in npixels
- */
-int rt_band_get_nearest_pixel(
-	rt_band band,
-	int x, int y,
-	uint16_t distancex, uint16_t distancey,
-	int exclude_nodata_value,
-	rt_pixel *npixels
-) {
-	rt_pixel npixel = NULL;
-	int extent[4] = {0};
-	int max_extent[4] = {0};
-	int d0 = 0;
-	int distance[2] = {0};
-	uint32_t _d[2] = {0};
-	uint32_t i = 0;
-	uint32_t j = 0;
-	uint32_t k = 0;
-	int _max = 0;
-	int _x = 0;
-	int _y = 0;
-	int *_min = NULL;
-	double pixval = 0;
-	double minval = 0;
-	uint32_t count = 0;
-	int isnodata = 0;
-
-	int inextent = 0;
-
-	assert(NULL != band);
-	assert(NULL != npixels);
-
-	RASTER_DEBUG(3, "Starting");
-
-	/* process distance */
-	distance[0] = distancex;
-	distance[1] = distancey;
-
-	/* no distance, means get nearest pixels and return */
-	if (!distance[0] && !distance[1])
-		d0 = 1;
-
-	RASTER_DEBUGF(4, "Selected pixel: %d x %d", x, y);
-	RASTER_DEBUGF(4, "Distances: %d x %d", distance[0], distance[1]);
-
-	/* shortcuts if outside band extent */
-	if (
-		exclude_nodata_value && (
-			(x < 0 || x > band->width) ||
-			(y < 0 || y > band->height)
-		)
-	) {
-		/* no distances specified, jump to pixel close to extent */
-		if (d0) {
-			if (x < 0)
-				x = -1;
-			else if (x > band->width)
-				x = band->width;
-
-			if (y < 0)
-				y = -1;
-			else if (y > band->height)
-				y = band->height;
-
-			RASTER_DEBUGF(4, "Moved selected pixel: %d x %d", x, y);
-		}
-		/*
-			distances specified
-			if distances won't capture extent of band, return 0
-		*/
-		else if (
-			((x < 0 && abs(x) > distance[0]) || (x - band->width >= distance[0])) ||
-			((y < 0 && abs(y) > distance[1]) || (y - band->height >= distance[1]))
-		) {
-			RASTER_DEBUG(4, "No nearest pixels possible for provided pixel and distances");
-			return 0;
-		}
-	}
-
-	/* no NODATA, exclude is FALSE */
-	if (!band->hasnodata)
-		exclude_nodata_value = FALSE;
-	/* band is NODATA and excluding NODATA */
-	else if (exclude_nodata_value && band->isnodata) {
-		RASTER_DEBUG(4, "No nearest pixels possible as band is NODATA and excluding NODATA values");
-		return 0;
-	}
-
-	/* determine the maximum distance to prevent an infinite loop */
-	if (d0) {
-		int a, b;
-
-		/* X axis */
-		a = abs(x);
-		b = abs(x - band->width);
-
-		if (a > b)
-			distance[0] = a;
-		else
-			distance[0] = b;
-
-		/* Y axis */
-		a = abs(y);
-		b = abs(y - band->height);
-		if (a > b)
-			distance[1] = a;
-		else
-			distance[1] = b;
-
-		RASTER_DEBUGF(4, "Maximum distances: %d x %d", distance[0], distance[1]);
-	}
-
-	/* minimum possible value for pixel type */
-	minval = rt_pixtype_get_min_value(band->pixtype);
-	RASTER_DEBUGF(4, "pixtype: %s", rt_pixtype_name(band->pixtype));
-	RASTER_DEBUGF(4, "minval: %f", minval);
-
-	/* set variables */
-	count = 0;
-	*npixels = NULL;
-
-	/* maximum extent */
-	max_extent[0] = x - distance[0]; /* min X */
-	max_extent[1] = y - distance[1]; /* min Y */
-	max_extent[2] = x + distance[0]; /* max X */
-	max_extent[3] = y + distance[1]; /* max Y */
-	RASTER_DEBUGF(4, "Maximum Extent: (%d, %d, %d, %d)",
-		max_extent[0], max_extent[1], max_extent[2], max_extent[3]);
-
-	_d[0] = 0;
-	_d[1] = 0;
-	do {
-		_d[0]++;
-		_d[1]++;
-
-		extent[0] = x - _d[0]; /* min x */
-		extent[1] = y - _d[1]; /* min y */
-		extent[2] = x + _d[0]; /* max x */
-		extent[3] = y + _d[1]; /* max y */
-
-		RASTER_DEBUGF(4, "Processing distances: %d x %d", _d[0], _d[1]);
-		RASTER_DEBUGF(4, "Extent: (%d, %d, %d, %d)",
-			extent[0], extent[1], extent[2], extent[3]);
-
-		for (i = 0; i < 2; i++) {
-
-			/* by row */
-			if (i < 1)
-				_max = extent[2] - extent[0] + 1;
-			/* by column */
-			else
-				_max = extent[3] - extent[1] + 1;
-			_max = abs(_max);
-
-			for (j = 0; j < 2; j++) {
-				/* by row */
-				if (i < 1) {
-					_x = extent[0];
-					_min = &_x;
-
-					/* top row */
-					if (j < 1)
-						_y = extent[1];
-					/* bottom row */
-					else
-						_y = extent[3];
-				}
-				/* by column */
-				else {
-					_y = extent[1] + 1;
-					_min = &_y;
-
-					/* left column */
-					if (j < 1) {
-						_x = extent[0];
-						_max -= 2;
-					}
-					/* right column */
-					else
-						_x = extent[2];
-				}
-
-				RASTER_DEBUGF(4, "_min, _max: %d, %d", *_min, _max);
-				for (k = 0; k < _max; k++) {
-					/* check that _x and _y are not outside max extent */
-					if (
-						_x < max_extent[0] || _x > max_extent[2] ||
-						_y < max_extent[1] || _y > max_extent[3]
-					) {
-						(*_min)++;
-						continue;
-					}
-
-					/* outside band extent, set to NODATA */
-					if (
-						(_x < 0 || _x >= band->width) ||
-						(_y < 0 || _y >= band->height)
-					) {
-						/* no NODATA, set to minimum possible value */
-						if (!band->hasnodata)
-							pixval = minval;
-						/* has NODATA, use NODATA */
-						else
-							pixval = band->nodataval;
-						RASTER_DEBUGF(4, "NODATA pixel outside band extent: (x, y, val) = (%d, %d, %f)", _x, _y, pixval);
-						inextent = 0;
-						isnodata = 1;
-					}
-					else {
-						if (rt_band_get_pixel(
-							band,
-							_x, _y,
-							&pixval,
-							&isnodata
-						) != ES_NONE) {
-							rterror("rt_band_get_nearest_pixel: Could not get pixel value");
-							if (count) rtdealloc(*npixels);
-							return -1;
-						}
-						RASTER_DEBUGF(4, "Pixel: (x, y, val) = (%d, %d, %f)", _x, _y, pixval);
-						inextent = 1;
-					}
-
-					/* use pixval? */
-					if (!exclude_nodata_value || (exclude_nodata_value && !isnodata)) {
-						/* add pixel to result set */
-						RASTER_DEBUGF(4, "Adding pixel to set of nearest pixels: (x, y, val) = (%d, %d, %f)", _x, _y, pixval);
-						count++;
-
-						if (*npixels == NULL)
-							*npixels = (rt_pixel) rtalloc(sizeof(struct rt_pixel_t) * count);
-						else
-							*npixels = (rt_pixel) rtrealloc(*npixels, sizeof(struct rt_pixel_t) * count);
-						if (*npixels == NULL) {
-							rterror("rt_band_get_nearest_pixel: Could not allocate memory for nearest pixel(s)");
-							return -1;
-						}
-
-						npixel = &((*npixels)[count - 1]);
-						npixel->x = _x;
-						npixel->y = _y;
-						npixel->value = pixval;
-
-						/* special case for when outside band extent */
-						if (!inextent && !band->hasnodata)
-							npixel->nodata = 1;
-						else
-							npixel->nodata = 0;
-					}
-
-					(*_min)++;
-				}
-			}
-		}
-
-		/* distance threshholds met */
-		if (_d[0] >= distance[0] && _d[1] >= distance[1])
-			break;
-		else if (d0 && count)
-			break;
-	}
-	while (1);
-
-	RASTER_DEBUGF(3, "Nearest pixels in return: %d", count);
-
-	return count;
-}
-
-/**
- * Search band for pixel(s) with search values
- *
- * @param band : the band to query for minimum and maximum pixel values
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * @param searchset : array of values to count
- * @param searchcount : the number of search values
- * @param pixels : pixels with the search value
- *
- * @return -1 on error, otherwise number of pixels
- */
-int
-rt_band_get_pixel_of_value(
-	rt_band band, int exclude_nodata_value,
-	double *searchset, int searchcount,
-	rt_pixel *pixels
-) {
-	int x;
-	int y;
-	int i;
-	double pixval;
-	int err;
-	int count = 0;
-	int isnodata = 0;
-	int isequal = 0;
-
-	rt_pixel pixel = NULL;
-
-	assert(NULL != band);
-	assert(NULL != pixels);
-	assert(NULL != searchset && searchcount > 0);
-
-	if (!band->hasnodata)
-		exclude_nodata_value = FALSE;
-	/* band is NODATA and exclude_nodata_value = TRUE, nothing to search */
-	else if (exclude_nodata_value && band->isnodata) {
-		RASTER_DEBUG(4, "Pixels cannot be searched as band is NODATA and excluding NODATA values");
-		return 0;
-	}
-
-	for (x = 0; x < band->width; x++) {
-		for (y = 0; y < band->height; y++) {
-			err = rt_band_get_pixel(band, x, y, &pixval, &isnodata);
-			if (err != ES_NONE) {
-				rterror("rt_band_get_pixel_of_value: Cannot get band pixel");
-				return -1;
-			}
-			else if (exclude_nodata_value && isnodata)
-				continue;
-
-			for (i = 0; i < searchcount; i++) {
-				if (rt_pixtype_compare_clamped_values(band->pixtype, searchset[i], pixval, &isequal) != ES_NONE) {
-					continue;
-				}
-
-				if (FLT_NEQ(pixval, searchset[i]) || !isequal)
-					continue;
-
-				/* match found */
-				count++;
-				if (*pixels == NULL)
-					*pixels = (rt_pixel) rtalloc(sizeof(struct rt_pixel_t) * count);
-				else
-					*pixels = (rt_pixel) rtrealloc(*pixels, sizeof(struct rt_pixel_t) * count);
-				if (*pixels == NULL) {
-					rterror("rt_band_get_pixel_of_value: Could not allocate memory for pixel(s)");
-					return -1;
-				}
-
-				pixel = &((*pixels)[count - 1]);
-				pixel->x = x;
-				pixel->y = y;
-				pixel->nodata = 0;
-				pixel->value = pixval;
-			}
-		}
-	}
-
-	return count;
-}
-
-/**
- * Get NODATA value
- *
- * @param band : the band whose NODATA value will be returned
- * @param nodata : the band's NODATA value
- *
- * @return ES_NONE or ES_ERROR
- */
-rt_errorstate
-rt_band_get_nodata(rt_band band, double *nodata) { 
-	assert(NULL != band);
-	assert(NULL != nodata);
-
-	*nodata = band->nodataval;
-
-	if (!band->hasnodata) {
-		rterror("rt_band_get_nodata: Band has no NODATA value");
-		return ES_ERROR;
-	}
-
-	return ES_NONE;
-}
-
-double
-rt_band_get_min_value(rt_band band) {
-	assert(NULL != band);
-
-	return rt_pixtype_get_min_value(band->pixtype);
-}
-
-int
-rt_band_check_is_nodata(rt_band band) {
-	int i, j, err;
-	double pxValue;
-	int isnodata = 0;
-
-	assert(NULL != band);
-
-	/* Check if band has nodata value */
-	if (!band->hasnodata) {
-		RASTER_DEBUG(3, "Band has no NODATA value");
-		band->isnodata = FALSE;
-		return FALSE;
-	}
-
-	pxValue = band->nodataval;
-
-	/* Check all pixels */
-	for (i = 0; i < band->width; i++) {
-		for (j = 0; j < band->height; j++) {
-			err = rt_band_get_pixel(band, i, j, &pxValue, &isnodata);
-			if (err != ES_NONE) {
-				rterror("rt_band_check_is_nodata: Cannot get band pixel");
-				return FALSE;
-			}
-			else if (!isnodata) {
-				band->isnodata = FALSE;
-				return FALSE;
-			}
-		}
-	}
-
-	band->isnodata = TRUE;
-	return TRUE;
-}
-
-/**
- * Compare clamped value to band's clamped NODATA value.
- *
- * @param band : the band whose NODATA value will be used for comparison
- * @param val : the value to compare to the NODATA value
- *
- * @return 2 if unclamped value is unclamped NODATA
- *         1 if clamped value is clamped NODATA
- *         0 if clamped value is NOT clamped NODATA
- */
-int
-rt_band_clamped_value_is_nodata(rt_band band, double val) {
-	int isequal = 0;
-
-	assert(NULL != band);
-
-	/* no NODATA, so never equal */
-	if (!band->hasnodata)
-		return 0;
-
-	/* value is exactly NODATA */
-	if (FLT_EQ(val, band->nodataval))
-		return 2;
-
-	/* ignore error from rt_pixtype_compare_clamped_values */
-	rt_pixtype_compare_clamped_values(
-		band->pixtype,
-		val, band->nodataval,
-		&isequal
-	);
-
-	return isequal ? 1 : 0;
-}
-
-/**
- * Correct value when clamped value is equal to clamped NODATA value.
- * Correction does NOT occur if unclamped value is exactly unclamped
- * NODATA value.
- * 
- * @param band : the band whose NODATA value will be used for comparison
- * @param val : the value to compare to the NODATA value and correct
- * @param *newval : pointer to corrected value
- * @param *corrected : (optional) non-zero if val was corrected
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate
-rt_band_corrected_clamped_value(
-	rt_band band,
-	double val,
-	double *newval, int *corrected
-) {
-	double minval = 0.;
-
-	assert(NULL != band);
-	assert(NULL != newval);
-
-	if (corrected != NULL)
-		*corrected = 0;
-
-	/* no need to correct if clamped values IS NOT clamped NODATA */
-	if (rt_band_clamped_value_is_nodata(band, val) != 1) {
-		*newval = val;
-		return ES_NONE;
-	}
-
-	minval = rt_pixtype_get_min_value(band->pixtype);
-	*newval = val;
-
-	switch (band->pixtype) {
-		case PT_1BB:
-			*newval = !band->nodataval;
-			break;
-		case PT_2BUI:
-			if (rt_util_clamp_to_2BUI(val) == rt_util_clamp_to_2BUI(minval))
-				(*newval)++;
-			else
-				(*newval)--;
-			break;
-		case PT_4BUI:
-			if (rt_util_clamp_to_4BUI(val) == rt_util_clamp_to_4BUI(minval))
-				(*newval)++;
-			else
-				(*newval)--;
-			break;
-		case PT_8BSI:
-			if (rt_util_clamp_to_8BSI(val) == rt_util_clamp_to_8BSI(minval))
-				(*newval)++;
-			else
-				(*newval)--;
-			break;
-		case PT_8BUI:
-			if (rt_util_clamp_to_8BUI(val) == rt_util_clamp_to_8BUI(minval))
-				(*newval)++;
-			else
-				(*newval)--;
-			break;
-		case PT_16BSI:
-			if (rt_util_clamp_to_16BSI(val) == rt_util_clamp_to_16BSI(minval))
-				(*newval)++;
-			else
-				(*newval)--;
-			break;
-		case PT_16BUI:
-			if (rt_util_clamp_to_16BUI(val) == rt_util_clamp_to_16BUI(minval))
-				(*newval)++;
-			else
-				(*newval)--;
-			break;
-		case PT_32BSI:
-			if (rt_util_clamp_to_32BSI(val) == rt_util_clamp_to_32BSI(minval))
-				(*newval)++;
-			else
-				(*newval)--;
-			break;
-		case PT_32BUI:
-			if (rt_util_clamp_to_32BUI(val) == rt_util_clamp_to_32BUI(minval))
-				(*newval)++;
-			else
-				(*newval)--;
-			break;
-		case PT_32BF:
-			if (FLT_EQ(rt_util_clamp_to_32F(val), rt_util_clamp_to_32F(minval)))
-				*newval += FLT_EPSILON;
-			else
-				*newval -= FLT_EPSILON;
-			break;
-		case PT_64BF:
-			break;
-		default:
-			rterror("rt_band_corrected_clamped_value: Unknown pixeltype %d", band->pixtype);
-			return ES_ERROR;
-	}
-
-	if (corrected != NULL)
-		*corrected = 1;
-
-	return ES_NONE;
-}
-
-/**
- * Compute summary statistics for a band
- *
- * @param band : the band to query for summary stats
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * @param sample : percentage of pixels to sample
- * @param inc_vals : flag to include values in return struct
- * @param cK : number of pixels counted thus far in coverage
- * @param cM : M component of 1-pass stddev for coverage
- * @param cQ : Q component of 1-pass stddev for coverage
- *
- * @return the summary statistics for a band or NULL
- */
-rt_bandstats
-rt_band_get_summary_stats(
-	rt_band band,
-	int exclude_nodata_value, double sample, int inc_vals,
-	uint64_t *cK, double *cM, double *cQ
-) {
-	uint32_t x = 0;
-	uint32_t y = 0;
-	uint32_t z = 0;
-	uint32_t offset = 0;
-	uint32_t diff = 0;
-	int rtn;
-	int hasnodata = FALSE;
-	double nodata = 0;
-	double *values = NULL;
-	double value;
-	int isnodata = 0;
-	rt_bandstats stats = NULL;
-
-	uint32_t do_sample = 0;
-	uint32_t sample_size = 0;
-	uint32_t sample_per = 0;
-	uint32_t sample_int = 0;
-	uint32_t i = 0;
-	uint32_t j = 0;
-	double sum = 0;
-	uint32_t k = 0;
-	double M = 0;
-	double Q = 0;
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	clock_t start, stop;
-	double elapsed = 0;
-#endif
-
-	RASTER_DEBUG(3, "starting");
-#if POSTGIS_DEBUG_LEVEL > 0
-	start = clock();
-#endif
-
-	assert(NULL != band);
-
-	/* band is empty (width < 1 || height < 1) */
-	if (band->width < 1 || band->height < 1) {
-		stats = (rt_bandstats) rtalloc(sizeof(struct rt_bandstats_t));
-		if (NULL == stats) {
-			rterror("rt_band_get_summary_stats: Could not allocate memory for stats");
-			return NULL;
-		}
-
-		rtwarn("Band is empty as width and/or height is 0");
-
-		stats->sample = 1;
-		stats->sorted = 0;
-		stats->values = NULL;
-		stats->count = 0;
-		stats->min = stats->max = 0;
-		stats->sum = 0;
-		stats->mean = 0;
-		stats->stddev = -1;
-
-		return stats;
-	}
-
-	hasnodata = rt_band_get_hasnodata_flag(band);
-	if (hasnodata != FALSE)
-		rt_band_get_nodata(band, &nodata);
-	else
-		exclude_nodata_value = 0;
-
-	RASTER_DEBUGF(3, "nodata = %f", nodata);
-	RASTER_DEBUGF(3, "hasnodata = %d", hasnodata);
-	RASTER_DEBUGF(3, "exclude_nodata_value = %d", exclude_nodata_value);
-
-	/* entire band is nodata */
-	if (rt_band_get_isnodata_flag(band) != FALSE) {
-		stats = (rt_bandstats) rtalloc(sizeof(struct rt_bandstats_t));
-		if (NULL == stats) {
-			rterror("rt_band_get_summary_stats: Could not allocate memory for stats");
-			return NULL;
-		}
-
-		stats->sample = 1;
-		stats->sorted = 0;
-		stats->values = NULL;
-
-		if (exclude_nodata_value) {
-			rtwarn("All pixels of band have the NODATA value");
-
-			stats->count = 0;
-			stats->min = stats->max = 0;
-			stats->sum = 0;
-			stats->mean = 0;
-			stats->stddev = -1;
-		}
-		else {
-			stats->count = band->width * band->height;
-			stats->min = stats->max = nodata;
-			stats->sum = stats->count * nodata;
-			stats->mean = nodata;
-			stats->stddev = 0;
-		}
-
-		return stats;
-	}
-
-	/* clamp percentage */
-	if (
-		(sample < 0 || FLT_EQ(sample, 0.0)) ||
-		(sample > 1 || FLT_EQ(sample, 1.0))
-	) {
-		do_sample = 0;
-		sample = 1;
-	}
-	else
-		do_sample = 1;
-	RASTER_DEBUGF(3, "do_sample = %d", do_sample);
-
-	/* sample all pixels */
-	if (!do_sample) {
-		sample_size = band->width * band->height;
-		sample_per = band->height;
-	}
-	/*
-	 randomly sample a percentage of available pixels
-	 sampling method is known as
-	 	"systematic random sample without replacement"
-	*/
-	else {
-		sample_size = round((band->width * band->height) * sample);
-		sample_per = round(sample_size / band->width);
-		if (sample_per < 1)
-			sample_per = 1;
-		sample_int = round(band->height / sample_per);
-		srand(time(NULL));
-	}
-
-	RASTER_DEBUGF(3, "sampling %d of %d available pixels w/ %d per set"
-		, sample_size, (band->width * band->height), sample_per);
-
-	if (inc_vals) {
-		values = rtalloc(sizeof(double) * sample_size);
-		if (NULL == values) {
-			rtwarn("Could not allocate memory for values");
-			inc_vals = 0;
-		}
-	}
-
-	/* initialize stats */
-	stats = (rt_bandstats) rtalloc(sizeof(struct rt_bandstats_t));
-	if (NULL == stats) {
-		rterror("rt_band_get_summary_stats: Could not allocate memory for stats");
-		return NULL;
-	}
-	stats->sample = sample;
-	stats->count = 0;
-	stats->sum = 0;
-	stats->mean = 0;
-	stats->stddev = -1;
-	stats->min = stats->max = 0;
-	stats->values = NULL;
-	stats->sorted = 0;
-
-	for (x = 0, j = 0, k = 0; x < band->width; x++) {
-		y = -1;
-		diff = 0;
-
-		for (i = 0, z = 0; i < sample_per; i++) {
-			if (!do_sample)
-				y = i;
-			else {
-				offset = (rand() % sample_int) + 1;
-				y += diff + offset;
-				diff = sample_int - offset;
-			}
-			RASTER_DEBUGF(5, "(x, y, z) = (%d, %d, %d)", x, y, z);
-			if (y >= band->height || z > sample_per) break;
-
-			rtn = rt_band_get_pixel(band, x, y, &value, &isnodata);
-
-			j++;
-			if (rtn == ES_NONE && (!exclude_nodata_value || (exclude_nodata_value && !isnodata))) {
-
-				/* inc_vals set, collect pixel values */
-				if (inc_vals) values[k] = value;
-
-				/* average */
-				k++;
-				sum += value;
-
-				/*
-					one-pass standard deviation
-					http://www.eecs.berkeley.edu/~mhoemmen/cs194/Tutorials/variance.pdf
-				*/
-				if (k == 1) {
-					Q = 0;
-					M = value;
-				}
-				else {
-					Q += (((k  - 1) * pow(value - M, 2)) / k);
-					M += ((value - M ) / k);
-				}
-
-				/* coverage one-pass standard deviation */
-				if (NULL != cK) {
-					(*cK)++;
-					if (*cK == 1) {
-						*cQ = 0;
-						*cM = value;
-					}
-					else {
-						*cQ += (((*cK  - 1) * pow(value - *cM, 2)) / *cK);
-						*cM += ((value - *cM ) / *cK);
-					}
-				}
-
-				/* min/max */
-				if (stats->count < 1) {
-					stats->count = 1;
-					stats->min = stats->max = value;
-				}
-				else {
-					if (value < stats->min)
-						stats->min = value;
-					if (value > stats->max)
-						stats->max = value;
-				}
-
-			}
-
-			z++;
-		}
-	}
-
-	RASTER_DEBUG(3, "sampling complete");
-
-	stats->count = k;
-	if (k > 0) {
-		if (inc_vals) {
-			/* free unused memory */
-			if (sample_size != k) {
-				values = rtrealloc(values, k * sizeof(double));
-			}
-
-			stats->values = values;
-		}
-
-		stats->sum = sum;
-		stats->mean = sum / k;
-
-		/* standard deviation */
-		if (!do_sample)
-			stats->stddev = sqrt(Q / k);
-		/* sample deviation */
-		else {
-			if (k < 2)
-				stats->stddev = -1;
-			else
-				stats->stddev = sqrt(Q / (k - 1));
-		}
-	}
-	/* inc_vals thus values allocated but not used */
-	else if (inc_vals)
-		rtdealloc(values);
-
-	/* if do_sample is one */
-	if (do_sample && k < 1)
-		rtwarn("All sampled pixels of band have the NODATA value");
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	stop = clock();
-	elapsed = ((double) (stop - start)) / CLOCKS_PER_SEC;
-	RASTER_DEBUGF(3, "(time, count, mean, stddev, min, max) = (%0.4f, %d, %f, %f, %f, %f)",
-		elapsed, stats->count, stats->mean, stats->stddev, stats->min, stats->max);
-#endif
-
-	RASTER_DEBUG(3, "done");
-	return stats;
-}
-
-/**
- * Count the distribution of data
- *
- * @param stats : a populated stats struct for processing
- * @param bin_count : the number of bins to group the data by
- * @param bin_width : the width of each bin as an array
- * @param bin_width_count : number of values in bin_width
- * @param right : evaluate bins by (a,b] rather than default [a,b)
- * @param min : user-defined minimum value of the histogram
- *   a value less than the minimum value is not counted in any bins
- *   if min = max, min and max are not used
- * @param max : user-defined maximum value of the histogram
- *   a value greater than the max value is not counted in any bins
- *   if min = max, min and max are not used
- * @param rtn_count : set to the number of bins being returned
- *
- * @return the histogram of the data or NULL
- */
-rt_histogram
-rt_band_get_histogram(
-	rt_bandstats stats,
-	int bin_count, double *bin_width, int bin_width_count,
-	int right, double min, double max,
-	uint32_t *rtn_count
-) {
-	rt_histogram bins = NULL;
-	int init_width = 0;
-	int i;
-	int j;
-	double tmp;
-	double value;
-	int sum = 0;
-	double qmin;
-	double qmax;
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	clock_t start, stop;
-	double elapsed = 0;
-#endif
-
-	RASTER_DEBUG(3, "starting");
-#if POSTGIS_DEBUG_LEVEL > 0
-	start = clock();
-#endif
-
-	assert(NULL != stats);
-	assert(NULL != rtn_count);
-
-	if (stats->count < 1 || NULL == stats->values) {
-		rterror("rt_util_get_histogram: rt_bandstats object has no value");
-		return NULL;
-	}
-
-	/* bin width must be positive numbers and not zero */
-	if (NULL != bin_width && bin_width_count > 0) {
-		for (i = 0; i < bin_width_count; i++) {
-			if (bin_width[i] < 0 || FLT_EQ(bin_width[i], 0.0)) {
-				rterror("rt_util_get_histogram: bin_width element is less than or equal to zero");
-				return NULL;
-			}
-		}
-	}
-
-	/* ignore min and max parameters */
-	if (FLT_EQ(max, min)) {
-		qmin = stats->min;
-		qmax = stats->max;
-	}
-	else {
-		qmin = min;
-		qmax = max;
-		if (qmin > qmax) {
-			qmin = max;
-			qmax = min;
-		}
-	}
-
-	/* # of bins not provided */
-	if (bin_count <= 0) {
-		/*
-			determine # of bins
-			http://en.wikipedia.org/wiki/Histogram
-
-			all computed bins are assumed to have equal width
-		*/
-		/* Square-root choice for stats->count < 30 */
-		if (stats->count < 30)
-			bin_count = ceil(sqrt(stats->count));
-		/* Sturges' formula for stats->count >= 30 */
-		else
-			bin_count = ceil(log2((double) stats->count) + 1.);
-
-		/* bin_width_count provided and bin_width has value */
-		if (bin_width_count > 0 && NULL != bin_width) {
-			/* user has defined something specific */
-			if (bin_width_count > bin_count)
-				bin_count = bin_width_count;
-			else if (bin_width_count > 1) {
-				tmp = 0;
-				for (i = 0; i < bin_width_count; i++) tmp += bin_width[i];
-				bin_count = ceil((qmax - qmin) / tmp) * bin_width_count;
-			}
-			else
-				bin_count = ceil((qmax - qmin) / bin_width[0]);
-		}
-		/* set bin width count to zero so that one can be calculated */
-		else {
-			bin_width_count = 0;
-		}
-	}
-
-	/* min and max the same */
-	if (FLT_EQ(qmax, qmin)) bin_count = 1;
-
-	RASTER_DEBUGF(3, "bin_count = %d", bin_count);
-
-	/* bin count = 1, all values are in one bin */
-	if (bin_count < 2) {
-		bins = rtalloc(sizeof(struct rt_histogram_t));
-		if (NULL == bins) {
-			rterror("rt_util_get_histogram: Could not allocate memory for histogram");
-			return NULL;
-		}
-
-		bins->count = stats->count;
-		bins->percent = -1;
-		bins->min = qmin;
-		bins->max = qmax;
-		bins->inc_min = bins->inc_max = 1;
-
-		*rtn_count = bin_count;
-		return bins;
-	}
-
-	/* establish bin width */
-	if (bin_width_count == 0) {
-		bin_width_count = 1;
-
-		/* bin_width unallocated */
-		if (NULL == bin_width) {
-			bin_width = rtalloc(sizeof(double));
-			if (NULL == bin_width) {
-				rterror("rt_util_get_histogram: Could not allocate memory for bin widths");
-				return NULL;
-			}
-			init_width = 1;
-		}
-
-		bin_width[0] = (qmax - qmin) / bin_count;
-	}
-
-	/* initialize bins */
-	bins = rtalloc(bin_count * sizeof(struct rt_histogram_t));
-	if (NULL == bins) {
-		rterror("rt_util_get_histogram: Could not allocate memory for histogram");
-		if (init_width) rtdealloc(bin_width);
-		return NULL;
-	}
-	if (!right)
-		tmp = qmin;
-	else
-		tmp = qmax;
-	for (i = 0; i < bin_count;) {
-		for (j = 0; j < bin_width_count; j++) {
-			bins[i].count = 0;
-			bins->percent = -1;
-
-			if (!right) {
-				bins[i].min = tmp;
-				tmp += bin_width[j];
-				bins[i].max = tmp;
-
-				bins[i].inc_min = 1;
-				bins[i].inc_max = 0;
-			}
-			else {
-				bins[i].max = tmp;
-				tmp -= bin_width[j];
-				bins[i].min = tmp;
-
-				bins[i].inc_min = 0;
-				bins[i].inc_max = 1;
-			}
-
-			i++;
-		}
-	}
-	if (!right) {
-		bins[bin_count - 1].inc_max = 1;
-
-		/* align last bin to the max value */
-		if (bins[bin_count - 1].max < qmax)
-			bins[bin_count - 1].max = qmax;
-	}
-	else {
-		bins[bin_count - 1].inc_min = 1;
-
-		/* align first bin to the min value */
-		if (bins[bin_count - 1].min > qmin)
-			bins[bin_count - 1].min = qmin;
-	}
-
-	/* process the values */
-	for (i = 0; i < stats->count; i++) {
-		value = stats->values[i];
-
-		/* default, [a, b) */
-		if (!right) {
-			for (j = 0; j < bin_count; j++) {
-				if (
-					(!bins[j].inc_max && value < bins[j].max) || (
-						bins[j].inc_max && (
-							(value < bins[j].max) ||
-							FLT_EQ(value, bins[j].max)
-						)
-					)
-				) {
-					bins[j].count++;
-					sum++;
-					break;
-				}
-			}
-		}
-		/* (a, b] */
-		else {
-			for (j = 0; j < bin_count; j++) {
-				if (
-					(!bins[j].inc_min && value > bins[j].min) || (
-						bins[j].inc_min && (
-							(value > bins[j].min) ||
-							FLT_EQ(value, bins[j].min)
-						)
-					)
-				) {
-					bins[j].count++;
-					sum++;
-					break;
-				}
-			}
-		}
-	}
-
-	for (i = 0; i < bin_count; i++) {
-		bins[i].percent = ((double) bins[i].count) / sum;
-	}
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	stop = clock();
-	elapsed = ((double) (stop - start)) / CLOCKS_PER_SEC;
-	RASTER_DEBUGF(3, "elapsed time = %0.4f", elapsed);
-
-	for (j = 0; j < bin_count; j++) {
-		RASTER_DEBUGF(5, "(min, max, inc_min, inc_max, count, sum, percent) = (%f, %f, %d, %d, %d, %d, %f)",
-			bins[j].min, bins[j].max, bins[j].inc_min, bins[j].inc_max, bins[j].count, sum, bins[j].percent);
-	}
-#endif
-
-	if (init_width) rtdealloc(bin_width);
-	*rtn_count = bin_count;
-	RASTER_DEBUG(3, "done");
-	return bins;
-}
-
-/**
- * Compute the default set of or requested quantiles for a set of data
- * the quantile formula used is same as Excel and R default method
- *
- * @param stats : a populated stats struct for processing
- * @param quantiles : the quantiles to be computed
- * @param quantiles_count : the number of quantiles to be computed
- * @param rtn_count : set to the number of quantiles being returned
- *
- * @return the default set of or requested quantiles for a band or NULL
- */
-rt_quantile
-rt_band_get_quantiles(
-	rt_bandstats stats,
-	double *quantiles, int quantiles_count,
-	uint32_t *rtn_count
-) {
-	rt_quantile rtn;
-	int init_quantiles = 0;
-	int i = 0;
-	double h;
-	int hl;
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	clock_t start, stop;
-	double elapsed = 0;
-#endif
-
-	RASTER_DEBUG(3, "starting");
-#if POSTGIS_DEBUG_LEVEL > 0
-	start = clock();
-#endif
-
-	assert(NULL != stats);
-	assert(NULL != rtn_count);
-
-	if (stats->count < 1 || NULL == stats->values) {
-		rterror("rt_band_get_quantiles: rt_bandstats object has no value");
-		return NULL;
-	}
-
-	/* quantiles not provided */
-	if (NULL == quantiles) {
-		/* quantile count not specified, default to quartiles */
-		if (quantiles_count < 2)
-			quantiles_count = 5;
-
-		quantiles = rtalloc(sizeof(double) * quantiles_count);
-		init_quantiles = 1;
-		if (NULL == quantiles) {
-			rterror("rt_band_get_quantiles: Could not allocate memory for quantile input");
-			return NULL;
-		}
-
-		quantiles_count--;
-		for (i = 0; i <= quantiles_count; i++)
-			quantiles[i] = ((double) i) / quantiles_count;
-		quantiles_count++;
-	}
-
-	/* check quantiles */
-	for (i = 0; i < quantiles_count; i++) {
-		if (quantiles[i] < 0. || quantiles[i] > 1.) {
-			rterror("rt_band_get_quantiles: Quantile value not between 0 and 1");
-			if (init_quantiles) rtdealloc(quantiles);
-			return NULL;
-		}
-	}
-	quicksort(quantiles, quantiles + quantiles_count - 1);
-
-	/* initialize rt_quantile */
-	rtn = rtalloc(sizeof(struct rt_quantile_t) * quantiles_count);
-	if (NULL == rtn) {
-		rterror("rt_band_get_quantiles: Could not allocate memory for quantile output");
-		if (init_quantiles) rtdealloc(quantiles);
-		return NULL;
-	}
-
-	/* sort values */
-	if (!stats->sorted) {
-		quicksort(stats->values, stats->values + stats->count - 1);
-		stats->sorted = 1;
-	}
-
-	/*
-		make quantiles
-
-		formula is that used in R (method 7) and Excel from
-			http://en.wikipedia.org/wiki/Quantile
-	*/
-	for (i = 0; i < quantiles_count; i++) {
-		rtn[i].quantile = quantiles[i];
-
-		h = ((stats->count - 1.) * quantiles[i]) + 1.;
-		hl = floor(h);
-
-		/* h greater than hl, do full equation */
-		if (h > hl)
-			rtn[i].value = stats->values[hl - 1] + ((h - hl) * (stats->values[hl] - stats->values[hl - 1]));
-		/* shortcut as second part of equation is zero */
-		else
-			rtn[i].value = stats->values[hl - 1];
-	}
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	stop = clock();
-	elapsed = ((double) (stop - start)) / CLOCKS_PER_SEC;
-	RASTER_DEBUGF(3, "elapsed time = %0.4f", elapsed);
-#endif
-
-	*rtn_count = quantiles_count;
-	if (init_quantiles) rtdealloc(quantiles);
-	RASTER_DEBUG(3, "done");
-	return rtn;
-}
-
-static struct quantile_llist_element *quantile_llist_search(
-	struct quantile_llist_element *element,
-	double needle
-) {
-	if (NULL == element)
-		return NULL;
-	else if (FLT_NEQ(needle, element->value)) {
-		if (NULL != element->next)
-			return quantile_llist_search(element->next, needle);
-		else
-			return NULL;
-	}
-	else
-		return element;
-}
-
-static struct quantile_llist_element *quantile_llist_insert(
-	struct quantile_llist_element *element,
-	double value,
-	uint32_t *idx
-) {
-	struct quantile_llist_element *qle = NULL;
-
-	if (NULL == element) {
-		qle = rtalloc(sizeof(struct quantile_llist_element));
-		RASTER_DEBUGF(4, "qle @ %p is only element in list", qle);
-		if (NULL == qle) return NULL;
-
-		qle->value = value;
-		qle->count = 1;
-
-		qle->prev = NULL;
-		qle->next = NULL;
-
-		if (NULL != idx) *idx = 0;
-		return qle;
-	}
-	else if (value > element->value) {
-		if (NULL != idx) *idx += 1;
-		if (NULL != element->next)
-			return quantile_llist_insert(element->next, value, idx);
-		/* insert as last element in list */
-		else {
-			qle = rtalloc(sizeof(struct quantile_llist_element));
-			RASTER_DEBUGF(4, "insert qle @ %p as last element", qle);
-			if (NULL == qle) return NULL;
-
-			qle->value = value;
-			qle->count = 1;
-
-			qle->prev = element;
-			qle->next = NULL;
-			element->next = qle;
-
-			return qle;
-		}
-	}
-	/* insert before current element */
-	else {
-		qle = rtalloc(sizeof(struct quantile_llist_element));
-		RASTER_DEBUGF(4, "insert qle @ %p before current element", qle);
-		if (NULL == qle) return NULL;
-
-		qle->value = value;
-		qle->count = 1;
-
-		if (NULL != element->prev) element->prev->next = qle;
-		qle->next = element;
-		qle->prev = element->prev;
-		element->prev = qle;
-
-		return qle;
-	}
-}
-
-static int quantile_llist_delete(struct quantile_llist_element *element) {
-	if (NULL == element) return 0;
-
-	/* beginning of list */
-	if (NULL == element->prev && NULL != element->next) {
-		element->next->prev = NULL;
-	}
-	/* end of list */
-	else if (NULL != element->prev && NULL == element->next) {
-		element->prev->next = NULL;
-	}
-	/* within list */
-	else if (NULL != element->prev && NULL != element->next) {
-		element->prev->next = element->next;
-		element->next->prev = element->prev;
-	}
-
-	RASTER_DEBUGF(4, "qle @ %p destroyed", element);
-	rtdealloc(element);
-
-	return 1;
-}
-
-int quantile_llist_destroy(struct quantile_llist **list, uint32_t list_count) {
-	struct quantile_llist_element *element = NULL;
-	uint32_t i;
-
-	if (NULL == *list) return 0;
-
-	for (i = 0; i < list_count; i++) {
-		element = (*list)[i].head;
-		while (NULL != element->next) {
-			quantile_llist_delete(element->next);
-		}
-		quantile_llist_delete(element);
-
-		rtdealloc((*list)[i].index);
-	}
-
-	rtdealloc(*list);
-	return 1;
-}
-
-static void quantile_llist_index_update(struct quantile_llist *qll, struct quantile_llist_element *qle, uint32_t idx) {
-	uint32_t anchor = (uint32_t) floor(idx / 100);
-
-	if (qll->tail == qle) return;
-
-	if (
-		(anchor != 0) && (
-			NULL == qll->index[anchor].element ||
-			idx <= qll->index[anchor].index
-		)
-	) {
-		qll->index[anchor].index = idx;
-		qll->index[anchor].element = qle;
-	}
-
-	if (anchor != 0 && NULL == qll->index[0].element) {
-		qll->index[0].index = 0;
-		qll->index[0].element = qll->head;
-	}
-}
-
-static void quantile_llist_index_delete(struct quantile_llist *qll, struct quantile_llist_element *qle) {
-	uint32_t i = 0;
-
-	for (i = 0; i < qll->index_max; i++) {
-		if (
-			NULL == qll->index[i].element ||
-			(qll->index[i].element) != qle
-		) {
-			continue;
-		}
-
-		RASTER_DEBUGF(5, "deleting index: %d => %f", i, qle->value);
-		qll->index[i].index = -1;
-		qll->index[i].element = NULL;
-	}
-}
-
-static struct quantile_llist_element *quantile_llist_index_search(
-	struct quantile_llist *qll,
-	double value,
-	uint32_t *index
-) {
-	uint32_t i = 0, j = 0;
-	RASTER_DEBUGF(5, "searching index for value %f", value);
-
-	for (i = 0; i < qll->index_max; i++) {
-		if (NULL == qll->index[i].element) {
-			if (i < 1) break;
-			continue;
-		}
-		if (value > (qll->index[i]).element->value) continue;
-
-		if (FLT_EQ(value, qll->index[i].element->value)) {
-			RASTER_DEBUGF(5, "using index value at %d = %f", i, qll->index[i].element->value);
-			*index = i * 100;
-			return qll->index[i].element;
-		}
-		else if (i > 0) {
-			for (j = 1; j < i; j++) {
-				if (NULL != qll->index[i - j].element) {
-					RASTER_DEBUGF(5, "using index value at %d = %f", i - j, qll->index[i - j].element->value);
-					*index = (i - j) * 100;
-					return qll->index[i - j].element;
-				}
-			}
-		}
-	}
-
-	*index = 0;
-	return qll->head;
-}
-
-static void quantile_llist_index_reset(struct quantile_llist *qll) {
-	uint32_t i = 0;
-
-	RASTER_DEBUG(5, "resetting index");
-	for (i = 0; i < qll->index_max; i++) {
-		qll->index[i].index = -1;
-		qll->index[i].element = NULL;
-	}
-}
-
-/**
- * Compute the default set of or requested quantiles for a coverage
- *
- * This function is based upon the algorithm described in:
- *
- * A One-Pass Space-Efficient Algorithm for Finding Quantiles (1995)
- *   by Rakesh Agrawal, Arun Swami
- *   in Proc. 7th Intl. Conf. Management of Data (COMAD-95)
- *
- * http://www.almaden.ibm.com/cs/projects/iis/hdb/Publications/papers/comad95.pdf
- *
- * In the future, it may be worth exploring algorithms that don't
- *   require the size of the coverage
- *
- * @param band : the band to include in the quantile search
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * @param sample : percentage of pixels to sample
- * @param cov_count : number of values in coverage
- * @param qlls : set of quantile_llist structures
- * @param qlls_count : the number of quantile_llist structures
- * @param quantiles : the quantiles to be computed
- *   if bot qlls and quantiles provided, qlls is used
- * @param quantiles_count : the number of quantiles to be computed
- * @param rtn_count : the number of quantiles being returned
- *
- * @return the default set of or requested quantiles for a band or NULL
- */
-rt_quantile
-rt_band_get_quantiles_stream(
-	rt_band band,
-	int exclude_nodata_value, double sample,
-	uint64_t cov_count,
-	struct quantile_llist **qlls, uint32_t *qlls_count,
-	double *quantiles, int quantiles_count,
-	uint32_t *rtn_count
-) {
-	rt_quantile rtn = NULL;
-	int init_quantiles = 0;
-
-	struct quantile_llist *qll = NULL;
-	struct quantile_llist_element *qle = NULL;
-	struct quantile_llist_element *qls = NULL;
-	const uint32_t MAX_VALUES = 750;
-
-	uint8_t *data = NULL;
-	double value;
-	int isnodata = 0;
-
-	uint32_t a = 0;
-	uint32_t i = 0;
-	uint32_t j = 0;
-	uint32_t k = 0;
-	uint32_t x = 0;
-	uint32_t y = 0;
-	uint32_t z = 0;
-	uint32_t idx = 0;
-	uint32_t offset = 0;
-	uint32_t diff = 0;
-	uint8_t exists = 0;
-
-	uint32_t do_sample = 0;
-	uint32_t sample_size = 0;
-	uint32_t sample_per = 0;
-	uint32_t sample_int = 0;
-	int status;
-
-	RASTER_DEBUG(3, "starting");
-
-	assert(NULL != band);
-	assert(cov_count > 1);
-	assert(NULL != rtn_count);
-	RASTER_DEBUGF(3, "cov_count = %d", cov_count);
-
-	data = rt_band_get_data(band);
-	if (data == NULL) {
-		rterror("rt_band_get_summary_stats: Cannot get band data");
-		return NULL;
-	}
-
-	if (!rt_band_get_hasnodata_flag(band))
-		exclude_nodata_value = 0;
-	RASTER_DEBUGF(3, "exclude_nodata_value = %d", exclude_nodata_value);
-
-	/* quantile_llist not provided */
-	if (NULL == *qlls) {
-		/* quantiles not provided */
-		if (NULL == quantiles) {
-			/* quantile count not specified, default to quartiles */
-			if (quantiles_count < 2)
-				quantiles_count = 5;
-
-			quantiles = rtalloc(sizeof(double) * quantiles_count);
-			init_quantiles = 1;
-			if (NULL == quantiles) {
-				rterror("rt_band_get_quantiles_stream: Could not allocate memory for quantile input");
-				return NULL;
-			}
-
-			quantiles_count--;
-			for (i = 0; i <= quantiles_count; i++)
-				quantiles[i] = ((double) i) / quantiles_count;
-			quantiles_count++;
-		}
-
-		/* check quantiles */
-		for (i = 0; i < quantiles_count; i++) {
-			if (quantiles[i] < 0. || quantiles[i] > 1.) {
-				rterror("rt_band_get_quantiles_stream: Quantile value not between 0 and 1");
-				if (init_quantiles) rtdealloc(quantiles);
-				return NULL;
-			}
-		}
-		quicksort(quantiles, quantiles + quantiles_count - 1);
-
-		/* initialize linked-list set */
-		*qlls_count = quantiles_count * 2;
-		RASTER_DEBUGF(4, "qlls_count = %d", *qlls_count);
-		*qlls = rtalloc(sizeof(struct quantile_llist) * *qlls_count);
-		if (NULL == *qlls) {
-			rterror("rt_band_get_quantiles_stream: Could not allocate memory for quantile output");
-			if (init_quantiles) rtdealloc(quantiles);
-			return NULL;
-		}
-
-		j = (uint32_t) floor(MAX_VALUES / 100.) + 1;
-		for (i = 0; i < *qlls_count; i++) {
-			qll = &((*qlls)[i]);
-			qll->quantile = quantiles[(i * quantiles_count) / *qlls_count];
-			qll->count = 0;
-			qll->sum1 = 0;
-			qll->sum2 = 0;
-			qll->head = NULL;
-			qll->tail = NULL;
-
-			/* initialize index */
-			qll->index = rtalloc(sizeof(struct quantile_llist_index) * j);
-			if (NULL == qll->index) {
-				rterror("rt_band_get_quantiles_stream: Could not allocate memory for quantile output");
-				if (init_quantiles) rtdealloc(quantiles);
-				return NULL;
-			}
-			qll->index_max = j;
-			quantile_llist_index_reset(qll);
-
-			/* AL-GEQ */
-			if (!(i % 2)) {
-				qll->algeq = 1;
-				qll->tau = (uint64_t) ROUND(cov_count - (cov_count * qll->quantile), 0);
-				if (qll->tau < 1) qll->tau = 1;
-			}
-			/* AL-GT */
-			else {
-				qll->algeq = 0;
-				qll->tau = cov_count - (*qlls)[i - 1].tau + 1;
-			}
-
-			RASTER_DEBUGF(4, "qll init: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
-				qll->algeq, qll->quantile, qll->count, qll->tau, qll->sum1, qll->sum2);
-			RASTER_DEBUGF(4, "qll init: (head, tail) = (%p, %p)", qll->head, qll->tail);
-		}
-
-		if (init_quantiles) rtdealloc(quantiles);
-	}
-
-	/* clamp percentage */
-	if (
-		(sample < 0 || FLT_EQ(sample, 0.0)) ||
-		(sample > 1 || FLT_EQ(sample, 1.0))
-	) {
-		do_sample = 0;
-		sample = 1;
-	}
-	else
-		do_sample = 1;
-	RASTER_DEBUGF(3, "do_sample = %d", do_sample);
-
-	/* sample all pixels */
-	if (!do_sample) {
-		sample_size = band->width * band->height;
-		sample_per = band->height;
-	}
-	/*
-	 randomly sample a percentage of available pixels
-	 sampling method is known as
-	 	"systematic random sample without replacement"
-	*/
-	else {
-		sample_size = round((band->width * band->height) * sample);
-		sample_per = round(sample_size / band->width);
-		sample_int = round(band->height / sample_per);
-		srand(time(NULL));
-	}
-	RASTER_DEBUGF(3, "sampling %d of %d available pixels w/ %d per set"
-		, sample_size, (band->width * band->height), sample_per);
-
-	for (x = 0, j = 0, k = 0; x < band->width; x++) {
-		y = -1;
-		diff = 0;
-
-		/* exclude_nodata_value = TRUE and band is NODATA */
-		if (exclude_nodata_value && rt_band_get_isnodata_flag(band)) {
-			RASTER_DEBUG(3, "Skipping quantile calcuation as band is NODATA");
-			break;
-		}
-
-		for (i = 0, z = 0; i < sample_per; i++) {
-			if (do_sample != 1)
-				y = i;
-			else {
-				offset = (rand() % sample_int) + 1;
-				y += diff + offset;
-				diff = sample_int - offset;
-			}
-			RASTER_DEBUGF(5, "(x, y, z) = (%d, %d, %d)", x, y, z);
-			if (y >= band->height || z > sample_per) break;
-
-			status = rt_band_get_pixel(band, x, y, &value, &isnodata);
-
-			j++;
-			if (status == ES_NONE && (!exclude_nodata_value || (exclude_nodata_value && !isnodata))) {
-
-				/* process each quantile */
-				for (a = 0; a < *qlls_count; a++) {
-					qll = &((*qlls)[a]);
-					qls = NULL;
-					RASTER_DEBUGF(4, "%d of %d (%f)", a + 1, *qlls_count, qll->quantile);
-					RASTER_DEBUGF(5, "qll before: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
-						qll->algeq, qll->quantile, qll->count, qll->tau, qll->sum1, qll->sum2);
-					RASTER_DEBUGF(5, "qll before: (head, tail) = (%p, %p)", qll->head, qll->tail);
-
-					/* OPTIMIZATION: shortcuts for quantiles of zero or one */
-					if (FLT_EQ(qll->quantile, 0.)) {
-						if (NULL != qll->head) {
-							if (value < qll->head->value)
-								qll->head->value = value;
-						}
-						else {
-							qle = quantile_llist_insert(qll->head, value, NULL);
-							qll->head = qle;
-							qll->tail = qle;
-							qll->count = 1;
-						}
-
-						RASTER_DEBUGF(4, "quantile shortcut for %f\n\n", qll->quantile);
-						continue;
-					}
-					else if (FLT_EQ(qll->quantile, 1.)) {
-						if (NULL != qll->head) {
-							if (value > qll->head->value)
-								qll->head->value = value;
-						}
-						else {
-							qle = quantile_llist_insert(qll->head, value, NULL);
-							qll->head = qle;
-							qll->tail = qle;
-							qll->count = 1;
-						}
-
-						RASTER_DEBUGF(4, "quantile shortcut for %f\n\n", qll->quantile);
-						continue;
-					}
-
-					/* value exists in list */
-					/* OPTIMIZATION: check to see if value exceeds last value */
-					if (NULL != qll->tail && value > qll->tail->value)
-						qle = NULL;
-					/* OPTIMIZATION: check to see if value equals last value */
-					else if (NULL != qll->tail && FLT_EQ(value, qll->tail->value))
-						qle = qll->tail;
-					/* OPTIMIZATION: use index if possible */
-					else {
-						qls = quantile_llist_index_search(qll, value, &idx);
-						qle = quantile_llist_search(qls, value);
-					}
-
-					/* value found */
-					if (NULL != qle) {
-						RASTER_DEBUGF(4, "%f found in list", value);
-						RASTER_DEBUGF(5, "qle before: (value, count) = (%f, %d)", qle->value, qle->count);
-
-						qle->count++;
-						qll->sum1++;
-
-						if (qll->algeq)
-							qll->sum2 = qll->sum1 - qll->head->count;
-						else
-							qll->sum2 = qll->sum1 - qll->tail->count;
-
-						RASTER_DEBUGF(4, "qle after: (value, count) = (%f, %d)", qle->value, qle->count);
-					}
-					/* can still add element */
-					else if (qll->count < MAX_VALUES) {
-						RASTER_DEBUGF(4, "Adding %f to list", value);
-
-						/* insert */
-						/* OPTIMIZATION: check to see if value exceeds last value */
-						if (NULL != qll->tail && (value > qll->tail->value || FLT_EQ(value, qll->tail->value))) {
-							idx = qll->count;
-							qle = quantile_llist_insert(qll->tail, value, &idx);
-						}
-						/* OPTIMIZATION: use index if possible */
-						else
-							qle = quantile_llist_insert(qls, value, &idx);
-						if (NULL == qle) return NULL;
-						RASTER_DEBUGF(5, "value added at index: %d => %f", idx, value);
-						qll->count++;
-						qll->sum1++;
-
-						/* first element */
-						if (NULL == qle->prev)
-							qll->head = qle;
-						/* last element */
-						if (NULL == qle->next)
-							qll->tail = qle;
-
-						if (qll->algeq)
-							qll->sum2 = qll->sum1 - qll->head->count;
-						else
-							qll->sum2 = qll->sum1 - qll->tail->count;
-
-						/* index is only needed if there are at least 100 values */
-						quantile_llist_index_update(qll, qle, idx);
-
-						RASTER_DEBUGF(5, "qle, prev, next, head, tail = %p, %p, %p, %p, %p", qle, qle->prev, qle->next, qll->head, qll->tail);
-					}
-					/* AL-GEQ */
-					else if (qll->algeq) {
-						RASTER_DEBUGF(4, "value, head->value = %f, %f", value, qll->head->value);
-
-						if (value < qll->head->value) {
-							/* ignore value if test isn't true */
-							if (qll->sum1 >= qll->tau) {
-								RASTER_DEBUGF(4, "skipping %f", value);
-							}
-							else {
-
-								/* delete last element */
-								RASTER_DEBUGF(4, "deleting %f from list", qll->tail->value);
-								qle = qll->tail->prev;
-								RASTER_DEBUGF(5, "to-be tail is %f with count %d", qle->value, qle->count);
-								qle->count += qll->tail->count;
-								quantile_llist_index_delete(qll, qll->tail);
-								quantile_llist_delete(qll->tail);
-								qll->tail = qle;
-								qll->count--;
-								RASTER_DEBUGF(5, "tail is %f with count %d", qll->tail->value, qll->tail->count);
-
-								/* insert value */
-								RASTER_DEBUGF(4, "adding %f to list", value);
-								/* OPTIMIZATION: check to see if value exceeds last value */
-								if (NULL != qll->tail && (value > qll->tail->value || FLT_EQ(value, qll->tail->value))) {
-									idx = qll->count;
-									qle = quantile_llist_insert(qll->tail, value, &idx);
-								}
-								/* OPTIMIZATION: use index if possible */
-								else {
-									qls = quantile_llist_index_search(qll, value, &idx);
-									qle = quantile_llist_insert(qls, value, &idx);
-								}
-								if (NULL == qle) return NULL;
-								RASTER_DEBUGF(5, "value added at index: %d => %f", idx, value);
-								qll->count++;
-								qll->sum1++;
-
-								/* first element */
-								if (NULL == qle->prev)
-									qll->head = qle;
-								/* last element */
-								if (NULL == qle->next)
-									qll->tail = qle;
-
-								qll->sum2 = qll->sum1 - qll->head->count;
-
-								quantile_llist_index_update(qll, qle, idx);
-
-								RASTER_DEBUGF(5, "qle, head, tail = %p, %p, %p", qle, qll->head, qll->tail);
-
-							}
-						}
-						else {
-							qle = qll->tail;
-							while (NULL != qle) {
-								if (qle->value < value) {
-									qle->count++;
-									qll->sum1++;
-									qll->sum2 = qll->sum1 - qll->head->count;
-									RASTER_DEBUGF(4, "incremented count of %f by 1 to %d", qle->value, qle->count);
-									break;
-								}
-
-								qle = qle->prev;
-							}
-						}
-					}
-					/* AL-GT */
-					else {
-						RASTER_DEBUGF(4, "value, tail->value = %f, %f", value, qll->tail->value);
-
-						if (value > qll->tail->value) {
-							/* ignore value if test isn't true */
-							if (qll->sum1 >= qll->tau) {
-								RASTER_DEBUGF(4, "skipping %f", value);
-							}
-							else {
-
-								/* delete last element */
-								RASTER_DEBUGF(4, "deleting %f from list", qll->head->value);
-								qle = qll->head->next;
-								RASTER_DEBUGF(5, "to-be tail is %f with count %d", qle->value, qle->count);
-								qle->count += qll->head->count;
-								quantile_llist_index_delete(qll, qll->head);
-								quantile_llist_delete(qll->head);
-								qll->head = qle;
-								qll->count--;
-								quantile_llist_index_update(qll, NULL, 0);
-								RASTER_DEBUGF(5, "tail is %f with count %d", qll->head->value, qll->head->count);
-
-								/* insert value */
-								RASTER_DEBUGF(4, "adding %f to list", value);
-								/* OPTIMIZATION: check to see if value exceeds last value */
-								if (NULL != qll->tail && (value > qll->tail->value || FLT_EQ(value, qll->tail->value))) {
-									idx = qll->count;
-									qle = quantile_llist_insert(qll->tail, value, &idx);
-								}
-								/* OPTIMIZATION: use index if possible */
-								else {
-									qls = quantile_llist_index_search(qll, value, &idx);
-									qle = quantile_llist_insert(qls, value, &idx);
-								}
-								if (NULL == qle) return NULL;
-								RASTER_DEBUGF(5, "value added at index: %d => %f", idx, value);
-								qll->count++;
-								qll->sum1++;
-
-								/* first element */
-								if (NULL == qle->prev)
-									qll->head = qle;
-								/* last element */
-								if (NULL == qle->next)
-									qll->tail = qle;
-
-								qll->sum2 = qll->sum1 - qll->tail->count;
-
-								quantile_llist_index_update(qll, qle, idx);
-
-								RASTER_DEBUGF(5, "qle, head, tail = %p, %p, %p", qle, qll->head, qll->tail);
-
-							}
-						}
-						else {
-							qle = qll->head;
-							while (NULL != qle) {
-								if (qle->value > value) {
-									qle->count++;
-									qll->sum1++;
-									qll->sum2 = qll->sum1 - qll->tail->count;
-									RASTER_DEBUGF(4, "incremented count of %f by 1 to %d", qle->value, qle->count);
-									break;
-								}
-
-								qle = qle->next;
-							}
-						}
-					}
-
-					RASTER_DEBUGF(5, "sum2, tau = %d, %d", qll->sum2, qll->tau);
-					if (qll->sum2 >= qll->tau) {
-						/* AL-GEQ */
-						if (qll->algeq) {
-							RASTER_DEBUGF(4, "deleting first element %f from list", qll->head->value);
-
-							if (NULL != qll->head->next) {
-								qle = qll->head->next;
-								qll->sum1 -= qll->head->count;
-								qll->sum2 = qll->sum1 - qle->count;
-								quantile_llist_index_delete(qll, qll->head);
-								quantile_llist_delete(qll->head);
-								qll->head = qle;
-								qll->count--;
-
-								quantile_llist_index_update(qll, NULL, 0);
-							}
-							else {
-								quantile_llist_delete(qll->head);
-								qll->head = NULL;
-								qll->tail = NULL;
-								qll->sum1 = 0;
-								qll->sum2 = 0;
-								qll->count = 0;
-
-								quantile_llist_index_reset(qll);
-							}
-						}
-						/* AL-GT */
-						else {
-							RASTER_DEBUGF(4, "deleting first element %f from list", qll->tail->value);
-
-							if (NULL != qll->tail->prev) {
-								qle = qll->tail->prev;
-								qll->sum1 -= qll->tail->count;
-								qll->sum2 = qll->sum1 - qle->count;
-								quantile_llist_index_delete(qll, qll->tail);
-								quantile_llist_delete(qll->tail);
-								qll->tail = qle;
-								qll->count--;
-							}
-							else {
-								quantile_llist_delete(qll->tail);
-								qll->head = NULL;
-								qll->tail = NULL;
-								qll->sum1 = 0;
-								qll->sum2 = 0;
-								qll->count = 0;
-
-								quantile_llist_index_reset(qll);
-							}
-						}
-					}
-
-					RASTER_DEBUGF(5, "qll after: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
-						qll->algeq, qll->quantile, qll->count, qll->tau, qll->sum1, qll->sum2);
-					RASTER_DEBUGF(5, "qll after: (head, tail) = (%p, %p)\n\n", qll->head, qll->tail);
-				}
-
-			}
-			else {
-				RASTER_DEBUGF(5, "skipping value at (x, y) = (%d, %d)", x, y);
-			}
-
-			z++;
-		}
-	}
-
-	/* process quantiles */
-	*rtn_count = *qlls_count / 2;
-	rtn = rtalloc(sizeof(struct rt_quantile_t) * *rtn_count);
-	if (NULL == rtn) return NULL;
-
-	RASTER_DEBUGF(3, "returning %d quantiles", *rtn_count);
-	for (i = 0, k = 0; i < *qlls_count; i++) {
-		qll = &((*qlls)[i]);
-
-		exists = 0;
-		for (x = 0; x < k; x++) {
-			if (FLT_EQ(qll->quantile, rtn[x].quantile)) {
-				exists = 1;
-				break;
-			}
-		}
-		if (exists) continue;
-
-		RASTER_DEBUGF(5, "qll: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
-			qll->algeq, qll->quantile, qll->count, qll->tau, qll->sum1, qll->sum2);
-		RASTER_DEBUGF(5, "qll: (head, tail) = (%p, %p)", qll->head, qll->tail);
-
-		rtn[k].quantile = qll->quantile;
-		rtn[k].has_value = 0;
-
-		/* check that qll->head and qll->tail have value */
-		if (qll->head == NULL || qll->tail == NULL)
-			continue;
-
-		/* AL-GEQ */
-		if (qll->algeq)
-			qle = qll->head;
-		/* AM-GT */
-		else
-			qle = qll->tail;
-
-		exists = 0;
-		for (j = i + 1; j < *qlls_count; j++) {
-			if (FLT_EQ((*qlls)[j].quantile, qll->quantile)) {
-
-				RASTER_DEBUGF(5, "qlls[%d]: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
-					j, (*qlls)[j].algeq, (*qlls)[j].quantile, (*qlls)[j].count, (*qlls)[j].tau, (*qlls)[j].sum1, (*qlls)[j].sum2);
-				RASTER_DEBUGF(5, "qlls[%d]: (head, tail) = (%p, %p)", j, (*qlls)[j].head, (*qlls)[j].tail);
-
-				exists = 1;
-				break;
-			}
-		}
-
-		/* weighted average for quantile */
-		if (exists) {
-			if ((*qlls)[j].algeq) {
-				rtn[k].value = ((qle->value * qle->count) + ((*qlls)[j].head->value * (*qlls)[j].head->count)) / (qle->count + (*qlls)[j].head->count);
-				RASTER_DEBUGF(5, "qlls[%d].head: (value, count) = (%f, %d)", j, (*qlls)[j].head->value, (*qlls)[j].head->count);
-			}
-			else {
-				rtn[k].value = ((qle->value * qle->count) + ((*qlls)[j].tail->value * (*qlls)[j].tail->count)) / (qle->count + (*qlls)[j].tail->count);
-				RASTER_DEBUGF(5, "qlls[%d].tail: (value, count) = (%f, %d)", j, (*qlls)[j].tail->value, (*qlls)[j].tail->count);
-			}
-		}
-		/* straight value for quantile */
-		else {
-			rtn[k].value = qle->value;
-		}
-		rtn[k].has_value = 1;
-		RASTER_DEBUGF(3, "(quantile, value) = (%f, %f)\n\n", rtn[k].quantile, rtn[k].value);
-
-		k++;
-	}
-
-	RASTER_DEBUG(3, "done");
-	return rtn;
-}
-
-/**
- * Count the number of times provided value(s) occur in
- * the band
- *
- * @param band : the band to query for minimum and maximum pixel values
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * @param search_values : array of values to count
- * @param search_values_count : the number of search values
- * @param roundto : the decimal place to round the values to
- * @param rtn_total : the number of pixels examined in the band
- * @param rtn_count : the number of value counts being returned
- *
- * @return the number of times the provide value(s) occur or NULL
- */
-rt_valuecount
-rt_band_get_value_count(
-	rt_band band, int exclude_nodata_value,
-	double *search_values, uint32_t search_values_count, double roundto,
-	uint32_t *rtn_total, uint32_t *rtn_count
-) {
-	rt_valuecount vcnts = NULL;
-	rt_pixtype pixtype = PT_END;
-	uint8_t *data = NULL;
-	double nodata = 0;
-
-	int scale = 0;
-	int doround = 0;
-	double tmpd = 0;
-	int i = 0;
-
-	uint32_t x = 0;
-	uint32_t y = 0;
-	int rtn;
-	double pxlval;
-	int isnodata = 0;
-	double rpxlval;
-	uint32_t total = 0;
-	int vcnts_count = 0;
-	int new_valuecount = 0;
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	clock_t start, stop;
-	double elapsed = 0;
-#endif
-
-	RASTER_DEBUG(3, "starting");
-#if POSTGIS_DEBUG_LEVEL > 0
-	start = clock();
-#endif
-
-	assert(NULL != band);
-	assert(NULL != rtn_count);
-
-	data = rt_band_get_data(band);
-	if (data == NULL) {
-		rterror("rt_band_get_summary_stats: Cannot get band data");
-		return NULL;
-	}
-
-	pixtype = band->pixtype;
-
-	if (rt_band_get_hasnodata_flag(band)) {
-		rt_band_get_nodata(band, &nodata);
-		RASTER_DEBUGF(3, "hasnodata, nodataval = 1, %f", nodata);
-	}
-	else {
-		exclude_nodata_value = 0;
-		RASTER_DEBUG(3, "hasnodata, nodataval = 0, 0");
-	}
-
-	RASTER_DEBUGF(3, "exclude_nodata_value = %d", exclude_nodata_value);
-
-	/* process roundto */
-	if (roundto < 0 || FLT_EQ(roundto, 0.0)) {
-		roundto = 0;
-		scale = 0;
-	}
-	/* tenths, hundredths, thousandths, etc */
-	else if (roundto < 1) {
-    switch (pixtype) {
-			/* integer band types don't have digits after the decimal place */
-			case PT_1BB:
-			case PT_2BUI:
-			case PT_4BUI:
-			case PT_8BSI:
-			case PT_8BUI:
-			case PT_16BSI:
-			case PT_16BUI:
-			case PT_32BSI:
-			case PT_32BUI:
-				roundto = 0;
-				break;
-			/* floating points, check the rounding */
-			case PT_32BF:
-			case PT_64BF:
-				for (scale = 0; scale <= 20; scale++) {
-					tmpd = roundto * pow(10, scale);
-					if (FLT_EQ((tmpd - ((int) tmpd)), 0.0)) break;
-				}
-				break;
-			case PT_END:
-				break;
-		}
-	}
-	/* ones, tens, hundreds, etc */
-	else {
-		for (scale = 0; scale >= -20; scale--) {
-			tmpd = roundto * pow(10, scale);
-			if (tmpd < 1 || FLT_EQ(tmpd, 1.0)) {
-				if (scale == 0) doround = 1;
-				break;
-			}
-		}
-	}
-
-	if (scale != 0 || doround)
-		doround = 1;
-	else
-		doround = 0;
-	RASTER_DEBUGF(3, "scale = %d", scale);
-	RASTER_DEBUGF(3, "doround = %d", doround);
-
-	/* process search_values */
-	if (search_values_count > 0 && NULL != search_values) {
-		vcnts = (rt_valuecount) rtalloc(sizeof(struct rt_valuecount_t) * search_values_count);
-		if (NULL == vcnts) {
-			rterror("rt_band_get_count_of_values: Could not allocate memory for value counts");
-			*rtn_count = 0;
-			return NULL;
-		}
-
-		for (i = 0; i < search_values_count; i++) {
-			vcnts[i].count = 0;
-			vcnts[i].percent = 0;
-			if (!doround)
-				vcnts[i].value = search_values[i];
-			else
-				vcnts[i].value = ROUND(search_values[i], scale);
-		}
-		vcnts_count = i;
-	}
-	else
-		search_values_count = 0;
-	RASTER_DEBUGF(3, "search_values_count = %d", search_values_count);
-
-	/* entire band is nodata */
-	if (rt_band_get_isnodata_flag(band) != FALSE) {
-		if (exclude_nodata_value) {
-			rtwarn("All pixels of band have the NODATA value");
-			return NULL;
-		}
-		else {
-			if (search_values_count > 0) {
-				/* check for nodata match */
-				for (i = 0; i < search_values_count; i++) {
-					if (!doround)
-						tmpd = nodata;
-					else
-						tmpd = ROUND(nodata, scale);
-
-					if (FLT_NEQ(tmpd, vcnts[i].value))
-						continue;
-
-					vcnts[i].count = band->width * band->height;
-					if (NULL != rtn_total) *rtn_total = vcnts[i].count;
-					vcnts->percent = 1.0;
-				}
-
-				*rtn_count = vcnts_count;
-			}
-			/* no defined search values */
-			else {
-				vcnts = (rt_valuecount) rtalloc(sizeof(struct rt_valuecount_t));
-				if (NULL == vcnts) {
-					rterror("rt_band_get_count_of_values: Could not allocate memory for value counts");
-					*rtn_count = 0;
-					return NULL;
-				}
-
-				vcnts->value = nodata;
-				vcnts->count = band->width * band->height;
-				if (NULL != rtn_total) *rtn_total = vcnts[i].count;
-				vcnts->percent = 1.0;
-
-				*rtn_count = 1;
-			}
-
-			return vcnts;
-		}
-	}
-
-	for (x = 0; x < band->width; x++) {
-		for (y = 0; y < band->height; y++) {
-			rtn = rt_band_get_pixel(band, x, y, &pxlval, &isnodata);
-
-			/* error getting value, continue */
-			if (rtn != ES_NONE)
-				continue;
-
-			if (!exclude_nodata_value || (exclude_nodata_value && !isnodata)) {
-				total++;
-				if (doround) {
-					rpxlval = ROUND(pxlval, scale);
-				}
-				else
-					rpxlval = pxlval;
-				RASTER_DEBUGF(5, "(pxlval, rpxlval) => (%0.6f, %0.6f)", pxlval, rpxlval);
-
-				new_valuecount = 1;
-				/* search for match in existing valuecounts */
-				for (i = 0; i < vcnts_count; i++) {
-					/* match found */
-					if (FLT_EQ(vcnts[i].value, rpxlval)) {
-						vcnts[i].count++;
-						new_valuecount = 0;
-						RASTER_DEBUGF(5, "(value, count) => (%0.6f, %d)", vcnts[i].value, vcnts[i].count);
-						break;
-					}
-				}
-
-				/*
-					don't add new valuecount either because
-						- no need for new one
-						- user-defined search values
-				*/
-				if (!new_valuecount || search_values_count > 0) continue;
-
-				/* add new valuecount */
-				vcnts = rtrealloc(vcnts, sizeof(struct rt_valuecount_t) * (vcnts_count + 1));
-				if (NULL == vcnts) {
-					rterror("rt_band_get_count_of_values: Could not allocate memory for value counts");
-					*rtn_count = 0;
-					return NULL;
-				}
-
-				vcnts[vcnts_count].value = rpxlval;
-				vcnts[vcnts_count].count = 1;
-				vcnts[vcnts_count].percent = 0;
-				RASTER_DEBUGF(5, "(value, count) => (%0.6f, %d)", vcnts[vcnts_count].value, vcnts[vcnts_count].count);
-				vcnts_count++;
-			}
-		}
-	}
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	stop = clock();
-	elapsed = ((double) (stop - start)) / CLOCKS_PER_SEC;
-	RASTER_DEBUGF(3, "elapsed time = %0.4f", elapsed);
-#endif
-
-	for (i = 0; i < vcnts_count; i++) {
-		vcnts[i].percent = (double) vcnts[i].count / total;
-		RASTER_DEBUGF(5, "(value, count) => (%0.6f, %d)", vcnts[i].value, vcnts[i].count);
-	}
-
-	RASTER_DEBUG(3, "done");
-	if (NULL != rtn_total) *rtn_total = total;
-	*rtn_count = vcnts_count;
-	return vcnts;
-}
-
-/**
- * Returns new band with values reclassified
- *
- * @param srcband : the band who's values will be reclassified
- * @param pixtype : pixel type of the new band
- * @param hasnodata : indicates if the band has a nodata value
- * @param nodataval : nodata value for the new band
- * @param exprset : array of rt_reclassexpr structs
- * @param exprcount : number of elements in expr
- *
- * @return a new rt_band or NULL on error
- */
-rt_band
-rt_band_reclass(
-	rt_band srcband, rt_pixtype pixtype,
-	uint32_t hasnodata, double nodataval,
-	rt_reclassexpr *exprset, int exprcount
-) {
-	rt_band band = NULL;
-	uint32_t width = 0;
-	uint32_t height = 0;
-	int numval = 0;
-	int memsize = 0;
-	void *mem = NULL;
-	uint32_t src_hasnodata = 0;
-	double src_nodataval = 0.0;
-	int isnodata = 0;
-
-	int rtn;
-	uint32_t x;
-	uint32_t y;
-	int i;
-	double or = 0;
-	double ov = 0;
-	double nr = 0;
-	double nv = 0;
-	int do_nv = 0;
-	rt_reclassexpr expr = NULL;
-
-	assert(NULL != srcband);
-	assert(NULL != exprset && exprcount > 0);
-	RASTER_DEBUGF(4, "exprcount = %d", exprcount);
-	RASTER_DEBUGF(4, "exprset @ %p", exprset);
-
-	/* source nodata */
-	src_hasnodata = rt_band_get_hasnodata_flag(srcband);
-	if (src_hasnodata)
-		rt_band_get_nodata(srcband, &src_nodataval);
-
-	/* size of memory block to allocate */
-	width = rt_band_get_width(srcband);
-	height = rt_band_get_height(srcband);
-	numval = width * height;
-	memsize = rt_pixtype_size(pixtype) * numval;
-	mem = (int *) rtalloc(memsize);
-	if (!mem) {
-		rterror("rt_band_reclass: Could not allocate memory for band");
-		return 0;
-	}
-
-	/* initialize to zero */
-	if (!hasnodata) {
-		memset(mem, 0, memsize);
-	}
-	/* initialize to nodataval */
-	else {
-		int32_t checkvalint = 0;
-		uint32_t checkvaluint = 0;
-		double checkvaldouble = 0;
-		float checkvalfloat = 0;
-
-		switch (pixtype) {
-			case PT_1BB:
-			{
-				uint8_t *ptr = mem;
-				uint8_t clamped_initval = rt_util_clamp_to_1BB(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvalint = ptr[0];
-				break;
-			}
-			case PT_2BUI:
-			{
-				uint8_t *ptr = mem;
-				uint8_t clamped_initval = rt_util_clamp_to_2BUI(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvalint = ptr[0];
-				break;
-			}
-			case PT_4BUI:
-			{
-				uint8_t *ptr = mem;
-				uint8_t clamped_initval = rt_util_clamp_to_4BUI(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvalint = ptr[0];
-				break;
-			}
-			case PT_8BSI:
-			{
-				int8_t *ptr = mem;
-				int8_t clamped_initval = rt_util_clamp_to_8BSI(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvalint = ptr[0];
-				break;
-			}
-			case PT_8BUI:
-			{
-				uint8_t *ptr = mem;
-				uint8_t clamped_initval = rt_util_clamp_to_8BUI(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvalint = ptr[0];
-				break;
-			}
-			case PT_16BSI:
-			{
-				int16_t *ptr = mem;
-				int16_t clamped_initval = rt_util_clamp_to_16BSI(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvalint = ptr[0];
-				break;
-			}
-			case PT_16BUI:
-			{
-				uint16_t *ptr = mem;
-				uint16_t clamped_initval = rt_util_clamp_to_16BUI(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvalint = ptr[0];
-				break;
-			}
-			case PT_32BSI:
-			{
-				int32_t *ptr = mem;
-				int32_t clamped_initval = rt_util_clamp_to_32BSI(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvalint = ptr[0];
-				break;
-			}
-			case PT_32BUI:
-			{
-				uint32_t *ptr = mem;
-				uint32_t clamped_initval = rt_util_clamp_to_32BUI(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvaluint = ptr[0];
-				break;
-			}
-			case PT_32BF:
-			{
-				float *ptr = mem;
-				float clamped_initval = rt_util_clamp_to_32F(nodataval);
-				for (i = 0; i < numval; i++)
-					ptr[i] = clamped_initval;
-				checkvalfloat = ptr[0];
-				break;
-			}
-			case PT_64BF:
-			{
-				double *ptr = mem;
-				for (i = 0; i < numval; i++)
-					ptr[i] = nodataval;
-				checkvaldouble = ptr[0];
-				break;
-			}
-			default:
-			{
-				rterror("rt_band_reclass: Unknown pixeltype %d", pixtype);
-				rtdealloc(mem);
-				return 0;
-			}
-		}
-
-		/* Overflow checking */
-		rt_util_dbl_trunc_warning(
-			nodataval,
-			checkvalint, checkvaluint,
-			checkvalfloat, checkvaldouble,
-			pixtype
-		);
-	}
-	RASTER_DEBUGF(3, "rt_band_reclass: width = %d height = %d", width, height);
-
-	band = rt_band_new_inline(width, height, pixtype, hasnodata, nodataval, mem);
-	if (!band) {
-		rterror("rt_band_reclass: Could not create new band");
-		rtdealloc(mem);
-		return 0;
-	}
-	rt_band_set_ownsdata_flag(band, 1); /* we DO own this data!!! */
-	RASTER_DEBUGF(3, "rt_band_reclass: new band @ %p", band);
-
-	for (x = 0; x < width; x++) {
-		for (y = 0; y < height; y++) {
-			rtn = rt_band_get_pixel(srcband, x, y, &ov, &isnodata);
-
-			/* error getting value, skip */
-			if (rtn != ES_NONE) {
-				RASTER_DEBUGF(3, "Cannot get value at %d, %d", x, y);
-				continue;
-			}
-
-			do {
-				do_nv = 0;
-
-				/* no data*/
-				if (hasnodata && isnodata) {
-					do_nv = 1;
-					break;
-				}
-
-				for (i = 0; i < exprcount; i++) {
-					expr = exprset[i];
-
-					/* ov matches min and max*/
-					if (
-						FLT_EQ(expr->src.min, ov) &&
-						FLT_EQ(expr->src.max, ov)
-					) {
-						do_nv = 1;
-						break;
-					}
-
-					/* process min */
-					if ((
-						expr->src.exc_min && (
-							expr->src.min > ov ||
-							FLT_EQ(expr->src.min, ov)
-						)) || (
-						expr->src.inc_min && (
-							expr->src.min < ov ||
-							FLT_EQ(expr->src.min, ov)
-						)) || (
-						expr->src.min < ov
-					)) {
-						/* process max */
-						if ((
-							expr->src.exc_max && (
-								ov > expr->src.max ||
-								FLT_EQ(expr->src.max, ov)
-							)) || (
-								expr->src.inc_max && (
-								ov < expr->src.max ||
-								FLT_EQ(expr->src.max, ov)
-							)) || (
-							ov < expr->src.max
-						)) {
-							do_nv = 1;
-							break;
-						}
-					}
-				}
-			}
-			while (0);
-
-			/* no expression matched, do not continue */
-			if (!do_nv) continue;
-			RASTER_DEBUGF(3, "Using exprset[%d] unless NODATA", i);
-
-			/* converting a value from one range to another range
-			OldRange = (OldMax - OldMin)
-			NewRange = (NewMax - NewMin)
-			NewValue = (((OldValue - OldMin) * NewRange) / OldRange) + NewMin
-			*/
-
-			/* NODATA */
-			if (hasnodata && isnodata) {
-				nv = nodataval;
-			}
-			/*
-				"src" min and max is the same, prevent division by zero
-				set nv to "dst" min, which should be the same as "dst" max
-			*/
-			else if (FLT_EQ(expr->src.max, expr->src.min)) {
-				nv = expr->dst.min;
-			}
-			else {
-				or = expr->src.max - expr->src.min;
-				nr = expr->dst.max - expr->dst.min;
-				nv = (((ov - expr->src.min) * nr) / or) + expr->dst.min;
-
-				/* if dst range is from high to low */
-				if (expr->dst.min > expr->dst.max) {
-					if (nv > expr->dst.min)
-						nv = expr->dst.min;
-					else if (nv < expr->dst.max)
-						nv = expr->dst.max;
-				}
-				/* if dst range is from low to high */
-				else {
-					if (nv < expr->dst.min)
-						nv = expr->dst.min;
-					else if (nv > expr->dst.max)
-						nv = expr->dst.max;
-				}
-			}
-
-			/* round the value for integers */
-			switch (pixtype) {
-				case PT_1BB:
-				case PT_2BUI:
-				case PT_4BUI:
-				case PT_8BSI:
-				case PT_8BUI:
-				case PT_16BSI:
-				case PT_16BUI:
-				case PT_32BSI:
-				case PT_32BUI:
-					nv = round(nv);
-					break;
-				default:
-					break;
-			}
-
-			RASTER_DEBUGF(4, "(%d, %d) ov: %f or: %f - %f nr: %f - %f nv: %f"
-				, x
-				, y
-				, ov
-				, (NULL != expr) ? expr->src.min : 0
-				, (NULL != expr) ? expr->src.max : 0
-				, (NULL != expr) ? expr->dst.min : 0
-				, (NULL != expr) ? expr->dst.max : 0
-				, nv
-			);
-			if (rt_band_set_pixel(band, x, y, nv, NULL) != ES_NONE) {
-				rterror("rt_band_reclass: Could not assign value to new band");
-				rt_band_destroy(band);
-				rtdealloc(mem);
-				return 0;
-			}
-
-			expr = NULL;
-		}
-	}
-
-	return band;
-}
-
-/*- rt_raster --------------------------------------------------------*/
-
-/**
- * Construct a raster with given dimensions.
- *
- * Transform will be set to identity.
- * Will contain no bands.
- *
- * @param width : number of pixel columns
- * @param height : number of pixel rows
- *
- * @return an rt_raster or NULL if out of memory
- */
-rt_raster
-rt_raster_new(uint32_t width, uint32_t height) {
-	rt_raster ret = NULL;
-
-	ret = (rt_raster) rtalloc(sizeof (struct rt_raster_t));
-	if (!ret) {
-		rterror("rt_raster_new: Out of virtual memory creating an rt_raster");
-		return NULL;
-	}
-
-	RASTER_DEBUGF(3, "Created rt_raster @ %p", ret);
-
-	if (width > 65535 || height > 65535) {
-		rterror("rt_raster_new: Dimensions requested exceed the maximum (65535 x 65535) permitted for a raster");
-		rt_raster_destroy(ret);
-		return NULL;
-	}
-
-	ret->width = width;
-	ret->height = height;
-	ret->scaleX = 1;
-	ret->scaleY = -1;
-	ret->ipX = 0.0;
-	ret->ipY = 0.0;
-	ret->skewX = 0.0;
-	ret->skewY = 0.0;
-	ret->srid = SRID_UNKNOWN;
-
-	ret->numBands = 0;
-	ret->bands = NULL; 
-
-	return ret;
-}
-
-void
-rt_raster_destroy(rt_raster raster) {
-	if (raster == NULL)
-		return;
-
-	RASTER_DEBUGF(3, "Destroying rt_raster @ %p", raster);
-
-	if (raster->bands)
-		rtdealloc(raster->bands);
-
-	rtdealloc(raster);
-}
-
-static void
-_rt_raster_geotransform_warn_offline_band(rt_raster raster) {
-	int numband = 0;
-	int i = 0;
-	rt_band band = NULL;
-
-	if (raster == NULL)
-		return;
-
-	numband = rt_raster_get_num_bands(raster);
-	if (numband < 1)
-		return;
-
-	for (i = 0; i < numband; i++) {
-		band = rt_raster_get_band(raster, i);
-		if (NULL == band)
-			continue;
-
-		if (!rt_band_is_offline(band))
-			continue;
-
-		rtwarn("Changes made to raster geotransform matrix may affect out-db band data. Returned band data may be incorrect");
-		break;
-	}
-}
-
-uint16_t
-rt_raster_get_width(rt_raster raster) {
-
-    assert(NULL != raster);
-
-    return raster->width;
-}
-
-uint16_t
-rt_raster_get_height(rt_raster raster) {
-
-    assert(NULL != raster);
-
-    return raster->height;
-}
-
-void
-rt_raster_set_scale(
-	rt_raster raster,
-	double scaleX, double scaleY
-) {
-	assert(NULL != raster);
-
-	raster->scaleX = scaleX;
-	raster->scaleY = scaleY;
-
-	_rt_raster_geotransform_warn_offline_band(raster);
-}
-
-double
-rt_raster_get_x_scale(rt_raster raster) {
-
-
-    assert(NULL != raster);
-
-    return raster->scaleX;
-}
-
-double
-rt_raster_get_y_scale(rt_raster raster) {
-
-
-    assert(NULL != raster);
-
-    return raster->scaleY;
-}
-
-void
-rt_raster_set_skews(
-	rt_raster raster,
-	double skewX, double skewY
-) {
-	assert(NULL != raster);
-
-	raster->skewX = skewX;
-	raster->skewY = skewY;
-
-	_rt_raster_geotransform_warn_offline_band(raster);
-}
-
-double
-rt_raster_get_x_skew(rt_raster raster) {
-
-
-    assert(NULL != raster);
-
-    return raster->skewX;
-}
-
-double
-rt_raster_get_y_skew(rt_raster raster) {
-
-
-    assert(NULL != raster);
-
-    return raster->skewY;
-}
-
-void
-rt_raster_set_offsets(
-	rt_raster raster,
-	double x, double y
-) {
-
-	assert(NULL != raster);
-
-	raster->ipX = x;
-	raster->ipY = y;
-
-	_rt_raster_geotransform_warn_offline_band(raster);
-}
-
-double
-rt_raster_get_x_offset(rt_raster raster) {
-
-
-    assert(NULL != raster);
-
-    return raster->ipX;
-}
-
-double
-rt_raster_get_y_offset(rt_raster raster) {
-
-
-    assert(NULL != raster);
-
-    return raster->ipY;
-}
-
-void
-rt_raster_get_phys_params(rt_raster rast,
-        double *i_mag, double *j_mag, double *theta_i, double *theta_ij)
-{
-    double o11, o12, o21, o22 ; /* geotransform coefficients */
-
-    if (rast == NULL) return ;
-    if ( (i_mag==NULL) || (j_mag==NULL) || (theta_i==NULL) || (theta_ij==NULL))
-        return ;
-
-    /* retrieve coefficients from raster */
-    o11 = rt_raster_get_x_scale(rast) ;
-    o12 = rt_raster_get_x_skew(rast) ;
-    o21 = rt_raster_get_y_skew(rast) ;
-    o22 = rt_raster_get_y_scale(rast) ;
-
-    rt_raster_calc_phys_params(o11, o12, o21, o22, i_mag, j_mag, theta_i, theta_ij);
-}
-
-void
-rt_raster_calc_phys_params(double xscale, double xskew, double yskew, double yscale,
-                           double *i_mag, double *j_mag, double *theta_i, double *theta_ij)
-
-{
-    double theta_test ;
-
-    if ( (i_mag==NULL) || (j_mag==NULL) || (theta_i==NULL) || (theta_ij==NULL))
-        return ;
-
-    /* pixel size in the i direction */
-    *i_mag = sqrt(xscale*xscale + yskew*yskew) ;
-
-    /* pixel size in the j direction */
-    *j_mag = sqrt(xskew*xskew + yscale*yscale) ;
-
-    /* Rotation
-     * ========
-     * Two steps:
-     * 1] calculate the magnitude of the angle between the x axis and
-     *     the i basis vector.
-     * 2] Calculate the sign of theta_i based on the angle between the y axis
-     *     and the i basis vector.
-     */
-    *theta_i = acos(xscale/(*i_mag)) ;  /* magnitude */
-    theta_test = acos(yskew/(*i_mag)) ; /* sign */
-    if (theta_test < M_PI_2){
-        *theta_i = -(*theta_i) ;
-    }
-
-
-    /* Angular separation of basis vectors
-     * ===================================
-     * Two steps:
-     * 1] calculate the magnitude of the angle between the j basis vector and
-     *     the i basis vector.
-     * 2] Calculate the sign of theta_ij based on the angle between the
-     *    perpendicular of the i basis vector and the j basis vector.
-     */
-    *theta_ij = acos(((xscale*xskew) + (yskew*yscale))/((*i_mag)*(*j_mag))) ;
-    theta_test = acos( ((-yskew*xskew)+(xscale*yscale)) /
-            ((*i_mag)*(*j_mag)));
-    if (theta_test > M_PI_2) {
-        *theta_ij = -(*theta_ij) ;
-    }
-}
-
-void
-rt_raster_set_phys_params(rt_raster rast,double i_mag, double j_mag, double theta_i, double theta_ij)
-{
-    double o11, o12, o21, o22 ; /* calculated geotransform coefficients */
-    int success ;
-
-    if (rast == NULL) return ;
-
-    success = rt_raster_calc_gt_coeff(i_mag, j_mag, theta_i, theta_ij,
-                            &o11, &o12, &o21, &o22) ;
-
-    if (success) {
-        rt_raster_set_scale(rast, o11, o22) ;
-        rt_raster_set_skews(rast, o12, o21) ;
-    }
-}
-
-int
-rt_raster_calc_gt_coeff(double i_mag, double j_mag, double theta_i, double theta_ij,
-                        double *xscale, double *xskew, double *yskew, double *yscale)
-{
-    double f ;        /* reflection flag 1.0 or -1.0 */
-    double k_i ;      /* shearing coefficient */
-    double s_i, s_j ; /* scaling coefficients */
-    double cos_theta_i, sin_theta_i ;
-
-    if ( (xscale==NULL) || (xskew==NULL) || (yskew==NULL) || (yscale==NULL)) {
-        return 0;
-    }
-
-    if ( (theta_ij == 0.0) || (theta_ij == M_PI)) {
-        return 0;
-    }
-
-    /* Reflection across the i axis */
-    f=1.0 ;
-    if (theta_ij < 0) {
-        f = -1.0;
-    }
-
-    /* scaling along i axis */
-    s_i = i_mag ;
-
-    /* shearing parallel to i axis */
-    k_i = tan(f*M_PI_2 - theta_ij) ;
-
-    /* scaling along j axis */
-    s_j = j_mag / (sqrt(k_i*k_i + 1)) ;
-
-    /* putting it altogether */
-    cos_theta_i = cos(theta_i) ;
-    sin_theta_i = sin(theta_i) ;
-    *xscale = s_i * cos_theta_i ;
-    *xskew  = k_i * s_j * f * cos_theta_i + s_j * f * sin_theta_i ;
-    *yskew  = -s_i * sin_theta_i ;
-    *yscale = -k_i * s_j * f * sin_theta_i + s_j * f * cos_theta_i ;
-    return 1;
-}
-
-int32_t
-rt_raster_get_srid(rt_raster raster) {
-	assert(NULL != raster);
-
-	return clamp_srid(raster->srid);
-}
-
-void
-rt_raster_set_srid(rt_raster raster, int32_t srid) {
-	assert(NULL != raster);
-
-	raster->srid = clamp_srid(srid);
-
-	_rt_raster_geotransform_warn_offline_band(raster);
-}
-
-int
-rt_raster_get_num_bands(rt_raster raster) {
-
-
-    assert(NULL != raster);
-
-    return raster->numBands;
-}
-
-rt_band
-rt_raster_get_band(rt_raster raster, int n) {
-	assert(NULL != raster);
-
-	if (n >= raster->numBands || n < 0)
-		return NULL;
-
-	return raster->bands[n];
-}
-
-/**
- * Add band data to a raster.
- *
- * @param raster : the raster to add a band to
- * @param band : the band to add, ownership left to caller.
- *               Band dimensions are required to match with raster ones.
- * @param index : the position where to insert the new band (0 based)
- *
- * @return identifier (position) for the just-added raster, or -1 on error
- */
-int
-rt_raster_add_band(rt_raster raster, rt_band band, int index) {
-    rt_band *oldbands = NULL;
-    rt_band oldband = NULL;
-    rt_band tmpband = NULL;
-    uint16_t i = 0;
-
-
-
-    assert(NULL != raster);
-		assert(NULL != band);
-
-    RASTER_DEBUGF(3, "Adding band %p to raster %p", band, raster);
-
-    if (band->width != raster->width || band->height != raster->height) {
-        rterror("rt_raster_add_band: Can't add a %dx%d band to a %dx%d raster",
-                band->width, band->height, raster->width, raster->height);
-        return -1;
-    }
-
-    if (index > raster->numBands)
-        index = raster->numBands;
-
-    if (index < 0)
-        index = 0;
-
-    oldbands = raster->bands;
-
-    RASTER_DEBUGF(3, "Oldbands at %p", oldbands);
-
-    raster->bands = (rt_band*) rtrealloc(raster->bands,
-            sizeof (rt_band)*(raster->numBands + 1)
-            );
-
-    RASTER_DEBUG(3, "Checking bands");
-
-    if (NULL == raster->bands) {
-        rterror("rt_raster_add_band: Out of virtual memory "
-                "reallocating band pointers");
-        raster->bands = oldbands;
-        return -1;
-    }
-
-    RASTER_DEBUGF(4, "realloc returned %p", raster->bands);
-
-    for (i = 0; i <= raster->numBands; ++i) {
-        if (i == index) {
-            oldband = raster->bands[i];
-            raster->bands[i] = band;
-        } else if (i > index) {
-            tmpband = raster->bands[i];
-            raster->bands[i] = oldband;
-            oldband = tmpband;
-        }
-    }
-
-		band->raster = raster;
-
-    raster->numBands++;
-
-    RASTER_DEBUGF(4, "Raster now has %d bands", raster->numBands);
-
-    return index;
-}
-
-/**
- * Generate a new inline band and add it to a raster.
- * Memory is allocated in this function for band data.
- *
- * @param raster : the raster to add a band to
- * @param pixtype : the pixel type for the new band
- * @param initialvalue : initial value for pixels
- * @param hasnodata : indicates if the band has a nodata value
- * @param nodatavalue : nodata value for the new band
- * @param index : position to add the new band in the raster
- *
- * @return identifier (position) for the just-added raster, or -1 on error
- */
-int
-rt_raster_generate_new_band(
-	rt_raster raster, rt_pixtype pixtype,
-	double initialvalue, uint32_t hasnodata, double nodatavalue,
-	int index
-) {
-    rt_band band = NULL;
-    int width = 0;
-    int height = 0;
-    int numval = 0;
-    int datasize = 0;
-    int oldnumbands = 0;
-    int numbands = 0;
-    void * mem = NULL;
-    int32_t checkvalint = 0;
-    uint32_t checkvaluint = 0;
-    double checkvaldouble = 0;
-    float checkvalfloat = 0;
-    int i;
-
-
-    assert(NULL != raster);
-
-    /* Make sure index is in a valid range */
-    oldnumbands = rt_raster_get_num_bands(raster);
-    if (index < 0)
-        index = 0;
-    else if (index > oldnumbands + 1)
-        index = oldnumbands + 1;
-
-    /* Determine size of memory block to allocate and allocate it */
-    width = rt_raster_get_width(raster);
-    height = rt_raster_get_height(raster);
-    numval = width * height;
-    datasize = rt_pixtype_size(pixtype) * numval;
-
-    mem = (int *)rtalloc(datasize);
-    if (!mem) {
-        rterror("rt_raster_generate_new_band: Could not allocate memory for band");
-        return -1;
-    }
-
-    if (FLT_EQ(initialvalue, 0.0))
-        memset(mem, 0, datasize);
-    else {
-        switch (pixtype)
-        {
-            case PT_1BB:
-            {
-                uint8_t *ptr = mem;
-                uint8_t clamped_initval = rt_util_clamp_to_1BB(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvalint = ptr[0];
-                break;
-            }
-            case PT_2BUI:
-            {
-                uint8_t *ptr = mem;
-                uint8_t clamped_initval = rt_util_clamp_to_2BUI(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvalint = ptr[0];
-                break;
-            }
-            case PT_4BUI:
-            {
-                uint8_t *ptr = mem;
-                uint8_t clamped_initval = rt_util_clamp_to_4BUI(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvalint = ptr[0];
-                break;
-            }
-            case PT_8BSI:
-            {
-                int8_t *ptr = mem;
-                int8_t clamped_initval = rt_util_clamp_to_8BSI(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvalint = ptr[0];
-                break;
-            }
-            case PT_8BUI:
-            {
-                uint8_t *ptr = mem;
-                uint8_t clamped_initval = rt_util_clamp_to_8BUI(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvalint = ptr[0];
-                break;
-            }
-            case PT_16BSI:
-            {
-                int16_t *ptr = mem;
-                int16_t clamped_initval = rt_util_clamp_to_16BSI(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvalint = ptr[0];
-                break;
-            }
-            case PT_16BUI:
-            {
-                uint16_t *ptr = mem;
-                uint16_t clamped_initval = rt_util_clamp_to_16BUI(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvalint = ptr[0];
-                break;
-            }
-            case PT_32BSI:
-            {
-                int32_t *ptr = mem;
-                int32_t clamped_initval = rt_util_clamp_to_32BSI(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvalint = ptr[0];
-                break;
-            }
-            case PT_32BUI:
-            {
-                uint32_t *ptr = mem;
-                uint32_t clamped_initval = rt_util_clamp_to_32BUI(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvaluint = ptr[0];
-                break;
-            }
-            case PT_32BF:
-            {
-                float *ptr = mem;
-                float clamped_initval = rt_util_clamp_to_32F(initialvalue);
-                for (i = 0; i < numval; i++)
-                    ptr[i] = clamped_initval;
-                checkvalfloat = ptr[0];
-                break;
-            }
-            case PT_64BF:
-            {
-                double *ptr = mem;
-                for (i = 0; i < numval; i++)
-                    ptr[i] = initialvalue;
-                checkvaldouble = ptr[0];
-                break;
-            }
-            default:
-            {
-                rterror("rt_raster_generate_new_band: Unknown pixeltype %d", pixtype);
-                rtdealloc(mem);
-                return -1;
-            }
-        }
-    }
-
-    /* Overflow checking */
-    rt_util_dbl_trunc_warning(
-			initialvalue,
-			checkvalint, checkvaluint,
-			checkvalfloat, checkvaldouble,
-			pixtype
-		);
-
-    band = rt_band_new_inline(width, height, pixtype, hasnodata, nodatavalue, mem);
-    if (! band) {
-        rterror("rt_raster_generate_new_band: Could not add band to raster. Aborting");
-        rtdealloc(mem);
-        return -1;
-    }
-		rt_band_set_ownsdata_flag(band, 1); /* we DO own this data!!! */
-    index = rt_raster_add_band(raster, band, index);
-    numbands = rt_raster_get_num_bands(raster);
-    if (numbands == oldnumbands || index == -1) {
-        rterror("rt_raster_generate_new_band: Could not add band to raster. Aborting");
-        rt_band_destroy(band);
-    }
-
-		/* set isnodata if hasnodata = TRUE and initial value = nodatavalue */
-		if (hasnodata && FLT_EQ(initialvalue, nodatavalue))
-			rt_band_set_isnodata_flag(band, 1);
-
-    return index;
-}
-
-/**
- * Get 6-element array of raster inverse geotransform matrix
- *
- * @param raster : the raster to get matrix of
- * @param gt : optional input parameter, 6-element geotransform matrix
- * @param igt : output parameter, 6-element inverse geotransform matrix
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_get_inverse_geotransform_matrix(
-	rt_raster raster,
-	double *gt, double *igt
-) {
-	double _gt[6] = {0};
-
-	assert((raster != NULL || gt != NULL));
-	assert(igt != NULL);
-
-	if (gt == NULL)
-		rt_raster_get_geotransform_matrix(raster, _gt);
-	else
-		memcpy(_gt, gt, sizeof(double) * 6);
-	
-	if (!GDALInvGeoTransform(_gt, igt)) {
-		rterror("rt_raster_get_inverse_geotransform_matrix: Could not compute inverse geotransform matrix");
-		return ES_ERROR;
-	}
-
-	return ES_NONE;
-}
-
-/**
- * Get 6-element array of raster geotransform matrix
- *
- * @param raster : the raster to get matrix of
- * @param gt : output parameter, 6-element geotransform matrix
- *
- */
-void
-rt_raster_get_geotransform_matrix(rt_raster raster,
-	double *gt) {
-	assert(NULL != raster);
-	assert(NULL != gt);
-
-	gt[0] = raster->ipX;
-	gt[1] = raster->scaleX;
-	gt[2] = raster->skewX;
-	gt[3] = raster->ipY;
-	gt[4] = raster->skewY;
-	gt[5] = raster->scaleY;
-}
-
-/**
- * Set raster's geotransform using 6-element array
- *
- * @param raster : the raster to set matrix of
- * @param gt : intput parameter, 6-element geotransform matrix
- *
- */
-void
-rt_raster_set_geotransform_matrix(rt_raster raster,
-	double *gt) {
-	assert(NULL != raster);
-	assert(NULL != gt);
-
-	raster->ipX = gt[0];
-	raster->scaleX = gt[1];
-	raster->skewX = gt[2];
-	raster->ipY = gt[3];
-	raster->skewY = gt[4];
-	raster->scaleY = gt[5];
-
-	_rt_raster_geotransform_warn_offline_band(raster);
-}
-
-/**
- * Convert an xr, yr raster point to an xw, yw point on map
- *
- * @param raster : the raster to get info from
- * @param xr : the pixel's column
- * @param yr : the pixel's row
- * @param xw : output parameter, X ordinate of the geographical point
- * @param yw : output parameter, Y ordinate of the geographical point
- * @param gt : input/output parameter, 3x2 geotransform matrix
- *
- * @return ES_NONE if success, ES_ERROR if error 
- */
-rt_errorstate
-rt_raster_cell_to_geopoint(
-	rt_raster raster,
-	double xr, double yr,
-	double *xw, double *yw,
-	double *gt
-) {
-	double _gt[6] = {0};
-
-	assert(NULL != raster);
-	assert(NULL != xw && NULL != yw);
-
-	if (NULL != gt)
-		memcpy(_gt, gt, sizeof(double) * 6);
-
-	/* scale of matrix is not set */
-	if (
-		FLT_EQ(_gt[1], 0) ||
-		FLT_EQ(_gt[5], 0)
-	) {
-		rt_raster_get_geotransform_matrix(raster, _gt);
-	}
-
-	RASTER_DEBUGF(4, "gt = (%f, %f, %f, %f, %f, %f)",
-		_gt[0],
-		_gt[1],
-		_gt[2],
-		_gt[3],
-		_gt[4],
-		_gt[5]
-	);
-
-	GDALApplyGeoTransform(_gt, xr, yr, xw, yw);
-	RASTER_DEBUGF(4, "GDALApplyGeoTransform (c -> g) for (%f, %f) = (%f, %f)",
-		xr, yr, *xw, *yw);
-
-	return ES_NONE;
-}
-
-/**
- * Convert an xw,yw map point to a xr,yr raster point
- *
- * @param raster : the raster to get info from
- * @param xw : X ordinate of the geographical point
- * @param yw : Y ordinate of the geographical point
- * @param xr : output parameter, the pixel's column
- * @param yr : output parameter, the pixel's row
- * @param igt : input/output parameter, inverse geotransform matrix
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate
-rt_raster_geopoint_to_cell(
-	rt_raster raster,
-	double xw, double yw,
-	double *xr, double *yr,
-	double *igt
-) {
-	double _igt[6] = {0};
-	double rnd = 0;
-
-	assert(NULL != raster);
-	assert(NULL != xr && NULL != yr);
-
-	if (igt != NULL)
-		memcpy(_igt, igt, sizeof(double) * 6);
-
-	/* matrix is not set */
-	if (
-		FLT_EQ(_igt[0], 0.) &&
-		FLT_EQ(_igt[1], 0.) &&
-		FLT_EQ(_igt[2], 0.) &&
-		FLT_EQ(_igt[3], 0.) &&
-		FLT_EQ(_igt[4], 0.) &&
-		FLT_EQ(_igt[5], 0.)
-	) {
-		if (rt_raster_get_inverse_geotransform_matrix(raster, NULL, _igt) != ES_NONE) {
-			rterror("rt_raster_geopoint_to_cell: Could not get inverse geotransform matrix");
-			return ES_ERROR;
-		}
-	}
-
-	GDALApplyGeoTransform(_igt, xw, yw, xr, yr);
-	RASTER_DEBUGF(4, "GDALApplyGeoTransform (g -> c) for (%f, %f) = (%f, %f)",
-		xw, yw, *xr, *yr);
-
-	rnd = ROUND(*xr, 0);
-	if (FLT_EQ(rnd, *xr))
-		*xr = rnd;
-	else
-		*xr = floor(*xr);
-
-	rnd = ROUND(*yr, 0);
-	if (FLT_EQ(rnd, *yr))
-		*yr = rnd;
-	else
-		*yr = floor(*yr);
-
-	RASTER_DEBUGF(4, "Corrected GDALApplyGeoTransform (g -> c) for (%f, %f) = (%f, %f)",
-		xw, yw, *xr, *yr);
-
-	return ES_NONE;
-}
-
-/**
- * Returns a set of "geomval" value, one for each group of pixel
- * sharing the same value for the provided band.
- *
- * A "geomval" value is a complex type composed of a geometry 
- * in LWPOLY representation (one for each group of pixel sharing
- * the same value) and the value associated with this geometry.
- *
- * @param raster : the raster to get info from.
- * @param nband : the band to polygonize. 0-based
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * to check for pixels with value
- *
- * @return A set of "geomval" values, one for each group of pixels
- * sharing the same value for the provided band. The returned values are
- * LWPOLY geometries.
- */
-rt_geomval
-rt_raster_gdal_polygonize(
-	rt_raster raster, int nband,
-	int exclude_nodata_value,
-	int *pnElements
-) {
-	CPLErr cplerr = CE_None;
-	char *pszQuery;
-	long j;
-	OGRSFDriverH ogr_drv = NULL;
-	GDALDriverH gdal_drv = NULL;
-	int destroy_gdal_drv = 0;
-	GDALDatasetH memdataset = NULL;
-	GDALRasterBandH gdal_band = NULL;
-	OGRDataSourceH memdatasource = NULL;
-	rt_geomval pols = NULL;
-	OGRLayerH hLayer = NULL;
-	OGRFeatureH hFeature = NULL;
-	OGRGeometryH hGeom = NULL;
-	OGRFieldDefnH hFldDfn = NULL;
-	unsigned char *wkb = NULL;
-	int wkbsize = 0;
-	LWGEOM *lwgeom = NULL;
-	int nFeatureCount = 0;
-	rt_band band = NULL;
-	int iPixVal = -1;
-	double dValue = 0.0;
-	int iBandHasNodataValue = FALSE;
-	double dBandNoData = 0.0;
-
-	/* for checking that a geometry is valid */
-	GEOSGeometry *ggeom = NULL;
-	int isValid;
-	LWGEOM *lwgeomValid = NULL;
-
-	uint32_t bandNums[1] = {nband};
-	int excludeNodataValues[1] = {exclude_nodata_value};
-
-	/* checks */
-	assert(NULL != raster);
-	assert(NULL != pnElements);
-
-	RASTER_DEBUG(2, "In rt_raster_gdal_polygonize");
-
-	*pnElements = 0;
-
-	/*******************************
-	 * Get band
-	 *******************************/
-	band = rt_raster_get_band(raster, nband);
-	if (NULL == band) {
-		rterror("rt_raster_gdal_polygonize: Error getting band %d from raster", nband);
-		return NULL;
-	}
-
-	if (exclude_nodata_value) {
-
-		/* band is NODATA */
-		if (rt_band_get_isnodata_flag(band)) {
-			RASTER_DEBUG(3, "Band is NODATA.  Returning null");
-			*pnElements = 0;
-			return NULL;
-		}
-
-		iBandHasNodataValue = rt_band_get_hasnodata_flag(band);
-		if (iBandHasNodataValue)
-			rt_band_get_nodata(band, &dBandNoData);
-		else
-			exclude_nodata_value = FALSE;
-	}
-
-	/*****************************************************
-	 * Convert raster to GDAL MEM dataset
-	 *****************************************************/
-	memdataset = rt_raster_to_gdal_mem(raster, NULL, bandNums, excludeNodataValues, 1, &gdal_drv, &destroy_gdal_drv);
-	if (NULL == memdataset) {
-		rterror("rt_raster_gdal_polygonize: Couldn't convert raster to GDAL MEM dataset");
-		return NULL;
-	}
-
-	/*****************************
-	 * Register ogr mem driver
-	 *****************************/
-#ifdef GDAL_DCAP_RASTER
-	/* As for GDAL 2.0, OGRRegisterAll() is an alias for GDALAllRegister() */
-	rt_util_gdal_register_all(0);
-#else
-	OGRRegisterAll();
-#endif
-
-	RASTER_DEBUG(3, "creating OGR MEM vector");
-
-	/*****************************************************
-	 * Create an OGR in-memory vector for layers
-	 *****************************************************/
-	ogr_drv = OGRGetDriverByName("Memory");
-	memdatasource = OGR_Dr_CreateDataSource(ogr_drv, "", NULL);
-	if (NULL == memdatasource) {
-		rterror("rt_raster_gdal_polygonize: Couldn't create a OGR Datasource to store pols");
-		GDALClose(memdataset);
-		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
-		return NULL;
-	}
-
-	/* Can MEM driver create new layers? */
-	if (!OGR_DS_TestCapability(memdatasource, ODsCCreateLayer)) {
-		rterror("rt_raster_gdal_polygonize: MEM driver can't create new layers, aborting");
-
-		/* xxx jorgearevalo: what should we do now? */
-		GDALClose(memdataset);
-		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
-		OGRReleaseDataSource(memdatasource);
-
-		return NULL;
-	}
-
-	RASTER_DEBUG(3, "polygonizying GDAL MEM raster band");
-
-	/*****************************
-	 * Polygonize the raster band
-	 *****************************/
-
-	/**
-	 * From GDALPolygonize function header: "Polygon features will be
-	 * created on the output layer, with polygon geometries representing
-	 * the polygons". So,the WKB geometry type should be "wkbPolygon"
-	 **/
-	hLayer = OGR_DS_CreateLayer(memdatasource, "PolygonizedLayer", NULL, wkbPolygon, NULL);
-
-	if (NULL == hLayer) {
-		rterror("rt_raster_gdal_polygonize: Couldn't create layer to store polygons");
-
-		GDALClose(memdataset);
-		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
-		OGRReleaseDataSource(memdatasource);
-
-		return NULL;
-	}
-
-	/**
-	 * Create a new field in the layer, to store the px value
-	 */
-
-	/* First, create a field definition to create the field */
-	hFldDfn = OGR_Fld_Create("PixelValue", OFTReal);
-
-	/* Second, create the field */
-	if (OGR_L_CreateField(hLayer, hFldDfn, TRUE) != OGRERR_NONE) {
-		rtwarn("Couldn't create a field in OGR Layer. The polygons generated won't be able to store the pixel value");
-		iPixVal = -1;
-	}
-	else {
-		/* Index to the new field created in the layer */
-		iPixVal = 0;
-	}
-
-	/* Get GDAL raster band */
-	gdal_band = GDALGetRasterBand(memdataset, 1);
-	if (NULL == gdal_band) {
-		rterror("rt_raster_gdal_polygonize: Couldn't get GDAL band to polygonize");
-
-		GDALClose(memdataset);
-		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
-		OGR_Fld_Destroy(hFldDfn);
-		OGR_DS_DeleteLayer(memdatasource, 0);
-		OGRReleaseDataSource(memdatasource);
-		
-		return NULL;
-	}
-
-	/**
-	 * We don't need a raster mask band. Each band has a nodata value.
-	 **/
-#ifdef GDALFPOLYGONIZE
-	cplerr = GDALFPolygonize(gdal_band, NULL, hLayer, iPixVal, NULL, NULL, NULL);
-#else
-	cplerr = GDALPolygonize(gdal_band, NULL, hLayer, iPixVal, NULL, NULL, NULL);
-#endif
-
-	if (cplerr != CE_None) {
-		rterror("rt_raster_gdal_polygonize: Could not polygonize GDAL band");
-
-		GDALClose(memdataset);
-		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
-		OGR_Fld_Destroy(hFldDfn);
-		OGR_DS_DeleteLayer(memdatasource, 0);
-		OGRReleaseDataSource(memdatasource);
-
-		return NULL;
-	}
-
-	/**
-	 * Optimization: Apply a OGR SQL filter to the layer to select the
-	 * features different from NODATA value.
-	 *
-	 * Thanks to David Zwarg.
-	 **/
-	if (iBandHasNodataValue) {
-		pszQuery = (char *) rtalloc(50 * sizeof (char));
-		sprintf(pszQuery, "PixelValue != %f", dBandNoData );
-		OGRErr e = OGR_L_SetAttributeFilter(hLayer, pszQuery);
-		if (e != OGRERR_NONE) {
-			rtwarn("Error filtering NODATA values for band. All values will be treated as data values");
-		}
-	}
-	else {
-		pszQuery = NULL;
-	}
-
-	/*********************************************************************
-	 * Transform OGR layers to WKB polygons
-	 * XXX jorgearevalo: GDALPolygonize does not set the coordinate system
-	 * on the output layer. Application code should do this when the layer
-	 * is created, presumably matching the raster coordinate system.
-	 *********************************************************************/
-	nFeatureCount = OGR_L_GetFeatureCount(hLayer, TRUE);
-
-	/* Allocate memory for pols */
-	pols = (rt_geomval) rtalloc(nFeatureCount * sizeof(struct rt_geomval_t));
-
-	if (NULL == pols) {
-		rterror("rt_raster_gdal_polygonize: Could not allocate memory for geomval set");
-
-		GDALClose(memdataset);
-		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
-		OGR_Fld_Destroy(hFldDfn);
-		OGR_DS_DeleteLayer(memdatasource, 0);
-		if (NULL != pszQuery)
-			rtdealloc(pszQuery);
-		OGRReleaseDataSource(memdatasource);
-
-		return NULL;
-	}
-
-	/* initialize GEOS */
-	initGEOS(lwnotice, lwgeom_geos_error);
-
-	RASTER_DEBUGF(3, "storing polygons (%d)", nFeatureCount);
-
-	/* Reset feature reading to start in the first feature */
-	OGR_L_ResetReading(hLayer);
-
-	for (j = 0; j < nFeatureCount; j++) {
-		hFeature = OGR_L_GetNextFeature(hLayer);
-		dValue = OGR_F_GetFieldAsDouble(hFeature, iPixVal);
-
-		hGeom = OGR_F_GetGeometryRef(hFeature);
-		wkbsize = OGR_G_WkbSize(hGeom);
-
-		/* allocate wkb buffer */
-		wkb = rtalloc(sizeof(unsigned char) * wkbsize);
-		if (wkb == NULL) {
-			rterror("rt_raster_gdal_polygonize: Could not allocate memory for WKB buffer");
-
-			OGR_F_Destroy(hFeature);
-			GDALClose(memdataset);
-			if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
-			OGR_Fld_Destroy(hFldDfn);
-			OGR_DS_DeleteLayer(memdatasource, 0);
-			if (NULL != pszQuery)
-				rtdealloc(pszQuery);
-			OGRReleaseDataSource(memdatasource);
-
-			return NULL;
-		}
-
-		/* export WKB with LSB byte order */
-		OGR_G_ExportToWkb(hGeom, wkbNDR, wkb);
-
-		/* convert WKB to LWGEOM */
-		lwgeom = lwgeom_from_wkb(wkb, wkbsize, LW_PARSER_CHECK_NONE);
-
-#if POSTGIS_DEBUG_LEVEL > 3
-		{
-			char *wkt = NULL;
-			OGR_G_ExportToWkt(hGeom, &wkt);
-			RASTER_DEBUGF(4, "GDAL wkt = %s", wkt);
-			CPLFree(wkt);
-
-			d_print_binary_hex("GDAL wkb", wkb, wkbsize);
-		}
-#endif
-
-		/* cleanup unnecessary stuff */
-		rtdealloc(wkb);
-		wkb = NULL;
-		wkbsize = 0;
-
-		OGR_F_Destroy(hFeature);
-
-		/* specify SRID */
-		lwgeom_set_srid(lwgeom, rt_raster_get_srid(raster));
-
-		/*
-			is geometry valid?
-			if not, try to make valid
-		*/
-		do {
-#if POSTGIS_GEOS_VERSION < 33
-			/* nothing can be done if the geometry was invalid if GEOS < 3.3 */
-			break;
-#endif
-
-			ggeom = (GEOSGeometry *) LWGEOM2GEOS(lwgeom);
-			if (ggeom == NULL) {
-				rtwarn("Cannot test geometry for validity");
-				break;
-			}
-
-			isValid = GEOSisValid(ggeom);
-
-			GEOSGeom_destroy(ggeom);
-			ggeom = NULL;
-
-			/* geometry is valid */
-			if (isValid)
-				break;
-
-			RASTER_DEBUG(3, "fixing invalid geometry");
-
-			/* make geometry valid */
-			lwgeomValid = lwgeom_make_valid(lwgeom);
-			if (lwgeomValid == NULL) {
-				rtwarn("Cannot fix invalid geometry");
-				break;
-			}
-
-			lwgeom_free(lwgeom);
-			lwgeom = lwgeomValid;
-		}
-		while (0);
-
-		/* save lwgeom */
-		pols[j].geom = lwgeom_as_lwpoly(lwgeom);
-
-#if POSTGIS_DEBUG_LEVEL > 3
-		{
-			char *wkt = lwgeom_to_wkt(lwgeom, WKT_ISO, DBL_DIG, NULL);
-			RASTER_DEBUGF(4, "LWGEOM wkt = %s", wkt);
-			rtdealloc(wkt);
-
-			size_t lwwkbsize = 0;
-			uint8_t *lwwkb = lwgeom_to_wkb(lwgeom, WKB_ISO | WKB_NDR, &lwwkbsize);
-			if (lwwkbsize) {
-				d_print_binary_hex("LWGEOM wkb", lwwkb, lwwkbsize);
-				rtdealloc(lwwkb);
-			}
-		}
-#endif
-
-		/* set pixel value */
-		pols[j].val = dValue;
-	}
-
-	*pnElements = nFeatureCount;
-
-	RASTER_DEBUG(3, "destroying GDAL MEM raster");
-	GDALClose(memdataset);
-	if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
-
-	RASTER_DEBUG(3, "destroying OGR MEM vector");
-	OGR_Fld_Destroy(hFldDfn);
-	OGR_DS_DeleteLayer(memdatasource, 0);
-	if (NULL != pszQuery) rtdealloc(pszQuery);
-	OGRReleaseDataSource(memdatasource);
-
-	return pols;
-}
-
-/**
- * Get raster's convex hull.
- *
- * The convex hull is typically a 4 vertices (5 to be closed)
- * single ring polygon bearing the raster's rotation and using
- * projection coordinates.
- *
- * @param raster : the raster to get info from
- * @param **hull : pointer to convex hull
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate
-rt_raster_get_convex_hull(rt_raster raster, LWGEOM **hull) {
-	double gt[6] = {0.0};
-	int srid = SRID_UNKNOWN;
-
-	POINTARRAY *pts = NULL;
-	POINT4D p4d;
-
-	assert(hull != NULL);
-	*hull = NULL;
-
-	/* raster is NULL, convex hull is NULL */
-	if (raster == NULL)
-		return ES_NONE;
-
-	/* raster metadata */
-	srid = rt_raster_get_srid(raster);
-	rt_raster_get_geotransform_matrix(raster, gt);
-
-	RASTER_DEBUGF(3, "rt_raster_get_convex_hull: raster is %dx%d", raster->width, raster->height); 
-
-	/* return point or line since at least one of the two dimensions is 0 */
-	if ((!raster->width) || (!raster->height)) {
-		p4d.x = gt[0];
-		p4d.y = gt[3];
-
-		/* return point */
-		if (!raster->width && !raster->height) {
-			LWPOINT *point = lwpoint_make2d(srid, p4d.x, p4d.y);
-			*hull = lwpoint_as_lwgeom(point);
-		}
-		/* return linestring */
-		else {
-			LWLINE *line = NULL;
-			pts = ptarray_construct_empty(0, 0, 2);
-
-			/* first point of line */
-			ptarray_append_point(pts, &p4d, LW_TRUE);
-
-			/* second point of line */
-			if (rt_raster_cell_to_geopoint(
-				raster,
-				rt_raster_get_width(raster), rt_raster_get_height(raster),
-				&p4d.x, &p4d.y,
-				gt
-			) != ES_NONE) {
-				rterror("rt_raster_get_convex_hull: Could not get second point for linestring");
-				return ES_ERROR;
-			}
-			ptarray_append_point(pts, &p4d, LW_TRUE);
-			line = lwline_construct(srid, NULL, pts);
-
-			*hull = lwline_as_lwgeom(line);
-		}
-
-		return ES_NONE;
-	}
-	else {
-		POINTARRAY **rings = NULL;
-		LWPOLY* poly = NULL;
-
-		/* only one ring */
-		rings = (POINTARRAY **) rtalloc(sizeof (POINTARRAY*));
-		if (!rings) {
-			rterror("rt_raster_get_convex_hull: Could not allocate memory for polygon ring");
-			return ES_ERROR;
-		}
-		rings[0] = ptarray_construct(0, 0, 5);
-		/* TODO: handle error on ptarray construction */
-		/* XXX jorgearevalo: the error conditions aren't managed in ptarray_construct */
-		if (!rings[0]) {
-			rterror("rt_raster_get_convex_hull: Could not construct point array");
-			return ES_ERROR;
-		}
-		pts = rings[0];
-
-		/* Upper-left corner (first and last points) */
-		p4d.x = gt[0];
-		p4d.y = gt[3];
-		ptarray_set_point4d(pts, 0, &p4d);
-		ptarray_set_point4d(pts, 4, &p4d);
-
-		/* Upper-right corner (we go clockwise) */
-		rt_raster_cell_to_geopoint(
-			raster,
-			raster->width, 0,
-			&p4d.x, &p4d.y,
-			gt
-		);
-		ptarray_set_point4d(pts, 1, &p4d);
-
-		/* Lower-right corner */
-		rt_raster_cell_to_geopoint(
-			raster,
-			raster->width, raster->height,
-			&p4d.x, &p4d.y,
-			gt
-		);
-		ptarray_set_point4d(pts, 2, &p4d);
-
-		/* Lower-left corner */
-		rt_raster_cell_to_geopoint(
-			raster,
-			0, raster->height,
-			&p4d.x, &p4d.y,
-			gt
-		);
-		ptarray_set_point4d(pts, 3, &p4d);
-
-		poly = lwpoly_construct(srid, 0, 1, rings);
-		*hull = lwpoly_as_lwgeom(poly);
-	}
-
-	return ES_NONE;
-}
-
-/**
- * Get raster's envelope.
- *
- * The envelope is the minimum bounding rectangle of the raster
- *
- * @param raster : the raster to get envelope of
- * @param env : pointer to rt_envelope
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_get_envelope(
-	rt_raster raster,
-	rt_envelope *env
-) {
-	int i;
-	int rtn;
-	int set = 0;
-	double _r[2] = {0.};
-	double _w[2] = {0.};
-	double _gt[6] = {0.};
-
-	assert(raster != NULL);
-	assert(env != NULL);
-
-	rt_raster_get_geotransform_matrix(raster, _gt);
-
-	for (i = 0; i < 4; i++) {
-		switch (i) {
-			case 0:
-				_r[0] = 0;
-				_r[1] = 0;
-				break;
-			case 1:
-				_r[0] = 0;
-				_r[1] = raster->height;
-				break;
-			case 2:
-				_r[0] = raster->width;
-				_r[1] = raster->height;
-				break;
-			case 3:
-				_r[0] = raster->width;
-				_r[1] = 0;
-				break;
-		}
-
-		rtn = rt_raster_cell_to_geopoint(
-			raster,
-			_r[0], _r[1],
-			&(_w[0]), &(_w[1]),
-			_gt
-		);
-		if (rtn != ES_NONE) {
-			rterror("rt_raster_get_envelope: Could not compute spatial coordinates for raster pixel");
-			return ES_ERROR;
-		}
-
-		if (!set) {
-			set = 1;
-			env->MinX = _w[0];
-			env->MaxX = _w[0];
-			env->MinY = _w[1];
-			env->MaxY = _w[1];
-		}
-		else {
-			if (_w[0] < env->MinX)
-				env->MinX = _w[0];
-			else if (_w[0] > env->MaxX)
-				env->MaxX = _w[0];
-
-			if (_w[1] < env->MinY)
-				env->MinY = _w[1];
-			else if (_w[1] > env->MaxY)
-				env->MaxY = _w[1];
-		}
-	}
-
-	return ES_NONE;
-}
-
-/*
- * Compute skewed extent that covers unskewed extent.
- *
- * @param envelope : unskewed extent of type rt_envelope
- * @param skew : pointer to 2-element array (x, y) of skew
- * @param scale : pointer to 2-element array (x, y) of scale
- * @param tolerance : value between 0 and 1 where the smaller the tolerance
- * results in an extent approaching the "minimum" skewed extent.
- * If value <= 0, tolerance = 0.1. If value > 1, tolerance = 1.
- *
- * @return skewed raster who's extent covers unskewed extent, NULL on error
- */
-rt_raster
-rt_raster_compute_skewed_raster(
-	rt_envelope extent,
-	double *skew,
-	double *scale,
-	double tolerance
-) {
-	uint32_t run = 0;
-	uint32_t max_run = 1;
-	double dbl_run = 0;
-
-	int rtn;
-	int covers = 0;
-	rt_raster raster;
-	double _gt[6] = {0};
-	double _igt[6] = {0};
-	int _d[2] = {1, -1};
-	int _dlast = 0;
-	int _dlastpos = 0;
-	double _w[2] = {0};
-	double _r[2] = {0};
-	double _xy[2] = {0};
-	int i;
-	int j;
-	int x;
-	int y;
-
-	LWGEOM *geom = NULL;
-	GEOSGeometry *sgeom = NULL;
-	GEOSGeometry *ngeom = NULL;
-
-	if (
-		(tolerance < 0.) ||
-		FLT_EQ(tolerance, 0.)
-	) {
-		tolerance = 0.1;
-	}
-	else if (tolerance > 1.)
-		tolerance = 1;
-
-	dbl_run = tolerance;
-	while (dbl_run < 10) {
-		dbl_run *= 10.;
-		max_run *= 10;
-	}
-
-	/* scale must be provided */
-	if (scale == NULL)
-		return NULL;
-	for (i = 0; i < 2; i++) {
-		if (FLT_EQ(scale[i], 0)) {
-			rterror("rt_raster_compute_skewed_raster: Scale cannot be zero");
-			return 0;
-		}
-
-		if (i < 1)
-			_gt[1] = fabs(scale[i] * tolerance);
-		else
-			_gt[5] = fabs(scale[i] * tolerance);
-	}
-	/* conform scale-y to be negative */
-	_gt[5] *= -1;
-
-	/* skew not provided or skew is zero, return raster of correct dim and spatial attributes */
-	if (
-		(skew == NULL) || (
-			FLT_EQ(skew[0], 0) &&
-			FLT_EQ(skew[1], 0)
-		)
-	) {
-		int _dim[2] = {
-			(int) fmax((fabs(extent.MaxX - extent.MinX) + (fabs(scale[0]) / 2.)) / fabs(scale[0]), 1),
-			(int) fmax((fabs(extent.MaxY - extent.MinY) + (fabs(scale[1]) / 2.)) / fabs(scale[1]), 1)
-		};
-
-		raster = rt_raster_new(_dim[0], _dim[1]);
-		if (raster == NULL) {
-			rterror("rt_raster_compute_skewed_raster: Could not create output raster");
-			return NULL;
-		}
-
-		rt_raster_set_offsets(raster, extent.MinX, extent.MaxY);
-		rt_raster_set_scale(raster, fabs(scale[0]), -1 * fabs(scale[1]));
-		rt_raster_set_skews(raster, skew[0], skew[1]);
-
-		return raster;
-	}
-
-	/* direction to shift upper-left corner */
-	if (skew[0] > 0.)
-		_d[0] = -1;
-	if (skew[1] < 0.)
-		_d[1] = 1;
-
-	/* geotransform */
-	_gt[0] = extent.UpperLeftX;
-	_gt[2] = skew[0] * tolerance;
-	_gt[3] = extent.UpperLeftY;
-	_gt[4] = skew[1] * tolerance;
-
-	RASTER_DEBUGF(4, "Initial geotransform: %f, %f, %f, %f, %f, %f",
-		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]
-	);
-	RASTER_DEBUGF(4, "Delta: %d, %d", _d[0], _d[1]);
-
-	/* simple raster */
-	if ((raster = rt_raster_new(1, 1)) == NULL) {
-		rterror("rt_raster_compute_skewed_raster: Out of memory allocating extent raster");
-		return NULL;
-	}
-	rt_raster_set_geotransform_matrix(raster, _gt);
-
-	/* get inverse geotransform matrix */
-	if (!GDALInvGeoTransform(_gt, _igt)) {
-		rterror("rt_raster_compute_skewed_raster: Could not compute inverse geotransform matrix");
-		rt_raster_destroy(raster);
-		return NULL;
-	}
-	RASTER_DEBUGF(4, "Inverse geotransform: %f, %f, %f, %f, %f, %f",
-		_igt[0], _igt[1], _igt[2], _igt[3], _igt[4], _igt[5]
-	);
-
-	/* shift along axis */
-	for (i = 0; i < 2; i++) {
-		covers = 0;
-		run = 0;
-
-		RASTER_DEBUGF(3, "Shifting along %s axis", i < 1 ? "X" : "Y");
-
-		do {
-
-			/* prevent possible infinite loop */
-			if (run > max_run) {
-				rterror("rt_raster_compute_skewed_raster: Could not compute skewed extent due to check preventing infinite loop");
-				rt_raster_destroy(raster);
-				return NULL;
-			}
-
-			/*
-				check the four corners that they are covered along the specific axis
-				pixel column should be >= 0
-			*/
-			for (j = 0; j < 4; j++) {
-				switch (j) {
-					/* upper-left */
-					case 0:
-						_xy[0] = extent.MinX;
-						_xy[1] = extent.MaxY;
-						break;
-					/* lower-left */
-					case 1:
-						_xy[0] = extent.MinX;
-						_xy[1] = extent.MinY;
-						break;
-					/* lower-right */
-					case 2:
-						_xy[0] = extent.MaxX;
-						_xy[1] = extent.MinY;
-						break;
-					/* upper-right */
-					case 3:
-						_xy[0] = extent.MaxX;
-						_xy[1] = extent.MaxY;
-						break;
-				}
-
-				rtn = rt_raster_geopoint_to_cell(
-					raster,
-					_xy[0], _xy[1],
-					&(_r[0]), &(_r[1]),
-					_igt
-				);
-				if (rtn != ES_NONE) {
-					rterror("rt_raster_compute_skewed_raster: Could not compute raster pixel for spatial coordinates");
-					rt_raster_destroy(raster);
-					return NULL;
-				}
-
-				RASTER_DEBUGF(4, "Point %d at cell %d x %d", j, (int) _r[0], (int) _r[1]);
-
-				/* raster doesn't cover point */
-				if ((int) _r[i] < 0) {
-					RASTER_DEBUGF(4, "Point outside of skewed extent: %d", j);
-					covers = 0;
-
-					if (_dlastpos != j) {
-						_dlast = (int) _r[i];
-						_dlastpos = j;
-					}
-					else if ((int) _r[i] < _dlast) {
-						RASTER_DEBUG(4, "Point going in wrong direction.  Reversing direction");
-						_d[i] *= -1;
-						_dlastpos = -1;
-						run = 0;
-					}
-
-					break;
-				}
-
-				covers++;
-			}
-
-			if (!covers) {
-				x = 0;
-				y = 0;
-				if (i < 1)
-					x = _d[i] * fabs(_r[i]);
-				else
-					y = _d[i] * fabs(_r[i]);
-
-				rtn = rt_raster_cell_to_geopoint(
-					raster,
-					x, y,
-					&(_w[0]), &(_w[1]),
-					_gt
-				);
-				if (rtn != ES_NONE) {
-					rterror("rt_raster_compute_skewed_raster: Could not compute spatial coordinates for raster pixel");
-					rt_raster_destroy(raster);
-					return NULL;
-				}
-
-				/* adjust ul */
-				if (i < 1)
-					_gt[0] = _w[i];
-				else
-					_gt[3] = _w[i];
-				rt_raster_set_geotransform_matrix(raster, _gt);
-				RASTER_DEBUGF(4, "Shifted geotransform: %f, %f, %f, %f, %f, %f",
-					_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]
-				);
-
-				/* get inverse geotransform matrix */
-				if (!GDALInvGeoTransform(_gt, _igt)) {
-					rterror("rt_raster_compute_skewed_raster: Could not compute inverse geotransform matrix");
-					rt_raster_destroy(raster);
-					return NULL;
-				}
-				RASTER_DEBUGF(4, "Inverse geotransform: %f, %f, %f, %f, %f, %f",
-					_igt[0], _igt[1], _igt[2], _igt[3], _igt[4], _igt[5]
-				);
-			}
-
-			run++;
-		}
-		while (!covers);
-	}
-
-	/* covers test */
-	rtn = rt_raster_geopoint_to_cell(
-		raster,
-		extent.MaxX, extent.MinY,
-		&(_r[0]), &(_r[1]),
-		_igt
-	);
-	if (rtn != ES_NONE) {
-		rterror("rt_raster_compute_skewed_raster: Could not compute raster pixel for spatial coordinates");
-		rt_raster_destroy(raster);
-		return NULL;
-	}
-
-	RASTER_DEBUGF(4, "geopoint %f x %f at cell %d x %d", extent.MaxX, extent.MinY, (int) _r[0], (int) _r[1]);
-
-	raster->width = _r[0];
-	raster->height = _r[1];
-
-	/* initialize GEOS */
-	initGEOS(lwnotice, lwgeom_geos_error);
-
-	/* create reference LWPOLY */
-	{
-		LWPOLY *npoly = rt_util_envelope_to_lwpoly(extent);
-		if (npoly == NULL) {
-			rterror("rt_raster_compute_skewed_raster: Could not build extent's geometry for covers test");
-			rt_raster_destroy(raster);
-			return NULL;
-		}
-
-		ngeom = (GEOSGeometry *) LWGEOM2GEOS(lwpoly_as_lwgeom(npoly));
-		lwpoly_free(npoly);
-	}
-
-	do {
-		covers = 0;
-
-		/* construct sgeom from raster */
-		if ((rt_raster_get_convex_hull(raster, &geom) != ES_NONE) || geom == NULL) {
-			rterror("rt_raster_compute_skewed_raster: Could not build skewed extent's geometry for covers test");
-			GEOSGeom_destroy(ngeom);
-			rt_raster_destroy(raster);
-			return NULL;
-		}
-
-		sgeom = (GEOSGeometry *) LWGEOM2GEOS(geom);
-		lwgeom_free(geom);
-
-		covers = GEOSRelatePattern(sgeom, ngeom, "******FF*");
-		GEOSGeom_destroy(sgeom);
-
-		if (covers == 2) {
-			rterror("rt_raster_compute_skewed_raster: Could not run covers test");
-			GEOSGeom_destroy(ngeom);
-			rt_raster_destroy(raster);
-			return NULL;
-		}
-
-		if (covers)
-			break;
-
-		raster->width++;
-		raster->height++;
-	}
-	while (!covers);
-
-	RASTER_DEBUGF(4, "Skewed extent does cover normal extent with dimensions %d x %d", raster->width, raster->height);
-
-	raster->width = (int) ((((double) raster->width) * fabs(_gt[1]) + fabs(scale[0] / 2.)) / fabs(scale[0]));
-	raster->height = (int) ((((double) raster->height) * fabs(_gt[5]) + fabs(scale[1] / 2.)) / fabs(scale[1]));
-	_gt[1] = fabs(scale[0]);
-	_gt[5] = -1 * fabs(scale[1]);
-	_gt[2] = skew[0];
-	_gt[4] = skew[1];
-	rt_raster_set_geotransform_matrix(raster, _gt);
-
-	/* minimize width/height */
-	for (i = 0; i < 2; i++) {
-		covers = 1;
-		do {
-			if (i < 1)
-				raster->width--;
-			else
-				raster->height--;
-			
-			/* construct sgeom from raster */
-			if ((rt_raster_get_convex_hull(raster, &geom) != ES_NONE) || geom == NULL) {
-				rterror("rt_raster_compute_skewed_raster: Could not build skewed extent's geometry for minimizing dimensions");
-				GEOSGeom_destroy(ngeom);
-				rt_raster_destroy(raster);
-				return NULL;
-			}
-
-			sgeom = (GEOSGeometry *) LWGEOM2GEOS(geom);
-			lwgeom_free(geom);
-
-			covers = GEOSRelatePattern(sgeom, ngeom, "******FF*");
-			GEOSGeom_destroy(sgeom);
-
-			if (covers == 2) {
-				rterror("rt_raster_compute_skewed_raster: Could not run covers test for minimizing dimensions");
-				GEOSGeom_destroy(ngeom);
-				rt_raster_destroy(raster);
-				return NULL;
-			}
-
-			if (!covers) {
-				if (i < 1)
-					raster->width++;
-				else
-					raster->height++;
-
-				break;
-			}
-		}
-		while (covers);
-	}
-
-	GEOSGeom_destroy(ngeom);
-
-	return raster;
-}
-
-/*--------- WKB I/O ---------------------------------------------------*/
-
-static uint8_t
-isMachineLittleEndian(void) {
-    static int endian_check_int = 1; /* dont modify this!!! */
-    /* 0=big endian|xdr --  1=little endian|ndr */
-    return *((uint8_t *) & endian_check_int);
-}
-
-static uint8_t
-read_uint8(const uint8_t** from) {
-    assert(NULL != from);
-
-    return *(*from)++;
-}
-
-/* unused up to now
-static void
-write_uint8(uint8_t** from, uint8_t v)
-{
-    assert(NULL != from);
-
- *(*from)++ = v;
-}
- */
-
-static int8_t
-read_int8(const uint8_t** from) {
-    assert(NULL != from);
-
-    return (int8_t) read_uint8(from);
-}
-
-/* unused up to now
-static void
-write_int8(uint8_t** from, int8_t v)
-{
-    assert(NULL != from);
-
- *(*from)++ = v;
-}
- */
-
-static uint16_t
-read_uint16(const uint8_t** from, uint8_t littleEndian) {
-    uint16_t ret = 0;
-
-    assert(NULL != from);
-
-    if (littleEndian) {
-        ret = (*from)[0] |
-                (*from)[1] << 8;
-    } else {
-        /* big endian */
-        ret = (*from)[0] << 8 |
-                (*from)[1];
-    }
-    *from += 2;
-    return ret;
-}
-
-static void
-write_uint16(uint8_t** to, uint8_t littleEndian, uint16_t v) {
-    assert(NULL != to);
-
-    if (littleEndian) {
-        (*to)[0] = v & 0x00FF;
-        (*to)[1] = v >> 8;
-    } else {
-        (*to)[1] = v & 0x00FF;
-        (*to)[0] = v >> 8;
-    }
-    *to += 2;
-}
-
-static int16_t
-read_int16(const uint8_t** from, uint8_t littleEndian) {
-    assert(NULL != from);
-
-    return read_uint16(from, littleEndian);
-}
-
-/* unused up to now
-static void
-write_int16(uint8_t** to, uint8_t littleEndian, int16_t v)
-{
-    assert(NULL != to);
-
-    if ( littleEndian )
-    {
-        (*to)[0] = v & 0x00FF;
-        (*to)[1] = v >> 8;
-    }
-    else
-    {
-        (*to)[1] = v & 0x00FF;
-        (*to)[0] = v >> 8;
-    }
- *to += 2;
-}
- */
-
-static uint32_t
-read_uint32(const uint8_t** from, uint8_t littleEndian) {
-    uint32_t ret = 0;
-
-    assert(NULL != from);
-
-    if (littleEndian) {
-        ret = (uint32_t) ((*from)[0] & 0xff) |
-                (uint32_t) ((*from)[1] & 0xff) << 8 |
-                (uint32_t) ((*from)[2] & 0xff) << 16 |
-                (uint32_t) ((*from)[3] & 0xff) << 24;
-    } else {
-        /* big endian */
-        ret = (uint32_t) ((*from)[3] & 0xff) |
-                (uint32_t) ((*from)[2] & 0xff) << 8 |
-                (uint32_t) ((*from)[1] & 0xff) << 16 |
-                (uint32_t) ((*from)[0] & 0xff) << 24;
-    }
-
-    *from += 4;
-    return ret;
-}
-
-/* unused up to now
-static void
-write_uint32(uint8_t** to, uint8_t littleEndian, uint32_t v)
-{
-    assert(NULL != to);
-
-    if ( littleEndian )
-    {
-        (*to)[0] = v & 0x000000FF;
-        (*to)[1] = ( v & 0x0000FF00 ) >> 8;
-        (*to)[2] = ( v & 0x00FF0000 ) >> 16;
-        (*to)[3] = ( v & 0xFF000000 ) >> 24;
-    }
-    else
-    {
-        (*to)[3] = v & 0x000000FF;
-        (*to)[2] = ( v & 0x0000FF00 ) >> 8;
-        (*to)[1] = ( v & 0x00FF0000 ) >> 16;
-        (*to)[0] = ( v & 0xFF000000 ) >> 24;
-    }
- *to += 4;
-}
- */
-
-static int32_t
-read_int32(const uint8_t** from, uint8_t littleEndian) {
-    assert(NULL != from);
-
-    return read_uint32(from, littleEndian);
-}
-
-/* unused up to now
-static void
-write_int32(uint8_t** to, uint8_t littleEndian, int32_t v)
-{
-    assert(NULL != to);
-
-    if ( littleEndian )
-    {
-        (*to)[0] = v & 0x000000FF;
-        (*to)[1] = ( v & 0x0000FF00 ) >> 8;
-        (*to)[2] = ( v & 0x00FF0000 ) >> 16;
-        (*to)[3] = ( v & 0xFF000000 ) >> 24;
-    }
-    else
-    {
-        (*to)[3] = v & 0x000000FF;
-        (*to)[2] = ( v & 0x0000FF00 ) >> 8;
-        (*to)[1] = ( v & 0x00FF0000 ) >> 16;
-        (*to)[0] = ( v & 0xFF000000 ) >> 24;
-    }
- *to += 4;
-}
- */
-
-static float
-read_float32(const uint8_t** from, uint8_t littleEndian) {
-
-    union {
-        float f;
-        uint32_t i;
-    } ret;
-
-    ret.i = read_uint32(from, littleEndian);
-
-    return ret.f;
-}
-
-/* unused up to now
-static void
-write_float32(uint8_t** from, uint8_t littleEndian, float f)
-{
-    union {
-        float f;
-        uint32_t i;
-    } u;
-
-    u.f = f;
-    write_uint32(from, littleEndian, u.i);
-}
- */
-
-static double
-read_float64(const uint8_t** from, uint8_t littleEndian) {
-
-    union {
-        double d;
-        uint64_t i;
-    } ret;
-
-    assert(NULL != from);
-
-    if (littleEndian) {
-        ret.i = (uint64_t) ((*from)[0] & 0xff) |
-                (uint64_t) ((*from)[1] & 0xff) << 8 |
-                (uint64_t) ((*from)[2] & 0xff) << 16 |
-                (uint64_t) ((*from)[3] & 0xff) << 24 |
-                (uint64_t) ((*from)[4] & 0xff) << 32 |
-                (uint64_t) ((*from)[5] & 0xff) << 40 |
-                (uint64_t) ((*from)[6] & 0xff) << 48 |
-                (uint64_t) ((*from)[7] & 0xff) << 56;
-    } else {
-        /* big endian */
-        ret.i = (uint64_t) ((*from)[7] & 0xff) |
-                (uint64_t) ((*from)[6] & 0xff) << 8 |
-                (uint64_t) ((*from)[5] & 0xff) << 16 |
-                (uint64_t) ((*from)[4] & 0xff) << 24 |
-                (uint64_t) ((*from)[3] & 0xff) << 32 |
-                (uint64_t) ((*from)[2] & 0xff) << 40 |
-                (uint64_t) ((*from)[1] & 0xff) << 48 |
-                (uint64_t) ((*from)[0] & 0xff) << 56;
-    }
-
-    *from += 8;
-    return ret.d;
-}
-
-/* unused up to now
-static void
-write_float64(uint8_t** to, uint8_t littleEndian, double v)
-{
-    union {
-        double d;
-        uint64_t i;
-    } u;
-
-    assert(NULL != to);
-
-    u.d = v;
-
-    if ( littleEndian )
-    {
-        (*to)[0] =   u.i & 0x00000000000000FFULL;
-        (*to)[1] = ( u.i & 0x000000000000FF00ULL ) >> 8;
-        (*to)[2] = ( u.i & 0x0000000000FF0000ULL ) >> 16;
-        (*to)[3] = ( u.i & 0x00000000FF000000ULL ) >> 24;
-        (*to)[4] = ( u.i & 0x000000FF00000000ULL ) >> 32;
-        (*to)[5] = ( u.i & 0x0000FF0000000000ULL ) >> 40;
-        (*to)[6] = ( u.i & 0x00FF000000000000ULL ) >> 48;
-        (*to)[7] = ( u.i & 0xFF00000000000000ULL ) >> 56;
-    }
-    else
-    {
-        (*to)[7] =   u.i & 0x00000000000000FFULL;
-        (*to)[6] = ( u.i & 0x000000000000FF00ULL ) >> 8;
-        (*to)[5] = ( u.i & 0x0000000000FF0000ULL ) >> 16;
-        (*to)[4] = ( u.i & 0x00000000FF000000ULL ) >> 24;
-        (*to)[3] = ( u.i & 0x000000FF00000000ULL ) >> 32;
-        (*to)[2] = ( u.i & 0x0000FF0000000000ULL ) >> 40;
-        (*to)[1] = ( u.i & 0x00FF000000000000ULL ) >> 48;
-        (*to)[0] = ( u.i & 0xFF00000000000000ULL ) >> 56;
-    }
- *to += 8;
-}
- */
-
-#define BANDTYPE_FLAGS_MASK 0xF0
-#define BANDTYPE_PIXTYPE_MASK 0x0F
-#define BANDTYPE_FLAG_OFFDB     (1<<7)
-#define BANDTYPE_FLAG_HASNODATA (1<<6)
-#define BANDTYPE_FLAG_ISNODATA  (1<<5)
-#define BANDTYPE_FLAG_RESERVED3 (1<<4)
-
-#define BANDTYPE_PIXTYPE(x) ((x)&BANDTYPE_PIXTYPE_MASK)
-#define BANDTYPE_IS_OFFDB(x) ((x)&BANDTYPE_FLAG_OFFDB)
-#define BANDTYPE_HAS_NODATA(x) ((x)&BANDTYPE_FLAG_HASNODATA)
-#define BANDTYPE_IS_NODATA(x) ((x)&BANDTYPE_FLAG_ISNODATA)
-
-/* Read band from WKB as at start of band */
-static rt_band
-rt_band_from_wkb(
-	uint16_t width, uint16_t height,
-	const uint8_t** ptr, const uint8_t* end,
-	uint8_t littleEndian
-) {
-	rt_band band = NULL;
-	int pixbytes = 0;
-	uint8_t type = 0;
-	unsigned long sz = 0;
-	uint32_t v = 0;
-
-	assert(NULL != ptr);
-	assert(NULL != end);
-
-	band = rtalloc(sizeof (struct rt_band_t));
-	if (!band) {
-		rterror("rt_band_from_wkb: Out of memory allocating rt_band during WKB parsing");
-		return NULL;
-	}
-	band->ownsdata = 0; /* assume we don't own data */
-
-	if (end - *ptr < 1) {
-		rterror("rt_band_from_wkb: Premature end of WKB on band reading (%s:%d)",
-			__FILE__, __LINE__);
-		rt_band_destroy(band);
-		return NULL;
-	}
-	type = read_uint8(ptr);
-
-	if ((type & BANDTYPE_PIXTYPE_MASK) >= PT_END) {
-		rterror("rt_band_from_wkb: Invalid pixtype %d", type & BANDTYPE_PIXTYPE_MASK);
-		rt_band_destroy(band);
-		return NULL;
-	}
-
-	band->pixtype = type & BANDTYPE_PIXTYPE_MASK;
-	band->offline = BANDTYPE_IS_OFFDB(type) ? 1 : 0;
-	band->hasnodata = BANDTYPE_HAS_NODATA(type) ? 1 : 0;
-	band->isnodata = band->hasnodata ? (BANDTYPE_IS_NODATA(type) ? 1 : 0) : 0;
-	band->width = width;
-	band->height = height;
-
-	RASTER_DEBUGF(3, " Band pixtype:%s, offline:%d, hasnodata:%d",
-		rt_pixtype_name(band->pixtype),
-		band->offline,
-		band->hasnodata
-	);
-
-	/* Check there's enough bytes to read nodata value */
-	pixbytes = rt_pixtype_size(band->pixtype);
-	if (((*ptr) + pixbytes) >= end) {
-		rterror("rt_band_from_wkb: Premature end of WKB on band novalue reading");
-		rt_band_destroy(band);
-		return NULL;
-	}
-
-	/* Read nodata value */
-	switch (band->pixtype) {
-		case PT_1BB: {
-			band->nodataval = ((int) read_uint8(ptr)) & 0x01;
-			break;
-		}
-		case PT_2BUI: {
-			band->nodataval = ((int) read_uint8(ptr)) & 0x03;
-			break;
-		}
-		case PT_4BUI: {
-			band->nodataval = ((int) read_uint8(ptr)) & 0x0F;
-			break;
-		}
-		case PT_8BSI: {
-			band->nodataval = read_int8(ptr);
-			break;
-		}
-		case PT_8BUI: {
-			band->nodataval = read_uint8(ptr);
-			break;
-		}
-		case PT_16BSI: {
-			band->nodataval = read_int16(ptr, littleEndian);
-			break;
-		}
-		case PT_16BUI: {
-			band->nodataval = read_uint16(ptr, littleEndian);
-			break;
-		}
-		case PT_32BSI: {
-			band->nodataval = read_int32(ptr, littleEndian);
-			break;
-		}
-		case PT_32BUI: {
-			band->nodataval = read_uint32(ptr, littleEndian);
-			break;
-		}
-		case PT_32BF: {
-			band->nodataval = read_float32(ptr, littleEndian);
-			break;
-		}
-		case PT_64BF: {
-			band->nodataval = read_float64(ptr, littleEndian);
-			break;
-		}
-		default: {
-			rterror("rt_band_from_wkb: Unknown pixeltype %d", band->pixtype);
-			rt_band_destroy(band);
-			return NULL;
-		}
-	}
-
-	RASTER_DEBUGF(3, " Nodata value: %g, pixbytes: %d, ptr @ %p, end @ %p",
-		band->nodataval, pixbytes, *ptr, end);
-
-	if (band->offline) {
-		if (((*ptr) + 1) >= end) {
-			rterror("rt_band_from_wkb: Premature end of WKB on offline "
-				"band data bandNum reading (%s:%d)",
-				__FILE__, __LINE__
-			);
-			rt_band_destroy(band);
-			return NULL;
-		}
-
-		band->data.offline.bandNum = read_int8(ptr);
-		band->data.offline.mem = NULL;
-
-		{
-			/* check we have a NULL-termination */
-			sz = 0;
-			while ((*ptr)[sz] && &((*ptr)[sz]) < end) ++sz;
-			if (&((*ptr)[sz]) >= end) {
-				rterror("rt_band_from_wkb: Premature end of WKB on band offline path reading");
-				rt_band_destroy(band);
-				return NULL;
-			}
-
-			/* we never own offline band data */
-			band->ownsdata = 0;
-
-			band->data.offline.path = rtalloc(sz + 1);
-			if (band->data.offline.path == NULL) {
-				rterror("rt_band_from_wkb: Out of memory allocating for offline path of band");
-				rt_band_destroy(band);
-				return NULL;
-			}
-
-			memcpy(band->data.offline.path, *ptr, sz);
-			band->data.offline.path[sz] = '\0';
-
-			RASTER_DEBUGF(3, "OFFDB band path is %s (size is %d)",
-				band->data.offline.path, sz);
-
-			*ptr += sz + 1;
-
-			/* TODO: How could we know if the offline band is a nodata band? */
-			/* trust in the force */
-			/*band->isnodata = FALSE;*/
-		}
-
-		return band;
-	}
-
-	/* This is an on-disk band */
-	sz = width * height * pixbytes;
-	if (((*ptr) + sz) > end) {
-		rterror("rt_band_from_wkb: Premature end of WKB on band data reading (%s:%d)",
-			__FILE__, __LINE__);
-		rt_band_destroy(band);
-		return NULL;
-	}
-
-	band->data.mem = rtalloc(sz);
-	if (!band->data.mem) {
-		rterror("rt_band_from_wkb: Out of memory during band creation in WKB parser");
-		rt_band_destroy(band);
-		return NULL;
-	}
-
-	band->ownsdata = 1; /* we DO own this data!!! */
-	memcpy(band->data.mem, *ptr, sz);
-	*ptr += sz;
-
-	/* Should now flip values if > 8bit and
-	 * littleEndian != isMachineLittleEndian */
-	if (pixbytes > 1) {
-		if (isMachineLittleEndian() != littleEndian) {
-			void (*flipper)(uint8_t*) = 0;
-			uint8_t *flipme = NULL;
-
-			if (pixbytes == 2)
-				flipper = flip_endian_16;
-			else if (pixbytes == 4)
-				flipper = flip_endian_32;
-			else if (pixbytes == 8)
-				flipper = flip_endian_64;
-			else {
-				rterror("rt_band_from_wkb: Unexpected pix bytes %d", pixbytes);
-				rt_band_destroy(band);
-				return NULL;
-			}
-
-			flipme = band->data.mem;
-			sz = width * height;
-			for (v = 0; v < sz; ++v) {
-				flipper(flipme);
-				flipme += pixbytes;
-			}
-		}
-	}
-	/* And should check for invalid values for < 8bit types */
-	else if (
-		band->pixtype == PT_1BB ||
-		band->pixtype == PT_2BUI ||
-		band->pixtype == PT_4BUI
-	) {
-		uint8_t maxVal = band->pixtype == PT_1BB ? 1 : (band->pixtype == PT_2BUI ? 3 : 15);
-		uint8_t val;
-
-		sz = width*height;
-		for (v = 0; v < sz; ++v) {
-			val = ((uint8_t*) band->data.mem)[v];
-			if (val > maxVal) {
-				rterror("rt_band_from_wkb: Invalid value %d for pixel of type %s",
-					val, rt_pixtype_name(band->pixtype));
-				rt_band_destroy(band);
-				return NULL;
-			}
-		}
-	}
-
-	/* And we should check if the band is a nodata band */
-	/* TODO: No!! This is too slow */
-	/*rt_band_check_is_nodata(band);*/
-
-	return band;
-}
-
-/* -4 for size, +1 for endian */
-#define RT_WKB_HDR_SZ (sizeof(struct rt_raster_serialized_t)-4+1)
-
-rt_raster
-rt_raster_from_wkb(const uint8_t* wkb, uint32_t wkbsize) {
-	const uint8_t *ptr = wkb;
-	const uint8_t *wkbend = NULL;
-	rt_raster rast = NULL;
-	uint8_t endian = 0;
-	uint16_t version = 0;
-	uint16_t i = 0;
-	uint16_t j = 0;
-
-	assert(NULL != ptr);
-
-	/* Check that wkbsize is >= sizeof(rt_raster_serialized) */
-	if (wkbsize < RT_WKB_HDR_SZ) {
-		rterror("rt_raster_from_wkb: wkb size (%d)  < min size (%d)",
-			wkbsize, RT_WKB_HDR_SZ);
-		return NULL;
-	}
-	wkbend = wkb + wkbsize;
-
-	RASTER_DEBUGF(3, "Parsing header from wkb position %d (expected 0)",
-		d_binptr_to_pos(ptr, wkbend, wkbsize));
-
-	CHECK_BINPTR_POSITION(ptr, wkbend, wkbsize, 0);
-
-	/* Read endianness */
-	endian = *ptr;
-	ptr += 1;
-
-	/* Read version of protocol */
-	version = read_uint16(&ptr, endian);
-	if (version != 0) {
-		rterror("rt_raster_from_wkb: WKB version %d unsupported", version);
-		return NULL;
-	}
-
-	/* Read other components of raster header */
-	rast = (rt_raster) rtalloc(sizeof (struct rt_raster_t));
-	if (!rast) {
-		rterror("rt_raster_from_wkb: Out of memory allocating raster for wkb input");
-		return NULL;
-	}
-
-	rast->numBands = read_uint16(&ptr, endian);
-	rast->scaleX = read_float64(&ptr, endian);
-	rast->scaleY = read_float64(&ptr, endian);
-	rast->ipX = read_float64(&ptr, endian);
-	rast->ipY = read_float64(&ptr, endian);
-	rast->skewX = read_float64(&ptr, endian);
-	rast->skewY = read_float64(&ptr, endian);
-	rast->srid = clamp_srid(read_int32(&ptr, endian));
-	rast->width = read_uint16(&ptr, endian);
-	rast->height = read_uint16(&ptr, endian);
-
-	/* Consistency checking, should have been checked before */
-	assert(ptr <= wkbend);
-
-	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster numBands: %d",
-		rast->numBands);
-	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster scale: %gx%g",
-		rast->scaleX, rast->scaleY);
-	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster ip: %gx%g",
-		rast->ipX, rast->ipY);
-	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster skew: %gx%g",
-		rast->skewX, rast->skewY);
-	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster srid: %d",
-		rast->srid);
-	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster dims: %dx%d",
-		rast->width, rast->height);
-	RASTER_DEBUGF(3, "Parsing raster header finished at wkb position %d (expected 61)",
-		d_binptr_to_pos(ptr, wkbend, wkbsize));
-
-	CHECK_BINPTR_POSITION(ptr, wkbend, wkbsize, 61);
-
-	/* Read all bands of raster */
-	if (!rast->numBands) {
-		/* Here ptr should have been left to right after last used byte */
-		if (ptr < wkbend) {
-			rtwarn("%d bytes of WKB remained unparsed", wkbend - ptr);
-		}
-		else if (ptr > wkbend) {
-			/* Easier to get a segfault before I guess */
-			rtwarn("We parsed %d bytes more then available!", ptr - wkbend);
-		}
-
-		rast->bands = NULL;
-		return rast;
-	}
-
-	/* Now read the bands */
-	rast->bands = (rt_band*) rtalloc(sizeof(rt_band) * rast->numBands);
-	if (!rast->bands) {
-		rterror("rt_raster_from_wkb: Out of memory allocating bands for WKB raster decoding");
-		rt_raster_destroy(rast);
-		return NULL;
-	}
-
-	/* ptr should now point to start of first band */
-	/* we should have checked this before */
-	assert(ptr <= wkbend);
-
-	for (i = 0; i < rast->numBands; ++i) {
-		RASTER_DEBUGF(3, "Parsing band %d from wkb position %d", i,
-			d_binptr_to_pos(ptr, wkbend, wkbsize));
-
-		rt_band band = rt_band_from_wkb(rast->width, rast->height,
-			&ptr, wkbend, endian);
-		if (!band) {
-			rterror("rt_raster_from_wkb: Error reading WKB form of band %d", i);
-			for (j = 0; j < i; j++) rt_band_destroy(rast->bands[j]);
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-
-		band->raster = rast;
-		rast->bands[i] = band;
-	}
-
-	/* Here ptr should have been left to right after last used byte */
-	if (ptr < wkbend) {
-		rtwarn("%d bytes of WKB remained unparsed", wkbend - ptr);
-	}
-	else if (ptr > wkbend) {
-		/* Easier to get a segfault before I guess */
-		rtwarn("We parsed %d bytes more then available!", ptr - wkbend);
-	}
-
-	return rast;
-}
-
-rt_raster
-rt_raster_from_hexwkb(const char* hexwkb, uint32_t hexwkbsize) {
-	rt_raster ret = NULL;
-	uint8_t* wkb = NULL;
-	uint32_t wkbsize = 0;
-	uint32_t i = 0;
-
-	assert(NULL != hexwkb);
-
-	RASTER_DEBUGF(3, "input wkb: %s", hexwkb);
-	RASTER_DEBUGF(3, "input wkbsize: %d", hexwkbsize);
-
-	if (hexwkbsize % 2) {
-		rterror("rt_raster_from_hexwkb: Raster HEXWKB input must have an even number of characters");
-		return NULL;
-	}
-	wkbsize = hexwkbsize / 2;
-
-	wkb = rtalloc(wkbsize);
-	if (!wkb) {
-		rterror("rt_raster_from_hexwkb: Out of memory allocating memory for decoding HEXWKB");
-		return NULL;
-	}
-
-	/* parse full hex */
-	for (i = 0; i < wkbsize; ++i) {
-		wkb[i] = parse_hex((char*) & (hexwkb[i * 2]));
-	}
-
-	ret = rt_raster_from_wkb(wkb, wkbsize);
-	rtdealloc(wkb); /* as long as rt_raster_from_wkb copies memory */
-
-	return ret;
-}
-
-static uint32_t
-rt_raster_wkb_size(rt_raster raster, int outasin) {
-	uint32_t size = RT_WKB_HDR_SZ;
-	uint16_t i = 0;
-
-	assert(NULL != raster);
-
-	RASTER_DEBUGF(3, "rt_raster_wkb_size: computing size for %d bands",
-		raster->numBands);
-
-	for (i = 0; i < raster->numBands; ++i) {
-		rt_band band = raster->bands[i];
-		rt_pixtype pixtype = band->pixtype;
-		int pixbytes = rt_pixtype_size(pixtype);
-
-		RASTER_DEBUGF(3, "rt_raster_wkb_size: adding size of band %d", i);
-
-		if (pixbytes < 1) {
-			rterror("rt_raster_wkb_size: Corrupted band: unknown pixtype");
-			return 0;
-		}
-
-		/* Add space for band type */
-		size += 1;
-
-		/* Add space for nodata value */
-		size += pixbytes;
-
-		if (!outasin && band->offline) {
-			/* Add space for band number */
-			size += 1;
-
-			/* Add space for null-terminated path */
-			size += strlen(band->data.offline.path) + 1;
-		}
-		else {
-			/* Add space for actual data */
-			size += pixbytes * raster->width * raster->height;
-		}
-	}
-
-	return size;
-}
-
-/**
- * Return this raster in WKB form
- *
- * @param raster : the raster
- * @param outasin : if TRUE, out-db bands are treated as in-db
- * @param wkbsize : will be set to the size of returned wkb form
- *
- * @return WKB of raster or NULL on error
- */
-uint8_t *
-rt_raster_to_wkb(rt_raster raster, int outasin, uint32_t *wkbsize) {
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	const uint8_t *wkbend = NULL;
-#endif
-
-	uint8_t *wkb = NULL;
-	uint8_t *ptr = NULL;
-	uint16_t i = 0;
-	uint8_t littleEndian = isMachineLittleEndian();
-
-	assert(NULL != raster);
-	assert(NULL != wkbsize);
-
-	RASTER_DEBUG(2, "rt_raster_to_wkb: about to call rt_raster_wkb_size");
-
-	*wkbsize = rt_raster_wkb_size(raster, outasin);
-	RASTER_DEBUGF(3, "rt_raster_to_wkb: found size: %d", *wkbsize);
-
-	wkb = (uint8_t*) rtalloc(*wkbsize);
-	if (!wkb) {
-		rterror("rt_raster_to_wkb: Out of memory allocating WKB for raster");
-		return NULL;
-	}
-
-	ptr = wkb;
-
-#if POSTGIS_DEBUG_LEVEL > 2
-	wkbend = ptr + (*wkbsize);
-#endif
-	RASTER_DEBUGF(3, "Writing raster header to wkb on position %d (expected 0)",
-		d_binptr_to_pos(ptr, wkbend, *wkbsize));
-
-	/* Write endianness */
-	*ptr = littleEndian;
-	ptr += 1;
-
-	/* Write version(size - (end - ptr)) */
-	write_uint16(&ptr, littleEndian, 0);
-
-	/* Copy header (from numBands up) */
-	memcpy(ptr, &(raster->numBands), sizeof (struct rt_raster_serialized_t) - 6);
-	ptr += sizeof (struct rt_raster_serialized_t) - 6;
-
-	RASTER_DEBUGF(3, "Writing bands header to wkb position %d (expected 61)",
-		d_binptr_to_pos(ptr, wkbend, *wkbsize));
-
-	/* Serialize bands now */
-	for (i = 0; i < raster->numBands; ++i) {
-		rt_band band = raster->bands[i];
-		rt_pixtype pixtype = band->pixtype;
-		int pixbytes = rt_pixtype_size(pixtype);
-
-		RASTER_DEBUGF(3, "Writing WKB for band %d", i);
-		RASTER_DEBUGF(3, "Writing band pixel type to wkb position %d",
-			d_binptr_to_pos(ptr, wkbend, *wkbsize));
-
-		if (pixbytes < 1) {
-			rterror("rt_raster_to_wkb: Corrupted band: unknown pixtype");
-			rtdealloc(wkb);
-			return NULL;
-		}
-
-		/* Add band type */
-		*ptr = band->pixtype;
-		if (!outasin && band->offline) *ptr |= BANDTYPE_FLAG_OFFDB;
-		if (band->hasnodata) *ptr |= BANDTYPE_FLAG_HASNODATA;
-		if (band->isnodata) *ptr |= BANDTYPE_FLAG_ISNODATA;
-		ptr += 1;
-
-#if 0
-		/* no padding required for WKB */
-		/* Add padding (if needed) */
-		if (pixbytes > 1) {
-			memset(ptr, '\0', pixbytes - 1);
-			ptr += pixbytes - 1;
-		}
-		/* Consistency checking (ptr is pixbytes-aligned) */
-		assert(!(((uint64_t) ptr) % pixbytes));
-#endif
-
-		RASTER_DEBUGF(3, "Writing band nodata to wkb position %d",
-			d_binptr_to_pos(ptr, wkbend, *wkbsize));
-
-		/* Add nodata value */
-		switch (pixtype) {
-			case PT_1BB:
-			case PT_2BUI:
-			case PT_4BUI:
-			case PT_8BUI: {
-				uint8_t v = band->nodataval;
-				*ptr = v;
-				ptr += 1;
-				break;
-			}
-			case PT_8BSI: {
-				int8_t v = band->nodataval;
-				*ptr = v;
-				ptr += 1;
-				break;
-			}
-			case PT_16BSI:
-			case PT_16BUI: {
-				uint16_t v = band->nodataval;
-				memcpy(ptr, &v, 2);
-				ptr += 2;
-				break;
-			}
-			case PT_32BSI:
-			case PT_32BUI: {
-				uint32_t v = band->nodataval;
-				memcpy(ptr, &v, 4);
-				ptr += 4;
-				break;
-			}
-			case PT_32BF: {
-				float v = band->nodataval;
-				memcpy(ptr, &v, 4);
-				ptr += 4;
-				break;
-			}
-			case PT_64BF: {
-				memcpy(ptr, &band->nodataval, 8);
-				ptr += 8;
-				break;
-			}
-			default:
-				rterror("rt_raster_to_wkb: Fatal error caused by unknown pixel type. Aborting.");
-				rtdealloc(wkb);
-				abort(); /* shoudn't happen */
-				return 0;
-		}
-
-#if 0
-		/* no padding for WKB */
-		/* Consistency checking (ptr is pixbytes-aligned) */
-		assert(!((uint64_t) ptr % pixbytes));
-#endif
-
-		if (!outasin && band->offline) {
-			/* Write band number */
-			*ptr = band->data.offline.bandNum;
-			ptr += 1;
-
-			/* Write path */
-			strcpy((char*) ptr, band->data.offline.path);
-			ptr += strlen(band->data.offline.path) + 1;
-		}
-		else {
-			/* Write data */
-			uint32_t datasize = raster->width * raster->height * pixbytes;
-			RASTER_DEBUGF(4, "rt_raster_to_wkb: Copying %d bytes", datasize);
-
-			memcpy(ptr, rt_band_get_data(band), datasize);
-
-			ptr += datasize;
-		}
-
-#if 0
-		/* no padding for WKB */
-		/* Pad up to 8-bytes boundary */
-		while ((uint64_t) ptr % 8) {
-			*ptr = 0;
-			++ptr;
-		}
-
-		/* Consistency checking (ptr is pixbytes-aligned) */
-		assert(!((uint64_t) ptr % pixbytes));
-#endif
-	}
-
-	return wkb;
-}
-
-char *
-rt_raster_to_hexwkb(rt_raster raster, int outasin, uint32_t *hexwkbsize) {
-	uint8_t *wkb = NULL;
-	char* hexwkb = NULL;
-	uint32_t i = 0;
-	uint32_t wkbsize = 0;
-
-	assert(NULL != raster);
-	assert(NULL != hexwkbsize);
-
-	RASTER_DEBUG(2, "rt_raster_to_hexwkb: calling rt_raster_to_wkb");
-
-	wkb = rt_raster_to_wkb(raster, outasin, &wkbsize);
-
-	RASTER_DEBUG(3, "rt_raster_to_hexwkb: rt_raster_to_wkb returned");
-
-	*hexwkbsize = wkbsize * 2; /* hex is 2 times bytes */
-	hexwkb = (char*) rtalloc((*hexwkbsize) + 1);
-	if (!hexwkb) {
-		rterror("rt_raster_to_hexwkb: Out of memory hexifying raster WKB");
-		rtdealloc(wkb);
-		return NULL;
-	}
-	hexwkb[*hexwkbsize] = '\0'; /* Null-terminate */
-
-	for (i = 0; i < wkbsize; ++i) {
-		deparse_hex(wkb[i], &(hexwkb[2 * i]));
-	}
-
-	rtdealloc(wkb); /* we don't need this anymore */
-
-	RASTER_DEBUGF(3, "rt_raster_to_hexwkb: output wkb: %s", hexwkb);
-	return hexwkb;
-}
-
-/*--------- Serializer/Deserializer --------------------------------------*/
-
-static uint32_t
-rt_raster_serialized_size(rt_raster raster) {
-	uint32_t size = sizeof (struct rt_raster_serialized_t);
-	uint16_t i = 0;
-
-	assert(NULL != raster);
-
-	RASTER_DEBUGF(3, "Serialized size with just header:%d - now adding size of %d bands",
-		size, raster->numBands);
-
-	for (i = 0; i < raster->numBands; ++i) {
-		rt_band band = raster->bands[i];
-		rt_pixtype pixtype = band->pixtype;
-		int pixbytes = rt_pixtype_size(pixtype);
-
-		if (pixbytes < 1) {
-			rterror("rt_raster_serialized_size: Corrupted band: unknown pixtype");
-			return 0;
-		}
-
-		/* Add space for band type, hasnodata flag and data padding */
-		size += pixbytes;
-
-		/* Add space for nodata value */
-		size += pixbytes;
-
-		if (band->offline) {
-			/* Add space for band number */
-			size += 1;
-
-			/* Add space for null-terminated path */
-			size += strlen(band->data.offline.path) + 1;
-		}
-		else {
-			/* Add space for raster band data */
-			size += pixbytes * raster->width * raster->height;
-		}
-
-		RASTER_DEBUGF(3, "Size before alignment is %d", size);
-
-		/* Align size to 8-bytes boundary (trailing padding) */
-		/* XXX jorgearevalo: bug here. If the size is actually 8-bytes aligned,
-		   this line will add 8 bytes trailing padding, and it's not necessary */
-		/*size += 8 - (size % 8);*/
-		if (size % 8)
-			size += 8 - (size % 8);
-
-		RASTER_DEBUGF(3, "Size after alignment is %d", size);
-	}
-
-	return size;
-}
-
-/**
- * Return this raster in serialized form.
- * Memory (band data included) is copied from rt_raster.
- *
- * Serialized form is documented in doc/RFC1-SerializedFormat.
- */
-void*
-rt_raster_serialize(rt_raster raster) {
-	uint32_t size = 0;
-	uint8_t* ret = NULL;
-	uint8_t* ptr = NULL;
-	uint16_t i = 0;
-
-	assert(NULL != raster);
-
-	size = rt_raster_serialized_size(raster);
-	ret = (uint8_t*) rtalloc(size);
-	if (!ret) {
-		rterror("rt_raster_serialize: Out of memory allocating %d bytes for serializing a raster", size);
-		return NULL;
-	}
-	memset(ret, '-', size);
-	ptr = ret;
-
-	RASTER_DEBUGF(3, "sizeof(struct rt_raster_serialized_t):%u",
-		sizeof (struct rt_raster_serialized_t));
-	RASTER_DEBUGF(3, "sizeof(struct rt_raster_t):%u",
-		sizeof (struct rt_raster_t));
-	RASTER_DEBUGF(3, "serialized size:%lu", (long unsigned) size);
-
-	/* Set size */
-	/* NOTE: Value of rt_raster.size may be updated in
-	 * returned object, for instance, by rt_pg layer to
-	 * store value calculated by SET_VARSIZE.
-	 */
-	raster->size = size;
-
-	/* Set version */
-	raster->version = 0;
-
-	/* Copy header */
-	memcpy(ptr, raster, sizeof (struct rt_raster_serialized_t));
-
-	RASTER_DEBUG(3, "Start hex dump of raster being serialized using 0x2D to mark non-written bytes");
-
-#if POSTGIS_DEBUG_LEVEL > 2
-	uint8_t* dbg_ptr = ptr;
-	d_print_binary_hex("HEADER", dbg_ptr, size);
-#endif
-
-	ptr += sizeof (struct rt_raster_serialized_t);
-
-	/* Serialize bands now */
-	for (i = 0; i < raster->numBands; ++i) {
-		rt_band band = raster->bands[i];
-		assert(NULL != band);
-
-		rt_pixtype pixtype = band->pixtype;
-		int pixbytes = rt_pixtype_size(pixtype);
-		if (pixbytes < 1) {
-			rterror("rt_raster_serialize: Corrupted band: unknown pixtype");
-			rtdealloc(ret);
-			return NULL;
-		}
-
-		/* Add band type */
-		*ptr = band->pixtype;
-		if (band->offline) {
-			*ptr |= BANDTYPE_FLAG_OFFDB;
-		}
-		if (band->hasnodata) {
-			*ptr |= BANDTYPE_FLAG_HASNODATA;
-		}
-
-		if (band->isnodata) {
-			*ptr |= BANDTYPE_FLAG_ISNODATA;
-		}
-
-#if POSTGIS_DEBUG_LEVEL > 2
-		d_print_binary_hex("PIXTYPE", dbg_ptr, size);
-#endif
-
-		ptr += 1;
-
-		/* Add padding (if needed) */
-		if (pixbytes > 1) {
-			memset(ptr, '\0', pixbytes - 1);
-			ptr += pixbytes - 1;
-		}
-
-#if POSTGIS_DEBUG_LEVEL > 2
-		d_print_binary_hex("PADDING", dbg_ptr, size);
-#endif
-
-		/* Consistency checking (ptr is pixbytes-aligned) */
-		assert(!((ptr - ret) % pixbytes));
-
-		/* Add nodata value */
-		switch (pixtype) {
-			case PT_1BB:
-			case PT_2BUI:
-			case PT_4BUI:
-			case PT_8BUI: {
-				uint8_t v = band->nodataval;
-				*ptr = v;
-				ptr += 1;
-				break;
-			}
-			case PT_8BSI: {
-				int8_t v = band->nodataval;
-				*ptr = v;
-				ptr += 1;
-				break;
-			}
-			case PT_16BSI:
-			case PT_16BUI: {
-				uint16_t v = band->nodataval;
-				memcpy(ptr, &v, 2);
-				ptr += 2;
-				break;
-			}
-			case PT_32BSI:
-			case PT_32BUI: {
-				uint32_t v = band->nodataval;
-				memcpy(ptr, &v, 4);
-				ptr += 4;
-				break;
-			}
-			case PT_32BF: {
-				float v = band->nodataval;
-				memcpy(ptr, &v, 4);
-				ptr += 4;
-				break;
-			}
-			case PT_64BF: {
-				memcpy(ptr, &band->nodataval, 8);
-				ptr += 8;
-				break;
-			}
-			default:
-				rterror("rt_raster_serialize: Fatal error caused by unknown pixel type. Aborting.");
-				rtdealloc(ret);
-				return NULL;
-		}
-
-		/* Consistency checking (ptr is pixbytes-aligned) */
-		assert(!((ptr - ret) % pixbytes));
-
-#if POSTGIS_DEBUG_LEVEL > 2
-		d_print_binary_hex("nodata", dbg_ptr, size);
-#endif
-
-		if (band->offline) {
-			/* Write band number */
-			*ptr = band->data.offline.bandNum;
-			ptr += 1;
-
-			/* Write path */
-			strcpy((char*) ptr, band->data.offline.path);
-			ptr += strlen(band->data.offline.path) + 1;
-		}
-		else {
-			/* Write data */
-			uint32_t datasize = raster->width * raster->height * pixbytes;
-			memcpy(ptr, band->data.mem, datasize);
-			ptr += datasize;
-		}
-
-#if POSTGIS_DEBUG_LEVEL > 2
-		d_print_binary_hex("BAND", dbg_ptr, size);
-#endif
-
-		/* Pad up to 8-bytes boundary */
-		while ((uintptr_t) ptr % 8) {
-			*ptr = 0;
-			++ptr;
-
-			RASTER_DEBUGF(3, "PAD at %d", (uintptr_t) ptr % 8);
-		}
-
-		/* Consistency checking (ptr is pixbytes-aligned) */
-		assert(!((ptr - ret) % pixbytes));
-	} /* for-loop over bands */
-
-#if POSTGIS_DEBUG_LEVEL > 2
-		d_print_binary_hex("SERIALIZED RASTER", dbg_ptr, size);
-#endif
-	return ret;
-}
-
-/**
- * Return a raster from a serialized form.
- *
- * Serialized form is documented in doc/RFC1-SerializedFormat.
- *
- * NOTE: the raster will contain pointer to the serialized
- * form (including band data), which must be kept alive.
- */
-rt_raster
-rt_raster_deserialize(void* serialized, int header_only) {
-	rt_raster rast = NULL;
-	const uint8_t *ptr = NULL;
-	const uint8_t *beg = NULL;
-	uint16_t i = 0;
-	uint16_t j = 0;
-	uint8_t littleEndian = isMachineLittleEndian();
-
-	assert(NULL != serialized);
-
-	RASTER_DEBUG(2, "rt_raster_deserialize: Entering...");
-
-	/* NOTE: Value of rt_raster.size may be different
-	 * than actual size of raster data being read.
-	 * See note on SET_VARSIZE in rt_raster_serialize function above.
-	 */
-
-	/* Allocate memory for deserialized raster header */ 
-	RASTER_DEBUG(3, "rt_raster_deserialize: Allocating memory for deserialized raster header");
-	rast = (rt_raster) rtalloc(sizeof (struct rt_raster_t));
-	if (!rast) {
-		rterror("rt_raster_deserialize: Out of memory allocating raster for deserialization");
-		return NULL;
-	}
-
-	/* Deserialize raster header */
-	RASTER_DEBUG(3, "rt_raster_deserialize: Deserialize raster header");
-	memcpy(rast, serialized, sizeof (struct rt_raster_serialized_t));
-
-	if (0 == rast->numBands || header_only) {
-		rast->bands = 0;
-		return rast;
-	}
-
-	beg = (const uint8_t*) serialized;
-
-	/* Allocate registry of raster bands */
-	RASTER_DEBUG(3, "rt_raster_deserialize: Allocating memory for bands");
-	rast->bands = rtalloc(rast->numBands * sizeof (rt_band));
-	if (rast->bands == NULL) {
-		rterror("rt_raster_deserialize: Out of memory allocating bands");
-		rtdealloc(rast);
-		return NULL;
-	}
-
-	RASTER_DEBUGF(3, "rt_raster_deserialize: %d bands", rast->numBands);
-
-	/* Move to the beginning of first band */
-	ptr = beg;
-	ptr += sizeof (struct rt_raster_serialized_t);
-
-	/* Deserialize bands now */
-	for (i = 0; i < rast->numBands; ++i) {
-		rt_band band = NULL;
-		uint8_t type = 0;
-		int pixbytes = 0;
-
-		band = rtalloc(sizeof(struct rt_band_t));
-		if (!band) {
-			rterror("rt_raster_deserialize: Out of memory allocating rt_band during deserialization");
-			for (j = 0; j < i; j++) rt_band_destroy(rast->bands[j]);
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-
-		rast->bands[i] = band;
-
-		type = *ptr;
-		ptr++;
-		band->pixtype = type & BANDTYPE_PIXTYPE_MASK;
-
-		RASTER_DEBUGF(3, "rt_raster_deserialize: band %d with pixel type %s", i, rt_pixtype_name(band->pixtype));
-
-		band->offline = BANDTYPE_IS_OFFDB(type) ? 1 : 0;
-		band->hasnodata = BANDTYPE_HAS_NODATA(type) ? 1 : 0;
-		band->isnodata = band->hasnodata ? (BANDTYPE_IS_NODATA(type) ? 1 : 0) : 0;
-		band->width = rast->width;
-		band->height = rast->height;
-		band->ownsdata = 0; /* we do NOT own this data!!! */
-		band->raster = rast;
-
-		/* Advance by data padding */
-		pixbytes = rt_pixtype_size(band->pixtype);
-		ptr += pixbytes - 1;
-
-		/* Read nodata value */
-		switch (band->pixtype) {
-			case PT_1BB: {
-				band->nodataval = ((int) read_uint8(&ptr)) & 0x01;
-				break;
-			}
-			case PT_2BUI: {
-				band->nodataval = ((int) read_uint8(&ptr)) & 0x03;
-				break;
-			}
-			case PT_4BUI: {
-				band->nodataval = ((int) read_uint8(&ptr)) & 0x0F;
-				break;
-			}
-			case PT_8BSI: {
-				band->nodataval = read_int8(&ptr);
-				break;
-			}
-			case PT_8BUI: {
-				band->nodataval = read_uint8(&ptr);
-				break;
-			}
-			case PT_16BSI: {
-				band->nodataval = read_int16(&ptr, littleEndian);
-				break;
-			}
-			case PT_16BUI: {
-				band->nodataval = read_uint16(&ptr, littleEndian);
-				break;
-			}
-			case PT_32BSI: {
-				band->nodataval = read_int32(&ptr, littleEndian);
-				break;
-			}
-			case PT_32BUI: {
-				band->nodataval = read_uint32(&ptr, littleEndian);
-				break;
-			}
-			case PT_32BF: {
-				band->nodataval = read_float32(&ptr, littleEndian);
-				break;
-			}
-			case PT_64BF: {
-				band->nodataval = read_float64(&ptr, littleEndian);
-				break;
-			}
-			default: {
-				rterror("rt_raster_deserialize: Unknown pixeltype %d", band->pixtype);
-				for (j = 0; j <= i; j++) rt_band_destroy(rast->bands[j]);
-				rt_raster_destroy(rast);
-				return NULL;
-			}
-		}
-
-		RASTER_DEBUGF(3, "rt_raster_deserialize: has nodata flag %d", band->hasnodata);
-		RASTER_DEBUGF(3, "rt_raster_deserialize: nodata value %g", band->nodataval);
-
-		/* Consistency checking (ptr is pixbytes-aligned) */
-		assert(!((ptr - beg) % pixbytes));
-
-		if (band->offline) {
-			int pathlen = 0;
-
-			/* Read band number */
-			band->data.offline.bandNum = *ptr;
-			ptr += 1;
-
-			/* Register path */
-			pathlen = strlen((char*) ptr);
-			band->data.offline.path = rtalloc(sizeof(char) * (pathlen + 1));
-			if (band->data.offline.path == NULL) {
-				rterror("rt_raster_deserialize: Could not allocate momory for offline band path");
-				for (j = 0; j <= i; j++) rt_band_destroy(rast->bands[j]);
-				rt_raster_destroy(rast);
-				return NULL;
-			}
-
-			memcpy(band->data.offline.path, ptr, pathlen);
-			band->data.offline.path[pathlen] = '\0';
-			ptr += pathlen + 1;
-
-			band->data.offline.mem = NULL;
-		}
-		else {
-			/* Register data */
-			const uint32_t datasize = rast->width * rast->height * pixbytes;
-			band->data.mem = (uint8_t*) ptr;
-			ptr += datasize;
-		}
-
-		/* Skip bytes of padding up to 8-bytes boundary */
-#if POSTGIS_DEBUG_LEVEL > 0
-		const uint8_t *padbeg = ptr;
-#endif
-		while (0 != ((ptr - beg) % 8)) {
-			++ptr;
-		}
-
-		RASTER_DEBUGF(3, "rt_raster_deserialize: skip %d bytes of 8-bytes boundary padding", ptr - padbeg);
-
-		/* Consistency checking (ptr is pixbytes-aligned) */
-		assert(!((ptr - beg) % pixbytes));
-	}
-
-	return rast;
-}
-
-/**
- * Return TRUE if the raster is empty. i.e. is NULL, width = 0 or height = 0
- *
- * @param raster : the raster to get info from
- *
- * @return TRUE if the raster is empty, FALSE otherwise
- */
-int
-rt_raster_is_empty(rt_raster raster) {
-	return (NULL == raster || raster->height <= 0 || raster->width <= 0);
-}
-
-/**
- * Return TRUE if the raster has a band of this number.
- *
- * @param raster : the raster to get info from
- * @param nband : the band number. 0-based
- *
- * @return TRUE if the raster has a band of this number, FALSE otherwise
- */
-int
-rt_raster_has_band(rt_raster raster, int nband) {
-	return !(NULL == raster || nband >= raster->numBands || nband < 0);
-}
-
-/**
- * Copy one band from one raster to another.  Bands are duplicated from
- * fromrast to torast using rt_band_duplicate.  The caller will need
- * to ensure that the copied band's data or path remains allocated
- * for the lifetime of the copied bands.
- *
- * @param torast : raster to copy band to
- * @param fromrast : raster to copy band from
- * @param fromindex : index of band in source raster, 0-based
- * @param toindex : index of new band in destination raster, 0-based
- *
- * @return The band index of the second raster where the new band is copied.
- *   -1 if error
- */
-int
-rt_raster_copy_band(
-	rt_raster torast, rt_raster fromrast,
-	int fromindex, int toindex
-) {
-	rt_band srcband = NULL;
-	rt_band dstband = NULL;
-
-	assert(NULL != torast);
-	assert(NULL != fromrast);
-
-	/* Check raster dimensions */
-	if (torast->height != fromrast->height || torast->width != fromrast->width) {
-		rtwarn("rt_raster_copy_band: Attempting to add a band with different width or height");
-		return -1;
-	}
-
-	/* Check bands limits */
-	if (fromrast->numBands < 1) {
-		rtwarn("rt_raster_copy_band: Second raster has no band");
-		return -1;
-	}
-	else if (fromindex < 0) {
-		rtwarn("rt_raster_copy_band: Band index for second raster < 0. Defaulted to 0");
-		fromindex = 0;
-	}
-	else if (fromindex >= fromrast->numBands) {
-		rtwarn("rt_raster_copy_band: Band index for second raster > number of bands, truncated from %u to %u", fromindex, fromrast->numBands - 1);
-		fromindex = fromrast->numBands - 1;
-	}
-
-	if (toindex < 0) {
-		rtwarn("rt_raster_copy_band: Band index for first raster < 0. Defaulted to 0");
-		toindex = 0;
-	}
-	else if (toindex > torast->numBands) {
-		rtwarn("rt_raster_copy_band: Band index for first raster > number of bands, truncated from %u to %u", toindex, torast->numBands);
-		toindex = torast->numBands;
-	}
-
-	/* Get band from source raster */
-	srcband = rt_raster_get_band(fromrast, fromindex);
-
-	/* duplicate band */
-	dstband = rt_band_duplicate(srcband);
-
-	/* Add band to the second raster */
-	return rt_raster_add_band(torast, dstband, toindex);
-}
-
-/**
- * Construct a new rt_raster from an existing rt_raster and an array
- * of band numbers
- *
- * @param raster : the source raster
- * @param bandNums : array of band numbers to extract from source raster
- *                   and add to the new raster (0 based)
- * @param count : number of elements in bandNums
- *
- * @return a new rt_raster or NULL on error
- */
-rt_raster
-rt_raster_from_band(rt_raster raster, uint32_t *bandNums, int count) {
-	rt_raster rast = NULL;
-	int i = 0;
-	int j = 0;
-	int idx;
-	int32_t flag;
-	double gt[6] = {0.};
-
-	assert(NULL != raster);
-	assert(NULL != bandNums);
-
-	RASTER_DEBUGF(3, "rt_raster_from_band: source raster has %d bands",
-		rt_raster_get_num_bands(raster));
-
-	/* create new raster */
-	rast = rt_raster_new(raster->width, raster->height);
-	if (NULL == rast) {
-		rterror("rt_raster_from_band: Out of memory allocating new raster");
-		return NULL;
-	}
-
-	/* copy raster attributes */
-	rt_raster_get_geotransform_matrix(raster, gt);
-	rt_raster_set_geotransform_matrix(rast, gt);
-
-	/* srid */
-	rt_raster_set_srid(rast, raster->srid);
-
-	/* copy bands */
-	for (i = 0; i < count; i++) {
-		idx = bandNums[i];
-		flag = rt_raster_copy_band(rast, raster, idx, i);
-
-		if (flag < 0) {
-			rterror("rt_raster_from_band: Could not copy band");
-			for (j = 0; j < i; j++) rt_band_destroy(rast->bands[j]);
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-
-		RASTER_DEBUGF(3, "rt_raster_from_band: band created at index %d",
-			flag);
-	}
-
-	RASTER_DEBUGF(3, "rt_raster_from_band: new raster has %d bands",
-		rt_raster_get_num_bands(rast));
-	return rast;
-}
-
-/**
- * Replace band at provided index with new band
- *
- * @param raster: raster of band to be replaced
- * @param band : new band to add to raster
- * @param index : index of band to replace (0-based)
- *
- * @return NULL on error or replaced band
- */
-rt_band
-rt_raster_replace_band(rt_raster raster, rt_band band, int index) {
-	rt_band oldband = NULL;
-	assert(NULL != raster);
-	assert(NULL != band);
-
-	if (band->width != raster->width || band->height != raster->height) {
-		rterror("rt_raster_replace_band: Band does not match raster's dimensions: %dx%d band to %dx%d raster",
-			band->width, band->height, raster->width, raster->height);
-		return 0;
-	}
-
-	if (index >= raster->numBands || index < 0) {
-		rterror("rt_raster_replace_band: Band index is not valid");
-		return 0;
-	}
-
-	oldband = rt_raster_get_band(raster, index);
-	RASTER_DEBUGF(3, "rt_raster_replace_band: old band at %p", oldband);
-	RASTER_DEBUGF(3, "rt_raster_replace_band: new band at %p", band);
-
-	raster->bands[index] = band;
-	RASTER_DEBUGF(3, "rt_raster_replace_band: new band at %p", raster->bands[index]);
-
-	band->raster = raster;
-	oldband->raster = NULL;
-
-	return oldband;
-}
-
-/**
- * Clone an existing raster
- *
- * @param raster : raster to clone
- * @param deep : flag indicating if bands should be cloned
- *
- * @return a new rt_raster or NULL on error
- */
-rt_raster
-rt_raster_clone(rt_raster raster, uint8_t deep) {
-	rt_raster rtn = NULL;
-	double gt[6] = {0};
-
-	assert(NULL != raster);
-
-	if (deep) {
-		int numband = rt_raster_get_num_bands(raster);
-		uint32_t *nband = NULL;
-		int i = 0;
-
-		nband = rtalloc(sizeof(uint32_t) * numband);
-		if (nband == NULL) {
-			rterror("rt_raster_clone: Could not allocate memory for deep clone");
-			return NULL;
-		}
-		for (i = 0; i < numband; i++)
-			nband[i] = i;
-
-		rtn = rt_raster_from_band(raster, nband, numband);
-		rtdealloc(nband);
-
-		return rtn;
-	}
-
-	rtn = rt_raster_new(
-		rt_raster_get_width(raster),
-		rt_raster_get_height(raster)
-	);
-	if (rtn == NULL) {
-		rterror("rt_raster_clone: Could not create cloned raster");
-		return NULL;
-	}
-
-	rt_raster_get_geotransform_matrix(raster, gt);
-	rt_raster_set_geotransform_matrix(rtn, gt);
-	rt_raster_set_srid(rtn, rt_raster_get_srid(raster));
-
-	return rtn;
-}
-
-/**
- * Return formatted GDAL raster from raster
- *
- * @param raster : the raster to convert
- * @param srs : the raster's coordinate system in OGC WKT
- * @param format : format to convert to. GDAL driver short name
- * @param options : list of format creation options. array of strings
- * @param gdalsize : will be set to the size of returned bytea
- *
- * @return formatted GDAL raster.  the calling function is responsible
- *   for freeing the returned data using CPLFree()
- */
-uint8_t*
-rt_raster_to_gdal(rt_raster raster, const char *srs,
-	char *format, char **options, uint64_t *gdalsize) {
-	GDALDriverH src_drv = NULL;
-	int destroy_src_drv = 0;
-	GDALDatasetH src_ds = NULL;
-
-	vsi_l_offset rtn_lenvsi;
-	uint64_t rtn_len = 0;
-
-	GDALDriverH rtn_drv = NULL;
-	GDALDatasetH rtn_ds = NULL;
-	uint8_t *rtn = NULL;
-
-	assert(NULL != raster);
-	assert(NULL != gdalsize);
-
-	/* any supported format is possible */
-	rt_util_gdal_register_all(0);
-	RASTER_DEBUG(3, "loaded all supported GDAL formats");
-
-	/* output format not specified */
-	if (format == NULL || !strlen(format))
-		format = "GTiff";
-	RASTER_DEBUGF(3, "output format is %s", format);
-
-	/* load raster into a GDAL MEM raster */
-	src_ds = rt_raster_to_gdal_mem(raster, srs, NULL, NULL, 0, &src_drv, &destroy_src_drv);
-	if (NULL == src_ds) {
-		rterror("rt_raster_to_gdal: Could not convert raster to GDAL MEM format");
-		return 0;
-	}
-
-	/* load driver */
-	rtn_drv = GDALGetDriverByName(format);
-	if (NULL == rtn_drv) {
-		rterror("rt_raster_to_gdal: Could not load the output GDAL driver");
-		GDALClose(src_ds);
-		if (destroy_src_drv) GDALDestroyDriver(src_drv);
-		return 0;
-	}
-	RASTER_DEBUG(3, "Output driver loaded");
-
-	/* convert GDAL MEM raster to output format */
-	RASTER_DEBUG(3, "Copying GDAL MEM raster to memory file in output format");
-	rtn_ds = GDALCreateCopy(
-		rtn_drv,
-		"/vsimem/out.dat", /* should be fine assuming this is in a process */
-		src_ds,
-		FALSE, /* should copy be strictly equivelent? */
-		options, /* format options */
-		NULL, /* progress function */
-		NULL /* progress data */
-	);
-
-	/* close source dataset */
-	GDALClose(src_ds);
-	if (destroy_src_drv) GDALDestroyDriver(src_drv);
-	RASTER_DEBUG(3, "Closed GDAL MEM raster");
-
-	if (NULL == rtn_ds) {
-		rterror("rt_raster_to_gdal: Could not create the output GDAL dataset");
-		return 0;
-	}
-
-	RASTER_DEBUGF(4, "dataset SRS: %s", GDALGetProjectionRef(rtn_ds));
-
-	/* close dataset, this also flushes any pending writes */
-	GDALClose(rtn_ds);
-	RASTER_DEBUG(3, "Closed GDAL output raster");
-
-	RASTER_DEBUG(3, "Done copying GDAL MEM raster to memory file in output format");
-
-	/* from memory file to buffer */
-	RASTER_DEBUG(3, "Copying GDAL memory file to buffer");
-	rtn = VSIGetMemFileBuffer("/vsimem/out.dat", &rtn_lenvsi, TRUE);
-	RASTER_DEBUG(3, "Done copying GDAL memory file to buffer");
-	if (NULL == rtn) {
-		rterror("rt_raster_to_gdal: Could not create the output GDAL raster");
-		return 0;
-	}
-
-	rtn_len = (uint64_t) rtn_lenvsi;
-	*gdalsize = rtn_len;
-
-	return rtn;
-}
-
-/**
- * Returns a set of available GDAL drivers
- *
- * @param drv_count : number of GDAL drivers available
- * @param cancc : if non-zero, filter drivers to only those
- *   with support for CreateCopy and VirtualIO
- *
- * @return set of "gdaldriver" values of available GDAL drivers
- */
-rt_gdaldriver
-rt_raster_gdal_drivers(uint32_t *drv_count, uint8_t cancc) {
-	const char *state;
-	const char *txt;
-	int txt_len;
-	GDALDriverH *drv = NULL;
-	rt_gdaldriver rtn = NULL;
-	int count;
-	int i;
-	uint32_t j;
-
-	assert(drv_count != NULL);
-
-	rt_util_gdal_register_all(0);
-	count = GDALGetDriverCount();
-	rtn = (rt_gdaldriver) rtalloc(count * sizeof(struct rt_gdaldriver_t));
-	if (NULL == rtn) {
-		rterror("rt_raster_gdal_drivers: Could not allocate memory for gdaldriver structure");
-		return 0;
-	}
-
-	for (i = 0, j = 0; i < count; i++) {
-		drv = GDALGetDriver(i);
-
-#ifdef GDAL_DCAP_RASTER
-		/* Starting with GDAL 2.0, vector drivers can also be returned */ 
-		/* Only keep raster drivers */ 
-		state = GDALGetMetadataItem(drv, GDAL_DCAP_RASTER, NULL);
-		if (state == NULL || !EQUAL(state, "YES"))
-			continue;
-#endif
-
-		if (cancc) {
-			/* CreateCopy support */
-			state = GDALGetMetadataItem(drv, GDAL_DCAP_CREATECOPY, NULL);
-			if (state == NULL) continue;
-
-			/* VirtualIO support */
-			state = GDALGetMetadataItem(drv, GDAL_DCAP_VIRTUALIO, NULL);
-			if (state == NULL) continue;
-		}
-
-		/* index of driver */
-		rtn[j].idx = i;
-
-		/* short name */
-		txt = GDALGetDriverShortName(drv);
-		txt_len = strlen(txt);
-
-		if (cancc) {
-			RASTER_DEBUGF(3, "rt_raster_gdal_driver: driver %s (%d) supports CreateCopy() and VirtualIO()", txt, i);
-		}
-
-		txt_len = (txt_len + 1) * sizeof(char);
-		rtn[j].short_name = (char *) rtalloc(txt_len);
-		memcpy(rtn[j].short_name, txt, txt_len);
-
-		/* long name */
-		txt = GDALGetDriverLongName(drv);
-		txt_len = strlen(txt);
-
-		txt_len = (txt_len + 1) * sizeof(char);
-		rtn[j].long_name = (char *) rtalloc(txt_len);
-		memcpy(rtn[j].long_name, txt, txt_len);
-
-		/* creation options */
-		txt = GDALGetDriverCreationOptionList(drv);
-		txt_len = strlen(txt);
-
-		txt_len = (txt_len + 1) * sizeof(char);
-		rtn[j].create_options = (char *) rtalloc(txt_len);
-		memcpy(rtn[j].create_options, txt, txt_len);
-
-		j++;
-	}
-
-	/* free unused memory */
-	rtn = rtrealloc(rtn, j * sizeof(struct rt_gdaldriver_t));
-	*drv_count = j;
-
-	return rtn;
-}
-
-/**
- * Return GDAL dataset using GDAL MEM driver from raster
- *
- * @param raster : raster to convert to GDAL MEM
- * @param srs : the raster's coordinate system in OGC WKT
- * @param bandNums : array of band numbers to extract from raster
- *   and include in the GDAL dataset (0 based)
- * @param excludeNodataValues : array of zero, nonzero where if non-zero,
- *   ignore nodata values for the band
- * @param count : number of elements in bandNums
- * @param rtn_drv : is set to the GDAL driver object
- * @param destroy_rtn_drv : if non-zero, caller must destroy the MEM driver
- *
- * @return GDAL dataset using GDAL MEM driver
- */
-GDALDatasetH
-rt_raster_to_gdal_mem(
-	rt_raster raster,
-	const char *srs,
-	uint32_t *bandNums,
-	int *excludeNodataValues,
-	int count,
-	GDALDriverH *rtn_drv, int *destroy_rtn_drv
-) {
-	GDALDriverH drv = NULL;
-	GDALDatasetH ds = NULL;
-	double gt[6] = {0.0};
-	CPLErr cplerr;
-	GDALDataType gdal_pt = GDT_Unknown;
-	GDALRasterBandH band;
-	void *pVoid;
-	char *pszDataPointer;
-	char szGDALOption[50];
-	char *apszOptions[4];
-	double nodata = 0.0;
-	int allocBandNums = 0;
-	int allocNodataValues = 0;
-
-	int i;
-	int numBands;
-	uint32_t width = 0;
-	uint32_t height = 0;
-	rt_band rtband = NULL;
-	rt_pixtype pt = PT_END;
-
-	assert(NULL != raster);
-	assert(NULL != rtn_drv);
-	assert(NULL != destroy_rtn_drv);
-
-	/* store raster in GDAL MEM raster */
-	if (!rt_util_gdal_driver_registered("MEM")) {
-		RASTER_DEBUG(4, "Registering MEM driver");
-		GDALRegister_MEM();
-		*destroy_rtn_drv = 1;
-	}
-	drv = GDALGetDriverByName("MEM");
-	if (NULL == drv) {
-		rterror("rt_raster_to_gdal_mem: Could not load the MEM GDAL driver");
-		return 0;
-	}
-	*rtn_drv = drv;
-
-	/* unload driver from GDAL driver manager */
-	if (*destroy_rtn_drv) {
-		RASTER_DEBUG(4, "Deregistering MEM driver");
-		GDALDeregisterDriver(drv);
-	}
-
-	width = rt_raster_get_width(raster);
-	height = rt_raster_get_height(raster);
-	ds = GDALCreate(
-		drv, "",
-		width, height,
-		0, GDT_Byte, NULL
-	);
-	if (NULL == ds) {
-		rterror("rt_raster_to_gdal_mem: Could not create a GDALDataset to convert into");
-		return 0;
-	}
-
-	/* add geotransform */
-	rt_raster_get_geotransform_matrix(raster, gt);
-	cplerr = GDALSetGeoTransform(ds, gt);
-	if (cplerr != CE_None) {
-		rterror("rt_raster_to_gdal_mem: Could not set geotransformation");
-		GDALClose(ds);
-		return 0;
-	}
-
-	/* set spatial reference */
-	if (NULL != srs && strlen(srs)) {
-		char *_srs = rt_util_gdal_convert_sr(srs, 0);
-		if (_srs == NULL) {
-			rterror("rt_raster_to_gdal_mem: Could not convert srs to GDAL accepted format");
-			GDALClose(ds);
-			return 0;
-		}
-
-		cplerr = GDALSetProjection(ds, _srs);
-		CPLFree(_srs);
-		if (cplerr != CE_None) {
-			rterror("rt_raster_to_gdal_mem: Could not set projection");
-			GDALClose(ds);
-			return 0;
-		}
-		RASTER_DEBUGF(3, "Projection set to: %s", GDALGetProjectionRef(ds));
-	}
-
-	/* process bandNums */
-	numBands = rt_raster_get_num_bands(raster);
-	if (NULL != bandNums && count > 0) {
-		for (i = 0; i < count; i++) {
-			if (bandNums[i] >= numBands) {
-				rterror("rt_raster_to_gdal_mem: The band index %d is invalid", bandNums[i]);
-				GDALClose(ds);
-				return 0;
-			}
-		}
-	}
-	else {
-		count = numBands;
-		bandNums = (uint32_t *) rtalloc(sizeof(uint32_t) * count);
-		if (NULL == bandNums) {
-			rterror("rt_raster_to_gdal_mem: Could not allocate memory for band indices");
-			GDALClose(ds);
-			return 0;
-		}
-		allocBandNums = 1;
-		for (i = 0; i < count; i++) bandNums[i] = i;
-	}
-
-	/* process exclude_nodata_values */
-	if (NULL == excludeNodataValues) {
-		excludeNodataValues = (int *) rtalloc(sizeof(int) * count);
-		if (NULL == excludeNodataValues) {
-			rterror("rt_raster_to_gdal_mem: Could not allocate memory for NODATA flags");
-			GDALClose(ds);
-			return 0;
-		}
-		allocNodataValues = 1;
-		for (i = 0; i < count; i++) excludeNodataValues[i] = 1;
-	}
-
-	/* add band(s) */
-	for (i = 0; i < count; i++) {
-		rtband = rt_raster_get_band(raster, bandNums[i]);
-		if (NULL == rtband) {
-			rterror("rt_raster_to_gdal_mem: Could not get requested band index %d", bandNums[i]);
-			if (allocBandNums) rtdealloc(bandNums);
-			if (allocNodataValues) rtdealloc(excludeNodataValues);
-			GDALClose(ds);
-			return 0;
-		}
-
-		pt = rt_band_get_pixtype(rtband);
-		gdal_pt = rt_util_pixtype_to_gdal_datatype(pt);
-		if (gdal_pt == GDT_Unknown)
-			rtwarn("rt_raster_to_gdal_mem: Unknown pixel type for band");
-
-		/*
-			For all pixel types other than PT_8BSI, set pointer to start of data
-		*/
-		if (pt != PT_8BSI) {
-			pVoid = rt_band_get_data(rtband);
-			RASTER_DEBUGF(4, "Band data is at pos %p", pVoid);
-
-			pszDataPointer = (char *) rtalloc(20 * sizeof (char));
-			sprintf(pszDataPointer, "%p", pVoid);
-			RASTER_DEBUGF(4, "rt_raster_to_gdal_mem: szDatapointer is %p",
-				pszDataPointer);
-
-			if (strnicmp(pszDataPointer, "0x", 2) == 0)
-				sprintf(szGDALOption, "DATAPOINTER=%s", pszDataPointer);
-			else
-				sprintf(szGDALOption, "DATAPOINTER=0x%s", pszDataPointer);
-
-			RASTER_DEBUG(3, "Storing info for GDAL MEM raster band");
-
-			apszOptions[0] = szGDALOption;
-			apszOptions[1] = NULL; /* pixel offset, not needed */
-			apszOptions[2] = NULL; /* line offset, not needed */
-			apszOptions[3] = NULL;
-
-			/* free */
-			rtdealloc(pszDataPointer);
-
-			/* add band */
-			if (GDALAddBand(ds, gdal_pt, apszOptions) == CE_Failure) {
-				rterror("rt_raster_to_gdal_mem: Could not add GDAL raster band");
-				if (allocBandNums) rtdealloc(bandNums);
-				GDALClose(ds);
-				return 0;
-			}
-		}
-		/*
-			PT_8BSI is special as GDAL has no equivalent pixel type.
-			Must convert 8BSI to 16BSI so create basic band
-		*/
-		else {
-			/* add band */
-			if (GDALAddBand(ds, gdal_pt, NULL) == CE_Failure) {
-				rterror("rt_raster_to_gdal_mem: Could not add GDAL raster band");
-				if (allocBandNums) rtdealloc(bandNums);
-				if (allocNodataValues) rtdealloc(excludeNodataValues);
-				GDALClose(ds);
-				return 0;
-			}
-		}
-
-		/* check band count */
-		if (GDALGetRasterCount(ds) != i + 1) {
-			rterror("rt_raster_to_gdal_mem: Error creating GDAL MEM raster band");
-			if (allocBandNums) rtdealloc(bandNums);
-			if (allocNodataValues) rtdealloc(excludeNodataValues);
-			GDALClose(ds);
-			return 0;
-		}
-
-		/* get new band */
-		band = NULL;
-		band = GDALGetRasterBand(ds, i + 1);
-		if (NULL == band) {
-			rterror("rt_raster_to_gdal_mem: Could not get GDAL band for additional processing");
-			if (allocBandNums) rtdealloc(bandNums);
-			if (allocNodataValues) rtdealloc(excludeNodataValues);
-			GDALClose(ds);
-			return 0;
-		}
-
-		/* PT_8BSI requires manual setting of pixels */
-		if (pt == PT_8BSI) {
-			int nXBlocks, nYBlocks;
-			int nXBlockSize, nYBlockSize;
-			int iXBlock, iYBlock;
-			int nXValid, nYValid;
-			int iX, iY;
-			int iXMax, iYMax;
-
-			int x, y, z;
-			uint32_t valueslen = 0;
-			int16_t *values = NULL;
-			double value = 0.;
-
-			/* this makes use of GDAL's "natural" blocks */
-			GDALGetBlockSize(band, &nXBlockSize, &nYBlockSize);
-			nXBlocks = (width + nXBlockSize - 1) / nXBlockSize;
-			nYBlocks = (height + nYBlockSize - 1) / nYBlockSize;
-			RASTER_DEBUGF(4, "(nXBlockSize, nYBlockSize) = (%d, %d)", nXBlockSize, nYBlockSize);
-			RASTER_DEBUGF(4, "(nXBlocks, nYBlocks) = (%d, %d)", nXBlocks, nYBlocks);
-
-			/* length is for the desired pixel type */
-			valueslen = rt_pixtype_size(PT_16BSI) * nXBlockSize * nYBlockSize;
-			values = rtalloc(valueslen);
-			if (NULL == values) {
-				rterror("rt_raster_to_gdal_mem: Could not allocate memory for GDAL band pixel values");
-				if (allocBandNums) rtdealloc(bandNums);
-				if (allocNodataValues) rtdealloc(excludeNodataValues);
-				GDALClose(ds);
-				return 0;
-			}
-
-			for (iYBlock = 0; iYBlock < nYBlocks; iYBlock++) {
-				for (iXBlock = 0; iXBlock < nXBlocks; iXBlock++) {
-					memset(values, 0, valueslen);
-
-					x = iXBlock * nXBlockSize;
-					y = iYBlock * nYBlockSize;
-					RASTER_DEBUGF(4, "(iXBlock, iYBlock) = (%d, %d)", iXBlock, iYBlock);
-					RASTER_DEBUGF(4, "(x, y) = (%d, %d)", x, y);
-
-					/* valid block width */
-					if ((iXBlock + 1) * nXBlockSize > width)
-						nXValid = width - (iXBlock * nXBlockSize);
-					else
-						nXValid = nXBlockSize;
-
-					/* valid block height */
-					if ((iYBlock + 1) * nYBlockSize > height)
-						nYValid = height - (iYBlock * nYBlockSize);
-					else
-						nYValid = nYBlockSize;
-
-					RASTER_DEBUGF(4, "(nXValid, nYValid) = (%d, %d)", nXValid, nYValid);
-
-					/* convert 8BSI values to 16BSI */
-					z = 0;
-					iYMax = y + nYValid;
-					iXMax = x + nXValid;
-					for (iY = y; iY < iYMax; iY++)  {
-						for (iX = x; iX < iXMax; iX++)  {
-							if (rt_band_get_pixel(rtband, iX, iY, &value, NULL) != ES_NONE) {
-								rterror("rt_raster_to_gdal_mem: Could not get pixel value to convert from 8BSI to 16BSI");
-								rtdealloc(values);
-								if (allocBandNums) rtdealloc(bandNums);
-								if (allocNodataValues) rtdealloc(excludeNodataValues);
-								GDALClose(ds);
-								return 0;
-							}
-
-							values[z++] = rt_util_clamp_to_16BSI(value);
-						}
-					}
-
-					/* burn values */
-					if (GDALRasterIO(
-						band, GF_Write,
-						x, y,
-						nXValid, nYValid,
-						values, nXValid, nYValid,
-						gdal_pt,
-						0, 0
-					) != CE_None) {
-						rterror("rt_raster_to_gdal_mem: Could not write converted 8BSI to 16BSI values to GDAL band");
-						rtdealloc(values);
-						if (allocBandNums) rtdealloc(bandNums);
-						if (allocNodataValues) rtdealloc(excludeNodataValues);
-						GDALClose(ds);
-						return 0;
-					}
-				}
-			}
-
-			rtdealloc(values);
-		}
-
-		/* Add nodata value for band */
-		if (rt_band_get_hasnodata_flag(rtband) != FALSE && excludeNodataValues[i]) {
-			rt_band_get_nodata(rtband, &nodata);
-			if (GDALSetRasterNoDataValue(band, nodata) != CE_None)
-				rtwarn("rt_raster_to_gdal_mem: Could not set nodata value for band");
-			RASTER_DEBUGF(3, "nodata value set to %f", GDALGetRasterNoDataValue(band, NULL));
-		}
-
-#if POSTGIS_DEBUG_LEVEL > 3
-		{
-			GDALRasterBandH _grb = NULL;
-			double _min;
-			double _max;
-			double _mean;
-			double _stddev;
-
-			_grb = GDALGetRasterBand(ds, i + 1);
-			GDALComputeRasterStatistics(_grb, FALSE, &_min, &_max, &_mean, &_stddev, NULL, NULL);
-			RASTER_DEBUGF(4, "GDAL Band %d stats: %f, %f, %f, %f", i + 1, _min, _max, _mean, _stddev);
-		}
-#endif
-
-	}
-
-	/* necessary??? */
-	GDALFlushCache(ds);
-
-	if (allocBandNums) rtdealloc(bandNums);
-	if (allocNodataValues) rtdealloc(excludeNodataValues);
-
-	return ds;
-}
-
-/**
- * Return a raster from a GDAL dataset
- *
- * @param ds : the GDAL dataset to convert to a raster
- *
- * @return raster or NULL
- */
-rt_raster
-rt_raster_from_gdal_dataset(GDALDatasetH ds) {
-	rt_raster rast = NULL;
-	double gt[6] = {0};
-	CPLErr cplerr;
-	uint32_t width = 0;
-	uint32_t height = 0;
-	uint32_t numBands = 0;
-	int i = 0;
-	char *authname = NULL;
-	char *authcode = NULL;
-
-	GDALRasterBandH gdband = NULL;
-	GDALDataType gdpixtype = GDT_Unknown;
-	rt_band band;
-	int32_t idx;
-	rt_pixtype pt = PT_END;
-	uint32_t ptlen = 0;
-	int hasnodata = 0;
-	double nodataval;
-
-	int x;
-	int y;
-
-	int nXBlocks, nYBlocks;
-	int nXBlockSize, nYBlockSize;
-	int iXBlock, iYBlock;
-	int nXValid, nYValid;
-	int iY;
-
-	uint8_t *values = NULL;
-	uint32_t valueslen = 0;
-	uint8_t *ptr = NULL;
-
-	assert(NULL != ds);
-
-	/* raster size */
-	width = GDALGetRasterXSize(ds);
-	height = GDALGetRasterYSize(ds);
-	RASTER_DEBUGF(3, "Raster dimensions (width x height): %d x %d", width, height);
-
-	/* create new raster */
-	RASTER_DEBUG(3, "Creating new raster");
-	rast = rt_raster_new(width, height);
-	if (NULL == rast) {
-		rterror("rt_raster_from_gdal_dataset: Out of memory allocating new raster");
-		return NULL;
-	}
-	RASTER_DEBUGF(3, "Created raster dimensions (width x height): %d x %d", rast->width, rast->height);
-
-	/* get raster attributes */
-	cplerr = GDALGetGeoTransform(ds, gt);
-	if (GDALGetGeoTransform(ds, gt) != CE_None) {
-		RASTER_DEBUG(4, "Using default geotransform matrix (0, 1, 0, 0, 0, -1)");
-		gt[0] = 0;
-		gt[1] = 1;
-		gt[2] = 0;
-		gt[3] = 0;
-		gt[4] = 0;
-		gt[5] = -1;
-	}
-
-	/* apply raster attributes */
-	rt_raster_set_geotransform_matrix(rast, gt);
-
-	RASTER_DEBUGF(3, "Raster geotransform (%f, %f, %f, %f, %f, %f)",
-		gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
-
-	/* srid */
-	if (rt_util_gdal_sr_auth_info(ds, &authname, &authcode) == ES_NONE) {
-		if (
-			authname != NULL &&
-			strcmp(authname, "EPSG") == 0 &&
-			authcode != NULL
-		) {
-			rt_raster_set_srid(rast, atoi(authcode));
-			RASTER_DEBUGF(3, "New raster's SRID = %d", rast->srid);
-		}
-
-		if (authname != NULL)
-			rtdealloc(authname);
-		if (authcode != NULL)
-			rtdealloc(authcode);
-	}
-
-	numBands = GDALGetRasterCount(ds);
-
-#if POSTGIS_DEBUG_LEVEL > 3
-	for (i = 1; i <= numBands; i++) {
-		GDALRasterBandH _grb = NULL;
-		double _min;
-		double _max;
-		double _mean;
-		double _stddev;
-
-		_grb = GDALGetRasterBand(ds, i);
-		GDALComputeRasterStatistics(_grb, FALSE, &_min, &_max, &_mean, &_stddev, NULL, NULL);
-		RASTER_DEBUGF(4, "GDAL Band %d stats: %f, %f, %f, %f", i, _min, _max, _mean, _stddev);
-	}
-#endif
-
-	/* copy bands */
-	for (i = 1; i <= numBands; i++) {
-		RASTER_DEBUGF(3, "Processing band %d of %d", i, numBands);
-		gdband = NULL;
-		gdband = GDALGetRasterBand(ds, i);
-		if (NULL == gdband) {
-			rterror("rt_raster_from_gdal_dataset: Could not get GDAL band");
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-		RASTER_DEBUGF(4, "gdband @ %p", gdband);
-
-		/* pixtype */
-		gdpixtype = GDALGetRasterDataType(gdband);
-		RASTER_DEBUGF(4, "gdpixtype, size = %s, %d", GDALGetDataTypeName(gdpixtype), GDALGetDataTypeSize(gdpixtype) / 8);
-		pt = rt_util_gdal_datatype_to_pixtype(gdpixtype);
-		if (pt == PT_END) {
-			rterror("rt_raster_from_gdal_dataset: Unknown pixel type for GDAL band");
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-		ptlen = rt_pixtype_size(pt);
-
-		/* size: width and height */
-		width = GDALGetRasterBandXSize(gdband);
-		height = GDALGetRasterBandYSize(gdband);
-		RASTER_DEBUGF(3, "GDAL band dimensions (width x height): %d x %d", width, height);
-
-		/* nodata */
-		nodataval = GDALGetRasterNoDataValue(gdband, &hasnodata);
-		RASTER_DEBUGF(3, "(hasnodata, nodataval) = (%d, %f)", hasnodata, nodataval);
-
-		/* create band object */
-		idx = rt_raster_generate_new_band(
-			rast, pt,
-			(hasnodata ? nodataval : 0),
-			hasnodata, nodataval, rt_raster_get_num_bands(rast)
-		);
-		if (idx < 0) {
-			rterror("rt_raster_from_gdal_dataset: Could not allocate memory for raster band");
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-		band = rt_raster_get_band(rast, idx);
-		RASTER_DEBUGF(3, "Created band of dimension (width x height): %d x %d", band->width, band->height);
-
-		/* this makes use of GDAL's "natural" blocks */
-		GDALGetBlockSize(gdband, &nXBlockSize, &nYBlockSize);
-		nXBlocks = (width + nXBlockSize - 1) / nXBlockSize;
-		nYBlocks = (height + nYBlockSize - 1) / nYBlockSize;
-		RASTER_DEBUGF(4, "(nXBlockSize, nYBlockSize) = (%d, %d)", nXBlockSize, nYBlockSize);
-		RASTER_DEBUGF(4, "(nXBlocks, nYBlocks) = (%d, %d)", nXBlocks, nYBlocks);
-
-		/* allocate memory for values */
-		valueslen = ptlen * nXBlockSize * nYBlockSize;
-		values = rtalloc(valueslen);
-		if (values == NULL) {
-			rterror("rt_raster_from_gdal_dataset: Could not allocate memory for GDAL band pixel values");
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-		RASTER_DEBUGF(3, "values @ %p of length = %d", values, valueslen);
-
-		for (iYBlock = 0; iYBlock < nYBlocks; iYBlock++) {
-			for (iXBlock = 0; iXBlock < nXBlocks; iXBlock++) {
-				x = iXBlock * nXBlockSize;
-				y = iYBlock * nYBlockSize;
-				RASTER_DEBUGF(4, "(iXBlock, iYBlock) = (%d, %d)", iXBlock, iYBlock);
-				RASTER_DEBUGF(4, "(x, y) = (%d, %d)", x, y);
-
-				memset(values, 0, valueslen);
-
-				/* valid block width */
-				if ((iXBlock + 1) * nXBlockSize > width)
-					nXValid = width - (iXBlock * nXBlockSize);
-				else
-					nXValid = nXBlockSize;
-
-				/* valid block height */
-				if ((iYBlock + 1) * nYBlockSize > height)
-					nYValid = height - (iYBlock * nYBlockSize);
-				else
-					nYValid = nYBlockSize;
-
-				RASTER_DEBUGF(4, "(nXValid, nYValid) = (%d, %d)", nXValid, nYValid);
-
-				cplerr = GDALRasterIO(
-					gdband, GF_Read,
-					x, y,
-					nXValid, nYValid,
-					values, nXValid, nYValid,
-					gdpixtype,
-					0, 0
-				);
-				if (cplerr != CE_None) {
-					rterror("rt_raster_from_gdal_dataset: Could not get data from GDAL raster");
-					rtdealloc(values);
-					rt_raster_destroy(rast);
-					return NULL;
-				}
-
-				/* if block width is same as raster width, shortcut */
-				if (nXBlocks == 1 && nYBlockSize > 1 && nXValid == width) {
-					x = 0;
-					y = nYBlockSize * iYBlock;
-
-					RASTER_DEBUGF(4, "Setting set of pixel lines at (%d, %d) for %d pixels", x, y, nXValid * nYValid);
-					rt_band_set_pixel_line(band, x, y, values, nXValid * nYValid);
-				}
-				else {
-					ptr = values;
-					x = nXBlockSize * iXBlock;
-					for (iY = 0; iY < nYValid; iY++) {
-						y = iY + (nYBlockSize * iYBlock);
-
-						RASTER_DEBUGF(4, "Setting pixel line at (%d, %d) for %d pixels", x, y, nXValid);
-						rt_band_set_pixel_line(band, x, y, ptr, nXValid);
-						ptr += (nXValid * ptlen);
-					}
-				}
-			}
-		}
-
-		/* free memory */
-		rtdealloc(values);
-	}
-
-	return rast;
-}
-
-/******************************************************************************
-* rt_raster_gdal_warp()
-******************************************************************************/
-
-typedef struct _rti_warp_arg_t* _rti_warp_arg;
-struct _rti_warp_arg_t {
-
-	struct {
-		GDALDriverH drv;
-		GDALDatasetH ds;
-		char *srs;
-		int destroy_drv;
-	} src, dst;
-
-	GDALWarpOptions *wopts;
-
-	struct {
-		struct {
-			char **item;
-			int len;
-		} option;
-
-		struct {
-			void *transform;
-			void *imgproj;
-			void *approx;
-		} arg;
-
-		GDALTransformerFunc func;
-	} transform;
-
-};
-
-static _rti_warp_arg
-_rti_warp_arg_init() {
-	_rti_warp_arg arg = NULL;
-
-	arg = rtalloc(sizeof(struct _rti_warp_arg_t));
-	if (arg == NULL) {
-		rterror("_rti_warp_arg_init: Could not allocate memory for _rti_warp_arg");
-		return NULL;
-	}
-
-	arg->src.drv = NULL;
-	arg->src.destroy_drv = 0;
-	arg->src.ds = NULL;
-	arg->src.srs = NULL;
-
-	arg->dst.drv = NULL;
-	arg->dst.destroy_drv = 0;
-	arg->dst.ds = NULL;
-	arg->dst.srs = NULL;
-
-	arg->wopts = NULL;
-
-	arg->transform.option.item = NULL;
-	arg->transform.option.len = 0;
-
-	arg->transform.arg.transform = NULL;
-	arg->transform.arg.imgproj = NULL;
-	arg->transform.arg.approx = NULL;
-
-	arg->transform.func = NULL;
-
-	return arg;
-}
-
-static void
-_rti_warp_arg_destroy(_rti_warp_arg arg) {
-	int i = 0;
-
-	if (arg->dst.ds != NULL)
-		GDALClose(arg->dst.ds);
-	if (arg->dst.srs != NULL)
-		CPLFree(arg->dst.srs);
-
-	if (arg->dst.drv != NULL && arg->dst.destroy_drv) {
-		GDALDeregisterDriver(arg->dst.drv);
-		GDALDestroyDriver(arg->dst.drv);
-	}
-
-	if (arg->src.ds != NULL)
-		GDALClose(arg->src.ds);
-	if (arg->src.srs != NULL)
-		CPLFree(arg->src.srs);
-
-	if (arg->src.drv != NULL && arg->src.destroy_drv) {
-		GDALDeregisterDriver(arg->src.drv);
-		GDALDestroyDriver(arg->src.drv);
-	}
-
-	if (arg->transform.func == GDALApproxTransform) {
-		if (arg->transform.arg.imgproj != NULL)
-			GDALDestroyGenImgProjTransformer(arg->transform.arg.imgproj);
-	}
-
-	if (arg->wopts != NULL)
-		GDALDestroyWarpOptions(arg->wopts);
-
-	if (arg->transform.option.len > 0 && arg->transform.option.item != NULL) {
-		for (i = 0; i < arg->transform.option.len; i++) {
-			if (arg->transform.option.item[i] != NULL)
-				rtdealloc(arg->transform.option.item[i]);
-		}
-		rtdealloc(arg->transform.option.item);
-	}
-
-	rtdealloc(arg);
-	arg = NULL;
-}
-
-/**
- * Return a warped raster using GDAL Warp API
- *
- * @param raster : raster to transform
- * @param src_srs : the raster's coordinate system in OGC WKT
- * @param dst_srs : the warped raster's coordinate system in OGC WKT
- * @param scale_x : the x size of pixels of the warped raster's pixels in
- *   units of dst_srs
- * @param scale_y : the y size of pixels of the warped raster's pixels in
- *   units of dst_srs
- * @param width : the number of columns of the warped raster.  note that
- *   width/height CANNOT be used with scale_x/scale_y
- * @param height : the number of rows of the warped raster.  note that
- *   width/height CANNOT be used with scale_x/scale_y
- * @param ul_xw : the X value of upper-left corner of the warped raster in
- *   units of dst_srs
- * @param ul_yw : the Y value of upper-left corner of the warped raster in
- *   units of dst_srs
- * @param grid_xw : the X value of point on a grid to align warped raster
- *   to in units of dst_srs
- * @param grid_yw : the Y value of point on a grid to align warped raster
- *   to in units of dst_srs
- * @param skew_x : the X skew of the warped raster in units of dst_srs
- * @param skew_y : the Y skew of the warped raster in units of dst_srs
- * @param resample_alg : the resampling algorithm
- * @param max_err : maximum error measured in input pixels permitted
- *   (0.0 for exact calculations)
- *
- * @return the warped raster or NULL
- */
-rt_raster rt_raster_gdal_warp(
-	rt_raster raster,
-	const char *src_srs, const char *dst_srs,
-	double *scale_x, double *scale_y,
-	int *width, int *height,
-	double *ul_xw, double *ul_yw,
-	double *grid_xw, double *grid_yw,
-	double *skew_x, double *skew_y,
-	GDALResampleAlg resample_alg, double max_err
-) {
-	CPLErr cplerr;
-	char *dst_options[] = {"SUBCLASS=VRTWarpedDataset", NULL};
-	_rti_warp_arg arg = NULL;
-
-	int hasnodata = 0;
-
-	GDALRasterBandH band;
-	rt_band rtband = NULL;
-	rt_pixtype pt = PT_END;
-	GDALDataType gdal_pt = GDT_Unknown;
-	double nodata = 0.0;
-
-	double _gt[6] = {0};
-	double dst_extent[4];
-	rt_envelope extent;
-
-	int _dim[2] = {0};
-	double _skew[2] = {0};
-	double _scale[2] = {0};
-	int ul_user = 0;
-
-	rt_raster rast = NULL;
-	int i = 0;
-	int numBands = 0;
-
-	int subgt = 0;
-
-	RASTER_DEBUG(3, "starting");
-
-	assert(NULL != raster);
-
-	/* internal variables */
-	arg = _rti_warp_arg_init();
-	if (arg == NULL) {
-		rterror("rt_raster_gdal_warp: Could not initialize internal variables");
-		return NULL;
-	}
-
-	/*
-		max_err must be gte zero
-
-		the value 0.125 is the default used in gdalwarp.cpp on line 283
-	*/
-	if (max_err < 0.) max_err = 0.125;
-	RASTER_DEBUGF(4, "max_err = %f", max_err);
-
-	/* handle srs */
-	if (src_srs != NULL) {
-		/* reprojection taking place */
-		if (dst_srs != NULL && strcmp(src_srs, dst_srs) != 0) {
-			RASTER_DEBUG(4, "Warp operation does include a reprojection");
-			arg->src.srs = rt_util_gdal_convert_sr(src_srs, 0);
-			arg->dst.srs = rt_util_gdal_convert_sr(dst_srs, 0);
-
-			if (arg->src.srs == NULL || arg->dst.srs == NULL) {
-				rterror("rt_raster_gdal_warp: Could not convert srs values to GDAL accepted format");
-				_rti_warp_arg_destroy(arg);
-				return NULL;
-			}
-		}
-		/* no reprojection, a stub just for clarity */
-		else {
-			RASTER_DEBUG(4, "Warp operation does NOT include reprojection");
-		}
-	}
-	else if (dst_srs != NULL) {
-		/* dst_srs provided but not src_srs */
-		rterror("rt_raster_gdal_warp: SRS required for input raster if SRS provided for warped raster");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* load raster into a GDAL MEM dataset */
-	arg->src.ds = rt_raster_to_gdal_mem(raster, arg->src.srs, NULL, NULL, 0, &(arg->src.drv), &(arg->src.destroy_drv));
-	if (NULL == arg->src.ds) {
-		rterror("rt_raster_gdal_warp: Could not convert raster to GDAL MEM format");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-	RASTER_DEBUG(3, "raster loaded into GDAL MEM dataset");
-
-	/* special case when src_srs and dst_srs is NULL and raster's geotransform matrix is default */
-	if (src_srs == NULL && dst_srs == NULL && rt_raster_get_srid(raster) == SRID_UNKNOWN) {
-		double gt[6];
-
-#if POSTGIS_DEBUG_LEVEL > 3
-		GDALGetGeoTransform(arg->src.ds, gt);
-		RASTER_DEBUGF(3, "GDAL MEM geotransform: %f, %f, %f, %f, %f, %f",
-			gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
-#endif
-
-		/* default geotransform */
-		rt_raster_get_geotransform_matrix(raster, gt);
-		RASTER_DEBUGF(3, "raster geotransform: %f, %f, %f, %f, %f, %f",
-			gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
-
-		if (
-			FLT_EQ(gt[0], 0) &&
-			FLT_EQ(gt[1], 1) &&
-			FLT_EQ(gt[2], 0) &&
-			FLT_EQ(gt[3], 0) &&
-			FLT_EQ(gt[4], 0) &&
-			FLT_EQ(gt[5], -1)
-		) {
-			double ngt[6] = {0, 10, 0, 0, 0, -10};
-
-			rtinfo("Raster has default geotransform. Adjusting metadata for use of GDAL Warp API");
-
-			GDALSetGeoTransform(arg->src.ds, ngt);
-			GDALFlushCache(arg->src.ds);
-
-			subgt = 1;
-
-#if POSTGIS_DEBUG_LEVEL > 3
-			GDALGetGeoTransform(arg->src.ds, gt);
-			RASTER_DEBUGF(3, "GDAL MEM geotransform: %f, %f, %f, %f, %f, %f",
-				gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
-#endif
-		}
-	}
-
-	/* set transform options */
-	if (arg->src.srs != NULL || arg->dst.srs != NULL) {
-		arg->transform.option.len = 2;
-		arg->transform.option.item = rtalloc(sizeof(char *) * (arg->transform.option.len + 1));
-		if (NULL == arg->transform.option.item) {
-			rterror("rt_raster_gdal_warp: Could not allocation memory for transform options");
-			_rti_warp_arg_destroy(arg);
-			return NULL;
-		}
-		memset(arg->transform.option.item, 0, sizeof(char *) * (arg->transform.option.len + 1));
-
-		for (i = 0; i < arg->transform.option.len; i++) {
-			switch (i) {
-				case 1:
-					if (arg->dst.srs != NULL)
-						arg->transform.option.item[i] = (char *) rtalloc(sizeof(char) * (strlen("DST_SRS=") + strlen(arg->dst.srs) + 1));
-					else
-						arg->transform.option.item[i] = (char *) rtalloc(sizeof(char) * (strlen("DST_SRS=") + 1));
-					break;
-				case 0:
-					if (arg->src.srs != NULL)
-						arg->transform.option.item[i] = (char *) rtalloc(sizeof(char) * (strlen("SRC_SRS=") + strlen(arg->src.srs) + 1));
-					else
-						arg->transform.option.item[i] = (char *) rtalloc(sizeof(char) * (strlen("SRC_SRS=") + 1));
-					break;
-			}
-			if (NULL == arg->transform.option.item[i]) {
-				rterror("rt_raster_gdal_warp: Could not allocation memory for transform options");
-				_rti_warp_arg_destroy(arg);
-				return NULL;
-			}
-
-			switch (i) {
-				case 1:
-					if (arg->dst.srs != NULL) {
-						snprintf(
-							arg->transform.option.item[i],
-							sizeof(char) * (strlen("DST_SRS=") + strlen(arg->dst.srs) + 1),
-							"DST_SRS=%s",
-							arg->dst.srs
-						);
-					}
-					else
-						sprintf(arg->transform.option.item[i], "%s", "DST_SRS=");
-					break;
-				case 0:
-					if (arg->src.srs != NULL) {
-						snprintf(
-							arg->transform.option.item[i],
-							sizeof(char) * (strlen("SRC_SRS=") + strlen(arg->src.srs) + 1),
-							"SRC_SRS=%s",
-							arg->src.srs
-						);
-					}
-					else
-						sprintf(arg->transform.option.item[i], "%s", "SRC_SRS=");
-					break;
-			}
-			RASTER_DEBUGF(4, "arg->transform.option.item[%d] = %s", i, arg->transform.option.item[i]);
-		}
-	}
-	else
-		arg->transform.option.len = 0;
-
-	/* transformation object for building dst dataset */
-	arg->transform.arg.transform = GDALCreateGenImgProjTransformer2(arg->src.ds, NULL, arg->transform.option.item);
-	if (NULL == arg->transform.arg.transform) {
-		rterror("rt_raster_gdal_warp: Could not create GDAL transformation object for output dataset creation");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* get approximate output georeferenced bounds and resolution */
-	cplerr = GDALSuggestedWarpOutput2(
-		arg->src.ds, GDALGenImgProjTransform,
-		arg->transform.arg.transform, _gt, &(_dim[0]), &(_dim[1]), dst_extent, 0);
-	if (cplerr != CE_None) {
-		rterror("rt_raster_gdal_warp: Could not get GDAL suggested warp output for output dataset creation");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-	GDALDestroyGenImgProjTransformer(arg->transform.arg.transform);
-	arg->transform.arg.transform = NULL;
-
-	/*
-		don't use suggested dimensions as use of suggested scales
-		on suggested extent will result in suggested dimensions
-	*/
-	_dim[0] = 0;
-	_dim[1] = 0;
-
-	RASTER_DEBUGF(3, "Suggested geotransform: %f, %f, %f, %f, %f, %f",
-		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
-
-	/* store extent in easier-to-use object */
-	extent.MinX = dst_extent[0];
-	extent.MinY = dst_extent[1];
-	extent.MaxX = dst_extent[2];
-	extent.MaxY = dst_extent[3];
-
-	extent.UpperLeftX = dst_extent[0];
-	extent.UpperLeftY = dst_extent[3];
-
-	RASTER_DEBUGF(3, "Suggested extent: %f, %f, %f, %f",
-		extent.MinX, extent.MinY, extent.MaxX, extent.MaxY);
-
-	/* scale and width/height are mutually exclusive */
-	if (
-		((NULL != scale_x) || (NULL != scale_y)) &&
-		((NULL != width) || (NULL != height))
-	) {
-		rterror("rt_raster_gdal_warp: Scale X/Y and width/height are mutually exclusive.  Only provide one");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* user-defined width */
-	if (NULL != width) {
-		_dim[0] = abs(*width);
-		_scale[0] = fabs((extent.MaxX - extent.MinX) / ((double) _dim[0]));
-	}
-	/* user-defined height */
-	if (NULL != height) {
-		_dim[1] = abs(*height);
-		_scale[1] = fabs((extent.MaxY - extent.MinY) / ((double) _dim[1]));
-	}
-
-	/* user-defined scale */
-	if (
-		((NULL != scale_x) && (FLT_NEQ(*scale_x, 0.0))) &&
-		((NULL != scale_y) && (FLT_NEQ(*scale_y, 0.0)))
-	) {
-		_scale[0] = fabs(*scale_x);
-		_scale[1] = fabs(*scale_y);
-
-		/* special override */
-		if (subgt) {
-			_scale[0] *= 10;
-			_scale[1] *= 10;
-		}
-	}
-	else if (
-		((NULL != scale_x) && (NULL == scale_y)) ||
-		((NULL == scale_x) && (NULL != scale_y))
-	) {
-		rterror("rt_raster_gdal_warp: Both X and Y scale values must be provided for scale");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* scale not defined, use suggested */
-	if (FLT_EQ(_scale[0], 0) && FLT_EQ(_scale[1], 0)) {
-		_scale[0] = fabs(_gt[1]);
-		_scale[1] = fabs(_gt[5]);
-	}
-
-	RASTER_DEBUGF(4, "Using scale: %f x %f", _scale[0], -1 * _scale[1]);
-
-	/* user-defined skew */
-	if (NULL != skew_x) {
-		_skew[0] = *skew_x;
-
-		/*
-			negative scale-x affects skew
-			for now, force skew to be in left-right, top-down orientation
-		*/
-		if (
-			NULL != scale_x &&
-			*scale_x < 0.
-		) {
-			_skew[0] *= -1;
-		}
-	}
-	if (NULL != skew_y) {
-		_skew[1] = *skew_y;
-
-		/*
-			positive scale-y affects skew
-			for now, force skew to be in left-right, top-down orientation
-		*/
-		if (
-			NULL != scale_y &&
-			*scale_y > 0.
-		) {
-			_skew[1] *= -1;
-		}
-	}
-
-	RASTER_DEBUGF(4, "Using skew: %f x %f", _skew[0], _skew[1]);
-
-	/* reprocess extent if skewed */
-	if (
-		FLT_NEQ(_skew[0], 0) ||
-		FLT_NEQ(_skew[1], 0)
-	) {
-		rt_raster skewedrast;
-
-		RASTER_DEBUG(3, "Computing skewed extent's envelope");
-
-		skewedrast = rt_raster_compute_skewed_raster(
-			extent,
-			_skew,
-			_scale,
-			0.01
-		);
-		if (skewedrast == NULL) {
-			rterror("rt_raster_gdal_warp: Could not compute skewed raster");
-			_rti_warp_arg_destroy(arg);
-			return NULL;
-		}
-
-		if (_dim[0] == 0)
-			_dim[0] = skewedrast->width;
-		if (_dim[1] == 0)
-			_dim[1] = skewedrast->height;
-
-		extent.UpperLeftX = skewedrast->ipX;
-		extent.UpperLeftY = skewedrast->ipY;
-
-		rt_raster_destroy(skewedrast);
-	}
-
-	/* dimensions not defined, compute */
-	if (!_dim[0])
-		_dim[0] = (int) fmax((fabs(extent.MaxX - extent.MinX) + (_scale[0] / 2.)) / _scale[0], 1);
-	if (!_dim[1])
-		_dim[1] = (int) fmax((fabs(extent.MaxY - extent.MinY) + (_scale[1] / 2.)) / _scale[1], 1);
-
-	/* temporary raster */
-	rast = rt_raster_new(_dim[0], _dim[1]);
-	if (rast == NULL) {
-		rterror("rt_raster_gdal_warp: Out of memory allocating temporary raster");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* set raster's spatial attributes */
-	rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
-	rt_raster_set_scale(rast, _scale[0], -1 * _scale[1]);
-	rt_raster_set_skews(rast, _skew[0], _skew[1]);
-
-	rt_raster_get_geotransform_matrix(rast, _gt);
-	RASTER_DEBUGF(3, "Temp raster's geotransform: %f, %f, %f, %f, %f, %f",
-		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
-	RASTER_DEBUGF(3, "Temp raster's dimensions (width x height): %d x %d",
-		_dim[0], _dim[1]);
-
-	/* user-defined upper-left corner */
-	if (
-		NULL != ul_xw &&
-		NULL != ul_yw
-	) {
-		ul_user = 1;
-
-		RASTER_DEBUGF(4, "Using user-specified upper-left corner: %f, %f", *ul_xw, *ul_yw);
-
-		/* set upper-left corner */
-		rt_raster_set_offsets(rast, *ul_xw, *ul_yw);
-		extent.UpperLeftX = *ul_xw;
-		extent.UpperLeftY = *ul_yw;
-	}
-	else if (
-		((NULL != ul_xw) && (NULL == ul_yw)) ||
-		((NULL == ul_xw) && (NULL != ul_yw))
-	) {
-		rterror("rt_raster_gdal_warp: Both X and Y upper-left corner values must be provided");
-		rt_raster_destroy(rast);
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* alignment only considered if upper-left corner not provided */
-	if (
-		!ul_user && (
-			(NULL != grid_xw) || (NULL != grid_yw)
-		)
-	) {
-
-		if (
-			((NULL != grid_xw) && (NULL == grid_yw)) ||
-			((NULL == grid_xw) && (NULL != grid_yw))
-		) {
-			rterror("rt_raster_gdal_warp: Both X and Y alignment values must be provided");
-			rt_raster_destroy(rast);
-			_rti_warp_arg_destroy(arg);
-			return NULL;
-		}
-
-		RASTER_DEBUGF(4, "Aligning extent to user-specified grid: %f, %f", *grid_xw, *grid_yw);
-
-		do {
-			double _r[2] = {0};
-			double _w[2] = {0};
-
-			/* raster is already aligned */
-			if (FLT_EQ(*grid_xw, extent.UpperLeftX) && FLT_EQ(*grid_yw, extent.UpperLeftY)) {
-				RASTER_DEBUG(3, "Skipping raster alignment as it is already aligned to grid");
-				break;
-			}
-
-			extent.UpperLeftX = rast->ipX;
-			extent.UpperLeftY = rast->ipY;
-			rt_raster_set_offsets(rast, *grid_xw, *grid_yw);
-
-			/* process upper-left corner */
-			if (rt_raster_geopoint_to_cell(
-				rast,
-				extent.UpperLeftX, extent.UpperLeftY,
-				&(_r[0]), &(_r[1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_gdal_warp: Could not compute raster pixel for spatial coordinates");
-				rt_raster_destroy(rast);
-				_rti_warp_arg_destroy(arg);
-				return NULL;
-			}
-
-			if (rt_raster_cell_to_geopoint(
-				rast,
-				_r[0], _r[1],
-				&(_w[0]), &(_w[1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
-
-				rt_raster_destroy(rast);
-				_rti_warp_arg_destroy(arg);
-				return NULL;
-			}
-
-			/* shift occurred */
-			if (FLT_NEQ(_w[0], extent.UpperLeftX)) {
-				if (NULL == width)
-					rast->width++;
-				else if (NULL == scale_x) {
-					double _c[2] = {0};
-
-					rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
-
-					/* get upper-right corner */
-					if (rt_raster_cell_to_geopoint(
-						rast,
-						rast->width, 0,
-						&(_c[0]), &(_c[1]),
-						NULL
-					) != ES_NONE) {
-						rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
-						rt_raster_destroy(rast);
-						_rti_warp_arg_destroy(arg);
-						return NULL;
-					}
-
-					rast->scaleX = fabs((_c[0] - _w[0]) / ((double) rast->width));
-				}
-			}
-			if (FLT_NEQ(_w[1], extent.UpperLeftY)) {
-				if (NULL == height)
-					rast->height++;
-				else if (NULL == scale_y) {
-					double _c[2] = {0};
-
-					rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
-
-					/* get upper-right corner */
-					if (rt_raster_cell_to_geopoint(
-						rast,
-						0, rast->height,
-						&(_c[0]), &(_c[1]),
-						NULL
-					) != ES_NONE) {
-						rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
-
-						rt_raster_destroy(rast);
-						_rti_warp_arg_destroy(arg);
-						return NULL;
-					}
-
-					rast->scaleY = -1 * fabs((_c[1] - _w[1]) / ((double) rast->height));
-				}
-			}
-
-			rt_raster_set_offsets(rast, _w[0], _w[1]);
-			RASTER_DEBUGF(4, "aligned offsets: %f x %f", _w[0], _w[1]);
-		}
-		while (0);
-	}
-
-	/*
-		after this point, rt_envelope extent is no longer used
-	*/
-
-	/* get key attributes from rast */
-	_dim[0] = rast->width;
-	_dim[1] = rast->height;
-	rt_raster_get_geotransform_matrix(rast, _gt);
-
-	/* scale-x is negative or scale-y is positive */
-	if ((
-		(NULL != scale_x) && (*scale_x < 0.)
-	) || (
-		(NULL != scale_y) && (*scale_y > 0)
-	)) {
-		double _w[2] = {0};
-
-		/* negative scale-x */
-		if (
-			(NULL != scale_x) &&
-			(*scale_x < 0.)
-		) {
-			if (rt_raster_cell_to_geopoint(
-				rast,
-				rast->width, 0,
-				&(_w[0]), &(_w[1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
-				rt_raster_destroy(rast);
-				_rti_warp_arg_destroy(arg);
-				return NULL;
-			}
-
-			_gt[0] = _w[0];
-			_gt[1] = *scale_x;
-
-			/* check for skew */
-			if (NULL != skew_x && FLT_NEQ(*skew_x, 0))
-				_gt[2] = *skew_x;
-		}
-		/* positive scale-y */
-		if (
-			(NULL != scale_y) &&
-			(*scale_y > 0)
-		) {
-			if (rt_raster_cell_to_geopoint(
-				rast,
-				0, rast->height,
-				&(_w[0]), &(_w[1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
-				rt_raster_destroy(rast);
-				_rti_warp_arg_destroy(arg);
-				return NULL;
-			}
-
-			_gt[3] = _w[1];
-			_gt[5] = *scale_y;
-
-			/* check for skew */
-			if (NULL != skew_y && FLT_NEQ(*skew_y, 0))
-				_gt[4] = *skew_y;
-		}
-	}
-
-	rt_raster_destroy(rast);
-	rast = NULL;
-
-	RASTER_DEBUGF(3, "Applied geotransform: %f, %f, %f, %f, %f, %f",
-		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
-	RASTER_DEBUGF(3, "Raster dimensions (width x height): %d x %d",
-		_dim[0], _dim[1]);
-
-	if (FLT_EQ(_dim[0], 0) || FLT_EQ(_dim[1], 0)) {
-		rterror("rt_raster_gdal_warp: The width (%f) or height (%f) of the warped raster is zero", _dim[0], _dim[1]);
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* load VRT driver */
-	if (!rt_util_gdal_driver_registered("VRT")) {
-		GDALRegister_VRT();
-		arg->dst.destroy_drv = 1;
-	}
-	arg->dst.drv = GDALGetDriverByName("VRT");
-	if (NULL == arg->dst.drv) {
-		rterror("rt_raster_gdal_warp: Could not load the output GDAL VRT driver");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* create dst dataset */
-	arg->dst.ds = GDALCreate(arg->dst.drv, "", _dim[0], _dim[1], 0, GDT_Byte, dst_options);
-	if (NULL == arg->dst.ds) {
-		rterror("rt_raster_gdal_warp: Could not create GDAL VRT dataset");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* set dst srs */
-	if (arg->dst.srs != NULL) {
-		cplerr = GDALSetProjection(arg->dst.ds, arg->dst.srs);
-		if (cplerr != CE_None) {
-			rterror("rt_raster_gdal_warp: Could not set projection");
-			_rti_warp_arg_destroy(arg);
-			return NULL;
-		}
-		RASTER_DEBUGF(3, "Applied SRS: %s", GDALGetProjectionRef(arg->dst.ds));
-	}
-
-	/* set dst geotransform */
-	cplerr = GDALSetGeoTransform(arg->dst.ds, _gt);
-	if (cplerr != CE_None) {
-		rterror("rt_raster_gdal_warp: Could not set geotransform");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* add bands to dst dataset */
-	numBands = rt_raster_get_num_bands(raster);
-	for (i = 0; i < numBands; i++) {
-		rtband = rt_raster_get_band(raster, i);
-		if (NULL == rtband) {
-			rterror("rt_raster_gdal_warp: Could not get band %d for adding to VRT dataset", i);
-			_rti_warp_arg_destroy(arg);
-			return NULL;
-		}
-
-		pt = rt_band_get_pixtype(rtband);
-		gdal_pt = rt_util_pixtype_to_gdal_datatype(pt);
-		if (gdal_pt == GDT_Unknown)
-			rtwarn("rt_raster_gdal_warp: Unknown pixel type for band %d", i);
-
-		cplerr = GDALAddBand(arg->dst.ds, gdal_pt, NULL);
-		if (cplerr != CE_None) {
-			rterror("rt_raster_gdal_warp: Could not add band to VRT dataset");
-			_rti_warp_arg_destroy(arg);
-			return NULL;
-		}
-
-		/* get band to write data to */
-		band = NULL;
-		band = GDALGetRasterBand(arg->dst.ds, i + 1);
-		if (NULL == band) {
-			rterror("rt_raster_gdal_warp: Could not get GDAL band for additional processing");
-			_rti_warp_arg_destroy(arg);
-			return NULL;
-		}
-
-		/* set nodata */
-		if (rt_band_get_hasnodata_flag(rtband) != FALSE) {
-			hasnodata = 1;
-			rt_band_get_nodata(rtband, &nodata);
-			if (GDALSetRasterNoDataValue(band, nodata) != CE_None)
-				rtwarn("rt_raster_gdal_warp: Could not set nodata value for band %d", i);
-			RASTER_DEBUGF(3, "nodata value set to %f", GDALGetRasterNoDataValue(band, NULL));
-		}
-	}
-
-	/* create transformation object */
-	arg->transform.arg.transform = arg->transform.arg.imgproj = GDALCreateGenImgProjTransformer2(
-		arg->src.ds, arg->dst.ds,
-		arg->transform.option.item
-	);
-	if (NULL == arg->transform.arg.transform) {
-		rterror("rt_raster_gdal_warp: Could not create GDAL transformation object");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-	arg->transform.func = GDALGenImgProjTransform;
-
-	/* use approximate transformation object */
-	if (max_err > 0.0) {
-		arg->transform.arg.transform = arg->transform.arg.approx = GDALCreateApproxTransformer(
-			GDALGenImgProjTransform,
-			arg->transform.arg.imgproj, max_err
-		);
-		if (NULL == arg->transform.arg.transform) {
-			rterror("rt_raster_gdal_warp: Could not create GDAL approximate transformation object");
-			_rti_warp_arg_destroy(arg);
-			return NULL;
-		}
-
-		arg->transform.func = GDALApproxTransform;
-	}
-
-	/* warp options */
-	arg->wopts = GDALCreateWarpOptions();
-	if (NULL == arg->wopts) {
-		rterror("rt_raster_gdal_warp: Could not create GDAL warp options object");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-
-	/* set options */
-	arg->wopts->eResampleAlg = resample_alg;
-	arg->wopts->hSrcDS = arg->src.ds;
-	arg->wopts->hDstDS = arg->dst.ds;
-	arg->wopts->pfnTransformer = arg->transform.func;
-	arg->wopts->pTransformerArg = arg->transform.arg.transform;
-	arg->wopts->papszWarpOptions = (char **) CPLMalloc(sizeof(char *) * 2);
-	arg->wopts->papszWarpOptions[0] = (char *) CPLMalloc(sizeof(char) * (strlen("INIT_DEST=NO_DATA") + 1));
-	strcpy(arg->wopts->papszWarpOptions[0], "INIT_DEST=NO_DATA");
-	arg->wopts->papszWarpOptions[1] = NULL;
-
-	/* set band mapping */
-	arg->wopts->nBandCount = numBands;
-	arg->wopts->panSrcBands = (int *) CPLMalloc(sizeof(int) * arg->wopts->nBandCount);
-	arg->wopts->panDstBands = (int *) CPLMalloc(sizeof(int) * arg->wopts->nBandCount);
-	for (i = 0; i < arg->wopts->nBandCount; i++)
-		arg->wopts->panDstBands[i] = arg->wopts->panSrcBands[i] = i + 1;
-
-	/* set nodata mapping */
-	if (hasnodata) {
-		RASTER_DEBUG(3, "Setting nodata mapping");
-		arg->wopts->padfSrcNoDataReal = (double *) CPLMalloc(numBands * sizeof(double));
-		arg->wopts->padfDstNoDataReal = (double *) CPLMalloc(numBands * sizeof(double));
-		arg->wopts->padfSrcNoDataImag = (double *) CPLMalloc(numBands * sizeof(double));
-		arg->wopts->padfDstNoDataImag = (double *) CPLMalloc(numBands * sizeof(double));
-		if (
-			NULL == arg->wopts->padfSrcNoDataReal ||
-			NULL == arg->wopts->padfDstNoDataReal ||
-			NULL == arg->wopts->padfSrcNoDataImag ||
-			NULL == arg->wopts->padfDstNoDataImag
-		) {
-			rterror("rt_raster_gdal_warp: Out of memory allocating nodata mapping");
-			_rti_warp_arg_destroy(arg);
-			return NULL;
-		}
-		for (i = 0; i < numBands; i++) {
-			band = rt_raster_get_band(raster, i);
-			if (!band) {
-				rterror("rt_raster_gdal_warp: Could not process bands for nodata values");
-				_rti_warp_arg_destroy(arg);
-				return NULL;
-			}
-
-			if (!rt_band_get_hasnodata_flag(band)) {
-				/*
-					based on line 1004 of gdalwarp.cpp
-					the problem is that there is a chance that this number is a legitimate value
-				*/
-				arg->wopts->padfSrcNoDataReal[i] = -123456.789;
-			}
-			else {
-				rt_band_get_nodata(band, &(arg->wopts->padfSrcNoDataReal[i]));
-			}
-
-			arg->wopts->padfDstNoDataReal[i] = arg->wopts->padfSrcNoDataReal[i];
-			arg->wopts->padfDstNoDataImag[i] = arg->wopts->padfSrcNoDataImag[i] = 0.0;
-			RASTER_DEBUGF(4, "Mapped nodata value for band %d: %f (%f) => %f (%f)",
-				i,
-				arg->wopts->padfSrcNoDataReal[i], arg->wopts->padfSrcNoDataImag[i],
-				arg->wopts->padfDstNoDataReal[i], arg->wopts->padfDstNoDataImag[i]
-			);
-		}
-	}
-
-	/* warp raster */
-	RASTER_DEBUG(3, "Warping raster");
-	cplerr = GDALInitializeWarpedVRT(arg->dst.ds, arg->wopts);
-	if (cplerr != CE_None) {
-		rterror("rt_raster_gdal_warp: Could not warp raster");
-		_rti_warp_arg_destroy(arg);
-		return NULL;
-	}
-	/*
-	GDALSetDescription(arg->dst.ds, "/tmp/warped.vrt");
-	*/
-	GDALFlushCache(arg->dst.ds);
-	RASTER_DEBUG(3, "Raster warped");
-
-	/* convert gdal dataset to raster */
-	RASTER_DEBUG(3, "Converting GDAL dataset to raster");
-	rast = rt_raster_from_gdal_dataset(arg->dst.ds);
-
-	_rti_warp_arg_destroy(arg);
-
-	if (NULL == rast) {
-		rterror("rt_raster_gdal_warp: Could not warp raster");
-		return NULL;
-	}
-
-	/* substitute geotransform matrix, reset back to default */
-	if (subgt) {
-		double gt[6] = {0, 1, 0, 0, 0, -1};
-		/* See http://trac.osgeo.org/postgis/ticket/2911 */
-		/* We should proably also tweak rotation here */
-		/* NOTE: the division by 10 is because it was multiplied by 10 in
-		 * a section above. I'm not sure the above division was needed */
-		gt[1] = _scale[0] / 10;
-		gt[5] = -1 * _scale[1] / 10;
-
-		rt_raster_set_geotransform_matrix(rast, gt);
-	}
-
-	RASTER_DEBUG(3, "done");
-
-	return rast;
-}
-
-/******************************************************************************
-* rt_raster_gdal_rasterize()
-******************************************************************************/
-
-typedef struct _rti_rasterize_arg_t* _rti_rasterize_arg;
-struct _rti_rasterize_arg_t {
-	uint8_t noband;
-
-	uint32_t numbands; 
-
-	rt_pixtype *pixtype;
-	double *init;
-	double *nodata;
-	uint8_t *hasnodata;
-	double *value;
-	int *bandlist;
-};
-
-static _rti_rasterize_arg
-_rti_rasterize_arg_init() {
-	_rti_rasterize_arg arg = NULL;
-
-	arg = rtalloc(sizeof(struct _rti_rasterize_arg_t));
-	if (arg == NULL) {
-		rterror("_rti_rasterize_arg_init: Could not allocate memory for _rti_rasterize_arg");
-		return NULL;
-	}
-
-	arg->noband = 0;
-
-	arg->numbands = 0;
-	arg->pixtype = NULL;
-	arg->init = NULL;
-	arg->nodata = NULL;
-	arg->hasnodata = NULL;
-	arg->value = NULL;
-	arg->bandlist = NULL;
-
-	return arg;
-}
-
-static void
-_rti_rasterize_arg_destroy(_rti_rasterize_arg arg) {
-	if (arg->noband) {
-		if (arg->pixtype != NULL)
-			rtdealloc(arg->pixtype);
-		if (arg->init != NULL)
-			rtdealloc(arg->init);
-		if (arg->nodata != NULL)
-			rtdealloc(arg->nodata);
-		if (arg->hasnodata != NULL)
-			rtdealloc(arg->hasnodata);
-		if (arg->value != NULL)
-			rtdealloc(arg->value);
-	}
-
-	if (arg->bandlist != NULL)
-		rtdealloc(arg->bandlist);
-
-	rtdealloc(arg);
-}
-
-/**
- * Return a raster of the provided geometry
- *
- * @param wkb : WKB representation of the geometry to convert
- * @param wkb_len : length of the WKB representation of the geometry
- * @param srs : the geometry's coordinate system in OGC WKT
- * @param num_bands : number of bands in the output raster
- * @param pixtype : data type of each band
- * @param init : array of values to initialize each band with
- * @param value : array of values for pixels of geometry
- * @param nodata : array of nodata values for each band
- * @param hasnodata : array flagging the presence of nodata for each band
- * @param width : the number of columns of the raster
- * @param height : the number of rows of the raster
- * @param scale_x : the pixel width of the raster
- * @param scale_y : the pixel height of the raster
- * @param ul_xw : the X value of upper-left corner of the raster
- * @param ul_yw : the Y value of upper-left corner of the raster
- * @param grid_xw : the X value of point on grid to align raster to
- * @param grid_yw : the Y value of point on grid to align raster to
- * @param skew_x : the X skew of the raster
- * @param skew_y : the Y skew of the raster
- * @param options : array of options.  only option is "ALL_TOUCHED"
- *
- * @return the raster of the provided geometry or NULL
- */
-rt_raster
-rt_raster_gdal_rasterize(
-	const unsigned char *wkb, uint32_t wkb_len,
-	const char *srs,
-	uint32_t num_bands, rt_pixtype *pixtype,
-	double *init, double *value,
-	double *nodata, uint8_t *hasnodata,
-	int *width, int *height,
-	double *scale_x, double *scale_y,
-	double *ul_xw, double *ul_yw,
-	double *grid_xw, double *grid_yw,
-	double *skew_x, double *skew_y,
-	char **options
-) {
-	rt_raster rast = NULL;
-	int i = 0;
-	int err = 0;
-
-	_rti_rasterize_arg arg = NULL;
-
-	int _dim[2] = {0};
-	double _scale[2] = {0};
-	double _skew[2] = {0};
-
-	OGRErr ogrerr;
-	OGRSpatialReferenceH src_sr = NULL;
-	OGRGeometryH src_geom;
-	OGREnvelope src_env;
-	rt_envelope extent;
-	OGRwkbGeometryType wkbtype = wkbUnknown;
-
-	int ul_user = 0;
-
-	CPLErr cplerr;
-	double _gt[6] = {0};
-	GDALDriverH _drv = NULL;
-	int unload_drv = 0;
-	GDALDatasetH _ds = NULL;
-	GDALRasterBandH _band = NULL;
-
-	uint16_t _width = 0;
-	uint16_t _height = 0;
-
-	RASTER_DEBUG(3, "starting");
-
-	assert(NULL != wkb);
-	assert(0 != wkb_len);
-
-	/* internal variables */
-	arg = _rti_rasterize_arg_init();
-	if (arg == NULL) {
-		rterror("rt_raster_gdal_rasterize: Could not initialize internal variables");
-		return NULL;
-	}
-
-	/* no bands, raster is a mask */
-	if (num_bands < 1) {
-		arg->noband = 1;
-		arg->numbands = 1;
-
-		arg->pixtype = (rt_pixtype *) rtalloc(sizeof(rt_pixtype));
-		arg->pixtype[0] = PT_8BUI;
-
-		arg->init = (double *) rtalloc(sizeof(double));
-		arg->init[0] = 0;
-
-		arg->nodata = (double *) rtalloc(sizeof(double));
-		arg->nodata[0] = 0;
-
-		arg->hasnodata = (uint8_t *) rtalloc(sizeof(uint8_t));
-		arg->hasnodata[0] = 1;
-
-		arg->value = (double *) rtalloc(sizeof(double));
-		arg->value[0] = 1;
-	}
-	else {
-		arg->noband = 0;
-		arg->numbands = num_bands;
-
-		arg->pixtype = pixtype;
-		arg->init = init;
-		arg->nodata = nodata;
-		arg->hasnodata = hasnodata;
-		arg->value = value;
-	}
-
-	/* OGR spatial reference */
-	if (NULL != srs && strlen(srs)) {
-		src_sr = OSRNewSpatialReference(NULL);
-		if (OSRSetFromUserInput(src_sr, srs) != OGRERR_NONE) {
-			rterror("rt_raster_gdal_rasterize: Could not create OSR spatial reference using the provided srs: %s", srs);
-			_rti_rasterize_arg_destroy(arg);
-			return NULL;
-		}
-	}
-
-	/* convert WKB to OGR Geometry */
-	ogrerr = OGR_G_CreateFromWkb((unsigned char *) wkb, src_sr, &src_geom, wkb_len);
-	if (ogrerr != OGRERR_NONE) {
-		rterror("rt_raster_gdal_rasterize: Could not create OGR Geometry from WKB");
-
-		_rti_rasterize_arg_destroy(arg);
-
-		if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-		/* OGRCleanupAll(); */
-
-		return NULL;
-	}
-
-	/* OGR Geometry is empty */
-	if (OGR_G_IsEmpty(src_geom)) {
-		rtinfo("Geometry provided is empty. Returning empty raster");
-
-		_rti_rasterize_arg_destroy(arg);
-
-		OGR_G_DestroyGeometry(src_geom);
-		if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-		/* OGRCleanupAll(); */
-
-		return rt_raster_new(0, 0);
-	}
-
-	/* get envelope */
-	OGR_G_GetEnvelope(src_geom, &src_env);
-	rt_util_from_ogr_envelope(src_env, &extent);
-
-	RASTER_DEBUGF(3, "Suggested raster envelope: %f, %f, %f, %f",
-		extent.MinX, extent.MinY, extent.MaxX, extent.MaxY);
-
-	/* user-defined scale */
-	if (
-		(NULL != scale_x) &&
-		(NULL != scale_y) &&
-		(FLT_NEQ(*scale_x, 0.0)) &&
-		(FLT_NEQ(*scale_y, 0.0))
-	) {
-		/* for now, force scale to be in left-right, top-down orientation */
-		_scale[0] = fabs(*scale_x);
-		_scale[1] = fabs(*scale_y);
-	}
-	/* user-defined width/height */
-	else if (
-		(NULL != width) &&
-		(NULL != height) &&
-		(FLT_NEQ(*width, 0.0)) &&
-		(FLT_NEQ(*height, 0.0))
-	) {
-		_dim[0] = fabs(*width);
-		_dim[1] = fabs(*height);
-
-		if (FLT_NEQ(extent.MaxX, extent.MinX))
-			_scale[0] = fabs((extent.MaxX - extent.MinX) / _dim[0]);
-		else
-			_scale[0] = 1.;
-
-		if (FLT_NEQ(extent.MaxY, extent.MinY))
-			_scale[1] = fabs((extent.MaxY - extent.MinY) / _dim[1]);
-		else
-			_scale[1] = 1.;
-	}
-	else {
-		rterror("rt_raster_gdal_rasterize: Values must be provided for width and height or X and Y of scale");
-
-		_rti_rasterize_arg_destroy(arg);
-
-		OGR_G_DestroyGeometry(src_geom);
-		if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-		/* OGRCleanupAll(); */
-
-		return NULL;
-	}
-	RASTER_DEBUGF(3, "scale (x, y) = %f, %f", _scale[0], -1 * _scale[1]);
-	RASTER_DEBUGF(3, "dim (x, y) = %d, %d", _dim[0], _dim[1]);
-
-	/* user-defined skew */
-	if (NULL != skew_x) {
-		_skew[0] = *skew_x;
-
-		/*
-			negative scale-x affects skew
-			for now, force skew to be in left-right, top-down orientation
-		*/
-		if (
-			NULL != scale_x &&
-			*scale_x < 0.
-		) {
-			_skew[0] *= -1;
-		}
-	}
-	if (NULL != skew_y) {
-		_skew[1] = *skew_y;
-
-		/*
-			positive scale-y affects skew
-			for now, force skew to be in left-right, top-down orientation
-		*/
-		if (
-			NULL != scale_y &&
-			*scale_y > 0.
-		) {
-			_skew[1] *= -1;
-		}
-	}
-
-	/*
-	 	if geometry is a point, a linestring or set of either and bounds not set,
-		increase extent by a pixel to avoid missing points on border
-
-		a whole pixel is used instead of half-pixel due to backward
-		compatibility with GDAL 1.6, 1.7 and 1.8.  1.9+ works fine with half-pixel.
-	*/
-	wkbtype = wkbFlatten(OGR_G_GetGeometryType(src_geom));
-	if ((
-			(wkbtype == wkbPoint) ||
-			(wkbtype == wkbMultiPoint) ||
-			(wkbtype == wkbLineString) ||
-			(wkbtype == wkbMultiLineString)
-		) &&
-		FLT_EQ(_dim[0], 0) &&
-		FLT_EQ(_dim[1], 0)
-	) {
-		int result;
-		LWPOLY *epoly = NULL;
-		LWGEOM *lwgeom = NULL;
-		GEOSGeometry *egeom = NULL;
-		GEOSGeometry *geom = NULL;
-
-		RASTER_DEBUG(3, "Testing geometry is properly contained by extent");
-
-		/*
-			see if geometry is properly contained by extent
-			all parts of geometry lies within extent
-		*/
-
-		/* initialize GEOS */
-		initGEOS(lwnotice, lwgeom_geos_error);
-
-		/* convert envelope to geometry */
-		RASTER_DEBUG(4, "Converting envelope to geometry");
-		epoly = rt_util_envelope_to_lwpoly(extent);
-		if (epoly == NULL) {
-			rterror("rt_raster_gdal_rasterize: Could not create envelope's geometry to test if geometry is properly contained by extent");
-
-			_rti_rasterize_arg_destroy(arg);
-
-			OGR_G_DestroyGeometry(src_geom);
-			if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-			/* OGRCleanupAll(); */
-
-			return NULL;
-		}
-
-		egeom = (GEOSGeometry *) LWGEOM2GEOS(lwpoly_as_lwgeom(epoly));
-		lwpoly_free(epoly);
-
-		/* convert WKB to geometry */
-		RASTER_DEBUG(4, "Converting WKB to geometry");
-		lwgeom = lwgeom_from_wkb(wkb, wkb_len, LW_PARSER_CHECK_NONE);
-		geom = (GEOSGeometry *) LWGEOM2GEOS(lwgeom);
-		lwgeom_free(lwgeom);
-
-		result = GEOSRelatePattern(egeom, geom, "T**FF*FF*");
-		GEOSGeom_destroy(geom);
-		GEOSGeom_destroy(egeom);
-
-		if (result == 2) {
-			rterror("rt_raster_gdal_rasterize: Could not test if geometry is properly contained by extent for geometry within extent");
-
-			_rti_rasterize_arg_destroy(arg);
-
-			OGR_G_DestroyGeometry(src_geom);
-			if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-			/* OGRCleanupAll(); */
-
-			return NULL;
-		}
-
-		/* geometry NOT properly contained by extent */
-		if (!result) {
-
-#if POSTGIS_GDAL_VERSION > 18
-
-			/* check alignment flag: grid_xw */
-			if (
-				(NULL == ul_xw && NULL == ul_yw) &&
-				(NULL != grid_xw && NULL != grid_xw) &&
-				FLT_NEQ(*grid_xw, extent.MinX)
-			) {
-				// do nothing
-				RASTER_DEBUG(3, "Skipping extent adjustment on X-axis due to upcoming alignment");
-			}
-			else {
-				RASTER_DEBUG(3, "Adjusting extent for GDAL > 1.8 by half the scale on X-axis");
-				extent.MinX -= (_scale[0] / 2.);
-				extent.MaxX += (_scale[0] / 2.);
-			}
-
-			/* check alignment flag: grid_yw */
-			if (
-				(NULL == ul_xw && NULL == ul_yw) &&
-				(NULL != grid_xw && NULL != grid_xw) &&
-				FLT_NEQ(*grid_yw, extent.MaxY)
-			) {
-				// do nothing
-				RASTER_DEBUG(3, "Skipping extent adjustment on Y-axis due to upcoming alignment");
-			}
-			else {
-				RASTER_DEBUG(3, "Adjusting extent for GDAL > 1.8 by half the scale on Y-axis");
-				extent.MinY -= (_scale[1] / 2.);
-				extent.MaxY += (_scale[1] / 2.);
-			}
-
-#else
-
-			/* check alignment flag: grid_xw */
-			if (
-				(NULL == ul_xw && NULL == ul_yw) &&
-				(NULL != grid_xw && NULL != grid_xw) &&
-				FLT_NEQ(*grid_xw, extent.MinX)
-			) {
-				// do nothing
-				RASTER_DEBUG(3, "Skipping extent adjustment on X-axis due to upcoming alignment");
-			}
-			else {
-				RASTER_DEBUG(3, "Adjusting extent for GDAL <= 1.8 by the scale on X-axis");
-				extent.MinX -= _scale[0];
-				extent.MaxX += _scale[0];
-			}
-
-
-			/* check alignment flag: grid_yw */
-			if (
-				(NULL == ul_xw && NULL == ul_yw) &&
-				(NULL != grid_xw && NULL != grid_xw) &&
-				FLT_NEQ(*grid_yw, extent.MaxY)
-			) {
-				// do nothing
-				RASTER_DEBUG(3, "Skipping extent adjustment on Y-axis due to upcoming alignment");
-			}
-			else {
-				RASTER_DEBUG(3, "Adjusting extent for GDAL <= 1.8 by the scale on Y-axis");
-				extent.MinY -= _scale[1];
-				extent.MaxY += _scale[1];
-			}
-
-#endif
-
-		}
-
-		RASTER_DEBUGF(3, "Adjusted extent: %f, %f, %f, %f",
-			extent.MinX, extent.MinY, extent.MaxX, extent.MaxY);
-
-		extent.UpperLeftX = extent.MinX;
-		extent.UpperLeftY = extent.MaxY;
-	}
-
-	/* reprocess extent if skewed */
-	if (
-		FLT_NEQ(_skew[0], 0) ||
-		FLT_NEQ(_skew[1], 0)
-	) {
-		rt_raster skewedrast;
-
-		RASTER_DEBUG(3, "Computing skewed extent's envelope");
-
-		skewedrast = rt_raster_compute_skewed_raster(
-			extent,
-			_skew,
-			_scale,
-			0.01
-		);
-		if (skewedrast == NULL) {
-			rterror("rt_raster_gdal_rasterize: Could not compute skewed raster");
-
-			_rti_rasterize_arg_destroy(arg);
-
-			OGR_G_DestroyGeometry(src_geom);
-			if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-			/* OGRCleanupAll(); */
-
-			return NULL;
-		}
-
-		_dim[0] = skewedrast->width;
-		_dim[1] = skewedrast->height;
-
-		extent.UpperLeftX = skewedrast->ipX;
-		extent.UpperLeftY = skewedrast->ipY;
-
-		rt_raster_destroy(skewedrast);
-	}
-
-	/* raster dimensions */
-	if (!_dim[0])
-		_dim[0] = (int) fmax((fabs(extent.MaxX - extent.MinX) + (_scale[0] / 2.)) / _scale[0], 1);
-	if (!_dim[1])
-		_dim[1] = (int) fmax((fabs(extent.MaxY - extent.MinY) + (_scale[1] / 2.)) / _scale[1], 1);
-
-	/* temporary raster */
-	rast = rt_raster_new(_dim[0], _dim[1]);
-	if (rast == NULL) {
-		rterror("rt_raster_gdal_rasterize: Out of memory allocating temporary raster");
-
-		_rti_rasterize_arg_destroy(arg);
-
-		OGR_G_DestroyGeometry(src_geom);
-		if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-		/* OGRCleanupAll(); */
-
-		return NULL;
-	}
-
-	/* set raster's spatial attributes */
-	rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
-	rt_raster_set_scale(rast, _scale[0], -1 * _scale[1]);
-	rt_raster_set_skews(rast, _skew[0], _skew[1]);
-
-	rt_raster_get_geotransform_matrix(rast, _gt);
-	RASTER_DEBUGF(3, "Temp raster's geotransform: %f, %f, %f, %f, %f, %f",
-		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
-	RASTER_DEBUGF(3, "Temp raster's dimensions (width x height): %d x %d",
-		_dim[0], _dim[1]);
-
-	/* user-specified upper-left corner */
-	if (
-		NULL != ul_xw &&
-		NULL != ul_yw
-	) {
-		ul_user = 1;
-
-		RASTER_DEBUGF(4, "Using user-specified upper-left corner: %f, %f", *ul_xw, *ul_yw);
-
-		/* set upper-left corner */
-		rt_raster_set_offsets(rast, *ul_xw, *ul_yw);
-		extent.UpperLeftX = *ul_xw;
-		extent.UpperLeftY = *ul_yw;
-	}
-	else if (
-		((NULL != ul_xw) && (NULL == ul_yw)) ||
-		((NULL == ul_xw) && (NULL != ul_yw))
-	) {
-		rterror("rt_raster_gdal_rasterize: Both X and Y upper-left corner values must be provided");
-
-		rt_raster_destroy(rast);
-		_rti_rasterize_arg_destroy(arg);
-
-		OGR_G_DestroyGeometry(src_geom);
-		if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-		/* OGRCleanupAll(); */
-
-		return NULL;
-	}
-
-	/* alignment only considered if upper-left corner not provided */
-	if (
-		!ul_user && (
-			(NULL != grid_xw) || (NULL != grid_yw)
-		)
-	) {
-
-		if (
-			((NULL != grid_xw) && (NULL == grid_yw)) ||
-			((NULL == grid_xw) && (NULL != grid_yw))
-		) {
-			rterror("rt_raster_gdal_rasterize: Both X and Y alignment values must be provided");
-
-			rt_raster_destroy(rast);
-			_rti_rasterize_arg_destroy(arg);
-
-			OGR_G_DestroyGeometry(src_geom);
-			if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-			/* OGRCleanupAll(); */
-
-			return NULL;
-		}
-
-		RASTER_DEBUGF(4, "Aligning extent to user-specified grid: %f, %f", *grid_xw, *grid_yw);
-
-		do {
-			double _r[2] = {0};
-			double _w[2] = {0};
-
-			/* raster is already aligned */
-			if (FLT_EQ(*grid_xw, extent.UpperLeftX) && FLT_EQ(*grid_yw, extent.UpperLeftY)) {
-				RASTER_DEBUG(3, "Skipping raster alignment as it is already aligned to grid");
-				break;
-			}
-
-			extent.UpperLeftX = rast->ipX;
-			extent.UpperLeftY = rast->ipY;
-			rt_raster_set_offsets(rast, *grid_xw, *grid_yw);
-
-			/* process upper-left corner */
-			if (rt_raster_geopoint_to_cell(
-				rast,
-				extent.UpperLeftX, extent.UpperLeftY,
-				&(_r[0]), &(_r[1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_gdal_rasterize: Could not compute raster pixel for spatial coordinates");
-
-				rt_raster_destroy(rast);
-				_rti_rasterize_arg_destroy(arg);
-
-				OGR_G_DestroyGeometry(src_geom);
-				if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-				/* OGRCleanupAll(); */
-
-				return NULL;
-			}
-
-			if (rt_raster_cell_to_geopoint(
-				rast,
-				_r[0], _r[1],
-				&(_w[0]), &(_w[1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
-
-				rt_raster_destroy(rast);
-				_rti_rasterize_arg_destroy(arg);
-
-				OGR_G_DestroyGeometry(src_geom);
-				if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-				/* OGRCleanupAll(); */
-
-				return NULL;
-			}
-
-			/* shift occurred */
-			if (FLT_NEQ(_w[0], extent.UpperLeftX)) {
-				if (NULL == width)
-					rast->width++;
-				else if (NULL == scale_x) {
-					double _c[2] = {0};
-
-					rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
-
-					/* get upper-right corner */
-					if (rt_raster_cell_to_geopoint(
-						rast,
-						rast->width, 0,
-						&(_c[0]), &(_c[1]),
-						NULL
-					) != ES_NONE) {
-						rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
-
-						rt_raster_destroy(rast);
-						_rti_rasterize_arg_destroy(arg);
-
-						OGR_G_DestroyGeometry(src_geom);
-						if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-						/* OGRCleanupAll(); */
-
-						return NULL;
-					}
-
-					rast->scaleX = fabs((_c[0] - _w[0]) / ((double) rast->width));
-				}
-			}
-			if (FLT_NEQ(_w[1], extent.UpperLeftY)) {
-				if (NULL == height)
-					rast->height++;
-				else if (NULL == scale_y) {
-					double _c[2] = {0};
-
-					rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
-
-					/* get upper-right corner */
-					if (rt_raster_cell_to_geopoint(
-						rast,
-						0, rast->height,
-						&(_c[0]), &(_c[1]),
-						NULL
-					) != ES_NONE) {
-						rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
-
-						rt_raster_destroy(rast);
-						_rti_rasterize_arg_destroy(arg);
-
-						OGR_G_DestroyGeometry(src_geom);
-						if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-						/* OGRCleanupAll(); */
-
-						return NULL;
-					}
-
-					rast->scaleY = -1 * fabs((_c[1] - _w[1]) / ((double) rast->height));
-				}
-			}
-
-			rt_raster_set_offsets(rast, _w[0], _w[1]);
-		}
-		while (0);
-	}
-
-	/*
-		after this point, rt_envelope extent is no longer used
-	*/
-
-	/* get key attributes from rast */
-	_dim[0] = rast->width;
-	_dim[1] = rast->height;
-	rt_raster_get_geotransform_matrix(rast, _gt);
-
-	/* scale-x is negative or scale-y is positive */
-	if ((
-		(NULL != scale_x) && (*scale_x < 0.)
-	) || (
-		(NULL != scale_y) && (*scale_y > 0)
-	)) {
-		double _w[2] = {0};
-
-		/* negative scale-x */
-		if (
-			(NULL != scale_x) &&
-			(*scale_x < 0.)
-		) {
-			RASTER_DEBUG(3, "Processing negative scale-x");
-
-			if (rt_raster_cell_to_geopoint(
-				rast,
-				_dim[0], 0,
-				&(_w[0]), &(_w[1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
-
-				rt_raster_destroy(rast);
-				_rti_rasterize_arg_destroy(arg);
-
-				OGR_G_DestroyGeometry(src_geom);
-				if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-				/* OGRCleanupAll(); */
-
-				return NULL;
-			}
-
-			_gt[0] = _w[0];
-			_gt[1] = *scale_x;
-
-			/* check for skew */
-			if (NULL != skew_x && FLT_NEQ(*skew_x, 0))
-				_gt[2] = *skew_x;
-		}
-		/* positive scale-y */
-		if (
-			(NULL != scale_y) &&
-			(*scale_y > 0)
-		) {
-			RASTER_DEBUG(3, "Processing positive scale-y");
-
-			if (rt_raster_cell_to_geopoint(
-				rast,
-				0, _dim[1],
-				&(_w[0]), &(_w[1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
-
-				rt_raster_destroy(rast);
-				_rti_rasterize_arg_destroy(arg);
-
-				OGR_G_DestroyGeometry(src_geom);
-				if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-				/* OGRCleanupAll(); */
-
-				return NULL;
-			}
-
-			_gt[3] = _w[1];
-			_gt[5] = *scale_y;
-
-			/* check for skew */
-			if (NULL != skew_y && FLT_NEQ(*skew_y, 0))
-				_gt[4] = *skew_y;
-		}
-	}
-
-	rt_raster_destroy(rast);
-	rast = NULL;
-
-	RASTER_DEBUGF(3, "Applied geotransform: %f, %f, %f, %f, %f, %f",
-		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
-	RASTER_DEBUGF(3, "Raster dimensions (width x height): %d x %d",
-		_dim[0], _dim[1]);
-
-	/* load GDAL mem */
-	if (!rt_util_gdal_driver_registered("MEM")) {
-		GDALRegister_MEM();
-		unload_drv = 1;
-	}
-	_drv = GDALGetDriverByName("MEM");
-	if (NULL == _drv) {
-		rterror("rt_raster_gdal_rasterize: Could not load the MEM GDAL driver");
-
-		_rti_rasterize_arg_destroy(arg);
-
-		OGR_G_DestroyGeometry(src_geom);
-		if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-		/* OGRCleanupAll(); */
-
-		return NULL;
-	}
-
-	if (unload_drv)
-		GDALDeregisterDriver(_drv);
-
-	_ds = GDALCreate(_drv, "", _dim[0], _dim[1], 0, GDT_Byte, NULL);
-	if (NULL == _ds) {
-		rterror("rt_raster_gdal_rasterize: Could not create a GDALDataset to rasterize the geometry into");
-
-		_rti_rasterize_arg_destroy(arg);
-
-		OGR_G_DestroyGeometry(src_geom);
-		if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-		/* OGRCleanupAll(); */
-
-		if (unload_drv) GDALDestroyDriver(_drv);
-
-		return NULL;
-	}
-
-	/* set geotransform */
-	cplerr = GDALSetGeoTransform(_ds, _gt);
-	if (cplerr != CE_None) {
-		rterror("rt_raster_gdal_rasterize: Could not set geotransform on GDALDataset");
-
-		_rti_rasterize_arg_destroy(arg);
-
-		OGR_G_DestroyGeometry(src_geom);
-		if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-		/* OGRCleanupAll(); */
-
-		GDALClose(_ds);
-		if (unload_drv) GDALDestroyDriver(_drv);
-
-		return NULL;
-	}
-
-	/* set SRS */
-	if (NULL != src_sr) {
-		char *_srs = NULL;
-		OSRExportToWkt(src_sr, &_srs);
-
-		cplerr = GDALSetProjection(_ds, _srs);
-		CPLFree(_srs);
-		if (cplerr != CE_None) {
-			rterror("rt_raster_gdal_rasterize: Could not set projection on GDALDataset");
-
-			_rti_rasterize_arg_destroy(arg);
-
-			OGR_G_DestroyGeometry(src_geom);
-			OSRDestroySpatialReference(src_sr);
-			/* OGRCleanupAll(); */
-
-			GDALClose(_ds);
-			if (unload_drv) GDALDestroyDriver(_drv);
-
-			return NULL;
-		}
-	}
-
-	/* set bands */
-	for (i = 0; i < arg->numbands; i++) {
-		err = 0;
-
-		do {
-			/* add band */
-			cplerr = GDALAddBand(_ds, rt_util_pixtype_to_gdal_datatype(arg->pixtype[i]), NULL);
-			if (cplerr != CE_None) {
-				rterror("rt_raster_gdal_rasterize: Could not add band to GDALDataset");
-				err = 1;
-				break;
-			}
-
-			_band = GDALGetRasterBand(_ds, i + 1);
-			if (NULL == _band) {
-				rterror("rt_raster_gdal_rasterize: Could not get band %d from GDALDataset", i + 1);
-				err = 1;
-				break;
-			}
-
-			/* nodata value */
-			if (arg->hasnodata[i]) {
-				RASTER_DEBUGF(4, "Setting NODATA value of band %d to %f", i, arg->nodata[i]);
-				cplerr = GDALSetRasterNoDataValue(_band, arg->nodata[i]);
-				if (cplerr != CE_None) {
-					rterror("rt_raster_gdal_rasterize: Could not set nodata value");
-					err = 1;
-					break;
-				}
-				RASTER_DEBUGF(4, "NODATA value set to %f", GDALGetRasterNoDataValue(_band, NULL));
-			}
-
-			/* initial value */
-			cplerr = GDALFillRaster(_band, arg->init[i], 0);
-			if (cplerr != CE_None) {
-				rterror("rt_raster_gdal_rasterize: Could not set initial value");
-				err = 1;
-				break;
-			}
-		}
-		while (0);
-
-		if (err) {
-			_rti_rasterize_arg_destroy(arg);
-
-			OGR_G_DestroyGeometry(src_geom);
-			if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-			/* OGRCleanupAll(); */
-
-			GDALClose(_ds);
-			if (unload_drv) GDALDestroyDriver(_drv);
-
-			return NULL;
-		}
-	}
-
-	arg->bandlist = (int *) rtalloc(sizeof(int) * arg->numbands);
-	for (i = 0; i < arg->numbands; i++) arg->bandlist[i] = i + 1;
-
-
-	/* burn geometry */
-	cplerr = GDALRasterizeGeometries(
-		_ds,
-		arg->numbands, arg->bandlist,
-		1, &src_geom,
-		NULL, NULL,
-		arg->value,
-		options,
-		NULL, NULL
-	);
-	if (cplerr != CE_None) {
-		rterror("rt_raster_gdal_rasterize: Could not rasterize geometry");
-
-		_rti_rasterize_arg_destroy(arg);
-
-		OGR_G_DestroyGeometry(src_geom);
-		if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-		/* OGRCleanupAll(); */
-
-		GDALClose(_ds);
-		if (unload_drv) GDALDestroyDriver(_drv);
-
-		return NULL;
-	}
-
-	/* convert gdal dataset to raster */
-	GDALFlushCache(_ds);
-	RASTER_DEBUG(3, "Converting GDAL dataset to raster");
-	rast = rt_raster_from_gdal_dataset(_ds);
-
-	OGR_G_DestroyGeometry(src_geom);
-	if (src_sr != NULL) OSRDestroySpatialReference(src_sr);
-	/* OGRCleanupAll(); */
-
-	GDALClose(_ds);
-	if (unload_drv) GDALDestroyDriver(_drv);
-
-	if (NULL == rast) {
-		rterror("rt_raster_gdal_rasterize: Could not rasterize geometry");
-		return NULL;
-	}
-
-	/* width, height */
-	_width = rt_raster_get_width(rast);
-	_height = rt_raster_get_height(rast);
-
-	/* check each band for pixtype */
-	for (i = 0; i < arg->numbands; i++) {
-		uint8_t *data = NULL;
-		rt_band band = NULL;
-		rt_band oldband = NULL;
-
-		double val = 0;
-		int nodata = 0;
-		int hasnodata = 0;
-		double nodataval = 0;
-		int x = 0;
-		int y = 0;
-
-		oldband = rt_raster_get_band(rast, i);
-		if (oldband == NULL) {
-			rterror("rt_raster_gdal_rasterize: Could not get band %d of output raster", i);
-			_rti_rasterize_arg_destroy(arg);
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-
-		/* band is of user-specified type */
-		if (rt_band_get_pixtype(oldband) == arg->pixtype[i])
-			continue;
-
-		/* hasnodata, nodataval */
-		hasnodata = rt_band_get_hasnodata_flag(oldband);
-		if (hasnodata)
-			rt_band_get_nodata(oldband, &nodataval);
-
-		/* allocate data */
-		data = rtalloc(rt_pixtype_size(arg->pixtype[i]) * _width * _height);
-		if (data == NULL) {
-			rterror("rt_raster_gdal_rasterize: Could not allocate memory for band data");
-			_rti_rasterize_arg_destroy(arg);
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-		memset(data, 0, rt_pixtype_size(arg->pixtype[i]) * _width * _height);
-
-		/* create new band of correct type */
-		band = rt_band_new_inline(
-			_width, _height,
-			arg->pixtype[i],
-			hasnodata, nodataval,
-			data
-		);
-		if (band == NULL) {
-			rterror("rt_raster_gdal_rasterize: Could not create band");
-			rtdealloc(data);
-			_rti_rasterize_arg_destroy(arg);
-			rt_raster_destroy(rast);
-			return NULL;
-		}
-
-		/* give ownership of data to band */
-		rt_band_set_ownsdata_flag(band, 1);
-
-		/* copy pixel by pixel */
-		for (x = 0; x < _width; x++) {
-			for (y = 0; y < _height; y++) {
-				err = rt_band_get_pixel(oldband, x, y, &val, &nodata);
-				if (err != ES_NONE) {
-					rterror("rt_raster_gdal_rasterize: Could not get pixel value");
-					_rti_rasterize_arg_destroy(arg);
-					rt_raster_destroy(rast);
-					rt_band_destroy(band);
-					return NULL;
-				}
-
-				if (nodata)
-					val = nodataval;
-
-				err = rt_band_set_pixel(band, x, y, val, NULL);
-				if (err != ES_NONE) {
-					rterror("rt_raster_gdal_rasterize: Could not set pixel value");
-					_rti_rasterize_arg_destroy(arg);
-					rt_raster_destroy(rast);
-					rt_band_destroy(band);
-					return NULL;
-				}
-			}
-		}
-
-		/* replace band */
-		oldband = rt_raster_replace_band(rast, band, i);
-		if (oldband == NULL) {
-			rterror("rt_raster_gdal_rasterize: Could not replace band %d of output raster", i);
-			_rti_rasterize_arg_destroy(arg);
-			rt_raster_destroy(rast);
-			rt_band_destroy(band);
-			return NULL;
-		}
-
-		/* free oldband */
-		rt_band_destroy(oldband);
-	}
-
-	_rti_rasterize_arg_destroy(arg);
-
-	RASTER_DEBUG(3, "done");
-
-	return rast;
-}
-
-/******************************************************************************
-* rt_raster_intersects()
-******************************************************************************/
-
-static
-int rt_raster_intersects_algorithm(
-	rt_raster rast1, rt_raster rast2,
-	rt_band band1, rt_band band2,
-	int hasnodata1, int hasnodata2,
-	double nodata1, double nodata2
-) {
-	int i;
-	int byHeight = 1;
-	uint32_t dimValue;
-
-	uint32_t row;
-	uint32_t rowoffset;
-	uint32_t col;
-	uint32_t coloffset;
-
-	enum line_points {X1, Y1, X2, Y2};
-	enum point {pX, pY};
-	double line1[4] = {0.};
-	double line2[4] = {0.};
-	double P[2] = {0.};
-	double Qw[2] = {0.};
-	double Qr[2] = {0.};
-	double gt1[6] = {0.};
-	double gt2[6] = {0.};
-	double igt1[6] = {0};
-	double igt2[6] = {0};
-	double d;
-	double val1;
-	int noval1;
-	int isnodata1;
-	double val2;
-	int noval2;
-	int isnodata2;
-	uint32_t adjacent[8] = {0};
-
-	double xscale;
-	double yscale;
-
-	uint16_t width1;
-	uint16_t height1;
-	uint16_t width2;
-	uint16_t height2;
-
-	width1 = rt_raster_get_width(rast1);
-	height1 = rt_raster_get_height(rast1);
-	width2 = rt_raster_get_width(rast2);
-	height2 = rt_raster_get_height(rast2);
-
-	/* sampling scale */
-	xscale = fmin(rt_raster_get_x_scale(rast1), rt_raster_get_x_scale(rast2)) / 10.;
-	yscale = fmin(rt_raster_get_y_scale(rast1), rt_raster_get_y_scale(rast2)) / 10.;
-
-	/* see if skew made rast2's rows are parallel to rast1's cols */
-	rt_raster_cell_to_geopoint(
-		rast1,
-		0, 0,
-		&(line1[X1]), &(line1[Y1]),
-		gt1
-	);
-
-	rt_raster_cell_to_geopoint(
-		rast1,
-		0, height1,
-		&(line1[X2]), &(line1[Y2]),
-		gt1
-	);
-
-	rt_raster_cell_to_geopoint(
-		rast2,
-		0, 0,
-		&(line2[X1]), &(line2[Y1]),
-		gt2
-	);
-
-	rt_raster_cell_to_geopoint(
-		rast2,
-		width2, 0,
-		&(line2[X2]), &(line2[Y2]),
-		gt2
-	);
-
-	/* parallel vertically */
-	if (FLT_EQ(line1[X2] - line1[X1], 0.) && FLT_EQ(line2[X2] - line2[X1], 0.))
-		byHeight = 0;
-	/* parallel */
-	else if (FLT_EQ(((line1[Y2] - line1[Y1]) / (line1[X2] - line1[X1])), ((line2[Y2] - line2[Y1]) / (line2[X2] - line2[X1]))))
-		byHeight = 0;
-
-	if (byHeight)
-		dimValue = height2;
-	else
-		dimValue = width2;
-	RASTER_DEBUGF(4, "byHeight: %d, dimValue: %d", byHeight, dimValue);
-
-	/* 3 x 3 search */
-	for (coloffset = 0; coloffset < 3; coloffset++) {
-		for (rowoffset = 0; rowoffset < 3; rowoffset++) {
-			/* smaller raster */
-			for (col = coloffset; col <= width1; col += 3) {
-
-				rt_raster_cell_to_geopoint(
-					rast1,
-					col, 0,
-					&(line1[X1]), &(line1[Y1]),
-					gt1
-				);
-
-				rt_raster_cell_to_geopoint(
-					rast1,
-					col, height1,
-					&(line1[X2]), &(line1[Y2]),
-					gt1
-				);
-
-				/* larger raster */
-				for (row = rowoffset; row <= dimValue; row += 3) {
-
-					if (byHeight) {
-						rt_raster_cell_to_geopoint(
-							rast2,
-							0, row,
-							&(line2[X1]), &(line2[Y1]),
-							gt2
-						);
-
-						rt_raster_cell_to_geopoint(
-							rast2,
-							width2, row,
-							&(line2[X2]), &(line2[Y2]),
-							gt2
-						);
-					}
-					else {
-						rt_raster_cell_to_geopoint(
-							rast2,
-							row, 0,
-							&(line2[X1]), &(line2[Y1]),
-							gt2
-						);
-
-						rt_raster_cell_to_geopoint(
-							rast2,
-							row, height2,
-							&(line2[X2]), &(line2[Y2]),
-							gt2
-						);
-					}
-
-					RASTER_DEBUGF(4, "(col, row) = (%d, %d)", col, row);
-					RASTER_DEBUGF(4, "line1(x1, y1, x2, y2) = (%f, %f, %f, %f)",
-						line1[X1], line1[Y1], line1[X2], line1[Y2]);
-					RASTER_DEBUGF(4, "line2(x1, y1, x2, y2) = (%f, %f, %f, %f)",
-						line2[X1], line2[Y1], line2[X2], line2[Y2]);
-
-					/* intersection */
-					/* http://en.wikipedia.org/wiki/Line-line_intersection */
-					d = ((line1[X1] - line1[X2]) * (line2[Y1] - line2[Y2])) - ((line1[Y1] - line1[Y2]) * (line2[X1] - line2[X2]));
-					/* no intersection */
-					if (FLT_EQ(d, 0.)) {
-						continue;
-					}
-
-					P[pX] = (((line1[X1] * line1[Y2]) - (line1[Y1] * line1[X2])) * (line2[X1] - line2[X2])) -
-						((line1[X1] - line1[X2]) * ((line2[X1] * line2[Y2]) - (line2[Y1] * line2[X2])));
-					P[pX] = P[pX] / d;
-
-					P[pY] = (((line1[X1] * line1[Y2]) - (line1[Y1] * line1[X2])) * (line2[Y1] - line2[Y2])) -
-						((line1[Y1] - line1[Y2]) * ((line2[X1] * line2[Y2]) - (line2[Y1] * line2[X2])));
-					P[pY] = P[pY] / d;
-
-					RASTER_DEBUGF(4, "P(x, y) = (%f, %f)", P[pX], P[pY]);
-
-					/* intersection within bounds */
-					if ((
-							(FLT_EQ(P[pX], line1[X1]) || FLT_EQ(P[pX], line1[X2])) ||
-								(P[pX] > fmin(line1[X1], line1[X2]) && (P[pX] < fmax(line1[X1], line1[X2])))
-						) && (
-							(FLT_EQ(P[pY], line1[Y1]) || FLT_EQ(P[pY], line1[Y2])) ||
-								(P[pY] > fmin(line1[Y1], line1[Y2]) && (P[pY] < fmax(line1[Y1], line1[Y2])))
-						) && (
-							(FLT_EQ(P[pX], line2[X1]) || FLT_EQ(P[pX], line2[X2])) ||
-								(P[pX] > fmin(line2[X1], line2[X2]) && (P[pX] < fmax(line2[X1], line2[X2])))
-						) && (
-							(FLT_EQ(P[pY], line2[Y1]) || FLT_EQ(P[pY], line2[Y2])) ||
-								(P[pY] > fmin(line2[Y1], line2[Y2]) && (P[pY] < fmax(line2[Y1], line2[Y2])))
-					)) {
-						RASTER_DEBUG(4, "within bounds");
-
-						for (i = 0; i < 8; i++) adjacent[i] = 0;
-
-						/* test points around intersection */
-						for (i = 0; i < 8; i++) {
-							switch (i) {
-								case 7:
-									Qw[pX] = P[pX] - xscale;
-									Qw[pY] = P[pY] + yscale;
-									break;
-								/* 270 degrees = 09:00 */
-								case 6:
-									Qw[pX] = P[pX] - xscale;
-									Qw[pY] = P[pY];
-									break;
-								case 5:
-									Qw[pX] = P[pX] - xscale;
-									Qw[pY] = P[pY] - yscale;
-									break;
-								/* 180 degrees = 06:00 */
-								case 4:
-									Qw[pX] = P[pX];
-									Qw[pY] = P[pY] - yscale;
-									break;
-								case 3:
-									Qw[pX] = P[pX] + xscale;
-									Qw[pY] = P[pY] - yscale;
-									break;
-								/* 90 degrees = 03:00 */
-								case 2:
-									Qw[pX] = P[pX] + xscale;
-									Qw[pY] = P[pY];
-									break;
-								/* 45 degrees */
-								case 1:
-									Qw[pX] = P[pX] + xscale;
-									Qw[pY] = P[pY] + yscale;
-									break;
-								/* 0 degrees = 00:00 */
-								case 0:
-									Qw[pX] = P[pX];
-									Qw[pY] = P[pY] + yscale;
-									break;
-							}
-
-							/* unable to convert point to cell */
-							noval1 = 0;
-							if (rt_raster_geopoint_to_cell(
-								rast1,
-								Qw[pX], Qw[pY],
-								&(Qr[pX]), &(Qr[pY]),
-								igt1
-							) != ES_NONE) {
-								noval1 = 1;
-							}
-							/* cell is outside bounds of grid */
-							else if (
-								(Qr[pX] < 0 || Qr[pX] > width1 || FLT_EQ(Qr[pX], width1)) ||
-								(Qr[pY] < 0 || Qr[pY] > height1 || FLT_EQ(Qr[pY], height1))
-							) {
-								noval1 = 1;
-							}
-							else if (hasnodata1 == FALSE)
-								val1 = 1;
-							/* unable to get value at cell */
-							else if (rt_band_get_pixel(band1, Qr[pX], Qr[pY], &val1, &isnodata1) != ES_NONE)
-								noval1 = 1;
-
-							/* unable to convert point to cell */
-							noval2 = 0;
-							if (rt_raster_geopoint_to_cell(
-								rast2,
-								Qw[pX], Qw[pY],
-								&(Qr[pX]), &(Qr[pY]),
-								igt2
-							) != ES_NONE) {
-								noval2 = 1;
-							}
-							/* cell is outside bounds of grid */
-							else if (
-								(Qr[pX] < 0 || Qr[pX] > width2 || FLT_EQ(Qr[pX], width2)) ||
-								(Qr[pY] < 0 || Qr[pY] > height2 || FLT_EQ(Qr[pY], height2))
-							) {
-								noval2 = 1;
-							}
-							else if (hasnodata2 == FALSE)
-								val2 = 1;
-							/* unable to get value at cell */
-							else if (rt_band_get_pixel(band2, Qr[pX], Qr[pY], &val2, &isnodata2) != ES_NONE)
-								noval2 = 1;
-
-							if (!noval1) {
-								RASTER_DEBUGF(4, "val1 = %f", val1);
-							}
-							if (!noval2) {
-								RASTER_DEBUGF(4, "val2 = %f", val2);
-							}
-
-							/* pixels touch */
-							if (!noval1 && (
-								(hasnodata1 == FALSE) || !isnodata1
-							)) {
-								adjacent[i]++;
-							}
-							if (!noval2 && (
-								(hasnodata2 == FALSE) || !isnodata2
-							)) {
-								adjacent[i] += 3;
-							}
-
-							/* two pixel values not present */
-							if (noval1 || noval2) {
-								RASTER_DEBUGF(4, "noval1 = %d, noval2 = %d", noval1, noval2);
-								continue;
-							}
-
-							/* pixels valid, so intersect */
-							if (
-								((hasnodata1 == FALSE) || !isnodata1) &&
-								((hasnodata2 == FALSE) || !isnodata2)
-							) {
-								RASTER_DEBUG(3, "The two rasters do intersect");
-
-								return 1;
-							}
-						}
-
-						/* pixels touch */
-						for (i = 0; i < 4; i++) {
-							RASTER_DEBUGF(4, "adjacent[%d] = %d, adjacent[%d] = %d"
-								, i, adjacent[i], i + 4, adjacent[i + 4]);
-							if (adjacent[i] == 0) continue;
-
-							if (adjacent[i] + adjacent[i + 4] == 4) {
-								RASTER_DEBUG(3, "The two rasters touch");
-
-								return 1;
-							}
-						}
-					}
-					else {
-						RASTER_DEBUG(4, "outside of bounds");
-					}
-				}
-			}
-		}
-	}
-
-	return 0;
-}
-
-/**
- * Return zero if error occurred in function.
- * Parameter intersects returns non-zero if two rasters intersect
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param intersects : non-zero value if the two rasters' bands intersects
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate
-rt_raster_intersects(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *intersects
-) {
-	int i;
-	int j;
-	int within = 0;
-
-	LWGEOM *hull[2] = {NULL};
-	GEOSGeometry *ghull[2] = {NULL};
-
-	uint16_t width1;
-	uint16_t height1;
-	uint16_t width2;
-	uint16_t height2;
-	double area1;
-	double area2;
-	double pixarea1;
-	double pixarea2;
-	rt_raster rastS = NULL;
-	rt_raster rastL = NULL;
-	uint16_t *widthS = NULL;
-	uint16_t *heightS = NULL;
-	uint16_t *widthL = NULL;
-	uint16_t *heightL = NULL;
-	int nbandS;
-	int nbandL;
-	rt_band bandS = NULL;
-	rt_band bandL = NULL;
-	int hasnodataS = FALSE;
-	int hasnodataL = FALSE;
-	double nodataS = 0;
-	double nodataL = 0;
-	int isnodataS = 0;
-	int isnodataL = 0;
-	double gtS[6] = {0};
-	double igtL[6] = {0};
-
-	uint32_t row;
-	uint32_t rowoffset;
-	uint32_t col;
-	uint32_t coloffset;
-
-	enum line_points {X1, Y1, X2, Y2};
-	enum point {pX, pY};
-	double lineS[4];
-	double Qr[2];
-	double valS;
-	double valL;
-
-	RASTER_DEBUG(3, "Starting");
-
-	assert(NULL != rast1);
-	assert(NULL != rast2);
-	assert(NULL != intersects);
-
-	if (nband1 < 0 && nband2 < 0) {
-		nband1 = -1;
-		nband2 = -1;
-	}
-	else {
-		assert(nband1 >= 0 && nband1 < rt_raster_get_num_bands(rast1));
-		assert(nband2 >= 0 && nband2 < rt_raster_get_num_bands(rast2));
-	}
-
-	/* same srid */
-	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
-		rterror("rt_raster_intersects: The two rasters provided have different SRIDs");
-		*intersects = 0;
-		return ES_ERROR;
-	}
-
-	/* raster extents need to intersect */
-	do {
-		int rtn;
-
-		initGEOS(lwnotice, lwgeom_geos_error);
-
-		rtn = 1;
-		for (i = 0; i < 2; i++) {
-			if ((rt_raster_get_convex_hull(i < 1 ? rast1 : rast2, &(hull[i])) != ES_NONE) || NULL == hull[i]) {
-				for (j = 0; j < i; j++) {
-					GEOSGeom_destroy(ghull[j]);
-					lwgeom_free(hull[j]);
-				}
-				rtn = 0;
-				break;
-			}
-			ghull[i] = (GEOSGeometry *) LWGEOM2GEOS(hull[i]);
-			if (NULL == ghull[i]) {
-				for (j = 0; j < i; j++) {
-					GEOSGeom_destroy(ghull[j]);
-					lwgeom_free(hull[j]);
-				}
-				lwgeom_free(hull[i]);
-				rtn = 0;
-				break;
-			}
-		}
-		if (!rtn) break;
-
-		/* test to see if raster within the other */
-		within = 0;
-		if (GEOSWithin(ghull[0], ghull[1]) == 1)
-			within = -1;
-		else if (GEOSWithin(ghull[1], ghull[0]) == 1)
-			within = 1;
-
-		if (within != 0)
-			rtn = 1;
-		else
-			rtn = GEOSIntersects(ghull[0], ghull[1]);
-
-		for (i = 0; i < 2; i++) {
-			GEOSGeom_destroy(ghull[i]);
-			lwgeom_free(hull[i]);
-		}
-
-		if (rtn != 2) {
-			RASTER_DEBUGF(4, "convex hulls of rasters do %sintersect", rtn != 1 ? "NOT " : "");
-			if (rtn != 1) {
-				*intersects = 0;
-				return ES_NONE;
-			}
-			/* band isn't specified */
-			else if (nband1 < 0) {
-				*intersects = 1;
-				return ES_NONE;
-			}
-		}
-		else {
-			RASTER_DEBUG(4, "GEOSIntersects() returned a 2!!!!");
-		}
-	}
-	while (0);
-
-	/* smaller raster by area or width */
-	width1 = rt_raster_get_width(rast1);
-	height1 = rt_raster_get_height(rast1);
-	width2 = rt_raster_get_width(rast2);
-	height2 = rt_raster_get_height(rast2);
-	pixarea1 = fabs(rt_raster_get_x_scale(rast1) * rt_raster_get_y_scale(rast1));
-	pixarea2 = fabs(rt_raster_get_x_scale(rast2) * rt_raster_get_y_scale(rast2));
-	area1 = fabs(width1 * height1 * pixarea1);
-	area2 = fabs(width2 * height2 * pixarea2);
-	RASTER_DEBUGF(4, "pixarea1, pixarea2, area1, area2 = %f, %f, %f, %f",
-		pixarea1, pixarea2, area1, area2);
-	if (
-		(within <= 0) ||
-		(area1 < area2) ||
-		FLT_EQ(area1, area2) ||
-		(area1 < pixarea2) || /* area of rast1 smaller than pixel area of rast2 */
-		FLT_EQ(area1, pixarea2)
-	) {
-		rastS = rast1;
-		nbandS = nband1;
-		widthS = &width1;
-		heightS = &height1;
-
-		rastL = rast2;
-		nbandL = nband2;
-		widthL = &width2;
-		heightL = &height2;
-	}
-	else {
-		rastS = rast2;
-		nbandS = nband2;
-		widthS = &width2;
-		heightS = &height2;
-
-		rastL = rast1;
-		nbandL = nband1;
-		widthL = &width1;
-		heightL = &height1;
-	}
-
-	/* no band to use, set band to zero */
-	if (nband1 < 0) {
-		nbandS = 0;
-		nbandL = 0;
-	}
-
-	RASTER_DEBUGF(4, "rast1 @ %p", rast1);
-	RASTER_DEBUGF(4, "rast2 @ %p", rast2);
-	RASTER_DEBUGF(4, "rastS @ %p", rastS);
-	RASTER_DEBUGF(4, "rastL @ %p", rastL);
-
-	/* load band of smaller raster */
-	bandS = rt_raster_get_band(rastS, nbandS);
-	if (NULL == bandS) {
-		rterror("rt_raster_intersects: Could not get band %d of the first raster", nbandS);
-		*intersects = 0;
-		return ES_ERROR;
-	}
-
-	hasnodataS = rt_band_get_hasnodata_flag(bandS);
-	if (hasnodataS != FALSE)
-		rt_band_get_nodata(bandS, &nodataS);
-
-	/* load band of larger raster */
-	bandL = rt_raster_get_band(rastL, nbandL);
-	if (NULL == bandL) {
-		rterror("rt_raster_intersects: Could not get band %d of the first raster", nbandL);
-		*intersects = 0;
-		return ES_ERROR;
-	}
-
-	hasnodataL = rt_band_get_hasnodata_flag(bandL);
-	if (hasnodataL != FALSE)
-		rt_band_get_nodata(bandL, &nodataL);
-
-	/* no band to use, ignore nodata */
-	if (nband1 < 0) {
-		hasnodataS = FALSE;
-		hasnodataL = FALSE;
-	}
-
-	/* hasnodata(S|L) = TRUE and one of the two bands is isnodata */
-	if (
-		(hasnodataS && rt_band_get_isnodata_flag(bandS)) ||
-		(hasnodataL && rt_band_get_isnodata_flag(bandL))
-	) {
-		RASTER_DEBUG(3, "One of the two raster bands is NODATA. The two rasters do not intersect");
-		*intersects = 0;
-		return ES_NONE;
-	}
-
-	/* special case where a raster can fit inside another raster's pixel */
-	if (within != 0 && ((pixarea1 > area2) || (pixarea2 > area1))) {
-		RASTER_DEBUG(4, "Using special case of raster fitting into another raster's pixel");
-		/* 3 x 3 search */
-		for (coloffset = 0; coloffset < 3; coloffset++) {
-			for (rowoffset = 0; rowoffset < 3; rowoffset++) {
-				for (col = coloffset; col < *widthS; col += 3) {
-					for (row = rowoffset; row < *heightS; row += 3) {
-						if (hasnodataS == FALSE)
-							valS = 1;
-						else if (rt_band_get_pixel(bandS, col, row, &valS, &isnodataS) != ES_NONE)
-							continue;
-
-						if ((hasnodataS == FALSE) || !isnodataS) {
-							rt_raster_cell_to_geopoint(
-								rastS,
-								col, row,
-								&(lineS[X1]), &(lineS[Y1]),
-								gtS
-							);
-
-							if (rt_raster_geopoint_to_cell(
-								rastL,
-								lineS[X1], lineS[Y1],
-								&(Qr[pX]), &(Qr[pY]),
-								igtL
-							) != ES_NONE) {
-								continue;
-							}
-
-							if (
-								(Qr[pX] < 0 || Qr[pX] > *widthL || FLT_EQ(Qr[pX], *widthL)) ||
-								(Qr[pY] < 0 || Qr[pY] > *heightL || FLT_EQ(Qr[pY], *heightL))
-							) {
-								continue;
-							}
-
-							if (hasnodataS == FALSE)
-								valL = 1;
-							else if (rt_band_get_pixel(bandL, Qr[pX], Qr[pY], &valL, &isnodataL) != ES_NONE)
-								continue;
-
-							if ((hasnodataL == FALSE) || !isnodataL) {
-								RASTER_DEBUG(3, "The two rasters do intersect");
-								*intersects = 1;
-								return ES_NONE;
-							}
-						}
-					}
-				}
-			}
-		}
-		RASTER_DEBUG(4, "Smaller raster not in the other raster's pixel. Continuing");
-	}
-
-	RASTER_DEBUG(4, "Testing smaller raster vs larger raster");
-	*intersects = rt_raster_intersects_algorithm(
-		rastS, rastL,
-		bandS, bandL,
-		hasnodataS, hasnodataL,
-		nodataS, nodataL
-	);
-
-	if (*intersects) return ES_NONE;
-
-	RASTER_DEBUG(4, "Testing larger raster vs smaller raster");
-	*intersects = rt_raster_intersects_algorithm(
-		rastL, rastS,
-		bandL, bandS,
-		hasnodataL, hasnodataS,
-		nodataL, nodataS
-	);
-
-	if (*intersects) return ES_NONE;
-
-	RASTER_DEBUG(3, "The two rasters do not intersect");
-
-	*intersects = 0;
-	return ES_NONE;
-}
-
-/******************************************************************************
-* GEOS-based spatial relationship tests
-******************************************************************************/
-
-static
-rt_errorstate rt_raster_geos_spatial_relationship(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	rt_geos_spatial_test testtype,
-	int *testresult
-) {
-	LWMPOLY *surface1 = NULL;
-	LWMPOLY *surface2 = NULL;
-	GEOSGeometry *geom1 = NULL;
-	GEOSGeometry *geom2 = NULL;
-	int rtn = 0;
-	int flag = 0;
-
-	RASTER_DEBUG(3, "Starting");
-
-	assert(NULL != rast1);
-	assert(NULL != rast2);
-	assert(NULL != testresult);
-
-	if (nband1 < 0 && nband2 < 0) {
-		nband1 = -1;
-		nband2 = -1;
-	}
-	else {
-		assert(nband1 >= 0 && nband1 < rt_raster_get_num_bands(rast1));
-		assert(nband2 >= 0 && nband2 < rt_raster_get_num_bands(rast2));
-	}
-
-	/* initialize to zero, false result of spatial relationship test */
-	*testresult = 0;
-
-	/* same srid */
-	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
-		rterror("rt_raster_geos_spatial_relationship: The two rasters provided have different SRIDs");
-		return ES_ERROR;
-	}
-
-	initGEOS(lwnotice, lwgeom_geos_error);
-
-	/* get LWMPOLY of each band */
-	if (rt_raster_surface(rast1, nband1, &surface1) != ES_NONE) {
-		rterror("rt_raster_geos_spatial_relationship: Could not get surface of the specified band from the first raster");
-		return ES_ERROR;
-	}
-	if (rt_raster_surface(rast2, nband2, &surface2) != ES_NONE) {
-		rterror("rt_raster_geos_spatial_relationship: Could not get surface of the specified band from the second raster");
-		lwmpoly_free(surface1);
-		return ES_ERROR;
-	}
-
-	/* either surface is NULL, spatial relationship test is false */
-	if (surface1 == NULL || surface2 == NULL) {
-		if (surface1 != NULL) lwmpoly_free(surface1);
-		if (surface2 != NULL) lwmpoly_free(surface2);
-		return ES_NONE;
-	}
-
-	/* convert LWMPOLY to GEOSGeometry */
-	geom1 = LWGEOM2GEOS(lwmpoly_as_lwgeom(surface1));
-	lwmpoly_free(surface1);
-	if (geom1 == NULL) {
-		rterror("rt_raster_geos_spatial_relationship: Could not convert surface of the specified band from the first raster to a GEOSGeometry");
-		lwmpoly_free(surface2);
-		return ES_ERROR;
-	}
-
-	geom2 = LWGEOM2GEOS(lwmpoly_as_lwgeom(surface2));
-	lwmpoly_free(surface2);
-	if (geom2 == NULL) {
-		rterror("rt_raster_geos_spatial_relationship: Could not convert surface of the specified band from the second raster to a GEOSGeometry");
-		return ES_ERROR;
-	}
-
-	flag = 0;
-	switch (testtype) {
-		case GSR_OVERLAPS:
-			rtn = GEOSOverlaps(geom1, geom2);
-			break;
-		case GSR_TOUCHES:
-			rtn = GEOSTouches(geom1, geom2);
-			break;
-		case GSR_CONTAINS:
-			rtn = GEOSContains(geom1, geom2);
-			break;
-		case GSR_CONTAINSPROPERLY:
-			rtn = GEOSRelatePattern(geom1, geom2, "T**FF*FF*");
-			break;
-		case GSR_COVERS:
-			rtn = GEOSRelatePattern(geom1, geom2, "******FF*");
-			break;
-		case GSR_COVEREDBY:
-			rtn = GEOSRelatePattern(geom1, geom2, "**F**F***");
-			break;
-		default:
-			rterror("rt_raster_geos_spatial_relationship: Unknown or unsupported GEOS spatial relationship test");
-			flag = -1;
-			break;
-	}
-	GEOSGeom_destroy(geom1);
-	GEOSGeom_destroy(geom2);
-
-	/* something happened in the spatial relationship test */
-	if (rtn == 2) {
-		rterror("rt_raster_geos_spatial_relationship: Could not run the appropriate GEOS spatial relationship test");
-		flag = ES_ERROR;
-	}
-	/* spatial relationship test ran fine */
-	else if (flag >= 0) {
-		if (rtn != 0)
-			*testresult = 1;
-		flag = ES_NONE;
-	}
-	/* flag < 0 for when testtype is unknown */
-	else
-		flag = ES_ERROR;
-
-	return flag;
-}
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter overlaps returns non-zero if two rasters overlap
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param overlaps : non-zero value if the two rasters' bands overlaps
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_overlaps(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *overlaps
-) {
-	RASTER_DEBUG(3, "Starting");
-
-	return rt_raster_geos_spatial_relationship(
-		rast1, nband1,
-		rast2, nband2,
-		GSR_OVERLAPS,
-		overlaps
-	);
-}
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter touches returns non-zero if two rasters touch
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param touches : non-zero value if the two rasters' bands touch
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_touches(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *touches
-) {
-	RASTER_DEBUG(3, "Starting");
-
-	return rt_raster_geos_spatial_relationship(
-		rast1, nband1,
-		rast2, nband2,
-		GSR_TOUCHES,
-		touches
-	);
-}
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter contains returns non-zero if rast1 contains rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param contains : non-zero value if rast1 contains rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_contains(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *contains
-) {
-	RASTER_DEBUG(3, "Starting");
-
-	return rt_raster_geos_spatial_relationship(
-		rast1, nband1,
-		rast2, nband2,
-		GSR_CONTAINS,
-		contains
-	);
-}
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter contains returns non-zero if rast1 contains properly rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param contains : non-zero value if rast1 contains properly rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_contains_properly(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *contains
-) {
-	RASTER_DEBUG(3, "Starting");
-
-	return rt_raster_geos_spatial_relationship(
-		rast1, nband1,
-		rast2, nband2,
-		GSR_CONTAINSPROPERLY,
-		contains
-	);
-}
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter covers returns non-zero if rast1 covers rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param covers : non-zero value if rast1 covers rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_covers(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *covers
-) {
-	RASTER_DEBUG(3, "Starting");
-
-	return rt_raster_geos_spatial_relationship(
-		rast1, nband1,
-		rast2, nband2,
-		GSR_COVERS,
-		covers
-	);
-}
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter coveredby returns non-zero if rast1 is covered by rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param coveredby : non-zero value if rast1 is covered by rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_coveredby(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *coveredby
-) {
-	RASTER_DEBUG(3, "Starting");
-
-	return rt_raster_geos_spatial_relationship(
-		rast1, nband1,
-		rast2, nband2,
-		GSR_COVEREDBY,
-		coveredby
-	);
-}
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter dwithin returns non-zero if rast1 is within the specified
- *   distance of rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param dwithin : non-zero value if rast1 is within the specified distance
- *   of rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_within_distance(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	double distance,
-	int *dwithin
-) {
-	LWMPOLY *surface = NULL;
-	LWGEOM *surface1 = NULL;
-	LWGEOM *surface2 = NULL;
-	double mindist = 0;
-
-	RASTER_DEBUG(3, "Starting");
-
-	assert(NULL != rast1);
-	assert(NULL != rast2);
-	assert(NULL != dwithin);
-
-	if (nband1 < 0 && nband2 < 0) {
-		nband1 = -1;
-		nband2 = -1;
-	}
-	else {
-		assert(nband1 >= 0 && nband1 < rt_raster_get_num_bands(rast1));
-		assert(nband2 >= 0 && nband2 < rt_raster_get_num_bands(rast2));
-	}
-
-	/* initialize to zero, false result */
-	*dwithin = 0;
-
-	/* same srid */
-	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
-		rterror("rt_raster_distance_within: The two rasters provided have different SRIDs");
-		return ES_ERROR;
-	}
-
-	/* distance cannot be less than zero */
-	if (distance < 0) {
-		rterror("rt_raster_distance_within: Distance cannot be less than zero");
-		return ES_ERROR;
-	}
-
-	/* get LWMPOLY of each band */
-	if (rt_raster_surface(rast1, nband1, &surface) != ES_NONE) {
-		rterror("rt_raster_distance_within: Could not get surface of the specified band from the first raster");
-		return ES_ERROR;
-	}
-	surface1 = lwmpoly_as_lwgeom(surface);
-
-	if (rt_raster_surface(rast2, nband2, &surface) != ES_NONE) {
-		rterror("rt_raster_distance_within: Could not get surface of the specified band from the second raster");
-		lwgeom_free(surface1);
-		return ES_ERROR;
-	}
-	surface2 = lwmpoly_as_lwgeom(surface);
-
-	/* either surface is NULL, test is false */
-	if (surface1 == NULL || surface2 == NULL) {
-		if (surface1 != NULL) lwgeom_free(surface1);
-		if (surface2 != NULL) lwgeom_free(surface2);
-		return ES_NONE;
-	}
-
-	/* get the min distance between the two surfaces */
-	mindist = lwgeom_mindistance2d_tolerance(surface1, surface2, distance);
-
-	lwgeom_free(surface1);
-	lwgeom_free(surface2);
-
-	/* if distance >= mindist, true */
-	if (FLT_EQ(mindist, distance) || distance > mindist)
-		*dwithin = 1;
-
-	RASTER_DEBUGF(3, "(mindist, distance) = (%f, %f, %d)", mindist, distance, *dwithin);
-
-	return ES_NONE;
-}
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter dfwithin returns non-zero if rast1 is fully within the specified
- *   distance of rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param dfwithin : non-zero value if rast1 is fully within the specified
- *   distance of rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_fully_within_distance(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	double distance,
-	int *dfwithin
-) {
-	LWMPOLY *surface = NULL;
-	LWGEOM *surface1 = NULL;
-	LWGEOM *surface2 = NULL;
-	double maxdist = 0;
-
-	RASTER_DEBUG(3, "Starting");
-
-	assert(NULL != rast1);
-	assert(NULL != rast2);
-	assert(NULL != dfwithin);
-
-	if (nband1 < 0 && nband2 < 0) {
-		nband1 = -1;
-		nband2 = -1;
-	}
-	else {
-		assert(nband1 >= 0 && nband1 < rt_raster_get_num_bands(rast1));
-		assert(nband2 >= 0 && nband2 < rt_raster_get_num_bands(rast2));
-	}
-
-	/* initialize to zero, false result */
-	*dfwithin = 0;
-
-	/* same srid */
-	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
-		rterror("rt_raster_fully_within_distance: The two rasters provided have different SRIDs");
-		return ES_ERROR;
-	}
-
-	/* distance cannot be less than zero */
-	if (distance < 0) {
-		rterror("rt_raster_fully_within_distance: Distance cannot be less than zero");
-		return ES_ERROR;
-	}
-
-	/* get LWMPOLY of each band */
-	if (rt_raster_surface(rast1, nband1, &surface) != ES_NONE) {
-		rterror("rt_raster_fully_within_distance: Could not get surface of the specified band from the first raster");
-		return ES_ERROR;
-	}
-	surface1 = lwmpoly_as_lwgeom(surface);
-
-	if (rt_raster_surface(rast2, nband2, &surface) != ES_NONE) {
-		rterror("rt_raster_fully_within_distance: Could not get surface of the specified band from the second raster");
-		lwgeom_free(surface1);
-		return ES_ERROR;
-	}
-	surface2 = lwmpoly_as_lwgeom(surface);
-
-	/* either surface is NULL, test is false */
-	if (surface1 == NULL || surface2 == NULL) {
-		if (surface1 != NULL) lwgeom_free(surface1);
-		if (surface2 != NULL) lwgeom_free(surface2);
-		return ES_NONE;
-	}
-
-	/* get the maximum distance between the two surfaces */
-	maxdist = lwgeom_maxdistance2d_tolerance(surface1, surface2, distance);
-
-	lwgeom_free(surface1);
-	lwgeom_free(surface2);
-
-	/* if distance >= maxdist, true */
-	if (FLT_EQ(maxdist, distance) || distance > maxdist)
-		*dfwithin = 1;
-
-	RASTER_DEBUGF(3, "(maxdist, distance, dfwithin) = (%f, %f, %d)", maxdist, distance, *dfwithin);
-
-	return ES_NONE;
-}
-
-/*
- * Return ES_ERROR if error occurred in function.
- * Paramter aligned returns non-zero if two rasters are aligned
- *
- * @param rast1 : the first raster for alignment test
- * @param rast2 : the second raster for alignment test
- * @param *aligned : non-zero value if the two rasters are aligned
- * @param *reason : reason why rasters are not aligned
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate
-rt_raster_same_alignment(
-	rt_raster rast1,
-	rt_raster rast2,
-	int *aligned, char **reason
-) {
-	double xr;
-	double yr;
-	double xw;
-	double yw;
-	int err = 0;
-
-	assert(NULL != rast1);
-	assert(NULL != rast2);
-	assert(NULL != aligned);
-
-	err = 0;
-	/* same srid */
-	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
-		if (reason != NULL) *reason = "The rasters have different SRIDs";
-		err = 1;
-	}
-	/* scales must match */
-	else if (FLT_NEQ(fabs(rast1->scaleX), fabs(rast2->scaleX))) {
-		if (reason != NULL) *reason = "The rasters have different scales on the X axis";
-		err = 1;
-	}
-	else if (FLT_NEQ(fabs(rast1->scaleY), fabs(rast2->scaleY))) {
-		if (reason != NULL) *reason = "The rasters have different scales on the Y axis";
-		err = 1;
-	}
-	/* skews must match */
-	else if (FLT_NEQ(rast1->skewX, rast2->skewX)) {
-		if (reason != NULL) *reason = "The rasters have different skews on the X axis";
-		err = 1;
-	}
-	else if (FLT_NEQ(rast1->skewY, rast2->skewY)) {
-		if (reason != NULL) *reason = "The rasters have different skews on the Y axis";
-		err = 1;
-	}
-
-	if (err) {
-		*aligned = 0;
-		return ES_NONE;
-	}
-
-	/* raster coordinates in context of second raster of first raster's upper-left corner */
-	if (rt_raster_geopoint_to_cell(
-			rast2,
-			rast1->ipX, rast1->ipY,
-			&xr, &yr,
-			NULL
-	) != ES_NONE) {
-		rterror("rt_raster_same_alignment: Could not get raster coordinates of second raster from first raster's spatial coordinates");
-		*aligned = 0;
-		return ES_ERROR;
-	}
-
-	/* spatial coordinates of raster coordinates from above */
-	if (rt_raster_cell_to_geopoint(
-		rast2,
-		xr, yr,
-		&xw, &yw,
-		NULL
-	) != ES_NONE) {
-		rterror("rt_raster_same_alignment: Could not get spatial coordinates of second raster from raster coordinates");
-		*aligned = 0;
-		return ES_ERROR;
-	}
-
-	RASTER_DEBUGF(4, "rast1(ipX, ipxY) = (%f, %f)", rast1->ipX, rast1->ipY);
-	RASTER_DEBUGF(4, "rast2(xr, yr) = (%f, %f)", xr, yr);
-	RASTER_DEBUGF(4, "rast2(xw, yw) = (%f, %f)", xw, yw);
-
-	/* spatial coordinates are identical to that of first raster's upper-left corner */
-	if (FLT_EQ(xw, rast1->ipX) && FLT_EQ(yw, rast1->ipY)) {
-		if (reason != NULL) *reason = "The rasters are aligned";
-		*aligned = 1;
-		return ES_NONE;
-	}
-
-	/* no alignment */
-	if (reason != NULL) *reason = "The rasters (pixel corner coordinates) are not aligned";
-
-	*aligned = 0;
-	return ES_NONE;
-}
-
-/*
- * Return raster of computed extent specified extenttype applied
- * on two input rasters.  The raster returned should be freed by
- * the caller
- *
- * @param rast1 : the first raster
- * @param rast2 : the second raster
- * @param extenttype : type of extent for the output raster
- * @param *rtnraster : raster of computed extent
- * @param *offset : 4-element array indicating the X,Y offsets
- * for each raster. 0,1 for rast1 X,Y. 2,3 for rast2 X,Y.
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate
-rt_raster_from_two_rasters(
-	rt_raster rast1, rt_raster rast2,
-	rt_extenttype extenttype,
-	rt_raster *rtnraster, double *offset
-) {
-	int i;
-
-	rt_raster _rast[2] = {rast1, rast2};
-	double _offset[2][4] = {{0.}};
-	uint16_t _dim[2][2] = {{0}};
-
-	rt_raster raster = NULL;
-	int aligned = 0;
-	int dim[2] = {0};
-	double gt[6] = {0.};
-
-	assert(NULL != rast1);
-	assert(NULL != rast2);
-	assert(NULL != rtnraster);
-
-	/* set rtnraster to NULL */
-	*rtnraster = NULL;
-
-	/* rasters must be aligned */
-	if (rt_raster_same_alignment(rast1, rast2, &aligned, NULL) != ES_NONE) {
-		rterror("rt_raster_from_two_rasters: Could not test for alignment on the two rasters");
-		return ES_ERROR;
-	}
-	if (!aligned) {
-		rterror("rt_raster_from_two_rasters: The two rasters provided do not have the same alignment");
-		return ES_ERROR;
-	}
-
-	/* dimensions */
-	_dim[0][0] = rast1->width;
-	_dim[0][1] = rast1->height;
-	_dim[1][0] = rast2->width;
-	_dim[1][1] = rast2->height;
-
-	/* get raster offsets */
-	if (rt_raster_geopoint_to_cell(
-		_rast[1],
-		_rast[0]->ipX, _rast[0]->ipY,
-		&(_offset[1][0]), &(_offset[1][1]),
-		NULL
-	) != ES_NONE) {
-		rterror("rt_raster_from_two_rasters: Could not compute offsets of the second raster relative to the first raster");
-		return ES_ERROR;
-	}
-	_offset[1][0] = -1 * _offset[1][0];
-	_offset[1][1] = -1 * _offset[1][1];
-	_offset[1][2] = _offset[1][0] + _dim[1][0] - 1;
-	_offset[1][3] = _offset[1][1] + _dim[1][1] - 1;
-
-	i = -1;
-	switch (extenttype) {
-		case ET_FIRST:
-			i = 0;
-			_offset[0][0] = 0.;
-			_offset[0][1] = 0.;
-		case ET_LAST:
-		case ET_SECOND:
-			if (i < 0) {
-				i = 1;
-				_offset[0][0] = -1 * _offset[1][0];
-				_offset[0][1] = -1 * _offset[1][1];
-				_offset[1][0] = 0.;
-				_offset[1][1] = 0.;
-			}
-
-			dim[0] = _dim[i][0];
-			dim[1] = _dim[i][1];
-			raster = rt_raster_new(
-				dim[0],
-				dim[1]
-			);
-			if (raster == NULL) {
-				rterror("rt_raster_from_two_rasters: Could not create output raster");
-				return ES_ERROR;
-			}
-			rt_raster_set_srid(raster, _rast[i]->srid);
-			rt_raster_get_geotransform_matrix(_rast[i], gt);
-			rt_raster_set_geotransform_matrix(raster, gt);
-			break;
-		case ET_UNION: {
-			double off[4] = {0};
-
-			rt_raster_get_geotransform_matrix(_rast[0], gt);
-			RASTER_DEBUGF(4, "gt = (%f, %f, %f, %f, %f, %f)",
-				gt[0],
-				gt[1],
-				gt[2],
-				gt[3],
-				gt[4],
-				gt[5]
-			);
-
-			/* new raster upper left offset */
-			off[0] = 0;
-			if (_offset[1][0] < 0)
-				off[0] = _offset[1][0];
-			off[1] = 0;
-			if (_offset[1][1] < 0)
-				off[1] = _offset[1][1];
-
-			/* new raster lower right offset */
-			off[2] = _dim[0][0] - 1;
-			if ((int) _offset[1][2] >= _dim[0][0])
-				off[2] = _offset[1][2];
-			off[3] = _dim[0][1] - 1;
-			if ((int) _offset[1][3] >= _dim[0][1])
-				off[3] = _offset[1][3];
-
-			/* upper left corner */
-			if (rt_raster_cell_to_geopoint(
-				_rast[0],
-				off[0], off[1],
-				&(gt[0]), &(gt[3]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_from_two_rasters: Could not get spatial coordinates of upper-left pixel of output raster");
-				return ES_ERROR;
-			}
-
-			dim[0] = off[2] - off[0] + 1;
-			dim[1] = off[3] - off[1] + 1;
-			RASTER_DEBUGF(4, "off = (%f, %f, %f, %f)",
-				off[0],
-				off[1],
-				off[2],
-				off[3]
-			);
-			RASTER_DEBUGF(4, "dim = (%d, %d)", dim[0], dim[1]);
-
-			raster = rt_raster_new(
-				dim[0],
-				dim[1]
-			);
-			if (raster == NULL) {
-				rterror("rt_raster_from_two_rasters: Could not create output raster");
-				return ES_ERROR;
-			}
-			rt_raster_set_srid(raster, _rast[0]->srid);
-			rt_raster_set_geotransform_matrix(raster, gt);
-			RASTER_DEBUGF(4, "gt = (%f, %f, %f, %f, %f, %f)",
-				gt[0],
-				gt[1],
-				gt[2],
-				gt[3],
-				gt[4],
-				gt[5]
-			);
-
-			/* get offsets */
-			if (rt_raster_geopoint_to_cell(
-				_rast[0],
-				gt[0], gt[3],
-				&(_offset[0][0]), &(_offset[0][1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_from_two_rasters: Could not get offsets of the FIRST raster relative to the output raster");
-				rt_raster_destroy(raster);
-				return ES_ERROR;
-			}
-			_offset[0][0] *= -1;
-			_offset[0][1] *= -1;
-
-			if (rt_raster_geopoint_to_cell(
-				_rast[1],
-				gt[0], gt[3],
-				&(_offset[1][0]), &(_offset[1][1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_from_two_rasters: Could not get offsets of the SECOND raster relative to the output raster");
-				rt_raster_destroy(raster);
-				return ES_ERROR;
-			}
-			_offset[1][0] *= -1;
-			_offset[1][1] *= -1;
-			break;
-		}
-		case ET_INTERSECTION: {
-			double off[4] = {0};
-
-			/* no intersection */
-			if (
-				(_offset[1][2] < 0 || _offset[1][0] > (_dim[0][0] - 1)) ||
-				(_offset[1][3] < 0 || _offset[1][1] > (_dim[0][1] - 1))
-			) {
-				RASTER_DEBUG(3, "The two rasters provided have no intersection.  Returning no band raster");
-
-				raster = rt_raster_new(0, 0);
-				if (raster == NULL) {
-					rterror("rt_raster_from_two_rasters: Could not create output raster");
-					return ES_ERROR;
-				}
-				rt_raster_set_srid(raster, _rast[0]->srid);
-				rt_raster_set_scale(raster, 0, 0);
-
-				/* set offsets if provided */
-				if (NULL != offset) {
-					for (i = 0; i < 4; i++)
-						offset[i] = _offset[i / 2][i % 2];
-				}
-
-				*rtnraster = raster;
-				return ES_NONE;
-			}
-
-			if (_offset[1][0] > 0)
-				off[0] = _offset[1][0];
-			if (_offset[1][1] > 0)
-				off[1] = _offset[1][1];
-
-			off[2] = _dim[0][0] - 1;
-			if (_offset[1][2] < _dim[0][0])
-				off[2] = _offset[1][2];
-			off[3] = _dim[0][1] - 1;
-			if (_offset[1][3] < _dim[0][1])
-				off[3] = _offset[1][3];
-
-			dim[0] = off[2] - off[0] + 1;
-			dim[1] = off[3] - off[1] + 1;
-			raster = rt_raster_new(
-				dim[0],
-				dim[1]
-			);
-			if (raster == NULL) {
-				rterror("rt_raster_from_two_rasters: Could not create output raster");
-				return ES_ERROR;
-			}
-			rt_raster_set_srid(raster, _rast[0]->srid);
-
-			/* get upper-left corner */
-			rt_raster_get_geotransform_matrix(_rast[0], gt);
-			if (rt_raster_cell_to_geopoint(
-				_rast[0],
-				off[0], off[1],
-				&(gt[0]), &(gt[3]),
-				gt
-			) != ES_NONE) {
-				rterror("rt_raster_from_two_rasters: Could not get spatial coordinates of upper-left pixel of output raster");
-				rt_raster_destroy(raster);
-				return ES_ERROR;
-			}
-
-			rt_raster_set_geotransform_matrix(raster, gt);
-
-			/* get offsets */
-			if (rt_raster_geopoint_to_cell(
-				_rast[0],
-				gt[0], gt[3],
-				&(_offset[0][0]), &(_offset[0][1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_from_two_rasters: Could not get pixel coordinates to compute the offsets of the FIRST raster relative to the output raster");
-				rt_raster_destroy(raster);
-				return ES_ERROR;
-			}
-			_offset[0][0] *= -1;
-			_offset[0][1] *= -1;
-
-			if (rt_raster_geopoint_to_cell(
-				_rast[1],
-				gt[0], gt[3],
-				&(_offset[1][0]), &(_offset[1][1]),
-				NULL
-			) != ES_NONE) {
-				rterror("rt_raster_from_two_rasters: Could not get pixel coordinates to compute the offsets of the SECOND raster relative to the output raster");
-				rt_raster_destroy(raster);
-				return ES_ERROR;
-			}
-			_offset[1][0] *= -1;
-			_offset[1][1] *= -1;
-			break;
-		}
-		case ET_CUSTOM:
-			rterror("rt_raster_from_two_rasters: Extent type ET_CUSTOM is not supported by this function");
-			break;
-	}
-
-	/* set offsets if provided */
-	if (NULL != offset) {
-		for (i = 0; i < 4; i++)
-			offset[i] = _offset[i / 2][i % 2];
-	}
-
-	*rtnraster = raster;
-	return ES_NONE;
-}
-
-/**
- * Get a raster pixel as a polygon.
- *
- * The pixel shape is a 4 vertices (5 to be closed) single
- * ring polygon bearing the raster's rotation
- * and using projection coordinates
- *
- * @param raster : the raster to get pixel from
- * @param x : the column number
- * @param y : the row number
- *
- * @return the pixel polygon, or NULL on error.
- *
- */
-LWPOLY*
-rt_raster_pixel_as_polygon(rt_raster rast, int x, int y)
-{
-    double scale_x, scale_y;
-    double skew_x, skew_y;
-    double ul_x, ul_y;
-    int srid;
-    POINTARRAY **points;
-    POINT4D p, p0;
-    LWPOLY *poly;
-
-		assert(rast != NULL);
-
-    scale_x = rt_raster_get_x_scale(rast);
-    scale_y = rt_raster_get_y_scale(rast);
-    skew_x = rt_raster_get_x_skew(rast);
-    skew_y = rt_raster_get_y_skew(rast);
-    ul_x = rt_raster_get_x_offset(rast);
-    ul_y = rt_raster_get_y_offset(rast);
-    srid = rt_raster_get_srid(rast);
-
-    points = rtalloc(sizeof(POINTARRAY *)*1);
-    points[0] = ptarray_construct(0, 0, 5);
-
-    p0.x = scale_x * x + skew_x * y + ul_x;
-    p0.y = scale_y * y + skew_y * x + ul_y;
-    ptarray_set_point4d(points[0], 0, &p0);
-
-    p.x = p0.x + scale_x;
-    p.y = p0.y + skew_y;
-    ptarray_set_point4d(points[0], 1, &p);
-
-    p.x = p0.x + scale_x + skew_x;
-    p.y = p0.y + scale_y + skew_y;
-    ptarray_set_point4d(points[0], 2, &p);
-
-    p.x = p0.x + skew_x;
-    p.y = p0.y + scale_y;
-    ptarray_set_point4d(points[0], 3, &p);
-
-    /* close it */
-    ptarray_set_point4d(points[0], 4, &p0);
-
-    poly = lwpoly_construct(srid, NULL, 1, points);
-
-    return poly;
-}
-
-/**
- * Get a raster as a surface (multipolygon).  If a band is specified,
- * those pixels with value (not NODATA) contribute to the area
- * of the output multipolygon.
- *
- * @param raster : the raster to convert to a multipolygon
- * @param nband : the 0-based band of raster rast to use
- *   if value is less than zero, bands are ignored.
- * @param *surface : raster as a surface (multipolygon).
- *   if all pixels are NODATA, NULL is set
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_raster_surface(rt_raster raster, int nband, LWMPOLY **surface) {
-	rt_band band = NULL;
-	LWGEOM *mpoly = NULL;
-	LWGEOM *tmp = NULL;
-	LWGEOM *clone = NULL;
-	rt_geomval gv = NULL;
-	int gvcount = 0;
-	GEOSGeometry *gc = NULL;
-	GEOSGeometry *gunion = NULL;
-	GEOSGeometry **geoms = NULL;
-	int geomscount = 0;
-	int i = 0;
-
-	assert(surface != NULL);
-
-	/* init *surface to NULL */
-	*surface = NULL;
-
-	/* raster is empty, surface = NULL */
-	if (rt_raster_is_empty(raster))
-		return ES_NONE;
-
-	/* if nband < 0, return the convex hull as a multipolygon */
-	if (nband < 0) {
-		/*
-			lwgeom_as_multi() only does a shallow clone internally
-			so input and output geometries may share memory
-			hence the deep clone of the output geometry for returning
-			is the only way to guarentee the memory isn't shared
-		*/
-		if (rt_raster_get_convex_hull(raster, &tmp) != ES_NONE) {
-			rterror("rt_raster_surface: Could not get convex hull of raster");
-			return ES_ERROR;
-		}
-		mpoly = lwgeom_as_multi(tmp);
-		clone = lwgeom_clone_deep(mpoly);
-		lwgeom_free(tmp);
-		lwgeom_free(mpoly);
-
-		*surface = lwgeom_as_lwmpoly(clone);
-		return ES_NONE;
-	}
-	/* check that nband is valid */
-	else if (nband >= rt_raster_get_num_bands(raster)) {
-		rterror("rt_raster_surface: The band index %d is invalid", nband);
-		return ES_ERROR;
-	}
-
-	/* get band */
-	band = rt_raster_get_band(raster, nband);
-	if (band == NULL) {
-		rterror("rt_raster_surface: Error getting band %d from raster", nband);
-		return ES_ERROR;
-	}
-
-	/* band does not have a NODATA flag, return convex hull */
-	if (!rt_band_get_hasnodata_flag(band)) {
-		/*
-			lwgeom_as_multi() only does a shallow clone internally
-			so input and output geometries may share memory
-			hence the deep clone of the output geometry for returning
-			is the only way to guarentee the memory isn't shared
-		*/
-		if (rt_raster_get_convex_hull(raster, &tmp) != ES_NONE) {
-			rterror("rt_raster_surface: Could not get convex hull of raster");
-			return ES_ERROR;
-		}
-		mpoly = lwgeom_as_multi(tmp);
-		clone = lwgeom_clone_deep(mpoly);
-		lwgeom_free(tmp);
-		lwgeom_free(mpoly);
-
-		*surface = lwgeom_as_lwmpoly(clone);
-		return ES_NONE;
-	}
-	/* band is NODATA, return NULL */
-	else if (rt_band_get_isnodata_flag(band)) {
-		RASTER_DEBUG(3, "Band is NODATA.  Returning NULL");
-		return ES_NONE;
-	}
-
-	/* initialize GEOS */
-	initGEOS(lwnotice, lwgeom_geos_error);
-
-	/* use gdal polygonize */
-	gv = rt_raster_gdal_polygonize(raster, nband, 1, &gvcount);
-	/* no polygons returned */
-	if (gvcount < 1) {
-		RASTER_DEBUG(3, "All pixels of band are NODATA.  Returning NULL");
-		if (gv != NULL) rtdealloc(gv);
-		return ES_NONE;
-	}
-	/* more than 1 polygon */
-	else if (gvcount > 1) {
-		/* convert LWPOLY to GEOSGeometry */
-		geomscount = gvcount;
-		geoms = rtalloc(sizeof(GEOSGeometry *) * geomscount);
-		if (geoms == NULL) {
-			rterror("rt_raster_surface: Could not allocate memory for pixel polygons as GEOSGeometry");
-			for (i = 0; i < gvcount; i++) lwpoly_free(gv[i].geom);
-			rtdealloc(gv);
-			return ES_ERROR;
-		}
-		for (i = 0; i < gvcount; i++) {
-#if POSTGIS_DEBUG_LEVEL > 3
-			{
-				char *wkt = lwgeom_to_wkt(lwpoly_as_lwgeom(gv[i].geom), WKT_ISO, DBL_DIG, NULL);
-				RASTER_DEBUGF(4, "geom %d = %s", i, wkt);
-				rtdealloc(wkt);
-			}
-#endif
-
-			geoms[i] = LWGEOM2GEOS(lwpoly_as_lwgeom(gv[i].geom));
-			lwpoly_free(gv[i].geom);
-		}
-		rtdealloc(gv);
-
-		/* create geometry collection */
-#if POSTGIS_GEOS_VERSION >= 33
-		gc = GEOSGeom_createCollection(GEOS_GEOMETRYCOLLECTION, geoms, geomscount);
-#else
-		gc = GEOSGeom_createCollection(GEOS_MULTIPOLYGON, geoms, geomscount);
-#endif
-
-		if (gc == NULL) {
-#if POSTGIS_GEOS_VERSION >= 33
-			rterror("rt_raster_surface: Could not create GEOS GEOMETRYCOLLECTION from set of pixel polygons");
-#else
-			rterror("rt_raster_surface: Could not create GEOS MULTIPOLYGON from set of pixel polygons");
-#endif
-
-			for (i = 0; i < geomscount; i++)
-				GEOSGeom_destroy(geoms[i]);
-			rtdealloc(geoms);
-			return ES_ERROR;
-		}
-
-		/* run the union */
-#if POSTGIS_GEOS_VERSION >= 33
-		gunion = GEOSUnaryUnion(gc);
-#else
-		gunion = GEOSUnionCascaded(gc);
-#endif
-		GEOSGeom_destroy(gc);
-		rtdealloc(geoms);
-
-		if (gunion == NULL) {
-#if POSTGIS_GEOS_VERSION >= 33
-			rterror("rt_raster_surface: Could not union the pixel polygons using GEOSUnaryUnion()");
-#else
-			rterror("rt_raster_surface: Could not union the pixel polygons using GEOSUnionCascaded()");
-#endif
-			return ES_ERROR;
-		}
-
-		/* convert union result from GEOSGeometry to LWGEOM */
-		mpoly = GEOS2LWGEOM(gunion, 0);
-
-		/*
-			is geometry valid?
-			if not, try to make valid
-		*/
-		do {
-			LWGEOM *mpolyValid = NULL;
-
-#if POSTGIS_GEOS_VERSION < 33
-			break;
-#endif
-
-			if (GEOSisValid(gunion))
-				break;
-
-			/* make geometry valid */
-			mpolyValid = lwgeom_make_valid(mpoly);
-			if (mpolyValid == NULL) {
-				rtwarn("Cannot fix invalid geometry");
-				break;
-			}
-
-			lwgeom_free(mpoly);
-			mpoly = mpolyValid;
-		}
-		while (0);
-
-		GEOSGeom_destroy(gunion);
-	}
-	else {
-		mpoly = lwpoly_as_lwgeom(gv[0].geom);
-		rtdealloc(gv);
-
-#if POSTGIS_DEBUG_LEVEL > 3
-			{
-				char *wkt = lwgeom_to_wkt(mpoly, WKT_ISO, DBL_DIG, NULL);
-				RASTER_DEBUGF(4, "geom 0 = %s", wkt);
-				rtdealloc(wkt);
-			}
-#endif
-	}
-
-	/* specify SRID */
-	lwgeom_set_srid(mpoly, rt_raster_get_srid(raster));
-
-	if (mpoly != NULL) {
-		/* convert to multi */
-		if (!lwgeom_is_collection(mpoly)) {
-			tmp = mpoly;
-
-#if POSTGIS_DEBUG_LEVEL > 3
-			{
-				char *wkt = lwgeom_to_wkt(mpoly, WKT_ISO, DBL_DIG, NULL);
-				RASTER_DEBUGF(4, "before multi = %s", wkt);
-				rtdealloc(wkt);
-			}
-#endif
-
-			RASTER_DEBUGF(4, "mpoly @ %p", mpoly);
-
-			/*
-				lwgeom_as_multi() only does a shallow clone internally
-				so input and output geometries may share memory
-				hence the deep clone of the output geometry for returning
-				is the only way to guarentee the memory isn't shared
-			*/
-			mpoly = lwgeom_as_multi(tmp);
-			clone = lwgeom_clone_deep(mpoly);
-			lwgeom_free(tmp);
-			lwgeom_free(mpoly);
-			mpoly = clone;
-
-			RASTER_DEBUGF(4, "mpoly @ %p", mpoly);
-
-#if POSTGIS_DEBUG_LEVEL > 3
-			{
-				char *wkt = lwgeom_to_wkt(mpoly, WKT_ISO, DBL_DIG, NULL);
-				RASTER_DEBUGF(4, "after multi = %s", wkt);
-				rtdealloc(wkt);
-			}
-#endif
-		}
-
-#if POSTGIS_DEBUG_LEVEL > 3
-		{
-			char *wkt = lwgeom_to_wkt(mpoly, WKT_ISO, DBL_DIG, NULL);
-			RASTER_DEBUGF(4, "returning geometry = %s", wkt);
-			rtdealloc(wkt);
-		}
-#endif
-
-		*surface = lwgeom_as_lwmpoly(mpoly);
-		return ES_NONE;
-	}
-
-	return ES_NONE;
-}
-
-/******************************************************************************
-* rt_raster_iterator()
-******************************************************************************/
-
-typedef struct _rti_iterator_arg_t* _rti_iterator_arg;
-struct _rti_iterator_arg_t {
-	int count;
-
-	rt_raster *raster;
-	int *isempty;
-	double **offset;
-	int *width;
-	int *height;
-
-	struct {
-		rt_band *rtband;
-		int *hasnodata;
-		int *isnodata;
-		double *nodataval;
-		double *minval;
-	} band;
-
-	struct {
-		uint16_t x;
-		uint16_t y;
-	} distance;
-
-	struct {
-		uint32_t rows;
-		uint32_t columns;
-	} dimension;
-
-	struct {
-		double **values;
-		int **nodata;
-	} empty;
-
-	rt_iterator_arg arg;
-};
-
-static _rti_iterator_arg
-_rti_iterator_arg_init() {
-	_rti_iterator_arg _param;
-
-	_param = rtalloc(sizeof(struct _rti_iterator_arg_t));
-	if (_param == NULL) {
-		rterror("_rti_iterator_arg_init: Could not allocate memory for _rti_iterator_arg");
-		return NULL;
-	}
-
-	_param->count = 0;
-
-	_param->raster = NULL;
-	_param->isempty = NULL;
-	_param->offset = NULL;
-	_param->width = NULL;
-	_param->height = NULL;
-
-	_param->band.rtband = NULL;
-	_param->band.hasnodata = NULL;
-	_param->band.isnodata = NULL;
-	_param->band.nodataval = NULL;
-	_param->band.minval = NULL;
-
-	_param->distance.x = 0;
-	_param->distance.y = 0;
-
-	_param->dimension.rows = 0;
-	_param->dimension.columns = 0;
-
-	_param->empty.values = NULL;
-	_param->empty.nodata = NULL;
-
-	_param->arg = NULL;
-
-	return _param;
-}
-
-static void
-_rti_iterator_arg_destroy(_rti_iterator_arg _param) {
-	int i = 0;
-
-	if (_param->raster != NULL)
-		rtdealloc(_param->raster);
-	if (_param->isempty != NULL)
-		rtdealloc(_param->isempty);
-	if (_param->width != NULL)
-		rtdealloc(_param->width);
-	if (_param->height != NULL)
-		rtdealloc(_param->height);
-
-	if (_param->band.rtband != NULL)
-		rtdealloc(_param->band.rtband);
-	if (_param->band.hasnodata != NULL)
-		rtdealloc(_param->band.hasnodata);
-	if (_param->band.isnodata != NULL)
-		rtdealloc(_param->band.isnodata);
-	if (_param->band.nodataval != NULL)
-		rtdealloc(_param->band.nodataval);
-	if (_param->band.minval != NULL)
-		rtdealloc(_param->band.minval);
-
-	if (_param->offset != NULL) {
-		for (i = 0; i < _param->count; i++) {
-			if (_param->offset[i] == NULL)
-				continue;
-			rtdealloc(_param->offset[i]);
-		}
-		rtdealloc(_param->offset);
-	}
-
-	if (_param->empty.values != NULL) {
-		for (i = 0; i < _param->dimension.rows; i++) {
-			if (_param->empty.values[i] == NULL)
-				continue;
-			rtdealloc(_param->empty.values[i]);
-		}
-		rtdealloc(_param->empty.values);
-	}
-	if (_param->empty.nodata != NULL) {
-		for (i = 0; i < _param->dimension.rows; i++) {
-			if (_param->empty.nodata[i] == NULL)
-				continue;
-			rtdealloc(_param->empty.nodata[i]);
-		}
-		rtdealloc(_param->empty.nodata);
-	}
-
-	if (_param->arg != NULL) {
-		if (_param->arg->values != NULL)
-			rtdealloc(_param->arg->values);
-		if (_param->arg->nodata != NULL)
-			rtdealloc(_param->arg->nodata);
-		if (_param->arg->src_pixel != NULL) {
-			for (i = 0; i < _param->count; i++) {
-				if (_param->arg->src_pixel[i] == NULL)
-					continue;
-				rtdealloc(_param->arg->src_pixel[i]);
-			}
-
-			rtdealloc(_param->arg->src_pixel);
-		}
-
-		rtdealloc(_param->arg);
-	}
-
-	rtdealloc(_param);
-}
-
-static int
-_rti_iterator_arg_populate(
-	_rti_iterator_arg _param,
-	rt_iterator itrset, uint16_t itrcount,
-	uint16_t distancex, uint16_t distancey,
-	int *allnull, int *allempty
-) {
-	int i = 0;
-	int hasband = 0;
-
-	_param->count = itrcount;
-	_param->distance.x = distancex;
-	_param->distance.y = distancey;
-	_param->dimension.columns = distancex * 2 + 1;
-	_param->dimension.rows = distancey * 2 + 1;
-
-	/* allocate memory for children */
-	_param->raster = rtalloc(sizeof(rt_raster) * itrcount);
-	_param->isempty = rtalloc(sizeof(int) * itrcount);
-	_param->width = rtalloc(sizeof(int) * itrcount);
-	_param->height = rtalloc(sizeof(int) * itrcount);
-
-	_param->offset = rtalloc(sizeof(double *) * itrcount);
-
-	_param->band.rtband = rtalloc(sizeof(rt_band) * itrcount);
-	_param->band.hasnodata = rtalloc(sizeof(int) * itrcount);
-	_param->band.isnodata = rtalloc(sizeof(int) * itrcount);
-	_param->band.nodataval = rtalloc(sizeof(double) * itrcount);
-	_param->band.minval = rtalloc(sizeof(double) * itrcount);
-
-	if (
-		_param->raster == NULL ||
-		_param->isempty == NULL ||
-		_param->width == NULL ||
-		_param->height == NULL ||
-		_param->offset == NULL ||
-		_param->band.rtband == NULL ||
-		_param->band.hasnodata == NULL ||
-		_param->band.isnodata == NULL ||
-		_param->band.nodataval == NULL ||
-		_param->band.minval == NULL
-	) {
-		rterror("_rti_iterator_arg_populate: Could not allocate memory for children of _rti_iterator_arg");
-		return 0;
-	}
-
-	*allnull = 0;
-	*allempty = 0;
-
-	/*
-		check input rasters
-			not empty, band # is valid
-			copy raster pointers and set flags
-	*/
-	for (i = 0; i < itrcount; i++) {
-		/* initialize elements */
-		_param->raster[i] = NULL;
-		_param->isempty[i] = 0;
-		_param->width[i] = 0;
-		_param->height[i] = 0;
-
-		_param->offset[i] = NULL;
-
-		_param->band.rtband[i] = NULL;
-		_param->band.hasnodata[i] = 0;
-		_param->band.isnodata[i] = 0;
-		_param->band.nodataval[i] = 0;
-		_param->band.minval[i] = 0;
-
-		/* set isempty */
-		if (itrset[i].raster == NULL) {
-			_param->isempty[i] = 1;
-
-			(*allnull)++;
-			(*allempty)++;
-
-			continue;
-		}
-		else if (rt_raster_is_empty(itrset[i].raster)) {
-			_param->isempty[i] = 1;
-
-			(*allempty)++;
-
-			continue;
-		}
-
-		/* check band number */
-		hasband = rt_raster_has_band(itrset[i].raster, itrset[i].nband);
-		if (!hasband) {
-			if (!itrset[i].nbnodata) {
-				rterror("_rti_iterator_arg_populate: Band %d not found for raster %d", itrset[i].nband, i);
-				return 0;
-			}
-			else {
-				RASTER_DEBUGF(4, "Band %d not found for raster %d. Using NODATA", itrset[i].nband, i);
-			}
-		}
-
-		_param->raster[i] = itrset[i].raster;
-		if (hasband) {
-			_param->band.rtband[i] = rt_raster_get_band(itrset[i].raster, itrset[i].nband);
-			if (_param->band.rtband[i] == NULL) {
-				rterror("_rti_iterator_arg_populate: Could not get band %d for raster %d", itrset[i].nband, i);
-				return 0;
-			}
-
-			/* hasnodata */
-			_param->band.hasnodata[i] = rt_band_get_hasnodata_flag(_param->band.rtband[i]);
-
-			/* hasnodata = TRUE */
-			if (_param->band.hasnodata[i]) {
-				/* nodataval */
-				rt_band_get_nodata(_param->band.rtband[i], &(_param->band.nodataval[i]));
-
-				/* isnodata */
-				_param->band.isnodata[i] = rt_band_get_isnodata_flag(_param->band.rtband[i]);
-			}
-			/* hasnodata = FALSE */
-			else {
-				/* minval */
-				_param->band.minval[i] = rt_band_get_min_value(_param->band.rtband[i]);
-			}
-		}
-
-		/* width, height */
-		_param->width[i] = rt_raster_get_width(_param->raster[i]);
-		_param->height[i] = rt_raster_get_height(_param->raster[i]);
-
-		/* init offset */
-		_param->offset[i] = rtalloc(sizeof(double) * 2);
-		if (_param->offset[i] == NULL) {
-			rterror("_rti_iterator_arg_populate: Could not allocate memory for offsets");
-			return 0;
-		}
-	}
-
-	return 1;
-}
-
-static int
-_rti_iterator_arg_empty_init(_rti_iterator_arg _param) {
-	int x = 0;
-	int y = 0;
-
-	_param->empty.values = rtalloc(sizeof(double *) * _param->dimension.rows);
-	_param->empty.nodata = rtalloc(sizeof(int *) * _param->dimension.rows);
-	if (_param->empty.values == NULL || _param->empty.nodata == NULL) {
-		rterror("_rti_iterator_arg_empty_init: Could not allocate memory for empty values and NODATA");
-		return 0;
-	}
-
-	for (y = 0; y < _param->dimension.rows; y++) {
-		_param->empty.values[y] = rtalloc(sizeof(double) * _param->dimension.columns);
-		_param->empty.nodata[y] = rtalloc(sizeof(int) * _param->dimension.columns);
-
-		if (_param->empty.values[y] == NULL || _param->empty.nodata[y] == NULL) {
-			rterror("_rti_iterator_arg_empty_init: Could not allocate memory for elements of empty values and NODATA");
-			return 0;
-		}
-
-		for (x = 0; x < _param->dimension.columns; x++) {
-			_param->empty.values[y][x] = 0;
-			_param->empty.nodata[y][x] = 1;
-		}
-	}
-
-	return 1;
-}
-
-static int
-_rti_iterator_arg_callback_init(_rti_iterator_arg _param) {
-	int i = 0;
-
-	_param->arg = rtalloc(sizeof(struct rt_iterator_arg_t));
-	if (_param->arg == NULL) {
-		rterror("_rti_iterator_arg_callback_init: Could not allocate memory for rt_iterator_arg");
-		return 0;
-	}
-
-	_param->arg->values = NULL;
-	_param->arg->nodata = NULL;
-	_param->arg->src_pixel = NULL;
-
-	/* initialize argument components */
-	_param->arg->values = rtalloc(sizeof(double **) * _param->count);
-	_param->arg->nodata = rtalloc(sizeof(int **) * _param->count);
-	_param->arg->src_pixel = rtalloc(sizeof(int *) * _param->count);
-	if (_param->arg->values == NULL || _param->arg->nodata == NULL || _param->arg->src_pixel == NULL) {
-		rterror("_rti_iterator_arg_callback_init: Could not allocate memory for element of rt_iterator_arg");
-		return 0;
-	}
-	memset(_param->arg->values, 0, sizeof(double **) * _param->count);
-	memset(_param->arg->nodata, 0, sizeof(int **) * _param->count);
-
-	/* initialize pos */
-	for (i = 0; i < _param->count; i++) {
-
-		_param->arg->src_pixel[i] = rtalloc(sizeof(int) * 2);
-		if (_param->arg->src_pixel[i] == NULL) {
-			rterror("_rti_iterator_arg_callback_init: Could not allocate memory for position elements of rt_iterator_arg");
-			return 0;
-		}
-		memset(_param->arg->src_pixel[i], 0, sizeof(int) * 2);
-	}
-
-	_param->arg->rasters = _param->count;
-	_param->arg->rows = _param->dimension.rows;
-	_param->arg->columns = _param->dimension.columns;
-
-	_param->arg->dst_pixel[0] = 0;
-	_param->arg->dst_pixel[1] = 0;
-
-	return 1;
-}
-
-static void
-_rti_iterator_arg_callback_clean(_rti_iterator_arg _param) {
-	int i = 0;
-	int y = 0;
-
-	for (i = 0; i < _param->count; i++) {
-		RASTER_DEBUGF(5, "empty at @ %p", _param->empty.values);
-		RASTER_DEBUGF(5, "values at @ %p", _param->arg->values[i]);
-
-		if (_param->arg->values[i] == _param->empty.values) {
-			_param->arg->values[i] = NULL;
-			_param->arg->nodata[i] = NULL;
-
-			continue;
-		}
-
-		for (y = 0; y < _param->dimension.rows; y++) {
-			rtdealloc(_param->arg->values[i][y]);
-			rtdealloc(_param->arg->nodata[i][y]);
-		}
-
-		rtdealloc(_param->arg->values[i]);
-		rtdealloc(_param->arg->nodata[i]);
-
-		_param->arg->values[i] = NULL;
-		_param->arg->nodata[i] = NULL;
-	}
-}
-
-/**
- * n-raster iterator.
- * The raster returned should be freed by the caller
- *
- * @param itrset : set of rt_iterator objects.
- * @param itrcount : number of objects in itrset.
- * @param extenttype : type of extent for the output raster.
- * @param customextent : raster specifying custom extent.
- * is only used if extenttype is ET_CUSTOM.
- * @param pixtype : the desired pixel type of the output raster's band.
- * @param hasnodata : indicates if the band has nodata value
- * @param nodataval : the nodata value, will be appropriately
- * truncated to fit the pixtype size.
- * @param distancex : the number of pixels around the specified pixel
- * along the X axis
- * @param distancey : the number of pixels around the specified pixel
- * along the Y axis
- * @param userarg : pointer to any argument that is passed as-is to callback.
- * @param callback : callback function for actual processing of pixel values.
- * @param *rtnraster : return one band raster from iterator process
- *
- * The callback function _must_ have the following signature.
- *
- *    int FNAME(rt_iterator_arg arg, void *userarg, double *value, int *nodata)
- *
- * The callback function _must_ return zero (error) or non-zero (success)
- * indicating whether the function ran successfully.
- * The parameters passed to the callback function are as follows.
- *
- * - rt_iterator_arg arg: struct containing pixel values, NODATA flags and metadata
- * - void *userarg: NULL or calling function provides to rt_raster_iterator() for use by callback function
- * - double *value: value of pixel to be burned by rt_raster_iterator()
- * - int *nodata: flag (0 or 1) indicating that pixel to be burned is NODATA
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate
-rt_raster_iterator(
-	rt_iterator itrset, uint16_t itrcount,
-	rt_extenttype extenttype, rt_raster customextent,
-	rt_pixtype pixtype,
-	uint8_t hasnodata, double nodataval,
-	uint16_t distancex, uint16_t distancey,
-	void *userarg,
-	int (*callback)(
-		rt_iterator_arg arg,
-		void *userarg,
-		double *value,
-		int *nodata
-	),
-	rt_raster *rtnraster
-) {
-	/* output raster */
-	rt_raster rtnrast = NULL;
-	/* output raster's band */
-	rt_band rtnband = NULL;
-
-	/* working raster */
-	rt_raster rast = NULL;
-
-	_rti_iterator_arg _param = NULL;
-	int allnull = 0;
-	int allempty = 0;
-	int aligned = 0;
-	double offset[4] = {0.};
-	rt_pixel npixels;
-
-	int i = 0;
-	int status = 0;
-	int inextent = 0;
-	int x = 0;
-	int y = 0;
-	int _x = 0;
-	int _y = 0;
-
-	int _width = 0;
-	int _height = 0;
-
-	double minval;
-	double value;
-	int isnodata;
-	int nodata;
-
-	RASTER_DEBUG(3, "Starting...");
-
-	assert(itrset != NULL && itrcount > 0);
-	assert(rtnraster != NULL);
-
-	/* init rtnraster to NULL */
-	*rtnraster = NULL;
-
-	/* check that callback function is not NULL */
-	if (callback == NULL) {
-		rterror("rt_raster_iterator: Callback function not provided");
-		return ES_ERROR;
-	}
-
-	/* check that custom extent is provided if extenttype = ET_CUSTOM */
-	if (extenttype == ET_CUSTOM && rt_raster_is_empty(customextent)) {
-		rterror("rt_raster_iterator: Custom extent cannot be empty if extent type is ET_CUSTOM");
-		return ES_ERROR;
-	}
-
-	/* check that pixtype != PT_END */
-	if (pixtype == PT_END) {
-		rterror("rt_raster_iterator: Pixel type cannot be PT_END");
-		return ES_ERROR;
-	}
-
-	/* initialize _param */
-	if ((_param = _rti_iterator_arg_init()) == NULL) {
-		rterror("rt_raster_iterator: Could not initialize internal variables");
-		return ES_ERROR;
-	}
-
-	/* fill _param */
-	if (!_rti_iterator_arg_populate(_param, itrset, itrcount, distancex, distancey, &allnull, &allempty)) {
-		rterror("rt_raster_iterator: Could not populate for internal variables");
-		_rti_iterator_arg_destroy(_param);
-		return ES_ERROR;
-	}
-
-	/* shortcut if all null, return NULL */
-	if (allnull == itrcount) {
-		RASTER_DEBUG(3, "all rasters are NULL, returning NULL");
-
-		_rti_iterator_arg_destroy(_param);
-
-		return ES_NONE;
-	}
-	/* shortcut if all empty, return empty raster */
-	else if (allempty == itrcount) {
-		RASTER_DEBUG(3, "all rasters are empty, returning empty raster");
-
-		_rti_iterator_arg_destroy(_param);
-
-		rtnrast = rt_raster_new(0, 0);
-		if (rtnrast == NULL) {
-			rterror("rt_raster_iterator: Could not create empty raster");
-			return ES_ERROR;
-		}
-		rt_raster_set_scale(rtnrast, 0, 0);
-
-		*rtnraster = rtnrast;
-		return ES_NONE;
-	}
-
-	/* check that all rasters are aligned */
-	RASTER_DEBUG(3, "checking alignment of all rasters");
-	rast = NULL;
-
-	/* find raster to use as reference */
-	/* use custom if provided */
-	if (extenttype == ET_CUSTOM) {
-		RASTER_DEBUG(4, "using custom extent as reference raster");
-		rast = customextent;
-	}
-	/* use first valid one in _param->raster */
-	else {
-		for (i = 0; i < itrcount; i++) {
-			if (!_param->isempty[i]) {
-				RASTER_DEBUGF(4, "using raster at index %d as reference raster", i);
-				rast = _param->raster[i];
-				break;
-			}
-		}
-	}
-
-	/* no rasters found, SHOULD NEVER BE HERE! */
-	if (rast == NULL) {
-		rterror("rt_raster_iterator: Could not find reference raster to use for alignment tests");
-
-		_rti_iterator_arg_destroy(_param);
-
-		return ES_ERROR;
-	}
-
-	do {
-		aligned = 1;
-
-		/* check custom first if set. also skip if rasters are the same */
-		if (extenttype == ET_CUSTOM && rast != customextent) {
-			if (rt_raster_same_alignment(rast, customextent, &aligned, NULL) != ES_NONE) {
-				rterror("rt_raster_iterator: Could not test for alignment between reference raster and custom extent");
-
-				_rti_iterator_arg_destroy(_param);
-
-				return ES_ERROR;
-			}
-
-			RASTER_DEBUGF(5, "custom extent alignment: %d", aligned);
-			if (!aligned)
-				break;
-		}
-
-		for (i = 0; i < itrcount; i++) {
-			/* skip NULL rasters and if rasters are the same */
-			if (_param->isempty[i] || rast == _param->raster[i])
-				continue;
-
-			if (rt_raster_same_alignment(rast, _param->raster[i], &aligned, NULL) != ES_NONE) {
-				rterror("rt_raster_iterator: Could not test for alignment between reference raster and raster %d", i);
-
-				_rti_iterator_arg_destroy(_param);
-
-				return ES_ERROR;
-			}
-			RASTER_DEBUGF(5, "raster at index %d alignment: %d", i, aligned);
-
-			/* abort checking since a raster isn't aligned */
-			if (!aligned)
-				break;
-		}
-	}
-	while (0);
-
-	/* not aligned, error */
-	if (!aligned) {
-		rterror("rt_raster_iterator: The set of rasters provided (custom extent included, if appropriate) do not have the same alignment");
-
-		_rti_iterator_arg_destroy(_param);
-
-		return ES_ERROR;
-	}
-
-	/* use extenttype to build output raster (no bands though) */
-	i = -1;
-	switch (extenttype) {
-		case ET_INTERSECTION:
-		case ET_UNION:
-			/* make copy of first "real" raster */
-			rtnrast = rtalloc(sizeof(struct rt_raster_t));
-			if (rtnrast == NULL) {
-				rterror("rt_raster_iterator: Could not allocate memory for output raster");
-
-				_rti_iterator_arg_destroy(_param);
-
-				return ES_ERROR;
-			}
-
-			for (i = 0; i < itrcount; i++) {
-				if (!_param->isempty[i]) {
-					memcpy(rtnrast, _param->raster[i], sizeof(struct rt_raster_serialized_t));
-					break;
-				}
-			}
-			rtnrast->numBands = 0;
-			rtnrast->bands = NULL;
-
-			/* get extent of output raster */
-			rast = NULL;
-			for (i = i + 1; i < itrcount; i++) {
-				if (_param->isempty[i])
-					continue;
-
-				status = rt_raster_from_two_rasters(rtnrast, _param->raster[i], extenttype, &rast, NULL);
-				rtdealloc(rtnrast);
-
-				if (rast == NULL || status != ES_NONE) {
-					rterror("rt_raster_iterator: Could not compute %s extent of rasters",
-						extenttype == ET_UNION ? "union" : "intersection"
-					);
-
-					_rti_iterator_arg_destroy(_param);
-
-					return ES_ERROR;
-				}
-				else if (rt_raster_is_empty(rast)) {
-					rtinfo("rt_raster_iterator: Computed raster for %s extent is empty",
-						extenttype == ET_UNION ? "union" : "intersection"
-					);
-
-					_rti_iterator_arg_destroy(_param);
-
-					*rtnraster = rast;
-					return ES_NONE;
-				}
-
-				rtnrast = rast;
-				rast = NULL;
-			}
-
-			break;
-		/*
-			first, second and last have similar checks
-			and continue into custom
-		*/
-		case ET_FIRST:
-			i = 0;
-		case ET_SECOND:
-			if (i < 0) {
-				if (itrcount < 2)
-					i = 0;
-				else
-					i = 1;
-			}
-		case ET_LAST:
-			if (i < 0) i = itrcount - 1;
-			
-			/* input raster is null, return NULL */
-			if (_param->raster[i] == NULL) {
-				RASTER_DEBUGF(3, "returning NULL as %s raster is NULL and extent type is ET_%s",
-					(i == 0 ? "first" : (i == 1 ? "second" : "last")),
-					(i == 0 ? "FIRST" : (i == 1 ? "SECOND" : "LAST"))
-				);
-
-				_rti_iterator_arg_destroy(_param);
-
-				return ES_NONE;
-			}
-			/* input raster is empty, return empty raster */
-			else if (_param->isempty[i]) {
-				RASTER_DEBUGF(3, "returning empty raster as %s raster is empty and extent type is ET_%s",
-					(i == 0 ? "first" : (i == 1 ? "second" : "last")),
-					(i == 0 ? "FIRST" : (i == 1 ? "SECOND" : "LAST"))
-				);
-
-				_rti_iterator_arg_destroy(_param);
-
-				rtnrast = rt_raster_new(0, 0);
-				if (rtnrast == NULL) {
-					rterror("rt_raster_iterator: Could not create empty raster");
-					return ES_ERROR;
-				}
-				rt_raster_set_scale(rtnrast, 0, 0);
-
-				*rtnraster = rtnrast;
-				return ES_NONE;
-			}
-		/* copy the custom extent raster */
-		case ET_CUSTOM:
-			rtnrast = rtalloc(sizeof(struct rt_raster_t));
-			if (rtnrast == NULL) {
-				rterror("rt_raster_iterator: Could not allocate memory for output raster");
-
-				_rti_iterator_arg_destroy(_param);
-
-				return ES_ERROR;
-			}
-
-			switch (extenttype) {
-				case ET_CUSTOM:
-					memcpy(rtnrast, customextent, sizeof(struct rt_raster_serialized_t));
-					break;
-				/* first, second, last */
-				default:
-					memcpy(rtnrast, _param->raster[i], sizeof(struct rt_raster_serialized_t));
-					break;
-			}
-			rtnrast->numBands = 0;
-			rtnrast->bands = NULL;
-			break;
-	}
-
-	_width = rt_raster_get_width(rtnrast);
-	_height = rt_raster_get_height(rtnrast);
-
-	RASTER_DEBUGF(4, "rtnrast (width, height, ulx, uly, scalex, scaley, skewx, skewy, srid) = (%d, %d, %f, %f, %f, %f, %f, %f, %d)",
-		_width,
-		_height,
-		rt_raster_get_x_offset(rtnrast),
-		rt_raster_get_y_offset(rtnrast),
-		rt_raster_get_x_scale(rtnrast),
-		rt_raster_get_y_scale(rtnrast),
-		rt_raster_get_x_skew(rtnrast),
-		rt_raster_get_y_skew(rtnrast),
-		rt_raster_get_srid(rtnrast)
-	);
-
-	/* init values and NODATA for use with empty rasters */
-	if (!_rti_iterator_arg_empty_init(_param)) {
-		rterror("rt_raster_iterator: Could not initialize empty values and NODATA");
-
-		_rti_iterator_arg_destroy(_param);
-		rt_raster_destroy(rtnrast);
-		
-		return ES_ERROR;
-	}
-
-	/* create output band */
-	if (rt_raster_generate_new_band(
-		rtnrast,
-		pixtype,
-		nodataval,
-		hasnodata, nodataval,
-		0
-	) < 0) {
-		rterror("rt_raster_iterator: Could not add new band to output raster");
-
-		_rti_iterator_arg_destroy(_param);
-		rt_raster_destroy(rtnrast);
-
-		return ES_ERROR;
-	}
-
-	/* get output band */
-	rtnband = rt_raster_get_band(rtnrast, 0);
-	if (rtnband == NULL) {
-		rterror("rt_raster_iterator: Could not get new band from output raster");
-
-		_rti_iterator_arg_destroy(_param);
-		rt_raster_destroy(rtnrast);
-
-		return ES_ERROR;
-	}
-
-	/* output band's minimum value */
-	minval = rt_band_get_min_value(rtnband);
-
-	/* initialize argument for callback function */
-	if (!_rti_iterator_arg_callback_init(_param)) {
-		rterror("rt_raster_iterator: Could not initialize callback function argument");
-
-		_rti_iterator_arg_destroy(_param);
-		rt_band_destroy(rtnband);
-		rt_raster_destroy(rtnrast);
-
-		return ES_ERROR;
-	}
-
-	/* fill _param->offset */
-	for (i = 0; i < itrcount; i++) {
-		if (_param->isempty[i])
-			continue;
-
-		status = rt_raster_from_two_rasters(rtnrast, _param->raster[i], ET_FIRST, &rast, offset);
-		rtdealloc(rast);
-		if (status != ES_NONE) {
-			rterror("rt_raster_iterator: Could not compute raster offsets");
-
-			_rti_iterator_arg_destroy(_param);
-			rt_band_destroy(rtnband);
-			rt_raster_destroy(rtnrast);
-
-			return ES_ERROR;
-		}
-
-		_param->offset[i][0] = offset[2];
-		_param->offset[i][1] = offset[3];
-		RASTER_DEBUGF(4, "rast %d offset: %f %f", i, offset[2], offset[3]);
-	}
-
-	/* loop over each pixel (POI) of output raster */
-	/* _x,_y are for output raster */
-	/* x,y are for input raster */
-	for (_y = 0; _y < _height; _y++) {
-		for (_x = 0; _x < _width; _x++) {
-			RASTER_DEBUGF(4, "iterating output pixel (x, y) = (%d, %d)", _x, _y);
-			_param->arg->dst_pixel[0] = _x;
-			_param->arg->dst_pixel[1] = _y;
-
-			/* loop through each input raster */
-			for (i = 0; i < itrcount; i++) {
-				RASTER_DEBUGF(4, "raster %d", i);
-
-				/*
-					empty raster
-					OR band does not exist and flag set to use NODATA
-					OR band is NODATA
-				*/
-				if (
-					_param->isempty[i] ||
-					(_param->band.rtband[i] == NULL && itrset[i].nbnodata) ||
-					_param->band.isnodata[i]
-				) {
-					RASTER_DEBUG(4, "empty raster, band does not exist or band is NODATA. using empty values and NODATA");
-					
-					x = _x;
-					y = _y;
-
-					_param->arg->values[i] = _param->empty.values;
-					_param->arg->nodata[i] = _param->empty.nodata;
-
-					continue;
-				}
-
-				/* input raster's X,Y */
-				x = _x - (int) _param->offset[i][0];
-				y = _y - (int) _param->offset[i][1];
-				RASTER_DEBUGF(4, "source pixel (x, y) = (%d, %d)", x, y);
-
-				_param->arg->src_pixel[i][0] = x;
-				_param->arg->src_pixel[i][1] = y;
-
-				/* neighborhood */
-				npixels = NULL;
-				status = 0;
-				if (distancex > 0 && distancey > 0) {
-					RASTER_DEBUG(4, "getting neighborhood");
-
-					status = rt_band_get_nearest_pixel(
-						_param->band.rtband[i],
-						x, y,
-						distancex, distancey,
-						1,
-						&npixels
-					);
-					if (status < 0) {
-						rterror("rt_raster_iterator: Could not get pixel neighborhood");
-
-						_rti_iterator_arg_destroy(_param);
-						rt_band_destroy(rtnband);
-						rt_raster_destroy(rtnrast);
-
-						return ES_ERROR;
-					}
-				}
-
-				/* get value of POI */
-				/* get pixel's value */
-				if (
-					(x >= 0 && x < _param->width[i]) &&
-					(y >= 0 && y < _param->height[i])
-				) {
-					RASTER_DEBUG(4, "getting value of POI");
-					if (rt_band_get_pixel(
-						_param->band.rtband[i],
-						x, y,
-						&value,
-						&isnodata
-					) != ES_NONE) {
-						rterror("rt_raster_iterator: Could not get the pixel value of band");
-
-						_rti_iterator_arg_destroy(_param);
-						rt_band_destroy(rtnband);
-						rt_raster_destroy(rtnrast);
-
-						return ES_ERROR;
-					}
-					inextent = 1;
-				}
-				/* outside band extent, set to NODATA */
-				else {
-					RASTER_DEBUG(4, "Outside band extent, setting value to NODATA");
-					/* has NODATA, use NODATA */
-					if (_param->band.hasnodata[i])
-						value = _param->band.nodataval[i];
-					/* no NODATA, use min possible value */
-					else
-						value = _param->band.minval[i];
-
-					inextent = 0;
-					isnodata = 1;
-				}
-
-				/* add pixel to neighborhood */
-				status++;
-				if (status > 1)
-					npixels = (rt_pixel) rtrealloc(npixels, sizeof(struct rt_pixel_t) * status);
-				else
-					npixels = (rt_pixel) rtalloc(sizeof(struct rt_pixel_t));
-
-				if (npixels == NULL) {
-					rterror("rt_raster_iterator: Could not reallocate memory for neighborhood");
-
-					_rti_iterator_arg_destroy(_param);
-					rt_band_destroy(rtnband);
-					rt_raster_destroy(rtnrast);
-
-					return ES_ERROR;
-				}
-
-				npixels[status - 1].x = x;
-				npixels[status - 1].y = y;
-				npixels[status - 1].nodata = 1;
-				npixels[status - 1].value = value;
-
-				/* set nodata flag */
-				if ((!_param->band.hasnodata[i] && inextent) || !isnodata) {
-					npixels[status - 1].nodata = 0;
-				}
-				RASTER_DEBUGF(4, "value, nodata: %f, %d", value, npixels[status - 1].nodata);
-
-				/* convert set of rt_pixel to 2D array */
-				status = rt_pixel_set_to_array(
-					npixels, status,
-					x, y,
-					distancex, distancey,
-					&(_param->arg->values[i]),
-					&(_param->arg->nodata[i]),
-					NULL, NULL
-				);
-				rtdealloc(npixels);
-				if (status != ES_NONE) {
-					rterror("rt_raster_iterator: Could not create 2D array of neighborhood");
-
-					_rti_iterator_arg_destroy(_param);
-					rt_band_destroy(rtnband);
-					rt_raster_destroy(rtnrast);
-
-					return ES_ERROR;
-				}
-			}
-	
-			/* callback */
-			RASTER_DEBUG(4, "calling callback function");
-			value = 0;
-			nodata = 0;
-			status = callback(_param->arg, userarg, &value, &nodata);
-
-			/* free memory from callback */
-			_rti_iterator_arg_callback_clean(_param);
-
-			/* handle callback status */
-			if (status == 0) {
-				rterror("rt_raster_iterator: Callback function returned an error");
-
-				_rti_iterator_arg_destroy(_param);
-				rt_band_destroy(rtnband);
-				rt_raster_destroy(rtnrast);
-
-				return ES_ERROR;
-			}
-
-			/* burn value to pixel */
-			status = 0;
-			if (!nodata) {
-				status = rt_band_set_pixel(rtnband, _x, _y, value, NULL);
-				RASTER_DEBUGF(4, "burning pixel (%d, %d) with value: %f", _x, _y, value);
-			}
-			else if (!hasnodata) {
-				status = rt_band_set_pixel(rtnband, _x, _y, minval, NULL);
-				RASTER_DEBUGF(4, "burning pixel (%d, %d) with minval: %f", _x, _y, minval);
-			}
-			else {
-				RASTER_DEBUGF(4, "NOT burning pixel (%d, %d)", _x, _y);
-			}
-			if (status != ES_NONE) {
-				rterror("rt_raster_iterator: Could not set pixel value");
-
-				_rti_iterator_arg_destroy(_param);
-				rt_band_destroy(rtnband);
-				rt_raster_destroy(rtnrast);
-
-				return ES_ERROR;
-			}
-		}
-	}
-
-	/* lots of cleanup */
-	_rti_iterator_arg_destroy(_param);
-
-	*rtnraster = rtnrast;
-	return ES_NONE;
-}
-
-/******************************************************************************
-* rt_raster_perimeter()
-******************************************************************************/
-static rt_errorstate
-_rti_raster_get_band_perimeter(rt_band band, uint16_t *trim) {
-	uint16_t width = 0;
-	uint16_t height = 0;
-	int x = 0;
-	int y = 0;
-	int offset = 0;
-	int done[4] = {0};
-	double value = 0;
-	int nodata = 0;
-
-	assert(band != NULL);
-	assert(band->raster != NULL);
-	assert(trim != NULL);
-
-	memset(trim, 0, sizeof(uint16_t) * 4);
-
-	width = rt_band_get_width(band);
-	height = rt_band_get_height(band);
-		
-	/* top */
-	for (y = 0; y < height; y++) {
-		for (offset = 0; offset < 3; offset++) {
-			/* every third pixel */
-			for (x = offset; x < width; x += 3) {
-				if (rt_band_get_pixel(band, x, y, &value, &nodata) != ES_NONE) {
-					rterror("_rti_raster_get_band_perimeter: Could not get band pixel");
-					return ES_ERROR;
-				}
-
-				RASTER_DEBUGF(4, "top (x, y, value, nodata) = (%d, %d, %f, %d)", x, y, value, nodata);
-				if (!nodata) {
-					trim[0] = y;
-					done[0] = 1;
-					break;
-				}
-			}
-
-			if (done[0])
-				break;
-		}
-
-		if (done[0])
-			break;
-	}
-
-	/* right */
-	for (x = width - 1; x >= 0; x--) {
-		for (offset = 0; offset < 3; offset++) {
-			/* every third pixel */
-			for (y = offset; y < height; y += 3) {
-				if (rt_band_get_pixel(band, x, y, &value, &nodata) != ES_NONE) {
-					rterror("_rti_raster_get_band_perimeter: Could not get band pixel");
-					return ES_ERROR;
-				}
-
-				RASTER_DEBUGF(4, "right (x, y, value, nodata) = (%d, %d, %f, %d)", x, y, value, nodata);
-				if (!nodata) {
-					trim[1] = width - (x + 1);
-					done[1] = 1;
-					break;
-				}
-			}
-
-			if (done[1])
-				break;
-		}
-
-		if (done[1])
-			break;
-	}
-
-	/* bottom */
-	for (y = height - 1; y >= 0; y--) {
-		for (offset = 0; offset < 3; offset++) {
-			/* every third pixel */
-			for (x = offset; x < width; x += 3) {
-				if (rt_band_get_pixel(band, x, y, &value, &nodata) != ES_NONE) {
-					rterror("_rti_raster_get_band_perimeter: Could not get band pixel");
-					return ES_ERROR;
-				}
-
-				RASTER_DEBUGF(4, "bottom (x, y, value, nodata) = (%d, %d, %f, %d)", x, y, value, nodata);
-				if (!nodata) {
-					trim[2] = height - (y + 1);
-					done[2] = 1;
-					break;
-				}
-			}
-
-			if (done[2])
-				break;
-		}
-
-		if (done[2])
-			break;
-	}
-
-	/* left */
-	for (x = 0; x < width; x++) {
-		for (offset = 0; offset < 3; offset++) {
-			/* every third pixel */
-			for (y = offset; y < height; y += 3) {
-				if (rt_band_get_pixel(band, x, y, &value, &nodata) != ES_NONE) {
-					rterror("_rti_raster_get_band_perimeter: Could not get band pixel");
-					return ES_ERROR;
-				}
-
-				RASTER_DEBUGF(4, "left (x, , value, nodata) = (%d, %d, %f, %d)", x, y, value, nodata);
-				if (!nodata) {
-					trim[3] = x;
-					done[3] = 1;
-					break;
-				}
-			}
-
-			if (done[3])
-				break;
-		}
-
-		if (done[3])
-			break;
-	}
-
-	RASTER_DEBUGF(4, "trim = (%d, %d, %d, %d)",
-		trim[0], trim[1], trim[2], trim[3]);
-
-	return ES_NONE;
-}
-
-/**
- * Get raster perimeter
- *
- * The perimeter is a 4 vertices (5 to be closed)
- * single ring polygon bearing the raster's rotation and using
- * projection coordinates.
- *
- * @param raster : the raster to get info from
- * @param nband : the band for the perimeter. 0-based
- * value less than zero means all bands
- * @param **perimeter : pointer to perimeter
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_get_perimeter(
-	rt_raster raster, int nband,
-	LWGEOM **perimeter
-) {
-	rt_band band = NULL;
-	int numband = 0;
-	uint16_t *_nband = NULL;
-	int i = 0;
-	int j = 0;
-	uint16_t _trim[4] = {0};
-	uint16_t trim[4] = {0}; /* top, right, bottom, left */
-	int isset[4] = {0};
-	double gt[6] = {0.0};
-	int srid = SRID_UNKNOWN;
-
-	POINTARRAY *pts = NULL;
-	POINT4D p4d;
-	POINTARRAY **rings = NULL;
-	LWPOLY* poly = NULL;
-
-	assert(perimeter != NULL);
-
-	*perimeter = NULL;
-
-	/* empty raster, no perimeter */
-	if (rt_raster_is_empty(raster))
-		return ES_NONE;
-
-	/* raster metadata */
-	srid = rt_raster_get_srid(raster);
-	rt_raster_get_geotransform_matrix(raster, gt);
-	numband = rt_raster_get_num_bands(raster);
-
-	RASTER_DEBUGF(3, "rt_raster_get_perimeter: raster is %dx%d", raster->width, raster->height); 
-
-	/* nband < 0 means all bands */
-	if (nband >= 0) {
-		if (nband >= numband) {
-			rterror("rt_raster_get_boundary: Band %d not found for raster", nband);
-			return ES_ERROR;
-		}
-
-		numband = 1;
-	}
-	else
-		nband = -1;
-	
-	RASTER_DEBUGF(3, "rt_raster_get_perimeter: nband, numband = %d, %d", nband, numband); 
-
-	_nband = rtalloc(sizeof(uint16_t) * numband);
-	if (_nband == NULL) {
-		rterror("rt_raster_get_boundary: Could not allocate memory for band indices");
-		return ES_ERROR;
-	}
-
-	if (nband < 0) {
-		for (i = 0; i < numband; i++)
-			_nband[i] = i;
-	}
-	else
-		_nband[0] = nband;
-
-	for (i = 0; i < numband; i++) {
-		band = rt_raster_get_band(raster, _nband[i]);
-		if (band == NULL) {
-			rterror("rt_raster_get_boundary: Could not get band at index %d", _nband[i]);
-			rtdealloc(_nband);
-			return ES_ERROR;
-		}
-
-		/* band is nodata */
-		if (rt_band_get_isnodata_flag(band) != 0)
-			continue;
-
-		if (_rti_raster_get_band_perimeter(band, trim) != ES_NONE) {
-			rterror("rt_raster_get_boundary: Could not get band perimeter");
-			rtdealloc(_nband);
-			return ES_ERROR;
-		}
-
-		for (j = 0; j < 4; j++) {
-			if (!isset[j] || trim[j] < _trim[j]) {
-				_trim[j] = trim[j];
-				isset[j] = 1;
-			}
-		}
-	}
-
-	/* no longer needed */
-	rtdealloc(_nband);
-
-	/* check isset, just need to check one element */
-	if (!isset[0]) {
-		/* return NULL as bands are empty */
-		return ES_NONE;
-	}
-
-	RASTER_DEBUGF(4, "trim = (%d, %d, %d, %d)",
-		trim[0], trim[1], trim[2], trim[3]);
-
-	/* only one ring */
-	rings = (POINTARRAY **) rtalloc(sizeof (POINTARRAY*));
-	if (!rings) {
-		rterror("rt_raster_get_perimeter: Could not allocate memory for polygon ring");
-		return ES_ERROR;
-	}
-	rings[0] = ptarray_construct(0, 0, 5);
-	if (!rings[0]) {
-		rterror("rt_raster_get_perimeter: Could not construct point array");
-		return ES_ERROR;
-	}
-	pts = rings[0];
-
-	/* Upper-left corner (first and last points) */
-	rt_raster_cell_to_geopoint(
-		raster,
-		_trim[3], _trim[0],
-		&p4d.x, &p4d.y,
-		gt
-	);
-	ptarray_set_point4d(pts, 0, &p4d);
-	ptarray_set_point4d(pts, 4, &p4d);
-
-	/* Upper-right corner (we go clockwise) */
-	rt_raster_cell_to_geopoint(
-		raster,
-		raster->width - _trim[1], _trim[0],
-		&p4d.x, &p4d.y,
-		gt
-	);
-	ptarray_set_point4d(pts, 1, &p4d);
-
-	/* Lower-right corner */
-	rt_raster_cell_to_geopoint(
-		raster,
-		raster->width - _trim[1], raster->height - _trim[2],
-		&p4d.x, &p4d.y,
-		gt
-	);
-	ptarray_set_point4d(pts, 2, &p4d);
-
-	/* Lower-left corner */
-	rt_raster_cell_to_geopoint(
-		raster,
-		_trim[3], raster->height - _trim[2],
-		&p4d.x, &p4d.y,
-		gt
-	);
-	ptarray_set_point4d(pts, 3, &p4d);
-
-	poly = lwpoly_construct(srid, 0, 1, rings);
-	*perimeter = lwpoly_as_lwgeom(poly);
-
-	return ES_NONE;
-}
-
-/******************************************************************************
-* rt_raster_colormap()
-******************************************************************************/
-
-typedef struct _rti_colormap_arg_t* _rti_colormap_arg;
-struct _rti_colormap_arg_t {
-	rt_raster raster;
-	rt_band band;
-
-	rt_colormap_entry nodataentry;
-	int hasnodata;
-	double nodataval;
-
-	int nexpr;
-	rt_reclassexpr *expr;
-
-	int npos;
-	uint16_t *pos;
-
-};
-
-static _rti_colormap_arg
-_rti_colormap_arg_init(rt_raster raster) {
-	_rti_colormap_arg arg = NULL;
-
-	arg = rtalloc(sizeof(struct _rti_colormap_arg_t));
-	if (arg == NULL) {
-		rterror("_rti_colormap_arg_init: Could not allocate memory for _rti_color_arg");
-		return NULL;
-	}
-
-	arg->band = NULL;
-	arg->nodataentry = NULL;
-	arg->hasnodata = 0;
-	arg->nodataval = 0;
-
-	if (raster == NULL)
-		arg->raster = NULL;
-	/* raster provided */
-	else {
-		arg->raster = rt_raster_clone(raster, 0);
-		if (arg->raster == NULL) {
-			rterror("_rti_colormap_arg_init: Could not create output raster");
-			return NULL;
-		}
-	}
-
-	arg->nexpr = 0;
-	arg->expr = NULL;
-
-	arg->npos = 0;
-	arg->pos = NULL;
-
-	return arg;
-}
-
-static void
-_rti_colormap_arg_destroy(_rti_colormap_arg arg) {
-	int i = 0;
-
-	if (arg->raster != NULL) {
-		rt_band band = NULL;
-
-		for (i = rt_raster_get_num_bands(arg->raster) - 1; i >= 0; i--) {
-			band = rt_raster_get_band(arg->raster, i);
-			if (band != NULL)
-				rt_band_destroy(band);
-		}
-
-		rt_raster_destroy(arg->raster);
-	}
-
-	if (arg->nexpr) {
-		for (i = 0; i < arg->nexpr; i++) {
-			if (arg->expr[i] != NULL)
-				rtdealloc(arg->expr[i]);
-		}
-		rtdealloc(arg->expr);
-	}
-
-	if (arg->npos)
-		rtdealloc(arg->pos);
-
-	rtdealloc(arg);
-	arg = NULL;
-}
-
-/**
- * Returns a new raster with up to four 8BUI bands (RGBA) from
- * applying a colormap to the user-specified band of the
- * input raster.
- *
- * @param raster: input raster
- * @param nband: 0-based index of the band to process with colormap
- * @param colormap: rt_colormap object of colormap to apply to band
- *
- * @return new raster or NULL on error
- */
-rt_raster rt_raster_colormap(
-	rt_raster raster, int nband,
-	rt_colormap colormap
-) {
-	_rti_colormap_arg arg = NULL;
-	rt_raster rtnraster = NULL;
-	rt_band band = NULL;
-	int i = 0;
-	int j = 0;
-	int k = 0;
-
-	assert(colormap != NULL);
-
-	/* empty raster */
-	if (rt_raster_is_empty(raster))
-		return NULL;
-
-	/* no colormap entries */
-	if (colormap->nentry < 1) {
-		rterror("rt_raster_colormap: colormap must have at least one entry");
-		return NULL;
-	}
-
-	/* nband is valid */
-	if (!rt_raster_has_band(raster, nband)) {
-		rterror("rt_raster_colormap: raster has no band at index %d", nband);
-		return NULL;
-	}
-
-	band = rt_raster_get_band(raster, nband);
-	if (band == NULL) {
-		rterror("rt_raster_colormap: Could not get band at index %d", nband);
-		return NULL;
-	}
-
-	/* init internal variables */
-	arg = _rti_colormap_arg_init(raster);
-	if (arg == NULL) {
-		rterror("rt_raster_colormap: Could not initialize internal variables");
-		return NULL;
-	}
-
-	/* handle NODATA */
-	if (rt_band_get_hasnodata_flag(band)) {
-		arg->hasnodata = 1;
-		rt_band_get_nodata(band, &(arg->nodataval));
-	}
-
-	/* # of colors */
-	if (colormap->ncolor < 1) {
-		rterror("rt_raster_colormap: At least one color must be provided");
-		_rti_colormap_arg_destroy(arg);
-		return NULL;
-	}
-	else if (colormap->ncolor > 4) {
-		rtinfo("More than four colors indicated. Using only the first four colors");
-		colormap->ncolor = 4;
-	}
-
-	/* find non-NODATA entries */
-	arg->npos = 0;
-	arg->pos = rtalloc(sizeof(uint16_t) * colormap->nentry);
-	if (arg->pos == NULL) {
-		rterror("rt_raster_colormap: Could not allocate memory for valid entries");
-		_rti_colormap_arg_destroy(arg);
-		return NULL;
-	}
-	for (i = 0, j = 0; i < colormap->nentry; i++) {
-		/* special handling for NODATA entries */
-		if (colormap->entry[i].isnodata) {
-			/* first NODATA entry found, use it */
-			if (arg->nodataentry == NULL)
-				arg->nodataentry = &(colormap->entry[i]);
-			else
-				rtwarn("More than one colormap entry found for NODATA value. Only using first NOTDATA entry");
-
-			continue;
-		}
-
-		(arg->npos)++;
-		arg->pos[j++] = i;
-	}
-
-	/* INTERPOLATE and only one non-NODATA entry */
-	if (colormap->method == CM_INTERPOLATE && arg->npos < 2) {
-		rtinfo("Method INTERPOLATE requires at least two non-NODATA colormap entries. Using NEAREST instead");
-		colormap->method = CM_NEAREST;
-	}
-
-	/* NODATA entry but band has no NODATA value */
-	if (!arg->hasnodata && arg->nodataentry != NULL) {
-		rtinfo("Band at index %d has no NODATA value. Ignoring NODATA entry", nband);
-		arg->nodataentry = NULL;
-	}
-
-	/* allocate expr */
-	arg->nexpr = arg->npos;
-
-	/* INTERPOLATE needs one less than the number of entries */
-	if (colormap->method == CM_INTERPOLATE)
-		arg->nexpr -= 1;
-	/* EXACT requires a no matching expression */
-	else if (colormap->method == CM_EXACT)
-		arg->nexpr += 1;
-
-	/* NODATA entry exists, add expression */
-	if (arg->nodataentry != NULL)
-		arg->nexpr += 1;
-	arg->expr = rtalloc(sizeof(rt_reclassexpr) * arg->nexpr);
-	if (arg->expr == NULL) {
-		rterror("rt_raster_colormap: Could not allocate memory for reclass expressions");
-		_rti_colormap_arg_destroy(arg);
-		return NULL;
-	}
-	RASTER_DEBUGF(4, "nexpr = %d", arg->nexpr);
-	RASTER_DEBUGF(4, "expr @ %p", arg->expr);
-
-	for (i = 0; i < arg->nexpr; i++) {
-		arg->expr[i] = rtalloc(sizeof(struct rt_reclassexpr_t));
-		if (arg->expr[i] == NULL) {
-			rterror("rt_raster_colormap: Could not allocate memory for reclass expression");
-			_rti_colormap_arg_destroy(arg);
-			return NULL;
-		}
-	}
-
-	/* reclassify bands */
-	/* by # of colors */
-	for (i = 0; i < colormap->ncolor; i++) {
-		k = 0;
-
-		/* handle NODATA entry first */
-		if (arg->nodataentry != NULL) {
-			arg->expr[k]->src.min = arg->nodataentry->value;
-			arg->expr[k]->src.max = arg->nodataentry->value;
-			arg->expr[k]->src.inc_min = 1;
-			arg->expr[k]->src.inc_max = 1;
-			arg->expr[k]->src.exc_min = 0;
-			arg->expr[k]->src.exc_max = 0;
-
-			arg->expr[k]->dst.min = arg->nodataentry->color[i];
-			arg->expr[k]->dst.max = arg->nodataentry->color[i];
-
-			arg->expr[k]->dst.inc_min = 1;
-			arg->expr[k]->dst.inc_max = 1;
-			arg->expr[k]->dst.exc_min = 0;
-			arg->expr[k]->dst.exc_max = 0;
-
-			RASTER_DEBUGF(4, "NODATA expr[%d]->src (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
-				k,
-				arg->expr[k]->src.min,
-				arg->expr[k]->src.max,
-				arg->expr[k]->src.inc_min,
-				arg->expr[k]->src.inc_max,
-				arg->expr[k]->src.exc_min,
-				arg->expr[k]->src.exc_max
-			);
-			RASTER_DEBUGF(4, "NODATA expr[%d]->dst (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
-				k,
-				arg->expr[k]->dst.min,
-				arg->expr[k]->dst.max,
-				arg->expr[k]->dst.inc_min,
-				arg->expr[k]->dst.inc_max,
-				arg->expr[k]->dst.exc_min,
-				arg->expr[k]->dst.exc_max
-			);
-
-			k++;
-		}
-
-		/* by non-NODATA entry */
-		for (j = 0; j < arg->npos; j++) {
-			if (colormap->method == CM_INTERPOLATE) {
-				if (j == arg->npos - 1)
-					continue;
-
-				arg->expr[k]->src.min = colormap->entry[arg->pos[j + 1]].value;
-				arg->expr[k]->src.inc_min = 1;
-				arg->expr[k]->src.exc_min = 0;
-
-				arg->expr[k]->src.max = colormap->entry[arg->pos[j]].value;
-				arg->expr[k]->src.inc_max = 1;
-				arg->expr[k]->src.exc_max = 0;
-
-				arg->expr[k]->dst.min = colormap->entry[arg->pos[j + 1]].color[i];
-				arg->expr[k]->dst.max = colormap->entry[arg->pos[j]].color[i];
-
-				arg->expr[k]->dst.inc_min = 1;
-				arg->expr[k]->dst.exc_min = 0;
-
-				arg->expr[k]->dst.inc_max = 1;
-				arg->expr[k]->dst.exc_max = 0;
-			}
-			else if (colormap->method == CM_NEAREST) {
-
-				/* NOT last entry */
-				if (j != arg->npos - 1) {
-					arg->expr[k]->src.min = ((colormap->entry[arg->pos[j]].value - colormap->entry[arg->pos[j + 1]].value) / 2.) + colormap->entry[arg->pos[j + 1]].value;
-					arg->expr[k]->src.inc_min = 0;
-					arg->expr[k]->src.exc_min = 0;
-				}
-				/* last entry */
-				else {
-					arg->expr[k]->src.min = colormap->entry[arg->pos[j]].value;
-					arg->expr[k]->src.inc_min = 1;
-					arg->expr[k]->src.exc_min = 1;
-				}
-
-				/* NOT first entry */
-				if (j > 0) {
-					arg->expr[k]->src.max = arg->expr[k - 1]->src.min;
-					arg->expr[k]->src.inc_max = 1;
-					arg->expr[k]->src.exc_max = 0;
-				}
-				/* first entry */
-				else {
-					arg->expr[k]->src.max = colormap->entry[arg->pos[j]].value;
-					arg->expr[k]->src.inc_max = 1;
-					arg->expr[k]->src.exc_max = 1;
-				}
-
-				arg->expr[k]->dst.min = colormap->entry[arg->pos[j]].color[i];
-				arg->expr[k]->dst.inc_min = 1;
-				arg->expr[k]->dst.exc_min = 0;
-
-				arg->expr[k]->dst.max = colormap->entry[arg->pos[j]].color[i];
-				arg->expr[k]->dst.inc_max = 1;
-				arg->expr[k]->dst.exc_max = 0;
-			}
-			else if (colormap->method == CM_EXACT) {
-				arg->expr[k]->src.min = colormap->entry[arg->pos[j]].value;
-				arg->expr[k]->src.inc_min = 1;
-				arg->expr[k]->src.exc_min = 0;
-
-				arg->expr[k]->src.max = colormap->entry[arg->pos[j]].value;
-				arg->expr[k]->src.inc_max = 1;
-				arg->expr[k]->src.exc_max = 0;
-
-				arg->expr[k]->dst.min = colormap->entry[arg->pos[j]].color[i];
-				arg->expr[k]->dst.inc_min = 1;
-				arg->expr[k]->dst.exc_min = 0;
-
-				arg->expr[k]->dst.max = colormap->entry[arg->pos[j]].color[i];
-				arg->expr[k]->dst.inc_max = 1;
-				arg->expr[k]->dst.exc_max = 0;
-			}
-
-			RASTER_DEBUGF(4, "expr[%d]->src (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
-				k,
-				arg->expr[k]->src.min,
-				arg->expr[k]->src.max,
-				arg->expr[k]->src.inc_min,
-				arg->expr[k]->src.inc_max,
-				arg->expr[k]->src.exc_min,
-				arg->expr[k]->src.exc_max
-			);
-
-			RASTER_DEBUGF(4, "expr[%d]->dst (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
-				k,
-				arg->expr[k]->dst.min,
-				arg->expr[k]->dst.max,
-				arg->expr[k]->dst.inc_min,
-				arg->expr[k]->dst.inc_max,
-				arg->expr[k]->dst.exc_min,
-				arg->expr[k]->dst.exc_max
-			);
-
-			k++;
-		}
-
-		/* EXACT has one last expression for catching all uncaught values */
-		if (colormap->method == CM_EXACT) {
-			arg->expr[k]->src.min = 0;
-			arg->expr[k]->src.inc_min = 1;
-			arg->expr[k]->src.exc_min = 1;
-
-			arg->expr[k]->src.max = 0;
-			arg->expr[k]->src.inc_max = 1;
-			arg->expr[k]->src.exc_max = 1;
-
-			arg->expr[k]->dst.min = 0;
-			arg->expr[k]->dst.inc_min = 1;
-			arg->expr[k]->dst.exc_min = 0;
-
-			arg->expr[k]->dst.max = 0;
-			arg->expr[k]->dst.inc_max = 1;
-			arg->expr[k]->dst.exc_max = 0;
-
-			RASTER_DEBUGF(4, "expr[%d]->src (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
-				k,
-				arg->expr[k]->src.min,
-				arg->expr[k]->src.max,
-				arg->expr[k]->src.inc_min,
-				arg->expr[k]->src.inc_max,
-				arg->expr[k]->src.exc_min,
-				arg->expr[k]->src.exc_max
-			);
-
-			RASTER_DEBUGF(4, "expr[%d]->dst (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
-				k,
-				arg->expr[k]->dst.min,
-				arg->expr[k]->dst.max,
-				arg->expr[k]->dst.inc_min,
-				arg->expr[k]->dst.inc_max,
-				arg->expr[k]->dst.exc_min,
-				arg->expr[k]->dst.exc_max
-			);
-
-			k++;
-		}
-
-		/* call rt_band_reclass */
-		arg->band = rt_band_reclass(band, PT_8BUI, 0, 0, arg->expr, arg->nexpr);
-		if (arg->band == NULL) {
-			rterror("rt_raster_colormap: Could not reclassify band");
-			_rti_colormap_arg_destroy(arg);
-			return NULL;
-		}
-
-		/* add reclassified band to raster */
-		if (rt_raster_add_band(arg->raster, arg->band, rt_raster_get_num_bands(arg->raster)) < 0) {
-			rterror("rt_raster_colormap: Could not add reclassified band to output raster");
-			_rti_colormap_arg_destroy(arg);
-			return NULL;
-		}
-	}
-
-	rtnraster = arg->raster;
-	arg->raster = NULL;
-	_rti_colormap_arg_destroy(arg);
-
-	return rtnraster;
-}
diff --git a/raster/rt_core/rt_api.h b/raster/rt_core/rt_api.h
deleted file mode 100644
index a9ec759..0000000
--- a/raster/rt_core/rt_api.h
+++ /dev/null
@@ -1,2430 +0,0 @@
-/*
- * $Id: rt_api.h 12906 2014-08-22 02:18:46Z robe $
- *
- * WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
- *
- * Copyright (C) 2011-2013 Regents of the University of California
- *   <bkpark at ucdavis.edu>
- * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
- * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
- * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
- * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
- * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public 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 RT_API_H_INCLUDED
-#define RT_API_H_INCLUDED
-
-/* define the systems */
-#if defined(__linux__)  /* (predefined) */
-#if !defined(LINUX)
-#define LINUX
-#endif
-#if !defined(UNIX)
-#define UNIX        /* make sure this is defined */
-#endif
-#endif
-
-
-#if defined(__FreeBSD__)  || defined(__FreeBSD_kernel__) || defined(__OpenBSD__)    /* seems to work like Linux... */
-#if !defined(LINUX)
-#define LINUX
-#endif
-#if !defined(UNIX)
-#define UNIX        /* make sure this is defined */
-#endif
-#endif
-
-#if defined(__MSDOS__)
-#if !defined(MSDOS)
-#define MSDOS       /* make sure this is defined */
-#endif
-#endif
-
-#if defined(__WIN32__) || defined(__NT__) || defined(_WIN32)
-#if !defined(WIN32)
-#define WIN32
-#endif
-#if defined(__BORLANDC__) && defined(MSDOS) /* Borland always defines MSDOS */
-#undef  MSDOS
-#endif
-#endif
-
-#if defined(__APPLE__)
-#if !defined(UNIX)
-#define UNIX
-#endif
-#endif
-
-#if defined(sun) || defined(__sun) 
-#if !defined(UNIX) 
-#define UNIX 
-#endif 
-#endif
-
-/* if we are in Unix define stricmp to be strcasecmp and strnicmp to */
-/* be strncasecmp. I'm not sure if all Unices have these, but Linux */
-/* does. */
-#if defined(UNIX)
-#if !defined(HAVE_STRICMP)
-#define stricmp     strcasecmp
-#endif
-#if !defined(HAVE_STRNICMP)
-#define strnicmp    strncasecmp
-#endif
-#endif
-
-#include <stdlib.h> /* For size_t, srand and rand */
-#include <stdint.h> /* For C99 int types */
-#include <float.h> /* for FLT_EPSILON, DBL_EPSILON and float type limits */
-#include <limits.h> /* for integer type limits */
-#include <math.h>
-
-#include "lwgeom_geos.h"
-#include "liblwgeom.h"
-
-#include "gdal_alg.h"
-#include "gdal_frmts.h"
-#include "gdal.h"
-#include "gdalwarper.h"
-#include "ogr_api.h"
-#include "ogr_srs_api.h"
-#include "cpl_vsi.h"
-#include "cpl_conv.h"
-#include "../../postgis_config.h"
-#include "../raster_config.h"
-
-/**
- * @file rt_api.h
- *
- * This library is the generic raster handling section of PostGIS. The raster
- * objects, constructors, destructors, and a set of spatial processing functions
- * are implemented here.
- *
- * The library is designed for use in non-PostGIS applications if necessary. The
- * units tests at test/core (and the future loader/dumper programs) are examples
- * of non-PostGIS applications using rt_core.
- *
- * Programs using this library should set up the default memory managers and error
- * handlers by implementing an rt_init_allocators() function, which can be as
- * a wrapper around the rt_install_default_allocators() function if you want
- * no special handling for memory management and error reporting.
- *
- **/
-
-/**
- * Types definitions
- */
-typedef struct rt_raster_t* rt_raster;
-typedef struct rt_band_t* rt_band;
-typedef struct rt_pixel_t* rt_pixel;
-typedef struct rt_geomval_t* rt_geomval;
-typedef struct rt_bandstats_t* rt_bandstats;
-typedef struct rt_histogram_t* rt_histogram;
-typedef struct rt_quantile_t* rt_quantile;
-typedef struct rt_valuecount_t* rt_valuecount;
-typedef struct rt_gdaldriver_t* rt_gdaldriver;
-typedef struct rt_reclassexpr_t* rt_reclassexpr;
-
-typedef struct rt_iterator_t* rt_iterator;
-typedef struct rt_iterator_arg_t* rt_iterator_arg;
-
-typedef struct rt_colormap_entry_t* rt_colormap_entry;
-typedef struct rt_colormap_t* rt_colormap;
-
-/* envelope information */
-typedef struct {
-	double MinX;
-	double MaxX;
-	double MinY;
-	double MaxY;
-
-	double UpperLeftX;
-	double UpperLeftY;
-} rt_envelope;
-
-/**
- * Enum definitions
- */
-
-/* function return error states */
-typedef enum {
-	ES_NONE = 0, /* no error */
-	ES_ERROR = 1 /* generic error */
-} rt_errorstate;
-
-/* Pixel types */
-typedef enum {
-    PT_1BB=0,     /* 1-bit boolean            */
-    PT_2BUI=1,    /* 2-bit unsigned integer   */
-    PT_4BUI=2,    /* 4-bit unsigned integer   */
-    PT_8BSI=3,    /* 8-bit signed integer     */
-    PT_8BUI=4,    /* 8-bit unsigned integer   */
-    PT_16BSI=5,   /* 16-bit signed integer    */
-    PT_16BUI=6,   /* 16-bit unsigned integer  */
-    PT_32BSI=7,   /* 32-bit signed integer    */
-    PT_32BUI=8,   /* 32-bit unsigned integer  */
-    PT_32BF=10,   /* 32-bit float             */
-    PT_64BF=11,   /* 64-bit float             */
-    PT_END=13
-} rt_pixtype;
-
-typedef enum {
-	ET_INTERSECTION = 0,
-	ET_UNION,
-	ET_FIRST,
-	ET_SECOND,
-	ET_LAST,
-	ET_CUSTOM
-} rt_extenttype;
-
-/**
- * GEOS spatial relationship tests available
- *
- * GEOS tests not available are:
- *   intersects
- *   crosses
- *   disjoint
- */
-typedef enum {
-	GSR_OVERLAPS = 0,
-	GSR_TOUCHES,
-	GSR_CONTAINS,
-	GSR_CONTAINSPROPERLY,
-	GSR_COVERS,
-	GSR_COVEREDBY
-} rt_geos_spatial_test;
-
-/**
-* Global functions for memory/logging handlers.
-*/
-typedef void* (*rt_allocator)(size_t size);
-typedef void* (*rt_reallocator)(void *mem, size_t size);
-typedef void  (*rt_deallocator)(void *mem);
-typedef void  (*rt_message_handler)(const char* string, va_list ap);
-
-/****************************************************************************
- * Functions that must be implemented for the raster core function's caller
- * (for example: rt_pg functions, test functions, future loader/exporter)
- ****************************************************************************/
-
-/**
- * Supply the memory management and error handling functions you want your
- * application to use
- */
-extern void rt_init_allocators(void);
-
-/*********************************************************************/
-
-
-/*******************************************************************
- * Functions that may be used by the raster core function's caller
- * (for example: rt_pg functions, test functions, future loader/exporter)
- *******************************************************************/
-/**
- * Apply the default memory management (malloc() and free()) and error handlers.
- * Called inside rt_init_allocators() generally.
- */
-extern void rt_install_default_allocators(void);
-
-
-/**
- * Wrappers used for managing memory. They simply call the functions defined by
- * the caller
- **/
-extern void* rtalloc(size_t size);
-extern void* rtrealloc(void* mem, size_t size);
-extern void rtdealloc(void* mem);
-
-/******************************************************************/
-
-
-/**
- * Wrappers used for reporting errors and info.
- **/
-void rterror(const char *fmt, ...);
-void rtinfo(const char *fmt, ...);
-void rtwarn(const char *fmt, ...);
-
-
-/**
-* The default memory/logging handlers installed by lwgeom_install_default_allocators()
-*/
-void * default_rt_allocator(size_t size);
-void * default_rt_reallocator(void * mem, size_t size);
-void default_rt_deallocator(void * mem);
-void default_rt_error_handler(const char * fmt, va_list ap);
-void default_rt_warning_handler(const char * fmt, va_list ap);
-void default_rt_info_handler(const char * fmt, va_list ap);
-
-
-/* Debugging macros */
-#if POSTGIS_DEBUG_LEVEL > 0
-
-/* Display a simple message at NOTICE level */
-#define RASTER_DEBUG(level, msg) \
-    do { \
-        if (POSTGIS_DEBUG_LEVEL >= level) \
-            rtinfo("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__); \
-    } while (0);
-
-/* Display a formatted message at NOTICE level (like printf, with variadic arguments) */
-#define RASTER_DEBUGF(level, msg, ...) \
-    do { \
-        if (POSTGIS_DEBUG_LEVEL >= level) \
-            rtinfo("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__, __VA_ARGS__); \
-    } while (0);
-
-#else
-
-/* Empty prototype that can be optimised away by the compiler for non-debug builds */
-#define RASTER_DEBUG(level, msg) \
-    ((void) 0)
-
-/* Empty prototype that can be optimised away by the compiler for non-debug builds */
-#define RASTER_DEBUGF(level, msg, ...) \
-    ((void) 0)
-
-#endif
-
-/*- memory context -------------------------------------------------------*/
-
-void rt_set_handlers(rt_allocator allocator, rt_reallocator reallocator,
-        rt_deallocator deallocator, rt_message_handler error_handler,
-        rt_message_handler info_handler, rt_message_handler warning_handler);
-
-
-
-/*- rt_pixtype --------------------------------------------------------*/
-
-/**
- * Return size in bytes of a value in the given pixtype
- *
- * @param pixtype : the pixel type to get byte size for
- *
- * @return the pixel type's byte size
- */
-int rt_pixtype_size(rt_pixtype pixtype);
-
-/**
- * Return alignment requirements for data in the given pixel type.
- * Fast access to pixel values of this type must be aligned to as
- * many bytes as returned by this function.
- *
- * @param pixtype : the pixel type to get alignment requirements for
- *
- * @return the alignment requirements
- */
-int rt_pixtype_alignment(rt_pixtype pixtype);
-
-/* Return human-readable name of pixel type */
-const char* rt_pixtype_name(rt_pixtype pixtype);
-
-/* Return pixel type index from human-readable name */
-rt_pixtype rt_pixtype_index_from_name(const char* pixname);
-
-/**
- * Return minimum value possible for pixel type
- *
- * @param pixtype : the pixel type to get minimum possible value for
- *
- * @return the minimum possible value for the pixel type.
- */
-double rt_pixtype_get_min_value(rt_pixtype pixtype);
-
-/**
- * Test to see if two values are equal when clamped
- *
- * @param pixtype : the pixel type to clamp the provided values
- * @param val : value to compare to reference value
- * @param refval : reference value to be compared with
- * @param isequal : non-zero if clamped values are equal, 0 otherwise
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_pixtype_compare_clamped_values(
-	rt_pixtype pixtype,
-	double val, double refval,
-	int *isequal
-);
-
-/*- rt_pixel ----------------------------------------------------------*/
-
-/*
- * Convert an array of rt_pixel objects to two 2D arrays of value and NODATA.
- * The dimensions of the returned 2D array are [Y][X], going by row Y and
- * then column X.
- *
- * @param npixel : array of rt_pixel objects
- * @param count : number of elements in npixel
- * @param x : the column of the center pixel (0-based)
- * @param y : the line of the center pixel (0-based)
- * @param distancex : the number of pixels around the specified pixel
- * along the X axis
- * @param distancey : the number of pixels around the specified pixel
- * along the Y axis
- * @param value : pointer to pointer for 2D value array
- * @param nodata : pointer to pointer for 2D NODATA array
- * @param dimx : size of value and nodata along the X axis
- * @param dimy : size of value and nodata along the Y axis
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_pixel_set_to_array(
-	rt_pixel npixel, int count,
-	int x, int y,
-	uint16_t distancex, uint16_t distancey,
-	double ***value,
-	int ***nodata,
-	int *dimx, int *dimy
-);
-
-/*- rt_band ----------------------------------------------------------*/
-
-/**
- * Create an in-db rt_band with no data
- *
- * @param width     : number of pixel columns
- * @param height    : number of pixel rows
- * @param pixtype   : pixel type for the band
- * @param hasnodata : indicates if the band has nodata value
- * @param nodataval : the nodata value, will be appropriately
- *                    truncated to fit the pixtype size.
- * @param data      : pointer to actual band data, required to
- *                    be aligned accordingly to
- *                    rt_pixtype_aligment(pixtype) and big enough
- *                    to hold raster width*height values.
- *                    Data will NOT be copied, ownership is left
- *                    to caller which is responsible to keep it
- *                    allocated for the whole lifetime of the returned
- *                    rt_band.
- *
- * @return an rt_band or NULL on failure
- */
-rt_band rt_band_new_inline(
-	uint16_t width, uint16_t height,
-	rt_pixtype pixtype,
-	uint32_t hasnodata, double nodataval,
-	uint8_t* data
-);
-
-/**
- * Create an out-db rt_band
- *
- * @param width     : number of pixel columns
- * @param height    : number of pixel rows
- * @param pixtype   : pixel type for the band
- * @param hasnodata : indicates if the band has nodata value
- * @param nodataval : the nodata value, will be appropriately
- *                    truncated to fit the pixtype size.
- * @param bandNum   : 0-based band number in the external file
- *                    to associate this band with.
- * @param path      : NULL-terminated path string pointing to the file
- *                    containing band data. The string will NOT be
- *                    copied, ownership is left to caller which is
- *                    responsible to keep it allocated for the whole
- *                    lifetime of the returned rt_band.
- *
- * @return an rt_band or NULL on failure
- */
-rt_band rt_band_new_offline(
-	uint16_t width, uint16_t height,
-	rt_pixtype pixtype,
-	uint32_t hasnodata, double nodataval,
-	uint8_t bandNum, const char* path
-);
-
-/**
- * Create a new band duplicated from source band.  Memory is allocated
- * for band path (if band is offline) or band data (if band is online).
- * The caller is responsible for freeing the memory when the returned
- * rt_band is destroyed.
- *
- * @param : the band to duplicate
- *
- * @return an rt_band or NULL on failure
- */
-rt_band rt_band_duplicate(rt_band band);
-
-/**
- * Return non-zero if the given band data is on
- * the filesystem.
- *
- * @param band : the band
- *
- * @return non-zero if the given band data is on
- *         the filesystem.
- */
-int rt_band_is_offline(rt_band band);
-
-/**
- * Return band's external path (only valid when rt_band_is_offline
- * returns non-zero).
- *
- * @param band : the band
- *
- * @return string or NULL if band is not offline
- */
-const char* rt_band_get_ext_path(rt_band band);
-
-/**
- * Return bands' external band number (only valid when
- * rt_band_is_offline returns non-zero).
- *
- * @param band : the band
- * @param bandnum : external band number (0-based)
- *
- * @return ES_NONE or ES_ERROR if band is NOT out-db
- */
-rt_errorstate rt_band_get_ext_band_num(rt_band band, uint8_t *bandnum);
-
-/**
- * Return pixeltype of this band
- *
- * @param band : the band
- *
- * @return band's pixeltype
- */
-rt_pixtype rt_band_get_pixtype(rt_band band);
-
-/**
- * Return width of this band
- *
- * @param band : the band
- *
- * @return band's width
- */
-uint16_t rt_band_get_width(rt_band band);
-
-/**
- * Return height of this band
- *
- * @param band : the band
- *
- * @return band's height
- */
-uint16_t rt_band_get_height(rt_band band);
-
-/**
- * Return 0 (FALSE) or non-zero (TRUE) indicating if rt_band is responsible
- * for managing the memory for band data
- *
- * @param band : the band
- *
- * @return non-zero indicates that rt_band manages the memory
- * allocated for band data
- */
-int rt_band_get_ownsdata_flag(rt_band band);
-
-/* set ownsdata flag */
-void rt_band_set_ownsdata_flag(rt_band band, int flag);
-
-/**
-	* Get pointer to raster band data
-	*
-	* @param band : the band who's data to get
-	*
-	* @return pointer to band data or NULL if error
-	*/
-void* rt_band_get_data(rt_band band);
-
-/**
-	* Load offline band's data.  Loaded data is internally owned
-	* and should not be released by the caller.  Data will be
-	* released when band is destroyed with rt_band_destroy().
-	*
-	* @param band : the band who's data to get
-	*
-	* @return ES_NONE if success, ES_ERROR if failure
-	*/
-rt_errorstate rt_band_load_offline_data(rt_band band);
-
-/**
- * Destroy a raster band
- *
- * @param band : the band to destroy
- */
-void rt_band_destroy(rt_band band);
-
-/**
- * Get hasnodata flag value
- *
- * @param band : the band on which to check the hasnodata flag
- *
- * @return the hasnodata flag.
- */
-int rt_band_get_hasnodata_flag(rt_band band);
-
-/**
- * Set hasnodata flag value
- * @param band : the band on which to set the hasnodata flag
- * @param flag : the new hasnodata flag value. Must be 1 or 0.
- */
-void rt_band_set_hasnodata_flag(rt_band band, int flag);
-
-/**
- * Set isnodata flag value
- *
- * @param band : the band on which to set the isnodata flag
- * @param flag : the new isnodata flag value. Must be 1 or 0
- *
- * @return ES_NONE or ES_ERROR
- */
-rt_errorstate rt_band_set_isnodata_flag(rt_band band, int flag);
-
-/**
- * Get isnodata flag value
- *
- * @param band : the band on which to check the isnodata flag
- *
- * @return the hasnodata flag.
- */
-int rt_band_get_isnodata_flag(rt_band band);
-
-/**
- * Set nodata value
- *
- * @param band : the band to set nodata value to
- * @param val : the nodata value
- * @param converted : (optional) if non-zero, value was
- * truncated/clamped/converted
- *
- * @return ES_NONE or ES_ERROR
- */
-rt_errorstate rt_band_set_nodata(rt_band band, double val, int *converted);
-
-/**
- * Get NODATA value
- *
- * @param band: the band whose NODATA value will be returned
- * @param nodata: the band's NODATA value
- *
- * @return ES_NONE or ES_ERROR
- */
-rt_errorstate rt_band_get_nodata(rt_band band, double *nodata);
-
-/**
- * Set values of multiple pixels.  Unlike rt_band_set_pixel,
- * values in vals are expected to be of the band's pixel type
- * as this function uses memcpy.
- *
- * It is important to be careful when using this function as
- * the number of values being set may exceed a pixel "row".
- * Remember that the band values are stored in a stream (1-D array)
- * regardless of what the raster's width and height might be.
- * So, setting a number of values may cross multiple pixel "rows".
- *
- * @param band : the band to set value to
- * @param x : pixel column (0-based)
- * @param y : pixel row (0-based)
- * @param vals : the pixel values to apply
- * @param len : # of elements in vals
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_band_set_pixel_line(
-	rt_band band,
-	int x, int y,
-	void *vals, uint32_t len
-);
-
-/**
- * Set single pixel's value
- *
- * @param band : the band to set value to
- * @param x : pixel column (0-based)
- * @param y : pixel row (0-based)
- * @param val : the pixel value
- * @param converted : (optional) non-zero if value truncated/clamped/converted
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_band_set_pixel(
-	rt_band band,
-	int x, int y,
-	double val,
-	int *converted
-);
-
-/**
- * Get values of multiple pixels.  Unlike rt_band_get_pixel,
- * values in vals are of the band's pixel type so cannot be
- * assumed to be double.  Function uses memcpy.
- *
- * It is important to be careful when using this function as
- * the number of values being fetched may exceed a pixel "row".
- * Remember that the band values are stored in a stream (1-D array)
- * regardless of what the raster's width and height might be.
- * So, getting a number of values may cross multiple pixel "rows".
- *
- * @param band : the band to get pixel value from
- * @param x : pixel column (0-based)
- * @param y : pixel row (0-based)
- * @param len : the number of pixels to get
- * @param **vals : the pixel values
- * @param *nvals : the number of pixel values being returned
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_band_get_pixel_line(
-	rt_band band,
-	int x, int y,
-	uint16_t len,
-	void **vals, uint16_t *nvals
-);
-
-/**
- * Get pixel value. If band's isnodata flag is TRUE, value returned 
- * will be the band's NODATA value
- *
- * @param band : the band to get pixel value from
- * @param x : pixel column (0-based)
- * @param y : pixel row (0-based)
- * @param *value : pixel value
- * @param *nodata : 0 if pixel is not NODATA
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_band_get_pixel(
-	rt_band band,
-	int x, int y,
-	double *value,
-	int *nodata
-);
-
-/**
- * Get nearest pixel(s) with value (not NODATA) to specified pixel
- *
- * @param band : the band to get nearest pixel(s) from
- * @param x : pixel column (0-based)
- * @param y : pixel row (0-based)
- * @param distancex : the number of pixels around the specified pixel
- * along the X axis
- * @param distancey : the number of pixels around the specified pixel
- * along the Y axis
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * to check for pixels with value
- * @param npixels : return set of rt_pixel object or NULL
- *
- * @return -1 on error, otherwise the number of rt_pixel objects
- * in npixels
- */
-int rt_band_get_nearest_pixel(
-	rt_band band,
-	int x, int y,
-	uint16_t distancex, uint16_t distancey,
-	int exclude_nodata_value,
-	rt_pixel *npixels
-);
-
-/**
- * Search band for pixel(s) with search values
- *
- * @param band : the band to query for minimum and maximum pixel values
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * @param searchset : array of values to count
- * @param searchcount : the number of search values
- * @param pixels : pixels with the search value
- *
- * @return -1 on error, otherwise number of pixels
- */
-int rt_band_get_pixel_of_value(
-	rt_band band, int exclude_nodata_value,
-	double *searchset, int searchcount,
-	rt_pixel *pixels
-);
-
-/**
- * Returns the minimal possible value for the band according to the pixel type.
- *
- * @param band : the band to get info from
- *
- * @return the minimal possible value for the band.
- */
-double rt_band_get_min_value(rt_band band);
-
-/**
- * Returns TRUE if the band is only nodata values
- *
- * @param band : the band to get info from
- *
- * @return TRUE if the band is only nodata values, FALSE otherwise
- */
-int rt_band_check_is_nodata(rt_band band);
-
-/**
- * Compare clamped value to band's clamped NODATA value
- *
- * @param band : the band whose NODATA value will be used for comparison
- * @param val : the value to compare to the NODATA value
- *
- * @return 2 if unclamped value is unclamped NODATA
- *         1 if clamped value is clamped NODATA
- *         0 if clamped values is NOT clamped NODATA
- */
-int rt_band_clamped_value_is_nodata(rt_band band, double val);
-
-/**
- * Correct value when clamped value is equal to clamped NODATA value.
- * Correction does NOT occur if unclamped value is exactly unclamped
- * NODATA value.
- * 
- * @param band : the band whose NODATA value will be used for comparison
- * @param val : the value to compare to the NODATA value and correct
- * @param *newval : pointer to corrected value
- * @param *corrected : (optional) non-zero if val was corrected
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate
-rt_band_corrected_clamped_value(
-	rt_band band,
-	double val,
-	double *newval, int *corrected
-);
-
-/**
- * Compute summary statistics for a band
- *
- * @param band : the band to query for summary stats 
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * @param sample : percentage of pixels to sample
- * @param inc_vals : flag to include values in return struct
- * @param cK : number of pixels counted thus far in coverage
- * @param cM : M component of 1-pass stddev for coverage
- * @param cQ : Q component of 1-pass stddev for coverage
- *
- * @return the summary statistics for a band or NULL
- */
-rt_bandstats rt_band_get_summary_stats(
-	rt_band band,
-	int exclude_nodata_value, double sample, int inc_vals,
-	uint64_t *cK, double *cM, double *cQ
-);
-	
-/**
- * Count the distribution of data
- *
- * @param stats : a populated stats struct for processing
- * @param bin_count : the number of bins to group the data by
- * @param bin_width : the width of each bin as an array
- * @param bin_width_count : number of values in bin_width
- * @param right : evaluate bins by (a,b] rather than default [a,b)
- * @param min : user-defined minimum value of the histogram
- *   a value less than the minimum value is not counted in any bins
- *   if min = max, min and max are not used
- * @param max : user-defined maximum value of the histogram
- *   a value greater than the max value is not counted in any bins
- *   if min = max, min and max are not used
- * @param rtn_count : set to the number of bins being returned
- *
- * @return the histogram of the data or NULL
- */
-rt_histogram rt_band_get_histogram(
-	rt_bandstats stats,
-	int bin_count, double *bin_widths, int bin_widths_count,
-	int right, double min, double max,
-	uint32_t *rtn_count
-);
-
-/**
- * Compute the default set of or requested quantiles for a set of data
- * the quantile formula used is same as Excel and R default method
- *
- * @param stats : a populated stats struct for processing
- * @param quantiles : the quantiles to be computed
- * @param quantiles_count : the number of quantiles to be computed
- * @param rtn_count : the number of quantiles being returned
- *
- * @return the default set of or requested quantiles for a band or NULL
- */
-rt_quantile rt_band_get_quantiles(rt_bandstats stats,
-	double *quantiles, int quantiles_count, uint32_t *rtn_count);
-
-struct quantile_llist;
-int quantile_llist_destroy(
-	struct quantile_llist **list,
-	uint32_t list_count
-);
-
-/**
- * Compute the default set of or requested quantiles for a coverage
- *
- * This function is based upon the algorithm described in:
- *
- * A One-Pass Space-Efficient Algorithm for Finding Quantiles (1995)
- *   by Rakesh Agrawal, Arun Swami
- *   in Proc. 7th Intl. Conf. Management of Data (COMAD-95)
- *
- * http://www.almaden.ibm.com/cs/projects/iis/hdb/Publications/papers/comad95.pdf
- *
- * In the future, it may be worth exploring algorithms that don't
- *   require the size of the coverage
- *
- * @param band : the band to include in the quantile search
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * @param sample : percentage of pixels to sample
- * @param cov_count : number of values in coverage
- * @param qlls : set of quantile_llist structures
- * @param qlls_count : the number of quantile_llist structures
- * @param quantiles : the quantiles to be computed
- *   if bot qlls and quantiles provided, qlls is used
- * @param quantiles_count : the number of quantiles to be computed
- * @param rtn_count : the number of quantiles being returned
- *
- * @return the default set of or requested quantiles for a band or NULL
- */
-rt_quantile rt_band_get_quantiles_stream(
-	rt_band band,
-	int exclude_nodata_value, double sample,
-	uint64_t cov_count,
-	struct quantile_llist **qlls, uint32_t *qlls_count,
-	double *quantiles, int quantiles_count,
-	uint32_t *rtn_count
-);
-
-/**
- * Count the number of times provided value(s) occur in
- * the band
- *
- * @param band : the band to query for minimum and maximum pixel values
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * @param search_values : array of values to count
- * @param search_values_count : the number of search values
- * @param roundto : the decimal place to round the values to
- * @param rtn_total : the number of pixels examined in the band
- * @param rtn_count : the number of value counts being returned
- *
- * @return the number of times the provide value(s) occur or NULL
- */
-rt_valuecount rt_band_get_value_count(
-	rt_band band, int exclude_nodata_value,
-	double *search_values, uint32_t search_values_count, double roundto,
-	uint32_t *rtn_total, uint32_t *rtn_count
-);
-
-/**
- * Returns new band with values reclassified
- * 
- * @param srcband : the band who's values will be reclassified
- * @param pixtype : pixel type of the new band
- * @param hasnodata : indicates if the band has a nodata value
- * @param nodataval : nodata value for the new band
- * @param exprset : array of rt_reclassexpr structs
- * @param exprcount : number of elements in expr
- *
- * @return a new rt_band or NULL on error
- */
-rt_band rt_band_reclass(
-	rt_band srcband, rt_pixtype pixtype,
-	uint32_t hasnodata, double nodataval,
-	rt_reclassexpr *exprset, int exprcount
-);
-
-/*- rt_raster --------------------------------------------------------*/
-
-/**
- * Construct a raster with given dimensions.
- *
- * Transform will be set to identity.
- * Will contain no bands.
- *
- * @param width : number of pixel columns
- * @param height : number of pixel rows
- *
- * @return an rt_raster or NULL if out of memory
- */
-rt_raster rt_raster_new(uint32_t width, uint32_t height);
-
-/**
- * Construct an rt_raster from a binary WKB representation
- *
- * @param wkb : an octet stream
- * @param wkbsize : size (in bytes) of the wkb octet stream
- *
- * @return an rt_raster or NULL on error (out of memory or
- *         malformed WKB).
- *
- */
-rt_raster rt_raster_from_wkb(const uint8_t* wkb, uint32_t wkbsize);
-
-/**
- * Construct an rt_raster from a text HEXWKB representation
- *
- * @param hexwkb : an hex-encoded stream
- * @param hexwkbsize : size (in bytes) of the hexwkb stream
- *
- * @return an rt_raster or NULL on error (out of memory or
- *         malformed WKB).
- *
- */
-rt_raster rt_raster_from_hexwkb(const char* hexwkb, uint32_t hexwkbsize);
-
-/**
- * Return this raster in WKB form
- *
- * @param raster : the raster
- * @param outasin : if TRUE, out-db bands are treated as in-db
- * @param wkbsize : will be set to the size of returned wkb form
- *
- * @return WKB of raster or NULL on error
- */
-uint8_t *rt_raster_to_wkb(rt_raster raster, int outasin, uint32_t *wkbsize);
-
-/**
- * Return this raster in HEXWKB form (null-terminated hex)
- *
- * @param raster : the raster
- * @param outasin : if TRUE, out-db bands are treated as in-db
- * @param hexwkbsize : will be set to the size of returned wkb form,
- *                     not including the null termination
- *
- * @return HEXWKB of raster or NULL on error
- */
-char *rt_raster_to_hexwkb(rt_raster raster, int outasin, uint32_t *hexwkbsize);
-
-/**
- * Release memory associated to a raster
- *
- * Note that this will not release data
- * associated to the band themselves (but only
- * the one associated with the pointers pointing
- * at them).
- *
- * @param raster : the raster to destroy
- */
-void rt_raster_destroy(rt_raster raster);
-
-/* Get number of bands */
-int rt_raster_get_num_bands(rt_raster raster);
-
-/**
- * Return Nth band, or NULL if unavailable
- *
- * @param raster : the raster
- * @param bandNum : 0-based index of the band to return
- *
- * Return band at specified index or NULL if error
- */
-rt_band rt_raster_get_band(rt_raster raster, int bandNum);
-
-/* Get number of rows */
-uint16_t rt_raster_get_width(rt_raster raster);
-
-/* Get number of columns */
-uint16_t rt_raster_get_height(rt_raster raster);
-
-/**
- * Add band data to a raster.
- *
- * @param raster : the raster to add a band to
- * @param band : the band to add, ownership left to caller.
- *               Band dimensions are required to match with raster ones.
- * @param index : the position where to insert the new band (0 based)
- *
- * @return identifier (position) for the just-added raster, or -1 on error
- */
-int rt_raster_add_band(rt_raster raster, rt_band band, int index);
-
-/**
- * Generate a new inline band and add it to a raster.
- *
- * @param raster : the raster to add a band to
- * @param pixtype : the pixel type for the new band
- * @param initialvalue : initial value for pixels
- * @param hasnodata : indicates if the band has a nodata value
- * @param nodatavalue : nodata value for the new band
- * @param index : position to add the new band in the raster
- *
- * @return identifier (position) for the just-added raster, or -1 on error
- */
-int rt_raster_generate_new_band(
-	rt_raster raster,
-	rt_pixtype pixtype,
-	double initialvalue,
-	uint32_t hasnodata, double nodatavalue,
-	int index
-);
-
-/**
- * Set scale in projection units
- *
- * @param raster : the raster to set georeference of
- * @param scaleX : scale X in projection units
- * @param scaleY : scale Y height in projection units
- *
- * NOTE: doesn't recompute offsets
- */
-void rt_raster_set_scale(rt_raster raster,
-                               double scaleX, double scaleY);
-
-/**
- * Get scale X in projection units
- *
- * @param raster : the raster to get georeference of
- *
- * @return scale X in projection units
- */
-double rt_raster_get_x_scale(rt_raster raster);
-
-/**
- * Get scale Y in projection units
- *
- * @param raster : the raster to get georeference of
- *
- * @return scale Y in projection units
- */
-double rt_raster_get_y_scale(rt_raster raster);
-
-/**
- * Set insertion points in projection units
- *
- * @param raster : the raster to set georeference of
- * @param x : x ordinate of the upper-left corner of upper-left pixel,
- *            in projection units
- * @param y : y ordinate of the upper-left corner of upper-left pixel,
- *            in projection units
- */
-void rt_raster_set_offsets(rt_raster raster,
-                           double x, double y);
-
-/**
- * Get raster x offset, in projection units
- *
- * @param raster : the raster to get georeference of
- *
- * @return  x ordinate of the upper-left corner of upper-left pixel,
- *          in projection units
- */
-double rt_raster_get_x_offset(rt_raster raster);
-
-/**
- * Get raster y offset, in projection units
- *
- * @param raster : the raster to get georeference of
- *
- * @return  y ordinate of the upper-left corner of upper-left pixel,
- *          in projection units
- */
-double rt_raster_get_y_offset(rt_raster raster);
-
-/**
- * Set skews about the X and Y axis
- *
- * @param raster : the raster to set georeference of
- * @param skewX : skew about the x axis
- * @param skewY : skew about the y axis
- */
-void rt_raster_set_skews(rt_raster raster,
-                             double skewX, double skewY);
-
-/**
- * Get skew about the X axis
- *
- * @param raster : the raster to set georeference of
- * @return skew about the Y axis
- */
-double rt_raster_get_x_skew(rt_raster raster);
-
-/**
- * Get skew about the Y axis
- *
- * @param raster : the raster to set georeference of
- * @return skew about the Y axis
- */
-double rt_raster_get_y_skew(rt_raster raster);
-
-/**
-* Calculates and returns the physically significant descriptors embodied
-* in the geotransform attached to the provided raster.
-*
-* @param rast the raster containing the geotransform of interest
-* @param i_mag size of a pixel along the transformed i axis
-* @param j_mag size of a pixel along the transformed j axis
-* @param theta_i angle by which the raster is rotated (radians positive clockwise)
-* @param theta_ij angle from transformed i axis to transformed j axis
-* (radians positive counterclockwise)
-*
-*/
-void rt_raster_get_phys_params(rt_raster rast,
-        double *i_mag, double *j_mag, double *theta_i, double *theta_ij) ;
-
-/**
-* Calculates the geotransform coefficients and applies them to the
-* supplied raster. The coefficients will not be applied if there was an
-* error during the calculation.
-*
-* This method affects only the scale and skew coefficients. The offset
-* parameters are not changed.
-*
-* @param rast the raster in which the geotransform will be stored.
-* @param i_mag size of a pixel along the transformed i axis
-* @param j_mag size of a pixel along the transformed j axis
-* @param theta_i angle by which the raster is rotated (radians positive clockwise)
-* @param theta_ij angle from transformed i axis to transformed j axis
-* (radians positive counterclockwise)
-*/
-void rt_raster_set_phys_params(rt_raster rast,
-        double i_mag, double j_mag, double theta_i, double theta_ij) ;
-
-
-/**
-* Calculates the physically significant descriptors embodied in an
-* arbitrary geotransform. Always succeeds unless one or more of the
-* output pointers is set to NULL.
-*
-* @param xscale geotransform coefficient o_11
-* @param xskew geotransform coefficient o_12
-* @param yskew geotransform coefficient o_21
-* @param yscale geotransform coefficient o_22
-* @param i_mag size of a pixel along the transformed i axis
-* @param j_mag size of a pixel along the transformed j axis
-* @param theta_i angle by which the raster is rotated (radians positive clockwise)
-* @param theta_ij angle from transformed i axis to transformed j axis
-* (radians positive counterclockwise)
-*/
-void rt_raster_calc_phys_params(double xscale,
-        double xskew, double yskew, double yscale,
-        double *i_mag, double *j_mag, double *theta_i, double *theta_ij) ;
-
-
-/**
-* Calculates the coefficients of a geotransform given the physically
-* significant parameters describing the transform. Will fail if any of the
-* result pointers is NULL, or if theta_ij has an illegal value (0 or PI).
-*
-* @param i_mag size of a pixel along the transformed i axis
-* @param j_mag size of a pixel along the transformed j axis
-* @param theta_i angle by which the raster is rotated (radians positive clockwise)
-* @param theta_ij angle from transformed i axis to transformed j axis
-* (radians positive counterclockwise)
-* @param xscale geotransform coefficient o_11
-* @param xskew geotransform coefficient o_12
-* @param yskew geotransform coefficient o_21
-* @param yscale geotransform coefficient o_22
-* @return 1 if the calculation succeeded, 0 if error.
-*/
-int rt_raster_calc_gt_coeff(double i_mag,
-        double j_mag, double theta_i, double theta_ij,
-        double *xscale, double *xskew, double *yskew, double *yscale) ;
-
-/**
- * Set raster's SRID
- *
- * @param raster : the raster to set SRID of
- * @param srid : the SRID to set for the raster
- */
-void rt_raster_set_srid(rt_raster raster, int32_t srid);
-
-/**
- * Get raster's SRID
- * @param raster : the raster to set SRID of
- *
- * @return the raster's SRID
- */
-int32_t rt_raster_get_srid(rt_raster raster);
-
-/**
- * Get 6-element array of raster inverse geotransform matrix
- *
- * @param raster : the raster to get matrix of
- * @param gt : optional input parameter, 6-element geotransform matrix
- * @param igt : output parameter, 6-element inverse geotransform matrix
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_get_inverse_geotransform_matrix(
-	rt_raster raster,
-	double *gt, double *igt
-);
-
-/**
- * Get 6-element array of raster geotransform matrix
- *
- * @param raster : the raster to get matrix of
- * @param gt : output parameter, 6-element geotransform matrix
- */
-void rt_raster_get_geotransform_matrix(rt_raster raster,
-	double *gt);
-
-/**
- * Set raster's geotransform using 6-element array
- *
- * @param raster : the raster to set matrix of
- * @param gt : intput parameter, 6-element geotransform matrix
- *
- */
-void rt_raster_set_geotransform_matrix(rt_raster raster,
-	double *gt);
-
-/**
- * Convert an xr, yr raster point to an xw, yw point on map
- *
- * @param raster : the raster to get info from
- * @param xr : the pixel's column
- * @param yr : the pixel's row
- * @param xw : output parameter, X ordinate of the geographical point
- * @param yw : output parameter, Y ordinate of the geographical point
- * @param gt : input/output parameter, 3x2 geotransform matrix
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_cell_to_geopoint(
-	rt_raster raster,
-	double xr, double yr,
-	double* xw, double* yw,
-	double *gt
-);
-
-/**
- * Convert an xw, yw map point to a xr, yr raster point
- *
- * @param raster : the raster to get info from
- * @param xw : X ordinate of the geographical point
- * @param yw : Y ordinate of the geographical point
- * @param xr : output parameter, the pixel's column
- * @param yr : output parameter, the pixel's row
- * @param igt : input/output parameter, inverse geotransform matrix
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_geopoint_to_cell(
-	rt_raster raster,
-	double xw, double yw,
-	double *xr, double *yr,
-	double *igt
-);
-
-/**
- * Get raster's convex hull.
- *
- * The convex hull is a 4 vertices (5 to be closed)
- * single ring polygon bearing the raster's rotation and using
- * projection coordinates.
- *
- * @param raster : the raster to get info from
- * @param **hull : pointer to convex hull
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_get_convex_hull(rt_raster raster, LWGEOM **hull);
-
-/**
- * Get raster's envelope.
- *
- * The envelope is the minimum bounding rectangle of the raster
- *
- * @param raster : the raster to get envelope of
- * @param env : pointer to rt_envelope
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_get_envelope(
-	rt_raster raster,
-	rt_envelope *env
-);
-
-/**
- * Get raster perimeter
- *
- * The perimeter is a 4 vertices (5 to be closed)
- * single ring polygon bearing the raster's rotation and using
- * projection coordinates.
- *
- * @param raster : the raster to get info from
- * @param nband : the band for the perimeter. 0-based
- * @param **perimeter : pointer to perimeter
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_get_perimeter(
-	rt_raster raster, int nband,
-	LWGEOM **perimeter
-);
-
-/*
- * Compute skewed extent that covers unskewed extent.
- *
- * @param envelope : unskewed extent of type rt_envelope
- * @param skew : pointer to 2-element array (x, y) of skew
- * @param scale : pointer to 2-element array (x, y) of scale
- * @param tolerance : value between 0 and 1 where the smaller the tolerance
- * results in an extent approaching the "minimum" skewed extent.
- * If value <= 0, tolerance = 0.1.  If value > 1, tolerance = 1.
- *
- * @return skewed raster who's extent covers unskewed extent, NULL on error
- */
-rt_raster
-rt_raster_compute_skewed_raster(
-	rt_envelope extent,
-	double *skew,
-	double *scale,
-	double tolerance
-);
-
-/**
- * Get a raster pixel as a polygon.
- *
- * The pixel shape is a 4 vertices (5 to be closed) single
- * ring polygon bearing the raster's rotation
- * and using projection coordinates
- *
- * @param raster : the raster to get pixel from
- * @param x : the column number
- * @param y : the row number
- *
- * @return the pixel polygon, or NULL on error.
- *
- */
-LWPOLY* rt_raster_pixel_as_polygon(rt_raster raster, int x, int y);
-
-/**
- * Get a raster as a surface (multipolygon).  If a band is specified,
- * those pixels with value (not NODATA) contribute to the area
- * of the output multipolygon.
- *
- * @param raster : the raster to convert to a multipolygon
- * @param nband : the 0-based band of raster rast to use
- *   if value is less than zero, bands are ignored.
- * @param **surface : raster as a surface (multipolygon).
- *   if all pixels are NODATA, NULL is set
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_raster_surface(rt_raster raster, int nband, LWMPOLY **surface);
-
-/**
- * Returns a set of "geomval" value, one for each group of pixel
- * sharing the same value for the provided band.
- *
- * A "geomval" value is a complex type composed of a geometry 
- * in LWPOLY representation (one for each group of pixel sharing
- * the same value) and the value associated with this geometry.
- *
- * @param raster : the raster to get info from.
- * @param nband : the band to polygonize. 0-based
- * @param exclude_nodata_value : if non-zero, ignore nodata values
- * to check for pixels with value
- *
- * @return A set of "geomval" values, one for each group of pixels
- * sharing the same value for the provided band. The returned values are
- * LWPOLY geometries.
- */
-rt_geomval
-rt_raster_gdal_polygonize(
-	rt_raster raster, int nband,
-	int exclude_nodata_value,
-	int * pnElements
-);
-
-/**
- * Return this raster in serialized form.
- * Memory (band data included) is copied from rt_raster.
- *
- * Serialized form is documented in doc/RFC1-SerializedFormat.
- */
-void* rt_raster_serialize(rt_raster raster);
-
-/**
- * Return a raster from a serialized form.
- *
- * Serialized form is documented in doc/RFC1-SerializedFormat.
- *
- * NOTE: the raster will contain pointer to the serialized
- * form (including band data), which must be kept alive.
- */
-rt_raster rt_raster_deserialize(void* serialized, int header_only);
-
-/**
- * Return TRUE if the raster is empty. i.e. is NULL, width = 0 or height = 0
- *
- * @param raster : the raster to get info from
- *
- * @return TRUE if the raster is empty, FALSE otherwise
- */
-int rt_raster_is_empty(rt_raster raster);
-
-/**
- * Return TRUE if the raster has a band of this number.
- *
- * @param raster : the raster to get info from
- * @param nband : the band number. 0-based
- *
- * @return TRUE if the raster has a band of this number, FALSE otherwise
- */
-int rt_raster_has_band(rt_raster raster, int nband);
-
-/**
- * Copy one band from one raster to another.  Bands are duplicated from
- * fromrast to torast using rt_band_duplicate.  The caller will need
- * to ensure that the copied band's data or path remains allocated
- * for the lifetime of the copied bands.
- *
- * @param torast : raster to copy band to
- * @param fromrast : raster to copy band from
- * @param fromindex : index of band in source raster, 0-based
- * @param toindex : index of new band in destination raster, 0-based
- *
- * @return The band index of the second raster where the new band is copied.
- *   -1 if error
- */
-int rt_raster_copy_band(
-	rt_raster torast, rt_raster fromrast,
-	int fromindex, int toindex
-);
-
-/**
- * Construct a new rt_raster from an existing rt_raster and an array
- * of band numbers
- *
- * @param raster : the source raster
- * @param bandNums : array of band numbers to extract from source raster
- *                   and add to the new raster (0 based)
- * @param count : number of elements in bandNums
- *
- * @return a new rt_raster or NULL on error
- */
-rt_raster rt_raster_from_band(rt_raster raster, uint32_t *bandNums,
-	int count);
-
-/**
- * Replace band at provided index with new band
- * 
- * @param raster: raster of band to be replaced
- * @param band : new band to add to raster
- * @param index : index of band to replace (0-based)
- *
- * @return NULL on error or replaced band
- */
-rt_band rt_raster_replace_band(rt_raster raster, rt_band band,
-	int index);
-
-/**
- * Clone an existing raster
- *
- * @param raster : raster to clone
- * @param deep : flag indicating if bands should be cloned
- *
- * @return a new rt_raster or NULL on error
- */
-rt_raster rt_raster_clone(rt_raster raster, uint8_t deep);
-
-/**
- * Return formatted GDAL raster from raster
- *
- * @param raster : the raster to convert
- * @param srs : the raster's coordinate system in OGC WKT
- * @param format : format to convert to. GDAL driver short name
- * @param options : list of format creation options. array of strings
- * @param gdalsize : will be set to the size of returned bytea
- *
- * @return formatted GDAL raster.  the calling function is responsible
- *   for freeing the returned data using CPLFree()
- */
-uint8_t *rt_raster_to_gdal(rt_raster raster, const char *srs,
-	char *format, char **options, uint64_t *gdalsize);
-
-/**
- * Returns a set of available GDAL drivers
- *
- * @param drv_count : number of GDAL drivers available
- * @param cancc : if non-zero, filter drivers to only those
- *   with support for CreateCopy and VirtualIO
- *
- * @return set of "gdaldriver" values of available GDAL drivers
- */
-rt_gdaldriver rt_raster_gdal_drivers(uint32_t *drv_count, uint8_t cancc);
-
-/**
- * Return GDAL dataset using GDAL MEM driver from raster
- *
- * @param raster : raster to convert to GDAL MEM
- * @param srs : the raster's coordinate system in OGC WKT
- * @param bandNums : array of band numbers to extract from raster
- *   and include in the GDAL dataset (0 based)
- * @param excludeNodataValues : array of zero, nonzero where if non-zero,
- *   ignore nodata values for the band
- * to check for pixels with value
- * @param count : number of elements in bandNums and exclude_nodata_values
- * @param rtn_drv : is set to the GDAL driver object
- * @param destroy_rtn_drv : if non-zero, caller must destroy the MEM driver
- *
- * @return GDAL dataset using GDAL MEM driver
- */
-GDALDatasetH rt_raster_to_gdal_mem(
-	rt_raster raster,
-	const char *srs,
-	uint32_t *bandNums,
-	int *excludeNodataValues,
-	int count,
-	GDALDriverH *rtn_drv, int *destroy_rtn_drv
-);
-
-/**
- * Return a raster from a GDAL dataset
- *
- * @param ds : the GDAL dataset to convert to a raster
- *
- * @return raster or NULL
- */
-rt_raster rt_raster_from_gdal_dataset(GDALDatasetH ds);
-
-/**
- * Return a warped raster using GDAL Warp API
- *
- * @param raster : raster to transform
- * @param src_srs : the raster's coordinate system in OGC WKT
- * @param dst_srs : the warped raster's coordinate system in OGC WKT
- * @param scale_x : the x size of pixels of the warped raster's pixels in
- *   units of dst_srs
- * @param scale_y : the y size of pixels of the warped raster's pixels in
- *   units of dst_srs
- * @param width : the number of columns of the warped raster.  note that
- *   width/height CANNOT be used with scale_x/scale_y
- * @param height : the number of rows of the warped raster.  note that
- *   width/height CANNOT be used with scale_x/scale_y
- * @param ul_xw : the X value of upper-left corner of the warped raster in
- *   units of dst_srs
- * @param ul_yw : the Y value of upper-left corner of the warped raster in
- *   units of dst_srs
- * @param grid_xw : the X value of point on a grid to align warped raster
- *   to in units of dst_srs
- * @param grid_yw : the Y value of point on a grid to align warped raster
- *   to in units of dst_srs
- * @param skew_x : the X skew of the warped raster in units of dst_srs
- * @param skew_y : the Y skew of the warped raster in units of dst_srs
- * @param resample_alg : the resampling algorithm
- * @param max_err : maximum error measured in input pixels permitted
- *   (0.0 for exact calculations)
- *
- * @return the warped raster or NULL
- */
-rt_raster rt_raster_gdal_warp(
-	rt_raster raster,
-	const char *src_srs, const char *dst_srs,
-	double *scale_x, double *scale_y,
-	int *width, int *height,
-	double *ul_xw, double *ul_yw,
-	double *grid_xw, double *grid_yw,
-	double *skew_x, double *skew_y,
-	GDALResampleAlg resample_alg, double max_err);
-
-/**
- * Return a raster of the provided geometry
- *
- * @param wkb : WKB representation of the geometry to convert
- * @param wkb_len : length of the WKB representation of the geometry
- * @param srs : the geometry's coordinate system in OGC WKT
- * @param num_bands : number of bands in the output raster
- * @param pixtype : data type of each band
- * @param init : array of values to initialize each band with
- * @param value : array of values for pixels of geometry
- * @param nodata : array of nodata values for each band
- * @param hasnodata : array flagging the presence of nodata for each band
- * @param width : the number of columns of the raster
- * @param height : the number of rows of the raster
- * @param scale_x : the pixel width of the raster
- * @param scale_y : the pixel height of the raster
- * @param ul_xw : the X value of upper-left corner of the raster
- * @param ul_yw : the Y value of upper-left corner of the raster
- * @param grid_xw : the X value of point on grid to align raster to
- * @param grid_yw : the Y value of point on grid to align raster to
- * @param skew_x : the X skew of the raster
- * @param skew_y : the Y skew of the raster
- * @param options : array of options.  only option is "ALL_TOUCHED"
- *
- * @return the raster of the provided geometry or NULL
- */
-rt_raster rt_raster_gdal_rasterize(const unsigned char *wkb,
-	uint32_t wkb_len, const char *srs,
-	uint32_t num_bands, rt_pixtype *pixtype,
-	double *init, double *value,
-	double *nodata, uint8_t *hasnodata,
-	int *width, int *height,
-	double *scale_x, double *scale_y,
-	double *ul_xw, double *ul_yw,
-	double *grid_xw, double *grid_yw,
-	double *skew_x, double *skew_y,
-	char **options
-);
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter intersects returns non-zero if two rasters intersect
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param intersects : non-zero value if the two rasters' bands intersects
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_intersects(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *intersects
-);
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter overlaps returns non-zero if two rasters overlap
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param overlaps : non-zero value if the two rasters' bands overlaps
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_overlaps(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *overlaps
-);
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter contains returns non-zero if rast1 contains rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param contains : non-zero value if rast1 contains rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_contains(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *contains
-);
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter contains returns non-zero if rast1 contains properly rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param contains : non-zero value if rast1 contains properly rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_contains_properly(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *contains
-);
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter touches returns non-zero if two rasters touch
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param touches : non-zero value if the two rasters' bands touch
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_touches(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *touches
-);
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter covers returns non-zero if rast1 covers rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param covers : non-zero value if rast1 covers rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_covers(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *covers
-);
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter coveredby returns non-zero if rast1 is covered by rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param coveredby : non-zero value if rast1 is covered by rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_coveredby(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	int *coveredby
-);
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter dwithin returns non-zero if rast1 is within the specified
- *   distance of rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param dwithin : non-zero value if rast1 is within the specified distance
- *   of rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_within_distance(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	double distance,
-	int *dwithin
-);
-
-/**
- * Return ES_ERROR if error occurred in function.
- * Parameter dfwithin returns non-zero if rast1 is fully within the specified
- *   distance of rast2
- *
- * @param rast1 : the first raster whose band will be tested
- * @param nband1 : the 0-based band of raster rast1 to use
- *   if value is less than zero, bands are ignored.
- *   if nband1 gte zero, nband2 must be gte zero
- * @param rast2 : the second raster whose band will be tested
- * @param nband2 : the 0-based band of raster rast2 to use
- *   if value is less than zero, bands are ignored
- *   if nband2 gte zero, nband1 must be gte zero
- * @param dfwithin : non-zero value if rast1 is fully within the specified
- *   distance of rast2
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_fully_within_distance(
-	rt_raster rast1, int nband1,
-	rt_raster rast2, int nband2,
-	double distance,
-	int *dfwithin
-);
-
-/*
- * Return ES_ERROR if error occurred in function.
- * Paramter aligned returns non-zero if two rasters are aligned
- *
- * @param rast1 : the first raster for alignment test
- * @param rast2 : the second raster for alignment test
- * @param *aligned : non-zero value if the two rasters are aligned
- * @param *reason : reason why rasters are not aligned
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate rt_raster_same_alignment(
-	rt_raster rast1,
-	rt_raster rast2,
-	int *aligned, char **reason
-);
-
-/*
- * Return raster of computed extent specified extenttype applied
- * on two input rasters.  The raster returned should be freed by
- * the caller
- *
- * @param rast1 : the first raster
- * @param rast2 : the second raster
- * @param extenttype : type of extent for the output raster
- * @param *rtnraster : raster of computed extent
- * @param *offset : 4-element array indicating the X,Y offsets
- * for each raster. 0,1 for rast1 X,Y. 2,3 for rast2 X,Y.
- *
- * @return ES_NONE if success, ES_ERROR if error
- */
-rt_errorstate
-rt_raster_from_two_rasters(
-	rt_raster rast1, rt_raster rast2,
-	rt_extenttype extenttype,
-	rt_raster *rtnraster, double *offset
-);
-
-/**
- * n-raster iterator.  Returns a raster with one band.
- * The raster returned should be freed by the caller
- *
- * @param itrset : set of rt_iterator objects.
- * @param itrcount : number of objects in itrset.
- * @param extenttype : type of extent for the output raster.
- * @param customextent : raster specifying custom extent.
- * is only used if extenttype is ET_CUSTOM.
- * @param pixtype : the desired pixel type of the output raster's band.
- * @param hasnodata : indicates if the band has nodata value
- * @param nodataval : the nodata value, will be appropriately
- * truncated to fit the pixtype size.
- * @param distancex : the number of pixels around the specified pixel
- * along the X axis
- * @param distancey : the number of pixels around the specified pixel
- * along the Y axis
- * @param *userarg : pointer to any argument that is passed as-is to callback.
- * @param *callback : callback function for actual processing of pixel values.
- * @param *rtnraster : return one band raster from iterator process
- *
- * The callback function _must_ have the following signature.
- *
- *    int FNAME(rt_iterator_arg arg, void *userarg, double *value, int *nodata)
- *
- * The callback function _must_ return zero (error) or non-zero (success)
- * indicating whether the function ran successfully.
- * The parameters passed to the callback function are as follows.
- *
- * - rt_iterator_arg arg : struct containing pixel values, NODATA flags and metadata
- * - void *userarg : NULL or calling function provides to rt_raster_iterator() for use by callback function
- * - double *value : value of pixel to be burned by rt_raster_iterator()
- * - int *nodata : flag (0 or 1) indicating that pixel to be burned is NODATA
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate
-rt_raster_iterator(
-	rt_iterator itrset, uint16_t itrcount,
-	rt_extenttype extenttype, rt_raster customextent,
-	rt_pixtype pixtype,
-	uint8_t hasnodata, double nodataval,
-	uint16_t distancex, uint16_t distancey,
-	void *userarg,
-	int (*callback)(
-		rt_iterator_arg arg,
-		void *userarg,
-		double *value,
-		int *nodata
-	),
-	rt_raster *rtnraster
-);
-
-/**
- * Returns a new raster with up to four 8BUI bands (RGBA) from
- * applying a colormap to the user-specified band of the
- * input raster.
- *
- * @param raster: input raster
- * @param nband: 0-based index of the band to process with colormap
- * @param colormap: rt_colormap object of colormap to apply to band
- *
- * @return new raster or NULL on error
- */
-rt_raster rt_raster_colormap(
-	rt_raster raster, int nband,
-	rt_colormap colormap
-);
-
-/*- utilities -------------------------------------------------------*/
-
-/*
- * rt_core memory functions
- */
-extern void *rtalloc(size_t size);
-extern void *rtrealloc(void *mem, size_t size);
-extern void rtdealloc(void *mem);
-
-/*
- * GDAL driver flags
- */
-
-#define GDAL_ENABLE_ALL "ENABLE_ALL"
-#define GDAL_DISABLE_ALL "DISABLE_ALL"
-#define GDAL_VSICURL "VSICURL"
-
-/* Set of functions to clamp double to int of different size
- */
-
-#if !defined(POSTGIS_RASTER_WARN_ON_TRUNCATION)
-#define POSTGIS_RASTER_WARN_ON_TRUNCATION 0
-#endif
-
-#define POSTGIS_RT_1BBMAX 1
-#define POSTGIS_RT_2BUIMAX 3
-#define POSTGIS_RT_4BUIMAX 15
-
-uint8_t
-rt_util_clamp_to_1BB(double value);
-
-uint8_t
-rt_util_clamp_to_2BUI(double value);
-
-uint8_t
-rt_util_clamp_to_4BUI(double value);
-
-int8_t
-rt_util_clamp_to_8BSI(double value);
-
-uint8_t
-rt_util_clamp_to_8BUI(double value);
-
-int16_t
-rt_util_clamp_to_16BSI(double value);
-
-uint16_t
-rt_util_clamp_to_16BUI(double value);
-
-int32_t
-rt_util_clamp_to_32BSI(double value);
-
-uint32_t
-rt_util_clamp_to_32BUI(double value);
-
-float
-rt_util_clamp_to_32F(double value);
-
-int
-rt_util_dbl_trunc_warning(
-	double initialvalue,
-	int32_t checkvalint, uint32_t checkvaluint,
-	float checkvalfloat, double checkvaldouble,
-	rt_pixtype pixtype
-);
-
-/**
- * Convert cstring name to GDAL Resample Algorithm
- *
- * @param algname : cstring name to convert
- *
- * @return valid GDAL resampling algorithm
- */
-GDALResampleAlg
-rt_util_gdal_resample_alg(const char *algname);
-
-/**
- * Convert rt_pixtype to GDALDataType
- *
- * @param pt : pixeltype to convert
- *
- * @return valid GDALDataType
- */
-GDALDataType
-rt_util_pixtype_to_gdal_datatype(rt_pixtype pt);
-
-/**
- * Convert GDALDataType to rt_pixtype
- *
- * @param gdt : GDAL datatype to convert
- *
- * @return valid rt_pixtype
- */
-rt_pixtype
-rt_util_gdal_datatype_to_pixtype(GDALDataType gdt);
-
-/*
-	get GDAL runtime version information
-*/
-const char*
-rt_util_gdal_version(const char *request);
-
-/*
-	computed extent type from c string
-*/
-rt_extenttype
-rt_util_extent_type(const char *name);
-
-/*
-	convert the spatial reference string from a GDAL recognized format to either WKT or Proj4
-*/
-char*
-rt_util_gdal_convert_sr(const char *srs, int proj4);
-
-/*
-	is the spatial reference string supported by GDAL
-*/
-int
-rt_util_gdal_supported_sr(const char *srs);
-
-/**
- * Get auth name and code
- *
- * @param authname: authority organization of code. calling function
- * is expected to free the memory allocated for value
- * @param authcode: code assigned by authority organization. calling function
- * is expected to free the memory allocated for value
- *
- * @return ES_NONE on success, ES_ERROR on error
- */
-rt_errorstate rt_util_gdal_sr_auth_info(GDALDatasetH hds, char **authname, char **authcode);
-
-/*
-	is GDAL configured correctly?
-*/
-int
-rt_util_gdal_configured(void);
-
-/*
-	register all GDAL drivers
-*/
-int
-rt_util_gdal_register_all(int force_register_all);
-
-/*
-	is the driver registered?
-*/
-int
-rt_util_gdal_driver_registered(const char *drv);
-
-/*
-	wrapper for GDALOpen and GDALOpenShared
-*/
-GDALDatasetH
-rt_util_gdal_open(const char *fn, GDALAccess fn_access, int shared);
-
-void
-rt_util_from_ogr_envelope(
-	OGREnvelope	env,
-	rt_envelope *ext
-);
-
-void
-rt_util_to_ogr_envelope(
-	rt_envelope ext,
-	OGREnvelope	*env
-);
-
-LWPOLY *
-rt_util_envelope_to_lwpoly(
-	rt_envelope ext
-);
-
-int
-rt_util_same_geotransform_matrix(
-	double *gt1,
-	double *gt2
-);
-
-/* coordinates in RGB and HSV are floating point values between 0 and 1 */
-rt_errorstate
-rt_util_rgb_to_hsv(
-	double rgb[3],
-	double hsv[3]
-);
-
-/* coordinates in RGB and HSV are floating point values between 0 and 1 */
-rt_errorstate
-rt_util_hsv_to_rgb(
-	double hsv[3],
-	double rgb[3]
-);
-
-/*
-	helper macros for consistent floating point equality checks
-*/
-#define FLT_NEQ(x, y) (fabs(x - y) > FLT_EPSILON)
-#define FLT_EQ(x, y) (!FLT_NEQ(x, y))
-#define DBL_NEQ(x, y) (fabs(x - y) > DBL_EPSILON)
-#define DBL_EQ(x, y) (!DBL_NEQ(x, y))
-
-/*
-	helper macro for symmetrical rounding
-*/
-#define ROUND(x, y) (((x > 0.0) ? floor((x * pow(10, y) + 0.5)) : ceil((x * pow(10, y) - 0.5))) / pow(10, y))
-
-/**
- * Struct definitions
- *
- * These structs are defined here as they are needed elsewhere
- * including rt_pg/rt_pg.c and reduce duplicative declarations
- *
- */
-struct rt_raster_serialized_t {
-    /*---[ 8 byte boundary ]---{ */
-    uint32_t size; /* required by postgresql: 4 bytes */
-    uint16_t version; /* format version (this is version 0): 2 bytes */
-    uint16_t numBands; /* Number of bands: 2 bytes */
-
-    /* }---[ 8 byte boundary ]---{ */
-    double scaleX; /* pixel width: 8 bytes */
-
-    /* }---[ 8 byte boundary ]---{ */
-    double scaleY; /* pixel height: 8 bytes */
-
-    /* }---[ 8 byte boundary ]---{ */
-    double ipX; /* insertion point X: 8 bytes */
-
-    /* }---[ 8 byte boundary ]---{ */
-    double ipY; /* insertion point Y: 8 bytes */
-
-    /* }---[ 8 byte boundary ]---{ */
-    double skewX; /* skew about the X axis: 8 bytes */
-
-    /* }---[ 8 byte boundary ]---{ */
-    double skewY; /* skew about the Y axis: 8 bytes */
-
-    /* }---[ 8 byte boundary ]--- */
-    int32_t srid; /* Spatial reference id: 4 bytes */
-    uint16_t width; /* pixel columns: 2 bytes */
-    uint16_t height; /* pixel rows: 2 bytes */
-};
-
-/* NOTE: the initial part of this structure matches the layout
- *       of data in the serialized form version 0, starting
- *       from the numBands element
- */
-struct rt_raster_t {
-    uint32_t size;
-    uint16_t version;
-
-    /* Number of bands, all share the same dimension
-     * and georeference */
-    uint16_t numBands;
-
-    /* Georeference (in projection units) */
-    double scaleX; /* pixel width */
-    double scaleY; /* pixel height */
-    double ipX; /* geo x ordinate of the corner of upper-left pixel */
-    double ipY; /* geo y ordinate of the corner of bottom-right pixel */
-    double skewX; /* skew about the X axis*/
-    double skewY; /* skew about the Y axis */
-
-    int32_t srid; /* spatial reference id */
-    uint16_t width; /* pixel columns - max 65535 */
-    uint16_t height; /* pixel rows - max 65535 */
-    rt_band *bands; /* actual bands */
-
-};
-
-struct rt_extband_t {
-    uint8_t bandNum; /* 0-based */
-    char* path; /* internally owned */
-		void *mem; /* loaded external band data, internally owned */
-};
-
-struct rt_band_t {
-    rt_pixtype pixtype;
-    int32_t offline;
-    uint16_t width;
-    uint16_t height;
-    int32_t hasnodata; /* a flag indicating if this band contains nodata values */
-    int32_t isnodata;   /* a flag indicating if this band is filled only with
-                           nodata values. flag CANNOT be TRUE if hasnodata is FALSE */
-    double nodataval; /* int will be converted ... */
-    int8_t ownsdata; /* 0, externally owned. 1, internally owned. only applies to data.mem */
-
-		rt_raster raster; /* reference to parent raster */
-
-    union {
-        void* mem; /* actual data, externally owned */
-        struct rt_extband_t offline;
-    } data;
-
-};
-
-struct rt_pixel_t {
-	int x; /* column */
-	int y; /* line */
-
-	uint8_t nodata;
-	double value;
-
-	LWGEOM *geom;
-};
-
-/* polygon as LWPOLY with associated value */
-struct rt_geomval_t {
-	LWPOLY *geom;
-	double val;
-};
-
-/* summary stats of specified band */
-struct rt_bandstats_t {
-	double sample;
-	uint32_t count;
-
-	double min;
-	double max;
-	double sum;
-	double mean;
-	double stddev;
-
-	double *values;
-	int sorted; /* flag indicating that values is sorted ascending by value */
-};
-
-/* histogram bin(s) of specified band */
-struct rt_histogram_t {
-	uint32_t count;
-	double percent;
-
-	double min;
-	double max;
-
-	int inc_min;
-	int inc_max;
-};
-
-/* quantile(s) of the specified band */
-struct rt_quantile_t {
-	double quantile;
-	double value;
-	uint32_t has_value;
-};
-
-/* listed-list structures for rt_band_get_quantiles_stream */
-struct quantile_llist {
-	uint8_t algeq; /* AL-GEQ (1) or AL-GT (0) */
-	double quantile;
-	uint64_t tau; /* position in sequence */
-
-	struct quantile_llist_element *head; /* H index 0 */
-	struct quantile_llist_element *tail; /* H index last */
-	uint32_t count; /* # of elements in H */
-
-	/* faster access to elements at specific intervals */
-	struct quantile_llist_index *index;
-	uint32_t index_max; /* max # of elements in index */
-
-	uint64_t sum1; /* N1H */
-	uint64_t sum2; /* N2H */
-};
-
-struct quantile_llist_element {
-	double value;
-	uint32_t count;
-
-	struct quantile_llist_element *prev;
-	struct quantile_llist_element *next;
-};
-
-struct quantile_llist_index {
-	struct quantile_llist_element *element;
-	uint32_t index;
-};
-
-/* number of times a value occurs */
-struct rt_valuecount_t {
-	double value;
-	uint32_t count;
-	double percent;
-};
-
-/* reclassification expression */
-struct rt_reclassexpr_t {
-	struct rt_reclassrange {
-		double min;
-		double max;
-		int inc_min; /* include min */
-		int inc_max; /* include max */
-		int exc_min; /* exceed min */
-		int exc_max; /* exceed max */
-	} src, dst;
-};
-
-/* raster iterator */
-struct rt_iterator_t {
-	rt_raster raster;
-	uint16_t nband; /* 0-based */
-	uint8_t nbnodata; /* no band = treat as NODATA  */
-};
-
-/* callback argument from raster iterator */
-struct rt_iterator_arg_t {
-	/* # of rasters, Z-axis */
-	uint16_t rasters;
-	/* # of rows, Y-axis */
-	uint32_t rows;
-	/* # of columns, X-axis */
-	uint32_t columns;
-
-	/* axis order: Z,X,Y */
-	/* individual pixel values */
-	double ***values;
-	/* 0,1 value of nodata flag */
-	int ***nodata;
-
-	/* X,Y of pixel from each input raster */
-	int **src_pixel;
-
-	/* X,Y of pixel from output raster */
-	int dst_pixel[2];
-};
-
-/* gdal driver information */
-struct rt_gdaldriver_t {
-	int idx;
-	char *short_name;
-	char *long_name;
-	char *create_options;
-};
-
-/* raster colormap entry */
-struct rt_colormap_entry_t {
-	int isnodata;
-	double value;
-	uint8_t color[4]; /* RGBA */
-};
-
-struct rt_colormap_t {
-	enum {
-		CM_INTERPOLATE,
-		CM_EXACT,
-		CM_NEAREST
-	} method;
-
-	int ncolor;
-	uint16_t nentry;
-	rt_colormap_entry entry;
-};
-
-#endif /* RT_API_H_INCLUDED */
diff --git a/raster/rt_core/rt_band.c b/raster/rt_core/rt_band.c
new file mode 100644
index 0000000..1b49f15
--- /dev/null
+++ b/raster/rt_core/rt_band.c
@@ -0,0 +1,1793 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <stdio.h>
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+
+#include "gdal_vrt.h"
+
+/**
+ * Create an in-db rt_band with no data
+ *
+ * @param width     : number of pixel columns
+ * @param height    : number of pixel rows
+ * @param pixtype   : pixel type for the band
+ * @param hasnodata : indicates if the band has nodata value
+ * @param nodataval : the nodata value, will be appropriately
+ *                    truncated to fit the pixtype size.
+ * @param data      : pointer to actual band data, required to
+ *                    be aligned accordingly to
+ *                    rt_pixtype_aligment(pixtype) and big enough
+ *                    to hold raster width*height values.
+ *                    Data will NOT be copied, ownership is left
+ *                    to caller which is responsible to keep it
+ *                    allocated for the whole lifetime of the returned
+ *                    rt_band.
+ *
+ * @return an rt_band, or 0 on failure
+ */
+rt_band
+rt_band_new_inline(
+	uint16_t width, uint16_t height,
+	rt_pixtype pixtype,
+	uint32_t hasnodata, double nodataval,
+	uint8_t* data
+) {
+	rt_band band = NULL;
+
+	assert(NULL != data);
+
+	band = rtalloc(sizeof(struct rt_band_t));
+	if (band == NULL) {
+		rterror("rt_band_new_inline: Out of memory allocating rt_band");
+		return NULL;
+	}
+
+	RASTER_DEBUGF(3, "Created rt_band @ %p with pixtype %s", band, rt_pixtype_name(pixtype));
+
+	band->pixtype = pixtype;
+	band->offline = 0;
+	band->width = width;
+	band->height = height;
+	band->hasnodata = hasnodata ? 1 : 0;
+	band->isnodata = FALSE; /* we don't know what is in data, so must be FALSE */
+	band->nodataval = 0;
+	band->data.mem = data;
+	band->ownsdata = 0; /* we do NOT own this data!!! */
+	band->raster = NULL;
+
+	RASTER_DEBUGF(3, "Created rt_band with dimensions %d x %d", band->width, band->height);
+
+	/* properly set nodataval as it may need to be constrained to the data type */
+	if (hasnodata && rt_band_set_nodata(band, nodataval, NULL) != ES_NONE) {
+		rterror("rt_band_new_inline: Could not set NODATA value");
+		rt_band_destroy(band);
+		return NULL;
+	}
+
+	return band;
+}
+
+/**
+ * Create an out-db rt_band
+ *
+ * @param width     : number of pixel columns
+ * @param height    : number of pixel rows
+ * @param pixtype   : pixel type for the band
+ * @param hasnodata : indicates if the band has nodata value
+ * @param nodataval : the nodata value, will be appropriately
+ *                    truncated to fit the pixtype size.
+ * @param bandNum   : 0-based band number in the external file
+ *                    to associate this band with.
+ * @param path      : NULL-terminated path string pointing to the file
+ *                    containing band data. The string will NOT be
+ *                    copied, ownership is left to caller which is
+ *                    responsible to keep it allocated for the whole
+ *                    lifetime of the returned rt_band.
+ *
+ * @return an rt_band, or 0 on failure
+ */
+rt_band
+rt_band_new_offline(
+	uint16_t width, uint16_t height,
+	rt_pixtype pixtype,
+	uint32_t hasnodata, double nodataval,
+	uint8_t bandNum, const char* path
+) {
+	rt_band band = NULL;
+	int pathlen = 0;
+
+	assert(NULL != path);
+
+	band = rtalloc(sizeof(struct rt_band_t));
+	if (band == NULL) {
+		rterror("rt_band_new_offline: Out of memory allocating rt_band");
+		return NULL;
+	}
+
+	RASTER_DEBUGF(3, "Created rt_band @ %p with pixtype %s",
+		band, rt_pixtype_name(pixtype)
+	); 
+
+	band->pixtype = pixtype;
+	band->offline = 1;
+	band->width = width;
+	band->height = height;
+	band->hasnodata = hasnodata ? 1 : 0;
+	band->nodataval = 0;
+	band->isnodata = FALSE; /* we don't know if the offline band is NODATA */
+	band->ownsdata = 0; /* offline, flag is useless as all offline data cache is owned internally */
+	band->raster = NULL;
+
+	/* properly set nodataval as it may need to be constrained to the data type */
+	if (hasnodata && rt_band_set_nodata(band, nodataval, NULL) != ES_NONE) {
+		rterror("rt_band_new_offline: Could not set NODATA value");
+		rt_band_destroy(band);
+		return NULL;
+	}
+
+	band->data.offline.bandNum = bandNum;
+
+	/* memory for data.offline.path is managed internally */
+	pathlen = strlen(path);
+	band->data.offline.path = rtalloc(sizeof(char) * (pathlen + 1));
+	if (band->data.offline.path == NULL) {
+		rterror("rt_band_new_offline: Out of memory allocating offline path");
+		rt_band_destroy(band);
+		return NULL;
+	}
+	memcpy(band->data.offline.path, path, pathlen);
+	band->data.offline.path[pathlen] = '\0';
+
+	band->data.offline.mem = NULL;
+
+	return band;
+}
+
+/**
+ * Create a new band duplicated from source band.  Memory is allocated
+ * for band path (if band is offline) or band data (if band is online).
+ * The caller is responsible for freeing the memory when the returned
+ * rt_band is destroyed.
+ *
+ * @param : the band to copy
+ *
+ * @return an rt_band or NULL on failure
+ */
+rt_band
+rt_band_duplicate(rt_band band) {
+	rt_band rtn = NULL;
+
+	assert(band != NULL);
+
+	/* offline */
+	if (band->offline) {
+		rtn = rt_band_new_offline(
+			band->width, band->height,
+			band->pixtype,
+			band->hasnodata, band->nodataval,
+			band->data.offline.bandNum, (const char *) band->data.offline.path 
+		);
+	}
+	/* online */
+	else {
+		uint8_t *data = NULL;
+		data = rtalloc(rt_pixtype_size(band->pixtype) * band->width * band->height);
+		if (data == NULL) {
+			rterror("rt_band_duplicate: Out of memory allocating online band data");
+			return NULL;
+		}
+		memcpy(data, band->data.mem, rt_pixtype_size(band->pixtype) * band->width * band->height);
+
+		rtn = rt_band_new_inline(
+			band->width, band->height,
+			band->pixtype,
+			band->hasnodata, band->nodataval,
+			data
+		);
+		rt_band_set_ownsdata_flag(rtn, 1); /* we DO own this data!!! */
+	}
+
+	if (rtn == NULL) {
+		rterror("rt_band_duplicate: Could not copy band");
+		return NULL;
+	}
+
+	return rtn;
+}
+
+int
+rt_band_is_offline(rt_band band) {
+
+    assert(NULL != band);
+
+
+    return band->offline ? 1 : 0;
+}
+
+/**
+ * Destroy a raster band
+ *
+ * @param band : the band to destroy
+ */
+void
+rt_band_destroy(rt_band band) { 
+	if (band == NULL)
+		return;
+
+	RASTER_DEBUGF(3, "Destroying rt_band @ %p", band);
+
+	/* offline band */
+	if (band->offline) {
+		/* memory cache */
+		if (band->data.offline.mem != NULL)
+			rtdealloc(band->data.offline.mem);
+		/* offline file path */
+		if (band->data.offline.path != NULL)
+			rtdealloc(band->data.offline.path);
+	}
+	/* inline band and band owns the data */
+	else if (band->data.mem != NULL && band->ownsdata)
+		rtdealloc(band->data.mem);
+
+	rtdealloc(band);
+}
+
+const char*
+rt_band_get_ext_path(rt_band band) {
+
+    assert(NULL != band);
+
+
+    if (!band->offline) {
+        RASTER_DEBUG(3, "rt_band_get_ext_path: Band is not offline");
+        return NULL;
+    }
+    return band->data.offline.path;
+}
+
+rt_errorstate
+rt_band_get_ext_band_num(rt_band band, uint8_t *bandnum) {
+	assert(NULL != band);
+	assert(NULL != bandnum);
+
+	*bandnum = 0;
+
+	if (!band->offline) {
+		RASTER_DEBUG(3, "rt_band_get_ext_band_num: Band is not offline");
+		return ES_ERROR;
+	}
+
+	*bandnum = band->data.offline.bandNum;
+
+	return ES_NONE;
+}
+
+/**
+	* Get pointer to raster band data
+	*
+	* @param band : the band who's data to get
+	*
+	* @return pointer to band data or NULL if error
+	*/
+void *
+rt_band_get_data(rt_band band) {
+	assert(NULL != band);
+
+	if (band->offline) {
+		if (band->data.offline.mem != NULL)
+			return band->data.offline.mem;
+
+		if (rt_band_load_offline_data(band) != ES_NONE)
+			return NULL;
+		else
+			return band->data.offline.mem;
+	}
+	else
+		return band->data.mem;
+}
+
+/* variable for PostgreSQL GUC: postgis.enable_outdb_rasters */
+char enable_outdb_rasters = 1;
+
+/**
+	* Load offline band's data.  Loaded data is internally owned
+	* and should not be released by the caller.  Data will be
+	* released when band is destroyed with rt_band_destroy().
+	*
+	* @param band : the band who's data to get
+	*
+	* @return ES_NONE if success, ES_ERROR if failure
+	*/
+rt_errorstate
+rt_band_load_offline_data(rt_band band) {
+	GDALDatasetH hdsSrc = NULL;
+	int nband = 0;
+	VRTDatasetH hdsDst = NULL;
+	VRTSourcedRasterBandH hbandDst = NULL;
+	double gt[6] = {0.};
+	double ogt[6] = {0};
+	double offset[2] = {0};
+
+	rt_raster _rast = NULL;
+	rt_band _band = NULL;
+	int aligned = 0;
+	int err = ES_NONE;
+
+	assert(band != NULL);
+	assert(band->raster != NULL);
+
+	if (!band->offline) {
+		rterror("rt_band_load_offline_data: Band is not offline");
+		return ES_ERROR;
+	}
+	else if (!strlen(band->data.offline.path)) {
+		rterror("rt_band_load_offline_data: Offline band does not a have a specified file");
+		return ES_ERROR;
+	}
+
+	/* offline_data is disabled */
+	if (!enable_outdb_rasters) {
+		rterror("rt_band_load_offline_data: Access to offline bands disabled");
+		return ES_ERROR;
+	}
+
+	rt_util_gdal_register_all(0);
+	/*
+	hdsSrc = rt_util_gdal_open(band->data.offline.path, GA_ReadOnly, 1);
+	*/
+	hdsSrc = rt_util_gdal_open(band->data.offline.path, GA_ReadOnly, 0);
+	if (hdsSrc == NULL) {
+		rterror("rt_band_load_offline_data: Cannot open offline raster: %s", band->data.offline.path);
+		return ES_ERROR;
+	}
+
+	/* # of bands */
+	nband = GDALGetRasterCount(hdsSrc);
+	if (!nband) {
+		rterror("rt_band_load_offline_data: No bands found in offline raster: %s", band->data.offline.path);
+		GDALClose(hdsSrc);
+		return ES_ERROR;
+	}
+	/* bandNum is 0-based */
+	else if (band->data.offline.bandNum + 1 > nband) {
+		rterror("rt_band_load_offline_data: Specified band %d not found in offline raster: %s", band->data.offline.bandNum, band->data.offline.path);
+		GDALClose(hdsSrc);
+		return ES_ERROR;
+	}
+
+	/* get raster's geotransform */
+	rt_raster_get_geotransform_matrix(band->raster, gt);
+	RASTER_DEBUGF(3, "Raster geotransform (%f, %f, %f, %f, %f, %f)",
+		gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
+
+	/* get offline raster's geotransform */
+	if (GDALGetGeoTransform(hdsSrc, ogt) != CE_None) {
+		RASTER_DEBUG(4, "Using default geotransform matrix (0, 1, 0, 0, 0, -1)");
+		ogt[0] = 0;
+		ogt[1] = 1;
+		ogt[2] = 0;
+		ogt[3] = 0;
+		ogt[4] = 0;
+		ogt[5] = -1;
+	}
+	RASTER_DEBUGF(3, "Offline geotransform (%f, %f, %f, %f, %f, %f)",
+		ogt[0], ogt[1], ogt[2], ogt[3], ogt[4], ogt[5]);
+
+	/* are rasters aligned? */
+	_rast = rt_raster_new(1, 1);
+	rt_raster_set_geotransform_matrix(_rast, ogt);
+	rt_raster_set_srid(_rast, band->raster->srid);
+	err = rt_raster_same_alignment(band->raster, _rast, &aligned, NULL);
+	rt_raster_destroy(_rast);
+
+	if (err != ES_NONE) {
+		rterror("rt_band_load_offline_data: Could not test alignment of in-db representation of out-db raster");
+		GDALClose(hdsSrc);
+		return ES_ERROR;
+	}
+	else if (!aligned) {
+		rtwarn("The in-db representation of the out-db raster is not aligned. Band data may be incorrect");
+	}
+
+	/* get offsets */
+	rt_raster_geopoint_to_cell(
+		band->raster,
+		ogt[0], ogt[3],
+		&(offset[0]), &(offset[1]),
+		NULL
+	);
+
+	RASTER_DEBUGF(4, "offsets: (%f, %f)", offset[0], offset[1]);
+
+	/* create VRT dataset */
+	hdsDst = VRTCreate(band->width, band->height);
+	GDALSetGeoTransform(hdsDst, gt);
+	/*
+	GDALSetDescription(hdsDst, "/tmp/offline.vrt");
+	*/
+
+	/* add band as simple sources */
+	GDALAddBand(hdsDst, rt_util_pixtype_to_gdal_datatype(band->pixtype), NULL);
+	hbandDst = (VRTSourcedRasterBandH) GDALGetRasterBand(hdsDst, 1);
+
+	if (band->hasnodata)
+		GDALSetRasterNoDataValue(hbandDst, band->nodataval);
+
+	VRTAddSimpleSource(
+		hbandDst, GDALGetRasterBand(hdsSrc, band->data.offline.bandNum + 1),
+		fabs(offset[0]), fabs(offset[1]),
+		band->width, band->height,
+		0, 0,
+		band->width, band->height,
+		"near", VRT_NODATA_UNSET
+	);
+
+	/* make sure VRT reflects all changes */
+	VRTFlushCache(hdsDst);
+
+	/* convert VRT dataset to rt_raster */
+	_rast = rt_raster_from_gdal_dataset(hdsDst);
+
+	GDALClose(hdsDst);
+	GDALClose(hdsSrc);
+	/*
+	{
+		FILE *fp;
+		fp = fopen("/tmp/gdal_open_files.log", "w");
+		GDALDumpOpenDatasets(fp);
+		fclose(fp);
+	}
+	*/
+
+	if (_rast == NULL) {
+		rterror("rt_band_load_offline_data: Cannot load data from offline raster: %s", band->data.offline.path);
+		return ES_ERROR;
+	}
+
+	_band = rt_raster_get_band(_rast, 0);
+	if (_band == NULL) {
+		rterror("rt_band_load_offline_data: Cannot load data from offline raster: %s", band->data.offline.path);
+		rt_raster_destroy(_rast);
+		return ES_ERROR;
+	}
+
+	/* band->data.offline.mem not NULL, free first */
+	if (band->data.offline.mem != NULL) {
+		rtdealloc(band->data.offline.mem);
+		band->data.offline.mem = NULL;
+	}
+
+	band->data.offline.mem = _band->data.mem;
+
+	rtdealloc(_band); /* cannot use rt_band_destroy */
+	rt_raster_destroy(_rast);
+
+	return ES_NONE;
+}
+
+rt_pixtype
+rt_band_get_pixtype(rt_band band) {
+
+    assert(NULL != band);
+
+
+    return band->pixtype;
+}
+
+uint16_t
+rt_band_get_width(rt_band band) {
+
+    assert(NULL != band);
+
+
+    return band->width;
+}
+
+uint16_t
+rt_band_get_height(rt_band band) {
+
+    assert(NULL != band);
+
+
+    return band->height;
+}
+
+/* Get ownsdata flag */
+int
+rt_band_get_ownsdata_flag(rt_band band) {
+	assert(NULL != band);
+
+	return band->ownsdata ? 1 : 0;
+}
+
+/* set ownsdata flag */
+void
+rt_band_set_ownsdata_flag(rt_band band, int flag) {
+	assert(NULL != band);
+
+	band->ownsdata = flag ? 1 : 0;
+}
+
+int
+rt_band_get_hasnodata_flag(rt_band band) {
+	assert(NULL != band);
+
+	return band->hasnodata ? 1 : 0;
+}
+
+void
+rt_band_set_hasnodata_flag(rt_band band, int flag) {
+
+    assert(NULL != band);
+
+    band->hasnodata = (flag) ? 1 : 0;
+
+		/* isnodata depends on hasnodata */
+		if (!band->hasnodata && band->isnodata) {
+			RASTER_DEBUG(3, "Setting isnodata to FALSE as band no longer has NODATA");
+			band->isnodata = 0;
+		}
+}
+
+rt_errorstate
+rt_band_set_isnodata_flag(rt_band band, int flag) {
+	assert(NULL != band);
+
+	if (!band->hasnodata) {
+		/* silently permit setting isnodata flag to FALSE */
+		if (!flag)
+			band->isnodata = 0;
+		else {
+			rterror("rt_band_set_isnodata_flag: Cannot set isnodata flag as band has no NODATA");
+			return ES_ERROR;
+		}
+	}
+	else 
+		band->isnodata = (flag) ? 1 : 0;
+
+	return ES_NONE;
+}
+
+int
+rt_band_get_isnodata_flag(rt_band band) {
+	assert(NULL != band);
+
+	if (band->hasnodata)
+		return band->isnodata ? 1 : 0;
+	else
+		return 0;
+}
+
+/**
+ * Set nodata value
+ *
+ * @param band : the band to set nodata value to
+ * @param val : the nodata value
+ * @param converted : if non-zero, value was truncated/clamped/coverted
+ *
+ * @return ES_NONE or ES_ERROR
+ */
+rt_errorstate
+rt_band_set_nodata(rt_band band, double val, int *converted) {
+	rt_pixtype pixtype = PT_END;
+	int32_t checkvalint = 0;
+	uint32_t checkvaluint = 0;
+	float checkvalfloat = 0;
+	double checkvaldouble = 0;
+
+	assert(NULL != band);
+
+	if (converted != NULL)
+		*converted = 0;
+
+	pixtype = band->pixtype;
+
+	RASTER_DEBUGF(3, "rt_band_set_nodata: setting nodata value %g with band type %s", val, rt_pixtype_name(pixtype));
+
+	/* return -1 on out of range */
+	switch (pixtype) {
+		case PT_1BB: {
+			band->nodataval = rt_util_clamp_to_1BB(val);
+			checkvalint = band->nodataval;
+			break;
+		}
+		case PT_2BUI: {
+			band->nodataval = rt_util_clamp_to_2BUI(val);
+			checkvalint = band->nodataval;
+			break;
+		}
+		case PT_4BUI: {
+			band->nodataval = rt_util_clamp_to_4BUI(val);
+			checkvalint = band->nodataval;
+			break;
+		}
+		case PT_8BSI: {
+			band->nodataval = rt_util_clamp_to_8BSI(val);
+			checkvalint = band->nodataval;
+			break;
+		}
+		case PT_8BUI: {
+			band->nodataval = rt_util_clamp_to_8BUI(val);
+			checkvalint = band->nodataval;
+			break;
+		}
+		case PT_16BSI: {
+			band->nodataval = rt_util_clamp_to_16BSI(val);
+			checkvalint = band->nodataval;
+			break;
+		}
+		case PT_16BUI: {
+			band->nodataval = rt_util_clamp_to_16BUI(val);
+			checkvalint = band->nodataval;
+			break;
+		}
+		case PT_32BSI: {
+			band->nodataval = rt_util_clamp_to_32BSI(val);
+			checkvalint = band->nodataval;
+			break;
+		}
+		case PT_32BUI: {
+			band->nodataval = rt_util_clamp_to_32BUI(val);
+			checkvaluint = band->nodataval;
+			break;
+		}
+		case PT_32BF: {
+			band->nodataval = rt_util_clamp_to_32F(val);
+			checkvalfloat = band->nodataval;
+			break;
+		}
+		case PT_64BF: {
+			band->nodataval = val;
+			checkvaldouble = band->nodataval;
+			break;
+		}
+		default: {
+			rterror("rt_band_set_nodata: Unknown pixeltype %d", pixtype);
+			band->hasnodata = 0;
+			return ES_ERROR;
+		}
+	}
+
+	RASTER_DEBUGF(3, "rt_band_set_nodata: band->hasnodata = %d", band->hasnodata);
+	RASTER_DEBUGF(3, "rt_band_set_nodata: band->nodataval = %f", band->nodataval); 
+	/* the nodata value was just set, so this band has NODATA */
+	band->hasnodata = 1;
+
+	/* also set isnodata flag to false */
+	band->isnodata = 0; 
+
+	if (rt_util_dbl_trunc_warning(
+		val,
+		checkvalint, checkvaluint,
+		checkvalfloat, checkvaldouble,
+		pixtype
+	) && converted != NULL) {
+		*converted = 1;
+	}
+
+	return ES_NONE;
+}
+
+/**
+ * Set values of multiple pixels.  Unlike rt_band_set_pixel,
+ * values in vals are expected to be of the band's pixel type
+ * as this function uses memcpy.
+ *
+ * It is important to be careful when using this function as
+ * the number of values being set may exceed a pixel "row".
+ * Remember that the band values are stored in a stream (1-D array)
+ * regardless of what the raster's width and height might be.
+ * So, setting a number of values may cross multiple pixel "rows".
+ *
+ * @param band : the band to set value to
+ * @param x : X coordinate (0-based)
+ * @param y : Y coordinate (0-based)
+ * @param vals : the pixel values to apply
+ * @param len : # of elements in vals
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate
+rt_band_set_pixel_line(
+	rt_band band,
+	int x, int y,
+	void *vals, uint32_t len
+) {
+	rt_pixtype pixtype = PT_END;
+	int size = 0;
+	uint8_t *data = NULL;
+	uint32_t offset = 0;
+
+	assert(NULL != band);
+	assert(vals != NULL && len > 0);
+
+	RASTER_DEBUGF(3, "length of values = %d", len);
+
+	if (band->offline) {
+		rterror("rt_band_set_pixel_line not implemented yet for OFFDB bands");
+		return ES_ERROR;
+	}
+
+	pixtype = band->pixtype;
+	size = rt_pixtype_size(pixtype);
+
+	if (
+		x < 0 || x >= band->width ||
+		y < 0 || y >= band->height
+	) {
+		rterror("rt_band_set_pixel_line: Coordinates out of range (%d, %d) vs (%d, %d)", x, y, band->width, band->height);
+		return ES_ERROR;
+	}
+
+	data = rt_band_get_data(band);
+	offset = x + (y * band->width);
+	RASTER_DEBUGF(4, "offset = %d", offset);
+
+	/* make sure len of values to copy don't exceed end of data */
+	if (len > (band->width * band->height) - offset) {
+		rterror("rt_band_set_pixel_line: Could not apply pixels as values length exceeds end of data");
+		return ES_ERROR;
+	}
+
+	switch (pixtype) {
+		case PT_1BB:
+		case PT_2BUI:
+		case PT_4BUI:
+		case PT_8BUI:
+		case PT_8BSI: {
+			uint8_t *ptr = data;
+			ptr += offset;
+			memcpy(ptr, vals, size * len);
+			break;
+		}
+		case PT_16BUI: {
+			uint16_t *ptr = (uint16_t *) data;
+			ptr += offset;
+			memcpy(ptr, vals, size * len);
+			break;
+		}
+		case PT_16BSI: {
+			int16_t *ptr = (int16_t *) data;
+			ptr += offset;
+			memcpy(ptr, vals, size * len);
+			break;
+		}
+		case PT_32BUI: {
+			uint32_t *ptr = (uint32_t *) data;
+			ptr += offset;
+			memcpy(ptr, vals, size * len);
+			break;
+		}
+		case PT_32BSI: {
+			int32_t *ptr = (int32_t *) data;
+			ptr += offset;
+			memcpy(ptr, vals, size * len);
+			break;
+		}
+		case PT_32BF: {
+			float *ptr = (float *) data;
+			ptr += offset;
+			memcpy(ptr, vals, size * len);
+			break;
+		}
+		case PT_64BF: {
+			double *ptr = (double *) data;
+			ptr += offset;
+			memcpy(ptr, vals, size * len);
+			break;
+		}
+		default: {
+			rterror("rt_band_set_pixel_line: Unknown pixeltype %d", pixtype);
+			return ES_ERROR;
+		}
+	}
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	{
+		double value;
+		rt_band_get_pixel(band, x, y, &value, NULL);
+		RASTER_DEBUGF(4, "pixel at (%d, %d) = %f", x, y, value);
+	}
+#endif
+
+	/* set band's isnodata flag to FALSE */
+	if (rt_band_get_hasnodata_flag(band))
+		rt_band_set_isnodata_flag(band, 0);
+
+	return ES_NONE;
+}
+
+/**
+ * Set single pixel's value
+ *
+ * @param band : the band to set value to
+ * @param x : x ordinate (0-based)
+ * @param y : y ordinate (0-based)
+ * @param val : the pixel value
+ * @param converted : (optional) non-zero if value truncated/clamped/converted
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate
+rt_band_set_pixel(
+	rt_band band,
+	int x, int y,
+	double val,
+	int *converted
+) {
+	rt_pixtype pixtype = PT_END;
+	unsigned char* data = NULL;
+	uint32_t offset = 0;
+
+	int32_t checkvalint = 0;
+	uint32_t checkvaluint = 0;
+	float checkvalfloat = 0;
+	double checkvaldouble = 0;
+
+	assert(NULL != band);
+
+	if (converted != NULL)
+		*converted = 0;
+
+	if (band->offline) {
+		rterror("rt_band_set_pixel not implemented yet for OFFDB bands");
+		return ES_ERROR;
+	}
+
+	pixtype = band->pixtype;
+
+	if (
+		x < 0 || x >= band->width ||
+		y < 0 || y >= band->height
+	) {
+		rterror("rt_band_set_pixel: Coordinates out of range");
+		return ES_ERROR;
+	}
+
+	/* check that clamped value isn't clamped NODATA */
+	if (band->hasnodata && pixtype != PT_64BF) {
+		double newval;
+		int corrected;
+
+		rt_band_corrected_clamped_value(band, val, &newval, &corrected);
+
+		if (corrected) {
+#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
+			rtwarn("Value for pixel %d x %d has been corrected as clamped value becomes NODATA", x, y);
+#endif
+			val = newval;
+
+			if (converted != NULL)
+				*converted = 1;
+		}
+	}
+
+	data = rt_band_get_data(band);
+	offset = x + (y * band->width);
+
+	switch (pixtype) {
+		case PT_1BB: {
+			data[offset] = rt_util_clamp_to_1BB(val);
+			checkvalint = data[offset];
+			break;
+		}
+		case PT_2BUI: {
+			data[offset] = rt_util_clamp_to_2BUI(val);
+			checkvalint = data[offset];
+			break;
+		}
+		case PT_4BUI: {
+			data[offset] = rt_util_clamp_to_4BUI(val);
+			checkvalint = data[offset];
+			break;
+		}
+		case PT_8BSI: {
+			data[offset] = rt_util_clamp_to_8BSI(val);
+			checkvalint = (int8_t) data[offset];
+			break;
+		}
+		case PT_8BUI: {
+			data[offset] = rt_util_clamp_to_8BUI(val);
+			checkvalint = data[offset];
+			break;
+		}
+		case PT_16BSI: {
+			int16_t *ptr = (int16_t*) data; /* we assume correct alignment */
+			ptr[offset] = rt_util_clamp_to_16BSI(val);
+			checkvalint = (int16_t) ptr[offset];
+			break;
+		}
+		case PT_16BUI: {
+			uint16_t *ptr = (uint16_t*) data; /* we assume correct alignment */
+			ptr[offset] = rt_util_clamp_to_16BUI(val);
+			checkvalint = ptr[offset];
+			break;
+		}
+		case PT_32BSI: {
+			int32_t *ptr = (int32_t*) data; /* we assume correct alignment */
+			ptr[offset] = rt_util_clamp_to_32BSI(val);
+			checkvalint = (int32_t) ptr[offset];
+			break;
+		}
+		case PT_32BUI: {
+			uint32_t *ptr = (uint32_t*) data; /* we assume correct alignment */
+			ptr[offset] = rt_util_clamp_to_32BUI(val);
+			checkvaluint = ptr[offset];
+			break;
+		}
+		case PT_32BF: {
+			float *ptr = (float*) data; /* we assume correct alignment */
+			ptr[offset] = rt_util_clamp_to_32F(val);
+			checkvalfloat = ptr[offset];
+			break;
+		}
+		case PT_64BF: {
+			double *ptr = (double*) data; /* we assume correct alignment */
+			ptr[offset] = val;
+			checkvaldouble = ptr[offset];
+			break;
+		}
+		default: {
+			rterror("rt_band_set_pixel: Unknown pixeltype %d", pixtype);
+			return ES_ERROR;
+		}
+	}
+
+	/* If the stored value is not NODATA, reset the isnodata flag */
+	if (!rt_band_clamped_value_is_nodata(band, val)) {
+		RASTER_DEBUG(3, "Band has a value that is not NODATA. Setting isnodata to FALSE");
+		band->isnodata = FALSE;
+	}
+
+	/* Overflow checking */
+	if (rt_util_dbl_trunc_warning(
+		val,
+		checkvalint, checkvaluint,
+		checkvalfloat, checkvaldouble,
+		pixtype
+	) && converted != NULL) {
+		*converted = 1;
+	}
+
+	return ES_NONE;
+}
+
+/**
+ * Get values of multiple pixels.  Unlike rt_band_get_pixel,
+ * values in vals are of the band's pixel type so cannot be
+ * assumed to be double.  Function uses memcpy.
+ *
+ * It is important to be careful when using this function as
+ * the number of values being fetched may exceed a pixel "row".
+ * Remember that the band values are stored in a stream (1-D array)
+ * regardless of what the raster's width and height might be.
+ * So, getting a number of values may cross multiple pixel "rows".
+ *
+ * @param band : the band to get pixel value from
+ * @param x : pixel column (0-based)
+ * @param y : pixel row (0-based)
+ * @param len : the number of pixels to get
+ * @param **vals : the pixel values
+ * @param *nvals : the number of pixel values being returned
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_band_get_pixel_line(
+	rt_band band,
+	int x, int y,
+	uint16_t len,
+	void **vals, uint16_t *nvals
+) {
+	uint8_t *_vals = NULL;
+	int pixsize = 0;
+	uint8_t *data = NULL;
+	uint32_t offset = 0; 
+	uint16_t _nvals = 0;
+	int maxlen = 0;
+	uint8_t *ptr = NULL;
+
+	assert(NULL != band);
+	assert(vals != NULL && nvals != NULL);
+
+	/* initialize to no values */
+	*nvals = 0;
+
+	if (
+		x < 0 || x >= band->width ||
+		y < 0 || y >= band->height
+	) {
+		rtwarn("Attempting to get pixel values with out of range raster coordinates: (%d, %d)", x, y);
+		return ES_ERROR;
+	}
+
+	if (len < 1)
+		return ES_NONE;
+
+	data = rt_band_get_data(band);
+	if (data == NULL) {
+		rterror("rt_band_get_pixel_line: Cannot get band data");
+		return ES_ERROR;
+	}
+
+	/* +1 for the nodata value */
+	offset = x + (y * band->width);
+	RASTER_DEBUGF(4, "offset = %d", offset);
+
+	pixsize = rt_pixtype_size(band->pixtype);
+	RASTER_DEBUGF(4, "pixsize = %d", pixsize);
+
+	/* cap _nvals so that it doesn't overflow */
+	_nvals = len;
+	maxlen = band->width * band->height;
+
+	if (((int) (offset + _nvals)) > maxlen) {
+		_nvals = maxlen - offset;
+		rtwarn("Limiting returning number values to %d", _nvals);
+	}
+	RASTER_DEBUGF(4, "_nvals = %d", _nvals);
+
+	ptr = data + (offset * pixsize);
+
+	_vals = rtalloc(_nvals * pixsize);
+	if (_vals == NULL) {
+		rterror("rt_band_get_pixel_line: Could not allocate memory for pixel values");
+		return ES_ERROR;
+	}
+
+	/* copy pixels */
+	memcpy(_vals, ptr, _nvals * pixsize);
+
+	*vals = _vals;
+	*nvals = _nvals;
+
+	return ES_NONE;
+}
+
+/**
+ * Get pixel value. If band's isnodata flag is TRUE, value returned 
+ * will be the band's NODATA value
+ *
+ * @param band : the band to set nodata value to
+ * @param x : x ordinate (0-based)
+ * @param y : x ordinate (0-based)
+ * @param *value : pixel value
+ * @param *nodata : 0 if pixel is not NODATA
+ *
+ * @return 0 on success, -1 on error (value out of valid range).
+ */
+rt_errorstate
+rt_band_get_pixel(
+	rt_band band,
+	int x, int y,
+	double *value,
+	int *nodata
+) {
+	rt_pixtype pixtype = PT_END;
+	uint8_t* data = NULL;
+	uint32_t offset = 0; 
+
+	assert(NULL != band);
+	assert(NULL != value);
+
+	/* set nodata to 0 */
+	if (nodata != NULL)
+		*nodata = 0;
+
+	if (
+		x < 0 || x >= band->width ||
+		y < 0 || y >= band->height
+	) {
+		rtwarn("Attempting to get pixel value with out of range raster coordinates: (%d, %d)", x, y);
+		return ES_ERROR;
+	}
+
+	/* band is NODATA */
+	if (band->isnodata) {
+		RASTER_DEBUG(3, "Band's isnodata flag is TRUE. Returning NODATA value");
+		*value = band->nodataval;
+		if (nodata != NULL) *nodata = 1;
+		return ES_NONE;
+	}
+
+	data = rt_band_get_data(band);
+	if (data == NULL) {
+		rterror("rt_band_get_pixel: Cannot get band data");
+		return ES_ERROR;
+	}
+
+	/* +1 for the nodata value */
+	offset = x + (y * band->width);
+
+	pixtype = band->pixtype;
+
+	switch (pixtype) {
+		case PT_1BB:
+#ifdef OPTIMIZE_SPACE
+			{
+				int byteOffset = offset / 8;
+				int bitOffset = offset % 8;
+				data += byteOffset;
+
+				/* Bit to set is bitOffset into data */
+				*value = getBits(data, val, 1, bitOffset);
+				break;
+			}
+#endif
+		case PT_2BUI:
+#ifdef OPTIMIZE_SPACE
+			{
+				int byteOffset = offset / 4;
+				int bitOffset = offset % 4;
+				data += byteOffset;
+
+				/* Bits to set start at bitOffset into data */
+				*value = getBits(data, val, 2, bitOffset);
+				break;
+			}
+#endif
+		case PT_4BUI:
+#ifdef OPTIMIZE_SPACE
+			{
+				int byteOffset = offset / 2;
+				int bitOffset = offset % 2;
+				data += byteOffset;
+
+				/* Bits to set start at bitOffset into data */
+				*value = getBits(data, val, 2, bitOffset);
+				break;
+			}
+#endif
+		case PT_8BSI: {
+			int8_t val = data[offset];
+			*value = val;
+			break;
+		}
+		case PT_8BUI: {
+			uint8_t val = data[offset];
+			*value = val;
+			break;
+		}
+		case PT_16BSI: {
+			int16_t *ptr = (int16_t*) data; /* we assume correct alignment */
+			*value = ptr[offset];
+			break;
+		}
+		case PT_16BUI: {
+			uint16_t *ptr = (uint16_t*) data; /* we assume correct alignment */
+			*value = ptr[offset];
+			break;
+		}
+		case PT_32BSI: {
+			int32_t *ptr = (int32_t*) data; /* we assume correct alignment */
+			*value = ptr[offset];
+			break;
+		}
+		case PT_32BUI: {
+			uint32_t *ptr = (uint32_t*) data; /* we assume correct alignment */
+			*value = ptr[offset];
+			break;
+		}
+		case PT_32BF: {
+			float *ptr = (float*) data; /* we assume correct alignment */
+			*value = ptr[offset];
+			break;
+		}
+		case PT_64BF: {
+			double *ptr = (double*) data; /* we assume correct alignment */
+			*value = ptr[offset];
+			break;
+		}
+		default: {
+			rterror("rt_band_get_pixel: Unknown pixeltype %d", pixtype);
+			return ES_ERROR;
+		}
+	}
+
+	/* set NODATA flag */
+	if (band->hasnodata && nodata != NULL) {
+		if (rt_band_clamped_value_is_nodata(band, *value))
+			*nodata = 1;
+	}
+
+	return ES_NONE;
+}
+
+/**
+ * Get nearest pixel(s) with value (not NODATA) to specified pixel
+ *
+ * @param band : the band to get nearest pixel(s) from
+ * @param x : the column of the pixel (0-based)
+ * @param y : the line of the pixel (0-based)
+ * @param distancex : the number of pixels around the specified pixel
+ * along the X axis
+ * @param distancey : the number of pixels around the specified pixel
+ * along the Y axis
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * to check for pixels with value
+ * @param npixels : return set of rt_pixel object or NULL
+ *
+ * @return -1 on error, otherwise the number of rt_pixel objects
+ * in npixels
+ */
+int rt_band_get_nearest_pixel(
+	rt_band band,
+	int x, int y,
+	uint16_t distancex, uint16_t distancey,
+	int exclude_nodata_value,
+	rt_pixel *npixels
+) {
+	rt_pixel npixel = NULL;
+	int extent[4] = {0};
+	int max_extent[4] = {0};
+	int d0 = 0;
+	int distance[2] = {0};
+	uint32_t _d[2] = {0};
+	uint32_t i = 0;
+	uint32_t j = 0;
+	uint32_t k = 0;
+	int _max = 0;
+	int _x = 0;
+	int _y = 0;
+	int *_min = NULL;
+	double pixval = 0;
+	double minval = 0;
+	uint32_t count = 0;
+	int isnodata = 0;
+
+	int inextent = 0;
+
+	assert(NULL != band);
+	assert(NULL != npixels);
+
+	RASTER_DEBUG(3, "Starting");
+
+	/* process distance */
+	distance[0] = distancex;
+	distance[1] = distancey;
+
+	/* no distance, means get nearest pixels and return */
+	if (!distance[0] && !distance[1])
+		d0 = 1;
+
+	RASTER_DEBUGF(4, "Selected pixel: %d x %d", x, y);
+	RASTER_DEBUGF(4, "Distances: %d x %d", distance[0], distance[1]);
+
+	/* shortcuts if outside band extent */
+	if (
+		exclude_nodata_value && (
+			(x < 0 || x > band->width) ||
+			(y < 0 || y > band->height)
+		)
+	) {
+		/* no distances specified, jump to pixel close to extent */
+		if (d0) {
+			if (x < 0)
+				x = -1;
+			else if (x > band->width)
+				x = band->width;
+
+			if (y < 0)
+				y = -1;
+			else if (y > band->height)
+				y = band->height;
+
+			RASTER_DEBUGF(4, "Moved selected pixel: %d x %d", x, y);
+		}
+		/*
+			distances specified
+			if distances won't capture extent of band, return 0
+		*/
+		else if (
+			((x < 0 && abs(x) > distance[0]) || (x - band->width >= distance[0])) ||
+			((y < 0 && abs(y) > distance[1]) || (y - band->height >= distance[1]))
+		) {
+			RASTER_DEBUG(4, "No nearest pixels possible for provided pixel and distances");
+			return 0;
+		}
+	}
+
+	/* no NODATA, exclude is FALSE */
+	if (!band->hasnodata)
+		exclude_nodata_value = FALSE;
+	/* band is NODATA and excluding NODATA */
+	else if (exclude_nodata_value && band->isnodata) {
+		RASTER_DEBUG(4, "No nearest pixels possible as band is NODATA and excluding NODATA values");
+		return 0;
+	}
+
+	/* determine the maximum distance to prevent an infinite loop */
+	if (d0) {
+		int a, b;
+
+		/* X axis */
+		a = abs(x);
+		b = abs(x - band->width);
+
+		if (a > b)
+			distance[0] = a;
+		else
+			distance[0] = b;
+
+		/* Y axis */
+		a = abs(y);
+		b = abs(y - band->height);
+		if (a > b)
+			distance[1] = a;
+		else
+			distance[1] = b;
+
+		RASTER_DEBUGF(4, "Maximum distances: %d x %d", distance[0], distance[1]);
+	}
+
+	/* minimum possible value for pixel type */
+	minval = rt_pixtype_get_min_value(band->pixtype);
+	RASTER_DEBUGF(4, "pixtype: %s", rt_pixtype_name(band->pixtype));
+	RASTER_DEBUGF(4, "minval: %f", minval);
+
+	/* set variables */
+	count = 0;
+	*npixels = NULL;
+
+	/* maximum extent */
+	max_extent[0] = x - distance[0]; /* min X */
+	max_extent[1] = y - distance[1]; /* min Y */
+	max_extent[2] = x + distance[0]; /* max X */
+	max_extent[3] = y + distance[1]; /* max Y */
+	RASTER_DEBUGF(4, "Maximum Extent: (%d, %d, %d, %d)",
+		max_extent[0], max_extent[1], max_extent[2], max_extent[3]);
+
+	_d[0] = 0;
+	_d[1] = 0;
+	do {
+		_d[0]++;
+		_d[1]++;
+
+		extent[0] = x - _d[0]; /* min x */
+		extent[1] = y - _d[1]; /* min y */
+		extent[2] = x + _d[0]; /* max x */
+		extent[3] = y + _d[1]; /* max y */
+
+		RASTER_DEBUGF(4, "Processing distances: %d x %d", _d[0], _d[1]);
+		RASTER_DEBUGF(4, "Extent: (%d, %d, %d, %d)",
+			extent[0], extent[1], extent[2], extent[3]);
+
+		for (i = 0; i < 2; i++) {
+
+			/* by row */
+			if (i < 1)
+				_max = extent[2] - extent[0] + 1;
+			/* by column */
+			else
+				_max = extent[3] - extent[1] + 1;
+			_max = abs(_max);
+
+			for (j = 0; j < 2; j++) {
+				/* by row */
+				if (i < 1) {
+					_x = extent[0];
+					_min = &_x;
+
+					/* top row */
+					if (j < 1)
+						_y = extent[1];
+					/* bottom row */
+					else
+						_y = extent[3];
+				}
+				/* by column */
+				else {
+					_y = extent[1] + 1;
+					_min = &_y;
+
+					/* left column */
+					if (j < 1) {
+						_x = extent[0];
+						_max -= 2;
+					}
+					/* right column */
+					else
+						_x = extent[2];
+				}
+
+				RASTER_DEBUGF(4, "_min, _max: %d, %d", *_min, _max);
+				for (k = 0; k < _max; k++) {
+					/* check that _x and _y are not outside max extent */
+					if (
+						_x < max_extent[0] || _x > max_extent[2] ||
+						_y < max_extent[1] || _y > max_extent[3]
+					) {
+						(*_min)++;
+						continue;
+					}
+
+					/* outside band extent, set to NODATA */
+					if (
+						(_x < 0 || _x >= band->width) ||
+						(_y < 0 || _y >= band->height)
+					) {
+						/* no NODATA, set to minimum possible value */
+						if (!band->hasnodata)
+							pixval = minval;
+						/* has NODATA, use NODATA */
+						else
+							pixval = band->nodataval;
+						RASTER_DEBUGF(4, "NODATA pixel outside band extent: (x, y, val) = (%d, %d, %f)", _x, _y, pixval);
+						inextent = 0;
+						isnodata = 1;
+					}
+					else {
+						if (rt_band_get_pixel(
+							band,
+							_x, _y,
+							&pixval,
+							&isnodata
+						) != ES_NONE) {
+							rterror("rt_band_get_nearest_pixel: Could not get pixel value");
+							if (count) rtdealloc(*npixels);
+							return -1;
+						}
+						RASTER_DEBUGF(4, "Pixel: (x, y, val) = (%d, %d, %f)", _x, _y, pixval);
+						inextent = 1;
+					}
+
+					/* use pixval? */
+					if (!exclude_nodata_value || (exclude_nodata_value && !isnodata)) {
+						/* add pixel to result set */
+						RASTER_DEBUGF(4, "Adding pixel to set of nearest pixels: (x, y, val) = (%d, %d, %f)", _x, _y, pixval);
+						count++;
+
+						if (*npixels == NULL)
+							*npixels = (rt_pixel) rtalloc(sizeof(struct rt_pixel_t) * count);
+						else
+							*npixels = (rt_pixel) rtrealloc(*npixels, sizeof(struct rt_pixel_t) * count);
+						if (*npixels == NULL) {
+							rterror("rt_band_get_nearest_pixel: Could not allocate memory for nearest pixel(s)");
+							return -1;
+						}
+
+						npixel = &((*npixels)[count - 1]);
+						npixel->x = _x;
+						npixel->y = _y;
+						npixel->value = pixval;
+
+						/* special case for when outside band extent */
+						if (!inextent && !band->hasnodata)
+							npixel->nodata = 1;
+						else
+							npixel->nodata = 0;
+					}
+
+					(*_min)++;
+				}
+			}
+		}
+
+		/* distance threshholds met */
+		if (_d[0] >= distance[0] && _d[1] >= distance[1])
+			break;
+		else if (d0 && count)
+			break;
+	}
+	while (1);
+
+	RASTER_DEBUGF(3, "Nearest pixels in return: %d", count);
+
+	return count;
+}
+
+/**
+ * Search band for pixel(s) with search values
+ *
+ * @param band : the band to query for minimum and maximum pixel values
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * @param searchset : array of values to count
+ * @param searchcount : the number of search values
+ * @param pixels : pixels with the search value
+ *
+ * @return -1 on error, otherwise number of pixels
+ */
+int
+rt_band_get_pixel_of_value(
+	rt_band band, int exclude_nodata_value,
+	double *searchset, int searchcount,
+	rt_pixel *pixels
+) {
+	int x;
+	int y;
+	int i;
+	double pixval;
+	int err;
+	int count = 0;
+	int isnodata = 0;
+	int isequal = 0;
+
+	rt_pixel pixel = NULL;
+
+	assert(NULL != band);
+	assert(NULL != pixels);
+	assert(NULL != searchset && searchcount > 0);
+
+	if (!band->hasnodata)
+		exclude_nodata_value = FALSE;
+	/* band is NODATA and exclude_nodata_value = TRUE, nothing to search */
+	else if (exclude_nodata_value && band->isnodata) {
+		RASTER_DEBUG(4, "Pixels cannot be searched as band is NODATA and excluding NODATA values");
+		return 0;
+	}
+
+	for (x = 0; x < band->width; x++) {
+		for (y = 0; y < band->height; y++) {
+			err = rt_band_get_pixel(band, x, y, &pixval, &isnodata);
+			if (err != ES_NONE) {
+				rterror("rt_band_get_pixel_of_value: Cannot get band pixel");
+				return -1;
+			}
+			else if (exclude_nodata_value && isnodata)
+				continue;
+
+			for (i = 0; i < searchcount; i++) {
+				if (rt_pixtype_compare_clamped_values(band->pixtype, searchset[i], pixval, &isequal) != ES_NONE) {
+					continue;
+				}
+
+				if (FLT_NEQ(pixval, searchset[i]) || !isequal)
+					continue;
+
+				/* match found */
+				count++;
+				if (*pixels == NULL)
+					*pixels = (rt_pixel) rtalloc(sizeof(struct rt_pixel_t) * count);
+				else
+					*pixels = (rt_pixel) rtrealloc(*pixels, sizeof(struct rt_pixel_t) * count);
+				if (*pixels == NULL) {
+					rterror("rt_band_get_pixel_of_value: Could not allocate memory for pixel(s)");
+					return -1;
+				}
+
+				pixel = &((*pixels)[count - 1]);
+				pixel->x = x;
+				pixel->y = y;
+				pixel->nodata = 0;
+				pixel->value = pixval;
+			}
+		}
+	}
+
+	return count;
+}
+
+/**
+ * Get NODATA value
+ *
+ * @param band : the band whose NODATA value will be returned
+ * @param nodata : the band's NODATA value
+ *
+ * @return ES_NONE or ES_ERROR
+ */
+rt_errorstate
+rt_band_get_nodata(rt_band band, double *nodata) { 
+	assert(NULL != band);
+	assert(NULL != nodata);
+
+	*nodata = band->nodataval;
+
+	if (!band->hasnodata) {
+		rterror("rt_band_get_nodata: Band has no NODATA value");
+		return ES_ERROR;
+	}
+
+	return ES_NONE;
+}
+
+double
+rt_band_get_min_value(rt_band band) {
+	assert(NULL != band);
+
+	return rt_pixtype_get_min_value(band->pixtype);
+}
+
+int
+rt_band_check_is_nodata(rt_band band) {
+	int i, j, err;
+	double pxValue;
+	int isnodata = 0;
+
+	assert(NULL != band);
+
+	/* Check if band has nodata value */
+	if (!band->hasnodata) {
+		RASTER_DEBUG(3, "Band has no NODATA value");
+		band->isnodata = FALSE;
+		return FALSE;
+	}
+
+	pxValue = band->nodataval;
+
+	/* Check all pixels */
+	for (i = 0; i < band->width; i++) {
+		for (j = 0; j < band->height; j++) {
+			err = rt_band_get_pixel(band, i, j, &pxValue, &isnodata);
+			if (err != ES_NONE) {
+				rterror("rt_band_check_is_nodata: Cannot get band pixel");
+				return FALSE;
+			}
+			else if (!isnodata) {
+				band->isnodata = FALSE;
+				return FALSE;
+			}
+		}
+	}
+
+	band->isnodata = TRUE;
+	return TRUE;
+}
+
+/**
+ * Compare clamped value to band's clamped NODATA value.
+ *
+ * @param band : the band whose NODATA value will be used for comparison
+ * @param val : the value to compare to the NODATA value
+ *
+ * @return 2 if unclamped value is unclamped NODATA
+ *         1 if clamped value is clamped NODATA
+ *         0 if clamped value is NOT clamped NODATA
+ */
+int
+rt_band_clamped_value_is_nodata(rt_band band, double val) {
+	int isequal = 0;
+
+	assert(NULL != band);
+
+	/* no NODATA, so never equal */
+	if (!band->hasnodata)
+		return 0;
+
+	/* value is exactly NODATA */
+	if (FLT_EQ(val, band->nodataval))
+		return 2;
+
+	/* ignore error from rt_pixtype_compare_clamped_values */
+	rt_pixtype_compare_clamped_values(
+		band->pixtype,
+		val, band->nodataval,
+		&isequal
+	);
+
+	return isequal ? 1 : 0;
+}
+
+/**
+ * Correct value when clamped value is equal to clamped NODATA value.
+ * Correction does NOT occur if unclamped value is exactly unclamped
+ * NODATA value.
+ * 
+ * @param band : the band whose NODATA value will be used for comparison
+ * @param val : the value to compare to the NODATA value and correct
+ * @param *newval : pointer to corrected value
+ * @param *corrected : (optional) non-zero if val was corrected
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_band_corrected_clamped_value(
+	rt_band band,
+	double val,
+	double *newval, int *corrected
+) {
+	double minval = 0.;
+
+	assert(NULL != band);
+	assert(NULL != newval);
+
+	if (corrected != NULL)
+		*corrected = 0;
+
+	/* no need to correct if clamped values IS NOT clamped NODATA */
+	if (rt_band_clamped_value_is_nodata(band, val) != 1) {
+		*newval = val;
+		return ES_NONE;
+	}
+
+	minval = rt_pixtype_get_min_value(band->pixtype);
+	*newval = val;
+
+	switch (band->pixtype) {
+		case PT_1BB:
+			*newval = !band->nodataval;
+			break;
+		case PT_2BUI:
+			if (rt_util_clamp_to_2BUI(val) == rt_util_clamp_to_2BUI(minval))
+				(*newval)++;
+			else
+				(*newval)--;
+			break;
+		case PT_4BUI:
+			if (rt_util_clamp_to_4BUI(val) == rt_util_clamp_to_4BUI(minval))
+				(*newval)++;
+			else
+				(*newval)--;
+			break;
+		case PT_8BSI:
+			if (rt_util_clamp_to_8BSI(val) == rt_util_clamp_to_8BSI(minval))
+				(*newval)++;
+			else
+				(*newval)--;
+			break;
+		case PT_8BUI:
+			if (rt_util_clamp_to_8BUI(val) == rt_util_clamp_to_8BUI(minval))
+				(*newval)++;
+			else
+				(*newval)--;
+			break;
+		case PT_16BSI:
+			if (rt_util_clamp_to_16BSI(val) == rt_util_clamp_to_16BSI(minval))
+				(*newval)++;
+			else
+				(*newval)--;
+			break;
+		case PT_16BUI:
+			if (rt_util_clamp_to_16BUI(val) == rt_util_clamp_to_16BUI(minval))
+				(*newval)++;
+			else
+				(*newval)--;
+			break;
+		case PT_32BSI:
+			if (rt_util_clamp_to_32BSI(val) == rt_util_clamp_to_32BSI(minval))
+				(*newval)++;
+			else
+				(*newval)--;
+			break;
+		case PT_32BUI:
+			if (rt_util_clamp_to_32BUI(val) == rt_util_clamp_to_32BUI(minval))
+				(*newval)++;
+			else
+				(*newval)--;
+			break;
+		case PT_32BF:
+			if (FLT_EQ(rt_util_clamp_to_32F(val), rt_util_clamp_to_32F(minval)))
+				*newval += FLT_EPSILON;
+			else
+				*newval -= FLT_EPSILON;
+			break;
+		case PT_64BF:
+			break;
+		default:
+			rterror("rt_band_corrected_clamped_value: Unknown pixeltype %d", band->pixtype);
+			return ES_ERROR;
+	}
+
+	if (corrected != NULL)
+		*corrected = 1;
+
+	return ES_NONE;
+}
+
diff --git a/raster/rt_core/rt_context.c b/raster/rt_core/rt_context.c
new file mode 100644
index 0000000..c67f3c3
--- /dev/null
+++ b/raster/rt_core/rt_context.c
@@ -0,0 +1,302 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <stdarg.h> /* for va_list, va_start etc */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+
+/******************************************************************************
+* rt_context
+******************************************************************************/
+
+/* Functions definitions */
+void * init_rt_allocator(size_t size);
+void * init_rt_reallocator(void * mem, size_t size);
+void init_rt_deallocator(void * mem);
+void init_rt_errorreporter(const char * fmt, va_list ap);
+void init_rt_warnreporter(const char * fmt, va_list ap);
+void init_rt_inforeporter(const char * fmt, va_list ap);
+
+/*
+ * Default allocators
+ *
+ * We include some default allocators that use malloc/free/realloc
+ * along with stdout/stderr since this is the most common use case
+ *
+ */
+void *
+default_rt_allocator(size_t size)
+{
+    void *mem = malloc(size);
+    return mem;
+}
+
+void *
+default_rt_reallocator(void *mem, size_t size)
+{
+    void *ret = realloc(mem, size);
+    return ret;
+}
+
+void
+default_rt_deallocator(void *mem)
+{
+    free(mem);
+}
+
+void
+default_rt_error_handler(const char *fmt, va_list ap) {
+
+    static const char *label = "ERROR: ";
+    char newfmt[1024] = {0};
+    snprintf(newfmt, 1024, "%s%s\n", label, fmt);
+    newfmt[1023] = '\0';
+
+    vprintf(newfmt, ap);
+
+    va_end(ap);
+}
+
+void
+default_rt_warning_handler(const char *fmt, va_list ap) {
+
+    static const char *label = "WARNING: ";
+    char newfmt[1024] = {0};
+    snprintf(newfmt, 1024, "%s%s\n", label, fmt);
+    newfmt[1023] = '\0';
+
+    vprintf(newfmt, ap);
+
+    va_end(ap);
+}
+
+void
+default_rt_info_handler(const char *fmt, va_list ap) {
+
+    static const char *label = "INFO: ";
+    char newfmt[1024] = {0};
+    snprintf(newfmt, 1024, "%s%s\n", label, fmt);
+    newfmt[1023] = '\0';
+
+    vprintf(newfmt, ap);
+
+    va_end(ap);
+}
+
+/**
+ * Struct definition here
+ */
+struct rt_context_t {
+    rt_allocator alloc;
+    rt_reallocator realloc;
+    rt_deallocator dealloc;
+    rt_message_handler err;
+    rt_message_handler warn;
+    rt_message_handler info;
+};
+
+/* Static variable, to be used for all rt_core functions */
+static struct rt_context_t ctx_t = {
+    .alloc = init_rt_allocator,
+    .realloc = init_rt_reallocator,
+    .dealloc = init_rt_deallocator,
+    .err = init_rt_errorreporter,
+    .warn = init_rt_warnreporter,
+    .info = init_rt_inforeporter
+};
+
+
+/**
+ * This function is normally called by rt_init_allocators when no special memory
+ * management is needed. Useful in raster core testing and in the (future)
+ * loader, when we need to use raster core functions but we don't have
+ * PostgreSQL backend behind. We must take care of memory by ourselves in those
+ * situations
+ */
+void
+rt_install_default_allocators(void)
+{
+    ctx_t.alloc = default_rt_allocator;
+    ctx_t.realloc = default_rt_reallocator;
+    ctx_t.dealloc = default_rt_deallocator;
+    ctx_t.err = default_rt_error_handler;
+    ctx_t.info = default_rt_info_handler;
+    ctx_t.warn = default_rt_warning_handler;
+}
+
+
+/**
+ * This function is called by rt_init_allocators when the PostgreSQL backend is
+ * taking care of the memory and we want to use palloc family
+ */
+void
+rt_set_handlers(rt_allocator allocator, rt_reallocator reallocator,
+        rt_deallocator deallocator, rt_message_handler error_handler,
+        rt_message_handler info_handler, rt_message_handler warning_handler) {
+
+    ctx_t.alloc = allocator;
+    ctx_t.realloc = reallocator;
+    ctx_t.dealloc = deallocator;
+
+    ctx_t.err = error_handler;
+    ctx_t.info = info_handler;
+    ctx_t.warn = warning_handler;
+}
+
+/**
+ * Initialisation allocators
+ *
+ * These are used the first time any of the allocators are called to enable
+ * executables/libraries that link into raster to be able to set up their own
+ * allocators. This is mainly useful for older PostgreSQL versions that don't
+ * have functions that are called upon startup.
+ **/
+void *
+init_rt_allocator(size_t size)
+{
+    rt_init_allocators();
+
+    return ctx_t.alloc(size);
+}
+
+void
+init_rt_deallocator(void *mem)
+{
+    rt_init_allocators();
+
+    ctx_t.dealloc(mem);
+}
+
+
+void *
+init_rt_reallocator(void *mem, size_t size)
+{
+    rt_init_allocators();
+
+    return ctx_t.realloc(mem, size);
+}
+
+void
+init_rt_inforeporter(const char *fmt, va_list ap)
+{
+    rt_init_allocators();
+
+    (*ctx_t.info)(fmt, ap);
+}
+
+void
+init_rt_warnreporter(const char *fmt, va_list ap)
+{
+    rt_init_allocators();
+
+    (*ctx_t.warn)(fmt, ap);
+}
+
+
+void
+init_rt_errorreporter(const char *fmt, va_list ap)
+{
+    rt_init_allocators();
+
+    (*ctx_t.err)(fmt, ap);
+
+}
+
+
+
+/**
+ * Raster core memory management functions.
+ *
+ * They use the functions defined by the caller.
+ */
+void *
+rtalloc(size_t size) {
+    void * mem = ctx_t.alloc(size);
+    RASTER_DEBUGF(5, "rtalloc called: %d@%p", size, mem);
+    return mem;
+}
+
+
+void *
+rtrealloc(void * mem, size_t size) {
+    void * result = ctx_t.realloc(mem, size);
+    RASTER_DEBUGF(5, "rtrealloc called: %d@%p", size, result);
+    return result;
+}
+
+void
+rtdealloc(void * mem) {
+    ctx_t.dealloc(mem);
+    RASTER_DEBUG(5, "rtdealloc called");
+}
+
+/**
+ * Raster core error and info handlers
+ *
+ * Since variadic functions cannot pass their parameters directly, we need
+ * wrappers for these functions to convert the arguments into a va_list
+ * structure.
+ */
+void
+rterror(const char *fmt, ...) {
+    va_list ap;
+
+    va_start(ap, fmt);
+
+    /* Call the supplied function */
+    (*ctx_t.err)(fmt, ap);
+
+    va_end(ap);
+}
+
+void
+rtinfo(const char *fmt, ...) {
+    va_list ap;
+
+    va_start(ap, fmt);
+
+    /* Call the supplied function */
+    (*ctx_t.info)(fmt, ap);
+
+    va_end(ap);
+}
+
+
+void
+rtwarn(const char *fmt, ...) {
+    va_list ap;
+
+    va_start(ap, fmt);
+
+    /* Call the supplied function */
+    (*ctx_t.warn)(fmt, ap);
+
+    va_end(ap);
+}
diff --git a/raster/rt_core/rt_geometry.c b/raster/rt_core/rt_geometry.c
new file mode 100644
index 0000000..47d6f9e
--- /dev/null
+++ b/raster/rt_core/rt_geometry.c
@@ -0,0 +1,1326 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+#include "rt_serialize.h"
+
+/******************************************************************************
+* rt_raster_perimeter()
+******************************************************************************/
+
+static rt_errorstate
+_rti_raster_get_band_perimeter(rt_band band, uint16_t *trim) {
+	uint16_t width = 0;
+	uint16_t height = 0;
+	int x = 0;
+	int y = 0;
+	int offset = 0;
+	int done[4] = {0};
+	double value = 0;
+	int nodata = 0;
+
+	assert(band != NULL);
+	assert(band->raster != NULL);
+	assert(trim != NULL);
+
+	memset(trim, 0, sizeof(uint16_t) * 4);
+
+	width = rt_band_get_width(band);
+	height = rt_band_get_height(band);
+		
+	/* top */
+	for (y = 0; y < height; y++) {
+		for (offset = 0; offset < 3; offset++) {
+			/* every third pixel */
+			for (x = offset; x < width; x += 3) {
+				if (rt_band_get_pixel(band, x, y, &value, &nodata) != ES_NONE) {
+					rterror("_rti_raster_get_band_perimeter: Could not get band pixel");
+					return ES_ERROR;
+				}
+
+				RASTER_DEBUGF(4, "top (x, y, value, nodata) = (%d, %d, %f, %d)", x, y, value, nodata);
+				if (!nodata) {
+					trim[0] = y;
+					done[0] = 1;
+					break;
+				}
+			}
+
+			if (done[0])
+				break;
+		}
+
+		if (done[0])
+			break;
+	}
+
+	/* right */
+	for (x = width - 1; x >= 0; x--) {
+		for (offset = 0; offset < 3; offset++) {
+			/* every third pixel */
+			for (y = offset; y < height; y += 3) {
+				if (rt_band_get_pixel(band, x, y, &value, &nodata) != ES_NONE) {
+					rterror("_rti_raster_get_band_perimeter: Could not get band pixel");
+					return ES_ERROR;
+				}
+
+				RASTER_DEBUGF(4, "right (x, y, value, nodata) = (%d, %d, %f, %d)", x, y, value, nodata);
+				if (!nodata) {
+					trim[1] = width - (x + 1);
+					done[1] = 1;
+					break;
+				}
+			}
+
+			if (done[1])
+				break;
+		}
+
+		if (done[1])
+			break;
+	}
+
+	/* bottom */
+	for (y = height - 1; y >= 0; y--) {
+		for (offset = 0; offset < 3; offset++) {
+			/* every third pixel */
+			for (x = offset; x < width; x += 3) {
+				if (rt_band_get_pixel(band, x, y, &value, &nodata) != ES_NONE) {
+					rterror("_rti_raster_get_band_perimeter: Could not get band pixel");
+					return ES_ERROR;
+				}
+
+				RASTER_DEBUGF(4, "bottom (x, y, value, nodata) = (%d, %d, %f, %d)", x, y, value, nodata);
+				if (!nodata) {
+					trim[2] = height - (y + 1);
+					done[2] = 1;
+					break;
+				}
+			}
+
+			if (done[2])
+				break;
+		}
+
+		if (done[2])
+			break;
+	}
+
+	/* left */
+	for (x = 0; x < width; x++) {
+		for (offset = 0; offset < 3; offset++) {
+			/* every third pixel */
+			for (y = offset; y < height; y += 3) {
+				if (rt_band_get_pixel(band, x, y, &value, &nodata) != ES_NONE) {
+					rterror("_rti_raster_get_band_perimeter: Could not get band pixel");
+					return ES_ERROR;
+				}
+
+				RASTER_DEBUGF(4, "left (x, , value, nodata) = (%d, %d, %f, %d)", x, y, value, nodata);
+				if (!nodata) {
+					trim[3] = x;
+					done[3] = 1;
+					break;
+				}
+			}
+
+			if (done[3])
+				break;
+		}
+
+		if (done[3])
+			break;
+	}
+
+	RASTER_DEBUGF(4, "trim = (%d, %d, %d, %d)",
+		trim[0], trim[1], trim[2], trim[3]);
+
+	return ES_NONE;
+}
+
+/**
+ * Get raster perimeter
+ *
+ * The perimeter is a 4 vertices (5 to be closed)
+ * single ring polygon bearing the raster's rotation and using
+ * projection coordinates.
+ *
+ * @param raster : the raster to get info from
+ * @param nband : the band for the perimeter. 0-based
+ * value less than zero means all bands
+ * @param **perimeter : pointer to perimeter
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_get_perimeter(
+	rt_raster raster, int nband,
+	LWGEOM **perimeter
+) {
+	rt_band band = NULL;
+	int numband = 0;
+	uint16_t *_nband = NULL;
+	int i = 0;
+	int j = 0;
+	uint16_t _trim[4] = {0};
+	uint16_t trim[4] = {0}; /* top, right, bottom, left */
+	int isset[4] = {0};
+	double gt[6] = {0.0};
+	int srid = SRID_UNKNOWN;
+
+	POINTARRAY *pts = NULL;
+	POINT4D p4d;
+	POINTARRAY **rings = NULL;
+	LWPOLY* poly = NULL;
+
+	assert(perimeter != NULL);
+
+	*perimeter = NULL;
+
+	/* empty raster, no perimeter */
+	if (rt_raster_is_empty(raster))
+		return ES_NONE;
+
+	/* raster metadata */
+	srid = rt_raster_get_srid(raster);
+	rt_raster_get_geotransform_matrix(raster, gt);
+	numband = rt_raster_get_num_bands(raster);
+
+	RASTER_DEBUGF(3, "rt_raster_get_perimeter: raster is %dx%d", raster->width, raster->height); 
+
+	/* nband < 0 means all bands */
+	if (nband >= 0) {
+		if (nband >= numband) {
+			rterror("rt_raster_get_boundary: Band %d not found for raster", nband);
+			return ES_ERROR;
+		}
+
+		numband = 1;
+	}
+	else
+		nband = -1;
+	
+	RASTER_DEBUGF(3, "rt_raster_get_perimeter: nband, numband = %d, %d", nband, numband); 
+
+	_nband = rtalloc(sizeof(uint16_t) * numband);
+	if (_nband == NULL) {
+		rterror("rt_raster_get_boundary: Could not allocate memory for band indices");
+		return ES_ERROR;
+	}
+
+	if (nband < 0) {
+		for (i = 0; i < numband; i++)
+			_nband[i] = i;
+	}
+	else
+		_nband[0] = nband;
+
+	for (i = 0; i < numband; i++) {
+		band = rt_raster_get_band(raster, _nband[i]);
+		if (band == NULL) {
+			rterror("rt_raster_get_boundary: Could not get band at index %d", _nband[i]);
+			rtdealloc(_nband);
+			return ES_ERROR;
+		}
+
+		/* band is nodata */
+		if (rt_band_get_isnodata_flag(band) != 0)
+			continue;
+
+		if (_rti_raster_get_band_perimeter(band, trim) != ES_NONE) {
+			rterror("rt_raster_get_boundary: Could not get band perimeter");
+			rtdealloc(_nband);
+			return ES_ERROR;
+		}
+
+		for (j = 0; j < 4; j++) {
+			if (!isset[j] || trim[j] < _trim[j]) {
+				_trim[j] = trim[j];
+				isset[j] = 1;
+			}
+		}
+	}
+
+	/* no longer needed */
+	rtdealloc(_nband);
+
+	/* check isset, just need to check one element */
+	if (!isset[0]) {
+		/* return NULL as bands are empty */
+		return ES_NONE;
+	}
+
+	RASTER_DEBUGF(4, "trim = (%d, %d, %d, %d)",
+		trim[0], trim[1], trim[2], trim[3]);
+
+	/* only one ring */
+	rings = (POINTARRAY **) rtalloc(sizeof (POINTARRAY*));
+	if (!rings) {
+		rterror("rt_raster_get_perimeter: Could not allocate memory for polygon ring");
+		return ES_ERROR;
+	}
+	rings[0] = ptarray_construct(0, 0, 5);
+	if (!rings[0]) {
+		rterror("rt_raster_get_perimeter: Could not construct point array");
+		return ES_ERROR;
+	}
+	pts = rings[0];
+
+	/* Upper-left corner (first and last points) */
+	rt_raster_cell_to_geopoint(
+		raster,
+		_trim[3], _trim[0],
+		&p4d.x, &p4d.y,
+		gt
+	);
+	ptarray_set_point4d(pts, 0, &p4d);
+	ptarray_set_point4d(pts, 4, &p4d);
+
+	/* Upper-right corner (we go clockwise) */
+	rt_raster_cell_to_geopoint(
+		raster,
+		raster->width - _trim[1], _trim[0],
+		&p4d.x, &p4d.y,
+		gt
+	);
+	ptarray_set_point4d(pts, 1, &p4d);
+
+	/* Lower-right corner */
+	rt_raster_cell_to_geopoint(
+		raster,
+		raster->width - _trim[1], raster->height - _trim[2],
+		&p4d.x, &p4d.y,
+		gt
+	);
+	ptarray_set_point4d(pts, 2, &p4d);
+
+	/* Lower-left corner */
+	rt_raster_cell_to_geopoint(
+		raster,
+		_trim[3], raster->height - _trim[2],
+		&p4d.x, &p4d.y,
+		gt
+	);
+	ptarray_set_point4d(pts, 3, &p4d);
+
+	poly = lwpoly_construct(srid, 0, 1, rings);
+	*perimeter = lwpoly_as_lwgeom(poly);
+
+	return ES_NONE;
+}
+
+/******************************************************************************
+* rt_raster_surface()
+******************************************************************************/
+
+/**
+ * Get a raster as a surface (multipolygon).  If a band is specified,
+ * those pixels with value (not NODATA) contribute to the area
+ * of the output multipolygon.
+ *
+ * @param raster : the raster to convert to a multipolygon
+ * @param nband : the 0-based band of raster rast to use
+ *   if value is less than zero, bands are ignored.
+ * @param *surface : raster as a surface (multipolygon).
+ *   if all pixels are NODATA, NULL is set
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_raster_surface(rt_raster raster, int nband, LWMPOLY **surface) {
+	rt_band band = NULL;
+	LWGEOM *mpoly = NULL;
+	LWGEOM *tmp = NULL;
+	LWGEOM *clone = NULL;
+	rt_geomval gv = NULL;
+	int gvcount = 0;
+	GEOSGeometry *gc = NULL;
+	GEOSGeometry *gunion = NULL;
+	GEOSGeometry **geoms = NULL;
+	int geomscount = 0;
+	int i = 0;
+
+	assert(surface != NULL);
+
+	/* init *surface to NULL */
+	*surface = NULL;
+
+	/* raster is empty, surface = NULL */
+	if (rt_raster_is_empty(raster))
+		return ES_NONE;
+
+	/* if nband < 0, return the convex hull as a multipolygon */
+	if (nband < 0) {
+		/*
+			lwgeom_as_multi() only does a shallow clone internally
+			so input and output geometries may share memory
+			hence the deep clone of the output geometry for returning
+			is the only way to guarentee the memory isn't shared
+		*/
+		if (rt_raster_get_convex_hull(raster, &tmp) != ES_NONE) {
+			rterror("rt_raster_surface: Could not get convex hull of raster");
+			return ES_ERROR;
+		}
+		mpoly = lwgeom_as_multi(tmp);
+		clone = lwgeom_clone_deep(mpoly);
+		lwgeom_free(tmp);
+		lwgeom_free(mpoly);
+
+		*surface = lwgeom_as_lwmpoly(clone);
+		return ES_NONE;
+	}
+	/* check that nband is valid */
+	else if (nband >= rt_raster_get_num_bands(raster)) {
+		rterror("rt_raster_surface: The band index %d is invalid", nband);
+		return ES_ERROR;
+	}
+
+	/* get band */
+	band = rt_raster_get_band(raster, nband);
+	if (band == NULL) {
+		rterror("rt_raster_surface: Error getting band %d from raster", nband);
+		return ES_ERROR;
+	}
+
+	/* band does not have a NODATA flag, return convex hull */
+	if (!rt_band_get_hasnodata_flag(band)) {
+		/*
+			lwgeom_as_multi() only does a shallow clone internally
+			so input and output geometries may share memory
+			hence the deep clone of the output geometry for returning
+			is the only way to guarentee the memory isn't shared
+		*/
+		if (rt_raster_get_convex_hull(raster, &tmp) != ES_NONE) {
+			rterror("rt_raster_surface: Could not get convex hull of raster");
+			return ES_ERROR;
+		}
+		mpoly = lwgeom_as_multi(tmp);
+		clone = lwgeom_clone_deep(mpoly);
+		lwgeom_free(tmp);
+		lwgeom_free(mpoly);
+
+		*surface = lwgeom_as_lwmpoly(clone);
+		return ES_NONE;
+	}
+	/* band is NODATA, return NULL */
+	else if (rt_band_get_isnodata_flag(band)) {
+		RASTER_DEBUG(3, "Band is NODATA.  Returning NULL");
+		return ES_NONE;
+	}
+
+	/* initialize GEOS */
+	initGEOS(rtinfo, lwgeom_geos_error);
+
+	/* use gdal polygonize */
+	gv = rt_raster_gdal_polygonize(raster, nband, 1, &gvcount);
+	/* no polygons returned */
+	if (gvcount < 1) {
+		RASTER_DEBUG(3, "All pixels of band are NODATA.  Returning NULL");
+		if (gv != NULL) rtdealloc(gv);
+		return ES_NONE;
+	}
+	/* more than 1 polygon */
+	else if (gvcount > 1) {
+		/* convert LWPOLY to GEOSGeometry */
+		geomscount = gvcount;
+		geoms = rtalloc(sizeof(GEOSGeometry *) * geomscount);
+		if (geoms == NULL) {
+			rterror("rt_raster_surface: Could not allocate memory for pixel polygons as GEOSGeometry");
+			for (i = 0; i < gvcount; i++) lwpoly_free(gv[i].geom);
+			rtdealloc(gv);
+			return ES_ERROR;
+		}
+		for (i = 0; i < gvcount; i++) {
+#if POSTGIS_DEBUG_LEVEL > 3
+			{
+				char *wkt = lwgeom_to_wkt(lwpoly_as_lwgeom(gv[i].geom), WKT_ISO, DBL_DIG, NULL);
+				RASTER_DEBUGF(4, "geom %d = %s", i, wkt);
+				rtdealloc(wkt);
+			}
+#endif
+
+			geoms[i] = LWGEOM2GEOS(lwpoly_as_lwgeom(gv[i].geom), 0);
+			lwpoly_free(gv[i].geom);
+		}
+		rtdealloc(gv);
+
+		/* create geometry collection */
+#if POSTGIS_GEOS_VERSION >= 33
+		gc = GEOSGeom_createCollection(GEOS_GEOMETRYCOLLECTION, geoms, geomscount);
+#else
+		gc = GEOSGeom_createCollection(GEOS_MULTIPOLYGON, geoms, geomscount);
+#endif
+
+		if (gc == NULL) {
+#if POSTGIS_GEOS_VERSION >= 33
+			rterror("rt_raster_surface: Could not create GEOS GEOMETRYCOLLECTION from set of pixel polygons");
+#else
+			rterror("rt_raster_surface: Could not create GEOS MULTIPOLYGON from set of pixel polygons");
+#endif
+
+			for (i = 0; i < geomscount; i++)
+				GEOSGeom_destroy(geoms[i]);
+			rtdealloc(geoms);
+			return ES_ERROR;
+		}
+
+		/* run the union */
+#if POSTGIS_GEOS_VERSION >= 33
+		gunion = GEOSUnaryUnion(gc);
+#else
+		gunion = GEOSUnionCascaded(gc);
+#endif
+		GEOSGeom_destroy(gc);
+		rtdealloc(geoms);
+
+		if (gunion == NULL) {
+#if POSTGIS_GEOS_VERSION >= 33
+			rterror("rt_raster_surface: Could not union the pixel polygons using GEOSUnaryUnion()");
+#else
+			rterror("rt_raster_surface: Could not union the pixel polygons using GEOSUnionCascaded()");
+#endif
+			return ES_ERROR;
+		}
+
+		/* convert union result from GEOSGeometry to LWGEOM */
+		mpoly = GEOS2LWGEOM(gunion, 0);
+
+		/*
+			is geometry valid?
+			if not, try to make valid
+		*/
+		do {
+			LWGEOM *mpolyValid = NULL;
+
+#if POSTGIS_GEOS_VERSION < 33
+			break;
+#endif
+
+			if (GEOSisValid(gunion))
+				break;
+
+			/* make geometry valid */
+			mpolyValid = lwgeom_make_valid(mpoly);
+			if (mpolyValid == NULL) {
+				rtwarn("Cannot fix invalid geometry");
+				break;
+			}
+
+			lwgeom_free(mpoly);
+			mpoly = mpolyValid;
+		}
+		while (0);
+
+		GEOSGeom_destroy(gunion);
+	}
+	else {
+		mpoly = lwpoly_as_lwgeom(gv[0].geom);
+		rtdealloc(gv);
+
+#if POSTGIS_DEBUG_LEVEL > 3
+			{
+				char *wkt = lwgeom_to_wkt(mpoly, WKT_ISO, DBL_DIG, NULL);
+				RASTER_DEBUGF(4, "geom 0 = %s", wkt);
+				rtdealloc(wkt);
+			}
+#endif
+	}
+
+	/* specify SRID */
+	lwgeom_set_srid(mpoly, rt_raster_get_srid(raster));
+
+	if (mpoly != NULL) {
+		/* convert to multi */
+		if (!lwgeom_is_collection(mpoly)) {
+			tmp = mpoly;
+
+#if POSTGIS_DEBUG_LEVEL > 3
+			{
+				char *wkt = lwgeom_to_wkt(mpoly, WKT_ISO, DBL_DIG, NULL);
+				RASTER_DEBUGF(4, "before multi = %s", wkt);
+				rtdealloc(wkt);
+			}
+#endif
+
+			RASTER_DEBUGF(4, "mpoly @ %p", mpoly);
+
+			/*
+				lwgeom_as_multi() only does a shallow clone internally
+				so input and output geometries may share memory
+				hence the deep clone of the output geometry for returning
+				is the only way to guarentee the memory isn't shared
+			*/
+			mpoly = lwgeom_as_multi(tmp);
+			clone = lwgeom_clone_deep(mpoly);
+			lwgeom_free(tmp);
+			lwgeom_free(mpoly);
+			mpoly = clone;
+
+			RASTER_DEBUGF(4, "mpoly @ %p", mpoly);
+
+#if POSTGIS_DEBUG_LEVEL > 3
+			{
+				char *wkt = lwgeom_to_wkt(mpoly, WKT_ISO, DBL_DIG, NULL);
+				RASTER_DEBUGF(4, "after multi = %s", wkt);
+				rtdealloc(wkt);
+			}
+#endif
+		}
+
+#if POSTGIS_DEBUG_LEVEL > 3
+		{
+			char *wkt = lwgeom_to_wkt(mpoly, WKT_ISO, DBL_DIG, NULL);
+			RASTER_DEBUGF(4, "returning geometry = %s", wkt);
+			rtdealloc(wkt);
+		}
+#endif
+
+		*surface = lwgeom_as_lwmpoly(mpoly);
+		return ES_NONE;
+	}
+
+	return ES_NONE;
+}
+
+/******************************************************************************
+* rt_raster_pixel_as_polygon()
+******************************************************************************/
+
+/**
+ * Get a raster pixel as a polygon.
+ *
+ * The pixel shape is a 4 vertices (5 to be closed) single
+ * ring polygon bearing the raster's rotation
+ * and using projection coordinates
+ *
+ * @param raster : the raster to get pixel from
+ * @param x : the column number
+ * @param y : the row number
+ *
+ * @return the pixel polygon, or NULL on error.
+ *
+ */
+LWPOLY*
+rt_raster_pixel_as_polygon(rt_raster rast, int x, int y)
+{
+    double scale_x, scale_y;
+    double skew_x, skew_y;
+    double ul_x, ul_y;
+    int srid;
+    POINTARRAY **points;
+    POINT4D p, p0;
+    LWPOLY *poly;
+
+		assert(rast != NULL);
+
+    scale_x = rt_raster_get_x_scale(rast);
+    scale_y = rt_raster_get_y_scale(rast);
+    skew_x = rt_raster_get_x_skew(rast);
+    skew_y = rt_raster_get_y_skew(rast);
+    ul_x = rt_raster_get_x_offset(rast);
+    ul_y = rt_raster_get_y_offset(rast);
+    srid = rt_raster_get_srid(rast);
+
+    points = rtalloc(sizeof(POINTARRAY *)*1);
+    points[0] = ptarray_construct(0, 0, 5);
+
+    p0.x = scale_x * x + skew_x * y + ul_x;
+    p0.y = scale_y * y + skew_y * x + ul_y;
+    ptarray_set_point4d(points[0], 0, &p0);
+
+    p.x = p0.x + scale_x;
+    p.y = p0.y + skew_y;
+    ptarray_set_point4d(points[0], 1, &p);
+
+    p.x = p0.x + scale_x + skew_x;
+    p.y = p0.y + scale_y + skew_y;
+    ptarray_set_point4d(points[0], 2, &p);
+
+    p.x = p0.x + skew_x;
+    p.y = p0.y + scale_y;
+    ptarray_set_point4d(points[0], 3, &p);
+
+    /* close it */
+    ptarray_set_point4d(points[0], 4, &p0);
+
+    poly = lwpoly_construct(srid, NULL, 1, points);
+
+    return poly;
+}
+
+/******************************************************************************
+* rt_raster_get_envelope_geom()
+******************************************************************************/
+
+/**
+ * Get raster's envelope as a geometry
+ *
+ * @param raster : the raster to get info from
+ * @param **env : pointer to envelope
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_raster_get_envelope_geom(rt_raster raster, LWGEOM **env) {
+	double gt[6] = {0.0};
+	int srid = SRID_UNKNOWN;
+
+	POINTARRAY *pts = NULL;
+	POINT4D p4d;
+
+	assert(env != NULL);
+	*env = NULL;
+
+	/* raster is NULL, envelope is NULL */
+	if (raster == NULL)
+		return ES_NONE;
+
+	/* raster metadata */
+	srid = rt_raster_get_srid(raster);
+	rt_raster_get_geotransform_matrix(raster, gt);
+
+	RASTER_DEBUGF(
+		3,
+		"rt_raster_get_envelope: raster is %dx%d",
+		raster->width,
+		raster->height
+	); 
+
+	/* return point or line since at least one of the two dimensions is 0 */
+	if ((!raster->width) || (!raster->height)) {
+		p4d.x = gt[0];
+		p4d.y = gt[3];
+
+		/* return point */
+		if (!raster->width && !raster->height) {
+			LWPOINT *point = lwpoint_make2d(srid, p4d.x, p4d.y);
+			*env = lwpoint_as_lwgeom(point);
+		}
+		/* return linestring */
+		else {
+			LWLINE *line = NULL;
+			pts = ptarray_construct_empty(0, 0, 2);
+
+			/* first point of line */
+			ptarray_append_point(pts, &p4d, LW_TRUE);
+
+			/* second point of line */
+			if (rt_raster_cell_to_geopoint(
+				raster,
+				rt_raster_get_width(raster), rt_raster_get_height(raster),
+				&p4d.x, &p4d.y,
+				gt
+			) != ES_NONE) {
+				rterror("rt_raster_get_envelope: Could not get second point for linestring");
+				return ES_ERROR;
+			}
+			ptarray_append_point(pts, &p4d, LW_TRUE);
+			line = lwline_construct(srid, NULL, pts);
+
+			*env = lwline_as_lwgeom(line);
+		}
+
+		return ES_NONE;
+	}
+	else {
+		rt_envelope rtenv;
+		int err = ES_NONE;
+		POINTARRAY **rings = NULL;
+		LWPOLY* poly = NULL;
+
+		/* only one ring */
+		rings = (POINTARRAY **) rtalloc(sizeof (POINTARRAY*));
+		if (!rings) {
+			rterror("rt_raster_get_envelope_geom: Could not allocate memory for polygon ring");
+			return ES_ERROR;
+		}
+		rings[0] = ptarray_construct(0, 0, 5);
+		if (!rings[0]) {
+			rterror("rt_raster_get_envelope_geom: Could not construct point array");
+			return ES_ERROR;
+		}
+		pts = rings[0];
+
+		err = rt_raster_get_envelope(raster, &rtenv);
+		if (err != ES_NONE) {
+			rterror("rt_raster_get_envelope_geom: Could not get raster envelope");
+			return err;
+		}
+
+		/* build ring */
+
+		/* minx, maxy */
+		p4d.x = rtenv.MinX;
+		p4d.y = rtenv.MaxY;
+		ptarray_set_point4d(pts, 0, &p4d);
+		ptarray_set_point4d(pts, 4, &p4d);
+
+		/* maxx, maxy */
+		p4d.x = rtenv.MaxX;
+		p4d.y = rtenv.MaxY;
+		ptarray_set_point4d(pts, 1, &p4d);
+
+		/* maxx, miny */
+		p4d.x = rtenv.MaxX;
+		p4d.y = rtenv.MinY;
+		ptarray_set_point4d(pts, 2, &p4d);
+
+		/* minx, miny */
+		p4d.x = rtenv.MinX;
+		p4d.y = rtenv.MinY;
+		ptarray_set_point4d(pts, 3, &p4d);
+
+		poly = lwpoly_construct(srid, 0, 1, rings);
+		*env = lwpoly_as_lwgeom(poly);
+	}
+
+	return ES_NONE;
+}
+
+/******************************************************************************
+* rt_raster_get_convex_hull()
+******************************************************************************/
+
+/**
+ * Get raster's convex hull.
+ *
+ * The convex hull is typically a 4 vertices (5 to be closed)
+ * single ring polygon bearing the raster's rotation and using
+ * projection coordinates.
+ *
+ * @param raster : the raster to get info from
+ * @param **hull : pointer to convex hull
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_raster_get_convex_hull(rt_raster raster, LWGEOM **hull) {
+	double gt[6] = {0.0};
+	int srid = SRID_UNKNOWN;
+
+	POINTARRAY *pts = NULL;
+	POINT4D p4d;
+
+	assert(hull != NULL);
+	*hull = NULL;
+
+	/* raster is NULL, convex hull is NULL */
+	if (raster == NULL)
+		return ES_NONE;
+
+	/* raster metadata */
+	srid = rt_raster_get_srid(raster);
+	rt_raster_get_geotransform_matrix(raster, gt);
+
+	RASTER_DEBUGF(3, "rt_raster_get_convex_hull: raster is %dx%d", raster->width, raster->height); 
+
+	/* return point or line since at least one of the two dimensions is 0 */
+	if ((!raster->width) || (!raster->height)) {
+		p4d.x = gt[0];
+		p4d.y = gt[3];
+
+		/* return point */
+		if (!raster->width && !raster->height) {
+			LWPOINT *point = lwpoint_make2d(srid, p4d.x, p4d.y);
+			*hull = lwpoint_as_lwgeom(point);
+		}
+		/* return linestring */
+		else {
+			LWLINE *line = NULL;
+			pts = ptarray_construct_empty(0, 0, 2);
+
+			/* first point of line */
+			ptarray_append_point(pts, &p4d, LW_TRUE);
+
+			/* second point of line */
+			if (rt_raster_cell_to_geopoint(
+				raster,
+				rt_raster_get_width(raster), rt_raster_get_height(raster),
+				&p4d.x, &p4d.y,
+				gt
+			) != ES_NONE) {
+				rterror("rt_raster_get_convex_hull: Could not get second point for linestring");
+				return ES_ERROR;
+			}
+			ptarray_append_point(pts, &p4d, LW_TRUE);
+			line = lwline_construct(srid, NULL, pts);
+
+			*hull = lwline_as_lwgeom(line);
+		}
+
+		return ES_NONE;
+	}
+	else {
+		POINTARRAY **rings = NULL;
+		LWPOLY* poly = NULL;
+
+		/* only one ring */
+		rings = (POINTARRAY **) rtalloc(sizeof (POINTARRAY*));
+		if (!rings) {
+			rterror("rt_raster_get_convex_hull: Could not allocate memory for polygon ring");
+			return ES_ERROR;
+		}
+		rings[0] = ptarray_construct(0, 0, 5);
+		/* TODO: handle error on ptarray construction */
+		/* XXX jorgearevalo: the error conditions aren't managed in ptarray_construct */
+		if (!rings[0]) {
+			rterror("rt_raster_get_convex_hull: Could not construct point array");
+			return ES_ERROR;
+		}
+		pts = rings[0];
+
+		/* Upper-left corner (first and last points) */
+		p4d.x = gt[0];
+		p4d.y = gt[3];
+		ptarray_set_point4d(pts, 0, &p4d);
+		ptarray_set_point4d(pts, 4, &p4d);
+
+		/* Upper-right corner (we go clockwise) */
+		rt_raster_cell_to_geopoint(
+			raster,
+			raster->width, 0,
+			&p4d.x, &p4d.y,
+			gt
+		);
+		ptarray_set_point4d(pts, 1, &p4d);
+
+		/* Lower-right corner */
+		rt_raster_cell_to_geopoint(
+			raster,
+			raster->width, raster->height,
+			&p4d.x, &p4d.y,
+			gt
+		);
+		ptarray_set_point4d(pts, 2, &p4d);
+
+		/* Lower-left corner */
+		rt_raster_cell_to_geopoint(
+			raster,
+			0, raster->height,
+			&p4d.x, &p4d.y,
+			gt
+		);
+		ptarray_set_point4d(pts, 3, &p4d);
+
+		poly = lwpoly_construct(srid, 0, 1, rings);
+		*hull = lwpoly_as_lwgeom(poly);
+	}
+
+	return ES_NONE;
+}
+
+/******************************************************************************
+* rt_raster_gdal_polygonize()
+******************************************************************************/
+
+/**
+ * Returns a set of "geomval" value, one for each group of pixel
+ * sharing the same value for the provided band.
+ *
+ * A "geomval" value is a complex type composed of a geometry 
+ * in LWPOLY representation (one for each group of pixel sharing
+ * the same value) and the value associated with this geometry.
+ *
+ * @param raster : the raster to get info from.
+ * @param nband : the band to polygonize. 0-based
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * to check for pixels with value
+ *
+ * @return A set of "geomval" values, one for each group of pixels
+ * sharing the same value for the provided band. The returned values are
+ * LWPOLY geometries.
+ */
+rt_geomval
+rt_raster_gdal_polygonize(
+	rt_raster raster, int nband,
+	int exclude_nodata_value,
+	int *pnElements
+) {
+	CPLErr cplerr = CE_None;
+	char *pszQuery;
+	long j;
+	OGRSFDriverH ogr_drv = NULL;
+	GDALDriverH gdal_drv = NULL;
+	int destroy_gdal_drv = 0;
+	GDALDatasetH memdataset = NULL;
+	GDALRasterBandH gdal_band = NULL;
+	OGRDataSourceH memdatasource = NULL;
+	rt_geomval pols = NULL;
+	OGRLayerH hLayer = NULL;
+	OGRFeatureH hFeature = NULL;
+	OGRGeometryH hGeom = NULL;
+	OGRFieldDefnH hFldDfn = NULL;
+	unsigned char *wkb = NULL;
+	int wkbsize = 0;
+	LWGEOM *lwgeom = NULL;
+	int nFeatureCount = 0;
+	rt_band band = NULL;
+	int iPixVal = -1;
+	double dValue = 0.0;
+	int iBandHasNodataValue = FALSE;
+	double dBandNoData = 0.0;
+
+	/* for checking that a geometry is valid */
+	GEOSGeometry *ggeom = NULL;
+	int isValid;
+	LWGEOM *lwgeomValid = NULL;
+
+	uint32_t bandNums[1] = {nband};
+	int excludeNodataValues[1] = {exclude_nodata_value};
+
+	/* checks */
+	assert(NULL != raster);
+	assert(NULL != pnElements);
+
+	RASTER_DEBUG(2, "In rt_raster_gdal_polygonize");
+
+	*pnElements = 0;
+
+	/*******************************
+	 * Get band
+	 *******************************/
+	band = rt_raster_get_band(raster, nband);
+	if (NULL == band) {
+		rterror("rt_raster_gdal_polygonize: Error getting band %d from raster", nband);
+		return NULL;
+	}
+
+	if (exclude_nodata_value) {
+
+		/* band is NODATA */
+		if (rt_band_get_isnodata_flag(band)) {
+			RASTER_DEBUG(3, "Band is NODATA.  Returning null");
+			*pnElements = 0;
+			return NULL;
+		}
+
+		iBandHasNodataValue = rt_band_get_hasnodata_flag(band);
+		if (iBandHasNodataValue)
+			rt_band_get_nodata(band, &dBandNoData);
+		else
+			exclude_nodata_value = FALSE;
+	}
+
+	/*****************************************************
+	 * Convert raster to GDAL MEM dataset
+	 *****************************************************/
+	memdataset = rt_raster_to_gdal_mem(raster, NULL, bandNums, excludeNodataValues, 1, &gdal_drv, &destroy_gdal_drv);
+	if (NULL == memdataset) {
+		rterror("rt_raster_gdal_polygonize: Couldn't convert raster to GDAL MEM dataset");
+		return NULL;
+	}
+
+	/*****************************
+	 * Register ogr mem driver
+	 *****************************/
+#ifdef GDAL_DCAP_RASTER
+	/* in GDAL 2.0, OGRRegisterAll() is an alias to GDALAllRegister() */
+	rt_util_gdal_register_all(0);
+#else
+	OGRRegisterAll();
+#endif
+
+	RASTER_DEBUG(3, "creating OGR MEM vector");
+
+	/*****************************************************
+	 * Create an OGR in-memory vector for layers
+	 *****************************************************/
+	ogr_drv = OGRGetDriverByName("Memory");
+	memdatasource = OGR_Dr_CreateDataSource(ogr_drv, "", NULL);
+	if (NULL == memdatasource) {
+		rterror("rt_raster_gdal_polygonize: Couldn't create a OGR Datasource to store pols");
+		GDALClose(memdataset);
+		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
+		return NULL;
+	}
+
+	/* Can MEM driver create new layers? */
+	if (!OGR_DS_TestCapability(memdatasource, ODsCCreateLayer)) {
+		rterror("rt_raster_gdal_polygonize: MEM driver can't create new layers, aborting");
+
+		/* xxx jorgearevalo: what should we do now? */
+		GDALClose(memdataset);
+		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
+		OGRReleaseDataSource(memdatasource);
+
+		return NULL;
+	}
+
+	RASTER_DEBUG(3, "polygonizying GDAL MEM raster band");
+
+	/*****************************
+	 * Polygonize the raster band
+	 *****************************/
+
+	/**
+	 * From GDALPolygonize function header: "Polygon features will be
+	 * created on the output layer, with polygon geometries representing
+	 * the polygons". So,the WKB geometry type should be "wkbPolygon"
+	 **/
+	hLayer = OGR_DS_CreateLayer(memdatasource, "PolygonizedLayer", NULL, wkbPolygon, NULL);
+
+	if (NULL == hLayer) {
+		rterror("rt_raster_gdal_polygonize: Couldn't create layer to store polygons");
+
+		GDALClose(memdataset);
+		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
+		OGRReleaseDataSource(memdatasource);
+
+		return NULL;
+	}
+
+	/**
+	 * Create a new field in the layer, to store the px value
+	 */
+
+	/* First, create a field definition to create the field */
+	hFldDfn = OGR_Fld_Create("PixelValue", OFTReal);
+
+	/* Second, create the field */
+	if (OGR_L_CreateField(hLayer, hFldDfn, TRUE) != OGRERR_NONE) {
+		rtwarn("Couldn't create a field in OGR Layer. The polygons generated won't be able to store the pixel value");
+		iPixVal = -1;
+	}
+	else {
+		/* Index to the new field created in the layer */
+		iPixVal = 0;
+	}
+
+	/* Get GDAL raster band */
+	gdal_band = GDALGetRasterBand(memdataset, 1);
+	if (NULL == gdal_band) {
+		rterror("rt_raster_gdal_polygonize: Couldn't get GDAL band to polygonize");
+
+		GDALClose(memdataset);
+		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
+		OGR_Fld_Destroy(hFldDfn);
+		OGR_DS_DeleteLayer(memdatasource, 0);
+		OGRReleaseDataSource(memdatasource);
+		
+		return NULL;
+	}
+
+	/**
+	 * We don't need a raster mask band. Each band has a nodata value.
+	 **/
+#ifdef GDALFPOLYGONIZE
+	cplerr = GDALFPolygonize(gdal_band, NULL, hLayer, iPixVal, NULL, NULL, NULL);
+#else
+	cplerr = GDALPolygonize(gdal_band, NULL, hLayer, iPixVal, NULL, NULL, NULL);
+#endif
+
+	if (cplerr != CE_None) {
+		rterror("rt_raster_gdal_polygonize: Could not polygonize GDAL band");
+
+		GDALClose(memdataset);
+		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
+		OGR_Fld_Destroy(hFldDfn);
+		OGR_DS_DeleteLayer(memdatasource, 0);
+		OGRReleaseDataSource(memdatasource);
+
+		return NULL;
+	}
+
+	/**
+	 * Optimization: Apply a OGR SQL filter to the layer to select the
+	 * features different from NODATA value.
+	 *
+	 * Thanks to David Zwarg.
+	 **/
+	if (iBandHasNodataValue) {
+		pszQuery = (char *) rtalloc(50 * sizeof (char));
+		sprintf(pszQuery, "PixelValue != %f", dBandNoData );
+		OGRErr e = OGR_L_SetAttributeFilter(hLayer, pszQuery);
+		if (e != OGRERR_NONE) {
+			rtwarn("Error filtering NODATA values for band. All values will be treated as data values");
+		}
+	}
+	else {
+		pszQuery = NULL;
+	}
+
+	/*********************************************************************
+	 * Transform OGR layers to WKB polygons
+	 * XXX jorgearevalo: GDALPolygonize does not set the coordinate system
+	 * on the output layer. Application code should do this when the layer
+	 * is created, presumably matching the raster coordinate system.
+	 *********************************************************************/
+	nFeatureCount = OGR_L_GetFeatureCount(hLayer, TRUE);
+
+	/* Allocate memory for pols */
+	pols = (rt_geomval) rtalloc(nFeatureCount * sizeof(struct rt_geomval_t));
+
+	if (NULL == pols) {
+		rterror("rt_raster_gdal_polygonize: Could not allocate memory for geomval set");
+
+		GDALClose(memdataset);
+		if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
+		OGR_Fld_Destroy(hFldDfn);
+		OGR_DS_DeleteLayer(memdatasource, 0);
+		if (NULL != pszQuery)
+			rtdealloc(pszQuery);
+		OGRReleaseDataSource(memdatasource);
+
+		return NULL;
+	}
+
+	/* initialize GEOS */
+	initGEOS(rtinfo, lwgeom_geos_error);
+
+	RASTER_DEBUGF(3, "storing polygons (%d)", nFeatureCount);
+
+	/* Reset feature reading to start in the first feature */
+	OGR_L_ResetReading(hLayer);
+
+	for (j = 0; j < nFeatureCount; j++) {
+		hFeature = OGR_L_GetNextFeature(hLayer);
+		dValue = OGR_F_GetFieldAsDouble(hFeature, iPixVal);
+
+		hGeom = OGR_F_GetGeometryRef(hFeature);
+		wkbsize = OGR_G_WkbSize(hGeom);
+
+		/* allocate wkb buffer */
+		wkb = rtalloc(sizeof(unsigned char) * wkbsize);
+		if (wkb == NULL) {
+			rterror("rt_raster_gdal_polygonize: Could not allocate memory for WKB buffer");
+
+			OGR_F_Destroy(hFeature);
+			GDALClose(memdataset);
+			if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
+			OGR_Fld_Destroy(hFldDfn);
+			OGR_DS_DeleteLayer(memdatasource, 0);
+			if (NULL != pszQuery)
+				rtdealloc(pszQuery);
+			OGRReleaseDataSource(memdatasource);
+
+			return NULL;
+		}
+
+		/* export WKB with LSB byte order */
+		OGR_G_ExportToWkb(hGeom, wkbNDR, wkb);
+
+		/* convert WKB to LWGEOM */
+		lwgeom = lwgeom_from_wkb(wkb, wkbsize, LW_PARSER_CHECK_NONE);
+
+#if POSTGIS_DEBUG_LEVEL > 3
+		{
+			char *wkt = NULL;
+			OGR_G_ExportToWkt(hGeom, &wkt);
+			RASTER_DEBUGF(4, "GDAL wkt = %s", wkt);
+			CPLFree(wkt);
+
+			d_print_binary_hex("GDAL wkb", wkb, wkbsize);
+		}
+#endif
+
+		/* cleanup unnecessary stuff */
+		rtdealloc(wkb);
+		wkb = NULL;
+		wkbsize = 0;
+
+		OGR_F_Destroy(hFeature);
+
+		/* specify SRID */
+		lwgeom_set_srid(lwgeom, rt_raster_get_srid(raster));
+
+		/*
+			is geometry valid?
+			if not, try to make valid
+		*/
+		do {
+#if POSTGIS_GEOS_VERSION < 33
+			/* nothing can be done if the geometry was invalid if GEOS < 3.3 */
+			break;
+#endif
+
+			ggeom = (GEOSGeometry *) LWGEOM2GEOS(lwgeom, 0);
+			if (ggeom == NULL) {
+				rtwarn("Cannot test geometry for validity");
+				break;
+			}
+
+			isValid = GEOSisValid(ggeom);
+
+			GEOSGeom_destroy(ggeom);
+			ggeom = NULL;
+
+			/* geometry is valid */
+			if (isValid)
+				break;
+
+			RASTER_DEBUG(3, "fixing invalid geometry");
+
+			/* make geometry valid */
+			lwgeomValid = lwgeom_make_valid(lwgeom);
+			if (lwgeomValid == NULL) {
+				rtwarn("Cannot fix invalid geometry");
+				break;
+			}
+
+			lwgeom_free(lwgeom);
+			lwgeom = lwgeomValid;
+		}
+		while (0);
+
+		/* save lwgeom */
+		pols[j].geom = lwgeom_as_lwpoly(lwgeom);
+
+#if POSTGIS_DEBUG_LEVEL > 3
+		{
+			char *wkt = lwgeom_to_wkt(lwgeom, WKT_ISO, DBL_DIG, NULL);
+			RASTER_DEBUGF(4, "LWGEOM wkt = %s", wkt);
+			rtdealloc(wkt);
+
+			size_t lwwkbsize = 0;
+			uint8_t *lwwkb = lwgeom_to_wkb(lwgeom, WKB_ISO | WKB_NDR, &lwwkbsize);
+			if (lwwkbsize) {
+				d_print_binary_hex("LWGEOM wkb", lwwkb, lwwkbsize);
+				rtdealloc(lwwkb);
+			}
+		}
+#endif
+
+		/* set pixel value */
+		pols[j].val = dValue;
+	}
+
+	*pnElements = nFeatureCount;
+
+	RASTER_DEBUG(3, "destroying GDAL MEM raster");
+	GDALClose(memdataset);
+	if (destroy_gdal_drv) GDALDestroyDriver(gdal_drv);
+
+	RASTER_DEBUG(3, "destroying OGR MEM vector");
+	OGR_Fld_Destroy(hFldDfn);
+	OGR_DS_DeleteLayer(memdatasource, 0);
+	if (NULL != pszQuery) rtdealloc(pszQuery);
+	OGRReleaseDataSource(memdatasource);
+
+	return pols;
+}
+
diff --git a/raster/rt_core/rt_mapalgebra.c b/raster/rt_core/rt_mapalgebra.c
new file mode 100644
index 0000000..0efe61c
--- /dev/null
+++ b/raster/rt_core/rt_mapalgebra.c
@@ -0,0 +1,1852 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+
+/******************************************************************************
+* rt_band_reclass()
+******************************************************************************/
+
+/**
+ * Returns new band with values reclassified
+ *
+ * @param srcband : the band who's values will be reclassified
+ * @param pixtype : pixel type of the new band
+ * @param hasnodata : indicates if the band has a nodata value
+ * @param nodataval : nodata value for the new band
+ * @param exprset : array of rt_reclassexpr structs
+ * @param exprcount : number of elements in expr
+ *
+ * @return a new rt_band or NULL on error
+ */
+rt_band
+rt_band_reclass(
+	rt_band srcband, rt_pixtype pixtype,
+	uint32_t hasnodata, double nodataval,
+	rt_reclassexpr *exprset, int exprcount
+) {
+	rt_band band = NULL;
+	uint32_t width = 0;
+	uint32_t height = 0;
+	int numval = 0;
+	int memsize = 0;
+	void *mem = NULL;
+	uint32_t src_hasnodata = 0;
+	double src_nodataval = 0.0;
+	int isnodata = 0;
+
+	int rtn;
+	uint32_t x;
+	uint32_t y;
+	int i;
+	double or = 0;
+	double ov = 0;
+	double nr = 0;
+	double nv = 0;
+	int do_nv = 0;
+	rt_reclassexpr expr = NULL;
+
+	assert(NULL != srcband);
+	assert(NULL != exprset && exprcount > 0);
+	RASTER_DEBUGF(4, "exprcount = %d", exprcount);
+	RASTER_DEBUGF(4, "exprset @ %p", exprset);
+
+	/* source nodata */
+	src_hasnodata = rt_band_get_hasnodata_flag(srcband);
+	if (src_hasnodata)
+		rt_band_get_nodata(srcband, &src_nodataval);
+
+	/* size of memory block to allocate */
+	width = rt_band_get_width(srcband);
+	height = rt_band_get_height(srcband);
+	numval = width * height;
+	memsize = rt_pixtype_size(pixtype) * numval;
+	mem = (int *) rtalloc(memsize);
+	if (!mem) {
+		rterror("rt_band_reclass: Could not allocate memory for band");
+		return 0;
+	}
+
+	/* initialize to zero */
+	if (!hasnodata) {
+		memset(mem, 0, memsize);
+	}
+	/* initialize to nodataval */
+	else {
+		int32_t checkvalint = 0;
+		uint32_t checkvaluint = 0;
+		double checkvaldouble = 0;
+		float checkvalfloat = 0;
+
+		switch (pixtype) {
+			case PT_1BB:
+			{
+				uint8_t *ptr = mem;
+				uint8_t clamped_initval = rt_util_clamp_to_1BB(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvalint = ptr[0];
+				break;
+			}
+			case PT_2BUI:
+			{
+				uint8_t *ptr = mem;
+				uint8_t clamped_initval = rt_util_clamp_to_2BUI(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvalint = ptr[0];
+				break;
+			}
+			case PT_4BUI:
+			{
+				uint8_t *ptr = mem;
+				uint8_t clamped_initval = rt_util_clamp_to_4BUI(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvalint = ptr[0];
+				break;
+			}
+			case PT_8BSI:
+			{
+				int8_t *ptr = mem;
+				int8_t clamped_initval = rt_util_clamp_to_8BSI(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvalint = ptr[0];
+				break;
+			}
+			case PT_8BUI:
+			{
+				uint8_t *ptr = mem;
+				uint8_t clamped_initval = rt_util_clamp_to_8BUI(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvalint = ptr[0];
+				break;
+			}
+			case PT_16BSI:
+			{
+				int16_t *ptr = mem;
+				int16_t clamped_initval = rt_util_clamp_to_16BSI(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvalint = ptr[0];
+				break;
+			}
+			case PT_16BUI:
+			{
+				uint16_t *ptr = mem;
+				uint16_t clamped_initval = rt_util_clamp_to_16BUI(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvalint = ptr[0];
+				break;
+			}
+			case PT_32BSI:
+			{
+				int32_t *ptr = mem;
+				int32_t clamped_initval = rt_util_clamp_to_32BSI(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvalint = ptr[0];
+				break;
+			}
+			case PT_32BUI:
+			{
+				uint32_t *ptr = mem;
+				uint32_t clamped_initval = rt_util_clamp_to_32BUI(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvaluint = ptr[0];
+				break;
+			}
+			case PT_32BF:
+			{
+				float *ptr = mem;
+				float clamped_initval = rt_util_clamp_to_32F(nodataval);
+				for (i = 0; i < numval; i++)
+					ptr[i] = clamped_initval;
+				checkvalfloat = ptr[0];
+				break;
+			}
+			case PT_64BF:
+			{
+				double *ptr = mem;
+				for (i = 0; i < numval; i++)
+					ptr[i] = nodataval;
+				checkvaldouble = ptr[0];
+				break;
+			}
+			default:
+			{
+				rterror("rt_band_reclass: Unknown pixeltype %d", pixtype);
+				rtdealloc(mem);
+				return 0;
+			}
+		}
+
+		/* Overflow checking */
+		rt_util_dbl_trunc_warning(
+			nodataval,
+			checkvalint, checkvaluint,
+			checkvalfloat, checkvaldouble,
+			pixtype
+		);
+	}
+	RASTER_DEBUGF(3, "rt_band_reclass: width = %d height = %d", width, height);
+
+	band = rt_band_new_inline(width, height, pixtype, hasnodata, nodataval, mem);
+	if (!band) {
+		rterror("rt_band_reclass: Could not create new band");
+		rtdealloc(mem);
+		return 0;
+	}
+	rt_band_set_ownsdata_flag(band, 1); /* we DO own this data!!! */
+	RASTER_DEBUGF(3, "rt_band_reclass: new band @ %p", band);
+
+	for (x = 0; x < width; x++) {
+		for (y = 0; y < height; y++) {
+			rtn = rt_band_get_pixel(srcband, x, y, &ov, &isnodata);
+
+			/* error getting value, skip */
+			if (rtn != ES_NONE) {
+				RASTER_DEBUGF(3, "Cannot get value at %d, %d", x, y);
+				continue;
+			}
+			RASTER_DEBUGF(4, "(x, y, ov, isnodata) = (%d, %d, %f, %d)", x, y, ov, isnodata);
+
+			do {
+				do_nv = 0;
+
+				/* no data*/
+				if (hasnodata && isnodata) {
+					do_nv = 1;
+					break;
+				}
+
+				for (i = 0; i < exprcount; i++) {
+					expr = exprset[i];
+
+					/* ov matches min and max*/
+					if (
+						FLT_EQ(expr->src.min, ov) &&
+						FLT_EQ(expr->src.max, ov)
+					) {
+						do_nv = 1;
+						break;
+					}
+
+					/* process min */
+					if ((
+						expr->src.exc_min && (
+							expr->src.min > ov ||
+							FLT_EQ(expr->src.min, ov)
+						)) || (
+						expr->src.inc_min && (
+							expr->src.min < ov ||
+							FLT_EQ(expr->src.min, ov)
+						)) || (
+						expr->src.min < ov
+					)) {
+						/* process max */
+						if ((
+							expr->src.exc_max && (
+								ov > expr->src.max ||
+								FLT_EQ(expr->src.max, ov)
+							)) || (
+								expr->src.inc_max && (
+								ov < expr->src.max ||
+								FLT_EQ(expr->src.max, ov)
+							)) || (
+							ov < expr->src.max
+						)) {
+							do_nv = 1;
+							break;
+						}
+					}
+				}
+			}
+			while (0);
+
+			/* no expression matched, do not continue */
+			if (!do_nv) continue;
+			RASTER_DEBUGF(3, "Using exprset[%d] unless NODATA", i);
+
+			/* converting a value from one range to another range
+			OldRange = (OldMax - OldMin)
+			NewRange = (NewMax - NewMin)
+			NewValue = (((OldValue - OldMin) * NewRange) / OldRange) + NewMin
+			*/
+
+			/* NODATA */
+			if (hasnodata && isnodata) {
+				nv = nodataval;
+			}
+			/*
+				"src" min and max is the same, prevent division by zero
+				set nv to "dst" min, which should be the same as "dst" max
+			*/
+			else if (FLT_EQ(expr->src.max, expr->src.min)) {
+				nv = expr->dst.min;
+			}
+			else {
+				or = expr->src.max - expr->src.min;
+				nr = expr->dst.max - expr->dst.min;
+				nv = (((ov - expr->src.min) * nr) / or) + expr->dst.min;
+
+				/* if dst range is from high to low */
+				if (expr->dst.min > expr->dst.max) {
+					if (nv > expr->dst.min)
+						nv = expr->dst.min;
+					else if (nv < expr->dst.max)
+						nv = expr->dst.max;
+				}
+				/* if dst range is from low to high */
+				else {
+					if (nv < expr->dst.min)
+						nv = expr->dst.min;
+					else if (nv > expr->dst.max)
+						nv = expr->dst.max;
+				}
+			}
+
+			/* round the value for integers */
+			switch (pixtype) {
+				case PT_1BB:
+				case PT_2BUI:
+				case PT_4BUI:
+				case PT_8BSI:
+				case PT_8BUI:
+				case PT_16BSI:
+				case PT_16BUI:
+				case PT_32BSI:
+				case PT_32BUI:
+					nv = round(nv);
+					break;
+				default:
+					break;
+			}
+
+			RASTER_DEBUGF(4, "(%d, %d) ov: %f or: %f - %f nr: %f - %f nv: %f"
+				, x
+				, y
+				, ov
+				, (NULL != expr) ? expr->src.min : 0
+				, (NULL != expr) ? expr->src.max : 0
+				, (NULL != expr) ? expr->dst.min : 0
+				, (NULL != expr) ? expr->dst.max : 0
+				, nv
+			);
+			if (rt_band_set_pixel(band, x, y, nv, NULL) != ES_NONE) {
+				rterror("rt_band_reclass: Could not assign value to new band");
+				rt_band_destroy(band);
+				rtdealloc(mem);
+				return 0;
+			}
+
+			expr = NULL;
+		}
+	}
+
+	return band;
+}
+
+/******************************************************************************
+* rt_raster_iterator()
+******************************************************************************/
+
+typedef struct _rti_iterator_arg_t* _rti_iterator_arg;
+struct _rti_iterator_arg_t {
+	int count;
+
+	rt_raster *raster;
+	int *isempty;
+	double **offset;
+	int *width;
+	int *height;
+
+	struct {
+		rt_band *rtband;
+		int *hasnodata;
+		int *isnodata;
+		double *nodataval;
+		double *minval;
+	} band;
+
+	struct {
+		uint16_t x;
+		uint16_t y;
+	} distance;
+
+	struct {
+		uint32_t rows;
+		uint32_t columns;
+	} dimension;
+
+	struct {
+		double **values;
+		int **nodata;
+	} empty;
+
+	rt_iterator_arg arg;
+};
+
+static _rti_iterator_arg
+_rti_iterator_arg_init() {
+	_rti_iterator_arg _param;
+
+	_param = rtalloc(sizeof(struct _rti_iterator_arg_t));
+	if (_param == NULL) {
+		rterror("_rti_iterator_arg_init: Could not allocate memory for _rti_iterator_arg");
+		return NULL;
+	}
+
+	_param->count = 0;
+
+	_param->raster = NULL;
+	_param->isempty = NULL;
+	_param->offset = NULL;
+	_param->width = NULL;
+	_param->height = NULL;
+
+	_param->band.rtband = NULL;
+	_param->band.hasnodata = NULL;
+	_param->band.isnodata = NULL;
+	_param->band.nodataval = NULL;
+	_param->band.minval = NULL;
+
+	_param->distance.x = 0;
+	_param->distance.y = 0;
+
+	_param->dimension.rows = 0;
+	_param->dimension.columns = 0;
+
+	_param->empty.values = NULL;
+	_param->empty.nodata = NULL;
+
+	_param->arg = NULL;
+
+	return _param;
+}
+
+static void
+_rti_iterator_arg_destroy(_rti_iterator_arg _param) {
+	int i = 0;
+
+	if (_param->raster != NULL)
+		rtdealloc(_param->raster);
+	if (_param->isempty != NULL)
+		rtdealloc(_param->isempty);
+	if (_param->width != NULL)
+		rtdealloc(_param->width);
+	if (_param->height != NULL)
+		rtdealloc(_param->height);
+
+	if (_param->band.rtband != NULL)
+		rtdealloc(_param->band.rtband);
+	if (_param->band.hasnodata != NULL)
+		rtdealloc(_param->band.hasnodata);
+	if (_param->band.isnodata != NULL)
+		rtdealloc(_param->band.isnodata);
+	if (_param->band.nodataval != NULL)
+		rtdealloc(_param->band.nodataval);
+	if (_param->band.minval != NULL)
+		rtdealloc(_param->band.minval);
+
+	if (_param->offset != NULL) {
+		for (i = 0; i < _param->count; i++) {
+			if (_param->offset[i] == NULL)
+				continue;
+			rtdealloc(_param->offset[i]);
+		}
+		rtdealloc(_param->offset);
+	}
+
+	if (_param->empty.values != NULL) {
+		for (i = 0; i < _param->dimension.rows; i++) {
+			if (_param->empty.values[i] == NULL)
+				continue;
+			rtdealloc(_param->empty.values[i]);
+		}
+		rtdealloc(_param->empty.values);
+	}
+	if (_param->empty.nodata != NULL) {
+		for (i = 0; i < _param->dimension.rows; i++) {
+			if (_param->empty.nodata[i] == NULL)
+				continue;
+			rtdealloc(_param->empty.nodata[i]);
+		}
+		rtdealloc(_param->empty.nodata);
+	}
+
+	if (_param->arg != NULL) {
+		if (_param->arg->values != NULL)
+			rtdealloc(_param->arg->values);
+		if (_param->arg->nodata != NULL)
+			rtdealloc(_param->arg->nodata);
+		if (_param->arg->src_pixel != NULL) {
+			for (i = 0; i < _param->count; i++) {
+				if (_param->arg->src_pixel[i] == NULL)
+					continue;
+				rtdealloc(_param->arg->src_pixel[i]);
+			}
+
+			rtdealloc(_param->arg->src_pixel);
+		}
+
+		rtdealloc(_param->arg);
+	}
+
+	rtdealloc(_param);
+}
+
+static int
+_rti_iterator_arg_populate(
+	_rti_iterator_arg _param,
+	rt_iterator itrset, uint16_t itrcount,
+	uint16_t distancex, uint16_t distancey,
+	int *allnull, int *allempty
+) {
+	int i = 0;
+	int hasband = 0;
+
+	_param->count = itrcount;
+	_param->distance.x = distancex;
+	_param->distance.y = distancey;
+	_param->dimension.columns = distancex * 2 + 1;
+	_param->dimension.rows = distancey * 2 + 1;
+
+	/* allocate memory for children */
+	_param->raster = rtalloc(sizeof(rt_raster) * itrcount);
+	_param->isempty = rtalloc(sizeof(int) * itrcount);
+	_param->width = rtalloc(sizeof(int) * itrcount);
+	_param->height = rtalloc(sizeof(int) * itrcount);
+
+	_param->offset = rtalloc(sizeof(double *) * itrcount);
+
+	_param->band.rtband = rtalloc(sizeof(rt_band) * itrcount);
+	_param->band.hasnodata = rtalloc(sizeof(int) * itrcount);
+	_param->band.isnodata = rtalloc(sizeof(int) * itrcount);
+	_param->band.nodataval = rtalloc(sizeof(double) * itrcount);
+	_param->band.minval = rtalloc(sizeof(double) * itrcount);
+
+	if (
+		_param->raster == NULL ||
+		_param->isempty == NULL ||
+		_param->width == NULL ||
+		_param->height == NULL ||
+		_param->offset == NULL ||
+		_param->band.rtband == NULL ||
+		_param->band.hasnodata == NULL ||
+		_param->band.isnodata == NULL ||
+		_param->band.nodataval == NULL ||
+		_param->band.minval == NULL
+	) {
+		rterror("_rti_iterator_arg_populate: Could not allocate memory for children of _rti_iterator_arg");
+		return 0;
+	}
+
+	*allnull = 0;
+	*allempty = 0;
+
+	/*
+		check input rasters
+			not empty, band # is valid
+			copy raster pointers and set flags
+	*/
+	for (i = 0; i < itrcount; i++) {
+		/* initialize elements */
+		_param->raster[i] = NULL;
+		_param->isempty[i] = 0;
+		_param->width[i] = 0;
+		_param->height[i] = 0;
+
+		_param->offset[i] = NULL;
+
+		_param->band.rtband[i] = NULL;
+		_param->band.hasnodata[i] = 0;
+		_param->band.isnodata[i] = 0;
+		_param->band.nodataval[i] = 0;
+		_param->band.minval[i] = 0;
+
+		/* set isempty */
+		if (itrset[i].raster == NULL) {
+			_param->isempty[i] = 1;
+
+			(*allnull)++;
+			(*allempty)++;
+
+			continue;
+		}
+		else if (rt_raster_is_empty(itrset[i].raster)) {
+			_param->isempty[i] = 1;
+
+			(*allempty)++;
+
+			continue;
+		}
+
+		/* check band number */
+		hasband = rt_raster_has_band(itrset[i].raster, itrset[i].nband);
+		if (!hasband) {
+			if (!itrset[i].nbnodata) {
+				rterror("_rti_iterator_arg_populate: Band %d not found for raster %d", itrset[i].nband, i);
+				return 0;
+			}
+			else {
+				RASTER_DEBUGF(4, "Band %d not found for raster %d. Using NODATA", itrset[i].nband, i);
+			}
+		}
+
+		_param->raster[i] = itrset[i].raster;
+		if (hasband) {
+			_param->band.rtband[i] = rt_raster_get_band(itrset[i].raster, itrset[i].nband);
+			if (_param->band.rtband[i] == NULL) {
+				rterror("_rti_iterator_arg_populate: Could not get band %d for raster %d", itrset[i].nband, i);
+				return 0;
+			}
+
+			/* hasnodata */
+			_param->band.hasnodata[i] = rt_band_get_hasnodata_flag(_param->band.rtband[i]);
+
+			/* hasnodata = TRUE */
+			if (_param->band.hasnodata[i]) {
+				/* nodataval */
+				rt_band_get_nodata(_param->band.rtband[i], &(_param->band.nodataval[i]));
+
+				/* isnodata */
+				_param->band.isnodata[i] = rt_band_get_isnodata_flag(_param->band.rtband[i]);
+			}
+			/* hasnodata = FALSE */
+			else {
+				/* minval */
+				_param->band.minval[i] = rt_band_get_min_value(_param->band.rtband[i]);
+			}
+		}
+
+		/* width, height */
+		_param->width[i] = rt_raster_get_width(_param->raster[i]);
+		_param->height[i] = rt_raster_get_height(_param->raster[i]);
+
+		/* init offset */
+		_param->offset[i] = rtalloc(sizeof(double) * 2);
+		if (_param->offset[i] == NULL) {
+			rterror("_rti_iterator_arg_populate: Could not allocate memory for offsets");
+			return 0;
+		}
+	}
+
+	return 1;
+}
+
+static int
+_rti_iterator_arg_empty_init(_rti_iterator_arg _param) {
+	int x = 0;
+	int y = 0;
+
+	_param->empty.values = rtalloc(sizeof(double *) * _param->dimension.rows);
+	_param->empty.nodata = rtalloc(sizeof(int *) * _param->dimension.rows);
+	if (_param->empty.values == NULL || _param->empty.nodata == NULL) {
+		rterror("_rti_iterator_arg_empty_init: Could not allocate memory for empty values and NODATA");
+		return 0;
+	}
+
+	for (y = 0; y < _param->dimension.rows; y++) {
+		_param->empty.values[y] = rtalloc(sizeof(double) * _param->dimension.columns);
+		_param->empty.nodata[y] = rtalloc(sizeof(int) * _param->dimension.columns);
+
+		if (_param->empty.values[y] == NULL || _param->empty.nodata[y] == NULL) {
+			rterror("_rti_iterator_arg_empty_init: Could not allocate memory for elements of empty values and NODATA");
+			return 0;
+		}
+
+		for (x = 0; x < _param->dimension.columns; x++) {
+			_param->empty.values[y][x] = 0;
+			_param->empty.nodata[y][x] = 1;
+		}
+	}
+
+	return 1;
+}
+
+static int
+_rti_iterator_arg_callback_init(_rti_iterator_arg _param) {
+	int i = 0;
+
+	_param->arg = rtalloc(sizeof(struct rt_iterator_arg_t));
+	if (_param->arg == NULL) {
+		rterror("_rti_iterator_arg_callback_init: Could not allocate memory for rt_iterator_arg");
+		return 0;
+	}
+
+	_param->arg->values = NULL;
+	_param->arg->nodata = NULL;
+	_param->arg->src_pixel = NULL;
+
+	/* initialize argument components */
+	_param->arg->values = rtalloc(sizeof(double **) * _param->count);
+	_param->arg->nodata = rtalloc(sizeof(int **) * _param->count);
+	_param->arg->src_pixel = rtalloc(sizeof(int *) * _param->count);
+	if (_param->arg->values == NULL || _param->arg->nodata == NULL || _param->arg->src_pixel == NULL) {
+		rterror("_rti_iterator_arg_callback_init: Could not allocate memory for element of rt_iterator_arg");
+		return 0;
+	}
+	memset(_param->arg->values, 0, sizeof(double **) * _param->count);
+	memset(_param->arg->nodata, 0, sizeof(int **) * _param->count);
+
+	/* initialize pos */
+	for (i = 0; i < _param->count; i++) {
+
+		_param->arg->src_pixel[i] = rtalloc(sizeof(int) * 2);
+		if (_param->arg->src_pixel[i] == NULL) {
+			rterror("_rti_iterator_arg_callback_init: Could not allocate memory for position elements of rt_iterator_arg");
+			return 0;
+		}
+		memset(_param->arg->src_pixel[i], 0, sizeof(int) * 2);
+	}
+
+	_param->arg->rasters = _param->count;
+	_param->arg->rows = _param->dimension.rows;
+	_param->arg->columns = _param->dimension.columns;
+
+	_param->arg->dst_pixel[0] = 0;
+	_param->arg->dst_pixel[1] = 0;
+
+	return 1;
+}
+
+static void
+_rti_iterator_arg_callback_clean(_rti_iterator_arg _param) {
+	int i = 0;
+	int y = 0;
+
+	for (i = 0; i < _param->count; i++) {
+		RASTER_DEBUGF(5, "empty at @ %p", _param->empty.values);
+		RASTER_DEBUGF(5, "values at @ %p", _param->arg->values[i]);
+
+		if (_param->arg->values[i] == _param->empty.values) {
+			_param->arg->values[i] = NULL;
+			_param->arg->nodata[i] = NULL;
+
+			continue;
+		}
+
+		for (y = 0; y < _param->dimension.rows; y++) {
+			rtdealloc(_param->arg->values[i][y]);
+			rtdealloc(_param->arg->nodata[i][y]);
+		}
+
+		rtdealloc(_param->arg->values[i]);
+		rtdealloc(_param->arg->nodata[i]);
+
+		_param->arg->values[i] = NULL;
+		_param->arg->nodata[i] = NULL;
+	}
+}
+
+/**
+ * n-raster iterator.
+ * The raster returned should be freed by the caller
+ *
+ * @param itrset : set of rt_iterator objects.
+ * @param itrcount : number of objects in itrset.
+ * @param extenttype : type of extent for the output raster.
+ * @param customextent : raster specifying custom extent.
+ * is only used if extenttype is ET_CUSTOM.
+ * @param pixtype : the desired pixel type of the output raster's band.
+ * @param hasnodata : indicates if the band has nodata value
+ * @param nodataval : the nodata value, will be appropriately
+ * truncated to fit the pixtype size.
+ * @param distancex : the number of pixels around the specified pixel
+ * along the X axis
+ * @param distancey : the number of pixels around the specified pixel
+ * along the Y axis
+ * @param mask : the object of mask
+ * @param userarg : pointer to any argument that is passed as-is to callback.
+ * @param callback : callback function for actual processing of pixel values.
+ * @param *rtnraster : return one band raster from iterator process
+ *
+ * The callback function _must_ have the following signature.
+ *
+ *    int FNAME(rt_iterator_arg arg, void *userarg, double *value, int *nodata)
+ *
+ * The callback function _must_ return zero (error) or non-zero (success)
+ * indicating whether the function ran successfully.
+ * The parameters passed to the callback function are as follows.
+ *
+ * - rt_iterator_arg arg: struct containing pixel values, NODATA flags and metadata
+ * - void *userarg: NULL or calling function provides to rt_raster_iterator() for use by callback function
+ * - double *value: value of pixel to be burned by rt_raster_iterator()
+ * - int *nodata: flag (0 or 1) indicating that pixel to be burned is NODATA
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate
+rt_raster_iterator(
+	rt_iterator itrset, uint16_t itrcount,
+	rt_extenttype extenttype, rt_raster customextent,
+	rt_pixtype pixtype,
+	uint8_t hasnodata, double nodataval,
+	uint16_t distancex, uint16_t distancey,
+	rt_mask mask,
+	void *userarg,
+	int (*callback)(
+		rt_iterator_arg arg,
+		void *userarg,
+		double *value,
+		int *nodata
+	),
+	rt_raster *rtnraster
+) {
+	/* output raster */
+	rt_raster rtnrast = NULL;
+	/* output raster's band */
+	rt_band rtnband = NULL;
+
+	/* working raster */
+	rt_raster rast = NULL;
+
+	_rti_iterator_arg _param = NULL;
+	int allnull = 0;
+	int allempty = 0;
+	int aligned = 0;
+	double offset[4] = {0.};
+	rt_pixel npixels;
+
+	int i = 0;
+	int status = 0;
+	int inextent = 0;
+	int x = 0;
+	int y = 0;
+	int _x = 0;
+	int _y = 0;
+
+	int _width = 0;
+	int _height = 0;
+
+	double minval;
+	double value;
+	int isnodata;
+	int nodata;
+
+	RASTER_DEBUG(3, "Starting...");
+
+	assert(itrset != NULL && itrcount > 0);
+	assert(rtnraster != NULL);
+
+	/* init rtnraster to NULL */
+	*rtnraster = NULL;
+
+	/* check that callback function is not NULL */
+	if (callback == NULL) {
+		rterror("rt_raster_iterator: Callback function not provided");
+		return ES_ERROR;
+	}
+
+	/* check that custom extent is provided if extenttype = ET_CUSTOM */
+	if (extenttype == ET_CUSTOM && rt_raster_is_empty(customextent)) {
+		rterror("rt_raster_iterator: Custom extent cannot be empty if extent type is ET_CUSTOM");
+		return ES_ERROR;
+	}
+
+	/* check that pixtype != PT_END */
+	if (pixtype == PT_END) {
+		rterror("rt_raster_iterator: Pixel type cannot be PT_END");
+		return ES_ERROR;
+	}
+
+	/* initialize _param */
+	if ((_param = _rti_iterator_arg_init()) == NULL) {
+		rterror("rt_raster_iterator: Could not initialize internal variables");
+		return ES_ERROR;
+	}
+
+	/* fill _param */
+	if (!_rti_iterator_arg_populate(_param, itrset, itrcount, distancex, distancey, &allnull, &allempty)) {
+		rterror("rt_raster_iterator: Could not populate for internal variables");
+		_rti_iterator_arg_destroy(_param);
+		return ES_ERROR;
+	}
+
+	/* shortcut if all null, return NULL */
+	if (allnull == itrcount) {
+		RASTER_DEBUG(3, "all rasters are NULL, returning NULL");
+
+		_rti_iterator_arg_destroy(_param);
+
+		return ES_NONE;
+	}
+	/* shortcut if all empty, return empty raster */
+	else if (allempty == itrcount) {
+		RASTER_DEBUG(3, "all rasters are empty, returning empty raster");
+
+		_rti_iterator_arg_destroy(_param);
+
+		rtnrast = rt_raster_new(0, 0);
+		if (rtnrast == NULL) {
+			rterror("rt_raster_iterator: Could not create empty raster");
+			return ES_ERROR;
+		}
+		rt_raster_set_scale(rtnrast, 0, 0);
+
+		*rtnraster = rtnrast;
+		return ES_NONE;
+	}
+
+	/* check that all rasters are aligned */
+	RASTER_DEBUG(3, "checking alignment of all rasters");
+	rast = NULL;
+
+	/* find raster to use as reference */
+	/* use custom if provided */
+	if (extenttype == ET_CUSTOM) {
+		RASTER_DEBUG(4, "using custom extent as reference raster");
+		rast = customextent;
+	}
+	/* use first valid one in _param->raster */
+	else {
+		for (i = 0; i < itrcount; i++) {
+			if (!_param->isempty[i]) {
+				RASTER_DEBUGF(4, "using raster at index %d as reference raster", i);
+				rast = _param->raster[i];
+				break;
+			}
+		}
+	}
+
+	/* no rasters found, SHOULD NEVER BE HERE! */
+	if (rast == NULL) {
+		rterror("rt_raster_iterator: Could not find reference raster to use for alignment tests");
+
+		_rti_iterator_arg_destroy(_param);
+
+		return ES_ERROR;
+	}
+
+	do {
+		aligned = 1;
+
+		/* check custom first if set. also skip if rasters are the same */
+		if (extenttype == ET_CUSTOM && rast != customextent) {
+			if (rt_raster_same_alignment(rast, customextent, &aligned, NULL) != ES_NONE) {
+				rterror("rt_raster_iterator: Could not test for alignment between reference raster and custom extent");
+
+				_rti_iterator_arg_destroy(_param);
+
+				return ES_ERROR;
+			}
+
+			RASTER_DEBUGF(5, "custom extent alignment: %d", aligned);
+			if (!aligned)
+				break;
+		}
+
+		for (i = 0; i < itrcount; i++) {
+			/* skip NULL rasters and if rasters are the same */
+			if (_param->isempty[i] || rast == _param->raster[i])
+				continue;
+
+			if (rt_raster_same_alignment(rast, _param->raster[i], &aligned, NULL) != ES_NONE) {
+				rterror("rt_raster_iterator: Could not test for alignment between reference raster and raster %d", i);
+
+				_rti_iterator_arg_destroy(_param);
+
+				return ES_ERROR;
+			}
+			RASTER_DEBUGF(5, "raster at index %d alignment: %d", i, aligned);
+
+			/* abort checking since a raster isn't aligned */
+			if (!aligned)
+				break;
+		}
+	}
+	while (0);
+
+	/* not aligned, error */
+	if (!aligned) {
+		rterror("rt_raster_iterator: The set of rasters provided (custom extent included, if appropriate) do not have the same alignment");
+
+		_rti_iterator_arg_destroy(_param);
+
+		return ES_ERROR;
+	}
+
+	/* use extenttype to build output raster (no bands though) */
+	i = -1;
+	switch (extenttype) {
+		case ET_INTERSECTION:
+		case ET_UNION:
+			/* make copy of first "real" raster */
+			rtnrast = rtalloc(sizeof(struct rt_raster_t));
+			if (rtnrast == NULL) {
+				rterror("rt_raster_iterator: Could not allocate memory for output raster");
+
+				_rti_iterator_arg_destroy(_param);
+
+				return ES_ERROR;
+			}
+
+			for (i = 0; i < itrcount; i++) {
+				if (!_param->isempty[i]) {
+					memcpy(rtnrast, _param->raster[i], sizeof(struct rt_raster_serialized_t));
+					break;
+				}
+			}
+			rtnrast->numBands = 0;
+			rtnrast->bands = NULL;
+
+			/* get extent of output raster */
+			rast = NULL;
+			for (i = i + 1; i < itrcount; i++) {
+				if (_param->isempty[i])
+					continue;
+
+				status = rt_raster_from_two_rasters(rtnrast, _param->raster[i], extenttype, &rast, NULL);
+				rtdealloc(rtnrast);
+
+				if (rast == NULL || status != ES_NONE) {
+					rterror("rt_raster_iterator: Could not compute %s extent of rasters",
+						extenttype == ET_UNION ? "union" : "intersection"
+					);
+
+					_rti_iterator_arg_destroy(_param);
+
+					return ES_ERROR;
+				}
+				else if (rt_raster_is_empty(rast)) {
+					rtinfo("rt_raster_iterator: Computed raster for %s extent is empty",
+						extenttype == ET_UNION ? "union" : "intersection"
+					);
+
+					_rti_iterator_arg_destroy(_param);
+
+					*rtnraster = rast;
+					return ES_NONE;
+				}
+
+				rtnrast = rast;
+				rast = NULL;
+			}
+
+			break;
+		/*
+			first, second and last have similar checks
+			and continue into custom
+		*/
+		case ET_FIRST:
+			i = 0;
+		case ET_SECOND:
+			if (i < 0) {
+				if (itrcount < 2)
+					i = 0;
+				else
+					i = 1;
+			}
+		case ET_LAST:
+			if (i < 0) i = itrcount - 1;
+			
+			/* input raster is null, return NULL */
+			if (_param->raster[i] == NULL) {
+				RASTER_DEBUGF(3, "returning NULL as %s raster is NULL and extent type is ET_%s",
+					(i == 0 ? "first" : (i == 1 ? "second" : "last")),
+					(i == 0 ? "FIRST" : (i == 1 ? "SECOND" : "LAST"))
+				);
+
+				_rti_iterator_arg_destroy(_param);
+
+				return ES_NONE;
+			}
+			/* input raster is empty, return empty raster */
+			else if (_param->isempty[i]) {
+				RASTER_DEBUGF(3, "returning empty raster as %s raster is empty and extent type is ET_%s",
+					(i == 0 ? "first" : (i == 1 ? "second" : "last")),
+					(i == 0 ? "FIRST" : (i == 1 ? "SECOND" : "LAST"))
+				);
+
+				_rti_iterator_arg_destroy(_param);
+
+				rtnrast = rt_raster_new(0, 0);
+				if (rtnrast == NULL) {
+					rterror("rt_raster_iterator: Could not create empty raster");
+					return ES_ERROR;
+				}
+				rt_raster_set_scale(rtnrast, 0, 0);
+
+				*rtnraster = rtnrast;
+				return ES_NONE;
+			}
+		/* copy the custom extent raster */
+		case ET_CUSTOM:
+			rtnrast = rtalloc(sizeof(struct rt_raster_t));
+			if (rtnrast == NULL) {
+				rterror("rt_raster_iterator: Could not allocate memory for output raster");
+
+				_rti_iterator_arg_destroy(_param);
+
+				return ES_ERROR;
+			}
+
+			switch (extenttype) {
+				case ET_CUSTOM:
+					memcpy(rtnrast, customextent, sizeof(struct rt_raster_serialized_t));
+					break;
+				/* first, second, last */
+				default:
+					memcpy(rtnrast, _param->raster[i], sizeof(struct rt_raster_serialized_t));
+					break;
+			}
+			rtnrast->numBands = 0;
+			rtnrast->bands = NULL;
+			break;
+	}
+
+	_width = rt_raster_get_width(rtnrast);
+	_height = rt_raster_get_height(rtnrast);
+
+	RASTER_DEBUGF(4, "rtnrast (width, height, ulx, uly, scalex, scaley, skewx, skewy, srid) = (%d, %d, %f, %f, %f, %f, %f, %f, %d)",
+		_width,
+		_height,
+		rt_raster_get_x_offset(rtnrast),
+		rt_raster_get_y_offset(rtnrast),
+		rt_raster_get_x_scale(rtnrast),
+		rt_raster_get_y_scale(rtnrast),
+		rt_raster_get_x_skew(rtnrast),
+		rt_raster_get_y_skew(rtnrast),
+		rt_raster_get_srid(rtnrast)
+	);
+
+	/* init values and NODATA for use with empty rasters */
+	if (!_rti_iterator_arg_empty_init(_param)) {
+		rterror("rt_raster_iterator: Could not initialize empty values and NODATA");
+
+		_rti_iterator_arg_destroy(_param);
+		rt_raster_destroy(rtnrast);
+		
+		return ES_ERROR;
+	}
+
+	/* create output band */
+	if (rt_raster_generate_new_band(
+		rtnrast,
+		pixtype,
+		nodataval,
+		hasnodata, nodataval,
+		0
+	) < 0) {
+		rterror("rt_raster_iterator: Could not add new band to output raster");
+
+		_rti_iterator_arg_destroy(_param);
+		rt_raster_destroy(rtnrast);
+
+		return ES_ERROR;
+	}
+
+	/* get output band */
+	rtnband = rt_raster_get_band(rtnrast, 0);
+	if (rtnband == NULL) {
+		rterror("rt_raster_iterator: Could not get new band from output raster");
+
+		_rti_iterator_arg_destroy(_param);
+		rt_raster_destroy(rtnrast);
+
+		return ES_ERROR;
+	}
+
+	/* output band's minimum value */
+	minval = rt_band_get_min_value(rtnband);
+
+	/* initialize argument for callback function */
+	if (!_rti_iterator_arg_callback_init(_param)) {
+		rterror("rt_raster_iterator: Could not initialize callback function argument");
+
+		_rti_iterator_arg_destroy(_param);
+		rt_band_destroy(rtnband);
+		rt_raster_destroy(rtnrast);
+
+		return ES_ERROR;
+	}
+
+	/* fill _param->offset */
+	for (i = 0; i < itrcount; i++) {
+		if (_param->isempty[i])
+			continue;
+
+		status = rt_raster_from_two_rasters(rtnrast, _param->raster[i], ET_FIRST, &rast, offset);
+		rtdealloc(rast);
+		if (status != ES_NONE) {
+			rterror("rt_raster_iterator: Could not compute raster offsets");
+
+			_rti_iterator_arg_destroy(_param);
+			rt_band_destroy(rtnband);
+			rt_raster_destroy(rtnrast);
+
+			return ES_ERROR;
+		}
+
+		_param->offset[i][0] = offset[2];
+		_param->offset[i][1] = offset[3];
+		RASTER_DEBUGF(4, "rast %d offset: %f %f", i, offset[2], offset[3]);
+	}
+
+	/* loop over each pixel (POI) of output raster */
+	/* _x,_y are for output raster */
+	/* x,y are for input raster */
+	for (_y = 0; _y < _height; _y++) {
+		for (_x = 0; _x < _width; _x++) {
+			RASTER_DEBUGF(4, "iterating output pixel (x, y) = (%d, %d)", _x, _y);
+			_param->arg->dst_pixel[0] = _x;
+			_param->arg->dst_pixel[1] = _y;
+
+			/* loop through each input raster */
+			for (i = 0; i < itrcount; i++) {
+				RASTER_DEBUGF(4, "raster %d", i);
+
+				/*
+					empty raster
+					OR band does not exist and flag set to use NODATA
+					OR band is NODATA
+				*/
+				if (
+					_param->isempty[i] ||
+					(_param->band.rtband[i] == NULL && itrset[i].nbnodata) ||
+					_param->band.isnodata[i]
+				) {
+					RASTER_DEBUG(4, "empty raster, band does not exist or band is NODATA. using empty values and NODATA");
+					
+					x = _x;
+					y = _y;
+
+					_param->arg->values[i] = _param->empty.values;
+					_param->arg->nodata[i] = _param->empty.nodata;
+
+					continue;
+				}
+
+				/* input raster's X,Y */
+				x = _x - (int) _param->offset[i][0];
+				y = _y - (int) _param->offset[i][1];
+				RASTER_DEBUGF(4, "source pixel (x, y) = (%d, %d)", x, y);
+
+				_param->arg->src_pixel[i][0] = x;
+				_param->arg->src_pixel[i][1] = y;
+
+				/* neighborhood */
+				npixels = NULL;
+				status = 0;
+				if (distancex > 0 && distancey > 0) {
+					RASTER_DEBUG(4, "getting neighborhood");
+
+					status = rt_band_get_nearest_pixel(
+						_param->band.rtband[i],
+						x, y,
+						distancex, distancey,
+						1,
+						&npixels
+					);
+					if (status < 0) {
+						rterror("rt_raster_iterator: Could not get pixel neighborhood");
+
+						_rti_iterator_arg_destroy(_param);
+						rt_band_destroy(rtnband);
+						rt_raster_destroy(rtnrast);
+
+						return ES_ERROR;
+					}
+				}
+
+				/* get value of POI */
+				/* get pixel's value */
+				if (
+					(x >= 0 && x < _param->width[i]) &&
+					(y >= 0 && y < _param->height[i])
+				) {
+					RASTER_DEBUG(4, "getting value of POI");
+					if (rt_band_get_pixel(
+						_param->band.rtband[i],
+						x, y,
+						&value,
+						&isnodata
+					) != ES_NONE) {
+						rterror("rt_raster_iterator: Could not get the pixel value of band");
+
+						_rti_iterator_arg_destroy(_param);
+						rt_band_destroy(rtnband);
+						rt_raster_destroy(rtnrast);
+
+						return ES_ERROR;
+					}
+					inextent = 1;
+				}
+				/* outside band extent, set to NODATA */
+				else {
+					RASTER_DEBUG(4, "Outside band extent, setting value to NODATA");
+					/* has NODATA, use NODATA */
+					if (_param->band.hasnodata[i])
+						value = _param->band.nodataval[i];
+					/* no NODATA, use min possible value */
+					else
+						value = _param->band.minval[i];
+
+					inextent = 0;
+					isnodata = 1;
+				}
+
+				/* add pixel to neighborhood */
+				status++;
+				if (status > 1)
+					npixels = (rt_pixel) rtrealloc(npixels, sizeof(struct rt_pixel_t) * status);
+				else
+					npixels = (rt_pixel) rtalloc(sizeof(struct rt_pixel_t));
+
+				if (npixels == NULL) {
+					rterror("rt_raster_iterator: Could not reallocate memory for neighborhood");
+
+					_rti_iterator_arg_destroy(_param);
+					rt_band_destroy(rtnband);
+					rt_raster_destroy(rtnrast);
+
+					return ES_ERROR;
+				}
+
+				npixels[status - 1].x = x;
+				npixels[status - 1].y = y;
+				npixels[status - 1].nodata = 1;
+				npixels[status - 1].value = value;
+
+				/* set nodata flag */
+				if ((!_param->band.hasnodata[i] && inextent) || !isnodata) {
+					npixels[status - 1].nodata = 0;
+				}
+				RASTER_DEBUGF(4, "value, nodata: %f, %d", value, npixels[status - 1].nodata);
+
+				/* convert set of rt_pixel to 2D array */
+				status = rt_pixel_set_to_array(
+					npixels, status,mask,
+					x, y,
+					distancex, distancey,
+					&(_param->arg->values[i]),
+					&(_param->arg->nodata[i]),
+					NULL, NULL
+				);
+				rtdealloc(npixels);
+				if (status != ES_NONE) {
+					rterror("rt_raster_iterator: Could not create 2D array of neighborhood");
+
+					_rti_iterator_arg_destroy(_param);
+					rt_band_destroy(rtnband);
+					rt_raster_destroy(rtnrast);
+
+					return ES_ERROR;
+				}
+			}
+	
+			/* callback */
+			RASTER_DEBUG(4, "calling callback function");
+			value = 0;
+			nodata = 0;
+			status = callback(_param->arg, userarg, &value, &nodata);
+
+			/* free memory from callback */
+			_rti_iterator_arg_callback_clean(_param);
+
+			/* handle callback status */
+			if (status == 0) {
+				rterror("rt_raster_iterator: Callback function returned an error");
+
+				_rti_iterator_arg_destroy(_param);
+				rt_band_destroy(rtnband);
+				rt_raster_destroy(rtnrast);
+
+				return ES_ERROR;
+			}
+
+			/* burn value to pixel */
+			status = 0;
+			if (!nodata) {
+				status = rt_band_set_pixel(rtnband, _x, _y, value, NULL);
+				RASTER_DEBUGF(4, "burning pixel (%d, %d) with value: %f", _x, _y, value);
+			}
+			else if (!hasnodata) {
+				status = rt_band_set_pixel(rtnband, _x, _y, minval, NULL);
+				RASTER_DEBUGF(4, "burning pixel (%d, %d) with minval: %f", _x, _y, minval);
+			}
+			else {
+				RASTER_DEBUGF(4, "NOT burning pixel (%d, %d)", _x, _y);
+			}
+			if (status != ES_NONE) {
+				rterror("rt_raster_iterator: Could not set pixel value");
+
+				_rti_iterator_arg_destroy(_param);
+				rt_band_destroy(rtnband);
+				rt_raster_destroy(rtnrast);
+
+				return ES_ERROR;
+			}
+		}
+	}
+
+	/* lots of cleanup */
+	_rti_iterator_arg_destroy(_param);
+
+	*rtnraster = rtnrast;
+	return ES_NONE;
+}
+
+/******************************************************************************
+* rt_raster_colormap()
+******************************************************************************/
+
+typedef struct _rti_colormap_arg_t* _rti_colormap_arg;
+struct _rti_colormap_arg_t {
+	rt_raster raster;
+	rt_band band;
+
+	rt_colormap_entry nodataentry;
+	int hasnodata;
+	double nodataval;
+
+	int nexpr;
+	rt_reclassexpr *expr;
+
+	int npos;
+	uint16_t *pos;
+
+};
+
+static _rti_colormap_arg
+_rti_colormap_arg_init(rt_raster raster) {
+	_rti_colormap_arg arg = NULL;
+
+	arg = rtalloc(sizeof(struct _rti_colormap_arg_t));
+	if (arg == NULL) {
+		rterror("_rti_colormap_arg_init: Could not allocate memory for _rti_color_arg");
+		return NULL;
+	}
+
+	arg->band = NULL;
+	arg->nodataentry = NULL;
+	arg->hasnodata = 0;
+	arg->nodataval = 0;
+
+	if (raster == NULL)
+		arg->raster = NULL;
+	/* raster provided */
+	else {
+		arg->raster = rt_raster_clone(raster, 0);
+		if (arg->raster == NULL) {
+			rterror("_rti_colormap_arg_init: Could not create output raster");
+			return NULL;
+		}
+	}
+
+	arg->nexpr = 0;
+	arg->expr = NULL;
+
+	arg->npos = 0;
+	arg->pos = NULL;
+
+	return arg;
+}
+
+static void
+_rti_colormap_arg_destroy(_rti_colormap_arg arg) {
+	int i = 0;
+
+	if (arg->raster != NULL) {
+		rt_band band = NULL;
+
+		for (i = rt_raster_get_num_bands(arg->raster) - 1; i >= 0; i--) {
+			band = rt_raster_get_band(arg->raster, i);
+			if (band != NULL)
+				rt_band_destroy(band);
+		}
+
+		rt_raster_destroy(arg->raster);
+	}
+
+	if (arg->nexpr) {
+		for (i = 0; i < arg->nexpr; i++) {
+			if (arg->expr[i] != NULL)
+				rtdealloc(arg->expr[i]);
+		}
+		rtdealloc(arg->expr);
+	}
+
+	if (arg->npos)
+		rtdealloc(arg->pos);
+
+	rtdealloc(arg);
+	arg = NULL;
+}
+
+/**
+ * Returns a new raster with up to four 8BUI bands (RGBA) from
+ * applying a colormap to the user-specified band of the
+ * input raster.
+ *
+ * @param raster: input raster
+ * @param nband: 0-based index of the band to process with colormap
+ * @param colormap: rt_colormap object of colormap to apply to band
+ *
+ * @return new raster or NULL on error
+ */
+rt_raster rt_raster_colormap(
+	rt_raster raster, int nband,
+	rt_colormap colormap
+) {
+	_rti_colormap_arg arg = NULL;
+	rt_raster rtnraster = NULL;
+	rt_band band = NULL;
+	int i = 0;
+	int j = 0;
+	int k = 0;
+
+	assert(colormap != NULL);
+
+	/* empty raster */
+	if (rt_raster_is_empty(raster))
+		return NULL;
+
+	/* no colormap entries */
+	if (colormap->nentry < 1) {
+		rterror("rt_raster_colormap: colormap must have at least one entry");
+		return NULL;
+	}
+
+	/* nband is valid */
+	if (!rt_raster_has_band(raster, nband)) {
+		rterror("rt_raster_colormap: raster has no band at index %d", nband);
+		return NULL;
+	}
+
+	band = rt_raster_get_band(raster, nband);
+	if (band == NULL) {
+		rterror("rt_raster_colormap: Could not get band at index %d", nband);
+		return NULL;
+	}
+
+	/* init internal variables */
+	arg = _rti_colormap_arg_init(raster);
+	if (arg == NULL) {
+		rterror("rt_raster_colormap: Could not initialize internal variables");
+		return NULL;
+	}
+
+	/* handle NODATA */
+	if (rt_band_get_hasnodata_flag(band)) {
+		arg->hasnodata = 1;
+		rt_band_get_nodata(band, &(arg->nodataval));
+	}
+
+	/* # of colors */
+	if (colormap->ncolor < 1) {
+		rterror("rt_raster_colormap: At least one color must be provided");
+		_rti_colormap_arg_destroy(arg);
+		return NULL;
+	}
+	else if (colormap->ncolor > 4) {
+		rtinfo("More than four colors indicated. Using only the first four colors");
+		colormap->ncolor = 4;
+	}
+
+	/* find non-NODATA entries */
+	arg->npos = 0;
+	arg->pos = rtalloc(sizeof(uint16_t) * colormap->nentry);
+	if (arg->pos == NULL) {
+		rterror("rt_raster_colormap: Could not allocate memory for valid entries");
+		_rti_colormap_arg_destroy(arg);
+		return NULL;
+	}
+	for (i = 0, j = 0; i < colormap->nentry; i++) {
+		/* special handling for NODATA entries */
+		if (colormap->entry[i].isnodata) {
+			/* first NODATA entry found, use it */
+			if (arg->nodataentry == NULL)
+				arg->nodataentry = &(colormap->entry[i]);
+			else
+				rtwarn("More than one colormap entry found for NODATA value. Only using first NOTDATA entry");
+
+			continue;
+		}
+
+		(arg->npos)++;
+		arg->pos[j++] = i;
+	}
+
+	/* INTERPOLATE and only one non-NODATA entry */
+	if (colormap->method == CM_INTERPOLATE && arg->npos < 2) {
+		rtwarn("Method INTERPOLATE requires at least two non-NODATA colormap entries. Using NEAREST instead");
+		colormap->method = CM_NEAREST;
+	}
+
+	/* NODATA entry but band has no NODATA value */
+	if (!arg->hasnodata && arg->nodataentry != NULL) {
+		rtinfo("Band at index %d has no NODATA value. Ignoring NODATA entry", nband);
+		arg->nodataentry = NULL;
+	}
+
+	/* allocate expr */
+	arg->nexpr = arg->npos;
+
+	/* INTERPOLATE needs one less than the number of entries */
+	if (colormap->method == CM_INTERPOLATE)
+		arg->nexpr -= 1;
+	/* EXACT requires a no matching expression */
+	else if (colormap->method == CM_EXACT)
+		arg->nexpr += 1;
+
+	/* NODATA entry exists, add expression */
+	if (arg->nodataentry != NULL)
+		arg->nexpr += 1;
+	arg->expr = rtalloc(sizeof(rt_reclassexpr) * arg->nexpr);
+	if (arg->expr == NULL) {
+		rterror("rt_raster_colormap: Could not allocate memory for reclass expressions");
+		_rti_colormap_arg_destroy(arg);
+		return NULL;
+	}
+	RASTER_DEBUGF(4, "nexpr = %d", arg->nexpr);
+	RASTER_DEBUGF(4, "expr @ %p", arg->expr);
+
+	for (i = 0; i < arg->nexpr; i++) {
+		arg->expr[i] = rtalloc(sizeof(struct rt_reclassexpr_t));
+		if (arg->expr[i] == NULL) {
+			rterror("rt_raster_colormap: Could not allocate memory for reclass expression");
+			_rti_colormap_arg_destroy(arg);
+			return NULL;
+		}
+	}
+
+	/* reclassify bands */
+	/* by # of colors */
+	for (i = 0; i < colormap->ncolor; i++) {
+		k = 0;
+
+		/* handle NODATA entry first */
+		if (arg->nodataentry != NULL) {
+			arg->expr[k]->src.min = arg->nodataentry->value;
+			arg->expr[k]->src.max = arg->nodataentry->value;
+			arg->expr[k]->src.inc_min = 1;
+			arg->expr[k]->src.inc_max = 1;
+			arg->expr[k]->src.exc_min = 0;
+			arg->expr[k]->src.exc_max = 0;
+
+			arg->expr[k]->dst.min = arg->nodataentry->color[i];
+			arg->expr[k]->dst.max = arg->nodataentry->color[i];
+
+			arg->expr[k]->dst.inc_min = 1;
+			arg->expr[k]->dst.inc_max = 1;
+			arg->expr[k]->dst.exc_min = 0;
+			arg->expr[k]->dst.exc_max = 0;
+
+			RASTER_DEBUGF(4, "NODATA expr[%d]->src (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
+				k,
+				arg->expr[k]->src.min,
+				arg->expr[k]->src.max,
+				arg->expr[k]->src.inc_min,
+				arg->expr[k]->src.inc_max,
+				arg->expr[k]->src.exc_min,
+				arg->expr[k]->src.exc_max
+			);
+			RASTER_DEBUGF(4, "NODATA expr[%d]->dst (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
+				k,
+				arg->expr[k]->dst.min,
+				arg->expr[k]->dst.max,
+				arg->expr[k]->dst.inc_min,
+				arg->expr[k]->dst.inc_max,
+				arg->expr[k]->dst.exc_min,
+				arg->expr[k]->dst.exc_max
+			);
+
+			k++;
+		}
+
+		/* by non-NODATA entry */
+		for (j = 0; j < arg->npos; j++) {
+			if (colormap->method == CM_INTERPOLATE) {
+				if (j == arg->npos - 1)
+					continue;
+
+				arg->expr[k]->src.min = colormap->entry[arg->pos[j + 1]].value;
+				arg->expr[k]->src.inc_min = 1;
+				arg->expr[k]->src.exc_min = 0;
+
+				arg->expr[k]->src.max = colormap->entry[arg->pos[j]].value;
+				arg->expr[k]->src.inc_max = 1;
+				arg->expr[k]->src.exc_max = 0;
+
+				arg->expr[k]->dst.min = colormap->entry[arg->pos[j + 1]].color[i];
+				arg->expr[k]->dst.max = colormap->entry[arg->pos[j]].color[i];
+
+				arg->expr[k]->dst.inc_min = 1;
+				arg->expr[k]->dst.exc_min = 0;
+
+				arg->expr[k]->dst.inc_max = 1;
+				arg->expr[k]->dst.exc_max = 0;
+			}
+			else if (colormap->method == CM_NEAREST) {
+
+				/* NOT last entry */
+				if (j != arg->npos - 1) {
+					arg->expr[k]->src.min = ((colormap->entry[arg->pos[j]].value - colormap->entry[arg->pos[j + 1]].value) / 2.) + colormap->entry[arg->pos[j + 1]].value;
+					arg->expr[k]->src.inc_min = 0;
+					arg->expr[k]->src.exc_min = 0;
+				}
+				/* last entry */
+				else {
+					arg->expr[k]->src.min = colormap->entry[arg->pos[j]].value;
+					arg->expr[k]->src.inc_min = 1;
+					arg->expr[k]->src.exc_min = 1;
+				}
+
+				/* NOT first entry */
+				if (j > 0) {
+					arg->expr[k]->src.max = arg->expr[k - 1]->src.min;
+					arg->expr[k]->src.inc_max = 1;
+					arg->expr[k]->src.exc_max = 0;
+				}
+				/* first entry */
+				else {
+					arg->expr[k]->src.max = colormap->entry[arg->pos[j]].value;
+					arg->expr[k]->src.inc_max = 1;
+					arg->expr[k]->src.exc_max = 1;
+				}
+
+				arg->expr[k]->dst.min = colormap->entry[arg->pos[j]].color[i];
+				arg->expr[k]->dst.inc_min = 1;
+				arg->expr[k]->dst.exc_min = 0;
+
+				arg->expr[k]->dst.max = colormap->entry[arg->pos[j]].color[i];
+				arg->expr[k]->dst.inc_max = 1;
+				arg->expr[k]->dst.exc_max = 0;
+			}
+			else if (colormap->method == CM_EXACT) {
+				arg->expr[k]->src.min = colormap->entry[arg->pos[j]].value;
+				arg->expr[k]->src.inc_min = 1;
+				arg->expr[k]->src.exc_min = 0;
+
+				arg->expr[k]->src.max = colormap->entry[arg->pos[j]].value;
+				arg->expr[k]->src.inc_max = 1;
+				arg->expr[k]->src.exc_max = 0;
+
+				arg->expr[k]->dst.min = colormap->entry[arg->pos[j]].color[i];
+				arg->expr[k]->dst.inc_min = 1;
+				arg->expr[k]->dst.exc_min = 0;
+
+				arg->expr[k]->dst.max = colormap->entry[arg->pos[j]].color[i];
+				arg->expr[k]->dst.inc_max = 1;
+				arg->expr[k]->dst.exc_max = 0;
+			}
+
+			RASTER_DEBUGF(4, "expr[%d]->src (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
+				k,
+				arg->expr[k]->src.min,
+				arg->expr[k]->src.max,
+				arg->expr[k]->src.inc_min,
+				arg->expr[k]->src.inc_max,
+				arg->expr[k]->src.exc_min,
+				arg->expr[k]->src.exc_max
+			);
+
+			RASTER_DEBUGF(4, "expr[%d]->dst (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
+				k,
+				arg->expr[k]->dst.min,
+				arg->expr[k]->dst.max,
+				arg->expr[k]->dst.inc_min,
+				arg->expr[k]->dst.inc_max,
+				arg->expr[k]->dst.exc_min,
+				arg->expr[k]->dst.exc_max
+			);
+
+			k++;
+		}
+
+		/* EXACT has one last expression for catching all uncaught values */
+		if (colormap->method == CM_EXACT) {
+			arg->expr[k]->src.min = 0;
+			arg->expr[k]->src.inc_min = 1;
+			arg->expr[k]->src.exc_min = 1;
+
+			arg->expr[k]->src.max = 0;
+			arg->expr[k]->src.inc_max = 1;
+			arg->expr[k]->src.exc_max = 1;
+
+			arg->expr[k]->dst.min = 0;
+			arg->expr[k]->dst.inc_min = 1;
+			arg->expr[k]->dst.exc_min = 0;
+
+			arg->expr[k]->dst.max = 0;
+			arg->expr[k]->dst.inc_max = 1;
+			arg->expr[k]->dst.exc_max = 0;
+
+			RASTER_DEBUGF(4, "expr[%d]->src (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
+				k,
+				arg->expr[k]->src.min,
+				arg->expr[k]->src.max,
+				arg->expr[k]->src.inc_min,
+				arg->expr[k]->src.inc_max,
+				arg->expr[k]->src.exc_min,
+				arg->expr[k]->src.exc_max
+			);
+
+			RASTER_DEBUGF(4, "expr[%d]->dst (min, max, in, ix, en, ex) = (%f, %f, %d, %d, %d, %d)",
+				k,
+				arg->expr[k]->dst.min,
+				arg->expr[k]->dst.max,
+				arg->expr[k]->dst.inc_min,
+				arg->expr[k]->dst.inc_max,
+				arg->expr[k]->dst.exc_min,
+				arg->expr[k]->dst.exc_max
+			);
+
+			k++;
+		}
+
+		/* call rt_band_reclass */
+		arg->band = rt_band_reclass(band, PT_8BUI, 0, 0, arg->expr, arg->nexpr);
+		if (arg->band == NULL) {
+			rterror("rt_raster_colormap: Could not reclassify band");
+			_rti_colormap_arg_destroy(arg);
+			return NULL;
+		}
+
+		/* add reclassified band to raster */
+		if (rt_raster_add_band(arg->raster, arg->band, rt_raster_get_num_bands(arg->raster)) < 0) {
+			rterror("rt_raster_colormap: Could not add reclassified band to output raster");
+			_rti_colormap_arg_destroy(arg);
+			return NULL;
+		}
+	}
+
+	rtnraster = arg->raster;
+	arg->raster = NULL;
+	_rti_colormap_arg_destroy(arg);
+
+	return rtnraster;
+}
diff --git a/raster/rt_core/rt_pixel.c b/raster/rt_core/rt_pixel.c
new file mode 100644
index 0000000..2ba9553
--- /dev/null
+++ b/raster/rt_core/rt_pixel.c
@@ -0,0 +1,419 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2013  Nathaniel Hunter Clay <clay.nathaniel 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.
+ *
+ */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+
+/******************************************************************************
+* rt_pixeltype
+******************************************************************************/
+
+int
+rt_pixtype_size(rt_pixtype pixtype) {
+	int pixbytes = -1;
+
+	switch (pixtype) {
+		case PT_1BB:
+		case PT_2BUI:
+		case PT_4BUI:
+		case PT_8BSI:
+		case PT_8BUI:
+			pixbytes = 1;
+			break;
+		case PT_16BSI:
+		case PT_16BUI:
+			pixbytes = 2;
+			break;
+		case PT_32BSI:
+		case PT_32BUI:
+		case PT_32BF:
+			pixbytes = 4;
+			break;
+		case PT_64BF:
+			pixbytes = 8;
+			break;
+		default:
+			rterror("rt_pixtype_size: Unknown pixeltype %d", pixtype);
+			pixbytes = -1;
+			break;
+	}
+
+	RASTER_DEBUGF(3, "Pixel type = %s and size = %d bytes",
+		rt_pixtype_name(pixtype), pixbytes);
+
+	return pixbytes;
+}
+
+int
+rt_pixtype_alignment(rt_pixtype pixtype) {
+	return rt_pixtype_size(pixtype);
+}
+
+rt_pixtype
+rt_pixtype_index_from_name(const char* pixname) {
+	assert(pixname && strlen(pixname) > 0);
+
+	if (strcmp(pixname, "1BB") == 0)
+		return PT_1BB;
+	else if (strcmp(pixname, "2BUI") == 0)
+		return PT_2BUI;
+	else if (strcmp(pixname, "4BUI") == 0)
+		return PT_4BUI;
+	else if (strcmp(pixname, "8BSI") == 0)
+		return PT_8BSI;
+	else if (strcmp(pixname, "8BUI") == 0)
+		return PT_8BUI;
+	else if (strcmp(pixname, "16BSI") == 0)
+		return PT_16BSI;
+	else if (strcmp(pixname, "16BUI") == 0)
+		return PT_16BUI;
+	else if (strcmp(pixname, "32BSI") == 0)
+		return PT_32BSI;
+	else if (strcmp(pixname, "32BUI") == 0)
+		return PT_32BUI;
+	else if (strcmp(pixname, "32BF") == 0)
+		return PT_32BF;
+	else if (strcmp(pixname, "64BF") == 0)
+		return PT_64BF;
+
+	return PT_END;
+}
+
+const char*
+rt_pixtype_name(rt_pixtype pixtype) {
+	switch (pixtype) {
+		case PT_1BB:
+			return "1BB";
+		case PT_2BUI:
+			return "2BUI";
+		case PT_4BUI:
+			return "4BUI";
+		case PT_8BSI:
+			return "8BSI";
+		case PT_8BUI:
+			return "8BUI";
+		case PT_16BSI:
+			return "16BSI";
+		case PT_16BUI:
+			return "16BUI";
+		case PT_32BSI:
+			return "32BSI";
+		case PT_32BUI:
+			return "32BUI";
+		case PT_32BF:
+			return "32BF";
+		case PT_64BF:
+			return "64BF";
+		default:
+			rterror("rt_pixtype_name: Unknown pixeltype %d", pixtype);
+			return "Unknown";
+	}
+}
+
+/**
+ * Return minimum value possible for pixel type
+ *
+ * @param pixtype : the pixel type to get minimum possible value for
+ *
+ * @return the minimum possible value for the pixel type.
+ */
+double
+rt_pixtype_get_min_value(rt_pixtype pixtype) {
+	switch (pixtype) {
+		case PT_1BB: {
+			return (double) rt_util_clamp_to_1BB((double) CHAR_MIN);
+		}
+		case PT_2BUI: {
+			return (double) rt_util_clamp_to_2BUI((double) CHAR_MIN);
+		}
+		case PT_4BUI: {
+			return (double) rt_util_clamp_to_4BUI((double) CHAR_MIN);
+		}
+		case PT_8BUI: {
+			return (double) rt_util_clamp_to_8BUI((double) CHAR_MIN);
+		}
+		case PT_8BSI: {
+			return (double) rt_util_clamp_to_8BSI((double) SCHAR_MIN);
+		}
+		case PT_16BSI: {
+			return (double) rt_util_clamp_to_16BSI((double) SHRT_MIN);
+		}
+		case PT_16BUI: {
+			return (double) rt_util_clamp_to_16BUI((double) SHRT_MIN);
+		}
+		case PT_32BSI: {
+			return (double) rt_util_clamp_to_32BSI((double) INT_MIN);
+		}
+		case PT_32BUI: {
+			return (double) rt_util_clamp_to_32BUI((double) INT_MIN);
+		}
+		case PT_32BF: {
+			return (double) -FLT_MAX;
+		}
+		case PT_64BF: {
+			return (double) -DBL_MAX;
+		}
+		default: {
+			rterror("rt_pixtype_get_min_value: Unknown pixeltype %d", pixtype);
+			return (double) rt_util_clamp_to_8BUI((double) CHAR_MIN);
+		}
+	}
+}
+
+/**
+ * Returns 1 if clamped values are equal, 0 if not equal, -1 if error
+ *
+ * @param pixtype : the pixel type to clamp the provided values
+ * @param val : value to compare to reference value
+ * @param refval : reference value to be compared with
+ * @param isequal : non-zero if clamped values are equal, 0 otherwise
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_pixtype_compare_clamped_values(
+	rt_pixtype pixtype,
+	double val, double refval,
+	int *isequal
+) {
+	assert(isequal != NULL);
+	*isequal = 0;
+
+	switch (pixtype) {
+		case PT_1BB:
+			if (rt_util_clamp_to_1BB(val) == rt_util_clamp_to_1BB(refval))
+				*isequal = 1;
+			break;
+		case PT_2BUI:
+			if (rt_util_clamp_to_2BUI(val) == rt_util_clamp_to_2BUI(refval))
+				*isequal = 1;
+			break;
+		case PT_4BUI:
+			if (rt_util_clamp_to_4BUI(val) == rt_util_clamp_to_4BUI(refval))
+				*isequal = 1;
+			break;
+		case PT_8BSI:
+			if (rt_util_clamp_to_8BSI(val) == rt_util_clamp_to_8BSI(refval))
+				*isequal = 1;
+			break;
+		case PT_8BUI:
+			if (rt_util_clamp_to_8BUI(val) == rt_util_clamp_to_8BUI(refval))
+				*isequal = 1;
+			break;
+		case PT_16BSI:
+			if (rt_util_clamp_to_16BSI(val) == rt_util_clamp_to_16BSI(refval))
+				*isequal = 1;
+			break;
+		case PT_16BUI:
+			if (rt_util_clamp_to_16BUI(val) == rt_util_clamp_to_16BUI(refval))
+				*isequal = 1;
+			break;
+		case PT_32BSI:
+			if (rt_util_clamp_to_32BSI(val) == rt_util_clamp_to_32BSI(refval))
+				*isequal = 1;
+			break;
+		case PT_32BUI:
+			if (rt_util_clamp_to_32BUI(val) == rt_util_clamp_to_32BUI(refval))
+				*isequal = 1;
+			break;
+		case PT_32BF:
+			if (FLT_EQ(rt_util_clamp_to_32F(val), rt_util_clamp_to_32F(refval)))
+				*isequal = 1;
+			break;
+		case PT_64BF:
+			if (FLT_EQ(val, refval))
+				*isequal = 1;
+			break;
+		default:
+			rterror("rt_pixtype_compare_clamped_values: Unknown pixeltype %d", pixtype);
+			return ES_ERROR;
+	}
+
+	return ES_NONE;
+}
+
+/******************************************************************************
+* rt_pixel
+******************************************************************************/
+
+/*
+ * Convert an array of rt_pixel objects to two 2D arrays of value and NODATA.
+ * The dimensions of the returned 2D array are [Y][X], going by row Y and
+ * then column X.
+ *
+ * @param npixel : array of rt_pixel objects
+ * @param count : number of elements in npixel
+ * @param mask : mask to be respected when retruning array
+ * @param x : the column of the center pixel (0-based)
+ * @param y : the line of the center pixel (0-based)
+ * @param distancex : the number of pixels around the specified pixel
+ * along the X axis
+ * @param distancey : the number of pixels around the specified pixel
+ * along the Y axis
+ * @param value : pointer to pointer for 2D value array
+ * @param nodata : pointer to pointer for 2D NODATA array
+ * @param dimx : size of value and nodata along the X axis
+ * @param dimy : size of value and nodata along the Y axis
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate rt_pixel_set_to_array(
+	rt_pixel npixel, int count, rt_mask mask,
+	int x, int y,
+	uint16_t distancex, uint16_t distancey,
+	double ***value,
+	int ***nodata,
+	int *dimx, int *dimy
+) {
+	uint32_t i;
+	uint32_t j;
+	uint32_t dim[2] = {0};
+	double **values = NULL;
+	int **nodatas = NULL;
+	int zero[2] = {0};
+	int _x;
+	int _y;
+
+	assert(npixel != NULL && count > 0);
+	assert(value != NULL);
+	assert(nodata != NULL);
+
+	/* dimensions */
+	dim[0] = distancex * 2 + 1;
+	dim[1] = distancey * 2 + 1;
+	RASTER_DEBUGF(4, "dimensions = %d x %d", dim[0], dim[1]);
+
+	/* make sure that the dimx and dimy match mask */
+	if( mask != NULL) {
+	  if ( dim[0] != mask-> dimx || dim[1] != mask->dimy ){
+	    rterror("rt_pixel_set_array: mask dimentions do not match given dims");
+	    return ES_ERROR;
+	  }
+	  
+	  if ( mask->values == NULL || mask->nodata == NULL ) {
+	    rterror("rt_pixel_set_array: was not properly setup");
+	    return ES_ERROR;
+	  }
+
+	}
+	/* establish 2D arrays (Y axis) */
+	values = rtalloc(sizeof(double *) * dim[1]);
+	nodatas = rtalloc(sizeof(int *) * dim[1]);
+
+	if (values == NULL || nodatas == NULL) {
+		rterror("rt_pixel_set_to_array: Could not allocate memory for 2D array");
+		return ES_ERROR;
+	}
+
+	/* initialize X axis */
+	for (i = 0; i < dim[1]; i++) {
+		values[i] = rtalloc(sizeof(double) * dim[0]);
+		nodatas[i] = rtalloc(sizeof(int) * dim[0]);
+
+		if (values[i] == NULL || nodatas[i] == NULL) {
+			rterror("rt_pixel_set_to_array: Could not allocate memory for dimension of 2D array");
+
+			if (values[i] == NULL) {
+				for (j = 0; j < i; j++) {
+					rtdealloc(values[j]);
+					rtdealloc(nodatas[j]);
+				}
+			}
+			else {
+				for (j = 0; j <= i; j++) {
+					rtdealloc(values[j]);
+					if (j < i)
+						rtdealloc(nodatas[j]);
+				}
+			}
+
+			rtdealloc(values);
+			rtdealloc(nodatas);
+			
+			return ES_ERROR;
+		}
+
+		/* set values to 0 */
+		memset(values[i], 0, sizeof(double) * dim[0]);
+
+		/* set nodatas to 1 */
+		for (j = 0; j < dim[0]; j++)
+			nodatas[i][j] = 1;
+	}
+
+	/* get 0,0 of grid */
+	zero[0] = x - distancex;
+	zero[1] = y - distancey;
+
+	/* populate 2D arrays */
+	for (i = 0; i < count; i++) {
+		if (npixel[i].nodata)
+			continue;
+
+		_x = npixel[i].x - zero[0];
+		_y = npixel[i].y - zero[1];
+
+		RASTER_DEBUGF(4, "absolute x,y: %d x %d", npixel[i].x, npixel[i].y);
+		RASTER_DEBUGF(4, "relative x,y: %d x %d", _x, _y);
+
+		if ( mask == NULL ) {
+		  values[_y][_x] = npixel[i].value;
+		  nodatas[_y][_x] = 0;
+		}else{ 
+		  if( mask->weighted == 0 ){
+		    if( FLT_EQ( mask->values[_y][_x],0) || mask->nodata[_y][_x] == 1 ){
+		      values[_y][_x] = 0;
+		      nodatas[_y][_x] = 1;
+		    }else{
+		      values[_y][_x] = npixel[i].value;
+		      nodatas[_y][_x] = 0;
+		    }
+		  }else{
+		    if( mask->nodata[_y][_x] == 1 ){
+		      values[_y][_x] = 0;
+		      nodatas[_y][_x] = 1;
+		    }else{
+		      values[_y][_x] = npixel[i].value * mask->values[_y][_x];
+		      nodatas[_y][_x] = 0;
+		    }
+		  }
+		}
+
+		RASTER_DEBUGF(4, "(x, y, nodata, value) = (%d, %d, %d, %f)", _x, _y, nodatas[_y][_x], values[_y][_x]);
+	}
+
+	*value = &(*values);
+	*nodata = &(*nodatas);
+	if (dimx != NULL)
+		*dimx = dim[0];
+	if (dimy != NULL)
+		*dimy = dim[1];
+
+	return ES_NONE;
+}
diff --git a/raster/rt_core/rt_raster.c b/raster/rt_core/rt_raster.c
new file mode 100644
index 0000000..f8b4c03
--- /dev/null
+++ b/raster/rt_core/rt_raster.c
@@ -0,0 +1,3733 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2013 Bborie Park <dustymugs at gmail.com> 
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+
+#include <math.h>
+
+/**
+ * Construct a raster with given dimensions.
+ *
+ * Transform will be set to identity.
+ * Will contain no bands.
+ *
+ * @param width : number of pixel columns
+ * @param height : number of pixel rows
+ *
+ * @return an rt_raster or NULL if out of memory
+ */
+rt_raster
+rt_raster_new(uint32_t width, uint32_t height) {
+	rt_raster ret = NULL;
+
+	ret = (rt_raster) rtalloc(sizeof (struct rt_raster_t));
+	if (!ret) {
+		rterror("rt_raster_new: Out of virtual memory creating an rt_raster");
+		return NULL;
+	}
+
+	RASTER_DEBUGF(3, "Created rt_raster @ %p", ret);
+
+	if (width > 65535 || height > 65535) {
+		rterror("rt_raster_new: Dimensions requested exceed the maximum (65535 x 65535) permitted for a raster");
+		rt_raster_destroy(ret);
+		return NULL;
+	}
+
+	ret->width = width;
+	ret->height = height;
+	ret->scaleX = 1;
+	ret->scaleY = -1;
+	ret->ipX = 0.0;
+	ret->ipY = 0.0;
+	ret->skewX = 0.0;
+	ret->skewY = 0.0;
+	ret->srid = SRID_UNKNOWN;
+
+	ret->numBands = 0;
+	ret->bands = NULL; 
+
+	return ret;
+}
+
+void
+rt_raster_destroy(rt_raster raster) {
+	if (raster == NULL)
+		return;
+
+	RASTER_DEBUGF(3, "Destroying rt_raster @ %p", raster);
+
+	if (raster->bands)
+		rtdealloc(raster->bands);
+
+	rtdealloc(raster);
+}
+
+static void
+_rt_raster_geotransform_warn_offline_band(rt_raster raster) {
+	int numband = 0;
+	int i = 0;
+	rt_band band = NULL;
+
+	if (raster == NULL)
+		return;
+
+	numband = rt_raster_get_num_bands(raster);
+	if (numband < 1)
+		return;
+
+	for (i = 0; i < numband; i++) {
+		band = rt_raster_get_band(raster, i);
+		if (NULL == band)
+			continue;
+
+		if (!rt_band_is_offline(band))
+			continue;
+
+		rtwarn("Changes made to raster geotransform matrix may affect out-db band data. Returned band data may be incorrect");
+		break;
+	}
+}
+
+uint16_t
+rt_raster_get_width(rt_raster raster) {
+
+    assert(NULL != raster);
+
+    return raster->width;
+}
+
+uint16_t
+rt_raster_get_height(rt_raster raster) {
+
+    assert(NULL != raster);
+
+    return raster->height;
+}
+
+void
+rt_raster_set_scale(
+	rt_raster raster,
+	double scaleX, double scaleY
+) {
+	assert(NULL != raster);
+
+	raster->scaleX = scaleX;
+	raster->scaleY = scaleY;
+
+	_rt_raster_geotransform_warn_offline_band(raster);
+}
+
+double
+rt_raster_get_x_scale(rt_raster raster) {
+
+
+    assert(NULL != raster);
+
+    return raster->scaleX;
+}
+
+double
+rt_raster_get_y_scale(rt_raster raster) {
+
+
+    assert(NULL != raster);
+
+    return raster->scaleY;
+}
+
+void
+rt_raster_set_skews(
+	rt_raster raster,
+	double skewX, double skewY
+) {
+	assert(NULL != raster);
+
+	raster->skewX = skewX;
+	raster->skewY = skewY;
+
+	_rt_raster_geotransform_warn_offline_band(raster);
+}
+
+double
+rt_raster_get_x_skew(rt_raster raster) {
+
+
+    assert(NULL != raster);
+
+    return raster->skewX;
+}
+
+double
+rt_raster_get_y_skew(rt_raster raster) {
+
+
+    assert(NULL != raster);
+
+    return raster->skewY;
+}
+
+void
+rt_raster_set_offsets(
+	rt_raster raster,
+	double x, double y
+) {
+
+	assert(NULL != raster);
+
+	raster->ipX = x;
+	raster->ipY = y;
+
+	_rt_raster_geotransform_warn_offline_band(raster);
+}
+
+double
+rt_raster_get_x_offset(rt_raster raster) {
+
+
+    assert(NULL != raster);
+
+    return raster->ipX;
+}
+
+double
+rt_raster_get_y_offset(rt_raster raster) {
+
+
+    assert(NULL != raster);
+
+    return raster->ipY;
+}
+
+void
+rt_raster_get_phys_params(rt_raster rast,
+        double *i_mag, double *j_mag, double *theta_i, double *theta_ij)
+{
+    double o11, o12, o21, o22 ; /* geotransform coefficients */
+
+    if (rast == NULL) return ;
+    if ( (i_mag==NULL) || (j_mag==NULL) || (theta_i==NULL) || (theta_ij==NULL))
+        return ;
+
+    /* retrieve coefficients from raster */
+    o11 = rt_raster_get_x_scale(rast) ;
+    o12 = rt_raster_get_x_skew(rast) ;
+    o21 = rt_raster_get_y_skew(rast) ;
+    o22 = rt_raster_get_y_scale(rast) ;
+
+    rt_raster_calc_phys_params(o11, o12, o21, o22, i_mag, j_mag, theta_i, theta_ij);
+}
+
+void
+rt_raster_calc_phys_params(double xscale, double xskew, double yskew, double yscale,
+                           double *i_mag, double *j_mag, double *theta_i, double *theta_ij)
+
+{
+    double theta_test ;
+
+    if ( (i_mag==NULL) || (j_mag==NULL) || (theta_i==NULL) || (theta_ij==NULL))
+        return ;
+
+    /* pixel size in the i direction */
+    *i_mag = sqrt(xscale*xscale + yskew*yskew) ;
+
+    /* pixel size in the j direction */
+    *j_mag = sqrt(xskew*xskew + yscale*yscale) ;
+
+    /* Rotation
+     * ========
+     * Two steps:
+     * 1] calculate the magnitude of the angle between the x axis and
+     *     the i basis vector.
+     * 2] Calculate the sign of theta_i based on the angle between the y axis
+     *     and the i basis vector.
+     */
+    *theta_i = acos(xscale/(*i_mag)) ;  /* magnitude */
+    theta_test = acos(yskew/(*i_mag)) ; /* sign */
+    if (theta_test < M_PI_2){
+        *theta_i = -(*theta_i) ;
+    }
+
+
+    /* Angular separation of basis vectors
+     * ===================================
+     * Two steps:
+     * 1] calculate the magnitude of the angle between the j basis vector and
+     *     the i basis vector.
+     * 2] Calculate the sign of theta_ij based on the angle between the
+     *    perpendicular of the i basis vector and the j basis vector.
+     */
+    *theta_ij = acos(((xscale*xskew) + (yskew*yscale))/((*i_mag)*(*j_mag))) ;
+    theta_test = acos( ((-yskew*xskew)+(xscale*yscale)) /
+            ((*i_mag)*(*j_mag)));
+    if (theta_test > M_PI_2) {
+        *theta_ij = -(*theta_ij) ;
+    }
+}
+
+void
+rt_raster_set_phys_params(rt_raster rast,double i_mag, double j_mag, double theta_i, double theta_ij)
+{
+    double o11, o12, o21, o22 ; /* calculated geotransform coefficients */
+    int success ;
+
+    if (rast == NULL) return ;
+
+    success = rt_raster_calc_gt_coeff(i_mag, j_mag, theta_i, theta_ij,
+                            &o11, &o12, &o21, &o22) ;
+
+    if (success) {
+        rt_raster_set_scale(rast, o11, o22) ;
+        rt_raster_set_skews(rast, o12, o21) ;
+    }
+}
+
+int
+rt_raster_calc_gt_coeff(double i_mag, double j_mag, double theta_i, double theta_ij,
+                        double *xscale, double *xskew, double *yskew, double *yscale)
+{
+    double f ;        /* reflection flag 1.0 or -1.0 */
+    double k_i ;      /* shearing coefficient */
+    double s_i, s_j ; /* scaling coefficients */
+    double cos_theta_i, sin_theta_i ;
+
+    if ( (xscale==NULL) || (xskew==NULL) || (yskew==NULL) || (yscale==NULL)) {
+        return 0;
+    }
+
+    if ( (theta_ij == 0.0) || (theta_ij == M_PI)) {
+        return 0;
+    }
+
+    /* Reflection across the i axis */
+    f=1.0 ;
+    if (theta_ij < 0) {
+        f = -1.0;
+    }
+
+    /* scaling along i axis */
+    s_i = i_mag ;
+
+    /* shearing parallel to i axis */
+    k_i = tan(f*M_PI_2 - theta_ij) ;
+
+    /* scaling along j axis */
+    s_j = j_mag / (sqrt(k_i*k_i + 1)) ;
+
+    /* putting it altogether */
+    cos_theta_i = cos(theta_i) ;
+    sin_theta_i = sin(theta_i) ;
+    *xscale = s_i * cos_theta_i ;
+    *xskew  = k_i * s_j * f * cos_theta_i + s_j * f * sin_theta_i ;
+    *yskew  = -s_i * sin_theta_i ;
+    *yscale = -k_i * s_j * f * sin_theta_i + s_j * f * cos_theta_i ;
+    return 1;
+}
+
+int32_t
+rt_raster_get_srid(rt_raster raster) {
+	assert(NULL != raster);
+
+	return clamp_srid(raster->srid);
+}
+
+void
+rt_raster_set_srid(rt_raster raster, int32_t srid) {
+	assert(NULL != raster);
+
+	raster->srid = clamp_srid(srid);
+
+	_rt_raster_geotransform_warn_offline_band(raster);
+}
+
+int
+rt_raster_get_num_bands(rt_raster raster) {
+
+
+    assert(NULL != raster);
+
+    return raster->numBands;
+}
+
+rt_band
+rt_raster_get_band(rt_raster raster, int n) {
+	assert(NULL != raster);
+
+	if (n >= raster->numBands || n < 0)
+		return NULL;
+
+	return raster->bands[n];
+}
+
+/******************************************************************************
+* rt_raster_add_band()
+******************************************************************************/
+
+/**
+ * Add band data to a raster.
+ *
+ * @param raster : the raster to add a band to
+ * @param band : the band to add, ownership left to caller.
+ *               Band dimensions are required to match with raster ones.
+ * @param index : the position where to insert the new band (0 based)
+ *
+ * @return identifier (position) for the just-added raster, or -1 on error
+ */
+int
+rt_raster_add_band(rt_raster raster, rt_band band, int index) {
+    rt_band *oldbands = NULL;
+    rt_band oldband = NULL;
+    rt_band tmpband = NULL;
+    uint16_t i = 0;
+
+    assert(NULL != raster);
+		assert(NULL != band);
+
+    RASTER_DEBUGF(3, "Adding band %p to raster %p", band, raster);
+
+    if (band->width != raster->width || band->height != raster->height) {
+        rterror("rt_raster_add_band: Can't add a %dx%d band to a %dx%d raster",
+                band->width, band->height, raster->width, raster->height);
+        return -1;
+    }
+
+    if (index > raster->numBands)
+        index = raster->numBands;
+
+    if (index < 0)
+        index = 0;
+
+    oldbands = raster->bands;
+
+    RASTER_DEBUGF(3, "Oldbands at %p", oldbands);
+
+    raster->bands = (rt_band*) rtrealloc(raster->bands,
+            sizeof (rt_band)*(raster->numBands + 1)
+            );
+
+    RASTER_DEBUG(3, "Checking bands");
+
+    if (NULL == raster->bands) {
+        rterror("rt_raster_add_band: Out of virtual memory "
+                "reallocating band pointers");
+        raster->bands = oldbands;
+        return -1;
+    }
+
+    RASTER_DEBUGF(4, "realloc returned %p", raster->bands);
+
+    for (i = 0; i <= raster->numBands; ++i) {
+        if (i == index) {
+            oldband = raster->bands[i];
+            raster->bands[i] = band;
+        } else if (i > index) {
+            tmpband = raster->bands[i];
+            raster->bands[i] = oldband;
+            oldband = tmpband;
+        }
+    }
+
+		band->raster = raster;
+
+    raster->numBands++;
+
+    RASTER_DEBUGF(4, "Raster now has %d bands", raster->numBands);
+
+    return index;
+}
+
+/******************************************************************************
+* rt_raster_generate_new_band()
+******************************************************************************/
+
+/**
+ * Generate a new inline band and add it to a raster.
+ * Memory is allocated in this function for band data.
+ *
+ * @param raster : the raster to add a band to
+ * @param pixtype : the pixel type for the new band
+ * @param initialvalue : initial value for pixels
+ * @param hasnodata : indicates if the band has a nodata value
+ * @param nodatavalue : nodata value for the new band
+ * @param index : position to add the new band in the raster
+ *
+ * @return identifier (position) for the just-added raster, or -1 on error
+ */
+int
+rt_raster_generate_new_band(
+	rt_raster raster, rt_pixtype pixtype,
+	double initialvalue, uint32_t hasnodata, double nodatavalue,
+	int index
+) {
+    rt_band band = NULL;
+    int width = 0;
+    int height = 0;
+    int numval = 0;
+    int datasize = 0;
+    int oldnumbands = 0;
+    int numbands = 0;
+    void * mem = NULL;
+    int32_t checkvalint = 0;
+    uint32_t checkvaluint = 0;
+    double checkvaldouble = 0;
+    float checkvalfloat = 0;
+    int i;
+
+
+    assert(NULL != raster);
+
+    /* Make sure index is in a valid range */
+    oldnumbands = rt_raster_get_num_bands(raster);
+    if (index < 0)
+        index = 0;
+    else if (index > oldnumbands + 1)
+        index = oldnumbands + 1;
+
+    /* Determine size of memory block to allocate and allocate it */
+    width = rt_raster_get_width(raster);
+    height = rt_raster_get_height(raster);
+    numval = width * height;
+    datasize = rt_pixtype_size(pixtype) * numval;
+
+    mem = (int *)rtalloc(datasize);
+    if (!mem) {
+        rterror("rt_raster_generate_new_band: Could not allocate memory for band");
+        return -1;
+    }
+
+    if (FLT_EQ(initialvalue, 0.0))
+        memset(mem, 0, datasize);
+    else {
+        switch (pixtype)
+        {
+            case PT_1BB:
+            {
+                uint8_t *ptr = mem;
+                uint8_t clamped_initval = rt_util_clamp_to_1BB(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvalint = ptr[0];
+                break;
+            }
+            case PT_2BUI:
+            {
+                uint8_t *ptr = mem;
+                uint8_t clamped_initval = rt_util_clamp_to_2BUI(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvalint = ptr[0];
+                break;
+            }
+            case PT_4BUI:
+            {
+                uint8_t *ptr = mem;
+                uint8_t clamped_initval = rt_util_clamp_to_4BUI(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvalint = ptr[0];
+                break;
+            }
+            case PT_8BSI:
+            {
+                int8_t *ptr = mem;
+                int8_t clamped_initval = rt_util_clamp_to_8BSI(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvalint = ptr[0];
+                break;
+            }
+            case PT_8BUI:
+            {
+                uint8_t *ptr = mem;
+                uint8_t clamped_initval = rt_util_clamp_to_8BUI(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvalint = ptr[0];
+                break;
+            }
+            case PT_16BSI:
+            {
+                int16_t *ptr = mem;
+                int16_t clamped_initval = rt_util_clamp_to_16BSI(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvalint = ptr[0];
+                break;
+            }
+            case PT_16BUI:
+            {
+                uint16_t *ptr = mem;
+                uint16_t clamped_initval = rt_util_clamp_to_16BUI(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvalint = ptr[0];
+                break;
+            }
+            case PT_32BSI:
+            {
+                int32_t *ptr = mem;
+                int32_t clamped_initval = rt_util_clamp_to_32BSI(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvalint = ptr[0];
+                break;
+            }
+            case PT_32BUI:
+            {
+                uint32_t *ptr = mem;
+                uint32_t clamped_initval = rt_util_clamp_to_32BUI(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvaluint = ptr[0];
+                break;
+            }
+            case PT_32BF:
+            {
+                float *ptr = mem;
+                float clamped_initval = rt_util_clamp_to_32F(initialvalue);
+                for (i = 0; i < numval; i++)
+                    ptr[i] = clamped_initval;
+                checkvalfloat = ptr[0];
+                break;
+            }
+            case PT_64BF:
+            {
+                double *ptr = mem;
+                for (i = 0; i < numval; i++)
+                    ptr[i] = initialvalue;
+                checkvaldouble = ptr[0];
+                break;
+            }
+            default:
+            {
+                rterror("rt_raster_generate_new_band: Unknown pixeltype %d", pixtype);
+                rtdealloc(mem);
+                return -1;
+            }
+        }
+    }
+
+    /* Overflow checking */
+    rt_util_dbl_trunc_warning(
+			initialvalue,
+			checkvalint, checkvaluint,
+			checkvalfloat, checkvaldouble,
+			pixtype
+		);
+
+    band = rt_band_new_inline(width, height, pixtype, hasnodata, nodatavalue, mem);
+    if (! band) {
+        rterror("rt_raster_generate_new_band: Could not add band to raster. Aborting");
+        rtdealloc(mem);
+        return -1;
+    }
+		rt_band_set_ownsdata_flag(band, 1); /* we DO own this data!!! */
+    index = rt_raster_add_band(raster, band, index);
+    numbands = rt_raster_get_num_bands(raster);
+    if (numbands == oldnumbands || index == -1) {
+        rterror("rt_raster_generate_new_band: Could not add band to raster. Aborting");
+        rt_band_destroy(band);
+    }
+
+		/* set isnodata if hasnodata = TRUE and initial value = nodatavalue */
+		if (hasnodata && FLT_EQ(initialvalue, nodatavalue))
+			rt_band_set_isnodata_flag(band, 1);
+
+    return index;
+}
+
+/**
+ * Get 6-element array of raster inverse geotransform matrix
+ *
+ * @param raster : the raster to get matrix of
+ * @param gt : optional input parameter, 6-element geotransform matrix
+ * @param igt : output parameter, 6-element inverse geotransform matrix
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_get_inverse_geotransform_matrix(
+	rt_raster raster,
+	double *gt, double *igt
+) {
+	double _gt[6] = {0};
+
+	assert((raster != NULL || gt != NULL));
+	assert(igt != NULL);
+
+	if (gt == NULL)
+		rt_raster_get_geotransform_matrix(raster, _gt);
+	else
+		memcpy(_gt, gt, sizeof(double) * 6);
+	
+	if (!GDALInvGeoTransform(_gt, igt)) {
+		rterror("rt_raster_get_inverse_geotransform_matrix: Could not compute inverse geotransform matrix");
+		return ES_ERROR;
+	}
+
+	return ES_NONE;
+}
+
+/**
+ * Get 6-element array of raster geotransform matrix
+ *
+ * @param raster : the raster to get matrix of
+ * @param gt : output parameter, 6-element geotransform matrix
+ *
+ */
+void
+rt_raster_get_geotransform_matrix(rt_raster raster,
+	double *gt) {
+	assert(NULL != raster);
+	assert(NULL != gt);
+
+	gt[0] = raster->ipX;
+	gt[1] = raster->scaleX;
+	gt[2] = raster->skewX;
+	gt[3] = raster->ipY;
+	gt[4] = raster->skewY;
+	gt[5] = raster->scaleY;
+}
+
+/**
+ * Set raster's geotransform using 6-element array
+ *
+ * @param raster : the raster to set matrix of
+ * @param gt : intput parameter, 6-element geotransform matrix
+ *
+ */
+void
+rt_raster_set_geotransform_matrix(rt_raster raster,
+	double *gt) {
+	assert(NULL != raster);
+	assert(NULL != gt);
+
+	raster->ipX = gt[0];
+	raster->scaleX = gt[1];
+	raster->skewX = gt[2];
+	raster->ipY = gt[3];
+	raster->skewY = gt[4];
+	raster->scaleY = gt[5];
+
+	_rt_raster_geotransform_warn_offline_band(raster);
+}
+
+/**
+ * Convert an xr, yr raster point to an xw, yw point on map
+ *
+ * @param raster : the raster to get info from
+ * @param xr : the pixel's column
+ * @param yr : the pixel's row
+ * @param xw : output parameter, X ordinate of the geographical point
+ * @param yw : output parameter, Y ordinate of the geographical point
+ * @param gt : input/output parameter, 3x2 geotransform matrix
+ *
+ * @return ES_NONE if success, ES_ERROR if error 
+ */
+rt_errorstate
+rt_raster_cell_to_geopoint(
+	rt_raster raster,
+	double xr, double yr,
+	double *xw, double *yw,
+	double *gt
+) {
+	double _gt[6] = {0};
+
+	assert(NULL != raster);
+	assert(NULL != xw && NULL != yw);
+
+	if (NULL != gt)
+		memcpy(_gt, gt, sizeof(double) * 6);
+
+	/* scale of matrix is not set */
+	if (
+		FLT_EQ(_gt[1], 0) ||
+		FLT_EQ(_gt[5], 0)
+	) {
+		rt_raster_get_geotransform_matrix(raster, _gt);
+	}
+
+	RASTER_DEBUGF(4, "gt = (%f, %f, %f, %f, %f, %f)",
+		_gt[0],
+		_gt[1],
+		_gt[2],
+		_gt[3],
+		_gt[4],
+		_gt[5]
+	);
+
+	GDALApplyGeoTransform(_gt, xr, yr, xw, yw);
+	RASTER_DEBUGF(4, "GDALApplyGeoTransform (c -> g) for (%f, %f) = (%f, %f)",
+		xr, yr, *xw, *yw);
+
+	return ES_NONE;
+}
+
+/**
+ * Convert an xw,yw map point to a xr,yr raster point
+ *
+ * @param raster : the raster to get info from
+ * @param xw : X ordinate of the geographical point
+ * @param yw : Y ordinate of the geographical point
+ * @param xr : output parameter, the pixel's column
+ * @param yr : output parameter, the pixel's row
+ * @param igt : input/output parameter, inverse geotransform matrix
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_raster_geopoint_to_cell(
+	rt_raster raster,
+	double xw, double yw,
+	double *xr, double *yr,
+	double *igt
+) {
+	double _igt[6] = {0};
+	double rnd = 0;
+
+	assert(NULL != raster);
+	assert(NULL != xr && NULL != yr);
+
+	if (igt != NULL)
+		memcpy(_igt, igt, sizeof(double) * 6);
+
+	/* matrix is not set */
+	if (
+		FLT_EQ(_igt[0], 0.) &&
+		FLT_EQ(_igt[1], 0.) &&
+		FLT_EQ(_igt[2], 0.) &&
+		FLT_EQ(_igt[3], 0.) &&
+		FLT_EQ(_igt[4], 0.) &&
+		FLT_EQ(_igt[5], 0.)
+	) {
+		if (rt_raster_get_inverse_geotransform_matrix(raster, NULL, _igt) != ES_NONE) {
+			rterror("rt_raster_geopoint_to_cell: Could not get inverse geotransform matrix");
+			return ES_ERROR;
+		}
+	}
+
+	GDALApplyGeoTransform(_igt, xw, yw, xr, yr);
+	RASTER_DEBUGF(4, "GDALApplyGeoTransform (g -> c) for (%f, %f) = (%f, %f)",
+		xw, yw, *xr, *yr);
+
+	rnd = ROUND(*xr, 0);
+	if (FLT_EQ(rnd, *xr))
+		*xr = rnd;
+	else
+		*xr = floor(*xr);
+
+	rnd = ROUND(*yr, 0);
+	if (FLT_EQ(rnd, *yr))
+		*yr = rnd;
+	else
+		*yr = floor(*yr);
+
+	RASTER_DEBUGF(4, "Corrected GDALApplyGeoTransform (g -> c) for (%f, %f) = (%f, %f)",
+		xw, yw, *xr, *yr);
+
+	return ES_NONE;
+}
+
+/******************************************************************************
+* rt_raster_get_envelope()
+******************************************************************************/
+
+/**
+ * Get raster's envelope.
+ *
+ * The envelope is the minimum bounding rectangle of the raster
+ *
+ * @param raster : the raster to get envelope of
+ * @param env : pointer to rt_envelope
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_raster_get_envelope(
+	rt_raster raster,
+	rt_envelope *env
+) {
+	int i;
+	int rtn;
+	int set = 0;
+	double _r[2] = {0.};
+	double _w[2] = {0.};
+	double _gt[6] = {0.};
+
+	assert(raster != NULL);
+	assert(env != NULL);
+
+	rt_raster_get_geotransform_matrix(raster, _gt);
+
+	for (i = 0; i < 4; i++) {
+		switch (i) {
+			case 0:
+				_r[0] = 0;
+				_r[1] = 0;
+				break;
+			case 1:
+				_r[0] = 0;
+				_r[1] = raster->height;
+				break;
+			case 2:
+				_r[0] = raster->width;
+				_r[1] = raster->height;
+				break;
+			case 3:
+				_r[0] = raster->width;
+				_r[1] = 0;
+				break;
+		}
+
+		rtn = rt_raster_cell_to_geopoint(
+			raster,
+			_r[0], _r[1],
+			&(_w[0]), &(_w[1]),
+			_gt
+		);
+		if (rtn != ES_NONE) {
+			rterror("rt_raster_get_envelope: Could not compute spatial coordinates for raster pixel");
+			return ES_ERROR;
+		}
+
+		if (!set) {
+			set = 1;
+			env->MinX = _w[0];
+			env->MaxX = _w[0];
+			env->MinY = _w[1];
+			env->MaxY = _w[1];
+		}
+		else {
+			if (_w[0] < env->MinX)
+				env->MinX = _w[0];
+			else if (_w[0] > env->MaxX)
+				env->MaxX = _w[0];
+
+			if (_w[1] < env->MinY)
+				env->MinY = _w[1];
+			else if (_w[1] > env->MaxY)
+				env->MaxY = _w[1];
+		}
+	}
+
+	return ES_NONE;
+}
+
+/******************************************************************************
+* rt_raster_compute_skewed_raster()
+******************************************************************************/
+
+/*
+ * Compute skewed extent that covers unskewed extent.
+ *
+ * @param envelope : unskewed extent of type rt_envelope
+ * @param skew : pointer to 2-element array (x, y) of skew
+ * @param scale : pointer to 2-element array (x, y) of scale
+ * @param tolerance : value between 0 and 1 where the smaller the tolerance
+ * results in an extent approaching the "minimum" skewed extent.
+ * If value <= 0, tolerance = 0.1. If value > 1, tolerance = 1.
+ *
+ * @return skewed raster who's extent covers unskewed extent, NULL on error
+ */
+rt_raster
+rt_raster_compute_skewed_raster(
+	rt_envelope extent,
+	double *skew,
+	double *scale,
+	double tolerance
+) {
+	uint32_t run = 0;
+	uint32_t max_run = 1;
+	double dbl_run = 0;
+
+	int rtn;
+	int covers = 0;
+	rt_raster raster;
+	double _gt[6] = {0};
+	double _igt[6] = {0};
+	int _d[2] = {1, -1};
+	int _dlast = 0;
+	int _dlastpos = 0;
+	double _w[2] = {0};
+	double _r[2] = {0};
+	double _xy[2] = {0};
+	int i;
+	int j;
+	int x;
+	int y;
+
+	LWGEOM *geom = NULL;
+	GEOSGeometry *sgeom = NULL;
+	GEOSGeometry *ngeom = NULL;
+
+	if (
+		(tolerance < 0.) ||
+		FLT_EQ(tolerance, 0.)
+	) {
+		tolerance = 0.1;
+	}
+	else if (tolerance > 1.)
+		tolerance = 1;
+
+	dbl_run = tolerance;
+	while (dbl_run < 10) {
+		dbl_run *= 10.;
+		max_run *= 10;
+	}
+
+	/* scale must be provided */
+	if (scale == NULL)
+		return NULL;
+	for (i = 0; i < 2; i++) {
+		if (FLT_EQ(scale[i], 0)) {
+			rterror("rt_raster_compute_skewed_raster: Scale cannot be zero");
+			return 0;
+		}
+
+		if (i < 1)
+			_gt[1] = fabs(scale[i] * tolerance);
+		else
+			_gt[5] = fabs(scale[i] * tolerance);
+	}
+	/* conform scale-y to be negative */
+	_gt[5] *= -1;
+
+	/* skew not provided or skew is zero, return raster of correct dim and spatial attributes */
+	if (
+		(skew == NULL) || (
+			FLT_EQ(skew[0], 0) &&
+			FLT_EQ(skew[1], 0)
+		)
+	) {
+		int _dim[2] = {
+			(int) fmax((fabs(extent.MaxX - extent.MinX) + (fabs(scale[0]) / 2.)) / fabs(scale[0]), 1),
+			(int) fmax((fabs(extent.MaxY - extent.MinY) + (fabs(scale[1]) / 2.)) / fabs(scale[1]), 1)
+		};
+
+		raster = rt_raster_new(_dim[0], _dim[1]);
+		if (raster == NULL) {
+			rterror("rt_raster_compute_skewed_raster: Could not create output raster");
+			return NULL;
+		}
+
+		rt_raster_set_offsets(raster, extent.MinX, extent.MaxY);
+		rt_raster_set_scale(raster, fabs(scale[0]), -1 * fabs(scale[1]));
+		rt_raster_set_skews(raster, skew[0], skew[1]);
+
+		return raster;
+	}
+
+	/* direction to shift upper-left corner */
+	if (skew[0] > 0.)
+		_d[0] = -1;
+	if (skew[1] < 0.)
+		_d[1] = 1;
+
+	/* geotransform */
+	_gt[0] = extent.UpperLeftX;
+	_gt[2] = skew[0] * tolerance;
+	_gt[3] = extent.UpperLeftY;
+	_gt[4] = skew[1] * tolerance;
+
+	RASTER_DEBUGF(4, "Initial geotransform: %f, %f, %f, %f, %f, %f",
+		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]
+	);
+	RASTER_DEBUGF(4, "Delta: %d, %d", _d[0], _d[1]);
+
+	/* simple raster */
+	if ((raster = rt_raster_new(1, 1)) == NULL) {
+		rterror("rt_raster_compute_skewed_raster: Out of memory allocating extent raster");
+		return NULL;
+	}
+	rt_raster_set_geotransform_matrix(raster, _gt);
+
+	/* get inverse geotransform matrix */
+	if (!GDALInvGeoTransform(_gt, _igt)) {
+		rterror("rt_raster_compute_skewed_raster: Could not compute inverse geotransform matrix");
+		rt_raster_destroy(raster);
+		return NULL;
+	}
+	RASTER_DEBUGF(4, "Inverse geotransform: %f, %f, %f, %f, %f, %f",
+		_igt[0], _igt[1], _igt[2], _igt[3], _igt[4], _igt[5]
+	);
+
+	/* shift along axis */
+	for (i = 0; i < 2; i++) {
+		covers = 0;
+		run = 0;
+
+		RASTER_DEBUGF(3, "Shifting along %s axis", i < 1 ? "X" : "Y");
+
+		do {
+
+			/* prevent possible infinite loop */
+			if (run > max_run) {
+				rterror("rt_raster_compute_skewed_raster: Could not compute skewed extent due to check preventing infinite loop");
+				rt_raster_destroy(raster);
+				return NULL;
+			}
+
+			/*
+				check the four corners that they are covered along the specific axis
+				pixel column should be >= 0
+			*/
+			for (j = 0; j < 4; j++) {
+				switch (j) {
+					/* upper-left */
+					case 0:
+						_xy[0] = extent.MinX;
+						_xy[1] = extent.MaxY;
+						break;
+					/* lower-left */
+					case 1:
+						_xy[0] = extent.MinX;
+						_xy[1] = extent.MinY;
+						break;
+					/* lower-right */
+					case 2:
+						_xy[0] = extent.MaxX;
+						_xy[1] = extent.MinY;
+						break;
+					/* upper-right */
+					case 3:
+						_xy[0] = extent.MaxX;
+						_xy[1] = extent.MaxY;
+						break;
+				}
+
+				rtn = rt_raster_geopoint_to_cell(
+					raster,
+					_xy[0], _xy[1],
+					&(_r[0]), &(_r[1]),
+					_igt
+				);
+				if (rtn != ES_NONE) {
+					rterror("rt_raster_compute_skewed_raster: Could not compute raster pixel for spatial coordinates");
+					rt_raster_destroy(raster);
+					return NULL;
+				}
+
+				RASTER_DEBUGF(4, "Point %d at cell %d x %d", j, (int) _r[0], (int) _r[1]);
+
+				/* raster doesn't cover point */
+				if ((int) _r[i] < 0) {
+					RASTER_DEBUGF(4, "Point outside of skewed extent: %d", j);
+					covers = 0;
+
+					if (_dlastpos != j) {
+						_dlast = (int) _r[i];
+						_dlastpos = j;
+					}
+					else if ((int) _r[i] < _dlast) {
+						RASTER_DEBUG(4, "Point going in wrong direction.  Reversing direction");
+						_d[i] *= -1;
+						_dlastpos = -1;
+						run = 0;
+					}
+
+					break;
+				}
+
+				covers++;
+			}
+
+			if (!covers) {
+				x = 0;
+				y = 0;
+				if (i < 1)
+					x = _d[i] * fabs(_r[i]);
+				else
+					y = _d[i] * fabs(_r[i]);
+
+				rtn = rt_raster_cell_to_geopoint(
+					raster,
+					x, y,
+					&(_w[0]), &(_w[1]),
+					_gt
+				);
+				if (rtn != ES_NONE) {
+					rterror("rt_raster_compute_skewed_raster: Could not compute spatial coordinates for raster pixel");
+					rt_raster_destroy(raster);
+					return NULL;
+				}
+
+				/* adjust ul */
+				if (i < 1)
+					_gt[0] = _w[i];
+				else
+					_gt[3] = _w[i];
+				rt_raster_set_geotransform_matrix(raster, _gt);
+				RASTER_DEBUGF(4, "Shifted geotransform: %f, %f, %f, %f, %f, %f",
+					_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]
+				);
+
+				/* get inverse geotransform matrix */
+				if (!GDALInvGeoTransform(_gt, _igt)) {
+					rterror("rt_raster_compute_skewed_raster: Could not compute inverse geotransform matrix");
+					rt_raster_destroy(raster);
+					return NULL;
+				}
+				RASTER_DEBUGF(4, "Inverse geotransform: %f, %f, %f, %f, %f, %f",
+					_igt[0], _igt[1], _igt[2], _igt[3], _igt[4], _igt[5]
+				);
+			}
+
+			run++;
+		}
+		while (!covers);
+	}
+
+	/* covers test */
+	rtn = rt_raster_geopoint_to_cell(
+		raster,
+		extent.MaxX, extent.MinY,
+		&(_r[0]), &(_r[1]),
+		_igt
+	);
+	if (rtn != ES_NONE) {
+		rterror("rt_raster_compute_skewed_raster: Could not compute raster pixel for spatial coordinates");
+		rt_raster_destroy(raster);
+		return NULL;
+	}
+
+	RASTER_DEBUGF(4, "geopoint %f x %f at cell %d x %d", extent.MaxX, extent.MinY, (int) _r[0], (int) _r[1]);
+
+	raster->width = _r[0];
+	raster->height = _r[1];
+
+	/* initialize GEOS */
+	initGEOS(rtinfo, lwgeom_geos_error);
+
+	/* create reference LWPOLY */
+	{
+		LWPOLY *npoly = rt_util_envelope_to_lwpoly(extent);
+		if (npoly == NULL) {
+			rterror("rt_raster_compute_skewed_raster: Could not build extent's geometry for covers test");
+			rt_raster_destroy(raster);
+			return NULL;
+		}
+
+		ngeom = (GEOSGeometry *) LWGEOM2GEOS(lwpoly_as_lwgeom(npoly), 0);
+		lwpoly_free(npoly);
+	}
+
+	do {
+		covers = 0;
+
+		/* construct sgeom from raster */
+		if ((rt_raster_get_convex_hull(raster, &geom) != ES_NONE) || geom == NULL) {
+			rterror("rt_raster_compute_skewed_raster: Could not build skewed extent's geometry for covers test");
+			GEOSGeom_destroy(ngeom);
+			rt_raster_destroy(raster);
+			return NULL;
+		}
+
+		sgeom = (GEOSGeometry *) LWGEOM2GEOS(geom, 0);
+		lwgeom_free(geom);
+
+		covers = GEOSRelatePattern(sgeom, ngeom, "******FF*");
+		GEOSGeom_destroy(sgeom);
+
+		if (covers == 2) {
+			rterror("rt_raster_compute_skewed_raster: Could not run covers test");
+			GEOSGeom_destroy(ngeom);
+			rt_raster_destroy(raster);
+			return NULL;
+		}
+
+		if (covers)
+			break;
+
+		raster->width++;
+		raster->height++;
+	}
+	while (!covers);
+
+	RASTER_DEBUGF(4, "Skewed extent does cover normal extent with dimensions %d x %d", raster->width, raster->height);
+
+	raster->width = (int) ((((double) raster->width) * fabs(_gt[1]) + fabs(scale[0] / 2.)) / fabs(scale[0]));
+	raster->height = (int) ((((double) raster->height) * fabs(_gt[5]) + fabs(scale[1] / 2.)) / fabs(scale[1]));
+	_gt[1] = fabs(scale[0]);
+	_gt[5] = -1 * fabs(scale[1]);
+	_gt[2] = skew[0];
+	_gt[4] = skew[1];
+	rt_raster_set_geotransform_matrix(raster, _gt);
+
+	/* minimize width/height */
+	for (i = 0; i < 2; i++) {
+		covers = 1;
+		do {
+			if (i < 1)
+				raster->width--;
+			else
+				raster->height--;
+			
+			/* construct sgeom from raster */
+			if ((rt_raster_get_convex_hull(raster, &geom) != ES_NONE) || geom == NULL) {
+				rterror("rt_raster_compute_skewed_raster: Could not build skewed extent's geometry for minimizing dimensions");
+				GEOSGeom_destroy(ngeom);
+				rt_raster_destroy(raster);
+				return NULL;
+			}
+
+			sgeom = (GEOSGeometry *) LWGEOM2GEOS(geom, 0);
+			lwgeom_free(geom);
+
+			covers = GEOSRelatePattern(sgeom, ngeom, "******FF*");
+			GEOSGeom_destroy(sgeom);
+
+			if (covers == 2) {
+				rterror("rt_raster_compute_skewed_raster: Could not run covers test for minimizing dimensions");
+				GEOSGeom_destroy(ngeom);
+				rt_raster_destroy(raster);
+				return NULL;
+			}
+
+			if (!covers) {
+				if (i < 1)
+					raster->width++;
+				else
+					raster->height++;
+
+				break;
+			}
+		}
+		while (covers);
+	}
+
+	GEOSGeom_destroy(ngeom);
+
+	return raster;
+}
+
+/**
+ * Return TRUE if the raster is empty. i.e. is NULL, width = 0 or height = 0
+ *
+ * @param raster : the raster to get info from
+ *
+ * @return TRUE if the raster is empty, FALSE otherwise
+ */
+int
+rt_raster_is_empty(rt_raster raster) {
+	return (NULL == raster || raster->height <= 0 || raster->width <= 0);
+}
+
+/**
+ * Return TRUE if the raster has a band of this number.
+ *
+ * @param raster : the raster to get info from
+ * @param nband : the band number. 0-based
+ *
+ * @return TRUE if the raster has a band of this number, FALSE otherwise
+ */
+int
+rt_raster_has_band(rt_raster raster, int nband) {
+	return !(NULL == raster || nband >= raster->numBands || nband < 0);
+}
+
+/******************************************************************************
+* rt_raster_copy_band()
+******************************************************************************/
+
+/**
+ * Copy one band from one raster to another.  Bands are duplicated from
+ * fromrast to torast using rt_band_duplicate.  The caller will need
+ * to ensure that the copied band's data or path remains allocated
+ * for the lifetime of the copied bands.
+ *
+ * @param torast : raster to copy band to
+ * @param fromrast : raster to copy band from
+ * @param fromindex : index of band in source raster, 0-based
+ * @param toindex : index of new band in destination raster, 0-based
+ *
+ * @return The band index of the second raster where the new band is copied.
+ *   -1 if error
+ */
+int
+rt_raster_copy_band(
+	rt_raster torast, rt_raster fromrast,
+	int fromindex, int toindex
+) {
+	rt_band srcband = NULL;
+	rt_band dstband = NULL;
+
+	assert(NULL != torast);
+	assert(NULL != fromrast);
+
+	/* Check raster dimensions */
+	if (torast->height != fromrast->height || torast->width != fromrast->width) {
+		rtwarn("rt_raster_copy_band: Attempting to add a band with different width or height");
+		return -1;
+	}
+
+	/* Check bands limits */
+	if (fromrast->numBands < 1) {
+		rtwarn("rt_raster_copy_band: Second raster has no band");
+		return -1;
+	}
+	else if (fromindex < 0) {
+		rtwarn("rt_raster_copy_band: Band index for second raster < 0. Defaulted to 0");
+		fromindex = 0;
+	}
+	else if (fromindex >= fromrast->numBands) {
+		rtwarn("rt_raster_copy_band: Band index for second raster > number of bands, truncated from %u to %u", fromindex, fromrast->numBands - 1);
+		fromindex = fromrast->numBands - 1;
+	}
+
+	if (toindex < 0) {
+		rtwarn("rt_raster_copy_band: Band index for first raster < 0. Defaulted to 0");
+		toindex = 0;
+	}
+	else if (toindex > torast->numBands) {
+		rtwarn("rt_raster_copy_band: Band index for first raster > number of bands, truncated from %u to %u", toindex, torast->numBands);
+		toindex = torast->numBands;
+	}
+
+	/* Get band from source raster */
+	srcband = rt_raster_get_band(fromrast, fromindex);
+
+	/* duplicate band */
+	dstband = rt_band_duplicate(srcband);
+
+	/* Add band to the second raster */
+	return rt_raster_add_band(torast, dstband, toindex);
+}
+
+/******************************************************************************
+* rt_raster_from_band()
+******************************************************************************/
+
+/**
+ * Construct a new rt_raster from an existing rt_raster and an array
+ * of band numbers
+ *
+ * @param raster : the source raster
+ * @param bandNums : array of band numbers to extract from source raster
+ *                   and add to the new raster (0 based)
+ * @param count : number of elements in bandNums
+ *
+ * @return a new rt_raster or NULL on error
+ */
+rt_raster
+rt_raster_from_band(rt_raster raster, uint32_t *bandNums, int count) {
+	rt_raster rast = NULL;
+	int i = 0;
+	int j = 0;
+	int idx;
+	int32_t flag;
+	double gt[6] = {0.};
+
+	assert(NULL != raster);
+	assert(NULL != bandNums);
+
+	RASTER_DEBUGF(3, "rt_raster_from_band: source raster has %d bands",
+		rt_raster_get_num_bands(raster));
+
+	/* create new raster */
+	rast = rt_raster_new(raster->width, raster->height);
+	if (NULL == rast) {
+		rterror("rt_raster_from_band: Out of memory allocating new raster");
+		return NULL;
+	}
+
+	/* copy raster attributes */
+	rt_raster_get_geotransform_matrix(raster, gt);
+	rt_raster_set_geotransform_matrix(rast, gt);
+
+	/* srid */
+	rt_raster_set_srid(rast, raster->srid);
+
+	/* copy bands */
+	for (i = 0; i < count; i++) {
+		idx = bandNums[i];
+		flag = rt_raster_copy_band(rast, raster, idx, i);
+
+		if (flag < 0) {
+			rterror("rt_raster_from_band: Could not copy band");
+			for (j = 0; j < i; j++) rt_band_destroy(rast->bands[j]);
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+
+		RASTER_DEBUGF(3, "rt_raster_from_band: band created at index %d",
+			flag);
+	}
+
+	RASTER_DEBUGF(3, "rt_raster_from_band: new raster has %d bands",
+		rt_raster_get_num_bands(rast));
+	return rast;
+}
+
+/******************************************************************************
+* rt_raster_replace_band()
+******************************************************************************/
+
+/**
+ * Replace band at provided index with new band
+ *
+ * @param raster: raster of band to be replaced
+ * @param band : new band to add to raster
+ * @param index : index of band to replace (0-based)
+ *
+ * @return NULL on error or replaced band
+ */
+rt_band
+rt_raster_replace_band(rt_raster raster, rt_band band, int index) {
+	rt_band oldband = NULL;
+	assert(NULL != raster);
+	assert(NULL != band);
+
+	if (band->width != raster->width || band->height != raster->height) {
+		rterror("rt_raster_replace_band: Band does not match raster's dimensions: %dx%d band to %dx%d raster",
+			band->width, band->height, raster->width, raster->height);
+		return 0;
+	}
+
+	if (index >= raster->numBands || index < 0) {
+		rterror("rt_raster_replace_band: Band index is not valid");
+		return 0;
+	}
+
+	oldband = rt_raster_get_band(raster, index);
+	RASTER_DEBUGF(3, "rt_raster_replace_band: old band at %p", oldband);
+	RASTER_DEBUGF(3, "rt_raster_replace_band: new band at %p", band);
+
+	raster->bands[index] = band;
+	RASTER_DEBUGF(3, "rt_raster_replace_band: new band at %p", raster->bands[index]);
+
+	band->raster = raster;
+	oldband->raster = NULL;
+
+	return oldband;
+}
+
+/******************************************************************************
+* rt_raster_clone()
+******************************************************************************/
+
+/**
+ * Clone an existing raster
+ *
+ * @param raster : raster to clone
+ * @param deep : flag indicating if bands should be cloned
+ *
+ * @return a new rt_raster or NULL on error
+ */
+rt_raster
+rt_raster_clone(rt_raster raster, uint8_t deep) {
+	rt_raster rtn = NULL;
+	double gt[6] = {0};
+
+	assert(NULL != raster);
+
+	if (deep) {
+		int numband = rt_raster_get_num_bands(raster);
+		uint32_t *nband = NULL;
+		int i = 0;
+
+		nband = rtalloc(sizeof(uint32_t) * numband);
+		if (nband == NULL) {
+			rterror("rt_raster_clone: Could not allocate memory for deep clone");
+			return NULL;
+		}
+		for (i = 0; i < numband; i++)
+			nband[i] = i;
+
+		rtn = rt_raster_from_band(raster, nband, numband);
+		rtdealloc(nband);
+
+		return rtn;
+	}
+
+	rtn = rt_raster_new(
+		rt_raster_get_width(raster),
+		rt_raster_get_height(raster)
+	);
+	if (rtn == NULL) {
+		rterror("rt_raster_clone: Could not create cloned raster");
+		return NULL;
+	}
+
+	rt_raster_get_geotransform_matrix(raster, gt);
+	rt_raster_set_geotransform_matrix(rtn, gt);
+	rt_raster_set_srid(rtn, rt_raster_get_srid(raster));
+
+	return rtn;
+}
+
+/******************************************************************************
+* rt_raster_to_gdal()
+******************************************************************************/
+
+/**
+ * Return formatted GDAL raster from raster
+ *
+ * @param raster : the raster to convert
+ * @param srs : the raster's coordinate system in OGC WKT
+ * @param format : format to convert to. GDAL driver short name
+ * @param options : list of format creation options. array of strings
+ * @param gdalsize : will be set to the size of returned bytea
+ *
+ * @return formatted GDAL raster.  the calling function is responsible
+ *   for freeing the returned data using CPLFree()
+ */
+uint8_t*
+rt_raster_to_gdal(
+	rt_raster raster, const char *srs,
+	char *format, char **options, uint64_t *gdalsize
+) {
+	GDALDriverH src_drv = NULL;
+	int destroy_src_drv = 0;
+	GDALDatasetH src_ds = NULL;
+
+	vsi_l_offset rtn_lenvsi;
+	uint64_t rtn_len = 0;
+
+	GDALDriverH rtn_drv = NULL;
+	GDALDatasetH rtn_ds = NULL;
+	uint8_t *rtn = NULL;
+
+	assert(NULL != raster);
+	assert(NULL != gdalsize);
+
+	/* any supported format is possible */
+	rt_util_gdal_register_all(0);
+	RASTER_DEBUG(3, "loaded all supported GDAL formats");
+
+	/* output format not specified */
+	if (format == NULL || !strlen(format))
+		format = "GTiff";
+	RASTER_DEBUGF(3, "output format is %s", format);
+
+	/* load raster into a GDAL MEM raster */
+	src_ds = rt_raster_to_gdal_mem(raster, srs, NULL, NULL, 0, &src_drv, &destroy_src_drv);
+	if (NULL == src_ds) {
+		rterror("rt_raster_to_gdal: Could not convert raster to GDAL MEM format");
+		return 0;
+	}
+
+	/* load driver */
+	rtn_drv = GDALGetDriverByName(format);
+	if (NULL == rtn_drv) {
+		rterror("rt_raster_to_gdal: Could not load the output GDAL driver");
+		GDALClose(src_ds);
+		if (destroy_src_drv) GDALDestroyDriver(src_drv);
+		return 0;
+	}
+	RASTER_DEBUG(3, "Output driver loaded");
+
+	/* convert GDAL MEM raster to output format */
+	RASTER_DEBUG(3, "Copying GDAL MEM raster to memory file in output format");
+	rtn_ds = GDALCreateCopy(
+		rtn_drv,
+		"/vsimem/out.dat", /* should be fine assuming this is in a process */
+		src_ds,
+		FALSE, /* should copy be strictly equivelent? */
+		options, /* format options */
+		NULL, /* progress function */
+		NULL /* progress data */
+	);
+
+	/* close source dataset */
+	GDALClose(src_ds);
+	if (destroy_src_drv) GDALDestroyDriver(src_drv);
+	RASTER_DEBUG(3, "Closed GDAL MEM raster");
+
+	if (NULL == rtn_ds) {
+		rterror("rt_raster_to_gdal: Could not create the output GDAL dataset");
+		return 0;
+	}
+
+	RASTER_DEBUGF(4, "dataset SRS: %s", GDALGetProjectionRef(rtn_ds));
+
+	/* close dataset, this also flushes any pending writes */
+	GDALClose(rtn_ds);
+	RASTER_DEBUG(3, "Closed GDAL output raster");
+
+	RASTER_DEBUG(3, "Done copying GDAL MEM raster to memory file in output format");
+
+	/* from memory file to buffer */
+	RASTER_DEBUG(3, "Copying GDAL memory file to buffer");
+	rtn = VSIGetMemFileBuffer("/vsimem/out.dat", &rtn_lenvsi, TRUE);
+	RASTER_DEBUG(3, "Done copying GDAL memory file to buffer");
+	if (NULL == rtn) {
+		rterror("rt_raster_to_gdal: Could not create the output GDAL raster");
+		return 0;
+	}
+
+	rtn_len = (uint64_t) rtn_lenvsi;
+	*gdalsize = rtn_len;
+
+	return rtn;
+}
+
+/******************************************************************************
+* rt_raster_gdal_drivers()
+******************************************************************************/
+
+/**
+ * Returns a set of available GDAL drivers
+ *
+ * @param drv_count : number of GDAL drivers available
+ * @param cancc : if non-zero, filter drivers to only those
+ *   with support for CreateCopy and VirtualIO
+ *
+ * @return set of "gdaldriver" values of available GDAL drivers
+ */
+rt_gdaldriver
+rt_raster_gdal_drivers(uint32_t *drv_count, uint8_t cancc) {
+	const char *state;
+	const char *txt;
+	int txt_len;
+	GDALDriverH *drv = NULL;
+	rt_gdaldriver rtn = NULL;
+	int count;
+	int i;
+	uint32_t j;
+
+	assert(drv_count != NULL);
+
+	rt_util_gdal_register_all(0);
+	count = GDALGetDriverCount();
+	RASTER_DEBUGF(3, "%d drivers found", count);
+
+	rtn = (rt_gdaldriver) rtalloc(count * sizeof(struct rt_gdaldriver_t));
+	if (NULL == rtn) {
+		rterror("rt_raster_gdal_drivers: Could not allocate memory for gdaldriver structure");
+		return 0;
+	}
+
+	for (i = 0, j = 0; i < count; i++) {
+		drv = GDALGetDriver(i);
+
+#ifdef GDAL_DCAP_RASTER
+		/* Starting with GDAL 2.0, vector drivers can also be returned */
+		/* Only keep raster drivers */
+		state = GDALGetMetadataItem(drv, GDAL_DCAP_RASTER, NULL);
+		if (state == NULL || !EQUAL(state, "YES"))
+			continue;
+#endif
+
+		if (cancc) {
+			/* CreateCopy support */
+			state = GDALGetMetadataItem(drv, GDAL_DCAP_CREATECOPY, NULL);
+			if (state == NULL) continue;
+
+			/* VirtualIO support */
+			state = GDALGetMetadataItem(drv, GDAL_DCAP_VIRTUALIO, NULL);
+			if (state == NULL) continue;
+		}
+
+		/* index of driver */
+		rtn[j].idx = i;
+
+		/* short name */
+		txt = GDALGetDriverShortName(drv);
+		txt_len = strlen(txt);
+
+		if (cancc) {
+			RASTER_DEBUGF(3, "driver %s (%d) supports CreateCopy() and VirtualIO()", txt, i);
+		}
+
+		txt_len = (txt_len + 1) * sizeof(char);
+		rtn[j].short_name = (char *) rtalloc(txt_len);
+		memcpy(rtn[j].short_name, txt, txt_len);
+
+		/* long name */
+		txt = GDALGetDriverLongName(drv);
+		txt_len = strlen(txt);
+
+		txt_len = (txt_len + 1) * sizeof(char);
+		rtn[j].long_name = (char *) rtalloc(txt_len);
+		memcpy(rtn[j].long_name, txt, txt_len);
+
+		/* creation options */
+		txt = GDALGetDriverCreationOptionList(drv);
+		txt_len = strlen(txt);
+
+		txt_len = (txt_len + 1) * sizeof(char);
+		rtn[j].create_options = (char *) rtalloc(txt_len);
+		memcpy(rtn[j].create_options, txt, txt_len);
+
+		j++;
+	}
+
+	/* free unused memory */
+	rtn = rtrealloc(rtn, j * sizeof(struct rt_gdaldriver_t));
+	*drv_count = j;
+
+	return rtn;
+}
+
+/******************************************************************************
+* rt_raster_to_gdal_mem()
+******************************************************************************/
+
+/**
+ * Return GDAL dataset using GDAL MEM driver from raster.
+ *
+ * @param raster : raster to convert to GDAL MEM
+ * @param srs : the raster's coordinate system in OGC WKT
+ * @param bandNums : array of band numbers to extract from raster
+ *   and include in the GDAL dataset (0 based)
+ * @param excludeNodataValues : array of zero, nonzero where if non-zero,
+ *   ignore nodata values for the band
+ * @param count : number of elements in bandNums
+ * @param rtn_drv : is set to the GDAL driver object
+ * @param destroy_rtn_drv : if non-zero, caller must destroy the MEM driver
+ *
+ * @return GDAL dataset using GDAL MEM driver
+ */
+GDALDatasetH
+rt_raster_to_gdal_mem(
+	rt_raster raster,
+	const char *srs,
+	uint32_t *bandNums,
+	int *excludeNodataValues,
+	int count,
+	GDALDriverH *rtn_drv, int *destroy_rtn_drv
+) {
+	GDALDriverH drv = NULL;
+	GDALDatasetH ds = NULL;
+	double gt[6] = {0.0};
+	CPLErr cplerr;
+	GDALDataType gdal_pt = GDT_Unknown;
+	GDALRasterBandH band;
+	void *pVoid;
+	char *pszDataPointer;
+	char szGDALOption[50];
+	char *apszOptions[4];
+	double nodata = 0.0;
+	int allocBandNums = 0;
+	int allocNodataValues = 0;
+
+	int i;
+	int numBands;
+	uint32_t width = 0;
+	uint32_t height = 0;
+	rt_band rtband = NULL;
+	rt_pixtype pt = PT_END;
+
+	assert(NULL != raster);
+	assert(NULL != rtn_drv);
+	assert(NULL != destroy_rtn_drv);
+
+	*destroy_rtn_drv = 0;
+
+	/* store raster in GDAL MEM raster */
+	if (!rt_util_gdal_driver_registered("MEM")) {
+		RASTER_DEBUG(4, "Registering MEM driver");
+		GDALRegister_MEM();
+		*destroy_rtn_drv = 1;
+	}
+	drv = GDALGetDriverByName("MEM");
+	if (NULL == drv) {
+		rterror("rt_raster_to_gdal_mem: Could not load the MEM GDAL driver");
+		return 0;
+	}
+	*rtn_drv = drv;
+
+	/* unload driver from GDAL driver manager */
+	if (*destroy_rtn_drv) {
+		RASTER_DEBUG(4, "Deregistering MEM driver");
+		GDALDeregisterDriver(drv);
+	}
+
+	width = rt_raster_get_width(raster);
+	height = rt_raster_get_height(raster);
+	ds = GDALCreate(
+		drv, "",
+		width, height,
+		0, GDT_Byte, NULL
+	);
+	if (NULL == ds) {
+		rterror("rt_raster_to_gdal_mem: Could not create a GDALDataset to convert into");
+		return 0;
+	}
+
+	/* add geotransform */
+	rt_raster_get_geotransform_matrix(raster, gt);
+	cplerr = GDALSetGeoTransform(ds, gt);
+	if (cplerr != CE_None) {
+		rterror("rt_raster_to_gdal_mem: Could not set geotransformation");
+		GDALClose(ds);
+		return 0;
+	}
+
+	/* set spatial reference */
+	if (NULL != srs && strlen(srs)) {
+		char *_srs = rt_util_gdal_convert_sr(srs, 0);
+		if (_srs == NULL) {
+			rterror("rt_raster_to_gdal_mem: Could not convert srs to GDAL accepted format");
+			GDALClose(ds);
+			return 0;
+		}
+
+		cplerr = GDALSetProjection(ds, _srs);
+		CPLFree(_srs);
+		if (cplerr != CE_None) {
+			rterror("rt_raster_to_gdal_mem: Could not set projection");
+			GDALClose(ds);
+			return 0;
+		}
+		RASTER_DEBUGF(3, "Projection set to: %s", GDALGetProjectionRef(ds));
+	}
+
+	/* process bandNums */
+	numBands = rt_raster_get_num_bands(raster);
+	if (NULL != bandNums && count > 0) {
+		for (i = 0; i < count; i++) {
+			if (bandNums[i] >= numBands) {
+				rterror("rt_raster_to_gdal_mem: The band index %d is invalid", bandNums[i]);
+				GDALClose(ds);
+				return 0;
+			}
+		}
+	}
+	else {
+		count = numBands;
+		bandNums = (uint32_t *) rtalloc(sizeof(uint32_t) * count);
+		if (NULL == bandNums) {
+			rterror("rt_raster_to_gdal_mem: Could not allocate memory for band indices");
+			GDALClose(ds);
+			return 0;
+		}
+		allocBandNums = 1;
+		for (i = 0; i < count; i++) bandNums[i] = i;
+	}
+
+	/* process exclude_nodata_values */
+	if (NULL == excludeNodataValues) {
+		excludeNodataValues = (int *) rtalloc(sizeof(int) * count);
+		if (NULL == excludeNodataValues) {
+			rterror("rt_raster_to_gdal_mem: Could not allocate memory for NODATA flags");
+			GDALClose(ds);
+			return 0;
+		}
+		allocNodataValues = 1;
+		for (i = 0; i < count; i++) excludeNodataValues[i] = 1;
+	}
+
+	/* add band(s) */
+	for (i = 0; i < count; i++) {
+		rtband = rt_raster_get_band(raster, bandNums[i]);
+		if (NULL == rtband) {
+			rterror("rt_raster_to_gdal_mem: Could not get requested band index %d", bandNums[i]);
+			if (allocBandNums) rtdealloc(bandNums);
+			if (allocNodataValues) rtdealloc(excludeNodataValues);
+			GDALClose(ds);
+			return 0;
+		}
+
+		pt = rt_band_get_pixtype(rtband);
+		gdal_pt = rt_util_pixtype_to_gdal_datatype(pt);
+		if (gdal_pt == GDT_Unknown)
+			rtwarn("rt_raster_to_gdal_mem: Unknown pixel type for band");
+
+		/*
+			For all pixel types other than PT_8BSI, set pointer to start of data
+		*/
+		if (pt != PT_8BSI) {
+			pVoid = rt_band_get_data(rtband);
+			RASTER_DEBUGF(4, "Band data is at pos %p", pVoid);
+
+			pszDataPointer = (char *) rtalloc(20 * sizeof (char));
+			sprintf(pszDataPointer, "%p", pVoid);
+			RASTER_DEBUGF(4, "rt_raster_to_gdal_mem: szDatapointer is %p",
+				pszDataPointer);
+
+			if (strnicmp(pszDataPointer, "0x", 2) == 0)
+				sprintf(szGDALOption, "DATAPOINTER=%s", pszDataPointer);
+			else
+				sprintf(szGDALOption, "DATAPOINTER=0x%s", pszDataPointer);
+
+			RASTER_DEBUG(3, "Storing info for GDAL MEM raster band");
+
+			apszOptions[0] = szGDALOption;
+			apszOptions[1] = NULL; /* pixel offset, not needed */
+			apszOptions[2] = NULL; /* line offset, not needed */
+			apszOptions[3] = NULL;
+
+			/* free */
+			rtdealloc(pszDataPointer);
+
+			/* add band */
+			if (GDALAddBand(ds, gdal_pt, apszOptions) == CE_Failure) {
+				rterror("rt_raster_to_gdal_mem: Could not add GDAL raster band");
+				if (allocBandNums) rtdealloc(bandNums);
+				GDALClose(ds);
+				return 0;
+			}
+		}
+		/*
+			PT_8BSI is special as GDAL has no equivalent pixel type.
+			Must convert 8BSI to 16BSI so create basic band
+		*/
+		else {
+			/* add band */
+			if (GDALAddBand(ds, gdal_pt, NULL) == CE_Failure) {
+				rterror("rt_raster_to_gdal_mem: Could not add GDAL raster band");
+				if (allocBandNums) rtdealloc(bandNums);
+				if (allocNodataValues) rtdealloc(excludeNodataValues);
+				GDALClose(ds);
+				return 0;
+			}
+		}
+
+		/* check band count */
+		if (GDALGetRasterCount(ds) != i + 1) {
+			rterror("rt_raster_to_gdal_mem: Error creating GDAL MEM raster band");
+			if (allocBandNums) rtdealloc(bandNums);
+			if (allocNodataValues) rtdealloc(excludeNodataValues);
+			GDALClose(ds);
+			return 0;
+		}
+
+		/* get new band */
+		band = NULL;
+		band = GDALGetRasterBand(ds, i + 1);
+		if (NULL == band) {
+			rterror("rt_raster_to_gdal_mem: Could not get GDAL band for additional processing");
+			if (allocBandNums) rtdealloc(bandNums);
+			if (allocNodataValues) rtdealloc(excludeNodataValues);
+			GDALClose(ds);
+			return 0;
+		}
+
+		/* PT_8BSI requires manual setting of pixels */
+		if (pt == PT_8BSI) {
+			int nXBlocks, nYBlocks;
+			int nXBlockSize, nYBlockSize;
+			int iXBlock, iYBlock;
+			int nXValid, nYValid;
+			int iX, iY;
+			int iXMax, iYMax;
+
+			int x, y, z;
+			uint32_t valueslen = 0;
+			int16_t *values = NULL;
+			double value = 0.;
+
+			/* this makes use of GDAL's "natural" blocks */
+			GDALGetBlockSize(band, &nXBlockSize, &nYBlockSize);
+			nXBlocks = (width + nXBlockSize - 1) / nXBlockSize;
+			nYBlocks = (height + nYBlockSize - 1) / nYBlockSize;
+			RASTER_DEBUGF(4, "(nXBlockSize, nYBlockSize) = (%d, %d)", nXBlockSize, nYBlockSize);
+			RASTER_DEBUGF(4, "(nXBlocks, nYBlocks) = (%d, %d)", nXBlocks, nYBlocks);
+
+			/* length is for the desired pixel type */
+			valueslen = rt_pixtype_size(PT_16BSI) * nXBlockSize * nYBlockSize;
+			values = rtalloc(valueslen);
+			if (NULL == values) {
+				rterror("rt_raster_to_gdal_mem: Could not allocate memory for GDAL band pixel values");
+				if (allocBandNums) rtdealloc(bandNums);
+				if (allocNodataValues) rtdealloc(excludeNodataValues);
+				GDALClose(ds);
+				return 0;
+			}
+
+			for (iYBlock = 0; iYBlock < nYBlocks; iYBlock++) {
+				for (iXBlock = 0; iXBlock < nXBlocks; iXBlock++) {
+					memset(values, 0, valueslen);
+
+					x = iXBlock * nXBlockSize;
+					y = iYBlock * nYBlockSize;
+					RASTER_DEBUGF(4, "(iXBlock, iYBlock) = (%d, %d)", iXBlock, iYBlock);
+					RASTER_DEBUGF(4, "(x, y) = (%d, %d)", x, y);
+
+					/* valid block width */
+					if ((iXBlock + 1) * nXBlockSize > width)
+						nXValid = width - (iXBlock * nXBlockSize);
+					else
+						nXValid = nXBlockSize;
+
+					/* valid block height */
+					if ((iYBlock + 1) * nYBlockSize > height)
+						nYValid = height - (iYBlock * nYBlockSize);
+					else
+						nYValid = nYBlockSize;
+
+					RASTER_DEBUGF(4, "(nXValid, nYValid) = (%d, %d)", nXValid, nYValid);
+
+					/* convert 8BSI values to 16BSI */
+					z = 0;
+					iYMax = y + nYValid;
+					iXMax = x + nXValid;
+					for (iY = y; iY < iYMax; iY++)  {
+						for (iX = x; iX < iXMax; iX++)  {
+							if (rt_band_get_pixel(rtband, iX, iY, &value, NULL) != ES_NONE) {
+								rterror("rt_raster_to_gdal_mem: Could not get pixel value to convert from 8BSI to 16BSI");
+								rtdealloc(values);
+								if (allocBandNums) rtdealloc(bandNums);
+								if (allocNodataValues) rtdealloc(excludeNodataValues);
+								GDALClose(ds);
+								return 0;
+							}
+
+							values[z++] = rt_util_clamp_to_16BSI(value);
+						}
+					}
+
+					/* burn values */
+					if (GDALRasterIO(
+						band, GF_Write,
+						x, y,
+						nXValid, nYValid,
+						values, nXValid, nYValid,
+						gdal_pt,
+						0, 0
+					) != CE_None) {
+						rterror("rt_raster_to_gdal_mem: Could not write converted 8BSI to 16BSI values to GDAL band");
+						rtdealloc(values);
+						if (allocBandNums) rtdealloc(bandNums);
+						if (allocNodataValues) rtdealloc(excludeNodataValues);
+						GDALClose(ds);
+						return 0;
+					}
+				}
+			}
+
+			rtdealloc(values);
+		}
+
+		/* Add nodata value for band */
+		if (rt_band_get_hasnodata_flag(rtband) != FALSE && excludeNodataValues[i]) {
+			rt_band_get_nodata(rtband, &nodata);
+			if (GDALSetRasterNoDataValue(band, nodata) != CE_None)
+				rtwarn("rt_raster_to_gdal_mem: Could not set nodata value for band");
+			RASTER_DEBUGF(3, "nodata value set to %f", GDALGetRasterNoDataValue(band, NULL));
+		}
+
+#if POSTGIS_DEBUG_LEVEL > 3
+		{
+			GDALRasterBandH _grb = NULL;
+			double _min;
+			double _max;
+			double _mean;
+			double _stddev;
+
+			_grb = GDALGetRasterBand(ds, i + 1);
+			GDALComputeRasterStatistics(_grb, FALSE, &_min, &_max, &_mean, &_stddev, NULL, NULL);
+			RASTER_DEBUGF(4, "GDAL Band %d stats: %f, %f, %f, %f", i + 1, _min, _max, _mean, _stddev);
+		}
+#endif
+
+	}
+
+	/* necessary??? */
+	GDALFlushCache(ds);
+
+	if (allocBandNums) rtdealloc(bandNums);
+	if (allocNodataValues) rtdealloc(excludeNodataValues);
+
+	return ds;
+}
+
+/******************************************************************************
+* rt_raster_from_gdal_dataset()
+******************************************************************************/
+
+/**
+ * Return a raster from a GDAL dataset
+ *
+ * @param ds : the GDAL dataset to convert to a raster
+ *
+ * @return raster or NULL
+ */
+rt_raster
+rt_raster_from_gdal_dataset(GDALDatasetH ds) {
+	rt_raster rast = NULL;
+	double gt[6] = {0};
+	CPLErr cplerr;
+	uint32_t width = 0;
+	uint32_t height = 0;
+	uint32_t numBands = 0;
+	int i = 0;
+	char *authname = NULL;
+	char *authcode = NULL;
+
+	GDALRasterBandH gdband = NULL;
+	GDALDataType gdpixtype = GDT_Unknown;
+	rt_band band;
+	int32_t idx;
+	rt_pixtype pt = PT_END;
+	uint32_t ptlen = 0;
+	int hasnodata = 0;
+	double nodataval;
+
+	int x;
+	int y;
+
+	int nXBlocks, nYBlocks;
+	int nXBlockSize, nYBlockSize;
+	int iXBlock, iYBlock;
+	int nXValid, nYValid;
+	int iY;
+
+	uint8_t *values = NULL;
+	uint32_t valueslen = 0;
+	uint8_t *ptr = NULL;
+
+	assert(NULL != ds);
+
+	/* raster size */
+	width = GDALGetRasterXSize(ds);
+	height = GDALGetRasterYSize(ds);
+	RASTER_DEBUGF(3, "Raster dimensions (width x height): %d x %d", width, height);
+
+	/* create new raster */
+	RASTER_DEBUG(3, "Creating new raster");
+	rast = rt_raster_new(width, height);
+	if (NULL == rast) {
+		rterror("rt_raster_from_gdal_dataset: Out of memory allocating new raster");
+		return NULL;
+	}
+	RASTER_DEBUGF(3, "Created raster dimensions (width x height): %d x %d", rast->width, rast->height);
+
+	/* get raster attributes */
+	cplerr = GDALGetGeoTransform(ds, gt);
+	if (GDALGetGeoTransform(ds, gt) != CE_None) {
+		RASTER_DEBUG(4, "Using default geotransform matrix (0, 1, 0, 0, 0, -1)");
+		gt[0] = 0;
+		gt[1] = 1;
+		gt[2] = 0;
+		gt[3] = 0;
+		gt[4] = 0;
+		gt[5] = -1;
+	}
+
+	/* apply raster attributes */
+	rt_raster_set_geotransform_matrix(rast, gt);
+
+	RASTER_DEBUGF(3, "Raster geotransform (%f, %f, %f, %f, %f, %f)",
+		gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
+
+	/* srid */
+	if (rt_util_gdal_sr_auth_info(ds, &authname, &authcode) == ES_NONE) {
+		if (
+			authname != NULL &&
+			strcmp(authname, "EPSG") == 0 &&
+			authcode != NULL
+		) {
+			rt_raster_set_srid(rast, atoi(authcode));
+			RASTER_DEBUGF(3, "New raster's SRID = %d", rast->srid);
+		}
+
+		if (authname != NULL)
+			rtdealloc(authname);
+		if (authcode != NULL)
+			rtdealloc(authcode);
+	}
+
+	numBands = GDALGetRasterCount(ds);
+
+#if POSTGIS_DEBUG_LEVEL > 3
+	for (i = 1; i <= numBands; i++) {
+		GDALRasterBandH _grb = NULL;
+		double _min;
+		double _max;
+		double _mean;
+		double _stddev;
+
+		_grb = GDALGetRasterBand(ds, i);
+		GDALComputeRasterStatistics(_grb, FALSE, &_min, &_max, &_mean, &_stddev, NULL, NULL);
+		RASTER_DEBUGF(4, "GDAL Band %d stats: %f, %f, %f, %f", i, _min, _max, _mean, _stddev);
+	}
+#endif
+
+	/* copy bands */
+	for (i = 1; i <= numBands; i++) {
+		RASTER_DEBUGF(3, "Processing band %d of %d", i, numBands);
+		gdband = NULL;
+		gdband = GDALGetRasterBand(ds, i);
+		if (NULL == gdband) {
+			rterror("rt_raster_from_gdal_dataset: Could not get GDAL band");
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+		RASTER_DEBUGF(4, "gdband @ %p", gdband);
+
+		/* pixtype */
+		gdpixtype = GDALGetRasterDataType(gdband);
+		RASTER_DEBUGF(4, "gdpixtype, size = %s, %d", GDALGetDataTypeName(gdpixtype), GDALGetDataTypeSize(gdpixtype) / 8);
+		pt = rt_util_gdal_datatype_to_pixtype(gdpixtype);
+		if (pt == PT_END) {
+			rterror("rt_raster_from_gdal_dataset: Unknown pixel type for GDAL band");
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+		ptlen = rt_pixtype_size(pt);
+
+		/* size: width and height */
+		width = GDALGetRasterBandXSize(gdband);
+		height = GDALGetRasterBandYSize(gdband);
+		RASTER_DEBUGF(3, "GDAL band dimensions (width x height): %d x %d", width, height);
+
+		/* nodata */
+		nodataval = GDALGetRasterNoDataValue(gdband, &hasnodata);
+		RASTER_DEBUGF(3, "(hasnodata, nodataval) = (%d, %f)", hasnodata, nodataval);
+
+		/* create band object */
+		idx = rt_raster_generate_new_band(
+			rast, pt,
+			(hasnodata ? nodataval : 0),
+			hasnodata, nodataval, rt_raster_get_num_bands(rast)
+		);
+		if (idx < 0) {
+			rterror("rt_raster_from_gdal_dataset: Could not allocate memory for raster band");
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+		band = rt_raster_get_band(rast, idx);
+		RASTER_DEBUGF(3, "Created band of dimension (width x height): %d x %d", band->width, band->height);
+
+		/* this makes use of GDAL's "natural" blocks */
+		GDALGetBlockSize(gdband, &nXBlockSize, &nYBlockSize);
+		nXBlocks = (width + nXBlockSize - 1) / nXBlockSize;
+		nYBlocks = (height + nYBlockSize - 1) / nYBlockSize;
+		RASTER_DEBUGF(4, "(nXBlockSize, nYBlockSize) = (%d, %d)", nXBlockSize, nYBlockSize);
+		RASTER_DEBUGF(4, "(nXBlocks, nYBlocks) = (%d, %d)", nXBlocks, nYBlocks);
+
+		/* allocate memory for values */
+		valueslen = ptlen * nXBlockSize * nYBlockSize;
+		values = rtalloc(valueslen);
+		if (values == NULL) {
+			rterror("rt_raster_from_gdal_dataset: Could not allocate memory for GDAL band pixel values");
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+		RASTER_DEBUGF(3, "values @ %p of length = %d", values, valueslen);
+
+		for (iYBlock = 0; iYBlock < nYBlocks; iYBlock++) {
+			for (iXBlock = 0; iXBlock < nXBlocks; iXBlock++) {
+				x = iXBlock * nXBlockSize;
+				y = iYBlock * nYBlockSize;
+				RASTER_DEBUGF(4, "(iXBlock, iYBlock) = (%d, %d)", iXBlock, iYBlock);
+				RASTER_DEBUGF(4, "(x, y) = (%d, %d)", x, y);
+
+				memset(values, 0, valueslen);
+
+				/* valid block width */
+				if ((iXBlock + 1) * nXBlockSize > width)
+					nXValid = width - (iXBlock * nXBlockSize);
+				else
+					nXValid = nXBlockSize;
+
+				/* valid block height */
+				if ((iYBlock + 1) * nYBlockSize > height)
+					nYValid = height - (iYBlock * nYBlockSize);
+				else
+					nYValid = nYBlockSize;
+
+				RASTER_DEBUGF(4, "(nXValid, nYValid) = (%d, %d)", nXValid, nYValid);
+
+				cplerr = GDALRasterIO(
+					gdband, GF_Read,
+					x, y,
+					nXValid, nYValid,
+					values, nXValid, nYValid,
+					gdpixtype,
+					0, 0
+				);
+				if (cplerr != CE_None) {
+					rterror("rt_raster_from_gdal_dataset: Could not get data from GDAL raster");
+					rtdealloc(values);
+					rt_raster_destroy(rast);
+					return NULL;
+				}
+
+				/* if block width is same as raster width, shortcut */
+				if (nXBlocks == 1 && nYBlockSize > 1 && nXValid == width) {
+					x = 0;
+					y = nYBlockSize * iYBlock;
+
+					RASTER_DEBUGF(4, "Setting set of pixel lines at (%d, %d) for %d pixels", x, y, nXValid * nYValid);
+					rt_band_set_pixel_line(band, x, y, values, nXValid * nYValid);
+				}
+				else {
+					ptr = values;
+					x = nXBlockSize * iXBlock;
+					for (iY = 0; iY < nYValid; iY++) {
+						y = iY + (nYBlockSize * iYBlock);
+
+						RASTER_DEBUGF(4, "Setting pixel line at (%d, %d) for %d pixels", x, y, nXValid);
+						rt_band_set_pixel_line(band, x, y, ptr, nXValid);
+						ptr += (nXValid * ptlen);
+					}
+				}
+			}
+		}
+
+		/* free memory */
+		rtdealloc(values);
+	}
+
+	return rast;
+}
+
+/******************************************************************************
+* rt_raster_gdal_rasterize()
+******************************************************************************/
+
+typedef struct _rti_rasterize_arg_t* _rti_rasterize_arg;
+struct _rti_rasterize_arg_t {
+	uint8_t noband;
+
+	uint32_t numbands; 
+
+	OGRSpatialReferenceH src_sr;
+
+	rt_pixtype *pixtype;
+	double *init;
+	double *nodata;
+	uint8_t *hasnodata;
+	double *value;
+	int *bandlist;
+};
+
+static _rti_rasterize_arg
+_rti_rasterize_arg_init() {
+	_rti_rasterize_arg arg = NULL;
+
+	arg = rtalloc(sizeof(struct _rti_rasterize_arg_t));
+	if (arg == NULL) {
+		rterror("_rti_rasterize_arg_init: Could not allocate memory for _rti_rasterize_arg");
+		return NULL;
+	}
+
+	arg->noband = 0;
+
+	arg->numbands = 0;
+
+	arg->src_sr = NULL;
+
+	arg->pixtype = NULL;
+	arg->init = NULL;
+	arg->nodata = NULL;
+	arg->hasnodata = NULL;
+	arg->value = NULL;
+	arg->bandlist = NULL;
+
+	return arg;
+}
+
+static void
+_rti_rasterize_arg_destroy(_rti_rasterize_arg arg) {
+	if (arg->noband) {
+		if (arg->pixtype != NULL)
+			rtdealloc(arg->pixtype);
+		if (arg->init != NULL)
+			rtdealloc(arg->init);
+		if (arg->nodata != NULL)
+			rtdealloc(arg->nodata);
+		if (arg->hasnodata != NULL)
+			rtdealloc(arg->hasnodata);
+		if (arg->value != NULL)
+			rtdealloc(arg->value);
+	}
+
+	if (arg->bandlist != NULL)
+		rtdealloc(arg->bandlist);
+
+	if (arg->src_sr != NULL)
+		OSRDestroySpatialReference(arg->src_sr);
+
+	rtdealloc(arg);
+}
+
+/**
+ * Return a raster of the provided geometry
+ *
+ * @param wkb : WKB representation of the geometry to convert
+ * @param wkb_len : length of the WKB representation of the geometry
+ * @param srs : the geometry's coordinate system in OGC WKT
+ * @param num_bands : number of bands in the output raster
+ * @param pixtype : data type of each band
+ * @param init : array of values to initialize each band with
+ * @param value : array of values for pixels of geometry
+ * @param nodata : array of nodata values for each band
+ * @param hasnodata : array flagging the presence of nodata for each band
+ * @param width : the number of columns of the raster
+ * @param height : the number of rows of the raster
+ * @param scale_x : the pixel width of the raster
+ * @param scale_y : the pixel height of the raster
+ * @param ul_xw : the X value of upper-left corner of the raster
+ * @param ul_yw : the Y value of upper-left corner of the raster
+ * @param grid_xw : the X value of point on grid to align raster to
+ * @param grid_yw : the Y value of point on grid to align raster to
+ * @param skew_x : the X skew of the raster
+ * @param skew_y : the Y skew of the raster
+ * @param options : array of options.  only option is "ALL_TOUCHED"
+ *
+ * @return the raster of the provided geometry or NULL
+ */
+rt_raster
+rt_raster_gdal_rasterize(
+	const unsigned char *wkb, uint32_t wkb_len,
+	const char *srs,
+	uint32_t num_bands, rt_pixtype *pixtype,
+	double *init, double *value,
+	double *nodata, uint8_t *hasnodata,
+	int *width, int *height,
+	double *scale_x, double *scale_y,
+	double *ul_xw, double *ul_yw,
+	double *grid_xw, double *grid_yw,
+	double *skew_x, double *skew_y,
+	char **options
+) {
+	rt_raster rast = NULL;
+	int i = 0;
+	int err = 0;
+
+	_rti_rasterize_arg arg = NULL;
+
+	int _dim[2] = {0};
+	double _scale[2] = {0};
+	double _skew[2] = {0};
+
+	OGRErr ogrerr;
+	OGRGeometryH src_geom;
+	OGREnvelope src_env;
+	rt_envelope extent;
+	OGRwkbGeometryType wkbtype = wkbUnknown;
+
+	int ul_user = 0;
+
+	CPLErr cplerr;
+	double _gt[6] = {0};
+	GDALDriverH _drv = NULL;
+	int unload_drv = 0;
+	GDALDatasetH _ds = NULL;
+	GDALRasterBandH _band = NULL;
+
+	uint16_t _width = 0;
+	uint16_t _height = 0;
+
+	RASTER_DEBUG(3, "starting");
+
+	assert(NULL != wkb);
+	assert(0 != wkb_len);
+
+	/* internal variables */
+	arg = _rti_rasterize_arg_init();
+	if (arg == NULL) {
+		rterror("rt_raster_gdal_rasterize: Could not initialize internal variables");
+		return NULL;
+	}
+
+	/* no bands, raster is a mask */
+	if (num_bands < 1) {
+		arg->noband = 1;
+		arg->numbands = 1;
+
+		arg->pixtype = (rt_pixtype *) rtalloc(sizeof(rt_pixtype));
+		arg->pixtype[0] = PT_8BUI;
+
+		arg->init = (double *) rtalloc(sizeof(double));
+		arg->init[0] = 0;
+
+		arg->nodata = (double *) rtalloc(sizeof(double));
+		arg->nodata[0] = 0;
+
+		arg->hasnodata = (uint8_t *) rtalloc(sizeof(uint8_t));
+		arg->hasnodata[0] = 1;
+
+		arg->value = (double *) rtalloc(sizeof(double));
+		arg->value[0] = 1;
+	}
+	else {
+		arg->noband = 0;
+		arg->numbands = num_bands;
+
+		arg->pixtype = pixtype;
+		arg->init = init;
+		arg->nodata = nodata;
+		arg->hasnodata = hasnodata;
+		arg->value = value;
+	}
+
+	/* OGR spatial reference */
+	if (NULL != srs && strlen(srs)) {
+		arg->src_sr = OSRNewSpatialReference(NULL);
+		if (OSRSetFromUserInput(arg->src_sr, srs) != OGRERR_NONE) {
+			rterror("rt_raster_gdal_rasterize: Could not create OSR spatial reference using the provided srs: %s", srs);
+			_rti_rasterize_arg_destroy(arg);
+			return NULL;
+		}
+	}
+
+	/* convert WKB to OGR Geometry */
+	ogrerr = OGR_G_CreateFromWkb((unsigned char *) wkb, arg->src_sr, &src_geom, wkb_len);
+	if (ogrerr != OGRERR_NONE) {
+		rterror("rt_raster_gdal_rasterize: Could not create OGR Geometry from WKB");
+
+		_rti_rasterize_arg_destroy(arg);
+		/* OGRCleanupAll(); */
+
+		return NULL;
+	}
+
+	/* OGR Geometry is empty */
+	if (OGR_G_IsEmpty(src_geom)) {
+		rtinfo("Geometry provided is empty. Returning empty raster");
+
+		OGR_G_DestroyGeometry(src_geom);
+		_rti_rasterize_arg_destroy(arg);
+		/* OGRCleanupAll(); */
+
+		return rt_raster_new(0, 0);
+	}
+
+	/* get envelope */
+	OGR_G_GetEnvelope(src_geom, &src_env);
+	rt_util_from_ogr_envelope(src_env, &extent);
+
+	RASTER_DEBUGF(3, "Suggested raster envelope: %f, %f, %f, %f",
+		extent.MinX, extent.MinY, extent.MaxX, extent.MaxY);
+
+	/* user-defined scale */
+	if (
+		(NULL != scale_x) &&
+		(NULL != scale_y) &&
+		(FLT_NEQ(*scale_x, 0.0)) &&
+		(FLT_NEQ(*scale_y, 0.0))
+	) {
+		/* for now, force scale to be in left-right, top-down orientation */
+		_scale[0] = fabs(*scale_x);
+		_scale[1] = fabs(*scale_y);
+	}
+	/* user-defined width/height */
+	else if (
+		(NULL != width) &&
+		(NULL != height) &&
+		(FLT_NEQ(*width, 0.0)) &&
+		(FLT_NEQ(*height, 0.0))
+	) {
+		_dim[0] = abs(*width);
+		_dim[1] = abs(*height);
+
+		if (FLT_NEQ(extent.MaxX, extent.MinX))
+			_scale[0] = fabs((extent.MaxX - extent.MinX) / _dim[0]);
+		else
+			_scale[0] = 1.;
+
+		if (FLT_NEQ(extent.MaxY, extent.MinY))
+			_scale[1] = fabs((extent.MaxY - extent.MinY) / _dim[1]);
+		else
+			_scale[1] = 1.;
+	}
+	else {
+		rterror("rt_raster_gdal_rasterize: Values must be provided for width and height or X and Y of scale");
+
+		OGR_G_DestroyGeometry(src_geom);
+		_rti_rasterize_arg_destroy(arg);
+		/* OGRCleanupAll(); */
+
+		return NULL;
+	}
+	RASTER_DEBUGF(3, "scale (x, y) = %f, %f", _scale[0], -1 * _scale[1]);
+	RASTER_DEBUGF(3, "dim (x, y) = %d, %d", _dim[0], _dim[1]);
+
+	/* user-defined skew */
+	if (NULL != skew_x) {
+		_skew[0] = *skew_x;
+
+		/*
+			negative scale-x affects skew
+			for now, force skew to be in left-right, top-down orientation
+		*/
+		if (
+			NULL != scale_x &&
+			*scale_x < 0.
+		) {
+			_skew[0] *= -1;
+		}
+	}
+	if (NULL != skew_y) {
+		_skew[1] = *skew_y;
+
+		/*
+			positive scale-y affects skew
+			for now, force skew to be in left-right, top-down orientation
+		*/
+		if (
+			NULL != scale_y &&
+			*scale_y > 0.
+		) {
+			_skew[1] *= -1;
+		}
+	}
+
+	/*
+	 	if geometry is a point, a linestring or set of either and bounds not set,
+		increase extent by a pixel to avoid missing points on border
+
+		a whole pixel is used instead of half-pixel due to backward
+		compatibility with GDAL 1.6, 1.7 and 1.8.  1.9+ works fine with half-pixel.
+	*/
+	wkbtype = wkbFlatten(OGR_G_GetGeometryType(src_geom));
+	if ((
+			(wkbtype == wkbPoint) ||
+			(wkbtype == wkbMultiPoint) ||
+			(wkbtype == wkbLineString) ||
+			(wkbtype == wkbMultiLineString)
+		) &&
+		_dim[0] == 0 &&
+		_dim[1] == 0
+	) {
+		int result;
+		LWPOLY *epoly = NULL;
+		LWGEOM *lwgeom = NULL;
+		GEOSGeometry *egeom = NULL;
+		GEOSGeometry *geom = NULL;
+
+		RASTER_DEBUG(3, "Testing geometry is properly contained by extent");
+
+		/*
+			see if geometry is properly contained by extent
+			all parts of geometry lies within extent
+		*/
+
+		/* initialize GEOS */
+		initGEOS(rtinfo, lwgeom_geos_error);
+
+		/* convert envelope to geometry */
+		RASTER_DEBUG(4, "Converting envelope to geometry");
+		epoly = rt_util_envelope_to_lwpoly(extent);
+		if (epoly == NULL) {
+			rterror("rt_raster_gdal_rasterize: Could not create envelope's geometry to test if geometry is properly contained by extent");
+
+			OGR_G_DestroyGeometry(src_geom);
+			_rti_rasterize_arg_destroy(arg);
+			/* OGRCleanupAll(); */
+
+			return NULL;
+		}
+
+		egeom = (GEOSGeometry *) LWGEOM2GEOS(lwpoly_as_lwgeom(epoly), 0);
+		lwpoly_free(epoly);
+
+		/* convert WKB to geometry */
+		RASTER_DEBUG(4, "Converting WKB to geometry");
+		lwgeom = lwgeom_from_wkb(wkb, wkb_len, LW_PARSER_CHECK_NONE);
+		geom = (GEOSGeometry *) LWGEOM2GEOS(lwgeom, 0);
+		lwgeom_free(lwgeom);
+
+		result = GEOSRelatePattern(egeom, geom, "T**FF*FF*");
+		GEOSGeom_destroy(geom);
+		GEOSGeom_destroy(egeom);
+
+		if (result == 2) {
+			rterror("rt_raster_gdal_rasterize: Could not test if geometry is properly contained by extent for geometry within extent");
+
+			OGR_G_DestroyGeometry(src_geom);
+			_rti_rasterize_arg_destroy(arg);
+			/* OGRCleanupAll(); */
+
+			return NULL;
+		}
+
+		/* geometry NOT properly contained by extent */
+		if (!result) {
+
+#if POSTGIS_GDAL_VERSION > 18
+
+			/* check alignment flag: grid_xw */
+			if (
+				(NULL == ul_xw && NULL == ul_yw) &&
+				(NULL != grid_xw && NULL != grid_xw) &&
+				FLT_NEQ(*grid_xw, extent.MinX)
+			) {
+				/* do nothing */
+				RASTER_DEBUG(3, "Skipping extent adjustment on X-axis due to upcoming alignment");
+			}
+			else {
+				RASTER_DEBUG(3, "Adjusting extent for GDAL > 1.8 by half the scale on X-axis");
+				extent.MinX -= (_scale[0] / 2.);
+				extent.MaxX += (_scale[0] / 2.);
+			}
+
+			/* check alignment flag: grid_yw */
+			if (
+				(NULL == ul_xw && NULL == ul_yw) &&
+				(NULL != grid_xw && NULL != grid_xw) &&
+				FLT_NEQ(*grid_yw, extent.MaxY)
+			) {
+				/* do nothing */
+				RASTER_DEBUG(3, "Skipping extent adjustment on Y-axis due to upcoming alignment");
+			}
+			else {
+				RASTER_DEBUG(3, "Adjusting extent for GDAL > 1.8 by half the scale on Y-axis");
+				extent.MinY -= (_scale[1] / 2.);
+				extent.MaxY += (_scale[1] / 2.);
+			}
+
+#else
+
+			/* check alignment flag: grid_xw */
+			if (
+				(NULL == ul_xw && NULL == ul_yw) &&
+				(NULL != grid_xw && NULL != grid_xw) &&
+				FLT_NEQ(*grid_xw, extent.MinX)
+			) {
+				/* do nothing */
+				RASTER_DEBUG(3, "Skipping extent adjustment on X-axis due to upcoming alignment");
+			}
+			else {
+				RASTER_DEBUG(3, "Adjusting extent for GDAL <= 1.8 by the scale on X-axis");
+				extent.MinX -= _scale[0];
+				extent.MaxX += _scale[0];
+			}
+
+
+			/* check alignment flag: grid_yw */
+			if (
+				(NULL == ul_xw && NULL == ul_yw) &&
+				(NULL != grid_xw && NULL != grid_xw) &&
+				FLT_NEQ(*grid_yw, extent.MaxY)
+			) {
+				/* do nothing */
+				RASTER_DEBUG(3, "Skipping extent adjustment on Y-axis due to upcoming alignment");
+			}
+			else {
+				RASTER_DEBUG(3, "Adjusting extent for GDAL <= 1.8 by the scale on Y-axis");
+				extent.MinY -= _scale[1];
+				extent.MaxY += _scale[1];
+			}
+
+#endif
+
+		}
+
+		RASTER_DEBUGF(3, "Adjusted extent: %f, %f, %f, %f",
+			extent.MinX, extent.MinY, extent.MaxX, extent.MaxY);
+
+		extent.UpperLeftX = extent.MinX;
+		extent.UpperLeftY = extent.MaxY;
+	}
+
+	/* reprocess extent if skewed */
+	if (
+		FLT_NEQ(_skew[0], 0) ||
+		FLT_NEQ(_skew[1], 0)
+	) {
+		rt_raster skewedrast;
+
+		RASTER_DEBUG(3, "Computing skewed extent's envelope");
+
+		skewedrast = rt_raster_compute_skewed_raster(
+			extent,
+			_skew,
+			_scale,
+			0.01
+		);
+		if (skewedrast == NULL) {
+			rterror("rt_raster_gdal_rasterize: Could not compute skewed raster");
+
+			OGR_G_DestroyGeometry(src_geom);
+			_rti_rasterize_arg_destroy(arg);
+			/* OGRCleanupAll(); */
+
+			return NULL;
+		}
+
+		_dim[0] = skewedrast->width;
+		_dim[1] = skewedrast->height;
+
+		extent.UpperLeftX = skewedrast->ipX;
+		extent.UpperLeftY = skewedrast->ipY;
+
+		rt_raster_destroy(skewedrast);
+	}
+
+	/* raster dimensions */
+	if (!_dim[0])
+		_dim[0] = (int) fmax((fabs(extent.MaxX - extent.MinX) + (_scale[0] / 2.)) / _scale[0], 1);
+	if (!_dim[1])
+		_dim[1] = (int) fmax((fabs(extent.MaxY - extent.MinY) + (_scale[1] / 2.)) / _scale[1], 1);
+
+	/* temporary raster */
+	rast = rt_raster_new(_dim[0], _dim[1]);
+	if (rast == NULL) {
+		rterror("rt_raster_gdal_rasterize: Out of memory allocating temporary raster");
+
+		OGR_G_DestroyGeometry(src_geom);
+		_rti_rasterize_arg_destroy(arg);
+		/* OGRCleanupAll(); */
+
+		return NULL;
+	}
+
+	/* set raster's spatial attributes */
+	rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
+	rt_raster_set_scale(rast, _scale[0], -1 * _scale[1]);
+	rt_raster_set_skews(rast, _skew[0], _skew[1]);
+
+	rt_raster_get_geotransform_matrix(rast, _gt);
+	RASTER_DEBUGF(3, "Temp raster's geotransform: %f, %f, %f, %f, %f, %f",
+		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
+	RASTER_DEBUGF(3, "Temp raster's dimensions (width x height): %d x %d",
+		_dim[0], _dim[1]);
+
+	/* user-specified upper-left corner */
+	if (
+		NULL != ul_xw &&
+		NULL != ul_yw
+	) {
+		ul_user = 1;
+
+		RASTER_DEBUGF(4, "Using user-specified upper-left corner: %f, %f", *ul_xw, *ul_yw);
+
+		/* set upper-left corner */
+		rt_raster_set_offsets(rast, *ul_xw, *ul_yw);
+		extent.UpperLeftX = *ul_xw;
+		extent.UpperLeftY = *ul_yw;
+	}
+	else if (
+		((NULL != ul_xw) && (NULL == ul_yw)) ||
+		((NULL == ul_xw) && (NULL != ul_yw))
+	) {
+		rterror("rt_raster_gdal_rasterize: Both X and Y upper-left corner values must be provided");
+
+		rt_raster_destroy(rast);
+		OGR_G_DestroyGeometry(src_geom);
+		_rti_rasterize_arg_destroy(arg);
+		/* OGRCleanupAll(); */
+
+		return NULL;
+	}
+
+	/* alignment only considered if upper-left corner not provided */
+	if (
+		!ul_user && (
+			(NULL != grid_xw) || (NULL != grid_yw)
+		)
+	) {
+
+		if (
+			((NULL != grid_xw) && (NULL == grid_yw)) ||
+			((NULL == grid_xw) && (NULL != grid_yw))
+		) {
+			rterror("rt_raster_gdal_rasterize: Both X and Y alignment values must be provided");
+
+			rt_raster_destroy(rast);
+			OGR_G_DestroyGeometry(src_geom);
+			_rti_rasterize_arg_destroy(arg);
+			/* OGRCleanupAll(); */
+
+			return NULL;
+		}
+
+		RASTER_DEBUGF(4, "Aligning extent to user-specified grid: %f, %f", *grid_xw, *grid_yw);
+
+		do {
+			double _r[2] = {0};
+			double _w[2] = {0};
+
+			/* raster is already aligned */
+			if (FLT_EQ(*grid_xw, extent.UpperLeftX) && FLT_EQ(*grid_yw, extent.UpperLeftY)) {
+				RASTER_DEBUG(3, "Skipping raster alignment as it is already aligned to grid");
+				break;
+			}
+
+			extent.UpperLeftX = rast->ipX;
+			extent.UpperLeftY = rast->ipY;
+			rt_raster_set_offsets(rast, *grid_xw, *grid_yw);
+
+			/* process upper-left corner */
+			if (rt_raster_geopoint_to_cell(
+				rast,
+				extent.UpperLeftX, extent.UpperLeftY,
+				&(_r[0]), &(_r[1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_gdal_rasterize: Could not compute raster pixel for spatial coordinates");
+
+				rt_raster_destroy(rast);
+				OGR_G_DestroyGeometry(src_geom);
+				_rti_rasterize_arg_destroy(arg);
+				/* OGRCleanupAll(); */
+
+				return NULL;
+			}
+
+			if (rt_raster_cell_to_geopoint(
+				rast,
+				_r[0], _r[1],
+				&(_w[0]), &(_w[1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
+
+				rt_raster_destroy(rast);
+				OGR_G_DestroyGeometry(src_geom);
+				_rti_rasterize_arg_destroy(arg);
+				/* OGRCleanupAll(); */
+
+				return NULL;
+			}
+
+			/* shift occurred */
+			if (FLT_NEQ(_w[0], extent.UpperLeftX)) {
+				if (NULL == width)
+					rast->width++;
+				else if (NULL == scale_x) {
+					double _c[2] = {0};
+
+					rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
+
+					/* get upper-right corner */
+					if (rt_raster_cell_to_geopoint(
+						rast,
+						rast->width, 0,
+						&(_c[0]), &(_c[1]),
+						NULL
+					) != ES_NONE) {
+						rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
+
+						rt_raster_destroy(rast);
+						OGR_G_DestroyGeometry(src_geom);
+						_rti_rasterize_arg_destroy(arg);
+						/* OGRCleanupAll(); */
+
+						return NULL;
+					}
+
+					rast->scaleX = fabs((_c[0] - _w[0]) / ((double) rast->width));
+				}
+			}
+			if (FLT_NEQ(_w[1], extent.UpperLeftY)) {
+				if (NULL == height)
+					rast->height++;
+				else if (NULL == scale_y) {
+					double _c[2] = {0};
+
+					rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
+
+					/* get upper-right corner */
+					if (rt_raster_cell_to_geopoint(
+						rast,
+						0, rast->height,
+						&(_c[0]), &(_c[1]),
+						NULL
+					) != ES_NONE) {
+						rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
+
+						rt_raster_destroy(rast);
+						OGR_G_DestroyGeometry(src_geom);
+						_rti_rasterize_arg_destroy(arg);
+						/* OGRCleanupAll(); */
+
+						return NULL;
+					}
+
+					rast->scaleY = -1 * fabs((_c[1] - _w[1]) / ((double) rast->height));
+				}
+			}
+
+			rt_raster_set_offsets(rast, _w[0], _w[1]);
+		}
+		while (0);
+	}
+
+	/*
+		after this point, rt_envelope extent is no longer used
+	*/
+
+	/* get key attributes from rast */
+	_dim[0] = rast->width;
+	_dim[1] = rast->height;
+	rt_raster_get_geotransform_matrix(rast, _gt);
+
+	/* scale-x is negative or scale-y is positive */
+	if ((
+		(NULL != scale_x) && (*scale_x < 0.)
+	) || (
+		(NULL != scale_y) && (*scale_y > 0)
+	)) {
+		double _w[2] = {0};
+
+		/* negative scale-x */
+		if (
+			(NULL != scale_x) &&
+			(*scale_x < 0.)
+		) {
+			RASTER_DEBUG(3, "Processing negative scale-x");
+
+			if (rt_raster_cell_to_geopoint(
+				rast,
+				_dim[0], 0,
+				&(_w[0]), &(_w[1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
+
+				rt_raster_destroy(rast);
+				OGR_G_DestroyGeometry(src_geom);
+				_rti_rasterize_arg_destroy(arg);
+				/* OGRCleanupAll(); */
+
+				return NULL;
+			}
+
+			_gt[0] = _w[0];
+			_gt[1] = *scale_x;
+
+			/* check for skew */
+			if (NULL != skew_x && FLT_NEQ(*skew_x, 0))
+				_gt[2] = *skew_x;
+		}
+		/* positive scale-y */
+		if (
+			(NULL != scale_y) &&
+			(*scale_y > 0)
+		) {
+			RASTER_DEBUG(3, "Processing positive scale-y");
+
+			if (rt_raster_cell_to_geopoint(
+				rast,
+				0, _dim[1],
+				&(_w[0]), &(_w[1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_gdal_rasterize: Could not compute spatial coordinates for raster pixel");
+
+				rt_raster_destroy(rast);
+				OGR_G_DestroyGeometry(src_geom);
+				_rti_rasterize_arg_destroy(arg);
+				/* OGRCleanupAll(); */
+
+				return NULL;
+			}
+
+			_gt[3] = _w[1];
+			_gt[5] = *scale_y;
+
+			/* check for skew */
+			if (NULL != skew_y && FLT_NEQ(*skew_y, 0))
+				_gt[4] = *skew_y;
+		}
+	}
+
+	rt_raster_destroy(rast);
+	rast = NULL;
+
+	RASTER_DEBUGF(3, "Applied geotransform: %f, %f, %f, %f, %f, %f",
+		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
+	RASTER_DEBUGF(3, "Raster dimensions (width x height): %d x %d",
+		_dim[0], _dim[1]);
+
+	/* load GDAL mem */
+	if (!rt_util_gdal_driver_registered("MEM")) {
+		RASTER_DEBUG(4, "Registering MEM driver");
+		GDALRegister_MEM();
+		unload_drv = 1;
+	}
+	_drv = GDALGetDriverByName("MEM");
+	if (NULL == _drv) {
+		rterror("rt_raster_gdal_rasterize: Could not load the MEM GDAL driver");
+
+		OGR_G_DestroyGeometry(src_geom);
+		_rti_rasterize_arg_destroy(arg);
+		/* OGRCleanupAll(); */
+
+		return NULL;
+	}
+
+	/* unload driver from GDAL driver manager */
+	if (unload_drv) {
+		RASTER_DEBUG(4, "Deregistering MEM driver");
+		GDALDeregisterDriver(_drv);
+	}
+
+	_ds = GDALCreate(_drv, "", _dim[0], _dim[1], 0, GDT_Byte, NULL);
+	if (NULL == _ds) {
+		rterror("rt_raster_gdal_rasterize: Could not create a GDALDataset to rasterize the geometry into");
+
+		OGR_G_DestroyGeometry(src_geom);
+		_rti_rasterize_arg_destroy(arg);
+		/* OGRCleanupAll(); */
+		if (unload_drv) GDALDestroyDriver(_drv);
+
+		return NULL;
+	}
+
+	/* set geotransform */
+	cplerr = GDALSetGeoTransform(_ds, _gt);
+	if (cplerr != CE_None) {
+		rterror("rt_raster_gdal_rasterize: Could not set geotransform on GDALDataset");
+
+		OGR_G_DestroyGeometry(src_geom);
+		_rti_rasterize_arg_destroy(arg);
+		/* OGRCleanupAll(); */
+
+		GDALClose(_ds);
+		if (unload_drv) GDALDestroyDriver(_drv);
+
+		return NULL;
+	}
+
+	/* set SRS */
+	if (NULL != arg->src_sr) {
+		char *_srs = NULL;
+		OSRExportToWkt(arg->src_sr, &_srs);
+
+		cplerr = GDALSetProjection(_ds, _srs);
+		CPLFree(_srs);
+		if (cplerr != CE_None) {
+			rterror("rt_raster_gdal_rasterize: Could not set projection on GDALDataset");
+
+			OGR_G_DestroyGeometry(src_geom);
+			_rti_rasterize_arg_destroy(arg);
+			/* OGRCleanupAll(); */
+
+			GDALClose(_ds);
+		if (unload_drv) GDALDestroyDriver(_drv);
+
+			return NULL;
+		}
+	}
+
+	/* set bands */
+	for (i = 0; i < arg->numbands; i++) {
+		err = 0;
+
+		do {
+			/* add band */
+			cplerr = GDALAddBand(_ds, rt_util_pixtype_to_gdal_datatype(arg->pixtype[i]), NULL);
+			if (cplerr != CE_None) {
+				rterror("rt_raster_gdal_rasterize: Could not add band to GDALDataset");
+				err = 1;
+				break;
+			}
+
+			_band = GDALGetRasterBand(_ds, i + 1);
+			if (NULL == _band) {
+				rterror("rt_raster_gdal_rasterize: Could not get band %d from GDALDataset", i + 1);
+				err = 1;
+				break;
+			}
+
+			/* nodata value */
+			if (arg->hasnodata[i]) {
+				RASTER_DEBUGF(4, "Setting NODATA value of band %d to %f", i, arg->nodata[i]);
+				cplerr = GDALSetRasterNoDataValue(_band, arg->nodata[i]);
+				if (cplerr != CE_None) {
+					rterror("rt_raster_gdal_rasterize: Could not set nodata value");
+					err = 1;
+					break;
+				}
+				RASTER_DEBUGF(4, "NODATA value set to %f", GDALGetRasterNoDataValue(_band, NULL));
+			}
+
+			/* initial value */
+			cplerr = GDALFillRaster(_band, arg->init[i], 0);
+			if (cplerr != CE_None) {
+				rterror("rt_raster_gdal_rasterize: Could not set initial value");
+				err = 1;
+				break;
+			}
+		}
+		while (0);
+
+		if (err) {
+
+			OGR_G_DestroyGeometry(src_geom);
+			_rti_rasterize_arg_destroy(arg);
+
+			/* OGRCleanupAll(); */
+
+			GDALClose(_ds);
+			if (unload_drv) GDALDestroyDriver(_drv);
+
+			return NULL;
+		}
+	}
+
+	arg->bandlist = (int *) rtalloc(sizeof(int) * arg->numbands);
+	for (i = 0; i < arg->numbands; i++) arg->bandlist[i] = i + 1;
+
+	/* burn geometry */
+	cplerr = GDALRasterizeGeometries(
+		_ds,
+		arg->numbands, arg->bandlist,
+		1, &src_geom,
+		NULL, NULL,
+		arg->value,
+		options,
+		NULL, NULL
+	);
+	if (cplerr != CE_None) {
+		rterror("rt_raster_gdal_rasterize: Could not rasterize geometry");
+
+		OGR_G_DestroyGeometry(src_geom);
+		_rti_rasterize_arg_destroy(arg);
+		/* OGRCleanupAll(); */
+
+		GDALClose(_ds);
+		if (unload_drv) GDALDestroyDriver(_drv);
+
+		return NULL;
+	}
+
+	/* convert gdal dataset to raster */
+	GDALFlushCache(_ds);
+	RASTER_DEBUG(3, "Converting GDAL dataset to raster");
+	rast = rt_raster_from_gdal_dataset(_ds);
+
+	OGR_G_DestroyGeometry(src_geom);
+	/* OGRCleanupAll(); */
+
+	GDALClose(_ds);
+	if (unload_drv) GDALDestroyDriver(_drv);
+
+	if (NULL == rast) {
+		rterror("rt_raster_gdal_rasterize: Could not rasterize geometry");
+		return NULL;
+	}
+
+	/* width, height */
+	_width = rt_raster_get_width(rast);
+	_height = rt_raster_get_height(rast);
+
+	/* check each band for pixtype */
+	for (i = 0; i < arg->numbands; i++) {
+		uint8_t *data = NULL;
+		rt_band band = NULL;
+		rt_band oldband = NULL;
+
+		double val = 0;
+		int nodata = 0;
+		int hasnodata = 0;
+		double nodataval = 0;
+		int x = 0;
+		int y = 0;
+
+		oldband = rt_raster_get_band(rast, i);
+		if (oldband == NULL) {
+			rterror("rt_raster_gdal_rasterize: Could not get band %d of output raster", i);
+			_rti_rasterize_arg_destroy(arg);
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+
+		/* band is of user-specified type */
+		if (rt_band_get_pixtype(oldband) == arg->pixtype[i])
+			continue;
+
+		/* hasnodata, nodataval */
+		hasnodata = rt_band_get_hasnodata_flag(oldband);
+		if (hasnodata)
+			rt_band_get_nodata(oldband, &nodataval);
+
+		/* allocate data */
+		data = rtalloc(rt_pixtype_size(arg->pixtype[i]) * _width * _height);
+		if (data == NULL) {
+			rterror("rt_raster_gdal_rasterize: Could not allocate memory for band data");
+			_rti_rasterize_arg_destroy(arg);
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+		memset(data, 0, rt_pixtype_size(arg->pixtype[i]) * _width * _height);
+
+		/* create new band of correct type */
+		band = rt_band_new_inline(
+			_width, _height,
+			arg->pixtype[i],
+			hasnodata, nodataval,
+			data
+		);
+		if (band == NULL) {
+			rterror("rt_raster_gdal_rasterize: Could not create band");
+			rtdealloc(data);
+			_rti_rasterize_arg_destroy(arg);
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+
+		/* give ownership of data to band */
+		rt_band_set_ownsdata_flag(band, 1);
+
+		/* copy pixel by pixel */
+		for (x = 0; x < _width; x++) {
+			for (y = 0; y < _height; y++) {
+				err = rt_band_get_pixel(oldband, x, y, &val, &nodata);
+				if (err != ES_NONE) {
+					rterror("rt_raster_gdal_rasterize: Could not get pixel value");
+					_rti_rasterize_arg_destroy(arg);
+					rt_raster_destroy(rast);
+					rt_band_destroy(band);
+					return NULL;
+				}
+
+				if (nodata)
+					val = nodataval;
+
+				err = rt_band_set_pixel(band, x, y, val, NULL);
+				if (err != ES_NONE) {
+					rterror("rt_raster_gdal_rasterize: Could not set pixel value");
+					_rti_rasterize_arg_destroy(arg);
+					rt_raster_destroy(rast);
+					rt_band_destroy(band);
+					return NULL;
+				}
+			}
+		}
+
+		/* replace band */
+		oldband = rt_raster_replace_band(rast, band, i);
+		if (oldband == NULL) {
+			rterror("rt_raster_gdal_rasterize: Could not replace band %d of output raster", i);
+			_rti_rasterize_arg_destroy(arg);
+			rt_raster_destroy(rast);
+			rt_band_destroy(band);
+			return NULL;
+		}
+
+		/* free oldband */
+		rt_band_destroy(oldband);
+	}
+
+	_rti_rasterize_arg_destroy(arg);
+
+	RASTER_DEBUG(3, "done");
+
+	return rast;
+}
+
+/******************************************************************************
+* rt_raster_from_two_rasters()
+******************************************************************************/
+
+/*
+ * Return raster of computed extent specified extenttype applied
+ * on two input rasters.  The raster returned should be freed by
+ * the caller
+ *
+ * @param rast1 : the first raster
+ * @param rast2 : the second raster
+ * @param extenttype : type of extent for the output raster
+ * @param *rtnraster : raster of computed extent
+ * @param *offset : 4-element array indicating the X,Y offsets
+ * for each raster. 0,1 for rast1 X,Y. 2,3 for rast2 X,Y.
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_raster_from_two_rasters(
+	rt_raster rast1, rt_raster rast2,
+	rt_extenttype extenttype,
+	rt_raster *rtnraster, double *offset
+) {
+	int i;
+
+	rt_raster _rast[2] = {rast1, rast2};
+	double _offset[2][4] = {{0.}};
+	uint16_t _dim[2][2] = {{0}};
+
+	rt_raster raster = NULL;
+	int aligned = 0;
+	int dim[2] = {0};
+	double gt[6] = {0.};
+
+	assert(NULL != rast1);
+	assert(NULL != rast2);
+	assert(NULL != rtnraster);
+
+	/* set rtnraster to NULL */
+	*rtnraster = NULL;
+
+	/* rasters must be aligned */
+	if (rt_raster_same_alignment(rast1, rast2, &aligned, NULL) != ES_NONE) {
+		rterror("rt_raster_from_two_rasters: Could not test for alignment on the two rasters");
+		return ES_ERROR;
+	}
+	if (!aligned) {
+		rterror("rt_raster_from_two_rasters: The two rasters provided do not have the same alignment");
+		return ES_ERROR;
+	}
+
+	/* dimensions */
+	_dim[0][0] = rast1->width;
+	_dim[0][1] = rast1->height;
+	_dim[1][0] = rast2->width;
+	_dim[1][1] = rast2->height;
+
+	/* get raster offsets */
+	if (rt_raster_geopoint_to_cell(
+		_rast[1],
+		_rast[0]->ipX, _rast[0]->ipY,
+		&(_offset[1][0]), &(_offset[1][1]),
+		NULL
+	) != ES_NONE) {
+		rterror("rt_raster_from_two_rasters: Could not compute offsets of the second raster relative to the first raster");
+		return ES_ERROR;
+	}
+	_offset[1][0] = -1 * _offset[1][0];
+	_offset[1][1] = -1 * _offset[1][1];
+	_offset[1][2] = _offset[1][0] + _dim[1][0] - 1;
+	_offset[1][3] = _offset[1][1] + _dim[1][1] - 1;
+
+	i = -1;
+	switch (extenttype) {
+		case ET_FIRST:
+			i = 0;
+			_offset[0][0] = 0.;
+			_offset[0][1] = 0.;
+		case ET_LAST:
+		case ET_SECOND:
+			if (i < 0) {
+				i = 1;
+				_offset[0][0] = -1 * _offset[1][0];
+				_offset[0][1] = -1 * _offset[1][1];
+				_offset[1][0] = 0.;
+				_offset[1][1] = 0.;
+			}
+
+			dim[0] = _dim[i][0];
+			dim[1] = _dim[i][1];
+			raster = rt_raster_new(
+				dim[0],
+				dim[1]
+			);
+			if (raster == NULL) {
+				rterror("rt_raster_from_two_rasters: Could not create output raster");
+				return ES_ERROR;
+			}
+			rt_raster_set_srid(raster, _rast[i]->srid);
+			rt_raster_get_geotransform_matrix(_rast[i], gt);
+			rt_raster_set_geotransform_matrix(raster, gt);
+			break;
+		case ET_UNION: {
+			double off[4] = {0};
+
+			rt_raster_get_geotransform_matrix(_rast[0], gt);
+			RASTER_DEBUGF(4, "gt = (%f, %f, %f, %f, %f, %f)",
+				gt[0],
+				gt[1],
+				gt[2],
+				gt[3],
+				gt[4],
+				gt[5]
+			);
+
+			/* new raster upper left offset */
+			off[0] = 0;
+			if (_offset[1][0] < 0)
+				off[0] = _offset[1][0];
+			off[1] = 0;
+			if (_offset[1][1] < 0)
+				off[1] = _offset[1][1];
+
+			/* new raster lower right offset */
+			off[2] = _dim[0][0] - 1;
+			if ((int) _offset[1][2] >= _dim[0][0])
+				off[2] = _offset[1][2];
+			off[3] = _dim[0][1] - 1;
+			if ((int) _offset[1][3] >= _dim[0][1])
+				off[3] = _offset[1][3];
+
+			/* upper left corner */
+			if (rt_raster_cell_to_geopoint(
+				_rast[0],
+				off[0], off[1],
+				&(gt[0]), &(gt[3]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_from_two_rasters: Could not get spatial coordinates of upper-left pixel of output raster");
+				return ES_ERROR;
+			}
+
+			dim[0] = off[2] - off[0] + 1;
+			dim[1] = off[3] - off[1] + 1;
+			RASTER_DEBUGF(4, "off = (%f, %f, %f, %f)",
+				off[0],
+				off[1],
+				off[2],
+				off[3]
+			);
+			RASTER_DEBUGF(4, "dim = (%d, %d)", dim[0], dim[1]);
+
+			raster = rt_raster_new(
+				dim[0],
+				dim[1]
+			);
+			if (raster == NULL) {
+				rterror("rt_raster_from_two_rasters: Could not create output raster");
+				return ES_ERROR;
+			}
+			rt_raster_set_srid(raster, _rast[0]->srid);
+			rt_raster_set_geotransform_matrix(raster, gt);
+			RASTER_DEBUGF(4, "gt = (%f, %f, %f, %f, %f, %f)",
+				gt[0],
+				gt[1],
+				gt[2],
+				gt[3],
+				gt[4],
+				gt[5]
+			);
+
+			/* get offsets */
+			if (rt_raster_geopoint_to_cell(
+				_rast[0],
+				gt[0], gt[3],
+				&(_offset[0][0]), &(_offset[0][1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_from_two_rasters: Could not get offsets of the FIRST raster relative to the output raster");
+				rt_raster_destroy(raster);
+				return ES_ERROR;
+			}
+			_offset[0][0] *= -1;
+			_offset[0][1] *= -1;
+
+			if (rt_raster_geopoint_to_cell(
+				_rast[1],
+				gt[0], gt[3],
+				&(_offset[1][0]), &(_offset[1][1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_from_two_rasters: Could not get offsets of the SECOND raster relative to the output raster");
+				rt_raster_destroy(raster);
+				return ES_ERROR;
+			}
+			_offset[1][0] *= -1;
+			_offset[1][1] *= -1;
+			break;
+		}
+		case ET_INTERSECTION: {
+			double off[4] = {0};
+
+			/* no intersection */
+			if (
+				(_offset[1][2] < 0 || _offset[1][0] > (_dim[0][0] - 1)) ||
+				(_offset[1][3] < 0 || _offset[1][1] > (_dim[0][1] - 1))
+			) {
+				RASTER_DEBUG(3, "The two rasters provided have no intersection.  Returning no band raster");
+
+				raster = rt_raster_new(0, 0);
+				if (raster == NULL) {
+					rterror("rt_raster_from_two_rasters: Could not create output raster");
+					return ES_ERROR;
+				}
+				rt_raster_set_srid(raster, _rast[0]->srid);
+				rt_raster_set_scale(raster, 0, 0);
+
+				/* set offsets if provided */
+				if (NULL != offset) {
+					for (i = 0; i < 4; i++)
+						offset[i] = _offset[i / 2][i % 2];
+				}
+
+				*rtnraster = raster;
+				return ES_NONE;
+			}
+
+			if (_offset[1][0] > 0)
+				off[0] = _offset[1][0];
+			if (_offset[1][1] > 0)
+				off[1] = _offset[1][1];
+
+			off[2] = _dim[0][0] - 1;
+			if (_offset[1][2] < _dim[0][0])
+				off[2] = _offset[1][2];
+			off[3] = _dim[0][1] - 1;
+			if (_offset[1][3] < _dim[0][1])
+				off[3] = _offset[1][3];
+
+			dim[0] = off[2] - off[0] + 1;
+			dim[1] = off[3] - off[1] + 1;
+			raster = rt_raster_new(
+				dim[0],
+				dim[1]
+			);
+			if (raster == NULL) {
+				rterror("rt_raster_from_two_rasters: Could not create output raster");
+				return ES_ERROR;
+			}
+			rt_raster_set_srid(raster, _rast[0]->srid);
+
+			/* get upper-left corner */
+			rt_raster_get_geotransform_matrix(_rast[0], gt);
+			if (rt_raster_cell_to_geopoint(
+				_rast[0],
+				off[0], off[1],
+				&(gt[0]), &(gt[3]),
+				gt
+			) != ES_NONE) {
+				rterror("rt_raster_from_two_rasters: Could not get spatial coordinates of upper-left pixel of output raster");
+				rt_raster_destroy(raster);
+				return ES_ERROR;
+			}
+
+			rt_raster_set_geotransform_matrix(raster, gt);
+
+			/* get offsets */
+			if (rt_raster_geopoint_to_cell(
+				_rast[0],
+				gt[0], gt[3],
+				&(_offset[0][0]), &(_offset[0][1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_from_two_rasters: Could not get pixel coordinates to compute the offsets of the FIRST raster relative to the output raster");
+				rt_raster_destroy(raster);
+				return ES_ERROR;
+			}
+			_offset[0][0] *= -1;
+			_offset[0][1] *= -1;
+
+			if (rt_raster_geopoint_to_cell(
+				_rast[1],
+				gt[0], gt[3],
+				&(_offset[1][0]), &(_offset[1][1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_from_two_rasters: Could not get pixel coordinates to compute the offsets of the SECOND raster relative to the output raster");
+				rt_raster_destroy(raster);
+				return ES_ERROR;
+			}
+			_offset[1][0] *= -1;
+			_offset[1][1] *= -1;
+			break;
+		}
+		case ET_CUSTOM:
+			rterror("rt_raster_from_two_rasters: Extent type ET_CUSTOM is not supported by this function");
+			break;
+	}
+
+	/* set offsets if provided */
+	if (NULL != offset) {
+		for (i = 0; i < 4; i++)
+			offset[i] = _offset[i / 2][i % 2];
+	}
+
+	*rtnraster = raster;
+	return ES_NONE;
+}
diff --git a/raster/rt_core/rt_serialize.c b/raster/rt_core/rt_serialize.c
new file mode 100644
index 0000000..2fac633
--- /dev/null
+++ b/raster/rt_core/rt_serialize.c
@@ -0,0 +1,907 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+#include "rt_serialize.h"
+
+/******************************************************************************
+* Debug and Testing Utilities
+******************************************************************************/
+
+#if POSTGIS_DEBUG_LEVEL > 2
+
+char*
+d_binary_to_hex(const uint8_t * const raw, uint32_t size, uint32_t *hexsize) {
+    char* hex = NULL;
+    uint32_t i = 0;
+
+
+    assert(NULL != raw);
+    assert(NULL != hexsize);
+
+
+    *hexsize = size * 2; /* hex is 2 times bytes */
+    hex = (char*) rtalloc((*hexsize) + 1);
+    if (!hex) {
+        rterror("d_binary_to_hex: Out of memory hexifying raw binary");
+        return NULL;
+    }
+    hex[*hexsize] = '\0'; /* Null-terminate */
+
+    for (i = 0; i < size; ++i) {
+        deparse_hex(raw[i], &(hex[2 * i]));
+    }
+
+    assert(NULL != hex);
+    assert(0 == strlen(hex) % 2);
+    return hex;
+}
+
+void
+d_print_binary_hex(const char* msg, const uint8_t * const raw, uint32_t size) {
+    char* hex = NULL;
+    uint32_t hexsize = 0;
+
+
+    assert(NULL != msg);
+    assert(NULL != raw);
+
+
+    hex = d_binary_to_hex(raw, size, &hexsize);
+    if (NULL != hex) {
+        rtinfo("%s\t%s", msg, hex);
+        rtdealloc(hex);
+    }
+}
+
+size_t
+d_binptr_to_pos(const uint8_t * const ptr, const uint8_t * const end, size_t size) {
+    assert(NULL != ptr && NULL != end);
+
+    return (size - (end - ptr));
+}
+
+#endif /* if POSTGIS_DEBUG_LEVEL > 2 */
+
+
+#ifdef OPTIMIZE_SPACE
+
+/*
+ * Set given number of bits of the given byte,
+ * starting from given bitOffset (from the first)
+ * to the given value.
+ *
+ * Examples:
+ *   char ch;
+ *   ch=0; setBits(&ch, 1, 1, 0) -> ch==8
+ *   ch=0; setBits(&ch, 3, 2, 1) -> ch==96 (0x60)
+ *
+ * Note that number of bits set must be <= 8-bitOffset
+ *
+ */
+void
+setBits(char* ch, double val, int bits, int bitOffset) {
+    char mask = 0xFF >> (8 - bits);
+    char ival = val;
+
+
+		assert(ch != NULL);
+    assert(8 - bitOffset >= bits);
+
+    RASTER_DEBUGF(4, "ival:%d bits:%d mask:%hhx bitoffset:%d\n",
+            ival, bits, mask, bitOffset);
+
+    /* clear all but significant bits from ival */
+    ival &= mask;
+#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
+    if (ival != val) {
+        rtwarn("Pixel value for %d-bits band got truncated"
+                " from %g to %hhu", bits, val, ival);
+    }
+#endif /* POSTGIS_RASTER_WARN_ON_TRUNCATION */
+
+    RASTER_DEBUGF(4, " cleared ival:%hhx\n", ival);
+
+
+    /* Shift ival so the significant bits start at
+     * the first bit */
+    ival <<= (8 - bitOffset - bits);
+
+    RASTER_DEBUGF(4, " ival shifted:%hhx\n", ival);
+    RASTER_DEBUGF(4, "  ch:%hhx\n", *ch);
+
+    /* clear first bits of target */
+    *ch &= ~(mask << (8 - bits - bitOffset));
+
+    RASTER_DEBUGF(4, "  ch cleared:%hhx\n", *ch);
+
+    /* Set the first bit of target */
+    *ch |= ival;
+
+    RASTER_DEBUGF(4, "  ch ored:%hhx\n", *ch);
+
+}
+#endif /* OPTIMIZE_SPACE */
+
+void
+swap_char(uint8_t *a, uint8_t *b) {
+    uint8_t c = 0;
+
+    assert(NULL != a && NULL != b);
+
+    c = *a;
+    *a = *b;
+    *b = c;
+}
+
+void
+flip_endian_16(uint8_t *d) {
+    assert(NULL != d);
+
+    swap_char(d, d + 1);
+}
+
+void
+flip_endian_32(uint8_t *d) {
+    assert(NULL != d);
+
+    swap_char(d, d + 3);
+    swap_char(d + 1, d + 2);
+}
+
+void
+flip_endian_64(uint8_t *d) {
+    assert(NULL != d);
+
+    swap_char(d + 7, d);
+    swap_char(d + 6, d + 1);
+    swap_char(d + 5, d + 2);
+    swap_char(d + 4, d + 3);
+}
+
+uint8_t
+isMachineLittleEndian(void) {
+    static int endian_check_int = 1; /* dont modify this!!! */
+    /* 0=big endian|xdr --  1=little endian|ndr */
+    return *((uint8_t *) & endian_check_int);
+}
+
+uint8_t
+read_uint8(const uint8_t** from) {
+    assert(NULL != from);
+
+    return *(*from)++;
+}
+
+/* unused up to now
+void
+write_uint8(uint8_t** from, uint8_t v) {
+    assert(NULL != from);
+
+ *(*from)++ = v;
+}
+*/
+
+int8_t
+read_int8(const uint8_t** from) {
+    assert(NULL != from);
+
+    return (int8_t) read_uint8(from);
+}
+
+/* unused up to now
+void
+write_int8(uint8_t** from, int8_t v) {
+    assert(NULL != from);
+
+ *(*from)++ = v;
+}
+*/
+
+uint16_t
+read_uint16(const uint8_t** from, uint8_t littleEndian) {
+    uint16_t ret = 0;
+
+    assert(NULL != from);
+
+    if (littleEndian) {
+        ret = (*from)[0] |
+                (*from)[1] << 8;
+    } else {
+        /* big endian */
+        ret = (*from)[0] << 8 |
+                (*from)[1];
+    }
+    *from += 2;
+    return ret;
+}
+
+void
+write_uint16(uint8_t** to, uint8_t littleEndian, uint16_t v) {
+    assert(NULL != to);
+
+    if (littleEndian) {
+        (*to)[0] = v & 0x00FF;
+        (*to)[1] = v >> 8;
+    } else {
+        (*to)[1] = v & 0x00FF;
+        (*to)[0] = v >> 8;
+    }
+    *to += 2;
+}
+
+int16_t
+read_int16(const uint8_t** from, uint8_t littleEndian) {
+    assert(NULL != from);
+
+    return read_uint16(from, littleEndian);
+}
+
+/* unused up to now
+void
+write_int16(uint8_t** to, uint8_t littleEndian, int16_t v) {
+    assert(NULL != to);
+
+    if ( littleEndian )
+    {
+        (*to)[0] = v & 0x00FF;
+        (*to)[1] = v >> 8;
+    }
+    else
+    {
+        (*to)[1] = v & 0x00FF;
+        (*to)[0] = v >> 8;
+    }
+ *to += 2;
+}
+*/
+
+uint32_t
+read_uint32(const uint8_t** from, uint8_t littleEndian) {
+    uint32_t ret = 0;
+
+    assert(NULL != from);
+
+    if (littleEndian) {
+        ret = (uint32_t) ((*from)[0] & 0xff) |
+                (uint32_t) ((*from)[1] & 0xff) << 8 |
+                (uint32_t) ((*from)[2] & 0xff) << 16 |
+                (uint32_t) ((*from)[3] & 0xff) << 24;
+    } else {
+        /* big endian */
+        ret = (uint32_t) ((*from)[3] & 0xff) |
+                (uint32_t) ((*from)[2] & 0xff) << 8 |
+                (uint32_t) ((*from)[1] & 0xff) << 16 |
+                (uint32_t) ((*from)[0] & 0xff) << 24;
+    }
+
+    *from += 4;
+    return ret;
+}
+
+/* unused up to now
+void
+write_uint32(uint8_t** to, uint8_t littleEndian, uint32_t v) {
+    assert(NULL != to);
+
+    if ( littleEndian )
+    {
+        (*to)[0] = v & 0x000000FF;
+        (*to)[1] = ( v & 0x0000FF00 ) >> 8;
+        (*to)[2] = ( v & 0x00FF0000 ) >> 16;
+        (*to)[3] = ( v & 0xFF000000 ) >> 24;
+    }
+    else
+    {
+        (*to)[3] = v & 0x000000FF;
+        (*to)[2] = ( v & 0x0000FF00 ) >> 8;
+        (*to)[1] = ( v & 0x00FF0000 ) >> 16;
+        (*to)[0] = ( v & 0xFF000000 ) >> 24;
+    }
+ *to += 4;
+}
+*/
+
+int32_t
+read_int32(const uint8_t** from, uint8_t littleEndian) {
+    assert(NULL != from);
+
+    return read_uint32(from, littleEndian);
+}
+
+/* unused up to now
+void
+write_int32(uint8_t** to, uint8_t littleEndian, int32_t v) {
+    assert(NULL != to);
+
+    if ( littleEndian )
+    {
+        (*to)[0] = v & 0x000000FF;
+        (*to)[1] = ( v & 0x0000FF00 ) >> 8;
+        (*to)[2] = ( v & 0x00FF0000 ) >> 16;
+        (*to)[3] = ( v & 0xFF000000 ) >> 24;
+    }
+    else
+    {
+        (*to)[3] = v & 0x000000FF;
+        (*to)[2] = ( v & 0x0000FF00 ) >> 8;
+        (*to)[1] = ( v & 0x00FF0000 ) >> 16;
+        (*to)[0] = ( v & 0xFF000000 ) >> 24;
+    }
+ *to += 4;
+}
+*/
+
+float
+read_float32(const uint8_t** from, uint8_t littleEndian) {
+
+    union {
+        float f;
+        uint32_t i;
+    } ret;
+
+    ret.i = read_uint32(from, littleEndian);
+
+    return ret.f;
+}
+
+/* unused up to now
+void
+write_float32(uint8_t** from, uint8_t littleEndian, float f) {
+    union {
+        float f;
+        uint32_t i;
+    } u;
+
+    u.f = f;
+    write_uint32(from, littleEndian, u.i);
+}
+*/
+
+double
+read_float64(const uint8_t** from, uint8_t littleEndian) {
+
+    union {
+        double d;
+        uint64_t i;
+    } ret;
+
+    assert(NULL != from);
+
+    if (littleEndian) {
+        ret.i = (uint64_t) ((*from)[0] & 0xff) |
+                (uint64_t) ((*from)[1] & 0xff) << 8 |
+                (uint64_t) ((*from)[2] & 0xff) << 16 |
+                (uint64_t) ((*from)[3] & 0xff) << 24 |
+                (uint64_t) ((*from)[4] & 0xff) << 32 |
+                (uint64_t) ((*from)[5] & 0xff) << 40 |
+                (uint64_t) ((*from)[6] & 0xff) << 48 |
+                (uint64_t) ((*from)[7] & 0xff) << 56;
+    } else {
+        /* big endian */
+        ret.i = (uint64_t) ((*from)[7] & 0xff) |
+                (uint64_t) ((*from)[6] & 0xff) << 8 |
+                (uint64_t) ((*from)[5] & 0xff) << 16 |
+                (uint64_t) ((*from)[4] & 0xff) << 24 |
+                (uint64_t) ((*from)[3] & 0xff) << 32 |
+                (uint64_t) ((*from)[2] & 0xff) << 40 |
+                (uint64_t) ((*from)[1] & 0xff) << 48 |
+                (uint64_t) ((*from)[0] & 0xff) << 56;
+    }
+
+    *from += 8;
+    return ret.d;
+}
+
+/* unused up to now
+void
+write_float64(uint8_t** to, uint8_t littleEndian, double v) {
+    union {
+        double d;
+        uint64_t i;
+    } u;
+
+    assert(NULL != to);
+
+    u.d = v;
+
+    if ( littleEndian )
+    {
+        (*to)[0] =   u.i & 0x00000000000000FFULL;
+        (*to)[1] = ( u.i & 0x000000000000FF00ULL ) >> 8;
+        (*to)[2] = ( u.i & 0x0000000000FF0000ULL ) >> 16;
+        (*to)[3] = ( u.i & 0x00000000FF000000ULL ) >> 24;
+        (*to)[4] = ( u.i & 0x000000FF00000000ULL ) >> 32;
+        (*to)[5] = ( u.i & 0x0000FF0000000000ULL ) >> 40;
+        (*to)[6] = ( u.i & 0x00FF000000000000ULL ) >> 48;
+        (*to)[7] = ( u.i & 0xFF00000000000000ULL ) >> 56;
+    }
+    else
+    {
+        (*to)[7] =   u.i & 0x00000000000000FFULL;
+        (*to)[6] = ( u.i & 0x000000000000FF00ULL ) >> 8;
+        (*to)[5] = ( u.i & 0x0000000000FF0000ULL ) >> 16;
+        (*to)[4] = ( u.i & 0x00000000FF000000ULL ) >> 24;
+        (*to)[3] = ( u.i & 0x000000FF00000000ULL ) >> 32;
+        (*to)[2] = ( u.i & 0x0000FF0000000000ULL ) >> 40;
+        (*to)[1] = ( u.i & 0x00FF000000000000ULL ) >> 48;
+        (*to)[0] = ( u.i & 0xFF00000000000000ULL ) >> 56;
+    }
+ *to += 8;
+}
+*/
+
+static uint32_t
+rt_raster_serialized_size(rt_raster raster) {
+	uint32_t size = sizeof (struct rt_raster_serialized_t);
+	uint16_t i = 0;
+
+	assert(NULL != raster);
+
+	RASTER_DEBUGF(3, "Serialized size with just header:%d - now adding size of %d bands",
+		size, raster->numBands);
+
+	for (i = 0; i < raster->numBands; ++i) {
+		rt_band band = raster->bands[i];
+		rt_pixtype pixtype = band->pixtype;
+		int pixbytes = rt_pixtype_size(pixtype);
+
+		if (pixbytes < 1) {
+			rterror("rt_raster_serialized_size: Corrupted band: unknown pixtype");
+			return 0;
+		}
+
+		/* Add space for band type, hasnodata flag and data padding */
+		size += pixbytes;
+
+		/* Add space for nodata value */
+		size += pixbytes;
+
+		if (band->offline) {
+			/* Add space for band number */
+			size += 1;
+
+			/* Add space for null-terminated path */
+			size += strlen(band->data.offline.path) + 1;
+		}
+		else {
+			/* Add space for raster band data */
+			size += pixbytes * raster->width * raster->height;
+		}
+
+		RASTER_DEBUGF(3, "Size before alignment is %d", size);
+
+		/* Align size to 8-bytes boundary (trailing padding) */
+		/* XXX jorgearevalo: bug here. If the size is actually 8-bytes aligned,
+		   this line will add 8 bytes trailing padding, and it's not necessary */
+		/*size += 8 - (size % 8);*/
+		if (size % 8)
+			size += 8 - (size % 8);
+
+		RASTER_DEBUGF(3, "Size after alignment is %d", size);
+	}
+
+	return size;
+}
+
+/**
+ * Return this raster in serialized form.
+ * Memory (band data included) is copied from rt_raster.
+ *
+ * Serialized form is documented in doc/RFC1-SerializedFormat.
+ */
+void*
+rt_raster_serialize(rt_raster raster) {
+	uint32_t size = 0;
+	uint8_t* ret = NULL;
+	uint8_t* ptr = NULL;
+	uint16_t i = 0;
+
+	assert(NULL != raster);
+
+	size = rt_raster_serialized_size(raster);
+	ret = (uint8_t*) rtalloc(size);
+	if (!ret) {
+		rterror("rt_raster_serialize: Out of memory allocating %d bytes for serializing a raster", size);
+		return NULL;
+	}
+	memset(ret, '-', size);
+	ptr = ret;
+
+	RASTER_DEBUGF(3, "sizeof(struct rt_raster_serialized_t):%u",
+		sizeof (struct rt_raster_serialized_t));
+	RASTER_DEBUGF(3, "sizeof(struct rt_raster_t):%u",
+		sizeof (struct rt_raster_t));
+	RASTER_DEBUGF(3, "serialized size:%lu", (long unsigned) size);
+
+	/* Set size */
+	/* NOTE: Value of rt_raster.size may be updated in
+	 * returned object, for instance, by rt_pg layer to
+	 * store value calculated by SET_VARSIZE.
+	 */
+	raster->size = size;
+
+	/* Set version */
+	raster->version = 0;
+
+	/* Copy header */
+	memcpy(ptr, raster, sizeof (struct rt_raster_serialized_t));
+
+	RASTER_DEBUG(3, "Start hex dump of raster being serialized using 0x2D to mark non-written bytes");
+
+#if POSTGIS_DEBUG_LEVEL > 2
+	uint8_t* dbg_ptr = ptr;
+	d_print_binary_hex("HEADER", dbg_ptr, size);
+#endif
+
+	ptr += sizeof (struct rt_raster_serialized_t);
+
+	/* Serialize bands now */
+	for (i = 0; i < raster->numBands; ++i) {
+		rt_band band = raster->bands[i];
+		assert(NULL != band);
+
+		rt_pixtype pixtype = band->pixtype;
+		int pixbytes = rt_pixtype_size(pixtype);
+		if (pixbytes < 1) {
+			rterror("rt_raster_serialize: Corrupted band: unknown pixtype");
+			rtdealloc(ret);
+			return NULL;
+		}
+
+		/* Add band type */
+		*ptr = band->pixtype;
+		if (band->offline) {
+#ifdef POSTGIS_RASTER_DISABLE_OFFLINE
+      rterror("rt_raster_serialize: offdb raster support disabled at compile-time");
+      return NULL;
+#endif
+			*ptr |= BANDTYPE_FLAG_OFFDB;
+		}
+		if (band->hasnodata) {
+			*ptr |= BANDTYPE_FLAG_HASNODATA;
+		}
+
+		if (band->isnodata) {
+			*ptr |= BANDTYPE_FLAG_ISNODATA;
+		}
+
+#if POSTGIS_DEBUG_LEVEL > 2
+		d_print_binary_hex("PIXTYPE", dbg_ptr, size);
+#endif
+
+		ptr += 1;
+
+		/* Add padding (if needed) */
+		if (pixbytes > 1) {
+			memset(ptr, '\0', pixbytes - 1);
+			ptr += pixbytes - 1;
+		}
+
+#if POSTGIS_DEBUG_LEVEL > 2
+		d_print_binary_hex("PADDING", dbg_ptr, size);
+#endif
+
+		/* Consistency checking (ptr is pixbytes-aligned) */
+		assert(!((ptr - ret) % pixbytes));
+
+		/* Add nodata value */
+		switch (pixtype) {
+			case PT_1BB:
+			case PT_2BUI:
+			case PT_4BUI:
+			case PT_8BUI: {
+				uint8_t v = band->nodataval;
+				*ptr = v;
+				ptr += 1;
+				break;
+			}
+			case PT_8BSI: {
+				int8_t v = band->nodataval;
+				*ptr = v;
+				ptr += 1;
+				break;
+			}
+			case PT_16BSI:
+			case PT_16BUI: {
+				uint16_t v = band->nodataval;
+				memcpy(ptr, &v, 2);
+				ptr += 2;
+				break;
+			}
+			case PT_32BSI:
+			case PT_32BUI: {
+				uint32_t v = band->nodataval;
+				memcpy(ptr, &v, 4);
+				ptr += 4;
+				break;
+			}
+			case PT_32BF: {
+				float v = band->nodataval;
+				memcpy(ptr, &v, 4);
+				ptr += 4;
+				break;
+			}
+			case PT_64BF: {
+				memcpy(ptr, &band->nodataval, 8);
+				ptr += 8;
+				break;
+			}
+			default:
+				rterror("rt_raster_serialize: Fatal error caused by unknown pixel type. Aborting.");
+				rtdealloc(ret);
+				return NULL;
+		}
+
+		/* Consistency checking (ptr is pixbytes-aligned) */
+		assert(!((ptr - ret) % pixbytes));
+
+#if POSTGIS_DEBUG_LEVEL > 2
+		d_print_binary_hex("nodata", dbg_ptr, size);
+#endif
+
+		if (band->offline) {
+			/* Write band number */
+			*ptr = band->data.offline.bandNum;
+			ptr += 1;
+
+			/* Write path */
+			strcpy((char*) ptr, band->data.offline.path);
+			ptr += strlen(band->data.offline.path) + 1;
+		}
+		else {
+			/* Write data */
+			uint32_t datasize = raster->width * raster->height * pixbytes;
+			memcpy(ptr, band->data.mem, datasize);
+			ptr += datasize;
+		}
+
+#if POSTGIS_DEBUG_LEVEL > 2
+		d_print_binary_hex("BAND", dbg_ptr, size);
+#endif
+
+		/* Pad up to 8-bytes boundary */
+		while ((uintptr_t) ptr % 8) {
+			*ptr = 0;
+			++ptr;
+
+			RASTER_DEBUGF(3, "PAD at %d", (uintptr_t) ptr % 8);
+		}
+
+		/* Consistency checking (ptr is pixbytes-aligned) */
+		assert(!((ptr - ret) % pixbytes));
+	} /* for-loop over bands */
+
+#if POSTGIS_DEBUG_LEVEL > 2
+		d_print_binary_hex("SERIALIZED RASTER", dbg_ptr, size);
+#endif
+	return ret;
+}
+
+/**
+ * Return a raster from a serialized form.
+ *
+ * Serialized form is documented in doc/RFC1-SerializedFormat.
+ *
+ * NOTE: the raster will contain pointer to the serialized
+ * form (including band data), which must be kept alive.
+ */
+rt_raster
+rt_raster_deserialize(void* serialized, int header_only) {
+	rt_raster rast = NULL;
+	const uint8_t *ptr = NULL;
+	const uint8_t *beg = NULL;
+	uint16_t i = 0;
+	uint16_t j = 0;
+	uint8_t littleEndian = isMachineLittleEndian();
+
+	assert(NULL != serialized);
+
+	RASTER_DEBUG(2, "rt_raster_deserialize: Entering...");
+
+	/* NOTE: Value of rt_raster.size may be different
+	 * than actual size of raster data being read.
+	 * See note on SET_VARSIZE in rt_raster_serialize function above.
+	 */
+
+	/* Allocate memory for deserialized raster header */ 
+	RASTER_DEBUG(3, "rt_raster_deserialize: Allocating memory for deserialized raster header");
+	rast = (rt_raster) rtalloc(sizeof (struct rt_raster_t));
+	if (!rast) {
+		rterror("rt_raster_deserialize: Out of memory allocating raster for deserialization");
+		return NULL;
+	}
+
+	/* Deserialize raster header */
+	RASTER_DEBUG(3, "rt_raster_deserialize: Deserialize raster header");
+	memcpy(rast, serialized, sizeof (struct rt_raster_serialized_t));
+
+	if (0 == rast->numBands || header_only) {
+		rast->bands = 0;
+		return rast;
+	}
+
+	beg = (const uint8_t*) serialized;
+
+	/* Allocate registry of raster bands */
+	RASTER_DEBUG(3, "rt_raster_deserialize: Allocating memory for bands");
+	rast->bands = rtalloc(rast->numBands * sizeof (rt_band));
+	if (rast->bands == NULL) {
+		rterror("rt_raster_deserialize: Out of memory allocating bands");
+		rtdealloc(rast);
+		return NULL;
+	}
+
+	RASTER_DEBUGF(3, "rt_raster_deserialize: %d bands", rast->numBands);
+
+	/* Move to the beginning of first band */
+	ptr = beg;
+	ptr += sizeof (struct rt_raster_serialized_t);
+
+	/* Deserialize bands now */
+	for (i = 0; i < rast->numBands; ++i) {
+		rt_band band = NULL;
+		uint8_t type = 0;
+		int pixbytes = 0;
+
+		band = rtalloc(sizeof(struct rt_band_t));
+		if (!band) {
+			rterror("rt_raster_deserialize: Out of memory allocating rt_band during deserialization");
+			for (j = 0; j < i; j++) rt_band_destroy(rast->bands[j]);
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+
+		rast->bands[i] = band;
+
+		type = *ptr;
+		ptr++;
+		band->pixtype = type & BANDTYPE_PIXTYPE_MASK;
+
+		RASTER_DEBUGF(3, "rt_raster_deserialize: band %d with pixel type %s", i, rt_pixtype_name(band->pixtype));
+
+		band->offline = BANDTYPE_IS_OFFDB(type) ? 1 : 0;
+		band->hasnodata = BANDTYPE_HAS_NODATA(type) ? 1 : 0;
+		band->isnodata = band->hasnodata ? (BANDTYPE_IS_NODATA(type) ? 1 : 0) : 0;
+		band->width = rast->width;
+		band->height = rast->height;
+		band->ownsdata = 0; /* we do NOT own this data!!! */
+		band->raster = rast;
+
+		/* Advance by data padding */
+		pixbytes = rt_pixtype_size(band->pixtype);
+		ptr += pixbytes - 1;
+
+		/* Read nodata value */
+		switch (band->pixtype) {
+			case PT_1BB: {
+				band->nodataval = ((int) read_uint8(&ptr)) & 0x01;
+				break;
+			}
+			case PT_2BUI: {
+				band->nodataval = ((int) read_uint8(&ptr)) & 0x03;
+				break;
+			}
+			case PT_4BUI: {
+				band->nodataval = ((int) read_uint8(&ptr)) & 0x0F;
+				break;
+			}
+			case PT_8BSI: {
+				band->nodataval = read_int8(&ptr);
+				break;
+			}
+			case PT_8BUI: {
+				band->nodataval = read_uint8(&ptr);
+				break;
+			}
+			case PT_16BSI: {
+				band->nodataval = read_int16(&ptr, littleEndian);
+				break;
+			}
+			case PT_16BUI: {
+				band->nodataval = read_uint16(&ptr, littleEndian);
+				break;
+			}
+			case PT_32BSI: {
+				band->nodataval = read_int32(&ptr, littleEndian);
+				break;
+			}
+			case PT_32BUI: {
+				band->nodataval = read_uint32(&ptr, littleEndian);
+				break;
+			}
+			case PT_32BF: {
+				band->nodataval = read_float32(&ptr, littleEndian);
+				break;
+			}
+			case PT_64BF: {
+				band->nodataval = read_float64(&ptr, littleEndian);
+				break;
+			}
+			default: {
+				rterror("rt_raster_deserialize: Unknown pixeltype %d", band->pixtype);
+				for (j = 0; j <= i; j++) rt_band_destroy(rast->bands[j]);
+				rt_raster_destroy(rast);
+				return NULL;
+			}
+		}
+
+		RASTER_DEBUGF(3, "rt_raster_deserialize: has nodata flag %d", band->hasnodata);
+		RASTER_DEBUGF(3, "rt_raster_deserialize: nodata value %g", band->nodataval);
+
+		/* Consistency checking (ptr is pixbytes-aligned) */
+		assert(!((ptr - beg) % pixbytes));
+
+		if (band->offline) {
+			int pathlen = 0;
+
+			/* Read band number */
+			band->data.offline.bandNum = *ptr;
+			ptr += 1;
+
+			/* Register path */
+			pathlen = strlen((char*) ptr);
+			band->data.offline.path = rtalloc(sizeof(char) * (pathlen + 1));
+			if (band->data.offline.path == NULL) {
+				rterror("rt_raster_deserialize: Could not allocate memory for offline band path");
+				for (j = 0; j <= i; j++) rt_band_destroy(rast->bands[j]);
+				rt_raster_destroy(rast);
+				return NULL;
+			}
+
+			memcpy(band->data.offline.path, ptr, pathlen);
+			band->data.offline.path[pathlen] = '\0';
+			ptr += pathlen + 1;
+
+			band->data.offline.mem = NULL;
+		}
+		else {
+			/* Register data */
+			const uint32_t datasize = rast->width * rast->height * pixbytes;
+			band->data.mem = (uint8_t*) ptr;
+			ptr += datasize;
+		}
+
+		/* Skip bytes of padding up to 8-bytes boundary */
+#if POSTGIS_DEBUG_LEVEL > 0
+		const uint8_t *padbeg = ptr;
+#endif
+		while (0 != ((ptr - beg) % 8)) {
+			++ptr;
+		}
+
+		RASTER_DEBUGF(3, "rt_raster_deserialize: skip %d bytes of 8-bytes boundary padding", ptr - padbeg);
+
+		/* Consistency checking (ptr is pixbytes-aligned) */
+		assert(!((ptr - beg) % pixbytes));
+	}
+
+	return rast;
+}
diff --git a/raster/rt_core/rt_serialize.h b/raster/rt_core/rt_serialize.h
new file mode 100644
index 0000000..cebd9e0
--- /dev/null
+++ b/raster/rt_core/rt_serialize.h
@@ -0,0 +1,166 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public 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 RT_SERIALIZE_H_INCLUDED
+#define RT_SERIALIZE_H_INCLUDED
+
+#include "librtcore.h"
+
+#define BANDTYPE_FLAGS_MASK 0xF0
+#define BANDTYPE_PIXTYPE_MASK 0x0F
+#define BANDTYPE_FLAG_OFFDB     (1<<7)
+#define BANDTYPE_FLAG_HASNODATA (1<<6)
+#define BANDTYPE_FLAG_ISNODATA  (1<<5)
+#define BANDTYPE_FLAG_RESERVED3 (1<<4)
+
+#define BANDTYPE_PIXTYPE(x) ((x)&BANDTYPE_PIXTYPE_MASK)
+#define BANDTYPE_IS_OFFDB(x) ((x)&BANDTYPE_FLAG_OFFDB)
+#define BANDTYPE_HAS_NODATA(x) ((x)&BANDTYPE_FLAG_HASNODATA)
+#define BANDTYPE_IS_NODATA(x) ((x)&BANDTYPE_FLAG_ISNODATA)
+
+#if POSTGIS_DEBUG_LEVEL > 2
+char*
+d_binary_to_hex(const uint8_t * const raw, uint32_t size, uint32_t *hexsize);
+
+void
+d_print_binary_hex(const char* msg, const uint8_t * const raw, uint32_t size);
+
+size_t
+d_binptr_to_pos(const uint8_t * const ptr, const uint8_t * const end, size_t size);
+
+#define CHECK_BINPTR_POSITION(ptr, end, size, pos) \
+    { if (pos != d_binptr_to_pos(ptr, end, size)) { \
+    fprintf(stderr, "Check of binary stream pointer position failed on line %d\n", __LINE__); \
+    fprintf(stderr, "\tactual = %lu, expected = %lu\n", (long unsigned)d_binptr_to_pos(ptr, end, size), (long unsigned)pos); \
+    } }
+
+#else
+
+#define CHECK_BINPTR_POSITION(ptr, end, size, pos) ((void)0);
+
+#endif /* if POSTGIS_DEBUG_LEVEL > 2 */
+
+#ifdef OPTIMIZE_SPACE
+
+/*
+ * Set given number of bits of the given byte,
+ * starting from given bitOffset (from the first)
+ * to the given value.
+ *
+ * Examples:
+ *   char ch;
+ *   ch=0; setBits(&ch, 1, 1, 0) -> ch==8
+ *   ch=0; setBits(&ch, 3, 2, 1) -> ch==96 (0x60)
+ *
+ * Note that number of bits set must be <= 8-bitOffset
+ *
+ */
+void
+setBits(char* ch, double val, int bits, int bitOffset);
+
+#endif /* ifdef OPTIMIZE_SPACE */
+
+void
+swap_char(uint8_t *a, uint8_t *b);
+
+void
+flip_endian_16(uint8_t *d);
+
+void
+flip_endian_32(uint8_t *d);
+
+void
+flip_endian_64(uint8_t *d);
+
+uint8_t
+isMachineLittleEndian(void);
+
+uint8_t
+read_uint8(const uint8_t** from);
+
+/* unused up to now
+void
+write_uint8(uint8_t** from, uint8_t v);
+*/
+
+int8_t
+read_int8(const uint8_t** from);
+
+/* unused up to now
+void
+write_int8(uint8_t** from, int8_t v);
+*/
+
+uint16_t
+read_uint16(const uint8_t** from, uint8_t littleEndian);
+
+void
+write_uint16(uint8_t** to, uint8_t littleEndian, uint16_t v);
+
+int16_t
+read_int16(const uint8_t** from, uint8_t littleEndian);
+
+/* unused up to now
+void
+write_int16(uint8_t** to, uint8_t littleEndian, int16_t v);
+*/
+
+uint32_t
+read_uint32(const uint8_t** from, uint8_t littleEndian);
+
+/* unused up to now
+void
+write_uint32(uint8_t** to, uint8_t littleEndian, uint32_t v);
+*/
+
+int32_t
+read_int32(const uint8_t** from, uint8_t littleEndian);
+
+/* unused up to now
+void
+write_int32(uint8_t** to, uint8_t littleEndian, int32_t v);
+*/
+
+float
+read_float32(const uint8_t** from, uint8_t littleEndian);
+
+/* unused up to now
+void
+write_float32(uint8_t** from, uint8_t littleEndian, float f);
+*/
+
+double
+read_float64(const uint8_t** from, uint8_t littleEndian);
+
+/* unused up to now
+void
+write_float64(uint8_t** to, uint8_t littleEndian, double v);
+*/
+
+#endif /* RT_SERIALIZE_H_INCLUDED */
diff --git a/raster/rt_core/rt_spatial_relationship.c b/raster/rt_core/rt_spatial_relationship.c
new file mode 100644
index 0000000..b9587c8
--- /dev/null
+++ b/raster/rt_core/rt_spatial_relationship.c
@@ -0,0 +1,1300 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+
+/*
+ * Return ES_ERROR if error occurred in function.
+ * Paramter aligned returns non-zero if two rasters are aligned
+ *
+ * @param rast1 : the first raster for alignment test
+ * @param rast2 : the second raster for alignment test
+ * @param *aligned : non-zero value if the two rasters are aligned
+ * @param *reason : reason why rasters are not aligned
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_raster_same_alignment(
+	rt_raster rast1,
+	rt_raster rast2,
+	int *aligned, char **reason
+) {
+	double xr;
+	double yr;
+	double xw;
+	double yw;
+	int err = 0;
+
+	assert(NULL != rast1);
+	assert(NULL != rast2);
+	assert(NULL != aligned);
+
+	err = 0;
+	/* same srid */
+	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
+		if (reason != NULL) *reason = "The rasters have different SRIDs";
+		err = 1;
+	}
+	/* scales must match */
+	else if (FLT_NEQ(fabs(rast1->scaleX), fabs(rast2->scaleX))) {
+		if (reason != NULL) *reason = "The rasters have different scales on the X axis";
+		err = 1;
+	}
+	else if (FLT_NEQ(fabs(rast1->scaleY), fabs(rast2->scaleY))) {
+		if (reason != NULL) *reason = "The rasters have different scales on the Y axis";
+		err = 1;
+	}
+	/* skews must match */
+	else if (FLT_NEQ(rast1->skewX, rast2->skewX)) {
+		if (reason != NULL) *reason = "The rasters have different skews on the X axis";
+		err = 1;
+	}
+	else if (FLT_NEQ(rast1->skewY, rast2->skewY)) {
+		if (reason != NULL) *reason = "The rasters have different skews on the Y axis";
+		err = 1;
+	}
+
+	if (err) {
+		*aligned = 0;
+		return ES_NONE;
+	}
+
+	/* raster coordinates in context of second raster of first raster's upper-left corner */
+	if (rt_raster_geopoint_to_cell(
+			rast2,
+			rast1->ipX, rast1->ipY,
+			&xr, &yr,
+			NULL
+	) != ES_NONE) {
+		rterror("rt_raster_same_alignment: Could not get raster coordinates of second raster from first raster's spatial coordinates");
+		*aligned = 0;
+		return ES_ERROR;
+	}
+
+	/* spatial coordinates of raster coordinates from above */
+	if (rt_raster_cell_to_geopoint(
+		rast2,
+		xr, yr,
+		&xw, &yw,
+		NULL
+	) != ES_NONE) {
+		rterror("rt_raster_same_alignment: Could not get spatial coordinates of second raster from raster coordinates");
+		*aligned = 0;
+		return ES_ERROR;
+	}
+
+	RASTER_DEBUGF(4, "rast1(ipX, ipxY) = (%f, %f)", rast1->ipX, rast1->ipY);
+	RASTER_DEBUGF(4, "rast2(xr, yr) = (%f, %f)", xr, yr);
+	RASTER_DEBUGF(4, "rast2(xw, yw) = (%f, %f)", xw, yw);
+
+	/* spatial coordinates are identical to that of first raster's upper-left corner */
+	if (FLT_EQ(xw, rast1->ipX) && FLT_EQ(yw, rast1->ipY)) {
+		if (reason != NULL) *reason = "The rasters are aligned";
+		*aligned = 1;
+		return ES_NONE;
+	}
+
+	/* no alignment */
+	if (reason != NULL) *reason = "The rasters (pixel corner coordinates) are not aligned";
+
+	*aligned = 0;
+	return ES_NONE;
+}
+
+/******************************************************************************
+* GEOS-based spatial relationship tests
+******************************************************************************/
+
+static
+rt_errorstate rt_raster_geos_spatial_relationship(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	rt_geos_spatial_test testtype,
+	int *testresult
+) {
+	LWMPOLY *surface1 = NULL;
+	LWMPOLY *surface2 = NULL;
+	GEOSGeometry *geom1 = NULL;
+	GEOSGeometry *geom2 = NULL;
+	int rtn = 0;
+	int flag = 0;
+
+	RASTER_DEBUG(3, "Starting");
+
+	assert(NULL != rast1);
+	assert(NULL != rast2);
+	assert(NULL != testresult);
+
+	if (nband1 < 0 && nband2 < 0) {
+		nband1 = -1;
+		nband2 = -1;
+	}
+	else {
+		assert(nband1 >= 0 && nband1 < rt_raster_get_num_bands(rast1));
+		assert(nband2 >= 0 && nband2 < rt_raster_get_num_bands(rast2));
+	}
+
+	/* initialize to zero, false result of spatial relationship test */
+	*testresult = 0;
+
+	/* same srid */
+	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
+		rterror("rt_raster_geos_spatial_relationship: The two rasters provided have different SRIDs");
+		return ES_ERROR;
+	}
+
+	initGEOS(rtinfo, lwgeom_geos_error);
+
+	/* get LWMPOLY of each band */
+	if (rt_raster_surface(rast1, nband1, &surface1) != ES_NONE) {
+		rterror("rt_raster_geos_spatial_relationship: Could not get surface of the specified band from the first raster");
+		return ES_ERROR;
+	}
+	if (rt_raster_surface(rast2, nband2, &surface2) != ES_NONE) {
+		rterror("rt_raster_geos_spatial_relationship: Could not get surface of the specified band from the second raster");
+		lwmpoly_free(surface1);
+		return ES_ERROR;
+	}
+
+	/* either surface is NULL, spatial relationship test is false */
+	if (surface1 == NULL || surface2 == NULL) {
+		if (surface1 != NULL) lwmpoly_free(surface1);
+		if (surface2 != NULL) lwmpoly_free(surface2);
+		return ES_NONE;
+	}
+
+	/* convert LWMPOLY to GEOSGeometry */
+	geom1 = LWGEOM2GEOS(lwmpoly_as_lwgeom(surface1), 0);
+	lwmpoly_free(surface1);
+	if (geom1 == NULL) {
+		rterror("rt_raster_geos_spatial_relationship: Could not convert surface of the specified band from the first raster to a GEOSGeometry");
+		lwmpoly_free(surface2);
+		return ES_ERROR;
+	}
+
+	geom2 = LWGEOM2GEOS(lwmpoly_as_lwgeom(surface2), 0);
+	lwmpoly_free(surface2);
+	if (geom2 == NULL) {
+		rterror("rt_raster_geos_spatial_relationship: Could not convert surface of the specified band from the second raster to a GEOSGeometry");
+		return ES_ERROR;
+	}
+
+	flag = 0;
+	switch (testtype) {
+		case GSR_OVERLAPS:
+			rtn = GEOSOverlaps(geom1, geom2);
+			break;
+		case GSR_TOUCHES:
+			rtn = GEOSTouches(geom1, geom2);
+			break;
+		case GSR_CONTAINS:
+			rtn = GEOSContains(geom1, geom2);
+			break;
+		case GSR_CONTAINSPROPERLY:
+			rtn = GEOSRelatePattern(geom1, geom2, "T**FF*FF*");
+			break;
+		case GSR_COVERS:
+			rtn = GEOSRelatePattern(geom1, geom2, "******FF*");
+			break;
+		case GSR_COVEREDBY:
+			rtn = GEOSRelatePattern(geom1, geom2, "**F**F***");
+			break;
+		default:
+			rterror("rt_raster_geos_spatial_relationship: Unknown or unsupported GEOS spatial relationship test");
+			flag = -1;
+			break;
+	}
+	GEOSGeom_destroy(geom1);
+	GEOSGeom_destroy(geom2);
+
+	/* something happened in the spatial relationship test */
+	if (rtn == 2) {
+		rterror("rt_raster_geos_spatial_relationship: Could not run the appropriate GEOS spatial relationship test");
+		flag = ES_ERROR;
+	}
+	/* spatial relationship test ran fine */
+	else if (flag >= 0) {
+		if (rtn != 0)
+			*testresult = 1;
+		flag = ES_NONE;
+	}
+	/* flag < 0 for when testtype is unknown */
+	else
+		flag = ES_ERROR;
+
+	return flag;
+}
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter overlaps returns non-zero if two rasters overlap
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param overlaps : non-zero value if the two rasters' bands overlaps
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_overlaps(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *overlaps
+) {
+	RASTER_DEBUG(3, "Starting");
+
+	return rt_raster_geos_spatial_relationship(
+		rast1, nband1,
+		rast2, nband2,
+		GSR_OVERLAPS,
+		overlaps
+	);
+}
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter touches returns non-zero if two rasters touch
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param touches : non-zero value if the two rasters' bands touch
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_touches(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *touches
+) {
+	RASTER_DEBUG(3, "Starting");
+
+	return rt_raster_geos_spatial_relationship(
+		rast1, nband1,
+		rast2, nband2,
+		GSR_TOUCHES,
+		touches
+	);
+}
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter contains returns non-zero if rast1 contains rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param contains : non-zero value if rast1 contains rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_contains(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *contains
+) {
+	RASTER_DEBUG(3, "Starting");
+
+	return rt_raster_geos_spatial_relationship(
+		rast1, nband1,
+		rast2, nband2,
+		GSR_CONTAINS,
+		contains
+	);
+}
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter contains returns non-zero if rast1 contains properly rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param contains : non-zero value if rast1 contains properly rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_contains_properly(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *contains
+) {
+	RASTER_DEBUG(3, "Starting");
+
+	return rt_raster_geos_spatial_relationship(
+		rast1, nband1,
+		rast2, nband2,
+		GSR_CONTAINSPROPERLY,
+		contains
+	);
+}
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter covers returns non-zero if rast1 covers rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param covers : non-zero value if rast1 covers rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_covers(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *covers
+) {
+	RASTER_DEBUG(3, "Starting");
+
+	return rt_raster_geos_spatial_relationship(
+		rast1, nband1,
+		rast2, nband2,
+		GSR_COVERS,
+		covers
+	);
+}
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter coveredby returns non-zero if rast1 is covered by rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param coveredby : non-zero value if rast1 is covered by rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_coveredby(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *coveredby
+) {
+	RASTER_DEBUG(3, "Starting");
+
+	return rt_raster_geos_spatial_relationship(
+		rast1, nband1,
+		rast2, nband2,
+		GSR_COVEREDBY,
+		coveredby
+	);
+}
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter dwithin returns non-zero if rast1 is within the specified
+ *   distance of rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param dwithin : non-zero value if rast1 is within the specified distance
+ *   of rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_within_distance(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	double distance,
+	int *dwithin
+) {
+	LWMPOLY *surface = NULL;
+	LWGEOM *surface1 = NULL;
+	LWGEOM *surface2 = NULL;
+	double mindist = 0;
+
+	RASTER_DEBUG(3, "Starting");
+
+	assert(NULL != rast1);
+	assert(NULL != rast2);
+	assert(NULL != dwithin);
+
+	if (nband1 < 0 && nband2 < 0) {
+		nband1 = -1;
+		nband2 = -1;
+	}
+	else {
+		assert(nband1 >= 0 && nband1 < rt_raster_get_num_bands(rast1));
+		assert(nband2 >= 0 && nband2 < rt_raster_get_num_bands(rast2));
+	}
+
+	/* initialize to zero, false result */
+	*dwithin = 0;
+
+	/* same srid */
+	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
+		rterror("rt_raster_distance_within: The two rasters provided have different SRIDs");
+		return ES_ERROR;
+	}
+
+	/* distance cannot be less than zero */
+	if (distance < 0) {
+		rterror("rt_raster_distance_within: Distance cannot be less than zero");
+		return ES_ERROR;
+	}
+
+	/* get LWMPOLY of each band */
+	if (rt_raster_surface(rast1, nband1, &surface) != ES_NONE) {
+		rterror("rt_raster_distance_within: Could not get surface of the specified band from the first raster");
+		return ES_ERROR;
+	}
+	surface1 = lwmpoly_as_lwgeom(surface);
+
+	if (rt_raster_surface(rast2, nband2, &surface) != ES_NONE) {
+		rterror("rt_raster_distance_within: Could not get surface of the specified band from the second raster");
+		lwgeom_free(surface1);
+		return ES_ERROR;
+	}
+	surface2 = lwmpoly_as_lwgeom(surface);
+
+	/* either surface is NULL, test is false */
+	if (surface1 == NULL || surface2 == NULL) {
+		if (surface1 != NULL) lwgeom_free(surface1);
+		if (surface2 != NULL) lwgeom_free(surface2);
+		return ES_NONE;
+	}
+
+	/* get the min distance between the two surfaces */
+	mindist = lwgeom_mindistance2d_tolerance(surface1, surface2, distance);
+
+	lwgeom_free(surface1);
+	lwgeom_free(surface2);
+
+	/* if distance >= mindist, true */
+	if (FLT_EQ(mindist, distance) || distance > mindist)
+		*dwithin = 1;
+
+	RASTER_DEBUGF(3, "(mindist, distance) = (%f, %f, %d)", mindist, distance, *dwithin);
+
+	return ES_NONE;
+}
+
+/**
+ * Return ES_ERROR if error occurred in function.
+ * Parameter dfwithin returns non-zero if rast1 is fully within the specified
+ *   distance of rast2
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param dfwithin : non-zero value if rast1 is fully within the specified
+ *   distance of rast2
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate rt_raster_fully_within_distance(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	double distance,
+	int *dfwithin
+) {
+	LWMPOLY *surface = NULL;
+	LWGEOM *surface1 = NULL;
+	LWGEOM *surface2 = NULL;
+	double maxdist = 0;
+
+	RASTER_DEBUG(3, "Starting");
+
+	assert(NULL != rast1);
+	assert(NULL != rast2);
+	assert(NULL != dfwithin);
+
+	if (nband1 < 0 && nband2 < 0) {
+		nband1 = -1;
+		nband2 = -1;
+	}
+	else {
+		assert(nband1 >= 0 && nband1 < rt_raster_get_num_bands(rast1));
+		assert(nband2 >= 0 && nband2 < rt_raster_get_num_bands(rast2));
+	}
+
+	/* initialize to zero, false result */
+	*dfwithin = 0;
+
+	/* same srid */
+	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
+		rterror("rt_raster_fully_within_distance: The two rasters provided have different SRIDs");
+		return ES_ERROR;
+	}
+
+	/* distance cannot be less than zero */
+	if (distance < 0) {
+		rterror("rt_raster_fully_within_distance: Distance cannot be less than zero");
+		return ES_ERROR;
+	}
+
+	/* get LWMPOLY of each band */
+	if (rt_raster_surface(rast1, nband1, &surface) != ES_NONE) {
+		rterror("rt_raster_fully_within_distance: Could not get surface of the specified band from the first raster");
+		return ES_ERROR;
+	}
+	surface1 = lwmpoly_as_lwgeom(surface);
+
+	if (rt_raster_surface(rast2, nband2, &surface) != ES_NONE) {
+		rterror("rt_raster_fully_within_distance: Could not get surface of the specified band from the second raster");
+		lwgeom_free(surface1);
+		return ES_ERROR;
+	}
+	surface2 = lwmpoly_as_lwgeom(surface);
+
+	/* either surface is NULL, test is false */
+	if (surface1 == NULL || surface2 == NULL) {
+		if (surface1 != NULL) lwgeom_free(surface1);
+		if (surface2 != NULL) lwgeom_free(surface2);
+		return ES_NONE;
+	}
+
+	/* get the maximum distance between the two surfaces */
+	maxdist = lwgeom_maxdistance2d_tolerance(surface1, surface2, distance);
+
+	lwgeom_free(surface1);
+	lwgeom_free(surface2);
+
+	/* if distance >= maxdist, true */
+	if (FLT_EQ(maxdist, distance) || distance > maxdist)
+		*dfwithin = 1;
+
+	RASTER_DEBUGF(3, "(maxdist, distance, dfwithin) = (%f, %f, %d)", maxdist, distance, *dfwithin);
+
+	return ES_NONE;
+}
+
+/******************************************************************************
+* rt_raster_intersects()
+******************************************************************************/
+
+static
+int rt_raster_intersects_algorithm(
+	rt_raster rast1, rt_raster rast2,
+	rt_band band1, rt_band band2,
+	int hasnodata1, int hasnodata2,
+	double nodata1, double nodata2
+) {
+	int i;
+	int byHeight = 1;
+	uint32_t dimValue;
+
+	uint32_t row;
+	uint32_t rowoffset;
+	uint32_t col;
+	uint32_t coloffset;
+
+	enum line_points {X1, Y1, X2, Y2};
+	enum point {pX, pY};
+	double line1[4] = {0.};
+	double line2[4] = {0.};
+	double P[2] = {0.};
+	double Qw[2] = {0.};
+	double Qr[2] = {0.};
+	double gt1[6] = {0.};
+	double gt2[6] = {0.};
+	double igt1[6] = {0};
+	double igt2[6] = {0};
+	double d;
+	double val1;
+	int noval1;
+	int isnodata1;
+	double val2;
+	int noval2;
+	int isnodata2;
+	uint32_t adjacent[8] = {0};
+
+	double xscale;
+	double yscale;
+
+	uint16_t width1;
+	uint16_t height1;
+	uint16_t width2;
+	uint16_t height2;
+
+	width1 = rt_raster_get_width(rast1);
+	height1 = rt_raster_get_height(rast1);
+	width2 = rt_raster_get_width(rast2);
+	height2 = rt_raster_get_height(rast2);
+
+	/* sampling scale */
+	xscale = fmin(rt_raster_get_x_scale(rast1), rt_raster_get_x_scale(rast2)) / 10.;
+	yscale = fmin(rt_raster_get_y_scale(rast1), rt_raster_get_y_scale(rast2)) / 10.;
+
+	/* see if skew made rast2's rows are parallel to rast1's cols */
+	rt_raster_cell_to_geopoint(
+		rast1,
+		0, 0,
+		&(line1[X1]), &(line1[Y1]),
+		gt1
+	);
+
+	rt_raster_cell_to_geopoint(
+		rast1,
+		0, height1,
+		&(line1[X2]), &(line1[Y2]),
+		gt1
+	);
+
+	rt_raster_cell_to_geopoint(
+		rast2,
+		0, 0,
+		&(line2[X1]), &(line2[Y1]),
+		gt2
+	);
+
+	rt_raster_cell_to_geopoint(
+		rast2,
+		width2, 0,
+		&(line2[X2]), &(line2[Y2]),
+		gt2
+	);
+
+	/* parallel vertically */
+	if (FLT_EQ(line1[X2] - line1[X1], 0.) && FLT_EQ(line2[X2] - line2[X1], 0.))
+		byHeight = 0;
+	/* parallel */
+	else if (FLT_EQ(((line1[Y2] - line1[Y1]) / (line1[X2] - line1[X1])), ((line2[Y2] - line2[Y1]) / (line2[X2] - line2[X1]))))
+		byHeight = 0;
+
+	if (byHeight)
+		dimValue = height2;
+	else
+		dimValue = width2;
+	RASTER_DEBUGF(4, "byHeight: %d, dimValue: %d", byHeight, dimValue);
+
+	/* 3 x 3 search */
+	for (coloffset = 0; coloffset < 3; coloffset++) {
+		for (rowoffset = 0; rowoffset < 3; rowoffset++) {
+			/* smaller raster */
+			for (col = coloffset; col <= width1; col += 3) {
+
+				rt_raster_cell_to_geopoint(
+					rast1,
+					col, 0,
+					&(line1[X1]), &(line1[Y1]),
+					gt1
+				);
+
+				rt_raster_cell_to_geopoint(
+					rast1,
+					col, height1,
+					&(line1[X2]), &(line1[Y2]),
+					gt1
+				);
+
+				/* larger raster */
+				for (row = rowoffset; row <= dimValue; row += 3) {
+
+					if (byHeight) {
+						rt_raster_cell_to_geopoint(
+							rast2,
+							0, row,
+							&(line2[X1]), &(line2[Y1]),
+							gt2
+						);
+
+						rt_raster_cell_to_geopoint(
+							rast2,
+							width2, row,
+							&(line2[X2]), &(line2[Y2]),
+							gt2
+						);
+					}
+					else {
+						rt_raster_cell_to_geopoint(
+							rast2,
+							row, 0,
+							&(line2[X1]), &(line2[Y1]),
+							gt2
+						);
+
+						rt_raster_cell_to_geopoint(
+							rast2,
+							row, height2,
+							&(line2[X2]), &(line2[Y2]),
+							gt2
+						);
+					}
+
+					RASTER_DEBUGF(4, "(col, row) = (%d, %d)", col, row);
+					RASTER_DEBUGF(4, "line1(x1, y1, x2, y2) = (%f, %f, %f, %f)",
+						line1[X1], line1[Y1], line1[X2], line1[Y2]);
+					RASTER_DEBUGF(4, "line2(x1, y1, x2, y2) = (%f, %f, %f, %f)",
+						line2[X1], line2[Y1], line2[X2], line2[Y2]);
+
+					/* intersection */
+					/* http://en.wikipedia.org/wiki/Line-line_intersection */
+					d = ((line1[X1] - line1[X2]) * (line2[Y1] - line2[Y2])) - ((line1[Y1] - line1[Y2]) * (line2[X1] - line2[X2]));
+					/* no intersection */
+					if (FLT_EQ(d, 0.)) {
+						continue;
+					}
+
+					P[pX] = (((line1[X1] * line1[Y2]) - (line1[Y1] * line1[X2])) * (line2[X1] - line2[X2])) -
+						((line1[X1] - line1[X2]) * ((line2[X1] * line2[Y2]) - (line2[Y1] * line2[X2])));
+					P[pX] = P[pX] / d;
+
+					P[pY] = (((line1[X1] * line1[Y2]) - (line1[Y1] * line1[X2])) * (line2[Y1] - line2[Y2])) -
+						((line1[Y1] - line1[Y2]) * ((line2[X1] * line2[Y2]) - (line2[Y1] * line2[X2])));
+					P[pY] = P[pY] / d;
+
+					RASTER_DEBUGF(4, "P(x, y) = (%f, %f)", P[pX], P[pY]);
+
+					/* intersection within bounds */
+					if ((
+							(FLT_EQ(P[pX], line1[X1]) || FLT_EQ(P[pX], line1[X2])) ||
+								(P[pX] > fmin(line1[X1], line1[X2]) && (P[pX] < fmax(line1[X1], line1[X2])))
+						) && (
+							(FLT_EQ(P[pY], line1[Y1]) || FLT_EQ(P[pY], line1[Y2])) ||
+								(P[pY] > fmin(line1[Y1], line1[Y2]) && (P[pY] < fmax(line1[Y1], line1[Y2])))
+						) && (
+							(FLT_EQ(P[pX], line2[X1]) || FLT_EQ(P[pX], line2[X2])) ||
+								(P[pX] > fmin(line2[X1], line2[X2]) && (P[pX] < fmax(line2[X1], line2[X2])))
+						) && (
+							(FLT_EQ(P[pY], line2[Y1]) || FLT_EQ(P[pY], line2[Y2])) ||
+								(P[pY] > fmin(line2[Y1], line2[Y2]) && (P[pY] < fmax(line2[Y1], line2[Y2])))
+					)) {
+						RASTER_DEBUG(4, "within bounds");
+
+						for (i = 0; i < 8; i++) adjacent[i] = 0;
+
+						/* test points around intersection */
+						for (i = 0; i < 8; i++) {
+							switch (i) {
+								case 7:
+									Qw[pX] = P[pX] - xscale;
+									Qw[pY] = P[pY] + yscale;
+									break;
+								/* 270 degrees = 09:00 */
+								case 6:
+									Qw[pX] = P[pX] - xscale;
+									Qw[pY] = P[pY];
+									break;
+								case 5:
+									Qw[pX] = P[pX] - xscale;
+									Qw[pY] = P[pY] - yscale;
+									break;
+								/* 180 degrees = 06:00 */
+								case 4:
+									Qw[pX] = P[pX];
+									Qw[pY] = P[pY] - yscale;
+									break;
+								case 3:
+									Qw[pX] = P[pX] + xscale;
+									Qw[pY] = P[pY] - yscale;
+									break;
+								/* 90 degrees = 03:00 */
+								case 2:
+									Qw[pX] = P[pX] + xscale;
+									Qw[pY] = P[pY];
+									break;
+								/* 45 degrees */
+								case 1:
+									Qw[pX] = P[pX] + xscale;
+									Qw[pY] = P[pY] + yscale;
+									break;
+								/* 0 degrees = 00:00 */
+								case 0:
+									Qw[pX] = P[pX];
+									Qw[pY] = P[pY] + yscale;
+									break;
+							}
+
+							/* unable to convert point to cell */
+							noval1 = 0;
+							if (rt_raster_geopoint_to_cell(
+								rast1,
+								Qw[pX], Qw[pY],
+								&(Qr[pX]), &(Qr[pY]),
+								igt1
+							) != ES_NONE) {
+								noval1 = 1;
+							}
+							/* cell is outside bounds of grid */
+							else if (
+								(Qr[pX] < 0 || Qr[pX] > width1 || FLT_EQ(Qr[pX], width1)) ||
+								(Qr[pY] < 0 || Qr[pY] > height1 || FLT_EQ(Qr[pY], height1))
+							) {
+								noval1 = 1;
+							}
+							else if (hasnodata1 == FALSE)
+								val1 = 1;
+							/* unable to get value at cell */
+							else if (rt_band_get_pixel(band1, Qr[pX], Qr[pY], &val1, &isnodata1) != ES_NONE)
+								noval1 = 1;
+
+							/* unable to convert point to cell */
+							noval2 = 0;
+							if (rt_raster_geopoint_to_cell(
+								rast2,
+								Qw[pX], Qw[pY],
+								&(Qr[pX]), &(Qr[pY]),
+								igt2
+							) != ES_NONE) {
+								noval2 = 1;
+							}
+							/* cell is outside bounds of grid */
+							else if (
+								(Qr[pX] < 0 || Qr[pX] > width2 || FLT_EQ(Qr[pX], width2)) ||
+								(Qr[pY] < 0 || Qr[pY] > height2 || FLT_EQ(Qr[pY], height2))
+							) {
+								noval2 = 1;
+							}
+							else if (hasnodata2 == FALSE)
+								val2 = 1;
+							/* unable to get value at cell */
+							else if (rt_band_get_pixel(band2, Qr[pX], Qr[pY], &val2, &isnodata2) != ES_NONE)
+								noval2 = 1;
+
+							if (!noval1) {
+								RASTER_DEBUGF(4, "val1 = %f", val1);
+							}
+							if (!noval2) {
+								RASTER_DEBUGF(4, "val2 = %f", val2);
+							}
+
+							/* pixels touch */
+							if (!noval1 && (
+								(hasnodata1 == FALSE) || !isnodata1
+							)) {
+								adjacent[i]++;
+							}
+							if (!noval2 && (
+								(hasnodata2 == FALSE) || !isnodata2
+							)) {
+								adjacent[i] += 3;
+							}
+
+							/* two pixel values not present */
+							if (noval1 || noval2) {
+								RASTER_DEBUGF(4, "noval1 = %d, noval2 = %d", noval1, noval2);
+								continue;
+							}
+
+							/* pixels valid, so intersect */
+							if (
+								((hasnodata1 == FALSE) || !isnodata1) &&
+								((hasnodata2 == FALSE) || !isnodata2)
+							) {
+								RASTER_DEBUG(3, "The two rasters do intersect");
+
+								return 1;
+							}
+						}
+
+						/* pixels touch */
+						for (i = 0; i < 4; i++) {
+							RASTER_DEBUGF(4, "adjacent[%d] = %d, adjacent[%d] = %d"
+								, i, adjacent[i], i + 4, adjacent[i + 4]);
+							if (adjacent[i] == 0) continue;
+
+							if (adjacent[i] + adjacent[i + 4] == 4) {
+								RASTER_DEBUG(3, "The two rasters touch");
+
+								return 1;
+							}
+						}
+					}
+					else {
+						RASTER_DEBUG(4, "outside of bounds");
+					}
+				}
+			}
+		}
+	}
+
+	return 0;
+}
+
+/**
+ * Return zero if error occurred in function.
+ * Parameter intersects returns non-zero if two rasters intersect
+ *
+ * @param rast1 : the first raster whose band will be tested
+ * @param nband1 : the 0-based band of raster rast1 to use
+ *   if value is less than zero, bands are ignored.
+ *   if nband1 gte zero, nband2 must be gte zero
+ * @param rast2 : the second raster whose band will be tested
+ * @param nband2 : the 0-based band of raster rast2 to use
+ *   if value is less than zero, bands are ignored
+ *   if nband2 gte zero, nband1 must be gte zero
+ * @param intersects : non-zero value if the two rasters' bands intersects
+ *
+ * @return ES_NONE if success, ES_ERROR if error
+ */
+rt_errorstate
+rt_raster_intersects(
+	rt_raster rast1, int nband1,
+	rt_raster rast2, int nband2,
+	int *intersects
+) {
+	int i;
+	int j;
+	int within = 0;
+
+	LWGEOM *hull[2] = {NULL};
+	GEOSGeometry *ghull[2] = {NULL};
+
+	uint16_t width1;
+	uint16_t height1;
+	uint16_t width2;
+	uint16_t height2;
+	double area1;
+	double area2;
+	double pixarea1;
+	double pixarea2;
+	rt_raster rastS = NULL;
+	rt_raster rastL = NULL;
+	uint16_t *widthS = NULL;
+	uint16_t *heightS = NULL;
+	uint16_t *widthL = NULL;
+	uint16_t *heightL = NULL;
+	int nbandS;
+	int nbandL;
+	rt_band bandS = NULL;
+	rt_band bandL = NULL;
+	int hasnodataS = FALSE;
+	int hasnodataL = FALSE;
+	double nodataS = 0;
+	double nodataL = 0;
+	int isnodataS = 0;
+	int isnodataL = 0;
+	double gtS[6] = {0};
+	double igtL[6] = {0};
+
+	uint32_t row;
+	uint32_t rowoffset;
+	uint32_t col;
+	uint32_t coloffset;
+
+	enum line_points {X1, Y1, X2, Y2};
+	enum point {pX, pY};
+	double lineS[4];
+	double Qr[2];
+	double valS;
+	double valL;
+
+	RASTER_DEBUG(3, "Starting");
+
+	assert(NULL != rast1);
+	assert(NULL != rast2);
+	assert(NULL != intersects);
+
+	if (nband1 < 0 && nband2 < 0) {
+		nband1 = -1;
+		nband2 = -1;
+	}
+	else {
+		assert(nband1 >= 0 && nband1 < rt_raster_get_num_bands(rast1));
+		assert(nband2 >= 0 && nband2 < rt_raster_get_num_bands(rast2));
+	}
+
+	/* same srid */
+	if (rt_raster_get_srid(rast1) != rt_raster_get_srid(rast2)) {
+		rterror("rt_raster_intersects: The two rasters provided have different SRIDs");
+		*intersects = 0;
+		return ES_ERROR;
+	}
+
+	/* raster extents need to intersect */
+	do {
+		int rtn;
+
+		initGEOS(rtinfo, lwgeom_geos_error);
+
+		rtn = 1;
+		for (i = 0; i < 2; i++) {
+			if ((rt_raster_get_convex_hull(i < 1 ? rast1 : rast2, &(hull[i])) != ES_NONE) || NULL == hull[i]) {
+				for (j = 0; j < i; j++) {
+					GEOSGeom_destroy(ghull[j]);
+					lwgeom_free(hull[j]);
+				}
+				rtn = 0;
+				break;
+			}
+			ghull[i] = (GEOSGeometry *) LWGEOM2GEOS(hull[i], 0);
+			if (NULL == ghull[i]) {
+				for (j = 0; j < i; j++) {
+					GEOSGeom_destroy(ghull[j]);
+					lwgeom_free(hull[j]);
+				}
+				lwgeom_free(hull[i]);
+				rtn = 0;
+				break;
+			}
+		}
+		if (!rtn) break;
+
+		/* test to see if raster within the other */
+		within = 0;
+		if (GEOSWithin(ghull[0], ghull[1]) == 1)
+			within = -1;
+		else if (GEOSWithin(ghull[1], ghull[0]) == 1)
+			within = 1;
+
+		if (within != 0)
+			rtn = 1;
+		else
+			rtn = GEOSIntersects(ghull[0], ghull[1]);
+
+		for (i = 0; i < 2; i++) {
+			GEOSGeom_destroy(ghull[i]);
+			lwgeom_free(hull[i]);
+		}
+
+		if (rtn != 2) {
+			RASTER_DEBUGF(4, "convex hulls of rasters do %sintersect", rtn != 1 ? "NOT " : "");
+			if (rtn != 1) {
+				*intersects = 0;
+				return ES_NONE;
+			}
+			/* band isn't specified */
+			else if (nband1 < 0) {
+				*intersects = 1;
+				return ES_NONE;
+			}
+		}
+		else {
+			RASTER_DEBUG(4, "GEOSIntersects() returned a 2!!!!");
+		}
+	}
+	while (0);
+
+	/* smaller raster by area or width */
+	width1 = rt_raster_get_width(rast1);
+	height1 = rt_raster_get_height(rast1);
+	width2 = rt_raster_get_width(rast2);
+	height2 = rt_raster_get_height(rast2);
+	pixarea1 = fabs(rt_raster_get_x_scale(rast1) * rt_raster_get_y_scale(rast1));
+	pixarea2 = fabs(rt_raster_get_x_scale(rast2) * rt_raster_get_y_scale(rast2));
+	area1 = fabs(width1 * height1 * pixarea1);
+	area2 = fabs(width2 * height2 * pixarea2);
+	RASTER_DEBUGF(4, "pixarea1, pixarea2, area1, area2 = %f, %f, %f, %f",
+		pixarea1, pixarea2, area1, area2);
+	if (
+		(within <= 0) ||
+		(area1 < area2) ||
+		FLT_EQ(area1, area2) ||
+		(area1 < pixarea2) || /* area of rast1 smaller than pixel area of rast2 */
+		FLT_EQ(area1, pixarea2)
+	) {
+		rastS = rast1;
+		nbandS = nband1;
+		widthS = &width1;
+		heightS = &height1;
+
+		rastL = rast2;
+		nbandL = nband2;
+		widthL = &width2;
+		heightL = &height2;
+	}
+	else {
+		rastS = rast2;
+		nbandS = nband2;
+		widthS = &width2;
+		heightS = &height2;
+
+		rastL = rast1;
+		nbandL = nband1;
+		widthL = &width1;
+		heightL = &height1;
+	}
+
+	/* no band to use, set band to zero */
+	if (nband1 < 0) {
+		nbandS = 0;
+		nbandL = 0;
+	}
+
+	RASTER_DEBUGF(4, "rast1 @ %p", rast1);
+	RASTER_DEBUGF(4, "rast2 @ %p", rast2);
+	RASTER_DEBUGF(4, "rastS @ %p", rastS);
+	RASTER_DEBUGF(4, "rastL @ %p", rastL);
+
+	/* load band of smaller raster */
+	bandS = rt_raster_get_band(rastS, nbandS);
+	if (NULL == bandS) {
+		rterror("rt_raster_intersects: Could not get band %d of the first raster", nbandS);
+		*intersects = 0;
+		return ES_ERROR;
+	}
+
+	hasnodataS = rt_band_get_hasnodata_flag(bandS);
+	if (hasnodataS != FALSE)
+		rt_band_get_nodata(bandS, &nodataS);
+
+	/* load band of larger raster */
+	bandL = rt_raster_get_band(rastL, nbandL);
+	if (NULL == bandL) {
+		rterror("rt_raster_intersects: Could not get band %d of the first raster", nbandL);
+		*intersects = 0;
+		return ES_ERROR;
+	}
+
+	hasnodataL = rt_band_get_hasnodata_flag(bandL);
+	if (hasnodataL != FALSE)
+		rt_band_get_nodata(bandL, &nodataL);
+
+	/* no band to use, ignore nodata */
+	if (nband1 < 0) {
+		hasnodataS = FALSE;
+		hasnodataL = FALSE;
+	}
+
+	/* hasnodata(S|L) = TRUE and one of the two bands is isnodata */
+	if (
+		(hasnodataS && rt_band_get_isnodata_flag(bandS)) ||
+		(hasnodataL && rt_band_get_isnodata_flag(bandL))
+	) {
+		RASTER_DEBUG(3, "One of the two raster bands is NODATA. The two rasters do not intersect");
+		*intersects = 0;
+		return ES_NONE;
+	}
+
+	/* special case where a raster can fit inside another raster's pixel */
+	if (within != 0 && ((pixarea1 > area2) || (pixarea2 > area1))) {
+		RASTER_DEBUG(4, "Using special case of raster fitting into another raster's pixel");
+		/* 3 x 3 search */
+		for (coloffset = 0; coloffset < 3; coloffset++) {
+			for (rowoffset = 0; rowoffset < 3; rowoffset++) {
+				for (col = coloffset; col < *widthS; col += 3) {
+					for (row = rowoffset; row < *heightS; row += 3) {
+						if (hasnodataS == FALSE)
+							valS = 1;
+						else if (rt_band_get_pixel(bandS, col, row, &valS, &isnodataS) != ES_NONE)
+							continue;
+
+						if ((hasnodataS == FALSE) || !isnodataS) {
+							rt_raster_cell_to_geopoint(
+								rastS,
+								col, row,
+								&(lineS[X1]), &(lineS[Y1]),
+								gtS
+							);
+
+							if (rt_raster_geopoint_to_cell(
+								rastL,
+								lineS[X1], lineS[Y1],
+								&(Qr[pX]), &(Qr[pY]),
+								igtL
+							) != ES_NONE) {
+								continue;
+							}
+
+							if (
+								(Qr[pX] < 0 || Qr[pX] > *widthL || FLT_EQ(Qr[pX], *widthL)) ||
+								(Qr[pY] < 0 || Qr[pY] > *heightL || FLT_EQ(Qr[pY], *heightL))
+							) {
+								continue;
+							}
+
+							if (hasnodataS == FALSE)
+								valL = 1;
+							else if (rt_band_get_pixel(bandL, Qr[pX], Qr[pY], &valL, &isnodataL) != ES_NONE)
+								continue;
+
+							if ((hasnodataL == FALSE) || !isnodataL) {
+								RASTER_DEBUG(3, "The two rasters do intersect");
+								*intersects = 1;
+								return ES_NONE;
+							}
+						}
+					}
+				}
+			}
+		}
+		RASTER_DEBUG(4, "Smaller raster not in the other raster's pixel. Continuing");
+	}
+
+	RASTER_DEBUG(4, "Testing smaller raster vs larger raster");
+	*intersects = rt_raster_intersects_algorithm(
+		rastS, rastL,
+		bandS, bandL,
+		hasnodataS, hasnodataL,
+		nodataS, nodataL
+	);
+
+	if (*intersects) return ES_NONE;
+
+	RASTER_DEBUG(4, "Testing larger raster vs smaller raster");
+	*intersects = rt_raster_intersects_algorithm(
+		rastL, rastS,
+		bandL, bandS,
+		hasnodataL, hasnodataS,
+		nodataL, nodataS
+	);
+
+	if (*intersects) return ES_NONE;
+
+	RASTER_DEBUG(3, "The two rasters do not intersect");
+
+	*intersects = 0;
+	return ES_NONE;
+}
+
diff --git a/raster/rt_core/rt_statistics.c b/raster/rt_core/rt_statistics.c
new file mode 100644
index 0000000..974580c
--- /dev/null
+++ b/raster/rt_core/rt_statistics.c
@@ -0,0 +1,1852 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+
+/******************************************************************************
+* quicksort
+******************************************************************************/
+
+#define SWAP(x, y) { double t; t = x; x = y; y = t; }
+#define ORDER(x, y) if (x > y) SWAP(x, y)
+
+static double pivot(double *left, double *right) {
+	double l, m, r, *p;
+
+	l = *left;
+	m = *(left + (right - left) / 2);
+	r = *right;
+
+	/* order */
+	ORDER(l, m);
+	ORDER(l, r);
+	ORDER(m, r);
+
+	/* pivot is higher of two values */
+	if (l < m) return m;
+	if (m < r) return r;
+
+	/* find pivot that isn't left */
+	for (p = left + 1; p <= right; ++p) {
+		if (*p != *left)
+			return (*p < *left) ? *left : *p;
+	}
+
+	/* all values are same */
+	return -1;
+}
+
+static double *partition(double *left, double *right, double pivot) {
+	while (left <= right) {
+		while (*left < pivot) ++left;
+		while (*right >= pivot) --right;
+
+		if (left < right) {
+			SWAP(*left, *right);
+			++left;
+			--right;
+		}
+	}
+
+	return left;
+}
+
+static void quicksort(double *left, double *right) {
+	double p = pivot(left, right);
+	double *pos;
+
+	if (p != -1) {
+		pos = partition(left, right, p);
+		quicksort(left, pos - 1);
+		quicksort(pos, right);
+	}
+}
+
+/******************************************************************************
+* rt_band_get_summary_stats()
+******************************************************************************/
+
+/**
+ * Compute summary statistics for a band
+ *
+ * @param band : the band to query for summary stats
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * @param sample : percentage of pixels to sample
+ * @param inc_vals : flag to include values in return struct
+ * @param cK : number of pixels counted thus far in coverage
+ * @param cM : M component of 1-pass stddev for coverage
+ * @param cQ : Q component of 1-pass stddev for coverage
+ *
+ * @return the summary statistics for a band or NULL
+ */
+rt_bandstats
+rt_band_get_summary_stats(
+	rt_band band,
+	int exclude_nodata_value, double sample, int inc_vals,
+	uint64_t *cK, double *cM, double *cQ
+) {
+	uint32_t x = 0;
+	uint32_t y = 0;
+	uint32_t z = 0;
+	uint32_t offset = 0;
+	uint32_t diff = 0;
+	int rtn;
+	int hasnodata = FALSE;
+	double nodata = 0;
+	double *values = NULL;
+	double value;
+	int isnodata = 0;
+	rt_bandstats stats = NULL;
+
+	uint32_t do_sample = 0;
+	uint32_t sample_size = 0;
+	uint32_t sample_per = 0;
+	uint32_t sample_int = 0;
+	uint32_t i = 0;
+	uint32_t j = 0;
+	double sum = 0;
+	uint32_t k = 0;
+	double M = 0;
+	double Q = 0;
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	clock_t start, stop;
+	double elapsed = 0;
+#endif
+
+	RASTER_DEBUG(3, "starting");
+#if POSTGIS_DEBUG_LEVEL > 0
+	start = clock();
+#endif
+
+	assert(NULL != band);
+
+	/* band is empty (width < 1 || height < 1) */
+	if (band->width < 1 || band->height < 1) {
+		stats = (rt_bandstats) rtalloc(sizeof(struct rt_bandstats_t));
+		if (NULL == stats) {
+			rterror("rt_band_get_summary_stats: Could not allocate memory for stats");
+			return NULL;
+		}
+
+		rtwarn("Band is empty as width and/or height is 0");
+
+		stats->sample = 1;
+		stats->sorted = 0;
+		stats->values = NULL;
+		stats->count = 0;
+		stats->min = stats->max = 0;
+		stats->sum = 0;
+		stats->mean = 0;
+		stats->stddev = -1;
+
+		return stats;
+	}
+
+	hasnodata = rt_band_get_hasnodata_flag(band);
+	if (hasnodata != FALSE)
+		rt_band_get_nodata(band, &nodata);
+	else
+		exclude_nodata_value = 0;
+
+	RASTER_DEBUGF(3, "nodata = %f", nodata);
+	RASTER_DEBUGF(3, "hasnodata = %d", hasnodata);
+	RASTER_DEBUGF(3, "exclude_nodata_value = %d", exclude_nodata_value);
+
+	/* entire band is nodata */
+	if (rt_band_get_isnodata_flag(band) != FALSE) {
+		stats = (rt_bandstats) rtalloc(sizeof(struct rt_bandstats_t));
+		if (NULL == stats) {
+			rterror("rt_band_get_summary_stats: Could not allocate memory for stats");
+			return NULL;
+		}
+
+		stats->sample = 1;
+		stats->sorted = 0;
+		stats->values = NULL;
+
+		if (exclude_nodata_value) {
+			rtwarn("All pixels of band have the NODATA value");
+
+			stats->count = 0;
+			stats->min = stats->max = 0;
+			stats->sum = 0;
+			stats->mean = 0;
+			stats->stddev = -1;
+		}
+		else {
+			stats->count = band->width * band->height;
+			stats->min = stats->max = nodata;
+			stats->sum = stats->count * nodata;
+			stats->mean = nodata;
+			stats->stddev = 0;
+		}
+
+		return stats;
+	}
+
+	/* clamp percentage */
+	if (
+		(sample < 0 || FLT_EQ(sample, 0.0)) ||
+		(sample > 1 || FLT_EQ(sample, 1.0))
+	) {
+		do_sample = 0;
+		sample = 1;
+	}
+	else
+		do_sample = 1;
+	RASTER_DEBUGF(3, "do_sample = %d", do_sample);
+
+	/* sample all pixels */
+	if (!do_sample) {
+		sample_size = band->width * band->height;
+		sample_per = band->height;
+	}
+	/*
+	 randomly sample a percentage of available pixels
+	 sampling method is known as
+	 	"systematic random sample without replacement"
+	*/
+	else {
+		sample_size = round((band->width * band->height) * sample);
+		sample_per = round(sample_size / band->width);
+		if (sample_per < 1)
+			sample_per = 1;
+		sample_int = round(band->height / sample_per);
+		srand(time(NULL));
+	}
+
+	RASTER_DEBUGF(3, "sampling %d of %d available pixels w/ %d per set"
+		, sample_size, (band->width * band->height), sample_per);
+
+	if (inc_vals) {
+		values = rtalloc(sizeof(double) * sample_size);
+		if (NULL == values) {
+			rtwarn("Could not allocate memory for values");
+			inc_vals = 0;
+		}
+	}
+
+	/* initialize stats */
+	stats = (rt_bandstats) rtalloc(sizeof(struct rt_bandstats_t));
+	if (NULL == stats) {
+		rterror("rt_band_get_summary_stats: Could not allocate memory for stats");
+		return NULL;
+	}
+	stats->sample = sample;
+	stats->count = 0;
+	stats->sum = 0;
+	stats->mean = 0;
+	stats->stddev = -1;
+	stats->min = stats->max = 0;
+	stats->values = NULL;
+	stats->sorted = 0;
+
+	for (x = 0, j = 0, k = 0; x < band->width; x++) {
+		y = -1;
+		diff = 0;
+
+		for (i = 0, z = 0; i < sample_per; i++) {
+			if (!do_sample)
+				y = i;
+			else {
+				offset = (rand() % sample_int) + 1;
+				y += diff + offset;
+				diff = sample_int - offset;
+			}
+			RASTER_DEBUGF(5, "(x, y, z) = (%d, %d, %d)", x, y, z);
+			if (y >= band->height || z > sample_per) break;
+
+			rtn = rt_band_get_pixel(band, x, y, &value, &isnodata);
+
+			j++;
+			if (rtn == ES_NONE && (!exclude_nodata_value || (exclude_nodata_value && !isnodata))) {
+
+				/* inc_vals set, collect pixel values */
+				if (inc_vals) values[k] = value;
+
+				/* average */
+				k++;
+				sum += value;
+
+				/*
+					one-pass standard deviation
+					http://www.eecs.berkeley.edu/~mhoemmen/cs194/Tutorials/variance.pdf
+				*/
+				if (k == 1) {
+					Q = 0;
+					M = value;
+				}
+				else {
+					Q += (((k  - 1) * pow(value - M, 2)) / k);
+					M += ((value - M ) / k);
+				}
+
+				/* coverage one-pass standard deviation */
+				if (NULL != cK) {
+					(*cK)++;
+					if (*cK == 1) {
+						*cQ = 0;
+						*cM = value;
+					}
+					else {
+						*cQ += (((*cK  - 1) * pow(value - *cM, 2)) / *cK);
+						*cM += ((value - *cM ) / *cK);
+					}
+				}
+
+				/* min/max */
+				if (stats->count < 1) {
+					stats->count = 1;
+					stats->min = stats->max = value;
+				}
+				else {
+					if (value < stats->min)
+						stats->min = value;
+					if (value > stats->max)
+						stats->max = value;
+				}
+
+			}
+
+			z++;
+		}
+	}
+
+	RASTER_DEBUG(3, "sampling complete");
+
+	stats->count = k;
+	if (k > 0) {
+		if (inc_vals) {
+			/* free unused memory */
+			if (sample_size != k) {
+				values = rtrealloc(values, k * sizeof(double));
+			}
+
+			stats->values = values;
+		}
+
+		stats->sum = sum;
+		stats->mean = sum / k;
+
+		/* standard deviation */
+		if (!do_sample)
+			stats->stddev = sqrt(Q / k);
+		/* sample deviation */
+		else {
+			if (k < 2)
+				stats->stddev = -1;
+			else
+				stats->stddev = sqrt(Q / (k - 1));
+		}
+	}
+	/* inc_vals thus values allocated but not used */
+	else if (inc_vals)
+		rtdealloc(values);
+
+	/* if do_sample is one */
+	if (do_sample && k < 1)
+		rtwarn("All sampled pixels of band have the NODATA value");
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	stop = clock();
+	elapsed = ((double) (stop - start)) / CLOCKS_PER_SEC;
+	RASTER_DEBUGF(3, "(time, count, mean, stddev, min, max) = (%0.4f, %d, %f, %f, %f, %f)",
+		elapsed, stats->count, stats->mean, stats->stddev, stats->min, stats->max);
+#endif
+
+	RASTER_DEBUG(3, "done");
+	return stats;
+}
+
+/******************************************************************************
+* rt_band_get_histogram()
+******************************************************************************/
+
+/**
+ * Count the distribution of data
+ *
+ * @param stats : a populated stats struct for processing
+ * @param bin_count : the number of bins to group the data by
+ * @param bin_width : the width of each bin as an array
+ * @param bin_width_count : number of values in bin_width
+ * @param right : evaluate bins by (a,b] rather than default [a,b)
+ * @param min : user-defined minimum value of the histogram
+ *   a value less than the minimum value is not counted in any bins
+ *   if min = max, min and max are not used
+ * @param max : user-defined maximum value of the histogram
+ *   a value greater than the max value is not counted in any bins
+ *   if min = max, min and max are not used
+ * @param rtn_count : set to the number of bins being returned
+ *
+ * @return the histogram of the data or NULL
+ */
+rt_histogram
+rt_band_get_histogram(
+	rt_bandstats stats,
+	int bin_count, double *bin_width, int bin_width_count,
+	int right, double min, double max,
+	uint32_t *rtn_count
+) {
+	rt_histogram bins = NULL;
+	int init_width = 0;
+	int i;
+	int j;
+	double tmp;
+	double value;
+	int sum = 0;
+	double qmin;
+	double qmax;
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	clock_t start, stop;
+	double elapsed = 0;
+#endif
+
+	RASTER_DEBUG(3, "starting");
+#if POSTGIS_DEBUG_LEVEL > 0
+	start = clock();
+#endif
+
+	assert(NULL != stats);
+	assert(NULL != rtn_count);
+
+	if (stats->count < 1 || NULL == stats->values) {
+		rterror("rt_util_get_histogram: rt_bandstats object has no value");
+		return NULL;
+	}
+
+	/* bin width must be positive numbers and not zero */
+	if (NULL != bin_width && bin_width_count > 0) {
+		for (i = 0; i < bin_width_count; i++) {
+			if (bin_width[i] < 0 || FLT_EQ(bin_width[i], 0.0)) {
+				rterror("rt_util_get_histogram: bin_width element is less than or equal to zero");
+				return NULL;
+			}
+		}
+	}
+
+	/* ignore min and max parameters */
+	if (FLT_EQ(max, min)) {
+		qmin = stats->min;
+		qmax = stats->max;
+	}
+	else {
+		qmin = min;
+		qmax = max;
+		if (qmin > qmax) {
+			qmin = max;
+			qmax = min;
+		}
+	}
+
+	/* # of bins not provided */
+	if (bin_count <= 0) {
+		/*
+			determine # of bins
+			http://en.wikipedia.org/wiki/Histogram
+
+			all computed bins are assumed to have equal width
+		*/
+		/* Square-root choice for stats->count < 30 */
+		if (stats->count < 30)
+			bin_count = ceil(sqrt(stats->count));
+		/* Sturges' formula for stats->count >= 30 */
+		else
+			bin_count = ceil(log2((double) stats->count) + 1.);
+
+		/* bin_width_count provided and bin_width has value */
+		if (bin_width_count > 0 && NULL != bin_width) {
+			/* user has defined something specific */
+			if (bin_width_count > bin_count)
+				bin_count = bin_width_count;
+			else if (bin_width_count > 1) {
+				tmp = 0;
+				for (i = 0; i < bin_width_count; i++) tmp += bin_width[i];
+				bin_count = ceil((qmax - qmin) / tmp) * bin_width_count;
+			}
+			else
+				bin_count = ceil((qmax - qmin) / bin_width[0]);
+		}
+		/* set bin width count to zero so that one can be calculated */
+		else {
+			bin_width_count = 0;
+		}
+	}
+
+	/* min and max the same */
+	if (FLT_EQ(qmax, qmin)) bin_count = 1;
+
+	RASTER_DEBUGF(3, "bin_count = %d", bin_count);
+
+	/* bin count = 1, all values are in one bin */
+	if (bin_count < 2) {
+		bins = rtalloc(sizeof(struct rt_histogram_t));
+		if (NULL == bins) {
+			rterror("rt_util_get_histogram: Could not allocate memory for histogram");
+			return NULL;
+		}
+
+		bins->count = stats->count;
+		bins->percent = -1;
+		bins->min = qmin;
+		bins->max = qmax;
+		bins->inc_min = bins->inc_max = 1;
+
+		*rtn_count = bin_count;
+		return bins;
+	}
+
+	/* establish bin width */
+	if (bin_width_count == 0) {
+		bin_width_count = 1;
+
+		/* bin_width unallocated */
+		if (NULL == bin_width) {
+			bin_width = rtalloc(sizeof(double));
+			if (NULL == bin_width) {
+				rterror("rt_util_get_histogram: Could not allocate memory for bin widths");
+				return NULL;
+			}
+			init_width = 1;
+		}
+
+		bin_width[0] = (qmax - qmin) / bin_count;
+	}
+
+	/* initialize bins */
+	bins = rtalloc(bin_count * sizeof(struct rt_histogram_t));
+	if (NULL == bins) {
+		rterror("rt_util_get_histogram: Could not allocate memory for histogram");
+		if (init_width) rtdealloc(bin_width);
+		return NULL;
+	}
+	if (!right)
+		tmp = qmin;
+	else
+		tmp = qmax;
+	for (i = 0; i < bin_count;) {
+		for (j = 0; j < bin_width_count; j++) {
+			bins[i].count = 0;
+			bins->percent = -1;
+
+			if (!right) {
+				bins[i].min = tmp;
+				tmp += bin_width[j];
+				bins[i].max = tmp;
+
+				bins[i].inc_min = 1;
+				bins[i].inc_max = 0;
+			}
+			else {
+				bins[i].max = tmp;
+				tmp -= bin_width[j];
+				bins[i].min = tmp;
+
+				bins[i].inc_min = 0;
+				bins[i].inc_max = 1;
+			}
+
+			i++;
+		}
+	}
+	if (!right) {
+		bins[bin_count - 1].inc_max = 1;
+
+		/* align last bin to the max value */
+		if (bins[bin_count - 1].max < qmax)
+			bins[bin_count - 1].max = qmax;
+	}
+	else {
+		bins[bin_count - 1].inc_min = 1;
+
+		/* align first bin to the min value */
+		if (bins[bin_count - 1].min > qmin)
+			bins[bin_count - 1].min = qmin;
+	}
+
+	/* process the values */
+	for (i = 0; i < stats->count; i++) {
+		value = stats->values[i];
+
+		/* default, [a, b) */
+		if (!right) {
+			for (j = 0; j < bin_count; j++) {
+				if (
+					(!bins[j].inc_max && value < bins[j].max) || (
+						bins[j].inc_max && (
+							(value < bins[j].max) ||
+							FLT_EQ(value, bins[j].max)
+						)
+					)
+				) {
+					bins[j].count++;
+					sum++;
+					break;
+				}
+			}
+		}
+		/* (a, b] */
+		else {
+			for (j = 0; j < bin_count; j++) {
+				if (
+					(!bins[j].inc_min && value > bins[j].min) || (
+						bins[j].inc_min && (
+							(value > bins[j].min) ||
+							FLT_EQ(value, bins[j].min)
+						)
+					)
+				) {
+					bins[j].count++;
+					sum++;
+					break;
+				}
+			}
+		}
+	}
+
+	for (i = 0; i < bin_count; i++) {
+		bins[i].percent = ((double) bins[i].count) / sum;
+	}
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	stop = clock();
+	elapsed = ((double) (stop - start)) / CLOCKS_PER_SEC;
+	RASTER_DEBUGF(3, "elapsed time = %0.4f", elapsed);
+
+	for (j = 0; j < bin_count; j++) {
+		RASTER_DEBUGF(5, "(min, max, inc_min, inc_max, count, sum, percent) = (%f, %f, %d, %d, %d, %d, %f)",
+			bins[j].min, bins[j].max, bins[j].inc_min, bins[j].inc_max, bins[j].count, sum, bins[j].percent);
+	}
+#endif
+
+	if (init_width) rtdealloc(bin_width);
+	*rtn_count = bin_count;
+	RASTER_DEBUG(3, "done");
+	return bins;
+}
+
+/******************************************************************************
+* rt_band_get_quantiles()
+******************************************************************************/
+
+/**
+ * Compute the default set of or requested quantiles for a set of data
+ * the quantile formula used is same as Excel and R default method
+ *
+ * @param stats : a populated stats struct for processing
+ * @param quantiles : the quantiles to be computed
+ * @param quantiles_count : the number of quantiles to be computed
+ * @param rtn_count : set to the number of quantiles being returned
+ *
+ * @return the default set of or requested quantiles for a band or NULL
+ */
+rt_quantile
+rt_band_get_quantiles(
+	rt_bandstats stats,
+	double *quantiles, int quantiles_count,
+	uint32_t *rtn_count
+) {
+	rt_quantile rtn;
+	int init_quantiles = 0;
+	int i = 0;
+	double h;
+	int hl;
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	clock_t start, stop;
+	double elapsed = 0;
+#endif
+
+	RASTER_DEBUG(3, "starting");
+#if POSTGIS_DEBUG_LEVEL > 0
+	start = clock();
+#endif
+
+	assert(NULL != stats);
+	assert(NULL != rtn_count);
+
+	if (stats->count < 1 || NULL == stats->values) {
+		rterror("rt_band_get_quantiles: rt_bandstats object has no value");
+		return NULL;
+	}
+
+	/* quantiles not provided */
+	if (NULL == quantiles) {
+		/* quantile count not specified, default to quartiles */
+		if (quantiles_count < 2)
+			quantiles_count = 5;
+
+		quantiles = rtalloc(sizeof(double) * quantiles_count);
+		init_quantiles = 1;
+		if (NULL == quantiles) {
+			rterror("rt_band_get_quantiles: Could not allocate memory for quantile input");
+			return NULL;
+		}
+
+		quantiles_count--;
+		for (i = 0; i <= quantiles_count; i++)
+			quantiles[i] = ((double) i) / quantiles_count;
+		quantiles_count++;
+	}
+
+	/* check quantiles */
+	for (i = 0; i < quantiles_count; i++) {
+		if (quantiles[i] < 0. || quantiles[i] > 1.) {
+			rterror("rt_band_get_quantiles: Quantile value not between 0 and 1");
+			if (init_quantiles) rtdealloc(quantiles);
+			return NULL;
+		}
+	}
+	quicksort(quantiles, quantiles + quantiles_count - 1);
+
+	/* initialize rt_quantile */
+	rtn = rtalloc(sizeof(struct rt_quantile_t) * quantiles_count);
+	if (NULL == rtn) {
+		rterror("rt_band_get_quantiles: Could not allocate memory for quantile output");
+		if (init_quantiles) rtdealloc(quantiles);
+		return NULL;
+	}
+
+	/* sort values */
+	if (!stats->sorted) {
+		quicksort(stats->values, stats->values + stats->count - 1);
+		stats->sorted = 1;
+	}
+
+	/*
+		make quantiles
+
+		formula is that used in R (method 7) and Excel from
+			http://en.wikipedia.org/wiki/Quantile
+	*/
+	for (i = 0; i < quantiles_count; i++) {
+		rtn[i].quantile = quantiles[i];
+
+		h = ((stats->count - 1.) * quantiles[i]) + 1.;
+		hl = floor(h);
+
+		/* h greater than hl, do full equation */
+		if (h > hl)
+			rtn[i].value = stats->values[hl - 1] + ((h - hl) * (stats->values[hl] - stats->values[hl - 1]));
+		/* shortcut as second part of equation is zero */
+		else
+			rtn[i].value = stats->values[hl - 1];
+	}
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	stop = clock();
+	elapsed = ((double) (stop - start)) / CLOCKS_PER_SEC;
+	RASTER_DEBUGF(3, "elapsed time = %0.4f", elapsed);
+#endif
+
+	*rtn_count = quantiles_count;
+	if (init_quantiles) rtdealloc(quantiles);
+	RASTER_DEBUG(3, "done");
+	return rtn;
+}
+
+/******************************************************************************
+* rt_band_get_quantiles_stream()
+******************************************************************************/
+
+static struct quantile_llist_element *quantile_llist_search(
+	struct quantile_llist_element *element,
+	double needle
+) {
+	if (NULL == element)
+		return NULL;
+	else if (FLT_NEQ(needle, element->value)) {
+		if (NULL != element->next)
+			return quantile_llist_search(element->next, needle);
+		else
+			return NULL;
+	}
+	else
+		return element;
+}
+
+static struct quantile_llist_element *quantile_llist_insert(
+	struct quantile_llist_element *element,
+	double value,
+	uint32_t *idx
+) {
+	struct quantile_llist_element *qle = NULL;
+
+	if (NULL == element) {
+		qle = rtalloc(sizeof(struct quantile_llist_element));
+		RASTER_DEBUGF(4, "qle @ %p is only element in list", qle);
+		if (NULL == qle) return NULL;
+
+		qle->value = value;
+		qle->count = 1;
+
+		qle->prev = NULL;
+		qle->next = NULL;
+
+		if (NULL != idx) *idx = 0;
+		return qle;
+	}
+	else if (value > element->value) {
+		if (NULL != idx) *idx += 1;
+		if (NULL != element->next)
+			return quantile_llist_insert(element->next, value, idx);
+		/* insert as last element in list */
+		else {
+			qle = rtalloc(sizeof(struct quantile_llist_element));
+			RASTER_DEBUGF(4, "insert qle @ %p as last element", qle);
+			if (NULL == qle) return NULL;
+
+			qle->value = value;
+			qle->count = 1;
+
+			qle->prev = element;
+			qle->next = NULL;
+			element->next = qle;
+
+			return qle;
+		}
+	}
+	/* insert before current element */
+	else {
+		qle = rtalloc(sizeof(struct quantile_llist_element));
+		RASTER_DEBUGF(4, "insert qle @ %p before current element", qle);
+		if (NULL == qle) return NULL;
+
+		qle->value = value;
+		qle->count = 1;
+
+		if (NULL != element->prev) element->prev->next = qle;
+		qle->next = element;
+		qle->prev = element->prev;
+		element->prev = qle;
+
+		return qle;
+	}
+}
+
+static int quantile_llist_delete(struct quantile_llist_element *element) {
+	if (NULL == element) return 0;
+
+	/* beginning of list */
+	if (NULL == element->prev && NULL != element->next) {
+		element->next->prev = NULL;
+	}
+	/* end of list */
+	else if (NULL != element->prev && NULL == element->next) {
+		element->prev->next = NULL;
+	}
+	/* within list */
+	else if (NULL != element->prev && NULL != element->next) {
+		element->prev->next = element->next;
+		element->next->prev = element->prev;
+	}
+
+	RASTER_DEBUGF(4, "qle @ %p destroyed", element);
+	rtdealloc(element);
+
+	return 1;
+}
+
+int quantile_llist_destroy(struct quantile_llist **list, uint32_t list_count) {
+	struct quantile_llist_element *element = NULL;
+	uint32_t i;
+
+	if (NULL == *list) return 0;
+
+	for (i = 0; i < list_count; i++) {
+		element = (*list)[i].head;
+		while (NULL != element->next) {
+			quantile_llist_delete(element->next);
+		}
+		quantile_llist_delete(element);
+
+		rtdealloc((*list)[i].index);
+	}
+
+	rtdealloc(*list);
+	return 1;
+}
+
+static void quantile_llist_index_update(struct quantile_llist *qll, struct quantile_llist_element *qle, uint32_t idx) {
+	uint32_t anchor = (uint32_t) floor(idx / 100);
+
+	if (qll->tail == qle) return;
+
+	if (
+		(anchor != 0) && (
+			NULL == qll->index[anchor].element ||
+			idx <= qll->index[anchor].index
+		)
+	) {
+		qll->index[anchor].index = idx;
+		qll->index[anchor].element = qle;
+	}
+
+	if (anchor != 0 && NULL == qll->index[0].element) {
+		qll->index[0].index = 0;
+		qll->index[0].element = qll->head;
+	}
+}
+
+static void quantile_llist_index_delete(struct quantile_llist *qll, struct quantile_llist_element *qle) {
+	uint32_t i = 0;
+
+	for (i = 0; i < qll->index_max; i++) {
+		if (
+			NULL == qll->index[i].element ||
+			(qll->index[i].element) != qle
+		) {
+			continue;
+		}
+
+		RASTER_DEBUGF(5, "deleting index: %d => %f", i, qle->value);
+		qll->index[i].index = -1;
+		qll->index[i].element = NULL;
+	}
+}
+
+static struct quantile_llist_element *quantile_llist_index_search(
+	struct quantile_llist *qll,
+	double value,
+	uint32_t *index
+) {
+	uint32_t i = 0, j = 0;
+	RASTER_DEBUGF(5, "searching index for value %f", value);
+
+	for (i = 0; i < qll->index_max; i++) {
+		if (NULL == qll->index[i].element) {
+			if (i < 1) break;
+			continue;
+		}
+		if (value > (qll->index[i]).element->value) continue;
+
+		if (FLT_EQ(value, qll->index[i].element->value)) {
+			RASTER_DEBUGF(5, "using index value at %d = %f", i, qll->index[i].element->value);
+			*index = i * 100;
+			return qll->index[i].element;
+		}
+		else if (i > 0) {
+			for (j = 1; j < i; j++) {
+				if (NULL != qll->index[i - j].element) {
+					RASTER_DEBUGF(5, "using index value at %d = %f", i - j, qll->index[i - j].element->value);
+					*index = (i - j) * 100;
+					return qll->index[i - j].element;
+				}
+			}
+		}
+	}
+
+	*index = 0;
+	return qll->head;
+}
+
+static void quantile_llist_index_reset(struct quantile_llist *qll) {
+	uint32_t i = 0;
+
+	RASTER_DEBUG(5, "resetting index");
+	for (i = 0; i < qll->index_max; i++) {
+		qll->index[i].index = -1;
+		qll->index[i].element = NULL;
+	}
+}
+
+
+/**
+ * Compute the default set of or requested quantiles for a coverage
+ *
+ * This function is based upon the algorithm described in:
+ *
+ * A One-Pass Space-Efficient Algorithm for Finding Quantiles (1995)
+ *   by Rakesh Agrawal, Arun Swami
+ *   in Proc. 7th Intl. Conf. Management of Data (COMAD-95)
+ *
+ * http://www.almaden.ibm.com/cs/projects/iis/hdb/Publications/papers/comad95.pdf
+ *
+ * In the future, it may be worth exploring algorithms that don't
+ *   require the size of the coverage
+ *
+ * @param band : the band to include in the quantile search
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * @param sample : percentage of pixels to sample
+ * @param cov_count : number of values in coverage
+ * @param qlls : set of quantile_llist structures
+ * @param qlls_count : the number of quantile_llist structures
+ * @param quantiles : the quantiles to be computed
+ *   if bot qlls and quantiles provided, qlls is used
+ * @param quantiles_count : the number of quantiles to be computed
+ * @param rtn_count : the number of quantiles being returned
+ *
+ * @return the default set of or requested quantiles for a band or NULL
+ */
+rt_quantile
+rt_band_get_quantiles_stream(
+	rt_band band,
+	int exclude_nodata_value, double sample,
+	uint64_t cov_count,
+	struct quantile_llist **qlls, uint32_t *qlls_count,
+	double *quantiles, int quantiles_count,
+	uint32_t *rtn_count
+) {
+	rt_quantile rtn = NULL;
+	int init_quantiles = 0;
+
+	struct quantile_llist *qll = NULL;
+	struct quantile_llist_element *qle = NULL;
+	struct quantile_llist_element *qls = NULL;
+	const uint32_t MAX_VALUES = 750;
+
+	uint8_t *data = NULL;
+	double value;
+	int isnodata = 0;
+
+	uint32_t a = 0;
+	uint32_t i = 0;
+	uint32_t j = 0;
+	uint32_t k = 0;
+	uint32_t x = 0;
+	uint32_t y = 0;
+	uint32_t z = 0;
+	uint32_t idx = 0;
+	uint32_t offset = 0;
+	uint32_t diff = 0;
+	uint8_t exists = 0;
+
+	uint32_t do_sample = 0;
+	uint32_t sample_size = 0;
+	uint32_t sample_per = 0;
+	uint32_t sample_int = 0;
+	int status;
+
+	RASTER_DEBUG(3, "starting");
+
+	assert(NULL != band);
+	assert(cov_count > 1);
+	assert(NULL != rtn_count);
+	RASTER_DEBUGF(3, "cov_count = %d", cov_count);
+
+	data = rt_band_get_data(band);
+	if (data == NULL) {
+		rterror("rt_band_get_summary_stats: Cannot get band data");
+		return NULL;
+	}
+
+	if (!rt_band_get_hasnodata_flag(band))
+		exclude_nodata_value = 0;
+	RASTER_DEBUGF(3, "exclude_nodata_value = %d", exclude_nodata_value);
+
+	/* quantile_llist not provided */
+	if (NULL == *qlls) {
+		/* quantiles not provided */
+		if (NULL == quantiles) {
+			/* quantile count not specified, default to quartiles */
+			if (quantiles_count < 2)
+				quantiles_count = 5;
+
+			quantiles = rtalloc(sizeof(double) * quantiles_count);
+			init_quantiles = 1;
+			if (NULL == quantiles) {
+				rterror("rt_band_get_quantiles_stream: Could not allocate memory for quantile input");
+				return NULL;
+			}
+
+			quantiles_count--;
+			for (i = 0; i <= quantiles_count; i++)
+				quantiles[i] = ((double) i) / quantiles_count;
+			quantiles_count++;
+		}
+
+		/* check quantiles */
+		for (i = 0; i < quantiles_count; i++) {
+			if (quantiles[i] < 0. || quantiles[i] > 1.) {
+				rterror("rt_band_get_quantiles_stream: Quantile value not between 0 and 1");
+				if (init_quantiles) rtdealloc(quantiles);
+				return NULL;
+			}
+		}
+		quicksort(quantiles, quantiles + quantiles_count - 1);
+
+		/* initialize linked-list set */
+		*qlls_count = quantiles_count * 2;
+		RASTER_DEBUGF(4, "qlls_count = %d", *qlls_count);
+		*qlls = rtalloc(sizeof(struct quantile_llist) * *qlls_count);
+		if (NULL == *qlls) {
+			rterror("rt_band_get_quantiles_stream: Could not allocate memory for quantile output");
+			if (init_quantiles) rtdealloc(quantiles);
+			return NULL;
+		}
+
+		j = (uint32_t) floor(MAX_VALUES / 100.) + 1;
+		for (i = 0; i < *qlls_count; i++) {
+			qll = &((*qlls)[i]);
+			qll->quantile = quantiles[(i * quantiles_count) / *qlls_count];
+			qll->count = 0;
+			qll->sum1 = 0;
+			qll->sum2 = 0;
+			qll->head = NULL;
+			qll->tail = NULL;
+
+			/* initialize index */
+			qll->index = rtalloc(sizeof(struct quantile_llist_index) * j);
+			if (NULL == qll->index) {
+				rterror("rt_band_get_quantiles_stream: Could not allocate memory for quantile output");
+				if (init_quantiles) rtdealloc(quantiles);
+				return NULL;
+			}
+			qll->index_max = j;
+			quantile_llist_index_reset(qll);
+
+			/* AL-GEQ */
+			if (!(i % 2)) {
+				qll->algeq = 1;
+				qll->tau = (uint64_t) ROUND(cov_count - (cov_count * qll->quantile), 0);
+				if (qll->tau < 1) qll->tau = 1;
+			}
+			/* AL-GT */
+			else {
+				qll->algeq = 0;
+				qll->tau = cov_count - (*qlls)[i - 1].tau + 1;
+			}
+
+			RASTER_DEBUGF(4, "qll init: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
+				qll->algeq, qll->quantile, qll->count, qll->tau, qll->sum1, qll->sum2);
+			RASTER_DEBUGF(4, "qll init: (head, tail) = (%p, %p)", qll->head, qll->tail);
+		}
+
+		if (init_quantiles) rtdealloc(quantiles);
+	}
+
+	/* clamp percentage */
+	if (
+		(sample < 0 || FLT_EQ(sample, 0.0)) ||
+		(sample > 1 || FLT_EQ(sample, 1.0))
+	) {
+		do_sample = 0;
+		sample = 1;
+	}
+	else
+		do_sample = 1;
+	RASTER_DEBUGF(3, "do_sample = %d", do_sample);
+
+	/* sample all pixels */
+	if (!do_sample) {
+		sample_size = band->width * band->height;
+		sample_per = band->height;
+	}
+	/*
+	 randomly sample a percentage of available pixels
+	 sampling method is known as
+	 	"systematic random sample without replacement"
+	*/
+	else {
+		sample_size = round((band->width * band->height) * sample);
+		sample_per = round(sample_size / band->width);
+		sample_int = round(band->height / sample_per);
+		srand(time(NULL));
+	}
+	RASTER_DEBUGF(3, "sampling %d of %d available pixels w/ %d per set"
+		, sample_size, (band->width * band->height), sample_per);
+
+	for (x = 0, j = 0, k = 0; x < band->width; x++) {
+		y = -1;
+		diff = 0;
+
+		/* exclude_nodata_value = TRUE and band is NODATA */
+		if (exclude_nodata_value && rt_band_get_isnodata_flag(band)) {
+			RASTER_DEBUG(3, "Skipping quantile calcuation as band is NODATA");
+			break;
+		}
+
+		for (i = 0, z = 0; i < sample_per; i++) {
+			if (do_sample != 1)
+				y = i;
+			else {
+				offset = (rand() % sample_int) + 1;
+				y += diff + offset;
+				diff = sample_int - offset;
+			}
+			RASTER_DEBUGF(5, "(x, y, z) = (%d, %d, %d)", x, y, z);
+			if (y >= band->height || z > sample_per) break;
+
+			status = rt_band_get_pixel(band, x, y, &value, &isnodata);
+
+			j++;
+			if (status == ES_NONE && (!exclude_nodata_value || (exclude_nodata_value && !isnodata))) {
+
+				/* process each quantile */
+				for (a = 0; a < *qlls_count; a++) {
+					qll = &((*qlls)[a]);
+					qls = NULL;
+					RASTER_DEBUGF(4, "%d of %d (%f)", a + 1, *qlls_count, qll->quantile);
+					RASTER_DEBUGF(5, "qll before: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
+						qll->algeq, qll->quantile, qll->count, qll->tau, qll->sum1, qll->sum2);
+					RASTER_DEBUGF(5, "qll before: (head, tail) = (%p, %p)", qll->head, qll->tail);
+
+					/* OPTIMIZATION: shortcuts for quantiles of zero or one */
+					if (FLT_EQ(qll->quantile, 0.)) {
+						if (NULL != qll->head) {
+							if (value < qll->head->value)
+								qll->head->value = value;
+						}
+						else {
+							qle = quantile_llist_insert(qll->head, value, NULL);
+							qll->head = qle;
+							qll->tail = qle;
+							qll->count = 1;
+						}
+
+						RASTER_DEBUGF(4, "quantile shortcut for %f\n\n", qll->quantile);
+						continue;
+					}
+					else if (FLT_EQ(qll->quantile, 1.)) {
+						if (NULL != qll->head) {
+							if (value > qll->head->value)
+								qll->head->value = value;
+						}
+						else {
+							qle = quantile_llist_insert(qll->head, value, NULL);
+							qll->head = qle;
+							qll->tail = qle;
+							qll->count = 1;
+						}
+
+						RASTER_DEBUGF(4, "quantile shortcut for %f\n\n", qll->quantile);
+						continue;
+					}
+
+					/* value exists in list */
+					/* OPTIMIZATION: check to see if value exceeds last value */
+					if (NULL != qll->tail && value > qll->tail->value)
+						qle = NULL;
+					/* OPTIMIZATION: check to see if value equals last value */
+					else if (NULL != qll->tail && FLT_EQ(value, qll->tail->value))
+						qle = qll->tail;
+					/* OPTIMIZATION: use index if possible */
+					else {
+						qls = quantile_llist_index_search(qll, value, &idx);
+						qle = quantile_llist_search(qls, value);
+					}
+
+					/* value found */
+					if (NULL != qle) {
+						RASTER_DEBUGF(4, "%f found in list", value);
+						RASTER_DEBUGF(5, "qle before: (value, count) = (%f, %d)", qle->value, qle->count);
+
+						qle->count++;
+						qll->sum1++;
+
+						if (qll->algeq)
+							qll->sum2 = qll->sum1 - qll->head->count;
+						else
+							qll->sum2 = qll->sum1 - qll->tail->count;
+
+						RASTER_DEBUGF(4, "qle after: (value, count) = (%f, %d)", qle->value, qle->count);
+					}
+					/* can still add element */
+					else if (qll->count < MAX_VALUES) {
+						RASTER_DEBUGF(4, "Adding %f to list", value);
+
+						/* insert */
+						/* OPTIMIZATION: check to see if value exceeds last value */
+						if (NULL != qll->tail && (value > qll->tail->value || FLT_EQ(value, qll->tail->value))) {
+							idx = qll->count;
+							qle = quantile_llist_insert(qll->tail, value, &idx);
+						}
+						/* OPTIMIZATION: use index if possible */
+						else
+							qle = quantile_llist_insert(qls, value, &idx);
+						if (NULL == qle) return NULL;
+						RASTER_DEBUGF(5, "value added at index: %d => %f", idx, value);
+						qll->count++;
+						qll->sum1++;
+
+						/* first element */
+						if (NULL == qle->prev)
+							qll->head = qle;
+						/* last element */
+						if (NULL == qle->next)
+							qll->tail = qle;
+
+						if (qll->algeq)
+							qll->sum2 = qll->sum1 - qll->head->count;
+						else
+							qll->sum2 = qll->sum1 - qll->tail->count;
+
+						/* index is only needed if there are at least 100 values */
+						quantile_llist_index_update(qll, qle, idx);
+
+						RASTER_DEBUGF(5, "qle, prev, next, head, tail = %p, %p, %p, %p, %p", qle, qle->prev, qle->next, qll->head, qll->tail);
+					}
+					/* AL-GEQ */
+					else if (qll->algeq) {
+						RASTER_DEBUGF(4, "value, head->value = %f, %f", value, qll->head->value);
+
+						if (value < qll->head->value) {
+							/* ignore value if test isn't true */
+							if (qll->sum1 >= qll->tau) {
+								RASTER_DEBUGF(4, "skipping %f", value);
+							}
+							else {
+
+								/* delete last element */
+								RASTER_DEBUGF(4, "deleting %f from list", qll->tail->value);
+								qle = qll->tail->prev;
+								RASTER_DEBUGF(5, "to-be tail is %f with count %d", qle->value, qle->count);
+								qle->count += qll->tail->count;
+								quantile_llist_index_delete(qll, qll->tail);
+								quantile_llist_delete(qll->tail);
+								qll->tail = qle;
+								qll->count--;
+								RASTER_DEBUGF(5, "tail is %f with count %d", qll->tail->value, qll->tail->count);
+
+								/* insert value */
+								RASTER_DEBUGF(4, "adding %f to list", value);
+								/* OPTIMIZATION: check to see if value exceeds last value */
+								if (NULL != qll->tail && (value > qll->tail->value || FLT_EQ(value, qll->tail->value))) {
+									idx = qll->count;
+									qle = quantile_llist_insert(qll->tail, value, &idx);
+								}
+								/* OPTIMIZATION: use index if possible */
+								else {
+									qls = quantile_llist_index_search(qll, value, &idx);
+									qle = quantile_llist_insert(qls, value, &idx);
+								}
+								if (NULL == qle) return NULL;
+								RASTER_DEBUGF(5, "value added at index: %d => %f", idx, value);
+								qll->count++;
+								qll->sum1++;
+
+								/* first element */
+								if (NULL == qle->prev)
+									qll->head = qle;
+								/* last element */
+								if (NULL == qle->next)
+									qll->tail = qle;
+
+								qll->sum2 = qll->sum1 - qll->head->count;
+
+								quantile_llist_index_update(qll, qle, idx);
+
+								RASTER_DEBUGF(5, "qle, head, tail = %p, %p, %p", qle, qll->head, qll->tail);
+
+							}
+						}
+						else {
+							qle = qll->tail;
+							while (NULL != qle) {
+								if (qle->value < value) {
+									qle->count++;
+									qll->sum1++;
+									qll->sum2 = qll->sum1 - qll->head->count;
+									RASTER_DEBUGF(4, "incremented count of %f by 1 to %d", qle->value, qle->count);
+									break;
+								}
+
+								qle = qle->prev;
+							}
+						}
+					}
+					/* AL-GT */
+					else {
+						RASTER_DEBUGF(4, "value, tail->value = %f, %f", value, qll->tail->value);
+
+						if (value > qll->tail->value) {
+							/* ignore value if test isn't true */
+							if (qll->sum1 >= qll->tau) {
+								RASTER_DEBUGF(4, "skipping %f", value);
+							}
+							else {
+
+								/* delete last element */
+								RASTER_DEBUGF(4, "deleting %f from list", qll->head->value);
+								qle = qll->head->next;
+								RASTER_DEBUGF(5, "to-be tail is %f with count %d", qle->value, qle->count);
+								qle->count += qll->head->count;
+								quantile_llist_index_delete(qll, qll->head);
+								quantile_llist_delete(qll->head);
+								qll->head = qle;
+								qll->count--;
+								quantile_llist_index_update(qll, NULL, 0);
+								RASTER_DEBUGF(5, "tail is %f with count %d", qll->head->value, qll->head->count);
+
+								/* insert value */
+								RASTER_DEBUGF(4, "adding %f to list", value);
+								/* OPTIMIZATION: check to see if value exceeds last value */
+								if (NULL != qll->tail && (value > qll->tail->value || FLT_EQ(value, qll->tail->value))) {
+									idx = qll->count;
+									qle = quantile_llist_insert(qll->tail, value, &idx);
+								}
+								/* OPTIMIZATION: use index if possible */
+								else {
+									qls = quantile_llist_index_search(qll, value, &idx);
+									qle = quantile_llist_insert(qls, value, &idx);
+								}
+								if (NULL == qle) return NULL;
+								RASTER_DEBUGF(5, "value added at index: %d => %f", idx, value);
+								qll->count++;
+								qll->sum1++;
+
+								/* first element */
+								if (NULL == qle->prev)
+									qll->head = qle;
+								/* last element */
+								if (NULL == qle->next)
+									qll->tail = qle;
+
+								qll->sum2 = qll->sum1 - qll->tail->count;
+
+								quantile_llist_index_update(qll, qle, idx);
+
+								RASTER_DEBUGF(5, "qle, head, tail = %p, %p, %p", qle, qll->head, qll->tail);
+
+							}
+						}
+						else {
+							qle = qll->head;
+							while (NULL != qle) {
+								if (qle->value > value) {
+									qle->count++;
+									qll->sum1++;
+									qll->sum2 = qll->sum1 - qll->tail->count;
+									RASTER_DEBUGF(4, "incremented count of %f by 1 to %d", qle->value, qle->count);
+									break;
+								}
+
+								qle = qle->next;
+							}
+						}
+					}
+
+					RASTER_DEBUGF(5, "sum2, tau = %d, %d", qll->sum2, qll->tau);
+					if (qll->sum2 >= qll->tau) {
+						/* AL-GEQ */
+						if (qll->algeq) {
+							RASTER_DEBUGF(4, "deleting first element %f from list", qll->head->value);
+
+							if (NULL != qll->head->next) {
+								qle = qll->head->next;
+								qll->sum1 -= qll->head->count;
+								qll->sum2 = qll->sum1 - qle->count;
+								quantile_llist_index_delete(qll, qll->head);
+								quantile_llist_delete(qll->head);
+								qll->head = qle;
+								qll->count--;
+
+								quantile_llist_index_update(qll, NULL, 0);
+							}
+							else {
+								quantile_llist_delete(qll->head);
+								qll->head = NULL;
+								qll->tail = NULL;
+								qll->sum1 = 0;
+								qll->sum2 = 0;
+								qll->count = 0;
+
+								quantile_llist_index_reset(qll);
+							}
+						}
+						/* AL-GT */
+						else {
+							RASTER_DEBUGF(4, "deleting first element %f from list", qll->tail->value);
+
+							if (NULL != qll->tail->prev) {
+								qle = qll->tail->prev;
+								qll->sum1 -= qll->tail->count;
+								qll->sum2 = qll->sum1 - qle->count;
+								quantile_llist_index_delete(qll, qll->tail);
+								quantile_llist_delete(qll->tail);
+								qll->tail = qle;
+								qll->count--;
+							}
+							else {
+								quantile_llist_delete(qll->tail);
+								qll->head = NULL;
+								qll->tail = NULL;
+								qll->sum1 = 0;
+								qll->sum2 = 0;
+								qll->count = 0;
+
+								quantile_llist_index_reset(qll);
+							}
+						}
+					}
+
+					RASTER_DEBUGF(5, "qll after: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
+						qll->algeq, qll->quantile, qll->count, qll->tau, qll->sum1, qll->sum2);
+					RASTER_DEBUGF(5, "qll after: (head, tail) = (%p, %p)\n\n", qll->head, qll->tail);
+				}
+
+			}
+			else {
+				RASTER_DEBUGF(5, "skipping value at (x, y) = (%d, %d)", x, y);
+			}
+
+			z++;
+		}
+	}
+
+	/* process quantiles */
+	*rtn_count = *qlls_count / 2;
+	rtn = rtalloc(sizeof(struct rt_quantile_t) * *rtn_count);
+	if (NULL == rtn) return NULL;
+
+	RASTER_DEBUGF(3, "returning %d quantiles", *rtn_count);
+	for (i = 0, k = 0; i < *qlls_count; i++) {
+		qll = &((*qlls)[i]);
+
+		exists = 0;
+		for (x = 0; x < k; x++) {
+			if (FLT_EQ(qll->quantile, rtn[x].quantile)) {
+				exists = 1;
+				break;
+			}
+		}
+		if (exists) continue;
+
+		RASTER_DEBUGF(5, "qll: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
+			qll->algeq, qll->quantile, qll->count, qll->tau, qll->sum1, qll->sum2);
+		RASTER_DEBUGF(5, "qll: (head, tail) = (%p, %p)", qll->head, qll->tail);
+
+		rtn[k].quantile = qll->quantile;
+		rtn[k].has_value = 0;
+
+		/* check that qll->head and qll->tail have value */
+		if (qll->head == NULL || qll->tail == NULL)
+			continue;
+
+		/* AL-GEQ */
+		if (qll->algeq)
+			qle = qll->head;
+		/* AM-GT */
+		else
+			qle = qll->tail;
+
+		exists = 0;
+		for (j = i + 1; j < *qlls_count; j++) {
+			if (FLT_EQ((*qlls)[j].quantile, qll->quantile)) {
+
+				RASTER_DEBUGF(5, "qlls[%d]: (algeq, quantile, count, tau, sum1, sum2) = (%d, %f, %d, %d, %d, %d)",
+					j, (*qlls)[j].algeq, (*qlls)[j].quantile, (*qlls)[j].count, (*qlls)[j].tau, (*qlls)[j].sum1, (*qlls)[j].sum2);
+				RASTER_DEBUGF(5, "qlls[%d]: (head, tail) = (%p, %p)", j, (*qlls)[j].head, (*qlls)[j].tail);
+
+				exists = 1;
+				break;
+			}
+		}
+
+		/* weighted average for quantile */
+		if (exists) {
+			if ((*qlls)[j].algeq) {
+				rtn[k].value = ((qle->value * qle->count) + ((*qlls)[j].head->value * (*qlls)[j].head->count)) / (qle->count + (*qlls)[j].head->count);
+				RASTER_DEBUGF(5, "qlls[%d].head: (value, count) = (%f, %d)", j, (*qlls)[j].head->value, (*qlls)[j].head->count);
+			}
+			else {
+				rtn[k].value = ((qle->value * qle->count) + ((*qlls)[j].tail->value * (*qlls)[j].tail->count)) / (qle->count + (*qlls)[j].tail->count);
+				RASTER_DEBUGF(5, "qlls[%d].tail: (value, count) = (%f, %d)", j, (*qlls)[j].tail->value, (*qlls)[j].tail->count);
+			}
+		}
+		/* straight value for quantile */
+		else {
+			rtn[k].value = qle->value;
+		}
+		rtn[k].has_value = 1;
+		RASTER_DEBUGF(3, "(quantile, value) = (%f, %f)\n\n", rtn[k].quantile, rtn[k].value);
+
+		k++;
+	}
+
+	RASTER_DEBUG(3, "done");
+	return rtn;
+}
+
+/******************************************************************************
+* rt_band_get_value_count()
+******************************************************************************/
+
+/**
+ * Count the number of times provided value(s) occur in
+ * the band
+ *
+ * @param band : the band to query for minimum and maximum pixel values
+ * @param exclude_nodata_value : if non-zero, ignore nodata values
+ * @param search_values : array of values to count
+ * @param search_values_count : the number of search values
+ * @param roundto : the decimal place to round the values to
+ * @param rtn_total : the number of pixels examined in the band
+ * @param rtn_count : the number of value counts being returned
+ *
+ * @return the number of times the provide value(s) occur or NULL
+ */
+rt_valuecount
+rt_band_get_value_count(
+	rt_band band, int exclude_nodata_value,
+	double *search_values, uint32_t search_values_count, double roundto,
+	uint32_t *rtn_total, uint32_t *rtn_count
+) {
+	rt_valuecount vcnts = NULL;
+	rt_pixtype pixtype = PT_END;
+	uint8_t *data = NULL;
+	double nodata = 0;
+
+	int scale = 0;
+	int doround = 0;
+	double tmpd = 0;
+	int i = 0;
+
+	uint32_t x = 0;
+	uint32_t y = 0;
+	int rtn;
+	double pxlval;
+	int isnodata = 0;
+	double rpxlval;
+	uint32_t total = 0;
+	int vcnts_count = 0;
+	int new_valuecount = 0;
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	clock_t start, stop;
+	double elapsed = 0;
+#endif
+
+	RASTER_DEBUG(3, "starting");
+#if POSTGIS_DEBUG_LEVEL > 0
+	start = clock();
+#endif
+
+	assert(NULL != band);
+	assert(NULL != rtn_count);
+
+	data = rt_band_get_data(band);
+	if (data == NULL) {
+		rterror("rt_band_get_summary_stats: Cannot get band data");
+		return NULL;
+	}
+
+	pixtype = band->pixtype;
+
+	if (rt_band_get_hasnodata_flag(band)) {
+		rt_band_get_nodata(band, &nodata);
+		RASTER_DEBUGF(3, "hasnodata, nodataval = 1, %f", nodata);
+	}
+	else {
+		exclude_nodata_value = 0;
+		RASTER_DEBUG(3, "hasnodata, nodataval = 0, 0");
+	}
+
+	RASTER_DEBUGF(3, "exclude_nodata_value = %d", exclude_nodata_value);
+
+	/* process roundto */
+	if (roundto < 0 || FLT_EQ(roundto, 0.0)) {
+		roundto = 0;
+		scale = 0;
+	}
+	/* tenths, hundredths, thousandths, etc */
+	else if (roundto < 1) {
+    switch (pixtype) {
+			/* integer band types don't have digits after the decimal place */
+			case PT_1BB:
+			case PT_2BUI:
+			case PT_4BUI:
+			case PT_8BSI:
+			case PT_8BUI:
+			case PT_16BSI:
+			case PT_16BUI:
+			case PT_32BSI:
+			case PT_32BUI:
+				roundto = 0;
+				break;
+			/* floating points, check the rounding */
+			case PT_32BF:
+			case PT_64BF:
+				for (scale = 0; scale <= 20; scale++) {
+					tmpd = roundto * pow(10, scale);
+					if (FLT_EQ((tmpd - ((int) tmpd)), 0.0)) break;
+				}
+				break;
+			case PT_END:
+				break;
+		}
+	}
+	/* ones, tens, hundreds, etc */
+	else {
+		for (scale = 0; scale >= -20; scale--) {
+			tmpd = roundto * pow(10, scale);
+			if (tmpd < 1 || FLT_EQ(tmpd, 1.0)) {
+				if (scale == 0) doround = 1;
+				break;
+			}
+		}
+	}
+
+	if (scale != 0 || doround)
+		doround = 1;
+	else
+		doround = 0;
+	RASTER_DEBUGF(3, "scale = %d", scale);
+	RASTER_DEBUGF(3, "doround = %d", doround);
+
+	/* process search_values */
+	if (search_values_count > 0 && NULL != search_values) {
+		vcnts = (rt_valuecount) rtalloc(sizeof(struct rt_valuecount_t) * search_values_count);
+		if (NULL == vcnts) {
+			rterror("rt_band_get_count_of_values: Could not allocate memory for value counts");
+			*rtn_count = 0;
+			return NULL;
+		}
+
+		for (i = 0; i < search_values_count; i++) {
+			vcnts[i].count = 0;
+			vcnts[i].percent = 0;
+			if (!doround)
+				vcnts[i].value = search_values[i];
+			else
+				vcnts[i].value = ROUND(search_values[i], scale);
+		}
+		vcnts_count = i;
+	}
+	else
+		search_values_count = 0;
+	RASTER_DEBUGF(3, "search_values_count = %d", search_values_count);
+
+	/* entire band is nodata */
+	if (rt_band_get_isnodata_flag(band) != FALSE) {
+		if (exclude_nodata_value) {
+			rtwarn("All pixels of band have the NODATA value");
+			return NULL;
+		}
+		else {
+			if (search_values_count > 0) {
+				/* check for nodata match */
+				for (i = 0; i < search_values_count; i++) {
+					if (!doround)
+						tmpd = nodata;
+					else
+						tmpd = ROUND(nodata, scale);
+
+					if (FLT_NEQ(tmpd, vcnts[i].value))
+						continue;
+
+					vcnts[i].count = band->width * band->height;
+					if (NULL != rtn_total) *rtn_total = vcnts[i].count;
+					vcnts->percent = 1.0;
+				}
+
+				*rtn_count = vcnts_count;
+			}
+			/* no defined search values */
+			else {
+				vcnts = (rt_valuecount) rtalloc(sizeof(struct rt_valuecount_t));
+				if (NULL == vcnts) {
+					rterror("rt_band_get_count_of_values: Could not allocate memory for value counts");
+					*rtn_count = 0;
+					return NULL;
+				}
+
+				vcnts->value = nodata;
+				vcnts->count = band->width * band->height;
+				if (NULL != rtn_total) *rtn_total = vcnts[i].count;
+				vcnts->percent = 1.0;
+
+				*rtn_count = 1;
+			}
+
+			return vcnts;
+		}
+	}
+
+	for (x = 0; x < band->width; x++) {
+		for (y = 0; y < band->height; y++) {
+			rtn = rt_band_get_pixel(band, x, y, &pxlval, &isnodata);
+
+			/* error getting value, continue */
+			if (rtn != ES_NONE)
+				continue;
+
+			if (!exclude_nodata_value || (exclude_nodata_value && !isnodata)) {
+				total++;
+				if (doround) {
+					rpxlval = ROUND(pxlval, scale);
+				}
+				else
+					rpxlval = pxlval;
+				RASTER_DEBUGF(5, "(pxlval, rpxlval) => (%0.6f, %0.6f)", pxlval, rpxlval);
+
+				new_valuecount = 1;
+				/* search for match in existing valuecounts */
+				for (i = 0; i < vcnts_count; i++) {
+					/* match found */
+					if (FLT_EQ(vcnts[i].value, rpxlval)) {
+						vcnts[i].count++;
+						new_valuecount = 0;
+						RASTER_DEBUGF(5, "(value, count) => (%0.6f, %d)", vcnts[i].value, vcnts[i].count);
+						break;
+					}
+				}
+
+				/*
+					don't add new valuecount either because
+						- no need for new one
+						- user-defined search values
+				*/
+				if (!new_valuecount || search_values_count > 0) continue;
+
+				/* add new valuecount */
+				vcnts = rtrealloc(vcnts, sizeof(struct rt_valuecount_t) * (vcnts_count + 1));
+				if (NULL == vcnts) {
+					rterror("rt_band_get_count_of_values: Could not allocate memory for value counts");
+					*rtn_count = 0;
+					return NULL;
+				}
+
+				vcnts[vcnts_count].value = rpxlval;
+				vcnts[vcnts_count].count = 1;
+				vcnts[vcnts_count].percent = 0;
+				RASTER_DEBUGF(5, "(value, count) => (%0.6f, %d)", vcnts[vcnts_count].value, vcnts[vcnts_count].count);
+				vcnts_count++;
+			}
+		}
+	}
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	stop = clock();
+	elapsed = ((double) (stop - start)) / CLOCKS_PER_SEC;
+	RASTER_DEBUGF(3, "elapsed time = %0.4f", elapsed);
+#endif
+
+	for (i = 0; i < vcnts_count; i++) {
+		vcnts[i].percent = (double) vcnts[i].count / total;
+		RASTER_DEBUGF(5, "(value, count) => (%0.6f, %d)", vcnts[i].value, vcnts[i].count);
+	}
+
+	RASTER_DEBUG(3, "done");
+	if (NULL != rtn_total) *rtn_total = total;
+	*rtn_count = vcnts_count;
+	return vcnts;
+}
diff --git a/raster/rt_core/rt_util.c b/raster/rt_core/rt_util.c
new file mode 100644
index 0000000..81f98c0
--- /dev/null
+++ b/raster/rt_core/rt_util.c
@@ -0,0 +1,717 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+
+uint8_t
+rt_util_clamp_to_1BB(double value) {
+    return (uint8_t)fmin(fmax((value), 0), POSTGIS_RT_1BBMAX);
+}
+
+uint8_t
+rt_util_clamp_to_2BUI(double value) {
+    return (uint8_t)fmin(fmax((value), 0), POSTGIS_RT_2BUIMAX);
+}
+
+uint8_t
+rt_util_clamp_to_4BUI(double value) {
+    return (uint8_t)fmin(fmax((value), 0), POSTGIS_RT_4BUIMAX);
+}
+
+int8_t
+rt_util_clamp_to_8BSI(double value) {
+    return (int8_t)fmin(fmax((value), SCHAR_MIN), SCHAR_MAX);
+}
+
+uint8_t
+rt_util_clamp_to_8BUI(double value) {
+    return (uint8_t)fmin(fmax((value), 0), UCHAR_MAX);
+}
+
+int16_t
+rt_util_clamp_to_16BSI(double value) {
+    return (int16_t)fmin(fmax((value), SHRT_MIN), SHRT_MAX);
+}
+
+uint16_t
+rt_util_clamp_to_16BUI(double value) {
+    return (uint16_t)fmin(fmax((value), 0), USHRT_MAX);
+}
+
+int32_t
+rt_util_clamp_to_32BSI(double value) {
+    return (int32_t)fmin(fmax((value), INT_MIN), INT_MAX);
+}
+
+uint32_t
+rt_util_clamp_to_32BUI(double value) {
+    return (uint32_t)fmin(fmax((value), 0), UINT_MAX);
+}
+
+float
+rt_util_clamp_to_32F(double value) {
+    return (float)fmin(fmax((value), -FLT_MAX), FLT_MAX);
+}
+
+/**
+ * Convert cstring name to GDAL Resample Algorithm
+ *
+ * @param algname : cstring name to convert
+ *
+ * @return valid GDAL resampling algorithm
+ */
+GDALResampleAlg
+rt_util_gdal_resample_alg(const char *algname) {
+	assert(algname != NULL && strlen(algname) > 0);
+
+	if (strcmp(algname, "NEARESTNEIGHBOUR") == 0)
+		return GRA_NearestNeighbour;
+	else if (strcmp(algname, "NEARESTNEIGHBOR") == 0)
+		return GRA_NearestNeighbour;
+	else if (strcmp(algname, "BILINEAR") == 0)
+		return GRA_Bilinear;
+	else if (strcmp(algname, "CUBICSPLINE") == 0)
+		return GRA_CubicSpline;
+	else if (strcmp(algname, "CUBIC") == 0)
+		return GRA_Cubic;
+	else if (strcmp(algname, "LANCZOS") == 0)
+		return GRA_Lanczos;
+
+	return GRA_NearestNeighbour;
+}
+
+/**
+ * Convert rt_pixtype to GDALDataType
+ *
+ * @param pt : pixeltype to convert
+ *
+ * @return valid GDALDataType
+ */
+GDALDataType
+rt_util_pixtype_to_gdal_datatype(rt_pixtype pt) {
+	switch (pt) {
+		case PT_1BB:
+		case PT_2BUI:
+		case PT_4BUI:
+		case PT_8BUI:
+			return GDT_Byte;
+		case PT_8BSI:
+		case PT_16BSI:
+			return GDT_Int16;
+		case PT_16BUI:
+			return GDT_UInt16;
+		case PT_32BSI:
+			return GDT_Int32;
+		case PT_32BUI:
+			return GDT_UInt32;
+		case PT_32BF:
+			return GDT_Float32;
+		case PT_64BF:
+			return GDT_Float64;
+		default:
+			return GDT_Unknown;
+	}
+
+	return GDT_Unknown;
+}
+
+/**
+ * Convert GDALDataType to rt_pixtype
+ *
+ * @param gdt : GDAL datatype to convert
+ *
+ * @return valid rt_pixtype
+ */
+rt_pixtype
+rt_util_gdal_datatype_to_pixtype(GDALDataType gdt) {
+	switch (gdt) {
+		case GDT_Byte:
+			return PT_8BUI;
+		case GDT_UInt16:
+			return PT_16BUI;
+		case GDT_Int16:
+			return PT_16BSI;
+		case GDT_UInt32:
+			return PT_32BUI;
+		case GDT_Int32:
+			return PT_32BSI;
+		case GDT_Float32:
+			return PT_32BF;
+		case GDT_Float64:
+			return PT_64BF;
+		default:
+			return PT_END;
+	}
+
+	return PT_END;
+}
+
+/*
+	get GDAL runtime version information
+*/
+const char*
+rt_util_gdal_version(const char *request) {
+	if (NULL == request || !strlen(request))
+		return GDALVersionInfo("RELEASE_NAME");
+	else
+		return GDALVersionInfo(request);
+}
+
+/*
+	computed extent type
+*/
+rt_extenttype
+rt_util_extent_type(const char *name) {
+	assert(name != NULL && strlen(name) > 0);
+
+	if (strcmp(name, "UNION") == 0)
+		return ET_UNION;
+	else if (strcmp(name, "FIRST") == 0)
+		return ET_FIRST;
+	else if (strcmp(name, "SECOND") == 0)
+		return ET_SECOND;
+	else if (strcmp(name, "LAST") == 0)
+		return ET_LAST;
+	else if (strcmp(name, "CUSTOM") == 0)
+		return ET_CUSTOM;
+	else
+		return ET_INTERSECTION;
+}
+
+/*
+	convert the spatial reference string from a GDAL recognized format to either WKT or Proj4
+*/
+char*
+rt_util_gdal_convert_sr(const char *srs, int proj4) {
+	OGRSpatialReferenceH hsrs;
+	char *rtn = NULL;
+
+	assert(srs != NULL);
+
+	hsrs = OSRNewSpatialReference(NULL);
+	if (OSRSetFromUserInput(hsrs, srs) == OGRERR_NONE) {
+		if (proj4)
+			OSRExportToProj4(hsrs, &rtn);
+		else
+			OSRExportToWkt(hsrs, &rtn);
+	}
+	else {
+		rterror("rt_util_gdal_convert_sr: Could not process the provided srs: %s", srs);
+		return NULL;
+	}
+
+	OSRDestroySpatialReference(hsrs);
+	if (rtn == NULL) {
+		rterror("rt_util_gdal_convert_sr: Could not process the provided srs: %s", srs);
+		return NULL;
+	}
+
+	return rtn;
+}
+
+/*
+	is the spatial reference string supported by GDAL
+*/
+int
+rt_util_gdal_supported_sr(const char *srs) {
+	OGRSpatialReferenceH hsrs;
+	OGRErr rtn = OGRERR_NONE;
+
+	assert(srs != NULL);
+
+	hsrs = OSRNewSpatialReference(NULL);
+	rtn = OSRSetFromUserInput(hsrs, srs);
+	OSRDestroySpatialReference(hsrs);
+
+	if (rtn == OGRERR_NONE)
+		return 1;
+	else
+		return 0;
+}
+
+/**
+ * Get auth name and code
+ *
+ * @param authname: authority organization of code. calling function
+ * is expected to free the memory allocated for value
+ * @param authcode: code assigned by authority organization. calling function
+ * is expected to free the memory allocated for value
+ *
+ * @return ES_NONE on success, ES_ERROR on error
+ */
+rt_errorstate
+rt_util_gdal_sr_auth_info(GDALDatasetH hds, char **authname, char **authcode) {
+	const char *srs = NULL;
+
+	assert(authname != NULL);
+	assert(authcode != NULL);
+
+	*authname = NULL;
+	*authcode = NULL;
+
+	srs = GDALGetProjectionRef(hds);
+	if (srs != NULL && srs[0] != '\0') {
+		OGRSpatialReferenceH hSRS = OSRNewSpatialReference(NULL);
+
+		if (OSRSetFromUserInput(hSRS, srs) == OGRERR_NONE) {
+			const char* pszAuthorityName = OSRGetAuthorityName(hSRS, NULL);
+			const char* pszAuthorityCode = OSRGetAuthorityCode(hSRS, NULL);
+
+			if (pszAuthorityName != NULL && pszAuthorityCode != NULL) {
+				*authname = rtalloc(sizeof(char) * (strlen(pszAuthorityName) + 1));
+				*authcode = rtalloc(sizeof(char) * (strlen(pszAuthorityCode) + 1));
+
+				if (*authname == NULL || *authcode == NULL) {
+					rterror("rt_util_gdal_sr_auth_info: Could not allocate memory for auth name and code");
+					if (*authname != NULL) rtdealloc(*authname);
+					if (*authcode != NULL) rtdealloc(*authcode);
+					OSRDestroySpatialReference(hSRS);
+					return ES_ERROR;
+				}
+
+				strncpy(*authname, pszAuthorityName, strlen(pszAuthorityName) + 1);
+				strncpy(*authcode, pszAuthorityCode, strlen(pszAuthorityCode) + 1);
+			}
+		}
+
+		OSRDestroySpatialReference(hSRS);
+	}
+
+	return ES_NONE;
+}
+
+/*
+	is GDAL configured correctly?
+*/
+int rt_util_gdal_configured(void) {
+
+	/* set of EPSG codes */
+	if (!rt_util_gdal_supported_sr("EPSG:4326"))
+		return 0;
+	if (!rt_util_gdal_supported_sr("EPSG:4269"))
+		return 0;
+	if (!rt_util_gdal_supported_sr("EPSG:4267"))
+		return 0;
+	if (!rt_util_gdal_supported_sr("EPSG:3310"))
+		return 0;
+	if (!rt_util_gdal_supported_sr("EPSG:2163"))
+		return 0;
+
+	return 1;
+}
+
+/*
+	register all GDAL drivers
+*/
+int
+rt_util_gdal_register_all(int force_register_all) {
+	static int registered = 0;
+
+	if (registered && !force_register_all) {
+		RASTER_DEBUG(3, "Already called once... not calling GDALAllRegister");
+		return 0;
+	}
+
+	RASTER_DEBUG(3, "Calling GDALAllRegister");
+	GDALAllRegister();
+	registered = 1;
+
+	return 1;
+}
+
+/*
+	is the driver registered?
+*/
+int
+rt_util_gdal_driver_registered(const char *drv) {
+	int count = GDALGetDriverCount();
+	int i = 0;
+	GDALDriverH hdrv = NULL;
+
+	if (drv == NULL || !strlen(drv) || count < 1)
+		return 0;
+
+	for (i = 0; i < count; i++) {
+		hdrv = GDALGetDriver(i);
+		if (hdrv == NULL) continue;
+
+		if (strcmp(drv, GDALGetDriverShortName(hdrv)) == 0)
+			return 1;
+	}
+
+	return 0;
+}
+
+/* variable for PostgreSQL GUC: postgis.gdal_enabled_drivers */
+char *gdal_enabled_drivers = NULL;
+
+/*
+	wrapper for GDALOpen and GDALOpenShared
+*/
+GDALDatasetH
+rt_util_gdal_open(const char *fn, GDALAccess fn_access, int shared) {
+	assert(NULL != fn);
+
+	if (gdal_enabled_drivers != NULL) {
+		if (strstr(gdal_enabled_drivers, GDAL_DISABLE_ALL) != NULL) {
+			rterror("rt_util_gdal_open: Cannot open file. All GDAL drivers disabled");
+			return NULL;
+		}
+		else if (strstr(gdal_enabled_drivers, GDAL_ENABLE_ALL) != NULL) {
+			/* do nothing */
+		}
+		else if (
+			(strstr(fn, "/vsicurl") != NULL) &&
+			(strstr(gdal_enabled_drivers, GDAL_VSICURL) == NULL)
+		) {
+			rterror("rt_util_gdal_open: Cannot open VSICURL file. VSICURL disabled");
+			return NULL;
+		}
+	}
+
+	if (shared)
+		return GDALOpenShared(fn, fn_access);
+	else
+		return GDALOpen(fn, fn_access);
+}
+
+void
+rt_util_from_ogr_envelope(
+	OGREnvelope	env,
+	rt_envelope *ext
+) {
+	assert(ext != NULL);
+
+	ext->MinX = env.MinX;
+	ext->MaxX = env.MaxX;
+	ext->MinY = env.MinY;
+	ext->MaxY = env.MaxY;
+
+	ext->UpperLeftX = env.MinX;
+	ext->UpperLeftY = env.MaxY;
+}
+
+void
+rt_util_to_ogr_envelope(
+	rt_envelope ext,
+	OGREnvelope	*env
+) {
+	assert(env != NULL);
+
+	env->MinX = ext.MinX;
+	env->MaxX = ext.MaxX;
+	env->MinY = ext.MinY;
+	env->MaxY = ext.MaxY;
+}
+
+LWPOLY *
+rt_util_envelope_to_lwpoly(
+	rt_envelope env
+) {
+	LWPOLY *npoly = NULL;
+	POINTARRAY **rings = NULL;
+	POINTARRAY *pts = NULL;
+	POINT4D p4d;
+
+	rings = (POINTARRAY **) rtalloc(sizeof (POINTARRAY*));
+	if (!rings) {
+		rterror("rt_util_envelope_to_lwpoly: Out of memory building envelope's geometry");
+		return NULL;
+	}
+	rings[0] = ptarray_construct(0, 0, 5);
+	if (!rings[0]) {
+		rterror("rt_util_envelope_to_lwpoly: Out of memory building envelope's geometry ring");
+		return NULL;
+	}
+
+	pts = rings[0];
+	
+	/* Upper-left corner (first and last points) */
+	p4d.x = env.MinX;
+	p4d.y = env.MaxY;
+	ptarray_set_point4d(pts, 0, &p4d);
+	ptarray_set_point4d(pts, 4, &p4d);
+
+	/* Upper-right corner (we go clockwise) */
+	p4d.x = env.MaxX;
+	p4d.y = env.MaxY;
+	ptarray_set_point4d(pts, 1, &p4d);
+
+	/* Lower-right corner */
+	p4d.x = env.MaxX;
+	p4d.y = env.MinY;
+	ptarray_set_point4d(pts, 2, &p4d);
+
+	/* Lower-left corner */
+	p4d.x = env.MinX;
+	p4d.y = env.MinY;
+	ptarray_set_point4d(pts, 3, &p4d);
+
+	npoly = lwpoly_construct(SRID_UNKNOWN, 0, 1, rings);
+	if (npoly == NULL) {
+		rterror("rt_util_envelope_to_lwpoly: Could not build envelope's geometry");
+		return NULL;
+	}
+
+	return npoly;
+}
+
+int
+rt_util_same_geotransform_matrix(double *gt1, double *gt2) {
+	int k = 0;
+
+	if (gt1 == NULL || gt2 == NULL)
+		return FALSE;
+
+	for (k = 0; k < 6; k++) {
+		if (FLT_NEQ(gt1[k], gt2[k]))
+			return FALSE;
+	}
+
+	return TRUE;
+}
+
+/* coordinates in RGB and HSV are floating point values between 0 and 1 */
+rt_errorstate
+rt_util_rgb_to_hsv(double rgb[3], double hsv[3]) {
+	int i;
+
+	double minc;
+	double maxc;
+
+	double h = 0.;
+	double s = 0.;
+	double v = 0.;
+
+	minc = rgb[0];
+	maxc = rgb[0];
+
+	/* get min and max values from RGB */
+	for (i = 1; i < 3; i++) {
+		if (rgb[i] > maxc)
+			maxc = rgb[i];
+		if (rgb[i] < minc)
+			minc = rgb[i];
+	}
+	v = maxc;
+
+	if (maxc != minc) {
+		double diff = 0.;
+		double rc = 0.;
+		double gc = 0.;
+		double bc = 0.;
+		double junk = 0.;
+
+		diff = maxc - minc;
+		s = diff / maxc;
+		rc = (maxc - rgb[0]) / diff;
+		gc = (maxc - rgb[1]) / diff;
+		bc = (maxc - rgb[2]) / diff;
+
+		if (DBL_EQ(rgb[0], maxc))
+			h = bc - gc;
+		else if (DBL_EQ(rgb[1], maxc))
+			h = 2.0 + rc - bc;
+		else
+			h = 4.0 + gc - rc;
+
+		h = modf((h / 6.0), &junk);
+	}
+
+	hsv[0] = h;
+	hsv[1] = s;
+	hsv[2] = v;
+
+	return ES_NONE;
+}
+
+/* coordinates in RGB and HSV are floating point values between 0 and 1 */
+rt_errorstate
+rt_util_hsv_to_rgb(double hsv[3], double rgb[3]) {
+	double r = 0;
+	double g = 0;
+	double b = 0;
+	double v = hsv[2];
+
+	if (DBL_EQ(hsv[1], 0.))
+		r = g = b = v;
+	else {
+		double i;
+		double f;
+		double p;
+		double q;
+		double t;
+
+		int a;
+
+		i = floor(hsv[0] * 6.);
+		f = (hsv[0] * 6.0) - i;
+		p = v * (1. - hsv[1]);
+		q = v * (1. - hsv[1] * f);
+		t = v * (1. - hsv[1] * (1. - f));
+
+		a = (int) i;
+		switch (a) {
+			case 1:
+				r = q;
+				g = v;
+				b = p;
+				break;
+			case 2:
+				r = p;
+				g = v;
+				b = t;
+				break;
+			case 3:
+				r = p;
+				g = q;
+				b = v;
+				break;
+			case 4:
+				r = t;
+				g = p;
+				b = v;
+				break;
+			case 5:
+				r = v;
+				g = p;
+				b = q;
+				break;
+			case 0:
+			case 6:
+			default:
+				r = v;
+				g = t;
+				b = p;
+				break;
+		}
+	}
+
+	rgb[0] = r;
+	rgb[1] = g;
+	rgb[2] = b;
+
+	return ES_NONE;
+}
+
+int
+rt_util_dbl_trunc_warning(
+	double initialvalue,
+	int32_t checkvalint, uint32_t checkvaluint,
+	float checkvalfloat, double checkvaldouble,
+	rt_pixtype pixtype
+) {
+	int result = 0;
+
+	switch (pixtype) {
+		case PT_1BB:
+		case PT_2BUI:
+		case PT_4BUI:
+		case PT_8BSI:
+		case PT_8BUI:
+		case PT_16BSI:
+		case PT_16BUI:
+		case PT_32BSI: {
+			if (fabs(checkvalint - initialvalue) >= 1) {
+#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
+				rtwarn("Value set for %s band got clamped from %f to %d",
+					rt_pixtype_name(pixtype),
+					initialvalue, checkvalint
+				);
+#endif
+				result = 1;
+			}
+			else if (FLT_NEQ(checkvalint, initialvalue)) {
+#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
+				rtwarn("Value set for %s band got truncated from %f to %d",
+					rt_pixtype_name(pixtype),
+					initialvalue, checkvalint
+				);
+#endif
+				result = 1;
+			}
+			break;
+		}
+		case PT_32BUI: {
+			if (fabs(checkvaluint - initialvalue) >= 1) {
+#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
+				rtwarn("Value set for %s band got clamped from %f to %u",
+					rt_pixtype_name(pixtype),
+					initialvalue, checkvaluint
+				);
+#endif
+				result = 1;
+			}
+			else if (FLT_NEQ(checkvaluint, initialvalue)) {
+#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
+				rtwarn("Value set for %s band got truncated from %f to %u",
+					rt_pixtype_name(pixtype),
+					initialvalue, checkvaluint
+				);
+#endif
+				result = 1;
+			}
+			break;
+		}
+		case PT_32BF: {
+			/*
+				For float, because the initial value is a double,
+				there is very often a difference between the desired value and the obtained one
+			*/
+			if (FLT_NEQ(checkvalfloat, initialvalue)) {
+#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
+				rtwarn("Value set for %s band got converted from %f to %f",
+					rt_pixtype_name(pixtype),
+					initialvalue, checkvalfloat
+				);
+#endif
+				result = 1;
+			}
+			break;
+		}
+		case PT_64BF: {
+			if (FLT_NEQ(checkvaldouble, initialvalue)) {
+#if POSTGIS_RASTER_WARN_ON_TRUNCATION > 0
+				rtwarn("Value set for %s band got converted from %f to %f",
+					rt_pixtype_name(pixtype),
+					initialvalue, checkvaldouble
+				);
+#endif
+				result = 1;
+			}
+			break;
+		}
+		case PT_END:
+			break;
+	}
+
+	return result;
+}
+
diff --git a/raster/rt_core/rt_warp.c b/raster/rt_core/rt_warp.c
new file mode 100644
index 0000000..ae220f0
--- /dev/null
+++ b/raster/rt_core/rt_warp.c
@@ -0,0 +1,975 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2013 Bborie Park <dustymugs at gmail.com>
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "../../postgis_config.h"
+/* #define POSTGIS_DEBUG_LEVEL 4 */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+
+/******************************************************************************
+* rt_raster_gdal_warp()
+******************************************************************************/
+
+typedef struct _rti_warp_arg_t* _rti_warp_arg;
+struct _rti_warp_arg_t {
+
+	struct {
+		GDALDriverH drv;
+		GDALDatasetH ds;
+		char *srs;
+		int destroy_drv;
+	} src, dst;
+
+	GDALWarpOptions *wopts;
+
+	struct {
+		struct {
+			char **item;
+			int len;
+		} option;
+
+		struct {
+			void *transform;
+			void *imgproj;
+			void *approx;
+		} arg;
+
+		GDALTransformerFunc func;
+	} transform;
+
+};
+
+static _rti_warp_arg
+_rti_warp_arg_init() {
+	_rti_warp_arg arg = NULL;
+
+	arg = rtalloc(sizeof(struct _rti_warp_arg_t));
+	if (arg == NULL) {
+		rterror("_rti_warp_arg_init: Could not allocate memory for _rti_warp_arg");
+		return NULL;
+	}
+
+	arg->src.drv = NULL;
+	arg->src.destroy_drv = 0;
+	arg->src.ds = NULL;
+	arg->src.srs = NULL;
+
+	arg->dst.drv = NULL;
+	arg->dst.destroy_drv = 0;
+	arg->dst.ds = NULL;
+	arg->dst.srs = NULL;
+
+	arg->wopts = NULL;
+
+	arg->transform.option.item = NULL;
+	arg->transform.option.len = 0;
+
+	arg->transform.arg.transform = NULL;
+	arg->transform.arg.imgproj = NULL;
+	arg->transform.arg.approx = NULL;
+
+	arg->transform.func = NULL;
+
+	return arg;
+}
+
+static void
+_rti_warp_arg_destroy(_rti_warp_arg arg) {
+	int i = 0;
+
+	if (arg->dst.ds != NULL)
+		GDALClose(arg->dst.ds);
+	if (arg->dst.srs != NULL)
+		CPLFree(arg->dst.srs);
+
+	if (arg->dst.drv != NULL && arg->dst.destroy_drv) {
+		GDALDeregisterDriver(arg->dst.drv);
+		GDALDestroyDriver(arg->dst.drv);
+	}
+
+	if (arg->src.ds != NULL)
+		GDALClose(arg->src.ds);
+	if (arg->src.srs != NULL)
+		CPLFree(arg->src.srs);
+
+	if (arg->src.drv != NULL && arg->src.destroy_drv) {
+		GDALDeregisterDriver(arg->src.drv);
+		GDALDestroyDriver(arg->src.drv);
+	}
+
+	if (arg->transform.func == GDALApproxTransform) {
+		if (arg->transform.arg.imgproj != NULL)
+			GDALDestroyGenImgProjTransformer(arg->transform.arg.imgproj);
+	}
+
+	if (arg->wopts != NULL)
+		GDALDestroyWarpOptions(arg->wopts);
+
+	if (arg->transform.option.len > 0 && arg->transform.option.item != NULL) {
+		for (i = 0; i < arg->transform.option.len; i++) {
+			if (arg->transform.option.item[i] != NULL)
+				rtdealloc(arg->transform.option.item[i]);
+		}
+		rtdealloc(arg->transform.option.item);
+	}
+
+	rtdealloc(arg);
+	arg = NULL;
+}
+
+/**
+ * Return a warped raster using GDAL Warp API
+ *
+ * @param raster : raster to transform
+ * @param src_srs : the raster's coordinate system in OGC WKT
+ * @param dst_srs : the warped raster's coordinate system in OGC WKT
+ * @param scale_x : the x size of pixels of the warped raster's pixels in
+ *   units of dst_srs
+ * @param scale_y : the y size of pixels of the warped raster's pixels in
+ *   units of dst_srs
+ * @param width : the number of columns of the warped raster.  note that
+ *   width/height CANNOT be used with scale_x/scale_y
+ * @param height : the number of rows of the warped raster.  note that
+ *   width/height CANNOT be used with scale_x/scale_y
+ * @param ul_xw : the X value of upper-left corner of the warped raster in
+ *   units of dst_srs
+ * @param ul_yw : the Y value of upper-left corner of the warped raster in
+ *   units of dst_srs
+ * @param grid_xw : the X value of point on a grid to align warped raster
+ *   to in units of dst_srs
+ * @param grid_yw : the Y value of point on a grid to align warped raster
+ *   to in units of dst_srs
+ * @param skew_x : the X skew of the warped raster in units of dst_srs
+ * @param skew_y : the Y skew of the warped raster in units of dst_srs
+ * @param resample_alg : the resampling algorithm
+ * @param max_err : maximum error measured in input pixels permitted
+ *   (0.0 for exact calculations)
+ *
+ * @return the warped raster or NULL
+ */
+rt_raster rt_raster_gdal_warp(
+	rt_raster raster,
+	const char *src_srs, const char *dst_srs,
+	double *scale_x, double *scale_y,
+	int *width, int *height,
+	double *ul_xw, double *ul_yw,
+	double *grid_xw, double *grid_yw,
+	double *skew_x, double *skew_y,
+	GDALResampleAlg resample_alg, double max_err
+) {
+	CPLErr cplerr;
+	char *dst_options[] = {"SUBCLASS=VRTWarpedDataset", NULL};
+	_rti_warp_arg arg = NULL;
+
+	int hasnodata = 0;
+
+	GDALRasterBandH band;
+	rt_band rtband = NULL;
+	rt_pixtype pt = PT_END;
+	GDALDataType gdal_pt = GDT_Unknown;
+	double nodata = 0.0;
+
+	double _gt[6] = {0};
+	double dst_extent[4];
+	rt_envelope extent;
+
+	int _dim[2] = {0};
+	double _skew[2] = {0};
+	double _scale[2] = {0};
+	int ul_user = 0;
+
+	rt_raster rast = NULL;
+	int i = 0;
+	int numBands = 0;
+
+	/* flag indicating that the spatial info is being substituted */
+	int subspatial = 0;
+
+	RASTER_DEBUG(3, "starting");
+
+	assert(NULL != raster);
+
+	/* internal variables */
+	arg = _rti_warp_arg_init();
+	if (arg == NULL) {
+		rterror("rt_raster_gdal_warp: Could not initialize internal variables");
+		return NULL;
+	}
+
+	/*
+		max_err must be gte zero
+
+		the value 0.125 is the default used in gdalwarp.cpp on line 283
+	*/
+	if (max_err < 0.) max_err = 0.125;
+	RASTER_DEBUGF(4, "max_err = %f", max_err);
+
+	/* handle srs */
+	if (src_srs != NULL) {
+		/* reprojection taking place */
+		if (dst_srs != NULL && strcmp(src_srs, dst_srs) != 0) {
+			RASTER_DEBUG(4, "Warp operation does include a reprojection");
+			arg->src.srs = rt_util_gdal_convert_sr(src_srs, 0);
+			arg->dst.srs = rt_util_gdal_convert_sr(dst_srs, 0);
+
+			if (arg->src.srs == NULL || arg->dst.srs == NULL) {
+				rterror("rt_raster_gdal_warp: Could not convert srs values to GDAL accepted format");
+				_rti_warp_arg_destroy(arg);
+				return NULL;
+			}
+		}
+		/* no reprojection, a stub just for clarity */
+		else {
+			RASTER_DEBUG(4, "Warp operation does NOT include reprojection");
+		}
+	}
+	else if (dst_srs != NULL) {
+		/* dst_srs provided but not src_srs */
+		rterror("rt_raster_gdal_warp: SRS required for input raster if SRS provided for warped raster");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* load raster into a GDAL MEM dataset */
+	arg->src.ds = rt_raster_to_gdal_mem(raster, arg->src.srs, NULL, NULL, 0, &(arg->src.drv), &(arg->src.destroy_drv));
+	if (NULL == arg->src.ds) {
+		rterror("rt_raster_gdal_warp: Could not convert raster to GDAL MEM format");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+	RASTER_DEBUG(3, "raster loaded into GDAL MEM dataset");
+
+	/* special case when src_srs and dst_srs is NULL and raster's geotransform matrix is default */
+	if (
+		src_srs == NULL && dst_srs == NULL &&
+		rt_raster_get_srid(raster) == SRID_UNKNOWN
+	) {
+		double gt[6];
+
+#if POSTGIS_DEBUG_LEVEL > 3
+		GDALGetGeoTransform(arg->src.ds, gt);
+		RASTER_DEBUGF(3, "GDAL MEM geotransform: %f, %f, %f, %f, %f, %f",
+			gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
+#endif
+
+		/* default geotransform */
+		rt_raster_get_geotransform_matrix(raster, gt);
+		RASTER_DEBUGF(3, "raster geotransform: %f, %f, %f, %f, %f, %f",
+			gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
+
+		/* substitute spatial info (lack of) with a real one EPSG:32731 (WGS84/UTM zone 31s) */
+		if (
+			FLT_EQ(gt[0], 0) && FLT_EQ(gt[3], 0) &&
+			FLT_EQ(gt[1], 1) && FLT_EQ(gt[5], -1) &&
+			FLT_EQ(gt[2], 0) && FLT_EQ(gt[4], 0)
+		) {
+			double ngt[6] = {166021.4431, 0.1, 0, 10000000.0000, 0, -0.1};
+
+			rtwarn("Raster has default geotransform. Adjusting metadata for use of GDAL Warp API");
+
+			subspatial = 1;
+
+			GDALSetGeoTransform(arg->src.ds, ngt);
+			GDALFlushCache(arg->src.ds);
+
+			/* EPSG:32731 */
+			arg->src.srs = rt_util_gdal_convert_sr("EPSG:32731", 0);
+			arg->dst.srs = rt_util_gdal_convert_sr("EPSG:32731", 0);
+
+#if POSTGIS_DEBUG_LEVEL > 3
+			GDALGetGeoTransform(arg->src.ds, gt);
+			RASTER_DEBUGF(3, "GDAL MEM geotransform: %f, %f, %f, %f, %f, %f",
+				gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]);
+#endif
+		}
+	}
+
+	/* set transform options */
+	if (arg->src.srs != NULL || arg->dst.srs != NULL) {
+		arg->transform.option.len = 2;
+		arg->transform.option.item = rtalloc(sizeof(char *) * (arg->transform.option.len + 1));
+		if (NULL == arg->transform.option.item) {
+			rterror("rt_raster_gdal_warp: Could not allocation memory for transform options");
+			_rti_warp_arg_destroy(arg);
+			return NULL;
+		}
+		memset(arg->transform.option.item, 0, sizeof(char *) * (arg->transform.option.len + 1));
+
+		for (i = 0; i < arg->transform.option.len; i++) {
+			const char *srs = i ? arg->dst.srs : arg->src.srs;
+			const char *lbl = i ? "DST_SRS=" : "SRC_SRS=";
+			size_t sz = sizeof(char) * (strlen(lbl) + 1);
+			if ( srs ) sz += strlen(srs);
+			arg->transform.option.item[i] = (char *) rtalloc(sz);
+			if (NULL == arg->transform.option.item[i]) {
+				rterror("rt_raster_gdal_warp: Could not allocation memory for transform options");
+				_rti_warp_arg_destroy(arg);
+				return NULL;
+			}
+			sprintf(arg->transform.option.item[i], "%s%s", lbl, srs ? srs : "");
+			RASTER_DEBUGF(4, "arg->transform.option.item[%d] = %s", i, arg->transform.option.item[i]);
+		}
+	}
+	else
+		arg->transform.option.len = 0;
+
+	/* transformation object for building dst dataset */
+	arg->transform.arg.transform = GDALCreateGenImgProjTransformer2(arg->src.ds, NULL, arg->transform.option.item);
+	if (NULL == arg->transform.arg.transform) {
+		rterror("rt_raster_gdal_warp: Could not create GDAL transformation object for output dataset creation");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* get approximate output georeferenced bounds and resolution */
+	cplerr = GDALSuggestedWarpOutput2(
+		arg->src.ds, GDALGenImgProjTransform,
+		arg->transform.arg.transform, _gt, &(_dim[0]), &(_dim[1]), dst_extent, 0);
+	if (cplerr != CE_None) {
+		rterror("rt_raster_gdal_warp: Could not get GDAL suggested warp output for output dataset creation");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+	GDALDestroyGenImgProjTransformer(arg->transform.arg.transform);
+	arg->transform.arg.transform = NULL;
+
+	/*
+		don't use suggested dimensions as use of suggested scales
+		on suggested extent will result in suggested dimensions
+	*/
+	_dim[0] = 0;
+	_dim[1] = 0;
+
+	RASTER_DEBUGF(3, "Suggested geotransform: %f, %f, %f, %f, %f, %f",
+		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
+
+	/* store extent in easier-to-use object */
+	extent.MinX = dst_extent[0];
+	extent.MinY = dst_extent[1];
+	extent.MaxX = dst_extent[2];
+	extent.MaxY = dst_extent[3];
+
+	extent.UpperLeftX = dst_extent[0];
+	extent.UpperLeftY = dst_extent[3];
+
+	RASTER_DEBUGF(3, "Suggested extent: %f, %f, %f, %f",
+		extent.MinX, extent.MinY, extent.MaxX, extent.MaxY);
+
+	/* scale and width/height are mutually exclusive */
+	if (
+		((NULL != scale_x) || (NULL != scale_y)) &&
+		((NULL != width) || (NULL != height))
+	) {
+		rterror("rt_raster_gdal_warp: Scale X/Y and width/height are mutually exclusive.  Only provide one");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* user-defined width */
+	if (NULL != width) {
+		_dim[0] = abs(*width);
+		_scale[0] = fabs((extent.MaxX - extent.MinX) / ((double) _dim[0]));
+	}
+	/* user-defined height */
+	if (NULL != height) {
+		_dim[1] = abs(*height);
+		_scale[1] = fabs((extent.MaxY - extent.MinY) / ((double) _dim[1]));
+	}
+
+	/* user-defined scale */
+	if (
+		((NULL != scale_x) && (FLT_NEQ(*scale_x, 0.0))) &&
+		((NULL != scale_y) && (FLT_NEQ(*scale_y, 0.0)))
+	) {
+		_scale[0] = fabs(*scale_x);
+		_scale[1] = fabs(*scale_y);
+
+		/* special override since we changed the original GT scales */
+		if (subspatial) {
+			/*
+			_scale[0] *= 10;
+			_scale[1] *= 10;
+			*/
+			_scale[0] /= 10;
+			_scale[1] /= 10;
+		}
+	}
+	else if (
+		((NULL != scale_x) && (NULL == scale_y)) ||
+		((NULL == scale_x) && (NULL != scale_y))
+	) {
+		rterror("rt_raster_gdal_warp: Both X and Y scale values must be provided for scale");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* scale not defined, use suggested */
+	if (FLT_EQ(_scale[0], 0) && FLT_EQ(_scale[1], 0)) {
+		_scale[0] = fabs(_gt[1]);
+		_scale[1] = fabs(_gt[5]);
+	}
+
+	RASTER_DEBUGF(4, "Using scale: %f x %f", _scale[0], -1 * _scale[1]);
+
+	/* user-defined skew */
+	if (NULL != skew_x) {
+		_skew[0] = *skew_x;
+
+		/*
+			negative scale-x affects skew
+			for now, force skew to be in left-right, top-down orientation
+		*/
+		if (
+			NULL != scale_x &&
+			*scale_x < 0.
+		) {
+			_skew[0] *= -1;
+		}
+	}
+	if (NULL != skew_y) {
+		_skew[1] = *skew_y;
+
+		/*
+			positive scale-y affects skew
+			for now, force skew to be in left-right, top-down orientation
+		*/
+		if (
+			NULL != scale_y &&
+			*scale_y > 0.
+		) {
+			_skew[1] *= -1;
+		}
+	}
+
+	RASTER_DEBUGF(4, "Using skew: %f x %f", _skew[0], _skew[1]);
+
+	/* reprocess extent if skewed */
+	if (
+		FLT_NEQ(_skew[0], 0) ||
+		FLT_NEQ(_skew[1], 0)
+	) {
+		rt_raster skewedrast;
+
+		RASTER_DEBUG(3, "Computing skewed extent's envelope");
+
+		skewedrast = rt_raster_compute_skewed_raster(
+			extent,
+			_skew,
+			_scale,
+			0.01
+		);
+		if (skewedrast == NULL) {
+			rterror("rt_raster_gdal_warp: Could not compute skewed raster");
+			_rti_warp_arg_destroy(arg);
+			return NULL;
+		}
+
+		if (_dim[0] == 0)
+			_dim[0] = skewedrast->width;
+		if (_dim[1] == 0)
+			_dim[1] = skewedrast->height;
+
+		extent.UpperLeftX = skewedrast->ipX;
+		extent.UpperLeftY = skewedrast->ipY;
+
+		rt_raster_destroy(skewedrast);
+	}
+
+	/* dimensions not defined, compute */
+	if (!_dim[0])
+		_dim[0] = (int) fmax((fabs(extent.MaxX - extent.MinX) + (_scale[0] / 2.)) / _scale[0], 1);
+	if (!_dim[1])
+		_dim[1] = (int) fmax((fabs(extent.MaxY - extent.MinY) + (_scale[1] / 2.)) / _scale[1], 1);
+
+	/* temporary raster */
+	rast = rt_raster_new(_dim[0], _dim[1]);
+	if (rast == NULL) {
+		rterror("rt_raster_gdal_warp: Out of memory allocating temporary raster");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* set raster's spatial attributes */
+	rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
+	rt_raster_set_scale(rast, _scale[0], -1 * _scale[1]);
+	rt_raster_set_skews(rast, _skew[0], _skew[1]);
+
+	rt_raster_get_geotransform_matrix(rast, _gt);
+	RASTER_DEBUGF(3, "Temp raster's geotransform: %f, %f, %f, %f, %f, %f",
+		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
+	RASTER_DEBUGF(3, "Temp raster's dimensions (width x height): %d x %d",
+		_dim[0], _dim[1]);
+
+	/* user-defined upper-left corner */
+	if (
+		NULL != ul_xw &&
+		NULL != ul_yw
+	) {
+		ul_user = 1;
+
+		RASTER_DEBUGF(4, "Using user-specified upper-left corner: %f, %f", *ul_xw, *ul_yw);
+
+		/* set upper-left corner */
+		rt_raster_set_offsets(rast, *ul_xw, *ul_yw);
+		extent.UpperLeftX = *ul_xw;
+		extent.UpperLeftY = *ul_yw;
+	}
+	else if (
+		((NULL != ul_xw) && (NULL == ul_yw)) ||
+		((NULL == ul_xw) && (NULL != ul_yw))
+	) {
+		rterror("rt_raster_gdal_warp: Both X and Y upper-left corner values must be provided");
+		rt_raster_destroy(rast);
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* alignment only considered if upper-left corner not provided */
+	if (
+		!ul_user && (
+			(NULL != grid_xw) || (NULL != grid_yw)
+		)
+	) {
+
+		if (
+			((NULL != grid_xw) && (NULL == grid_yw)) ||
+			((NULL == grid_xw) && (NULL != grid_yw))
+		) {
+			rterror("rt_raster_gdal_warp: Both X and Y alignment values must be provided");
+			rt_raster_destroy(rast);
+			_rti_warp_arg_destroy(arg);
+			return NULL;
+		}
+
+		RASTER_DEBUGF(4, "Aligning extent to user-specified grid: %f, %f", *grid_xw, *grid_yw);
+
+		do {
+			double _r[2] = {0};
+			double _w[2] = {0};
+
+			/* raster is already aligned */
+			if (FLT_EQ(*grid_xw, extent.UpperLeftX) && FLT_EQ(*grid_yw, extent.UpperLeftY)) {
+				RASTER_DEBUG(3, "Skipping raster alignment as it is already aligned to grid");
+				break;
+			}
+
+			extent.UpperLeftX = rast->ipX;
+			extent.UpperLeftY = rast->ipY;
+			rt_raster_set_offsets(rast, *grid_xw, *grid_yw);
+
+			/* process upper-left corner */
+			if (rt_raster_geopoint_to_cell(
+				rast,
+				extent.UpperLeftX, extent.UpperLeftY,
+				&(_r[0]), &(_r[1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_gdal_warp: Could not compute raster pixel for spatial coordinates");
+				rt_raster_destroy(rast);
+				_rti_warp_arg_destroy(arg);
+				return NULL;
+			}
+
+			if (rt_raster_cell_to_geopoint(
+				rast,
+				_r[0], _r[1],
+				&(_w[0]), &(_w[1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
+
+				rt_raster_destroy(rast);
+				_rti_warp_arg_destroy(arg);
+				return NULL;
+			}
+
+			/* shift occurred */
+			if (FLT_NEQ(_w[0], extent.UpperLeftX)) {
+				if (NULL == width)
+					rast->width++;
+				else if (NULL == scale_x) {
+					double _c[2] = {0};
+
+					rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
+
+					/* get upper-right corner */
+					if (rt_raster_cell_to_geopoint(
+						rast,
+						rast->width, 0,
+						&(_c[0]), &(_c[1]),
+						NULL
+					) != ES_NONE) {
+						rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
+						rt_raster_destroy(rast);
+						_rti_warp_arg_destroy(arg);
+						return NULL;
+					}
+
+					rast->scaleX = fabs((_c[0] - _w[0]) / ((double) rast->width));
+				}
+			}
+			if (FLT_NEQ(_w[1], extent.UpperLeftY)) {
+				if (NULL == height)
+					rast->height++;
+				else if (NULL == scale_y) {
+					double _c[2] = {0};
+
+					rt_raster_set_offsets(rast, extent.UpperLeftX, extent.UpperLeftY);
+
+					/* get upper-right corner */
+					if (rt_raster_cell_to_geopoint(
+						rast,
+						0, rast->height,
+						&(_c[0]), &(_c[1]),
+						NULL
+					) != ES_NONE) {
+						rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
+
+						rt_raster_destroy(rast);
+						_rti_warp_arg_destroy(arg);
+						return NULL;
+					}
+
+					rast->scaleY = -1 * fabs((_c[1] - _w[1]) / ((double) rast->height));
+				}
+			}
+
+			rt_raster_set_offsets(rast, _w[0], _w[1]);
+			RASTER_DEBUGF(4, "aligned offsets: %f x %f", _w[0], _w[1]);
+		}
+		while (0);
+	}
+
+	/*
+		after this point, rt_envelope extent is no longer used
+	*/
+
+	/* get key attributes from rast */
+	_dim[0] = rast->width;
+	_dim[1] = rast->height;
+	rt_raster_get_geotransform_matrix(rast, _gt);
+
+	/* scale-x is negative or scale-y is positive */
+	if ((
+		(NULL != scale_x) && (*scale_x < 0.)
+	) || (
+		(NULL != scale_y) && (*scale_y > 0)
+	)) {
+		double _w[2] = {0};
+
+		/* negative scale-x */
+		if (
+			(NULL != scale_x) &&
+			(*scale_x < 0.)
+		) {
+			if (rt_raster_cell_to_geopoint(
+				rast,
+				rast->width, 0,
+				&(_w[0]), &(_w[1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
+				rt_raster_destroy(rast);
+				_rti_warp_arg_destroy(arg);
+				return NULL;
+			}
+
+			_gt[0] = _w[0];
+			_gt[1] = *scale_x;
+
+			/* check for skew */
+			if (NULL != skew_x && FLT_NEQ(*skew_x, 0))
+				_gt[2] = *skew_x;
+		}
+		/* positive scale-y */
+		if (
+			(NULL != scale_y) &&
+			(*scale_y > 0)
+		) {
+			if (rt_raster_cell_to_geopoint(
+				rast,
+				0, rast->height,
+				&(_w[0]), &(_w[1]),
+				NULL
+			) != ES_NONE) {
+				rterror("rt_raster_gdal_warp: Could not compute spatial coordinates for raster pixel");
+				rt_raster_destroy(rast);
+				_rti_warp_arg_destroy(arg);
+				return NULL;
+			}
+
+			_gt[3] = _w[1];
+			_gt[5] = *scale_y;
+
+			/* check for skew */
+			if (NULL != skew_y && FLT_NEQ(*skew_y, 0))
+				_gt[4] = *skew_y;
+		}
+	}
+
+	rt_raster_destroy(rast);
+	rast = NULL;
+
+	RASTER_DEBUGF(3, "Applied geotransform: %f, %f, %f, %f, %f, %f",
+		_gt[0], _gt[1], _gt[2], _gt[3], _gt[4], _gt[5]);
+	RASTER_DEBUGF(3, "Raster dimensions (width x height): %d x %d",
+		_dim[0], _dim[1]);
+
+	if ( _dim[0] == 0 || _dim[1] == 0 ) {
+		rterror("rt_raster_gdal_warp: The width (%d) or height (%d) of the warped raster is zero", _dim[0], _dim[1]);
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* load VRT driver */
+	if (!rt_util_gdal_driver_registered("VRT")) {
+		RASTER_DEBUG(3, "Registering VRT driver");
+		GDALRegister_VRT();
+		arg->dst.destroy_drv = 1;
+	}
+	arg->dst.drv = GDALGetDriverByName("VRT");
+	if (NULL == arg->dst.drv) {
+		rterror("rt_raster_gdal_warp: Could not load the output GDAL VRT driver");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* create dst dataset */
+	arg->dst.ds = GDALCreate(arg->dst.drv, "", _dim[0], _dim[1], 0, GDT_Byte, dst_options);
+	if (NULL == arg->dst.ds) {
+		rterror("rt_raster_gdal_warp: Could not create GDAL VRT dataset");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* set dst srs */
+	if (arg->dst.srs != NULL) {
+		cplerr = GDALSetProjection(arg->dst.ds, arg->dst.srs);
+		if (cplerr != CE_None) {
+			rterror("rt_raster_gdal_warp: Could not set projection");
+			_rti_warp_arg_destroy(arg);
+			return NULL;
+		}
+		RASTER_DEBUGF(3, "Applied SRS: %s", GDALGetProjectionRef(arg->dst.ds));
+	}
+
+	/* set dst geotransform */
+	cplerr = GDALSetGeoTransform(arg->dst.ds, _gt);
+	if (cplerr != CE_None) {
+		rterror("rt_raster_gdal_warp: Could not set geotransform");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* add bands to dst dataset */
+	numBands = rt_raster_get_num_bands(raster);
+	for (i = 0; i < numBands; i++) {
+		rtband = rt_raster_get_band(raster, i);
+		if (NULL == rtband) {
+			rterror("rt_raster_gdal_warp: Could not get band %d for adding to VRT dataset", i);
+			_rti_warp_arg_destroy(arg);
+			return NULL;
+		}
+
+		pt = rt_band_get_pixtype(rtband);
+		gdal_pt = rt_util_pixtype_to_gdal_datatype(pt);
+		if (gdal_pt == GDT_Unknown)
+			rtwarn("rt_raster_gdal_warp: Unknown pixel type for band %d", i);
+
+		cplerr = GDALAddBand(arg->dst.ds, gdal_pt, NULL);
+		if (cplerr != CE_None) {
+			rterror("rt_raster_gdal_warp: Could not add band to VRT dataset");
+			_rti_warp_arg_destroy(arg);
+			return NULL;
+		}
+
+		/* get band to write data to */
+		band = NULL;
+		band = GDALGetRasterBand(arg->dst.ds, i + 1);
+		if (NULL == band) {
+			rterror("rt_raster_gdal_warp: Could not get GDAL band for additional processing");
+			_rti_warp_arg_destroy(arg);
+			return NULL;
+		}
+
+		/* set nodata */
+		if (rt_band_get_hasnodata_flag(rtband) != FALSE) {
+			hasnodata = 1;
+			rt_band_get_nodata(rtband, &nodata);
+			if (GDALSetRasterNoDataValue(band, nodata) != CE_None)
+				rtwarn("rt_raster_gdal_warp: Could not set nodata value for band %d", i);
+			RASTER_DEBUGF(3, "nodata value set to %f", GDALGetRasterNoDataValue(band, NULL));
+		}
+	}
+
+	/* create transformation object */
+	arg->transform.arg.transform = arg->transform.arg.imgproj = GDALCreateGenImgProjTransformer2(
+		arg->src.ds, arg->dst.ds,
+		arg->transform.option.item
+	);
+	if (NULL == arg->transform.arg.transform) {
+		rterror("rt_raster_gdal_warp: Could not create GDAL transformation object");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+	arg->transform.func = GDALGenImgProjTransform;
+
+	/* use approximate transformation object */
+	if (max_err > 0.0) {
+		arg->transform.arg.transform = arg->transform.arg.approx = GDALCreateApproxTransformer(
+			GDALGenImgProjTransform,
+			arg->transform.arg.imgproj, max_err
+		);
+		if (NULL == arg->transform.arg.transform) {
+			rterror("rt_raster_gdal_warp: Could not create GDAL approximate transformation object");
+			_rti_warp_arg_destroy(arg);
+			return NULL;
+		}
+
+		arg->transform.func = GDALApproxTransform;
+	}
+
+	/* warp options */
+	arg->wopts = GDALCreateWarpOptions();
+	if (NULL == arg->wopts) {
+		rterror("rt_raster_gdal_warp: Could not create GDAL warp options object");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+
+	/* set options */
+	arg->wopts->eResampleAlg = resample_alg;
+	arg->wopts->hSrcDS = arg->src.ds;
+	arg->wopts->hDstDS = arg->dst.ds;
+	arg->wopts->pfnTransformer = arg->transform.func;
+	arg->wopts->pTransformerArg = arg->transform.arg.transform;
+	arg->wopts->papszWarpOptions = (char **) CPLMalloc(sizeof(char *) * 2);
+	arg->wopts->papszWarpOptions[0] = (char *) CPLMalloc(sizeof(char) * (strlen("INIT_DEST=NO_DATA") + 1));
+	strcpy(arg->wopts->papszWarpOptions[0], "INIT_DEST=NO_DATA");
+	arg->wopts->papszWarpOptions[1] = NULL;
+
+	/* set band mapping */
+	arg->wopts->nBandCount = numBands;
+	arg->wopts->panSrcBands = (int *) CPLMalloc(sizeof(int) * arg->wopts->nBandCount);
+	arg->wopts->panDstBands = (int *) CPLMalloc(sizeof(int) * arg->wopts->nBandCount);
+	for (i = 0; i < arg->wopts->nBandCount; i++)
+		arg->wopts->panDstBands[i] = arg->wopts->panSrcBands[i] = i + 1;
+
+	/* set nodata mapping */
+	if (hasnodata) {
+		RASTER_DEBUG(3, "Setting nodata mapping");
+		arg->wopts->padfSrcNoDataReal = (double *) CPLMalloc(numBands * sizeof(double));
+		arg->wopts->padfDstNoDataReal = (double *) CPLMalloc(numBands * sizeof(double));
+		arg->wopts->padfSrcNoDataImag = (double *) CPLMalloc(numBands * sizeof(double));
+		arg->wopts->padfDstNoDataImag = (double *) CPLMalloc(numBands * sizeof(double));
+		if (
+			NULL == arg->wopts->padfSrcNoDataReal ||
+			NULL == arg->wopts->padfDstNoDataReal ||
+			NULL == arg->wopts->padfSrcNoDataImag ||
+			NULL == arg->wopts->padfDstNoDataImag
+		) {
+			rterror("rt_raster_gdal_warp: Out of memory allocating nodata mapping");
+			_rti_warp_arg_destroy(arg);
+			return NULL;
+		}
+		for (i = 0; i < numBands; i++) {
+			band = rt_raster_get_band(raster, i);
+			if (!band) {
+				rterror("rt_raster_gdal_warp: Could not process bands for nodata values");
+				_rti_warp_arg_destroy(arg);
+				return NULL;
+			}
+
+			if (!rt_band_get_hasnodata_flag(band)) {
+				/*
+					based on line 1004 of gdalwarp.cpp
+					the problem is that there is a chance that this number is a legitimate value
+				*/
+				arg->wopts->padfSrcNoDataReal[i] = -123456.789;
+			}
+			else {
+				rt_band_get_nodata(band, &(arg->wopts->padfSrcNoDataReal[i]));
+			}
+
+			arg->wopts->padfDstNoDataReal[i] = arg->wopts->padfSrcNoDataReal[i];
+			arg->wopts->padfDstNoDataImag[i] = arg->wopts->padfSrcNoDataImag[i] = 0.0;
+			RASTER_DEBUGF(4, "Mapped nodata value for band %d: %f (%f) => %f (%f)",
+				i,
+				arg->wopts->padfSrcNoDataReal[i], arg->wopts->padfSrcNoDataImag[i],
+				arg->wopts->padfDstNoDataReal[i], arg->wopts->padfDstNoDataImag[i]
+			);
+		}
+	}
+
+	/* warp raster */
+	RASTER_DEBUG(3, "Warping raster");
+	cplerr = GDALInitializeWarpedVRT(arg->dst.ds, arg->wopts);
+	if (cplerr != CE_None) {
+		rterror("rt_raster_gdal_warp: Could not warp raster");
+		_rti_warp_arg_destroy(arg);
+		return NULL;
+	}
+	/*
+	GDALSetDescription(arg->dst.ds, "/tmp/warped.vrt");
+	*/
+	GDALFlushCache(arg->dst.ds);
+	RASTER_DEBUG(3, "Raster warped");
+
+	/* convert gdal dataset to raster */
+	RASTER_DEBUG(3, "Converting GDAL dataset to raster");
+	rast = rt_raster_from_gdal_dataset(arg->dst.ds);
+
+	_rti_warp_arg_destroy(arg);
+
+	if (NULL == rast) {
+		rterror("rt_raster_gdal_warp: Could not warp raster");
+		return NULL;
+	}
+
+	/* substitute spatial, reset back to default */
+	if (subspatial) {
+		double gt[6] = {0, 1, 0, 0, 0, -1};
+		/* See http://trac.osgeo.org/postgis/ticket/2911 */
+		/* We should proably also tweak rotation here */
+		/* NOTE: the times 10 is because it was divided by 10 in a section above,
+		 *       I'm not sure the above division was needed */
+		gt[1] = _scale[0] * 10;
+		gt[5] = -1 * _scale[1] * 10;
+
+		rt_raster_set_geotransform_matrix(rast, gt);
+		rt_raster_set_srid(rast, SRID_UNKNOWN);
+	}
+
+	RASTER_DEBUG(3, "done");
+
+	return rast;
+}
+
diff --git a/raster/rt_core/rt_wkb.c b/raster/rt_core/rt_wkb.c
new file mode 100644
index 0000000..2113f0c
--- /dev/null
+++ b/raster/rt_core/rt_wkb.c
@@ -0,0 +1,705 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "librtcore.h"
+#include "librtcore_internal.h"
+#include "rt_serialize.h"
+
+/* Read band from WKB as at start of band */
+static rt_band
+rt_band_from_wkb(
+	uint16_t width, uint16_t height,
+	const uint8_t** ptr, const uint8_t* end,
+	uint8_t littleEndian
+) {
+	rt_band band = NULL;
+	int pixbytes = 0;
+	uint8_t type = 0;
+	unsigned long sz = 0;
+	uint32_t v = 0;
+
+	assert(NULL != ptr);
+	assert(NULL != end);
+
+	band = rtalloc(sizeof (struct rt_band_t));
+	if (!band) {
+		rterror("rt_band_from_wkb: Out of memory allocating rt_band during WKB parsing");
+		return NULL;
+	}
+	band->ownsdata = 0; /* assume we don't own data */
+
+	if (end - *ptr < 1) {
+		rterror("rt_band_from_wkb: Premature end of WKB on band reading (%s:%d)",
+			__FILE__, __LINE__);
+		rt_band_destroy(band);
+		return NULL;
+	}
+	type = read_uint8(ptr);
+
+	if ((type & BANDTYPE_PIXTYPE_MASK) >= PT_END) {
+		rterror("rt_band_from_wkb: Invalid pixtype %d", type & BANDTYPE_PIXTYPE_MASK);
+		rt_band_destroy(band);
+		return NULL;
+	}
+
+	band->pixtype = type & BANDTYPE_PIXTYPE_MASK;
+	band->offline = BANDTYPE_IS_OFFDB(type) ? 1 : 0;
+	band->hasnodata = BANDTYPE_HAS_NODATA(type) ? 1 : 0;
+	band->isnodata = band->hasnodata ? (BANDTYPE_IS_NODATA(type) ? 1 : 0) : 0;
+	band->width = width;
+	band->height = height;
+
+	RASTER_DEBUGF(3, " Band pixtype:%s, offline:%d, hasnodata:%d",
+		rt_pixtype_name(band->pixtype),
+		band->offline,
+		band->hasnodata
+	);
+
+	/* Check there's enough bytes to read nodata value */
+	pixbytes = rt_pixtype_size(band->pixtype);
+	if (((*ptr) + pixbytes) >= end) {
+		rterror("rt_band_from_wkb: Premature end of WKB on band novalue reading");
+		rt_band_destroy(band);
+		return NULL;
+	}
+
+	/* Read nodata value */
+	switch (band->pixtype) {
+		case PT_1BB: {
+			band->nodataval = ((int) read_uint8(ptr)) & 0x01;
+			break;
+		}
+		case PT_2BUI: {
+			band->nodataval = ((int) read_uint8(ptr)) & 0x03;
+			break;
+		}
+		case PT_4BUI: {
+			band->nodataval = ((int) read_uint8(ptr)) & 0x0F;
+			break;
+		}
+		case PT_8BSI: {
+			band->nodataval = read_int8(ptr);
+			break;
+		}
+		case PT_8BUI: {
+			band->nodataval = read_uint8(ptr);
+			break;
+		}
+		case PT_16BSI: {
+			band->nodataval = read_int16(ptr, littleEndian);
+			break;
+		}
+		case PT_16BUI: {
+			band->nodataval = read_uint16(ptr, littleEndian);
+			break;
+		}
+		case PT_32BSI: {
+			band->nodataval = read_int32(ptr, littleEndian);
+			break;
+		}
+		case PT_32BUI: {
+			band->nodataval = read_uint32(ptr, littleEndian);
+			break;
+		}
+		case PT_32BF: {
+			band->nodataval = read_float32(ptr, littleEndian);
+			break;
+		}
+		case PT_64BF: {
+			band->nodataval = read_float64(ptr, littleEndian);
+			break;
+		}
+		default: {
+			rterror("rt_band_from_wkb: Unknown pixeltype %d", band->pixtype);
+			rt_band_destroy(band);
+			return NULL;
+		}
+	}
+
+	RASTER_DEBUGF(3, " Nodata value: %g, pixbytes: %d, ptr @ %p, end @ %p",
+		band->nodataval, pixbytes, *ptr, end);
+
+	if (band->offline) {
+		if (((*ptr) + 1) >= end) {
+			rterror("rt_band_from_wkb: Premature end of WKB on offline "
+				"band data bandNum reading (%s:%d)",
+				__FILE__, __LINE__
+			);
+			rt_band_destroy(band);
+			return NULL;
+		}
+
+		band->data.offline.bandNum = read_int8(ptr);
+		band->data.offline.mem = NULL;
+
+		{
+			/* check we have a NULL-termination */
+			sz = 0;
+			while ((*ptr)[sz] && &((*ptr)[sz]) < end) ++sz;
+			if (&((*ptr)[sz]) >= end) {
+				rterror("rt_band_from_wkb: Premature end of WKB on band offline path reading");
+				rt_band_destroy(band);
+				return NULL;
+			}
+
+			/* we never own offline band data */
+			band->ownsdata = 0;
+
+			band->data.offline.path = rtalloc(sz + 1);
+			if (band->data.offline.path == NULL) {
+				rterror("rt_band_from_wkb: Out of memory allocating for offline path of band");
+				rt_band_destroy(band);
+				return NULL;
+			}
+
+			memcpy(band->data.offline.path, *ptr, sz);
+			band->data.offline.path[sz] = '\0';
+
+			RASTER_DEBUGF(3, "OFFDB band path is %s (size is %d)",
+				band->data.offline.path, sz);
+
+			*ptr += sz + 1;
+
+			/* TODO: How could we know if the offline band is a nodata band? */
+			/* trust in the force */
+			/*band->isnodata = FALSE;*/
+		}
+
+		return band;
+	}
+
+	/* This is an on-disk band */
+	sz = width * height * pixbytes;
+	if (((*ptr) + sz) > end) {
+		rterror("rt_band_from_wkb: Premature end of WKB on band data reading (%s:%d)",
+			__FILE__, __LINE__);
+		rt_band_destroy(band);
+		return NULL;
+	}
+
+	band->data.mem = rtalloc(sz);
+	if (!band->data.mem) {
+		rterror("rt_band_from_wkb: Out of memory during band creation in WKB parser");
+		rt_band_destroy(band);
+		return NULL;
+	}
+
+	band->ownsdata = 1; /* we DO own this data!!! */
+	memcpy(band->data.mem, *ptr, sz);
+	*ptr += sz;
+
+	/* Should now flip values if > 8bit and
+	 * littleEndian != isMachineLittleEndian */
+	if (pixbytes > 1) {
+		if (isMachineLittleEndian() != littleEndian) {
+			void (*flipper)(uint8_t*) = 0;
+			uint8_t *flipme = NULL;
+
+			if (pixbytes == 2)
+				flipper = flip_endian_16;
+			else if (pixbytes == 4)
+				flipper = flip_endian_32;
+			else if (pixbytes == 8)
+				flipper = flip_endian_64;
+			else {
+				rterror("rt_band_from_wkb: Unexpected pix bytes %d", pixbytes);
+				rt_band_destroy(band);
+				return NULL;
+			}
+
+			flipme = band->data.mem;
+			sz = width * height;
+			for (v = 0; v < sz; ++v) {
+				flipper(flipme);
+				flipme += pixbytes;
+			}
+		}
+	}
+	/* And should check for invalid values for < 8bit types */
+	else if (
+		band->pixtype == PT_1BB ||
+		band->pixtype == PT_2BUI ||
+		band->pixtype == PT_4BUI
+	) {
+		uint8_t maxVal = band->pixtype == PT_1BB ? 1 : (band->pixtype == PT_2BUI ? 3 : 15);
+		uint8_t val;
+
+		sz = width*height;
+		for (v = 0; v < sz; ++v) {
+			val = ((uint8_t*) band->data.mem)[v];
+			if (val > maxVal) {
+				rterror("rt_band_from_wkb: Invalid value %d for pixel of type %s",
+					val, rt_pixtype_name(band->pixtype));
+				rt_band_destroy(band);
+				return NULL;
+			}
+		}
+	}
+
+	/* And we should check if the band is a nodata band */
+	/* TODO: No!! This is too slow */
+	/*rt_band_check_is_nodata(band);*/
+
+	return band;
+}
+
+/* -4 for size, +1 for endian */
+#define RT_WKB_HDR_SZ (sizeof(struct rt_raster_serialized_t)-4+1)
+
+rt_raster
+rt_raster_from_wkb(const uint8_t* wkb, uint32_t wkbsize) {
+	const uint8_t *ptr = wkb;
+	const uint8_t *wkbend = NULL;
+	rt_raster rast = NULL;
+	uint8_t endian = 0;
+	uint16_t version = 0;
+	uint16_t i = 0;
+	uint16_t j = 0;
+
+	assert(NULL != ptr);
+
+	/* Check that wkbsize is >= sizeof(rt_raster_serialized) */
+	if (wkbsize < RT_WKB_HDR_SZ) {
+		rterror("rt_raster_from_wkb: wkb size (%d)  < min size (%d)",
+			wkbsize, RT_WKB_HDR_SZ);
+		return NULL;
+	}
+	wkbend = wkb + wkbsize;
+
+	RASTER_DEBUGF(3, "Parsing header from wkb position %d (expected 0)",
+		d_binptr_to_pos(ptr, wkbend, wkbsize));
+
+	CHECK_BINPTR_POSITION(ptr, wkbend, wkbsize, 0);
+
+	/* Read endianness */
+	endian = *ptr;
+	ptr += 1;
+
+	/* Read version of protocol */
+	version = read_uint16(&ptr, endian);
+	if (version != 0) {
+		rterror("rt_raster_from_wkb: WKB version %d unsupported", version);
+		return NULL;
+	}
+
+	/* Read other components of raster header */
+	rast = (rt_raster) rtalloc(sizeof (struct rt_raster_t));
+	if (!rast) {
+		rterror("rt_raster_from_wkb: Out of memory allocating raster for wkb input");
+		return NULL;
+	}
+
+	rast->numBands = read_uint16(&ptr, endian);
+	rast->scaleX = read_float64(&ptr, endian);
+	rast->scaleY = read_float64(&ptr, endian);
+	rast->ipX = read_float64(&ptr, endian);
+	rast->ipY = read_float64(&ptr, endian);
+	rast->skewX = read_float64(&ptr, endian);
+	rast->skewY = read_float64(&ptr, endian);
+	rast->srid = clamp_srid(read_int32(&ptr, endian));
+	rast->width = read_uint16(&ptr, endian);
+	rast->height = read_uint16(&ptr, endian);
+
+	/* Consistency checking, should have been checked before */
+	assert(ptr <= wkbend);
+
+	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster numBands: %d",
+		rast->numBands);
+	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster scale: %gx%g",
+		rast->scaleX, rast->scaleY);
+	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster ip: %gx%g",
+		rast->ipX, rast->ipY);
+	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster skew: %gx%g",
+		rast->skewX, rast->skewY);
+	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster srid: %d",
+		rast->srid);
+	RASTER_DEBUGF(3, "rt_raster_from_wkb: Raster dims: %dx%d",
+		rast->width, rast->height);
+	RASTER_DEBUGF(3, "Parsing raster header finished at wkb position %d (expected 61)",
+		d_binptr_to_pos(ptr, wkbend, wkbsize));
+
+	CHECK_BINPTR_POSITION(ptr, wkbend, wkbsize, 61);
+
+	/* Read all bands of raster */
+	if (!rast->numBands) {
+		/* Here ptr should have been left to right after last used byte */
+		if (ptr < wkbend) {
+			rtwarn("%d bytes of WKB remained unparsed", wkbend - ptr);
+		}
+		else if (ptr > wkbend) {
+			/* Easier to get a segfault before I guess */
+			rtwarn("We parsed %d bytes more then available!", ptr - wkbend);
+		}
+
+		rast->bands = NULL;
+		return rast;
+	}
+
+	/* Now read the bands */
+	rast->bands = (rt_band*) rtalloc(sizeof(rt_band) * rast->numBands);
+	if (!rast->bands) {
+		rterror("rt_raster_from_wkb: Out of memory allocating bands for WKB raster decoding");
+		rt_raster_destroy(rast);
+		return NULL;
+	}
+
+	/* ptr should now point to start of first band */
+	/* we should have checked this before */
+	assert(ptr <= wkbend);
+
+	for (i = 0; i < rast->numBands; ++i) {
+		RASTER_DEBUGF(3, "Parsing band %d from wkb position %d", i,
+			d_binptr_to_pos(ptr, wkbend, wkbsize));
+
+		rt_band band = rt_band_from_wkb(rast->width, rast->height,
+			&ptr, wkbend, endian);
+		if (!band) {
+			rterror("rt_raster_from_wkb: Error reading WKB form of band %d", i);
+			for (j = 0; j < i; j++) rt_band_destroy(rast->bands[j]);
+			rt_raster_destroy(rast);
+			return NULL;
+		}
+
+		band->raster = rast;
+		rast->bands[i] = band;
+	}
+
+	/* Here ptr should have been left to right after last used byte */
+	if (ptr < wkbend) {
+		rtwarn("%d bytes of WKB remained unparsed", wkbend - ptr);
+	}
+	else if (ptr > wkbend) {
+		/* Easier to get a segfault before I guess */
+		rtwarn("We parsed %d bytes more then available!", ptr - wkbend);
+	}
+
+	return rast;
+}
+
+rt_raster
+rt_raster_from_hexwkb(const char* hexwkb, uint32_t hexwkbsize) {
+	rt_raster ret = NULL;
+	uint8_t* wkb = NULL;
+	uint32_t wkbsize = 0;
+	uint32_t i = 0;
+
+	assert(NULL != hexwkb);
+
+	RASTER_DEBUGF(3, "input wkb: %s", hexwkb);
+	RASTER_DEBUGF(3, "input wkbsize: %d", hexwkbsize);
+
+	if (hexwkbsize % 2) {
+		rterror("rt_raster_from_hexwkb: Raster HEXWKB input must have an even number of characters");
+		return NULL;
+	}
+	wkbsize = hexwkbsize / 2;
+
+	wkb = rtalloc(wkbsize);
+	if (!wkb) {
+		rterror("rt_raster_from_hexwkb: Out of memory allocating memory for decoding HEXWKB");
+		return NULL;
+	}
+
+	/* parse full hex */
+	for (i = 0; i < wkbsize; ++i) {
+		wkb[i] = parse_hex((char*) & (hexwkb[i * 2]));
+	}
+
+	ret = rt_raster_from_wkb(wkb, wkbsize);
+	rtdealloc(wkb); /* as long as rt_raster_from_wkb copies memory */
+
+	return ret;
+}
+
+static uint32_t
+rt_raster_wkb_size(rt_raster raster, int outasin) {
+	uint32_t size = RT_WKB_HDR_SZ;
+	uint16_t i = 0;
+
+	assert(NULL != raster);
+
+	RASTER_DEBUGF(3, "rt_raster_wkb_size: computing size for %d bands",
+		raster->numBands);
+
+	for (i = 0; i < raster->numBands; ++i) {
+		rt_band band = raster->bands[i];
+		rt_pixtype pixtype = band->pixtype;
+		int pixbytes = rt_pixtype_size(pixtype);
+
+		RASTER_DEBUGF(3, "rt_raster_wkb_size: adding size of band %d", i);
+
+		if (pixbytes < 1) {
+			rterror("rt_raster_wkb_size: Corrupted band: unknown pixtype");
+			return 0;
+		}
+
+		/* Add space for band type */
+		size += 1;
+
+		/* Add space for nodata value */
+		size += pixbytes;
+
+		if (!outasin && band->offline) {
+			/* Add space for band number */
+			size += 1;
+
+			/* Add space for null-terminated path */
+			size += strlen(band->data.offline.path) + 1;
+		}
+		else {
+			/* Add space for actual data */
+			size += pixbytes * raster->width * raster->height;
+		}
+	}
+
+	return size;
+}
+
+/**
+ * Return this raster in WKB form
+ *
+ * @param raster : the raster
+ * @param outasin : if TRUE, out-db bands are treated as in-db
+ * @param wkbsize : will be set to the size of returned wkb form
+ *
+ * @return WKB of raster or NULL on error
+ */
+uint8_t *
+rt_raster_to_wkb(rt_raster raster, int outasin, uint32_t *wkbsize) {
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	const uint8_t *wkbend = NULL;
+#endif
+
+	uint8_t *wkb = NULL;
+	uint8_t *ptr = NULL;
+	uint16_t i = 0;
+	uint8_t littleEndian = isMachineLittleEndian();
+
+	assert(NULL != raster);
+	assert(NULL != wkbsize);
+
+	RASTER_DEBUG(2, "rt_raster_to_wkb: about to call rt_raster_wkb_size");
+
+	*wkbsize = rt_raster_wkb_size(raster, outasin);
+	RASTER_DEBUGF(3, "rt_raster_to_wkb: found size: %d", *wkbsize);
+
+	wkb = (uint8_t*) rtalloc(*wkbsize);
+	if (!wkb) {
+		rterror("rt_raster_to_wkb: Out of memory allocating WKB for raster");
+		return NULL;
+	}
+
+	ptr = wkb;
+
+#if POSTGIS_DEBUG_LEVEL > 2
+	wkbend = ptr + (*wkbsize);
+#endif
+	RASTER_DEBUGF(3, "Writing raster header to wkb on position %d (expected 0)",
+		d_binptr_to_pos(ptr, wkbend, *wkbsize));
+
+	/* Write endianness */
+	*ptr = littleEndian;
+	ptr += 1;
+
+	/* Write version(size - (end - ptr)) */
+	write_uint16(&ptr, littleEndian, 0);
+
+	/* Copy header (from numBands up) */
+	memcpy(ptr, &(raster->numBands), sizeof (struct rt_raster_serialized_t) - 6);
+	ptr += sizeof (struct rt_raster_serialized_t) - 6;
+
+	RASTER_DEBUGF(3, "Writing bands header to wkb position %d (expected 61)",
+		d_binptr_to_pos(ptr, wkbend, *wkbsize));
+
+	/* Serialize bands now */
+	for (i = 0; i < raster->numBands; ++i) {
+		rt_band band = raster->bands[i];
+		rt_pixtype pixtype = band->pixtype;
+		int pixbytes = rt_pixtype_size(pixtype);
+
+		RASTER_DEBUGF(3, "Writing WKB for band %d", i);
+		RASTER_DEBUGF(3, "Writing band pixel type to wkb position %d",
+			d_binptr_to_pos(ptr, wkbend, *wkbsize));
+
+		if (pixbytes < 1) {
+			rterror("rt_raster_to_wkb: Corrupted band: unknown pixtype");
+			rtdealloc(wkb);
+			return NULL;
+		}
+
+		/* Add band type */
+		*ptr = band->pixtype;
+		if (!outasin && band->offline) *ptr |= BANDTYPE_FLAG_OFFDB;
+		if (band->hasnodata) *ptr |= BANDTYPE_FLAG_HASNODATA;
+		if (band->isnodata) *ptr |= BANDTYPE_FLAG_ISNODATA;
+		ptr += 1;
+
+#if 0
+		/* no padding required for WKB */
+		/* Add padding (if needed) */
+		if (pixbytes > 1) {
+			memset(ptr, '\0', pixbytes - 1);
+			ptr += pixbytes - 1;
+		}
+		/* Consistency checking (ptr is pixbytes-aligned) */
+		assert(!(((uint64_t) ptr) % pixbytes));
+#endif
+
+		RASTER_DEBUGF(3, "Writing band nodata to wkb position %d",
+			d_binptr_to_pos(ptr, wkbend, *wkbsize));
+
+		/* Add nodata value */
+		switch (pixtype) {
+			case PT_1BB:
+			case PT_2BUI:
+			case PT_4BUI:
+			case PT_8BUI: {
+				uint8_t v = band->nodataval;
+				*ptr = v;
+				ptr += 1;
+				break;
+			}
+			case PT_8BSI: {
+				int8_t v = band->nodataval;
+				*ptr = v;
+				ptr += 1;
+				break;
+			}
+			case PT_16BSI:
+			case PT_16BUI: {
+				uint16_t v = band->nodataval;
+				memcpy(ptr, &v, 2);
+				ptr += 2;
+				break;
+			}
+			case PT_32BSI:
+			case PT_32BUI: {
+				uint32_t v = band->nodataval;
+				memcpy(ptr, &v, 4);
+				ptr += 4;
+				break;
+			}
+			case PT_32BF: {
+				float v = band->nodataval;
+				memcpy(ptr, &v, 4);
+				ptr += 4;
+				break;
+			}
+			case PT_64BF: {
+				memcpy(ptr, &band->nodataval, 8);
+				ptr += 8;
+				break;
+			}
+			default:
+				rterror("rt_raster_to_wkb: Fatal error caused by unknown pixel type. Aborting.");
+				rtdealloc(wkb);
+				abort(); /* shoudn't happen */
+				return 0;
+		}
+
+#if 0
+		/* no padding for WKB */
+		/* Consistency checking (ptr is pixbytes-aligned) */
+		assert(!((uint64_t) ptr % pixbytes));
+#endif
+
+		if (!outasin && band->offline) {
+			/* Write band number */
+			*ptr = band->data.offline.bandNum;
+			ptr += 1;
+
+			/* Write path */
+			strcpy((char*) ptr, band->data.offline.path);
+			ptr += strlen(band->data.offline.path) + 1;
+		}
+		else {
+			/* Write data */
+			uint32_t datasize = raster->width * raster->height * pixbytes;
+			RASTER_DEBUGF(4, "rt_raster_to_wkb: Copying %d bytes", datasize);
+
+			memcpy(ptr, rt_band_get_data(band), datasize);
+
+			ptr += datasize;
+		}
+
+#if 0
+		/* no padding for WKB */
+		/* Pad up to 8-bytes boundary */
+		while ((uint64_t) ptr % 8) {
+			*ptr = 0;
+			++ptr;
+		}
+
+		/* Consistency checking (ptr is pixbytes-aligned) */
+		assert(!((uint64_t) ptr % pixbytes));
+#endif
+	}
+
+	return wkb;
+}
+
+char *
+rt_raster_to_hexwkb(rt_raster raster, int outasin, uint32_t *hexwkbsize) {
+	uint8_t *wkb = NULL;
+	char* hexwkb = NULL;
+	uint32_t wkbsize = 0;
+
+	assert(NULL != raster);
+	assert(NULL != hexwkbsize);
+
+	RASTER_DEBUG(2, "rt_raster_to_hexwkb: calling rt_raster_to_wkb");
+
+	wkb = rt_raster_to_wkb(raster, outasin, &wkbsize);
+
+	RASTER_DEBUG(3, "rt_raster_to_hexwkb: rt_raster_to_wkb returned");
+
+	*hexwkbsize = wkbsize * 2; /* hex is 2 times bytes */
+	hexwkb = (char*) rtalloc((*hexwkbsize) + 1);
+	if (!hexwkb) {
+		rterror("rt_raster_to_hexwkb: Out of memory hexifying raster WKB");
+		rtdealloc(wkb);
+		return NULL;
+	}
+
+	char *optr = hexwkb;
+	uint8_t *iptr = wkb;
+	const char hexchar[]="0123456789ABCDEF";
+	while (wkbsize--) {
+		uint8_t v = *iptr++;
+		*optr++ = hexchar[v>>4];
+		*optr++ = hexchar[v & 0x0F];
+	}
+	*optr = '\0'; /* Null-terminate */
+
+	rtdealloc(wkb); /* we don't need this anymore */
+
+	RASTER_DEBUGF(3, "rt_raster_to_hexwkb: output wkb: %s", hexwkb);
+	return hexwkb;
+}
diff --git a/raster/rt_pg/Makefile.in b/raster/rt_pg/Makefile.in
index 7966048..7af36c1 100644
--- a/raster/rt_pg/Makefile.in
+++ b/raster/rt_pg/Makefile.in
@@ -1,5 +1,4 @@
-#############################################################################
-# $Id: Makefile.in 12594 2014-05-29 07:53:37Z strk $
+############################################################################
 #
 # Copyright (c) 2009-2011 Sandro Santilli <strk at keybit.net>
 #
@@ -25,7 +24,7 @@ MODULE_big=rtpostgis- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@
 MODULEDIR=contrib/postgis- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@
 
 # Files to be copied to the contrib/ directory
-DATA_built=rtpostgis.sql rtpostgis_upgrade_20_21.sql rtpostgis_upgrade_21_minor.sql uninstall_rtpostgis.sql rtpostgis_legacy.sql
+DATA_built=rtpostgis.sql rtpostgis_upgrade.sql uninstall_rtpostgis.sql rtpostgis_legacy.sql
 DATA=
 
 # SQL preprocessor
@@ -35,7 +34,20 @@ SQLPP = @SQLPP@
 SQL_OBJS=rtpostgis.sql rtpostgis_drop.sql rtpostgis_upgrade_cleanup.sql rtpostgis_legacy.sql
 
 # Objects to build using PGXS
-OBJS=rt_pg.o
+OBJS = \
+	rtpostgis.o \
+	rtpg_internal.o \
+	rtpg_spatial_relationship.o \
+	rtpg_mapalgebra.o \
+	rtpg_utility.o \
+	rtpg_inout.o \
+	rtpg_geometry.o \
+	rtpg_raster_properties.o \
+	rtpg_band_properties.o \
+	rtpg_pixel.o \
+	rtpg_create.o \
+	rtpg_gdal.o \
+	rtpg_statistics.o
 
 # Libraries to link into the module (proj, geos)
 #
@@ -57,11 +69,14 @@ PG_CPPFLAGS+=@CPPFLAGS@ $(LIBLWGEOM_CFLAGS) $(LIBGDAL_CFLAGS) $(LIBPGCOMMON_CFLA
 SHLIB_LINK_F = ../rt_core/librtcore.a $(LIBLWGEOM_LDFLAGS) $(LIBPGCOMMON_LDFLAGS) $(LIBGDAL_LDFLAGS) @SHLIB_LINK@ 
 
 # Extra files to remove during 'make clean'
-EXTRA_CLEAN=$(SQL_OBJS) $(DATA_built) rtpostgis_upgrade.sql
+EXTRA_CLEAN=$(SQL_OBJS) $(DATA_built) rtpostgis_upgrade.sql.in
 
 # PGXS information
 PG_CONFIG = @PG_CONFIG@ 
 PGXS := @PGXS@
+# NO_TEMP_INSTALL is a workaround for a 9.5dev bug. See:
+# http://www.postgresql.org/message-id/CAB7nPqTsR5o3g-fBi6jbsVdhfPiLFWQ_0cGU5=94Rv_8W3qvFA@mail.gmail.com
+NO_TEMP_INSTALL=yes
 include $(PGXS)
 
 # Set PERL _after_ the include of PGXS
@@ -71,18 +86,6 @@ PERL=@PERL@
 # see http://trac.osgeo.org/postgis/ticket/1158#comment:57
 SHLIB_LINK := $(SHLIB_LINK_F) $(SHLIB_LINK)
 
-# PGXS override feature. The ability to allow PostGIS to install itself
-# in a versioned directory is only available in PostgreSQL >= 8.5. To
-# do this by default on older PostgreSQL versions, we need to override
-# the existing PGXS targets.
-#
-# Once PostgreSQL 8.5 becomes the minimum supported version, this entire
-# section and its associated Makefile.pgxs should be removed.
-PGXSOVERRIDE = @PGXSOVERRIDE@
-ifeq ($(PGXSOVERRIDE),1)
-	include Makefile.pgxs
-endif
-
 # If REGRESS=1 passed as a parameter, change the default install paths
 # so that no prefix is included. This allows us to relocate to a temporary
 # directory for regression testing.
@@ -101,28 +104,21 @@ endif
 
 
 # Objects dependencies
-$(OBJS): ../../liblwgeom/.libs/liblwgeom.a ../../libpgcommon/libpgcommon.a ../../postgis_config.h ../../postgis_svn_revision.h
-
-# Generate any .sql.in files from .sql.in.c files by running them through the SQL pre-processor 
-#$(SQL_OBJS): %.in: %.in.c
-#	$(SQLPP) -I../../postgis/ -I../../ $< | grep -v '^#' > $@
+# NOTE: the .a deps are really only link-time dependencies, but at this
+#       time I dunno how to wncode those
+$(OBJS): ../../liblwgeom/.libs/liblwgeom.a ../rt_core/librtcore.a ../../libpgcommon/libpgcommon.a ../../postgis_config.h ../../postgis_svn_revision.h
 
 # SQL objects deps here
 $(SQL_OBJS): ../../postgis/sqldefines.h ../../postgis_svn_revision.h
 
-#remove all create object types since these can't be done cleanly in an upgrade
-rtpostgis_upgrade.sql: rtpostgis.sql ../../utils/postgis_proc_upgrade.pl
-	$(PERL) ../../utils/postgis_proc_upgrade.pl $< 2.0 > $@
-	#$(PERL) -0777 -ne 's/^(CREATE|ALTER) (CAST|OPERATOR|TYPE|TABLE|SCHEMA|DOMAIN|TRIGGER).*?;//msg;print;' $< > $@
+rtpostgis_upgrade.sql.in: rtpostgis.sql ../../utils/postgis_proc_upgrade.pl
+	$(PERL) ../../utils/postgis_proc_upgrade.pl $< UNUSED > $@
 
-rtpostgis_upgrade_20_21.sql: rtpostgis_upgrade_cleanup.sql rtpostgis_upgrade.sql rtpostgis_drop.sql 
+rtpostgis_upgrade.sql: rtpostgis_upgrade_cleanup.sql rtpostgis_upgrade.sql.in rtpostgis_drop.sql
 	echo 'BEGIN;' > $@
 	cat $^ | sed -e 's/^BEGIN;$$//' -e 's/^COMMIT;$$//' >> $@
 	echo 'COMMIT;' >> $@
 
-rtpostgis_upgrade_21_minor.sql: rtpostgis.sql ../../utils/postgis_proc_upgrade.pl
-	$(PERL) ../../utils/postgis_proc_upgrade.pl rtpostgis.sql 2.1 > $@
-
 uninstall_rtpostgis.sql: rtpostgis.sql ../../utils/create_undef.pl 
 	$(PERL) ../../utils/create_undef.pl $< $(POSTGIS_PGSQL_VERSION) > $@
 
diff --git a/raster/rt_pg/Makefile.pgxs b/raster/rt_pg/Makefile.pgxs
deleted file mode 100644
index f7ffc8e..0000000
--- a/raster/rt_pg/Makefile.pgxs
+++ /dev/null
@@ -1,102 +0,0 @@
-#
-# PostGIS PGXS override file for PostgreSQL <= 8.5
-# (updates relevant targets for MODULEDIR as per the
-# PostgreSQL 8.5 PGXS Makefile)
-#
-
-ifdef MODULEDIR
-datamoduledir = $(MODULEDIR)
-docmoduledir = $(MODULEDIR)
-else
-datamoduledir = contrib
-docmoduledir = contrib
-endif
-
-install: all installdirs
-ifneq (,$(DATA)$(DATA_built))
-	@for file in $(addprefix $(srcdir)/, $(DATA)) $(DATA_built); do \
-	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir)'"; \
-	  $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir)'; \
-	done
-endif # DATA
-ifneq (,$(DATA_TSEARCH))
-	@for file in $(addprefix $(srcdir)/, $(DATA_TSEARCH)); do \
-	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/tsearch_data'"; \
-	  $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/tsearch_data'; \
-	done
-endif # DATA_TSEARCH
-ifdef MODULES
-	@for file in $(addsuffix $(DLSUFFIX), $(MODULES)); do \
-	  echo "$(INSTALL_SHLIB) $$file '$(DESTDIR)$(pkglibdir)'"; \
-	  $(INSTALL_SHLIB) $$file '$(DESTDIR)$(pkglibdir)'; \
-	done
-endif # MODULES
-ifdef DOCS
-ifdef docdir
-	@for file in $(addprefix $(srcdir)/, $(DOCS)); do \
-	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/$(docmoduledir)'"; \
-	  $(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/$(docmoduledir)'; \
-	done
-endif # docdir
-endif # DOCS
-ifdef PROGRAM
-	$(INSTALL_PROGRAM) $(PROGRAM)$(X) '$(DESTDIR)$(bindir)'
-endif # PROGRAM
-ifdef SCRIPTS
-	@for file in $(addprefix $(srcdir)/, $(SCRIPTS)); do \
-	  echo "$(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'"; \
-	  $(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'; \
-	done
-endif # SCRIPTS
-ifdef SCRIPTS_built
-	@for file in $(SCRIPTS_built); do \
-	  echo "$(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'"; \
-	  $(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'; \
-	done
-endif # SCRIPTS_built
-ifdef MODULE_big
-	$(INSTALL_SHLIB) $(shlib) '$(DESTDIR)$(pkglibdir)/$(MODULE_big)$(DLSUFFIX)'
-endif # MODULE_big
-
-installdirs:
-ifneq (,$(DATA)$(DATA_built))
-	$(mkinstalldirs) '$(DESTDIR)$(datadir)/$(datamoduledir)'
-endif
-ifneq (,$(DATA_TSEARCH))
-	$(mkinstalldirs) '$(DESTDIR)$(datadir)/tsearch_data'
-endif
-ifneq (,$(MODULES))
-	$(mkinstalldirs) '$(DESTDIR)$(pkglibdir)'
-endif
-ifdef DOCS
-ifdef docdir
-	$(mkinstalldirs) '$(DESTDIR)$(docdir)/$(docmoduledir)'
-endif # docdir
-endif # DOCS
-ifneq (,$(PROGRAM)$(SCRIPTS)$(SCRIPTS_built))
-	$(mkinstalldirs) '$(DESTDIR)$(bindir)'
-endif
-
-uninstall:
-ifneq (,$(DATA)$(DATA_built))
-	rm -f $(addprefix '$(DESTDIR)$(datadir)/$(datamoduledir)'/, $(notdir $(DATA) $(DATA_built)))
-endif
-ifneq (,$(DATA_TSEARCH))
-	rm -f $(addprefix '$(DESTDIR)$(datadir)/tsearch_data'/, $(notdir $(DATA_TSEARCH)))
-endif
-ifdef MODULES
-	rm -f $(addprefix '$(DESTDIR)$(pkglibdir)'/, $(addsuffix $(DLSUFFIX), $(MODULES)))
-endif
-ifdef DOCS
-	rm -f $(addprefix '$(DESTDIR)$(docdir)/$(docmoduledir)'/, $(DOCS))
-endif
-ifdef PROGRAM
-	rm -f '$(DESTDIR)$(bindir)/$(PROGRAM)$(X)'
-endif
-ifdef SCRIPTS
-	rm -f $(addprefix '$(DESTDIR)$(bindir)'/, $(SCRIPTS))
-endif
-ifdef SCRIPTS_built
-	rm -f $(addprefix '$(DESTDIR)$(bindir)'/, $(SCRIPTS_built))
-endif
-
diff --git a/raster/rt_pg/rt_pg.c b/raster/rt_pg/rt_pg.c
deleted file mode 100644
index 1d0cfaa..0000000
--- a/raster/rt_pg/rt_pg.c
+++ /dev/null
@@ -1,19493 +0,0 @@
-/*
- * $Id: rt_pg.c 13394 2015-03-24 13:39:49Z dustymugs $
- *
- * WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
- *
- * Copyright (C) 2011-2013 Regents of the University of California
- *   <bkpark at ucdavis.edu>
- * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
- * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
- * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
- * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
- * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include <math.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h> /* for strtod in RASTER_reclass */
-#include <errno.h>
-#include <assert.h>
-#include <ctype.h> /* for isspace */
-
-#include <postgres.h> /* for palloc */
-#include <access/gist.h>
-#include <access/itup.h>
-#include <fmgr.h>
-#include <utils/elog.h>
-#include <utils/builtins.h>
-#include <executor/spi.h>
-#include <executor/executor.h> /* for GetAttributeByName in RASTER_reclass */
-#include <funcapi.h>
-
-#include "../../postgis_config.h"
-
-#include "lwgeom_pg.h"
-#include "rt_pg.h"
-#include "pgsql_compat.h"
-
-#include "utils/lsyscache.h" /* for get_typlenbyvalalign */
-#include "utils/array.h" /* for ArrayType */
-#include "catalog/pg_type.h" /* for INT2OID, INT4OID, FLOAT4OID, FLOAT8OID and TEXTOID */
-
-#if POSTGIS_PGSQL_VERSION > 92
-#include "access/htup_details.h"
-#endif
-
-/* maximum char length required to hold any double or long long value */
-#define MAX_DBL_CHARLEN (3 + DBL_MANT_DIG - DBL_MIN_EXP)
-#define MAX_INT_CHARLEN 32
-
-/*
- * This is required for builds against pgsql
- */
-PG_MODULE_MAGIC;
-
-void _PG_init(void);
-
-/***************************************************************
- * Internal functions must be prefixed with rtpg_.  This is
- * keeping inline with the use of pgis_ for ./postgis C utility
- * functions.
- ****************************************************************/
-/* Internal funcs */
-static char *rtpg_strreplace(
-	const char *str,
-	const char *oldstr, const char *newstr,
-	int *count
-);
-static char *rtpg_strtoupper(char *str);
-static char	*rtpg_chartrim(const char* input, char *remove);
-static char **rtpg_strsplit(const char *str, const char *delimiter, int *n);
-static char *rtpg_removespaces(char *str);
-static char *rtpg_trim(const char* input);
-static char *rtpg_getSR(int srid);
-
-extern char *gdal_enabled_drivers;
-extern char enable_outdb_rasters;
-
-#define ENV_POSTGIS_GDAL_ENABLED_DRIVERS "POSTGIS_GDAL_ENABLED_DRIVERS"
-#define ENV_POSTGIS_ENABLE_OUTDB_RASTERS "POSTGIS_ENABLE_OUTDB_RASTERS"
-
-/* rtpg_assignHookGDALEnabledDrivers() should only be called by _PG_init */
-static void
-rtpg_assignHookGDALEnabledDrivers() {
-	char *enabled_drivers = NULL;
-	int enable_all = 0;
-	int disable_all = 0;
-
-	char **enabled_drivers_array = NULL;
-	int enabled_drivers_count = 0;
-	bool *enabled_drivers_found = NULL;
-	char *gdal_skip = NULL;
-
-	uint32_t i;
-	uint32_t j;
-
-	enabled_drivers = getenv(ENV_POSTGIS_GDAL_ENABLED_DRIVERS);
-
-	POSTGIS_RT_DEBUGF(4, "GDAL_SKIP = \"%s\"", CPLGetConfigOption("GDAL_SKIP", ""));
-	POSTGIS_RT_DEBUGF(4, "enabled_drivers = \"%s\"", enabled_drivers);
-
-	if (enabled_drivers != NULL) {
-		gdal_enabled_drivers = palloc(
-			sizeof(char) * (strlen(enabled_drivers) + 1)
-		);
-
-		sprintf(gdal_enabled_drivers, "%s", enabled_drivers);
-
-		enabled_drivers_array = rtpg_strsplit(enabled_drivers, " ", &enabled_drivers_count);
-#if POSTGIS_DEBUG_LEVEL > 0
-		POSTGIS_RT_DEBUGF(4, "enabled_drivers_count = %d", enabled_drivers_count)
-		for (i = 0; i < enabled_drivers_count; i++) {
-			POSTGIS_RT_DEBUGF(4, "enabled_drivers_array[%d] = \"%s\"", i, enabled_drivers_array[i]);
-		}
-#endif
-
-		enabled_drivers_found = palloc(sizeof(bool) * enabled_drivers_count);
-		memset(enabled_drivers_found, FALSE, sizeof(bool) * enabled_drivers_count);
-	}
-	else {
-		gdal_enabled_drivers = palloc(sizeof(char));
-		gdal_enabled_drivers[0] = '\0';
-	}
-
-	/* destroy the driver manager */
-	/* this is the only way to ensure GDAL_SKIP is recognized */
-	GDALDestroyDriverManager();
-	CPLSetConfigOption("GDAL_SKIP", NULL);
-
-	/* force wrapper function to call GDALAllRegister() */
-	rt_util_gdal_register_all(1);
-
-	/* scan for keywords DISABLE_ALL and ENABLE_ALL */
-	disable_all = 0;
-	enable_all = 0;
-	if (strstr(gdal_enabled_drivers, GDAL_DISABLE_ALL) != NULL) {
-		for (i = 0; i < enabled_drivers_count; i++) {
-			if (strstr(enabled_drivers_array[i], GDAL_DISABLE_ALL) != NULL) {
-				enabled_drivers_found[i] = TRUE;
-				disable_all = 1;
-			}
-		}
-	}
-	else if (strstr(gdal_enabled_drivers, GDAL_ENABLE_ALL) != NULL) {
-		for (i = 0; i < enabled_drivers_count; i++) {
-			if (strstr(enabled_drivers_array[i], GDAL_ENABLE_ALL) != NULL) {
-				enabled_drivers_found[i] = TRUE;
-				enable_all = 1;
-			}
-		}
-	}
-
-	if (!enable_all) {
-		int found = 0;
-		uint32_t drv_count = 0;
-		rt_gdaldriver drv_set = rt_raster_gdal_drivers(&drv_count, 0);
-
-		POSTGIS_RT_DEBUGF(4, "driver count = %d", drv_count);
-
-		/* all other drivers than those in new drivers are added to GDAL_SKIP */
-		for (i = 0; i < drv_count; i++) {
-			POSTGIS_RT_DEBUGF(4, "drv_set[%d] = \"%s\"", i, drv_set[i].short_name);
-			found = 0;
-
-			if (!disable_all) {
-				/* gdal driver found in gdal_enabled_drivers, continue to thorough search */
-				if (strstr(gdal_enabled_drivers, drv_set[i].short_name) != NULL) {
-					POSTGIS_RT_DEBUGF(4, "\"%s\" found in gdal_enabled_drivers", drv_set[i].short_name);
-					/* thorough search of enabled_drivers */
-					for (j = 0; j < enabled_drivers_count; j++) {
-						/* driver found */
-						if (strcmp(enabled_drivers_array[j], drv_set[i].short_name) == 0) {
-							POSTGIS_RT_DEBUGF(4, "\"%s\" found in enabled_drivers_array", drv_set[i].short_name);
-							enabled_drivers_found[j] = TRUE;
-							found = 1;
-						}
-					}
-				}
-			}
-
-			/* driver found, continue */
-			if (found)
-				continue;
-
-			/* driver not found, add to gdal_skip */
-			if (gdal_skip == NULL) {
-				gdal_skip = palloc(sizeof(char) * (strlen(drv_set[i].short_name) + 1));
-				gdal_skip[0] = '\0';
-			}
-			else {
-				gdal_skip = repalloc(
-					gdal_skip,
-					sizeof(char) * (
-						strlen(gdal_skip) + 1 + strlen(drv_set[i].short_name) + 1
-					)
-				);
-				strcat(gdal_skip, " ");
-			}
-			strcat(gdal_skip, drv_set[i].short_name);
-		}
-
-		for (i = 0; i < drv_count; i++) {
-			pfree(drv_set[i].short_name);
-			pfree(drv_set[i].long_name);
-			pfree(drv_set[i].create_options);
-		}
-		if (drv_count) pfree(drv_set);
-
-	}
-
-	for (i = 0; i < enabled_drivers_count; i++) {
-		if (enabled_drivers_found[i])
-			continue;
-
-		if (disable_all)
-			elog(WARNING, "%s set. Ignoring GDAL driver: %s", GDAL_DISABLE_ALL, enabled_drivers_array[i]);
-		else if (enable_all)
-			elog(WARNING, "%s set. Ignoring GDAL driver: %s", GDAL_ENABLE_ALL, enabled_drivers_array[i]);
-		else
-			elog(WARNING, "Unknown GDAL driver: %s", enabled_drivers_array[i]);
-	}
-
-	/* destroy the driver manager */
-	/* this is the only way to ensure GDAL_SKIP is recognized */
-	GDALDestroyDriverManager();
-
-	/* set GDAL_SKIP */
-	POSTGIS_RT_DEBUGF(4, "gdal_skip = \"%s\"", gdal_skip);
-	CPLSetConfigOption("GDAL_SKIP", gdal_skip);
-	if (gdal_skip != NULL) pfree(gdal_skip);
-
-	/* force wrapper function to call GDALAllRegister() */
-	rt_util_gdal_register_all(1);
-
-	if (enabled_drivers_count) {
-		pfree(enabled_drivers_array);
-		pfree(enabled_drivers_found);
-	}
-	POSTGIS_RT_DEBUGF(4, "GDAL_SKIP = \"%s\"", CPLGetConfigOption("GDAL_SKIP", ""));
-}
-
-/*
- * Module load callback
- */
-void _PG_init(void) {
-	char *env_postgis_enable_outdb_rasters = NULL;
-
-	/*
-	 * use POSTGIS_ENABLE_OUTDB_RASTERS to enable access to out-db rasters
-	 */
-	enable_outdb_rasters = 0;
-	env_postgis_enable_outdb_rasters = getenv(ENV_POSTGIS_ENABLE_OUTDB_RASTERS);
-	if (env_postgis_enable_outdb_rasters != NULL) {
-		char *env = rtpg_trim(env_postgis_enable_outdb_rasters);
-
-		/* out of memory */
-		if (env == NULL) {
-			elog(
-				ERROR,
-				"_PG_init: Cannot process environmental variable: %s",
-				ENV_POSTGIS_ENABLE_OUTDB_RASTERS
-			);
-			return;
-		}
-
-		if (strcmp(env, "1") == 0)
-			enable_outdb_rasters = 1;
-
-		pfree(env);
-	}
-
-	/*
-	 * use POSTGIS_GDAL_ENABLED_DRIVERS to restrict drivers
-	 */
-	rtpg_assignHookGDALEnabledDrivers();
-
-	/* Install liblwgeom handlers */
-	pg_install_lwgeom_handlers();
-
-    /* TODO: Install raster callbacks (see rt_init_allocators) */
-}
-
-/***************************************************************
- * Some rules for returning NOTICE or ERROR...
- *
- * Send an ERROR like:
- *
- * elog(ERROR, "RASTER_out: Could not deserialize raster");
- *
- * only when:
- *
- * -something wrong happen with memory,
- * -a function got an invalid argument ('3BUI' as pixel type) so that no row can
- * be processed
- *
- * *** IMPORTANT: elog(ERROR, ...) does NOT return to calling function ***
- *
- * Send a NOTICE like:
- *
- * elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
- *
- * when arguments (e.g. x, y, band) are NULL or out of range so that some or
- * most rows can be processed anyway
- *
- * in this case,
- * for SET functions or function normally returning a modified raster, return
- * the original raster
- * for GET functions, return NULL
- * try to deduce a valid parameter value if it makes sence (e.g. out of range
- * index for addBand)
- *
- * Do not put the name of the faulty function for NOTICEs, only with ERRORs.
- *
- ****************************************************************/
-
-/******************************************************************************
- * Some notes on memory management...
- *
- * Every time a SQL function is called, PostgreSQL creates a  new memory context.
- * So, all the memory allocated with palloc/repalloc in that context is
- * automatically free'd at the end of the function. If you want some data to
- * live between function calls, you have 2 options:
- *
- * - Use fcinfo->flinfo->fn_mcxt contex to store the data (by pointing the
- *   data you want to keep with fcinfo->flinfo->fn_extra)
- * - Use SRF funcapi, and storing the data at multi_call_memory_ctx (by pointing
- *   the data you want to keep with funcctx->user_fctx. funcctx is created by
- *   funcctx = SPI_FIRSTCALL_INIT()). Recommended way in functions returning rows,
- *   like RASTER_dumpAsPolygons (see section 34.9.9 at
- *   http://www.postgresql.org/docs/8.4/static/xfunc-c.html).
- *
- * But raster code follows the same philosophy than the rest of PostGIS: keep
- * memory as clean as possible. So, we free all allocated memory.
- *
- * TODO: In case of functions returning NULL, we should free the memory too.
- *****************************************************************************/
-
-/******************************************************************************
- * Notes for use of PG_DETOAST_DATUM(), PG_DETOAST_DATUM_SLICE()
- *   and PG_DETOAST_DATUM_COPY()
- *
- * When ONLY getting raster (not band) metadata, use PG_DETOAST_DATUM_SLICE()
- *   as it is generally quicker to get only the chunk of memory that contains
- *   the raster metadata.
- *
- *   Example: PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0,
- *     sizeof(struct rt_raster_serialized_t))
- *
- * When ONLY setting raster or band(s) metadata OR reading band data, use
- *   PG_DETOAST_DATUM() as rt_raster_deserialize() allocates local memory
- *   for the raster and band(s) metadata.
- *
- *   Example: PG_DETOAST_DATUM(PG_GETARG_DATUM(0))
- *
- * When SETTING band pixel values, use PG_DETOAST_DATUM_COPY().  This is
- *   because band data (not metadata) is just a pointer to the correct
- *   memory location in the detoasted datum.  What is returned from
- *   PG_DETOAST_DATUM() may or may not be a copy of the input datum.
- *
- *   From the comments in postgresql/src/include/fmgr.h...
- *
- *     pg_detoast_datum() gives you either the input datum (if not toasted)
- *     or a detoasted copy allocated with palloc().
- *
- *   From the mouth of Tom Lane...
- *   http://archives.postgresql.org/pgsql-hackers/2002-01/msg01289.php
- *
- *     PG_DETOAST_DATUM_COPY guarantees to give you a copy, even if the
- *     original wasn't toasted.  This allows you to scribble on the input,
- *     in case that happens to be a useful way of forming your result.
- *     Without a forced copy, a routine for a pass-by-ref datatype must
- *     NEVER, EVER scribble on its input ... because very possibly it'd
- *     be scribbling on a valid tuple in a disk buffer, or a valid entry
- *     in the syscache.
- *
- *   The key detail above is that the raster datatype is a varlena, a
- *     passed by reference datatype.
- *
- *   Example: PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0))
- *
- * If in doubt, use PG_DETOAST_DATUM_COPY() as that guarantees that the input
- *   datum is copied for use.
- *****************************************************************************/
-
-/* Prototypes */
-
-/* Utility functions */
-Datum RASTER_lib_version(PG_FUNCTION_ARGS);
-Datum RASTER_lib_build_date(PG_FUNCTION_ARGS);
-Datum RASTER_gdal_version(PG_FUNCTION_ARGS);
-Datum RASTER_minPossibleValue(PG_FUNCTION_ARGS);
-
-/* Input/output and format conversions */
-Datum RASTER_in(PG_FUNCTION_ARGS);
-Datum RASTER_out(PG_FUNCTION_ARGS);
-
-Datum RASTER_to_bytea(PG_FUNCTION_ARGS);
-Datum RASTER_to_binary(PG_FUNCTION_ARGS);
-
-/* Raster as geometry operations */
-Datum RASTER_convex_hull(PG_FUNCTION_ARGS);
-Datum RASTER_dumpAsPolygons(PG_FUNCTION_ARGS);
-
-/* Get all the properties of a raster */
-Datum RASTER_getSRID(PG_FUNCTION_ARGS);
-Datum RASTER_getWidth(PG_FUNCTION_ARGS);
-Datum RASTER_getHeight(PG_FUNCTION_ARGS);
-Datum RASTER_getNumBands(PG_FUNCTION_ARGS);
-Datum RASTER_getXScale(PG_FUNCTION_ARGS);
-Datum RASTER_getYScale(PG_FUNCTION_ARGS);
-Datum RASTER_getXSkew(PG_FUNCTION_ARGS);
-Datum RASTER_getYSkew(PG_FUNCTION_ARGS);
-Datum RASTER_getXUpperLeft(PG_FUNCTION_ARGS);
-Datum RASTER_getYUpperLeft(PG_FUNCTION_ARGS);
-Datum RASTER_getPixelWidth(PG_FUNCTION_ARGS);
-Datum RASTER_getPixelHeight(PG_FUNCTION_ARGS);
-Datum RASTER_getGeotransform(PG_FUNCTION_ARGS);
-
-/* Set all the properties of a raster */
-Datum RASTER_setSRID(PG_FUNCTION_ARGS);
-Datum RASTER_setScale(PG_FUNCTION_ARGS);
-Datum RASTER_setScaleXY(PG_FUNCTION_ARGS);
-Datum RASTER_setSkew(PG_FUNCTION_ARGS);
-Datum RASTER_setSkewXY(PG_FUNCTION_ARGS);
-Datum RASTER_setUpperLeftXY(PG_FUNCTION_ARGS);
-Datum RASTER_setRotation(PG_FUNCTION_ARGS);
-Datum RASTER_setGeotransform(PG_FUNCTION_ARGS);
-
-/* Get all the properties of a raster band */
-Datum RASTER_getBandPixelType(PG_FUNCTION_ARGS);
-Datum RASTER_getBandPixelTypeName(PG_FUNCTION_ARGS);
-Datum RASTER_getBandNoDataValue(PG_FUNCTION_ARGS);
-Datum RASTER_getBandPath(PG_FUNCTION_ARGS);
-Datum RASTER_bandIsNoData(PG_FUNCTION_ARGS);
-Datum RASTER_isEmpty(PG_FUNCTION_ARGS);
-Datum RASTER_hasNoBand(PG_FUNCTION_ARGS);
-
-/* Set all the properties of a raster band */
-Datum RASTER_setBandIsNoData(PG_FUNCTION_ARGS);
-Datum RASTER_setBandNoDataValue(PG_FUNCTION_ARGS);
-
-/* Get pixel value */
-Datum RASTER_getPixelValue(PG_FUNCTION_ARGS);
-Datum RASTER_dumpValues(PG_FUNCTION_ARGS);
-
-/* Set pixel value(s) */
-Datum RASTER_setPixelValue(PG_FUNCTION_ARGS);
-Datum RASTER_setPixelValuesArray(PG_FUNCTION_ARGS);
-Datum RASTER_setPixelValuesGeomval(PG_FUNCTION_ARGS);
-
-/* Get pixel geographical shape */
-Datum RASTER_getPixelPolygons(PG_FUNCTION_ARGS);
-
-/* Get raster band's polygon */
-Datum RASTER_getPolygon(PG_FUNCTION_ARGS);
-
-/* Get pixels of value */
-Datum RASTER_pixelOfValue(PG_FUNCTION_ARGS);
-
-/* Get nearest value to a point */
-Datum RASTER_nearestValue(PG_FUNCTION_ARGS);
-
-/* Get the neighborhood around a pixel */
-Datum RASTER_neighborhood(PG_FUNCTION_ARGS);
-
-/* Raster and band creation */
-Datum RASTER_makeEmpty(PG_FUNCTION_ARGS);
-Datum RASTER_addBand(PG_FUNCTION_ARGS);
-Datum RASTER_copyBand(PG_FUNCTION_ARGS);
-Datum RASTER_addBandRasterArray(PG_FUNCTION_ARGS);
-Datum RASTER_addBandOutDB(PG_FUNCTION_ARGS);
-Datum RASTER_tile(PG_FUNCTION_ARGS);
-
-/* create new raster from existing raster's bands */
-Datum RASTER_band(PG_FUNCTION_ARGS);
-
-/* Get summary stats */
-Datum RASTER_summaryStats(PG_FUNCTION_ARGS);
-Datum RASTER_summaryStatsCoverage(PG_FUNCTION_ARGS);
-
-/* get histogram */
-Datum RASTER_histogram(PG_FUNCTION_ARGS);
-Datum RASTER_histogramCoverage(PG_FUNCTION_ARGS);
-
-/* get quantiles */
-Datum RASTER_quantile(PG_FUNCTION_ARGS);
-Datum RASTER_quantileCoverage(PG_FUNCTION_ARGS);
-
-/* get counts of values */
-Datum RASTER_valueCount(PG_FUNCTION_ARGS);
-Datum RASTER_valueCountCoverage(PG_FUNCTION_ARGS);
-
-/* reclassify specified bands of a raster */
-Datum RASTER_reclass(PG_FUNCTION_ARGS);
-
-/* apply colormap to specified band of a raster */
-Datum RASTER_colorMap(PG_FUNCTION_ARGS);
-
-/* convert GDAL raster to raster */
-Datum RASTER_fromGDALRaster(PG_FUNCTION_ARGS);
-
-/* convert raster to GDAL raster */
-Datum RASTER_asGDALRaster(PG_FUNCTION_ARGS);
-Datum RASTER_getGDALDrivers(PG_FUNCTION_ARGS);
-
-/* rasterize a geometry */
-Datum RASTER_asRaster(PG_FUNCTION_ARGS);
-
-/* warp a raster using GDAL Warp API */
-Datum RASTER_GDALWarp(PG_FUNCTION_ARGS);
-
-/* get raster's meta data */
-Datum RASTER_metadata(PG_FUNCTION_ARGS);
-
-/* get raster band's meta data */
-Datum RASTER_bandmetadata(PG_FUNCTION_ARGS);
-
-/* convert pixel/line to spatial coordinates */
-Datum RASTER_rasterToWorldCoord(PG_FUNCTION_ARGS);
-
-/* convert spatial coordinates to pixel/line*/
-Datum RASTER_worldToRasterCoord(PG_FUNCTION_ARGS);
-
-/* determine if two rasters intersect */
-Datum RASTER_intersects(PG_FUNCTION_ARGS);
-
-/* determine if two rasters overlap */
-Datum RASTER_overlaps(PG_FUNCTION_ARGS);
-
-/* determine if two rasters touch */
-Datum RASTER_touches(PG_FUNCTION_ARGS);
-
-/* determine if the first raster contains the second raster */
-Datum RASTER_contains(PG_FUNCTION_ARGS);
-
-/* determine if the first raster contains properly the second raster */
-Datum RASTER_containsProperly(PG_FUNCTION_ARGS);
-
-/* determine if the first raster covers the second raster */
-Datum RASTER_covers(PG_FUNCTION_ARGS);
-
-/* determine if the first raster is covered by the second raster */
-Datum RASTER_coveredby(PG_FUNCTION_ARGS);
-
-/* determine if the two rasters are within the specified distance of each other */
-Datum RASTER_dwithin(PG_FUNCTION_ARGS);
-
-/* determine if the two rasters are fully within the specified distance of each other */
-Datum RASTER_dfullywithin(PG_FUNCTION_ARGS);
-
-/* determine if two rasters are aligned */
-Datum RASTER_sameAlignment(PG_FUNCTION_ARGS);
-Datum RASTER_notSameAlignmentReason(PG_FUNCTION_ARGS);
-
-/* one-raster MapAlgebra */
-Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS);
-Datum RASTER_mapAlgebraFct(PG_FUNCTION_ARGS);
-
-/* one-raster neighborhood MapAlgebra */
-Datum RASTER_mapAlgebraFctNgb(PG_FUNCTION_ARGS);
-
-/* two-raster MapAlgebra */
-Datum RASTER_mapAlgebra2(PG_FUNCTION_ARGS);
-
-/* n-raster MapAlgebra */
-Datum RASTER_nMapAlgebra(PG_FUNCTION_ARGS);
-Datum RASTER_nMapAlgebraExpr(PG_FUNCTION_ARGS);
-
-/* raster union aggregate */
-Datum RASTER_union_transfn(PG_FUNCTION_ARGS);
-Datum RASTER_union_finalfn(PG_FUNCTION_ARGS);
-
-/* raster clip */
-Datum RASTER_clip(PG_FUNCTION_ARGS);
-
-/* string replacement function taken from
- * http://ubuntuforums.org/showthread.php?s=aa6f015109fd7e4c7e30d2fd8b717497&t=141670&page=3
- */
-/* ---------------------------------------------------------------------------
-  Name       : replace - Search & replace a substring by another one.
-  Creation   : Thierry Husson, Sept 2010
-  Parameters :
-      str    : Big string where we search
-      oldstr : Substring we are looking for
-      newstr : Substring we want to replace with
-      count  : Optional pointer to int (input / output value). NULL to ignore.
-               Input:  Maximum replacements to be done. NULL or < 1 to do all.
-               Output: Number of replacements done or -1 if not enough memory.
-  Returns    : Pointer to the new string or NULL if error.
-  Notes      :
-     - Case sensitive - Otherwise, replace functions "strstr" by "strcasestr"
-     - Always allocates memory for the result.
---------------------------------------------------------------------------- */
-static char*
-rtpg_strreplace(
-	const char *str,
-	const char *oldstr, const char *newstr,
-	int *count
-) {
-	const char *tmp = str;
-	char *result;
-	int found = 0;
-	int length, reslen;
-	int oldlen = strlen(oldstr);
-	int newlen = strlen(newstr);
-	int limit = (count != NULL && *count > 0) ? *count : -1;
-
-	tmp = str;
-	while ((tmp = strstr(tmp, oldstr)) != NULL && found != limit)
-		found++, tmp += oldlen;
-
-	length = strlen(str) + found * (newlen - oldlen);
-	if ((result = (char *) palloc(length + 1)) == NULL) {
-		fprintf(stderr, "Not enough memory\n");
-		found = -1;
-	}
-	else {
-		tmp = str;
-		limit = found; /* Countdown */
-		reslen = 0; /* length of current result */
-
-		/* Replace each old string found with new string  */
-		while ((limit-- > 0) && (tmp = strstr(tmp, oldstr)) != NULL) {
-			length = (tmp - str); /* Number of chars to keep intouched */
-			strncpy(result + reslen, str, length); /* Original part keeped */
-			strcpy(result + (reslen += length), newstr); /* Insert new string */
-
-			reslen += newlen;
-			tmp += oldlen;
-			str = tmp;
-		}
-		strcpy(result + reslen, str); /* Copies last part and ending null char */
-	}
-
-	if (count != NULL) *count = found;
-	return result;
-}
-
-static char *
-rtpg_strtoupper(char * str) {
-	int j;
-
-	for (j = strlen(str) - 1; j >= 0; j--)
-		str[j] = toupper(str[j]);
-
-	return str;
-}
-
-static char*
-rtpg_chartrim(const char *input, char *remove) {
-	char *rtn = NULL;
-	char *ptr = NULL;
-	uint32_t offset = 0;
-
-	if (!input)
-		return NULL;
-	else if (!*input)
-		return (char *) input;
-
-	/* trim left */
-	while (strchr(remove, *input) != NULL)
-		input++;
-
-	/* trim right */
-	ptr = ((char *) input) + strlen(input);
-	while (strchr(remove, *--ptr) != NULL)
-		offset++;
-
-	rtn = palloc(sizeof(char) * (strlen(input) - offset + 1));
-	if (rtn == NULL) {
-		fprintf(stderr, "Not enough memory\n");
-		return NULL;
-	}
-	strncpy(rtn, input, strlen(input) - offset);
-	rtn[strlen(input) - offset] = '\0';
-
-	return rtn;
-}
-
-/* split a string based on a delimiter */
-static char**
-rtpg_strsplit(const char *str, const char *delimiter, int *n) {
-	char *tmp = NULL;
-	char **rtn = NULL;
-	char *token = NULL;
-
-	*n = 0;
-	if (!str)
-		return NULL;
-
-	/* copy str to tmp as strtok will mangle the string */
-	tmp = palloc(sizeof(char) * (strlen(str) + 1));
-	if (NULL == tmp) {
-		fprintf(stderr, "Not enough memory\n");
-		return NULL;
-	}
-	strcpy(tmp, str);
-
-	if (!strlen(tmp) || !delimiter || !strlen(delimiter)) {
-		*n = 1;
-		rtn = (char **) palloc(*n * sizeof(char *));
-		if (NULL == rtn) {
-			fprintf(stderr, "Not enough memory\n");
-			return NULL;
-		}
-		rtn[0] = (char *) palloc(sizeof(char) * (strlen(tmp) + 1));
-		if (NULL == rtn[0]) {
-			fprintf(stderr, "Not enough memory\n");
-			return NULL;
-		}
-		strcpy(rtn[0], tmp);
-		pfree(tmp);
-		return rtn;
-	}
-
-	token = strtok(tmp, delimiter);
-	while (token != NULL) {
-		if (*n < 1) {
-			rtn = (char **) palloc(sizeof(char *));
-		}
-		else {
-			rtn = (char **) repalloc(rtn, (*n + 1) * sizeof(char *));
-		}
-		if (NULL == rtn) {
-			fprintf(stderr, "Not enough memory\n");
-			return NULL;
-		}
-
-		rtn[*n] = NULL;
-		rtn[*n] = (char *) palloc(sizeof(char) * (strlen(token) + 1));
-		if (NULL == rtn[*n]) {
-			fprintf(stderr, "Not enough memory\n");
-			return NULL;
-		}
-
-		strcpy(rtn[*n], token);
-		*n = *n + 1;
-
-		token = strtok(NULL, delimiter);
-	}
-
-	pfree(tmp);
-	return rtn;
-}
-
-static char *
-rtpg_removespaces(char *str) {
-	char *rtn;
-	char *tmp;
-
-	rtn = rtpg_strreplace(str, " ", "", NULL);
-
-	tmp = rtpg_strreplace(rtn, "\n", "", NULL);
-	pfree(rtn);
-	rtn = rtpg_strreplace(tmp, "\t", "", NULL);
-	pfree(tmp);
-	tmp = rtpg_strreplace(rtn, "\f", "", NULL);
-	pfree(rtn);
-	rtn = rtpg_strreplace(tmp, "\r", "", NULL);
-	pfree(tmp);
-
-	return rtn;
-}
-
-static char*
-rtpg_trim(const char *input) {
-	char *rtn;
-	char *ptr;
-	uint32_t offset = 0;
-	int inputlen = 0;
-
-	if (!input)
-		return NULL;
-	else if (!*input)
-		return (char *) input;
-
-	/* trim left */
-	while (isspace(*input) && *input != '\0')
-		input++;
-
-	/* trim right */
-	inputlen = strlen(input);
-	if (inputlen) {
-		ptr = ((char *) input) + inputlen;
-		while (isspace(*--ptr))
-			offset++;
-	}
-
-	rtn = palloc(sizeof(char) * (inputlen - offset + 1));
-	if (rtn == NULL) {
-		fprintf(stderr, "Not enough memory\n");
-		return NULL;
-	}
-	strncpy(rtn, input, inputlen - offset);
-	rtn[inputlen - offset] = '\0';
-
-	return rtn;
-}
-
-/*
-* reverse string search function from
-* http://stackoverflow.com/a/1634398
-*/
-static char *
-rtpg_strrstr(const char *s1, const char *s2) {
-	int s1len = strlen(s1);
-	int s2len = strlen(s2);
-	char *s;
-
-	if (s2len > s1len)
-		return NULL;
-
-	s = (char *) (s1 + s1len - s2len);
-	for (; s >= s1; --s)
-		if (strncmp(s, s2, s2len) == 0)
-			return s;
-
-	return NULL;
-}
-
-static char*
-rtpg_getSR(int srid)
-{
-	int i = 0;
-	int len = 0;
-	char *sql = NULL;
-	int spi_result;
-	TupleDesc tupdesc;
-	SPITupleTable *tuptable = NULL;
-	HeapTuple tuple;
-	char *tmp = NULL;
-	char *srs = NULL;
-
-/*
-SELECT
-	CASE
-		WHEN (upper(auth_name) = 'EPSG' OR upper(auth_name) = 'EPSGA') AND length(COALESCE(auth_srid::text, '')) > 0
-			THEN upper(auth_name) || ':' || auth_srid
-		WHEN length(COALESCE(auth_name, '') || COALESCE(auth_srid::text, '')) > 0
-			THEN COALESCE(auth_name, '') || COALESCE(auth_srid::text, '')
-		ELSE ''
-	END,
-	proj4text,
-	srtext
-FROM spatial_ref_sys
-WHERE srid = X
-LIMIT 1
-*/
-
-	len = sizeof(char) * (strlen("SELECT CASE WHEN (upper(auth_name) = 'EPSG' OR upper(auth_name) = 'EPSGA') AND length(COALESCE(auth_srid::text, '')) > 0 THEN upper(auth_name) || ':' || auth_srid WHEN length(COALESCE(auth_name, '') || COALESCE(auth_srid::text, '')) > 0 THEN COALESCE(auth_name, '') || COALESCE(auth_srid::text, '') ELSE '' END, proj4text, srtext FROM spatial_ref_sys WHERE srid =  LIMIT 1") + MAX_INT_CHARLEN + 1);
-	sql = (char *) palloc(len);
-	if (NULL == sql) {
-		elog(ERROR, "rtpg_getSR: Could not allocate memory for sql\n");
-		return NULL;
-	}
-
-	spi_result = SPI_connect();
-	if (spi_result != SPI_OK_CONNECT) {
-		pfree(sql);
-		elog(ERROR, "rtpg_getSR: Could not connect to database using SPI\n");
-		return NULL;
-	}
-
-	/* execute query */
-	snprintf(sql, len, "SELECT CASE WHEN (upper(auth_name) = 'EPSG' OR upper(auth_name) = 'EPSGA') AND length(COALESCE(auth_srid::text, '')) > 0 THEN upper(auth_name) || ':' || auth_srid WHEN length(COALESCE(auth_name, '') || COALESCE(auth_srid::text, '')) > 0 THEN COALESCE(auth_name, '') || COALESCE(auth_srid::text, '') ELSE '' END, proj4text, srtext FROM spatial_ref_sys WHERE srid = %d LIMIT 1", srid);
-	POSTGIS_RT_DEBUGF(4, "SRS query: %s", sql);
-	spi_result = SPI_execute(sql, TRUE, 0);
-	SPI_pfree(sql);
-	if (spi_result != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
-		if (SPI_tuptable) SPI_freetuptable(tuptable);
-		SPI_finish();
-		elog(ERROR, "rtpg_getSR: Cannot find SRID (%d) in spatial_ref_sys", srid);
-		return NULL;
-	}
-
-	tupdesc = SPI_tuptable->tupdesc;
-	tuptable = SPI_tuptable;
-	tuple = tuptable->vals[0];
-
-	/* which column to use? */
-	for (i = 1; i < 4; i++) {
-		tmp = SPI_getvalue(tuple, tupdesc, i);
-
-		/* value AND GDAL supports this SR */
-		if (
-			SPI_result != SPI_ERROR_NOATTRIBUTE &&
-			SPI_result != SPI_ERROR_NOOUTFUNC &&
-			tmp != NULL &&
-			strlen(tmp) &&
-			rt_util_gdal_supported_sr(tmp)
-		) {
-			POSTGIS_RT_DEBUGF(4, "Value for column %d is %s", i, tmp);
-
-			len = strlen(tmp) + 1;
-			srs = SPI_palloc(sizeof(char) * len);
-			if (NULL == srs) {
-				pfree(tmp);
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_finish();
-				elog(ERROR, "rtpg_getSR: Could not allocate memory for spatial reference text\n");
-				return NULL;
-			}
-			strncpy(srs, tmp, len);
-			pfree(tmp);
-
-			break;
-		}
-
-		if (tmp != NULL)
-			pfree(tmp);
-		continue;
-	}
-
-	if (SPI_tuptable) SPI_freetuptable(tuptable);
-	SPI_finish();
-
-	/* unable to get SR info */
-	if (srs == NULL) {
-		if (SPI_tuptable) SPI_freetuptable(tuptable);
-		SPI_finish();
-		elog(ERROR, "rtpg_getSR: Could not find a viable spatial reference for SRID (%d)", srid);
-		return NULL;
-	}
-
-	return srs;
-}
-
-PG_FUNCTION_INFO_V1(RASTER_lib_version);
-Datum RASTER_lib_version(PG_FUNCTION_ARGS)
-{
-    char ver[64];
-    text *result;
-
-    snprintf(ver, 64, "%s r%d", POSTGIS_LIB_VERSION, POSTGIS_SVN_REVISION);
-    ver[63] = '\0';
-
-    result = cstring2text(ver);
-    PG_RETURN_TEXT_P(result);
-}
-
-PG_FUNCTION_INFO_V1(RASTER_lib_build_date);
-Datum RASTER_lib_build_date(PG_FUNCTION_ARGS)
-{
-    char *ver = POSTGIS_BUILD_DATE;
-    text *result;
-    result = palloc(VARHDRSZ  + strlen(ver));
-    SET_VARSIZE(result, VARHDRSZ + strlen(ver));
-    memcpy(VARDATA(result), ver, strlen(ver));
-    PG_RETURN_POINTER(result);
-}
-
-PG_FUNCTION_INFO_V1(RASTER_gdal_version);
-Datum RASTER_gdal_version(PG_FUNCTION_ARGS)
-{
-	const char *ver = rt_util_gdal_version("--version");
-	text *result;
-
-	/* add indicator if GDAL isn't configured right */
-	if (!rt_util_gdal_configured()) {
-		char *rtn = NULL;
-		rtn = palloc(strlen(ver) + strlen(" GDAL_DATA not found") + 1);
-		if (!rtn)
-			result = cstring2text(ver);
-		else {
-			sprintf(rtn, "%s GDAL_DATA not found", ver);
-			result = cstring2text(rtn);
-			pfree(rtn);
-		}
-	}
-	else
-		result = cstring2text(ver);
-
-	PG_RETURN_POINTER(result);
-}
-
-PG_FUNCTION_INFO_V1(RASTER_minPossibleValue);
-Datum RASTER_minPossibleValue(PG_FUNCTION_ARGS)
-{
-	text *pixeltypetext = NULL;
-	char *pixeltypechar = NULL;
-	rt_pixtype pixtype = PT_END;
-	double pixsize = 0;
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-
-	pixeltypetext = PG_GETARG_TEXT_P(0);
-	pixeltypechar = text_to_cstring(pixeltypetext);
-
-	pixtype = rt_pixtype_index_from_name(pixeltypechar);
-	if (pixtype == PT_END) {
-		elog(ERROR, "RASTER_minPossibleValue: Invalid pixel type: %s", pixeltypechar);
-		PG_RETURN_NULL();
-	}
-
-	pixsize = rt_pixtype_get_min_value(pixtype);
-
-	/*
-		correct pixsize of unsigned pixel types
-		example: for PT_8BUI, the value is CHAR_MIN but if char is signed, 
-			the value returned is -127 instead of 0.
-	*/
-	switch (pixtype) {
-		case PT_1BB:
-		case PT_2BUI:
-		case PT_4BUI:
-		case PT_8BUI:
-		case PT_16BUI:
-		case PT_32BUI:
-			pixsize = 0;
-			break;
-		default:
-			break;
-	}
-
-	PG_RETURN_FLOAT8(pixsize);
-}
-
-/**
- * Input is a string with hex chars in it.
- * Convert to binary and put in the result
- */
-PG_FUNCTION_INFO_V1(RASTER_in);
-Datum RASTER_in(PG_FUNCTION_ARGS)
-{
-	rt_raster raster;
-	char *hexwkb = PG_GETARG_CSTRING(0);
-	void *result = NULL;
-
-	POSTGIS_RT_DEBUG(3, "Starting");
-
-	raster = rt_raster_from_hexwkb(hexwkb, strlen(hexwkb));
-	if (raster == NULL)
-		PG_RETURN_NULL();
-
-	result = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	if (result == NULL)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(result, ((rt_pgraster*)result)->size);
-	PG_RETURN_POINTER(result);
-}
-
-/**
- * Given a RASTER structure, convert it to Hex and put it in a string
- */
-PG_FUNCTION_INFO_V1(RASTER_out);
-Datum RASTER_out(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	uint32_t hexwkbsize = 0;
-	char *hexwkb = NULL;
-
-	POSTGIS_RT_DEBUG(3, "Starting");
-
-	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_out: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	hexwkb = rt_raster_to_hexwkb(raster, FALSE, &hexwkbsize);
-	if (!hexwkb) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_out: Could not HEX-WKBize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* Free the raster objects used */
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	PG_RETURN_CSTRING(hexwkb);
-}
-
-/**
- * Return bytea object with raster in Well-Known-Binary form.
- */
-PG_FUNCTION_INFO_V1(RASTER_to_bytea);
-Datum RASTER_to_bytea(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	uint8_t *wkb = NULL;
-	uint32_t wkb_size = 0;
-	bytea *result = NULL;
-	int result_size = 0;
-
-	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	/* Get raster object */
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_to_bytea: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* Parse raster to wkb object */
-	wkb = rt_raster_to_wkb(raster, FALSE, &wkb_size);
-	if (!wkb) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_to_bytea: Could not allocate and generate WKB data");
-		PG_RETURN_NULL();
-	}
-
-	/* Create varlena object */
-	result_size = wkb_size + VARHDRSZ;
-	result = (bytea *)palloc(result_size);
-	SET_VARSIZE(result, result_size);
-	memcpy(VARDATA(result), wkb, VARSIZE(result) - VARHDRSZ);
-
-	/* Free raster objects used */
-	rt_raster_destroy(raster);
-	pfree(wkb);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	PG_RETURN_POINTER(result);
-}
-
-/**
- * Return bytea object with raster in Well-Known-Binary form requested using ST_AsBinary function.
- */
-PG_FUNCTION_INFO_V1(RASTER_to_binary);
-Datum RASTER_to_binary(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	uint8_t *wkb = NULL;
-	uint32_t wkb_size = 0;
-	char *result = NULL;
-	int result_size = 0;
-	int outasin = FALSE;
-
-	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	/* Get raster object */
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_to_binary: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	if (!PG_ARGISNULL(1))
-		outasin = PG_GETARG_BOOL(1);
-
-	/* Parse raster to wkb object */
-	wkb = rt_raster_to_wkb(raster, outasin, &wkb_size);
-	if (!wkb) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_to_binary: Could not allocate and generate WKB data");
-		PG_RETURN_NULL();
-	}
-
-	/* Create varlena object */
-	result_size = wkb_size + VARHDRSZ;
-	result = (char *)palloc(result_size);
-	SET_VARSIZE(result, result_size);
-	memcpy(VARDATA(result), wkb, VARSIZE(result) - VARHDRSZ);
-
-	/* Free raster objects used */
-	rt_raster_destroy(raster);
-	pfree(wkb);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	PG_RETURN_POINTER(result);
-}
-
-/**
- * Return the convex hull of this raster
- */
-PG_FUNCTION_INFO_V1(RASTER_convex_hull);
-Datum RASTER_convex_hull(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster;
-	rt_raster raster;
-	LWGEOM *geom = NULL;
-	GSERIALIZED* gser = NULL;
-	size_t gser_size;
-	int err = ES_NONE;
-
-	bool minhull = FALSE;
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-
-	/* # of args */
-	if (PG_NARGS() > 1)
-		minhull = TRUE;
-
-	if (!minhull) {
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-		raster = rt_raster_deserialize(pgraster, TRUE);
-	}
-	else {
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-		raster = rt_raster_deserialize(pgraster, FALSE);
-	}
-
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_convex_hull: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	if (!minhull)
-		err = rt_raster_get_convex_hull(raster, &geom);
-	else {
-		int nband = -1;
-
-		/* get arg 1 */
-		if (!PG_ARGISNULL(1)) {
-			nband = PG_GETARG_INT32(1);
-			if (!rt_raster_has_band(raster, nband - 1)) {
-				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				PG_RETURN_NULL();
-			}
-			nband = nband - 1;
-		}
-
-		err = rt_raster_get_perimeter(raster, nband, &geom);
-	}
-
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	if (err != ES_NONE) {
-		elog(ERROR, "RASTER_convex_hull: Could not get raster's convex hull");
-		PG_RETURN_NULL();
-	}
-	else if (geom == NULL) {
-		elog(NOTICE, "Raster's convex hull is NULL");
-		PG_RETURN_NULL();
-	}
-
-	gser = gserialized_from_lwgeom(geom, 0, &gser_size);
-	lwgeom_free(geom);
-
-	SET_VARSIZE(gser, gser_size);
-	PG_RETURN_POINTER(gser);
-}
-
-PG_FUNCTION_INFO_V1(RASTER_dumpAsPolygons);
-Datum RASTER_dumpAsPolygons(PG_FUNCTION_ARGS) {
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-	rt_geomval geomval;
-	rt_geomval geomval2;
-	int call_cntr;
-	int max_calls;
-
-	/* stuff done only on the first call of the function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-		int numbands;
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		int nband;
-		bool exclude_nodata_value = TRUE;
-		int nElements;
-
-		POSTGIS_RT_DEBUG(2, "RASTER_dumpAsPolygons first call");
-
-		/* 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);
-
-		/* Get input arguments */
-		if (PG_ARGISNULL(0)) {
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			ereport(ERROR, (
-				errcode(ERRCODE_OUT_OF_MEMORY),
-				errmsg("Could not deserialize raster")
-			));
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		if (!PG_ARGISNULL(1))
-			nband = PG_GETARG_UINT32(1);
-		else
-			nband = 1; /* By default, first band */
-
-		POSTGIS_RT_DEBUGF(3, "band %d", nband);
-		numbands = rt_raster_get_num_bands(raster);
-
-		if (nband < 1 || nband > numbands) {
-			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		if (!PG_ARGISNULL(2))
-			exclude_nodata_value = PG_GETARG_BOOL(2);
-
-		/* see if band is NODATA */
-		if (rt_band_get_isnodata_flag(rt_raster_get_band(raster, nband - 1))) {
-			POSTGIS_RT_DEBUGF(3, "Band at index %d is NODATA. Returning NULL", nband);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* Polygonize raster */
-
-		/**
-		 * Dump raster
-		 */
-		geomval = rt_raster_gdal_polygonize(raster, nband - 1, exclude_nodata_value, &nElements);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		if (NULL == geomval) {
-			ereport(ERROR, (
-				errcode(ERRCODE_NO_DATA_FOUND),
-				errmsg("Could not polygonize raster")
-			));
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		POSTGIS_RT_DEBUGF(3, "raster dump, %d elements returned", nElements);
-
-		/* Store needed information */
-		funcctx->user_fctx = geomval;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = nElements;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg("function returning record called in context that cannot accept type record")
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	geomval2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 2;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple    tuple;
-		Datum        result;
-
-		GSERIALIZED *gser = NULL;
-		size_t gser_size = 0;
-
-		POSTGIS_RT_DEBUGF(3, "call number %d", call_cntr);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		/* convert LWGEOM to GSERIALIZED */
-		gser = gserialized_from_lwgeom(lwpoly_as_lwgeom(geomval2[call_cntr].geom), 0, &gser_size);
-		lwgeom_free(lwpoly_as_lwgeom(geomval2[call_cntr].geom));
-
-		values[0] = PointerGetDatum(gser);
-		values[1] = Float8GetDatum(geomval2[call_cntr].val);
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		pfree(geomval2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Make a new raster with no bands
- */
-PG_FUNCTION_INFO_V1(RASTER_makeEmpty);
-Datum RASTER_makeEmpty(PG_FUNCTION_ARGS)
-{
-	uint16 width = 0, height = 0;
-	double ipx = 0, ipy = 0, scalex = 0, scaley = 0, skewx = 0, skewy = 0;
-	int32_t srid = SRID_UNKNOWN;
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster;
-
-	if (PG_NARGS() < 9) {
-		elog(ERROR, "RASTER_makeEmpty: ST_MakeEmptyRaster requires 9 args");
-		PG_RETURN_NULL();
-	} 
-
-	if (!PG_ARGISNULL(0))
-		width = PG_GETARG_UINT16(0);
-
-	if (!PG_ARGISNULL(1))
-		height = PG_GETARG_UINT16(1);
-
-	if (!PG_ARGISNULL(2))
-		ipx = PG_GETARG_FLOAT8(2);
-
-	if (!PG_ARGISNULL(3))
-		ipy = PG_GETARG_FLOAT8(3);
-
-	if (!PG_ARGISNULL(4))
-		scalex = PG_GETARG_FLOAT8(4);
-
-	if (!PG_ARGISNULL(5))
-		scaley = PG_GETARG_FLOAT8(5);
-
-	if (!PG_ARGISNULL(6))
-		skewx = PG_GETARG_FLOAT8(6);
-
-	if (!PG_ARGISNULL(7))
-		skewy = PG_GETARG_FLOAT8(7);
-
-	if (!PG_ARGISNULL(8))
-		srid = PG_GETARG_INT32(8);
-
-	POSTGIS_RT_DEBUGF(4, "%dx%d, ip:%g,%g, scale:%g,%g, skew:%g,%g srid:%d",
-		width, height, ipx, ipy, scalex, scaley,
-		skewx, skewy, srid);
-
-	raster = rt_raster_new(width, height);
-	if (raster == NULL)
-		PG_RETURN_NULL(); /* error was supposedly printed already */
-
-	rt_raster_set_scale(raster, scalex, scaley);
-	rt_raster_set_offsets(raster, ipx, ipy);
-	rt_raster_set_skews(raster, skewx, skewy);
-	rt_raster_set_srid(raster, srid);
-
-	pgraster = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	if (!pgraster)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgraster, pgraster->size);
-	PG_RETURN_POINTER(pgraster);
-}
-
-/**
- * Return the SRID associated with the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_getSRID);
-Datum RASTER_getSRID(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    int32_t srid;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getSRID: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    srid = rt_raster_get_srid(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_INT32(srid);
-}
-
-/**
- * Set the SRID associated with the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_setSRID);
-Datum RASTER_setSRID(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster;
-	int32_t newSRID = PG_GETARG_INT32(1);
-
-	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-	pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setSRID: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	rt_raster_set_srid(raster, newSRID);
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn) PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Return the width of the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_getWidth);
-Datum RASTER_getWidth(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    uint16_t width;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getWidth: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    width = rt_raster_get_width(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_INT32(width);
-}
-
-/**
- * Return the height of the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_getHeight);
-Datum RASTER_getHeight(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    uint16_t height;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getHeight: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    height = rt_raster_get_height(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_INT32(height);
-}
-
-/**
- * Return the number of bands included in the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_getNumBands);
-Datum RASTER_getNumBands(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    int32_t num_bands;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getNumBands: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    num_bands = rt_raster_get_num_bands(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_INT32(num_bands);
-}
-
-/**
- * Return X scale from georeference of the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_getXScale);
-Datum RASTER_getXScale(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    double xsize;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getXScale: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    xsize = rt_raster_get_x_scale(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(xsize);
-}
-
-/**
- * Return Y scale from georeference of the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_getYScale);
-Datum RASTER_getYScale(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    double ysize;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getYScale: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    ysize = rt_raster_get_y_scale(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(ysize);
-}
-
-/**
- * Set the scale of the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_setScale);
-Datum RASTER_setScale(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster;
-	double size = PG_GETARG_FLOAT8(1);
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setScale: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	rt_raster_set_scale(raster, size, size);
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Set the pixel size of the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_setScaleXY);
-Datum RASTER_setScaleXY(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster;
-	double xscale = PG_GETARG_FLOAT8(1);
-	double yscale = PG_GETARG_FLOAT8(2);
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setScaleXY: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	rt_raster_set_scale(raster, xscale, yscale);
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Return value of the raster skew about the X axis.
- */
-PG_FUNCTION_INFO_V1(RASTER_getXSkew);
-Datum RASTER_getXSkew(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    double xskew;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getXSkew: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    xskew = rt_raster_get_x_skew(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(xskew);
-}
-
-/**
- * Return value of the raster skew about the Y axis.
- */
-PG_FUNCTION_INFO_V1(RASTER_getYSkew);
-Datum RASTER_getYSkew(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    double yskew;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getYSkew: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    yskew = rt_raster_get_y_skew(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(yskew);
-}
-
-/**
- * Set the skew of the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_setSkew);
-Datum RASTER_setSkew(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster;
-	double skew = PG_GETARG_FLOAT8(1);
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setSkew: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	rt_raster_set_skews(raster, skew, skew);
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Set the skew of the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_setSkewXY);
-Datum RASTER_setSkewXY(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster;
-	double xskew = PG_GETARG_FLOAT8(1);
-	double yskew = PG_GETARG_FLOAT8(2);
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setSkewXY: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	rt_raster_set_skews(raster, xskew, yskew);
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Return value of the raster offset in the X dimension.
- */
-PG_FUNCTION_INFO_V1(RASTER_getXUpperLeft);
-Datum RASTER_getXUpperLeft(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    double xul;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getXUpperLeft: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    xul = rt_raster_get_x_offset(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(xul);
-}
-
-/**
- * Return value of the raster offset in the Y dimension.
- */
-PG_FUNCTION_INFO_V1(RASTER_getYUpperLeft);
-Datum RASTER_getYUpperLeft(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    double yul;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getYUpperLeft: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    yul = rt_raster_get_y_offset(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(yul);
-}
-
-/**
- * Set the raster offset in the X and Y dimension.
- */
-PG_FUNCTION_INFO_V1(RASTER_setUpperLeftXY);
-Datum RASTER_setUpperLeftXY(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster;
-	double xoffset = PG_GETARG_FLOAT8(1);
-	double yoffset = PG_GETARG_FLOAT8(2);
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setUpperLeftXY: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	rt_raster_set_offsets(raster, xoffset, yoffset);
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size); 
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Return the pixel width of the raster. The pixel width is
- * a read-only, dynamically computed value derived from the 
- * X Scale and the Y Skew.
- *
- * Pixel Width = sqrt( X Scale * X Scale + Y Skew * Y Skew )
- */
-PG_FUNCTION_INFO_V1(RASTER_getPixelWidth);
-Datum RASTER_getPixelWidth(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    double xscale;
-    double yskew;
-    double pwidth;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if (!raster) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getPixelWidth: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    xscale = rt_raster_get_x_scale(raster);
-    yskew = rt_raster_get_y_skew(raster);
-    pwidth = sqrt(xscale*xscale + yskew*yskew);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(pwidth);
-}
-
-/**
- * Return the pixel height of the raster. The pixel height is
- * a read-only, dynamically computed value derived from the 
- * Y Scale and the X Skew.
- *
- * Pixel Height = sqrt( Y Scale * Y Scale + X Skew * X Skew )
- */
-PG_FUNCTION_INFO_V1(RASTER_getPixelHeight);
-Datum RASTER_getPixelHeight(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster;
-    rt_raster raster;
-    double yscale;
-    double xskew;
-    double pheight;
-
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if (!raster) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getPixelHeight: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    yscale = rt_raster_get_y_scale(raster);
-    xskew = rt_raster_get_x_skew(raster);
-    pheight = sqrt(yscale*yscale + xskew*xskew);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(pheight);
-}
-
-/**
- * Set the geotransform of the supplied raster. Returns the raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_setGeotransform);
-Datum RASTER_setGeotransform(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster;
-	float8 imag, jmag, theta_i, theta_ij, xoffset, yoffset;
-
-	if (
-		PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ||
-		PG_ARGISNULL(3) || PG_ARGISNULL(4) ||
-		PG_ARGISNULL(5) || PG_ARGISNULL(6)
-	) {
-		PG_RETURN_NULL();
-	}
-
-	/* get the inputs */
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	imag = PG_GETARG_FLOAT8(1);
-	jmag = PG_GETARG_FLOAT8(2);
-	theta_i = PG_GETARG_FLOAT8(3);
-	theta_ij = PG_GETARG_FLOAT8(4);
-	xoffset = PG_GETARG_FLOAT8(5);
-	yoffset = PG_GETARG_FLOAT8(6);
-
-	raster = rt_raster_deserialize(pgraster, TRUE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setGeotransform: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* store the new geotransform */
-	rt_raster_set_phys_params(raster, imag,jmag,theta_i,theta_ij);
-	rt_raster_set_offsets(raster, xoffset, yoffset);
-
-	/* prep the return value */
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL(); 
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Calculates the physically relevant parameters of the supplied raster's
- * geotransform. Returns them as a set.
- */
-PG_FUNCTION_INFO_V1(RASTER_getGeotransform);
-Datum RASTER_getGeotransform(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_raster raster = NULL;
-
-    double imag;
-    double jmag;
-    double theta_i;
-    double theta_ij;
-		/*
-    double xoffset;
-    double yoffset;
-		*/
-
-    TupleDesc result_tuple; /* for returning a composite */
-    int values_length = 6;
-    Datum values[values_length];
-    bool nulls[values_length];
-    HeapTuple heap_tuple ;   /* instance of the tuple to return */
-    Datum result;
-
-    POSTGIS_RT_DEBUG(3, "RASTER_getGeotransform: Starting");
-
-    /* get argument */
-    if (PG_ARGISNULL(0))
-        PG_RETURN_NULL();
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    /* raster */
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if (!raster) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getGeotransform: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    /* do the calculation */
-    rt_raster_calc_phys_params(
-            rt_raster_get_x_scale(raster),
-            rt_raster_get_x_skew(raster),
-            rt_raster_get_y_skew(raster),
-            rt_raster_get_y_scale(raster),
-            &imag, &jmag, &theta_i, &theta_ij) ;
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    /* setup the return value infrastructure */
-    if (get_call_result_type(fcinfo, NULL, &result_tuple) != TYPEFUNC_COMPOSITE) {
-        ereport(ERROR, (
-            errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-            errmsg("RASTER_getGeotransform(): function returning record called in context that cannot accept type record"
-            )
-        ));
-        PG_RETURN_NULL();
-    }
-
-    BlessTupleDesc(result_tuple);
-
-    /* get argument */
-    /* prep the composite return value */
-    /* construct datum array */
-    values[0] = Float8GetDatum(imag);
-    values[1] = Float8GetDatum(jmag);
-    values[2] = Float8GetDatum(theta_i);
-    values[3] = Float8GetDatum(theta_ij);
-    values[4] = Float8GetDatum(rt_raster_get_x_offset(raster));
-    values[5] = Float8GetDatum(rt_raster_get_y_offset(raster));
-
-    memset(nulls, FALSE, sizeof(bool) * values_length);
-
-    /* stick em on the heap */
-    heap_tuple = heap_form_tuple(result_tuple, values, nulls);
-
-    /* make the tuple into a datum */
-    result = HeapTupleGetDatum(heap_tuple);
-
-    PG_RETURN_DATUM(result);
-}
-
-
-/**
- * Set the rotation of the raster. This method will change the X Scale,
- * Y Scale, X Skew and Y Skew properties all at once to keep the rotations
- * about the X and Y axis uniform.
- *
- * This method will set the rotation about the X axis and Y axis based on
- * the pixel size. This pixel size may not be uniform if rasters have different
- * skew values (the raster cells are diamond-shaped). If a raster has different
- * skew values has a rotation set upon it, this method will remove the 
- * diamond distortions of the cells, as each axis will have the same rotation.
- */
-PG_FUNCTION_INFO_V1(RASTER_setRotation);
-Datum RASTER_setRotation(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster;
-	double rotation = PG_GETARG_FLOAT8(1);
-	double imag, jmag, theta_i, theta_ij;
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (! raster ) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setRotation: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* preserve all defining characteristics of the grid except for rotation */
-	rt_raster_get_phys_params(raster, &imag, &jmag, &theta_i, &theta_ij);
-	rt_raster_set_phys_params(raster, imag, jmag, rotation, theta_ij);
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Return pixel type of the specified band of raster.
- * Band index is 1-based.
- */
-PG_FUNCTION_INFO_V1(RASTER_getBandPixelType);
-Datum RASTER_getBandPixelType(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_raster raster = NULL;
-    rt_band band = NULL;
-    rt_pixtype pixtype;
-    int32_t bandindex;
-
-    /* Deserialize raster */
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-    /* Index is 1-based */
-    bandindex = PG_GETARG_INT32(1);
-    if ( bandindex < 1 ) {
-        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    raster = rt_raster_deserialize(pgraster, FALSE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getBandPixelType: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    /* Fetch requested band and its pixel type */
-    band = rt_raster_get_band(raster, bandindex - 1);
-    if ( ! band ) {
-        elog(NOTICE, "Could not find raster band of index %d when getting pixel type. Returning NULL", bandindex);
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    pixtype = rt_band_get_pixtype(band);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_INT32(pixtype);
-}
-
-/**
- * Return name of pixel type of the specified band of raster.
- * Band index is 1-based.
- * NOTE: This is unofficial utility not included in the spec.
- */
-PG_FUNCTION_INFO_V1(RASTER_getBandPixelTypeName);
-Datum RASTER_getBandPixelTypeName(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_raster raster = NULL;
-    rt_band band = NULL;
-    rt_pixtype pixtype;
-    int32_t bandindex;
-    const size_t name_size = 8; /* size of type name */
-    size_t size = 0;
-    char *ptr = NULL;
-    text *result = NULL;
-
-    /* Deserialize raster */
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-    /* Index is 1-based */
-    bandindex = PG_GETARG_INT32(1);
-    if ( bandindex < 1 ) {
-        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    raster = rt_raster_deserialize(pgraster, FALSE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getBandPixelTypeName: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    /* Fetch requested band and its pixel type */
-    band = rt_raster_get_band(raster, bandindex - 1);
-    if ( ! band ) {
-        elog(NOTICE, "Could not find raster band of index %d when getting pixel type name. Returning NULL", bandindex);
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    pixtype = rt_band_get_pixtype(band);
-
-    result = palloc(VARHDRSZ + name_size);
-    /* We don't need to check for NULL pointer, because if out of memory, palloc
-     * exit via elog(ERROR). It never returns NULL.
-     */
-
-    memset(VARDATA(result), 0, name_size);
-    ptr = (char *)result + VARHDRSZ;
-		strcpy(ptr, rt_pixtype_name(pixtype));
-
-    size = VARHDRSZ + strlen(ptr);
-    SET_VARSIZE(result, size);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_TEXT_P(result);
-}
-
-/**
- * Return nodata value of the specified band of raster.
- * The value is always returned as FLOAT32 even if the pixel type is INTEGER.
- */
-PG_FUNCTION_INFO_V1(RASTER_getBandNoDataValue);
-Datum RASTER_getBandNoDataValue(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_raster raster = NULL;
-    rt_band band = NULL;
-    int32_t bandindex;
-    double nodata;
-
-    /* Deserialize raster */
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-    /* Index is 1-based */
-    bandindex = PG_GETARG_INT32(1);
-    if ( bandindex < 1 ) {
-        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    raster = rt_raster_deserialize(pgraster, FALSE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getBandNoDataValue: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    /* Fetch requested band and its nodata value */
-    band = rt_raster_get_band(raster, bandindex - 1);
-    if ( ! band ) {
-        elog(NOTICE, "Could not find raster band of index %d when getting band nodata value. Returning NULL", bandindex);
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    if ( ! rt_band_get_hasnodata_flag(band) ) {
-        /* Raster does not have a nodata value set so we return NULL */
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    rt_band_get_nodata(band, &nodata);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(nodata);
-}
-
-
-/**
- * Set the nodata value of the specified band of raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_setBandNoDataValue);
-Datum RASTER_setBandNoDataValue(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	double nodata;
-	int32_t bandindex;
-	bool forcechecking = FALSE;
-	bool skipset = FALSE;
-
-	/* Deserialize raster */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	/* Check index is not NULL or smaller than 1 */
-	if (PG_ARGISNULL(1))
-		bandindex = -1;
-	else
-		bandindex = PG_GETARG_INT32(1);
-	if (bandindex < 1) {
-		elog(NOTICE, "Invalid band index (must use 1-based). Nodata value not set. Returning original raster");
-		skipset = TRUE;
-	}
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setBandNoDataValue: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	if (!skipset) {
-		/* Fetch requested band */
-		band = rt_raster_get_band(raster, bandindex - 1);
-		if (!band) {
-			elog(NOTICE, "Could not find raster band of index %d when setting pixel value. Nodata value not set. Returning original raster", bandindex);
-		}
-		else {
-			if (!PG_ARGISNULL(3))
-				forcechecking = PG_GETARG_BOOL(3);
-
-			if (PG_ARGISNULL(2)) {
-				/* Set the hasnodata flag to FALSE */
-				rt_band_set_hasnodata_flag(band, FALSE);
-				POSTGIS_RT_DEBUGF(3, "Raster band %d does not have a nodata value", bandindex);
-			}
-			else {
-				/* Get the nodata value */
-				nodata = PG_GETARG_FLOAT8(2);
-
-				/* Set the band's nodata value */
-				rt_band_set_nodata(band, nodata, NULL);
-
-				/* Recheck all pixels if requested */
-				if (forcechecking)
-					rt_band_check_is_nodata(band);
-			}
-		}
-	}
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-PG_FUNCTION_INFO_V1(RASTER_setBandIsNoData);
-Datum RASTER_setBandIsNoData(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	int32_t bandindex;
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setBandIsNoData: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* Check index is not NULL or smaller than 1 */
-	if (PG_ARGISNULL(1))
-		bandindex = -1;
-	else
-		bandindex = PG_GETARG_INT32(1);
-
-	if (bandindex < 1)
-		elog(NOTICE, "Invalid band index (must use 1-based). Isnodata flag not set. Returning original raster");
-	else {
-		/* Fetch requested band */
-		band = rt_raster_get_band(raster, bandindex - 1);
-
-		if (!band)
-			elog(NOTICE, "Could not find raster band of index %d. Isnodata flag not set. Returning original raster", bandindex);
-		else {
-			if (!rt_band_get_hasnodata_flag(band)) {
-				elog(NOTICE, "Band of index %d has no NODATA so cannot be NODATA. Returning original raster", bandindex);
-			}
-			/* Set the band's nodata value */
-			else {
-				rt_band_set_isnodata_flag(band, 1);
-			}
-		}
-	}
-
-	/* Serialize raster again */
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn) PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-PG_FUNCTION_INFO_V1(RASTER_bandIsNoData);
-Datum RASTER_bandIsNoData(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_raster raster = NULL;
-    rt_band band = NULL;
-    int32_t bandindex;
-    bool forcechecking = FALSE;
-    bool bandisnodata = FALSE;
-
-    /* Index is 1-based */
-    bandindex = PG_GETARG_INT32(1);
-    if ( bandindex < 1 ) {
-        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-        PG_RETURN_NULL();
-    }
-
-    /* Deserialize raster */
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-    raster = rt_raster_deserialize(pgraster, FALSE);
-    if ( ! raster ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_bandIsNoData: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    /* Fetch requested band and its nodata value */
-    band = rt_raster_get_band(raster, bandindex - 1);
-    if ( ! band ) {
-        elog(NOTICE, "Could not find raster band of index %d when determining if band is nodata. Returning NULL", bandindex);
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    forcechecking = PG_GETARG_BOOL(2);
-
-    bandisnodata = (forcechecking) ?
-        rt_band_check_is_nodata(band) : rt_band_get_isnodata_flag(band);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_BOOL(bandisnodata);
-}
-
-/**
- * Return the path of the raster for out-db raster.
- */
-PG_FUNCTION_INFO_V1(RASTER_getBandPath);
-Datum RASTER_getBandPath(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	int32_t bandindex;
-	const char *bandpath;
-	text *result;
-
-	/* Index is 1-based */
-	bandindex = PG_GETARG_INT32(1);
-	if (bandindex < 1) {
-		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-		PG_RETURN_NULL();
-	}
-
-	/* Deserialize raster */
-	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-	pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_getBandPath: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* Fetch requested band and its nodata value */
-	band = rt_raster_get_band(raster, bandindex - 1);
-	if (!band) {
-		elog(
-			NOTICE,
-			"Could not find raster band of index %d when getting band path. Returning NULL",
-			bandindex
-		);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	bandpath = rt_band_get_ext_path(band);
-	if (!bandpath) {
-		rt_band_destroy(band);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	result = (text *) palloc(VARHDRSZ + strlen(bandpath) + 1);
-	SET_VARSIZE(result, VARHDRSZ + strlen(bandpath) + 1);
-	strcpy((char *) VARDATA(result), bandpath);
-
-	rt_band_destroy(band);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	PG_RETURN_TEXT_P(result);
-}
-
-/**
- * Return value of a single pixel.
- * Pixel location is specified by 1-based index of Nth band of raster and
- * X,Y coordinates (X <= RT_Width(raster) and Y <= RT_Height(raster)).
- *
- * TODO: Should we return NUMERIC instead of FLOAT8 ?
- */
-PG_FUNCTION_INFO_V1(RASTER_getPixelValue);
-Datum RASTER_getPixelValue(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_raster raster = NULL;
-    rt_band band = NULL;
-    double pixvalue = 0;
-    int32_t bandindex = 0;
-    int32_t x = 0;
-    int32_t y = 0;
-    int result = 0;
-    bool exclude_nodata_value = TRUE;
-		int isnodata = 0;
-
-    /* Index is 1-based */
-    bandindex = PG_GETARG_INT32(1);
-    if ( bandindex < 1 ) {
-        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-        PG_RETURN_NULL();
-    }
-
-    x = PG_GETARG_INT32(2);
-
-    y = PG_GETARG_INT32(3);
-
-    exclude_nodata_value = PG_GETARG_BOOL(4);
-
-    POSTGIS_RT_DEBUGF(3, "Pixel coordinates (%d, %d)", x, y);
-
-    /* Deserialize raster */
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-    raster = rt_raster_deserialize(pgraster, FALSE);
-    if (!raster) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_getPixelValue: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    /* Fetch Nth band using 0-based internal index */
-    band = rt_raster_get_band(raster, bandindex - 1);
-    if (! band) {
-        elog(NOTICE, "Could not find raster band of index %d when getting pixel "
-                "value. Returning NULL", bandindex);
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-    /* Fetch pixel using 0-based coordinates */
-    result = rt_band_get_pixel(band, x - 1, y - 1, &pixvalue, &isnodata);
-
-    /* If the result is -1 or the value is nodata and we take nodata into account
-     * then return nodata = NULL */
-    if (result != ES_NONE || (exclude_nodata_value && isnodata)) {
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_FLOAT8(pixvalue);
-}
-
-/* ---------------------------------------------------------------- */
-/*  ST_DumpValues function                                          */
-/* ---------------------------------------------------------------- */
-
-typedef struct rtpg_dumpvalues_arg_t *rtpg_dumpvalues_arg;
-struct rtpg_dumpvalues_arg_t {
-	int numbands;
-	int rows;
-	int columns;
-
-	int *nbands; /* 0-based */
-	Datum **values;
-	bool **nodata;
-};
-
-static rtpg_dumpvalues_arg rtpg_dumpvalues_arg_init() {
-	rtpg_dumpvalues_arg arg = NULL;
-
-	arg = palloc(sizeof(struct rtpg_dumpvalues_arg_t));
-	if (arg == NULL) {
-		elog(ERROR, "rtpg_dumpvalues_arg_init: Could not allocate memory for arguments");
-		return NULL;
-	}
-
-	arg->numbands = 0;
-	arg->rows = 0;
-	arg->columns = 0;
-
-	arg->nbands = NULL;
-	arg->values = NULL;
-	arg->nodata = NULL;
-
-	return arg;
-}
-
-static void rtpg_dumpvalues_arg_destroy(rtpg_dumpvalues_arg arg) {
-	int i = 0;
-
-	if (arg->numbands) {
-		if (arg->nbands != NULL)
-			pfree(arg->nbands);
-
-		if (arg->values != NULL) {
-			for (i = 0; i < arg->numbands; i++) {
-
-				if (arg->values[i] != NULL)
-					pfree(arg->values[i]);
-
-				if (arg->nodata[i] != NULL)
-					pfree(arg->nodata[i]);
-
-			}
-
-			pfree(arg->values);
-		}
-
-		if (arg->nodata != NULL)
-			pfree(arg->nodata);
-	}
-
-	pfree(arg);
-}
-
-PG_FUNCTION_INFO_V1(RASTER_dumpValues);
-Datum RASTER_dumpValues(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-	int call_cntr;
-	int max_calls;
-	int i = 0;
-	int x = 0;
-	int y = 0;
-	int z = 0;
-
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-
-	rtpg_dumpvalues_arg arg1 = NULL;
-	rtpg_dumpvalues_arg arg2 = NULL;
-
-	/* stuff done only on the first call of the function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-		int numbands = 0;
-		int j = 0;
-		bool exclude_nodata_value = TRUE;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-
-		double val = 0;
-		int isnodata = 0;
-
-		POSTGIS_RT_DEBUG(2, "RASTER_dumpValues first call");
-
-		/* 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);
-
-		/* Get input arguments */
-		if (PG_ARGISNULL(0)) {
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			ereport(ERROR, (
-				errcode(ERRCODE_OUT_OF_MEMORY),
-				errmsg("Could not deserialize raster")
-			));
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* check that raster is not empty */
-		/*
-		if (rt_raster_is_empty(raster)) {
-			elog(NOTICE, "Raster provided is empty");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		*/
-
-		/* raster has bands */
-		numbands = rt_raster_get_num_bands(raster); 
-		if (!numbands) {
-			elog(NOTICE, "Raster provided has no bands");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* initialize arg1 */
-		arg1 = rtpg_dumpvalues_arg_init();
-		if (arg1 == NULL) {
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_dumpValues: Could not initialize argument structure");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* nband, array */
-		if (!PG_ARGISNULL(1)) {
-			array = PG_GETARG_ARRAYTYPE_P(1);
-			etype = ARR_ELEMTYPE(array);
-			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-			switch (etype) {
-				case INT2OID:
-				case INT4OID:
-					break;
-				default:
-					rtpg_dumpvalues_arg_destroy(arg1);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_dumpValues: Invalid data type for band indexes");
-					SRF_RETURN_DONE(funcctx);
-					break;
-			}
-
-			deconstruct_array(array, etype, typlen, typbyval, typalign, &e, &nulls, &(arg1->numbands));
-
-			arg1->nbands = palloc(sizeof(int) * arg1->numbands);
-			if (arg1->nbands == NULL) {
-				rtpg_dumpvalues_arg_destroy(arg1);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_dumpValues: Could not allocate memory for band indexes");
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			for (i = 0, j = 0; i < arg1->numbands; i++) {
-				if (nulls[i]) continue;
-
-				switch (etype) {
-					case INT2OID:
-						arg1->nbands[j] = DatumGetInt16(e[i]) - 1;
-						break;
-					case INT4OID:
-						arg1->nbands[j] = DatumGetInt32(e[i]) - 1;
-						break;
-				}
-
-				j++;
-			}
-
-			if (j < arg1->numbands) {
-				arg1->nbands = repalloc(arg1->nbands, sizeof(int) * j);
-				if (arg1->nbands == NULL) {
-					rtpg_dumpvalues_arg_destroy(arg1);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_dumpValues: Could not reallocate memory for band indexes");
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				arg1->numbands = j;
-			}
-
-			/* validate nbands */
-			for (i = 0; i < arg1->numbands; i++) {
-				if (!rt_raster_has_band(raster, arg1->nbands[i])) {
-					elog(NOTICE, "Band at index %d not found in raster", arg1->nbands[i] + 1);
-					rtpg_dumpvalues_arg_destroy(arg1);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					SRF_RETURN_DONE(funcctx);
-				}
-			}
-
-		}
-		else {
-			arg1->numbands = numbands;
-			arg1->nbands = palloc(sizeof(int) * arg1->numbands);
-
-			if (arg1->nbands == NULL) {
-				rtpg_dumpvalues_arg_destroy(arg1);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_dumpValues: Could not allocate memory for band indexes");
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			for (i = 0; i < arg1->numbands; i++) {
-				arg1->nbands[i] = i;
-				POSTGIS_RT_DEBUGF(4, "arg1->nbands[%d] = %d", arg1->nbands[i], i);
-			}
-		}
-
-		arg1->rows = rt_raster_get_height(raster);
-		arg1->columns = rt_raster_get_width(raster);
-
-		/* exclude_nodata_value */
-		if (!PG_ARGISNULL(2))
-			exclude_nodata_value = PG_GETARG_BOOL(2);
-		POSTGIS_RT_DEBUGF(4, "exclude_nodata_value = %d", exclude_nodata_value);
-
-		/* allocate memory for each band's values and nodata flags */
-		arg1->values = palloc(sizeof(Datum *) * arg1->numbands);
-		arg1->nodata = palloc(sizeof(bool *) * arg1->numbands);
-		if (arg1->values == NULL || arg1->nodata == NULL) {
-			rtpg_dumpvalues_arg_destroy(arg1);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_dumpValues: Could not allocate memory for pixel values");
-			SRF_RETURN_DONE(funcctx);
-		}
-		memset(arg1->values, 0, sizeof(Datum *) * arg1->numbands);
-		memset(arg1->nodata, 0, sizeof(bool *) * arg1->numbands);
-
-		/* get each band and dump data */
-		for (z = 0; z < arg1->numbands; z++) {
-			/* shortcut if raster is empty */
-			if (rt_raster_is_empty(raster))
-				break;
-
-			band = rt_raster_get_band(raster, arg1->nbands[z]);
-			if (!band) {
-				int nband = arg1->nbands[z] + 1;
-				rtpg_dumpvalues_arg_destroy(arg1);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_dumpValues: Could not get band at index %d", nband);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* allocate memory for values and nodata flags */
-			arg1->values[z] = palloc(sizeof(Datum) * arg1->rows * arg1->columns);
-			arg1->nodata[z] = palloc(sizeof(bool) * arg1->rows * arg1->columns);
-			if (arg1->values[z] == NULL || arg1->nodata[z] == NULL) {
-				rtpg_dumpvalues_arg_destroy(arg1);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_dumpValues: Could not allocate memory for pixel values");
-				SRF_RETURN_DONE(funcctx);
-			}
-			memset(arg1->values[z], 0, sizeof(Datum) * arg1->rows * arg1->columns);
-			memset(arg1->nodata[z], 0, sizeof(bool) * arg1->rows * arg1->columns);
-
-			i = 0;
-
-			/* shortcut if band is NODATA */
-			if (rt_band_get_isnodata_flag(band)) {
-				for (i = (arg1->rows * arg1->columns) - 1; i >= 0; i--)
-					arg1->nodata[z][i] = TRUE;
-				continue;
-			}
-
-			for (y = 0; y < arg1->rows; y++) {
-				for (x = 0; x < arg1->columns; x++) {
-					/* get pixel */
-					if (rt_band_get_pixel(band, x, y, &val, &isnodata) != ES_NONE) {
-						int nband = arg1->nbands[z] + 1;
-						rtpg_dumpvalues_arg_destroy(arg1);
-						rt_raster_destroy(raster);
-						PG_FREE_IF_COPY(pgraster, 0);
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_dumpValues: Could not pixel (%d, %d) of band %d", x, y, nband);
-						SRF_RETURN_DONE(funcctx);
-					}
-
-					arg1->values[z][i] = Float8GetDatum(val);
-					POSTGIS_RT_DEBUGF(5, "arg1->values[z][i] = %f", DatumGetFloat8(arg1->values[z][i]));
-					POSTGIS_RT_DEBUGF(5, "clamped is?: %d", rt_band_clamped_value_is_nodata(band, val));
-
-					if (exclude_nodata_value && isnodata) {
-						arg1->nodata[z][i] = TRUE;
-						POSTGIS_RT_DEBUG(5, "nodata = 1");
-					}
-					else
-						POSTGIS_RT_DEBUG(5, "nodata = 0");
-
-					i++;
-				}
-			}
-		}
-
-		/* cleanup */
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-
-		/* Store needed information */
-		funcctx->user_fctx = arg1;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = arg1->numbands;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			MemoryContextSwitchTo(oldcontext);
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	arg2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 2;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-		ArrayType *mdValues = NULL;
-		int ndim = 2;
-		int dim[2] = {arg2->rows, arg2->columns};
-		int lbound[2] = {1, 1};
-
-		POSTGIS_RT_DEBUGF(3, "call number %d", call_cntr);
-		POSTGIS_RT_DEBUGF(4, "dim = %d, %d", dim[0], dim[1]);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		values[0] = Int32GetDatum(arg2->nbands[call_cntr] + 1);
-
-		/* info about the type of item in the multi-dimensional array (float8). */
-		get_typlenbyvalalign(FLOAT8OID, &typlen, &typbyval, &typalign);
-
-		/* if values is NULL, return empty raster */
-		if (arg2->values[call_cntr] == NULL)
-			ndim = 0;
-
-		/* assemble 3-dimension array of values */
-		mdValues = construct_md_array(
-			arg2->values[call_cntr], arg2->nodata[call_cntr],
-			ndim, dim, lbound,
-			FLOAT8OID,
-			typlen, typbyval, typalign
-		);
-		values[1] = PointerGetDatum(mdValues);
-
-		/* build a tuple and datum */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		rtpg_dumpvalues_arg_destroy(arg2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Write value of raster sample on given position and in specified band.
- */
-PG_FUNCTION_INFO_V1(RASTER_setPixelValue);
-Datum RASTER_setPixelValue(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	double pixvalue = 0;
-	int32_t bandindex = 0;
-	int32_t x = 0;
-	int32_t y = 0;
-	bool skipset = FALSE;
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-
-	/* Check index is not NULL or < 1 */
-	if (PG_ARGISNULL(1))
-		bandindex = -1;
-	else
-		bandindex = PG_GETARG_INT32(1);
-	
-	if (bandindex < 1) {
-		elog(NOTICE, "Invalid band index (must use 1-based). Value not set. Returning original raster");
-		skipset = TRUE;
-	}
-
-	/* Validate pixel coordinates are not null */
-	if (PG_ARGISNULL(2)) {
-		elog(NOTICE, "X coordinate can not be NULL when setting pixel value. Value not set. Returning original raster");
-		skipset = TRUE;
-	}
-	else
-		x = PG_GETARG_INT32(2);
-
-	if (PG_ARGISNULL(3)) {
-		elog(NOTICE, "Y coordinate can not be NULL when setting pixel value. Value not set. Returning original raster");
-		skipset = TRUE;
-	}
-	else
-		y = PG_GETARG_INT32(3);
-
-	POSTGIS_RT_DEBUGF(3, "Pixel coordinates (%d, %d)", x, y);
-
-	/* Deserialize raster */
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setPixelValue: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	if (!skipset) {
-		/* Fetch requested band */
-		band = rt_raster_get_band(raster, bandindex - 1);
-		if (!band) {
-			elog(NOTICE, "Could not find raster band of index %d when setting "
-				"pixel value. Value not set. Returning original raster",
-				bandindex);
-			PG_RETURN_POINTER(pgraster);
-		}
-		else {
-			/* Set the pixel value */
-			if (PG_ARGISNULL(4)) {
-				if (!rt_band_get_hasnodata_flag(band)) {
-					elog(NOTICE, "Raster do not have a nodata value defined. "
-						"Set band nodata value first. Nodata value not set. "
-						"Returning original raster");
-					PG_RETURN_POINTER(pgraster);
-				}
-				else {
-					rt_band_get_nodata(band, &pixvalue);
-					rt_band_set_pixel(band, x - 1, y - 1, pixvalue, NULL);
-				}
-			}
-			else {
-				pixvalue = PG_GETARG_FLOAT8(4);
-				rt_band_set_pixel(band, x - 1, y - 1, pixvalue, NULL);
-			}
-		}
-	}
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Set pixels to value from array
- */
-PG_FUNCTION_INFO_V1(RASTER_setPixelValuesArray);
-Datum RASTER_setPixelValuesArray(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	int numbands = 0;
-
-	int nband = 0;
-	int width = 0;
-	int height = 0;
-
-	ArrayType *array;
-	Oid etype;
-	Datum *elements;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-	int ndims = 1;
-	int *dims;
-	int num = 0;
-
-	int ul[2] = {0};
-	struct pixelvalue {
-		int x;
-		int y;
-
-		bool noset;
-		bool nodata;
-		double value;
-	};
-	struct pixelvalue *pixval = NULL;
-	int numpixval = 0;
-	int dimpixval[2] = {1, 1};
-	int dimnoset[2] = {1, 1};
-	int hasnodata = FALSE;
-	double nodataval = 0;
-	bool keepnodata = FALSE;
-	bool hasnosetval = FALSE;
-	bool nosetvalisnull = FALSE;
-	double nosetval = 0;
-
-	int rtn = 0;
-	double val = 0;
-	int isnodata = 0;
-
-	int i = 0;
-	int j = 0;
-	int x = 0;
-	int y = 0;
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
-
-	/* raster */
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setPixelValuesArray: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* raster attributes */
-	numbands = rt_raster_get_num_bands(raster);
-	width = rt_raster_get_width(raster);
-	height = rt_raster_get_height(raster);
-
-	/* nband */
-	if (PG_ARGISNULL(1)) {
-		elog(NOTICE, "Band index cannot be NULL.  Value must be 1-based.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	nband = PG_GETARG_INT32(1);
-	if (nband < 1 || nband > numbands) {
-		elog(NOTICE, "Band index is invalid.  Value must be 1-based.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	/* x, y */
-	for (i = 2, j = 0; i < 4; i++, j++) {
-		if (PG_ARGISNULL(i)) {
-			elog(NOTICE, "%s cannot be NULL.  Value must be 1-based.  Returning original raster", j < 1 ? "X" : "Y");
-			rt_raster_destroy(raster);
-			PG_RETURN_POINTER(pgraster);
-		}
-
-		ul[j] = PG_GETARG_INT32(i);
-		if (
-			(ul[j] < 1) || (
-				(j < 1 && ul[j] > width) ||
-				(j > 0 && ul[j] > height)
-			)
-		) {
-			elog(NOTICE, "%s is invalid.  Value must be 1-based.  Returning original raster", j < 1 ? "X" : "Y");
-			rt_raster_destroy(raster);
-			PG_RETURN_POINTER(pgraster);
-		}
-
-		/* force 0-based from 1-based */
-		ul[j] -= 1;
-	}
-
-	/* new value set */
-	if (PG_ARGISNULL(4)) {
-		elog(NOTICE, "No values to set.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	array = PG_GETARG_ARRAYTYPE_P(4);
-	etype = ARR_ELEMTYPE(array);
-	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-	switch (etype) {
-		case FLOAT4OID:
-		case FLOAT8OID:
-			break;
-		default:
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesArray: Invalid data type for new values");
-			PG_RETURN_NULL();
-			break;
-	}
-
-	ndims = ARR_NDIM(array);
-	dims = ARR_DIMS(array);
-	POSTGIS_RT_DEBUGF(4, "ndims = %d", ndims);
-
-	if (ndims < 1 || ndims > 2) {
-		elog(NOTICE, "New values array must be of 1 or 2 dimensions.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-	/* outer element, then inner element */
-	/* i = 0, y */
-	/* i = 1, x */
-	if (ndims != 2)
-		dimpixval[1] = dims[0];
-	else {
-		dimpixval[0] = dims[0];
-		dimpixval[1] = dims[1];
-	}
-	POSTGIS_RT_DEBUGF(4, "dimpixval = (%d, %d)", dimpixval[0], dimpixval[1]);
-
-	deconstruct_array(
-		array,
-		etype,
-		typlen, typbyval, typalign,
-		&elements, &nulls, &num
-	);
-
-	/* # of elements doesn't match dims */
-	if (num < 1 || num != (dimpixval[0] * dimpixval[1])) {
-		if (num) {
-			pfree(elements);
-			pfree(nulls);
-		}
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setPixelValuesArray: Could not deconstruct new values array");
-		PG_RETURN_NULL();
-	}
-
-	/* allocate memory for pixval */
-	numpixval = num;
-	pixval = palloc(sizeof(struct pixelvalue) * numpixval);
-	if (pixval == NULL) {
-		pfree(elements);
-		pfree(nulls);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setPixelValuesArray: Could not allocate memory for new pixel values");
-		PG_RETURN_NULL();
-	}
-
-	/* load new values into pixval */
-	i = 0;
-	for (y = 0; y < dimpixval[0]; y++) {
-		for (x = 0; x < dimpixval[1]; x++) {
-			/* 0-based */
-			pixval[i].x = ul[0] + x;
-			pixval[i].y = ul[1] + y;
-
-			pixval[i].noset = FALSE;
-			pixval[i].nodata = FALSE;
-			pixval[i].value = 0;
-
-			if (nulls[i])
-				pixval[i].nodata = TRUE;
-			else {
-				switch (etype) {
-					case FLOAT4OID:
-						pixval[i].value = DatumGetFloat4(elements[i]);
-						break;
-					case FLOAT8OID:
-						pixval[i].value = DatumGetFloat8(elements[i]);
-						break;
-				}
-			}
-
-			i++;
-		}
-	}
-
-	pfree(elements);
-	pfree(nulls);
-
-	/* now load noset flags */
-	if (!PG_ARGISNULL(5)) {
-		array = PG_GETARG_ARRAYTYPE_P(5);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case BOOLOID:
-				break;
-			default:
-				pfree(pixval);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_setPixelValuesArray: Invalid data type for noset flags");
-				PG_RETURN_NULL();
-				break;
-		}
-
-		ndims = ARR_NDIM(array);
-		dims = ARR_DIMS(array);
-		POSTGIS_RT_DEBUGF(4, "ndims = %d", ndims);
-
-		if (ndims < 1 || ndims > 2) {
-			elog(NOTICE, "Noset flags array must be of 1 or 2 dimensions.  Returning original raster");
-			pfree(pixval);
-			rt_raster_destroy(raster);
-			PG_RETURN_POINTER(pgraster);
-		}
-		/* outer element, then inner element */
-		/* i = 0, y */
-		/* i = 1, x */
-		if (ndims != 2)
-			dimnoset[1] = dims[0];
-		else {
-			dimnoset[0] = dims[0];
-			dimnoset[1] = dims[1];
-		}
-		POSTGIS_RT_DEBUGF(4, "dimnoset = (%d, %d)", dimnoset[0], dimnoset[1]);
-
-		deconstruct_array(
-			array,
-			etype,
-			typlen, typbyval, typalign,
-			&elements, &nulls, &num
-		);
-
-		/* # of elements doesn't match dims */
-		if (num < 1 || num != (dimnoset[0] * dimnoset[1])) {
-			pfree(pixval);
-			if (num) {
-				pfree(elements);
-				pfree(nulls);
-			}
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesArray: Could not deconstruct noset flags array");
-			PG_RETURN_NULL();
-		}
-
-		i = 0;
-		j = 0;
-		for (y = 0; y < dimnoset[0]; y++) {
-			if (y >= dimpixval[0]) break;
-
-			for (x = 0; x < dimnoset[1]; x++) {
-				/* fast forward noset elements */
-				if (x >= dimpixval[1]) {
-					i += (dimnoset[1] - dimpixval[1]);
-					break;
-				}
-
-				if (!nulls[i] && DatumGetBool(elements[i]))
-					pixval[j].noset = TRUE;
-
-				i++;
-				j++;
-			}
-
-			/* fast forward pixval */
-			if (x < dimpixval[1])
-				j += (dimpixval[1] - dimnoset[1]);
-		}
-
-		pfree(elements);
-		pfree(nulls);
-	}
-	/* hasnosetvalue and nosetvalue */
-	else if (!PG_ARGISNULL(6) && PG_GETARG_BOOL(6)) {
-		hasnosetval = TRUE;
-		if (PG_ARGISNULL(7))
-			nosetvalisnull = TRUE;
-		else
-			nosetval = PG_GETARG_FLOAT8(7);
-	}
-
-#if POSTGIS_DEBUG_LEVEL > 0
-	for (i = 0; i < numpixval; i++) {
-		POSTGIS_RT_DEBUGF(4, "pixval[%d](x, y, noset, nodata, value) = (%d, %d, %d, %d, %f)",
-			i,
-			pixval[i].x,
-			pixval[i].y,
-			pixval[i].noset,
-			pixval[i].nodata,
-			pixval[i].value
-		);
-	}
-#endif
-
-	/* keepnodata flag */
-	if (!PG_ARGISNULL(8))
-		keepnodata = PG_GETARG_BOOL(8);
-
-	/* get band */
-	band = rt_raster_get_band(raster, nband - 1);
-	if (!band) {
-		elog(NOTICE, "Could not find band at index %d. Returning original raster", nband);
-		pfree(pixval);
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	/* get band nodata info */
-	/* has NODATA, use NODATA */
-	hasnodata = rt_band_get_hasnodata_flag(band);
-	if (hasnodata)
-		rt_band_get_nodata(band, &nodataval);
-	/* no NODATA, use min possible value */
-	else
-		nodataval = rt_band_get_min_value(band);
-
-	/* set pixels */
-	for (i = 0; i < numpixval; i++) {
-		/* noset = true, skip */
-		if (pixval[i].noset)
-			continue;
-		/* check against nosetval */
-		else if (hasnosetval) {
-			/* pixel = NULL AND nosetval = NULL */
-			if (pixval[i].nodata && nosetvalisnull)
-				continue;
-			/* pixel value = nosetval */
-			else if (!pixval[i].nodata && !nosetvalisnull && FLT_EQ(pixval[i].value, nosetval))
-				continue;
-		}
-
-		/* if pixel is outside bounds, skip */
-		if (
-			(pixval[i].x < 0 || pixval[i].x >= width) ||
-			(pixval[i].y < 0 || pixval[i].y >= height)
-		) {
-			elog(NOTICE, "Cannot set value for pixel (%d, %d) outside raster bounds: %d x %d",
-				pixval[i].x + 1, pixval[i].y + 1,
-				width, height
-			);
-			continue;
-		}
-
-		/* if hasnodata = TRUE and keepnodata = TRUE, inspect pixel value */
-		if (hasnodata && keepnodata) {
-			rtn = rt_band_get_pixel(band, pixval[i].x, pixval[i].y, &val, &isnodata);
-			if (rtn != ES_NONE) {
-				pfree(pixval);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "Cannot get value of pixel");
-				PG_RETURN_NULL();
-			}
-
-			/* pixel value = NODATA, skip */
-			if (isnodata) {
-				continue;
-			}
-		}
-
-		if (pixval[i].nodata)
-			rt_band_set_pixel(band, pixval[i].x, pixval[i].y, nodataval, NULL);
-		else
-			rt_band_set_pixel(band, pixval[i].x, pixval[i].y, pixval[i].value, NULL);
-	}
-
-	pfree(pixval);
-
-	/* serialize new raster */
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/* ---------------------------------------------------------------- */
-/*  ST_SetValues using geomval array                                */
-/* ---------------------------------------------------------------- */
-
-typedef struct rtpg_setvaluesgv_arg_t *rtpg_setvaluesgv_arg;
-typedef struct rtpg_setvaluesgv_geomval_t *rtpg_setvaluesgv_geomval;
-
-struct rtpg_setvaluesgv_arg_t {
-	int ngv;
-	rtpg_setvaluesgv_geomval gv;
-
-	bool keepnodata;
-};
-
-struct rtpg_setvaluesgv_geomval_t {
-	struct {
-		int nodata;
-		double value;
-	} pixval;
-
-	LWGEOM *geom;
-	rt_raster mask;
-};
-
-static rtpg_setvaluesgv_arg rtpg_setvaluesgv_arg_init() {
-	rtpg_setvaluesgv_arg arg = palloc(sizeof(struct rtpg_setvaluesgv_arg_t));
-	if (arg == NULL) {
-		elog(ERROR, "rtpg_setvaluesgv_arg_init: Could not allocate memory for function arguments");
-		return NULL;
-	}
-
-	arg->ngv = 0;
-	arg->gv = NULL;
-	arg->keepnodata = 0;
-
-	return arg;
-}
-
-static void rtpg_setvaluesgv_arg_destroy(rtpg_setvaluesgv_arg arg) {
-	int i = 0;
-
-	if (arg->gv != NULL) {
-		for (i = 0; i < arg->ngv; i++) {
-			if (arg->gv[i].geom != NULL)
-				lwgeom_free(arg->gv[i].geom);
-			if (arg->gv[i].mask != NULL)
-				rt_raster_destroy(arg->gv[i].mask);
-		}
-
-		pfree(arg->gv);
-	}
-
-	pfree(arg);
-}
-
-static int rtpg_setvalues_geomval_callback(
-	rt_iterator_arg arg, void *userarg,
-	double *value, int *nodata
-) {
-	rtpg_setvaluesgv_arg funcarg = (rtpg_setvaluesgv_arg) userarg;
-	int i = 0;
-	int j = 0;
-
-	*value = 0;
-	*nodata = 0;
-
-	POSTGIS_RT_DEBUGF(4, "keepnodata = %d", funcarg->keepnodata);
-
-	/* keepnodata = TRUE */
-	if (funcarg->keepnodata && arg->nodata[0][0][0]) {
-		POSTGIS_RT_DEBUG(3, "keepnodata = 1 AND source raster pixel is NODATA");
-		*nodata = 1;
-		return 1;
-	}
-
-	for (i = arg->rasters - 1, j = funcarg->ngv - 1; i > 0; i--, j--) {
-		POSTGIS_RT_DEBUGF(4, "checking raster %d", i);
-
-		/* mask is NODATA */
-		if (arg->nodata[i][0][0])
-			continue;
-		/* mask is NOT NODATA */
-		else {
-			POSTGIS_RT_DEBUGF(4, "Using information from geometry %d", j);
-
-			if (funcarg->gv[j].pixval.nodata)
-				*nodata = 1;
-			else
-				*value = funcarg->gv[j].pixval.value;
-
-			return 1;
-		}
-	}
-
-	POSTGIS_RT_DEBUG(4, "Using information from source raster");
-
-	/* still here */
-	if (arg->nodata[0][0][0])
-		*nodata = 1;
-	else
-		*value = arg->values[0][0][0];
-
-	return 1;
-}
-
-PG_FUNCTION_INFO_V1(RASTER_setPixelValuesGeomval);
-Datum RASTER_setPixelValuesGeomval(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	rt_raster _raster = NULL;
-	rt_band _band = NULL;
-	int nband = 0; /* 1-based */
-
-	int numbands = 0;
-	int width = 0;
-	int height = 0;
-	int srid = 0;
-	double gt[6] = {0};
-
-	rt_pixtype pixtype = PT_END;
-	int hasnodata = 0;
-	double nodataval = 0;
-
-	rtpg_setvaluesgv_arg arg = NULL;
-	int allpoint = 0;
-
-	ArrayType *array;
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-	int n = 0;
-
-	HeapTupleHeader tup;
-	bool isnull;
-	Datum tupv;
-
-	GSERIALIZED *gser = NULL;
-	uint8_t gtype;
-	unsigned char *wkb = NULL;
-	size_t wkb_len;
-
-	int i = 0;
-	int j = 0;
-	int noerr = 1;
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
-
-	/* raster */
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setPixelValuesGeomval: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* raster attributes */
-	numbands = rt_raster_get_num_bands(raster);
-	width = rt_raster_get_width(raster);
-	height = rt_raster_get_height(raster);
-	srid = clamp_srid(rt_raster_get_srid(raster));
-	rt_raster_get_geotransform_matrix(raster, gt);
-
-	/* nband */
-	if (PG_ARGISNULL(1)) {
-		elog(NOTICE, "Band index cannot be NULL.  Value must be 1-based.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	nband = PG_GETARG_INT32(1);
-	if (nband < 1 || nband > numbands) {
-		elog(NOTICE, "Band index is invalid.  Value must be 1-based.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	/* get band attributes */
-	band = rt_raster_get_band(raster, nband - 1);
-	pixtype = rt_band_get_pixtype(band);
-	hasnodata = rt_band_get_hasnodata_flag(band);
-	if (hasnodata)
-		rt_band_get_nodata(band, &nodataval);
-
-	/* array of geomval (2) */
-	if (PG_ARGISNULL(2)) {
-		elog(NOTICE, "No values to set.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	array = PG_GETARG_ARRAYTYPE_P(2);
-	etype = ARR_ELEMTYPE(array);
-	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-	deconstruct_array(
-		array,
-		etype,
-		typlen, typbyval, typalign,
-		&e, &nulls, &n
-	);
-
-	if (!n) {
-		elog(NOTICE, "No values to set.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	/* init arg */
-	arg = rtpg_setvaluesgv_arg_init();
-	if (arg == NULL) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setPixelValuesGeomval: Could not intialize argument structure");
-		PG_RETURN_NULL();
-	}
-
-	arg->gv = palloc(sizeof(struct rtpg_setvaluesgv_geomval_t) * n);
-	if (arg->gv == NULL) {
-		rtpg_setvaluesgv_arg_destroy(arg);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_setPixelValuesGeomval: Could not allocate memory for geomval array");
-		PG_RETURN_NULL();
-	}
-
-	/* process each element */
-	arg->ngv = 0;
-	for (i = 0; i < n; i++) {
-		if (nulls[i])
-			continue;
-
-		arg->gv[arg->ngv].pixval.nodata = 0;
-		arg->gv[arg->ngv].pixval.value = 0;
-		arg->gv[arg->ngv].geom = NULL;
-		arg->gv[arg->ngv].mask = NULL;
-
-		/* each element is a tuple */
-		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
-		if (NULL == tup) {
-			rtpg_setvaluesgv_arg_destroy(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesGeomval: Invalid argument for geomval at index %d", i);
-			PG_RETURN_NULL();
-		}
-
-		/* first element, geometry */
-		POSTGIS_RT_DEBUG(4, "Processing first element (geometry)");
-		tupv = GetAttributeByName(tup, "geom", &isnull);
-		if (isnull) {
-			elog(NOTICE, "First argument (geom) of geomval at index %d is NULL. Skipping", i);
-			continue;
-		}
-
-		gser = (GSERIALIZED *) PG_DETOAST_DATUM(tupv);
-		arg->gv[arg->ngv].geom = lwgeom_from_gserialized(gser);
-		if (arg->gv[arg->ngv].geom == NULL) {
-			rtpg_setvaluesgv_arg_destroy(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not deserialize geometry of geomval at index %d", i);
-			PG_RETURN_NULL();
-		}
-
-		/* empty geometry */
-		if (lwgeom_is_empty(arg->gv[arg->ngv].geom)) {
-			elog(NOTICE, "First argument (geom) of geomval at index %d is an empty geometry. Skipping", i);
-			continue;
-		}
-
-		/* check SRID */
-		if (clamp_srid(gserialized_get_srid(gser)) != srid) {
-			elog(NOTICE, "Geometry provided for geomval at index %d does not have the same SRID as the raster: %d. Returning original raster", i, srid);
-			rtpg_setvaluesgv_arg_destroy(arg);
-			rt_raster_destroy(raster);
-			PG_RETURN_POINTER(pgraster);
-		}
-
-		/* Get a 2D version of the geometry if necessary */
-		if (lwgeom_ndims(arg->gv[arg->ngv].geom) > 2) {
-			LWGEOM *geom2d = lwgeom_force_2d(arg->gv[arg->ngv].geom);
-			lwgeom_free(arg->gv[arg->ngv].geom);
-			arg->gv[arg->ngv].geom = geom2d;
-		}
-
-		/* filter for types */
-		gtype = gserialized_get_type(gser);
-
-		/* shortcuts for POINT and MULTIPOINT */
-		if (gtype == POINTTYPE || gtype == MULTIPOINTTYPE)
-			allpoint++;
-
-		/* get wkb of geometry */
-		POSTGIS_RT_DEBUG(3, "getting wkb of geometry");
-		wkb = lwgeom_to_wkb(arg->gv[arg->ngv].geom, WKB_SFSQL, &wkb_len);
-
-		/* rasterize geometry */
-		arg->gv[arg->ngv].mask = rt_raster_gdal_rasterize(
-			wkb, wkb_len,
-			NULL,
-			0, NULL,
-			NULL, NULL,
-			NULL, NULL,
-			NULL, NULL,
-			&(gt[1]), &(gt[5]),
-			NULL, NULL,
-			&(gt[0]), &(gt[3]),
-			&(gt[2]), &(gt[4]),
-			NULL
-		);
-
-		pfree(wkb);
-		if (gtype != POINTTYPE && gtype != MULTIPOINTTYPE) {
-			lwgeom_free(arg->gv[arg->ngv].geom);
-			arg->gv[arg->ngv].geom = NULL;
-		}
-
-		if (arg->gv[arg->ngv].mask == NULL) {
-			rtpg_setvaluesgv_arg_destroy(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not rasterize geometry of geomval at index %d", i);
-			PG_RETURN_NULL();
-		}
-
-		/* set SRID */
-		rt_raster_set_srid(arg->gv[arg->ngv].mask, srid);
-
-		/* second element, value */
-		POSTGIS_RT_DEBUG(4, "Processing second element (val)");
-		tupv = GetAttributeByName(tup, "val", &isnull);
-		if (isnull) {
-			elog(NOTICE, "Second argument (val) of geomval at index %d is NULL. Treating as NODATA", i);
-			arg->gv[arg->ngv].pixval.nodata = 1;
-		}
-		else
-			arg->gv[arg->ngv].pixval.value = DatumGetFloat8(tupv);
-
-		(arg->ngv)++;
-	}
-
-	/* redim arg->gv if needed */
-	if (arg->ngv < n) {
-		arg->gv = repalloc(arg->gv, sizeof(struct rtpg_setvaluesgv_geomval_t) * arg->ngv);
-		if (arg->gv == NULL) {
-			rtpg_setvaluesgv_arg_destroy(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not reallocate memory for geomval array");
-			PG_RETURN_NULL();
-		}
-	}
-
-	/* keepnodata */
-	if (!PG_ARGISNULL(3))
-		arg->keepnodata = PG_GETARG_BOOL(3);
-	POSTGIS_RT_DEBUGF(3, "keepnodata = %d", arg->keepnodata);
-
-	/* keepnodata = TRUE and band is NODATA */
-	if (arg->keepnodata && rt_band_get_isnodata_flag(band)) {
-		POSTGIS_RT_DEBUG(3, "keepnodata = TRUE and band is NODATA. Not doing anything");
-	}
-	/* all elements are points */
-	else if (allpoint == arg->ngv) {
-		double igt[6] = {0};
-		double xy[2] = {0};
-		double value = 0;
-		int isnodata = 0;
-
-		LWCOLLECTION *coll = NULL;
-		LWPOINT *point = NULL;
-		POINT2D p;
-
-		POSTGIS_RT_DEBUG(3, "all geometries are points, using direct to pixel method");
-
-		/* cache inverse gretransform matrix */
-		rt_raster_get_inverse_geotransform_matrix(NULL, gt, igt);
-
-		/* process each geometry */
-		for (i = 0; i < arg->ngv; i++) {
-			/* convert geometry to collection */
-			coll = lwgeom_as_lwcollection(lwgeom_as_multi(arg->gv[i].geom));
-
-			/* process each point in collection */
-			for (j = 0; j < coll->ngeoms; j++) {
-				point = lwgeom_as_lwpoint(coll->geoms[j]);
-				getPoint2d_p(point->point, 0, &p);
-
-				if (rt_raster_geopoint_to_cell(raster, p.x, p.y, &(xy[0]), &(xy[1]), igt) != ES_NONE) {
-					rtpg_setvaluesgv_arg_destroy(arg);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					elog(ERROR, "RASTER_setPixelValuesGeomval: Could not process coordinates of point");
-					PG_RETURN_NULL();
-				}
-
-				/* skip point if outside raster */
-				if (
-					(xy[0] < 0 || xy[0] >= width) ||
-					(xy[1] < 0 || xy[1] >= height)
-				) {
-					elog(NOTICE, "Point is outside raster extent. Skipping");
-					continue;
-				}
-
-				/* get pixel value */
-				if (rt_band_get_pixel(band, xy[0], xy[1], &value, &isnodata) != ES_NONE) {
-					rtpg_setvaluesgv_arg_destroy(arg);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					elog(ERROR, "RASTER_setPixelValuesGeomval: Could not get pixel value");
-					PG_RETURN_NULL();
-				}
-
-				/* keepnodata = TRUE AND pixel value is NODATA */
-				if (arg->keepnodata && isnodata)
-					continue;
-
-				/* set pixel */
-				if (arg->gv[i].pixval.nodata)
-					noerr = rt_band_set_pixel(band, xy[0], xy[1], nodataval, NULL);
-				else
-					noerr = rt_band_set_pixel(band, xy[0], xy[1], arg->gv[i].pixval.value, NULL);
-
-				if (noerr != ES_NONE) {
-					rtpg_setvaluesgv_arg_destroy(arg);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					elog(ERROR, "RASTER_setPixelValuesGeomval: Could not set pixel value");
-					PG_RETURN_NULL();
-				}
-			}
-		}
-	}
-	/* run iterator otherwise */
-	else {
-		rt_iterator itrset;
-
-		POSTGIS_RT_DEBUG(3, "a mix of geometries, using iterator method");
-
-		/* init itrset */
-		itrset = palloc(sizeof(struct rt_iterator_t) * (arg->ngv + 1));
-		if (itrset == NULL) {
-			rtpg_setvaluesgv_arg_destroy(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not allocate memory for iterator arguments");
-			PG_RETURN_NULL();
-		}
-
-		/* set first raster's info */
-		itrset[0].raster = raster;
-		itrset[0].nband = nband - 1;
-		itrset[0].nbnodata = 1;
-
-		/* set other raster's info */
-		for (i = 0, j = 1; i < arg->ngv; i++, j++) {
-			itrset[j].raster = arg->gv[i].mask;
-			itrset[j].nband = 0;
-			itrset[j].nbnodata = 1;
-		}
-
-		/* pass to iterator */
-		noerr = rt_raster_iterator(
-			itrset, arg->ngv + 1,
-			ET_FIRST, NULL,
-			pixtype,
-			hasnodata, nodataval,
-			0, 0,
-			arg,
-			rtpg_setvalues_geomval_callback,
-			&_raster
-		);
-		pfree(itrset);
-
-		if (noerr != ES_NONE) {
-			rtpg_setvaluesgv_arg_destroy(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not run raster iterator function");
-			PG_RETURN_NULL();
-		}
-
-		/* copy band from _raster to raster */
-		_band = rt_raster_get_band(_raster, 0);
-		if (_band == NULL) {
-			rtpg_setvaluesgv_arg_destroy(arg);
-			rt_raster_destroy(_raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not get band from working raster");
-			PG_RETURN_NULL();
-		}
-
-		_band = rt_raster_replace_band(raster, _band, nband - 1);
-		if (_band == NULL) {
-			rtpg_setvaluesgv_arg_destroy(arg);
-			rt_raster_destroy(_raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not replace band in output raster");
-			PG_RETURN_NULL();
-		}
-
-		rt_band_destroy(_band);
-		rt_raster_destroy(_raster);
-	}
-
-	rtpg_setvaluesgv_arg_destroy(arg);
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	POSTGIS_RT_DEBUG(3, "Finished");
-
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Return the geographical shape of all pixels
- */
-PG_FUNCTION_INFO_V1(RASTER_getPixelPolygons);
-Datum RASTER_getPixelPolygons(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-	rt_pixel pix = NULL;
-	rt_pixel pix2;
-	int call_cntr;
-	int max_calls;
-	int i = 0;
-
-	/* stuff done only on the first call of the function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-		int nband = 1;
-		int numbands;
-		bool hasband = TRUE;
-		bool exclude_nodata_value = TRUE;
-		bool nocolumnx = FALSE;
-		bool norowy = FALSE;
-		int x = 0;
-		int y = 0;
-		int bounds[4] = {0};
-		int pixcount = 0;
-		double value = 0;
-		int isnodata = 0;
-
-		LWPOLY *poly;
-
-		POSTGIS_RT_DEBUG(3, "RASTER_getPixelPolygons first call");
-
-		/* 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);
-
-		if (PG_ARGISNULL(0)) {
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-		/* band */
-		if (PG_ARGISNULL(1))
-			hasband = FALSE;
-		else {
-			nband = PG_GETARG_INT32(1);
-			hasband = TRUE;
-		}
-
-		/* column */
-		if (PG_ARGISNULL(2))
-			nocolumnx = TRUE;
-		else {
-			bounds[0] = PG_GETARG_INT32(2);
-			bounds[1] = bounds[0];
-		}
-
-		/* row */
-		if (PG_ARGISNULL(3))
-			norowy = TRUE;
-		else {
-			bounds[2] = PG_GETARG_INT32(3);
-			bounds[3] = bounds[2];
-		}
-
-		/* exclude NODATA */
-		if (!PG_ARGISNULL(4))
-			exclude_nodata_value = PG_GETARG_BOOL(4);
-
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			ereport(ERROR, (
-				errcode(ERRCODE_OUT_OF_MEMORY),
-				errmsg("Could not deserialize raster")
-			));
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* raster empty, return NULL */
-		if (rt_raster_is_empty(raster)) {
-			elog(NOTICE, "Raster is empty. Returning NULL");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* band specified, load band and info */
-		if (hasband) {
-			numbands = rt_raster_get_num_bands(raster);
-			POSTGIS_RT_DEBUGF(3, "band %d", nband);
-			POSTGIS_RT_DEBUGF(3, "# of bands %d", numbands);
-
-			if (nband < 1 || nband > numbands) {
-				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			band = rt_raster_get_band(raster, nband - 1);
-			if (!band) {
-				elog(NOTICE, "Could not find band at index %d. Returning NULL", nband);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			if (!rt_band_get_hasnodata_flag(band))
-				exclude_nodata_value = FALSE;
-		}
-
-		/* set bounds if columnx, rowy not set */
-		if (nocolumnx) {
-			bounds[0] = 1;
-			bounds[1] = rt_raster_get_width(raster);
-		}
-		if (norowy) {
-			bounds[2] = 1;
-			bounds[3] = rt_raster_get_height(raster);
-		}
-		POSTGIS_RT_DEBUGF(3, "bounds (min x, max x, min y, max y) = (%d, %d, %d, %d)", 
-			bounds[0], bounds[1], bounds[2], bounds[3]);
-
-		/* rowy */
-		pixcount = 0;
-		for (y = bounds[2]; y <= bounds[3]; y++) {
-			/* columnx */
-			for (x = bounds[0]; x <= bounds[1]; x++) {
-
-				value = 0;
-				isnodata = TRUE;
-
-				if (hasband) {
-					if (rt_band_get_pixel(band, x - 1, y - 1, &value, &isnodata) != ES_NONE) {
-
-						for (i = 0; i < pixcount; i++)
-							lwgeom_free(pix[i].geom);
-						if (pixcount) pfree(pix);
-
-						rt_band_destroy(band);
-						rt_raster_destroy(raster);
-						PG_FREE_IF_COPY(pgraster, 0);
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_getPixelPolygons: Could not get pixel value");
-						SRF_RETURN_DONE(funcctx);
-					}
-
-					/* don't continue if pixel is NODATA and to exclude NODATA */
-					if (isnodata && exclude_nodata_value) {
-						POSTGIS_RT_DEBUG(5, "pixel value is NODATA and exclude_nodata_value = TRUE");
-						continue;
-					}
-				}
-
-				/* geometry */
-				poly = rt_raster_pixel_as_polygon(raster, x - 1, y - 1);
-				if (!poly) {
-					for (i = 0; i < pixcount; i++)
-						lwgeom_free(pix[i].geom);
-					if (pixcount) pfree(pix);
-
-					if (hasband) rt_band_destroy(band);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_getPixelPolygons: Could not get pixel polygon");
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				if (!pixcount)
-					pix = palloc(sizeof(struct rt_pixel_t) * (pixcount + 1));
-				else
-					pix = repalloc(pix, sizeof(struct rt_pixel_t) * (pixcount + 1));
-				if (pix == NULL) {
-
-					lwpoly_free(poly);
-					if (hasband) rt_band_destroy(band);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_getPixelPolygons: Could not allocate memory for storing pixel polygons");
-					SRF_RETURN_DONE(funcctx);
-				}
-				pix[pixcount].geom = (LWGEOM *) poly;
-				POSTGIS_RT_DEBUGF(5, "poly @ %p", poly);
-				POSTGIS_RT_DEBUGF(5, "geom @ %p", pix[pixcount].geom);
-
-				/* x, y */
-				pix[pixcount].x = x;
-				pix[pixcount].y = y;
-
-				/* value */
-				pix[pixcount].value = value;
-
-				/* NODATA */
-				if (hasband) {
-					if (exclude_nodata_value)
-						pix[pixcount].nodata = isnodata;
-					else
-						pix[pixcount].nodata = FALSE;
-				}
-				else {
-					pix[pixcount].nodata = isnodata;
-				}
-
-				pixcount++;
-			}
-		}
-
-		if (hasband) rt_band_destroy(band);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-
-		/* shortcut if no pixcount */
-		if (pixcount < 1) {
-			elog(NOTICE, "No pixels found for band %d", nband);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* Store needed information */
-		funcctx->user_fctx = pix;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = pixcount;
-		POSTGIS_RT_DEBUGF(3, "pixcount = %d", pixcount);
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg("function returning record called in context that cannot accept type record")
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	pix2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 4;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-
-		GSERIALIZED *gser = NULL;
-		size_t gser_size = 0;
-
-		POSTGIS_RT_DEBUGF(3, "call number %d", call_cntr);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		/* convert LWGEOM to GSERIALIZED */
-		gser = gserialized_from_lwgeom(pix2[call_cntr].geom, 0, &gser_size);
-		lwgeom_free(pix2[call_cntr].geom);
-
-		values[0] = PointerGetDatum(gser);
-		if (pix2[call_cntr].nodata)
-			nulls[1] = TRUE;
-		else
-			values[1] = Float8GetDatum(pix2[call_cntr].value);
-		values[2] = Int32GetDatum(pix2[call_cntr].x);
-		values[3] = Int32GetDatum(pix2[call_cntr].y);
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		pfree(pix2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Get raster band's polygon
- */
-PG_FUNCTION_INFO_V1(RASTER_getPolygon);
-Datum RASTER_getPolygon(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	int num_bands = 0;
-	int nband = 1;
-	int err;
-	LWMPOLY *surface = NULL;
-	GSERIALIZED *rtn = NULL;
-
-	/* raster */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_getPolygon: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* num_bands */
-	num_bands = rt_raster_get_num_bands(raster);
-	if (num_bands < 1) {
-		elog(NOTICE, "Raster provided has no bands");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	/* band index is 1-based */
-	if (!PG_ARGISNULL(1))
-		nband = PG_GETARG_INT32(1);
-	if (nband < 1 || nband > num_bands) {
-		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	/* get band surface */
-	err = rt_raster_surface(raster, nband - 1, &surface);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	if (err != ES_NONE) {
-		elog(ERROR, "RASTER_getPolygon: Could not get raster band's surface");
-		PG_RETURN_NULL();
-	}
-	else if (surface == NULL) {
-		elog(NOTICE, "Raster is empty or all pixels of band are NODATA. Returning NULL");
-		PG_RETURN_NULL();
-	}
-
-	rtn = geometry_serialize(lwmpoly_as_lwgeom(surface));
-	lwmpoly_free(surface);
-
-	PG_RETURN_POINTER(rtn);
-}
-
-/**
- * Get pixels of value
- */
-PG_FUNCTION_INFO_V1(RASTER_pixelOfValue);
-Datum RASTER_pixelOfValue(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-
-	rt_pixel pixels = NULL;
-	rt_pixel pixels2 = NULL;
-	int count = 0;
-	int i = 0;
-	int n = 0;
-	int call_cntr;
-	int max_calls;
-
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-		int nband = 1;
-		int num_bands = 0;
-		double *search = NULL;
-		int nsearch = 0;
-		double val;
-		bool exclude_nodata_value = TRUE;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-
-		/* 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);
-
-		if (PG_ARGISNULL(0)) {
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_pixelOfValue: Could not deserialize raster");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* num_bands */
-		num_bands = rt_raster_get_num_bands(raster);
-		if (num_bands < 1) {
-			elog(NOTICE, "Raster provided has no bands");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* band index is 1-based */
-		if (!PG_ARGISNULL(1))
-			nband = PG_GETARG_INT32(1);
-		if (nband < 1 || nband > num_bands) {
-			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* search values */
-		array = PG_GETARG_ARRAYTYPE_P(2);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case FLOAT4OID:
-			case FLOAT8OID:
-				break;
-			default:
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_pixelOfValue: Invalid data type for pixel values");
-				SRF_RETURN_DONE(funcctx);
-				break;
-		}
-
-		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-			&nulls, &n);
-
-		search = palloc(sizeof(double) * n);
-		for (i = 0, nsearch = 0; i < n; i++) {
-			if (nulls[i]) continue;
-
-			switch (etype) {
-				case FLOAT4OID:
-					val = (double) DatumGetFloat4(e[i]);
-					break;
-				case FLOAT8OID:
-					val = (double) DatumGetFloat8(e[i]);
-					break;
-			}
-
-			search[nsearch] = val;
-			POSTGIS_RT_DEBUGF(3, "search[%d] = %f", nsearch, search[nsearch]);
-			nsearch++;
-		}
-
-		/* not searching for anything */
-		if (nsearch < 1) {
-			elog(NOTICE, "No search values provided. Returning NULL");
-			pfree(search);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		else if (nsearch < n)
-			search = repalloc(search, sizeof(double) * nsearch);
-
-		/* exclude_nodata_value flag */
-		if (!PG_ARGISNULL(3))
-			exclude_nodata_value = PG_GETARG_BOOL(3);
-
-		/* get band */
-		band = rt_raster_get_band(raster, nband - 1);
-		if (!band) {
-			elog(NOTICE, "Could not find band at index %d. Returning NULL", nband);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get pixels of values */
-		count = rt_band_get_pixel_of_value(
-			band, exclude_nodata_value,
-			search, nsearch,
-			&pixels
-		);
-		pfree(search);
-		rt_band_destroy(band);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		if (count < 1) {
-			/* error */
-			if (count < 0)
-				elog(NOTICE, "Could not get the pixels of search values for band at index %d", nband);
-			/* no nearest pixel */
-			else
-				elog(NOTICE, "No pixels of search values found for band at index %d", nband);
-
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* Store needed information */
-		funcctx->user_fctx = pixels;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = count;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	pixels2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 3;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		/* 0-based to 1-based */
-		pixels2[call_cntr].x += 1;
-		pixels2[call_cntr].y += 1;
-
-		values[0] = Float8GetDatum(pixels2[call_cntr].value);
-		values[1] = Int32GetDatum(pixels2[call_cntr].x);
-		values[2] = Int32GetDatum(pixels2[call_cntr].y);
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	else {
-		pfree(pixels2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Return nearest value to a point
- */
-PG_FUNCTION_INFO_V1(RASTER_nearestValue);
-Datum RASTER_nearestValue(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	int bandindex = 1;
-	int num_bands = 0;
-	GSERIALIZED *geom;
-	bool exclude_nodata_value = TRUE;
-	LWGEOM *lwgeom;
-	LWPOINT *point = NULL;
-	POINT2D p;
-
-	double x;
-	double y;
-	int count;
-	rt_pixel npixels = NULL;
-	double value = 0;
-	int hasvalue = 0;
-	int isnodata = 0;
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_nearestValue: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* band index is 1-based */
-	if (!PG_ARGISNULL(1))
-		bandindex = PG_GETARG_INT32(1);
-	num_bands = rt_raster_get_num_bands(raster);
-	if (bandindex < 1 || bandindex > num_bands) {
-		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	/* point */
-	geom = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(2));
-	if (gserialized_get_type(geom) != POINTTYPE) {
-		elog(NOTICE, "Geometry provided must be a point");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_FREE_IF_COPY(geom, 2);
-		PG_RETURN_NULL();
-	}
-
-	/* exclude_nodata_value flag */
-	if (!PG_ARGISNULL(3))
-		exclude_nodata_value = PG_GETARG_BOOL(3);
-
-	/* SRIDs of raster and geometry must match  */
-	if (clamp_srid(gserialized_get_srid(geom)) != clamp_srid(rt_raster_get_srid(raster))) {
-		elog(NOTICE, "SRIDs of geometry and raster do not match");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_FREE_IF_COPY(geom, 2);
-		PG_RETURN_NULL();
-	}
-
-	/* get band */
-	band = rt_raster_get_band(raster, bandindex - 1);
-	if (!band) {
-		elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_FREE_IF_COPY(geom, 2);
-		PG_RETURN_NULL();
-	}
-
-	/* process geometry */
-	lwgeom = lwgeom_from_gserialized(geom);
-
-	if (lwgeom_is_empty(lwgeom)) {
-		elog(NOTICE, "Geometry provided cannot be empty");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_FREE_IF_COPY(geom, 2);
-		PG_RETURN_NULL();
-	}
-
-	/* Get a 2D version of the geometry if necessary */
-	if (lwgeom_ndims(lwgeom) > 2) {
-		LWGEOM *lwgeom2d = lwgeom_force_2d(lwgeom);
-		lwgeom_free(lwgeom);
-		lwgeom = lwgeom2d;
-	}
-
-	point = lwgeom_as_lwpoint(lwgeom);
-	getPoint2d_p(point->point, 0, &p);
-
-	if (rt_raster_geopoint_to_cell(
-		raster,
-		p.x, p.y,
-		&x, &y,
-		NULL
-	) != ES_NONE) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		lwgeom_free(lwgeom);
-		PG_FREE_IF_COPY(geom, 2);
-		elog(ERROR, "RASTER_nearestValue: Could not compute pixel coordinates from spatial coordinates");
-		PG_RETURN_NULL();
-	}
-
-	/* get value at point */
-	if (
-		(x >= 0 && x < rt_raster_get_width(raster)) &&
-		(y >= 0 && y < rt_raster_get_height(raster))
-	) {
-		if (rt_band_get_pixel(band, x, y, &value, &isnodata) != ES_NONE) {
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			lwgeom_free(lwgeom);
-			PG_FREE_IF_COPY(geom, 2);
-			elog(ERROR, "RASTER_nearestValue: Could not get pixel value for band at index %d", bandindex);
-			PG_RETURN_NULL();
-		}
-
-		/* value at point, return value */
-		if (!exclude_nodata_value || !isnodata) {
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			lwgeom_free(lwgeom);
-			PG_FREE_IF_COPY(geom, 2);
-
-			PG_RETURN_FLOAT8(value);
-		}
-	}
-
-	/* get neighborhood */
-	count = rt_band_get_nearest_pixel(
-		band,
-		x, y,
-		0, 0,
-		exclude_nodata_value,
-		&npixels
-	);
-	rt_band_destroy(band);
-	/* error or no neighbors */
-	if (count < 1) {
-		/* error */
-		if (count < 0)
-			elog(NOTICE, "Could not get the nearest value for band at index %d", bandindex);
-		/* no nearest pixel */
-		else
-			elog(NOTICE, "No nearest value found for band at index %d", bandindex);
-
-		lwgeom_free(lwgeom);
-		PG_FREE_IF_COPY(geom, 2);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	/* more than one nearest value, see which one is closest */
-	if (count > 1) {
-		int i = 0;
-		LWPOLY *poly = NULL;
-		double lastdist = -1;
-		double dist;
-
-		for (i = 0; i < count; i++) {
-			/* convex-hull of pixel */
-			poly = rt_raster_pixel_as_polygon(raster, npixels[i].x, npixels[i].y);
-			if (!poly) {
-				lwgeom_free(lwgeom);
-				PG_FREE_IF_COPY(geom, 2);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_nearestValue: Could not get polygon of neighboring pixel");
-				PG_RETURN_NULL();
-			}
-
-			/* distance between convex-hull and point */
-			dist = lwgeom_mindistance2d(lwpoly_as_lwgeom(poly), lwgeom);
-			if (lastdist < 0 || dist < lastdist) {
-				value = npixels[i].value;
-				hasvalue = 1;
-			}
-			lastdist = dist;
-
-			lwpoly_free(poly);
-		}
-	}
-	else {
-		value = npixels[0].value;
-		hasvalue = 1;
-	}
-
-	pfree(npixels);
-	lwgeom_free(lwgeom);
-	PG_FREE_IF_COPY(geom, 2);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	if (hasvalue)
-		PG_RETURN_FLOAT8(value);
-	else
-		PG_RETURN_NULL();
-}
-
-/**
- * Return the neighborhood around a pixel
- */
-PG_FUNCTION_INFO_V1(RASTER_neighborhood);
-Datum RASTER_neighborhood(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	int bandindex = 1;
-	int num_bands = 0;
-	int x = 0;
-	int y = 0;
-	int _x = 0;
-	int _y = 0;
-	int distance[2] = {0};
-	bool exclude_nodata_value = TRUE;
-	double pixval;
-	int isnodata = 0;
-
-	rt_pixel npixels = NULL;
-	int count;
-	double **value2D = NULL;
-	int **nodata2D = NULL;
-
-	int i = 0;
-	int j = 0;
-	int k = 0;
-	Datum *value1D = NULL;
-	bool *nodata1D = NULL;
-	int dim[2] = {0};
-	int lbound[2] = {1, 1};
-	ArrayType *mdArray = NULL;
-
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-
-	/* pgraster is null, return nothing */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_neighborhood: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* band index is 1-based */
-	if (!PG_ARGISNULL(1))
-		bandindex = PG_GETARG_INT32(1);
-	num_bands = rt_raster_get_num_bands(raster);
-	if (bandindex < 1 || bandindex > num_bands) {
-		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	/* pixel column, 1-based */
-	x = PG_GETARG_INT32(2);
-	_x = x - 1;
-
-	/* pixel row, 1-based */
-	y = PG_GETARG_INT32(3);
-	_y = y - 1;
-
-	/* distance X axis */
-	distance[0] = PG_GETARG_INT32(4);
-	if (distance[0] < 0) {
-		elog(NOTICE, "Invalid value for distancex (must be >= zero). Returning NULL");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-	distance[0] = (uint16_t) distance[0];
-
-	/* distance Y axis */
-	distance[1] = PG_GETARG_INT32(5);
-	if (distance[1] < 0) {
-		elog(NOTICE, "Invalid value for distancey (must be >= zero). Returning NULL");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-	distance[1] = (uint16_t) distance[1];
-
-	/* exclude_nodata_value flag */
-	if (!PG_ARGISNULL(6))
-		exclude_nodata_value = PG_GETARG_BOOL(6);
-
-	/* get band */
-	band = rt_raster_get_band(raster, bandindex - 1);
-	if (!band) {
-		elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	/* get neighborhood */
-	count = 0;
-	npixels = NULL;
-	if (distance[0] > 0 || distance[1] > 0) {
-		count = rt_band_get_nearest_pixel(
-			band,
-			_x, _y,
-			distance[0], distance[1],
-			exclude_nodata_value,
-			&npixels
-		);
-		/* error */
-		if (count < 0) {
-			elog(NOTICE, "Could not get the pixel's neighborhood for band at index %d", bandindex);
-			
-			rt_band_destroy(band);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-
-			PG_RETURN_NULL();
-		}
-	}
-
-	/* get pixel's value */
-	if (
-		(_x >= 0 && _x < rt_band_get_width(band)) &&
-		(_y >= 0 && _y < rt_band_get_height(band))
-	) {
-		if (rt_band_get_pixel(
-			band,
-			_x, _y,
-			&pixval,
-			&isnodata
-		) != ES_NONE) {
-			elog(NOTICE, "Could not get the pixel of band at index %d. Returning NULL", bandindex);
-			rt_band_destroy(band);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			PG_RETURN_NULL();
-		}
-	}
-	/* outside band extent, set to NODATA */
-	else {
-		/* has NODATA, use NODATA */
-		if (rt_band_get_hasnodata_flag(band))
-			rt_band_get_nodata(band, &pixval);
-		/* no NODATA, use min possible value */
-		else
-			pixval = rt_band_get_min_value(band);
-		isnodata = 1;
-	}
-	POSTGIS_RT_DEBUGF(4, "pixval: %f", pixval);
-
-
-	/* add pixel to neighborhood */
-	count++;
-	if (count > 1)
-		npixels = (rt_pixel) repalloc(npixels, sizeof(struct rt_pixel_t) * count);
-	else
-		npixels = (rt_pixel) palloc(sizeof(struct rt_pixel_t));
-	if (npixels == NULL) {
-
-		rt_band_destroy(band);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-
-		elog(ERROR, "RASTER_neighborhood: Could not reallocate memory for neighborhood");
-		PG_RETURN_NULL();
-	}
-	npixels[count - 1].x = _x;
-	npixels[count - 1].y = _y;
-	npixels[count - 1].nodata = 1;
-	npixels[count - 1].value = pixval;
-
-	/* set NODATA */
-	if (!exclude_nodata_value || !isnodata) {
-		npixels[count - 1].nodata = 0;
-	}
-
-	/* free unnecessary stuff */
-	rt_band_destroy(band);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	/* convert set of rt_pixel to 2D array */
-	/* dim is passed with element 0 being Y-axis and element 1 being X-axis */
-	count = rt_pixel_set_to_array(
-		npixels, count,
-		_x, _y,
-		distance[0], distance[1],
-		&value2D,
-		&nodata2D,
-		&(dim[1]), &(dim[0])
-	);
-	pfree(npixels);
-	if (count != ES_NONE) {
-		elog(NOTICE, "Could not create 2D array of neighborhood");
-		PG_RETURN_NULL();
-	}
-
-	/* 1D arrays for values and nodata from 2D arrays */
-	value1D = palloc(sizeof(Datum) * dim[0] * dim[1]);
-	nodata1D = palloc(sizeof(bool) * dim[0] * dim[1]);
-
-	if (value1D == NULL || nodata1D == NULL) {
-
-		for (i = 0; i < dim[0]; i++) {
-			pfree(value2D[i]);
-			pfree(nodata2D[i]);
-		}
-		pfree(value2D);
-		pfree(nodata2D);
-
-		elog(ERROR, "RASTER_neighborhood: Could not allocate memory for return 2D array");
-		PG_RETURN_NULL();
-	}
-
-	/* copy values from 2D arrays to 1D arrays */
-	k = 0;
-	/* Y-axis */
-	for (i = 0; i < dim[0]; i++) {
-		/* X-axis */
-		for (j = 0; j < dim[1]; j++) {
-			nodata1D[k] = (bool) nodata2D[i][j];
-			if (!nodata1D[k])
-				value1D[k] = Float8GetDatum(value2D[i][j]);
-			else
-				value1D[k] = PointerGetDatum(NULL);
-
-			k++;
-		}
-	}
-
-	/* no more need for 2D arrays */
-	for (i = 0; i < dim[0]; i++) {
-		pfree(value2D[i]);
-		pfree(nodata2D[i]);
-	}
-	pfree(value2D);
-	pfree(nodata2D);
-
-	/* info about the type of item in the multi-dimensional array (float8). */
-	get_typlenbyvalalign(FLOAT8OID, &typlen, &typbyval, &typalign);
-
-	mdArray = construct_md_array(
-		value1D, nodata1D,
-		2, dim, lbound,
-		FLOAT8OID,
-		typlen, typbyval, typalign
-	);
-
-	pfree(value1D);
-	pfree(nodata1D);
-
-	PG_RETURN_ARRAYTYPE_P(mdArray);
-}
-
-/**
- * Add band(s) to the given raster at the given position(s).
- */
-PG_FUNCTION_INFO_V1(RASTER_addBand);
-Datum RASTER_addBand(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster = NULL;
-	int bandindex = 0;
-	int maxbandindex = 0;
-	int numbands = 0;
-	int lastnumbands = 0;
-
-	text *text_pixtype = NULL;
-	char *char_pixtype = NULL;
-
-	struct addbandarg {
-		int index;
-		bool append;
-		rt_pixtype pixtype;
-		double initialvalue;
-		bool hasnodata;
-		double nodatavalue;
-	};
-	struct addbandarg *arg = NULL;
-
-	ArrayType *array;
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-	int n = 0;
-
-	HeapTupleHeader tup;
-	bool isnull;
-	Datum tupv;
-
-	int i = 0;
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	/* raster */
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_addBand: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* process set of addbandarg */
-	POSTGIS_RT_DEBUG(3, "Processing Arg 1 (addbandargset)");
-	array = PG_GETARG_ARRAYTYPE_P(1);
-	etype = ARR_ELEMTYPE(array);
-	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-	deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-		&nulls, &n);
-
-	if (!n) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset");
-		PG_RETURN_NULL();
-	}
-
-	/* allocate addbandarg */
-	arg = (struct addbandarg *) palloc(sizeof(struct addbandarg) * n);
-	if (arg == NULL) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_addBand: Could not allocate memory for addbandarg");
-		PG_RETURN_NULL();
-	}
-
-	/*
-		process each element of addbandargset
-		each element is the index of where to add the new band,
-			new band's pixeltype, the new band's initial value and
-			the new band's NODATA value if NOT NULL
-	*/
-	for (i = 0; i < n; i++) {
-		if (nulls[i]) continue;
-
-		POSTGIS_RT_DEBUGF(4, "Processing addbandarg at index %d", i);
-
-		/* each element is a tuple */
-		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
-		if (NULL == tup) {
-			pfree(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset");
-			PG_RETURN_NULL();
-		}
-
-		/* new band index, 1-based */
-		arg[i].index = 0;
-		arg[i].append = TRUE;
-		tupv = GetAttributeByName(tup, "index", &isnull);
-		if (!isnull) {
-			arg[i].index = DatumGetInt32(tupv);
-			arg[i].append = FALSE;
-		}
-
-		/* for now, only check that band index is 1-based */
-		if (!arg[i].append && arg[i].index < 1) {
-			pfree(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset. Invalid band index (must be 1-based) for addbandarg of index %d", i);
-			PG_RETURN_NULL();
-		}
-
-		/* new band pixeltype */
-		arg[i].pixtype = PT_END;
-		tupv = GetAttributeByName(tup, "pixeltype", &isnull);
-		if (isnull) {
-			pfree(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset. Pixel type cannot be NULL for addbandarg of index %d", i);
-			PG_RETURN_NULL();
-		}
-		text_pixtype = (text *) DatumGetPointer(tupv);
-		if (text_pixtype == NULL) {
-			pfree(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset. Pixel type cannot be NULL for addbandarg of index %d", i);
-			PG_RETURN_NULL();
-		}
-		char_pixtype = text_to_cstring(text_pixtype);
-
-		arg[i].pixtype = rt_pixtype_index_from_name(char_pixtype);
-		pfree(char_pixtype);
-		if (arg[i].pixtype == PT_END) {
-			pfree(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset. Invalid pixel type for addbandarg of index %d", i);
-			PG_RETURN_NULL();
-		}
-
-		/* new band initialvalue */
-		arg[i].initialvalue = 0;
-		tupv = GetAttributeByName(tup, "initialvalue", &isnull);
-		if (!isnull)
-			arg[i].initialvalue = DatumGetFloat8(tupv);
-
-		/* new band NODATA value */
-		arg[i].hasnodata = FALSE;
-		arg[i].nodatavalue = 0;
-		tupv = GetAttributeByName(tup, "nodataval", &isnull);
-		if (!isnull) {
-			arg[i].hasnodata = TRUE;
-			arg[i].nodatavalue = DatumGetFloat8(tupv);
-		}
-	}
-
-	/* add new bands to raster */
-	lastnumbands = rt_raster_get_num_bands(raster);
-	for (i = 0; i < n; i++) {
-		if (nulls[i]) continue;
-
-		POSTGIS_RT_DEBUGF(3, "%d bands in old raster", lastnumbands);
-		maxbandindex = lastnumbands + 1;
-
-		/* check that new band's index doesn't exceed maxbandindex */
-		if (!arg[i].append) {
-			if (arg[i].index > maxbandindex) {
-				elog(NOTICE, "Band index for addbandarg of index %d exceeds possible value. Adding band at index %d", i, maxbandindex);
-				arg[i].index = maxbandindex;
-			}
-		}
-		/* append, so use maxbandindex */
-		else
-			arg[i].index = maxbandindex;
-
-		POSTGIS_RT_DEBUGF(4, "new band (index, pixtype, initialvalue, hasnodata, nodatavalue) = (%d, %s, %f, %s, %f)",
-			arg[i].index,
-			rt_pixtype_name(arg[i].pixtype),
-			arg[i].initialvalue,
-			arg[i].hasnodata ? "TRUE" : "FALSE",
-			arg[i].nodatavalue
-		);
-
-		bandindex = rt_raster_generate_new_band(
-			raster,
-			arg[i].pixtype, arg[i].initialvalue,
-			arg[i].hasnodata, arg[i].nodatavalue,
-			arg[i].index - 1
-		);
-
-		numbands = rt_raster_get_num_bands(raster);
-		if (numbands == lastnumbands || bandindex == -1) {
-			pfree(arg);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBand: Could not add band defined by addbandarg of index %d to raster", i);
-			PG_RETURN_NULL();
-		}
-
-		lastnumbands = numbands;
-		POSTGIS_RT_DEBUGF(3, "%d bands in new raster", lastnumbands);
-	}
-
-	pfree(arg);
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Add bands from array of rasters to a destination raster
- */
-PG_FUNCTION_INFO_V1(RASTER_addBandRasterArray);
-Datum RASTER_addBandRasterArray(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgsrc = NULL;
-	rt_pgraster *pgrtn = NULL;
-
-	rt_raster raster = NULL;
-	rt_raster src = NULL;
-
-	int srcnband = 1;
-	bool appendband = FALSE;
-	int dstnband = 1;
-	int srcnumbands = 0;
-	int dstnumbands = 0;
-
-	ArrayType *array;
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-	int n = 0;
-
-	int rtn = 0;
-	int i = 0;
-
-	/* destination raster */
-	if (!PG_ARGISNULL(0)) {
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-		/* raster */
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBandRasterArray: Could not deserialize destination raster");
-			PG_RETURN_NULL();
-		}
-
-		POSTGIS_RT_DEBUG(4, "destination raster isn't NULL");
-	}
-
-	/* source rasters' band index, 1-based */
-	if (!PG_ARGISNULL(2))
-		srcnband = PG_GETARG_INT32(2);
-	if (srcnband < 1) {
-		elog(NOTICE, "Invalid band index for source rasters (must be 1-based).  Returning original raster");
-		if (raster != NULL) {
-			rt_raster_destroy(raster);
-			PG_RETURN_POINTER(pgraster);
-		}
-		else
-			PG_RETURN_NULL();
-	}
-	POSTGIS_RT_DEBUGF(4, "srcnband = %d", srcnband);
-
-	/* destination raster's band index, 1-based */
-	if (!PG_ARGISNULL(3)) {
-		dstnband = PG_GETARG_INT32(3);
-		appendband = FALSE;
-
-		if (dstnband < 1) {
-			elog(NOTICE, "Invalid band index for destination raster (must be 1-based).  Returning original raster");
-			if (raster != NULL) {
-				rt_raster_destroy(raster);
-				PG_RETURN_POINTER(pgraster);
-			}
-			else
-				PG_RETURN_NULL();
-		}
-	}
-	else
-		appendband = TRUE;
-
-	/* additional processing of dstnband */
-	if (raster != NULL) {
-		dstnumbands = rt_raster_get_num_bands(raster);
-
-		if (dstnumbands < 1) {
-			appendband = TRUE;
-			dstnband = 1;
-		}
-		else if (appendband)
-			dstnband = dstnumbands + 1;
-		else if (dstnband > dstnumbands) {
-			elog(NOTICE, "Band index provided for destination raster is greater than the number of bands in the raster.  Bands will be appended");
-			appendband = TRUE;
-			dstnband = dstnumbands + 1;
-		}
-	}
-	POSTGIS_RT_DEBUGF(4, "appendband = %d", appendband);
-	POSTGIS_RT_DEBUGF(4, "dstnband = %d", dstnband);
-
-	/* process set of source rasters */
-	POSTGIS_RT_DEBUG(3, "Processing array of source rasters");
-	array = PG_GETARG_ARRAYTYPE_P(1);
-	etype = ARR_ELEMTYPE(array);
-	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-	deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-		&nulls, &n);
-
-	/* decrement srcnband and dstnband by 1, now 0-based */
-	srcnband--;
-	dstnband--;
-	POSTGIS_RT_DEBUGF(4, "0-based nband (src, dst) = (%d, %d)", srcnband, dstnband);
-
-	/* time to copy bands */
-	for (i = 0; i < n; i++) {
-		if (nulls[i]) continue;
-		src = NULL;
-
-		pgsrc =	(rt_pgraster *) PG_DETOAST_DATUM(e[i]);
-		src = rt_raster_deserialize(pgsrc, FALSE);
-		if (src == NULL) {
-			pfree(nulls);
-			pfree(e);
-			if (raster != NULL)
-				rt_raster_destroy(raster);
-			if (pgraster != NULL)
-				PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBandRasterArray: Could not deserialize source raster at index %d", i + 1);
-			PG_RETURN_NULL();
-		}
-
-		srcnumbands = rt_raster_get_num_bands(src);
-		POSTGIS_RT_DEBUGF(4, "source raster %d has %d bands", i + 1, srcnumbands);
-
-		/* band index isn't valid */
-		if (srcnband > srcnumbands - 1) {
-			elog(NOTICE, "Invalid band index for source raster at index %d.  Returning original raster", i + 1);
-			pfree(nulls);
-			pfree(e);
-			rt_raster_destroy(src);
-			if (raster != NULL) {
-				rt_raster_destroy(raster);
-				PG_RETURN_POINTER(pgraster);
-			}
-			else
-				PG_RETURN_NULL();
-		}
-
-		/* destination raster is empty, new raster */
-		if (raster == NULL) {
-			uint32_t srcnbands[1] = {srcnband};
-
-			POSTGIS_RT_DEBUG(4, "empty destination raster, using rt_raster_from_band");
-
-			raster = rt_raster_from_band(src, srcnbands, 1);
-			rt_raster_destroy(src);
-			if (raster == NULL) {
-				pfree(nulls);
-				pfree(e);
-				if (pgraster != NULL)
-					PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_addBandRasterArray: Could not create raster from source raster at index %d", i + 1);
-				PG_RETURN_NULL();
-			}
-		}
-		/* copy band */
-		else {
-			rtn = rt_raster_copy_band(
-				raster, src,
-				srcnband, dstnband
-			);
-			rt_raster_destroy(src);
-
-			if (rtn == -1 || rt_raster_get_num_bands(raster) == dstnumbands) {
-				elog(NOTICE, "Could not add band from source raster at index %d to destination raster.  Returning original raster", i + 1);
-				rt_raster_destroy(raster);
-				pfree(nulls);
-				pfree(e);
-				if (pgraster != NULL)
-					PG_RETURN_POINTER(pgraster);
-				else
-					PG_RETURN_NULL();
-			}
-		}
-
-		dstnband++;
-		dstnumbands++;
-	}
-
-	if (raster != NULL) {
-		pgrtn = rt_raster_serialize(raster);
-		rt_raster_destroy(raster);
-		if (pgraster != NULL)
-			PG_FREE_IF_COPY(pgraster, 0);
-		if (!pgrtn)
-			PG_RETURN_NULL();
-
-		SET_VARSIZE(pgrtn, pgrtn->size);
-		PG_RETURN_POINTER(pgrtn);
-	}
-
-	PG_RETURN_NULL();
-}
-
-/**
- * Add out-db band to the given raster at the given position
- */
-PG_FUNCTION_INFO_V1(RASTER_addBandOutDB);
-Datum RASTER_addBandOutDB(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	int numbands = 0;
-	int dstnband = 1; /* 1-based */
-	int appendband = FALSE;
-	char *outdbfile = NULL;
-	int *srcnband = NULL; /* 1-based */
-	int numsrcnband = 0;
-	int allbands = FALSE;
-	int hasnodata = FALSE;
-	double nodataval = 0.;
-	uint16_t width = 0;
-	uint16_t height = 0;
-	char *authname = NULL;
-	char *authcode = NULL;
-
-	int i = 0;
-	int j = 0;
-
-	GDALDatasetH hdsOut;
-	GDALRasterBandH hbandOut;
-	GDALDataType gdpixtype;
-
-	rt_pixtype pt = PT_END;
-	double gt[6] = {0.};
-	double ogt[6] = {0.};
-	rt_raster _rast = NULL;
-	int aligned = 0;
-	int err = 0;
-
-	/* destination raster */
-	if (!PG_ARGISNULL(0)) {
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-		/* raster */
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBandOutDB: Could not deserialize destination raster");
-			PG_RETURN_NULL();
-		}
-
-		POSTGIS_RT_DEBUG(4, "destination raster isn't NULL");
-	}
-
-	/* destination band index (1) */
-	if (!PG_ARGISNULL(1))
-		dstnband = PG_GETARG_INT32(1);
-	else
-		appendband = TRUE;
-
-	/* outdb file (2) */
-	if (PG_ARGISNULL(2)) {
-		elog(NOTICE, "Out-db raster file not provided. Returning original raster");
-		if (pgraster != NULL) {
-			rt_raster_destroy(raster);
-			PG_RETURN_POINTER(pgraster);
-		}
-		else
-			PG_RETURN_NULL();
-	}
-	else {
-		outdbfile = text_to_cstring(PG_GETARG_TEXT_P(2));
-		if (!strlen(outdbfile)) {
-			elog(NOTICE, "Out-db raster file not provided. Returning original raster");
-			if (pgraster != NULL) {
-				rt_raster_destroy(raster);
-				PG_RETURN_POINTER(pgraster);
-			}
-			else
-				PG_RETURN_NULL();
-		}
-	}
-
-	/* outdb band index (3) */
-	if (!PG_ARGISNULL(3)) {
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-
-		allbands = FALSE;
-
-		array = PG_GETARG_ARRAYTYPE_P(3);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case INT2OID:
-			case INT4OID:
-				break;
-			default:
-				if (pgraster != NULL) {
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-				}
-				elog(ERROR, "RASTER_addBandOutDB: Invalid data type for band indexes");
-				PG_RETURN_NULL();
-				break;
-		}
-
-		deconstruct_array(array, etype, typlen, typbyval, typalign, &e, &nulls, &numsrcnband);
-
-		srcnband = palloc(sizeof(int) * numsrcnband);
-		if (srcnband == NULL) {
-			if (pgraster != NULL) {
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-			}
-			elog(ERROR, "RASTER_addBandOutDB: Could not allocate memory for band indexes");
-			PG_RETURN_NULL();
-		}
-
-		for (i = 0, j = 0; i < numsrcnband; i++) {
-			if (nulls[i]) continue;
-
-			switch (etype) {
-				case INT2OID:
-					srcnband[j] = DatumGetInt16(e[i]);
-					break;
-				case INT4OID:
-					srcnband[j] = DatumGetInt32(e[i]);
-					break;
-			}
-			j++;
-		}
-
-		if (j < numsrcnband) {
-			srcnband = repalloc(srcnband, sizeof(int) * j);
-			if (srcnband == NULL) {
-				if (pgraster != NULL) {
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-				}
-				elog(ERROR, "RASTER_addBandOutDB: Could not reallocate memory for band indexes");
-				PG_RETURN_NULL();
-			}
-
-			numsrcnband = j;
-		}
-	}
-	else
-		allbands = TRUE;
-
-	/* nodataval (4) */
-	if (!PG_ARGISNULL(4)) {
-		hasnodata = TRUE;
-		nodataval = PG_GETARG_FLOAT8(4);
-	}
-	else
-		hasnodata = FALSE;
-
-	/* validate input */
-
-	/* make sure dstnband is valid */
-	if (raster != NULL) {
-		numbands = rt_raster_get_num_bands(raster);
-		if (!appendband) {
-			if (dstnband < 1) {
-				elog(NOTICE, "Invalid band index %d for adding bands. Using band index 1", dstnband);
-				dstnband = 1;
-			}
-			else if (dstnband > numbands) {
-				elog(NOTICE, "Invalid band index %d for adding bands. Using band index %d", dstnband, numbands);
-				dstnband = numbands + 1; 
-			}
-		}
-		else
-			dstnband = numbands + 1; 
-	}
-
-	/* open outdb raster file */
-	rt_util_gdal_register_all(0);
-	hdsOut = rt_util_gdal_open(outdbfile, GA_ReadOnly, 1);
-	if (hdsOut == NULL) {
-		if (pgraster != NULL) {
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-		}
-		elog(ERROR, "RASTER_addBandOutDB: Could not open out-db file with GDAL");
-		PG_RETURN_NULL();
-	}
-
-	/* get offline raster's geotransform */
-	if (GDALGetGeoTransform(hdsOut, ogt) != CE_None) {
-		ogt[0] = 0;
-		ogt[1] = 1;
-		ogt[2] = 0;
-		ogt[3] = 0;
-		ogt[4] = 0;
-		ogt[5] = -1;
-	}
-
-	/* raster doesn't exist, create it now */
-	if (raster == NULL) {
-		raster = rt_raster_new(GDALGetRasterXSize(hdsOut), GDALGetRasterYSize(hdsOut));
-		if (rt_raster_is_empty(raster)) {
-			elog(ERROR, "RASTER_addBandOutDB: Could not create new raster");
-			PG_RETURN_NULL();
-		}
-		rt_raster_set_geotransform_matrix(raster, ogt);
-		rt_raster_get_geotransform_matrix(raster, gt);
-
-		if (rt_util_gdal_sr_auth_info(hdsOut, &authname, &authcode) == ES_NONE) {
-			if (
-				authname != NULL &&
-				strcmp(authname, "EPSG") == 0 &&
-				authcode != NULL
-			) {
-				rt_raster_set_srid(raster, atoi(authcode));
-			}
-			else
-				elog(INFO, "Unknown SRS auth name and code from out-db file. Defaulting SRID of new raster to %d", SRID_UNKNOWN);
-		}
-		else
-			elog(INFO, "Could not get SRS auth name and code from out-db file. Defaulting SRID of new raster to %d", SRID_UNKNOWN);
-	}
-
-	/* some raster info */
-	width = rt_raster_get_width(raster);
-	height = rt_raster_get_height(raster);
-
-	/* are rasters aligned? */
-	_rast = rt_raster_new(1, 1);
-	rt_raster_set_geotransform_matrix(_rast, ogt);
-	rt_raster_set_srid(_rast, rt_raster_get_srid(raster));
-	err = rt_raster_same_alignment(raster, _rast, &aligned, NULL);
-	rt_raster_destroy(_rast);
-
-	if (err != ES_NONE) {
-		GDALClose(hdsOut);
-		if (raster != NULL)
-			rt_raster_destroy(raster);
-		if (pgraster != NULL)
-			PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_addBandOutDB: Could not test alignment of out-db file");
-		return ES_ERROR;
-	}
-	else if (!aligned)
-		elog(WARNING, "The in-db representation of the out-db raster is not aligned. Band data may be incorrect");
-
-	numbands = GDALGetRasterCount(hdsOut);
-
-	/* build up srcnband */
-	if (allbands) {
-		numsrcnband = numbands;
-		srcnband = palloc(sizeof(int) * numsrcnband);
-		if (srcnband == NULL) {
-			GDALClose(hdsOut);
-			if (raster != NULL)
-				rt_raster_destroy(raster);
-			if (pgraster != NULL)
-				PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBandOutDB: Could not allocate memory for band indexes");
-			PG_RETURN_NULL();
-		}
-
-		for (i = 0, j = 1; i < numsrcnband; i++, j++)
-			srcnband[i] = j;
-	}
-
-	/* check band properties and add band */
-	for (i = 0, j = dstnband - 1; i < numsrcnband; i++, j++) {
-		/* valid index? */
-		if (srcnband[i] < 1 || srcnband[i] > numbands) {
-			elog(NOTICE, "Out-db file does not have a band at index %d. Returning original raster", srcnband[i]);
-			GDALClose(hdsOut);
-			if (raster != NULL)
-				rt_raster_destroy(raster);
-			if (pgraster != NULL)
-				PG_RETURN_POINTER(pgraster);
-			else
-				PG_RETURN_NULL();
-		}
-
-		/* get outdb band */
-		hbandOut = NULL;
-		hbandOut = GDALGetRasterBand(hdsOut, srcnband[i]);
-		if (NULL == hbandOut) {
-			GDALClose(hdsOut);
-			if (raster != NULL)
-				rt_raster_destroy(raster);
-			if (pgraster != NULL)
-				PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBandOutDB: Could not get band %d from GDAL dataset", srcnband[i]);
-			PG_RETURN_NULL();
-		}
-
-		/* supported pixel type */
-		gdpixtype = GDALGetRasterDataType(hbandOut);
-		pt = rt_util_gdal_datatype_to_pixtype(gdpixtype);
-		if (pt == PT_END) {
-			elog(NOTICE, "Pixel type %s of band %d from GDAL dataset is not supported. Returning original raster", GDALGetDataTypeName(gdpixtype), srcnband[i]);
-			GDALClose(hdsOut);
-			if (raster != NULL)
-				rt_raster_destroy(raster);
-			if (pgraster != NULL)
-				PG_RETURN_POINTER(pgraster);
-			else
-				PG_RETURN_NULL();
-		}
-
-		/* use out-db band's nodata value if nodataval not already set */
-		if (!hasnodata)
-			nodataval = GDALGetRasterNoDataValue(hbandOut, &hasnodata);
-
-		/* add band */
-		band = rt_band_new_offline(
-			width, height,
-			pt,
-			hasnodata, nodataval,
-			srcnband[i] - 1, outdbfile
-		);
-		if (band == NULL) {
-			GDALClose(hdsOut);
-			if (raster != NULL)
-				rt_raster_destroy(raster);
-			if (pgraster != NULL)
-				PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBandOutDB: Could not create new out-db band");
-			PG_RETURN_NULL();
-		}
-
-		if (rt_raster_add_band(raster, band, j) < 0) {
-			GDALClose(hdsOut);
-			if (raster != NULL)
-				rt_raster_destroy(raster);
-			if (pgraster != NULL)
-				PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_addBandOutDB: Could not add new out-db band to raster");
-			PG_RETURN_NULL();
-		}
-	}
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	if (pgraster != NULL)
-		PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Break up a raster into smaller tiles. SRF function
- */
-PG_FUNCTION_INFO_V1(RASTER_tile);
-Datum RASTER_tile(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	int call_cntr;
-	int max_calls;
-	int i = 0;
-	int j = 0;
-
-	struct tile_arg_t {
-
-		struct {
-			rt_raster raster;
-			double gt[6];
-			int srid;
-			int width;
-			int height;
-		} raster;
-
-		struct {
-			int width;
-			int height;
-
-			int nx;
-			int ny;
-		} tile;
-
-		int numbands;
-		int *nbands;
-
-		struct {
-			int pad;
-			double hasnodata;
-			double nodataval;
-		} pad;
-	};
-	struct tile_arg_t *arg1 = NULL;
-	struct tile_arg_t *arg2 = NULL;
-
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-		rt_pgraster *pgraster = NULL;
-		int numbands;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-
-		POSTGIS_RT_DEBUG(2, "RASTER_tile: first call");
-
-		/* 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);
-
-		/* Get input arguments */
-		if (PG_ARGISNULL(0)) {
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* allocate arg1 */
-		arg1 = palloc(sizeof(struct tile_arg_t));
-		if (arg1 == NULL) {
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_tile: Could not allocate memory for arguments");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
-		arg1->raster.raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!arg1->raster.raster) {
-			ereport(ERROR, (
-				errcode(ERRCODE_OUT_OF_MEMORY),
-				errmsg("Could not deserialize raster")
-			));
-			pfree(arg1);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* raster has bands */
-		numbands = rt_raster_get_num_bands(arg1->raster.raster); 
-		/*
-		if (!numbands) {
-			elog(NOTICE, "Raster provided has no bands");
-			rt_raster_destroy(arg1->raster.raster);
-			pfree(arg1);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		*/
-
-		/* width (1) */
-		if (PG_ARGISNULL(1)) {
-			elog(NOTICE, "Width cannot be NULL. Returning NULL");
-			rt_raster_destroy(arg1->raster.raster);
-			pfree(arg1);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		arg1->tile.width = PG_GETARG_INT32(1);
-		if (arg1->tile.width < 1) {
-			elog(NOTICE, "Width must be greater than zero. Returning NULL");
-			rt_raster_destroy(arg1->raster.raster);
-			pfree(arg1);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* height (2) */
-		if (PG_ARGISNULL(2)) {
-			elog(NOTICE, "Height cannot be NULL. Returning NULL");
-			rt_raster_destroy(arg1->raster.raster);
-			pfree(arg1);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		arg1->tile.height = PG_GETARG_INT32(2);
-		if (arg1->tile.height < 1) {
-			elog(NOTICE, "Height must be greater than zero. Returning NULL");
-			rt_raster_destroy(arg1->raster.raster);
-			pfree(arg1);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* nband, array (3) */
-		if (numbands && !PG_ARGISNULL(3)) {
-			array = PG_GETARG_ARRAYTYPE_P(3);
-			etype = ARR_ELEMTYPE(array);
-			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-			switch (etype) {
-				case INT2OID:
-				case INT4OID:
-					break;
-				default:
-					rt_raster_destroy(arg1->raster.raster);
-					pfree(arg1);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_tile: Invalid data type for band indexes");
-					SRF_RETURN_DONE(funcctx);
-					break;
-			}
-
-			deconstruct_array(array, etype, typlen, typbyval, typalign, &e, &nulls, &(arg1->numbands));
-
-			arg1->nbands = palloc(sizeof(int) * arg1->numbands);
-			if (arg1->nbands == NULL) {
-				rt_raster_destroy(arg1->raster.raster);
-				pfree(arg1);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_tile: Could not allocate memory for band indexes");
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			for (i = 0, j = 0; i < arg1->numbands; i++) {
-				if (nulls[i]) continue;
-
-				switch (etype) {
-					case INT2OID:
-						arg1->nbands[j] = DatumGetInt16(e[i]) - 1;
-						break;
-					case INT4OID:
-						arg1->nbands[j] = DatumGetInt32(e[i]) - 1;
-						break;
-				}
-
-				j++;
-			}
-
-			if (j < arg1->numbands) {
-				arg1->nbands = repalloc(arg1->nbands, sizeof(int) * j);
-				if (arg1->nbands == NULL) {
-					rt_raster_destroy(arg1->raster.raster);
-					pfree(arg1);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_tile: Could not reallocate memory for band indexes");
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				arg1->numbands = j;
-			}
-
-			/* validate nbands */
-			for (i = 0; i < arg1->numbands; i++) {
-				if (!rt_raster_has_band(arg1->raster.raster, arg1->nbands[i])) {
-					elog(NOTICE, "Band at index %d not found in raster", arg1->nbands[i] + 1);
-					rt_raster_destroy(arg1->raster.raster);
-					pfree(arg1->nbands);
-					pfree(arg1);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					SRF_RETURN_DONE(funcctx);
-				}
-			}
-		}
-		else {
-			arg1->numbands = numbands;
-
-			if (numbands) {
-				arg1->nbands = palloc(sizeof(int) * arg1->numbands);
-
-				if (arg1->nbands == NULL) {
-					rt_raster_destroy(arg1->raster.raster);
-					pfree(arg1);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_dumpValues: Could not allocate memory for pixel values");
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				for (i = 0; i < arg1->numbands; i++) {
-					arg1->nbands[i] = i;
-					POSTGIS_RT_DEBUGF(4, "arg1->nbands[%d] = %d", arg1->nbands[i], i);
-				}
-			}
-		}
-
-		/* pad (4) and padnodata (5) */
-		if (!PG_ARGISNULL(4)) {
-			arg1->pad.pad = PG_GETARG_BOOL(4) ? 1 : 0;
-
-			if (arg1->pad.pad && !PG_ARGISNULL(5)) {
-				arg1->pad.hasnodata = 1;
-				arg1->pad.nodataval = PG_GETARG_FLOAT8(5);
-			}
-			else {
-				arg1->pad.hasnodata = 0;
-				arg1->pad.nodataval = 0;
-			}
-		}
-		else {
-			arg1->pad.pad = 0;
-			arg1->pad.hasnodata = 0;
-			arg1->pad.nodataval = 0;
-		}
-
-		/* store some additional metadata */
-		arg1->raster.srid = rt_raster_get_srid(arg1->raster.raster);
-		arg1->raster.width = rt_raster_get_width(arg1->raster.raster);
-		arg1->raster.height = rt_raster_get_height(arg1->raster.raster);
-		rt_raster_get_geotransform_matrix(arg1->raster.raster, arg1->raster.gt);
-
-		/* determine maximum number of tiles from raster */
-		arg1->tile.nx = ceil(arg1->raster.width / (double) arg1->tile.width);
-		arg1->tile.ny = ceil(arg1->raster.height / (double) arg1->tile.height);
-		POSTGIS_RT_DEBUGF(4, "# of tiles (x, y) = (%d, %d)", arg1->tile.nx, arg1->tile.ny);
-
-		/* Store needed information */
-		funcctx->user_fctx = arg1;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = (arg1->tile.nx * arg1->tile.ny);
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	arg2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		rt_pgraster *pgtile = NULL;
-		rt_raster tile = NULL;
-		rt_band _band = NULL;
-		rt_band band = NULL;
-		rt_pixtype pixtype = PT_END;
-		int hasnodata = 0;
-		double nodataval = 0;
-		int width = 0;
-		int height = 0;
-
-		int k = 0;
-		int tx = 0;
-		int ty = 0;
-		int rx = 0;
-		int ry = 0;
-		int ex = 0; /* edge tile on right */
-		int ey = 0; /* edge tile on bottom */
-		double ulx = 0;
-		double uly = 0;
-		uint16_t len = 0;
-		void *vals = NULL;
-		uint16_t nvals;
-
-		POSTGIS_RT_DEBUGF(3, "call number %d", call_cntr);
-
-		/*
-			find offset based upon tile #
-
-			0 1 2
-			3 4 5
-			6 7 8
-		*/
-		ty = call_cntr / arg2->tile.nx;
-		tx = call_cntr % arg2->tile.nx;
-		POSTGIS_RT_DEBUGF(4, "tile (x, y) = (%d, %d)", tx, ty);
-
-		/* edge tile? only important if padding is false */
-		if (!arg2->pad.pad) {
-			if (ty + 1 == arg2->tile.ny)
-				ey = 1;
-			if (tx + 1 == arg2->tile.nx)
-				ex = 1;
-		}
-
-		/* upper-left of tile in raster coordinates */
-		rx = tx * arg2->tile.width;
-		ry = ty * arg2->tile.height;
-		POSTGIS_RT_DEBUGF(4, "raster coordinates = %d, %d", rx, ry);
-
-		/* determine tile width and height */
-		/* default to user-defined */
-		width = arg2->tile.width;
-		height = arg2->tile.height;
-
-		/* override user-defined if edge tile (only possible if padding is false */
-		if (ex || ey) {
-			/* right edge */
-			if (ex)
-				width = arg2->raster.width - rx;
-			/* bottom edge */
-			if (ey)
-				height = arg2->raster.height - ry;
-		}
-
-		/* create empty raster */
-		tile = rt_raster_new(width, height);
-		rt_raster_set_geotransform_matrix(tile, arg2->raster.gt);
-		rt_raster_set_srid(tile, arg2->raster.srid);
-
-		/* upper-left of tile in spatial coordinates */
-		if (rt_raster_cell_to_geopoint(arg2->raster.raster, rx, ry, &ulx, &uly, arg2->raster.gt) != ES_NONE) {
-			rt_raster_destroy(tile);
-			rt_raster_destroy(arg2->raster.raster);
-			if (arg2->numbands) pfree(arg2->nbands);
-			pfree(arg2);
-			elog(ERROR, "RASTER_tile: Could not compute the coordinates of the upper-left corner of the output tile");
-			SRF_RETURN_DONE(funcctx);
-		}
-		rt_raster_set_offsets(tile, ulx, uly);
-		POSTGIS_RT_DEBUGF(4, "spatial coordinates = %f, %f", ulx, uly);
-
-		/* compute length of pixel line to read */
-		len = arg2->tile.width;
-		if (rx + arg2->tile.width >= arg2->raster.width)
-			len = arg2->raster.width - rx;
-		POSTGIS_RT_DEBUGF(3, "read line len = %d", len);
-
-		/* copy bands to tile */
-		for (i = 0; i < arg2->numbands; i++) {
-			POSTGIS_RT_DEBUGF(4, "copying band %d to tile %d", arg2->nbands[i], call_cntr);
-
-			_band = rt_raster_get_band(arg2->raster.raster, arg2->nbands[i]);
-			if (_band == NULL) {
-				int nband = arg2->nbands[i] + 1;
-				rt_raster_destroy(tile);
-				rt_raster_destroy(arg2->raster.raster);
-				if (arg2->numbands) pfree(arg2->nbands);
-				pfree(arg2);
-				elog(ERROR, "RASTER_tile: Could not get band %d from source raster", nband);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			pixtype = rt_band_get_pixtype(_band);
-			hasnodata = rt_band_get_hasnodata_flag(_band);
-			if (hasnodata)
-				rt_band_get_nodata(_band, &nodataval);
-			else if (arg2->pad.pad && arg2->pad.hasnodata) {
-				hasnodata = 1;
-				nodataval = arg2->pad.nodataval;
-			}
-			else
-				nodataval = rt_band_get_min_value(_band);
-
-			/* inline band */
-			if (!rt_band_is_offline(_band)) {
-				if (rt_raster_generate_new_band(tile, pixtype, nodataval, hasnodata, nodataval, i) < 0) {
-					rt_raster_destroy(tile);
-					rt_raster_destroy(arg2->raster.raster);
-					pfree(arg2->nbands);
-					pfree(arg2);
-					elog(ERROR, "RASTER_tile: Could not add new band to output tile");
-					SRF_RETURN_DONE(funcctx);
-				}
-				band = rt_raster_get_band(tile, i);
-				if (band == NULL) {
-					rt_raster_destroy(tile);
-					rt_raster_destroy(arg2->raster.raster);
-					if (arg2->numbands) pfree(arg2->nbands);
-					pfree(arg2);
-					elog(ERROR, "RASTER_tile: Could not get newly added band from output tile");
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				/* if isnodata, set flag and continue */
-				if (rt_band_get_isnodata_flag(_band)) {
-					rt_band_set_isnodata_flag(band, 1);
-					continue;
-				}
-
-				/* copy data */
-				for (j = 0; j < arg2->tile.height; j++) {
-					k = ry + j;
-
-					if (k >= arg2->raster.height) {
-						POSTGIS_RT_DEBUGF(4, "row %d is beyond extent of source raster. skipping", k);
-						continue;
-					}
-
-					POSTGIS_RT_DEBUGF(4, "getting pixel line %d, %d for %d pixels", rx, k, len);
-					if (rt_band_get_pixel_line(_band, rx, k, len, &vals, &nvals) != ES_NONE) {
-						rt_raster_destroy(tile);
-						rt_raster_destroy(arg2->raster.raster);
-						if (arg2->numbands) pfree(arg2->nbands);
-						pfree(arg2);
-						elog(ERROR, "RASTER_tile: Could not get pixel line from source raster");
-						SRF_RETURN_DONE(funcctx);
-					}
-
-					if (nvals && rt_band_set_pixel_line(band, 0, j, vals, nvals) != ES_NONE) {
-						rt_raster_destroy(tile);
-						rt_raster_destroy(arg2->raster.raster);
-						if (arg2->numbands) pfree(arg2->nbands);
-						pfree(arg2);
-						elog(ERROR, "RASTER_tile: Could not set pixel line of output tile");
-						SRF_RETURN_DONE(funcctx);
-					}
-				}
-			}
-			/* offline */
-			else {
-				uint8_t bandnum = 0;
-				rt_band_get_ext_band_num(_band, &bandnum);
-
-				band = rt_band_new_offline(
-					width, height,
-					pixtype,
-					hasnodata, nodataval,
-					bandnum, rt_band_get_ext_path(_band)
-				);
-
-				if (band == NULL) {
-					rt_raster_destroy(tile);
-					rt_raster_destroy(arg2->raster.raster);
-					if (arg2->numbands) pfree(arg2->nbands);
-					pfree(arg2);
-					elog(ERROR, "RASTER_tile: Could not create new offline band for output tile");
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				if (rt_raster_add_band(tile, band, i) < 0) {
-					rt_band_destroy(band);
-					rt_raster_destroy(tile);
-					rt_raster_destroy(arg2->raster.raster);
-					if (arg2->numbands) pfree(arg2->nbands);
-					pfree(arg2);
-					elog(ERROR, "RASTER_tile: Could not add new offline band to output tile");
-					SRF_RETURN_DONE(funcctx);
-				}
-			}
-		}
-
-		pgtile = rt_raster_serialize(tile);
-		rt_raster_destroy(tile);
-		if (!pgtile) {
-			rt_raster_destroy(arg2->raster.raster);
-			if (arg2->numbands) pfree(arg2->nbands);
-			pfree(arg2);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		SET_VARSIZE(pgtile, pgtile->size);
-		SRF_RETURN_NEXT(funcctx, PointerGetDatum(pgtile));
-	}
-	/* do when there is no more left */
-	else {
-		rt_raster_destroy(arg2->raster.raster);
-		if (arg2->numbands) pfree(arg2->nbands);
-		pfree(arg2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Copy a band from one raster to another one at the given position.
- */
-PG_FUNCTION_INFO_V1(RASTER_copyBand);
-Datum RASTER_copyBand(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgto = NULL;
-	rt_pgraster *pgfrom = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster torast = NULL;
-	rt_raster fromrast = NULL;
-	int toindex = 0;
-	int fromband = 0;
-	int oldtorastnumbands = 0;
-	int newtorastnumbands = 0;
-	int newbandindex = 0;
-
-	/* Deserialize torast */
-	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-	pgto = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	torast = rt_raster_deserialize(pgto, FALSE);
-	if (!torast) {
-		PG_FREE_IF_COPY(pgto, 0);
-		elog(ERROR, "RASTER_copyBand: Could not deserialize first raster");
-		PG_RETURN_NULL();
-	}
-
-	/* Deserialize fromrast */
-	if (!PG_ARGISNULL(1)) {
-		pgfrom = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
-
-		fromrast = rt_raster_deserialize(pgfrom, FALSE);
-		if (!fromrast) {
-			rt_raster_destroy(torast);
-			PG_FREE_IF_COPY(pgfrom, 1);
-			PG_FREE_IF_COPY(pgto, 0);
-			elog(ERROR, "RASTER_copyBand: Could not deserialize second raster");
-			PG_RETURN_NULL();
-		}
-
-		oldtorastnumbands = rt_raster_get_num_bands(torast);
-
-		if (PG_ARGISNULL(2))
-			fromband = 1;
-		else
-			fromband = PG_GETARG_INT32(2);
-
-		if (PG_ARGISNULL(3))
-			toindex = oldtorastnumbands + 1;
-		else
-			toindex = PG_GETARG_INT32(3);
-
-		/* Copy band fromrast torast */
-		newbandindex = rt_raster_copy_band(
-			torast, fromrast,
-			fromband - 1, toindex - 1
-		);
-
-		newtorastnumbands = rt_raster_get_num_bands(torast);
-		if (newtorastnumbands == oldtorastnumbands || newbandindex == -1) {
-			elog(NOTICE, "RASTER_copyBand: Could not add band to raster. "
-				"Returning original raster."
-			);
-		}
-
-		rt_raster_destroy(fromrast);
-		PG_FREE_IF_COPY(pgfrom, 1);
-	}
-
-	/* Serialize and return torast */
-	pgrtn = rt_raster_serialize(torast);
-	rt_raster_destroy(torast);
-	PG_FREE_IF_COPY(pgto, 0);
-	if (!pgrtn) PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Check if raster is empty or not
- */
-PG_FUNCTION_INFO_V1(RASTER_isEmpty);
-Datum RASTER_isEmpty(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_raster raster = NULL;
-    bool isempty = FALSE;
-
-    /* Deserialize raster */
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster )
-    {
-        ereport(ERROR,
-            (errcode(ERRCODE_OUT_OF_MEMORY),
-                errmsg("RASTER_isEmpty: Could not deserialize raster")));
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    isempty = rt_raster_is_empty(raster);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_BOOL(isempty);
-}
-
-/**
- * Check if the raster has a given band or not
- */
-PG_FUNCTION_INFO_V1(RASTER_hasNoBand);
-Datum RASTER_hasNoBand(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_raster raster = NULL;
-    int bandindex = 0;
-    bool hasnoband = FALSE;
-
-    /* Deserialize raster */
-    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-    raster = rt_raster_deserialize(pgraster, TRUE);
-    if ( ! raster )
-    {
-        ereport(ERROR,
-            (errcode(ERRCODE_OUT_OF_MEMORY),
-                errmsg("RASTER_hasNoBand: Could not deserialize raster")));
-        PG_FREE_IF_COPY(pgraster, 0);
-        PG_RETURN_NULL();
-    }
-
-    /* Get band number */
-    bandindex = PG_GETARG_INT32(1);
-    hasnoband = !rt_raster_has_band(raster, bandindex - 1);
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    PG_RETURN_BOOL(hasnoband);
-}
-
-PG_FUNCTION_INFO_V1(RASTER_mapAlgebraExpr);
-Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_pgraster *pgrtn = NULL;
-    rt_raster raster = NULL;
-    rt_raster newrast = NULL;
-    rt_band band = NULL;
-    rt_band newband = NULL;
-    int x, y, nband, width, height;
-    double r;
-    double newnodatavalue = 0.0;
-    double newinitialvalue = 0.0;
-    double newval = 0.0;
-    char *newexpr = NULL;
-    char *initexpr = NULL;
-    char *expression = NULL;
-    int hasnodataval = 0;
-    double nodataval = 0.;
-    rt_pixtype newpixeltype;
-    int skipcomputation = 0;
-    int len = 0;
-    const int argkwcount = 3;
-    enum KEYWORDS { kVAL=0, kX=1, kY=2 };
-    char *argkw[] = {"[rast]", "[rast.x]", "[rast.y]"};
-    Oid argkwtypes[] = { FLOAT8OID, INT4OID, INT4OID };
-    int argcount = 0;
-    Oid argtype[] = { FLOAT8OID, INT4OID, INT4OID };
-    uint8_t argpos[3] = {0};
-    char place[5];
-    int idx = 0;
-    int ret = -1;
-    TupleDesc tupdesc;
-    SPIPlanPtr spi_plan = NULL;
-    SPITupleTable * tuptable = NULL;
-    HeapTuple tuple;
-    char * strFromText = NULL;
-    Datum *values = NULL;
-    Datum datum = (Datum)NULL;
-    char *nulls = NULL;
-    bool isnull = FALSE;
-    int i = 0;
-    int j = 0;
-
-    POSTGIS_RT_DEBUG(2, "RASTER_mapAlgebraExpr: Starting...");
-
-    /* Check raster */
-    if (PG_ARGISNULL(0)) {
-        elog(NOTICE, "Raster is NULL. Returning NULL");
-        PG_RETURN_NULL();
-    }
-
-
-    /* Deserialize raster */
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-    raster = rt_raster_deserialize(pgraster, FALSE);
-    if (NULL == raster) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_mapAlgebraExpr: Could not deserialize raster");
-        PG_RETURN_NULL();
-    }
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Getting arguments...");
-
-    if (PG_ARGISNULL(1))
-        nband = 1;
-    else
-        nband = PG_GETARG_INT32(1);
-
-    if (nband < 1)
-        nband = 1;
-
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Creating new empty raster...");
-
-    /**
-     * Create a new empty raster with having the same georeference as the
-     * provided raster
-     **/
-    width = rt_raster_get_width(raster);
-    height = rt_raster_get_height(raster);
-
-    newrast = rt_raster_new(width, height);
-
-    if ( NULL == newrast ) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_mapAlgebraExpr: Could not create a new raster");
-        PG_RETURN_NULL();
-    }
-
-    rt_raster_set_scale(newrast,
-            rt_raster_get_x_scale(raster),
-            rt_raster_get_y_scale(raster));
-
-    rt_raster_set_offsets(newrast,
-            rt_raster_get_x_offset(raster),
-            rt_raster_get_y_offset(raster));
-
-    rt_raster_set_skews(newrast,
-            rt_raster_get_x_skew(raster),
-            rt_raster_get_y_skew(raster));
-
-    rt_raster_set_srid(newrast, rt_raster_get_srid(raster));
-
-
-    /**
-     * If this new raster is empty (width = 0 OR height = 0) then there is
-     * nothing to compute and we return it right now
-     **/
-    if (rt_raster_is_empty(newrast))
-    {
-        elog(NOTICE, "Raster is empty. Returning an empty raster");
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Getting raster band %d...", nband);
-
-    /**
-     * Check if the raster has the required band. Otherwise, return a raster
-     * without band
-     **/
-    if (!rt_raster_has_band(raster, nband - 1)) {
-        elog(NOTICE, "Raster does not have the required band. Returning a raster "
-                "without a band");
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    /* Get the raster band */
-    band = rt_raster_get_band(raster, nband - 1);
-    if ( NULL == band ) {
-        elog(NOTICE, "Could not get the required band. Returning a raster "
-                "without a band");
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-     /*
-     * Get NODATA value
-     */
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Getting NODATA value for band...");
-
-    if (rt_band_get_hasnodata_flag(band)) {
-        rt_band_get_nodata(band, &newnodatavalue);
-    }
-
-    else {
-        newnodatavalue = rt_band_get_min_value(band);
-    }
-
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: NODATA value for band: = %f",
-        newnodatavalue);
-
-    /**
-     * We set the initial value of the future band to nodata value. If nodata
-     * value is null, then the raster will be initialized to
-     * rt_band_get_min_value but all the values should be recomputed anyway
-     **/
-    newinitialvalue = newnodatavalue;
-
-    /**
-     * Set the new pixeltype
-     **/
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Setting pixeltype...");
-
-    if (PG_ARGISNULL(2)) {
-        newpixeltype = rt_band_get_pixtype(band);
-    }
-
-    else {
-        strFromText = text_to_cstring(PG_GETARG_TEXT_P(2));
-        newpixeltype = rt_pixtype_index_from_name(strFromText);
-        pfree(strFromText);
-        if (newpixeltype == PT_END)
-            newpixeltype = rt_band_get_pixtype(band);
-    }
-
-    if (newpixeltype == PT_END) {
-        PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_mapAlgebraExpr: Invalid pixeltype");
-        PG_RETURN_NULL();
-    }
-
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Pixeltype set to %s",
-        rt_pixtype_name(newpixeltype));
-
-
-    /* Construct expression for raster values */
-    if (!PG_ARGISNULL(3)) {
-        expression = text_to_cstring(PG_GETARG_TEXT_P(3));
-        len = strlen("SELECT (") + strlen(expression) + strlen(")::double precision");
-        initexpr = (char *)palloc(len + 1);
-
-        strncpy(initexpr, "SELECT (", strlen("SELECT ("));
-        strncpy(initexpr + strlen("SELECT ("), expression, strlen(expression));
-				strncpy(initexpr + strlen("SELECT (") + strlen(expression), ")::double precision", strlen(")::double precision"));
-        initexpr[len] = '\0';
-
-        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Expression is %s", initexpr);
-
-        /* We don't need this memory */
-        /*
-				pfree(expression);
-        expression = NULL;
-				*/
-    }
-
-
-
-    /**
-     * Optimization: If a nodataval is provided, use it for newinitialvalue.
-     * Then, we can initialize the raster with this value and skip the
-     * computation of nodata values one by one in the main computing loop
-     **/
-    if (!PG_ARGISNULL(4)) {
-				hasnodataval = 1;
-				nodataval = PG_GETARG_FLOAT8(4);
-				newinitialvalue = nodataval;
-
-        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: new initial value = %f",
-            newinitialvalue);
-    }
-    else
-        hasnodataval = 0;
-
-
-
-    /**
-     * Optimization: If the raster is only filled with nodata values return
-     * right now a raster filled with the newinitialvalue
-     * TODO: Call rt_band_check_isnodata instead?
-     **/
-    if (rt_band_get_isnodata_flag(band)) {
-
-        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Band is a nodata band, returning "
-                "a raster filled with nodata");
-
-        ret = rt_raster_generate_new_band(newrast, newpixeltype,
-                newinitialvalue, TRUE, newnodatavalue, 0);
-
-        /* Free memory */
-        if (initexpr)
-            pfree(initexpr);
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-
-    /**
-     * Optimization: If expression resume to 'RAST' and hasnodataval is zero,
-		 * we can just return the band from the original raster
-     **/
-    if (initexpr != NULL && ( !strcmp(initexpr, "SELECT [rast]") || !strcmp(initexpr, "SELECT [rast.val]") ) && !hasnodataval) {
-
-        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Expression resumes to RAST. "
-                "Returning raster with band %d from original raster", nband);
-
-        POSTGIS_RT_DEBUGF(4, "RASTER_mapAlgebraExpr: New raster has %d bands",
-                rt_raster_get_num_bands(newrast));
-
-        rt_raster_copy_band(newrast, raster, nband - 1, 0);
-
-        POSTGIS_RT_DEBUGF(4, "RASTER_mapAlgebraExpr: New raster now has %d bands",
-                rt_raster_get_num_bands(newrast));
-
-        if (initexpr)
-            pfree(initexpr);
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    /**
-     * Optimization: If expression resume to a constant (it does not contain
-     * [rast)
-     **/
-    if (initexpr != NULL && strstr(initexpr, "[rast") == NULL) {
-        ret = SPI_connect();
-        if (ret != SPI_OK_CONNECT) {
-            PG_FREE_IF_COPY(pgraster, 0);
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not connect to the SPI manager");
-            PG_RETURN_NULL();
-        };
-
-        /* Execute the expresion into newval */
-        ret = SPI_execute(initexpr, FALSE, 0);
-
-        if (ret != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
-
-            /* Free memory allocated out of the current context */
-            if (SPI_tuptable)
-                SPI_freetuptable(tuptable);
-            PG_FREE_IF_COPY(pgraster, 0);
-
-            SPI_finish();
-            elog(ERROR, "RASTER_mapAlgebraExpr: Invalid construction for expression");
-            PG_RETURN_NULL();
-        }
-
-        tupdesc = SPI_tuptable->tupdesc;
-        tuptable = SPI_tuptable;
-
-        tuple = tuptable->vals[0];
-        newexpr = SPI_getvalue(tuple, tupdesc, 1);
-        if ( ! newexpr ) {
-            POSTGIS_RT_DEBUG(3, "Constant expression evaluated to NULL, keeping initvalue");
-            newval = newinitialvalue;
-        } else {
-            newval = atof(newexpr);
-        }
-
-        SPI_freetuptable(tuptable);
-
-        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: New raster value = %f",
-                newval);
-
-        SPI_finish();
-
-        skipcomputation = 1;
-
-        /**
-         * Compute the new value, set it and we will return after creating the
-         * new raster
-         **/
-        if (!hasnodataval) {
-            newinitialvalue = newval;
-            skipcomputation = 2;
-        }
-
-        /* Return the new raster as it will be before computing pixel by pixel */
-        else if (FLT_NEQ(newval, newinitialvalue)) {
-            skipcomputation = 2;
-        }
-    }
-
-    /**
-     * Create the raster receiving all the computed values. Initialize it to the
-     * new initial value
-     **/
-    ret = rt_raster_generate_new_band(newrast, newpixeltype,
-            newinitialvalue, TRUE, newnodatavalue, 0);
-
-    /**
-     * Optimization: If expression is NULL, or all the pixels could be set in
-     * one step, return the initialized raster now
-     **/
-    /*if (initexpr == NULL || skipcomputation == 2) {*/
-    if (expression == NULL || skipcomputation == 2) {
-
-        /* Free memory */
-        if (initexpr)
-            pfree(initexpr);
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    RASTER_DEBUG(3, "RASTER_mapAlgebraExpr: Creating new raster band...");
-
-    /* Get the new raster band */
-    newband = rt_raster_get_band(newrast, 0);
-    if ( NULL == newband ) {
-        elog(NOTICE, "Could not modify band for new raster. Returning new "
-                "raster with the original band");
-
-        if (initexpr)
-            pfree(initexpr);
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Main computing loop (%d x %d)",
-            width, height);
-
-    if (initexpr != NULL) {
-    	/* Convert [rast.val] to [rast] */
-        newexpr = rtpg_strreplace(initexpr, "[rast.val]", "[rast]", NULL);
-        pfree(initexpr); initexpr=newexpr;
-
-        sprintf(place,"$1");
-        for (i = 0, j = 1; i < argkwcount; i++) {
-            len = 0;
-            newexpr = rtpg_strreplace(initexpr, argkw[i], place, &len);
-            pfree(initexpr); initexpr=newexpr;
-            if (len > 0) {
-                argtype[argcount] = argkwtypes[i];
-                argcount++;
-                argpos[i] = j++;
-
-                sprintf(place, "$%d", j);
-            }
-            else {
-                argpos[i] = 0;
-            }
-        }
-
-        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: initexpr = %s", initexpr);
-
-        /* define values */
-        values = (Datum *) palloc(sizeof(Datum) * argcount);
-        if (values == NULL) {
-
-            SPI_finish();
-
-            rt_raster_destroy(raster);
-            PG_FREE_IF_COPY(pgraster, 0);
-            rt_raster_destroy(newrast);
-
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not allocate memory for value parameters of prepared statement");
-            PG_RETURN_NULL();
-        }
-
-        /* define nulls */
-        nulls = (char *)palloc(argcount);
-        if (nulls == NULL) {
-
-            SPI_finish();
-
-            rt_raster_destroy(raster);
-            PG_FREE_IF_COPY(pgraster, 0);
-            rt_raster_destroy(newrast);
-
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not allocate memory for null parameters of prepared statement");
-            PG_RETURN_NULL();
-        }
-
-        /* Connect to SPI and prepare the expression */
-        ret = SPI_connect();
-        if (ret != SPI_OK_CONNECT) {
-
-            if (initexpr)
-                pfree(initexpr);
-            rt_raster_destroy(raster);
-            PG_FREE_IF_COPY(pgraster, 0);
-            rt_raster_destroy(newrast);
-
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not connect to the SPI manager");
-            PG_RETURN_NULL();
-        };
-
-        /* Type of all arguments is FLOAT8OID */
-        spi_plan = SPI_prepare(initexpr, argcount, argtype);
-
-        if (spi_plan == NULL) {
-
-            rt_raster_destroy(raster);
-            PG_FREE_IF_COPY(pgraster, 0);
-            rt_raster_destroy(newrast);
-
-            SPI_finish();
-
-            pfree(initexpr);
-
-            elog(ERROR, "RASTER_mapAlgebraExpr: Could not prepare expression");
-            PG_RETURN_NULL();
-        }
-    }
-
-    for (x = 0; x < width; x++) {
-        for(y = 0; y < height; y++) {
-            ret = rt_band_get_pixel(band, x, y, &r, NULL);
-
-            /**
-             * We compute a value only for the withdata value pixel since the
-             * nodata value has already been set by the first optimization
-             **/
-            if (ret == ES_NONE && FLT_NEQ(r, newnodatavalue)) {
-                if (skipcomputation == 0) {
-                    if (initexpr != NULL) {
-                        /* Reset the null arg flags. */
-                        memset(nulls, 'n', argcount);
-
-                        for (i = 0; i < argkwcount; i++) {
-                            idx = argpos[i];
-                            if (idx < 1) continue;
-                            idx--;
-
-                            if (i == kX ) {
-                                /* x is 0 based index, but SQL expects 1 based index */
-                                values[idx] = Int32GetDatum(x+1);
-                                nulls[idx] = ' ';
-                            }
-                            else if (i == kY) {
-                                /* y is 0 based index, but SQL expects 1 based index */
-                                values[idx] = Int32GetDatum(y+1);
-                                nulls[idx] = ' ';
-                            }
-                            else if (i == kVAL ) {
-                                values[idx] = Float8GetDatum(r);
-                                nulls[idx] = ' ';
-                            }
-
-                        }
-
-                        ret = SPI_execute_plan(spi_plan, values, nulls, FALSE, 0);
-                        if (ret != SPI_OK_SELECT || SPI_tuptable == NULL ||
-                                SPI_processed != 1) {
-                            if (SPI_tuptable)
-                                SPI_freetuptable(tuptable);
-
-                            SPI_freeplan(spi_plan);
-                            SPI_finish();
-
-                            pfree(values);
-                            pfree(nulls);
-                            pfree(initexpr);
-
-                            rt_raster_destroy(raster);
-                            PG_FREE_IF_COPY(pgraster, 0);
-                            rt_raster_destroy(newrast);
-
-                            elog(ERROR, "RASTER_mapAlgebraExpr: Error executing prepared plan");
-
-                            PG_RETURN_NULL();
-                        }
-
-                        tupdesc = SPI_tuptable->tupdesc;
-                        tuptable = SPI_tuptable;
-
-                        tuple = tuptable->vals[0];
-                        datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
-                        if ( SPI_result == SPI_ERROR_NOATTRIBUTE ) {
-                            POSTGIS_RT_DEBUGF(3, "Expression for pixel %d,%d (value %g) errored, skip setting", x+1,y+1,r);
-                            newval = newinitialvalue;
-                        }
-                        else if ( isnull ) {
-                            POSTGIS_RT_DEBUGF(3, "Expression for pixel %d,%d (value %g) evaluated to NULL, skip setting", x+1,y+1,r);
-                            newval = newinitialvalue;
-                        } else {
-                            newval = DatumGetFloat8(datum);
-                        }
-
-                        SPI_freetuptable(tuptable);
-                    }
-
-                    else
-                        newval = newinitialvalue;
-
-                    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: new value = %f",
-                        newval);
-                }
-
-
-                rt_band_set_pixel(newband, x, y, newval, NULL);
-            }
-
-        }
-    }
-
-    if (initexpr != NULL) {
-        SPI_freeplan(spi_plan);
-        SPI_finish();
-
-        pfree(values);
-        pfree(nulls);
-        pfree(initexpr);
-    }
-    else {
-        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: no SPI cleanup");
-    }
-
-
-    /* The newrast band has been modified */
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: raster modified, serializing it.");
-    /* Serialize created raster */
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    pgrtn = rt_raster_serialize(newrast);
-    rt_raster_destroy(newrast);
-    if (NULL == pgrtn)
-        PG_RETURN_NULL();
-
-    SET_VARSIZE(pgrtn, pgrtn->size);
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: raster serialized");
-
-
-    POSTGIS_RT_DEBUG(4, "RASTER_mapAlgebraExpr: returning raster");
-
-
-    PG_RETURN_POINTER(pgrtn);
-}
-
-/*
- * One raster user function MapAlgebra.
- */
-PG_FUNCTION_INFO_V1(RASTER_mapAlgebraFct);
-Datum RASTER_mapAlgebraFct(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_pgraster *pgrtn = NULL;
-    rt_raster raster = NULL;
-    rt_raster newrast = NULL;
-    rt_band band = NULL;
-    rt_band newband = NULL;
-    int x, y, nband, width, height;
-    double r;
-    double newnodatavalue = 0.0;
-    double newinitialvalue = 0.0;
-    double newval = 0.0;
-    rt_pixtype newpixeltype;
-    int ret = -1;
-    Oid oid;
-    FmgrInfo cbinfo;
-    FunctionCallInfoData cbdata;
-    Datum tmpnewval;
-    char * strFromText = NULL;
-    int k = 0;
-
-    POSTGIS_RT_DEBUG(2, "RASTER_mapAlgebraFct: STARTING...");
-
-    /* Check raster */
-    if (PG_ARGISNULL(0)) {
-        elog(WARNING, "Raster is NULL. Returning NULL");
-        PG_RETURN_NULL();
-    }
-
-
-    /* Deserialize raster */
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-    raster = rt_raster_deserialize(pgraster, FALSE);
-    if (NULL == raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_mapAlgebraFct: Could not deserialize raster");
-			PG_RETURN_NULL();    
-    }
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Getting arguments...");
-
-    /* Get the rest of the arguments */
-
-    if (PG_ARGISNULL(1))
-        nband = 1;
-    else
-        nband = PG_GETARG_INT32(1);
-
-    if (nband < 1)
-        nband = 1;
-    
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Creating new empty raster...");
-
-    /** 
-     * Create a new empty raster with having the same georeference as the
-     * provided raster
-     **/
-    width = rt_raster_get_width(raster);
-    height = rt_raster_get_height(raster);
-
-    newrast = rt_raster_new(width, height);
-
-    if ( NULL == newrast ) {
-
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        elog(ERROR, "RASTER_mapAlgebraFct: Could not create a new raster");
-        PG_RETURN_NULL();
-    }
-
-    rt_raster_set_scale(newrast, 
-            rt_raster_get_x_scale(raster),
-            rt_raster_get_y_scale(raster));
-
-    rt_raster_set_offsets(newrast,
-            rt_raster_get_x_offset(raster),
-            rt_raster_get_y_offset(raster));
-
-    rt_raster_set_skews(newrast,
-            rt_raster_get_x_skew(raster),
-            rt_raster_get_y_skew(raster));
-
-    rt_raster_set_srid(newrast, rt_raster_get_srid(raster));            
-
-
-    /**
-     * If this new raster is empty (width = 0 OR height = 0) then there is
-     * nothing to compute and we return it right now
-     **/
-    if (rt_raster_is_empty(newrast)) 
-    { 
-        elog(NOTICE, "Raster is empty. Returning an empty raster");
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: Getting raster band %d...", nband);
-
-    /**
-     * Check if the raster has the required band. Otherwise, return a raster
-     * without band
-     **/
-    if (!rt_raster_has_band(raster, nband - 1)) {
-        elog(NOTICE, "Raster does not have the required band. Returning a raster "
-            "without a band");
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    /* Get the raster band */
-    band = rt_raster_get_band(raster, nband - 1);
-    if ( NULL == band ) {
-        elog(NOTICE, "Could not get the required band. Returning a raster "
-            "without a band");
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    /*
-    * Get NODATA value
-    */
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Getting NODATA value for band...");
-
-    if (rt_band_get_hasnodata_flag(band)) {
-        rt_band_get_nodata(band, &newnodatavalue);
-    }
-
-    else {
-        newnodatavalue = rt_band_get_min_value(band);
-    }
-
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: NODATA value for band: %f",
-            newnodatavalue);
-    /**
-     * We set the initial value of the future band to nodata value. If nodata
-     * value is null, then the raster will be initialized to
-     * rt_band_get_min_value but all the values should be recomputed anyway
-     **/
-    newinitialvalue = newnodatavalue;
-
-    /**
-     * Set the new pixeltype
-     **/    
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Setting pixeltype...");
-
-    if (PG_ARGISNULL(2)) {
-        newpixeltype = rt_band_get_pixtype(band);
-    }
-
-    else {
-        strFromText = text_to_cstring(PG_GETARG_TEXT_P(2)); 
-        newpixeltype = rt_pixtype_index_from_name(strFromText);
-        pfree(strFromText);
-        if (newpixeltype == PT_END)
-            newpixeltype = rt_band_get_pixtype(band);
-    }
-    
-    if (newpixeltype == PT_END) {
-
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFct: Invalid pixeltype");
-        PG_RETURN_NULL();
-    }    
-    
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: Pixeltype set to %s",
-        rt_pixtype_name(newpixeltype));
-
-    /* Get the name of the callback user function for raster values */
-    if (PG_ARGISNULL(3)) {
-
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFct: Required function is missing. Returning NULL");
-        PG_RETURN_NULL();
-    }
-
-    oid = PG_GETARG_OID(3);
-    if (oid == InvalidOid) {
-
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFct: Got invalid function object id. Returning NULL");
-        PG_RETURN_NULL();
-    }
-
-    fmgr_info(oid, &cbinfo);
-
-    /* function cannot return set */
-    if (cbinfo.fn_retset) {
-
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFct: Function provided must return double precision not resultset");
-        PG_RETURN_NULL();
-    }
-    /* function should have correct # of args */
-    else if (cbinfo.fn_nargs < 2 || cbinfo.fn_nargs > 3) {
-
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFct: Function does not have two or three input parameters");
-        PG_RETURN_NULL();
-    }
-
-    if (cbinfo.fn_nargs == 2)
-        k = 1;
-    else 
-        k = 2;
-
-    if (func_volatile(oid) == 'v') {
-        elog(NOTICE, "Function provided is VOLATILE. Unless required and for best performance, function should be IMMUTABLE or STABLE");
-    }
-
-    /* prep function call data */
-#if POSTGIS_PGSQL_VERSION <= 90
-    InitFunctionCallInfoData(cbdata, &cbinfo, 2, InvalidOid, NULL);
-#else
-    InitFunctionCallInfoData(cbdata, &cbinfo, 2, InvalidOid, NULL, NULL);
-#endif
-    memset(cbdata.argnull, FALSE, sizeof(bool) * cbinfo.fn_nargs);
-    
-    /* check that the function isn't strict if the args are null. */
-    if (PG_ARGISNULL(4)) {
-        if (cbinfo.fn_strict) {
-
-            rt_raster_destroy(raster);
-            PG_FREE_IF_COPY(pgraster, 0);
-            rt_raster_destroy(newrast);
-
-            elog(ERROR, "RASTER_mapAlgebraFct: Strict callback functions cannot have null parameters");
-            PG_RETURN_NULL();
-        }
-
-        cbdata.arg[k] = (Datum)NULL;
-        cbdata.argnull[k] = TRUE;
-    }
-    else {
-        cbdata.arg[k] = PG_GETARG_DATUM(4);
-    }
-
-    /**
-     * Optimization: If the raster is only filled with nodata values return
-     * right now a raster filled with the nodatavalueexpr
-     * TODO: Call rt_band_check_isnodata instead?
-     **/
-    if (rt_band_get_isnodata_flag(band)) {
-
-        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Band is a nodata band, returning "
-                "a raster filled with nodata");
-
-        ret = rt_raster_generate_new_band(newrast, newpixeltype,
-                newinitialvalue, TRUE, newnodatavalue, 0);
-
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);               
-    }
-
-
-    /**
-     * Create the raster receiving all the computed values. Initialize it to the
-     * new initial value
-     **/
-    ret = rt_raster_generate_new_band(newrast, newpixeltype,
-            newinitialvalue, TRUE, newnodatavalue, 0);
-
-    /* Get the new raster band */
-    newband = rt_raster_get_band(newrast, 0);
-    if ( NULL == newband ) {
-        elog(NOTICE, "Could not modify band for new raster. Returning new "
-            "raster with the original band");
-
-        rt_raster_destroy(raster);
-        PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);      
-    }
-    
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: Main computing loop (%d x %d)",
-            width, height);
-
-    for (x = 0; x < width; x++) {
-        for(y = 0; y < height; y++) {
-            ret = rt_band_get_pixel(band, x, y, &r, NULL);
-
-            /**
-             * We compute a value only for the withdata value pixel since the
-             * nodata value has already been set by the first optimization
-             **/
-            if (ret == ES_NONE) {
-                if (FLT_EQ(r, newnodatavalue)) {
-                    if (cbinfo.fn_strict) {
-                        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Strict callbacks cannot accept NULL arguments, skipping NODATA cell.");
-                        continue;
-                    }
-                    cbdata.argnull[0] = TRUE;
-                    cbdata.arg[0] = (Datum)NULL;
-                }
-                else {
-                    cbdata.argnull[0] = FALSE;
-                    cbdata.arg[0] = Float8GetDatum(r);
-                }
-
-                /* Add pixel positions if callback has proper # of args */
-                if (cbinfo.fn_nargs == 3) {
-                    Datum d[2];
-                    ArrayType *a;
-
-                    d[0] = Int32GetDatum(x+1);
-                    d[1] = Int32GetDatum(y+1);
-
-                    a = construct_array(d, 2, INT4OID, sizeof(int32), true, 'i');
-
-                    cbdata.argnull[1] = FALSE;
-                    cbdata.arg[1] = PointerGetDatum(a);
-                }
-
-                POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: (%dx%d), r = %f",
-                    x, y, r);
-                   
-                tmpnewval = FunctionCallInvoke(&cbdata);
-
-                if (cbdata.isnull) {
-                    newval = newnodatavalue;
-                }
-                else {
-                    newval = DatumGetFloat8(tmpnewval);
-                }
-
-                POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: new value = %f", 
-                    newval);
-                
-                rt_band_set_pixel(newband, x, y, newval, NULL);
-            }
-
-        }
-    }
-    
-    /* The newrast band has been modified */
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: raster modified, serializing it.");
-    /* Serialize created raster */
-
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    pgrtn = rt_raster_serialize(newrast);
-    rt_raster_destroy(newrast);
-    if (NULL == pgrtn)
-        PG_RETURN_NULL();
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: raster serialized");
-
-    POSTGIS_RT_DEBUG(4, "RASTER_mapAlgebraFct: returning raster");
-    
-    SET_VARSIZE(pgrtn, pgrtn->size);    
-    PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * Return new raster from selected bands of existing raster through ST_Band.
- * second argument is an array of band numbers (1 based)
- */
-PG_FUNCTION_INFO_V1(RASTER_band);
-Datum RASTER_band(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster;
-	rt_pgraster *pgrast;
-	rt_raster raster;
-	rt_raster rast;
-
-	bool skip = FALSE;
-	ArrayType *array;
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-
-	uint32_t numBands;
-	uint32_t *bandNums;
-	uint32 idx = 0;
-	int n;
-	int i = 0;
-	int j = 0;
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_band: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* process bandNums */
-	if (PG_ARGISNULL(1)) {
-		elog(NOTICE, "Band number(s) not provided.  Returning original raster");
-		skip = TRUE;
-	}
-	do {
-		if (skip) break;
-
-		numBands = rt_raster_get_num_bands(raster);
-
-		array = PG_GETARG_ARRAYTYPE_P(1);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case INT2OID:
-			case INT4OID:
-				break;
-			default:
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_band: Invalid data type for band number(s)");
-				PG_RETURN_NULL();
-				break;
-		}
-
-		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-			&nulls, &n);
-
-		bandNums = palloc(sizeof(uint32_t) * n);
-		for (i = 0, j = 0; i < n; i++) {
-			if (nulls[i]) continue;
-
-			switch (etype) {
-				case INT2OID:
-					idx = (uint32_t) DatumGetInt16(e[i]);
-					break;
-				case INT4OID:
-					idx = (uint32_t) DatumGetInt32(e[i]);
-					break;
-			}
-
-			POSTGIS_RT_DEBUGF(3, "band idx (before): %d", idx);
-			if (idx > numBands || idx < 1) {
-        elog(NOTICE, "Invalid band index (must use 1-based). Returning original raster");
-				skip = TRUE;
-				break;
-			}
-
-			bandNums[j] = idx - 1;
-			POSTGIS_RT_DEBUGF(3, "bandNums[%d] = %d", j, bandNums[j]);
-			j++;
-		}
-
-		if (skip || j < 1) {
-			pfree(bandNums);
-			skip = TRUE;
-		}
-	}
-	while (0);
-
-	if (!skip) {
-		rast = rt_raster_from_band(raster, bandNums, j);
-		pfree(bandNums);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		if (!rast) {
-			elog(ERROR, "RASTER_band: Could not create new raster");
-			PG_RETURN_NULL();
-		}
-
-		pgrast = rt_raster_serialize(rast);
-		rt_raster_destroy(rast);
-
-		if (!pgrast)
-			PG_RETURN_NULL();
-
-		SET_VARSIZE(pgrast, pgrast->size);
-		PG_RETURN_POINTER(pgrast);
-	}
-
-	PG_RETURN_POINTER(pgraster);
-}
-
-/**
- * Get summary stats of a band
- */
-PG_FUNCTION_INFO_V1(RASTER_summaryStats);
-Datum RASTER_summaryStats(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	int32_t bandindex = 1;
-	bool exclude_nodata_value = TRUE;
-	int num_bands = 0;
-	double sample = 0;
-	rt_bandstats stats = NULL;
-
-	TupleDesc tupdesc;
-	int values_length = 6;
-	Datum values[values_length];
-	bool nulls[values_length];
-	HeapTuple tuple;
-	Datum result;
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_summaryStats: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* band index is 1-based */
-	if (!PG_ARGISNULL(1))
-		bandindex = PG_GETARG_INT32(1);
-	num_bands = rt_raster_get_num_bands(raster);
-	if (bandindex < 1 || bandindex > num_bands) {
-		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	/* exclude_nodata_value flag */
-	if (!PG_ARGISNULL(2))
-		exclude_nodata_value = PG_GETARG_BOOL(2);
-
-	/* sample % */
-	if (!PG_ARGISNULL(3)) {
-		sample = PG_GETARG_FLOAT8(3);
-		if (sample < 0 || sample > 1) {
-			elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			PG_RETURN_NULL();
-		}
-		else if (FLT_EQ(sample, 0.0))
-			sample = 1;
-	}
-	else
-		sample = 1;
-
-	/* get band */
-	band = rt_raster_get_band(raster, bandindex - 1);
-	if (!band) {
-		elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-
-	/* we don't need the raw values, hence the zero parameter */
-	stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 0, NULL, NULL, NULL);
-	rt_band_destroy(band);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (NULL == stats) {
-		elog(NOTICE, "Could not compute summary statistics for band at index %d. Returning NULL", bandindex);
-		PG_RETURN_NULL();
-	}
-
-	/* Build a tuple descriptor for our result type */
-	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-		ereport(ERROR, (
-			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-			errmsg(
-				"function returning record called in context "
-				"that cannot accept type record"
-			)
-		));
-	}
-
-	BlessTupleDesc(tupdesc);
-
-	memset(nulls, FALSE, sizeof(bool) * values_length);
-
-	values[0] = Int64GetDatum(stats->count);
-	if (stats->count > 0) {
-		values[1] = Float8GetDatum(stats->sum);
-		values[2] = Float8GetDatum(stats->mean);
-		values[3] = Float8GetDatum(stats->stddev);
-		values[4] = Float8GetDatum(stats->min);
-		values[5] = Float8GetDatum(stats->max);
-	}
-	else {
-		nulls[1] = TRUE;
-		nulls[2] = TRUE;
-		nulls[3] = TRUE;
-		nulls[4] = TRUE;
-		nulls[5] = TRUE;
-	}
-
-	/* build a tuple */
-	tuple = heap_form_tuple(tupdesc, values, nulls);
-
-	/* make the tuple into a datum */
-	result = HeapTupleGetDatum(tuple);
-
-	/* clean up */
-	pfree(stats);
-
-	PG_RETURN_DATUM(result);
-}
-
-/**
- * Get summary stats of a coverage for a specific band
- */
-PG_FUNCTION_INFO_V1(RASTER_summaryStatsCoverage);
-Datum RASTER_summaryStatsCoverage(PG_FUNCTION_ARGS)
-{
-	text *tablenametext = NULL;
-	char *tablename = NULL;
-	text *colnametext = NULL;
-	char *colname = NULL;
-	int32_t bandindex = 1;
-	bool exclude_nodata_value = TRUE;
-	double sample = 0;
-
-	int len = 0;
-	char *sql = NULL;
-	int spi_result;
-	Portal portal;
-	TupleDesc tupdesc;
-	SPITupleTable *tuptable = NULL;
-	HeapTuple tuple;
-	Datum datum;
-	bool isNull = FALSE;
-
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	int num_bands = 0;
-	uint64_t cK = 0;
-	double cM = 0;
-	double cQ = 0;
-	rt_bandstats stats = NULL;
-	rt_bandstats rtn = NULL;
-
-	int values_length = 6;
-	Datum values[values_length];
-	bool nulls[values_length];
-	Datum result;
-
-	/* tablename is null, return null */
-	if (PG_ARGISNULL(0)) {
-		elog(NOTICE, "Table name must be provided");
-		PG_RETURN_NULL();
-	}
-	tablenametext = PG_GETARG_TEXT_P(0);
-	tablename = text_to_cstring(tablenametext);
-	if (!strlen(tablename)) {
-		elog(NOTICE, "Table name must be provided");
-		PG_RETURN_NULL();
-	}
-
-	/* column name is null, return null */
-	if (PG_ARGISNULL(1)) {
-		elog(NOTICE, "Column name must be provided");
-		PG_RETURN_NULL();
-	}
-	colnametext = PG_GETARG_TEXT_P(1);
-	colname = text_to_cstring(colnametext);
-	if (!strlen(colname)) {
-		elog(NOTICE, "Column name must be provided");
-		PG_RETURN_NULL();
-	}
-
-	/* band index is 1-based */
-	if (!PG_ARGISNULL(2))
-		bandindex = PG_GETARG_INT32(2);
-
-	/* exclude_nodata_value flag */
-	if (!PG_ARGISNULL(3))
-		exclude_nodata_value = PG_GETARG_BOOL(3);
-
-	/* sample % */
-	if (!PG_ARGISNULL(4)) {
-		sample = PG_GETARG_FLOAT8(4);
-		if (sample < 0 || sample > 1) {
-			elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
-			rt_raster_destroy(raster);
-			PG_RETURN_NULL();
-		}
-		else if (FLT_EQ(sample, 0.0))
-			sample = 1;
-	}
-	else
-		sample = 1;
-
-	/* iterate through rasters of coverage */
-	/* connect to database */
-	spi_result = SPI_connect();
-	if (spi_result != SPI_OK_CONNECT) {
-		pfree(sql);
-		elog(ERROR, "RASTER_summaryStatsCoverage: Could not connect to database using SPI");
-		PG_RETURN_NULL();
-	}
-
-	/* create sql */
-	len = sizeof(char) * (strlen("SELECT \"\" FROM \"\" WHERE \"\" IS NOT NULL") + (strlen(colname) * 2) + strlen(tablename) + 1);
-	sql = (char *) palloc(len);
-	if (NULL == sql) {
-		if (SPI_tuptable) SPI_freetuptable(tuptable);
-		SPI_finish();
-		elog(ERROR, "RASTER_summaryStatsCoverage: Could not allocate memory for sql");
-		PG_RETURN_NULL();
-	}
-
-	/* get cursor */
-	snprintf(sql, len, "SELECT \"%s\" FROM \"%s\" WHERE \"%s\" IS NOT NULL", colname, tablename, colname);
-	portal = SPI_cursor_open_with_args(
-		"coverage",
-		sql,
-		0, NULL,
-		NULL, NULL,
-		TRUE, 0
-	);
-	pfree(sql);
-
-	/* process resultset */
-	SPI_cursor_fetch(portal, TRUE, 1);
-	while (SPI_processed == 1 && SPI_tuptable != NULL) {
-		tupdesc = SPI_tuptable->tupdesc;
-		tuptable = SPI_tuptable;
-		tuple = tuptable->vals[0];
-
-		datum = SPI_getbinval(tuple, tupdesc, 1, &isNull);
-		if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_cursor_close(portal);
-			SPI_finish();
-
-			if (NULL != rtn) pfree(rtn);
-			elog(ERROR, "RASTER_summaryStatsCoverage: Could not get raster of coverage");
-			PG_RETURN_NULL();
-		}
-		else if (isNull) {
-			SPI_cursor_fetch(portal, TRUE, 1);
-			continue;
-		}
-
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(datum);
-
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_cursor_close(portal);
-			SPI_finish();
-
-			if (NULL != rtn) pfree(rtn);
-			elog(ERROR, "RASTER_summaryStatsCoverage: Could not deserialize raster");
-			PG_RETURN_NULL();
-		}
-
-		/* inspect number of bands */
-		num_bands = rt_raster_get_num_bands(raster);
-		if (bandindex < 1 || bandindex > num_bands) {
-			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-
-			rt_raster_destroy(raster);
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_cursor_close(portal);
-			SPI_finish();
-
-			if (NULL != rtn) pfree(rtn);
-			PG_RETURN_NULL();
-		}
-
-		/* get band */
-		band = rt_raster_get_band(raster, bandindex - 1);
-		if (!band) {
-			elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
-
-			rt_raster_destroy(raster);
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_cursor_close(portal);
-			SPI_finish();
-
-			if (NULL != rtn) pfree(rtn);
-			PG_RETURN_NULL();
-		}
-
-		/* we don't need the raw values, hence the zero parameter */
-		stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 0, &cK, &cM, &cQ);
-
-		rt_band_destroy(band);
-		rt_raster_destroy(raster);
-
-		if (NULL == stats) {
-			elog(NOTICE, "Could not compute summary statistics for band at index %d. Returning NULL", bandindex);
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_cursor_close(portal);
-			SPI_finish();
-
-			if (NULL != rtn) pfree(rtn);
-			PG_RETURN_NULL();
-		}
-
-		/* initialize rtn */
-		if (stats->count > 0) {
-			if (NULL == rtn) {
-				rtn = (rt_bandstats) SPI_palloc(sizeof(struct rt_bandstats_t));
-				if (NULL == rtn) {
-
-					if (SPI_tuptable) SPI_freetuptable(tuptable);
-					SPI_cursor_close(portal);
-					SPI_finish();
-
-					elog(ERROR, "RASTER_summaryStatsCoverage: Could not allocate memory for summary stats of coverage");
-					PG_RETURN_NULL();
-				}
-
-				rtn->sample = stats->sample;
-				rtn->count = stats->count;
-				rtn->min = stats->min;
-				rtn->max = stats->max;
-				rtn->sum = stats->sum;
-				rtn->mean = stats->mean;
-				rtn->stddev = -1;
-
-				rtn->values = NULL;
-				rtn->sorted = 0;
-			}
-			else {
-				rtn->count += stats->count;
-				rtn->sum += stats->sum;
-
-				if (stats->min < rtn->min)
-					rtn->min = stats->min;
-				if (stats->max > rtn->max)
-					rtn->max = stats->max;
-			}
-		}
-
-		pfree(stats);
-
-		/* next record */
-		SPI_cursor_fetch(portal, TRUE, 1);
-	}
-
-	if (SPI_tuptable) SPI_freetuptable(tuptable);
-	SPI_cursor_close(portal);
-	SPI_finish();
-
-	if (NULL == rtn) {
-		elog(ERROR, "RASTER_summaryStatsCoverage: Could not compute coverage summary stats");
-		PG_RETURN_NULL();
-	}
-
-	/* coverage mean and deviation */
-	rtn->mean = rtn->sum / rtn->count;
-	/* sample deviation */
-	if (rtn->sample > 0 && rtn->sample < 1)
-		rtn->stddev = sqrt(cQ / (rtn->count - 1));
-	/* standard deviation */
-	else
-		rtn->stddev = sqrt(cQ / rtn->count);
-
-	/* Build a tuple descriptor for our result type */
-	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-		ereport(ERROR, (
-			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-			errmsg(
-				"function returning record called in context "
-				"that cannot accept type record"
-			)
-		));
-	}
-
-	BlessTupleDesc(tupdesc);
-
-	memset(nulls, FALSE, sizeof(bool) * values_length);
-
-	values[0] = Int64GetDatum(rtn->count);
-	if (rtn->count > 0) {
-		values[1] = Float8GetDatum(rtn->sum);
-		values[2] = Float8GetDatum(rtn->mean);
-		values[3] = Float8GetDatum(rtn->stddev);
-		values[4] = Float8GetDatum(rtn->min);
-		values[5] = Float8GetDatum(rtn->max);
-	}
-	else {
-		nulls[1] = TRUE;
-		nulls[2] = TRUE;
-		nulls[3] = TRUE;
-		nulls[4] = TRUE;
-		nulls[5] = TRUE;
-	}
-
-	/* build a tuple */
-	tuple = heap_form_tuple(tupdesc, values, nulls);
-
-	/* make the tuple into a datum */
-	result = HeapTupleGetDatum(tuple);
-
-	/* clean up */
-	pfree(rtn);
-
-	PG_RETURN_DATUM(result);
-}
-
-/**
- * Returns histogram for a band
- */
-PG_FUNCTION_INFO_V1(RASTER_histogram);
-Datum RASTER_histogram(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-
-	int i;
-	rt_histogram hist;
-	rt_histogram hist2;
-	int call_cntr;
-	int max_calls;
-
-	/* first call of function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-		int32_t bandindex = 1;
-		int num_bands = 0;
-		bool exclude_nodata_value = TRUE;
-		double sample = 0;
-		uint32_t bin_count = 0;
-		double *bin_width = NULL;
-		uint32_t bin_width_count = 0;
-		double width = 0;
-		bool right = FALSE;
-		double min = 0;
-		double max = 0;
-		rt_bandstats stats = NULL;
-		uint32_t count;
-
-		int j;
-		int n;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-
-		POSTGIS_RT_DEBUG(3, "RASTER_histogram: Starting");
-
-		/* 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);
-
-		/* pgraster is null, return nothing */
-		if (PG_ARGISNULL(0)) {
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_histogram: Could not deserialize raster");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* band index is 1-based */
-		if (!PG_ARGISNULL(1))
-			bandindex = PG_GETARG_INT32(1);
-		num_bands = rt_raster_get_num_bands(raster);
-		if (bandindex < 1 || bandindex > num_bands) {
-			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* exclude_nodata_value flag */
-		if (!PG_ARGISNULL(2))
-			exclude_nodata_value = PG_GETARG_BOOL(2);
-
-		/* sample % */
-		if (!PG_ARGISNULL(3)) {
-			sample = PG_GETARG_FLOAT8(3);
-			if (sample < 0 || sample > 1) {
-				elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-			else if (FLT_EQ(sample, 0.0))
-				sample = 1;
-		}
-		else
-			sample = 1;
-
-		/* bin_count */
-		if (!PG_ARGISNULL(4)) {
-			bin_count = PG_GETARG_INT32(4);
-			if (bin_count < 1) bin_count = 0;
-		}
-
-		/* bin_width */
-		if (!PG_ARGISNULL(5)) {
-			array = PG_GETARG_ARRAYTYPE_P(5);
-			etype = ARR_ELEMTYPE(array);
-			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-			switch (etype) {
-				case FLOAT4OID:
-				case FLOAT8OID:
-					break;
-				default:
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_histogram: Invalid data type for width");
-					SRF_RETURN_DONE(funcctx);
-					break;
-			}
-
-			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-				&nulls, &n);
-
-			bin_width = palloc(sizeof(double) * n);
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) continue;
-
-				switch (etype) {
-					case FLOAT4OID:
-						width = (double) DatumGetFloat4(e[i]);
-						break;
-					case FLOAT8OID:
-						width = (double) DatumGetFloat8(e[i]);
-						break;
-				}
-
-				if (width < 0 || FLT_EQ(width, 0.0)) {
-					elog(NOTICE, "Invalid value for width (must be greater than 0). Returning NULL");
-					pfree(bin_width);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				bin_width[j] = width;
-				POSTGIS_RT_DEBUGF(5, "bin_width[%d] = %f", j, bin_width[j]);
-				j++;
-			}
-			bin_width_count = j;
-
-			if (j < 1) {
-				pfree(bin_width);
-				bin_width = NULL;
-			}
-		}
-
-		/* right */
-		if (!PG_ARGISNULL(6))
-			right = PG_GETARG_BOOL(6);
-
-		/* min */
-		if (!PG_ARGISNULL(7)) min = PG_GETARG_FLOAT8(7);
-
-		/* max */
-		if (!PG_ARGISNULL(8)) max = PG_GETARG_FLOAT8(8);
-
-		/* get band */
-		band = rt_raster_get_band(raster, bandindex - 1);
-		if (!band) {
-			elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get stats */
-		stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 1, NULL, NULL, NULL);
-		rt_band_destroy(band);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		if (NULL == stats || NULL == stats->values) {
-			elog(NOTICE, "Could not compute summary statistics for band at index %d", bandindex);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		else if (stats->count < 1) {
-			elog(NOTICE, "Could not compute histogram for band at index %d as the band has no values", bandindex);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get histogram */
-		hist = rt_band_get_histogram(stats, bin_count, bin_width, bin_width_count, right, min, max, &count);
-		if (bin_width_count) pfree(bin_width);
-		pfree(stats);
-		if (NULL == hist || !count) {
-			elog(NOTICE, "Could not compute histogram for band at index %d", bandindex);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		POSTGIS_RT_DEBUGF(3, "%d bins returned", count);
-
-		/* Store needed information */
-		funcctx->user_fctx = hist;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = count;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	hist2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 4;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-
-		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		values[0] = Float8GetDatum(hist2[call_cntr].min);
-		values[1] = Float8GetDatum(hist2[call_cntr].max);
-		values[2] = Int64GetDatum(hist2[call_cntr].count);
-		values[3] = Float8GetDatum(hist2[call_cntr].percent);
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		pfree(hist2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Returns histogram of a coverage for a specified band
- */
-PG_FUNCTION_INFO_V1(RASTER_histogramCoverage);
-Datum RASTER_histogramCoverage(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-
-	int i;
-	rt_histogram covhist = NULL;
-	rt_histogram covhist2;
-	int call_cntr;
-	int max_calls;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_histogramCoverage: Starting");
-
-	/* first call of function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-
-		text *tablenametext = NULL;
-		char *tablename = NULL;
-		text *colnametext = NULL;
-		char *colname = NULL;
-		int32_t bandindex = 1;
-		bool exclude_nodata_value = TRUE;
-		double sample = 0;
-		uint32_t bin_count = 0;
-		double *bin_width = NULL;
-		uint32_t bin_width_count = 0;
-		double width = 0;
-		bool right = FALSE;
-		uint32_t count;
-
-		int len = 0;
-		char *sql = NULL;
-		char *tmp = NULL;
-		double min = 0;
-		double max = 0;
-		int spi_result;
-		Portal portal;
-		SPITupleTable *tuptable = NULL;
-		HeapTuple tuple;
-		Datum datum;
-		bool isNull = FALSE;
-
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-		int num_bands = 0;
-		rt_bandstats stats = NULL;
-		rt_histogram hist;
-		uint64_t sum = 0;
-
-		int j;
-		int n;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-
-		POSTGIS_RT_DEBUG(3, "RASTER_histogramCoverage: first call of function");
-
-		/* 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);
-
-		/* tablename is null, return null */
-		if (PG_ARGISNULL(0)) {
-			elog(NOTICE, "Table name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		tablenametext = PG_GETARG_TEXT_P(0);
-		tablename = text_to_cstring(tablenametext);
-		if (!strlen(tablename)) {
-			elog(NOTICE, "Table name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: tablename = %s", tablename);
-
-		/* column name is null, return null */
-		if (PG_ARGISNULL(1)) {
-			elog(NOTICE, "Column name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		colnametext = PG_GETARG_TEXT_P(1);
-		colname = text_to_cstring(colnametext);
-		if (!strlen(colname)) {
-			elog(NOTICE, "Column name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: colname = %s", colname);
-
-		/* band index is 1-based */
-		if (!PG_ARGISNULL(2))
-			bandindex = PG_GETARG_INT32(2);
-
-		/* exclude_nodata_value flag */
-		if (!PG_ARGISNULL(3))
-			exclude_nodata_value = PG_GETARG_BOOL(3);
-
-		/* sample % */
-		if (!PG_ARGISNULL(4)) {
-			sample = PG_GETARG_FLOAT8(4);
-			if (sample < 0 || sample > 1) {
-				elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-			else if (FLT_EQ(sample, 0.0))
-				sample = 1;
-		}
-		else
-			sample = 1;
-
-		/* bin_count */
-		if (!PG_ARGISNULL(5)) {
-			bin_count = PG_GETARG_INT32(5);
-			if (bin_count < 1) bin_count = 0;
-		}
-
-		/* bin_width */
-		if (!PG_ARGISNULL(6)) {
-			array = PG_GETARG_ARRAYTYPE_P(6);
-			etype = ARR_ELEMTYPE(array);
-			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-			switch (etype) {
-				case FLOAT4OID:
-				case FLOAT8OID:
-					break;
-				default:
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_histogramCoverage: Invalid data type for width");
-					SRF_RETURN_DONE(funcctx);
-					break;
-			}
-
-			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-				&nulls, &n);
-
-			bin_width = palloc(sizeof(double) * n);
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) continue;
-
-				switch (etype) {
-					case FLOAT4OID:
-						width = (double) DatumGetFloat4(e[i]);
-						break;
-					case FLOAT8OID:
-						width = (double) DatumGetFloat8(e[i]);
-						break;
-				}
-
-				if (width < 0 || FLT_EQ(width, 0.0)) {
-					elog(NOTICE, "Invalid value for width (must be greater than 0). Returning NULL");
-					pfree(bin_width);
-					MemoryContextSwitchTo(oldcontext);
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				bin_width[j] = width;
-				POSTGIS_RT_DEBUGF(5, "bin_width[%d] = %f", j, bin_width[j]);
-				j++;
-			}
-			bin_width_count = j;
-
-			if (j < 1) {
-				pfree(bin_width);
-				bin_width = NULL;
-			}
-		}
-
-		/* right */
-		if (!PG_ARGISNULL(7))
-			right = PG_GETARG_BOOL(7);
-
-		/* connect to database */
-		spi_result = SPI_connect();
-		if (spi_result != SPI_OK_CONNECT) {
-
-			if (bin_width_count) pfree(bin_width);
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_histogramCoverage: Could not connect to database using SPI");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* coverage stats */
-		len = sizeof(char) * (strlen("SELECT min, max FROM _st_summarystats('','',,::boolean,)") + strlen(tablename) + strlen(colname) + (MAX_INT_CHARLEN * 2) + MAX_DBL_CHARLEN + 1);
-		sql = (char *) palloc(len);
-		if (NULL == sql) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			if (bin_width_count) pfree(bin_width);
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_histogramCoverage: Could not allocate memory for sql");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get stats */
-		snprintf(sql, len, "SELECT min, max FROM _st_summarystats('%s','%s',%d,%d::boolean,%f)", tablename, colname, bandindex, (exclude_nodata_value ? 1 : 0), sample);
-		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: %s", sql);
-		spi_result = SPI_execute(sql, TRUE, 0);
-		pfree(sql);
-		if (spi_result != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			if (bin_width_count) pfree(bin_width);
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_histogramCoverage: Could not get summary stats of coverage");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		tupdesc = SPI_tuptable->tupdesc;
-		tuptable = SPI_tuptable;
-		tuple = tuptable->vals[0];
-
-		tmp = SPI_getvalue(tuple, tupdesc, 1);
-		if (NULL == tmp || !strlen(tmp)) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			if (bin_width_count) pfree(bin_width);
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_histogramCoverage: Could not get summary stats of coverage");
-			SRF_RETURN_DONE(funcctx);
-		}
-		min = strtod(tmp, NULL);
-		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: min = %f", min);
-		pfree(tmp);
-
-		tmp = SPI_getvalue(tuple, tupdesc, 2);
-		if (NULL == tmp || !strlen(tmp)) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			if (bin_width_count) pfree(bin_width);
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_histogramCoverage: Could not get summary stats of coverage");
-			SRF_RETURN_DONE(funcctx);
-		}
-		max = strtod(tmp, NULL);
-		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: max = %f", max);
-		pfree(tmp);
-
-		/* iterate through rasters of coverage */
-		/* create sql */
-		len = sizeof(char) * (strlen("SELECT \"\" FROM \"\" WHERE \"\" IS NOT NULL") + (strlen(colname) * 2) + strlen(tablename) + 1);
-		sql = (char *) palloc(len);
-		if (NULL == sql) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			if (bin_width_count) pfree(bin_width);
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_histogramCoverage: Could not allocate memory for sql");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get cursor */
-		snprintf(sql, len, "SELECT \"%s\" FROM \"%s\" WHERE \"%s\" IS NOT NULL", colname, tablename, colname);
-		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: %s", sql);
-		portal = SPI_cursor_open_with_args(
-			"coverage",
-			sql,
-			0, NULL,
-			NULL, NULL,
-			TRUE, 0
-		);
-		pfree(sql);
-
-		/* process resultset */
-		SPI_cursor_fetch(portal, TRUE, 1);
-		while (SPI_processed == 1 && SPI_tuptable != NULL) {
-			tupdesc = SPI_tuptable->tupdesc;
-			tuptable = SPI_tuptable;
-			tuple = tuptable->vals[0];
-
-			datum = SPI_getbinval(tuple, tupdesc, 1, &isNull);
-			if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covhist) pfree(covhist);
-				if (bin_width_count) pfree(bin_width);
-
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_histogramCoverage: Could not get raster of coverage");
-				SRF_RETURN_DONE(funcctx);
-			}
-			else if (isNull) {
-				SPI_cursor_fetch(portal, TRUE, 1);
-				continue;
-			}
-
-			pgraster = (rt_pgraster *) PG_DETOAST_DATUM(datum);
-
-			raster = rt_raster_deserialize(pgraster, FALSE);
-			if (!raster) {
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covhist) pfree(covhist);
-				if (bin_width_count) pfree(bin_width);
-
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_histogramCoverage: Could not deserialize raster");
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* inspect number of bands*/
-			num_bands = rt_raster_get_num_bands(raster);
-			if (bandindex < 1 || bandindex > num_bands) {
-				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-
-				rt_raster_destroy(raster);
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covhist) pfree(covhist);
-				if (bin_width_count) pfree(bin_width);
-
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* get band */
-			band = rt_raster_get_band(raster, bandindex - 1);
-			if (!band) {
-				elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
-
-				rt_raster_destroy(raster);
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covhist) pfree(covhist);
-				if (bin_width_count) pfree(bin_width);
-
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* we need the raw values, hence the non-zero parameter */
-			stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 1, NULL, NULL, NULL);
-
-			rt_band_destroy(band);
-			rt_raster_destroy(raster);
-
-			if (NULL == stats) {
-				elog(NOTICE, "Could not compute summary statistics for band at index %d. Returning NULL", bandindex);
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covhist) pfree(covhist);
-				if (bin_width_count) pfree(bin_width);
-
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* get histogram */
-			if (stats->count > 0) {
-				hist = rt_band_get_histogram(stats, bin_count, bin_width, bin_width_count, right, min, max, &count);
-				pfree(stats);
-				if (NULL == hist || !count) {
-					elog(NOTICE, "Could not compute histogram for band at index %d", bandindex);
-
-					if (SPI_tuptable) SPI_freetuptable(tuptable);
-					SPI_cursor_close(portal);
-					SPI_finish();
-
-					if (NULL != covhist) pfree(covhist);
-					if (bin_width_count) pfree(bin_width);
-
-					MemoryContextSwitchTo(oldcontext);
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				POSTGIS_RT_DEBUGF(3, "%d bins returned", count);
-
-				/* coverage histogram */
-				if (NULL == covhist) {
-					covhist = (rt_histogram) SPI_palloc(sizeof(struct rt_histogram_t) * count);
-					if (NULL == covhist) {
-
-						pfree(hist);
-						if (SPI_tuptable) SPI_freetuptable(tuptable);
-						SPI_cursor_close(portal);
-						SPI_finish();
-
-						if (bin_width_count) pfree(bin_width);
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_histogramCoverage: Could not allocate memory for histogram of coverage");
-						SRF_RETURN_DONE(funcctx);
-					}
-
-					for (i = 0; i < count; i++) {
-						sum += hist[i].count;
-						covhist[i].count = hist[i].count;
-						covhist[i].percent = 0;
-						covhist[i].min = hist[i].min;
-						covhist[i].max = hist[i].max;
-					}
-				}
-				else {
-					for (i = 0; i < count; i++) {
-						sum += hist[i].count;
-						covhist[i].count += hist[i].count;
-					}
-				}
-
-				pfree(hist);
-
-				/* assuming bin_count wasn't set, force consistency */
-				if (bin_count <= 0) bin_count = count;
-			}
-
-			/* next record */
-			SPI_cursor_fetch(portal, TRUE, 1);
-		}
-
-		if (SPI_tuptable) SPI_freetuptable(tuptable);
-		SPI_cursor_close(portal);
-		SPI_finish();
-
-		if (bin_width_count) pfree(bin_width);
-
-		/* finish percent of histogram */
-		if (sum > 0) {
-			for (i = 0; i < count; i++)
-				covhist[i].percent = covhist[i].count / (double) sum;
-		}
-
-		/* Store needed information */
-		funcctx->user_fctx = covhist;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = count;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	covhist2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 4;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-
-		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		values[0] = Float8GetDatum(covhist2[call_cntr].min);
-		values[1] = Float8GetDatum(covhist2[call_cntr].max);
-		values[2] = Int64GetDatum(covhist2[call_cntr].count);
-		values[3] = Float8GetDatum(covhist2[call_cntr].percent);
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		pfree(covhist2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Returns quantiles for a band
- */
-PG_FUNCTION_INFO_V1(RASTER_quantile);
-Datum RASTER_quantile(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-
-	int i;
-	rt_quantile quant;
-	rt_quantile quant2;
-	int call_cntr;
-	int max_calls;
-
-	/* first call of function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-		int32_t bandindex = 0;
-		int num_bands = 0;
-		bool exclude_nodata_value = TRUE;
-		double sample = 0;
-		double *quantiles = NULL;
-		uint32_t quantiles_count = 0;
-		double quantile = 0;
-		rt_bandstats stats = NULL;
-		uint32_t count;
-
-		int j;
-		int n;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-
-		/* 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);
-
-		/* pgraster is null, return nothing */
-		if (PG_ARGISNULL(0)) {
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_quantile: Could not deserialize raster");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* band index is 1-based */
-		bandindex = PG_GETARG_INT32(1);
-		num_bands = rt_raster_get_num_bands(raster);
-		if (bandindex < 1 || bandindex > num_bands) {
-			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* exclude_nodata_value flag */
-		if (!PG_ARGISNULL(2))
-			exclude_nodata_value = PG_GETARG_BOOL(2);
-
-		/* sample % */
-		if (!PG_ARGISNULL(3)) {
-			sample = PG_GETARG_FLOAT8(3);
-			if (sample < 0 || sample > 1) {
-				elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-			else if (FLT_EQ(sample, 0.0))
-				sample = 1;
-		}
-		else
-			sample = 1;
-
-		/* quantiles */
-		if (!PG_ARGISNULL(4)) {
-			array = PG_GETARG_ARRAYTYPE_P(4);
-			etype = ARR_ELEMTYPE(array);
-			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-			switch (etype) {
-				case FLOAT4OID:
-				case FLOAT8OID:
-					break;
-				default:
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_quantile: Invalid data type for quantiles");
-					SRF_RETURN_DONE(funcctx);
-					break;
-			}
-
-			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-				&nulls, &n);
-
-			quantiles = palloc(sizeof(double) * n);
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) continue;
-
-				switch (etype) {
-					case FLOAT4OID:
-						quantile = (double) DatumGetFloat4(e[i]);
-						break;
-					case FLOAT8OID:
-						quantile = (double) DatumGetFloat8(e[i]);
-						break;
-				}
-
-				if (quantile < 0 || quantile > 1) {
-					elog(NOTICE, "Invalid value for quantile (must be between 0 and 1). Returning NULL");
-					pfree(quantiles);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				quantiles[j] = quantile;
-				POSTGIS_RT_DEBUGF(5, "quantiles[%d] = %f", j, quantiles[j]);
-				j++;
-			}
-			quantiles_count = j;
-
-			if (j < 1) {
-				pfree(quantiles);
-				quantiles = NULL;
-			}
-		}
-
-		/* get band */
-		band = rt_raster_get_band(raster, bandindex - 1);
-		if (!band) {
-			elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get stats */
-		stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 1, NULL, NULL, NULL);
-		rt_band_destroy(band);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		if (NULL == stats || NULL == stats->values) {
-			elog(NOTICE, "Could not retrieve summary statistics for band at index %d", bandindex);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		else if (stats->count < 1) {
-			elog(NOTICE, "Could not compute quantiles for band at index %d as the band has no values", bandindex);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get quantiles */
-		quant = rt_band_get_quantiles(stats, quantiles, quantiles_count, &count);
-		if (quantiles_count) pfree(quantiles);
-		pfree(stats);
-		if (NULL == quant || !count) {
-			elog(NOTICE, "Could not compute quantiles for band at index %d", bandindex);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		POSTGIS_RT_DEBUGF(3, "%d quantiles returned", count);
-
-		/* Store needed information */
-		funcctx->user_fctx = quant;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = count;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	quant2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 2;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-
-		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		values[0] = Float8GetDatum(quant2[call_cntr].quantile);
-		values[1] = Float8GetDatum(quant2[call_cntr].value);
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		pfree(quant2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Returns selected quantiles of a coverage for a specified band
- */
-PG_FUNCTION_INFO_V1(RASTER_quantileCoverage);
-Datum RASTER_quantileCoverage(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-
-	int i;
-	rt_quantile covquant = NULL;
-	rt_quantile covquant2;
-	int call_cntr;
-	int max_calls;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_quantileCoverage: Starting");
-
-	/* first call of function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-
-		text *tablenametext = NULL;
-		char *tablename = NULL;
-		text *colnametext = NULL;
-		char *colname = NULL;
-		int32_t bandindex = 1;
-		bool exclude_nodata_value = TRUE;
-		double sample = 0;
-		double *quantiles = NULL;
-		uint32_t quantiles_count = 0;
-		double quantile = 0;
-		uint32_t count;
-
-		int len = 0;
-		char *sql = NULL;
-		char *tmp = NULL;
-		uint64_t cov_count = 0;
-		int spi_result;
-		Portal portal;
-		SPITupleTable *tuptable = NULL;
-		HeapTuple tuple;
-		Datum datum;
-		bool isNull = FALSE;
-
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-		int num_bands = 0;
-		struct quantile_llist *qlls = NULL;
-		uint32_t qlls_count;
-
-		int j;
-		int n;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-
-		POSTGIS_RT_DEBUG(3, "RASTER_quantileCoverage: first call of function");
-
-		/* 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);
-
-		/* tablename is null, return null */
-		if (PG_ARGISNULL(0)) {
-			elog(NOTICE, "Table name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		tablenametext = PG_GETARG_TEXT_P(0);
-		tablename = text_to_cstring(tablenametext);
-		if (!strlen(tablename)) {
-			elog(NOTICE, "Table name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		POSTGIS_RT_DEBUGF(3, "RASTER_quantileCoverage: tablename = %s", tablename);
-
-		/* column name is null, return null */
-		if (PG_ARGISNULL(1)) {
-			elog(NOTICE, "Column name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		colnametext = PG_GETARG_TEXT_P(1);
-		colname = text_to_cstring(colnametext);
-		if (!strlen(colname)) {
-			elog(NOTICE, "Column name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		POSTGIS_RT_DEBUGF(3, "RASTER_quantileCoverage: colname = %s", colname);
-
-		/* band index is 1-based */
-		if (!PG_ARGISNULL(2))
-			bandindex = PG_GETARG_INT32(2);
-
-		/* exclude_nodata_value flag */
-		if (!PG_ARGISNULL(3))
-			exclude_nodata_value = PG_GETARG_BOOL(3);
-
-		/* sample % */
-		if (!PG_ARGISNULL(4)) {
-			sample = PG_GETARG_FLOAT8(4);
-			if (sample < 0 || sample > 1) {
-				elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-			else if (FLT_EQ(sample, 0.0))
-				sample = 1;
-		}
-		else
-			sample = 1;
-
-		/* quantiles */
-		if (!PG_ARGISNULL(5)) {
-			array = PG_GETARG_ARRAYTYPE_P(5);
-			etype = ARR_ELEMTYPE(array);
-			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-			switch (etype) {
-				case FLOAT4OID:
-				case FLOAT8OID:
-					break;
-				default:
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_quantileCoverage: Invalid data type for quantiles");
-					SRF_RETURN_DONE(funcctx);
-					break;
-			}
-
-			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-				&nulls, &n);
-
-			quantiles = palloc(sizeof(double) * n);
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) continue;
-
-				switch (etype) {
-					case FLOAT4OID:
-						quantile = (double) DatumGetFloat4(e[i]);
-						break;
-					case FLOAT8OID:
-						quantile = (double) DatumGetFloat8(e[i]);
-						break;
-				}
-
-				if (quantile < 0 || quantile > 1) {
-					elog(NOTICE, "Invalid value for quantile (must be between 0 and 1). Returning NULL");
-					pfree(quantiles);
-					MemoryContextSwitchTo(oldcontext);
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				quantiles[j] = quantile;
-				POSTGIS_RT_DEBUGF(5, "quantiles[%d] = %f", j, quantiles[j]);
-				j++;
-			}
-			quantiles_count = j;
-
-			if (j < 1) {
-				pfree(quantiles);
-				quantiles = NULL;
-			}
-		}
-
-		/* coverage stats */
-		/* connect to database */
-		spi_result = SPI_connect();
-		if (spi_result != SPI_OK_CONNECT) {
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_quantileCoverage: Could not connect to database using SPI");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		len = sizeof(char) * (strlen("SELECT count FROM _st_summarystats('','',,::boolean,)") + strlen(tablename) + strlen(colname) + (MAX_INT_CHARLEN * 2) + MAX_DBL_CHARLEN + 1);
-		sql = (char *) palloc(len);
-		if (NULL == sql) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_quantileCoverage: Could not allocate memory for sql");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get stats */
-		snprintf(sql, len, "SELECT count FROM _st_summarystats('%s','%s',%d,%d::boolean,%f)", tablename, colname, bandindex, (exclude_nodata_value ? 1 : 0), sample);
-		POSTGIS_RT_DEBUGF(3, "stats sql:  %s", sql);
-		spi_result = SPI_execute(sql, TRUE, 0);
-		pfree(sql);
-		if (spi_result != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_quantileCoverage: Could not get summary stats of coverage");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		tupdesc = SPI_tuptable->tupdesc;
-		tuptable = SPI_tuptable;
-		tuple = tuptable->vals[0];
-
-		tmp = SPI_getvalue(tuple, tupdesc, 1);
-		if (NULL == tmp || !strlen(tmp)) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_quantileCoverage: Could not get summary stats of coverage");
-			SRF_RETURN_DONE(funcctx);
-		}
-		cov_count = strtol(tmp, NULL, 10);
-		POSTGIS_RT_DEBUGF(3, "covcount = %d", (int) cov_count);
-		pfree(tmp);
-
-		/* iterate through rasters of coverage */
-		/* create sql */
-		len = sizeof(char) * (strlen("SELECT \"\" FROM \"\" WHERE \"\" IS NOT NULL") + (strlen(colname) * 2) + strlen(tablename) + 1);
-		sql = (char *) palloc(len);
-		if (NULL == sql) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_quantileCoverage: Could not allocate memory for sql");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get cursor */
-		snprintf(sql, len, "SELECT \"%s\" FROM \"%s\" WHERE \"%s\" IS NOT NULL", colname, tablename, colname);
-		POSTGIS_RT_DEBUGF(3, "coverage sql: %s", sql);
-		portal = SPI_cursor_open_with_args(
-			"coverage",
-			sql,
-			0, NULL,
-			NULL, NULL,
-			TRUE, 0
-		);
-		pfree(sql);
-
-		/* process resultset */
-		SPI_cursor_fetch(portal, TRUE, 1);
-		while (SPI_processed == 1 && SPI_tuptable != NULL) {
-			if (NULL != covquant) pfree(covquant);
-
-			tupdesc = SPI_tuptable->tupdesc;
-			tuptable = SPI_tuptable;
-			tuple = tuptable->vals[0];
-
-			datum = SPI_getbinval(tuple, tupdesc, 1, &isNull);
-			if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_quantileCoverage: Could not get raster of coverage");
-				SRF_RETURN_DONE(funcctx);
-			}
-			else if (isNull) {
-				SPI_cursor_fetch(portal, TRUE, 1);
-				continue;
-			}
-
-			pgraster = (rt_pgraster *) PG_DETOAST_DATUM(datum);
-
-			raster = rt_raster_deserialize(pgraster, FALSE);
-			if (!raster) {
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_quantileCoverage: Could not deserialize raster");
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* inspect number of bands*/
-			num_bands = rt_raster_get_num_bands(raster);
-			if (bandindex < 1 || bandindex > num_bands) {
-				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-
-				rt_raster_destroy(raster);
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* get band */
-			band = rt_raster_get_band(raster, bandindex - 1);
-			if (!band) {
-				elog(NOTICE, "Could not find raster band of index %d. Returning NULL", bandindex);
-
-				rt_raster_destroy(raster);
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			covquant = rt_band_get_quantiles_stream(
-				band,
-				exclude_nodata_value, sample, cov_count,
-				&qlls, &qlls_count,
-				quantiles, quantiles_count,
-				&count
-			);
-
-			rt_band_destroy(band);
-			rt_raster_destroy(raster);
-
-			if (NULL == covquant || !count) {
-				elog(NOTICE, "Could not compute quantiles for band at index %d", bandindex);
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* next record */
-			SPI_cursor_fetch(portal, TRUE, 1);
-		}
-
-		covquant2 = SPI_palloc(sizeof(struct rt_quantile_t) * count);
-		for (i = 0; i < count; i++) {
-			covquant2[i].quantile = covquant[i].quantile;
-			covquant2[i].has_value = covquant[i].has_value;
-			if (covquant2[i].has_value)
-				covquant2[i].value = covquant[i].value;
-		}
-
-		if (NULL != covquant) pfree(covquant);
-		quantile_llist_destroy(&qlls, qlls_count);
-
-		if (SPI_tuptable) SPI_freetuptable(tuptable);
-		SPI_cursor_close(portal);
-		SPI_finish();
-
-		if (quantiles_count) pfree(quantiles);
-
-		POSTGIS_RT_DEBUGF(3, "%d quantiles returned", count);
-
-		/* Store needed information */
-		funcctx->user_fctx = covquant2;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = count;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	covquant2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 2;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-
-		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		values[0] = Float8GetDatum(covquant2[call_cntr].quantile);
-		if (covquant2[call_cntr].has_value)
-			values[1] = Float8GetDatum(covquant2[call_cntr].value);
-		else
-			nulls[1] = TRUE;
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		POSTGIS_RT_DEBUG(3, "done");
-		pfree(covquant2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/* get counts of values */
-PG_FUNCTION_INFO_V1(RASTER_valueCount);
-Datum RASTER_valueCount(PG_FUNCTION_ARGS) {
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-
-	int i;
-	rt_valuecount vcnts;
-	rt_valuecount vcnts2;
-	int call_cntr;
-	int max_calls;
-
-	/* first call of function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-		int32_t bandindex = 0;
-		int num_bands = 0;
-		bool exclude_nodata_value = TRUE;
-		double *search_values = NULL;
-		uint32_t search_values_count = 0;
-		double roundto = 0;
-		uint32_t count;
-
-		int j;
-		int n;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-
-		/* 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);
-
-		/* pgraster is null, return nothing */
-		if (PG_ARGISNULL(0)) {
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_valueCount: Could not deserialize raster");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* band index is 1-based */
-		bandindex = PG_GETARG_INT32(1);
-		num_bands = rt_raster_get_num_bands(raster);
-		if (bandindex < 1 || bandindex > num_bands) {
-			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* exclude_nodata_value flag */
-		if (!PG_ARGISNULL(2))
-			exclude_nodata_value = PG_GETARG_BOOL(2);
-
-		/* search values */
-		if (!PG_ARGISNULL(3)) {
-			array = PG_GETARG_ARRAYTYPE_P(3);
-			etype = ARR_ELEMTYPE(array);
-			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-			switch (etype) {
-				case FLOAT4OID:
-				case FLOAT8OID:
-					break;
-				default:
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_valueCount: Invalid data type for values");
-					SRF_RETURN_DONE(funcctx);
-					break;
-			}
-
-			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-				&nulls, &n);
-
-			search_values = palloc(sizeof(double) * n);
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) continue;
-
-				switch (etype) {
-					case FLOAT4OID:
-						search_values[j] = (double) DatumGetFloat4(e[i]);
-						break;
-					case FLOAT8OID:
-						search_values[j] = (double) DatumGetFloat8(e[i]);
-						break;
-				}
-
-				POSTGIS_RT_DEBUGF(5, "search_values[%d] = %f", j, search_values[j]);
-				j++;
-			}
-			search_values_count = j;
-
-			if (j < 1) {
-				pfree(search_values);
-				search_values = NULL;
-			}
-		}
-
-		/* roundto */
-		if (!PG_ARGISNULL(4)) {
-			roundto = PG_GETARG_FLOAT8(4);
-			if (roundto < 0.) roundto = 0;
-		}
-
-		/* get band */
-		band = rt_raster_get_band(raster, bandindex - 1);
-		if (!band) {
-			elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get counts of values */
-		vcnts = rt_band_get_value_count(band, (int) exclude_nodata_value, search_values, search_values_count, roundto, NULL, &count);
-		rt_band_destroy(band);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		if (NULL == vcnts || !count) {
-			elog(NOTICE, "Could not count the values for band at index %d", bandindex);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		POSTGIS_RT_DEBUGF(3, "%d value counts returned", count);
-
-		/* Store needed information */
-		funcctx->user_fctx = vcnts;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = count;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	vcnts2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 3;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-
-		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		values[0] = Float8GetDatum(vcnts2[call_cntr].value);
-		values[1] = UInt32GetDatum(vcnts2[call_cntr].count);
-		values[2] = Float8GetDatum(vcnts2[call_cntr].percent);
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		pfree(vcnts2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/* get counts of values for a coverage */
-PG_FUNCTION_INFO_V1(RASTER_valueCountCoverage);
-Datum RASTER_valueCountCoverage(PG_FUNCTION_ARGS) {
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-
-	int i;
-	uint64_t covcount = 0;
-	uint64_t covtotal = 0;
-	rt_valuecount covvcnts = NULL;
-	rt_valuecount covvcnts2;
-	int call_cntr;
-	int max_calls;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_valueCountCoverage: Starting");
-
-	/* first call of function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-
-		text *tablenametext = NULL;
-		char *tablename = NULL;
-		text *colnametext = NULL;
-		char *colname = NULL;
-		int32_t bandindex = 1;
-		bool exclude_nodata_value = TRUE;
-		double *search_values = NULL;
-		uint32_t search_values_count = 0;
-		double roundto = 0;
-
-		int len = 0;
-		char *sql = NULL;
-		int spi_result;
-		Portal portal;
-		SPITupleTable *tuptable = NULL;
-		HeapTuple tuple;
-		Datum datum;
-		bool isNull = FALSE;
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-		int num_bands = 0;
-		uint32_t count;
-		uint32_t total;
-		rt_valuecount vcnts = NULL;
-		int exists = 0;
-
-		int j;
-		int n;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-
-		/* 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);
-
-		/* tablename is null, return null */
-		if (PG_ARGISNULL(0)) {
-			elog(NOTICE, "Table name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		tablenametext = PG_GETARG_TEXT_P(0);
-		tablename = text_to_cstring(tablenametext);
-		if (!strlen(tablename)) {
-			elog(NOTICE, "Table name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		POSTGIS_RT_DEBUGF(3, "tablename = %s", tablename);
-
-		/* column name is null, return null */
-		if (PG_ARGISNULL(1)) {
-			elog(NOTICE, "Column name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		colnametext = PG_GETARG_TEXT_P(1);
-		colname = text_to_cstring(colnametext);
-		if (!strlen(colname)) {
-			elog(NOTICE, "Column name must be provided");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		POSTGIS_RT_DEBUGF(3, "colname = %s", colname);
-
-		/* band index is 1-based */
-		if (!PG_ARGISNULL(2))
-			bandindex = PG_GETARG_INT32(2);
-
-		/* exclude_nodata_value flag */
-		if (!PG_ARGISNULL(3))
-			exclude_nodata_value = PG_GETARG_BOOL(3);
-
-		/* search values */
-		if (!PG_ARGISNULL(4)) {
-			array = PG_GETARG_ARRAYTYPE_P(4);
-			etype = ARR_ELEMTYPE(array);
-			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-			switch (etype) {
-				case FLOAT4OID:
-				case FLOAT8OID:
-					break;
-				default:
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_valueCountCoverage: Invalid data type for values");
-					SRF_RETURN_DONE(funcctx);
-					break;
-			}
-
-			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-				&nulls, &n);
-
-			search_values = palloc(sizeof(double) * n);
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) continue;
-
-				switch (etype) {
-					case FLOAT4OID:
-						search_values[j] = (double) DatumGetFloat4(e[i]);
-						break;
-					case FLOAT8OID:
-						search_values[j] = (double) DatumGetFloat8(e[i]);
-						break;
-				}
-
-				POSTGIS_RT_DEBUGF(5, "search_values[%d] = %f", j, search_values[j]);
-				j++;
-			}
-			search_values_count = j;
-
-			if (j < 1) {
-				pfree(search_values);
-				search_values = NULL;
-			}
-		}
-
-		/* roundto */
-		if (!PG_ARGISNULL(5)) {
-			roundto = PG_GETARG_FLOAT8(5);
-			if (roundto < 0.) roundto = 0;
-		}
-
-		/* iterate through rasters of coverage */
-		/* connect to database */
-		spi_result = SPI_connect();
-		if (spi_result != SPI_OK_CONNECT) {
-
-			if (search_values_count) pfree(search_values);
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_valueCountCoverage: Could not connect to database using SPI");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* create sql */
-		len = sizeof(char) * (strlen("SELECT \"\" FROM \"\" WHERE \"\" IS NOT NULL") + (strlen(colname) * 2) + strlen(tablename) + 1);
-		sql = (char *) palloc(len);
-		if (NULL == sql) {
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			SPI_finish();
-
-			if (search_values_count) pfree(search_values);
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_valueCountCoverage: Could not allocate memory for sql");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* get cursor */
-		snprintf(sql, len, "SELECT \"%s\" FROM \"%s\" WHERE \"%s\" IS NOT NULL", colname, tablename, colname);
-		POSTGIS_RT_DEBUGF(3, "RASTER_valueCountCoverage: %s", sql);
-		portal = SPI_cursor_open_with_args(
-			"coverage",
-			sql,
-			0, NULL,
-			NULL, NULL,
-			TRUE, 0
-		);
-		pfree(sql);
-
-		/* process resultset */
-		SPI_cursor_fetch(portal, TRUE, 1);
-		while (SPI_processed == 1 && SPI_tuptable != NULL) {
-			tupdesc = SPI_tuptable->tupdesc;
-			tuptable = SPI_tuptable;
-			tuple = tuptable->vals[0];
-
-			datum = SPI_getbinval(tuple, tupdesc, 1, &isNull);
-			if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covvcnts) pfree(covvcnts);
-				if (search_values_count) pfree(search_values);
-
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_valueCountCoverage: Could not get raster of coverage");
-				SRF_RETURN_DONE(funcctx);
-			}
-			else if (isNull) {
-				SPI_cursor_fetch(portal, TRUE, 1);
-				continue;
-			}
-
-			pgraster = (rt_pgraster *) PG_DETOAST_DATUM(datum);
-
-			raster = rt_raster_deserialize(pgraster, FALSE);
-			if (!raster) {
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covvcnts) pfree(covvcnts);
-				if (search_values_count) pfree(search_values);
-
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_valueCountCoverage: Could not deserialize raster");
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* inspect number of bands*/
-			num_bands = rt_raster_get_num_bands(raster);
-			if (bandindex < 1 || bandindex > num_bands) {
-				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
-
-				rt_raster_destroy(raster);
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covvcnts) pfree(covvcnts);
-				if (search_values_count) pfree(search_values);
-
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* get band */
-			band = rt_raster_get_band(raster, bandindex - 1);
-			if (!band) {
-				elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
-
-				rt_raster_destroy(raster);
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covvcnts) pfree(covvcnts);
-				if (search_values_count) pfree(search_values);
-
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* get counts of values */
-			vcnts = rt_band_get_value_count(band, (int) exclude_nodata_value, search_values, search_values_count, roundto, &total, &count);
-			rt_band_destroy(band);
-			rt_raster_destroy(raster);
-			if (NULL == vcnts || !count) {
-				elog(NOTICE, "Could not count the values for band at index %d", bandindex);
-
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				SPI_cursor_close(portal);
-				SPI_finish();
-
-				if (NULL != covvcnts) free(covvcnts);
-				if (search_values_count) pfree(search_values);
-
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			POSTGIS_RT_DEBUGF(3, "%d value counts returned", count);
-
-			if (NULL == covvcnts) {
-				covvcnts = (rt_valuecount) SPI_palloc(sizeof(struct rt_valuecount_t) * count);
-				if (NULL == covvcnts) {
-
-					if (SPI_tuptable) SPI_freetuptable(tuptable);
-					SPI_cursor_close(portal);
-					SPI_finish();
-
-					if (search_values_count) pfree(search_values);
-
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_valueCountCoverage: Could not allocate memory for value counts of coverage");
-					SRF_RETURN_DONE(funcctx);
-				}
-
-				for (i = 0; i < count; i++) {
-					covvcnts[i].value = vcnts[i].value;
-					covvcnts[i].count = vcnts[i].count;
-					covvcnts[i].percent = -1;
-				}
-
-				covcount = count;
-			}
-			else {
-				for (i = 0; i < count; i++) {
-					exists = 0;
-
-					for (j = 0; j < covcount; j++) {
-						if (FLT_EQ(vcnts[i].value, covvcnts[j].value)) {
-							exists = 1;
-							break;
-						}
-					}
-
-					if (exists) {
-						covvcnts[j].count += vcnts[i].count;
-					}
-					else {
-						covcount++;
-						covvcnts = SPI_repalloc(covvcnts, sizeof(struct rt_valuecount_t) * covcount);
-						if (NULL == covvcnts) {
-
-							if (SPI_tuptable) SPI_freetuptable(tuptable);
-							SPI_cursor_close(portal);
-							SPI_finish();
-
-							if (search_values_count) pfree(search_values);
-							if (NULL != covvcnts) free(covvcnts);
-
-							MemoryContextSwitchTo(oldcontext);
-							elog(ERROR, "RASTER_valueCountCoverage: Could not change allocated memory for value counts of coverage");
-							SRF_RETURN_DONE(funcctx);
-						}
-
-						covvcnts[covcount - 1].value = vcnts[i].value;
-						covvcnts[covcount - 1].count = vcnts[i].count;
-						covvcnts[covcount - 1].percent = -1;
-					}
-				}
-			}
-
-			covtotal += total;
-
-			pfree(vcnts);
-
-			/* next record */
-			SPI_cursor_fetch(portal, TRUE, 1);
-		}
-
-		if (SPI_tuptable) SPI_freetuptable(tuptable);
-		SPI_cursor_close(portal);
-		SPI_finish();
-
-		if (search_values_count) pfree(search_values);
-
-		/* compute percentages */
-		for (i = 0; i < covcount; i++) {
-			covvcnts[i].percent = (double) covvcnts[i].count / covtotal;
-		}
-
-		/* Store needed information */
-		funcctx->user_fctx = covvcnts;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = covcount;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	covvcnts2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 3;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-
-		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		values[0] = Float8GetDatum(covvcnts2[call_cntr].value);
-		values[1] = UInt32GetDatum(covvcnts2[call_cntr].count);
-		values[2] = Float8GetDatum(covvcnts2[call_cntr].percent);
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		pfree(covvcnts2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Reclassify the specified bands of the raster
- */
-PG_FUNCTION_INFO_V1(RASTER_reclass);
-Datum RASTER_reclass(PG_FUNCTION_ARGS) {
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrtn = NULL;
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	rt_band newband = NULL;
-	uint32_t numBands = 0;
-
-	ArrayType *array;
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-	int n = 0;
-
-	int i = 0;
-	int j = 0;
-	int k = 0;
-
-	int a = 0;
-	int b = 0;
-	int c = 0;
-
-	rt_reclassexpr *exprset = NULL;
-	HeapTupleHeader tup;
-	bool isnull;
-	Datum tupv;
-	uint32_t nband = 0;
-	char *expr = NULL;
-	text *exprtext = NULL;
-	double val = 0;
-	char *junk = NULL;
-	int inc_val = 0;
-	int exc_val = 0;
-	char *pixeltype = NULL;
-	text *pixeltypetext = NULL;
-	rt_pixtype pixtype = PT_END;
-	double nodataval = 0;
-	bool hasnodata = FALSE;
-
-	char **comma_set = NULL;
-	int comma_n = 0;
-	char **colon_set = NULL;
-	int colon_n = 0;
-	char **dash_set = NULL;
-	int dash_n = 0;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_reclass: Starting");
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	/* raster */
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_reclass: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-	numBands = rt_raster_get_num_bands(raster);
-	POSTGIS_RT_DEBUGF(3, "RASTER_reclass: %d possible bands to be reclassified", numBands);
-
-	/* process set of reclassarg */
-	POSTGIS_RT_DEBUG(3, "RASTER_reclass: Processing Arg 1 (reclassargset)");
-	array = PG_GETARG_ARRAYTYPE_P(1);
-	etype = ARR_ELEMTYPE(array);
-	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-	deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-		&nulls, &n);
-
-	if (!n) {
-		elog(NOTICE, "Invalid argument for reclassargset. Returning original raster");
-
-		pgrtn = rt_raster_serialize(raster);
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		if (!pgrtn)
-			PG_RETURN_NULL();
-
-		SET_VARSIZE(pgrtn, pgrtn->size);
-		PG_RETURN_POINTER(pgrtn);
-	}
-
-	/*
-		process each element of reclassarg
-		each element is the index of the band to process, the set
-			of reclass ranges and the output band's pixeltype
-	*/
-	for (i = 0; i < n; i++) {
-		if (nulls[i]) continue;
-
-		/* each element is a tuple */
-		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
-		if (NULL == tup) {
-			elog(NOTICE, "Invalid argument for reclassargset. Returning original raster");
-
-			pgrtn = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			if (!pgrtn)
-				PG_RETURN_NULL();
-
-			SET_VARSIZE(pgrtn, pgrtn->size);
-			PG_RETURN_POINTER(pgrtn);
-		}
-
-		/* band index (1-based) */
-		tupv = GetAttributeByName(tup, "nband", &isnull);
-		if (isnull) {
-			elog(NOTICE, "Invalid argument for reclassargset. Missing value of nband for reclassarg of index %d . Returning original raster", i);
-
-			pgrtn = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			if (!pgrtn)
-				PG_RETURN_NULL();
-
-			SET_VARSIZE(pgrtn, pgrtn->size);
-			PG_RETURN_POINTER(pgrtn);
-		}
-		nband = DatumGetInt32(tupv);
-		POSTGIS_RT_DEBUGF(3, "RASTER_reclass: expression for band %d", nband);
-
-		/* valid band index? */
-		if (nband < 1 || nband > numBands) {
-			elog(NOTICE, "Invalid argument for reclassargset. Invalid band index (must use 1-based) for reclassarg of index %d . Returning original raster", i);
-
-			pgrtn = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			if (!pgrtn)
-				PG_RETURN_NULL();
-
-			SET_VARSIZE(pgrtn, pgrtn->size);
-			PG_RETURN_POINTER(pgrtn);
-		}
-
-		/* reclass expr */
-		tupv = GetAttributeByName(tup, "reclassexpr", &isnull);
-		if (isnull) {
-			elog(NOTICE, "Invalid argument for reclassargset. Missing value of reclassexpr for reclassarg of index %d . Returning original raster", i);
-
-			pgrtn = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			if (!pgrtn)
-				PG_RETURN_NULL();
-
-			SET_VARSIZE(pgrtn, pgrtn->size);
-			PG_RETURN_POINTER(pgrtn);
-		}
-		exprtext = (text *) DatumGetPointer(tupv);
-		if (NULL == exprtext) {
-			elog(NOTICE, "Invalid argument for reclassargset. Missing value of reclassexpr for reclassarg of index %d . Returning original raster", i);
-
-			pgrtn = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			if (!pgrtn)
-				PG_RETURN_NULL();
-
-			SET_VARSIZE(pgrtn, pgrtn->size);
-			PG_RETURN_POINTER(pgrtn);
-		}
-		expr = text_to_cstring(exprtext);
-		POSTGIS_RT_DEBUGF(5, "RASTER_reclass: expr (raw) %s", expr);
-		expr = rtpg_removespaces(expr);
-		POSTGIS_RT_DEBUGF(5, "RASTER_reclass: expr (clean) %s", expr);
-
-		/* split string to its components */
-		/* comma (,) separating rangesets */
-		comma_set = rtpg_strsplit(expr, ",", &comma_n);
-		if (comma_n < 1) {
-			elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
-
-			pgrtn = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			if (!pgrtn)
-				PG_RETURN_NULL();
-
-			SET_VARSIZE(pgrtn, pgrtn->size);
-			PG_RETURN_POINTER(pgrtn);
-		}
-
-		/* set of reclass expressions */
-		POSTGIS_RT_DEBUGF(5, "RASTER_reclass: %d possible expressions", comma_n);
-		exprset = palloc(comma_n * sizeof(rt_reclassexpr));
-
-		for (a = 0, j = 0; a < comma_n; a++) {
-			POSTGIS_RT_DEBUGF(5, "RASTER_reclass: map %s", comma_set[a]);
-
-			/* colon (:) separating range "src" and "dst" */
-			colon_set = rtpg_strsplit(comma_set[a], ":", &colon_n);
-			if (colon_n != 2) {
-				elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
-				for (k = 0; k < j; k++) pfree(exprset[k]);
-				pfree(exprset);
-
-				pgrtn = rt_raster_serialize(raster);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				if (!pgrtn)
-					PG_RETURN_NULL();
-
-				SET_VARSIZE(pgrtn, pgrtn->size);
-				PG_RETURN_POINTER(pgrtn);
-			}
-
-			/* allocate mem for reclass expression */
-			exprset[j] = palloc(sizeof(struct rt_reclassexpr_t));
-
-			for (b = 0; b < colon_n; b++) {
-				POSTGIS_RT_DEBUGF(5, "RASTER_reclass: range %s", colon_set[b]);
-
-				/* dash (-) separating "min" and "max" */
-				dash_set = rtpg_strsplit(colon_set[b], "-", &dash_n);
-				if (dash_n < 1 || dash_n > 3) {
-					elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
-					for (k = 0; k < j; k++) pfree(exprset[k]);
-					pfree(exprset);
-
-					pgrtn = rt_raster_serialize(raster);
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 0);
-					if (!pgrtn)
-						PG_RETURN_NULL();
-
-					SET_VARSIZE(pgrtn, pgrtn->size);
-					PG_RETURN_POINTER(pgrtn);
-				}
-
-				for (c = 0; c < dash_n; c++) {
-					/* need to handle: (-9999-100 -> "(", "9999", "100" */
-					if (
-						c < 1 && 
-						strlen(dash_set[c]) == 1 && (
-							strchr(dash_set[c], '(') != NULL ||
-							strchr(dash_set[c], '[') != NULL ||
-							strchr(dash_set[c], ')') != NULL ||
-							strchr(dash_set[c], ']') != NULL
-						)
-					) {
-						junk = palloc(sizeof(char) * (strlen(dash_set[c + 1]) + 2));
-						if (NULL == junk) {
-							for (k = 0; k <= j; k++) pfree(exprset[k]);
-							pfree(exprset);
-							rt_raster_destroy(raster);
-							PG_FREE_IF_COPY(pgraster, 0);
-
-							elog(ERROR, "RASTER_reclass: Could not allocate memory");
-							PG_RETURN_NULL();
-						}
-
-						sprintf(junk, "%s%s", dash_set[c], dash_set[c + 1]);
-						c++;
-						dash_set[c] = repalloc(dash_set[c], sizeof(char) * (strlen(junk) + 1));
-						strcpy(dash_set[c], junk);
-						pfree(junk);
-
-						/* rebuild dash_set */
-						for (k = 1; k < dash_n; k++) {
-							dash_set[k - 1] = repalloc(dash_set[k - 1], (strlen(dash_set[k]) + 1) * sizeof(char));
-							strcpy(dash_set[k - 1], dash_set[k]);
-						}
-						dash_n--;
-						c--;
-						pfree(dash_set[dash_n]);
-						dash_set = repalloc(dash_set, sizeof(char *) * dash_n);
-					}
-
-					/* there shouldn't be more than two in dash_n */
-					if (c < 1 && dash_n > 2) {
-						elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
-						for (k = 0; k < j; k++) pfree(exprset[k]);
-						pfree(exprset);
-
-						pgrtn = rt_raster_serialize(raster);
-						rt_raster_destroy(raster);
-						PG_FREE_IF_COPY(pgraster, 0);
-						if (!pgrtn)
-							PG_RETURN_NULL();
-
-						SET_VARSIZE(pgrtn, pgrtn->size);
-						PG_RETURN_POINTER(pgrtn);
-					}
-
-					/* check interval flags */
-					exc_val = 0;
-					inc_val = 1;
-					/* range */
-					if (dash_n != 1) {
-						/* min */
-						if (c < 1) {
-							if (
-								strchr(dash_set[c], ')') != NULL ||
-								strchr(dash_set[c], ']') != NULL
-							) {
-								exc_val = 1;
-								inc_val = 1;
-							}
-							else if (strchr(dash_set[c], '(') != NULL){
-								inc_val = 0;
-							}
-							else {
-								inc_val = 1;
-							}
-						}
-						/* max */
-						else {
-							if (
-								strrchr(dash_set[c], '(') != NULL ||
-								strrchr(dash_set[c], '[') != NULL
-							) {
-								exc_val = 1;
-								inc_val = 0;
-							}
-							else if (strrchr(dash_set[c], ']') != NULL) {
-								inc_val = 1;
-							}
-							else {
-								inc_val = 0;
-							}
-						}
-					}
-					POSTGIS_RT_DEBUGF(5, "RASTER_reclass: exc_val %d inc_val %d", exc_val, inc_val);
-
-					/* remove interval flags */
-					dash_set[c] = rtpg_chartrim(dash_set[c], "()[]");
-					POSTGIS_RT_DEBUGF(5, "RASTER_reclass: min/max (char) %s", dash_set[c]);
-
-					/* value from string to double */
-					errno = 0;
-					val = strtod(dash_set[c], &junk);
-					if (errno != 0 || dash_set[c] == junk) {
-						elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
-						for (k = 0; k < j; k++) pfree(exprset[k]);
-						pfree(exprset);
-
-						pgrtn = rt_raster_serialize(raster);
-						rt_raster_destroy(raster);
-						PG_FREE_IF_COPY(pgraster, 0);
-						if (!pgrtn)
-							PG_RETURN_NULL();
-
-						SET_VARSIZE(pgrtn, pgrtn->size);
-						PG_RETURN_POINTER(pgrtn);
-					}
-					POSTGIS_RT_DEBUGF(5, "RASTER_reclass: min/max (double) %f", val);
-
-					/* strsplit removes dash (a.k.a. negative sign), compare now to restore */
-					if (c < 1)
-						junk = strstr(colon_set[b], dash_set[c]);
-					else
-						junk = rtpg_strrstr(colon_set[b], dash_set[c]);
-					/* not beginning of string */
-					if (junk != colon_set[b]) {
-						/* prior is a dash */
-						if (*(junk - 1) == '-') {
-							/* prior is beginning of string or prior - 1 char is dash, negative number */
-							if (
-								((junk - 1) == colon_set[b]) ||
-								(*(junk - 2) == '-') ||
-								(*(junk - 2) == '[') ||
-								(*(junk - 2) == '(')
-							) {
-								val *= -1.;
-							}
-						}
-					}
-					POSTGIS_RT_DEBUGF(5, "RASTER_reclass: min/max (double) %f", val);
-
-					/* src */
-					if (b < 1) {
-						/* singular value */
-						if (dash_n == 1) {
-							exprset[j]->src.exc_min = exprset[j]->src.exc_max = exc_val;
-							exprset[j]->src.inc_min = exprset[j]->src.inc_max = inc_val;
-							exprset[j]->src.min = exprset[j]->src.max = val;
-						}
-						/* min */
-						else if (c < 1) {
-							exprset[j]->src.exc_min = exc_val;
-							exprset[j]->src.inc_min = inc_val;
-							exprset[j]->src.min = val;
-						}
-						/* max */
-						else {
-							exprset[j]->src.exc_max = exc_val;
-							exprset[j]->src.inc_max = inc_val;
-							exprset[j]->src.max = val;
-						}
-					}
-					/* dst */
-					else {
-						/* singular value */
-						if (dash_n == 1)
-							exprset[j]->dst.min = exprset[j]->dst.max = val;
-						/* min */
-						else if (c < 1)
-							exprset[j]->dst.min = val;
-						/* max */
-						else
-							exprset[j]->dst.max = val;
-					}
-				}
-				pfree(dash_set);
-			}
-			pfree(colon_set);
-
-			POSTGIS_RT_DEBUGF(3, "RASTER_reclass: or: %f - %f nr: %f - %f"
-				, exprset[j]->src.min
-				, exprset[j]->src.max
-				, exprset[j]->dst.min
-				, exprset[j]->dst.max
-			);
-			j++;
-		}
-		pfree(comma_set);
-
-		/* pixel type */
-		tupv = GetAttributeByName(tup, "pixeltype", &isnull);
-		if (isnull) {
-			elog(NOTICE, "Invalid argument for reclassargset. Missing value of pixeltype for reclassarg of index %d . Returning original raster", i);
-
-			pgrtn = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			if (!pgrtn)
-				PG_RETURN_NULL();
-
-			SET_VARSIZE(pgrtn, pgrtn->size);
-			PG_RETURN_POINTER(pgrtn);
-		}
-		pixeltypetext = (text *) DatumGetPointer(tupv);
-		if (NULL == pixeltypetext) {
-			elog(NOTICE, "Invalid argument for reclassargset. Missing value of pixeltype for reclassarg of index %d . Returning original raster", i);
-
-			pgrtn = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			if (!pgrtn)
-				PG_RETURN_NULL();
-
-			SET_VARSIZE(pgrtn, pgrtn->size);
-			PG_RETURN_POINTER(pgrtn);
-		}
-		pixeltype = text_to_cstring(pixeltypetext);
-		POSTGIS_RT_DEBUGF(3, "RASTER_reclass: pixeltype %s", pixeltype);
-		pixtype = rt_pixtype_index_from_name(pixeltype);
-
-		/* nodata */
-		tupv = GetAttributeByName(tup, "nodataval", &isnull);
-		if (isnull) {
-			nodataval = 0;
-			hasnodata = FALSE;
-		}
-		else {
-			nodataval = DatumGetFloat8(tupv);
-			hasnodata = TRUE;
-		}
-		POSTGIS_RT_DEBUGF(3, "RASTER_reclass: nodataval %f", nodataval);
-		POSTGIS_RT_DEBUGF(3, "RASTER_reclass: hasnodata %d", hasnodata);
-
-		/* do reclass */
-		band = rt_raster_get_band(raster, nband - 1);
-		if (!band) {
-			elog(NOTICE, "Could not find raster band of index %d. Returning original raster", nband);
-			for (k = 0; k < j; k++) pfree(exprset[k]);
-			pfree(exprset);
-
-			pgrtn = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			if (!pgrtn)
-				PG_RETURN_NULL();
-
-			SET_VARSIZE(pgrtn, pgrtn->size);
-			PG_RETURN_POINTER(pgrtn);
-		}
-		newband = rt_band_reclass(band, pixtype, hasnodata, nodataval, exprset, j);
-		if (!newband) {
-			for (k = 0; k < j; k++) pfree(exprset[k]);
-			pfree(exprset);
-
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-
-			elog(ERROR, "RASTER_reclass: Could not reclassify raster band of index %d", nband);
-			PG_RETURN_NULL();
-		}
-
-		/* replace old band with new band */
-		if (rt_raster_replace_band(raster, newband, nband - 1) == NULL) {
-			for (k = 0; k < j; k++) pfree(exprset[k]);
-			pfree(exprset);
-
-			rt_band_destroy(newband);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-
-			elog(ERROR, "RASTER_reclass: Could not replace raster band of index %d with reclassified band", nband);
-			PG_RETURN_NULL();
-		}
-
-		/* old band is in the variable band */
-		rt_band_destroy(band);
-
-		/* free exprset */
-		for (k = 0; k < j; k++) pfree(exprset[k]);
-		pfree(exprset);
-	}
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	POSTGIS_RT_DEBUG(3, "RASTER_reclass: Finished");
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/* ---------------------------------------------------------------- */
-/* apply colormap to specified band of a raster                     */
-/* ---------------------------------------------------------------- */
-
-typedef struct rtpg_colormap_arg_t *rtpg_colormap_arg;
-struct rtpg_colormap_arg_t {
-	rt_raster raster;
-	int nband; /* 1-based */
-	rt_band band;
-	rt_bandstats bandstats;
-
-	rt_colormap colormap;
-	int nodataentry;
-
-	char **entry;
-	int nentry;
-	char **element;
-	int nelement;
-};
-
-static rtpg_colormap_arg
-rtpg_colormap_arg_init() {
-	rtpg_colormap_arg arg = NULL;
-
-	arg = palloc(sizeof(struct rtpg_colormap_arg_t));
-	if (arg == NULL) {
-		elog(ERROR, "rtpg_colormap_arg: Could not allocate memory for function arguments");
-		return NULL;
-	}
-
-	arg->raster = NULL;
-	arg->nband = 1;
-	arg->band = NULL;
-	arg->bandstats = NULL;
-
-	arg->colormap = palloc(sizeof(struct rt_colormap_t));
-	if (arg->colormap == NULL) {
-		elog(ERROR, "rtpg_colormap_arg: Could not allocate memory for function arguments");
-		return NULL;
-	}
-	arg->colormap->nentry = 0;
-	arg->colormap->entry = NULL;
-	arg->colormap->ncolor = 4; /* assume RGBA */
-	arg->colormap->method = CM_INTERPOLATE;
-	arg->nodataentry = -1;
-
-	arg->entry = NULL;
-	arg->nentry = 0;
-	arg->element = NULL;
-	arg->nelement = 0;
-
-	return arg;
-}
-
-static void
-rtpg_colormap_arg_destroy(rtpg_colormap_arg arg) {
-	int i = 0;
-	if (arg->raster != NULL)
-		rt_raster_destroy(arg->raster);
-
-	if (arg->bandstats != NULL)
-		pfree(arg->bandstats);
-
-	if (arg->colormap != NULL) {
-		if (arg->colormap->entry != NULL)
-			pfree(arg->colormap->entry);
-		pfree(arg->colormap);
-	}
-
-	if (arg->nentry) {
-		for (i = 0; i < arg->nentry; i++) {
-			if (arg->entry[i] != NULL)
-				pfree(arg->entry[i]);
-		}
-		pfree(arg->entry);
-	}
-
-	if (arg->nelement) {
-		for (i = 0; i < arg->nelement; i++)
-			pfree(arg->element[i]);
-		pfree(arg->element);
-	}
-
-	pfree(arg);
-	arg = NULL;
-}
-
-PG_FUNCTION_INFO_V1(RASTER_colorMap);
-Datum RASTER_colorMap(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rtpg_colormap_arg arg = NULL;
-	char *junk = NULL;
-	rt_raster raster = NULL;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_colorMap: Starting");
-
-	/* pgraster is NULL, return NULL */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-
-	/* init arg */
-	arg = rtpg_colormap_arg_init();
-	if (arg == NULL) {
-		elog(ERROR, "RASTER_colorMap: Could not initialize argument structure");
-		PG_RETURN_NULL();
-	}
-
-	/* raster (0) */
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	/* raster object */
-	arg->raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!arg->raster) {
-		rtpg_colormap_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_colorMap: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* nband (1) */
-	if (!PG_ARGISNULL(1))
-		arg->nband = PG_GETARG_INT32(1);
-	POSTGIS_RT_DEBUGF(4, "nband = %d", arg->nband);
-
-	/* check that band works */
-	if (!rt_raster_has_band(arg->raster, arg->nband - 1)) {
-		elog(NOTICE, "Raster does not have band at index %d. Returning empty raster", arg->nband);
-
-		raster = rt_raster_clone(arg->raster, 0);
-		if (raster == NULL) {
-			rtpg_colormap_arg_destroy(arg);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_colorMap: Could not create empty raster");
-			PG_RETURN_NULL();
-		}
-
-		rtpg_colormap_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-
-		pgraster = rt_raster_serialize(raster);
-		rt_raster_destroy(raster);
-		if (pgraster == NULL)
-			PG_RETURN_NULL();
-
-		SET_VARSIZE(pgraster, ((rt_pgraster*) pgraster)->size);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	/* get band */
-	arg->band = rt_raster_get_band(arg->raster, arg->nband - 1);
-	if (arg->band == NULL) {
-		int nband = arg->nband;
-		rtpg_colormap_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_colorMap: Could not get band at index %d", nband);
-		PG_RETURN_NULL();
-	}
-
-	/* method (3) */
-	if (!PG_ARGISNULL(3)) {
-		char *method = NULL;
-		char *tmp = text_to_cstring(PG_GETARG_TEXT_P(3));
-		POSTGIS_RT_DEBUGF(4, "raw method = %s", tmp);
-
-		method = rtpg_trim(tmp);
-		pfree(tmp);
-		method = rtpg_strtoupper(method);
-
-		if (strcmp(method, "INTERPOLATE") == 0)
-			arg->colormap->method = CM_INTERPOLATE;
-		else if (strcmp(method, "EXACT") == 0)
-			arg->colormap->method = CM_EXACT;
-		else if (strcmp(method, "NEAREST") == 0)
-			arg->colormap->method = CM_NEAREST;
-		else {
-			elog(NOTICE, "Unknown value provided for method. Defaulting to INTERPOLATE");
-			arg->colormap->method = CM_INTERPOLATE;
-		}
-	}
-	/* default to INTERPOLATE */
-	else
-		arg->colormap->method = CM_INTERPOLATE;
-	POSTGIS_RT_DEBUGF(4, "method = %d", arg->colormap->method);
-
-	/* colormap (2) */
-	if (PG_ARGISNULL(2)) {
-		rtpg_colormap_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_colorMap: Value must be provided for colormap");
-		PG_RETURN_NULL();
-	}
-	else {
-		char *tmp = NULL;
-		char *colormap = text_to_cstring(PG_GETARG_TEXT_P(2));
-		char *_entry;
-		char *_element;
-		int i = 0;
-		int j = 0;
-
-		POSTGIS_RT_DEBUGF(4, "colormap = %s", colormap);
-
-		/* empty string */
-		if (!strlen(colormap)) {
-			rtpg_colormap_arg_destroy(arg);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_colorMap: Value must be provided for colormap");
-			PG_RETURN_NULL();
-		}
-
-		arg->entry = rtpg_strsplit(colormap, "\n", &(arg->nentry));
-		pfree(colormap);
-		if (arg->nentry < 1) {
-			rtpg_colormap_arg_destroy(arg);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_colorMap: Could not process the value provided for colormap");
-			PG_RETURN_NULL();
-		}
-
-		/* allocate the max # of colormap entries */
-		arg->colormap->entry = palloc(sizeof(struct rt_colormap_entry_t) * arg->nentry);
-		if (arg->colormap->entry == NULL) {
-			rtpg_colormap_arg_destroy(arg);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_colorMap: Could not allocate memory for colormap entries");
-			PG_RETURN_NULL();
-		}
-		memset(arg->colormap->entry, 0, sizeof(struct rt_colormap_entry_t) * arg->nentry);
-
-		/* each entry */
-		for (i = 0; i < arg->nentry; i++) {
-			/* substitute space for other delimiters */
-			tmp = rtpg_strreplace(arg->entry[i], ":", " ", NULL);
-			_entry = rtpg_strreplace(tmp, ",", " ", NULL);
-			pfree(tmp);
-			tmp = rtpg_strreplace(_entry, "\t", " ", NULL);
-			pfree(_entry);
-			_entry = rtpg_trim(tmp);
-			pfree(tmp);
-
-			POSTGIS_RT_DEBUGF(4, "Processing entry[%d] = %s", i, arg->entry[i]);
-			POSTGIS_RT_DEBUGF(4, "Cleaned entry[%d] = %s", i, _entry);
-
-			/* empty entry, continue */
-			if (!strlen(_entry)) {
-				POSTGIS_RT_DEBUGF(3, "Skipping empty entry[%d]", i);
-				pfree(_entry);
-				continue;
-			}
-
-			arg->element = rtpg_strsplit(_entry, " ", &(arg->nelement));
-			pfree(_entry);
-			if (arg->nelement < 2) {
-				rtpg_colormap_arg_destroy(arg);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_colorMap: Could not process colormap entry %d", i + 1);
-				PG_RETURN_NULL();
-			}
-			else if (arg->nelement > 5) {
-				elog(NOTICE, "More than five elements in colormap entry %d. Using at most five elements", i + 1);
-				arg->nelement = 5;
-			}
-
-			/* smallest # of colors */
-			if ((arg->nelement - 1) < arg->colormap->ncolor)
-				arg->colormap->ncolor = arg->nelement - 1;
-
-			/* each element of entry */
-			for (j = 0; j < arg->nelement; j++) {
-
-				_element = rtpg_trim(arg->element[j]);
-				_element = rtpg_strtoupper(_element);
-				POSTGIS_RT_DEBUGF(4, "Processing entry[%d][%d] = %s", i, j, arg->element[j]);
-				POSTGIS_RT_DEBUGF(4, "Cleaned entry[%d][%d] = %s", i, j, _element);
-
-				/* first element is ALWAYS a band value, percentage OR "nv" string */
-				if (j == 0) {
-					char *percent = NULL;
-
-					/* NODATA */
-					if (
-						strcmp(_element, "NV") == 0 ||
-						strcmp(_element, "NULL") == 0 ||
-						strcmp(_element, "NODATA") == 0
-					) {
-						POSTGIS_RT_DEBUG(4, "Processing NODATA string");
-
-						if (arg->nodataentry > -1) {
-							elog(NOTICE, "More than one NODATA entry found. Using only the first one");
-						}
-						else {
-							arg->colormap->entry[arg->colormap->nentry].isnodata = 1;
-							/* no need to set value as value comes from band's NODATA */
-							arg->colormap->entry[arg->colormap->nentry].value = 0;
-						}
-					}
-					/* percent value */
-					else if ((percent = strchr(_element, '%')) != NULL) {
-						double value;
-						POSTGIS_RT_DEBUG(4, "Processing percent string");
-
-						/* get the band stats */
-						if (arg->bandstats == NULL) {
-							POSTGIS_RT_DEBUG(4, "Getting band stats");
-							
-							arg->bandstats = rt_band_get_summary_stats(arg->band, 1, 1, 0, NULL, NULL, NULL);
-							if (arg->bandstats == NULL) {
-								pfree(_element);
-								rtpg_colormap_arg_destroy(arg);
-								PG_FREE_IF_COPY(pgraster, 0);
-								elog(ERROR, "RASTER_colorMap: Could not get band's summary stats to process percentages");
-								PG_RETURN_NULL();
-							}
-						}
-
-						/* get the string before the percent char */
-						tmp = palloc(sizeof(char) * (percent - _element + 1));
-						if (tmp == NULL) {
-							pfree(_element);
-							rtpg_colormap_arg_destroy(arg);
-							PG_FREE_IF_COPY(pgraster, 0);
-							elog(ERROR, "RASTER_colorMap: Could not allocate memory for value of percentage");
-							PG_RETURN_NULL();
-						}
-
-						memcpy(tmp, _element, percent - _element);
-						tmp[percent - _element] = '\0';
-						POSTGIS_RT_DEBUGF(4, "Percent value = %s", tmp);
-
-						/* get percentage value */
-						errno = 0;
-						value = strtod(tmp, NULL);
-						pfree(tmp);
-						if (errno != 0 || _element == junk) {
-							pfree(_element);
-							rtpg_colormap_arg_destroy(arg);
-							PG_FREE_IF_COPY(pgraster, 0);
-							elog(ERROR, "RASTER_colorMap: Could not process percent string to value");
-							PG_RETURN_NULL();
-						}
-
-						/* check percentage */
-						if (value < 0.) {
-							elog(NOTICE, "Percentage values cannot be less than zero. Defaulting to zero");
-							value = 0.;
-						}
-						else if (value > 100.) {
-							elog(NOTICE, "Percentage values cannot be greater than 100. Defaulting to 100");
-							value = 100.;
-						}
-
-						/* get the true pixel value */
-						/* TODO: should the percentage be quantile based? */
-						arg->colormap->entry[arg->colormap->nentry].value = ((value / 100.) * (arg->bandstats->max - arg->bandstats->min)) + arg->bandstats->min;
-					}
-					/* straight value */
-					else {
-						errno = 0;
-						arg->colormap->entry[arg->colormap->nentry].value = strtod(_element, &junk);
-						if (errno != 0 || _element == junk) {
-							pfree(_element);
-							rtpg_colormap_arg_destroy(arg);
-							PG_FREE_IF_COPY(pgraster, 0);
-							elog(ERROR, "RASTER_colorMap: Could not process string to value");
-							PG_RETURN_NULL();
-						}
-					}
-
-				}
-				/* RGB values (0 - 255) */
-				else {
-					int value = 0;
-
-					errno = 0;
-					value = (int) strtod(_element, &junk);
-					if (errno != 0 || _element == junk) {
-						pfree(_element);
-						rtpg_colormap_arg_destroy(arg);
-						PG_FREE_IF_COPY(pgraster, 0);
-						elog(ERROR, "RASTER_colorMap: Could not process string to value");
-						PG_RETURN_NULL();
-					}
-
-					if (value > 255) {
-						elog(NOTICE, "RGBA value cannot be greater than 255. Defaulting to 255");
-						value = 255;
-					}
-					else if (value < 0) {
-						elog(NOTICE, "RGBA value cannot be less than zero. Defaulting to zero");
-						value = 0;
-					}
-					arg->colormap->entry[arg->colormap->nentry].color[j - 1] = value;
-				}
-
-				pfree(_element);
-			}
-
-			POSTGIS_RT_DEBUGF(4, "colormap->entry[%d] (isnodata, value, R, G, B, A) = (%d, %f, %d, %d, %d, %d)",
-				arg->colormap->nentry,
-				arg->colormap->entry[arg->colormap->nentry].isnodata,
-				arg->colormap->entry[arg->colormap->nentry].value,
-				arg->colormap->entry[arg->colormap->nentry].color[0],
-				arg->colormap->entry[arg->colormap->nentry].color[1],
-				arg->colormap->entry[arg->colormap->nentry].color[2],
-				arg->colormap->entry[arg->colormap->nentry].color[3]
-			);
-
-			arg->colormap->nentry++;
-		}
-
-		POSTGIS_RT_DEBUGF(4, "colormap->nentry = %d", arg->colormap->nentry);
-		POSTGIS_RT_DEBUGF(4, "colormap->ncolor = %d", arg->colormap->ncolor);
-	}
-
-	/* call colormap */
-	raster = rt_raster_colormap(arg->raster, arg->nband - 1, arg->colormap);
-	if (raster == NULL) {
-		rtpg_colormap_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_colorMap: Could not create new raster with applied colormap");
-		PG_RETURN_NULL();
-	}
-
-	rtpg_colormap_arg_destroy(arg);
-	PG_FREE_IF_COPY(pgraster, 0);
-	pgraster = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-
-	POSTGIS_RT_DEBUG(3, "RASTER_colorMap: Done");
-
-	if (pgraster == NULL)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgraster, ((rt_pgraster*) pgraster)->size);
-	PG_RETURN_POINTER(pgraster);
-}
-
-/* ---------------------------------------------------------------- */
-/* Returns raster from GDAL raster                                  */
-/* ---------------------------------------------------------------- */
-PG_FUNCTION_INFO_V1(RASTER_fromGDALRaster);
-Datum RASTER_fromGDALRaster(PG_FUNCTION_ARGS)
-{
-	bytea *bytea_data;
-	uint8_t *data;
-	int data_len = 0;
-	VSILFILE *vsifp = NULL;
-	GDALDatasetH hdsSrc;
-	int srid = -1; /* -1 for NULL */
-
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster;
-
-	/* NULL if NULL */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-
-	/* get data */
-	bytea_data = (bytea *) PG_GETARG_BYTEA_P(0);
-	data = (uint8_t *) VARDATA(bytea_data);
-	data_len = VARSIZE(bytea_data) - VARHDRSZ;
-
-	/* process srid */
-	/* NULL srid means try to determine SRID from bytea */
-	if (!PG_ARGISNULL(1))
-		srid = clamp_srid(PG_GETARG_INT32(1));
-
-	/* create memory "file" */
-	vsifp = VSIFileFromMemBuffer("/vsimem/in.dat", data, data_len, FALSE);
-	if (vsifp == NULL) {
-		PG_FREE_IF_COPY(bytea_data, 0);
-		elog(ERROR, "RASTER_fromGDALRaster: Could not load bytea into memory file for use by GDAL");
-		PG_RETURN_NULL();
-	}
-
-	/* register all GDAL drivers */
-	rt_util_gdal_register_all(0);
-
-	/* open GDAL raster */
-	hdsSrc = rt_util_gdal_open("/vsimem/in.dat", GA_ReadOnly, 1);
-	if (hdsSrc == NULL) {
-		VSIFCloseL(vsifp);
-		PG_FREE_IF_COPY(bytea_data, 0);
-		elog(ERROR, "RASTER_fromGDALRaster: Could not open bytea with GDAL. Check that the bytea is of a GDAL supported format");
-		PG_RETURN_NULL();
-	}
-	
-#if POSTGIS_DEBUG_LEVEL > 3
-	{
-		GDALDriverH hdrv = GDALGetDatasetDriver(hdsSrc);
-
-		POSTGIS_RT_DEBUGF(4, "Input GDAL Raster info: %s, (%d x %d)",
-			GDALGetDriverShortName(hdrv),
-			GDALGetRasterXSize(hdsSrc),
-			GDALGetRasterYSize(hdsSrc)
-		);
-	}
-#endif
-
-	/* convert GDAL raster to raster */
-	raster = rt_raster_from_gdal_dataset(hdsSrc);
-
-	GDALClose(hdsSrc);
-	VSIFCloseL(vsifp);
-	PG_FREE_IF_COPY(bytea_data, 0);
-
-	if (raster == NULL) {
-		elog(ERROR, "RASTER_fromGDALRaster: Could not convert GDAL raster to raster");
-		PG_RETURN_NULL();
-	}
-
-	/* apply SRID if set */
-	if (srid != -1)
-		rt_raster_set_srid(raster, srid);
- 
-	pgraster = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	if (!pgraster)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgraster, pgraster->size);
-	PG_RETURN_POINTER(pgraster);
-}
-
-/**
- * Returns formatted GDAL raster as bytea object of raster
- */
-PG_FUNCTION_INFO_V1(RASTER_asGDALRaster);
-Datum RASTER_asGDALRaster(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster;
-
-	text *formattext = NULL;
-	char *format = NULL;
-	char **options = NULL;
-	text *optiontext = NULL;
-	char *option = NULL;
-	int srid = SRID_UNKNOWN;
-	char *srs = NULL;
-
-	ArrayType *array;
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-	int n = 0;
-	int i = 0;
-	int j = 0;
-
-	uint8_t *gdal = NULL;
-	uint64_t gdal_size = 0;
-	bytea *result = NULL;
-	uint64_t result_size = 0;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_asGDALRaster: Starting");
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_asGDALRaster: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* format is required */
-	if (PG_ARGISNULL(1)) {
-		elog(NOTICE, "Format must be provided");
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		PG_RETURN_NULL();
-	}
-	else {
-		formattext = PG_GETARG_TEXT_P(1);
-		format = text_to_cstring(formattext);
-	}
-		
-	POSTGIS_RT_DEBUGF(3, "RASTER_asGDALRaster: Arg 1 (format) is %s", format);
-
-	/* process options */
-	if (!PG_ARGISNULL(2)) {
-		POSTGIS_RT_DEBUG(3, "RASTER_asGDALRaster: Processing Arg 2 (options)");
-		array = PG_GETARG_ARRAYTYPE_P(2);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case TEXTOID:
-				break;
-			default:
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_asGDALRaster: Invalid data type for options");
-				PG_RETURN_NULL();
-				break;
-		}
-
-		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-			&nulls, &n);
-
-		if (n) {
-			options = (char **) palloc(sizeof(char *) * (n + 1));
-			if (options == NULL) {
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_asGDALRaster: Could not allocate memory for options");
-				PG_RETURN_NULL();
-			}
-
-			/* clean each option */
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) continue;
-
-				option = NULL;
-				switch (etype) {
-					case TEXTOID:
-						optiontext = (text *) DatumGetPointer(e[i]);
-						if (NULL == optiontext) break;
-						option = text_to_cstring(optiontext);
-
-						/* trim string */
-						option = rtpg_trim(option);
-						POSTGIS_RT_DEBUGF(3, "RASTER_asGDALRaster: option is '%s'", option);
-						break;
-				}
-
-				if (strlen(option)) {
-					options[j] = (char *) palloc(sizeof(char) * (strlen(option) + 1));
-					options[j] = option;
-					j++;
-				}
-			}
-
-			if (j > 0) {
-				/* trim allocation */
-				options = repalloc(options, (j + 1) * sizeof(char *));
-
-				/* add NULL to end */
-				options[j] = NULL;
-
-			}
-			else {
-				pfree(options);
-				options = NULL;
-			}
-		}
-	}
-
-	/* process srid */
-	/* NULL srid means use raster's srid */
-	if (PG_ARGISNULL(3))
-		srid = rt_raster_get_srid(raster);
-	else 
-		srid = PG_GETARG_INT32(3);
-
-	/* get srs from srid */
-	if (clamp_srid(srid) != SRID_UNKNOWN) {
-		srs = rtpg_getSR(srid);
-		if (NULL == srs) {
-			if (NULL != options) {
-				for (i = j - 1; i >= 0; i--) pfree(options[i]);
-				pfree(options);
-			}
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_asGDALRaster: Could not find srtext for SRID (%d)", srid);
-			PG_RETURN_NULL();
-		}
-		POSTGIS_RT_DEBUGF(3, "RASTER_asGDALRaster: Arg 3 (srs) is %s", srs);
-	}
-	else
-		srs = NULL;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_asGDALRaster: Generating GDAL raster");
-	gdal = rt_raster_to_gdal(raster, srs, format, options, &gdal_size);
-
-	/* free memory */
-	if (NULL != options) {
-		for (i = j - 1; i >= 0; i--) pfree(options[i]);
-		pfree(options);
-	}
-	if (NULL != srs) pfree(srs);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	if (!gdal) {
-		elog(ERROR, "RASTER_asGDALRaster: Could not allocate and generate GDAL raster");
-		PG_RETURN_NULL();
-	}
-	POSTGIS_RT_DEBUGF(3, "RASTER_asGDALRaster: GDAL raster generated with %d bytes", (int) gdal_size);
-
-	/* result is a varlena */
-	result_size = gdal_size + VARHDRSZ;
-	result = (bytea *) palloc(result_size);
-	if (NULL == result) {
-		elog(ERROR, "RASTER_asGDALRaster: Insufficient virtual memory for GDAL raster");
-		PG_RETURN_NULL();
-	}
-	SET_VARSIZE(result, result_size);
-	memcpy(VARDATA(result), gdal, VARSIZE(result) - VARHDRSZ);
-
-	/* for test output
-	FILE *fh = NULL;
-	fh = fopen("/tmp/out.dat", "w");
-	fwrite(gdal, sizeof(uint8_t), gdal_size, fh);
-	fclose(fh);
-	*/
-
-	/* free gdal mem buffer */
-	if (gdal) CPLFree(gdal);
-
-	POSTGIS_RT_DEBUG(3, "RASTER_asGDALRaster: Returning pointer to GDAL raster");
-	PG_RETURN_POINTER(result);
-}
-
-/**
- * Returns available GDAL drivers
- */
-PG_FUNCTION_INFO_V1(RASTER_getGDALDrivers);
-Datum RASTER_getGDALDrivers(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-
-	uint32_t drv_count;
-	rt_gdaldriver drv_set;
-	rt_gdaldriver drv_set2;
-	int call_cntr;
-	int max_calls;
-
-	/* first call of function */
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-
-		/* 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);
-
-		drv_set = rt_raster_gdal_drivers(&drv_count, 1);
-		if (NULL == drv_set || !drv_count) {
-			elog(NOTICE, "No GDAL drivers found");
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		POSTGIS_RT_DEBUGF(3, "%d drivers returned", (int) drv_count);
-
-		/* Store needed information */
-		funcctx->user_fctx = drv_set;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = drv_count;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	drv_set2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 4;
-		Datum values[values_length];
-		bool nulls[values_length];
-		HeapTuple tuple;
-		Datum result;
-
-		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		values[0] = Int32GetDatum(drv_set2[call_cntr].idx);
-		values[1] = CStringGetTextDatum(drv_set2[call_cntr].short_name);
-		values[2] = CStringGetTextDatum(drv_set2[call_cntr].long_name);
-		values[3] = CStringGetTextDatum(drv_set2[call_cntr].create_options);
-
-		POSTGIS_RT_DEBUGF(4, "Result %d, Index %d", call_cntr, drv_set2[call_cntr].idx);
-		POSTGIS_RT_DEBUGF(4, "Result %d, Short Name %s", call_cntr, drv_set2[call_cntr].short_name);
-		POSTGIS_RT_DEBUGF(4, "Result %d, Full Name %s", call_cntr, drv_set2[call_cntr].long_name);
-		POSTGIS_RT_DEBUGF(5, "Result %d, Create Options %s", call_cntr, drv_set2[call_cntr].create_options);
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		/* clean up */
-		pfree(drv_set2[call_cntr].short_name);
-		pfree(drv_set2[call_cntr].long_name);
-		pfree(drv_set2[call_cntr].create_options);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		pfree(drv_set2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-/**
- * Rasterize a geometry
- */
-PG_FUNCTION_INFO_V1(RASTER_asRaster);
-Datum RASTER_asRaster(PG_FUNCTION_ARGS)
-{
-	GSERIALIZED *gser = NULL;
-
-	LWGEOM *geom = NULL;
-	rt_raster rast = NULL;
-	rt_pgraster *pgrast = NULL;
-
-	unsigned char *wkb;
-	size_t wkb_len = 0;
-	unsigned char variant = WKB_SFSQL;
-
-	double scale[2] = {0};
-	double *scale_x = NULL;
-	double *scale_y = NULL;
-
-	int dim[2] = {0};
-	int *dim_x = NULL;
-	int *dim_y = NULL;
-
-	ArrayType *array;
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-	int n = 0;
-	int i = 0;
-	int j = 0;
-	int haserr = 0;
-
-	text *pixeltypetext = NULL;
-	char *pixeltype = NULL;
-	rt_pixtype pixtype = PT_END;
-	rt_pixtype *pixtypes = NULL;
-	int pixtypes_len = 0;
-
-	double *values = NULL;
-	int values_len = 0;
-
-	uint8_t *hasnodatas = NULL;
-	double *nodatavals = NULL;
-	int nodatavals_len = 0;
-
-	double ulw[2] = {0};
-	double *ul_xw = NULL;
-	double *ul_yw = NULL;
-
-	double gridw[2] = {0};
-	double *grid_xw = NULL;
-	double *grid_yw = NULL;
-
-	double skew[2] = {0};
-	double *skew_x = NULL;
-	double *skew_y = NULL;
-
-	char **options = NULL;
-	int options_len = 0;
-
-	uint32_t num_bands = 0;
-
-	int srid = SRID_UNKNOWN;
-	char *srs = NULL;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_asRaster: Starting");
-
-	/* based upon LWGEOM_asBinary function in postgis/lwgeom_ogc.c */
-
-	/* Get the geometry */
-	if (PG_ARGISNULL(0)) 
-		PG_RETURN_NULL();
-
-	gser = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-	geom = lwgeom_from_gserialized(gser);
-
-	/* Get a 2D version of the geometry if necessary */
-	if (lwgeom_ndims(geom) > 2) {
-		LWGEOM *geom2d = lwgeom_force_2d(geom);
-		lwgeom_free(geom);
-		geom = geom2d;
-	}
-
-	/* empty geometry, return empty raster */
-	if (lwgeom_is_empty(geom)) {
-		POSTGIS_RT_DEBUG(3, "Input geometry is empty. Returning empty raster");
-		lwgeom_free(geom);
-		PG_FREE_IF_COPY(gser, 0);
-
-		rast = rt_raster_new(0, 0);
-		if (rast == NULL)
-			PG_RETURN_NULL();
-
-		pgrast = rt_raster_serialize(rast);
-		rt_raster_destroy(rast);
-
-		if (NULL == pgrast)
-			PG_RETURN_NULL();
-
-		SET_VARSIZE(pgrast, pgrast->size);
-		PG_RETURN_POINTER(pgrast);
-	}
-
-	/* scale x */
-	if (!PG_ARGISNULL(1)) {
-		scale[0] = PG_GETARG_FLOAT8(1);
-		if (FLT_NEQ(scale[0], 0)) scale_x = &scale[0];
-	}
-
-	/* scale y */
-	if (!PG_ARGISNULL(2)) {
-		scale[1] = PG_GETARG_FLOAT8(2);
-		if (FLT_NEQ(scale[1], 0)) scale_y = &scale[1];
-	}
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: scale (x, y) = %f, %f", scale[0], scale[1]);
-
-	/* width */
-	if (!PG_ARGISNULL(3)) {
-		dim[0] = PG_GETARG_INT32(3);
-		if (dim[0] < 0) dim[0] = 0;
-		if (dim[0] != 0) dim_x = &dim[0];
-	}
-
-	/* height */
-	if (!PG_ARGISNULL(4)) {
-		dim[1] = PG_GETARG_INT32(4);
-		if (dim[1] < 0) dim[1] = 0;
-		if (dim[1] != 0) dim_y = &dim[1];
-	}
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: dim (x, y) = %d, %d", dim[0], dim[1]);
-
-	/* pixeltype */
-	if (!PG_ARGISNULL(5)) {
-		array = PG_GETARG_ARRAYTYPE_P(5);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case TEXTOID:
-				break;
-			default:
-
-				lwgeom_free(geom);
-				PG_FREE_IF_COPY(gser, 0);
-
-				elog(ERROR, "RASTER_asRaster: Invalid data type for pixeltype");
-				PG_RETURN_NULL();
-				break;
-		}
-
-		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-			&nulls, &n);
-
-		if (n) {
-			pixtypes = (rt_pixtype *) palloc(sizeof(rt_pixtype) * n);
-			/* clean each pixeltype */
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) {
-					pixtypes[j++] = PT_64BF;
-					continue;
-				}
-
-				pixeltype = NULL;
-				switch (etype) {
-					case TEXTOID:
-						pixeltypetext = (text *) DatumGetPointer(e[i]);
-						if (NULL == pixeltypetext) break;
-						pixeltype = text_to_cstring(pixeltypetext);
-
-						/* trim string */
-						pixeltype = rtpg_trim(pixeltype);
-						POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: pixeltype is '%s'", pixeltype);
-						break;
-				}
-
-				if (strlen(pixeltype)) {
-					pixtype = rt_pixtype_index_from_name(pixeltype);
-					if (pixtype == PT_END) {
-
-						pfree(pixtypes);
-
-						lwgeom_free(geom);
-						PG_FREE_IF_COPY(gser, 0);
-
-						elog(ERROR, "RASTER_asRaster: Invalid pixel type provided: %s", pixeltype);
-						PG_RETURN_NULL();
-					}
-
-					pixtypes[j] = pixtype;
-					j++;
-				}
-			}
-
-			if (j > 0) {
-				/* trim allocation */
-				pixtypes = repalloc(pixtypes, j * sizeof(rt_pixtype));
-				pixtypes_len = j;
-			}
-			else {
-				pfree(pixtypes);
-				pixtypes = NULL;
-				pixtypes_len = 0;
-			}
-		}
-	}
-#if POSTGIS_DEBUG_LEVEL > 0
-	for (i = 0; i < pixtypes_len; i++)
-		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: pixtypes[%d] = %d", i, (int) pixtypes[i]);
-#endif
-
-	/* value */
-	if (!PG_ARGISNULL(6)) {
-		array = PG_GETARG_ARRAYTYPE_P(6);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case FLOAT4OID:
-			case FLOAT8OID:
-				break;
-			default:
-
-				if (pixtypes_len) pfree(pixtypes);
-
-				lwgeom_free(geom);
-				PG_FREE_IF_COPY(gser, 0);
-
-				elog(ERROR, "RASTER_asRaster: Invalid data type for value");
-				PG_RETURN_NULL();
-				break;
-		}
-
-		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-			&nulls, &n);
-
-		if (n) {
-			values = (double *) palloc(sizeof(double) * n);
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) {
-					values[j++] = 1;
-					continue;
-				}
-
-				switch (etype) {
-					case FLOAT4OID:
-						values[j] = (double) DatumGetFloat4(e[i]);
-						break;
-					case FLOAT8OID:
-						values[j] = (double) DatumGetFloat8(e[i]);
-						break;
-				}
-				POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: values[%d] = %f", j, values[j]);
-
-				j++;
-			}
-
-			if (j > 0) {
-				/* trim allocation */
-				values = repalloc(values, j * sizeof(double));
-				values_len = j;
-			}
-			else {
-				pfree(values);
-				values = NULL;
-				values_len = 0;
-			}
-		}
-	}
-#if POSTGIS_DEBUG_LEVEL > 0
-	for (i = 0; i < values_len; i++)
-		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: values[%d] = %f", i, values[i]);
-#endif
-
-	/* nodataval */
-	if (!PG_ARGISNULL(7)) {
-		array = PG_GETARG_ARRAYTYPE_P(7);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case FLOAT4OID:
-			case FLOAT8OID:
-				break;
-			default:
-
-				if (pixtypes_len) pfree(pixtypes);
-				if (values_len) pfree(values);
-
-				lwgeom_free(geom);
-				PG_FREE_IF_COPY(gser, 0);
-
-				elog(ERROR, "RASTER_asRaster: Invalid data type for nodataval");
-				PG_RETURN_NULL();
-				break;
-		}
-
-		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-			&nulls, &n);
-
-		if (n) {
-			nodatavals = (double *) palloc(sizeof(double) * n);
-			hasnodatas = (uint8_t *) palloc(sizeof(uint8_t) * n);
-			for (i = 0, j = 0; i < n; i++) {
-				if (nulls[i]) {
-					hasnodatas[j] = 0;
-					nodatavals[j] = 0;
-					j++;
-					continue;
-				}
-
-				hasnodatas[j] = 1;
-				switch (etype) {
-					case FLOAT4OID:
-						nodatavals[j] = (double) DatumGetFloat4(e[i]);
-						break;
-					case FLOAT8OID:
-						nodatavals[j] = (double) DatumGetFloat8(e[i]);
-						break;
-				}
-				POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: hasnodatas[%d] = %d", j, hasnodatas[j]);
-				POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: nodatavals[%d] = %f", j, nodatavals[j]);
-
-				j++;
-			}
-
-			if (j > 0) {
-				/* trim allocation */
-				nodatavals = repalloc(nodatavals, j * sizeof(double));
-				hasnodatas = repalloc(hasnodatas, j * sizeof(uint8_t));
-				nodatavals_len = j;
-			}
-			else {
-				pfree(nodatavals);
-				pfree(hasnodatas);
-				nodatavals = NULL;
-				hasnodatas = NULL;
-				nodatavals_len = 0;
-			}
-		}
-	}
-#if POSTGIS_DEBUG_LEVEL > 0
-	for (i = 0; i < nodatavals_len; i++) {
-		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: hasnodatas[%d] = %d", i, hasnodatas[i]);
-		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: nodatavals[%d] = %f", i, nodatavals[i]);
-	}
-#endif
-
-	/* upperleftx */
-	if (!PG_ARGISNULL(8)) {
-		ulw[0] = PG_GETARG_FLOAT8(8);
-		ul_xw = &ulw[0];
-	}
-
-	/* upperlefty */
-	if (!PG_ARGISNULL(9)) {
-		ulw[1] = PG_GETARG_FLOAT8(9);
-		ul_yw = &ulw[1];
-	}
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: upperleft (x, y) = %f, %f", ulw[0], ulw[1]);
-
-	/* gridx */
-	if (!PG_ARGISNULL(10)) {
-		gridw[0] = PG_GETARG_FLOAT8(10);
-		grid_xw = &gridw[0];
-	}
-
-	/* gridy */
-	if (!PG_ARGISNULL(11)) {
-		gridw[1] = PG_GETARG_FLOAT8(11);
-		grid_yw = &gridw[1];
-	}
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: grid (x, y) = %f, %f", gridw[0], gridw[1]);
-
-	/* check dependent variables */
-	haserr = 0;
-	do {
-		/* only part of scale provided */
-		if (
-			(scale_x == NULL && scale_y != NULL) ||
-			(scale_x != NULL && scale_y == NULL)
-		) {
-			elog(NOTICE, "Values must be provided for both X and Y of scale if one is specified");
-			haserr = 1;
-			break;
-		}
-
-		/* only part of dimension provided */
-		if (
-			(dim_x == NULL && dim_y != NULL) ||
-			(dim_x != NULL && dim_y == NULL)
-		) {
-			elog(NOTICE, "Values must be provided for both width and height if one is specified");
-			haserr = 1;
-			break;
-		}
-
-		/* scale and dimension provided */
-		if (
-			(scale_x != NULL && scale_y != NULL) &&
-			(dim_x != NULL && dim_y != NULL)
-		) {
-			elog(NOTICE, "Values provided for X and Y of scale and width and height.  Using the width and height");
-			scale_x = NULL;
-			scale_y = NULL;
-			break;
-		}
-
-		/* neither scale or dimension provided */
-		if (
-			(scale_x == NULL && scale_y == NULL) &&
-			(dim_x == NULL && dim_y == NULL)
-		) {
-			elog(NOTICE, "Values must be provided for X and Y of scale or width and height");
-			haserr = 1;
-			break;
-		}
-
-		/* only part of upper-left provided */
-		if (
-			(ul_xw == NULL && ul_yw != NULL) ||
-			(ul_xw != NULL && ul_yw == NULL)
-		) {
-			elog(NOTICE, "Values must be provided for both X and Y when specifying the upper-left corner");
-			haserr = 1;
-			break;
-		}
-
-		/* only part of alignment provided */
-		if (
-			(grid_xw == NULL && grid_yw != NULL) ||
-			(grid_xw != NULL && grid_yw == NULL)
-		) {
-			elog(NOTICE, "Values must be provided for both X and Y when specifying the alignment");
-			haserr = 1;
-			break;
-		}
-
-		/* upper-left and alignment provided */
-		if (
-			(ul_xw != NULL && ul_yw != NULL) &&
-			(grid_xw != NULL && grid_yw != NULL)
-		) {
-			elog(NOTICE, "Values provided for both X and Y of upper-left corner and alignment.  Using the values of upper-left corner");
-			grid_xw = NULL;
-			grid_yw = NULL;
-			break;
-		}
-	}
-	while (0);
-
-	if (haserr) {
-		if (pixtypes_len) pfree(pixtypes);
-		if (values_len) pfree(values);
-		if (nodatavals_len) {
-			pfree(nodatavals);
-			pfree(hasnodatas);
-		}
-
-		lwgeom_free(geom);
-		PG_FREE_IF_COPY(gser, 0);
-
-		PG_RETURN_NULL();
-	}
-
-	/* skewx */
-	if (!PG_ARGISNULL(12)) {
-		skew[0] = PG_GETARG_FLOAT8(12);
-		if (FLT_NEQ(skew[0], 0)) skew_x = &skew[0];
-	}
-
-	/* skewy */
-	if (!PG_ARGISNULL(13)) {
-		skew[1] = PG_GETARG_FLOAT8(13);
-		if (FLT_NEQ(skew[1], 0)) skew_y = &skew[1];
-	}
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: skew (x, y) = %f, %f", skew[0], skew[1]);
-
-	/* all touched */
-	if (!PG_ARGISNULL(14) && PG_GETARG_BOOL(14) == TRUE) {
-		if (options_len < 1) {
-			options_len = 1;
-			options = (char **) palloc(sizeof(char *) * options_len);
-		}
-		else {
-			options_len++;
-			options = (char **) repalloc(options, sizeof(char *) * options_len);
-		}
-
-		options[options_len - 1] = palloc(sizeof(char*) * (strlen("ALL_TOUCHED=TRUE") + 1));
-		options[options_len - 1] = "ALL_TOUCHED=TRUE";
-	}
-
-	if (options_len) {
-		options_len++;
-		options = (char **) repalloc(options, sizeof(char *) * options_len);
-		options[options_len - 1] = NULL;
-	}
-
-	/* get geometry's srid */
-	srid = gserialized_get_srid(gser);
-
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: srid = %d", srid);
-	if (clamp_srid(srid) != SRID_UNKNOWN) {
-		srs = rtpg_getSR(srid);
-		if (NULL == srs) {
-
-			if (pixtypes_len) pfree(pixtypes);
-			if (values_len) pfree(values);
-			if (nodatavals_len) {
-				pfree(hasnodatas);
-				pfree(nodatavals);
-			}
-			if (options_len) pfree(options);
-
-			lwgeom_free(geom);
-			PG_FREE_IF_COPY(gser, 0);
-
-			elog(ERROR, "RASTER_asRaster: Could not find srtext for SRID (%d)", srid);
-			PG_RETURN_NULL();
-		}
-		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: srs is %s", srs);
-	}
-	else
-		srs = NULL;
-
-	/* determine number of bands */
-	/* MIN macro is from GDAL's cpl_port.h */
-	num_bands = MIN(pixtypes_len, values_len);
-	num_bands = MIN(num_bands, nodatavals_len);
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: pixtypes_len = %d", pixtypes_len);
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: values_len = %d", values_len);
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: nodatavals_len = %d", nodatavals_len);
-	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: num_bands = %d", num_bands);
-
-	/* warn of imbalanced number of band elements */
-	if (!(
-		(pixtypes_len == values_len) &&
-		(values_len == nodatavals_len)
-	)) {
-		elog(
-			NOTICE,
-			"Imbalanced number of values provided for pixeltype (%d), value (%d) and nodataval (%d).  Using the first %d values of each parameter",
-			pixtypes_len,
-			values_len,
-			nodatavals_len,
-			num_bands
-		);
-	}
-
-	/* get wkb of geometry */
-	POSTGIS_RT_DEBUG(3, "RASTER_asRaster: getting wkb of geometry");
-	wkb = lwgeom_to_wkb(geom, variant, &wkb_len);
-	lwgeom_free(geom);
-	PG_FREE_IF_COPY(gser, 0);
-
-	/* rasterize geometry */
-	POSTGIS_RT_DEBUG(3, "RASTER_asRaster: rasterizing geometry");
-	/* use nodatavals for the init parameter */
-	rast = rt_raster_gdal_rasterize(wkb,
-		(uint32_t) wkb_len, srs,
-		num_bands, pixtypes,
-		nodatavals, values,
-		nodatavals, hasnodatas,
-		dim_x, dim_y,
-		scale_x, scale_y,
-		ul_xw, ul_yw,
-		grid_xw, grid_yw,
-		skew_x, skew_y,
-		options
-	);
-
-	if (pixtypes_len) pfree(pixtypes);
-	if (values_len) pfree(values);
-	if (nodatavals_len) {
-		pfree(hasnodatas);
-		pfree(nodatavals);
-	}
-	if (options_len) pfree(options);
-
-	if (!rast) {
-		elog(ERROR, "RASTER_asRaster: Could not rasterize geometry");
-		PG_RETURN_NULL();
-	}
-
-	/* add target srid */
-	rt_raster_set_srid(rast, srid);
-
-	pgrast = rt_raster_serialize(rast);
-	rt_raster_destroy(rast);
-
-	if (NULL == pgrast) PG_RETURN_NULL();
-
-	POSTGIS_RT_DEBUG(3, "RASTER_asRaster: done");
-
-	SET_VARSIZE(pgrast, pgrast->size);
-	PG_RETURN_POINTER(pgrast);
-}
-
-/**
- * warp a raster using GDAL Warp API
- */
-PG_FUNCTION_INFO_V1(RASTER_GDALWarp);
-Datum RASTER_GDALWarp(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_pgraster *pgrast = NULL;
-	rt_raster raster = NULL;
-	rt_raster rast = NULL;
-
-	text *algtext = NULL;
-	char *algchar = NULL;
-	GDALResampleAlg alg = GRA_NearestNeighbour;
-	double max_err = 0.125;
-
-	int src_srid = SRID_UNKNOWN;
-	char *src_srs = NULL;
-	int dst_srid = SRID_UNKNOWN;
-	char *dst_srs = NULL;
-	int no_srid = 0;
-
-	double scale[2] = {0};
-	double *scale_x = NULL;
-	double *scale_y = NULL;
-
-	double gridw[2] = {0};
-	double *grid_xw = NULL;
-	double *grid_yw = NULL;
-
-	double skew[2] = {0};
-	double *skew_x = NULL;
-	double *skew_y = NULL;
-
-	int dim[2] = {0};
-	int *dim_x = NULL;
-	int *dim_y = NULL;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_GDALWarp: Starting");
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	/* raster */
-	raster = rt_raster_deserialize(pgraster, FALSE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_GDALWarp: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* resampling algorithm */
-	if (!PG_ARGISNULL(1)) {
-		algtext = PG_GETARG_TEXT_P(1);
-		algchar = rtpg_trim(rtpg_strtoupper(text_to_cstring(algtext)));
-		alg = rt_util_gdal_resample_alg(algchar);
-	}
-	POSTGIS_RT_DEBUGF(4, "Resampling algorithm: %d", alg);
-
-	/* max error */
-	if (!PG_ARGISNULL(2)) {
-		max_err = PG_GETARG_FLOAT8(2);
-		if (max_err < 0.) max_err = 0.;
-	}
-	POSTGIS_RT_DEBUGF(4, "max_err: %f", max_err);
-
-	/* source SRID */
-	src_srid = clamp_srid(rt_raster_get_srid(raster));
-	POSTGIS_RT_DEBUGF(4, "source SRID: %d", src_srid);
-
-	/* target SRID */
-	if (!PG_ARGISNULL(3)) {
-		dst_srid = clamp_srid(PG_GETARG_INT32(3));
-		if (dst_srid == SRID_UNKNOWN) {
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_GDALWarp: %d is an invalid target SRID", dst_srid);
-			PG_RETURN_NULL();
-		}
-	}
-	else
-		dst_srid = src_srid;
-	POSTGIS_RT_DEBUGF(4, "destination SRID: %d", dst_srid);
-
-	/* target SRID != src SRID, error */
-	if (src_srid == SRID_UNKNOWN && dst_srid != src_srid) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_GDALWarp: Input raster has unknown (%d) SRID", src_srid);
-		PG_RETURN_NULL();
-	}
-	/* target SRID == src SRID, no reprojection */
-	else if (dst_srid == src_srid) {
-		no_srid = 1;
-	}
-
-	/* scale x */
-	if (!PG_ARGISNULL(4)) {
-		scale[0] = PG_GETARG_FLOAT8(4);
-		if (FLT_NEQ(scale[0], 0)) scale_x = &scale[0];
-	}
-
-	/* scale y */
-	if (!PG_ARGISNULL(5)) {
-		scale[1] = PG_GETARG_FLOAT8(5);
-		if (FLT_NEQ(scale[1], 0)) scale_y = &scale[1];
-	}
-
-	/* grid alignment x */
-	if (!PG_ARGISNULL(6)) {
-		gridw[0] = PG_GETARG_FLOAT8(6);
-		grid_xw = &gridw[0];
-	}
-
-	/* grid alignment y */
-	if (!PG_ARGISNULL(7)) {
-		gridw[1] = PG_GETARG_FLOAT8(7);
-		grid_yw = &gridw[1];
-	}
-
-	/* skew x */
-	if (!PG_ARGISNULL(8)) {
-		skew[0] = PG_GETARG_FLOAT8(8);
-		if (FLT_NEQ(skew[0], 0)) skew_x = &skew[0];
-	}
-
-	/* skew y */
-	if (!PG_ARGISNULL(9)) {
-		skew[1] = PG_GETARG_FLOAT8(9);
-		if (FLT_NEQ(skew[1], 0)) skew_y = &skew[1];
-	}
-
-	/* width */
-	if (!PG_ARGISNULL(10)) {
-		dim[0] = PG_GETARG_INT32(10);
-		if (dim[0] < 0) dim[0] = 0;
-		if (dim[0] > 0) dim_x = &dim[0];
-	}
-
-	/* height */
-	if (!PG_ARGISNULL(11)) {
-		dim[1] = PG_GETARG_INT32(11);
-		if (dim[1] < 0) dim[1] = 0;
-		if (dim[1] > 0) dim_y = &dim[1];
-	}
-
-	/* check that at least something is to be done */
-	if (
-		(dst_srid == SRID_UNKNOWN) &&
-		(scale_x == NULL) &&
-		(scale_y == NULL) &&
-		(grid_xw == NULL) &&
-		(grid_yw == NULL) &&
-		(skew_x == NULL) &&
-		(skew_y == NULL) &&
-		(dim_x == NULL) &&
-		(dim_y == NULL)
-	) {
-		elog(NOTICE, "No resampling parameters provided.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-	/* both values of alignment must be provided if any one is provided */
-	else if (
-		(grid_xw != NULL && grid_yw == NULL) ||
-		(grid_xw == NULL && grid_yw != NULL)
-	) {
-		elog(NOTICE, "Values must be provided for both X and Y when specifying the alignment.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-	/* both values of scale must be provided if any one is provided */
-	else if (
-		(scale_x != NULL && scale_y == NULL) ||
-		(scale_x == NULL && scale_y != NULL)
-	) {
-		elog(NOTICE, "Values must be provided for both X and Y when specifying the scale.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-	/* scale and width/height provided */
-	else if (
-		(scale_x != NULL || scale_y != NULL) &&
-		(dim_x != NULL || dim_y != NULL)
-	) {
-		elog(NOTICE, "Scale X/Y and width/height are mutually exclusive.  Only provide one.  Returning original raster");
-		rt_raster_destroy(raster);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	/* get srses from srids */
-	if (!no_srid) {
-		/* source srs */
-		src_srs = rtpg_getSR(src_srid);
-		if (NULL == src_srs) {
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_GDALWarp: Input raster has unknown SRID (%d)", src_srid);
-			PG_RETURN_NULL();
-		}
-		POSTGIS_RT_DEBUGF(4, "src srs: %s", src_srs);
-
-		dst_srs = rtpg_getSR(dst_srid);
-		if (NULL == dst_srs) {
-			if (!no_srid) pfree(src_srs);
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_GDALWarp: Target SRID (%d) is unknown", dst_srid);
-			PG_RETURN_NULL();
-		}
-		POSTGIS_RT_DEBUGF(4, "dst srs: %s", dst_srs);
-	}
-
-	rast = rt_raster_gdal_warp(
-		raster,
-		src_srs, dst_srs,
-		scale_x, scale_y,
-		dim_x, dim_y,
-		NULL, NULL,
-		grid_xw, grid_yw,
-		skew_x, skew_y,
-		alg, max_err);
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-	if (!no_srid) {
-		pfree(src_srs);
-		pfree(dst_srs);
-	}
-	if (!rast) {
-		elog(ERROR, "RASTER_band: Could not create transformed raster");
-		PG_RETURN_NULL();
-	}
-
-	/* add target SRID */
-	rt_raster_set_srid(rast, dst_srid);
-
-	pgrast = rt_raster_serialize(rast);
-	rt_raster_destroy(rast);
-
-	if (NULL == pgrast) PG_RETURN_NULL();
-
-	POSTGIS_RT_DEBUG(3, "RASTER_GDALWarp: done");
-
-	SET_VARSIZE(pgrast, pgrast->size);
-	PG_RETURN_POINTER(pgrast);
-}
-
-/**
- * Get raster's meta data
- */
-PG_FUNCTION_INFO_V1(RASTER_metadata);
-Datum RASTER_metadata(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-
-	uint32_t numBands;
-	double scaleX;
-	double scaleY;
-	double ipX;
-	double ipY;
-	double skewX;
-	double skewY;
-	int32_t srid;
-	uint32_t width;
-	uint32_t height;
-
-	TupleDesc tupdesc;
-	int values_length = 10;
-	Datum values[values_length];
-	bool nulls[values_length];
-	HeapTuple tuple;
-	Datum result;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_metadata: Starting");
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-	/* raster */
-	raster = rt_raster_deserialize(pgraster, TRUE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_metadata; Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* upper left x, y */
-	ipX = rt_raster_get_x_offset(raster);
-	ipY = rt_raster_get_y_offset(raster);
-
-	/* width, height */
-	width = rt_raster_get_width(raster);
-	height = rt_raster_get_height(raster);
-
-	/* scale x, y */
-	scaleX = rt_raster_get_x_scale(raster);
-	scaleY = rt_raster_get_y_scale(raster);
-
-	/* skew x, y */
-	skewX = rt_raster_get_x_skew(raster);
-	skewY = rt_raster_get_y_skew(raster);
-
-	/* srid */
-	srid = rt_raster_get_srid(raster);
-
-	/* numbands */
-	numBands = rt_raster_get_num_bands(raster);
-
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	/* Build a tuple descriptor for our result type */
-	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-		ereport(ERROR, (
-			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-			errmsg(
-				"function returning record called in context "
-				"that cannot accept type record"
-			)
-		));
-	}
-
-	BlessTupleDesc(tupdesc);
-
-	values[0] = Float8GetDatum(ipX);
-	values[1] = Float8GetDatum(ipY);
-	values[2] = UInt32GetDatum(width);
-	values[3] = UInt32GetDatum(height);
-	values[4] = Float8GetDatum(scaleX);
-	values[5] = Float8GetDatum(scaleY);
-	values[6] = Float8GetDatum(skewX);
-	values[7] = Float8GetDatum(skewY);
-	values[8] = Int32GetDatum(srid);
-	values[9] = UInt32GetDatum(numBands);
-
-	memset(nulls, FALSE, sizeof(bool) * values_length);
-
-	/* build a tuple */
-	tuple = heap_form_tuple(tupdesc, values, nulls);
-
-	/* make the tuple into a datum */
-	result = HeapTupleGetDatum(tuple);
-
-	PG_RETURN_DATUM(result);
-}
-
-/**
- * Get raster bands' meta data
- */
-PG_FUNCTION_INFO_V1(RASTER_bandmetadata);
-Datum RASTER_bandmetadata(PG_FUNCTION_ARGS)
-{
-	FuncCallContext *funcctx;
-	TupleDesc tupdesc;
-	int call_cntr;
-	int max_calls;
-
-	struct bandmetadata {
-		uint32_t bandnum;
-		char *pixeltype;
-		bool hasnodata;
-		double nodataval;
-		bool isoutdb;
-		char *bandpath;
-	};
-	struct bandmetadata *bmd = NULL;
-	struct bandmetadata *bmd2 = NULL;
-
-	HeapTuple tuple;
-	Datum result;
-
-	if (SRF_IS_FIRSTCALL()) {
-		MemoryContext oldcontext;
-
-		rt_pgraster *pgraster = NULL;
-		rt_raster raster = NULL;
-		rt_band band = NULL;
-
-		ArrayType *array;
-		Oid etype;
-		Datum *e;
-		bool *nulls;
-		int16 typlen;
-		bool typbyval;
-		char typalign;
-		int i = 0;
-		int j = 0;
-		int n = 0;
-
-		uint32_t numBands;
-		uint32_t idx = 1;
-		uint32_t *bandNums = NULL;
-		const char *tmp = NULL;
-
-		POSTGIS_RT_DEBUG(3, "RASTER_bandmetadata: Starting");
-
-		/* 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);
-
-		/* pgraster is null, return null */
-		if (PG_ARGISNULL(0)) {
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-		/* raster */
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (!raster) {
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_bandmetadata: Could not deserialize raster");
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(raster);
-		if (numBands < 1) {
-			elog(NOTICE, "Raster provided has no bands");
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 0);
-			MemoryContextSwitchTo(oldcontext);
-			SRF_RETURN_DONE(funcctx);
-		}
-
-		/* band index */
-		array = PG_GETARG_ARRAYTYPE_P(1);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case INT2OID:
-			case INT4OID:
-				break;
-			default:
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_bandmetadata: Invalid data type for band number(s)");
-				SRF_RETURN_DONE(funcctx);
-				break;
-		}
-
-		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
-			&nulls, &n);
-
-		bandNums = palloc(sizeof(uint32_t) * n);
-		for (i = 0, j = 0; i < n; i++) {
-			if (nulls[i]) continue;
-
-			switch (etype) {
-				case INT2OID:
-					idx = (uint32_t) DatumGetInt16(e[i]);
-					break;
-				case INT4OID:
-					idx = (uint32_t) DatumGetInt32(e[i]);
-					break;
-			}
-
-			POSTGIS_RT_DEBUGF(3, "band idx (before): %d", idx);
-			if (idx > numBands || idx < 1) {
-				elog(NOTICE, "Invalid band index: %d. Indices must be 1-based. Returning NULL", idx);
-				pfree(bandNums);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			bandNums[j] = idx;
-			POSTGIS_RT_DEBUGF(3, "bandNums[%d] = %d", j, bandNums[j]);
-			j++;
-		}
-
-		if (j < 1) {
-			j = numBands;
-			bandNums = repalloc(bandNums, sizeof(uint32_t) * j);
-			for (i = 0; i < j; i++)
-				bandNums[i] = i + 1;
-		}
-		else if (j < n)
-			bandNums = repalloc(bandNums, sizeof(uint32_t) * j);
-
-		bmd = (struct bandmetadata *) palloc(sizeof(struct bandmetadata) * j);
-
-		for (i = 0; i < j; i++) {
-			band = rt_raster_get_band(raster, bandNums[i] - 1);
-			if (NULL == band) {
-				elog(NOTICE, "Could not get raster band at index %d", bandNums[i]);
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				MemoryContextSwitchTo(oldcontext);
-				SRF_RETURN_DONE(funcctx);
-			}
-
-			/* bandnum */
-			bmd[i].bandnum = bandNums[i];
-
-			/* pixeltype */
-			tmp = rt_pixtype_name(rt_band_get_pixtype(band));
-			bmd[i].pixeltype = palloc(sizeof(char) * (strlen(tmp) + 1));
-			strncpy(bmd[i].pixeltype, tmp, strlen(tmp) + 1);
-
-			/* hasnodatavalue */
-			if (rt_band_get_hasnodata_flag(band))
-				bmd[i].hasnodata = TRUE;
-			else
-				bmd[i].hasnodata = FALSE;
-
-			/* nodatavalue */
-			if (bmd[i].hasnodata)
-				rt_band_get_nodata(band, &(bmd[i].nodataval));
-			else
-				bmd[i].nodataval = 0;
-
-			/* path */
-			tmp = rt_band_get_ext_path(band);
-			if (tmp) {
-				bmd[i].bandpath = palloc(sizeof(char) * (strlen(tmp) + 1));
-				strncpy(bmd[i].bandpath, tmp, strlen(tmp) + 1);
-			}
-			else
-				bmd[i].bandpath = NULL;
-
-			/* isoutdb */
-			bmd[i].isoutdb = bmd[i].bandpath ? TRUE : FALSE;
-
-			rt_band_destroy(band);
-		}
-
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-
-		/* Store needed information */
-		funcctx->user_fctx = bmd;
-
-		/* total number of tuples to be returned */
-		funcctx->max_calls = j;
-
-		/* Build a tuple descriptor for our result type */
-		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-			MemoryContextSwitchTo(oldcontext);
-			ereport(ERROR, (
-				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-				errmsg(
-					"function returning record called in context "
-					"that cannot accept type record"
-				)
-			));
-		}
-
-		BlessTupleDesc(tupdesc);
-		funcctx->tuple_desc = tupdesc;
-
-		MemoryContextSwitchTo(oldcontext);
-	}
-
-	/* stuff done on every call of the function */
-	funcctx = SRF_PERCALL_SETUP();
-
-	call_cntr = funcctx->call_cntr;
-	max_calls = funcctx->max_calls;
-	tupdesc = funcctx->tuple_desc;
-	bmd2 = funcctx->user_fctx;
-
-	/* do when there is more left to send */
-	if (call_cntr < max_calls) {
-		int values_length = 5;
-		Datum values[values_length];
-		bool nulls[values_length];
-
-		memset(nulls, FALSE, sizeof(bool) * values_length);
-
-		values[0] = UInt32GetDatum(bmd2[call_cntr].bandnum);
-		values[1] = CStringGetTextDatum(bmd2[call_cntr].pixeltype);
-
-		if (bmd2[call_cntr].hasnodata)
-			values[2] = Float8GetDatum(bmd2[call_cntr].nodataval);
-		else
-			nulls[2] = TRUE;
-
-		values[3] = BoolGetDatum(bmd2[call_cntr].isoutdb);
-		if (bmd2[call_cntr].bandpath && strlen(bmd2[call_cntr].bandpath))
-			values[4] = CStringGetTextDatum(bmd2[call_cntr].bandpath);
-		else
-			nulls[4] = TRUE;
-
-		/* build a tuple */
-		tuple = heap_form_tuple(tupdesc, values, nulls);
-
-		/* make the tuple into a datum */
-		result = HeapTupleGetDatum(tuple);
-
-		/* clean up */
-		pfree(bmd2[call_cntr].pixeltype);
-		if (bmd2[call_cntr].bandpath) pfree(bmd2[call_cntr].bandpath);
-
-		SRF_RETURN_NEXT(funcctx, result);
-	}
-	/* do when there is no more left */
-	else {
-		pfree(bmd2);
-		SRF_RETURN_DONE(funcctx);
-	}
-}
-
-PG_FUNCTION_INFO_V1(RASTER_rasterToWorldCoord);
-Datum RASTER_rasterToWorldCoord(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	int i = 0;
-	int cr[2] = {0};
-	bool skewed[2] = {false, false};
-	double cw[2] = {0};
-
-	TupleDesc tupdesc;
-	int values_length = 2;
-	Datum values[values_length];
-	bool nulls[values_length];
-	HeapTuple tuple;
-	Datum result;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_rasterToWorldCoord: Starting");
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-	/* raster */
-	raster = rt_raster_deserialize(pgraster, TRUE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_rasterToWorldCoord: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* raster skewed? */
-	skewed[0] = FLT_NEQ(rt_raster_get_x_skew(raster), 0) ? true : false;
-	skewed[1] = FLT_NEQ(rt_raster_get_y_skew(raster), 0) ? true : false;
-
-	/* column and row */
-	for (i = 1; i <= 2; i++) {
-		if (PG_ARGISNULL(i)) {
-			/* if skewed on same axis, parameter is required */
-			if (skewed[i - 1]) {
-				elog(NOTICE, "Pixel row and column required for computing longitude and latitude of a rotated raster");
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				PG_RETURN_NULL();
-			}
-
-			continue;
-		}
-
-		cr[i - 1] = PG_GETARG_INT32(i);
-	}
-
-	/* user-provided value is 1-based but needs to be 0-based */
-	if (rt_raster_cell_to_geopoint(
-		raster,
-		(double) cr[0] - 1, (double) cr[1] - 1,
-		&(cw[0]), &(cw[1]),
-		NULL
-	) != ES_NONE) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_rasterToWorldCoord: Could not compute longitude and latitude from pixel row and column");
-		PG_RETURN_NULL();
-	}
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	/* Build a tuple descriptor for our result type */
-	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-		ereport(ERROR, (
-			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-			errmsg(
-				"function returning record called in context "
-				"that cannot accept type record"
-			)
-		));
-	}
-
-	BlessTupleDesc(tupdesc);
-
-	values[0] = Float8GetDatum(cw[0]);
-	values[1] = Float8GetDatum(cw[1]);
-
-	memset(nulls, FALSE, sizeof(bool) * values_length);
-
-	/* build a tuple */
-	tuple = heap_form_tuple(tupdesc, values, nulls);
-
-	/* make the tuple into a datum */
-	result = HeapTupleGetDatum(tuple);
-
-	PG_RETURN_DATUM(result);
-}
-
-PG_FUNCTION_INFO_V1(RASTER_worldToRasterCoord);
-Datum RASTER_worldToRasterCoord(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	int i = 0;
-	double cw[2] = {0};
-	double _cr[2] = {0};
-	int cr[2] = {0};
-	bool skewed = false;
-
-	TupleDesc tupdesc;
-	int values_length = 2;
-	Datum values[values_length];
-	bool nulls[values_length];
-	HeapTuple tuple;
-	Datum result;
-
-	POSTGIS_RT_DEBUG(3, "RASTER_worldToRasterCoord: Starting");
-
-	/* pgraster is null, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
-
-	/* raster */
-	raster = rt_raster_deserialize(pgraster, TRUE);
-	if (!raster) {
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_worldToRasterCoord: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* raster skewed? */
-	skewed = FLT_NEQ(rt_raster_get_x_skew(raster), 0) ? true : false;
-	if (!skewed)
-		skewed = FLT_NEQ(rt_raster_get_y_skew(raster), 0) ? true : false;
-
-	/* longitude and latitude */
-	for (i = 1; i <= 2; i++) {
-		if (PG_ARGISNULL(i)) {
-			/* if skewed, parameter is required */
-			if (skewed) {
-				elog(NOTICE, "Latitude and longitude required for computing pixel row and column of a rotated raster");
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-				PG_RETURN_NULL();
-			}
-
-			continue;
-		}
-
-		cw[i - 1] = PG_GETARG_FLOAT8(i);
-	}
-
-	/* return pixel row and column values are 0-based */
-	if (rt_raster_geopoint_to_cell(
-		raster,
-		cw[0], cw[1],
-		&(_cr[0]), &(_cr[1]),
-		NULL
-	) != ES_NONE) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_worldToRasterCoord: Could not compute pixel row and column from longitude and latitude");
-		PG_RETURN_NULL();
-	}
-	rt_raster_destroy(raster);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	/* force to integer and add one to make 1-based */
-	cr[0] = ((int) _cr[0]) + 1;
-	cr[1] = ((int) _cr[1]) + 1;
-
-	/* Build a tuple descriptor for our result type */
-	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
-		ereport(ERROR, (
-			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-			errmsg(
-				"function returning record called in context "
-				"that cannot accept type record"
-			)
-		));
-	}
-
-	BlessTupleDesc(tupdesc);
-
-	values[0] = Int32GetDatum(cr[0]);
-	values[1] = Int32GetDatum(cr[1]);
-
-	memset(nulls, FALSE, sizeof(bool) * values_length);
-
-	/* build a tuple */
-	tuple = heap_form_tuple(tupdesc, values, nulls);
-
-	/* make the tuple into a datum */
-	result = HeapTupleGetDatum(tuple);
-
-	PG_RETURN_DATUM(result);
-}
-
-/**
- * See if two rasters intersect
- */
-PG_FUNCTION_INFO_V1(RASTER_intersects);
-Datum RASTER_intersects(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-	uint32_t bandindex[2] = {0};
-	uint32_t hasbandindex[2] = {0};
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	uint32_t numBands;
-	int rtn;
-	int result;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_intersects: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(rast[i]);
-		if (numBands < 1) {
-			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
-			if (i > 0) i++;
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-
-		/* band index */
-		if (!PG_ARGISNULL(j)) {
-			bandindex[i] = PG_GETARG_INT32(j);
-			if (bandindex[i] < 1 || bandindex[i] > numBands) {
-				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
-				if (i > 0) i++;
-				for (k = 0; k < i; k++) {
-					rt_raster_destroy(rast[k]);
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				PG_RETURN_NULL();
-			}
-			hasbandindex[i] = 1;
-		}
-		else
-			hasbandindex[i] = 0;
-		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
-		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
-		j++;
-	}
-
-	/* hasbandindex must be balanced */
-	if (
-		(hasbandindex[0] && !hasbandindex[1]) ||
-		(!hasbandindex[0] && hasbandindex[1])
-	) {
-		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* SRID must match */
-	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "The two rasters provided have different SRIDs");
-		PG_RETURN_NULL();
-	}
-
-	rtn = rt_raster_intersects(
-		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
-		&result
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_intersects: Could not test for intersection on the two rasters");
-		PG_RETURN_NULL();
-	}
-
-	PG_RETURN_BOOL(result);
-}
-
-/**
- * See if two rasters overlap
- */
-PG_FUNCTION_INFO_V1(RASTER_overlaps);
-Datum RASTER_overlaps(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-	uint32_t bandindex[2] = {0};
-	uint32_t hasbandindex[2] = {0};
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	uint32_t numBands;
-	int rtn;
-	int result;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_overlaps: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(rast[i]);
-		if (numBands < 1) {
-			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
-			if (i > 0) i++;
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-
-		/* band index */
-		if (!PG_ARGISNULL(j)) {
-			bandindex[i] = PG_GETARG_INT32(j);
-			if (bandindex[i] < 1 || bandindex[i] > numBands) {
-				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
-				if (i > 0) i++;
-				for (k = 0; k < i; k++) {
-					rt_raster_destroy(rast[k]);
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				PG_RETURN_NULL();
-			}
-			hasbandindex[i] = 1;
-		}
-		else
-			hasbandindex[i] = 0;
-		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
-		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
-		j++;
-	}
-
-	/* hasbandindex must be balanced */
-	if (
-		(hasbandindex[0] && !hasbandindex[1]) ||
-		(!hasbandindex[0] && hasbandindex[1])
-	) {
-		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* SRID must match */
-	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "The two rasters provided have different SRIDs");
-		PG_RETURN_NULL();
-	}
-
-	rtn = rt_raster_overlaps(
-		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
-		&result
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_overlaps: Could not test for overlap on the two rasters");
-		PG_RETURN_NULL();
-	}
-
-	PG_RETURN_BOOL(result);
-}
-
-/**
- * See if two rasters touch
- */
-PG_FUNCTION_INFO_V1(RASTER_touches);
-Datum RASTER_touches(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-	uint32_t bandindex[2] = {0};
-	uint32_t hasbandindex[2] = {0};
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	uint32_t numBands;
-	int rtn;
-	int result;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_touches: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(rast[i]);
-		if (numBands < 1) {
-			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
-			if (i > 0) i++;
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-
-		/* band index */
-		if (!PG_ARGISNULL(j)) {
-			bandindex[i] = PG_GETARG_INT32(j);
-			if (bandindex[i] < 1 || bandindex[i] > numBands) {
-				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
-				if (i > 0) i++;
-				for (k = 0; k < i; k++) {
-					rt_raster_destroy(rast[k]);
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				PG_RETURN_NULL();
-			}
-			hasbandindex[i] = 1;
-		}
-		else
-			hasbandindex[i] = 0;
-		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
-		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
-		j++;
-	}
-
-	/* hasbandindex must be balanced */
-	if (
-		(hasbandindex[0] && !hasbandindex[1]) ||
-		(!hasbandindex[0] && hasbandindex[1])
-	) {
-		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* SRID must match */
-	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "The two rasters provided have different SRIDs");
-		PG_RETURN_NULL();
-	}
-
-	rtn = rt_raster_touches(
-		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
-		&result
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_touches: Could not test for touch on the two rasters");
-		PG_RETURN_NULL();
-	}
-
-	PG_RETURN_BOOL(result);
-}
-
-/**
- * See if the first raster contains the second raster
- */
-PG_FUNCTION_INFO_V1(RASTER_contains);
-Datum RASTER_contains(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-	uint32_t bandindex[2] = {0};
-	uint32_t hasbandindex[2] = {0};
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	uint32_t numBands;
-	int rtn;
-	int result;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_contains: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(rast[i]);
-		if (numBands < 1) {
-			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
-			if (i > 0) i++;
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-
-		/* band index */
-		if (!PG_ARGISNULL(j)) {
-			bandindex[i] = PG_GETARG_INT32(j);
-			if (bandindex[i] < 1 || bandindex[i] > numBands) {
-				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
-				if (i > 0) i++;
-				for (k = 0; k < i; k++) {
-					rt_raster_destroy(rast[k]);
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				PG_RETURN_NULL();
-			}
-			hasbandindex[i] = 1;
-		}
-		else
-			hasbandindex[i] = 0;
-		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
-		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
-		j++;
-	}
-
-	/* hasbandindex must be balanced */
-	if (
-		(hasbandindex[0] && !hasbandindex[1]) ||
-		(!hasbandindex[0] && hasbandindex[1])
-	) {
-		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* SRID must match */
-	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "The two rasters provided have different SRIDs");
-		PG_RETURN_NULL();
-	}
-
-	rtn = rt_raster_contains(
-		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
-		&result
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_contains: Could not test that the first raster contains the second raster");
-		PG_RETURN_NULL();
-	}
-
-	PG_RETURN_BOOL(result);
-}
-
-/**
- * See if the first raster contains properly the second raster
- */
-PG_FUNCTION_INFO_V1(RASTER_containsProperly);
-Datum RASTER_containsProperly(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-	uint32_t bandindex[2] = {0};
-	uint32_t hasbandindex[2] = {0};
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	uint32_t numBands;
-	int rtn;
-	int result;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_containsProperly: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(rast[i]);
-		if (numBands < 1) {
-			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
-			if (i > 0) i++;
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-
-		/* band index */
-		if (!PG_ARGISNULL(j)) {
-			bandindex[i] = PG_GETARG_INT32(j);
-			if (bandindex[i] < 1 || bandindex[i] > numBands) {
-				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
-				if (i > 0) i++;
-				for (k = 0; k < i; k++) {
-					rt_raster_destroy(rast[k]);
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				PG_RETURN_NULL();
-			}
-			hasbandindex[i] = 1;
-		}
-		else
-			hasbandindex[i] = 0;
-		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
-		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
-		j++;
-	}
-
-	/* hasbandindex must be balanced */
-	if (
-		(hasbandindex[0] && !hasbandindex[1]) ||
-		(!hasbandindex[0] && hasbandindex[1])
-	) {
-		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* SRID must match */
-	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "The two rasters provided have different SRIDs");
-		PG_RETURN_NULL();
-	}
-
-	rtn = rt_raster_contains_properly(
-		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
-		&result
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_containsProperly: Could not test that the first raster contains properly the second raster");
-		PG_RETURN_NULL();
-	}
-
-	PG_RETURN_BOOL(result);
-}
-
-/**
- * See if the first raster covers the second raster
- */
-PG_FUNCTION_INFO_V1(RASTER_covers);
-Datum RASTER_covers(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-	uint32_t bandindex[2] = {0};
-	uint32_t hasbandindex[2] = {0};
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	uint32_t numBands;
-	int rtn;
-	int result;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_covers: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(rast[i]);
-		if (numBands < 1) {
-			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
-			if (i > 0) i++;
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-
-		/* band index */
-		if (!PG_ARGISNULL(j)) {
-			bandindex[i] = PG_GETARG_INT32(j);
-			if (bandindex[i] < 1 || bandindex[i] > numBands) {
-				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
-				if (i > 0) i++;
-				for (k = 0; k < i; k++) {
-					rt_raster_destroy(rast[k]);
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				PG_RETURN_NULL();
-			}
-			hasbandindex[i] = 1;
-		}
-		else
-			hasbandindex[i] = 0;
-		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
-		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
-		j++;
-	}
-
-	/* hasbandindex must be balanced */
-	if (
-		(hasbandindex[0] && !hasbandindex[1]) ||
-		(!hasbandindex[0] && hasbandindex[1])
-	) {
-		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* SRID must match */
-	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "The two rasters provided have different SRIDs");
-		PG_RETURN_NULL();
-	}
-
-	rtn = rt_raster_covers(
-		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
-		&result
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_covers: Could not test that the first raster covers the second raster");
-		PG_RETURN_NULL();
-	}
-
-	PG_RETURN_BOOL(result);
-}
-
-/**
- * See if the first raster is covered by the second raster
- */
-PG_FUNCTION_INFO_V1(RASTER_coveredby);
-Datum RASTER_coveredby(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-	uint32_t bandindex[2] = {0};
-	uint32_t hasbandindex[2] = {0};
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	uint32_t numBands;
-	int rtn;
-	int result;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_coveredby: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(rast[i]);
-		if (numBands < 1) {
-			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
-			if (i > 0) i++;
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-
-		/* band index */
-		if (!PG_ARGISNULL(j)) {
-			bandindex[i] = PG_GETARG_INT32(j);
-			if (bandindex[i] < 1 || bandindex[i] > numBands) {
-				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
-				if (i > 0) i++;
-				for (k = 0; k < i; k++) {
-					rt_raster_destroy(rast[k]);
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				PG_RETURN_NULL();
-			}
-			hasbandindex[i] = 1;
-		}
-		else
-			hasbandindex[i] = 0;
-		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
-		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
-		j++;
-	}
-
-	/* hasbandindex must be balanced */
-	if (
-		(hasbandindex[0] && !hasbandindex[1]) ||
-		(!hasbandindex[0] && hasbandindex[1])
-	) {
-		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* SRID must match */
-	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "The two rasters provided have different SRIDs");
-		PG_RETURN_NULL();
-	}
-
-	rtn = rt_raster_coveredby(
-		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
-		&result
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_coveredby: Could not test that the first raster is covered by the second raster");
-		PG_RETURN_NULL();
-	}
-
-	PG_RETURN_BOOL(result);
-}
-
-/**
- * See if the two rasters are within the specified distance of each other
- */
-PG_FUNCTION_INFO_V1(RASTER_dwithin);
-Datum RASTER_dwithin(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-	uint32_t bandindex[2] = {0};
-	uint32_t hasbandindex[2] = {0};
-	double distance = 0;
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	uint32_t numBands;
-	int rtn;
-	int result;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_dwithin: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(rast[i]);
-		if (numBands < 1) {
-			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
-			if (i > 0) i++;
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-
-		/* band index */
-		if (!PG_ARGISNULL(j)) {
-			bandindex[i] = PG_GETARG_INT32(j);
-			if (bandindex[i] < 1 || bandindex[i] > numBands) {
-				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
-				if (i > 0) i++;
-				for (k = 0; k < i; k++) {
-					rt_raster_destroy(rast[k]);
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				PG_RETURN_NULL();
-			}
-			hasbandindex[i] = 1;
-		}
-		else
-			hasbandindex[i] = 0;
-		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
-		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
-		j++;
-	}
-
-	/* distance */
-	if (PG_ARGISNULL(4)) {
-		elog(NOTICE, "Distance cannot be NULL.  Returning NULL");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	distance = PG_GETARG_FLOAT8(4);
-	if (distance < 0) {
-		elog(NOTICE, "Distance cannot be less than zero.  Returning NULL");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* hasbandindex must be balanced */
-	if (
-		(hasbandindex[0] && !hasbandindex[1]) ||
-		(!hasbandindex[0] && hasbandindex[1])
-	) {
-		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* SRID must match */
-	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "The two rasters provided have different SRIDs");
-		PG_RETURN_NULL();
-	}
-
-	rtn = rt_raster_within_distance(
-		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
-		distance,
-		&result
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_dwithin: Could not test that the two rasters are within the specified distance of each other");
-		PG_RETURN_NULL();
-	}
-
-	PG_RETURN_BOOL(result);
-}
-
-/**
- * See if the two rasters are fully within the specified distance of each other
- */
-PG_FUNCTION_INFO_V1(RASTER_dfullywithin);
-Datum RASTER_dfullywithin(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-	uint32_t bandindex[2] = {0};
-	uint32_t hasbandindex[2] = {0};
-	double distance = 0;
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	uint32_t numBands;
-	int rtn;
-	int result;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_dfullywithin: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-
-		/* numbands */
-		numBands = rt_raster_get_num_bands(rast[i]);
-		if (numBands < 1) {
-			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
-			if (i > 0) i++;
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-
-		/* band index */
-		if (!PG_ARGISNULL(j)) {
-			bandindex[i] = PG_GETARG_INT32(j);
-			if (bandindex[i] < 1 || bandindex[i] > numBands) {
-				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
-				if (i > 0) i++;
-				for (k = 0; k < i; k++) {
-					rt_raster_destroy(rast[k]);
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				PG_RETURN_NULL();
-			}
-			hasbandindex[i] = 1;
-		}
-		else
-			hasbandindex[i] = 0;
-		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
-		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
-		j++;
-	}
-
-	/* distance */
-	if (PG_ARGISNULL(4)) {
-		elog(NOTICE, "Distance cannot be NULL.  Returning NULL");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	distance = PG_GETARG_FLOAT8(4);
-	if (distance < 0) {
-		elog(NOTICE, "Distance cannot be less than zero.  Returning NULL");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* hasbandindex must be balanced */
-	if (
-		(hasbandindex[0] && !hasbandindex[1]) ||
-		(!hasbandindex[0] && hasbandindex[1])
-	) {
-		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* SRID must match */
-	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
-		for (k = 0; k < set_count; k++) {
-			rt_raster_destroy(rast[k]);
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "The two rasters provided have different SRIDs");
-		PG_RETURN_NULL();
-	}
-
-	rtn = rt_raster_fully_within_distance(
-		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
-		distance,
-		&result
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_dfullywithin: Could not test that the two rasters are fully within the specified distance of each other");
-		PG_RETURN_NULL();
-	}
-
-	PG_RETURN_BOOL(result);
-}
-
-/**
- * See if two rasters are aligned
- */
-PG_FUNCTION_INFO_V1(RASTER_sameAlignment);
-Datum RASTER_sameAlignment(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	int rtn;
-	int aligned = 0;
-	char *reason = NULL;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(j), 0, sizeof(struct rt_raster_serialized_t));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], TRUE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_sameAlignment: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-	}
-
-	rtn = rt_raster_same_alignment(
-		rast[0],
-		rast[1],
-		&aligned,
-		&reason
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_sameAlignment: Could not test for alignment on the two rasters");
-		PG_RETURN_NULL();
-	}
-
-	/* only output reason if not aligned */
-	if (reason != NULL && !aligned)
-		elog(NOTICE, "%s", reason);
-
-	PG_RETURN_BOOL(aligned);
-}
-
-/**
- * Return a reason why two rasters are not aligned
- */
-PG_FUNCTION_INFO_V1(RASTER_notSameAlignmentReason);
-Datum RASTER_notSameAlignmentReason(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_raster rast[2] = {NULL};
-
-	uint32_t i;
-	uint32_t j;
-	uint32_t k;
-	int rtn;
-	int aligned = 0;
-	char *reason = NULL;
-	text *result = NULL;
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		/* pgrast is null, return null */
-		if (PG_ARGISNULL(j)) {
-			for (k = 0; k < i; k++) {
-				rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			PG_RETURN_NULL();
-		}
-		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(j), 0, sizeof(struct rt_raster_serialized_t));
-		pgrastpos[i] = j;
-		j++;
-
-		/* raster */
-		rast[i] = rt_raster_deserialize(pgrast[i], TRUE);
-		if (!rast[i]) {
-			for (k = 0; k <= i; k++) {
-				if (k < i)
-					rt_raster_destroy(rast[k]);
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_notSameAlignmentReason: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-			PG_RETURN_NULL();
-		}
-	}
-
-	rtn = rt_raster_same_alignment(
-		rast[0],
-		rast[1],
-		&aligned,
-		&reason
-	);
-	for (k = 0; k < set_count; k++) {
-		rt_raster_destroy(rast[k]);
-		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	if (rtn != ES_NONE) {
-		elog(ERROR, "RASTER_notSameAlignmentReason: Could not test for alignment on the two rasters");
-		PG_RETURN_NULL();
-	}
-
-	result = cstring2text(reason);
-	PG_RETURN_TEXT_P(result);
-}
-
-/**
- * Two raster MapAlgebra
- */
-PG_FUNCTION_INFO_V1(RASTER_mapAlgebra2);
-Datum RASTER_mapAlgebra2(PG_FUNCTION_ARGS)
-{
-	const int set_count = 2;
-	rt_pgraster *pgrast[2];
-	int pgrastpos[2] = {-1, -1};
-	rt_pgraster *pgrtn;
-	rt_raster rast[2] = {NULL};
-	int _isempty[2] = {0};
-	uint32_t bandindex[2] = {0};
-	rt_raster _rast[2] = {NULL};
-	rt_band _band[2] = {NULL};
-	int _hasnodata[2] = {0};
-	double _nodataval[2] = {0};
-	double _offset[4] = {0.};
-	double _rastoffset[2][4] = {{0.}};
-	int _haspixel[2] = {0};
-	double _pixel[2] = {0};
-	int _pos[2][2] = {{0}};
-	uint16_t _dim[2][2] = {{0}};
-
-	char *pixtypename = NULL;
-	rt_pixtype pixtype = PT_END;
-	char *extenttypename = NULL;
-	rt_extenttype extenttype = ET_INTERSECTION;
-
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	uint16_t dim[2] = {0};
-	int haspixel = 0;
-	double pixel = 0.;
-	double nodataval = 0;
-	double gt[6] = {0.};
-
-	Oid calltype = InvalidOid;
-
-	const int spi_count = 3;
-	uint16_t spi_exprpos[3] = {4, 7, 8};
-	uint32_t spi_argcount[3] = {0};
-	char *expr = NULL;
-	char *sql = NULL;
-	SPIPlanPtr spi_plan[3] = {NULL};
-	uint16_t spi_empty = 0;
-	Oid *argtype = NULL;
-	const int argkwcount = 8;
-	uint8_t argpos[3][8] = {{0}};
-	char *argkw[] = {"[rast1.x]", "[rast1.y]", "[rast1.val]", "[rast1]", "[rast2.x]", "[rast2.y]", "[rast2.val]", "[rast2]"};
-	Datum values[argkwcount];
-	bool nulls[argkwcount];
-	TupleDesc tupdesc;
-	SPITupleTable *tuptable = NULL;
-	HeapTuple tuple;
-	Datum datum;
-	bool isnull = FALSE;
-	int hasargval[3] = {0};
-	double argval[3] = {0.};
-	int hasnodatanodataval = 0;
-	double nodatanodataval = 0;
-	int isnodata = 0;
-
-	Oid ufc_noid = InvalidOid;
-	FmgrInfo ufl_info;
-	FunctionCallInfoData ufc_info;
-	int ufc_nullcount = 0;
-
-	int idx = 0;
-	uint32_t i = 0;
-	uint32_t j = 0;
-	uint32_t k = 0;
-	uint32_t x = 0;
-	uint32_t y = 0;
-	int _x = 0;
-	int _y = 0;
-	int err;
-	int aligned = 0;
-	int len = 0;
-
-	POSTGIS_RT_DEBUG(3, "Starting RASTER_mapAlgebra2");
-
-	for (i = 0, j = 0; i < set_count; i++) {
-		if (!PG_ARGISNULL(j)) {
-			pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
-			pgrastpos[i] = j;
-			j++;
-
-			/* raster */
-			rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
-			if (!rast[i]) {
-				for (k = 0; k <= i; k++) {
-					if (k < i && rast[k] != NULL)
-						rt_raster_destroy(rast[k]);
-					if (pgrastpos[k] != -1)
-						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				elog(ERROR, "RASTER_mapAlgebra2: Could not deserialize the %s raster", i < 1 ? "first" : "second");
-				PG_RETURN_NULL();
-			}
-
-			/* empty */
-			_isempty[i] = rt_raster_is_empty(rast[i]);
-
-			/* band index */
-			if (!PG_ARGISNULL(j)) {
-				bandindex[i] = PG_GETARG_INT32(j);
-			}
-			j++;
-		}
-		else {
-			_isempty[i] = 1;
-			j += 2;
-		}
-
-		POSTGIS_RT_DEBUGF(3, "_isempty[%d] = %d", i, _isempty[i]);
-	}
-
-	/* both rasters are NULL */
-	if (rast[0] == NULL && rast[1] == NULL) {
-		elog(NOTICE, "The two rasters provided are NULL.  Returning NULL");
-		for (k = 0; k < set_count; k++) {
-			if (pgrastpos[k] != -1)
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* both rasters are empty */
-	if (_isempty[0] && _isempty[1]) {
-		elog(NOTICE, "The two rasters provided are empty.  Returning empty raster");
-
-		raster = rt_raster_new(0, 0);
-		if (raster == NULL) {
-			for (k = 0; k < set_count; k++) {
-				if (rast[k] != NULL)
-					rt_raster_destroy(rast[k]);
-				if (pgrastpos[k] != -1)
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_mapAlgebra2: Could not create empty raster");
-			PG_RETURN_NULL();
-		}
-		rt_raster_set_scale(raster, 0, 0);
-
-		pgrtn = rt_raster_serialize(raster);
-		rt_raster_destroy(raster);
-		if (!pgrtn)
-			PG_RETURN_NULL();
-
-		SET_VARSIZE(pgrtn, pgrtn->size);
-		PG_RETURN_POINTER(pgrtn);
-	}
-
-	/* replace the empty or NULL raster with one matching the other */
-	if (
-		(rast[0] == NULL || _isempty[0]) ||
-		(rast[1] == NULL || _isempty[1])
-	) {
-		/* first raster is empty */
-		if (rast[0] == NULL || _isempty[0]) {
-			i = 0;
-			j = 1;
-		}
-		/* second raster is empty */
-		else {
-			i = 1;
-			j = 0;
-		}
-
-		_rast[j] = rast[j];
-
-		/* raster is empty, destroy it */
-		if (_rast[i] != NULL)
-			rt_raster_destroy(_rast[i]);
-
-		_dim[i][0] = rt_raster_get_width(_rast[j]);
-		_dim[i][1] = rt_raster_get_height(_rast[j]);
-		_dim[j][0] = rt_raster_get_width(_rast[j]);
-		_dim[j][1] = rt_raster_get_height(_rast[j]);
-
-		_rast[i] = rt_raster_new(
-			_dim[j][0],
-			_dim[j][1]
-		);
-		if (_rast[i] == NULL) {
-			rt_raster_destroy(_rast[j]);
-			for (k = 0; k < set_count; k++)	{
-				if (pgrastpos[k] != -1)
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_mapAlgebra2: Could not create NODATA raster");
-			PG_RETURN_NULL();
-		}
-		rt_raster_set_srid(_rast[i], rt_raster_get_srid(_rast[j]));
-
-		rt_raster_get_geotransform_matrix(_rast[j], gt);
-		rt_raster_set_geotransform_matrix(_rast[i], gt);
-	}
-	else {
-		_rast[0] = rast[0];
-		_dim[0][0] = rt_raster_get_width(_rast[0]);
-		_dim[0][1] = rt_raster_get_height(_rast[0]);
-
-		_rast[1] = rast[1];
-		_dim[1][0] = rt_raster_get_width(_rast[1]);
-		_dim[1][1] = rt_raster_get_height(_rast[1]);
-	}
-
-	/* SRID must match */
-	/*
-	if (rt_raster_get_srid(_rast[0]) != rt_raster_get_srid(_rast[1])) {
-		elog(NOTICE, "The two rasters provided have different SRIDs.  Returning NULL");
-		for (k = 0; k < set_count; k++) {
-			if (_rast[k] != NULL)
-				rt_raster_destroy(_rast[k]);
-			if (pgrastpos[k] != -1)
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-	*/
-
-	/* same alignment */
-	if (rt_raster_same_alignment(_rast[0], _rast[1], &aligned, NULL) != ES_NONE) {
-		for (k = 0; k < set_count; k++) {
-			if (_rast[k] != NULL)
-				rt_raster_destroy(_rast[k]);
-			if (pgrastpos[k] != -1)
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "RASTER_mapAlgebra2: Could not test for alignment on the two rasters");
-		PG_RETURN_NULL();
-	}
-	if (!aligned) {
-		elog(NOTICE, "The two rasters provided do not have the same alignment.  Returning NULL");
-		for (k = 0; k < set_count; k++) {
-			if (_rast[k] != NULL)
-				rt_raster_destroy(_rast[k]);
-			if (pgrastpos[k] != -1)
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		PG_RETURN_NULL();
-	}
-
-	/* pixel type */
-	if (!PG_ARGISNULL(5)) {
-		pixtypename = text_to_cstring(PG_GETARG_TEXT_P(5));
-		/* Get the pixel type index */
-		pixtype = rt_pixtype_index_from_name(pixtypename);
-		if (pixtype == PT_END ) {
-			for (k = 0; k < set_count; k++) {
-				if (_rast[k] != NULL)
-					rt_raster_destroy(_rast[k]);
-				if (pgrastpos[k] != -1)
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_mapAlgebra2: Invalid pixel type: %s", pixtypename);
-			PG_RETURN_NULL();
-		}
-	}
-
-	/* extent type */
-	if (!PG_ARGISNULL(6)) {
-		extenttypename = rtpg_strtoupper(rtpg_trim(text_to_cstring(PG_GETARG_TEXT_P(6))));
-		extenttype = rt_util_extent_type(extenttypename);
-	}
-	POSTGIS_RT_DEBUGF(3, "extenttype: %d %s", extenttype, extenttypename);
-
-	/* computed raster from extent type */
-	err = rt_raster_from_two_rasters(
-		_rast[0], _rast[1],
-		extenttype,
-		&raster, _offset
-	);
-	if (err != ES_NONE) {
-		for (k = 0; k < set_count; k++) {
-			if (_rast[k] != NULL)
-				rt_raster_destroy(_rast[k]);
-			if (pgrastpos[k] != -1)
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		elog(ERROR, "RASTER_mapAlgebra2: Could not get output raster of correct extent");
-		PG_RETURN_NULL();
-	}
-
-	/* copy offsets */
-	_rastoffset[0][0] = _offset[0];
-	_rastoffset[0][1] = _offset[1];
-	_rastoffset[1][0] = _offset[2];
-	_rastoffset[1][1] = _offset[3];
-
-	/* get output raster dimensions */
-	dim[0] = rt_raster_get_width(raster);
-	dim[1] = rt_raster_get_height(raster);
-
-	i = 2;
-	/* handle special cases for extent */
-	switch (extenttype) {
-		case ET_FIRST:
-			i = 0;
-		case ET_SECOND:
-			if (i > 1)
-				i = 1;
-
-			if (
-				_isempty[i] && (
-					(extenttype == ET_FIRST && i == 0) ||
-					(extenttype == ET_SECOND && i == 1)
-				)
-			) {
-				elog(NOTICE, "The %s raster is NULL.  Returning NULL", (i != 1 ? "FIRST" : "SECOND"));
-				for (k = 0; k < set_count; k++) {
-					if (_rast[k] != NULL)
-						rt_raster_destroy(_rast[k]);
-					if (pgrastpos[k] != -1)
-						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				rt_raster_destroy(raster);
-				PG_RETURN_NULL();
-			}
-
-			/* specified band not found */
-			if (!rt_raster_has_band(_rast[i], bandindex[i] - 1)) {
-				elog(NOTICE, "The %s raster does not have the band at index %d.  Returning no band raster of correct extent",
-					(i != 1 ? "FIRST" : "SECOND"), bandindex[i]
-				);
-
-				for (k = 0; k < set_count; k++) {
-					if (_rast[k] != NULL)
-						rt_raster_destroy(_rast[k]);
-					if (pgrastpos[k] != -1)
-						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-
-				pgrtn = rt_raster_serialize(raster);
-				rt_raster_destroy(raster);
-				if (!pgrtn) PG_RETURN_NULL();
-
-				SET_VARSIZE(pgrtn, pgrtn->size);
-				PG_RETURN_POINTER(pgrtn);
-			}
-			break;
-		case ET_UNION:
-			break;
-		case ET_INTERSECTION:
-			/* no intersection */
-			if (
-				_isempty[0] || _isempty[1] ||
-				!dim[0] || !dim[1]
-			) {
-				elog(NOTICE, "The two rasters provided have no intersection.  Returning no band raster");
-
-				/* raster has dimension, replace with no band raster */
-				if (dim[0] || dim[1]) {
-					rt_raster_destroy(raster);
-
-					raster = rt_raster_new(0, 0);
-					if (raster == NULL) {
-						for (k = 0; k < set_count; k++) {
-							if (_rast[k] != NULL)
-								rt_raster_destroy(_rast[k]);
-							if (pgrastpos[k] != -1)
-								PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-						}
-						elog(ERROR, "RASTER_mapAlgebra2: Could not create no band raster");
-						PG_RETURN_NULL();
-					}
-
-					rt_raster_set_scale(raster, 0, 0);
-					rt_raster_set_srid(raster, rt_raster_get_srid(_rast[0]));
-				}
-
-				for (k = 0; k < set_count; k++) {
-					if (_rast[k] != NULL)
-						rt_raster_destroy(_rast[k]);
-					if (pgrastpos[k] != -1)
-						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-
-				pgrtn = rt_raster_serialize(raster);
-				rt_raster_destroy(raster);
-				if (!pgrtn) PG_RETURN_NULL();
-
-				SET_VARSIZE(pgrtn, pgrtn->size);
-				PG_RETURN_POINTER(pgrtn);
-			}
-			break;
-		case ET_LAST:
-		case ET_CUSTOM:
-			for (k = 0; k < set_count; k++) {
-				if (_rast[k] != NULL)
-					rt_raster_destroy(_rast[k]);
-				if (pgrastpos[k] != -1)
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			elog(ERROR, "RASTER_mapAlgebra2: ET_LAST and ET_CUSTOM are not implemented");
-			PG_RETURN_NULL();
-			break;
-	}
-
-	/* both rasters do not have specified bands */
-	if (
-		(!_isempty[0] && !rt_raster_has_band(_rast[0], bandindex[0] - 1)) &&
-		(!_isempty[1] && !rt_raster_has_band(_rast[1], bandindex[1] - 1))
-	) {
-		elog(NOTICE, "The two rasters provided do not have the respectively specified band indices.  Returning no band raster of correct extent");
-
-		for (k = 0; k < set_count; k++) {
-			if (_rast[k] != NULL)
-				rt_raster_destroy(_rast[k]);
-			if (pgrastpos[k] != -1)
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-
-		pgrtn = rt_raster_serialize(raster);
-		rt_raster_destroy(raster);
-		if (!pgrtn) PG_RETURN_NULL();
-
-		SET_VARSIZE(pgrtn, pgrtn->size);
-		PG_RETURN_POINTER(pgrtn);
-	}
-
-	/* get bands */
-	for (i = 0; i < set_count; i++) {
-		if (_isempty[i] || !rt_raster_has_band(_rast[i], bandindex[i] - 1)) {
-			_hasnodata[i] = 1;
-			_nodataval[i] = 0;
-
-			continue;
-		}
-
-		_band[i] = rt_raster_get_band(_rast[i], bandindex[i] - 1);
-		if (_band[i] == NULL) {
-			for (k = 0; k < set_count; k++) {
-				if (_rast[k] != NULL)
-					rt_raster_destroy(_rast[k]);
-				if (pgrastpos[k] != -1)
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			rt_raster_destroy(raster);
-			elog(ERROR, "RASTER_mapAlgebra2: Could not get band %d of the %s raster",
-				bandindex[i],
-				(i < 1 ? "FIRST" : "SECOND")
-			);
-			PG_RETURN_NULL();
-		}
-
-		_hasnodata[i] = rt_band_get_hasnodata_flag(_band[i]);
-		if (_hasnodata[i])
-			rt_band_get_nodata(_band[i], &(_nodataval[i]));
-	}
-
-	/* pixtype is PT_END, get pixtype based upon extent */
-	if (pixtype == PT_END) {
-		if ((extenttype == ET_SECOND && !_isempty[1]) || _isempty[0])
-			pixtype = rt_band_get_pixtype(_band[1]);
-		else
-			pixtype = rt_band_get_pixtype(_band[0]);
-	}
-
-	/* nodata value for new band */
-	if (extenttype == ET_SECOND && !_isempty[1] && _hasnodata[1]) {
-		nodataval = _nodataval[1];
-	}
-	else if (!_isempty[0] && _hasnodata[0]) {
-		nodataval = _nodataval[0];
-	}
-	else if (!_isempty[1] && _hasnodata[1]) {
-		nodataval = _nodataval[1];
-	}
-	else {
-		elog(NOTICE, "Neither raster provided has a NODATA value for the specified band indices.  NODATA value set to minimum possible for %s", rt_pixtype_name(pixtype));
-		nodataval = rt_pixtype_get_min_value(pixtype);
-	}
-
-	/* add band to output raster */
-	if (rt_raster_generate_new_band(
-		raster,
-		pixtype,
-		nodataval,
-		1, nodataval,
-		0
-	) < 0) {
-		for (k = 0; k < set_count; k++) {
-			if (_rast[k] != NULL)
-				rt_raster_destroy(_rast[k]);
-			if (pgrastpos[k] != -1)
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		rt_raster_destroy(raster);
-		elog(ERROR, "RASTER_mapAlgebra2: Could not add new band to output raster");
-		PG_RETURN_NULL();
-	}
-
-	/* get output band */
-	band = rt_raster_get_band(raster, 0);
-	if (band == NULL) {
-		for (k = 0; k < set_count; k++) {
-			if (_rast[k] != NULL)
-				rt_raster_destroy(_rast[k]);
-			if (pgrastpos[k] != -1)
-				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-		}
-		rt_raster_destroy(raster);
-		elog(ERROR, "RASTER_mapAlgebra2: Could not get newly added band of output raster");
-		PG_RETURN_NULL();
-	}
-
-	POSTGIS_RT_DEBUGF(4, "offsets = (%d, %d, %d, %d)",
-		(int) _rastoffset[0][0],
-		(int) _rastoffset[0][1],
-		(int) _rastoffset[1][0],
-		(int) _rastoffset[1][1]
-	);
-
-	POSTGIS_RT_DEBUGF(4, "metadata = (%f, %f, %d, %d, %f, %f, %f, %f, %d)",
-		rt_raster_get_x_offset(raster),
-		rt_raster_get_y_offset(raster),
-		rt_raster_get_width(raster),
-		rt_raster_get_height(raster),
-		rt_raster_get_x_scale(raster),
-		rt_raster_get_y_scale(raster),
-		rt_raster_get_x_skew(raster),
-		rt_raster_get_y_skew(raster),
-		rt_raster_get_srid(raster)
-	);
-
-	/*
-		determine who called this function
-		Arg 4 will either be text or regprocedure
-	*/
-	POSTGIS_RT_DEBUG(3, "checking parameter type for arg 4");
-	calltype = get_fn_expr_argtype(fcinfo->flinfo, 4);
-
-	switch(calltype) {
-		case TEXTOID: {
-			POSTGIS_RT_DEBUG(3, "arg 4 is \"expression\"!");
-
-			/* connect SPI */
-			if (SPI_connect() != SPI_OK_CONNECT) {
-				for (k = 0; k < set_count; k++) {
-					if (_rast[k] != NULL)
-						rt_raster_destroy(_rast[k]);
-					if (pgrastpos[k] != -1)
-						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-				}
-				rt_raster_destroy(raster);
-				elog(ERROR, "RASTER_mapAlgebra2: Could not connect to the SPI manager");
-				PG_RETURN_NULL();
-			}
-
-			/* reset hasargval */
-			memset(hasargval, 0, sizeof(int) * spi_count);
-
-			/*
-				process expressions
-
-				spi_exprpos elements are:
-					4 - expression => spi_plan[0]
-					7 - nodata1expr => spi_plan[1]
-					8 - nodata2expr => spi_plan[2]
-			*/
-			for (i = 0; i < spi_count; i++) {
-				if (!PG_ARGISNULL(spi_exprpos[i])) {
-					char *tmp = NULL;
-					char place[5] = "$1";
-					expr = text_to_cstring(PG_GETARG_TEXT_P(spi_exprpos[i]));
-					POSTGIS_RT_DEBUGF(3, "raw expr #%d: %s", i, expr);
-
-					for (j = 0, k = 1; j < argkwcount; j++) {
-						/* attempt to replace keyword with placeholder */
-						len = 0;
-						tmp = rtpg_strreplace(expr, argkw[j], place, &len);
-						pfree(expr);
-						expr = tmp;
-
-						if (len) {
-							spi_argcount[i]++;
-							argpos[i][j] = k++;
-
-							sprintf(place, "$%d", k);
-						}
-						else
-							argpos[i][j] = 0;
-					}
-
-					len = strlen("SELECT (") + strlen(expr) + strlen(")::double precision");
-					sql = (char *) palloc(len + 1);
-					if (sql == NULL) {
-
-						for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
-						SPI_finish();
-
-						for (k = 0; k < set_count; k++) {
-							if (_rast[k] != NULL)
-								rt_raster_destroy(_rast[k]);
-							if (pgrastpos[k] != -1)
-								PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-						}
-						rt_raster_destroy(raster);
-
-						elog(ERROR, "RASTER_mapAlgebra2: Could not allocate memory for expression parameter %d", spi_exprpos[i]);
-						PG_RETURN_NULL();
-					}
-
-					strncpy(sql, "SELECT (", strlen("SELECT ("));
-					strncpy(sql + strlen("SELECT ("), expr, strlen(expr));
-					strncpy(sql + strlen("SELECT (") + strlen(expr), ")::double precision", strlen(")::double precision"));
-					sql[len] = '\0';
-
-					POSTGIS_RT_DEBUGF(3, "sql #%d: %s", i, sql);
-
-					/* create prepared plan */
-					if (spi_argcount[i]) {
-						argtype = (Oid *) palloc(spi_argcount[i] * sizeof(Oid));
-						if (argtype == NULL) {
-
-							pfree(sql);
-							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
-							SPI_finish();
-
-							for (k = 0; k < set_count; k++) {
-								if (_rast[k] != NULL)
-									rt_raster_destroy(_rast[k]);
-								if (pgrastpos[k] != -1)
-									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-							}
-							rt_raster_destroy(raster);
-
-							elog(ERROR, "RASTER_mapAlgebra2: Could not allocate memory for prepared plan argtypes of expression parameter %d", spi_exprpos[i]);
-							PG_RETURN_NULL();
-						}
-
-						/* specify datatypes of parameters */
-						for (j = 0, k = 0; j < argkwcount; j++) {
-							if (argpos[i][j] < 1) continue;
-
-							/* positions are INT4 */
-							if (
-								(strstr(argkw[j], "[rast1.x]") != NULL) ||
-								(strstr(argkw[j], "[rast1.y]") != NULL) ||
-								(strstr(argkw[j], "[rast2.x]") != NULL) ||
-								(strstr(argkw[j], "[rast2.y]") != NULL)
-							) {
-								argtype[k] = INT4OID;
-							}
-							/* everything else is FLOAT8 */
-							else {
-								argtype[k] = FLOAT8OID;
-							}
-
-							k++;
-						}
-
-						spi_plan[i] = SPI_prepare(sql, spi_argcount[i], argtype);
-						pfree(argtype);
-
-						if (spi_plan[i] == NULL) {
-
-							pfree(sql);
-							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
-							SPI_finish();
-
-							for (k = 0; k < set_count; k++) {
-								if (_rast[k] != NULL)
-									rt_raster_destroy(_rast[k]);
-								if (pgrastpos[k] != -1)
-									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-							}
-							rt_raster_destroy(raster);
-
-							elog(ERROR, "RASTER_mapAlgebra2: Could not create prepared plan of expression parameter %d", spi_exprpos[i]);
-							PG_RETURN_NULL();
-						}
-					}
-					/* no args, just execute query */
-					else {
-						err = SPI_execute(sql, TRUE, 0);
-						if (err != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
-
-							pfree(sql);
-							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
-							SPI_finish();
-
-							for (k = 0; k < set_count; k++) {
-								if (_rast[k] != NULL)
-									rt_raster_destroy(_rast[k]);
-								if (pgrastpos[k] != -1)
-									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-							}
-							rt_raster_destroy(raster);
-
-							elog(ERROR, "RASTER_mapAlgebra2: Could not evaluate expression parameter %d", spi_exprpos[i]);
-							PG_RETURN_NULL();
-						}
-
-						/* get output of prepared plan */
-						tupdesc = SPI_tuptable->tupdesc;
-						tuptable = SPI_tuptable;
-						tuple = tuptable->vals[0];
-
-						datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
-						if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
-
-							pfree(sql);
-							if (SPI_tuptable) SPI_freetuptable(tuptable);
-							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
-							SPI_finish();
-
-							for (k = 0; k < set_count; k++) {
-								if (_rast[k] != NULL)
-									rt_raster_destroy(_rast[k]);
-								if (pgrastpos[k] != -1)
-									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-							}
-							rt_raster_destroy(raster);
-
-							elog(ERROR, "RASTER_mapAlgebra2: Could not get result of expression parameter %d", spi_exprpos[i]);
-							PG_RETURN_NULL();
-						}
-
-						if (!isnull) {
-							hasargval[i] = 1;
-							argval[i] = DatumGetFloat8(datum);
-						}
-
-						if (SPI_tuptable) SPI_freetuptable(tuptable);
-					}
-
-					pfree(sql);
-				}
-				else
-					spi_empty++;
-			}
-
-			/* nodatanodataval */
-			if (!PG_ARGISNULL(9)) {
-				hasnodatanodataval = 1;
-				nodatanodataval = PG_GETARG_FLOAT8(9);
-			}
-			else
-				hasnodatanodataval = 0;
-			break;
-		}
-		case REGPROCEDUREOID: {
-			POSTGIS_RT_DEBUG(3, "arg 4 is \"userfunction\"!");
-			if (!PG_ARGISNULL(4)) {
-
-				ufc_nullcount = 0;
-				ufc_noid = PG_GETARG_OID(4);
-
-				/* get function info */
-				fmgr_info(ufc_noid, &ufl_info);
-
-				/* function cannot return set */
-				err = 0;
-				if (ufl_info.fn_retset) {
-					err = 1;
-				}
-				/* function should have correct # of args */
-				else if (ufl_info.fn_nargs < 3 || ufl_info.fn_nargs > 4) {
-					err = 2;
-				}
-
-				/*
-					TODO: consider adding checks of the userfunction parameters
-						should be able to use get_fn_expr_argtype() of fmgr.c
-				*/
-
-				if (err > 0) {
-					for (k = 0; k < set_count; k++) {
-						if (_rast[k] != NULL)
-							rt_raster_destroy(_rast[k]);
-						if (pgrastpos[k] != -1)
-							PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-					}
-					rt_raster_destroy(raster);
-
-					if (err > 1)
-						elog(ERROR, "RASTER_mapAlgebra2: Function provided must have three or four input parameters");
-					else
-						elog(ERROR, "RASTER_mapAlgebra2: Function provided must return double precision not resultset");
-					PG_RETURN_NULL();
-				}
-
-				if (func_volatile(ufc_noid) == 'v') {
-					elog(NOTICE, "Function provided is VOLATILE. Unless required and for best performance, function should be IMMUTABLE or STABLE");
-				}
-
-				/* prep function call data */
-#if POSTGIS_PGSQL_VERSION <= 90
-				InitFunctionCallInfoData(ufc_info, &ufl_info, ufl_info.fn_nargs, InvalidOid, NULL);
-#else
-				InitFunctionCallInfoData(ufc_info, &ufl_info, ufl_info.fn_nargs, InvalidOid, NULL, NULL);
-#endif
-				memset(ufc_info.argnull, FALSE, sizeof(bool) * ufl_info.fn_nargs);
-
-				if (ufl_info.fn_nargs != 4)
-					k = 2;
-				else
-					k = 3;
-				if (!PG_ARGISNULL(7)) {
-					ufc_info.arg[k] = PG_GETARG_DATUM(7);
-				}
-				else {
-				 ufc_info.arg[k] = (Datum) NULL;
-				 ufc_info.argnull[k] = TRUE;
-				 ufc_nullcount++;
-				}
-			}
-			break;
-		}
-		default:
-			for (k = 0; k < set_count; k++) {
-				if (_rast[k] != NULL)
-					rt_raster_destroy(_rast[k]);
-				if (pgrastpos[k] != -1)
-					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-			}
-			rt_raster_destroy(raster);
-			elog(ERROR, "RASTER_mapAlgebra2: Invalid data type for expression or userfunction");
-			PG_RETURN_NULL();
-			break;
-	}
-
-	/* loop over pixels */
-	/* if any expression present, run */
-	if ((
-		(calltype == TEXTOID) && (
-			(spi_empty != spi_count) || hasnodatanodataval
-		)
-	) || (
-		(calltype == REGPROCEDUREOID) && (ufc_noid != InvalidOid)
-	)) {
-		for (x = 0; x < dim[0]; x++) {
-			for (y = 0; y < dim[1]; y++) {
-
-				/* get pixel from each raster */
-				for (i = 0; i < set_count; i++) {
-					_haspixel[i] = 0;
-					_pixel[i] = 0;
-
-					/* row/column */
-					_x = x - (int) _rastoffset[i][0];
-					_y = y - (int) _rastoffset[i][1];
-
-					/* store _x and _y in 1-based */
-					_pos[i][0] = _x + 1;
-					_pos[i][1] = _y + 1;
-
-					/* get pixel value */
-					if (_band[i] == NULL) {
-						if (!_hasnodata[i]) {
-							_haspixel[i] = 1;
-							_pixel[i] = _nodataval[i];
-						}
-					}
-					else if (
-						!_isempty[i] &&
-						(_x >= 0 && _x < _dim[i][0]) &&
-						(_y >= 0 && _y < _dim[i][1])
-					) {
-						err = rt_band_get_pixel(_band[i], _x, _y, &(_pixel[i]), &isnodata);
-						if (err != ES_NONE) {
-
-							if (calltype == TEXTOID) {
-								for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
-								SPI_finish();
-							}
-
-							for (k = 0; k < set_count; k++) {
-								if (_rast[k] != NULL)
-									rt_raster_destroy(_rast[k]);
-								if (pgrastpos[k] != -1)
-									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-							}
-							rt_raster_destroy(raster);
-
-							elog(ERROR, "RASTER_mapAlgebra2: Could not get pixel of %s raster", (i < 1 ? "FIRST" : "SECOND"));
-							PG_RETURN_NULL();
-						}
-
-						if (!_hasnodata[i] || !isnodata)
-							_haspixel[i] = 1;
-					}
-
-					POSTGIS_RT_DEBUGF(5, "pixel r%d(%d, %d) = %d, %f",
-						i,
-						_x, _y,
-						_haspixel[i],
-						_pixel[i]
-					);
-				}
-
-				haspixel = 0;
-
-				switch (calltype) {
-					case TEXTOID: {
-						/* which prepared plan to use? */
-						/* !pixel0 && !pixel1 */
-						/* use nodatanodataval */
-						if (!_haspixel[0] && !_haspixel[1])
-							i = 3;
-						/* pixel0 && !pixel1 */
-						/* run spi_plan[2] (nodata2expr) */
-						else if (_haspixel[0] && !_haspixel[1])
-							i = 2;
-						/* !pixel0 && pixel1 */
-						/* run spi_plan[1] (nodata1expr) */
-						else if (!_haspixel[0] && _haspixel[1])
-							i = 1;
-						/* pixel0 && pixel1 */
-						/* run spi_plan[0] (expression) */
-						else
-							i = 0;
-
-						/* process values */
-						if (i == 3) {
-							if (hasnodatanodataval) {
-								haspixel = 1;
-								pixel = nodatanodataval;
-							}
-						}
-						/* has an evaluated value */
-						else if (hasargval[i]) {
-							haspixel = 1;
-							pixel = argval[i];
-						}
-						/* prepared plan exists */
-						else if (spi_plan[i] != NULL) {
-							POSTGIS_RT_DEBUGF(4, "Using prepared plan: %d", i);
-
-							/* expression has argument(s) */
-							if (spi_argcount[i]) {
-								/* reset values to (Datum) NULL */
-								memset(values, (Datum) NULL, sizeof(Datum) * argkwcount);
-								/* reset nulls to FALSE */
-								memset(nulls, FALSE, sizeof(bool) * argkwcount);
-
-								/* set values and nulls */
-								for (j = 0; j < argkwcount; j++) {
-									idx = argpos[i][j];
-									if (idx < 1) continue;
-									idx--; /* 1-based becomes 0-based */
-
-									if (strstr(argkw[j], "[rast1.x]") != NULL) {
-										values[idx] = _pos[0][0];
-									}
-									else if (strstr(argkw[j], "[rast1.y]") != NULL) {
-										values[idx] = _pos[0][1];
-									}
-									else if (
-										(strstr(argkw[j], "[rast1.val]") != NULL) ||
-										(strstr(argkw[j], "[rast1]") != NULL)
-									) {
-										if (_isempty[0] || !_haspixel[0])
-											nulls[idx] = TRUE;
-										else
-											values[idx] = Float8GetDatum(_pixel[0]);
-									}
-									else if (strstr(argkw[j], "[rast2.x]") != NULL) {
-										values[idx] = _pos[1][0];
-									}
-									else if (strstr(argkw[j], "[rast2.y]") != NULL) {
-										values[idx] = _pos[1][1];
-									}
-									else if (
-										(strstr(argkw[j], "[rast2.val]") != NULL) ||
-										(strstr(argkw[j], "[rast2]") != NULL)
-									) {
-										if (_isempty[1] || !_haspixel[1])
-											nulls[idx] = TRUE;
-										else
-											values[idx] = Float8GetDatum(_pixel[1]);
-									}
-								}
-							}
-
-							/* run prepared plan */
-							err = SPI_execute_plan(spi_plan[i], values, nulls, TRUE, 1);
-							if (err != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
-
-								for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
-								SPI_finish();
-
-								for (k = 0; k < set_count; k++) {
-									if (_rast[k] != NULL)
-										rt_raster_destroy(_rast[k]);
-									if (pgrastpos[k] != -1)
-										PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-								}
-								rt_raster_destroy(raster);
-
-								elog(ERROR, "RASTER_mapAlgebra2: Unexpected error when running prepared statement %d", i);
-								PG_RETURN_NULL();
-							}
-
-							/* get output of prepared plan */
-							tupdesc = SPI_tuptable->tupdesc;
-							tuptable = SPI_tuptable;
-							tuple = tuptable->vals[0];
-
-							datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
-							if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
-
-								if (SPI_tuptable) SPI_freetuptable(tuptable);
-								for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
-								SPI_finish();
-
-								for (k = 0; k < set_count; k++) {
-									if (_rast[k] != NULL)
-										rt_raster_destroy(_rast[k]);
-									if (pgrastpos[k] != -1)
-										PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-								}
-								rt_raster_destroy(raster);
-
-								elog(ERROR, "RASTER_mapAlgebra2: Could not get result of prepared statement %d", i);
-								PG_RETURN_NULL();
-							}
-
-							if (!isnull) {
-								haspixel = 1;
-								pixel = DatumGetFloat8(datum);
-							}
-
-							if (SPI_tuptable) SPI_freetuptable(tuptable);
-						}
-					}	break;
-					case REGPROCEDUREOID: {
-						Datum d[4];
-						ArrayType *a;
-
-						/* build fcnarg */
-						for (i = 0; i < set_count; i++) {
-							ufc_info.arg[i] = Float8GetDatum(_pixel[i]);
-
-							if (_haspixel[i]) {
-								ufc_info.argnull[i] = FALSE;
-								ufc_nullcount--;
-							}
-							else {
-								ufc_info.argnull[i] = TRUE;
-				 				ufc_nullcount++;
-							}
-						}
-
-						/* function is strict and null parameter is passed */
-						/* http://archives.postgresql.org/pgsql-general/2011-11/msg00424.php */
-						if (ufl_info.fn_strict && ufc_nullcount)
-							break;
-
-						/* 4 parameters, add position */
-						if (ufl_info.fn_nargs == 4) {
-							/* Datum of 4 element array */
-							/* array is (x1, y1, x2, y2) */
-							for (i = 0; i < set_count; i++) {
-								if (i < 1) {
-									d[0] = Int32GetDatum(_pos[i][0]);
-									d[1] = Int32GetDatum(_pos[i][1]);
-								}
-								else {
-									d[2] = Int32GetDatum(_pos[i][0]);
-									d[3] = Int32GetDatum(_pos[i][1]);
-								}
-							}
-
-							a = construct_array(d, 4, INT4OID, sizeof(int32), true, 'i');
-							ufc_info.arg[2] = PointerGetDatum(a);
-							ufc_info.argnull[2] = FALSE;
-						}
-
-						datum = FunctionCallInvoke(&ufc_info);
-
-						/* result is not null*/
-						if (!ufc_info.isnull) {
-							haspixel = 1;
-							pixel = DatumGetFloat8(datum);
-						}
-					}	break;
-				}
-
-				/* burn pixel if haspixel != 0 */
-				if (haspixel) {
-					if (rt_band_set_pixel(band, x, y, pixel, NULL) != ES_NONE) {
-
-						if (calltype == TEXTOID) {
-							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
-							SPI_finish();
-						}
-
-						for (k = 0; k < set_count; k++) {
-							if (_rast[k] != NULL)
-								rt_raster_destroy(_rast[k]);
-							if (pgrastpos[k] != -1)
-								PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-						}
-						rt_raster_destroy(raster);
-
-						elog(ERROR, "RASTER_mapAlgebra2: Could not set pixel value of output raster");
-						PG_RETURN_NULL();
-					}
-				}
-
-				POSTGIS_RT_DEBUGF(5, "(x, y, val) = (%d, %d, %f)", x, y, haspixel ? pixel : nodataval);
-
-			} /* y: height */
-		} /* x: width */
-	}
-
-	/* CLEANUP */
-	if (calltype == TEXTOID) {
-		for (i = 0; i < spi_count; i++) {
-			if (spi_plan[i] != NULL) SPI_freeplan(spi_plan[i]);
-		}
-		SPI_finish();
-	}
-
-	for (k = 0; k < set_count; k++) {
-		if (_rast[k] != NULL)
-			rt_raster_destroy(_rast[k]);
-		if (pgrastpos[k] != -1)
-			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
-	}
-
-	pgrtn = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-	if (!pgrtn) PG_RETURN_NULL();
-
-	POSTGIS_RT_DEBUG(3, "Finished RASTER_mapAlgebra2");
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/**
- * One raster neighborhood MapAlgebra
- */
-PG_FUNCTION_INFO_V1(RASTER_mapAlgebraFctNgb);
-Datum RASTER_mapAlgebraFctNgb(PG_FUNCTION_ARGS)
-{
-    rt_pgraster *pgraster = NULL;
-    rt_pgraster *pgrtn = NULL;
-    rt_raster raster = NULL;
-    rt_raster newrast = NULL;
-    rt_band band = NULL;
-    rt_band newband = NULL;
-    int x, y, nband, width, height, ngbwidth, ngbheight, winwidth, winheight, u, v, nIndex, nNullItems;
-    double r, rpix;
-    double newnodatavalue = 0.0;
-    double newinitialvalue = 0.0;
-    double newval = 0.0;
-    rt_pixtype newpixeltype;
-    int ret = -1;
-    Oid oid;
-    FmgrInfo cbinfo;
-    FunctionCallInfoData cbdata;
-    Datum tmpnewval;
-    ArrayType * neighborDatum;
-    char * strFromText = NULL;
-    text * txtNodataMode = NULL;
-    text * txtCallbackParam = NULL;
-    int intReplace = 0;
-    float fltReplace = 0;
-    bool valuereplace = false, pixelreplace, nNodataOnly = true, nNullSkip = false;
-    Datum * neighborData = NULL;
-    bool * neighborNulls = NULL;
-    int neighborDims[2];
-    int neighborLbs[2];
-    int16 typlen;
-    bool typbyval;
-    char typalign;
-
-    POSTGIS_RT_DEBUG(2, "RASTER_mapAlgebraFctNgb: STARTING...");
-
-    /* Check raster */
-    if (PG_ARGISNULL(0)) {
-        elog(WARNING, "Raster is NULL. Returning NULL");
-        PG_RETURN_NULL();
-    }
-
-
-    /* Deserialize raster */
-    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-    raster = rt_raster_deserialize(pgraster, FALSE);
-    if (NULL == raster)
-    {
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not deserialize raster");
-			PG_RETURN_NULL();    
-    }
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Getting arguments...");
-
-    /* Get the rest of the arguments */
-
-    if (PG_ARGISNULL(1))
-        nband = 1;
-    else
-        nband = PG_GETARG_INT32(1);
-
-    if (nband < 1)
-        nband = 1;
-    
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Creating new empty raster...");
-
-    /** 
-     * Create a new empty raster with having the same georeference as the
-     * provided raster
-     **/
-    width = rt_raster_get_width(raster);
-    height = rt_raster_get_height(raster);
-
-    newrast = rt_raster_new(width, height);
-
-    if ( NULL == newrast ) {
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-        elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not create a new raster");
-        PG_RETURN_NULL();
-    }
-
-    rt_raster_set_scale(newrast, 
-            rt_raster_get_x_scale(raster),
-            rt_raster_get_y_scale(raster));
-
-    rt_raster_set_offsets(newrast,
-            rt_raster_get_x_offset(raster),
-            rt_raster_get_y_offset(raster));
-
-    rt_raster_set_skews(newrast,
-            rt_raster_get_x_skew(raster),
-            rt_raster_get_y_skew(raster));
-
-    rt_raster_set_srid(newrast, rt_raster_get_srid(raster));            
-
-
-    /**
-     * If this new raster is empty (width = 0 OR height = 0) then there is
-     * nothing to compute and we return it right now
-     **/
-    if (rt_raster_is_empty(newrast)) 
-    { 
-        elog(NOTICE, "Raster is empty. Returning an empty raster");
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: Getting raster band %d...", nband);
-
-    /**
-     * Check if the raster has the required band. Otherwise, return a raster
-     * without band
-     **/
-    if (!rt_raster_has_band(raster, nband - 1)) {
-        elog(NOTICE, "Raster does not have the required band. Returning a raster "
-            "without a band");
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    /* Get the raster band */
-    band = rt_raster_get_band(raster, nband - 1);
-    if ( NULL == band ) {
-        elog(NOTICE, "Could not get the required band. Returning a raster "
-            "without a band");
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);
-    }
-
-    /*
-    * Get NODATA value
-    */
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Getting NODATA value for band...");
-
-    if (rt_band_get_hasnodata_flag(band)) {
-        rt_band_get_nodata(band, &newnodatavalue);
-    }
-
-    else {
-        newnodatavalue = rt_band_get_min_value(band);
-    }
-
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: NODATA value for band: %f",
-            newnodatavalue);
-    /**
-     * We set the initial value of the future band to nodata value. If nodata
-     * value is null, then the raster will be initialized to
-     * rt_band_get_min_value but all the values should be recomputed anyway
-     **/
-    newinitialvalue = newnodatavalue;
-
-    /**
-     * Set the new pixeltype
-     **/    
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Setting pixeltype...");
-
-    if (PG_ARGISNULL(2)) {
-        newpixeltype = rt_band_get_pixtype(band);
-    }
-
-    else {
-        strFromText = text_to_cstring(PG_GETARG_TEXT_P(2)); 
-        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: Pixeltype parameter: %s", strFromText);
-        newpixeltype = rt_pixtype_index_from_name(strFromText);
-        pfree(strFromText);
-        if (newpixeltype == PT_END)
-            newpixeltype = rt_band_get_pixtype(band);
-    }
-    
-    if (newpixeltype == PT_END) {
-
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFctNgb: Invalid pixeltype");
-        PG_RETURN_NULL();
-    }    
-    
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: Pixeltype set to %s (%d)",
-        rt_pixtype_name(newpixeltype), newpixeltype);
-
-    /* Get the name of the callback userfunction */
-    if (PG_ARGISNULL(5)) {
-
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFctNgb: Required function is missing");
-        PG_RETURN_NULL();
-    }
-
-    oid = PG_GETARG_OID(5);
-    if (oid == InvalidOid) {
-
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFctNgb: Got invalid function object id");
-        PG_RETURN_NULL();
-    }
-
-    fmgr_info(oid, &cbinfo);
-
-    /* function cannot return set */
-    if (cbinfo.fn_retset) {
-
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFctNgb: Function provided must return double precision not resultset");
-        PG_RETURN_NULL();
-    }
-    /* function should have correct # of args */
-    else if (cbinfo.fn_nargs != 3) {
-
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-        rt_raster_destroy(newrast);
-
-        elog(ERROR, "RASTER_mapAlgebraFctNgb: Function does not have three input parameters");
-        PG_RETURN_NULL();
-    }
-
-    if (func_volatile(oid) == 'v') {
-        elog(NOTICE, "Function provided is VOLATILE. Unless required and for best performance, function should be IMMUTABLE or STABLE");
-    }
-
-    /* prep function call data */
-#if POSTGIS_PGSQL_VERSION <= 90
-    InitFunctionCallInfoData(cbdata, &cbinfo, 3, InvalidOid, NULL);
-#else
-    InitFunctionCallInfoData(cbdata, &cbinfo, 3, InvalidOid, NULL, NULL);
-#endif
-    memset(cbdata.argnull, FALSE, sizeof(bool) * 3);
-
-    /* check that the function isn't strict if the args are null. */
-    if (PG_ARGISNULL(7)) {
-        if (cbinfo.fn_strict) {
-
-            rt_raster_destroy(raster);
-            PG_FREE_IF_COPY(pgraster, 0);
-            rt_raster_destroy(newrast);
-
-            elog(ERROR, "RASTER_mapAlgebraFctNgb: Strict callback functions cannot have NULL parameters");
-            PG_RETURN_NULL();
-        }
-
-        cbdata.arg[2] = (Datum)NULL;
-        cbdata.argnull[2] = TRUE;
-    }
-    else {
-        cbdata.arg[2] = PG_GETARG_DATUM(7);
-    }
-
-    /**
-     * Optimization: If the raster is only filled with nodata values return
-     * right now a raster filled with the nodatavalueexpr
-     * TODO: Call rt_band_check_isnodata instead?
-     **/
-    if (rt_band_get_isnodata_flag(band)) {
-
-        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Band is a nodata band, returning "
-                "a raster filled with nodata");
-
-        rt_raster_generate_new_band(newrast, newpixeltype,
-                newinitialvalue, TRUE, newnodatavalue, 0);
-
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);               
-    }
-
-
-    /**
-     * Create the raster receiving all the computed values. Initialize it to the
-     * new initial value
-     **/
-    rt_raster_generate_new_band(newrast, newpixeltype,
-            newinitialvalue, TRUE, newnodatavalue, 0);
-
-    /* Get the new raster band */
-    newband = rt_raster_get_band(newrast, 0);
-    if ( NULL == newband ) {
-        elog(NOTICE, "Could not modify band for new raster. Returning new "
-            "raster with the original band");
-
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);      
-    }
-
-    /* Get the width of the neighborhood */
-    if (PG_ARGISNULL(3) || PG_GETARG_INT32(3) <= 0) {
-        elog(NOTICE, "Neighborhood width is NULL or <= 0. Returning new "
-            "raster with the original band");
-
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);      
-    }
-
-    ngbwidth = PG_GETARG_INT32(3);
-    winwidth = ngbwidth * 2 + 1;
-
-    /* Get the height of the neighborhood */
-    if (PG_ARGISNULL(4) || PG_GETARG_INT32(4) <= 0) {
-        elog(NOTICE, "Neighborhood height is NULL or <= 0. Returning new "
-            "raster with the original band");
-
-        rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 0);
-
-        /* Serialize created raster */
-        pgrtn = rt_raster_serialize(newrast);
-        rt_raster_destroy(newrast);
-        if (NULL == pgrtn) {
-            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
-            PG_RETURN_NULL();
-        }
-
-        SET_VARSIZE(pgrtn, pgrtn->size);
-        PG_RETURN_POINTER(pgrtn);      
-    }
-
-    ngbheight = PG_GETARG_INT32(4);
-    winheight = ngbheight * 2 + 1;
-
-    /* Get the type of NODATA behavior for the neighborhoods. */
-    if (PG_ARGISNULL(6)) {
-        elog(NOTICE, "Neighborhood NODATA behavior defaulting to 'ignore'");
-        txtNodataMode = cstring_to_text("ignore");
-    }
-    else {
-        txtNodataMode = PG_GETARG_TEXT_P(6);
-    }
-
-    txtCallbackParam = (text*)palloc(VARSIZE(txtNodataMode));
-    SET_VARSIZE(txtCallbackParam, VARSIZE(txtNodataMode));
-    memcpy((void *)VARDATA(txtCallbackParam), (void *)VARDATA(txtNodataMode), VARSIZE(txtNodataMode) - VARHDRSZ);
-
-    /* pass the nodata mode into the user function */
-    cbdata.arg[1] = CStringGetDatum(txtCallbackParam);
-
-    strFromText = text_to_cstring(txtNodataMode);
-    strFromText = rtpg_strtoupper(strFromText);
-
-    if (strcmp(strFromText, "VALUE") == 0)
-        valuereplace = true;
-    else if (strcmp(strFromText, "IGNORE") != 0 && strcmp(strFromText, "NULL") != 0) {
-        /* if the text is not "IGNORE" or "NULL", it may be a numerical value */
-        if (sscanf(strFromText, "%d", &intReplace) <= 0 && sscanf(strFromText, "%f", &fltReplace) <= 0) {
-            /* the value is NOT an integer NOR a floating point */
-            elog(NOTICE, "Neighborhood NODATA mode is not recognized. Must be one of 'value', 'ignore', "
-                "'NULL', or a numeric value. Returning new raster with the original band");
-
-            /* clean up the nodatamode string */
-            pfree(txtCallbackParam);
-            pfree(strFromText);
-
-            rt_raster_destroy(raster);
-            PG_FREE_IF_COPY(pgraster, 0);
-
-            /* Serialize created raster */
-            pgrtn = rt_raster_serialize(newrast);
-            rt_raster_destroy(newrast);
-            if (NULL == pgrtn) {
-                elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
-                PG_RETURN_NULL();
-            }
-
-            SET_VARSIZE(pgrtn, pgrtn->size);
-            PG_RETURN_POINTER(pgrtn);      
-        }
-    }
-    else if (strcmp(strFromText, "NULL") == 0) {
-        /* this setting means that the neighborhood should be skipped if any of the values are null */
-        nNullSkip = true;
-    }
-   
-    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: Main computing loop (%d x %d)",
-            width, height);
-
-    /* Allocate room for the neighborhood. */
-    neighborData = (Datum *)palloc(winwidth * winheight * sizeof(Datum));
-    neighborNulls = (bool *)palloc(winwidth * winheight * sizeof(bool));
-
-    /* The dimensions of the neighborhood array, for creating a multi-dimensional array. */
-    neighborDims[0] = winwidth;
-    neighborDims[1] = winheight;
-
-    /* The lower bounds for the new multi-dimensional array. */
-    neighborLbs[0] = 1;
-    neighborLbs[1] = 1;
-
-    /* Get information about the type of item in the multi-dimensional array (float8). */
-    get_typlenbyvalalign(FLOAT8OID, &typlen, &typbyval, &typalign);
-
-    for (x = 0 + ngbwidth; x < width - ngbwidth; x++) {
-        for(y = 0 + ngbheight; y < height - ngbheight; y++) {
-            /* populate an array with the pixel values in the neighborhood */
-            nIndex = 0;
-            nNullItems = 0;
-            nNodataOnly = true;
-            pixelreplace = false;
-            if (valuereplace) {
-                ret = rt_band_get_pixel(band, x, y, &rpix, NULL);
-                if (ret == ES_NONE && FLT_NEQ(rpix, newnodatavalue)) {
-                    pixelreplace = true;
-                }
-            }
-            for (u = x - ngbwidth; u <= x + ngbwidth; u++) {
-                for (v = y - ngbheight; v <= y + ngbheight; v++) {
-                    ret = rt_band_get_pixel(band, u, v, &r, NULL);
-                    if (ret == ES_NONE) {
-                        if (FLT_NEQ(r, newnodatavalue)) {
-                            /* If the pixel value for this neighbor cell is not NODATA */
-                            neighborData[nIndex] = Float8GetDatum((double)r);
-                            neighborNulls[nIndex] = false;
-                            nNodataOnly = false;
-                        }
-                        else {
-                            /* If the pixel value for this neighbor cell is NODATA */
-                            if (valuereplace && pixelreplace) {
-                                /* Replace the NODATA value with the currently processing pixel. */
-                                neighborData[nIndex] = Float8GetDatum((double)rpix);
-                                neighborNulls[nIndex] = false;
-                                /* do not increment nNullItems, since the user requested that the  */
-                                /* neighborhood replace NODATA values with the central pixel value */
-                            }
-                            else {
-                                neighborData[nIndex] = PointerGetDatum(NULL);
-                                neighborNulls[nIndex] = true;
-                                nNullItems++;
-                            }
-                        }
-                    }
-                    else {
-                        /* Fill this will NULL if we can't read the raster pixel. */
-                        neighborData[nIndex] = PointerGetDatum(NULL);
-                        neighborNulls[nIndex] = true;
-                        nNullItems++;
-                    }
-                    /* Next neighbor position */
-                    nIndex++;
-                }
-            }
-
-            /**
-             * We compute a value only for the withdata value neighborhood since the
-             * nodata value has already been set by the first optimization
-             **/
-            if (!(nNodataOnly ||                     /* neighborhood only contains NODATA -- OR -- */
-                (nNullSkip && nNullItems > 0) ||     /* neighborhood should skip any NODATA cells, and a NODATA cell was detected -- OR -- */
-                (valuereplace && nNullItems > 0))) { /* neighborhood should replace NODATA cells with the central pixel value, and a NODATA cell was detected */
-                POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: (%dx%d), %dx%d neighborhood",
-                    x, y, winwidth, winheight);
-
-                neighborDatum = construct_md_array((void *)neighborData, neighborNulls, 2, neighborDims, neighborLbs, 
-                    FLOAT8OID, typlen, typbyval, typalign);
-
-                /* Assign the neighbor matrix as the first argument to the user function */
-                cbdata.arg[0] = PointerGetDatum(neighborDatum);
-
-                /* Invoke the user function */
-                tmpnewval = FunctionCallInvoke(&cbdata);
-
-                /* Get the return value of the user function */
-                if (cbdata.isnull) {
-                    newval = newnodatavalue;
-                }
-                else {
-                    newval = DatumGetFloat8(tmpnewval);
-                }
-
-                POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: new value = %f", 
-                    newval);
-                
-                rt_band_set_pixel(newband, x, y, newval, NULL);
-            }
-
-            /* reset the number of null items in the neighborhood */
-            nNullItems = 0;
-        }
-    }
-
-
-    /* clean up */
-    pfree(neighborNulls);
-    pfree(neighborData);
-    pfree(strFromText);
-    pfree(txtCallbackParam);
-    
-    rt_raster_destroy(raster);
-    PG_FREE_IF_COPY(pgraster, 0);
-
-    /* The newrast band has been modified */
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: raster modified, serializing it.");
-    /* Serialize created raster */
-
-    pgrtn = rt_raster_serialize(newrast);
-    rt_raster_destroy(newrast);
-    if (NULL == pgrtn)
-        PG_RETURN_NULL();
-
-    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: raster serialized");
-    POSTGIS_RT_DEBUG(4, "RASTER_mapAlgebraFctNgb: returning raster");
-    
-    SET_VARSIZE(pgrtn, pgrtn->size);    
-    PG_RETURN_POINTER(pgrtn);
-}
-
-/* ---------------------------------------------------------------- */
-/*  n-raster MapAlgebra                                             */
-/* ---------------------------------------------------------------- */
-
-typedef struct {
-	Oid ufc_noid;
-	Oid ufc_rettype;
-	FmgrInfo ufl_info;
-	FunctionCallInfoData ufc_info;
-} rtpg_nmapalgebra_callback_arg;
-
-typedef struct rtpg_nmapalgebra_arg_t *rtpg_nmapalgebra_arg;
-struct rtpg_nmapalgebra_arg_t {
-	int numraster;
-	rt_pgraster **pgraster;
-	rt_raster *raster;
-	uint8_t *isempty; /* flag indicating if raster is empty */
-	uint8_t *ownsdata; /* is the raster self owned or just a pointer to another raster */
-	int *nband; /* source raster's band index, 0-based */
-	uint8_t *hasband; /* does source raster have band at index nband? */
-
-	rt_pixtype pixtype; /* output raster band's pixel type */
-	int hasnodata; /* NODATA flag */
-	double nodataval; /* NODATA value */
-
-	int distance[2]; /* distance in X and Y axis */
-
-	rt_extenttype extenttype; /* ouput raster's extent type */
-	rt_pgraster *pgcextent; /* custom extent of type rt_pgraster */
-	rt_raster cextent; /* custom extent of type rt_raster */
-
-	rtpg_nmapalgebra_callback_arg	callback;
-};
-
-static rtpg_nmapalgebra_arg rtpg_nmapalgebra_arg_init() {
-	rtpg_nmapalgebra_arg arg = NULL;
-
-	arg = palloc(sizeof(struct rtpg_nmapalgebra_arg_t));
-	if (arg == NULL) {
-		elog(ERROR, "rtpg_nmapalgebra_arg_init: Could not allocate memory for arguments");
-		return NULL;
-	}
-
-	arg->numraster = 0;
-	arg->pgraster = NULL;
-	arg->raster = NULL;
-	arg->isempty = NULL;
-	arg->ownsdata = NULL;
-	arg->nband = NULL;
-	arg->hasband = NULL;
-
-	arg->pixtype = PT_END;
-	arg->hasnodata = 1;
-	arg->nodataval = 0;
-
-	arg->distance[0] = 0;
-	arg->distance[1] = 0;
-
-	arg->extenttype = ET_INTERSECTION;
-	arg->pgcextent = NULL;
-	arg->cextent = NULL;
-
-	arg->callback.ufc_noid = InvalidOid;
-	arg->callback.ufc_rettype = InvalidOid;
-
-	return arg;
-}
-
-static void rtpg_nmapalgebra_arg_destroy(rtpg_nmapalgebra_arg arg) {
-	int i = 0;
-
-	if (arg->raster != NULL) {
-		for (i = 0; i < arg->numraster; i++) {
-			if (arg->raster[i] == NULL || !arg->ownsdata[i])
-				continue;
-
-			rt_raster_destroy(arg->raster[i]);
-		}
-
-		pfree(arg->raster);
-		pfree(arg->pgraster);
-		pfree(arg->isempty);
-		pfree(arg->ownsdata);
-		pfree(arg->nband);
-	}
-
-	if (arg->cextent != NULL)
-		rt_raster_destroy(arg->cextent);
-
-	pfree(arg);
-}
-
-static int rtpg_nmapalgebra_rastbandarg_process(rtpg_nmapalgebra_arg arg, ArrayType *array, int *allnull, int *allempty, int *noband) {
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-	int n = 0;
-
-	HeapTupleHeader tup;
-	bool isnull;
-	Datum tupv;
-
-	int i;
-	int j;
-	int nband;
-
-	if (arg == NULL || array == NULL) {
-		elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: NULL values not permitted for parameters");
-		return 0;
-	}
-
-	etype = ARR_ELEMTYPE(array);
-	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-	deconstruct_array(
-		array,
-		etype,
-		typlen, typbyval, typalign,
-		&e, &nulls, &n
-	);
-
-	if (!n) {
-		elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Invalid argument for rastbandarg");
-		return 0;
-	}
-
-	/* prep arg */
-	arg->numraster = n;
-	arg->pgraster = palloc(sizeof(rt_pgraster *) * arg->numraster);
-	arg->raster = palloc(sizeof(rt_raster) * arg->numraster);
-	arg->isempty = palloc(sizeof(uint8_t) * arg->numraster);
-	arg->ownsdata = palloc(sizeof(uint8_t) * arg->numraster);
-	arg->nband = palloc(sizeof(int) * arg->numraster);
-	arg->hasband = palloc(sizeof(uint8_t) * arg->numraster);
-	if (
-		arg->pgraster == NULL ||
-		arg->raster == NULL ||
-		arg->isempty == NULL ||
-		arg->ownsdata == NULL ||
-		arg->nband == NULL ||
-		arg->hasband == NULL
-	) {
-		elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Could not allocate memory for processing rastbandarg");
-		return 0;
-	}
-
-	*allnull = 0;
-	*allempty = 0;
-	*noband = 0;
-
-	/* process each element */
-	for (i = 0; i < n; i++) {
-		if (nulls[i]) {
-			arg->numraster--;
-			continue;
-		}
-
-		POSTGIS_RT_DEBUGF(4, "Processing rastbandarg at index %d", i);
-
-		arg->raster[i] = NULL;
-		arg->isempty[i] = 0;
-		arg->ownsdata[i] = 1;
-		arg->nband[i] = 0;
-		arg->hasband[i] = 0;
-
-		/* each element is a tuple */
-		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
-		if (NULL == tup) {
-			elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Invalid argument for rastbandarg at index %d", i);
-			return 0;
-		}
-
-		/* first element, raster */
-		POSTGIS_RT_DEBUG(4, "Processing first element (raster)");
-		tupv = GetAttributeByName(tup, "rast", &isnull);
-		if (isnull) {
-			elog(NOTICE, "First argument (nband) of rastbandarg at index %d is NULL. Assuming NULL raster", i);
-			arg->isempty[i] = 1;
-			arg->ownsdata[i] = 0;
-
-			(*allnull)++;
-			(*allempty)++;
-			(*noband)++;
-
-			continue;
-		}
-
-		arg->pgraster[i] = (rt_pgraster *) PG_DETOAST_DATUM(tupv);
-
-		/* see if this is a copy of an existing pgraster */
-		for (j = 0; j < i; j++) {
-			if (!arg->isempty[j] && (arg->pgraster[i] == arg->pgraster[j])) {
-				POSTGIS_RT_DEBUG(4, "raster matching existing same raster found");
-				arg->raster[i] = arg->raster[j];
-				arg->ownsdata[i] = 0;
-				break;
-			}
-		}
-
-		if (arg->ownsdata[i]) {
-			POSTGIS_RT_DEBUG(4, "deserializing raster");
-			arg->raster[i] = rt_raster_deserialize(arg->pgraster[i], FALSE);
-			if (arg->raster[i] == NULL) {
-				elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Could not deserialize raster at index %d", i);
-				return 0;
-			}
-		}
-
-		/* is raster empty? */
-		arg->isempty[i] = rt_raster_is_empty(arg->raster[i]);
-		if (arg->isempty[i]) {
-			(*allempty)++;
-			(*noband)++;
-
-			continue;
-		}
-
-		/* second element, nband */
-		POSTGIS_RT_DEBUG(4, "Processing second element (nband)");
-		tupv = GetAttributeByName(tup, "nband", &isnull);
-		if (isnull) {
-			nband = 1;
-			elog(NOTICE, "First argument (nband) of rastbandarg at index %d is NULL. Assuming nband = %d", i, nband);
-		}
-		else
-			nband = DatumGetInt32(tupv);
-
-		if (nband < 1) {
-			elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Band number provided for rastbandarg at index %d must be greater than zero (1-based)", i);
-			return 0;
-		}
-
-		arg->nband[i] = nband - 1;
-		arg->hasband[i] = rt_raster_has_band(arg->raster[i], arg->nband[i]);
-		if (!arg->hasband[i]) {
-			(*noband)++;
-			POSTGIS_RT_DEBUGF(4, "Band at index %d not found in raster", nband);
-		}
-	}
-
-	if (arg->numraster < n) {
-		arg->pgraster = repalloc(arg->pgraster, sizeof(rt_pgraster *) * arg->numraster);
-		arg->raster = repalloc(arg->raster, sizeof(rt_raster) * arg->numraster);
-		arg->isempty = repalloc(arg->isempty, sizeof(uint8_t) * arg->numraster);
-		arg->ownsdata = repalloc(arg->ownsdata, sizeof(uint8_t) * arg->numraster);
-		arg->nband = repalloc(arg->nband, sizeof(int) * arg->numraster);
-		arg->hasband = repalloc(arg->hasband, sizeof(uint8_t) * arg->numraster);
-		if (
-			arg->pgraster == NULL ||
-			arg->raster == NULL ||
-			arg->isempty == NULL ||
-			arg->ownsdata == NULL ||
-			arg->nband == NULL ||
-			arg->hasband == NULL
-		) {
-			elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Could not reallocate memory for processed rastbandarg");
-			return 0;
-		}
-	}
-
-	POSTGIS_RT_DEBUGF(4, "arg->numraster = %d", arg->numraster);
-
-	return 1;
-}
-
-/*
-	Callback for RASTER_nMapAlgebra
-*/
-static int rtpg_nmapalgebra_callback(
-	rt_iterator_arg arg, void *userarg,
-	double *value, int *nodata
-) {
-	rtpg_nmapalgebra_callback_arg *callback = (rtpg_nmapalgebra_callback_arg *) userarg;
-
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-
-	ArrayType *mdValues = NULL;
-	Datum *_values = NULL;
-	bool *_nodata = NULL;
-
-	ArrayType *mdPos = NULL;
-	Datum *_pos = NULL;
-	bool *_null = NULL;
-
-	int i = 0;
-	int x = 0;
-	int y = 0;
-	int z = 0;
-	int dim[3] = {0};
-	int lbound[3] = {1, 1, 1};
-	Datum datum = (Datum) NULL;
-
-	if (arg == NULL)
-		return 0;
-
-	*value = 0;
-	*nodata = 0;
-
-	dim[0] = arg->rasters;
-	dim[1] = arg->rows;
-	dim[2] = arg->columns;
-
-	_values = palloc(sizeof(Datum) * arg->rasters * arg->rows * arg->columns);
-	_nodata = palloc(sizeof(bool) * arg->rasters * arg->rows * arg->columns);
-	if (_values == NULL || _nodata == NULL) {
-		elog(ERROR, "rtpg_nmapalgebra_callback: Could not allocate memory for values array");
-		return 0;
-	}
-
-	/* build mdValues */
-	i = 0;
-	/* raster */
-	for (z = 0; z < arg->rasters; z++) {
-		/* Y axis */
-		for (y = 0; y < arg->rows; y++) {
-			/* X axis */
-			for (x = 0; x < arg->columns; x++) {
-				POSTGIS_RT_DEBUGF(4, "(z, y ,x) = (%d, %d, %d)", z, y, x);
-				POSTGIS_RT_DEBUGF(4, "(value, nodata) = (%f, %d)", arg->values[z][y][x], arg->nodata[z][y][x]);
-
-				_nodata[i] = (bool) arg->nodata[z][y][x];
-				if (!_nodata[i])
-					_values[i] = Float8GetDatum(arg->values[z][y][x]);
-				else
-					_values[i] = (Datum) NULL;
-
-				i++;
-			}
-		}
-	}
-
-	/* info about the type of item in the multi-dimensional array (float8). */
-	get_typlenbyvalalign(FLOAT8OID, &typlen, &typbyval, &typalign);
-
-	/* construct mdValues */
-	mdValues = construct_md_array(
-		_values, _nodata,
-		3, dim, lbound,
-		FLOAT8OID,
-		typlen, typbyval, typalign
-	);
-	pfree(_nodata);
-	pfree(_values);
-
-	_pos = palloc(sizeof(Datum) * (arg->rasters + 1) * 2);
-	_null = palloc(sizeof(bool) * (arg->rasters + 1) * 2);
-	if (_pos == NULL || _null == NULL) {
-		pfree(mdValues);
-		elog(ERROR, "rtpg_nmapalgebra_callback: Could not allocate memory for position array");
-		return 0;
-	}
-	memset(_null, 0, sizeof(bool) * (arg->rasters + 1) * 2);
-
-	/* build mdPos */
-	i = 0;
-	_pos[i] = arg->dst_pixel[0] + 1;
-	i++;
-	_pos[i] = arg->dst_pixel[1] + 1;
-	i++;
-
-	for (z = 0; z < arg->rasters; z++) {
-		_pos[i] = arg->src_pixel[z][0] + 1;
-		i++;
-
-		_pos[i] = arg->src_pixel[z][1] + 1;
-		i++;
-	}
-
-	/* info about the type of item in the multi-dimensional array (int4). */
-	get_typlenbyvalalign(INT4OID, &typlen, &typbyval, &typalign);
-
-	/* reuse dim and lbound, just tweak to what we need */
-	dim[0] = arg->rasters + 1;
-	dim[1] = 2;
-	lbound[0] = 0;
-
-	/* construct mdPos */
-	mdPos = construct_md_array(
-		_pos, _null,
-		2, dim, lbound,
-		INT4OID,
-		typlen, typbyval, typalign
-	);
-	pfree(_pos);
-	pfree(_null);
-
-	callback->ufc_info.arg[0] = PointerGetDatum(mdValues);
-	callback->ufc_info.arg[1] = PointerGetDatum(mdPos);
-
-	/* call user callback function */
-	datum = FunctionCallInvoke(&(callback->ufc_info));
-	pfree(mdValues);
-	pfree(mdPos);
-
-	/* result is not null*/
-	if (!callback->ufc_info.isnull) {
-		switch (callback->ufc_rettype) {
-			case FLOAT8OID:
-				*value = DatumGetFloat8(datum);
-				break;
-			case FLOAT4OID:
-				*value = (double) DatumGetFloat4(datum);
-				break;
-			case INT4OID:
-				*value = (double) DatumGetInt32(datum);
-				break;
-			case INT2OID:
-				*value = (double) DatumGetInt16(datum);
-				break; 
-		}
-	}
-	else
-		*nodata = 1;
-
-	return 1;
-}
-
-/*
- ST_MapAlgebra for n rasters
-*/
-PG_FUNCTION_INFO_V1(RASTER_nMapAlgebra);
-Datum RASTER_nMapAlgebra(PG_FUNCTION_ARGS)
-{
-	rtpg_nmapalgebra_arg arg = NULL;
-	rt_iterator itrset;
-	int i = 0;
-	int noerr = 0;
-	int allnull = 0;
-	int allempty = 0;
-	int noband = 0;
-
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	rt_pgraster *pgraster = NULL;
-
-	POSTGIS_RT_DEBUG(3, "Starting...");
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-
-	/* init argument struct */
-	arg = rtpg_nmapalgebra_arg_init();
-	if (arg == NULL) {
-		elog(ERROR, "RASTER_nMapAlgebra: Could not initialize argument structure");
-		PG_RETURN_NULL();
-	}
-
-	/* let helper function process rastbandarg (0) */
-	if (!rtpg_nmapalgebra_rastbandarg_process(arg, PG_GETARG_ARRAYTYPE_P(0), &allnull, &allempty, &noband)) {
-		rtpg_nmapalgebra_arg_destroy(arg);
-		elog(ERROR, "RASTER_nMapAlgebra: Could not process rastbandarg");
-		PG_RETURN_NULL();
-	}
-
-	POSTGIS_RT_DEBUGF(4, "allnull, allempty, noband = %d, %d, %d", allnull, allempty, noband);
-
-	/* all rasters are NULL, return NULL */
-	if (allnull == arg->numraster) {
-		elog(NOTICE, "All input rasters are NULL. Returning NULL");
-		rtpg_nmapalgebra_arg_destroy(arg);
-		PG_RETURN_NULL();
-	}
-
-	/* pixel type (2) */
-	if (!PG_ARGISNULL(2)) {
-		char *pixtypename = text_to_cstring(PG_GETARG_TEXT_P(2));
-
-		/* Get the pixel type index */
-		arg->pixtype = rt_pixtype_index_from_name(pixtypename);
-		if (arg->pixtype == PT_END) {
-			rtpg_nmapalgebra_arg_destroy(arg);
-			elog(ERROR, "RASTER_nMapAlgebra: Invalid pixel type: %s", pixtypename);
-			PG_RETURN_NULL();
-		}
-	}
-
-	/* distancex (3) */
-	if (!PG_ARGISNULL(3))
-		arg->distance[0] = PG_GETARG_INT32(3);
-	/* distancey (4) */
-	if (!PG_ARGISNULL(4))
-		arg->distance[1] = PG_GETARG_INT32(4);
-
-	if (arg->distance[0] < 0 || arg->distance[1] < 0) {
-		rtpg_nmapalgebra_arg_destroy(arg);
-		elog(ERROR, "RASTER_nMapAlgebra: Distance for X and Y axis must be greater than or equal to zero");
-		PG_RETURN_NULL();
-	}
-
-	/* extent type (5) */
-	if (!PG_ARGISNULL(5)) {
-		char *extenttypename = rtpg_strtoupper(rtpg_trim(text_to_cstring(PG_GETARG_TEXT_P(5))));
-		arg->extenttype = rt_util_extent_type(extenttypename);
-	}
-	POSTGIS_RT_DEBUGF(4, "extenttype: %d", arg->extenttype);
-
-	/* custom extent (6) */
-	if (arg->extenttype == ET_CUSTOM) {
-		if (PG_ARGISNULL(6)) {
-			elog(NOTICE, "Custom extent is NULL. Returning NULL");
-			rtpg_nmapalgebra_arg_destroy(arg);
-			PG_RETURN_NULL();
-		}
-
-		arg->pgcextent = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(6));
-
-		/* only need the raster header */
-		arg->cextent = rt_raster_deserialize(arg->pgcextent, TRUE);
-		if (arg->cextent == NULL) {
-			rtpg_nmapalgebra_arg_destroy(arg);
-			elog(ERROR, "RASTER_nMapAlgebra: Could not deserialize custom extent");
-			PG_RETURN_NULL();
-		}
-		else if (rt_raster_is_empty(arg->cextent)) {
-			elog(NOTICE, "Custom extent is an empty raster. Returning empty raster");
-			rtpg_nmapalgebra_arg_destroy(arg);
-
-			raster = rt_raster_new(0, 0);
-			if (raster == NULL) {
-				elog(ERROR, "RASTER_nMapAlgebra: Could not create empty raster");
-				PG_RETURN_NULL();
-			}
-
-			pgraster = rt_raster_serialize(raster);
-			rt_raster_destroy(raster);
-			if (!pgraster) PG_RETURN_NULL();
-
-			SET_VARSIZE(pgraster, pgraster->size);
-			PG_RETURN_POINTER(pgraster);
-		}
-	}
-
-	noerr = 1;
-	/* all rasters are empty, return empty raster */
-	if (allempty == arg->numraster) {
-		elog(NOTICE, "All input rasters are empty. Returning empty raster");
-		noerr = 0;
-	}
-	/* all rasters don't have indicated band, return empty raster */
-	else if (noband == arg->numraster) {
-		elog(NOTICE, "All input rasters do not have bands at indicated indexes. Returning empty raster");
-		noerr = 0;
-	}
-	if (!noerr) {
-		rtpg_nmapalgebra_arg_destroy(arg);
-
-		raster = rt_raster_new(0, 0);
-		if (raster == NULL) {
-			elog(ERROR, "RASTER_nMapAlgebra: Could not create empty raster");
-			PG_RETURN_NULL();
-		}
-
-		pgraster = rt_raster_serialize(raster);
-		rt_raster_destroy(raster);
-		if (!pgraster) PG_RETURN_NULL();
-
-		SET_VARSIZE(pgraster, pgraster->size);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	/* do regprocedure last (1) */
-	if (!PG_ARGISNULL(1) || get_fn_expr_argtype(fcinfo->flinfo, 1) == REGPROCEDUREOID) {
-		POSTGIS_RT_DEBUG(4, "processing callbackfunc");
-		arg->callback.ufc_noid = PG_GETARG_OID(1);
-
-		/* get function info */
-		fmgr_info(arg->callback.ufc_noid, &(arg->callback.ufl_info));
-
-		/* function cannot return set */
-		noerr = 0;
-		if (arg->callback.ufl_info.fn_retset) {
-			noerr = 1;
-		}
-		/* function should have correct # of args */
-		else if (arg->callback.ufl_info.fn_nargs != 3) {
-			noerr = 2;
-		}
-
-		/* check that callback function return type is supported */
-		if (
-			get_func_result_type(
-				arg->callback.ufc_noid,
-				&(arg->callback.ufc_rettype),
-				NULL
-			) != TYPEFUNC_SCALAR
-		) {
-			noerr = 3;
-		}
-
-		if (!(
-			arg->callback.ufc_rettype == FLOAT8OID ||
-			arg->callback.ufc_rettype == FLOAT4OID ||
-			arg->callback.ufc_rettype == INT4OID ||
-			arg->callback.ufc_rettype == INT2OID
-		)) {
-			noerr = 4;
-		}
-
-		/*
-			TODO: consider adding checks of the userfunction parameters
-				should be able to use get_fn_expr_argtype() of fmgr.c
-		*/
-
-		if (noerr != 0) {
-			rtpg_nmapalgebra_arg_destroy(arg);
-			switch (noerr) {
-				case 4:
-					elog(ERROR, "RASTER_nMapAlgebra: Function provided must return a double precision, float, int or smallint");
-					break;
-				case 3:
-					elog(ERROR, "RASTER_nMapAlgebra: Function provided must return scalar (double precision, float, int, smallint)");
-					break;
-				case 2:
-					elog(ERROR, "RASTER_nMapAlgebra: Function provided must have three input parameters");
-					break;
-				case 1:
-					elog(ERROR, "RASTER_nMapAlgebra: Function provided must return double precision, not resultset");
-					break;
-			}
-			PG_RETURN_NULL();
-		}
-
-		if (func_volatile(arg->callback.ufc_noid) == 'v')
-			elog(NOTICE, "Function provided is VOLATILE. Unless required and for best performance, function should be IMMUTABLE or STABLE");
-
-		/* prep function call data */
-#if POSTGIS_PGSQL_VERSION > 90
-		InitFunctionCallInfoData(arg->callback.ufc_info, &(arg->callback.ufl_info), arg->callback.ufl_info.fn_nargs, InvalidOid, NULL, NULL);
-#else
-		InitFunctionCallInfoData(arg->callback.ufc_info, &(arg->callback.ufl_info), arg->callback.ufl_info.fn_nargs, NULL, NULL);
-#endif
-		memset(arg->callback.ufc_info.argnull, FALSE, sizeof(bool) * arg->callback.ufl_info.fn_nargs);
-
-		/* userargs (7) */
-		if (!PG_ARGISNULL(7))
-			arg->callback.ufc_info.arg[2] = PG_GETARG_DATUM(7);
-		else {
-      if (arg->callback.ufl_info.fn_strict) {
-				/* build and assign an empty TEXT array */
-				/* TODO: manually free the empty array? */
-				arg->callback.ufc_info.arg[2] = PointerGetDatum(
-					construct_empty_array(TEXTOID)
-				);
-				arg->callback.ufc_info.argnull[2] = FALSE;
-      }
-			else {
-				arg->callback.ufc_info.arg[2] = (Datum) NULL;
-				arg->callback.ufc_info.argnull[2] = TRUE;
-			}
-		}
-	}
-	else {
-		rtpg_nmapalgebra_arg_destroy(arg);
-		elog(ERROR, "RASTER_nMapAlgebra: callbackfunc must be provided");
-		PG_RETURN_NULL();
-	}
-
-	/* determine nodataval and possibly pixtype */
-	/* band to check */
-	switch (arg->extenttype) {
-		case ET_LAST:
-			i = arg->numraster - 1;
-			break;
-		case ET_SECOND:
-			if (arg->numraster > 1) {
-				i = 1;
-				break;
-			}
-		default:
-			i = 0;
-			break;
-	}
-	/* find first viable band */
-	if (!arg->hasband[i]) {
-		for (i = 0; i < arg->numraster; i++) {
-			if (arg->hasband[i])
-				break;
-		}
-		if (i >= arg->numraster)
-			i = arg->numraster - 1;
-	}
-	band = rt_raster_get_band(arg->raster[i], arg->nband[i]);
-
-	/* set pixel type if PT_END */
-	if (arg->pixtype == PT_END)
-		arg->pixtype = rt_band_get_pixtype(band);
-
-	/* set hasnodata and nodataval */
-	arg->hasnodata = 1;
-	if (rt_band_get_hasnodata_flag(band))
-		rt_band_get_nodata(band, &(arg->nodataval));
-	else
-		arg->nodataval = rt_band_get_min_value(band);
-
-	POSTGIS_RT_DEBUGF(4, "pixtype, hasnodata, nodataval: %s, %d, %f", rt_pixtype_name(arg->pixtype), arg->hasnodata, arg->nodataval);
-
-	/* init itrset */
-	itrset = palloc(sizeof(struct rt_iterator_t) * arg->numraster);
-	if (itrset == NULL) {
-		rtpg_nmapalgebra_arg_destroy(arg);
-		elog(ERROR, "RASTER_nMapAlgebra: Could not allocate memory for iterator arguments");
-		PG_RETURN_NULL();
-	}
-
-	/* set itrset */
-	for (i = 0; i < arg->numraster; i++) {
-		itrset[i].raster = arg->raster[i];
-		itrset[i].nband = arg->nband[i];
-		itrset[i].nbnodata = 1;
-	}
-
-	/* pass everything to iterator */
-	noerr = rt_raster_iterator(
-		itrset, arg->numraster,
-		arg->extenttype, arg->cextent,
-		arg->pixtype,
-		arg->hasnodata, arg->nodataval,
-		arg->distance[0], arg->distance[1],
-		&(arg->callback),
-		rtpg_nmapalgebra_callback,
-		&raster
-	);
-
-	/* cleanup */
-	pfree(itrset);
-	rtpg_nmapalgebra_arg_destroy(arg);
-
-	if (noerr != ES_NONE) {
-		elog(ERROR, "RASTER_nMapAlgebra: Could not run raster iterator function");
-		PG_RETURN_NULL();
-	}
-	else if (raster == NULL)
-		PG_RETURN_NULL();
-
-	pgraster = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-
-	POSTGIS_RT_DEBUG(3, "Finished");
-
-	if (!pgraster)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgraster, pgraster->size);
-	PG_RETURN_POINTER(pgraster);
-}
-
-/* ---------------------------------------------------------------- */
-/* expression ST_MapAlgebra for n rasters                           */
-/* ---------------------------------------------------------------- */
-
-typedef struct {
-	int exprcount;
-
-	struct {
-		SPIPlanPtr spi_plan;
-		uint32_t spi_argcount;
-		uint8_t *spi_argpos;
-
-		int hasval;
-		double val;
-	} expr[3];
-
-	struct {
-		int hasval;
-		double val;
-	} nodatanodata;
-
-	struct {
-		int count;
-		char **val;
-	} kw;
-
-} rtpg_nmapalgebraexpr_callback_arg;
-
-typedef struct rtpg_nmapalgebraexpr_arg_t *rtpg_nmapalgebraexpr_arg;
-struct rtpg_nmapalgebraexpr_arg_t {
-	rtpg_nmapalgebra_arg bandarg;
-
-	rtpg_nmapalgebraexpr_callback_arg	callback;
-};
-
-static rtpg_nmapalgebraexpr_arg rtpg_nmapalgebraexpr_arg_init(int cnt, char **kw) {
-	rtpg_nmapalgebraexpr_arg arg = NULL;
-	int i = 0;
-
-	arg = palloc(sizeof(struct rtpg_nmapalgebraexpr_arg_t));
-	if (arg == NULL) {
-		elog(ERROR, "rtpg_nmapalgebraexpr_arg_init: Could not allocate memory for arguments");
-		return NULL;
-	}
-
-	arg->bandarg = rtpg_nmapalgebra_arg_init();
-	if (arg->bandarg == NULL) {
-		elog(ERROR, "rtpg_nmapalgebraexpr_arg_init: Could not allocate memory for arg->bandarg");
-		return NULL;
-	}
-
-	arg->callback.kw.count = cnt;
-	arg->callback.kw.val = kw;
-
-	arg->callback.exprcount = 3;
-	for (i = 0; i < arg->callback.exprcount; i++) {
-		arg->callback.expr[i].spi_plan = NULL;
-		arg->callback.expr[i].spi_argcount = 0;
-		arg->callback.expr[i].spi_argpos = palloc(cnt * sizeof(uint8_t));
-		if (arg->callback.expr[i].spi_argpos == NULL) {
-			elog(ERROR, "rtpg_nmapalgebraexpr_arg_init: Could not allocate memory for spi_argpos");
-			return NULL;
-		}
-		memset(arg->callback.expr[i].spi_argpos, 0, sizeof(uint8_t) * cnt);
-		arg->callback.expr[i].hasval = 0;
-		arg->callback.expr[i].val = 0;
-	}
-
-	arg->callback.nodatanodata.hasval = 0;
-	arg->callback.nodatanodata.val = 0;
-
-	return arg;
-}
-
-static void rtpg_nmapalgebraexpr_arg_destroy(rtpg_nmapalgebraexpr_arg arg) {
-	int i = 0;
-
-	rtpg_nmapalgebra_arg_destroy(arg->bandarg);
-
-	for (i = 0; i < arg->callback.exprcount; i++) {
-		if (arg->callback.expr[i].spi_plan)
-			SPI_freeplan(arg->callback.expr[i].spi_plan);
-		if (arg->callback.kw.count)
-			pfree(arg->callback.expr[i].spi_argpos);
-	}
-
-	pfree(arg);
-}
-
-static int rtpg_nmapalgebraexpr_callback(
-	rt_iterator_arg arg, void *userarg,
-	double *value, int *nodata
-) {
-	rtpg_nmapalgebraexpr_callback_arg *callback = (rtpg_nmapalgebraexpr_callback_arg *) userarg;
-	SPIPlanPtr plan = NULL;
-	int i = 0;
-	int id = -1;
-
-	if (arg == NULL)
-		return 0;
-
-	*value = 0;
-	*nodata = 0;
-
-	/* 2 raster */
-	if (arg->rasters > 1) {
-		/* nodata1 = 1 AND nodata2 = 1, nodatanodataval */
-		if (arg->nodata[0][0][0] && arg->nodata[1][0][0]) {
-			if (callback->nodatanodata.hasval)
-				*value = callback->nodatanodata.val;
-			else
-				*nodata = 1;
-		}
-		/* nodata1 = 1 AND nodata2 != 1, nodata1expr */
-		else if (arg->nodata[0][0][0] && !arg->nodata[1][0][0]) {
-			id = 1;
-			if (callback->expr[id].hasval)
-				*value = callback->expr[id].val;
-			else if (callback->expr[id].spi_plan)
-				plan = callback->expr[id].spi_plan;
-			else
-				*nodata = 1;
-		}
-		/* nodata1 != 1 AND nodata2 = 1, nodata2expr */
-		else if (!arg->nodata[0][0][0] && arg->nodata[1][0][0]) {
-			id = 2;
-			if (callback->expr[id].hasval)
-				*value = callback->expr[id].val;
-			else if (callback->expr[id].spi_plan)
-				plan = callback->expr[id].spi_plan;
-			else
-				*nodata = 1;
-		}
-		/* expression */
-		else {
-			id = 0;
-			if (callback->expr[id].hasval)
-				*value = callback->expr[id].val;
-			else if (callback->expr[id].spi_plan)
-				plan = callback->expr[id].spi_plan;
-			else {
-				if (callback->nodatanodata.hasval)
-					*value = callback->nodatanodata.val;
-				else
-					*nodata = 1;
-			}
-		}
-	}
-	/* 1 raster */
-	else {
-		/* nodata = 1, nodata1expr */
-		if (arg->nodata[0][0][0]) {
-			id = 1;
-			if (callback->expr[id].hasval)
-				*value = callback->expr[id].val;
-			else if (callback->expr[id].spi_plan)
-				plan = callback->expr[id].spi_plan;
-			else
-				*nodata = 1;
-		}
-		/* expression */
-		else {
-			id = 0;
-			if (callback->expr[id].hasval)
-				*value = callback->expr[id].val;
-			else if (callback->expr[id].spi_plan)
-				plan = callback->expr[id].spi_plan;
-			else {
-				/* see if nodata1expr is available */
-				id = 1;
-				if (callback->expr[id].hasval)
-					*value = callback->expr[id].val;
-				else if (callback->expr[id].spi_plan)
-					plan = callback->expr[id].spi_plan;
-				else
-					*nodata = 1;
-			}
-		}
-	}
-
-	/* run prepared plan */
-	if (plan != NULL) {
-		Datum values[12];
-		bool nulls[12];
-		int err = 0;
-
-		TupleDesc tupdesc;
-		SPITupleTable *tuptable = NULL;
-		HeapTuple tuple;
-		Datum datum;
-		bool isnull = FALSE;
-
-		POSTGIS_RT_DEBUGF(4, "Running plan %d", id);
-
-		/* init values and nulls */
-		memset(values, (Datum) NULL, sizeof(Datum) * callback->kw.count);
-		memset(nulls, FALSE, sizeof(bool) * callback->kw.count);
-
-		if (callback->expr[id].spi_argcount) {
-			int idx = 0;
-
-			for (i = 0; i < callback->kw.count; i++) {
-				idx = callback->expr[id].spi_argpos[i];
-				if (idx < 1) continue;
-				idx--; /* 1-based now 0-based */
-
-				switch (i) {
-					/* [rast.x] */
-					case 0:
-						values[idx] = Int32GetDatum(arg->src_pixel[0][0] + 1);
-						break;
-					/* [rast.y] */
-					case 1:
-						values[idx] = Int32GetDatum(arg->src_pixel[0][1] + 1);
-						break;
-					/* [rast.val] */
-					case 2:
-					/* [rast] */
-					case 3:
-						if (!arg->nodata[0][0][0])
-							values[idx] = Float8GetDatum(arg->values[0][0][0]);
-						else
-							nulls[idx] = TRUE;
-						break;
-
-					/* [rast1.x] */
-					case 4:
-						values[idx] = Int32GetDatum(arg->src_pixel[0][0] + 1);
-						break;
-					/* [rast1.y] */
-					case 5:
-						values[idx] = Int32GetDatum(arg->src_pixel[0][1] + 1);
-						break;
-					/* [rast1.val] */
-					case 6:
-					/* [rast1] */
-					case 7:
-						if (!arg->nodata[0][0][0])
-							values[idx] = Float8GetDatum(arg->values[0][0][0]);
-						else
-							nulls[idx] = TRUE;
-						break;
-
-					/* [rast2.x] */
-					case 8:
-						values[idx] = Int32GetDatum(arg->src_pixel[1][0] + 1);
-						break;
-					/* [rast2.y] */
-					case 9:
-						values[idx] = Int32GetDatum(arg->src_pixel[1][1] + 1);
-						break;
-					/* [rast2.val] */
-					case 10:
-					/* [rast2] */
-					case 11:
-						if (!arg->nodata[1][0][0])
-							values[idx] = Float8GetDatum(arg->values[1][0][0]);
-						else
-							nulls[idx] = TRUE;
-						break;
-				}
-
-			}
-		}
-
-		/* run prepared plan */
-		err = SPI_execute_plan(plan, values, nulls, TRUE, 1);
-		if (err != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
-			elog(ERROR, "rtpg_nmapalgebraexpr_callback: Unexpected error when running prepared statement %d", id);
-			return 0;
-		}
-
-		/* get output of prepared plan */
-		tupdesc = SPI_tuptable->tupdesc;
-		tuptable = SPI_tuptable;
-		tuple = tuptable->vals[0];
-
-		datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
-		if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-			elog(ERROR, "rtpg_nmapalgebraexpr_callback: Could not get result of prepared statement %d", id);
-			return 0;
-		}
-
-		if (!isnull) {
-			*value = DatumGetFloat8(datum);
-			POSTGIS_RT_DEBUG(4, "Getting value from Datum");
-		}
-		else {
-			/* 2 raster, check nodatanodataval */
-			if (arg->rasters > 1) {
-				if (callback->nodatanodata.hasval)
-					*value = callback->nodatanodata.val;
-				else
-					*nodata = 1;
-			}
-			/* 1 raster, check nodataval */
-			else {
-				if (callback->expr[1].hasval)
-					*value = callback->expr[1].val;
-				else
-					*nodata = 1;
-			}
-		}
-
-		if (SPI_tuptable) SPI_freetuptable(tuptable);
-	}
-
-	POSTGIS_RT_DEBUGF(4, "(value, nodata) = (%f, %d)", *value, *nodata);
-	return 1;
-}
-
-PG_FUNCTION_INFO_V1(RASTER_nMapAlgebraExpr);
-Datum RASTER_nMapAlgebraExpr(PG_FUNCTION_ARGS)
-{
-	MemoryContext mainMemCtx = CurrentMemoryContext;
-	rtpg_nmapalgebraexpr_arg arg = NULL;
-	rt_iterator itrset;
-	uint16_t exprpos[3] = {1, 4, 5};
-
-	int i = 0;
-	int j = 0;
-	int k = 0;
-
-	int numraster = 0;
-	int err = 0;
-	int allnull = 0;
-	int allempty = 0;
-	int noband = 0;
-	int len = 0;
-
-	TupleDesc tupdesc;
-	SPITupleTable *tuptable = NULL;
-	HeapTuple tuple;
-	Datum datum;
-	bool isnull = FALSE;
-
-	rt_raster raster = NULL;
-	rt_band band = NULL;
-	rt_pgraster *pgraster = NULL;
-
-	const int argkwcount = 12;
-	char *argkw[] = {
-		"[rast.x]",
-		"[rast.y]",
-		"[rast.val]",
-		"[rast]",
-		"[rast1.x]",
-		"[rast1.y]",
-		"[rast1.val]",
-		"[rast1]",
-		"[rast2.x]",
-		"[rast2.y]",
-		"[rast2.val]",
-		"[rast2]"
-	};
-
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-
-	/* init argument struct */
-	arg = rtpg_nmapalgebraexpr_arg_init(argkwcount, argkw);
-	if (arg == NULL) {
-		elog(ERROR, "RASTER_nMapAlgebraExpr: Could not initialize argument structure");
-		PG_RETURN_NULL();
-	}
-
-	/* let helper function process rastbandarg (0) */
-	if (!rtpg_nmapalgebra_rastbandarg_process(arg->bandarg, PG_GETARG_ARRAYTYPE_P(0), &allnull, &allempty, &noband)) {
-		rtpg_nmapalgebraexpr_arg_destroy(arg);
-		elog(ERROR, "RASTER_nMapAlgebra: Could not process rastbandarg");
-		PG_RETURN_NULL();
-	}
-
-	POSTGIS_RT_DEBUGF(4, "allnull, allempty, noband = %d, %d, %d", allnull, allempty, noband);
-
-	/* all rasters are NULL, return NULL */
-	if (allnull == arg->bandarg->numraster) {
-		elog(NOTICE, "All input rasters are NULL. Returning NULL");
-		rtpg_nmapalgebraexpr_arg_destroy(arg);
-		PG_RETURN_NULL();
-	}
-
-	/* only work on one or two rasters */
-	if (arg->bandarg->numraster > 1)
-		numraster = 2;
-	else
-		numraster = 1;
-
-	/* pixel type (2) */
-	if (!PG_ARGISNULL(2)) {
-		char *pixtypename = text_to_cstring(PG_GETARG_TEXT_P(2));
-
-		/* Get the pixel type index */
-		arg->bandarg->pixtype = rt_pixtype_index_from_name(pixtypename);
-		if (arg->bandarg->pixtype == PT_END) {
-			rtpg_nmapalgebraexpr_arg_destroy(arg);
-			elog(ERROR, "RASTER_nMapAlgebraExpr: Invalid pixel type: %s", pixtypename);
-			PG_RETURN_NULL();
-		}
-	}
-	POSTGIS_RT_DEBUGF(4, "pixeltype: %d", arg->bandarg->pixtype);
-
-	/* extent type (3) */
-	if (!PG_ARGISNULL(3)) {
-		char *extenttypename = rtpg_strtoupper(rtpg_trim(text_to_cstring(PG_GETARG_TEXT_P(3))));
-		arg->bandarg->extenttype = rt_util_extent_type(extenttypename);
-	}
-
-	if (arg->bandarg->extenttype == ET_CUSTOM) {
-		if (numraster < 2) {
-			elog(NOTICE, "CUSTOM extent type not supported. Defaulting to FIRST");
-			arg->bandarg->extenttype = ET_FIRST;
-		}
-		else {
-			elog(NOTICE, "CUSTOM extent type not supported. Defaulting to INTERSECTION");
-			arg->bandarg->extenttype = ET_INTERSECTION;
-		}
-	}
-	else if (numraster < 2)
-		arg->bandarg->extenttype = ET_FIRST;
-
-	POSTGIS_RT_DEBUGF(4, "extenttype: %d", arg->bandarg->extenttype);
-
-	/* nodatanodataval (6) */
-	if (!PG_ARGISNULL(6)) {
-		arg->callback.nodatanodata.hasval = 1;
-		arg->callback.nodatanodata.val = PG_GETARG_FLOAT8(6);
-	}
-
-	err = 0;
-	/* all rasters are empty, return empty raster */
-	if (allempty == arg->bandarg->numraster) {
-		elog(NOTICE, "All input rasters are empty. Returning empty raster");
-		err = 1;
-	}
-	/* all rasters don't have indicated band, return empty raster */
-	else if (noband == arg->bandarg->numraster) {
-		elog(NOTICE, "All input rasters do not have bands at indicated indexes. Returning empty raster");
-		err = 1;
-	}
-	if (err) {
-		rtpg_nmapalgebraexpr_arg_destroy(arg);
-
-		raster = rt_raster_new(0, 0);
-		if (raster == NULL) {
-			elog(ERROR, "RASTER_nMapAlgebraExpr: Could not create empty raster");
-			PG_RETURN_NULL();
-		}
-
-		pgraster = rt_raster_serialize(raster);
-		rt_raster_destroy(raster);
-		if (!pgraster) PG_RETURN_NULL();
-
-		SET_VARSIZE(pgraster, pgraster->size);
-		PG_RETURN_POINTER(pgraster);
-	}
-
-	/* connect SPI */
-	if (SPI_connect() != SPI_OK_CONNECT) {
-		rtpg_nmapalgebraexpr_arg_destroy(arg);
-		elog(ERROR, "RASTER_nMapAlgebraExpr: Could not connect to the SPI manager");
-		PG_RETURN_NULL();
-	}
-
-	/*
-		process expressions
-
-		exprpos elements are:
-			1 - expression => spi_plan[0]
-			4 - nodata1expr => spi_plan[1]
-			5 - nodata2expr => spi_plan[2]
-	*/
-	for (i = 0; i < arg->callback.exprcount; i++) {
-		char *expr = NULL;
-		char *tmp = NULL;
-		char *sql = NULL;
-		char place[5] = "$1";
-
-		if (PG_ARGISNULL(exprpos[i]))
-			continue;
-
-		expr = text_to_cstring(PG_GETARG_TEXT_P(exprpos[i]));
-		POSTGIS_RT_DEBUGF(3, "raw expr of argument #%d: %s", exprpos[i], expr);
-
-		for (j = 0, k = 1; j < argkwcount; j++) {
-			/* attempt to replace keyword with placeholder */
-			len = 0;
-			tmp = rtpg_strreplace(expr, argkw[j], place, &len);
-			pfree(expr);
-			expr = tmp;
-
-			if (len) {
-				POSTGIS_RT_DEBUGF(4, "kw #%d (%s) at pos $%d", j, argkw[j], k);
-				arg->callback.expr[i].spi_argcount++;
-				arg->callback.expr[i].spi_argpos[j] = k++;
-
-				sprintf(place, "$%d", k);
-			}
-			else
-				arg->callback.expr[i].spi_argpos[j] = 0;
-		}
-
-		len = strlen("SELECT (") + strlen(expr) + strlen(")::double precision");
-		sql = (char *) palloc(len + 1);
-		if (sql == NULL) {
-			rtpg_nmapalgebraexpr_arg_destroy(arg);
-			SPI_finish();
-			elog(ERROR, "RASTER_nMapAlgebraExpr: Could not allocate memory for expression parameter %d", exprpos[i]);
-			PG_RETURN_NULL();
-		}
-
-		strncpy(sql, "SELECT (", strlen("SELECT ("));
-		strncpy(sql + strlen("SELECT ("), expr, strlen(expr));
-		strncpy(sql + strlen("SELECT (") + strlen(expr), ")::double precision", strlen(")::double precision"));
-		sql[len] = '\0';
-
-		POSTGIS_RT_DEBUGF(3, "sql #%d: %s", exprpos[i], sql);
-
-		/* prepared plan */
-		if (arg->callback.expr[i].spi_argcount) {
-			Oid *argtype = (Oid *) palloc(arg->callback.expr[i].spi_argcount * sizeof(Oid));
-			POSTGIS_RT_DEBUGF(3, "expression parameter %d is a prepared plan", exprpos[i]);
-			if (argtype == NULL) {
-				pfree(sql);
-				rtpg_nmapalgebraexpr_arg_destroy(arg);
-				SPI_finish();
-				elog(ERROR, "RASTER_nMapAlgebraExpr: Could not allocate memory for prepared plan argtypes of expression parameter %d", exprpos[i]);
-				PG_RETURN_NULL();
-			}
-
-			/* specify datatypes of parameters */
-			for (j = 0, k = 0; j < argkwcount; j++) {
-				if (arg->callback.expr[i].spi_argpos[j] < 1) continue;
-
-				/* positions are INT4 */
-				if (
-					(strstr(argkw[j], "[rast.x]") != NULL) ||
-					(strstr(argkw[j], "[rast.y]") != NULL) ||
-					(strstr(argkw[j], "[rast1.x]") != NULL) ||
-					(strstr(argkw[j], "[rast1.y]") != NULL) ||
-					(strstr(argkw[j], "[rast2.x]") != NULL) ||
-					(strstr(argkw[j], "[rast2.y]") != NULL)
-				)
-					argtype[k] = INT4OID;
-				/* everything else is FLOAT8 */
-				else
-					argtype[k] = FLOAT8OID;
-
-				k++;
-			}
-
-			arg->callback.expr[i].spi_plan = SPI_prepare(sql, arg->callback.expr[i].spi_argcount, argtype);
-			pfree(argtype);
-			pfree(sql);
-
-			if (arg->callback.expr[i].spi_plan == NULL) {
-				rtpg_nmapalgebraexpr_arg_destroy(arg);
-				SPI_finish();
-				elog(ERROR, "RASTER_nMapAlgebraExpr: Could not create prepared plan of expression parameter %d", exprpos[i]);
-				PG_RETURN_NULL();
-			}
-		}
-		/* no args, just execute query */
-		else {
-			POSTGIS_RT_DEBUGF(3, "expression parameter %d has no args, simply executing", exprpos[i]);
-			err = SPI_execute(sql, TRUE, 0);
-			pfree(sql);
-
-			if (err != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
-				rtpg_nmapalgebraexpr_arg_destroy(arg);
-				SPI_finish();
-				elog(ERROR, "RASTER_nMapAlgebraExpr: Could not evaluate expression parameter %d", exprpos[i]);
-				PG_RETURN_NULL();
-			}
-
-			/* get output of prepared plan */
-			tupdesc = SPI_tuptable->tupdesc;
-			tuptable = SPI_tuptable;
-			tuple = tuptable->vals[0];
-
-			datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
-			if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
-				if (SPI_tuptable) SPI_freetuptable(tuptable);
-				rtpg_nmapalgebraexpr_arg_destroy(arg);
-				SPI_finish();
-				elog(ERROR, "RASTER_nMapAlgebraExpr: Could not get result of expression parameter %d", exprpos[i]);
-				PG_RETURN_NULL();
-			}
-
-			if (!isnull) {
-				arg->callback.expr[i].hasval = 1;
-				arg->callback.expr[i].val = DatumGetFloat8(datum);
-			} 
-
-			if (SPI_tuptable) SPI_freetuptable(tuptable);
-		}
-	}
-
-	/* determine nodataval and possibly pixtype */
-	/* band to check */
-	switch (arg->bandarg->extenttype) {
-		case ET_LAST:
-		case ET_SECOND:
-			if (numraster > 1)
-				i = 1;
-			else
-				i = 0;
-			break;
-		default:
-			i = 0;
-			break;
-	}
-	/* find first viable band */
-	if (!arg->bandarg->hasband[i]) {
-		for (i = 0; i < numraster; i++) {
-			if (arg->bandarg->hasband[i])
-				break;
-		}
-		if (i >= numraster)
-			i = numraster - 1;
-	}
-	band = rt_raster_get_band(arg->bandarg->raster[i], arg->bandarg->nband[i]);
-
-	/* set pixel type if PT_END */
-	if (arg->bandarg->pixtype == PT_END)
-		arg->bandarg->pixtype = rt_band_get_pixtype(band);
-
-	/* set hasnodata and nodataval */
-	arg->bandarg->hasnodata = 1;
-	if (rt_band_get_hasnodata_flag(band))
-		rt_band_get_nodata(band, &(arg->bandarg->nodataval));
-	else
-		arg->bandarg->nodataval = rt_band_get_min_value(band);
-
-	POSTGIS_RT_DEBUGF(4, "pixtype, hasnodata, nodataval: %s, %d, %f", rt_pixtype_name(arg->bandarg->pixtype), arg->bandarg->hasnodata, arg->bandarg->nodataval);
-
-	/* init itrset */
-	itrset = palloc(sizeof(struct rt_iterator_t) * numraster);
-	if (itrset == NULL) {
-		rtpg_nmapalgebraexpr_arg_destroy(arg);
-		SPI_finish();
-		elog(ERROR, "RASTER_nMapAlgebra: Could not allocate memory for iterator arguments");
-		PG_RETURN_NULL();
-	}
-
-	/* set itrset */
-	for (i = 0; i < numraster; i++) {
-		itrset[i].raster = arg->bandarg->raster[i];
-		itrset[i].nband = arg->bandarg->nband[i];
-		itrset[i].nbnodata = 1;
-	}
-
-	/* pass everything to iterator */
-	err = rt_raster_iterator(
-		itrset, numraster,
-		arg->bandarg->extenttype, arg->bandarg->cextent,
-		arg->bandarg->pixtype,
-		arg->bandarg->hasnodata, arg->bandarg->nodataval,
-		0, 0,
-		&(arg->callback),
-		rtpg_nmapalgebraexpr_callback,
-		&raster
-	);
-
-	pfree(itrset);
-	rtpg_nmapalgebraexpr_arg_destroy(arg);
-
-	if (err != ES_NONE) {
-		SPI_finish();
-		elog(ERROR, "RASTER_nMapAlgebraExpr: Could not run raster iterator function");
-		PG_RETURN_NULL();
-	}
-	else if (raster == NULL) {
-		SPI_finish();
-		PG_RETURN_NULL();
-	}
-
-	/* switch to prior memory context to ensure memory allocated in correct context */
-	MemoryContextSwitchTo(mainMemCtx);
-
-	pgraster = rt_raster_serialize(raster);
-	rt_raster_destroy(raster);
-
-	/* finish SPI */
-	SPI_finish();
-
-	if (!pgraster)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgraster, pgraster->size);
-	PG_RETURN_POINTER(pgraster);
-}
-
-/* ---------------------------------------------------------------- */
-/*  ST_Union aggregate functions                                    */
-/* ---------------------------------------------------------------- */
-
-typedef enum {
-	UT_LAST = 0,
-	UT_FIRST,
-	UT_MIN,
-	UT_MAX,
-	UT_COUNT,
-	UT_SUM,
-	UT_MEAN,
-	UT_RANGE
-} rtpg_union_type;
-
-/* internal function translating text of UNION type to enum */
-static rtpg_union_type rtpg_uniontype_index_from_name(const char *cutype) {
-	assert(cutype && strlen(cutype) > 0);
-
-	if (strcmp(cutype, "LAST") == 0)
-		return UT_LAST;
-	else if (strcmp(cutype, "FIRST") == 0)
-		return UT_FIRST;
-	else if (strcmp(cutype, "MIN") == 0)
-		return UT_MIN;
-	else if (strcmp(cutype, "MAX") == 0)
-		return UT_MAX;
-	else if (strcmp(cutype, "COUNT") == 0)
-		return UT_COUNT;
-	else if (strcmp(cutype, "SUM") == 0)
-		return UT_SUM;
-	else if (strcmp(cutype, "MEAN") == 0)
-		return UT_MEAN;
-	else if (strcmp(cutype, "RANGE") == 0)
-		return UT_RANGE;
-
-	return UT_LAST;
-}
-
-typedef struct rtpg_union_band_arg_t *rtpg_union_band_arg;
-struct rtpg_union_band_arg_t {
-	int nband; /* source raster's band index, 0-based */
-	rtpg_union_type uniontype;
-
-	int numraster;
-	rt_raster *raster;
-};
-
-typedef struct rtpg_union_arg_t *rtpg_union_arg;
-struct rtpg_union_arg_t {
-	int numband; /* number of bandargs */
-	rtpg_union_band_arg bandarg;
-};
-
-static void rtpg_union_arg_destroy(rtpg_union_arg arg) {
-	int i = 0;
-	int j = 0;
-	int k = 0;
-
-	if (arg->bandarg != NULL) {
-		for (i = 0; i < arg->numband; i++) {
-			if (!arg->bandarg[i].numraster)
-				continue;
-
-			for (j = 0; j < arg->bandarg[i].numraster; j++) {
-				if (arg->bandarg[i].raster[j] == NULL)
-					continue;
-
-				for (k = rt_raster_get_num_bands(arg->bandarg[i].raster[j]) - 1; k >= 0; k--)
-					rt_band_destroy(rt_raster_get_band(arg->bandarg[i].raster[j], k));
-				rt_raster_destroy(arg->bandarg[i].raster[j]);
-			}
-
-			pfree(arg->bandarg[i].raster);
-		}
-
-		pfree(arg->bandarg);
-	}
-
-	pfree(arg);
-}
-
-static int rtpg_union_callback(
-	rt_iterator_arg arg, void *userarg,
-	double *value, int *nodata
-) {
-	rtpg_union_type *utype = (rtpg_union_type *) userarg;
-
-	if (arg == NULL)
-		return 0;
-
-	if (
-		arg->rasters != 2 ||
-		arg->rows != 1 ||
-		arg->columns != 1
-	) {
-		elog(ERROR, "rtpg_union_callback: Invalid arguments passed to callback");
-		return 0;
-	}
-
-	*value = 0;
-	*nodata = 0;
-
-	/* handle NODATA situations except for COUNT, which is a special case */
-	if (*utype != UT_COUNT) {
-		/* both NODATA */
-		if (arg->nodata[0][0][0] && arg->nodata[1][0][0]) {
-			*nodata = 1;
-			POSTGIS_RT_DEBUGF(4, "value, nodata = %f, %d", *value, *nodata);
-			return 1;
-		}
-		/* second NODATA */
-		else if (!arg->nodata[0][0][0] && arg->nodata[1][0][0]) {
-			*value = arg->values[0][0][0];
-			POSTGIS_RT_DEBUGF(4, "value, nodata = %f, %d", *value, *nodata);
-			return 1;
-		}
-		/* first NODATA */
-		else if (arg->nodata[0][0][0] && !arg->nodata[1][0][0]) {
-			*value = arg->values[1][0][0];
-			POSTGIS_RT_DEBUGF(4, "value, nodata = %f, %d", *value, *nodata);
-			return 1;
-		}
-	}
-
-	switch (*utype) {
-		case UT_FIRST:
-			*value = arg->values[0][0][0];
-			break;
-		case UT_MIN:
-			if (arg->values[0][0][0] < arg->values[1][0][0])
-				*value = arg->values[0][0][0];
-			else
-				*value = arg->values[1][0][0];
-			break;
-		case UT_MAX:
-			if (arg->values[0][0][0] > arg->values[1][0][0])
-				*value = arg->values[0][0][0];
-			else
-				*value = arg->values[1][0][0];
-			break;
-		case UT_COUNT:
-			/* both NODATA */
-			if (arg->nodata[0][0][0] && arg->nodata[1][0][0])
-				*value = 0;
-			/* second NODATA */
-			else if (!arg->nodata[0][0][0] && arg->nodata[1][0][0])
-				*value = arg->values[0][0][0];
-			/* first NODATA */
-			else if (arg->nodata[0][0][0] && !arg->nodata[1][0][0])
-				*value = 1;
-			/* has value, increment */
-			else
-				*value = arg->values[0][0][0] + 1;
-			break;
-		case UT_SUM:
-			*value = arg->values[0][0][0] + arg->values[1][0][0];
-			break;
-		case UT_MEAN:
-		case UT_RANGE:
-			break;
-		case UT_LAST:
-		default:
-			*value = arg->values[1][0][0];
-			break;
-	}
-
-	POSTGIS_RT_DEBUGF(4, "value, nodata = %f, %d", *value, *nodata);
-
-
-	return 1;
-}
-
-static int rtpg_union_mean_callback(
-	rt_iterator_arg arg, void *userarg,
-	double *value, int *nodata
-) {
-	if (arg == NULL)
-		return 0;
-
-	if (
-		arg->rasters != 2 ||
-		arg->rows != 1 ||
-		arg->columns != 1
-	) {
-		elog(ERROR, "rtpg_union_mean_callback: Invalid arguments passed to callback");
-		return 0;
-	}
-
-	*value = 0;
-	*nodata = 1;
-
-	POSTGIS_RT_DEBUGF(4, "rast0: %f %d", arg->values[0][0][0], arg->nodata[0][0][0]);
-	POSTGIS_RT_DEBUGF(4, "rast1: %f %d", arg->values[1][0][0], arg->nodata[1][0][0]);
-
-	if (
-		!arg->nodata[0][0][0] &&
-		FLT_NEQ(arg->values[0][0][0], 0) &&
-		!arg->nodata[1][0][0]
-	) {
-		*value = arg->values[1][0][0] / arg->values[0][0][0];
-		*nodata = 0;
-	}
-
-	POSTGIS_RT_DEBUGF(4, "value, nodata = (%f, %d)", *value, *nodata);
-
-	return 1;
-}
-
-static int rtpg_union_range_callback(
-	rt_iterator_arg arg, void *userarg,
-	double *value, int *nodata
-) {
-	if (arg == NULL)
-		return 0;
-
-	if (
-		arg->rasters != 2 ||
-		arg->rows != 1 ||
-		arg->columns != 1
-	) {
-		elog(ERROR, "rtpg_union_range_callback: Invalid arguments passed to callback");
-		return 0;
-	}
-
-	*value = 0;
-	*nodata = 1;
-
-	POSTGIS_RT_DEBUGF(4, "rast0: %f %d", arg->values[0][0][0], arg->nodata[0][0][0]);
-	POSTGIS_RT_DEBUGF(4, "rast1: %f %d", arg->values[1][0][0], arg->nodata[1][0][0]);
-
-	if (
-		!arg->nodata[0][0][0] &&
-		!arg->nodata[1][0][0]
-	) {
-		*value = arg->values[1][0][0] - arg->values[0][0][0];
-		*nodata = 0;
-	}
-
-	POSTGIS_RT_DEBUGF(4, "value, nodata = (%f, %d)", *value, *nodata);
-
-	return 1;
-}
-
-/* called for ST_Union(raster, unionarg[]) */
-static int rtpg_union_unionarg_process(rtpg_union_arg arg, ArrayType *array) {
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-	int n = 0;
-
-	HeapTupleHeader tup;
-	bool isnull;
-	Datum tupv;
-
-	int i;
-	int nband = 1;
-	char *utypename = NULL;
-	rtpg_union_type utype = UT_LAST;
-
-	etype = ARR_ELEMTYPE(array);
-	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-	deconstruct_array(
-		array,
-		etype,
-		typlen, typbyval, typalign,
-		&e, &nulls, &n
-	);
-
-	if (!n) {
-		elog(ERROR, "rtpg_union_unionarg_process: Invalid argument for unionarg");
-		return 0;
-	}
-
-	/* prep arg */
-	arg->numband = n;
-	arg->bandarg = palloc(sizeof(struct rtpg_union_band_arg_t) * arg->numband);
-	if (arg->bandarg == NULL) {
-		elog(ERROR, "rtpg_union_unionarg_process: Could not allocate memory for band information");
-		return 0;
-	}
-
-	/* process each element */
-	for (i = 0; i < n; i++) {
-		if (nulls[i]) {
-			arg->numband--;
-			continue;
-		}
-
-		POSTGIS_RT_DEBUGF(4, "Processing unionarg at index %d", i);
-
-		/* each element is a tuple */
-		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
-		if (NULL == tup) {
-			elog(ERROR, "rtpg_union_unionarg_process: Invalid argument for unionarg");
-			return 0;
-		}
-
-		/* first element, bandnum */
-		tupv = GetAttributeByName(tup, "nband", &isnull);
-		if (isnull) {
-			nband = i + 1;
-			elog(NOTICE, "First argument (nband) of unionarg is NULL.  Assuming nband = %d", nband);
-		}
-		else
-			nband = DatumGetInt32(tupv);
-
-		if (nband < 1) {
-			elog(ERROR, "rtpg_union_unionarg_process: Band number must be greater than zero (1-based)");
-			return 0;
-		}
-
-		/* second element, uniontype */
-		tupv = GetAttributeByName(tup, "uniontype", &isnull);
-		if (isnull) {
-			elog(NOTICE, "Second argument (uniontype) of unionarg is NULL.  Assuming uniontype = LAST");
-			utype = UT_LAST;
-		}
-		else {
-			utypename = text_to_cstring((text *) DatumGetPointer(tupv));
-			utype = rtpg_uniontype_index_from_name(rtpg_strtoupper(utypename));
-		}
-
-		arg->bandarg[i].uniontype = utype;
-		arg->bandarg[i].nband = nband - 1;
-		arg->bandarg[i].raster = NULL;
-
-		if (
-			utype != UT_MEAN &&
-			utype != UT_RANGE
-		) {
-			arg->bandarg[i].numraster = 1;
-		}
-		else
-			arg->bandarg[i].numraster = 2;
-	}
-
-	if (arg->numband < n) {
-		arg->bandarg = repalloc(arg->bandarg, sizeof(struct rtpg_union_band_arg_t) * arg->numband);
-		if (arg->bandarg == NULL) {
-			elog(ERROR, "rtpg_union_unionarg_process: Could not reallocate memory for band information");
-			return 0;
-		}
-	}
-
-	return 1;
-}
-
-/* called for ST_Union(raster) */
-static int rtpg_union_noarg(rtpg_union_arg arg, rt_raster raster) {
-	int numbands;
-	int i;
-
-	if (rt_raster_is_empty(raster))
-		return 1;
-
-	numbands = rt_raster_get_num_bands(raster);
-	if (numbands <= arg->numband)
-		return 1;
-
-	/* more bands to process */
-	POSTGIS_RT_DEBUG(4, "input raster has more bands, adding more bandargs");
-	if (arg->numband)
-		arg->bandarg = repalloc(arg->bandarg, sizeof(struct rtpg_union_band_arg_t) * numbands);
-	else
-		arg->bandarg = palloc(sizeof(struct rtpg_union_band_arg_t) * numbands);
-	if (arg->bandarg == NULL) {
-		elog(ERROR, "rtpg_union_noarg: Could not reallocate memory for band information");
-		return 0;
-	}
-
-	i = arg->numband;
-	arg->numband = numbands;
-	for (; i < arg->numband; i++) {
-		POSTGIS_RT_DEBUGF(4, "Adding bandarg for band at index %d", i);
-		arg->bandarg[i].uniontype = UT_LAST;
-		arg->bandarg[i].nband = i;
-		arg->bandarg[i].numraster = 1;
-
-		arg->bandarg[i].raster = (rt_raster *) palloc(sizeof(rt_raster) * arg->bandarg[i].numraster);
-		if (arg->bandarg[i].raster == NULL) {
-			elog(ERROR, "rtpg_union_noarg: Could not allocate memory for working rasters");
-			return 0;
-		}
-		memset(arg->bandarg[i].raster, 0, sizeof(rt_raster) * arg->bandarg[i].numraster);
-
-		/* add new working rt_raster but only if working raster already exists */
-		if (!rt_raster_is_empty(arg->bandarg[0].raster[0])) {
-			arg->bandarg[i].raster[0] = rt_raster_clone(arg->bandarg[0].raster[0], 0); /* shallow clone */
-			if (arg->bandarg[i].raster[0] == NULL) {
-				elog(ERROR, "rtpg_union_noarg: Could not create working raster");
-				return 0;
-			}
-		}
-	}
-
-	return 1;
-}
-
-/* UNION aggregate transition function */
-PG_FUNCTION_INFO_V1(RASTER_union_transfn);
-Datum RASTER_union_transfn(PG_FUNCTION_ARGS)
-{
-	MemoryContext aggcontext;
-	MemoryContext oldcontext;
-	rtpg_union_arg iwr = NULL;
-	int skiparg = 0;
-
-	rt_pgraster *pgraster = NULL;
-	rt_raster raster = NULL;
-	rt_raster _raster = NULL;
-	rt_band _band = NULL;
-	int nband = 1;
-	int noerr = 1;
-	int isempty[2] = {0};
-	int hasband[2] = {0};
-	int nargs = 0;
-	double _offset[4] = {0.};
-	int nbnodata = 0; /* 1 if adding bands */
-
-	int i = 0;
-	int j = 0;
-	int k = 0;
-
-	rt_iterator itrset;
-	char *utypename = NULL;
-	rtpg_union_type utype = UT_LAST;
-	rt_pixtype pixtype = PT_END;
-	int hasnodata = 1;
-	double nodataval = 0;
-
-	rt_raster iraster = NULL;
-	rt_band iband = NULL;
-	int reuserast = 0;
-	int y = 0;
-	uint16_t _dim[2] = {0};
-	void *vals = NULL;
-	uint16_t nvals = 0;
-
-	POSTGIS_RT_DEBUG(3, "Starting...");
-
-	/* cannot be called directly as this is exclusive aggregate function */
-	if (!AggCheckCallContext(fcinfo, &aggcontext)) {
-		elog(ERROR, "RASTER_union_transfn: Cannot be called in a non-aggregate context");
-		PG_RETURN_NULL();
-	}
-
-	/* switch to aggcontext */
-	oldcontext = MemoryContextSwitchTo(aggcontext);
-
-	if (PG_ARGISNULL(0)) {
-		POSTGIS_RT_DEBUG(3, "Creating state variable");
-		/* allocate container in aggcontext */
-		iwr = palloc(sizeof(struct rtpg_union_arg_t));
-		if (iwr == NULL) {
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_union_transfn: Could not allocate memory for state variable");
-			PG_RETURN_NULL();
-		}
-
-		iwr->numband = 0;
-		iwr->bandarg = NULL;
-
-		skiparg = 0;
-	}
-	else {
-		POSTGIS_RT_DEBUG(3, "State variable already exists");
-		iwr = (rtpg_union_arg) PG_GETARG_POINTER(0);
-		skiparg = 1;
-	}
-
-	/* raster arg is NOT NULL */
-	if (!PG_ARGISNULL(1)) {
-		/* deserialize raster */
-		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
-
-		/* Get raster object */
-		raster = rt_raster_deserialize(pgraster, FALSE);
-		if (raster == NULL) {
-
-			rtpg_union_arg_destroy(iwr);
-			PG_FREE_IF_COPY(pgraster, 1);
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_union_transfn: Could not deserialize raster");
-			PG_RETURN_NULL();
-		}
-	}
-
-	/* process additional args if needed */
-	nargs = PG_NARGS();
-	POSTGIS_RT_DEBUGF(4, "nargs = %d", nargs);
-	if (nargs > 2) {
-		POSTGIS_RT_DEBUG(4, "processing additional arguments");
-
-		/* if more than 2 arguments, determine the type of argument 3 */
-		/* band number, UNION type or unionarg */
-		if (!PG_ARGISNULL(2)) {
-			Oid calltype = get_fn_expr_argtype(fcinfo->flinfo, 2);
-
-			switch (calltype) {
-				/* UNION type */
-				case TEXTOID: {
-					int idx = 0;
-					int numband = 0;
-
-					POSTGIS_RT_DEBUG(4, "Processing arg 3 as UNION type");
-					nbnodata = 1;
-
-					utypename = text_to_cstring(PG_GETARG_TEXT_P(2));
-					utype = rtpg_uniontype_index_from_name(rtpg_strtoupper(utypename));
-					POSTGIS_RT_DEBUGF(4, "Union type: %s", utypename);
-
-					POSTGIS_RT_DEBUGF(4, "iwr->numband: %d", iwr->numband);
-					/* see if we need to append new bands */
-					if (raster) {
-						idx = iwr->numband;
-						numband = rt_raster_get_num_bands(raster);
-						POSTGIS_RT_DEBUGF(4, "numband: %d", numband);
-
-						/* only worry about appended bands */
-						if (numband > iwr->numband)
-							iwr->numband = numband;
-					}
-
-					if (!iwr->numband)
-						iwr->numband = 1;
-					POSTGIS_RT_DEBUGF(4, "iwr->numband: %d", iwr->numband);
-					POSTGIS_RT_DEBUGF(4, "numband, idx: %d, %d", numband, idx);
-
-					/* bandarg set. only possible after the first call to function */
-					if (iwr->bandarg) {
-						/* only reallocate if new bands need to be added */
-						if (numband > idx) {
-							POSTGIS_RT_DEBUG(4, "Reallocating iwr->bandarg");
-							iwr->bandarg = repalloc(iwr->bandarg, sizeof(struct rtpg_union_band_arg_t) * iwr->numband);
-						}
-						/* prevent initial values step happening below */
-						else
-							idx = iwr->numband;
-					}
-					/* bandarg not set, first call to function */
-					else {
-						POSTGIS_RT_DEBUG(4, "Allocating iwr->bandarg");
-						iwr->bandarg = palloc(sizeof(struct rtpg_union_band_arg_t) * iwr->numband);
-					}
-					if (iwr->bandarg == NULL) {
-
-						rtpg_union_arg_destroy(iwr);
-						if (raster != NULL) {
-							rt_raster_destroy(raster);
-							PG_FREE_IF_COPY(pgraster, 1);
-						}
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_union_transfn: Could not allocate memory for band information");
-						PG_RETURN_NULL();
-					}
-
-					/* set initial values for bands that are "new" */
-					for (i = idx; i < iwr->numband; i++) {
-						iwr->bandarg[i].uniontype = utype;
-						iwr->bandarg[i].nband = i;
-
-						if (
-							utype == UT_MEAN ||
-							utype == UT_RANGE
-						) {
-							iwr->bandarg[i].numraster = 2;
-						}
-						else
-							iwr->bandarg[i].numraster = 1;
-						iwr->bandarg[i].raster = NULL;
-					}
-
-					break;
-				}
-				/* band number */
-				case INT2OID:
-				case INT4OID:
-					if (skiparg)
-						break;
-
-					POSTGIS_RT_DEBUG(4, "Processing arg 3 as band number");
-					nband = PG_GETARG_INT32(2);
-					if (nband < 1) {
-
-						rtpg_union_arg_destroy(iwr);
-						if (raster != NULL) {
-							rt_raster_destroy(raster);
-							PG_FREE_IF_COPY(pgraster, 1);
-						}
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_union_transfn: Band number must be greater than zero (1-based)");
-						PG_RETURN_NULL();
-					}
-
-					iwr->numband = 1;
-					iwr->bandarg = palloc(sizeof(struct rtpg_union_band_arg_t) * iwr->numband);
-					if (iwr->bandarg == NULL) {
-
-						rtpg_union_arg_destroy(iwr);
-						if (raster != NULL) {
-							rt_raster_destroy(raster);
-							PG_FREE_IF_COPY(pgraster, 1);
-						}
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_union_transfn: Could not allocate memory for band information");
-						PG_RETURN_NULL();
-					}
-
-					iwr->bandarg[0].uniontype = UT_LAST;
-					iwr->bandarg[0].nband = nband - 1;
-
-					iwr->bandarg[0].numraster = 1;
-					iwr->bandarg[0].raster = NULL;
-					break;
-				/* only other type allowed is unionarg */
-				default: 
-					if (skiparg)
-						break;
-
-					POSTGIS_RT_DEBUG(4, "Processing arg 3 as unionarg");
-					if (!rtpg_union_unionarg_process(iwr, PG_GETARG_ARRAYTYPE_P(2))) {
-
-						rtpg_union_arg_destroy(iwr);
-						if (raster != NULL) {
-							rt_raster_destroy(raster);
-							PG_FREE_IF_COPY(pgraster, 1);
-						}
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_union_transfn: Could not process unionarg");
-						PG_RETURN_NULL();
-					}
-
-					break;
-			}
-		}
-
-		/* UNION type */
-		if (nargs > 3 && !PG_ARGISNULL(3)) {
-			utypename = text_to_cstring(PG_GETARG_TEXT_P(3));
-			utype = rtpg_uniontype_index_from_name(rtpg_strtoupper(utypename));
-			iwr->bandarg[0].uniontype = utype;
-			POSTGIS_RT_DEBUGF(4, "Union type: %s", utypename);
-
-			if (
-				utype == UT_MEAN ||
-				utype == UT_RANGE
-			) {
-				iwr->bandarg[0].numraster = 2;
-			}
-		}
-
-		/* allocate space for pointers to rt_raster */
-		for (i = 0; i < iwr->numband; i++) {
-			POSTGIS_RT_DEBUGF(4, "iwr->bandarg[%d].raster @ %p", i, iwr->bandarg[i].raster);
-
-			/* no need to allocate */
-			if (iwr->bandarg[i].raster != NULL)
-				continue;
-
-			POSTGIS_RT_DEBUGF(4, "Allocating space for working rasters of band %d", i);
-
-			iwr->bandarg[i].raster = (rt_raster *) palloc(sizeof(rt_raster) * iwr->bandarg[i].numraster);
-			if (iwr->bandarg[i].raster == NULL) {
-
-				rtpg_union_arg_destroy(iwr);
-				if (raster != NULL) {
-					rt_raster_destroy(raster);
-					PG_FREE_IF_COPY(pgraster, 1);
-				}
-
-				MemoryContextSwitchTo(oldcontext);
-				elog(ERROR, "RASTER_union_transfn: Could not allocate memory for working raster(s)");
-				PG_RETURN_NULL();
-			}
-
-			memset(iwr->bandarg[i].raster, 0, sizeof(rt_raster) * iwr->bandarg[i].numraster);
-
-			/* add new working rt_raster but only if working raster already exists */
-			if (i > 0 && !rt_raster_is_empty(iwr->bandarg[0].raster[0])) {
-				for (j = 0; j < iwr->bandarg[i].numraster; j++) {
-					iwr->bandarg[i].raster[j] = rt_raster_clone(iwr->bandarg[0].raster[0], 0); /* shallow clone */
-					if (iwr->bandarg[i].raster[j] == NULL) {
-
-						rtpg_union_arg_destroy(iwr);
-						if (raster != NULL) {
-							rt_raster_destroy(raster);
-							PG_FREE_IF_COPY(pgraster, 1);
-						}
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_union_transfn: Could not create working raster");
-						PG_RETURN_NULL();
-					}
-				}
-			}
-		}
-	}
-	/* only raster, no additional args */
-	/* only do this if raster isn't empty */
-	else {
-		POSTGIS_RT_DEBUG(4, "no additional args, checking input raster");
-		nbnodata = 1;
-		if (!rtpg_union_noarg(iwr, raster)) {
-
-			rtpg_union_arg_destroy(iwr);
-			if (raster != NULL) {
-				rt_raster_destroy(raster);
-				PG_FREE_IF_COPY(pgraster, 1);
-			}
-
-			MemoryContextSwitchTo(oldcontext);
-			elog(ERROR, "RASTER_union_transfn: Could not check and balance number of bands");
-			PG_RETURN_NULL();
-		}
-	}
-
-	/* init itrset */
-	itrset = palloc(sizeof(struct rt_iterator_t) * 2);
-	if (itrset == NULL) {
-
-		rtpg_union_arg_destroy(iwr);
-		if (raster != NULL) {
-			rt_raster_destroy(raster);
-			PG_FREE_IF_COPY(pgraster, 1);
-		}
-
-		MemoryContextSwitchTo(oldcontext);
-		elog(ERROR, "RASTER_union_transfn: Could not allocate memory for iterator arguments");
-		PG_RETURN_NULL();
-	}
-
-	/* by band to UNION */
-	for (i = 0; i < iwr->numband; i++) {
-
-		/* by raster */
-		for (j = 0; j < iwr->bandarg[i].numraster; j++) {
-			reuserast = 0;
-
-			/* type of union */
-			utype = iwr->bandarg[i].uniontype;
-
-			/* raster flags */
-			isempty[0] = rt_raster_is_empty(iwr->bandarg[i].raster[j]);
-			isempty[1] = rt_raster_is_empty(raster);
-
-			if (!isempty[0])
-				hasband[0] = rt_raster_has_band(iwr->bandarg[i].raster[j], 0);
-			if (!isempty[1])
-				hasband[1] = rt_raster_has_band(raster, iwr->bandarg[i].nband);
-
-			/* determine pixtype, hasnodata and nodataval */
-			_band = NULL;
-			if (!isempty[0] && hasband[0])
-				_band = rt_raster_get_band(iwr->bandarg[i].raster[j], 0);
-			else if (!isempty[1] && hasband[1])
-				_band = rt_raster_get_band(raster, iwr->bandarg[i].nband);
-			else {
-				pixtype = PT_64BF;
-				hasnodata = 1;
-				nodataval = rt_pixtype_get_min_value(pixtype);
-			}
-			if (_band != NULL) {
-				pixtype = rt_band_get_pixtype(_band);
-				hasnodata = 1;
-				if (rt_band_get_hasnodata_flag(_band))
-					rt_band_get_nodata(_band, &nodataval);
-				else
-					nodataval = rt_band_get_min_value(_band);
-			}
-
-			/* UT_MEAN and UT_RANGE require two passes */
-			/* UT_MEAN: first for UT_COUNT and second for UT_SUM */
-			if (iwr->bandarg[i].uniontype == UT_MEAN) {
-				/* first pass, UT_COUNT */
-				if (j < 1)
-					utype = UT_COUNT;
-				else
-					utype = UT_SUM;
-			}
-			/* UT_RANGE: first for UT_MIN and second for UT_MAX */
-			else if (iwr->bandarg[i].uniontype == UT_RANGE) {
-				/* first pass, UT_MIN */
-				if (j < 1)
-					utype = UT_MIN;
-				else
-					utype = UT_MAX;
-			}
-
-			/* force band settings for UT_COUNT */
-			if (utype == UT_COUNT) {
-				pixtype = PT_32BUI;
-				hasnodata = 0;
-				nodataval = 0;
-			}
-
-			POSTGIS_RT_DEBUGF(4, "(pixtype, hasnodata, nodataval) = (%s, %d, %f)", rt_pixtype_name(pixtype), hasnodata, nodataval);
-
-			/* set itrset */
-			itrset[0].raster = iwr->bandarg[i].raster[j];
-			itrset[0].nband = 0;
-			itrset[1].raster = raster;
-			itrset[1].nband = iwr->bandarg[i].nband;
-
-			/* allow use NODATA to replace missing bands */
-			if (nbnodata) {
-				itrset[0].nbnodata = 1;
-				itrset[1].nbnodata = 1;
-			}
-			/* missing bands are not ignored */
-			else {
-				itrset[0].nbnodata = 0;
-				itrset[1].nbnodata = 0;
-			}
-
-			/* if rasters AND bands are present, use copy approach */
-			if (!isempty[0] && !isempty[1] && hasband[0] && hasband[1]) {
-				POSTGIS_RT_DEBUG(3, "using line method");
-
-				/* generate empty out raster */
-				if (rt_raster_from_two_rasters(
-					iwr->bandarg[i].raster[j], raster,
-					ET_UNION,
-					&iraster, _offset 
-				) != ES_NONE) {
-
-					pfree(itrset);
-					rtpg_union_arg_destroy(iwr);
-					if (raster != NULL) {
-						rt_raster_destroy(raster);
-						PG_FREE_IF_COPY(pgraster, 1);
-					}
-
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_union_transfn: Could not create internal raster");
-					PG_RETURN_NULL();
-				}
-				POSTGIS_RT_DEBUGF(4, "_offset = %f, %f, %f, %f",
-					_offset[0], _offset[1], _offset[2], _offset[3]);
-
-				/* rasters are spatially the same? */
-				if (
-					rt_raster_get_width(iwr->bandarg[i].raster[j]) == rt_raster_get_width(iraster) &&
-					rt_raster_get_height(iwr->bandarg[i].raster[j]) == rt_raster_get_height(iraster)
-				) {
-					double igt[6] = {0};
-					double gt[6] = {0};
-
-					rt_raster_get_geotransform_matrix(iwr->bandarg[i].raster[j], gt);
-					rt_raster_get_geotransform_matrix(iraster, igt);
-
-					reuserast = rt_util_same_geotransform_matrix(gt, igt);
-				}
-
-				/* use internal raster */
-				if (!reuserast) {
-					/* create band of same type */
-					if (rt_raster_generate_new_band(
-						iraster,
-						pixtype,
-						nodataval,
-						hasnodata, nodataval,
-						0
-					) == -1) {
-
-						pfree(itrset);
-						rtpg_union_arg_destroy(iwr);
-						rt_raster_destroy(iraster);
-						if (raster != NULL) {
-							rt_raster_destroy(raster);
-							PG_FREE_IF_COPY(pgraster, 1);
-						}
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_union_transfn: Could not add new band to internal raster");
-						PG_RETURN_NULL();
-					}
-					iband = rt_raster_get_band(iraster, 0);
-
-					/* copy working raster to output raster */
-					_dim[0] = rt_raster_get_width(iwr->bandarg[i].raster[j]);
-					_dim[1] = rt_raster_get_height(iwr->bandarg[i].raster[j]);
-					for (y = 0; y < _dim[1]; y++) {
-						POSTGIS_RT_DEBUGF(4, "Getting pixel line of working raster at (x, y, length) = (0, %d, %d)", y, _dim[0]);
-						if (rt_band_get_pixel_line(
-							_band,
-							0, y,
-							_dim[0],
-							&vals, &nvals
-						) != ES_NONE) {
-
-							pfree(itrset);
-							rtpg_union_arg_destroy(iwr);
-							rt_band_destroy(iband);
-							rt_raster_destroy(iraster);
-							if (raster != NULL) {
-								rt_raster_destroy(raster);
-								PG_FREE_IF_COPY(pgraster, 1);
-							}
-
-							MemoryContextSwitchTo(oldcontext);
-							elog(ERROR, "RASTER_union_transfn: Could not get pixel line from band of working raster");
-							PG_RETURN_NULL();
-						}
-
-						POSTGIS_RT_DEBUGF(4, "Setting pixel line at (x, y, length) = (%d, %d, %d)", (int) _offset[0], (int) _offset[1] + y, nvals);
-						if (rt_band_set_pixel_line(
-							iband,
-							(int) _offset[0], (int) _offset[1] + y,
-							vals, nvals
-						) != ES_NONE) {
-
-							pfree(itrset);
-							rtpg_union_arg_destroy(iwr);
-							rt_band_destroy(iband);
-							rt_raster_destroy(iraster);
-							if (raster != NULL) {
-								rt_raster_destroy(raster);
-								PG_FREE_IF_COPY(pgraster, 1);
-							}
-
-							MemoryContextSwitchTo(oldcontext);
-							elog(ERROR, "RASTER_union_transfn: Could not set pixel line to band of internal raster");
-							PG_RETURN_NULL();
-						}
-					}
-				}
-				else {
-					rt_raster_destroy(iraster);
-					iraster = iwr->bandarg[i].raster[j];
-					iband = rt_raster_get_band(iraster, 0);
-				}
-
-				/* run iterator for extent of input raster */
-				noerr = rt_raster_iterator(
-					itrset, 2,
-					ET_LAST, NULL,
-					pixtype,
-					hasnodata, nodataval,
-					0, 0,
-					&utype,
-					rtpg_union_callback,
-					&_raster
-				);
-				if (noerr != ES_NONE) {
-
-					pfree(itrset);
-					rtpg_union_arg_destroy(iwr);
-					if (!reuserast) {
-						rt_band_destroy(iband);
-						rt_raster_destroy(iraster);
-					}
-					if (raster != NULL) {
-						rt_raster_destroy(raster);
-						PG_FREE_IF_COPY(pgraster, 1);
-					}
-
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_union_transfn: Could not run raster iterator function");
-					PG_RETURN_NULL();
-				}
-
-				/* with iterator raster, copy data to output raster */
-				_band = rt_raster_get_band(_raster, 0);
-				_dim[0] = rt_raster_get_width(_raster);
-				_dim[1] = rt_raster_get_height(_raster);
-				for (y = 0; y < _dim[1]; y++) {
-					POSTGIS_RT_DEBUGF(4, "Getting pixel line of iterator raster at (x, y, length) = (0, %d, %d)", y, _dim[0]);
-					if (rt_band_get_pixel_line(
-						_band,
-						0, y,
-						_dim[0],
-						&vals, &nvals
-					) != ES_NONE) {
-
-						pfree(itrset);
-						rtpg_union_arg_destroy(iwr);
-						if (!reuserast) {
-							rt_band_destroy(iband);
-							rt_raster_destroy(iraster);
-						}
-						if (raster != NULL) {
-							rt_raster_destroy(raster);
-							PG_FREE_IF_COPY(pgraster, 1);
-						}
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_union_transfn: Could not get pixel line from band of working raster");
-						PG_RETURN_NULL();
-					}
-
-					POSTGIS_RT_DEBUGF(4, "Setting pixel line at (x, y, length) = (%d, %d, %d)", (int) _offset[2], (int) _offset[3] + y, nvals);
-					if (rt_band_set_pixel_line(
-						iband,
-						(int) _offset[2], (int) _offset[3] + y,
-						vals, nvals
-					) != ES_NONE) {
-
-						pfree(itrset);
-						rtpg_union_arg_destroy(iwr);
-						if (!reuserast) {
-							rt_band_destroy(iband);
-							rt_raster_destroy(iraster);
-						}
-						if (raster != NULL) {
-							rt_raster_destroy(raster);
-							PG_FREE_IF_COPY(pgraster, 1);
-						}
-
-						MemoryContextSwitchTo(oldcontext);
-						elog(ERROR, "RASTER_union_transfn: Could not set pixel line to band of internal raster");
-						PG_RETURN_NULL();
-					}
-				}
-
-				/* free _raster */
-				rt_band_destroy(_band);
-				rt_raster_destroy(_raster);
-
-				/* replace working raster with output raster */
-				_raster = iraster;
-			}
-			else {
-				POSTGIS_RT_DEBUG(3, "using pixel method");
-
-				/* pass everything to iterator */
-				noerr = rt_raster_iterator(
-					itrset, 2,
-					ET_UNION, NULL,
-					pixtype,
-					hasnodata, nodataval,
-					0, 0,
-					&utype,
-					rtpg_union_callback,
-					&_raster
-				);
-
-				if (noerr != ES_NONE) {
-
-					pfree(itrset);
-					rtpg_union_arg_destroy(iwr);
-					if (raster != NULL) {
-						rt_raster_destroy(raster);
-						PG_FREE_IF_COPY(pgraster, 1);
-					}
-
-					MemoryContextSwitchTo(oldcontext);
-					elog(ERROR, "RASTER_union_transfn: Could not run raster iterator function");
-					PG_RETURN_NULL();
-				}
-			}
-
-			/* replace working raster */
-			if (iwr->bandarg[i].raster[j] != NULL && !reuserast) {
-				for (k = rt_raster_get_num_bands(iwr->bandarg[i].raster[j]) - 1; k >= 0; k--)
-					rt_band_destroy(rt_raster_get_band(iwr->bandarg[i].raster[j], k));
-				rt_raster_destroy(iwr->bandarg[i].raster[j]);
-			}
-			iwr->bandarg[i].raster[j] = _raster;
-		}
-
-	}
-
-	pfree(itrset);
-	if (raster != NULL) {
-		rt_raster_destroy(raster);
-		PG_FREE_IF_COPY(pgraster, 1);
-	}
-
-	/* switch back to local context */
-	MemoryContextSwitchTo(oldcontext);
-
-	POSTGIS_RT_DEBUG(3, "Finished");
-
-	PG_RETURN_POINTER(iwr);
-}
-
-/* UNION aggregate final function */
-PG_FUNCTION_INFO_V1(RASTER_union_finalfn);
-Datum RASTER_union_finalfn(PG_FUNCTION_ARGS)
-{
-	rtpg_union_arg iwr;
-	rt_raster _rtn = NULL;
-	rt_raster _raster = NULL;
-	rt_pgraster *pgraster = NULL;
-
-	int i = 0;
-	int j = 0;
-	rt_iterator itrset = NULL;
-	rt_band _band = NULL;
-	int noerr = 1;
-	int status = 0;
-	rt_pixtype pixtype = PT_END;
-	int hasnodata = 0;
-	double nodataval = 0;
-
-	POSTGIS_RT_DEBUG(3, "Starting...");
-
-	/* cannot be called directly as this is exclusive aggregate function */
-	if (!AggCheckCallContext(fcinfo, NULL)) {
-		elog(ERROR, "RASTER_union_finalfn: Cannot be called in a non-aggregate context");
-		PG_RETURN_NULL();
-	}
-
-	/* NULL, return null */
-	if (PG_ARGISNULL(0))
-		PG_RETURN_NULL();
-
-	iwr = (rtpg_union_arg) PG_GETARG_POINTER(0);
-
-	/* init itrset */
-	itrset = palloc(sizeof(struct rt_iterator_t) * 2);
-	if (itrset == NULL) {
-		rtpg_union_arg_destroy(iwr);
-		elog(ERROR, "RASTER_union_finalfn: Could not allocate memory for iterator arguments");
-		PG_RETURN_NULL();
-	}
-
-	for (i = 0; i < iwr->numband; i++) {
-		if (
-			iwr->bandarg[i].uniontype == UT_MEAN ||
-			iwr->bandarg[i].uniontype == UT_RANGE
-		) {
-			/* raster containing the SUM or MAX is at index 1 */
-			_band = rt_raster_get_band(iwr->bandarg[i].raster[1], 0);
-
-			pixtype = rt_band_get_pixtype(_band);
-			hasnodata = rt_band_get_hasnodata_flag(_band);
-			if (hasnodata)
-				rt_band_get_nodata(_band, &nodataval);
-			POSTGIS_RT_DEBUGF(4, "(pixtype, hasnodata, nodataval) = (%s, %d, %f)", rt_pixtype_name(pixtype), hasnodata, nodataval);
-
-			itrset[0].raster = iwr->bandarg[i].raster[0];
-			itrset[0].nband = 0;
-			itrset[1].raster = iwr->bandarg[i].raster[1];
-			itrset[1].nband = 0;
-
-			/* pass everything to iterator */
-			if (iwr->bandarg[i].uniontype == UT_MEAN) {
-				noerr = rt_raster_iterator(
-					itrset, 2,
-					ET_UNION, NULL,
-					pixtype,
-					hasnodata, nodataval,
-					0, 0,
-					NULL,
-					rtpg_union_mean_callback,
-					&_raster
-				);
-			}
-			else if (iwr->bandarg[i].uniontype == UT_RANGE) {
-				noerr = rt_raster_iterator(
-					itrset, 2,
-					ET_UNION, NULL,
-					pixtype,
-					hasnodata, nodataval,
-					0, 0,
-					NULL,
-					rtpg_union_range_callback,
-					&_raster
-				);
-			}
-
-			if (noerr != ES_NONE) {
-				pfree(itrset);
-				rtpg_union_arg_destroy(iwr);
-				if (_rtn != NULL)
-					rt_raster_destroy(_rtn);
-				elog(ERROR, "RASTER_union_finalfn: Could not run raster iterator function");
-				PG_RETURN_NULL();
-			}
-		}
-		else
-			_raster = iwr->bandarg[i].raster[0];
-
-		/* first band, _rtn doesn't exist */
-		if (i < 1) {
-			uint32_t bandNums[1] = {0};
-			_rtn = rt_raster_from_band(_raster, bandNums, 1);
-			status = (_rtn == NULL) ? -1 : 0;
-		}
-		else
-			status = rt_raster_copy_band(_rtn, _raster, 0, i);
-
-		POSTGIS_RT_DEBUG(4, "destroying source rasters");
-
-		/* destroy source rasters */
-		if (
-			iwr->bandarg[i].uniontype == UT_MEAN ||
-			iwr->bandarg[i].uniontype == UT_RANGE
-		) {
-			rt_raster_destroy(_raster);
-		}
-			
-		for (j = 0; j < iwr->bandarg[i].numraster; j++) {
-			if (iwr->bandarg[i].raster[j] == NULL)
-				continue;
-			rt_raster_destroy(iwr->bandarg[i].raster[j]);
-			iwr->bandarg[i].raster[j] = NULL;
-		}
-
-		if (status < 0) {
-			rtpg_union_arg_destroy(iwr);
-			rt_raster_destroy(_rtn);
-			elog(ERROR, "RASTER_union_finalfn: Could not add band to final raster");
-			PG_RETURN_NULL();
-		}
-	}
-
-	/* cleanup */
-	pfree(itrset);
-	rtpg_union_arg_destroy(iwr);
-
-	if (!_rtn) PG_RETURN_NULL();
-
-	pgraster = rt_raster_serialize(_rtn);
-	rt_raster_destroy(_rtn);
-
-	POSTGIS_RT_DEBUG(3, "Finished");
-
-	if (!pgraster)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgraster, pgraster->size);
-	PG_RETURN_POINTER(pgraster);
-}
-
-/* ---------------------------------------------------------------- */
-/* Clip raster with geometry                                        */
-/* ---------------------------------------------------------------- */
-
-typedef struct rtpg_clip_band_t *rtpg_clip_band;
-struct rtpg_clip_band_t {
-	int nband; /* band index */
-	int hasnodata; /* is there a user-specified NODATA? */
-	double nodataval; /* user-specified NODATA */
-};
-
-typedef struct rtpg_clip_arg_t *rtpg_clip_arg;
-struct rtpg_clip_arg_t {
-	rt_extenttype extenttype;
-	rt_raster raster;
-	rt_raster mask;
-
-	int numbands; /* number of bandargs */
-	rtpg_clip_band band;
-};
-
-static rtpg_clip_arg rtpg_clip_arg_init() {
-	rtpg_clip_arg arg = NULL;
-
-	arg = palloc(sizeof(struct rtpg_clip_arg_t));
-	if (arg == NULL) {
-		elog(ERROR, "rtpg_clip_arg_init: Could not allocate memory for function arguments");
-		return NULL;
-	}
-
-	arg->extenttype = ET_INTERSECTION;
-	arg->raster = NULL;
-	arg->mask = NULL;
-	arg->numbands = 0;
-	arg->band = NULL;
-
-	return arg;
-}
-
-static void rtpg_clip_arg_destroy(rtpg_clip_arg arg) {
-	if (arg->band != NULL)
-		pfree(arg->band);
-
-	if (arg->raster != NULL)
-		rt_raster_destroy(arg->raster);
-	if (arg->mask != NULL)
-		rt_raster_destroy(arg->mask);
-
-	pfree(arg);
-}
-
-static int rtpg_clip_callback(
-	rt_iterator_arg arg, void *userarg,
-	double *value, int *nodata
-) {
-	*value = 0;
-	*nodata = 0;
-
-	/* either is NODATA, output is NODATA */
-	if (arg->nodata[0][0][0] || arg->nodata[1][0][0])
-		*nodata = 1;
-	/* set to value */
-	else
-		*value = arg->values[0][0][0];
-
-	return 1;
-}
-
-PG_FUNCTION_INFO_V1(RASTER_clip);
-Datum RASTER_clip(PG_FUNCTION_ARGS)
-{
-	rt_pgraster *pgraster = NULL;
-	LWGEOM *rastgeom = NULL;
-	double gt[6] = {0};
-	int srid = SRID_UNKNOWN;
-
-	rt_pgraster *pgrtn = NULL;
-	rt_raster rtn = NULL;
-
-	GSERIALIZED *gser = NULL;
-	LWGEOM *geom = NULL;
-	unsigned char *wkb = NULL;
-	size_t wkb_len;
-
-	ArrayType *array;
-	Oid etype;
-	Datum *e;
-	bool *nulls;
-
-	int16 typlen;
-	bool typbyval;
-	char typalign;
-
-	int i = 0;
-	int j = 0;
-	int k = 0;
-	rtpg_clip_arg arg = NULL;
-	LWGEOM *tmpgeom = NULL;
-	rt_iterator itrset;
-
-	rt_raster _raster = NULL;
-	rt_band band = NULL;
-	rt_pixtype pixtype;
-	int hasnodata;
-	double nodataval;
-	int noerr = 0;
-
-	POSTGIS_RT_DEBUG(3, "Starting...");
-
-	/* raster or geometry is NULL, return NULL */
-	if (PG_ARGISNULL(0) || PG_ARGISNULL(2))
-		PG_RETURN_NULL();
-
-	/* init arg */
-	arg = rtpg_clip_arg_init();
-	if (arg == NULL) {
-		elog(ERROR, "RASTER_clip: Could not initialize argument structure");
-		PG_RETURN_NULL();
-	}
-
-	/* raster (0) */
-	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
-
-	/* Get raster object */
-	arg->raster = rt_raster_deserialize(pgraster, FALSE);
-	if (arg->raster == NULL) {
-		rtpg_clip_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_clip: Could not deserialize raster");
-		PG_RETURN_NULL();
-	}
-
-	/* raster is empty, return empty raster */
-	if (rt_raster_is_empty(arg->raster)) {
-		elog(NOTICE, "Input raster is empty. Returning empty raster");
-
-		rtpg_clip_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-
-		rtn = rt_raster_new(0, 0);
-		if (rtn == NULL) {
-			elog(ERROR, "RASTER_clip: Could not create empty raster");
-			PG_RETURN_NULL();
-		}
-
-		pgrtn = rt_raster_serialize(rtn);
-		rt_raster_destroy(rtn);
-		if (NULL == pgrtn)
-			PG_RETURN_NULL();
-
-		SET_VARSIZE(pgrtn, pgrtn->size);
-		PG_RETURN_POINTER(pgrtn);
-	}
-
-	/* metadata */
-	rt_raster_get_geotransform_matrix(arg->raster, gt);
-	srid = clamp_srid(rt_raster_get_srid(arg->raster));
-
-	/* geometry (2) */
-	gser = (GSERIALIZED *) PG_DETOAST_DATUM(PG_GETARG_DATUM(2));
-	geom = lwgeom_from_gserialized(gser);
-
-	/* Get a 2D version of the geometry if necessary */
-	if (lwgeom_ndims(geom) > 2) {
-		LWGEOM *geom2d = lwgeom_force_2d(geom);
-		lwgeom_free(geom);
-		geom = geom2d;
-	}
-
-	/* check that SRIDs match */
-	if (srid != clamp_srid(gserialized_get_srid(gser))) {
-		elog(NOTICE, "Geometry provided does not have the same SRID as the raster. Returning NULL");
-
-		rtpg_clip_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		lwgeom_free(geom);
-		PG_FREE_IF_COPY(gser, 2);
-
-		PG_RETURN_NULL();
-	}
-
-	/* crop (4) */
-	if (!PG_ARGISNULL(4) && !PG_GETARG_BOOL(4))
-		arg->extenttype = ET_FIRST;
-
-	/* get intersection geometry of input raster and input geometry */
-	if (rt_raster_get_convex_hull(arg->raster, &rastgeom) != ES_NONE) {
-
-		rtpg_clip_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		lwgeom_free(geom);
-		PG_FREE_IF_COPY(gser, 2);
-
-		elog(ERROR, "RASTER_clip: Could not get convex hull of raster");
-		PG_RETURN_NULL();
-	}
-
-	tmpgeom = lwgeom_intersection(rastgeom, geom);
-	lwgeom_free(rastgeom);
-	lwgeom_free(geom);
-	PG_FREE_IF_COPY(gser, 2);
-	geom = tmpgeom;
-
-	/* intersection is empty AND extent type is INTERSECTION, return empty */
-	if (lwgeom_is_empty(geom) && arg->extenttype == ET_INTERSECTION) {
-		elog(NOTICE, "The input raster and input geometry do not intersect. Returning empty raster");
-
-		rtpg_clip_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		lwgeom_free(geom);
-
-		rtn = rt_raster_new(0, 0);
-		if (rtn == NULL) {
-			elog(ERROR, "RASTER_clip: Could not create empty raster");
-			PG_RETURN_NULL();
-		}
-
-		pgrtn = rt_raster_serialize(rtn);
-		rt_raster_destroy(rtn);
-		if (NULL == pgrtn)
-			PG_RETURN_NULL();
-
-		SET_VARSIZE(pgrtn, pgrtn->size);
-		PG_RETURN_POINTER(pgrtn);
-	}
-
-	/* nband (1) */
-	if (!PG_ARGISNULL(1)) {
-		array = PG_GETARG_ARRAYTYPE_P(1);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case INT2OID:
-			case INT4OID:
-				break;
-			default:
-				rtpg_clip_arg_destroy(arg);
-				PG_FREE_IF_COPY(pgraster, 0);
-				lwgeom_free(geom);
-				elog(ERROR, "RASTER_clip: Invalid data type for band indexes");
-				PG_RETURN_NULL();
-				break;
-		}
-
-		deconstruct_array(
-			array, etype,
-			typlen, typbyval, typalign,
-			&e, &nulls, &(arg->numbands)
-		);
-
-		arg->band = palloc(sizeof(struct rtpg_clip_band_t) * arg->numbands);
-		if (arg->band == NULL) {
-			rtpg_clip_arg_destroy(arg);
-			PG_FREE_IF_COPY(pgraster, 0);
-			lwgeom_free(geom);
-			elog(ERROR, "RASTER_clip: Could not allocate memory for band arguments");
-			PG_RETURN_NULL();
-		}
-
-		for (i = 0, j = 0; i < arg->numbands; i++) {
-			if (nulls[i]) continue;
-
-			switch (etype) {
-				case INT2OID:
-					arg->band[j].nband = DatumGetInt16(e[i]) - 1;
-					break;
-				case INT4OID:
-					arg->band[j].nband = DatumGetInt32(e[i]) - 1;
-					break;
-			}
-
-			j++;
-		}
-
-		if (j < arg->numbands) {
-			arg->band = repalloc(arg->band, sizeof(struct rtpg_clip_band_t) * j);
-			if (arg->band == NULL) {
-				rtpg_clip_arg_destroy(arg);
-				PG_FREE_IF_COPY(pgraster, 0);
-				lwgeom_free(geom);
-				elog(ERROR, "RASTER_clip: Could not reallocate memory for band arguments");
-				PG_RETURN_NULL();
-			}
-
-			arg->numbands = j;
-		}
-
-		/* validate band */
-		for (i = 0; i < arg->numbands; i++) {
-			if (!rt_raster_has_band(arg->raster, arg->band[i].nband)) {
-				elog(NOTICE, "Band at index %d not found in raster", arg->band[i].nband + 1);
-				rtpg_clip_arg_destroy(arg);
-				PG_FREE_IF_COPY(pgraster, 0);
-				lwgeom_free(geom);
-				PG_RETURN_NULL();
-			}
-
-			arg->band[i].hasnodata = 0;
-			arg->band[i].nodataval = 0;
-		}
-	}
-	else {
-		arg->numbands = rt_raster_get_num_bands(arg->raster);
-
-		/* raster may have no bands */
-		if (arg->numbands) {
-			arg->band = palloc(sizeof(struct rtpg_clip_band_t) * arg->numbands);
-			if (arg->band == NULL) {
-
-				rtpg_clip_arg_destroy(arg);
-				PG_FREE_IF_COPY(pgraster, 0);
-				lwgeom_free(geom);
-
-				elog(ERROR, "RASTER_clip: Could not allocate memory for band arguments");
-				PG_RETURN_NULL();
-			}
-
-			for (i = 0; i < arg->numbands; i++) {
-				arg->band[i].nband = i;
-				arg->band[i].hasnodata = 0;
-				arg->band[i].nodataval = 0;
-			}
-		}
-	}
-
-	/* nodataval (3) */
-	if (!PG_ARGISNULL(3)) {
-		array = PG_GETARG_ARRAYTYPE_P(3);
-		etype = ARR_ELEMTYPE(array);
-		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
-
-		switch (etype) {
-			case FLOAT4OID:
-			case FLOAT8OID:
-				break;
-			default:
-				rtpg_clip_arg_destroy(arg);
-				PG_FREE_IF_COPY(pgraster, 0);
-				lwgeom_free(geom);
-				elog(ERROR, "RASTER_clip: Invalid data type for NODATA values");
-				PG_RETURN_NULL();
-				break;
-		}
-
-		deconstruct_array(
-			array, etype,
-			typlen, typbyval, typalign,
-			&e, &nulls, &k
-		);
-
-		/* it doesn't matter if there are more nodataval */
-		for (i = 0, j = 0; i < arg->numbands; i++, j++) {
-			/* cap j to the last nodataval element */
-			if (j >= k)
-				j = k - 1;
-
-			if (nulls[j])
-				continue;
-
-			arg->band[i].hasnodata = 1;
-			switch (etype) {
-				case FLOAT4OID:
-					arg->band[i].nodataval = DatumGetFloat4(e[j]);
-					break;
-				case FLOAT8OID:
-					arg->band[i].nodataval = DatumGetFloat8(e[j]);
-					break;
-			}
-		}
-	}
-
-	/* get wkb of geometry */
-	POSTGIS_RT_DEBUG(3, "getting wkb of geometry");
-	wkb = lwgeom_to_wkb(geom, WKB_SFSQL, &wkb_len);
-	lwgeom_free(geom);
-
-	/* rasterize geometry */
-	arg->mask = rt_raster_gdal_rasterize(
-		wkb, wkb_len,
-		NULL,
-		0, NULL,
-		NULL, NULL,
-		NULL, NULL,
-		NULL, NULL,
-		&(gt[1]), &(gt[5]),
-		NULL, NULL,
-		&(gt[0]), &(gt[3]),
-		&(gt[2]), &(gt[4]),
-		NULL
-	);
-
-	pfree(wkb);
-	if (arg->mask == NULL) {
-		rtpg_clip_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_clip: Could not rasterize intersection geometry");
-		PG_RETURN_NULL();
-	}
-
-	/* set SRID */
-	rt_raster_set_srid(arg->mask, srid);
-
-	/* run iterator */
-
-	/* init itrset */
-	itrset = palloc(sizeof(struct rt_iterator_t) * 2);
-	if (itrset == NULL) {
-		rtpg_clip_arg_destroy(arg);
-		PG_FREE_IF_COPY(pgraster, 0);
-		elog(ERROR, "RASTER_clip: Could not allocate memory for iterator arguments");
-		PG_RETURN_NULL();
-	}
-
-	/* one band at a time */
-	for (i = 0; i < arg->numbands; i++) {
-		POSTGIS_RT_DEBUGF(4, "band arg %d (nband, hasnodata, nodataval) = (%d, %d, %f)",
-			i, arg->band[i].nband, arg->band[i].hasnodata, arg->band[i].nodataval);
-
-		band = rt_raster_get_band(arg->raster, arg->band[i].nband);
-
-		/* band metadata */
-		pixtype = rt_band_get_pixtype(band);
-
-		if (arg->band[i].hasnodata) {
-			hasnodata = 1;
-			nodataval = arg->band[i].nodataval;
-		}
-		else if (rt_band_get_hasnodata_flag(band)) {
-			hasnodata = 1;
-			rt_band_get_nodata(band, &nodataval);
-		}
-		else {
-			hasnodata = 0;
-			nodataval = rt_band_get_min_value(band);
-		}
-
-		/* band is NODATA, create NODATA band and continue */
-		if (rt_band_get_isnodata_flag(band)) {
-			/* create raster */
-			if (rtn == NULL) {
-				noerr = rt_raster_from_two_rasters(arg->raster, arg->mask, arg->extenttype, &rtn, NULL);
-				if (noerr != ES_NONE) {
-					rtpg_clip_arg_destroy(arg);
-					PG_FREE_IF_COPY(pgraster, 0);
-					elog(ERROR, "RASTER_clip: Could not create output raster");
-					PG_RETURN_NULL();
-				}
-			}
-
-			/* create NODATA band */
-			if (rt_raster_generate_new_band(rtn, pixtype, nodataval, hasnodata, nodataval, i) < 0) {
-				rt_raster_destroy(rtn);
-				rtpg_clip_arg_destroy(arg);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_clip: Could not add NODATA band to output raster");
-				PG_RETURN_NULL();
-			}
-
-			continue;
-		}
-
-		/* raster */
-		itrset[0].raster = arg->raster;
-		itrset[0].nband = arg->band[i].nband;
-		itrset[0].nbnodata = 1;
-
-		/* mask */
-		itrset[1].raster = arg->mask;
-		itrset[1].nband = 0;
-		itrset[1].nbnodata = 1;
-
-		/* pass to iterator */
-		noerr = rt_raster_iterator(
-			itrset, 2,
-			arg->extenttype, NULL,
-			pixtype,
-			hasnodata, nodataval,
-			0, 0,
-			NULL,
-			rtpg_clip_callback,
-			&_raster
-		);
-
-		if (noerr != ES_NONE) {
-			pfree(itrset);
-			rtpg_clip_arg_destroy(arg);
-			if (rtn != NULL) rt_raster_destroy(rtn);
-			PG_FREE_IF_COPY(pgraster, 0);
-			elog(ERROR, "RASTER_clip: Could not run raster iterator function");
-			PG_RETURN_NULL();
-		}
-
-		/* new raster */
-		if (rtn == NULL)
-			rtn = _raster;
-		/* copy band */
-		else {
-			band = rt_raster_get_band(_raster, 0);
-			if (band == NULL) {
-				pfree(itrset);
-				rtpg_clip_arg_destroy(arg);
-				rt_raster_destroy(_raster);
-				rt_raster_destroy(rtn);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_clip: Could not get band from working raster");
-				PG_RETURN_NULL();
-			}
-
-			if (rt_raster_add_band(rtn, band, i) < 0) {
-				pfree(itrset);
-				rtpg_clip_arg_destroy(arg);
-				rt_raster_destroy(_raster);
-				rt_raster_destroy(rtn);
-				PG_FREE_IF_COPY(pgraster, 0);
-				elog(ERROR, "RASTER_clip: Could not add new band to output raster");
-				PG_RETURN_NULL();
-			}
-
-			rt_raster_destroy(_raster);
-		}
-	}
-
-	pfree(itrset);
-	rtpg_clip_arg_destroy(arg);
-	PG_FREE_IF_COPY(pgraster, 0);
-
-	pgrtn = rt_raster_serialize(rtn);
-	rt_raster_destroy(rtn);
-
-	POSTGIS_RT_DEBUG(3, "Finished");
-
-	if (!pgrtn)
-		PG_RETURN_NULL();
-
-	SET_VARSIZE(pgrtn, pgrtn->size);
-	PG_RETURN_POINTER(pgrtn);
-}
-
-/* ---------------------------------------------------------------- */
-/*  Memory allocation / error reporting hooks                       */
-/*  TODO: reuse the ones in libpgcommon ?                           */
-/* ---------------------------------------------------------------- */
-
-static void *
-rt_pg_alloc(size_t size)
-{
-    void * result;
-
-    POSTGIS_RT_DEBUGF(5, "rt_pgalloc(%ld) called", (long int) size);
-
-    result = palloc(size);
-
-    return result;
-}
-
-static void *
-rt_pg_realloc(void *mem, size_t size)
-{
-    void * result;
-
-    POSTGIS_RT_DEBUGF(5, "rt_pg_realloc(%ld) called", (long int) size);
-
-    if (mem)
-        result = repalloc(mem, size);
-
-    else
-        result = palloc(size);
-
-    return result;
-}
-
-static void
-rt_pg_free(void *ptr)
-{
-    POSTGIS_RT_DEBUG(5, "rt_pfree called");
-    pfree(ptr);
-}
-
-static void
-rt_pg_error(const char *fmt, va_list ap)
-{
-#define ERRMSG_MAXLEN 256
-
-    char errmsg[ERRMSG_MAXLEN+1];
-
-    vsnprintf (errmsg, ERRMSG_MAXLEN, fmt, ap);
-
-    errmsg[ERRMSG_MAXLEN]='\0';
-    ereport(ERROR, (errmsg_internal("%s", errmsg)));
-}
-
-static void
-rt_pg_notice(const char *fmt, va_list ap)
-{
-    char *msg;
-
-    /*
-     * This is a GNU extension.
-     * Dunno how to handle errors here.
-     */
-    if (!lw_vasprintf (&msg, fmt, ap))
-    {
-        va_end (ap);
-        return;
-    }
-    ereport(NOTICE, (errmsg_internal("%s", msg)));
-    free(msg);
-}
-
-
-void
-rt_init_allocators(void)
-{
-    /* raster callback - install raster handlers */
-    rt_set_handlers(rt_pg_alloc, rt_pg_realloc, rt_pg_free, rt_pg_error,
-            rt_pg_notice, rt_pg_notice);
-}
-
diff --git a/raster/rt_pg/rt_pg.h b/raster/rt_pg/rt_pg.h
deleted file mode 100644
index 0c36df7..0000000
--- a/raster/rt_pg/rt_pg.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * $Id: rt_pg.h 12738 2014-07-06 17:35:36Z dustymugs $
- *
- * WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
- *
- * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
- * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
- * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
- * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
- * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public 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 RT_PG_H_INCLUDED
-#define RT_PG_H_INCLUDED
-
-#include <stdint.h> /* for int16_t and friends */
-
-#include "rt_api.h"
-#include "../../postgis_config.h"
-#include "../raster_config.h"
-
-/* Debugging macros */
-#if POSTGIS_DEBUG_LEVEL > 0
-
-/* Display a simple message at NOTICE level */
-#define POSTGIS_RT_DEBUG(level, msg) \
-    do { \
-        if (POSTGIS_DEBUG_LEVEL >= level) \
-            ereport(NOTICE, (errmsg_internal("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__))); \
-    } while (0);
-
-/* Display a formatted message at NOTICE level (like printf, with variadic arguments) */
-#define POSTGIS_RT_DEBUGF(level, msg, ...) \
-    do { \
-        if (POSTGIS_DEBUG_LEVEL >= level) \
-        ereport(NOTICE, (errmsg_internal("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__, __VA_ARGS__))); \
-    } while (0);
-
-#else
-
-/* Empty prototype that can be optimised away by the compiler for non-debug builds */
-#define POSTGIS_RT_DEBUG(level, msg) \
-    ((void) 0)
-
-/* Empty prototype that can be optimised away by the compiler for non-debug builds */
-#define POSTGIS_RT_DEBUGF(level, msg, ...) \
-    ((void) 0)
-
-#endif
-
-
-typedef struct rt_pgband8_t {
-    uint8_t pixtype;
-    uint8_t data[1];
-} rt_pgband8;
-
-typedef struct rt_pgband16_t {
-    uint8_t pixtype;
-    uint8_t pad;
-    uint8_t data[1];
-} rt_pgband16;
-
-typedef struct rt_pgband32_t {
-    uint8_t pixtype;
-    uint8_t pad0;
-    uint8_t pad1;
-    uint8_t pad2;
-    uint8_t data[1];
-} rt_pgband32;
-
-typedef struct rt_pgband64_t {
-    uint8_t pixtype;
-    uint8_t pad[7];
-    uint8_t data[1];
-} rt_pgband64;
-
-typedef struct rt_pgband_t {
-    uint8_t pixtype;
-    uint8_t data[1];
-} rt_pgband;
-
-/* Header of PostgreSQL-stored RASTER value,
- * and binary representation of it */
-typedef struct rt_raster_serialized_t rt_pgraster;
-
-#endif /* RT_PG_H_INCLUDED */
diff --git a/raster/rt_pg/rtpg_band_properties.c b/raster/rt_pg/rtpg_band_properties.c
new file mode 100644
index 0000000..142585a
--- /dev/null
+++ b/raster/rt_pg/rtpg_band_properties.c
@@ -0,0 +1,736 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h>
+#include <fmgr.h>
+#include <funcapi.h>
+#include <utils/builtins.h>
+#include "utils/lsyscache.h" /* for get_typlenbyvalalign */
+#include "utils/array.h" /* for ArrayType */
+#include "catalog/pg_type.h" /* for INT2OID, INT4OID, FLOAT4OID, FLOAT8OID and TEXTOID */
+
+#include "../../postgis_config.h"
+
+#if POSTGIS_PGSQL_VERSION > 92
+#include "access/htup_details.h" /* for heap_form_tuple() */
+#endif
+
+#include "rtpostgis.h"
+
+/* Get all the properties of a raster band */
+Datum RASTER_getBandPixelType(PG_FUNCTION_ARGS);
+Datum RASTER_getBandPixelTypeName(PG_FUNCTION_ARGS);
+Datum RASTER_getBandNoDataValue(PG_FUNCTION_ARGS);
+Datum RASTER_getBandPath(PG_FUNCTION_ARGS);
+Datum RASTER_bandIsNoData(PG_FUNCTION_ARGS);
+
+/* get raster band's meta data */
+Datum RASTER_bandmetadata(PG_FUNCTION_ARGS);
+
+/* Set all the properties of a raster band */
+Datum RASTER_setBandIsNoData(PG_FUNCTION_ARGS);
+Datum RASTER_setBandNoDataValue(PG_FUNCTION_ARGS);
+
+/**
+ * Return pixel type of the specified band of raster.
+ * Band index is 1-based.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getBandPixelType);
+Datum RASTER_getBandPixelType(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_raster raster = NULL;
+    rt_band band = NULL;
+    rt_pixtype pixtype;
+    int32_t bandindex;
+
+    /* Deserialize raster */
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+    /* Index is 1-based */
+    bandindex = PG_GETARG_INT32(1);
+    if ( bandindex < 1 ) {
+        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    raster = rt_raster_deserialize(pgraster, FALSE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getBandPixelType: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    /* Fetch requested band and its pixel type */
+    band = rt_raster_get_band(raster, bandindex - 1);
+    if ( ! band ) {
+        elog(NOTICE, "Could not find raster band of index %d when getting pixel type. Returning NULL", bandindex);
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    pixtype = rt_band_get_pixtype(band);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_INT32(pixtype);
+}
+
+/**
+ * Return name of pixel type of the specified band of raster.
+ * Band index is 1-based.
+ * NOTE: This is unofficial utility not included in the spec.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getBandPixelTypeName);
+Datum RASTER_getBandPixelTypeName(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_raster raster = NULL;
+    rt_band band = NULL;
+    rt_pixtype pixtype;
+    int32_t bandindex;
+    const size_t name_size = 8; /* size of type name */
+    size_t size = 0;
+    char *ptr = NULL;
+    text *result = NULL;
+
+    /* Deserialize raster */
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+    /* Index is 1-based */
+    bandindex = PG_GETARG_INT32(1);
+    if ( bandindex < 1 ) {
+        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    raster = rt_raster_deserialize(pgraster, FALSE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getBandPixelTypeName: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    /* Fetch requested band and its pixel type */
+    band = rt_raster_get_band(raster, bandindex - 1);
+    if ( ! band ) {
+        elog(NOTICE, "Could not find raster band of index %d when getting pixel type name. Returning NULL", bandindex);
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    pixtype = rt_band_get_pixtype(band);
+
+    result = palloc(VARHDRSZ + name_size);
+    /* We don't need to check for NULL pointer, because if out of memory, palloc
+     * exit via elog(ERROR). It never returns NULL.
+     */
+
+    memset(VARDATA(result), 0, name_size);
+    ptr = (char *)result + VARHDRSZ;
+		strcpy(ptr, rt_pixtype_name(pixtype));
+
+    size = VARHDRSZ + strlen(ptr);
+    SET_VARSIZE(result, size);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_TEXT_P(result);
+}
+
+/**
+ * Return nodata value of the specified band of raster.
+ * The value is always returned as FLOAT32 even if the pixel type is INTEGER.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getBandNoDataValue);
+Datum RASTER_getBandNoDataValue(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_raster raster = NULL;
+    rt_band band = NULL;
+    int32_t bandindex;
+    double nodata;
+
+    /* Deserialize raster */
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+    /* Index is 1-based */
+    bandindex = PG_GETARG_INT32(1);
+    if ( bandindex < 1 ) {
+        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    raster = rt_raster_deserialize(pgraster, FALSE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getBandNoDataValue: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    /* Fetch requested band and its nodata value */
+    band = rt_raster_get_band(raster, bandindex - 1);
+    if ( ! band ) {
+        elog(NOTICE, "Could not find raster band of index %d when getting band nodata value. Returning NULL", bandindex);
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    if ( ! rt_band_get_hasnodata_flag(band) ) {
+        /* Raster does not have a nodata value set so we return NULL */
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    rt_band_get_nodata(band, &nodata);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(nodata);
+}
+
+
+PG_FUNCTION_INFO_V1(RASTER_bandIsNoData);
+Datum RASTER_bandIsNoData(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_raster raster = NULL;
+    rt_band band = NULL;
+    int32_t bandindex;
+    bool forcechecking = FALSE;
+    bool bandisnodata = FALSE;
+
+    /* Index is 1-based */
+    bandindex = PG_GETARG_INT32(1);
+    if ( bandindex < 1 ) {
+        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+        PG_RETURN_NULL();
+    }
+
+    /* Deserialize raster */
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+    raster = rt_raster_deserialize(pgraster, FALSE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_bandIsNoData: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    /* Fetch requested band and its nodata value */
+    band = rt_raster_get_band(raster, bandindex - 1);
+    if ( ! band ) {
+        elog(NOTICE, "Could not find raster band of index %d when determining if band is nodata. Returning NULL", bandindex);
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    forcechecking = PG_GETARG_BOOL(2);
+
+    bandisnodata = (forcechecking) ?
+        rt_band_check_is_nodata(band) : rt_band_get_isnodata_flag(band);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_BOOL(bandisnodata);
+}
+
+/**
+ * Return the path of the raster for out-db raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getBandPath);
+Datum RASTER_getBandPath(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	int32_t bandindex;
+	const char *bandpath;
+	text *result;
+
+	/* Index is 1-based */
+	bandindex = PG_GETARG_INT32(1);
+	if ( bandindex < 1 ) {
+		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+		PG_RETURN_NULL();
+	}
+
+	/* Deserialize raster */
+	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+	pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_getBandPath: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* Fetch requested band */
+	band = rt_raster_get_band(raster, bandindex - 1);
+	if (!band) {
+		elog(
+			NOTICE,
+			"Could not find raster band of index %d when getting band path. Returning NULL",
+			bandindex
+		);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	bandpath = rt_band_get_ext_path(band);
+	if (!bandpath) {
+		rt_band_destroy(band);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	result = (text *) palloc(VARHDRSZ + strlen(bandpath) + 1);
+	SET_VARSIZE(result, VARHDRSZ + strlen(bandpath) + 1); 
+	strcpy((char *) VARDATA(result), bandpath);
+
+	rt_band_destroy(band);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	PG_RETURN_TEXT_P(result);
+}
+
+/**
+ * Get raster bands' meta data
+ */
+PG_FUNCTION_INFO_V1(RASTER_bandmetadata);
+Datum RASTER_bandmetadata(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+	int call_cntr;
+	int max_calls;
+
+	struct bandmetadata {
+		uint32_t bandnum;
+		char *pixeltype;
+		bool hasnodata;
+		double nodataval;
+		bool isoutdb;
+		char *bandpath;
+	};
+	struct bandmetadata *bmd = NULL;
+	struct bandmetadata *bmd2 = NULL;
+
+	HeapTuple tuple;
+	Datum result;
+
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+		int i = 0;
+		int j = 0;
+		int n = 0;
+
+		uint32_t numBands;
+		uint32_t idx = 1;
+		uint32_t *bandNums = NULL;
+		const char *tmp = NULL;
+
+		POSTGIS_RT_DEBUG(3, "RASTER_bandmetadata: Starting");
+
+		/* 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);
+
+		/* pgraster is null, return null */
+		if (PG_ARGISNULL(0)) {
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+		/* raster */
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_bandmetadata: Could not deserialize raster");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(raster);
+		if (numBands < 1) {
+			elog(NOTICE, "Raster provided has no bands");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* band index */
+		array = PG_GETARG_ARRAYTYPE_P(1);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case INT2OID:
+			case INT4OID:
+				break;
+			default:
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_bandmetadata: Invalid data type for band number(s)");
+				SRF_RETURN_DONE(funcctx);
+				break;
+		}
+
+		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+			&nulls, &n);
+
+		bandNums = palloc(sizeof(uint32_t) * n);
+		for (i = 0, j = 0; i < n; i++) {
+			if (nulls[i]) continue;
+
+			switch (etype) {
+				case INT2OID:
+					idx = (uint32_t) DatumGetInt16(e[i]);
+					break;
+				case INT4OID:
+					idx = (uint32_t) DatumGetInt32(e[i]);
+					break;
+			}
+
+			POSTGIS_RT_DEBUGF(3, "band idx (before): %d", idx);
+			if (idx > numBands || idx < 1) {
+				elog(NOTICE, "Invalid band index: %d. Indices must be 1-based. Returning NULL", idx);
+				pfree(bandNums);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			bandNums[j] = idx;
+			POSTGIS_RT_DEBUGF(3, "bandNums[%d] = %d", j, bandNums[j]);
+			j++;
+		}
+
+		if (j < 1) {
+			j = numBands;
+			bandNums = repalloc(bandNums, sizeof(uint32_t) * j);
+			for (i = 0; i < j; i++)
+				bandNums[i] = i + 1;
+		}
+		else if (j < n)
+			bandNums = repalloc(bandNums, sizeof(uint32_t) * j);
+
+		bmd = (struct bandmetadata *) palloc(sizeof(struct bandmetadata) * j);
+
+		for (i = 0; i < j; i++) {
+			band = rt_raster_get_band(raster, bandNums[i] - 1);
+			if (NULL == band) {
+				elog(NOTICE, "Could not get raster band at index %d", bandNums[i]);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* bandnum */
+			bmd[i].bandnum = bandNums[i];
+
+			/* pixeltype */
+			tmp = rt_pixtype_name(rt_band_get_pixtype(band));
+			bmd[i].pixeltype = palloc(sizeof(char) * (strlen(tmp) + 1));
+			strncpy(bmd[i].pixeltype, tmp, strlen(tmp) + 1);
+
+			/* hasnodatavalue */
+			if (rt_band_get_hasnodata_flag(band))
+				bmd[i].hasnodata = TRUE;
+			else
+				bmd[i].hasnodata = FALSE;
+
+			/* nodatavalue */
+			if (bmd[i].hasnodata)
+				rt_band_get_nodata(band, &(bmd[i].nodataval));
+			else
+				bmd[i].nodataval = 0;
+
+			/* path */
+			tmp = rt_band_get_ext_path(band);
+			if (tmp) {
+				bmd[i].bandpath = palloc(sizeof(char) * (strlen(tmp) + 1));
+				strncpy(bmd[i].bandpath, tmp, strlen(tmp) + 1);
+			}
+			else
+				bmd[i].bandpath = NULL;
+
+			/* isoutdb */
+			bmd[i].isoutdb = bmd[i].bandpath ? TRUE : FALSE;
+
+			rt_band_destroy(band);
+		}
+
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+
+		/* Store needed information */
+		funcctx->user_fctx = bmd;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = j;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			MemoryContextSwitchTo(oldcontext);
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	bmd2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 5;
+		Datum values[values_length];
+		bool nulls[values_length];
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		values[0] = UInt32GetDatum(bmd2[call_cntr].bandnum);
+		values[1] = CStringGetTextDatum(bmd2[call_cntr].pixeltype);
+
+		if (bmd2[call_cntr].hasnodata)
+			values[2] = Float8GetDatum(bmd2[call_cntr].nodataval);
+		else
+			nulls[2] = TRUE;
+
+		values[3] = BoolGetDatum(bmd2[call_cntr].isoutdb);
+		if (bmd2[call_cntr].bandpath && strlen(bmd2[call_cntr].bandpath))
+			values[4] = CStringGetTextDatum(bmd2[call_cntr].bandpath);
+		else
+			nulls[4] = TRUE;
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		/* clean up */
+		pfree(bmd2[call_cntr].pixeltype);
+		if (bmd2[call_cntr].bandpath) pfree(bmd2[call_cntr].bandpath);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		pfree(bmd2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * Set the nodata value of the specified band of raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setBandNoDataValue);
+Datum RASTER_setBandNoDataValue(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	double nodata;
+	int32_t bandindex;
+	bool forcechecking = FALSE;
+	bool skipset = FALSE;
+
+	/* Deserialize raster */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	/* Check index is not NULL or smaller than 1 */
+	if (PG_ARGISNULL(1))
+		bandindex = -1;
+	else
+		bandindex = PG_GETARG_INT32(1);
+	if (bandindex < 1) {
+		elog(NOTICE, "Invalid band index (must use 1-based). Nodata value not set. Returning original raster");
+		skipset = TRUE;
+	}
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setBandNoDataValue: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	if (!skipset) {
+		/* Fetch requested band */
+		band = rt_raster_get_band(raster, bandindex - 1);
+		if (!band) {
+			elog(NOTICE, "Could not find raster band of index %d when setting pixel value. Nodata value not set. Returning original raster", bandindex);
+		}
+		else {
+			if (!PG_ARGISNULL(3))
+				forcechecking = PG_GETARG_BOOL(3);
+
+			if (PG_ARGISNULL(2)) {
+				/* Set the hasnodata flag to FALSE */
+				rt_band_set_hasnodata_flag(band, FALSE);
+				POSTGIS_RT_DEBUGF(3, "Raster band %d does not have a nodata value", bandindex);
+			}
+			else {
+				/* Get the nodata value */
+				nodata = PG_GETARG_FLOAT8(2);
+
+				/* Set the band's nodata value */
+				rt_band_set_nodata(band, nodata, NULL);
+
+				/* Recheck all pixels if requested */
+				if (forcechecking)
+					rt_band_check_is_nodata(band);
+			}
+		}
+	}
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_setBandIsNoData);
+Datum RASTER_setBandIsNoData(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	int32_t bandindex;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setBandIsNoData: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* Check index is not NULL or smaller than 1 */
+	if (PG_ARGISNULL(1))
+		bandindex = -1;
+	else
+		bandindex = PG_GETARG_INT32(1);
+
+	if (bandindex < 1)
+		elog(NOTICE, "Invalid band index (must use 1-based). Isnodata flag not set. Returning original raster");
+	else {
+		/* Fetch requested band */
+		band = rt_raster_get_band(raster, bandindex - 1);
+
+		if (!band)
+			elog(NOTICE, "Could not find raster band of index %d. Isnodata flag not set. Returning original raster", bandindex);
+		else {
+			if (!rt_band_get_hasnodata_flag(band)) {
+				elog(NOTICE, "Band of index %d has no NODATA so cannot be NODATA. Returning original raster", bandindex);
+			}
+			/* Set the band's nodata value */
+			else {
+				rt_band_set_isnodata_flag(band, 1);
+			}
+		}
+	}
+
+	/* Serialize raster again */
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn) PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
diff --git a/raster/rt_pg/rtpg_create.c b/raster/rt_pg/rtpg_create.c
new file mode 100644
index 0000000..58defef
--- /dev/null
+++ b/raster/rt_pg/rtpg_create.c
@@ -0,0 +1,1609 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h>
+#include <fmgr.h>
+#include <funcapi.h>
+#include <utils/builtins.h> /* for text_to_cstring() */
+#include "utils/lsyscache.h" /* for get_typlenbyvalalign */
+#include "utils/array.h" /* for ArrayType */
+#include "catalog/pg_type.h" /* for INT2OID, INT4OID, FLOAT4OID, FLOAT8OID and TEXTOID */
+
+#include "rtpostgis.h"
+
+/* Raster and band creation */
+Datum RASTER_makeEmpty(PG_FUNCTION_ARGS);
+Datum RASTER_addBand(PG_FUNCTION_ARGS);
+Datum RASTER_addBandRasterArray(PG_FUNCTION_ARGS);
+Datum RASTER_addBandOutDB(PG_FUNCTION_ARGS);
+Datum RASTER_copyBand(PG_FUNCTION_ARGS);
+Datum RASTER_tile(PG_FUNCTION_ARGS);
+
+/* create new raster from existing raster's bands */
+Datum RASTER_band(PG_FUNCTION_ARGS);
+
+/**
+ * Make a new raster with no bands
+ */
+PG_FUNCTION_INFO_V1(RASTER_makeEmpty);
+Datum RASTER_makeEmpty(PG_FUNCTION_ARGS)
+{
+	uint16 width = 0, height = 0;
+	double ipx = 0, ipy = 0, scalex = 0, scaley = 0, skewx = 0, skewy = 0;
+	int32_t srid = SRID_UNKNOWN;
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster;
+
+	if (PG_NARGS() < 9) {
+		elog(ERROR, "RASTER_makeEmpty: ST_MakeEmptyRaster requires 9 args");
+		PG_RETURN_NULL();
+	} 
+
+	if (!PG_ARGISNULL(0))
+		width = PG_GETARG_UINT16(0);
+
+	if (!PG_ARGISNULL(1))
+		height = PG_GETARG_UINT16(1);
+
+	if (!PG_ARGISNULL(2))
+		ipx = PG_GETARG_FLOAT8(2);
+
+	if (!PG_ARGISNULL(3))
+		ipy = PG_GETARG_FLOAT8(3);
+
+	if (!PG_ARGISNULL(4))
+		scalex = PG_GETARG_FLOAT8(4);
+
+	if (!PG_ARGISNULL(5))
+		scaley = PG_GETARG_FLOAT8(5);
+
+	if (!PG_ARGISNULL(6))
+		skewx = PG_GETARG_FLOAT8(6);
+
+	if (!PG_ARGISNULL(7))
+		skewy = PG_GETARG_FLOAT8(7);
+
+	if (!PG_ARGISNULL(8))
+		srid = PG_GETARG_INT32(8);
+
+	POSTGIS_RT_DEBUGF(4, "%dx%d, ip:%g,%g, scale:%g,%g, skew:%g,%g srid:%d",
+		width, height, ipx, ipy, scalex, scaley,
+		skewx, skewy, srid);
+
+	raster = rt_raster_new(width, height);
+	if (raster == NULL)
+		PG_RETURN_NULL(); /* error was supposedly printed already */
+
+	rt_raster_set_scale(raster, scalex, scaley);
+	rt_raster_set_offsets(raster, ipx, ipy);
+	rt_raster_set_skews(raster, skewx, skewy);
+	rt_raster_set_srid(raster, srid);
+
+	pgraster = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	if (!pgraster)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgraster, pgraster->size);
+	PG_RETURN_POINTER(pgraster);
+}
+
+/**
+ * Add band(s) to the given raster at the given position(s).
+ */
+PG_FUNCTION_INFO_V1(RASTER_addBand);
+Datum RASTER_addBand(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster = NULL;
+	int bandindex = 0;
+	int maxbandindex = 0;
+	int numbands = 0;
+	int lastnumbands = 0;
+
+	text *text_pixtype = NULL;
+	char *char_pixtype = NULL;
+
+	struct addbandarg {
+		int index;
+		bool append;
+		rt_pixtype pixtype;
+		double initialvalue;
+		bool hasnodata;
+		double nodatavalue;
+	};
+	struct addbandarg *arg = NULL;
+
+	ArrayType *array;
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int n = 0;
+
+	HeapTupleHeader tup;
+	bool isnull;
+	Datum tupv;
+
+	int i = 0;
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	/* raster */
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_addBand: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* process set of addbandarg */
+	POSTGIS_RT_DEBUG(3, "Processing Arg 1 (addbandargset)");
+	array = PG_GETARG_ARRAYTYPE_P(1);
+	etype = ARR_ELEMTYPE(array);
+	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+	deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+		&nulls, &n);
+
+	if (!n) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset");
+		PG_RETURN_NULL();
+	}
+
+	/* allocate addbandarg */
+	arg = (struct addbandarg *) palloc(sizeof(struct addbandarg) * n);
+	if (arg == NULL) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_addBand: Could not allocate memory for addbandarg");
+		PG_RETURN_NULL();
+	}
+
+	/*
+		process each element of addbandargset
+		each element is the index of where to add the new band,
+			new band's pixeltype, the new band's initial value and
+			the new band's NODATA value if NOT NULL
+	*/
+	for (i = 0; i < n; i++) {
+		if (nulls[i]) continue;
+
+		POSTGIS_RT_DEBUGF(4, "Processing addbandarg at index %d", i);
+
+		/* each element is a tuple */
+		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
+		if (NULL == tup) {
+			pfree(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset");
+			PG_RETURN_NULL();
+		}
+
+		/* new band index, 1-based */
+		arg[i].index = 0;
+		arg[i].append = TRUE;
+		tupv = GetAttributeByName(tup, "index", &isnull);
+		if (!isnull) {
+			arg[i].index = DatumGetInt32(tupv);
+			arg[i].append = FALSE;
+		}
+
+		/* for now, only check that band index is 1-based */
+		if (!arg[i].append && arg[i].index < 1) {
+			pfree(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset. Invalid band index (must be 1-based) for addbandarg of index %d", i);
+			PG_RETURN_NULL();
+		}
+
+		/* new band pixeltype */
+		arg[i].pixtype = PT_END;
+		tupv = GetAttributeByName(tup, "pixeltype", &isnull);
+		if (isnull) {
+			pfree(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset. Pixel type cannot be NULL for addbandarg of index %d", i);
+			PG_RETURN_NULL();
+		}
+		text_pixtype = (text *) DatumGetPointer(tupv);
+		if (text_pixtype == NULL) {
+			pfree(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset. Pixel type cannot be NULL for addbandarg of index %d", i);
+			PG_RETURN_NULL();
+		}
+		char_pixtype = text_to_cstring(text_pixtype);
+
+		arg[i].pixtype = rt_pixtype_index_from_name(char_pixtype);
+		pfree(char_pixtype);
+		if (arg[i].pixtype == PT_END) {
+			pfree(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBand: Invalid argument for addbandargset. Invalid pixel type for addbandarg of index %d", i);
+			PG_RETURN_NULL();
+		}
+
+		/* new band initialvalue */
+		arg[i].initialvalue = 0;
+		tupv = GetAttributeByName(tup, "initialvalue", &isnull);
+		if (!isnull)
+			arg[i].initialvalue = DatumGetFloat8(tupv);
+
+		/* new band NODATA value */
+		arg[i].hasnodata = FALSE;
+		arg[i].nodatavalue = 0;
+		tupv = GetAttributeByName(tup, "nodataval", &isnull);
+		if (!isnull) {
+			arg[i].hasnodata = TRUE;
+			arg[i].nodatavalue = DatumGetFloat8(tupv);
+		}
+	}
+
+	/* add new bands to raster */
+	lastnumbands = rt_raster_get_num_bands(raster);
+	for (i = 0; i < n; i++) {
+		if (nulls[i]) continue;
+
+		POSTGIS_RT_DEBUGF(3, "%d bands in old raster", lastnumbands);
+		maxbandindex = lastnumbands + 1;
+
+		/* check that new band's index doesn't exceed maxbandindex */
+		if (!arg[i].append) {
+			if (arg[i].index > maxbandindex) {
+				elog(NOTICE, "Band index for addbandarg of index %d exceeds possible value. Adding band at index %d", i, maxbandindex);
+				arg[i].index = maxbandindex;
+			}
+		}
+		/* append, so use maxbandindex */
+		else
+			arg[i].index = maxbandindex;
+
+		POSTGIS_RT_DEBUGF(4, "new band (index, pixtype, initialvalue, hasnodata, nodatavalue) = (%d, %s, %f, %s, %f)",
+			arg[i].index,
+			rt_pixtype_name(arg[i].pixtype),
+			arg[i].initialvalue,
+			arg[i].hasnodata ? "TRUE" : "FALSE",
+			arg[i].nodatavalue
+		);
+
+		bandindex = rt_raster_generate_new_band(
+			raster,
+			arg[i].pixtype, arg[i].initialvalue,
+			arg[i].hasnodata, arg[i].nodatavalue,
+			arg[i].index - 1
+		);
+
+		numbands = rt_raster_get_num_bands(raster);
+		if (numbands == lastnumbands || bandindex == -1) {
+			pfree(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBand: Could not add band defined by addbandarg of index %d to raster", i);
+			PG_RETURN_NULL();
+		}
+
+		lastnumbands = numbands;
+		POSTGIS_RT_DEBUGF(3, "%d bands in new raster", lastnumbands);
+	}
+
+	pfree(arg);
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Add bands from array of rasters to a destination raster
+ */
+PG_FUNCTION_INFO_V1(RASTER_addBandRasterArray);
+Datum RASTER_addBandRasterArray(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgsrc = NULL;
+	rt_pgraster *pgrtn = NULL;
+
+	rt_raster raster = NULL;
+	rt_raster src = NULL;
+
+	int srcnband = 1;
+	bool appendband = FALSE;
+	int dstnband = 1;
+	int srcnumbands = 0;
+	int dstnumbands = 0;
+
+	ArrayType *array;
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int n = 0;
+
+	int rtn = 0;
+	int i = 0;
+
+	/* destination raster */
+	if (!PG_ARGISNULL(0)) {
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+		/* raster */
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBandRasterArray: Could not deserialize destination raster");
+			PG_RETURN_NULL();
+		}
+
+		POSTGIS_RT_DEBUG(4, "destination raster isn't NULL");
+	}
+
+	/* source rasters' band index, 1-based */
+	if (!PG_ARGISNULL(2))
+		srcnband = PG_GETARG_INT32(2);
+	if (srcnband < 1) {
+		elog(NOTICE, "Invalid band index for source rasters (must be 1-based).  Returning original raster");
+		if (raster != NULL) {
+			rt_raster_destroy(raster);
+			PG_RETURN_POINTER(pgraster);
+		}
+		else
+			PG_RETURN_NULL();
+	}
+	POSTGIS_RT_DEBUGF(4, "srcnband = %d", srcnband);
+
+	/* destination raster's band index, 1-based */
+	if (!PG_ARGISNULL(3)) {
+		dstnband = PG_GETARG_INT32(3);
+		appendband = FALSE;
+
+		if (dstnband < 1) {
+			elog(NOTICE, "Invalid band index for destination raster (must be 1-based).  Returning original raster");
+			if (raster != NULL) {
+				rt_raster_destroy(raster);
+				PG_RETURN_POINTER(pgraster);
+			}
+			else
+				PG_RETURN_NULL();
+		}
+	}
+	else
+		appendband = TRUE;
+
+	/* additional processing of dstnband */
+	if (raster != NULL) {
+		dstnumbands = rt_raster_get_num_bands(raster);
+
+		if (dstnumbands < 1) {
+			appendband = TRUE;
+			dstnband = 1;
+		}
+		else if (appendband)
+			dstnband = dstnumbands + 1;
+		else if (dstnband > dstnumbands) {
+			elog(NOTICE, "Band index provided for destination raster is greater than the number of bands in the raster.  Bands will be appended");
+			appendband = TRUE;
+			dstnband = dstnumbands + 1;
+		}
+	}
+	POSTGIS_RT_DEBUGF(4, "appendband = %d", appendband);
+	POSTGIS_RT_DEBUGF(4, "dstnband = %d", dstnband);
+
+	/* process set of source rasters */
+	POSTGIS_RT_DEBUG(3, "Processing array of source rasters");
+	array = PG_GETARG_ARRAYTYPE_P(1);
+	etype = ARR_ELEMTYPE(array);
+	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+	deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+		&nulls, &n);
+
+	/* decrement srcnband and dstnband by 1, now 0-based */
+	srcnband--;
+	dstnband--;
+	POSTGIS_RT_DEBUGF(4, "0-based nband (src, dst) = (%d, %d)", srcnband, dstnband);
+
+	/* time to copy bands */
+	for (i = 0; i < n; i++) {
+		if (nulls[i]) continue;
+		src = NULL;
+
+		pgsrc =	(rt_pgraster *) PG_DETOAST_DATUM(e[i]);
+		src = rt_raster_deserialize(pgsrc, FALSE);
+		if (src == NULL) {
+			pfree(nulls);
+			pfree(e);
+			if (raster != NULL)
+				rt_raster_destroy(raster);
+			if (pgraster != NULL)
+				PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBandRasterArray: Could not deserialize source raster at index %d", i + 1);
+			PG_RETURN_NULL();
+		}
+
+		srcnumbands = rt_raster_get_num_bands(src);
+		POSTGIS_RT_DEBUGF(4, "source raster %d has %d bands", i + 1, srcnumbands);
+
+		/* band index isn't valid */
+		if (srcnband > srcnumbands - 1) {
+			elog(NOTICE, "Invalid band index for source raster at index %d.  Returning original raster", i + 1);
+			pfree(nulls);
+			pfree(e);
+			rt_raster_destroy(src);
+			if (raster != NULL) {
+				rt_raster_destroy(raster);
+				PG_RETURN_POINTER(pgraster);
+			}
+			else
+				PG_RETURN_NULL();
+		}
+
+		/* destination raster is empty, new raster */
+		if (raster == NULL) {
+			uint32_t srcnbands[1] = {srcnband};
+
+			POSTGIS_RT_DEBUG(4, "empty destination raster, using rt_raster_from_band");
+
+			raster = rt_raster_from_band(src, srcnbands, 1);
+			rt_raster_destroy(src);
+			if (raster == NULL) {
+				pfree(nulls);
+				pfree(e);
+				if (pgraster != NULL)
+					PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_addBandRasterArray: Could not create raster from source raster at index %d", i + 1);
+				PG_RETURN_NULL();
+			}
+		}
+		/* copy band */
+		else {
+			rtn = rt_raster_copy_band(
+				raster, src,
+				srcnband, dstnband
+			);
+			rt_raster_destroy(src);
+
+			if (rtn == -1 || rt_raster_get_num_bands(raster) == dstnumbands) {
+				elog(NOTICE, "Could not add band from source raster at index %d to destination raster.  Returning original raster", i + 1);
+				rt_raster_destroy(raster);
+				pfree(nulls);
+				pfree(e);
+				if (pgraster != NULL)
+					PG_RETURN_POINTER(pgraster);
+				else
+					PG_RETURN_NULL();
+			}
+		}
+
+		dstnband++;
+		dstnumbands++;
+	}
+
+	if (raster != NULL) {
+		pgrtn = rt_raster_serialize(raster);
+		rt_raster_destroy(raster);
+		if (pgraster != NULL)
+			PG_FREE_IF_COPY(pgraster, 0);
+		if (!pgrtn)
+			PG_RETURN_NULL();
+
+		SET_VARSIZE(pgrtn, pgrtn->size);
+		PG_RETURN_POINTER(pgrtn);
+	}
+
+	PG_RETURN_NULL();
+}
+
+/**
+ * Add out-db band to the given raster at the given position
+ */
+PG_FUNCTION_INFO_V1(RASTER_addBandOutDB);
+Datum RASTER_addBandOutDB(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	int numbands = 0;
+	int dstnband = 1; /* 1-based */
+	int appendband = FALSE;
+	char *outdbfile = NULL;
+	int *srcnband = NULL; /* 1-based */
+	int numsrcnband = 0;
+	int allbands = FALSE;
+	int hasnodata = FALSE;
+	double nodataval = 0.;
+	uint16_t width = 0;
+	uint16_t height = 0;
+	char *authname = NULL;
+	char *authcode = NULL;
+
+	int i = 0;
+	int j = 0;
+
+	GDALDatasetH hdsOut;
+	GDALRasterBandH hbandOut;
+	GDALDataType gdpixtype;
+
+	rt_pixtype pt = PT_END;
+	double gt[6] = {0.};
+	double ogt[6] = {0.};
+	rt_raster _rast = NULL;
+	int aligned = 0;
+	int err = 0;
+
+	/* destination raster */
+	if (!PG_ARGISNULL(0)) {
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+		/* raster */
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBandOutDB: Could not deserialize destination raster");
+			PG_RETURN_NULL();
+		}
+
+		POSTGIS_RT_DEBUG(4, "destination raster isn't NULL");
+	}
+
+	/* destination band index (1) */
+	if (!PG_ARGISNULL(1))
+		dstnband = PG_GETARG_INT32(1);
+	else
+		appendband = TRUE;
+
+	/* outdb file (2) */
+	if (PG_ARGISNULL(2)) {
+		elog(NOTICE, "Out-db raster file not provided. Returning original raster");
+		if (pgraster != NULL) {
+			rt_raster_destroy(raster);
+			PG_RETURN_POINTER(pgraster);
+		}
+		else
+			PG_RETURN_NULL();
+	}
+	else {
+		outdbfile = text_to_cstring(PG_GETARG_TEXT_P(2));
+		if (!strlen(outdbfile)) {
+			elog(NOTICE, "Out-db raster file not provided. Returning original raster");
+			if (pgraster != NULL) {
+				rt_raster_destroy(raster);
+				PG_RETURN_POINTER(pgraster);
+			}
+			else
+				PG_RETURN_NULL();
+		}
+	}
+
+	/* outdb band index (3) */
+	if (!PG_ARGISNULL(3)) {
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+
+		allbands = FALSE;
+
+		array = PG_GETARG_ARRAYTYPE_P(3);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case INT2OID:
+			case INT4OID:
+				break;
+			default:
+				if (pgraster != NULL) {
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+				}
+				elog(ERROR, "RASTER_addBandOutDB: Invalid data type for band indexes");
+				PG_RETURN_NULL();
+				break;
+		}
+
+		deconstruct_array(array, etype, typlen, typbyval, typalign, &e, &nulls, &numsrcnband);
+
+		srcnband = palloc(sizeof(int) * numsrcnband);
+		if (srcnband == NULL) {
+			if (pgraster != NULL) {
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+			}
+			elog(ERROR, "RASTER_addBandOutDB: Could not allocate memory for band indexes");
+			PG_RETURN_NULL();
+		}
+
+		for (i = 0, j = 0; i < numsrcnband; i++) {
+			if (nulls[i]) continue;
+
+			switch (etype) {
+				case INT2OID:
+					srcnband[j] = DatumGetInt16(e[i]);
+					break;
+				case INT4OID:
+					srcnband[j] = DatumGetInt32(e[i]);
+					break;
+			}
+			j++;
+		}
+
+		if (j < numsrcnband) {
+			srcnband = repalloc(srcnband, sizeof(int) * j);
+			if (srcnband == NULL) {
+				if (pgraster != NULL) {
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+				}
+				elog(ERROR, "RASTER_addBandOutDB: Could not reallocate memory for band indexes");
+				PG_RETURN_NULL();
+			}
+
+			numsrcnband = j;
+		}
+	}
+	else
+		allbands = TRUE;
+
+	/* nodataval (4) */
+	if (!PG_ARGISNULL(4)) {
+		hasnodata = TRUE;
+		nodataval = PG_GETARG_FLOAT8(4);
+	}
+	else
+		hasnodata = FALSE;
+
+	/* validate input */
+
+	/* make sure dstnband is valid */
+	if (raster != NULL) {
+		numbands = rt_raster_get_num_bands(raster);
+		if (!appendband) {
+			if (dstnband < 1) {
+				elog(NOTICE, "Invalid band index %d for adding bands. Using band index 1", dstnband);
+				dstnband = 1;
+			}
+			else if (numbands > 0 && dstnband > numbands) {
+				elog(NOTICE, "Invalid band index %d for adding bands. Using band index %d", dstnband, numbands);
+				dstnband = numbands + 1; 
+			}
+		}
+		else
+			dstnband = numbands + 1; 
+	}
+
+	/* open outdb raster file */
+	rt_util_gdal_register_all(0);
+	hdsOut = rt_util_gdal_open(outdbfile, GA_ReadOnly, 0);
+	if (hdsOut == NULL) {
+		if (pgraster != NULL) {
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+		}
+		elog(ERROR, "RASTER_addBandOutDB: Could not open out-db file with GDAL");
+		PG_RETURN_NULL();
+	}
+
+	/* get offline raster's geotransform */
+	if (GDALGetGeoTransform(hdsOut, ogt) != CE_None) {
+		ogt[0] = 0;
+		ogt[1] = 1;
+		ogt[2] = 0;
+		ogt[3] = 0;
+		ogt[4] = 0;
+		ogt[5] = -1;
+	}
+
+	/* raster doesn't exist, create it now */
+	if (raster == NULL) {
+		raster = rt_raster_new(GDALGetRasterXSize(hdsOut), GDALGetRasterYSize(hdsOut));
+		if (rt_raster_is_empty(raster)) {
+			elog(ERROR, "RASTER_addBandOutDB: Could not create new raster");
+			PG_RETURN_NULL();
+		}
+		rt_raster_set_geotransform_matrix(raster, ogt);
+		rt_raster_get_geotransform_matrix(raster, gt);
+
+		if (rt_util_gdal_sr_auth_info(hdsOut, &authname, &authcode) == ES_NONE) {
+			if (
+				authname != NULL &&
+				strcmp(authname, "EPSG") == 0 &&
+				authcode != NULL
+			) {
+				rt_raster_set_srid(raster, atoi(authcode));
+			}
+			else
+				elog(INFO, "Unknown SRS auth name and code from out-db file. Defaulting SRID of new raster to %d", SRID_UNKNOWN);
+		}
+		else
+			elog(INFO, "Could not get SRS auth name and code from out-db file. Defaulting SRID of new raster to %d", SRID_UNKNOWN);
+	}
+
+	/* some raster info */
+	width = rt_raster_get_width(raster);
+	height = rt_raster_get_height(raster);
+
+	/* are rasters aligned? */
+	_rast = rt_raster_new(1, 1);
+	rt_raster_set_geotransform_matrix(_rast, ogt);
+	rt_raster_set_srid(_rast, rt_raster_get_srid(raster));
+	err = rt_raster_same_alignment(raster, _rast, &aligned, NULL);
+	rt_raster_destroy(_rast);
+
+	if (err != ES_NONE) {
+		GDALClose(hdsOut);
+		if (raster != NULL)
+			rt_raster_destroy(raster);
+		if (pgraster != NULL)
+			PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_addBandOutDB: Could not test alignment of out-db file");
+		return ES_ERROR;
+	}
+	else if (!aligned)
+		elog(WARNING, "The in-db representation of the out-db raster is not aligned. Band data may be incorrect");
+
+	numbands = GDALGetRasterCount(hdsOut);
+
+	/* build up srcnband */
+	if (allbands) {
+		numsrcnband = numbands;
+		srcnband = palloc(sizeof(int) * numsrcnband);
+		if (srcnband == NULL) {
+			GDALClose(hdsOut);
+			if (raster != NULL)
+				rt_raster_destroy(raster);
+			if (pgraster != NULL)
+				PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBandOutDB: Could not allocate memory for band indexes");
+			PG_RETURN_NULL();
+		}
+
+		for (i = 0, j = 1; i < numsrcnband; i++, j++)
+			srcnband[i] = j;
+	}
+
+	/* check band properties and add band */
+	for (i = 0, j = dstnband - 1; i < numsrcnband; i++, j++) {
+		/* valid index? */
+		if (srcnband[i] < 1 || srcnband[i] > numbands) {
+			elog(NOTICE, "Out-db file does not have a band at index %d. Returning original raster", srcnband[i]);
+			GDALClose(hdsOut);
+			if (raster != NULL)
+				rt_raster_destroy(raster);
+			if (pgraster != NULL)
+				PG_RETURN_POINTER(pgraster);
+			else
+				PG_RETURN_NULL();
+		}
+
+		/* get outdb band */
+		hbandOut = NULL;
+		hbandOut = GDALGetRasterBand(hdsOut, srcnband[i]);
+		if (NULL == hbandOut) {
+			GDALClose(hdsOut);
+			if (raster != NULL)
+				rt_raster_destroy(raster);
+			if (pgraster != NULL)
+				PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBandOutDB: Could not get band %d from GDAL dataset", srcnband[i]);
+			PG_RETURN_NULL();
+		}
+
+		/* supported pixel type */
+		gdpixtype = GDALGetRasterDataType(hbandOut);
+		pt = rt_util_gdal_datatype_to_pixtype(gdpixtype);
+		if (pt == PT_END) {
+			elog(NOTICE, "Pixel type %s of band %d from GDAL dataset is not supported. Returning original raster", GDALGetDataTypeName(gdpixtype), srcnband[i]);
+			GDALClose(hdsOut);
+			if (raster != NULL)
+				rt_raster_destroy(raster);
+			if (pgraster != NULL)
+				PG_RETURN_POINTER(pgraster);
+			else
+				PG_RETURN_NULL();
+		}
+
+		/* use out-db band's nodata value if nodataval not already set */
+		if (!hasnodata)
+			nodataval = GDALGetRasterNoDataValue(hbandOut, &hasnodata);
+
+		/* add band */
+		band = rt_band_new_offline(
+			width, height,
+			pt,
+			hasnodata, nodataval,
+			srcnband[i] - 1, outdbfile
+		);
+		if (band == NULL) {
+			GDALClose(hdsOut);
+			if (raster != NULL)
+				rt_raster_destroy(raster);
+			if (pgraster != NULL)
+				PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBandOutDB: Could not create new out-db band");
+			PG_RETURN_NULL();
+		}
+
+		if (rt_raster_add_band(raster, band, j) < 0) {
+			GDALClose(hdsOut);
+			if (raster != NULL)
+				rt_raster_destroy(raster);
+			if (pgraster != NULL)
+				PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_addBandOutDB: Could not add new out-db band to raster");
+			PG_RETURN_NULL();
+		}
+	}
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	if (pgraster != NULL)
+		PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Copy a band from one raster to another one at the given position.
+ */
+PG_FUNCTION_INFO_V1(RASTER_copyBand);
+Datum RASTER_copyBand(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgto = NULL;
+	rt_pgraster *pgfrom = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster torast = NULL;
+	rt_raster fromrast = NULL;
+	int toindex = 0;
+	int fromband = 0;
+	int oldtorastnumbands = 0;
+	int newtorastnumbands = 0;
+	int newbandindex = 0;
+
+	/* Deserialize torast */
+	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+	pgto = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	torast = rt_raster_deserialize(pgto, FALSE);
+	if (!torast) {
+		PG_FREE_IF_COPY(pgto, 0);
+		elog(ERROR, "RASTER_copyBand: Could not deserialize first raster");
+		PG_RETURN_NULL();
+	}
+
+	/* Deserialize fromrast */
+	if (!PG_ARGISNULL(1)) {
+		pgfrom = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+
+		fromrast = rt_raster_deserialize(pgfrom, FALSE);
+		if (!fromrast) {
+			rt_raster_destroy(torast);
+			PG_FREE_IF_COPY(pgfrom, 1);
+			PG_FREE_IF_COPY(pgto, 0);
+			elog(ERROR, "RASTER_copyBand: Could not deserialize second raster");
+			PG_RETURN_NULL();
+		}
+
+		oldtorastnumbands = rt_raster_get_num_bands(torast);
+
+		if (PG_ARGISNULL(2))
+			fromband = 1;
+		else
+			fromband = PG_GETARG_INT32(2);
+
+		if (PG_ARGISNULL(3))
+			toindex = oldtorastnumbands + 1;
+		else
+			toindex = PG_GETARG_INT32(3);
+
+		/* Copy band fromrast torast */
+		newbandindex = rt_raster_copy_band(
+			torast, fromrast,
+			fromband - 1, toindex - 1
+		);
+
+		newtorastnumbands = rt_raster_get_num_bands(torast);
+		if (newtorastnumbands == oldtorastnumbands || newbandindex == -1) {
+			elog(NOTICE, "RASTER_copyBand: Could not add band to raster. "
+				"Returning original raster."
+			);
+		}
+
+		rt_raster_destroy(fromrast);
+		PG_FREE_IF_COPY(pgfrom, 1);
+	}
+
+	/* Serialize and return torast */
+	pgrtn = rt_raster_serialize(torast);
+	rt_raster_destroy(torast);
+	PG_FREE_IF_COPY(pgto, 0);
+	if (!pgrtn) PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Break up a raster into smaller tiles. SRF function
+ */
+PG_FUNCTION_INFO_V1(RASTER_tile);
+Datum RASTER_tile(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	int call_cntr;
+	int max_calls;
+	int i = 0;
+	int j = 0;
+
+	struct tile_arg_t {
+
+		struct {
+			rt_raster raster;
+			double gt[6];
+			int srid;
+			int width;
+			int height;
+		} raster;
+
+		struct {
+			int width;
+			int height;
+
+			int nx;
+			int ny;
+		} tile;
+
+		int numbands;
+		int *nbands;
+
+		struct {
+			int pad;
+			double hasnodata;
+			double nodataval;
+		} pad;
+	};
+	struct tile_arg_t *arg1 = NULL;
+	struct tile_arg_t *arg2 = NULL;
+
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+		rt_pgraster *pgraster = NULL;
+		int numbands;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+
+		POSTGIS_RT_DEBUG(2, "RASTER_tile: first call");
+
+		/* 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);
+
+		/* Get input arguments */
+		if (PG_ARGISNULL(0)) {
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* allocate arg1 */
+		arg1 = palloc(sizeof(struct tile_arg_t));
+		if (arg1 == NULL) {
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_tile: Could not allocate memory for arguments");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+		arg1->raster.raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!arg1->raster.raster) {
+			ereport(ERROR, (
+				errcode(ERRCODE_OUT_OF_MEMORY),
+				errmsg("Could not deserialize raster")
+			));
+			pfree(arg1);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* raster has bands */
+		numbands = rt_raster_get_num_bands(arg1->raster.raster); 
+		/*
+		if (!numbands) {
+			elog(NOTICE, "Raster provided has no bands");
+			rt_raster_destroy(arg1->raster.raster);
+			pfree(arg1);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		*/
+
+		/* width (1) */
+		if (PG_ARGISNULL(1)) {
+			elog(NOTICE, "Width cannot be NULL. Returning NULL");
+			rt_raster_destroy(arg1->raster.raster);
+			pfree(arg1);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		arg1->tile.width = PG_GETARG_INT32(1);
+		if (arg1->tile.width < 1) {
+			elog(NOTICE, "Width must be greater than zero. Returning NULL");
+			rt_raster_destroy(arg1->raster.raster);
+			pfree(arg1);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* height (2) */
+		if (PG_ARGISNULL(2)) {
+			elog(NOTICE, "Height cannot be NULL. Returning NULL");
+			rt_raster_destroy(arg1->raster.raster);
+			pfree(arg1);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		arg1->tile.height = PG_GETARG_INT32(2);
+		if (arg1->tile.height < 1) {
+			elog(NOTICE, "Height must be greater than zero. Returning NULL");
+			rt_raster_destroy(arg1->raster.raster);
+			pfree(arg1);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* nband, array (3) */
+		if (numbands && !PG_ARGISNULL(3)) {
+			array = PG_GETARG_ARRAYTYPE_P(3);
+			etype = ARR_ELEMTYPE(array);
+			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+			switch (etype) {
+				case INT2OID:
+				case INT4OID:
+					break;
+				default:
+					rt_raster_destroy(arg1->raster.raster);
+					pfree(arg1);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_tile: Invalid data type for band indexes");
+					SRF_RETURN_DONE(funcctx);
+					break;
+			}
+
+			deconstruct_array(array, etype, typlen, typbyval, typalign, &e, &nulls, &(arg1->numbands));
+
+			arg1->nbands = palloc(sizeof(int) * arg1->numbands);
+			if (arg1->nbands == NULL) {
+				rt_raster_destroy(arg1->raster.raster);
+				pfree(arg1);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_tile: Could not allocate memory for band indexes");
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			for (i = 0, j = 0; i < arg1->numbands; i++) {
+				if (nulls[i]) continue;
+
+				switch (etype) {
+					case INT2OID:
+						arg1->nbands[j] = DatumGetInt16(e[i]) - 1;
+						break;
+					case INT4OID:
+						arg1->nbands[j] = DatumGetInt32(e[i]) - 1;
+						break;
+				}
+
+				j++;
+			}
+
+			if (j < arg1->numbands) {
+				arg1->nbands = repalloc(arg1->nbands, sizeof(int) * j);
+				if (arg1->nbands == NULL) {
+					rt_raster_destroy(arg1->raster.raster);
+					pfree(arg1);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_tile: Could not reallocate memory for band indexes");
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				arg1->numbands = j;
+			}
+
+			/* validate nbands */
+			for (i = 0; i < arg1->numbands; i++) {
+				if (!rt_raster_has_band(arg1->raster.raster, arg1->nbands[i])) {
+					elog(NOTICE, "Band at index %d not found in raster", arg1->nbands[i] + 1);
+					rt_raster_destroy(arg1->raster.raster);
+					pfree(arg1->nbands);
+					pfree(arg1);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					SRF_RETURN_DONE(funcctx);
+				}
+			}
+		}
+		else {
+			arg1->numbands = numbands;
+
+			if (numbands) {
+				arg1->nbands = palloc(sizeof(int) * arg1->numbands);
+
+				if (arg1->nbands == NULL) {
+					rt_raster_destroy(arg1->raster.raster);
+					pfree(arg1);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_dumpValues: Could not allocate memory for pixel values");
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				for (i = 0; i < arg1->numbands; i++) {
+					arg1->nbands[i] = i;
+					POSTGIS_RT_DEBUGF(4, "arg1->nbands[%d] = %d", arg1->nbands[i], i);
+				}
+			}
+		}
+
+		/* pad (4) and padnodata (5) */
+		if (!PG_ARGISNULL(4)) {
+			arg1->pad.pad = PG_GETARG_BOOL(4) ? 1 : 0;
+
+			if (arg1->pad.pad && !PG_ARGISNULL(5)) {
+				arg1->pad.hasnodata = 1;
+				arg1->pad.nodataval = PG_GETARG_FLOAT8(5);
+			}
+			else {
+				arg1->pad.hasnodata = 0;
+				arg1->pad.nodataval = 0;
+			}
+		}
+		else {
+			arg1->pad.pad = 0;
+			arg1->pad.hasnodata = 0;
+			arg1->pad.nodataval = 0;
+		}
+
+		/* store some additional metadata */
+		arg1->raster.srid = rt_raster_get_srid(arg1->raster.raster);
+		arg1->raster.width = rt_raster_get_width(arg1->raster.raster);
+		arg1->raster.height = rt_raster_get_height(arg1->raster.raster);
+		rt_raster_get_geotransform_matrix(arg1->raster.raster, arg1->raster.gt);
+
+		/* determine maximum number of tiles from raster */
+		arg1->tile.nx = ceil(arg1->raster.width / (double) arg1->tile.width);
+		arg1->tile.ny = ceil(arg1->raster.height / (double) arg1->tile.height);
+		POSTGIS_RT_DEBUGF(4, "# of tiles (x, y) = (%d, %d)", arg1->tile.nx, arg1->tile.ny);
+
+		/* Store needed information */
+		funcctx->user_fctx = arg1;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = (arg1->tile.nx * arg1->tile.ny);
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	arg2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		rt_pgraster *pgtile = NULL;
+		rt_raster tile = NULL;
+		rt_band _band = NULL;
+		rt_band band = NULL;
+		rt_pixtype pixtype = PT_END;
+		int hasnodata = 0;
+		double nodataval = 0;
+		int width = 0;
+		int height = 0;
+
+		int k = 0;
+		int tx = 0;
+		int ty = 0;
+		int rx = 0;
+		int ry = 0;
+		int ex = 0; /* edge tile on right */
+		int ey = 0; /* edge tile on bottom */
+		double ulx = 0;
+		double uly = 0;
+		uint16_t len = 0;
+		void *vals = NULL;
+		uint16_t nvals;
+
+		POSTGIS_RT_DEBUGF(3, "call number %d", call_cntr);
+
+		/*
+			find offset based upon tile #
+
+			0 1 2
+			3 4 5
+			6 7 8
+		*/
+		ty = call_cntr / arg2->tile.nx;
+		tx = call_cntr % arg2->tile.nx;
+		POSTGIS_RT_DEBUGF(4, "tile (x, y) = (%d, %d)", tx, ty);
+
+		/* edge tile? only important if padding is false */
+		if (!arg2->pad.pad) {
+			if (ty + 1 == arg2->tile.ny)
+				ey = 1;
+			if (tx + 1 == arg2->tile.nx)
+				ex = 1;
+		}
+
+		/* upper-left of tile in raster coordinates */
+		rx = tx * arg2->tile.width;
+		ry = ty * arg2->tile.height;
+		POSTGIS_RT_DEBUGF(4, "raster coordinates = %d, %d", rx, ry);
+
+		/* determine tile width and height */
+		/* default to user-defined */
+		width = arg2->tile.width;
+		height = arg2->tile.height;
+
+		/* override user-defined if edge tile (only possible if padding is false */
+		if (ex || ey) {
+			/* right edge */
+			if (ex)
+				width = arg2->raster.width - rx;
+			/* bottom edge */
+			if (ey)
+				height = arg2->raster.height - ry;
+		}
+
+		/* create empty raster */
+		tile = rt_raster_new(width, height);
+		rt_raster_set_geotransform_matrix(tile, arg2->raster.gt);
+		rt_raster_set_srid(tile, arg2->raster.srid);
+
+		/* upper-left of tile in spatial coordinates */
+		if (rt_raster_cell_to_geopoint(arg2->raster.raster, rx, ry, &ulx, &uly, arg2->raster.gt) != ES_NONE) {
+			rt_raster_destroy(tile);
+			rt_raster_destroy(arg2->raster.raster);
+			if (arg2->numbands) pfree(arg2->nbands);
+			pfree(arg2);
+			elog(ERROR, "RASTER_tile: Could not compute the coordinates of the upper-left corner of the output tile");
+			SRF_RETURN_DONE(funcctx);
+		}
+		rt_raster_set_offsets(tile, ulx, uly);
+		POSTGIS_RT_DEBUGF(4, "spatial coordinates = %f, %f", ulx, uly);
+
+		/* compute length of pixel line to read */
+		len = arg2->tile.width;
+		if (rx + arg2->tile.width >= arg2->raster.width)
+			len = arg2->raster.width - rx;
+		POSTGIS_RT_DEBUGF(3, "read line len = %d", len);
+
+		/* copy bands to tile */
+		for (i = 0; i < arg2->numbands; i++) {
+			POSTGIS_RT_DEBUGF(4, "copying band %d to tile %d", arg2->nbands[i], call_cntr);
+
+			_band = rt_raster_get_band(arg2->raster.raster, arg2->nbands[i]);
+			if (_band == NULL) {
+				int nband = arg2->nbands[i] + 1;
+				rt_raster_destroy(tile);
+				rt_raster_destroy(arg2->raster.raster);
+				if (arg2->numbands) pfree(arg2->nbands);
+				pfree(arg2);
+				elog(ERROR, "RASTER_tile: Could not get band %d from source raster", nband);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			pixtype = rt_band_get_pixtype(_band);
+			hasnodata = rt_band_get_hasnodata_flag(_band);
+			if (hasnodata)
+				rt_band_get_nodata(_band, &nodataval);
+			else if (arg2->pad.pad && arg2->pad.hasnodata) {
+				hasnodata = 1;
+				nodataval = arg2->pad.nodataval;
+			}
+			else
+				nodataval = rt_band_get_min_value(_band);
+
+			/* inline band */
+			if (!rt_band_is_offline(_band)) {
+				if (rt_raster_generate_new_band(tile, pixtype, nodataval, hasnodata, nodataval, i) < 0) {
+					rt_raster_destroy(tile);
+					rt_raster_destroy(arg2->raster.raster);
+					pfree(arg2->nbands);
+					pfree(arg2);
+					elog(ERROR, "RASTER_tile: Could not add new band to output tile");
+					SRF_RETURN_DONE(funcctx);
+				}
+				band = rt_raster_get_band(tile, i);
+				if (band == NULL) {
+					rt_raster_destroy(tile);
+					rt_raster_destroy(arg2->raster.raster);
+					if (arg2->numbands) pfree(arg2->nbands);
+					pfree(arg2);
+					elog(ERROR, "RASTER_tile: Could not get newly added band from output tile");
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				/* if isnodata, set flag and continue */
+				if (rt_band_get_isnodata_flag(_band)) {
+					rt_band_set_isnodata_flag(band, 1);
+					continue;
+				}
+
+				/* copy data */
+				for (j = 0; j < arg2->tile.height; j++) {
+					k = ry + j;
+
+					if (k >= arg2->raster.height) {
+						POSTGIS_RT_DEBUGF(4, "row %d is beyond extent of source raster. skipping", k);
+						continue;
+					}
+
+					POSTGIS_RT_DEBUGF(4, "getting pixel line %d, %d for %d pixels", rx, k, len);
+					if (rt_band_get_pixel_line(_band, rx, k, len, &vals, &nvals) != ES_NONE) {
+						rt_raster_destroy(tile);
+						rt_raster_destroy(arg2->raster.raster);
+						if (arg2->numbands) pfree(arg2->nbands);
+						pfree(arg2);
+						elog(ERROR, "RASTER_tile: Could not get pixel line from source raster");
+						SRF_RETURN_DONE(funcctx);
+					}
+
+					if (nvals && rt_band_set_pixel_line(band, 0, j, vals, nvals) != ES_NONE) {
+						rt_raster_destroy(tile);
+						rt_raster_destroy(arg2->raster.raster);
+						if (arg2->numbands) pfree(arg2->nbands);
+						pfree(arg2);
+						elog(ERROR, "RASTER_tile: Could not set pixel line of output tile");
+						SRF_RETURN_DONE(funcctx);
+					}
+				}
+			}
+			/* offline */
+			else {
+				uint8_t bandnum = 0;
+				rt_band_get_ext_band_num(_band, &bandnum);
+
+				band = rt_band_new_offline(
+					width, height,
+					pixtype,
+					hasnodata, nodataval,
+					bandnum, rt_band_get_ext_path(_band)
+				);
+
+				if (band == NULL) {
+					rt_raster_destroy(tile);
+					rt_raster_destroy(arg2->raster.raster);
+					if (arg2->numbands) pfree(arg2->nbands);
+					pfree(arg2);
+					elog(ERROR, "RASTER_tile: Could not create new offline band for output tile");
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				if (rt_raster_add_band(tile, band, i) < 0) {
+					rt_band_destroy(band);
+					rt_raster_destroy(tile);
+					rt_raster_destroy(arg2->raster.raster);
+					if (arg2->numbands) pfree(arg2->nbands);
+					pfree(arg2);
+					elog(ERROR, "RASTER_tile: Could not add new offline band to output tile");
+					SRF_RETURN_DONE(funcctx);
+				}
+			}
+		}
+
+		pgtile = rt_raster_serialize(tile);
+		rt_raster_destroy(tile);
+		if (!pgtile) {
+			rt_raster_destroy(arg2->raster.raster);
+			if (arg2->numbands) pfree(arg2->nbands);
+			pfree(arg2);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		SET_VARSIZE(pgtile, pgtile->size);
+		SRF_RETURN_NEXT(funcctx, PointerGetDatum(pgtile));
+	}
+	/* do when there is no more left */
+	else {
+		rt_raster_destroy(arg2->raster.raster);
+		if (arg2->numbands) pfree(arg2->nbands);
+		pfree(arg2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * Return new raster from selected bands of existing raster through ST_Band.
+ * second argument is an array of band numbers (1 based)
+ */
+PG_FUNCTION_INFO_V1(RASTER_band);
+Datum RASTER_band(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster;
+	rt_pgraster *pgrast;
+	rt_raster raster;
+	rt_raster rast;
+
+	bool skip = FALSE;
+	ArrayType *array;
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+
+	uint32_t numBands;
+	uint32_t *bandNums;
+	uint32 idx = 0;
+	int n;
+	int i = 0;
+	int j = 0;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_band: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* process bandNums */
+	if (PG_ARGISNULL(1)) {
+		elog(NOTICE, "Band number(s) not provided.  Returning original raster");
+		skip = TRUE;
+	}
+	do {
+		if (skip) break;
+
+		numBands = rt_raster_get_num_bands(raster);
+
+		array = PG_GETARG_ARRAYTYPE_P(1);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case INT2OID:
+			case INT4OID:
+				break;
+			default:
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_band: Invalid data type for band number(s)");
+				PG_RETURN_NULL();
+				break;
+		}
+
+		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+			&nulls, &n);
+
+		bandNums = palloc(sizeof(uint32_t) * n);
+		for (i = 0, j = 0; i < n; i++) {
+			if (nulls[i]) continue;
+
+			switch (etype) {
+				case INT2OID:
+					idx = (uint32_t) DatumGetInt16(e[i]);
+					break;
+				case INT4OID:
+					idx = (uint32_t) DatumGetInt32(e[i]);
+					break;
+			}
+
+			POSTGIS_RT_DEBUGF(3, "band idx (before): %d", idx);
+			if (idx > numBands || idx < 1) {
+        elog(NOTICE, "Invalid band index (must use 1-based). Returning original raster");
+				skip = TRUE;
+				break;
+			}
+
+			bandNums[j] = idx - 1;
+			POSTGIS_RT_DEBUGF(3, "bandNums[%d] = %d", j, bandNums[j]);
+			j++;
+		}
+
+		if (skip || j < 1) {
+			pfree(bandNums);
+			skip = TRUE;
+		}
+	}
+	while (0);
+
+	if (!skip) {
+		rast = rt_raster_from_band(raster, bandNums, j);
+		pfree(bandNums);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		if (!rast) {
+			elog(ERROR, "RASTER_band: Could not create new raster");
+			PG_RETURN_NULL();
+		}
+
+		pgrast = rt_raster_serialize(rast);
+		rt_raster_destroy(rast);
+
+		if (!pgrast)
+			PG_RETURN_NULL();
+
+		SET_VARSIZE(pgrast, pgrast->size);
+		PG_RETURN_POINTER(pgrast);
+	}
+
+	PG_RETURN_POINTER(pgraster);
+}
diff --git a/raster/rt_pg/rtpg_gdal.c b/raster/rt_pg/rtpg_gdal.c
new file mode 100644
index 0000000..4a8d4b2
--- /dev/null
+++ b/raster/rt_pg/rtpg_gdal.c
@@ -0,0 +1,690 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h>
+#include <fmgr.h>
+#include <funcapi.h> /* for SRF */
+#include <utils/builtins.h> /* for text_to_cstring() */
+#include "utils/lsyscache.h" /* for get_typlenbyvalalign */
+#include "utils/array.h" /* for ArrayType */
+#include "catalog/pg_type.h" /* for INT2OID, INT4OID, FLOAT4OID, FLOAT8OID and TEXTOID */
+
+#include "../../postgis_config.h"
+
+#if POSTGIS_PGSQL_VERSION > 92
+#include "access/htup_details.h" /* for heap_form_tuple() */
+#endif
+
+#include "rtpostgis.h"
+#include "rtpg_internal.h"
+
+/* convert GDAL raster to raster */
+Datum RASTER_fromGDALRaster(PG_FUNCTION_ARGS);
+
+/* convert raster to GDAL raster */
+Datum RASTER_asGDALRaster(PG_FUNCTION_ARGS);
+Datum RASTER_getGDALDrivers(PG_FUNCTION_ARGS);
+
+/* warp a raster using GDAL Warp API */
+Datum RASTER_GDALWarp(PG_FUNCTION_ARGS);
+
+/* ---------------------------------------------------------------- */
+/* Returns raster from GDAL raster                                  */
+/* ---------------------------------------------------------------- */
+PG_FUNCTION_INFO_V1(RASTER_fromGDALRaster);
+Datum RASTER_fromGDALRaster(PG_FUNCTION_ARGS)
+{
+	bytea *bytea_data;
+	uint8_t *data;
+	int data_len = 0;
+	VSILFILE *vsifp = NULL;
+	GDALDatasetH hdsSrc;
+	int srid = -1; /* -1 for NULL */
+
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster;
+
+	/* NULL if NULL */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	/* get data */
+	bytea_data = (bytea *) PG_GETARG_BYTEA_P(0);
+	data = (uint8_t *) VARDATA(bytea_data);
+	data_len = VARSIZE(bytea_data) - VARHDRSZ;
+
+	/* process srid */
+	/* NULL srid means try to determine SRID from bytea */
+	if (!PG_ARGISNULL(1))
+		srid = clamp_srid(PG_GETARG_INT32(1));
+
+	/* create memory "file" */
+	vsifp = VSIFileFromMemBuffer("/vsimem/in.dat", data, data_len, FALSE);
+	if (vsifp == NULL) {
+		PG_FREE_IF_COPY(bytea_data, 0);
+		elog(ERROR, "RASTER_fromGDALRaster: Could not load bytea into memory file for use by GDAL");
+		PG_RETURN_NULL();
+	}
+
+	/* register all GDAL drivers */
+	rt_util_gdal_register_all(0);
+
+	/* open GDAL raster */
+	hdsSrc = rt_util_gdal_open("/vsimem/in.dat", GA_ReadOnly, 1);
+	if (hdsSrc == NULL) {
+		VSIFCloseL(vsifp);
+		PG_FREE_IF_COPY(bytea_data, 0);
+		elog(ERROR, "RASTER_fromGDALRaster: Could not open bytea with GDAL. Check that the bytea is of a GDAL supported format");
+		PG_RETURN_NULL();
+	}
+	
+#if POSTGIS_DEBUG_LEVEL > 3
+	{
+		GDALDriverH hdrv = GDALGetDatasetDriver(hdsSrc);
+
+		POSTGIS_RT_DEBUGF(4, "Input GDAL Raster info: %s, (%d x %d)",
+			GDALGetDriverShortName(hdrv),
+			GDALGetRasterXSize(hdsSrc),
+			GDALGetRasterYSize(hdsSrc)
+		);
+	}
+#endif
+
+	/* convert GDAL raster to raster */
+	raster = rt_raster_from_gdal_dataset(hdsSrc);
+
+	GDALClose(hdsSrc);
+	VSIFCloseL(vsifp);
+	PG_FREE_IF_COPY(bytea_data, 0);
+
+	if (raster == NULL) {
+		elog(ERROR, "RASTER_fromGDALRaster: Could not convert GDAL raster to raster");
+		PG_RETURN_NULL();
+	}
+
+	/* apply SRID if set */
+	if (srid != -1)
+		rt_raster_set_srid(raster, srid);
+ 
+	pgraster = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	if (!pgraster)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgraster, pgraster->size);
+	PG_RETURN_POINTER(pgraster);
+}
+
+/**
+ * Returns formatted GDAL raster as bytea object of raster
+ */
+PG_FUNCTION_INFO_V1(RASTER_asGDALRaster);
+Datum RASTER_asGDALRaster(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster;
+
+	text *formattext = NULL;
+	char *format = NULL;
+	char **options = NULL;
+	text *optiontext = NULL;
+	char *option = NULL;
+	int srid = SRID_UNKNOWN;
+	char *srs = NULL;
+
+	ArrayType *array;
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int n = 0;
+	int i = 0;
+	int j = 0;
+
+	uint8_t *gdal = NULL;
+	uint64_t gdal_size = 0;
+	bytea *result = NULL;
+	uint64_t result_size = 0;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_asGDALRaster: Starting");
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_asGDALRaster: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* format is required */
+	if (PG_ARGISNULL(1)) {
+		elog(NOTICE, "Format must be provided");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+	else {
+		formattext = PG_GETARG_TEXT_P(1);
+		format = text_to_cstring(formattext);
+	}
+		
+	POSTGIS_RT_DEBUGF(3, "RASTER_asGDALRaster: Arg 1 (format) is %s", format);
+
+	/* process options */
+	if (!PG_ARGISNULL(2)) {
+		POSTGIS_RT_DEBUG(3, "RASTER_asGDALRaster: Processing Arg 2 (options)");
+		array = PG_GETARG_ARRAYTYPE_P(2);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case TEXTOID:
+				break;
+			default:
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_asGDALRaster: Invalid data type for options");
+				PG_RETURN_NULL();
+				break;
+		}
+
+		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+			&nulls, &n);
+
+		if (n) {
+			options = (char **) palloc(sizeof(char *) * (n + 1));
+			if (options == NULL) {
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_asGDALRaster: Could not allocate memory for options");
+				PG_RETURN_NULL();
+			}
+
+			/* clean each option */
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) continue;
+
+				option = NULL;
+				switch (etype) {
+					case TEXTOID:
+						optiontext = (text *) DatumGetPointer(e[i]);
+						if (NULL == optiontext) break;
+						option = text_to_cstring(optiontext);
+
+						/* trim string */
+						option = rtpg_trim(option);
+						POSTGIS_RT_DEBUGF(3, "RASTER_asGDALRaster: option is '%s'", option);
+						break;
+				}
+
+				if (strlen(option)) {
+					options[j] = (char *) palloc(sizeof(char) * (strlen(option) + 1));
+					options[j] = option;
+					j++;
+				}
+			}
+
+			if (j > 0) {
+				/* trim allocation */
+				options = repalloc(options, (j + 1) * sizeof(char *));
+
+				/* add NULL to end */
+				options[j] = NULL;
+
+			}
+			else {
+				pfree(options);
+				options = NULL;
+			}
+		}
+	}
+
+	/* process srid */
+	/* NULL srid means use raster's srid */
+	if (PG_ARGISNULL(3))
+		srid = rt_raster_get_srid(raster);
+	else 
+		srid = PG_GETARG_INT32(3);
+
+	/* get srs from srid */
+	if (clamp_srid(srid) != SRID_UNKNOWN) {
+		srs = rtpg_getSR(srid);
+		if (NULL == srs) {
+			if (NULL != options) {
+				for (i = j - 1; i >= 0; i--) pfree(options[i]);
+				pfree(options);
+			}
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_asGDALRaster: Could not find srtext for SRID (%d)", srid);
+			PG_RETURN_NULL();
+		}
+		POSTGIS_RT_DEBUGF(3, "RASTER_asGDALRaster: Arg 3 (srs) is %s", srs);
+	}
+	else
+		srs = NULL;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_asGDALRaster: Generating GDAL raster");
+	gdal = rt_raster_to_gdal(raster, srs, format, options, &gdal_size);
+
+	/* free memory */
+	if (NULL != options) {
+		for (i = j - 1; i >= 0; i--) pfree(options[i]);
+		pfree(options);
+	}
+	if (NULL != srs) pfree(srs);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	if (!gdal) {
+		elog(ERROR, "RASTER_asGDALRaster: Could not allocate and generate GDAL raster");
+		PG_RETURN_NULL();
+	}
+	POSTGIS_RT_DEBUGF(3, "RASTER_asGDALRaster: GDAL raster generated with %d bytes", (int) gdal_size);
+
+	/* result is a varlena */
+	result_size = gdal_size + VARHDRSZ;
+	result = (bytea *) palloc(result_size);
+	if (NULL == result) {
+		elog(ERROR, "RASTER_asGDALRaster: Insufficient virtual memory for GDAL raster");
+		PG_RETURN_NULL();
+	}
+	SET_VARSIZE(result, result_size);
+	memcpy(VARDATA(result), gdal, VARSIZE(result) - VARHDRSZ);
+
+	/* for test output
+	FILE *fh = NULL;
+	fh = fopen("/tmp/out.dat", "w");
+	fwrite(gdal, sizeof(uint8_t), gdal_size, fh);
+	fclose(fh);
+	*/
+
+	/* free gdal mem buffer */
+	if (gdal) CPLFree(gdal);
+
+	POSTGIS_RT_DEBUG(3, "RASTER_asGDALRaster: Returning pointer to GDAL raster");
+	PG_RETURN_POINTER(result);
+}
+
+/**
+ * Returns available GDAL drivers
+ */
+PG_FUNCTION_INFO_V1(RASTER_getGDALDrivers);
+Datum RASTER_getGDALDrivers(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+
+	uint32_t drv_count;
+	rt_gdaldriver drv_set;
+	rt_gdaldriver drv_set2;
+	int call_cntr;
+	int max_calls;
+
+	/* first call of function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+
+		/* 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);
+
+		drv_set = rt_raster_gdal_drivers(&drv_count, 1);
+		if (NULL == drv_set || !drv_count) {
+			elog(NOTICE, "No GDAL drivers found");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		POSTGIS_RT_DEBUGF(3, "%d drivers returned", (int) drv_count);
+
+		/* Store needed information */
+		funcctx->user_fctx = drv_set;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = drv_count;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	drv_set2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 4;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+
+		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		values[0] = Int32GetDatum(drv_set2[call_cntr].idx);
+		values[1] = CStringGetTextDatum(drv_set2[call_cntr].short_name);
+		values[2] = CStringGetTextDatum(drv_set2[call_cntr].long_name);
+		values[3] = CStringGetTextDatum(drv_set2[call_cntr].create_options);
+
+		POSTGIS_RT_DEBUGF(4, "Result %d, Index %d", call_cntr, drv_set2[call_cntr].idx);
+		POSTGIS_RT_DEBUGF(4, "Result %d, Short Name %s", call_cntr, drv_set2[call_cntr].short_name);
+		POSTGIS_RT_DEBUGF(4, "Result %d, Full Name %s", call_cntr, drv_set2[call_cntr].long_name);
+		POSTGIS_RT_DEBUGF(5, "Result %d, Create Options %s", call_cntr, drv_set2[call_cntr].create_options);
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		/* clean up */
+		pfree(drv_set2[call_cntr].short_name);
+		pfree(drv_set2[call_cntr].long_name);
+		pfree(drv_set2[call_cntr].create_options);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		pfree(drv_set2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * warp a raster using GDAL Warp API
+ */
+PG_FUNCTION_INFO_V1(RASTER_GDALWarp);
+Datum RASTER_GDALWarp(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrast = NULL;
+	rt_raster raster = NULL;
+	rt_raster rast = NULL;
+
+	text *algtext = NULL;
+	char *algchar = NULL;
+	GDALResampleAlg alg = GRA_NearestNeighbour;
+	double max_err = 0.125;
+
+	int src_srid = SRID_UNKNOWN;
+	char *src_srs = NULL;
+	int dst_srid = SRID_UNKNOWN;
+	char *dst_srs = NULL;
+	int no_srid = 0;
+
+	double scale[2] = {0};
+	double *scale_x = NULL;
+	double *scale_y = NULL;
+
+	double gridw[2] = {0};
+	double *grid_xw = NULL;
+	double *grid_yw = NULL;
+
+	double skew[2] = {0};
+	double *skew_x = NULL;
+	double *skew_y = NULL;
+
+	int dim[2] = {0};
+	int *dim_x = NULL;
+	int *dim_y = NULL;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_GDALWarp: Starting");
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	/* raster */
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_GDALWarp: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* resampling algorithm */
+	if (!PG_ARGISNULL(1)) {
+		algtext = PG_GETARG_TEXT_P(1);
+		algchar = rtpg_trim(rtpg_strtoupper(text_to_cstring(algtext)));
+		alg = rt_util_gdal_resample_alg(algchar);
+	}
+	POSTGIS_RT_DEBUGF(4, "Resampling algorithm: %d", alg);
+
+	/* max error */
+	if (!PG_ARGISNULL(2)) {
+		max_err = PG_GETARG_FLOAT8(2);
+		if (max_err < 0.) max_err = 0.;
+	}
+	POSTGIS_RT_DEBUGF(4, "max_err: %f", max_err);
+
+	/* source SRID */
+	src_srid = clamp_srid(rt_raster_get_srid(raster));
+	POSTGIS_RT_DEBUGF(4, "source SRID: %d", src_srid);
+
+	/* target SRID */
+	if (!PG_ARGISNULL(3)) {
+		dst_srid = clamp_srid(PG_GETARG_INT32(3));
+		if (dst_srid == SRID_UNKNOWN) {
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_GDALWarp: %d is an invalid target SRID", dst_srid);
+			PG_RETURN_NULL();
+		}
+	}
+	else
+		dst_srid = src_srid;
+	POSTGIS_RT_DEBUGF(4, "destination SRID: %d", dst_srid);
+
+	/* target SRID != src SRID, error */
+	if (src_srid == SRID_UNKNOWN && dst_srid != src_srid) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_GDALWarp: Input raster has unknown (%d) SRID", src_srid);
+		PG_RETURN_NULL();
+	}
+	/* target SRID == src SRID, no reprojection */
+	else if (dst_srid == src_srid) {
+		no_srid = 1;
+	}
+
+	/* scale x */
+	if (!PG_ARGISNULL(4)) {
+		scale[0] = PG_GETARG_FLOAT8(4);
+		if (FLT_NEQ(scale[0], 0)) scale_x = &scale[0];
+	}
+
+	/* scale y */
+	if (!PG_ARGISNULL(5)) {
+		scale[1] = PG_GETARG_FLOAT8(5);
+		if (FLT_NEQ(scale[1], 0)) scale_y = &scale[1];
+	}
+
+	/* grid alignment x */
+	if (!PG_ARGISNULL(6)) {
+		gridw[0] = PG_GETARG_FLOAT8(6);
+		grid_xw = &gridw[0];
+	}
+
+	/* grid alignment y */
+	if (!PG_ARGISNULL(7)) {
+		gridw[1] = PG_GETARG_FLOAT8(7);
+		grid_yw = &gridw[1];
+	}
+
+	/* skew x */
+	if (!PG_ARGISNULL(8)) {
+		skew[0] = PG_GETARG_FLOAT8(8);
+		if (FLT_NEQ(skew[0], 0)) skew_x = &skew[0];
+	}
+
+	/* skew y */
+	if (!PG_ARGISNULL(9)) {
+		skew[1] = PG_GETARG_FLOAT8(9);
+		if (FLT_NEQ(skew[1], 0)) skew_y = &skew[1];
+	}
+
+	/* width */
+	if (!PG_ARGISNULL(10)) {
+		dim[0] = PG_GETARG_INT32(10);
+		if (dim[0] < 0) dim[0] = 0;
+		if (dim[0] > 0) dim_x = &dim[0];
+	}
+
+	/* height */
+	if (!PG_ARGISNULL(11)) {
+		dim[1] = PG_GETARG_INT32(11);
+		if (dim[1] < 0) dim[1] = 0;
+		if (dim[1] > 0) dim_y = &dim[1];
+	}
+
+	/* check that at least something is to be done */
+	if (
+		(dst_srid == SRID_UNKNOWN) &&
+		(scale_x == NULL) && (scale_y == NULL) &&
+		(grid_xw == NULL) && (grid_yw == NULL) &&
+		(skew_x == NULL) && (skew_y == NULL) &&
+		(dim_x == NULL) && (dim_y == NULL)
+	) {
+		elog(NOTICE, "No resampling parameters provided.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+	/* both values of alignment must be provided if any one is provided */
+	else if (
+		(grid_xw != NULL && grid_yw == NULL) ||
+		(grid_xw == NULL && grid_yw != NULL)
+	) {
+		elog(NOTICE, "Values must be provided for both X and Y when specifying the alignment.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+	/* both values of scale must be provided if any one is provided */
+	else if (
+		(scale_x != NULL && scale_y == NULL) ||
+		(scale_x == NULL && scale_y != NULL)
+	) {
+		elog(NOTICE, "Values must be provided for both X and Y when specifying the scale.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+	/* scale and width/height provided */
+	else if (
+		(scale_x != NULL || scale_y != NULL) &&
+		(dim_x != NULL || dim_y != NULL)
+	) {
+		elog(NOTICE, "Scale X/Y and width/height are mutually exclusive.  Only provide one.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	/* get srses from srids */
+	if (!no_srid) {
+		/* source srs */
+		src_srs = rtpg_getSR(src_srid);
+		if (NULL == src_srs) {
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_GDALWarp: Input raster has unknown SRID (%d)", src_srid);
+			PG_RETURN_NULL();
+		}
+		POSTGIS_RT_DEBUGF(4, "src srs: %s", src_srs);
+
+		dst_srs = rtpg_getSR(dst_srid);
+		if (NULL == dst_srs) {
+			if (!no_srid) pfree(src_srs);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_GDALWarp: Target SRID (%d) is unknown", dst_srid);
+			PG_RETURN_NULL();
+		}
+		POSTGIS_RT_DEBUGF(4, "dst srs: %s", dst_srs);
+	}
+
+	rast = rt_raster_gdal_warp(
+		raster,
+		src_srs, dst_srs,
+		scale_x, scale_y,
+		dim_x, dim_y,
+		NULL, NULL,
+		grid_xw, grid_yw,
+		skew_x, skew_y,
+		alg, max_err);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!no_srid) {
+		pfree(src_srs);
+		pfree(dst_srs);
+	}
+	if (!rast) {
+		elog(ERROR, "RASTER_band: Could not create transformed raster");
+		PG_RETURN_NULL();
+	}
+
+	/* add target SRID */
+	rt_raster_set_srid(rast, dst_srid);
+
+	pgrast = rt_raster_serialize(rast);
+	rt_raster_destroy(rast);
+
+	if (NULL == pgrast) PG_RETURN_NULL();
+
+	POSTGIS_RT_DEBUG(3, "RASTER_GDALWarp: done");
+
+	SET_VARSIZE(pgrast, pgrast->size);
+	PG_RETURN_POINTER(pgrast);
+}
+
diff --git a/raster/rt_pg/rtpg_geometry.c b/raster/rt_pg/rtpg_geometry.c
new file mode 100644
index 0000000..abff53c
--- /dev/null
+++ b/raster/rt_pg/rtpg_geometry.c
@@ -0,0 +1,1319 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h>
+#include <fmgr.h>
+#include <funcapi.h>
+#include <utils/lsyscache.h> /* for get_typlenbyvalalign */
+#include <utils/array.h> /* for ArrayType */
+#include <catalog/pg_type.h> /* for INT2OID, INT4OID, FLOAT4OID, FLOAT8OID and TEXTOID */
+#include <utils/builtins.h> /* for text_to_cstring() */
+
+#include "../../postgis_config.h"
+
+#if POSTGIS_PGSQL_VERSION > 92
+#include "access/htup_details.h" /* for heap_form_tuple() */
+#endif
+
+#include "lwgeom_pg.h"
+
+#include "rtpostgis.h"
+#include "rtpg_internal.h"
+
+Datum RASTER_envelope(PG_FUNCTION_ARGS);
+Datum RASTER_convex_hull(PG_FUNCTION_ARGS);
+Datum RASTER_dumpAsPolygons(PG_FUNCTION_ARGS);
+
+/* Get pixel geographical shape */
+Datum RASTER_getPixelPolygons(PG_FUNCTION_ARGS);
+
+/* Get raster band's polygon */
+Datum RASTER_getPolygon(PG_FUNCTION_ARGS);
+
+/* rasterize a geometry */
+Datum RASTER_asRaster(PG_FUNCTION_ARGS);
+
+/* ---------------------------------------------------------------- */
+/*  Raster envelope                                                 */
+/* ---------------------------------------------------------------- */
+PG_FUNCTION_INFO_V1(RASTER_envelope);
+Datum RASTER_envelope(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster;
+	rt_raster raster;
+	LWGEOM *geom = NULL;
+	GSERIALIZED* gser = NULL;
+	size_t gser_size;
+	int err = ES_NONE;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(
+		PG_GETARG_DATUM(0),
+		0,
+		sizeof(struct rt_raster_serialized_t)
+	);
+	raster = rt_raster_deserialize(pgraster, TRUE);
+
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_envelope: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	err = rt_raster_get_envelope_geom(raster, &geom);
+
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	if (err != ES_NONE) {
+		elog(ERROR, "RASTER_envelope: Could not get raster's envelope");
+		PG_RETURN_NULL();
+	}
+	else if (geom == NULL) {
+		elog(NOTICE, "Raster's envelope is NULL");
+		PG_RETURN_NULL();
+	}
+
+	gser = gserialized_from_lwgeom(geom, 0, &gser_size);
+	lwgeom_free(geom);
+
+	SET_VARSIZE(gser, gser_size);
+	PG_RETURN_POINTER(gser);
+}
+
+/**
+ * Return the convex hull of this raster
+ */
+/* ---------------------------------------------------------------- */
+/*  Raster convex hull                                              */
+/* ---------------------------------------------------------------- */
+PG_FUNCTION_INFO_V1(RASTER_convex_hull);
+Datum RASTER_convex_hull(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster;
+	rt_raster raster;
+	LWGEOM *geom = NULL;
+	GSERIALIZED* gser = NULL;
+	size_t gser_size;
+	int err = ES_NONE;
+
+	bool minhull = FALSE;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	/* # of args */
+	if (PG_NARGS() > 1)
+		minhull = TRUE;
+
+	if (!minhull) {
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+		raster = rt_raster_deserialize(pgraster, TRUE);
+	}
+	else {
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+		raster = rt_raster_deserialize(pgraster, FALSE);
+	}
+
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_convex_hull: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	if (!minhull)
+		err = rt_raster_get_convex_hull(raster, &geom);
+	else {
+		int nband = -1;
+
+		/* get arg 1 */
+		if (!PG_ARGISNULL(1)) {
+			nband = PG_GETARG_INT32(1);
+			if (!rt_raster_has_band(raster, nband - 1)) {
+				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				PG_RETURN_NULL();
+			}
+			nband = nband - 1;
+		}
+
+		err = rt_raster_get_perimeter(raster, nband, &geom);
+	}
+
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	if (err != ES_NONE) {
+		elog(ERROR, "RASTER_convex_hull: Could not get raster's convex hull");
+		PG_RETURN_NULL();
+	}
+	else if (geom == NULL) {
+		elog(NOTICE, "Raster's convex hull is NULL");
+		PG_RETURN_NULL();
+	}
+
+	gser = gserialized_from_lwgeom(geom, 0, &gser_size);
+	lwgeom_free(geom);
+
+	SET_VARSIZE(gser, gser_size);
+	PG_RETURN_POINTER(gser);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_dumpAsPolygons);
+Datum RASTER_dumpAsPolygons(PG_FUNCTION_ARGS) {
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+	rt_geomval geomval;
+	rt_geomval geomval2;
+	int call_cntr;
+	int max_calls;
+
+	/* stuff done only on the first call of the function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+		int numbands;
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		int nband;
+		bool exclude_nodata_value = TRUE;
+		int nElements;
+
+		POSTGIS_RT_DEBUG(2, "RASTER_dumpAsPolygons first call");
+
+		/* 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);
+
+		/* Get input arguments */
+		if (PG_ARGISNULL(0)) {
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			ereport(ERROR, (
+				errcode(ERRCODE_OUT_OF_MEMORY),
+				errmsg("Could not deserialize raster")
+			));
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		if (!PG_ARGISNULL(1))
+			nband = PG_GETARG_UINT32(1);
+		else
+			nband = 1; /* By default, first band */
+
+		POSTGIS_RT_DEBUGF(3, "band %d", nband);
+		numbands = rt_raster_get_num_bands(raster);
+
+		if (nband < 1 || nband > numbands) {
+			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		if (!PG_ARGISNULL(2))
+			exclude_nodata_value = PG_GETARG_BOOL(2);
+
+		/* see if band is NODATA */
+		if (rt_band_get_isnodata_flag(rt_raster_get_band(raster, nband - 1))) {
+			POSTGIS_RT_DEBUGF(3, "Band at index %d is NODATA. Returning NULL", nband);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* Polygonize raster */
+
+		/**
+		 * Dump raster
+		 */
+		geomval = rt_raster_gdal_polygonize(raster, nband - 1, exclude_nodata_value, &nElements);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		if (NULL == geomval) {
+			ereport(ERROR, (
+				errcode(ERRCODE_NO_DATA_FOUND),
+				errmsg("Could not polygonize raster")
+			));
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		POSTGIS_RT_DEBUGF(3, "raster dump, %d elements returned", nElements);
+
+		/* Store needed information */
+		funcctx->user_fctx = geomval;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = nElements;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg("function returning record called in context that cannot accept type record")
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	geomval2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 2;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple    tuple;
+		Datum        result;
+
+		GSERIALIZED *gser = NULL;
+		size_t gser_size = 0;
+
+		POSTGIS_RT_DEBUGF(3, "call number %d", call_cntr);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		/* convert LWGEOM to GSERIALIZED */
+		gser = gserialized_from_lwgeom(lwpoly_as_lwgeom(geomval2[call_cntr].geom), 0, &gser_size);
+		lwgeom_free(lwpoly_as_lwgeom(geomval2[call_cntr].geom));
+
+		values[0] = PointerGetDatum(gser);
+		values[1] = Float8GetDatum(geomval2[call_cntr].val);
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		pfree(geomval2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * Return the geographical shape of all pixels
+ */
+PG_FUNCTION_INFO_V1(RASTER_getPixelPolygons);
+Datum RASTER_getPixelPolygons(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+	rt_pixel pix = NULL;
+	rt_pixel pix2;
+	int call_cntr;
+	int max_calls;
+	int i = 0;
+
+	/* stuff done only on the first call of the function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+		int nband = 1;
+		int numbands;
+		bool hasband = TRUE;
+		bool exclude_nodata_value = TRUE;
+		bool nocolumnx = FALSE;
+		bool norowy = FALSE;
+		int x = 0;
+		int y = 0;
+		int bounds[4] = {0};
+		int pixcount = 0;
+		double value = 0;
+		int isnodata = 0;
+
+		LWPOLY *poly;
+
+		POSTGIS_RT_DEBUG(3, "RASTER_getPixelPolygons first call");
+
+		/* 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);
+
+		if (PG_ARGISNULL(0)) {
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+		/* band */
+		if (PG_ARGISNULL(1))
+			hasband = FALSE;
+		else {
+			nband = PG_GETARG_INT32(1);
+			hasband = TRUE;
+		}
+
+		/* column */
+		if (PG_ARGISNULL(2))
+			nocolumnx = TRUE;
+		else {
+			bounds[0] = PG_GETARG_INT32(2);
+			bounds[1] = bounds[0];
+		}
+
+		/* row */
+		if (PG_ARGISNULL(3))
+			norowy = TRUE;
+		else {
+			bounds[2] = PG_GETARG_INT32(3);
+			bounds[3] = bounds[2];
+		}
+
+		/* exclude NODATA */
+		if (!PG_ARGISNULL(4))
+			exclude_nodata_value = PG_GETARG_BOOL(4);
+
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			ereport(ERROR, (
+				errcode(ERRCODE_OUT_OF_MEMORY),
+				errmsg("Could not deserialize raster")
+			));
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* raster empty, return NULL */
+		if (rt_raster_is_empty(raster)) {
+			elog(NOTICE, "Raster is empty. Returning NULL");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* band specified, load band and info */
+		if (hasband) {
+			numbands = rt_raster_get_num_bands(raster);
+			POSTGIS_RT_DEBUGF(3, "band %d", nband);
+			POSTGIS_RT_DEBUGF(3, "# of bands %d", numbands);
+
+			if (nband < 1 || nband > numbands) {
+				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			band = rt_raster_get_band(raster, nband - 1);
+			if (!band) {
+				elog(NOTICE, "Could not find band at index %d. Returning NULL", nband);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			if (!rt_band_get_hasnodata_flag(band))
+				exclude_nodata_value = FALSE;
+		}
+
+		/* set bounds if columnx, rowy not set */
+		if (nocolumnx) {
+			bounds[0] = 1;
+			bounds[1] = rt_raster_get_width(raster);
+		}
+		if (norowy) {
+			bounds[2] = 1;
+			bounds[3] = rt_raster_get_height(raster);
+		}
+		POSTGIS_RT_DEBUGF(3, "bounds (min x, max x, min y, max y) = (%d, %d, %d, %d)", 
+			bounds[0], bounds[1], bounds[2], bounds[3]);
+
+		/* rowy */
+		pixcount = 0;
+		for (y = bounds[2]; y <= bounds[3]; y++) {
+			/* columnx */
+			for (x = bounds[0]; x <= bounds[1]; x++) {
+
+				value = 0;
+				isnodata = TRUE;
+
+				if (hasband) {
+					if (rt_band_get_pixel(band, x - 1, y - 1, &value, &isnodata) != ES_NONE) {
+
+						for (i = 0; i < pixcount; i++)
+							lwgeom_free(pix[i].geom);
+						if (pixcount) pfree(pix);
+
+						rt_band_destroy(band);
+						rt_raster_destroy(raster);
+						PG_FREE_IF_COPY(pgraster, 0);
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_getPixelPolygons: Could not get pixel value");
+						SRF_RETURN_DONE(funcctx);
+					}
+
+					/* don't continue if pixel is NODATA and to exclude NODATA */
+					if (isnodata && exclude_nodata_value) {
+						POSTGIS_RT_DEBUG(5, "pixel value is NODATA and exclude_nodata_value = TRUE");
+						continue;
+					}
+				}
+
+				/* geometry */
+				poly = rt_raster_pixel_as_polygon(raster, x - 1, y - 1);
+				if (!poly) {
+					for (i = 0; i < pixcount; i++)
+						lwgeom_free(pix[i].geom);
+					if (pixcount) pfree(pix);
+
+					if (hasband) rt_band_destroy(band);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_getPixelPolygons: Could not get pixel polygon");
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				if (!pixcount)
+					pix = palloc(sizeof(struct rt_pixel_t) * (pixcount + 1));
+				else
+					pix = repalloc(pix, sizeof(struct rt_pixel_t) * (pixcount + 1));
+				if (pix == NULL) {
+
+					lwpoly_free(poly);
+					if (hasband) rt_band_destroy(band);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_getPixelPolygons: Could not allocate memory for storing pixel polygons");
+					SRF_RETURN_DONE(funcctx);
+				}
+				pix[pixcount].geom = (LWGEOM *) poly;
+				POSTGIS_RT_DEBUGF(5, "poly @ %p", poly);
+				POSTGIS_RT_DEBUGF(5, "geom @ %p", pix[pixcount].geom);
+
+				/* x, y */
+				pix[pixcount].x = x;
+				pix[pixcount].y = y;
+
+				/* value */
+				pix[pixcount].value = value;
+
+				/* NODATA */
+				if (hasband) {
+					if (exclude_nodata_value)
+						pix[pixcount].nodata = isnodata;
+					else
+						pix[pixcount].nodata = FALSE;
+				}
+				else {
+					pix[pixcount].nodata = isnodata;
+				}
+
+				pixcount++;
+			}
+		}
+
+		if (hasband) rt_band_destroy(band);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+
+		/* shortcut if no pixcount */
+		if (pixcount < 1) {
+			elog(NOTICE, "No pixels found for band %d", nband);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* Store needed information */
+		funcctx->user_fctx = pix;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = pixcount;
+		POSTGIS_RT_DEBUGF(3, "pixcount = %d", pixcount);
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg("function returning record called in context that cannot accept type record")
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	pix2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 4;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+
+		GSERIALIZED *gser = NULL;
+		size_t gser_size = 0;
+
+		POSTGIS_RT_DEBUGF(3, "call number %d", call_cntr);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		/* convert LWGEOM to GSERIALIZED */
+		gser = gserialized_from_lwgeom(pix2[call_cntr].geom, 0, &gser_size);
+		lwgeom_free(pix2[call_cntr].geom);
+
+		values[0] = PointerGetDatum(gser);
+		if (pix2[call_cntr].nodata)
+			nulls[1] = TRUE;
+		else
+			values[1] = Float8GetDatum(pix2[call_cntr].value);
+		values[2] = Int32GetDatum(pix2[call_cntr].x);
+		values[3] = Int32GetDatum(pix2[call_cntr].y);
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		pfree(pix2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * Get raster band's polygon
+ */
+PG_FUNCTION_INFO_V1(RASTER_getPolygon);
+Datum RASTER_getPolygon(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	int num_bands = 0;
+	int nband = 1;
+	int err;
+	LWMPOLY *surface = NULL;
+	GSERIALIZED *rtn = NULL;
+
+	/* raster */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_getPolygon: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* num_bands */
+	num_bands = rt_raster_get_num_bands(raster);
+	if (num_bands < 1) {
+		elog(NOTICE, "Raster provided has no bands");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	/* band index is 1-based */
+	if (!PG_ARGISNULL(1))
+		nband = PG_GETARG_INT32(1);
+	if (nband < 1 || nband > num_bands) {
+		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	/* get band surface */
+	err = rt_raster_surface(raster, nband - 1, &surface);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	if (err != ES_NONE) {
+		elog(ERROR, "RASTER_getPolygon: Could not get raster band's surface");
+		PG_RETURN_NULL();
+	}
+	else if (surface == NULL) {
+		elog(NOTICE, "Raster is empty or all pixels of band are NODATA. Returning NULL");
+		PG_RETURN_NULL();
+	}
+
+	rtn = geometry_serialize(lwmpoly_as_lwgeom(surface));
+	lwmpoly_free(surface);
+
+	PG_RETURN_POINTER(rtn);
+}
+
+/**
+ * Rasterize a geometry
+ */
+PG_FUNCTION_INFO_V1(RASTER_asRaster);
+Datum RASTER_asRaster(PG_FUNCTION_ARGS)
+{
+	GSERIALIZED *gser = NULL;
+
+	LWGEOM *geom = NULL;
+	rt_raster rast = NULL;
+	rt_pgraster *pgrast = NULL;
+
+	unsigned char *wkb;
+	size_t wkb_len = 0;
+	unsigned char variant = WKB_SFSQL;
+
+	double scale[2] = {0};
+	double *scale_x = NULL;
+	double *scale_y = NULL;
+
+	int dim[2] = {0};
+	int *dim_x = NULL;
+	int *dim_y = NULL;
+
+	ArrayType *array;
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int n = 0;
+	int i = 0;
+	int j = 0;
+	int haserr = 0;
+
+	text *pixeltypetext = NULL;
+	char *pixeltype = NULL;
+	rt_pixtype pixtype = PT_END;
+	rt_pixtype *pixtypes = NULL;
+	int pixtypes_len = 0;
+
+	double *values = NULL;
+	int values_len = 0;
+
+	uint8_t *hasnodatas = NULL;
+	double *nodatavals = NULL;
+	int nodatavals_len = 0;
+
+	double ulw[2] = {0};
+	double *ul_xw = NULL;
+	double *ul_yw = NULL;
+
+	double gridw[2] = {0};
+	double *grid_xw = NULL;
+	double *grid_yw = NULL;
+
+	double skew[2] = {0};
+	double *skew_x = NULL;
+	double *skew_y = NULL;
+
+	char **options = NULL;
+	int options_len = 0;
+
+	uint32_t num_bands = 0;
+
+	int srid = SRID_UNKNOWN;
+	char *srs = NULL;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_asRaster: Starting");
+
+	/* based upon LWGEOM_asBinary function in postgis/lwgeom_ogc.c */
+
+	/* Get the geometry */
+	if (PG_ARGISNULL(0)) 
+		PG_RETURN_NULL();
+
+	gser = PG_GETARG_GSERIALIZED_P(0);
+	geom = lwgeom_from_gserialized(gser);
+
+	/* Get a 2D version of the geometry if necessary */
+	if (lwgeom_ndims(geom) > 2) {
+		LWGEOM *geom2d = lwgeom_force_2d(geom);
+		lwgeom_free(geom);
+		geom = geom2d;
+	}
+
+	/* empty geometry, return empty raster */
+	if (lwgeom_is_empty(geom)) {
+		POSTGIS_RT_DEBUG(3, "Input geometry is empty. Returning empty raster");
+		lwgeom_free(geom);
+		PG_FREE_IF_COPY(gser, 0);
+
+		rast = rt_raster_new(0, 0);
+		if (rast == NULL)
+			PG_RETURN_NULL();
+
+		pgrast = rt_raster_serialize(rast);
+		rt_raster_destroy(rast);
+
+		if (NULL == pgrast)
+			PG_RETURN_NULL();
+
+		SET_VARSIZE(pgrast, pgrast->size);
+		PG_RETURN_POINTER(pgrast);
+	}
+
+	/* scale x */
+	if (!PG_ARGISNULL(1)) {
+		scale[0] = PG_GETARG_FLOAT8(1);
+		if (FLT_NEQ(scale[0], 0)) scale_x = &scale[0];
+	}
+
+	/* scale y */
+	if (!PG_ARGISNULL(2)) {
+		scale[1] = PG_GETARG_FLOAT8(2);
+		if (FLT_NEQ(scale[1], 0)) scale_y = &scale[1];
+	}
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: scale (x, y) = %f, %f", scale[0], scale[1]);
+
+	/* width */
+	if (!PG_ARGISNULL(3)) {
+		dim[0] = PG_GETARG_INT32(3);
+		if (dim[0] < 0) dim[0] = 0;
+		if (dim[0] != 0) dim_x = &dim[0];
+	}
+
+	/* height */
+	if (!PG_ARGISNULL(4)) {
+		dim[1] = PG_GETARG_INT32(4);
+		if (dim[1] < 0) dim[1] = 0;
+		if (dim[1] != 0) dim_y = &dim[1];
+	}
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: dim (x, y) = %d, %d", dim[0], dim[1]);
+
+	/* pixeltype */
+	if (!PG_ARGISNULL(5)) {
+		array = PG_GETARG_ARRAYTYPE_P(5);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case TEXTOID:
+				break;
+			default:
+
+				lwgeom_free(geom);
+				PG_FREE_IF_COPY(gser, 0);
+
+				elog(ERROR, "RASTER_asRaster: Invalid data type for pixeltype");
+				PG_RETURN_NULL();
+				break;
+		}
+
+		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+			&nulls, &n);
+
+		if (n) {
+			pixtypes = (rt_pixtype *) palloc(sizeof(rt_pixtype) * n);
+			/* clean each pixeltype */
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) {
+					pixtypes[j++] = PT_64BF;
+					continue;
+				}
+
+				pixeltype = NULL;
+				switch (etype) {
+					case TEXTOID:
+						pixeltypetext = (text *) DatumGetPointer(e[i]);
+						if (NULL == pixeltypetext) break;
+						pixeltype = text_to_cstring(pixeltypetext);
+
+						/* trim string */
+						pixeltype = rtpg_trim(pixeltype);
+						POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: pixeltype is '%s'", pixeltype);
+						break;
+				}
+
+				if (strlen(pixeltype)) {
+					pixtype = rt_pixtype_index_from_name(pixeltype);
+					if (pixtype == PT_END) {
+
+						pfree(pixtypes);
+
+						lwgeom_free(geom);
+						PG_FREE_IF_COPY(gser, 0);
+
+						elog(ERROR, "RASTER_asRaster: Invalid pixel type provided: %s", pixeltype);
+						PG_RETURN_NULL();
+					}
+
+					pixtypes[j] = pixtype;
+					j++;
+				}
+			}
+
+			if (j > 0) {
+				/* trim allocation */
+				pixtypes = repalloc(pixtypes, j * sizeof(rt_pixtype));
+				pixtypes_len = j;
+			}
+			else {
+				pfree(pixtypes);
+				pixtypes = NULL;
+				pixtypes_len = 0;
+			}
+		}
+	}
+#if POSTGIS_DEBUG_LEVEL > 0
+	for (i = 0; i < pixtypes_len; i++)
+		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: pixtypes[%d] = %d", i, (int) pixtypes[i]);
+#endif
+
+	/* value */
+	if (!PG_ARGISNULL(6)) {
+		array = PG_GETARG_ARRAYTYPE_P(6);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case FLOAT4OID:
+			case FLOAT8OID:
+				break;
+			default:
+
+				if (pixtypes_len) pfree(pixtypes);
+
+				lwgeom_free(geom);
+				PG_FREE_IF_COPY(gser, 0);
+
+				elog(ERROR, "RASTER_asRaster: Invalid data type for value");
+				PG_RETURN_NULL();
+				break;
+		}
+
+		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+			&nulls, &n);
+
+		if (n) {
+			values = (double *) palloc(sizeof(double) * n);
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) {
+					values[j++] = 1;
+					continue;
+				}
+
+				switch (etype) {
+					case FLOAT4OID:
+						values[j] = (double) DatumGetFloat4(e[i]);
+						break;
+					case FLOAT8OID:
+						values[j] = (double) DatumGetFloat8(e[i]);
+						break;
+				}
+				POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: values[%d] = %f", j, values[j]);
+
+				j++;
+			}
+
+			if (j > 0) {
+				/* trim allocation */
+				values = repalloc(values, j * sizeof(double));
+				values_len = j;
+			}
+			else {
+				pfree(values);
+				values = NULL;
+				values_len = 0;
+			}
+		}
+	}
+#if POSTGIS_DEBUG_LEVEL > 0
+	for (i = 0; i < values_len; i++)
+		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: values[%d] = %f", i, values[i]);
+#endif
+
+	/* nodataval */
+	if (!PG_ARGISNULL(7)) {
+		array = PG_GETARG_ARRAYTYPE_P(7);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case FLOAT4OID:
+			case FLOAT8OID:
+				break;
+			default:
+
+				if (pixtypes_len) pfree(pixtypes);
+				if (values_len) pfree(values);
+
+				lwgeom_free(geom);
+				PG_FREE_IF_COPY(gser, 0);
+
+				elog(ERROR, "RASTER_asRaster: Invalid data type for nodataval");
+				PG_RETURN_NULL();
+				break;
+		}
+
+		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+			&nulls, &n);
+
+		if (n) {
+			nodatavals = (double *) palloc(sizeof(double) * n);
+			hasnodatas = (uint8_t *) palloc(sizeof(uint8_t) * n);
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) {
+					hasnodatas[j] = 0;
+					nodatavals[j] = 0;
+					j++;
+					continue;
+				}
+
+				hasnodatas[j] = 1;
+				switch (etype) {
+					case FLOAT4OID:
+						nodatavals[j] = (double) DatumGetFloat4(e[i]);
+						break;
+					case FLOAT8OID:
+						nodatavals[j] = (double) DatumGetFloat8(e[i]);
+						break;
+				}
+				POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: hasnodatas[%d] = %d", j, hasnodatas[j]);
+				POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: nodatavals[%d] = %f", j, nodatavals[j]);
+
+				j++;
+			}
+
+			if (j > 0) {
+				/* trim allocation */
+				nodatavals = repalloc(nodatavals, j * sizeof(double));
+				hasnodatas = repalloc(hasnodatas, j * sizeof(uint8_t));
+				nodatavals_len = j;
+			}
+			else {
+				pfree(nodatavals);
+				pfree(hasnodatas);
+				nodatavals = NULL;
+				hasnodatas = NULL;
+				nodatavals_len = 0;
+			}
+		}
+	}
+#if POSTGIS_DEBUG_LEVEL > 0
+	for (i = 0; i < nodatavals_len; i++) {
+		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: hasnodatas[%d] = %d", i, hasnodatas[i]);
+		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: nodatavals[%d] = %f", i, nodatavals[i]);
+	}
+#endif
+
+	/* upperleftx */
+	if (!PG_ARGISNULL(8)) {
+		ulw[0] = PG_GETARG_FLOAT8(8);
+		ul_xw = &ulw[0];
+	}
+
+	/* upperlefty */
+	if (!PG_ARGISNULL(9)) {
+		ulw[1] = PG_GETARG_FLOAT8(9);
+		ul_yw = &ulw[1];
+	}
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: upperleft (x, y) = %f, %f", ulw[0], ulw[1]);
+
+	/* gridx */
+	if (!PG_ARGISNULL(10)) {
+		gridw[0] = PG_GETARG_FLOAT8(10);
+		grid_xw = &gridw[0];
+	}
+
+	/* gridy */
+	if (!PG_ARGISNULL(11)) {
+		gridw[1] = PG_GETARG_FLOAT8(11);
+		grid_yw = &gridw[1];
+	}
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: grid (x, y) = %f, %f", gridw[0], gridw[1]);
+
+	/* check dependent variables */
+	haserr = 0;
+	do {
+		/* only part of scale provided */
+		if (
+			(scale_x == NULL && scale_y != NULL) ||
+			(scale_x != NULL && scale_y == NULL)
+		) {
+			elog(NOTICE, "Values must be provided for both X and Y of scale if one is specified");
+			haserr = 1;
+			break;
+		}
+
+		/* only part of dimension provided */
+		if (
+			(dim_x == NULL && dim_y != NULL) ||
+			(dim_x != NULL && dim_y == NULL)
+		) {
+			elog(NOTICE, "Values must be provided for both width and height if one is specified");
+			haserr = 1;
+			break;
+		}
+
+		/* scale and dimension provided */
+		if (
+			(scale_x != NULL && scale_y != NULL) &&
+			(dim_x != NULL && dim_y != NULL)
+		) {
+			elog(NOTICE, "Values provided for X and Y of scale and width and height.  Using the width and height");
+			scale_x = NULL;
+			scale_y = NULL;
+			break;
+		}
+
+		/* neither scale or dimension provided */
+		if (
+			(scale_x == NULL && scale_y == NULL) &&
+			(dim_x == NULL && dim_y == NULL)
+		) {
+			elog(NOTICE, "Values must be provided for X and Y of scale or width and height");
+			haserr = 1;
+			break;
+		}
+
+		/* only part of upper-left provided */
+		if (
+			(ul_xw == NULL && ul_yw != NULL) ||
+			(ul_xw != NULL && ul_yw == NULL)
+		) {
+			elog(NOTICE, "Values must be provided for both X and Y when specifying the upper-left corner");
+			haserr = 1;
+			break;
+		}
+
+		/* only part of alignment provided */
+		if (
+			(grid_xw == NULL && grid_yw != NULL) ||
+			(grid_xw != NULL && grid_yw == NULL)
+		) {
+			elog(NOTICE, "Values must be provided for both X and Y when specifying the alignment");
+			haserr = 1;
+			break;
+		}
+
+		/* upper-left and alignment provided */
+		if (
+			(ul_xw != NULL && ul_yw != NULL) &&
+			(grid_xw != NULL && grid_yw != NULL)
+		) {
+			elog(NOTICE, "Values provided for both X and Y of upper-left corner and alignment.  Using the values of upper-left corner");
+			grid_xw = NULL;
+			grid_yw = NULL;
+			break;
+		}
+	}
+	while (0);
+
+	if (haserr) {
+		if (pixtypes_len) pfree(pixtypes);
+		if (values_len) pfree(values);
+		if (nodatavals_len) {
+			pfree(nodatavals);
+			pfree(hasnodatas);
+		}
+
+		lwgeom_free(geom);
+		PG_FREE_IF_COPY(gser, 0);
+
+		PG_RETURN_NULL();
+	}
+
+	/* skewx */
+	if (!PG_ARGISNULL(12)) {
+		skew[0] = PG_GETARG_FLOAT8(12);
+		if (FLT_NEQ(skew[0], 0)) skew_x = &skew[0];
+	}
+
+	/* skewy */
+	if (!PG_ARGISNULL(13)) {
+		skew[1] = PG_GETARG_FLOAT8(13);
+		if (FLT_NEQ(skew[1], 0)) skew_y = &skew[1];
+	}
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: skew (x, y) = %f, %f", skew[0], skew[1]);
+
+	/* all touched */
+	if (!PG_ARGISNULL(14) && PG_GETARG_BOOL(14) == TRUE) {
+		if (options_len < 1) {
+			options_len = 1;
+			options = (char **) palloc(sizeof(char *) * options_len);
+		}
+		else {
+			options_len++;
+			options = (char **) repalloc(options, sizeof(char *) * options_len);
+		}
+
+		options[options_len - 1] = palloc(sizeof(char*) * (strlen("ALL_TOUCHED=TRUE") + 1));
+		options[options_len - 1] = "ALL_TOUCHED=TRUE";
+	}
+
+	if (options_len) {
+		options_len++;
+		options = (char **) repalloc(options, sizeof(char *) * options_len);
+		options[options_len - 1] = NULL;
+	}
+
+	/* get geometry's srid */
+	srid = gserialized_get_srid(gser);
+
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: srid = %d", srid);
+	if (clamp_srid(srid) != SRID_UNKNOWN) {
+		srs = rtpg_getSR(srid);
+		if (NULL == srs) {
+
+			if (pixtypes_len) pfree(pixtypes);
+			if (values_len) pfree(values);
+			if (nodatavals_len) {
+				pfree(hasnodatas);
+				pfree(nodatavals);
+			}
+			if (options_len) pfree(options);
+
+			lwgeom_free(geom);
+			PG_FREE_IF_COPY(gser, 0);
+
+			elog(ERROR, "RASTER_asRaster: Could not find srtext for SRID (%d)", srid);
+			PG_RETURN_NULL();
+		}
+		POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: srs is %s", srs);
+	}
+	else
+		srs = NULL;
+
+	/* determine number of bands */
+	/* MIN macro is from GDAL's cpl_port.h */
+	num_bands = MIN(pixtypes_len, values_len);
+	num_bands = MIN(num_bands, nodatavals_len);
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: pixtypes_len = %d", pixtypes_len);
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: values_len = %d", values_len);
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: nodatavals_len = %d", nodatavals_len);
+	POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: num_bands = %d", num_bands);
+
+	/* warn of imbalanced number of band elements */
+	if (!(
+		(pixtypes_len == values_len) &&
+		(values_len == nodatavals_len)
+	)) {
+		elog(
+			NOTICE,
+			"Imbalanced number of values provided for pixeltype (%d), value (%d) and nodataval (%d).  Using the first %d values of each parameter",
+			pixtypes_len,
+			values_len,
+			nodatavals_len,
+			num_bands
+		);
+	}
+
+	/* get wkb of geometry */
+	POSTGIS_RT_DEBUG(3, "RASTER_asRaster: getting wkb of geometry");
+	wkb = lwgeom_to_wkb(geom, variant, &wkb_len);
+	lwgeom_free(geom);
+	PG_FREE_IF_COPY(gser, 0);
+
+	/* rasterize geometry */
+	POSTGIS_RT_DEBUG(3, "RASTER_asRaster: rasterizing geometry");
+	/* use nodatavals for the init parameter */
+	rast = rt_raster_gdal_rasterize(wkb,
+		(uint32_t) wkb_len, srs,
+		num_bands, pixtypes,
+		nodatavals, values,
+		nodatavals, hasnodatas,
+		dim_x, dim_y,
+		scale_x, scale_y,
+		ul_xw, ul_yw,
+		grid_xw, grid_yw,
+		skew_x, skew_y,
+		options
+	);
+
+	if (pixtypes_len) pfree(pixtypes);
+	if (values_len) pfree(values);
+	if (nodatavals_len) {
+		pfree(hasnodatas);
+		pfree(nodatavals);
+	}
+	if (options_len) pfree(options);
+
+	if (!rast) {
+		elog(ERROR, "RASTER_asRaster: Could not rasterize geometry");
+		PG_RETURN_NULL();
+	}
+
+	/* add target srid */
+	rt_raster_set_srid(rast, srid);
+
+	pgrast = rt_raster_serialize(rast);
+	rt_raster_destroy(rast);
+
+	if (NULL == pgrast) PG_RETURN_NULL();
+
+	POSTGIS_RT_DEBUG(3, "RASTER_asRaster: done");
+
+	SET_VARSIZE(pgrast, pgrast->size);
+	PG_RETURN_POINTER(pgrast);
+}
diff --git a/raster/rt_pg/rtpg_inout.c b/raster/rt_pg/rtpg_inout.c
new file mode 100644
index 0000000..5a76760
--- /dev/null
+++ b/raster/rt_pg/rtpg_inout.c
@@ -0,0 +1,224 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h>
+#include <fmgr.h>
+
+#include "rtpostgis.h"
+
+Datum RASTER_in(PG_FUNCTION_ARGS);
+Datum RASTER_out(PG_FUNCTION_ARGS);
+Datum RASTER_noop(PG_FUNCTION_ARGS);
+
+Datum RASTER_to_bytea(PG_FUNCTION_ARGS);
+Datum RASTER_to_binary(PG_FUNCTION_ARGS);
+
+/**
+ * Input is a string with hex chars in it.
+ * Convert to binary and put in the result
+ */
+PG_FUNCTION_INFO_V1(RASTER_in);
+Datum RASTER_in(PG_FUNCTION_ARGS)
+{
+	rt_raster raster;
+	char *hexwkb = PG_GETARG_CSTRING(0);
+	void *result = NULL;
+
+	POSTGIS_RT_DEBUG(3, "Starting");
+
+	raster = rt_raster_from_hexwkb(hexwkb, strlen(hexwkb));
+	if (raster == NULL)
+		PG_RETURN_NULL();
+
+	result = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	if (result == NULL)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(result, ((rt_pgraster*)result)->size);
+	PG_RETURN_POINTER(result);
+}
+
+/**
+ * Given a RASTER structure, convert it to Hex and put it in a string
+ */
+PG_FUNCTION_INFO_V1(RASTER_out);
+Datum RASTER_out(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	uint32_t hexwkbsize = 0;
+	char *hexwkb = NULL;
+
+	POSTGIS_RT_DEBUG(3, "Starting");
+
+	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_out: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	hexwkb = rt_raster_to_hexwkb(raster, FALSE, &hexwkbsize);
+	if (!hexwkb) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_out: Could not HEX-WKBize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* Free the raster objects used */
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	PG_RETURN_CSTRING(hexwkb);
+}
+
+/**
+ * Return bytea object with raster in Well-Known-Binary form.
+ */
+PG_FUNCTION_INFO_V1(RASTER_to_bytea);
+Datum RASTER_to_bytea(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	uint8_t *wkb = NULL;
+	uint32_t wkb_size = 0;
+	bytea *result = NULL;
+	int result_size = 0;
+
+	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	/* Get raster object */
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_to_bytea: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* Parse raster to wkb object */
+	wkb = rt_raster_to_wkb(raster, FALSE, &wkb_size);
+	if (!wkb) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_to_bytea: Could not allocate and generate WKB data");
+		PG_RETURN_NULL();
+	}
+
+	/* Create varlena object */
+	result_size = wkb_size + VARHDRSZ;
+	result = (bytea *)palloc(result_size);
+	SET_VARSIZE(result, result_size);
+	memcpy(VARDATA(result), wkb, VARSIZE(result) - VARHDRSZ);
+
+	/* Free raster objects used */
+	rt_raster_destroy(raster);
+	pfree(wkb);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	PG_RETURN_POINTER(result);
+}
+
+/**
+ * Return bytea object with raster in Well-Known-Binary form requested using ST_AsBinary function.
+ */
+PG_FUNCTION_INFO_V1(RASTER_to_binary);
+Datum RASTER_to_binary(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	uint8_t *wkb = NULL;
+	uint32_t wkb_size = 0;
+	char *result = NULL;
+	int result_size = 0;
+	int outasin = FALSE;
+
+	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	/* Get raster object */
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_to_binary: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	if (!PG_ARGISNULL(1))
+		outasin = PG_GETARG_BOOL(1);
+
+	/* Parse raster to wkb object */
+	wkb = rt_raster_to_wkb(raster, outasin, &wkb_size);
+	if (!wkb) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_to_binary: Could not allocate and generate WKB data");
+		PG_RETURN_NULL();
+	}
+
+	/* Create varlena object */
+	result_size = wkb_size + VARHDRSZ;
+	result = (char *)palloc(result_size);
+	SET_VARSIZE(result, result_size);
+	memcpy(VARDATA(result), wkb, VARSIZE(result) - VARHDRSZ);
+
+	/* Free raster objects used */
+	rt_raster_destroy(raster);
+	pfree(wkb);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	PG_RETURN_POINTER(result);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_noop);
+Datum RASTER_noop(PG_FUNCTION_ARGS)
+{
+	rt_raster raster;
+	rt_pgraster *pgraster, *result;
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_noop: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+	result = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	if (result == NULL)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(result, raster->size);
+	PG_RETURN_POINTER(result);
+}
+
diff --git a/raster/rt_pg/rtpg_internal.c b/raster/rt_pg/rtpg_internal.c
new file mode 100644
index 0000000..6446c60
--- /dev/null
+++ b/raster/rt_pg/rtpg_internal.c
@@ -0,0 +1,385 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <ctype.h> /* for isspace */
+#include <postgres.h> /* for palloc */
+#include <executor/spi.h>
+
+#include "rtpg_internal.h"
+
+/* string replacement function taken from
+ * http://ubuntuforums.org/showthread.php?s=aa6f015109fd7e4c7e30d2fd8b717497&t=141670&page=3
+ */
+/* ---------------------------------------------------------------------------
+  Name       : replace - Search & replace a substring by another one.
+  Creation   : Thierry Husson, Sept 2010
+  Parameters :
+      str    : Big string where we search
+      oldstr : Substring we are looking for
+      newstr : Substring we want to replace with
+      count  : Optional pointer to int (input / output value). NULL to ignore.
+               Input:  Maximum replacements to be done. NULL or < 1 to do all.
+               Output: Number of replacements done or -1 if not enough memory.
+  Returns    : Pointer to the new string or NULL if error.
+  Notes      :
+     - Case sensitive - Otherwise, replace functions "strstr" by "strcasestr"
+     - Always allocates memory for the result.
+--------------------------------------------------------------------------- */
+char*
+rtpg_strreplace(
+	const char *str,
+	const char *oldstr, const char *newstr,
+	int *count
+) {
+	const char *tmp = str;
+	char *result;
+	int found = 0;
+	int length, reslen;
+	int oldlen = strlen(oldstr);
+	int newlen = strlen(newstr);
+	int limit = (count != NULL && *count > 0) ? *count : -1;
+
+	tmp = str;
+	while ((tmp = strstr(tmp, oldstr)) != NULL && found != limit)
+		found++, tmp += oldlen;
+
+	length = strlen(str) + found * (newlen - oldlen);
+	if ((result = (char *) palloc(length + 1)) == NULL) {
+		fprintf(stderr, "Not enough memory\n");
+		found = -1;
+	}
+	else {
+		tmp = str;
+		limit = found; /* Countdown */
+		reslen = 0; /* length of current result */
+
+		/* Replace each old string found with new string  */
+		while ((limit-- > 0) && (tmp = strstr(tmp, oldstr)) != NULL) {
+			length = (tmp - str); /* Number of chars to keep intouched */
+			strncpy(result + reslen, str, length); /* Original part keeped */
+			strcpy(result + (reslen += length), newstr); /* Insert new string */
+
+			reslen += newlen;
+			tmp += oldlen;
+			str = tmp;
+		}
+		strcpy(result + reslen, str); /* Copies last part and ending null char */
+	}
+
+	if (count != NULL) *count = found;
+	return result;
+}
+
+char *
+rtpg_strtoupper(char * str) {
+	int j;
+
+	for (j = strlen(str) - 1; j >= 0; j--)
+		str[j] = toupper(str[j]);
+
+	return str;
+}
+
+char*
+rtpg_chartrim(const char *input, char *remove) {
+	char *rtn = NULL;
+	char *ptr = NULL;
+	uint32_t offset = 0;
+
+	if (!input)
+		return NULL;
+	else if (!*input)
+		return (char *) input;
+
+	/* trim left */
+	while (strchr(remove, *input) != NULL)
+		input++;
+
+	/* trim right */
+	ptr = ((char *) input) + strlen(input);
+	while (strchr(remove, *--ptr) != NULL)
+		offset++;
+
+	rtn = palloc(sizeof(char) * (strlen(input) - offset + 1));
+	if (rtn == NULL) {
+		fprintf(stderr, "Not enough memory\n");
+		return NULL;
+	}
+	strncpy(rtn, input, strlen(input) - offset);
+	rtn[strlen(input) - offset] = '\0';
+
+	return rtn;
+}
+
+/* split a string based on a delimiter */
+char**
+rtpg_strsplit(const char *str, const char *delimiter, int *n) {
+	char *tmp = NULL;
+	char **rtn = NULL;
+	char *token = NULL;
+
+	*n = 0;
+	if (!str)
+		return NULL;
+
+	/* copy str to tmp as strtok will mangle the string */
+	tmp = palloc(sizeof(char) * (strlen(str) + 1));
+	if (NULL == tmp) {
+		fprintf(stderr, "Not enough memory\n");
+		return NULL;
+	}
+	strcpy(tmp, str);
+
+	if (!strlen(tmp) || !delimiter || !strlen(delimiter)) {
+		*n = 1;
+		rtn = (char **) palloc(*n * sizeof(char *));
+		if (NULL == rtn) {
+			fprintf(stderr, "Not enough memory\n");
+			return NULL;
+		}
+		rtn[0] = (char *) palloc(sizeof(char) * (strlen(tmp) + 1));
+		if (NULL == rtn[0]) {
+			fprintf(stderr, "Not enough memory\n");
+			return NULL;
+		}
+		strcpy(rtn[0], tmp);
+		pfree(tmp);
+		return rtn;
+	}
+
+	token = strtok(tmp, delimiter);
+	while (token != NULL) {
+		if (*n < 1) {
+			rtn = (char **) palloc(sizeof(char *));
+		}
+		else {
+			rtn = (char **) repalloc(rtn, (*n + 1) * sizeof(char *));
+		}
+		if (NULL == rtn) {
+			fprintf(stderr, "Not enough memory\n");
+			return NULL;
+		}
+
+		rtn[*n] = NULL;
+		rtn[*n] = (char *) palloc(sizeof(char) * (strlen(token) + 1));
+		if (NULL == rtn[*n]) {
+			fprintf(stderr, "Not enough memory\n");
+			return NULL;
+		}
+
+		strcpy(rtn[*n], token);
+		*n = *n + 1;
+
+		token = strtok(NULL, delimiter);
+	}
+
+	pfree(tmp);
+	return rtn;
+}
+
+char *
+rtpg_removespaces(char *str) {
+	char *rtn;
+	char *tmp;
+
+	rtn = rtpg_strreplace(str, " ", "", NULL);
+
+	tmp = rtpg_strreplace(rtn, "\n", "", NULL);
+	pfree(rtn);
+	rtn = rtpg_strreplace(tmp, "\t", "", NULL);
+	pfree(tmp);
+	tmp = rtpg_strreplace(rtn, "\f", "", NULL);
+	pfree(rtn);
+	rtn = rtpg_strreplace(tmp, "\r", "", NULL);
+	pfree(tmp);
+
+	return rtn;
+}
+
+char*
+rtpg_trim(const char *input) {
+	char *rtn;
+	char *ptr;
+	uint32_t offset = 0;
+	int inputlen = 0;
+
+	if (!input)
+		return NULL;
+	else if (!*input)
+		return (char *) input;
+
+	/* trim left */
+	while (isspace(*input) && *input != '\0')
+		input++;
+
+	/* trim right */
+	inputlen = strlen(input);
+	if (inputlen) {
+		ptr = ((char *) input) + inputlen;
+		while (isspace(*--ptr))
+			offset++;
+	}
+
+	rtn = palloc(sizeof(char) * (inputlen - offset + 1));
+	if (rtn == NULL) {
+		fprintf(stderr, "Not enough memory\n");
+		return NULL;
+	}
+	strncpy(rtn, input, inputlen - offset);
+	rtn[inputlen - offset] = '\0';
+
+	return rtn;
+}
+
+/*
+ * reverse string search function from
+ * http://stackoverflow.com/a/1634398
+ */
+char *
+rtpg_strrstr(const char *s1, const char *s2) {
+	int s1len = strlen(s1);
+	int s2len = strlen(s2);
+	char *s;
+
+	if (s2len > s1len)
+		return NULL;
+
+	s = (char *) (s1 + s1len - s2len);
+	for (; s >= s1; --s)
+		if (strncmp(s, s2, s2len) == 0)
+			return s;
+
+	return NULL;
+}
+
+char*
+rtpg_getSR(int srid) {
+	int i = 0;
+	int len = 0;
+	char *sql = NULL;
+	int spi_result;
+	TupleDesc tupdesc;
+	SPITupleTable *tuptable = NULL;
+	HeapTuple tuple;
+	char *tmp = NULL;
+	char *srs = NULL;
+
+/*
+SELECT
+	CASE
+		WHEN (upper(auth_name) = 'EPSG' OR upper(auth_name) = 'EPSGA') AND length(COALESCE(auth_srid::text, '')) > 0
+			THEN upper(auth_name) || ':' || auth_srid
+		WHEN length(COALESCE(auth_name, '') || COALESCE(auth_srid::text, '')) > 0
+			THEN COALESCE(auth_name, '') || COALESCE(auth_srid::text, '')
+		ELSE ''
+	END,
+	proj4text,
+	srtext
+FROM spatial_ref_sys
+WHERE srid = X
+LIMIT 1
+*/
+
+	len = sizeof(char) * (strlen("SELECT CASE WHEN (upper(auth_name) = 'EPSG' OR upper(auth_name) = 'EPSGA') AND length(COALESCE(auth_srid::text, '')) > 0 THEN upper(auth_name) || ':' || auth_srid WHEN length(COALESCE(auth_name, '') || COALESCE(auth_srid::text, '')) > 0 THEN COALESCE(auth_name, '') || COALESCE(auth_srid::text, '') ELSE '' END, proj4text, srtext FROM spatial_ref_sys WHERE srid =  LIMIT 1") + MAX_INT_CHARLEN + 1);
+	sql = (char *) palloc(len);
+	if (NULL == sql) {
+		elog(ERROR, "rtpg_getSR: Could not allocate memory for sql\n");
+		return NULL;
+	}
+
+	spi_result = SPI_connect();
+	if (spi_result != SPI_OK_CONNECT) {
+		pfree(sql);
+		elog(ERROR, "rtpg_getSR: Could not connect to database using SPI\n");
+		return NULL;
+	}
+
+	/* execute query */
+	snprintf(sql, len, "SELECT CASE WHEN (upper(auth_name) = 'EPSG' OR upper(auth_name) = 'EPSGA') AND length(COALESCE(auth_srid::text, '')) > 0 THEN upper(auth_name) || ':' || auth_srid WHEN length(COALESCE(auth_name, '') || COALESCE(auth_srid::text, '')) > 0 THEN COALESCE(auth_name, '') || COALESCE(auth_srid::text, '') ELSE '' END, proj4text, srtext FROM spatial_ref_sys WHERE srid = %d LIMIT 1", srid);
+	POSTGIS_RT_DEBUGF(4, "SRS query: %s", sql);
+	spi_result = SPI_execute(sql, TRUE, 0);
+	SPI_pfree(sql);
+	if (spi_result != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
+		if (SPI_tuptable) SPI_freetuptable(tuptable);
+		SPI_finish();
+		elog(ERROR, "rtpg_getSR: Cannot find SRID (%d) in spatial_ref_sys", srid);
+		return NULL;
+	}
+
+	tupdesc = SPI_tuptable->tupdesc;
+	tuptable = SPI_tuptable;
+	tuple = tuptable->vals[0];
+
+	/* which column to use? */
+	for (i = 1; i < 4; i++) {
+		tmp = SPI_getvalue(tuple, tupdesc, i);
+
+		/* value AND GDAL supports this SR */
+		if (
+			SPI_result != SPI_ERROR_NOATTRIBUTE &&
+			SPI_result != SPI_ERROR_NOOUTFUNC &&
+			tmp != NULL &&
+			strlen(tmp) &&
+			rt_util_gdal_supported_sr(tmp)
+		) {
+			POSTGIS_RT_DEBUGF(4, "Value for column %d is %s", i, tmp);
+
+			len = strlen(tmp) + 1;
+			srs = SPI_palloc(sizeof(char) * len);
+			if (NULL == srs) {
+				pfree(tmp);
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_finish();
+				elog(ERROR, "rtpg_getSR: Could not allocate memory for spatial reference text\n");
+				return NULL;
+			}
+			strncpy(srs, tmp, len);
+			pfree(tmp);
+
+			break;
+		}
+
+		if (tmp != NULL)
+			pfree(tmp);
+		continue;
+	}
+
+	if (SPI_tuptable) SPI_freetuptable(tuptable);
+	SPI_finish();
+
+	/* unable to get SR info */
+	if (srs == NULL) {
+		if (SPI_tuptable) SPI_freetuptable(tuptable);
+		SPI_finish();
+		elog(ERROR, "rtpg_getSR: Could not find a viable spatial reference for SRID (%d)", srid);
+		return NULL;
+	}
+
+	return srs;
+}
diff --git a/raster/rt_pg/rtpg_internal.h b/raster/rt_pg/rtpg_internal.h
new file mode 100644
index 0000000..44103e5
--- /dev/null
+++ b/raster/rt_pg/rtpg_internal.h
@@ -0,0 +1,69 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public 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 RTPG_INTERNAL_H_INCLUDED
+#define RTPG_INTERNAL_H_INCLUDED
+
+#include "rtpostgis.h"
+
+/***************************************************************
+ * Internal functions must be prefixed with rtpg_.  This is
+ * keeping inline with the use of pgis_ for ./postgis C utility
+ * functions.
+ ****************************************************************/
+
+char
+*rtpg_strreplace(
+	const char *str,
+	const char *oldstr, const char *newstr,
+	int *count
+);
+
+char *
+rtpg_strtoupper(char *str);
+
+char *
+rtpg_chartrim(const char* input, char *remove);
+
+char **
+rtpg_strsplit(const char *str, const char *delimiter, int *n);
+
+char *
+rtpg_removespaces(char *str);
+
+char *
+rtpg_trim(const char* input);
+
+char *
+rtpg_strrstr(const char *s1, const char *s2);
+
+char *
+rtpg_getSR(int srid);
+
+#endif /* RTPG_INTERNAL_H_INCLUDED */
diff --git a/raster/rt_pg/rtpg_mapalgebra.c b/raster/rt_pg/rtpg_mapalgebra.c
new file mode 100644
index 0000000..9dd039f
--- /dev/null
+++ b/raster/rt_pg/rtpg_mapalgebra.c
@@ -0,0 +1,7210 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ * Copyright (C) 2013 Nathaniel Hunter Clay <clay.nathaniel 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.
+ *
+ */
+
+#include <assert.h>
+
+#include <postgres.h> /* for palloc */
+#include <fmgr.h>
+#include <funcapi.h>
+#include <executor/spi.h>
+#include <utils/lsyscache.h> /* for get_typlenbyvalalign */
+#include <utils/array.h> /* for ArrayType */
+#include <utils/builtins.h>
+#include <catalog/pg_type.h> /* for INT2OID, INT4OID, FLOAT4OID, FLOAT8OID and TEXTOID */
+#include <executor/executor.h> /* for GetAttributeByName */
+
+#include "../../postgis_config.h"
+#include "lwgeom_pg.h"
+
+#include "rtpostgis.h"
+#include "rtpg_internal.h"
+
+/* n-raster MapAlgebra */
+Datum RASTER_nMapAlgebra(PG_FUNCTION_ARGS);
+Datum RASTER_nMapAlgebraExpr(PG_FUNCTION_ARGS);
+
+/* raster union aggregate */
+Datum RASTER_union_transfn(PG_FUNCTION_ARGS);
+Datum RASTER_union_finalfn(PG_FUNCTION_ARGS);
+
+/* raster clip */
+Datum RASTER_clip(PG_FUNCTION_ARGS);
+
+/* reclassify specified bands of a raster */
+Datum RASTER_reclass(PG_FUNCTION_ARGS);
+
+/* apply colormap to specified band of a raster */
+Datum RASTER_colorMap(PG_FUNCTION_ARGS);
+
+/* one-raster MapAlgebra */
+Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS);
+Datum RASTER_mapAlgebraFct(PG_FUNCTION_ARGS);
+
+/* one-raster neighborhood MapAlgebra */
+Datum RASTER_mapAlgebraFctNgb(PG_FUNCTION_ARGS);
+
+/* two-raster MapAlgebra */
+Datum RASTER_mapAlgebra2(PG_FUNCTION_ARGS);
+
+/* ---------------------------------------------------------------- */
+/*  n-raster MapAlgebra                                             */
+/* ---------------------------------------------------------------- */
+
+typedef struct {
+	Oid ufc_noid;
+	Oid ufc_rettype;
+	FmgrInfo ufl_info;
+	FunctionCallInfoData ufc_info;
+} rtpg_nmapalgebra_callback_arg;
+
+typedef struct rtpg_nmapalgebra_arg_t *rtpg_nmapalgebra_arg;
+struct rtpg_nmapalgebra_arg_t {
+	int numraster;
+	rt_pgraster **pgraster;
+	rt_raster *raster;
+	uint8_t *isempty; /* flag indicating if raster is empty */
+	uint8_t *ownsdata; /* is the raster self owned or just a pointer to another raster */
+	int *nband; /* source raster's band index, 0-based */
+	uint8_t *hasband; /* does source raster have band at index nband? */
+
+	rt_pixtype pixtype; /* output raster band's pixel type */
+	int hasnodata; /* NODATA flag */
+	double nodataval; /* NODATA value */
+
+	int distance[2]; /* distance in X and Y axis */
+
+	rt_extenttype extenttype; /* ouput raster's extent type */
+	rt_pgraster *pgcextent; /* custom extent of type rt_pgraster */
+	rt_raster cextent; /* custom extent of type rt_raster */
+        rt_mask mask; /* mask for the nmapalgebra operation */
+
+	rtpg_nmapalgebra_callback_arg	callback;
+};
+
+static rtpg_nmapalgebra_arg rtpg_nmapalgebra_arg_init() {
+	rtpg_nmapalgebra_arg arg = NULL;
+
+	arg = palloc(sizeof(struct rtpg_nmapalgebra_arg_t));
+	if (arg == NULL) {
+		elog(ERROR, "rtpg_nmapalgebra_arg_init: Could not allocate memory for arguments");
+		return NULL;
+	}
+
+	arg->numraster = 0;
+	arg->pgraster = NULL;
+	arg->raster = NULL;
+	arg->isempty = NULL;
+	arg->ownsdata = NULL;
+	arg->nband = NULL;
+	arg->hasband = NULL;
+
+	arg->pixtype = PT_END;
+	arg->hasnodata = 1;
+	arg->nodataval = 0;
+
+	arg->distance[0] = 0;
+	arg->distance[1] = 0;
+
+	arg->extenttype = ET_INTERSECTION;
+	arg->pgcextent = NULL;
+	arg->cextent = NULL;
+	arg->mask = NULL;
+
+	arg->callback.ufc_noid = InvalidOid;
+	arg->callback.ufc_rettype = InvalidOid;
+
+	return arg;
+}
+
+static void rtpg_nmapalgebra_arg_destroy(rtpg_nmapalgebra_arg arg) {
+	int i = 0;
+
+	if (arg->raster != NULL) {
+		for (i = 0; i < arg->numraster; i++) {
+			if (arg->raster[i] == NULL || !arg->ownsdata[i])
+				continue;
+
+			rt_raster_destroy(arg->raster[i]);
+		}
+
+		pfree(arg->raster);
+		pfree(arg->pgraster);
+		pfree(arg->isempty);
+		pfree(arg->ownsdata);
+		pfree(arg->nband);
+	}
+
+	if (arg->cextent != NULL)
+		rt_raster_destroy(arg->cextent);
+	if( arg->mask != NULL )
+	  pfree(arg->mask);
+
+	pfree(arg);
+}
+
+static int rtpg_nmapalgebra_rastbandarg_process(rtpg_nmapalgebra_arg arg, ArrayType *array, int *allnull, int *allempty, int *noband) {
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int n = 0;
+
+	HeapTupleHeader tup;
+	bool isnull;
+	Datum tupv;
+
+	int i;
+	int j;
+	int nband;
+
+	if (arg == NULL || array == NULL) {
+		elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: NULL values not permitted for parameters");
+		return 0;
+	}
+
+	etype = ARR_ELEMTYPE(array);
+	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+	deconstruct_array(
+		array,
+		etype,
+		typlen, typbyval, typalign,
+		&e, &nulls, &n
+	);
+
+	if (!n) {
+		elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Invalid argument for rastbandarg");
+		return 0;
+	}
+
+	/* prep arg */
+	arg->numraster = n;
+	arg->pgraster = palloc(sizeof(rt_pgraster *) * arg->numraster);
+	arg->raster = palloc(sizeof(rt_raster) * arg->numraster);
+	arg->isempty = palloc(sizeof(uint8_t) * arg->numraster);
+	arg->ownsdata = palloc(sizeof(uint8_t) * arg->numraster);
+	arg->nband = palloc(sizeof(int) * arg->numraster);
+	arg->hasband = palloc(sizeof(uint8_t) * arg->numraster);
+	arg->mask = palloc(sizeof(struct rt_mask_t));
+	if (
+		arg->pgraster == NULL ||
+		arg->raster == NULL ||
+		arg->isempty == NULL ||
+		arg->ownsdata == NULL ||
+		arg->nband == NULL ||
+		arg->hasband == NULL ||
+		arg->mask == NULL
+	) {
+		elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Could not allocate memory for processing rastbandarg");
+		return 0;
+	}
+
+	*allnull = 0;
+	*allempty = 0;
+	*noband = 0;
+
+	/* process each element */
+	for (i = 0; i < n; i++) {
+		if (nulls[i]) {
+			arg->numraster--;
+			continue;
+		}
+
+		POSTGIS_RT_DEBUGF(4, "Processing rastbandarg at index %d", i);
+
+		arg->raster[i] = NULL;
+		arg->isempty[i] = 0;
+		arg->ownsdata[i] = 1;
+		arg->nband[i] = 0;
+		arg->hasband[i] = 0;
+
+		/* each element is a tuple */
+		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
+		if (NULL == tup) {
+			elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Invalid argument for rastbandarg at index %d", i);
+			return 0;
+		}
+
+		/* first element, raster */
+		POSTGIS_RT_DEBUG(4, "Processing first element (raster)");
+		tupv = GetAttributeByName(tup, "rast", &isnull);
+		if (isnull) {
+			elog(NOTICE, "First argument (nband) of rastbandarg at index %d is NULL. Assuming NULL raster", i);
+			arg->isempty[i] = 1;
+			arg->ownsdata[i] = 0;
+
+			(*allnull)++;
+			(*allempty)++;
+			(*noband)++;
+
+			continue;
+		}
+
+		arg->pgraster[i] = (rt_pgraster *) PG_DETOAST_DATUM(tupv);
+
+		/* see if this is a copy of an existing pgraster */
+		for (j = 0; j < i; j++) {
+			if (!arg->isempty[j] && (arg->pgraster[i] == arg->pgraster[j])) {
+				POSTGIS_RT_DEBUG(4, "raster matching existing same raster found");
+				arg->raster[i] = arg->raster[j];
+				arg->ownsdata[i] = 0;
+				break;
+			}
+		}
+
+		if (arg->ownsdata[i]) {
+			POSTGIS_RT_DEBUG(4, "deserializing raster");
+			arg->raster[i] = rt_raster_deserialize(arg->pgraster[i], FALSE);
+			if (arg->raster[i] == NULL) {
+				elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Could not deserialize raster at index %d", i);
+				return 0;
+			}
+		}
+
+		/* is raster empty? */
+		arg->isempty[i] = rt_raster_is_empty(arg->raster[i]);
+		if (arg->isempty[i]) {
+			(*allempty)++;
+			(*noband)++;
+
+			continue;
+		}
+
+		/* second element, nband */
+		POSTGIS_RT_DEBUG(4, "Processing second element (nband)");
+		tupv = GetAttributeByName(tup, "nband", &isnull);
+		if (isnull) {
+			nband = 1;
+			elog(NOTICE, "First argument (nband) of rastbandarg at index %d is NULL. Assuming nband = %d", i, nband);
+		}
+		else
+			nband = DatumGetInt32(tupv);
+
+		if (nband < 1) {
+			elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Band number provided for rastbandarg at index %d must be greater than zero (1-based)", i);
+			return 0;
+		}
+
+		arg->nband[i] = nband - 1;
+		arg->hasband[i] = rt_raster_has_band(arg->raster[i], arg->nband[i]);
+		if (!arg->hasband[i]) {
+			(*noband)++;
+			POSTGIS_RT_DEBUGF(4, "Band at index %d not found in raster", nband);
+		}
+	}
+
+	if (arg->numraster < n) {
+		arg->pgraster = repalloc(arg->pgraster, sizeof(rt_pgraster *) * arg->numraster);
+		arg->raster = repalloc(arg->raster, sizeof(rt_raster) * arg->numraster);
+		arg->isempty = repalloc(arg->isempty, sizeof(uint8_t) * arg->numraster);
+		arg->ownsdata = repalloc(arg->ownsdata, sizeof(uint8_t) * arg->numraster);
+		arg->nband = repalloc(arg->nband, sizeof(int) * arg->numraster);
+		arg->hasband = repalloc(arg->hasband, sizeof(uint8_t) * arg->numraster);
+		if (
+			arg->pgraster == NULL ||
+			arg->raster == NULL ||
+			arg->isempty == NULL ||
+			arg->ownsdata == NULL ||
+			arg->nband == NULL ||
+			arg->hasband == NULL
+		) {
+			elog(ERROR, "rtpg_nmapalgebra_rastbandarg_process: Could not reallocate memory for processed rastbandarg");
+			return 0;
+		}
+	}
+
+	POSTGIS_RT_DEBUGF(4, "arg->numraster = %d", arg->numraster);
+
+	return 1;
+}
+
+/*
+	Callback for RASTER_nMapAlgebra
+*/
+static int rtpg_nmapalgebra_callback(
+	rt_iterator_arg arg, void *userarg,
+	double *value, int *nodata
+) {
+	rtpg_nmapalgebra_callback_arg *callback = (rtpg_nmapalgebra_callback_arg *) userarg;
+
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+
+	ArrayType *mdValues = NULL;
+	Datum *_values = NULL;
+	bool *_nodata = NULL;
+
+	ArrayType *mdPos = NULL;
+	Datum *_pos = NULL;
+	bool *_null = NULL;
+
+	int i = 0;
+	int x = 0;
+	int y = 0;
+	int z = 0;
+	int dim[3] = {0};
+	int lbound[3] = {1, 1, 1};
+	Datum datum = (Datum) NULL;
+
+	if (arg == NULL)
+		return 0;
+
+	*value = 0;
+	*nodata = 0;
+
+	dim[0] = arg->rasters;
+	dim[1] = arg->rows;
+	dim[2] = arg->columns;
+
+	_values = palloc(sizeof(Datum) * arg->rasters * arg->rows * arg->columns);
+	_nodata = palloc(sizeof(bool) * arg->rasters * arg->rows * arg->columns);
+	if (_values == NULL || _nodata == NULL) {
+		elog(ERROR, "rtpg_nmapalgebra_callback: Could not allocate memory for values array");
+		return 0;
+	}
+
+	/* build mdValues */
+	i = 0;
+	/* raster */
+	for (z = 0; z < arg->rasters; z++) {
+		/* Y axis */
+		for (y = 0; y < arg->rows; y++) {
+			/* X axis */
+			for (x = 0; x < arg->columns; x++) {
+				POSTGIS_RT_DEBUGF(4, "(z, y ,x) = (%d, %d, %d)", z, y, x);
+				POSTGIS_RT_DEBUGF(4, "(value, nodata) = (%f, %d)", arg->values[z][y][x], arg->nodata[z][y][x]);
+
+				_nodata[i] = (bool) arg->nodata[z][y][x];
+				if (!_nodata[i])
+					_values[i] = Float8GetDatum(arg->values[z][y][x]);
+				else
+					_values[i] = (Datum) NULL;
+
+				i++;
+			}
+		}
+	}
+
+	/* info about the type of item in the multi-dimensional array (float8). */
+	get_typlenbyvalalign(FLOAT8OID, &typlen, &typbyval, &typalign);
+
+	/* construct mdValues */
+	mdValues = construct_md_array(
+		_values, _nodata,
+		3, dim, lbound,
+		FLOAT8OID,
+		typlen, typbyval, typalign
+	);
+	pfree(_nodata);
+	pfree(_values);
+
+	_pos = palloc(sizeof(Datum) * (arg->rasters + 1) * 2);
+	_null = palloc(sizeof(bool) * (arg->rasters + 1) * 2);
+	if (_pos == NULL || _null == NULL) {
+		pfree(mdValues);
+		elog(ERROR, "rtpg_nmapalgebra_callback: Could not allocate memory for position array");
+		return 0;
+	}
+	memset(_null, 0, sizeof(bool) * (arg->rasters + 1) * 2);
+
+	/* build mdPos */
+	i = 0;
+	_pos[i] = arg->dst_pixel[0] + 1;
+	i++;
+	_pos[i] = arg->dst_pixel[1] + 1;
+	i++;
+
+	for (z = 0; z < arg->rasters; z++) {
+		_pos[i] = arg->src_pixel[z][0] + 1;
+		i++;
+
+		_pos[i] = arg->src_pixel[z][1] + 1;
+		i++;
+	}
+
+	/* info about the type of item in the multi-dimensional array (int4). */
+	get_typlenbyvalalign(INT4OID, &typlen, &typbyval, &typalign);
+
+	/* reuse dim and lbound, just tweak to what we need */
+	dim[0] = arg->rasters + 1;
+	dim[1] = 2;
+	lbound[0] = 0;
+
+	/* construct mdPos */
+	mdPos = construct_md_array(
+		_pos, _null,
+		2, dim, lbound,
+		INT4OID,
+		typlen, typbyval, typalign
+	);
+	pfree(_pos);
+	pfree(_null);
+
+	callback->ufc_info.arg[0] = PointerGetDatum(mdValues);
+	callback->ufc_info.arg[1] = PointerGetDatum(mdPos);
+
+	/* call user callback function */
+	datum = FunctionCallInvoke(&(callback->ufc_info));
+	pfree(mdValues);
+	pfree(mdPos);
+
+	/* result is not null*/
+	if (!callback->ufc_info.isnull) {
+		switch (callback->ufc_rettype) {
+			case FLOAT8OID:
+				*value = DatumGetFloat8(datum);
+				break;
+			case FLOAT4OID:
+				*value = (double) DatumGetFloat4(datum);
+				break;
+			case INT4OID:
+				*value = (double) DatumGetInt32(datum);
+				break;
+			case INT2OID:
+				*value = (double) DatumGetInt16(datum);
+				break;
+		}
+	}
+	else
+		*nodata = 1;
+
+	return 1;
+}
+
+/*
+ ST_MapAlgebra for n rasters
+*/
+PG_FUNCTION_INFO_V1(RASTER_nMapAlgebra);
+Datum RASTER_nMapAlgebra(PG_FUNCTION_ARGS)
+{
+	rtpg_nmapalgebra_arg arg = NULL;
+	rt_iterator itrset;
+	ArrayType *maskArray;
+	Oid etype;
+	Datum *maskElements;
+	bool *maskNulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int ndims = 0;
+	int num;
+	int *maskDims;
+	int x,y;
+	
+
+	int i = 0;
+	int noerr = 0;
+	int allnull = 0;
+	int allempty = 0;
+	int noband = 0;
+
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	rt_pgraster *pgraster = NULL;
+
+	POSTGIS_RT_DEBUG(3, "Starting...");
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	/* init argument struct */
+	arg = rtpg_nmapalgebra_arg_init();
+	if (arg == NULL) {
+		elog(ERROR, "RASTER_nMapAlgebra: Could not initialize argument structure");
+		PG_RETURN_NULL();
+	}
+
+	/* let helper function process rastbandarg (0) */
+	if (!rtpg_nmapalgebra_rastbandarg_process(arg, PG_GETARG_ARRAYTYPE_P(0), &allnull, &allempty, &noband)) {
+		rtpg_nmapalgebra_arg_destroy(arg);
+		elog(ERROR, "RASTER_nMapAlgebra: Could not process rastbandarg");
+		PG_RETURN_NULL();
+	}
+
+	POSTGIS_RT_DEBUGF(4, "allnull, allempty, noband = %d, %d, %d", allnull, allempty, noband);
+
+	/* all rasters are NULL, return NULL */
+	if (allnull == arg->numraster) {
+		elog(NOTICE, "All input rasters are NULL. Returning NULL");
+		rtpg_nmapalgebra_arg_destroy(arg);
+		PG_RETURN_NULL();
+	}
+
+	/* pixel type (2) */
+	if (!PG_ARGISNULL(2)) {
+		char *pixtypename = text_to_cstring(PG_GETARG_TEXT_P(2));
+
+		/* Get the pixel type index */
+		arg->pixtype = rt_pixtype_index_from_name(pixtypename);
+		if (arg->pixtype == PT_END) {
+			rtpg_nmapalgebra_arg_destroy(arg);
+			elog(ERROR, "RASTER_nMapAlgebra: Invalid pixel type: %s", pixtypename);
+			PG_RETURN_NULL();
+		}
+	}
+
+	/* distancex (3) */
+	if (!PG_ARGISNULL(3)){
+		arg->distance[0] = PG_GETARG_INT32(3);
+	}else{
+	        arg->distance[0] = 0;
+	}
+        /* distancey (4) */
+	if (!PG_ARGISNULL(4)){
+		arg->distance[1] = PG_GETARG_INT32(4);
+	}else{
+	        arg->distance[1] = 0;
+	}
+	if (arg->distance[0] < 0 || arg->distance[1] < 0) {
+		rtpg_nmapalgebra_arg_destroy(arg);
+		elog(ERROR, "RASTER_nMapAlgebra: Distance for X and Y axis must be greater than or equal to zero");
+		PG_RETURN_NULL();
+	}
+
+	/* extent type (5) */
+	if (!PG_ARGISNULL(5)) {
+		char *extenttypename = rtpg_strtoupper(rtpg_trim(text_to_cstring(PG_GETARG_TEXT_P(5))));
+		arg->extenttype = rt_util_extent_type(extenttypename);
+	}
+	POSTGIS_RT_DEBUGF(4, "extenttype: %d", arg->extenttype);
+
+	/* custom extent (6) */
+	if (arg->extenttype == ET_CUSTOM) {
+		if (PG_ARGISNULL(6)) {
+			elog(NOTICE, "Custom extent is NULL. Returning NULL");
+			rtpg_nmapalgebra_arg_destroy(arg);
+			PG_RETURN_NULL();
+		}
+
+		arg->pgcextent = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(6));
+
+		/* only need the raster header */
+		arg->cextent = rt_raster_deserialize(arg->pgcextent, TRUE);
+		if (arg->cextent == NULL) {
+			rtpg_nmapalgebra_arg_destroy(arg);
+			elog(ERROR, "RASTER_nMapAlgebra: Could not deserialize custom extent");
+			PG_RETURN_NULL();
+		}
+		else if (rt_raster_is_empty(arg->cextent)) {
+			elog(NOTICE, "Custom extent is an empty raster. Returning empty raster");
+			rtpg_nmapalgebra_arg_destroy(arg);
+
+			raster = rt_raster_new(0, 0);
+			if (raster == NULL) {
+				elog(ERROR, "RASTER_nMapAlgebra: Could not create empty raster");
+				PG_RETURN_NULL();
+			}
+
+			pgraster = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			if (!pgraster) PG_RETURN_NULL();
+
+			SET_VARSIZE(pgraster, pgraster->size);
+			PG_RETURN_POINTER(pgraster);
+		}
+	}
+
+	noerr = 1;
+	
+	/* mask (7) */
+
+	if( PG_ARGISNULL(7) ){
+	  pfree(arg->mask);
+	  arg->mask = NULL;
+	}else{
+	maskArray = PG_GETARG_ARRAYTYPE_P(7);
+	etype = ARR_ELEMTYPE(maskArray);
+	get_typlenbyvalalign(etype,&typlen,&typbyval,&typalign);
+	
+	switch(etype){
+	      case FLOAT4OID:
+	      case FLOAT8OID:
+		break;
+	      default:
+		rtpg_nmapalgebra_arg_destroy(arg);
+		elog(ERROR,"RASTER_nMapAlgerbra: Mask data type must be FLOAT8 or FLOAT4.");
+		PG_RETURN_NULL();
+	}
+
+	ndims = ARR_NDIM(maskArray);
+	
+	if( ndims != 2 ){ 
+	  elog(ERROR, "RASTER_nMapAlgerbra: Mask Must be a 2D array.");
+	  rtpg_nmapalgebra_arg_destroy(arg);
+	  PG_RETURN_NULL();
+	}
+	
+	maskDims = ARR_DIMS(maskArray);
+
+
+	if ( maskDims[0] % 2 == 0 || maskDims[1] % 2 == 0 ){
+	  elog(ERROR,"RASTER_nMapAlgerbra: Mask dimenstions must be odd.");
+	  rtpg_nmapalgebra_arg_destroy(arg);
+	  PG_RETURN_NULL();
+	} 
+	
+	deconstruct_array(
+			  maskArray,
+			  etype,
+			  typlen, typbyval,typalign,
+			  &maskElements,&maskNulls,&num
+			  );
+
+	if (num < 1 || num != (maskDims[0] * maskDims[1])) {
+                if (num) {
+                        pfree(maskElements);
+                        pfree(maskNulls);
+                }
+		elog(ERROR, "RASTER_nMapAlgerbra: Could not deconstruct new values array.");
+                rtpg_nmapalgebra_arg_destroy(arg);
+		PG_RETURN_NULL();
+	}
+
+
+	/* allocate mem for mask array */
+	arg->mask->values = palloc(sizeof(double*)* maskDims[0]);
+	arg->mask->nodata =  palloc(sizeof(int*)*maskDims[0]);
+	for(i = 0; i < maskDims[0]; i++){
+	  arg->mask->values[i] = (double*) palloc(sizeof(double) * maskDims[1]);
+	  arg->mask->nodata[i] = (int*) palloc(sizeof(int) * maskDims[1]);
+	}
+	/* place values in to mask */
+	i = 0;
+	for( y = 0; y < maskDims[0]; y++ ){
+	  for( x = 0; x < maskDims[1]; x++){
+	    if(maskNulls[i]){
+	      arg->mask->values[y][x] = 0;
+	      arg->mask->nodata[y][x] = 1;
+	    }else{
+	      switch(etype){
+	      case FLOAT4OID:
+		arg->mask->values[y][x] = (double) DatumGetFloat4(maskElements[i]);
+		arg->mask->nodata[y][x] = 0;
+		break;
+	      case FLOAT8OID:
+		arg->mask->values[y][x] = (double) DatumGetFloat8(maskElements[i]);
+		arg->mask->nodata[y][x] = 0;
+	      }
+	    }
+	    i++;
+	  }
+	}
+	/*set mask dimenstions*/ 
+	arg->mask->dimx = maskDims[0];
+	arg->mask->dimy = maskDims[1];
+	if ( maskDims[0] == 1 && maskDims[1] == 1){
+	  arg->distance[0] = 0;
+	  arg->distance[1] = 0;
+	}else{
+	  arg->distance[0] = maskDims[0] % 2;
+	  arg->distance[1] = maskDims[1] % 2;
+	}
+	}/*end if else argisnull*/
+
+	/* (8) weighted boolean */
+	if (PG_ARGISNULL(8) || !PG_GETARG_BOOL(8) ){
+	  if ( arg->mask != NULL ) 
+	    arg->mask->weighted = 0;
+	}else{
+	  if(arg->mask !=NULL )
+	    arg->mask->weighted = 1;
+	}
+
+	/* all rasters are empty, return empty raster */
+	if (allempty == arg->numraster) {
+		elog(NOTICE, "All input rasters are empty. Returning empty raster");
+		noerr = 0;
+	}
+	/* all rasters don't have indicated band, return empty raster */
+	else if (noband == arg->numraster) {
+		elog(NOTICE, "All input rasters do not have bands at indicated indexes. Returning empty raster");
+		noerr = 0;
+	}
+	if (!noerr) {
+		rtpg_nmapalgebra_arg_destroy(arg);
+
+		raster = rt_raster_new(0, 0);
+		if (raster == NULL) {
+			elog(ERROR, "RASTER_nMapAlgebra: Could not create empty raster");
+			PG_RETURN_NULL();
+		}
+
+		pgraster = rt_raster_serialize(raster);
+		rt_raster_destroy(raster);
+		if (!pgraster) PG_RETURN_NULL();
+
+		SET_VARSIZE(pgraster, pgraster->size);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	/* do regprocedure last (1) */
+	if (!PG_ARGISNULL(1) || get_fn_expr_argtype(fcinfo->flinfo, 1) == REGPROCEDUREOID) {
+		POSTGIS_RT_DEBUG(4, "processing callbackfunc");
+		arg->callback.ufc_noid = PG_GETARG_OID(1);
+
+		/* get function info */
+		fmgr_info(arg->callback.ufc_noid, &(arg->callback.ufl_info));
+
+		/* function cannot return set */
+		noerr = 0;
+		if (arg->callback.ufl_info.fn_retset) {
+			noerr = 1;
+		}
+		/* function should have correct # of args */
+		else if (arg->callback.ufl_info.fn_nargs != 3) {
+			noerr = 2;
+		}
+
+		/* check that callback function return type is supported */
+		if (
+			get_func_result_type(
+				arg->callback.ufc_noid,
+				&(arg->callback.ufc_rettype),
+				NULL
+			) != TYPEFUNC_SCALAR
+		) {
+			noerr = 3;
+		}
+
+		if (!(
+			arg->callback.ufc_rettype == FLOAT8OID ||
+			arg->callback.ufc_rettype == FLOAT4OID ||
+			arg->callback.ufc_rettype == INT4OID ||
+			arg->callback.ufc_rettype == INT2OID
+		)) {
+			noerr = 4;
+		}
+
+		/*
+			TODO: consider adding checks of the userfunction parameters
+				should be able to use get_fn_expr_argtype() of fmgr.c
+		*/
+
+		if (noerr != 0) {
+			rtpg_nmapalgebra_arg_destroy(arg);
+			switch (noerr) {
+				case 4:
+					elog(ERROR, "RASTER_nMapAlgebra: Function provided must return a double precision, float, int or smallint");
+					break;
+				case 3:
+					elog(ERROR, "RASTER_nMapAlgebra: Function provided must return scalar (double precision, float, int, smallint)");
+					break;
+				case 2:
+					elog(ERROR, "RASTER_nMapAlgebra: Function provided must have three input parameters");
+					break;
+				case 1:
+					elog(ERROR, "RASTER_nMapAlgebra: Function provided must return double precision, not resultset");
+					break;
+			}
+			PG_RETURN_NULL();
+		}
+
+		if (func_volatile(arg->callback.ufc_noid) == 'v')
+			elog(NOTICE, "Function provided is VOLATILE. Unless required and for best performance, function should be IMMUTABLE or STABLE");
+
+		/* prep function call data */
+#if POSTGIS_PGSQL_VERSION > 90
+		InitFunctionCallInfoData(arg->callback.ufc_info, &(arg->callback.ufl_info), arg->callback.ufl_info.fn_nargs, InvalidOid, NULL, NULL);
+#else
+		InitFunctionCallInfoData(arg->callback.ufc_info, &(arg->callback.ufl_info), arg->callback.ufl_info.fn_nargs, NULL, NULL);
+#endif
+		memset(arg->callback.ufc_info.argnull, FALSE, sizeof(bool) * arg->callback.ufl_info.fn_nargs);
+
+		/* userargs (7) */
+		if (!PG_ARGISNULL(9))
+			arg->callback.ufc_info.arg[2] = PG_GETARG_DATUM(9);
+		else {
+      if (arg->callback.ufl_info.fn_strict) {
+				/* build and assign an empty TEXT array */
+				/* TODO: manually free the empty array? */
+				arg->callback.ufc_info.arg[2] = PointerGetDatum(
+					construct_empty_array(TEXTOID)
+				);
+				arg->callback.ufc_info.argnull[2] = FALSE;
+      }
+			else {
+				arg->callback.ufc_info.arg[2] = (Datum) NULL;
+				arg->callback.ufc_info.argnull[2] = TRUE;
+			}
+		}
+	}
+	else {
+		rtpg_nmapalgebra_arg_destroy(arg);
+		elog(ERROR, "RASTER_nMapAlgebra: callbackfunc must be provided");
+		PG_RETURN_NULL();
+	}
+
+	/* determine nodataval and possibly pixtype */
+	/* band to check */
+	switch (arg->extenttype) {
+		case ET_LAST:
+			i = arg->numraster - 1;
+			break;
+		case ET_SECOND:
+			if (arg->numraster > 1) {
+				i = 1;
+				break;
+			}
+		default:
+			i = 0;
+			break;
+	}
+	/* find first viable band */
+	if (!arg->hasband[i]) {
+		for (i = 0; i < arg->numraster; i++) {
+			if (arg->hasband[i])
+				break;
+		}
+		if (i >= arg->numraster)
+			i = arg->numraster - 1;
+	}
+	band = rt_raster_get_band(arg->raster[i], arg->nband[i]);
+
+	/* set pixel type if PT_END */
+	if (arg->pixtype == PT_END)
+		arg->pixtype = rt_band_get_pixtype(band);
+
+	/* set hasnodata and nodataval */
+	arg->hasnodata = 1;
+	if (rt_band_get_hasnodata_flag(band))
+		rt_band_get_nodata(band, &(arg->nodataval));
+	else
+		arg->nodataval = rt_band_get_min_value(band);
+
+	POSTGIS_RT_DEBUGF(4, "pixtype, hasnodata, nodataval: %s, %d, %f", rt_pixtype_name(arg->pixtype), arg->hasnodata, arg->nodataval);
+
+	/* init itrset */
+	itrset = palloc(sizeof(struct rt_iterator_t) * arg->numraster);
+	if (itrset == NULL) {
+		rtpg_nmapalgebra_arg_destroy(arg);
+		elog(ERROR, "RASTER_nMapAlgebra: Could not allocate memory for iterator arguments");
+		PG_RETURN_NULL();
+	}
+
+	/* set itrset */
+	for (i = 0; i < arg->numraster; i++) {
+		itrset[i].raster = arg->raster[i];
+		itrset[i].nband = arg->nband[i];
+		itrset[i].nbnodata = 1;
+	}
+
+	/* pass everything to iterator */
+	noerr = rt_raster_iterator(
+		itrset, arg->numraster,
+		arg->extenttype, arg->cextent,
+		arg->pixtype,
+		arg->hasnodata, arg->nodataval,
+		arg->distance[0], arg->distance[1],
+		arg->mask,
+		&(arg->callback),
+		rtpg_nmapalgebra_callback,
+		&raster
+	);
+
+	/* cleanup */
+	pfree(itrset);
+	rtpg_nmapalgebra_arg_destroy(arg);
+
+	if (noerr != ES_NONE) {
+		elog(ERROR, "RASTER_nMapAlgebra: Could not run raster iterator function");
+		PG_RETURN_NULL();
+	}
+	else if (raster == NULL)
+		PG_RETURN_NULL();
+
+	pgraster = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+
+	POSTGIS_RT_DEBUG(3, "Finished");
+
+	if (!pgraster)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgraster, pgraster->size);
+	PG_RETURN_POINTER(pgraster);
+}
+
+/* ---------------------------------------------------------------- */
+/* expression ST_MapAlgebra for n rasters                           */
+/* ---------------------------------------------------------------- */
+
+typedef struct {
+	int exprcount;
+
+	struct {
+		SPIPlanPtr spi_plan;
+		uint32_t spi_argcount;
+		uint8_t *spi_argpos;
+
+		int hasval;
+		double val;
+	} expr[3];
+
+	struct {
+		int hasval;
+		double val;
+	} nodatanodata;
+
+	struct {
+		int count;
+		char **val;
+	} kw;
+
+} rtpg_nmapalgebraexpr_callback_arg;
+
+typedef struct rtpg_nmapalgebraexpr_arg_t *rtpg_nmapalgebraexpr_arg;
+struct rtpg_nmapalgebraexpr_arg_t {
+	rtpg_nmapalgebra_arg bandarg;
+
+	rtpg_nmapalgebraexpr_callback_arg	callback;
+};
+
+static rtpg_nmapalgebraexpr_arg rtpg_nmapalgebraexpr_arg_init(int cnt, char **kw) {
+	rtpg_nmapalgebraexpr_arg arg = NULL;
+	int i = 0;
+
+	arg = palloc(sizeof(struct rtpg_nmapalgebraexpr_arg_t));
+	if (arg == NULL) {
+		elog(ERROR, "rtpg_nmapalgebraexpr_arg_init: Could not allocate memory for arguments");
+		return NULL;
+	}
+
+	arg->bandarg = rtpg_nmapalgebra_arg_init();
+	if (arg->bandarg == NULL) {
+		elog(ERROR, "rtpg_nmapalgebraexpr_arg_init: Could not allocate memory for arg->bandarg");
+		return NULL;
+	}
+
+	arg->callback.kw.count = cnt;
+	arg->callback.kw.val = kw;
+
+	arg->callback.exprcount = 3;
+	for (i = 0; i < arg->callback.exprcount; i++) {
+		arg->callback.expr[i].spi_plan = NULL;
+		arg->callback.expr[i].spi_argcount = 0;
+		arg->callback.expr[i].spi_argpos = palloc(cnt * sizeof(uint8_t));
+		if (arg->callback.expr[i].spi_argpos == NULL) {
+			elog(ERROR, "rtpg_nmapalgebraexpr_arg_init: Could not allocate memory for spi_argpos");
+			return NULL;
+		}
+		memset(arg->callback.expr[i].spi_argpos, 0, sizeof(uint8_t) * cnt);
+		arg->callback.expr[i].hasval = 0;
+		arg->callback.expr[i].val = 0;
+	}
+
+	arg->callback.nodatanodata.hasval = 0;
+	arg->callback.nodatanodata.val = 0;
+
+	return arg;
+}
+
+static void rtpg_nmapalgebraexpr_arg_destroy(rtpg_nmapalgebraexpr_arg arg) {
+	int i = 0;
+
+	rtpg_nmapalgebra_arg_destroy(arg->bandarg);
+
+	for (i = 0; i < arg->callback.exprcount; i++) {
+		if (arg->callback.expr[i].spi_plan)
+			SPI_freeplan(arg->callback.expr[i].spi_plan);
+		if (arg->callback.kw.count)
+			pfree(arg->callback.expr[i].spi_argpos);
+	}
+
+	pfree(arg);
+}
+
+static int rtpg_nmapalgebraexpr_callback(
+	rt_iterator_arg arg, void *userarg,
+	double *value, int *nodata
+) {
+	rtpg_nmapalgebraexpr_callback_arg *callback = (rtpg_nmapalgebraexpr_callback_arg *) userarg;
+	SPIPlanPtr plan = NULL;
+	int i = 0;
+	int id = -1;
+
+	if (arg == NULL)
+		return 0;
+
+	*value = 0;
+	*nodata = 0;
+
+	/* 2 raster */
+	if (arg->rasters > 1) {
+		/* nodata1 = 1 AND nodata2 = 1, nodatanodataval */
+		if (arg->nodata[0][0][0] && arg->nodata[1][0][0]) {
+			if (callback->nodatanodata.hasval)
+				*value = callback->nodatanodata.val;
+			else
+				*nodata = 1;
+		}
+		/* nodata1 = 1 AND nodata2 != 1, nodata1expr */
+		else if (arg->nodata[0][0][0] && !arg->nodata[1][0][0]) {
+			id = 1;
+			if (callback->expr[id].hasval)
+				*value = callback->expr[id].val;
+			else if (callback->expr[id].spi_plan)
+				plan = callback->expr[id].spi_plan;
+			else
+				*nodata = 1;
+		}
+		/* nodata1 != 1 AND nodata2 = 1, nodata2expr */
+		else if (!arg->nodata[0][0][0] && arg->nodata[1][0][0]) {
+			id = 2;
+			if (callback->expr[id].hasval)
+				*value = callback->expr[id].val;
+			else if (callback->expr[id].spi_plan)
+				plan = callback->expr[id].spi_plan;
+			else
+				*nodata = 1;
+		}
+		/* expression */
+		else {
+			id = 0;
+			if (callback->expr[id].hasval)
+				*value = callback->expr[id].val;
+			else if (callback->expr[id].spi_plan)
+				plan = callback->expr[id].spi_plan;
+			else {
+				if (callback->nodatanodata.hasval)
+					*value = callback->nodatanodata.val;
+				else
+					*nodata = 1;
+			}
+		}
+	}
+	/* 1 raster */
+	else {
+		/* nodata = 1, nodata1expr */
+		if (arg->nodata[0][0][0]) {
+			id = 1;
+			if (callback->expr[id].hasval)
+				*value = callback->expr[id].val;
+			else if (callback->expr[id].spi_plan)
+				plan = callback->expr[id].spi_plan;
+			else
+				*nodata = 1;
+		}
+		/* expression */
+		else {
+			id = 0;
+			if (callback->expr[id].hasval)
+				*value = callback->expr[id].val;
+			else if (callback->expr[id].spi_plan)
+				plan = callback->expr[id].spi_plan;
+			else {
+				/* see if nodata1expr is available */
+				id = 1;
+				if (callback->expr[id].hasval)
+					*value = callback->expr[id].val;
+				else if (callback->expr[id].spi_plan)
+					plan = callback->expr[id].spi_plan;
+				else
+					*nodata = 1;
+			}
+		}
+	}
+
+	/* run prepared plan */
+	if (plan != NULL) {
+		Datum values[12];
+		bool nulls[12];
+		int err = 0;
+
+		TupleDesc tupdesc;
+		SPITupleTable *tuptable = NULL;
+		HeapTuple tuple;
+		Datum datum;
+		bool isnull = FALSE;
+
+		POSTGIS_RT_DEBUGF(4, "Running plan %d", id);
+
+		/* init values and nulls */
+		memset(values, (Datum) NULL, sizeof(Datum) * callback->kw.count);
+		memset(nulls, FALSE, sizeof(bool) * callback->kw.count);
+
+		if (callback->expr[id].spi_argcount) {
+			int idx = 0;
+
+			for (i = 0; i < callback->kw.count; i++) {
+				idx = callback->expr[id].spi_argpos[i];
+				if (idx < 1) continue;
+				idx--; /* 1-based now 0-based */
+
+				switch (i) {
+					/* [rast.x] */
+					case 0:
+						values[idx] = Int32GetDatum(arg->src_pixel[0][0] + 1);
+						break;
+					/* [rast.y] */
+					case 1:
+						values[idx] = Int32GetDatum(arg->src_pixel[0][1] + 1);
+						break;
+					/* [rast.val] */
+					case 2:
+					/* [rast] */
+					case 3:
+						if (!arg->nodata[0][0][0])
+							values[idx] = Float8GetDatum(arg->values[0][0][0]);
+						else
+							nulls[idx] = TRUE;
+						break;
+
+					/* [rast1.x] */
+					case 4:
+						values[idx] = Int32GetDatum(arg->src_pixel[0][0] + 1);
+						break;
+					/* [rast1.y] */
+					case 5:
+						values[idx] = Int32GetDatum(arg->src_pixel[0][1] + 1);
+						break;
+					/* [rast1.val] */
+					case 6:
+					/* [rast1] */
+					case 7:
+						if (!arg->nodata[0][0][0])
+							values[idx] = Float8GetDatum(arg->values[0][0][0]);
+						else
+							nulls[idx] = TRUE;
+						break;
+
+					/* [rast2.x] */
+					case 8:
+						values[idx] = Int32GetDatum(arg->src_pixel[1][0] + 1);
+						break;
+					/* [rast2.y] */
+					case 9:
+						values[idx] = Int32GetDatum(arg->src_pixel[1][1] + 1);
+						break;
+					/* [rast2.val] */
+					case 10:
+					/* [rast2] */
+					case 11:
+						if (!arg->nodata[1][0][0])
+							values[idx] = Float8GetDatum(arg->values[1][0][0]);
+						else
+							nulls[idx] = TRUE;
+						break;
+				}
+
+			}
+		}
+
+		/* run prepared plan */
+		err = SPI_execute_plan(plan, values, nulls, TRUE, 1);
+		if (err != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
+			elog(ERROR, "rtpg_nmapalgebraexpr_callback: Unexpected error when running prepared statement %d", id);
+			return 0;
+		}
+
+		/* get output of prepared plan */
+		tupdesc = SPI_tuptable->tupdesc;
+		tuptable = SPI_tuptable;
+		tuple = tuptable->vals[0];
+
+		datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
+		if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			elog(ERROR, "rtpg_nmapalgebraexpr_callback: Could not get result of prepared statement %d", id);
+			return 0;
+		}
+
+		if (!isnull) {
+			*value = DatumGetFloat8(datum);
+			POSTGIS_RT_DEBUG(4, "Getting value from Datum");
+		}
+		else {
+			/* 2 raster, check nodatanodataval */
+			if (arg->rasters > 1) {
+				if (callback->nodatanodata.hasval)
+					*value = callback->nodatanodata.val;
+				else
+					*nodata = 1;
+			}
+			/* 1 raster, check nodataval */
+			else {
+				if (callback->expr[1].hasval)
+					*value = callback->expr[1].val;
+				else
+					*nodata = 1;
+			}
+		}
+
+		if (SPI_tuptable) SPI_freetuptable(tuptable);
+	}
+
+	POSTGIS_RT_DEBUGF(4, "(value, nodata) = (%f, %d)", *value, *nodata);
+	return 1;
+}
+
+PG_FUNCTION_INFO_V1(RASTER_nMapAlgebraExpr);
+Datum RASTER_nMapAlgebraExpr(PG_FUNCTION_ARGS)
+{
+	MemoryContext mainMemCtx = CurrentMemoryContext;
+	rtpg_nmapalgebraexpr_arg arg = NULL;
+	rt_iterator itrset;
+	uint16_t exprpos[3] = {1, 4, 5};
+
+	int i = 0;
+	int j = 0;
+	int k = 0;
+
+	int numraster = 0;
+	int err = 0;
+	int allnull = 0;
+	int allempty = 0;
+	int noband = 0;
+	int len = 0;
+
+	TupleDesc tupdesc;
+	SPITupleTable *tuptable = NULL;
+	HeapTuple tuple;
+	Datum datum;
+	bool isnull = FALSE;
+
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	rt_pgraster *pgraster = NULL;
+
+	const int argkwcount = 12;
+	char *argkw[] = {
+		"[rast.x]",
+		"[rast.y]",
+		"[rast.val]",
+		"[rast]",
+		"[rast1.x]",
+		"[rast1.y]",
+		"[rast1.val]",
+		"[rast1]",
+		"[rast2.x]",
+		"[rast2.y]",
+		"[rast2.val]",
+		"[rast2]"
+	};
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	/* init argument struct */
+	arg = rtpg_nmapalgebraexpr_arg_init(argkwcount, argkw);
+	if (arg == NULL) {
+		elog(ERROR, "RASTER_nMapAlgebraExpr: Could not initialize argument structure");
+		PG_RETURN_NULL();
+	}
+
+	/* let helper function process rastbandarg (0) */
+	if (!rtpg_nmapalgebra_rastbandarg_process(arg->bandarg, PG_GETARG_ARRAYTYPE_P(0), &allnull, &allempty, &noband)) {
+		rtpg_nmapalgebraexpr_arg_destroy(arg);
+		elog(ERROR, "RASTER_nMapAlgebra: Could not process rastbandarg");
+		PG_RETURN_NULL();
+	}
+
+	POSTGIS_RT_DEBUGF(4, "allnull, allempty, noband = %d, %d, %d", allnull, allempty, noband);
+
+	/* all rasters are NULL, return NULL */
+	if (allnull == arg->bandarg->numraster) {
+		elog(NOTICE, "All input rasters are NULL. Returning NULL");
+		rtpg_nmapalgebraexpr_arg_destroy(arg);
+		PG_RETURN_NULL();
+	}
+
+	/* only work on one or two rasters */
+	if (arg->bandarg->numraster > 1)
+		numraster = 2;
+	else
+		numraster = 1;
+
+	/* pixel type (2) */
+	if (!PG_ARGISNULL(2)) {
+		char *pixtypename = text_to_cstring(PG_GETARG_TEXT_P(2));
+
+		/* Get the pixel type index */
+		arg->bandarg->pixtype = rt_pixtype_index_from_name(pixtypename);
+		if (arg->bandarg->pixtype == PT_END) {
+			rtpg_nmapalgebraexpr_arg_destroy(arg);
+			elog(ERROR, "RASTER_nMapAlgebraExpr: Invalid pixel type: %s", pixtypename);
+			PG_RETURN_NULL();
+		}
+	}
+	POSTGIS_RT_DEBUGF(4, "pixeltype: %d", arg->bandarg->pixtype);
+
+	/* extent type (3) */
+	if (!PG_ARGISNULL(3)) {
+		char *extenttypename = rtpg_strtoupper(rtpg_trim(text_to_cstring(PG_GETARG_TEXT_P(3))));
+		arg->bandarg->extenttype = rt_util_extent_type(extenttypename);
+	}
+
+	if (arg->bandarg->extenttype == ET_CUSTOM) {
+		if (numraster < 2) {
+			elog(NOTICE, "CUSTOM extent type not supported. Defaulting to FIRST");
+			arg->bandarg->extenttype = ET_FIRST;
+		}
+		else {
+			elog(NOTICE, "CUSTOM extent type not supported. Defaulting to INTERSECTION");
+			arg->bandarg->extenttype = ET_INTERSECTION;
+		}
+	}
+	else if (numraster < 2)
+		arg->bandarg->extenttype = ET_FIRST;
+
+	POSTGIS_RT_DEBUGF(4, "extenttype: %d", arg->bandarg->extenttype);
+
+	/* nodatanodataval (6) */
+	if (!PG_ARGISNULL(6)) {
+		arg->callback.nodatanodata.hasval = 1;
+		arg->callback.nodatanodata.val = PG_GETARG_FLOAT8(6);
+	}
+
+	err = 0;
+	/* all rasters are empty, return empty raster */
+	if (allempty == arg->bandarg->numraster) {
+		elog(NOTICE, "All input rasters are empty. Returning empty raster");
+		err = 1;
+	}
+	/* all rasters don't have indicated band, return empty raster */
+	else if (noband == arg->bandarg->numraster) {
+		elog(NOTICE, "All input rasters do not have bands at indicated indexes. Returning empty raster");
+		err = 1;
+	}
+	if (err) {
+		rtpg_nmapalgebraexpr_arg_destroy(arg);
+
+		raster = rt_raster_new(0, 0);
+		if (raster == NULL) {
+			elog(ERROR, "RASTER_nMapAlgebraExpr: Could not create empty raster");
+			PG_RETURN_NULL();
+		}
+
+		pgraster = rt_raster_serialize(raster);
+		rt_raster_destroy(raster);
+		if (!pgraster) PG_RETURN_NULL();
+
+		SET_VARSIZE(pgraster, pgraster->size);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	/* connect SPI */
+	if (SPI_connect() != SPI_OK_CONNECT) {
+		rtpg_nmapalgebraexpr_arg_destroy(arg);
+		elog(ERROR, "RASTER_nMapAlgebraExpr: Could not connect to the SPI manager");
+		PG_RETURN_NULL();
+	}
+
+	/*
+		process expressions
+
+		exprpos elements are:
+			1 - expression => spi_plan[0]
+			4 - nodata1expr => spi_plan[1]
+			5 - nodata2expr => spi_plan[2]
+	*/
+	for (i = 0; i < arg->callback.exprcount; i++) {
+		char *expr = NULL;
+		char *tmp = NULL;
+		char *sql = NULL;
+		char place[5] = "$1";
+
+		if (PG_ARGISNULL(exprpos[i]))
+			continue;
+
+		expr = text_to_cstring(PG_GETARG_TEXT_P(exprpos[i]));
+		POSTGIS_RT_DEBUGF(3, "raw expr of argument #%d: %s", exprpos[i], expr);
+
+		for (j = 0, k = 1; j < argkwcount; j++) {
+			/* attempt to replace keyword with placeholder */
+			len = 0;
+			tmp = rtpg_strreplace(expr, argkw[j], place, &len);
+			pfree(expr);
+			expr = tmp;
+
+			if (len) {
+				POSTGIS_RT_DEBUGF(4, "kw #%d (%s) at pos $%d", j, argkw[j], k);
+				arg->callback.expr[i].spi_argcount++;
+				arg->callback.expr[i].spi_argpos[j] = k++;
+
+				sprintf(place, "$%d", k);
+			}
+			else
+				arg->callback.expr[i].spi_argpos[j] = 0;
+		}
+
+		len = strlen("SELECT (") + strlen(expr) + strlen(")::double precision");
+		sql = (char *) palloc(len + 1);
+		if (sql == NULL) {
+			rtpg_nmapalgebraexpr_arg_destroy(arg);
+			SPI_finish();
+			elog(ERROR, "RASTER_nMapAlgebraExpr: Could not allocate memory for expression parameter %d", exprpos[i]);
+			PG_RETURN_NULL();
+		}
+
+		strncpy(sql, "SELECT (", strlen("SELECT ("));
+		strncpy(sql + strlen("SELECT ("), expr, strlen(expr));
+		strncpy(sql + strlen("SELECT (") + strlen(expr), ")::double precision", strlen(")::double precision"));
+		sql[len] = '\0';
+
+		POSTGIS_RT_DEBUGF(3, "sql #%d: %s", exprpos[i], sql);
+
+		/* prepared plan */
+		if (arg->callback.expr[i].spi_argcount) {
+			Oid *argtype = (Oid *) palloc(arg->callback.expr[i].spi_argcount * sizeof(Oid));
+			POSTGIS_RT_DEBUGF(3, "expression parameter %d is a prepared plan", exprpos[i]);
+			if (argtype == NULL) {
+				pfree(sql);
+				rtpg_nmapalgebraexpr_arg_destroy(arg);
+				SPI_finish();
+				elog(ERROR, "RASTER_nMapAlgebraExpr: Could not allocate memory for prepared plan argtypes of expression parameter %d", exprpos[i]);
+				PG_RETURN_NULL();
+			}
+
+			/* specify datatypes of parameters */
+			for (j = 0, k = 0; j < argkwcount; j++) {
+				if (arg->callback.expr[i].spi_argpos[j] < 1) continue;
+
+				/* positions are INT4 */
+				if (
+					(strstr(argkw[j], "[rast.x]") != NULL) ||
+					(strstr(argkw[j], "[rast.y]") != NULL) ||
+					(strstr(argkw[j], "[rast1.x]") != NULL) ||
+					(strstr(argkw[j], "[rast1.y]") != NULL) ||
+					(strstr(argkw[j], "[rast2.x]") != NULL) ||
+					(strstr(argkw[j], "[rast2.y]") != NULL)
+				)
+					argtype[k] = INT4OID;
+				/* everything else is FLOAT8 */
+				else
+					argtype[k] = FLOAT8OID;
+
+				k++;
+			}
+
+			arg->callback.expr[i].spi_plan = SPI_prepare(sql, arg->callback.expr[i].spi_argcount, argtype);
+			pfree(argtype);
+			pfree(sql);
+
+			if (arg->callback.expr[i].spi_plan == NULL) {
+				rtpg_nmapalgebraexpr_arg_destroy(arg);
+				SPI_finish();
+				elog(ERROR, "RASTER_nMapAlgebraExpr: Could not create prepared plan of expression parameter %d", exprpos[i]);
+				PG_RETURN_NULL();
+			}
+		}
+		/* no args, just execute query */
+		else {
+			POSTGIS_RT_DEBUGF(3, "expression parameter %d has no args, simply executing", exprpos[i]);
+			err = SPI_execute(sql, TRUE, 0);
+			pfree(sql);
+
+			if (err != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
+				rtpg_nmapalgebraexpr_arg_destroy(arg);
+				SPI_finish();
+				elog(ERROR, "RASTER_nMapAlgebraExpr: Could not evaluate expression parameter %d", exprpos[i]);
+				PG_RETURN_NULL();
+			}
+
+			/* get output of prepared plan */
+			tupdesc = SPI_tuptable->tupdesc;
+			tuptable = SPI_tuptable;
+			tuple = tuptable->vals[0];
+
+			datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
+			if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				rtpg_nmapalgebraexpr_arg_destroy(arg);
+				SPI_finish();
+				elog(ERROR, "RASTER_nMapAlgebraExpr: Could not get result of expression parameter %d", exprpos[i]);
+				PG_RETURN_NULL();
+			}
+
+			if (!isnull) {
+				arg->callback.expr[i].hasval = 1;
+				arg->callback.expr[i].val = DatumGetFloat8(datum);
+			} 
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+		}
+	}
+
+	/* determine nodataval and possibly pixtype */
+	/* band to check */
+	switch (arg->bandarg->extenttype) {
+		case ET_LAST:
+		case ET_SECOND:
+			if (numraster > 1)
+				i = 1;
+			else
+				i = 0;
+			break;
+		default:
+			i = 0;
+			break;
+	}
+	/* find first viable band */
+	if (!arg->bandarg->hasband[i]) {
+		for (i = 0; i < numraster; i++) {
+			if (arg->bandarg->hasband[i])
+				break;
+		}
+		if (i >= numraster)
+			i = numraster - 1;
+	}
+	band = rt_raster_get_band(arg->bandarg->raster[i], arg->bandarg->nband[i]);
+
+	/* set pixel type if PT_END */
+	if (arg->bandarg->pixtype == PT_END)
+		arg->bandarg->pixtype = rt_band_get_pixtype(band);
+
+	/* set hasnodata and nodataval */
+	arg->bandarg->hasnodata = 1;
+	if (rt_band_get_hasnodata_flag(band))
+		rt_band_get_nodata(band, &(arg->bandarg->nodataval));
+	else
+		arg->bandarg->nodataval = rt_band_get_min_value(band);
+
+	POSTGIS_RT_DEBUGF(4, "pixtype, hasnodata, nodataval: %s, %d, %f", rt_pixtype_name(arg->bandarg->pixtype), arg->bandarg->hasnodata, arg->bandarg->nodataval);
+
+	/* init itrset */
+	itrset = palloc(sizeof(struct rt_iterator_t) * numraster);
+	if (itrset == NULL) {
+		rtpg_nmapalgebraexpr_arg_destroy(arg);
+		SPI_finish();
+		elog(ERROR, "RASTER_nMapAlgebra: Could not allocate memory for iterator arguments");
+		PG_RETURN_NULL();
+	}
+
+	/* set itrset */
+	for (i = 0; i < numraster; i++) {
+		itrset[i].raster = arg->bandarg->raster[i];
+		itrset[i].nband = arg->bandarg->nband[i];
+		itrset[i].nbnodata = 1;
+	}
+
+	/* pass everything to iterator */
+	err = rt_raster_iterator(
+		itrset, numraster,
+		arg->bandarg->extenttype, arg->bandarg->cextent,
+		arg->bandarg->pixtype,
+		arg->bandarg->hasnodata, arg->bandarg->nodataval,
+		0, 0,
+		NULL,
+		&(arg->callback),
+		rtpg_nmapalgebraexpr_callback,
+		&raster
+	);
+
+	pfree(itrset);
+	rtpg_nmapalgebraexpr_arg_destroy(arg);
+
+	if (err != ES_NONE) {
+		SPI_finish();
+		elog(ERROR, "RASTER_nMapAlgebraExpr: Could not run raster iterator function");
+		PG_RETURN_NULL();
+	}
+	else if (raster == NULL) {
+		SPI_finish();
+		PG_RETURN_NULL();
+	}
+
+	/* switch to prior memory context to ensure memory allocated in correct context */
+	MemoryContextSwitchTo(mainMemCtx);
+
+	pgraster = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+
+	/* finish SPI */
+	SPI_finish();
+
+	if (!pgraster)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgraster, pgraster->size);
+	PG_RETURN_POINTER(pgraster);
+}
+
+/* ---------------------------------------------------------------- */
+/*  ST_Union aggregate functions                                    */
+/* ---------------------------------------------------------------- */
+
+typedef enum {
+	UT_LAST = 0,
+	UT_FIRST,
+	UT_MIN,
+	UT_MAX,
+	UT_COUNT,
+	UT_SUM,
+	UT_MEAN,
+	UT_RANGE
+} rtpg_union_type;
+
+/* internal function translating text of UNION type to enum */
+static rtpg_union_type rtpg_uniontype_index_from_name(const char *cutype) {
+	assert(cutype && strlen(cutype) > 0);
+
+	if (strcmp(cutype, "LAST") == 0)
+		return UT_LAST;
+	else if (strcmp(cutype, "FIRST") == 0)
+		return UT_FIRST;
+	else if (strcmp(cutype, "MIN") == 0)
+		return UT_MIN;
+	else if (strcmp(cutype, "MAX") == 0)
+		return UT_MAX;
+	else if (strcmp(cutype, "COUNT") == 0)
+		return UT_COUNT;
+	else if (strcmp(cutype, "SUM") == 0)
+		return UT_SUM;
+	else if (strcmp(cutype, "MEAN") == 0)
+		return UT_MEAN;
+	else if (strcmp(cutype, "RANGE") == 0)
+		return UT_RANGE;
+
+	return UT_LAST;
+}
+
+typedef struct rtpg_union_band_arg_t *rtpg_union_band_arg;
+struct rtpg_union_band_arg_t {
+	int nband; /* source raster's band index, 0-based */
+	rtpg_union_type uniontype;
+
+	int numraster;
+	rt_raster *raster;
+};
+
+typedef struct rtpg_union_arg_t *rtpg_union_arg;
+struct rtpg_union_arg_t {
+	int numband; /* number of bandargs */
+	rtpg_union_band_arg bandarg;
+};
+
+static void rtpg_union_arg_destroy(rtpg_union_arg arg) {
+	int i = 0;
+	int j = 0;
+	int k = 0;
+
+	if (arg->bandarg != NULL) {
+		for (i = 0; i < arg->numband; i++) {
+			if (!arg->bandarg[i].numraster)
+				continue;
+
+			for (j = 0; j < arg->bandarg[i].numraster; j++) {
+				if (arg->bandarg[i].raster[j] == NULL)
+					continue;
+
+				for (k = rt_raster_get_num_bands(arg->bandarg[i].raster[j]) - 1; k >= 0; k--)
+					rt_band_destroy(rt_raster_get_band(arg->bandarg[i].raster[j], k));
+				rt_raster_destroy(arg->bandarg[i].raster[j]);
+			}
+
+			pfree(arg->bandarg[i].raster);
+		}
+
+		pfree(arg->bandarg);
+	}
+
+	pfree(arg);
+}
+
+static int rtpg_union_callback(
+	rt_iterator_arg arg, void *userarg,
+	double *value, int *nodata
+) {
+	rtpg_union_type *utype = (rtpg_union_type *) userarg;
+
+	if (arg == NULL)
+		return 0;
+
+	if (
+		arg->rasters != 2 ||
+		arg->rows != 1 ||
+		arg->columns != 1
+	) {
+		elog(ERROR, "rtpg_union_callback: Invalid arguments passed to callback");
+		return 0;
+	}
+
+	*value = 0;
+	*nodata = 0;
+
+	/* handle NODATA situations except for COUNT, which is a special case */
+	if (*utype != UT_COUNT) {
+		/* both NODATA */
+		if (arg->nodata[0][0][0] && arg->nodata[1][0][0]) {
+			*nodata = 1;
+			POSTGIS_RT_DEBUGF(4, "value, nodata = %f, %d", *value, *nodata);
+			return 1;
+		}
+		/* second NODATA */
+		else if (!arg->nodata[0][0][0] && arg->nodata[1][0][0]) {
+			*value = arg->values[0][0][0];
+			POSTGIS_RT_DEBUGF(4, "value, nodata = %f, %d", *value, *nodata);
+			return 1;
+		}
+		/* first NODATA */
+		else if (arg->nodata[0][0][0] && !arg->nodata[1][0][0]) {
+			*value = arg->values[1][0][0];
+			POSTGIS_RT_DEBUGF(4, "value, nodata = %f, %d", *value, *nodata);
+			return 1;
+		}
+	}
+
+	switch (*utype) {
+		case UT_FIRST:
+			*value = arg->values[0][0][0];
+			break;
+		case UT_MIN:
+			if (arg->values[0][0][0] < arg->values[1][0][0])
+				*value = arg->values[0][0][0];
+			else
+				*value = arg->values[1][0][0];
+			break;
+		case UT_MAX:
+			if (arg->values[0][0][0] > arg->values[1][0][0])
+				*value = arg->values[0][0][0];
+			else
+				*value = arg->values[1][0][0];
+			break;
+		case UT_COUNT:
+			/* both NODATA */
+			if (arg->nodata[0][0][0] && arg->nodata[1][0][0])
+				*value = 0;
+			/* second NODATA */
+			else if (!arg->nodata[0][0][0] && arg->nodata[1][0][0])
+				*value = arg->values[0][0][0];
+			/* first NODATA */
+			else if (arg->nodata[0][0][0] && !arg->nodata[1][0][0])
+				*value = 1;
+			/* has value, increment */
+			else
+				*value = arg->values[0][0][0] + 1;
+			break;
+		case UT_SUM:
+			*value = arg->values[0][0][0] + arg->values[1][0][0];
+			break;
+		case UT_MEAN:
+		case UT_RANGE:
+			break;
+		case UT_LAST:
+		default:
+			*value = arg->values[1][0][0];
+			break;
+	}
+
+	POSTGIS_RT_DEBUGF(4, "value, nodata = %f, %d", *value, *nodata);
+
+
+	return 1;
+}
+
+static int rtpg_union_mean_callback(
+	rt_iterator_arg arg, void *userarg,
+	double *value, int *nodata
+) {
+	if (arg == NULL)
+		return 0;
+
+	if (
+		arg->rasters != 2 ||
+		arg->rows != 1 ||
+		arg->columns != 1
+	) {
+		elog(ERROR, "rtpg_union_mean_callback: Invalid arguments passed to callback");
+		return 0;
+	}
+
+	*value = 0;
+	*nodata = 1;
+
+	POSTGIS_RT_DEBUGF(4, "rast0: %f %d", arg->values[0][0][0], arg->nodata[0][0][0]);
+	POSTGIS_RT_DEBUGF(4, "rast1: %f %d", arg->values[1][0][0], arg->nodata[1][0][0]);
+
+	if (
+		!arg->nodata[0][0][0] &&
+		FLT_NEQ(arg->values[0][0][0], 0) &&
+		!arg->nodata[1][0][0]
+	) {
+		*value = arg->values[1][0][0] / arg->values[0][0][0];
+		*nodata = 0;
+	}
+
+	POSTGIS_RT_DEBUGF(4, "value, nodata = (%f, %d)", *value, *nodata);
+
+	return 1;
+}
+
+static int rtpg_union_range_callback(
+	rt_iterator_arg arg, void *userarg,
+	double *value, int *nodata
+) {
+	if (arg == NULL)
+		return 0;
+
+	if (
+		arg->rasters != 2 ||
+		arg->rows != 1 ||
+		arg->columns != 1
+	) {
+		elog(ERROR, "rtpg_union_range_callback: Invalid arguments passed to callback");
+		return 0;
+	}
+
+	*value = 0;
+	*nodata = 1;
+
+	POSTGIS_RT_DEBUGF(4, "rast0: %f %d", arg->values[0][0][0], arg->nodata[0][0][0]);
+	POSTGIS_RT_DEBUGF(4, "rast1: %f %d", arg->values[1][0][0], arg->nodata[1][0][0]);
+
+	if (
+		!arg->nodata[0][0][0] &&
+		!arg->nodata[1][0][0]
+	) {
+		*value = arg->values[1][0][0] - arg->values[0][0][0];
+		*nodata = 0;
+	}
+
+	POSTGIS_RT_DEBUGF(4, "value, nodata = (%f, %d)", *value, *nodata);
+
+	return 1;
+}
+
+/* called for ST_Union(raster, unionarg[]) */
+static int rtpg_union_unionarg_process(rtpg_union_arg arg, ArrayType *array) {
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int n = 0;
+
+	HeapTupleHeader tup;
+	bool isnull;
+	Datum tupv;
+
+	int i;
+	int nband = 1;
+	char *utypename = NULL;
+	rtpg_union_type utype = UT_LAST;
+
+	etype = ARR_ELEMTYPE(array);
+	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+	deconstruct_array(
+		array,
+		etype,
+		typlen, typbyval, typalign,
+		&e, &nulls, &n
+	);
+
+	if (!n) {
+		elog(ERROR, "rtpg_union_unionarg_process: Invalid argument for unionarg");
+		return 0;
+	}
+
+	/* prep arg */
+	arg->numband = n;
+	arg->bandarg = palloc(sizeof(struct rtpg_union_band_arg_t) * arg->numband);
+	if (arg->bandarg == NULL) {
+		elog(ERROR, "rtpg_union_unionarg_process: Could not allocate memory for band information");
+		return 0;
+	}
+
+	/* process each element */
+	for (i = 0; i < n; i++) {
+		if (nulls[i]) {
+			arg->numband--;
+			continue;
+		}
+
+		POSTGIS_RT_DEBUGF(4, "Processing unionarg at index %d", i);
+
+		/* each element is a tuple */
+		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
+		if (NULL == tup) {
+			elog(ERROR, "rtpg_union_unionarg_process: Invalid argument for unionarg");
+			return 0;
+		}
+
+		/* first element, bandnum */
+		tupv = GetAttributeByName(tup, "nband", &isnull);
+		if (isnull) {
+			nband = i + 1;
+			elog(NOTICE, "First argument (nband) of unionarg is NULL.  Assuming nband = %d", nband);
+		}
+		else
+			nband = DatumGetInt32(tupv);
+
+		if (nband < 1) {
+			elog(ERROR, "rtpg_union_unionarg_process: Band number must be greater than zero (1-based)");
+			return 0;
+		}
+
+		/* second element, uniontype */
+		tupv = GetAttributeByName(tup, "uniontype", &isnull);
+		if (isnull) {
+			elog(NOTICE, "Second argument (uniontype) of unionarg is NULL.  Assuming uniontype = LAST");
+			utype = UT_LAST;
+		}
+		else {
+			utypename = text_to_cstring((text *) DatumGetPointer(tupv));
+			utype = rtpg_uniontype_index_from_name(rtpg_strtoupper(utypename));
+		}
+
+		arg->bandarg[i].uniontype = utype;
+		arg->bandarg[i].nband = nband - 1;
+		arg->bandarg[i].raster = NULL;
+
+		if (
+			utype != UT_MEAN &&
+			utype != UT_RANGE
+		) {
+			arg->bandarg[i].numraster = 1;
+		}
+		else
+			arg->bandarg[i].numraster = 2;
+	}
+
+	if (arg->numband < n) {
+		arg->bandarg = repalloc(arg->bandarg, sizeof(struct rtpg_union_band_arg_t) * arg->numband);
+		if (arg->bandarg == NULL) {
+			elog(ERROR, "rtpg_union_unionarg_process: Could not reallocate memory for band information");
+			return 0;
+		}
+	}
+
+	return 1;
+}
+
+/* called for ST_Union(raster) */
+static int rtpg_union_noarg(rtpg_union_arg arg, rt_raster raster) {
+	int numbands;
+	int i;
+
+	if (rt_raster_is_empty(raster))
+		return 1;
+
+	numbands = rt_raster_get_num_bands(raster);
+	if (numbands <= arg->numband)
+		return 1;
+
+	/* more bands to process */
+	POSTGIS_RT_DEBUG(4, "input raster has more bands, adding more bandargs");
+	if (arg->numband)
+		arg->bandarg = repalloc(arg->bandarg, sizeof(struct rtpg_union_band_arg_t) * numbands);
+	else
+		arg->bandarg = palloc(sizeof(struct rtpg_union_band_arg_t) * numbands);
+	if (arg->bandarg == NULL) {
+		elog(ERROR, "rtpg_union_noarg: Could not reallocate memory for band information");
+		return 0;
+	}
+
+	i = arg->numband;
+	arg->numband = numbands;
+	for (; i < arg->numband; i++) {
+		POSTGIS_RT_DEBUGF(4, "Adding bandarg for band at index %d", i);
+		arg->bandarg[i].uniontype = UT_LAST;
+		arg->bandarg[i].nband = i;
+		arg->bandarg[i].numraster = 1;
+
+		arg->bandarg[i].raster = (rt_raster *) palloc(sizeof(rt_raster) * arg->bandarg[i].numraster);
+		if (arg->bandarg[i].raster == NULL) {
+			elog(ERROR, "rtpg_union_noarg: Could not allocate memory for working rasters");
+			return 0;
+		}
+		memset(arg->bandarg[i].raster, 0, sizeof(rt_raster) * arg->bandarg[i].numraster);
+
+		/* add new working rt_raster but only if working raster already exists */
+		if (!rt_raster_is_empty(arg->bandarg[0].raster[0])) {
+			arg->bandarg[i].raster[0] = rt_raster_clone(arg->bandarg[0].raster[0], 0); /* shallow clone */
+			if (arg->bandarg[i].raster[0] == NULL) {
+				elog(ERROR, "rtpg_union_noarg: Could not create working raster");
+				return 0;
+			}
+		}
+	}
+
+	return 1;
+}
+
+/* UNION aggregate transition function */
+PG_FUNCTION_INFO_V1(RASTER_union_transfn);
+Datum RASTER_union_transfn(PG_FUNCTION_ARGS)
+{
+	MemoryContext aggcontext;
+	MemoryContext oldcontext;
+	rtpg_union_arg iwr = NULL;
+	int skiparg = 0;
+
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	rt_raster _raster = NULL;
+	rt_band _band = NULL;
+	int nband = 1;
+	int noerr = 1;
+	int isempty[2] = {0};
+	int hasband[2] = {0};
+	int nargs = 0;
+	double _offset[4] = {0.};
+	int nbnodata = 0; /* 1 if adding bands */
+
+	int i = 0;
+	int j = 0;
+	int k = 0;
+
+	rt_iterator itrset;
+	char *utypename = NULL;
+	rtpg_union_type utype = UT_LAST;
+	rt_pixtype pixtype = PT_END;
+	int hasnodata = 1;
+	double nodataval = 0;
+
+	rt_raster iraster = NULL;
+	rt_band iband = NULL;
+	int reuserast = 0;
+	int y = 0;
+	uint16_t _dim[2] = {0};
+	void *vals = NULL;
+	uint16_t nvals = 0;
+
+	POSTGIS_RT_DEBUG(3, "Starting...");
+
+	/* cannot be called directly as this is exclusive aggregate function */
+	if (!AggCheckCallContext(fcinfo, &aggcontext)) {
+		elog(ERROR, "RASTER_union_transfn: Cannot be called in a non-aggregate context");
+		PG_RETURN_NULL();
+	}
+
+	/* switch to aggcontext */
+	oldcontext = MemoryContextSwitchTo(aggcontext);
+
+	if (PG_ARGISNULL(0)) {
+		POSTGIS_RT_DEBUG(3, "Creating state variable");
+		/* allocate container in aggcontext */
+		iwr = palloc(sizeof(struct rtpg_union_arg_t));
+		if (iwr == NULL) {
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_union_transfn: Could not allocate memory for state variable");
+			PG_RETURN_NULL();
+		}
+
+		iwr->numband = 0;
+		iwr->bandarg = NULL;
+
+		skiparg = 0;
+	}
+	else {
+		POSTGIS_RT_DEBUG(3, "State variable already exists");
+		iwr = (rtpg_union_arg) PG_GETARG_POINTER(0);
+		skiparg = 1;
+	}
+
+	/* raster arg is NOT NULL */
+	if (!PG_ARGISNULL(1)) {
+		/* deserialize raster */
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+
+		/* Get raster object */
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (raster == NULL) {
+
+			rtpg_union_arg_destroy(iwr);
+			PG_FREE_IF_COPY(pgraster, 1);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_union_transfn: Could not deserialize raster");
+			PG_RETURN_NULL();
+		}
+	}
+
+	/* process additional args if needed */
+	nargs = PG_NARGS();
+	POSTGIS_RT_DEBUGF(4, "nargs = %d", nargs);
+	if (nargs > 2) {
+		POSTGIS_RT_DEBUG(4, "processing additional arguments");
+
+		/* if more than 2 arguments, determine the type of argument 3 */
+		/* band number, UNION type or unionarg */
+		if (!PG_ARGISNULL(2)) {
+			Oid calltype = get_fn_expr_argtype(fcinfo->flinfo, 2);
+
+			switch (calltype) {
+				/* UNION type */
+				case TEXTOID: {
+					int idx = 0;
+					int numband = 0;
+
+					POSTGIS_RT_DEBUG(4, "Processing arg 3 as UNION type");
+					nbnodata = 1;
+
+					utypename = text_to_cstring(PG_GETARG_TEXT_P(2));
+					utype = rtpg_uniontype_index_from_name(rtpg_strtoupper(utypename));
+					POSTGIS_RT_DEBUGF(4, "Union type: %s", utypename);
+
+					POSTGIS_RT_DEBUGF(4, "iwr->numband: %d", iwr->numband);
+					/* see if we need to append new bands */
+					if (raster) {
+						idx = iwr->numband;
+						numband = rt_raster_get_num_bands(raster);
+						POSTGIS_RT_DEBUGF(4, "numband: %d", numband);
+
+						/* only worry about appended bands */
+						if (numband > iwr->numband)
+							iwr->numband = numband;
+					}
+
+					if (!iwr->numband)
+						iwr->numband = 1;
+					POSTGIS_RT_DEBUGF(4, "iwr->numband: %d", iwr->numband);
+					POSTGIS_RT_DEBUGF(4, "numband, idx: %d, %d", numband, idx);
+
+					/* bandarg set. only possible after the first call to function */
+					if (iwr->bandarg) {
+						/* only reallocate if new bands need to be added */
+						if (numband > idx) {
+							POSTGIS_RT_DEBUG(4, "Reallocating iwr->bandarg");
+							iwr->bandarg = repalloc(iwr->bandarg, sizeof(struct rtpg_union_band_arg_t) * iwr->numband);
+						}
+						/* prevent initial values step happening below */
+						else
+							idx = iwr->numband;
+					}
+					/* bandarg not set, first call to function */
+					else {
+						POSTGIS_RT_DEBUG(4, "Allocating iwr->bandarg");
+						iwr->bandarg = palloc(sizeof(struct rtpg_union_band_arg_t) * iwr->numband);
+					}
+					if (iwr->bandarg == NULL) {
+
+						rtpg_union_arg_destroy(iwr);
+						if (raster != NULL) {
+							rt_raster_destroy(raster);
+							PG_FREE_IF_COPY(pgraster, 1);
+						}
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_union_transfn: Could not allocate memory for band information");
+						PG_RETURN_NULL();
+					}
+
+					/* set initial values for bands that are "new" */
+					for (i = idx; i < iwr->numband; i++) {
+						iwr->bandarg[i].uniontype = utype;
+						iwr->bandarg[i].nband = i;
+
+						if (
+							utype == UT_MEAN ||
+							utype == UT_RANGE
+						) {
+							iwr->bandarg[i].numraster = 2;
+						}
+						else
+							iwr->bandarg[i].numraster = 1;
+						iwr->bandarg[i].raster = NULL;
+					}
+
+					break;
+				}
+				/* band number */
+				case INT2OID:
+				case INT4OID:
+					if (skiparg)
+						break;
+
+					POSTGIS_RT_DEBUG(4, "Processing arg 3 as band number");
+					nband = PG_GETARG_INT32(2);
+					if (nband < 1) {
+
+						rtpg_union_arg_destroy(iwr);
+						if (raster != NULL) {
+							rt_raster_destroy(raster);
+							PG_FREE_IF_COPY(pgraster, 1);
+						}
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_union_transfn: Band number must be greater than zero (1-based)");
+						PG_RETURN_NULL();
+					}
+
+					iwr->numband = 1;
+					iwr->bandarg = palloc(sizeof(struct rtpg_union_band_arg_t) * iwr->numband);
+					if (iwr->bandarg == NULL) {
+
+						rtpg_union_arg_destroy(iwr);
+						if (raster != NULL) {
+							rt_raster_destroy(raster);
+							PG_FREE_IF_COPY(pgraster, 1);
+						}
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_union_transfn: Could not allocate memory for band information");
+						PG_RETURN_NULL();
+					}
+
+					iwr->bandarg[0].uniontype = UT_LAST;
+					iwr->bandarg[0].nband = nband - 1;
+
+					iwr->bandarg[0].numraster = 1;
+					iwr->bandarg[0].raster = NULL;
+					break;
+				/* only other type allowed is unionarg */
+				default: 
+					if (skiparg)
+						break;
+
+					POSTGIS_RT_DEBUG(4, "Processing arg 3 as unionarg");
+					if (!rtpg_union_unionarg_process(iwr, PG_GETARG_ARRAYTYPE_P(2))) {
+
+						rtpg_union_arg_destroy(iwr);
+						if (raster != NULL) {
+							rt_raster_destroy(raster);
+							PG_FREE_IF_COPY(pgraster, 1);
+						}
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_union_transfn: Could not process unionarg");
+						PG_RETURN_NULL();
+					}
+
+					break;
+			}
+		}
+
+		/* UNION type */
+		if (nargs > 3 && !PG_ARGISNULL(3)) {
+			utypename = text_to_cstring(PG_GETARG_TEXT_P(3));
+			utype = rtpg_uniontype_index_from_name(rtpg_strtoupper(utypename));
+			iwr->bandarg[0].uniontype = utype;
+			POSTGIS_RT_DEBUGF(4, "Union type: %s", utypename);
+
+			if (
+				utype == UT_MEAN ||
+				utype == UT_RANGE
+			) {
+				iwr->bandarg[0].numraster = 2;
+			}
+		}
+
+		/* allocate space for pointers to rt_raster */
+		for (i = 0; i < iwr->numband; i++) {
+			POSTGIS_RT_DEBUGF(4, "iwr->bandarg[%d].raster @ %p", i, iwr->bandarg[i].raster);
+
+			/* no need to allocate */
+			if (iwr->bandarg[i].raster != NULL)
+				continue;
+
+			POSTGIS_RT_DEBUGF(4, "Allocating space for working rasters of band %d", i);
+
+			iwr->bandarg[i].raster = (rt_raster *) palloc(sizeof(rt_raster) * iwr->bandarg[i].numraster);
+			if (iwr->bandarg[i].raster == NULL) {
+
+				rtpg_union_arg_destroy(iwr);
+				if (raster != NULL) {
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 1);
+				}
+
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_union_transfn: Could not allocate memory for working raster(s)");
+				PG_RETURN_NULL();
+			}
+
+			memset(iwr->bandarg[i].raster, 0, sizeof(rt_raster) * iwr->bandarg[i].numraster);
+
+			/* add new working rt_raster but only if working raster already exists */
+			if (i > 0 && !rt_raster_is_empty(iwr->bandarg[0].raster[0])) {
+				for (j = 0; j < iwr->bandarg[i].numraster; j++) {
+					iwr->bandarg[i].raster[j] = rt_raster_clone(iwr->bandarg[0].raster[0], 0); /* shallow clone */
+					if (iwr->bandarg[i].raster[j] == NULL) {
+
+						rtpg_union_arg_destroy(iwr);
+						if (raster != NULL) {
+							rt_raster_destroy(raster);
+							PG_FREE_IF_COPY(pgraster, 1);
+						}
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_union_transfn: Could not create working raster");
+						PG_RETURN_NULL();
+					}
+				}
+			}
+		}
+	}
+	/* only raster, no additional args */
+	/* only do this if raster isn't empty */
+	else {
+		POSTGIS_RT_DEBUG(4, "no additional args, checking input raster");
+		nbnodata = 1;
+		if (!rtpg_union_noarg(iwr, raster)) {
+
+			rtpg_union_arg_destroy(iwr);
+			if (raster != NULL) {
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 1);
+			}
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_union_transfn: Could not check and balance number of bands");
+			PG_RETURN_NULL();
+		}
+	}
+
+	/* init itrset */
+	itrset = palloc(sizeof(struct rt_iterator_t) * 2);
+	if (itrset == NULL) {
+
+		rtpg_union_arg_destroy(iwr);
+		if (raster != NULL) {
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 1);
+		}
+
+		MemoryContextSwitchTo(oldcontext);
+		elog(ERROR, "RASTER_union_transfn: Could not allocate memory for iterator arguments");
+		PG_RETURN_NULL();
+	}
+
+	/* by band to UNION */
+	for (i = 0; i < iwr->numband; i++) {
+
+		/* by raster */
+		for (j = 0; j < iwr->bandarg[i].numraster; j++) {
+			reuserast = 0;
+
+			/* type of union */
+			utype = iwr->bandarg[i].uniontype;
+
+			/* raster flags */
+			isempty[0] = rt_raster_is_empty(iwr->bandarg[i].raster[j]);
+			isempty[1] = rt_raster_is_empty(raster);
+
+			if (!isempty[0])
+				hasband[0] = rt_raster_has_band(iwr->bandarg[i].raster[j], 0);
+			if (!isempty[1])
+				hasband[1] = rt_raster_has_band(raster, iwr->bandarg[i].nband);
+
+			/* determine pixtype, hasnodata and nodataval */
+			_band = NULL;
+			if (!isempty[0] && hasband[0])
+				_band = rt_raster_get_band(iwr->bandarg[i].raster[j], 0);
+			else if (!isempty[1] && hasband[1])
+				_band = rt_raster_get_band(raster, iwr->bandarg[i].nband);
+			else {
+				pixtype = PT_64BF;
+				hasnodata = 1;
+				nodataval = rt_pixtype_get_min_value(pixtype);
+			}
+			if (_band != NULL) {
+				pixtype = rt_band_get_pixtype(_band);
+				hasnodata = 1;
+				if (rt_band_get_hasnodata_flag(_band))
+					rt_band_get_nodata(_band, &nodataval);
+				else
+					nodataval = rt_band_get_min_value(_band);
+			}
+
+			/* UT_MEAN and UT_RANGE require two passes */
+			/* UT_MEAN: first for UT_COUNT and second for UT_SUM */
+			if (iwr->bandarg[i].uniontype == UT_MEAN) {
+				/* first pass, UT_COUNT */
+				if (j < 1)
+					utype = UT_COUNT;
+				else
+					utype = UT_SUM;
+			}
+			/* UT_RANGE: first for UT_MIN and second for UT_MAX */
+			else if (iwr->bandarg[i].uniontype == UT_RANGE) {
+				/* first pass, UT_MIN */
+				if (j < 1)
+					utype = UT_MIN;
+				else
+					utype = UT_MAX;
+			}
+
+			/* force band settings for UT_COUNT */
+			if (utype == UT_COUNT) {
+				pixtype = PT_32BUI;
+				hasnodata = 0;
+				nodataval = 0;
+			}
+
+			POSTGIS_RT_DEBUGF(4, "(pixtype, hasnodata, nodataval) = (%s, %d, %f)", rt_pixtype_name(pixtype), hasnodata, nodataval);
+
+			/* set itrset */
+			itrset[0].raster = iwr->bandarg[i].raster[j];
+			itrset[0].nband = 0;
+			itrset[1].raster = raster;
+			itrset[1].nband = iwr->bandarg[i].nband;
+
+			/* allow use NODATA to replace missing bands */
+			if (nbnodata) {
+				itrset[0].nbnodata = 1;
+				itrset[1].nbnodata = 1;
+			}
+			/* missing bands are not ignored */
+			else {
+				itrset[0].nbnodata = 0;
+				itrset[1].nbnodata = 0;
+			}
+
+			/* if rasters AND bands are present, use copy approach */
+			if (!isempty[0] && !isempty[1] && hasband[0] && hasband[1]) {
+				POSTGIS_RT_DEBUG(3, "using line method");
+
+				/* generate empty out raster */
+				if (rt_raster_from_two_rasters(
+					iwr->bandarg[i].raster[j], raster,
+					ET_UNION,
+					&iraster, _offset 
+				) != ES_NONE) {
+
+					pfree(itrset);
+					rtpg_union_arg_destroy(iwr);
+					if (raster != NULL) {
+						rt_raster_destroy(raster);
+						PG_FREE_IF_COPY(pgraster, 1);
+					}
+
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_union_transfn: Could not create internal raster");
+					PG_RETURN_NULL();
+				}
+				POSTGIS_RT_DEBUGF(4, "_offset = %f, %f, %f, %f",
+					_offset[0], _offset[1], _offset[2], _offset[3]);
+
+				/* rasters are spatially the same? */
+				if (
+					rt_raster_get_width(iwr->bandarg[i].raster[j]) == rt_raster_get_width(iraster) &&
+					rt_raster_get_height(iwr->bandarg[i].raster[j]) == rt_raster_get_height(iraster)
+				) {
+					double igt[6] = {0};
+					double gt[6] = {0};
+
+					rt_raster_get_geotransform_matrix(iwr->bandarg[i].raster[j], gt);
+					rt_raster_get_geotransform_matrix(iraster, igt);
+
+					reuserast = rt_util_same_geotransform_matrix(gt, igt);
+				}
+
+				/* use internal raster */
+				if (!reuserast) {
+					/* create band of same type */
+					if (rt_raster_generate_new_band(
+						iraster,
+						pixtype,
+						nodataval,
+						hasnodata, nodataval,
+						0
+					) == -1) {
+
+						pfree(itrset);
+						rtpg_union_arg_destroy(iwr);
+						rt_raster_destroy(iraster);
+						if (raster != NULL) {
+							rt_raster_destroy(raster);
+							PG_FREE_IF_COPY(pgraster, 1);
+						}
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_union_transfn: Could not add new band to internal raster");
+						PG_RETURN_NULL();
+					}
+					iband = rt_raster_get_band(iraster, 0);
+
+					/* copy working raster to output raster */
+					_dim[0] = rt_raster_get_width(iwr->bandarg[i].raster[j]);
+					_dim[1] = rt_raster_get_height(iwr->bandarg[i].raster[j]);
+					for (y = 0; y < _dim[1]; y++) {
+						POSTGIS_RT_DEBUGF(4, "Getting pixel line of working raster at (x, y, length) = (0, %d, %d)", y, _dim[0]);
+						if (rt_band_get_pixel_line(
+							_band,
+							0, y,
+							_dim[0],
+							&vals, &nvals
+						) != ES_NONE) {
+
+							pfree(itrset);
+							rtpg_union_arg_destroy(iwr);
+							rt_band_destroy(iband);
+							rt_raster_destroy(iraster);
+							if (raster != NULL) {
+								rt_raster_destroy(raster);
+								PG_FREE_IF_COPY(pgraster, 1);
+							}
+
+							MemoryContextSwitchTo(oldcontext);
+							elog(ERROR, "RASTER_union_transfn: Could not get pixel line from band of working raster");
+							PG_RETURN_NULL();
+						}
+
+						POSTGIS_RT_DEBUGF(4, "Setting pixel line at (x, y, length) = (%d, %d, %d)", (int) _offset[0], (int) _offset[1] + y, nvals);
+						if (rt_band_set_pixel_line(
+							iband,
+							(int) _offset[0], (int) _offset[1] + y,
+							vals, nvals
+						) != ES_NONE) {
+
+							pfree(itrset);
+							rtpg_union_arg_destroy(iwr);
+							rt_band_destroy(iband);
+							rt_raster_destroy(iraster);
+							if (raster != NULL) {
+								rt_raster_destroy(raster);
+								PG_FREE_IF_COPY(pgraster, 1);
+							}
+
+							MemoryContextSwitchTo(oldcontext);
+							elog(ERROR, "RASTER_union_transfn: Could not set pixel line to band of internal raster");
+							PG_RETURN_NULL();
+						}
+					}
+				}
+				else {
+					rt_raster_destroy(iraster);
+					iraster = iwr->bandarg[i].raster[j];
+					iband = rt_raster_get_band(iraster, 0);
+				}
+
+				/* run iterator for extent of input raster */
+				noerr = rt_raster_iterator(
+					itrset, 2,
+					ET_LAST, NULL,
+					pixtype,
+					hasnodata, nodataval,
+					0, 0,
+					NULL,
+					&utype,
+					rtpg_union_callback,
+					&_raster
+				);
+				if (noerr != ES_NONE) {
+
+					pfree(itrset);
+					rtpg_union_arg_destroy(iwr);
+					if (!reuserast) {
+						rt_band_destroy(iband);
+						rt_raster_destroy(iraster);
+					}
+					if (raster != NULL) {
+						rt_raster_destroy(raster);
+						PG_FREE_IF_COPY(pgraster, 1);
+					}
+
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_union_transfn: Could not run raster iterator function");
+					PG_RETURN_NULL();
+				}
+
+				/* with iterator raster, copy data to output raster */
+				_band = rt_raster_get_band(_raster, 0);
+				_dim[0] = rt_raster_get_width(_raster);
+				_dim[1] = rt_raster_get_height(_raster);
+				for (y = 0; y < _dim[1]; y++) {
+					POSTGIS_RT_DEBUGF(4, "Getting pixel line of iterator raster at (x, y, length) = (0, %d, %d)", y, _dim[0]);
+					if (rt_band_get_pixel_line(
+						_band,
+						0, y,
+						_dim[0],
+						&vals, &nvals
+					) != ES_NONE) {
+
+						pfree(itrset);
+						rtpg_union_arg_destroy(iwr);
+						if (!reuserast) {
+							rt_band_destroy(iband);
+							rt_raster_destroy(iraster);
+						}
+						if (raster != NULL) {
+							rt_raster_destroy(raster);
+							PG_FREE_IF_COPY(pgraster, 1);
+						}
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_union_transfn: Could not get pixel line from band of working raster");
+						PG_RETURN_NULL();
+					}
+
+					POSTGIS_RT_DEBUGF(4, "Setting pixel line at (x, y, length) = (%d, %d, %d)", (int) _offset[2], (int) _offset[3] + y, nvals);
+					if (rt_band_set_pixel_line(
+						iband,
+						(int) _offset[2], (int) _offset[3] + y,
+						vals, nvals
+					) != ES_NONE) {
+
+						pfree(itrset);
+						rtpg_union_arg_destroy(iwr);
+						if (!reuserast) {
+							rt_band_destroy(iband);
+							rt_raster_destroy(iraster);
+						}
+						if (raster != NULL) {
+							rt_raster_destroy(raster);
+							PG_FREE_IF_COPY(pgraster, 1);
+						}
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_union_transfn: Could not set pixel line to band of internal raster");
+						PG_RETURN_NULL();
+					}
+				}
+
+				/* free _raster */
+				rt_band_destroy(_band);
+				rt_raster_destroy(_raster);
+
+				/* replace working raster with output raster */
+				_raster = iraster;
+			}
+			else {
+				POSTGIS_RT_DEBUG(3, "using pixel method");
+
+				/* pass everything to iterator */
+				noerr = rt_raster_iterator(
+					itrset, 2,
+					ET_UNION, NULL,
+					pixtype,
+					hasnodata, nodataval,
+					0, 0,
+					NULL,
+					&utype,
+					rtpg_union_callback,
+					&_raster
+				);
+
+				if (noerr != ES_NONE) {
+
+					pfree(itrset);
+					rtpg_union_arg_destroy(iwr);
+					if (raster != NULL) {
+						rt_raster_destroy(raster);
+						PG_FREE_IF_COPY(pgraster, 1);
+					}
+
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_union_transfn: Could not run raster iterator function");
+					PG_RETURN_NULL();
+				}
+			}
+
+			/* replace working raster */
+			if (iwr->bandarg[i].raster[j] != NULL && !reuserast) {
+				for (k = rt_raster_get_num_bands(iwr->bandarg[i].raster[j]) - 1; k >= 0; k--)
+					rt_band_destroy(rt_raster_get_band(iwr->bandarg[i].raster[j], k));
+				rt_raster_destroy(iwr->bandarg[i].raster[j]);
+			}
+			iwr->bandarg[i].raster[j] = _raster;
+		}
+
+	}
+
+	pfree(itrset);
+	if (raster != NULL) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 1);
+	}
+
+	/* switch back to local context */
+	MemoryContextSwitchTo(oldcontext);
+
+	POSTGIS_RT_DEBUG(3, "Finished");
+
+	PG_RETURN_POINTER(iwr);
+}
+
+/* UNION aggregate final function */
+PG_FUNCTION_INFO_V1(RASTER_union_finalfn);
+Datum RASTER_union_finalfn(PG_FUNCTION_ARGS)
+{
+	rtpg_union_arg iwr;
+	rt_raster _rtn = NULL;
+	rt_raster _raster = NULL;
+	rt_pgraster *pgraster = NULL;
+
+	int i = 0;
+	int j = 0;
+	rt_iterator itrset = NULL;
+	rt_band _band = NULL;
+	int noerr = 1;
+	int status = 0;
+	rt_pixtype pixtype = PT_END;
+	int hasnodata = 0;
+	double nodataval = 0;
+
+	POSTGIS_RT_DEBUG(3, "Starting...");
+
+	/* cannot be called directly as this is exclusive aggregate function */
+	if (!AggCheckCallContext(fcinfo, NULL)) {
+		elog(ERROR, "RASTER_union_finalfn: Cannot be called in a non-aggregate context");
+		PG_RETURN_NULL();
+	}
+
+	/* NULL, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	iwr = (rtpg_union_arg) PG_GETARG_POINTER(0);
+
+	/* init itrset */
+	itrset = palloc(sizeof(struct rt_iterator_t) * 2);
+	if (itrset == NULL) {
+		rtpg_union_arg_destroy(iwr);
+		elog(ERROR, "RASTER_union_finalfn: Could not allocate memory for iterator arguments");
+		PG_RETURN_NULL();
+	}
+
+	for (i = 0; i < iwr->numband; i++) {
+		if (
+			iwr->bandarg[i].uniontype == UT_MEAN ||
+			iwr->bandarg[i].uniontype == UT_RANGE
+		) {
+			/* raster containing the SUM or MAX is at index 1 */
+			_band = rt_raster_get_band(iwr->bandarg[i].raster[1], 0);
+
+			pixtype = rt_band_get_pixtype(_band);
+			hasnodata = rt_band_get_hasnodata_flag(_band);
+			if (hasnodata)
+				rt_band_get_nodata(_band, &nodataval);
+			POSTGIS_RT_DEBUGF(4, "(pixtype, hasnodata, nodataval) = (%s, %d, %f)", rt_pixtype_name(pixtype), hasnodata, nodataval);
+
+			itrset[0].raster = iwr->bandarg[i].raster[0];
+			itrset[0].nband = 0;
+			itrset[1].raster = iwr->bandarg[i].raster[1];
+			itrset[1].nband = 0;
+
+			/* pass everything to iterator */
+			if (iwr->bandarg[i].uniontype == UT_MEAN) {
+				noerr = rt_raster_iterator(
+					itrset, 2,
+					ET_UNION, NULL,
+					pixtype,
+					hasnodata, nodataval,
+					0, 0,
+					NULL,
+					NULL,
+					rtpg_union_mean_callback,
+					&_raster
+				);
+			}
+			else if (iwr->bandarg[i].uniontype == UT_RANGE) {
+				noerr = rt_raster_iterator(
+					itrset, 2,
+					ET_UNION, NULL,
+					pixtype,
+					hasnodata, nodataval,
+					0, 0,
+					NULL,
+					NULL,
+					rtpg_union_range_callback,
+					&_raster
+				);
+			}
+
+			if (noerr != ES_NONE) {
+				pfree(itrset);
+				rtpg_union_arg_destroy(iwr);
+				if (_rtn != NULL)
+					rt_raster_destroy(_rtn);
+				elog(ERROR, "RASTER_union_finalfn: Could not run raster iterator function");
+				PG_RETURN_NULL();
+			}
+		}
+		else
+			_raster = iwr->bandarg[i].raster[0];
+
+		/* first band, _rtn doesn't exist */
+		if (i < 1) {
+			uint32_t bandNums[1] = {0};
+			_rtn = rt_raster_from_band(_raster, bandNums, 1);
+			status = (_rtn == NULL) ? -1 : 0;
+		}
+		else
+			status = rt_raster_copy_band(_rtn, _raster, 0, i);
+
+		POSTGIS_RT_DEBUG(4, "destroying source rasters");
+
+		/* destroy source rasters */
+		if (
+			iwr->bandarg[i].uniontype == UT_MEAN ||
+			iwr->bandarg[i].uniontype == UT_RANGE
+		) {
+			rt_raster_destroy(_raster);
+		}
+			
+		for (j = 0; j < iwr->bandarg[i].numraster; j++) {
+			if (iwr->bandarg[i].raster[j] == NULL)
+				continue;
+			rt_raster_destroy(iwr->bandarg[i].raster[j]);
+			iwr->bandarg[i].raster[j] = NULL;
+		}
+
+		if (status < 0) {
+			rtpg_union_arg_destroy(iwr);
+			rt_raster_destroy(_rtn);
+			elog(ERROR, "RASTER_union_finalfn: Could not add band to final raster");
+			PG_RETURN_NULL();
+		}
+	}
+
+	/* cleanup */
+	pfree(itrset);
+	rtpg_union_arg_destroy(iwr);
+
+	if (!_rtn) PG_RETURN_NULL();
+
+	pgraster = rt_raster_serialize(_rtn);
+	rt_raster_destroy(_rtn);
+
+	POSTGIS_RT_DEBUG(3, "Finished");
+
+	if (!pgraster)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgraster, pgraster->size);
+	PG_RETURN_POINTER(pgraster);
+}
+
+/* ---------------------------------------------------------------- */
+/* Clip raster with geometry                                        */
+/* ---------------------------------------------------------------- */
+
+typedef struct rtpg_clip_band_t *rtpg_clip_band;
+struct rtpg_clip_band_t {
+	int nband; /* band index */
+	int hasnodata; /* is there a user-specified NODATA? */
+	double nodataval; /* user-specified NODATA */
+};
+
+typedef struct rtpg_clip_arg_t *rtpg_clip_arg;
+struct rtpg_clip_arg_t {
+	rt_extenttype extenttype;
+	rt_raster raster;
+	rt_raster mask;
+
+	int numbands; /* number of bandargs */
+	rtpg_clip_band band;
+};
+
+static rtpg_clip_arg rtpg_clip_arg_init() {
+	rtpg_clip_arg arg = NULL;
+
+	arg = palloc(sizeof(struct rtpg_clip_arg_t));
+	if (arg == NULL) {
+		elog(ERROR, "rtpg_clip_arg_init: Could not allocate memory for function arguments");
+		return NULL;
+	}
+
+	arg->extenttype = ET_INTERSECTION;
+	arg->raster = NULL;
+	arg->mask = NULL;
+	arg->numbands = 0;
+	arg->band = NULL;
+
+	return arg;
+}
+
+static void rtpg_clip_arg_destroy(rtpg_clip_arg arg) {
+	if (arg->band != NULL)
+		pfree(arg->band);
+
+	if (arg->raster != NULL)
+		rt_raster_destroy(arg->raster);
+	if (arg->mask != NULL)
+		rt_raster_destroy(arg->mask);
+
+	pfree(arg);
+}
+
+static int rtpg_clip_callback(
+	rt_iterator_arg arg, void *userarg,
+	double *value, int *nodata
+) {
+	*value = 0;
+	*nodata = 0;
+
+	/* either is NODATA, output is NODATA */
+	if (arg->nodata[0][0][0] || arg->nodata[1][0][0])
+		*nodata = 1;
+	/* set to value */
+	else
+		*value = arg->values[0][0][0];
+
+	return 1;
+}
+
+PG_FUNCTION_INFO_V1(RASTER_clip);
+Datum RASTER_clip(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	LWGEOM *rastgeom = NULL;
+	double gt[6] = {0};
+	int srid = SRID_UNKNOWN;
+
+	rt_pgraster *pgrtn = NULL;
+	rt_raster rtn = NULL;
+
+	GSERIALIZED *gser = NULL;
+	LWGEOM *geom = NULL;
+	unsigned char *wkb = NULL;
+	size_t wkb_len;
+
+	ArrayType *array;
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+
+	int i = 0;
+	int j = 0;
+	int k = 0;
+	rtpg_clip_arg arg = NULL;
+	LWGEOM *tmpgeom = NULL;
+	rt_iterator itrset;
+
+	rt_raster _raster = NULL;
+	rt_band band = NULL;
+	rt_pixtype pixtype;
+	int hasnodata;
+	double nodataval;
+	int noerr = 0;
+
+	POSTGIS_RT_DEBUG(3, "Starting...");
+
+	/* raster or geometry is NULL, return NULL */
+	if (PG_ARGISNULL(0) || PG_ARGISNULL(2))
+		PG_RETURN_NULL();
+
+	/* init arg */
+	arg = rtpg_clip_arg_init();
+	if (arg == NULL) {
+		elog(ERROR, "RASTER_clip: Could not initialize argument structure");
+		PG_RETURN_NULL();
+	}
+
+	/* raster (0) */
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	/* Get raster object */
+	arg->raster = rt_raster_deserialize(pgraster, FALSE);
+	if (arg->raster == NULL) {
+		rtpg_clip_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_clip: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* raster is empty, return empty raster */
+	if (rt_raster_is_empty(arg->raster)) {
+		elog(NOTICE, "Input raster is empty. Returning empty raster");
+
+		rtpg_clip_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+
+		rtn = rt_raster_new(0, 0);
+		if (rtn == NULL) {
+			elog(ERROR, "RASTER_clip: Could not create empty raster");
+			PG_RETURN_NULL();
+		}
+
+		pgrtn = rt_raster_serialize(rtn);
+		rt_raster_destroy(rtn);
+		if (NULL == pgrtn)
+			PG_RETURN_NULL();
+
+		SET_VARSIZE(pgrtn, pgrtn->size);
+		PG_RETURN_POINTER(pgrtn);
+	}
+
+	/* metadata */
+	rt_raster_get_geotransform_matrix(arg->raster, gt);
+	srid = clamp_srid(rt_raster_get_srid(arg->raster));
+
+	/* geometry (2) */
+	gser = PG_GETARG_GSERIALIZED_P(2);
+	geom = lwgeom_from_gserialized(gser);
+
+	/* Get a 2D version of the geometry if necessary */
+	if (lwgeom_ndims(geom) > 2) {
+		LWGEOM *geom2d = lwgeom_force_2d(geom);
+		lwgeom_free(geom);
+		geom = geom2d;
+	}
+
+	/* check that SRIDs match */
+	if (srid != clamp_srid(gserialized_get_srid(gser))) {
+		elog(NOTICE, "Geometry provided does not have the same SRID as the raster. Returning NULL");
+
+		rtpg_clip_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		lwgeom_free(geom);
+		PG_FREE_IF_COPY(gser, 2);
+
+		PG_RETURN_NULL();
+	}
+
+	/* crop (4) */
+	if (!PG_ARGISNULL(4) && !PG_GETARG_BOOL(4))
+		arg->extenttype = ET_FIRST;
+
+	/* get intersection geometry of input raster and input geometry */
+	if (rt_raster_get_convex_hull(arg->raster, &rastgeom) != ES_NONE) {
+
+		rtpg_clip_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		lwgeom_free(geom);
+		PG_FREE_IF_COPY(gser, 2);
+
+		elog(ERROR, "RASTER_clip: Could not get convex hull of raster");
+		PG_RETURN_NULL();
+	}
+
+	tmpgeom = lwgeom_intersection(rastgeom, geom);
+	lwgeom_free(rastgeom);
+	lwgeom_free(geom);
+	PG_FREE_IF_COPY(gser, 2);
+	geom = tmpgeom;
+
+	/* intersection is empty AND extent type is INTERSECTION, return empty */
+	if (lwgeom_is_empty(geom) && arg->extenttype == ET_INTERSECTION) {
+		elog(NOTICE, "The input raster and input geometry do not intersect. Returning empty raster");
+
+		rtpg_clip_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		lwgeom_free(geom);
+
+		rtn = rt_raster_new(0, 0);
+		if (rtn == NULL) {
+			elog(ERROR, "RASTER_clip: Could not create empty raster");
+			PG_RETURN_NULL();
+		}
+
+		pgrtn = rt_raster_serialize(rtn);
+		rt_raster_destroy(rtn);
+		if (NULL == pgrtn)
+			PG_RETURN_NULL();
+
+		SET_VARSIZE(pgrtn, pgrtn->size);
+		PG_RETURN_POINTER(pgrtn);
+	}
+
+	/* nband (1) */
+	if (!PG_ARGISNULL(1)) {
+		array = PG_GETARG_ARRAYTYPE_P(1);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case INT2OID:
+			case INT4OID:
+				break;
+			default:
+				rtpg_clip_arg_destroy(arg);
+				PG_FREE_IF_COPY(pgraster, 0);
+				lwgeom_free(geom);
+				elog(ERROR, "RASTER_clip: Invalid data type for band indexes");
+				PG_RETURN_NULL();
+				break;
+		}
+
+		deconstruct_array(
+			array, etype,
+			typlen, typbyval, typalign,
+			&e, &nulls, &(arg->numbands)
+		);
+
+		arg->band = palloc(sizeof(struct rtpg_clip_band_t) * arg->numbands);
+		if (arg->band == NULL) {
+			rtpg_clip_arg_destroy(arg);
+			PG_FREE_IF_COPY(pgraster, 0);
+			lwgeom_free(geom);
+			elog(ERROR, "RASTER_clip: Could not allocate memory for band arguments");
+			PG_RETURN_NULL();
+		}
+
+		for (i = 0, j = 0; i < arg->numbands; i++) {
+			if (nulls[i]) continue;
+
+			switch (etype) {
+				case INT2OID:
+					arg->band[j].nband = DatumGetInt16(e[i]) - 1;
+					break;
+				case INT4OID:
+					arg->band[j].nband = DatumGetInt32(e[i]) - 1;
+					break;
+			}
+
+			j++;
+		}
+
+		if (j < arg->numbands) {
+			arg->band = repalloc(arg->band, sizeof(struct rtpg_clip_band_t) * j);
+			if (arg->band == NULL) {
+				rtpg_clip_arg_destroy(arg);
+				PG_FREE_IF_COPY(pgraster, 0);
+				lwgeom_free(geom);
+				elog(ERROR, "RASTER_clip: Could not reallocate memory for band arguments");
+				PG_RETURN_NULL();
+			}
+
+			arg->numbands = j;
+		}
+
+		/* validate band */
+		for (i = 0; i < arg->numbands; i++) {
+			if (!rt_raster_has_band(arg->raster, arg->band[i].nband)) {
+				elog(NOTICE, "Band at index %d not found in raster", arg->band[i].nband + 1);
+				rtpg_clip_arg_destroy(arg);
+				PG_FREE_IF_COPY(pgraster, 0);
+				lwgeom_free(geom);
+				PG_RETURN_NULL();
+			}
+
+			arg->band[i].hasnodata = 0;
+			arg->band[i].nodataval = 0;
+		}
+	}
+	else {
+		arg->numbands = rt_raster_get_num_bands(arg->raster);
+
+		/* raster may have no bands */
+		if (arg->numbands) {
+			arg->band = palloc(sizeof(struct rtpg_clip_band_t) * arg->numbands);
+			if (arg->band == NULL) {
+
+				rtpg_clip_arg_destroy(arg);
+				PG_FREE_IF_COPY(pgraster, 0);
+				lwgeom_free(geom);
+
+				elog(ERROR, "RASTER_clip: Could not allocate memory for band arguments");
+				PG_RETURN_NULL();
+			}
+
+			for (i = 0; i < arg->numbands; i++) {
+				arg->band[i].nband = i;
+				arg->band[i].hasnodata = 0;
+				arg->band[i].nodataval = 0;
+			}
+		}
+	}
+
+	/* nodataval (3) */
+	if (!PG_ARGISNULL(3)) {
+		array = PG_GETARG_ARRAYTYPE_P(3);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case FLOAT4OID:
+			case FLOAT8OID:
+				break;
+			default:
+				rtpg_clip_arg_destroy(arg);
+				PG_FREE_IF_COPY(pgraster, 0);
+				lwgeom_free(geom);
+				elog(ERROR, "RASTER_clip: Invalid data type for NODATA values");
+				PG_RETURN_NULL();
+				break;
+		}
+
+		deconstruct_array(
+			array, etype,
+			typlen, typbyval, typalign,
+			&e, &nulls, &k
+		);
+
+		/* it doesn't matter if there are more nodataval */
+		for (i = 0, j = 0; i < arg->numbands; i++, j++) {
+			/* cap j to the last nodataval element */
+			if (j >= k)
+				j = k - 1;
+
+			if (nulls[j])
+				continue;
+
+			arg->band[i].hasnodata = 1;
+			switch (etype) {
+				case FLOAT4OID:
+					arg->band[i].nodataval = DatumGetFloat4(e[j]);
+					break;
+				case FLOAT8OID:
+					arg->band[i].nodataval = DatumGetFloat8(e[j]);
+					break;
+			}
+		}
+	}
+
+	/* get wkb of geometry */
+	POSTGIS_RT_DEBUG(3, "getting wkb of geometry");
+	wkb = lwgeom_to_wkb(geom, WKB_SFSQL, &wkb_len);
+	lwgeom_free(geom);
+
+	/* rasterize geometry */
+	arg->mask = rt_raster_gdal_rasterize(
+		wkb, wkb_len,
+		NULL,
+		0, NULL,
+		NULL, NULL,
+		NULL, NULL,
+		NULL, NULL,
+		&(gt[1]), &(gt[5]),
+		NULL, NULL,
+		&(gt[0]), &(gt[3]),
+		&(gt[2]), &(gt[4]),
+		NULL
+	);
+
+	pfree(wkb);
+	if (arg->mask == NULL) {
+		rtpg_clip_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_clip: Could not rasterize intersection geometry");
+		PG_RETURN_NULL();
+	}
+
+	/* set SRID */
+	rt_raster_set_srid(arg->mask, srid);
+
+	/* run iterator */
+
+	/* init itrset */
+	itrset = palloc(sizeof(struct rt_iterator_t) * 2);
+	if (itrset == NULL) {
+		rtpg_clip_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_clip: Could not allocate memory for iterator arguments");
+		PG_RETURN_NULL();
+	}
+
+	/* one band at a time */
+	for (i = 0; i < arg->numbands; i++) {
+		POSTGIS_RT_DEBUGF(4, "band arg %d (nband, hasnodata, nodataval) = (%d, %d, %f)",
+			i, arg->band[i].nband, arg->band[i].hasnodata, arg->band[i].nodataval);
+
+		band = rt_raster_get_band(arg->raster, arg->band[i].nband);
+
+		/* band metadata */
+		pixtype = rt_band_get_pixtype(band);
+
+		if (arg->band[i].hasnodata) {
+			hasnodata = 1;
+			nodataval = arg->band[i].nodataval;
+		}
+		else if (rt_band_get_hasnodata_flag(band)) {
+			hasnodata = 1;
+			rt_band_get_nodata(band, &nodataval);
+		}
+		else {
+			hasnodata = 0;
+			nodataval = rt_band_get_min_value(band);
+		}
+
+		/* band is NODATA, create NODATA band and continue */
+		if (rt_band_get_isnodata_flag(band)) {
+			/* create raster */
+			if (rtn == NULL) {
+				noerr = rt_raster_from_two_rasters(arg->raster, arg->mask, arg->extenttype, &rtn, NULL);
+				if (noerr != ES_NONE) {
+					rtpg_clip_arg_destroy(arg);
+					PG_FREE_IF_COPY(pgraster, 0);
+					elog(ERROR, "RASTER_clip: Could not create output raster");
+					PG_RETURN_NULL();
+				}
+			}
+
+			/* create NODATA band */
+			if (rt_raster_generate_new_band(rtn, pixtype, nodataval, hasnodata, nodataval, i) < 0) {
+				rt_raster_destroy(rtn);
+				rtpg_clip_arg_destroy(arg);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_clip: Could not add NODATA band to output raster");
+				PG_RETURN_NULL();
+			}
+
+			continue;
+		}
+
+		/* raster */
+		itrset[0].raster = arg->raster;
+		itrset[0].nband = arg->band[i].nband;
+		itrset[0].nbnodata = 1;
+
+		/* mask */
+		itrset[1].raster = arg->mask;
+		itrset[1].nband = 0;
+		itrset[1].nbnodata = 1;
+
+		/* pass to iterator */
+		noerr = rt_raster_iterator(
+			itrset, 2,
+			arg->extenttype, NULL,
+			pixtype,
+			hasnodata, nodataval,
+			0, 0,
+			NULL,
+			NULL,
+			rtpg_clip_callback,
+			&_raster
+		);
+
+		if (noerr != ES_NONE) {
+			pfree(itrset);
+			rtpg_clip_arg_destroy(arg);
+			if (rtn != NULL) rt_raster_destroy(rtn);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_clip: Could not run raster iterator function");
+			PG_RETURN_NULL();
+		}
+
+		/* new raster */
+		if (rtn == NULL)
+			rtn = _raster;
+		/* copy band */
+		else {
+			band = rt_raster_get_band(_raster, 0);
+			if (band == NULL) {
+				pfree(itrset);
+				rtpg_clip_arg_destroy(arg);
+				rt_raster_destroy(_raster);
+				rt_raster_destroy(rtn);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_clip: Could not get band from working raster");
+				PG_RETURN_NULL();
+			}
+
+			if (rt_raster_add_band(rtn, band, i) < 0) {
+				pfree(itrset);
+				rtpg_clip_arg_destroy(arg);
+				rt_raster_destroy(_raster);
+				rt_raster_destroy(rtn);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_clip: Could not add new band to output raster");
+				PG_RETURN_NULL();
+			}
+
+			rt_raster_destroy(_raster);
+		}
+	}
+
+	pfree(itrset);
+	rtpg_clip_arg_destroy(arg);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	pgrtn = rt_raster_serialize(rtn);
+	rt_raster_destroy(rtn);
+
+	POSTGIS_RT_DEBUG(3, "Finished");
+
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Reclassify the specified bands of the raster
+ */
+PG_FUNCTION_INFO_V1(RASTER_reclass);
+Datum RASTER_reclass(PG_FUNCTION_ARGS) {
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	rt_band newband = NULL;
+	uint32_t numBands = 0;
+
+	ArrayType *array;
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int n = 0;
+
+	int i = 0;
+	int j = 0;
+	int k = 0;
+
+	int a = 0;
+	int b = 0;
+	int c = 0;
+
+	rt_reclassexpr *exprset = NULL;
+	HeapTupleHeader tup;
+	bool isnull;
+	Datum tupv;
+	uint32_t nband = 0;
+	char *expr = NULL;
+	text *exprtext = NULL;
+	double val = 0;
+	char *junk = NULL;
+	int inc_val = 0;
+	int exc_val = 0;
+	char *pixeltype = NULL;
+	text *pixeltypetext = NULL;
+	rt_pixtype pixtype = PT_END;
+	double nodataval = 0;
+	bool hasnodata = FALSE;
+
+	char **comma_set = NULL;
+	int comma_n = 0;
+	char **colon_set = NULL;
+	int colon_n = 0;
+	char **dash_set = NULL;
+	int dash_n = 0;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_reclass: Starting");
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	/* raster */
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_reclass: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+	numBands = rt_raster_get_num_bands(raster);
+	POSTGIS_RT_DEBUGF(3, "RASTER_reclass: %d possible bands to be reclassified", numBands);
+
+	/* process set of reclassarg */
+	POSTGIS_RT_DEBUG(3, "RASTER_reclass: Processing Arg 1 (reclassargset)");
+	array = PG_GETARG_ARRAYTYPE_P(1);
+	etype = ARR_ELEMTYPE(array);
+	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+	deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+		&nulls, &n);
+
+	if (!n) {
+		elog(NOTICE, "Invalid argument for reclassargset. Returning original raster");
+
+		pgrtn = rt_raster_serialize(raster);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		if (!pgrtn)
+			PG_RETURN_NULL();
+
+		SET_VARSIZE(pgrtn, pgrtn->size);
+		PG_RETURN_POINTER(pgrtn);
+	}
+
+	/*
+		process each element of reclassarg
+		each element is the index of the band to process, the set
+			of reclass ranges and the output band's pixeltype
+	*/
+	for (i = 0; i < n; i++) {
+		if (nulls[i]) continue;
+
+		/* each element is a tuple */
+		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
+		if (NULL == tup) {
+			elog(NOTICE, "Invalid argument for reclassargset. Returning original raster");
+
+			pgrtn = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			if (!pgrtn)
+				PG_RETURN_NULL();
+
+			SET_VARSIZE(pgrtn, pgrtn->size);
+			PG_RETURN_POINTER(pgrtn);
+		}
+
+		/* band index (1-based) */
+		tupv = GetAttributeByName(tup, "nband", &isnull);
+		if (isnull) {
+			elog(NOTICE, "Invalid argument for reclassargset. Missing value of nband for reclassarg of index %d . Returning original raster", i);
+
+			pgrtn = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			if (!pgrtn)
+				PG_RETURN_NULL();
+
+			SET_VARSIZE(pgrtn, pgrtn->size);
+			PG_RETURN_POINTER(pgrtn);
+		}
+		nband = DatumGetInt32(tupv);
+		POSTGIS_RT_DEBUGF(3, "RASTER_reclass: expression for band %d", nband);
+
+		/* valid band index? */
+		if (nband < 1 || nband > numBands) {
+			elog(NOTICE, "Invalid argument for reclassargset. Invalid band index (must use 1-based) for reclassarg of index %d . Returning original raster", i);
+
+			pgrtn = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			if (!pgrtn)
+				PG_RETURN_NULL();
+
+			SET_VARSIZE(pgrtn, pgrtn->size);
+			PG_RETURN_POINTER(pgrtn);
+		}
+
+		/* reclass expr */
+		tupv = GetAttributeByName(tup, "reclassexpr", &isnull);
+		if (isnull) {
+			elog(NOTICE, "Invalid argument for reclassargset. Missing value of reclassexpr for reclassarg of index %d . Returning original raster", i);
+
+			pgrtn = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			if (!pgrtn)
+				PG_RETURN_NULL();
+
+			SET_VARSIZE(pgrtn, pgrtn->size);
+			PG_RETURN_POINTER(pgrtn);
+		}
+		exprtext = (text *) DatumGetPointer(tupv);
+		if (NULL == exprtext) {
+			elog(NOTICE, "Invalid argument for reclassargset. Missing value of reclassexpr for reclassarg of index %d . Returning original raster", i);
+
+			pgrtn = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			if (!pgrtn)
+				PG_RETURN_NULL();
+
+			SET_VARSIZE(pgrtn, pgrtn->size);
+			PG_RETURN_POINTER(pgrtn);
+		}
+		expr = text_to_cstring(exprtext);
+		POSTGIS_RT_DEBUGF(4, "RASTER_reclass: expr (raw) %s", expr);
+		expr = rtpg_removespaces(expr);
+		POSTGIS_RT_DEBUGF(4, "RASTER_reclass: expr (clean) %s", expr);
+
+		/* split string to its components */
+		/* comma (,) separating rangesets */
+		comma_set = rtpg_strsplit(expr, ",", &comma_n);
+		if (comma_n < 1) {
+			elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
+
+			pgrtn = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			if (!pgrtn)
+				PG_RETURN_NULL();
+
+			SET_VARSIZE(pgrtn, pgrtn->size);
+			PG_RETURN_POINTER(pgrtn);
+		}
+
+		/* set of reclass expressions */
+		POSTGIS_RT_DEBUGF(4, "RASTER_reclass: %d possible expressions", comma_n);
+		exprset = palloc(comma_n * sizeof(rt_reclassexpr));
+
+		for (a = 0, j = 0; a < comma_n; a++) {
+			POSTGIS_RT_DEBUGF(4, "RASTER_reclass: map %s", comma_set[a]);
+
+			/* colon (:) separating range "src" and "dst" */
+			colon_set = rtpg_strsplit(comma_set[a], ":", &colon_n);
+			if (colon_n != 2) {
+				elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
+				for (k = 0; k < j; k++) pfree(exprset[k]);
+				pfree(exprset);
+
+				pgrtn = rt_raster_serialize(raster);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				if (!pgrtn)
+					PG_RETURN_NULL();
+
+				SET_VARSIZE(pgrtn, pgrtn->size);
+				PG_RETURN_POINTER(pgrtn);
+			}
+
+			/* allocate mem for reclass expression */
+			exprset[j] = palloc(sizeof(struct rt_reclassexpr_t));
+
+			for (b = 0; b < colon_n; b++) {
+				POSTGIS_RT_DEBUGF(4, "RASTER_reclass: range %s", colon_set[b]);
+
+				/* dash (-) separating "min" and "max" */
+				dash_set = rtpg_strsplit(colon_set[b], "-", &dash_n);
+				if (dash_n < 1 || dash_n > 3) {
+					elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
+					for (k = 0; k < j; k++) pfree(exprset[k]);
+					pfree(exprset);
+
+					pgrtn = rt_raster_serialize(raster);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					if (!pgrtn)
+						PG_RETURN_NULL();
+
+					SET_VARSIZE(pgrtn, pgrtn->size);
+					PG_RETURN_POINTER(pgrtn);
+				}
+
+				for (c = 0; c < dash_n; c++) {
+					/* need to handle: (-9999-100 -> "(", "9999", "100" */
+					if (
+						c < 1 && 
+						strlen(dash_set[c]) == 1 && (
+							strchr(dash_set[c], '(') != NULL ||
+							strchr(dash_set[c], '[') != NULL ||
+							strchr(dash_set[c], ')') != NULL ||
+							strchr(dash_set[c], ']') != NULL
+						)
+					) {
+						junk = palloc(sizeof(char) * (strlen(dash_set[c + 1]) + 2));
+						if (NULL == junk) {
+							for (k = 0; k <= j; k++) pfree(exprset[k]);
+							pfree(exprset);
+							rt_raster_destroy(raster);
+							PG_FREE_IF_COPY(pgraster, 0);
+
+							elog(ERROR, "RASTER_reclass: Could not allocate memory");
+							PG_RETURN_NULL();
+						}
+
+						sprintf(junk, "%s%s", dash_set[c], dash_set[c + 1]);
+						c++;
+						dash_set[c] = repalloc(dash_set[c], sizeof(char) * (strlen(junk) + 1));
+						strcpy(dash_set[c], junk);
+						pfree(junk);
+
+						/* rebuild dash_set */
+						for (k = 1; k < dash_n; k++) {
+							dash_set[k - 1] = repalloc(dash_set[k - 1], (strlen(dash_set[k]) + 1) * sizeof(char));
+							strcpy(dash_set[k - 1], dash_set[k]);
+						}
+						dash_n--;
+						c--;
+						pfree(dash_set[dash_n]);
+						dash_set = repalloc(dash_set, sizeof(char *) * dash_n);
+					}
+
+					/* there shouldn't be more than two in dash_n */
+					if (c < 1 && dash_n > 2) {
+						elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
+						for (k = 0; k < j; k++) pfree(exprset[k]);
+						pfree(exprset);
+
+						pgrtn = rt_raster_serialize(raster);
+						rt_raster_destroy(raster);
+						PG_FREE_IF_COPY(pgraster, 0);
+						if (!pgrtn)
+							PG_RETURN_NULL();
+
+						SET_VARSIZE(pgrtn, pgrtn->size);
+						PG_RETURN_POINTER(pgrtn);
+					}
+
+					/* check interval flags */
+					exc_val = 0;
+					inc_val = 1;
+					/* range */
+					if (dash_n != 1) {
+						/* min */
+						if (c < 1) {
+							if (
+								strchr(dash_set[c], ')') != NULL ||
+								strchr(dash_set[c], ']') != NULL
+							) {
+								exc_val = 1;
+								inc_val = 1;
+							}
+							else if (strchr(dash_set[c], '(') != NULL){
+								inc_val = 0;
+							}
+							else {
+								inc_val = 1;
+							}
+						}
+						/* max */
+						else {
+							if (
+								strrchr(dash_set[c], '(') != NULL ||
+								strrchr(dash_set[c], '[') != NULL
+							) {
+								exc_val = 1;
+								inc_val = 0;
+							}
+							else if (strrchr(dash_set[c], ']') != NULL) {
+								inc_val = 1;
+							}
+							else {
+								inc_val = 0;
+							}
+						}
+					}
+					POSTGIS_RT_DEBUGF(4, "RASTER_reclass: exc_val %d inc_val %d", exc_val, inc_val);
+
+					/* remove interval flags */
+					dash_set[c] = rtpg_chartrim(dash_set[c], "()[]");
+					POSTGIS_RT_DEBUGF(4, "RASTER_reclass: min/max (char) %s", dash_set[c]);
+
+					/* value from string to double */
+					errno = 0;
+					val = strtod(dash_set[c], &junk);
+					if (errno != 0 || dash_set[c] == junk) {
+						elog(NOTICE, "Invalid argument for reclassargset. Invalid expression of reclassexpr for reclassarg of index %d . Returning original raster", i);
+						for (k = 0; k < j; k++) pfree(exprset[k]);
+						pfree(exprset);
+
+						pgrtn = rt_raster_serialize(raster);
+						rt_raster_destroy(raster);
+						PG_FREE_IF_COPY(pgraster, 0);
+						if (!pgrtn)
+							PG_RETURN_NULL();
+
+						SET_VARSIZE(pgrtn, pgrtn->size);
+						PG_RETURN_POINTER(pgrtn);
+					}
+					POSTGIS_RT_DEBUGF(4, "RASTER_reclass: min/max (double) %f", val);
+
+					/* strsplit removes dash (a.k.a. negative sign), compare now to restore */
+					if (c < 1)
+						junk = strstr(colon_set[b], dash_set[c]);
+					else
+						junk = rtpg_strrstr(colon_set[b], dash_set[c]);
+					POSTGIS_RT_DEBUGF(
+						4,
+						"(colon_set[%d], dash_set[%d], junk) = (%s, %s, %s)",
+						b, c, colon_set[b], dash_set[c], junk
+					);
+					/* not beginning of string */
+					if (junk != colon_set[b]) {
+						/* prior is a dash */
+						if (*(junk - 1) == '-') {
+							/* prior is beginning of string or prior - 1 char is dash, negative number */
+							if (
+								((junk - 1) == colon_set[b]) ||
+								(*(junk - 2) == '-') ||
+								(*(junk - 2) == '[') ||
+								(*(junk - 2) == '(')
+							) {
+								val *= -1.;
+							}
+						}
+					}
+					POSTGIS_RT_DEBUGF(4, "RASTER_reclass: min/max (double) %f", val);
+
+					/* src */
+					if (b < 1) {
+						/* singular value */
+						if (dash_n == 1) {
+							exprset[j]->src.exc_min = exprset[j]->src.exc_max = exc_val;
+							exprset[j]->src.inc_min = exprset[j]->src.inc_max = inc_val;
+							exprset[j]->src.min = exprset[j]->src.max = val;
+						}
+						/* min */
+						else if (c < 1) {
+							exprset[j]->src.exc_min = exc_val;
+							exprset[j]->src.inc_min = inc_val;
+							exprset[j]->src.min = val;
+						}
+						/* max */
+						else {
+							exprset[j]->src.exc_max = exc_val;
+							exprset[j]->src.inc_max = inc_val;
+							exprset[j]->src.max = val;
+						}
+					}
+					/* dst */
+					else {
+						/* singular value */
+						if (dash_n == 1)
+							exprset[j]->dst.min = exprset[j]->dst.max = val;
+						/* min */
+						else if (c < 1)
+							exprset[j]->dst.min = val;
+						/* max */
+						else
+							exprset[j]->dst.max = val;
+					}
+				}
+				pfree(dash_set);
+			}
+			pfree(colon_set);
+
+			POSTGIS_RT_DEBUGF(3, "RASTER_reclass: or: %f - %f nr: %f - %f"
+				, exprset[j]->src.min
+				, exprset[j]->src.max
+				, exprset[j]->dst.min
+				, exprset[j]->dst.max
+			);
+			j++;
+		}
+		pfree(comma_set);
+
+		/* pixel type */
+		tupv = GetAttributeByName(tup, "pixeltype", &isnull);
+		if (isnull) {
+			elog(NOTICE, "Invalid argument for reclassargset. Missing value of pixeltype for reclassarg of index %d . Returning original raster", i);
+
+			pgrtn = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			if (!pgrtn)
+				PG_RETURN_NULL();
+
+			SET_VARSIZE(pgrtn, pgrtn->size);
+			PG_RETURN_POINTER(pgrtn);
+		}
+		pixeltypetext = (text *) DatumGetPointer(tupv);
+		if (NULL == pixeltypetext) {
+			elog(NOTICE, "Invalid argument for reclassargset. Missing value of pixeltype for reclassarg of index %d . Returning original raster", i);
+
+			pgrtn = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			if (!pgrtn)
+				PG_RETURN_NULL();
+
+			SET_VARSIZE(pgrtn, pgrtn->size);
+			PG_RETURN_POINTER(pgrtn);
+		}
+		pixeltype = text_to_cstring(pixeltypetext);
+		POSTGIS_RT_DEBUGF(3, "RASTER_reclass: pixeltype %s", pixeltype);
+		pixtype = rt_pixtype_index_from_name(pixeltype);
+
+		/* nodata */
+		tupv = GetAttributeByName(tup, "nodataval", &isnull);
+		if (isnull) {
+			nodataval = 0;
+			hasnodata = FALSE;
+		}
+		else {
+			nodataval = DatumGetFloat8(tupv);
+			hasnodata = TRUE;
+		}
+		POSTGIS_RT_DEBUGF(3, "RASTER_reclass: nodataval %f", nodataval);
+		POSTGIS_RT_DEBUGF(3, "RASTER_reclass: hasnodata %d", hasnodata);
+
+		/* do reclass */
+		band = rt_raster_get_band(raster, nband - 1);
+		if (!band) {
+			elog(NOTICE, "Could not find raster band of index %d. Returning original raster", nband);
+			for (k = 0; k < j; k++) pfree(exprset[k]);
+			pfree(exprset);
+
+			pgrtn = rt_raster_serialize(raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			if (!pgrtn)
+				PG_RETURN_NULL();
+
+			SET_VARSIZE(pgrtn, pgrtn->size);
+			PG_RETURN_POINTER(pgrtn);
+		}
+		newband = rt_band_reclass(band, pixtype, hasnodata, nodataval, exprset, j);
+		if (!newband) {
+			for (k = 0; k < j; k++) pfree(exprset[k]);
+			pfree(exprset);
+
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+
+			elog(ERROR, "RASTER_reclass: Could not reclassify raster band of index %d", nband);
+			PG_RETURN_NULL();
+		}
+
+		/* replace old band with new band */
+		if (rt_raster_replace_band(raster, newband, nband - 1) == NULL) {
+			for (k = 0; k < j; k++) pfree(exprset[k]);
+			pfree(exprset);
+
+			rt_band_destroy(newband);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+
+			elog(ERROR, "RASTER_reclass: Could not replace raster band of index %d with reclassified band", nband);
+			PG_RETURN_NULL();
+		}
+
+		/* old band is in the variable band */
+		rt_band_destroy(band);
+
+		/* free exprset */
+		for (k = 0; k < j; k++) pfree(exprset[k]);
+		pfree(exprset);
+	}
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	POSTGIS_RT_DEBUG(3, "RASTER_reclass: Finished");
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/* ---------------------------------------------------------------- */
+/* apply colormap to specified band of a raster                     */
+/* ---------------------------------------------------------------- */
+
+typedef struct rtpg_colormap_arg_t *rtpg_colormap_arg;
+struct rtpg_colormap_arg_t {
+	rt_raster raster;
+	int nband; /* 1-based */
+	rt_band band;
+	rt_bandstats bandstats;
+
+	rt_colormap colormap;
+	int nodataentry;
+
+	char **entry;
+	int nentry;
+	char **element;
+	int nelement;
+};
+
+static rtpg_colormap_arg
+rtpg_colormap_arg_init() {
+	rtpg_colormap_arg arg = NULL;
+
+	arg = palloc(sizeof(struct rtpg_colormap_arg_t));
+	if (arg == NULL) {
+		elog(ERROR, "rtpg_colormap_arg: Could not allocate memory for function arguments");
+		return NULL;
+	}
+
+	arg->raster = NULL;
+	arg->nband = 1;
+	arg->band = NULL;
+	arg->bandstats = NULL;
+
+	arg->colormap = palloc(sizeof(struct rt_colormap_t));
+	if (arg->colormap == NULL) {
+		elog(ERROR, "rtpg_colormap_arg: Could not allocate memory for function arguments");
+		return NULL;
+	}
+	arg->colormap->nentry = 0;
+	arg->colormap->entry = NULL;
+	arg->colormap->ncolor = 4; /* assume RGBA */
+	arg->colormap->method = CM_INTERPOLATE;
+	arg->nodataentry = -1;
+
+	arg->entry = NULL;
+	arg->nentry = 0;
+	arg->element = NULL;
+	arg->nelement = 0;
+
+	return arg;
+}
+
+static void
+rtpg_colormap_arg_destroy(rtpg_colormap_arg arg) {
+	int i = 0;
+	if (arg->raster != NULL)
+		rt_raster_destroy(arg->raster);
+
+	if (arg->bandstats != NULL)
+		pfree(arg->bandstats);
+
+	if (arg->colormap != NULL) {
+		if (arg->colormap->entry != NULL)
+			pfree(arg->colormap->entry);
+		pfree(arg->colormap);
+	}
+
+	if (arg->nentry) {
+		for (i = 0; i < arg->nentry; i++) {
+			if (arg->entry[i] != NULL)
+				pfree(arg->entry[i]);
+		}
+		pfree(arg->entry);
+	}
+
+	if (arg->nelement) {
+		for (i = 0; i < arg->nelement; i++)
+			pfree(arg->element[i]);
+		pfree(arg->element);
+	}
+
+	pfree(arg);
+	arg = NULL;
+}
+
+PG_FUNCTION_INFO_V1(RASTER_colorMap);
+Datum RASTER_colorMap(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rtpg_colormap_arg arg = NULL;
+	char *junk = NULL;
+	rt_raster raster = NULL;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_colorMap: Starting");
+
+	/* pgraster is NULL, return NULL */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	/* init arg */
+	arg = rtpg_colormap_arg_init();
+	if (arg == NULL) {
+		elog(ERROR, "RASTER_colorMap: Could not initialize argument structure");
+		PG_RETURN_NULL();
+	}
+
+	/* raster (0) */
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	/* raster object */
+	arg->raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!arg->raster) {
+		rtpg_colormap_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_colorMap: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* nband (1) */
+	if (!PG_ARGISNULL(1))
+		arg->nband = PG_GETARG_INT32(1);
+	POSTGIS_RT_DEBUGF(4, "nband = %d", arg->nband);
+
+	/* check that band works */
+	if (!rt_raster_has_band(arg->raster, arg->nband - 1)) {
+		elog(NOTICE, "Raster does not have band at index %d. Returning empty raster", arg->nband);
+
+		raster = rt_raster_clone(arg->raster, 0);
+		if (raster == NULL) {
+			rtpg_colormap_arg_destroy(arg);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_colorMap: Could not create empty raster");
+			PG_RETURN_NULL();
+		}
+
+		rtpg_colormap_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+
+		pgraster = rt_raster_serialize(raster);
+		rt_raster_destroy(raster);
+		if (pgraster == NULL)
+			PG_RETURN_NULL();
+
+		SET_VARSIZE(pgraster, ((rt_pgraster*) pgraster)->size);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	/* get band */
+	arg->band = rt_raster_get_band(arg->raster, arg->nband - 1);
+	if (arg->band == NULL) {
+		int nband = arg->nband;
+		rtpg_colormap_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_colorMap: Could not get band at index %d", nband);
+		PG_RETURN_NULL();
+	}
+
+	/* method (3) */
+	if (!PG_ARGISNULL(3)) {
+		char *method = NULL;
+		char *tmp = text_to_cstring(PG_GETARG_TEXT_P(3));
+		POSTGIS_RT_DEBUGF(4, "raw method = %s", tmp);
+
+		method = rtpg_trim(tmp);
+		pfree(tmp);
+		method = rtpg_strtoupper(method);
+
+		if (strcmp(method, "INTERPOLATE") == 0)
+			arg->colormap->method = CM_INTERPOLATE;
+		else if (strcmp(method, "EXACT") == 0)
+			arg->colormap->method = CM_EXACT;
+		else if (strcmp(method, "NEAREST") == 0)
+			arg->colormap->method = CM_NEAREST;
+		else {
+			elog(NOTICE, "Unknown value provided for method. Defaulting to INTERPOLATE");
+			arg->colormap->method = CM_INTERPOLATE;
+		}
+	}
+	/* default to INTERPOLATE */
+	else
+		arg->colormap->method = CM_INTERPOLATE;
+	POSTGIS_RT_DEBUGF(4, "method = %d", arg->colormap->method);
+
+	/* colormap (2) */
+	if (PG_ARGISNULL(2)) {
+		rtpg_colormap_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_colorMap: Value must be provided for colormap");
+		PG_RETURN_NULL();
+	}
+	else {
+		char *tmp = NULL;
+		char *colormap = text_to_cstring(PG_GETARG_TEXT_P(2));
+		char *_entry;
+		char *_element;
+		int i = 0;
+		int j = 0;
+
+		POSTGIS_RT_DEBUGF(4, "colormap = %s", colormap);
+
+		/* empty string */
+		if (!strlen(colormap)) {
+			rtpg_colormap_arg_destroy(arg);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_colorMap: Value must be provided for colormap");
+			PG_RETURN_NULL();
+		}
+
+		arg->entry = rtpg_strsplit(colormap, "\n", &(arg->nentry));
+		pfree(colormap);
+		if (arg->nentry < 1) {
+			rtpg_colormap_arg_destroy(arg);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_colorMap: Could not process the value provided for colormap");
+			PG_RETURN_NULL();
+		}
+
+		/* allocate the max # of colormap entries */
+		arg->colormap->entry = palloc(sizeof(struct rt_colormap_entry_t) * arg->nentry);
+		if (arg->colormap->entry == NULL) {
+			rtpg_colormap_arg_destroy(arg);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_colorMap: Could not allocate memory for colormap entries");
+			PG_RETURN_NULL();
+		}
+		memset(arg->colormap->entry, 0, sizeof(struct rt_colormap_entry_t) * arg->nentry);
+
+		/* each entry */
+		for (i = 0; i < arg->nentry; i++) {
+			/* substitute space for other delimiters */
+			tmp = rtpg_strreplace(arg->entry[i], ":", " ", NULL);
+			_entry = rtpg_strreplace(tmp, ",", " ", NULL);
+			pfree(tmp);
+			tmp = rtpg_strreplace(_entry, "\t", " ", NULL);
+			pfree(_entry);
+			_entry = rtpg_trim(tmp);
+			pfree(tmp);
+
+			POSTGIS_RT_DEBUGF(4, "Processing entry[%d] = %s", i, arg->entry[i]);
+			POSTGIS_RT_DEBUGF(4, "Cleaned entry[%d] = %s", i, _entry);
+
+			/* empty entry, continue */
+			if (!strlen(_entry)) {
+				POSTGIS_RT_DEBUGF(3, "Skipping empty entry[%d]", i);
+				pfree(_entry);
+				continue;
+			}
+
+			arg->element = rtpg_strsplit(_entry, " ", &(arg->nelement));
+			pfree(_entry);
+			if (arg->nelement < 2) {
+				rtpg_colormap_arg_destroy(arg);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_colorMap: Could not process colormap entry %d", i + 1);
+				PG_RETURN_NULL();
+			}
+			else if (arg->nelement > 5) {
+				elog(NOTICE, "More than five elements in colormap entry %d. Using at most five elements", i + 1);
+				arg->nelement = 5;
+			}
+
+			/* smallest # of colors */
+			if ((arg->nelement - 1) < arg->colormap->ncolor)
+				arg->colormap->ncolor = arg->nelement - 1;
+
+			/* each element of entry */
+			for (j = 0; j < arg->nelement; j++) {
+
+				_element = rtpg_trim(arg->element[j]);
+				_element = rtpg_strtoupper(_element);
+				POSTGIS_RT_DEBUGF(4, "Processing entry[%d][%d] = %s", i, j, arg->element[j]);
+				POSTGIS_RT_DEBUGF(4, "Cleaned entry[%d][%d] = %s", i, j, _element);
+
+				/* first element is ALWAYS a band value, percentage OR "nv" string */
+				if (j == 0) {
+					char *percent = NULL;
+
+					/* NODATA */
+					if (
+						strcmp(_element, "NV") == 0 ||
+						strcmp(_element, "NULL") == 0 ||
+						strcmp(_element, "NODATA") == 0
+					) {
+						POSTGIS_RT_DEBUG(4, "Processing NODATA string");
+
+						if (arg->nodataentry > -1) {
+							elog(NOTICE, "More than one NODATA entry found. Using only the first one");
+						}
+						else {
+							arg->colormap->entry[arg->colormap->nentry].isnodata = 1;
+							/* no need to set value as value comes from band's NODATA */
+							arg->colormap->entry[arg->colormap->nentry].value = 0;
+						}
+					}
+					/* percent value */
+					else if ((percent = strchr(_element, '%')) != NULL) {
+						double value;
+						POSTGIS_RT_DEBUG(4, "Processing percent string");
+
+						/* get the band stats */
+						if (arg->bandstats == NULL) {
+							POSTGIS_RT_DEBUG(4, "Getting band stats");
+							
+							arg->bandstats = rt_band_get_summary_stats(arg->band, 1, 1, 0, NULL, NULL, NULL);
+							if (arg->bandstats == NULL) {
+								pfree(_element);
+								rtpg_colormap_arg_destroy(arg);
+								PG_FREE_IF_COPY(pgraster, 0);
+								elog(ERROR, "RASTER_colorMap: Could not get band's summary stats to process percentages");
+								PG_RETURN_NULL();
+							}
+						}
+
+						/* get the string before the percent char */
+						tmp = palloc(sizeof(char) * (percent - _element + 1));
+						if (tmp == NULL) {
+							pfree(_element);
+							rtpg_colormap_arg_destroy(arg);
+							PG_FREE_IF_COPY(pgraster, 0);
+							elog(ERROR, "RASTER_colorMap: Could not allocate memory for value of percentage");
+							PG_RETURN_NULL();
+						}
+
+						memcpy(tmp, _element, percent - _element);
+						tmp[percent - _element] = '\0';
+						POSTGIS_RT_DEBUGF(4, "Percent value = %s", tmp);
+
+						/* get percentage value */
+						errno = 0;
+						value = strtod(tmp, NULL);
+						pfree(tmp);
+						if (errno != 0 || _element == junk) {
+							pfree(_element);
+							rtpg_colormap_arg_destroy(arg);
+							PG_FREE_IF_COPY(pgraster, 0);
+							elog(ERROR, "RASTER_colorMap: Could not process percent string to value");
+							PG_RETURN_NULL();
+						}
+
+						/* check percentage */
+						if (value < 0.) {
+							elog(NOTICE, "Percentage values cannot be less than zero. Defaulting to zero");
+							value = 0.;
+						}
+						else if (value > 100.) {
+							elog(NOTICE, "Percentage values cannot be greater than 100. Defaulting to 100");
+							value = 100.;
+						}
+
+						/* get the true pixel value */
+						/* TODO: should the percentage be quantile based? */
+						arg->colormap->entry[arg->colormap->nentry].value = ((value / 100.) * (arg->bandstats->max - arg->bandstats->min)) + arg->bandstats->min;
+					}
+					/* straight value */
+					else {
+						errno = 0;
+						arg->colormap->entry[arg->colormap->nentry].value = strtod(_element, &junk);
+						if (errno != 0 || _element == junk) {
+							pfree(_element);
+							rtpg_colormap_arg_destroy(arg);
+							PG_FREE_IF_COPY(pgraster, 0);
+							elog(ERROR, "RASTER_colorMap: Could not process string to value");
+							PG_RETURN_NULL();
+						}
+					}
+
+				}
+				/* RGB values (0 - 255) */
+				else {
+					int value = 0;
+
+					errno = 0;
+					value = (int) strtod(_element, &junk);
+					if (errno != 0 || _element == junk) {
+						pfree(_element);
+						rtpg_colormap_arg_destroy(arg);
+						PG_FREE_IF_COPY(pgraster, 0);
+						elog(ERROR, "RASTER_colorMap: Could not process string to value");
+						PG_RETURN_NULL();
+					}
+
+					if (value > 255) {
+						elog(NOTICE, "RGBA value cannot be greater than 255. Defaulting to 255");
+						value = 255;
+					}
+					else if (value < 0) {
+						elog(NOTICE, "RGBA value cannot be less than zero. Defaulting to zero");
+						value = 0;
+					}
+					arg->colormap->entry[arg->colormap->nentry].color[j - 1] = value;
+				}
+
+				pfree(_element);
+			}
+
+			POSTGIS_RT_DEBUGF(4, "colormap->entry[%d] (isnodata, value, R, G, B, A) = (%d, %f, %d, %d, %d, %d)",
+				arg->colormap->nentry,
+				arg->colormap->entry[arg->colormap->nentry].isnodata,
+				arg->colormap->entry[arg->colormap->nentry].value,
+				arg->colormap->entry[arg->colormap->nentry].color[0],
+				arg->colormap->entry[arg->colormap->nentry].color[1],
+				arg->colormap->entry[arg->colormap->nentry].color[2],
+				arg->colormap->entry[arg->colormap->nentry].color[3]
+			);
+
+			arg->colormap->nentry++;
+		}
+
+		POSTGIS_RT_DEBUGF(4, "colormap->nentry = %d", arg->colormap->nentry);
+		POSTGIS_RT_DEBUGF(4, "colormap->ncolor = %d", arg->colormap->ncolor);
+	}
+
+	/* call colormap */
+	raster = rt_raster_colormap(arg->raster, arg->nband - 1, arg->colormap);
+	if (raster == NULL) {
+		rtpg_colormap_arg_destroy(arg);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_colorMap: Could not create new raster with applied colormap");
+		PG_RETURN_NULL();
+	}
+
+	rtpg_colormap_arg_destroy(arg);
+	PG_FREE_IF_COPY(pgraster, 0);
+	pgraster = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+
+	POSTGIS_RT_DEBUG(3, "RASTER_colorMap: Done");
+
+	if (pgraster == NULL)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgraster, ((rt_pgraster*) pgraster)->size);
+	PG_RETURN_POINTER(pgraster);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_mapAlgebraExpr);
+Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_pgraster *pgrtn = NULL;
+    rt_raster raster = NULL;
+    rt_raster newrast = NULL;
+    rt_band band = NULL;
+    rt_band newband = NULL;
+    int x, y, nband, width, height;
+    double r;
+    double newnodatavalue = 0.0;
+    double newinitialvalue = 0.0;
+    double newval = 0.0;
+    char *newexpr = NULL;
+    char *initexpr = NULL;
+    char *expression = NULL;
+    int hasnodataval = 0;
+    double nodataval = 0.;
+    rt_pixtype newpixeltype;
+    int skipcomputation = 0;
+    int len = 0;
+    const int argkwcount = 3;
+    enum KEYWORDS { kVAL=0, kX=1, kY=2 };
+    char *argkw[] = {"[rast]", "[rast.x]", "[rast.y]"};
+    Oid argkwtypes[] = { FLOAT8OID, INT4OID, INT4OID };
+    int argcount = 0;
+    Oid argtype[] = { FLOAT8OID, INT4OID, INT4OID };
+    uint8_t argpos[3] = {0};
+    char place[5];
+    int idx = 0;
+    int ret = -1;
+    TupleDesc tupdesc;
+    SPIPlanPtr spi_plan = NULL;
+    SPITupleTable * tuptable = NULL;
+    HeapTuple tuple;
+    char * strFromText = NULL;
+    Datum *values = NULL;
+    Datum datum = (Datum)NULL;
+    char *nulls = NULL;
+    bool isnull = FALSE;
+    int i = 0;
+    int j = 0;
+
+    POSTGIS_RT_DEBUG(2, "RASTER_mapAlgebraExpr: Starting...");
+
+    /* Check raster */
+    if (PG_ARGISNULL(0)) {
+        elog(NOTICE, "Raster is NULL. Returning NULL");
+        PG_RETURN_NULL();
+    }
+
+
+    /* Deserialize raster */
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+    raster = rt_raster_deserialize(pgraster, FALSE);
+    if (NULL == raster) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_mapAlgebraExpr: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Getting arguments...");
+
+    if (PG_ARGISNULL(1))
+        nband = 1;
+    else
+        nband = PG_GETARG_INT32(1);
+
+    if (nband < 1)
+        nband = 1;
+
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Creating new empty raster...");
+
+    /**
+     * Create a new empty raster with having the same georeference as the
+     * provided raster
+     **/
+    width = rt_raster_get_width(raster);
+    height = rt_raster_get_height(raster);
+
+    newrast = rt_raster_new(width, height);
+
+    if ( NULL == newrast ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_mapAlgebraExpr: Could not create a new raster");
+        PG_RETURN_NULL();
+    }
+
+    rt_raster_set_scale(newrast,
+            rt_raster_get_x_scale(raster),
+            rt_raster_get_y_scale(raster));
+
+    rt_raster_set_offsets(newrast,
+            rt_raster_get_x_offset(raster),
+            rt_raster_get_y_offset(raster));
+
+    rt_raster_set_skews(newrast,
+            rt_raster_get_x_skew(raster),
+            rt_raster_get_y_skew(raster));
+
+    rt_raster_set_srid(newrast, rt_raster_get_srid(raster));
+
+
+    /**
+     * If this new raster is empty (width = 0 OR height = 0) then there is
+     * nothing to compute and we return it right now
+     **/
+    if (rt_raster_is_empty(newrast))
+    {
+        elog(NOTICE, "Raster is empty. Returning an empty raster");
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Getting raster band %d...", nband);
+
+    /**
+     * Check if the raster has the required band. Otherwise, return a raster
+     * without band
+     **/
+    if (!rt_raster_has_band(raster, nband - 1)) {
+        elog(NOTICE, "Raster does not have the required band. Returning a raster "
+                "without a band");
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    /* Get the raster band */
+    band = rt_raster_get_band(raster, nband - 1);
+    if ( NULL == band ) {
+        elog(NOTICE, "Could not get the required band. Returning a raster "
+                "without a band");
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+     /*
+     * Get NODATA value
+     */
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Getting NODATA value for band...");
+
+    if (rt_band_get_hasnodata_flag(band)) {
+        rt_band_get_nodata(band, &newnodatavalue);
+    }
+
+    else {
+        newnodatavalue = rt_band_get_min_value(band);
+    }
+
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: NODATA value for band: = %f",
+        newnodatavalue);
+
+    /**
+     * We set the initial value of the future band to nodata value. If nodata
+     * value is null, then the raster will be initialized to
+     * rt_band_get_min_value but all the values should be recomputed anyway
+     **/
+    newinitialvalue = newnodatavalue;
+
+    /**
+     * Set the new pixeltype
+     **/
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Setting pixeltype...");
+
+    if (PG_ARGISNULL(2)) {
+        newpixeltype = rt_band_get_pixtype(band);
+    }
+
+    else {
+        strFromText = text_to_cstring(PG_GETARG_TEXT_P(2));
+        newpixeltype = rt_pixtype_index_from_name(strFromText);
+        pfree(strFromText);
+        if (newpixeltype == PT_END)
+            newpixeltype = rt_band_get_pixtype(band);
+    }
+
+    if (newpixeltype == PT_END) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_mapAlgebraExpr: Invalid pixeltype");
+        PG_RETURN_NULL();
+    }
+
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Pixeltype set to %s",
+        rt_pixtype_name(newpixeltype));
+
+
+    /* Construct expression for raster values */
+    if (!PG_ARGISNULL(3)) {
+        expression = text_to_cstring(PG_GETARG_TEXT_P(3));
+        len = strlen("SELECT (") + strlen(expression) + strlen(")::double precision");
+        initexpr = (char *)palloc(len + 1);
+
+        strncpy(initexpr, "SELECT (", strlen("SELECT ("));
+        strncpy(initexpr + strlen("SELECT ("), expression, strlen(expression));
+				strncpy(initexpr + strlen("SELECT (") + strlen(expression), ")::double precision", strlen(")::double precision"));
+        initexpr[len] = '\0';
+
+        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Expression is %s", initexpr);
+
+        /* We don't need this memory */
+        /*
+				pfree(expression);
+        expression = NULL;
+				*/
+    }
+
+
+
+    /**
+     * Optimization: If a nodataval is provided, use it for newinitialvalue.
+     * Then, we can initialize the raster with this value and skip the
+     * computation of nodata values one by one in the main computing loop
+     **/
+    if (!PG_ARGISNULL(4)) {
+				hasnodataval = 1;
+				nodataval = PG_GETARG_FLOAT8(4);
+				newinitialvalue = nodataval;
+
+        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: new initial value = %f",
+            newinitialvalue);
+    }
+    else
+        hasnodataval = 0;
+
+
+
+    /**
+     * Optimization: If the raster is only filled with nodata values return
+     * right now a raster filled with the newinitialvalue
+     * TODO: Call rt_band_check_isnodata instead?
+     **/
+    if (rt_band_get_isnodata_flag(band)) {
+
+        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: Band is a nodata band, returning "
+                "a raster filled with nodata");
+
+        ret = rt_raster_generate_new_band(newrast, newpixeltype,
+                newinitialvalue, TRUE, newnodatavalue, 0);
+
+        /* Free memory */
+        if (initexpr)
+            pfree(initexpr);
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+
+    /**
+     * Optimization: If expression resume to 'RAST' and hasnodataval is zero,
+		 * we can just return the band from the original raster
+     **/
+    if (initexpr != NULL && ( !strcmp(initexpr, "SELECT [rast]") || !strcmp(initexpr, "SELECT [rast.val]") ) && !hasnodataval) {
+
+        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Expression resumes to RAST. "
+                "Returning raster with band %d from original raster", nband);
+
+        POSTGIS_RT_DEBUGF(4, "RASTER_mapAlgebraExpr: New raster has %d bands",
+                rt_raster_get_num_bands(newrast));
+
+        rt_raster_copy_band(newrast, raster, nband - 1, 0);
+
+        POSTGIS_RT_DEBUGF(4, "RASTER_mapAlgebraExpr: New raster now has %d bands",
+                rt_raster_get_num_bands(newrast));
+
+        if (initexpr)
+            pfree(initexpr);
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    /**
+     * Optimization: If expression resume to a constant (it does not contain
+     * [rast)
+     **/
+    if (initexpr != NULL && strstr(initexpr, "[rast") == NULL) {
+        ret = SPI_connect();
+        if (ret != SPI_OK_CONNECT) {
+            PG_FREE_IF_COPY(pgraster, 0);
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not connect to the SPI manager");
+            PG_RETURN_NULL();
+        };
+
+        /* Execute the expresion into newval */
+        ret = SPI_execute(initexpr, FALSE, 0);
+
+        if (ret != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
+
+            /* Free memory allocated out of the current context */
+            if (SPI_tuptable)
+                SPI_freetuptable(tuptable);
+            PG_FREE_IF_COPY(pgraster, 0);
+
+            SPI_finish();
+            elog(ERROR, "RASTER_mapAlgebraExpr: Invalid construction for expression");
+            PG_RETURN_NULL();
+        }
+
+        tupdesc = SPI_tuptable->tupdesc;
+        tuptable = SPI_tuptable;
+
+        tuple = tuptable->vals[0];
+        newexpr = SPI_getvalue(tuple, tupdesc, 1);
+        if ( ! newexpr ) {
+            POSTGIS_RT_DEBUG(3, "Constant expression evaluated to NULL, keeping initvalue");
+            newval = newinitialvalue;
+        } else {
+            newval = atof(newexpr);
+        }
+
+        SPI_freetuptable(tuptable);
+
+        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: New raster value = %f",
+                newval);
+
+        SPI_finish();
+
+        skipcomputation = 1;
+
+        /**
+         * Compute the new value, set it and we will return after creating the
+         * new raster
+         **/
+        if (!hasnodataval) {
+            newinitialvalue = newval;
+            skipcomputation = 2;
+        }
+
+        /* Return the new raster as it will be before computing pixel by pixel */
+        else if (FLT_NEQ(newval, newinitialvalue)) {
+            skipcomputation = 2;
+        }
+    }
+
+    /**
+     * Create the raster receiving all the computed values. Initialize it to the
+     * new initial value
+     **/
+    ret = rt_raster_generate_new_band(newrast, newpixeltype,
+            newinitialvalue, TRUE, newnodatavalue, 0);
+
+    /**
+     * Optimization: If expression is NULL, or all the pixels could be set in
+     * one step, return the initialized raster now
+     **/
+    /*if (initexpr == NULL || skipcomputation == 2) {*/
+    if (expression == NULL || skipcomputation == 2) {
+
+        /* Free memory */
+        if (initexpr)
+            pfree(initexpr);
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    RASTER_DEBUG(3, "RASTER_mapAlgebraExpr: Creating new raster band...");
+
+    /* Get the new raster band */
+    newband = rt_raster_get_band(newrast, 0);
+    if ( NULL == newband ) {
+        elog(NOTICE, "Could not modify band for new raster. Returning new "
+                "raster with the original band");
+
+        if (initexpr)
+            pfree(initexpr);
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Main computing loop (%d x %d)",
+            width, height);
+
+    if (initexpr != NULL) {
+    	/* Convert [rast.val] to [rast] */
+        newexpr = rtpg_strreplace(initexpr, "[rast.val]", "[rast]", NULL);
+        pfree(initexpr); initexpr=newexpr;
+
+        sprintf(place,"$1");
+        for (i = 0, j = 1; i < argkwcount; i++) {
+            len = 0;
+            newexpr = rtpg_strreplace(initexpr, argkw[i], place, &len);
+            pfree(initexpr); initexpr=newexpr;
+            if (len > 0) {
+                argtype[argcount] = argkwtypes[i];
+                argcount++;
+                argpos[i] = j++;
+
+                sprintf(place, "$%d", j);
+            }
+            else {
+                argpos[i] = 0;
+            }
+        }
+
+        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: initexpr = %s", initexpr);
+
+        /* define values */
+        values = (Datum *) palloc(sizeof(Datum) * argcount);
+        if (values == NULL) {
+
+            SPI_finish();
+
+            rt_raster_destroy(raster);
+            PG_FREE_IF_COPY(pgraster, 0);
+            rt_raster_destroy(newrast);
+
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not allocate memory for value parameters of prepared statement");
+            PG_RETURN_NULL();
+        }
+
+        /* define nulls */
+        nulls = (char *)palloc(argcount);
+        if (nulls == NULL) {
+
+            SPI_finish();
+
+            rt_raster_destroy(raster);
+            PG_FREE_IF_COPY(pgraster, 0);
+            rt_raster_destroy(newrast);
+
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not allocate memory for null parameters of prepared statement");
+            PG_RETURN_NULL();
+        }
+
+        /* Connect to SPI and prepare the expression */
+        ret = SPI_connect();
+        if (ret != SPI_OK_CONNECT) {
+
+            if (initexpr)
+                pfree(initexpr);
+            rt_raster_destroy(raster);
+            PG_FREE_IF_COPY(pgraster, 0);
+            rt_raster_destroy(newrast);
+
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not connect to the SPI manager");
+            PG_RETURN_NULL();
+        };
+
+        /* Type of all arguments is FLOAT8OID */
+        spi_plan = SPI_prepare(initexpr, argcount, argtype);
+
+        if (spi_plan == NULL) {
+
+            rt_raster_destroy(raster);
+            PG_FREE_IF_COPY(pgraster, 0);
+            rt_raster_destroy(newrast);
+
+            SPI_finish();
+
+            pfree(initexpr);
+
+            elog(ERROR, "RASTER_mapAlgebraExpr: Could not prepare expression");
+            PG_RETURN_NULL();
+        }
+    }
+
+    for (x = 0; x < width; x++) {
+        for(y = 0; y < height; y++) {
+            ret = rt_band_get_pixel(band, x, y, &r, NULL);
+
+            /**
+             * We compute a value only for the withdata value pixel since the
+             * nodata value has already been set by the first optimization
+             **/
+            if (ret == ES_NONE && FLT_NEQ(r, newnodatavalue)) {
+                if (skipcomputation == 0) {
+                    if (initexpr != NULL) {
+                        /* Reset the null arg flags. */
+                        memset(nulls, 'n', argcount);
+
+                        for (i = 0; i < argkwcount; i++) {
+                            idx = argpos[i];
+                            if (idx < 1) continue;
+                            idx--;
+
+                            if (i == kX ) {
+                                /* x is 0 based index, but SQL expects 1 based index */
+                                values[idx] = Int32GetDatum(x+1);
+                                nulls[idx] = ' ';
+                            }
+                            else if (i == kY) {
+                                /* y is 0 based index, but SQL expects 1 based index */
+                                values[idx] = Int32GetDatum(y+1);
+                                nulls[idx] = ' ';
+                            }
+                            else if (i == kVAL ) {
+                                values[idx] = Float8GetDatum(r);
+                                nulls[idx] = ' ';
+                            }
+
+                        }
+
+                        ret = SPI_execute_plan(spi_plan, values, nulls, FALSE, 0);
+                        if (ret != SPI_OK_SELECT || SPI_tuptable == NULL ||
+                                SPI_processed != 1) {
+                            if (SPI_tuptable)
+                                SPI_freetuptable(tuptable);
+
+                            SPI_freeplan(spi_plan);
+                            SPI_finish();
+
+                            pfree(values);
+                            pfree(nulls);
+                            pfree(initexpr);
+
+                            rt_raster_destroy(raster);
+                            PG_FREE_IF_COPY(pgraster, 0);
+                            rt_raster_destroy(newrast);
+
+                            elog(ERROR, "RASTER_mapAlgebraExpr: Error executing prepared plan");
+
+                            PG_RETURN_NULL();
+                        }
+
+                        tupdesc = SPI_tuptable->tupdesc;
+                        tuptable = SPI_tuptable;
+
+                        tuple = tuptable->vals[0];
+                        datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
+                        if ( SPI_result == SPI_ERROR_NOATTRIBUTE ) {
+                            POSTGIS_RT_DEBUGF(3, "Expression for pixel %d,%d (value %g) errored, skip setting", x+1,y+1,r);
+                            newval = newinitialvalue;
+                        }
+                        else if ( isnull ) {
+                            POSTGIS_RT_DEBUGF(3, "Expression for pixel %d,%d (value %g) evaluated to NULL, skip setting", x+1,y+1,r);
+                            newval = newinitialvalue;
+                        } else {
+                            newval = DatumGetFloat8(datum);
+                        }
+
+                        SPI_freetuptable(tuptable);
+                    }
+
+                    else
+                        newval = newinitialvalue;
+
+                    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: new value = %f",
+                        newval);
+                }
+
+
+                rt_band_set_pixel(newband, x, y, newval, NULL);
+            }
+
+        }
+    }
+
+    if (initexpr != NULL) {
+        SPI_freeplan(spi_plan);
+        SPI_finish();
+
+        pfree(values);
+        pfree(nulls);
+        pfree(initexpr);
+    }
+    else {
+        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: no SPI cleanup");
+    }
+
+
+    /* The newrast band has been modified */
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: raster modified, serializing it.");
+    /* Serialize created raster */
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    pgrtn = rt_raster_serialize(newrast);
+    rt_raster_destroy(newrast);
+    if (NULL == pgrtn)
+        PG_RETURN_NULL();
+
+    SET_VARSIZE(pgrtn, pgrtn->size);
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraExpr: raster serialized");
+
+
+    POSTGIS_RT_DEBUG(4, "RASTER_mapAlgebraExpr: returning raster");
+
+
+    PG_RETURN_POINTER(pgrtn);
+}
+
+/*
+ * One raster user function MapAlgebra.
+ */
+PG_FUNCTION_INFO_V1(RASTER_mapAlgebraFct);
+Datum RASTER_mapAlgebraFct(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_pgraster *pgrtn = NULL;
+    rt_raster raster = NULL;
+    rt_raster newrast = NULL;
+    rt_band band = NULL;
+    rt_band newband = NULL;
+    int x, y, nband, width, height;
+    double r;
+    double newnodatavalue = 0.0;
+    double newinitialvalue = 0.0;
+    double newval = 0.0;
+    rt_pixtype newpixeltype;
+    int ret = -1;
+    Oid oid;
+    FmgrInfo cbinfo;
+    FunctionCallInfoData cbdata;
+    Datum tmpnewval;
+    char * strFromText = NULL;
+    int k = 0;
+
+    POSTGIS_RT_DEBUG(2, "RASTER_mapAlgebraFct: STARTING...");
+
+    /* Check raster */
+    if (PG_ARGISNULL(0)) {
+        elog(WARNING, "Raster is NULL. Returning NULL");
+        PG_RETURN_NULL();
+    }
+
+
+    /* Deserialize raster */
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+    raster = rt_raster_deserialize(pgraster, FALSE);
+    if (NULL == raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_mapAlgebraFct: Could not deserialize raster");
+			PG_RETURN_NULL();    
+    }
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Getting arguments...");
+
+    /* Get the rest of the arguments */
+
+    if (PG_ARGISNULL(1))
+        nband = 1;
+    else
+        nband = PG_GETARG_INT32(1);
+
+    if (nband < 1)
+        nband = 1;
+    
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Creating new empty raster...");
+
+    /** 
+     * Create a new empty raster with having the same georeference as the
+     * provided raster
+     **/
+    width = rt_raster_get_width(raster);
+    height = rt_raster_get_height(raster);
+
+    newrast = rt_raster_new(width, height);
+
+    if ( NULL == newrast ) {
+
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        elog(ERROR, "RASTER_mapAlgebraFct: Could not create a new raster");
+        PG_RETURN_NULL();
+    }
+
+    rt_raster_set_scale(newrast, 
+            rt_raster_get_x_scale(raster),
+            rt_raster_get_y_scale(raster));
+
+    rt_raster_set_offsets(newrast,
+            rt_raster_get_x_offset(raster),
+            rt_raster_get_y_offset(raster));
+
+    rt_raster_set_skews(newrast,
+            rt_raster_get_x_skew(raster),
+            rt_raster_get_y_skew(raster));
+
+    rt_raster_set_srid(newrast, rt_raster_get_srid(raster));            
+
+
+    /**
+     * If this new raster is empty (width = 0 OR height = 0) then there is
+     * nothing to compute and we return it right now
+     **/
+    if (rt_raster_is_empty(newrast)) 
+    { 
+        elog(NOTICE, "Raster is empty. Returning an empty raster");
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: Getting raster band %d...", nband);
+
+    /**
+     * Check if the raster has the required band. Otherwise, return a raster
+     * without band
+     **/
+    if (!rt_raster_has_band(raster, nband - 1)) {
+        elog(NOTICE, "Raster does not have the required band. Returning a raster "
+            "without a band");
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    /* Get the raster band */
+    band = rt_raster_get_band(raster, nband - 1);
+    if ( NULL == band ) {
+        elog(NOTICE, "Could not get the required band. Returning a raster "
+            "without a band");
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    /*
+    * Get NODATA value
+    */
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Getting NODATA value for band...");
+
+    if (rt_band_get_hasnodata_flag(band)) {
+        rt_band_get_nodata(band, &newnodatavalue);
+    }
+
+    else {
+        newnodatavalue = rt_band_get_min_value(band);
+    }
+
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: NODATA value for band: %f",
+            newnodatavalue);
+    /**
+     * We set the initial value of the future band to nodata value. If nodata
+     * value is null, then the raster will be initialized to
+     * rt_band_get_min_value but all the values should be recomputed anyway
+     **/
+    newinitialvalue = newnodatavalue;
+
+    /**
+     * Set the new pixeltype
+     **/    
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Setting pixeltype...");
+
+    if (PG_ARGISNULL(2)) {
+        newpixeltype = rt_band_get_pixtype(band);
+    }
+
+    else {
+        strFromText = text_to_cstring(PG_GETARG_TEXT_P(2)); 
+        newpixeltype = rt_pixtype_index_from_name(strFromText);
+        pfree(strFromText);
+        if (newpixeltype == PT_END)
+            newpixeltype = rt_band_get_pixtype(band);
+    }
+    
+    if (newpixeltype == PT_END) {
+
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFct: Invalid pixeltype");
+        PG_RETURN_NULL();
+    }    
+    
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: Pixeltype set to %s",
+        rt_pixtype_name(newpixeltype));
+
+    /* Get the name of the callback user function for raster values */
+    if (PG_ARGISNULL(3)) {
+
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFct: Required function is missing. Returning NULL");
+        PG_RETURN_NULL();
+    }
+
+    oid = PG_GETARG_OID(3);
+    if (oid == InvalidOid) {
+
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFct: Got invalid function object id. Returning NULL");
+        PG_RETURN_NULL();
+    }
+
+    fmgr_info(oid, &cbinfo);
+
+    /* function cannot return set */
+    if (cbinfo.fn_retset) {
+
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFct: Function provided must return double precision not resultset");
+        PG_RETURN_NULL();
+    }
+    /* function should have correct # of args */
+    else if (cbinfo.fn_nargs < 2 || cbinfo.fn_nargs > 3) {
+
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFct: Function does not have two or three input parameters");
+        PG_RETURN_NULL();
+    }
+
+    if (cbinfo.fn_nargs == 2)
+        k = 1;
+    else 
+        k = 2;
+
+    if (func_volatile(oid) == 'v') {
+        elog(NOTICE, "Function provided is VOLATILE. Unless required and for best performance, function should be IMMUTABLE or STABLE");
+    }
+
+    /* prep function call data */
+#if POSTGIS_PGSQL_VERSION <= 90
+    InitFunctionCallInfoData(cbdata, &cbinfo, 2, InvalidOid, NULL);
+#else
+    InitFunctionCallInfoData(cbdata, &cbinfo, 2, InvalidOid, NULL, NULL);
+#endif
+    memset(cbdata.argnull, FALSE, sizeof(bool) * cbinfo.fn_nargs);
+    
+    /* check that the function isn't strict if the args are null. */
+    if (PG_ARGISNULL(4)) {
+        if (cbinfo.fn_strict) {
+
+            rt_raster_destroy(raster);
+            PG_FREE_IF_COPY(pgraster, 0);
+            rt_raster_destroy(newrast);
+
+            elog(ERROR, "RASTER_mapAlgebraFct: Strict callback functions cannot have null parameters");
+            PG_RETURN_NULL();
+        }
+
+        cbdata.arg[k] = (Datum)NULL;
+        cbdata.argnull[k] = TRUE;
+    }
+    else {
+        cbdata.arg[k] = PG_GETARG_DATUM(4);
+    }
+
+    /**
+     * Optimization: If the raster is only filled with nodata values return
+     * right now a raster filled with the nodatavalueexpr
+     * TODO: Call rt_band_check_isnodata instead?
+     **/
+    if (rt_band_get_isnodata_flag(band)) {
+
+        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Band is a nodata band, returning "
+                "a raster filled with nodata");
+
+        ret = rt_raster_generate_new_band(newrast, newpixeltype,
+                newinitialvalue, TRUE, newnodatavalue, 0);
+
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);               
+    }
+
+
+    /**
+     * Create the raster receiving all the computed values. Initialize it to the
+     * new initial value
+     **/
+    ret = rt_raster_generate_new_band(newrast, newpixeltype,
+            newinitialvalue, TRUE, newnodatavalue, 0);
+
+    /* Get the new raster band */
+    newband = rt_raster_get_band(newrast, 0);
+    if ( NULL == newband ) {
+        elog(NOTICE, "Could not modify band for new raster. Returning new "
+            "raster with the original band");
+
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFct: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);      
+    }
+    
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: Main computing loop (%d x %d)",
+            width, height);
+
+    for (x = 0; x < width; x++) {
+        for(y = 0; y < height; y++) {
+            ret = rt_band_get_pixel(band, x, y, &r, NULL);
+
+            /**
+             * We compute a value only for the withdata value pixel since the
+             * nodata value has already been set by the first optimization
+             **/
+            if (ret == ES_NONE) {
+                if (FLT_EQ(r, newnodatavalue)) {
+                    if (cbinfo.fn_strict) {
+                        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: Strict callbacks cannot accept NULL arguments, skipping NODATA cell.");
+                        continue;
+                    }
+                    cbdata.argnull[0] = TRUE;
+                    cbdata.arg[0] = (Datum)NULL;
+                }
+                else {
+                    cbdata.argnull[0] = FALSE;
+                    cbdata.arg[0] = Float8GetDatum(r);
+                }
+
+                /* Add pixel positions if callback has proper # of args */
+                if (cbinfo.fn_nargs == 3) {
+                    Datum d[2];
+                    ArrayType *a;
+
+                    d[0] = Int32GetDatum(x+1);
+                    d[1] = Int32GetDatum(y+1);
+
+                    a = construct_array(d, 2, INT4OID, sizeof(int32), true, 'i');
+
+                    cbdata.argnull[1] = FALSE;
+                    cbdata.arg[1] = PointerGetDatum(a);
+                }
+
+                POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: (%dx%d), r = %f",
+                    x, y, r);
+                   
+                tmpnewval = FunctionCallInvoke(&cbdata);
+
+                if (cbdata.isnull) {
+                    newval = newnodatavalue;
+                }
+                else {
+                    newval = DatumGetFloat8(tmpnewval);
+                }
+
+                POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFct: new value = %f", 
+                    newval);
+                
+                rt_band_set_pixel(newband, x, y, newval, NULL);
+            }
+
+        }
+    }
+    
+    /* The newrast band has been modified */
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: raster modified, serializing it.");
+    /* Serialize created raster */
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    pgrtn = rt_raster_serialize(newrast);
+    rt_raster_destroy(newrast);
+    if (NULL == pgrtn)
+        PG_RETURN_NULL();
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFct: raster serialized");
+
+    POSTGIS_RT_DEBUG(4, "RASTER_mapAlgebraFct: returning raster");
+    
+    SET_VARSIZE(pgrtn, pgrtn->size);    
+    PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * One raster neighborhood MapAlgebra
+ */
+PG_FUNCTION_INFO_V1(RASTER_mapAlgebraFctNgb);
+Datum RASTER_mapAlgebraFctNgb(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_pgraster *pgrtn = NULL;
+    rt_raster raster = NULL;
+    rt_raster newrast = NULL;
+    rt_band band = NULL;
+    rt_band newband = NULL;
+    int x, y, nband, width, height, ngbwidth, ngbheight, winwidth, winheight, u, v, nIndex, nNullItems;
+    double r, rpix;
+    double newnodatavalue = 0.0;
+    double newinitialvalue = 0.0;
+    double newval = 0.0;
+    rt_pixtype newpixeltype;
+    int ret = -1;
+    Oid oid;
+    FmgrInfo cbinfo;
+    FunctionCallInfoData cbdata;
+    Datum tmpnewval;
+    ArrayType * neighborDatum;
+    char * strFromText = NULL;
+    text * txtNodataMode = NULL;
+    text * txtCallbackParam = NULL;
+    int intReplace = 0;
+    float fltReplace = 0;
+    bool valuereplace = false, pixelreplace, nNodataOnly = true, nNullSkip = false;
+    Datum * neighborData = NULL;
+    bool * neighborNulls = NULL;
+    int neighborDims[2];
+    int neighborLbs[2];
+    int16 typlen;
+    bool typbyval;
+    char typalign;
+
+    POSTGIS_RT_DEBUG(2, "RASTER_mapAlgebraFctNgb: STARTING...");
+
+    /* Check raster */
+    if (PG_ARGISNULL(0)) {
+        elog(WARNING, "Raster is NULL. Returning NULL");
+        PG_RETURN_NULL();
+    }
+
+
+    /* Deserialize raster */
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+    raster = rt_raster_deserialize(pgraster, FALSE);
+    if (NULL == raster)
+    {
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not deserialize raster");
+			PG_RETURN_NULL();    
+    }
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Getting arguments...");
+
+    /* Get the rest of the arguments */
+
+    if (PG_ARGISNULL(1))
+        nband = 1;
+    else
+        nband = PG_GETARG_INT32(1);
+
+    if (nband < 1)
+        nband = 1;
+    
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Creating new empty raster...");
+
+    /** 
+     * Create a new empty raster with having the same georeference as the
+     * provided raster
+     **/
+    width = rt_raster_get_width(raster);
+    height = rt_raster_get_height(raster);
+
+    newrast = rt_raster_new(width, height);
+
+    if ( NULL == newrast ) {
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not create a new raster");
+        PG_RETURN_NULL();
+    }
+
+    rt_raster_set_scale(newrast, 
+            rt_raster_get_x_scale(raster),
+            rt_raster_get_y_scale(raster));
+
+    rt_raster_set_offsets(newrast,
+            rt_raster_get_x_offset(raster),
+            rt_raster_get_y_offset(raster));
+
+    rt_raster_set_skews(newrast,
+            rt_raster_get_x_skew(raster),
+            rt_raster_get_y_skew(raster));
+
+    rt_raster_set_srid(newrast, rt_raster_get_srid(raster));            
+
+
+    /**
+     * If this new raster is empty (width = 0 OR height = 0) then there is
+     * nothing to compute and we return it right now
+     **/
+    if (rt_raster_is_empty(newrast)) 
+    { 
+        elog(NOTICE, "Raster is empty. Returning an empty raster");
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: Getting raster band %d...", nband);
+
+    /**
+     * Check if the raster has the required band. Otherwise, return a raster
+     * without band
+     **/
+    if (!rt_raster_has_band(raster, nband - 1)) {
+        elog(NOTICE, "Raster does not have the required band. Returning a raster "
+            "without a band");
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    /* Get the raster band */
+    band = rt_raster_get_band(raster, nband - 1);
+    if ( NULL == band ) {
+        elog(NOTICE, "Could not get the required band. Returning a raster "
+            "without a band");
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);
+    }
+
+    /*
+    * Get NODATA value
+    */
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Getting NODATA value for band...");
+
+    if (rt_band_get_hasnodata_flag(band)) {
+        rt_band_get_nodata(band, &newnodatavalue);
+    }
+
+    else {
+        newnodatavalue = rt_band_get_min_value(band);
+    }
+
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: NODATA value for band: %f",
+            newnodatavalue);
+    /**
+     * We set the initial value of the future band to nodata value. If nodata
+     * value is null, then the raster will be initialized to
+     * rt_band_get_min_value but all the values should be recomputed anyway
+     **/
+    newinitialvalue = newnodatavalue;
+
+    /**
+     * Set the new pixeltype
+     **/    
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Setting pixeltype...");
+
+    if (PG_ARGISNULL(2)) {
+        newpixeltype = rt_band_get_pixtype(band);
+    }
+
+    else {
+        strFromText = text_to_cstring(PG_GETARG_TEXT_P(2)); 
+        POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: Pixeltype parameter: %s", strFromText);
+        newpixeltype = rt_pixtype_index_from_name(strFromText);
+        pfree(strFromText);
+        if (newpixeltype == PT_END)
+            newpixeltype = rt_band_get_pixtype(band);
+    }
+    
+    if (newpixeltype == PT_END) {
+
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFctNgb: Invalid pixeltype");
+        PG_RETURN_NULL();
+    }    
+    
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: Pixeltype set to %s (%d)",
+        rt_pixtype_name(newpixeltype), newpixeltype);
+
+    /* Get the name of the callback userfunction */
+    if (PG_ARGISNULL(5)) {
+
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFctNgb: Required function is missing");
+        PG_RETURN_NULL();
+    }
+
+    oid = PG_GETARG_OID(5);
+    if (oid == InvalidOid) {
+
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFctNgb: Got invalid function object id");
+        PG_RETURN_NULL();
+    }
+
+    fmgr_info(oid, &cbinfo);
+
+    /* function cannot return set */
+    if (cbinfo.fn_retset) {
+
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFctNgb: Function provided must return double precision not resultset");
+        PG_RETURN_NULL();
+    }
+    /* function should have correct # of args */
+    else if (cbinfo.fn_nargs != 3) {
+
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+        rt_raster_destroy(newrast);
+
+        elog(ERROR, "RASTER_mapAlgebraFctNgb: Function does not have three input parameters");
+        PG_RETURN_NULL();
+    }
+
+    if (func_volatile(oid) == 'v') {
+        elog(NOTICE, "Function provided is VOLATILE. Unless required and for best performance, function should be IMMUTABLE or STABLE");
+    }
+
+    /* prep function call data */
+#if POSTGIS_PGSQL_VERSION <= 90
+    InitFunctionCallInfoData(cbdata, &cbinfo, 3, InvalidOid, NULL);
+#else
+    InitFunctionCallInfoData(cbdata, &cbinfo, 3, InvalidOid, NULL, NULL);
+#endif
+    memset(cbdata.argnull, FALSE, sizeof(bool) * 3);
+
+    /* check that the function isn't strict if the args are null. */
+    if (PG_ARGISNULL(7)) {
+        if (cbinfo.fn_strict) {
+
+            rt_raster_destroy(raster);
+            PG_FREE_IF_COPY(pgraster, 0);
+            rt_raster_destroy(newrast);
+
+            elog(ERROR, "RASTER_mapAlgebraFctNgb: Strict callback functions cannot have NULL parameters");
+            PG_RETURN_NULL();
+        }
+
+        cbdata.arg[2] = (Datum)NULL;
+        cbdata.argnull[2] = TRUE;
+    }
+    else {
+        cbdata.arg[2] = PG_GETARG_DATUM(7);
+    }
+
+    /**
+     * Optimization: If the raster is only filled with nodata values return
+     * right now a raster filled with the nodatavalueexpr
+     * TODO: Call rt_band_check_isnodata instead?
+     **/
+    if (rt_band_get_isnodata_flag(band)) {
+
+        POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: Band is a nodata band, returning "
+                "a raster filled with nodata");
+
+        rt_raster_generate_new_band(newrast, newpixeltype,
+                newinitialvalue, TRUE, newnodatavalue, 0);
+
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);               
+    }
+
+
+    /**
+     * Create the raster receiving all the computed values. Initialize it to the
+     * new initial value
+     **/
+    rt_raster_generate_new_band(newrast, newpixeltype,
+            newinitialvalue, TRUE, newnodatavalue, 0);
+
+    /* Get the new raster band */
+    newband = rt_raster_get_band(newrast, 0);
+    if ( NULL == newband ) {
+        elog(NOTICE, "Could not modify band for new raster. Returning new "
+            "raster with the original band");
+
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);      
+    }
+
+    /* Get the width of the neighborhood */
+    if (PG_ARGISNULL(3) || PG_GETARG_INT32(3) <= 0) {
+        elog(NOTICE, "Neighborhood width is NULL or <= 0. Returning new "
+            "raster with the original band");
+
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);      
+    }
+
+    ngbwidth = PG_GETARG_INT32(3);
+    winwidth = ngbwidth * 2 + 1;
+
+    /* Get the height of the neighborhood */
+    if (PG_ARGISNULL(4) || PG_GETARG_INT32(4) <= 0) {
+        elog(NOTICE, "Neighborhood height is NULL or <= 0. Returning new "
+            "raster with the original band");
+
+        rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+
+        /* Serialize created raster */
+        pgrtn = rt_raster_serialize(newrast);
+        rt_raster_destroy(newrast);
+        if (NULL == pgrtn) {
+            elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
+            PG_RETURN_NULL();
+        }
+
+        SET_VARSIZE(pgrtn, pgrtn->size);
+        PG_RETURN_POINTER(pgrtn);      
+    }
+
+    ngbheight = PG_GETARG_INT32(4);
+    winheight = ngbheight * 2 + 1;
+
+    /* Get the type of NODATA behavior for the neighborhoods. */
+    if (PG_ARGISNULL(6)) {
+        elog(NOTICE, "Neighborhood NODATA behavior defaulting to 'ignore'");
+        txtNodataMode = cstring_to_text("ignore");
+    }
+    else {
+        txtNodataMode = PG_GETARG_TEXT_P(6);
+    }
+
+    txtCallbackParam = (text*)palloc(VARSIZE(txtNodataMode));
+    SET_VARSIZE(txtCallbackParam, VARSIZE(txtNodataMode));
+    memcpy((void *)VARDATA(txtCallbackParam), (void *)VARDATA(txtNodataMode), VARSIZE(txtNodataMode) - VARHDRSZ);
+
+    /* pass the nodata mode into the user function */
+    cbdata.arg[1] = CStringGetDatum(txtCallbackParam);
+
+    strFromText = text_to_cstring(txtNodataMode);
+    strFromText = rtpg_strtoupper(strFromText);
+
+    if (strcmp(strFromText, "VALUE") == 0)
+        valuereplace = true;
+    else if (strcmp(strFromText, "IGNORE") != 0 && strcmp(strFromText, "NULL") != 0) {
+        /* if the text is not "IGNORE" or "NULL", it may be a numerical value */
+        if (sscanf(strFromText, "%d", &intReplace) <= 0 && sscanf(strFromText, "%f", &fltReplace) <= 0) {
+            /* the value is NOT an integer NOR a floating point */
+            elog(NOTICE, "Neighborhood NODATA mode is not recognized. Must be one of 'value', 'ignore', "
+                "'NULL', or a numeric value. Returning new raster with the original band");
+
+            /* clean up the nodatamode string */
+            pfree(txtCallbackParam);
+            pfree(strFromText);
+
+            rt_raster_destroy(raster);
+            PG_FREE_IF_COPY(pgraster, 0);
+
+            /* Serialize created raster */
+            pgrtn = rt_raster_serialize(newrast);
+            rt_raster_destroy(newrast);
+            if (NULL == pgrtn) {
+                elog(ERROR, "RASTER_mapAlgebraFctNgb: Could not serialize raster");
+                PG_RETURN_NULL();
+            }
+
+            SET_VARSIZE(pgrtn, pgrtn->size);
+            PG_RETURN_POINTER(pgrtn);      
+        }
+    }
+    else if (strcmp(strFromText, "NULL") == 0) {
+        /* this setting means that the neighborhood should be skipped if any of the values are null */
+        nNullSkip = true;
+    }
+   
+    POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: Main computing loop (%d x %d)",
+            width, height);
+
+    /* Allocate room for the neighborhood. */
+    neighborData = (Datum *)palloc(winwidth * winheight * sizeof(Datum));
+    neighborNulls = (bool *)palloc(winwidth * winheight * sizeof(bool));
+
+    /* The dimensions of the neighborhood array, for creating a multi-dimensional array. */
+    neighborDims[0] = winwidth;
+    neighborDims[1] = winheight;
+
+    /* The lower bounds for the new multi-dimensional array. */
+    neighborLbs[0] = 1;
+    neighborLbs[1] = 1;
+
+    /* Get information about the type of item in the multi-dimensional array (float8). */
+    get_typlenbyvalalign(FLOAT8OID, &typlen, &typbyval, &typalign);
+
+    for (x = 0 + ngbwidth; x < width - ngbwidth; x++) {
+        for(y = 0 + ngbheight; y < height - ngbheight; y++) {
+            /* populate an array with the pixel values in the neighborhood */
+            nIndex = 0;
+            nNullItems = 0;
+            nNodataOnly = true;
+            pixelreplace = false;
+            if (valuereplace) {
+                ret = rt_band_get_pixel(band, x, y, &rpix, NULL);
+                if (ret == ES_NONE && FLT_NEQ(rpix, newnodatavalue)) {
+                    pixelreplace = true;
+                }
+            }
+            for (u = x - ngbwidth; u <= x + ngbwidth; u++) {
+                for (v = y - ngbheight; v <= y + ngbheight; v++) {
+                    ret = rt_band_get_pixel(band, u, v, &r, NULL);
+                    if (ret == ES_NONE) {
+                        if (FLT_NEQ(r, newnodatavalue)) {
+                            /* If the pixel value for this neighbor cell is not NODATA */
+                            neighborData[nIndex] = Float8GetDatum((double)r);
+                            neighborNulls[nIndex] = false;
+                            nNodataOnly = false;
+                        }
+                        else {
+                            /* If the pixel value for this neighbor cell is NODATA */
+                            if (valuereplace && pixelreplace) {
+                                /* Replace the NODATA value with the currently processing pixel. */
+                                neighborData[nIndex] = Float8GetDatum((double)rpix);
+                                neighborNulls[nIndex] = false;
+                                /* do not increment nNullItems, since the user requested that the  */
+                                /* neighborhood replace NODATA values with the central pixel value */
+                            }
+                            else {
+                                neighborData[nIndex] = PointerGetDatum(NULL);
+                                neighborNulls[nIndex] = true;
+                                nNullItems++;
+                            }
+                        }
+                    }
+                    else {
+                        /* Fill this will NULL if we can't read the raster pixel. */
+                        neighborData[nIndex] = PointerGetDatum(NULL);
+                        neighborNulls[nIndex] = true;
+                        nNullItems++;
+                    }
+                    /* Next neighbor position */
+                    nIndex++;
+                }
+            }
+
+            /**
+             * We compute a value only for the withdata value neighborhood since the
+             * nodata value has already been set by the first optimization
+             **/
+            if (!(nNodataOnly ||                     /* neighborhood only contains NODATA -- OR -- */
+                (nNullSkip && nNullItems > 0) ||     /* neighborhood should skip any NODATA cells, and a NODATA cell was detected -- OR -- */
+                (valuereplace && nNullItems > 0))) { /* neighborhood should replace NODATA cells with the central pixel value, and a NODATA cell was detected */
+                POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: (%dx%d), %dx%d neighborhood",
+                    x, y, winwidth, winheight);
+
+                neighborDatum = construct_md_array((void *)neighborData, neighborNulls, 2, neighborDims, neighborLbs, 
+                    FLOAT8OID, typlen, typbyval, typalign);
+
+                /* Assign the neighbor matrix as the first argument to the user function */
+                cbdata.arg[0] = PointerGetDatum(neighborDatum);
+
+                /* Invoke the user function */
+                tmpnewval = FunctionCallInvoke(&cbdata);
+
+                /* Get the return value of the user function */
+                if (cbdata.isnull) {
+                    newval = newnodatavalue;
+                }
+                else {
+                    newval = DatumGetFloat8(tmpnewval);
+                }
+
+                POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraFctNgb: new value = %f", 
+                    newval);
+                
+                rt_band_set_pixel(newband, x, y, newval, NULL);
+            }
+
+            /* reset the number of null items in the neighborhood */
+            nNullItems = 0;
+        }
+    }
+
+
+    /* clean up */
+    pfree(neighborNulls);
+    pfree(neighborData);
+    pfree(strFromText);
+    pfree(txtCallbackParam);
+    
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    /* The newrast band has been modified */
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: raster modified, serializing it.");
+    /* Serialize created raster */
+
+    pgrtn = rt_raster_serialize(newrast);
+    rt_raster_destroy(newrast);
+    if (NULL == pgrtn)
+        PG_RETURN_NULL();
+
+    POSTGIS_RT_DEBUG(3, "RASTER_mapAlgebraFctNgb: raster serialized");
+    POSTGIS_RT_DEBUG(4, "RASTER_mapAlgebraFctNgb: returning raster");
+    
+    SET_VARSIZE(pgrtn, pgrtn->size);    
+    PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Two raster MapAlgebra
+ */
+PG_FUNCTION_INFO_V1(RASTER_mapAlgebra2);
+Datum RASTER_mapAlgebra2(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_pgraster *pgrtn;
+	rt_raster rast[2] = {NULL};
+	int _isempty[2] = {0};
+	uint32_t bandindex[2] = {0};
+	rt_raster _rast[2] = {NULL};
+	rt_band _band[2] = {NULL};
+	int _hasnodata[2] = {0};
+	double _nodataval[2] = {0};
+	double _offset[4] = {0.};
+	double _rastoffset[2][4] = {{0.}};
+	int _haspixel[2] = {0};
+	double _pixel[2] = {0};
+	int _pos[2][2] = {{0}};
+	uint16_t _dim[2][2] = {{0}};
+
+	char *pixtypename = NULL;
+	rt_pixtype pixtype = PT_END;
+	char *extenttypename = NULL;
+	rt_extenttype extenttype = ET_INTERSECTION;
+
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	uint16_t dim[2] = {0};
+	int haspixel = 0;
+	double pixel = 0.;
+	double nodataval = 0;
+	double gt[6] = {0.};
+
+	Oid calltype = InvalidOid;
+
+	const int spi_count = 3;
+	uint16_t spi_exprpos[3] = {4, 7, 8};
+	uint32_t spi_argcount[3] = {0};
+	char *expr = NULL;
+	char *sql = NULL;
+	SPIPlanPtr spi_plan[3] = {NULL};
+	uint16_t spi_empty = 0;
+	Oid *argtype = NULL;
+	const int argkwcount = 8;
+	uint8_t argpos[3][8] = {{0}};
+	char *argkw[] = {"[rast1.x]", "[rast1.y]", "[rast1.val]", "[rast1]", "[rast2.x]", "[rast2.y]", "[rast2.val]", "[rast2]"};
+	Datum values[argkwcount];
+	bool nulls[argkwcount];
+	TupleDesc tupdesc;
+	SPITupleTable *tuptable = NULL;
+	HeapTuple tuple;
+	Datum datum;
+	bool isnull = FALSE;
+	int hasargval[3] = {0};
+	double argval[3] = {0.};
+	int hasnodatanodataval = 0;
+	double nodatanodataval = 0;
+	int isnodata = 0;
+
+	Oid ufc_noid = InvalidOid;
+	FmgrInfo ufl_info;
+	FunctionCallInfoData ufc_info;
+	int ufc_nullcount = 0;
+
+	int idx = 0;
+	uint32_t i = 0;
+	uint32_t j = 0;
+	uint32_t k = 0;
+	uint32_t x = 0;
+	uint32_t y = 0;
+	int _x = 0;
+	int _y = 0;
+	int err;
+	int aligned = 0;
+	int len = 0;
+
+	POSTGIS_RT_DEBUG(3, "Starting RASTER_mapAlgebra2");
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		if (!PG_ARGISNULL(j)) {
+			pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+			pgrastpos[i] = j;
+			j++;
+
+			/* raster */
+			rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+			if (!rast[i]) {
+				for (k = 0; k <= i; k++) {
+					if (k < i && rast[k] != NULL)
+						rt_raster_destroy(rast[k]);
+					if (pgrastpos[k] != -1)
+						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				elog(ERROR, "RASTER_mapAlgebra2: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+				PG_RETURN_NULL();
+			}
+
+			/* empty */
+			_isempty[i] = rt_raster_is_empty(rast[i]);
+
+			/* band index */
+			if (!PG_ARGISNULL(j)) {
+				bandindex[i] = PG_GETARG_INT32(j);
+			}
+			j++;
+		}
+		else {
+			_isempty[i] = 1;
+			j += 2;
+		}
+
+		POSTGIS_RT_DEBUGF(3, "_isempty[%d] = %d", i, _isempty[i]);
+	}
+
+	/* both rasters are NULL */
+	if (rast[0] == NULL && rast[1] == NULL) {
+		elog(NOTICE, "The two rasters provided are NULL.  Returning NULL");
+		for (k = 0; k < set_count; k++) {
+			if (pgrastpos[k] != -1)
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* both rasters are empty */
+	if (_isempty[0] && _isempty[1]) {
+		elog(NOTICE, "The two rasters provided are empty.  Returning empty raster");
+
+		raster = rt_raster_new(0, 0);
+		if (raster == NULL) {
+			for (k = 0; k < set_count; k++) {
+				if (rast[k] != NULL)
+					rt_raster_destroy(rast[k]);
+				if (pgrastpos[k] != -1)
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_mapAlgebra2: Could not create empty raster");
+			PG_RETURN_NULL();
+		}
+		rt_raster_set_scale(raster, 0, 0);
+
+		pgrtn = rt_raster_serialize(raster);
+		rt_raster_destroy(raster);
+		if (!pgrtn)
+			PG_RETURN_NULL();
+
+		SET_VARSIZE(pgrtn, pgrtn->size);
+		PG_RETURN_POINTER(pgrtn);
+	}
+
+	/* replace the empty or NULL raster with one matching the other */
+	if (
+		(rast[0] == NULL || _isempty[0]) ||
+		(rast[1] == NULL || _isempty[1])
+	) {
+		/* first raster is empty */
+		if (rast[0] == NULL || _isempty[0]) {
+			i = 0;
+			j = 1;
+		}
+		/* second raster is empty */
+		else {
+			i = 1;
+			j = 0;
+		}
+
+		_rast[j] = rast[j];
+
+		/* raster is empty, destroy it */
+		if (_rast[i] != NULL)
+			rt_raster_destroy(_rast[i]);
+
+		_dim[i][0] = rt_raster_get_width(_rast[j]);
+		_dim[i][1] = rt_raster_get_height(_rast[j]);
+		_dim[j][0] = rt_raster_get_width(_rast[j]);
+		_dim[j][1] = rt_raster_get_height(_rast[j]);
+
+		_rast[i] = rt_raster_new(
+			_dim[j][0],
+			_dim[j][1]
+		);
+		if (_rast[i] == NULL) {
+			rt_raster_destroy(_rast[j]);
+			for (k = 0; k < set_count; k++)	{
+				if (pgrastpos[k] != -1)
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_mapAlgebra2: Could not create NODATA raster");
+			PG_RETURN_NULL();
+		}
+		rt_raster_set_srid(_rast[i], rt_raster_get_srid(_rast[j]));
+
+		rt_raster_get_geotransform_matrix(_rast[j], gt);
+		rt_raster_set_geotransform_matrix(_rast[i], gt);
+	}
+	else {
+		_rast[0] = rast[0];
+		_dim[0][0] = rt_raster_get_width(_rast[0]);
+		_dim[0][1] = rt_raster_get_height(_rast[0]);
+
+		_rast[1] = rast[1];
+		_dim[1][0] = rt_raster_get_width(_rast[1]);
+		_dim[1][1] = rt_raster_get_height(_rast[1]);
+	}
+
+	/* SRID must match */
+	/*
+	if (rt_raster_get_srid(_rast[0]) != rt_raster_get_srid(_rast[1])) {
+		elog(NOTICE, "The two rasters provided have different SRIDs.  Returning NULL");
+		for (k = 0; k < set_count; k++) {
+			if (_rast[k] != NULL)
+				rt_raster_destroy(_rast[k]);
+			if (pgrastpos[k] != -1)
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+	*/
+
+	/* same alignment */
+	if (rt_raster_same_alignment(_rast[0], _rast[1], &aligned, NULL) != ES_NONE) {
+		for (k = 0; k < set_count; k++) {
+			if (_rast[k] != NULL)
+				rt_raster_destroy(_rast[k]);
+			if (pgrastpos[k] != -1)
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "RASTER_mapAlgebra2: Could not test for alignment on the two rasters");
+		PG_RETURN_NULL();
+	}
+	if (!aligned) {
+		elog(NOTICE, "The two rasters provided do not have the same alignment.  Returning NULL");
+		for (k = 0; k < set_count; k++) {
+			if (_rast[k] != NULL)
+				rt_raster_destroy(_rast[k]);
+			if (pgrastpos[k] != -1)
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* pixel type */
+	if (!PG_ARGISNULL(5)) {
+		pixtypename = text_to_cstring(PG_GETARG_TEXT_P(5));
+		/* Get the pixel type index */
+		pixtype = rt_pixtype_index_from_name(pixtypename);
+		if (pixtype == PT_END ) {
+			for (k = 0; k < set_count; k++) {
+				if (_rast[k] != NULL)
+					rt_raster_destroy(_rast[k]);
+				if (pgrastpos[k] != -1)
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_mapAlgebra2: Invalid pixel type: %s", pixtypename);
+			PG_RETURN_NULL();
+		}
+	}
+
+	/* extent type */
+	if (!PG_ARGISNULL(6)) {
+		extenttypename = rtpg_strtoupper(rtpg_trim(text_to_cstring(PG_GETARG_TEXT_P(6))));
+		extenttype = rt_util_extent_type(extenttypename);
+	}
+	POSTGIS_RT_DEBUGF(3, "extenttype: %d %s", extenttype, extenttypename);
+
+	/* computed raster from extent type */
+	err = rt_raster_from_two_rasters(
+		_rast[0], _rast[1],
+		extenttype,
+		&raster, _offset
+	);
+	if (err != ES_NONE) {
+		for (k = 0; k < set_count; k++) {
+			if (_rast[k] != NULL)
+				rt_raster_destroy(_rast[k]);
+			if (pgrastpos[k] != -1)
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "RASTER_mapAlgebra2: Could not get output raster of correct extent");
+		PG_RETURN_NULL();
+	}
+
+	/* copy offsets */
+	_rastoffset[0][0] = _offset[0];
+	_rastoffset[0][1] = _offset[1];
+	_rastoffset[1][0] = _offset[2];
+	_rastoffset[1][1] = _offset[3];
+
+	/* get output raster dimensions */
+	dim[0] = rt_raster_get_width(raster);
+	dim[1] = rt_raster_get_height(raster);
+
+	i = 2;
+	/* handle special cases for extent */
+	switch (extenttype) {
+		case ET_FIRST:
+			i = 0;
+		case ET_SECOND:
+			if (i > 1)
+				i = 1;
+
+			if (
+				_isempty[i] && (
+					(extenttype == ET_FIRST && i == 0) ||
+					(extenttype == ET_SECOND && i == 1)
+				)
+			) {
+				elog(NOTICE, "The %s raster is NULL.  Returning NULL", (i != 1 ? "FIRST" : "SECOND"));
+				for (k = 0; k < set_count; k++) {
+					if (_rast[k] != NULL)
+						rt_raster_destroy(_rast[k]);
+					if (pgrastpos[k] != -1)
+						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				rt_raster_destroy(raster);
+				PG_RETURN_NULL();
+			}
+
+			/* specified band not found */
+			if (!rt_raster_has_band(_rast[i], bandindex[i] - 1)) {
+				elog(NOTICE, "The %s raster does not have the band at index %d.  Returning no band raster of correct extent",
+					(i != 1 ? "FIRST" : "SECOND"), bandindex[i]
+				);
+
+				for (k = 0; k < set_count; k++) {
+					if (_rast[k] != NULL)
+						rt_raster_destroy(_rast[k]);
+					if (pgrastpos[k] != -1)
+						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+
+				pgrtn = rt_raster_serialize(raster);
+				rt_raster_destroy(raster);
+				if (!pgrtn) PG_RETURN_NULL();
+
+				SET_VARSIZE(pgrtn, pgrtn->size);
+				PG_RETURN_POINTER(pgrtn);
+			}
+			break;
+		case ET_UNION:
+			break;
+		case ET_INTERSECTION:
+			/* no intersection */
+			if (
+				_isempty[0] || _isempty[1] ||
+				!dim[0] || !dim[1]
+			) {
+				elog(NOTICE, "The two rasters provided have no intersection.  Returning no band raster");
+
+				/* raster has dimension, replace with no band raster */
+				if (dim[0] || dim[1]) {
+					rt_raster_destroy(raster);
+
+					raster = rt_raster_new(0, 0);
+					if (raster == NULL) {
+						for (k = 0; k < set_count; k++) {
+							if (_rast[k] != NULL)
+								rt_raster_destroy(_rast[k]);
+							if (pgrastpos[k] != -1)
+								PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+						}
+						elog(ERROR, "RASTER_mapAlgebra2: Could not create no band raster");
+						PG_RETURN_NULL();
+					}
+
+					rt_raster_set_scale(raster, 0, 0);
+					rt_raster_set_srid(raster, rt_raster_get_srid(_rast[0]));
+				}
+
+				for (k = 0; k < set_count; k++) {
+					if (_rast[k] != NULL)
+						rt_raster_destroy(_rast[k]);
+					if (pgrastpos[k] != -1)
+						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+
+				pgrtn = rt_raster_serialize(raster);
+				rt_raster_destroy(raster);
+				if (!pgrtn) PG_RETURN_NULL();
+
+				SET_VARSIZE(pgrtn, pgrtn->size);
+				PG_RETURN_POINTER(pgrtn);
+			}
+			break;
+		case ET_LAST:
+		case ET_CUSTOM:
+			for (k = 0; k < set_count; k++) {
+				if (_rast[k] != NULL)
+					rt_raster_destroy(_rast[k]);
+				if (pgrastpos[k] != -1)
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_mapAlgebra2: ET_LAST and ET_CUSTOM are not implemented");
+			PG_RETURN_NULL();
+			break;
+	}
+
+	/* both rasters do not have specified bands */
+	if (
+		(!_isempty[0] && !rt_raster_has_band(_rast[0], bandindex[0] - 1)) &&
+		(!_isempty[1] && !rt_raster_has_band(_rast[1], bandindex[1] - 1))
+	) {
+		elog(NOTICE, "The two rasters provided do not have the respectively specified band indices.  Returning no band raster of correct extent");
+
+		for (k = 0; k < set_count; k++) {
+			if (_rast[k] != NULL)
+				rt_raster_destroy(_rast[k]);
+			if (pgrastpos[k] != -1)
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+
+		pgrtn = rt_raster_serialize(raster);
+		rt_raster_destroy(raster);
+		if (!pgrtn) PG_RETURN_NULL();
+
+		SET_VARSIZE(pgrtn, pgrtn->size);
+		PG_RETURN_POINTER(pgrtn);
+	}
+
+	/* get bands */
+	for (i = 0; i < set_count; i++) {
+		if (_isempty[i] || !rt_raster_has_band(_rast[i], bandindex[i] - 1)) {
+			_hasnodata[i] = 1;
+			_nodataval[i] = 0;
+
+			continue;
+		}
+
+		_band[i] = rt_raster_get_band(_rast[i], bandindex[i] - 1);
+		if (_band[i] == NULL) {
+			for (k = 0; k < set_count; k++) {
+				if (_rast[k] != NULL)
+					rt_raster_destroy(_rast[k]);
+				if (pgrastpos[k] != -1)
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			rt_raster_destroy(raster);
+			elog(ERROR, "RASTER_mapAlgebra2: Could not get band %d of the %s raster",
+				bandindex[i],
+				(i < 1 ? "FIRST" : "SECOND")
+			);
+			PG_RETURN_NULL();
+		}
+
+		_hasnodata[i] = rt_band_get_hasnodata_flag(_band[i]);
+		if (_hasnodata[i])
+			rt_band_get_nodata(_band[i], &(_nodataval[i]));
+	}
+
+	/* pixtype is PT_END, get pixtype based upon extent */
+	if (pixtype == PT_END) {
+		if ((extenttype == ET_SECOND && !_isempty[1]) || _isempty[0])
+			pixtype = rt_band_get_pixtype(_band[1]);
+		else
+			pixtype = rt_band_get_pixtype(_band[0]);
+	}
+
+	/* nodata value for new band */
+	if (extenttype == ET_SECOND && !_isempty[1] && _hasnodata[1]) {
+		nodataval = _nodataval[1];
+	}
+	else if (!_isempty[0] && _hasnodata[0]) {
+		nodataval = _nodataval[0];
+	}
+	else if (!_isempty[1] && _hasnodata[1]) {
+		nodataval = _nodataval[1];
+	}
+	else {
+		elog(NOTICE, "Neither raster provided has a NODATA value for the specified band indices.  NODATA value set to minimum possible for %s", rt_pixtype_name(pixtype));
+		nodataval = rt_pixtype_get_min_value(pixtype);
+	}
+
+	/* add band to output raster */
+	if (rt_raster_generate_new_band(
+		raster,
+		pixtype,
+		nodataval,
+		1, nodataval,
+		0
+	) < 0) {
+		for (k = 0; k < set_count; k++) {
+			if (_rast[k] != NULL)
+				rt_raster_destroy(_rast[k]);
+			if (pgrastpos[k] != -1)
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		rt_raster_destroy(raster);
+		elog(ERROR, "RASTER_mapAlgebra2: Could not add new band to output raster");
+		PG_RETURN_NULL();
+	}
+
+	/* get output band */
+	band = rt_raster_get_band(raster, 0);
+	if (band == NULL) {
+		for (k = 0; k < set_count; k++) {
+			if (_rast[k] != NULL)
+				rt_raster_destroy(_rast[k]);
+			if (pgrastpos[k] != -1)
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		rt_raster_destroy(raster);
+		elog(ERROR, "RASTER_mapAlgebra2: Could not get newly added band of output raster");
+		PG_RETURN_NULL();
+	}
+
+	POSTGIS_RT_DEBUGF(4, "offsets = (%d, %d, %d, %d)",
+		(int) _rastoffset[0][0],
+		(int) _rastoffset[0][1],
+		(int) _rastoffset[1][0],
+		(int) _rastoffset[1][1]
+	);
+
+	POSTGIS_RT_DEBUGF(4, "metadata = (%f, %f, %d, %d, %f, %f, %f, %f, %d)",
+		rt_raster_get_x_offset(raster),
+		rt_raster_get_y_offset(raster),
+		rt_raster_get_width(raster),
+		rt_raster_get_height(raster),
+		rt_raster_get_x_scale(raster),
+		rt_raster_get_y_scale(raster),
+		rt_raster_get_x_skew(raster),
+		rt_raster_get_y_skew(raster),
+		rt_raster_get_srid(raster)
+	);
+
+	/*
+		determine who called this function
+		Arg 4 will either be text or regprocedure
+	*/
+	POSTGIS_RT_DEBUG(3, "checking parameter type for arg 4");
+	calltype = get_fn_expr_argtype(fcinfo->flinfo, 4);
+
+	switch(calltype) {
+		case TEXTOID: {
+			POSTGIS_RT_DEBUG(3, "arg 4 is \"expression\"!");
+
+			/* connect SPI */
+			if (SPI_connect() != SPI_OK_CONNECT) {
+				for (k = 0; k < set_count; k++) {
+					if (_rast[k] != NULL)
+						rt_raster_destroy(_rast[k]);
+					if (pgrastpos[k] != -1)
+						PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				rt_raster_destroy(raster);
+				elog(ERROR, "RASTER_mapAlgebra2: Could not connect to the SPI manager");
+				PG_RETURN_NULL();
+			}
+
+			/* reset hasargval */
+			memset(hasargval, 0, sizeof(int) * spi_count);
+
+			/*
+				process expressions
+
+				spi_exprpos elements are:
+					4 - expression => spi_plan[0]
+					7 - nodata1expr => spi_plan[1]
+					8 - nodata2expr => spi_plan[2]
+			*/
+			for (i = 0; i < spi_count; i++) {
+				if (!PG_ARGISNULL(spi_exprpos[i])) {
+					char *tmp = NULL;
+					char place[5] = "$1";
+					expr = text_to_cstring(PG_GETARG_TEXT_P(spi_exprpos[i]));
+					POSTGIS_RT_DEBUGF(3, "raw expr #%d: %s", i, expr);
+
+					for (j = 0, k = 1; j < argkwcount; j++) {
+						/* attempt to replace keyword with placeholder */
+						len = 0;
+						tmp = rtpg_strreplace(expr, argkw[j], place, &len);
+						pfree(expr);
+						expr = tmp;
+
+						if (len) {
+							spi_argcount[i]++;
+							argpos[i][j] = k++;
+
+							sprintf(place, "$%d", k);
+						}
+						else
+							argpos[i][j] = 0;
+					}
+
+					len = strlen("SELECT (") + strlen(expr) + strlen(")::double precision");
+					sql = (char *) palloc(len + 1);
+					if (sql == NULL) {
+
+						for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
+						SPI_finish();
+
+						for (k = 0; k < set_count; k++) {
+							if (_rast[k] != NULL)
+								rt_raster_destroy(_rast[k]);
+							if (pgrastpos[k] != -1)
+								PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+						}
+						rt_raster_destroy(raster);
+
+						elog(ERROR, "RASTER_mapAlgebra2: Could not allocate memory for expression parameter %d", spi_exprpos[i]);
+						PG_RETURN_NULL();
+					}
+
+					strncpy(sql, "SELECT (", strlen("SELECT ("));
+					strncpy(sql + strlen("SELECT ("), expr, strlen(expr));
+					strncpy(sql + strlen("SELECT (") + strlen(expr), ")::double precision", strlen(")::double precision"));
+					sql[len] = '\0';
+
+					POSTGIS_RT_DEBUGF(3, "sql #%d: %s", i, sql);
+
+					/* create prepared plan */
+					if (spi_argcount[i]) {
+						argtype = (Oid *) palloc(spi_argcount[i] * sizeof(Oid));
+						if (argtype == NULL) {
+
+							pfree(sql);
+							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
+							SPI_finish();
+
+							for (k = 0; k < set_count; k++) {
+								if (_rast[k] != NULL)
+									rt_raster_destroy(_rast[k]);
+								if (pgrastpos[k] != -1)
+									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+							}
+							rt_raster_destroy(raster);
+
+							elog(ERROR, "RASTER_mapAlgebra2: Could not allocate memory for prepared plan argtypes of expression parameter %d", spi_exprpos[i]);
+							PG_RETURN_NULL();
+						}
+
+						/* specify datatypes of parameters */
+						for (j = 0, k = 0; j < argkwcount; j++) {
+							if (argpos[i][j] < 1) continue;
+
+							/* positions are INT4 */
+							if (
+								(strstr(argkw[j], "[rast1.x]") != NULL) ||
+								(strstr(argkw[j], "[rast1.y]") != NULL) ||
+								(strstr(argkw[j], "[rast2.x]") != NULL) ||
+								(strstr(argkw[j], "[rast2.y]") != NULL)
+							) {
+								argtype[k] = INT4OID;
+							}
+							/* everything else is FLOAT8 */
+							else {
+								argtype[k] = FLOAT8OID;
+							}
+
+							k++;
+						}
+
+						spi_plan[i] = SPI_prepare(sql, spi_argcount[i], argtype);
+						pfree(argtype);
+
+						if (spi_plan[i] == NULL) {
+
+							pfree(sql);
+							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
+							SPI_finish();
+
+							for (k = 0; k < set_count; k++) {
+								if (_rast[k] != NULL)
+									rt_raster_destroy(_rast[k]);
+								if (pgrastpos[k] != -1)
+									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+							}
+							rt_raster_destroy(raster);
+
+							elog(ERROR, "RASTER_mapAlgebra2: Could not create prepared plan of expression parameter %d", spi_exprpos[i]);
+							PG_RETURN_NULL();
+						}
+					}
+					/* no args, just execute query */
+					else {
+						err = SPI_execute(sql, TRUE, 0);
+						if (err != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
+
+							pfree(sql);
+							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
+							SPI_finish();
+
+							for (k = 0; k < set_count; k++) {
+								if (_rast[k] != NULL)
+									rt_raster_destroy(_rast[k]);
+								if (pgrastpos[k] != -1)
+									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+							}
+							rt_raster_destroy(raster);
+
+							elog(ERROR, "RASTER_mapAlgebra2: Could not evaluate expression parameter %d", spi_exprpos[i]);
+							PG_RETURN_NULL();
+						}
+
+						/* get output of prepared plan */
+						tupdesc = SPI_tuptable->tupdesc;
+						tuptable = SPI_tuptable;
+						tuple = tuptable->vals[0];
+
+						datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
+						if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
+
+							pfree(sql);
+							if (SPI_tuptable) SPI_freetuptable(tuptable);
+							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
+							SPI_finish();
+
+							for (k = 0; k < set_count; k++) {
+								if (_rast[k] != NULL)
+									rt_raster_destroy(_rast[k]);
+								if (pgrastpos[k] != -1)
+									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+							}
+							rt_raster_destroy(raster);
+
+							elog(ERROR, "RASTER_mapAlgebra2: Could not get result of expression parameter %d", spi_exprpos[i]);
+							PG_RETURN_NULL();
+						}
+
+						if (!isnull) {
+							hasargval[i] = 1;
+							argval[i] = DatumGetFloat8(datum);
+						}
+
+						if (SPI_tuptable) SPI_freetuptable(tuptable);
+					}
+
+					pfree(sql);
+				}
+				else
+					spi_empty++;
+			}
+
+			/* nodatanodataval */
+			if (!PG_ARGISNULL(9)) {
+				hasnodatanodataval = 1;
+				nodatanodataval = PG_GETARG_FLOAT8(9);
+			}
+			else
+				hasnodatanodataval = 0;
+			break;
+		}
+		case REGPROCEDUREOID: {
+			POSTGIS_RT_DEBUG(3, "arg 4 is \"userfunction\"!");
+			if (!PG_ARGISNULL(4)) {
+
+				ufc_nullcount = 0;
+				ufc_noid = PG_GETARG_OID(4);
+
+				/* get function info */
+				fmgr_info(ufc_noid, &ufl_info);
+
+				/* function cannot return set */
+				err = 0;
+				if (ufl_info.fn_retset) {
+					err = 1;
+				}
+				/* function should have correct # of args */
+				else if (ufl_info.fn_nargs < 3 || ufl_info.fn_nargs > 4) {
+					err = 2;
+				}
+
+				/*
+					TODO: consider adding checks of the userfunction parameters
+						should be able to use get_fn_expr_argtype() of fmgr.c
+				*/
+
+				if (err > 0) {
+					for (k = 0; k < set_count; k++) {
+						if (_rast[k] != NULL)
+							rt_raster_destroy(_rast[k]);
+						if (pgrastpos[k] != -1)
+							PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+					}
+					rt_raster_destroy(raster);
+
+					if (err > 1)
+						elog(ERROR, "RASTER_mapAlgebra2: Function provided must have three or four input parameters");
+					else
+						elog(ERROR, "RASTER_mapAlgebra2: Function provided must return double precision not resultset");
+					PG_RETURN_NULL();
+				}
+
+				if (func_volatile(ufc_noid) == 'v') {
+					elog(NOTICE, "Function provided is VOLATILE. Unless required and for best performance, function should be IMMUTABLE or STABLE");
+				}
+
+				/* prep function call data */
+#if POSTGIS_PGSQL_VERSION <= 90
+				InitFunctionCallInfoData(ufc_info, &ufl_info, ufl_info.fn_nargs, InvalidOid, NULL);
+#else
+				InitFunctionCallInfoData(ufc_info, &ufl_info, ufl_info.fn_nargs, InvalidOid, NULL, NULL);
+#endif
+				memset(ufc_info.argnull, FALSE, sizeof(bool) * ufl_info.fn_nargs);
+
+				if (ufl_info.fn_nargs != 4)
+					k = 2;
+				else
+					k = 3;
+				if (!PG_ARGISNULL(7)) {
+					ufc_info.arg[k] = PG_GETARG_DATUM(7);
+				}
+				else {
+				 ufc_info.arg[k] = (Datum) NULL;
+				 ufc_info.argnull[k] = TRUE;
+				 ufc_nullcount++;
+				}
+			}
+			break;
+		}
+		default:
+			for (k = 0; k < set_count; k++) {
+				if (_rast[k] != NULL)
+					rt_raster_destroy(_rast[k]);
+				if (pgrastpos[k] != -1)
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			rt_raster_destroy(raster);
+			elog(ERROR, "RASTER_mapAlgebra2: Invalid data type for expression or userfunction");
+			PG_RETURN_NULL();
+			break;
+	}
+
+	/* loop over pixels */
+	/* if any expression present, run */
+	if ((
+		(calltype == TEXTOID) && (
+			(spi_empty != spi_count) || hasnodatanodataval
+		)
+	) || (
+		(calltype == REGPROCEDUREOID) && (ufc_noid != InvalidOid)
+	)) {
+		for (x = 0; x < dim[0]; x++) {
+			for (y = 0; y < dim[1]; y++) {
+
+				/* get pixel from each raster */
+				for (i = 0; i < set_count; i++) {
+					_haspixel[i] = 0;
+					_pixel[i] = 0;
+
+					/* row/column */
+					_x = x - (int) _rastoffset[i][0];
+					_y = y - (int) _rastoffset[i][1];
+
+					/* store _x and _y in 1-based */
+					_pos[i][0] = _x + 1;
+					_pos[i][1] = _y + 1;
+
+					/* get pixel value */
+					if (_band[i] == NULL) {
+						if (!_hasnodata[i]) {
+							_haspixel[i] = 1;
+							_pixel[i] = _nodataval[i];
+						}
+					}
+					else if (
+						!_isempty[i] &&
+						(_x >= 0 && _x < _dim[i][0]) &&
+						(_y >= 0 && _y < _dim[i][1])
+					) {
+						err = rt_band_get_pixel(_band[i], _x, _y, &(_pixel[i]), &isnodata);
+						if (err != ES_NONE) {
+
+							if (calltype == TEXTOID) {
+								for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
+								SPI_finish();
+							}
+
+							for (k = 0; k < set_count; k++) {
+								if (_rast[k] != NULL)
+									rt_raster_destroy(_rast[k]);
+								if (pgrastpos[k] != -1)
+									PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+							}
+							rt_raster_destroy(raster);
+
+							elog(ERROR, "RASTER_mapAlgebra2: Could not get pixel of %s raster", (i < 1 ? "FIRST" : "SECOND"));
+							PG_RETURN_NULL();
+						}
+
+						if (!_hasnodata[i] || !isnodata)
+							_haspixel[i] = 1;
+					}
+
+					POSTGIS_RT_DEBUGF(5, "pixel r%d(%d, %d) = %d, %f",
+						i,
+						_x, _y,
+						_haspixel[i],
+						_pixel[i]
+					);
+				}
+
+				haspixel = 0;
+
+				switch (calltype) {
+					case TEXTOID: {
+						/* which prepared plan to use? */
+						/* !pixel0 && !pixel1 */
+						/* use nodatanodataval */
+						if (!_haspixel[0] && !_haspixel[1])
+							i = 3;
+						/* pixel0 && !pixel1 */
+						/* run spi_plan[2] (nodata2expr) */
+						else if (_haspixel[0] && !_haspixel[1])
+							i = 2;
+						/* !pixel0 && pixel1 */
+						/* run spi_plan[1] (nodata1expr) */
+						else if (!_haspixel[0] && _haspixel[1])
+							i = 1;
+						/* pixel0 && pixel1 */
+						/* run spi_plan[0] (expression) */
+						else
+							i = 0;
+
+						/* process values */
+						if (i == 3) {
+							if (hasnodatanodataval) {
+								haspixel = 1;
+								pixel = nodatanodataval;
+							}
+						}
+						/* has an evaluated value */
+						else if (hasargval[i]) {
+							haspixel = 1;
+							pixel = argval[i];
+						}
+						/* prepared plan exists */
+						else if (spi_plan[i] != NULL) {
+							POSTGIS_RT_DEBUGF(4, "Using prepared plan: %d", i);
+
+							/* expression has argument(s) */
+							if (spi_argcount[i]) {
+								/* reset values to (Datum) NULL */
+								memset(values, (Datum) NULL, sizeof(Datum) * argkwcount);
+								/* reset nulls to FALSE */
+								memset(nulls, FALSE, sizeof(bool) * argkwcount);
+
+								/* set values and nulls */
+								for (j = 0; j < argkwcount; j++) {
+									idx = argpos[i][j];
+									if (idx < 1) continue;
+									idx--; /* 1-based becomes 0-based */
+
+									if (strstr(argkw[j], "[rast1.x]") != NULL) {
+										values[idx] = _pos[0][0];
+									}
+									else if (strstr(argkw[j], "[rast1.y]") != NULL) {
+										values[idx] = _pos[0][1];
+									}
+									else if (
+										(strstr(argkw[j], "[rast1.val]") != NULL) ||
+										(strstr(argkw[j], "[rast1]") != NULL)
+									) {
+										if (_isempty[0] || !_haspixel[0])
+											nulls[idx] = TRUE;
+										else
+											values[idx] = Float8GetDatum(_pixel[0]);
+									}
+									else if (strstr(argkw[j], "[rast2.x]") != NULL) {
+										values[idx] = _pos[1][0];
+									}
+									else if (strstr(argkw[j], "[rast2.y]") != NULL) {
+										values[idx] = _pos[1][1];
+									}
+									else if (
+										(strstr(argkw[j], "[rast2.val]") != NULL) ||
+										(strstr(argkw[j], "[rast2]") != NULL)
+									) {
+										if (_isempty[1] || !_haspixel[1])
+											nulls[idx] = TRUE;
+										else
+											values[idx] = Float8GetDatum(_pixel[1]);
+									}
+								}
+							}
+
+							/* run prepared plan */
+							err = SPI_execute_plan(spi_plan[i], values, nulls, TRUE, 1);
+							if (err != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
+
+								for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
+								SPI_finish();
+
+								for (k = 0; k < set_count; k++) {
+									if (_rast[k] != NULL)
+										rt_raster_destroy(_rast[k]);
+									if (pgrastpos[k] != -1)
+										PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+								}
+								rt_raster_destroy(raster);
+
+								elog(ERROR, "RASTER_mapAlgebra2: Unexpected error when running prepared statement %d", i);
+								PG_RETURN_NULL();
+							}
+
+							/* get output of prepared plan */
+							tupdesc = SPI_tuptable->tupdesc;
+							tuptable = SPI_tuptable;
+							tuple = tuptable->vals[0];
+
+							datum = SPI_getbinval(tuple, tupdesc, 1, &isnull);
+							if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
+
+								if (SPI_tuptable) SPI_freetuptable(tuptable);
+								for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
+								SPI_finish();
+
+								for (k = 0; k < set_count; k++) {
+									if (_rast[k] != NULL)
+										rt_raster_destroy(_rast[k]);
+									if (pgrastpos[k] != -1)
+										PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+								}
+								rt_raster_destroy(raster);
+
+								elog(ERROR, "RASTER_mapAlgebra2: Could not get result of prepared statement %d", i);
+								PG_RETURN_NULL();
+							}
+
+							if (!isnull) {
+								haspixel = 1;
+								pixel = DatumGetFloat8(datum);
+							}
+
+							if (SPI_tuptable) SPI_freetuptable(tuptable);
+						}
+					}	break;
+					case REGPROCEDUREOID: {
+						Datum d[4];
+						ArrayType *a;
+
+						/* build fcnarg */
+						for (i = 0; i < set_count; i++) {
+							ufc_info.arg[i] = Float8GetDatum(_pixel[i]);
+
+							if (_haspixel[i]) {
+								ufc_info.argnull[i] = FALSE;
+								ufc_nullcount--;
+							}
+							else {
+								ufc_info.argnull[i] = TRUE;
+				 				ufc_nullcount++;
+							}
+						}
+
+						/* function is strict and null parameter is passed */
+						/* http://archives.postgresql.org/pgsql-general/2011-11/msg00424.php */
+						if (ufl_info.fn_strict && ufc_nullcount)
+							break;
+
+						/* 4 parameters, add position */
+						if (ufl_info.fn_nargs == 4) {
+							/* Datum of 4 element array */
+							/* array is (x1, y1, x2, y2) */
+							for (i = 0; i < set_count; i++) {
+								if (i < 1) {
+									d[0] = Int32GetDatum(_pos[i][0]);
+									d[1] = Int32GetDatum(_pos[i][1]);
+								}
+								else {
+									d[2] = Int32GetDatum(_pos[i][0]);
+									d[3] = Int32GetDatum(_pos[i][1]);
+								}
+							}
+
+							a = construct_array(d, 4, INT4OID, sizeof(int32), true, 'i');
+							ufc_info.arg[2] = PointerGetDatum(a);
+							ufc_info.argnull[2] = FALSE;
+						}
+
+						datum = FunctionCallInvoke(&ufc_info);
+
+						/* result is not null*/
+						if (!ufc_info.isnull) {
+							haspixel = 1;
+							pixel = DatumGetFloat8(datum);
+						}
+					}	break;
+				}
+
+				/* burn pixel if haspixel != 0 */
+				if (haspixel) {
+					if (rt_band_set_pixel(band, x, y, pixel, NULL) != ES_NONE) {
+
+						if (calltype == TEXTOID) {
+							for (k = 0; k < spi_count; k++) SPI_freeplan(spi_plan[k]);
+							SPI_finish();
+						}
+
+						for (k = 0; k < set_count; k++) {
+							if (_rast[k] != NULL)
+								rt_raster_destroy(_rast[k]);
+							if (pgrastpos[k] != -1)
+								PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+						}
+						rt_raster_destroy(raster);
+
+						elog(ERROR, "RASTER_mapAlgebra2: Could not set pixel value of output raster");
+						PG_RETURN_NULL();
+					}
+				}
+
+				POSTGIS_RT_DEBUGF(5, "(x, y, val) = (%d, %d, %f)", x, y, haspixel ? pixel : nodataval);
+
+			} /* y: height */
+		} /* x: width */
+	}
+
+	/* CLEANUP */
+	if (calltype == TEXTOID) {
+		for (i = 0; i < spi_count; i++) {
+			if (spi_plan[i] != NULL) SPI_freeplan(spi_plan[i]);
+		}
+		SPI_finish();
+	}
+
+	for (k = 0; k < set_count; k++) {
+		if (_rast[k] != NULL)
+			rt_raster_destroy(_rast[k]);
+		if (pgrastpos[k] != -1)
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	if (!pgrtn) PG_RETURN_NULL();
+
+	POSTGIS_RT_DEBUG(3, "Finished RASTER_mapAlgebra2");
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
diff --git a/raster/rt_pg/rtpg_pixel.c b/raster/rt_pg/rtpg_pixel.c
new file mode 100644
index 0000000..2432119
--- /dev/null
+++ b/raster/rt_pg/rtpg_pixel.c
@@ -0,0 +1,2301 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h>
+#include <fmgr.h>
+#include "utils/lsyscache.h" /* for get_typlenbyvalalign */
+#include <funcapi.h>
+#include "utils/array.h" /* for ArrayType */
+#include "catalog/pg_type.h" /* for INT2OID, INT4OID, FLOAT4OID, FLOAT8OID and TEXTOID */
+
+#include "../../postgis_config.h"
+#include "lwgeom_pg.h"
+
+
+#if POSTGIS_PGSQL_VERSION > 92
+#include "access/htup_details.h" /* for heap_form_tuple() */
+#endif
+
+#include "rtpostgis.h"
+
+/* Get pixel value */
+Datum RASTER_getPixelValue(PG_FUNCTION_ARGS);
+Datum RASTER_dumpValues(PG_FUNCTION_ARGS);
+
+/* Set pixel value(s) */
+Datum RASTER_setPixelValue(PG_FUNCTION_ARGS);
+Datum RASTER_setPixelValuesArray(PG_FUNCTION_ARGS);
+Datum RASTER_setPixelValuesGeomval(PG_FUNCTION_ARGS);
+
+/* Get pixels of value */
+Datum RASTER_pixelOfValue(PG_FUNCTION_ARGS);
+
+/* Get nearest value to a point */
+Datum RASTER_nearestValue(PG_FUNCTION_ARGS);
+
+/* Get the neighborhood around a pixel */
+Datum RASTER_neighborhood(PG_FUNCTION_ARGS);
+
+/**
+ * Return value of a single pixel.
+ * Pixel location is specified by 1-based index of Nth band of raster and
+ * X,Y coordinates (X <= RT_Width(raster) and Y <= RT_Height(raster)).
+ *
+ * TODO: Should we return NUMERIC instead of FLOAT8 ?
+ */
+PG_FUNCTION_INFO_V1(RASTER_getPixelValue);
+Datum RASTER_getPixelValue(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_raster raster = NULL;
+    rt_band band = NULL;
+    double pixvalue = 0;
+    int32_t bandindex = 0;
+    int32_t x = 0;
+    int32_t y = 0;
+    int result = 0;
+    bool exclude_nodata_value = TRUE;
+		int isnodata = 0;
+
+    /* Index is 1-based */
+    bandindex = PG_GETARG_INT32(1);
+    if ( bandindex < 1 ) {
+        elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+        PG_RETURN_NULL();
+    }
+
+    x = PG_GETARG_INT32(2);
+
+    y = PG_GETARG_INT32(3);
+
+    exclude_nodata_value = PG_GETARG_BOOL(4);
+
+    POSTGIS_RT_DEBUGF(3, "Pixel coordinates (%d, %d)", x, y);
+
+    /* Deserialize raster */
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+    raster = rt_raster_deserialize(pgraster, FALSE);
+    if (!raster) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getPixelValue: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    /* Fetch Nth band using 0-based internal index */
+    band = rt_raster_get_band(raster, bandindex - 1);
+    if (! band) {
+        elog(NOTICE, "Could not find raster band of index %d when getting pixel "
+                "value. Returning NULL", bandindex);
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+    /* Fetch pixel using 0-based coordinates */
+    result = rt_band_get_pixel(band, x - 1, y - 1, &pixvalue, &isnodata);
+
+    /* If the result is -1 or the value is nodata and we take nodata into account
+     * then return nodata = NULL */
+    if (result != ES_NONE || (exclude_nodata_value && isnodata)) {
+        rt_raster_destroy(raster);
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(pixvalue);
+}
+
+/* ---------------------------------------------------------------- */
+/*  ST_DumpValues function                                          */
+/* ---------------------------------------------------------------- */
+
+typedef struct rtpg_dumpvalues_arg_t *rtpg_dumpvalues_arg;
+struct rtpg_dumpvalues_arg_t {
+	int numbands;
+	int rows;
+	int columns;
+
+	int *nbands; /* 0-based */
+	Datum **values;
+	bool **nodata;
+};
+
+static rtpg_dumpvalues_arg rtpg_dumpvalues_arg_init() {
+	rtpg_dumpvalues_arg arg = NULL;
+
+	arg = palloc(sizeof(struct rtpg_dumpvalues_arg_t));
+	if (arg == NULL) {
+		elog(ERROR, "rtpg_dumpvalues_arg_init: Could not allocate memory for arguments");
+		return NULL;
+	}
+
+	arg->numbands = 0;
+	arg->rows = 0;
+	arg->columns = 0;
+
+	arg->nbands = NULL;
+	arg->values = NULL;
+	arg->nodata = NULL;
+
+	return arg;
+}
+
+static void rtpg_dumpvalues_arg_destroy(rtpg_dumpvalues_arg arg) {
+	int i = 0;
+
+	if (arg->numbands > 0) {
+		if (arg->nbands != NULL)
+			pfree(arg->nbands);
+
+		if (arg->values != NULL) {
+			for (i = 0; i < arg->numbands; i++) {
+
+				if (arg->values[i] != NULL)
+					pfree(arg->values[i]);
+
+				if (arg->nodata[i] != NULL)
+					pfree(arg->nodata[i]);
+			}
+
+			pfree(arg->values);
+		}
+
+		if (arg->nodata != NULL)
+			pfree(arg->nodata);
+	}
+
+	pfree(arg);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_dumpValues);
+Datum RASTER_dumpValues(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+	int call_cntr;
+	int max_calls;
+	int i = 0;
+	int x = 0;
+	int y = 0;
+	int z = 0;
+
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+
+	rtpg_dumpvalues_arg arg1 = NULL;
+	rtpg_dumpvalues_arg arg2 = NULL;
+
+	/* stuff done only on the first call of the function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+		int numbands = 0;
+		int j = 0;
+		bool exclude_nodata_value = TRUE;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+
+		double val = 0;
+		int isnodata = 0;
+
+		POSTGIS_RT_DEBUG(2, "RASTER_dumpValues first call");
+
+		/* 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);
+
+		/* Get input arguments */
+		if (PG_ARGISNULL(0)) {
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			ereport(ERROR, (
+				errcode(ERRCODE_OUT_OF_MEMORY),
+				errmsg("Could not deserialize raster")
+			));
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* check that raster is not empty */
+		/*
+		if (rt_raster_is_empty(raster)) {
+			elog(NOTICE, "Raster provided is empty");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		*/
+
+		/* raster has bands */
+		numbands = rt_raster_get_num_bands(raster); 
+		if (!numbands) {
+			elog(NOTICE, "Raster provided has no bands");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* initialize arg1 */
+		arg1 = rtpg_dumpvalues_arg_init();
+		if (arg1 == NULL) {
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_dumpValues: Could not initialize argument structure");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* nband, array */
+		if (!PG_ARGISNULL(1)) {
+			array = PG_GETARG_ARRAYTYPE_P(1);
+			etype = ARR_ELEMTYPE(array);
+			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+			switch (etype) {
+				case INT2OID:
+				case INT4OID:
+					break;
+				default:
+					rtpg_dumpvalues_arg_destroy(arg1);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_dumpValues: Invalid data type for band indexes");
+					SRF_RETURN_DONE(funcctx);
+					break;
+			}
+
+			deconstruct_array(array, etype, typlen, typbyval, typalign, &e, &nulls, &(arg1->numbands));
+
+			arg1->nbands = palloc(sizeof(int) * arg1->numbands);
+			if (arg1->nbands == NULL) {
+				rtpg_dumpvalues_arg_destroy(arg1);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_dumpValues: Could not allocate memory for band indexes");
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			for (i = 0, j = 0; i < arg1->numbands; i++) {
+				if (nulls[i]) continue;
+
+				switch (etype) {
+					case INT2OID:
+						arg1->nbands[j] = DatumGetInt16(e[i]) - 1;
+						break;
+					case INT4OID:
+						arg1->nbands[j] = DatumGetInt32(e[i]) - 1;
+						break;
+				}
+
+				j++;
+			}
+
+			if (j < arg1->numbands) {
+				arg1->nbands = repalloc(arg1->nbands, sizeof(int) * j);
+				if (arg1->nbands == NULL) {
+					rtpg_dumpvalues_arg_destroy(arg1);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_dumpValues: Could not reallocate memory for band indexes");
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				arg1->numbands = j;
+			}
+
+			/* validate nbands */
+			for (i = 0; i < arg1->numbands; i++) {
+				if (!rt_raster_has_band(raster, arg1->nbands[i])) {
+					elog(NOTICE, "Band at index %d not found in raster", arg1->nbands[i] + 1);
+					rtpg_dumpvalues_arg_destroy(arg1);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					SRF_RETURN_DONE(funcctx);
+				}
+			}
+
+		}
+		/* no bands specified, return all bands */
+		else {
+			arg1->numbands = numbands;
+			arg1->nbands = palloc(sizeof(int) * arg1->numbands);
+
+			if (arg1->nbands == NULL) {
+				rtpg_dumpvalues_arg_destroy(arg1);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_dumpValues: Could not allocate memory for band indexes");
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			for (i = 0; i < arg1->numbands; i++) {
+				arg1->nbands[i] = i;
+				POSTGIS_RT_DEBUGF(4, "arg1->nbands[%d] = %d", arg1->nbands[i], i);
+			}
+		}
+
+		arg1->rows = rt_raster_get_height(raster);
+		arg1->columns = rt_raster_get_width(raster);
+
+		/* exclude_nodata_value */
+		if (!PG_ARGISNULL(2))
+			exclude_nodata_value = PG_GETARG_BOOL(2);
+		POSTGIS_RT_DEBUGF(4, "exclude_nodata_value = %d", exclude_nodata_value);
+
+		/* allocate memory for each band's values and nodata flags */
+		arg1->values = palloc(sizeof(Datum *) * arg1->numbands);
+		arg1->nodata = palloc(sizeof(bool *) * arg1->numbands);
+		if (arg1->values == NULL || arg1->nodata == NULL) {
+			rtpg_dumpvalues_arg_destroy(arg1);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_dumpValues: Could not allocate memory for pixel values");
+			SRF_RETURN_DONE(funcctx);
+		}
+		memset(arg1->values, 0, sizeof(Datum *) * arg1->numbands);
+		memset(arg1->nodata, 0, sizeof(bool *) * arg1->numbands);
+
+		/* get each band and dump data */
+		for (z = 0; z < arg1->numbands; z++) {
+			/* shortcut if raster is empty */
+			if (rt_raster_is_empty(raster))
+				break;
+
+			band = rt_raster_get_band(raster, arg1->nbands[z]);
+			if (!band) {
+				int nband = arg1->nbands[z] + 1;
+				rtpg_dumpvalues_arg_destroy(arg1);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_dumpValues: Could not get band at index %d", nband);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* allocate memory for values and nodata flags */
+			arg1->values[z] = palloc(sizeof(Datum) * arg1->rows * arg1->columns);
+			arg1->nodata[z] = palloc(sizeof(bool) * arg1->rows * arg1->columns);
+			if (arg1->values[z] == NULL || arg1->nodata[z] == NULL) {
+				rtpg_dumpvalues_arg_destroy(arg1);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_dumpValues: Could not allocate memory for pixel values");
+				SRF_RETURN_DONE(funcctx);
+			}
+			memset(arg1->values[z], 0, sizeof(Datum) * arg1->rows * arg1->columns);
+			memset(arg1->nodata[z], 0, sizeof(bool) * arg1->rows * arg1->columns);
+
+			i = 0;
+
+			/* shortcut if band is NODATA */
+			if (rt_band_get_isnodata_flag(band)) {
+				for (i = (arg1->rows * arg1->columns) - 1; i >= 0; i--)
+					arg1->nodata[z][i] = TRUE;
+				continue;
+			}
+
+			for (y = 0; y < arg1->rows; y++) {
+				for (x = 0; x < arg1->columns; x++) {
+					/* get pixel */
+					if (rt_band_get_pixel(band, x, y, &val, &isnodata) != ES_NONE) {
+						int nband = arg1->nbands[z] + 1;
+						rtpg_dumpvalues_arg_destroy(arg1);
+						rt_raster_destroy(raster);
+						PG_FREE_IF_COPY(pgraster, 0);
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_dumpValues: Could not pixel (%d, %d) of band %d", x, y, nband);
+						SRF_RETURN_DONE(funcctx);
+					}
+
+					arg1->values[z][i] = Float8GetDatum(val);
+					POSTGIS_RT_DEBUGF(5, "arg1->values[z][i] = %f", DatumGetFloat8(arg1->values[z][i]));
+					POSTGIS_RT_DEBUGF(5, "clamped is?: %d", rt_band_clamped_value_is_nodata(band, val));
+
+					if (exclude_nodata_value && isnodata) {
+						arg1->nodata[z][i] = TRUE;
+						POSTGIS_RT_DEBUG(5, "nodata = 1");
+					}
+					else
+						POSTGIS_RT_DEBUG(5, "nodata = 0");
+
+					i++;
+				}
+			}
+		}
+
+		/* cleanup */
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+
+		/* Store needed information */
+		funcctx->user_fctx = arg1;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = arg1->numbands;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			MemoryContextSwitchTo(oldcontext);
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	arg2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 2;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+		ArrayType *mdValues = NULL;
+		int ndim = 2;
+		int dim[2] = {arg2->rows, arg2->columns};
+		int lbound[2] = {1, 1};
+
+		POSTGIS_RT_DEBUGF(3, "call number %d", call_cntr);
+		POSTGIS_RT_DEBUGF(4, "dim = %d, %d", dim[0], dim[1]);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		values[0] = Int32GetDatum(arg2->nbands[call_cntr] + 1);
+
+		/* info about the type of item in the multi-dimensional array (float8). */
+		get_typlenbyvalalign(FLOAT8OID, &typlen, &typbyval, &typalign);
+
+		/* if values is NULL, return empty array */
+		if (arg2->values[call_cntr] == NULL)
+			ndim = 0;
+
+		/* assemble 3-dimension array of values */
+		mdValues = construct_md_array(
+			arg2->values[call_cntr], arg2->nodata[call_cntr],
+			ndim, dim, lbound,
+			FLOAT8OID,
+			typlen, typbyval, typalign
+		);
+		values[1] = PointerGetDatum(mdValues);
+
+		/* build a tuple and datum */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		rtpg_dumpvalues_arg_destroy(arg2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * Write value of raster sample on given position and in specified band.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setPixelValue);
+Datum RASTER_setPixelValue(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	double pixvalue = 0;
+	int32_t bandindex = 0;
+	int32_t x = 0;
+	int32_t y = 0;
+	bool skipset = FALSE;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	/* Check index is not NULL or < 1 */
+	if (PG_ARGISNULL(1))
+		bandindex = -1;
+	else
+		bandindex = PG_GETARG_INT32(1);
+	
+	if (bandindex < 1) {
+		elog(NOTICE, "Invalid band index (must use 1-based). Value not set. Returning original raster");
+		skipset = TRUE;
+	}
+
+	/* Validate pixel coordinates are not null */
+	if (PG_ARGISNULL(2)) {
+		elog(NOTICE, "X coordinate can not be NULL when setting pixel value. Value not set. Returning original raster");
+		skipset = TRUE;
+	}
+	else
+		x = PG_GETARG_INT32(2);
+
+	if (PG_ARGISNULL(3)) {
+		elog(NOTICE, "Y coordinate can not be NULL when setting pixel value. Value not set. Returning original raster");
+		skipset = TRUE;
+	}
+	else
+		y = PG_GETARG_INT32(3);
+
+	POSTGIS_RT_DEBUGF(3, "Pixel coordinates (%d, %d)", x, y);
+
+	/* Deserialize raster */
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setPixelValue: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	if (!skipset) {
+		/* Fetch requested band */
+		band = rt_raster_get_band(raster, bandindex - 1);
+		if (!band) {
+			elog(NOTICE, "Could not find raster band of index %d when setting "
+				"pixel value. Value not set. Returning original raster",
+				bandindex);
+			PG_RETURN_POINTER(pgraster);
+		}
+		else {
+			/* Set the pixel value */
+			if (PG_ARGISNULL(4)) {
+				if (!rt_band_get_hasnodata_flag(band)) {
+					elog(NOTICE, "Raster do not have a nodata value defined. "
+						"Set band nodata value first. Nodata value not set. "
+						"Returning original raster");
+					PG_RETURN_POINTER(pgraster);
+				}
+				else {
+					rt_band_get_nodata(band, &pixvalue);
+					rt_band_set_pixel(band, x - 1, y - 1, pixvalue, NULL);
+				}
+			}
+			else {
+				pixvalue = PG_GETARG_FLOAT8(4);
+				rt_band_set_pixel(band, x - 1, y - 1, pixvalue, NULL);
+			}
+		}
+	}
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Set pixels to value from array
+ */
+PG_FUNCTION_INFO_V1(RASTER_setPixelValuesArray);
+Datum RASTER_setPixelValuesArray(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	int numbands = 0;
+
+	int nband = 0;
+	int width = 0;
+	int height = 0;
+
+	ArrayType *array;
+	Oid etype;
+	Datum *elements;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int ndims = 1;
+	int *dims;
+	int num = 0;
+
+	int ul[2] = {0};
+	struct pixelvalue {
+		int x;
+		int y;
+
+		bool noset;
+		bool nodata;
+		double value;
+	};
+	struct pixelvalue *pixval = NULL;
+	int numpixval = 0;
+	int dimpixval[2] = {1, 1};
+	int dimnoset[2] = {1, 1};
+	int hasnodata = FALSE;
+	double nodataval = 0;
+	bool keepnodata = FALSE;
+	bool hasnosetval = FALSE;
+	bool nosetvalisnull = FALSE;
+	double nosetval = 0;
+
+	int rtn = 0;
+	double val = 0;
+	int isnodata = 0;
+
+	int i = 0;
+	int j = 0;
+	int x = 0;
+	int y = 0;
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+
+	/* raster */
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setPixelValuesArray: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* raster attributes */
+	numbands = rt_raster_get_num_bands(raster);
+	width = rt_raster_get_width(raster);
+	height = rt_raster_get_height(raster);
+
+	/* nband */
+	if (PG_ARGISNULL(1)) {
+		elog(NOTICE, "Band index cannot be NULL.  Value must be 1-based.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	nband = PG_GETARG_INT32(1);
+	if (nband < 1 || nband > numbands) {
+		elog(NOTICE, "Band index is invalid.  Value must be 1-based.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	/* x, y */
+	for (i = 2, j = 0; i < 4; i++, j++) {
+		if (PG_ARGISNULL(i)) {
+			elog(NOTICE, "%s cannot be NULL.  Value must be 1-based.  Returning original raster", j < 1 ? "X" : "Y");
+			rt_raster_destroy(raster);
+			PG_RETURN_POINTER(pgraster);
+		}
+
+		ul[j] = PG_GETARG_INT32(i);
+		if (
+			(ul[j] < 1) || (
+				(j < 1 && ul[j] > width) ||
+				(j > 0 && ul[j] > height)
+			)
+		) {
+			elog(NOTICE, "%s is invalid.  Value must be 1-based.  Returning original raster", j < 1 ? "X" : "Y");
+			rt_raster_destroy(raster);
+			PG_RETURN_POINTER(pgraster);
+		}
+
+		/* force 0-based from 1-based */
+		ul[j] -= 1;
+	}
+
+	/* new value set */
+	if (PG_ARGISNULL(4)) {
+		elog(NOTICE, "No values to set.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	array = PG_GETARG_ARRAYTYPE_P(4);
+	etype = ARR_ELEMTYPE(array);
+	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+	switch (etype) {
+		case FLOAT4OID:
+		case FLOAT8OID:
+			break;
+		default:
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesArray: Invalid data type for new values");
+			PG_RETURN_NULL();
+			break;
+	}
+
+	ndims = ARR_NDIM(array);
+	dims = ARR_DIMS(array);
+	POSTGIS_RT_DEBUGF(4, "ndims = %d", ndims);
+
+	if (ndims < 1 || ndims > 2) {
+		elog(NOTICE, "New values array must be of 1 or 2 dimensions.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+	/* outer element, then inner element */
+	/* i = 0, y */
+	/* i = 1, x */
+	if (ndims != 2)
+		dimpixval[1] = dims[0];
+	else {
+		dimpixval[0] = dims[0];
+		dimpixval[1] = dims[1];
+	}
+	POSTGIS_RT_DEBUGF(4, "dimpixval = (%d, %d)", dimpixval[0], dimpixval[1]);
+
+	deconstruct_array(
+		array,
+		etype,
+		typlen, typbyval, typalign,
+		&elements, &nulls, &num
+	);
+
+	/* # of elements doesn't match dims */
+	if (num < 1 || num != (dimpixval[0] * dimpixval[1])) {
+		if (num) {
+			pfree(elements);
+			pfree(nulls);
+		}
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setPixelValuesArray: Could not deconstruct new values array");
+		PG_RETURN_NULL();
+	}
+
+	/* allocate memory for pixval */
+	numpixval = num;
+	pixval = palloc(sizeof(struct pixelvalue) * numpixval);
+	if (pixval == NULL) {
+		pfree(elements);
+		pfree(nulls);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setPixelValuesArray: Could not allocate memory for new pixel values");
+		PG_RETURN_NULL();
+	}
+
+	/* load new values into pixval */
+	i = 0;
+	for (y = 0; y < dimpixval[0]; y++) {
+		for (x = 0; x < dimpixval[1]; x++) {
+			/* 0-based */
+			pixval[i].x = ul[0] + x;
+			pixval[i].y = ul[1] + y;
+
+			pixval[i].noset = FALSE;
+			pixval[i].nodata = FALSE;
+			pixval[i].value = 0;
+
+			if (nulls[i])
+				pixval[i].nodata = TRUE;
+			else {
+				switch (etype) {
+					case FLOAT4OID:
+						pixval[i].value = DatumGetFloat4(elements[i]);
+						break;
+					case FLOAT8OID:
+						pixval[i].value = DatumGetFloat8(elements[i]);
+						break;
+				}
+			}
+
+			i++;
+		}
+	}
+
+	pfree(elements);
+	pfree(nulls);
+
+	/* now load noset flags */
+	if (!PG_ARGISNULL(5)) {
+		array = PG_GETARG_ARRAYTYPE_P(5);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case BOOLOID:
+				break;
+			default:
+				pfree(pixval);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_setPixelValuesArray: Invalid data type for noset flags");
+				PG_RETURN_NULL();
+				break;
+		}
+
+		ndims = ARR_NDIM(array);
+		dims = ARR_DIMS(array);
+		POSTGIS_RT_DEBUGF(4, "ndims = %d", ndims);
+
+		if (ndims < 1 || ndims > 2) {
+			elog(NOTICE, "Noset flags array must be of 1 or 2 dimensions.  Returning original raster");
+			pfree(pixval);
+			rt_raster_destroy(raster);
+			PG_RETURN_POINTER(pgraster);
+		}
+		/* outer element, then inner element */
+		/* i = 0, y */
+		/* i = 1, x */
+		if (ndims != 2)
+			dimnoset[1] = dims[0];
+		else {
+			dimnoset[0] = dims[0];
+			dimnoset[1] = dims[1];
+		}
+		POSTGIS_RT_DEBUGF(4, "dimnoset = (%d, %d)", dimnoset[0], dimnoset[1]);
+
+		deconstruct_array(
+			array,
+			etype,
+			typlen, typbyval, typalign,
+			&elements, &nulls, &num
+		);
+
+		/* # of elements doesn't match dims */
+		if (num < 1 || num != (dimnoset[0] * dimnoset[1])) {
+			pfree(pixval);
+			if (num) {
+				pfree(elements);
+				pfree(nulls);
+			}
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesArray: Could not deconstruct noset flags array");
+			PG_RETURN_NULL();
+		}
+
+		i = 0;
+		j = 0;
+		for (y = 0; y < dimnoset[0]; y++) {
+			if (y >= dimpixval[0]) break;
+
+			for (x = 0; x < dimnoset[1]; x++) {
+				/* fast forward noset elements */
+				if (x >= dimpixval[1]) {
+					i += (dimnoset[1] - dimpixval[1]);
+					break;
+				}
+
+				if (!nulls[i] && DatumGetBool(elements[i]))
+					pixval[j].noset = TRUE;
+
+				i++;
+				j++;
+			}
+
+			/* fast forward pixval */
+			if (x < dimpixval[1])
+				j += (dimpixval[1] - dimnoset[1]);
+		}
+
+		pfree(elements);
+		pfree(nulls);
+	}
+	/* hasnosetvalue and nosetvalue */
+	else if (!PG_ARGISNULL(6) && PG_GETARG_BOOL(6)) {
+		hasnosetval = TRUE;
+		if (PG_ARGISNULL(7))
+			nosetvalisnull = TRUE;
+		else
+			nosetval = PG_GETARG_FLOAT8(7);
+	}
+
+#if POSTGIS_DEBUG_LEVEL > 0
+	for (i = 0; i < numpixval; i++) {
+		POSTGIS_RT_DEBUGF(4, "pixval[%d](x, y, noset, nodata, value) = (%d, %d, %d, %d, %f)",
+			i,
+			pixval[i].x,
+			pixval[i].y,
+			pixval[i].noset,
+			pixval[i].nodata,
+			pixval[i].value
+		);
+	}
+#endif
+
+	/* keepnodata flag */
+	if (!PG_ARGISNULL(8))
+		keepnodata = PG_GETARG_BOOL(8);
+
+	/* get band */
+	band = rt_raster_get_band(raster, nband - 1);
+	if (!band) {
+		elog(NOTICE, "Could not find band at index %d. Returning original raster", nband);
+		pfree(pixval);
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	/* get band nodata info */
+	/* has NODATA, use NODATA */
+	hasnodata = rt_band_get_hasnodata_flag(band);
+	if (hasnodata)
+		rt_band_get_nodata(band, &nodataval);
+	/* no NODATA, use min possible value */
+	else
+		nodataval = rt_band_get_min_value(band);
+
+	/* set pixels */
+	for (i = 0; i < numpixval; i++) {
+		/* noset = true, skip */
+		if (pixval[i].noset)
+			continue;
+		/* check against nosetval */
+		else if (hasnosetval) {
+			/* pixel = NULL AND nosetval = NULL */
+			if (pixval[i].nodata && nosetvalisnull)
+				continue;
+			/* pixel value = nosetval */
+			else if (!pixval[i].nodata && !nosetvalisnull && FLT_EQ(pixval[i].value, nosetval))
+				continue;
+		}
+
+		/* if pixel is outside bounds, skip */
+		if (
+			(pixval[i].x < 0 || pixval[i].x >= width) ||
+			(pixval[i].y < 0 || pixval[i].y >= height)
+		) {
+			elog(NOTICE, "Cannot set value for pixel (%d, %d) outside raster bounds: %d x %d",
+				pixval[i].x + 1, pixval[i].y + 1,
+				width, height
+			);
+			continue;
+		}
+
+		/* if hasnodata = TRUE and keepnodata = TRUE, inspect pixel value */
+		if (hasnodata && keepnodata) {
+			rtn = rt_band_get_pixel(band, pixval[i].x, pixval[i].y, &val, &isnodata);
+			if (rtn != ES_NONE) {
+				pfree(pixval);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "Cannot get value of pixel");
+				PG_RETURN_NULL();
+			}
+
+			/* pixel value = NODATA, skip */
+			if (isnodata) {
+				continue;
+			}
+		}
+
+		if (pixval[i].nodata)
+			rt_band_set_pixel(band, pixval[i].x, pixval[i].y, nodataval, NULL);
+		else
+			rt_band_set_pixel(band, pixval[i].x, pixval[i].y, pixval[i].value, NULL);
+	}
+
+	pfree(pixval);
+
+	/* serialize new raster */
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/* ---------------------------------------------------------------- */
+/*  ST_SetValues using geomval array                                */
+/* ---------------------------------------------------------------- */
+
+typedef struct rtpg_setvaluesgv_arg_t *rtpg_setvaluesgv_arg;
+typedef struct rtpg_setvaluesgv_geomval_t *rtpg_setvaluesgv_geomval;
+
+struct rtpg_setvaluesgv_arg_t {
+	int ngv;
+	rtpg_setvaluesgv_geomval gv;
+
+	bool keepnodata;
+};
+
+struct rtpg_setvaluesgv_geomval_t {
+	struct {
+		int nodata;
+		double value;
+	} pixval;
+
+	LWGEOM *geom;
+	rt_raster mask;
+};
+
+static rtpg_setvaluesgv_arg rtpg_setvaluesgv_arg_init() {
+	rtpg_setvaluesgv_arg arg = palloc(sizeof(struct rtpg_setvaluesgv_arg_t));
+	if (arg == NULL) {
+		elog(ERROR, "rtpg_setvaluesgv_arg_init: Could not allocate memory for function arguments");
+		return NULL;
+	}
+
+	arg->ngv = 0;
+	arg->gv = NULL;
+	arg->keepnodata = 0;
+
+	return arg;
+}
+
+static void rtpg_setvaluesgv_arg_destroy(rtpg_setvaluesgv_arg arg) {
+	int i = 0;
+
+	if (arg->gv != NULL) {
+		for (i = 0; i < arg->ngv; i++) {
+			if (arg->gv[i].geom != NULL)
+				lwgeom_free(arg->gv[i].geom);
+			if (arg->gv[i].mask != NULL)
+				rt_raster_destroy(arg->gv[i].mask);
+		}
+
+		pfree(arg->gv);
+	}
+
+	pfree(arg);
+}
+
+static int rtpg_setvalues_geomval_callback(
+	rt_iterator_arg arg, void *userarg,
+	double *value, int *nodata
+) {
+	rtpg_setvaluesgv_arg funcarg = (rtpg_setvaluesgv_arg) userarg;
+	int i = 0;
+	int j = 0;
+
+	*value = 0;
+	*nodata = 0;
+
+	POSTGIS_RT_DEBUGF(4, "keepnodata = %d", funcarg->keepnodata);
+
+	/* keepnodata = TRUE */
+	if (funcarg->keepnodata && arg->nodata[0][0][0]) {
+		POSTGIS_RT_DEBUG(3, "keepnodata = 1 AND source raster pixel is NODATA");
+		*nodata = 1;
+		return 1;
+	}
+
+	for (i = arg->rasters - 1, j = funcarg->ngv - 1; i > 0; i--, j--) {
+		POSTGIS_RT_DEBUGF(4, "checking raster %d", i);
+
+		/* mask is NODATA */
+		if (arg->nodata[i][0][0])
+			continue;
+		/* mask is NOT NODATA */
+		else {
+			POSTGIS_RT_DEBUGF(4, "Using information from geometry %d", j);
+
+			if (funcarg->gv[j].pixval.nodata)
+				*nodata = 1;
+			else
+				*value = funcarg->gv[j].pixval.value;
+
+			return 1;
+		}
+	}
+
+	POSTGIS_RT_DEBUG(4, "Using information from source raster");
+
+	/* still here */
+	if (arg->nodata[0][0][0])
+		*nodata = 1;
+	else
+		*value = arg->values[0][0][0];
+
+	return 1;
+}
+
+PG_FUNCTION_INFO_V1(RASTER_setPixelValuesGeomval);
+Datum RASTER_setPixelValuesGeomval(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	rt_raster _raster = NULL;
+	rt_band _band = NULL;
+	int nband = 0; /* 1-based */
+
+	int numbands = 0;
+	int width = 0;
+	int height = 0;
+	int srid = 0;
+	double gt[6] = {0};
+
+	rt_pixtype pixtype = PT_END;
+	int hasnodata = 0;
+	double nodataval = 0;
+
+	rtpg_setvaluesgv_arg arg = NULL;
+	int allpoint = 0;
+
+	ArrayType *array;
+	Oid etype;
+	Datum *e;
+	bool *nulls;
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+	int n = 0;
+
+	HeapTupleHeader tup;
+	bool isnull;
+	Datum tupv;
+
+	GSERIALIZED *gser = NULL;
+	uint8_t gtype;
+	unsigned char *wkb = NULL;
+	size_t wkb_len;
+
+	int i = 0;
+	int j = 0;
+	int noerr = 1;
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
+
+	/* raster */
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setPixelValuesGeomval: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* raster attributes */
+	numbands = rt_raster_get_num_bands(raster);
+	width = rt_raster_get_width(raster);
+	height = rt_raster_get_height(raster);
+	srid = clamp_srid(rt_raster_get_srid(raster));
+	rt_raster_get_geotransform_matrix(raster, gt);
+
+	/* nband */
+	if (PG_ARGISNULL(1)) {
+		elog(NOTICE, "Band index cannot be NULL.  Value must be 1-based.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	nband = PG_GETARG_INT32(1);
+	if (nband < 1 || nband > numbands) {
+		elog(NOTICE, "Band index is invalid.  Value must be 1-based.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	/* get band attributes */
+	band = rt_raster_get_band(raster, nband - 1);
+	pixtype = rt_band_get_pixtype(band);
+	hasnodata = rt_band_get_hasnodata_flag(band);
+	if (hasnodata)
+		rt_band_get_nodata(band, &nodataval);
+
+	/* array of geomval (2) */
+	if (PG_ARGISNULL(2)) {
+		elog(NOTICE, "No values to set.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	array = PG_GETARG_ARRAYTYPE_P(2);
+	etype = ARR_ELEMTYPE(array);
+	get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+	deconstruct_array(
+		array,
+		etype,
+		typlen, typbyval, typalign,
+		&e, &nulls, &n
+	);
+
+	if (!n) {
+		elog(NOTICE, "No values to set.  Returning original raster");
+		rt_raster_destroy(raster);
+		PG_RETURN_POINTER(pgraster);
+	}
+
+	/* init arg */
+	arg = rtpg_setvaluesgv_arg_init();
+	if (arg == NULL) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setPixelValuesGeomval: Could not intialize argument structure");
+		PG_RETURN_NULL();
+	}
+
+	arg->gv = palloc(sizeof(struct rtpg_setvaluesgv_geomval_t) * n);
+	if (arg->gv == NULL) {
+		rtpg_setvaluesgv_arg_destroy(arg);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setPixelValuesGeomval: Could not allocate memory for geomval array");
+		PG_RETURN_NULL();
+	}
+
+	/* process each element */
+	arg->ngv = 0;
+	for (i = 0; i < n; i++) {
+		if (nulls[i])
+			continue;
+
+		arg->gv[arg->ngv].pixval.nodata = 0;
+		arg->gv[arg->ngv].pixval.value = 0;
+		arg->gv[arg->ngv].geom = NULL;
+		arg->gv[arg->ngv].mask = NULL;
+
+		/* each element is a tuple */
+		tup = (HeapTupleHeader) DatumGetPointer(e[i]);
+		if (NULL == tup) {
+			rtpg_setvaluesgv_arg_destroy(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesGeomval: Invalid argument for geomval at index %d", i);
+			PG_RETURN_NULL();
+		}
+
+		/* first element, geometry */
+		POSTGIS_RT_DEBUG(4, "Processing first element (geometry)");
+		tupv = GetAttributeByName(tup, "geom", &isnull);
+		if (isnull) {
+			elog(NOTICE, "First argument (geom) of geomval at index %d is NULL. Skipping", i);
+			continue;
+		}
+
+		gser = (GSERIALIZED *) PG_DETOAST_DATUM(tupv);
+		arg->gv[arg->ngv].geom = lwgeom_from_gserialized(gser);
+		if (arg->gv[arg->ngv].geom == NULL) {
+			rtpg_setvaluesgv_arg_destroy(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not deserialize geometry of geomval at index %d", i);
+			PG_RETURN_NULL();
+		}
+
+		/* empty geometry */
+		if (lwgeom_is_empty(arg->gv[arg->ngv].geom)) {
+			elog(NOTICE, "First argument (geom) of geomval at index %d is an empty geometry. Skipping", i);
+			continue;
+		}
+
+		/* check SRID */
+		if (clamp_srid(gserialized_get_srid(gser)) != srid) {
+			elog(NOTICE, "Geometry provided for geomval at index %d does not have the same SRID as the raster: %d. Returning original raster", i, srid);
+			rtpg_setvaluesgv_arg_destroy(arg);
+			rt_raster_destroy(raster);
+			PG_RETURN_POINTER(pgraster);
+		}
+
+		/* Get a 2D version of the geometry if necessary */
+		if (lwgeom_ndims(arg->gv[arg->ngv].geom) > 2) {
+			LWGEOM *geom2d = lwgeom_force_2d(arg->gv[arg->ngv].geom);
+			lwgeom_free(arg->gv[arg->ngv].geom);
+			arg->gv[arg->ngv].geom = geom2d;
+		}
+
+		/* filter for types */
+		gtype = gserialized_get_type(gser);
+
+		/* shortcuts for POINT and MULTIPOINT */
+		if (gtype == POINTTYPE || gtype == MULTIPOINTTYPE)
+			allpoint++;
+
+		/* get wkb of geometry */
+		POSTGIS_RT_DEBUG(3, "getting wkb of geometry");
+		wkb = lwgeom_to_wkb(arg->gv[arg->ngv].geom, WKB_SFSQL, &wkb_len);
+
+		/* rasterize geometry */
+		arg->gv[arg->ngv].mask = rt_raster_gdal_rasterize(
+			wkb, wkb_len,
+			NULL,
+			0, NULL,
+			NULL, NULL,
+			NULL, NULL,
+			NULL, NULL,
+			&(gt[1]), &(gt[5]),
+			NULL, NULL,
+			&(gt[0]), &(gt[3]),
+			&(gt[2]), &(gt[4]),
+			NULL
+		);
+
+		pfree(wkb);
+		if (gtype != POINTTYPE && gtype != MULTIPOINTTYPE) {
+			lwgeom_free(arg->gv[arg->ngv].geom);
+			arg->gv[arg->ngv].geom = NULL;
+		}
+
+		if (arg->gv[arg->ngv].mask == NULL) {
+			rtpg_setvaluesgv_arg_destroy(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not rasterize geometry of geomval at index %d", i);
+			PG_RETURN_NULL();
+		}
+
+		/* set SRID */
+		rt_raster_set_srid(arg->gv[arg->ngv].mask, srid);
+
+		/* second element, value */
+		POSTGIS_RT_DEBUG(4, "Processing second element (val)");
+		tupv = GetAttributeByName(tup, "val", &isnull);
+		if (isnull) {
+			elog(NOTICE, "Second argument (val) of geomval at index %d is NULL. Treating as NODATA", i);
+			arg->gv[arg->ngv].pixval.nodata = 1;
+		}
+		else
+			arg->gv[arg->ngv].pixval.value = DatumGetFloat8(tupv);
+
+		(arg->ngv)++;
+	}
+
+	/* redim arg->gv if needed */
+	if (arg->ngv < n) {
+		arg->gv = repalloc(arg->gv, sizeof(struct rtpg_setvaluesgv_geomval_t) * arg->ngv);
+		if (arg->gv == NULL) {
+			rtpg_setvaluesgv_arg_destroy(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not reallocate memory for geomval array");
+			PG_RETURN_NULL();
+		}
+	}
+
+	/* keepnodata */
+	if (!PG_ARGISNULL(3))
+		arg->keepnodata = PG_GETARG_BOOL(3);
+	POSTGIS_RT_DEBUGF(3, "keepnodata = %d", arg->keepnodata);
+
+	/* keepnodata = TRUE and band is NODATA */
+	if (arg->keepnodata && rt_band_get_isnodata_flag(band)) {
+		POSTGIS_RT_DEBUG(3, "keepnodata = TRUE and band is NODATA. Not doing anything");
+	}
+	/* all elements are points */
+	else if (allpoint == arg->ngv) {
+		double igt[6] = {0};
+		double xy[2] = {0};
+		double value = 0;
+		int isnodata = 0;
+
+		LWCOLLECTION *coll = NULL;
+		LWPOINT *point = NULL;
+		POINT2D p;
+
+		POSTGIS_RT_DEBUG(3, "all geometries are points, using direct to pixel method");
+
+		/* cache inverse gretransform matrix */
+		rt_raster_get_inverse_geotransform_matrix(NULL, gt, igt);
+
+		/* process each geometry */
+		for (i = 0; i < arg->ngv; i++) {
+			/* convert geometry to collection */
+			coll = lwgeom_as_lwcollection(lwgeom_as_multi(arg->gv[i].geom));
+
+			/* process each point in collection */
+			for (j = 0; j < coll->ngeoms; j++) {
+				point = lwgeom_as_lwpoint(coll->geoms[j]);
+				getPoint2d_p(point->point, 0, &p);
+
+				if (rt_raster_geopoint_to_cell(raster, p.x, p.y, &(xy[0]), &(xy[1]), igt) != ES_NONE) {
+					rtpg_setvaluesgv_arg_destroy(arg);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					elog(ERROR, "RASTER_setPixelValuesGeomval: Could not process coordinates of point");
+					PG_RETURN_NULL();
+				}
+
+				/* skip point if outside raster */
+				if (
+					(xy[0] < 0 || xy[0] >= width) ||
+					(xy[1] < 0 || xy[1] >= height)
+				) {
+					elog(NOTICE, "Point is outside raster extent. Skipping");
+					continue;
+				}
+
+				/* get pixel value */
+				if (rt_band_get_pixel(band, xy[0], xy[1], &value, &isnodata) != ES_NONE) {
+					rtpg_setvaluesgv_arg_destroy(arg);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					elog(ERROR, "RASTER_setPixelValuesGeomval: Could not get pixel value");
+					PG_RETURN_NULL();
+				}
+
+				/* keepnodata = TRUE AND pixel value is NODATA */
+				if (arg->keepnodata && isnodata)
+					continue;
+
+				/* set pixel */
+				if (arg->gv[i].pixval.nodata)
+					noerr = rt_band_set_pixel(band, xy[0], xy[1], nodataval, NULL);
+				else
+					noerr = rt_band_set_pixel(band, xy[0], xy[1], arg->gv[i].pixval.value, NULL);
+
+				if (noerr != ES_NONE) {
+					rtpg_setvaluesgv_arg_destroy(arg);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					elog(ERROR, "RASTER_setPixelValuesGeomval: Could not set pixel value");
+					PG_RETURN_NULL();
+				}
+			}
+		}
+	}
+	/* run iterator otherwise */
+	else {
+		rt_iterator itrset;
+
+		POSTGIS_RT_DEBUG(3, "a mix of geometries, using iterator method");
+
+		/* init itrset */
+		itrset = palloc(sizeof(struct rt_iterator_t) * (arg->ngv + 1));
+		if (itrset == NULL) {
+			rtpg_setvaluesgv_arg_destroy(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not allocate memory for iterator arguments");
+			PG_RETURN_NULL();
+		}
+
+		/* set first raster's info */
+		itrset[0].raster = raster;
+		itrset[0].nband = nband - 1;
+		itrset[0].nbnodata = 1;
+
+		/* set other raster's info */
+		for (i = 0, j = 1; i < arg->ngv; i++, j++) {
+			itrset[j].raster = arg->gv[i].mask;
+			itrset[j].nband = 0;
+			itrset[j].nbnodata = 1;
+		}
+
+		/* pass to iterator */
+		noerr = rt_raster_iterator(
+			itrset, arg->ngv + 1,
+			ET_FIRST, NULL,
+			pixtype,
+			hasnodata, nodataval,
+			0, 0,
+			NULL,
+			arg,
+			rtpg_setvalues_geomval_callback,
+			&_raster
+		);
+		pfree(itrset);
+
+		if (noerr != ES_NONE) {
+			rtpg_setvaluesgv_arg_destroy(arg);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not run raster iterator function");
+			PG_RETURN_NULL();
+		}
+
+		/* copy band from _raster to raster */
+		_band = rt_raster_get_band(_raster, 0);
+		if (_band == NULL) {
+			rtpg_setvaluesgv_arg_destroy(arg);
+			rt_raster_destroy(_raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not get band from working raster");
+			PG_RETURN_NULL();
+		}
+
+		_band = rt_raster_replace_band(raster, _band, nband - 1);
+		if (_band == NULL) {
+			rtpg_setvaluesgv_arg_destroy(arg);
+			rt_raster_destroy(_raster);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			elog(ERROR, "RASTER_setPixelValuesGeomval: Could not replace band in output raster");
+			PG_RETURN_NULL();
+		}
+
+		rt_band_destroy(_band);
+		rt_raster_destroy(_raster);
+	}
+
+	rtpg_setvaluesgv_arg_destroy(arg);
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	POSTGIS_RT_DEBUG(3, "Finished");
+
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Get pixels of value
+ */
+PG_FUNCTION_INFO_V1(RASTER_pixelOfValue);
+Datum RASTER_pixelOfValue(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+
+	rt_pixel pixels = NULL;
+	rt_pixel pixels2 = NULL;
+	int count = 0;
+	int i = 0;
+	int n = 0;
+	int call_cntr;
+	int max_calls;
+
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+		int nband = 1;
+		int num_bands = 0;
+		double *search = NULL;
+		int nsearch = 0;
+		double val;
+		bool exclude_nodata_value = TRUE;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+
+		/* 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);
+
+		if (PG_ARGISNULL(0)) {
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_pixelOfValue: Could not deserialize raster");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* num_bands */
+		num_bands = rt_raster_get_num_bands(raster);
+		if (num_bands < 1) {
+			elog(NOTICE, "Raster provided has no bands");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* band index is 1-based */
+		if (!PG_ARGISNULL(1))
+			nband = PG_GETARG_INT32(1);
+		if (nband < 1 || nband > num_bands) {
+			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* search values */
+		array = PG_GETARG_ARRAYTYPE_P(2);
+		etype = ARR_ELEMTYPE(array);
+		get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+		switch (etype) {
+			case FLOAT4OID:
+			case FLOAT8OID:
+				break;
+			default:
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_pixelOfValue: Invalid data type for pixel values");
+				SRF_RETURN_DONE(funcctx);
+				break;
+		}
+
+		deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+			&nulls, &n);
+
+		search = palloc(sizeof(double) * n);
+		for (i = 0, nsearch = 0; i < n; i++) {
+			if (nulls[i]) continue;
+
+			switch (etype) {
+				case FLOAT4OID:
+					val = (double) DatumGetFloat4(e[i]);
+					break;
+				case FLOAT8OID:
+					val = (double) DatumGetFloat8(e[i]);
+					break;
+			}
+
+			search[nsearch] = val;
+			POSTGIS_RT_DEBUGF(3, "search[%d] = %f", nsearch, search[nsearch]);
+			nsearch++;
+		}
+
+		/* not searching for anything */
+		if (nsearch < 1) {
+			elog(NOTICE, "No search values provided. Returning NULL");
+			pfree(search);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		else if (nsearch < n)
+			search = repalloc(search, sizeof(double) * nsearch);
+
+		/* exclude_nodata_value flag */
+		if (!PG_ARGISNULL(3))
+			exclude_nodata_value = PG_GETARG_BOOL(3);
+
+		/* get band */
+		band = rt_raster_get_band(raster, nband - 1);
+		if (!band) {
+			elog(NOTICE, "Could not find band at index %d. Returning NULL", nband);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get pixels of values */
+		count = rt_band_get_pixel_of_value(
+			band, exclude_nodata_value,
+			search, nsearch,
+			&pixels
+		);
+		pfree(search);
+		rt_band_destroy(band);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		if (count < 1) {
+			/* error */
+			if (count < 0)
+				elog(NOTICE, "Could not get the pixels of search values for band at index %d", nband);
+			/* no nearest pixel */
+			else
+				elog(NOTICE, "No pixels of search values found for band at index %d", nband);
+
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* Store needed information */
+		funcctx->user_fctx = pixels;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = count;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	pixels2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 3;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		/* 0-based to 1-based */
+		pixels2[call_cntr].x += 1;
+		pixels2[call_cntr].y += 1;
+
+		values[0] = Float8GetDatum(pixels2[call_cntr].value);
+		values[1] = Int32GetDatum(pixels2[call_cntr].x);
+		values[2] = Int32GetDatum(pixels2[call_cntr].y);
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	else {
+		pfree(pixels2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * Return nearest value to a point
+ */
+PG_FUNCTION_INFO_V1(RASTER_nearestValue);
+Datum RASTER_nearestValue(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	int bandindex = 1;
+	int num_bands = 0;
+	GSERIALIZED *geom;
+	bool exclude_nodata_value = TRUE;
+	LWGEOM *lwgeom;
+	LWPOINT *point = NULL;
+	POINT2D p;
+
+	double x;
+	double y;
+	int count;
+	rt_pixel npixels = NULL;
+	double value = 0;
+	int hasvalue = 0;
+	int isnodata = 0;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_nearestValue: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* band index is 1-based */
+	if (!PG_ARGISNULL(1))
+		bandindex = PG_GETARG_INT32(1);
+	num_bands = rt_raster_get_num_bands(raster);
+	if (bandindex < 1 || bandindex > num_bands) {
+		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	/* point */
+	geom = PG_GETARG_GSERIALIZED_P(2);
+	if (gserialized_get_type(geom) != POINTTYPE) {
+		elog(NOTICE, "Geometry provided must be a point");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_FREE_IF_COPY(geom, 2);
+		PG_RETURN_NULL();
+	}
+
+	/* exclude_nodata_value flag */
+	if (!PG_ARGISNULL(3))
+		exclude_nodata_value = PG_GETARG_BOOL(3);
+
+	/* SRIDs of raster and geometry must match  */
+	if (clamp_srid(gserialized_get_srid(geom)) != clamp_srid(rt_raster_get_srid(raster))) {
+		elog(NOTICE, "SRIDs of geometry and raster do not match");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_FREE_IF_COPY(geom, 2);
+		PG_RETURN_NULL();
+	}
+
+	/* get band */
+	band = rt_raster_get_band(raster, bandindex - 1);
+	if (!band) {
+		elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_FREE_IF_COPY(geom, 2);
+		PG_RETURN_NULL();
+	}
+
+	/* process geometry */
+	lwgeom = lwgeom_from_gserialized(geom);
+
+	if (lwgeom_is_empty(lwgeom)) {
+		elog(NOTICE, "Geometry provided cannot be empty");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_FREE_IF_COPY(geom, 2);
+		PG_RETURN_NULL();
+	}
+
+	/* Get a 2D version of the geometry if necessary */
+	if (lwgeom_ndims(lwgeom) > 2) {
+		LWGEOM *lwgeom2d = lwgeom_force_2d(lwgeom);
+		lwgeom_free(lwgeom);
+		lwgeom = lwgeom2d;
+	}
+
+	point = lwgeom_as_lwpoint(lwgeom);
+	getPoint2d_p(point->point, 0, &p);
+
+	if (rt_raster_geopoint_to_cell(
+		raster,
+		p.x, p.y,
+		&x, &y,
+		NULL
+	) != ES_NONE) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		lwgeom_free(lwgeom);
+		PG_FREE_IF_COPY(geom, 2);
+		elog(ERROR, "RASTER_nearestValue: Could not compute pixel coordinates from spatial coordinates");
+		PG_RETURN_NULL();
+	}
+
+	/* get value at point */
+	if (
+		(x >= 0 && x < rt_raster_get_width(raster)) &&
+		(y >= 0 && y < rt_raster_get_height(raster))
+	) {
+		if (rt_band_get_pixel(band, x, y, &value, &isnodata) != ES_NONE) {
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			lwgeom_free(lwgeom);
+			PG_FREE_IF_COPY(geom, 2);
+			elog(ERROR, "RASTER_nearestValue: Could not get pixel value for band at index %d", bandindex);
+			PG_RETURN_NULL();
+		}
+
+		/* value at point, return value */
+		if (!exclude_nodata_value || !isnodata) {
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			lwgeom_free(lwgeom);
+			PG_FREE_IF_COPY(geom, 2);
+
+			PG_RETURN_FLOAT8(value);
+		}
+	}
+
+	/* get neighborhood */
+	count = rt_band_get_nearest_pixel(
+		band,
+		x, y,
+		0, 0,
+		exclude_nodata_value,
+		&npixels
+	);
+	rt_band_destroy(band);
+	/* error or no neighbors */
+	if (count < 1) {
+		/* error */
+		if (count < 0)
+			elog(NOTICE, "Could not get the nearest value for band at index %d", bandindex);
+		/* no nearest pixel */
+		else
+			elog(NOTICE, "No nearest value found for band at index %d", bandindex);
+
+		lwgeom_free(lwgeom);
+		PG_FREE_IF_COPY(geom, 2);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	/* more than one nearest value, see which one is closest */
+	if (count > 1) {
+		int i = 0;
+		LWPOLY *poly = NULL;
+		double lastdist = -1;
+		double dist;
+
+		for (i = 0; i < count; i++) {
+			/* convex-hull of pixel */
+			poly = rt_raster_pixel_as_polygon(raster, npixels[i].x, npixels[i].y);
+			if (!poly) {
+				lwgeom_free(lwgeom);
+				PG_FREE_IF_COPY(geom, 2);
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				elog(ERROR, "RASTER_nearestValue: Could not get polygon of neighboring pixel");
+				PG_RETURN_NULL();
+			}
+
+			/* distance between convex-hull and point */
+			dist = lwgeom_mindistance2d(lwpoly_as_lwgeom(poly), lwgeom);
+			if (lastdist < 0 || dist < lastdist) {
+				value = npixels[i].value;
+				hasvalue = 1;
+			}
+			lastdist = dist;
+
+			lwpoly_free(poly);
+		}
+	}
+	else {
+		value = npixels[0].value;
+		hasvalue = 1;
+	}
+
+	pfree(npixels);
+	lwgeom_free(lwgeom);
+	PG_FREE_IF_COPY(geom, 2);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	if (hasvalue)
+		PG_RETURN_FLOAT8(value);
+	else
+		PG_RETURN_NULL();
+}
+
+/**
+ * Return the neighborhood around a pixel
+ */
+PG_FUNCTION_INFO_V1(RASTER_neighborhood);
+Datum RASTER_neighborhood(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	int bandindex = 1;
+	int num_bands = 0;
+	int x = 0;
+	int y = 0;
+	int _x = 0;
+	int _y = 0;
+	int distance[2] = {0};
+	bool exclude_nodata_value = TRUE;
+	double pixval;
+	int isnodata = 0;
+
+	rt_pixel npixels = NULL;
+	int count;
+	double **value2D = NULL;
+	int **nodata2D = NULL;
+
+	int i = 0;
+	int j = 0;
+	int k = 0;
+	Datum *value1D = NULL;
+	bool *nodata1D = NULL;
+	int dim[2] = {0};
+	int lbound[2] = {1, 1};
+	ArrayType *mdArray = NULL;
+
+	int16 typlen;
+	bool typbyval;
+	char typalign;
+
+	/* pgraster is null, return nothing */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_neighborhood: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* band index is 1-based */
+	if (!PG_ARGISNULL(1))
+		bandindex = PG_GETARG_INT32(1);
+	num_bands = rt_raster_get_num_bands(raster);
+	if (bandindex < 1 || bandindex > num_bands) {
+		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	/* pixel column, 1-based */
+	x = PG_GETARG_INT32(2);
+	_x = x - 1;
+
+	/* pixel row, 1-based */
+	y = PG_GETARG_INT32(3);
+	_y = y - 1;
+
+	/* distance X axis */
+	distance[0] = PG_GETARG_INT32(4);
+	if (distance[0] < 0) {
+		elog(NOTICE, "Invalid value for distancex (must be >= zero). Returning NULL");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+	distance[0] = (uint16_t) distance[0];
+
+	/* distance Y axis */
+	distance[1] = PG_GETARG_INT32(5);
+	if (distance[1] < 0) {
+		elog(NOTICE, "Invalid value for distancey (must be >= zero). Returning NULL");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+	distance[1] = (uint16_t) distance[1];
+
+	/* exclude_nodata_value flag */
+	if (!PG_ARGISNULL(6))
+		exclude_nodata_value = PG_GETARG_BOOL(6);
+
+	/* get band */
+	band = rt_raster_get_band(raster, bandindex - 1);
+	if (!band) {
+		elog(NOTICE, "Could not find band at index %d. Returning NULL", bandindex);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	/* get neighborhood */
+	count = 0;
+	npixels = NULL;
+	if (distance[0] > 0 || distance[1] > 0) {
+		count = rt_band_get_nearest_pixel(
+			band,
+			_x, _y,
+			distance[0], distance[1],
+			exclude_nodata_value,
+			&npixels
+		);
+		/* error */
+		if (count < 0) {
+			elog(NOTICE, "Could not get the pixel's neighborhood for band at index %d", bandindex);
+			
+			rt_band_destroy(band);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+
+			PG_RETURN_NULL();
+		}
+	}
+
+	/* get pixel's value */
+	if (
+		(_x >= 0 && _x < rt_band_get_width(band)) &&
+		(_y >= 0 && _y < rt_band_get_height(band))
+	) {
+		if (rt_band_get_pixel(
+			band,
+			_x, _y,
+			&pixval,
+			&isnodata
+		) != ES_NONE) {
+			elog(NOTICE, "Could not get the pixel of band at index %d. Returning NULL", bandindex);
+			rt_band_destroy(band);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			PG_RETURN_NULL();
+		}
+	}
+	/* outside band extent, set to NODATA */
+	else {
+		/* has NODATA, use NODATA */
+		if (rt_band_get_hasnodata_flag(band))
+			rt_band_get_nodata(band, &pixval);
+		/* no NODATA, use min possible value */
+		else
+			pixval = rt_band_get_min_value(band);
+		isnodata = 1;
+	}
+	POSTGIS_RT_DEBUGF(4, "pixval: %f", pixval);
+
+
+	/* add pixel to neighborhood */
+	count++;
+	if (count > 1)
+		npixels = (rt_pixel) repalloc(npixels, sizeof(struct rt_pixel_t) * count);
+	else
+		npixels = (rt_pixel) palloc(sizeof(struct rt_pixel_t));
+	if (npixels == NULL) {
+
+		rt_band_destroy(band);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+
+		elog(ERROR, "RASTER_neighborhood: Could not reallocate memory for neighborhood");
+		PG_RETURN_NULL();
+	}
+	npixels[count - 1].x = _x;
+	npixels[count - 1].y = _y;
+	npixels[count - 1].nodata = 1;
+	npixels[count - 1].value = pixval;
+
+	/* set NODATA */
+	if (!exclude_nodata_value || !isnodata) {
+		npixels[count - 1].nodata = 0;
+	}
+
+	/* free unnecessary stuff */
+	rt_band_destroy(band);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	/* convert set of rt_pixel to 2D array */
+	/* dim is passed with element 0 being Y-axis and element 1 being X-axis */
+	count = rt_pixel_set_to_array(
+		npixels, count, NULL,
+		_x, _y,
+		distance[0], distance[1],
+		&value2D,
+		&nodata2D,
+		&(dim[1]), &(dim[0])
+	);
+	pfree(npixels);
+	if (count != ES_NONE) {
+		elog(NOTICE, "Could not create 2D array of neighborhood");
+		PG_RETURN_NULL();
+	}
+
+	/* 1D arrays for values and nodata from 2D arrays */
+	value1D = palloc(sizeof(Datum) * dim[0] * dim[1]);
+	nodata1D = palloc(sizeof(bool) * dim[0] * dim[1]);
+
+	if (value1D == NULL || nodata1D == NULL) {
+
+		for (i = 0; i < dim[0]; i++) {
+			pfree(value2D[i]);
+			pfree(nodata2D[i]);
+		}
+		pfree(value2D);
+		pfree(nodata2D);
+
+		elog(ERROR, "RASTER_neighborhood: Could not allocate memory for return 2D array");
+		PG_RETURN_NULL();
+	}
+
+	/* copy values from 2D arrays to 1D arrays */
+	k = 0;
+	/* Y-axis */
+	for (i = 0; i < dim[0]; i++) {
+		/* X-axis */
+		for (j = 0; j < dim[1]; j++) {
+			nodata1D[k] = (bool) nodata2D[i][j];
+			if (!nodata1D[k])
+				value1D[k] = Float8GetDatum(value2D[i][j]);
+			else
+				value1D[k] = PointerGetDatum(NULL);
+
+			k++;
+		}
+	}
+
+	/* no more need for 2D arrays */
+	for (i = 0; i < dim[0]; i++) {
+		pfree(value2D[i]);
+		pfree(nodata2D[i]);
+	}
+	pfree(value2D);
+	pfree(nodata2D);
+
+	/* info about the type of item in the multi-dimensional array (float8). */
+	get_typlenbyvalalign(FLOAT8OID, &typlen, &typbyval, &typalign);
+
+	mdArray = construct_md_array(
+		value1D, nodata1D,
+		2, dim, lbound,
+		FLOAT8OID,
+		typlen, typbyval, typalign
+	);
+
+	pfree(value1D);
+	pfree(nodata1D);
+
+	PG_RETURN_ARRAYTYPE_P(mdArray);
+}
+
diff --git a/raster/rt_pg/rtpg_raster_properties.c b/raster/rt_pg/rtpg_raster_properties.c
new file mode 100644
index 0000000..ca85bd3
--- /dev/null
+++ b/raster/rt_pg/rtpg_raster_properties.c
@@ -0,0 +1,1173 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h>
+#include <fmgr.h>
+#include <funcapi.h>
+
+#include "../../postgis_config.h"
+
+#if POSTGIS_PGSQL_VERSION > 92
+#include "access/htup_details.h" /* for heap_form_tuple() */
+#endif
+
+#include "rtpostgis.h"
+
+/* Get all the properties of a raster */
+Datum RASTER_getSRID(PG_FUNCTION_ARGS);
+Datum RASTER_getWidth(PG_FUNCTION_ARGS);
+Datum RASTER_getHeight(PG_FUNCTION_ARGS);
+Datum RASTER_getNumBands(PG_FUNCTION_ARGS);
+Datum RASTER_getXScale(PG_FUNCTION_ARGS);
+Datum RASTER_getYScale(PG_FUNCTION_ARGS);
+Datum RASTER_getXSkew(PG_FUNCTION_ARGS);
+Datum RASTER_getYSkew(PG_FUNCTION_ARGS);
+Datum RASTER_getXUpperLeft(PG_FUNCTION_ARGS);
+Datum RASTER_getYUpperLeft(PG_FUNCTION_ARGS);
+Datum RASTER_getPixelWidth(PG_FUNCTION_ARGS);
+Datum RASTER_getPixelHeight(PG_FUNCTION_ARGS);
+Datum RASTER_getGeotransform(PG_FUNCTION_ARGS);
+Datum RASTER_isEmpty(PG_FUNCTION_ARGS);
+Datum RASTER_hasNoBand(PG_FUNCTION_ARGS);
+
+/* get raster's meta data */
+Datum RASTER_metadata(PG_FUNCTION_ARGS);
+
+/* convert pixel/line to spatial coordinates */
+Datum RASTER_rasterToWorldCoord(PG_FUNCTION_ARGS);
+
+/* convert spatial coordinates to pixel/line*/
+Datum RASTER_worldToRasterCoord(PG_FUNCTION_ARGS);
+
+/* Set all the properties of a raster */
+Datum RASTER_setSRID(PG_FUNCTION_ARGS);
+Datum RASTER_setScale(PG_FUNCTION_ARGS);
+Datum RASTER_setScaleXY(PG_FUNCTION_ARGS);
+Datum RASTER_setSkew(PG_FUNCTION_ARGS);
+Datum RASTER_setSkewXY(PG_FUNCTION_ARGS);
+Datum RASTER_setUpperLeftXY(PG_FUNCTION_ARGS);
+Datum RASTER_setRotation(PG_FUNCTION_ARGS);
+Datum RASTER_setGeotransform(PG_FUNCTION_ARGS);
+
+/**
+ * Return the SRID associated with the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getSRID);
+Datum RASTER_getSRID(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    int32_t srid;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getSRID: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    srid = rt_raster_get_srid(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_INT32(srid);
+}
+
+/**
+ * Return the width of the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getWidth);
+Datum RASTER_getWidth(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    uint16_t width;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getWidth: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    width = rt_raster_get_width(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_INT32(width);
+}
+
+/**
+ * Return the height of the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getHeight);
+Datum RASTER_getHeight(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    uint16_t height;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getHeight: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    height = rt_raster_get_height(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_INT32(height);
+}
+
+/**
+ * Return the number of bands included in the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getNumBands);
+Datum RASTER_getNumBands(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    int32_t num_bands;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getNumBands: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    num_bands = rt_raster_get_num_bands(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_INT32(num_bands);
+}
+
+/**
+ * Return X scale from georeference of the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getXScale);
+Datum RASTER_getXScale(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    double xsize;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getXScale: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    xsize = rt_raster_get_x_scale(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(xsize);
+}
+
+/**
+ * Return Y scale from georeference of the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getYScale);
+Datum RASTER_getYScale(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    double ysize;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getYScale: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    ysize = rt_raster_get_y_scale(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(ysize);
+}
+
+/**
+ * Return value of the raster skew about the X axis.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getXSkew);
+Datum RASTER_getXSkew(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    double xskew;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getXSkew: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    xskew = rt_raster_get_x_skew(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(xskew);
+}
+
+/**
+ * Return value of the raster skew about the Y axis.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getYSkew);
+Datum RASTER_getYSkew(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    double yskew;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getYSkew: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    yskew = rt_raster_get_y_skew(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(yskew);
+}
+
+/**
+ * Return value of the raster offset in the X dimension.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getXUpperLeft);
+Datum RASTER_getXUpperLeft(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    double xul;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getXUpperLeft: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    xul = rt_raster_get_x_offset(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(xul);
+}
+
+/**
+ * Return value of the raster offset in the Y dimension.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getYUpperLeft);
+Datum RASTER_getYUpperLeft(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    double yul;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster ) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getYUpperLeft: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    yul = rt_raster_get_y_offset(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(yul);
+}
+
+/**
+ * Return the pixel width of the raster. The pixel width is
+ * a read-only, dynamically computed value derived from the 
+ * X Scale and the Y Skew.
+ *
+ * Pixel Width = sqrt( X Scale * X Scale + Y Skew * Y Skew )
+ */
+PG_FUNCTION_INFO_V1(RASTER_getPixelWidth);
+Datum RASTER_getPixelWidth(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    double xscale;
+    double yskew;
+    double pwidth;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if (!raster) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getPixelWidth: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    xscale = rt_raster_get_x_scale(raster);
+    yskew = rt_raster_get_y_skew(raster);
+    pwidth = sqrt(xscale*xscale + yskew*yskew);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(pwidth);
+}
+
+/**
+ * Return the pixel height of the raster. The pixel height is
+ * a read-only, dynamically computed value derived from the 
+ * Y Scale and the X Skew.
+ *
+ * Pixel Height = sqrt( Y Scale * Y Scale + X Skew * X Skew )
+ */
+PG_FUNCTION_INFO_V1(RASTER_getPixelHeight);
+Datum RASTER_getPixelHeight(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster;
+    rt_raster raster;
+    double yscale;
+    double xskew;
+    double pheight;
+
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if (!raster) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getPixelHeight: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    yscale = rt_raster_get_y_scale(raster);
+    xskew = rt_raster_get_x_skew(raster);
+    pheight = sqrt(yscale*yscale + xskew*xskew);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_FLOAT8(pheight);
+}
+
+/**
+ * Calculates the physically relevant parameters of the supplied raster's
+ * geotransform. Returns them as a set.
+ */
+PG_FUNCTION_INFO_V1(RASTER_getGeotransform);
+Datum RASTER_getGeotransform(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_raster raster = NULL;
+
+    double imag;
+    double jmag;
+    double theta_i;
+    double theta_ij;
+		/*
+    double xoffset;
+    double yoffset;
+		*/
+
+    TupleDesc result_tuple; /* for returning a composite */
+    int values_length = 6;
+    Datum values[values_length];
+    bool nulls[values_length];
+    HeapTuple heap_tuple ;   /* instance of the tuple to return */
+    Datum result;
+
+    POSTGIS_RT_DEBUG(3, "RASTER_getGeotransform: Starting");
+
+    /* get argument */
+    if (PG_ARGISNULL(0))
+        PG_RETURN_NULL();
+    pgraster = (rt_pgraster *)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    /* raster */
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if (!raster) {
+        PG_FREE_IF_COPY(pgraster, 0);
+        elog(ERROR, "RASTER_getGeotransform: Could not deserialize raster");
+        PG_RETURN_NULL();
+    }
+
+    /* do the calculation */
+    rt_raster_calc_phys_params(
+            rt_raster_get_x_scale(raster),
+            rt_raster_get_x_skew(raster),
+            rt_raster_get_y_skew(raster),
+            rt_raster_get_y_scale(raster),
+            &imag, &jmag, &theta_i, &theta_ij) ;
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    /* setup the return value infrastructure */
+    if (get_call_result_type(fcinfo, NULL, &result_tuple) != TYPEFUNC_COMPOSITE) {
+        ereport(ERROR, (
+            errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+            errmsg("RASTER_getGeotransform(): function returning record called in context that cannot accept type record"
+            )
+        ));
+        PG_RETURN_NULL();
+    }
+
+    BlessTupleDesc(result_tuple);
+
+    /* get argument */
+    /* prep the composite return value */
+    /* construct datum array */
+    values[0] = Float8GetDatum(imag);
+    values[1] = Float8GetDatum(jmag);
+    values[2] = Float8GetDatum(theta_i);
+    values[3] = Float8GetDatum(theta_ij);
+    values[4] = Float8GetDatum(rt_raster_get_x_offset(raster));
+    values[5] = Float8GetDatum(rt_raster_get_y_offset(raster));
+
+    memset(nulls, FALSE, sizeof(bool) * values_length);
+
+    /* stick em on the heap */
+    heap_tuple = heap_form_tuple(result_tuple, values, nulls);
+
+    /* make the tuple into a datum */
+    result = HeapTupleGetDatum(heap_tuple);
+
+    PG_RETURN_DATUM(result);
+}
+
+/**
+ * Check if raster is empty or not
+ */
+PG_FUNCTION_INFO_V1(RASTER_isEmpty);
+Datum RASTER_isEmpty(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_raster raster = NULL;
+    bool isempty = FALSE;
+
+    /* Deserialize raster */
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster )
+    {
+        ereport(ERROR,
+            (errcode(ERRCODE_OUT_OF_MEMORY),
+                errmsg("RASTER_isEmpty: Could not deserialize raster")));
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    isempty = rt_raster_is_empty(raster);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_BOOL(isempty);
+}
+
+/**
+ * Check if the raster has a given band or not
+ */
+PG_FUNCTION_INFO_V1(RASTER_hasNoBand);
+Datum RASTER_hasNoBand(PG_FUNCTION_ARGS)
+{
+    rt_pgraster *pgraster = NULL;
+    rt_raster raster = NULL;
+    int bandindex = 0;
+    bool hasnoband = FALSE;
+
+    /* Deserialize raster */
+    if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+    pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+    raster = rt_raster_deserialize(pgraster, TRUE);
+    if ( ! raster )
+    {
+        ereport(ERROR,
+            (errcode(ERRCODE_OUT_OF_MEMORY),
+                errmsg("RASTER_hasNoBand: Could not deserialize raster")));
+        PG_FREE_IF_COPY(pgraster, 0);
+        PG_RETURN_NULL();
+    }
+
+    /* Get band number */
+    bandindex = PG_GETARG_INT32(1);
+    hasnoband = !rt_raster_has_band(raster, bandindex - 1);
+
+    rt_raster_destroy(raster);
+    PG_FREE_IF_COPY(pgraster, 0);
+
+    PG_RETURN_BOOL(hasnoband);
+}
+
+/**
+ * Get raster's meta data
+ */
+PG_FUNCTION_INFO_V1(RASTER_metadata);
+Datum RASTER_metadata(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+
+	uint32_t numBands;
+	double scaleX;
+	double scaleY;
+	double ipX;
+	double ipY;
+	double skewX;
+	double skewY;
+	int32_t srid;
+	uint32_t width;
+	uint32_t height;
+
+	TupleDesc tupdesc;
+	int values_length = 10;
+	Datum values[values_length];
+	bool nulls[values_length];
+	HeapTuple tuple;
+	Datum result;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_metadata: Starting");
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+	/* raster */
+	raster = rt_raster_deserialize(pgraster, TRUE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_metadata; Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* upper left x, y */
+	ipX = rt_raster_get_x_offset(raster);
+	ipY = rt_raster_get_y_offset(raster);
+
+	/* width, height */
+	width = rt_raster_get_width(raster);
+	height = rt_raster_get_height(raster);
+
+	/* scale x, y */
+	scaleX = rt_raster_get_x_scale(raster);
+	scaleY = rt_raster_get_y_scale(raster);
+
+	/* skew x, y */
+	skewX = rt_raster_get_x_skew(raster);
+	skewY = rt_raster_get_y_skew(raster);
+
+	/* srid */
+	srid = rt_raster_get_srid(raster);
+
+	/* numbands */
+	numBands = rt_raster_get_num_bands(raster);
+
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	/* Build a tuple descriptor for our result type */
+	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+		ereport(ERROR, (
+			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+			errmsg(
+				"function returning record called in context "
+				"that cannot accept type record"
+			)
+		));
+	}
+
+	BlessTupleDesc(tupdesc);
+
+	values[0] = Float8GetDatum(ipX);
+	values[1] = Float8GetDatum(ipY);
+	values[2] = UInt32GetDatum(width);
+	values[3] = UInt32GetDatum(height);
+	values[4] = Float8GetDatum(scaleX);
+	values[5] = Float8GetDatum(scaleY);
+	values[6] = Float8GetDatum(skewX);
+	values[7] = Float8GetDatum(skewY);
+	values[8] = Int32GetDatum(srid);
+	values[9] = UInt32GetDatum(numBands);
+
+	memset(nulls, FALSE, sizeof(bool) * values_length);
+
+	/* build a tuple */
+	tuple = heap_form_tuple(tupdesc, values, nulls);
+
+	/* make the tuple into a datum */
+	result = HeapTupleGetDatum(tuple);
+
+	PG_RETURN_DATUM(result);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_rasterToWorldCoord);
+Datum RASTER_rasterToWorldCoord(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	int i = 0;
+	int cr[2] = {0};
+	bool skewed[2] = {false, false};
+	double cw[2] = {0};
+
+	TupleDesc tupdesc;
+	int values_length = 2;
+	Datum values[values_length];
+	bool nulls[values_length];
+	HeapTuple tuple;
+	Datum result;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_rasterToWorldCoord: Starting");
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+	/* raster */
+	raster = rt_raster_deserialize(pgraster, TRUE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_rasterToWorldCoord: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* raster skewed? */
+	skewed[0] = FLT_NEQ(rt_raster_get_x_skew(raster), 0) ? true : false;
+	skewed[1] = FLT_NEQ(rt_raster_get_y_skew(raster), 0) ? true : false;
+
+	/* column and row */
+	for (i = 1; i <= 2; i++) {
+		if (PG_ARGISNULL(i)) {
+			/* if skewed on same axis, parameter is required */
+			if (skewed[i - 1]) {
+				elog(NOTICE, "Pixel row and column required for computing longitude and latitude of a rotated raster");
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				PG_RETURN_NULL();
+			}
+
+			continue;
+		}
+
+		cr[i - 1] = PG_GETARG_INT32(i);
+	}
+
+	/* user-provided value is 1-based but needs to be 0-based */
+	if (rt_raster_cell_to_geopoint(
+		raster,
+		(double) cr[0] - 1, (double) cr[1] - 1,
+		&(cw[0]), &(cw[1]),
+		NULL
+	) != ES_NONE) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_rasterToWorldCoord: Could not compute longitude and latitude from pixel row and column");
+		PG_RETURN_NULL();
+	}
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	/* Build a tuple descriptor for our result type */
+	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+		ereport(ERROR, (
+			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+			errmsg(
+				"function returning record called in context "
+				"that cannot accept type record"
+			)
+		));
+	}
+
+	BlessTupleDesc(tupdesc);
+
+	values[0] = Float8GetDatum(cw[0]);
+	values[1] = Float8GetDatum(cw[1]);
+
+	memset(nulls, FALSE, sizeof(bool) * values_length);
+
+	/* build a tuple */
+	tuple = heap_form_tuple(tupdesc, values, nulls);
+
+	/* make the tuple into a datum */
+	result = HeapTupleGetDatum(tuple);
+
+	PG_RETURN_DATUM(result);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_worldToRasterCoord);
+Datum RASTER_worldToRasterCoord(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	int i = 0;
+	double cw[2] = {0};
+	double _cr[2] = {0};
+	int cr[2] = {0};
+	bool skewed = false;
+
+	TupleDesc tupdesc;
+	int values_length = 2;
+	Datum values[values_length];
+	bool nulls[values_length];
+	HeapTuple tuple;
+	Datum result;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_worldToRasterCoord: Starting");
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, sizeof(struct rt_raster_serialized_t));
+
+	/* raster */
+	raster = rt_raster_deserialize(pgraster, TRUE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_worldToRasterCoord: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* raster skewed? */
+	skewed = FLT_NEQ(rt_raster_get_x_skew(raster), 0) ? true : false;
+	if (!skewed)
+		skewed = FLT_NEQ(rt_raster_get_y_skew(raster), 0) ? true : false;
+
+	/* longitude and latitude */
+	for (i = 1; i <= 2; i++) {
+		if (PG_ARGISNULL(i)) {
+			/* if skewed, parameter is required */
+			if (skewed) {
+				elog(NOTICE, "Latitude and longitude required for computing pixel row and column of a rotated raster");
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				PG_RETURN_NULL();
+			}
+
+			continue;
+		}
+
+		cw[i - 1] = PG_GETARG_FLOAT8(i);
+	}
+
+	/* return pixel row and column values are 0-based */
+	if (rt_raster_geopoint_to_cell(
+		raster,
+		cw[0], cw[1],
+		&(_cr[0]), &(_cr[1]),
+		NULL
+	) != ES_NONE) {
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_worldToRasterCoord: Could not compute pixel row and column from longitude and latitude");
+		PG_RETURN_NULL();
+	}
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+
+	/* force to integer and add one to make 1-based */
+	cr[0] = ((int) _cr[0]) + 1;
+	cr[1] = ((int) _cr[1]) + 1;
+
+	/* Build a tuple descriptor for our result type */
+	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+		ereport(ERROR, (
+			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+			errmsg(
+				"function returning record called in context "
+				"that cannot accept type record"
+			)
+		));
+	}
+
+	BlessTupleDesc(tupdesc);
+
+	values[0] = Int32GetDatum(cr[0]);
+	values[1] = Int32GetDatum(cr[1]);
+
+	memset(nulls, FALSE, sizeof(bool) * values_length);
+
+	/* build a tuple */
+	tuple = heap_form_tuple(tupdesc, values, nulls);
+
+	/* make the tuple into a datum */
+	result = HeapTupleGetDatum(tuple);
+
+	PG_RETURN_DATUM(result);
+}
+
+/**
+ * Set the SRID associated with the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setSRID);
+Datum RASTER_setSRID(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster;
+	int32_t newSRID = PG_GETARG_INT32(1);
+
+	if (PG_ARGISNULL(0)) PG_RETURN_NULL();
+	pgraster = (rt_pgraster *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setSRID: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	rt_raster_set_srid(raster, newSRID);
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn) PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Set the scale of the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setScale);
+Datum RASTER_setScale(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster;
+	double size = PG_GETARG_FLOAT8(1);
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setScale: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	rt_raster_set_scale(raster, size, size);
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Set the pixel size of the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setScaleXY);
+Datum RASTER_setScaleXY(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster;
+	double xscale = PG_GETARG_FLOAT8(1);
+	double yscale = PG_GETARG_FLOAT8(2);
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setScaleXY: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	rt_raster_set_scale(raster, xscale, yscale);
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Set the skew of the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setSkew);
+Datum RASTER_setSkew(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster;
+	double skew = PG_GETARG_FLOAT8(1);
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setSkew: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	rt_raster_set_skews(raster, skew, skew);
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Set the skew of the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setSkewXY);
+Datum RASTER_setSkewXY(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster;
+	double xskew = PG_GETARG_FLOAT8(1);
+	double yskew = PG_GETARG_FLOAT8(2);
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setSkewXY: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	rt_raster_set_skews(raster, xskew, yskew);
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Set the raster offset in the X and Y dimension.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setUpperLeftXY);
+Datum RASTER_setUpperLeftXY(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster;
+	double xoffset = PG_GETARG_FLOAT8(1);
+	double yoffset = PG_GETARG_FLOAT8(2);
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setUpperLeftXY: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	rt_raster_set_offsets(raster, xoffset, yoffset);
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size); 
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Set the geotransform of the supplied raster. Returns the raster.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setGeotransform);
+Datum RASTER_setGeotransform(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster;
+	float8 imag, jmag, theta_i, theta_ij, xoffset, yoffset;
+
+	if (
+		PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ||
+		PG_ARGISNULL(3) || PG_ARGISNULL(4) ||
+		PG_ARGISNULL(5) || PG_ARGISNULL(6)
+	) {
+		PG_RETURN_NULL();
+	}
+
+	/* get the inputs */
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+	imag = PG_GETARG_FLOAT8(1);
+	jmag = PG_GETARG_FLOAT8(2);
+	theta_i = PG_GETARG_FLOAT8(3);
+	theta_ij = PG_GETARG_FLOAT8(4);
+	xoffset = PG_GETARG_FLOAT8(5);
+	yoffset = PG_GETARG_FLOAT8(6);
+
+	raster = rt_raster_deserialize(pgraster, TRUE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setGeotransform: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* store the new geotransform */
+	rt_raster_set_phys_params(raster, imag,jmag,theta_i,theta_ij);
+	rt_raster_set_offsets(raster, xoffset, yoffset);
+
+	/* prep the return value */
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL(); 
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
+
+/**
+ * Set the rotation of the raster. This method will change the X Scale,
+ * Y Scale, X Skew and Y Skew properties all at once to keep the rotations
+ * about the X and Y axis uniform.
+ *
+ * This method will set the rotation about the X axis and Y axis based on
+ * the pixel size. This pixel size may not be uniform if rasters have different
+ * skew values (the raster cells are diamond-shaped). If a raster has different
+ * skew values has a rotation set upon it, this method will remove the 
+ * diamond distortions of the cells, as each axis will have the same rotation.
+ */
+PG_FUNCTION_INFO_V1(RASTER_setRotation);
+Datum RASTER_setRotation(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_pgraster *pgrtn = NULL;
+	rt_raster raster;
+	double rotation = PG_GETARG_FLOAT8(1);
+	double imag, jmag, theta_i, theta_ij;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (! raster ) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_setRotation: Could not deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* preserve all defining characteristics of the grid except for rotation */
+	rt_raster_get_phys_params(raster, &imag, &jmag, &theta_i, &theta_ij);
+	rt_raster_set_phys_params(raster, imag, jmag, rotation, theta_ij);
+
+	pgrtn = rt_raster_serialize(raster);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (!pgrtn)
+		PG_RETURN_NULL();
+
+	SET_VARSIZE(pgrtn, pgrtn->size);
+	PG_RETURN_POINTER(pgrtn);
+}
diff --git a/raster/rt_pg/rtpg_spatial_relationship.c b/raster/rt_pg/rtpg_spatial_relationship.c
new file mode 100644
index 0000000..dc35569
--- /dev/null
+++ b/raster/rt_pg/rtpg_spatial_relationship.c
@@ -0,0 +1,1314 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h> /* for palloc */
+#include <fmgr.h>
+
+#include "../../postgis_config.h"
+
+#include "lwgeom_pg.h"
+#include "rtpostgis.h"
+
+/* determine if two rasters intersect */
+Datum RASTER_intersects(PG_FUNCTION_ARGS);
+
+/* determine if two rasters overlap */
+Datum RASTER_overlaps(PG_FUNCTION_ARGS);
+
+/* determine if two rasters touch */
+Datum RASTER_touches(PG_FUNCTION_ARGS);
+
+/* determine if the first raster contains the second raster */
+Datum RASTER_contains(PG_FUNCTION_ARGS);
+
+/* determine if the first raster contains properly the second raster */
+Datum RASTER_containsProperly(PG_FUNCTION_ARGS);
+
+/* determine if the first raster covers the second raster */
+Datum RASTER_covers(PG_FUNCTION_ARGS);
+
+/* determine if the first raster is covered by the second raster */
+Datum RASTER_coveredby(PG_FUNCTION_ARGS);
+
+/* determine if the two rasters are within the specified distance of each other */
+Datum RASTER_dwithin(PG_FUNCTION_ARGS);
+
+/* determine if the two rasters are fully within the specified distance of each other */
+Datum RASTER_dfullywithin(PG_FUNCTION_ARGS);
+
+/* determine if two rasters are aligned */
+Datum RASTER_sameAlignment(PG_FUNCTION_ARGS);
+Datum RASTER_notSameAlignmentReason(PG_FUNCTION_ARGS);
+
+/**
+ * See if two rasters intersect
+ */
+PG_FUNCTION_INFO_V1(RASTER_intersects);
+Datum RASTER_intersects(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+	uint32_t bandindex[2] = {0};
+	uint32_t hasbandindex[2] = {0};
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	uint32_t numBands;
+	int rtn;
+	int result;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_intersects: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(rast[i]);
+		if (numBands < 1) {
+			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
+			if (i > 0) i++;
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+
+		/* band index */
+		if (!PG_ARGISNULL(j)) {
+			bandindex[i] = PG_GETARG_INT32(j);
+			if (bandindex[i] < 1 || bandindex[i] > numBands) {
+				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
+				if (i > 0) i++;
+				for (k = 0; k < i; k++) {
+					rt_raster_destroy(rast[k]);
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				PG_RETURN_NULL();
+			}
+			hasbandindex[i] = 1;
+		}
+		else
+			hasbandindex[i] = 0;
+		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
+		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
+		j++;
+	}
+
+	/* hasbandindex must be balanced */
+	if (
+		(hasbandindex[0] && !hasbandindex[1]) ||
+		(!hasbandindex[0] && hasbandindex[1])
+	) {
+		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* SRID must match */
+	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "The two rasters provided have different SRIDs");
+		PG_RETURN_NULL();
+	}
+
+	rtn = rt_raster_intersects(
+		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
+		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+		&result
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_intersects: Could not test for intersection on the two rasters");
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_BOOL(result);
+}
+
+/**
+ * See if two rasters overlap
+ */
+PG_FUNCTION_INFO_V1(RASTER_overlaps);
+Datum RASTER_overlaps(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+	uint32_t bandindex[2] = {0};
+	uint32_t hasbandindex[2] = {0};
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	uint32_t numBands;
+	int rtn;
+	int result;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_overlaps: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(rast[i]);
+		if (numBands < 1) {
+			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
+			if (i > 0) i++;
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+
+		/* band index */
+		if (!PG_ARGISNULL(j)) {
+			bandindex[i] = PG_GETARG_INT32(j);
+			if (bandindex[i] < 1 || bandindex[i] > numBands) {
+				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
+				if (i > 0) i++;
+				for (k = 0; k < i; k++) {
+					rt_raster_destroy(rast[k]);
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				PG_RETURN_NULL();
+			}
+			hasbandindex[i] = 1;
+		}
+		else
+			hasbandindex[i] = 0;
+		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
+		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
+		j++;
+	}
+
+	/* hasbandindex must be balanced */
+	if (
+		(hasbandindex[0] && !hasbandindex[1]) ||
+		(!hasbandindex[0] && hasbandindex[1])
+	) {
+		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* SRID must match */
+	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "The two rasters provided have different SRIDs");
+		PG_RETURN_NULL();
+	}
+
+	rtn = rt_raster_overlaps(
+		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
+		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+		&result
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_overlaps: Could not test for overlap on the two rasters");
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_BOOL(result);
+}
+
+/**
+ * See if two rasters touch
+ */
+PG_FUNCTION_INFO_V1(RASTER_touches);
+Datum RASTER_touches(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+	uint32_t bandindex[2] = {0};
+	uint32_t hasbandindex[2] = {0};
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	uint32_t numBands;
+	int rtn;
+	int result;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_touches: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(rast[i]);
+		if (numBands < 1) {
+			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
+			if (i > 0) i++;
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+
+		/* band index */
+		if (!PG_ARGISNULL(j)) {
+			bandindex[i] = PG_GETARG_INT32(j);
+			if (bandindex[i] < 1 || bandindex[i] > numBands) {
+				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
+				if (i > 0) i++;
+				for (k = 0; k < i; k++) {
+					rt_raster_destroy(rast[k]);
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				PG_RETURN_NULL();
+			}
+			hasbandindex[i] = 1;
+		}
+		else
+			hasbandindex[i] = 0;
+		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
+		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
+		j++;
+	}
+
+	/* hasbandindex must be balanced */
+	if (
+		(hasbandindex[0] && !hasbandindex[1]) ||
+		(!hasbandindex[0] && hasbandindex[1])
+	) {
+		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* SRID must match */
+	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "The two rasters provided have different SRIDs");
+		PG_RETURN_NULL();
+	}
+
+	rtn = rt_raster_touches(
+		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
+		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+		&result
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_touches: Could not test for touch on the two rasters");
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_BOOL(result);
+}
+
+/**
+ * See if the first raster contains the second raster
+ */
+PG_FUNCTION_INFO_V1(RASTER_contains);
+Datum RASTER_contains(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+	uint32_t bandindex[2] = {0};
+	uint32_t hasbandindex[2] = {0};
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	uint32_t numBands;
+	int rtn;
+	int result;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_contains: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(rast[i]);
+		if (numBands < 1) {
+			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
+			if (i > 0) i++;
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+
+		/* band index */
+		if (!PG_ARGISNULL(j)) {
+			bandindex[i] = PG_GETARG_INT32(j);
+			if (bandindex[i] < 1 || bandindex[i] > numBands) {
+				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
+				if (i > 0) i++;
+				for (k = 0; k < i; k++) {
+					rt_raster_destroy(rast[k]);
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				PG_RETURN_NULL();
+			}
+			hasbandindex[i] = 1;
+		}
+		else
+			hasbandindex[i] = 0;
+		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
+		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
+		j++;
+	}
+
+	/* hasbandindex must be balanced */
+	if (
+		(hasbandindex[0] && !hasbandindex[1]) ||
+		(!hasbandindex[0] && hasbandindex[1])
+	) {
+		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* SRID must match */
+	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "The two rasters provided have different SRIDs");
+		PG_RETURN_NULL();
+	}
+
+	rtn = rt_raster_contains(
+		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
+		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+		&result
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_contains: Could not test that the first raster contains the second raster");
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_BOOL(result);
+}
+
+/**
+ * See if the first raster contains properly the second raster
+ */
+PG_FUNCTION_INFO_V1(RASTER_containsProperly);
+Datum RASTER_containsProperly(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+	uint32_t bandindex[2] = {0};
+	uint32_t hasbandindex[2] = {0};
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	uint32_t numBands;
+	int rtn;
+	int result;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_containsProperly: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(rast[i]);
+		if (numBands < 1) {
+			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
+			if (i > 0) i++;
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+
+		/* band index */
+		if (!PG_ARGISNULL(j)) {
+			bandindex[i] = PG_GETARG_INT32(j);
+			if (bandindex[i] < 1 || bandindex[i] > numBands) {
+				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
+				if (i > 0) i++;
+				for (k = 0; k < i; k++) {
+					rt_raster_destroy(rast[k]);
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				PG_RETURN_NULL();
+			}
+			hasbandindex[i] = 1;
+		}
+		else
+			hasbandindex[i] = 0;
+		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
+		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
+		j++;
+	}
+
+	/* hasbandindex must be balanced */
+	if (
+		(hasbandindex[0] && !hasbandindex[1]) ||
+		(!hasbandindex[0] && hasbandindex[1])
+	) {
+		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* SRID must match */
+	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "The two rasters provided have different SRIDs");
+		PG_RETURN_NULL();
+	}
+
+	rtn = rt_raster_contains_properly(
+		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
+		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+		&result
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_containsProperly: Could not test that the first raster contains properly the second raster");
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_BOOL(result);
+}
+
+/**
+ * See if the first raster covers the second raster
+ */
+PG_FUNCTION_INFO_V1(RASTER_covers);
+Datum RASTER_covers(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+	uint32_t bandindex[2] = {0};
+	uint32_t hasbandindex[2] = {0};
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	uint32_t numBands;
+	int rtn;
+	int result;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_covers: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(rast[i]);
+		if (numBands < 1) {
+			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
+			if (i > 0) i++;
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+
+		/* band index */
+		if (!PG_ARGISNULL(j)) {
+			bandindex[i] = PG_GETARG_INT32(j);
+			if (bandindex[i] < 1 || bandindex[i] > numBands) {
+				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
+				if (i > 0) i++;
+				for (k = 0; k < i; k++) {
+					rt_raster_destroy(rast[k]);
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				PG_RETURN_NULL();
+			}
+			hasbandindex[i] = 1;
+		}
+		else
+			hasbandindex[i] = 0;
+		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
+		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
+		j++;
+	}
+
+	/* hasbandindex must be balanced */
+	if (
+		(hasbandindex[0] && !hasbandindex[1]) ||
+		(!hasbandindex[0] && hasbandindex[1])
+	) {
+		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* SRID must match */
+	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "The two rasters provided have different SRIDs");
+		PG_RETURN_NULL();
+	}
+
+	rtn = rt_raster_covers(
+		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
+		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+		&result
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_covers: Could not test that the first raster covers the second raster");
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_BOOL(result);
+}
+
+/**
+ * See if the first raster is covered by the second raster
+ */
+PG_FUNCTION_INFO_V1(RASTER_coveredby);
+Datum RASTER_coveredby(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+	uint32_t bandindex[2] = {0};
+	uint32_t hasbandindex[2] = {0};
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	uint32_t numBands;
+	int rtn;
+	int result;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_coveredby: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(rast[i]);
+		if (numBands < 1) {
+			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
+			if (i > 0) i++;
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+
+		/* band index */
+		if (!PG_ARGISNULL(j)) {
+			bandindex[i] = PG_GETARG_INT32(j);
+			if (bandindex[i] < 1 || bandindex[i] > numBands) {
+				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
+				if (i > 0) i++;
+				for (k = 0; k < i; k++) {
+					rt_raster_destroy(rast[k]);
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				PG_RETURN_NULL();
+			}
+			hasbandindex[i] = 1;
+		}
+		else
+			hasbandindex[i] = 0;
+		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
+		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
+		j++;
+	}
+
+	/* hasbandindex must be balanced */
+	if (
+		(hasbandindex[0] && !hasbandindex[1]) ||
+		(!hasbandindex[0] && hasbandindex[1])
+	) {
+		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* SRID must match */
+	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "The two rasters provided have different SRIDs");
+		PG_RETURN_NULL();
+	}
+
+	rtn = rt_raster_coveredby(
+		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
+		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+		&result
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_coveredby: Could not test that the first raster is covered by the second raster");
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_BOOL(result);
+}
+
+/**
+ * See if the two rasters are within the specified distance of each other
+ */
+PG_FUNCTION_INFO_V1(RASTER_dwithin);
+Datum RASTER_dwithin(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+	uint32_t bandindex[2] = {0};
+	uint32_t hasbandindex[2] = {0};
+	double distance = 0;
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	uint32_t numBands;
+	int rtn;
+	int result;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_dwithin: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(rast[i]);
+		if (numBands < 1) {
+			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
+			if (i > 0) i++;
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+
+		/* band index */
+		if (!PG_ARGISNULL(j)) {
+			bandindex[i] = PG_GETARG_INT32(j);
+			if (bandindex[i] < 1 || bandindex[i] > numBands) {
+				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
+				if (i > 0) i++;
+				for (k = 0; k < i; k++) {
+					rt_raster_destroy(rast[k]);
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				PG_RETURN_NULL();
+			}
+			hasbandindex[i] = 1;
+		}
+		else
+			hasbandindex[i] = 0;
+		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
+		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
+		j++;
+	}
+
+	/* distance */
+	if (PG_ARGISNULL(4)) {
+		elog(NOTICE, "Distance cannot be NULL.  Returning NULL");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	distance = PG_GETARG_FLOAT8(4);
+	if (distance < 0) {
+		elog(NOTICE, "Distance cannot be less than zero.  Returning NULL");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* hasbandindex must be balanced */
+	if (
+		(hasbandindex[0] && !hasbandindex[1]) ||
+		(!hasbandindex[0] && hasbandindex[1])
+	) {
+		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* SRID must match */
+	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "The two rasters provided have different SRIDs");
+		PG_RETURN_NULL();
+	}
+
+	rtn = rt_raster_within_distance(
+		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
+		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+		distance,
+		&result
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_dwithin: Could not test that the two rasters are within the specified distance of each other");
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_BOOL(result);
+}
+
+/**
+ * See if the two rasters are fully within the specified distance of each other
+ */
+PG_FUNCTION_INFO_V1(RASTER_dfullywithin);
+Datum RASTER_dfullywithin(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+	uint32_t bandindex[2] = {0};
+	uint32_t hasbandindex[2] = {0};
+	double distance = 0;
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	uint32_t numBands;
+	int rtn;
+	int result;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(j));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], FALSE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_dfullywithin: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+
+		/* numbands */
+		numBands = rt_raster_get_num_bands(rast[i]);
+		if (numBands < 1) {
+			elog(NOTICE, "The %s raster provided has no bands", i < 1 ? "first" : "second");
+			if (i > 0) i++;
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+
+		/* band index */
+		if (!PG_ARGISNULL(j)) {
+			bandindex[i] = PG_GETARG_INT32(j);
+			if (bandindex[i] < 1 || bandindex[i] > numBands) {
+				elog(NOTICE, "Invalid band index (must use 1-based) for the %s raster. Returning NULL", i < 1 ? "first" : "second");
+				if (i > 0) i++;
+				for (k = 0; k < i; k++) {
+					rt_raster_destroy(rast[k]);
+					PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+				}
+				PG_RETURN_NULL();
+			}
+			hasbandindex[i] = 1;
+		}
+		else
+			hasbandindex[i] = 0;
+		POSTGIS_RT_DEBUGF(4, "hasbandindex[%d] = %d", i, hasbandindex[i]);
+		POSTGIS_RT_DEBUGF(4, "bandindex[%d] = %d", i, bandindex[i]);
+		j++;
+	}
+
+	/* distance */
+	if (PG_ARGISNULL(4)) {
+		elog(NOTICE, "Distance cannot be NULL.  Returning NULL");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	distance = PG_GETARG_FLOAT8(4);
+	if (distance < 0) {
+		elog(NOTICE, "Distance cannot be less than zero.  Returning NULL");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* hasbandindex must be balanced */
+	if (
+		(hasbandindex[0] && !hasbandindex[1]) ||
+		(!hasbandindex[0] && hasbandindex[1])
+	) {
+		elog(NOTICE, "Missing band index.  Band indices must be provided for both rasters if any one is provided");
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		PG_RETURN_NULL();
+	}
+
+	/* SRID must match */
+	if (rt_raster_get_srid(rast[0]) != rt_raster_get_srid(rast[1])) {
+		for (k = 0; k < set_count; k++) {
+			rt_raster_destroy(rast[k]);
+			PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+		}
+		elog(ERROR, "The two rasters provided have different SRIDs");
+		PG_RETURN_NULL();
+	}
+
+	rtn = rt_raster_fully_within_distance(
+		rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
+		rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+		distance,
+		&result
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_dfullywithin: Could not test that the two rasters are fully within the specified distance of each other");
+		PG_RETURN_NULL();
+	}
+
+	PG_RETURN_BOOL(result);
+}
+
+/**
+ * See if two rasters are aligned
+ */
+PG_FUNCTION_INFO_V1(RASTER_sameAlignment);
+Datum RASTER_sameAlignment(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	int rtn;
+	int aligned = 0;
+	char *reason = NULL;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(j), 0, sizeof(struct rt_raster_serialized_t));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], TRUE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_sameAlignment: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+	}
+
+	rtn = rt_raster_same_alignment(
+		rast[0],
+		rast[1],
+		&aligned,
+		&reason
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_sameAlignment: Could not test for alignment on the two rasters");
+		PG_RETURN_NULL();
+	}
+
+	/* only output reason if not aligned */
+	if (reason != NULL && !aligned)
+		elog(NOTICE, "%s", reason);
+
+	PG_RETURN_BOOL(aligned);
+}
+
+/**
+ * Return a reason why two rasters are not aligned
+ */
+PG_FUNCTION_INFO_V1(RASTER_notSameAlignmentReason);
+Datum RASTER_notSameAlignmentReason(PG_FUNCTION_ARGS)
+{
+	const int set_count = 2;
+	rt_pgraster *pgrast[2];
+	int pgrastpos[2] = {-1, -1};
+	rt_raster rast[2] = {NULL};
+
+	uint32_t i;
+	uint32_t j;
+	uint32_t k;
+	int rtn;
+	int aligned = 0;
+	char *reason = NULL;
+	text *result = NULL;
+
+	for (i = 0, j = 0; i < set_count; i++) {
+		/* pgrast is null, return null */
+		if (PG_ARGISNULL(j)) {
+			for (k = 0; k < i; k++) {
+				rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			PG_RETURN_NULL();
+		}
+		pgrast[i] = (rt_pgraster *) PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(j), 0, sizeof(struct rt_raster_serialized_t));
+		pgrastpos[i] = j;
+		j++;
+
+		/* raster */
+		rast[i] = rt_raster_deserialize(pgrast[i], TRUE);
+		if (!rast[i]) {
+			for (k = 0; k <= i; k++) {
+				if (k < i)
+					rt_raster_destroy(rast[k]);
+				PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+			}
+			elog(ERROR, "RASTER_notSameAlignmentReason: Could not deserialize the %s raster", i < 1 ? "first" : "second");
+			PG_RETURN_NULL();
+		}
+	}
+
+	rtn = rt_raster_same_alignment(
+		rast[0],
+		rast[1],
+		&aligned,
+		&reason
+	);
+	for (k = 0; k < set_count; k++) {
+		rt_raster_destroy(rast[k]);
+		PG_FREE_IF_COPY(pgrast[k], pgrastpos[k]);
+	}
+
+	if (rtn != ES_NONE) {
+		elog(ERROR, "RASTER_notSameAlignmentReason: Could not test for alignment on the two rasters");
+		PG_RETURN_NULL();
+	}
+
+	result = cstring2text(reason);
+	PG_RETURN_TEXT_P(result);
+}
diff --git a/raster/rt_pg/rtpg_statistics.c b/raster/rt_pg/rtpg_statistics.c
new file mode 100644
index 0000000..7192d7f
--- /dev/null
+++ b/raster/rt_pg/rtpg_statistics.c
@@ -0,0 +1,3046 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2013 Bborie Park <dustymugs at gmail.com>
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h>
+#include <fmgr.h>
+#include <utils/builtins.h> /* for text_to_cstring() */
+#include "utils/lsyscache.h" /* for get_typlenbyvalalign */
+#include "utils/array.h" /* for ArrayType */
+#include "catalog/pg_type.h" /* for INT2OID, INT4OID, FLOAT4OID, FLOAT8OID and TEXTOID */
+#include <executor/spi.h>
+#include <funcapi.h> /* for SRF */
+
+#include "../../postgis_config.h"
+
+#if POSTGIS_PGSQL_VERSION > 92
+#include "access/htup_details.h" /* for heap_form_tuple() */
+#endif
+
+#include "rtpostgis.h"
+
+/* Get summary stats */
+Datum RASTER_summaryStats(PG_FUNCTION_ARGS);
+Datum RASTER_summaryStatsCoverage(PG_FUNCTION_ARGS);
+
+Datum RASTER_summaryStats_transfn(PG_FUNCTION_ARGS);
+Datum RASTER_summaryStats_finalfn(PG_FUNCTION_ARGS);
+
+/* get histogram */
+Datum RASTER_histogram(PG_FUNCTION_ARGS);
+Datum RASTER_histogramCoverage(PG_FUNCTION_ARGS);
+
+/* get quantiles */
+Datum RASTER_quantile(PG_FUNCTION_ARGS);
+Datum RASTER_quantileCoverage(PG_FUNCTION_ARGS);
+
+/* get counts of values */
+Datum RASTER_valueCount(PG_FUNCTION_ARGS);
+Datum RASTER_valueCountCoverage(PG_FUNCTION_ARGS);
+
+/**
+ * Get summary stats of a band
+ */
+PG_FUNCTION_INFO_V1(RASTER_summaryStats);
+Datum RASTER_summaryStats(PG_FUNCTION_ARGS)
+{
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	int32_t bandindex = 1;
+	bool exclude_nodata_value = TRUE;
+	int num_bands = 0;
+	double sample = 0;
+	rt_bandstats stats = NULL;
+
+	TupleDesc tupdesc;
+	int values_length = 6;
+	Datum values[values_length];
+	bool nulls[values_length];
+	HeapTuple tuple;
+	Datum result;
+
+	/* pgraster is null, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+	pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+	raster = rt_raster_deserialize(pgraster, FALSE);
+	if (!raster) {
+		PG_FREE_IF_COPY(pgraster, 0);
+		elog(ERROR, "RASTER_summaryStats: Cannot deserialize raster");
+		PG_RETURN_NULL();
+	}
+
+	/* band index is 1-based */
+	if (!PG_ARGISNULL(1))
+		bandindex = PG_GETARG_INT32(1);
+	num_bands = rt_raster_get_num_bands(raster);
+	if (bandindex < 1 || bandindex > num_bands) {
+		elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	/* exclude_nodata_value flag */
+	if (!PG_ARGISNULL(2))
+		exclude_nodata_value = PG_GETARG_BOOL(2);
+
+	/* sample % */
+	if (!PG_ARGISNULL(3)) {
+		sample = PG_GETARG_FLOAT8(3);
+		if (sample < 0 || sample > 1) {
+			elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			PG_RETURN_NULL();
+		}
+		else if (FLT_EQ(sample, 0.0))
+			sample = 1;
+	}
+	else
+		sample = 1;
+
+	/* get band */
+	band = rt_raster_get_band(raster, bandindex - 1);
+	if (!band) {
+		elog(NOTICE, "Cannot find band at index %d. Returning NULL", bandindex);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		PG_RETURN_NULL();
+	}
+
+	/* we don't need the raw values, hence the zero parameter */
+	stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 0, NULL, NULL, NULL);
+	rt_band_destroy(band);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 0);
+	if (NULL == stats) {
+		elog(NOTICE, "Cannot compute summary statistics for band at index %d. Returning NULL", bandindex);
+		PG_RETURN_NULL();
+	}
+
+	/* Build a tuple descriptor for our result type */
+	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+		ereport(ERROR, (
+			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+			errmsg(
+				"function returning record called in context "
+				"that cannot accept type record"
+			)
+		));
+	}
+
+	BlessTupleDesc(tupdesc);
+
+	memset(nulls, FALSE, sizeof(bool) * values_length);
+
+	values[0] = Int64GetDatum(stats->count);
+	if (stats->count > 0) {
+		values[1] = Float8GetDatum(stats->sum);
+		values[2] = Float8GetDatum(stats->mean);
+		values[3] = Float8GetDatum(stats->stddev);
+		values[4] = Float8GetDatum(stats->min);
+		values[5] = Float8GetDatum(stats->max);
+	}
+	else {
+		nulls[1] = TRUE;
+		nulls[2] = TRUE;
+		nulls[3] = TRUE;
+		nulls[4] = TRUE;
+		nulls[5] = TRUE;
+	}
+
+	/* build a tuple */
+	tuple = heap_form_tuple(tupdesc, values, nulls);
+
+	/* make the tuple into a datum */
+	result = HeapTupleGetDatum(tuple);
+
+	/* clean up */
+	pfree(stats);
+
+	PG_RETURN_DATUM(result);
+}
+
+/**
+ * Get summary stats of a coverage for a specific band
+ */
+PG_FUNCTION_INFO_V1(RASTER_summaryStatsCoverage);
+Datum RASTER_summaryStatsCoverage(PG_FUNCTION_ARGS)
+{
+	text *tablenametext = NULL;
+	char *tablename = NULL;
+	text *colnametext = NULL;
+	char *colname = NULL;
+	int32_t bandindex = 1;
+	bool exclude_nodata_value = TRUE;
+	double sample = 0;
+
+	int len = 0;
+	char *sql = NULL;
+	int spi_result;
+	Portal portal;
+	TupleDesc tupdesc;
+	SPITupleTable *tuptable = NULL;
+	HeapTuple tuple;
+	Datum datum;
+	bool isNull = FALSE;
+
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	int num_bands = 0;
+	uint64_t cK = 0;
+	double cM = 0;
+	double cQ = 0;
+	rt_bandstats stats = NULL;
+	rt_bandstats rtn = NULL;
+
+	int values_length = 6;
+	Datum values[values_length];
+	bool nulls[values_length];
+	Datum result;
+
+	/* tablename is null, return null */
+	if (PG_ARGISNULL(0)) {
+		elog(NOTICE, "Table name must be provided");
+		PG_RETURN_NULL();
+	}
+	tablenametext = PG_GETARG_TEXT_P(0);
+	tablename = text_to_cstring(tablenametext);
+	if (!strlen(tablename)) {
+		elog(NOTICE, "Table name must be provided");
+		PG_RETURN_NULL();
+	}
+
+	/* column name is null, return null */
+	if (PG_ARGISNULL(1)) {
+		elog(NOTICE, "Column name must be provided");
+		PG_RETURN_NULL();
+	}
+	colnametext = PG_GETARG_TEXT_P(1);
+	colname = text_to_cstring(colnametext);
+	if (!strlen(colname)) {
+		elog(NOTICE, "Column name must be provided");
+		PG_RETURN_NULL();
+	}
+
+	/* band index is 1-based */
+	if (!PG_ARGISNULL(2))
+		bandindex = PG_GETARG_INT32(2);
+
+	/* exclude_nodata_value flag */
+	if (!PG_ARGISNULL(3))
+		exclude_nodata_value = PG_GETARG_BOOL(3);
+
+	/* sample % */
+	if (!PG_ARGISNULL(4)) {
+		sample = PG_GETARG_FLOAT8(4);
+		if (sample < 0 || sample > 1) {
+			elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
+			rt_raster_destroy(raster);
+			PG_RETURN_NULL();
+		}
+		else if (FLT_EQ(sample, 0.0))
+			sample = 1;
+	}
+	else
+		sample = 1;
+
+	/* iterate through rasters of coverage */
+	/* connect to database */
+	spi_result = SPI_connect();
+	if (spi_result != SPI_OK_CONNECT) {
+		pfree(sql);
+		elog(ERROR, "RASTER_summaryStatsCoverage: Cannot connect to database using SPI");
+		PG_RETURN_NULL();
+	}
+
+	/* create sql */
+	len = sizeof(char) * (strlen("SELECT \"\" FROM \"\" WHERE \"\" IS NOT NULL") + (strlen(colname) * 2) + strlen(tablename) + 1);
+	sql = (char *) palloc(len);
+	if (NULL == sql) {
+		if (SPI_tuptable) SPI_freetuptable(tuptable);
+		SPI_finish();
+		elog(ERROR, "RASTER_summaryStatsCoverage: Cannot allocate memory for sql");
+		PG_RETURN_NULL();
+	}
+
+	/* get cursor */
+	snprintf(sql, len, "SELECT \"%s\" FROM \"%s\" WHERE \"%s\" IS NOT NULL", colname, tablename, colname);
+	portal = SPI_cursor_open_with_args(
+		"coverage",
+		sql,
+		0, NULL,
+		NULL, NULL,
+		TRUE, 0
+	);
+	pfree(sql);
+
+	/* process resultset */
+	SPI_cursor_fetch(portal, TRUE, 1);
+	while (SPI_processed == 1 && SPI_tuptable != NULL) {
+		tupdesc = SPI_tuptable->tupdesc;
+		tuptable = SPI_tuptable;
+		tuple = tuptable->vals[0];
+
+		datum = SPI_getbinval(tuple, tupdesc, 1, &isNull);
+		if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_cursor_close(portal);
+			SPI_finish();
+
+			if (NULL != rtn) pfree(rtn);
+			elog(ERROR, "RASTER_summaryStatsCoverage: Cannot get raster of coverage");
+			PG_RETURN_NULL();
+		}
+		else if (isNull) {
+			SPI_cursor_fetch(portal, TRUE, 1);
+			continue;
+		}
+
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(datum);
+
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_cursor_close(portal);
+			SPI_finish();
+
+			if (NULL != rtn) pfree(rtn);
+			elog(ERROR, "RASTER_summaryStatsCoverage: Cannot deserialize raster");
+			PG_RETURN_NULL();
+		}
+
+		/* inspect number of bands */
+		num_bands = rt_raster_get_num_bands(raster);
+		if (bandindex < 1 || bandindex > num_bands) {
+			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+
+			rt_raster_destroy(raster);
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_cursor_close(portal);
+			SPI_finish();
+
+			if (NULL != rtn) pfree(rtn);
+			PG_RETURN_NULL();
+		}
+
+		/* get band */
+		band = rt_raster_get_band(raster, bandindex - 1);
+		if (!band) {
+			elog(NOTICE, "Cannot find band at index %d. Returning NULL", bandindex);
+
+			rt_raster_destroy(raster);
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_cursor_close(portal);
+			SPI_finish();
+
+			if (NULL != rtn) pfree(rtn);
+			PG_RETURN_NULL();
+		}
+
+		/* we don't need the raw values, hence the zero parameter */
+		stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 0, &cK, &cM, &cQ);
+
+		rt_band_destroy(band);
+		rt_raster_destroy(raster);
+
+		if (NULL == stats) {
+			elog(NOTICE, "Cannot compute summary statistics for band at index %d. Returning NULL", bandindex);
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_cursor_close(portal);
+			SPI_finish();
+
+			if (NULL != rtn) pfree(rtn);
+			PG_RETURN_NULL();
+		}
+
+		/* initialize rtn */
+		if (stats->count > 0) {
+			if (NULL == rtn) {
+				rtn = (rt_bandstats) SPI_palloc(sizeof(struct rt_bandstats_t));
+				if (NULL == rtn) {
+
+					if (SPI_tuptable) SPI_freetuptable(tuptable);
+					SPI_cursor_close(portal);
+					SPI_finish();
+
+					elog(ERROR, "RASTER_summaryStatsCoverage: Cannot allocate memory for summary stats of coverage");
+					PG_RETURN_NULL();
+				}
+
+				rtn->sample = stats->sample;
+				rtn->count = stats->count;
+				rtn->min = stats->min;
+				rtn->max = stats->max;
+				rtn->sum = stats->sum;
+				rtn->mean = stats->mean;
+				rtn->stddev = -1;
+
+				rtn->values = NULL;
+				rtn->sorted = 0;
+			}
+			else {
+				rtn->count += stats->count;
+				rtn->sum += stats->sum;
+
+				if (stats->min < rtn->min)
+					rtn->min = stats->min;
+				if (stats->max > rtn->max)
+					rtn->max = stats->max;
+			}
+		}
+
+		pfree(stats);
+
+		/* next record */
+		SPI_cursor_fetch(portal, TRUE, 1);
+	}
+
+	if (SPI_tuptable) SPI_freetuptable(tuptable);
+	SPI_cursor_close(portal);
+	SPI_finish();
+
+	if (NULL == rtn) {
+		elog(ERROR, "RASTER_summaryStatsCoverage: Cannot compute coverage summary stats");
+		PG_RETURN_NULL();
+	}
+
+	/* coverage mean and deviation */
+	rtn->mean = rtn->sum / rtn->count;
+	/* sample deviation */
+	if (rtn->sample > 0 && rtn->sample < 1)
+		rtn->stddev = sqrt(cQ / (rtn->count - 1));
+	/* standard deviation */
+	else
+		rtn->stddev = sqrt(cQ / rtn->count);
+
+	/* Build a tuple descriptor for our result type */
+	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+		ereport(ERROR, (
+			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+			errmsg(
+				"function returning record called in context "
+				"that cannot accept type record"
+			)
+		));
+	}
+
+	BlessTupleDesc(tupdesc);
+
+	memset(nulls, FALSE, sizeof(bool) * values_length);
+
+	values[0] = Int64GetDatum(rtn->count);
+	if (rtn->count > 0) {
+		values[1] = Float8GetDatum(rtn->sum);
+		values[2] = Float8GetDatum(rtn->mean);
+		values[3] = Float8GetDatum(rtn->stddev);
+		values[4] = Float8GetDatum(rtn->min);
+		values[5] = Float8GetDatum(rtn->max);
+	}
+	else {
+		nulls[1] = TRUE;
+		nulls[2] = TRUE;
+		nulls[3] = TRUE;
+		nulls[4] = TRUE;
+		nulls[5] = TRUE;
+	}
+
+	/* build a tuple */
+	tuple = heap_form_tuple(tupdesc, values, nulls);
+
+	/* make the tuple into a datum */
+	result = HeapTupleGetDatum(tuple);
+
+	/* clean up */
+	pfree(rtn);
+
+	PG_RETURN_DATUM(result);
+}
+
+/* ---------------------------------------------------------------- */
+/* Aggregate ST_SummaryStats                                        */
+/* ---------------------------------------------------------------- */
+
+typedef struct rtpg_summarystats_arg_t *rtpg_summarystats_arg;
+struct rtpg_summarystats_arg_t {
+	rt_bandstats stats;
+
+	/* coefficients for one-pass standard deviation */
+	uint64_t cK;
+	double cM;
+	double cQ;
+
+	int32_t band_index; /* one-based */
+	bool exclude_nodata_value;
+	double sample; /* value between 0 and 1 */
+};
+
+static void
+rtpg_summarystats_arg_destroy(rtpg_summarystats_arg arg) {
+	if (arg->stats != NULL)
+		pfree(arg->stats);
+
+	pfree(arg);
+}
+
+static rtpg_summarystats_arg
+rtpg_summarystats_arg_init() {
+	rtpg_summarystats_arg arg = NULL;
+
+	arg = palloc(sizeof(struct rtpg_summarystats_arg_t));
+	if (arg == NULL) {
+		elog(
+			ERROR,
+			"rtpg_summarystats_arg_init: Cannot allocate memory for function arguments"
+		);
+		return NULL;
+	}
+
+	arg->stats = (rt_bandstats) palloc(sizeof(struct rt_bandstats_t));
+	if (arg->stats == NULL) {
+		rtpg_summarystats_arg_destroy(arg);
+		elog(
+			ERROR,
+			"rtpg_summarystats_arg_init: Cannot allocate memory for stats function argument"
+		);
+		return NULL;
+	}
+
+	arg->stats->sample = 0;
+	arg->stats->count = 0;
+	arg->stats->min = 0;
+	arg->stats->max = 0;
+	arg->stats->sum = 0;
+	arg->stats->mean = 0;
+	arg->stats->stddev = -1;
+	arg->stats->values = NULL;
+	arg->stats->sorted = 0;
+
+	arg->cK = 0;
+	arg->cM = 0;
+	arg->cQ = 0;
+
+	arg->band_index = 1;
+	arg->exclude_nodata_value = TRUE;
+	arg->sample = 1;
+
+	return arg;
+}
+
+PG_FUNCTION_INFO_V1(RASTER_summaryStats_transfn);
+Datum RASTER_summaryStats_transfn(PG_FUNCTION_ARGS)
+{
+	MemoryContext aggcontext;
+	MemoryContext oldcontext;
+	rtpg_summarystats_arg state = NULL;
+	bool skiparg = FALSE;
+
+	int i = 0;
+
+	rt_pgraster *pgraster = NULL;
+	rt_raster raster = NULL;
+	rt_band band = NULL;
+	int num_bands = 0;
+	rt_bandstats stats = NULL;
+
+	POSTGIS_RT_DEBUG(3, "Starting...");
+
+	/* cannot be called directly as this is exclusive aggregate function */
+	if (!AggCheckCallContext(fcinfo, &aggcontext)) {
+		elog(
+			ERROR,
+			"RASTER_summaryStats_transfn: Cannot be called in a non-aggregate context"
+		);
+		PG_RETURN_NULL();
+	}
+
+	/* switch to aggcontext */
+	oldcontext = MemoryContextSwitchTo(aggcontext);
+
+	if (PG_ARGISNULL(0)) {
+		POSTGIS_RT_DEBUG(3, "Creating state variable");
+
+		state = rtpg_summarystats_arg_init();
+		if (state == NULL) {
+			MemoryContextSwitchTo(oldcontext);
+			elog(
+				ERROR,
+				"RASTER_summaryStats_transfn: Cannot allocate memory for state variable"
+			);
+			PG_RETURN_NULL();
+		}
+
+		skiparg = FALSE;
+	}
+	else {
+		POSTGIS_RT_DEBUG(3, "State variable already exists");
+		state = (rtpg_summarystats_arg) PG_GETARG_POINTER(0);
+		skiparg = TRUE;
+	}
+
+	/* raster arg is NOT NULL */
+	if (!PG_ARGISNULL(1)) {
+		/* deserialize raster */
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+
+		/* Get raster object */
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (raster == NULL) {
+
+			rtpg_summarystats_arg_destroy(state);
+			PG_FREE_IF_COPY(pgraster, 1);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_summaryStats_transfn: Cannot deserialize raster");
+			PG_RETURN_NULL();
+		}
+	}
+
+	do {
+		Oid calltype;
+		int nargs = 0;
+
+		if (skiparg)
+			break;
+
+		/* 4 or 5 total possible args */
+		nargs = PG_NARGS();
+		POSTGIS_RT_DEBUGF(4, "nargs = %d", nargs);
+
+		for (i = 2; i < nargs; i++) {
+			if (PG_ARGISNULL(i))
+				continue;
+
+			calltype = get_fn_expr_argtype(fcinfo->flinfo, i);
+
+			/* band index */
+			if (
+				(calltype == INT2OID || calltype == INT4OID) &&
+				i == 2
+			) {
+				if (calltype == INT2OID)
+					state->band_index = PG_GETARG_INT16(i);
+				else
+					state->band_index = PG_GETARG_INT32(i);
+
+				/* basic check, > 0 */
+				if (state->band_index < 1) {
+
+					rtpg_summarystats_arg_destroy(state);
+					if (raster != NULL) {
+						rt_raster_destroy(raster);
+						PG_FREE_IF_COPY(pgraster, 1);
+					}
+
+					MemoryContextSwitchTo(oldcontext);
+					elog(
+						ERROR,
+						"RASTER_summaryStats_transfn: Invalid band index (must use 1-based). Returning NULL"
+					);
+					PG_RETURN_NULL();
+				}
+			}
+			/* exclude_nodata_value */
+			else if (
+				calltype == BOOLOID && (
+					i == 2 || i == 3
+				)
+			) {
+				state->exclude_nodata_value = PG_GETARG_BOOL(i);
+			}
+			/* sample rate */
+			else if (
+				(calltype == FLOAT4OID || calltype == FLOAT8OID) &&
+				(i == 3 || i == 4)
+			) {
+				if (calltype == FLOAT4OID)
+					state->sample = PG_GETARG_FLOAT4(i);
+				else
+					state->sample = PG_GETARG_FLOAT8(i);
+
+				/* basic check, 0 <= sample <= 1 */
+				if (state->sample < 0. || state->sample > 1.) {
+
+					rtpg_summarystats_arg_destroy(state);
+					if (raster != NULL) {
+						rt_raster_destroy(raster);
+						PG_FREE_IF_COPY(pgraster, 1);
+					}
+
+					MemoryContextSwitchTo(oldcontext);
+					elog(
+						ERROR,
+						"Invalid sample percentage (must be between 0 and 1). Returning NULL"
+					);
+
+					PG_RETURN_NULL();
+				}
+				else if (FLT_EQ(state->sample, 0.0))
+					state->sample = 1;
+			}
+			/* unknown arg */
+			else {
+				rtpg_summarystats_arg_destroy(state);
+				if (raster != NULL) {
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 1);
+				}
+
+				MemoryContextSwitchTo(oldcontext);
+				elog(
+					ERROR,
+					"RASTER_summaryStats_transfn: Unknown function parameter at index %d",
+					i
+				);
+				PG_RETURN_NULL();
+			}
+		}
+	}
+	while (0);
+
+	/* null raster, return */
+	if (PG_ARGISNULL(1)) {
+		POSTGIS_RT_DEBUG(4, "NULL raster so processing required");
+		MemoryContextSwitchTo(oldcontext);
+		PG_RETURN_POINTER(state);
+	}
+
+	/* inspect number of bands */
+	num_bands = rt_raster_get_num_bands(raster);
+	if (state->band_index > num_bands) {
+		elog(
+			NOTICE,
+			"Raster does not have band at index %d. Skipping raster",
+			state->band_index
+		);
+
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 1);
+
+		MemoryContextSwitchTo(oldcontext);
+		PG_RETURN_POINTER(state);
+	}
+
+	/* get band */
+	band = rt_raster_get_band(raster, state->band_index - 1);
+	if (!band) {
+		elog(
+			NOTICE, "Cannot find band at index %d. Skipping raster",
+			state->band_index
+		);
+
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 1);
+
+		MemoryContextSwitchTo(oldcontext);
+		PG_RETURN_POINTER(state);
+	}
+
+	/* we don't need the raw values, hence the zero parameter */
+	stats = rt_band_get_summary_stats(
+		band, (int) state->exclude_nodata_value,
+		state->sample, 0,
+		&(state->cK), &(state->cM), &(state->cQ)
+	);
+
+	rt_band_destroy(band);
+	rt_raster_destroy(raster);
+	PG_FREE_IF_COPY(pgraster, 1);
+
+	if (NULL == stats) {
+		elog(
+			NOTICE,
+			"Cannot compute summary statistics for band at index %d. Returning NULL",
+			state->band_index
+		);
+
+		rtpg_summarystats_arg_destroy(state);
+
+		MemoryContextSwitchTo(oldcontext);
+		PG_RETURN_NULL();
+	}
+
+	if (stats->count > 0) {
+		if (state->stats->count < 1) {
+			state->stats->sample = stats->sample;
+			state->stats->count = stats->count;
+			state->stats->min = stats->min;
+			state->stats->max = stats->max;
+			state->stats->sum = stats->sum;
+			state->stats->mean = stats->mean;
+			state->stats->stddev = -1;
+		}
+		else {
+			state->stats->count += stats->count;
+			state->stats->sum += stats->sum;
+
+			if (stats->min < state->stats->min)
+				state->stats->min = stats->min;
+			if (stats->max > state->stats->max)
+				state->stats->max = stats->max;
+		}
+	}
+
+	pfree(stats);
+
+	/* switch back to local context */
+	MemoryContextSwitchTo(oldcontext);
+
+	POSTGIS_RT_DEBUG(3, "Finished");
+
+	PG_RETURN_POINTER(state);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_summaryStats_finalfn);
+Datum RASTER_summaryStats_finalfn(PG_FUNCTION_ARGS)
+{
+	rtpg_summarystats_arg state = NULL;
+
+	TupleDesc tupdesc;
+	HeapTuple tuple;
+	int values_length = 6;
+	Datum values[values_length];
+	bool nulls[values_length];
+	Datum result;
+
+	POSTGIS_RT_DEBUG(3, "Starting...");
+
+	/* cannot be called directly as this is exclusive aggregate function */
+	if (!AggCheckCallContext(fcinfo, NULL)) {
+		elog(ERROR, "RASTER_summaryStats_finalfn: Cannot be called in a non-aggregate context");
+		PG_RETURN_NULL();
+	}
+
+	/* NULL, return null */
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	state = (rtpg_summarystats_arg) PG_GETARG_POINTER(0);
+
+	if (NULL == state) {
+		elog(ERROR, "RASTER_summaryStats_finalfn: Cannot compute coverage summary stats");
+		PG_RETURN_NULL();
+	}
+
+	/* coverage mean and deviation */
+	if (state->stats->count > 0) {
+		state->stats->mean = state->stats->sum / state->stats->count;
+		/* sample deviation */
+		if (state->stats->sample > 0 && state->stats->sample < 1)
+			state->stats->stddev = sqrt(state->cQ / (state->stats->count - 1));
+		/* standard deviation */
+		else
+			state->stats->stddev = sqrt(state->cQ / state->stats->count);
+	}
+
+	/* Build a tuple descriptor for our result type */
+	if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+		rtpg_summarystats_arg_destroy(state);
+		ereport(ERROR, (
+			errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+			errmsg(
+				"function returning record called in context "
+				"that cannot accept type record"
+			)
+		));
+	}
+
+	BlessTupleDesc(tupdesc);
+
+	memset(nulls, FALSE, sizeof(bool) * values_length);
+
+	values[0] = Int64GetDatum(state->stats->count);
+	if (state->stats->count > 0) {
+		values[1] = Float8GetDatum(state->stats->sum);
+		values[2] = Float8GetDatum(state->stats->mean);
+		values[3] = Float8GetDatum(state->stats->stddev);
+		values[4] = Float8GetDatum(state->stats->min);
+		values[5] = Float8GetDatum(state->stats->max);
+	}
+	else {
+		nulls[1] = TRUE;
+		nulls[2] = TRUE;
+		nulls[3] = TRUE;
+		nulls[4] = TRUE;
+		nulls[5] = TRUE;
+	}
+
+	/* build a tuple */
+	tuple = heap_form_tuple(tupdesc, values, nulls);
+
+	/* make the tuple into a datum */
+	result = HeapTupleGetDatum(tuple);
+
+	/* clean up */
+	rtpg_summarystats_arg_destroy(state);
+
+	PG_RETURN_DATUM(result);
+}
+
+/**
+ * Returns histogram for a band
+ */
+PG_FUNCTION_INFO_V1(RASTER_histogram);
+Datum RASTER_histogram(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+
+	int i;
+	rt_histogram hist;
+	rt_histogram hist2;
+	int call_cntr;
+	int max_calls;
+
+	/* first call of function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+		int32_t bandindex = 1;
+		int num_bands = 0;
+		bool exclude_nodata_value = TRUE;
+		double sample = 0;
+		uint32_t bin_count = 0;
+		double *bin_width = NULL;
+		uint32_t bin_width_count = 0;
+		double width = 0;
+		bool right = FALSE;
+		double min = 0;
+		double max = 0;
+		rt_bandstats stats = NULL;
+		uint32_t count;
+
+		int j;
+		int n;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+
+		POSTGIS_RT_DEBUG(3, "RASTER_histogram: Starting");
+
+		/* 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);
+
+		/* pgraster is null, return nothing */
+		if (PG_ARGISNULL(0)) {
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_histogram: Cannot deserialize raster");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* band index is 1-based */
+		if (!PG_ARGISNULL(1))
+			bandindex = PG_GETARG_INT32(1);
+		num_bands = rt_raster_get_num_bands(raster);
+		if (bandindex < 1 || bandindex > num_bands) {
+			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* exclude_nodata_value flag */
+		if (!PG_ARGISNULL(2))
+			exclude_nodata_value = PG_GETARG_BOOL(2);
+
+		/* sample % */
+		if (!PG_ARGISNULL(3)) {
+			sample = PG_GETARG_FLOAT8(3);
+			if (sample < 0 || sample > 1) {
+				elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+			else if (FLT_EQ(sample, 0.0))
+				sample = 1;
+		}
+		else
+			sample = 1;
+
+		/* bin_count */
+		if (!PG_ARGISNULL(4)) {
+			bin_count = PG_GETARG_INT32(4);
+			if (bin_count < 1) bin_count = 0;
+		}
+
+		/* bin_width */
+		if (!PG_ARGISNULL(5)) {
+			array = PG_GETARG_ARRAYTYPE_P(5);
+			etype = ARR_ELEMTYPE(array);
+			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+			switch (etype) {
+				case FLOAT4OID:
+				case FLOAT8OID:
+					break;
+				default:
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_histogram: Invalid data type for width");
+					SRF_RETURN_DONE(funcctx);
+					break;
+			}
+
+			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+				&nulls, &n);
+
+			bin_width = palloc(sizeof(double) * n);
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) continue;
+
+				switch (etype) {
+					case FLOAT4OID:
+						width = (double) DatumGetFloat4(e[i]);
+						break;
+					case FLOAT8OID:
+						width = (double) DatumGetFloat8(e[i]);
+						break;
+				}
+
+				if (width < 0 || FLT_EQ(width, 0.0)) {
+					elog(NOTICE, "Invalid value for width (must be greater than 0). Returning NULL");
+					pfree(bin_width);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				bin_width[j] = width;
+				POSTGIS_RT_DEBUGF(5, "bin_width[%d] = %f", j, bin_width[j]);
+				j++;
+			}
+			bin_width_count = j;
+
+			if (j < 1) {
+				pfree(bin_width);
+				bin_width = NULL;
+			}
+		}
+
+		/* right */
+		if (!PG_ARGISNULL(6))
+			right = PG_GETARG_BOOL(6);
+
+		/* min */
+		if (!PG_ARGISNULL(7)) min = PG_GETARG_FLOAT8(7);
+
+		/* max */
+		if (!PG_ARGISNULL(8)) max = PG_GETARG_FLOAT8(8);
+
+		/* get band */
+		band = rt_raster_get_band(raster, bandindex - 1);
+		if (!band) {
+			elog(NOTICE, "Cannot find band at index %d. Returning NULL", bandindex);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get stats */
+		stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 1, NULL, NULL, NULL);
+		rt_band_destroy(band);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		if (NULL == stats || NULL == stats->values) {
+			elog(NOTICE, "Cannot compute summary statistics for band at index %d", bandindex);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		else if (stats->count < 1) {
+			elog(NOTICE, "Cannot compute histogram for band at index %d as the band has no values", bandindex);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get histogram */
+		hist = rt_band_get_histogram(stats, bin_count, bin_width, bin_width_count, right, min, max, &count);
+		if (bin_width_count) pfree(bin_width);
+		pfree(stats);
+		if (NULL == hist || !count) {
+			elog(NOTICE, "Cannot compute histogram for band at index %d", bandindex);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		POSTGIS_RT_DEBUGF(3, "%d bins returned", count);
+
+		/* Store needed information */
+		funcctx->user_fctx = hist;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = count;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	hist2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 4;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+
+		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		values[0] = Float8GetDatum(hist2[call_cntr].min);
+		values[1] = Float8GetDatum(hist2[call_cntr].max);
+		values[2] = Int64GetDatum(hist2[call_cntr].count);
+		values[3] = Float8GetDatum(hist2[call_cntr].percent);
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		pfree(hist2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * Returns histogram of a coverage for a specified band
+ */
+PG_FUNCTION_INFO_V1(RASTER_histogramCoverage);
+Datum RASTER_histogramCoverage(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+
+	int i;
+	rt_histogram covhist = NULL;
+	rt_histogram covhist2;
+	int call_cntr;
+	int max_calls;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_histogramCoverage: Starting");
+
+	/* first call of function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+
+		text *tablenametext = NULL;
+		char *tablename = NULL;
+		text *colnametext = NULL;
+		char *colname = NULL;
+		int32_t bandindex = 1;
+		bool exclude_nodata_value = TRUE;
+		double sample = 0;
+		uint32_t bin_count = 0;
+		double *bin_width = NULL;
+		uint32_t bin_width_count = 0;
+		double width = 0;
+		bool right = FALSE;
+		uint32_t count;
+
+		int len = 0;
+		char *sql = NULL;
+		char *tmp = NULL;
+		double min = 0;
+		double max = 0;
+		int spi_result;
+		Portal portal;
+		SPITupleTable *tuptable = NULL;
+		HeapTuple tuple;
+		Datum datum;
+		bool isNull = FALSE;
+
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+		int num_bands = 0;
+		rt_bandstats stats = NULL;
+		rt_histogram hist;
+		uint64_t sum = 0;
+
+		int j;
+		int n;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+
+		POSTGIS_RT_DEBUG(3, "RASTER_histogramCoverage: first call of function");
+
+		/* 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);
+
+		/* tablename is null, return null */
+		if (PG_ARGISNULL(0)) {
+			elog(NOTICE, "Table name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		tablenametext = PG_GETARG_TEXT_P(0);
+		tablename = text_to_cstring(tablenametext);
+		if (!strlen(tablename)) {
+			elog(NOTICE, "Table name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: tablename = %s", tablename);
+
+		/* column name is null, return null */
+		if (PG_ARGISNULL(1)) {
+			elog(NOTICE, "Column name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		colnametext = PG_GETARG_TEXT_P(1);
+		colname = text_to_cstring(colnametext);
+		if (!strlen(colname)) {
+			elog(NOTICE, "Column name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: colname = %s", colname);
+
+		/* band index is 1-based */
+		if (!PG_ARGISNULL(2))
+			bandindex = PG_GETARG_INT32(2);
+
+		/* exclude_nodata_value flag */
+		if (!PG_ARGISNULL(3))
+			exclude_nodata_value = PG_GETARG_BOOL(3);
+
+		/* sample % */
+		if (!PG_ARGISNULL(4)) {
+			sample = PG_GETARG_FLOAT8(4);
+			if (sample < 0 || sample > 1) {
+				elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+			else if (FLT_EQ(sample, 0.0))
+				sample = 1;
+		}
+		else
+			sample = 1;
+
+		/* bin_count */
+		if (!PG_ARGISNULL(5)) {
+			bin_count = PG_GETARG_INT32(5);
+			if (bin_count < 1) bin_count = 0;
+		}
+
+		/* bin_width */
+		if (!PG_ARGISNULL(6)) {
+			array = PG_GETARG_ARRAYTYPE_P(6);
+			etype = ARR_ELEMTYPE(array);
+			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+			switch (etype) {
+				case FLOAT4OID:
+				case FLOAT8OID:
+					break;
+				default:
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_histogramCoverage: Invalid data type for width");
+					SRF_RETURN_DONE(funcctx);
+					break;
+			}
+
+			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+				&nulls, &n);
+
+			bin_width = palloc(sizeof(double) * n);
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) continue;
+
+				switch (etype) {
+					case FLOAT4OID:
+						width = (double) DatumGetFloat4(e[i]);
+						break;
+					case FLOAT8OID:
+						width = (double) DatumGetFloat8(e[i]);
+						break;
+				}
+
+				if (width < 0 || FLT_EQ(width, 0.0)) {
+					elog(NOTICE, "Invalid value for width (must be greater than 0). Returning NULL");
+					pfree(bin_width);
+					MemoryContextSwitchTo(oldcontext);
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				bin_width[j] = width;
+				POSTGIS_RT_DEBUGF(5, "bin_width[%d] = %f", j, bin_width[j]);
+				j++;
+			}
+			bin_width_count = j;
+
+			if (j < 1) {
+				pfree(bin_width);
+				bin_width = NULL;
+			}
+		}
+
+		/* right */
+		if (!PG_ARGISNULL(7))
+			right = PG_GETARG_BOOL(7);
+
+		/* connect to database */
+		spi_result = SPI_connect();
+		if (spi_result != SPI_OK_CONNECT) {
+
+			if (bin_width_count) pfree(bin_width);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_histogramCoverage: Cannot connect to database using SPI");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* coverage stats */
+		len = sizeof(char) * (strlen("SELECT min, max FROM _st_summarystats('','',,::boolean,)") + strlen(tablename) + strlen(colname) + (MAX_INT_CHARLEN * 2) + MAX_DBL_CHARLEN + 1);
+		sql = (char *) palloc(len);
+		if (NULL == sql) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			if (bin_width_count) pfree(bin_width);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_histogramCoverage: Cannot allocate memory for sql");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get stats */
+		snprintf(sql, len, "SELECT min, max FROM _st_summarystats('%s','%s',%d,%d::boolean,%f)", tablename, colname, bandindex, (exclude_nodata_value ? 1 : 0), sample);
+		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: %s", sql);
+		spi_result = SPI_execute(sql, TRUE, 0);
+		pfree(sql);
+		if (spi_result != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			if (bin_width_count) pfree(bin_width);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_histogramCoverage: Cannot get summary stats of coverage");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		tupdesc = SPI_tuptable->tupdesc;
+		tuptable = SPI_tuptable;
+		tuple = tuptable->vals[0];
+
+		tmp = SPI_getvalue(tuple, tupdesc, 1);
+		if (NULL == tmp || !strlen(tmp)) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			if (bin_width_count) pfree(bin_width);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_histogramCoverage: Cannot get summary stats of coverage");
+			SRF_RETURN_DONE(funcctx);
+		}
+		min = strtod(tmp, NULL);
+		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: min = %f", min);
+		pfree(tmp);
+
+		tmp = SPI_getvalue(tuple, tupdesc, 2);
+		if (NULL == tmp || !strlen(tmp)) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			if (bin_width_count) pfree(bin_width);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_histogramCoverage: Cannot get summary stats of coverage");
+			SRF_RETURN_DONE(funcctx);
+		}
+		max = strtod(tmp, NULL);
+		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: max = %f", max);
+		pfree(tmp);
+
+		/* iterate through rasters of coverage */
+		/* create sql */
+		len = sizeof(char) * (strlen("SELECT \"\" FROM \"\" WHERE \"\" IS NOT NULL") + (strlen(colname) * 2) + strlen(tablename) + 1);
+		sql = (char *) palloc(len);
+		if (NULL == sql) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			if (bin_width_count) pfree(bin_width);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_histogramCoverage: Cannot allocate memory for sql");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get cursor */
+		snprintf(sql, len, "SELECT \"%s\" FROM \"%s\" WHERE \"%s\" IS NOT NULL", colname, tablename, colname);
+		POSTGIS_RT_DEBUGF(3, "RASTER_histogramCoverage: %s", sql);
+		portal = SPI_cursor_open_with_args(
+			"coverage",
+			sql,
+			0, NULL,
+			NULL, NULL,
+			TRUE, 0
+		);
+		pfree(sql);
+
+		/* process resultset */
+		SPI_cursor_fetch(portal, TRUE, 1);
+		while (SPI_processed == 1 && SPI_tuptable != NULL) {
+			tupdesc = SPI_tuptable->tupdesc;
+			tuptable = SPI_tuptable;
+			tuple = tuptable->vals[0];
+
+			datum = SPI_getbinval(tuple, tupdesc, 1, &isNull);
+			if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covhist) pfree(covhist);
+				if (bin_width_count) pfree(bin_width);
+
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_histogramCoverage: Cannot get raster of coverage");
+				SRF_RETURN_DONE(funcctx);
+			}
+			else if (isNull) {
+				SPI_cursor_fetch(portal, TRUE, 1);
+				continue;
+			}
+
+			pgraster = (rt_pgraster *) PG_DETOAST_DATUM(datum);
+
+			raster = rt_raster_deserialize(pgraster, FALSE);
+			if (!raster) {
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covhist) pfree(covhist);
+				if (bin_width_count) pfree(bin_width);
+
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_histogramCoverage: Cannot deserialize raster");
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* inspect number of bands*/
+			num_bands = rt_raster_get_num_bands(raster);
+			if (bandindex < 1 || bandindex > num_bands) {
+				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+
+				rt_raster_destroy(raster);
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covhist) pfree(covhist);
+				if (bin_width_count) pfree(bin_width);
+
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* get band */
+			band = rt_raster_get_band(raster, bandindex - 1);
+			if (!band) {
+				elog(NOTICE, "Cannot find band at index %d. Returning NULL", bandindex);
+
+				rt_raster_destroy(raster);
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covhist) pfree(covhist);
+				if (bin_width_count) pfree(bin_width);
+
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* we need the raw values, hence the non-zero parameter */
+			stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 1, NULL, NULL, NULL);
+
+			rt_band_destroy(band);
+			rt_raster_destroy(raster);
+
+			if (NULL == stats) {
+				elog(NOTICE, "Cannot compute summary statistics for band at index %d. Returning NULL", bandindex);
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covhist) pfree(covhist);
+				if (bin_width_count) pfree(bin_width);
+
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* get histogram */
+			if (stats->count > 0) {
+				hist = rt_band_get_histogram(stats, bin_count, bin_width, bin_width_count, right, min, max, &count);
+				pfree(stats);
+				if (NULL == hist || !count) {
+					elog(NOTICE, "Cannot compute histogram for band at index %d", bandindex);
+
+					if (SPI_tuptable) SPI_freetuptable(tuptable);
+					SPI_cursor_close(portal);
+					SPI_finish();
+
+					if (NULL != covhist) pfree(covhist);
+					if (bin_width_count) pfree(bin_width);
+
+					MemoryContextSwitchTo(oldcontext);
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				POSTGIS_RT_DEBUGF(3, "%d bins returned", count);
+
+				/* coverage histogram */
+				if (NULL == covhist) {
+					covhist = (rt_histogram) SPI_palloc(sizeof(struct rt_histogram_t) * count);
+					if (NULL == covhist) {
+
+						pfree(hist);
+						if (SPI_tuptable) SPI_freetuptable(tuptable);
+						SPI_cursor_close(portal);
+						SPI_finish();
+
+						if (bin_width_count) pfree(bin_width);
+
+						MemoryContextSwitchTo(oldcontext);
+						elog(ERROR, "RASTER_histogramCoverage: Cannot allocate memory for histogram of coverage");
+						SRF_RETURN_DONE(funcctx);
+					}
+
+					for (i = 0; i < count; i++) {
+						sum += hist[i].count;
+						covhist[i].count = hist[i].count;
+						covhist[i].percent = 0;
+						covhist[i].min = hist[i].min;
+						covhist[i].max = hist[i].max;
+					}
+				}
+				else {
+					for (i = 0; i < count; i++) {
+						sum += hist[i].count;
+						covhist[i].count += hist[i].count;
+					}
+				}
+
+				pfree(hist);
+
+				/* assuming bin_count wasn't set, force consistency */
+				if (bin_count <= 0) bin_count = count;
+			}
+
+			/* next record */
+			SPI_cursor_fetch(portal, TRUE, 1);
+		}
+
+		if (SPI_tuptable) SPI_freetuptable(tuptable);
+		SPI_cursor_close(portal);
+		SPI_finish();
+
+		if (bin_width_count) pfree(bin_width);
+
+		/* finish percent of histogram */
+		if (sum > 0) {
+			for (i = 0; i < count; i++)
+				covhist[i].percent = covhist[i].count / (double) sum;
+		}
+
+		/* Store needed information */
+		funcctx->user_fctx = covhist;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = count;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	covhist2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 4;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+
+		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		values[0] = Float8GetDatum(covhist2[call_cntr].min);
+		values[1] = Float8GetDatum(covhist2[call_cntr].max);
+		values[2] = Int64GetDatum(covhist2[call_cntr].count);
+		values[3] = Float8GetDatum(covhist2[call_cntr].percent);
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		pfree(covhist2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * Returns quantiles for a band
+ */
+PG_FUNCTION_INFO_V1(RASTER_quantile);
+Datum RASTER_quantile(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+
+	int i;
+	rt_quantile quant;
+	rt_quantile quant2;
+	int call_cntr;
+	int max_calls;
+
+	/* first call of function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+		int32_t bandindex = 0;
+		int num_bands = 0;
+		bool exclude_nodata_value = TRUE;
+		double sample = 0;
+		double *quantiles = NULL;
+		uint32_t quantiles_count = 0;
+		double quantile = 0;
+		rt_bandstats stats = NULL;
+		uint32_t count;
+
+		int j;
+		int n;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+
+		/* 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);
+
+		/* pgraster is null, return nothing */
+		if (PG_ARGISNULL(0)) {
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_quantile: Cannot deserialize raster");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* band index is 1-based */
+		bandindex = PG_GETARG_INT32(1);
+		num_bands = rt_raster_get_num_bands(raster);
+		if (bandindex < 1 || bandindex > num_bands) {
+			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* exclude_nodata_value flag */
+		if (!PG_ARGISNULL(2))
+			exclude_nodata_value = PG_GETARG_BOOL(2);
+
+		/* sample % */
+		if (!PG_ARGISNULL(3)) {
+			sample = PG_GETARG_FLOAT8(3);
+			if (sample < 0 || sample > 1) {
+				elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
+				rt_raster_destroy(raster);
+				PG_FREE_IF_COPY(pgraster, 0);
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+			else if (FLT_EQ(sample, 0.0))
+				sample = 1;
+		}
+		else
+			sample = 1;
+
+		/* quantiles */
+		if (!PG_ARGISNULL(4)) {
+			array = PG_GETARG_ARRAYTYPE_P(4);
+			etype = ARR_ELEMTYPE(array);
+			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+			switch (etype) {
+				case FLOAT4OID:
+				case FLOAT8OID:
+					break;
+				default:
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_quantile: Invalid data type for quantiles");
+					SRF_RETURN_DONE(funcctx);
+					break;
+			}
+
+			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+				&nulls, &n);
+
+			quantiles = palloc(sizeof(double) * n);
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) continue;
+
+				switch (etype) {
+					case FLOAT4OID:
+						quantile = (double) DatumGetFloat4(e[i]);
+						break;
+					case FLOAT8OID:
+						quantile = (double) DatumGetFloat8(e[i]);
+						break;
+				}
+
+				if (quantile < 0 || quantile > 1) {
+					elog(NOTICE, "Invalid value for quantile (must be between 0 and 1). Returning NULL");
+					pfree(quantiles);
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				quantiles[j] = quantile;
+				POSTGIS_RT_DEBUGF(5, "quantiles[%d] = %f", j, quantiles[j]);
+				j++;
+			}
+			quantiles_count = j;
+
+			if (j < 1) {
+				pfree(quantiles);
+				quantiles = NULL;
+			}
+		}
+
+		/* get band */
+		band = rt_raster_get_band(raster, bandindex - 1);
+		if (!band) {
+			elog(NOTICE, "Cannot find band at index %d. Returning NULL", bandindex);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get stats */
+		stats = rt_band_get_summary_stats(band, (int) exclude_nodata_value, sample, 1, NULL, NULL, NULL);
+		rt_band_destroy(band);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		if (NULL == stats || NULL == stats->values) {
+			elog(NOTICE, "Cannot retrieve summary statistics for band at index %d", bandindex);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		else if (stats->count < 1) {
+			elog(NOTICE, "Cannot compute quantiles for band at index %d as the band has no values", bandindex);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get quantiles */
+		quant = rt_band_get_quantiles(stats, quantiles, quantiles_count, &count);
+		if (quantiles_count) pfree(quantiles);
+		pfree(stats);
+		if (NULL == quant || !count) {
+			elog(NOTICE, "Cannot compute quantiles for band at index %d", bandindex);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		POSTGIS_RT_DEBUGF(3, "%d quantiles returned", count);
+
+		/* Store needed information */
+		funcctx->user_fctx = quant;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = count;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	quant2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 2;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+
+		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		values[0] = Float8GetDatum(quant2[call_cntr].quantile);
+		values[1] = Float8GetDatum(quant2[call_cntr].value);
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		pfree(quant2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/**
+ * Returns selected quantiles of a coverage for a specified band
+ */
+PG_FUNCTION_INFO_V1(RASTER_quantileCoverage);
+Datum RASTER_quantileCoverage(PG_FUNCTION_ARGS)
+{
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+
+	int i;
+	rt_quantile covquant = NULL;
+	rt_quantile covquant2;
+	int call_cntr;
+	int max_calls;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_quantileCoverage: Starting");
+
+	/* first call of function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+
+		text *tablenametext = NULL;
+		char *tablename = NULL;
+		text *colnametext = NULL;
+		char *colname = NULL;
+		int32_t bandindex = 1;
+		bool exclude_nodata_value = TRUE;
+		double sample = 0;
+		double *quantiles = NULL;
+		uint32_t quantiles_count = 0;
+		double quantile = 0;
+		uint32_t count;
+
+		int len = 0;
+		char *sql = NULL;
+		char *tmp = NULL;
+		uint64_t cov_count = 0;
+		int spi_result;
+		Portal portal;
+		SPITupleTable *tuptable = NULL;
+		HeapTuple tuple;
+		Datum datum;
+		bool isNull = FALSE;
+
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+		int num_bands = 0;
+		struct quantile_llist *qlls = NULL;
+		uint32_t qlls_count;
+
+		int j;
+		int n;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+
+		POSTGIS_RT_DEBUG(3, "RASTER_quantileCoverage: first call of function");
+
+		/* 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);
+
+		/* tablename is null, return null */
+		if (PG_ARGISNULL(0)) {
+			elog(NOTICE, "Table name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		tablenametext = PG_GETARG_TEXT_P(0);
+		tablename = text_to_cstring(tablenametext);
+		if (!strlen(tablename)) {
+			elog(NOTICE, "Table name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		POSTGIS_RT_DEBUGF(3, "RASTER_quantileCoverage: tablename = %s", tablename);
+
+		/* column name is null, return null */
+		if (PG_ARGISNULL(1)) {
+			elog(NOTICE, "Column name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		colnametext = PG_GETARG_TEXT_P(1);
+		colname = text_to_cstring(colnametext);
+		if (!strlen(colname)) {
+			elog(NOTICE, "Column name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		POSTGIS_RT_DEBUGF(3, "RASTER_quantileCoverage: colname = %s", colname);
+
+		/* band index is 1-based */
+		if (!PG_ARGISNULL(2))
+			bandindex = PG_GETARG_INT32(2);
+
+		/* exclude_nodata_value flag */
+		if (!PG_ARGISNULL(3))
+			exclude_nodata_value = PG_GETARG_BOOL(3);
+
+		/* sample % */
+		if (!PG_ARGISNULL(4)) {
+			sample = PG_GETARG_FLOAT8(4);
+			if (sample < 0 || sample > 1) {
+				elog(NOTICE, "Invalid sample percentage (must be between 0 and 1). Returning NULL");
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+			else if (FLT_EQ(sample, 0.0))
+				sample = 1;
+		}
+		else
+			sample = 1;
+
+		/* quantiles */
+		if (!PG_ARGISNULL(5)) {
+			array = PG_GETARG_ARRAYTYPE_P(5);
+			etype = ARR_ELEMTYPE(array);
+			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+			switch (etype) {
+				case FLOAT4OID:
+				case FLOAT8OID:
+					break;
+				default:
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_quantileCoverage: Invalid data type for quantiles");
+					SRF_RETURN_DONE(funcctx);
+					break;
+			}
+
+			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+				&nulls, &n);
+
+			quantiles = palloc(sizeof(double) * n);
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) continue;
+
+				switch (etype) {
+					case FLOAT4OID:
+						quantile = (double) DatumGetFloat4(e[i]);
+						break;
+					case FLOAT8OID:
+						quantile = (double) DatumGetFloat8(e[i]);
+						break;
+				}
+
+				if (quantile < 0 || quantile > 1) {
+					elog(NOTICE, "Invalid value for quantile (must be between 0 and 1). Returning NULL");
+					pfree(quantiles);
+					MemoryContextSwitchTo(oldcontext);
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				quantiles[j] = quantile;
+				POSTGIS_RT_DEBUGF(5, "quantiles[%d] = %f", j, quantiles[j]);
+				j++;
+			}
+			quantiles_count = j;
+
+			if (j < 1) {
+				pfree(quantiles);
+				quantiles = NULL;
+			}
+		}
+
+		/* coverage stats */
+		/* connect to database */
+		spi_result = SPI_connect();
+		if (spi_result != SPI_OK_CONNECT) {
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_quantileCoverage: Cannot connect to database using SPI");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		len = sizeof(char) * (strlen("SELECT count FROM _st_summarystats('','',,::boolean,)") + strlen(tablename) + strlen(colname) + (MAX_INT_CHARLEN * 2) + MAX_DBL_CHARLEN + 1);
+		sql = (char *) palloc(len);
+		if (NULL == sql) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_quantileCoverage: Cannot allocate memory for sql");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get stats */
+		snprintf(sql, len, "SELECT count FROM _st_summarystats('%s','%s',%d,%d::boolean,%f)", tablename, colname, bandindex, (exclude_nodata_value ? 1 : 0), sample);
+		POSTGIS_RT_DEBUGF(3, "stats sql:  %s", sql);
+		spi_result = SPI_execute(sql, TRUE, 0);
+		pfree(sql);
+		if (spi_result != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_quantileCoverage: Cannot get summary stats of coverage");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		tupdesc = SPI_tuptable->tupdesc;
+		tuptable = SPI_tuptable;
+		tuple = tuptable->vals[0];
+
+		tmp = SPI_getvalue(tuple, tupdesc, 1);
+		if (NULL == tmp || !strlen(tmp)) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_quantileCoverage: Cannot get summary stats of coverage");
+			SRF_RETURN_DONE(funcctx);
+		}
+		cov_count = strtol(tmp, NULL, 10);
+		POSTGIS_RT_DEBUGF(3, "covcount = %d", (int) cov_count);
+		pfree(tmp);
+
+		/* iterate through rasters of coverage */
+		/* create sql */
+		len = sizeof(char) * (strlen("SELECT \"\" FROM \"\" WHERE \"\" IS NOT NULL") + (strlen(colname) * 2) + strlen(tablename) + 1);
+		sql = (char *) palloc(len);
+		if (NULL == sql) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_quantileCoverage: Cannot allocate memory for sql");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get cursor */
+		snprintf(sql, len, "SELECT \"%s\" FROM \"%s\" WHERE \"%s\" IS NOT NULL", colname, tablename, colname);
+		POSTGIS_RT_DEBUGF(3, "coverage sql: %s", sql);
+		portal = SPI_cursor_open_with_args(
+			"coverage",
+			sql,
+			0, NULL,
+			NULL, NULL,
+			TRUE, 0
+		);
+		pfree(sql);
+
+		/* process resultset */
+		SPI_cursor_fetch(portal, TRUE, 1);
+		while (SPI_processed == 1 && SPI_tuptable != NULL) {
+			if (NULL != covquant) pfree(covquant);
+
+			tupdesc = SPI_tuptable->tupdesc;
+			tuptable = SPI_tuptable;
+			tuple = tuptable->vals[0];
+
+			datum = SPI_getbinval(tuple, tupdesc, 1, &isNull);
+			if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_quantileCoverage: Cannot get raster of coverage");
+				SRF_RETURN_DONE(funcctx);
+			}
+			else if (isNull) {
+				SPI_cursor_fetch(portal, TRUE, 1);
+				continue;
+			}
+
+			pgraster = (rt_pgraster *) PG_DETOAST_DATUM(datum);
+
+			raster = rt_raster_deserialize(pgraster, FALSE);
+			if (!raster) {
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_quantileCoverage: Cannot deserialize raster");
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* inspect number of bands*/
+			num_bands = rt_raster_get_num_bands(raster);
+			if (bandindex < 1 || bandindex > num_bands) {
+				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+
+				rt_raster_destroy(raster);
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* get band */
+			band = rt_raster_get_band(raster, bandindex - 1);
+			if (!band) {
+				elog(NOTICE, "Cannot find raster band of index %d. Returning NULL", bandindex);
+
+				rt_raster_destroy(raster);
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			covquant = rt_band_get_quantiles_stream(
+				band,
+				exclude_nodata_value, sample, cov_count,
+				&qlls, &qlls_count,
+				quantiles, quantiles_count,
+				&count
+			);
+
+			rt_band_destroy(band);
+			rt_raster_destroy(raster);
+
+			if (NULL == covquant || !count) {
+				elog(NOTICE, "Cannot compute quantiles for band at index %d", bandindex);
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* next record */
+			SPI_cursor_fetch(portal, TRUE, 1);
+		}
+
+		covquant2 = SPI_palloc(sizeof(struct rt_quantile_t) * count);
+		for (i = 0; i < count; i++) {
+			covquant2[i].quantile = covquant[i].quantile;
+			covquant2[i].has_value = covquant[i].has_value;
+			if (covquant2[i].has_value)
+				covquant2[i].value = covquant[i].value;
+		}
+
+		if (NULL != covquant) pfree(covquant);
+		quantile_llist_destroy(&qlls, qlls_count);
+
+		if (SPI_tuptable) SPI_freetuptable(tuptable);
+		SPI_cursor_close(portal);
+		SPI_finish();
+
+		if (quantiles_count) pfree(quantiles);
+
+		POSTGIS_RT_DEBUGF(3, "%d quantiles returned", count);
+
+		/* Store needed information */
+		funcctx->user_fctx = covquant2;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = count;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	covquant2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 2;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+
+		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		values[0] = Float8GetDatum(covquant2[call_cntr].quantile);
+		if (covquant2[call_cntr].has_value)
+			values[1] = Float8GetDatum(covquant2[call_cntr].value);
+		else
+			nulls[1] = TRUE;
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		POSTGIS_RT_DEBUG(3, "done");
+		pfree(covquant2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/* get counts of values */
+PG_FUNCTION_INFO_V1(RASTER_valueCount);
+Datum RASTER_valueCount(PG_FUNCTION_ARGS) {
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+
+	int i;
+	rt_valuecount vcnts;
+	rt_valuecount vcnts2;
+	int call_cntr;
+	int max_calls;
+
+	/* first call of function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+		int32_t bandindex = 0;
+		int num_bands = 0;
+		bool exclude_nodata_value = TRUE;
+		double *search_values = NULL;
+		uint32_t search_values_count = 0;
+		double roundto = 0;
+		uint32_t count;
+
+		int j;
+		int n;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+
+		/* 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);
+
+		/* pgraster is null, return nothing */
+		if (PG_ARGISNULL(0)) {
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+
+		raster = rt_raster_deserialize(pgraster, FALSE);
+		if (!raster) {
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_valueCount: Cannot deserialize raster");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* band index is 1-based */
+		bandindex = PG_GETARG_INT32(1);
+		num_bands = rt_raster_get_num_bands(raster);
+		if (bandindex < 1 || bandindex > num_bands) {
+			elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* exclude_nodata_value flag */
+		if (!PG_ARGISNULL(2))
+			exclude_nodata_value = PG_GETARG_BOOL(2);
+
+		/* search values */
+		if (!PG_ARGISNULL(3)) {
+			array = PG_GETARG_ARRAYTYPE_P(3);
+			etype = ARR_ELEMTYPE(array);
+			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+			switch (etype) {
+				case FLOAT4OID:
+				case FLOAT8OID:
+					break;
+				default:
+					rt_raster_destroy(raster);
+					PG_FREE_IF_COPY(pgraster, 0);
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_valueCount: Invalid data type for values");
+					SRF_RETURN_DONE(funcctx);
+					break;
+			}
+
+			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+				&nulls, &n);
+
+			search_values = palloc(sizeof(double) * n);
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) continue;
+
+				switch (etype) {
+					case FLOAT4OID:
+						search_values[j] = (double) DatumGetFloat4(e[i]);
+						break;
+					case FLOAT8OID:
+						search_values[j] = (double) DatumGetFloat8(e[i]);
+						break;
+				}
+
+				POSTGIS_RT_DEBUGF(5, "search_values[%d] = %f", j, search_values[j]);
+				j++;
+			}
+			search_values_count = j;
+
+			if (j < 1) {
+				pfree(search_values);
+				search_values = NULL;
+			}
+		}
+
+		/* roundto */
+		if (!PG_ARGISNULL(4)) {
+			roundto = PG_GETARG_FLOAT8(4);
+			if (roundto < 0.) roundto = 0;
+		}
+
+		/* get band */
+		band = rt_raster_get_band(raster, bandindex - 1);
+		if (!band) {
+			elog(NOTICE, "Cannot find band at index %d. Returning NULL", bandindex);
+			rt_raster_destroy(raster);
+			PG_FREE_IF_COPY(pgraster, 0);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get counts of values */
+		vcnts = rt_band_get_value_count(band, (int) exclude_nodata_value, search_values, search_values_count, roundto, NULL, &count);
+		rt_band_destroy(band);
+		rt_raster_destroy(raster);
+		PG_FREE_IF_COPY(pgraster, 0);
+		if (NULL == vcnts || !count) {
+			elog(NOTICE, "Cannot count the values for band at index %d", bandindex);
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		POSTGIS_RT_DEBUGF(3, "%d value counts returned", count);
+
+		/* Store needed information */
+		funcctx->user_fctx = vcnts;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = count;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	vcnts2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 3;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+
+		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		values[0] = Float8GetDatum(vcnts2[call_cntr].value);
+		values[1] = UInt32GetDatum(vcnts2[call_cntr].count);
+		values[2] = Float8GetDatum(vcnts2[call_cntr].percent);
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		pfree(vcnts2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
+/* get counts of values for a coverage */
+PG_FUNCTION_INFO_V1(RASTER_valueCountCoverage);
+Datum RASTER_valueCountCoverage(PG_FUNCTION_ARGS) {
+	FuncCallContext *funcctx;
+	TupleDesc tupdesc;
+
+	int i;
+	uint64_t covcount = 0;
+	uint64_t covtotal = 0;
+	rt_valuecount covvcnts = NULL;
+	rt_valuecount covvcnts2;
+	int call_cntr;
+	int max_calls;
+
+	POSTGIS_RT_DEBUG(3, "RASTER_valueCountCoverage: Starting");
+
+	/* first call of function */
+	if (SRF_IS_FIRSTCALL()) {
+		MemoryContext oldcontext;
+
+		text *tablenametext = NULL;
+		char *tablename = NULL;
+		text *colnametext = NULL;
+		char *colname = NULL;
+		int32_t bandindex = 1;
+		bool exclude_nodata_value = TRUE;
+		double *search_values = NULL;
+		uint32_t search_values_count = 0;
+		double roundto = 0;
+
+		int len = 0;
+		char *sql = NULL;
+		int spi_result;
+		Portal portal;
+		SPITupleTable *tuptable = NULL;
+		HeapTuple tuple;
+		Datum datum;
+		bool isNull = FALSE;
+		rt_pgraster *pgraster = NULL;
+		rt_raster raster = NULL;
+		rt_band band = NULL;
+		int num_bands = 0;
+		uint32_t count;
+		uint32_t total;
+		rt_valuecount vcnts = NULL;
+		int exists = 0;
+
+		int j;
+		int n;
+
+		ArrayType *array;
+		Oid etype;
+		Datum *e;
+		bool *nulls;
+		int16 typlen;
+		bool typbyval;
+		char typalign;
+
+		/* 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);
+
+		/* tablename is null, return null */
+		if (PG_ARGISNULL(0)) {
+			elog(NOTICE, "Table name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		tablenametext = PG_GETARG_TEXT_P(0);
+		tablename = text_to_cstring(tablenametext);
+		if (!strlen(tablename)) {
+			elog(NOTICE, "Table name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		POSTGIS_RT_DEBUGF(3, "tablename = %s", tablename);
+
+		/* column name is null, return null */
+		if (PG_ARGISNULL(1)) {
+			elog(NOTICE, "Column name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		colnametext = PG_GETARG_TEXT_P(1);
+		colname = text_to_cstring(colnametext);
+		if (!strlen(colname)) {
+			elog(NOTICE, "Column name must be provided");
+			MemoryContextSwitchTo(oldcontext);
+			SRF_RETURN_DONE(funcctx);
+		}
+		POSTGIS_RT_DEBUGF(3, "colname = %s", colname);
+
+		/* band index is 1-based */
+		if (!PG_ARGISNULL(2))
+			bandindex = PG_GETARG_INT32(2);
+
+		/* exclude_nodata_value flag */
+		if (!PG_ARGISNULL(3))
+			exclude_nodata_value = PG_GETARG_BOOL(3);
+
+		/* search values */
+		if (!PG_ARGISNULL(4)) {
+			array = PG_GETARG_ARRAYTYPE_P(4);
+			etype = ARR_ELEMTYPE(array);
+			get_typlenbyvalalign(etype, &typlen, &typbyval, &typalign);
+
+			switch (etype) {
+				case FLOAT4OID:
+				case FLOAT8OID:
+					break;
+				default:
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_valueCountCoverage: Invalid data type for values");
+					SRF_RETURN_DONE(funcctx);
+					break;
+			}
+
+			deconstruct_array(array, etype, typlen, typbyval, typalign, &e,
+				&nulls, &n);
+
+			search_values = palloc(sizeof(double) * n);
+			for (i = 0, j = 0; i < n; i++) {
+				if (nulls[i]) continue;
+
+				switch (etype) {
+					case FLOAT4OID:
+						search_values[j] = (double) DatumGetFloat4(e[i]);
+						break;
+					case FLOAT8OID:
+						search_values[j] = (double) DatumGetFloat8(e[i]);
+						break;
+				}
+
+				POSTGIS_RT_DEBUGF(5, "search_values[%d] = %f", j, search_values[j]);
+				j++;
+			}
+			search_values_count = j;
+
+			if (j < 1) {
+				pfree(search_values);
+				search_values = NULL;
+			}
+		}
+
+		/* roundto */
+		if (!PG_ARGISNULL(5)) {
+			roundto = PG_GETARG_FLOAT8(5);
+			if (roundto < 0.) roundto = 0;
+		}
+
+		/* iterate through rasters of coverage */
+		/* connect to database */
+		spi_result = SPI_connect();
+		if (spi_result != SPI_OK_CONNECT) {
+
+			if (search_values_count) pfree(search_values);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_valueCountCoverage: Cannot connect to database using SPI");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* create sql */
+		len = sizeof(char) * (strlen("SELECT \"\" FROM \"\" WHERE \"\" IS NOT NULL") + (strlen(colname) * 2) + strlen(tablename) + 1);
+		sql = (char *) palloc(len);
+		if (NULL == sql) {
+
+			if (SPI_tuptable) SPI_freetuptable(tuptable);
+			SPI_finish();
+
+			if (search_values_count) pfree(search_values);
+
+			MemoryContextSwitchTo(oldcontext);
+			elog(ERROR, "RASTER_valueCountCoverage: Cannot allocate memory for sql");
+			SRF_RETURN_DONE(funcctx);
+		}
+
+		/* get cursor */
+		snprintf(sql, len, "SELECT \"%s\" FROM \"%s\" WHERE \"%s\" IS NOT NULL", colname, tablename, colname);
+		POSTGIS_RT_DEBUGF(3, "RASTER_valueCountCoverage: %s", sql);
+		portal = SPI_cursor_open_with_args(
+			"coverage",
+			sql,
+			0, NULL,
+			NULL, NULL,
+			TRUE, 0
+		);
+		pfree(sql);
+
+		/* process resultset */
+		SPI_cursor_fetch(portal, TRUE, 1);
+		while (SPI_processed == 1 && SPI_tuptable != NULL) {
+			tupdesc = SPI_tuptable->tupdesc;
+			tuptable = SPI_tuptable;
+			tuple = tuptable->vals[0];
+
+			datum = SPI_getbinval(tuple, tupdesc, 1, &isNull);
+			if (SPI_result == SPI_ERROR_NOATTRIBUTE) {
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covvcnts) pfree(covvcnts);
+				if (search_values_count) pfree(search_values);
+
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_valueCountCoverage: Cannot get raster of coverage");
+				SRF_RETURN_DONE(funcctx);
+			}
+			else if (isNull) {
+				SPI_cursor_fetch(portal, TRUE, 1);
+				continue;
+			}
+
+			pgraster = (rt_pgraster *) PG_DETOAST_DATUM(datum);
+
+			raster = rt_raster_deserialize(pgraster, FALSE);
+			if (!raster) {
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covvcnts) pfree(covvcnts);
+				if (search_values_count) pfree(search_values);
+
+				MemoryContextSwitchTo(oldcontext);
+				elog(ERROR, "RASTER_valueCountCoverage: Cannot deserialize raster");
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* inspect number of bands*/
+			num_bands = rt_raster_get_num_bands(raster);
+			if (bandindex < 1 || bandindex > num_bands) {
+				elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+
+				rt_raster_destroy(raster);
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covvcnts) pfree(covvcnts);
+				if (search_values_count) pfree(search_values);
+
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* get band */
+			band = rt_raster_get_band(raster, bandindex - 1);
+			if (!band) {
+				elog(NOTICE, "Cannot find band at index %d. Returning NULL", bandindex);
+
+				rt_raster_destroy(raster);
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covvcnts) pfree(covvcnts);
+				if (search_values_count) pfree(search_values);
+
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			/* get counts of values */
+			vcnts = rt_band_get_value_count(band, (int) exclude_nodata_value, search_values, search_values_count, roundto, &total, &count);
+			rt_band_destroy(band);
+			rt_raster_destroy(raster);
+			if (NULL == vcnts || !count) {
+				elog(NOTICE, "Cannot count the values for band at index %d", bandindex);
+
+				if (SPI_tuptable) SPI_freetuptable(tuptable);
+				SPI_cursor_close(portal);
+				SPI_finish();
+
+				if (NULL != covvcnts) free(covvcnts);
+				if (search_values_count) pfree(search_values);
+
+				MemoryContextSwitchTo(oldcontext);
+				SRF_RETURN_DONE(funcctx);
+			}
+
+			POSTGIS_RT_DEBUGF(3, "%d value counts returned", count);
+
+			if (NULL == covvcnts) {
+				covvcnts = (rt_valuecount) SPI_palloc(sizeof(struct rt_valuecount_t) * count);
+				if (NULL == covvcnts) {
+
+					if (SPI_tuptable) SPI_freetuptable(tuptable);
+					SPI_cursor_close(portal);
+					SPI_finish();
+
+					if (search_values_count) pfree(search_values);
+
+					MemoryContextSwitchTo(oldcontext);
+					elog(ERROR, "RASTER_valueCountCoverage: Cannot allocate memory for value counts of coverage");
+					SRF_RETURN_DONE(funcctx);
+				}
+
+				for (i = 0; i < count; i++) {
+					covvcnts[i].value = vcnts[i].value;
+					covvcnts[i].count = vcnts[i].count;
+					covvcnts[i].percent = -1;
+				}
+
+				covcount = count;
+			}
+			else {
+				for (i = 0; i < count; i++) {
+					exists = 0;
+
+					for (j = 0; j < covcount; j++) {
+						if (FLT_EQ(vcnts[i].value, covvcnts[j].value)) {
+							exists = 1;
+							break;
+						}
+					}
+
+					if (exists) {
+						covvcnts[j].count += vcnts[i].count;
+					}
+					else {
+						covcount++;
+						covvcnts = SPI_repalloc(covvcnts, sizeof(struct rt_valuecount_t) * covcount);
+						if (NULL == covvcnts) {
+
+							if (SPI_tuptable) SPI_freetuptable(tuptable);
+							SPI_cursor_close(portal);
+							SPI_finish();
+
+							if (search_values_count) pfree(search_values);
+							if (NULL != covvcnts) free(covvcnts);
+
+							MemoryContextSwitchTo(oldcontext);
+							elog(ERROR, "RASTER_valueCountCoverage: Cannot change allocated memory for value counts of coverage");
+							SRF_RETURN_DONE(funcctx);
+						}
+
+						covvcnts[covcount - 1].value = vcnts[i].value;
+						covvcnts[covcount - 1].count = vcnts[i].count;
+						covvcnts[covcount - 1].percent = -1;
+					}
+				}
+			}
+
+			covtotal += total;
+
+			pfree(vcnts);
+
+			/* next record */
+			SPI_cursor_fetch(portal, TRUE, 1);
+		}
+
+		if (SPI_tuptable) SPI_freetuptable(tuptable);
+		SPI_cursor_close(portal);
+		SPI_finish();
+
+		if (search_values_count) pfree(search_values);
+
+		/* compute percentages */
+		for (i = 0; i < covcount; i++) {
+			covvcnts[i].percent = (double) covvcnts[i].count / covtotal;
+		}
+
+		/* Store needed information */
+		funcctx->user_fctx = covvcnts;
+
+		/* total number of tuples to be returned */
+		funcctx->max_calls = covcount;
+
+		/* Build a tuple descriptor for our result type */
+		if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) {
+			ereport(ERROR, (
+				errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+				errmsg(
+					"function returning record called in context "
+					"that cannot accept type record"
+				)
+			));
+		}
+
+		BlessTupleDesc(tupdesc);
+		funcctx->tuple_desc = tupdesc;
+
+		MemoryContextSwitchTo(oldcontext);
+	}
+
+	/* stuff done on every call of the function */
+	funcctx = SRF_PERCALL_SETUP();
+
+	call_cntr = funcctx->call_cntr;
+	max_calls = funcctx->max_calls;
+	tupdesc = funcctx->tuple_desc;
+	covvcnts2 = funcctx->user_fctx;
+
+	/* do when there is more left to send */
+	if (call_cntr < max_calls) {
+		int values_length = 3;
+		Datum values[values_length];
+		bool nulls[values_length];
+		HeapTuple tuple;
+		Datum result;
+
+		POSTGIS_RT_DEBUGF(3, "Result %d", call_cntr);
+
+		memset(nulls, FALSE, sizeof(bool) * values_length);
+
+		values[0] = Float8GetDatum(covvcnts2[call_cntr].value);
+		values[1] = UInt32GetDatum(covvcnts2[call_cntr].count);
+		values[2] = Float8GetDatum(covvcnts2[call_cntr].percent);
+
+		/* build a tuple */
+		tuple = heap_form_tuple(tupdesc, values, nulls);
+
+		/* make the tuple into a datum */
+		result = HeapTupleGetDatum(tuple);
+
+		SRF_RETURN_NEXT(funcctx, result);
+	}
+	/* do when there is no more left */
+	else {
+		pfree(covvcnts2);
+		SRF_RETURN_DONE(funcctx);
+	}
+}
+
diff --git a/raster/rt_pg/rtpg_utility.c b/raster/rt_pg/rtpg_utility.c
new file mode 100644
index 0000000..b7f6b46
--- /dev/null
+++ b/raster/rt_pg/rtpg_utility.c
@@ -0,0 +1,146 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <postgres.h> /* for palloc */
+#include <fmgr.h>
+#include <utils/builtins.h>
+
+#include "../../postgis_config.h"
+#include "lwgeom_pg.h"
+
+#include "rtpostgis.h"
+
+Datum RASTER_lib_version(PG_FUNCTION_ARGS);
+Datum RASTER_lib_build_date(PG_FUNCTION_ARGS);
+Datum RASTER_gdal_version(PG_FUNCTION_ARGS);
+Datum RASTER_minPossibleValue(PG_FUNCTION_ARGS);
+
+PG_FUNCTION_INFO_V1(RASTER_lib_version);
+Datum RASTER_lib_version(PG_FUNCTION_ARGS)
+{
+    char ver[64];
+    text *result;
+
+    snprintf(ver, 64, "%s r%d", POSTGIS_LIB_VERSION, POSTGIS_SVN_REVISION);
+    ver[63] = '\0';
+
+    result = cstring2text(ver);
+    PG_RETURN_TEXT_P(result);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_lib_build_date);
+Datum RASTER_lib_build_date(PG_FUNCTION_ARGS)
+{
+    char *ver = POSTGIS_BUILD_DATE;
+    text *result;
+    result = palloc(VARHDRSZ  + strlen(ver));
+    SET_VARSIZE(result, VARHDRSZ + strlen(ver));
+    memcpy(VARDATA(result), ver, strlen(ver));
+    PG_RETURN_POINTER(result);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_gdal_version);
+Datum RASTER_gdal_version(PG_FUNCTION_ARGS)
+{
+	const char *ver = rt_util_gdal_version("--version");
+	text *result;
+
+	/* add indicator if GDAL isn't configured right */
+	if (!rt_util_gdal_configured()) {
+		char *rtn = NULL;
+		rtn = palloc(strlen(ver) + strlen(" GDAL_DATA not found") + 1);
+		if (!rtn)
+			result = cstring2text(ver);
+		else {
+			sprintf(rtn, "%s GDAL_DATA not found", ver);
+			result = cstring2text(rtn);
+			pfree(rtn);
+		}
+	}
+	else
+		result = cstring2text(ver);
+
+	PG_RETURN_POINTER(result);
+}
+
+PG_FUNCTION_INFO_V1(RASTER_minPossibleValue);
+Datum RASTER_minPossibleValue(PG_FUNCTION_ARGS)
+{
+	text *pixeltypetext = NULL;
+	char *pixeltypechar = NULL;
+	rt_pixtype pixtype = PT_END;
+	double pixsize = 0;
+
+	if (PG_ARGISNULL(0))
+		PG_RETURN_NULL();
+
+	pixeltypetext = PG_GETARG_TEXT_P(0);
+	pixeltypechar = text_to_cstring(pixeltypetext);
+
+	pixtype = rt_pixtype_index_from_name(pixeltypechar);
+	if (pixtype == PT_END) {
+		elog(ERROR, "RASTER_minPossibleValue: Invalid pixel type: %s", pixeltypechar);
+		PG_RETURN_NULL();
+	}
+
+	pixsize = rt_pixtype_get_min_value(pixtype);
+
+	/*
+		correct pixsize of unsigned pixel types
+		example: for PT_8BUI, the value is CHAR_MIN but if char is signed, 
+			the value returned is -127 instead of 0.
+	*/
+	switch (pixtype) {
+		case PT_1BB:
+		case PT_2BUI:
+		case PT_4BUI:
+		case PT_8BUI:
+		case PT_16BUI:
+		case PT_32BUI:
+			pixsize = 0;
+			break;
+		default:
+			break;
+	}
+
+	PG_RETURN_FLOAT8(pixsize);
+}
+
+/** find the detoasted size of a value */
+Datum RASTER_memsize(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(RASTER_memsize);
+Datum RASTER_memsize(PG_FUNCTION_ARGS)
+{
+  void *detoasted = PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+  size_t size = VARSIZE(detoasted);
+  PG_FREE_IF_COPY(detoasted,0);
+  PG_RETURN_INT32(size);
+}
+
+
diff --git a/raster/rt_pg/rtpostgis.c b/raster/rt_pg/rtpostgis.c
new file mode 100644
index 0000000..3dfac69
--- /dev/null
+++ b/raster/rt_pg/rtpostgis.c
@@ -0,0 +1,526 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2011-2013 Regents of the University of California
+ *   <bkpark at ucdavis.edu>
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+/***************************************************************
+ * Some rules for returning NOTICE or ERROR...
+ *
+ * Send an ERROR like:
+ *
+ * elog(ERROR, "RASTER_out: Could not deserialize raster");
+ *
+ * only when:
+ *
+ * -something wrong happen with memory,
+ * -a function got an invalid argument ('3BUI' as pixel type) so that no row can
+ * be processed
+ *
+ * *** IMPORTANT: elog(ERROR, ...) does NOT return to calling function ***
+ *
+ * Send a NOTICE like:
+ *
+ * elog(NOTICE, "Invalid band index (must use 1-based). Returning NULL");
+ *
+ * when arguments (e.g. x, y, band) are NULL or out of range so that some or
+ * most rows can be processed anyway
+ *
+ * in this case,
+ * for SET functions or function normally returning a modified raster, return
+ * the original raster
+ * for GET functions, return NULL
+ * try to deduce a valid parameter value if it makes sence (e.g. out of range
+ * index for addBand)
+ *
+ * Do not put the name of the faulty function for NOTICEs, only with ERRORs.
+ *
+ ****************************************************************/
+
+/******************************************************************************
+ * Some notes on memory management...
+ *
+ * Every time a SQL function is called, PostgreSQL creates a  new memory context.
+ * So, all the memory allocated with palloc/repalloc in that context is
+ * automatically free'd at the end of the function. If you want some data to
+ * live between function calls, you have 2 options:
+ *
+ * - Use fcinfo->flinfo->fn_mcxt contex to store the data (by pointing the
+ *   data you want to keep with fcinfo->flinfo->fn_extra)
+ * - Use SRF funcapi, and storing the data at multi_call_memory_ctx (by pointing
+ *   the data you want to keep with funcctx->user_fctx. funcctx is created by
+ *   funcctx = SPI_FIRSTCALL_INIT()). Recommended way in functions returning rows,
+ *   like RASTER_dumpAsPolygons (see section 34.9.9 at
+ *   http://www.postgresql.org/docs/8.4/static/xfunc-c.html).
+ *
+ * But raster code follows the same philosophy than the rest of PostGIS: keep
+ * memory as clean as possible. So, we free all allocated memory.
+ *
+ * TODO: In case of functions returning NULL, we should free the memory too.
+ *****************************************************************************/
+
+/******************************************************************************
+ * Notes for use of PG_DETOAST_DATUM(), PG_DETOAST_DATUM_SLICE()
+ *   and PG_DETOAST_DATUM_COPY()
+ *
+ * When ONLY getting raster (not band) metadata, use PG_DETOAST_DATUM_SLICE()
+ *   as it is generally quicker to get only the chunk of memory that contains
+ *   the raster metadata.
+ *
+ *   Example: PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0,
+ *     sizeof(struct rt_raster_serialized_t))
+ *
+ * When ONLY setting raster or band(s) metadata OR reading band data, use
+ *   PG_DETOAST_DATUM() as rt_raster_deserialize() allocates local memory
+ *   for the raster and band(s) metadata.
+ *
+ *   Example: PG_DETOAST_DATUM(PG_GETARG_DATUM(0))
+ *
+ * When SETTING band pixel values, use PG_DETOAST_DATUM_COPY().  This is
+ *   because band data (not metadata) is just a pointer to the correct
+ *   memory location in the detoasted datum.  What is returned from
+ *   PG_DETOAST_DATUM() may or may not be a copy of the input datum.
+ *
+ *   From the comments in postgresql/src/include/fmgr.h...
+ *
+ *     pg_detoast_datum() gives you either the input datum (if not toasted)
+ *     or a detoasted copy allocated with palloc().
+ *
+ *   From the mouth of Tom Lane...
+ *   http://archives.postgresql.org/pgsql-hackers/2002-01/msg01289.php
+ *
+ *     PG_DETOAST_DATUM_COPY guarantees to give you a copy, even if the
+ *     original wasn't toasted.  This allows you to scribble on the input,
+ *     in case that happens to be a useful way of forming your result.
+ *     Without a forced copy, a routine for a pass-by-ref datatype must
+ *     NEVER, EVER scribble on its input ... because very possibly it'd
+ *     be scribbling on a valid tuple in a disk buffer, or a valid entry
+ *     in the syscache.
+ *
+ *   The key detail above is that the raster datatype is a varlena, a
+ *     passed by reference datatype.
+ *
+ *   Example: PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0))
+ *
+ * If in doubt, use PG_DETOAST_DATUM_COPY() as that guarantees that the input
+ *   datum is copied for use.
+ *****************************************************************************/
+
+#include <postgres.h> /* for palloc */
+#include <fmgr.h> /* for PG_MODULE_MAGIC */
+#include "utils/guc.h"
+
+#include "../../postgis_config.h"
+#include "lwgeom_pg.h"
+
+#include "rtpostgis.h"
+#include "rtpg_internal.h"
+
+#ifndef __GNUC__
+# define __attribute__ (x)
+#endif
+
+/*
+ * This is required for builds against pgsql
+ */
+PG_MODULE_MAGIC;
+
+/* Module load callback */
+void _PG_init(void);
+
+#define RT_MSG_MAXLEN 256
+
+/* ---------------------------------------------------------------- */
+/*  PostGIS raster GUCs                                             */
+/* ---------------------------------------------------------------- */
+
+static char *gdal_datapath = NULL;
+extern char *gdal_enabled_drivers;
+extern char enable_outdb_rasters;
+
+/* postgis.gdal_datapath */
+static void
+rtpg_assignHookGDALDataPath(const char *newpath, void *extra) {
+	POSTGIS_RT_DEBUGF(4, "newpath = %s", newpath);
+	POSTGIS_RT_DEBUGF(4, "gdaldatapath = %s", gdal_datapath);
+
+	/* clear finder cache */
+	CPLFinderClean();
+
+	/* clear cached OSR */
+	OSRCleanup();
+
+	/* set GDAL_DATA */
+	CPLSetConfigOption("GDAL_DATA", newpath);
+	POSTGIS_RT_DEBUGF(4, "GDAL_DATA = %s", CPLGetConfigOption("GDAL_DATA", ""));
+}
+
+/* postgis.gdal_enabled_drivers */
+static void
+rtpg_assignHookGDALEnabledDrivers(const char *enabled_drivers, void *extra) {
+	int enable_all = 0;
+	int disable_all = 0;
+
+	char **enabled_drivers_array = NULL;
+	int enabled_drivers_count = 0;
+	bool *enabled_drivers_found = NULL;
+	char *gdal_skip = NULL;
+
+	uint32_t i;
+	uint32_t j;
+
+	POSTGIS_RT_DEBUGF(4, "GDAL_SKIP = %s", CPLGetConfigOption("GDAL_SKIP", ""));
+	POSTGIS_RT_DEBUGF(4, "enabled_drivers = %s", enabled_drivers);
+
+	/* if NULL, nothing to do */
+	if (enabled_drivers == NULL)
+		return;
+
+	/* destroy the driver manager */
+	/* this is the only way to ensure GDAL_SKIP is recognized */
+	GDALDestroyDriverManager();
+	CPLSetConfigOption("GDAL_SKIP", NULL);
+
+	/* force wrapper function to call GDALAllRegister() */
+	rt_util_gdal_register_all(1);
+
+	enabled_drivers_array = rtpg_strsplit(enabled_drivers, " ", &enabled_drivers_count);
+	enabled_drivers_found = palloc(sizeof(bool) * enabled_drivers_count);
+	memset(enabled_drivers_found, FALSE, sizeof(bool) * enabled_drivers_count);
+
+	/* scan for keywords DISABLE_ALL and ENABLE_ALL */
+	disable_all = 0;
+	enable_all = 0;
+	if (strstr(enabled_drivers, GDAL_DISABLE_ALL) != NULL) {
+		for (i = 0; i < enabled_drivers_count; i++) {
+			if (strstr(enabled_drivers_array[i], GDAL_DISABLE_ALL) != NULL) {
+				enabled_drivers_found[i] = TRUE;
+				disable_all = 1;
+			}
+		}
+	}
+	else if (strstr(enabled_drivers, GDAL_ENABLE_ALL) != NULL) {
+		for (i = 0; i < enabled_drivers_count; i++) {
+			if (strstr(enabled_drivers_array[i], GDAL_ENABLE_ALL) != NULL) {
+				enabled_drivers_found[i] = TRUE;
+				enable_all = 1;
+			}
+		}
+	}
+
+	if (!enable_all) {
+		int found = 0;
+		uint32_t drv_count = 0;
+		rt_gdaldriver drv_set = rt_raster_gdal_drivers(&drv_count, 0);
+
+		POSTGIS_RT_DEBUGF(4, "driver count = %d", drv_count);
+
+		/* all other drivers than those in new drivers are added to GDAL_SKIP */
+		for (i = 0; i < drv_count; i++) {
+			found = 0;
+
+			if (!disable_all) {
+				/* gdal driver found in enabled_drivers, continue to thorough search */
+				if (strstr(enabled_drivers, drv_set[i].short_name) != NULL) {
+					/* thorough search of enabled_drivers */
+					for (j = 0; j < enabled_drivers_count; j++) {
+						/* driver found */
+						if (strcmp(enabled_drivers_array[j], drv_set[i].short_name) == 0) {
+							enabled_drivers_found[j] = TRUE;
+							found = 1;
+						}
+					}
+				}
+			}
+
+			/* driver found, continue */
+			if (found)
+				continue;
+
+			/* driver not found, add to gdal_skip */
+			if (gdal_skip == NULL) {
+				gdal_skip = palloc(sizeof(char) * (strlen(drv_set[i].short_name) + 1));
+				gdal_skip[0] = '\0';
+			}
+			else {
+				gdal_skip = repalloc(
+					gdal_skip,
+					sizeof(char) * (
+						strlen(gdal_skip) + 1 + strlen(drv_set[i].short_name) + 1
+					)
+				);
+				strcat(gdal_skip, " "); 
+			}
+			strcat(gdal_skip, drv_set[i].short_name);
+		}
+
+		for (i = 0; i < drv_count; i++) {
+			pfree(drv_set[i].short_name);
+			pfree(drv_set[i].long_name);
+			pfree(drv_set[i].create_options);
+		}
+		if (drv_count) pfree(drv_set);
+
+	}
+
+	for (i = 0; i < enabled_drivers_count; i++) {
+		if (enabled_drivers_found[i])
+			continue;
+
+		if (disable_all)
+			elog(WARNING, "%s set. Ignoring GDAL driver: %s", GDAL_DISABLE_ALL, enabled_drivers_array[i]);
+		else if (enable_all)
+			elog(WARNING, "%s set. Ignoring GDAL driver: %s", GDAL_ENABLE_ALL, enabled_drivers_array[i]);
+		else
+			elog(WARNING, "Unknown GDAL driver: %s", enabled_drivers_array[i]);
+	}
+
+	/* destroy the driver manager */
+	/* this is the only way to ensure GDAL_SKIP is recognized */
+	GDALDestroyDriverManager();
+
+	/* set GDAL_SKIP */
+	POSTGIS_RT_DEBUGF(4, "gdal_skip = %s", gdal_skip);
+	CPLSetConfigOption("GDAL_SKIP", gdal_skip);
+	if (gdal_skip != NULL) pfree(gdal_skip);
+
+	/* force wrapper function to call GDALAllRegister() */
+	rt_util_gdal_register_all(1);
+
+	pfree(enabled_drivers_array);
+	pfree(enabled_drivers_found);
+	POSTGIS_RT_DEBUGF(4, "GDAL_SKIP = %s", CPLGetConfigOption("GDAL_SKIP", ""));
+}
+
+/* postgis.enable_outdb_rasters */
+static void
+rtpg_assignHookEnableOutDBRasters(bool enable, void *extra) {
+	/* do nothing for now */
+}
+
+/* Module load callback */
+void
+_PG_init(void) {
+
+	char *env_postgis_gdal_enabled_drivers = NULL;
+	char *boot_postgis_gdal_enabled_drivers = NULL;
+
+	char *env_postgis_enable_outdb_rasters = NULL;
+	bool boot_postgis_enable_outdb_rasters = false;
+
+	/*
+	 use POSTGIS_GDAL_ENABLED_DRIVERS to set the bootValue
+	 of GUC postgis.gdal_enabled_drivers
+	*/
+	env_postgis_gdal_enabled_drivers = getenv("POSTGIS_GDAL_ENABLED_DRIVERS");
+	if (env_postgis_gdal_enabled_drivers == NULL) {
+		boot_postgis_gdal_enabled_drivers = palloc(
+			sizeof(char) * (strlen(GDAL_DISABLE_ALL) + 1)
+		);
+		sprintf(boot_postgis_gdal_enabled_drivers, "%s", GDAL_DISABLE_ALL);
+	}
+	else {
+		boot_postgis_gdal_enabled_drivers = rtpg_trim(
+			env_postgis_gdal_enabled_drivers
+		);
+	}
+	POSTGIS_RT_DEBUGF(
+		4,
+		"boot_postgis_gdal_enabled_drivers = %s",
+		boot_postgis_gdal_enabled_drivers
+	);
+
+	/*
+	 use POSTGIS_ENABLE_OUTDB_RASTERS to set the bootValue
+	 of GUC postgis.enable_outdb_rasters
+	*/
+	env_postgis_enable_outdb_rasters = getenv("POSTGIS_ENABLE_OUTDB_RASTERS");
+	if (env_postgis_enable_outdb_rasters != NULL) {
+		char *env = rtpg_trim(env_postgis_enable_outdb_rasters);
+
+		/* out of memory */
+		if (env == NULL) {
+			elog(ERROR, "_PG_init: Cannot process environmental variable: POSTGIS_ENABLE_OUTDB_RASTERS");
+			return;
+		}
+
+		if (strcmp(env, "1") == 0)
+			boot_postgis_enable_outdb_rasters = true;
+
+		pfree(env);
+	}
+	POSTGIS_RT_DEBUGF(
+		4,
+		"boot_postgis_enable_outdb_rasters = %s",
+		boot_postgis_enable_outdb_rasters ? "TRUE" : "FALSE"
+	);
+
+	/* Install liblwgeom handlers */
+	pg_install_lwgeom_handlers();
+
+	/* TODO: Install raster callbacks (see rt_init_allocators)??? */
+
+	/* Define custom GUC variables. */
+
+	DefineCustomStringVariable(
+		"postgis.gdal_datapath", /* name */
+		"Path to GDAL data files.", /* short_desc */
+		"Physical path to directory containing GDAL data files (sets the GDAL_DATA config option).", /* long_desc */
+		&gdal_datapath, /* valueAddr */
+		NULL, /* bootValue */
+		PGC_SUSET, /* GucContext context */
+		0, /* int flags */
+#if POSTGIS_PGSQL_VERSION >= 91
+		NULL, /* GucStringCheckHook check_hook */
+#endif
+		rtpg_assignHookGDALDataPath, /* GucStringAssignHook assign_hook */
+		NULL  /* GucShowHook show_hook */
+	);
+
+	DefineCustomStringVariable(
+		"postgis.gdal_enabled_drivers", /* name */
+		"Enabled GDAL drivers.", /* short_desc */
+		"List of enabled GDAL drivers by short name. To enable/disable all drivers, use 'ENABLE_ALL' or 'DISABLE_ALL' (sets the GDAL_SKIP config option).", /* long_desc */
+		&gdal_enabled_drivers, /* valueAddr */
+		boot_postgis_gdal_enabled_drivers, /* bootValue */
+		PGC_SUSET, /* GucContext context */
+		0, /* int flags */
+#if POSTGIS_PGSQL_VERSION >= 91
+		NULL, /* GucStringCheckHook check_hook */
+#endif
+		rtpg_assignHookGDALEnabledDrivers, /* GucStringAssignHook assign_hook */
+		NULL  /* GucShowHook show_hook */
+	);
+
+	DefineCustomBoolVariable(
+		"postgis.enable_outdb_rasters", /* name */
+		"Enable Out-DB raster bands", /* short_desc */
+		"If true, rasters can access data located outside the database", /* long_desc */
+		&enable_outdb_rasters, /* valueAddr */
+		boot_postgis_enable_outdb_rasters, /* bootValue */
+		PGC_SUSET, /* GucContext context */
+		0, /* int flags */
+#if POSTGIS_PGSQL_VERSION >= 91
+		NULL, /* GucStringCheckHook check_hook */
+#endif
+		rtpg_assignHookEnableOutDBRasters, /* GucBoolAssignHook assign_hook */
+		NULL  /* GucShowHook show_hook */
+	);
+
+	/* free memory allocations */
+	pfree(boot_postgis_gdal_enabled_drivers);
+}
+
+/* ---------------------------------------------------------------- */
+/*  Memory allocation / error reporting hooks                       */
+/*  TODO: reuse the ones in libpgcommon ?                           */
+/* ---------------------------------------------------------------- */
+
+static void *
+rt_pg_alloc(size_t size)
+{
+    void * result;
+
+    POSTGIS_RT_DEBUGF(5, "rt_pgalloc(%ld) called", (long int) size);
+
+    result = palloc(size);
+
+    return result;
+}
+
+static void *
+rt_pg_realloc(void *mem, size_t size)
+{
+    void * result;
+
+    POSTGIS_RT_DEBUGF(5, "rt_pg_realloc(%ld) called", (long int) size);
+
+    if (mem)
+        result = repalloc(mem, size);
+
+    else
+        result = palloc(size);
+
+    return result;
+}
+
+static void
+rt_pg_free(void *ptr)
+{
+    POSTGIS_RT_DEBUG(5, "rt_pfree called");
+    pfree(ptr);
+}
+
+static void rt_pg_error(const char *fmt, va_list ap)
+  __attribute__(( format(printf,1,0) ));
+
+static void
+rt_pg_error(const char *fmt, va_list ap)
+{
+    char errmsg[RT_MSG_MAXLEN+1];
+
+    vsnprintf (errmsg, RT_MSG_MAXLEN, fmt, ap);
+
+    errmsg[RT_MSG_MAXLEN]='\0';
+    ereport(ERROR, (errmsg_internal("%s", errmsg)));
+}
+
+static void rt_pg_notice(const char *fmt, va_list ap)
+  __attribute__(( format(printf,1,0) ));
+
+static void
+rt_pg_notice(const char *fmt, va_list ap)
+{
+    char msg[RT_MSG_MAXLEN+1];
+
+    vsnprintf (msg, RT_MSG_MAXLEN, fmt, ap);
+
+    msg[RT_MSG_MAXLEN]='\0';
+    ereport(NOTICE, (errmsg_internal("%s", msg)));
+}
+
+static void rt_pg_debug(const char *fmt, va_list ap)
+  __attribute__(( format(printf,1,0) ));
+
+static void
+rt_pg_debug(const char *fmt, va_list ap)
+{
+    char msg[RT_MSG_MAXLEN+1];
+
+    vsnprintf (msg, RT_MSG_MAXLEN, fmt, ap);
+
+    msg[RT_MSG_MAXLEN]='\0';
+    ereport(DEBUG1, (errmsg_internal("%s", msg)));
+}
+
+
+void
+rt_init_allocators(void)
+{
+    /* raster callback - install raster handlers */
+    rt_set_handlers(rt_pg_alloc, rt_pg_realloc, rt_pg_free, rt_pg_error,
+            rt_pg_debug, rt_pg_notice);
+}
diff --git a/raster/rt_pg/rtpostgis.h b/raster/rt_pg/rtpostgis.h
new file mode 100644
index 0000000..0259cb2
--- /dev/null
+++ b/raster/rt_pg/rtpostgis.h
@@ -0,0 +1,70 @@
+/*
+ *
+ * WKTRaster - Raster Types for PostGIS
+ * http://trac.osgeo.org/postgis/wiki/WKTRaster
+ *
+ * Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
+ * Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
+ * Copyright (C) 2009-2011 Pierre Racine <pierre.racine at sbf.ulaval.ca>
+ * Copyright (C) 2009-2011 Mateusz Loskot <mateusz at loskot.net>
+ * Copyright (C) 2008-2009 Sandro Santilli <strk at keybit.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public 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 RTPOSTGIS_H_INCLUDED
+#define RTPOSTGIS_H_INCLUDED
+
+#include "librtcore.h"
+
+/* Debugging macros */
+#if POSTGIS_DEBUG_LEVEL > 0
+
+/* Display a simple message at NOTICE level */
+#define POSTGIS_RT_DEBUG(level, msg) \
+    do { \
+        if (POSTGIS_DEBUG_LEVEL >= level) \
+            ereport((level < 1 || level > 5) ? DEBUG5 : (LOG - level), (errmsg_internal("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__))); \
+    } while (0);
+
+/* Display a formatted message at NOTICE level (like printf, with variadic arguments) */
+#define POSTGIS_RT_DEBUGF(level, msg, ...) \
+    do { \
+        if (POSTGIS_DEBUG_LEVEL >= level) \
+        ereport((level < 1 || level > 5) ? DEBUG5 : (LOG - level), (errmsg_internal("[%s:%s:%d] " msg, __FILE__, __func__, __LINE__, __VA_ARGS__))); \
+    } while (0);
+
+#else
+
+/* Empty prototype that can be optimised away by the compiler for non-debug builds */
+#define POSTGIS_RT_DEBUG(level, msg) \
+    ((void) 0)
+
+/* Empty prototype that can be optimised away by the compiler for non-debug builds */
+#define POSTGIS_RT_DEBUGF(level, msg, ...) \
+    ((void) 0)
+
+#endif
+
+/* Header of PostgreSQL-stored RASTER value,
+ * and binary representation of it */
+typedef struct rt_raster_serialized_t rt_pgraster;
+
+/* maximum char length required to hold any double or long long value */
+#define MAX_DBL_CHARLEN (3 + DBL_MANT_DIG - DBL_MIN_EXP)
+#define MAX_INT_CHARLEN 32
+
+#endif /* RTPOSTGIS_H_INCLUDED */
diff --git a/raster/rt_pg/rtpostgis.sql.in b/raster/rt_pg/rtpostgis.sql.in
index 0b67df7..cff84c4 100644
--- a/raster/rt_pg/rtpostgis.sql.in
+++ b/raster/rt_pg/rtpostgis.sql.in
@@ -11,6 +11,7 @@
 -- Copyright (c) 2010 David Zwarg <dzwarg at azavea.com>
 -- Copyright (C) 2011-2013 Regents of the University of California
 --   <bkpark at ucdavis.edu>
+-- Copyright (C) 2013 Bborie Park <dustymugs 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
@@ -24,7 +25,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 --
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
@@ -54,6 +55,7 @@ CREATE OR REPLACE FUNCTION raster_out(raster)
     AS 'MODULE_PATHNAME','RASTER_out'
     LANGUAGE 'c' IMMUTABLE STRICT;
 
+-- Availability: 2.0.0
 CREATE TYPE raster (
     alignment = double,
     internallength = variable,
@@ -93,6 +95,7 @@ CREATE OR REPLACE FUNCTION postgis_gdal_version()
 -- generic composite type of a raster and its band index
 -----------------------------------------------------------------------
 
+-- Availability: 2.1.0
 CREATE TYPE rastbandarg AS (
 	rast raster,
 	nband integer
@@ -102,6 +105,7 @@ CREATE TYPE rastbandarg AS (
 -- generic composite type of a geometry and value
 -----------------------------------------------------------------------
 
+-- Availability: 2.0.0
 CREATE TYPE geomval AS (
 	geom geometry,
 	val double precision
@@ -111,6 +115,11 @@ CREATE TYPE geomval AS (
 -- Raster Accessors
 -----------------------------------------------------------------------
 
+CREATE OR REPLACE FUNCTION st_envelope(raster)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME','RASTER_envelope'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
 -- Availability: 2.0.0
 -- Changed: 2.1.4 raised cost 
 CREATE OR REPLACE FUNCTION st_convexhull(raster)
@@ -132,11 +141,6 @@ CREATE OR REPLACE FUNCTION box3d(raster)
     AS 'select box3d(st_convexhull($1))'
     LANGUAGE 'sql' IMMUTABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_envelope(raster)
-    RETURNS geometry
-    AS 'select st_envelope(st_convexhull($1))'
-    LANGUAGE 'sql' IMMUTABLE STRICT;
-
 CREATE OR REPLACE FUNCTION st_height(raster)
     RETURNS integer
     AS 'MODULE_PATHNAME','RASTER_getHeight'
@@ -251,8 +255,8 @@ CREATE OR REPLACE FUNCTION st_summary(rast raster)
 		msg := msg || 'and extent of ' || extent;
 
 		IF
-			metadata.skewx::numeric(16, 10) <> 0::numeric(16, 10) OR 
-			metadata.skewy::numeric(16, 10) <> 0::numeric(16, 10)
+			round(metadata.skewx::numeric, 10) <> round(0::numeric, 10) OR 
+			round(metadata.skewy::numeric, 10) <> round(0::numeric, 10)
 		THEN
 			msg := 'Skewed ' || overlay(msg placing 'r' from 1 for 1);
 		END IF;
@@ -281,6 +285,12 @@ CREATE OR REPLACE FUNCTION st_summary(rast raster)
 	END;
 	$$ LANGUAGE 'plpgsql' STABLE STRICT;
 
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_MemSize(raster)
+	RETURNS int4
+	AS 'MODULE_PATHNAME', 'RASTER_memsize'
+	LANGUAGE 'c' IMMUTABLE STRICT;
+
 -----------------------------------------------------------------------
 -- Constructor ST_MakeEmptyRaster
 -----------------------------------------------------------------------
@@ -317,6 +327,7 @@ CREATE OR REPLACE FUNCTION st_makeemptyraster(rast raster)
 -- Constructor ST_AddBand
 -----------------------------------------------------------------------
 
+-- Availability: 2.1.0
 CREATE TYPE addbandarg AS (
 	index int,
 	pixeltype text,
@@ -413,45 +424,44 @@ CREATE OR REPLACE FUNCTION st_band(rast raster, nbands text, delimiter char DEFA
 -----------------------------------------------------------------------
 -- ST_SummaryStats and ST_ApproxSummaryStats
 -----------------------------------------------------------------------
+
+-- NOTE: existed in 2.0.0 but was removed in 2.1.0.
+-- See http://trac.osgeo.org/postgis/ticket/3082#comment:5
+-- Availability: 2.0.0
+-- Missing in: 2.1.0
+CREATE TYPE summarystats AS (
+	count bigint,
+	sum double precision,
+	mean double precision,
+	stddev double precision,
+	min double precision,
+	max double precision
+);
+
 CREATE OR REPLACE FUNCTION _st_summarystats(
 	rast raster,
 	nband int DEFAULT 1,
 	exclude_nodata_value boolean DEFAULT TRUE,
-	sample_percent double precision DEFAULT 1,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	sample_percent double precision DEFAULT 1
 )
+	RETURNS summarystats
 	AS 'MODULE_PATHNAME','RASTER_summaryStats'
 	LANGUAGE 'c' IMMUTABLE;
 
 CREATE OR REPLACE FUNCTION st_summarystats(
 	rast raster,
 	nband int DEFAULT 1,
-	exclude_nodata_value boolean DEFAULT TRUE,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	exclude_nodata_value boolean DEFAULT TRUE
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, $2, $3, 1) $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 CREATE OR REPLACE FUNCTION st_summarystats(
 	rast raster,
-	exclude_nodata_value boolean,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	exclude_nodata_value boolean
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, 1, $2, 1) $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
@@ -459,100 +469,137 @@ CREATE OR REPLACE FUNCTION st_approxsummarystats(
 	rast raster,
 	nband int DEFAULT 1,
 	exclude_nodata_value boolean DEFAULT TRUE,
-	sample_percent double precision DEFAULT 0.1,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	sample_percent double precision DEFAULT 0.1
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, $2, $3, $4) $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 CREATE OR REPLACE FUNCTION st_approxsummarystats(
 	rast raster,
 	nband int,
-	sample_percent double precision,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	sample_percent double precision
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, $2, TRUE, $3) $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 CREATE OR REPLACE FUNCTION st_approxsummarystats(
 	rast raster,
 	exclude_nodata_value boolean,
-	sample_percent double precision DEFAULT 0.1,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	sample_percent double precision DEFAULT 0.1
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, 1, $2, $3) $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
 CREATE OR REPLACE FUNCTION st_approxsummarystats(
 	rast raster,
-	sample_percent double precision,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	sample_percent double precision
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, 1, TRUE, $2) $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
+-----------------------------------------------------------------------
+-- ST_SummaryStatsAgg
+-----------------------------------------------------------------------
+
+CREATE OR REPLACE FUNCTION _st_summarystats_finalfn(internal)
+	RETURNS summarystats
+	AS 'MODULE_PATHNAME', 'RASTER_summaryStats_finalfn'
+	LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _st_summarystats_transfn(
+	internal,
+	raster, integer,
+	boolean, double precision
+)
+	RETURNS internal
+	AS 'MODULE_PATHNAME', 'RASTER_summaryStats_transfn'
+	LANGUAGE 'c' IMMUTABLE;
+
+-- Availability: 2.2.0
+CREATE AGGREGATE st_summarystatsagg(raster, integer, boolean, double precision) (
+	SFUNC = _st_summarystats_transfn,
+	STYPE = internal,
+	FINALFUNC = _st_summarystats_finalfn
+);
+
+CREATE OR REPLACE FUNCTION _st_summarystats_transfn(
+	internal,
+	raster, boolean, double precision
+)
+	RETURNS internal
+	AS 'MODULE_PATHNAME', 'RASTER_summaryStats_transfn'
+	LANGUAGE 'c' IMMUTABLE;
+
+-- Availability: 2.2.0
+CREATE AGGREGATE st_summarystatsagg(raster, boolean, double precision) (
+	SFUNC = _st_summarystats_transfn,
+	STYPE = internal,
+	FINALFUNC = _st_summarystats_finalfn
+);
+
+CREATE OR REPLACE FUNCTION _st_summarystats_transfn(
+	internal,
+	raster, int, boolean
+)
+	RETURNS internal
+	AS 'MODULE_PATHNAME', 'RASTER_summaryStats_transfn'
+	LANGUAGE 'c' IMMUTABLE;
+
+-- Availability: 2.2.0
+CREATE AGGREGATE st_summarystatsagg(raster, int, boolean) (
+	SFUNC = _st_summarystats_transfn,
+	STYPE = internal,
+	FINALFUNC = _st_summarystats_finalfn
+);
+
+-----------------------------------------------------------------------
+-- ST_SummaryStats for table
+-----------------------------------------------------------------------
+
 CREATE OR REPLACE FUNCTION _st_summarystats(
 	rastertable text,
 	rastercolumn text,
 	nband integer DEFAULT 1,
 	exclude_nodata_value boolean DEFAULT TRUE,
-	sample_percent double precision DEFAULT 1,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	sample_percent double precision DEFAULT 1
 )
-	AS 'MODULE_PATHNAME','RASTER_summaryStatsCoverage'
-	LANGUAGE 'c' IMMUTABLE;
+	RETURNS summarystats
+	AS $$ 
+	DECLARE
+		stats summarystats;
+	BEGIN
+		EXECUTE 'SELECT (stats).* FROM (SELECT ST_SummaryStatsAgg('
+			|| quote_ident($2) || ', '
+			|| $3 || ', '
+			|| $4 || ', '
+			|| $5 || ') AS stats '
+			|| 'FROM ' || quote_ident($1)
+			|| ') foo'
+			INTO stats;
+		RETURN stats;
+	END;
+	$$ LANGUAGE 'plpgsql' IMMUTABLE;
 
 CREATE OR REPLACE FUNCTION st_summarystats(
 	rastertable text,
 	rastercolumn text,
 	nband integer DEFAULT 1,
-	exclude_nodata_value boolean DEFAULT TRUE,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	exclude_nodata_value boolean DEFAULT TRUE
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, $2, $3, $4, 1) $$
 	LANGUAGE 'sql' STABLE STRICT;
 
 CREATE OR REPLACE FUNCTION st_summarystats(
 	rastertable text,
 	rastercolumn text,
-	exclude_nodata_value boolean,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	exclude_nodata_value boolean
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, $2, 1, $3, 1) $$
 	LANGUAGE 'sql' STABLE STRICT;
 
@@ -561,14 +608,9 @@ CREATE OR REPLACE FUNCTION st_approxsummarystats(
 	rastercolumn text,
 	nband integer DEFAULT 1,
 	exclude_nodata_value boolean DEFAULT TRUE,
-	sample_percent double precision DEFAULT 0.1,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	sample_percent double precision DEFAULT 0.1
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, $2, $3, $4, $5) $$
 	LANGUAGE 'sql' STABLE STRICT;
 
@@ -576,48 +618,34 @@ CREATE OR REPLACE FUNCTION st_approxsummarystats(
 	rastertable text,
 	rastercolumn text,
 	nband integer,
-	sample_percent double precision,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	sample_percent double precision
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, $2, $3, TRUE, $4) $$
 	LANGUAGE 'sql' STABLE STRICT;
 
 CREATE OR REPLACE FUNCTION st_approxsummarystats(
 	rastertable text,
 	rastercolumn text,
-	exclude_nodata_value boolean,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	exclude_nodata_value boolean
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, $2, 1, $3, 0.1) $$
 	LANGUAGE 'sql' STABLE STRICT;
 
 CREATE OR REPLACE FUNCTION st_approxsummarystats(
 	rastertable text,
 	rastercolumn text,
-	sample_percent double precision,
-	OUT count bigint,
-	OUT sum double precision,
-	OUT mean double precision,
-	OUT stddev double precision,
-	OUT min double precision,
-	OUT max double precision
+	sample_percent double precision
 )
+	RETURNS summarystats
 	AS $$ SELECT _st_summarystats($1, $2, 1, TRUE, $3) $$
 	LANGUAGE 'sql' STABLE STRICT;
 
 -----------------------------------------------------------------------
 -- ST_Count and ST_ApproxCount
 -----------------------------------------------------------------------
+
 CREATE OR REPLACE FUNCTION _st_count(rast raster, nband int DEFAULT 1, exclude_nodata_value boolean DEFAULT TRUE, sample_percent double precision DEFAULT 1)
 	RETURNS bigint
 	AS $$
@@ -664,69 +692,187 @@ CREATE OR REPLACE FUNCTION st_approxcount(rast raster, sample_percent double pre
 	AS $$ SELECT _st_count($1, 1, TRUE, $2) $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
-CREATE OR REPLACE FUNCTION _st_count(rastertable text, rastercolumn text, nband integer DEFAULT 1, exclude_nodata_value boolean DEFAULT TRUE, sample_percent double precision DEFAULT 1)
+-----------------------------------------------------------------------
+-- ST_CountAgg
+-----------------------------------------------------------------------
+
+-- Availability: 2.2.0
+CREATE TYPE agg_count AS (
+	count bigint,
+	nband integer,
+	exclude_nodata_value boolean,
+	sample_percent double precision
+);
+
+CREATE OR REPLACE FUNCTION _st_countagg_finalfn(agg agg_count)
 	RETURNS bigint
 	AS $$
-	DECLARE
-		curs refcursor;
+	BEGIN
+		IF agg IS NULL THEN
+			RAISE EXCEPTION 'Cannot count coverage';
+		END IF;
 
-		ctable text;
-		ccolumn text;
-		rast raster;
+		RETURN agg.count;
+	END;
+	$$ LANGUAGE 'plpgsql' IMMUTABLE;
 
-		rtn bigint;
-		tmp bigint;
+CREATE OR REPLACE FUNCTION __st_countagg_transfn(
+	agg agg_count,
+	rast raster,
+ 	nband integer DEFAULT 1, exclude_nodata_value boolean DEFAULT TRUE,
+	sample_percent double precision DEFAULT 1
+)
+	RETURNS agg_count
+	AS $$
+	DECLARE
+		_count bigint;
+		rtn_agg agg_count;
 	BEGIN
-		-- nband
-		IF nband < 1 THEN
-			RAISE WARNING 'Invalid band index (must use 1-based). Returning NULL';
-			RETURN NULL;
-		END IF;
 
-		-- sample percent
-		IF sample_percent < 0 OR sample_percent > 1 THEN
-			RAISE WARNING 'Invalid sample percentage (must be between 0 and 1). Returning NULL';
-			RETURN NULL;
+		-- only process parameter args once
+		IF agg IS NULL THEN
+			rtn_agg.count := 0;
+
+			IF nband < 1 THEN
+				RAISE EXCEPTION 'Band index must be greater than zero (1-based)';
+			ELSE
+				rtn_agg.nband := nband;
+			END IF;
+
+			IF exclude_nodata_value IS FALSE THEN
+				rtn_agg.exclude_nodata_value := FALSE;
+			ELSE
+				rtn_agg.exclude_nodata_value := TRUE;
+			END IF;
+
+			IF sample_percent < 0. OR sample_percent > 1. THEN
+				RAISE EXCEPTION 'Sample percent must be between zero and one';
+			ELSE
+				rtn_agg.sample_percent := sample_percent;
+			END IF;
+		ELSE
+			rtn_agg := agg;
 		END IF;
 
-		-- exclude_nodata_value IS TRUE
-		IF exclude_nodata_value IS TRUE THEN
-			SELECT count INTO rtn FROM _st_summarystats($1, $2, $3, $4, $5);
-			RETURN rtn;
+		IF rast IS NOT NULL THEN
+			IF rtn_agg.exclude_nodata_value IS FALSE THEN
+				SELECT width * height INTO _count FROM ST_Metadata(rast);
+			ELSE
+				SELECT count INTO _count FROM _st_summarystats(
+					rast,
+				 	rtn_agg.nband, rtn_agg.exclude_nodata_value,
+					rtn_agg.sample_percent
+				);
+			END IF;
 		END IF;
 
-		-- clean rastertable and rastercolumn
-		ctable := quote_ident(rastertable);
-		ccolumn := quote_ident(rastercolumn);
+		rtn_agg.count := rtn_agg.count + _count;
+		RETURN rtn_agg;
+	END;
+	$$ LANGUAGE 'plpgsql' IMMUTABLE;
 
-		BEGIN
-			OPEN curs FOR EXECUTE 'SELECT '
-					|| ccolumn
-					|| ' FROM '
-					|| ctable
-					|| ' WHERE '
-					|| ccolumn
-					|| ' IS NOT NULL';
-		EXCEPTION
-			WHEN OTHERS THEN
-				RAISE WARNING 'Invalid table or column name. Returning NULL';
-				RETURN NULL;
-		END;
+CREATE OR REPLACE FUNCTION _st_countagg_transfn(
+	agg agg_count,
+	rast raster,
+ 	nband integer, exclude_nodata_value boolean,
+	sample_percent double precision
+)
+	RETURNS agg_count
+	AS $$
+	DECLARE
+		rtn_agg agg_count;
+	BEGIN
+		rtn_agg := __st_countagg_transfn(
+			agg,
+			rast,
+			nband, exclude_nodata_value,
+			sample_percent
+		);
+		RETURN rtn_agg;
+	END;
+	$$ LANGUAGE 'plpgsql' IMMUTABLE;
 
-		rtn := 0;
-		LOOP
-			FETCH curs INTO rast;
-			EXIT WHEN NOT FOUND;
+-- Availability: 2.2.0
+CREATE AGGREGATE st_countagg(raster, integer, boolean, double precision) (
+	SFUNC = _st_countagg_transfn,
+	STYPE = agg_count,
+	FINALFUNC = _st_countagg_finalfn
+);
 
-			SELECT (width * height) INTO tmp FROM ST_Metadata(rast);
-			rtn := rtn + tmp;
-		END LOOP;
+CREATE OR REPLACE FUNCTION _st_countagg_transfn(
+	agg agg_count,
+	rast raster,
+ 	nband integer, exclude_nodata_value boolean
+)
+	RETURNS agg_count
+	AS $$
+	DECLARE
+		rtn_agg agg_count;
+	BEGIN
+		rtn_agg := __st_countagg_transfn(
+			agg,
+			rast,
+			nband, exclude_nodata_value,
+			1
+		);
+		RETURN rtn_agg;
+	END;
+	$$ LANGUAGE 'plpgsql' IMMUTABLE;
 
-		CLOSE curs;
+-- Availability: 2.2.0
+CREATE AGGREGATE st_countagg(raster, integer, boolean) (
+	SFUNC = _st_countagg_transfn,
+	STYPE = agg_count,
+	FINALFUNC = _st_countagg_finalfn
+);
 
-		RETURN rtn;
+CREATE OR REPLACE FUNCTION _st_countagg_transfn(
+	agg agg_count,
+	rast raster,
+ 	exclude_nodata_value boolean
+)
+	RETURNS agg_count
+	AS $$
+	DECLARE
+		rtn_agg agg_count;
+	BEGIN
+		rtn_agg := __st_countagg_transfn(
+			agg,
+			rast,
+			1, exclude_nodata_value,
+			1
+		);
+		RETURN rtn_agg;
 	END;
-	$$ LANGUAGE 'plpgsql' STABLE STRICT;
+	$$ LANGUAGE 'plpgsql' IMMUTABLE;
+
+-- Availability: 2.2.0
+CREATE AGGREGATE st_countagg(raster, boolean) (
+	SFUNC = _st_countagg_transfn,
+	STYPE = agg_count,
+	FINALFUNC = _st_countagg_finalfn
+);
+
+-----------------------------------------------------------------------
+-- ST_Count for table
+-----------------------------------------------------------------------
+
+CREATE OR REPLACE FUNCTION _st_count(rastertable text, rastercolumn text, nband integer DEFAULT 1, exclude_nodata_value boolean DEFAULT TRUE, sample_percent double precision DEFAULT 1)
+	RETURNS bigint
+	AS $$
+	DECLARE
+		count bigint;
+	BEGIN
+		EXECUTE 'SELECT ST_CountAgg('
+			|| quote_ident($2) || ', '
+			|| $3 || ', '
+			|| $4 || ', '
+			|| $5 || ') '
+			|| 'FROM ' || quote_ident($1)
+	 	INTO count;
+		RETURN count;
+	END;
+ 	$$ LANGUAGE 'plpgsql' STABLE STRICT;
 
 CREATE OR REPLACE FUNCTION st_count(rastertable text, rastercolumn text, nband int DEFAULT 1, exclude_nodata_value boolean DEFAULT TRUE)
 	RETURNS bigint
@@ -761,6 +907,7 @@ CREATE OR REPLACE FUNCTION st_approxcount(rastertable text, rastercolumn text, s
 -----------------------------------------------------------------------
 -- ST_Histogram and ST_ApproxHistogram
 -----------------------------------------------------------------------
+
 -- Cannot be strict as "width", "min" and "max" can be NULL
 CREATE OR REPLACE FUNCTION _st_histogram(
 	rast raster, nband int DEFAULT 1,
@@ -1557,6 +1704,7 @@ CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text,
 -----------------------------------------------------------------------
 -- ST_Reclass
 -----------------------------------------------------------------------
+-- Availability: 2.0.0
 CREATE TYPE reclassarg AS (
 	nband int,
 	reclassexpr text,
@@ -2438,14 +2586,14 @@ CREATE OR REPLACE FUNCTION st_resize(
 					END IF;
 
 					whd[i] := wh[i]::double precision * 0.01;
-				EXCEPTION WHEN OTHERS THEN
+				EXCEPTION WHEN OTHERS THEN -- TODO: WHEN invalid_parameter_value !
 					RAISE EXCEPTION 'Invalid percentage value provided for width/height';
 					RETURN NULL;
 				END;
 			ELSE
 				BEGIN
 					whi[i] := abs(wh[i]::integer);
-				EXCEPTION WHEN OTHERS THEN
+				EXCEPTION WHEN OTHERS THEN -- TODO: only handle appropriate SQLSTATE
 					RAISE EXCEPTION 'Non-integer value provided for width/height';
 					RETURN NULL;
 				END;
@@ -2848,12 +2996,15 @@ CREATE OR REPLACE FUNCTION _st_mapalgebra(
 	pixeltype text DEFAULT NULL,
 	distancex integer DEFAULT 0, distancey integer DEFAULT 0,
 	extenttype text DEFAULT 'INTERSECTION', customextent raster DEFAULT NULL,
+	mask double precision[][] DEFAULT NULL, weighted boolean DEFAULT NULL,
 	VARIADIC userargs text[] DEFAULT NULL
 )
 	RETURNS raster
 	AS 'MODULE_PATHNAME', 'RASTER_nMapAlgebra'
 	LANGUAGE 'c' STABLE;
 
+
+
 CREATE OR REPLACE FUNCTION st_mapalgebra(
 	rastbandargset rastbandarg[],
 	callbackfunc regprocedure,
@@ -2863,7 +3014,7 @@ CREATE OR REPLACE FUNCTION st_mapalgebra(
 	VARIADIC userargs text[] DEFAULT NULL
 )
 	RETURNS raster
-	AS $$ SELECT _ST_MapAlgebra($1, $2, $3, $6, $7, $4, $5, VARIADIC $8) $$
+	AS $$ SELECT _ST_MapAlgebra($1, $2, $3, $6, $7, $4, $5,NULL::double precision [],NULL::boolean, VARIADIC $8) $$
 	LANGUAGE 'sql' STABLE;
 
 CREATE OR REPLACE FUNCTION st_mapalgebra(
@@ -2898,7 +3049,7 @@ CREATE OR REPLACE FUNCTION st_mapalgebra(
 			RETURN NULL;
 		END IF;
 
-		RETURN _ST_MapAlgebra(argset, $3, $4, $7, $8, $5, $6, VARIADIC $9);
+		RETURN _ST_MapAlgebra(argset, $3, $4, $7, $8, $5, $6,NULL::double precision [],NULL::boolean, VARIADIC $9);
 	END;
 	$$ LANGUAGE 'plpgsql' STABLE;
 
@@ -2911,7 +3062,7 @@ CREATE OR REPLACE FUNCTION st_mapalgebra(
 	VARIADIC userargs text[] DEFAULT NULL
 )
 	RETURNS raster
-	AS $$ SELECT _ST_MapAlgebra(ARRAY[ROW($1, $2)]::rastbandarg[], $3, $4, $7, $8, $5, $6, VARIADIC $9) $$
+	AS $$ SELECT _ST_MapAlgebra(ARRAY[ROW($1, $2)]::rastbandarg[], $3, $4, $7, $8, $5, $6,NULL::double precision [],NULL::boolean, VARIADIC $9) $$
 	LANGUAGE 'sql' STABLE;
 
 CREATE OR REPLACE FUNCTION st_mapalgebra(
@@ -2924,9 +3075,22 @@ CREATE OR REPLACE FUNCTION st_mapalgebra(
 	VARIADIC userargs text[] DEFAULT NULL
 )
 	RETURNS raster
-	AS $$ SELECT _ST_MapAlgebra(ARRAY[ROW($1, $2), ROW($3, $4)]::rastbandarg[], $5, $6, $9, $10, $7, $8, VARIADIC $11) $$
+	AS $$ SELECT _ST_MapAlgebra(ARRAY[ROW($1, $2), ROW($3, $4)]::rastbandarg[], $5, $6, $9, $10, $7, $8,NULL::double precision [],NULL::boolean, VARIADIC $11) $$
 	LANGUAGE 'sql' STABLE;
 
+CREATE OR REPLACE FUNCTION st_mapalgebra(
+	rast raster, nband int,
+	callbackfunc regprocedure,
+	mask double precision [][], weighted boolean,
+	pixeltype text DEFAULT NULL,
+	extenttype text DEFAULT 'INTERSECTION', customextent raster DEFAULT NULL,
+	VARIADIC userargs text[] DEFAULT NULL
+)
+	RETURNS raster
+	AS $$
+	select _st_mapalgebra(ARRAY[ROW($1,$2)]::rastbandarg[],$3,$6,NULL::integer,NULL::integer,$7,$8,$4,$5,VARIADIC $9)
+	$$ LANGUAGE 'sql' STABLE;
+
 -----------------------------------------------------------------------
 -- 1 or 2-Raster ST_MapAlgebra with expressions
 -----------------------------------------------------------------------
@@ -4266,6 +4430,14 @@ CREATE OR REPLACE FUNCTION st_tpi(
 	END;
 	$$ LANGUAGE 'plpgsql' IMMUTABLE;
 
+CREATE OR REPLACE FUNCTION st_tpi(
+	rast raster, nband integer DEFAULT 1,
+	pixeltype text DEFAULT '32BF', interpolate_nodata boolean DEFAULT FALSE
+)
+	RETURNS RASTER
+	AS $$ SELECT st_tpi($1, $2, NULL::raster, $3, $4) $$
+	LANGUAGE 'sql' IMMUTABLE;
+
 -----------------------------------------------------------------------
 -- ST_Roughness
 -----------------------------------------------------------------------
@@ -4389,6 +4561,14 @@ CREATE OR REPLACE FUNCTION st_roughness(
 	END;
 	$$ LANGUAGE 'plpgsql' IMMUTABLE;
 
+CREATE OR REPLACE FUNCTION st_roughness(
+	rast raster, nband integer DEFAULT 1,
+	pixeltype text DEFAULT '32BF', interpolate_nodata boolean DEFAULT FALSE
+)
+	RETURNS RASTER
+	AS $$ SELECT st_roughness($1, $2, NULL::raster, $3, $4) $$
+	LANGUAGE 'sql' IMMUTABLE;
+
 -----------------------------------------------------------------------
 -- ST_TRI
 -----------------------------------------------------------------------
@@ -4532,6 +4712,14 @@ CREATE OR REPLACE FUNCTION st_tri(
 	END;
 	$$ LANGUAGE 'plpgsql' IMMUTABLE;
 
+CREATE OR REPLACE FUNCTION st_tri(
+	rast raster, nband integer DEFAULT 1,
+	pixeltype text DEFAULT '32BF', interpolate_nodata boolean DEFAULT FALSE
+)
+	RETURNS RASTER
+	AS $$ SELECT st_tri($1, $2, NULL::raster, $3, $4) $$
+	LANGUAGE 'sql' IMMUTABLE;
+
 -----------------------------------------------------------------------
 -- Get information about the raster
 -----------------------------------------------------------------------
@@ -5587,72 +5775,85 @@ CREATE OR REPLACE FUNCTION geometry_raster_overlap(geometry, raster)
 --  GiST index OPERATORs
 ------------------------------------------------------------------------------
 -- raster/raster operators
+
+-- Availability: 2.0.0
 CREATE OPERATOR << (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_left,
     COMMUTATOR = '>>',
     RESTRICT = positionsel, JOIN = positionjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR &< (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_overleft,
     COMMUTATOR = '&>',
     RESTRICT = positionsel, JOIN = positionjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR <<| (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_below,
     COMMUTATOR = '|>>',
     RESTRICT = positionsel, JOIN = positionjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR &<| (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_overbelow,
     COMMUTATOR = '|&>',
     RESTRICT = positionsel, JOIN = positionjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR && (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_overlap,
     COMMUTATOR = '&&',
     RESTRICT = contsel, JOIN = contjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR &> (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_overright,
     COMMUTATOR = '&<',
     RESTRICT = positionsel, JOIN = positionjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR >> (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_right,
     COMMUTATOR = '<<',
     RESTRICT = positionsel, JOIN = positionjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR |&> (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_overabove,
     COMMUTATOR = '&<|',
     RESTRICT = positionsel, JOIN = positionjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR |>> (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_above,
     COMMUTATOR = '<<|',
     RESTRICT = positionsel, JOIN = positionjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR ~= (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_same,
     COMMUTATOR = '~=',
     RESTRICT = eqsel, JOIN = eqjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR @ (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_contained,
     COMMUTATOR = '~',
     RESTRICT = contsel, JOIN = contjoinsel
     );
 
+-- Availability: 2.0.0
 CREATE OPERATOR ~ (
     LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_contain,
     COMMUTATOR = '@',
@@ -5732,6 +5933,7 @@ CREATE OR REPLACE FUNCTION st_samealignment(
 	AS $$ SELECT st_samealignment(st_makeemptyraster(1, 1, $1, $2, $3, $4, $5, $6), st_makeemptyraster(1, 1, $7, $8, $9, $10, $11, $12)) $$
 	LANGUAGE 'sql' IMMUTABLE STRICT;
 
+-- Availability: 2.1.0
 CREATE TYPE agg_samealignment AS (
 	refraster raster,
 	aligned boolean
@@ -5927,130 +6129,25 @@ CREATE OR REPLACE FUNCTION _st_intersects(geom geometry, rast raster, nband inte
 	RETURNS boolean AS $$
 	DECLARE
 		hasnodata boolean := TRUE;
-		nodata float8 := 0.0;
-		convexhull geometry;
-		geomintersect geometry;
-		x1w double precision := 0.0;
-		x2w double precision := 0.0;
-		y1w double precision := 0.0;
-		y2w double precision := 0.0;
-		x1 integer := 0;
-		x2 integer := 0;
-		x3 integer := 0;
-		x4 integer := 0;
-		y1 integer := 0;
-		y2 integer := 0;
-		y3 integer := 0;
-		y4 integer := 0;
-		x integer := 0;
-		y integer := 0;
-		xinc integer := 0;
-		yinc integer := 0;
-		pixelval double precision;
-		bintersect boolean := FALSE;
-		gtype text;
-		scale float8;
-		w int;
-		h int;
+		_geom geometry;
 	BEGIN
 		IF ST_SRID(rast) != ST_SRID(geom) THEN
 			RAISE EXCEPTION 'Raster and geometry do not have the same SRID';
 		END IF;
 
-		convexhull := ST_ConvexHull(rast);
+		_geom := ST_ConvexHull(rast);
 		IF nband IS NOT NULL THEN
 			SELECT CASE WHEN bmd.nodatavalue IS NULL THEN FALSE ELSE NULL END INTO hasnodata FROM ST_BandMetaData(rast, nband) AS bmd;
 		END IF;
 
-		IF ST_Intersects(geom, convexhull) IS NOT TRUE THEN
+		IF ST_Intersects(geom, _geom) IS NOT TRUE THEN
 			RETURN FALSE;
 		ELSEIF nband IS NULL OR hasnodata IS FALSE THEN
 			RETURN TRUE;
 		END IF;
 
-		-- Get the intersection between with the geometry.
-		-- We will search for withvalue pixel only in this area.
-		geomintersect := st_intersection(geom, convexhull);
-
---RAISE NOTICE 'geomintersect=%', st_astext(geomintersect);
-
-		-- If the intersection is empty, return false
-		IF st_isempty(geomintersect) THEN
-			RETURN FALSE;
-		END IF;
-
-		-- We create a minimalistic buffer around the intersection in order to scan every pixels
-		-- that would touch the edge or intersect with the geometry
-		SELECT sqrt(scalex * scalex + skewy * skewy), width, height INTO scale, w, h FROM ST_Metadata(rast);
-		IF scale != 0 THEN
-			geomintersect := st_buffer(geomintersect, scale / 1000000);
-		END IF;
-
---RAISE NOTICE 'geomintersect2=%', st_astext(geomintersect);
-
-		-- Find the world coordinates of the bounding box of the intersecting area
-		x1w := st_xmin(geomintersect);
-		y1w := st_ymin(geomintersect);
-		x2w := st_xmax(geomintersect);
-		y2w := st_ymax(geomintersect);
-		nodata := st_bandnodatavalue(rast, nband);
-
---RAISE NOTICE 'x1w=%, y1w=%, x2w=%, y2w=%', x1w, y1w, x2w, y2w;
-
-		-- Convert world coordinates to raster coordinates
-		x1 := st_worldtorastercoordx(rast, x1w, y1w);
-		y1 := st_worldtorastercoordy(rast, x1w, y1w);
-		x2 := st_worldtorastercoordx(rast, x2w, y1w);
-		y2 := st_worldtorastercoordy(rast, x2w, y1w);
-		x3 := st_worldtorastercoordx(rast, x1w, y2w);
-		y3 := st_worldtorastercoordy(rast, x1w, y2w);
-		x4 := st_worldtorastercoordx(rast, x2w, y2w);
-		y4 := st_worldtorastercoordy(rast, x2w, y2w);
-
---RAISE NOTICE 'x1=%, y1=%, x2=%, y2=%, x3=%, y3=%, x4=%, y4=%', x1, y1, x2, y2, x3, y3, x4, y4;
-
-		-- Order the raster coordinates for the upcoming FOR loop.
-		x1 := int4smaller(int4smaller(int4smaller(x1, x2), x3), x4);
-		y1 := int4smaller(int4smaller(int4smaller(y1, y2), y3), y4);
-		x2 := int4larger(int4larger(int4larger(x1, x2), x3), x4);
-		y2 := int4larger(int4larger(int4larger(y1, y2), y3), y4);
-
-		-- Make sure the range is not lower than 1.
-		-- This can happen when world coordinate are exactly on the left border
-		-- of the raster and that they do not span on more than one pixel.
-		x1 := int4smaller(int4larger(x1, 1), w);
-		y1 := int4smaller(int4larger(y1, 1), h);
-
-		-- Also make sure the range does not exceed the width and height of the raster.
-		-- This can happen when world coordinate are exactly on the lower right border
-		-- of the raster.
-		x2 := int4smaller(x2, w);
-		y2 := int4smaller(y2, h);
-
---RAISE NOTICE 'x1=%, y1=%, x2=%, y2=%', x1, y1, x2, y2;
-
-		-- Search exhaustively for withvalue pixel on a moving 3x3 grid
-		-- (very often more efficient than searching on a mere 1x1 grid)
-		FOR xinc in 0..2 LOOP
-			FOR yinc in 0..2 LOOP
-				FOR x IN x1+xinc..x2 BY 3 LOOP
-					FOR y IN y1+yinc..y2 BY 3 LOOP
-						-- Check first if the pixel intersects with the geometry. Often many won't.
-						bintersect := NOT st_isempty(st_intersection(st_pixelaspolygon(rast, x, y), geom));
-
-						IF bintersect THEN
-							-- If the pixel really intersects, check its value. Return TRUE if with value.
-							pixelval := st_value(rast, nband, x, y);
-							IF pixelval != nodata THEN
-								RETURN TRUE;
-							END IF;
-						END IF;
-					END LOOP;
-				END LOOP;
-			END LOOP;
-		END LOOP;
-
-		RETURN FALSE;
+		SELECT ST_Collect(t.geom) INTO _geom FROM ST_PixelAsPolygons(rast, nband) AS t;
+		RETURN ST_Intersects(geom, _geom);
 	END;
 	$$ LANGUAGE 'plpgsql' IMMUTABLE
 	COST 1000;
@@ -6460,6 +6557,7 @@ CREATE OR REPLACE FUNCTION st_intersection(
 -- ST_Union aggregate
 -----------------------------------------------------------------------
 
+-- Availability: 2.1.0
 CREATE TYPE unionarg AS (
 	nband int,
 	uniontype text
@@ -6553,8 +6651,8 @@ CREATE OR REPLACE FUNCTION st_clip(
 	nodataval double precision[] DEFAULT NULL, crop boolean DEFAULT TRUE
 )
 	RETURNS raster
-	AS $$
-  BEGIN
+ 	AS $$
+	BEGIN
 		-- short-cut if geometry's extent fully contains raster's extent
 		IF (nodataval IS NULL OR array_length(nodataval, 1) < 1) AND geom ~ ST_Envelope(rast) THEN
 			RETURN rast;
@@ -6743,7 +6841,7 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint(cn name, sql text)
 			WHEN OTHERS THEN
 				RAISE NOTICE 'Unable to add constraint: %', cn;
 				RAISE NOTICE 'SQL used for failed constraint: %', sql;
-				RAISE NOTICE 'Returned error message: %', SQLERRM;
+				RAISE NOTICE 'Returned error message: % (%)', SQLERRM, SQLSTATE;
 				RETURN FALSE;
 		END;
 
@@ -6773,7 +6871,8 @@ CREATE OR REPLACE FUNCTION _drop_raster_constraint(rastschema name, rasttable na
 			WHEN undefined_object THEN
 				RAISE NOTICE 'The constraint "%" does not exist.  Skipping', cn;
 			WHEN OTHERS THEN
-				RAISE NOTICE 'Unable to drop constraint "%"', cn;
+				RAISE NOTICE 'Unable to drop constraint "%": % (%)',
+          cn, SQLERRM, SQLSTATE;
 				RETURN FALSE;
 		END;
 
@@ -6785,7 +6884,10 @@ CREATE OR REPLACE FUNCTION _drop_raster_constraint(rastschema name, rasttable na
 CREATE OR REPLACE FUNCTION _raster_constraint_info_srid(rastschema name, rasttable name, rastcolumn name)
 	RETURNS integer AS $$
 	SELECT
-		replace(replace(split_part(s.consrc, ' = ', 2), ')', ''), '(', '')::integer
+		regexp_replace(
+			split_part(s.consrc, ' = ', 2),
+			'[\(\)]', '', 'g'
+		)::integer
 	FROM pg_class c, pg_namespace n, pg_attribute a, pg_constraint s
 	WHERE n.nspname = $1
 		AND c.relname = $2
@@ -6821,7 +6923,8 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_srid(rastschema name, rasttabl
 		BEGIN
 			EXECUTE sql INTO attr;
 		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to get the SRID of a sample raster';
+			RAISE NOTICE 'Unable to get the SRID of a sample raster: % (%)',
+        SQLERRM, SQLSTATE;
 			RETURN FALSE;
 		END;
 
@@ -6845,7 +6948,16 @@ CREATE OR REPLACE FUNCTION _drop_raster_constraint_srid(rastschema name, rasttab
 CREATE OR REPLACE FUNCTION _raster_constraint_info_scale(rastschema name, rasttable name, rastcolumn name, axis char)
 	RETURNS double precision AS $$
 	SELECT
-		replace(replace(split_part(split_part(s.consrc, ' = ', 2), '::', 1), ')', ''), '(', '')::double precision
+		regexp_replace(
+			replace(
+				split_part(
+					split_part(s.consrc, ' = ', 2),
+					'::', 1
+				),
+				'round(', ''
+			),
+			'[ ''''\(\)]', '', 'g'
+		)::double precision
 	FROM pg_class c, pg_namespace n, pg_attribute a, pg_constraint s
 	WHERE n.nspname = $1
 		AND c.relname = $2
@@ -6887,15 +6999,16 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_scale(rastschema name, rasttab
 		BEGIN
 			EXECUTE sql INTO attr;
 		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to get the %-scale of a sample raster', upper($4);
+			RAISE NOTICE 'Unable to get the %-scale of a sample raster: % (%)',
+        upper($4), SQLERRM, SQLSTATE;
 			RETURN FALSE;
 		END;
 
 		sql := 'ALTER TABLE ' || fqtn
 			|| ' ADD CONSTRAINT ' || quote_ident(cn)
-			|| ' CHECK (st_scale' || $4 || '('
+			|| ' CHECK (round(st_scale' || $4 || '('
 			|| quote_ident($3)
-			|| ')::numeric(25,10) = (' || attr || ')::numeric(25,10))';
+			|| ')::numeric, 10) = round(' || text(attr) || '::numeric, 10))';
 		RETURN _add_raster_constraint(cn, sql);
 	END;
 	$$ LANGUAGE 'plpgsql' VOLATILE STRICT
@@ -6921,7 +7034,10 @@ CREATE OR REPLACE FUNCTION _raster_constraint_info_blocksize(rastschema name, ra
 			WHEN strpos(s.consrc, 'ANY (ARRAY[') > 0 THEN
 				split_part((regexp_matches(s.consrc, E'ARRAY\\[(.*?){1}\\]'))[1], ',', 1)::integer
 			ELSE
-				replace(replace(split_part(s.consrc, '= ', 2), ')', ''), '(', '')::integer
+				regexp_replace(
+					split_part(s.consrc, '= ', 2),
+					'[\(\)]', '', 'g'
+				)::integer
 			END
 	FROM pg_class c, pg_namespace n, pg_attribute a, pg_constraint s
 	WHERE n.nspname = $1
@@ -6967,7 +7083,8 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_blocksize(rastschema name, ras
 				attrset := attrset || attr;
 			END LOOP;
 		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to get the % of a sample raster', $4;
+			RAISE NOTICE 'Unable to get the % of a sample raster: % (%)',
+        $4, SQLERRM, SQLSTATE;
 			RETURN FALSE;
 		END;
 
@@ -6997,7 +7114,7 @@ CREATE OR REPLACE FUNCTION _drop_raster_constraint_blocksize(rastschema name, ra
 CREATE OR REPLACE FUNCTION _raster_constraint_info_extent(rastschema name, rasttable name, rastcolumn name)
 	RETURNS geometry AS $$
 	SELECT
-		trim(both '''' from split_part(trim(split_part(s.consrc, ',', 2)), '::', 1))::geometry
+		trim(both '''' from split_part(trim(split_part(s.consrc, ' @ ', 2)), '::', 1))::geometry
 	FROM pg_class c, pg_namespace n, pg_attribute a, pg_constraint s
 	WHERE n.nspname = $1
 		AND c.relname = $2
@@ -7006,7 +7123,7 @@ CREATE OR REPLACE FUNCTION _raster_constraint_info_extent(rastschema name, rastt
 		AND s.connamespace = n.oid
 		AND s.conrelid = c.oid
 		AND a.attnum = ANY (s.conkey)
-		AND s.consrc LIKE '%st_coveredby(st_convexhull(%';
+		AND s.consrc LIKE '%st_envelope(% @ %';
 	$$ LANGUAGE sql STABLE STRICT
   COST 100;
 
@@ -7026,32 +7143,17 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_extent(rastschema name, rastta
 
 		cn := 'enforce_max_extent_' || $3;
 
-		sql := 'SELECT st_ashexewkb(st_union(st_convexhull('
+		sql := 'SELECT st_ashexewkb(st_envelope(st_collect(st_envelope('
 			|| quote_ident($3)
-			|| '))) FROM '
+			|| ')))) FROM '
 			|| fqtn;
-		BEGIN
-			EXECUTE sql INTO attr;
-		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to get the extent of the raster column. Attempting memory efficient (slower) approach';
-
-			sql := 'SELECT st_ashexewkb(st_memunion(st_convexhull('
-				|| quote_ident($3)
-				|| '))) FROM '
-				|| fqtn;
-			BEGIN
-				EXECUTE sql INTO attr;
-			EXCEPTION WHEN OTHERS THEN
-				RAISE NOTICE 'Still unable to get the extent of the raster column. Cannot add extent constraint';
-				RETURN FALSE;
-			END;
-		END;
+		EXECUTE sql INTO attr;
 
 		sql := 'ALTER TABLE ' || fqtn
 			|| ' ADD CONSTRAINT ' || quote_ident(cn)
-			|| ' CHECK (st_coveredby(st_convexhull('
+			|| ' CHECK (st_envelope('
 			|| quote_ident($3)
-			|| '), ''' || attr || '''::geometry))';
+			|| ') @ ''' || attr || '''::geometry)';
 		RETURN _add_raster_constraint(cn, sql);
 	END;
 	$$ LANGUAGE 'plpgsql' VOLATILE STRICT
@@ -7101,7 +7203,8 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_alignment(rastschema name, ras
 		BEGIN
 			EXECUTE sql INTO attr;
 		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to get the alignment of a sample raster';
+			RAISE NOTICE 'Unable to get the alignment of a sample raster: % (%)',
+        SQLERRM, SQLSTATE;
 			RETURN FALSE;
 		END;
 
@@ -7237,20 +7340,25 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_coverage_tile(rastschema name,
 			sql := 'WITH foo AS (SELECT ST_Metadata(' || quote_ident($3) || ') AS meta, ST_ConvexHull(' || quote_ident($3) || ') AS hull FROM ' || fqtn || ') SELECT max((meta).scalex), max((meta).scaley), max((meta).skewx), max((meta).skewy), max((meta).width), max((meta).height), ST_Union(hull) FROM foo';
 			EXECUTE sql INTO _scalex, _scaley, _skewx, _skewy, _tilewidth, _tileheight, _covextent;
 		EXCEPTION WHEN OTHERS THEN
+			RAISE DEBUG 'Unable to get coverage metadata for %.%: % (%)',
+        fqtn, quote_ident($3), SQLERRM, SQLSTATE;
+      -- TODO: Why not return false here ?
 		END;
 
 		-- rasterize extent
 		BEGIN
 			_covrast := ST_AsRaster(_covextent, _scalex, _scaley, '8BUI', 1, 0, NULL, NULL, _skewx, _skewy);
 			IF _covrast IS NULL THEN
-				RAISE NOTICE 'Unable to create coverage raster. Cannot add coverage tile constraint';
+				RAISE NOTICE 'Unable to create coverage raster. Cannot add coverage tile constraint: % (%)',
+          SQLERRM, SQLSTATE;
 				RETURN FALSE;
 			END IF;
 
 			-- remove band
 			_covrast := ST_MakeEmptyRaster(_covrast);
 		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to create coverage raster. Cannot add coverage tile constraint';
+			RAISE NOTICE 'Unable to create coverage raster. Cannot add coverage tile constraint: % (%)',
+        SQLERRM, SQLSTATE;
 			RETURN FALSE;
 		END;
 
@@ -7296,7 +7404,10 @@ CREATE OR REPLACE FUNCTION _drop_raster_constraint_regular_blocking(rastschema n
 CREATE OR REPLACE FUNCTION _raster_constraint_info_num_bands(rastschema name, rasttable name, rastcolumn name)
 	RETURNS integer AS $$
 	SELECT
-		replace(replace(split_part(s.consrc, ' = ', 2), ')', ''), '(', '')::integer
+		regexp_replace(
+			split_part(s.consrc, ' = ', 2),
+			'[\(\)]', '', 'g'
+		)::integer
 	FROM pg_class c, pg_namespace n, pg_attribute a, pg_constraint s
 	WHERE n.nspname = $1
 		AND c.relname = $2
@@ -7331,7 +7442,8 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_num_bands(rastschema name, ras
 		BEGIN
 			EXECUTE sql INTO attr;
 		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to get the number of bands of a sample raster';
+			RAISE NOTICE 'Unable to get the number of bands of a sample raster: % (%)',
+        SQLERRM, SQLSTATE;
 			RETURN FALSE;
 		END;
 
@@ -7354,7 +7466,15 @@ CREATE OR REPLACE FUNCTION _drop_raster_constraint_num_bands(rastschema name, ra
 CREATE OR REPLACE FUNCTION _raster_constraint_info_pixel_types(rastschema name, rasttable name, rastcolumn name)
 	RETURNS text[] AS $$
 	SELECT
-		trim(both '''' from split_part(replace(replace(split_part(s.consrc, ' = ', 2), ')', ''), '(', ''), '::', 1))::text[]
+		trim(
+			both '''' from split_part(
+				regexp_replace(
+					split_part(s.consrc, ' = ', 2),
+					'[\(\)]', '', 'g'
+				),
+				'::', 1
+			)
+		)::text[]
 	FROM pg_class c, pg_namespace n, pg_attribute a, pg_constraint s
 	WHERE n.nspname = $1
 		AND c.relname = $2
@@ -7395,12 +7515,13 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_pixel_types(rastschema name, r
 		BEGIN
 			EXECUTE sql INTO attr;
 		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to get the pixel types of a sample raster';
+			RAISE NOTICE 'Unable to get the pixel types of a sample raster: % (%)',
+        SQLERRM, SQLSTATE;
 			RETURN FALSE;
 		END;
 		max := array_length(attr, 1);
 		IF max < 1 OR max IS NULL THEN
-			RAISE NOTICE 'Unable to get the pixel types of a sample raster';
+			RAISE NOTICE 'Unable to get the pixel types of a sample raster (max < 1 or null)';
 			RETURN FALSE;
 		END IF;
 
@@ -7430,7 +7551,15 @@ CREATE OR REPLACE FUNCTION _drop_raster_constraint_pixel_types(rastschema name,
 CREATE OR REPLACE FUNCTION _raster_constraint_info_nodata_values(rastschema name, rasttable name, rastcolumn name)
 	RETURNS double precision[] AS $$
 	SELECT
-		trim(both '''' from split_part(replace(replace(split_part(s.consrc, ' = ', 2), ')', ''), '(', ''), '::', 1))::double precision[]
+		trim(both '''' from
+			split_part(
+				regexp_replace(
+					split_part(s.consrc, ' = ', 2),
+					'[\(\)]', '', 'g'
+				),
+				'::', 1
+			)
+		)::double precision[]
 	FROM pg_class c, pg_namespace n, pg_attribute a, pg_constraint s
 	WHERE n.nspname = $1
 		AND c.relname = $2
@@ -7443,9 +7572,11 @@ CREATE OR REPLACE FUNCTION _raster_constraint_info_nodata_values(rastschema name
 	$$ LANGUAGE sql STABLE STRICT
   COST 100;
 
+-- Availability: 2.0.0
+-- Changed: 2.2.0
 CREATE OR REPLACE FUNCTION _raster_constraint_nodata_values(rast raster)
-	RETURNS double precision[] AS
-	$$ SELECT array_agg(nodatavalue)::double precision[] FROM st_bandmetadata($1, ARRAY[]::int[]); $$
+	RETURNS numeric[] AS
+	$$ SELECT array_agg(round(nodatavalue::numeric, 10))::numeric[] FROM st_bandmetadata($1, ARRAY[]::int[]); $$
 	LANGUAGE 'sql' STABLE STRICT;
 
 CREATE OR REPLACE FUNCTION _add_raster_constraint_nodata_values(rastschema name, rasttable name, rastcolumn name)
@@ -7454,7 +7585,7 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_nodata_values(rastschema name,
 		fqtn text;
 		cn name;
 		sql text;
-		attr double precision[];
+		attr numeric[];
 		max int;
 	BEGIN
 		fqtn := '';
@@ -7471,19 +7602,20 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_nodata_values(rastschema name,
 		BEGIN
 			EXECUTE sql INTO attr;
 		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to get the nodata values of a sample raster';
+			RAISE NOTICE 'Unable to get the nodata values of a sample raster: % (%)',
+        SQLERRM, SQLSTATE;
 			RETURN FALSE;
 		END;
 		max := array_length(attr, 1);
 		IF max < 1 OR max IS NULL THEN
-			RAISE NOTICE 'Unable to get the nodata values of a sample raster';
+			RAISE NOTICE 'Unable to get the nodata values of a sample raster (max < 1 or null)';
 			RETURN FALSE;
 		END IF;
 
 		sql := 'ALTER TABLE ' || fqtn
 			|| ' ADD CONSTRAINT ' || quote_ident(cn)
 			|| ' CHECK (_raster_constraint_nodata_values(' || quote_ident($3)
-			|| ')::numeric(16,10)[] = ''{';
+			|| ')::numeric[] = ''{';
 		FOR x in 1..max LOOP
 			IF attr[x] IS NULL THEN
 				sql := sql || 'NULL';
@@ -7494,7 +7626,7 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_nodata_values(rastschema name,
 				sql := sql || ',';
 			END IF;
 		END LOOP;
-		sql := sql || '}''::numeric(16,10)[])';
+		sql := sql || '}''::numeric[])';
 
 		RETURN _add_raster_constraint(cn, sql);
 	END;
@@ -7510,7 +7642,15 @@ CREATE OR REPLACE FUNCTION _drop_raster_constraint_nodata_values(rastschema name
 CREATE OR REPLACE FUNCTION _raster_constraint_info_out_db(rastschema name, rasttable name, rastcolumn name)
 	RETURNS boolean[] AS $$
 	SELECT
-		trim(both '''' from split_part(replace(replace(split_part(s.consrc, ' = ', 2), ')', ''), '(', ''), '::', 1))::boolean[]
+		trim(
+			both '''' from split_part(
+				regexp_replace(
+					split_part(s.consrc, ' = ', 2),
+					'[\(\)]', '', 'g'
+				),
+				'::', 1
+			)
+		)::boolean[]
 	FROM pg_class c, pg_namespace n, pg_attribute a, pg_constraint s
 	WHERE n.nspname = $1
 		AND c.relname = $2
@@ -7551,12 +7691,13 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_out_db(rastschema name, rastta
 		BEGIN
 			EXECUTE sql INTO attr;
 		EXCEPTION WHEN OTHERS THEN
-			RAISE NOTICE 'Unable to get the out-of-database bands of a sample raster';
+			RAISE NOTICE 'Unable to get the out-of-database bands of a sample raster: % (%)',
+        SQLERRM, SQLSTATE;
 			RETURN FALSE;
 		END;
 		max := array_length(attr, 1);
 		IF max < 1 OR max IS NULL THEN
-			RAISE NOTICE 'Unable to get the out-of-database bands of a sample raster';
+			RAISE NOTICE 'Unable to get the out-of-database bands of a sample raster (max < 1 or null)';
 			RETURN FALSE;
 		END IF;
 
@@ -7587,6 +7728,31 @@ CREATE OR REPLACE FUNCTION _drop_raster_constraint_out_db(rastschema name, rastt
 	LANGUAGE 'sql' VOLATILE STRICT
 	COST 100;
 
+CREATE OR REPLACE FUNCTION _raster_constraint_info_index(rastschema name, rasttable name, rastcolumn name)
+	RETURNS boolean AS $$
+		SELECT
+			TRUE
+		FROM pg_catalog.pg_class c
+		JOIN pg_catalog.pg_index i
+			ON i.indexrelid = c.oid
+		JOIN pg_catalog.pg_class c2
+			ON i.indrelid = c2.oid
+		JOIN pg_catalog.pg_namespace n
+			ON n.oid = c.relnamespace
+		JOIN pg_am am
+			ON c.relam = am.oid
+		JOIN pg_attribute att
+			ON att.attrelid = c2.oid
+				AND pg_catalog.format_type(att.atttypid, att.atttypmod) = 'raster'
+		WHERE c.relkind IN ('i')
+			AND n.nspname = $1
+			AND c2.relname = $2
+			AND att.attname = $3
+			AND am.amname = 'gist'
+			AND strpos(pg_catalog.pg_get_expr(i.indexprs, i.indrelid), att.attname) > 0;
+	$$ LANGUAGE sql STABLE STRICT
+  COST 100;
+
 ------------------------------------------------------------------------------
 -- AddRasterConstraints
 ------------------------------------------------------------------------------
@@ -8084,7 +8250,8 @@ CREATE OR REPLACE FUNCTION DropRasterConstraints (
 -- The metadata is documented in the PostGIS Raster specification:
 -- http://trac.osgeo.org/postgis/wiki/WKTRaster/SpecificationFinal01
 ------------------------------------------------------------------------------
-
+-- Availability: 2.0.0
+-- Changed: 2.2.0
 CREATE OR REPLACE VIEW raster_columns AS
 	SELECT
 		current_database() AS r_table_catalog,
@@ -8102,7 +8269,8 @@ CREATE OR REPLACE VIEW raster_columns AS
 		_raster_constraint_info_pixel_types(n.nspname, c.relname, a.attname) AS pixel_types,
 		_raster_constraint_info_nodata_values(n.nspname, c.relname, a.attname) AS nodata_values,
 		_raster_constraint_info_out_db(n.nspname, c.relname, a.attname) AS out_db,
-		_raster_constraint_info_extent(n.nspname, c.relname, a.attname) AS extent
+		_raster_constraint_info_extent(n.nspname, c.relname, a.attname) AS extent,
+		COALESCE(_raster_constraint_info_index(n.nspname, c.relname, a.attname), FALSE) AS spatial_index
 	FROM
 		pg_class c,
 		pg_attribute a,
@@ -8114,7 +8282,7 @@ CREATE OR REPLACE VIEW raster_columns AS
 		AND a.attrelid = c.oid
 		AND c.relnamespace = n.oid
 		AND c.relkind = ANY(ARRAY['r'::char, 'v'::char, 'm'::char, 'f'::char])
-		AND NOT pg_is_other_temp_schema(c.relnamespace);
+		AND NOT pg_is_other_temp_schema(c.relnamespace)  AND has_table_privilege(c.oid, 'SELECT'::text);
 
 ------------------------------------------------------------------------------
 -- overview constraint functions
@@ -8190,7 +8358,8 @@ CREATE OR REPLACE FUNCTION _drop_overview_constraint(ovschema name, ovtable name
 ------------------------------------------------------------------------------
 -- RASTER_OVERVIEWS
 ------------------------------------------------------------------------------
-
+-- Availability: 2.0.0
+-- Changed: 2.2.0
 CREATE OR REPLACE VIEW raster_overviews AS
 	SELECT
 		current_database() AS o_table_catalog,
@@ -8217,7 +8386,7 @@ CREATE OR REPLACE VIEW raster_overviews AS
 		AND s.connamespace = n.oid
 		AND s.conrelid = c.oid
 		AND s.consrc LIKE '%_overview_constraint(%'
-		AND NOT pg_is_other_temp_schema(c.relnamespace);
+		AND NOT pg_is_other_temp_schema(c.relnamespace)  AND has_table_privilege(c.oid, 'SELECT'::text);
 
 ------------------------------------------------------------------------------
 -- AddOverviewConstraints
@@ -8489,6 +8658,155 @@ CREATE OR REPLACE FUNCTION UpdateRasterSRID(
 	AS $$ SELECT _UpdateRasterSRID('', $1, $2, $3) $$
 	LANGUAGE 'sql' VOLATILE STRICT;
 
+------------------------------------------------------------------------------
+-- ST_Retile
+------------------------------------------------------------------------------
+
+-- Availability: 2.2.0
+-- @param ext extent to create overviews for, also used for grid origin
+--            SRID must match source tile srid.
+-- @param sfx scale factor x (pixel width)
+-- @param sfy scale factor y (pixel height, usually negative)
+-- @param tw max tile width
+-- @param th max tile height
+--
+CREATE OR REPLACE FUNCTION ST_Retile(tab regclass, col name, ext geometry, sfx float8, sfy float8, tw int, th int, algo text DEFAULT 'NearestNeighbour')
+RETURNS SETOF raster AS $$
+DECLARE
+  rec RECORD;
+  ipx FLOAT8;
+  ipy FLOAT8;
+  tx int;
+  ty int;
+  te GEOMETRY; -- tile extent
+  ncols int;
+  nlins int;
+  srid int;
+  sql TEXT;
+BEGIN
+
+  RAISE DEBUG 'Target coverage will have sfx=%, sfy=%', sfx, sfy;
+
+  -- 2. Loop over each target tile and build it from source tiles
+  ipx := st_xmin(ext);
+  ncols := ceil((st_xmax(ext)-ipx)/sfx/tw);
+  IF sfy < 0 THEN
+    ipy := st_ymax(ext);
+    nlins := ceil((st_ymin(ext)-ipy)/sfy/th);
+  ELSE
+    ipy := st_ymin(ext);
+    nlins := ceil((st_ymax(ext)-ipy)/sfy/th);
+  END IF;
+
+  srid := ST_Srid(ext);
+
+  RAISE DEBUG 'Target coverage will have % x % tiles, each of approx size % x %', ncols, nlins, tw, th;
+  RAISE DEBUG 'Target coverage will cover extent %', ext::box2d;
+
+  FOR tx IN 0..ncols-1 LOOP
+    FOR ty IN 0..nlins-1 LOOP
+      te := ST_MakeEnvelope(ipx + tx     *  tw  * sfx,
+                             ipy + ty     *  th  * sfy,
+                             ipx + (tx+1) *  tw  * sfx,
+                             ipy + (ty+1) *  th  * sfy,
+                             srid);
+      --RAISE DEBUG 'sfx/sfy: %, %', sfx, sfy;
+      --RAISE DEBUG 'tile extent %', te;
+      sql := 'SELECT count(*), ST_Clip(ST_Union(ST_SnapToGrid(ST_Rescale(ST_Clip(' || quote_ident(col)
+          || ', st_expand($3, greatest($1,$2))),$1, $2, $6), $4, $5, $1, $2)), $3) g FROM ' || tab::text
+          || ' WHERE ST_Intersects(' || quote_ident(col) || ', $3)';
+      --RAISE DEBUG 'SQL: %', sql;
+      FOR rec IN EXECUTE sql USING sfx, sfy, te, ipx, ipy, algo LOOP
+        --RAISE DEBUG '% source tiles intersect target tile %,% with extent %', rec.count, tx, ty, te::box2d;
+        IF rec.g IS NULL THEN
+          RAISE WARNING 'No source tiles cover target tile %,% with extent %',
+            tx, ty, te::box2d;
+        ELSE
+          --RAISE DEBUG 'Tile for extent % has size % x %', te::box2d, st_width(rec.g), st_height(rec.g);
+          RETURN NEXT rec.g;
+        END IF;
+      END LOOP;
+    END LOOP;
+  END LOOP;
+
+  RETURN;
+END;
+$$ LANGUAGE 'plpgsql' STABLE STRICT;
+
+------------------------------------------------------------------------------
+-- ST_CreateOverview
+------------------------------------------------------------------------------
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_CreateOverview(tab regclass, col name, factor int, algo text DEFAULT 'NearestNeighbour')
+RETURNS regclass AS $$
+DECLARE
+  sinfo RECORD; -- source info
+  sql TEXT;
+  ttab TEXT;
+BEGIN
+
+  -- 0. Check arguments, we need to ensure:
+  --    a. Source table has a raster column with given name
+  --    b. Source table has a fixed scale (or "factor" would have no meaning)
+  --    c. Source table has a known extent ? (we could actually compute it)
+  --    d. Source table has a fixed tile size (or "factor" would have no meaning?)
+  -- # all of the above can be checked with a query to raster_columns
+  sql := 'SELECT r.r_table_schema sch, r.r_table_name tab, '
+      || 'r.scale_x sfx, r.scale_y sfy, r.blocksize_x tw, '
+      || 'r.blocksize_y th, r.extent ext, r.srid FROM raster_columns r, '
+      || 'pg_class c, pg_namespace n WHERE r.r_table_schema = n.nspname '
+      || 'AND r.r_table_name = c.relname AND r_raster_column = $2 AND '
+      || ' c.relnamespace = n.oid AND c.oid = $1'
+  ;
+  EXECUTE sql INTO sinfo USING tab, col;
+  IF sinfo IS NULL THEN
+      RAISE EXCEPTION '%.% raster column does not exist', tab::text, col;
+  END IF;
+  IF sinfo.sfx IS NULL or sinfo.sfy IS NULL THEN
+    RAISE EXCEPTION 'cannot create overview without scale constraint, try select AddRasterConstraints(''%'', ''%'');', tab::text, col;
+  END IF;
+  IF sinfo.tw IS NULL or sinfo.tw IS NULL THEN
+    RAISE EXCEPTION 'cannot create overview without tilesize constraint, try select AddRasterConstraints(''%'', ''%'');', tab::text, col;
+  END IF;
+  IF sinfo.ext IS NULL THEN
+    RAISE EXCEPTION 'cannot create overview without extent constraint, try select AddRasterConstraints(''%'', ''%'');', tab::text, col;
+  END IF;
+
+  -- TODO: lookup in raster_overviews to see if there's any
+  --       lower-resolution table to start from
+
+  ttab := 'o_' || factor || '_' || sinfo.tab;
+  sql := 'CREATE TABLE ' || quote_ident(sinfo.sch)
+      || '.' || quote_ident(ttab)
+      || ' AS SELECT ST_Retile($1, $2, $3, $4, $5, $6, $7) '
+      || quote_ident(col);
+  EXECUTE sql USING tab, col, sinfo.ext,
+                    sinfo.sfx * factor, sinfo.sfy * factor,
+                    sinfo.tw, sinfo.th, algo;
+
+  -- TODO: optimize this using knowledge we have about
+  --       the characteristics of the target column ?
+  PERFORM AddRasterConstraints(sinfo.sch, ttab, col);
+
+  PERFORM AddOverviewConstraints(sinfo.sch, ttab, col,
+                                 sinfo.sch, sinfo.tab, col, factor);
+
+  RETURN ttab;
+END;
+$$ LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+-------------------------------------------------------------------
+--  Debugging
+-------------------------------------------------------------------
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION postgis_noop(raster)
+	RETURNS geometry
+	AS 'MODULE_PATHNAME', 'RASTER_noop'
+	LANGUAGE 'c' VOLATILE STRICT;
+
+
 -------------------------------------------------------------------
 --  END
 -------------------------------------------------------------------
diff --git a/raster/rt_pg/rtpostgis_drop.sql.in b/raster/rt_pg/rtpostgis_drop.sql.in
index 8cfc2a5..4b1267c 100644
--- a/raster/rt_pg/rtpostgis_drop.sql.in
+++ b/raster/rt_pg/rtpostgis_drop.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
--- $Id: rtpostgis_drop.sql.in.c 7884 2011-09-22 15:07:25Z robe $
 --
 -- PostGIS Raster - Raster Type for PostGIS
 -- http://trac.osgeo.org/postgis/wiki/WKTRaster
@@ -21,7 +20,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 --
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
@@ -29,11 +28,16 @@
 --
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
--- Drop obsolete functions (run as last step in an upgrade)
+-- This file will be used to drop obseleted objects.
+-- It will be only used for upgrades.
+-- It will be loaded _after_ the objects upgrade statements, so
+-- that objects previously dependent on these objects have a chance
+-- to get upgraded to remove the dependency.
+--
+-- Remember: only put _obsoleted_ signatures in this file.
 --
 -- TODO: tag each item with the version in which it was dropped
--- 
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
 --
 
 -- drop obsoleted aggregates
@@ -44,194 +48,27 @@ DROP AGGREGATE IF EXISTS ST_Union(raster, text, text);
 DROP AGGREGATE IF EXISTS ST_Union(raster, text, text, text, double precision);
 DROP AGGREGATE IF EXISTS ST_Union(raster, record[]);
 
---these were renamed to ST_MapAlgebraExpr or argument names changed --
-DROP FUNCTION IF EXISTS ST_MapAlgebra(raster, integer, text, text, nodatavaluerepl text);
-DROP FUNCTION IF EXISTS ST_MapAlgebra(raster, pixeltype text, expression text, nodatavaluerepl text);
-
-
---dropped functions
-DROP FUNCTION IF EXISTS  ST_MapAlgebraFct(raster, raster, regprocedure, VARIADIC text[]);
-
---function no longer exists
-DROP FUNCTION IF EXISTS ST_BandNoDataValue(raster);
-
---function no longer exists
-DROP FUNCTION IF EXISTS ST_SetGeoReference(raster, text);
-
---function no longer exists
-DROP FUNCTION IF EXISTS st_setbandisnodata(raster);
-
---function no longer exists
-DROP FUNCTION IF EXISTS st_setbandnodatavalue(raster, integer, double precision);
-
---function no longer exists
-DROP FUNCTION IF EXISTS st_dumpaspolygons(raster);
-
---function no longer exists
-DROP FUNCTION IF EXISTS st_polygon(raster);
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_makeemptyraster(int, int, float8, float8, float8, float8, float8, float8);
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_addband(raster, text);
-DROP FUNCTION IF EXISTS st_addband(raster, text, float8);
-DROP FUNCTION IF EXISTS st_addband(raster, int, text);
-DROP FUNCTION IF EXISTS st_addband(raster, int, text, float8);
-DROP FUNCTION IF EXISTS st_addband(raster, raster, int);
-DROP FUNCTION IF EXISTS st_addband(raster, raster);
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_bandisnodata(raster);
-DROP FUNCTION IF EXISTS st_bandisnodata(raster, integer);
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_bandpath(raster);
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_bandpixeltype(raster);
-
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_georeference(raster);
-
--- function name change
-DROP FUNCTION IF EXISTS dumpaswktpolygons(raster, integer);
-
--- remove TYPE summarystats
-DROP TYPE IF EXISTS summarystats;
-
--- remove TYPE quantile
-DROP TYPE IF EXISTS quantile;
-
--- remove TYPE valuecount
-DROP TYPE IF EXISTS valuecount;
 
--- remove TYPE histogram
-DROP TYPE IF EXISTS histogram;
+DROP FUNCTION IF EXISTS ST_Intersects(raster,boolean,geometry);
+DROP FUNCTION IF EXISTS ST_Intersects(geometry,raster,boolean);
+DROP FUNCTION IF EXISTS ST_Intersects(raster,geometry);
+DROP FUNCTION IF EXISTS ST_Intersects(geometry,raster);
+DROP FUNCTION IF EXISTS ST_Intersects(raster, integer, boolean  , geometry);
+DROP FUNCTION IF EXISTS ST_Intersects(geometry , raster, integer , boolean);
+DROP FUNCTION IF EXISTS ST_Intersection(raster,raster, integer, integer);
+DROP FUNCTION IF EXISTS ST_Intersection(geometry,raster);
 
--- no longer needed functions changed to use out parameters
-DROP TYPE IF EXISTS bandmetadata;
-DROP TYPE IF EXISTS geomvalxy;
-
--- functions no longer supported
-DROP FUNCTION IF EXISTS AddRasterColumn(varchar, varchar, varchar, varchar, integer, varchar[], boolean, boolean, double precision[], double precision, double precision, integer, integer, geometry);
-DROP FUNCTION IF EXISTS AddRasterColumn(varchar, varchar, varchar, integer, varchar[], boolean, boolean, double precision[], double precision, double precision, integer, integer, geometry);
-DROP FUNCTION IF EXISTS AddRasterColumn(varchar, varchar, integer, varchar[], boolean, boolean, double precision[], double precision, double precision, integer, integer, geometry);
-DROP FUNCTION IF EXISTS DropRasterColumn(varchar, varchar, varchar, varchar);
-DROP FUNCTION IF EXISTS DropRasterColumn(varchar, varchar, varchar);
-DROP FUNCTION IF EXISTS DropRasterColumn(varchar, varchar);
-DROP FUNCTION IF EXISTS DropRasterTable(varchar, varchar, varchar);
-DROP FUNCTION IF EXISTS DropRasterTable(varchar, varchar);
-DROP FUNCTION IF EXISTS DropRasterTable(varchar);
-
--- function parameters added
-DROP FUNCTION IF EXISTS AddRasterConstraints(name, name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
-DROP FUNCTION IF EXISTS AddRasterConstraints(name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
-DROP FUNCTION IF EXISTS DropRasterConstraints(name, name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
-DROP FUNCTION IF EXISTS DropRasterConstraints(name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
-
--- function parameters renamed
-CREATE OR REPLACE FUNCTION _drop_st_samealignment()
-	RETURNS void AS $$
-	DECLARE
-		cnt int;
-	BEGIN
-		SELECT count(*) INTO cnt
-		FROM pg_proc
-		WHERE lower(proname) = 'st_samealignment'
-			AND pronargs = 2
-			AND (
-				proargnames = '{rasta,rastb}'::text[] OR
-				proargnames = '{rastA,rastB}'::text[]
-			);
-
-		IF cnt > 0 THEN
-			RAISE NOTICE 'Dropping ST_SameAlignment(raster, raster) due to parameter name changes.  Unfortunately, this is a DROP ... CASCADE as the alignment raster constraint uses ST_SameAlignment(raster, raster).  You will need to reapply AddRasterConstraint(''SCHEMA'', ''TABLE'', ''COLUMN'', ''alignment'') to any raster column that requires this constraint.';
-			DROP FUNCTION IF EXISTS st_samealignment(raster, raster) CASCADE;
-		END IF;
-	END;
-	$$ LANGUAGE 'plpgsql' VOLATILE;
-SELECT _drop_st_samealignment();
-DROP FUNCTION _drop_st_samealignment();
-
--- function was renamed
-DROP FUNCTION IF EXISTS st_minpossibleval(text);
-
--- function deprecated previously
-DROP FUNCTION IF EXISTS st_pixelaspolygon(raster, integer, integer, integer);
-
--- refactoring of functions
-DROP FUNCTION IF EXISTS _st_dumpaswktpolygons(raster, integer);
-DROP TYPE IF EXISTS wktgeomval;
-
-
--- variants of st_intersection with regprocedure no longer exist
-DROP FUNCTION IF EXISTS st_intersection(raster, integer, raster, integer, text, regprocedure);
-DROP FUNCTION IF EXISTS st_intersection(raster, integer, raster, integer, regprocedure);
-DROP FUNCTION IF EXISTS st_intersection(raster, raster, text, regprocedure);
-DROP FUNCTION IF EXISTS st_intersection(raster, raster, regprocedure);
-
--- function deprecated
-DROP FUNCTION IF EXISTS st_pixelaspolygons(raster, integer);
-
--- function deprecated
-DROP FUNCTION IF EXISTS st_bandsurface(raster, integer);
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_overlaps(geometry, raster, integer);
-DROP FUNCTION IF EXISTS st_overlaps(raster, integer, geometry);
-DROP FUNCTION IF EXISTS st_overlaps(raster, geometry, integer);
-DROP FUNCTION IF EXISTS _st_overlaps(raster, geometry, integer);
-DROP FUNCTION IF EXISTS _st_overlaps(geometry, raster, integer);
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_touches(geometry, raster, integer);
-DROP FUNCTION IF EXISTS st_touches(raster, geometry, integer);
-DROP FUNCTION IF EXISTS st_touches(raster, integer, geometry);
-DROP FUNCTION IF EXISTS _st_touches(geometry, raster, integer);
-DROP FUNCTION IF EXISTS _st_touches(raster, geometry, integer);
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_contains(raster, geometry, integer);
-DROP FUNCTION IF EXISTS st_contains(raster, integer, geometry);
-DROP FUNCTION IF EXISTS st_contains(geometry, raster, integer);
-DROP FUNCTION IF EXISTS _st_contains(raster, geometry, integer);
-DROP FUNCTION IF EXISTS _st_contains(geometry, raster, integer);
-
-
--- function no longer exists
-DROP FUNCTION IF EXISTS st_tile(raster, integer, integer, integer[]);
-DROP FUNCTION IF EXISTS st_tile(raster, integer, integer, integer);
-
--- function name change
-DROP FUNCTION IF EXISTS st_world2rastercoord(raster, double precision, double precision);
-DROP FUNCTION IF EXISTS st_world2rastercoord(raster, geometry);
-DROP FUNCTION IF EXISTS _st_world2rastercoord(raster, double precision, double precision);
-DROP FUNCTION IF EXISTS st_world2rastercoordx(raster, float8, float8);
-DROP FUNCTION IF EXISTS st_world2rastercoordx(raster, float8);
-DROP FUNCTION IF EXISTS st_world2rastercoordx(raster, geometry);
-DROP FUNCTION IF EXISTS st_world2rastercoordy(raster, float8, float8);
-DROP FUNCTION IF EXISTS st_world2rastercoordy(raster, float8);
-DROP FUNCTION IF EXISTS st_world2rastercoordy(raster, geometry);
-DROP FUNCTION IF EXISTS st_raster2worldcoord( raster, integer, integer);
-DROP FUNCTION IF EXISTS _st_raster2worldcoord(raster, integer, integer);
-DROP FUNCTION IF EXISTS st_raster2worldcoordx(raster, int, int);
-DROP FUNCTION IF EXISTS st_raster2worldcoordx(raster, int);
-DROP FUNCTION IF EXISTS st_raster2worldcoordy(raster, int, int);
-DROP FUNCTION IF EXISTS st_raster2worldcoordy(raster, int);
-
--- function name change
-DROP FUNCTION IF EXISTS _st_resample(raster, text, double precision, integer, double precision, double precision, double precision, double precision, double precision, double precision, integer, integer);
-
--- function no longer exists
-DROP FUNCTION IF EXISTS _add_raster_constraint_regular_blocking(name, name, name);
-
--- obsoleted functions
+-- Removed in 2.1.0
 DROP FUNCTION IF EXISTS _st_mapalgebra4unionfinal1(raster);
+-- Removed in 2.1.0
 DROP FUNCTION IF EXISTS _st_mapalgebra4unionstate(raster, raster, int4);
+-- Removed in 2.1.0
 DROP FUNCTION IF EXISTS _st_mapalgebra4unionstate(raster, raster);
+-- Removed in 2.1.0
 DROP FUNCTION IF EXISTS _st_mapalgebra4unionstate(raster, raster, text);
+-- Removed in 2.1.0
 DROP FUNCTION IF EXISTS _st_mapalgebra4unionstate(raster, raster, int4, text);
+-- Removed in 2.1.0
 DROP FUNCTION IF EXISTS _st_mapalgebra4unionstate(raster, raster, text, text, text, float8, text, text, text, float8);
-
+-- Removed in 2.2.0
+DROP FUNCTION IF EXISTS _st_mapalgebra(rastbandarg[],regprocedure,text,integer,integer,text,raster,text[]);
diff --git a/raster/rt_pg/rtpostgis_legacy.sql.in b/raster/rt_pg/rtpostgis_legacy.sql.in
index 3646d65..b2a73b2 100644
--- a/raster/rt_pg/rtpostgis_legacy.sql.in
+++ b/raster/rt_pg/rtpostgis_legacy.sql.in
@@ -1,6 +1,5 @@
 -------------------------------------------------------------------------------
 --
--- $Id: rtpostgis_legacy.sql.in 12060 2013-10-28 19:44:03Z dustymugs $
 --
 -- PostGIS Raster - Raster Type for PostGIS
 -- http://trac.osgeo.org/postgis/wiki/WKTRaster
@@ -20,7 +19,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 --
 -------------------------------------------------------------------------------
 
diff --git a/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in b/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in
index 9d39fa7..a393241 100644
--- a/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in
+++ b/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
--- $Id: rtpostgis_upgrade.sql.in.c 8448 2011-12-16 22:07:26Z dustymugs $
 --
 -- PostGIS Raster - Raster Type for PostGIS
 -- http://trac.osgeo.org/postgis/wiki/WKTRaster
@@ -21,7 +20,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 --
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
@@ -40,7 +39,7 @@
 -- TODO: tag each item with the version in which it was changed
 --
 
-#include "sqldefines.h" // TODO: does not seem to be needed
+#include "sqldefines.h"
 
 /** -- GIST operator functions -- these don't seem necessary
 DROP OPERATOR IF EXISTS << (raster, raster);
@@ -83,74 +82,13 @@ CREATE CAST (raster AS bytea)
 DROP CAST IF EXISTS (raster AS box2d);
 DROP FUNCTION IF EXISTS box2d(raster);
 
--- If we are running 9.0+ we can use DO plpgsql to check
--- and only create if not exists so no need to force a drop
--- that way if people are using it, we will not mess them up
-DO language 'plpgsql' $$
-BEGIN
-	-- create raster box3d cast if it does not exist
-	IF NOT EXISTS(SELECT  cs.typname AS source
-		FROM pg_cast AS ca 
-        	INNER JOIN pg_type AS cs ON ca.castsource = cs.oid
-        	INNER JOIN pg_type AS ct ON ca.casttarget = ct.oid
-        	WHERE cs.typname = 'raster' AND ct.typname = 'box3d') THEN
-		CREATE OR REPLACE FUNCTION box3d(raster)
-		RETURNS box3d
-		AS 'SELECT box3d(st_convexhull($1))'
-		LANGUAGE 'sql' IMMUTABLE STRICT;
-		CREATE CAST (raster AS box3d)
-			WITH FUNCTION box3d(raster) AS ASSIGNMENT;
-    END IF;
-    
-    -- create addbandarg type if it does not exist
-	IF NOT EXISTS(SELECT typname
-		FROM pg_type 
-        	WHERE typname = 'addbandarg') THEN
-		CREATE TYPE addbandarg AS (
-			index int,
-			pixeltype text,
-			initialvalue float8,
-			nodataval float8
-		);
-    END IF;
-    
-    -- create agg_samealignment type if it does not exist
-	IF NOT EXISTS(SELECT typname 
-		FROM pg_type 
-        	WHERE typname = 'agg_samealignment') THEN
-			CREATE TYPE agg_samealignment AS (
-				refraster raster,
-				aligned boolean
-			);
-    END IF;
-    
-    -- create unionarg type if it does not exist
-	IF NOT EXISTS(SELECT typname
-		FROM pg_type 
-        	WHERE typname = 'unionarg') THEN
-			CREATE TYPE unionarg AS
-			   (nband integer,
-				uniontype text);
-    END IF;
-
-    -- create rastbandarg type if it does not exist
-	IF NOT EXISTS(SELECT typname
-		FROM pg_type 
-        	WHERE typname = 'rastbandarg') THEN
-			CREATE TYPE rastbandarg AS (
-				rast raster,
-				nband integer
-			);
-    END IF;
-
-END$$;	
-
 -- make geometry cast ASSIGNMENT
 DROP CAST IF EXISTS (raster AS geometry);
 CREATE CAST (raster AS geometry)
 	WITH FUNCTION st_convexhull(raster) AS ASSIGNMENT;
 
 -- add missing OPERATORs
+-- TODO: drop, relying on proc_upgrade.pl output ?
 DO LANGUAGE 'plpgsql' $$
 BEGIN
 	IF NOT EXISTS (
@@ -201,78 +139,163 @@ BEGIN
 END;
 $$;
 
--- raster_columns and raster_overviews tables are deprecated
-DO LANGUAGE 'plpgsql' $$
-	DECLARE
-		cnt int;
-	BEGIN
-		SELECT count(*) INTO cnt
-		FROM pg_class c
-		JOIN pg_namespace n
-			ON c.relnamespace = n.oid
-		WHERE c.relname = 'raster_columns'
-			AND c.relkind = 'r'::char
-			AND NOT pg_is_other_temp_schema(c.relnamespace);
+--these were renamed to ST_MapAlgebraExpr or argument names changed --
+DROP FUNCTION IF EXISTS ST_MapAlgebra(raster, integer, text, text, nodatavaluerepl text);
+DROP FUNCTION IF EXISTS ST_MapAlgebra(raster, pixeltype text, expression text, nodatavaluerepl text);
 
-		IF cnt > 0 THEN
-			EXECUTE 'ALTER TABLE raster_columns RENAME TO deprecated_raster_columns';
-		END IF;
 
-		SELECT count(*) INTO cnt
-		FROM pg_class c
-		JOIN pg_namespace n
-			ON c.relnamespace = n.oid
-		WHERE c.relname = 'raster_overviews'
-			AND c.relkind = 'r'::char
-			AND NOT pg_is_other_temp_schema(c.relnamespace);
+--signatures or arg names changed
+DROP FUNCTION IF EXISTS ST_MapAlgebraExpr(raster, integer, text, text, text);
+DROP FUNCTION IF EXISTS ST_MapAlgebraExpr(raster, text, text, text);
+DROP FUNCTION IF EXISTS ST_MapalgebraFct(raster, regprocedure);
+DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, text, regprocedure, VARIADIC text[]); 
+DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, text, regprocedure); 
+DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, regprocedure, VARIADIC text[]);
+DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, regprocedure, variadic text[]);
+DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, text, regprocedure, VARIADIC text[]); 
+DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, text, regprocedure); 
+DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, regprocedure, variadic text[]);
+DROP FUNCTION IF EXISTS ST_MapalgebraFct(raster, integer, regprocedure);
+DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, raster, regprocedure, text, text, VARIADIC text[]);
+DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, raster, integer, regprocedure, text, text, VARIADIC text[]);
+DROP FUNCTION IF EXISTS ST_MapAlgebraFctNgb(raster, integer, text, integer, integer, regprocedure, text,  VARIADIC text[]);
 
-		IF cnt > 0 THEN
-			EXECUTE 'ALTER TABLE raster_overviews RENAME TO deprecated_raster_overviews';
-		END IF;
 
-	END;
-	$$;
+--dropped functions
+DROP FUNCTION IF EXISTS  ST_MapAlgebraFct(raster, raster, regprocedure, VARIADIC text[]);
 
--- inserted new column into view
-DROP VIEW IF EXISTS raster_columns;
+--added extra parameter so these are obsolete --
+DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , double precision , double precision , text , double precision , double precision , double precision , double precision );
+DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , text[] , double precision[] , double precision[] , double precision , double precision , double precision , double precision );
+DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , text , double precision , double precision , double precision , double precision , double precision , double precision );
+DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , double precision , double precision , text[] , double precision[] , double precision[] , double precision , double precision );
+DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , double precision , double precision , text[] , double precision[] , double precision[] , double precision , double precision );
+DROP FUNCTION IF EXISTS ST_AsRaster(geometry , double precision , double precision , text , double precision , double precision , double precision , double precision , double precision , double precision );
+DROP FUNCTION IF EXISTS ST_AsRaster(geometry , raster , text , double precision , double precision );
+DROP FUNCTION IF EXISTS _ST_AsRaster(geometry,double precision , double precision, integer , integer,text[] , double precision[] ,double precision[] ,  double precision,  double precision, double precision,double precision, double precision, double precision,touched boolean);
+-- arg names changed
+DROP FUNCTION IF EXISTS _ST_Resample(raster, text, double precision, integer, double precision, double precision, double precision, double precision, double precision, double precision);
 
--- Changed return type
-DROP FUNCTION IF EXISTS _st_summarystats(raster,int, boolean, double precision);
+-- signature changed
+DROP FUNCTION IF EXISTS ST_Resample(raster, raster, text, double precision);
+
+-- default parameters added
+DROP FUNCTION IF EXISTS ST_HasNoBand(raster);
+
+--function out parameters changed so can not just create or replace
+DROP FUNCTION IF EXISTS ST_BandMetaData(raster, integer);
+
+--function out parameter changed
+DROP FUNCTION IF EXISTS ST_BandNoDataValue(raster, integer);
+--function no longer exists
+DROP FUNCTION IF EXISTS ST_BandNoDataValue(raster);
+
+--function no longer exists
+DROP FUNCTION IF EXISTS ST_SetGeoReference(raster, text);
+-- signature changed
+DROP FUNCTION IF EXISTS ST_SetGeoReference(raster, text, text);
+
+--function no longer exists
+DROP FUNCTION IF EXISTS st_setbandisnodata(raster);
+-- signature changed
+DROP FUNCTION IF EXISTS st_setbandisnodata(raster, integer);
+
+--function no longer exists
+DROP FUNCTION IF EXISTS st_setbandnodatavalue(raster, integer, double precision);
+-- signature changed
+DROP FUNCTION IF EXISTS st_setbandnodatavalue(raster, integer, double precision, boolean);
+
+--function no longer exists
+DROP FUNCTION IF EXISTS st_dumpaspolygons(raster);
+-- signature changed
+DROP FUNCTION IF EXISTS st_dumpaspolygons(raster, integer);
+
+--function no longer exists
+DROP FUNCTION IF EXISTS st_polygon(raster);
+-- signature changed
+DROP FUNCTION IF EXISTS st_polygon(raster, integer);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_makeemptyraster(int, int, float8, float8, float8, float8, float8, float8);
+-- signature changed
+DROP FUNCTION IF EXISTS st_makeemptyraster(int, int, float8, float8, float8, float8, float8, float8, int4);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_addband(raster, text);
+DROP FUNCTION IF EXISTS st_addband(raster, text, float8);
+DROP FUNCTION IF EXISTS st_addband(raster, int, text);
+DROP FUNCTION IF EXISTS st_addband(raster, int, text, float8);
+DROP FUNCTION IF EXISTS st_addband(raster, raster, int);
+DROP FUNCTION IF EXISTS st_addband(raster, raster);
+-- signature changed
+DROP FUNCTION IF EXISTS st_addband(raster, text, float8, float8);
+DROP FUNCTION IF EXISTS st_addband(raster, int, text, float8, float8);
+DROP FUNCTION IF EXISTS st_addband(raster, raster, int, int);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_bandisnodata(raster);
+DROP FUNCTION IF EXISTS st_bandisnodata(raster, integer);
+-- signature changed
+DROP FUNCTION IF EXISTS st_bandisnodata(raster, integer, boolean);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_bandpath(raster);
+-- signature changed
+DROP FUNCTION IF EXISTS st_bandpath(raster, integer);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_bandpixeltype(raster);
+-- signature changed
+DROP FUNCTION IF EXISTS st_bandpixeltype(raster, integer);
+
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_value(raster, integer, integer, integer);
+DROP FUNCTION IF EXISTS st_value(raster, integer, integer);
+DROP FUNCTION IF EXISTS st_value(raster, integer, geometry);
+DROP FUNCTION IF EXISTS st_value(raster, geometry);
+-- signature changed
+DROP FUNCTION IF EXISTS st_value(raster, integer, integer, integer, boolean);
+DROP FUNCTION IF EXISTS st_value(raster, integer, integer, boolean);
+DROP FUNCTION IF EXISTS st_value(raster, integer, geometry, boolean);
+DROP FUNCTION IF EXISTS st_value(raster, geometry, boolean);
+DROP FUNCTION IF EXISTS st_value(raster, integer, geometry, double precision);
+DROP FUNCTION IF EXISTS st_value(raster, geometry, double precision);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_georeference(raster);
+-- signature changed
+DROP FUNCTION IF EXISTS st_georeference(raster, text);
+
+-- function name change
+DROP FUNCTION IF EXISTS dumpaswktpolygons(raster, integer);
+
+-- signature changed
+DROP FUNCTION IF EXISTS st_bandmetadata(raster, VARIADIC int[]);
+
+--change to use default parameters
+DROP FUNCTION IF EXISTS ST_PixelAsPolygons(raster); 
+DROP FUNCTION IF EXISTS ST_PixelAsPolygons(raster,integer);
+
+-- TYPE summarystats removed in version 2.1.0
+-- TODO: only DROP if source version is 2.1.0
+-- See http://trac.osgeo.org/postgis/ticket/2908
 DROP FUNCTION IF EXISTS st_summarystats(raster,int, boolean);
 DROP FUNCTION IF EXISTS st_summarystats(raster, boolean);
 DROP FUNCTION IF EXISTS st_approxsummarystats(raster,int, boolean, double precision);
 DROP FUNCTION IF EXISTS st_approxsummarystats(raster,int, double precision);
 DROP FUNCTION IF EXISTS st_approxsummarystats(raster, boolean, double precision);
 DROP FUNCTION IF EXISTS st_approxsummarystats(raster, double precision);
-DROP FUNCTION IF EXISTS _st_summarystats(text, text,integer, boolean, double precision);
 DROP FUNCTION IF EXISTS st_summarystats(text, text,integer, boolean);
 DROP FUNCTION IF EXISTS st_summarystats(text, text, boolean);
 DROP FUNCTION IF EXISTS st_approxsummarystats(text, text,integer, boolean, double precision);
 DROP FUNCTION IF EXISTS st_approxsummarystats(text, text,integer, double precision);
 DROP FUNCTION IF EXISTS st_approxsummarystats(text, text, boolean);
 DROP FUNCTION IF EXISTS st_approxsummarystats(text, text, double precision);
-DROP FUNCTION IF EXISTS _st_histogram( raster, int, boolean, double precision, int, double precision[], boolean, double precision, double precision);
-DROP FUNCTION IF EXISTS st_histogram(raster, int, boolean, int, double precision[], boolean);
-DROP FUNCTION IF EXISTS st_histogram(raster, int, boolean, int, boolean);
-DROP FUNCTION IF EXISTS st_histogram(raster, int, int, double precision[], boolean);
-DROP FUNCTION IF EXISTS st_histogram(raster, int, int, boolean);
-DROP FUNCTION IF EXISTS st_approxhistogram( raster, int, boolean, double precision, int, double precision[], boolean);
-DROP FUNCTION IF EXISTS st_approxhistogram(raster, int, boolean, double precision, int, boolean);
-DROP FUNCTION IF EXISTS st_approxhistogram(raster, int, double precision);
-DROP FUNCTION IF EXISTS st_approxhistogram(raster, double precision);
-DROP FUNCTION IF EXISTS st_approxhistogram(raster, int, double precision, int, double precision[], boolean);
-DROP FUNCTION IF EXISTS st_approxhistogram(raster, int, double precision, int, boolean);
-DROP FUNCTION IF EXISTS st_histogram(text, text, int, boolean, int, double precision[], boolean);
-DROP FUNCTION IF EXISTS st_histogram(text, text, int, boolean, int, boolean);
-DROP FUNCTION IF EXISTS st_histogram(text, text, int, int, double precision[], boolean);
-DROP FUNCTION IF EXISTS st_histogram(text, text, int, int, boolean);
-DROP FUNCTION IF EXISTS st_approxhistogram( text, text, int, boolean, double precision, int, double precision[], boolean);
-DROP FUNCTION IF EXISTS st_approxhistogram(text, text, int, boolean, double precision, int, boolean);
-DROP FUNCTION IF EXISTS st_approxhistogram(text, text, int, double precision);
-DROP FUNCTION IF EXISTS st_approxhistogram(text, text, double precision);
-DROP FUNCTION IF EXISTS st_approxhistogram(text, text, int, double precision, int, double precision[], boolean);
-DROP FUNCTION IF EXISTS st_approxhistogram(text, text, int, double precision, int, boolean);
-DROP FUNCTION IF EXISTS _st_histogram( text, text, int, boolean, double precision, int, double precision[], boolean);
+DROP FUNCTION IF EXISTS _st_summarystats(raster,int, boolean, double precision);
+DROP FUNCTION IF EXISTS _st_summarystats(text, text,integer, boolean, double precision);
+
+-- remove TYPE quantile
 DROP FUNCTION IF EXISTS st_quantile(raster, int, boolean, double precision[]);
 DROP FUNCTION IF EXISTS st_quantile(raster, int, double precision[]);
 DROP FUNCTION IF EXISTS st_quantile(raster, double precision[]);
@@ -289,6 +312,9 @@ DROP FUNCTION IF EXISTS st_approxquantile(text, text, double precision, double p
 DROP FUNCTION IF EXISTS st_approxquantile(text, text, double precision[]);
 DROP FUNCTION IF EXISTS _st_quantile(raster, int, boolean, double precision, double precision[]);
 DROP FUNCTION IF EXISTS _st_quantile(text, text, int, boolean, double precision, double precision[]);
+DROP TYPE IF EXISTS quantile;
+
+-- remove TYPE valuecount
 DROP FUNCTION IF EXISTS st_valuecount(text, text, integer, double precision, double precision);
 DROP FUNCTION IF EXISTS st_valuecount(text, text, integer, boolean, double precision[], double precision);
 DROP FUNCTION IF EXISTS st_valuecount(text, text, double precision[], double precision);
@@ -300,20 +326,132 @@ DROP FUNCTION IF EXISTS st_valuecount(raster, integer, double precision[], doubl
 DROP FUNCTION IF EXISTS st_valuecount(raster, double precision[], double precision);
 DROP FUNCTION IF EXISTS _st_valuecount(text, text, integer, boolean, double precision[], double precision);
 DROP FUNCTION IF EXISTS _st_valuecount(raster, integer, boolean, double precision[], double precision);
+DROP TYPE IF EXISTS valuecount;
 
--- Incompatible signature change
-DROP FUNCTION IF EXISTS st_value(raster, integer, integer, integer);
-DROP FUNCTION IF EXISTS st_value(raster, integer, integer);
-DROP FUNCTION IF EXISTS st_value(raster, integer, geometry);
-DROP FUNCTION IF EXISTS st_value(raster, geometry);
-DROP FUNCTION IF EXISTS st_value(raster, integer, integer, integer, boolean);
-DROP FUNCTION IF EXISTS st_value(raster, integer, integer, boolean);
-DROP FUNCTION IF EXISTS st_value(raster, integer, geometry, boolean);
-DROP FUNCTION IF EXISTS st_value(raster, geometry, boolean);
-DROP FUNCTION IF EXISTS st_value(raster, integer, geometry, double precision);
-DROP FUNCTION IF EXISTS st_value(raster, geometry, double precision);
-DROP FUNCTION IF EXISTS st_setvalue(raster, integer, geometry, double precision);
-DROP FUNCTION IF EXISTS st_setvalue(raster, geometry, double precision);
+-- remove TYPE histogram
+DROP FUNCTION IF EXISTS st_histogram(raster, int, boolean, int, double precision[], boolean);
+DROP FUNCTION IF EXISTS st_histogram(raster, int, boolean, int, boolean);
+DROP FUNCTION IF EXISTS st_histogram(raster, int, int, double precision[], boolean);
+DROP FUNCTION IF EXISTS st_histogram(raster, int, int, boolean);
+DROP FUNCTION IF EXISTS st_approxhistogram( raster, int, boolean, double precision, int, double precision[], boolean);
+DROP FUNCTION IF EXISTS st_approxhistogram(raster, int, boolean, double precision, int, boolean);
+DROP FUNCTION IF EXISTS st_approxhistogram(raster, int, double precision);
+DROP FUNCTION IF EXISTS st_approxhistogram(raster, double precision);
+DROP FUNCTION IF EXISTS st_approxhistogram(raster, int, double precision, int, double precision[], boolean);
+DROP FUNCTION IF EXISTS st_approxhistogram(raster, int, double precision, int, boolean);
+DROP FUNCTION IF EXISTS st_histogram(text, text, int, boolean, int, double precision[], boolean);
+DROP FUNCTION IF EXISTS st_histogram(text, text, int, boolean, int, boolean);
+DROP FUNCTION IF EXISTS st_histogram(text, text, int, int, double precision[], boolean);
+DROP FUNCTION IF EXISTS st_histogram(text, text, int, int, boolean);
+DROP FUNCTION IF EXISTS st_approxhistogram( text, text, int, boolean, double precision, int, double precision[], boolean);
+DROP FUNCTION IF EXISTS st_approxhistogram(text, text, int, boolean, double precision, int, boolean);
+DROP FUNCTION IF EXISTS st_approxhistogram(text, text, int, double precision);
+DROP FUNCTION IF EXISTS st_approxhistogram(text, text, double precision);
+DROP FUNCTION IF EXISTS st_approxhistogram(text, text, int, double precision, int, double precision[], boolean);
+DROP FUNCTION IF EXISTS st_approxhistogram(text, text, int, double precision, int, boolean);
+DROP FUNCTION IF EXISTS _st_histogram( raster, int, boolean, double precision, int, double precision[], boolean, double precision, double precision);
+DROP FUNCTION IF EXISTS _st_histogram( text, text, int, boolean, double precision, int, double precision[], boolean);
+DROP TYPE IF EXISTS histogram;
+
+-- no longer needed functions changed to use out parameters
+DROP TYPE IF EXISTS bandmetadata;
+DROP TYPE IF EXISTS geomvalxy;
+
+-- raster_columns and raster_overviews tables are deprecated
+DROP FUNCTION IF EXISTS _rename_raster_tables();
+CREATE OR REPLACE FUNCTION _rename_raster_tables()
+	RETURNS void AS $$
+	DECLARE
+		cnt int;
+	BEGIN
+		SELECT count(*) INTO cnt
+		FROM pg_class c
+		JOIN pg_namespace n
+			ON c.relnamespace = n.oid
+		WHERE c.relname = 'raster_columns'
+			AND c.relkind = 'r'::char
+			AND NOT pg_is_other_temp_schema(c.relnamespace);
+
+		IF cnt > 0 THEN
+			EXECUTE 'ALTER TABLE raster_columns RENAME TO deprecated_raster_columns';
+		END IF;
+
+		SELECT count(*) INTO cnt
+		FROM pg_class c
+		JOIN pg_namespace n
+			ON c.relnamespace = n.oid
+		WHERE c.relname = 'raster_overviews'
+			AND c.relkind = 'r'::char
+			AND NOT pg_is_other_temp_schema(c.relnamespace);
+
+		IF cnt > 0 THEN
+			EXECUTE 'ALTER TABLE raster_overviews RENAME TO deprecated_raster_overviews';
+		END IF;
+
+	END;
+	$$ LANGUAGE 'plpgsql' VOLATILE;
+SELECT _rename_raster_tables();
+DROP FUNCTION _rename_raster_tables();
+
+-- inserted new column into view
+DROP VIEW IF EXISTS raster_columns;
+
+-- functions no longer supported
+DROP FUNCTION IF EXISTS AddRasterColumn(varchar, varchar, varchar, varchar, integer, varchar[], boolean, boolean, double precision[], double precision, double precision, integer, integer, geometry);
+DROP FUNCTION IF EXISTS AddRasterColumn(varchar, varchar, varchar, integer, varchar[], boolean, boolean, double precision[], double precision, double precision, integer, integer, geometry);
+DROP FUNCTION IF EXISTS AddRasterColumn(varchar, varchar, integer, varchar[], boolean, boolean, double precision[], double precision, double precision, integer, integer, geometry);
+DROP FUNCTION IF EXISTS DropRasterColumn(varchar, varchar, varchar, varchar);
+DROP FUNCTION IF EXISTS DropRasterColumn(varchar, varchar, varchar);
+DROP FUNCTION IF EXISTS DropRasterColumn(varchar, varchar);
+DROP FUNCTION IF EXISTS DropRasterTable(varchar, varchar, varchar);
+DROP FUNCTION IF EXISTS DropRasterTable(varchar, varchar);
+DROP FUNCTION IF EXISTS DropRasterTable(varchar);
+
+-- function parameters added
+DROP FUNCTION IF EXISTS AddRasterConstraints(name, name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
+DROP FUNCTION IF EXISTS AddRasterConstraints(name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
+DROP FUNCTION IF EXISTS DropRasterConstraints(name, name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
+DROP FUNCTION IF EXISTS DropRasterConstraints(name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
+
+-- function parameters renamed
+CREATE OR REPLACE FUNCTION _drop_st_samealignment()
+	RETURNS void AS $$
+	DECLARE
+		cnt int;
+	BEGIN
+		SELECT count(*) INTO cnt
+		FROM pg_proc
+		WHERE lower(proname) = 'st_samealignment'
+			AND pronargs = 2
+			AND (
+				proargnames = '{rasta,rastb}'::text[] OR
+				proargnames = '{rastA,rastB}'::text[]
+			);
+
+		IF cnt > 0 THEN
+			RAISE NOTICE 'Dropping ST_SameAlignment(raster, raster) due to parameter name changes.  Unfortunately, this is a DROP ... CASCADE as the alignment raster constraint uses ST_SameAlignment(raster, raster).  You will need to reapply AddRasterConstraint(''SCHEMA'', ''TABLE'', ''COLUMN'', ''alignment'') to any raster column that requires this constraint.';
+			DROP FUNCTION IF EXISTS st_samealignment(raster, raster) CASCADE;
+		END IF;
+	END;
+	$$ LANGUAGE 'plpgsql' VOLATILE;
+SELECT _drop_st_samealignment();
+DROP FUNCTION _drop_st_samealignment();
+
+DROP FUNCTION IF EXISTS _st_intersects(raster, integer, raster, integer);
+DROP FUNCTION IF EXISTS st_intersects(raster, integer, raster, integer);
+DROP FUNCTION IF EXISTS st_intersects(raster, raster);
+
+-- functions have changed dramatically
+DROP FUNCTION IF EXISTS st_intersection(raster, integer, geometry);
+DROP FUNCTION IF EXISTS st_intersection(raster, geometry);
+
+-- function was renamed
+DROP FUNCTION IF EXISTS st_minpossibleval(text);
+
+-- function deprecated previously
+DROP FUNCTION IF EXISTS st_pixelaspolygon(raster, integer, integer, integer);
+
+-- function signatures changed
 DROP FUNCTION IF EXISTS st_intersection(raster, int, geometry, text, regprocedure);
 DROP FUNCTION IF EXISTS st_intersection(raster, int, geometry, regprocedure);
 DROP FUNCTION IF EXISTS st_intersection(raster, geometry, text, regprocedure);
@@ -324,17 +462,63 @@ DROP FUNCTION IF EXISTS st_clip(raster, geometry, boolean);
 DROP FUNCTION IF EXISTS st_clip(raster, int, geometry, float8, boolean);
 DROP FUNCTION IF EXISTS st_clip(raster, geometry, float8[], boolean);
 DROP FUNCTION IF EXISTS st_clip(raster, integer, geometry, float8[], boolean);
-DROP FUNCTION IF EXISTS st_addband(raster, text, float8, float8);
-DROP FUNCTION IF EXISTS st_addband(raster, int, text, float8, float8);
-DROP FUNCTION IF EXISTS st_addband(raster, raster, int, int);
-DROP FUNCTION IF EXISTS st_bandisnodata(raster, integer, boolean);
-DROP FUNCTION IF EXISTS st_bandpath(raster, integer);
-DROP FUNCTION IF EXISTS st_bandpixeltype(raster, integer);
-DROP FUNCTION IF EXISTS st_georeference(raster, text);
-DROP FUNCTION IF EXISTS st_bandmetadata(raster, VARIADIC int[]);
-DROP FUNCTION IF EXISTS st_makeemptyraster(int, int, float8, float8, float8, float8, float8, float8, int4);
-DROP FUNCTION IF EXISTS st_polygon(raster, integer);
+
+-- refactoring of functions
+DROP FUNCTION IF EXISTS _st_dumpaswktpolygons(raster, integer);
+DROP TYPE IF EXISTS wktgeomval;
+
+-- function parameter names changed
+DROP FUNCTION IF EXISTS st_nearestvalue(raster, integer, integer, integer, boolean);
+DROP FUNCTION IF EXISTS st_nearestvalue(raster, integer, integer, boolean);
+DROP FUNCTION IF EXISTS st_neighborhood(raster, integer, integer, integer, integer, boolean);
+DROP FUNCTION IF EXISTS st_neighborhood(raster, integer, integer, integer, boolean);
+DROP FUNCTION IF EXISTS st_neighborhood(raster, integer, geometry, integer, boolean);
+DROP FUNCTION IF EXISTS st_neighborhood(raster, geometry, integer, boolean);
+
+-- variants of st_intersection with regprocedure no longer exist
+DROP FUNCTION IF EXISTS st_intersection(raster, integer, raster, integer, text, regprocedure);
+DROP FUNCTION IF EXISTS st_intersection(raster, integer, raster, integer, regprocedure);
+DROP FUNCTION IF EXISTS st_intersection(raster, raster, text, regprocedure);
+DROP FUNCTION IF EXISTS st_intersection(raster, raster, regprocedure);
+
+-- function deprecated
+DROP FUNCTION IF EXISTS st_pixelaspolygons(raster, integer);
+
+-- function deprecated
+DROP FUNCTION IF EXISTS st_bandsurface(raster, integer);
+
+-- function no longer exist or refactored
+DROP FUNCTION IF EXISTS st_intersects(raster, integer, geometry);
+DROP FUNCTION IF EXISTS st_intersects(raster, geometry, integer);
+DROP FUNCTION IF EXISTS st_intersects(geometry, raster, integer);
+DROP FUNCTION IF EXISTS _st_intersects(raster, geometry, integer);
+DROP FUNCTION IF EXISTS _st_intersects(geometry, raster, integer);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_overlaps(geometry, raster, integer);
+DROP FUNCTION IF EXISTS st_overlaps(raster, integer, geometry);
+DROP FUNCTION IF EXISTS st_overlaps(raster, geometry, integer);
+DROP FUNCTION IF EXISTS _st_overlaps(raster, geometry, integer);
+DROP FUNCTION IF EXISTS _st_overlaps(geometry, raster, integer);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_touches(geometry, raster, integer);
+DROP FUNCTION IF EXISTS st_touches(raster, geometry, integer);
+DROP FUNCTION IF EXISTS st_touches(raster, integer, geometry);
+DROP FUNCTION IF EXISTS _st_touches(geometry, raster, integer);
+DROP FUNCTION IF EXISTS _st_touches(raster, geometry, integer);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_contains(raster, geometry, integer);
+DROP FUNCTION IF EXISTS st_contains(raster, integer, geometry);
+DROP FUNCTION IF EXISTS st_contains(geometry, raster, integer);
+DROP FUNCTION IF EXISTS _st_contains(raster, geometry, integer);
+DROP FUNCTION IF EXISTS _st_contains(geometry, raster, integer);
+
+-- function signature changed
 DROP FUNCTION IF EXISTS st_addband(raster, raster[], integer);
+
+-- function signatures changed
 DROP FUNCTION IF EXISTS st_slope(raster, integer, text, text, double precision, boolean);
 DROP FUNCTION IF EXISTS st_slope(raster, integer, text, boolean);
 DROP FUNCTION IF EXISTS st_slope(raster, integer, text);
@@ -344,80 +528,74 @@ DROP FUNCTION IF EXISTS st_aspect(raster, integer, text);
 DROP FUNCTION IF EXISTS st_hillshade(raster, integer, text, double precision, double precision, double precision, double precision, boolean);
 DROP FUNCTION IF EXISTS st_hillshade(raster, integer, text, float, float, float, float, boolean);
 DROP FUNCTION IF EXISTS st_hillshade(raster, integer, text, float, float, float, float);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS st_tile(raster, integer, integer, integer[]);
+DROP FUNCTION IF EXISTS st_tile(raster, integer, integer, integer);
+
+-- function signatures changed
+DROP FUNCTION IF EXISTS st_setvalue(raster, integer, geometry, double precision);
+DROP FUNCTION IF EXISTS st_setvalue(raster, geometry, double precision);
+
+-- function name change
+DROP FUNCTION IF EXISTS st_world2rastercoord(raster, double precision, double precision);
+DROP FUNCTION IF EXISTS st_world2rastercoord(raster, geometry);
+DROP FUNCTION IF EXISTS _st_world2rastercoord(raster, double precision, double precision);
+DROP FUNCTION IF EXISTS st_world2rastercoordx(raster, float8, float8);
+DROP FUNCTION IF EXISTS st_world2rastercoordx(raster, float8);
+DROP FUNCTION IF EXISTS st_world2rastercoordx(raster, geometry);
+DROP FUNCTION IF EXISTS st_world2rastercoordy(raster, float8, float8);
+DROP FUNCTION IF EXISTS st_world2rastercoordy(raster, float8);
+DROP FUNCTION IF EXISTS st_world2rastercoordy(raster, geometry);
+DROP FUNCTION IF EXISTS st_raster2worldcoord( raster, integer, integer);
+DROP FUNCTION IF EXISTS _st_raster2worldcoord(raster, integer, integer);
+DROP FUNCTION IF EXISTS st_raster2worldcoordx(raster, int, int);
+DROP FUNCTION IF EXISTS st_raster2worldcoordx(raster, int);
+DROP FUNCTION IF EXISTS st_raster2worldcoordy(raster, int, int);
+DROP FUNCTION IF EXISTS st_raster2worldcoordy(raster, int);
+
+-- function name change
+DROP FUNCTION IF EXISTS _st_resample(raster, text, double precision, integer, double precision, double precision, double precision, double precision, double precision, double precision, integer, integer);
+
+-- function signatures changed
 DROP FUNCTION IF EXISTS st_resample(raster, integer, double precision, double precision, double precision, double precision, double precision, double precision, text, double precision);
 DROP FUNCTION IF EXISTS st_resample(raster, integer, integer, integer, double precision, double precision, double precision, double precision, text, double precision);
+
+-- function signatures changed
 DROP FUNCTION IF EXISTS _st_tile(raster, integer, integer, int[]);
 DROP FUNCTION IF EXISTS st_tile(raster, integer[], integer, integer);
 DROP FUNCTION IF EXISTS st_tile(raster, integer, integer, integer);
 DROP FUNCTION IF EXISTS st_tile(raster, integer, integer);
-DROP FUNCTION IF EXISTS ST_PixelAsPolygons(raster); 
-DROP FUNCTION IF EXISTS ST_PixelAsPolygons(raster,integer);
+
+-- function no longer exists
+DROP FUNCTION IF EXISTS _add_raster_constraint_regular_blocking(name, name, name);
+
+-- function signature changed
 DROP FUNCTION IF EXISTS st_asbinary(raster);
+
 DROP FUNCTION IF EXISTS _st_aspect4ma(float8[], text, text[]);
 DROP FUNCTION IF EXISTS _st_hillshade4ma(float8[], text, text[]);
 DROP FUNCTION IF EXISTS _st_slope4ma(float8[], text, text[]);
-DROP FUNCTION IF EXISTS ST_MapAlgebraExpr(raster, integer, text, text, text);
-DROP FUNCTION IF EXISTS ST_MapAlgebraExpr(raster, text, text, text);
-DROP FUNCTION IF EXISTS ST_MapalgebraFct(raster, regprocedure);
-DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, text, regprocedure, VARIADIC text[]); 
-DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, text, regprocedure); 
-DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, regprocedure, VARIADIC text[]);
-DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, regprocedure, variadic text[]);
-DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, text, regprocedure, VARIADIC text[]); 
-DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, text, regprocedure); 
-DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, regprocedure, variadic text[]);
-DROP FUNCTION IF EXISTS ST_MapalgebraFct(raster, integer, regprocedure);
-DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, raster, regprocedure, text, text, VARIADIC text[]);
-DROP FUNCTION IF EXISTS ST_MapAlgebraFct(raster, integer, raster, integer, regprocedure, text, text, VARIADIC text[]);
-DROP FUNCTION IF EXISTS ST_MapAlgebraFctNgb(raster, integer, text, integer, integer, regprocedure, text,  VARIADIC text[]);
-DROP FUNCTION IF EXISTS ST_BandMetaData(raster, integer); --out param 
-DROP FUNCTION IF EXISTS ST_BandNoDataValue(raster, integer); -- out param 
-DROP FUNCTION IF EXISTS ST_HasNoBand(raster); -- default param
-DROP FUNCTION IF EXISTS ST_Resample(raster, raster, text, double precision);
-DROP FUNCTION IF EXISTS ST_Intersects(raster,boolean,geometry);
-DROP FUNCTION IF EXISTS ST_Intersects(geometry,raster,boolean);
-DROP FUNCTION IF EXISTS ST_Intersects(raster,geometry);
-DROP FUNCTION IF EXISTS ST_Intersects(geometry,raster);
-DROP FUNCTION IF EXISTS ST_Intersects(raster, integer, boolean  , geometry);
-DROP FUNCTION IF EXISTS ST_Intersects(geometry , raster, integer , boolean);
-DROP FUNCTION IF EXISTS ST_Intersection(raster,raster, integer, integer);
-DROP FUNCTION IF EXISTS ST_Intersection(geometry,raster);
-DROP FUNCTION IF EXISTS ST_Intersection(raster, geometry);
-DROP FUNCTION IF EXISTS ST_Intersection(raster, integer, geometry);
-DROP FUNCTION IF EXISTS _st_intersects(raster, integer, raster, integer);
-DROP FUNCTION IF EXISTS st_intersects(raster, integer, raster, integer);
-DROP FUNCTION IF EXISTS st_intersects(raster, raster);
-DROP FUNCTION IF EXISTS st_intersection(raster, integer, geometry);
-DROP FUNCTION IF EXISTS st_intersection(raster, geometry);
-
---added extra parameter 
-DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , double precision , double precision , text , double precision , double precision , double precision , double precision );
-DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , text[] , double precision[] , double precision[] , double precision , double precision , double precision , double precision );
-DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , text , double precision , double precision , double precision , double precision , double precision , double precision );
-DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , double precision , double precision , text[] , double precision[] , double precision[] , double precision , double precision );
-DROP FUNCTION IF EXISTS ST_AsRaster(geometry , integer , integer , double precision , double precision , text[] , double precision[] , double precision[] , double precision , double precision );
-DROP FUNCTION IF EXISTS ST_AsRaster(geometry , double precision , double precision , text , double precision , double precision , double precision , double precision , double precision , double precision );
-DROP FUNCTION IF EXISTS ST_AsRaster(geometry , raster , text , double precision , double precision );
-DROP FUNCTION IF EXISTS _ST_AsRaster(geometry,double precision , double precision, integer , integer,text[] , double precision[] ,double precision[] ,  double precision,  double precision, double precision,double precision, double precision, double precision,touched boolean);
-
--- arg names changed
-DROP FUNCTION IF EXISTS _ST_Resample(raster, text, double precision, integer, double precision, double precision, double precision, double precision, double precision, double precision);
-DROP FUNCTION IF EXISTS ST_SetGeoReference(raster, text, text);
-DROP FUNCTION IF EXISTS st_setbandisnodata(raster, integer);
-DROP FUNCTION IF EXISTS st_setbandnodatavalue(raster, integer, double precision, boolean);
-DROP FUNCTION IF EXISTS st_dumpaspolygons(raster, integer);
--- function parameter names changed
-DROP FUNCTION IF EXISTS st_nearestvalue(raster, integer, integer, integer, boolean);
-DROP FUNCTION IF EXISTS st_nearestvalue(raster, integer, integer, boolean);
-DROP FUNCTION IF EXISTS st_neighborhood(raster, integer, integer, integer, integer, boolean);
-DROP FUNCTION IF EXISTS st_neighborhood(raster, integer, integer, integer, boolean);
-DROP FUNCTION IF EXISTS st_neighborhood(raster, integer, geometry, integer, boolean);
-DROP FUNCTION IF EXISTS st_neighborhood(raster, geometry, integer, boolean);
 
--- function no longer exist or refactored (check which is which!)
-DROP FUNCTION IF EXISTS st_intersects(raster, integer, geometry);
-DROP FUNCTION IF EXISTS st_intersects(raster, geometry, integer);
-DROP FUNCTION IF EXISTS st_intersects(geometry, raster, integer);
-DROP FUNCTION IF EXISTS _st_intersects(raster, geometry, integer);
-DROP FUNCTION IF EXISTS _st_intersects(geometry, raster, integer);
+-- function signature change
+-- return value changed
+DO LANGUAGE 'plpgsql' $$
+DECLARE
+	cnt bigint;
+BEGIN
+	SELECT
+		count(*)
+	INTO cnt
+	FROM pg_proc f
+	JOIN pg_type t
+		ON f.prorettype = t.oid
+	WHERE lower(f.proname) = '_raster_constraint_nodata_values'
+		AND f.pronargs = 1
+		AND t.typname = '_float8'; -- array form
 
+	IF cnt > 0 THEN
+		RAISE NOTICE 'Dropping _raster_constraint_nodata_values(raster) due to return value changes.  Unfortunately, this is a DROP ... CASCADE as the NODATA raster constraint uses _raster_constraint_nodata_values(raster).  You will need to reapply AddRasterConstraint(''SCHEMA'', ''TABLE'', ''COLUMN'', ''nodata'') to any raster column that requires this constraint.';
+		DROP FUNCTION IF EXISTS _raster_constraint_nodata_values(raster) CASCADE;
+	END IF;
+END;
+$$;
diff --git a/raster/scripts/Makefile.in b/raster/scripts/Makefile.in
index 77956e9..84fcad8 100644
--- a/raster/scripts/Makefile.in
+++ b/raster/scripts/Makefile.in
@@ -1,5 +1,4 @@
 #############################################################################
-# $Id$
 #
 # Copyright (c) 2011 Regents of the University of California
 #   <bkpark at ucdavis.edu>
diff --git a/raster/scripts/plpgsql/_MapAlgebraParts.sql b/raster/scripts/plpgsql/_MapAlgebraParts.sql
index 64d8795..4e15ee5 100644
--- a/raster/scripts/plpgsql/_MapAlgebraParts.sql
+++ b/raster/scripts/plpgsql/_MapAlgebraParts.sql
@@ -1,6 +1,5 @@
 ----------------------------------------------------------------------
 --
--- $Id: _MapAlgebraParts.sql 6127 2010-10-25 16:06:00Z jorgearevalo $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 -- 
diff --git a/raster/scripts/plpgsql/st_addband.sql b/raster/scripts/plpgsql/st_addband.sql
index d697445..1a20f63 100644
--- a/raster/scripts/plpgsql/st_addband.sql
+++ b/raster/scripts/plpgsql/st_addband.sql
@@ -1,6 +1,5 @@
 ----------------------------------------------------------------------
 --
--- $Id: st_addband.sql 6127 2010-10-25 16:06:00Z jorgearevalo $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_asraster.sql b/raster/scripts/plpgsql/st_asraster.sql
index 4fd4764..4bf2461 100644
--- a/raster/scripts/plpgsql/st_asraster.sql
+++ b/raster/scripts/plpgsql/st_asraster.sql
@@ -1,6 +1,5 @@
 ----------------------------------------------------------------------
 --
--- $Id: st_asraster.sql 9324 2012-02-27 22:08:12Z pramsey $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_clip.sql b/raster/scripts/plpgsql/st_clip.sql
index 060b70a..23f6e7b 100644
--- a/raster/scripts/plpgsql/st_clip.sql
+++ b/raster/scripts/plpgsql/st_clip.sql
@@ -1,6 +1,5 @@
-----------------------------------------------------------------------
+----------------------------------------------------------------------
 --
--- $Id: st_clip.sql 9324 2012-02-27 22:08:12Z pramsey $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_deleteband.sql b/raster/scripts/plpgsql/st_deleteband.sql
index 5600fda..1130891 100644
--- a/raster/scripts/plpgsql/st_deleteband.sql
+++ b/raster/scripts/plpgsql/st_deleteband.sql
@@ -1,6 +1,5 @@
 ----------------------------------------------------------------------
 --
--- $Id: st_deleteband.sql 9324 2012-02-27 22:08:12Z pramsey $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_histogram.sql b/raster/scripts/plpgsql/st_histogram.sql
index 0bf9028..03e1a74 100644
--- a/raster/scripts/plpgsql/st_histogram.sql
+++ b/raster/scripts/plpgsql/st_histogram.sql
@@ -1,6 +1,5 @@
 ----------------------------------------------------------------------
 --
--- $Id: st_histogram.sql 6127 2010-10-25 16:06:00Z jorgearevalo $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_mapalgebra.sql b/raster/scripts/plpgsql/st_mapalgebra.sql
index d4e8b5a..445d60f 100644
--- a/raster/scripts/plpgsql/st_mapalgebra.sql
+++ b/raster/scripts/plpgsql/st_mapalgebra.sql
@@ -1,5 +1,4 @@
-----------------------------------------------------------------------
--- $Id: st_mapalgebra.sql 9324 2012-02-27 22:08:12Z pramsey $
+----------------------------------------------------------------------
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_mapalgebra_optimized.sql b/raster/scripts/plpgsql/st_mapalgebra_optimized.sql
index eaebcaf..dcaa12a 100644
--- a/raster/scripts/plpgsql/st_mapalgebra_optimized.sql
+++ b/raster/scripts/plpgsql/st_mapalgebra_optimized.sql
@@ -1,6 +1,5 @@
 ----------------------------------------------------------------------
 --
--- $Id: st_mapalgebra_optimized.sql 6127 2010-10-25 16:06:00Z jorgearevalo $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_mapalgebrafctngb.sql b/raster/scripts/plpgsql/st_mapalgebrafctngb.sql
index 0e0599e..4440569 100644
--- a/raster/scripts/plpgsql/st_mapalgebrafctngb.sql
+++ b/raster/scripts/plpgsql/st_mapalgebrafctngb.sql
@@ -1,5 +1,4 @@
 ----------------------------------------------------------------------
--- $Id:$
 --
 -- Copyright (c) 2011 David Zwarg <dzwarg at azavea.com>
 --
diff --git a/raster/scripts/plpgsql/st_pixelaspolygons.sql b/raster/scripts/plpgsql/st_pixelaspolygons.sql
index 532deb5..a4cfa22 100644
--- a/raster/scripts/plpgsql/st_pixelaspolygons.sql
+++ b/raster/scripts/plpgsql/st_pixelaspolygons.sql
@@ -1,6 +1,5 @@
 ----------------------------------------------------------------------
 --
--- $Id: st_pixelaspolygons.sql 9324 2012-02-27 22:08:12Z pramsey $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_reclass.sql b/raster/scripts/plpgsql/st_reclass.sql
index 856c8a2..c8157dd 100644
--- a/raster/scripts/plpgsql/st_reclass.sql
+++ b/raster/scripts/plpgsql/st_reclass.sql
@@ -1,6 +1,5 @@
 ----------------------------------------------------------------------
 --
--- $Id: st_reclass.sql 9324 2012-02-27 22:08:12Z pramsey $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_setarray.sql b/raster/scripts/plpgsql/st_setarray.sql
index dd8c136..42fcbcc 100644
--- a/raster/scripts/plpgsql/st_setarray.sql
+++ b/raster/scripts/plpgsql/st_setarray.sql
@@ -1,4 +1,3 @@
--- $Id: st_setarray.sql 9324 2012-02-27 22:08:12Z pramsey $
 ----------------------------------------------------------------------
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 ----------------------------------------------------------------------
diff --git a/raster/scripts/plpgsql/st_setvalues.sql b/raster/scripts/plpgsql/st_setvalues.sql
index aa41dca..696e63a 100644
--- a/raster/scripts/plpgsql/st_setvalues.sql
+++ b/raster/scripts/plpgsql/st_setvalues.sql
@@ -1,6 +1,5 @@
-----------------------------------------------------------------------
+----------------------------------------------------------------------
 --
--- $Id: st_setvalues.sql 6127 2010-10-25 16:06:00Z jorgearevalo $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_summarystatsagg.sql b/raster/scripts/plpgsql/st_summarystatsagg.sql
index 44c29ff..32fda53 100644
--- a/raster/scripts/plpgsql/st_summarystatsagg.sql
+++ b/raster/scripts/plpgsql/st_summarystatsagg.sql
@@ -25,7 +25,7 @@ CREATE OR REPLACE FUNCTION raster_summarystatsstate(ss summarystats, rast raster
         newstats summarystats;
         ret summarystats;
     BEGIN
-        IF rast IS NULL THEN
+        IF rast IS NULL OR ST_HasNoBand(rast) OR ST_IsEmpty(rast) THEN
             RETURN ss;
         END IF;
         newstats := _ST_SummaryStats(rast, nband, exclude_nodata_value, sample_percent);
@@ -37,7 +37,7 @@ CREATE OR REPLACE FUNCTION raster_summarystatsstate(ss summarystats, rast raster
                     newstats.min, 
                     newstats.max)::summarystats;
         ELSE
-            ret := (ss.count + newstats.count, 
+            ret := (COALESCE(ss.count,0) + COALESCE(newstats.count, 0),
                     COALESCE(ss.sum,0) + COALESCE(newstats.sum, 0),
                     null,
                     null,
diff --git a/raster/scripts/plpgsql/st_tile.sql b/raster/scripts/plpgsql/st_tile.sql
index 085bee2..c0958ed 100644
--- a/raster/scripts/plpgsql/st_tile.sql
+++ b/raster/scripts/plpgsql/st_tile.sql
@@ -1,6 +1,5 @@
-----------------------------------------------------------------------
+----------------------------------------------------------------------
 --
--- $Id: st_tile.sql 8255 2011-11-29 16:34:48Z pracine $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/plpgsql/st_union.sql b/raster/scripts/plpgsql/st_union.sql
index 1615dda..8b372a4 100644
--- a/raster/scripts/plpgsql/st_union.sql
+++ b/raster/scripts/plpgsql/st_union.sql
@@ -1,6 +1,5 @@
-----------------------------------------------------------------------
+----------------------------------------------------------------------
 --
--- $Id: st_union.sql 9324 2012-02-27 22:08:12Z pramsey $
 --
 -- Copyright (c) 2009-2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/scripts/python/Makefile.in b/raster/scripts/python/Makefile.in
index 7fdee7d..4c5e102 100644
--- a/raster/scripts/python/Makefile.in
+++ b/raster/scripts/python/Makefile.in
@@ -1,5 +1,4 @@
 #############################################################################
-# $Id: Makefile.in 12060 2013-10-28 19:44:03Z dustymugs $
 #
 # Copyright (c) 2009 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 #
diff --git a/raster/scripts/python/Makefile.rt.sample b/raster/scripts/python/Makefile.rt.sample
index 11baced..a9d0514 100644
--- a/raster/scripts/python/Makefile.rt.sample
+++ b/raster/scripts/python/Makefile.rt.sample
@@ -1,5 +1,4 @@
 #############################################################################
-# $Id: Makefile.rt.sample 12060 2013-10-28 19:44:03Z dustymugs $ 
 #
 # Makefile used to simplify creation of PostGIS and WKT Raster enabled
 # database. Run make -f Makefile.rt to see usage message.
diff --git a/raster/scripts/python/genraster.py b/raster/scripts/python/genraster.py
index 38df09f..6d03d1f 100755
--- a/raster/scripts/python/genraster.py
+++ b/raster/scripts/python/genraster.py
@@ -1,7 +1,6 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
 #
-# $Id$
 #
 # A very simple generator of rasters for testing WKT Raster.
 # A test file is a matrix of numbered cells greyscaled randomly.
diff --git a/raster/scripts/python/ovdump.py b/raster/scripts/python/ovdump.py
index d9611a6..f8e6d79 100755
--- a/raster/scripts/python/ovdump.py
+++ b/raster/scripts/python/ovdump.py
@@ -1,6 +1,5 @@
 #! /usr/bin/env python
 #
-# $Id$
 #
 # This is a simple script based on GDAL to dump overview to separate file.
 # It is used in WKTRaster testing to compare raster samples.
@@ -24,6 +23,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 #
+
 from osgeo import gdal
 from osgeo import osr
 import osgeo.gdalconst as gdalc
diff --git a/raster/scripts/python/pixval.py b/raster/scripts/python/pixval.py
index 761113a..ac6d4f7 100755
--- a/raster/scripts/python/pixval.py
+++ b/raster/scripts/python/pixval.py
@@ -1,6 +1,5 @@
 #! /usr/bin/env python
 #
-# $Id: pixval.py 12060 2013-10-28 19:44:03Z dustymugs $
 #
 # This is a simple script based on GDAL and used to retrieve value of single raster pixel.
 # It is used in WKTRaster testing to compare raster samples.
@@ -21,6 +20,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 #
+
 from osgeo import gdal
 from osgeo import osr
 import osgeo.gdalconst as gdalc
diff --git a/raster/scripts/python/raster2pgsql.py b/raster/scripts/python/raster2pgsql.py
index ee61a0e..0ffacb2 100755
--- a/raster/scripts/python/raster2pgsql.py
+++ b/raster/scripts/python/raster2pgsql.py
@@ -1,6 +1,5 @@
 #! /usr/bin/env python
 #
-# $Id: raster2pgsql.py 12060 2013-10-28 19:44:03Z dustymugs $
 #
 # This is a simple utility used to dump GDAL dataset into HEX WKB stream.
 # It's considered as a prototype of raster2pgsql tool planned to develop
@@ -29,7 +28,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-#
 ################################################################################
 #
 from osgeo import gdal
@@ -80,7 +78,7 @@ def is_nan(x):
 def parse_command_line():
     """Collects, parses and validates command line arguments."""
 
-    prs = OptionParser(version="%prog $Revision: 12060 $")
+    prs = OptionParser(version="%prog $Revision: 13496 $")
 
     # Mandatory parameters
     grp0 = OptionGroup(prs, "Source and destination",
diff --git a/raster/scripts/python/rtgdalraster.py b/raster/scripts/python/rtgdalraster.py
index 5e5fe44..2b32c70 100755
--- a/raster/scripts/python/rtgdalraster.py
+++ b/raster/scripts/python/rtgdalraster.py
@@ -1,6 +1,5 @@
 #! /usr/bin/env python
 #
-# $Id$
 #
 # A simple utility for passing parameters to ST_AsGDALRaster
 # for a GDAL raster output
@@ -28,7 +27,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-#
 ###############################################################################
 from optparse import OptionParser
 import sys
diff --git a/raster/scripts/python/rtpixdump.py b/raster/scripts/python/rtpixdump.py
index 7732943..86635ca 100755
--- a/raster/scripts/python/rtpixdump.py
+++ b/raster/scripts/python/rtpixdump.py
@@ -1,6 +1,5 @@
 #! /usr/bin/env python
 #
-# $Id: rtpixdump.py 12060 2013-10-28 19:44:03Z dustymugs $
 #
 # Brute-force dump of all pixels of all bands in WKT Raster field/row to text.
 # This utility is handy for debugging purposes.
@@ -33,7 +32,7 @@ def logit(msg):
 ###############################################################################
 try:
 
-    prs = OptionParser(version="%prog $Revision: 12060 $",
+    prs = OptionParser(version="%prog $Revision: 13496 $",
                        usage="%prog -d <DB> -t <TABLE> [-c <COLUMN>]",
                        description="Brute-force dump of all pixel values of WKT Raster dataset")
     prs.add_option("-d", "--db", dest="db", action="store", default=None,
diff --git a/raster/scripts/python/rtreader.py b/raster/scripts/python/rtreader.py
index c58dedc..4403be5 100755
--- a/raster/scripts/python/rtreader.py
+++ b/raster/scripts/python/rtreader.py
@@ -1,6 +1,5 @@
 #! /usr/bin/env python
 #
-# $Id: rtreader.py 12060 2013-10-28 19:44:03Z dustymugs $
 #
 # A simple driver to read RASTER field data directly from PostGIS/WKTRaster.
 #
diff --git a/raster/scripts/python/rtrowdump.py b/raster/scripts/python/rtrowdump.py
index f029637..4518993 100755
--- a/raster/scripts/python/rtrowdump.py
+++ b/raster/scripts/python/rtrowdump.py
@@ -1,6 +1,5 @@
 #! /usr/bin/env python
 #
-# $Id$
 #
 # Brute-force dump of single row from WKT Raster table as GeoTIFF.
 # This utility is handy for debugging purposes.
@@ -25,7 +24,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-#
 ###############################################################################
 import rtreader
 import numpy
diff --git a/raster/scripts/python/window.py b/raster/scripts/python/window.py
index e8e31d1..fa78e4a 100755
--- a/raster/scripts/python/window.py
+++ b/raster/scripts/python/window.py
@@ -1,6 +1,5 @@
 #! /usr/bin/env python
 #
-# $Id: window.py 12060 2013-10-28 19:44:03Z dustymugs $
 #
 # Calculates coordinates of window corners of given raster dataset.
 # It's just a simple helper for testing and debugging WKT Raster.
@@ -21,7 +20,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-#
 ##############################################################################
 from osgeo import gdal
 from osgeo import osr
diff --git a/raster/test/Makefile.in b/raster/test/Makefile.in
index b1492e0..a4196f5 100644
--- a/raster/test/Makefile.in
+++ b/raster/test/Makefile.in
@@ -1,21 +1,9 @@
 #############################################################################
-# $Id$
 #
 # Copyright (c) 2009 Mateusz Loskot <mateusz at loskot.net>
 #
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+# This is free software; you can redistribute and/or modify it under
+# the terms of the GNU General Public Licence. See the COPYING file.
 #
 #############################################################################
 
diff --git a/raster/test/cunit/Makefile.in b/raster/test/cunit/Makefile.in
index 76e06cf..4124c63 100644
--- a/raster/test/cunit/Makefile.in
+++ b/raster/test/cunit/Makefile.in
@@ -1,23 +1,11 @@
 # **********************************************************************
-# * $Id: Makefile.in
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
 # * Copyright 2008 Paul Ramsey, Mark Cave-Ayland
 # *
-# * This program is free software; you can redistribute it and/or
-# * modify it under the terms of the GNU General Public License
-# * as published by the Free Software Foundation; either version 2
-# * of the License, or (at your option) any later version.
-# *
-# * This program is distributed in the hope that it will be useful,
-# * but WITHOUT ANY WARRANTY; without even the implied warranty of
-# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# * GNU General Public License for more details.
-# *
-# * You should have received a copy of the GNU General Public License
-# * along with this program; if not, write to the Free Software Foundation,
-# * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+# * This is free software; you can redistribute and/or modify it under
+# * the terms of the GNU General Public Licence. See the COPYING file.
 # *
 # **********************************************************************
 
@@ -33,6 +21,7 @@ LIBLWGEOM_CFLAGS=-I../../../liblwgeom
 LIBGDAL_CFLAGS=@LIBGDAL_CFLAGS@
 LIBGDAL_LDFLAGS=@LIBGDAL_LDFLAGS@
 PROJ_CFLAGS=@PROJ_CPPFLAGS@
+PROJ_LDFLAGS=@PROJ_LDFLAGS@ -lproj
 GEOS_CFLAGS=@GEOS_CPPFLAGS@
 GEOS_LDFLAGS=@GEOS_LDFLAGS@ -lgeos_c
 
@@ -53,6 +42,7 @@ LDFLAGS = \
 	$(LIBLWGEOM_LDFLAGS) \
 	$(LIBGDAL_LDFLAGS) \
 	$(GEOS_LDFLAGS) \
+	$(PROJ_LDFLAGS) \
 	-lm \
 
 CUNIT_LDFLAGS=@CUNIT_LDFLAGS@
diff --git a/raster/test/cunit/cu_band_basics.c b/raster/test/cunit/cu_band_basics.c
index 6088100..72b6b84 100644
--- a/raster/test/cunit/cu_band_basics.c
+++ b/raster/test/cunit/cu_band_basics.c
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
@@ -128,7 +128,7 @@ static void test_band_metadata() {
 	for (x = 0; x < width; x++) {
 		for (y = 0; y < height; y++) {
 			CU_ASSERT_EQUAL(rt_band_get_pixel(band, x, y, &val, NULL), ES_NONE);
-			CU_ASSERT_DOUBLE_EQUAL(val, 255, 1.);
+			CU_ASSERT_DOUBLE_EQUAL(val, 0, 1.);
 		}
 	}
 
diff --git a/raster/test/cunit/cu_band_misc.c b/raster/test/cunit/cu_band_misc.c
index 4d27cd6..6eee0dc 100644
--- a/raster/test/cunit/cu_band_misc.c
+++ b/raster/test/cunit/cu_band_misc.c
@@ -17,12 +17,13 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
 #include "CUnit/Basic.h"
 #include "cu_tester.h"
+#include <math.h>
 
 static void test_band_get_nearest_pixel() {
 	rt_raster rast;
@@ -175,7 +176,7 @@ static void test_band_get_nearest_pixel() {
 	CU_ASSERT_EQUAL(rtn, 2);
 
 	rtn = rt_pixel_set_to_array(
-		npixels, rtn,
+		npixels, rtn, NULL,
 		-1, 1, 
 		1, 1,
 		&value,
@@ -195,7 +196,6 @@ static void test_band_get_nearest_pixel() {
 	rtdealloc(nodata);
 	rtdealloc(value);
 
-
 	/* -2,2 distance 1 */
 	rtn = rt_band_get_nearest_pixel(
 		band,
@@ -367,6 +367,217 @@ static void test_band_get_pixel_of_value() {
 	cu_free_raster(rast);
 }
 
+static void test_pixel_set_to_array(){
+	rt_raster rast;
+	rt_band band;
+	rt_mask mask = NULL;
+	uint32_t x, y;
+	int rtn;
+	const int maxX = 10;
+	const int maxY = 10;
+	int maskX = 3;
+	int maskY = 3;
+	rt_pixel npixels = NULL;
+	int i;
+	double **value;
+	double val;
+	int nod;
+	int **nodata;
+	int dimx;
+	int dimy;
+
+	rast = rt_raster_new(maxX, maxY);
+	CU_ASSERT(rast != NULL);
+
+	band = cu_add_band(rast, PT_32BF, 1, 0);
+	CU_ASSERT(band != NULL);
+
+	for (x = 0; x < maxX; x++) {
+		for (y = 0; y < maxY; y++) {
+			rtn = rt_band_set_pixel(band, x, y, 1, NULL);
+		}
+	}
+
+
+	rtn = rt_band_get_pixel(band,4,4,&val,&nod);
+	CU_ASSERT_EQUAL(nod,0);
+	CU_ASSERT_DOUBLE_EQUAL(val,1,.01);
+
+	/* set up mask */
+	
+	mask = (rt_mask) rtalloc(sizeof(struct rt_mask_t) );
+	CU_ASSERT(mask != NULL);
+	mask->values = rtalloc(sizeof(double*)*maskY);
+	mask->nodata = rtalloc(sizeof(int*)*maskY);
+	
+	for( i = 0; i < maskY;  i++) {
+	  mask->values[i] = rtalloc(sizeof(double) *maskX);
+	  mask->nodata[i] = rtalloc(sizeof(int) *maskX);
+	}
+
+	CU_ASSERT(mask->values != NULL);
+	CU_ASSERT(mask->nodata != NULL);
+
+	/* set mask to nodata */
+
+	for(y = 0; y < maskY; y++) {
+	  for(x = 0; x < maskX; x++){
+	    mask->values[y][x]= 0;
+	    mask->nodata[y][x]= 1;
+	  }
+	}
+
+	mask->dimx = maskX;
+	mask->dimy = maskY;
+	mask->weighted = 0;
+
+       rtn = rt_band_get_nearest_pixel(
+		band,
+		4,4,
+		1, 1,
+		1,
+		&npixels
+	);
+       
+       CU_ASSERT_EQUAL(rtn,8);
+       
+       	rtn = rt_pixel_set_to_array(
+		npixels, rtn, mask,
+		4,4, 
+		1, 1,
+		&value,
+		&nodata,
+		&dimx, &dimy
+	);
+				  
+       
+       rtdealloc(npixels);
+       CU_ASSERT_EQUAL(rtn, ES_NONE);
+       CU_ASSERT_EQUAL(dimx, 3);
+       CU_ASSERT_EQUAL(dimy, 3);
+       CU_ASSERT_EQUAL(nodata[1][1],1);
+
+	for (x = 0; x < dimx; x++) {
+		rtdealloc(nodata[x]);
+		rtdealloc(value[x]);
+	}
+
+	rtdealloc(nodata);
+	rtdealloc(value);
+	
+	/* set mask to 1 */
+
+	for(y = 0; y < maskY; y++) {
+	  for(x = 0; x < maskX; x++){
+	    mask->values[y][x]= 1;
+	    mask->nodata[y][x]= 0;
+	  }
+	}
+
+	mask->dimx = maskX;
+	mask->dimy = maskY;
+	mask->weighted = 0;
+       
+
+       rtn = rt_band_get_nearest_pixel(
+		band,
+		4,4,
+		1, 1,
+		1,
+		&npixels
+	);
+       
+       CU_ASSERT_EQUAL(rtn,8);
+       
+       	rtn = rt_pixel_set_to_array(
+		npixels, rtn, mask,
+		4,4, 
+		1, 1,
+		&value,
+		&nodata,
+		&dimx, &dimy
+	);
+				  
+       
+       rtdealloc(npixels);
+       CU_ASSERT_EQUAL(rtn, ES_NONE);
+       CU_ASSERT_EQUAL(dimx, 3);
+       CU_ASSERT_EQUAL(dimy, 3);
+       CU_ASSERT_NOT_EQUAL(nodata[0][0],1);
+       CU_ASSERT_DOUBLE_EQUAL(value[0][0],1,.01);
+
+	for (x = 0; x < dimx; x++) {
+		rtdealloc(nodata[x]);
+		rtdealloc(value[x]);
+	}
+
+	rtdealloc(nodata);
+	rtdealloc(value);
+
+	/* set mask to 0.5 */
+
+	for(y = 0; y < maskY; y++) {
+	  for(x = 0; x < maskX; x++){
+	    mask->values[y][x]= 0.5;
+	    mask->nodata[y][x]= 0;
+	  }
+	}
+
+	mask->dimx = maskX;
+	mask->dimy = maskY;
+	mask->weighted = 1;
+
+       rtn = rt_band_get_nearest_pixel(
+		band,
+		4,4,
+		1, 1,
+		1,
+		&npixels
+	);
+       
+       CU_ASSERT_EQUAL(rtn,8);
+       
+       	rtn = rt_pixel_set_to_array(
+		npixels, rtn, mask,
+		4,4, 
+		1, 1,
+		&value,
+		&nodata,
+		&dimx, &dimy
+	);
+				  
+       
+       rtdealloc(npixels);
+       CU_ASSERT_EQUAL(rtn, ES_NONE);
+       CU_ASSERT_EQUAL(dimx, 3);
+       CU_ASSERT_EQUAL(dimy, 3);
+       CU_ASSERT_NOT_EQUAL(nodata[0][0],1);
+       CU_ASSERT_DOUBLE_EQUAL(value[0][0],0.5,0.1);
+
+	for (x = 0; x < dimx; x++) {
+		rtdealloc(nodata[x]);
+		rtdealloc(value[x]);
+	}
+
+	rtdealloc(nodata);
+	rtdealloc(value);
+
+	for( i = 0; i < maskY;  i++) {
+	  rtdealloc(mask->values[i]);
+	  rtdealloc(mask->nodata[i]);
+	}
+
+	rtdealloc(mask->values);
+	rtdealloc(mask->nodata);
+	rtdealloc(mask);
+	
+	if (rtn)
+	  rtdealloc(npixels);
+	
+       cu_free_raster(rast);
+
+}
+
 /* register tests */
 void band_misc_suite_setup(void);
 void band_misc_suite_setup(void)
@@ -374,4 +585,6 @@ void band_misc_suite_setup(void)
 	CU_pSuite suite = CU_add_suite("band_misc", NULL, NULL);
 	PG_ADD_TEST(suite, test_band_get_nearest_pixel);
 	PG_ADD_TEST(suite, test_band_get_pixel_of_value);
+	PG_ADD_TEST(suite, test_pixel_set_to_array);
 }
+
diff --git a/raster/test/cunit/cu_band_stats.c b/raster/test/cunit/cu_band_stats.c
index 4e55a2e..cf15349 100644
--- a/raster/test/cunit/cu_band_stats.c
+++ b/raster/test/cunit/cu_band_stats.c
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/raster/test/cunit/cu_gdal.c b/raster/test/cunit/cu_gdal.c
index 03fc070..d6554cf 100644
--- a/raster/test/cunit/cu_gdal.c
+++ b/raster/test/cunit/cu_gdal.c
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
@@ -576,6 +576,8 @@ static void test_gdal_to_raster() {
 	}
 
 	GDALClose(gdds);
+	gdds = NULL;
+	gddrv = NULL;
 
 	cu_free_raster(rast);
 	cu_free_raster(raster);
diff --git a/raster/test/cunit/cu_mapalgebra.c b/raster/test/cunit/cu_mapalgebra.c
index 3f38526..e87b6c2 100644
--- a/raster/test/cunit/cu_mapalgebra.c
+++ b/raster/test/cunit/cu_mapalgebra.c
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
@@ -570,6 +570,7 @@ static void test_raster_iterator() {
 		PT_32BUI,
 		1, 0,
 		0, 0,
+		NULL,
 		userargs,
 		testRasterIterator1_callback,
 		&rtn
@@ -599,6 +600,7 @@ static void test_raster_iterator() {
 		PT_32BUI,
 		1, 0,
 		0, 0,
+		NULL,
 		userargs,
 		testRasterIterator1_callback,
 		&rtn
@@ -628,6 +630,7 @@ static void test_raster_iterator() {
 		PT_32BUI,
 		1, 0,
 		0, 0,
+		NULL,
 		userargs,
 		testRasterIterator2_callback,
 		&rtn
@@ -653,6 +656,7 @@ static void test_raster_iterator() {
 		PT_32BUI,
 		1, 0,
 		0, 0,
+		NULL,
 		userargs,
 		testRasterIterator3_callback,
 		&rtn
@@ -678,6 +682,7 @@ static void test_raster_iterator() {
 		PT_32BUI,
 		1, 0,
 		0, 0,
+		NULL,
 		userargs,
 		testRasterIterator4_callback,
 		&rtn
@@ -703,6 +708,7 @@ static void test_raster_iterator() {
 		PT_32BUI,
 		1, 0,
 		0, 0,
+		NULL,
 		userargs,
 		testRasterIterator5_callback,
 		&rtn
@@ -728,6 +734,7 @@ static void test_raster_iterator() {
 		PT_32BUI,
 		1, 0,
 		0, 0,
+		NULL,
 		userargs,
 		testRasterIterator6_callback,
 		&rtn
@@ -757,6 +764,7 @@ static void test_raster_iterator() {
 		PT_32BUI,
 		1, 0,
 		1, 1,
+		NULL,
 		userargs,
 		testRasterIterator7_callback,
 		&rtn
diff --git a/raster/test/cunit/cu_misc.c b/raster/test/cunit/cu_misc.c
index 32a0468..5579072 100644
--- a/raster/test/cunit/cu_misc.c
+++ b/raster/test/cunit/cu_misc.c
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
@@ -134,7 +134,7 @@ static void test_util_gdal_open() {
 	CU_ASSERT(ds == NULL);
 
 	/* enabled drivers with VSICURL */
-	/* disabled as we don't want network access as a requirement
+	/* disabled as we don't want network access as a requirement 
 	gdal_enabled_drivers = enabled_vsi;
 	ds = rt_util_gdal_open("/vsicurl/http://download.osgeo.org/gdal/data/gtiff/small_world.tif", GA_ReadOnly, 0);
 	CU_ASSERT(ds != NULL);
diff --git a/raster/test/cunit/cu_pixtype.c b/raster/test/cunit/cu_pixtype.c
index cc0a2c7..45333a3 100644
--- a/raster/test/cunit/cu_pixtype.c
+++ b/raster/test/cunit/cu_pixtype.c
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/raster/test/cunit/cu_raster_basics.c b/raster/test/cunit/cu_raster_basics.c
index 6479b16..98d640a 100644
--- a/raster/test/cunit/cu_raster_basics.c
+++ b/raster/test/cunit/cu_raster_basics.c
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/raster/test/cunit/cu_raster_geometry.c b/raster/test/cunit/cu_raster_geometry.c
index 9ba6f24..d1309f3 100644
--- a/raster/test/cunit/cu_raster_geometry.c
+++ b/raster/test/cunit/cu_raster_geometry.c
@@ -17,13 +17,152 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
 #include "CUnit/Basic.h"
 #include "cu_tester.h"
 
+static void test_raster_envelope() {
+	rt_raster raster = NULL;
+	rt_envelope rtenv;
+
+	/* width = 0, height = 0 */
+	raster = rt_raster_new(0, 0);
+	CU_ASSERT(raster != NULL);
+
+	rt_raster_set_offsets(raster, 0.5, 0.5);
+	rt_raster_set_scale(raster, 1, -1);
+
+	CU_ASSERT_EQUAL(rt_raster_get_envelope(raster, &rtenv), ES_NONE);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MinX, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MaxX, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MinY, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MaxY, 0.5, DBL_EPSILON);
+	cu_free_raster(raster);
+
+	/* width = 0 */
+	raster = rt_raster_new(0, 5);
+	CU_ASSERT(raster != NULL);
+
+	rt_raster_set_offsets(raster, 0.5, 0.5);
+	rt_raster_set_scale(raster, 1, -1);
+
+	CU_ASSERT_EQUAL(rt_raster_get_envelope(raster, &rtenv), ES_NONE);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MinX, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MaxX, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MinY, -4.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MaxY, 0.5, DBL_EPSILON);
+	cu_free_raster(raster);
+
+	/* height = 0 */
+	raster = rt_raster_new(5, 0);
+	CU_ASSERT(raster != NULL);
+
+	rt_raster_set_offsets(raster, 0.5, 0.5);
+	rt_raster_set_scale(raster, 1, -1);
+
+	CU_ASSERT_EQUAL(rt_raster_get_envelope(raster, &rtenv), ES_NONE);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MinX, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MaxX, 5.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MinY, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MaxY, 0.5, DBL_EPSILON);
+	cu_free_raster(raster);
+
+	/* normal raster */
+	raster = rt_raster_new(5, 5);
+	CU_ASSERT(raster != NULL);
+
+	rt_raster_set_offsets(raster, 0.5, 0.5);
+	rt_raster_set_scale(raster, 1, -1);
+
+	CU_ASSERT_EQUAL(rt_raster_get_envelope(raster, &rtenv), ES_NONE);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MinX, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MaxX, 5.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MinY, -4.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(rtenv.MaxY, 0.5, DBL_EPSILON);
+	cu_free_raster(raster);
+}
+
+static void test_raster_envelope_geom() {
+	rt_raster raster = NULL;
+	LWGEOM *env = NULL;
+	LWPOLY *poly = NULL;
+	POINTARRAY *ring = NULL;
+	POINT4D pt;
+
+	/* NULL raster */
+	CU_ASSERT_EQUAL(rt_raster_get_envelope_geom(NULL, &env), ES_NONE);
+	CU_ASSERT(env == NULL);
+
+	/* width = 0, height = 0 */
+	raster = rt_raster_new(0, 0);
+	CU_ASSERT(raster != NULL);
+
+	CU_ASSERT_EQUAL(rt_raster_get_envelope_geom(raster, &env), ES_NONE);
+	CU_ASSERT_EQUAL(env->type, POINTTYPE);
+	lwgeom_free(env);
+	cu_free_raster(raster);
+
+	/* width = 0 */
+	raster = rt_raster_new(0, 256);
+	CU_ASSERT(raster != NULL);
+
+	CU_ASSERT_EQUAL(rt_raster_get_envelope_geom(raster, &env), ES_NONE);
+	CU_ASSERT_EQUAL(env->type, LINETYPE);
+	lwgeom_free(env);
+	cu_free_raster(raster);
+
+	/* height = 0 */
+	raster = rt_raster_new(256, 0);
+	CU_ASSERT(raster != NULL);
+
+	CU_ASSERT_EQUAL(rt_raster_get_envelope_geom(raster, &env), ES_NONE);
+	CU_ASSERT_EQUAL(env->type, LINETYPE);
+	lwgeom_free(env);
+	cu_free_raster(raster);
+
+	/* normal raster */
+	raster = rt_raster_new(5, 5);
+	CU_ASSERT(raster != NULL);
+
+	rt_raster_set_offsets(raster, 0.5, 0.5);
+	rt_raster_set_scale(raster, 1, -1);
+
+	CU_ASSERT_EQUAL(rt_raster_get_envelope_geom(raster, &env), ES_NONE);
+	poly = lwgeom_as_lwpoly(env);
+	CU_ASSERT_EQUAL(poly->srid, rt_raster_get_srid(raster));
+	CU_ASSERT_EQUAL(poly->nrings, 1);
+
+	ring = poly->rings[0];
+	CU_ASSERT(ring != NULL);
+	CU_ASSERT_EQUAL(ring->npoints, 5);
+
+	getPoint4d_p(ring, 0, &pt);
+	CU_ASSERT_DOUBLE_EQUAL(pt.x, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(pt.y, 0.5, DBL_EPSILON);
+
+	getPoint4d_p(ring, 1, &pt);
+	CU_ASSERT_DOUBLE_EQUAL(pt.x, 5.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(pt.y, 0.5, DBL_EPSILON);
+
+	getPoint4d_p(ring, 2, &pt);
+	CU_ASSERT_DOUBLE_EQUAL(pt.x, 5.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(pt.y, -4.5, DBL_EPSILON);
+
+	getPoint4d_p(ring, 3, &pt);
+	CU_ASSERT_DOUBLE_EQUAL(pt.x, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(pt.y, -4.5, DBL_EPSILON);
+
+	getPoint4d_p(ring, 4, &pt);
+	CU_ASSERT_DOUBLE_EQUAL(pt.x, 0.5, DBL_EPSILON);
+	CU_ASSERT_DOUBLE_EQUAL(pt.y, 0.5, DBL_EPSILON);
+
+	lwgeom_free(env);
+	cu_free_raster(raster);
+}
+
 static void test_raster_convex_hull() {
 	rt_raster raster = NULL;
 	LWGEOM *hull = NULL;
@@ -437,8 +576,11 @@ void raster_geometry_suite_setup(void);
 void raster_geometry_suite_setup(void)
 {
 	CU_pSuite suite = CU_add_suite("raster_geometry", NULL, NULL);
+	PG_ADD_TEST(suite, test_raster_envelope);
+	PG_ADD_TEST(suite, test_raster_envelope_geom);
 	PG_ADD_TEST(suite, test_raster_convex_hull);
 	PG_ADD_TEST(suite, test_raster_surface);
 	PG_ADD_TEST(suite, test_raster_perimeter);
 	PG_ADD_TEST(suite, test_raster_pixel_as_polygon);
 }
+
diff --git a/raster/test/cunit/cu_raster_misc.c b/raster/test/cunit/cu_raster_misc.c
index 1c92d46..705c3e4 100644
--- a/raster/test/cunit/cu_raster_misc.c
+++ b/raster/test/cunit/cu_raster_misc.c
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/raster/test/cunit/cu_raster_wkb.c b/raster/test/cunit/cu_raster_wkb.c
index e80b76b..0533632 100644
--- a/raster/test/cunit/cu_raster_wkb.c
+++ b/raster/test/cunit/cu_raster_wkb.c
@@ -18,7 +18,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/raster/test/cunit/cu_spatial_relationship.c b/raster/test/cunit/cu_spatial_relationship.c
index 028d1bc..f99e78b 100644
--- a/raster/test/cunit/cu_spatial_relationship.c
+++ b/raster/test/cunit/cu_spatial_relationship.c
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/raster/test/cunit/cu_tester.c b/raster/test/cunit/cu_tester.c
index 77e2488..670b515 100644
--- a/raster/test/cunit/cu_tester.c
+++ b/raster/test/cunit/cu_tester.c
@@ -1,23 +1,11 @@
 /**********************************************************************
- * $Id$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
  * Copyright 2008 Paul Ramsey <pramsey at cleverelephant.ca>
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
  *
  **********************************************************************/
 
@@ -201,18 +189,8 @@ int main(int argc, char *argv[])
  * CAUTION: Not stop execution on rterror case !!!
  */
 static void cu_error_reporter(const char *fmt, va_list ap) {
-	char *msg;
-
-	/** This is a GNU extension.
-	* Dunno how to handle errors here.
-	 */
-	if (!lw_vasprintf (&msg, fmt, ap)) {
-		va_end (ap);
-		return;
-	}
-
-	strncpy(cu_error_msg, msg, MAX_CUNIT_MSG_LENGTH);
-	rtdealloc(msg);
+  vsnprintf (cu_error_msg, MAX_CUNIT_MSG_LENGTH, fmt, ap);
+  cu_error_msg[MAX_CUNIT_MSG_LENGTH]='\0';
 }
 
 void cu_error_msg_reset() {
diff --git a/raster/test/cunit/cu_tester.h b/raster/test/cunit/cu_tester.h
index e5d6d9f..263359c 100644
--- a/raster/test/cunit/cu_tester.h
+++ b/raster/test/cunit/cu_tester.h
@@ -1,28 +1,20 @@
 /**********************************************************************
- * $Id$
  *
  * PostGIS - Spatial Types for PostgreSQL
  * http://postgis.net
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
  *
  **********************************************************************/
 
-#include "rt_api.h"
+#include "librtcore.h"
+
+#include "../../../postgis_config.h"
+#include "../../raster_config.h"
 
 #define MAX_CUNIT_MSG_LENGTH 512
+
 #define PG_ADD_TEST(suite, testfunc) CU_add_test(suite, #testfunc, testfunc)
 
 /* Contains the most recent error message generated by rterror. */
diff --git a/raster/test/regress/Makefile.in b/raster/test/regress/Makefile.in
index c090899..1aabd71 100644
--- a/raster/test/regress/Makefile.in
+++ b/raster/test/regress/Makefile.in
@@ -1,11 +1,12 @@
 #############################################################################
-# $Id$
 #
 # Copyright (c) 2009 Sandro Santilli <strk at keybit.net>, Pierre Racine <pierre.racine at sbf.ulaval.ca>
 # Copyright (c) 2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
 # Copyright (c) 2011-2013 Regents of the University of California
 #   <bkpark at ucdavis.edu>
 #
+# This is free software; you can redistribute and/or modify it under
+# the terms of the GNU General Public Licence. See the COPYING file.
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
@@ -18,7 +19,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 #############################################################################
 
@@ -41,7 +42,8 @@ PATH := $(PGSQL_BINDIR):$(PATH)
 export PATH
 
 TEST_FIRST = \
-	check_gdal
+	check_gdal \
+	load_outdb
 
 TEST_LAST = \
 	clean
@@ -73,7 +75,8 @@ TEST_PROPS = \
 	rt_metadata \
 	rt_rastertoworldcoord \
 	rt_worldtorastercoord \
-	rt_convexhull
+	rt_convexhull \
+	rt_envelope
 
 TEST_BANDPROPS = \
 	rt_band_properties \
@@ -97,10 +100,16 @@ TEST_BANDPROPS = \
 
 TEST_UTILITY = \
 	rt_utility \
+	rt_fromgdalraster \
+	rt_asgdalraster \
+	rt_astiff \
+	rt_asjpeg \
+	rt_aspng \
 	rt_reclass \
 	rt_gdalwarp \
 	rt_asraster \
-	rt_dumpvalues
+	rt_dumpvalues \
+	rt_createoverview
 
 TEST_MAPALGEBRA = \
 	rt_mapalgebraexpr \
@@ -113,6 +122,7 @@ TEST_MAPALGEBRA = \
 	rt_clip \
 	rt_mapalgebra \
 	rt_mapalgebra_expr \
+	rt_mapalgebra_mask \
 	rt_union \
 	rt_invdistweight4ma \
 	rt_4ma \
@@ -134,8 +144,13 @@ TEST_BUGS = \
 
 TEST_LOADER = \
 	loader/Basic \
+	loader/Projected \
 	loader/BasicCopy \
-	loader/BasicFilename
+	loader/BasicFilename \
+	loader/BasicOutDB \
+	loader/Tiled10x10 \
+	loader/Tiled10x10Copy \
+	loader/Tiled8x8
 
 TESTS = $(TEST_FIRST) \
 	$(TEST_METADATA) $(TEST_IO) $(TEST_BASIC_FUNC) \
diff --git a/raster/test/regress/box3d.sql b/raster/test/regress/box3d.sql
index e27fd42..10c5ff5 100644
--- a/raster/test/regress/box3d.sql
+++ b/raster/test/regress/box3d.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2009 Sandro Santilli <strk at keybit.net>, David Zwarg <dzwarg at azavea.com>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_box3d_test (
diff --git a/raster/test/regress/bug_test_car5.sql b/raster/test/regress/bug_test_car5.sql
index 53ca14e..8f4c0f0 100644
--- a/raster/test/regress/bug_test_car5.sql
+++ b/raster/test/regress/bug_test_car5.sql
@@ -1,4 +1,3 @@
--- $Id$
 --
 -- Copyright (c) 2009 Mateusz Loskot <mateusz at loskot.net>
 --
@@ -14,7 +13,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 --
 -- Test case for mysterious band truncation revealed recently
diff --git a/raster/test/regress/check_gdal.sql b/raster/test/regress/check_gdal.sql
index 764619f..f15368e 100644
--- a/raster/test/regress/check_gdal.sql
+++ b/raster/test/regress/check_gdal.sql
@@ -1,6 +1,43 @@
+-- postgis.gdal_datapath
 SELECT 
 	CASE
 		WHEN strpos(postgis_gdal_version(), 'GDAL_DATA') <> 0
 			THEN false
 		ELSE NULL
 	END;
+SET postgis.gdal_datapath = '';
+SELECT 
+	CASE
+		WHEN strpos(postgis_gdal_version(), 'GDAL_DATA') <> 0
+			THEN NULL
+		ELSE TRUE
+	END;
+SET postgis.gdal_datapath = default;
+SELECT 
+	CASE
+		WHEN strpos(postgis_gdal_version(), 'GDAL_DATA') <> 0
+			THEN false
+		ELSE NULL
+	END;
+
+-- postgis.gdal_enabled_drivers
+SET client_min_messages TO warning;
+
+SELECT count(*) = 0 FROM ST_GDALDrivers();
+SHOW postgis.gdal_enabled_drivers;
+
+SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';
+SHOW postgis.gdal_enabled_drivers;
+SELECT count(*) > 0 FROM ST_GDALDrivers();
+
+SET postgis.gdal_enabled_drivers = 'GTiff PNG JPEG';
+SHOW postgis.gdal_enabled_drivers;
+SELECT count(*) = 3 FROM ST_GDALDrivers();
+
+SET postgis.gdal_enabled_drivers = 'DISABLE_ALL';
+SHOW postgis.gdal_enabled_drivers;
+SELECT count(*) = 0 FROM ST_GDALDrivers();
+
+SET postgis.gdal_enabled_drivers = default;
+SHOW postgis.gdal_enabled_drivers;
+SELECT count(*) = 0 FROM ST_GDALDrivers();
diff --git a/raster/test/regress/check_gdal_expected b/raster/test/regress/check_gdal_expected
index e69de29..4a96f73 100644
--- a/raster/test/regress/check_gdal_expected
+++ b/raster/test/regress/check_gdal_expected
@@ -0,0 +1,10 @@
+t
+DISABLE_ALL
+ENABLE_ALL
+t
+GTiff PNG JPEG
+t
+DISABLE_ALL
+t
+DISABLE_ALL
+t
diff --git a/raster/test/regress/check_raster_columns.sql b/raster/test/regress/check_raster_columns.sql
index 40d4377..0e4539a 100644
--- a/raster/test/regress/check_raster_columns.sql
+++ b/raster/test/regress/check_raster_columns.sql
@@ -1,8 +1,7 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2010 Mateusz Loskot <mateusz at loskot.net>
--- Copyright (C) 2011 Regents of the University of California
+-- Copyright (C) 2011 - 2013 Regents of the University of California
 --   <bkpark at ucdavis.edu>
 --
 -- This program is free software; you can redistribute it and/or
@@ -17,7 +16,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 SET client_min_messages TO warning;
@@ -117,6 +116,26 @@ SELECT make_test_raster(0, 3, 3, 1, 0);
 SELECT DropRasterConstraints(current_schema(), 'test_raster_columns', 'rast'::name, 'regular_blocking');
 SELECT r_table_name, r_raster_column, srid, scale_x, scale_y, blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'test_raster_columns';
 
+-- check spatial_index
+SELECT
+	CASE
+		WHEN spatial_index IS FALSE
+			THEN NULL
+		ELSE FALSE
+	END
+FROM raster_columns WHERE r_table_name = 'test_raster_columns';
+CREATE INDEX test_raster_columns_rast_gist
+	ON test_raster_columns
+	USING gist
+	(st_convexhull(rast));
+SELECT
+	CASE
+		WHEN spatial_index IS FALSE
+			THEN FALSE
+		ELSE NULL
+	END
+FROM raster_columns WHERE r_table_name = 'test_raster_columns';
+
 -- ticket #2215
 CREATE TABLE test_raster_columns_2 AS
 	SELECT rid, rast FROM test_raster_columns;
diff --git a/raster/test/regress/check_raster_columns_expected b/raster/test/regress/check_raster_columns_expected
index 2c05c8f..659365b 100644
--- a/raster/test/regress/check_raster_columns_expected
+++ b/raster/test/regress/check_raster_columns_expected
@@ -1,23 +1,23 @@
 raster_columns
 t
-test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|MULTIPOLYGON(((0 0,0 -2,-2 -2,-2 0,0 0)),((3 1,3 -1,1 -1,1 0,0 0,0 2,1 2,1 3,2 3,2 4,4 4,4 2,3 2,3 1)))
+test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|POLYGON((-2 -2,-2 4,4 4,4 -2,-2 -2))
 t
 test_raster_columns|rast|0|||||f|f||||
 t
-test_raster_columns|rast|0|||2|2|f|f||||MULTIPOLYGON(((0 0,0 -2,-2 -2,-2 0,0 0)),((3 1,3 -1,1 -1,1 0,0 0,0 2,1 2,1 3,2 3,2 4,4 4,4 2,3 2,3 1)))
+test_raster_columns|rast|0|||2|2|f|f||||POLYGON((-2 -2,-2 4,4 4,4 -2,-2 -2))
 t
-test_raster_columns|rast|0|||2|2|f|f||||MULTIPOLYGON(((0 0,0 -2,-2 -2,-2 0,0 0)),((3 1,3 -1,1 -1,1 0,0 0,0 2,1 2,1 3,2 3,2 4,4 4,4 2,3 2,3 1)))
+test_raster_columns|rast|0|||2|2|f|f||||POLYGON((-2 -2,-2 4,4 4,4 -2,-2 -2))
 t
-test_raster_columns|rast|0|1|1|2|2|t|f|1||{0}|MULTIPOLYGON(((0 0,0 -2,-2 -2,-2 0,0 0)),((3 1,3 -1,1 -1,1 0,0 0,0 2,1 2,1 3,2 3,2 4,4 4,4 2,3 2,3 1)))
+test_raster_columns|rast|0|1|1|2|2|t|f|1||{0}|POLYGON((-2 -2,-2 4,4 4,4 -2,-2 -2))
 t
-test_raster_columns|rast|0|||2|2|t|f|1||{0}|MULTIPOLYGON(((0 0,0 -2,-2 -2,-2 0,0 0)),((3 1,3 -1,1 -1,1 0,0 0,0 2,1 2,1 3,2 3,2 4,4 4,4 2,3 2,3 1)))
+test_raster_columns|rast|0|||2|2|t|f|1||{0}|POLYGON((-2 -2,-2 4,4 4,4 -2,-2 -2))
 t
 t
 t
-test_raster_columns|rast|0|1|1|3|3|t|t|1|{8BUI}|{0}|POLYGON((3 0,0 0,0 3,0 6,3 6,6 6,6 3,6 0,3 0))
+test_raster_columns|rast|0|1|1|3|3|t|t|1|{8BUI}|{0}|POLYGON((0 0,0 6,6 6,6 0,0 0))
 ERROR:  conflicting key value violates exclusion constraint "enforce_spatially_unique_test_raster_columns_rast"
 ERROR:  new row for relation "test_raster_columns" violates check constraint "enforce_coverage_tile_rast"
 t
-test_raster_columns|rast|0|1|1|3|3|t|f|1|{8BUI}|{0}|POLYGON((3 0,0 0,0 3,0 6,3 6,6 6,6 3,6 0,3 0))
+test_raster_columns|rast|0|1|1|3|3|t|f|1|{8BUI}|{0}|POLYGON((0 0,0 6,6 6,6 0,0 0))
 t
 t
diff --git a/raster/test/regress/check_raster_overviews.sql b/raster/test/regress/check_raster_overviews.sql
index 1dfd726..2e523ab 100644
--- a/raster/test/regress/check_raster_overviews.sql
+++ b/raster/test/regress/check_raster_overviews.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2010 Mateusz Loskot <mateusz at loskot.net>
 -- Copyright (C) 2011 Regents of the University of California
@@ -17,7 +16,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 SET client_min_messages TO warning;
diff --git a/raster/test/regress/check_raster_overviews_expected b/raster/test/regress/check_raster_overviews_expected
index 15f0036..93e8968 100644
--- a/raster/test/regress/check_raster_overviews_expected
+++ b/raster/test/regress/check_raster_overviews_expected
@@ -2,14 +2,14 @@ raster_overviews
 test_raster_columns|rast|0|||||f|f||||
 test_raster_overviews|rast|0|||||f|f||||
 t
-test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|MULTIPOLYGON(((0 0,0 -2,-2 -2,-2 0,0 0)),((3 1,3 -1,1 -1,1 0,0 0,0 2,1 2,1 3,2 3,2 4,4 4,4 2,3 2,3 1)))
+test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|POLYGON((-2 -2,-2 4,4 4,4 -2,-2 -2))
 test_raster_overviews|rast|0|||||f|f||||
 t
-test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|MULTIPOLYGON(((0 0,0 -2,-2 -2,-2 0,0 0)),((3 1,3 -1,1 -1,1 0,0 0,0 2,1 2,1 3,2 3,2 4,4 4,4 2,3 2,3 1)))
+test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|POLYGON((-2 -2,-2 4,4 4,4 -2,-2 -2))
 test_raster_overviews|rast|0|||||f|f||||
 test_raster_overviews|rast|test_raster_columns|rast|1
 t
-test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|MULTIPOLYGON(((0 0,0 -2,-2 -2,-2 0,0 0)),((3 1,3 -1,1 -1,1 0,0 0,0 2,1 2,1 3,2 3,2 4,4 4,4 2,3 2,3 1)))
+test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|POLYGON((-2 -2,-2 4,4 4,4 -2,-2 -2))
 test_raster_overviews|rast|0|||||f|f||||
 t
 test_raster_columns|rast|0|||||f|f||||
diff --git a/raster/test/regress/load_outdb-pre.pl b/raster/test/regress/load_outdb-pre.pl
index 530c3fb..1592030 100755
--- a/raster/test/regress/load_outdb-pre.pl
+++ b/raster/test/regress/load_outdb-pre.pl
@@ -13,27 +13,32 @@ if (lc($^O) eq "msys") {
 }
 
 my $sql = <<"END";
+WITH foo AS (
+	SELECT postgis_raster_lib_version()
+)
+SELECT NULL FROM foo;
+SET postgis.gdal_enabled_drivers = 'GTiff';
 DROP TABLE IF EXISTS raster_outdb_template;
 CREATE TABLE raster_outdb_template AS
 SELECT
 	1 AS rid,
-	ST_AddBand(
-		ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0),
+	ST_AddBand( -- insert all three bands of out-db raster at index 1
+		ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0),
 		1, '$FILERASTER'::text, NULL::int[]
 	) AS rast
 UNION ALL
 SELECT
 	2 AS rid,
-	ST_AddBand(
-		ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0),
+	ST_AddBand( -- append all three bands of out-db raster
+		ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0),
 		'$FILERASTER'::text, NULL::int[]
 	) AS rast
 UNION ALL
 SELECT
 	3 AS rid,
-	ST_AddBand(
-		ST_AddBand(
-			ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0),
+	ST_AddBand( -- append out-db band 2
+		ST_AddBand( -- in-db band
+			ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0),
 			1, '8BUI', 1, 0
 		),
 		'$FILERASTER'::text, ARRAY[2]::int[]
@@ -41,9 +46,9 @@ SELECT
 UNION ALL
 SELECT
 	4 AS rid,
-	ST_AddBand(
-		ST_AddBand(
-			ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0),
+	ST_AddBand( -- append out-db band 2
+		ST_AddBand( -- in-db band
+			ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0),
 			1, '8BUI', 1, 0
 		),
 		'$FILERASTER'::text, ARRAY[2]::int[],
diff --git a/raster/test/regress/load_outdb-pre.sh b/raster/test/regress/load_outdb-pre.sh
index b085761..6b05b9e 100755
--- a/raster/test/regress/load_outdb-pre.sh
+++ b/raster/test/regress/load_outdb-pre.sh
@@ -11,27 +11,32 @@ if [ "$CSYS" == "msys" ]; then
 fi
 
 SQL=" \
+WITH foo AS ( \
+	SELECT postgis_raster_lib_version() \
+) \
+SELECT NULL FROM foo; \
+SET postgis.gdal_enabled_drivers = 'GTiff'; \
 DROP TABLE IF EXISTS raster_outdb_template; \
 CREATE TABLE raster_outdb_template AS \
 SELECT \
 	1 AS rid, \
-	ST_AddBand( \
-		ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), \
+	ST_AddBand( -- insert all three bands of out-db raster at index 1 \
+		ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), \
 		1, '$FILERASTER'::text, NULL::int[] \
 	) AS rast \
 UNION ALL \
 SELECT \
 	2 AS rid, \
-	ST_AddBand( \
-		ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), \
+	ST_AddBand( -- append all three bands of out-db raster \
+		ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), \
 		'$FILERASTER'::text, NULL::int[] \
 	) AS rast \
 UNION ALL \
 SELECT \
 	3 AS rid, \
-	ST_AddBand( \
+	ST_AddBand( -- append out-db band 2 \
 		ST_AddBand( \
-			ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), \
+			ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), \
 			1, '8BUI', 1, 0 \
 		), \
 		'$FILERASTER'::text, ARRAY[2]::int[] \
@@ -39,9 +44,9 @@ SELECT \
 UNION ALL \
 SELECT \
 	4 AS rid, \
-	ST_AddBand( \
+	ST_AddBand( -- append out-db band 2 \
 		ST_AddBand( \
-			ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), \
+			ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), \
 			1, '8BUI', 1, 0 \
 		), \
 		'$FILERASTER'::text, ARRAY[2]::int[], \
diff --git a/raster/test/regress/loader/Basic-post.sh b/raster/test/regress/loader/Basic-post.sh
deleted file mode 100755
index 1bdc985..0000000
--- a/raster/test/regress/loader/Basic-post.sh
+++ /dev/null
@@ -1 +0,0 @@
-rm -f loader/Basic.tif
diff --git a/raster/test/regress/loader/Basic-pre.sh b/raster/test/regress/loader/Basic-pre.sh
deleted file mode 100755
index 9e4c254..0000000
--- a/raster/test/regress/loader/Basic-pre.sh
+++ /dev/null
@@ -1 +0,0 @@
-cp loader/testraster.tif loader/Basic.tif
diff --git a/raster/test/regress/loader/Basic.select.expected b/raster/test/regress/loader/Basic.select.expected
index 9b79c82..484721c 100644
--- a/raster/test/regress/loader/Basic.select.expected
+++ b/raster/test/regress/loader/Basic.select.expected
@@ -1,4 +1,4 @@
-0|1.0000000000|-1.0000000000|90|90|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 0,90 0,90 -90,0 -90,0 0))
+0|1.0000000000|-1.0000000000|90|50|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50))
 POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255
-POLYGON((89 -89,90 -89,90 -90,89 -90,89 -89))|0
-POLYGON((44 -44,45 -44,45 -45,44 -45,44 -44))|0
+POLYGON((89 -49,90 -49,90 -50,89 -50,89 -49))|0
+POLYGON((44 -24,45 -24,45 -25,44 -25,44 -24))|0
diff --git a/raster/test/regress/loader/Basic.select.sql b/raster/test/regress/loader/Basic.select.sql
index 921329d..bc0434c 100644
--- a/raster/test/regress/loader/Basic.select.sql
+++ b/raster/test/regress/loader/Basic.select.sql
@@ -1,4 +1,4 @@
 SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast';
 SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 90;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 45;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 50;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 25;
diff --git a/raster/test/regress/loader/BasicCopy-post.sh b/raster/test/regress/loader/BasicCopy-post.sh
deleted file mode 100755
index 4f09b61..0000000
--- a/raster/test/regress/loader/BasicCopy-post.sh
+++ /dev/null
@@ -1 +0,0 @@
-rm -f loader/BasicCopy.tif
diff --git a/raster/test/regress/loader/BasicCopy-pre.sh b/raster/test/regress/loader/BasicCopy-pre.sh
deleted file mode 100755
index bb0ad13..0000000
--- a/raster/test/regress/loader/BasicCopy-pre.sh
+++ /dev/null
@@ -1 +0,0 @@
-cp loader/testraster.tif loader/BasicCopy.tif
diff --git a/raster/test/regress/loader/BasicCopy.select.expected b/raster/test/regress/loader/BasicCopy.select.expected
index 9b79c82..484721c 100644
--- a/raster/test/regress/loader/BasicCopy.select.expected
+++ b/raster/test/regress/loader/BasicCopy.select.expected
@@ -1,4 +1,4 @@
-0|1.0000000000|-1.0000000000|90|90|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 0,90 0,90 -90,0 -90,0 0))
+0|1.0000000000|-1.0000000000|90|50|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50))
 POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255
-POLYGON((89 -89,90 -89,90 -90,89 -90,89 -89))|0
-POLYGON((44 -44,45 -44,45 -45,44 -45,44 -44))|0
+POLYGON((89 -49,90 -49,90 -50,89 -50,89 -49))|0
+POLYGON((44 -24,45 -24,45 -25,44 -25,44 -24))|0
diff --git a/raster/test/regress/loader/BasicCopy.select.sql b/raster/test/regress/loader/BasicCopy.select.sql
index 921329d..bc0434c 100644
--- a/raster/test/regress/loader/BasicCopy.select.sql
+++ b/raster/test/regress/loader/BasicCopy.select.sql
@@ -1,4 +1,4 @@
 SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast';
 SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 90;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 45;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 50;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 25;
diff --git a/raster/test/regress/loader/BasicFilename-post.sh b/raster/test/regress/loader/BasicFilename-post.sh
deleted file mode 100755
index 8a801fb..0000000
--- a/raster/test/regress/loader/BasicFilename-post.sh
+++ /dev/null
@@ -1 +0,0 @@
-rm -f loader/BasicFilename.tif
diff --git a/raster/test/regress/loader/BasicFilename-pre.sh b/raster/test/regress/loader/BasicFilename-pre.sh
deleted file mode 100755
index 6afc033..0000000
--- a/raster/test/regress/loader/BasicFilename-pre.sh
+++ /dev/null
@@ -1 +0,0 @@
-cp loader/testraster.tif loader/BasicFilename.tif
diff --git a/raster/test/regress/loader/BasicFilename.select.expected b/raster/test/regress/loader/BasicFilename.select.expected
index e10dcac..abc8460 100644
--- a/raster/test/regress/loader/BasicFilename.select.expected
+++ b/raster/test/regress/loader/BasicFilename.select.expected
@@ -1,5 +1,5 @@
 0|||||f|f|||||
 POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255
-POLYGON((89 -89,90 -89,90 -90,89 -90,89 -89))|0
-POLYGON((44 -44,45 -44,45 -45,44 -45,44 -44))|0
+POLYGON((89 -49,90 -49,90 -50,89 -50,89 -49))|0
+POLYGON((44 -24,45 -24,45 -25,44 -25,44 -24))|0
 BasicFilename.tif
diff --git a/raster/test/regress/loader/BasicFilename.select.sql b/raster/test/regress/loader/BasicFilename.select.sql
index 9aba71d..78fd86c 100644
--- a/raster/test/regress/loader/BasicFilename.select.sql
+++ b/raster/test/regress/loader/BasicFilename.select.sql
@@ -1,5 +1,5 @@
 SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast';
 SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 90;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 45;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 50;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 25;
 SELECT foobar FROM loadedrast ORDER BY foobar;
diff --git a/raster/test/regress/loader/BasicOutDB-post.sh b/raster/test/regress/loader/BasicOutDB-post.sh
deleted file mode 100755
index bc08ce3..0000000
--- a/raster/test/regress/loader/BasicOutDB-post.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-rm -f loader/BasicOutDB.tif
-rm -f loader/BasicOutDB.opts
diff --git a/raster/test/regress/loader/BasicOutDB-pre.sh b/raster/test/regress/loader/BasicOutDB-pre.sh
deleted file mode 100755
index 7f2aa58..0000000
--- a/raster/test/regress/loader/BasicOutDB-pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-SOURCE="${BASH_SOURCE[0]}"
-while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
-DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
-
-cp loader/testraster.tif loader/BasicOutDB.tif
-
-echo "-F -C -R \"$DIR/loader/testraster.tif\"" > $DIR/BasicOutDB.opts
diff --git a/raster/test/regress/loader/BasicOutDB.select.expected b/raster/test/regress/loader/BasicOutDB.select.expected
index 949d2b5..8b22177 100644
--- a/raster/test/regress/loader/BasicOutDB.select.expected
+++ b/raster/test/regress/loader/BasicOutDB.select.expected
@@ -1,4 +1,4 @@
-0|1.0000000000|-1.0000000000|90|90|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{t,t,t}|POLYGON((0 0,90 0,90 -90,0 -90,0 0))
+0|1.0000000000|-1.0000000000|90|50|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{t,t,t}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50))
 POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255
-POLYGON((89 -89,90 -89,90 -90,89 -90,89 -89))|0
-POLYGON((44 -44,45 -44,45 -45,44 -45,44 -44))|0
+POLYGON((89 -49,90 -49,90 -50,89 -50,89 -49))|0
+POLYGON((44 -24,45 -24,45 -25,44 -25,44 -24))|0
diff --git a/raster/test/regress/loader/BasicOutDB.select.sql b/raster/test/regress/loader/BasicOutDB.select.sql
index 9148b6c..a2567a9 100644
--- a/raster/test/regress/loader/BasicOutDB.select.sql
+++ b/raster/test/regress/loader/BasicOutDB.select.sql
@@ -1,5 +1,11 @@
+WITH foo AS (
+	SELECT postgis_raster_lib_version()
+)
+SELECT NULL FROM foo;
+SET postgis.enable_outdb_rasters = true;
+SET postgis.gdal_enabled_drivers = 'GTiff';
 DELETE FROM loadedrast WHERE filename != 'testraster.tif';
 SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast';
 SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 90;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 45;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 50;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 25;
diff --git a/raster/test/regress/loader/Projected-post.sql b/raster/test/regress/loader/Projected-post.sql
new file mode 100644
index 0000000..2fc7692
--- /dev/null
+++ b/raster/test/regress/loader/Projected-post.sql
@@ -0,0 +1,4 @@
+TRUNCATE spatial_ref_sys;
+-- should this be done automatically ?
+-- "loadedrast" is removed automatically !
+DROP TABLE o_2_loadedrast;
diff --git a/raster/test/regress/loader/Projected-pre.sql b/raster/test/regress/loader/Projected-pre.sql
new file mode 100644
index 0000000..61918bd
--- /dev/null
+++ b/raster/test/regress/loader/Projected-pre.sql
@@ -0,0 +1,8 @@
+-- NOTE: the need for truncation here reveals a leak bug in previous tests
+TRUNCATE spatial_ref_sys;
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text")
+VALUES
+(4326,'EPSG',4326,'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ')
+,
+('3857','EPSG','3857','PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_nort [...]
+;
diff --git a/raster/test/regress/loader/Projected.opts b/raster/test/regress/loader/Projected.opts
new file mode 100644
index 0000000..d98e23d
--- /dev/null
+++ b/raster/test/regress/loader/Projected.opts
@@ -0,0 +1 @@
+-s :3857 -l 2
diff --git a/raster/test/regress/loader/Projected.select.expected b/raster/test/regress/loader/Projected.select.expected
new file mode 100644
index 0000000..8fe45cf
--- /dev/null
+++ b/raster/test/regress/loader/Projected.select.expected
@@ -0,0 +1,4 @@
+3857
+-14500000
+3857
+-14500000
diff --git a/raster/test/regress/loader/Projected.select.sql b/raster/test/regress/loader/Projected.select.sql
new file mode 100644
index 0000000..55b5b28
--- /dev/null
+++ b/raster/test/regress/loader/Projected.select.sql
@@ -0,0 +1,5 @@
+SELECT st_srid(rast) from loadedrast limit 1;
+SELECT st_xmin(ST_SnapToGrid(rast::geometry,1e5)) from loadedrast;
+
+SELECT st_srid(rast) from o_2_loadedrast limit 1;
+SELECT st_xmin(ST_SnapToGrid(rast::geometry,1e5)) from o_2_loadedrast;
diff --git a/raster/test/regress/loader/Projected.tif b/raster/test/regress/loader/Projected.tif
new file mode 100644
index 0000000..8b9c4e2
Binary files /dev/null and b/raster/test/regress/loader/Projected.tif differ
diff --git a/raster/test/regress/loader/Tiled10x10-post.sh b/raster/test/regress/loader/Tiled10x10-post.sh
deleted file mode 100755
index 0b4a7ca..0000000
--- a/raster/test/regress/loader/Tiled10x10-post.sh
+++ /dev/null
@@ -1 +0,0 @@
-rm -f loader/Tiled10x10.tif
diff --git a/raster/test/regress/loader/Tiled10x10-pre.sh b/raster/test/regress/loader/Tiled10x10-pre.sh
deleted file mode 100755
index d4b6129..0000000
--- a/raster/test/regress/loader/Tiled10x10-pre.sh
+++ /dev/null
@@ -1 +0,0 @@
-cp loader/testraster.tif loader/Tiled10x10.tif
diff --git a/raster/test/regress/loader/Tiled10x10.select.expected b/raster/test/regress/loader/Tiled10x10.select.expected
index ef06f3d..a66411e 100644
--- a/raster/test/regress/loader/Tiled10x10.select.expected
+++ b/raster/test/regress/loader/Tiled10x10.select.expected
@@ -1,4 +1,4 @@
-0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((90 -80,90 -90,80 -90,70 -90,60 -90,50 -90,40 -90,30 -90,20 -90,10 -90,0 -90,0 -80,0 -70,0 -60,0 -50,0 -40,0 -30,0 -20,0 -10,0 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 0,90 -10,90 -20,90 -30,90 -40,90 -50,90 -60,90 -70,90 -80))
+0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50))
 POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255
-POLYGON((0 -80,1 -80,1 -81,0 -81,0 -80))|255
-POLYGON((80 -80,81 -80,81 -81,80 -81,80 -80))|255
+POLYGON((40 -20,41 -20,41 -21,40 -21,40 -20))|0
+POLYGON((80 -40,81 -40,81 -41,80 -41,80 -40))|198
diff --git a/raster/test/regress/loader/Tiled10x10.select.sql b/raster/test/regress/loader/Tiled10x10.select.sql
index e29fd3d..3d8cc6b 100644
--- a/raster/test/regress/loader/Tiled10x10.select.sql
+++ b/raster/test/regress/loader/Tiled10x10.select.sql
@@ -1,4 +1,4 @@
 SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast';
 SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 73) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 81) foo WHERE x = 1 AND y = 1;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 23) foo WHERE x = 1 AND y = 1;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 45) foo WHERE x = 1 AND y = 1;
diff --git a/raster/test/regress/loader/Tiled10x10Copy-post.sh b/raster/test/regress/loader/Tiled10x10Copy-post.sh
deleted file mode 100755
index d0adf08..0000000
--- a/raster/test/regress/loader/Tiled10x10Copy-post.sh
+++ /dev/null
@@ -1 +0,0 @@
-rm -f loader/Tiled10x10Copy.tif
diff --git a/raster/test/regress/loader/Tiled10x10Copy-pre.sh b/raster/test/regress/loader/Tiled10x10Copy-pre.sh
deleted file mode 100755
index 2539174..0000000
--- a/raster/test/regress/loader/Tiled10x10Copy-pre.sh
+++ /dev/null
@@ -1 +0,0 @@
-cp loader/testraster.tif loader/Tiled10x10Copy.tif
diff --git a/raster/test/regress/loader/Tiled10x10Copy.select.expected b/raster/test/regress/loader/Tiled10x10Copy.select.expected
index ef06f3d..a66411e 100644
--- a/raster/test/regress/loader/Tiled10x10Copy.select.expected
+++ b/raster/test/regress/loader/Tiled10x10Copy.select.expected
@@ -1,4 +1,4 @@
-0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((90 -80,90 -90,80 -90,70 -90,60 -90,50 -90,40 -90,30 -90,20 -90,10 -90,0 -90,0 -80,0 -70,0 -60,0 -50,0 -40,0 -30,0 -20,0 -10,0 0,10 0,20 0,30 0,40 0,50 0,60 0,70 0,80 0,90 0,90 -10,90 -20,90 -30,90 -40,90 -50,90 -60,90 -70,90 -80))
+0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50))
 POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255
-POLYGON((0 -80,1 -80,1 -81,0 -81,0 -80))|255
-POLYGON((80 -80,81 -80,81 -81,80 -81,80 -80))|255
+POLYGON((40 -20,41 -20,41 -21,40 -21,40 -20))|0
+POLYGON((80 -40,81 -40,81 -41,80 -41,80 -40))|198
diff --git a/raster/test/regress/loader/Tiled10x10Copy.select.sql b/raster/test/regress/loader/Tiled10x10Copy.select.sql
index e29fd3d..3d8cc6b 100644
--- a/raster/test/regress/loader/Tiled10x10Copy.select.sql
+++ b/raster/test/regress/loader/Tiled10x10Copy.select.sql
@@ -1,4 +1,4 @@
 SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast';
 SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 73) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 81) foo WHERE x = 1 AND y = 1;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 23) foo WHERE x = 1 AND y = 1;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 45) foo WHERE x = 1 AND y = 1;
diff --git a/raster/test/regress/loader/Tiled8x8-post.sh b/raster/test/regress/loader/Tiled8x8-post.sh
deleted file mode 100755
index d27c319..0000000
--- a/raster/test/regress/loader/Tiled8x8-post.sh
+++ /dev/null
@@ -1 +0,0 @@
-rm -f loader/Tiled8x8.tif
diff --git a/raster/test/regress/loader/Tiled8x8-pre.sh b/raster/test/regress/loader/Tiled8x8-pre.sh
deleted file mode 100755
index 95ea884..0000000
--- a/raster/test/regress/loader/Tiled8x8-pre.sh
+++ /dev/null
@@ -1 +0,0 @@
-cp loader/testraster.tif loader/Tiled8x8.tif
diff --git a/raster/test/regress/loader/Tiled8x8.select.expected b/raster/test/regress/loader/Tiled8x8.select.expected
index 5dac569..a62918f 100644
--- a/raster/test/regress/loader/Tiled8x8.select.expected
+++ b/raster/test/regress/loader/Tiled8x8.select.expected
@@ -1,5 +1,5 @@
 0|1.0000000000|-1.0000000000|8|8|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|t
-POLYGON((88 0,89 0,89 -1,88 -1,88 0))|255
-POLYGON((88 0,89 0,89 -1,88 -1,88 0))|255
-POLYGON((0 -88,1 -88,1 -89,0 -89,0 -88))|255
-POLYGON((88 -88,89 -88,89 -89,88 -89,88 -88))|255
+POLYGON((88 0,89 0,89 -1,88 -1,88 0))|0
+POLYGON((88 0,89 0,89 -1,88 -1,88 0))|90
+POLYGON((56 -24,57 -24,57 -25,56 -25,56 -24))|255
+POLYGON((88 -48,89 -48,89 -49,88 -49,88 -48))|198
diff --git a/raster/test/regress/loader/Tiled8x8.select.sql b/raster/test/regress/loader/Tiled8x8.select.sql
index 25c9434..59d6142 100644
--- a/raster/test/regress/loader/Tiled8x8.select.sql
+++ b/raster/test/regress/loader/Tiled8x8.select.sql
@@ -10,11 +10,11 @@ SELECT
 	pixel_types,
 	nodata_values::numeric(16,10)[],
 	out_db,
-	ST_Equals(extent, 'POLYGON((16 -90,8 -90,0 -90,0 -88,0 -80,0 -72,0 -64,0 -56,0 -48,0 -40,0 -32,0 -24,0 -16,0 -8,0 0,8 0,16 0,24 0,32 0,40 0,48 0,56 0,64 0,72 0,80 0,88 0,90 0,90 -8,90 -16,90 -24,90 -32,90 -40,90 -48,90 -56,90 -64,90 -72,90 -80,90 -88,90 -90,88 -90,80 -90,72 -90,64 -90,56 -90,48 -90,40 -90,32 -90,24 -90,16 -90))'::geometry)
+	ST_Equals(extent, 'POLYGON((0 -50,0 0,90 0,90 -50,0 -50))'::geometry)
 FROM raster_columns
 WHERE r_table_name = 'loadedrast'
 	AND r_raster_column = 'rast';
 SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 12) foo WHERE x = 1 AND y = 1;
 SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 12) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 133) foo WHERE x = 1 AND y = 1;
-SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 144) foo WHERE x = 1 AND y = 1;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 44) foo WHERE x = 1 AND y = 1;
+SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 84) foo WHERE x = 1 AND y = 1;
diff --git a/raster/test/regress/loader/testraster.tif b/raster/test/regress/loader/testraster.tif
index 3c3a742..2a90b09 100644
Binary files a/raster/test/regress/loader/testraster.tif and b/raster/test/regress/loader/testraster.tif differ
diff --git a/raster/test/regress/permitted_gdal_drivers.sql b/raster/test/regress/permitted_gdal_drivers.sql
index 99cf19b..04717e8 100644
--- a/raster/test/regress/permitted_gdal_drivers.sql
+++ b/raster/test/regress/permitted_gdal_drivers.sql
@@ -1,4 +1,9 @@
-SET client_min_messages TO warning;
+WITH foo AS (
+	SELECT postgis_raster_lib_version()
+)
+SELECT NULL FROM foo;
+SET postgis.enable_outdb_rasters = True;
+SET postgis.gdal_enabled_drivers = 'GTiff PNG JPEG';
 
 DO $$
 DECLARE
diff --git a/raster/test/regress/permitted_gdal_drivers_expected b/raster/test/regress/permitted_gdal_drivers_expected
index 3e36835..5497a5d 100644
--- a/raster/test/regress/permitted_gdal_drivers_expected
+++ b/raster/test/regress/permitted_gdal_drivers_expected
@@ -1,10 +1,9 @@
-DO
 4326
 ERROR:  RASTER_fromGDALRaster: Could not open bytea with GDAL. Check that the bytea is of a GDAL supported format
-ERROR:  rt_raster_load_offline_data: Access to offline bands disabled
-ERROR:  rt_raster_load_offline_data: Access to offline bands disabled
+ERROR:  rt_band_load_offline_data: Cannot open offline raster: <VRTDataset rasterXSize="1000" rasterYSize="1"><VRTRasterBand band="1" subClass="VRTRawRasterBand"><SourceFilename>/etc/passwd</SourceFilename></VRTRasterBand></VRTDataset>
+ERROR:  rt_band_load_offline_data: Cannot open offline raster: <VRTDataset rasterXSize="1000" rasterYSize="1"><VRTRasterBand band="1" subClass="VRTRawRasterBand"><SourceFilename>/etc/passwd</SourceFilename></VRTRasterBand></VRTDataset>
 4326
 4326
-ERROR:  rt_raster_load_offline_data: Access to offline bands disabled
-ERROR:  rt_raster_load_offline_data: Access to offline bands disabled
+ERROR:  rt_band_load_offline_data: Cannot open offline raster: <VRTDataset rasterXSize="1000" rasterYSize="1"><VRTRasterBand band="1" subClass="VRTRawRasterBand"><SourceFilename>/etc/passwd</SourceFilename></VRTRasterBand></VRTDataset>
+ERROR:  rt_band_load_offline_data: Cannot open offline raster: <VRTDataset rasterXSize="1000" rasterYSize="1"><VRTRasterBand band="1" subClass="VRTRawRasterBand"><SourceFilename>/etc/passwd</SourceFilename></VRTRasterBand></VRTDataset>
 4326
diff --git a/raster/test/regress/rt_addband.sql b/raster/test/regress/rt_addband.sql
index b82f991..790665a 100644
--- a/raster/test/regress/rt_addband.sql
+++ b/raster/test/regress/rt_addband.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 -----------------------------------------------------------------------
@@ -183,7 +182,6 @@ SELECT * FROM ST_BandMetadata(
 SELECT (ST_DumpAsPolygons(newrast,3)).val As b3val FROM (SELECT ST_AddBand(NULL, array_agg(rast)) AS newrast FROM (SELECT ST_AsRaster(ST_Buffer(ST_Point(10,10), 34),200,200, '8BUI',i*30) As rast FROM generate_series(1,3) As i ) As foo ) As foofoo;
 
 -- out-db variants
-/*
 SELECT
 	1,
 	bandnum,
@@ -224,4 +222,38 @@ SELECT
 		ELSE NULL
 	END
 FROM ST_BandMetadata((SELECT rast FROM raster_outdb_template WHERE rid = 4), ARRAY[]::int[]);
-*/
+
+-- #3020
+SET postgis.gdal_enabled_drivers = 'GTiff';
+SET postgis.enable_outdb_rasters = true;
+WITH foo AS (
+	SELECT
+			path
+	FROM ST_BandMetadata(
+		(SELECT rast FROM raster_outdb_template WHERE rid = 1),
+	 	ARRAY[]::int[]
+	)
+	LIMIT 1
+), raster as (
+SELECT
+	ST_AddBand(
+		ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0),
+		1, foo.path, NULL::int[]
+	) AS rast
+FROM foo
+)
+SELECT
+	ST_Value(rast, 1, 1)
+FROM raster
+UNION ALL
+SELECT
+	ST_Value(rast, 6, 45)
+FROM raster
+UNION ALL
+SELECT
+	ST_Value(rast, 90, 50)
+FROM raster
+UNION ALL
+SELECT
+	ST_Value(rast, 100, 100)
+FROM raster
diff --git a/raster/test/regress/rt_addband_expected b/raster/test/regress/rt_addband_expected
index 801ce95..347fdf9 100644
--- a/raster/test/regress/rt_addband_expected
+++ b/raster/test/regress/rt_addband_expected
@@ -108,3 +108,17 @@ NOTICE:  RASTER_copyBand: Could not add band to raster. Returning original raste
 5|64BF|0|f|
 6|2BUI|0|f|
 90
+1|1|t|t
+1|2|t|t
+1|3|t|t
+2|1|t|t
+2|2|t|t
+2|3|t|t
+3|1|f|
+3|2|t|t
+4|1|t|t
+4|2|f|
+NOTICE:  Attempting to get pixel value with out of range raster coordinates: (99, 99)
+255
+90
+255
diff --git a/raster/test/regress/rt_asgdalraster.sql b/raster/test/regress/rt_asgdalraster.sql
index 5f8c99a..53982b9 100644
--- a/raster/test/regress/rt_asgdalraster.sql
+++ b/raster/test/regress/rt_asgdalraster.sql
@@ -1,3 +1,8 @@
+WITH foo AS (
+	SELECT postgis_raster_lib_version()
+)
+SELECT NULL FROM foo;
+SET postgis.gdal_enabled_drivers = 'GTiff PNG JPEG';
 SELECT CASE
 	WHEN length(
 		ST_AsGDALRaster(
diff --git a/raster/test/regress/rt_asjpeg.sql b/raster/test/regress/rt_asjpeg.sql
index 12ffd5b..f24fbb6 100644
--- a/raster/test/regress/rt_asjpeg.sql
+++ b/raster/test/regress/rt_asjpeg.sql
@@ -1,3 +1,8 @@
+WITH foo AS (
+	SELECT postgis_raster_lib_version()
+)
+SELECT NULL FROM foo;
+SET postgis.gdal_enabled_drivers = 'JPEG';
 SELECT ST_AsJPEG(NULL) IS NULL;
 SELECT CASE
 	WHEN length(
diff --git a/raster/test/regress/rt_aspng.sql b/raster/test/regress/rt_aspng.sql
index 60e6f71..30b46c7 100644
--- a/raster/test/regress/rt_aspng.sql
+++ b/raster/test/regress/rt_aspng.sql
@@ -1,3 +1,8 @@
+WITH foo AS (
+	SELECT postgis_raster_lib_version()
+)
+SELECT NULL FROM foo;
+SET postgis.gdal_enabled_drivers = 'PNG';
 SELECT ST_AsPNG(NULL) IS NULL;
 SELECT CASE
 	WHEN length(
diff --git a/raster/test/regress/rt_astiff.sql b/raster/test/regress/rt_astiff.sql
index f59fccf..6ddbc1d 100644
--- a/raster/test/regress/rt_astiff.sql
+++ b/raster/test/regress/rt_astiff.sql
@@ -1,3 +1,8 @@
+WITH foo AS (
+	SELECT postgis_raster_lib_version()
+)
+SELECT NULL FROM foo;
+SET postgis.gdal_enabled_drivers = 'GTiff';
 SELECT ST_AsTIFF(NULL) IS NULL;
 SELECT ST_AsTIFF(NULL, 'JPEG') IS NULL;
 SELECT CASE
diff --git a/raster/test/regress/rt_band_properties.sql b/raster/test/regress/rt_band_properties.sql
index 5fbeb48..d937252 100644
--- a/raster/test/regress/rt_band_properties.sql
+++ b/raster/test/regress/rt_band_properties.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2010 David Zwarg <dzwarg at azavea.com>, Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 -----------------------------------------------------------------------
diff --git a/raster/test/regress/rt_bytea.sql b/raster/test/regress/rt_bytea.sql
index 887dd4c..984209e 100644
--- a/raster/test/regress/rt_bytea.sql
+++ b/raster/test/regress/rt_bytea.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2009 Mateusz Loskot <mateusz at loskot.net>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_bytea_test (
@@ -182,10 +181,8 @@ DROP TABLE rt_bytea_test;
 -----------------------------------------------------------------------
 --- Test out-db as in-db
 -----------------------------------------------------------------------
-/*
-cannot test as by default, out-db is disabled and can only be
-overridden by an ENV variable
-
+SET postgis.gdal_enabled_drivers = 'GTiff';
+SET postgis.enable_outdb_rasters = TRUE;
 WITH foo AS (
 	SELECT
 		rid,
@@ -219,4 +216,3 @@ SELECT
 	rid
 FROM foo
 WHERE encode(outbytea, 'base64') = encode(outin, 'base64');
-*/
diff --git a/raster/test/regress/rt_count.sql b/raster/test/regress/rt_count.sql
index 39f7bd8..5c0c22b 100644
--- a/raster/test/regress/rt_count.sql
+++ b/raster/test/regress/rt_count.sql
@@ -90,4 +90,24 @@ SELECT ST_Count('test', 'rast', 1, FALSE);
 SELECT ST_Count('test', 'rast', 1);
 SELECT ST_Count('test', 'rast', FALSE);
 SELECT ST_Count('test', 'rast');
+
+SELECT ST_CountAgg(rast, 1, TRUE, 1) FROM test;
+SELECT ST_CountAgg(rast, 1, TRUE, 0) FROM test;
+SELECT ST_CountAgg(rast, 1, FALSE, 1) FROM test;
+SELECT ST_CountAgg(rast, 1, FALSE, 0) FROM test;
+SELECT ST_CountAgg(rast, 1, TRUE) FROM test;
+SELECT ST_CountAgg(rast, 1, FALSE) FROM test;
+SELECT ST_CountAgg(rast, TRUE) FROM test;
+SELECT ST_CountAgg(rast, FALSE) FROM test;
+
+SAVEPOINT test;
+SELECT ST_CountAgg(rast, 2, TRUE) FROM test;
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
+
+SAVEPOINT test;
+SELECT ST_CountAgg(rast, 1, TRUE, 2) FROM test;
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
+
 ROLLBACK;
diff --git a/raster/test/regress/rt_count_expected b/raster/test/regress/rt_count_expected
index 5e8f6c6..11c5664 100644
--- a/raster/test/regress/rt_count_expected
+++ b/raster/test/regress/rt_count_expected
@@ -8,4 +8,29 @@ BEGIN
 20
 1000
 20
+20
+20
+1000
+1000
+20
+1000
+20
+1000
+SAVEPOINT
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+NOTICE:  Invalid band index (must use 1-based). Returning NULL
+COMMIT
+RELEASE
+SAVEPOINT
+ERROR:  Sample percent must be between zero and one
+COMMIT
+RELEASE
 COMMIT
diff --git a/raster/test/regress/rt_createoverview.sql b/raster/test/regress/rt_createoverview.sql
new file mode 100644
index 0000000..3cc172c
--- /dev/null
+++ b/raster/test/regress/rt_createoverview.sql
@@ -0,0 +1,54 @@
+SET client_min_messages TO warning;
+CREATE TABLE res1 AS SELECT
+  ST_AddBand(
+    ST_MakeEmptyRaster(10, 10, x, y, 1, -1, 0, 0, 0)
+    , 1, '8BUI', 0, 0
+  ) r
+FROM generate_series(-170, 160, 10) x,
+     generate_series(80, -70, -10) y;
+SELECT addrasterconstraints('res1', 'r');
+
+SELECT ST_CreateOverview('res1', 'r', 2)::text = 'o_2_res1';
+
+SELECT ST_CreateOverview('res1', 'r', 4)::text = 'o_4_res1';
+
+SELECT ST_CreateOverview('res1', 'r', 8)::text = 'o_8_res1';
+
+SELECT ST_CreateOverview('res1', 'r', 16)::text = 'o_16_res1';
+
+SELECT r_table_name tab, r_raster_column c, srid s,
+ scale_x sx, scale_y sy,
+ blocksize_x w, blocksize_y h, same_alignment a,
+ -- regular_blocking (why not regular?)
+ --extent::box2d e,
+ st_covers(extent::box2d, 'BOX(-170 -80,170 80)'::box2d) ec,
+ st_xmin(extent::box2d) = -170 as eix,
+ st_ymax(extent::box2d) = 80 as eiy,
+ (st_xmax(extent::box2d) - 170) <= scale_x as eox,
+ --(st_xmax(extent::box2d) - 170) eoxd,
+ abs(st_ymin(extent::box2d) + 80) <= abs(scale_y) as eoy
+ --,abs(st_ymin(extent::box2d) + 80) eoyd
+ FROM raster_columns
+WHERE r_table_name like '%res1'
+ORDER BY scale_x, r_table_name;
+
+SELECT o_table_name, o_raster_column,
+       r_table_name, r_raster_column, overview_factor
+FROM raster_overviews
+WHERE r_table_name = 'res1'
+ORDER BY overview_factor;
+
+SELECT 'count',
+(SELECT count(*) r1 from res1),
+(SELECT count(*) r2 from o_2_res1),
+(SELECT count(*) r4 from o_4_res1),
+(SELECT count(*) r8 from o_8_res1),
+(SELECT count(*) r16 from o_16_res1)
+;
+
+
+DROP TABLE o_16_res1;
+DROP TABLE o_8_res1;
+DROP TABLE o_4_res1;
+DROP TABLE o_2_res1;
+DROP TABLE res1;
diff --git a/raster/test/regress/rt_createoverview_expected b/raster/test/regress/rt_createoverview_expected
new file mode 100644
index 0000000..7173bca
--- /dev/null
+++ b/raster/test/regress/rt_createoverview_expected
@@ -0,0 +1,15 @@
+t
+t
+t
+t
+t
+res1|r|0|1|-1|10|10|t|t|t|t|t|t
+o_2_res1|r|0|2|-2|10|10|t|t|t|t|t|t
+o_4_res1|r|0|4|-4|10|10|t|t|t|t|t|t
+o_8_res1|r|0|8|-8|10|10|t|t|t|t|t|t
+o_16_res1|r|0|16|-16|10|10|t|t|t|t|t|t
+o_2_res1|r|res1|r|2
+o_4_res1|r|res1|r|4
+o_8_res1|r|res1|r|8
+o_16_res1|r|res1|r|16
+count|544|136|36|10|3
diff --git a/raster/test/regress/rt_dimensions.sql b/raster/test/regress/rt_dimensions.sql
index 3e353d5..e5f7fb4 100644
--- a/raster/test/regress/rt_dimensions.sql
+++ b/raster/test/regress/rt_dimensions.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2009 Mateusz Loskot <mateusz at loskot.net>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_properties_test (
diff --git a/raster/test/regress/rt_dumpvalues.sql b/raster/test/regress/rt_dumpvalues.sql
index 1efad9b..73a130d 100644
--- a/raster/test/regress/rt_dumpvalues.sql
+++ b/raster/test/regress/rt_dumpvalues.sql
@@ -98,10 +98,9 @@ ORDER BY rid;
 
 DROP TABLE IF EXISTS raster_dumpvalues;
 
-
--- ticket #2493
 SELECT (ST_DumpValues(ST_AddBand(ST_MakeEmptyRaster(0, 0, 0, 0, 1), ARRAY[ROW(NULL, '8BUI', 255, 0),ROW(NULL, '16BUI', 1, 2)]::addbandarg[]))).*;
 
+
 -- #3086
 DROP TABLE IF EXISTS raster_tile;
 CREATE TABLE raster_tile AS
diff --git a/raster/test/regress/rt_elevation_functions_expected b/raster/test/regress/rt_elevation_functions_expected
index 0d367d5..dc5b4b2 100644
--- a/raster/test/regress/rt_elevation_functions_expected
+++ b/raster/test/regress/rt_elevation_functions_expected
@@ -1,4 +1,3 @@
-DO
 0|aspect|1|1|315.000000
 0|aspect|2|1|341.565063
 0|aspect|3|1|0.000000
diff --git a/raster/test/regress/rt_envelope.sql b/raster/test/regress/rt_envelope.sql
new file mode 100644
index 0000000..b1bf241
--- /dev/null
+++ b/raster/test/regress/rt_envelope.sql
@@ -0,0 +1,14 @@
+-- NULL raster
+SELECT ST_AsText(ST_Envelope(NULL::raster));
+
+-- width and height of zero
+SELECT ST_AsText(ST_Envelope(ST_MakeEmptyRaster(0, 0, 0, 0, 1, -1, 0, 0, 0)));
+
+-- width of zero
+SELECT ST_AsText(ST_Envelope(ST_MakeEmptyRaster(0, 9, 0, 0, 1, -1, 0, 0, 0)));
+
+-- height of zero
+SELECT ST_AsText(ST_Envelope(ST_MakeEmptyRaster(9, 0, 0, 0, 1, -1, 0, 0, 0)));
+
+-- normal raster
+SELECT ST_AsText(ST_Envelope(ST_MakeEmptyRaster(9, 9, 0, 0, 1, -1, 0, 0, 0)));
diff --git a/raster/test/regress/rt_envelope_expected b/raster/test/regress/rt_envelope_expected
new file mode 100644
index 0000000..704ad22
--- /dev/null
+++ b/raster/test/regress/rt_envelope_expected
@@ -0,0 +1,4 @@
+POINT(0 0)
+LINESTRING(0 0,0 -9)
+LINESTRING(0 0,9 0)
+POLYGON((0 0,9 0,9 -9,0 -9,0 0))
diff --git a/raster/test/regress/rt_fromgdalraster.sql b/raster/test/regress/rt_fromgdalraster.sql
index 96b049d..1d40765 100644
--- a/raster/test/regress/rt_fromgdalraster.sql
+++ b/raster/test/regress/rt_fromgdalraster.sql
@@ -1,3 +1,8 @@
+WITH foo AS (
+	SELECT postgis_raster_lib_version()
+)
+SELECT NULL FROM foo;
+SET postgis.gdal_enabled_drivers = 'GTiff PNG';
 /*
 Driver: PNG/Portable Network Graphics
 Files: testraster.png
diff --git a/raster/test/regress/rt_georeference.sql b/raster/test/regress/rt_georeference.sql
index da66c47..1b029cf 100644
--- a/raster/test/regress/rt_georeference.sql
+++ b/raster/test/regress/rt_georeference.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2009-2010 Mateusz Loskot <mateusz at loskot.net>, David Zwarg <dzwarg at azavea.com>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_properties_test (
diff --git a/raster/test/regress/rt_gist_relationships.sql b/raster/test/regress/rt_gist_relationships.sql
index 1bf79f8..d169bc3 100644
--- a/raster/test/regress/rt_gist_relationships.sql
+++ b/raster/test/regress/rt_gist_relationships.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2009 Sandro Santilli <strk at keybit.net>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TYPE tile AS (x int, y int, tile raster);
diff --git a/raster/test/regress/rt_hasnoband.sql b/raster/test/regress/rt_hasnoband.sql
index fc1a257..d388d79 100644
--- a/raster/test/regress/rt_hasnoband.sql
+++ b/raster/test/regress/rt_hasnoband.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE empty_raster_test (
diff --git a/raster/test/regress/rt_histogram_expected b/raster/test/regress/rt_histogram_expected
index 2a73a63..0eaf6cb 100644
--- a/raster/test/regress/rt_histogram_expected
+++ b/raster/test/regress/rt_histogram_expected
@@ -76,16 +76,25 @@ BEGIN
 -5.619|-1.239|0|0.000
 -1.239|3.142|10|0.500
 SAVEPOINT
-NOTICE:  Invalid band index (must use 1-based). Returning NULL
-ERROR:  RASTER_histogramCoverage: Could not get summary stats of coverage
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+ERROR:  RASTER_histogramCoverage: Cannot get summary stats of coverage
 COMMIT
 RELEASE
 SAVEPOINT
-ERROR:  relation "test1" does not exist at character 20
+ERROR:  relation "test1" does not exist at character 82
 COMMIT
 RELEASE
 SAVEPOINT
-ERROR:  column "rast1" does not exist at character 8
+ERROR:  column "rast1" does not exist at character 50
 COMMIT
 RELEASE
 COMMIT
diff --git a/raster/test/regress/rt_isempty.sql b/raster/test/regress/rt_isempty.sql
index fa50702..5304921 100644
--- a/raster/test/regress/rt_isempty.sql
+++ b/raster/test/regress/rt_isempty.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE empty_raster_test (
diff --git a/raster/test/regress/rt_mapalgebra.sql b/raster/test/regress/rt_mapalgebra.sql
index edb8e80..2fd873f 100644
--- a/raster/test/regress/rt_mapalgebra.sql
+++ b/raster/test/regress/rt_mapalgebra.sql
@@ -697,6 +697,6 @@ SELECT
 FROM raster_nmapalgebra_in
 WHERE rid IN (2);
 
-DROP FUNCTION IF EXISTS raster_nmapalgebra_test(double precision[], int[], text[]);
-DROP FUNCTION IF EXISTS raster_nmapalgebra_test_bad_return(double precision[], int[], text[]);
-DROP TABLE IF EXISTS raster_nmapalgebra_in;
+DROP FUNCTION IF EXISTS raster_nmapalgebra_test(double precision[], int[], text[]); 
+DROP FUNCTION IF EXISTS raster_nmapalgebra_test_bad_return(double precision[], int[], text[]); 
+DROP TABLE IF EXISTS raster_nmapalgebra_in; 
diff --git a/raster/test/regress/rt_mapalgebra_expected b/raster/test/regress/rt_mapalgebra_expected
index cd67415..b7c103a 100644
--- a/raster/test/regress/rt_mapalgebra_expected
+++ b/raster/test/regress/rt_mapalgebra_expected
@@ -125,12 +125,10 @@ NOTICE:  value = {{{200,200,300},{200,200,300},{NULL,NULL,NULL}}}
 NOTICE:  pos = [0:1][1:2]={{2,2},{4,4}}
 NOTICE:  userargs = {1000}
 NOTICE:  record = (17,"(2,-4,2,2,1,-1,0,0,0,1)","(32BUI,0,f,)",1000)
-DO
 NOTICE:  value = {{{1}},{{2}}}
 NOTICE:  pos = [0:2][1:2]={{1,1},{2,2},{1,1}}
 NOTICE:  userargs = <NULL>
 20|21|(1,-1,1,1,1,-1,0,0,0,1)|(16BUI,0,f,)
-NOTICE:  rt_raster_iterator: Computed raster for intersection extent is empty
 NOTICE:  Raster provided has no bands
 20|22|(0,0,0,0,0,0,0,0,0,0)|(,,,)
 NOTICE:  value = {{{2}},{{3}}}
@@ -266,7 +264,6 @@ NOTICE:  value = {{{NULL}},{{NULL}},{{3}}}
 NOTICE:  pos = [0:3][1:2]={{2,2},{2,4},{1,3},{2,2}}
 NOTICE:  userargs = <NULL>
 20|21|22|(0,-2,2,2,1,-1,0,0,0,1)|(16BUI,0,f,)
-NOTICE:  rt_raster_iterator: Computed raster for intersection extent is empty
 NOTICE:  Raster provided has no bands
 20|21|22|(0,0,0,0,0,0,0,0,0,0)|(,,,)
 NOTICE:  value = {{{1}},{{10}},{{100}}}
diff --git a/raster/test/regress/rt_mapalgebra_mask.sql b/raster/test/regress/rt_mapalgebra_mask.sql
new file mode 100644
index 0000000..5436836
--- /dev/null
+++ b/raster/test/regress/rt_mapalgebra_mask.sql
@@ -0,0 +1,93 @@
+SET client_min_messages TO warning;
+
+DROP TABLE IF EXISTS raster_nmapalgebra_in;
+CREATE TABLE raster_nmapalgebra_mask_in (
+	rid integer,
+	rast raster
+);
+
+INSERT INTO raster_nmapalgebra_mask_in
+	SELECT 0, NULL::raster AS rast UNION ALL
+	SELECT 1, ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0) AS rast UNION ALL
+	SELECT 2, ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0) AS rast UNION ALL
+	SELECT 3, ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 1, -1, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '32BF', 20, 0) AS rast UNION ALL
+	SELECT 4, ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 1, -1, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '32BF', 20, 0), 3, '16BUI', 200, 0) AS rast
+;
+
+CREATE OR REPLACE FUNCTION raster_nmapalgebra_test(
+	value double precision[][][],
+	pos int[][],
+	VARIADIC userargs text[]
+)
+	RETURNS double precision
+	AS $$
+	BEGIN
+		RAISE NOTICE 'value = %', value;
+		RAISE NOTICE 'pos = %', pos;
+		RAISE NOTICE 'userargs = %', userargs;
+
+		IF userargs IS NULL OR array_length(userargs, 1) < 1 THEN
+			RETURN 255;
+		ELSE
+			RETURN userargs[array_lower(userargs, 1)];
+		END IF;
+	END;
+	$$ LANGUAGE 'plpgsql' IMMUTABLE;
+
+SET client_min_messages TO notice;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1,1],[1,1],[1,1]]::double precision[],false) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1,1,1],[1,1,1]]::double precision[],false) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]]::double precision[],false) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,NULL::double precision[],false) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[NULL]::double precision[],false) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[1]::double precision[],false) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1]]::double precision[],false) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[NULL]]::double precision[],false) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1,1,1],[1,1,1],[1,1,1]]::double precision[],false) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1,0,0],[0,0,0],[0,0,0]]::double precision[],false) from raster_nmapalgebra_mask_in;
+
+
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1,1],[1,1],[1,1]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1,1,1],[1,1,1]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,NULL::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[NULL]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[1]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[NULL]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1,1,1],[1,1,1],[1,1,1]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[1,0,0],[0,0,0],[0,0,0]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[.5,.5],[.5,.5],[.5,.5]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[.5,.5,.5],[.5,.5,.5]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[.5]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[.5]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[.5,.5,.5],[.5,.5,.5],[.5,.5,.5]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[], int[], text[])'::regprocedure,ARRAY[[.5,0,0],[0,0,0],[0,0,0]]::double precision[],true) from raster_nmapalgebra_mask_in;
+
+DROP FUNCTION IF EXISTS raster_nmapalgebra_test(double precision[], int[], text[]);
+DROP TABLE IF EXISTS raster_nmapalgebra_mask_in;
\ No newline at end of file
diff --git a/raster/test/regress/rt_mapalgebra_mask_expected b/raster/test/regress/rt_mapalgebra_mask_expected
new file mode 100644
index 0000000..ae8869a
--- /dev/null
+++ b/raster/test/regress/rt_mapalgebra_mask_expected
@@ -0,0 +1,595 @@
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask dimenstions must be odd.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask dimenstions must be odd.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask dimenstions must be odd.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask Must be a 2D array.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask Must be a 2D array.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,1,1},{NULL,1,1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{1,1,NULL},{1,1,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,1,1},{NULL,1,1},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1,1,NULL},{1,1,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,2,2},{NULL,2,2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{2,2,NULL},{2,2,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,2,2},{NULL,2,2},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2,2,NULL},{2,2,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,2,2},{NULL,2,2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{2,2,NULL},{2,2,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,2,2},{NULL,2,2},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2,2,NULL},{2,2,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2,NULL,NULL},{NULL,NULL,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask dimenstions must be odd.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask dimenstions must be odd.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask Must be a 2D array.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask Must be a 2D array.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,1,1},{NULL,1,1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{1,1,NULL},{1,1,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,1,1},{NULL,1,1},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1,1,NULL},{1,1,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,2,2},{NULL,2,2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{2,2,NULL},{2,2,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,2,2},{NULL,2,2},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2,2,NULL},{2,2,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,2,2},{NULL,2,2}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{2,2,NULL},{2,2,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,2,2},{NULL,2,2},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2,2,NULL},{2,2,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,0,0},{NULL,0,0}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{0,0,NULL},{0,0,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,0,0},{NULL,0,0},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1,0,NULL},{0,0,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,0,0},{NULL,0,0}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{0,0,NULL},{0,0,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,0,0},{NULL,0,0},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2,0,NULL},{0,0,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,0,0},{NULL,0,0}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{0,0,NULL},{0,0,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,0,0},{NULL,0,0},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{2,0,NULL},{0,0,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask dimenstions must be odd.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask dimenstions must be odd.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+ERROR:  RASTER_nMapAlgerbra: Mask Must be a 2D array.
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{0.5}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{0.5}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{0.5}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{0.5}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,0.5,0.5},{NULL,0.5,0.5}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{0.5,0.5,NULL},{0.5,0.5,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,0.5,0.5},{NULL,0.5,0.5},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{0.5,0.5,NULL},{0.5,0.5,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,1,1},{NULL,1,1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{1,1,NULL},{1,1,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,1,1},{NULL,1,1},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1,1,NULL},{1,1,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,1,1},{NULL,1,1}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{1,1,NULL},{1,1,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,1,1},{NULL,1,1},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1,1,NULL},{1,1,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+NOTICE:  First argument (nband) of rastbandarg at index 0 is NULL. Assuming NULL raster
+NOTICE:  All input rasters are NULL. Returning NULL
+NOTICE:  All input rasters do not have bands at indicated indexes. Returning empty raster
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,0,0},{NULL,0,0}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{0,0,NULL},{0,0,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,0,0},{NULL,0,0},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{0.5,0,NULL},{0,0,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,0,0},{NULL,0,0}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{0,0,NULL},{0,0,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,0,0},{NULL,0,0},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1,0,NULL},{0,0,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{NULL,0,0},{NULL,0,0}}}
+NOTICE:  pos = [0:1][1:2]={{1,1},{1,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,NULL,NULL},{0,0,NULL},{0,0,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,1},{2,1}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{NULL,0,0},{NULL,0,0},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{1,2},{1,2}}
+NOTICE:  userargs = <NULL>
+NOTICE:  value = {{{1,0,NULL},{0,0,NULL},{NULL,NULL,NULL}}}
+NOTICE:  pos = [0:1][1:2]={{2,2},{2,2}}
+NOTICE:  userargs = <NULL>
+0100000000000000000000F03F000000000000F0BF00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0100000100000000000000F03F000000000000F0BF000000000000000000000000000000000000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
+0100000100000000000000F03F000000000000F0BF000000000000F03F000000000000F0BF0000000000000000000000000000000000000000020002004400FFFFFFFF
diff --git a/raster/test/regress/rt_pixelsize.sql b/raster/test/regress/rt_pixelsize.sql
index 78aa4eb..7505105 100644
--- a/raster/test/regress/rt_pixelsize.sql
+++ b/raster/test/regress/rt_pixelsize.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2011 David Zwarg <dzwarg at azavea.com>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_properties_test (
diff --git a/raster/test/regress/rt_pixelvalue.sql b/raster/test/regress/rt_pixelvalue.sql
index e32d0dd..795dd8c 100644
--- a/raster/test/regress/rt_pixelvalue.sql
+++ b/raster/test/regress/rt_pixelvalue.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
@@ -15,11 +14,10 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2009 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
diff --git a/raster/test/regress/rt_quantile_expected b/raster/test/regress/rt_quantile_expected
index 27117ac..18d6010 100644
--- a/raster/test/regress/rt_quantile_expected
+++ b/raster/test/regress/rt_quantile_expected
@@ -95,16 +95,17 @@ BEGIN
 3.142
 3.142
 SAVEPOINT
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
 NOTICE:  Invalid band index (must use 1-based). Returning NULL
-ERROR:  RASTER_quantileCoverage: Could not get summary stats of coverage
 COMMIT
 RELEASE
 SAVEPOINT
-ERROR:  relation "test_quantile1" does not exist at character 20
+ERROR:  relation "test_quantile1" does not exist at character 82
 COMMIT
 RELEASE
 SAVEPOINT
-ERROR:  column "rast2" does not exist at character 8
+ERROR:  column "rast2" does not exist at character 50
 COMMIT
 RELEASE
 SAVEPOINT
diff --git a/raster/test/regress/rt_reclass.sql b/raster/test/regress/rt_reclass.sql
index 4dd85c7..8dc1213 100644
--- a/raster/test/regress/rt_reclass.sql
+++ b/raster/test/regress/rt_reclass.sql
@@ -16,7 +16,7 @@ FROM (
 			10, 10, 12
 		),
 		ROW(1, '0-100:1-10, 101-500:11-150,501 - 10000: 151-254', '8BUI', 255)
-	) AS rast
+	) AS rast  OFFSET 0
 ) AS t;
 SELECT
 	ST_Value(t.rast, 1, 1, 1),
@@ -43,7 +43,7 @@ FROM (
 			2, 10, 10, 12
 		),
 		ROW(2, '0-100:1-10, 101-500:11-150,501 - 10000: 151-254', '8BUI', 255)
-	) AS rast
+	) AS rast   OFFSET 0
 ) AS t;
 SELECT
 	ST_Value(t.rast, 1, 1, 1),
@@ -71,7 +71,7 @@ FROM (
 		),
 		ROW(1, '0:1', '8BUI', 255),
 		ROW(2, '0-100:1-10, 101-500:11-150,501 - 10000: 151-254', '8BUI', 255)
-	) AS rast
+	) AS rast   OFFSET 0
 ) AS t;
 SELECT
 	ST_Value(t.rast, 1, 1, 1),
@@ -90,7 +90,7 @@ FROM (
 			1, 10, 10, 0
 		),
 		ROW(1, '0-100]:200-255,(100-200]:100-200,(200-255]:0-100', '8BUI', NULL)
-	) AS rast
+	) AS rast  OFFSET 0
 ) AS t;
 SELECT
 	ST_Value(t.rast, 1, 1, 1),
@@ -109,7 +109,7 @@ FROM (
 			1, 10, 10, 2.71828
 		),
 		ROW(1, '-10000--100]:1-50,(-100-1000]:50-150,(1000-10000]:150-254', '8BUI', 0)
-	) AS rast
+	) AS rast  OFFSET 0
 ) AS t;
 SELECT
 	ST_Value(t.rast, 1, 1, 1),
@@ -147,7 +147,7 @@ FROM (
 			1, 10, 10, 2.71828
 		),
 		ROW(1, 'a-100]:50-1,(-100-1000]:150-50,(1000-10000]:254-150', '8BUI', 0)
-	) AS rast
+	) AS rast OFFSET 0
 ) AS t;
 SELECT
 	ST_Value(t.rast, 1, 1, 1),
@@ -166,30 +166,31 @@ FROM (
 			1, 10, 10, 2.71828
 		),
 		ROW(2, '-10000--100]:50-1,(-100-1000]:150-50,(1000-10000]:254-150', '8BUI', 0)
-	) AS rast
+	) AS rast OFFSET 0
 ) AS t;
 
 -- ticket #2555
 SELECT
 	ST_Value(rast, 1, 2, 2),
- 	ST_Value(rast, 1, 3, 3),
- 	ST_Value(rast, 1, 4, 4)
+	ST_Value(rast, 1, 3, 3),
+	ST_Value(rast, 1, 4, 4)
 FROM (
- 	SELECT ST_Reclass(
-	 	ST_SetValues(
+	SELECT ST_Reclass(
+		ST_SetValues(
 		 	ST_AddBand(
 			 	ST_MakeEmptyRaster(5, 5, 10, 10, 2, 2, 0, 0, 0),
-			 	1, '32BF', 1, -9999
+				1, '32BF', 1, -9999
 			),
-		 	1, 1, 1,
-		 	ARRAY[
-			 	[1, 1, 1, 1, 1],
+			1, 1, 1,
+			ARRAY[
+				[1, 1, 1, 1, 1],
 				[1, 9000, 1, 1, 1],
-			 	[1, 1, -9000, 1, 1],
-			 	[1, 1, 1, 9000, 1],
-			 	[1, 1, 1, 1, 1]
+				[1, 1, -9000, 1, 1],
+				[1, 1, 1, 9000, 1],
+				[1, 1, 1, 1, 1]
 			]::double precision[]
 		),
-	 	1, '[-9000-9000]:[-900-900]', '32BF'
-	) AS rast
+
+		1, '[-9000-9000]:[-900-900]', '32BF'
+	) AS rast OFFSET 0
 ) AS t;
diff --git a/raster/test/regress/rt_rotation.sql b/raster/test/regress/rt_rotation.sql
index eee5ec9..80c35b7 100644
--- a/raster/test/regress/rt_rotation.sql
+++ b/raster/test/regress/rt_rotation.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2009 Mateusz Loskot <mateusz at loskot.net>
 -- Copyright (c) 2011 David Zwarg <dzwarg at azavea.com>
@@ -16,7 +15,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_properties_test (
diff --git a/raster/test/regress/rt_scale.sql b/raster/test/regress/rt_scale.sql
index b7069d1..aeb35a1 100644
--- a/raster/test/regress/rt_scale.sql
+++ b/raster/test/regress/rt_scale.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2009 Mateusz Loskot <mateusz at loskot.net>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_properties_test (
diff --git a/raster/test/regress/rt_set_band_properties.sql b/raster/test/regress/rt_set_band_properties.sql
index 3e3841d..34a1375 100644
--- a/raster/test/regress/rt_set_band_properties.sql
+++ b/raster/test/regress/rt_set_band_properties.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2010 David Zwarg <dzwarg at azavea.com>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 -----------------------------------------------------------------------
diff --git a/raster/test/regress/rt_set_properties.sql b/raster/test/regress/rt_set_properties.sql
index 21f7283..daba4c4 100644
--- a/raster/test/regress/rt_set_properties.sql
+++ b/raster/test/regress/rt_set_properties.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2010 David Zwarg <dzwarg at azavea.com>, Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_properties_test (
diff --git a/raster/test/regress/rt_summarystats.sql b/raster/test/regress/rt_summarystats.sql
index a510375..a4074b2 100644
--- a/raster/test/regress/rt_summarystats.sql
+++ b/raster/test/regress/rt_summarystats.sql
@@ -229,4 +229,140 @@ SELECT
 FROM ST_SummaryStats('test_summarystats', 'rast1');
 ROLLBACK TO SAVEPOINT test;
 RELEASE SAVEPOINT test;
+SAVEPOINT test;
+
+SELECT
+	(stats).count,
+	round((stats).sum::numeric, 3),
+	round((stats).mean::numeric, 3),
+	round((stats).stddev::numeric, 3),
+	round((stats).min::numeric, 3),
+	round((stats).max::numeric, 3)
+FROM (
+	SELECT
+		ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats
+	FROM test_summarystats
+) foo;
+
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
+SAVEPOINT test;
+
+SELECT
+	(stats).count,
+	round((stats).sum::numeric, 3),
+	round((stats).mean::numeric, 3),
+	round((stats).stddev::numeric, 3),
+	round((stats).min::numeric, 3),
+	round((stats).max::numeric, 3)
+FROM (
+	SELECT
+		ST_SummaryStatsAgg(rast, TRUE, 1) AS stats
+	FROM test_summarystats
+) foo;
+
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
+SAVEPOINT test;
+
+SELECT
+	(stats).count,
+	round((stats).sum::numeric, 3),
+	round((stats).mean::numeric, 3),
+	round((stats).stddev::numeric, 3),
+	round((stats).min::numeric, 3),
+	round((stats).max::numeric, 3)
+FROM (
+	SELECT
+		ST_SummaryStatsAgg(rast, 1, TRUE) AS stats
+	FROM test_summarystats
+) foo;
+
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
+SAVEPOINT test;
+
+SELECT
+	(stats).count,
+	round((stats).sum::numeric, 3),
+	round((stats).mean::numeric, 3),
+	round((stats).stddev::numeric, 3),
+	round((stats).min::numeric, 3),
+	round((stats).max::numeric, 3)
+FROM (
+	SELECT
+		ST_SummaryStatsAgg(rast, 1, FALSE, 1) AS stats
+	FROM test_summarystats
+) foo;
+
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
+SAVEPOINT test;
+
+SELECT
+	(stats).count,
+	round((stats).sum::numeric, 3),
+	round((stats).mean::numeric, 3),
+	round((stats).stddev::numeric, 3),
+	round((stats).min::numeric, 3),
+	round((stats).max::numeric, 3)
+FROM (
+	SELECT
+		ST_SummaryStatsAgg(rast, FALSE, 1) AS stats
+	FROM test_summarystats
+) foo;
+
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
+SAVEPOINT test;
+
+SELECT
+	(stats).count,
+	round((stats).sum::numeric, 3),
+	round((stats).mean::numeric, 3),
+	round((stats).stddev::numeric, 3),
+	round((stats).min::numeric, 3),
+	round((stats).max::numeric, 3)
+FROM (
+	SELECT
+		ST_SummaryStatsAgg(rast, 1, FALSE) AS stats
+	FROM test_summarystats
+) foo;
+
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
+SAVEPOINT test;
+
+SELECT
+	(stats).count,
+	round((stats).sum::numeric, 3),
+	round((stats).mean::numeric, 3),
+	round((stats).stddev::numeric, 3),
+	round((stats).min::numeric, 3),
+	round((stats).max::numeric, 3)
+FROM (
+	SELECT
+		ST_SummaryStatsAgg(rast, 1, TRUE, 2) AS stats
+	FROM test_summarystats
+) foo;
+
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
+SAVEPOINT test;
+
+SELECT
+	(stats).count,
+	round((stats).sum::numeric, 3),
+	round((stats).mean::numeric, 3),
+	round((stats).stddev::numeric, 3),
+	round((stats).min::numeric, 3),
+	round((stats).max::numeric, 3)
+FROM (
+	SELECT
+		ST_SummaryStatsAgg(rast, 2, TRUE, 1) AS stats
+	FROM test_summarystats
+) foo;
+
+ROLLBACK TO SAVEPOINT test;
+RELEASE SAVEPOINT test;
 ROLLBACK;
diff --git a/raster/test/regress/rt_summarystats_expected b/raster/test/regress/rt_summarystats_expected
index f0f5669..bf0f926 100644
--- a/raster/test/regress/rt_summarystats_expected
+++ b/raster/test/regress/rt_summarystats_expected
@@ -16,16 +16,67 @@ BEGIN
 20|-68.584|-3.429|6.571|-10.000|3.142
 20|-68.584|-3.429|6.571|-10.000|3.142
 SAVEPOINT
-NOTICE:  Invalid band index (must use 1-based). Returning NULL
-|||||
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+0|||||
+COMMIT
+RELEASE
+SAVEPOINT
+ERROR:  relation "test1" does not exist at character 82
+COMMIT
+RELEASE
+SAVEPOINT
+ERROR:  column "rast1" does not exist at character 50
+COMMIT
+RELEASE
+SAVEPOINT
+20|-68.584|-3.429|6.571|-10.000|3.142
+COMMIT
+RELEASE
+SAVEPOINT
+20|-68.584|-3.429|6.571|-10.000|3.142
+COMMIT
+RELEASE
+SAVEPOINT
+20|-68.584|-3.429|6.571|-10.000|3.142
+COMMIT
+RELEASE
+SAVEPOINT
+1000|-68.584|-0.069|1.046|-10.000|3.142
+COMMIT
+RELEASE
+SAVEPOINT
+1000|-68.584|-0.069|1.046|-10.000|3.142
+COMMIT
+RELEASE
+SAVEPOINT
+1000|-68.584|-0.069|1.046|-10.000|3.142
 COMMIT
 RELEASE
 SAVEPOINT
-ERROR:  relation "test1" does not exist at character 20
+ERROR:  Invalid sample percentage (must be between 0 and 1). Returning NULL
 COMMIT
 RELEASE
 SAVEPOINT
-ERROR:  column "rast1" does not exist at character 8
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+NOTICE:  Raster does not have band at index 2. Skipping raster
+0|||||
 COMMIT
 RELEASE
 COMMIT
diff --git a/raster/test/regress/rt_upperleft.sql b/raster/test/regress/rt_upperleft.sql
index ab1d8c1..251484c 100644
--- a/raster/test/regress/rt_upperleft.sql
+++ b/raster/test/regress/rt_upperleft.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2009 Mateusz Loskot <mateusz at loskot.net>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_properties_test (
diff --git a/raster/test/regress/rt_utility.sql b/raster/test/regress/rt_utility.sql
index 7e016ed..bf297f6 100644
--- a/raster/test/regress/rt_utility.sql
+++ b/raster/test/regress/rt_utility.sql
@@ -1,5 +1,4 @@
 -----------------------------------------------------------------------
--- $Id$
 --
 -- Copyright (c) 2010 Pierre Racine <pierre.racine at sbf.ulaval.ca>
 --
@@ -15,7 +14,7 @@
 --
 -- You should have received a copy of the GNU General Public License
 -- along with this program; if not, write to the Free Software Foundation,
--- Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+-- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 -----------------------------------------------------------------------
 
 CREATE TABLE rt_utility_test (
@@ -428,13 +427,21 @@ SELECT ST_Summary(
 		, 1, '8BUI', 1, 0
 	)
 );
-/*
 SELECT
 	rid,
 	ST_Summary(rast)
 FROM raster_outdb_template
 ORDER BY rid;
-*/
 
-SELECT 'bandpath1', trim(both ' ' from ST_BandPath(ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0)));
---SELECT 'bandpath2', right(ST_BandPath(rast), 14) from raster_outdb_template order by rid;
+-----------------------------------------------------------------------
+-- st_memsize()
+-----------------------------------------------------------------------
+
+SELECT 'ms1', ST_MemSize(ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0));
+
+-----------------------------------------------------------------------
+-- st_bandpath()
+-----------------------------------------------------------------------
+
+SELECT 'bandpath1', right(ST_BandPath(ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0)), 14);
+SELECT 'bandpath2', right(ST_BandPath(rast), 14) from raster_outdb_template order by rid;
diff --git a/raster/test/regress/rt_utility_expected b/raster/test/regress/rt_utility_expected
index f261ed8..2eb99e5 100644
--- a/raster/test/regress/rt_utility_expected
+++ b/raster/test/regress/rt_utility_expected
@@ -37,5 +37,24 @@ Raster of 10x10 pixels has 3 bands and extent of BOX(0 -10,10 0)
     band 3 of pixtype 16BSI is in-db with no NODATA value
 Skewed raster of 10x10 pixels has 1 band and extent of BOX(0 -10,10 0.0001)
     band 1 of pixtype 8BUI is in-db with NODATA value of 0
+1|Raster of 90x50 pixels has 3 bands and extent of BOX(0 -50,90 0)
+    band 1 of pixtype 8BUI is out-db with no NODATA value
+    band 2 of pixtype 8BUI is out-db with no NODATA value
+    band 3 of pixtype 8BUI is out-db with no NODATA value
+2|Raster of 90x50 pixels has 3 bands and extent of BOX(0 -50,90 0)
+    band 1 of pixtype 8BUI is out-db with no NODATA value
+    band 2 of pixtype 8BUI is out-db with no NODATA value
+    band 3 of pixtype 8BUI is out-db with no NODATA value
+3|Raster of 90x50 pixels has 2 bands and extent of BOX(0 -50,90 0)
+    band 1 of pixtype 8BUI is in-db with NODATA value of 0
+    band 2 of pixtype 8BUI is out-db with no NODATA value
+4|Raster of 90x50 pixels has 2 bands and extent of BOX(0 -50,90 0)
+    band 1 of pixtype 8BUI is out-db with NODATA value of 255
+    band 2 of pixtype 8BUI is in-db with NODATA value of 0
+ms1|64
 NOTICE:  Could not find raster band of index 1 when getting band path. Returning NULL
 bandpath1|
+bandpath2|testraster.tif
+bandpath2|testraster.tif
+bandpath2|
+bandpath2|testraster.tif
diff --git a/raster/test/regress/tickets.sql b/raster/test/regress/tickets.sql
index 33ef7c9..cba9b72 100644
--- a/raster/test/regress/tickets.sql
+++ b/raster/test/regress/tickets.sql
@@ -1,12 +1,21 @@
--- #1485
+/******************************************************************************
+ #1485
+******************************************************************************/
+
 SELECT '#1485', count(*) FROM geometry_columns
 WHERE f_table_name = 'raster_columns';
 
--- #2532
+/******************************************************************************
+ #2532
+******************************************************************************/
+
 SELECT '#2532.1', NULL::raster @ null::geometry;
 SELECT '#2532.2', NULL::geometry @ null::raster;
 
--- #2911
+/******************************************************************************
+ #2911
+******************************************************************************/
+
 WITH data AS ( SELECT '#2911' l, ST_Metadata(ST_Rescale(
  ST_AddBand(
   ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0),
@@ -17,30 +26,33 @@ WITH data AS ( SELECT '#2911' l, ST_Metadata(ST_Rescale(
  )) m
 ) SELECT l, (m).* FROM data;
 
--- #3006
+/******************************************************************************
+ #3006
+******************************************************************************/
+
 SET client_min_messages TO ERROR;
 
 DROP TABLE IF EXISTS test_raster_scale_regular;
+DROP TABLE IF EXISTS test_raster_scale_big;
+DROP TABLE IF EXISTS test_raster_scale_small;
+
 CREATE TABLE test_raster_scale_regular (
-	rid integer,
-	rast raster
+  rid integer,
+ 	rast raster
 );
 
-DROP TABLE IF EXISTS test_raster_scale_big;
 CREATE TABLE test_raster_scale_big (
-	rid integer,
-	rast raster
+  rid integer,
+ 	rast raster
 );
 
-DROP TABLE IF EXISTS test_raster_scale_small;
 CREATE TABLE test_raster_scale_small (
-	rid integer,
-	rast raster
+ 	rid integer,
+ 	rast raster
 );
 
-
 CREATE OR REPLACE FUNCTION make_test_raster(
-	table_suffix text,
+  table_suffix text,
 	rid integer,
   scale_x double precision,
   scale_y double precision DEFAULT 1.0
@@ -49,19 +61,19 @@ RETURNS void
 AS $$
 DECLARE
 	rast raster;
-	width integer := 2;
-	height integer := 2;
-	ul_x double precision := 0;
-	ul_y double precision := 0;
-	skew_x double precision := 0;
-	skew_y double precision := 0;
-	initvalue double precision := 1;
-	nodataval double precision := 0;
+ 	width integer := 2;
+ 	height integer := 2;
+ 	ul_x double precision := 0;
+ 	ul_y double precision := 0;
+ 	skew_x double precision := 0;
+ 	skew_y double precision := 0;
+ 	initvalue double precision := 1;
+ 	nodataval double precision := 0;
 BEGIN
 	rast := ST_MakeEmptyRaster(width, height, ul_x, ul_y, scale_x, scale_y, skew_x, skew_y, 0);
 	rast := ST_AddBand(rast, 1, '8BUI', initvalue, nodataval);
 
-	EXECUTE 'INSERT INTO test_raster_scale_' || table_suffix || ' VALUES ($1, $2)' USING rid, rast;
+	EXECUTE format('INSERT INTO test_raster_scale_%s VALUES (%L, %L)', table_suffix, rid, rast);
 	RETURN;
 END;
 $$ LANGUAGE 'plpgsql';
@@ -71,18 +83,18 @@ SELECT make_test_raster('regular', 1, 1.0000001);
 SELECT make_test_raster('regular', 2, 0.9999999);
 SELECT AddRasterConstraints('test_raster_scale_regular'::name, 'rast'::name, 'scale_x', 'scale_y');
 SELECT r_table_name, r_raster_column, scale_x, scale_y FROM raster_columns
-	WHERE  r_raster_column = 'rast' AND r_table_name = 'test_raster_scale_regular';
+  WHERE  r_raster_column = 'rast' AND r_table_name = 'test_raster_scale_regular';
 
--- Issues enforce_scalex_rast constraint violation
+-- Issues enforce_scaley_rast constraint violation
 SELECT make_test_raster('regular', 3, 1.001, 0.9999999);
 
-SELECT make_test_raster('big', 0, -12345678901234.0);
+SELECT make_test_raster('big', 0, -1234567890123456789.0);
 SELECT AddRasterConstraints('test_raster_scale_big'::name, 'rast'::name, 'scale_x', 'scale_y');
 SELECT r_table_name, r_raster_column, scale_x, scale_y FROM raster_columns
   WHERE  r_raster_column = 'rast' AND r_table_name = 'test_raster_scale_big';
 
 -- Issues enforce_scalex_rast constraint violation
-SELECT make_test_raster('big', 1, -123456789012345.0);
+SELECT make_test_raster('big', 1, -12345678901234567890.0);
 
 SELECT make_test_raster('small', 0, 0.00001);
 SELECT make_test_raster('small', 1, 0.000011);
diff --git a/raster/test/regress/tickets_expected b/raster/test/regress/tickets_expected
index 4596f2a..f758838 100644
--- a/raster/test/regress/tickets_expected
+++ b/raster/test/regress/tickets_expected
@@ -7,7 +7,7 @@ t
 test_raster_scale_regular|rast||1
 ERROR:  new row for relation "test_raster_scale_regular" violates check constraint "enforce_scaley_rast"
 t
-test_raster_scale_big|rast|-12345678901234|1
+test_raster_scale_big|rast|-1.23456789012346e+18|1
 ERROR:  new row for relation "test_raster_scale_big" violates check constraint "enforce_scalex_rast"
 t
 test_raster_scale_small|rast||1
diff --git a/regress/Makefile.in b/regress/Makefile.in
index b2e5ce3..f7e8ae8 100644
--- a/regress/Makefile.in
+++ b/regress/Makefile.in
@@ -17,12 +17,14 @@ TMPDIR?=/tmp
 
 POSTGIS_PGSQL_VERSION=@POSTGIS_PGSQL_VERSION@
 POSTGIS_GEOS_VERSION=@POSTGIS_GEOS_VERSION@
+GEOS_NUMERIC_VERSION=@GEOS_NUMERIC_VERSION@
 POSTGIS_PROJ_VERSION=@POSTGIS_PROJ_VERSION@
 POSTGIS_MAJOR_VERSION=@POSTGIS_MAJOR_VERSION@
 POSTGIS_MINOR_VERSION=@POSTGIS_MINOR_VERSION@
 HAVE_JSON=@HAVE_JSON@
 HAVE_SFCGAL=@HAVE_SFCGAL@
 MINGWBUILD=@MINGWBUILD@
+INTERRUPTTESTS=@INTERRUPTTESTS@
 
 # MingW hack: rather than use PGSQL_BINDIR directly, we change
 # to the directory and then use "pwd" to return the path. This
@@ -32,9 +34,9 @@ PGSQL_BINDIR=$(shell cd "@PGSQL_BINDIR@" && pwd)
 
 # Where we put our regression installation 
 ifeq ($(MINGWBUILD),1)
-        srcdir=$(shell bash -c "pwd -W")
+	srcdir=$(shell bash -c "pwd -W")
 else
-        srcdir=$(shell pwd)
+	srcdir=$(shell pwd)
 endif
 REGRESS_INSTALLDIR=$(srcdir)/00-regress-install
 
@@ -68,26 +70,57 @@ TESTS = \
 	loader/ReprojectPts \
 	loader/ReprojectPtsGeog \
 	loader/Latin1 \
+	loader/Latin1-implicit \
+	loader/mfile \
+	dumper/literalsrid \
+	dumper/realtable \
+	affine \
+	bestsrid \
 	binary \
+	boundary \
+	cluster \
+	concave_hull\
+	ctors \
+	dump \
+	dumppoints \
+	empty \
+	forcecurve \
+	geography \
+	in_geohash \
+	in_gml \
+	in_kml \
+	in_encodedpolyline \
+	iscollection \
+	legacy \
+	long_xact \
+	lwgeom_regress \
+	measures \
 	operators \
+	out_geometry \
+	out_geography \
+	polygonize \
+	polyhedralsurface \
+	postgis_type_name \
 	regress \
+	regress_bdpoly \
 	regress_index \
 	regress_index_nulls \
+	regress_management \
 	regress_selectivity \
-	lwgeom_regress \
 	regress_lrs \
+	regress_ogc \
+	regress_ogc_cover \
+	regress_ogc_prep \
+	regress_proj \
+	relate \
+	remove_repeated_points \
 	removepoint \
 	setpoint \
-	size \
 	simplify \
+	simplifyvw \
+	size \
 	snaptogrid \
-	summary \
-	affine \
-	empty \
-	measures \
-	legacy \
-	long_xact \
-	ctors \
+	split \
 	sql-mm-serialize \
 	sql-mm-circularstring \
 	sql-mm-compoundcurve \
@@ -95,40 +128,29 @@ TESTS = \
 	sql-mm-general \
 	sql-mm-multicurve \
 	sql-mm-multisurface \
-	polyhedralsurface \
-	polygonize \
-	postgis_type_name \
-	geography \
-	out_geometry \
-	out_geography \
-	in_geohash \
-	in_gml \
-	in_kml \
-	iscollection \
-	regress_ogc \
-	regress_ogc_cover \
-	regress_ogc_prep \
-	regress_bdpoly \
-	regress_proj \
-	regress_management \
-	dump \
-	dumppoints \
-	boundary \
-	wmsservers \
-	wkt \
-	wkb \
+	swapordinates \
+	summary \
+	temporal \
 	tickets \
+	twkb \
 	typmod \
-	remove_repeated_points \
-	split \
-	relate \
-	bestsrid \
-	concave_hull
+	wkb \
+	wkt \
+	wmsservers
 
 ifeq ($(shell expr $(POSTGIS_PGSQL_VERSION) ">=" 91),1)
-  # Index supported KNN only available in PostgreSQL 9.1 and higher
+ifeq ($(shell expr $(POSTGIS_PGSQL_VERSION) "<"  95),1)
+	# Index supported KNN only available in PostgreSQL 9.1 and higher
+	# For 9.5 and higher, use the recheck suite instead
 	TESTS += knn
 endif
+endif
+
+ifeq ($(shell expr $(POSTGIS_PGSQL_VERSION) ">=" 95),1)
+	# Index supported KNN recheck only available in PostgreSQL 9.5 and higher
+	TESTS += knn_recheck \
+           temporal_knn
+endif
 
 ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 32),1)
 	# GEOS-3.3 adds:
@@ -144,7 +166,7 @@ ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 33),1)
 	# ST_Snap, ST_UnaryUnion, ST_MakeClean 
 	TESTS += \
 		offsetcurve \
-		relatematch  \
+		relatematch \
 		isvaliddetail \
 		sharedpaths \
 		snap \
@@ -158,9 +180,39 @@ ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 34),1)
 	# GEOS-3.4 adds:
 	# ST_DelaunayTriangles
 	TESTS += \
-		delaunaytriangles
+		delaunaytriangles 
+endif
+
+
+ifeq ($(INTERRUPTTESTS),yes)
+	# Allow CI servers to configure --with-interrupt-tests
+	TESTS += \
+  	interrupt
+
+ifeq ($(shell expr $(GEOS_NUMERIC_VERSION) ">=" 30403),1)
+	TESTS += \
+		interrupt_relate
+endif
+
+ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 34),1)
+	# GEOS-3.4 adds:
+	# ST_DelaunayTriangles
+	TESTS += \
+		interrupt_buffer
+endif
+		 
 endif
 
+
+ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 35),1)
+	# GEOS-3.5 adds:
+	# ST_ClipByBox2d
+	TESTS += \
+		clipbybox2d \
+		subdivide
+endif
+
+
 ifeq ($(HAVE_JSON),yes)
 	# JSON-C adds:
 	# ST_GeomFromGeoJSON()
@@ -181,7 +233,8 @@ ifeq ($(HAVE_SFCGAL),yes)
 		sfcgal/regress.sql \
 		sfcgal/tickets.sql \
 		sfcgal/concave_hull.sql \
-		sfcgal/wmsservers.sql
+		sfcgal/wmsservers.sql \
+		sfcgal/approximatemedialaxis.sql
 
 	SFCGALTESTFLAGS = --sfcgal
 endif
@@ -209,19 +262,21 @@ staged-install: staged-install-raster staged-install-topology
 	#$(MAKE) -C ../loader REGRESS=1 DESTDIR=$(REGRESS_INSTALLDIR) install
 
 test check: staged-install
-	$(PERL) run_test.pl $(RUNTESTFLAGS) ${SFCGALTESTFLAGS} $(TESTS) && \
-	$(PERL) run_test.pl --upgrade $(RUNTESTFLAGS) ${SFCGALTESTFLAGS} $(TESTS)
+	$(PERL) run_test.pl $(RUNTESTFLAGS) $(SFCGALTESTFLAGS) $(TESTS) && \
+	$(PERL) run_test.pl --upgrade $(RUNTESTFLAGS) $(SFCGALTESTFLAGS) $(TESTS)
 
 garden:
 	createdb postgis_garden
-	createlang plpgsql postgis_garden || true # tolerate an error here
-	psql -d postgis_garden < ../postgis/postgis.sql
-	psql -d postgis_garden < ../spatial_ref_sys.sql
+	createlang plpgsql postgis_garden || true #tolerate an error here
+	psql -d postgis_garden < $(REGRESS_INSTALLDIR)/share/contrib/postgis/postgis.sql && \
+	psql -d postgis_garden < $(REGRESS_INSTALLDIR)/share/contrib/postgis/spatial_ref_sys.sql || true # tolerate an error here
+	psql -d postgis_garden < $(REGRESS_INSTALLDIR)/share/contrib/postgis/rtpostgis.sql || true #tolerate an error here
 	@echo '-------------------------------------------------'
 	@echo 'Regression tests in progress (it will take time)'
-	@echo 'Result output: ./regress/garden_result.txt'
+	@echo 'Result output: ./regress/postgis_garden_result.txt'
 	@echo '-------------------------------------------------'
-	psql -d postgis_garden < ../doc/postgis_gardentest_${POSTGIS_MAJOR_VERSION}${POSTGIS_MINOR_VERSION}.sql > postgis_garden_result.txt 2>&1
+	psql -ad postgis_garden < ../doc/postgis_gardentest_${POSTGIS_MAJOR_VERSION}${POSTGIS_MINOR_VERSION}.sql > postgis_garden_result.txt 2>&1
+	psql -ad postgis_garden < ../doc/raster_gardentest_${POSTGIS_MAJOR_VERSION}${POSTGIS_MINOR_VERSION}.sql > raster_garden_result.txt 2>&1
 	#dropdb postgis_garden
 
 cleanup:
diff --git a/regress/affine.sql b/regress/affine.sql
index 3006389..ede4fe7 100644
--- a/regress/affine.sql
+++ b/regress/affine.sql
@@ -8,6 +8,11 @@ select 'ST_Translate', ST_asewkt(ST_Translate('POINT(0 0 0)'::geometry, -3, -7,
 select 'ST_Scale', ST_asewkt(ST_Scale('POINT(1 1)'::geometry, 5, 5));
 select 'ST_Scale', ST_asewkt(ST_Scale('POINT(1 1)'::geometry, 3, 2));
 select 'ST_Scale', ST_asewkt(ST_Scale('POINT(10 20 -5)'::geometry, 4, 2, -8));
+SELECT 'ST_ScaleBOX', p && ST_Scale(p,ST_MakePoint(-10,1)) FROM (
+  select 'POINT(1 1)'::geometry p ) foo;
+select 'ST_ScaleM1', ST_asewkt(ST_Scale('POINT(10 20 -5 3)'::geometry, ST_MakePoint(4, 2, -8)));
+select 'ST_ScaleM2', ST_asewkt(ST_Scale('POINT(-2 -1 3 2)'::geometry, ST_MakePointM(-2, 3, 4)));
+select 'ST_ScaleM3', ST_asewkt(ST_Scale('POINT(10 20 -5 3)'::geometry, ST_MakePoint(-3, 2, -1, 3)));
 
 -- ST_Rotate
 select 'ST_Rotate', ST_asewkt(ST_SnapToGrid(ST_Rotate('POINT(1 1)'::geometry, pi()/2, 10.0, 20.0), 0.1));
diff --git a/regress/affine_expected b/regress/affine_expected
index a185112..acce33b 100644
--- a/regress/affine_expected
+++ b/regress/affine_expected
@@ -3,6 +3,10 @@ ST_Translate|POINT(-3 -7 3)
 ST_Scale|POINT(5 5)
 ST_Scale|POINT(3 2)
 ST_Scale|POINT(40 40 40)
+ST_ScaleBOX|f
+ST_ScaleM1|POINT(40 40 40 3)
+ST_ScaleM2|POINT(4 -3 3 8)
+ST_ScaleM3|POINT(-30 40 5 9)
 ST_Rotate|POINT(29 11)
 ST_Rotate|POINT(-2 0)
 ST_Rotate|POINT(19 1)
diff --git a/regress/binary_expected b/regress/binary_expected
index 743ae41..1ea72c2 100644
--- a/regress/binary_expected
+++ b/regress/binary_expected
@@ -1,2 +1,2 @@
-geometry|106
-geometry|48
+geometry|114
+geometry|56
diff --git a/regress/clipbybox2d.sql b/regress/clipbybox2d.sql
new file mode 100644
index 0000000..e235a0b
--- /dev/null
+++ b/regress/clipbybox2d.sql
@@ -0,0 +1,28 @@
+-- Overlap
+SELECT ST_ClipByBox2d(ST_MakeEnvelope(0,0,10,10),ST_MakeEnvelope(5,5,20,20))::box2d;
+-- Geom covers rect
+SELECT ST_ClipByBox2d(ST_MakeEnvelope(0,0,10,10),ST_MakeEnvelope(5,5,8,8))::box2d;
+-- Geom within rect
+SELECT ST_ClipByBox2d(ST_MakeEnvelope(2,2,8,8),ST_MakeEnvelope(0,0,10,10))::box2d;
+-- Multipoint with point inside, point outside and point on boundary
+SELECT ST_AsText(ST_ClipByBox2d('MULTIPOINT(-1 -1, 0 0, 2 2)'::geometry,ST_MakeEnvelope(0,0,10,10)));
+-- Invalid polygon (bow-tie) -- ST_Intersection throws an exception here
+SELECT ST_AsText(ST_ClipByBox2d('POLYGON((0 0, 10 10, 0 10, 10 0, 0 0))', ST_MakeEnvelope(2,2,8,8)));
+-- Invalid polygon (lineal self-intersection) -- ST_Intersection returns a collection
+SELECT ST_AsText(ST_ClipByBox2d('POLYGON((0 0,5 4,5 6,0 10,10 10,5 6,5 4,10 0,0 0))', ST_MakeEnvelope(2,2,10,5)));
+-- Invalid polygon (non-closed ring) -- ST_Intersection raises an exception
+-- The HEXWKB represents 'POLYGON((0 0, 10 0, 10 10, 0 10))'
+SELECT ST_AsText(ST_ClipByBox2d(
+  '0103000000010000000400000000000000000000000000000000000000000000000000244000000000000000000000000000002440000000000000244000000000000000000000000000002440'
+  , ST_MakeEnvelope(2,2,5,5)));
+-- Geometry disjoint from box, from a table
+-- See http://trac.osgeo.org/postgis/ticket/2950
+CREATE TEMPORARY TABLE t AS SELECT
+'SRID=3857;POLYGON((41 20,41 0,21 0,1 20,1 40,21 40,41 20))'
+::geometry g;
+SELECT ST_AsEWKT(ST_ClipByBox2d(g, ST_MakeEnvelope(-20,-20,-10,-10))) FROM t;
+-- See http://trac.osgeo.org/postgis/ticket/2954
+SELECT ST_AsEWKT(ST_ClipByBox2D('SRID=4326;POINT(0 0)','BOX3D(-1 -1,1 1)'::box3d::box2d));
+
+SELECT '#3135', st_astext(ST_SubDivide(ST_GeomFromText('POLYGON((1 2,1 2,1 2,1 2))'), 2));
+
diff --git a/regress/clipbybox2d_expected b/regress/clipbybox2d_expected
new file mode 100644
index 0000000..4af79e1
--- /dev/null
+++ b/regress/clipbybox2d_expected
@@ -0,0 +1,10 @@
+BOX(5 5,10 10)
+BOX(5 5,8 8)
+BOX(2 2,8 8)
+POINT(2 2)
+POLYGON((2 2,8 2,2 8,8 8,2 2))
+POLYGON((2.5 2,5 4,5 5,5 4,7.5 2,2.5 2))
+POLYGON((2 2,2 5,5 5,5 2,2 2))
+SRID=3857;POLYGON EMPTY
+SRID=4326;POINT(0 0)
+ERROR:  lwgeom_subdivide: cannot subdivide to fewer than 8 vertices per output
diff --git a/regress/cluster.sql b/regress/cluster.sql
new file mode 100644
index 0000000..d683616
--- /dev/null
+++ b/regress/cluster.sql
@@ -0,0 +1,16 @@
+-- tests for ST_ClusterIntersecting and ST_ClusterWithin
+
+CREATE TEMPORARY TABLE cluster_inputs (id int, geom geometry);
+INSERT INTO cluster_inputs VALUES
+(1, 'LINESTRING (0 0, 1 1)'),
+(2, 'LINESTRING (5 5, 4 4)'),
+(3, NULL),
+(4, 'LINESTRING (0 0, -1 -1)'),
+(5, 'LINESTRING (6 6, 7 7)'),
+(6, 'POLYGON EMPTY'),
+(7, 'POLYGON ((0 0, 4 0, 4 4, 0 4, 0 0))');
+
+SELECT 't1', ST_AsText(unnest(ST_ClusterIntersecting(geom ORDER BY id))) FROM cluster_inputs;
+SELECT 't2', ST_AsText(unnest(ST_ClusterIntersecting(ST_Accum(geom ORDER BY id)))) FROM cluster_inputs;
+SELECT 't3', ST_AsText(unnest(ST_ClusterWithin(geom, 1.4 ORDER BY id))) FROM cluster_inputs;
+SELECT 't4', ST_AsText(unnest(ST_ClusterWithin(ST_Accum(geom ORDER BY id), 1.5))) FROM cluster_inputs;
diff --git a/regress/cluster_expected b/regress/cluster_expected
new file mode 100644
index 0000000..9176a28
--- /dev/null
+++ b/regress/cluster_expected
@@ -0,0 +1,11 @@
+t1|GEOMETRYCOLLECTION(LINESTRING(0 0,1 1),LINESTRING(5 5,4 4),LINESTRING(0 0,-1 -1),POLYGON((0 0,4 0,4 4,0 4,0 0)))
+t1|GEOMETRYCOLLECTION(LINESTRING(6 6,7 7))
+t1|GEOMETRYCOLLECTION(POLYGON EMPTY)
+t2|GEOMETRYCOLLECTION(LINESTRING(0 0,1 1),LINESTRING(5 5,4 4),LINESTRING(0 0,-1 -1),POLYGON((0 0,4 0,4 4,0 4,0 0)))
+t2|GEOMETRYCOLLECTION(LINESTRING(6 6,7 7))
+t2|GEOMETRYCOLLECTION(POLYGON EMPTY)
+t3|GEOMETRYCOLLECTION(LINESTRING(0 0,1 1),LINESTRING(5 5,4 4),LINESTRING(0 0,-1 -1),POLYGON((0 0,4 0,4 4,0 4,0 0)))
+t3|GEOMETRYCOLLECTION(LINESTRING(6 6,7 7))
+t3|GEOMETRYCOLLECTION(POLYGON EMPTY)
+t4|GEOMETRYCOLLECTION(LINESTRING(0 0,1 1),LINESTRING(5 5,4 4),LINESTRING(0 0,-1 -1),LINESTRING(6 6,7 7),POLYGON((0 0,4 0,4 4,0 4,0 0)))
+t4|GEOMETRYCOLLECTION(POLYGON EMPTY)
diff --git a/regress/concave_hull.sql b/regress/concave_hull.sql
index 61ef194..7ae20c4 100644
--- a/regress/concave_hull.sql
+++ b/regress/concave_hull.sql
@@ -1,4 +1,3 @@
--- $Id: concave_hull.sql 9324 2012-02-27 22:08:12Z pramsey $
 -- Tests to confirm the concave hull area is <= convex hull and 
 -- covers the original geometry (can't use covers because always gives topo errors with 3.3
 SELECT 
diff --git a/regress/dumper/literalsrid-post.sql b/regress/dumper/literalsrid-post.sql
new file mode 100644
index 0000000..9afb10c
--- /dev/null
+++ b/regress/dumper/literalsrid-post.sql
@@ -0,0 +1 @@
+delete from spatial_ref_sys where srid = 1;
diff --git a/regress/dumper/literalsrid-pre.sql b/regress/dumper/literalsrid-pre.sql
new file mode 100644
index 0000000..d0f6cec
--- /dev/null
+++ b/regress/dumper/literalsrid-pre.sql
@@ -0,0 +1 @@
+insert into spatial_ref_sys(srid,srtext) values (1,'fake["srs"],text');
diff --git a/regress/dumper/literalsrid.dmp b/regress/dumper/literalsrid.dmp
new file mode 100644
index 0000000..f9502d4
--- /dev/null
+++ b/regress/dumper/literalsrid.dmp
@@ -0,0 +1 @@
+SELECT 1 as id, 'SRID=1;POINT(0 0)'::geometry as g;
diff --git a/regress/dumper/literalsrid_expected.dbf b/regress/dumper/literalsrid_expected.dbf
new file mode 100644
index 0000000..cafd863
Binary files /dev/null and b/regress/dumper/literalsrid_expected.dbf differ
diff --git a/regress/dumper/literalsrid_expected.prj b/regress/dumper/literalsrid_expected.prj
new file mode 100644
index 0000000..ab83d5d
--- /dev/null
+++ b/regress/dumper/literalsrid_expected.prj
@@ -0,0 +1 @@
+fake["srs"],text
\ No newline at end of file
diff --git a/regress/dumper/literalsrid_expected.shp b/regress/dumper/literalsrid_expected.shp
new file mode 100644
index 0000000..0112cd7
Binary files /dev/null and b/regress/dumper/literalsrid_expected.shp differ
diff --git a/regress/dumper/literalsrid_expected.shx b/regress/dumper/literalsrid_expected.shx
new file mode 100644
index 0000000..cc0b42a
Binary files /dev/null and b/regress/dumper/literalsrid_expected.shx differ
diff --git a/regress/dumper/realtable-post.sql b/regress/dumper/realtable-post.sql
new file mode 100644
index 0000000..17deeda
--- /dev/null
+++ b/regress/dumper/realtable-post.sql
@@ -0,0 +1,2 @@
+drop table c;
+delete from spatial_ref_sys where srid = 1;
diff --git a/regress/dumper/realtable-pre.sql b/regress/dumper/realtable-pre.sql
new file mode 100644
index 0000000..a6d1dca
--- /dev/null
+++ b/regress/dumper/realtable-pre.sql
@@ -0,0 +1,3 @@
+insert into spatial_ref_sys(srid,srtext) values (1,'fake["srs"],text');
+create table c (i int, g geometry);
+insert into c values (1,'SRID=1;POINT(0 0)');
diff --git a/regress/dumper/realtable.dmp b/regress/dumper/realtable.dmp
new file mode 100644
index 0000000..f2ad6c7
--- /dev/null
+++ b/regress/dumper/realtable.dmp
@@ -0,0 +1 @@
+c
diff --git a/regress/dumper/realtable_expected.dbf b/regress/dumper/realtable_expected.dbf
new file mode 100644
index 0000000..7f420e4
Binary files /dev/null and b/regress/dumper/realtable_expected.dbf differ
diff --git a/regress/dumper/realtable_expected.prj b/regress/dumper/realtable_expected.prj
new file mode 100644
index 0000000..ab83d5d
--- /dev/null
+++ b/regress/dumper/realtable_expected.prj
@@ -0,0 +1 @@
+fake["srs"],text
\ No newline at end of file
diff --git a/regress/dumper/realtable_expected.shp b/regress/dumper/realtable_expected.shp
new file mode 100644
index 0000000..0112cd7
Binary files /dev/null and b/regress/dumper/realtable_expected.shp differ
diff --git a/regress/dumper/realtable_expected.shx b/regress/dumper/realtable_expected.shx
new file mode 100644
index 0000000..cc0b42a
Binary files /dev/null and b/regress/dumper/realtable_expected.shx differ
diff --git a/regress/forcecurve.sql b/regress/forcecurve.sql
new file mode 100644
index 0000000..b655ba3
--- /dev/null
+++ b/regress/forcecurve.sql
@@ -0,0 +1,12 @@
+SELECT '1', ST_AsText(ST_ForceCurve('POINT(0 0)'));
+SELECT '2', ST_AsText(ST_ForceCurve('MULTIPOINT((0 0))'));
+SELECT '3', ST_AsText(ST_ForceCurve('LINESTRING(0 0, 10 0)'));
+SELECT '4', ST_AsText(ST_ForceCurve('MULTILINESTRING((0 0, 10 0),(30 0, 30 2))'));
+SELECT '5', ST_AsText(ST_ForceCurve('POLYGON((0 0,10 0,10 10,0 10,0 0))'));
+SELECT '6', ST_AsText(ST_ForceCurve('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))'));
+SELECT '7', ST_AsText(ST_ForceCurve('GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0))))'));
+SELECT '8', ST_AsText(ST_ForceCurve('CIRCULARSTRING(0 0,10 1,20 0)'));
+SELECT '9', ST_AsText(ST_ForceCurve('COMPOUNDCURVE(CIRCULARSTRING(0 0,10 1,20 0))'));
+SELECT '10', ST_AsText(ST_ForceCurve('MULTICURVE(COMPOUNDCURVE(CIRCULARSTRING(0 0,10 1,20 0)))'));
+SELECT '11', ST_AsText(ST_ForceCurve('CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,10 1,20 0),(20 0,0 0)))'));
+SELECT '12', ST_AsText(ST_ForceCurve('MULTISURFACE(CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,10 1,20 0),(20 0,0 0))))'));
diff --git a/regress/forcecurve_expected b/regress/forcecurve_expected
new file mode 100644
index 0000000..e4e7846
--- /dev/null
+++ b/regress/forcecurve_expected
@@ -0,0 +1,12 @@
+1|POINT(0 0)
+2|MULTIPOINT(0 0)
+3|COMPOUNDCURVE((0 0,10 0))
+4|MULTICURVE((0 0,10 0),(30 0,30 2))
+5|CURVEPOLYGON((0 0,10 0,10 10,0 10,0 0))
+6|MULTISURFACE(((0 0,10 0,10 10,0 10,0 0)))
+7|GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0))))
+8|CIRCULARSTRING(0 0,10 1,20 0)
+9|COMPOUNDCURVE(CIRCULARSTRING(0 0,10 1,20 0))
+10|MULTICURVE(COMPOUNDCURVE(CIRCULARSTRING(0 0,10 1,20 0)))
+11|CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,10 1,20 0),(20 0,0 0)))
+12|MULTISURFACE(CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,10 1,20 0),(20 0,0 0))))
diff --git a/regress/geography.sql b/regress/geography.sql
index 5ef8f81..f9a769a 100644
--- a/regress/geography.sql
+++ b/regress/geography.sql
@@ -7,6 +7,15 @@ VALUES (
  '+proj=longlat +datum=WGS84 +no_defs'
 );
 
+INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text)
+VALUES (
+ '4269',
+ 'EPSG',
+ '4269',
+ 'GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]]',
+ '+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs'
+);
+
 -- Do cached and uncached distance agree?
 SELECT c, abs(ST_Distance(ply::geography, pt::geography) - _ST_DistanceUnCached(ply::geography, pt::geography)) < 0.01 FROM 
 ( VALUES
@@ -71,7 +80,33 @@ ply AS (
 )
 SELECT 'geog_precision_pazafir', _ST_DistanceUnCached(pt.point, ply.polygon), ST_Distance(pt.point, ply.polygon) FROM pt, ply;
 
+-- #2941
+CREATE TABLE test(id integer, geog geography(multilinestring,4269));
+INSERT INTO test VALUES (1, 'SRID=4269;MULTILINESTRING((0 0, 1 1))');
+SELECT id,ST_AsText(geog) FROM test;
+DROP TABLE test;
+
+-- #2422
+CREATE TABLE dwithgeogbug (
+    gid integer,
+    geog geography
+);
+INSERT INTO dwithgeogbug (gid, geog) VALUES (1, '0103000020E6100000010000000B0000000AA2F068F47651C0F7893DEB70B8454007ABD4C6D57651C000FB650799B84540C21AA2645A7651C011C24BA84AB8454089A9A325E87751C03314EB5453B74540AF9ED96BF57751C0BF9818F889B74540E936A498B47751C0690C87D1C5B74540F5386204DC7751C02FCA658F1AB8454077B65F7B657751C012C586EE37B845408C1862C5977751C00F17E41674B84540D4012F57357751C0AD3BC67E99B845400AA2F068F47651C0F7893DEB70B84540');
+INSERT INTO dwithgeogbug (gid, geog) VALUES (2, '0103000020E610000003000000B5000000E0D13F40187451C01A09009164BB4540771C07D8FA7351C04DBBEDB634BB45400D27D627A47351C070625C9386BB4540D691981FAD7351C02F382CCDFABA4540AA38FA85B97351C03AD3A8271CBB4540D211F0CBBE7351C027F11A8FD9BA4540839AE427EB7351C0BF97C6BBA3BA4540748967A4D47351C00C0037C970BA45408F182A0CF07351C0C050808070BA45405063F06DD27351C0681018D037BA4540E509D5C2EE7351C0B9429E0231BA4540EA39B20CCC7351C018FBB70F22BA454072DD47C8ED7351C04C992D5E0 [...]
+SELECT 
+'#2422' as ticket, gid, radius,
+_ST_DWithin(geog, tgeog, radius, true) AS dwithin_t, 
+_ST_DWithin(geog, tgeog, radius, false) AS dwithin_f, 
+round(ST_Distance(geog, tgeog, true)::numeric,3) AS distance_t, 
+round(ST_Distance(geog, tgeog, false)::numeric,3) AS distance_f, 
+round(_ST_DistanceUnCached(geog, tgeog)::numeric,3) AS distance_uncached, 
+round(_ST_DistanceTree(geog, tgeog)::numeric,3) AS distance_tree
+FROM dwithgeogbug 
+CROSS JOIN ST_GeogFromText('POINT(-69.83262 43.43636)') AS tgeog
+CROSS JOIN (VALUES (1609),(1600),(1068)) AS t (radius)
+ORDER BY distance_t;
+DROP TABLE dwithgeogbug;
 
 -- Clean up spatial_ref_sys
-DELETE FROM spatial_ref_sys WHERE srid = 4326;
+DELETE FROM spatial_ref_sys WHERE srid IN (4269,4326);
     
\ No newline at end of file
diff --git a/regress/geography_expected b/regress/geography_expected
index 3359d12..dc9f2be 100644
--- a/regress/geography_expected
+++ b/regress/geography_expected
@@ -20,3 +20,10 @@ geog_precision_savffir|0|0
 geog_precision_savffir|0|0
 geog_precision_pazafir|0|0
 geog_precision_pazafir|0|0
+1|MULTILINESTRING((0 0,1 1))
+#2422|2|1609|t|t|1005.627|1006.248|1005.627|1005.627
+#2422|2|1600|t|t|1005.627|1006.248|1005.627|1005.627
+#2422|2|1068|t|t|1005.627|1006.248|1005.627|1005.627
+#2422|1|1609|t|t|1400.230|1396.816|1400.230|1400.230
+#2422|1|1600|t|t|1400.230|1396.816|1400.230|1400.230
+#2422|1|1068|f|f|1400.230|1396.816|1400.230|1400.230
diff --git a/regress/in_encodedpolyline.sql b/regress/in_encodedpolyline.sql
new file mode 100644
index 0000000..604fbc1
--- /dev/null
+++ b/regress/in_encodedpolyline.sql
@@ -0,0 +1,2 @@
+select 'linefromencodedpolyline_01',st_asewkt(st_linefromencodedpolyline('_p~iF~ps|U_ulLnnqC_mqNvxq`@'));
+select 'linefromencodedpolyline_02',st_asewkt(st_linefromencodedpolyline('_p~iFlhz|UuksL`wjCivjNvxq`@', 6));
diff --git a/regress/in_encodedpolyline_expected b/regress/in_encodedpolyline_expected
new file mode 100644
index 0000000..7024958
--- /dev/null
+++ b/regress/in_encodedpolyline_expected
@@ -0,0 +1,2 @@
+linefromencodedpolyline_01|SRID=4326;LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)
+linefromencodedpolyline_02|SRID=4326;LINESTRING(-120.23447 38.5,-120.95 40.73435,-126.453 43.252)
diff --git a/regress/in_geojson.sql b/regress/in_geojson.sql
index 05c4a11..45330a7 100644
--- a/regress/in_geojson.sql
+++ b/regress/in_geojson.sql
@@ -25,6 +25,7 @@ SELECT '#2216', ST_NPoints(ST_GeomFromGeoJSON('{"type":"MultiPolygon","coordinat
 
 -- #2619 --
 SELECT '#2619', ST_AsText(ST_GeomFromGeoJSON('{"type":"Polygon","bbox":[1,5,2,6],"coordinates":[]}'));
+select '#2619', ST_AsText(ST_GeomFromGeoJSON('{"type":"MultiPolygon","coordinates":[[]]}'));
 
 -- #2697 --
 SELECT '#2697', ST_GeomFromGeoJSON('{"type":"Polygon","coordinates":[1]}');
@@ -39,3 +40,8 @@ SELECT 'geomfromgeojson_z_02', ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"LineString
 
 SELECT 'geomfromgeojson_zm_01', ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"Point","coordinates":[1,2,3,4]}'));
 SELECT 'geomfromgeojson_zm_02', ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2,3,4],[2,3,4,5]]}'));
+
+SELECT 'geomfromgeojson_srs_1', ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[100.0,0.0]},{"type":"LineString","coordinates":[[101.0,0.0],[102.0,1.0]]}],"crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG::4326"}}}'));
+SELECT 'geomfromgeojson_srs_2', ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[100.0,0.0]},{"type":"LineString","coordinates":[[101.0,0.0],[102.0,1.0]]}],"crs":{"type":"name","properties":{"name":"EPSG:4326"}}}'));
+SELECT 'geomfromgeojson_srs_3', ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[100.0,0.0]},{"type":"LineString","coordinates":[[101.0,0.0],[102.0,1.0]]}],"crs":{"type":"name","props":{"name":"urn:ogc:def:crs:EPSG::4326"}}}'));
+SELECT 'geomfromgeojson_srs_4', ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[100.0,0.0]},{"type":"LineString","coordinates":[[101.0,0.0],[102.0,1.0]]}],"crs":{"type":"name","properties":{"nm":"EPSG:4326"}}}'));
diff --git a/regress/in_geojson_expected b/regress/in_geojson_expected
index dd64494..ddedb90 100644
--- a/regress/in_geojson_expected
+++ b/regress/in_geojson_expected
@@ -16,9 +16,14 @@ ERROR:  Unable to find 'coordinates' in GeoJSON string
 #2130|50
 #2216|30
 #2619|POLYGON EMPTY
+#2619|MULTIPOLYGON Z (EMPTY)
 ERROR:  The 'coordinates' in GeoJSON ring are not an array
 ERROR:  The 'coordinates' in GeoJSON ring are not an array
 geomfromgeojson_z_01|POINT(1 2 3)
 geomfromgeojson_z_02|LINESTRING(1 2 3,2 3 4)
 geomfromgeojson_zm_01|POINT(1 2 3)
 geomfromgeojson_zm_02|LINESTRING(1 2 3,2 3 4)
+geomfromgeojson_srs_1|GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))
+geomfromgeojson_srs_2|GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))
+geomfromgeojson_srs_3|GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))
+geomfromgeojson_srs_4|GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))
diff --git a/regress/in_gml.sql b/regress/in_gml.sql
index d66747d..736d1d1 100644
--- a/regress/in_gml.sql
+++ b/regress/in_gml.sql
@@ -301,7 +301,7 @@ SELECT 'surface_21', ST_AsEWKT(ST_GeomFromGML('<gml:Surface><gml:patches><gml:Po
 -- ERROR: interpolation not planar
 SELECT 'surface_22', ST_AsEWKT(ST_GeomFromGML('<gml:Surface><gml:patches><gml:PolygonPatch interpolation="not_planar"><gml:exterior><gml:LinearRing><gml:coordinates>1,2 3,4 5,6 1,2</gml:coordinates></gml:LinearRing></gml:exterior></gml:PolygonPatch></gml:patches></gml:Surface>'));
 
--- ERROR: interior but no exterior  
+-- ERROR: interior but no exterior 
 SELECT 'surface_23', ST_AsEWKT(ST_GeomFromGML('<gml:Surface><gml:patches><gml:PolygonPatch><gml:interior><gml:LinearRing><gml:coordinates>1,2 3,4 5,6 1,2</gml:coordinates></gml:LinearRing></gml:interior></gml:PolygonPatch></gml:patches></gml:Surface>'));
 
 
diff --git a/regress/in_kml.sql b/regress/in_kml.sql
index c02e760..2af1f1c 100644
--- a/regress/in_kml.sql
+++ b/regress/in_kml.sql
@@ -81,10 +81,10 @@ SELECT 'polygon_1', ST_AsEWKT(ST_GeomFromKML('<kml:Polygon><kml:outerBoundaryIs>
 -- ERROR: In exterior ring: Last point is not the same as the first one 
 SELECT 'polygon_2', ST_AsEWKT(ST_GeomFromKML('<kml:Polygon><kml:outerBoundaryIs><kml:LinearRing><kml:coordinates>1,2 3,4 5,6 1,3</kml:coordinates></kml:LinearRing></kml:outerBoundaryIs></kml:Polygon>'));
 
--- ERROR: In exterior 3D ring: Last point is not the same as the first one in Z
+-- FORCE CLOSE: In exterior 3D ring: Last point is not the same as the first one in Z
 SELECT 'polygon_3', ST_AsEWKT(ST_GeomFromKML('<kml:Polygon><kml:outerBoundaryIs><kml:LinearRing><kml:coordinates>1,2,3 4,5,6 7,8,9 1,2,0</kml:coordinates></kml:LinearRing></kml:outerBoundaryIs></kml:Polygon>'));
 
--- ERROR: Only 3 points in exterior ring
+-- FORCE CLOSE: Only 3 points in exterior ring
 SELECT 'polygon_4', ST_AsEWKT(ST_GeomFromKML('<kml:Polygon><kml:outerBoundaryIs><kml:LinearRing><kml:coordinates>1,2 3,4 1,2</kml:coordinates></kml:LinearRing></kml:outerBoundaryIs></kml:Polygon>'));
 
 -- ERROR: Empty exterior ring coordinates 
@@ -105,10 +105,10 @@ SELECT 'polygon_11', ST_AsEWKT(ST_GeomFromKML('<kml:Polygon><kml:outerBoundaryIs
 -- ERROR: Only 3 points in interior ring
 SELECT 'polygon_12', ST_AsEWKT(ST_GeomFromKML('<kml:Polygon><kml:outerBoundaryIs><kml:LinearRing><kml:coordinates>1,2 3,4 5,6 1,2</kml:coordinates></kml:LinearRing></kml:outerBoundaryIs><kml:innerBoundaryIs><kml:LinearRing><kml:coordinates>7,8 9,10 7,8</kml:coordinates></kml:LinearRing></kml:innerBoundaryIs></kml:Polygon>'));
 
--- ERROR: In interior ring: Last point is not the same as the first one 
+-- FORCE CLOSE: In interior ring: Last point is not the same as the first one 
 SELECT 'polygon_13', ST_AsEWKT(ST_GeomFromKML('<kml:Polygon><kml:outerBoundaryIs><kml:LinearRing><kml:coordinates>1,2 3,4 5,6 1,2</kml:coordinates></kml:LinearRing></kml:outerBoundaryIs><kml:innerBoundaryIs><kml:LinearRing><kml:coordinates>7,8 9,10 11,12 7,9</kml:coordinates></kml:LinearRing></kml:innerBoundaryIs></kml:Polygon>'));
 
--- ERROR: In interior 3D ring: Last point is not the same as the first one in Z
+-- FORCE CLOSE: In interior 3D ring: Last point is not the same as the first one in Z
 SELECT 'polygon_14', ST_AsEWKT(ST_GeomFromKML('<kml:Polygon><kml:outerBoundaryIs><kml:LinearRing><kml:coordinates>1,2,3 4,5,6 7,8,9 1,2,3</kml:coordinates></kml:LinearRing></kml:outerBoundaryIs><kml:innerBoundaryIs><kml:LinearRing><kml:coordinates>10,11,12 13,14,15 16,17,18 10,11,0</kml:coordinates></kml:LinearRing></kml:innerBoundaryIs></kml:Polygon>'));
 
 -- 3 rings
@@ -351,6 +351,10 @@ SELECT 'double_30', ST_AsEWKT(ST_GeomFromKML('<kml:Point><kml:coordinates>1,-1.2
 -- ERROR: Junk 
 SELECT 'double_31', ST_AsEWKT(ST_GeomFromKML('<kml:Point><kml:coordinates>1,$0%@#$^%#</kml:coordinates></kml:Point>'));
 
+-- ERROR: mixed coordinate dimension
+SELECT 'mixed_dims_1', ST_AsEWKT(ST_GeomFromKML('<kml:Point><kml:coordinates>1,2 1,2,3</kml:coordinates></kml:Point>'));
+SELECT 'mixed_dims_2', ST_AsEWKT(ST_GeomFromKML('<kml:Point><kml:coordinates>1,2,3 1,2</kml:coordinates></kml:Point>'));
+
 
 
 
diff --git a/regress/in_kml_expected b/regress/in_kml_expected
index 063b9ea..d345146 100644
--- a/regress/in_kml_expected
+++ b/regress/in_kml_expected
@@ -15,8 +15,10 @@ ERROR:  invalid KML representation
 ERROR:  invalid KML representation
 linestring_5|SRID=4326;LINESTRING(1 2,3 4)
 polygon_1|SRID=4326;POLYGON((1 2,3 4,5 6,1 2))
-ERROR:  invalid KML representation
-ERROR:  invalid KML representation
+NOTICE:  forced closure on an un-closed KML polygon
+polygon_2|SRID=4326;POLYGON((1 2,3 4,5 6,1 3,1 2))
+NOTICE:  forced closure on an un-closed KML polygon
+polygon_3|SRID=4326;POLYGON((1 2 3,4 5 6,7 8 9,1 2 0,1 2 3))
 ERROR:  invalid KML representation
 ERROR:  invalid KML representation
 ERROR:  invalid KML representation
@@ -26,8 +28,10 @@ polygon_9|SRID=4326;POLYGON((1 2,3 4,5 6,1 2),(7 8,9 10,11 12,7 8))
 polygon_10|SRID=4326;POLYGON((1 2,3 4,5 6,1 2),(7 8,9 10,11 12,7 8))
 polygon_11|SRID=4326;POLYGON((1 2,3 4,5 6,1 2))
 ERROR:  invalid KML representation
-ERROR:  invalid KML representation
-ERROR:  invalid KML representation
+NOTICE:  forced closure on an un-closed KML polygon
+polygon_13|SRID=4326;POLYGON((1 2,3 4,5 6,1 2),(7 8,9 10,11 12,7 9,7 8))
+NOTICE:  forced closure on an un-closed KML polygon
+polygon_14|SRID=4326;POLYGON((1 2 3,4 5 6,7 8 9,1 2 3),(10 11 12,13 14 15,16 17 18,10 11 0,10 11 12))
 polygon_15|SRID=4326;POLYGON((1 2,3 4,5 6,1 2),(7 8,9 10,11 12,7 8),(13 14,15 16,17 18,13 14))
 multi_7|SRID=4326;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,5 6),POLYGON((7 8,9 10,11 12,7 8)))
 multi_8|SRID=4326;GEOMETRYCOLLECTION EMPTY
@@ -98,3 +102,5 @@ ERROR:  invalid KML representation
 ERROR:  invalid KML representation
 ERROR:  invalid KML representation
 ERROR:  invalid KML representation
+ERROR:  invalid KML representation: mixed coordinates dimension
+ERROR:  invalid KML representation: mixed coordinates dimension
diff --git a/regress/interrupt.sql b/regress/interrupt.sql
new file mode 100644
index 0000000..a58bcc7
--- /dev/null
+++ b/regress/interrupt.sql
@@ -0,0 +1,33 @@
+-- liblwgeom interruption
+
+CREATE TEMPORARY TABLE _time AS SELECT now() t;
+
+CREATE FUNCTION _timecheck(label text, tolerated interval) RETURNS text
+AS $$
+DECLARE
+  ret TEXT;
+  lap INTERVAL;
+BEGIN
+  lap := now()-t FROM _time;
+  IF lap <= tolerated THEN ret := label || ' interrupted on time';
+  ELSE ret := label || ' interrupted late: ' || lap;
+  END IF;
+  UPDATE _time SET t = now();
+  RETURN ret;
+END;
+$$ LANGUAGE 'plpgsql' VOLATILE;
+
+-----------------
+-- ST_Segmentize
+-----------------
+
+SET statement_timeout TO 100;
+-- would run for many seconds if uninterruptible...
+SELECT ST_Segmentize(ST_MakeLine(ST_Point(4,39), ST_Point(1,41)), 1e-100);
+SELECT _timecheck('segmentize', '250ms');
+SET statement_timeout TO 0;
+-- Not affected by old timeout
+SELECT '1',ST_AsText(ST_Segmentize('LINESTRING(0 0,4 0)'::geometry, 2));
+
+
+DROP FUNCTION _timecheck(text, interval);
diff --git a/regress/interrupt_buffer.sql b/regress/interrupt_buffer.sql
new file mode 100644
index 0000000..1c4309f
--- /dev/null
+++ b/regress/interrupt_buffer.sql
@@ -0,0 +1,45 @@
+CREATE TEMPORARY TABLE _time AS SELECT now() t;
+
+CREATE FUNCTION _timecheck(label text, tolerated interval) RETURNS text
+AS $$
+DECLARE
+  ret TEXT;
+  lap INTERVAL;
+BEGIN
+  lap := now()-t FROM _time;
+  IF lap <= tolerated THEN ret := label || ' interrupted on time';
+  ELSE ret := label || ' interrupted late: ' || lap;
+  END IF;
+  UPDATE _time SET t = now();
+  RETURN ret;
+END;
+$$ LANGUAGE 'plpgsql' VOLATILE;
+
+CREATE TEMP TABLE _inputs AS
+SELECT 1::int as id, ST_Collect(g) g FROM (
+ SELECT ST_MakeLine(
+   ST_Point(cos(radians(x)),sin(radians(270-x))),
+   ST_Point(sin(radians(x)),cos(radians(60-x)))
+   ) g
+ FROM generate_series(1,720) x
+ ) foo
+;
+
+UPDATE _time SET t = now(); -- reset time as creating tables spends some
+
+-----------------
+-- ST_Buffer
+-----------------
+
+SET statement_timeout TO 100;
+select ST_Buffer(g,100) from _inputs WHERE id = 1;
+--( select (st_dumppoints(st_buffer(st_makepoint(0,0),10000,100000))).geom g) foo;
+-- it may take some more to interrupt st_buffer, see
+-- https://travis-ci.org/postgis/postgis/builds/40211116#L2222-L2223
+SELECT _timecheck('buffer', '200ms');
+
+-- Not affected by old timeout
+SELECT '1', ST_NPoints(ST_Buffer('POINT(4 0)'::geometry, 2, 1));
+
+
+DROP FUNCTION _timecheck(text, interval);
diff --git a/regress/interrupt_buffer_expected b/regress/interrupt_buffer_expected
new file mode 100644
index 0000000..f7004e0
--- /dev/null
+++ b/regress/interrupt_buffer_expected
@@ -0,0 +1,3 @@
+ERROR:  canceling statement due to statement timeout
+buffer interrupted on time
+1|5
diff --git a/regress/interrupt_expected b/regress/interrupt_expected
new file mode 100644
index 0000000..d6bbb77
--- /dev/null
+++ b/regress/interrupt_expected
@@ -0,0 +1,4 @@
+NOTICE:  liblwgeom code interrupted
+ERROR:  canceling statement due to statement timeout
+segmentize interrupted on time
+1|LINESTRING(0 0,2 0,4 0)
diff --git a/regress/interrupt_relate.sql b/regress/interrupt_relate.sql
new file mode 100644
index 0000000..b620424
--- /dev/null
+++ b/regress/interrupt_relate.sql
@@ -0,0 +1,65 @@
+CREATE TEMPORARY TABLE _time AS SELECT now() t;
+
+CREATE FUNCTION _timecheck(label text, tolerated interval) RETURNS text
+AS $$
+DECLARE
+  ret TEXT;
+  lap INTERVAL;
+BEGIN
+  lap := now()-t FROM _time;
+  IF lap <= tolerated THEN ret := label || ' interrupted on time';
+  ELSE ret := label || ' interrupted late: ' || lap;
+  END IF;
+  UPDATE _time SET t = now();
+  RETURN ret;
+END;
+$$ LANGUAGE 'plpgsql' VOLATILE;
+
+CREATE TEMP TABLE _inputs AS 
+SELECT 1::int as id, ST_Collect(g) g FROM (
+ SELECT ST_MakeLine(
+   ST_Point(cos(radians(x)),sin(radians(270-x))), 
+   ST_Point(sin(radians(x)),cos(radians(60-x)))
+   ) g
+ FROM generate_series(1,720) x
+ ) foo
+;
+
+UPDATE _time SET t = now(); -- reset time as creating tables spends some
+
+-----------------------------
+-- IM9 based predicates
+--
+-- These require GEOS-3.4.3+
+-----------------------------
+
+SET statement_timeout TO 100;
+
+select ST_Contains(g,g) from _inputs WHERE id = 1; -- 6+ seconds
+SELECT _timecheck('contains', '200ms');
+
+select ST_Covers(g,g) from _inputs WHERE id = 1; -- 6+ seconds
+SELECT _timecheck('covers', '200ms');
+
+select ST_CoveredBy(g,g) from _inputs WHERE id = 1; -- 6+ seconds
+SELECT _timecheck('coveredby', '200ms');
+
+select ST_Crosses(g,g) from _inputs WHERE id = 1; -- 6+ seconds
+SELECT _timecheck('crosses', '200ms');
+
+-- NOTE: we're reversing one of the operands to avoid the
+--       short-circuit described in #3226
+select ST_Equals(g,st_reverse(g)) from _inputs WHERE id = 1; -- 6+ seconds
+SELECT _timecheck('equals', '200ms');
+
+select ST_Intersects(g,g) from _inputs WHERE id = 1; -- 6+ seconds
+SELECT _timecheck('intersects', '200ms');
+
+select ST_Overlaps(g,g) from _inputs WHERE id = 1; -- 6+ seconds
+SELECT _timecheck('overlaps', '200ms');
+
+select ST_Relate(g,g) from _inputs WHERE id = 1; -- 6+ seconds
+SELECT _timecheck('relate', '200ms');
+
+
+DROP FUNCTION _timecheck(text, interval);
diff --git a/regress/interrupt_relate_expected b/regress/interrupt_relate_expected
new file mode 100644
index 0000000..d050570
--- /dev/null
+++ b/regress/interrupt_relate_expected
@@ -0,0 +1,16 @@
+ERROR:  canceling statement due to statement timeout
+contains interrupted on time
+ERROR:  canceling statement due to statement timeout
+covers interrupted on time
+ERROR:  canceling statement due to statement timeout
+coveredby interrupted on time
+ERROR:  canceling statement due to statement timeout
+crosses interrupted on time
+ERROR:  canceling statement due to statement timeout
+equals interrupted on time
+ERROR:  canceling statement due to statement timeout
+intersects interrupted on time
+ERROR:  canceling statement due to statement timeout
+overlaps interrupted on time
+ERROR:  canceling statement due to statement timeout
+relate interrupted on time
diff --git a/regress/knn.sql b/regress/knn.sql
index df0929b..2f10f2d 100644
--- a/regress/knn.sql
+++ b/regress/knn.sql
@@ -21,15 +21,16 @@ END;
 $$;
 
 \i regress_lots_of_points.sql
-CREATE INDEX on test using gist (the_geom);
 
 -- Index-supported KNN query
 
+CREATE INDEX test_gist_2d on test using gist (the_geom);
+
 SELECT '<-> idx', qnodes('select * from test order by the_geom <-> ST_MakePoint(0,0) LIMIT 1');
 SELECT '<-> res1',num,
-  (the_geom <-> 'LINESTRING(0 0,5 5)'::geometry)::numeric(10,2),
+  (the_geom <-> 'POINT(2.5 2.5)'::geometry)::numeric(10,2),
   ST_astext(the_geom) from test
-  order by the_geom <-> 'LINESTRING(0 0,5 5)'::geometry LIMIT 1;
+  order by the_geom <-> 'POINT(2.5 2.5)'::geometry LIMIT 1;
 
 -- Full table extent: BOX(0.0439142361 0.0197799355,999.955261 999.993652)
 SELECT '<#> idx', qnodes('select * from test order by the_geom <#> ST_MakePoint(0,0) LIMIT 1');
@@ -38,6 +39,62 @@ SELECT '<#> res1',num,
   ST_astext(the_geom) from test
   order by the_geom <#> 'LINESTRING(1000 0,1005 5)'::geometry LIMIT 1;
 
+-- Index-supported nd-KNN query
+
+DROP INDEX test_gist_2d;
+
+UPDATE test set the_geom = ST_MakePoint(
+    ST_X(the_geom), ST_Y(the_geom),
+    num, -num);
+
+SELECT '<<->> seq', qnodes('select * from test order by the_geom <<->> ST_MakePoint(0,0)');
+
+CREATE INDEX test_gist_nd on test using gist (the_geom gist_geometry_ops_nd);
+
+ANALYZE test;
+
+--  EXT       X                Y          Z        M
+-- min    0.0439142361 |   0.0197799355|     1| -50000
+-- max  999.955261     | 999.993652    | 50000|     -1
+--SELECT min(st_x(the_geom)) as minx, min(st_y(the_geom)) as miny,
+--       min(st_z(the_geom)) as minz, min(st_m(the_geom)) as minm,
+--       max(st_x(the_geom)) as maxx, max(st_y(the_geom)) as maxy,
+--       max(st_z(the_geom)) as maxz, max(st_m(the_geom)) as maxm
+--FROM test;
+
+
+SELECT '<<->> idx', qnodes('select * from test order by the_geom <<->> ST_MakePoint(0,0) LIMIT 1');
+SELECT '<<->> res1',num,
+  (the_geom <<->> 'LINESTRING(0 0,5 5)'::geometry)::numeric(10,2),
+  ST_astext(the_geom) from test
+  order by the_geom <<->> 'LINESTRING(0 0,5 5)'::geometry LIMIT 1;
+SELECT '<<->> res2',num,
+  (the_geom <<->> 'POINT(95 23 25024 -25025)'::geometry)::numeric(10,2),
+  ST_astext(the_geom) from test
+  order by the_geom <<->> 'POINT(95 23 25024 -25025)'::geometry LIMIT 1;
+SELECT '<<->> res3',num,
+  (the_geom <<->> 'POINT(631 729 25023 -25022)'::geometry)::numeric(10,2),
+  ST_astext(the_geom) from test
+  order by the_geom <<->> 'POINT(631 729 25023 -25022)'::geometry LIMIT 1;
+
+
+-- Cleanup
+
 DROP FUNCTION qnodes(text);
 
 DROP TABLE test;
+
+-- nd box centroid distance  <<->>
+
+select '<<->> ndcd1', 'LINESTRING(0 0,0 10,10 10)'::geometry <<->>
+                'LINESTRING(6 2,6 8)'::geometry; -- 1
+select '<<->> ndcd2', 'LINESTRING(0 0,0 10,10 10)'::geometry <<->>
+                'LINESTRING(11 0,19 10)'::geometry; -- 10
+select '<<->> ndcd3', 'POINTM(0 0 0)'::geometry <<->>
+                'POINTM(0 0 5)'::geometry; -- 5
+select '<<->> ndcd4', 'POINTZ(0 0 15)'::geometry <<->>
+                'POINTZ(0 0 10)'::geometry; -- 5
+select '<<->> ndcd5', 'POINTZM(1 2 3 4)'::geometry <<->>
+                'POINTZM(2 3 4 5)'::geometry; -- 2
+select '<<->> ndcd6', 'POINTZM(9 9 3 4)'::geometry <<->>
+                'POINT(9 8)'::geometry; -- 1, higher dimensions overlapping
diff --git a/regress/knn_expected b/regress/knn_expected
index 5a63f27..a09fce6 100644
--- a/regress/knn_expected
+++ b/regress/knn_expected
@@ -2,3 +2,14 @@
 <-> res1|48589|0.17|POINT(2.33793712 2.44566727)
 <#> idx|Index Scan
 <#> res1|2057|0.83|POINT(999.173279 3.92185807)
+<<->> seq|Seq Scan
+<<->> idx|Index Scan
+<<->> res1|48589|0.17|POINT ZM (2.33793712 2.44566727 48589 -48589)
+<<->> res2|25025|1.20|POINT ZM (95.6546249 23.0995369 25025 -25025)
+<<->> res3|25023|1.27|POINT ZM (631.060242 729.787354 25023 -25023)
+<<->> ndcd1|1
+<<->> ndcd2|10
+<<->> ndcd3|5
+<<->> ndcd4|5
+<<->> ndcd5|2
+<<->> ndcd6|1
diff --git a/regress/knn_recheck.sql b/regress/knn_recheck.sql
new file mode 100644
index 0000000..a4052b4
--- /dev/null
+++ b/regress/knn_recheck.sql
@@ -0,0 +1,222 @@
+-- create table
+CREATE TABLE knn_recheck_geom(gid serial primary key, geom geometry);
+INSERT INTO knn_recheck_geom(gid,geom)
+SELECT ROW_NUMBER() OVER(ORDER BY x,y) AS gid, ST_Point(x*0.777,y*0.887) As geom
+FROM generate_series(-100,1000, 7) AS x CROSS JOIN generate_series(-300,1000,9) As y;
+
+INSERT INTO knn_recheck_geom(gid, geom)
+SELECT 500000 + i, ST_Translate('LINESTRING(-100 300, 500 700, 400 123, 500 10000, 1 1)'::geometry, i*2000,0)
+FROM generate_series(0,10) i;
+
+INSERT INTO knn_recheck_geom(gid, geom)
+SELECT 500100 + i, ST_Translate('POLYGON((100 800, 100 700, 400 123, 405 124, 100 800))'::geometry,0,i*2000)
+FROM generate_series(0,3) i;
+
+
+INSERT INTO knn_recheck_geom(gid,geom)
+SELECT 600000 + ROW_NUMBER() OVER(ORDER BY gid) AS gid, ST_Translate(ST_Buffer(geom,8,15),100,300) As geom
+FROM knn_recheck_geom
+WHERE gid IN(1000, 10000, 2000,3000);
+
+
+-- without index order should match st_distance order --
+-- point check
+
+SELECT '#1' As t, gid, ST_Distance( 'POINT(-305 998.5)'::geometry, geom)::numeric(10,2)
+FROM knn_recheck_geom
+ORDER BY 'POINT(-305 998.5)'::geometry <-> geom LIMIT 5;
+
+-- linestring check
+SELECT '#2' As t, gid, ST_Distance( 'MULTILINESTRING((-95 -300, 100 200, 100 323),(-50 2000, 30 6000))'::geometry, geom)::numeric(12,4)
+FROM knn_recheck_geom
+ORDER BY 'MULTILINESTRING((-95 -300, 100 200, 100 323),(-50 2000, 30 6000))'::geometry <-> geom LIMIT 5;
+
+-- lateral check before index
+SELECT '#3' As t, a.gid, b.gid As match, ST_Distance(a.geom, b.geom)::numeric(15,4) As true_rn, b.knn_dist::numeric(15,4)
+FROM knn_recheck_geom As a 
+	LEFT JOIN 
+		LATERAL ( SELECT  gid, geom, a.geom <-> g.geom As knn_dist
+			FROM knn_recheck_geom As g WHERE a.gid <> g.gid ORDER BY a.geom <-> g.geom LIMIT 5) As b ON true
+	WHERE a.gid IN(1,500101,500003)
+ORDER BY a.gid, true_rn;
+
+-- create index and repeat
+CREATE INDEX idx_knn_recheck_geom_gist ON knn_recheck_geom USING gist(geom);
+vacuum analyze knn_recheck_geom;
+
+set enable_seqscan = false;
+SELECT '#1' As t, gid, ST_Distance( 'POINT(-305 998.5)'::geometry, geom)::numeric(10,2)
+FROM knn_recheck_geom
+ORDER BY 'POINT(-305 998.5)'::geometry <-> geom LIMIT 5;
+
+-- linestring check
+SELECT '#2' As t, gid, ST_Distance( 'MULTILINESTRING((-95 -300, 100 200, 100 323),(-50 2000, 30 6000))'::geometry, geom)::numeric(12,4)
+FROM knn_recheck_geom
+ORDER BY 'MULTILINESTRING((-95 -300, 100 200, 100 323),(-50 2000, 30 6000))'::geometry <-> geom LIMIT 5;
+
+-- lateral check before index
+SELECT '#3' As t, a.gid, b.gid As match, ST_Distance(a.geom, b.geom)::numeric(15,4) As true_rn, b.knn_dist::numeric(15,4)
+FROM knn_recheck_geom As a 
+	LEFT JOIN 
+		LATERAL ( SELECT  gid, geom, a.geom <-> g.geom As knn_dist
+			FROM knn_recheck_geom As g WHERE a.gid <> g.gid ORDER BY a.geom <-> g.geom LIMIT 5) As b ON true
+	WHERE a.gid IN(1,500101,500003)
+ORDER BY a.gid, true_rn;
+
+DROP TABLE knn_recheck_geom;
+
+-- geography tests
+DELETE FROM spatial_ref_sys where srid = 4326;
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","proj4text") 
+    VALUES (4326,'EPSG',4326,'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ');
+-- create table
+CREATE TABLE knn_recheck_geog(gid serial primary key, geog geography);
+INSERT INTO knn_recheck_geog(gid,geog)
+SELECT ROW_NUMBER() OVER(ORDER BY x,y) AS gid, ST_Point(x*1.11,y*0.95)::geography As geog
+FROM generate_series(-100,100, 1) AS x CROSS JOIN generate_series(-90,90,1) As y;
+
+INSERT INTO knn_recheck_geog(gid, geog)
+SELECT 500000, 'LINESTRING(-95 -10, -93 -10.5, -90 -10.6, -95 -10.5, -95 -10)'::geography;
+
+INSERT INTO knn_recheck_geog(gid, geog)
+SELECT 500001, 'POLYGON((-95 10, -95.6 10.5, -95.9 10.75, -95 10))'::geography;
+
+INSERT INTO knn_recheck_geog(gid,geog)
+SELECT 600000 + ROW_NUMBER() OVER(ORDER BY gid) AS gid, ST_Buffer(geog,1000) As geog
+FROM knn_recheck_geog
+WHERE gid IN(1000, 10000, 2000, 2614, 40000);
+
+
+SELECT '#1g' As t, gid, ST_Distance( 'POINT(-95 -10)'::geography, geog, false)::numeric(12,4) ,
+    ('POINT(-95 -10)'::geography <-> geog )::numeric(12,4)
+FROM knn_recheck_geog
+ORDER BY 'POINT(-95 -10)'::geography <-> geog LIMIT 5;
+
+SELECT '#2g' As t, gid, ST_Distance( 'LINESTRING(75 10, 75 12, 80 20)'::geography, geog, false)::numeric(12,4),
+    ('LINESTRING(75 10, 75 12, 80 20)'::geography <-> geog)::numeric(12,4) As knn_dist
+FROM knn_recheck_geog
+ORDER BY 'LINESTRING(75 10, 75 12, 80 20)'::geography <-> geog LIMIT 5;
+
+-- lateral check before index
+SELECT '#3g' As t, a.gid,  ARRAY(SELECT  gid
+			FROM knn_recheck_geog As g WHERE a.gid <> g.gid ORDER BY ST_Distance(a.geog, g.geog, false) LIMIT 5) = ARRAY(SELECT  gid
+			FROM knn_recheck_geog As g WHERE a.gid <> g.gid ORDER BY a.geog <-> g.geog LIMIT 5) As dist_order_agree
+FROM knn_recheck_geog As a 
+	WHERE a.gid IN(500000,500010,1000,2614)
+ORDER BY a.gid;
+
+
+-- create index and repeat
+CREATE INDEX idx_knn_recheck_geog_gist ON knn_recheck_geog USING gist(geog);
+vacuum analyze knn_recheck_geog;
+set enable_seqscan = false;
+
+SELECT '#1g' As t, gid, ST_Distance( 'POINT(-95 -10)'::geography, geog, false)::numeric(12,4) ,
+    ('POINT(-95 -10)'::geography <-> geog )::numeric(12,4)
+FROM knn_recheck_geog
+ORDER BY 'POINT(-95 -10)'::geography <-> geog LIMIT 5;
+
+SELECT '#2g' As t, gid, ST_Distance( 'LINESTRING(75 10, 75 12, 80 20)'::geography, geog, false)::numeric(12,4),
+    ('LINESTRING(75 10, 75 12, 80 20)'::geography <-> geog)::numeric(12,4) As knn_dist
+FROM knn_recheck_geog
+ORDER BY 'LINESTRING(75 10, 75 12, 80 20)'::geography <-> geog LIMIT 5;
+
+SELECT '#3g' As t, a.gid,  ARRAY(SELECT  gid
+			FROM knn_recheck_geog As g WHERE a.gid <> g.gid ORDER BY ST_Distance(a.geog, g.geog, false) LIMIT 5) = ARRAY(SELECT  gid
+			FROM knn_recheck_geog As g WHERE a.gid <> g.gid ORDER BY a.geog <-> g.geog LIMIT 5) As dist_order_agree
+FROM knn_recheck_geog As a 
+	WHERE a.gid IN(500000,500010,1000,2614)
+ORDER BY a.gid;
+
+DROP TABLE knn_recheck_geog;
+
+--
+-- Delete inserted spatial data
+--
+DELETE FROM spatial_ref_sys WHERE srid = 4326;
+
+--now the nd operator tests
+-- create table and load
+CREATE TABLE knn_recheck_geom_nd(gid serial primary key, geom geometry);
+INSERT INTO knn_recheck_geom_nd(gid,geom)
+SELECT ROW_NUMBER() OVER(ORDER BY x,y) AS gid, ST_MakePoint(x*0.777,y*0.887,z*1.05) As geom
+FROM generate_series(-100,1000, 7) AS x , 
+    generate_series(-300,1000,9) As y,
+ generate_series(1005,10000,5555) As z ;
+
+ -- 3d lines
+INSERT INTO knn_recheck_geom_nd(gid, geom)
+SELECT 500000 + i, ST_Translate('LINESTRING(-100 300 500, 500 700 600, 400 123 0, 500 10000 -1234, 1 1 5000)'::geometry, i*2000,0)
+FROM generate_series(0,10) i;
+
+
+-- 3d polygons
+INSERT INTO knn_recheck_geom_nd(gid, geom)
+SELECT 500100 + i, ST_Translate('POLYGON((100 800 5678, 100 700 5678, 400 123 5678, 405 124 5678, 100 800 5678))'::geometry,0,i*2000)
+FROM generate_series(0,3) i;
+
+-- polyhedral surface --
+INSERT INTO knn_recheck_geom_nd(gid,geom)
+SELECT 600000 + row_number() over(), ST_Translate(the_geom,100, 450,1000) As the_geom
+		FROM (VALUES ( ST_GeomFromText(
+'PolyhedralSurface( 
+((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  
+((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)),  ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),  
+((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),  ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) 
+)') ) ,
+( ST_GeomFromText(
+'PolyhedralSurface( 
+((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),  
+((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)) )') ) )
+As foo(the_geom) ;
+
+-- without index order should match st_3ddistance order --
+-- point check
+SELECT '#1nd-3' As t, gid, ST_3DDistance( 'POINT(-305 998.5 1000)'::geometry, geom)::numeric(12,4) As dist3d,
+('POINT(-305 998.5 1000)'::geometry <<->> geom)::numeric(12,4) As dist_knn
+FROM knn_recheck_geom_nd
+ORDER BY 'POINT(-305 998.5 1000)'::geometry <<->> geom LIMIT 5;
+
+-- linestring check 
+SELECT '#2nd-3' As t, gid, ST_3DDistance( 'MULTILINESTRING((-95 -300 5000, 105 451 1000, 100 323 200),(-50 2000 456, 30 6000 789))'::geometry::geometry, geom)::numeric(12,4),
+ ('MULTILINESTRING((-95 -300 5000, 105 451 1000, 100 323 200),(-50 2000 456, 30 6000 789))'::geometry <<->> geom)::numeric(12,4) As knn_dist
+FROM knn_recheck_geom_nd
+ORDER BY 'MULTILINESTRING((-95 -300 5000, 105 451 1000, 100 323 200),(-50 2000 456, 30 6000 789))'::geometry <<->> geom LIMIT 5;
+
+-- lateral test
+SELECT '#3nd-3' As t, a.gid, b.gid As match, ST_3DDistance(a.geom, b.geom)::numeric(15,4) As true_rn, b.knn_dist::numeric(15,4)
+FROM knn_recheck_geom_nd As a 
+	LEFT JOIN 
+		LATERAL ( SELECT  gid, geom, a.geom <<->> g.geom As knn_dist
+			FROM knn_recheck_geom_nd As g WHERE a.gid <> g.gid ORDER BY a.geom <<->> g.geom LIMIT 5) As b ON true
+	WHERE a.gid IN(1,500003,600001)
+ORDER BY a.gid, true_rn;
+
+-- create index and repeat
+CREATE INDEX idx_knn_recheck_geom_nd_gist ON knn_recheck_geom_nd USING gist(geom gist_geometry_ops_nd);
+vacuum analyze knn_recheck_geom_nd;
+set enable_seqscan = false;
+-- point check
+SELECT '#1nd-3' As t, gid, ST_3DDistance( 'POINT(-305 998.5 1000)'::geometry, geom)::numeric(12,4) As dist3d,
+('POINT(-305 998.5 1000)'::geometry <<->> geom)::numeric(12,4) As dist_knn
+FROM knn_recheck_geom_nd
+ORDER BY 'POINT(-305 998.5 1000)'::geometry <<->> geom LIMIT 5;
+
+-- linestring check 
+SELECT '#2nd-3' As t, gid, ST_3DDistance( 'MULTILINESTRING((-95 -300 5000, 105 451 1000, 100 323 200),(-50 2000 456, 30 6000 789))'::geometry::geometry, geom)::numeric(12,4),
+ ('MULTILINESTRING((-95 -300 5000, 105 451 1000, 100 323 200),(-50 2000 456, 30 6000 789))'::geometry <<->> geom)::numeric(12,4) As knn_dist
+FROM knn_recheck_geom_nd
+ORDER BY 'MULTILINESTRING((-95 -300 5000, 105 451 1000, 100 323 200),(-50 2000 456, 30 6000 789))'::geometry <<->> geom LIMIT 5;
+
+-- lateral test
+SELECT '#3nd-3' As t, a.gid, b.gid As match, ST_3DDistance(a.geom, b.geom)::numeric(15,4) As true_rn, b.knn_dist::numeric(15,4)
+FROM knn_recheck_geom_nd As a 
+	LEFT JOIN 
+		LATERAL ( SELECT  gid, geom, a.geom <<->> g.geom As knn_dist
+			FROM knn_recheck_geom_nd As g WHERE a.gid <> g.gid ORDER BY a.geom <<->> g.geom LIMIT 5) As b ON true
+	WHERE a.gid IN(1,500003,600001)
+ORDER BY a.gid, true_rn;
+
+
+DROP TABLE knn_recheck_geom_nd;
+
diff --git a/regress/knn_recheck_expected b/regress/knn_recheck_expected
new file mode 100644
index 0000000..ca79418
--- /dev/null
+++ b/regress/knn_recheck_expected
@@ -0,0 +1,126 @@
+#1|145|254.76
+#1|144|258.46
+#1|290|259.62
+#1|143|262.35
+#1|289|263.26
+#2|3084|0.0094
+#2|2497|0.0256
+#2|3671|0.0444
+#2|1910|0.0607
+#2|4258|0.0794
+#3|1|146|5.4390|5.4390
+#3|1|2|7.9830|7.9830
+#3|1|147|9.6598|9.6598
+#3|1|291|10.8780|10.8780
+#3|1|292|13.4929|13.4929
+#3|500003|500004|1447.7424|1447.7424
+#3|500003|500002|1447.7424|1447.7424
+#3|500003|500001|3423.4486|3423.4486
+#3|500003|500005|3423.4486|3423.4486
+#3|500003|22837|5123.7770|5123.7770
+#3|500101|500000|0.0000|0.0000
+#3|500101|600004|971.4947|971.4947
+#3|500101|600001|1106.0791|1106.0791
+#3|500101|600002|1210.3577|1210.3577
+#3|500101|12905|1239.5484|1239.5484
+#1|145|254.76
+#1|144|258.46
+#1|290|259.62
+#1|143|262.35
+#1|289|263.26
+#2|3084|0.0094
+#2|2497|0.0256
+#2|3671|0.0444
+#2|1910|0.0607
+#2|4258|0.0794
+#3|1|146|5.4390|5.4390
+#3|1|2|7.9830|7.9830
+#3|1|147|9.6598|9.6598
+#3|1|291|10.8780|10.8780
+#3|1|292|13.4929|13.4929
+#3|500003|500004|1447.7424|1447.7424
+#3|500003|500002|1447.7424|1447.7424
+#3|500003|500001|3423.4486|3423.4486
+#3|500003|500005|3423.4486|3423.4486
+#3|500003|22837|5123.7770|5123.7770
+#3|500101|500000|0.0000|0.0000
+#3|500101|600004|971.4947|971.4947
+#3|500101|600001|1106.0791|1106.0791
+#3|500101|600002|1210.3577|1210.3577
+#3|500101|12905|1239.5484|1239.5484
+#1g|500000|0.0000|0.0000
+#1g|600003|69974.6935|69974.6935
+#1g|2614|70976.1794|70976.1794
+#1g|2615|75048.8551|75048.8551
+#1g|2795|86965.9298|86965.9298
+#2g|31244|4189.9122|4189.9122
+#2g|31061|6756.6424|6756.6424
+#2g|30878|15161.4706|15161.4706
+#2g|30695|21264.3654|21264.3654
+#2g|30512|25313.2118|25313.2118
+#3g|1000|t
+#3g|2614|t
+#3g|500000|t
+#1g|500000|0.0000|0.0000
+#1g|600003|69974.6935|69974.6935
+#1g|2614|70976.1794|70976.1794
+#1g|2615|75048.8551|75048.8551
+#1g|2795|86965.9298|86965.9298
+#2g|31244|4189.9122|4189.9122
+#2g|31061|6756.6424|6756.6424
+#2g|30878|15161.4706|15161.4706
+#2g|30695|21264.3654|21264.3654
+#2g|30512|25313.2118|25313.2118
+#3g|1000|t
+#3g|2614|t
+#3g|500000|t
+#1nd-3|290|260.6797|260.6797
+#1nd-3|287|264.3000|264.3000
+#1nd-3|579|265.4356|265.4356
+#1nd-3|285|268.1092|268.1092
+#1nd-3|578|268.9919|268.9919
+#2nd-3|9749|3.7272|3.7272
+#2nd-3|600001|3.9451|3.9451
+#2nd-3|600002|3.9950|3.9950
+#2nd-3|9748|4.1707|4.1707
+#2nd-3|10040|6.1761|6.1761
+#3nd-3|1|292|5.4390|5.4390
+#3nd-3|1|3|7.9830|7.9830
+#3nd-3|1|294|9.6598|9.6598
+#3nd-3|1|582|10.8780|10.8780
+#3nd-3|1|583|13.4929|13.4929
+#3nd-3|500003|500004|1448.3262|1448.3262
+#3nd-3|500003|500002|1448.3262|1448.3262
+#3nd-3|500003|500001|3424.9088|3424.9088
+#3nd-3|500003|500005|3424.9088|3424.9088
+#3nd-3|500003|45674|5153.7747|5153.7747
+#3nd-3|600001|600002|0.0000|0.0000
+#3nd-3|600001|9752|54.2730|54.2730
+#3nd-3|600001|9461|54.3900|54.3900
+#3nd-3|600001|9749|54.5453|54.5453
+#3nd-3|600001|10041|54.6233|54.6233
+#1nd-3|290|260.6797|260.6797
+#1nd-3|287|264.3000|264.3000
+#1nd-3|579|265.4356|265.4356
+#1nd-3|285|268.1092|268.1092
+#1nd-3|578|268.9919|268.9919
+#2nd-3|9749|3.7272|3.7272
+#2nd-3|600001|3.9451|3.9451
+#2nd-3|600002|3.9950|3.9950
+#2nd-3|9748|4.1707|4.1707
+#2nd-3|10040|6.1761|6.1761
+#3nd-3|1|292|5.4390|5.4390
+#3nd-3|1|3|7.9830|7.9830
+#3nd-3|1|294|9.6598|9.6598
+#3nd-3|1|582|10.8780|10.8780
+#3nd-3|1|583|13.4929|13.4929
+#3nd-3|500003|500004|1448.3262|1448.3262
+#3nd-3|500003|500002|1448.3262|1448.3262
+#3nd-3|500003|500001|3424.9088|3424.9088
+#3nd-3|500003|500005|3424.9088|3424.9088
+#3nd-3|500003|45674|5153.7747|5153.7747
+#3nd-3|600001|600002|0.0000|0.0000
+#3nd-3|600001|9752|54.2730|54.2730
+#3nd-3|600001|9461|54.3900|54.3900
+#3nd-3|600001|9749|54.5453|54.5453
+#3nd-3|600001|10041|54.6233|54.6233
diff --git a/regress/loader/Latin1-implicit.dbf b/regress/loader/Latin1-implicit.dbf
new file mode 100644
index 0000000..34b05d1
Binary files /dev/null and b/regress/loader/Latin1-implicit.dbf differ
diff --git a/regress/loader/Latin1-implicit.select.expected b/regress/loader/Latin1-implicit.select.expected
new file mode 100644
index 0000000..3f9b462
--- /dev/null
+++ b/regress/loader/Latin1-implicit.select.expected
@@ -0,0 +1 @@
+1|Tårneby in Våler I Solør kommune
diff --git a/regress/loader/Latin1-implicit.select.sql b/regress/loader/Latin1-implicit.select.sql
new file mode 100644
index 0000000..b8140ce
--- /dev/null
+++ b/regress/loader/Latin1-implicit.select.sql
@@ -0,0 +1,2 @@
+SET CLIENT_ENCODING to UTF8;
+SELECT * FROM loadedshp;
diff --git a/regress/loader/mfile.dbf b/regress/loader/mfile.dbf
new file mode 100644
index 0000000..36ee0c9
Binary files /dev/null and b/regress/loader/mfile.dbf differ
diff --git a/regress/loader/mfile.opts b/regress/loader/mfile.opts
new file mode 100644
index 0000000..d5c6312
--- /dev/null
+++ b/regress/loader/mfile.opts
@@ -0,0 +1,2 @@
+# The DBF with short names mapped to longer
+-m loader/mfile_mapping.txt
diff --git a/regress/loader/mfile.select.expected b/regress/loader/mfile.select.expected
new file mode 100644
index 0000000..b64b489
--- /dev/null
+++ b/regress/loader/mfile.select.expected
@@ -0,0 +1,3 @@
+This is Test 1|TT1|red
+This is Test 2|TT2|green
+This is Test 3|TT3|blue
diff --git a/regress/loader/mfile.select.sql b/regress/loader/mfile.select.sql
new file mode 100644
index 0000000..7ef0341
--- /dev/null
+++ b/regress/loader/mfile.select.sql
@@ -0,0 +1 @@
+select address, short_name, color from loadedshp order by 1;
diff --git a/regress/loader/mfile_mapping.txt b/regress/loader/mfile_mapping.txt
new file mode 100644
index 0000000..a5dc377
--- /dev/null
+++ b/regress/loader/mfile_mapping.txt
@@ -0,0 +1,2 @@
+address add
+short_name short
\ No newline at end of file
diff --git a/regress/lwgeom_regress.sql b/regress/lwgeom_regress.sql
index 0e00aa8..9e4807f 100644
--- a/regress/lwgeom_regress.sql
+++ b/regress/lwgeom_regress.sql
@@ -8,79 +8,80 @@ CREATE TABLE test_data (
 
 
 
-INSERT INTO test_data VALUES (1, 'MULTIPOINT(1 2)', '00000000040000000100000000013FF00000000000004000000000000000', '0104000000010000000101000000000000000000F03F0000000000000040');
-INSERT INTO test_data VALUES (-5, 'LINESTRING(1 2,3 4)', '0000000002000000023FF0000000000000400000000000000040080000000000004010000000000000', '010200000002000000000000000000F03F000000000000004000000000000008400000000000001040');
-INSERT INTO test_data VALUES (-4, 'LINESTRING(1 2 3,4 5 6)', '0080000002000000023FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000', '010200008002000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000001840');
-INSERT INTO test_data VALUES (110, 'GEOMETRYCOLLECTION(LINESTRING(1 2,3 4))', '0000000007000000010000000002000000023FF0000000000000400000000000000040080000000000004010000000000000', '010700000001000000010200000002000000000000000000F03F000000000000004000000000000008400000000000001040');
-INSERT INTO test_data VALUES (114, 'GEOMETRYCOLLECTION(LINESTRING(1 2,3 4),LINESTRING(5 6,7 8))', '0000000007000000020000000002000000023FF000000000000040000000000000004008000000000000401000000000000000000000020000000240140000000000004018000000000000401C0000000000004020000000000000', '010700000002000000010200000002000000000000000000F03F000000000000004000000000000008400000000000001040010200000002000000000000000000144000000000000018400000000000001C400000000000002040');
-INSERT INTO test_data VALUES (14, 'MULTILINESTRING((1 2,3 4),(5 6,7 8))', '0000000005000000020000000002000000023FF000000000000040000000000000004008000000000000401000000000000000000000020000000240140000000000004018000000000000401C0000000000004020000000000000', '010500000002000000010200000002000000000000000000F03F000000000000004000000000000008400000000000001040010200000002000000000000000000144000000000000018400000000000001C400000000000002040');
-INSERT INTO test_data VALUES (0, 'POINT(1 2)', '00000000013FF00000000000004000000000000000', '0101000000000000000000F03F0000000000000040');
-INSERT INTO test_data VALUES (101, 'GEOMETRYCOLLECTION(POINT(1 2))', '00000000070000000100000000013FF00000000000004000000000000000', '0107000000010000000101000000000000000000F03F0000000000000040');
-INSERT INTO test_data VALUES (-1, 'POINT(1 2 3)', '00800000013FF000000000000040000000000000004008000000000000', '0101000080000000000000F03F00000000000000400000000000000840');
-INSERT INTO test_data VALUES (118, 'GEOMETRYCOLLECTION(LINESTRING(1 2 -1,3 4 -2,5 6 -3),LINESTRING(7 8 -1,9 10 -2,11 12 -3))', '0080000007000000020080000002000000033FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000040140000000000004018000000000000C008000000000000008000000200000003401C0000000000004020000000000000BFF000000000000040220000000000004024000000000000C00000000000000040260000000000004028000000000000C008000000000000', '010700008002000000 [...]
-INSERT INTO test_data VALUES (-8, 'LINESTRING(1 2,3 4,5 6,7 8,9 10)', '0000000002000000053FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000401C000000000000402000000000000040220000000000004024000000000000', '010200000005000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C40000000000000204000000000000022400000000000002440');
-INSERT INTO test_data VALUES (115, 'GEOMETRYCOLLECTION(LINESTRING(1 2,3 4,5 6),LINESTRING(7 8,9 10))', '0000000007000000020000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000000000000200000002401C000000000000402000000000000040220000000000004024000000000000', '010700000002000000010200000003000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400102000000020000000000000000001C400000 [...]
-INSERT INTO test_data VALUES (117, 'GEOMETRYCOLLECTION(LINESTRING(5 6 -55,7 8 -22),LINESTRING(1 2 -1,3 4 -2))', '00800000070000000200800000020000000240140000000000004018000000000000C04B800000000000401C0000000000004020000000000000C0360000000000000080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C000000000000000', '010700008002000000010200008002000000000000000000144000000000000018400000000000804BC00000000000001C4000000000000020400000000000003 [...]
-INSERT INTO test_data VALUES (-7, 'LINESTRING(1 2,3 4,5 6,7 8)', '0000000002000000043FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000401C0000000000004020000000000000', '010200000004000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C400000000000002040');
-INSERT INTO test_data VALUES (105, 'GEOMETRYCOLLECTION(POINT(1 2 -1))', '00800000070000000100800000013FF00000000000004000000000000000BFF0000000000000', '0107000080010000000101000080000000000000F03F0000000000000040000000000000F0BF');
-INSERT INTO test_data VALUES (112, 'GEOMETRYCOLLECTION(LINESTRING(1 2 -1,3 4 -2))', '0080000007000000010080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C000000000000000', '010700008001000000010200008002000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C0');
-INSERT INTO test_data VALUES (-6, 'LINESTRING(1 2,3 4,5 6)', '0000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000', '010200000003000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000001840');
-INSERT INTO test_data VALUES (111, 'GEOMETRYCOLLECTION(LINESTRING(1 2,3 4,5 6))', '0000000007000000010000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000', '010700000001000000010200000003000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000001840');
-INSERT INTO test_data VALUES (18, 'MULTILINESTRING((1 2 -1,3 4 -2,5 6 -3),(7 8 -1,9 10 -2,11 12 -3))', '0080000005000000020080000002000000033FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000040140000000000004018000000000000C008000000000000008000000200000003401C0000000000004020000000000000BFF000000000000040220000000000004024000000000000C00000000000000040260000000000004028000000000000C008000000000000', '010500008002000000010200008003000000000000 [...]
-INSERT INTO test_data VALUES (127, 'GEOMETRYCOLLECTION(POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)),POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2)))', '0000000007000000020000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A0000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCC [...]
-INSERT INTO test_data VALUES (120, 'GEOMETRYCOLLECTION(POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)))', '0000000007000000010000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A', '0107000000010000000103000000010000000500000000000000000000009A9999999999B93F9A9999999999C93F9A99999999992440CDCCCCCCCCCC244000000000000025406666666666662540333333333333E33F00 [...]
-INSERT INTO test_data VALUES (100, 'GEOMETRYCOLLECTION(POINT(1 2),POINT(3 4))', '00000000070000000200000000013FF00000000000004000000000000000000000000140080000000000004010000000000000', '0107000000020000000101000000000000000000F03F0000000000000040010100000000000000000008400000000000001040');
-INSERT INTO test_data VALUES (122, 'GEOMETRYCOLLECTION(POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2)))', '0000000007000000010000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A000000054000000000000000400000000000000040000000000000004008000000000000400800000000000040080000000000004008000000000000400000000000000040000000000000004000 [...]
-INSERT INTO test_data VALUES (27, 'MULTIPOLYGON(((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)),((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2)))', '0000000006000000020000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A0000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD40250000000000004025 [...]
-INSERT INTO test_data VALUES (106, 'GEOMETRYCOLLECTION(POINT(1 2 -2),POINT(3 4 -2),POINT(5 6 -3))', '00800000070000000300800000013FF00000000000004000000000000000C000000000000000008000000140080000000000004010000000000000C000000000000000008000000140140000000000004018000000000000C008000000000000', '0107000080030000000101000080000000000000F03F000000000000004000000000000000C001010000800000000000000840000000000000104000000000000000C001010000800000000000001440000000000000184000000000000008C0');
-INSERT INTO test_data VALUES (11, 'MULTILINESTRING((1 2,3 4,5 6))', '0000000005000000010000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000', '010500000001000000010200000003000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000001840');
-INSERT INTO test_data VALUES (12, 'MULTILINESTRING((1 2 -1,3 4 -2))', '0080000005000000010080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C000000000000000', '010500008001000000010200008002000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C0');
-INSERT INTO test_data VALUES (13, 'MULTILINESTRING((1 2 -1,3 4 -2,5 6 -3))', '0080000005000000010080000002000000033FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000040140000000000004018000000000000C008000000000000', '010500008001000000010200008003000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C00000000000001440000000000000184000000000000008C0');
-INSERT INTO test_data VALUES (102, 'GEOMETRYCOLLECTION(POINT(1 2),POINT(3 4),POINT(5 6))', '00000000070000000300000000013FF00000000000004000000000000000000000000140080000000000004010000000000000000000000140140000000000004018000000000000', '0107000000030000000101000000000000000000F03F0000000000000040010100000000000000000008400000000000001040010100000000000000000014400000000000001840');
-INSERT INTO test_data VALUES (104, 'GEOMETRYCOLLECTION(POINT(1 2 -1),POINT(3 4 -2))', '00800000070000000200800000013FF00000000000004000000000000000BFF0000000000000008000000140080000000000004010000000000000C000000000000000', '0107000080020000000101000080000000000000F03F0000000000000040000000000000F0BF01010000800000000000000840000000000000104000000000000000C0');
-INSERT INTO test_data VALUES (17, 'MULTILINESTRING((5 6 -55,7 8 -22),(1 2 -1,3 4 -2))', '00800000050000000200800000020000000240140000000000004018000000000000C04B800000000000401C0000000000004020000000000000C0360000000000000080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C000000000000000', '010500008002000000010200008002000000000000000000144000000000000018400000000000804BC00000000000001C40000000000000204000000000000036C0010200008002000000000 [...]
-INSERT INTO test_data VALUES (113, 'GEOMETRYCOLLECTION(LINESTRING(1 2 -1,3 4 -2,5 6 -3))', '0080000007000000010080000002000000033FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000040140000000000004018000000000000C008000000000000', '010700008001000000010200008003000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C00000000000001440000000000000184000000000000008C0');
-INSERT INTO test_data VALUES (-3, 'LINESTRING(1 2 3,4 5 6,7 8 9)', '0080000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000401C00000000000040200000000000004022000000000000', '010200008003000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C4000000000000020400000000000002240');
-INSERT INTO test_data VALUES (21, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000006000000010080000003000000010000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B', '0106000080010000000103000080010000000500000000000000000000009A9999999999B93F7B [...]
-INSERT INTO test_data VALUES (116, 'GEOMETRYCOLLECTION(LINESTRING(1 2 -1,3 4 -2),LINESTRING(5 6 -55,7 8 -22))', '0080000007000000020080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000000800000020000000240140000000000004018000000000000C04B800000000000401C0000000000004020000000000000C036000000000000', '010700008002000000010200008002000000000000000000F03F0000000000000040000000000000F0BF000000000000084000000000000010400000000000000 [...]
-INSERT INTO test_data VALUES (-2, 'LINESTRING(1 2 3,4 5 6,7 8 9,10 11 12)', '0080000002000000043FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000401C00000000000040200000000000004022000000000000402400000000000040260000000000004028000000000000', '010200008004000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C4000000000000020400000000000002240000000000000244000000000000026400000000 [...]
-INSERT INTO test_data VALUES (2, 'MULTIPOINT(1 2,3 4)', '00000000040000000200000000013FF00000000000004000000000000000000000000140080000000000004010000000000000', '0104000000020000000101000000000000000000F03F0000000000000040010100000000000000000008400000000000001040');
-INSERT INTO test_data VALUES (3, 'MULTIPOINT(1 2 3,4 5 6)', '00800000040000000200800000013FF0000000000000400000000000000040080000000000000080000001401000000000000040140000000000004018000000000000', '0104000080020000000101000080000000000000F03F000000000000004000000000000008400101000080000000000000104000000000000014400000000000001840');
-INSERT INTO test_data VALUES (4, 'MULTIPOINT(1 2 3,4 5 6,7 8 9)', '00800000040000000300800000013FF00000000000004000000000000000400800000000000000800000014010000000000000401400000000000040180000000000000080000001401C00000000000040200000000000004022000000000000', '0104000080030000000101000080000000000000F03F00000000000000400000000000000840010100008000000000000010400000000000001440000000000000184001010000800000000000001C4000000000000020400000000000002240');
-INSERT INTO test_data VALUES (5, 'MULTIPOINT(1 2,4 5,7 8)', '00000000040000000300000000013FF000000000000040000000000000000000000001401000000000000040140000000000000000000001401C0000000000004020000000000000', '0104000000030000000101000000000000000000F03F000000000000004001010000000000000000001040000000000000144001010000000000000000001C400000000000002040');
-INSERT INTO test_data VALUES (10, 'MULTILINESTRING((1 2,3 4))', '0000000005000000010000000002000000023FF0000000000000400000000000000040080000000000004010000000000000', '010500000001000000010200000002000000000000000000F03F000000000000004000000000000008400000000000001040');
-INSERT INTO test_data VALUES (121, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000007000000010080000003000000010000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B', '0107000080010000000103000080010000000500000000000000000000009A99 [...]
-INSERT INTO test_data VALUES (123, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000007000000010080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B0000000540000000 [...]
-INSERT INTO test_data VALUES (125, 'GEOMETRYCOLLECTION(POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)),POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)))', '0000000007000000020000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A0000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256 [...]
-INSERT INTO test_data VALUES (15, 'MULTILINESTRING((1 2,3 4,5 6),(7 8,9 10))', '0000000005000000020000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000000000000200000002401C000000000000402000000000000040220000000000004024000000000000', '010500000002000000010200000003000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400102000000020000000000000000001C400000000000002040000000000000 [...]
-INSERT INTO test_data VALUES (16, 'MULTILINESTRING((1 2 -1,3 4 -2),(5 6 -55,7 8 -22))', '0080000005000000020080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000000800000020000000240140000000000004018000000000000C04B800000000000401C0000000000004020000000000000C036000000000000', '010500008002000000010200008002000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C0010200008002000000000 [...]
-INSERT INTO test_data VALUES (20, 'MULTIPOLYGON(((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)))', '0000000006000000010000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A', '0106000000010000000103000000010000000500000000000000000000009A9999999999B93F9A9999999999C93F9A99999999992440CDCCCCCCCCCC244000000000000025406666666666662540333333333333E33F0000000000000000 [...]
-INSERT INTO test_data VALUES (22, 'MULTIPOLYGON(((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2)))', '0000000006000000010000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A000000054000000000000000400000000000000040000000000000004008000000000000400800000000000040080000000000004008000000000000400000000000000040000000000000004000000000000000', [...]
-INSERT INTO test_data VALUES (23, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000006000000010080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B000000054000000000000000400000 [...]
-INSERT INTO test_data VALUES (24, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000006000000010080000003000000030000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE14 [...]
-INSERT INTO test_data VALUES (25, 'MULTIPOLYGON(((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)),((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)))', '0000000006000000020000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A0000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE3333333 [...]
-INSERT INTO test_data VALUES (26, 'MULTIPOLYGON(((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000006000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE3333333333333000000000000000000000000000000003FB999999999999A00000000000000000080000003000000010000000500 [...]
-INSERT INTO test_data VALUES (28, 'MULTIPOLYGON(((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000006000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE3333333333333000000000000000000000000000000003FB99999 [...]
-INSERT INTO test_data VALUES (29, 'MULTIPOLYGON(((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000006000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE333333333333300000000 [...]
-INSERT INTO test_data VALUES (30, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB99999 [...]
-INSERT INTO test_data VALUES (31, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B0000 [...]
-INSERT INTO test_data VALUES (32, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0),(2 2 0,2 3 0,3 3 0,3 2 0,2 2 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE1 [...]
-INSERT INTO test_data VALUES (33, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB8 [...]
-INSERT INTO test_data VALUES (34, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD [...]
-INSERT INTO test_data VALUES (124, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000007000000010080000003000000030000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999A [...]
-INSERT INTO test_data VALUES (126, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000007000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE3333333333333000000000000000000000000000000003FB999999999999A00000000000000000080000 [...]
-INSERT INTO test_data VALUES (128, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000007000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE33333333333330000000000000000000 [...]
-INSERT INTO test_data VALUES (129, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000007000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE [...]
-INSERT INTO test_data VALUES (130, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB9999 [...]
-INSERT INTO test_data VALUES (131, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B000 [...]
-INSERT INTO test_data VALUES (132, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0),(2 2 0,2 3 0,3 3 0,3 2 0,2 2 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE [...]
-INSERT INTO test_data VALUES (133, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB [...]
-INSERT INTO test_data VALUES (134, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCC [...]
-INSERT INTO test_data VALUES (-9, 'POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1))', '0000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A', '0103000000010000000500000000000000000000009A9999999999B93F9A9999999999C93F9A99999999992440CDCCCCCCCCCC244000000000000025406666666666662540333333333333E33F00000000000000009A9999999999B93F');
-INSERT INTO test_data VALUES (-10, 'POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01))', '0080000003000000010000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B', '0103000080010000000500000000000000000000009A9999999999B93F7B14AE47E17A84BF9A9999999999C93F9A9999999999 [...]
-INSERT INTO test_data VALUES (-11, 'POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2))', '0000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A000000054000000000000000400000000000000040000000000000004008000000000000400800000000000040080000000000004008000000000000400000000000000040000000000000004000000000000000', '0103000000020000000500 [...]
-INSERT INTO test_data VALUES (-12, 'POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01))', '0080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B0000000540000000000000004000000000000000BF847AE147AE14 [...]
-INSERT INTO test_data VALUES (-13, 'POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0))', '0080000003000000030000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B0000000540000000000000 [...]
+INSERT INTO test_data VALUES
+(1, 'MULTIPOINT(1 2)', '00000000040000000100000000013FF00000000000004000000000000000', '0104000000010000000101000000000000000000F03F0000000000000040'),
+(-5, 'LINESTRING(1 2,3 4)', '0000000002000000023FF0000000000000400000000000000040080000000000004010000000000000', '010200000002000000000000000000F03F000000000000004000000000000008400000000000001040'),
+(-4, 'LINESTRING(1 2 3,4 5 6)', '0080000002000000023FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000', '010200008002000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000001840'),
+(110, 'GEOMETRYCOLLECTION(LINESTRING(1 2,3 4))', '0000000007000000010000000002000000023FF0000000000000400000000000000040080000000000004010000000000000', '010700000001000000010200000002000000000000000000F03F000000000000004000000000000008400000000000001040'),
+(114, 'GEOMETRYCOLLECTION(LINESTRING(1 2,3 4),LINESTRING(5 6,7 8))', '0000000007000000020000000002000000023FF000000000000040000000000000004008000000000000401000000000000000000000020000000240140000000000004018000000000000401C0000000000004020000000000000', '010700000002000000010200000002000000000000000000F03F000000000000004000000000000008400000000000001040010200000002000000000000000000144000000000000018400000000000001C400000000000002040'),
+(14, 'MULTILINESTRING((1 2,3 4),(5 6,7 8))', '0000000005000000020000000002000000023FF000000000000040000000000000004008000000000000401000000000000000000000020000000240140000000000004018000000000000401C0000000000004020000000000000', '010500000002000000010200000002000000000000000000F03F000000000000004000000000000008400000000000001040010200000002000000000000000000144000000000000018400000000000001C400000000000002040'),
+(0, 'POINT(1 2)', '00000000013FF00000000000004000000000000000', '0101000000000000000000F03F0000000000000040'),
+(101, 'GEOMETRYCOLLECTION(POINT(1 2))', '00000000070000000100000000013FF00000000000004000000000000000', '0107000000010000000101000000000000000000F03F0000000000000040'),
+(-1, 'POINT(1 2 3)', '00800000013FF000000000000040000000000000004008000000000000', '0101000080000000000000F03F00000000000000400000000000000840'),
+(118, 'GEOMETRYCOLLECTION(LINESTRING(1 2 -1,3 4 -2,5 6 -3),LINESTRING(7 8 -1,9 10 -2,11 12 -3))', '0080000007000000020080000002000000033FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000040140000000000004018000000000000C008000000000000008000000200000003401C0000000000004020000000000000BFF000000000000040220000000000004024000000000000C00000000000000040260000000000004028000000000000C008000000000000', '01070000800200000001020000800300000000000000000 [...]
+(-8, 'LINESTRING(1 2,3 4,5 6,7 8,9 10)', '0000000002000000053FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000401C000000000000402000000000000040220000000000004024000000000000', '010200000005000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C40000000000000204000000000000022400000000000002440'),
+(115, 'GEOMETRYCOLLECTION(LINESTRING(1 2,3 4,5 6),LINESTRING(7 8,9 10))', '0000000007000000020000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000000000000200000002401C000000000000402000000000000040220000000000004024000000000000', '010700000002000000010200000003000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400102000000020000000000000000001C40000000000000204000000000000022400 [...]
+(117, 'GEOMETRYCOLLECTION(LINESTRING(5 6 -55,7 8 -22),LINESTRING(1 2 -1,3 4 -2))', '00800000070000000200800000020000000240140000000000004018000000000000C04B800000000000401C0000000000004020000000000000C0360000000000000080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C000000000000000', '010700008002000000010200008002000000000000000000144000000000000018400000000000804BC00000000000001C40000000000000204000000000000036C001020000800200000000000000 [...]
+(-7, 'LINESTRING(1 2,3 4,5 6,7 8)', '0000000002000000043FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000401C0000000000004020000000000000', '010200000004000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C400000000000002040'),
+(105, 'GEOMETRYCOLLECTION(POINT(1 2 -1))', '00800000070000000100800000013FF00000000000004000000000000000BFF0000000000000', '0107000080010000000101000080000000000000F03F0000000000000040000000000000F0BF'),
+(112, 'GEOMETRYCOLLECTION(LINESTRING(1 2 -1,3 4 -2))', '0080000007000000010080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C000000000000000', '010700008001000000010200008002000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C0'),
+(-6, 'LINESTRING(1 2,3 4,5 6)', '0000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000', '010200000003000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000001840'),
+(111, 'GEOMETRYCOLLECTION(LINESTRING(1 2,3 4,5 6))', '0000000007000000010000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000', '010700000001000000010200000003000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000001840'),
+(18, 'MULTILINESTRING((1 2 -1,3 4 -2,5 6 -3),(7 8 -1,9 10 -2,11 12 -3))', '0080000005000000020080000002000000033FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000040140000000000004018000000000000C008000000000000008000000200000003401C0000000000004020000000000000BFF000000000000040220000000000004024000000000000C00000000000000040260000000000004028000000000000C008000000000000', '010500008002000000010200008003000000000000000000F03F0000000000000040000 [...]
+(127, 'GEOMETRYCOLLECTION(POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)),POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2)))', '0000000007000000020000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A0000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD4025000000000000402566666666 [...]
+(120, 'GEOMETRYCOLLECTION(POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)))', '0000000007000000010000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A', '0107000000010000000103000000010000000500000000000000000000009A9999999999B93F9A9999999999C93F9A99999999992440CDCCCCCCCCCC244000000000000025406666666666662540333333333333E33F00000000000000009A9999999999B93F'),
+(100, 'GEOMETRYCOLLECTION(POINT(1 2),POINT(3 4))', '00000000070000000200000000013FF00000000000004000000000000000000000000140080000000000004010000000000000', '0107000000020000000101000000000000000000F03F0000000000000040010100000000000000000008400000000000001040'),
+(122, 'GEOMETRYCOLLECTION(POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2)))', '0000000007000000010000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A000000054000000000000000400000000000000040000000000000004008000000000000400800000000000040080000000000004008000000000000400000000000000040000000000000004000000000000000', '0107000000010 [...]
+(27, 'MULTIPOLYGON(((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)),((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2)))', '0000000006000000020000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A0000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE33333333333330 [...]
+(106, 'GEOMETRYCOLLECTION(POINT(1 2 -2),POINT(3 4 -2),POINT(5 6 -3))', '00800000070000000300800000013FF00000000000004000000000000000C000000000000000008000000140080000000000004010000000000000C000000000000000008000000140140000000000004018000000000000C008000000000000', '0107000080030000000101000080000000000000F03F000000000000004000000000000000C001010000800000000000000840000000000000104000000000000000C001010000800000000000001440000000000000184000000000000008C0'),
+(11, 'MULTILINESTRING((1 2,3 4,5 6))', '0000000005000000010000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000', '010500000001000000010200000003000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000001840'),
+(12, 'MULTILINESTRING((1 2 -1,3 4 -2))', '0080000005000000010080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C000000000000000', '010500008001000000010200008002000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C0'),
+(13, 'MULTILINESTRING((1 2 -1,3 4 -2,5 6 -3))', '0080000005000000010080000002000000033FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000040140000000000004018000000000000C008000000000000', '010500008001000000010200008003000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C00000000000001440000000000000184000000000000008C0'),
+(102, 'GEOMETRYCOLLECTION(POINT(1 2),POINT(3 4),POINT(5 6))', '00000000070000000300000000013FF00000000000004000000000000000000000000140080000000000004010000000000000000000000140140000000000004018000000000000', '0107000000030000000101000000000000000000F03F0000000000000040010100000000000000000008400000000000001040010100000000000000000014400000000000001840'),
+(104, 'GEOMETRYCOLLECTION(POINT(1 2 -1),POINT(3 4 -2))', '00800000070000000200800000013FF00000000000004000000000000000BFF0000000000000008000000140080000000000004010000000000000C000000000000000', '0107000080020000000101000080000000000000F03F0000000000000040000000000000F0BF01010000800000000000000840000000000000104000000000000000C0'),
+(17, 'MULTILINESTRING((5 6 -55,7 8 -22),(1 2 -1,3 4 -2))', '00800000050000000200800000020000000240140000000000004018000000000000C04B800000000000401C0000000000004020000000000000C0360000000000000080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C000000000000000', '010500008002000000010200008002000000000000000000144000000000000018400000000000804BC00000000000001C40000000000000204000000000000036C0010200008002000000000000000000F03F0000000000000040 [...]
+(113, 'GEOMETRYCOLLECTION(LINESTRING(1 2 -1,3 4 -2,5 6 -3))', '0080000007000000010080000002000000033FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000040140000000000004018000000000000C008000000000000', '010700008001000000010200008003000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C00000000000001440000000000000184000000000000008C0'),
+(-3, 'LINESTRING(1 2 3,4 5 6,7 8 9)', '0080000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000401C00000000000040200000000000004022000000000000', '010200008003000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C4000000000000020400000000000002240'),
+(21, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000006000000010080000003000000010000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B', '0106000080010000000103000080010000000500000000000000000000009A9999999999B93F7B14AE47E17A84BF9A9999999999C93 [...]
+(116, 'GEOMETRYCOLLECTION(LINESTRING(1 2 -1,3 4 -2),LINESTRING(5 6 -55,7 8 -22))', '0080000007000000020080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000000800000020000000240140000000000004018000000000000C04B800000000000401C0000000000004020000000000000C036000000000000', '010700008002000000010200008002000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C001020000800200000000000000 [...]
+(-2, 'LINESTRING(1 2 3,4 5 6,7 8 9,10 11 12)', '0080000002000000043FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000401C00000000000040200000000000004022000000000000402400000000000040260000000000004028000000000000', '010200008004000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400000000000001C4000000000000020400000000000002240000000000000244000000000000026400000000000002840'),
+(2, 'MULTIPOINT(1 2,3 4)', '00000000040000000200000000013FF00000000000004000000000000000000000000140080000000000004010000000000000', '0104000000020000000101000000000000000000F03F0000000000000040010100000000000000000008400000000000001040'),
+(3, 'MULTIPOINT(1 2 3,4 5 6)', '00800000040000000200800000013FF0000000000000400000000000000040080000000000000080000001401000000000000040140000000000004018000000000000', '0104000080020000000101000080000000000000F03F000000000000004000000000000008400101000080000000000000104000000000000014400000000000001840'),
+(4, 'MULTIPOINT(1 2 3,4 5 6,7 8 9)', '00800000040000000300800000013FF00000000000004000000000000000400800000000000000800000014010000000000000401400000000000040180000000000000080000001401C00000000000040200000000000004022000000000000', '0104000080030000000101000080000000000000F03F00000000000000400000000000000840010100008000000000000010400000000000001440000000000000184001010000800000000000001C4000000000000020400000000000002240'),
+(5, 'MULTIPOINT(1 2,4 5,7 8)', '00000000040000000300000000013FF000000000000040000000000000000000000001401000000000000040140000000000000000000001401C0000000000004020000000000000', '0104000000030000000101000000000000000000F03F000000000000004001010000000000000000001040000000000000144001010000000000000000001C400000000000002040'),
+(10, 'MULTILINESTRING((1 2,3 4))', '0000000005000000010000000002000000023FF0000000000000400000000000000040080000000000004010000000000000', '010500000001000000010200000002000000000000000000F03F000000000000004000000000000008400000000000001040'),
+(121, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000007000000010080000003000000010000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B', '0107000080010000000103000080010000000500000000000000000000009A9999999999B93F7B14AE47E17A84BF9 [...]
+(123, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000007000000010080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B0000000540000000000000004000000000000000BF847 [...]
+(125, 'GEOMETRYCOLLECTION(POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)),POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)))', '0000000007000000020000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A0000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300 [...]
+(15, 'MULTILINESTRING((1 2,3 4,5 6),(7 8,9 10))', '0000000005000000020000000002000000033FF000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000000000000200000002401C000000000000402000000000000040220000000000004024000000000000', '010500000002000000010200000003000000000000000000F03F000000000000004000000000000008400000000000001040000000000000144000000000000018400102000000020000000000000000001C40000000000000204000000000000022400000000000002440'),
+(16, 'MULTILINESTRING((1 2 -1,3 4 -2),(5 6 -55,7 8 -22))', '0080000005000000020080000002000000023FF00000000000004000000000000000BFF000000000000040080000000000004010000000000000C00000000000000000800000020000000240140000000000004018000000000000C04B800000000000401C0000000000004020000000000000C036000000000000', '010500008002000000010200008002000000000000000000F03F0000000000000040000000000000F0BF0000000000000840000000000000104000000000000000C001020000800200000000000000000014400000000000001840 [...]
+(20, 'MULTIPOLYGON(((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)))', '0000000006000000010000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A', '0106000000010000000103000000010000000500000000000000000000009A9999999999B93F9A9999999999C93F9A99999999992440CDCCCCCCCCCC244000000000000025406666666666662540333333333333E33F00000000000000009A9999999999B93F'),
+(22, 'MULTIPOLYGON(((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2)))', '0000000006000000010000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A000000054000000000000000400000000000000040000000000000004008000000000000400800000000000040080000000000004008000000000000400000000000000040000000000000004000000000000000', '010600000001000000010300000 [...]
+(23, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000006000000010080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B0000000540000000000000004000000000000000BF847AE147AE147B400 [...]
+(24, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000006000000010080000003000000030000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B000000054000000000000000400 [...]
+(25, 'MULTIPOLYGON(((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)),((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1)))', '0000000006000000020000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A0000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB9999 [...]
+(26, 'MULTIPOLYGON(((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000006000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE3333333333333000000000000000000000000000000003FB999999999999A00000000000000000080000003000000010000000500000000000000003FB999999999999 [...]
+(28, 'MULTIPOLYGON(((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000006000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE3333333333333000000000000000000000000000000003FB999999999999A000000000000000000800 [...]
+(29, 'MULTIPOLYGON(((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000006000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE3333333333333000000000000000000000000000000003FB99 [...]
+(30, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B00000 [...]
+(31, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999AB [...]
+(32, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0),(2 2 0,2 3 0,3 3 0,3 2 0,2 2 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB99 [...]
+(33, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333 [...]
+(34, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851 [...]
+(124, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000007000000010080000003000000030000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B0000000540000 [...]
+(126, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000007000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE3333333333333000000000000000000000000000000003FB999999999999A0000000000000000008000000300000001000000050000000000 [...]
+(128, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000007000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE3333333333333000000000000000000000000000000003FB999999999999A [...]
+(129, 'GEOMETRYCOLLECTION(POLYGON((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)),POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000007000000020080000003000000010000000500000000000000003FB999999999999A00000000000000003FC999999999999A402499999999999A00000000000000004024CCCCCCCCCCCD4025000000000000000000000000000040256666666666663FE33333333333330000000000000000 [...]
+(130, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B0000 [...]
+(131, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999A [...]
+(132, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 0,0.2 10.3 0,10.4 10.5 0,10.7 0.6 0,0 0.1 0),(2 2 0,2 3 0,3 3 0,3 2 0,2 2 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB9 [...]
+(133, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE333333333 [...]
+(134, 'MULTIPOLYGON(((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01)),((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0)))', '0080000006000000020080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB85 [...]
+(-9, 'POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1))', '0000000003000000010000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A', '0103000000010000000500000000000000000000009A9999999999B93F9A9999999999C93F9A99999999992440CDCCCCCCCCCC244000000000000025406666666666662540333333333333E33F00000000000000009A9999999999B93F'),
+(-10, 'POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01))', '0080000003000000010000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B', '0103000080010000000500000000000000000000009A9999999999B93F7B14AE47E17A84BF9A9999999999C93F9A999999999924407B14AE47E17A94BFCDCCCCCCC [...]
+(-11, 'POLYGON((0 0.1,0.2 10.3,10.4 10.5,10.7 0.6,0 0.1),(2 2,2 3,3 3,3 2,2 2))', '0000000003000000020000000500000000000000003FB999999999999A3FC999999999999A402499999999999A4024CCCCCCCCCCCD402500000000000040256666666666663FE333333333333300000000000000003FB999999999999A000000054000000000000000400000000000000040000000000000004008000000000000400800000000000040080000000000004008000000000000400000000000000040000000000000004000000000000000', '0103000000020000000500000000000000000000009A9999999 [...]
+(-12, 'POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01))', '0080000003000000020000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B0000000540000000000000004000000000000000BF847AE147AE147B400000000000000040080000000 [...]
+(-13, 'POLYGON((0 0.1 -0.01,0.2 10.3 -0.02,10.4 10.5 -0.03,10.7 0.6 -0.04,0 0.1 -0.01),(2 2 -0.01,2 3 -0.01,3 3 -0.01,3 2 -0.01,2 2 -0.01),(4 2 0,4 3 0,5 3 0,5 2 0,4 2 0))', '0080000003000000030000000500000000000000003FB999999999999ABF847AE147AE147B3FC999999999999A402499999999999ABF947AE147AE147B4024CCCCCCCCCCCD4025000000000000BF9EB851EB851EB840256666666666663FE3333333333333BFA47AE147AE147B00000000000000003FB999999999999ABF847AE147AE147B0000000540000000000000004000000000000000BF847AE147A [...]
 
 --
 SELECT id,wkt FROM test_data WHERE
@@ -93,10 +94,44 @@ SELECT id,wkt FROM test_data WHERE
 
 SELECT ST_extent(geometry(wkb_ndr)) from test_data;
 SELECT ST_3DExtent(geometry(wkb_ndr)) from test_data WHERE ST_NDims(wkb_ndr) > 2;
-SELECT ST_mem_size(ST_collect(ST_Force2d(geometry(wkb_ndr)))) from test_data;
-SELECT ST_mem_size(ST_collect(ST_Force3dz(geometry(wkb_ndr)))) from test_data;
-SELECT ST_mem_size(ST_collect(ST_Force4d(ST_force2d(geometry(wkb_ndr))))) from test_data;
-SELECT ST_mem_size(ST_collect(ST_Force3dm(geometry(wkb_ndr)))) from test_data;
-SELECT ST_mem_size(ST_collect(ST_Force2d(ST_force4d(ST_force3dm(ST_force3dz(ST_force2d(geometry(wkb_ndr)))))))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force2d(geometry(wkb_ndr)))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force3dz(geometry(wkb_ndr)))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force4d(ST_force2d(geometry(wkb_ndr))))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force3dm(geometry(wkb_ndr)))) from test_data;
+SELECT ST_MemSize(ST_collect(ST_Force2d(ST_force4d(ST_force3dm(ST_force3dz(ST_force2d(geometry(wkb_ndr)))))))) from test_data;
 
 DROP TABLE test_data;
+
+
+SELECT '#3069', ST_Summary(PostGIS_Noop('SRID=4326;POINT(1 1)'::geometry));
+SELECT '#3069', ST_Summary(PostGIS_Noop('SRID=4326;LINESTRING(1 1,0 0)'::geometry));
+SELECT '#3069', replace(ST_Summary(PostGIS_Noop('SRID=4326;MULTIPOINT(1 1)'::geometry)),E'\n',' ');
+SELECT '#3069', replace(ST_Summary(PostGIS_Noop('SRID=4326;MULTILINESTRING((1 1,0 0))'::geometry)),E'\n',' ');
+SELECT '#3069', replace(ST_Summary(PostGIS_Noop('SRID=4326;POLYGON((0 0, 0 1, 1 1 ,1 0,0 0))'::geometry)),E'\n',' ');
+
+SELECT '#3069',  postgis_getbbox('SRID=0;POINT(1 1)'::geometry);
+SELECT '#3069',  postgis_getbbox('SRID=0;LINESTRING(0 0, 1 1)'::geometry);
+SELECT '#3069',  postgis_getbbox('SRID=0;MULTILINESTRING((0 0, 1 1))'::geometry);
+SELECT '#3069',  postgis_getbbox('SRID=0;MULTIPOINT(1 1)'::geometry);
+SELECT '#3069',  postgis_getbbox('SRID=0;MULTILINESTRING((0 0,1 1))'::geometry);
+
+-- ST_BoundingDiagonal
+
+SELECT 'BoundingDiagonal1', ST_AsEwkt(ST_BoundingDiagonal(postgis_addbbox(
+    'SRID=4326;POINT(1e+15 1e+15)'::geometry
+)));
+SELECT 'BoundingDiagonal2', ST_AsEwkt(ST_BoundingDiagonal(postgis_addbbox(
+    'SRID=4326;POINT(1e+15 1e+15)'::geometry
+), true));
+SELECT 'BoundingDiagonal3', ST_AsEwkt(ST_BoundingDiagonal(postgis_addbbox(
+    'SRID=4326;POINT(1e+15 1e+15)'::geometry
+), false));
+SELECT 'BoundingDiagonal4', ST_AsEwkt(ST_BoundingDiagonal(
+    'SRID=3857;LINESTRING(1 2 3 4, 0 1 -8 2, -1 -2 -3 9)'::geometry
+));
+SELECT 'BoundingDiagonal5', ST_AsEwkt(ST_BoundingDiagonal(
+    'SRID=3857;LINESTRING M (5 4 0,4 4 1)'::geometry
+));
+SELECT 'BoundingDiagonal6', ST_AsEwkt(ST_BoundingDiagonal(
+    'SRID=3857;POLYGON M EMPTY'::geometry
+));
diff --git a/regress/lwgeom_regress_expected b/regress/lwgeom_regress_expected
index aafdbaf..6bc193e 100644
--- a/regress/lwgeom_regress_expected
+++ b/regress/lwgeom_regress_expected
@@ -5,3 +5,19 @@ BOX3D(0 0.1 -55,11 12 12)
 20464
 15824
 11184
+#3069|Point[S]
+#3069|LineString[S] with 2 points
+#3069|MultiPoint[S] with 1 elements   Point[S]
+#3069|MultiLineString[S] with 1 elements   LineString[S] with 2 points
+#3069|Polygon[BS] with 1 rings    ring 0 has 5 points
+#3069|BOX(1 1,1 1)
+#3069|BOX(0 0,1 1)
+#3069|BOX(0 0,1 1)
+#3069|BOX(1 1,1 1)
+#3069|BOX(0 0,1 1)
+BoundingDiagonal1|SRID=4326;LINESTRING(999999986991104 999999986991104,999999986991104 999999986991104)
+BoundingDiagonal2|SRID=4326;LINESTRING(1e+15 1e+15,1e+15 1e+15)
+BoundingDiagonal3|SRID=4326;LINESTRING(999999986991104 999999986991104,999999986991104 999999986991104)
+BoundingDiagonal4|SRID=3857;LINESTRING(-1 -2 -8 2,1 2 3 9)
+BoundingDiagonal5|SRID=3857;LINESTRINGM(4 4 0,5 4 1)
+BoundingDiagonal6|SRID=3857;LINESTRINGM EMPTY
diff --git a/regress/measures.sql b/regress/measures.sql
index 22136ba..9dfbbff 100644
--- a/regress/measures.sql
+++ b/regress/measures.sql
@@ -238,6 +238,30 @@ SELECT '3dDistancetest6',
 	ST_3DDistance(a,b) FROM (
 	SELECT 'LINESTRING(1 1 1 , 2 2 2)'::geometry as a, 'POLYGON((0 0 0, 2 2 2, 3 3 3, 0 0 0))'::geometry as b) as foo;	
 
+
+-- 3D mixed dimmentionality #2034
+--closestpoint with 2d as first point and 3d as second
+select st_astext(st_3dclosestpoint('linestring(0 0,1 1,2 0)'::geometry, 'linestring(0 2 3, 3 2 3)'::geometry));
+
+--closestpoint with 3d as first point and 2d as second
+select st_astext(st_3dclosestpoint('linestring(0 0 1,1 1 2,2 0 3)'::geometry, 'linestring(0 2, 3 2)'::geometry));
+
+--shortestline with 2d as first point and 3d as second
+select st_astext(st_3dshortestline('linestring(0 0,1 1,2 0)'::geometry, 'linestring(0 2 3, 3 2 3)'::geometry));
+
+--shortestline with 3d as first point and 2d as second
+select st_astext(st_3dshortestline('linestring(0 0 1,1 1 2,2 0 3)'::geometry, 'linestring(0 2, 3 2)'::geometry));
+
+--distance with 2d as first point and 3d as second
+select st_3ddistance('linestring(0 0,1 1,2 0)'::geometry, 'linestring(0 2 3, 3 2 3)'::geometry);
+
+--distance with 3d as first point and 2d as second
+select st_3ddistance('linestring(0 0 1,1 1 2,2 0 3)'::geometry, 'linestring(0 2, 3 2)'::geometry);
+
+select ST_AsText(ST_3DClosestPoint('POINT(0 0 0)', 'POINT(0 0)'));
+select ST_AsText(ST_3DShortestLine('LINESTRING(2 1, 3 0)', 'LINESTRING(0 0 2, 3 3 -4)'));
+
+
 -- Area of an empty polygon
 select 'emptyPolyArea', st_area('POLYGON EMPTY');
 
@@ -260,4 +284,8 @@ select 'emptyMultiPointArea', st_area('MULTIPOINT EMPTY');
 select 'emptyCollectionArea', st_area('GEOMETRYCOLLECTION EMPTY');
 
 -- 
-select 'spheroidLength1', round(st_length_spheroid('MULTILINESTRING((-118.584 38.374,-118.583 38.5),(-71.05957 42.3589 , -71.061 43))'::geometry,'SPHEROID["GRS_1980",6378137,298.257222101]'::spheroid)::numeric,5);
+select 'spheroidLength1_deprecated', round(st_length_spheroid('MULTILINESTRING((-118.584 38.374,-118.583 38.5),(-71.05957 42.3589 , -71.061 43))'::geometry,'SPHEROID["GRS_1980",6378137,298.257222101]'::spheroid)::numeric,5);
+select 'spheroidLength1', round(ST_LengthSpheroid('MULTILINESTRING((-118.584 38.374,-118.583 38.5),(-71.05957 42.3589 , -71.061 43))'::geometry,'SPHEROID["GRS_1980",6378137,298.257222101]'::spheroid)::numeric,5);
+
+select 'length2d_spheroid', ST_Length2DSpheroid('LINESTRING(0 0 0, 0 0 100)'::geometry, 'SPHEROID["GRS_1980",6378137,298.257222101]');
+select 'length_spheroid', ST_LengthSpheroid('LINESTRING(0 0 0, 0 0 100)'::geometry, 'SPHEROID["GRS_1980",6378137,298.257222101]');
diff --git a/regress/measures_expected b/regress/measures_expected
index f945b15..65bb8b2 100644
--- a/regress/measures_expected
+++ b/regress/measures_expected
@@ -35,6 +35,22 @@ distancepoly6|0|32.5269119345812|LINESTRING(2 2,2 2)|LINESTRING(2 2,2 2)|LINESTR
 3dDistancetest4|2|10.0498756211209|t|f|LINESTRING(1 1 3,1 1 1)|POINT(1 1 3)|LINESTRING(5 7 8,1 1 1)
 3dDistancetest5|2|10|t|f|LINESTRING(5 0 5,5 2 5)|POINT(5 0 5)|LINESTRING(11 0 5,5 0 13)
 3dDistancetest6|0
+NOTICE:  One or both of the geometries is missing z-value. The unknown z-value will be regarded as "any value"
+POINT Z (1 1 3)
+NOTICE:  One or both of the geometries is missing z-value. The unknown z-value will be regarded as "any value"
+POINT Z (1 1 2)
+NOTICE:  One or both of the geometries is missing z-value. The unknown z-value will be regarded as "any value"
+LINESTRING Z (1 1 3,1 2 3)
+NOTICE:  One or both of the geometries is missing z-value. The unknown z-value will be regarded as "any value"
+LINESTRING Z (1 1 2,1 2 2)
+NOTICE:  One or both of the geometries is missing z-value. The unknown z-value will be regarded as "any value"
+1
+NOTICE:  One or both of the geometries is missing z-value. The unknown z-value will be regarded as "any value"
+1
+NOTICE:  One or both of the geometries is missing z-value. The unknown z-value will be regarded as "any value"
+POINT Z (0 0 0)
+NOTICE:  One or both of the geometries is missing z-value. The unknown z-value will be regarded as "any value"
+LINESTRING Z (2 1 -1,1.5 1.5 -1)
 emptyPolyArea|0
 emptyLineArea|0
 emptyPointArea|0
@@ -42,4 +58,7 @@ emptyMultiPolyArea|0
 emptyMultiLineArea|0
 emptyMultiPointArea|0
 emptyCollectionArea|0
+spheroidLength1_deprecated|85204.52077
 spheroidLength1|85204.52077
+length2d_spheroid|100
+length_spheroid|100
diff --git a/regress/operators.sql b/regress/operators.sql
index b95ea04..56f2724 100644
--- a/regress/operators.sql
+++ b/regress/operators.sql
@@ -1,18 +1,25 @@
 --- operator testing (testing is on the BOUNDING BOX (2d), not the actual geometries)
 
+-- overlap or left of
+
 select '77','POINT(1 1)'::GEOMETRY &< 'POINT(1 1)'::GEOMETRY as bool;
 select '78','POINT(1 1)'::GEOMETRY &< 'POINT(2 1)'::GEOMETRY as bool;
 select '79','POINT(2 1)'::GEOMETRY &< 'POINT(1 1)'::GEOMETRY as bool;
 
+-- strictly left
+
 select '80','POINT(1 1)'::GEOMETRY << 'POINT(1 1)'::GEOMETRY as bool;
 select '81','POINT(1 1)'::GEOMETRY << 'POINT(2 1)'::GEOMETRY as bool;
 select '82','POINT(2 1)'::GEOMETRY << 'POINT(1 1)'::GEOMETRY as bool;
 
+-- overlap or right
 
 select '83','POINT(1 1)'::GEOMETRY &> 'POINT(1 1)'::GEOMETRY as bool;
 select '84','POINT(1 1)'::GEOMETRY &> 'POINT(2 1)'::GEOMETRY as bool;
 select '85','POINT(2 1)'::GEOMETRY &> 'POINT(1 1)'::GEOMETRY as bool;
 
+-- strictly right
+
 select '86','POINT(1 1)'::GEOMETRY >> 'POINT(1 1)'::GEOMETRY as bool;
 select '87','POINT(1 1)'::GEOMETRY >> 'POINT(2 1)'::GEOMETRY as bool;
 select '88','POINT(2 1)'::GEOMETRY >> 'POINT(1 1)'::GEOMETRY as bool;
@@ -78,10 +85,8 @@ select 'eq3',ST_MakePoint(0,0) = ST_MakePoint(1,0); -- f
 
 -- box centroid distance  <->
 
-select 'cd1', 'LINESTRING(0 0,0 10,10 10)'::geometry <->
-              'LINESTRING(6 2,6 8)'::geometry; -- 1
-select 'cd2', 'LINESTRING(0 0,0 10,10 10)'::geometry <->
-              'LINESTRING(11 0,19 10)'::geometry; -- 10
+select 'cd1', 'LINESTRING(0 0,0 10)'::geometry <->
+              'LINESTRING(4 0,4 10)'::geometry; -- 4
 
 -- box distance           <#>
 
@@ -134,3 +139,5 @@ WITH v(i,g) AS ( VALUES
  )
 SELECT 'ndovm2', array_agg(i) FROM v WHERE g &&& 'POINTZ(0 0 1)'::geometry
 ORDER BY 1;
+
+
diff --git a/regress/operators_expected b/regress/operators_expected
index f8b1dc8..c1539e6 100644
--- a/regress/operators_expected
+++ b/regress/operators_expected
@@ -44,8 +44,7 @@ ab3|t
 eq1|t
 eq2|t
 eq3|f
-cd1|1
-cd2|10
+cd1|4
 bd1|0
 bd2|1
 ndov1|f
diff --git a/regress/out_geometry.sql b/regress/out_geometry.sql
index f3fa4af..d663496 100644
--- a/regress/out_geometry.sql
+++ b/regress/out_geometry.sql
@@ -50,6 +50,13 @@ SELECT 'gml_shortline_02', ST_AsGML(3, GeomFromEWKT('LINESTRING(1 2, 3 4)'), 0,
 SELECT 'gml_shortline_03', ST_AsGML(3, GeomFromEWKT('MULTILINESTRING((1 2, 3 4), (5 6, 7 8))'), 0, 6, '');
 SELECT 'gml_shortline_04', ST_AsGML(3, GeomFromEWKT('MULTILINESTRING((1 2, 3 4), (5 6, 7 8))'), 0, 2, '');
 
+-- CIRCULARSTRING / COMPOUNDCURVE / CURVEPOLYGON / MULTISURFACE / MULTICURVE
+SELECT 'gml_out_curve_01', ST_AsGML( 3, GeomFromEWKT('CIRCULARSTRING(-2 0,0 2,2 0,0 2,2 4)'));
+SELECT 'gml_out_curve_02', ST_ASGML( 3, GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,0 1))'));
+SELECT 'gml_out_curve_03', ST_AsGML( 3, GeomFromEWKT('CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0))'));
+SELECT 'gml_out_curve_04', ST_AsGML( 3, GeomFromEWKT('MULTICURVE((5 5,3 5,3 3,0 3),CIRCULARSTRING(0 0,2 1,2 2))'));
+SELECT 'gml_out_curve_05', ST_AsGML( 3, GeomFromEWKT('MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0)),((7 8,10 10,6 14,4 11,7 8)))'));
+
 --
 -- KML
 --
@@ -78,6 +85,13 @@ SELECT 'kml_prefix_02', ST_AsKML(2, GeomFromEWKT('SRID=4326;POINT(1 2)'), 0, 'km
 -- National Astronomical Observatory of Colombia - Bogota, Colombia (Placemark)
 SELECT 'kml_projection_01', ST_AsKML(ST_GeomFromEWKT('SRID=102189;POINT(1000000 1000000)'), 3);
 
+--
+-- Encoded Polyline
+--
+SELECT 'encoded_polyline_01', ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)'));
+SELECT 'encoded_polyline_02', ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;MULTIPOINT(-120.2 38.5,-120.95 40.7,-126.453 43.252)'));
+SELECT 'encoded_polyline_03', ST_AsEncodedPolyline(GeomFromEWKT('LINESTRING(-120.2 38.5,-120.95 40.7,-126.453 43.252)'));
+SELECT 'encoded_polyline_04', ST_AsEncodedPolyline(GeomFromEWKT('SRID=4326;LINESTRING(-120.234467 38.5,-120.95 40.7343495,-126.453 43.252)'), 6);
 
 --
 -- SVG
diff --git a/regress/out_geometry_expected b/regress/out_geometry_expected
index 82b1a20..9e6b084 100644
--- a/regress/out_geometry_expected
+++ b/regress/out_geometry_expected
@@ -22,6 +22,11 @@ gml_shortline_01|<LineString><posList>1 2 3 4</posList></LineString>
 gml_shortline_02|<Curve><segments><LineStringSegment><posList>1 2 3 4</posList></LineStringSegment></segments></Curve>
 gml_shortline_03|<MultiCurve><curveMember><LineString><posList>1 2 3 4</posList></LineString></curveMember><curveMember><LineString><posList>5 6 7 8</posList></LineString></curveMember></MultiCurve>
 gml_shortline_04|<MultiCurve><curveMember><Curve><segments><LineStringSegment><posList>1 2 3 4</posList></LineStringSegment></segments></Curve></curveMember><curveMember><Curve><segments><LineStringSegment><posList>5 6 7 8</posList></LineStringSegment></segments></Curve></curveMember></MultiCurve>
+gml_out_curve_01|<gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension="2">-2 0 0 2 2 0 0 2 2 4</gml:posList></gml:ArcString></gml:segments></gml:Curve>
+gml_out_curve_02|<gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension="2">0 0 1 1 1 0</gml:posList></gml:ArcString><gml:LineStringSegment><gml:posList srsDimension="2">1 0 0 1</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve>
+gml_out_curve_03|<gml:Polygon><gml:exterior><gml:Ring><gml:curveMember><gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension="2">-2 0 -1 -1 0 0 1 -1 2 0 0 2 -2 0</gml:posList></gml:ArcString></gml:segments></gml:Curve></gml:curveMember></gml:Ring></gml:exterior><gml:interior><gml:LinearRing><gml:posList srsDimension="2">-1 0 0 0.5 1 0 0 1 -1 0</gml:posList></gml:LinearRing></gml:interior></gml:Polygon>
+gml_out_curve_04|<gml:MultiCurve><gml:curveMember><gml:Curve><gml:segments><gml:LineStringSegment><gml:posList srsDimension="2">5 5 3 5 3 3 0 3</gml:posList></gml:LineStringSegment></gml:segments></gml:Curve></gml:curveMember><gml:curveMember><gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension="2">0 0 2 1 2 2</gml:posList></gml:ArcString></gml:segments></gml:Curve></gml:curveMember></gml:MultiCurve>
+gml_out_curve_05|<gml:MultiSurface><gml:Polygon><gml:exterior><gml:Ring><gml:curveMember><gml:Curve><gml:segments><gml:ArcString><gml:posList srsDimension="2">-2 0 -1 -1 0 0 1 -1 2 0 0 2 -2 0</gml:posList></gml:ArcString></gml:segments></gml:Curve></gml:curveMember></gml:Ring></gml:exterior><gml:interior><gml:LinearRing><gml:posList srsDimension="2">-1 0 0 0.5 1 0 0 1 -1 0</gml:posList></gml:LinearRing></gml:interior></gml:Polygon><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList s [...]
 ERROR:  GetProj4StringSPI: Cannot find SRID (10) in spatial_ref_sys
 ERROR:  Input geometry has unknown (0) SRID
 kml_empty_geom|
@@ -33,6 +38,10 @@ ERROR:  Only KML 2 is supported
 kml_prefix_01|<Point><coordinates>1,2</coordinates></Point>
 kml_prefix_02|<kml:Point><kml:coordinates>1,2</kml:coordinates></kml:Point>
 kml_projection_01|<Point><coordinates>-74.078,4.596</coordinates></Point>
+encoded_polyline_01|_p~iF~ps|U_ulLnnqC_mqNvxq`@
+encoded_polyline_02|_p~iF~ps|U_ulLnnqC_mqNvxq`@
+ERROR:  Only SRID 4326 is supported.
+encoded_polyline_04|_p~iFlhz|UuksL`wjCivjNvxq`@
 svg_empty_geom|
 svg_option_01|M 1 -1 L 4 -4 5 -7
 svg_option_02|M 1 -1 l 3 -3 1 -3
@@ -44,8 +53,8 @@ geojson_empty_geom|
 geojson_precision_01|{"type":"Point","coordinates":[1,1]}
 geojson_precision_02|{"type":"Point","coordinates":[1.1111111,1.1111111]}
 geojson_version_01|{"type":"Point","coordinates":[1,1]}
-ERROR:  Only GeoJSON 1 is supported
-ERROR:  Only GeoJSON 1 is supported
+geojson_version_02|{"type":"Point","coordinates":[1,1]}
+geojson_version_03|{"type":"Point","coordinates":[1,1]}
 geojson_crs_01|{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"coordinates":[1,1]}
 geojson_crs_02|{"type":"Point","coordinates":[1,1]}
 geojson_crs_03|{"type":"Point","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG::4326"}},"coordinates":[1,1]}
diff --git a/regress/regress.sql b/regress/regress.sql
index b20ad8a..8395dce 100644
--- a/regress/regress.sql
+++ b/regress/regress.sql
@@ -138,7 +138,7 @@ select '109',ST_NPoints('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING( 1 1 , 2 2, 3
 
 select '110', ST_NRings('MULTIPOLYGON( ((0 0, 10 0, 10 10, 0 10, 0 0)),( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7 , 5 7, 5 5) ) ,( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(1 1,2 1, 2 2, 1 2, 1 1) ) )'::GEOMETRY) as value;
 
-select '111', ST_mem_size(PostGIS_DropBBOX('MULTIPOLYGON( ((0 0, 10 0, 10 10, 0 10, 0 0)),( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7 , 5 7, 5 5) ) ,( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(1 1,2 1, 2 2, 1 2, 1 1) ) )'::GEOMETRY)) as value;
+select '111', ST_MemSize(PostGIS_DropBBOX('MULTIPOLYGON( ((0 0, 10 0, 10 10, 0 10, 0 0)),( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7 , 5 7, 5 5) ) ,( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(1 1,2 1, 2 2, 1 2, 1 1) ) )'::GEOMETRY)) as value;
 
 select '112',ST_NumGeometries('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING( 1 1 , 2 2, 3 3),MULTIPOINT(1 1, 2 2))'::GEOMETRY) as value;
 
@@ -166,6 +166,9 @@ select '126',a ~= b from TEST;
 select '127',a @ b from TEST;
 select '128',a ~ b from TEST; 
 
+-- ST_Mem_Size was deprecated in favor of ST_MemSize in 2.2.0
+-- We keep the test using the deprecated function until 2.4.0 
+-- (when the function will be removed)
 select '129', ST_mem_size(PostGIS_DropBBOX(a)), ST_mem_size(PostGIS_DropBBOX(b)) from TEST;
 
 select '131', ST_X('POINT(1 2)');
@@ -186,16 +189,20 @@ select '141', ST_AsEWKT(ST_multi(ST_setsrid('LINESTRING(2 2, 3 3)'::geometry, 4)
 select '142', ST_AsEWKT(ST_multi(ST_setsrid('LINESTRING(2 2, 3 3)'::geometry, 5)));
 select '143', ST_AsEWKT(ST_multi(ST_setsrid('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'::geometry, 6)));
 select '143c1', ST_AsEWKT(ST_multi('CIRCULARSTRING(0 0, 1 1, 2 2)'::geometry));
-select '144', ST_AsEWKT(ST_force_3dm('POINT(1 2 3)'));
-select '145', ST_AsEWKT(ST_force_3dz('POINTM(1 2 3)'));
-select '146', ST_AsEWKT(ST_force_4d('POINTM(1 2 3)'));
-select '147', ST_AsEWKT(ST_force_4d('POINT(1 2 3)'));
+select '144', ST_AsEWKT(ST_Force3dm('POINT(1 2 3)'));
+select '144d', ST_AsEWKT(ST_Force_3dm('POINT(1 2 3)'));
+select '145', ST_AsEWKT(ST_Force3dz('POINTM(1 2 3)'));
+select '145d', ST_AsEWKT(ST_Force_3dz('POINTM(1 2 3)'));
+select '146', ST_AsEWKT(ST_Force4d('POINTM(1 2 3)'));
+select '147', ST_AsEWKT(ST_Force4d('POINT(1 2 3)'));
+select '147d', ST_AsEWKT(ST_Force_4d('POINT(1 2 3)'));
 
 select '148', ST_AsText(ST_segmentize('LINESTRING(0 0, 10 0)'::geometry, 5));
 
 select '149', ST_AsText(ST_segmentize('GEOMETRYCOLLECTION EMPTY'::geometry, 0.5));
 
-select '150', ST_AsEWKT(ST_force_collection(ST_setsrid('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'::geometry, 6)));
+select '150d', ST_AsEWKT(ST_ForceCollection(ST_setsrid('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'::geometry, 6)));
+select '150', ST_AsEWKT(ST_ForceCollection(ST_setsrid('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'::geometry, 6)));
 
 select '151', encode(ST_AsBinary(ST_MakeEnvelope(0, 0, 1, 1, 4326),'ndr'),'hex');
 select '152', ST_SRID(ST_MakeEnvelope(0, 0, 1, 1, 4326));
diff --git a/regress/regress_expected b/regress/regress_expected
index 4d291c6..41672fb 100644
--- a/regress/regress_expected
+++ b/regress/regress_expected
@@ -119,11 +119,18 @@ ERROR:  parse error - invalid geometry at character 23
 143|SRID=6;MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)))
 143c1|MULTICURVE(CIRCULARSTRING(0 0,1 1,2 2))
 144|POINTM(1 2 0)
+WARNING:  ST_Force_3dm signature was deprecated in 2.1.0. Please use ST_Force3DM
+144d|POINTM(1 2 0)
 145|POINT(1 2 0)
+WARNING:  ST_Force_3dz signature was deprecated in 2.1.0. Please use ST_Force3DZ
+145d|POINT(1 2 0)
 146|POINT(1 2 0 3)
 147|POINT(1 2 3 0)
+WARNING:  ST_Force_4d signature was deprecated in 2.1.0. Please use ST_Force4D
+147d|POINT(1 2 3 0)
 148|LINESTRING(0 0,5 0,10 0)
 149|GEOMETRYCOLLECTION EMPTY
+150d|SRID=6;GEOMETRYCOLLECTION(POLYGON((0 0,1 0,1 1,0 1,0 0)))
 150|SRID=6;GEOMETRYCOLLECTION(POLYGON((0 0,1 0,1 1,0 1,0 0)))
 151|01030000000100000005000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f000000000000f03f000000000000000000000000000000000000000000000000
 152|4326
diff --git a/regress/regress_index.sql b/regress/regress_index.sql
index ef9e8e7..89504c3 100644
--- a/regress/regress_index.sql
+++ b/regress/regress_index.sql
@@ -43,7 +43,68 @@ set enable_seqscan = off;
 SELECT 'scan_seq', qnodes('select * from test where the_geom && ST_MakePoint(0,0)');
  select num,ST_astext(the_geom) from test where the_geom && 'BOX3D(125 125,135 135)'::box3d order by num;
 
+CREATE FUNCTION estimate_error(qry text, tol int)
+RETURNS text
+LANGUAGE 'plpgsql' VOLATILE AS $$
+DECLARE
+  anl TEXT; -- analisys
+  err INT; -- absolute difference between planned and actual rows
+  est INT; -- estimated count
+  act INT; -- actual count
+  mat TEXT[];
+BEGIN
+  EXECUTE 'EXPLAIN ANALYZE ' || qry INTO anl;
+
+  SELECT regexp_matches(anl, ' rows=([0-9]*) .* rows=([0-9]*) ')
+  INTO mat;
+
+  est := mat[1];
+  act := mat[2];
+    
+  err = abs(est-act);
+
+  RETURN act || '+=' || tol || ':' || coalesce(
+    nullif((err < tol)::text,'false'),
+    'false:'||err::text
+    );
+
+END;
+$$;
+
+-- There are 50000 points in the table with full extent being
+-- BOX(0.0439142361 0.0197799355,999.955261 999.993652)
+CREATE TABLE sample_queries AS
+SELECT 1 as id, 5 as tol, 'ST_MakeEnvelope(125,125,135,135)' as box
+ UNION ALL
+SELECT 2, 60, 'ST_MakeEnvelope(0,0,135,135)'
+ UNION ALL
+SELECT 3, 500, 'ST_MakeEnvelope(0,0,500,500)'
+ UNION ALL
+SELECT 4, 600, 'ST_MakeEnvelope(0,0,1000,1000)'
+;
+
+-- We raise the statistics target to the limit 
+ALTER TABLE test ALTER COLUMN the_geom SET STATISTICS 10000;
+
+ANALYZE test;
+
+SELECT estimate_error(
+  'select num from test where the_geom && ' || box, tol )
+  FROM sample_queries ORDER BY id;
+
+-- Test selectivity estimation of functional indexes
+
+CREATE INDEX expressional_gist on test using gist ( st_centroid(the_geom) );
+ANALYZE test;
+
+SELECT 'expr', estimate_error(
+  'select num from test where st_centroid(the_geom) && ' || box, tol )
+  FROM sample_queries ORDER BY id;
+
 DROP TABLE test;
+DROP TABLE sample_queries;
+
+DROP FUNCTION estimate_error(text, int);
 
 DROP FUNCTION qnodes(text);
 
diff --git a/regress/regress_index_expected b/regress/regress_index_expected
index 330ac6a..ae75d05 100644
--- a/regress/regress_index_expected
+++ b/regress/regress_index_expected
@@ -6,3 +6,11 @@ scan_seq|Index Scan
 2594|POINT(130.504303 126.53112)
 3618|POINT(130.447205 131.655289)
 7245|POINT(128.10466 130.94133)
+3+=5:true
+924+=60:true
+12621+=500:true
+50000+=600:true
+expr|3+=5:true
+expr|924+=60:true
+expr|12621+=500:true
+expr|50000+=600:true
diff --git a/regress/regress_lrs.sql b/regress/regress_lrs.sql
index 7663058..ca78b4f 100644
--- a/regress/regress_lrs.sql
+++ b/regress/regress_lrs.sql
@@ -56,7 +56,24 @@ select 'line_substring_10', ST_AsText(ST_LineSubstring('LINESTRING(0 0 4, 4 4 0)
 select 'line_substring_11', ST_AsText(ST_LineSubstring('LINESTRING(0 0, 1 1)', 0, 0));
 select 'line_substring_12', ST_AsText(ST_LineSubstring('LINESTRING(0 0 10, 1 1 5)', 0.5, .5));
 
---- line_interpolate_point
+--
+--- ST_LineInterpolatePoint
+--
 
 select 'line_interpolate_point', ST_AsText(ST_LineInterpolatePoint('LINESTRING(0 0, 1 1)', 0));
 select 'line_interpolate_point', ST_AsText(ST_LineInterpolatePoint('LINESTRING(0 0 10, 1 1 5)', 0.5));
+
+
+--
+-- ST_AddMeasure
+--
+
+select 'addMeasure1', ST_AsText(ST_AddMeasure('LINESTRING(0 0, 2 0, 4 0)', 10, 20));
+select 'addMeasure2', ST_AsText(ST_AddMeasure('LINESTRING(0 0, 9 0, 10 0)', 10, 20));
+
+--
+-- ST_InterpolatePoint
+--
+
+select 'interpolatePoint1', ST_InterpolatePoint('LINESTRINGM(0 0 0, 10 0 4)', 'POINT(5 0)');
+select 'interpolatePoint2', ST_InterpolatePoint('LINESTRINGM(0 0 0, 10 0 4)', 'POINT(7.5 0)');
diff --git a/regress/regress_lrs_expected b/regress/regress_lrs_expected
index a20d29c..54ae3ff 100644
--- a/regress/regress_lrs_expected
+++ b/regress/regress_lrs_expected
@@ -34,3 +34,7 @@ line_substring_11|POINT(0 0)
 line_substring_12|POINT Z (0.5 0.5 7.5)
 line_interpolate_point|POINT(0 0)
 line_interpolate_point|POINT Z (0.5 0.5 7.5)
+addMeasure1|LINESTRING M (0 0 10,2 0 15,4 0 20)
+addMeasure2|LINESTRING M (0 0 10,9 0 19,10 0 20)
+interpolatePoint1|2
+interpolatePoint2|3
diff --git a/regress/regress_management.sql b/regress/regress_management.sql
index 99c22e9..567d81b 100644
--- a/regress/regress_management.sql
+++ b/regress/regress_management.sql
@@ -1,4 +1,3 @@
--- $Id: regress_management.sql 10326 2012-09-25 02:45:28Z robe $
 -- Test the populate_geometry_columns,DropGeometryTable etc --
 \set VERBOSITY terse
 SET client_min_messages TO warning;
diff --git a/regress/regress_sfcgal.sql b/regress/regress_sfcgal.sql
index 4937db7..bcc0079 100644
--- a/regress/regress_sfcgal.sql
+++ b/regress/regress_sfcgal.sql
@@ -28,7 +28,7 @@ SELECT 'ST_ForceLHR', ST_AsText(ST_ForceLHR('POLYGON((0 0,0 1,1 1,1 0,0 0))'));
 SELECT 'ST_Orientation_1', ST_Orientation(ST_ForceLHR('POLYGON((0 0,0 1,1 1,1 0,0 0))'));
 SELECT 'ST_Orientation_2', ST_Orientation(ST_ForceRHR('POLYGON((0 0,0 1,1 1,1 0,0 0))'));
 SELECT 'ST_MinkowskiSum', ST_AsText(ST_MinkowskiSum('LINESTRING(0 0,4 0)','POLYGON((0 0,1 0,1 1,0 1,0 0))'));
-SELECT 'ST_StraightSkeleton', ST_AsText(ST_StraightSkeleton('POLYGON((0 0,1 0,1 1,0 1,0 0))'));
+SELECT 'ST_StraightSkeleton', ST_AsText(ST_StraightSkeleton('POLYGON((1 1,2 1,2 2,1 2,1 1))'));
 
 -- Backend switch tests
 SET postgis.backend = 'geos';
diff --git a/regress/regress_sfcgal_expected b/regress/regress_sfcgal_expected
index d0f8d3c..bf04917 100644
--- a/regress/regress_sfcgal_expected
+++ b/regress/regress_sfcgal_expected
@@ -8,7 +8,7 @@ ST_ForceLHR|POLYGON((0 0,1 0,1 1,0 1,0 0))
 ST_Orientation_1|-1
 ST_Orientation_2|1
 ST_MinkowskiSum|MULTIPOLYGON(((0 0,1 0,5 0,5 1,4 1,0 1,0 0)))
-ST_StraightSkeleton|MULTILINESTRING((0 0,0.5 0.5),(1 0,0.5 0.5),(1 1,0.5 0.5),(0 1,0.5 0.5))
+ST_StraightSkeleton|MULTILINESTRING((1 1,1.5 1.5),(2 1,1.5 1.5),(2 2,1.5 1.5),(1 2,1.5 1.5))
 intersection_geos|POINT(0 0)
 intersection_sfcgal|POINT(-0 -0)
 ERROR:  Can't find foo geometry backend
diff --git a/regress/remove_repeated_points.sql b/regress/remove_repeated_points.sql
index e3060b5..9602136 100644
--- a/regress/remove_repeated_points.sql
+++ b/regress/remove_repeated_points.sql
@@ -20,3 +20,5 @@ SELECT 9, ST_AsText(ST_RemoveRepeatedPoints('CURVEPOLYGON(CIRCULARSTRING(
 SELECT 10, ST_AsText(ST_RemoveRepeatedPoints('LINESTRING(0 0, 0 0)'));
 SELECT 11, ST_AsText(ST_RemoveRepeatedPoints('LINESTRING(0 0, 0 0, 0 0, 0 0, 0 0)'));
 SELECT 12, ST_SRID(ST_RemoveRepeatedPoints('SRID=3;LINESTRING(0 0, 0 0, 0 0, 0 0, 0 0)'));
+SELECT 13, ST_AsText(ST_RemoveRepeatedPoints('LINESTRING(0 0, 1 0, 2 0, 3 0, 4 0)',1.5));
+
diff --git a/regress/remove_repeated_points_expected b/regress/remove_repeated_points_expected
index 410a73b..753cc52 100644
--- a/regress/remove_repeated_points_expected
+++ b/regress/remove_repeated_points_expected
@@ -11,3 +11,4 @@
 10|LINESTRING(0 0,0 0)
 11|LINESTRING(0 0,0 0)
 12|3
+13|LINESTRING(0 0,2 0,4 0)
diff --git a/regress/run_test b/regress/run_test
deleted file mode 100755
index 8241684..0000000
--- a/regress/run_test
+++ /dev/null
@@ -1,1117 +0,0 @@
-#!/bin/sh
-
-export DB=postgis_reg
-
-# TODO: get this part generated by ./configure. For now
-# we must make sure this matches REGRESS_INSTALLDIR in
-# Makefile.in.
-export SHP2PGSQL=../loader/shp2pgsql
-export PGSQL2SHP=../loader/pgsql2shp
-
-# raster2pgsql is relative to the place where this script
-# would be called: raster/test/regress
-export RASTER2PGSQL=../../loader/raster2pgsql
-
-###################################################
-#
-# Usage ./run_test <testname> [<testname>]
-#
-# Create the spatial database 'postgis_reg'
-# (or whatever $DB is set to) if it doesn't
-# already exist.
-#
-# Run the <testname>.sql script
-# Diff output against <testname>_expected
-#
-#
-###################################################
-
-# Set the locale to "C" so error messages match
-# Save original locale to set back
-ORIG_LC_ALL=$LC_ALL
-ORIG_LANG=$LANG
-export LC_ALL=C
-export LANG=C
-
-PGOPTIONS="${PGOPTIONS} -c lc_messages=C -c client_min_messages=NOTICE"
-export PGOPTIONS
-
-REGDIR=`dirname $0`
-REGDIR=`cd "${REGDIR}" && pwd`
-STAGED_INSTALL_DIR="${REGDIR}/00-regress-install"
-STAGED_SCRIPTS_DIR="${STAGED_INSTALL_DIR}/share/contrib/postgis"
-
-PSQL="psql"
-
-if [ -z "$PGIS_REG_TMPDIR" ]; then
-	PGIS_REG_TMPDIR=/tmp/pgis_reg
-fi
-
-mkdir -p ${PGIS_REG_TMPDIR}/tmp
-chmod 777 ${PGIS_REG_TMPDIR}/tmp
-
-VERBOSE=0
-OPT_CLEAN=no
-OPT_DROP=yes
-OPT_CREATE=yes
-OPT_UPGRADE=no
-OPT_WITH_TOPO=no
-OPT_WITH_RASTER=no
-OPT_WITH_SFCGAL=no
-OPT_EXPECT=no
-OPT_EXTENSIONS=no
-
-if echo '\c' | grep c >/dev/null 2>&1; then
-	ECHO_N='echo -n'
-	ECHO_C=''
-else
-	ECHO_N='echo'
-	ECHO_C='\c'
-fi
-
-###################################################
-# 
-# Helper functions
-#
-###################################################
-
-#
-# start_test <name>
-#
-start_test ()
-{
-    TEST="$1"
-    ${ECHO_N} " ${TEST} ${ECHO_C}"
-    RUN=`expr $RUN + 1`
-    show_progress
-}
-
-# Print a single dot
-echo_inline()
-{
-	msg="$1"
-	${ECHO_N} "${msg}${ECHO_C}"
-}
-
-# Print a single dot
-show_progress()
-{
-	echo_inline "."
-}
-
-#
-# pass <msg> 
-#
-pass ()
-{
-  msg="${1}"
-  echo " ok ${msg}"
-}
-
-#
-# fail <msg> <log>
-#
-fail ()
-{
-	_msg="$1"
-	_log="$2"
-
-	if [ -z "$_log" ]; then
-		echo " failed ($_msg)"
-	elif test "$VERBOSE" -eq "1"; then
-		echo " failed ($_msg: $_log)"
-		echo "-----------------------------------------------------------------------------"
-		cat $_log
-		echo "-----------------------------------------------------------------------------"
-	else
-		echo " failed ($_msg: $_log)"
-	fi
-
-	FAIL=`expr $FAIL + 1`
-}
-
-#
-#  run_simple_sql 
-#
-#  Run an sql script and hide results unless it fails.
-#
-#  SQL input file name is $1
-#
-run_simple_sql ()
-{
-	_sql="$1"
-
-	if [ ! -r "$_sql" ]; then
-		fail "can't read $_sql"
-		return 1
-	fi
-
-	TMPFILE="${PGIS_REG_TMPDIR}/test_${RUN}_tmp"
-
-	# Dump output to a temp file.
-	${PSQL} -v "VERBOSITY=terse" -tXA < "${_sql}" ${DB} > ${TMPFILE} 2>&1
-	# Check if psql errored out.
-	if [ $? -gt 0 ]; then
-		fail "Unable to run sql script $_sql" "${TMPFILE}"
-		return 1
-	fi
-	# Check if psql produced any error output.
-	grep "^ERROR:" "${TMPFILE}"
-	if [ $? -eq 0 ]; then
-		fail "Errors while running sql script $_sql" "${TMPFILE}"
-		return 1
-	fi
-	rm ${TMPFILE}
-}
-
-#
-#  run_simple_test 
-#
-#  Run an sql script and compare results with the given expected output
-#
-#  SQL input is ${TEST}.sql, expected output is {$TEST}_expected
-#
-run_simple_test ()
-{
-	_sql="$1"
-	_expected="$2"
-	if [ -n "$3" ]; then
-		_msg="$3: "
-	else
-		_msg=
-	fi
-
-	if [ ! -r "$_sql" ]; then
-		fail "can't read $_sql"
-		return 1
-	fi
-
-	if test x"$OPT_EXPECT" = "xno"; then
-		if [ ! -r "$_expected" ]; then
-			fail "can't read $_expected"
-			return 1
-		fi
-	fi
-
-	show_progress
-
-	OUTFILE="${PGIS_REG_TMPDIR}/test_${RUN}_out"
-	BEPGIS_REG_TMPDIR="${PGIS_REG_TMPDIR}/pgis_reg_tmp/"
-	TMPFILE="${BEPGIS_REG_TMPDIR}/test_${RUN}_tmp"
-	DIFFILE="${PGIS_REG_TMPDIR}/test_${RUN}_diff"
-
-	mkdir -p "${BEPGIS_REG_TMPDIR}"
-	chmod 777 "${BEPGIS_REG_TMPDIR}"
-
-	# Use only one call to sed to work around MSYS buffering problem
-	# and use fewer calls to grep for the same problem. MSYS only accepts
-	# about 16 redirects before hanging.
-	${PSQL} -v "VERBOSITY=terse" -v "tmpfile='${TMPFILE}'" -tXA ${DB} < "${_sql}" 2>&1 \
-		| grep --binary-files=text -v "^$" \
-		| grep --binary-files=text -v "^\(INSERT\|DELETE\|UPDATE\|SELECT\)" \
-		| grep --binary-files=text -v "^\(CONTEXT\|RESET\|ANALYZE\)" \
-		| grep --binary-files=text -v "^\(DROP\|CREATE\|VACUUM\)" \
-		| grep --binary-files=text -v "^\(SET\|TRUNCATE\)" \
-		| grep --binary-files=text -v "^LINE [0-9]" \
-		| grep --binary-files=text -v "^  *^$" \
-		| sed -e 's/Infinity/inf/g' -e 's/Inf/inf/g' -e 's/1\.#INF/inf/g' \
-		      -e 's/[eE]\([+-]\)0\{1,\}\([0-9]\{1,\}\)/e\1\2/g' \
-		      -e 's/Self-intersection .*/Self-intersection/' \
-		      -e 's/^ROLLBACK/COMMIT/' \
-		> "${OUTFILE}"
-
-	rm -rf "${BEPGIS_REG_TMPDIR}" # should we keep these ?
-
-	if test x"$OPT_EXPECT" = "xyes"; then
-		echo_inline " expected"
-		cp "${OUTFILE}" "${_expected}"
-	else
-		if diff -u "${_expected}" "${OUTFILE}" > ${DIFFILE}; then
-			#SUCCESS=`expr $SUCCESS + 1`
-			rm "${OUTFILE}" "${DIFFILE}" # we don't need these anymore
-			return 0
-		else
-			fail "${_msg}diff expected obtained" "${DIFFILE}"
-			# rm "${OUTFILE}" # diff is enough
-			return 1
-		fi
-	fi
-}
-
-# Drop a table if exists
-drop_table_if_exists()
-{
-	tblname="$1"
-	${PSQL} -c "DROP TABLE IF EXISTS ${tblname}" "${DB}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1
-}
-
-#
-# This runs the loader once and checks the output of it.
-# It will NOT run if neither the expected SQL nor the expected
-# select results file exists, unless you pass true for the final
-# parameter.
-#
-# $1 - Description of this run of the loader, used for error messages.
-# $2 - Table name to load into.
-# $3 - The name of the file containing what the
-#      SQL generated by shp2pgsql should look like.
-# $4 - The name of the file containing the expected results of
-#      SELECT geom FROM _tblname should look like.
-# $5 - Command line options for shp2pgsql.
-# $6 - If you pass true, this will run the loader even if neither
-#      of the expected results files exists (though of course
-#      the results won't be compared with anything).
-#
-run_loader_and_check_output()
-{
-	_description=$1
-	_tblname=$2
-	_expected_sql_file=$3
-	_expected_select_results_file=$4
-	_loader_options=$5
-	_run_always=$6
-	# ON_ERROR_STOP is used by psql to return non-0 on an error
-	_psql_opts="--no-psqlrc --variable ON_ERROR_STOP=true"
-
-	if [ -n "$_run_always" -o -r "$_expected_sql_file" -o -r "$_expected_select_results_file" ]; then
-		show_progress
-		# Produce the output SQL file.
-		${SHP2PGSQL} $_loader_options -g the_geom ${TEST}.shp $_tblname \
-			> ${PGIS_REG_TMPDIR}/loader.out \
-			2> ${PGIS_REG_TMPDIR}/loader.err
-
-		if [ $? -gt 0 ]; then
-			fail " $_description: running shp2pgsql" "${PGIS_REG_TMPDIR}/loader.err"
-			return 1
-		fi
-
-		# Compare the output SQL file with the expected if there is one.
-		if [ -r $_expected_sql_file ]; then
-			show_progress
-			if diff "${PGIS_REG_TMPDIR}/loader.out" "$_expected_sql_file" > /dev/null; then
-				:
-			else
-				fail " $_description: actual SQL does not match expected.", \
-					"${PGIS_REG_TMPDIR}/loader.out"
-			fi
-		fi
-
-		# Run the loader SQL script.
-		show_progress
-		${PSQL} ${_psql_opts} -f ${PGIS_REG_TMPDIR}/loader.out "${DB}" > ${PGIS_REG_TMPDIR}/loader.err 2>&1
-		if [ $? -gt 0 ]; then
-			fail " $_description: running shp2pgsql output" "${PGIS_REG_TMPDIR}/loader.err"
-			return 1
-		fi
-
-		# Run the select script (if there is one)
-		if [ -r "${TEST}.select.sql" ]; then
-			if run_simple_test "${TEST}.select.sql" "$_expected_select_results_file" "$_description"; then
-				:
-			else
-				# That will have already called fail, so just return an error.
-				return 1
-			fi
-		fi
-	fi
-	return 0
-}
-
-#
-# This runs the dumper once and checks the output of it.
-# It will NOT run if the expected shp file does not exist, unless
-# you pass true for the final parameter.
-#
-# $1 - Description of this run of the dumper, used for error messages.
-# $2 - Table name to dump from.
-# $3 - "Expected" .shp file to compare with.
-# $3 - If you pass true, this will run the loader even if neither
-#      of the expected results files exists (though of course
-#      the results won't be compared with anything).
-#
-run_dumper_and_check_output()
-{
-	_description=$1
-	_tblname=$2
-	_expected_shp_file=$3
-	_run_always=$4
-
-	if [ -n "$_run_always" -o -r "$_expected_shp_file" ]; then
-		show_progress
-		${PGSQL2SHP} -f ${PGIS_REG_TMPDIR}/dumper ${DB} "${_tblname}" > "${PGIS_REG_TMPDIR}/dumper.err" 2>&1
-		if [ $? -gt 0 ]; then
-			fail "$_description: dumping loaded table" "${PGIS_REG_TMPDIR}/dumper.err"
-			return 1
-		fi
-
-		# Compare with expected output if there is any.
-		if [ -r $_expected_shp_file ]; then
-			show_progress
-			if diff "${PGIS_REG_TMPDIR}"/dumper.shp "$_expected_shp_file" > /dev/null; then
-				:
-			else
-				ls -lL "${PGIS_REG_TMPDIR}"/dumper.shp "$_expected_shp_file" > "${PGIS_REG_TMPDIR}"/dumper.diff
-				fail "$_description: dumping loaded table" "${PGIS_REG_TMPDIR}/dumper.diff"
-				return 1
-			fi
-		fi
-	fi
-	return 0
-}
-
-#
-#  run_loader_test 
-#
-#  Load a shapefile with different methods, create a 'select *' SQL
-#  test and run simple test with provided expected output. 
-#
-#  SHP input is ${TEST}.shp, expected output is {$TEST}.expected
-#
-run_loader_test ()
-{
-	# See if there is a custom command-line options file
-	_custom_opts=""
-	if [ -r ${TEST}.opts ]; then
-		_custom_opts=`grep -v ^\s*# ${TEST}.opts`
-	fi
-
-	tblname="loadedshp"
-
-	# If we have some expected files to compare with, run in wkt mode.
-	if run_loader_and_check_output "wkt test" "${tblname}" "${TEST}-w.sql.expected" "${TEST}-w.select.expected" \
-		"-w $_custom_opts"; then
-		:
-	else
-		return 1
-	fi
-	drop_table_if_exists "${tblname}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1
-
-	# If we have some expected files to compare with, run in geography mode.
-	if run_loader_and_check_output "geog test" "${tblname}" "${TEST}-G.sql.expected" "${TEST}-G.select.expected" \
-		"-G $_custom_opts"; then
-		:
-	else
-		return 1
-	fi
-	# If we have some expected files to compare with, run the dumper and compare shape files.
-	if run_dumper_and_check_output "dumper geog test" "${tblname}" "${TEST}-G.shp.expected"; then
-		:
-	else
-		return 1
-	fi
-	drop_table_if_exists "${tblname}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1
-
-	# Always run in wkb ("normal") mode, even if there are no expected files to compare with.
-	if run_loader_and_check_output "wkb test" "${tblname}" "${TEST}.sql.expected" "${TEST}.select.expected" \
-		"$_custom_opts" "true"; then
-		:
-	else
-		return 1
-	fi
-	# If we have some expected files to compare with, run the dumper and compare shape files.
-	if run_dumper_and_check_output "dumper wkb test" "${tblname}" "${TEST}.shp.expected"; then
-		:
-	else
-		return 1
-	fi
-	drop_table_if_exists "${tblname}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1
-
-	# Some custom parameters can be incompatible with -D.
-	if [ -z "$_custom_opts" ]; then
-		# If we have some expected files to compare with, run in wkt dump mode.
-		if run_loader_and_check_output "wkt dump test" "${tblname}" "${TEST}-wD.sql.expected" \
-			"${TEST}-w.select.expected" "-w -D"; then
-			:
-		else
-			return 1
-		fi
-		drop_table_if_exists "${tblname}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1
-
-		# If we have some expected files to compare with, run in wkt dump mode.
-		if run_loader_and_check_output "geog dump test" "${tblname}" "${TEST}-GD.sql.expected" \
-			"${TEST}-G.select.expected" "-G -D"; then
-			:
-		else
-			return 1
-		fi
-		drop_table_if_exists "${tblname}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1
-
-		# If we have some expected files to compare with, run in wkb dump mode.
-		if run_loader_and_check_output "wkb dump test" "${tblname}" "${TEST}-D.sql.expected" \
-			"${TEST}.select.expected" "-D"; then
-			:
-		else
-			return 1
-		fi
-		drop_table_if_exists "${tblname}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1
-	fi
-
-	return 0
-}
-
-#
-# This runs the loader once and checks the output of it.
-# It will NOT run if neither the expected SQL nor the expected
-# select results file exists, unless you pass true for the final
-# parameter.
-#
-# $1 - Description of this run of the loader, used for error messages.
-# $2 - Table name to load into.
-# $3 - The name of the file containing what the
-#      SQL generated by shp2pgsql should look like.
-# $4 - The name of the file containing the expected results of
-#      SELECT rast FROM _tblname should look like.
-# $5 - Command line options for raster2pgsql.
-# $6 - If you pass true, this will run the loader even if neither
-#      of the expected results files exists (though of course
-#      the results won't be compared with anything).
-#
-run_raster_loader_and_check_output()
-{
-	_description=$1
-	_tblname=$2
-	_expected_sql_file=$3
-	_expected_select_results_file=$4
-	_loader_options=$5
-	_run_always=$6
-	# ON_ERROR_STOP is used by psql to return non-0 on an error
-	_psql_opts="--no-psqlrc --variable ON_ERROR_STOP=true"
-
-	if [ -n "$_run_always" -o -r "$_expected_sql_file" -o -r "$_expected_select_results_file" ]; then
-		show_progress
-
-		# Produce the output SQL file.
-		${RASTER2PGSQL} $_loader_options ${TEST}.tif $_tblname \
-			> ${PGIS_REG_TMPDIR}/loader.out \
-			2> ${PGIS_REG_TMPDIR}/loader.err
-
-		if [ $? -gt 0 ]; then
-			fail " $_description: running raster2pgsql" "${PGIS_REG_TMPDIR}/loader.err"
-			return 1
-		fi
-
-		# Compare the output SQL file with the expected if there is one.
-		if [ -r $_expected_sql_file ]; then
-			show_progress
-			if diff -w "${PGIS_REG_TMPDIR}/loader.out" "$_expected_sql_file" > /dev/null; then
-				:
-			else
-				fail " $_description: actual SQL does not match expected.", \
-					"${PGIS_REG_TMPDIR}/loader.out"
-			fi
-		fi
-
-		# Run the loader SQL script.
-		show_progress
-		${PSQL} ${_psql_opts} -f ${PGIS_REG_TMPDIR}/loader.out "${DB}" > ${PGIS_REG_TMPDIR}/loader.err 2>&1
-		if [ $? -gt 0 ]; then
-			fail " $_description: running raster2pgsql output" "${PGIS_REG_TMPDIR}/loader.err"
-			return 1
-		fi
-
-		# Run the select script (if there is one)
-		if [ -r "${TEST}.select.sql" ]; then
-			if run_simple_test "${TEST}.select.sql" "$_expected_select_results_file" "$_description"; then
-				:
-			else
-				# That will have already called fail, so just return an error.
-				return 1
-			fi
-		fi
-	fi
-	return 0
-}
-
-#
-#  run_raster_loader_test 
-#
-#  Load a raster with different methods
-#
-#  raster input is ${TEST}.tif, expected output is {$TEST}.expected
-#
-run_raster_loader_test ()
-{
-	# See if there is a custom command-line options file
-	_custom_opts=""
-	if [ -r ${TEST}.opts ]; then
-		_custom_opts=`grep -v ^\s*# ${TEST}.opts`
-	fi
-
-	tblname="loadedrast"
-
-	if run_raster_loader_and_check_output "test" "${tblname}" "${TEST}.sql.expected" "${TEST}.select.expected" \
-		"$_custom_opts" "true"; then
-		:
-	else
-		return 1
-	fi
-	drop_table_if_exists "${tblname}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1
-
-	return 0
-}
-
-# Log an initialization error and optionally drop the db
-init_db_error ()
-{
-	echo
-	echo " Something went wrong during db initialization ($1)." 
-	if test "$VERBOSE" -eq "1"; then
-	  echo " Last 5 lines of ${PGIS_REG_TMPDIR}/regress_log follow:"
-		echo "-----------------------------------------------------------------------------"
-		tail -5 ${PGIS_REG_TMPDIR}/regress_log
-		echo "-----------------------------------------------------------------------------"
-	else
-	  echo " For details, check ${PGIS_REG_TMPDIR}/regress_log"
-	fi
-	echo
-
-	if test x"$OPT_DROP" = "xyes" -a x"$OPT_CREATE" = "xyes"; then
-		dropdb "${DB}" > /dev/null
-	else
-		: echo "Drop database ${DB} manually"
-	fi
-
-	exit 1
-}
-
-# Count database objects
-count_db_objects ()
-{
-	${PSQL} ${_psql_opts} -tAc "WITH counts as (
-		select count(*) from pg_type union all 
-		select count(*) from pg_proc union all 
-		select count(*) from pg_cast union all
-		select count(*) from pg_aggregate union all
-		select count(*) from pg_operator union all
-		select count(*) from pg_opclass union all
-		select count(*) from pg_namespace
-			where nspname NOT LIKE 'pg_%' union all
-		select count(*) from pg_opfamily ) 
-		select sum(count) from counts;" "${DB}"
-	if [ $? -gt 0 ]; then
-		init_db_error $1
-	fi
-}
-
-# Prepare the database for spatial operations (extension method)
-prepare_spatial_extensions ()
-{
-	echo "Preparing spatial db ${DB} using EXTENSION" 
-
-	# ON_ERROR_STOP is used by psql to return non-0 on an error
-	_psql_opts="--no-psqlrc --variable ON_ERROR_STOP=true"
-
-	${PSQL} ${_psql_opts} -c "CREATE EXTENSION postgis" "${DB}" \
-    >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "core extension"
-
-  # NOTE: "postgis" extension includes raster...
-
-	if test x"$OPT_WITH_TOPO" = "xyes"; then # {
-    ${PSQL} ${_psql_opts} -c "CREATE EXTENSION postgis_topology" "${DB}" \
-      >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "topology extension"
-	fi # }
-
-}
-
-# Prepare the database for spatial operations (old method)
-prepare_spatial ()
-{
-	echo "Preparing spatial db ${DB} " 
-
-	# ON_ERROR_STOP is used by psql to return non-0 on an error
-	_psql_opts="--no-psqlrc --variable ON_ERROR_STOP=true"
-
-	${PSQL} ${_psql_opts} -Xf ${STAGED_SCRIPTS_DIR}/postgis.sql "${DB}" \
-    >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "core module"
-
-	if test -e ${STAGED_SCRIPTS_DIR}/postgis_comments.sql; then # {
-		${PSQL} ${_psql_opts} -Xf ${STAGED_SCRIPTS_DIR}/postgis_comments.sql \
-      "${DB}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "core comments"
-	fi # }
-
-	if test x"$OPT_WITH_TOPO" = "xyes"; then # {
-		SCRIPT=${STAGED_SCRIPTS_DIR}/topology.sql
-		if test -e ${SCRIPT}; then
-			echo "Adding topology support" 
-			${PSQL} ${_psql_opts} -Xf ${REGDIR}/../topology/topology.sql "${DB}" \
-        >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "topology module"
-		else
-			echo "${SCRIPT} not found" >&2
-			exit 1
-		fi
-		if test -e ${STAGED_SCRIPTS_DIR}/topology_comments.sql; then
-			${PSQL} ${_psql_opts} -Xf ${STAGED_SCRIPTS_DIR}/topology_comments.sql \
-        "${DB}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || \
-        init_db_error "topology comments"
-		fi
-	fi # }
-
-	if test x"$OPT_WITH_RASTER" = "xyes"; then # {
-		SCRIPT=${STAGED_SCRIPTS_DIR}/rtpostgis.sql
-		if test -e ${SCRIPT}; then
-			echo "Adding raster support"
-			${PSQL} ${_psql_opts} -Xf ${SCRIPT} "${DB}" \
-        >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "raster module"
-		else
-			echo "${SCRIPT} not found" >&2
-			exit 1
-		fi
-		if test -e ${STAGED_SCRIPTS_DIR}/raster_comments.sql; then
-			${PSQL} ${_psql_opts} -Xf ${STAGED_SCRIPTS_DIR}/raster_comments.sql \
-        "${DB}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || \
-        init_db_error "raster comments"
-		fi
-	fi # }
-
-	if test x"$OPT_WITH_SFCGAL" = "xyes"; then # {
-		SCRIPT=${STAGED_SCRIPTS_DIR}/sfcgal.sql
-		if test -e ${SCRIPT}; then
-			echo "Adding sfcgal support"
-			${PSQL} ${_psql_opts} -Xf ${SCRIPT} "${DB}" \
-        >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "raster module"
-		else
-			echo "${SCRIPT} not found" >&2
-			exit 1
-		fi
-		if test -e ${STAGED_SCRIPTS_DIR}/sfcgal_comments.sql; then
-			${PSQL} ${_psql_opts} -Xf ${STAGED_SCRIPTS_DIR}/sfcgal_comments.sql \
-        "${DB}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || \
-        init_db_error "sfcgal comments"
-		fi
-	fi # }
-}
-
-# Create the spatial database
-create_spatial ()
-{
-	echo "Creating spatial db ${DB} " 
-
-	createdb --encoding=UTF-8 --template=template0 --lc-collate="C" "${DB}" > ${PGIS_REG_TMPDIR}/regress_log 2>&1 
-	if [ $? -gt 0 ]; then # {
-		fail "createdb failed" "${PGIS_REG_TMPDIR}/regress_log"
-		exit 1
-	fi # }
-	createlang plpgsql "${DB}" >> ${PGIS_REG_TMPDIR}/regress_log
-
-	# Count database objects before installing anything
-	object_count_pre=$(count_db_objects "counting object before postgis install")
-
-	if test x"$OPT_EXTENSIONS" = "xyes"; then # {
-    prepare_spatial_extensions
-  else # }{
-    prepare_spatial
-  fi # }
-}
-
-# Upgrade an existing database (soft upgrade)
-upgrade_spatial ()
-{
-  echo "Upgrading spatial db ${DB} " 
-
-  SCRIPT=${STAGED_SCRIPTS_DIR}/postgis_upgrade_*_minor.sql
-  if test -e ${SCRIPT}; then
-    echo "Upgrading core"
-    ${PSQL} ${_psql_opts} -Xf ${SCRIPT} "${DB}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "core upgrade"
-  else
-    echo "${SCRIPT} not found" >&2
-      exit 1
-  fi
-
-  if test x"$OPT_WITH_TOPO" = "xyes"; then
-    SCRIPT=${STAGED_SCRIPTS_DIR}/topology_upgrade_*_minor.sql
-    if test -e ${SCRIPT}; then
-      echo "Upgrading topology"
-      ${PSQL} ${_psql_opts} -Xf ${SCRIPT} "${DB}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "topology upgrade"
-    else
-      echo "${SCRIPT} not found" >&2
-        exit 1
-    fi
-  fi
-
-  if test x"$OPT_WITH_RASTER" = "xyes"; then
-    SCRIPT=${STAGED_SCRIPTS_DIR}/rtpostgis_upgrade_*_minor.sql
-    if test -e ${SCRIPT}; then
-      echo "Upgrading raster"
-      ${PSQL} ${_psql_opts} -Xf ${SCRIPT} "${DB}" >> ${PGIS_REG_TMPDIR}/regress_log 2>&1 || init_db_error "raster upgrade"
-    else
-      echo "${SCRIPT} not found" >&2
-        exit 1
-    fi
-  fi
-}
-
-drop_spatial_extensions()
-{
-	#echo "Dropping spatial from ${DB} using EXTENSION" 
-
-	# ON_ERROR_STOP is used by psql to return non-0 on an error
-	_psql_opts="--no-psqlrc --variable ON_ERROR_STOP=true"
-
-  if test x"$OPT_WITH_TOPO" = "xyes"; then
-    ${PSQL} ${_psql_opts} -c "DROP EXTENSION postgis_topology;" \
-      "${DB}" > ${PGIS_REG_TMPDIR}/uninstall.log 2> ${PGIS_REG_TMPDIR}/uninstall.err
-    if [ $? -gt 0 ]; then # {
-      fail "DROP EXTENSION postgis_topology failed" "${PGIS_REG_TMPDIR}/uninstall.err"
-      ok=no
-    fi # }
-    show_progress # on to core uninstall
-  fi
-
-  ${PSQL} ${_psql_opts} -c "DROP EXTENSION postgis;" \
-    "${DB}" > ${PGIS_REG_TMPDIR}/uninstall.log 2> ${PGIS_REG_TMPDIR}/uninstall.err
-  if [ $? -gt 0 ]; then # {
-    fail "DROP EXTENSION postgis failed" "${PGIS_REG_TMPDIR}/uninstall.err"
-  fi # }
-
-  test x"$ok" = "xyes"
-  return $?
-}
-
-drop_spatial()
-{
-	#echo "Dropping spatial from ${DB}" 
-
-  ok=yes
-
-  if test x"$OPT_WITH_TOPO" = "xyes"; then
-    ${PSQL} ${_psql_opts} -Xf ${STAGED_SCRIPTS_DIR}/uninstall_topology.sql \
-      "${DB}" > ${PGIS_REG_TMPDIR}/uninstall.log 2> ${PGIS_REG_TMPDIR}/uninstall.err
-    if [ $? -gt 0 ]; then # {
-      fail "uninstall_topology.sql failed" "${PGIS_REG_TMPDIR}/uninstall.err"
-      ok=no
-    fi # }
-    show_progress # on to raster uninstall
-  fi
-
-  if test x"$OPT_WITH_RASTER" = "xyes"; then
-    ${PSQL} ${_psql_opts} -Xf ${STAGED_SCRIPTS_DIR}/uninstall_rtpostgis.sql \
-      "${DB}" > ${PGIS_REG_TMPDIR}/uninstall.log 2> ${PGIS_REG_TMPDIR}/uninstall.err
-    if [ $? -gt 0 ]; then # {
-      fail "uninstall_rtpostgis.sql failed" "${PGIS_REG_TMPDIR}/uninstall.err"
-      ok=no
-    fi # }
-    show_progress # on to postgis uninstall
-  fi
-
-  ${PSQL} ${_psql_opts} -Xf ${STAGED_SCRIPTS_DIR}/uninstall_postgis.sql \
-    "${DB}" > ${PGIS_REG_TMPDIR}/uninstall.log 2> ${PGIS_REG_TMPDIR}/uninstall.err
-  if [ $? -gt 0 ]; then # {
-    fail "uninstall_postgis.sql failed" "${PGIS_REG_TMPDIR}/uninstall.err"
-  fi # }
-
-  test x"$ok" = "xyes"
-  return $?
-}
-
-# Drop spatial from an existing database
-uninstall_spatial()
-{
-  start_test "uninstall"
-	if test x"$OPT_EXTENSIONS" = "xyes"; then # {
-    ok=drop_spatial_extensions
-  else # }{
-    ok=drop_spatial
-  fi # }
-  
-
-  if $ok; then # {
-      show_progress # on to objects count
-      object_count_post=$(count_db_objects "counting object after postgis uninstall")
-      if test ${object_count_pre} != ${object_count_post}; then # {
-            fail "Count of object before install (${object_count_pre}) != count after uninstall (${object_count_post})"
-      else
-            pass "(${object_count_pre})"
-      fi # }
-  
-  fi # }
-}
-
-###################################################
-# 
-# Parse command line opts
-#
-###################################################
-
-while [ -n "$1" ]; do
-
-	if test "$1" = "-v"; then
-		VERBOSE=1
-		shift
-		continue
-	elif test "$1" = "--nodrop"; then
-		OPT_DROP=no
-		shift
-		continue
-	elif test "$1" = "--nocreate"; then
-		OPT_CREATE=no
-		shift
-		continue
-	elif test "$1" = "--expect"; then
-		OPT_EXPECT=yes
-		shift
-		continue
-	elif test "$1" = "--extensions"; then
-		OPT_EXTENSIONS=yes
-		shift
-		continue
-	elif test "$1" = "--upgrade"; then
-		OPT_UPGRADE=yes
-		shift
-		continue
-	elif test "$1" = "--topology"; then
-		OPT_WITH_TOPO=yes
-		shift
-		continue
-	elif test "$1" = "--raster"; then
-		OPT_WITH_RASTER=yes
-		shift
-		continue
-	elif test "$1" = "--sfcgal"; then
-		OPT_WITH_SFCGAL=yes
-		shift
-		continue
-	elif test "$1" = "--clean"; then
-		OPT_CLEAN=yes
-		shift
-		continue
-	else
-		break
-	fi
-done
-
-if [ -z "$1" ]; then
-	echo "Usage: $0 [<options>] <test> [<test>]" >&2
-	echo "Options:" >&2
-	echo " -v           be verbose about failures" >&2
-	echo " --nocreate   do not create the regression database on start" >&2
-	echo " --upgrade    source the upgrade scripts on start" >&2
-	echo " --nodrop     do not drop the regression database on exit" >&2
-	echo " --raster     load also raster extension" >&2
-	echo " --topology   load also topology extension" >&2
-	echo " --sfcgal     use also sfcgal backend" >&2
-	echo " --clean      cleanup test logs on exit" >&2
-	echo " --expect     save obtained output as expected" >&2
-	exit 1
-fi
-
-###################################################
-# 
-# Prepare the database
-#
-###################################################
-
-db_exists=`${PSQL} -l | grep -w ${DB}`
-
-if test -z "$db_exists"; then
-
-	if test x"$OPT_CREATE" = "xyes"; then
-		create_spatial
-	else
-
-		echo "Database ${DB} does not exist" >&2
-		echo "Run w/out the --nocreate flag to create it" >&2
-		exit 1
-	fi
-else
-	if test x"$OPT_CREATE" = "xyes"; then
-		echo "Database ${DB} already exist." >&2
-		echo "Run with the --nocreate flag to use it " \
-			"or drop it and try again." >&2
-		exit 1
-	else
-		echo "Using existing database ${DB}"
-	fi
-fi
-
-if test x"$OPT_UPGRADE" = "xyes"; then
-	upgrade_spatial
-fi
-
-libver=`${PSQL} -tAc "select postgis_lib_version()" "${DB}"`
-
-if [ -z "$libver" ]; then
-	dropdb "${DB}"
-	echo
-	echo " Something went wrong (no postgis installed in ${DB})." 
-	if [ -z "$db_exists" ]; then
-		echo " For details, check ${PGIS_REG_TMPDIR}/regress_log"
-	fi
-	echo
-	exit 1
-fi
-
-###################################################
-# 
-# Report runtime environment 
-#
-###################################################
-
-geosver=`${PSQL} -tAc "select postgis_geos_version()" "${DB}"`
-projver=`${PSQL} -tAc "select postgis_proj_version()" "${DB}"`
-if test x"$OPT_WITH_SFCGAL" = "xyes"; then
-  sfcgalver=`${PSQL} -tAc "select postgis_sfcgal_version()" "${DB}"`
-fi
-if test x"$OPT_WITH_RASTER" = "xyes"; then
-  gdalver=`${PSQL} -tAc "select postgis_gdal_version()" "${DB}"`
-fi
-svnrev=`${PSQL} -tAc "select postgis_svn_version()" "${DB}"`
-libbuilddate=`${PSQL} -tAc "select postgis_lib_build_date()" "${DB}"`
-pgsqlver=`${PSQL} -tAc "select version()" "${DB}"`
-
-echo "PGIS_REG_TMPDIR is ${PGIS_REG_TMPDIR}"
-echo "PATH is ${PATH}"
-
-echo
-echo " $pgsqlver"
-echo " Postgis $libver - r${svnrev} - $libbuilddate"
-if [ -n "$geosver" ]; then
-	echo "   GEOS: $geosver"
-fi
-if [ -n "$projver" ]; then
-	echo "   PROJ: $projver"
-fi
-if [ -n "$sfcgalver" ]; then
-	echo "   SFCGAL: $sfcgalver"
-fi
-if [ -n "$gdalver" ]; then
-	echo "   GDAL: $gdalver"
-fi
-
-###################################################
-# 
-# Run the tests
-#
-###################################################
-
-echo 
-echo "Running tests"
-echo
-
-RUN=0
-SKIP=0
-FAIL=0
-#SUCCESS=0
-while [ -n "$1" ]; do
-	TEST="$1"; shift;
-
-	# catch a common mistake (strip trailing .sql)
-	TEST=`echo "$TEST" | sed 's/\.sql$//'`
-	export TEST
-
-	start_test "${TEST}"
-
-	# Check for a "-pre.sh" file in case there are non-SQL setup tasks needed before
-	# the test can be run.
-        if [ -r "${TEST}-pre.sh" ]; then
-		"./${TEST}-pre.sh"
-		if [ $? -gt 0 ]; then
-			fail " setup script failed"
-			continue
-		else
-			show_progress
-		fi
-        fi
-
-	# Check for a "-pre.sql" file in case there is setup SQL needed before
-	# the test can be run.
-        if [ -r "${TEST}-pre.sql" ]; then
-		if run_simple_sql "${TEST}-pre.sql"; then
-			show_progress
-		else
-			continue
-		fi
-        fi
-
-	# Check .dbf *before* .sql as loader test could
-	# create the .sql
-	# Check for .dbf not just .shp since the loader can load
-	# .dbf files without a .shp.
-	if [ -r "${TEST}.dbf" ]; then
-		if run_loader_test; then
-			pass
-		fi
-	# Check .tif *before* .sql as loader test could
-	# create the .sql
-	elif [ -r "${TEST}.tif" ]; then
-		if run_raster_loader_test; then
-			pass
-		fi
-	elif [ -r "${TEST}.sql" ]; then
-		if run_simple_test ${TEST}.sql ${TEST}_expected; then
-			pass
-		fi
-	else
-		echo " skipped (can't read ${TEST}.sql)"
-		SKIP=`expr $SKIP + 1`
-		continue
-	fi
-
-	# Check for a "-post.sql" file in case there is teardown SQL needed after
-	# the test has been run.
-        if [ -r "${TEST}-post.sql" ]; then
-		if ! run_simple_sql "${TEST}-post.sql"; then
-			echo " ... but cleanup sql failed!"
-		fi
-        fi
-
-	# Check for a "-post.sh" file in case there are non-SQL teardown tasks needed after
-	# the test has been run.
-        if [ -r "${TEST}-post.sh" ]; then
-		"./${TEST}-post.sh"
-		if [ $? -gt 0 ]; then
-			echo " ... but cleanup script failed!"
-		fi
-        fi
-
-done
-
-###################################################
-# 
-# Uninstall postgis (serves as an uninstall test)
-#
-###################################################
-
-# We only test uninstall if we've been asked to drop 
-# and we did create
-# and nobody requested raster or topology
-# (until they have an uninstall script themself)
-if test x"$OPT_DROP" = "xyes" \
-     -a x"$object_count_pre" != "x"
-then # {
-    uninstall_spatial
-fi # }
-
-###################################################
-# 
-# Summary report
-#
-###################################################
-
-echo
-echo "Run tests: $RUN"
-#echo "Skipped: $SKIP"
-#echo "Successful: $SUCCESS"
-echo "Failed: $FAIL"
-
-if test x"$OPT_CLEAN" = "xyes"; then
-	rm -f "${PGIS_REG_TMPDIR}"/dumper.*
-	rm -f "${PGIS_REG_TMPDIR}/loader.*"
-	rm -f "${PGIS_REG_TMPDIR}/regress_log"
-	rm -f "${PGIS_REG_TMPDIR}"/uninstall.*
-	rm -f "${PGIS_REG_TMPDIR}"/tmp/test_*
-	rmdir -p "${PGIS_REG_TMPDIR}/tmp/" 2> /dev/null
-	rmdir -p "${PGIS_REG_TMPDIR}" 2> /dev/null
-fi
-
-if test x"$OPT_DROP" = "xyes" -a x"$OPT_CREATE" = "xyes"; then
-	sleep 1
-	dropdb "${DB}" > /dev/null
-else
-	: echo "Drop database ${DB} manually"
-fi
-
-# Set the locale back to the original
-export LC_ALL=$ORIG_LC_ALL
-export LANG=$ORIG_LANG
-
-exit $FAIL
diff --git a/regress/run_test.pl b/regress/run_test.pl
index b3acb51..66e44f1 100755
--- a/regress/run_test.pl
+++ b/regress/run_test.pl
@@ -1,4 +1,17 @@
 #!/usr/bin/perl
+
+#
+# PostGIS - Spatial Types for PostgreSQL
+# http://postgis.net
+#
+# Copyright (C) 2012-2014 Sandro Santilli <strk at keybit.net>
+# Copyright (C) 2014-2015 Regina Obe <lr at pcorp.us>
+# Copyright (C) 2012-2013 Paul Ramsey <pramsey at cleverelephant.ca>
+#
+# This is free software; you can redistribute and/or modify it under
+# the terms of the GNU General Public Licence. See the COPYING file.
+#
+
 #$| = 1;
 use File::Basename;
 use File::Temp 'tempdir';
@@ -78,9 +91,9 @@ if ( $OPT_UPGRADE_PATH )
   $OPT_UPGRADE = 1; # implied 
   my @path = split ('--', $OPT_UPGRADE_PATH);
   $OPT_UPGRADE_FROM = $path[0]
-    || die "Malformed upgrade path, <from>:<to> expected, $OPT_UPGRADE_PATH given";
+    || die "Malformed upgrade path, <from>--<to> expected, $OPT_UPGRADE_PATH given";
   $OPT_UPGRADE_TO = $path[1]
-    || die "Malformed upgrade path, <from>:<to> expected, $OPT_UPGRADE_PATH given";
+    || die "Malformed upgrade path, <from>--<to> expected, $OPT_UPGRADE_PATH given";
   print "Upgrade path: ${OPT_UPGRADE_FROM} --> ${OPT_UPGRADE_TO}\n";
 }
 
@@ -232,17 +245,84 @@ if ( ! $libver )
 }
 
 
+sub create_upgrade_test_objects
+{
+  # TODO: allow passing the "upgrade-init" script via commandline
+
+  my $query = "create table upgrade_test(g1 geometry, g2 geography";
+  $query .= ", r raster" if ( $OPT_WITH_RASTER );
+  $query .= ")";
+  my $ret = sql($query);
+  unless ( $ret =~ /^CREATE/ ) {
+    `dropdb $DB`;
+    print "\nSomething went wrong creating upgrade_test table: $ret.\n";
+    exit(1);
+  }
+
+  if ( $OPT_WITH_RASTER )
+  {
+    $query = "insert into upgrade_test(r) ";
+    $query .= "select ST_AddBand(ST_MakeEmptyRaster(10, 10, 1, 1, 2, 2, 0, 0,4326), 1, '8BSI'::text, -129, NULL);";
+    $query .= "set client_min_messages to error; select AddRasterConstraints('upgrade_test', 'r')";
+    $ret = sql($query);
+    unless ( $ret =~ /^t$/ ) {
+      `dropdb $DB`;
+      print "\nSomething went wrong adding raster constraints to upgrade_test: " . $ret . "\n";
+      exit(1);
+    }
+  }
+
+  if ( $OPT_WITH_TOPO )
+  {
+    $query = "select topology.createTopology('upgrade_test');";
+    $ret = sql($query);
+    unless ( $ret =~ /^[1-9][0-9]*$/ ) {
+      `dropdb $DB`;
+      print "\nSomething went wrong adding upgrade_test topology: " . $ret . "\n";
+      exit(1);
+    }
+  }
+}
+
+sub drop_upgrade_test_objects
+{
+  # TODO: allow passing the "upgrade-cleanup" script via commandline
+
+  my $ret = sql("drop table upgrade_test;");
+  unless ( $ret =~ /^DROP/ ) {
+    `dropdb $DB`;
+    print "\nSomething went wrong dropping spatial tables: $ret.\n";
+    exit(1);
+  }
+
+  if ( $OPT_WITH_TOPO )
+  {
+    my $query = "SELECT topology.DropTopology('upgrade_test');";
+    $ret = sql($query);
+    unless ( $ret =~ /^Topology 'upgrade_test' dropped$/ ) {
+      `dropdb $DB`;
+      print "\nSomething went wrong dropping upgrade_test topology: " . $ret . "\n";
+      exit(1);
+    }
+  }
+}
+
+
 if ( $OPT_UPGRADE )
 {
-	if ( $OPT_EXTENSIONS )
-	{	
-		upgrade_spatial_extensions();
-	}
-	else
-	{
+  create_upgrade_test_objects();
+
+  if ( $OPT_EXTENSIONS )
+  {
+    upgrade_spatial_extensions();
+  }
+  else
+  {
 	  upgrade_spatial();
   }
 
+  drop_upgrade_test_objects();
+
   # Update libver
   $libver = sql("select postgis_lib_version()");
 }
@@ -530,7 +610,7 @@ sub sql
 {
 	my $sql = shift;
 	my $result = `psql -tXA -d $DB -c "$sql"`;
-	$result =~ s/\n$//;
+	$result =~ s/[\n\r]*$//;
 	$result;
 }
 
@@ -598,6 +678,7 @@ sub run_simple_test
 	my $cmd = "psql -v \"VERBOSITY=terse\""
           . " -v \"tmpfile='$tmpfile'\""
           . " -v \"scriptdir=$scriptdir\""
+          . " -v \"regdir=$REGDIR\""
           . " -tXA $DB < $sql > $outfile 2>&1";
 	my $rv = system($cmd);
 
@@ -608,7 +689,7 @@ sub run_simple_test
 
 	# Strip the lines we don't care about
 	@lines = grep(!/^\$/, @lines);
-	@lines = grep(!/^(INSERT|DELETE|UPDATE|SELECT|COPY)/, @lines);
+	@lines = grep(!/^(INSERT|DELETE|UPDATE|SELECT|COPY|DO)/, @lines);
 	@lines = grep(!/^(CONTEXT|RESET|ANALYZE)/, @lines);
 	@lines = grep(!/^(DROP|CREATE|ALTER|VACUUM)/, @lines);
 	@lines = grep(!/^(LOG|SET|TRUNCATE)/, @lines);
@@ -624,6 +705,7 @@ sub run_simple_test
 		$lines[$i] =~ s/[eE]([+-])0+(\d+)/e$1$2/g;
 		$lines[$i] =~ s/Self-intersection .*/Self-intersection/;
 		$lines[$i] =~ s/^ROLLBACK/COMMIT/;
+		$lines[$i] =~ s/^psql.*(NOTICE|WARNING|ERROR):/\1:/g;
 	}
 	
 	# Write out output file
@@ -1143,8 +1225,11 @@ sub load_sql_file
 		my $cmd = "psql $psql_opts -Xf $file $DB >> $REGRESS_LOG 2>&1";
 		print "  $file\n" if $VERBOSE;
 		my $rv = system($cmd);
-		die "\nError encountered loading $file, see $REGRESS_LOG for details\n\n"
-		    if $rv;
+		if ( $rv )
+		{
+		  fail "Error encountered loading $file", $REGRESS_LOG;
+		  exit 1
+		}
 	}
 	return 1;
 }
@@ -1182,6 +1267,21 @@ sub prepare_spatial_extensions
   		die;
 		}
  	}
+
+	if ( $OPT_WITH_SFCGAL )
+	{
+		my $sql = "CREATE EXTENSION postgis_sfcgal";
+		if ( $OPT_UPGRADE_FROM ) {
+			$sql .= " VERSION '" . $OPT_UPGRADE_FROM . "'";
+		}
+ 		$cmd = "psql $psql_opts -c \"" . $sql . "\" $DB >> $REGRESS_LOG 2>&1";
+		$rv = system($cmd);
+		if ( $rv ) {
+		  fail "Error encountered creating EXTENSION POSTGIS_SFCGAL", $REGRESS_LOG;
+		  die;
+		}
+	}
+
  	return 1;
 }
 
@@ -1223,7 +1323,7 @@ sub upgrade_spatial
 {
     print "Upgrading PostGIS in '${DB}' \n" ;
 
-    my $script = `ls ${STAGED_SCRIPTS_DIR}/postgis_upgrade_*_minor.sql`;
+    my $script = `ls ${STAGED_SCRIPTS_DIR}/postgis_upgrade.sql`;
     chomp($script);
 
     if ( -e $script )
@@ -1238,7 +1338,7 @@ sub upgrade_spatial
     
     if ( $OPT_WITH_TOPO ) 
     {
-        my $script = `ls ${STAGED_SCRIPTS_DIR}/topology_upgrade_*_minor.sql`;
+        my $script = `ls ${STAGED_SCRIPTS_DIR}/topology_upgrade.sql`;
         chomp($script);
         if ( -e $script )
         {
@@ -1253,7 +1353,7 @@ sub upgrade_spatial
     
     if ( $OPT_WITH_RASTER ) 
     {
-        my $script = `ls ${STAGED_SCRIPTS_DIR}/rtpostgis_upgrade_*_minor.sql`;
+        my $script = `ls ${STAGED_SCRIPTS_DIR}/rtpostgis_upgrade.sql`;
         chomp($script);
         if ( -e $script )
         {
@@ -1330,10 +1430,20 @@ sub drop_spatial_extensions
     
     if ( $OPT_WITH_TOPO )
     {
-        $cmd = "psql $psql_opts -c \"DROP EXTENSION postgis_topology\" $DB >> $REGRESS_LOG 2>&1";
+        # NOTE: "manually" dropping topology schema as EXTENSION does not
+        #       take care of that itself, see
+        #       http://trac.osgeo.org/postgis/ticket/2138
+        $cmd = "psql $psql_opts -c \"DROP EXTENSION postgis_topology; DROP SCHEMA topology;\" $DB >> $REGRESS_LOG 2>&1";
         $rv = system($cmd);
       	$ok = 0 if $rv;
     }
+
+    if ( $OPT_WITH_SFCGAL )
+    {
+        $cmd = "psql $psql_opts -c \"DROP EXTENSION postgis_sfcgal;\" $DB >> $REGRESS_LOG 2>&1";
+        $rv = system($cmd);
+        $ok = 0 if $rv;
+    }
     
     $cmd = "psql $psql_opts -c \"DROP EXTENSION postgis\" $DB >> $REGRESS_LOG 2>&1";
     $rv = system($cmd);
diff --git a/regress/sfcgal/approximatemedialaxis.sql b/regress/sfcgal/approximatemedialaxis.sql
new file mode 100644
index 0000000..e3611b8
--- /dev/null
+++ b/regress/sfcgal/approximatemedialaxis.sql
@@ -0,0 +1,2 @@
+SELECT 'square', ST_AsEwkt(ST_ApproximateMedialAxis('SRID=3857;POLYGON((0 0,1 0,1 1,0 1,0 0))'));
+SELECT 'rect1', ST_AsEwkt(ST_ApproximateMedialAxis('SRID=4326;POLYGON((0 0,2 0,2 1,0 1,0 0))'));
diff --git a/regress/sfcgal/approximatemedialaxis_expected b/regress/sfcgal/approximatemedialaxis_expected
new file mode 100644
index 0000000..2677ed7
--- /dev/null
+++ b/regress/sfcgal/approximatemedialaxis_expected
@@ -0,0 +1,2 @@
+square|SRID=3857;MULTILINESTRING EMPTY
+rect1|SRID=4326;MULTILINESTRING((0.5 0.5,1.5 0.5))
diff --git a/regress/sfcgal/concave_hull.sql b/regress/sfcgal/concave_hull.sql
index 82d867b..2a47548 100644
--- a/regress/sfcgal/concave_hull.sql
+++ b/regress/sfcgal/concave_hull.sql
@@ -1,11 +1,12 @@
 SET postgis.backend = 'sfcgal';
 
--- $Id: concave_hull.sql 9324 2012-02-27 22:08:12Z pramsey $
 -- Tests to confirm the concave hull area is <= convex hull and 
 -- covers the original geometry (can't use covers because always gives topo errors with 3.3
+-- vmora: the small tolerance for area comes from the reordering of the geometry that
+--        cause small errors on area to cummulate (difference of 5e-13 on 2224 in this case)
 SELECT 
 	'ST_ConcaveHull MultiPolygon 0.95', ST_Area(ST_Intersection(geom,ST_ConcaveHull(
-		geom, 0.95) )) = ST_Area(geom) As encloses_geom, 
+		geom, 0.95) )) - ST_Area(geom) < 1e-9 As encloses_geom, 
 		(ST_Area(ST_ConvexHull(geom)) 
 		- ST_Area(ST_ConcaveHull(geom, 0.95))) < (0.95 * ST_Area(ST_ConvexHull(geom) ) ) As reached_target
 FROM ST_Union(ST_GeomFromText('POLYGON((175 150, 20 40, 
diff --git a/regress/sfcgal/empty.sql b/regress/sfcgal/empty.sql
index 0cb44f7..758aaea 100644
--- a/regress/sfcgal/empty.sql
+++ b/regress/sfcgal/empty.sql
@@ -42,7 +42,7 @@ WITH inp AS (SELECT
 WITH inp AS (SELECT
  'POLYGON EMPTY'::geometry as empty,
  'POLYGON((0 0, 10 0, 5 5, 0 0))'::geometry as geometry
- ) SELECT 'ST_Union(geometry, empty) == geometry', ST_AsEWKT(ST_Union(geometry, empty)) FROM inp;
+ ) SELECT 'ST_Union(geometry, empty) == geometry', ST_Equals(ST_ExteriorRing(ST_Union(geometry, empty)), 'LINESTRING(0 0, 10 0, 5 5, 0 0)'::geometry) FROM inp;
 WITH inp AS (SELECT
  'POLYGON EMPTY'::geometry as empty
  ) SELECT 'ST_Union(empty, empty) == empty', ST_IsEmpty(ST_Union(empty, empty)) FROM inp;
@@ -56,7 +56,7 @@ WITH inp AS (SELECT
 WITH inp AS (SELECT
  'POLYGON EMPTY'::geometry as empty,
  'POLYGON((0 0, 10 0, 5 5, 0 0))'::geometry as geometry
- ) SELECT 'ST_Difference(geometry, empty) == geometry', ST_AsEWKT(ST_Difference(geometry, empty)) FROM inp;
+ ) SELECT 'ST_Difference(geometry, empty) == geometry', ST_Equals(ST_ExteriorRing(ST_Difference(geometry, empty)),  'LINESTRING(0 0, 10 0, 5 5, 0 0)'::geometry) FROM inp;
 WITH inp AS (SELECT
  'POLYGON EMPTY'::geometry as empty,
  'POLYGON((0 0, 10 0, 5 5, 0 0))'::geometry as geometry
diff --git a/regress/sfcgal/empty_expected b/regress/sfcgal/empty_expected
index cde19e3..866824a 100644
--- a/regress/sfcgal/empty_expected
+++ b/regress/sfcgal/empty_expected
@@ -24,11 +24,11 @@ T3.16|
 T3.17|
 T3.18|
 ST_Buffer(empty, tolerance) == empty|t
-ST_Union(geometry, empty) == geometry|POLYGON((0 0,10 0,5 5,0 0))
+ST_Union(geometry, empty) == geometry|t
 ST_Union(empty, empty) == empty|t
 ST_Intersection(geometry, empty) == geometry|t
 ST_Intersection(empty, empty) == empty|t
-ST_Difference(geometry, empty) == geometry|POLYGON((0 0,10 0,5 5,0 0))
+ST_Difference(geometry, empty) == geometry|t
 ST_Difference(empty, geometry) == empty|t
 ST_Distance(geometry, empty) == NULL|inf
 ST_DWithin(geometry, empty, tolerance) == FALSE|f
diff --git a/regress/sfcgal/legacy.sql b/regress/sfcgal/legacy.sql
index db80f9a..293422f 100644
--- a/regress/sfcgal/legacy.sql
+++ b/regress/sfcgal/legacy.sql
@@ -7,52 +7,6 @@
 --
 
 SET postgis.backend = 'sfcgal';
-SET client_min_messages TO WARNING;
 
-\i 00-regress-install/share/contrib/postgis/legacy.sql
-
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4326,'EPSG',4326,'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ');
-
-SELECT 'Starting up MapServer/Geoserver tests...';
--- Set up the data table
-SELECT 'Setting up the data table...';
-CREATE TABLE public.wmstest ( id INTEGER );
-SELECT AddGeometryColumn( 'wmstest', 'pt', 4326, 'POLYGON', 2 );
-INSERT INTO wmstest SELECT lon * 100 + lat AS id, st_setsrid(st_buffer(st_makepoint(lon, lat),1.0),4326) AS pt
-FROM (select lon, generate_series(-80,80, 5) AS lat FROM (SELECT generate_series(-175, 175, 5) AS lon) AS sq1) AS sq2;
-ALTER TABLE wmstest add PRIMARY KEY ( id );
-CREATE INDEX wmstest_geomidx ON wmstest using gist ( pt );
-
--- Geoserver 2.0 NG tests
-SELECT 'Running Geoserver 2.0 NG tests...';
--- Run a Geoserver 2.0 NG metadata query
-SELECT 'Geoserver1', TYPE FROM GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'public' AND F_TABLE_NAME = 'wmstest' AND F_GEOMETRY_COLUMN = 'pt';
-SELECT 'Geoserver2', SRID FROM GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'public' AND F_TABLE_NAME = 'wmstest' AND F_GEOMETRY_COLUMN = 'pt';
--- Run a Geoserver 2.0 NG WMS query
-SELECT 'Geoserver3', "id",substr(encode(asBinary(force_2d("pt"),'XDR'),'base64'),0,16) as "pt" FROM "public"."wmstest" WHERE "pt" && GeomFromText('POLYGON ((-6.58216065979069 -0.7685569763184591, -6.58216065979069 0.911225433349509, -3.050569931030911 0.911225433349509, -3.050569931030911 -0.7685569763184591, -6.58216065979069 -0.7685569763184591))', 4326);
--- Run a Geoserver 2.0 NG KML query
-SELECT 'Geoserver4', count(*) FROM "public"."wmstest" WHERE "pt" && GeomFromText('POLYGON ((-1.504017942347938 24.0332272532341, -1.504017942347938 25.99364254836741, 1.736833353559741 25.99364254836741, 1.736833353559741 24.0332272532341, -1.504017942347938 24.0332272532341))', 4326);
-SELECT 'Geoserver5', "id",substr(encode(asBinary(force_2d("pt"),'XDR'),'base64'),0,16) as "pt" FROM "public"."wmstest" WHERE "pt" && GeomFromText('POLYGON ((-1.504017942347938 24.0332272532341, -1.504017942347938 25.99364254836741, 1.736833353559741 25.99364254836741, 1.736833353559741 24.0332272532341, -1.504017942347938 24.0332272532341))', 4326);
-SELECT 'Geoserver6', "id",substr(encode(asBinary(force_2d("pt"),'XDR'),'base64'),0,16) as "pt" FROM "public"."wmstest" WHERE "pt" && GeomFromText('POLYGON ((-1.507182836191598 24.031312785172446, -1.507182836191598 25.995557016429064, 1.7399982474034008 25.995557016429064, 1.7399982474034008 24.031312785172446, -1.507182836191598 24.031312785172446))', 4326);
-
--- MapServer 5.4 tests
-select 'MapServer1', attname from pg_attribute, pg_constraint, pg_class where pg_constraint.conrelid = pg_class.oid and pg_class.oid = pg_attribute.attrelid and pg_constraint.contype = 'p' and pg_constraint.conkey[1] = pg_attribute.attnum and pg_class.relname = 'wmstest' and pg_table_is_visible(pg_class.oid) and pg_constraint.conkey[2] is null;
-select 'MapServer2', "id",substr(encode(AsBinary(force_collection(force_2d("pt")),'NDR'),'base64'),0,16) as geom,"id" from wmstest where pt && GeomFromText('POLYGON((-98.5 32,-98.5 39,-91.5 39,-91.5 32,-98.5 32))',find_srid('','wmstest','pt'));
-
--- MapServer 5.6 tests
-select * from wmstest where false limit 0;
-select 'MapServer3', attname from pg_attribute, pg_constraint, pg_class where pg_constraint.conrelid = pg_class.oid and pg_class.oid = pg_attribute.attrelid and pg_constraint.contype = 'p' and pg_constraint.conkey[1] = pg_attribute.attnum and pg_class.relname = 'wmstest' and pg_table_is_visible(pg_class.oid) and pg_constraint.conkey[2] is null;
-select 'MapServer4', "id",substr(encode(AsBinary(force_collection(force_2d("pt")),'NDR'),'hex'),0,16) as geom,"id" from wmstest where pt && GeomFromText('POLYGON((-98.5 32,-98.5 39,-91.5 39,-91.5 32,-98.5 32))',find_srid('','wmstest','pt'));
-
--- Drop the data table
-SELECT 'Removing the data table...';
-DROP TABLE wmstest;
-DELETE FROM geometry_columns WHERE f_table_name = 'wmstest' AND f_table_schema = 'public';
-SELECT 'Done.';
-
--- test #1869 ST_AsBinary is not unique --
-SELECT 1869 As ticket_id, ST_AsText(ST_AsBinary('POINT(1 2)'));
-
-DELETE FROM spatial_ref_sys WHERE SRID = '4326';
-
-\i 00-regress-install/share/contrib/postgis/uninstall_legacy.sql
+\cd :regdir
+\i legacy.sql
diff --git a/regress/sfcgal/regress.sql b/regress/sfcgal/regress.sql
index 164d828..cdadfdb 100644
--- a/regress/sfcgal/regress.sql
+++ b/regress/sfcgal/regress.sql
@@ -187,7 +187,7 @@ select '109',ST_NPoints('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING( 1 1 , 2 2, 3
 
 select '110', ST_NRings('MULTIPOLYGON( ((0 0, 10 0, 10 10, 0 10, 0 0)),( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7 , 5 7, 5 5) ) ,( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(1 1,2 1, 2 2, 1 2, 1 1) ) )'::GEOMETRY) as value;
 
-select '111', ST_Mem_Size(PostGIS_DropBBOX('MULTIPOLYGON( ((0 0, 10 0, 10 10, 0 10, 0 0)),( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7 , 5 7, 5 5) ) ,( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(1 1,2 1, 2 2, 1 2, 1 1) ) )'::GEOMETRY)) as value;
+select '111', ST_MemSize(PostGIS_DropBBOX('MULTIPOLYGON( ((0 0, 10 0, 10 10, 0 10, 0 0)),( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7 , 5 7, 5 5) ) ,( (0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(1 1,2 1, 2 2, 1 2, 1 1) ) )'::GEOMETRY)) as value;
 
 select '112',ST_NumGeometries('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING( 1 1 , 2 2, 3 3),MULTIPOINT(1 1, 2 2))'::GEOMETRY) as value;
 
@@ -215,7 +215,7 @@ select '126',a ~= b from TEST;
 select '127',a @ b from TEST;
 select '128',a ~ b from TEST; 
 
-select '129', ST_Mem_Size(PostGIS_DropBBOX(a)), ST_Mem_Size(PostGIS_DropBBOX(b)) from TEST;
+select '129', ST_MemSize(PostGIS_DropBBOX(a)), ST_MemSize(PostGIS_DropBBOX(b)) from TEST;
 
 select '131', ST_X('POINT(1 2)');
 select '132', ST_Y('POINT(1 2)');
diff --git a/regress/sfcgal/regress_ogc.sql b/regress/sfcgal/regress_ogc.sql
index 8203f66..5226bdc 100644
--- a/regress/sfcgal/regress_ogc.sql
+++ b/regress/sfcgal/regress_ogc.sql
@@ -5,149 +5,5 @@
 
 SET postgis.backend = 'sfcgal';
 
--- Repeat all tests with new function names.
-SELECT 'buffer', ST_astext(ST_SnapToGrid(ST_buffer('POINT(0 0)', 1, 2), 1.0e-6));
-
-SELECT 'geomunion', ST_astext(ST_union('POINT(0 0)', 'POINT(1 1)'));
-SELECT 'convexhull', ST_asewkt(ST_convexhull('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))'));
-SELECT 'relate', ST_relate('POINT(0 0)', 'LINESTRING(0 0, 1 1)');
-SELECT 'relate', ST_relate('POINT(0 0)', 'LINESTRING(0 0, 1 1)', 'F0FFFF*02');
-SELECT 'relate', ST_relate('POINT(0 0)', 'LINESTRING(0 0, 1 1)', 'F0FFF0*02');
-SELECT 'disjoint', ST_disjoint('POINT(0 0)', 'LINESTRING(0 0, 1 1)');
-SELECT 'touches', ST_touches('LINESTRING(0 10, 0 -10)', 'LINESTRING(0 0, 1 1)');
-SELECT 'intersects', ST_intersects('LINESTRING(0 10, 0 -10)', 'LINESTRING(0 0, 1 1)');
-SELECT 'crosses', ST_crosses('LINESTRING(0 10, 0 -10)', 'LINESTRING(0 0, 1 1)');
-SELECT 'crosses', ST_crosses('LINESTRING(0 10, 0 -10)', 'LINESTRING(-4 0, 1 1)');
--- PIP - point within polygon
-SELECT 'within100', ST_within('POINT(5 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on vertex of polygon
-SELECT 'within101', ST_within('POINT(0 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point outside polygon
-SELECT 'within102', ST_within('POINT(-1 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on edge of polygon
-SELECT 'within103', ST_within('POINT(0 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point in line with polygon edge
-SELECT 'within104', ST_within('POINT(0 12)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point vertically aligned with polygon vertex 
-SELECT 'within105', ST_within(ST_GeomFromText('POINT(521513 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - repeated vertex 
-SELECT 'within106', ST_within(ST_GeomFromText('POINT(521513 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521482 5377811, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - point within polygon
-SELECT 'disjoint100', ST_disjoint('POINT(5 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on polygon vertex
-SELECT 'disjoint101', ST_disjoint('POINT(0 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point outside polygon
-SELECT 'disjoint102', ST_disjoint('POINT(-1 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on polygon edge
-SELECT 'disjoint103', ST_disjoint('POINT(0 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point in line with polygon edge
-SELECT 'disjoint104', ST_disjoint('POINT(0 12)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point vertically aligned with polygon vertex 
-SELECT 'disjoint105', ST_disjoint(ST_GeomFromText('POINT(521513 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - repeated vertex 
-SELECT 'disjoint106', ST_disjoint(ST_GeomFromText('POINT(521543 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521482 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - point within polygon
-SELECT 'disjoint150', ST_disjoint('POINT(5 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on polygon vertex
-SELECT 'disjoint151', ST_disjoint('POINT(0 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point outside polygon
-SELECT 'disjoint152', ST_disjoint('POINT(-1 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on polygon edge
-SELECT 'disjoint153', ST_disjoint('POINT(0 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point in line with polygon edge
-SELECT 'disjoint154', ST_disjoint('POINT(0 12)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point vertically aligned with polygon vertex 
-SELECT 'disjoint155', ST_disjoint(ST_GeomFromText('POINT(521513 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - repeated vertex
-SELECT 'disjoint156', ST_disjoint(ST_GeomFromText('POINT(521543 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521482 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - point within polygon
-SELECT 'intersects100', ST_intersects('POINT(5 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on polygon vertex
-SELECT 'intersects101', ST_intersects('POINT(0 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point outside polygon
-SELECT 'intersects102', ST_intersects('POINT(-1 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on polygon edge
-SELECT 'intersects103', ST_intersects('POINT(0 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point in line with polygon edge
-SELECT 'intersects104', ST_intersects('POINT(0 12)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point vertically aligned with polygon vertex 
-SELECT 'intersects105', ST_intersects(ST_GeomFromText('POINT(521513 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - repeated vertex
-SELECT 'intersects106', ST_intersects(ST_GeomFromText('POINT(521543 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521482 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - point within polygon
-SELECT 'intersects150', ST_intersects('POINT(5 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on polygon vertex
-SELECT 'intersects151', ST_intersects('POINT(0 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point outside polygon
-SELECT 'intersects152', ST_intersects('POINT(-1 0)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point on polygon edge
-SELECT 'intersects153', ST_intersects('POINT(0 5)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point in line with polygon edge
-SELECT 'intersects154', ST_intersects('POINT(0 12)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
--- PIP - point vertically aligned with polygon vertex 
-SELECT 'intersects155', ST_intersects(ST_GeomFromText('POINT(521513 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - repeated vertex
-SELECT 'intersects156', ST_intersects(ST_GeomFromText('POINT(521543 5377804)', 32631), ST_GeomFromText('POLYGON((521526 5377783, 521482 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631));
--- PIP - point within polygon
-SELECT 'contains100', ST_contains('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))', 'POINT(5 5)');
--- PIP - point on vertex of polygon
-SELECT 'contains101', ST_contains('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))', 'POINT(0 0)');
--- PIP - point outside polygon
-SELECT 'contains102', ST_contains('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))', 'POINT(-1 0)');
--- PIP - point on edge of polygon
-SELECT 'contains103', ST_contains('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))', 'POINT(0 5)');
--- PIP - point in line with polygon edge
-SELECT 'contains104', ST_contains('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))', 'POINT(0 12)');
--- PIP - point vertically aligned with polygon vertex 
-SELECT 'contains105', ST_contains(ST_GeomFromText('POLYGON((521526 5377783, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631), ST_GeomFromText('POINT(521513 5377804)', 32631));
--- PIP - repeated vertex 
-SELECT 'contains106', ST_contains(ST_GeomFromText('POLYGON((521526 5377783, 521482 5377811, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631), ST_GeomFromText('POINT(521513 5377804)', 32631));
--- moved here from regress.sql
-select 'within119', ST_within('LINESTRING(-1 -1, -1 101, 101 101, 101 -1)'::GEOMETRY,'BOX3D(0 0, 100 100)'::BOX3D);
-select 'within120', ST_within('LINESTRING(-1 -1, -1 100, 101 100, 101 -1)'::GEOMETRY,'BOX3D(0 0, 100 100)'::BOX3D);
-SELECT 'contains110', ST_Contains('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))', 'LINESTRING(1 10, 9 10, 9 8)');
-SELECT 'contains111', ST_Contains('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))', 'LINESTRING(1 10, 10 10, 10 8)');
-SELECT 'within130', ST_Within('LINESTRING(1 10, 9 10, 9 8)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
-SELECT 'within131', ST_Within('LINESTRING(1 10, 10 10, 10 8)', 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
-SELECT 'overlaps', ST_overlaps('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))','POINT(5 5)');
-SELECT 'isvalid', ST_isvalid('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))');
-SELECT 'isvalid', ST_isvalid('POLYGON((0 0, 0 10, 10 10, -5 10, 10 0, 0 0))');
-SELECT 'isvalid', ST_isvalid('GEOMETRYCOLLECTION EMPTY');
-SELECT 'intersection', ST_astext(ST_intersection('LINESTRING(0 10, 0 -10)', 'LINESTRING(0 0, 1 1)'));
-SELECT 'difference', ST_astext(ST_difference('LINESTRING(0 10, 0 -10)'::GEOMETRY, 'LINESTRING(0 2, 0 -2)'::GEOMETRY));
-SELECT 'boundary', ST_astext(ST_boundary('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))'));
-SELECT 'symdifference', ST_astext(ST_symdifference('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))', 'LINESTRING(0 0, 20 20)'));
-SELECT 'issimple', ST_issimple('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))');
-SELECT 'equals', ST_equals('LINESTRING(0 0, 1 1)', 'LINESTRING(1 1, 0 0)');
-WITH inp AS ( SELECT
- 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))'
-::geometry as g )
-SELECT 'pointonsurface', ST_Contains(g, ST_pointonsurface(g)) from inp;
-SELECT 'centroid', ST_astext(ST_centroid('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))'));
-SELECT 'exteriorring', ST_astext(ST_exteriorring(ST_PolygonFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))')));
-SELECT 'polygonize_garray', ST_astext(ST_polygonize('{0102000000020000000000000000000000000000000000000000000000000024400000000000000000:0102000000020000000000000000002440000000000000000000000000000000000000000000000000:0102000000020000000000000000002440000000000000244000000000000000000000000000000000:0102000000020000000000000000002440000000000000244000000000000024400000000000000000:0102000000020000000000000000002440000000000000244000000000000000000000000000002440:01020000000200000000000 [...]
-
-SELECT 'polygonize_garray', ST_astext(ST_geometryn(ST_polygonize('{LINESTRING(0 0, 10 0):LINESTRING(10 0, 10 10):LINESTRING(10 10, 0 10):LINESTRING(0 10, 0 0)}'::geometry[]), 1));
-
-select 'linemerge149', ST_asewkt(ST_linemerge('GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1), LINESTRING(4 4, 1 1), LINESTRING(-5 -5, 0 0))'::geometry));
-
---- postgis-devel/2005-December/001784.html
-select 'intersects', ST_intersects(
-   ST_polygonfromtext('POLYGON((0.0 0.0,1.0 0.0,1.0 1.0,1.0 0.0,0.0 0.0))'),
-      ST_polygonfromtext('POLYGON((0.0 2.0,1.0 2.0,1.0 3.0,0.0 3.0,0.0 2.0))')
-      );
-
-select 'ST_GeometryN', ST_asewkt(ST_GeometryN('LINESTRING(0 0, 1 1)'::geometry, 1));
-select 'ST_NumGeometries', ST_NumGeometries('LINESTRING(0 0, 1 1)'::geometry);
-select 'ST_Union1', ST_AsText(ST_Union(ARRAY['POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'::geometry, 'POLYGON((0.5 0.5, 1.5 0.5, 1.5 1.5, 0.5 1.5, 0.5 0.5))'::geometry]));
-select 'ST_StartPoint1',ST_AsText(ST_StartPoint('LINESTRING(0 0, 1 1, 2 2)'));
-select 'ST_EndPoint1', ST_AsText(ST_Endpoint('LINESTRING(0 0, 1 1, 2 2)'));
-select 'ST_PointN1', ST_AsText(ST_PointN('LINESTRING(0 0, 1 1, 2 2)',2));
-select 'ST_PointN2', ST_AsText(ST_PointN('LINESTRING(0 0, 1 1, 2 2)',3));
-select 'ST_PointN3',  ST_AsText(ST_PointN('LINESTRING(0 0, 1 1, 2 2)',4));
-select 'ST_PointN4', ST_AsText(ST_PointN('LINESTRING(0 0, 1 1, 2 2)',0));
-select 'ST_PointN5', ST_AsText(ST_PointN('LINESTRING(0 0, 1 1, 2 2)',1));
-select 'ST_PointN6', ST_AsText(ST_PointN('POLYGON((0 0, 1 1, 0 1, 0 0))',1));
-
--- issues with EMPTY --
-select 'ST_Buffer(empty)', ST_AsText(ST_Buffer('POLYGON EMPTY', 0.5));
+\cd :regdir
+\i regress_ogc.sql
diff --git a/regress/sfcgal/regress_ogc_expected b/regress/sfcgal/regress_ogc_expected
index cd05535..01cf20c 100644
--- a/regress/sfcgal/regress_ogc_expected
+++ b/regress/sfcgal/regress_ogc_expected
@@ -63,7 +63,7 @@ NOTICE:  Self-intersection
 isvalid|f
 isvalid|t
 intersection|POINT(-0 -0)
-difference|MULTILINESTRING((0 10,0 2),(0 -2,0 -10))
+difference|MULTILINESTRING((0 -2,0 -10),(0 10,0 2))
 boundary|MULTILINESTRING((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2))
 symdifference|GEOMETRYCOLLECTION(LINESTRING(2 2,4 4),LINESTRING(10 10,20 20),POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,2 4,2 2,4 2,4 4)))
 issimple|t
diff --git a/regress/sfcgal/tickets.sql b/regress/sfcgal/tickets.sql
index b8191de..4f1a036 100644
--- a/regress/sfcgal/tickets.sql
+++ b/regress/sfcgal/tickets.sql
@@ -54,7 +54,7 @@ SELECT '#44', ST_Relate(g1, g2, 'T12101212'), ST_Relate(g1, g2, 't12101212') FRO
 ) AS v(g1, g2);
 
 -- #58 --
-SELECT '#58', round(ST_xmin(g)),round(ST_ymin(g)),round(ST_xmax(g)),round(ST_ymax(g)) FROM (SELECT ST_Envelope('CIRCULARSTRING(220268.439465645 150415.359530563,220227.333322076 150505.561285879,220227.353105332 150406.434743975)') as g)  AS foo;
+SELECT '#58', round(ST_xmin(g)),round(ST_ymin(g)),round(ST_xmax(g)),round(ST_ymax(g)) FROM (SELECT ST_Envelope('CIRCULARSTRING(220268.439465645 150415.359530563,220227.333322076 150505.561285879,220227.353105332 150406.434743975)'::geometry) as g)  AS foo;
 
 -- #65 --
 SELECT '#65', ST_AsGML(ST_GeometryFromText('CURVEPOLYGON(CIRCULARSTRING(4 2,3 -1.0,1 -1,-1.0 4,4 2))'));
@@ -101,7 +101,7 @@ SELECT '#124a', ST_AsText(ST_GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,
 SELECT '#124b', ST_AsText(ST_GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,30 6),CIRCULARSTRING(30 5,34 56,67 89))'));
 
 -- #145 --
-SELECT '#145a', ST_Buffer(ST_GeomFromText('LINESTRING(-116.93414544665981 34.16033385105459,-116.87777514700957 34.10831080544884,-116.86972224705954 34.086748622072776,-116.9327074288116 34.08458099517253,-117.00216369088065 34.130329331330216,-117.00216369088065 34.130329331330216)', 4326), 0);
+SELECT '#145a', ST_AsText(ST_Buffer(ST_GeomFromText('LINESTRING(-116.93414544665981 34.16033385105459,-116.87777514700957 34.10831080544884,-116.86972224705954 34.086748622072776,-116.9327074288116 34.08458099517253,-117.00216369088065 34.130329331330216,-117.00216369088065 34.130329331330216)', 4326), 0));
 SELECT '#145b', ST_Area(ST_Buffer(ST_GeomFromText('LINESTRING(-116.93414544665981 34.16033385105459,-116.87777514700957 34.10831080544884,-116.86972224705954 34.086748622072776,-116.9327074288116 34.08458099517253,-117.00216369088065 34.130329331330216,-117.00216369088065 34.130329331330216)', 4326), 0));
 
 -- #146 --
@@ -165,7 +165,7 @@ SELECT '#241', sum(ST_LineCrossingDirection(the_geom, ST_GeomFromText('LINESTRIN
 DROP TABLE c;
 
 -- #254 --
-SELECT '#254', ST_Segmentize(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'), 0.5);
+SELECT '#254', ST_AsText(ST_Segmentize(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY'), 0.5));
 
 -- #259 --
 SELECT '#259', ST_Distance(ST_GeographyFromText('SRID=4326;POLYGON EMPTY'), ST_GeographyFromText('SRID=4326;POINT(1 2)'));
@@ -338,7 +338,7 @@ FROM vs, generate_series(-10,50,10) As i CROSS JOIN generate_series(40,70, 20) A
 SELECT '#677',round(ST_Distance_Spheroid(ST_GeomFromEWKT('MULTIPOLYGON(((-10 40,-10 55,-10 70,5 40,-10 40)))'), ST_GeomFromEWKT('MULTIPOINT(20 40,20 55,20 70,35 40,35 55,35 70,50 40,50 55,50 70)'), 'SPHEROID["GRS_1980",6378137,298.257222101]')) As result;
 
 -- #680 --
-SELECT '#680', encode(ST_AsBinary(geography(foo1.the_geom)),'hex') As result FROM ((SELECT ST_SetSRID(ST_MakePointM(i,j,m),4326) As the_geom FROM generate_series(-10,50,10) As i CROSS JOIN generate_series(50,70, 20) AS j CROSS JOIN generate_series(1,2) As m ORDER BY i, j, i*j*m)) As foo1 LIMIT 1;
+SELECT '#680', encode(ST_AsBinary(geography(foo1.the_geom), 'NDR'),'hex') As result FROM ((SELECT ST_SetSRID(ST_MakePointM(i,j,m),4326) As the_geom FROM generate_series(-10,50,10) As i CROSS JOIN generate_series(50,70, 20) AS j CROSS JOIN generate_series(1,2) As m ORDER BY i, j, i*j*m)) As foo1 LIMIT 1;
 
 -- #681 --
 SELECT '#681a', ST_AsGML(ST_GeomFromText('POINT EMPTY', 4326));
@@ -351,20 +351,20 @@ SELECT '#681g', ST_AsGML(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY', 4326));
 
 
 -- #682 --
-SELECT '#682', ST_Buffer(ST_GeomFromText('POLYGON EMPTY',4326) , 0.5);
+SELECT '#682', ST_AsText(ST_Buffer(ST_GeomFromText('POLYGON EMPTY',4326) , 0.5));
 
 -- #683 --
-SELECT '#683', ST_BuildArea(ST_GeomFromText('POINT EMPTY',4326));
+SELECT '#683', ST_AsText(ST_BuildArea(ST_GeomFromText('POINT EMPTY',4326)));
 
 -- #684,#2109 --
 SELECT '#684,#2109', ST_AsEWKT(ST_Centroid(ST_GeomFromText('POLYGON EMPTY',4326)));
 SELECT '#2109', ST_AsEWKT(ST_Centroid(ST_GeomFromText('MULTILINESTRING ZM EMPTY',3395)));
 
 -- #685 --
-SELECT '#685', ST_ConvexHull(ST_GeomFromText('POLYGON EMPTY',4326));
+SELECT '#685', ST_AsText(ST_ConvexHull(ST_GeomFromText('POLYGON EMPTY',4326)));
 
 -- #686 --
-SELECT '#686', ST_COLLECT(ST_GeomFromText('POLYGON EMPTY',4326),ST_GeomFromText('TRIANGLE EMPTY',4326));
+SELECT '#686', St_AsText(ST_COLLECT(ST_GeomFromText('POLYGON EMPTY',4326),ST_GeomFromText('TRIANGLE EMPTY',4326)));
 
 -- #687 --
 SELECT '#687', ST_DFullyWithin(ST_GeomFromText('LINESTRING(-10 50,50 -10)',4326), ST_GeomFromText('POLYGON EMPTY',4326),5);
@@ -377,8 +377,8 @@ SELECT '#690';
 SELECT ST_MakeLine(ST_GeomFromText('POINT(-11.1111111 40)'), ST_GeomFromText('LINESTRING(-11.1111111 70,70 -11.1111111)')) As result;
 
 -- #693 --
-SELECT '#693a', ST_GeomFromEWKT('SRID=4326;POLYGONM((-71.1319 42.2503 1,-71.132 42.2502 3,-71.1323 42.2504 -2,-71.1322 42.2505 1,-71.1319 42.2503 0))');
-SELECT '#693b', ST_GeomFromEWKT('SRID=4326;POLYGONM((-71.1319 42.2512 0,-71.1318 42.2511 20,-71.1317 42.2511 -20,-71.1317 42.251 5,-71.1317 42.2509 4,-71.132 42.2511 6,-71.1319 42.2512 30))');
+SELECT '#693a', ST_AsText(ST_GeomFromEWKT('SRID=4326;POLYGONM((-71.1319 42.2503 1,-71.132 42.2502 3,-71.1323 42.2504 -2,-71.1322 42.2505 1,-71.1319 42.2503 0))'));
+SELECT '#693b', ST_AsText(ST_GeomFromEWKT('SRID=4326;POLYGONM((-71.1319 42.2512 0,-71.1318 42.2511 20,-71.1317 42.2511 -20,-71.1317 42.251 5,-71.1317 42.2509 4,-71.132 42.2511 6,-71.1319 42.2512 30))'));
 
 -- #694 --
 SELECT '#694';
@@ -389,14 +389,14 @@ SELECT '#695';
 SELECT ST_RemovePoint('POINT(-11.1111111 40)'::geometry, 1);
 
 -- #696 --
-SELECT '#696',ST_Segmentize(ST_GeomFromEWKT('PolyhedralSurface( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'), 0.5);
+SELECT '#696',St_AsText(ST_Segmentize(ST_GeomFromEWKT('PolyhedralSurface( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'), 0.5));
 
 -- #720 --
 SELECT '#720', ST_AsText(ST_SnapTogrid(ST_Transform(ST_GeomFromText('MULTIPOINT(-10 40,-10 55,-10 70,5 40,5 55,5 70,20 40,20 55,20 70,35 40,35 55,35 70,50 40,50 55,50 70)',4326), 3395), 0.01));
 
 -- #723 --
 SELECT '#723',
- ST_SnapToGrid( ST_Intersection(a.geog, b.geog)::geometry, 0.00001)
+ ST_AsText(ST_SnapToGrid( ST_Intersection(a.geog, b.geog)::geometry, 0.00001))
 FROM (VALUES (ST_GeogFromText('SRID=4326;POINT(-11.1111111 40)') ), (ST_GeogFromText('SRID=4326;POINT(-11.1111111 55)') ) ) As  a(geog) CROSS JOIN ( VALUES (ST_GeogFromText('SRID=4326;POINT(-11.1111111 40)') ), (ST_GeogFromText('SRID=4326;POINT(-11.1111111 55)') )) As b(geog);
 
 -- #729 --
@@ -460,7 +460,7 @@ SELECT '#1273.1', st_equals(p.g, postgis_dropbbox(p.g)) from p;
 
 -- #877, #818
 create table t(g geometry);
-select '#877.1', ST_Estimated_Extent('t','g');
+select '#877.1', ST_EstimatedExtent('t','g');
 analyze t;
 select '#877.2', ST_EstimatedExtent('public', 't','g');
 select '#877.2.deprecated', ST_Estimated_Extent('public', 't','g');
@@ -566,7 +566,7 @@ SELECT '#1454', st_orderingequals(g,g) from inp;
 SELECT '#1414', st_astext(st_Force3DZ('CURVEPOLYGON EMPTY'));
 
 -- #1478
-SELECT '#1478', 'SRID=1;POINT EMPTY'::geometry::text::geometry;
+SELECT '#1478', ST_AsText('SRID=1;POINT EMPTY'::geometry::text::geometry);
 
 -- #745 
 SELECT '#745', ST_AsEWKT(ST_Split('POLYGON((-72 42 1,-70 43 1,-71 41 1,-72 42 1))',
@@ -610,7 +610,7 @@ FROM inp;
 -- #1150
 insert into spatial_ref_sys (srid, proj4text) values (500001,NULL);
 insert into spatial_ref_sys (srid, proj4text) values (500002, '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs');
-select '#1150', st_astext(st_transform('SRID=500002;POINT(0 0)',500001));
+select '#1150', st_astext(st_transform('SRID=500002;POINT(0 0)'::geometry,500001));
 
 -- #1038
 select '#1038', ST_AsSVG('POLYGON EMPTY'::geometry);
@@ -686,7 +686,7 @@ SELECT '#1734.1', count(*) FROM eg;
 DROP table eg;
 
 -- #1755 --
-select '#1755', st_geographyFromText('SRID=4326;Point(85 35 0)');
+select '#1755', ST_AsText(st_geographyFromText('SRID=4326;Point(85 35 0)'));
 
 -- #1776 --
 with inp as ( SELECT 
diff --git a/regress/sfcgal/tickets_expected b/regress/sfcgal/tickets_expected
index 41a6807..22c7003 100644
--- a/regress/sfcgal/tickets_expected
+++ b/regress/sfcgal/tickets_expected
@@ -1,6 +1,6 @@
 #2|POLYGON((1 1,1 2,2 2,3 2,3 1,2 1,1 1))
 #11|0
-NOTICE:  ST_Locate_Between_Measures and ST_Locate_Along_Measure are deprecated. Use ST_LocateAlong and ST_LocateBetween.
+WARNING:  ST_Locate_Between_Measures and ST_Locate_Along_Measure were deprecated in 2.2.0. Please use ST_LocateAlong and ST_LocateBetween
 #21|SRID=31293;POINTM(6220.13 5337367.145 4566)
 t
 ERROR:  AddGeometryColumn() - invalid SRID
@@ -17,13 +17,13 @@ ERROR:  lwgeom_longitude_shift: unsupported geom type: CircularString
 #83|MULTICURVE(CIRCULARSTRING(220268 150415,220227 150505,220227 150406))
 ERROR:  LWGEOM2SFCGAL: Unknown geometry type !
 #112|GEOMETRYCOLLECTION(POINT(-10 50))
-NOTICE:  ST_Locate_Between_Measures and ST_Locate_Along_Measure are deprecated. Use ST_LocateAlong and ST_LocateBetween.
+WARNING:  ST_Locate_Between_Measures and ST_Locate_Along_Measure were deprecated in 2.2.0. Please use ST_LocateAlong and ST_LocateBetween
 ERROR:  Geometry argument does not have an 'M' ordinate
 #116|POLYGON EMPTY
 #122|CIRCULARSTRING(220268 150415,220227 150505,220227 150406)
 #124a|COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,30 5),CIRCULARSTRING(30 5,34 56,67 89))
 ERROR:  incontinuous compound curve
-#145a|0103000020E610000000000000
+#145a|POLYGON EMPTY
 #145b|0
 #146|0|t|GEOMETRYCOLLECTION(LINESTRING(0 0,-1 -1),MULTIPOINT(1 2,2 3))
 ERROR:  Invalid hex string, length (267) has to be a multiple of two!
@@ -47,7 +47,7 @@ NOTICE:  No points or linestrings in input array
 #213|17
 #234|COMPOUNDCURVE((0 0,1 1))
 #241|0
-#254|010700000000000000
+#254|GEOMETRYCOLLECTION EMPTY
 #259|
 #260|1667701
 #261|0
@@ -105,28 +105,28 @@ NOTICE:  IllegalArgumentException: Invalid number of points in LinearRing found
 #681e|
 #681f|
 #681g|
-#682|0103000020E610000000000000
-#683|0103000020E610000000000000
+#682|POLYGON EMPTY
+#683|POLYGON EMPTY
 #684,#2109|SRID=4326;POINT EMPTY
 #2109|SRID=3395;POINT EMPTY
-#685|0103000020E610000000000000
-#686|0107000020E610000000000000
+#685|POLYGON EMPTY
+#686|GEOMETRYCOLLECTION(POLYGON EMPTY,TRIANGLE EMPTY)
 #687|f
 #689|f
 #690
 010200000003000000F771D98DE33826C00000000000004440F771D98DE33826C000000000008051400000000000805140F771D98DE33826C0
-#693a|0103000060E61000000100000005000000EA95B20C71C851C02B1895D409204540000000000000F03F9CC420B072C851C0C7BAB88D062045400000000000000840B1506B9A77C851C08E75711B0D20454000000000000000C0FF21FDF675C851C0F2D24D6210204540000000000000F03FEA95B20C71C851C02B1895D4092045400000000000000000
-#693b|0103000060E61000000100000007000000EA95B20C71C851C0AA605452272045400000000000000000386744696FC851C04703780B2420454000000000000034408638D6C56DC851C04703780B2420454000000000000034C08638D6C56DC851C0E3A59BC42020454000000000000014408638D6C56DC851C08048BF7D1D20454000000000000010409CC420B072C851C04703780B242045400000000000001840EA95B20C71C851C0AA605452272045400000000000003E40
+#693a|POLYGON M ((-71.1319 42.2503 1,-71.132 42.2502 3,-71.1323 42.2504 -2,-71.1322 42.2505 1,-71.1319 42.2503 0))
+#693b|POLYGON M ((-71.1319 42.2512 0,-71.1318 42.2511 20,-71.1317 42.2511 -20,-71.1317 42.251 5,-71.1317 42.2509 4,-71.132 42.2511 6,-71.1319 42.2512 30))
 #694
 ERROR:  Shell is not a line
 #695
 ERROR:  First argument must be a LINESTRING
-#696|010F000080060000000103000080010000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F000000000000F03F0000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000010300008001000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000F03F000000000000F03F0000000000000000000000000000F03F00000000000000000 [...]
+#696|POLYHEDRALSURFACE Z (((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)))
 #720|MULTIPOINT(-1113194.91 4838471.4,-1113194.91 7326837.72,-1113194.91 11028513.63,556597.45 4838471.4,556597.45 7326837.72,556597.45 11028513.63,2226389.82 4838471.4,2226389.82 7326837.72,2226389.82 11028513.63,3896182.18 4838471.4,3896182.18 7326837.72,3896182.18 11028513.63,5565974.54 4838471.4,5565974.54 7326837.72,5565974.54 11028513.63)
-#723|0101000020E61000006284F068E33826C00000000000004440
-#723|0107000020E610000000000000
-#723|0107000020E610000000000000
-#723|0101000020E61000006284F068E33826C00100000000804B40
+#723|POINT(-11.11111 40)
+#723|GEOMETRYCOLLECTION EMPTY
+#723|GEOMETRYCOLLECTION EMPTY
+#723|POINT(-11.11111 55)
 #804|<gml:Point srsName="urn:ogc:def:crs:EPSG::4326"><gml:pos srsDimension="2">0 0</gml:pos></gml:Point>
 #845|t
 #834|GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(10 0,10 10))
@@ -145,6 +145,7 @@ ERROR:  First argument must be a LINESTRING
 #1273.1|t
 ERROR:  stats for "t.g" do not exist
 ERROR:  stats for "t.g" do not exist
+WARNING:  ST_Estimated_Extent signature was deprecated in 2.1.0. Please use ST_EstimatedExtent
 ERROR:  stats for "t.g" do not exist
 ERROR:  stats for "t.g" do not exist
 #877.4|-10.15000|20.15000|-50.40000|30.40000
@@ -183,7 +184,7 @@ ERROR:  MultiSurface cannot contain MultiPoint element at character 8
 #1453.2|f
 #1454|t
 #1414|CURVEPOLYGON Z EMPTY
-#1478|01040000200100000000000000
+#1478|POINT EMPTY
 #745|GEOMETRYCOLLECTION(POLYGON((-72 42 1,-70 43 1,-71 41 1,-72 42 1)))
 #1450|POINT|POLYGON
 #1482|4326
@@ -217,7 +218,7 @@ NOTICE:  SRID value -1 converted to the officially unknown SRID value 0
 #1697.2|0
 #1697.3|1024
 #1734.1|1026
-#1755|01010000A0E6100000000000000040554000000000008041400000000000000000
+#1755|POINT Z (85 35 0)
 #1776|POLYGON((0 0,10 0,10 10,0 0))|POLYGON((0 0,10 0,10 10,0 0))
 #1780|t
 #1791|4.7
diff --git a/regress/simplifyvw.sql b/regress/simplifyvw.sql
new file mode 100644
index 0000000..68e16c9
--- /dev/null
+++ b/regress/simplifyvw.sql
@@ -0,0 +1,14 @@
+-- Repeat all tests with the new function names.
+SELECT '1', ST_astext(ST_Simplifyvw('LINESTRING(0 0, 0 10, 0 51, 50 20, 30 20, 7 32)', 2));
+SELECT '2', ST_astext(ST_Simplifyvw('LINESTRING(0 0 3, 0 10 6, 0 51 1, 50 20 6, 30 20 9, 7 32 10)', 100));
+SELECT '3', ST_astext(ST_Simplifyvw('LINESTRINGM(0 0 3, 0 10 6, 0 51 1, 50 20 6, 30 20 9, 7 32 10)', 2));
+SELECT '4', ST_astext(ST_Simplifyvw('LINESTRING(0 0 3 2, 0 10 6 1, 0 51 1 6, 50 20 6 7, 30 20 9 9, 7 32 10 5)', 100));
+SELECT '5', ST_astext(ST_Simplifyvw('MULTIPOINT(0 0 3 2, 0 10 6 1, 0 51 1 6, 50 20 6 7, 30 20 9 9, 7 32 10 5)', 20));
+SELECT '6', ST_astext(ST_Simplifyvw('MULTILINESTRING((0 0 3 2, 0 10 6 1, 0 51 1 6, 50 20 6 7, 30 20 9 9, 7 32 10 5), (0 0 4 3, 1 1 2 3, 20 20 5 30))', 400));
+SELECT '7', ST_astext(ST_Simplifyvw('POLYGON((0 0 3 2, 0 10 6 1, 0 51 1 6, 50 20 6 7, 30 20 9 9, 7 32 10 5, 0 0 3 2), (1 1 4 3, 1 3 2 3, 18 18 5 30, 1 1 4 3))', 200));
+SELECT '8', ST_astext(ST_Simplifyvw('POLYGON((0 0 3 2, 0 10 6 1, 0 51 1 6, 50 20 6 7, 30 20 9 9, 7 32 10 5, 0 0 3 2), (1 1 4 3, 1 3 2 3, 18 18 5 30, 1 1 4 3))', 100));
+
+SELECT '9', ST_astext(ST_Simplifyvw('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 5 6, 6 6, 8 5, 5 5))', 20));
+SELECT '10', ST_astext(ST_Simplifyvw('LINESTRING(0 0, 0 10)', 20));
+SELECT '11', ST_astext(ST_Simplifyvw('MULTIPOLYGON(((100 100, 100 130, 130 130, 130 100, 100 100)), ((0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 5 6, 6 6, 8 5, 5 5)) )', 20));
+SELECT '12', ST_astext(ST_Simplifyvw('MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 5 6, 6 6, 8 5, 5 5)),((100 100, 100 130, 130 130, 130 100, 100 100)))', 200));
diff --git a/regress/simplifyvw_expected b/regress/simplifyvw_expected
new file mode 100644
index 0000000..a9ea8d6
--- /dev/null
+++ b/regress/simplifyvw_expected
@@ -0,0 +1,12 @@
+1|LINESTRING(0 0,0 51,50 20,30 20,7 32)
+2|LINESTRING Z (0 0 3,0 51 1,50 20 6,30 20 9,7 32 10)
+3|LINESTRING M (0 0 3,0 51 1,50 20 6,30 20 9,7 32 10)
+4|LINESTRING ZM (0 0 3 2,0 51 1 6,50 20 6 7,30 20 9 9,7 32 10 5)
+5|MULTIPOINT ZM (0 0 3 2,0 10 6 1,0 51 1 6,50 20 6 7,30 20 9 9,7 32 10 5)
+6|MULTILINESTRING ZM ((0 0 3 2,0 51 1 6,50 20 6 7,7 32 10 5),(0 0 4 3,20 20 5 30))
+7|POLYGON ZM ((0 0 3 2,0 51 1 6,50 20 6 7,7 32 10 5,0 0 3 2))
+8|POLYGON ZM ((0 0 3 2,0 51 1 6,50 20 6 7,30 20 9 9,7 32 10 5,0 0 3 2))
+9|POLYGON((0 0,10 0,10 10,0 10,0 0))
+10|LINESTRING(0 0,0 10)
+11|MULTIPOLYGON(((100 100,100 130,130 130,130 100,100 100)),((0 0,10 0,10 10,0 10,0 0)))
+12|MULTIPOLYGON(((0 0,10 10,0 10,0 0)),((100 100,100 130,130 130,130 100,100 100)))
diff --git a/regress/size.sql b/regress/size.sql
index 289add2..a065885 100644
--- a/regress/size.sql
+++ b/regress/size.sql
@@ -9,5 +9,5 @@ WITH areal(g) AS  ( SELECT ST_Buffer('POINT(0 0)',1,1) ),
                     SELECT ST_Force3DZ(g) FROM alldim UNION ALL
                     SELECT ST_Force4D(g)  FROM alldim )
 SELECT 'bbox',ST_Dimension(g) d, ST_ZMFlag(g) f,
- ST_Mem_Size(postgis_addbbox(g))-ST_Mem_Size(postgis_dropbbox(g))
+ ST_MemSize(postgis_addbbox(g))-ST_MemSize(postgis_dropbbox(g))
 FROM alltyp ORDER BY f,d;
diff --git a/regress/split.sql b/regress/split.sql
index 6567bc3..cb110e3 100644
--- a/regress/split.sql
+++ b/regress/split.sql
@@ -78,4 +78,28 @@ select '82', st_equals(g, st_union(
     st_geometryn(st_split(g, st_pointn(g,p)), 1), 
     st_geometryn(st_split(g, st_pointn(g,p)), 2))) from inp;
 
+-- Split line by multiline
+select '83', st_asewkt(ST_Split(
+  'SRID=3;LINESTRING(1 -1,1 1)',
+  'SRID=3;MULTILINESTRING((10 0, 10 4),(-4 0, 4 0))'
+));
+
+-- Split line by polygon (boundary)
+select '84', st_asewkt(ST_Split(
+  'SRID=3;LINESTRING(1 -1,1 1)',
+  'SRID=3;POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-4 2,-4 0,4 0,4 2,-4 2))'
+));
+
+-- Split line by multipolygon (boundary)
+select '85', st_asewkt(ST_Split(
+  'SRID=3;LINESTRING(1 -2,1 1,4 1)',
+  'SRID=3;MULTIPOLYGON(((0 -1,0 -3,2 -3,2 -1,0 -1)),((3 0,3 2,5 2,5 0,3 0)))'
+));
+
+-- Split multiline by multipoint
+select '86', st_asewkt(ST_Split(
+  'SRID=3;MULTILINESTRING((0 0,10 0),(5 -5, 5 5),(0 20,10 20))',
+  'SRID=3;MULTIPOINT(2 6,5 0,5 20,2 20,8 20,8 0,5 -2,0 0, 5 -5, 10 20)'
+));
+
 -- TODO: split line by collapsed line 
diff --git a/regress/split_expected b/regress/split_expected
index 94234e6..64735cf 100644
--- a/regress/split_expected
+++ b/regress/split_expected
@@ -24,3 +24,7 @@ ERROR:  Splitter line has linear intersection with input
 80|GEOMETRYCOLLECTION(LINESTRING(0 1,0 1,0 1))
 81|GEOMETRYCOLLECTION(LINESTRING(0 1,0 1))
 82|t
+83|SRID=3;GEOMETRYCOLLECTION(LINESTRING(1 -1,1 0),LINESTRING(1 0,1 1))
+84|SRID=3;GEOMETRYCOLLECTION(LINESTRING(1 -1,1 0),LINESTRING(1 0,1 1))
+85|SRID=3;GEOMETRYCOLLECTION(LINESTRING(1 -2,1 -1),LINESTRING(1 -1,1 1,3 1),LINESTRING(3 1,4 1))
+86|SRID=3;GEOMETRYCOLLECTION(LINESTRING(8 0,10 0),LINESTRING(0 0,5 0),LINESTRING(5 0,8 0),LINESTRING(5 0,5 5),LINESTRING(5 -2,5 0),LINESTRING(5 -5,5 -2),LINESTRING(8 20,10 20),LINESTRING(2 20,5 20),LINESTRING(0 20,2 20),LINESTRING(5 20,8 20))
diff --git a/regress/sql-mm-circularstring.sql b/regress/sql-mm-circularstring.sql
index 67a8867..710179b 100644
--- a/regress/sql-mm-circularstring.sql
+++ b/regress/sql-mm-circularstring.sql
@@ -33,25 +33,25 @@ SELECT 'geometrytype04', geometrytype(ST_geomfromewkt('CIRCULARSTRING(
                 0.26794919243112270647255365849413 1, 
                 0.5857864376269049511981127579 1.4142135623730950488016887242097)'));
 
-SELECT 'isClosed01', ST_isClosed(ST_geomfromewkt('CIRCULARSTRING(
+SELECT 'isClosed01', ST_IsClosed(ST_geomfromewkt('CIRCULARSTRING(
                 0 -2,
                 -2 0,
                 0 2,
                 2 0,
                 0 -2)'));
-SELECT 'isSimple01', ST_isSimple(ST_geomfromewkt('CIRCULARSTRING(
+SELECT 'isSimple01', ST_IsSimple(ST_geomfromewkt('CIRCULARSTRING(
                 0 -2,
                 -2 0,
                 0 2,
                 2 0,
                 0 -2)'));
-SELECT 'isRing01', ST_isRing(ST_geomfromewkt('CIRCULARSTRING(
+SELECT 'isRing01', ST_IsRing(ST_geomfromewkt('CIRCULARSTRING(
                 0 -2,
                 -2 0,
                 0 2,
                 2 0,
                 0 -2)'));
-SELECT 'isClosed02', ST_isClosed(ST_geomfromewkt('CIRCULARSTRING(
+SELECT 'isClosed02', ST_IsClosed(ST_geomfromewkt('CIRCULARSTRING(
                 0 -2,
                 -2 0,
                 0 2,
@@ -61,7 +61,7 @@ SELECT 'isClosed02', ST_isClosed(ST_geomfromewkt('CIRCULARSTRING(
                 -2 -2,
                 -2 0,
                 0 -2)'));
-SELECT 'isSimple02', ST_isSimple(ST_geomfromewkt('CIRCULARSTRING(
+SELECT 'isSimple02', ST_IsSimple(ST_geomfromewkt('CIRCULARSTRING(
                 0 -2,
                 -2 0,
                 0 2,
@@ -71,7 +71,7 @@ SELECT 'isSimple02', ST_isSimple(ST_geomfromewkt('CIRCULARSTRING(
                 -2 -2,
                 -2 0,
                 0 -2)'));
-SELECT 'isRing02', ST_isRing(ST_geomfromewkt('CIRCULARSTRING(
+SELECT 'isRing02', ST_IsRing(ST_geomfromewkt('CIRCULARSTRING(
                 0 -2,
                 -2 0,
                 0 2,
@@ -163,94 +163,48 @@ SELECT 'astext02', ST_astext(the_geom_3dm) FROM public.circularstring;
 SELECT 'astext03', ST_astext(the_geom_3dz) FROM public.circularstring;        
 SELECT 'astext04', ST_astext(the_geom_4d) FROM public.circularstring;        
 
-SELECT 'asewkt01', ST_asewkt(the_geom_2d) FROM public.circularstring;        
-SELECT 'asewkt02', ST_asewkt(the_geom_3dm) FROM public.circularstring;        
-SELECT 'asewkt03', ST_asewkt(the_geom_3dz) FROM public.circularstring;        
-SELECT 'asewkt04', ST_asewkt(the_geom_4d) FROM public.circularstring;        
+SELECT 'asewkt01', ST_AsEWKT(the_geom_2d) FROM public.circularstring;        
+SELECT 'asewkt02', ST_AsEWKT(the_geom_3dm) FROM public.circularstring;        
+SELECT 'asewkt03', ST_AsEWKT(the_geom_3dz) FROM public.circularstring;        
+SELECT 'asewkt04', ST_AsEWKT(the_geom_4d) FROM public.circularstring;        
 
--- These tests will fail on different architectures
--- We need a way to handle multiple byte orderings
---SELECT 'asbinary01', encode(asbinary(the_geom_2d), 'hex') FROM public.circularstring;
---SELECT 'asbinary02', encode(asbinary(the_geom_3dm), 'hex') FROM public.circularstring;
---SELECT 'asbinary03', encode(asbinary(the_geom_3dz), 'hex') FROM public.circularstring;
---SELECT 'asbinary04', encode(asbinary(the_geom_4d), 'hex') FROM public.circularstring;
---
---SELECT 'asewkb01', encode(asewkb(the_geom_2d), 'hex') FROM public.circularstring;
---SELECT 'asewkb02', encode(asewkb(the_geom_3dm), 'hex') FROM public.circularstring;
---SELECT 'asewkb03', encode(asewkb(the_geom_3dz), 'hex') FROM public.circularstring;
---SELECT 'asewkb04', encode(asewkb(the_geom_4d), 'hex') FROM public.circularstring;
+SELECT 'asbinary01', encode(ST_AsBinary(the_geom_2d, 'ndr'), 'hex') FROM public.circularstring;
+SELECT 'asbinary02', encode(ST_AsBinary(the_geom_3dm, 'xdr'), 'hex') FROM public.circularstring;
+SELECT 'asbinary03', encode(ST_AsBinary(the_geom_3dz, 'ndr'), 'hex') FROM public.circularstring;
+SELECT 'asbinary04', encode(ST_AsBinary(the_geom_4d, 'xdr'), 'hex') FROM public.circularstring;
 
-SELECT 'ST_CurveToLine-201', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
-SELECT 'ST_CurveToLine-202', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
-SELECT 'ST_CurveToLine-203', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
-SELECT 'ST_CurveToLine-204', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'asewkb01', encode(ST_AsEWKB(the_geom_2d, 'ndr'), 'hex') FROM public.circularstring;
+SELECT 'asewkb02', encode(ST_AsEWKB(the_geom_3dm, 'xdr'), 'hex') FROM public.circularstring;
+SELECT 'asewkb03', encode(ST_AsEWKB(the_geom_3dz, 'ndr'), 'hex') FROM public.circularstring;
+SELECT 'asewkb04', encode(ST_AsEWKB(the_geom_4d, 'xdr'), 'hex') FROM public.circularstring;
 
-SELECT 'ST_CurveToLine-401', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
-SELECT 'ST_CurveToLine-402', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
-SELECT 'ST_CurveToLine-403', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
-SELECT 'ST_CurveToLine-404', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine-201', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine-202', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine-203', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine-204', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
 
-SELECT 'ST_CurveToLine01', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
-SELECT 'ST_CurveToLine02', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
-SELECT 'ST_CurveToLine03', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
-SELECT 'ST_CurveToLine04', ST_asewkt( ST_SnapToGrid(ST_CurveToLine(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine-401', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine-402', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine-403', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine-404', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
 
---Removed due to discrepencies between hardware
---SELECT 'box2d01', box2d(the_geom_2d) FROM public.circularstring;
---SELECT 'box2d02', box2d(the_geom_3dm) FROM public.circularstring;
---SELECT 'box2d03', box2d(the_geom_3dz) FROM public.circularstring;
---SELECT 'box2d04', box2d(the_geom_4d) FROM public.circularstring;
+SELECT 'ST_CurveToLine01', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine02', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine03', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
+SELECT 'ST_CurveToLine04', ST_AsEWKT( ST_SnapToGrid(ST_CurveToLine(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
 
---SELECT 'box3d01', box3d(the_geom_2d) FROM public.circularstring;
---SELECT 'box3d02', box3d(the_geom_3dm) FROM public.circularstring;
---SELECT 'box3d03', box3d(the_geom_3dz) FROM public.circularstring;
---SELECT 'box3d04', box3d(the_geom_4d) FROM public.circularstring;
 -- TODO: ST_SnapToGrid is required to remove platform dependent precision
 -- issues.  Until ST_SnapToGrid is updated to work against curves, these
 -- tests cannot be run.
---SELECT 'ST_LineToCurve01', ST_asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_2d))) FROM public.circularstring;
---SELECT 'ST_LineToCurve02', ST_asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dm))) FROM public.circularstring;
---SELECT 'ST_LineToCurve03', ST_asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dz))) FROM public.circularstring;
---SELECT 'ST_LineToCurve04', ST_asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_4d))) FROM public.circularstring;
+--SELECT 'ST_LineToCurve01', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_2d))) FROM public.circularstring;
+--SELECT 'ST_LineToCurve02', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_3dm))) FROM public.circularstring;
+--SELECT 'ST_LineToCurve03', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_3dz))) FROM public.circularstring;
+--SELECT 'ST_LineToCurve04', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_4d))) FROM public.circularstring;
 
--- Repeat tests with new function names.
-SELECT 'astext01', ST_astext(the_geom_2d) FROM public.circularstring;        
-SELECT 'astext02', ST_astext(the_geom_3dm) FROM public.circularstring;        
-SELECT 'astext03', ST_astext(the_geom_3dz) FROM public.circularstring;        
-SELECT 'astext04', ST_astext(the_geom_4d) FROM public.circularstring;        
-
-SELECT 'asewkt01', ST_asewkt(the_geom_2d) FROM public.circularstring;        
-SELECT 'asewkt02', ST_asewkt(the_geom_3dm) FROM public.circularstring;        
-SELECT 'asewkt03', ST_asewkt(the_geom_3dz) FROM public.circularstring;        
-SELECT 'asewkt04', ST_asewkt(the_geom_4d) FROM public.circularstring;        
-
--- These tests will fail on different architectures
--- We need a way to handle multiple byte orderings
---SELECT 'asbinary01', encode(ST_asbinary(the_geom_2d), 'hex') FROM public.circularstring;
---SELECT 'asbinary02', encode(ST_asbinary(the_geom_3dm), 'hex') FROM public.circularstring;
---SELECT 'asbinary03', encode(ST_asbinary(the_geom_3dz), 'hex') FROM public.circularstring;
---SELECT 'asbinary04', encode(ST_asbinary(the_geom_4d), 'hex') FROM public.circularstring;
---
---SELECT 'asewkb01', encode(ST_asewkb(the_geom_2d), 'hex') FROM public.circularstring;
---SELECT 'asewkb02', encode(ST_asewkb(the_geom_3dm), 'hex') FROM public.circularstring;
---SELECT 'asewkb03', encode(ST_asewkb(the_geom_3dz), 'hex') FROM public.circularstring;
---SELECT 'asewkb04', encode(ST_asewkb(the_geom_4d), 'hex') FROM public.circularstring;
-
---Removed due to discrepencies between hardware
---SELECT 'box2d01', box2d(the_geom_2d) FROM public.circularstring;
---SELECT 'box2d02', box2d(the_geom_3dm) FROM public.circularstring;
---SELECT 'box2d03', box2d(the_geom_3dz) FROM public.circularstring;
---SELECT 'box2d04', box2d(the_geom_4d) FROM public.circularstring;
-
---SELECT 'box3d01', box3d(the_geom_2d) FROM public.circularstring;
---SELECT 'box3d02', box3d(the_geom_3dm) FROM public.circularstring;
---SELECT 'box3d03', box3d(the_geom_3dz) FROM public.circularstring;
---SELECT 'box3d04', box3d(the_geom_4d) FROM public.circularstring;
-
-SELECT 'isValid01', ST_isValid(the_geom_2d) FROM public.circularstring;
-SELECT 'isValid02', ST_isValid(the_geom_3dm) FROM public.circularstring;
-SELECT 'isValid03', ST_isValid(the_geom_3dz) FROM public.circularstring;
-SELECT 'isValid04', ST_isValid(the_geom_4d) FROM public.circularstring;
+SELECT 'isValid01', ST_IsValid(the_geom_2d) FROM public.circularstring;
+SELECT 'isValid02', ST_IsValid(the_geom_3dm) FROM public.circularstring;
+SELECT 'isValid03', ST_IsValid(the_geom_3dz) FROM public.circularstring;
+SELECT 'isValid04', ST_IsValid(the_geom_4d) FROM public.circularstring;
 
 SELECT 'dimension01', ST_dimension(the_geom_2d) FROM public.circularstring;
 SELECT 'dimension02', ST_dimension(the_geom_3dm) FROM public.circularstring;
@@ -262,24 +216,21 @@ SELECT 'SRID02', ST_SRID(the_geom_3dm) FROM public.circularstring;
 SELECT 'SRID03', ST_SRID(the_geom_3dz) FROM public.circularstring;
 SELECT 'SRID04', ST_SRID(the_geom_4d) FROM public.circularstring;
 
-SELECT 'accessors01', ST_IsEmpty(the_geom_2d), ST_isSimple(the_geom_2d), ST_isClosed(the_geom_2d), ST_isRing(the_geom_2d) FROM public.circularstring;
-SELECT 'accessors02', ST_IsEmpty(the_geom_3dm), ST_isSimple(the_geom_3dm), ST_isClosed(the_geom_3dm), ST_isRing(the_geom_3dm) FROM public.circularstring;
-SELECT 'accessors03', ST_IsEmpty(the_geom_3dz), ST_isSimple(the_geom_3dz), ST_isClosed(the_geom_3dz), ST_isRing(the_geom_3dz) FROM public.circularstring;
-SELECT 'accessors04', ST_IsEmpty(the_geom_4d), ST_isSimple(the_geom_4d), ST_isClosed(the_geom_4d), ST_isRing(the_geom_4d) FROM public.circularstring;
+SELECT 'accessors01', ST_IsEmpty(the_geom_2d), ST_IsSimple(the_geom_2d), ST_IsClosed(the_geom_2d), ST_IsRing(the_geom_2d) FROM public.circularstring;
+SELECT 'accessors02', ST_IsEmpty(the_geom_3dm), ST_IsSimple(the_geom_3dm), ST_IsClosed(the_geom_3dm), ST_IsRing(the_geom_3dm) FROM public.circularstring;
+SELECT 'accessors03', ST_IsEmpty(the_geom_3dz), ST_IsSimple(the_geom_3dz), ST_IsClosed(the_geom_3dz), ST_IsRing(the_geom_3dz) FROM public.circularstring;
+SELECT 'accessors04', ST_IsEmpty(the_geom_4d), ST_IsSimple(the_geom_4d), ST_IsClosed(the_geom_4d), ST_IsRing(the_geom_4d) FROM public.circularstring;
 
 SELECT 'envelope01', ST_AsText(ST_SnapToGrid(ST_Envelope(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
 SELECT 'envelope02', ST_AsText(ST_SnapToGrid(ST_Envelope(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
 SELECT 'envelope03', ST_AsText(ST_SnapToGrid(ST_Envelope(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
 SELECT 'envelope04', ST_AsText(ST_SnapToGrid(ST_Envelope(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.circularstring;
 
-SELECT DropGeometryColumn('public', 'circularstring', 'the_geom_4d');
-SELECT DropGeometryColumn('public', 'circularstring', 'the_geom_3dz');
-SELECT DropGeometryColumn('public', 'circularstring', 'the_geom_3dm');
-SELECT DropGeometryColumn('public', 'circularstring', 'the_geom_2d');
 DROP TABLE public.circularstring;
-SELECT ST_AsText(st_snaptogrid(box2d('CIRCULARSTRING(220268.439465645 150415.359530563,220227.333322076 150505.561285879,220227.353105332 150406.434743975)'::geometry),0.0001));
-SELECT 'npoints_is_five',ST_NumPoints(ST_GeomFromEWKT('CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3)'));
+
+SELECT ST_AsText(ST_SnapToGrid(box2d('CIRCULARSTRING(220268.439465645 150415.359530563,220227.333322076 150505.561285879,220227.353105332 150406.434743975)'::geometry),0.0001));
+SELECT 'npoints_is_five', ST_NumPoints(ST_GeomFromEWKT('CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3)'));
 
 -- See http://trac.osgeo.org/postgis/ticket/2410
-SELECT 'straight_curve',ST_AsText(ST_CurveToLine(ST_GeomFromEWKT('CIRCULARSTRING(0 0,1 0,2 0,3 0,4 0)')));
+SELECT 'straight_curve', ST_AsText(ST_CurveToLine(ST_GeomFromEWKT('CIRCULARSTRING(0 0,1 0,2 0,3 0,4 0)')));
 
diff --git a/regress/sql-mm-circularstring_expected b/regress/sql-mm-circularstring_expected
index 1690735..2ff3739 100644
--- a/regress/sql-mm-circularstring_expected
+++ b/regress/sql-mm-circularstring_expected
@@ -7,11 +7,11 @@ geometrytype03|CIRCULARSTRINGM
 ndims04|2
 geometrytype04|CIRCULARSTRING
 isClosed01|t
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  isring() should only be called on a LINE
+isSimple01|t
+isRing01|t
 isClosed02|t
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  isring() should only be called on a LINE
+isSimple02|f
+isRing02|f
 astext01|CIRCULARSTRING(0 0,0.267949192431123 1,0.585786437626905 1.4142135623731)
 astext01|CIRCULARSTRING(-5 0,0 5,5 0,10 -5,15 0)
 astext02|CIRCULARSTRING M (0 0 0,0.267949192431123 1 -2,0.585786437626905 1.4142135623731 2)
@@ -28,6 +28,22 @@ asewkt03|CIRCULARSTRING(0 0 0,0.267949192431123 1 3,0.585786437626905 1.41421356
 asewkt03|CIRCULARSTRING(-5 0 0,0 5 1,5 0 2,10 -5 3,15 0 4)
 asewkt04|CIRCULARSTRING(0 0 0 0,0.267949192431123 1 3 -2,0.585786437626905 1.4142135623731 1 2)
 asewkt04|CIRCULARSTRING(-5 0 0 4,0 5 1 3,5 0 2 2,10 -5 3 1,15 0 4 0)
+asbinary01|0108000000030000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f67880133c3bee23fcd3b7f669ea0f63f
+asbinary01|01080000000500000000000000000014c000000000000000000000000000000000000000000000144000000000000014400000000000000000000000000000244000000000000014c00000000000002e400000000000000000
+asbinary02|00000007d8000000030000000000000000000000000000000000000000000000003fd126145e9ecd563ff0000000000000c0000000000000003fe2bec3330188673ff6a09e667f3bcd4000000000000000
+asbinary02|00000007d800000005c014000000000000000000000000000040100000000000000000000000000000401400000000000040080000000000004014000000000000000000000000000040000000000000004024000000000000c0140000000000003ff0000000000000402e00000000000000000000000000000000000000000000
+asbinary03|01f00300000300000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f000000000000084067880133c3bee23fcd3b7f669ea0f63f000000000000f03f
+asbinary03|01f00300000500000000000000000014c00000000000000000000000000000000000000000000000000000000000001440000000000000f03f000000000000144000000000000000000000000000000040000000000000244000000000000014c000000000000008400000000000002e4000000000000000000000000000001040
+asbinary04|0000000bc00000000300000000000000000000000000000000000000000000000000000000000000003fd126145e9ecd563ff00000000000004008000000000000c0000000000000003fe2bec3330188673ff6a09e667f3bcd3ff00000000000004000000000000000
+asbinary04|0000000bc000000005c014000000000000000000000000000000000000000000004010000000000000000000000000000040140000000000003ff0000000000000400800000000000040140000000000000000000000000000400000000000000040000000000000004024000000000000c01400000000000040080000000000003ff0000000000000402e000000000000000000000000000040100000000000000000000000000000
+asewkb01|0108000000030000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f67880133c3bee23fcd3b7f669ea0f63f
+asewkb01|01080000000500000000000000000014c000000000000000000000000000000000000000000000144000000000000014400000000000000000000000000000244000000000000014c00000000000002e400000000000000000
+asewkb02|0040000008000000030000000000000000000000000000000000000000000000003fd126145e9ecd563ff0000000000000c0000000000000003fe2bec3330188673ff6a09e667f3bcd4000000000000000
+asewkb02|004000000800000005c014000000000000000000000000000040100000000000000000000000000000401400000000000040080000000000004014000000000000000000000000000040000000000000004024000000000000c0140000000000003ff0000000000000402e00000000000000000000000000000000000000000000
+asewkb03|01080000800300000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f000000000000084067880133c3bee23fcd3b7f669ea0f63f000000000000f03f
+asewkb03|01080000800500000000000000000014c00000000000000000000000000000000000000000000000000000000000001440000000000000f03f000000000000144000000000000000000000000000000040000000000000244000000000000014c000000000000008400000000000002e4000000000000000000000000000001040
+asewkb04|00c00000080000000300000000000000000000000000000000000000000000000000000000000000003fd126145e9ecd563ff00000000000004008000000000000c0000000000000003fe2bec3330188673ff6a09e667f3bcd3ff00000000000004000000000000000
+asewkb04|00c000000800000005c014000000000000000000000000000000000000000000004010000000000000000000000000000040140000000000003ff0000000000000400800000000000040140000000000000000000000000000400000000000000040000000000000004024000000000000c01400000000000040080000000000003ff0000000000000402e000000000000000000000000000040100000000000000000000000000000
 ST_CurveToLine-201|LINESTRING(0 0,0.58578644 1.41421356)
 ST_CurveToLine-201|LINESTRING(-5 0,-3.53553391 3.53553391,0 5,3.53553391 3.53553391,5 0,6.46446609 -3.53553391,10 -5,13.53553391 -3.53553391,15 0)
 ST_CurveToLine-202|LINESTRINGM(0 0 0,0.58578644 1.41421356 2)
@@ -52,26 +68,14 @@ ST_CurveToLine03|LINESTRING(0 0 0,0.00240909 0.09813535 0.28125,0.00963055 0.196
 ST_CurveToLine03|LINESTRING(-5 0 0,-4.99397728 0.24533837 0.03125,-4.97592363 0.4900857 0.0625,-4.94588255 0.73365237 0.09375,-4.9039264 0.97545161 0.125,-4.85015627 1.2149009 0.15625,-4.78470168 1.45142339 0.1875,-4.70772033 1.68444927 0.21875,-4.61939766 1.91341716 0.25,-4.51994647 2.13777547 0.28125,-4.40960632 2.35698368 0.3125,-4.28864305 2.57051372 0.34375,-4.15734806 2.77785117 0.375,-4.01603766 2.97849652 0.40625,-3.86505227 3.17196642 0.4375,-3.70475563 3.35779477 0.46875,-3.535 [...]
 ST_CurveToLine04|LINESTRING(0 0 0 0,0.00240909 0.09813535 0.28125 -0.1875,0.00963055 0.19603428 0.5625 -0.375,0.02164698 0.29346095 0.84375 -0.5625,0.03842944 0.39018064 1.125 -0.75,0.05993749 0.48596036 1.40625 -0.9375,0.08611933 0.58056935 1.6875 -1.125,0.11691187 0.67377971 1.96875 -1.3125,0.15224093 0.76536686 2.25 -1.5,0.19202141 0.85511019 2.53125 -1.6875,0.23615747 0.94279347 2.8125 -1.875,0.28454278 1.02820549 2.875 -1.75,0.33706078 1.11114047 2.5 -1,0.39358494 1.19139861 2.125 - [...]
 ST_CurveToLine04|LINESTRING(-5 0 0 4,-4.99397728 0.24533837 0.03125 3.96875,-4.97592363 0.4900857 0.0625 3.9375,-4.94588255 0.73365237 0.09375 3.90625,-4.9039264 0.97545161 0.125 3.875,-4.85015627 1.2149009 0.15625 3.84375,-4.78470168 1.45142339 0.1875 3.8125,-4.70772033 1.68444927 0.21875 3.78125,-4.61939766 1.91341716 0.25 3.75,-4.51994647 2.13777547 0.28125 3.71875,-4.40960632 2.35698368 0.3125 3.6875,-4.28864305 2.57051372 0.34375 3.65625,-4.15734806 2.77785117 0.375 3.625,-4.0160376 [...]
-astext01|CIRCULARSTRING(0 0,0.267949192431123 1,0.585786437626905 1.4142135623731)
-astext01|CIRCULARSTRING(-5 0,0 5,5 0,10 -5,15 0)
-astext02|CIRCULARSTRING M (0 0 0,0.267949192431123 1 -2,0.585786437626905 1.4142135623731 2)
-astext02|CIRCULARSTRING M (-5 0 4,0 5 3,5 0 2,10 -5 1,15 0 0)
-astext03|CIRCULARSTRING Z (0 0 0,0.267949192431123 1 3,0.585786437626905 1.4142135623731 1)
-astext03|CIRCULARSTRING Z (-5 0 0,0 5 1,5 0 2,10 -5 3,15 0 4)
-astext04|CIRCULARSTRING ZM (0 0 0 0,0.267949192431123 1 3 -2,0.585786437626905 1.4142135623731 1 2)
-astext04|CIRCULARSTRING ZM (-5 0 0 4,0 5 1 3,5 0 2 2,10 -5 3 1,15 0 4 0)
-asewkt01|CIRCULARSTRING(0 0,0.267949192431123 1,0.585786437626905 1.4142135623731)
-asewkt01|CIRCULARSTRING(-5 0,0 5,5 0,10 -5,15 0)
-asewkt02|CIRCULARSTRINGM(0 0 0,0.267949192431123 1 -2,0.585786437626905 1.4142135623731 2)
-asewkt02|CIRCULARSTRINGM(-5 0 4,0 5 3,5 0 2,10 -5 1,15 0 0)
-asewkt03|CIRCULARSTRING(0 0 0,0.267949192431123 1 3,0.585786437626905 1.4142135623731 1)
-asewkt03|CIRCULARSTRING(-5 0 0,0 5 1,5 0 2,10 -5 3,15 0 4)
-asewkt04|CIRCULARSTRING(0 0 0 0,0.267949192431123 1 3 -2,0.585786437626905 1.4142135623731 1 2)
-asewkt04|CIRCULARSTRING(-5 0 0 4,0 5 1 3,5 0 2 2,10 -5 3 1,15 0 4 0)
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
+isValid01|t
+isValid01|t
+isValid02|t
+isValid02|t
+isValid03|t
+isValid03|t
+isValid04|t
+isValid04|t
 dimension01|1
 dimension01|1
 dimension02|1
@@ -88,10 +92,14 @@ SRID03|0
 SRID03|0
 SRID04|0
 SRID04|0
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
+accessors01|f|t|f|f
+accessors01|f|t|f|f
+accessors02|f|t|f|f
+accessors02|f|t|f|f
+accessors03|f|t|f|f
+accessors03|f|t|f|f
+accessors04|f|t|f|f
+accessors04|f|t|f|f
 envelope01|POLYGON((0 0,0 1.41421356,0.58578644 1.41421356,0.58578644 0,0 0))
 envelope01|POLYGON((-5 -5,-5 5,15 5,15 -5,-5 -5))
 envelope02|POLYGON((0 0,0 1.41421356,0.58578644 1.41421356,0.58578644 0,0 0))
@@ -100,10 +108,6 @@ envelope03|POLYGON((0 0,0 1.41421356,0.58578644 1.41421356,0.58578644 0,0 0))
 envelope03|POLYGON((-5 -5,-5 5,15 5,15 -5,-5 -5))
 envelope04|POLYGON((0 0,0 1.41421356,0.58578644 1.41421356,0.58578644 0,0 0))
 envelope04|POLYGON((-5 -5,-5 5,15 5,15 -5,-5 -5))
-public.circularstring.the_geom_4d effectively removed.
-public.circularstring.the_geom_3dz effectively removed.
-public.circularstring.the_geom_3dm effectively removed.
-public.circularstring.the_geom_2d effectively removed.
 POLYGON((220187.3821 150406.4347,220187.3821 150506.7171,220288.8159 150506.7171,220288.8159 150406.4347,220187.3821 150406.4347))
 npoints_is_five|5
 straight_curve|LINESTRING(0 0,1 0,2 0,3 0,4 0)
diff --git a/regress/sql-mm-compoundcurve.sql b/regress/sql-mm-compoundcurve.sql
index 53c9642..7da40df 100644
--- a/regress/sql-mm-compoundcurve.sql
+++ b/regress/sql-mm-compoundcurve.sql
@@ -169,17 +169,15 @@ SELECT 'asewkt02', ST_Asewkt(the_geom_3dm) FROM public.compoundcurve;
 SELECT 'asewkt03', ST_Asewkt(the_geom_3dz) FROM public.compoundcurve;
 SELECT 'asewkt04', ST_Asewkt(the_geom_4d) FROM public.compoundcurve;
 
--- These tests will fail on different architectures
--- We need a way to handle multiple byte orderings
---SELECT 'asbinary01', encode(asbinary(the_geom_2d), 'hex') FROM public.compoundcurve;
---SELECT 'asbinary02', encode(asbinary(the_geom_3dm), 'hex') FROM public.compoundcurve;
---SELECT 'asbinary03', encode(asbinary(the_geom_3dz), 'hex') FROM public.compoundcurve;
---SELECT 'asbinary04', encode(asbinary(the_geom_4d), 'hex') FROM public.compoundcurve;
---
---SELECT 'asewkb01', encode(asewkb(the_geom_2d), 'hex') FROM public.compoundcurve;
---SELECT 'asewkb02', encode(asewkb(the_geom_3dm), 'hex') FROM public.compoundcurve;
---SELECT 'asewkb03', encode(asewkb(the_geom_3dz), 'hex') FROM public.compoundcurve;
---SELECT 'asewkb04', encode(asewkb(the_geom_4d), 'hex') FROM public.compoundcurve;
+SELECT 'asbinary01', encode(ST_AsBinary(the_geom_2d, 'ndr'), 'hex') FROM public.compoundcurve;
+SELECT 'asbinary02', encode(ST_AsBinary(the_geom_3dm, 'ndr'), 'hex') FROM public.compoundcurve;
+SELECT 'asbinary03', encode(ST_AsBinary(the_geom_3dz, 'ndr'), 'hex') FROM public.compoundcurve;
+SELECT 'asbinary04', encode(ST_AsBinary(the_geom_4d, 'ndr'), 'hex') FROM public.compoundcurve;
+
+SELECT 'asewkb01', encode(ST_AsEWKB(the_geom_2d, 'ndr'), 'hex') FROM public.compoundcurve;
+SELECT 'asewkb02', encode(ST_AsEWKB(the_geom_3dm, 'ndr'), 'hex') FROM public.compoundcurve;
+SELECT 'asewkb03', encode(ST_AsEWKB(the_geom_3dz, 'ndr'), 'hex') FROM public.compoundcurve;
+SELECT 'asewkb04', encode(ST_AsEWKB(the_geom_4d, 'ndr'), 'hex') FROM public.compoundcurve;
 
 SELECT 'ST_CurveToLine-201', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
 SELECT 'ST_CurveToLine-202', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
@@ -196,86 +194,10 @@ SELECT 'ST_CurveToLine02', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm),
 SELECT 'ST_CurveToLine03', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
 SELECT 'ST_CurveToLine04', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
 
--- Removed due to discrepencies between hardware
---SELECT 'box2d01', box2d(the_geom_2d) FROM public.compoundcurve;
---SELECT 'box2d02', box2d(the_geom_3dm) FROM public.compoundcurve;
---SELECT 'box2d03', box2d(the_geom_3dz) FROM public.compoundcurve;
---SELECT 'box2d04', box2d(the_geom_4d) FROM public.compoundcurve;
-
---SELECT 'box3d01', box3d(the_geom_2d) FROM public.compoundcurve;
---SELECT 'box3d02', box3d(the_geom_3dm) FROM public.compoundcurve;
---SELECT 'box3d03', box3d(the_geom_3dz) FROM public.compoundcurve;
---SELECT 'box3d04', box3d(the_geom_4d) FROM public.compoundcurve;
-
--- SELECT 'isValid01', isValid(the_geom_2d) FROM public.compoundcurve;
--- SELECT 'isValid02', isValid(the_geom_3dm) FROM public.compoundcurve;
--- SELECT 'isValid03', isValid(the_geom_3dz) FROM public.compoundcurve;
--- SELECT 'isValid04', isValid(the_geom_4d) FROM public.compoundcurve;
-
--- SELECT 'dimension01', dimension(the_geom_2d) FROM public.compoundcurve;
--- SELECT 'dimension02', dimension(the_geom_3dm) FROM public.compoundcurve;
--- SELECT 'dimension03', dimension(the_geom_3dz) FROM public.compoundcurve;
--- SELECT 'dimension04', dimension(the_geom_4d) FROM public.compoundcurve;
-
--- SELECT 'SRID01', ST_SRID(the_geom_2d) FROM public.compoundcurve;
--- SELECT 'SRID02', ST_SRID(the_geom_3dm) FROM public.compoundcurve;
--- SELECT 'SRID03', ST_SRID(the_geom_3dz) FROM public.compoundcurve;
--- SELECT 'SRID04', ST_SRID(the_geom_4d) FROM public.compoundcurve;
-
--- SELECT 'accessor01', isEmpty(the_geom_2d), isSimple(the_geom_2d), isClosed(the_geom_2d), isRing(the_geom_2d) FROM public.compoundcurve;
--- SELECT 'accessor02', isEmpty(the_geom_3dm), isSimple(the_geom_3dm), isClosed(the_geom_3dm), isRing(the_geom_3dm) FROM public.compoundcurve;
--- SELECT 'accessor03', isEmpty(the_geom_3dz), isSimple(the_geom_3dz), isClosed(the_geom_3dz), isRing(the_geom_3dz) FROM public.compoundcurve;
--- SELECT 'accessor04', isEmpty(the_geom_4d), isSimple(the_geom_4d), isClosed(the_geom_4d), isRing(the_geom_4d) FROM public.compoundcurve;
-
--- SELECT 'envelope01', ST_AsText(ST_SnapToGrid(envelope(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
--- SELECT 'envelope02', ST_AsText(ST_SnapToGrid(envelope(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
--- SELECT 'envelope03', ST_AsText(ST_SnapToGrid(envelope(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
--- SELECT 'envelope04', ST_AsText(ST_SnapToGrid(envelope(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
-
--- TODO: ST_SnapToGrid is required to remove platform dependent precision
--- issues.  Until ST_SnapToGrid is updated to work against curves, these
--- tests cannot be run.
---SELECT 'ST_LineToCurve', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_2d))) FROM public.compoundcurve;
---SELECT 'ST_LineToCurve', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dm))) FROM public.compoundcurve;
---SELECT 'ST_LineToCurve', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dz))) FROM public.compoundcurve;
---SELECT 'ST_LineToCurve', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_4d))) FROM public.compoundcurve;
-
--- Repeat tests on new function names.
-SELECT 'astext01', ST_astext(the_geom_2d) FROM public.compoundcurve;
-SELECT 'astext02', ST_astext(the_geom_3dm) FROM public.compoundcurve;
-SELECT 'astext03', ST_astext(the_geom_3dz) FROM public.compoundcurve;
-SELECT 'astext04', ST_astext(the_geom_4d) FROM public.compoundcurve;
-
-SELECT 'asewkt01', ST_asewkt(the_geom_2d) FROM public.compoundcurve;
-SELECT 'asewkt02', ST_asewkt(the_geom_3dm) FROM public.compoundcurve;
-SELECT 'asewkt03', ST_asewkt(the_geom_3dz) FROM public.compoundcurve;
-SELECT 'asewkt04', ST_asewkt(the_geom_4d) FROM public.compoundcurve;
-
---SELECT 'asbinary01', encode(ST_asbinary(the_geom_2d), 'hex') FROM public.compoundcurve;
---SELECT 'asbinary02', encode(ST_asbinary(the_geom_3dm), 'hex') FROM public.compoundcurve;
---SELECT 'asbinary03', encode(ST_asbinary(the_geom_3dz), 'hex') FROM public.compoundcurve;
---SELECT 'asbinary04', encode(ST_asbinary(the_geom_4d), 'hex') FROM public.compoundcurve;
---
---SELECT 'asewkb01', encode(ST_asewkb(the_geom_2d), 'hex') FROM public.compoundcurve;
---SELECT 'asewkb02', encode(ST_asewkb(the_geom_3dm), 'hex') FROM public.compoundcurve;
---SELECT 'asewkb03', encode(ST_asewkb(the_geom_3dz), 'hex') FROM public.compoundcurve;
---SELECT 'asewkb04', encode(ST_asewkb(the_geom_4d), 'hex') FROM public.compoundcurve;
-
--- Removed due to discrepencies between hardware
---SELECT 'box2d01', ST_box2d(the_geom_2d) FROM public.compoundcurve;
---SELECT 'box2d02', ST_box2d(the_geom_3dm) FROM public.compoundcurve;
---SELECT 'box2d03', ST_box2d(the_geom_3dz) FROM public.compoundcurve;
---SELECT 'box2d04', ST_box2d(the_geom_4d) FROM public.compoundcurve;
-
---SELECT 'box3d01', ST_box3d(the_geom_2d) FROM public.compoundcurve;
---SELECT 'box3d02', ST_box3d(the_geom_3dm) FROM public.compoundcurve;
---SELECT 'box3d03', ST_box3d(the_geom_3dz) FROM public.compoundcurve;
---SELECT 'box3d04', ST_box3d(the_geom_4d) FROM public.compoundcurve;
-
-SELECT 'isValid01', ST_isValid(the_geom_2d) FROM public.compoundcurve;
-SELECT 'isValid02', ST_isValid(the_geom_3dm) FROM public.compoundcurve;
-SELECT 'isValid03', ST_isValid(the_geom_3dz) FROM public.compoundcurve;
-SELECT 'isValid04', ST_isValid(the_geom_4d) FROM public.compoundcurve;
+SELECT 'isValid01', ST_IsValid(the_geom_2d) FROM public.compoundcurve;
+SELECT 'isValid02', ST_IsValid(the_geom_3dm) FROM public.compoundcurve;
+SELECT 'isValid03', ST_IsValid(the_geom_3dz) FROM public.compoundcurve;
+SELECT 'isValid04', ST_IsValid(the_geom_4d) FROM public.compoundcurve;
 
 SELECT 'dimension01', ST_dimension(the_geom_2d) FROM public.compoundcurve;
 SELECT 'dimension02', ST_dimension(the_geom_3dm) FROM public.compoundcurve;
@@ -287,20 +209,16 @@ SELECT 'SRID02', ST_SRID(the_geom_3dm) FROM public.compoundcurve;
 SELECT 'SRID03', ST_SRID(the_geom_3dz) FROM public.compoundcurve;
 SELECT 'SRID04', ST_SRID(the_geom_4d) FROM public.compoundcurve;
 
-SELECT 'accessor01', ST_isEmpty(the_geom_2d), ST_isSimple(the_geom_2d), ST_isClosed(the_geom_2d), ST_isRing(the_geom_2d) FROM public.compoundcurve;
-SELECT 'accessor02', ST_isEmpty(the_geom_3dm), ST_isSimple(the_geom_3dm), ST_isClosed(the_geom_3dm), ST_isRing(the_geom_3dm) FROM public.compoundcurve;
-SELECT 'accessor03', ST_isEmpty(the_geom_3dz), ST_isSimple(the_geom_3dz), ST_isClosed(the_geom_3dz), ST_isRing(the_geom_3dz) FROM public.compoundcurve;
-SELECT 'accessor04', ST_isEmpty(the_geom_4d), ST_isSimple(the_geom_4d), ST_isClosed(the_geom_4d), ST_isRing(the_geom_4d) FROM public.compoundcurve;
+SELECT 'accessor01', ST_IsEmpty(the_geom_2d), ST_IsSimple(the_geom_2d), ST_IsClosed(the_geom_2d), ST_IsRing(the_geom_2d) FROM public.compoundcurve;
+SELECT 'accessor02', ST_IsEmpty(the_geom_3dm), ST_IsSimple(the_geom_3dm), ST_IsClosed(the_geom_3dm), ST_IsRing(the_geom_3dm) FROM public.compoundcurve;
+SELECT 'accessor03', ST_IsEmpty(the_geom_3dz), ST_IsSimple(the_geom_3dz), ST_IsClosed(the_geom_3dz), ST_IsRing(the_geom_3dz) FROM public.compoundcurve;
+SELECT 'accessor04', ST_IsEmpty(the_geom_4d), ST_IsSimple(the_geom_4d), ST_IsClosed(the_geom_4d), ST_IsRing(the_geom_4d) FROM public.compoundcurve;
 
 SELECT 'envelope01', ST_asText(ST_snapToGrid(ST_envelope(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
 SELECT 'envelope02', ST_asText(ST_snapToGrid(ST_envelope(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
 SELECT 'envelope03', ST_asText(ST_snapToGrid(ST_envelope(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
 SELECT 'envelope04', ST_asText(ST_snapToGrid(ST_envelope(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.compoundcurve;
 
-SELECT DropGeometryColumn('public', 'compoundcurve', 'the_geom_4d');
-SELECT DropGeometryColumn('public', 'compoundcurve', 'the_geom_3dz');
-SELECT DropGeometryColumn('public', 'compoundcurve', 'the_geom_3dm');
-SELECT DropGeometryColumn('public', 'compoundcurve', 'the_geom_2d');
 DROP TABLE public.compoundcurve;
 
 SELECT 'valid wkt compound curve 1', encode(ST_AsBinary(ST_GeomFromEWKT('COMPOUNDCURVE((153.72942375 -27.21757040, 152.29285719 -29.23940482, 154.74034096 -30.51635287),(154.74034096 -30.51635287, 152.39926953 -32.16574411, 155.11278414 -34.08116619, 151.86720784 -35.62414508))'),'ndr'),'hex');
@@ -316,7 +234,7 @@ SELECT 'valid wkb compound curve 2', ST_asEWKT(ST_GeomFromEWKB(decode('010900000
 SELECT 'valid wkb compound curve 3', ST_asEWKT(ST_GeomFromEWKB(decode('0109000000010000000102000000030000000CE586D73CF36240BBC46888F0523BC0102E91C951E76240DF90A1BEC0F841C0F970C100FFD7624074ADE6CE86CD3BC0', 'hex')));
 SELECT 'valid wkb compound curve 4', ST_asEWKT(ST_GeomFromEWKB(decode('0109000000020000000102000000030000009FE5797057376340E09398B1B2373BC05AAE0A165F0963409F6760A2493D3DC0DB6286DFB057634082D8A1B32F843EC0010800000005000000DB6286DFB057634082D8A1B32F843EC0DB6286DFB057634082D8A1B32F843EC075B4E4D0C60C634031FA5D1A371540C0D7197CED9B636340A3CB59A7630A41C050F4A72AC0FB6240974769FCE3CF41C0', 'hex')));
 SELECT 'valid wkb compound curve 5', ST_asEWKT(ST_GeomFromEWKB(decode('010900000003000000010800000003000000468280E724BC6340BF4B46210B973BC0F890AEA18D8063402D9664151D483CC0EED64BB6EE726340903CA5BDA0863AC0010200000004000000EED64BB6EE726340903CA5BDA0863AC09FE5797057376340E09398B1B2373BC05AAE0A165F0963409F6760A2493D3DC0DB6286DFB057634082D8A1B32F843EC0010800000005000000DB6286DFB057634082D8A1B32F843EC0DB6286DFB057634082D8A1B32F843EC075B4E4D0C60C634031FA5D1A371540C0D7197CED9B636340A3CB59A7630A4 [...]
-SELECT 'null response', ST_NumPoints(ST_GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, 1 4, 0 0))'));
+SELECT 'st_numpoints', ST_NumPoints(ST_GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, 1 4, 0 0))'));
 SELECT 'minpoints issues - pass', encode(ST_AsBinary(ST_GeomFromText('COMPOUNDCURVE((0 0,1 1))'),'ndr'),'hex');
 SELECT 'minpoints issues - pass', encode(ST_AsBinary(ST_GeomFromText('COMPOUNDCURVE(CIRCULARSTRING(0 0,0 1,1 1))'),'ndr'),'hex');
 SELECT 'minpoints issues - fail', ST_GeomFromText('COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1))');
diff --git a/regress/sql-mm-compoundcurve_expected b/regress/sql-mm-compoundcurve_expected
index 6d535db..f7bfc39 100644
--- a/regress/sql-mm-compoundcurve_expected
+++ b/regress/sql-mm-compoundcurve_expected
@@ -22,6 +22,14 @@ asewkt01|COMPOUNDCURVE(CIRCULARSTRING(0 0,0.267949192431123 1,0.585786437626905
 asewkt02|COMPOUNDCURVEM(CIRCULARSTRINGM(0 0 0,0.267949192431123 1 -2,0.585786437626905 1.4142135623731 2),(0.585786437626905 1.4142135623731 2,2 0 0,0 0 0))
 asewkt03|COMPOUNDCURVE(CIRCULARSTRING(0 0 0,0.267949192431123 1 3,0.585786437626905 1.4142135623731 1),(0.585786437626905 1.4142135623731 1,2 0 0,0 0 0))
 asewkt04|COMPOUNDCURVE(CIRCULARSTRING(0 0 0 0,0.267949192431123 1 3 -2,0.585786437626905 1.4142135623731 1 2),(0.585786437626905 1.4142135623731 1 2,2 0 0 0,0 0 0 0))
+asbinary01|0109000000020000000108000000030000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f67880133c3bee23fcd3b7f669ea0f63f01020000000300000067880133c3bee23fcd3b7f669ea0f63f0000000000000040000000000000000000000000000000000000000000000000
+asbinary02|01d90700000200000001d80700000300000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f00000000000000c067880133c3bee23fcd3b7f669ea0f63f000000000000004001d20700000300000067880133c3bee23fcd3b7f669ea0f63f0000000000000040000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000
+asbinary03|01f10300000200000001f00300000300000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f000000000000084067880133c3bee23fcd3b7f669ea0f63f000000000000f03f01ea0300000300000067880133c3bee23fcd3b7f669ea0f63f000000000000f03f000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000
+asbinary04|01c10b00000200000001c00b000003000000000000000000000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f000000000000084000000000000000c067880133c3bee23fcd3b7f669ea0f63f000000000000f03f000000000000004001ba0b00000300000067880133c3bee23fcd3b7f669ea0f63f000000000000f03f000000000000004000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+asewkb01|0109000000020000000108000000030000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f67880133c3bee23fcd3b7f669ea0f63f01020000000300000067880133c3bee23fcd3b7f669ea0f63f0000000000000040000000000000000000000000000000000000000000000000
+asewkb02|01090000400200000001080000400300000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f00000000000000c067880133c3bee23fcd3b7f669ea0f63f000000000000004001020000400300000067880133c3bee23fcd3b7f669ea0f63f0000000000000040000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000
+asewkb03|01090000800200000001080000800300000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f000000000000084067880133c3bee23fcd3b7f669ea0f63f000000000000f03f01020000800300000067880133c3bee23fcd3b7f669ea0f63f000000000000f03f000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000
+asewkb04|01090000c00200000001080000c003000000000000000000000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f000000000000084000000000000000c067880133c3bee23fcd3b7f669ea0f63f000000000000f03f000000000000004001020000c00300000067880133c3bee23fcd3b7f669ea0f63f000000000000f03f000000000000004000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 ST_CurveToLine-201|LINESTRING(0 0,0.58578644 1.41421356,2 0,0 0)
 ST_CurveToLine-202|LINESTRINGM(0 0 0,0.58578644 1.41421356 2,2 0 0,0 0 0)
 ST_CurveToLine-203|LINESTRING(0 0 0,0.58578644 1.41421356 1,2 0 0,0 0 0)
@@ -34,18 +42,10 @@ ST_CurveToLine01|LINESTRING(0 0,0.00240909 0.09813535,0.00963055 0.19603428,0.02
 ST_CurveToLine02|LINESTRINGM(0 0 0,0.00240909 0.09813535 -0.1875,0.00963055 0.19603428 -0.375,0.02164698 0.29346095 -0.5625,0.03842944 0.39018064 -0.75,0.05993749 0.48596036 -0.9375,0.08611933 0.58056935 -1.125,0.11691187 0.67377971 -1.3125,0.15224093 0.76536686 -1.5,0.19202141 0.85511019 -1.6875,0.23615747 0.94279347 -1.875,0.28454278 1.02820549 -1.75,0.33706078 1.11114047 -1,0.39358494 1.19139861 -0.25,0.45397909 1.26878657 0.5,0.51809775 1.34311791 1.25,0.58578644 1.41421356 2,2 0 0,0 0 0)
 ST_CurveToLine03|LINESTRING(0 0 0,0.00240909 0.09813535 0.28125,0.00963055 0.19603428 0.5625,0.02164698 0.29346095 0.84375,0.03842944 0.39018064 1.125,0.05993749 0.48596036 1.40625,0.08611933 0.58056935 1.6875,0.11691187 0.67377971 1.96875,0.15224093 0.76536686 2.25,0.19202141 0.85511019 2.53125,0.23615747 0.94279347 2.8125,0.28454278 1.02820549 2.875,0.33706078 1.11114047 2.5,0.39358494 1.19139861 2.125,0.45397909 1.26878657 1.75,0.51809775 1.34311791 1.375,0.58578644 1.41421356 1,2 0 0,0 0 0)
 ST_CurveToLine04|LINESTRING(0 0 0 0,0.00240909 0.09813535 0.28125 -0.1875,0.00963055 0.19603428 0.5625 -0.375,0.02164698 0.29346095 0.84375 -0.5625,0.03842944 0.39018064 1.125 -0.75,0.05993749 0.48596036 1.40625 -0.9375,0.08611933 0.58056935 1.6875 -1.125,0.11691187 0.67377971 1.96875 -1.3125,0.15224093 0.76536686 2.25 -1.5,0.19202141 0.85511019 2.53125 -1.6875,0.23615747 0.94279347 2.8125 -1.875,0.28454278 1.02820549 2.875 -1.75,0.33706078 1.11114047 2.5 -1,0.39358494 1.19139861 2.125 - [...]
-astext01|COMPOUNDCURVE(CIRCULARSTRING(0 0,0.267949192431123 1,0.585786437626905 1.4142135623731),(0.585786437626905 1.4142135623731,2 0,0 0))
-astext02|COMPOUNDCURVE M (CIRCULARSTRING M (0 0 0,0.267949192431123 1 -2,0.585786437626905 1.4142135623731 2),(0.585786437626905 1.4142135623731 2,2 0 0,0 0 0))
-astext03|COMPOUNDCURVE Z (CIRCULARSTRING Z (0 0 0,0.267949192431123 1 3,0.585786437626905 1.4142135623731 1),(0.585786437626905 1.4142135623731 1,2 0 0,0 0 0))
-astext04|COMPOUNDCURVE ZM (CIRCULARSTRING ZM (0 0 0 0,0.267949192431123 1 3 -2,0.585786437626905 1.4142135623731 1 2),(0.585786437626905 1.4142135623731 1 2,2 0 0 0,0 0 0 0))
-asewkt01|COMPOUNDCURVE(CIRCULARSTRING(0 0,0.267949192431123 1,0.585786437626905 1.4142135623731),(0.585786437626905 1.4142135623731,2 0,0 0))
-asewkt02|COMPOUNDCURVEM(CIRCULARSTRINGM(0 0 0,0.267949192431123 1 -2,0.585786437626905 1.4142135623731 2),(0.585786437626905 1.4142135623731 2,2 0 0,0 0 0))
-asewkt03|COMPOUNDCURVE(CIRCULARSTRING(0 0 0,0.267949192431123 1 3,0.585786437626905 1.4142135623731 1),(0.585786437626905 1.4142135623731 1,2 0 0,0 0 0))
-asewkt04|COMPOUNDCURVE(CIRCULARSTRING(0 0 0 0,0.267949192431123 1 3 -2,0.585786437626905 1.4142135623731 1 2),(0.585786437626905 1.4142135623731 1 2,2 0 0 0,0 0 0 0))
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
+isValid01|t
+isValid02|t
+isValid03|t
+isValid04|t
 dimension01|1
 dimension02|1
 dimension03|1
@@ -54,18 +54,14 @@ SRID01|0
 SRID02|0
 SRID03|0
 SRID04|0
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
+accessor01|f|t|t|t
+accessor02|f|t|t|t
+accessor03|f|t|t|t
+accessor04|f|t|t|t
 envelope01|POLYGON((0 0,0 1.41421356,2 1.41421356,2 0,0 0))
 envelope02|POLYGON((0 0,0 1.41421356,2 1.41421356,2 0,0 0))
 envelope03|POLYGON((0 0,0 1.41421356,2 1.41421356,2 0,0 0))
 envelope04|POLYGON((0 0,0 1.41421356,2 1.41421356,2 0,0 0))
-public.compoundcurve.the_geom_4d effectively removed.
-public.compoundcurve.the_geom_3dz effectively removed.
-public.compoundcurve.the_geom_3dm effectively removed.
-public.compoundcurve.the_geom_2d effectively removed.
 valid wkt compound curve 1|0109000000020000000102000000030000009fe5797057376340e09398b1b2373bc05aae0a165f0963409f6760a2493d3dc0db6286dfb057634082d8a1b32f843ec0010200000004000000db6286dfb057634082d8a1b32f843ec075b4e4d0c60c634031fa5d1a371540c0d7197ced9b636340a3cb59a7630a41c050f4a72ac0fb6240974769fce3cf41c0
 valid wkt compound curve 2|0109000000010000000102000000060000009fe5797057376340e09398b1b2373bc05aae0a165f0963409f6760a2493d3dc0db6286dfb057634082d8a1b32f843ec075b4e4d0c60c634031fa5d1a371540c0d7197ced9b636340a3cb59a7630a41c050f4a72ac0fb6240974769fce3cf41c0
 valid wkt compound curve 3|0109000000010000000102000000030000000ce586d73cf36240bbc46888f0523bc0102e91c951e76240df90a1bec0f841c0f970c100ffd7624074ade6ce86cd3bc0
@@ -79,7 +75,7 @@ valid wkb compound curve 2|COMPOUNDCURVE((153.72942375 -27.2175704,152.29285719
 valid wkb compound curve 3|COMPOUNDCURVE((151.60117699 -27.32398274,151.22873381 -35.9433821,150.74987829 -27.80283826))
 valid wkb compound curve 4|COMPOUNDCURVE((153.72942375 -27.2175704,152.29285719 -29.23940482,154.74034096 -30.51635287),CIRCULARSTRING(154.74034096 -30.51635287,154.74034096 -30.51635287,152.39926953 -32.16574411,155.11278414 -34.08116619,151.86720784 -35.62414508))
 valid wkb compound curve 5|COMPOUNDCURVE(CIRCULARSTRING(157.87950492 -27.59001358,156.01728901 -28.28169378,155.59163966 -26.52589021),(155.59163966 -26.52589021,153.72942375 -27.2175704,152.29285719 -29.23940482,154.74034096 -30.51635287),CIRCULARSTRING(154.74034096 -30.51635287,154.74034096 -30.51635287,152.39926953 -32.16574411,155.11278414 -34.08116619,151.86720784 -35.62414508))
-null response|
+st_numpoints|9
 minpoints issues - pass|01090000000100000001020000000200000000000000000000000000000000000000000000000000f03f000000000000f03f
 minpoints issues - pass|010900000001000000010800000003000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f
 ERROR:  geometry requires more points
diff --git a/regress/sql-mm-curvepoly.sql b/regress/sql-mm-curvepoly.sql
index a45b882..0f18c00 100644
--- a/regress/sql-mm-curvepoly.sql
+++ b/regress/sql-mm-curvepoly.sql
@@ -181,90 +181,54 @@ UPDATE public.curvepolygon
                 0 1,
                 -1 0))');
 
--- These tests will fail on different architectures
--- We need a way to handle multiple byte orderings
---SELECT 'asbinary01', encode(asbinary(the_geom_2d), 'hex') FROM public.curvepolygon;
---SELECT 'asbinary02', encode(asbinary(the_geom_3dm), 'hex') FROM public.curvepolygon;
---SELECT 'asbinary03', encode(asbinary(the_geom_3dz), 'hex') FROM public.curvepolygon;
---SELECT 'asbinary04', encode(asbinary(the_geom_4d), 'hex') FROM public.curvepolygon;
---
---SELECT 'asewkb01', encode(asewkb(the_geom_2d), 'hex') FROM public.curvepolygon;
---SELECT 'asewkb02', encode(asewkb(the_geom_3dm), 'hex') FROM public.curvepolygon;
---SELECT 'asewkb03', encode(asewkb(the_geom_3dz), 'hex') FROM public.curvepolygon;
---SELECT 'asewkb04', encode(asewkb(the_geom_4d), 'hex') FROM public.curvepolygon;
+SELECT 'asbinary01', encode(ST_AsBinary(the_geom_2d, 'ndr'), 'hex') FROM public.curvepolygon;
+SELECT 'asbinary02', encode(ST_AsBinary(the_geom_3dm, 'xdr'), 'hex') FROM public.curvepolygon;
+SELECT 'asbinary03', encode(ST_AsBinary(the_geom_3dz, 'ndr'), 'hex') FROM public.curvepolygon;
+SELECT 'asbinary04', encode(ST_AsBinary(the_geom_4d, 'xdr'), 'hex') FROM public.curvepolygon;
 
-SELECT 'ST_CurveToLine-201',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'ST_CurveToLine-202',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'ST_CurveToLine-203',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'ST_CurveToLine-204',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'asewkb01', encode(ST_AsEWKB(the_geom_2d, 'xdr'), 'hex') FROM public.curvepolygon;
+SELECT 'asewkb02', encode(ST_AsEWKB(the_geom_3dm, 'ndr'), 'hex') FROM public.curvepolygon;
+SELECT 'asewkb03', encode(ST_AsEWKB(the_geom_3dz, 'xdr'), 'hex') FROM public.curvepolygon;
+SELECT 'asewkb04', encode(ST_AsEWKB(the_geom_4d, 'ndr'), 'hex') FROM public.curvepolygon;
 
-SELECT 'ST_CurveToLine-401',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'ST_CurveToLine-402',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'ST_CurveToLine-403',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'ST_CurveToLine-404',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine-201',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine-202',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine-203',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine-204',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
 
-SELECT 'ST_CurveToLine01',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'ST_CurveToLine02',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'ST_CurveToLine03',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'ST_CurveToLine04',ST_asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine-401',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine-402',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine-403',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine-404',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
 
--- Removed due to descrepencies between hardware
---SELECT 'box2d01', box2d(the_geom_2d) FROM public.curvepolygon;
---SELECT 'box2d02', box2d(the_geom_3dm) FROM public.curvepolygon;
---SELECT 'box2d03', box2d(the_geom_3dz) FROM public.curvepolygon;
---SELECT 'box2d04', box2d(the_geom_4d) FROM public.curvepolygon;
-
---SELECT 'box3d01', box3d(the_geom_2d) FROM public.curvepolygon;
---SELECT 'box3d02', box3d(the_geom_3dm) FROM public.curvepolygon;
---SELECT 'box3d03', box3d(the_geom_3dz) FROM public.curvepolygon;
---SELECT 'box3d04', box3d(the_geom_4d) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine01',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine02',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine03',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'ST_CurveToLine04',ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
 
 -- TODO: ST_SnapToGrid is required to remove platform dependent precision
 -- issues.  Until ST_SnapToGrid is updated to work against curves, these
 -- tests cannot be run.
---SELECT 'ST_LineToCurve01',ST_asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_2d))) FROM public.curvepolygon;
---SELECT 'ST_LineToCurve02',ST_asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dm))) FROM public.curvepolygon;
---SELECT 'ST_LineToCurve03',ST_asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dz))) FROM public.curvepolygon;
---SELECT 'ST_LineToCurve04',ST_asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_4d))) FROM public.curvepolygon;
+--SELECT 'ST_LineToCurve01',ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_2d))) FROM public.curvepolygon;
+--SELECT 'ST_LineToCurve02',ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_3dm))) FROM public.curvepolygon;
+--SELECT 'ST_LineToCurve03',ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_3dz))) FROM public.curvepolygon;
+--SELECT 'ST_LineToCurve04',ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_4d))) FROM public.curvepolygon;
 
 -- Repeat tests with new function names.
-SELECT 'astext01', ST_astext(the_geom_2d) FROM public.curvepolygon;
-SELECT 'astext02', ST_astext(the_geom_3dm) FROM public.curvepolygon;
-SELECT 'astext03', ST_astext(the_geom_3dz) FROM public.curvepolygon;
-SELECT 'astext04', ST_astext(the_geom_4d) FROM public.curvepolygon;
-
-SELECT 'asewkt01', ST_asewkt(the_geom_2d) FROM public.curvepolygon;
-SELECT 'asewkt02', ST_asewkt(the_geom_3dm) FROM public.curvepolygon;
-SELECT 'asewkt03', ST_asewkt(the_geom_3dz) FROM public.curvepolygon;
-SELECT 'asewkt04', ST_asewkt(the_geom_4d) FROM public.curvepolygon;
-
--- These tests will fail on different architectures
--- We need a way to handle multiple byte orderings
---SELECT 'asbinary01', encode(ST_asbinary(the_geom_2d), 'hex') FROM public.curvepolygon;
---SELECT 'asbinary02', encode(ST_asbinary(the_geom_3dm), 'hex') FROM public.curvepolygon;
---SELECT 'asbinary03', encode(ST_asbinary(the_geom_3dz), 'hex') FROM public.curvepolygon;
---SELECT 'asbinary04', encode(ST_asbinary(the_geom_4d), 'hex') FROM public.curvepolygon;
---
---SELECT 'asewkb01', encode(ST_asewkb(the_geom_2d), 'hex') FROM public.curvepolygon;
---SELECT 'asewkb02', encode(ST_asewkb(the_geom_3dm), 'hex') FROM public.curvepolygon;
---SELECT 'asewkb03', encode(ST_asewkb(the_geom_3dz), 'hex') FROM public.curvepolygon;
---SELECT 'asewkb04', encode(ST_asewkb(the_geom_4d), 'hex') FROM public.curvepolygon;
-
--- Removed due to descrepencies between hardware
---SELECT 'box2d01', ST_box2d(the_geom_2d) FROM public.curvepolygon;
---SELECT 'box2d02', ST_box2d(the_geom_3dm) FROM public.curvepolygon;
---SELECT 'box2d03', ST_box2d(the_geom_3dz) FROM public.curvepolygon;
---SELECT 'box2d04', ST_box2d(the_geom_4d) FROM public.curvepolygon;
+SELECT 'astext01', ST_AsText(the_geom_2d) FROM public.curvepolygon;
+SELECT 'astext02', ST_AsText(the_geom_3dm) FROM public.curvepolygon;
+SELECT 'astext03', ST_AsText(the_geom_3dz) FROM public.curvepolygon;
+SELECT 'astext04', ST_AsText(the_geom_4d) FROM public.curvepolygon;
 
---SELECT 'box3d01', ST_box3d(the_geom_2d) FROM public.curvepolygon;
---SELECT 'box3d02', ST_box3d(the_geom_3dm) FROM public.curvepolygon;
---SELECT 'box3d03', ST_box3d(the_geom_3dz) FROM public.curvepolygon;
---SELECT 'box3d04', ST_box3d(the_geom_4d) FROM public.curvepolygon;
+SELECT 'asewkt01', ST_AsEWKT(the_geom_2d) FROM public.curvepolygon;
+SELECT 'asewkt02', ST_AsEWKT(the_geom_3dm) FROM public.curvepolygon;
+SELECT 'asewkt03', ST_AsEWKT(the_geom_3dz) FROM public.curvepolygon;
+SELECT 'asewkt04', ST_AsEWKT(the_geom_4d) FROM public.curvepolygon;
 
-SELECT 'isValid01', ST_isValid(the_geom_2d) FROM public.curvepolygon;
-SELECT 'isValid02', ST_isValid(the_geom_3dm) FROM public.curvepolygon;
-SELECT 'isValid03', ST_isValid(the_geom_3dz) FROM public.curvepolygon;
-SELECT 'isValid04', ST_isValid(the_geom_4d) FROM public.curvepolygon;
+SELECT 'isValid01', ST_IsValid(the_geom_2d) FROM public.curvepolygon;
+SELECT 'isValid02', ST_IsValid(the_geom_3dm) FROM public.curvepolygon;
+SELECT 'isValid03', ST_IsValid(the_geom_3dz) FROM public.curvepolygon;
+SELECT 'isValid04', ST_IsValid(the_geom_4d) FROM public.curvepolygon;
 
 SELECT 'dimension01', ST_dimension(the_geom_2d) FROM public.curvepolygon;
 SELECT 'dimension02', ST_dimension(the_geom_3dm) FROM public.curvepolygon;
@@ -276,10 +240,10 @@ SELECT 'SRID02', ST_SRID(the_geom_3dm) FROM public.curvepolygon;
 SELECT 'SRID03', ST_SRID(the_geom_3dz) FROM public.curvepolygon;
 SELECT 'SRID04', ST_SRID(the_geom_4d) FROM public.curvepolygon;
 
-SELECT 'envelope01', ST_asText(ST_snapToGrid(ST_envelope(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'envelope02', ST_asText(ST_snapToGrid(ST_envelope(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'envelope03', ST_asText(ST_snapToGrid(ST_envelope(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
-SELECT 'envelope04', ST_asText(ST_snapToGrid(ST_envelope(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'envelope01', ST_AsText(ST_snapToGrid(ST_envelope(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'envelope02', ST_AsText(ST_snapToGrid(ST_envelope(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'envelope03', ST_AsText(ST_snapToGrid(ST_envelope(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
+SELECT 'envelope04', ST_AsText(ST_snapToGrid(ST_envelope(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.curvepolygon;
 
 SELECT 'startPoint01', (ST_startPoint(the_geom_2d) is null) FROM public.curvepolygon;
 SELECT 'startPoint02', (ST_startPoint(the_geom_3dm) is null) FROM public.curvepolygon;
@@ -291,30 +255,26 @@ SELECT 'endPoint02', (ST_endPoint(the_geom_3dm) is null) FROM public.curvepolygo
 SELECT 'endPoint03', (ST_endPoint(the_geom_3dz) is null) FROM public.curvepolygon;
 SELECT 'endPoint04', (ST_endPoint(the_geom_4d) is null) FROM public.curvepolygon;
 
-SELECT 'exteriorRing01', ST_asEWKT(ST_exteriorRing(the_geom_2d)) FROM public.curvepolygon;
-SELECT 'exteriorRing02', ST_asEWKT(ST_exteriorRing(the_geom_3dm)) FROM public.curvepolygon;
-SELECT 'exteriorRing03', ST_asEWKT(ST_exteriorRing(the_geom_3dz)) FROM public.curvepolygon;
-SELECT 'exteriorRing04', ST_asEWKT(ST_exteriorRing(the_geom_4d)) FROM public.curvepolygon;
+SELECT 'exteriorRing01', ST_AsEWKT(ST_exteriorRing(the_geom_2d)) FROM public.curvepolygon;
+SELECT 'exteriorRing02', ST_AsEWKT(ST_exteriorRing(the_geom_3dm)) FROM public.curvepolygon;
+SELECT 'exteriorRing03', ST_AsEWKT(ST_exteriorRing(the_geom_3dz)) FROM public.curvepolygon;
+SELECT 'exteriorRing04', ST_AsEWKT(ST_exteriorRing(the_geom_4d)) FROM public.curvepolygon;
 
 SELECT 'numInteriorRings01', ST_numInteriorRings(the_geom_2d) FROM public.curvepolygon;
 SELECT 'numInteriorRings02', ST_numInteriorRings(the_geom_3dm) FROM public.curvepolygon;
 SELECT 'numInteriorRings03', ST_numInteriorRings(the_geom_3dz) FROM public.curvepolygon;
 SELECT 'numInteriorRings04', ST_numInteriorRings(the_geom_4d) FROM public.curvepolygon;
 
-SELECT 'interiorRingN-101', ST_asEWKT(ST_interiorRingN(the_geom_2d, 1)) FROM public.curvepolygon;
-SELECT 'interiorRingN-102', ST_asEWKT(ST_interiorRingN(the_geom_3dm, 1)) FROM public.curvepolygon;
-SELECT 'interiorRingN-103', ST_asEWKT(ST_interiorRingN(the_geom_3dz, 1)) FROM public.curvepolygon;
-SELECT 'interiorRingN-104', ST_asEWKT(ST_interiorRingN(the_geom_4d, 1)) FROM public.curvepolygon;
+SELECT 'interiorRingN-101', ST_AsEWKT(ST_InteriorRingN(the_geom_2d, 1)) FROM public.curvepolygon;
+SELECT 'interiorRingN-102', ST_AsEWKT(ST_InteriorRingN(the_geom_3dm, 1)) FROM public.curvepolygon;
+SELECT 'interiorRingN-103', ST_AsEWKT(ST_InteriorRingN(the_geom_3dz, 1)) FROM public.curvepolygon;
+SELECT 'interiorRingN-104', ST_AsEWKT(ST_InteriorRingN(the_geom_4d, 1)) FROM public.curvepolygon;
 
-SELECT 'interiorRingN-201', ST_asEWKT(ST_interiorRingN(the_geom_2d, 2)) FROM public.curvepolygon;
-SELECT 'interiorRingN-202', ST_asEWKT(ST_interiorRingN(the_geom_3dm, 2)) FROM public.curvepolygon;
-SELECT 'interiorRingN-203', ST_asEWKT(ST_interiorRingN(the_geom_3dz, 2)) FROM public.curvepolygon;
-SELECT 'interiorRingN-204', ST_asEWKT(ST_interiorRingN(the_geom_4d, 2)) FROM public.curvepolygon;
+SELECT 'interiorRingN-201', ST_AsEWKT(ST_InteriorRingN(the_geom_2d, 2)) FROM public.curvepolygon;
+SELECT 'interiorRingN-202', ST_AsEWKT(ST_InteriorRingN(the_geom_3dm, 2)) FROM public.curvepolygon;
+SELECT 'interiorRingN-203', ST_AsEWKT(ST_InteriorRingN(the_geom_3dz, 2)) FROM public.curvepolygon;
+SELECT 'interiorRingN-204', ST_AsEWKT(ST_InteriorRingN(the_geom_4d, 2)) FROM public.curvepolygon;
 
-SELECT DropGeometryColumn('public', 'curvepolygon', 'the_geom_2d');
-SELECT DropGeometryColumn('public', 'curvepolygon', 'the_geom_3dm');
-SELECT DropGeometryColumn('public', 'curvepolygon', 'the_geom_3dz');
-SELECT DropGeometryColumn('public', 'curvepolygon', 'the_geom_4d');
 DROP TABLE public.curvepolygon;
 
 SELECT 'valid wkt curve polygon 1', encode(ST_AsBinary(ST_GeomFromEWKT('CURVEPOLYGON((143.62025166838282 -30.037497356076827, 142.92857147299705 -32.75101196874403, 145.96132309891922 -34.985671061528784, 149.57565307617188 -33.41153335571289, 149.41972407584802 -29.824672680573517, 146.1209416055467 -30.19711586270431, 143.62025166838282 -30.037497356076827))'),'ndr'),'hex');
@@ -331,11 +291,11 @@ SELECT 'invalid wkt curve polygon 8', ST_GeomFromEWKT('CURVEPOLYGON(CIRCULARSTRI
 SELECT 'invalid wkt curve polygon 9', ST_GeomFromEWKT('CURVEPOLYGON((143.62025166838282 -30.037497356076827, 142.92857147299705 -32.75101196874403, 145.96132309891922 -34.985671061528784, 149.57565307617188 -33.41153335571289, 149.41972407584802 -29.824672680573517, 146.1209416055467 -30.19711586270431, 143.62025166838282 -30.037497356076827),COMPOUNDCURVE(CIRCULARSTRING(144.84399355252685 -31.26123924022086, 144.20551952601693 -32.27215644886158, 145.55230712890625 -33.49203872680664),C [...]
 SELECT 'invalid wkt curve polygon a', ST_GeomFromEWKT('CURVEPOLYGON((143.62025166838282 -30.037497356076827, 142.92857147299705 -32.75101196874403, 145.96132309891922 -34.985671061528784, 149.57565307617188 -33.41153335571289, 149.41972407584802 -29.824672680573517, 146.1209416055467 -30.19711586270431, 143.62025166838282 -30.037497356076827),COMPOUNDCURVE(CIRCULARSTRING(144.84399355252685 -31.26123924022086, 144.20551952601693 -32.27215644886158, 145.55230712890625 -33.49203872680664),( [...]
 SELECT 'invalid wkt curve polygon b', ST_GeomFromEWKT('CURVEPOLYGON((143.62025166838282 -30.037497356076827, 142.92857147299705 -32.75101196874403, 145.96132309891922 -34.985671061528784, 149.57565307617188 -33.41153335571289, 149.41972407584802 -29.824672680573517, 146.1209416055467 -30.19711586270431, 143.62025166838282 -30.037497356076827),COMPOUNDCURVE(CIRCULARSTRING(144.84399355252685 -31.26123924022086, 144.20551952601693 -32.27215644886158, 145.55230712890625 -33.49203872680664),( [...]
-SELECT 'valid ewkb curve polygon 1', ST_asEWKT(ST_GeomFromEWKB(decode('010a00000001000000010200000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec0', 'hex')));
-SELECT 'valid ewkb curve polygon 2', ST_asEWKT(ST_GeomFromEWKB(decode('010a00000002000000010200000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec00102000000060000006844c4fe011b6240342e2993e0423fc0d45daf9d93066240c4a0c305d62240c000000080ac31624000000020fbbe40c0000000e0107f6240000000c0a10440c04e1c0c14624c624 [...]
-SELECT 'valid ewkb curve polygon 3', ST_asEWKT(ST_GeomFromEWKB(decode('010a00000001000000010800000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec0', 'hex')));
-SELECT 'valid ewkb curve polygon 4', ST_asEWKT(ST_GeomFromEWKB(decode('010a00000002000000010800000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec00102000000060000006844c4fe011b6240342e2993e0423fc0d45daf9d93066240c4a0c305d62240c000000080ac31624000000020fbbe40c0000000e0107f6240000000c0a10440c04e1c0c14624c624 [...]
-SELECT 'valid ewkb curve polygon 5', ST_asEWKT(ST_GeomFromEWKB(decode('010a00000002000000010200000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec00109000000030000000108000000030000006844c4fe011b6240342e2993e0423fc0d45daf9d93066240c4a0c305d62240c000000080ac31624000000020fbbe40c001020000000200000000000080ac3 [...]
+SELECT 'valid ewkb curve polygon 1', ST_AsEWKT(ST_GeomFromEWKB(decode('010a00000001000000010200000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec0', 'hex')));
+SELECT 'valid ewkb curve polygon 2', ST_AsEWKT(ST_GeomFromEWKB(decode('010a00000002000000010200000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec00102000000060000006844c4fe011b6240342e2993e0423fc0d45daf9d93066240c4a0c305d62240c000000080ac31624000000020fbbe40c0000000e0107f6240000000c0a10440c04e1c0c14624c624 [...]
+SELECT 'valid ewkb curve polygon 3', ST_AsEWKT(ST_GeomFromEWKB(decode('010a00000001000000010800000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec0', 'hex')));
+SELECT 'valid ewkb curve polygon 4', ST_AsEWKT(ST_GeomFromEWKB(decode('010a00000002000000010800000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec00102000000060000006844c4fe011b6240342e2993e0423fc0d45daf9d93066240c4a0c305d62240c000000080ac31624000000020fbbe40c0000000e0107f6240000000c0a10440c04e1c0c14624c624 [...]
+SELECT 'valid ewkb curve polygon 5', ST_AsEWKT(ST_GeomFromEWKB(decode('010a00000002000000010200000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec00109000000030000000108000000030000006844c4fe011b6240342e2993e0423fc0d45daf9d93066240c4a0c305d62240c000000080ac31624000000020fbbe40c001020000000200000000000080ac3 [...]
 SELECT 'valid curve 6', encode(ST_AsBinary(ST_GeomFromText('CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, 1 4, 0 0)), CIRCULARSTRING(1.7 1, 1.4 0.4, 1.7 1) )'),'ndr'),'hex');
 SELECT 'valid curve 7', encode(ST_AsBinary(ST_GeomFromText('CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 4 5, 1 4, 0 0)), (1.7 1, 1.4 0.4, 1.7 1) )'),'ndr'),'hex');
 SELECT 'valid curve 8', encode(ST_AsBinary(ST_GeomFromText('CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0, 2 1, 2 3, 4 3),(4 3, 0 0)), CIRCULARSTRING(1.7 1, 1.4 0.4, 1.7 1) )'),'ndr'),'hex');
diff --git a/regress/sql-mm-curvepoly_expected b/regress/sql-mm-curvepoly_expected
index 082ff70..90bb282 100644
--- a/regress/sql-mm-curvepoly_expected
+++ b/regress/sql-mm-curvepoly_expected
@@ -7,6 +7,14 @@ geometrytype03|CURVEPOLYGONM
 ndims04|2
 geometrytype04|CURVEPOLYGON
 ndims05|4
+asbinary01|010a0000000200000001080000000700000000000000000000c00000000000000000000000000000f0bf000000000000f0bf00000000000000000000000000000000000000000000f03f000000000000f0bf000000000000004000000000000000000000000000000000000000000000004000000000000000c00000000000000000010200000005000000000000000000f0bf00000000000000000000000000000000000000000000e03f000000000000f03f00000000000000000000000000000000000000000000f03f000000000000f0bf0000000000000000
+asbinary02|00000007da0000000200000007d800000007c00000000000000000000000000000000000000000000000bff0000000000000bff000000000000040000000000000000000000000000000000000000000000040100000000000003ff0000000000000bff00000000000004018000000000000400000000000000000000000000000004020000000000000000000000000000040000000000000004010000000000000c0000000000000000000000000000000000000000000000000000007d200000005bff00000000000000000000000000000400000000000000000000000000000003fe000000000000040100000000 [...]
+asbinary03|01f20300000200000001f00300000700000000000000000000c000000000000000000000000000000000000000000000f0bf000000000000f0bf000000000000f03f000000000000000000000000000000000000000000000040000000000000f03f000000000000f0bf000000000000084000000000000000400000000000000000000000000000104000000000000000000000000000000040000000000000004000000000000000c00000000000000000000000000000000001ea03000005000000000000000000f0bf0000000000000000000000000000f03f0000000000000000000000000000e03f00000000000 [...]
+asbinary04|0000000bc2000000020000000bc000000007c000000000000000000000000000000000000000000000000000000000000000bff0000000000000bff00000000000003ff0000000000000400000000000000000000000000000000000000000000000400000000000000040100000000000003ff0000000000000bff00000000000004008000000000000401800000000000040000000000000000000000000000000401000000000000040200000000000000000000000000000400000000000000040000000000000004010000000000000c000000000000000000000000000000000000000000000000000000000000 [...]
+asewkb01|000000000a00000002000000000800000007c0000000000000000000000000000000bff0000000000000bff0000000000000000000000000000000000000000000003ff0000000000000bff00000000000004000000000000000000000000000000000000000000000004000000000000000c0000000000000000000000000000000000000000200000005bff0000000000000000000000000000000000000000000003fe00000000000003ff0000000000000000000000000000000000000000000003ff0000000000000bff00000000000000000000000000000
+asewkb02|010a0000400200000001080000400700000000000000000000c000000000000000000000000000000000000000000000f0bf000000000000f0bf0000000000000040000000000000000000000000000000000000000000001040000000000000f03f000000000000f0bf000000000000184000000000000000400000000000000000000000000000204000000000000000000000000000000040000000000000104000000000000000c000000000000000000000000000000000010200004005000000000000000000f0bf000000000000000000000000000000400000000000000000000000000000e03f0000000000001 [...]
+asewkb03|008000000a00000002008000000800000007c00000000000000000000000000000000000000000000000bff0000000000000bff00000000000003ff00000000000000000000000000000000000000000000040000000000000003ff0000000000000bff00000000000004008000000000000400000000000000000000000000000004010000000000000000000000000000040000000000000004000000000000000c00000000000000000000000000000000000000000000000008000000200000005bff000000000000000000000000000003ff000000000000000000000000000003fe00000000000004000000000000 [...]
+asewkb04|010a0000c00200000001080000c00700000000000000000000c0000000000000000000000000000000000000000000000000000000000000f0bf000000000000f0bf000000000000f03f00000000000000400000000000000000000000000000000000000000000000400000000000001040000000000000f03f000000000000f0bf000000000000084000000000000018400000000000000040000000000000000000000000000010400000000000002040000000000000000000000000000000400000000000000040000000000000104000000000000000c000000000000000000000000000000000000000000000000 [...]
 ST_CurveToLine-201|POLYGON((-2 0,-1.70710678 -0.70710678,-1 -1,-0.29289322 -0.70710678,0 0,0.29289322 -0.70710678,1 -1,1.70710678 -0.70710678,2 0,1.41421356 1.41421356,0 2,-1.41421356 1.41421356,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0))
 ST_CurveToLine-202|POLYGONM((-2 0 0,-1.70710678 -0.70710678 1,-1 -1 2,-0.29289322 -0.70710678 3,0 0 4,0.29289322 -0.70710678 5,1 -1 6,1.70710678 -0.70710678 7,2 0 8,1.41421356 1.41421356 6,0 2 4,-1.41421356 1.41421356 2,-2 0 0),(-1 0 2,0 0.5 4,1 0 6,0 1 4,-1 0 2))
 ST_CurveToLine-203|POLYGON((-2 0 0,-1.70710678 -0.70710678 0.5,-1 -1 1,-0.29289322 -0.70710678 1.5,0 0 2,0.29289322 -0.70710678 2.5,1 -1 3,1.70710678 -0.70710678 3.5,2 0 4,1.41421356 1.41421356 3,0 2 2,-1.41421356 1.41421356 1,-2 0 0),(-1 0 1,0 0.5 2,1 0 3,0 1 3,-1 0 1))
@@ -27,10 +35,10 @@ asewkt01|CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0
 asewkt02|CURVEPOLYGONM(CIRCULARSTRINGM(-2 0 0,-1 -1 2,0 0 4,1 -1 6,2 0 8,0 2 4,-2 0 0),(-1 0 2,0 0.5 4,1 0 6,0 1 4,-1 0 2))
 asewkt03|CURVEPOLYGON(CIRCULARSTRING(-2 0 0,-1 -1 1,0 0 2,1 -1 3,2 0 4,0 2 2,-2 0 0),(-1 0 1,0 0.5 2,1 0 3,0 1 3,-1 0 1))
 asewkt04|CURVEPOLYGON(CIRCULARSTRING(-2 0 0 0,-1 -1 1 2,0 0 2 4,1 -1 3 6,2 0 4 8,0 2 2 4,-2 0 0 0),(-1 0 1 2,0 0.5 2 4,1 0 3 6,0 1 3 4,-1 0 1 2))
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
+isValid01|t
+isValid02|t
+isValid03|t
+isValid04|t
 dimension01|2
 dimension02|2
 dimension03|2
@@ -67,10 +75,6 @@ interiorRingN-201|
 interiorRingN-202|
 interiorRingN-203|
 interiorRingN-204|
-public.curvepolygon.the_geom_2d effectively removed.
-public.curvepolygon.the_geom_3dm effectively removed.
-public.curvepolygon.the_geom_3dz effectively removed.
-public.curvepolygon.the_geom_4d effectively removed.
 valid wkt curve polygon 1|010a00000001000000010200000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec0
 valid wkt curve polygon 2|010a00000002000000010200000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec00102000000060000006844c4fe011b6240342e2993e0423fc0d45daf9d93066240c4a0c305d62240c000000080ac31624000000020fbbe40c0000000e0107f6240000000c0a10440c04e1c0c14624c6240bf3fb6405c793fc06844c4fe011b6240342e2993e0423fc0
 valid wkt curve polygon 3|010a00000001000000010800000007000000ccdf061ad9f3614054093e6d99093ec0ab9085dbb6dd614081540229216040c0ebd7a828c33e62409bf026782a7e41c0000000c06bb2624000000020adb440c08e632f616ead6240c9f7b0bf1dd33dc09011eec0de4362407dd6672f76323ec0ccdf061ad9f3614054093e6d99093ec0
diff --git a/regress/sql-mm-multicurve.sql b/regress/sql-mm-multicurve.sql
index 044631c..e020d74 100644
--- a/regress/sql-mm-multicurve.sql
+++ b/regress/sql-mm-multicurve.sql
@@ -124,89 +124,54 @@ UPDATE public.multicurve
                 0.26794919243112270647255365849413 1, 
                 0.5857864376269049511983112757903 1.4142135623730950488016887242097))');
 
--- These tests will fail on different architectures
--- We need a way to handle multiple byte orderings
---SELECT 'asbinary01', encode(asbinary(the_geom_2d), 'hex') FROM public.multicurve;
---SELECT 'asbinary02', encode(asbinary(the_geom_3dm), 'hex') FROM public.multicurve;
---SELECT 'asbinary03', encode(asbinary(the_geom_3dz), 'hex') FROM public.multicurve;
---SELECT 'asbinary04', encode(asbinary(the_geom_4d), 'hex') FROM public.multicurve;
---
---SELECT 'asewkb01', encode(asewkb(the_geom_2d), 'hex') FROM public.multicurve;
---SELECT 'asewkb02', encode(asewkb(the_geom_3dm), 'hex') FROM public.multicurve;
---SELECT 'asewkb03', encode(asewkb(the_geom_3dz), 'hex') FROM public.multicurve;
---SELECT 'asewkb04', encode(asewkb(the_geom_4d), 'hex') FROM public.multicurve;
-
-SELECT 'ST_CurveToLine-201', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-SELECT 'ST_CurveToLine-202', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-SELECT 'ST_CurveToLine-203', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-SELECT 'ST_CurveToLine-204', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-
-SELECT 'ST_CurveToLine-401', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-SELECT 'ST_CurveToLine-402', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-SELECT 'ST_CurveToLine-403', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-SELECT 'ST_CurveToLine-404', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-
-SELECT 'ST_CurveToLine01', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-SELECT 'ST_CurveToLine02', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-SELECT 'ST_CurveToLine03', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-SELECT 'ST_CurveToLine04', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
-
--- Removed due to descrepencies between hardware
---SELECT 'box2d01', box2d(the_geom_2d) FROM public.multicurve;
---SELECT 'box2d02', box2d(the_geom_3dm) FROM public.multicurve;
---SELECT 'box2d03', box2d(the_geom_3dz) FROM public.multicurve;
---SELECT 'box2d04', box2d(the_geom_4d) FROM public.multicurve;
-
---SELECT 'box3d01', box3d(the_geom_2d) FROM public.multicurve;
---SELECT 'box3d02', box3d(the_geom_3dm) FROM public.multicurve;
---SELECT 'box3d03', box3d(the_geom_3dz) FROM public.multicurve;
---SELECT 'box3d04', box3d(the_geom_4d) FROM public.multicurve;
+SELECT 'asbinary01', encode(ST_AsBinary(the_geom_2d, 'xdr'), 'hex') FROM public.multicurve;
+SELECT 'asbinary02', encode(ST_AsBinary(the_geom_3dm, 'ndr'), 'hex') FROM public.multicurve;
+SELECT 'asbinary03', encode(ST_AsBinary(the_geom_3dz, 'xdr'), 'hex') FROM public.multicurve;
+SELECT 'asbinary04', encode(ST_AsBinary(the_geom_4d, 'ndr'), 'hex') FROM public.multicurve;
+
+SELECT 'asewkb01', encode(ST_AsEWKB(the_geom_2d, 'ndr'), 'hex') FROM public.multicurve;
+SELECT 'asewkb02', encode(ST_AsEWKB(the_geom_3dm, 'xdr'), 'hex') FROM public.multicurve;
+SELECT 'asewkb03', encode(ST_AsEWKB(the_geom_3dz, 'ndr'), 'hex') FROM public.multicurve;
+SELECT 'asewkb04', encode(ST_AsEWKB(the_geom_4d, 'xdr'), 'hex') FROM public.multicurve;
+
+SELECT 'ST_CurveToLine-201', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+SELECT 'ST_CurveToLine-202', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+SELECT 'ST_CurveToLine-203', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+SELECT 'ST_CurveToLine-204', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+
+SELECT 'ST_CurveToLine-401', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+SELECT 'ST_CurveToLine-402', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+SELECT 'ST_CurveToLine-403', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+SELECT 'ST_CurveToLine-404', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+
+SELECT 'ST_CurveToLine01', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+SELECT 'ST_CurveToLine02', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+SELECT 'ST_CurveToLine03', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+SELECT 'ST_CurveToLine04', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multicurve;
+
 -- TODO: ST_SnapToGrid is required to remove platform dependent precision
 -- issues.  Until ST_SnapToGrid is updated to work against curves, these
 -- tests cannot be run.
---SELECT 'ST_LineToCurve01', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_2d))) FROM public.multicurve;
---SELECT 'ST_LineToCurve02', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dm))) FROM public.multicurve;
---SELECT 'ST_LineToCurve03', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dz))) FROM public.multicurve;
---SELECT 'ST_LineToCurve04', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_4d))) FROM public.multicurve;
+--SELECT 'ST_LineToCurve01', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_2d))) FROM public.multicurve;
+--SELECT 'ST_LineToCurve02', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_3dm))) FROM public.multicurve;
+--SELECT 'ST_LineToCurve03', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_3dz))) FROM public.multicurve;
+--SELECT 'ST_LineToCurve04', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_4d))) FROM public.multicurve;
 
 -- Repeat all tests with the new function names.
-SELECT 'astext01', ST_astext(the_geom_2d) FROM public.multicurve;
-SELECT 'astext02', ST_astext(the_geom_3dm) FROM public.multicurve;
-SELECT 'astext03', ST_astext(the_geom_3dz) FROM public.multicurve;
-SELECT 'astext04', ST_astext(the_geom_4d) FROM public.multicurve;
-
-SELECT 'asewkt01', ST_asewkt(the_geom_2d) FROM public.multicurve;
-SELECT 'asewkt02', ST_asewkt(the_geom_3dm) FROM public.multicurve;
-SELECT 'asewkt03', ST_asewkt(the_geom_3dz) FROM public.multicurve;
-SELECT 'asewkt04', ST_asewkt(the_geom_4d) FROM public.multicurve;
-
--- These tests will fail on different architectures
--- We need a way to handle multiple byte orderings
---SELECT 'asbinary01', encode(ST_asbinary(the_geom_2d), 'hex') FROM public.multicurve;
---SELECT 'asbinary02', encode(ST_asbinary(the_geom_3dm), 'hex') FROM public.multicurve;
---SELECT 'asbinary03', encode(ST_asbinary(the_geom_3dz), 'hex') FROM public.multicurve;
---SELECT 'asbinary04', encode(ST_asbinary(the_geom_4d), 'hex') FROM public.multicurve;
---
---SELECT 'asewkb01', encode(ST_asewkb(the_geom_2d), 'hex') FROM public.multicurve;
---SELECT 'asewkb02', encode(ST_asewkb(the_geom_3dm), 'hex') FROM public.multicurve;
---SELECT 'asewkb03', encode(ST_asewkb(the_geom_3dz), 'hex') FROM public.multicurve;
---SELECT 'asewkb04', encode(ST_asewkb(the_geom_4d), 'hex') FROM public.multicurve;
-
--- Removed due to descrepencies between hardware
---SELECT 'box2d01', ST_box2d(the_geom_2d) FROM public.multicurve;
---SELECT 'box2d02', ST_box2d(the_geom_3dm) FROM public.multicurve;
---SELECT 'box2d03', ST_box2d(the_geom_3dz) FROM public.multicurve;
---SELECT 'box2d04', ST_box2d(the_geom_4d) FROM public.multicurve;
-
---SELECT 'box3d01', ST_box3d(the_geom_2d) FROM public.multicurve;
---SELECT 'box3d02', ST_box3d(the_geom_3dm) FROM public.multicurve;
---SELECT 'box3d03', ST_box3d(the_geom_3dz) FROM public.multicurve;
---SELECT 'box3d04', ST_box3d(the_geom_4d) FROM public.multicurve;
-
-SELECT 'isValid01', ST_isValid(the_geom_2d) FROM public.multicurve;
-SELECT 'isValid02', ST_isValid(the_geom_3dm) FROM public.multicurve;
-SELECT 'isValid03', ST_isValid(the_geom_3dz) FROM public.multicurve;
-SELECT 'isValid04', ST_isValid(the_geom_4d) FROM public.multicurve;
+SELECT 'astext01', ST_AsText(the_geom_2d) FROM public.multicurve;
+SELECT 'astext02', ST_AsText(the_geom_3dm) FROM public.multicurve;
+SELECT 'astext03', ST_AsText(the_geom_3dz) FROM public.multicurve;
+SELECT 'astext04', ST_AsText(the_geom_4d) FROM public.multicurve;
+
+SELECT 'asewkt01', ST_AsEWKT(the_geom_2d) FROM public.multicurve;
+SELECT 'asewkt02', ST_AsEWKT(the_geom_3dm) FROM public.multicurve;
+SELECT 'asewkt03', ST_AsEWKT(the_geom_3dz) FROM public.multicurve;
+SELECT 'asewkt04', ST_AsEWKT(the_geom_4d) FROM public.multicurve;
+
+SELECT 'isValid01', ST_IsValid(the_geom_2d) FROM public.multicurve;
+SELECT 'isValid02', ST_IsValid(the_geom_3dm) FROM public.multicurve;
+SELECT 'isValid03', ST_IsValid(the_geom_3dz) FROM public.multicurve;
+SELECT 'isValid04', ST_IsValid(the_geom_4d) FROM public.multicurve;
 
 SELECT 'dimension01', ST_dimension(the_geom_2d) FROM public.multicurve;
 SELECT 'dimension02', ST_dimension(the_geom_3dm) FROM public.multicurve;
@@ -218,19 +183,20 @@ SELECT 'numGeometries02', ST_numGeometries(the_geom_3dm) FROM public.multicurve;
 SELECT 'numGeometries03', ST_numGeometries(the_geom_3dz) FROM public.multicurve;
 SELECT 'numGeometries04', ST_numGeometries(the_geom_4d) FROM public.multicurve;
 
-SELECT 'geometryN-201', ST_asEWKT(ST_geometryN(the_geom_2d, 2)) FROM public.multicurve;
-SELECT 'geometryN-202', ST_asEWKT(ST_geometryN(the_geom_3dm, 2)) FROM public.multicurve;
-SELECT 'geometryN-203', ST_asEWKT(ST_geometryN(the_geom_3dz, 2)) FROM public.multicurve;
-SELECT 'geometryN-204', ST_asEWKT(ST_geometryN(the_geom_4d, 2)) FROM public.multicurve;
+SELECT 'geometryN-201', ST_AsEWKT(ST_geometryN(the_geom_2d, 2)) FROM public.multicurve;
+SELECT 'geometryN-202', ST_AsEWKT(ST_geometryN(the_geom_3dm, 2)) FROM public.multicurve;
+SELECT 'geometryN-203', ST_AsEWKT(ST_geometryN(the_geom_3dz, 2)) FROM public.multicurve;
+SELECT 'geometryN-204', ST_AsEWKT(ST_geometryN(the_geom_4d, 2)) FROM public.multicurve;
 
-SELECT 'geometryN-301', (ST_asEWKT(ST_geometryN(the_geom_2d, 3)) is null) FROM public.multicurve;
-SELECT 'geometryN-302', (ST_asEWKT(ST_geometryN(the_geom_3dm, 3)) is null) FROM public.multicurve;
-SELECT 'geometryN-303', (ST_asEWKT(ST_geometryN(the_geom_3dz, 3)) is null) FROM public.multicurve;
-SELECT 'geometryN-304', (ST_asEWKT(ST_geometryN(the_geom_4d, 3)) is null) FROM public.multicurve;
+SELECT 'geometryN-301', (ST_AsEWKT(ST_geometryN(the_geom_2d, 3)) is null) FROM public.multicurve;
+SELECT 'geometryN-302', (ST_AsEWKT(ST_geometryN(the_geom_3dm, 3)) is null) FROM public.multicurve;
+SELECT 'geometryN-303', (ST_AsEWKT(ST_geometryN(the_geom_3dz, 3)) is null) FROM public.multicurve;
+SELECT 'geometryN-304', (ST_AsEWKT(ST_geometryN(the_geom_4d, 3)) is null) FROM public.multicurve;
 
 SELECT DropGeometryColumn('public', 'multicurve', 'the_geom_2d');
 SELECT DropGeometryColumn('public', 'multicurve', 'the_geom_3dm');
 SELECT DropGeometryColumn('public', 'multicurve', 'the_geom_3dz');
 SELECT DropGeometryColumn('public', 'multicurve', 'the_geom_4d');
+
 DROP TABLE public.multicurve;
 
diff --git a/regress/sql-mm-multicurve_expected b/regress/sql-mm-multicurve_expected
index 457c0ef..7c7f2c3 100644
--- a/regress/sql-mm-multicurve_expected
+++ b/regress/sql-mm-multicurve_expected
@@ -6,6 +6,14 @@ ndims03|3
 geometrytype03|MULTICURVEM
 ndims04|2
 geometrytype04|MULTICURVE
+asbinary01|000000000b0000000200000000020000000440140000000000004014000000000000400800000000000040140000000000004008000000000000400800000000000000000000000000004008000000000000000000000800000003000000000000000000000000000000003fd126145e9ecd563ff00000000000003fe2bec3330188673ff6a09e667f3bcd
+asbinary02|01db0700000200000001d20700000400000000000000000014400000000000001440000000000000084000000000000008400000000000001440000000000000004000000000000008400000000000000840000000000000f03f00000000000000000000000000000840000000000000f03f01d80700000300000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f00000000000000c067880133c3bee23fcd3b7f669ea0f63f0000000000000040
+asbinary03|00000003f30000000200000003ea00000004401400000000000040140000000000003ff0000000000000400800000000000040140000000000004000000000000000400800000000000040080000000000004008000000000000000000000000000040080000000000003ff000000000000000000003f0000000030000000000000000000000000000000000000000000000003fd126145e9ecd563ff000000000000040080000000000003fe2bec3330188673ff6a09e667f3bcd3ff0000000000000
+asbinary04|01c30b00000200000001ba0b00000400000000000000000014400000000000001440000000000000f03f00000000000008400000000000000840000000000000144000000000000000400000000000000040000000000000084000000000000008400000000000000840000000000000f03f00000000000000000000000000000840000000000000f03f000000000000f03f01c00b000003000000000000000000000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f000000000000084000000000000000c067880133c3bee23fcd3b7f669ea0f63f00000000000 [...]
+asewkb01|010b00000002000000010200000004000000000000000000144000000000000014400000000000000840000000000000144000000000000008400000000000000840000000000000000000000000000008400108000000030000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f67880133c3bee23fcd3b7f669ea0f63f
+asewkb02|004000000b00000002004000000200000004401400000000000040140000000000004008000000000000400800000000000040140000000000004000000000000000400800000000000040080000000000003ff0000000000000000000000000000040080000000000003ff00000000000000040000008000000030000000000000000000000000000000000000000000000003fd126145e9ecd563ff0000000000000c0000000000000003fe2bec3330188673ff6a09e667f3bcd4000000000000000
+asewkb03|010b0000800200000001020000800400000000000000000014400000000000001440000000000000f03f00000000000008400000000000001440000000000000004000000000000008400000000000000840000000000000084000000000000000000000000000000840000000000000f03f01080000800300000000000000000000000000000000000000000000000000000056cd9e5e1426d13f000000000000f03f000000000000084067880133c3bee23fcd3b7f669ea0f63f000000000000f03f
+asewkb04|00c000000b0000000200c000000200000004401400000000000040140000000000003ff0000000000000400800000000000040080000000000004014000000000000400000000000000040000000000000004008000000000000400800000000000040080000000000003ff0000000000000000000000000000040080000000000003ff00000000000003ff000000000000000c00000080000000300000000000000000000000000000000000000000000000000000000000000003fd126145e9ecd563ff00000000000004008000000000000c0000000000000003fe2bec3330188673ff6a09e667f3bcd3ff0000000000 [...]
 ST_CurveToLine-201|MULTILINESTRING((5 5,3 5,3 3,0 3),(0 0,0.58578644 1.41421356))
 ST_CurveToLine-202|MULTILINESTRINGM((5 5 3,3 5 2,3 3 1,0 3 1),(0 0 0,0.58578644 1.41421356 2))
 ST_CurveToLine-203|MULTILINESTRING((5 5 1,3 5 2,3 3 3,0 3 1),(0 0 0,0.58578644 1.41421356 1))
@@ -26,10 +34,10 @@ asewkt01|MULTICURVE((5 5,3 5,3 3,0 3),CIRCULARSTRING(0 0,0.267949192431123 1,0.5
 asewkt02|MULTICURVEM((5 5 3,3 5 2,3 3 1,0 3 1),CIRCULARSTRINGM(0 0 0,0.267949192431123 1 -2,0.585786437626905 1.4142135623731 2))
 asewkt03|MULTICURVE((5 5 1,3 5 2,3 3 3,0 3 1),CIRCULARSTRING(0 0 0,0.267949192431123 1 3,0.585786437626905 1.4142135623731 1))
 asewkt04|MULTICURVE((5 5 1 3,3 5 2 2,3 3 3 1,0 3 1 1),CIRCULARSTRING(0 0 0 0,0.267949192431123 1 3 -2,0.585786437626905 1.4142135623731 1 2))
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
+isValid01|t
+isValid02|t
+isValid03|t
+isValid04|t
 dimension01|1
 dimension02|1
 dimension03|1
diff --git a/regress/sql-mm-multisurface.sql b/regress/sql-mm-multisurface.sql
index 3e8ac29..631428e 100644
--- a/regress/sql-mm-multisurface.sql
+++ b/regress/sql-mm-multisurface.sql
@@ -250,63 +250,50 @@ UPDATE public.multisurface
                 4 11,
                 7 8)))')
         WHERE id = 1;
--- These tests will fail on different architectures
--- We need a way to handle multiple byte orderings
---SELECT 'asbinary01', encode(asbinary(the_geom_2d), 'hex') FROM public.multisurface;
---SELECT 'asbinary02', encode(asbinary(the_geom_3dm), 'hex') FROM public.multisurface;
---SELECT 'asbinary03', encode(asbinary(the_geom_3dz), 'hex') FROM public.multisurface;
---SELECT 'asbinary04', encode(asbinary(the_geom_4d), 'hex') FROM public.multisurface;
---
---SELECT 'asewkb01', encode(asewkb(the_geom_2d), 'hex') FROM public.multisurface;
---SELECT 'asewkb02', encode(asewkb(the_geom_3dm), 'hex') FROM public.multisurface;
---SELECT 'asewkb03', encode(asewkb(the_geom_3dz), 'hex') FROM public.multisurface;
---SELECT 'asewkb04', encode(asewkb(the_geom_4d), 'hex') FROM public.multisurface;
+        
+SELECT 'asbinary01', encode(ST_AsBinary(the_geom_2d, 'ndr'), 'hex') FROM public.multisurface;
+SELECT 'asbinary02', encode(ST_AsBinary(the_geom_3dm, 'ndr'), 'hex') FROM public.multisurface;
+SELECT 'asbinary03', encode(ST_AsBinary(the_geom_3dz, 'ndr'), 'hex') FROM public.multisurface;
+SELECT 'asbinary04', encode(ST_AsBinary(the_geom_4d, 'ndr'), 'hex') FROM public.multisurface;
 
-SELECT 'ST_CurveToLine-201', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
-SELECT 'ST_CurveToLine-202', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
-SELECT 'ST_CurveToLine-203', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
-SELECT 'ST_CurveToLine-204', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'asewkb01', encode(ST_AsEWKB(the_geom_2d, 'ndr'), 'hex') FROM public.multisurface;
+SELECT 'asewkb02', encode(ST_AsEWKB(the_geom_3dm, 'ndr'), 'hex') FROM public.multisurface;
+SELECT 'asewkb03', encode(ST_AsEWKB(the_geom_3dz, 'ndr'), 'hex') FROM public.multisurface;
+SELECT 'asewkb04', encode(ST_AsEWKB(the_geom_4d, 'ndr'), 'hex') FROM public.multisurface;
 
-SELECT 'ST_CurveToLine-401', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
-SELECT 'ST_CurveToLine-402', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
-SELECT 'ST_CurveToLine-403', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
-SELECT 'ST_CurveToLine-404', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine-201', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine-202', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine-203', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine-204', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 2), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
 
-SELECT 'ST_CurveToLine01', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
-SELECT 'ST_CurveToLine02', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
-SELECT 'ST_CurveToLine03', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
-SELECT 'ST_CurveToLine04', ST_Asewkt(ST_SnapToGrid(ST_CurveToLine(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine-401', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_2d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine-402', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine-403', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine-404', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_4d, 4), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+
+SELECT 'ST_CurveToLine01', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_2d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine02', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dm), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine03', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_3dz), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
+SELECT 'ST_CurveToLine04', ST_AsEWKT(ST_SnapToGrid(ST_CurveToLine(the_geom_4d), 'POINT(0 0 0 0)'::geometry, 1e-8, 1e-8, 1e-8, 1e-8)) FROM public.multisurface;
 
 -- TODO: ST_SnapToGrid is required to remove platform dependent precision
 -- issues.  Until ST_SnapToGrid is updated to work against curves, these
 -- tests cannot be run.
---SELECT 'ST_LineToCurve01', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_2d))) FROM public.multisurface;
---SELECT 'ST_LineToCurve02', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dm))) FROM public.multisurface;
---SELECT 'ST_LineToCurve03', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_3dz))) FROM public.multisurface;
---SELECT 'ST_LineToCurve04', ST_Asewkt(ST_LineToCurve(ST_CurveToLine(the_geom_4d))) FROM public.multisurface;
+--SELECT 'ST_LineToCurve01', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_2d))) FROM public.multisurface;
+--SELECT 'ST_LineToCurve02', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_3dm))) FROM public.multisurface;
+--SELECT 'ST_LineToCurve03', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_3dz))) FROM public.multisurface;
+--SELECT 'ST_LineToCurve04', ST_AsEWKT(ST_LineToCurve(ST_CurveToLine(the_geom_4d))) FROM public.multisurface;
 
 -- Repeat tests with new function names.
-SELECT 'astext01', ST_astext(the_geom_2d) FROM public.multisurface;
-SELECT 'astext02', ST_astext(the_geom_3dm) FROM public.multisurface;
-SELECT 'astext03', ST_astext(the_geom_3dz) FROM public.multisurface;
-SELECT 'astext04', ST_astext(the_geom_4d) FROM public.multisurface;
-
-SELECT 'asewkt01', ST_asewkt(the_geom_2d) FROM public.multisurface;
-SELECT 'asewkt02', ST_asewkt(the_geom_3dm) FROM public.multisurface;
-SELECT 'asewkt03', ST_asewkt(the_geom_3dz) FROM public.multisurface;
-SELECT 'asewkt04', ST_asewkt(the_geom_4d) FROM public.multisurface;
+SELECT 'astext01', ST_AsText(the_geom_2d) FROM public.multisurface;
+SELECT 'astext02', ST_AsText(the_geom_3dm) FROM public.multisurface;
+SELECT 'astext03', ST_AsText(the_geom_3dz) FROM public.multisurface;
+SELECT 'astext04', ST_AsText(the_geom_4d) FROM public.multisurface;
 
--- These tests will fail on different architectures
--- We need a way to handle multiple byte orderings
---SELECT 'asbinary01', encode(ST_asbinary(the_geom_2d), 'hex') FROM public.multisurface;
---SELECT 'asbinary02', encode(ST_asbinary(the_geom_3dm), 'hex') FROM public.multisurface;
---SELECT 'asbinary03', encode(ST_asbinary(the_geom_3dz), 'hex') FROM public.multisurface;
---SELECT 'asbinary04', encode(ST_asbinary(the_geom_4d), 'hex') FROM public.multisurface;
---
---SELECT 'asewkb01', encode(ST_asewkb(the_geom_2d), 'hex') FROM public.multisurface;
---SELECT 'asewkb02', encode(ST_asewkb(the_geom_3dm), 'hex') FROM public.multisurface;
---SELECT 'asewkb03', encode(ST_asewkb(the_geom_3dz), 'hex') FROM public.multisurface;
---SELECT 'asewkb04', encode(ST_asewkb(the_geom_4d), 'hex') FROM public.multisurface;
+SELECT 'asewkt01', ST_AsEWKT(the_geom_2d) FROM public.multisurface;
+SELECT 'asewkt02', ST_AsEWKT(the_geom_3dm) FROM public.multisurface;
+SELECT 'asewkt03', ST_AsEWKT(the_geom_3dz) FROM public.multisurface;
+SELECT 'asewkt04', ST_AsEWKT(the_geom_4d) FROM public.multisurface;
 
 SELECT 'box2d01', box2d(the_geom_2d) FROM public.multisurface;
 SELECT 'box2d02', box2d(the_geom_3dm) FROM public.multisurface;
@@ -323,29 +310,25 @@ SELECT 'isValid02', ST_IsValid(the_geom_3dm) FROM public.multisurface;
 SELECT 'isValid03', ST_IsValid(the_geom_3dz) FROM public.multisurface;
 SELECT 'isValid04', ST_IsValid(the_geom_4d) FROM public.multisurface;
 
-SELECT 'dimension01', ST_dimension(the_geom_2d) FROM public.multisurface;
-SELECT 'dimension02', ST_dimension(the_geom_3dm) FROM public.multisurface;
-SELECT 'dimension03', ST_dimension(the_geom_3dz) FROM public.multisurface;
-SELECT 'dimension04', ST_dimension(the_geom_4d) FROM public.multisurface;
+SELECT 'dimension01', ST_Dimension(the_geom_2d) FROM public.multisurface;
+SELECT 'dimension02', ST_Dimension(the_geom_3dm) FROM public.multisurface;
+SELECT 'dimension03', ST_Dimension(the_geom_3dz) FROM public.multisurface;
+SELECT 'dimension04', ST_Dimension(the_geom_4d) FROM public.multisurface;
 
-SELECT 'numGeometries01', ST_numGeometries(the_geom_2d) FROM public.multisurface;
-SELECT 'numGeometries02', ST_numGeometries(the_geom_3dm) FROM public.multisurface;
-SELECT 'numGeometries03', ST_numGeometries(the_geom_3dz) FROM public.multisurface;
-SELECT 'numGeometries04', ST_numGeometries(the_geom_4d) FROM public.multisurface;
+SELECT 'numGeometries01', ST_NumGeometries(the_geom_2d) FROM public.multisurface;
+SELECT 'numGeometries02', ST_NumGeometries(the_geom_3dm) FROM public.multisurface;
+SELECT 'numGeometries03', ST_NumGeometries(the_geom_3dz) FROM public.multisurface;
+SELECT 'numGeometries04', ST_NumGeometries(the_geom_4d) FROM public.multisurface;
 
-SELECT 'geometryN-201', ST_asEWKT(ST_geometryN(the_geom_2d, 2)) FROM public.multisurface;
-SELECT 'geometryN-202', ST_asEWKT(ST_geometryN(the_geom_3dm, 2)) FROM public.multisurface;
-SELECT 'geometryN-203', ST_asEWKT(ST_geometryN(the_geom_3dz, 2)) FROM public.multisurface;
-SELECT 'geometryN-204', ST_asEWKT(ST_geometryN(the_geom_4d, 2)) FROM public.multisurface;
+SELECT 'geometryN-201', ST_AsEWKT(ST_geometryN(the_geom_2d, 2)) FROM public.multisurface;
+SELECT 'geometryN-202', ST_AsEWKT(ST_geometryN(the_geom_3dm, 2)) FROM public.multisurface;
+SELECT 'geometryN-203', ST_AsEWKT(ST_geometryN(the_geom_3dz, 2)) FROM public.multisurface;
+SELECT 'geometryN-204', ST_AsEWKT(ST_geometryN(the_geom_4d, 2)) FROM public.multisurface;
 
-SELECT 'geometryN-301', (ST_geometryN(the_geom_2d, 3) is null) FROM public.multisurface;
-SELECT 'geometryN-302', (ST_geometryN(the_geom_3dm, 3) is null) FROM public.multisurface;
-SELECT 'geometryN-303', (ST_geometryN(the_geom_3dz, 3) is null) FROM public.multisurface;
-SELECT 'geometryN-304', (ST_geometryN(the_geom_4d, 3) is null) FROM public.multisurface;
+SELECT 'geometryN-301', (ST_GeometryN(the_geom_2d, 3) is null) FROM public.multisurface;
+SELECT 'geometryN-302', (ST_GeometryN(the_geom_3dm, 3) is null) FROM public.multisurface;
+SELECT 'geometryN-303', (ST_GeometryN(the_geom_3dz, 3) is null) FROM public.multisurface;
+SELECT 'geometryN-304', (ST_GeometryN(the_geom_4d, 3) is null) FROM public.multisurface;
 
-SELECT DropGeometryColumn('public', 'multisurface', 'the_geom_2d');
-SELECT DropGeometryColumn('public', 'multisurface', 'the_geom_3dm');
-SELECT DropGeometryColumn('public', 'multisurface', 'the_geom_3dz');
-SELECT DropGeometryColumn('public', 'multisurface', 'the_geom_4d');
 DROP TABLE public.multisurface;
 
diff --git a/regress/sql-mm-multisurface_expected b/regress/sql-mm-multisurface_expected
index c72cc5b..36cdf75 100644
--- a/regress/sql-mm-multisurface_expected
+++ b/regress/sql-mm-multisurface_expected
@@ -6,6 +6,14 @@ ndims03|3
 geometrytype03|MULTISURFACEM
 ndims04|2
 geometrytype04|MULTISURFACE
+asbinary01|010c00000002000000010a0000000200000001080000000700000000000000000000c00000000000000000000000000000f0bf000000000000f0bf00000000000000000000000000000000000000000000f03f000000000000f0bf000000000000004000000000000000000000000000000000000000000000004000000000000000c00000000000000000010200000005000000000000000000f0bf00000000000000000000000000000000000000000000e03f000000000000f03f00000000000000000000000000000000000000000000f03f000000000000f0bf00000000000000000103000000010000000500000 [...]
+asbinary02|01dc0700000200000001da0700000200000001d80700000700000000000000000000c000000000000000000000000000000000000000000000f0bf000000000000f0bf0000000000000040000000000000000000000000000000000000000000001040000000000000f03f000000000000f0bf000000000000184000000000000000400000000000000000000000000000204000000000000000000000000000000040000000000000104000000000000000c00000000000000000000000000000000001d207000005000000000000000000f0bf000000000000000000000000000000400000000000000000000000000 [...]
+asbinary03|01f40300000200000001f20300000200000001f00300000700000000000000000000c000000000000000000000000000000000000000000000f0bf000000000000f0bf000000000000f03f000000000000000000000000000000000000000000000040000000000000f03f000000000000f0bf000000000000084000000000000000400000000000000000000000000000104000000000000000000000000000000040000000000000004000000000000000c00000000000000000000000000000000001ea03000005000000000000000000f0bf0000000000000000000000000000f03f0000000000000000000000000 [...]
+asbinary04|01c40b00000200000001c20b00000200000001c00b00000700000000000000000000c0000000000000000000000000000000000000000000000000000000000000f0bf000000000000f0bf000000000000f03f00000000000000400000000000000000000000000000000000000000000000400000000000001040000000000000f03f000000000000f0bf000000000000084000000000000018400000000000000040000000000000000000000000000010400000000000002040000000000000000000000000000000400000000000000040000000000000104000000000000000c0000000000000000000000000000 [...]
+asewkb01|010c00000002000000010a0000000200000001080000000700000000000000000000c00000000000000000000000000000f0bf000000000000f0bf00000000000000000000000000000000000000000000f03f000000000000f0bf000000000000004000000000000000000000000000000000000000000000004000000000000000c00000000000000000010200000005000000000000000000f0bf00000000000000000000000000000000000000000000e03f000000000000f03f00000000000000000000000000000000000000000000f03f000000000000f0bf0000000000000000010300000001000000050000000 [...]
+asewkb02|010c00004002000000010a0000400200000001080000400700000000000000000000c000000000000000000000000000000000000000000000f0bf000000000000f0bf0000000000000040000000000000000000000000000000000000000000001040000000000000f03f000000000000f0bf000000000000184000000000000000400000000000000000000000000000204000000000000000000000000000000040000000000000104000000000000000c000000000000000000000000000000000010200004005000000000000000000f0bf00000000000000000000000000000040000000000000000000000000000 [...]
+asewkb03|010c00008002000000010a0000800200000001080000800700000000000000000000c000000000000000000000000000000000000000000000f0bf000000000000f0bf000000000000f03f000000000000000000000000000000000000000000000040000000000000f03f000000000000f0bf000000000000084000000000000000400000000000000000000000000000104000000000000000000000000000000040000000000000004000000000000000c000000000000000000000000000000000010200008005000000000000000000f0bf0000000000000000000000000000f03f000000000000000000000000000 [...]
+asewkb04|010c0000c002000000010a0000c00200000001080000c00700000000000000000000c0000000000000000000000000000000000000000000000000000000000000f0bf000000000000f0bf000000000000f03f00000000000000400000000000000000000000000000000000000000000000400000000000001040000000000000f03f000000000000f0bf000000000000084000000000000018400000000000000040000000000000000000000000000010400000000000002040000000000000000000000000000000400000000000000040000000000000104000000000000000c000000000000000000000000000000 [...]
 ST_CurveToLine-201|MULTIPOLYGON(((-2 0,-1.70710678 -0.70710678,-1 -1,-0.29289322 -0.70710678,0 0,0.29289322 -0.70710678,1 -1,1.70710678 -0.70710678,2 0,1.41421356 1.41421356,0 2,-1.41421356 1.41421356,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0)),((7 8,10 10,6 14,4 11,7 8)))
 ST_CurveToLine-202|MULTIPOLYGONM(((-2 0 0,-1.70710678 -0.70710678 1,-1 -1 2,-0.29289322 -0.70710678 3,0 0 4,0.29289322 -0.70710678 5,1 -1 6,1.70710678 -0.70710678 7,2 0 8,1.41421356 1.41421356 6,0 2 4,-1.41421356 1.41421356 2,-2 0 0),(-1 0 2,0 0.5 4,1 0 6,0 1 4,-1 0 2)),((7 8 8,10 10 5,6 14 1,4 11 6,7 8 8)))
 ST_CurveToLine-203|MULTIPOLYGON(((-2 0 0,-1.70710678 -0.70710678 0.5,-1 -1 1,-0.29289322 -0.70710678 1.5,0 0 2,0.29289322 -0.70710678 2.5,1 -1 3,1.70710678 -0.70710678 3.5,2 0 4,1.41421356 1.41421356 3,0 2 2,-1.41421356 1.41421356 1,-2 0 0),(-1 0 1,0 0.5 2,1 0 3,0 1 3,-1 0 1)),((7 8 7,10 10 5,6 14 3,4 11 4,7 8 7)))
@@ -34,10 +42,10 @@ box3d01|BOX3D(-2 -1 0,10 14 0)
 box3d02|BOX3D(-2 -1 0,10 14 0)
 box3d03|BOX3D(-2 -1 0,10 14 7)
 box3d04|BOX3D(-2 -1 0,10 14 7)
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
-ERROR:  Exception in LWGEOM2GEOS: curved geometry not supported.
+isValid01|t
+isValid02|t
+isValid03|t
+isValid04|t
 dimension01|2
 dimension02|2
 dimension03|2
@@ -54,7 +62,3 @@ geometryN-301|t
 geometryN-302|t
 geometryN-303|t
 geometryN-304|t
-public.multisurface.the_geom_2d effectively removed.
-public.multisurface.the_geom_3dm effectively removed.
-public.multisurface.the_geom_3dz effectively removed.
-public.multisurface.the_geom_4d effectively removed.
diff --git a/regress/subdivide.sql b/regress/subdivide.sql
new file mode 100644
index 0000000..69b6a2d
--- /dev/null
+++ b/regress/subdivide.sql
@@ -0,0 +1,24 @@
+-- polygon
+WITH g AS (SELECT 'POLYGON((132 10,119 23,85 35,68 29,66 28,49 42,32 56,22 64,32 110,40 119,36 150,
+57 158,75 171,92 182,114 184,132 186,146 178,176 184,179 162,184 141,190 122,
+190 100,185 79,186 56,186 52,178 34,168 18,147 13,132 10))'::geometry As geom)
+, gs AS (SELECT ST_Area(geom) As full_area, ST_SubDivide(geom,10) As geom FROM g)
+SELECT '1' As rn, full_area::numeric(10,3) = SUM(ST_Area(gs.geom))::numeric(10,3), COUNT(gs.geom) As num_pieces, MAX(ST_NPoints(gs.geom)) As max_vert
+FROM gs
+GROUP BY gs.full_area;
+
+-- linestring
+WITH g AS (SELECT ST_Segmentize('LINESTRING(0 0, 100 100, 150 150)'::geometry,10) As geom)
+, gs AS (SELECT ST_Length(geom) As m, ST_SubDivide(geom,8) As geom FROM g)
+SELECT '2' As rn, m::numeric(10,3) = SUM(ST_Length(gs.geom))::numeric(10,3), COUNT(gs.geom) As num_pieces, MAX(ST_NPoints(gs.geom)) As max_vert
+FROM gs
+GROUP BY gs.m;
+
+--multipolygon
+WITH g AS (SELECT 'POLYGON((132 10,119 23,85 35,68 29,66 28,49 42,32 56,22 64,32 110,40 119,36 150,
+57 158,75 171,92 182,114 184,132 186,146 178,176 184,179 162,184 141,190 122,
+190 100,185 79,186 56,186 52,178 34,168 18,147 13,132 10))'::geometry As geom)
+, gs AS (SELECT ST_Area(ST_Union(g.geom, ST_Translate(g.geom,300,10) )) As full_area, ST_SubDivide(ST_Union(g.geom, ST_Translate(g.geom,300,10) ), 10) As geom FROM g)
+SELECT '3' As rn, full_area::numeric(10,3) = SUM(ST_Area(gs.geom))::numeric(10,3), COUNT(gs.geom) As num_pieces, MAX(ST_NPoints(gs.geom)) As max_vert
+FROM gs
+GROUP BY gs.full_area;
diff --git a/regress/subdivide_expected b/regress/subdivide_expected
new file mode 100644
index 0000000..1c828a5
--- /dev/null
+++ b/regress/subdivide_expected
@@ -0,0 +1,3 @@
+1|t|9|9
+2|t|6|7
+3|t|15|9
diff --git a/regress/summary_expected b/regress/summary_expected
index 7c2f793..005f29f 100644
--- a/regress/summary_expected
+++ b/regress/summary_expected
@@ -6,9 +6,9 @@ T1Z|Point[Z]
 T1ZM|Point[ZM]
 T1ZMB|Point[ZMB]
 T1ZMBS|Point[ZMBS]
-T3|MultiPoint[B] with 1 elements
+T3|MultiPoint[] with 1 elements
   Point[]
-T4|MultiPoint[BS] with 1 elements
+T4|MultiPoint[S] with 1 elements
   Point[S]
 T5|GeometryCollection[B] with 2 elements
   MultiLineString[] with 2 elements
diff --git a/regress/swapordinates.sql b/regress/swapordinates.sql
new file mode 100644
index 0000000..382a2b6
--- /dev/null
+++ b/regress/swapordinates.sql
@@ -0,0 +1,15 @@
+SELECT 'flip1', ST_AsText(ST_FlipCoordinates('POINT(0 1)'));
+SELECT 'flip2', ST_AsText(ST_FlipCoordinates('GEOMETRYCOLLECTION(POINT(1 2),MULTIPOLYGON(((0 1,1 2,2 1,0 1)),((10 0,20 0,20 10,10 0),(2 2,4 2,4 4,2 2))),LINESTRING(0 1,1 0))'));
+
+-- Bogus calls (swapping unavailable ordinate)
+SELECT ST_AsText(ST_SwapOrdinates('POINTZ(0 1 2)','xm'));
+SELECT ST_AsText(ST_SwapOrdinates('POINTM(0 1 2)','zy'));
+-- Bogus calls (short spec)
+SELECT ST_AsText(ST_SwapOrdinates('POINTZ(0 1 2)','x'));
+-- Bogus calls (invalid ordinate names)
+SELECT ST_AsText(ST_SwapOrdinates('POINTZ(0 1 2)','pq'));
+
+SELECT 'swap1', ST_AsText(ST_SwapOrdinates('POINTZ(0 1 2)','xz'));
+SELECT 'swap2', ST_AsText(ST_SwapOrdinates('POINTM(0 1 2)','my'));
+SELECT 'swap3', ST_AsText(ST_SwapOrdinates('POINTZM(0 1 2 3)','mz'));
+SELECT 'swap4', ST_AsText(ST_SwapOrdinates('MULTICURVE ZM ((5 5 1 3, 3 5 2 2, 3 3 3 1, 0 3 1 1), CIRCULARSTRING ZM (0 0 0 0, 0.2 1 3 -2, 0.5 1.4 1 2), COMPOUNDCURVE ZM (CIRCULARSTRING ZM (0 0 0 0,1 1 1 2,1 0 0 1),(1 0 0 1,0 1 5 4)))','my'));
diff --git a/regress/swapordinates_expected b/regress/swapordinates_expected
new file mode 100644
index 0000000..c498bba
--- /dev/null
+++ b/regress/swapordinates_expected
@@ -0,0 +1,10 @@
+flip1|POINT(1 0)
+flip2|GEOMETRYCOLLECTION(POINT(2 1),MULTIPOLYGON(((1 0,2 1,1 2,1 0)),((0 10,0 20,10 20,0 10),(2 2,2 4,4 4,2 2))),LINESTRING(1 0,0 1))
+ERROR:  Geometry does not have an M ordinate
+ERROR:  Geometry does not have a Z ordinate
+ERROR:  Invalid ordinate specification. Need two letters from the set (x,y,z,m). Got 'x'
+ERROR:  Invalid ordinate name 'p'. Expected x,y,z or m
+swap1|POINT Z (2 1 0)
+swap2|POINT M (0 2 1)
+swap3|POINT ZM (0 1 3 2)
+swap4|MULTICURVE ZM ((5 3 1 5,3 2 2 5,3 1 3 3,0 1 1 3),CIRCULARSTRING ZM (0 0 0 0,0.2 -2 3 1,0.5 2 1 1.4),COMPOUNDCURVE ZM (CIRCULARSTRING ZM (0 0 0 0,1 2 1 1,1 1 0 0),(1 1 0 0,0 4 5 1)))
diff --git a/regress/temporal.sql b/regress/temporal.sql
new file mode 100644
index 0000000..d3b451a
--- /dev/null
+++ b/regress/temporal.sql
@@ -0,0 +1,94 @@
+----------------------------------------
+--
+-- ST_IsValidTrajectory
+--
+----------------------------------------
+
+SELECT 'invalidTrajectory1', ST_IsValidTrajectory('POINTM(0 0 0)'::geometry);
+SELECT 'invalidTrajectory2', ST_IsValidTrajectory('LINESTRINGZ(0 0 0,1 1 1)'::geometry);
+SELECT 'invalidTrajectory3', ST_IsValidTrajectory('LINESTRINGM(0 0 0,1 1 0)'::geometry);
+SELECT 'invalidTrajectory4', ST_IsValidTrajectory('LINESTRINGM(0 0 1,1 1 0)'::geometry);
+SELECT 'invalidTrajectory8', ST_IsValidTrajectory('LINESTRINGM(0 0 0,1 1 1,1 1 2,1 0 1)'::geometry);
+
+SELECT 'validTrajectory1', ST_IsValidTrajectory('LINESTRINGM(0 0 0,1 1 1)'::geometry);
+SELECT 'validTrajectory2', ST_IsValidTrajectory('LINESTRINGM EMPTY'::geometry);
+SELECT 'validTrajectory3', ST_IsValidTrajectory('LINESTRINGM(0 0 0,1 1 1,1 1 2)'::geometry);
+
+----------------------------------------
+--
+-- ST_ClosestPointOfApproach
+--
+----------------------------------------
+
+-- Converging
+select 'cpa1', ST_ClosestPointOfApproach(
+  'LINESTRINGZM(0 0 0 0, 10 10 10 10)',
+  'LINESTRINGZM(0 0 0 1, 10 10 10 10)');
+-- Following
+select 'cpa2', ST_ClosestPointOfApproach(
+  'LINESTRINGZM(0 0 0 0, 10 10 10 10)',
+  'LINESTRINGZM(0 0 0 5, 10 10 10 15)');
+-- Crossing
+select 'cpa3', ST_ClosestPointOfApproach(
+  'LINESTRINGZM(0 0 0 0, 0 0 0 10)',
+  'LINESTRINGZM(-30 0 5 4, 10 0 5 6)');
+-- Meeting
+select 'cpa4', ST_ClosestPointOfApproach(
+  'LINESTRINGZM(0 0 0 0, 0 0 0 10)',
+  'LINESTRINGZM(0 5 0 10, 10 0 5 11)');
+-- Disjoint
+select 'cpa5', ST_ClosestPointOfApproach(
+  'LINESTRINGM(0 0 0, 0 0 4)',
+  'LINESTRINGM(0 0 5, 0 0 10)');
+-- Ticket #3136
+WITH inp as ( SELECT
+ 'LINESTRING M (0 0 80000002,1 0 80000003)'::geometry g1,
+ 'LINESTRING M (2 2 80000000,1 1 80000001,0 0 80000002)'::geometry g2 )
+SELECT 'cpa#3136',
+ST_ClosestPointOfApproach(g2,g1), ST_ClosestPointOfApproach(g1,g2)
+FROM inp;
+
+----------------------------------------
+--
+-- ST_DistanceCPA
+--
+----------------------------------------
+
+SELECT 'cpad1', ST_DistanceCPA('LINESTRINGM(0 0 0, 1 0 1)'::geometry
+          ,'LINESTRINGM(0 0 0, 1 0 1)'::geometry);
+SELECT 'cpad2', ST_DistanceCPA('LINESTRINGM(0 0 0, 1 0 1)'::geometry
+          ,'LINESTRINGM(0 0 1, 1 0 2)'::geometry);
+SELECT 'cpad3', ST_DistanceCPA('LINESTRING(0 0 0 0, 1 0 0 1)'::geometry
+          ,'LINESTRING(0 0 3 0, 1 0 2 1)'::geometry);
+-- Disjoint
+SELECT 'cpad4', ST_DistanceCPA('LINESTRINGM(0 0 0, 10 0 10)'::geometry
+          ,'LINESTRINGM(10 0 11, 10 10 20)'::geometry);
+SELECT 'invalid', ST_DistanceCPA('LINESTRING(0 0 0, 1 0 0)'::geometry
+            ,'LINESTRING(0 0 3 0, 1 0 2 1)'::geometry);
+
+
+----------------------------------------
+--
+-- ST_CPAWithin
+--
+----------------------------------------
+
+SELECT 'cpaw1', d, ST_CPAWithin(
+       'LINESTRINGM(0 0 0, 1 0 1)'::geometry
+      ,'LINESTRINGM(0 0 0, 1 0 1)'::geometry, d)
+      FROM ( VALUES (0.0),(1) ) f(d) ORDER BY d;
+SELECT 'cpaw2', d, ST_CPAWithin(
+       'LINESTRINGM(0 0 0, 1 0 1)'::geometry
+      ,'LINESTRINGM(0 0 1, 1 0 2)'::geometry, d)
+      FROM ( VALUES (0.5),(1),(1.2) ) f(d) ORDER BY d;
+SELECT 'cpaw3', d, ST_CPAWithin(
+       'LINESTRING(0 0 0 0, 1 0 0 1)'::geometry
+      ,'LINESTRING(0 0 3 0, 1 0 2 1)'::geometry, d)
+      FROM ( VALUES (1.9),(2),(2.0001) ) f(d) ORDER BY d;
+-- temporary disjoint
+SELECT 'cpaw4', ST_CPAWithin(
+       'LINESTRINGM(0 0 0, 10 0 10)'::geometry
+      ,'LINESTRINGM(10 0 11, 10 10 20)'::geometry, 1e15);
+SELECT 'cpaw_invalid', ST_CPAWithin(
+       'LINESTRING(0 0 0, 1 0 0)'::geometry
+      ,'LINESTRING(0 0 3 0, 1 0 2 1)'::geometry, 1e16);
diff --git a/regress/temporal_expected b/regress/temporal_expected
new file mode 100644
index 0000000..64b3e22
--- /dev/null
+++ b/regress/temporal_expected
@@ -0,0 +1,34 @@
+NOTICE:  Geometry is not a LINESTRING
+invalidTrajectory1|f
+NOTICE:  Line does not have M dimension
+invalidTrajectory2|f
+NOTICE:  Measure of vertex 1 (0) not bigger than measure of vertex 0 (0)
+invalidTrajectory3|f
+NOTICE:  Measure of vertex 1 (0) not bigger than measure of vertex 0 (1)
+invalidTrajectory4|f
+NOTICE:  Measure of vertex 3 (1) not bigger than measure of vertex 2 (2)
+invalidTrajectory8|f
+validTrajectory1|t
+validTrajectory2|t
+validTrajectory3|t
+cpa1|10
+cpa2|5
+cpa3|5.5
+cpa4|10
+cpa5|
+cpa#3136|80000002|80000002
+cpad1|0
+cpad2|1
+cpad3|2
+cpad4|
+ERROR:  Both input geometries must have a measure dimension
+cpaw1|0.0|t
+cpaw1|1|t
+cpaw2|0.5|f
+cpaw2|1|t
+cpaw2|1.2|t
+cpaw3|1.9|f
+cpaw3|2|t
+cpaw3|2.0001|t
+cpaw4|f
+ERROR:  Both input geometries must have a measure dimension
diff --git a/regress/temporal_knn.sql b/regress/temporal_knn.sql
new file mode 100644
index 0000000..dbf2a89
--- /dev/null
+++ b/regress/temporal_knn.sql
@@ -0,0 +1,75 @@
+CREATE OR REPLACE FUNCTION qnodes(q text) RETURNS text
+LANGUAGE 'plpgsql' AS
+$$
+DECLARE
+  exp TEXT;
+  mat TEXT[];
+  ret TEXT[];
+BEGIN
+  --RAISE NOTICE 'Q: %', q;
+  FOR exp IN EXECUTE 'EXPLAIN ' || q
+  LOOP
+    --RAISE NOTICE 'EXP: %', exp;
+    mat := regexp_matches(exp, ' *(?:-> *)?(.*Scan)');
+    --RAISE NOTICE 'MAT: %', mat;
+    IF mat IS NOT NULL THEN
+      ret := array_append(ret, mat[1]);
+    END IF;
+    --RAISE NOTICE 'RET: %', ret;
+  END LOOP;
+  RETURN array_to_string(ret,',');
+END;
+$$;
+
+-- create table
+CREATE TABLE knn_cpa AS
+WITH points AS (
+  SELECT t,
+         ST_MakePoint(x-t,x+t) p
+  FROM generate_series(0,1000,5) t -- trajectories
+      ,generate_series(-100,100,10) x
+)
+SELECT t, ST_AddMeasure(
+  CASE WHEN t%2 = 0 THEN ST_Reverse(ST_MakeLine(p))
+       ELSE ST_MakeLine(p) END,
+  10, 20) tr
+FROM points GROUP BY t;
+--ALTER TABLE knn_cpa ADD PRIMARY KEY(t);
+
+\set qt 'ST_AddMeasure(ST_MakeLine(ST_MakePointM(-260,380,0),ST_MakePointM(-360,540,0)),10,20)'
+
+SELECT '|=| no idx', qnodes('select * from knn_cpa ORDER BY tr |=| ' || quote_literal(:qt ::text) || ' LIMIT 1');
+CREATE TABLE knn_cpa_no_index AS
+SELECT row_number() over () n, t, d FROM (
+  SELECT t,
+  ST_DistanceCPA(tr,:qt) d
+  FROM knn_cpa ORDER BY tr |=| :qt LIMIT 5
+) foo;
+
+CREATE INDEX on knn_cpa USING gist (tr gist_geometry_ops_nd);
+ANALYZE knn_cpa;
+set enable_seqscan to off;
+
+SELECT '|=| idx', qnodes('select * from knn_cpa ORDER BY tr |=| ' || quote_literal(:qt ::text) || ' LIMIT 1');
+CREATE TABLE knn_cpa_index AS
+SELECT row_number() over () n, t, d FROM (
+  SELECT t, ST_DistanceCPA(tr,:qt) d
+  FROM knn_cpa ORDER BY tr |=| :qt LIMIT 5
+) foo;
+
+--SELECT * FROM knn_cpa_no_index;
+--SELECT * FROM knn_cpa_index;
+
+SELECT a.n,
+  CASE WHEN a.t = b.t THEN a.t||'' ELSE a.t || ' vs ' || b.t END closest,
+  CASE WHEN a.d = b.d THEN 'dist:' || a.d::numeric(10,2) ELSE 'diff:' || (a.d - b.d) END dist
+FROM knn_cpa_no_index a, knn_cpa_index b
+WHERE a.n = b.n
+ORDER BY a.n;
+
+-- Cleanup
+
+DROP FUNCTION qnodes(text);
+DROP TABLE knn_cpa;
+DROP TABLE knn_cpa_no_index;
+DROP TABLE knn_cpa_index;
diff --git a/regress/temporal_knn_expected b/regress/temporal_knn_expected
new file mode 100644
index 0000000..d58640e
--- /dev/null
+++ b/regress/temporal_knn_expected
@@ -0,0 +1,7 @@
+|=| no idx|Seq Scan
+|=| idx|Index Scan
+1|445|dist:2.97
+2|340|dist:3.21
+3|435|dist:8.26
+4|350|dist:9.10
+5|455|dist:14.21
diff --git a/regress/tickets.sql b/regress/tickets.sql
index 9e8e698..26165ba 100644
--- a/regress/tickets.sql
+++ b/regress/tickets.sql
@@ -62,7 +62,7 @@ SELECT '#66', ST_AsText((ST_Dump(ST_GeomFromEWKT('CIRCULARSTRING(0 0,1 1,2 2)'))
 
 -- #68 --
 SELECT '#68a', ST_AsText(ST_Shift_Longitude(ST_GeomFromText('MULTIPOINT(1 3, 4 5)')));
-SELECT '#68b', ST_AsText(ST_Shift_Longitude(ST_GeomFromText('CIRCULARSTRING(1 3, 4 5, 6 7)')));
+SELECT '#68b', ST_AsText(ST_ShiftLongitude(ST_GeomFromText('CIRCULARSTRING(1 3, 4 5, 6 7)')));
 
 -- #69 --
 SELECT '#69', ST_AsText(ST_Translate(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 150406)'),1,2));
@@ -325,7 +325,8 @@ SELECT '#650', ST_AsText(ST_Collect(ARRAY[ST_MakePoint(0,0), ST_MakePoint(1,1),
 SELECT '#667', ST_AsEWKT(ST_LineToCurve(ST_Buffer(ST_SetSRID(ST_Point(i,j),4326), j))) As the_geom FROM generate_series(-10,50,10) As i CROSS JOIN generate_series(40,70, 20) As j ORDER BY i, j, i*j LIMIT 1;
 
 -- #677 --
-SELECT '#677',round(ST_Distance_Spheroid(ST_GeomFromEWKT('MULTIPOLYGON(((-10 40,-10 55,-10 70,5 40,-10 40)))'), ST_GeomFromEWKT('MULTIPOINT(20 40,20 55,20 70,35 40,35 55,35 70,50 40,50 55,50 70)'), 'SPHEROID["GRS_1980",6378137,298.257222101]')) As result;
+SELECT '#677.deprecated',round(ST_Distance_Spheroid(ST_GeomFromEWKT('MULTIPOLYGON(((-10 40,-10 55,-10 70,5 40,-10 40)))'), ST_GeomFromEWKT('MULTIPOINT(20 40,20 55,20 70,35 40,35 55,35 70,50 40,50 55,50 70)'), 'SPHEROID["GRS_1980",6378137,298.257222101]')) As result;
+SELECT '#677',round(ST_DistanceSpheroid(ST_GeomFromEWKT('MULTIPOLYGON(((-10 40,-10 55,-10 70,5 40,-10 40)))'), ST_GeomFromEWKT('MULTIPOINT(20 40,20 55,20 70,35 40,35 55,35 70,50 40,50 55,50 70)'), 'SPHEROID["GRS_1980",6378137,298.257222101]')) As result;
 
 -- #680 --
 SELECT '#680', encode(ST_AsBinary(geography(foo1.the_geom),'ndr'),'hex') As result FROM ((SELECT ST_SetSRID(ST_MakePointM(i,j,m),4326) As the_geom FROM generate_series(-10,50,10) As i CROSS JOIN generate_series(50,70, 20) AS j CROSS JOIN generate_series(1,2) As m ORDER BY i, j, i*j*m)) As foo1 LIMIT 1;
@@ -793,7 +794,7 @@ DROP TABLE "city";
 
 
 -- #2084 --
-SELECT '#2084', num, ST_Within('POINT(-54.394 56.522)', the_geom), ST_CoveredBy('POINT(-54.394 56.522)', the_geom)
+SELECT '#2084', num, ST_Within('POINT(-54.394 56.522)', "the_geom"), ST_CoveredBy('POINT(-54.394 56.522)', "the_geom")
 FROM ( VALUES
 (1, '0103000000010000000E00000051C6F7C5A5324BC02EB69F8CF13F4C40F12EA4C343364BC0326AA2CF47434C402BC1A8A44E364BC02A50E10852434C407F2990D959364BC0A0D1730B5D434C404102452C62364BC0ECF335CB65434C400903232F6B364BC0F635E84B6F434C40BD0CC51D6F364BC0D2805EB873434C40B9E6E26F7B364BC0F20B93A982434C40D9FAAF73D3344BC0FE84D04197444C40BD5C8AABCA344BC0CED05CA791444C4023F2237EC5344BC02A84F23E8E444C40BDCDD8077B324BC0C60FB90F01434C409FD1702E65324BC04EF1915C17404C4051C6F7C5A5324BC02EB69F8CF13F4C40'::geometry), 
 (2, '0103000000010000001C00000003F25650F73B4BC098477F523E3E4C40C9A6A344CE3C4BC0C69698653E3E4C40BDD0E979373E4BC0081FA0FB723E4C400FD252793B3E4BC01A137F14753E4C40537170E998414BC070D3BCE314414C4023FC51D499474BC0D4D100DE024F4C40638C47A984454BC024130D52F0504C40B9442DCDAD404BC03A29E96168554C40C7108DEE20404BC07C7C26FBE7554C40195D6BEF533F4BC0E20391459A564C40239FE40E9B344BC08C1ADB6B41514C40132D3F7095314BC0BA2ADF33124F4C409DB91457952D4BC02C7B681F2B4C4C4089DC60A8C32C4BC07C5C3810924B4C40D7ED409DF22A4 [...]
@@ -824,6 +825,8 @@ round(ST_Length(St_Segmentize(ST_GeographyFromText('LINESTRING(-89.3000030518 28
 -- #2307 --
 SELECT '#2307', ST_AsText(ST_SnapToGrid(ST_MakeValid('0106000020E6100000010000000103000000010000000A0000004B7DA956B99844C0DB0790FE8B4D1DC010BA74A9AF9444C049AFFC5B8C4D1DC03FC6CC690D9844C0DD67E5628C4D1DC07117B56B0D9844C0C80ABA67C45E1DC0839166ABAF9444C0387D4568C45E1DC010BA74A9AF9444C049AFFC5B8C4D1DC040C3CD74169444C0362EC0608C4D1DC07C1A3B77169444C0DC3ADB40B2641DC03AAE5F68B99844C0242948DEB1641DC04B7DA956B99844C0DB0790FE8B4D1DC0'::geometry),0.0001));
 
+SELECT '#2409', ST_Summary('GEOMETRYCOLLECTION(MULTISURFACE(POLYGON((0 0, 0 1, 1 1, 1 0, 0 0)),CURVEPOLYGON(COMPOUNDCURVE((0 0, 0 1, 1 1, 1 0, 0 0),CIRCULARSTRING(0 0, 0 1, 1 1, 1 2, 0 0)))),TIN(((0 0, 0 1, 1 1, 0 0))))'::geometry);
+
 SELECT '#2415.1', ST_AsText(ST_Multi(
   'COMPOUNDCURVE((0 0, 10 0),CIRCULARSTRING(10 0, 15 1, 20 10))'
 ));
@@ -858,6 +861,15 @@ INSERT INTO images VALUES (1, 'first_image', 'SRID=4326;POLYGON((-162.211667 88.
 SELECT '#2556' AS ticket, id, round(ST_Distance(extent, 'SRID=4326;POLYGON((-46.625977 81.634149,-46.625977 81.348076,-48.999023 81.348076,-48.999023 81.634149,-46.625977 81.634149))'::geography)) from images;
 DROP TABLE images;
 
+-- #2692
+WITH v AS ( SELECT 'CIRCULARSTRING(0 0, 1 1, 2 2)'::geometry AS g FROM generate_series(1,3) ) 
+SELECT '#2692a', ST_AsText(st_collect(g)) FROM v;
+WITH v AS ( SELECT 'COMPOUNDCURVE((0 0, 1 1), CIRCULARSTRING(1 1, 1 2, 3 2))'::geometry AS g FROM generate_series(1,3) ) 
+SELECT '#2692b', ST_AsText(st_collect(g)) FROM v;
+WITH v AS ( SELECT 'TRIANGLE((0 0, 1 1, 1 0, 0 0))'::geometry AS g FROM generate_series(1,3) ) 
+SELECT '#2692c', ST_AsText(st_collect(g)) FROM v;
+
+
 SELECT '#2704', ST_AsText(ST_GeomFromGML('<?xml version="1.0"?>
 <gml:Polygon xmlns:gml="http://www.opengis.net/gml/3.2"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -876,8 +888,28 @@ SELECT '#2704', ST_AsText(ST_GeomFromGML('<?xml version="1.0"?>
 
 SELECT '#2712', ST_AsText(ST_Segmentize('LINESTRING EMPTY'::geometry, 0.5));
 
+SELECT '#2717', 
+   ST_AsText(ST_StartPoint(g)), 
+   ST_AsText(ST_EndPoint(g)), 
+   ST_AsText(ST_PointN(g, 1)), 
+   ST_AsText(ST_PointN(g, 2)), 
+   ST_AsText(ST_PointN(g, 3)), 
+   ST_AsText(ST_PointN(g, 4)), 
+   ST_AsText(ST_PointN(g, 5))
+   FROM ( 
+     SELECT 'COMPOUNDCURVE((-1 -1, 1 1), CIRCULARSTRING(1 1, 2 2, 3 1))'::geometry AS g
+   ) AS foo;
+
 SELECT '#2788', valid, reason, ST_AsText(location) from ST_IsValidDetail('POLYGON((0 0, 0 1, 2 1, 2 2, 1 2, 1 0, 0 0))'::geometry);
-SELECT '#2870', ST_Summary('Point(151.215289 -33.856885)'::geometry::bytea::geography);
+
+SELECT '#2870', ST_Summary('Point(151.215289 -33.856885)'::geometry::bytea::geography) ;
+
+SELECT '#2956', st_astwkb(null,0) is null;
+
+SELECT '#3172', ST_AsText(ST_AddMeasure('LINESTRING(0 0,0 0)', 1, 2));
+
+--SELECT '#3244a', ST_AsText(ST_3DClosestPoint('POINT(0 0 0)', 'POINT(0 0)'));
+--SELECT '#3244b', ST_AsText(ST_3DClosestPoint('POINT(0 0)', 'POINT(0 0 0)'));
 
 -- Clean up
 DELETE FROM spatial_ref_sys;
diff --git a/regress/tickets_expected b/regress/tickets_expected
index 5017a13..c67fbcd 100644
--- a/regress/tickets_expected
+++ b/regress/tickets_expected
@@ -1,6 +1,6 @@
 #2|POLYGON((1 1,1 2,2 2,3 2,3 1,2 1,1 1))
 #11|0
-NOTICE:  ST_Locate_Between_Measures and ST_Locate_Along_Measure are deprecated. Use ST_LocateAlong and ST_LocateBetween.
+WARNING:  ST_Locate_Between_Measures and ST_Locate_Along_Measure were deprecated in 2.2.0. Please use ST_LocateAlong and ST_LocateBetween
 #21|SRID=31293;POINTM(6220.13 5337367.145 4566)
 t
 ERROR:  AddGeometryColumn() - invalid SRID
@@ -17,7 +17,7 @@ ERROR:  lwgeom_longitude_shift: unsupported geom type: CircularString
 #83|MULTICURVE(CIRCULARSTRING(220268 150415,220227 150505,220227 150406))
 #85|0
 #112|GEOMETRYCOLLECTION(POINT(-10 50))
-NOTICE:  ST_Locate_Between_Measures and ST_Locate_Along_Measure are deprecated. Use ST_LocateAlong and ST_LocateBetween.
+WARNING:  ST_Locate_Between_Measures and ST_Locate_Along_Measure were deprecated in 2.2.0. Please use ST_LocateAlong and ST_LocateBetween
 ERROR:  Geometry argument does not have an 'M' ordinate
 #116|POLYGON EMPTY
 #122|CIRCULARSTRING(220268 150415,220227 150505,220227 150406)
@@ -96,6 +96,7 @@ NOTICE:  IllegalArgumentException: Invalid number of points in LinearRing found
 #835.12|MULTIPOLYGON EMPTY
 #650|MULTIPOINT(0 0,1 1,2 2)
 #667|SRID=4326;CURVEPOLYGON(CIRCULARSTRING(30 40,-50 39.9999999999999,30 40))
+#677.deprecated|1121395
 #677|1121395
 #680|01d107000000000000000024c000000000000049400000000000000040
 #681a|
@@ -110,7 +111,7 @@ NOTICE:  IllegalArgumentException: Invalid number of points in LinearRing found
 #684,#2109|SRID=4326;POINT EMPTY
 #2109|SRID=3395;POINT EMPTY
 #685|0103000020e610000000000000
-#686|0107000020e610000000000000
+#686|0107000020e610000002000000010300000000000000011100000000000000
 #687|f
 #689|f
 #690
@@ -145,7 +146,7 @@ ERROR:  First argument must be a LINESTRING
 #1273.1|t
 ERROR:  stats for "t.g" do not exist
 ERROR:  stats for "t.g" do not exist
-DEBUG:  ST_Estimated_Extent signature was deprecated in 2.1.0. Please use ST_EstimatedExtent
+WARNING:  ST_Estimated_Extent signature was deprecated in 2.1.0. Please use ST_EstimatedExtent
 ERROR:  stats for "t.g" do not exist
 ERROR:  stats for "t.g" do not exist
 #877.4|-10.15000|20.15000|-50.40000|30.40000
@@ -184,7 +185,7 @@ ERROR:  MultiSurface cannot contain MultiPoint element at character 8
 #1453.2|f
 #1454|t
 #1414|CURVEPOLYGON Z EMPTY
-#1478|01040000200100000000000000
+#1478|010100002001000000000000000000f87f000000000000f87f
 #745|GEOMETRYCOLLECTION(POLYGON((-72 42 1,-70 43 1,-71 41 1,-72 42 1)))
 #1450|POINT|POLYGON
 #1482|4326
@@ -244,6 +245,16 @@ ERROR:  invalid GML representation
 #2110.3|t
 #2145|6792004
 #2307|MULTIPOLYGON(((-41.1932 -7.3257,-41.1616 -7.3257,-41.1569 -7.3257,-41.1569 -7.3483,-41.1932 -7.3483,-41.1932 -7.3257),(-41.1616 -7.3257,-41.1879 -7.3257,-41.1879 -7.3425,-41.1616 -7.3425,-41.1616 -7.3257)))
+#2409|GeometryCollection[B] with 2 elements
+  MultiSurface[] with 2 elements
+    Polygon[] with 1 rings
+   ring 0 has 5 points
+    CurvePolygon[] with 1 elements
+      CompoundCurve[] with 2 elements
+        LineString[] with 5 points
+        CircularString[] with 5 points
+  Tin[] with 1 elements
+    Triangle[] with 4 points
 #2415.1|MULTICURVE(COMPOUNDCURVE((0 0,10 0),CIRCULARSTRING(10 0,15 1,20 10)))
 #2415.2|MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(10 0,15 1,20 0,18 5,20 10,10 10,10 0)))
 #2412|LINESTRING(0 0,10 0,20 0)
@@ -255,7 +266,13 @@ ERROR:  invalid GML representation
 #2168|5340.76237395|5340.76237395|0
 #2556|47409|20623
 #2556|1|0
+#2692a|MULTICURVE(CIRCULARSTRING(0 0,1 1,2 2),CIRCULARSTRING(0 0,1 1,2 2),CIRCULARSTRING(0 0,1 1,2 2))
+#2692b|MULTICURVE(COMPOUNDCURVE((0 0,1 1),CIRCULARSTRING(1 1,1 2,3 2)),COMPOUNDCURVE((0 0,1 1),CIRCULARSTRING(1 1,1 2,3 2)),COMPOUNDCURVE((0 0,1 1),CIRCULARSTRING(1 1,1 2,3 2)))
+#2692c|TIN(((0 0,1 1,1 0,0 0)),((0 0,1 1,1 0,0 0)),((0 0,1 1,1 0,0 0)))
 #2704|POLYGON((0 0,0 1,1 1,1 0,0 0))
 #2712|LINESTRING EMPTY
+#2717|POINT(-1 -1)|POINT(3 1)|POINT(-1 -1)|POINT(1 1)|POINT(1 1)|POINT(2 2)|POINT(3 1)
 #2788|f|Self-intersection|POINT(1 1)
 #2870|Point[GS]
+#2956|t
+#3172|LINESTRING M (0 0 1,0 0 2)
diff --git a/regress/twkb.sql b/regress/twkb.sql
new file mode 100644
index 0000000..5ff31ed
--- /dev/null
+++ b/regress/twkb.sql
@@ -0,0 +1,66 @@
+
+--POINT without id
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'POINT(1 1)'::text g, 0 p) foo;
+--POINT with id
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'POINT(1 1)'::text g, 0 p) foo;
+--POINT with multibyte values and negative values
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'POINT(78 -78)'::text g, 0 p) foo;
+--POINT rounding to 2 decimals in coordinates
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'POINT(123.456789 987.654321)'::text g, 2 p) foo;
+
+--LINESTRING
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'LINESTRING(120 10, -50 20, 300 -2)'::text g, 0 p) foo;
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'LINESTRING(120 10, -50 20, 300 -2)'::text g, 2 p) foo;
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'LINESTRING(120.54 10.78, -50.2 20.878, 300.789 -21)'::text g, 0 p) foo;
+
+--POLYGON
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))'::text g, 0 p) foo;
+--POLYGON with hole
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'POLYGON((1 1, 1 20, 20 20, 20 1, 1 1),(3 3,3 4, 4 4,4 3,3 3))'::text g, 0 p) foo;
+
+--MULTIPOINT
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'MULTIPOINT((1 1),(2 2))'::text g, 0 p) foo;
+
+--MULTILINESTRING
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'MULTILINESTRING((1 1,1 2,2 2),(3 3,3 4,4 4))'::text g, 0 p) foo;
+
+--MULTIPOLYGON
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'MULTIPOLYGON(((1 1, 1 2, 2 2, 2 1, 1 1)),((3 3,3 4,4 4,4 3,3 3)))'::text g, 0 p) foo;
+--MULTIPOLYGON with hole
+select g,encode(ST_AsTWKB(g::geometry,p),'hex') from
+(select 'MULTIPOLYGON(((1 1, 1 20, 20 20, 20 1, 1 1),(3 3,3 4, 4 4,4 3,3 3)),((-1 1, -1 20, -20 20, -20 1, -1 1),(-3 3,-3 4, -4 4,-4 3,-3 3)))'::text g, 0 p) foo;
+
+
+--GEOMETRYCOLLECTION
+select st_astext(st_collect(g::geometry)), encode(ST_AsTWKB(ST_Collect(g::geometry),0),'hex') from
+(
+select 'POINT(1 1)'::text g
+union all
+select 'LINESTRING(2 2, 3 3)'::text g
+) foo;
+
+
+select st_astext(st_collect(g::geometry)), encode(ST_AsTWKB(ST_Collect(g::geometry),0),'hex') from
+(
+select 'MULTIPOINT((1 1),(2 2))'::text g
+union all
+select 'POINT(78 -78)'::text g
+union all
+select 'POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))'::text g
+) foo;
+
+--GEOMETRYCOLLECTION with bounding box ref #3187
+select encode(st_astwkb(st_collect('point(4 1)'::geometry,'linestring(1 1, 0 3)'::geometry),0,0,0,false,true),'hex');
+
diff --git a/regress/twkb_expected b/regress/twkb_expected
new file mode 100644
index 0000000..418732f
--- /dev/null
+++ b/regress/twkb_expected
@@ -0,0 +1,16 @@
+POINT(1 1)|01000202
+POINT(1 1)|01000202
+POINT(78 -78)|01009c019b01
+POINT(123.456789 987.654321)|4100f4c0019a870c
+LINESTRING(120 10, -50 20, 300 -2)|020003f00114d30214bc052b
+LINESTRING(120 10, -50 20, 300 -2)|420003c0bb01d00fcf8902d00ff0a204af22
+LINESTRING(120.54 10.78, -50.2 20.878, 300.789 -21)|020003f20116d50214be0553
+POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))|0300010502020002020000010100
+POLYGON((1 1, 1 20, 20 20, 20 1, 1 1),(3 3,3 4, 4 4,4 3,3 3))|03000205020200262600002525000504040002020000010100
+MULTIPOINT((1 1),(2 2))|04000202020202
+MULTILINESTRING((1 1,1 2,2 2),(3 3,3 4,4 4))|0500020302020002020003020200020200
+MULTIPOLYGON(((1 1, 1 2, 2 2, 2 1, 1 1)),((3 3,3 4,4 4,4 3,3 3)))|060002010502020002020000010100010504040002020000010100
+MULTIPOLYGON(((1 1, 1 20, 20 20, 20 1, 1 1),(3 3,3 4, 4 4,4 3,3 3)),((-1 1, -1 20, -20 20, -20 1, -1 1),(-3 3,-3 4, -4 4,-4 3,-3 3)))|06000202050202002626000025250005040400020200000101000205070300262500002526000503040002010000010200
+GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3))|0700020100020202000204040202
+GEOMETRYCOLLECTION(MULTIPOINT(1 1,2 2),POINT(78 -78),POLYGON((1 1,1 2,2 2,2 1,1 1)))|0700030400020202020201009c019b010300010502020002020000010100
+0701000802040201010800020008020201000202040202020104
diff --git a/regress/typmod.sql b/regress/typmod.sql
index 981093b..d7bebd2 100644
--- a/regress/typmod.sql
+++ b/regress/typmod.sql
@@ -223,9 +223,9 @@ SELECT 'gg',
  coord_dimension, srid, type
 from geography_columns ORDER BY f_table_name;
 
-SELECT distinct 'catalog-schema', f_table_catalog,f_table_schema FROM geometry_columns
+SELECT distinct 'catalog-schema', f_table_catalog = current_database(),f_table_schema FROM geometry_columns
 UNION
-SELECT distinct 'catalog-schema', f_table_catalog,f_table_schema FROM geography_columns
+SELECT distinct 'catalog-schema', f_table_catalog = current_database(),f_table_schema FROM geography_columns
 ;
 
 CREATE TABLE tm.types (id serial, g geometry);
diff --git a/regress/typmod_expected b/regress/typmod_expected
index fb3853c..2e5716c 100644
--- a/regress/typmod_expected
+++ b/regress/typmod_expected
@@ -286,7 +286,7 @@ gg|polygonz4326|gg|3|4326|PolygonZ
 gg|polygonzm|gg|4|4326|PolygonZM
 gg|polygonzm0|gg|4|4326|PolygonZM
 gg|polygonzm4326|gg|4|4326|PolygonZM
-catalog-schema|postgis_reg|tm
+catalog-schema|t|tm
 num_types|136
 circularstring|0|Point|0|KO-BKO
 circularstring|0|PointNE|0|KO-BKO
@@ -13488,7 +13488,7 @@ multilinestringzm4326|4326|Triangle|3|KO-BKO-GKO-BGKO
 multilinestringzm4326|4326|Tin|3|KO-BKO-GKO-BGKO
 multilinestringzm4326||COUNT|2|
 multilinestringzm4326||GCOUNT|4|
-multipoint|0|Point|0|OK-BOK-GOK-BGOK
+multipoint|0|Point|0|KO-BKO-GKO-BGKO
 multipoint|0|PointNE|0|KO-BKO-GKO-BGKO
 multipoint|0|LineString|0|KO-BKO-GKO-BGKO
 multipoint|0|Polygon|0|KO-BKO-GKO-BGKO
@@ -13556,7 +13556,7 @@ multipoint|0|MultiSurface|3|KO-BKO-GKO-BGKO
 multipoint|0|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipoint|0|Triangle|3|KO-BKO-GKO-BGKO
 multipoint|0|Tin|3|KO-BKO-GKO-BGKO
-multipoint|4326|Point|0|OK-BOK-GOK-BGOK
+multipoint|4326|Point|0|KO-BKO-GKO-BGKO
 multipoint|4326|PointNE|0|KO-BKO-GKO-BGKO
 multipoint|4326|LineString|0|KO-BKO-GKO-BGKO
 multipoint|4326|Polygon|0|KO-BKO-GKO-BGKO
@@ -13624,9 +13624,9 @@ multipoint|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipoint|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipoint|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipoint|4326|Tin|3|KO-BKO-GKO-BGKO
-multipoint||COUNT|12|
-multipoint||GCOUNT|12|
-multipoint0|0|Point|0|OK-BOK-GOK-BGOK
+multipoint||COUNT|8|
+multipoint||GCOUNT|8|
+multipoint0|0|Point|0|KO-BKO-GKO-BGKO
 multipoint0|0|PointNE|0|KO-BKO-GKO-BGKO
 multipoint0|0|LineString|0|KO-BKO-GKO-BGKO
 multipoint0|0|Polygon|0|KO-BKO-GKO-BGKO
@@ -13694,7 +13694,7 @@ multipoint0|0|MultiSurface|3|KO-BKO-GKO-BGKO
 multipoint0|0|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipoint0|0|Triangle|3|KO-BKO-GKO-BGKO
 multipoint0|0|Tin|3|KO-BKO-GKO-BGKO
-multipoint0|4326|Point|0|OK-BOK-GOK-BGOK
+multipoint0|4326|Point|0|KO-BKO-GKO-BGKO
 multipoint0|4326|PointNE|0|KO-BKO-GKO-BGKO
 multipoint0|4326|LineString|0|KO-BKO-GKO-BGKO
 multipoint0|4326|Polygon|0|KO-BKO-GKO-BGKO
@@ -13762,9 +13762,9 @@ multipoint0|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipoint0|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipoint0|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipoint0|4326|Tin|3|KO-BKO-GKO-BGKO
-multipoint0||COUNT|12|
-multipoint0||GCOUNT|12|
-multipoint4326|0|Point|0|KO-BKO-GOK-BGOK
+multipoint0||COUNT|8|
+multipoint0||GCOUNT|8|
+multipoint4326|0|Point|0|KO-BKO-GKO-BGKO
 multipoint4326|0|PointNE|0|KO-BKO-GKO-BGKO
 multipoint4326|0|LineString|0|KO-BKO-GKO-BGKO
 multipoint4326|0|Polygon|0|KO-BKO-GKO-BGKO
@@ -13832,7 +13832,7 @@ multipoint4326|0|MultiSurface|3|KO-BKO-GKO-BGKO
 multipoint4326|0|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipoint4326|0|Triangle|3|KO-BKO-GKO-BGKO
 multipoint4326|0|Tin|3|KO-BKO-GKO-BGKO
-multipoint4326|4326|Point|0|OK-BOK-GOK-BGOK
+multipoint4326|4326|Point|0|KO-BKO-GKO-BGKO
 multipoint4326|4326|PointNE|0|KO-BKO-GKO-BGKO
 multipoint4326|4326|LineString|0|KO-BKO-GKO-BGKO
 multipoint4326|4326|Polygon|0|KO-BKO-GKO-BGKO
@@ -13900,8 +13900,8 @@ multipoint4326|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipoint4326|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipoint4326|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipoint4326|4326|Tin|3|KO-BKO-GKO-BGKO
-multipoint4326||COUNT|6|
-multipoint4326||GCOUNT|12|
+multipoint4326||COUNT|4|
+multipoint4326||GCOUNT|8|
 multipointm|0|Point|0|KO-BKO-GKO-BGKO
 multipointm|0|PointNE|0|KO-BKO-GKO-BGKO
 multipointm|0|LineString|0|KO-BKO-GKO-BGKO
@@ -13936,7 +13936,7 @@ multipointm|0|MultiSurface|2|KO-BKO-GKO-BGKO
 multipointm|0|PolyhedralSurface|2|KO-BKO-GKO-BGKO
 multipointm|0|Triangle|2|KO-BKO-GKO-BGKO
 multipointm|0|Tin|2|KO-BKO-GKO-BGKO
-multipointm|0|Point|1|OK-BOK-GOK-BGOK
+multipointm|0|Point|1|KO-BKO-GKO-BGKO
 multipointm|0|PointNE|1|KO-BKO-GKO-BGKO
 multipointm|0|LineString|1|KO-BKO-GKO-BGKO
 multipointm|0|Polygon|1|KO-BKO-GKO-BGKO
@@ -14004,7 +14004,7 @@ multipointm|4326|MultiSurface|2|KO-BKO-GKO-BGKO
 multipointm|4326|PolyhedralSurface|2|KO-BKO-GKO-BGKO
 multipointm|4326|Triangle|2|KO-BKO-GKO-BGKO
 multipointm|4326|Tin|2|KO-BKO-GKO-BGKO
-multipointm|4326|Point|1|OK-BOK-GOK-BGOK
+multipointm|4326|Point|1|KO-BKO-GKO-BGKO
 multipointm|4326|PointNE|1|KO-BKO-GKO-BGKO
 multipointm|4326|LineString|1|KO-BKO-GKO-BGKO
 multipointm|4326|Polygon|1|KO-BKO-GKO-BGKO
@@ -14038,8 +14038,8 @@ multipointm|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipointm|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipointm|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipointm|4326|Tin|3|KO-BKO-GKO-BGKO
-multipointm||COUNT|12|
-multipointm||GCOUNT|12|
+multipointm||COUNT|8|
+multipointm||GCOUNT|8|
 multipointm0|0|Point|0|KO-BKO-GKO-BGKO
 multipointm0|0|PointNE|0|KO-BKO-GKO-BGKO
 multipointm0|0|LineString|0|KO-BKO-GKO-BGKO
@@ -14074,7 +14074,7 @@ multipointm0|0|MultiSurface|2|KO-BKO-GKO-BGKO
 multipointm0|0|PolyhedralSurface|2|KO-BKO-GKO-BGKO
 multipointm0|0|Triangle|2|KO-BKO-GKO-BGKO
 multipointm0|0|Tin|2|KO-BKO-GKO-BGKO
-multipointm0|0|Point|1|OK-BOK-GOK-BGOK
+multipointm0|0|Point|1|KO-BKO-GKO-BGKO
 multipointm0|0|PointNE|1|KO-BKO-GKO-BGKO
 multipointm0|0|LineString|1|KO-BKO-GKO-BGKO
 multipointm0|0|Polygon|1|KO-BKO-GKO-BGKO
@@ -14142,7 +14142,7 @@ multipointm0|4326|MultiSurface|2|KO-BKO-GKO-BGKO
 multipointm0|4326|PolyhedralSurface|2|KO-BKO-GKO-BGKO
 multipointm0|4326|Triangle|2|KO-BKO-GKO-BGKO
 multipointm0|4326|Tin|2|KO-BKO-GKO-BGKO
-multipointm0|4326|Point|1|OK-BOK-GOK-BGOK
+multipointm0|4326|Point|1|KO-BKO-GKO-BGKO
 multipointm0|4326|PointNE|1|KO-BKO-GKO-BGKO
 multipointm0|4326|LineString|1|KO-BKO-GKO-BGKO
 multipointm0|4326|Polygon|1|KO-BKO-GKO-BGKO
@@ -14176,8 +14176,8 @@ multipointm0|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipointm0|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipointm0|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipointm0|4326|Tin|3|KO-BKO-GKO-BGKO
-multipointm0||COUNT|12|
-multipointm0||GCOUNT|12|
+multipointm0||COUNT|8|
+multipointm0||GCOUNT|8|
 multipointm4326|0|Point|0|KO-BKO-GKO-BGKO
 multipointm4326|0|PointNE|0|KO-BKO-GKO-BGKO
 multipointm4326|0|LineString|0|KO-BKO-GKO-BGKO
@@ -14212,7 +14212,7 @@ multipointm4326|0|MultiSurface|2|KO-BKO-GKO-BGKO
 multipointm4326|0|PolyhedralSurface|2|KO-BKO-GKO-BGKO
 multipointm4326|0|Triangle|2|KO-BKO-GKO-BGKO
 multipointm4326|0|Tin|2|KO-BKO-GKO-BGKO
-multipointm4326|0|Point|1|KO-BKO-GOK-BGOK
+multipointm4326|0|Point|1|KO-BKO-GKO-BGKO
 multipointm4326|0|PointNE|1|KO-BKO-GKO-BGKO
 multipointm4326|0|LineString|1|KO-BKO-GKO-BGKO
 multipointm4326|0|Polygon|1|KO-BKO-GKO-BGKO
@@ -14280,7 +14280,7 @@ multipointm4326|4326|MultiSurface|2|KO-BKO-GKO-BGKO
 multipointm4326|4326|PolyhedralSurface|2|KO-BKO-GKO-BGKO
 multipointm4326|4326|Triangle|2|KO-BKO-GKO-BGKO
 multipointm4326|4326|Tin|2|KO-BKO-GKO-BGKO
-multipointm4326|4326|Point|1|OK-BOK-GOK-BGOK
+multipointm4326|4326|Point|1|KO-BKO-GKO-BGKO
 multipointm4326|4326|PointNE|1|KO-BKO-GKO-BGKO
 multipointm4326|4326|LineString|1|KO-BKO-GKO-BGKO
 multipointm4326|4326|Polygon|1|KO-BKO-GKO-BGKO
@@ -14314,8 +14314,8 @@ multipointm4326|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipointm4326|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipointm4326|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipointm4326|4326|Tin|3|KO-BKO-GKO-BGKO
-multipointm4326||COUNT|6|
-multipointm4326||GCOUNT|12|
+multipointm4326||COUNT|4|
+multipointm4326||GCOUNT|8|
 multipointz|0|Point|0|KO-BKO-GKO-BGKO
 multipointz|0|PointNE|0|KO-BKO-GKO-BGKO
 multipointz|0|LineString|0|KO-BKO-GKO-BGKO
@@ -14333,7 +14333,7 @@ multipointz|0|MultiSurface|0|KO-BKO-GKO-BGKO
 multipointz|0|PolyhedralSurface|0|KO-BKO-GKO-BGKO
 multipointz|0|Triangle|0|KO-BKO-GKO-BGKO
 multipointz|0|Tin|0|KO-BKO-GKO-BGKO
-multipointz|0|Point|2|OK-BOK-GOK-BGOK
+multipointz|0|Point|2|KO-BKO-GKO-BGKO
 multipointz|0|PointNE|2|KO-BKO-GKO-BGKO
 multipointz|0|LineString|2|KO-BKO-GKO-BGKO
 multipointz|0|Polygon|2|KO-BKO-GKO-BGKO
@@ -14401,7 +14401,7 @@ multipointz|4326|MultiSurface|0|KO-BKO-GKO-BGKO
 multipointz|4326|PolyhedralSurface|0|KO-BKO-GKO-BGKO
 multipointz|4326|Triangle|0|KO-BKO-GKO-BGKO
 multipointz|4326|Tin|0|KO-BKO-GKO-BGKO
-multipointz|4326|Point|2|OK-BOK-GOK-BGOK
+multipointz|4326|Point|2|KO-BKO-GKO-BGKO
 multipointz|4326|PointNE|2|KO-BKO-GKO-BGKO
 multipointz|4326|LineString|2|KO-BKO-GKO-BGKO
 multipointz|4326|Polygon|2|KO-BKO-GKO-BGKO
@@ -14452,8 +14452,8 @@ multipointz|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipointz|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipointz|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipointz|4326|Tin|3|KO-BKO-GKO-BGKO
-multipointz||COUNT|12|
-multipointz||GCOUNT|12|
+multipointz||COUNT|8|
+multipointz||GCOUNT|8|
 multipointz0|0|Point|0|KO-BKO-GKO-BGKO
 multipointz0|0|PointNE|0|KO-BKO-GKO-BGKO
 multipointz0|0|LineString|0|KO-BKO-GKO-BGKO
@@ -14471,7 +14471,7 @@ multipointz0|0|MultiSurface|0|KO-BKO-GKO-BGKO
 multipointz0|0|PolyhedralSurface|0|KO-BKO-GKO-BGKO
 multipointz0|0|Triangle|0|KO-BKO-GKO-BGKO
 multipointz0|0|Tin|0|KO-BKO-GKO-BGKO
-multipointz0|0|Point|2|OK-BOK-GOK-BGOK
+multipointz0|0|Point|2|KO-BKO-GKO-BGKO
 multipointz0|0|PointNE|2|KO-BKO-GKO-BGKO
 multipointz0|0|LineString|2|KO-BKO-GKO-BGKO
 multipointz0|0|Polygon|2|KO-BKO-GKO-BGKO
@@ -14539,7 +14539,7 @@ multipointz0|4326|MultiSurface|0|KO-BKO-GKO-BGKO
 multipointz0|4326|PolyhedralSurface|0|KO-BKO-GKO-BGKO
 multipointz0|4326|Triangle|0|KO-BKO-GKO-BGKO
 multipointz0|4326|Tin|0|KO-BKO-GKO-BGKO
-multipointz0|4326|Point|2|OK-BOK-GOK-BGOK
+multipointz0|4326|Point|2|KO-BKO-GKO-BGKO
 multipointz0|4326|PointNE|2|KO-BKO-GKO-BGKO
 multipointz0|4326|LineString|2|KO-BKO-GKO-BGKO
 multipointz0|4326|Polygon|2|KO-BKO-GKO-BGKO
@@ -14590,8 +14590,8 @@ multipointz0|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipointz0|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipointz0|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipointz0|4326|Tin|3|KO-BKO-GKO-BGKO
-multipointz0||COUNT|12|
-multipointz0||GCOUNT|12|
+multipointz0||COUNT|8|
+multipointz0||GCOUNT|8|
 multipointz4326|0|Point|0|KO-BKO-GKO-BGKO
 multipointz4326|0|PointNE|0|KO-BKO-GKO-BGKO
 multipointz4326|0|LineString|0|KO-BKO-GKO-BGKO
@@ -14609,7 +14609,7 @@ multipointz4326|0|MultiSurface|0|KO-BKO-GKO-BGKO
 multipointz4326|0|PolyhedralSurface|0|KO-BKO-GKO-BGKO
 multipointz4326|0|Triangle|0|KO-BKO-GKO-BGKO
 multipointz4326|0|Tin|0|KO-BKO-GKO-BGKO
-multipointz4326|0|Point|2|KO-BKO-GOK-BGOK
+multipointz4326|0|Point|2|KO-BKO-GKO-BGKO
 multipointz4326|0|PointNE|2|KO-BKO-GKO-BGKO
 multipointz4326|0|LineString|2|KO-BKO-GKO-BGKO
 multipointz4326|0|Polygon|2|KO-BKO-GKO-BGKO
@@ -14677,7 +14677,7 @@ multipointz4326|4326|MultiSurface|0|KO-BKO-GKO-BGKO
 multipointz4326|4326|PolyhedralSurface|0|KO-BKO-GKO-BGKO
 multipointz4326|4326|Triangle|0|KO-BKO-GKO-BGKO
 multipointz4326|4326|Tin|0|KO-BKO-GKO-BGKO
-multipointz4326|4326|Point|2|OK-BOK-GOK-BGOK
+multipointz4326|4326|Point|2|KO-BKO-GKO-BGKO
 multipointz4326|4326|PointNE|2|KO-BKO-GKO-BGKO
 multipointz4326|4326|LineString|2|KO-BKO-GKO-BGKO
 multipointz4326|4326|Polygon|2|KO-BKO-GKO-BGKO
@@ -14728,8 +14728,8 @@ multipointz4326|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipointz4326|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipointz4326|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipointz4326|4326|Tin|3|KO-BKO-GKO-BGKO
-multipointz4326||COUNT|6|
-multipointz4326||GCOUNT|12|
+multipointz4326||COUNT|4|
+multipointz4326||GCOUNT|8|
 multipointzm|0|Point|0|KO-BKO-GKO-BGKO
 multipointzm|0|PointNE|0|KO-BKO-GKO-BGKO
 multipointzm|0|LineString|0|KO-BKO-GKO-BGKO
@@ -14781,7 +14781,7 @@ multipointzm|0|MultiSurface|1|KO-BKO-GKO-BGKO
 multipointzm|0|PolyhedralSurface|1|KO-BKO-GKO-BGKO
 multipointzm|0|Triangle|1|KO-BKO-GKO-BGKO
 multipointzm|0|Tin|1|KO-BKO-GKO-BGKO
-multipointzm|0|Point|3|OK-BOK-GOK-BGOK
+multipointzm|0|Point|3|KO-BKO-GKO-BGKO
 multipointzm|0|PointNE|3|KO-BKO-GKO-BGKO
 multipointzm|0|LineString|3|KO-BKO-GKO-BGKO
 multipointzm|0|Polygon|3|KO-BKO-GKO-BGKO
@@ -14849,7 +14849,7 @@ multipointzm|4326|MultiSurface|1|KO-BKO-GKO-BGKO
 multipointzm|4326|PolyhedralSurface|1|KO-BKO-GKO-BGKO
 multipointzm|4326|Triangle|1|KO-BKO-GKO-BGKO
 multipointzm|4326|Tin|1|KO-BKO-GKO-BGKO
-multipointzm|4326|Point|3|OK-BOK-GOK-BGOK
+multipointzm|4326|Point|3|KO-BKO-GKO-BGKO
 multipointzm|4326|PointNE|3|KO-BKO-GKO-BGKO
 multipointzm|4326|LineString|3|KO-BKO-GKO-BGKO
 multipointzm|4326|Polygon|3|KO-BKO-GKO-BGKO
@@ -14866,8 +14866,8 @@ multipointzm|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipointzm|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipointzm|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipointzm|4326|Tin|3|KO-BKO-GKO-BGKO
-multipointzm||COUNT|12|
-multipointzm||GCOUNT|12|
+multipointzm||COUNT|8|
+multipointzm||GCOUNT|8|
 multipointzm0|0|Point|0|KO-BKO-GKO-BGKO
 multipointzm0|0|PointNE|0|KO-BKO-GKO-BGKO
 multipointzm0|0|LineString|0|KO-BKO-GKO-BGKO
@@ -14919,7 +14919,7 @@ multipointzm0|0|MultiSurface|1|KO-BKO-GKO-BGKO
 multipointzm0|0|PolyhedralSurface|1|KO-BKO-GKO-BGKO
 multipointzm0|0|Triangle|1|KO-BKO-GKO-BGKO
 multipointzm0|0|Tin|1|KO-BKO-GKO-BGKO
-multipointzm0|0|Point|3|OK-BOK-GOK-BGOK
+multipointzm0|0|Point|3|KO-BKO-GKO-BGKO
 multipointzm0|0|PointNE|3|KO-BKO-GKO-BGKO
 multipointzm0|0|LineString|3|KO-BKO-GKO-BGKO
 multipointzm0|0|Polygon|3|KO-BKO-GKO-BGKO
@@ -14987,7 +14987,7 @@ multipointzm0|4326|MultiSurface|1|KO-BKO-GKO-BGKO
 multipointzm0|4326|PolyhedralSurface|1|KO-BKO-GKO-BGKO
 multipointzm0|4326|Triangle|1|KO-BKO-GKO-BGKO
 multipointzm0|4326|Tin|1|KO-BKO-GKO-BGKO
-multipointzm0|4326|Point|3|OK-BOK-GOK-BGOK
+multipointzm0|4326|Point|3|KO-BKO-GKO-BGKO
 multipointzm0|4326|PointNE|3|KO-BKO-GKO-BGKO
 multipointzm0|4326|LineString|3|KO-BKO-GKO-BGKO
 multipointzm0|4326|Polygon|3|KO-BKO-GKO-BGKO
@@ -15004,8 +15004,8 @@ multipointzm0|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipointzm0|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipointzm0|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipointzm0|4326|Tin|3|KO-BKO-GKO-BGKO
-multipointzm0||COUNT|12|
-multipointzm0||GCOUNT|12|
+multipointzm0||COUNT|8|
+multipointzm0||GCOUNT|8|
 multipointzm4326|0|Point|0|KO-BKO-GKO-BGKO
 multipointzm4326|0|PointNE|0|KO-BKO-GKO-BGKO
 multipointzm4326|0|LineString|0|KO-BKO-GKO-BGKO
@@ -15057,7 +15057,7 @@ multipointzm4326|0|MultiSurface|1|KO-BKO-GKO-BGKO
 multipointzm4326|0|PolyhedralSurface|1|KO-BKO-GKO-BGKO
 multipointzm4326|0|Triangle|1|KO-BKO-GKO-BGKO
 multipointzm4326|0|Tin|1|KO-BKO-GKO-BGKO
-multipointzm4326|0|Point|3|KO-BKO-GOK-BGOK
+multipointzm4326|0|Point|3|KO-BKO-GKO-BGKO
 multipointzm4326|0|PointNE|3|KO-BKO-GKO-BGKO
 multipointzm4326|0|LineString|3|KO-BKO-GKO-BGKO
 multipointzm4326|0|Polygon|3|KO-BKO-GKO-BGKO
@@ -15125,7 +15125,7 @@ multipointzm4326|4326|MultiSurface|1|KO-BKO-GKO-BGKO
 multipointzm4326|4326|PolyhedralSurface|1|KO-BKO-GKO-BGKO
 multipointzm4326|4326|Triangle|1|KO-BKO-GKO-BGKO
 multipointzm4326|4326|Tin|1|KO-BKO-GKO-BGKO
-multipointzm4326|4326|Point|3|OK-BOK-GOK-BGOK
+multipointzm4326|4326|Point|3|KO-BKO-GKO-BGKO
 multipointzm4326|4326|PointNE|3|KO-BKO-GKO-BGKO
 multipointzm4326|4326|LineString|3|KO-BKO-GKO-BGKO
 multipointzm4326|4326|Polygon|3|KO-BKO-GKO-BGKO
@@ -15142,8 +15142,8 @@ multipointzm4326|4326|MultiSurface|3|KO-BKO-GKO-BGKO
 multipointzm4326|4326|PolyhedralSurface|3|KO-BKO-GKO-BGKO
 multipointzm4326|4326|Triangle|3|KO-BKO-GKO-BGKO
 multipointzm4326|4326|Tin|3|KO-BKO-GKO-BGKO
-multipointzm4326||COUNT|6|
-multipointzm4326||GCOUNT|12|
+multipointzm4326||COUNT|4|
+multipointzm4326||GCOUNT|8|
 multipolygon|0|Point|0|KO-BKO-GKO-BGKO
 multipolygon|0|PointNE|0|KO-BKO-GKO-BGKO
 multipolygon|0|LineString|0|KO-BKO-GKO-BGKO
diff --git a/regress/wkb_expected b/regress/wkb_expected
index 621ce28..91fa0c8 100644
--- a/regress/wkb_expected
+++ b/regress/wkb_expected
@@ -1,7 +1,7 @@
-POINT EMPTY|010400000000000000|f|000000000400000000
-POINT Z EMPTY|01ec03000000000000|f|00000003ec00000000
-POINT M EMPTY|01d407000000000000|f|00000007d400000000
-POINT ZM EMPTY|01bc0b000000000000|f|0000000bbc00000000
+POINT EMPTY|0101000000000000000000f87f000000000000f87f|t|00000000017ff80000000000007ff8000000000000
+POINT Z EMPTY|01e9030000000000000000f87f000000000000f87f000000000000f87f|t|00000003e97ff80000000000007ff80000000000007ff8000000000000
+POINT M EMPTY|01d1070000000000000000f87f000000000000f87f000000000000f87f|t|00000007d17ff80000000000007ff80000000000007ff8000000000000
+POINT ZM EMPTY|01b90b0000000000000000f87f000000000000f87f000000000000f87f000000000000f87f|t|0000000bb97ff80000000000007ff80000000000007ff80000000000007ff8000000000000
 POINT(0 0)|010100000000000000000000000000000000000000|t|000000000100000000000000000000000000000000
 POINT Z (1 2 3)|01e9030000000000000000f03f00000000000000400000000000000840|t|00000003e93ff000000000000040000000000000004008000000000000
 POINT M (1 2 3)|01d1070000000000000000f03f00000000000000400000000000000840|t|00000007d13ff000000000000040000000000000004008000000000000
@@ -55,8 +55,8 @@ GEOMETRYCOLLECTION ZM EMPTY|01bf0b000000000000|t|0000000bbf00000000
 GEOMETRYCOLLECTION ZM (POINT ZM (0 0 0 0),LINESTRING ZM (0 0 0 0,1 1 1 1))|01bf0b00000200000001b90b0000000000000000000000000000000000000000000000000000000000000000000001ba0b0000020000000000000000000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f000000000000f03f|t|0000000bbf000000020000000bb900000000000000000000000000000000000000000000000000000000000000000000000bba0000000200000000000000000000000000000000000000000000000000000000000000003f [...]
 GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1))|01d70700000200000001d107000000000000000000000000000000000000000000000000000001d207000002000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f|t|00000007d70000000200000007d100000000000000000000000000000000000000000000000000000007d2000000020000000000000000000000000000000000000000000000003ff00000000000003ff00000000000003ff0000000000000
 GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1),GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1)))|01d70700000300000001d107000000000000000000000000000000000000000000000000000001d207000002000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f01d70700000200000001d107000000000000000000000000000000000000000000000000000001d207000002000000000000000000000000000000000000000000000000000000000000000000f03f000000000000 [...]
-GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1),POINT M EMPTY,GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1)))|01d70700000400000001d107000000000000000000000000000000000000000000000000000001d207000002000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f01d40700000000000001d70700000200000001d107000000000000000000000000000000000000000000000000000001d20700000200000000000000000000000000000000000000000000000000 [...]
-GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1),GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1),POINT M EMPTY,GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1))),POINT M EMPTY,GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1)))|01d70700000500000001d107000000000000000000000000000000000000000000000000000001d207000002000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f01d7070000 [...]
+GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1),POINT M EMPTY,GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1)))|01d70700000400000001d107000000000000000000000000000000000000000000000000000001d207000002000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f01d1070000000000000000f87f000000000000f87f000000000000f87f01d70700000200000001d107000000000000000000000000000000000000000000000000000001d2070000020000000000 [...]
+GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1),GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1),POINT M EMPTY,GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1))),POINT M EMPTY,GEOMETRYCOLLECTION M (POINT M (0 0 0),LINESTRING M (0 0 0,1 1 1)))|01d70700000500000001d107000000000000000000000000000000000000000000000000000001d207000002000000000000000000000000000000000000000000000000000000000000000000f03f000000000000f03f000000000000f03f01d7070000 [...]
 CIRCULARSTRING EMPTY|010800000000000000|t|000000000800000000
 CIRCULARSTRING Z EMPTY|01f003000000000000|t|00000003f000000000
 CIRCULARSTRING M EMPTY|01d807000000000000|t|00000007d800000000
diff --git a/spatial_ref_sys.sql b/spatial_ref_sys.sql
index 85829ea..9bd382a 100644
--- a/spatial_ref_sys.sql
+++ b/spatial_ref_sys.sql
@@ -106,7 +106,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4023 : MOLDREF99
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4023,'EPSG',4023,'GEOGCS["MOLDREF99",DATUM["MOLDREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4023"]]','+proj=longlat +ellps=GRS80 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4023,'EPSG',4023,'GEOGCS["MOLDREF99",DATUM["MOLDREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4023"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4024 : Unknown datum based upon the Krassowsky 1940 ellipsoid
 ---
@@ -214,7 +214,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4121 : GGRS87
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4121,'EPSG',4121,'GEOGCS["GGRS87",DATUM["Greek_Geodetic_Reference_System_1987",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY["EPSG","6121"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4121"]]','+proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.6 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4121,'EPSG',4121,'GEOGCS["GGRS87",DATUM["Greek_Geodetic_Reference_System_1987",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY["EPSG","6121"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4121"]]','+proj=longlat +datum=GGRS87 +no_defs ');
 ---
 --- EPSG 4122 : ATS77
 ---
@@ -238,7 +238,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4127 : Tete
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4127,'EPSG',4127,'GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[219.315,168.975,-166.145,0.198,5.926,-2.356,-57.104],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]]','+proj=longlat +ellps=clrk66 +towgs84=219.315,168.975,-166 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4127,'EPSG',4127,'GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-73.472,-51.66,-112.482,0.953,4.6,-2.368,0.586],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]]','+proj=longlat +ellps=clrk66 +towgs84=-73.472,-51.66,-112.482,0 [...]
 ---
 --- EPSG 4128 : Madzansua
 ---
@@ -250,7 +250,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4130 : Moznet
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4130,'EPSG',4130,'GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]]','+proj=longlat +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4130,'EPSG',4130,'GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]]','+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4131 : Indian 1960
 ---
@@ -258,7 +258,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4132 : FD58
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4132,'EPSG',4132,'GEOGCS["FD58",DATUM["Final_Datum_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-239.1,-170.02,397.5,0,0,0,0],AUTHORITY["EPSG","6132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4132"]]','+proj=longlat +ellps=clrk80 +towgs84=-239.1,-170.02,397.5,0,0,0,0 +no_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4132,'EPSG',4132,'GEOGCS["FD58",DATUM["Final_Datum_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-241.54,-163.64,396.06,0,0,0,0],AUTHORITY["EPSG","6132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4132"]]','+proj=longlat +ellps=clrk80 +towgs84=-241.54,-163.64,396.06,0,0,0,0  [...]
 ---
 --- EPSG 4133 : EST92
 ---
@@ -266,7 +266,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4134 : PSD93
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4134,'EPSG',4134,'GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.7101],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]]','+proj=longlat +ellps=clrk80 +towgs84=-18 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4134,'EPSG',4134,'GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]]','+proj=longlat +ellps=clrk80 +towgs84=-1 [...]
 ---
 --- EPSG 4135 : Old Hawaiian
 ---
@@ -306,7 +306,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4144 : Kalianpur 1937
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4144,'EPSG',4144,'GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]]','+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4144,'EPSG',4144,'GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]]','+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84 [...]
 ---
 --- EPSG 4145 : Kalianpur 1962
 ---
@@ -338,7 +338,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4152 : NAD83(HARN)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4152,'EPSG',4152,'GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4152,'EPSG',4152,'GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4153 : Rassadiran
 ---
@@ -354,7 +354,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4156 : S-JTSK
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4156,'EPSG',4156,'GEOGCS["S-JTSK",DATUM["Jednotne_Trigonometricke_Site_Katastralni",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY["EPSG","6156"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4156"]]','+proj=longlat +ellps=bessel +towgs84=589,76,480,0,0,0,0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4156,'EPSG',4156,'GEOGCS["S-JTSK",DATUM["System_Jednotne_Trigonometricke_Site_Katastralni",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY["EPSG","6156"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4156"]]','+proj=longlat +ellps=bessel +towgs84=589,76,480, [...]
 ---
 --- EPSG 4157 : Mount Dillon
 ---
@@ -366,7 +366,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4159 : ELD79
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4159,'EPSG',4159,'GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]]','+proj=longlat +ellps=intl +towgs84=-115.854,-99.0583,-152.46 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4159,'EPSG',4159,'GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]]','+proj=longlat +ellps=intl +towgs84=-115.8543,-99.0583,-152 [...]
 ---
 --- EPSG 4160 : Chos Malal 1914
 ---
@@ -450,7 +450,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4181 : Luxembourg 1930
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4181,'EPSG',4181,'GEOGCS["Luxembourg 1930",DATUM["Luxembourg_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-193,13.7,-39.3,-0.41,-2.933,2.688,0.43],AUTHORITY["EPSG","6181"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4181"]]','+proj=longlat +ellps=intl +towgs84=-193,13.7,-39.3,-0.41 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4181,'EPSG',4181,'GEOGCS["Luxembourg 1930",DATUM["Luxembourg_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189.6806,18.3463,-42.7695,-0.33746,-3.09264,2.53861,0.4598],AUTHORITY["EPSG","6181"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4181"]]','+proj=longlat +ellps=intl +towgs84=- [...]
 ---
 --- EPSG 4182 : Azores Occidental 1939
 ---
@@ -494,7 +494,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4194 : Qornoq 1927
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4194,'EPSG',4194,'GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[163.511,127.533,-159.789,0,0,0.814,-0.6],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]]','+proj=longlat +ellps=intl +towgs84=163.511,127.533,-159.789,0,0, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4194,'EPSG',4194,'GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[164,138,-189,0,0,0,0],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]]','+proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4195 : Scoresbysund 1952
 ---
@@ -518,7 +518,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4200 : Pulkovo 1995
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4200,'EPSG',4200,'GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]]','+proj=longlat +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4200,'EPSG',4200,'GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]]','+proj=longlat +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,- [...]
 ---
 --- EPSG 4201 : Adindan
 ---
@@ -550,7 +550,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4208 : Aratu
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4208,'EPSG',4208,'GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-161,308,-142,0,0,0,0],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]]','+proj=longlat +ellps=intl +towgs84=-161,308,-142,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4208,'EPSG',4208,'GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-151.99,287.04,-147.45,0,0,0,0],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]]','+proj=longlat +ellps=intl +towgs84=-151.99,287.04,-147.45,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4209 : Arc 1950
 ---
@@ -606,15 +606,15 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4223 : Carthage
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4223,'EPSG',4223,'GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]]','+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-263,6,431,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4223,'EPSG',4223,'GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]]','+proj=longlat +datum=carthage +no_defs ');
 ---
 --- EPSG 4224 : Chua
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4224,'EPSG',4224,'GEOGCS["Chua",DATUM["Chua",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-134,229,-29,0,0,0,0],AUTHORITY["EPSG","6224"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4224"]]','+proj=longlat +ellps=intl +towgs84=-134,229,-29,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4224,'EPSG',4224,'GEOGCS["Chua",DATUM["Chua",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143.87,243.37,-33.52,0,0,0,0],AUTHORITY["EPSG","6224"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4224"]]','+proj=longlat +ellps=intl +towgs84=-143.87,243.37,-33.52,0,0,0,0 +no_defs ');
 ---
---- EPSG 4225 : Corrego Alegre
+--- EPSG 4225 : Corrego Alegre 1970-72
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4225,'EPSG',4225,'GEOGCS["Corrego Alegre",DATUM["Corrego_Alegre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]]','+proj=longlat +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4225,'EPSG',4225,'GEOGCS["Corrego Alegre 1970-72",DATUM["Corrego_Alegre_1970_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-205.57,168.77,-4.12,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]]','+proj=longlat +ellps=intl +towgs84=-205.57,168.77,-4. [...]
 ---
 --- EPSG 4226 : Cote d'Ivoire
 ---
@@ -638,7 +638,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4231 : ED87
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4231,'EPSG',4231,'GEOGCS["ED87",DATUM["European_Datum_1987",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-83.11,-97.38,-117.22,0.00569291,-0.0446976,0.0442851,0.1218],AUTHORITY["EPSG","6231"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4231"]]','+proj=longlat +ellps=intl +towgs84=-83.11, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4231,'EPSG',4231,'GEOGCS["ED87",DATUM["European_Datum_1987",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-83.11,-97.38,-117.22,0.00569290865241986,-0.0446975835137458,0.0442850539012516,0.1218],AUTHORITY["EPSG","6231"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4231"]]','+proj=longlat + [...]
 ---
 --- EPSG 4232 : Fahud
 ---
@@ -786,15 +786,15 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4268 : NAD27 Michigan
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4268,'EPSG',4268,'GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]]','+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4268,'EPSG',4268,'GEOGCS["NAD27 Michigan",DATUM["NAD27_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]]','+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs ');
 ---
 --- EPSG 4269 : NAD83
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4269,'EPSG',4269,'GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4269,'EPSG',4269,'GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]]','+proj=longlat +datum=NAD83 +no_defs ');
 ---
 --- EPSG 4270 : Nahrwan 1967
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4270,'EPSG',4270,'GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-243,-192,477,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]]','+proj=longlat +ellps=clrk80 +towgs84=-243,-192,477,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4270,'EPSG',4270,'GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]]','+proj=longlat +ellps=clrk80 +towgs84=-242.2,-144.9,370.3,0,0,0,0 +n [...]
 ---
 --- EPSG 4271 : Naparima 1972
 ---
@@ -802,7 +802,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4272 : NZGD49
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4272,'EPSG',4272,'GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]]','+proj=longlat +ellps=intl +towgs84=59.47,-5.04 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4272,'EPSG',4272,'GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]]','+proj=longlat +datum=nzgd49 +towgs84=59.47,-5. [...]
 ---
 --- EPSG 4273 : NGO 1948
 ---
@@ -822,7 +822,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4277 : OSGB 1936
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4277,'EPSG',4277,'GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]]','+proj=longlat +ellps=airy +towgs84=446.448,-125.157,542. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4277,'EPSG',4277,'GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]]','+proj=longlat +datum=OSGB36 +no_defs ');
 ---
 --- EPSG 4278 : OSGB70
 ---
@@ -838,7 +838,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4281 : Palestine 1923
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4281,'EPSG',4281,'GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4281"]]','+proj=longlat +a=6378300.789 + [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4281,'EPSG',4281,'GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4281"]]','+proj=longlat +a=6378300.789 [...]
 ---
 --- EPSG 4282 : Pointe Noire
 ---
@@ -850,11 +850,11 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4284 : Pulkovo 1942
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4284,'EPSG',4284,'GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]]','+proj=longlat +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4284,'EPSG',4284,'GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]]','+proj=longlat +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0. [...]
 ---
 --- EPSG 4285 : Qatar 1974
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4285,'EPSG',4285,'GEOGCS["Qatar 1974",DATUM["Qatar_1974",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-128,-283,22,0,0,0,0],AUTHORITY["EPSG","6285"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4285"]]','+proj=longlat +ellps=intl +towgs84=-128,-283,22,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4285,'EPSG',4285,'GEOGCS["Qatar 1974",DATUM["Qatar_1974",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY["EPSG","6285"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4285"]]','+proj=longlat +ellps=intl +towgs84=-128.16,-282.42,21.93,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4286 : Qatar 1948
 ---
@@ -870,7 +870,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4289 : Amersfoort
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4289,'EPSG',4289,'GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]]','+proj=longlat +ellps=bessel +towgs84=565.41 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4289,'EPSG',4289,'GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[565.4171,50.3319,465.5524,-0.398957388243134,0.343987817378283,-1.87740163998045,4.0725],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]]','+proj=longlat [...]
 ---
 --- EPSG 4291 : SAD69
 ---
@@ -902,11 +902,11 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4298 : Timbalai 1948
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4298,'EPSG',4298,'GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]]','+proj=longlat +ellps=evrstSS +towgs84=-533.4,66 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4298,'EPSG',4298,'GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]]','+proj=longlat +ellps=evrstSS +towgs84=-679,669,-48,0,0,0,0 [...]
 ---
 --- EPSG 4299 : TM65
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4299,'EPSG',4299,'GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]]','+proj=longlat +ellps=mod_airy +towgs84=482.5,-130.6,564.6,-1. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4299,'EPSG',4299,'GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]]','+proj=longlat +datum=ire65 +no_defs ');
 ---
 --- EPSG 4300 : TM75
 ---
@@ -914,7 +914,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4301 : Tokyo
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4301,'EPSG',4301,'GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]]','+proj=longlat +ellps=bessel +towgs84=-148,507,685,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4301,'EPSG',4301,'GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]]','+proj=longlat +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4302 : Trinidad 1903
 ---
@@ -934,7 +934,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4307 : Nord Sahara 1959
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4307,'EPSG',4307,'GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]]','+proj=longlat +ellps=clrk80 +towgs84=-186,-93,310,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4307,'EPSG',4307,'GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]]','+proj=longlat +ellps=clrk80 +t [...]
 ---
 --- EPSG 4308 : RT38
 ---
@@ -954,15 +954,15 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4312 : MGI
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4312,'EPSG',4312,'GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]]','+proj=longlat +ellps=bessel +towgs84=57 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4312,'EPSG',4312,'GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]]','+proj=longlat +datum=hermannskogel +no_ [...]
 ---
 --- EPSG 4313 : Belge 1972
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4313,'EPSG',4313,'GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-106.869,52.2978,-103.724,0.3366,-0.457,1.8422,1.2747],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4313"]]','+proj=longlat +ellps=intl +towgs84=- [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4313,'EPSG',4313,'GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-106.8686,52.2978,-103.7239,0.3366,-0.457,1.8422,-1.2747],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4313"]]','+proj=longlat +ellps=intl +towgs8 [...]
 ---
 --- EPSG 4314 : DHDN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4314,'EPSG',4314,'GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]]','+proj=longlat +ellps=bessel +towgs84=598.1,73.7,41 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4314,'EPSG',4314,'GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]]','+proj=longlat +datum=potsdam +no_defs ');
 ---
 --- EPSG 4315 : Conakry 1905
 ---
@@ -1008,9 +1008,9 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4475,'EPSG',4475,'GEOGCS["Cadastre 1997",DATUM["Cadastre_1997",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-381.788,-57.501,-256.673,0,0,0,0],AUTHORITY["EPSG","1037"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4475"]]','+proj=longlat +ellps=intl +towgs84=-381.788,-57.501,-256.673,0,0,0 [...]
 ---
---- EPSG 4483 : Mexican Datum of 1993
+--- EPSG 4483 : Mexico ITRF92
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4483,'EPSG',4483,'GEOGCS["Mexican Datum of 1993",DATUM["Mexican_Datum_of_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4483,'EPSG',4483,'GEOGCS["Mexico ITRF92",DATUM["Mexico_ITRF92",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4490 : China Geodetic Coordinate System 2000
 ---
@@ -1070,7 +1070,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4611 : Hong Kong 1980
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4611,'EPSG',4611,'GEOGCS["Hong Kong 1980",DATUM["Hong_Kong_1980",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425],AUTHORITY["EPSG","6611"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4611"]]','+proj=longlat +ellps=intl +towgs84= [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4611,'EPSG',4611,'GEOGCS["Hong Kong 1980",DATUM["Hong_Kong_1980",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,-2.243649,-1.158827,-1.094246],AUTHORITY["EPSG","6611"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4611"]]','+proj=longlat +ellps=intl +towgs [...]
 ---
 --- EPSG 4612 : JGD2000
 ---
@@ -1082,7 +1082,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4614 : QND95
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4614,'EPSG',4614,'GEOGCS["QND95",DATUM["Qatar_National_Datum_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706],AUTHORITY["EPSG","6614"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4614"]]','+proj=longlat +ellps=intl +towgs84=-1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4614,'EPSG',4614,'GEOGCS["QND95",DATUM["Qatar_National_Datum_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.657065],AUTHORITY["EPSG","6614"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4614"]]','+proj=longlat +ellps=intl +to [...]
 ---
 --- EPSG 4615 : Porto Santo
 ---
@@ -1098,7 +1098,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4618 : SAD69
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4618,'EPSG',4618,'GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]]','+proj=longlat +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4618,'EPSG',4618,'GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]]','+proj=longlat +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +n [...]
 ---
 --- EPSG 4619 : SWEREF99
 ---
@@ -1122,7 +1122,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4624 : RGFG95
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4624,'EPSG',4624,'GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[2,2,-2,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]]','+proj=longlat +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4624,'EPSG',4624,'GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4625 : Martinique 1938
 ---
@@ -1198,7 +1198,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4643 : ST71 Belep
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4643,'EPSG',4643,'GEOGCS["ST71 Belep",DATUM["ST71_Belep",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7],AUTHORITY["EPSG","6643"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4643"]]','+proj=longlat +ellps=intl +towgs84=-480.26,-438.32 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4643,'EPSG',4643,'GEOGCS["ST71 Belep",DATUM["ST71_Belep",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002],AUTHORITY["EPSG","6643"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4643"]]','+proj=longlat +ellps=intl +towgs84=-480.26,-438 [...]
 ---
 --- EPSG 4644 : NEA74 Noumea
 ---
@@ -1210,7 +1210,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4646 : Grand Comoros
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4646,'EPSG',4646,'GEOGCS["Grand Comoros",DATUM["Grand_Comoros",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6646"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4646"]]','+proj=longlat +ellps=intl +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4646,'EPSG',4646,'GEOGCS["Grand Comoros",DATUM["Grand_Comoros",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-963,510,-359,0,0,0,0],AUTHORITY["EPSG","6646"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4646"]]','+proj=longlat +ellps=intl +towgs84=-963,510,-359,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4657 : Reykjavik 1900
 ---
@@ -1222,11 +1222,11 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4659 : ISN93
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4659,'EPSG',4659,'GEOGCS["ISN93",DATUM["Islands_Network_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4659"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4659,'EPSG',4659,'GEOGCS["ISN93",DATUM["Islands_Net_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4659"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4660 : Helle 1954
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4660,'EPSG',4660,'GEOGCS["Helle 1954",DATUM["Helle_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[982.609,552.753,-540.873,6.68163,-31.6115,-19.8482,16.805],AUTHORITY["EPSG","6660"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4660"]]','+proj=longlat +ellps=intl +towgs84=982.609,552.7 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4660,'EPSG',4660,'GEOGCS["Helle 1954",DATUM["Helle_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[982.6087,552.753,-540.873,6.68162662527694,-31.6114924086422,-19.8481610048168,16.805],AUTHORITY["EPSG","6660"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4660"]]','+proj=longlat +ellps [...]
 ---
 --- EPSG 4661 : LKS92
 ---
@@ -1278,11 +1278,11 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4673 : Chatham Islands 1979
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4673,'EPSG',4673,'GEOGCS["Chatham Islands 1979",DATUM["Chatham_Islands_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[174.05,-25.49,112.57,-0,-0,0.554,0.2263],AUTHORITY["EPSG","6673"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4673"]]','+proj=longlat +ellps=intl +towgs84=174.0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4673,'EPSG',4673,'GEOGCS["Chatham Islands 1979",DATUM["Chatham_Islands_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[174.05,-25.49,112.57,0,0,0.554,0.2263],AUTHORITY["EPSG","6673"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4673"]]','+proj=longlat +ellps=intl +towgs84=174.05, [...]
 ---
 --- EPSG 4674 : SIRGAS 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4674,'EPSG',4674,'GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4674,'EPSG',4674,'GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0 [...]
 ---
 --- EPSG 4675 : Guam 1963
 ---
@@ -1338,7 +1338,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4688 : Fatu Iva 72
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4688,'EPSG',4688,'GEOGCS["Fatu Iva 72",DATUM["Fatu_Iva_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074],AUTHORITY["EPSG","6688"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4688"]]','+proj=longlat +ellps=intl +towgs84=347.103,1078 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4688,'EPSG',4688,'GEOGCS["Fatu Iva 72",DATUM["Fatu_Iva_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[347.103,1078.125,2623.922,-33.8875,70.6773,-9.3943,186.074],AUTHORITY["EPSG","6688"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4688"]]','+proj=longlat +ellps=intl +towgs84=347.103,10 [...]
 ---
 --- EPSG 4689 : IGN63 Hiva Oa
 ---
@@ -1346,7 +1346,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4690 : Tahiti 79
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4690,'EPSG',4690,'GEOGCS["Tahiti 79",DATUM["Tahiti_79",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6690"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4690"]]','+proj=longlat +ellps=intl +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4690,'EPSG',4690,'GEOGCS["Tahiti 79",DATUM["Tahiti_79",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[221.525,152.948,176.768,-2.3847,-1.3896,-0.877,11.4741],AUTHORITY["EPSG","6690"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4690"]]','+proj=longlat +ellps=intl +towgs84=221.525,152.948,17 [...]
 ---
 --- EPSG 4691 : Moorea 87
 ---
@@ -1458,7 +1458,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4718 : Solomon 1968
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4718,'EPSG',4718,'GEOGCS["Solomon 1968",DATUM["Solomon_1968",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[252,-209,-751,0,0,0,0],AUTHORITY["EPSG","6718"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4718"]]','+proj=longlat +ellps=intl +towgs84=252,-209,-751,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4718,'EPSG',4718,'GEOGCS["Solomon 1968",DATUM["Solomon_1968",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[230,-199,-752,0,0,0,0],AUTHORITY["EPSG","6718"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4718"]]','+proj=longlat +ellps=intl +towgs84=230,-199,-752,0,0,0,0 +no_defs ');
 ---
 --- EPSG 4719 : Easter Island 1967
 ---
@@ -1476,9 +1476,9 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4722,'EPSG',4722,'GEOGCS["South Georgia 1968",DATUM["South_Georgia_1968",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-794,119,-298,0,0,0,0],AUTHORITY["EPSG","6722"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4722"]]','+proj=longlat +ellps=intl +towgs84=-794,119,-298,0,0,0,0 +no_defs ');
 ---
---- EPSG 4723 : Grand Cayman 1959
+--- EPSG 4723 : GCGD59
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4723,'EPSG',4723,'GEOGCS["Grand Cayman 1959",DATUM["Grand_Cayman_1959",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[67.8,106.1,138.8,0,0,0,0],AUTHORITY["EPSG","6723"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4723"]]','+proj=longlat +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4723,'EPSG',4723,'GEOGCS["GCGD59",DATUM["Grand_Cayman_Geodetic_Datum_1959",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-179.483,-69.379,-27.584,-7.862,8.163,6.042,-13.925],AUTHORITY["EPSG","6723"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4723"]]','+proj=longlat +ellps=clrk66 [...]
 ---
 --- EPSG 4724 : Diego Garcia 1969
 ---
@@ -1488,9 +1488,9 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4725,'EPSG',4725,'GEOGCS["Johnston Island 1961",DATUM["Johnston_Island_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[189,-79,-202,0,0,0,0],AUTHORITY["EPSG","6725"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4725"]]','+proj=longlat +ellps=intl +towgs84=189,-79,-202,0,0,0,0 +no_defs ');
 ---
---- EPSG 4726 : Little Cayman 1961
+--- EPSG 4726 : SIGD61
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4726,'EPSG',4726,'GEOGCS["Little Cayman 1961",DATUM["Little_Cayman_1961",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[42,124,147,0,0,0,0],AUTHORITY["EPSG","6726"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4726"]]','+proj=longlat +ellps=clrk66 +towgs84=42,124,147,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4726,'EPSG',4726,'GEOGCS["SIGD61",DATUM["Sister_Islands_Geodetic_Datum_1961",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[8.853,-52.644,180.304,-0.393,-2.323,2.96,-24.081],AUTHORITY["EPSG","6726"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4726"]]','+proj=longlat +ellps=clrk66  [...]
 ---
 --- EPSG 4727 : Midway 1961
 ---
@@ -1546,7 +1546,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4740 : PZ-90
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4740,'EPSG',4740,'GEOGCS["PZ-90",DATUM["Parametrop_Zemp_1990",SPHEROID["PZ-90",6378136,298.257839303,AUTHORITY["EPSG","7054"]],TOWGS84[0,0,1.5,-0,-0,0.076,0],AUTHORITY["EPSG","6740"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4740"]]','+proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0,0,1.5,-0,-0,0.076,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4740,'EPSG',4740,'GEOGCS["PZ-90",DATUM["Parametrop_Zemp_1990",SPHEROID["PZ-90",6378136,298.257839303,AUTHORITY["EPSG","7054"]],TOWGS84[0,0,1.5,0,0,0.076,0],AUTHORITY["EPSG","6740"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4740"]]','+proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0,0,1.5,0,0,0.076,0 +no_defs ');
 ---
 --- EPSG 4741 : FD54
 ---
@@ -1558,7 +1558,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4743 : Karbala 1979
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4743,'EPSG',4743,'GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]]','+proj=longlat +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4743,'EPSG',4743,'GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]]','+proj=longlat +ellps=clrk80 +towgs84=70.995,-335.916,262.898,0, [...]
 ---
 --- EPSG 4744 : Nahrwan 1934
 ---
@@ -1602,7 +1602,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4754 : LGD2006
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4754,'EPSG',4754,'GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]]','+proj=longlat +ellps=intl +towgs84=-208.406,-109.878,-2.576 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4754,'EPSG',4754,'GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]]','+proj=longlat +ellps=intl +towgs84=-208.4058,-109.8777,-2 [...]
 ---
 --- EPSG 4755 : DGN95
 ---
@@ -1610,7 +1610,7 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4756 : VN-2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4756,'EPSG',4756,'GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]]','+proj=longlat +ellps=WGS84 +no_defs ');
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4756,'EPSG',4756,'GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-192.873,-39.382,-111.202,-0.00205,-0.0005,0.00335,0.0188],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]]','+proj=longlat +ellps=WGS84 +towgs84=-192.873,-39.38 [...]
 ---
 --- EPSG 4757 : SVY21
 ---
@@ -1714,11 +1714,11 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 4818 : S-JTSK (Ferro)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4818,'EPSG',4818,'GEOGCS["S-JTSK (Ferro)",DATUM["S_JTSK_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY["EPSG","6818"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4818"]]','+proj=longlat +ellps=bessel +towgs84=589,76,480,0,0,0,0 +pm=fer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4818,'EPSG',4818,'GEOGCS["S-JTSK (Ferro)",DATUM["System_Jednotne_Trigonometricke_Site_Katastralni_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY["EPSG","6818"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4818"]]','+proj=longlat +ellps= [...]
 ---
 --- EPSG 4819 : Nord Sahara 1959 (Paris)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4819,'EPSG',4819,'GEOGCS["Nord Sahara 1959 (Paris)",DATUM["Nord_Sahara_1959_Paris",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY["EPSG","6819"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4819"]]','+proj=longlat +ellps=clrk80 +towgs84=-186,-93,31 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4819,'EPSG',4819,'GEOGCS["Nord Sahara 1959 (Paris)",DATUM["Nord_Sahara_1959_Paris",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547],AUTHORITY["EPSG","6819"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4819"]]','+proj=longla [...]
 ---
 --- EPSG 4820 : Segara (Jakarta)
 ---
@@ -1752,945 +1752,997 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4904,'EPSG',4904,'GEOGCS["Lisbon 1890 (Lisbon)",DATUM["Lisbon_1890_Lisbon",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[508.088,-191.042,565.223,0,0,0,0],AUTHORITY["EPSG","6904"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4904"]]','+proj=longlat +ellps=bessel +towgs84 [...]
 ---
---- EPSG 5013 : None
+--- EPSG 5013 : PTRA08
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5013,'EPSG',5013,'GEOGCS["PTRA08",DATUM["Autonomous_Regions_of_Portugal_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1041"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5013"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5132 : None
+--- EPSG 5132 : Tokyo 1892
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5132,'EPSG',5132,'GEOGCS["Tokyo 1892",DATUM["Tokyo_1892",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1048"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5132"]]','+proj=longlat +ellps=bessel +no_defs ');
 ---
---- EPSG 5228 : None
+--- EPSG 5228 : S-JTSK/05
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5228,'EPSG',5228,'GEOGCS["S-JTSK/05",DATUM["System_Jednotne_Trigonometricke_Site_Katastralni_05",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[572.213,85.334,461.94,4.9732,1.529,5.2484,3.5378],AUTHORITY["EPSG","1052"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5228"]]','+proj=longla [...]
 ---
---- EPSG 5229 : None
+--- EPSG 5229 : S-JTSK/05 (Ferro)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5229,'EPSG',5229,'GEOGCS["S-JTSK/05 (Ferro)",DATUM["System_Jednotne_Trigonometricke_Site_Katastralni_05_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[572.213,85.334,461.94,4.9732,1.529,5.2484,3.5378],AUTHORITY["EPSG","1055"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 5233 : None
+--- EPSG 5233 : SLD99
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5233,'EPSG',5233,'GEOGCS["SLD99",DATUM["Sri_Lanka_Datum_1999",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[-0.293,766.95,87.713,0.195704,1.695068,3.473016,-0.039338],AUTHORITY["EPSG","1053"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5233"]]','+proj=longlat +a=63772 [...]
 ---
---- EPSG 5246 : None
+--- EPSG 5246 : GDBD2009
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5246,'EPSG',5246,'GEOGCS["GDBD2009",DATUM["Geocentric_Datum_Brunei_Darussalam_2009",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1056"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5246"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5252 : None
+--- EPSG 5252 : TUREF
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5252,'EPSG',5252,'GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5264 : None
+--- EPSG 5264 : DRUKREF 03
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5264,'EPSG',5264,'GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5324 : None
+--- EPSG 5324 : ISN2004
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5324,'EPSG',5324,'GEOGCS["ISN2004",DATUM["Islands_Net_2004",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1060"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5324"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5340 : None
+--- EPSG 5340 : POSGAR 2007
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5340,'EPSG',5340,'GEOGCS["POSGAR 2007",DATUM["Posiciones_Geodesicas_Argentinas_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1062"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5340"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5354 : None
+--- EPSG 5354 : MARGEN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5354,'EPSG',5354,'GEOGCS["MARGEN",DATUM["Marco_Geodesico_Nacional",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1063"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5354"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5360 : None
+--- EPSG 5360 : SIRGAS-Chile
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5360,'EPSG',5360,'GEOGCS["SIRGAS-Chile",DATUM["SIRGAS_Chile",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1064"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5360"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5365 : None
+--- EPSG 5365 : CR05
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5365,'EPSG',5365,'GEOGCS["CR05",DATUM["Costa_Rica_2005",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1065"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5365"]]','+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5371 : None
+--- EPSG 5371 : MACARIO SOLIS
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5371,'EPSG',5371,'GEOGCS["MACARIO SOLIS",DATUM["Sistema_Geodesico_Nacional_de_Panama_MACARIO_SOLIS",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1066"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5371"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 [...]
 ---
---- EPSG 5373 : None
+--- EPSG 5373 : Peru96
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5373,'EPSG',5373,'GEOGCS["Peru96",DATUM["Peru96",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1067"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5373"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5381 : None
+--- EPSG 5381 : SIRGAS-ROU98
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5381,'EPSG',5381,'GEOGCS["SIRGAS-ROU98",DATUM["SIRGAS_ROU98",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1068"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5381"]]','+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5393 : None
+--- EPSG 5393 : SIRGAS_ES2007.8
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5393,'EPSG',5393,'GEOGCS["SIRGAS_ES2007.8",DATUM["SIRGAS_ES2007_8",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1069"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5393"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5451 : None
+--- EPSG 5451 : Ocotepeque 1935
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5451,'EPSG',5451,'GEOGCS["Ocotepeque 1935",DATUM["Ocotepeque_1935",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY["EPSG","1070"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5451"]]','+proj=longlat +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +no_defs ');
 ---
---- EPSG 5464 : None
+--- EPSG 5464 : Sibun Gorge 1922
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5464,'EPSG',5464,'GEOGCS["Sibun Gorge 1922",DATUM["Sibun_Gorge_1922",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","1071"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5464"]]','+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs ');
 ---
---- EPSG 5467 : None
+--- EPSG 5467 : Panama-Colon 1911
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5467,'EPSG',5467,'GEOGCS["Panama-Colon 1911",DATUM["Panama_Colon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","1072"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5467"]]','+proj=longlat +ellps=clrk66 +no_defs ');
 ---
---- EPSG 5489 : None
+--- EPSG 5489 : RGAF09
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5489,'EPSG',5489,'GEOGCS["RGAF09",DATUM["Reseau_Geodesique_des_Antilles_Francaises_2009",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1073"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5489"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
 ---
---- EPSG 5524 : None
+--- EPSG 5524 : Corrego Alegre 1961
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5524,'EPSG',5524,'GEOGCS["Corrego Alegre 1961",DATUM["Corrego_Alegre_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","1074"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5524"]]','+proj=longlat +ellps=intl +no_defs ');
 ---
---- EPSG 5527 : None
+--- EPSG 5527 : SAD69(96)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5527,'EPSG',5527,'GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]]','+proj=longlat +ellps=aust_SA +towgs84=-67.35,3.88,-38.22,0,0 [...]
 ---
---- EPSG 5546 : None
+--- EPSG 5546 : PNG94
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5546,'EPSG',5546,'GEOGCS["PNG94",DATUM["Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1076"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5546"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
+---
+--- EPSG 5561 : UCS-2000
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5561,'EPSG',5561,'GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]]','+proj=longlat +ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +no_defs ');
+---
+--- EPSG 5593 : FEH2010
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5593,'EPSG',5593,'GEOGCS["FEH2010",DATUM["Fehmarnbelt_Datum_2010",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1078"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5593"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
+---
+--- EPSG 5681 : DB_REF
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5681,'EPSG',5681,'GEOGCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5681"]]','+proj=longlat +ellps=bessel +no_defs ');
+---
+--- EPSG 5886 : TGD2005
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5886,'EPSG',5886,'GEOGCS["TGD2005",DATUM["Tonga_Geodetic_Datum_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1095"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5886"]]','+proj=longlat +ellps=GRS80 +no_defs ');
+---
+--- EPSG 6135 : CIGD11
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6135,'EPSG',6135,'GEOGCS["CIGD11",DATUM["Cayman_Islands_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1100"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6135"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
+---
+--- EPSG 6207 : Nepal 1981
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6207,'EPSG',6207,'GEOGCS["Nepal 1981",DATUM["Nepal_1981",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[293.17,726.18,245.36,0,0,0,0],AUTHORITY["EPSG","1111"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6207"]]','+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs8 [...]
+---
+--- EPSG 6318 : NAD83(2011)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6318,'EPSG',6318,'GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]]','+proj=longlat +ellps=GRS80 +no_defs ');
+---
+--- EPSG 6322 : NAD83(PA11)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6322,'EPSG',6322,'GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]]','+proj=longlat +ellps=GRS80 +no_defs ');
+---
+--- EPSG 6325 : NAD83(MA11)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6325,'EPSG',6325,'GEOGCS["NAD83(MA11)",DATUM["NAD83_National_Spatial_Reference_System_MA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1118"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6325"]]','+proj=longlat +ellps=GRS80 +no_defs ');
+---
+--- EPSG 6365 : Mexico ITRF2008
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6365,'EPSG',6365,'GEOGCS["Mexico ITRF2008",DATUM["Mexico_ITRF2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6365"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
+---
+--- EPSG 6668 : JGD2011
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6668,'EPSG',6668,'GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]]','+proj=longlat +ellps=GRS80 +no_defs ');
+---
+--- EPSG 6706 : RDN2008
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6706,'EPSG',6706,'GEOGCS["RDN2008",DATUM["Rete_Dinamica_Nazionale_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6706"]]','+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ');
+---
+--- EPSG 6783 : NAD83(CORS96)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6783,'EPSG',6783,'GEOGCS["NAD83(CORS96)",DATUM["NAD83_Continuously_Operating_Reference_Station_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6783"]]','+proj=longlat +ellps=GRS80 +no_defs ');
 ---
 --- EPSG 2000 : Anguilla 1957 / British West Indies Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2000,'EPSG',2000,'PROJCS["Anguilla 1957 / British West Indies Grid",GEOGCS["Anguilla 1957",DATUM["Anguilla_1957",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6600"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4600"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2000,'EPSG',2000,'PROJCS["Anguilla 1957 / British West Indies Grid",GEOGCS["Anguilla 1957",DATUM["Anguilla_1957",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6600"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4600"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
 --- EPSG 2001 : Antigua 1943 / British West Indies Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2001,'EPSG',2001,'PROJCS["Antigua 1943 / British West Indies Grid",GEOGCS["Antigua 1943",DATUM["Antigua_1943",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-255,-15,71,0,0,0,0],AUTHORITY["EPSG","6601"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4601"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2001,'EPSG',2001,'PROJCS["Antigua 1943 / British West Indies Grid",GEOGCS["Antigua 1943",DATUM["Antigua_1943",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-255,-15,71,0,0,0,0],AUTHORITY["EPSG","6601"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4601"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2002 : Dominica 1945 / British West Indies Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2002,'EPSG',2002,'PROJCS["Dominica 1945 / British West Indies Grid",GEOGCS["Dominica 1945",DATUM["Dominica_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY["EPSG","6602"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4602"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2002,'EPSG',2002,'PROJCS["Dominica 1945 / British West Indies Grid",GEOGCS["Dominica 1945",DATUM["Dominica_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY["EPSG","6602"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4602"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2003 : Grenada 1953 / British West Indies Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2003,'EPSG',2003,'PROJCS["Grenada 1953 / British West Indies Grid",GEOGCS["Grenada 1953",DATUM["Grenada_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY["EPSG","6603"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4603"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2003,'EPSG',2003,'PROJCS["Grenada 1953 / British West Indies Grid",GEOGCS["Grenada 1953",DATUM["Grenada_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY["EPSG","6603"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4603"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2004 : Montserrat 1958 / British West Indies Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2004,'EPSG',2004,'PROJCS["Montserrat 1958 / British West Indies Grid",GEOGCS["Montserrat 1958",DATUM["Montserrat_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[174,359,365,0,0,0,0],AUTHORITY["EPSG","6604"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4604"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2004,'EPSG',2004,'PROJCS["Montserrat 1958 / British West Indies Grid",GEOGCS["Montserrat 1958",DATUM["Montserrat_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[174,359,365,0,0,0,0],AUTHORITY["EPSG","6604"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4604"]],PROJECTION["Transve [...]
 ---
 --- EPSG 2005 : St. Kitts 1955 / British West Indies Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2005,'EPSG',2005,'PROJCS["St. Kitts 1955 / British West Indies Grid",GEOGCS["St. Kitts 1955",DATUM["St_Kitts_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[9,183,236,0,0,0,0],AUTHORITY["EPSG","6605"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4605"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2005,'EPSG',2005,'PROJCS["St. Kitts 1955 / British West Indies Grid",GEOGCS["St. Kitts 1955",DATUM["St_Kitts_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[9,183,236,0,0,0,0],AUTHORITY["EPSG","6605"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4605"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2006 : St. Lucia 1955 / British West Indies Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2006,'EPSG',2006,'PROJCS["St. Lucia 1955 / British West Indies Grid",GEOGCS["St. Lucia 1955",DATUM["St_Lucia_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORITY["EPSG","6606"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4606"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2006,'EPSG',2006,'PROJCS["St. Lucia 1955 / British West Indies Grid",GEOGCS["St. Lucia 1955",DATUM["St_Lucia_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORITY["EPSG","6606"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4606"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2007 : St. Vincent 45 / British West Indies Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2007,'EPSG',2007,'PROJCS["St. Vincent 45 / British West Indies Grid",GEOGCS["St. Vincent 1945",DATUM["St_Vincent_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[195.671,332.517,274.607,0,0,0,0],AUTHORITY["EPSG","6607"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4607"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2007,'EPSG',2007,'PROJCS["St. Vincent 45 / British West Indies Grid",GEOGCS["St. Vincent 1945",DATUM["St_Vincent_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[195.671,332.517,274.607,0,0,0,0],AUTHORITY["EPSG","6607"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4607"]],PROJECT [...]
 ---
---- EPSG 2008 : NAD27(CGQ77) / SCoPQ zone 2
+--- EPSG 2008 : NAD27(CGQ77) / SCoPQ zone 2 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2008,'EPSG',2008,'PROJCS["NAD27(CGQ77) / SCoPQ zone 2",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2008,'EPSG',2008,'PROJCS["NAD27(CGQ77) / SCoPQ zone 2 (deprecated)",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 2009 : NAD27(CGQ77) / SCoPQ zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2009,'EPSG',2009,'PROJCS["NAD27(CGQ77) / SCoPQ zone 3",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2009,'EPSG',2009,'PROJCS["NAD27(CGQ77) / SCoPQ zone 3",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2010 : NAD27(CGQ77) / SCoPQ zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2010,'EPSG',2010,'PROJCS["NAD27(CGQ77) / SCoPQ zone 4",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2010,'EPSG',2010,'PROJCS["NAD27(CGQ77) / SCoPQ zone 4",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2011 : NAD27(CGQ77) / SCoPQ zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2011,'EPSG',2011,'PROJCS["NAD27(CGQ77) / SCoPQ zone 5",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2011,'EPSG',2011,'PROJCS["NAD27(CGQ77) / SCoPQ zone 5",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2012 : NAD27(CGQ77) / SCoPQ zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2012,'EPSG',2012,'PROJCS["NAD27(CGQ77) / SCoPQ zone 6",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2012,'EPSG',2012,'PROJCS["NAD27(CGQ77) / SCoPQ zone 6",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2013 : NAD27(CGQ77) / SCoPQ zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2013,'EPSG',2013,'PROJCS["NAD27(CGQ77) / SCoPQ zone 7",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2013,'EPSG',2013,'PROJCS["NAD27(CGQ77) / SCoPQ zone 7",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2014 : NAD27(CGQ77) / SCoPQ zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2014,'EPSG',2014,'PROJCS["NAD27(CGQ77) / SCoPQ zone 8",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2014,'EPSG',2014,'PROJCS["NAD27(CGQ77) / SCoPQ zone 8",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2015 : NAD27(CGQ77) / SCoPQ zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2015,'EPSG',2015,'PROJCS["NAD27(CGQ77) / SCoPQ zone 9",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2015,'EPSG',2015,'PROJCS["NAD27(CGQ77) / SCoPQ zone 9",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2016 : NAD27(CGQ77) / SCoPQ zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2016,'EPSG',2016,'PROJCS["NAD27(CGQ77) / SCoPQ zone 10",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2016,'EPSG',2016,'PROJCS["NAD27(CGQ77) / SCoPQ zone 10",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 2017 : NAD27(76) / MTM zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2017,'EPSG',2017,'PROJCS["NAD27(76) / MTM zone 8",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tran [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2017,'EPSG',2017,'PROJCS["NAD27(76) / MTM zone 8",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ [...]
 ---
 --- EPSG 2018 : NAD27(76) / MTM zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2018,'EPSG',2018,'PROJCS["NAD27(76) / MTM zone 9",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tran [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2018,'EPSG',2018,'PROJCS["NAD27(76) / MTM zone 9",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ [...]
 ---
 --- EPSG 2019 : NAD27(76) / MTM zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2019,'EPSG',2019,'PROJCS["NAD27(76) / MTM zone 10",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2019,'EPSG',2019,'PROJCS["NAD27(76) / MTM zone 10",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
 ---
 --- EPSG 2020 : NAD27(76) / MTM zone 11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2020,'EPSG',2020,'PROJCS["NAD27(76) / MTM zone 11",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2020,'EPSG',2020,'PROJCS["NAD27(76) / MTM zone 11",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
 ---
 --- EPSG 2021 : NAD27(76) / MTM zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2021,'EPSG',2021,'PROJCS["NAD27(76) / MTM zone 12",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2021,'EPSG',2021,'PROJCS["NAD27(76) / MTM zone 12",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
 ---
 --- EPSG 2022 : NAD27(76) / MTM zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2022,'EPSG',2022,'PROJCS["NAD27(76) / MTM zone 13",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2022,'EPSG',2022,'PROJCS["NAD27(76) / MTM zone 13",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
 ---
 --- EPSG 2023 : NAD27(76) / MTM zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2023,'EPSG',2023,'PROJCS["NAD27(76) / MTM zone 14",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2023,'EPSG',2023,'PROJCS["NAD27(76) / MTM zone 14",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
 ---
 --- EPSG 2024 : NAD27(76) / MTM zone 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2024,'EPSG',2024,'PROJCS["NAD27(76) / MTM zone 15",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2024,'EPSG',2024,'PROJCS["NAD27(76) / MTM zone 15",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
 ---
 --- EPSG 2025 : NAD27(76) / MTM zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2025,'EPSG',2025,'PROJCS["NAD27(76) / MTM zone 16",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2025,'EPSG',2025,'PROJCS["NAD27(76) / MTM zone 16",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
 ---
 --- EPSG 2026 : NAD27(76) / MTM zone 17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2026,'EPSG',2026,'PROJCS["NAD27(76) / MTM zone 17",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2026,'EPSG',2026,'PROJCS["NAD27(76) / MTM zone 17",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
 ---
 --- EPSG 2027 : NAD27(76) / UTM zone 15N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2027,'EPSG',2027,'PROJCS["NAD27(76) / UTM zone 15N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2027,'EPSG',2027,'PROJCS["NAD27(76) / UTM zone 15N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
 --- EPSG 2028 : NAD27(76) / UTM zone 16N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2028,'EPSG',2028,'PROJCS["NAD27(76) / UTM zone 16N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2028,'EPSG',2028,'PROJCS["NAD27(76) / UTM zone 16N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
 --- EPSG 2029 : NAD27(76) / UTM zone 17N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2029,'EPSG',2029,'PROJCS["NAD27(76) / UTM zone 17N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2029,'EPSG',2029,'PROJCS["NAD27(76) / UTM zone 17N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
 --- EPSG 2030 : NAD27(76) / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2030,'EPSG',2030,'PROJCS["NAD27(76) / UTM zone 18N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2030,'EPSG',2030,'PROJCS["NAD27(76) / UTM zone 18N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
 --- EPSG 2031 : NAD27(CGQ77) / UTM zone 17N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2031,'EPSG',2031,'PROJCS["NAD27(CGQ77) / UTM zone 17N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2031,'EPSG',2031,'PROJCS["NAD27(CGQ77) / UTM zone 17N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2032 : NAD27(CGQ77) / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2032,'EPSG',2032,'PROJCS["NAD27(CGQ77) / UTM zone 18N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2032,'EPSG',2032,'PROJCS["NAD27(CGQ77) / UTM zone 18N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2033 : NAD27(CGQ77) / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2033,'EPSG',2033,'PROJCS["NAD27(CGQ77) / UTM zone 19N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2033,'EPSG',2033,'PROJCS["NAD27(CGQ77) / UTM zone 19N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2034 : NAD27(CGQ77) / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2034,'EPSG',2034,'PROJCS["NAD27(CGQ77) / UTM zone 20N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2034,'EPSG',2034,'PROJCS["NAD27(CGQ77) / UTM zone 20N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2035 : NAD27(CGQ77) / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2035,'EPSG',2035,'PROJCS["NAD27(CGQ77) / UTM zone 21N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2035,'EPSG',2035,'PROJCS["NAD27(CGQ77) / UTM zone 21N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2036 : NAD83(CSRS98) / New Brunswick Stereo (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2036,'EPSG',2036,'PROJCS["NAD83(CSRS98) / New Brunswick Stereo (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2036,'EPSG',2036,'PROJCS["NAD83(CSRS98) / New Brunswick Stereo (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PRO [...]
 ---
 --- EPSG 2037 : NAD83(CSRS98) / UTM zone 19N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2037,'EPSG',2037,'PROJCS["NAD83(CSRS98) / UTM zone 19N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2037,'EPSG',2037,'PROJCS["NAD83(CSRS98) / UTM zone 19N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[ [...]
 ---
 --- EPSG 2038 : NAD83(CSRS98) / UTM zone 20N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2038,'EPSG',2038,'PROJCS["NAD83(CSRS98) / UTM zone 20N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2038,'EPSG',2038,'PROJCS["NAD83(CSRS98) / UTM zone 20N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[ [...]
 ---
 --- EPSG 2039 : Israel / Israeli TM Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2039,'EPSG',2039,'PROJCS["Israel / Israeli TM Grid",GEOGCS["Israel",DATUM["Israel",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-48,55,52,0,0,0,0],AUTHORITY["EPSG","6141"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4141"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2039,'EPSG',2039,'PROJCS["Israel / Israeli TM Grid",GEOGCS["Israel",DATUM["Israel",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-48,55,52,0,0,0,0],AUTHORITY["EPSG","6141"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4141"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 2040 : Locodjo 1965 / UTM zone 30N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2040,'EPSG',2040,'PROJCS["Locodjo 1965 / UTM zone 30N",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2040,'EPSG',2040,'PROJCS["Locodjo 1965 / UTM zone 30N",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 2041 : Abidjan 1987 / UTM zone 30N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2041,'EPSG',2041,'PROJCS["Abidjan 1987 / UTM zone 30N",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2041,'EPSG',2041,'PROJCS["Abidjan 1987 / UTM zone 30N",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],PROJECTION["Transverse_Mercator"], [...]
 ---
 --- EPSG 2042 : Locodjo 1965 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2042,'EPSG',2042,'PROJCS["Locodjo 1965 / UTM zone 29N",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2042,'EPSG',2042,'PROJCS["Locodjo 1965 / UTM zone 29N",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 2043 : Abidjan 1987 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2043,'EPSG',2043,'PROJCS["Abidjan 1987 / UTM zone 29N",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2043,'EPSG',2043,'PROJCS["Abidjan 1987 / UTM zone 29N",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],PROJECTION["Transverse_Mercator"], [...]
 ---
 --- EPSG 2044 : Hanoi 1972 / Gauss-Kruger zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2044,'EPSG',2044,'PROJCS["Hanoi 1972 / Gauss-Kruger zone 18",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2044,'EPSG',2044,'PROJCS["Hanoi 1972 / Gauss-Kruger zone 18",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 2045 : Hanoi 1972 / Gauss-Kruger zone 19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2045,'EPSG',2045,'PROJCS["Hanoi 1972 / Gauss-Kruger zone 19",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2045,'EPSG',2045,'PROJCS["Hanoi 1972 / Gauss-Kruger zone 19",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 2046 : Hartebeesthoek94 / Lo15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2046,'EPSG',2046,'PROJCS["Hartebeesthoek94 / Lo15",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2046,'EPSG',2046,'PROJCS["Hartebeesthoek94 / Lo15",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2047 : Hartebeesthoek94 / Lo17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2047,'EPSG',2047,'PROJCS["Hartebeesthoek94 / Lo17",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2047,'EPSG',2047,'PROJCS["Hartebeesthoek94 / Lo17",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2048 : Hartebeesthoek94 / Lo19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2048,'EPSG',2048,'PROJCS["Hartebeesthoek94 / Lo19",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2048,'EPSG',2048,'PROJCS["Hartebeesthoek94 / Lo19",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2049 : Hartebeesthoek94 / Lo21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2049,'EPSG',2049,'PROJCS["Hartebeesthoek94 / Lo21",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2049,'EPSG',2049,'PROJCS["Hartebeesthoek94 / Lo21",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2050 : Hartebeesthoek94 / Lo23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2050,'EPSG',2050,'PROJCS["Hartebeesthoek94 / Lo23",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2050,'EPSG',2050,'PROJCS["Hartebeesthoek94 / Lo23",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2051 : Hartebeesthoek94 / Lo25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2051,'EPSG',2051,'PROJCS["Hartebeesthoek94 / Lo25",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2051,'EPSG',2051,'PROJCS["Hartebeesthoek94 / Lo25",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2052 : Hartebeesthoek94 / Lo27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2052,'EPSG',2052,'PROJCS["Hartebeesthoek94 / Lo27",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2052,'EPSG',2052,'PROJCS["Hartebeesthoek94 / Lo27",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2053 : Hartebeesthoek94 / Lo29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2053,'EPSG',2053,'PROJCS["Hartebeesthoek94 / Lo29",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2053,'EPSG',2053,'PROJCS["Hartebeesthoek94 / Lo29",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2054 : Hartebeesthoek94 / Lo31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2054,'EPSG',2054,'PROJCS["Hartebeesthoek94 / Lo31",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2054,'EPSG',2054,'PROJCS["Hartebeesthoek94 / Lo31",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2055 : Hartebeesthoek94 / Lo33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2055,'EPSG',2055,'PROJCS["Hartebeesthoek94 / Lo33",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2055,'EPSG',2055,'PROJCS["Hartebeesthoek94 / Lo33",GEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]],PROJECTION["Transverse_Mercator_South_Orientated"], [...]
 ---
 --- EPSG 2056 : CH1903+ / LV95
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2056,'EPSG',2056,'PROJCS["CH1903+ / LV95",GEOGCS["CH1903+",DATUM["CH1903+",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6150"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4150"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["H [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2056,'EPSG',2056,'PROJCS["CH1903+ / LV95",GEOGCS["CH1903+",DATUM["CH1903+",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6150"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4150"]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],P [...]
 ---
 --- EPSG 2057 : Rassadiran / Nakhl e Taqi
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2057,'EPSG',2057,'PROJCS["Rassadiran / Nakhl e Taqi",GEOGCS["Rassadiran",DATUM["Rassadiran",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-133.63,-157.5,-158.62,0,0,0,0],AUTHORITY["EPSG","6153"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4153"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2057,'EPSG',2057,'PROJCS["Rassadiran / Nakhl e Taqi",GEOGCS["Rassadiran",DATUM["Rassadiran",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-133.63,-157.5,-158.62,0,0,0,0],AUTHORITY["EPSG","6153"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4153"]],PROJECTION["Hotine_Oblique_Mercator_Azimut [...]
 ---
 --- EPSG 2058 : ED50(ED77) / UTM zone 38N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2058,'EPSG',2058,'PROJCS["ED50(ED77) / UTM zone 38N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2058,'EPSG',2058,'PROJCS["ED50(ED77) / UTM zone 38N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 2059 : ED50(ED77) / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2059,'EPSG',2059,'PROJCS["ED50(ED77) / UTM zone 39N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2059,'EPSG',2059,'PROJCS["ED50(ED77) / UTM zone 39N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 2060 : ED50(ED77) / UTM zone 40N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2060,'EPSG',2060,'PROJCS["ED50(ED77) / UTM zone 40N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2060,'EPSG',2060,'PROJCS["ED50(ED77) / UTM zone 40N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 2061 : ED50(ED77) / UTM zone 41N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2061,'EPSG',2061,'PROJCS["ED50(ED77) / UTM zone 41N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2061,'EPSG',2061,'PROJCS["ED50(ED77) / UTM zone 41N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 2062 : Madrid 1870 (Madrid) / Spain
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2062,'EPSG',2062,'PROJCS["Madrid 1870 (Madrid) / Spain",GEOGCS["Madrid 1870 (Madrid)",DATUM["Madrid_1870_Madrid",SPHEROID["Struve 1860",6378298.3,294.73,AUTHORITY["EPSG","7028"]],AUTHORITY["EPSG","6903"]],PRIMEM["Madrid",-3.687938888888889,AUTHORITY["EPSG","8905"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4903"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2062,'EPSG',2062,'PROJCS["Madrid 1870 (Madrid) / Spain",GEOGCS["Madrid 1870 (Madrid)",DATUM["Madrid_1870_Madrid",SPHEROID["Struve 1860",6378298.3,294.73,AUTHORITY["EPSG","7028"]],AUTHORITY["EPSG","6903"]],PRIMEM["Madrid",-3.687938888888889,AUTHORITY["EPSG","8905"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4903"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMET [...]
 ---
 --- EPSG 2063 : Dabola 1981 / UTM zone 28N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2063,'EPSG',2063,'PROJCS["Dabola 1981 / UTM zone 28N (deprecated)",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2063,'EPSG',2063,'PROJCS["Dabola 1981 / UTM zone 28N (deprecated)",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 2064 : Dabola 1981 / UTM zone 29N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2064,'EPSG',2064,'PROJCS["Dabola 1981 / UTM zone 29N (deprecated)",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2064,'EPSG',2064,'PROJCS["Dabola 1981 / UTM zone 29N (deprecated)",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 2065 : S-JTSK (Ferro) / Krovak
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2065,'EPSG',2065,'PROJCS["S-JTSK (Ferro) / Krovak",GEOGCS["S-JTSK (Ferro)",DATUM["S_JTSK_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY["EPSG","6818"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4818"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2065,'EPSG',2065,'PROJCS["S-JTSK (Ferro) / Krovak",GEOGCS["S-JTSK (Ferro)",DATUM["System_Jednotne_Trigonometricke_Site_Katastralni_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[570.8,85.7,462.8,4.998,1.587,5.261,3.56],AUTHORITY["EPSG","6818"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","912 [...]
 ---
 --- EPSG 2066 : Mount Dillon / Tobago Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2066,'EPSG',2066,'PROJCS["Mount Dillon / Tobago Grid",GEOGCS["Mount Dillon",DATUM["Mount_Dillon",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6157"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4157"]],UNIT["Clarke''s link",0.201166195164,AUTHORITY["EPSG","9039" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2066,'EPSG',2066,'PROJCS["Mount Dillon / Tobago Grid",GEOGCS["Mount Dillon",DATUM["Mount_Dillon",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6157"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4157"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 2067 : Naparima 1955 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2067,'EPSG',2067,'PROJCS["Naparima 1955 / UTM zone 20N",GEOGCS["Naparima 1955",DATUM["Naparima_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-0.465,372.095,171.736,0,0,0,0],AUTHORITY["EPSG","6158"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4158"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2067,'EPSG',2067,'PROJCS["Naparima 1955 / UTM zone 20N",GEOGCS["Naparima 1955",DATUM["Naparima_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-0.465,372.095,171.736,0,0,0,0],AUTHORITY["EPSG","6158"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4158"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 2068 : ELD79 / Libya zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2068,'EPSG',2068,'PROJCS["ELD79 / Libya zone 5",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2068,'EPSG',2068,'PROJCS["ELD79 / Libya zone 5",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2069 : ELD79 / Libya zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2069,'EPSG',2069,'PROJCS["ELD79 / Libya zone 6",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2069,'EPSG',2069,'PROJCS["ELD79 / Libya zone 6",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2070 : ELD79 / Libya zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2070,'EPSG',2070,'PROJCS["ELD79 / Libya zone 7",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2070,'EPSG',2070,'PROJCS["ELD79 / Libya zone 7",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2071 : ELD79 / Libya zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2071,'EPSG',2071,'PROJCS["ELD79 / Libya zone 8",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2071,'EPSG',2071,'PROJCS["ELD79 / Libya zone 8",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2072 : ELD79 / Libya zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2072,'EPSG',2072,'PROJCS["ELD79 / Libya zone 9",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2072,'EPSG',2072,'PROJCS["ELD79 / Libya zone 9",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2073 : ELD79 / Libya zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2073,'EPSG',2073,'PROJCS["ELD79 / Libya zone 10",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2073,'EPSG',2073,'PROJCS["ELD79 / Libya zone 10",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2074 : ELD79 / Libya zone 11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2074,'EPSG',2074,'PROJCS["ELD79 / Libya zone 11",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2074,'EPSG',2074,'PROJCS["ELD79 / Libya zone 11",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2075 : ELD79 / Libya zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2075,'EPSG',2075,'PROJCS["ELD79 / Libya zone 12",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2075,'EPSG',2075,'PROJCS["ELD79 / Libya zone 12",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2076 : ELD79 / Libya zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2076,'EPSG',2076,'PROJCS["ELD79 / Libya zone 13",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2076,'EPSG',2076,'PROJCS["ELD79 / Libya zone 13",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2077 : ELD79 / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2077,'EPSG',2077,'PROJCS["ELD79 / UTM zone 32N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2077,'EPSG',2077,'PROJCS["ELD79 / UTM zone 32N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2078 : ELD79 / UTM zone 33N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2078,'EPSG',2078,'PROJCS["ELD79 / UTM zone 33N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2078,'EPSG',2078,'PROJCS["ELD79 / UTM zone 33N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2079 : ELD79 / UTM zone 34N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2079,'EPSG',2079,'PROJCS["ELD79 / UTM zone 34N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2079,'EPSG',2079,'PROJCS["ELD79 / UTM zone 34N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2080 : ELD79 / UTM zone 35N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2080,'EPSG',2080,'PROJCS["ELD79 / UTM zone 35N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2080,'EPSG',2080,'PROJCS["ELD79 / UTM zone 35N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 2081 : Chos Malal 1914 / Argentina zone 2
+--- EPSG 2081 : Chos Malal 1914 / Argentina 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2081,'EPSG',2081,'PROJCS["Chos Malal 1914 / Argentina zone 2",GEOGCS["Chos Malal 1914",DATUM["Chos_Malal_1914",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6160"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4160"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2081,'EPSG',2081,'PROJCS["Chos Malal 1914 / Argentina 2",GEOGCS["Chos Malal 1914",DATUM["Chos_Malal_1914",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6160"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4160"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90 [...]
 ---
---- EPSG 2082 : Pampa del Castillo / Argentina zone 2
+--- EPSG 2082 : Pampa del Castillo / Argentina 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2082,'EPSG',2082,'PROJCS["Pampa del Castillo / Argentina zone 2",GEOGCS["Pampa del Castillo",DATUM["Pampa_del_Castillo",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTHORITY["EPSG","6161"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4161"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2082,'EPSG',2082,'PROJCS["Pampa del Castillo / Argentina 2",GEOGCS["Pampa del Castillo",DATUM["Pampa_del_Castillo",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTHORITY["EPSG","6161"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4161"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 2083 : Hito XVIII 1963 / Argentina zone 2
+--- EPSG 2083 : Hito XVIII 1963 / Argentina 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2083,'EPSG',2083,'PROJCS["Hito XVIII 1963 / Argentina zone 2",GEOGCS["Hito XVIII 1963",DATUM["Hito_XVIII_1963",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[16,196,93,0,0,0,0],AUTHORITY["EPSG","6254"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4254"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2083,'EPSG',2083,'PROJCS["Hito XVIII 1963 / Argentina 2",GEOGCS["Hito XVIII 1963",DATUM["Hito_XVIII_1963",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[16,196,93,0,0,0,0],AUTHORITY["EPSG","6254"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4254"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 2084 : Hito XVIII 1963 / UTM zone 19S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2084,'EPSG',2084,'PROJCS["Hito XVIII 1963 / UTM zone 19S",GEOGCS["Hito XVIII 1963",DATUM["Hito_XVIII_1963",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[16,196,93,0,0,0,0],AUTHORITY["EPSG","6254"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4254"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2084,'EPSG',2084,'PROJCS["Hito XVIII 1963 / UTM zone 19S",GEOGCS["Hito XVIII 1963",DATUM["Hito_XVIII_1963",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[16,196,93,0,0,0,0],AUTHORITY["EPSG","6254"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4254"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 2085 : NAD27 / Cuba Norte (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2085,'EPSG',2085,'PROJCS["NAD27 / Cuba Norte (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lamb [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2085,'EPSG',2085,'PROJCS["NAD27 / Cuba Norte (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["lati [...]
 ---
 --- EPSG 2086 : NAD27 / Cuba Sur (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2086,'EPSG',2086,'PROJCS["NAD27 / Cuba Sur (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lamber [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2086,'EPSG',2086,'PROJCS["NAD27 / Cuba Sur (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitu [...]
 ---
 --- EPSG 2087 : ELD79 / TM 12 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2087,'EPSG',2087,'PROJCS["ELD79 / TM 12 NE",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.854,-99.0583,-152.462,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2087,'EPSG',2087,'PROJCS["ELD79 / TM 12 NE",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercator"], [...]
 ---
 --- EPSG 2088 : Carthage / TM 11 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2088,'EPSG',2088,'PROJCS["Carthage / TM 11 NE",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2088,'EPSG',2088,'PROJCS["Carthage / TM 11 NE",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 2089 : Yemen NGN96 / UTM zone 38N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2089,'EPSG',2089,'PROJCS["Yemen NGN96 / UTM zone 38N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2089,'EPSG',2089,'PROJCS["Yemen NGN96 / UTM zone 38N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 2090 : Yemen NGN96 / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2090,'EPSG',2090,'PROJCS["Yemen NGN96 / UTM zone 39N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2090,'EPSG',2090,'PROJCS["Yemen NGN96 / UTM zone 39N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 2091 : South Yemen / Gauss Kruger zone 8 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2091,'EPSG',2091,'PROJCS["South Yemen / Gauss Kruger zone 8 (deprecated)",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2091,'EPSG',2091,'PROJCS["South Yemen / Gauss Kruger zone 8 (deprecated)",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 2092 : South Yemen / Gauss Kruger zone 9 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2092,'EPSG',2092,'PROJCS["South Yemen / Gauss Kruger zone 9 (deprecated)",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2092,'EPSG',2092,'PROJCS["South Yemen / Gauss Kruger zone 9 (deprecated)",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 2093 : Hanoi 1972 / GK 106 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2093,'EPSG',2093,'PROJCS["Hanoi 1972 / GK 106 NE",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2093,'EPSG',2093,'PROJCS["Hanoi 1972 / GK 106 NE",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 2094 : WGS 72BE / TM 106 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2094,'EPSG',2094,'PROJCS["WGS 72BE / TM 106 NE",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2094,'EPSG',2094,'PROJCS["WGS 72BE / TM 106 NE",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 2095 : Bissau / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2095,'EPSG',2095,'PROJCS["Bissau / UTM zone 28N",GEOGCS["Bissau",DATUM["Bissau",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-173,253,27,0,0,0,0],AUTHORITY["EPSG","6165"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4165"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2095,'EPSG',2095,'PROJCS["Bissau / UTM zone 28N",GEOGCS["Bissau",DATUM["Bissau",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-173,253,27,0,0,0,0],AUTHORITY["EPSG","6165"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4165"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 2096 : Korean 1985 / Korea East Belt
+--- EPSG 2096 : Korean 1985 / East Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2096,'EPSG',2096,'PROJCS["Korean 1985 / Korea East Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2096,'EPSG',2096,'PROJCS["Korean 1985 / East Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PA [...]
 ---
---- EPSG 2097 : Korean 1985 / Korea Central Belt
+--- EPSG 2097 : Korean 1985 / Central Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2097,'EPSG',2097,'PROJCS["Korean 1985 / Korea Central Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transvers [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2097,'EPSG',2097,'PROJCS["Korean 1985 / Central Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38] [...]
 ---
---- EPSG 2098 : Korean 1985 / Korea West Belt
+--- EPSG 2098 : Korean 1985 / West Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2098,'EPSG',2098,'PROJCS["Korean 1985 / Korea West Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2098,'EPSG',2098,'PROJCS["Korean 1985 / West Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PA [...]
 ---
 --- EPSG 2099 : Qatar 1948 / Qatar Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2099,'EPSG',2099,'PROJCS["Qatar 1948 / Qatar Grid",GEOGCS["Qatar 1948",DATUM["Qatar_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6286"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4286"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2099,'EPSG',2099,'PROJCS["Qatar 1948 / Qatar Grid",GEOGCS["Qatar 1948",DATUM["Qatar_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6286"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4286"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",25.38236111111111],PARAMETE [...]
 ---
 --- EPSG 2100 : GGRS87 / Greek Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2100,'EPSG',2100,'PROJCS["GGRS87 / Greek Grid",GEOGCS["GGRS87",DATUM["Greek_Geodetic_Reference_System_1987",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY["EPSG","6121"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4121"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2100,'EPSG',2100,'PROJCS["GGRS87 / Greek Grid",GEOGCS["GGRS87",DATUM["Greek_Geodetic_Reference_System_1987",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY["EPSG","6121"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4121"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2101 : Lake / Maracaibo Grid M1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2101,'EPSG',2101,'PROJCS["Lake / Maracaibo Grid M1",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["l [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2101,'EPSG',2101,'PROJCS["Lake / Maracaibo Grid M1",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PAR [...]
 ---
 --- EPSG 2102 : Lake / Maracaibo Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2102,'EPSG',2102,'PROJCS["Lake / Maracaibo Grid",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2102,'EPSG',2102,'PROJCS["Lake / Maracaibo Grid",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PARAME [...]
 ---
 --- EPSG 2103 : Lake / Maracaibo Grid M3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2103,'EPSG',2103,'PROJCS["Lake / Maracaibo Grid M3",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["l [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2103,'EPSG',2103,'PROJCS["Lake / Maracaibo Grid M3",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PAR [...]
 ---
 --- EPSG 2104 : Lake / Maracaibo La Rosa Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2104,'EPSG',2104,'PROJCS["Lake / Maracaibo La Rosa Grid",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2104,'EPSG',2104,'PROJCS["Lake / Maracaibo La Rosa Grid",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667 [...]
 ---
 --- EPSG 2105 : NZGD2000 / Mount Eden 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2105,'EPSG',2105,'PROJCS["NZGD2000 / Mount Eden 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2105,'EPSG',2105,'PROJCS["NZGD2000 / Mount Eden 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 2106 : NZGD2000 / Bay of Plenty 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2106,'EPSG',2106,'PROJCS["NZGD2000 / Bay of Plenty 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2106,'EPSG',2106,'PROJCS["NZGD2000 / Bay of Plenty 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 2107 : NZGD2000 / Poverty Bay 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2107,'EPSG',2107,'PROJCS["NZGD2000 / Poverty Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2107,'EPSG',2107,'PROJCS["NZGD2000 / Poverty Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2108 : NZGD2000 / Hawkes Bay 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2108,'EPSG',2108,'PROJCS["NZGD2000 / Hawkes Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2108,'EPSG',2108,'PROJCS["NZGD2000 / Hawkes Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 2109 : NZGD2000 / Taranaki 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2109,'EPSG',2109,'PROJCS["NZGD2000 / Taranaki 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2109,'EPSG',2109,'PROJCS["NZGD2000 / Taranaki 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 2110 : NZGD2000 / Tuhirangi 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2110,'EPSG',2110,'PROJCS["NZGD2000 / Tuhirangi 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2110,'EPSG',2110,'PROJCS["NZGD2000 / Tuhirangi 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 2111 : NZGD2000 / Wanganui 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2111,'EPSG',2111,'PROJCS["NZGD2000 / Wanganui 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2111,'EPSG',2111,'PROJCS["NZGD2000 / Wanganui 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 2112 : NZGD2000 / Wairarapa 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2112,'EPSG',2112,'PROJCS["NZGD2000 / Wairarapa 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2112,'EPSG',2112,'PROJCS["NZGD2000 / Wairarapa 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 2113 : NZGD2000 / Wellington 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2113,'EPSG',2113,'PROJCS["NZGD2000 / Wellington 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2113,'EPSG',2113,'PROJCS["NZGD2000 / Wellington 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 2114 : NZGD2000 / Collingwood 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2114,'EPSG',2114,'PROJCS["NZGD2000 / Collingwood 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2114,'EPSG',2114,'PROJCS["NZGD2000 / Collingwood 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2115 : NZGD2000 / Nelson 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2115,'EPSG',2115,'PROJCS["NZGD2000 / Nelson 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2115,'EPSG',2115,'PROJCS["NZGD2000 / Nelson 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2116 : NZGD2000 / Karamea 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2116,'EPSG',2116,'PROJCS["NZGD2000 / Karamea 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2116,'EPSG',2116,'PROJCS["NZGD2000 / Karamea 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 2117 : NZGD2000 / Buller 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2117,'EPSG',2117,'PROJCS["NZGD2000 / Buller 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2117,'EPSG',2117,'PROJCS["NZGD2000 / Buller 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2118 : NZGD2000 / Grey 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2118,'EPSG',2118,'PROJCS["NZGD2000 / Grey 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2118,'EPSG',2118,'PROJCS["NZGD2000 / Grey 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
 --- EPSG 2119 : NZGD2000 / Amuri 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2119,'EPSG',2119,'PROJCS["NZGD2000 / Amuri 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2119,'EPSG',2119,'PROJCS["NZGD2000 / Amuri 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 2120 : NZGD2000 / Marlborough 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2120,'EPSG',2120,'PROJCS["NZGD2000 / Marlborough 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2120,'EPSG',2120,'PROJCS["NZGD2000 / Marlborough 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2121 : NZGD2000 / Hokitika 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2121,'EPSG',2121,'PROJCS["NZGD2000 / Hokitika 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2121,'EPSG',2121,'PROJCS["NZGD2000 / Hokitika 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 2122 : NZGD2000 / Okarito 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2122,'EPSG',2122,'PROJCS["NZGD2000 / Okarito 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2122,'EPSG',2122,'PROJCS["NZGD2000 / Okarito 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 2123 : NZGD2000 / Jacksons Bay 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2123,'EPSG',2123,'PROJCS["NZGD2000 / Jacksons Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2123,'EPSG',2123,'PROJCS["NZGD2000 / Jacksons Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
 --- EPSG 2124 : NZGD2000 / Mount Pleasant 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2124,'EPSG',2124,'PROJCS["NZGD2000 / Mount Pleasant 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2124,'EPSG',2124,'PROJCS["NZGD2000 / Mount Pleasant 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 2125 : NZGD2000 / Gawler 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2125,'EPSG',2125,'PROJCS["NZGD2000 / Gawler 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2125,'EPSG',2125,'PROJCS["NZGD2000 / Gawler 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2126 : NZGD2000 / Timaru 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2126,'EPSG',2126,'PROJCS["NZGD2000 / Timaru 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2126,'EPSG',2126,'PROJCS["NZGD2000 / Timaru 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2127 : NZGD2000 / Lindis Peak 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2127,'EPSG',2127,'PROJCS["NZGD2000 / Lindis Peak 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2127,'EPSG',2127,'PROJCS["NZGD2000 / Lindis Peak 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2128 : NZGD2000 / Mount Nicholas 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2128,'EPSG',2128,'PROJCS["NZGD2000 / Mount Nicholas 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2128,'EPSG',2128,'PROJCS["NZGD2000 / Mount Nicholas 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 2129 : NZGD2000 / Mount York 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2129,'EPSG',2129,'PROJCS["NZGD2000 / Mount York 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2129,'EPSG',2129,'PROJCS["NZGD2000 / Mount York 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 2130 : NZGD2000 / Observation Point 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2130,'EPSG',2130,'PROJCS["NZGD2000 / Observation Point 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2130,'EPSG',2130,'PROJCS["NZGD2000 / Observation Point 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator" [...]
 ---
 --- EPSG 2131 : NZGD2000 / North Taieri 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2131,'EPSG',2131,'PROJCS["NZGD2000 / North Taieri 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2131,'EPSG',2131,'PROJCS["NZGD2000 / North Taieri 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
 --- EPSG 2132 : NZGD2000 / Bluff 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2132,'EPSG',2132,'PROJCS["NZGD2000 / Bluff 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2132,'EPSG',2132,'PROJCS["NZGD2000 / Bluff 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 2133 : NZGD2000 / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2133,'EPSG',2133,'PROJCS["NZGD2000 / UTM zone 58S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2133,'EPSG',2133,'PROJCS["NZGD2000 / UTM zone 58S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 2134 : NZGD2000 / UTM zone 59S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2134,'EPSG',2134,'PROJCS["NZGD2000 / UTM zone 59S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2134,'EPSG',2134,'PROJCS["NZGD2000 / UTM zone 59S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 2135 : NZGD2000 / UTM zone 60S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2135,'EPSG',2135,'PROJCS["NZGD2000 / UTM zone 60S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2135,'EPSG',2135,'PROJCS["NZGD2000 / UTM zone 60S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 2136 : Accra / Ghana National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2136,'EPSG',2136,'PROJCS["Accra / Ghana National Grid",GEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],TOWGS84[-199,32,322,0,0,0,0],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]],UNIT["Gold Coast foot",0.3047997101815088,AUTHORITY["EPSG","9094"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2136,'EPSG',2136,'PROJCS["Accra / Ghana National Grid",GEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],TOWGS84[-199,32,322,0,0,0,0],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.66 [...]
 ---
 --- EPSG 2137 : Accra / TM 1 NW
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2137,'EPSG',2137,'PROJCS["Accra / TM 1 NW",GEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],TOWGS84[-199,32,322,0,0,0,0],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAME [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2137,'EPSG',2137,'PROJCS["Accra / TM 1 NW",GEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],TOWGS84[-199,32,322,0,0,0,0],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["ce [...]
 ---
 --- EPSG 2138 : NAD27(CGQ77) / Quebec Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2138,'EPSG',2138,'PROJCS["NAD27(CGQ77) / Quebec Lambert",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2138,'EPSG',2138,'PROJCS["NAD27(CGQ77) / Quebec Lambert",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
 --- EPSG 2139 : NAD83(CSRS98) / SCoPQ zone 2 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2139,'EPSG',2139,'PROJCS["NAD83(CSRS98) / SCoPQ zone 2 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2139,'EPSG',2139,'PROJCS["NAD83(CSRS98) / SCoPQ zone 2 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[ [...]
 ---
 --- EPSG 2140 : NAD83(CSRS98) / MTM zone 3 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2140,'EPSG',2140,'PROJCS["NAD83(CSRS98) / MTM zone 3 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2140,'EPSG',2140,'PROJCS["NAD83(CSRS98) / MTM zone 3 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION["T [...]
 ---
 --- EPSG 2141 : NAD83(CSRS98) / MTM zone 4 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2141,'EPSG',2141,'PROJCS["NAD83(CSRS98) / MTM zone 4 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2141,'EPSG',2141,'PROJCS["NAD83(CSRS98) / MTM zone 4 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION["T [...]
 ---
 --- EPSG 2142 : NAD83(CSRS98) / MTM zone 5 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2142,'EPSG',2142,'PROJCS["NAD83(CSRS98) / MTM zone 5 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2142,'EPSG',2142,'PROJCS["NAD83(CSRS98) / MTM zone 5 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION["T [...]
 ---
 --- EPSG 2143 : NAD83(CSRS98) / MTM zone 6 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2143,'EPSG',2143,'PROJCS["NAD83(CSRS98) / MTM zone 6 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2143,'EPSG',2143,'PROJCS["NAD83(CSRS98) / MTM zone 6 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION["T [...]
 ---
 --- EPSG 2144 : NAD83(CSRS98) / MTM zone 7 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2144,'EPSG',2144,'PROJCS["NAD83(CSRS98) / MTM zone 7 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2144,'EPSG',2144,'PROJCS["NAD83(CSRS98) / MTM zone 7 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION["T [...]
 ---
 --- EPSG 2145 : NAD83(CSRS98) / MTM zone 8 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2145,'EPSG',2145,'PROJCS["NAD83(CSRS98) / MTM zone 8 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2145,'EPSG',2145,'PROJCS["NAD83(CSRS98) / MTM zone 8 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION["T [...]
 ---
 --- EPSG 2146 : NAD83(CSRS98) / MTM zone 9 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2146,'EPSG',2146,'PROJCS["NAD83(CSRS98) / MTM zone 9 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2146,'EPSG',2146,'PROJCS["NAD83(CSRS98) / MTM zone 9 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION["T [...]
 ---
 --- EPSG 2147 : NAD83(CSRS98) / MTM zone 10 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2147,'EPSG',2147,'PROJCS["NAD83(CSRS98) / MTM zone 10 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2147,'EPSG',2147,'PROJCS["NAD83(CSRS98) / MTM zone 10 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[" [...]
 ---
 --- EPSG 2148 : NAD83(CSRS98) / UTM zone 21N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2148,'EPSG',2148,'PROJCS["NAD83(CSRS98) / UTM zone 21N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2148,'EPSG',2148,'PROJCS["NAD83(CSRS98) / UTM zone 21N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[ [...]
 ---
 --- EPSG 2149 : NAD83(CSRS98) / UTM zone 18N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2149,'EPSG',2149,'PROJCS["NAD83(CSRS98) / UTM zone 18N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2149,'EPSG',2149,'PROJCS["NAD83(CSRS98) / UTM zone 18N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[ [...]
 ---
 --- EPSG 2150 : NAD83(CSRS98) / UTM zone 17N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2150,'EPSG',2150,'PROJCS["NAD83(CSRS98) / UTM zone 17N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2150,'EPSG',2150,'PROJCS["NAD83(CSRS98) / UTM zone 17N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[ [...]
 ---
 --- EPSG 2151 : NAD83(CSRS98) / UTM zone 13N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2151,'EPSG',2151,'PROJCS["NAD83(CSRS98) / UTM zone 13N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2151,'EPSG',2151,'PROJCS["NAD83(CSRS98) / UTM zone 13N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[ [...]
 ---
 --- EPSG 2152 : NAD83(CSRS98) / UTM zone 12N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2152,'EPSG',2152,'PROJCS["NAD83(CSRS98) / UTM zone 12N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2152,'EPSG',2152,'PROJCS["NAD83(CSRS98) / UTM zone 12N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[ [...]
 ---
 --- EPSG 2153 : NAD83(CSRS98) / UTM zone 11N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2153,'EPSG',2153,'PROJCS["NAD83(CSRS98) / UTM zone 11N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2153,'EPSG',2153,'PROJCS["NAD83(CSRS98) / UTM zone 11N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],PROJECTION[ [...]
 ---
 --- EPSG 2154 : RGF93 / Lambert-93
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2154,'EPSG',2154,'PROJCS["RGF93 / Lambert-93",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2154,'EPSG',2154,'PROJCS["RGF93 / Lambert-93",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
 ---
 --- EPSG 2155 : American Samoa 1962 / American Samoa Lambert (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2155,'EPSG',2155,'PROJCS["American Samoa 1962 / American Samoa Lambert (deprecated)",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2155,'EPSG',2155,'PROJCS["American Samoa 1962 / American Samoa Lambert (deprecated)",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4 [...]
 ---
 --- EPSG 2156 : NAD83(HARN) / UTM zone 59S (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2156,'EPSG',2156,'PROJCS["NAD83(HARN) / UTM zone 59S (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2156,'EPSG',2156,'PROJCS["NAD83(HARN) / UTM zone 59S (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Trans [...]
 ---
 --- EPSG 2157 : IRENET95 / Irish Transverse Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2157,'EPSG',2157,'PROJCS["IRENET95 / Irish Transverse Mercator",GEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2157,'EPSG',2157,'PROJCS["IRENET95 / Irish Transverse Mercator",GEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
 --- EPSG 2158 : IRENET95 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2158,'EPSG',2158,'PROJCS["IRENET95 / UTM zone 29N",GEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2158,'EPSG',2158,'PROJCS["IRENET95 / UTM zone 29N",GEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
 --- EPSG 2159 : Sierra Leone 1924 / New Colony Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2159,'EPSG',2159,'PROJCS["Sierra Leone 1924 / New Colony Grid",GEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]],UNIT["Gold Coast foot",0.3047997101815088,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2159,'EPSG',2159,'PROJCS["Sierra Leone 1924 / New Colony Grid",GEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
 --- EPSG 2160 : Sierra Leone 1924 / New War Office Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2160,'EPSG',2160,'PROJCS["Sierra Leone 1924 / New War Office Grid",GEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]],UNIT["Gold Coast foot",0.3047997101815088,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2160,'EPSG',2160,'PROJCS["Sierra Leone 1924 / New War Office Grid",GEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
 --- EPSG 2161 : Sierra Leone 1968 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2161,'EPSG',2161,'PROJCS["Sierra Leone 1968 / UTM zone 28N",GEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2161,'EPSG',2161,'PROJCS["Sierra Leone 1968 / UTM zone 28N",GEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2162 : Sierra Leone 1968 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2162,'EPSG',2162,'PROJCS["Sierra Leone 1968 / UTM zone 29N",GEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2162,'EPSG',2162,'PROJCS["Sierra Leone 1968 / UTM zone 29N",GEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]],PROJECTION["Transverse_Merc [...]
 ---
---- EPSG 2163 : unnamed
+--- EPSG 2163 : US National Atlas Equal Area
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2163,'EPSG',2163,'PROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6370997,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",45],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","2163"]]','+proj=laea +lat_0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2163,'EPSG',2163,'PROJCS["US National Atlas Equal Area",GEOGCS["Unspecified datum based upon the Clarke 1866 Authalic Sphere",DATUM["Not_specified_based_on_Clarke_1866_Authalic_Sphere",SPHEROID["Clarke 1866 Authalic Sphere",6370997,0,AUTHORITY["EPSG","7052"]],AUTHORITY["EPSG","6052"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORIT [...]
 ---
 --- EPSG 2164 : Locodjo 1965 / TM 5 NW
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2164,'EPSG',2164,'PROJCS["Locodjo 1965 / TM 5 NW",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2164,'EPSG',2164,'PROJCS["Locodjo 1965 / TM 5 NW",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
 --- EPSG 2165 : Abidjan 1987 / TM 5 NW
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2165,'EPSG',2165,'PROJCS["Abidjan 1987 / TM 5 NW",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2165,'EPSG',2165,'PROJCS["Abidjan 1987 / TM 5 NW",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 2166 : Pulkovo 1942(83) / Gauss Kruger zone 3 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2166,'EPSG',2166,'PROJCS["Pulkovo 1942(83) / Gauss Kruger zone 3 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2166,'EPSG',2166,'PROJCS["Pulkovo 1942(83) / Gauss Kruger zone 3 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Trans [...]
 ---
 --- EPSG 2167 : Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2167,'EPSG',2167,'PROJCS["Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2167,'EPSG',2167,'PROJCS["Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Trans [...]
 ---
 --- EPSG 2168 : Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2168,'EPSG',2168,'PROJCS["Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2168,'EPSG',2168,'PROJCS["Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Trans [...]
 ---
 --- EPSG 2169 : Luxembourg 1930 / Gauss
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2169,'EPSG',2169,'PROJCS["Luxembourg 1930 / Gauss",GEOGCS["Luxembourg 1930",DATUM["Luxembourg_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-193,13.7,-39.3,-0.41,-2.933,2.688,0.43],AUTHORITY["EPSG","6181"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4181"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2169,'EPSG',2169,'PROJCS["Luxembourg 1930 / Gauss",GEOGCS["Luxembourg 1930",DATUM["Luxembourg_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189.6806,18.3463,-42.7695,-0.33746,-3.09264,2.53861,0.4598],AUTHORITY["EPSG","6181"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4181"]],PROJE [...]
 ---
 --- EPSG 2170 : MGI / Slovenia Grid (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2170,'EPSG',2170,'PROJCS["MGI / Slovenia Grid (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2170,'EPSG',2170,'PROJCS["MGI / Slovenia Grid (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]] [...]
 ---
 --- EPSG 2171 : Pulkovo 1942(58) / Poland zone I (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2171,'EPSG',2171,'PROJCS["Pulkovo 1942(58) / Poland zone I (deprecated)",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2171,'EPSG',2171,'PROJCS["Pulkovo 1942(58) / Poland zone I (deprecated)",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]] [...]
 ---
 --- EPSG 2172 : Pulkovo 1942(58) / Poland zone II
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2172,'EPSG',2172,'PROJCS["Pulkovo 1942(58) / Poland zone II",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2172,'EPSG',2172,'PROJCS["Pulkovo 1942(58) / Poland zone II",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJECTION[ [...]
 ---
 --- EPSG 2173 : Pulkovo 1942(58) / Poland zone III
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2173,'EPSG',2173,'PROJCS["Pulkovo 1942(58) / Poland zone III",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2173,'EPSG',2173,'PROJCS["Pulkovo 1942(58) / Poland zone III",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJECTION [...]
 ---
 --- EPSG 2174 : Pulkovo 1942(58) / Poland zone IV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2174,'EPSG',2174,'PROJCS["Pulkovo 1942(58) / Poland zone IV",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2174,'EPSG',2174,'PROJCS["Pulkovo 1942(58) / Poland zone IV",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJECTION[ [...]
 ---
 --- EPSG 2175 : Pulkovo 1942(58) / Poland zone V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2175,'EPSG',2175,'PROJCS["Pulkovo 1942(58) / Poland zone V",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2175,'EPSG',2175,'PROJCS["Pulkovo 1942(58) / Poland zone V",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJECTION[" [...]
 ---
 --- EPSG 2176 : ETRS89 / Poland CS2000 zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2176,'EPSG',2176,'PROJCS["ETRS89 / Poland CS2000 zone 5",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2176,'EPSG',2176,'PROJCS["ETRS89 / Poland CS2000 zone 5",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2177 : ETRS89 / Poland CS2000 zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2177,'EPSG',2177,'PROJCS["ETRS89 / Poland CS2000 zone 6",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2177,'EPSG',2177,'PROJCS["ETRS89 / Poland CS2000 zone 6",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2178 : ETRS89 / Poland CS2000 zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2178,'EPSG',2178,'PROJCS["ETRS89 / Poland CS2000 zone 7",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2178,'EPSG',2178,'PROJCS["ETRS89 / Poland CS2000 zone 7",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2179 : ETRS89 / Poland CS2000 zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2179,'EPSG',2179,'PROJCS["ETRS89 / Poland CS2000 zone 8",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2179,'EPSG',2179,'PROJCS["ETRS89 / Poland CS2000 zone 8",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2180 : ETRS89 / Poland CS92
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2180,'EPSG',2180,'PROJCS["ETRS89 / Poland CS92",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2180,'EPSG',2180,'PROJCS["ETRS89 / Poland CS92",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 2188 : Azores Occidental 1939 / UTM zone 25N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2188,'EPSG',2188,'PROJCS["Azores Occidental 1939 / UTM zone 25N",GEOGCS["Azores Occidental 1939",DATUM["Azores_Occidental_Islands_1939",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-425,-169,81,0,0,0,0],AUTHORITY["EPSG","6182"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4182"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2188,'EPSG',2188,'PROJCS["Azores Occidental 1939 / UTM zone 25N",GEOGCS["Azores Occidental 1939",DATUM["Azores_Occidental_Islands_1939",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-425,-169,81,0,0,0,0],AUTHORITY["EPSG","6182"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4182"]],PROJECTI [...]
 ---
 --- EPSG 2189 : Azores Central 1948 / UTM zone 26N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2189,'EPSG',2189,'PROJCS["Azores Central 1948 / UTM zone 26N",GEOGCS["Azores Central 1948",DATUM["Azores_Central_Islands_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104,167,-38,0,0,0,0],AUTHORITY["EPSG","6183"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4183"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2189,'EPSG',2189,'PROJCS["Azores Central 1948 / UTM zone 26N",GEOGCS["Azores Central 1948",DATUM["Azores_Central_Islands_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104,167,-38,0,0,0,0],AUTHORITY["EPSG","6183"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4183"]],PROJECTION["Trans [...]
 ---
 --- EPSG 2190 : Azores Oriental 1940 / UTM zone 26N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2190,'EPSG',2190,'PROJCS["Azores Oriental 1940 / UTM zone 26N",GEOGCS["Azores Oriental 1940",DATUM["Azores_Oriental_Islands_1940",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-203,141,53,0,0,0,0],AUTHORITY["EPSG","6184"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4184"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2190,'EPSG',2190,'PROJCS["Azores Oriental 1940 / UTM zone 26N",GEOGCS["Azores Oriental 1940",DATUM["Azores_Oriental_Islands_1940",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-203,141,53,0,0,0,0],AUTHORITY["EPSG","6184"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4184"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2191 : Madeira 1936 / UTM zone 28N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2191,'EPSG',2191,'PROJCS["Madeira 1936 / UTM zone 28N (deprecated)",GEOGCS["Madeira 1936",DATUM["Madeira_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6185"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4185"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2191,'EPSG',2191,'PROJCS["Madeira 1936 / UTM zone 28N (deprecated)",GEOGCS["Madeira 1936",DATUM["Madeira_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6185"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4185"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
---- EPSG 2192 : ED50 / France EuroLambert
+--- EPSG 2192 : ED50 / France EuroLambert (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2192,'EPSG',2192,'PROJCS["ED50 / France EuroLambert",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2192,'EPSG',2192,'PROJCS["ED50 / France EuroLambert (deprecated)",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
 --- EPSG 2193 : NZGD2000 / New Zealand Transverse Mercator 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2193,'EPSG',2193,'PROJCS["NZGD2000 / New Zealand Transverse Mercator 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2193,'EPSG',2193,'PROJCS["NZGD2000 / New Zealand Transverse Mercator 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transv [...]
 ---
 --- EPSG 2194 : American Samoa 1962 / American Samoa Lambert (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2194,'EPSG',2194,'PROJCS["American Samoa 1962 / American Samoa Lambert (deprecated)",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2194,'EPSG',2194,'PROJCS["American Samoa 1962 / American Samoa Lambert (deprecated)",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4 [...]
 ---
 --- EPSG 2195 : NAD83(HARN) / UTM zone 2S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2195,'EPSG',2195,'PROJCS["NAD83(HARN) / UTM zone 2S",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2195,'EPSG',2195,'PROJCS["NAD83(HARN) / UTM zone 2S",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 2196 : ETRS89 / Kp2000 Jutland
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2196,'EPSG',2196,'PROJCS["ETRS89 / Kp2000 Jutland",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2196,'EPSG',2196,'PROJCS["ETRS89 / Kp2000 Jutland",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 2197 : ETRS89 / Kp2000 Zealand
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2197,'EPSG',2197,'PROJCS["ETRS89 / Kp2000 Zealand",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2197,'EPSG',2197,'PROJCS["ETRS89 / Kp2000 Zealand",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 2198 : ETRS89 / Kp2000 Bornholm
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2198,'EPSG',2198,'PROJCS["ETRS89 / Kp2000 Bornholm",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2198,'EPSG',2198,'PROJCS["ETRS89 / Kp2000 Bornholm",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator" [...]
 ---
 --- EPSG 2199 : Albanian 1987 / Gauss Kruger zone 4 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2199,'EPSG',2199,'PROJCS["Albanian 1987 / Gauss Kruger zone 4 (deprecated)",GEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2199,'EPSG',2199,'PROJCS["Albanian 1987 / Gauss Kruger zone 4 (deprecated)",GEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
 --- EPSG 2200 : ATS77 / New Brunswick Stereographic (ATS77)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2200,'EPSG',2200,'PROJCS["ATS77 / New Brunswick Stereographic (ATS77)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2200,'EPSG',2200,'PROJCS["ATS77 / New Brunswick Stereographic (ATS77)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],PROJECTION["Oblique_Stereograph [...]
 ---
 --- EPSG 2201 : REGVEN / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2201,'EPSG',2201,'PROJCS["REGVEN / UTM zone 18N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2201,'EPSG',2201,'PROJCS["REGVEN / UTM zone 18N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 2202 : REGVEN / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2202,'EPSG',2202,'PROJCS["REGVEN / UTM zone 19N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2202,'EPSG',2202,'PROJCS["REGVEN / UTM zone 19N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 2203 : REGVEN / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2203,'EPSG',2203,'PROJCS["REGVEN / UTM zone 20N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2203,'EPSG',2203,'PROJCS["REGVEN / UTM zone 20N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 2204 : NAD27 / Tennessee
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2204,'EPSG',2204,'PROJCS["NAD27 / Tennessee",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2204,'EPSG',2204,'PROJCS["NAD27 / Tennessee",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_ [...]
 ---
 --- EPSG 2205 : NAD83 / Kentucky North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2205,'EPSG',2205,'PROJCS["NAD83 / Kentucky North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2205,'EPSG',2205,'PROJCS["NAD83 / Kentucky North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[ [...]
 ---
 --- EPSG 2206 : ED50 / 3-degree Gauss-Kruger zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2206,'EPSG',2206,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 9",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2206,'EPSG',2206,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 9",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 2207 : ED50 / 3-degree Gauss-Kruger zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2207,'EPSG',2207,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 10",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2207,'EPSG',2207,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 10",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2208 : ED50 / 3-degree Gauss-Kruger zone 11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2208,'EPSG',2208,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 11",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2208,'EPSG',2208,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 11",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2209 : ED50 / 3-degree Gauss-Kruger zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2209,'EPSG',2209,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 12",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2209,'EPSG',2209,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 12",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2210 : ED50 / 3-degree Gauss-Kruger zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2210,'EPSG',2210,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 13",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2210,'EPSG',2210,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 13",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2211 : ED50 / 3-degree Gauss-Kruger zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2211,'EPSG',2211,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 14",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2211,'EPSG',2211,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 14",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2212 : ED50 / 3-degree Gauss-Kruger zone 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2212,'EPSG',2212,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 15",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2212,'EPSG',2212,'PROJCS["ED50 / 3-degree Gauss-Kruger zone 15",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2213 : ETRS89 / TM 30 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2213,'EPSG',2213,'PROJCS["ETRS89 / TM 30 NE",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2213,'EPSG',2213,'PROJCS["ETRS89 / TM 30 NE",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 2214 : Douala 1948 / AOF west (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2214,'EPSG',2214,'PROJCS["Douala 1948 / AOF west (deprecated)",GEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2214,'EPSG',2214,'PROJCS["Douala 1948 / AOF west (deprecated)",GEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 2215 : Manoca 1962 / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2215,'EPSG',2215,'PROJCS["Manoca 1962 / UTM zone 32N",GEOGCS["Manoca 1962",DATUM["Manoca_1962",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY["EPSG","6193"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4193"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2215,'EPSG',2215,'PROJCS["Manoca 1962 / UTM zone 32N",GEOGCS["Manoca 1962",DATUM["Manoca_1962",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY["EPSG","6193"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4193"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2216 : Qornoq 1927 / UTM zone 22N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2216,'EPSG',2216,'PROJCS["Qornoq 1927 / UTM zone 22N",GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[163.511,127.533,-159.789,0,0,0.814,-0.6],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2216,'EPSG',2216,'PROJCS["Qornoq 1927 / UTM zone 22N",GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[164,138,-189,0,0,0,0],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 2217 : Qornoq 1927 / UTM zone 23N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2217,'EPSG',2217,'PROJCS["Qornoq 1927 / UTM zone 23N",GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[163.511,127.533,-159.789,0,0,0.814,-0.6],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2217,'EPSG',2217,'PROJCS["Qornoq 1927 / UTM zone 23N",GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[164,138,-189,0,0,0,0],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 2218 : Scoresbysund 1952 / Greenland zone 5 east
 ---
@@ -2698,11 +2750,11 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 2219 : ATS77 / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2219,'EPSG',2219,'PROJCS["ATS77 / UTM zone 19N",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2219,'EPSG',2219,'PROJCS["ATS77 / UTM zone 19N",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
 --- EPSG 2220 : ATS77 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2220,'EPSG',2220,'PROJCS["ATS77 / UTM zone 20N",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2220,'EPSG',2220,'PROJCS["ATS77 / UTM zone 20N",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
 --- EPSG 2221 : Scoresbysund 1952 / Greenland zone 6 east
 ---
@@ -2710,295 +2762,295 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 2222 : NAD83 / Arizona East (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2222,'EPSG',2222,'PROJCS["NAD83 / Arizona East (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2222,'EPSG',2222,'PROJCS["NAD83 / Arizona East (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 2223 : NAD83 / Arizona Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2223,'EPSG',2223,'PROJCS["NAD83 / Arizona Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2223,'EPSG',2223,'PROJCS["NAD83 / Arizona Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 2224 : NAD83 / Arizona West (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2224,'EPSG',2224,'PROJCS["NAD83 / Arizona West (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2224,'EPSG',2224,'PROJCS["NAD83 / Arizona West (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 2225 : NAD83 / California zone 1 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2225,'EPSG',2225,'PROJCS["NAD83 / California zone 1 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2225,'EPSG',2225,'PROJCS["NAD83 / California zone 1 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
 --- EPSG 2226 : NAD83 / California zone 2 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2226,'EPSG',2226,'PROJCS["NAD83 / California zone 2 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2226,'EPSG',2226,'PROJCS["NAD83 / California zone 2 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
 --- EPSG 2227 : NAD83 / California zone 3 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2227,'EPSG',2227,'PROJCS["NAD83 / California zone 3 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2227,'EPSG',2227,'PROJCS["NAD83 / California zone 3 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
 --- EPSG 2228 : NAD83 / California zone 4 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2228,'EPSG',2228,'PROJCS["NAD83 / California zone 4 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2228,'EPSG',2228,'PROJCS["NAD83 / California zone 4 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
 --- EPSG 2229 : NAD83 / California zone 5 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2229,'EPSG',2229,'PROJCS["NAD83 / California zone 5 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2229,'EPSG',2229,'PROJCS["NAD83 / California zone 5 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
 --- EPSG 2230 : NAD83 / California zone 6 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2230,'EPSG',2230,'PROJCS["NAD83 / California zone 6 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2230,'EPSG',2230,'PROJCS["NAD83 / California zone 6 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
 --- EPSG 2231 : NAD83 / Colorado North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2231,'EPSG',2231,'PROJCS["NAD83 / Colorado North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2231,'EPSG',2231,'PROJCS["NAD83 / Colorado North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2232 : NAD83 / Colorado Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2232,'EPSG',2232,'PROJCS["NAD83 / Colorado Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2232,'EPSG',2232,'PROJCS["NAD83 / Colorado Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
 --- EPSG 2233 : NAD83 / Colorado South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2233,'EPSG',2233,'PROJCS["NAD83 / Colorado South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2233,'EPSG',2233,'PROJCS["NAD83 / Colorado South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2234 : NAD83 / Connecticut (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2234,'EPSG',2234,'PROJCS["NAD83 / Connecticut (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2234,'EPSG',2234,'PROJCS["NAD83 / Connecticut (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
 --- EPSG 2235 : NAD83 / Delaware (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2235,'EPSG',2235,'PROJCS["NAD83 / Delaware (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2235,'EPSG',2235,'PROJCS["NAD83 / Delaware (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
 --- EPSG 2236 : NAD83 / Florida East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2236,'EPSG',2236,'PROJCS["NAD83 / Florida East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2236,'EPSG',2236,'PROJCS["NAD83 / Florida East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 2237 : NAD83 / Florida West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2237,'EPSG',2237,'PROJCS["NAD83 / Florida West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2237,'EPSG',2237,'PROJCS["NAD83 / Florida West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 2238 : NAD83 / Florida North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2238,'EPSG',2238,'PROJCS["NAD83 / Florida North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2238,'EPSG',2238,'PROJCS["NAD83 / Florida North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
 --- EPSG 2239 : NAD83 / Georgia East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2239,'EPSG',2239,'PROJCS["NAD83 / Georgia East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2239,'EPSG',2239,'PROJCS["NAD83 / Georgia East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 2240 : NAD83 / Georgia West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2240,'EPSG',2240,'PROJCS["NAD83 / Georgia West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2240,'EPSG',2240,'PROJCS["NAD83 / Georgia West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 2241 : NAD83 / Idaho East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2241,'EPSG',2241,'PROJCS["NAD83 / Idaho East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2241,'EPSG',2241,'PROJCS["NAD83 / Idaho East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 2242 : NAD83 / Idaho Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2242,'EPSG',2242,'PROJCS["NAD83 / Idaho Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2242,'EPSG',2242,'PROJCS["NAD83 / Idaho Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 2243 : NAD83 / Idaho West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2243,'EPSG',2243,'PROJCS["NAD83 / Idaho West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2243,'EPSG',2243,'PROJCS["NAD83 / Idaho West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 2244 : NAD83 / Indiana East (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2244,'EPSG',2244,'PROJCS["NAD83 / Indiana East (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2244,'EPSG',2244,'PROJCS["NAD83 / Indiana East (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"], [...]
 ---
 --- EPSG 2245 : NAD83 / Indiana West (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2245,'EPSG',2245,'PROJCS["NAD83 / Indiana West (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2245,'EPSG',2245,'PROJCS["NAD83 / Indiana West (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"], [...]
 ---
 --- EPSG 2246 : NAD83 / Kentucky North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2246,'EPSG',2246,'PROJCS["NAD83 / Kentucky North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2246,'EPSG',2246,'PROJCS["NAD83 / Kentucky North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2247 : NAD83 / Kentucky South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2247,'EPSG',2247,'PROJCS["NAD83 / Kentucky South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2247,'EPSG',2247,'PROJCS["NAD83 / Kentucky South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2248 : NAD83 / Maryland (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2248,'EPSG',2248,'PROJCS["NAD83 / Maryland (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2248,'EPSG',2248,'PROJCS["NAD83 / Maryland (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER [...]
 ---
 --- EPSG 2249 : NAD83 / Massachusetts Mainland (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2249,'EPSG',2249,'PROJCS["NAD83 / Massachusetts Mainland (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2249,'EPSG',2249,'PROJCS["NAD83 / Massachusetts Mainland (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
 --- EPSG 2250 : NAD83 / Massachusetts Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2250,'EPSG',2250,'PROJCS["NAD83 / Massachusetts Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.304800609601219 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2250,'EPSG',2250,'PROJCS["NAD83 / Massachusetts Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
 --- EPSG 2251 : NAD83 / Michigan North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2251,'EPSG',2251,'PROJCS["NAD83 / Michigan North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2251,'EPSG',2251,'PROJCS["NAD83 / Michigan North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
 --- EPSG 2252 : NAD83 / Michigan Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2252,'EPSG',2252,'PROJCS["NAD83 / Michigan Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2252,'EPSG',2252,'PROJCS["NAD83 / Michigan Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2253 : NAD83 / Michigan South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2253,'EPSG',2253,'PROJCS["NAD83 / Michigan South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2253,'EPSG',2253,'PROJCS["NAD83 / Michigan South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
 --- EPSG 2254 : NAD83 / Mississippi East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2254,'EPSG',2254,'PROJCS["NAD83 / Mississippi East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2254,'EPSG',2254,'PROJCS["NAD83 / Mississippi East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2255 : NAD83 / Mississippi West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2255,'EPSG',2255,'PROJCS["NAD83 / Mississippi West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2255,'EPSG',2255,'PROJCS["NAD83 / Mississippi West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2256 : NAD83 / Montana (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2256,'EPSG',2256,'PROJCS["NAD83 / Montana (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2256,'EPSG',2256,'PROJCS["NAD83 / Montana (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["s [...]
 ---
 --- EPSG 2257 : NAD83 / New Mexico East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2257,'EPSG',2257,'PROJCS["NAD83 / New Mexico East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2257,'EPSG',2257,'PROJCS["NAD83 / New Mexico East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 2258 : NAD83 / New Mexico Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2258,'EPSG',2258,'PROJCS["NAD83 / New Mexico Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2258,'EPSG',2258,'PROJCS["NAD83 / New Mexico Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 2259 : NAD83 / New Mexico West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2259,'EPSG',2259,'PROJCS["NAD83 / New Mexico West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2259,'EPSG',2259,'PROJCS["NAD83 / New Mexico West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 2260 : NAD83 / New York East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2260,'EPSG',2260,'PROJCS["NAD83 / New York East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2260,'EPSG',2260,'PROJCS["NAD83 / New York East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 2261 : NAD83 / New York Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2261,'EPSG',2261,'PROJCS["NAD83 / New York Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2261,'EPSG',2261,'PROJCS["NAD83 / New York Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2262 : NAD83 / New York West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2262,'EPSG',2262,'PROJCS["NAD83 / New York West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2262,'EPSG',2262,'PROJCS["NAD83 / New York West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 2263 : NAD83 / New York Long Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2263,'EPSG',2263,'PROJCS["NAD83 / New York Long Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.304800609601219 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2263,'EPSG',2263,'PROJCS["NAD83 / New York Long Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
 --- EPSG 2264 : NAD83 / North Carolina (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2264,'EPSG',2264,'PROJCS["NAD83 / North Carolina (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2264,'EPSG',2264,'PROJCS["NAD83 / North Carolina (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2265 : NAD83 / North Dakota North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2265,'EPSG',2265,'PROJCS["NAD83 / North Dakota North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2265,'EPSG',2265,'PROJCS["NAD83 / North Dakota North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
 --- EPSG 2266 : NAD83 / North Dakota South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2266,'EPSG',2266,'PROJCS["NAD83 / North Dakota South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2266,'EPSG',2266,'PROJCS["NAD83 / North Dakota South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
 --- EPSG 2267 : NAD83 / Oklahoma North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2267,'EPSG',2267,'PROJCS["NAD83 / Oklahoma North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2267,'EPSG',2267,'PROJCS["NAD83 / Oklahoma North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2268 : NAD83 / Oklahoma South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2268,'EPSG',2268,'PROJCS["NAD83 / Oklahoma South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2268,'EPSG',2268,'PROJCS["NAD83 / Oklahoma South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2269 : NAD83 / Oregon North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2269,'EPSG',2269,'PROJCS["NAD83 / Oregon North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2269,'EPSG',2269,'PROJCS["NAD83 / Oregon North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
 --- EPSG 2270 : NAD83 / Oregon South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2270,'EPSG',2270,'PROJCS["NAD83 / Oregon South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2270,'EPSG',2270,'PROJCS["NAD83 / Oregon South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
 --- EPSG 2271 : NAD83 / Pennsylvania North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2271,'EPSG',2271,'PROJCS["NAD83 / Pennsylvania North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2271,'EPSG',2271,'PROJCS["NAD83 / Pennsylvania North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
 --- EPSG 2272 : NAD83 / Pennsylvania South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2272,'EPSG',2272,'PROJCS["NAD83 / Pennsylvania South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2272,'EPSG',2272,'PROJCS["NAD83 / Pennsylvania South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
 --- EPSG 2273 : NAD83 / South Carolina (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2273,'EPSG',2273,'PROJCS["NAD83 / South Carolina (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2273,'EPSG',2273,'PROJCS["NAD83 / South Carolina (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
 --- EPSG 2274 : NAD83 / Tennessee (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2274,'EPSG',2274,'PROJCS["NAD83 / Tennessee (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2274,'EPSG',2274,'PROJCS["NAD83 / Tennessee (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
 ---
 --- EPSG 2275 : NAD83 / Texas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2275,'EPSG',2275,'PROJCS["NAD83 / Texas North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2275,'EPSG',2275,'PROJCS["NAD83 / Texas North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
 --- EPSG 2276 : NAD83 / Texas North Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2276,'EPSG',2276,'PROJCS["NAD83 / Texas North Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2276,'EPSG',2276,'PROJCS["NAD83 / Texas North Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
 --- EPSG 2277 : NAD83 / Texas Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2277,'EPSG',2277,'PROJCS["NAD83 / Texas Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2277,'EPSG',2277,'PROJCS["NAD83 / Texas Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
 --- EPSG 2278 : NAD83 / Texas South Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2278,'EPSG',2278,'PROJCS["NAD83 / Texas South Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2278,'EPSG',2278,'PROJCS["NAD83 / Texas South Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
 --- EPSG 2279 : NAD83 / Texas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2279,'EPSG',2279,'PROJCS["NAD83 / Texas South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2279,'EPSG',2279,'PROJCS["NAD83 / Texas South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
 --- EPSG 2280 : NAD83 / Utah North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2280,'EPSG',2280,'PROJCS["NAD83 / Utah North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2280,'EPSG',2280,'PROJCS["NAD83 / Utah North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER [...]
 ---
 --- EPSG 2281 : NAD83 / Utah Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2281,'EPSG',2281,'PROJCS["NAD83 / Utah Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2281,'EPSG',2281,'PROJCS["NAD83 / Utah Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
 --- EPSG 2282 : NAD83 / Utah South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2282,'EPSG',2282,'PROJCS["NAD83 / Utah South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2282,'EPSG',2282,'PROJCS["NAD83 / Utah South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER [...]
 ---
 --- EPSG 2283 : NAD83 / Virginia North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2283,'EPSG',2283,'PROJCS["NAD83 / Virginia North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2283,'EPSG',2283,'PROJCS["NAD83 / Virginia North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2284 : NAD83 / Virginia South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2284,'EPSG',2284,'PROJCS["NAD83 / Virginia South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2284,'EPSG',2284,'PROJCS["NAD83 / Virginia South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 2285 : NAD83 / Washington North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2285,'EPSG',2285,'PROJCS["NAD83 / Washington North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2285,'EPSG',2285,'PROJCS["NAD83 / Washington North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
 --- EPSG 2286 : NAD83 / Washington South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2286,'EPSG',2286,'PROJCS["NAD83 / Washington South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2286,'EPSG',2286,'PROJCS["NAD83 / Washington South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
 --- EPSG 2287 : NAD83 / Wisconsin North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2287,'EPSG',2287,'PROJCS["NAD83 / Wisconsin North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2287,'EPSG',2287,'PROJCS["NAD83 / Wisconsin North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
 --- EPSG 2288 : NAD83 / Wisconsin Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2288,'EPSG',2288,'PROJCS["NAD83 / Wisconsin Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2288,'EPSG',2288,'PROJCS["NAD83 / Wisconsin Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
 --- EPSG 2289 : NAD83 / Wisconsin South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2289,'EPSG',2289,'PROJCS["NAD83 / Wisconsin South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2289,'EPSG',2289,'PROJCS["NAD83 / Wisconsin South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
 --- EPSG 2290 : ATS77 / Prince Edward Isl. Stereographic (ATS77)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2290,'EPSG',2290,'PROJCS["ATS77 / Prince Edward Isl. Stereographic (ATS77)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2290,'EPSG',2290,'PROJCS["ATS77 / Prince Edward Isl. Stereographic (ATS77)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],PROJECTION["Oblique_Stereo [...]
 ---
 --- EPSG 2291 : NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2291,'EPSG',2291,'PROJCS["NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2291,'EPSG',2291,'PROJCS["NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],PROJE [...]
 ---
 --- EPSG 2292 : NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2292,'EPSG',2292,'PROJCS["NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2292,'EPSG',2292,'PROJCS["NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY [...]
 ---
 --- EPSG 2294 : ATS77 / MTM Nova Scotia zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2294,'EPSG',2294,'PROJCS["ATS77 / MTM Nova Scotia zone 4",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2294,'EPSG',2294,'PROJCS["ATS77 / MTM Nova Scotia zone 4",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 2295 : ATS77 / MTM Nova Scotia zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2295,'EPSG',2295,'PROJCS["ATS77 / MTM Nova Scotia zone 5",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2295,'EPSG',2295,'PROJCS["ATS77 / MTM Nova Scotia zone 5",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 2296 : Ammassalik 1958 / Greenland zone 7 east
 ---
@@ -3050,2623 +3102,2623 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 2308 : Batavia / TM 109 SE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2308,'EPSG',2308,'PROJCS["Batavia / TM 109 SE",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transv [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2308,'EPSG',2308,'PROJCS["Batavia / TM 109 SE",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
 --- EPSG 2309 : WGS 84 / TM 116 SE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2309,'EPSG',2309,'PROJCS["WGS 84 / TM 116 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2309,'EPSG',2309,'PROJCS["WGS 84 / TM 116 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian", [...]
 ---
 --- EPSG 2310 : WGS 84 / TM 132 SE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2310,'EPSG',2310,'PROJCS["WGS 84 / TM 132 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2310,'EPSG',2310,'PROJCS["WGS 84 / TM 132 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian", [...]
 ---
 --- EPSG 2311 : WGS 84 / TM 6 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2311,'EPSG',2311,'PROJCS["WGS 84 / TM 6 NE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2311,'EPSG',2311,'PROJCS["WGS 84 / TM 6 NE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",6] [...]
 ---
 --- EPSG 2312 : Garoua / UTM zone 33N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2312,'EPSG',2312,'PROJCS["Garoua / UTM zone 33N",GEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6197"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4197"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2312,'EPSG',2312,'PROJCS["Garoua / UTM zone 33N",GEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6197"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4197"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_ [...]
 ---
 --- EPSG 2313 : Kousseri / UTM zone 33N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2313,'EPSG',2313,'PROJCS["Kousseri / UTM zone 33N",GEOGCS["Kousseri",DATUM["Kousseri",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6198"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4198"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAME [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2313,'EPSG',2313,'PROJCS["Kousseri / UTM zone 33N",GEOGCS["Kousseri",DATUM["Kousseri",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6198"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4198"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["ce [...]
 ---
 --- EPSG 2314 : Trinidad 1903 / Trinidad Grid (ftCla)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2314,'EPSG',2314,'PROJCS["Trinidad 1903 / Trinidad Grid (ftCla)",GEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2314,'EPSG',2314,'PROJCS["Trinidad 1903 / Trinidad Grid (ftCla)",GEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]],PROJEC [...]
 ---
 --- EPSG 2315 : Campo Inchauspe / UTM zone 19S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2315,'EPSG',2315,'PROJCS["Campo Inchauspe / UTM zone 19S",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2315,'EPSG',2315,'PROJCS["Campo Inchauspe / UTM zone 19S",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2316 : Campo Inchauspe / UTM zone 20S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2316,'EPSG',2316,'PROJCS["Campo Inchauspe / UTM zone 20S",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2316,'EPSG',2316,'PROJCS["Campo Inchauspe / UTM zone 20S",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2317 : PSAD56 / ICN Regional
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2317,'EPSG',2317,'PROJCS["PSAD56 / ICN Regional",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2317,'EPSG',2317,'PROJCS["PSAD56 / ICN Regional",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
 --- EPSG 2318 : Ain el Abd / Aramco Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2318,'EPSG',2318,'PROJCS["Ain el Abd / Aramco Lambert",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2318,'EPSG',2318,'PROJCS["Ain el Abd / Aramco Lambert",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
 --- EPSG 2319 : ED50 / TM27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2319,'EPSG',2319,'PROJCS["ED50 / TM27",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2319,'EPSG',2319,'PROJCS["ED50 / TM27",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 2320 : ED50 / TM30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2320,'EPSG',2320,'PROJCS["ED50 / TM30",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2320,'EPSG',2320,'PROJCS["ED50 / TM30",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 2321 : ED50 / TM33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2321,'EPSG',2321,'PROJCS["ED50 / TM33",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2321,'EPSG',2321,'PROJCS["ED50 / TM33",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 2322 : ED50 / TM36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2322,'EPSG',2322,'PROJCS["ED50 / TM36",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2322,'EPSG',2322,'PROJCS["ED50 / TM36",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 2323 : ED50 / TM39
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2323,'EPSG',2323,'PROJCS["ED50 / TM39",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2323,'EPSG',2323,'PROJCS["ED50 / TM39",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 2324 : ED50 / TM42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2324,'EPSG',2324,'PROJCS["ED50 / TM42",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2324,'EPSG',2324,'PROJCS["ED50 / TM42",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 2325 : ED50 / TM45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2325,'EPSG',2325,'PROJCS["ED50 / TM45",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2325,'EPSG',2325,'PROJCS["ED50 / TM45",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 2326 : Hong Kong 1980 Grid System
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2326,'EPSG',2326,'PROJCS["Hong Kong 1980 Grid System",GEOGCS["Hong Kong 1980",DATUM["Hong_Kong_1980",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425],AUTHORITY["EPSG","6611"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4611"]],U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2326,'EPSG',2326,'PROJCS["Hong Kong 1980 Grid System",GEOGCS["Hong Kong 1980",DATUM["Hong_Kong_1980",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,-2.243649,-1.158827,-1.094246],AUTHORITY["EPSG","6611"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4611"] [...]
 ---
 --- EPSG 2327 : Xian 1980 / Gauss-Kruger zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2327,'EPSG',2327,'PROJCS["Xian 1980 / Gauss-Kruger zone 13",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2327,'EPSG',2327,'PROJCS["Xian 1980 / Gauss-Kruger zone 13",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2328 : Xian 1980 / Gauss-Kruger zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2328,'EPSG',2328,'PROJCS["Xian 1980 / Gauss-Kruger zone 14",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2328,'EPSG',2328,'PROJCS["Xian 1980 / Gauss-Kruger zone 14",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2329 : Xian 1980 / Gauss-Kruger zone 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2329,'EPSG',2329,'PROJCS["Xian 1980 / Gauss-Kruger zone 15",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2329,'EPSG',2329,'PROJCS["Xian 1980 / Gauss-Kruger zone 15",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2330 : Xian 1980 / Gauss-Kruger zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2330,'EPSG',2330,'PROJCS["Xian 1980 / Gauss-Kruger zone 16",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2330,'EPSG',2330,'PROJCS["Xian 1980 / Gauss-Kruger zone 16",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2331 : Xian 1980 / Gauss-Kruger zone 17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2331,'EPSG',2331,'PROJCS["Xian 1980 / Gauss-Kruger zone 17",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2331,'EPSG',2331,'PROJCS["Xian 1980 / Gauss-Kruger zone 17",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2332 : Xian 1980 / Gauss-Kruger zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2332,'EPSG',2332,'PROJCS["Xian 1980 / Gauss-Kruger zone 18",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2332,'EPSG',2332,'PROJCS["Xian 1980 / Gauss-Kruger zone 18",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2333 : Xian 1980 / Gauss-Kruger zone 19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2333,'EPSG',2333,'PROJCS["Xian 1980 / Gauss-Kruger zone 19",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2333,'EPSG',2333,'PROJCS["Xian 1980 / Gauss-Kruger zone 19",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2334 : Xian 1980 / Gauss-Kruger zone 20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2334,'EPSG',2334,'PROJCS["Xian 1980 / Gauss-Kruger zone 20",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2334,'EPSG',2334,'PROJCS["Xian 1980 / Gauss-Kruger zone 20",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2335 : Xian 1980 / Gauss-Kruger zone 21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2335,'EPSG',2335,'PROJCS["Xian 1980 / Gauss-Kruger zone 21",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2335,'EPSG',2335,'PROJCS["Xian 1980 / Gauss-Kruger zone 21",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2336 : Xian 1980 / Gauss-Kruger zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2336,'EPSG',2336,'PROJCS["Xian 1980 / Gauss-Kruger zone 22",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2336,'EPSG',2336,'PROJCS["Xian 1980 / Gauss-Kruger zone 22",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2337 : Xian 1980 / Gauss-Kruger zone 23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2337,'EPSG',2337,'PROJCS["Xian 1980 / Gauss-Kruger zone 23",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2337,'EPSG',2337,'PROJCS["Xian 1980 / Gauss-Kruger zone 23",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2338 : Xian 1980 / Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2338,'EPSG',2338,'PROJCS["Xian 1980 / Gauss-Kruger CM 75E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2338,'EPSG',2338,'PROJCS["Xian 1980 / Gauss-Kruger CM 75E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["centr [...]
 ---
 --- EPSG 2339 : Xian 1980 / Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2339,'EPSG',2339,'PROJCS["Xian 1980 / Gauss-Kruger CM 81E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2339,'EPSG',2339,'PROJCS["Xian 1980 / Gauss-Kruger CM 81E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["centr [...]
 ---
 --- EPSG 2340 : Xian 1980 / Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2340,'EPSG',2340,'PROJCS["Xian 1980 / Gauss-Kruger CM 87E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2340,'EPSG',2340,'PROJCS["Xian 1980 / Gauss-Kruger CM 87E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["centr [...]
 ---
 --- EPSG 2341 : Xian 1980 / Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2341,'EPSG',2341,'PROJCS["Xian 1980 / Gauss-Kruger CM 93E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2341,'EPSG',2341,'PROJCS["Xian 1980 / Gauss-Kruger CM 93E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["centr [...]
 ---
 --- EPSG 2342 : Xian 1980 / Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2342,'EPSG',2342,'PROJCS["Xian 1980 / Gauss-Kruger CM 99E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2342,'EPSG',2342,'PROJCS["Xian 1980 / Gauss-Kruger CM 99E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["centr [...]
 ---
 --- EPSG 2343 : Xian 1980 / Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2343,'EPSG',2343,'PROJCS["Xian 1980 / Gauss-Kruger CM 105E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2343,'EPSG',2343,'PROJCS["Xian 1980 / Gauss-Kruger CM 105E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2344 : Xian 1980 / Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2344,'EPSG',2344,'PROJCS["Xian 1980 / Gauss-Kruger CM 111E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2344,'EPSG',2344,'PROJCS["Xian 1980 / Gauss-Kruger CM 111E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2345 : Xian 1980 / Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2345,'EPSG',2345,'PROJCS["Xian 1980 / Gauss-Kruger CM 117E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2345,'EPSG',2345,'PROJCS["Xian 1980 / Gauss-Kruger CM 117E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2346 : Xian 1980 / Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2346,'EPSG',2346,'PROJCS["Xian 1980 / Gauss-Kruger CM 123E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2346,'EPSG',2346,'PROJCS["Xian 1980 / Gauss-Kruger CM 123E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2347 : Xian 1980 / Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2347,'EPSG',2347,'PROJCS["Xian 1980 / Gauss-Kruger CM 129E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2347,'EPSG',2347,'PROJCS["Xian 1980 / Gauss-Kruger CM 129E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2348 : Xian 1980 / Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2348,'EPSG',2348,'PROJCS["Xian 1980 / Gauss-Kruger CM 135E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2348,'EPSG',2348,'PROJCS["Xian 1980 / Gauss-Kruger CM 135E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 2349 : Xian 1980 / 3-degree Gauss-Kruger zone 25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2349,'EPSG',2349,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 25",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2349,'EPSG',2349,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 25",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2350 : Xian 1980 / 3-degree Gauss-Kruger zone 26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2350,'EPSG',2350,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 26",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2350,'EPSG',2350,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 26",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2351 : Xian 1980 / 3-degree Gauss-Kruger zone 27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2351,'EPSG',2351,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 27",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2351,'EPSG',2351,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 27",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2352 : Xian 1980 / 3-degree Gauss-Kruger zone 28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2352,'EPSG',2352,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 28",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2352,'EPSG',2352,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 28",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2353 : Xian 1980 / 3-degree Gauss-Kruger zone 29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2353,'EPSG',2353,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 29",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2353,'EPSG',2353,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 29",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2354 : Xian 1980 / 3-degree Gauss-Kruger zone 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2354,'EPSG',2354,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 30",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2354,'EPSG',2354,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 30",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2355 : Xian 1980 / 3-degree Gauss-Kruger zone 31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2355,'EPSG',2355,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 31",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2355,'EPSG',2355,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 31",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2356 : Xian 1980 / 3-degree Gauss-Kruger zone 32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2356,'EPSG',2356,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 32",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2356,'EPSG',2356,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 32",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2357 : Xian 1980 / 3-degree Gauss-Kruger zone 33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2357,'EPSG',2357,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 33",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2357,'EPSG',2357,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 33",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2358 : Xian 1980 / 3-degree Gauss-Kruger zone 34
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2358,'EPSG',2358,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 34",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2358,'EPSG',2358,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 34",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2359 : Xian 1980 / 3-degree Gauss-Kruger zone 35
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2359,'EPSG',2359,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 35",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2359,'EPSG',2359,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 35",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2360 : Xian 1980 / 3-degree Gauss-Kruger zone 36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2360,'EPSG',2360,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 36",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2360,'EPSG',2360,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 36",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2361 : Xian 1980 / 3-degree Gauss-Kruger zone 37
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2361,'EPSG',2361,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 37",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2361,'EPSG',2361,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 37",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2362 : Xian 1980 / 3-degree Gauss-Kruger zone 38
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2362,'EPSG',2362,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 38",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2362,'EPSG',2362,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 38",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2363 : Xian 1980 / 3-degree Gauss-Kruger zone 39
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2363,'EPSG',2363,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 39",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2363,'EPSG',2363,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 39",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2364 : Xian 1980 / 3-degree Gauss-Kruger zone 40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2364,'EPSG',2364,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 40",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2364,'EPSG',2364,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 40",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2365 : Xian 1980 / 3-degree Gauss-Kruger zone 41
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2365,'EPSG',2365,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 41",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2365,'EPSG',2365,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 41",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2366 : Xian 1980 / 3-degree Gauss-Kruger zone 42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2366,'EPSG',2366,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 42",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2366,'EPSG',2366,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 42",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2367 : Xian 1980 / 3-degree Gauss-Kruger zone 43
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2367,'EPSG',2367,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 43",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2367,'EPSG',2367,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 43",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2368 : Xian 1980 / 3-degree Gauss-Kruger zone 44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2368,'EPSG',2368,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 44",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2368,'EPSG',2368,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 44",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2369 : Xian 1980 / 3-degree Gauss-Kruger zone 45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2369,'EPSG',2369,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 45",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2369,'EPSG',2369,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 45",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2370 : Xian 1980 / 3-degree Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2370,'EPSG',2370,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2370,'EPSG',2370,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
 ---
 --- EPSG 2371 : Xian 1980 / 3-degree Gauss-Kruger CM 78E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2371,'EPSG',2371,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2371,'EPSG',2371,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
 ---
 --- EPSG 2372 : Xian 1980 / 3-degree Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2372,'EPSG',2372,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2372,'EPSG',2372,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
 ---
 --- EPSG 2373 : Xian 1980 / 3-degree Gauss-Kruger CM 84E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2373,'EPSG',2373,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2373,'EPSG',2373,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
 ---
 --- EPSG 2374 : Xian 1980 / 3-degree Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2374,'EPSG',2374,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2374,'EPSG',2374,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
 ---
 --- EPSG 2375 : Xian 1980 / 3-degree Gauss-Kruger CM 90E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2375,'EPSG',2375,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2375,'EPSG',2375,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
 ---
 --- EPSG 2376 : Xian 1980 / 3-degree Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2376,'EPSG',2376,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2376,'EPSG',2376,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
 ---
 --- EPSG 2377 : Xian 1980 / 3-degree Gauss-Kruger CM 96E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2377,'EPSG',2377,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2377,'EPSG',2377,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
 ---
 --- EPSG 2378 : Xian 1980 / 3-degree Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2378,'EPSG',2378,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2378,'EPSG',2378,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
 ---
 --- EPSG 2379 : Xian 1980 / 3-degree Gauss-Kruger CM 102E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2379,'EPSG',2379,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2379,'EPSG',2379,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2380 : Xian 1980 / 3-degree Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2380,'EPSG',2380,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2380,'EPSG',2380,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2381 : Xian 1980 / 3-degree Gauss-Kruger CM 108E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2381,'EPSG',2381,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2381,'EPSG',2381,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2382 : Xian 1980 / 3-degree Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2382,'EPSG',2382,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2382,'EPSG',2382,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2383 : Xian 1980 / 3-degree Gauss-Kruger CM 114E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2383,'EPSG',2383,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2383,'EPSG',2383,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2384 : Xian 1980 / 3-degree Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2384,'EPSG',2384,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2384,'EPSG',2384,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2385 : Xian 1980 / 3-degree Gauss-Kruger CM 120E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2385,'EPSG',2385,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2385,'EPSG',2385,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2386 : Xian 1980 / 3-degree Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2386,'EPSG',2386,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2386,'EPSG',2386,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2387 : Xian 1980 / 3-degree Gauss-Kruger CM 126E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2387,'EPSG',2387,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2387,'EPSG',2387,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2388 : Xian 1980 / 3-degree Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2388,'EPSG',2388,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2388,'EPSG',2388,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2389 : Xian 1980 / 3-degree Gauss-Kruger CM 132E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2389,'EPSG',2389,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2389,'EPSG',2389,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2390 : Xian 1980 / 3-degree Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2390,'EPSG',2390,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2390,'EPSG',2390,'PROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["IAG 1975",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 2391 : KKJ / Finland zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2391,'EPSG',2391,'PROJCS["KKJ / Finland zone 1",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2391,'EPSG',2391,'PROJCS["KKJ / Finland zone 1",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],PROJECTIO [...]
 ---
 --- EPSG 2392 : KKJ / Finland zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2392,'EPSG',2392,'PROJCS["KKJ / Finland zone 2",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2392,'EPSG',2392,'PROJCS["KKJ / Finland zone 2",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],PROJECTIO [...]
 ---
 --- EPSG 2393 : KKJ / Finland Uniform Coordinate System
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2393,'EPSG',2393,'PROJCS["KKJ / Finland Uniform Coordinate System",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2393,'EPSG',2393,'PROJCS["KKJ / Finland Uniform Coordinate System",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
 --- EPSG 2394 : KKJ / Finland zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2394,'EPSG',2394,'PROJCS["KKJ / Finland zone 4",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2394,'EPSG',2394,'PROJCS["KKJ / Finland zone 4",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],PROJECTIO [...]
 ---
 --- EPSG 2395 : South Yemen / Gauss-Kruger zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2395,'EPSG',2395,'PROJCS["South Yemen / Gauss-Kruger zone 8",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2395,'EPSG',2395,'PROJCS["South Yemen / Gauss-Kruger zone 8",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 2396 : South Yemen / Gauss-Kruger zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2396,'EPSG',2396,'PROJCS["South Yemen / Gauss-Kruger zone 9",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2396,'EPSG',2396,'PROJCS["South Yemen / Gauss-Kruger zone 9",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 2397 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2397,'EPSG',2397,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2397,'EPSG',2397,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 2398 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2398,'EPSG',2398,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2398,'EPSG',2398,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 2399 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2399,'EPSG',2399,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2399,'EPSG',2399,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 2400 : RT90 2.5 gon W (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2400,'EPSG',2400,'PROJCS["RT90 2.5 gon W (deprecated)",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2400,'EPSG',2400,'PROJCS["RT90 2.5 gon W (deprecated)",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2401 : Beijing 1954 / 3-degree Gauss-Kruger zone 25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2401,'EPSG',2401,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 25",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2401,'EPSG',2401,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 25",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2402 : Beijing 1954 / 3-degree Gauss-Kruger zone 26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2402,'EPSG',2402,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 26",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2402,'EPSG',2402,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 26",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2403 : Beijing 1954 / 3-degree Gauss-Kruger zone 27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2403,'EPSG',2403,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 27",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2403,'EPSG',2403,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 27",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2404 : Beijing 1954 / 3-degree Gauss-Kruger zone 28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2404,'EPSG',2404,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 28",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2404,'EPSG',2404,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 28",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2405 : Beijing 1954 / 3-degree Gauss-Kruger zone 29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2405,'EPSG',2405,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 29",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2405,'EPSG',2405,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 29",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2406 : Beijing 1954 / 3-degree Gauss-Kruger zone 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2406,'EPSG',2406,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 30",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2406,'EPSG',2406,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 30",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2407 : Beijing 1954 / 3-degree Gauss-Kruger zone 31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2407,'EPSG',2407,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 31",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2407,'EPSG',2407,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 31",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2408 : Beijing 1954 / 3-degree Gauss-Kruger zone 32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2408,'EPSG',2408,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 32",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2408,'EPSG',2408,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 32",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2409 : Beijing 1954 / 3-degree Gauss-Kruger zone 33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2409,'EPSG',2409,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 33",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2409,'EPSG',2409,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 33",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2410 : Beijing 1954 / 3-degree Gauss-Kruger zone 34
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2410,'EPSG',2410,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 34",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2410,'EPSG',2410,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 34",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2411 : Beijing 1954 / 3-degree Gauss-Kruger zone 35
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2411,'EPSG',2411,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 35",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2411,'EPSG',2411,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 35",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2412 : Beijing 1954 / 3-degree Gauss-Kruger zone 36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2412,'EPSG',2412,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 36",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2412,'EPSG',2412,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 36",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2413 : Beijing 1954 / 3-degree Gauss-Kruger zone 37
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2413,'EPSG',2413,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 37",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2413,'EPSG',2413,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 37",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2414 : Beijing 1954 / 3-degree Gauss-Kruger zone 38
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2414,'EPSG',2414,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 38",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2414,'EPSG',2414,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 38",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2415 : Beijing 1954 / 3-degree Gauss-Kruger zone 39
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2415,'EPSG',2415,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 39",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2415,'EPSG',2415,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 39",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2416 : Beijing 1954 / 3-degree Gauss-Kruger zone 40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2416,'EPSG',2416,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 40",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2416,'EPSG',2416,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 40",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2417 : Beijing 1954 / 3-degree Gauss-Kruger zone 41
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2417,'EPSG',2417,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 41",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2417,'EPSG',2417,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 41",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2418 : Beijing 1954 / 3-degree Gauss-Kruger zone 42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2418,'EPSG',2418,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 42",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2418,'EPSG',2418,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 42",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2419 : Beijing 1954 / 3-degree Gauss-Kruger zone 43
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2419,'EPSG',2419,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 43",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2419,'EPSG',2419,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 43",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2420 : Beijing 1954 / 3-degree Gauss-Kruger zone 44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2420,'EPSG',2420,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 44",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2420,'EPSG',2420,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 44",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2421 : Beijing 1954 / 3-degree Gauss-Kruger zone 45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2421,'EPSG',2421,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 45",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2421,'EPSG',2421,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 45",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2422 : Beijing 1954 / 3-degree Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2422,'EPSG',2422,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2422,'EPSG',2422,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2423 : Beijing 1954 / 3-degree Gauss-Kruger CM 78E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2423,'EPSG',2423,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2423,'EPSG',2423,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2424 : Beijing 1954 / 3-degree Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2424,'EPSG',2424,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2424,'EPSG',2424,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2425 : Beijing 1954 / 3-degree Gauss-Kruger CM 84E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2425,'EPSG',2425,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2425,'EPSG',2425,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2426 : Beijing 1954 / 3-degree Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2426,'EPSG',2426,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2426,'EPSG',2426,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2427 : Beijing 1954 / 3-degree Gauss-Kruger CM 90E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2427,'EPSG',2427,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2427,'EPSG',2427,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2428 : Beijing 1954 / 3-degree Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2428,'EPSG',2428,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2428,'EPSG',2428,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2429 : Beijing 1954 / 3-degree Gauss-Kruger CM 96E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2429,'EPSG',2429,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2429,'EPSG',2429,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2430 : Beijing 1954 / 3-degree Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2430,'EPSG',2430,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2430,'EPSG',2430,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2431 : Beijing 1954 / 3-degree Gauss-Kruger CM 102E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2431,'EPSG',2431,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2431,'EPSG',2431,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2432 : Beijing 1954 / 3-degree Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2432,'EPSG',2432,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2432,'EPSG',2432,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2433 : Beijing 1954 / 3-degree Gauss-Kruger CM 108E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2433,'EPSG',2433,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2433,'EPSG',2433,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2434 : Beijing 1954 / 3-degree Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2434,'EPSG',2434,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2434,'EPSG',2434,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2435 : Beijing 1954 / 3-degree Gauss-Kruger CM 114E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2435,'EPSG',2435,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2435,'EPSG',2435,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2436 : Beijing 1954 / 3-degree Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2436,'EPSG',2436,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2436,'EPSG',2436,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2437 : Beijing 1954 / 3-degree Gauss-Kruger CM 120E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2437,'EPSG',2437,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2437,'EPSG',2437,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2438 : Beijing 1954 / 3-degree Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2438,'EPSG',2438,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2438,'EPSG',2438,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2439 : Beijing 1954 / 3-degree Gauss-Kruger CM 126E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2439,'EPSG',2439,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2439,'EPSG',2439,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2440 : Beijing 1954 / 3-degree Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2440,'EPSG',2440,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2440,'EPSG',2440,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2441 : Beijing 1954 / 3-degree Gauss-Kruger CM 132E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2441,'EPSG',2441,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2441,'EPSG',2441,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2442 : Beijing 1954 / 3-degree Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2442,'EPSG',2442,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2442,'EPSG',2442,'PROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2443 : JGD2000 / Japan Plane Rectangular CS I
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2443,'EPSG',2443,'PROJCS["JGD2000 / Japan Plane Rectangular CS I",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2443,'EPSG',2443,'PROJCS["JGD2000 / Japan Plane Rectangular CS I",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 2444 : JGD2000 / Japan Plane Rectangular CS II
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2444,'EPSG',2444,'PROJCS["JGD2000 / Japan Plane Rectangular CS II",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2444,'EPSG',2444,'PROJCS["JGD2000 / Japan Plane Rectangular CS II",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2445 : JGD2000 / Japan Plane Rectangular CS III
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2445,'EPSG',2445,'PROJCS["JGD2000 / Japan Plane Rectangular CS III",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2445,'EPSG',2445,'PROJCS["JGD2000 / Japan Plane Rectangular CS III",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2446 : JGD2000 / Japan Plane Rectangular CS IV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2446,'EPSG',2446,'PROJCS["JGD2000 / Japan Plane Rectangular CS IV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2446,'EPSG',2446,'PROJCS["JGD2000 / Japan Plane Rectangular CS IV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2447 : JGD2000 / Japan Plane Rectangular CS V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2447,'EPSG',2447,'PROJCS["JGD2000 / Japan Plane Rectangular CS V",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2447,'EPSG',2447,'PROJCS["JGD2000 / Japan Plane Rectangular CS V",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 2448 : JGD2000 / Japan Plane Rectangular CS VI
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2448,'EPSG',2448,'PROJCS["JGD2000 / Japan Plane Rectangular CS VI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2448,'EPSG',2448,'PROJCS["JGD2000 / Japan Plane Rectangular CS VI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2449 : JGD2000 / Japan Plane Rectangular CS VII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2449,'EPSG',2449,'PROJCS["JGD2000 / Japan Plane Rectangular CS VII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2449,'EPSG',2449,'PROJCS["JGD2000 / Japan Plane Rectangular CS VII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2450 : JGD2000 / Japan Plane Rectangular CS VIII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2450,'EPSG',2450,'PROJCS["JGD2000 / Japan Plane Rectangular CS VIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2450,'EPSG',2450,'PROJCS["JGD2000 / Japan Plane Rectangular CS VIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2451 : JGD2000 / Japan Plane Rectangular CS IX
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2451,'EPSG',2451,'PROJCS["JGD2000 / Japan Plane Rectangular CS IX",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2451,'EPSG',2451,'PROJCS["JGD2000 / Japan Plane Rectangular CS IX",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2452 : JGD2000 / Japan Plane Rectangular CS X
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2452,'EPSG',2452,'PROJCS["JGD2000 / Japan Plane Rectangular CS X",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2452,'EPSG',2452,'PROJCS["JGD2000 / Japan Plane Rectangular CS X",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 2453 : JGD2000 / Japan Plane Rectangular CS XI
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2453,'EPSG',2453,'PROJCS["JGD2000 / Japan Plane Rectangular CS XI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2453,'EPSG',2453,'PROJCS["JGD2000 / Japan Plane Rectangular CS XI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2454 : JGD2000 / Japan Plane Rectangular CS XII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2454,'EPSG',2454,'PROJCS["JGD2000 / Japan Plane Rectangular CS XII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2454,'EPSG',2454,'PROJCS["JGD2000 / Japan Plane Rectangular CS XII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2455 : JGD2000 / Japan Plane Rectangular CS XIII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2455,'EPSG',2455,'PROJCS["JGD2000 / Japan Plane Rectangular CS XIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2455,'EPSG',2455,'PROJCS["JGD2000 / Japan Plane Rectangular CS XIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2456 : JGD2000 / Japan Plane Rectangular CS XIV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2456,'EPSG',2456,'PROJCS["JGD2000 / Japan Plane Rectangular CS XIV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2456,'EPSG',2456,'PROJCS["JGD2000 / Japan Plane Rectangular CS XIV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2457 : JGD2000 / Japan Plane Rectangular CS XV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2457,'EPSG',2457,'PROJCS["JGD2000 / Japan Plane Rectangular CS XV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2457,'EPSG',2457,'PROJCS["JGD2000 / Japan Plane Rectangular CS XV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2458 : JGD2000 / Japan Plane Rectangular CS XVI
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2458,'EPSG',2458,'PROJCS["JGD2000 / Japan Plane Rectangular CS XVI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2458,'EPSG',2458,'PROJCS["JGD2000 / Japan Plane Rectangular CS XVI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2459 : JGD2000 / Japan Plane Rectangular CS XVII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2459,'EPSG',2459,'PROJCS["JGD2000 / Japan Plane Rectangular CS XVII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2459,'EPSG',2459,'PROJCS["JGD2000 / Japan Plane Rectangular CS XVII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2460 : JGD2000 / Japan Plane Rectangular CS XVIII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2460,'EPSG',2460,'PROJCS["JGD2000 / Japan Plane Rectangular CS XVIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2460,'EPSG',2460,'PROJCS["JGD2000 / Japan Plane Rectangular CS XVIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2461 : JGD2000 / Japan Plane Rectangular CS XIX
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2461,'EPSG',2461,'PROJCS["JGD2000 / Japan Plane Rectangular CS XIX",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2461,'EPSG',2461,'PROJCS["JGD2000 / Japan Plane Rectangular CS XIX",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2462 : Albanian 1987 / Gauss-Kruger zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2462,'EPSG',2462,'PROJCS["Albanian 1987 / Gauss-Kruger zone 4",GEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2462,'EPSG',2462,'PROJCS["Albanian 1987 / Gauss-Kruger zone 4",GEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 2463 : Pulkovo 1995 / Gauss-Kruger CM 21E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2463,'EPSG',2463,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2463,'EPSG',2463,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2464 : Pulkovo 1995 / Gauss-Kruger CM 27E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2464,'EPSG',2464,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2464,'EPSG',2464,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2465 : Pulkovo 1995 / Gauss-Kruger CM 33E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2465,'EPSG',2465,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2465,'EPSG',2465,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2466 : Pulkovo 1995 / Gauss-Kruger CM 39E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2466,'EPSG',2466,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2466,'EPSG',2466,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2467 : Pulkovo 1995 / Gauss-Kruger CM 45E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2467,'EPSG',2467,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2467,'EPSG',2467,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2468 : Pulkovo 1995 / Gauss-Kruger CM 51E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2468,'EPSG',2468,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2468,'EPSG',2468,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2469 : Pulkovo 1995 / Gauss-Kruger CM 57E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2469,'EPSG',2469,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2469,'EPSG',2469,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2470 : Pulkovo 1995 / Gauss-Kruger CM 63E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2470,'EPSG',2470,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2470,'EPSG',2470,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2471 : Pulkovo 1995 / Gauss-Kruger CM 69E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2471,'EPSG',2471,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2471,'EPSG',2471,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2472 : Pulkovo 1995 / Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2472,'EPSG',2472,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2472,'EPSG',2472,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2473 : Pulkovo 1995 / Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2473,'EPSG',2473,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2473,'EPSG',2473,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2474 : Pulkovo 1995 / Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2474,'EPSG',2474,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2474,'EPSG',2474,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2475 : Pulkovo 1995 / Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2475,'EPSG',2475,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2475,'EPSG',2475,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2476 : Pulkovo 1995 / Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2476,'EPSG',2476,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2476,'EPSG',2476,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2477 : Pulkovo 1995 / Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2477,'EPSG',2477,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2477,'EPSG',2477,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2478 : Pulkovo 1995 / Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2478,'EPSG',2478,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2478,'EPSG',2478,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2479 : Pulkovo 1995 / Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2479,'EPSG',2479,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2479,'EPSG',2479,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2480 : Pulkovo 1995 / Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2480,'EPSG',2480,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2480,'EPSG',2480,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2481 : Pulkovo 1995 / Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2481,'EPSG',2481,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2481,'EPSG',2481,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2482 : Pulkovo 1995 / Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2482,'EPSG',2482,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2482,'EPSG',2482,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2483 : Pulkovo 1995 / Gauss-Kruger CM 141E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2483,'EPSG',2483,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2483,'EPSG',2483,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2484 : Pulkovo 1995 / Gauss-Kruger CM 147E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2484,'EPSG',2484,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2484,'EPSG',2484,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2485 : Pulkovo 1995 / Gauss-Kruger CM 153E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2485,'EPSG',2485,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2485,'EPSG',2485,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2486 : Pulkovo 1995 / Gauss-Kruger CM 159E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2486,'EPSG',2486,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2486,'EPSG',2486,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2487 : Pulkovo 1995 / Gauss-Kruger CM 165E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2487,'EPSG',2487,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2487,'EPSG',2487,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2488 : Pulkovo 1995 / Gauss-Kruger CM 171E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2488,'EPSG',2488,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2488,'EPSG',2488,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2489 : Pulkovo 1995 / Gauss-Kruger CM 177E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2489,'EPSG',2489,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2489,'EPSG',2489,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2490 : Pulkovo 1995 / Gauss-Kruger CM 177W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2490,'EPSG',2490,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2490,'EPSG',2490,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2491 : Pulkovo 1995 / Gauss-Kruger CM 171W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2491,'EPSG',2491,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2491,'EPSG',2491,'PROJCS["Pulkovo 1995 / Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2492 : Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2492,'EPSG',2492,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2492,'EPSG',2492,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
 ---
 --- EPSG 2493 : Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2493,'EPSG',2493,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2493,'EPSG',2493,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION [...]
 ---
 --- EPSG 2494 : Pulkovo 1942 / Gauss-Kruger CM 21E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2494,'EPSG',2494,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2494,'EPSG',2494,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2495 : Pulkovo 1942 / Gauss-Kruger CM 27E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2495,'EPSG',2495,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2495,'EPSG',2495,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2496 : Pulkovo 1942 / Gauss-Kruger CM 33E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2496,'EPSG',2496,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2496,'EPSG',2496,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2497 : Pulkovo 1942 / Gauss-Kruger CM 39E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2497,'EPSG',2497,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2497,'EPSG',2497,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2498 : Pulkovo 1942 / Gauss-Kruger CM 45E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2498,'EPSG',2498,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2498,'EPSG',2498,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2499 : Pulkovo 1942 / Gauss-Kruger CM 51E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2499,'EPSG',2499,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2499,'EPSG',2499,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2500 : Pulkovo 1942 / Gauss-Kruger CM 57E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2500,'EPSG',2500,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2500,'EPSG',2500,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2501 : Pulkovo 1942 / Gauss-Kruger CM 63E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2501,'EPSG',2501,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2501,'EPSG',2501,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2502 : Pulkovo 1942 / Gauss-Kruger CM 69E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2502,'EPSG',2502,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2502,'EPSG',2502,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2503 : Pulkovo 1942 / Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2503,'EPSG',2503,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2503,'EPSG',2503,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2504 : Pulkovo 1942 / Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2504,'EPSG',2504,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2504,'EPSG',2504,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2505 : Pulkovo 1942 / Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2505,'EPSG',2505,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2505,'EPSG',2505,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2506 : Pulkovo 1942 / Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2506,'EPSG',2506,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2506,'EPSG',2506,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2507 : Pulkovo 1942 / Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2507,'EPSG',2507,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2507,'EPSG',2507,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2508 : Pulkovo 1942 / Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2508,'EPSG',2508,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2508,'EPSG',2508,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2509 : Pulkovo 1942 / Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2509,'EPSG',2509,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2509,'EPSG',2509,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2510 : Pulkovo 1942 / Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2510,'EPSG',2510,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2510,'EPSG',2510,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2511 : Pulkovo 1942 / Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2511,'EPSG',2511,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2511,'EPSG',2511,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2512 : Pulkovo 1942 / Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2512,'EPSG',2512,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2512,'EPSG',2512,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2513 : Pulkovo 1942 / Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2513,'EPSG',2513,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2513,'EPSG',2513,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2514 : Pulkovo 1942 / Gauss-Kruger CM 141E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2514,'EPSG',2514,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2514,'EPSG',2514,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2515 : Pulkovo 1942 / Gauss-Kruger CM 147E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2515,'EPSG',2515,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2515,'EPSG',2515,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2516 : Pulkovo 1942 / Gauss-Kruger CM 153E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2516,'EPSG',2516,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2516,'EPSG',2516,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2517 : Pulkovo 1942 / Gauss-Kruger CM 159E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2517,'EPSG',2517,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2517,'EPSG',2517,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2518 : Pulkovo 1942 / Gauss-Kruger CM 165E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2518,'EPSG',2518,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2518,'EPSG',2518,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2519 : Pulkovo 1942 / Gauss-Kruger CM 171E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2519,'EPSG',2519,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2519,'EPSG',2519,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2520 : Pulkovo 1942 / Gauss-Kruger CM 177E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2520,'EPSG',2520,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2520,'EPSG',2520,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2521 : Pulkovo 1942 / Gauss-Kruger CM 177W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2521,'EPSG',2521,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2521,'EPSG',2521,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2522 : Pulkovo 1942 / Gauss-Kruger CM 171W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2522,'EPSG',2522,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2522,'EPSG',2522,'PROJCS["Pulkovo 1942 / Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2523 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2523,'EPSG',2523,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2523,'EPSG',2523,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2524 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2524,'EPSG',2524,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2524,'EPSG',2524,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2525 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2525,'EPSG',2525,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2525,'EPSG',2525,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2526 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2526,'EPSG',2526,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2526,'EPSG',2526,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2527 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2527,'EPSG',2527,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 11",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2527,'EPSG',2527,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 11",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2528 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2528,'EPSG',2528,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 12",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2528,'EPSG',2528,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 12",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2529 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2529,'EPSG',2529,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 13",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2529,'EPSG',2529,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 13",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2530 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2530,'EPSG',2530,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 14",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2530,'EPSG',2530,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 14",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2531 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2531,'EPSG',2531,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 15",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2531,'EPSG',2531,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 15",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2532 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2532,'EPSG',2532,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 16",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2532,'EPSG',2532,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 16",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2533 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2533,'EPSG',2533,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 17",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2533,'EPSG',2533,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 17",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2534 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2534,'EPSG',2534,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 18",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2534,'EPSG',2534,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 18",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2535 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2535,'EPSG',2535,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 19",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2535,'EPSG',2535,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 19",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2536 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2536,'EPSG',2536,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 20",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2536,'EPSG',2536,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 20",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2537 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2537,'EPSG',2537,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 21",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2537,'EPSG',2537,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 21",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2538 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2538,'EPSG',2538,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 22",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2538,'EPSG',2538,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 22",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2539 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2539,'EPSG',2539,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 23",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2539,'EPSG',2539,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 23",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2540 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2540,'EPSG',2540,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 24",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2540,'EPSG',2540,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 24",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2541 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2541,'EPSG',2541,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 25",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2541,'EPSG',2541,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 25",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2542 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2542,'EPSG',2542,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 26",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2542,'EPSG',2542,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 26",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2543 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2543,'EPSG',2543,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 27",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2543,'EPSG',2543,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 27",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2544 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2544,'EPSG',2544,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 28",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2544,'EPSG',2544,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 28",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2545 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2545,'EPSG',2545,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 29",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2545,'EPSG',2545,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 29",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2546 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2546,'EPSG',2546,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 30",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2546,'EPSG',2546,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 30",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2547 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2547,'EPSG',2547,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 31",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2547,'EPSG',2547,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 31",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2548 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2548,'EPSG',2548,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 32",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2548,'EPSG',2548,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 32",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2549 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2549,'EPSG',2549,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 33",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2549,'EPSG',2549,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 33",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2550 : Samboja / UTM zone 50S (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2550,'EPSG',2550,'PROJCS["Samboja / UTM zone 50S (deprecated)",GEOGCS["Samboja",DATUM["Samboja",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY["EPSG","6125"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4125"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2550,'EPSG',2550,'PROJCS["Samboja / UTM zone 50S (deprecated)",GEOGCS["Samboja",DATUM["Samboja",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY["EPSG","6125"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4125"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 2551 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 34
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2551,'EPSG',2551,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 34",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2551,'EPSG',2551,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 34",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2552 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 35
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2552,'EPSG',2552,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 35",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2552,'EPSG',2552,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 35",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2553 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2553,'EPSG',2553,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 36",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2553,'EPSG',2553,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 36",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2554 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 37
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2554,'EPSG',2554,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 37",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2554,'EPSG',2554,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 37",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2555 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 38
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2555,'EPSG',2555,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 38",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2555,'EPSG',2555,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 38",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2556 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 39
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2556,'EPSG',2556,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 39",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2556,'EPSG',2556,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 39",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2557 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2557,'EPSG',2557,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 40",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2557,'EPSG',2557,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 40",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2558 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 41
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2558,'EPSG',2558,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 41",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2558,'EPSG',2558,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 41",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2559 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2559,'EPSG',2559,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 42",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2559,'EPSG',2559,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 42",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2560 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 43
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2560,'EPSG',2560,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 43",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2560,'EPSG',2560,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 43",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2561 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2561,'EPSG',2561,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 44",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2561,'EPSG',2561,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 44",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2562 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2562,'EPSG',2562,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 45",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2562,'EPSG',2562,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 45",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2563 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 46
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2563,'EPSG',2563,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 46",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2563,'EPSG',2563,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 46",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2564 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 47
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2564,'EPSG',2564,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 47",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2564,'EPSG',2564,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 47",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2565 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 48
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2565,'EPSG',2565,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 48",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2565,'EPSG',2565,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 48",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2566 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 49
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2566,'EPSG',2566,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 49",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2566,'EPSG',2566,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 49",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2567 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2567,'EPSG',2567,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 50",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2567,'EPSG',2567,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 50",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2568 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 51
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2568,'EPSG',2568,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 51",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2568,'EPSG',2568,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 51",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2569 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 52
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2569,'EPSG',2569,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 52",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2569,'EPSG',2569,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 52",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2570 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 53
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2570,'EPSG',2570,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 53",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2570,'EPSG',2570,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 53",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2571 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 54
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2571,'EPSG',2571,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 54",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2571,'EPSG',2571,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 54",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2572 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 55
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2572,'EPSG',2572,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 55",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2572,'EPSG',2572,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 55",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2573 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 56
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2573,'EPSG',2573,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 56",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2573,'EPSG',2573,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 56",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2574 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 57
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2574,'EPSG',2574,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 57",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2574,'EPSG',2574,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 57",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2575 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 58
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2575,'EPSG',2575,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 58",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2575,'EPSG',2575,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 58",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2576 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 59
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2576,'EPSG',2576,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 59",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2576,'EPSG',2576,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 59",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2577 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2577,'EPSG',2577,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2577,'EPSG',2577,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]], [...]
 ---
 --- EPSG 2578 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 61
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2578,'EPSG',2578,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 61",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2578,'EPSG',2578,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 61",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2579 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 62
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2579,'EPSG',2579,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 62",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2579,'EPSG',2579,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 62",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2580 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 63
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2580,'EPSG',2580,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 63",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2580,'EPSG',2580,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 63",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2581 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 64
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2581,'EPSG',2581,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 64",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2581,'EPSG',2581,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 64",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2582 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2582,'EPSG',2582,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2582,'EPSG',2582,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2583 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2583,'EPSG',2583,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2583,'EPSG',2583,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2584 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2584,'EPSG',2584,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2584,'EPSG',2584,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2585 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2585,'EPSG',2585,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2585,'EPSG',2585,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2586 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2586,'EPSG',2586,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2586,'EPSG',2586,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2587 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2587,'EPSG',2587,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2587,'EPSG',2587,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2588 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2588,'EPSG',2588,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2588,'EPSG',2588,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2589 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2589,'EPSG',2589,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2589,'EPSG',2589,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2590 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2590,'EPSG',2590,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2590,'EPSG',2590,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2591 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2591,'EPSG',2591,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2591,'EPSG',2591,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2592 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2592,'EPSG',2592,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2592,'EPSG',2592,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2593 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2593,'EPSG',2593,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2593,'EPSG',2593,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2594 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2594,'EPSG',2594,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2594,'EPSG',2594,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2595 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2595,'EPSG',2595,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2595,'EPSG',2595,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2596 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2596,'EPSG',2596,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2596,'EPSG',2596,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2597 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2597,'EPSG',2597,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2597,'EPSG',2597,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2598 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2598,'EPSG',2598,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2598,'EPSG',2598,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2599 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2599,'EPSG',2599,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2599,'EPSG',2599,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2600 : Lietuvos Koordinoei Sistema 1994 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2600,'EPSG',2600,'PROJCS["Lietuvos Koordinoei Sistema 1994 (deprecated)",GEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2600,'EPSG',2600,'PROJCS["Lietuvos Koordinoei Sistema 1994 (deprecated)",GEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 2601 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2601,'EPSG',2601,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2601,'EPSG',2601,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2602 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2602,'EPSG',2602,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2602,'EPSG',2602,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2603 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2603,'EPSG',2603,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2603,'EPSG',2603,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2604 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2604,'EPSG',2604,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2604,'EPSG',2604,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2605 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2605,'EPSG',2605,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2605,'EPSG',2605,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2606 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2606,'EPSG',2606,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2606,'EPSG',2606,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2607 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2607,'EPSG',2607,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2607,'EPSG',2607,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2608 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2608,'EPSG',2608,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2608,'EPSG',2608,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2609 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2609,'EPSG',2609,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2609,'EPSG',2609,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2610 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2610,'EPSG',2610,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2610,'EPSG',2610,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2611 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2611,'EPSG',2611,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2611,'EPSG',2611,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2612 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2612,'EPSG',2612,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2612,'EPSG',2612,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2613 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2613,'EPSG',2613,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2613,'EPSG',2613,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2614 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2614,'EPSG',2614,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2614,'EPSG',2614,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2615 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2615,'EPSG',2615,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2615,'EPSG',2615,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2616 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2616,'EPSG',2616,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2616,'EPSG',2616,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2617 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2617,'EPSG',2617,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2617,'EPSG',2617,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2618 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2618,'EPSG',2618,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2618,'EPSG',2618,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2619 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2619,'EPSG',2619,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2619,'EPSG',2619,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2620 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2620,'EPSG',2620,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2620,'EPSG',2620,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2621 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2621,'EPSG',2621,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2621,'EPSG',2621,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2622 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2622,'EPSG',2622,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2622,'EPSG',2622,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2623 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2623,'EPSG',2623,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2623,'EPSG',2623,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2624 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2624,'EPSG',2624,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2624,'EPSG',2624,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2625 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2625,'EPSG',2625,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2625,'EPSG',2625,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2626 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2626,'EPSG',2626,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2626,'EPSG',2626,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2627 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2627,'EPSG',2627,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2627,'EPSG',2627,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2628 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2628,'EPSG',2628,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2628,'EPSG',2628,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2629 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2629,'EPSG',2629,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2629,'EPSG',2629,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2630 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2630,'EPSG',2630,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2630,'EPSG',2630,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2631 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2631,'EPSG',2631,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2631,'EPSG',2631,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2632 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2632,'EPSG',2632,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2632,'EPSG',2632,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2633 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2633,'EPSG',2633,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2633,'EPSG',2633,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2634 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2634,'EPSG',2634,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2634,'EPSG',2634,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2635 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2635,'EPSG',2635,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2635,'EPSG',2635,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2636 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2636,'EPSG',2636,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2636,'EPSG',2636,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2637 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2637,'EPSG',2637,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2637,'EPSG',2637,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2638 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2638,'EPSG',2638,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2638,'EPSG',2638,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2639 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2639,'EPSG',2639,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2639,'EPSG',2639,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2640 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2640,'EPSG',2640,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2640,'EPSG',2640,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 2641 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2641,'EPSG',2641,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2641,'EPSG',2641,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2642 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2642,'EPSG',2642,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2642,'EPSG',2642,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2643 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2643,'EPSG',2643,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2643,'EPSG',2643,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2644 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2644,'EPSG',2644,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2644,'EPSG',2644,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2645 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2645,'EPSG',2645,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 11",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2645,'EPSG',2645,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 11",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2646 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2646,'EPSG',2646,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 12",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2646,'EPSG',2646,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 12",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2647 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2647,'EPSG',2647,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 13",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2647,'EPSG',2647,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 13",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2648 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2648,'EPSG',2648,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 14",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2648,'EPSG',2648,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 14",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2649 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2649,'EPSG',2649,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 15",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2649,'EPSG',2649,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 15",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2650 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2650,'EPSG',2650,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 16",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2650,'EPSG',2650,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 16",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2651 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2651,'EPSG',2651,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 17",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2651,'EPSG',2651,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 17",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2652 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2652,'EPSG',2652,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 18",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2652,'EPSG',2652,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 18",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2653 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2653,'EPSG',2653,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 19",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2653,'EPSG',2653,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 19",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2654 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2654,'EPSG',2654,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 20",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2654,'EPSG',2654,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 20",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2655 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2655,'EPSG',2655,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 21",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2655,'EPSG',2655,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 21",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2656 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2656,'EPSG',2656,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 22",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2656,'EPSG',2656,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 22",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2657 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2657,'EPSG',2657,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 23",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2657,'EPSG',2657,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 23",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2658 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2658,'EPSG',2658,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 24",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2658,'EPSG',2658,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 24",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2659 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2659,'EPSG',2659,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 25",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2659,'EPSG',2659,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 25",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2660 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2660,'EPSG',2660,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 26",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2660,'EPSG',2660,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 26",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2661 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2661,'EPSG',2661,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 27",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2661,'EPSG',2661,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 27",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2662 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2662,'EPSG',2662,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 28",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2662,'EPSG',2662,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 28",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2663 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2663,'EPSG',2663,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 29",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2663,'EPSG',2663,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 29",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2664 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2664,'EPSG',2664,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 30",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2664,'EPSG',2664,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 30",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2665 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2665,'EPSG',2665,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 31",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2665,'EPSG',2665,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 31",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2666 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2666,'EPSG',2666,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 32",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2666,'EPSG',2666,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 32",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2667 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2667,'EPSG',2667,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 33",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2667,'EPSG',2667,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 33",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2668 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 34
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2668,'EPSG',2668,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 34",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2668,'EPSG',2668,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 34",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2669 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 35
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2669,'EPSG',2669,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 35",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2669,'EPSG',2669,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 35",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2670 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2670,'EPSG',2670,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 36",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2670,'EPSG',2670,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 36",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2671 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 37
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2671,'EPSG',2671,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 37",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2671,'EPSG',2671,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 37",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2672 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 38
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2672,'EPSG',2672,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 38",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2672,'EPSG',2672,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 38",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2673 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 39
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2673,'EPSG',2673,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 39",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2673,'EPSG',2673,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 39",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2674 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2674,'EPSG',2674,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 40",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2674,'EPSG',2674,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 40",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2675 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 41
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2675,'EPSG',2675,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 41",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2675,'EPSG',2675,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 41",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2676 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2676,'EPSG',2676,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 42",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2676,'EPSG',2676,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 42",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2677 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 43
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2677,'EPSG',2677,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 43",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2677,'EPSG',2677,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 43",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2678 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2678,'EPSG',2678,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 44",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2678,'EPSG',2678,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 44",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2679 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2679,'EPSG',2679,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 45",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2679,'EPSG',2679,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 45",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2680 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 46
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2680,'EPSG',2680,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 46",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2680,'EPSG',2680,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 46",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2681 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 47
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2681,'EPSG',2681,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 47",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2681,'EPSG',2681,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 47",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2682 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 48
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2682,'EPSG',2682,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 48",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2682,'EPSG',2682,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 48",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2683 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 49
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2683,'EPSG',2683,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 49",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2683,'EPSG',2683,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 49",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2684 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2684,'EPSG',2684,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 50",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2684,'EPSG',2684,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 50",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2685 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 51
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2685,'EPSG',2685,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 51",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2685,'EPSG',2685,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 51",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2686 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 52
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2686,'EPSG',2686,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 52",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2686,'EPSG',2686,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 52",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2687 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 53
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2687,'EPSG',2687,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 53",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2687,'EPSG',2687,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 53",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2688 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 54
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2688,'EPSG',2688,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 54",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2688,'EPSG',2688,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 54",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2689 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 55
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2689,'EPSG',2689,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 55",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2689,'EPSG',2689,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 55",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2690 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 56
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2690,'EPSG',2690,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 56",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2690,'EPSG',2690,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 56",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2691 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 57
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2691,'EPSG',2691,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 57",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2691,'EPSG',2691,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 57",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2692 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 58
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2692,'EPSG',2692,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 58",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2692,'EPSG',2692,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 58",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2693 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 59
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2693,'EPSG',2693,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 59",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2693,'EPSG',2693,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 59",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2694 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2694,'EPSG',2694,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2694,'EPSG',2694,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PR [...]
 ---
 --- EPSG 2695 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 61
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2695,'EPSG',2695,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 61",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2695,'EPSG',2695,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 61",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2696 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 62
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2696,'EPSG',2696,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 62",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2696,'EPSG',2696,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 62",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2697 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 63
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2697,'EPSG',2697,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 63",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2697,'EPSG',2697,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 63",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2698 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 64
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2698,'EPSG',2698,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 64",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2698,'EPSG',2698,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 64",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2699 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2699,'EPSG',2699,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2699,'EPSG',2699,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2700 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2700,'EPSG',2700,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2700,'EPSG',2700,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2701 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2701,'EPSG',2701,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2701,'EPSG',2701,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2702 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2702,'EPSG',2702,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2702,'EPSG',2702,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2703 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2703,'EPSG',2703,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2703,'EPSG',2703,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2704 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2704,'EPSG',2704,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2704,'EPSG',2704,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2705 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2705,'EPSG',2705,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2705,'EPSG',2705,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2706 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2706,'EPSG',2706,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2706,'EPSG',2706,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2707 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2707,'EPSG',2707,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2707,'EPSG',2707,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2708 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2708,'EPSG',2708,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2708,'EPSG',2708,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2709 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2709,'EPSG',2709,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2709,'EPSG',2709,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2710 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2710,'EPSG',2710,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2710,'EPSG',2710,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2711 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2711,'EPSG',2711,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2711,'EPSG',2711,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2712 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2712,'EPSG',2712,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2712,'EPSG',2712,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2713 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2713,'EPSG',2713,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2713,'EPSG',2713,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2714 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2714,'EPSG',2714,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2714,'EPSG',2714,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2715 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2715,'EPSG',2715,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2715,'EPSG',2715,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2716 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2716,'EPSG',2716,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2716,'EPSG',2716,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2717 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2717,'EPSG',2717,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2717,'EPSG',2717,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2718 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2718,'EPSG',2718,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2718,'EPSG',2718,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2719 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2719,'EPSG',2719,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2719,'EPSG',2719,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2720 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2720,'EPSG',2720,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2720,'EPSG',2720,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2721 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2721,'EPSG',2721,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2721,'EPSG',2721,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2722 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2722,'EPSG',2722,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2722,'EPSG',2722,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2723 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2723,'EPSG',2723,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2723,'EPSG',2723,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2724 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2724,'EPSG',2724,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2724,'EPSG',2724,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2725 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2725,'EPSG',2725,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2725,'EPSG',2725,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tran [...]
 ---
 --- EPSG 2726 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2726,'EPSG',2726,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2726,'EPSG',2726,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2727 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2727,'EPSG',2727,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2727,'EPSG',2727,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2728 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2728,'EPSG',2728,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2728,'EPSG',2728,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2729 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2729,'EPSG',2729,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2729,'EPSG',2729,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2730 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2730,'EPSG',2730,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2730,'EPSG',2730,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2731 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2731,'EPSG',2731,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2731,'EPSG',2731,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2732 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2732,'EPSG',2732,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2732,'EPSG',2732,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2733 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2733,'EPSG',2733,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2733,'EPSG',2733,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2734 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2734,'EPSG',2734,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2734,'EPSG',2734,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2735 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2735,'EPSG',2735,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2735,'EPSG',2735,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2736 : Tete / UTM zone 36S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2736,'EPSG',2736,'PROJCS["Tete / UTM zone 36S",GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[219.315,168.975,-166.145,0.198,5.926,-2.356,-57.104],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2736,'EPSG',2736,'PROJCS["Tete / UTM zone 36S",GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-73.472,-51.66,-112.482,0.953,4.6,-2.368,0.586],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 2737 : Tete / UTM zone 37S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2737,'EPSG',2737,'PROJCS["Tete / UTM zone 37S",GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[219.315,168.975,-166.145,0.198,5.926,-2.356,-57.104],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2737,'EPSG',2737,'PROJCS["Tete / UTM zone 37S",GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-73.472,-51.66,-112.482,0.953,4.6,-2.368,0.586],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 2738 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2738,'EPSG',2738,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2738,'EPSG',2738,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2739 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2739,'EPSG',2739,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2739,'EPSG',2739,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2740 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2740,'EPSG',2740,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2740,'EPSG',2740,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2741 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2741,'EPSG',2741,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2741,'EPSG',2741,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2742 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2742,'EPSG',2742,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2742,'EPSG',2742,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2743 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2743,'EPSG',2743,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2743,'EPSG',2743,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2744 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2744,'EPSG',2744,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2744,'EPSG',2744,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2745 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2745,'EPSG',2745,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2745,'EPSG',2745,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2746 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2746,'EPSG',2746,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2746,'EPSG',2746,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2747 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2747,'EPSG',2747,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2747,'EPSG',2747,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2748 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2748,'EPSG',2748,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2748,'EPSG',2748,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2749 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2749,'EPSG',2749,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2749,'EPSG',2749,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2750 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2750,'EPSG',2750,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2750,'EPSG',2750,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2751 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2751,'EPSG',2751,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2751,'EPSG',2751,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2752 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2752,'EPSG',2752,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2752,'EPSG',2752,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2753 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2753,'EPSG',2753,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2753,'EPSG',2753,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2754 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2754,'EPSG',2754,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2754,'EPSG',2754,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2755 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2755,'EPSG',2755,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2755,'EPSG',2755,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2756 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2756,'EPSG',2756,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2756,'EPSG',2756,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2757 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2757,'EPSG',2757,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2757,'EPSG',2757,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2758 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2758,'EPSG',2758,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2758,'EPSG',2758,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2759 : NAD83(HARN) / Alabama East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2759,'EPSG',2759,'PROJCS["NAD83(HARN) / Alabama East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2759,'EPSG',2759,'PROJCS["NAD83(HARN) / Alabama East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2760 : NAD83(HARN) / Alabama West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2760,'EPSG',2760,'PROJCS["NAD83(HARN) / Alabama West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2760,'EPSG',2760,'PROJCS["NAD83(HARN) / Alabama West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2761 : NAD83(HARN) / Arizona East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2761,'EPSG',2761,'PROJCS["NAD83(HARN) / Arizona East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2761,'EPSG',2761,'PROJCS["NAD83(HARN) / Arizona East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2762 : NAD83(HARN) / Arizona Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2762,'EPSG',2762,'PROJCS["NAD83(HARN) / Arizona Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2762,'EPSG',2762,'PROJCS["NAD83(HARN) / Arizona Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2763 : NAD83(HARN) / Arizona West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2763,'EPSG',2763,'PROJCS["NAD83(HARN) / Arizona West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2763,'EPSG',2763,'PROJCS["NAD83(HARN) / Arizona West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2764 : NAD83(HARN) / Arkansas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2764,'EPSG',2764,'PROJCS["NAD83(HARN) / Arkansas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2764,'EPSG',2764,'PROJCS["NAD83(HARN) / Arkansas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2765 : NAD83(HARN) / Arkansas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2765,'EPSG',2765,'PROJCS["NAD83(HARN) / Arkansas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2765,'EPSG',2765,'PROJCS["NAD83(HARN) / Arkansas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2766 : NAD83(HARN) / California zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2766,'EPSG',2766,'PROJCS["NAD83(HARN) / California zone 1",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2766,'EPSG',2766,'PROJCS["NAD83(HARN) / California zone 1",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2767 : NAD83(HARN) / California zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2767,'EPSG',2767,'PROJCS["NAD83(HARN) / California zone 2",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2767,'EPSG',2767,'PROJCS["NAD83(HARN) / California zone 2",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2768 : NAD83(HARN) / California zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2768,'EPSG',2768,'PROJCS["NAD83(HARN) / California zone 3",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2768,'EPSG',2768,'PROJCS["NAD83(HARN) / California zone 3",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2769 : NAD83(HARN) / California zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2769,'EPSG',2769,'PROJCS["NAD83(HARN) / California zone 4",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2769,'EPSG',2769,'PROJCS["NAD83(HARN) / California zone 4",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2770 : NAD83(HARN) / California zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2770,'EPSG',2770,'PROJCS["NAD83(HARN) / California zone 5",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2770,'EPSG',2770,'PROJCS["NAD83(HARN) / California zone 5",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2771 : NAD83(HARN) / California zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2771,'EPSG',2771,'PROJCS["NAD83(HARN) / California zone 6",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2771,'EPSG',2771,'PROJCS["NAD83(HARN) / California zone 6",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2772 : NAD83(HARN) / Colorado North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2772,'EPSG',2772,'PROJCS["NAD83(HARN) / Colorado North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2772,'EPSG',2772,'PROJCS["NAD83(HARN) / Colorado North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2773 : NAD83(HARN) / Colorado Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2773,'EPSG',2773,'PROJCS["NAD83(HARN) / Colorado Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2773,'EPSG',2773,'PROJCS["NAD83(HARN) / Colorado Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confor [...]
 ---
 --- EPSG 2774 : NAD83(HARN) / Colorado South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2774,'EPSG',2774,'PROJCS["NAD83(HARN) / Colorado South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2774,'EPSG',2774,'PROJCS["NAD83(HARN) / Colorado South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2775 : NAD83(HARN) / Connecticut
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2775,'EPSG',2775,'PROJCS["NAD83(HARN) / Connecticut",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2775,'EPSG',2775,'PROJCS["NAD83(HARN) / Connecticut",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_C [...]
 ---
 --- EPSG 2776 : NAD83(HARN) / Delaware
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2776,'EPSG',2776,'PROJCS["NAD83(HARN) / Delaware",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2776,'EPSG',2776,'PROJCS["NAD83(HARN) / Delaware",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator"], [...]
 ---
 --- EPSG 2777 : NAD83(HARN) / Florida East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2777,'EPSG',2777,'PROJCS["NAD83(HARN) / Florida East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2777,'EPSG',2777,'PROJCS["NAD83(HARN) / Florida East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2778 : NAD83(HARN) / Florida West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2778,'EPSG',2778,'PROJCS["NAD83(HARN) / Florida West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2778,'EPSG',2778,'PROJCS["NAD83(HARN) / Florida West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2779 : NAD83(HARN) / Florida North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2779,'EPSG',2779,'PROJCS["NAD83(HARN) / Florida North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2779,'EPSG',2779,'PROJCS["NAD83(HARN) / Florida North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal [...]
 ---
 --- EPSG 2780 : NAD83(HARN) / Georgia East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2780,'EPSG',2780,'PROJCS["NAD83(HARN) / Georgia East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2780,'EPSG',2780,'PROJCS["NAD83(HARN) / Georgia East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2781 : NAD83(HARN) / Georgia West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2781,'EPSG',2781,'PROJCS["NAD83(HARN) / Georgia West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2781,'EPSG',2781,'PROJCS["NAD83(HARN) / Georgia West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2782 : NAD83(HARN) / Hawaii zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2782,'EPSG',2782,'PROJCS["NAD83(HARN) / Hawaii zone 1",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2782,'EPSG',2782,'PROJCS["NAD83(HARN) / Hawaii zone 1",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2783 : NAD83(HARN) / Hawaii zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2783,'EPSG',2783,'PROJCS["NAD83(HARN) / Hawaii zone 2",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2783,'EPSG',2783,'PROJCS["NAD83(HARN) / Hawaii zone 2",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2784 : NAD83(HARN) / Hawaii zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2784,'EPSG',2784,'PROJCS["NAD83(HARN) / Hawaii zone 3",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2784,'EPSG',2784,'PROJCS["NAD83(HARN) / Hawaii zone 3",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2785 : NAD83(HARN) / Hawaii zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2785,'EPSG',2785,'PROJCS["NAD83(HARN) / Hawaii zone 4",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2785,'EPSG',2785,'PROJCS["NAD83(HARN) / Hawaii zone 4",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2786 : NAD83(HARN) / Hawaii zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2786,'EPSG',2786,'PROJCS["NAD83(HARN) / Hawaii zone 5",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2786,'EPSG',2786,'PROJCS["NAD83(HARN) / Hawaii zone 5",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2787 : NAD83(HARN) / Idaho East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2787,'EPSG',2787,'PROJCS["NAD83(HARN) / Idaho East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2787,'EPSG',2787,'PROJCS["NAD83(HARN) / Idaho East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator" [...]
 ---
 --- EPSG 2788 : NAD83(HARN) / Idaho Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2788,'EPSG',2788,'PROJCS["NAD83(HARN) / Idaho Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2788,'EPSG',2788,'PROJCS["NAD83(HARN) / Idaho Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2789 : NAD83(HARN) / Idaho West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2789,'EPSG',2789,'PROJCS["NAD83(HARN) / Idaho West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2789,'EPSG',2789,'PROJCS["NAD83(HARN) / Idaho West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator" [...]
 ---
 --- EPSG 2790 : NAD83(HARN) / Illinois East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2790,'EPSG',2790,'PROJCS["NAD83(HARN) / Illinois East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2790,'EPSG',2790,'PROJCS["NAD83(HARN) / Illinois East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2791 : NAD83(HARN) / Illinois West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2791,'EPSG',2791,'PROJCS["NAD83(HARN) / Illinois West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2791,'EPSG',2791,'PROJCS["NAD83(HARN) / Illinois West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2792 : NAD83(HARN) / Indiana East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2792,'EPSG',2792,'PROJCS["NAD83(HARN) / Indiana East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2792,'EPSG',2792,'PROJCS["NAD83(HARN) / Indiana East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2793 : NAD83(HARN) / Indiana West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2793,'EPSG',2793,'PROJCS["NAD83(HARN) / Indiana West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2793,'EPSG',2793,'PROJCS["NAD83(HARN) / Indiana West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2794 : NAD83(HARN) / Iowa North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2794,'EPSG',2794,'PROJCS["NAD83(HARN) / Iowa North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2794,'EPSG',2794,'PROJCS["NAD83(HARN) / Iowa North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
 --- EPSG 2795 : NAD83(HARN) / Iowa South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2795,'EPSG',2795,'PROJCS["NAD83(HARN) / Iowa South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2795,'EPSG',2795,'PROJCS["NAD83(HARN) / Iowa South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
 --- EPSG 2796 : NAD83(HARN) / Kansas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2796,'EPSG',2796,'PROJCS["NAD83(HARN) / Kansas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2796,'EPSG',2796,'PROJCS["NAD83(HARN) / Kansas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_ [...]
 ---
 --- EPSG 2797 : NAD83(HARN) / Kansas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2797,'EPSG',2797,'PROJCS["NAD83(HARN) / Kansas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2797,'EPSG',2797,'PROJCS["NAD83(HARN) / Kansas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_ [...]
 ---
 --- EPSG 2798 : NAD83(HARN) / Kentucky North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2798,'EPSG',2798,'PROJCS["NAD83(HARN) / Kentucky North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2798,'EPSG',2798,'PROJCS["NAD83(HARN) / Kentucky North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2799 : NAD83(HARN) / Kentucky South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2799,'EPSG',2799,'PROJCS["NAD83(HARN) / Kentucky South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2799,'EPSG',2799,'PROJCS["NAD83(HARN) / Kentucky South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2800 : NAD83(HARN) / Louisiana North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2800,'EPSG',2800,'PROJCS["NAD83(HARN) / Louisiana North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2800,'EPSG',2800,'PROJCS["NAD83(HARN) / Louisiana North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 2801 : NAD83(HARN) / Louisiana South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2801,'EPSG',2801,'PROJCS["NAD83(HARN) / Louisiana South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2801,'EPSG',2801,'PROJCS["NAD83(HARN) / Louisiana South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 2802 : NAD83(HARN) / Maine East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2802,'EPSG',2802,'PROJCS["NAD83(HARN) / Maine East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2802,'EPSG',2802,'PROJCS["NAD83(HARN) / Maine East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator" [...]
 ---
 --- EPSG 2803 : NAD83(HARN) / Maine West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2803,'EPSG',2803,'PROJCS["NAD83(HARN) / Maine West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2803,'EPSG',2803,'PROJCS["NAD83(HARN) / Maine West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator" [...]
 ---
 --- EPSG 2804 : NAD83(HARN) / Maryland
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2804,'EPSG',2804,'PROJCS["NAD83(HARN) / Maryland",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2804,'EPSG',2804,'PROJCS["NAD83(HARN) / Maryland",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
 --- EPSG 2805 : NAD83(HARN) / Massachusetts Mainland
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2805,'EPSG',2805,'PROJCS["NAD83(HARN) / Massachusetts Mainland",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2805,'EPSG',2805,'PROJCS["NAD83(HARN) / Massachusetts Mainland",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_ [...]
 ---
 --- EPSG 2806 : NAD83(HARN) / Massachusetts Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2806,'EPSG',2806,'PROJCS["NAD83(HARN) / Massachusetts Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2806,'EPSG',2806,'PROJCS["NAD83(HARN) / Massachusetts Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Co [...]
 ---
 --- EPSG 2807 : NAD83(HARN) / Michigan North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2807,'EPSG',2807,'PROJCS["NAD83(HARN) / Michigan North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2807,'EPSG',2807,'PROJCS["NAD83(HARN) / Michigan North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2808 : NAD83(HARN) / Michigan Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2808,'EPSG',2808,'PROJCS["NAD83(HARN) / Michigan Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2808,'EPSG',2808,'PROJCS["NAD83(HARN) / Michigan Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confor [...]
 ---
 --- EPSG 2809 : NAD83(HARN) / Michigan South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2809,'EPSG',2809,'PROJCS["NAD83(HARN) / Michigan South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2809,'EPSG',2809,'PROJCS["NAD83(HARN) / Michigan South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2810 : NAD83(HARN) / Minnesota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2810,'EPSG',2810,'PROJCS["NAD83(HARN) / Minnesota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2810,'EPSG',2810,'PROJCS["NAD83(HARN) / Minnesota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 2811 : NAD83(HARN) / Minnesota Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2811,'EPSG',2811,'PROJCS["NAD83(HARN) / Minnesota Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2811,'EPSG',2811,'PROJCS["NAD83(HARN) / Minnesota Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2812 : NAD83(HARN) / Minnesota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2812,'EPSG',2812,'PROJCS["NAD83(HARN) / Minnesota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2812,'EPSG',2812,'PROJCS["NAD83(HARN) / Minnesota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 2813 : NAD83(HARN) / Mississippi East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2813,'EPSG',2813,'PROJCS["NAD83(HARN) / Mississippi East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2813,'EPSG',2813,'PROJCS["NAD83(HARN) / Mississippi East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2814 : NAD83(HARN) / Mississippi West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2814,'EPSG',2814,'PROJCS["NAD83(HARN) / Mississippi West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2814,'EPSG',2814,'PROJCS["NAD83(HARN) / Mississippi West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2815 : NAD83(HARN) / Missouri East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2815,'EPSG',2815,'PROJCS["NAD83(HARN) / Missouri East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2815,'EPSG',2815,'PROJCS["NAD83(HARN) / Missouri East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2816 : NAD83(HARN) / Missouri Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2816,'EPSG',2816,'PROJCS["NAD83(HARN) / Missouri Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2816,'EPSG',2816,'PROJCS["NAD83(HARN) / Missouri Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2817 : NAD83(HARN) / Missouri West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2817,'EPSG',2817,'PROJCS["NAD83(HARN) / Missouri West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2817,'EPSG',2817,'PROJCS["NAD83(HARN) / Missouri West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2818 : NAD83(HARN) / Montana
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2818,'EPSG',2818,'PROJCS["NAD83(HARN) / Montana",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2818,'EPSG',2818,'PROJCS["NAD83(HARN) / Montana",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
 --- EPSG 2819 : NAD83(HARN) / Nebraska
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2819,'EPSG',2819,'PROJCS["NAD83(HARN) / Nebraska",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2819,'EPSG',2819,'PROJCS["NAD83(HARN) / Nebraska",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
 --- EPSG 2820 : NAD83(HARN) / Nevada East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2820,'EPSG',2820,'PROJCS["NAD83(HARN) / Nevada East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2820,'EPSG',2820,'PROJCS["NAD83(HARN) / Nevada East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 2821 : NAD83(HARN) / Nevada Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2821,'EPSG',2821,'PROJCS["NAD83(HARN) / Nevada Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2821,'EPSG',2821,'PROJCS["NAD83(HARN) / Nevada Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2822 : NAD83(HARN) / Nevada West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2822,'EPSG',2822,'PROJCS["NAD83(HARN) / Nevada West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2822,'EPSG',2822,'PROJCS["NAD83(HARN) / Nevada West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 2823 : NAD83(HARN) / New Hampshire
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2823,'EPSG',2823,'PROJCS["NAD83(HARN) / New Hampshire",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2823,'EPSG',2823,'PROJCS["NAD83(HARN) / New Hampshire",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2824 : NAD83(HARN) / New Jersey
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2824,'EPSG',2824,'PROJCS["NAD83(HARN) / New Jersey",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2824,'EPSG',2824,'PROJCS["NAD83(HARN) / New Jersey",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator" [...]
 ---
 --- EPSG 2825 : NAD83(HARN) / New Mexico East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2825,'EPSG',2825,'PROJCS["NAD83(HARN) / New Mexico East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2825,'EPSG',2825,'PROJCS["NAD83(HARN) / New Mexico East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2826 : NAD83(HARN) / New Mexico Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2826,'EPSG',2826,'PROJCS["NAD83(HARN) / New Mexico Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2826,'EPSG',2826,'PROJCS["NAD83(HARN) / New Mexico Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 2827 : NAD83(HARN) / New Mexico West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2827,'EPSG',2827,'PROJCS["NAD83(HARN) / New Mexico West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2827,'EPSG',2827,'PROJCS["NAD83(HARN) / New Mexico West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2828 : NAD83(HARN) / New York East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2828,'EPSG',2828,'PROJCS["NAD83(HARN) / New York East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2828,'EPSG',2828,'PROJCS["NAD83(HARN) / New York East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2829 : NAD83(HARN) / New York Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2829,'EPSG',2829,'PROJCS["NAD83(HARN) / New York Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2829,'EPSG',2829,'PROJCS["NAD83(HARN) / New York Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 2830 : NAD83(HARN) / New York West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2830,'EPSG',2830,'PROJCS["NAD83(HARN) / New York West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2830,'EPSG',2830,'PROJCS["NAD83(HARN) / New York West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2831 : NAD83(HARN) / New York Long Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2831,'EPSG',2831,'PROJCS["NAD83(HARN) / New York Long Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2831,'EPSG',2831,'PROJCS["NAD83(HARN) / New York Long Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Co [...]
 ---
 --- EPSG 2832 : NAD83(HARN) / North Dakota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2832,'EPSG',2832,'PROJCS["NAD83(HARN) / North Dakota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2832,'EPSG',2832,'PROJCS["NAD83(HARN) / North Dakota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conf [...]
 ---
 --- EPSG 2833 : NAD83(HARN) / North Dakota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2833,'EPSG',2833,'PROJCS["NAD83(HARN) / North Dakota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2833,'EPSG',2833,'PROJCS["NAD83(HARN) / North Dakota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conf [...]
 ---
 --- EPSG 2834 : NAD83(HARN) / Ohio North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2834,'EPSG',2834,'PROJCS["NAD83(HARN) / Ohio North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2834,'EPSG',2834,'PROJCS["NAD83(HARN) / Ohio North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
 --- EPSG 2835 : NAD83(HARN) / Ohio South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2835,'EPSG',2835,'PROJCS["NAD83(HARN) / Ohio South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2835,'EPSG',2835,'PROJCS["NAD83(HARN) / Ohio South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
 --- EPSG 2836 : NAD83(HARN) / Oklahoma North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2836,'EPSG',2836,'PROJCS["NAD83(HARN) / Oklahoma North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2836,'EPSG',2836,'PROJCS["NAD83(HARN) / Oklahoma North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2837 : NAD83(HARN) / Oklahoma South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2837,'EPSG',2837,'PROJCS["NAD83(HARN) / Oklahoma South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2837,'EPSG',2837,'PROJCS["NAD83(HARN) / Oklahoma South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2838 : NAD83(HARN) / Oregon North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2838,'EPSG',2838,'PROJCS["NAD83(HARN) / Oregon North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2838,'EPSG',2838,'PROJCS["NAD83(HARN) / Oregon North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_ [...]
 ---
 --- EPSG 2839 : NAD83(HARN) / Oregon South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2839,'EPSG',2839,'PROJCS["NAD83(HARN) / Oregon South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2839,'EPSG',2839,'PROJCS["NAD83(HARN) / Oregon South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_ [...]
 ---
 --- EPSG 2840 : NAD83(HARN) / Rhode Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2840,'EPSG',2840,'PROJCS["NAD83(HARN) / Rhode Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2840,'EPSG',2840,'PROJCS["NAD83(HARN) / Rhode Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2841 : NAD83(HARN) / South Dakota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2841,'EPSG',2841,'PROJCS["NAD83(HARN) / South Dakota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2841,'EPSG',2841,'PROJCS["NAD83(HARN) / South Dakota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conf [...]
 ---
 --- EPSG 2842 : NAD83(HARN) / South Dakota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2842,'EPSG',2842,'PROJCS["NAD83(HARN) / South Dakota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2842,'EPSG',2842,'PROJCS["NAD83(HARN) / South Dakota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conf [...]
 ---
 --- EPSG 2843 : NAD83(HARN) / Tennessee
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2843,'EPSG',2843,'PROJCS["NAD83(HARN) / Tennessee",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2843,'EPSG',2843,'PROJCS["NAD83(HARN) / Tennessee",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Con [...]
 ---
 --- EPSG 2844 : NAD83(HARN) / Texas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2844,'EPSG',2844,'PROJCS["NAD83(HARN) / Texas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2844,'EPSG',2844,'PROJCS["NAD83(HARN) / Texas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_C [...]
 ---
 --- EPSG 2845 : NAD83(HARN) / Texas North Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2845,'EPSG',2845,'PROJCS["NAD83(HARN) / Texas North Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2845,'EPSG',2845,'PROJCS["NAD83(HARN) / Texas North Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
 --- EPSG 2846 : NAD83(HARN) / Texas Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2846,'EPSG',2846,'PROJCS["NAD83(HARN) / Texas Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2846,'EPSG',2846,'PROJCS["NAD83(HARN) / Texas Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal [...]
 ---
 --- EPSG 2847 : NAD83(HARN) / Texas South Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2847,'EPSG',2847,'PROJCS["NAD83(HARN) / Texas South Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2847,'EPSG',2847,'PROJCS["NAD83(HARN) / Texas South Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
 --- EPSG 2848 : NAD83(HARN) / Texas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2848,'EPSG',2848,'PROJCS["NAD83(HARN) / Texas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2848,'EPSG',2848,'PROJCS["NAD83(HARN) / Texas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_C [...]
 ---
 --- EPSG 2849 : NAD83(HARN) / Utah North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2849,'EPSG',2849,'PROJCS["NAD83(HARN) / Utah North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2849,'EPSG',2849,'PROJCS["NAD83(HARN) / Utah North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
 --- EPSG 2850 : NAD83(HARN) / Utah Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2850,'EPSG',2850,'PROJCS["NAD83(HARN) / Utah Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2850,'EPSG',2850,'PROJCS["NAD83(HARN) / Utah Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_ [...]
 ---
 --- EPSG 2851 : NAD83(HARN) / Utah South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2851,'EPSG',2851,'PROJCS["NAD83(HARN) / Utah South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2851,'EPSG',2851,'PROJCS["NAD83(HARN) / Utah South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
 --- EPSG 2852 : NAD83(HARN) / Vermont
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2852,'EPSG',2852,'PROJCS["NAD83(HARN) / Vermont",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2852,'EPSG',2852,'PROJCS["NAD83(HARN) / Vermont",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 2853 : NAD83(HARN) / Virginia North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2853,'EPSG',2853,'PROJCS["NAD83(HARN) / Virginia North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2853,'EPSG',2853,'PROJCS["NAD83(HARN) / Virginia North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2854 : NAD83(HARN) / Virginia South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2854,'EPSG',2854,'PROJCS["NAD83(HARN) / Virginia South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2854,'EPSG',2854,'PROJCS["NAD83(HARN) / Virginia South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 2855 : NAD83(HARN) / Washington North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2855,'EPSG',2855,'PROJCS["NAD83(HARN) / Washington North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2855,'EPSG',2855,'PROJCS["NAD83(HARN) / Washington North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confor [...]
 ---
 --- EPSG 2856 : NAD83(HARN) / Washington South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2856,'EPSG',2856,'PROJCS["NAD83(HARN) / Washington South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2856,'EPSG',2856,'PROJCS["NAD83(HARN) / Washington South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confor [...]
 ---
 --- EPSG 2857 : NAD83(HARN) / West Virginia North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2857,'EPSG',2857,'PROJCS["NAD83(HARN) / West Virginia North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2857,'EPSG',2857,'PROJCS["NAD83(HARN) / West Virginia North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
 --- EPSG 2858 : NAD83(HARN) / West Virginia South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2858,'EPSG',2858,'PROJCS["NAD83(HARN) / West Virginia South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2858,'EPSG',2858,'PROJCS["NAD83(HARN) / West Virginia South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
 --- EPSG 2859 : NAD83(HARN) / Wisconsin North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2859,'EPSG',2859,'PROJCS["NAD83(HARN) / Wisconsin North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2859,'EPSG',2859,'PROJCS["NAD83(HARN) / Wisconsin North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 2860 : NAD83(HARN) / Wisconsin Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2860,'EPSG',2860,'PROJCS["NAD83(HARN) / Wisconsin Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2860,'EPSG',2860,'PROJCS["NAD83(HARN) / Wisconsin Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2861 : NAD83(HARN) / Wisconsin South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2861,'EPSG',2861,'PROJCS["NAD83(HARN) / Wisconsin South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2861,'EPSG',2861,'PROJCS["NAD83(HARN) / Wisconsin South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 2862 : NAD83(HARN) / Wyoming East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2862,'EPSG',2862,'PROJCS["NAD83(HARN) / Wyoming East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2862,'EPSG',2862,'PROJCS["NAD83(HARN) / Wyoming East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2863 : NAD83(HARN) / Wyoming East Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2863,'EPSG',2863,'PROJCS["NAD83(HARN) / Wyoming East Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2863,'EPSG',2863,'PROJCS["NAD83(HARN) / Wyoming East Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2864 : NAD83(HARN) / Wyoming West Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2864,'EPSG',2864,'PROJCS["NAD83(HARN) / Wyoming West Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2864,'EPSG',2864,'PROJCS["NAD83(HARN) / Wyoming West Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2865 : NAD83(HARN) / Wyoming West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2865,'EPSG',2865,'PROJCS["NAD83(HARN) / Wyoming West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2865,'EPSG',2865,'PROJCS["NAD83(HARN) / Wyoming West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2866 : NAD83(HARN) / Puerto Rico and Virgin Is.
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2866,'EPSG',2866,'PROJCS["NAD83(HARN) / Puerto Rico and Virgin Is.",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2866,'EPSG',2866,'PROJCS["NAD83(HARN) / Puerto Rico and Virgin Is.",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamb [...]
 ---
 --- EPSG 2867 : NAD83(HARN) / Arizona East (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2867,'EPSG',2867,'PROJCS["NAD83(HARN) / Arizona East (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2867,'EPSG',2867,'PROJCS["NAD83(HARN) / Arizona East (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2868 : NAD83(HARN) / Arizona Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2868,'EPSG',2868,'PROJCS["NAD83(HARN) / Arizona Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2868,'EPSG',2868,'PROJCS["NAD83(HARN) / Arizona Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2869 : NAD83(HARN) / Arizona West (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2869,'EPSG',2869,'PROJCS["NAD83(HARN) / Arizona West (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2869,'EPSG',2869,'PROJCS["NAD83(HARN) / Arizona West (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2870 : NAD83(HARN) / California zone 1 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2870,'EPSG',2870,'PROJCS["NAD83(HARN) / California zone 1 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2870,'EPSG',2870,'PROJCS["NAD83(HARN) / California zone 1 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamber [...]
 ---
 --- EPSG 2871 : NAD83(HARN) / California zone 2 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2871,'EPSG',2871,'PROJCS["NAD83(HARN) / California zone 2 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2871,'EPSG',2871,'PROJCS["NAD83(HARN) / California zone 2 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamber [...]
 ---
 --- EPSG 2872 : NAD83(HARN) / California zone 3 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2872,'EPSG',2872,'PROJCS["NAD83(HARN) / California zone 3 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2872,'EPSG',2872,'PROJCS["NAD83(HARN) / California zone 3 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamber [...]
 ---
 --- EPSG 2873 : NAD83(HARN) / California zone 4 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2873,'EPSG',2873,'PROJCS["NAD83(HARN) / California zone 4 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2873,'EPSG',2873,'PROJCS["NAD83(HARN) / California zone 4 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamber [...]
 ---
 --- EPSG 2874 : NAD83(HARN) / California zone 5 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2874,'EPSG',2874,'PROJCS["NAD83(HARN) / California zone 5 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2874,'EPSG',2874,'PROJCS["NAD83(HARN) / California zone 5 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamber [...]
 ---
 --- EPSG 2875 : NAD83(HARN) / California zone 6 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2875,'EPSG',2875,'PROJCS["NAD83(HARN) / California zone 6 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2875,'EPSG',2875,'PROJCS["NAD83(HARN) / California zone 6 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamber [...]
 ---
 --- EPSG 2876 : NAD83(HARN) / Colorado North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2876,'EPSG',2876,'PROJCS["NAD83(HARN) / Colorado North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2876,'EPSG',2876,'PROJCS["NAD83(HARN) / Colorado North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 2877 : NAD83(HARN) / Colorado Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2877,'EPSG',2877,'PROJCS["NAD83(HARN) / Colorado Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2877,'EPSG',2877,'PROJCS["NAD83(HARN) / Colorado Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert [...]
 ---
 --- EPSG 2878 : NAD83(HARN) / Colorado South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2878,'EPSG',2878,'PROJCS["NAD83(HARN) / Colorado South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2878,'EPSG',2878,'PROJCS["NAD83(HARN) / Colorado South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 2879 : NAD83(HARN) / Connecticut (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2879,'EPSG',2879,'PROJCS["NAD83(HARN) / Connecticut (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2879,'EPSG',2879,'PROJCS["NAD83(HARN) / Connecticut (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conf [...]
 ---
 --- EPSG 2880 : NAD83(HARN) / Delaware (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2880,'EPSG',2880,'PROJCS["NAD83(HARN) / Delaware (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2880,'EPSG',2880,'PROJCS["NAD83(HARN) / Delaware (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 2881 : NAD83(HARN) / Florida East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2881,'EPSG',2881,'PROJCS["NAD83(HARN) / Florida East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2881,'EPSG',2881,'PROJCS["NAD83(HARN) / Florida East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2882 : NAD83(HARN) / Florida West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2882,'EPSG',2882,'PROJCS["NAD83(HARN) / Florida West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2882,'EPSG',2882,'PROJCS["NAD83(HARN) / Florida West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2883 : NAD83(HARN) / Florida North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2883,'EPSG',2883,'PROJCS["NAD83(HARN) / Florida North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2883,'EPSG',2883,'PROJCS["NAD83(HARN) / Florida North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Co [...]
 ---
 --- EPSG 2884 : NAD83(HARN) / Georgia East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2884,'EPSG',2884,'PROJCS["NAD83(HARN) / Georgia East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2884,'EPSG',2884,'PROJCS["NAD83(HARN) / Georgia East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2885 : NAD83(HARN) / Georgia West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2885,'EPSG',2885,'PROJCS["NAD83(HARN) / Georgia West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2885,'EPSG',2885,'PROJCS["NAD83(HARN) / Georgia West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2886 : NAD83(HARN) / Idaho East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2886,'EPSG',2886,'PROJCS["NAD83(HARN) / Idaho East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.30 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2886,'EPSG',2886,'PROJCS["NAD83(HARN) / Idaho East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2887 : NAD83(HARN) / Idaho Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2887,'EPSG',2887,'PROJCS["NAD83(HARN) / Idaho Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2887,'EPSG',2887,'PROJCS["NAD83(HARN) / Idaho Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2888 : NAD83(HARN) / Idaho West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2888,'EPSG',2888,'PROJCS["NAD83(HARN) / Idaho West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.30 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2888,'EPSG',2888,'PROJCS["NAD83(HARN) / Idaho West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 2889 : NAD83(HARN) / Indiana East (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2889,'EPSG',2889,'PROJCS["NAD83(HARN) / Indiana East (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US su [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2889,'EPSG',2889,'PROJCS["NAD83(HARN) / Indiana East (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION [...]
 ---
 --- EPSG 2890 : NAD83(HARN) / Indiana West (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2890,'EPSG',2890,'PROJCS["NAD83(HARN) / Indiana West (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US su [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2890,'EPSG',2890,'PROJCS["NAD83(HARN) / Indiana West (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION [...]
 ---
 --- EPSG 2891 : NAD83(HARN) / Kentucky North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2891,'EPSG',2891,'PROJCS["NAD83(HARN) / Kentucky North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2891,'EPSG',2891,'PROJCS["NAD83(HARN) / Kentucky North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 2892 : NAD83(HARN) / Kentucky South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2892,'EPSG',2892,'PROJCS["NAD83(HARN) / Kentucky South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2892,'EPSG',2892,'PROJCS["NAD83(HARN) / Kentucky South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 2893 : NAD83(HARN) / Maryland (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2893,'EPSG',2893,'PROJCS["NAD83(HARN) / Maryland (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2893,'EPSG',2893,'PROJCS["NAD83(HARN) / Maryland (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 2894 : NAD83(HARN) / Massachusetts Mainland (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2894,'EPSG',2894,'PROJCS["NAD83(HARN) / Massachusetts Mainland (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US surve [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2894,'EPSG',2894,'PROJCS["NAD83(HARN) / Massachusetts Mainland (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["L [...]
 ---
 --- EPSG 2895 : NAD83(HARN) / Massachusetts Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2895,'EPSG',2895,'PROJCS["NAD83(HARN) / Massachusetts Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2895,'EPSG',2895,'PROJCS["NAD83(HARN) / Massachusetts Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lam [...]
 ---
 --- EPSG 2896 : NAD83(HARN) / Michigan North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2896,'EPSG',2896,'PROJCS["NAD83(HARN) / Michigan North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2896,'EPSG',2896,'PROJCS["NAD83(HARN) / Michigan North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
 --- EPSG 2897 : NAD83(HARN) / Michigan Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2897,'EPSG',2897,'PROJCS["NAD83(HARN) / Michigan Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2897,'EPSG',2897,'PROJCS["NAD83(HARN) / Michigan Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 2898 : NAD83(HARN) / Michigan South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2898,'EPSG',2898,'PROJCS["NAD83(HARN) / Michigan South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2898,'EPSG',2898,'PROJCS["NAD83(HARN) / Michigan South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
 --- EPSG 2899 : NAD83(HARN) / Mississippi East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2899,'EPSG',2899,'PROJCS["NAD83(HARN) / Mississippi East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2899,'EPSG',2899,'PROJCS["NAD83(HARN) / Mississippi East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transve [...]
 ---
 --- EPSG 2900 : NAD83(HARN) / Mississippi West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2900,'EPSG',2900,'PROJCS["NAD83(HARN) / Mississippi West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2900,'EPSG',2900,'PROJCS["NAD83(HARN) / Mississippi West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transve [...]
 ---
 --- EPSG 2901 : NAD83(HARN) / Montana (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2901,'EPSG',2901,'PROJCS["NAD83(HARN) / Montana (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2901,'EPSG',2901,'PROJCS["NAD83(HARN) / Montana (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conformal_ [...]
 ---
 --- EPSG 2902 : NAD83(HARN) / New Mexico East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2902,'EPSG',2902,'PROJCS["NAD83(HARN) / New Mexico East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2902,'EPSG',2902,'PROJCS["NAD83(HARN) / New Mexico East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transver [...]
 ---
 --- EPSG 2903 : NAD83(HARN) / New Mexico Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2903,'EPSG',2903,'PROJCS["NAD83(HARN) / New Mexico Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey fo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2903,'EPSG',2903,'PROJCS["NAD83(HARN) / New Mexico Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Trans [...]
 ---
 --- EPSG 2904 : NAD83(HARN) / New Mexico West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2904,'EPSG',2904,'PROJCS["NAD83(HARN) / New Mexico West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2904,'EPSG',2904,'PROJCS["NAD83(HARN) / New Mexico West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transver [...]
 ---
 --- EPSG 2905 : NAD83(HARN) / New York East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2905,'EPSG',2905,'PROJCS["NAD83(HARN) / New York East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2905,'EPSG',2905,'PROJCS["NAD83(HARN) / New York East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2906 : NAD83(HARN) / New York Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2906,'EPSG',2906,'PROJCS["NAD83(HARN) / New York Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2906,'EPSG',2906,'PROJCS["NAD83(HARN) / New York Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transve [...]
 ---
 --- EPSG 2907 : NAD83(HARN) / New York West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2907,'EPSG',2907,'PROJCS["NAD83(HARN) / New York West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2907,'EPSG',2907,'PROJCS["NAD83(HARN) / New York West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 2908 : NAD83(HARN) / New York Long Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2908,'EPSG',2908,'PROJCS["NAD83(HARN) / New York Long Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2908,'EPSG',2908,'PROJCS["NAD83(HARN) / New York Long Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lam [...]
 ---
 --- EPSG 2909 : NAD83(HARN) / North Dakota North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2909,'EPSG',2909,'PROJCS["NAD83(HARN) / North Dakota North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2909,'EPSG',2909,'PROJCS["NAD83(HARN) / North Dakota North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert [...]
 ---
 --- EPSG 2910 : NAD83(HARN) / North Dakota South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2910,'EPSG',2910,'PROJCS["NAD83(HARN) / North Dakota South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2910,'EPSG',2910,'PROJCS["NAD83(HARN) / North Dakota South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert [...]
 ---
 --- EPSG 2911 : NAD83(HARN) / Oklahoma North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2911,'EPSG',2911,'PROJCS["NAD83(HARN) / Oklahoma North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2911,'EPSG',2911,'PROJCS["NAD83(HARN) / Oklahoma North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 2912 : NAD83(HARN) / Oklahoma South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2912,'EPSG',2912,'PROJCS["NAD83(HARN) / Oklahoma South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2912,'EPSG',2912,'PROJCS["NAD83(HARN) / Oklahoma South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 2913 : NAD83(HARN) / Oregon North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2913,'EPSG',2913,'PROJCS["NAD83(HARN) / Oregon North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2913,'EPSG',2913,'PROJCS["NAD83(HARN) / Oregon North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2914 : NAD83(HARN) / Oregon South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2914,'EPSG',2914,'PROJCS["NAD83(HARN) / Oregon South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2914,'EPSG',2914,'PROJCS["NAD83(HARN) / Oregon South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2915 : NAD83(HARN) / Tennessee (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2915,'EPSG',2915,'PROJCS["NAD83(HARN) / Tennessee (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.304 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2915,'EPSG',2915,'PROJCS["NAD83(HARN) / Tennessee (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confor [...]
 ---
 --- EPSG 2916 : NAD83(HARN) / Texas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2916,'EPSG',2916,'PROJCS["NAD83(HARN) / Texas North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2916,'EPSG',2916,'PROJCS["NAD83(HARN) / Texas North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conf [...]
 ---
 --- EPSG 2917 : NAD83(HARN) / Texas North Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2917,'EPSG',2917,'PROJCS["NAD83(HARN) / Texas North Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey f [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2917,'EPSG',2917,'PROJCS["NAD83(HARN) / Texas North Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamb [...]
 ---
 --- EPSG 2918 : NAD83(HARN) / Texas Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2918,'EPSG',2918,'PROJCS["NAD83(HARN) / Texas Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2918,'EPSG',2918,'PROJCS["NAD83(HARN) / Texas Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Co [...]
 ---
 --- EPSG 2919 : NAD83(HARN) / Texas South Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2919,'EPSG',2919,'PROJCS["NAD83(HARN) / Texas South Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey f [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2919,'EPSG',2919,'PROJCS["NAD83(HARN) / Texas South Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamb [...]
 ---
 --- EPSG 2920 : NAD83(HARN) / Texas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2920,'EPSG',2920,'PROJCS["NAD83(HARN) / Texas South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2920,'EPSG',2920,'PROJCS["NAD83(HARN) / Texas South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conf [...]
 ---
 --- EPSG 2921 : NAD83(HARN) / Utah North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2921,'EPSG',2921,'PROJCS["NAD83(HARN) / Utah North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2921,'EPSG',2921,'PROJCS["NAD83(HARN) / Utah North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 2922 : NAD83(HARN) / Utah Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2922,'EPSG',2922,'PROJCS["NAD83(HARN) / Utah Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2922,'EPSG',2922,'PROJCS["NAD83(HARN) / Utah Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 2923 : NAD83(HARN) / Utah South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2923,'EPSG',2923,'PROJCS["NAD83(HARN) / Utah South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2923,'EPSG',2923,'PROJCS["NAD83(HARN) / Utah South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 2924 : NAD83(HARN) / Virginia North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2924,'EPSG',2924,'PROJCS["NAD83(HARN) / Virginia North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2924,'EPSG',2924,'PROJCS["NAD83(HARN) / Virginia North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 2925 : NAD83(HARN) / Virginia South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2925,'EPSG',2925,'PROJCS["NAD83(HARN) / Virginia South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2925,'EPSG',2925,'PROJCS["NAD83(HARN) / Virginia South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 2926 : NAD83(HARN) / Washington North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2926,'EPSG',2926,'PROJCS["NAD83(HARN) / Washington North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2926,'EPSG',2926,'PROJCS["NAD83(HARN) / Washington North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert [...]
 ---
 --- EPSG 2927 : NAD83(HARN) / Washington South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2927,'EPSG',2927,'PROJCS["NAD83(HARN) / Washington South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2927,'EPSG',2927,'PROJCS["NAD83(HARN) / Washington South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert [...]
 ---
 --- EPSG 2928 : NAD83(HARN) / Wisconsin North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2928,'EPSG',2928,'PROJCS["NAD83(HARN) / Wisconsin North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2928,'EPSG',2928,'PROJCS["NAD83(HARN) / Wisconsin North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_ [...]
 ---
 --- EPSG 2929 : NAD83(HARN) / Wisconsin Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2929,'EPSG',2929,'PROJCS["NAD83(HARN) / Wisconsin Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2929,'EPSG',2929,'PROJCS["NAD83(HARN) / Wisconsin Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamber [...]
 ---
 --- EPSG 2930 : NAD83(HARN) / Wisconsin South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2930,'EPSG',2930,'PROJCS["NAD83(HARN) / Wisconsin South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2930,'EPSG',2930,'PROJCS["NAD83(HARN) / Wisconsin South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_ [...]
 ---
 --- EPSG 2931 : Beduaram / TM 13 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2931,'EPSG',2931,'PROJCS["Beduaram / TM 13 NE",GEOGCS["Beduaram",DATUM["Beduaram",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-106,-87,188,0,0,0,0],AUTHORITY["EPSG","6213"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4213"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2931,'EPSG',2931,'PROJCS["Beduaram / TM 13 NE",GEOGCS["Beduaram",DATUM["Beduaram",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-106,-87,188,0,0,0,0],AUTHORITY["EPSG","6213"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4213"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 2932 : QND95 / Qatar National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2932,'EPSG',2932,'PROJCS["QND95 / Qatar National Grid",GEOGCS["QND95",DATUM["Qatar_National_Datum_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706],AUTHORITY["EPSG","6614"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4614"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2932,'EPSG',2932,'PROJCS["QND95 / Qatar National Grid",GEOGCS["QND95",DATUM["Qatar_National_Datum_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.657065],AUTHORITY["EPSG","6614"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","46 [...]
 ---
 --- EPSG 2933 : Segara / UTM zone 50S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2933,'EPSG',2933,'PROJCS["Segara / UTM zone 50S",GEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2933,'EPSG',2933,'PROJCS["Segara / UTM zone 50S",GEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 2934 : Segara (Jakarta) / NEIEZ (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2934,'EPSG',2934,'PROJCS["Segara (Jakarta) / NEIEZ (deprecated)",GEOGCS["Segara (Jakarta)",DATUM["Gunung_Segara_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY["EPSG","6820"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4820"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2934,'EPSG',2934,'PROJCS["Segara (Jakarta) / NEIEZ (deprecated)",GEOGCS["Segara (Jakarta)",DATUM["Gunung_Segara_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY["EPSG","6820"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4820"]],PROJE [...]
 ---
 --- EPSG 2935 : Pulkovo 1942 / CS63 zone A1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2935,'EPSG',2935,'PROJCS["Pulkovo 1942 / CS63 zone A1",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2935,'EPSG',2935,'PROJCS["Pulkovo 1942 / CS63 zone A1",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2936 : Pulkovo 1942 / CS63 zone A2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2936,'EPSG',2936,'PROJCS["Pulkovo 1942 / CS63 zone A2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2936,'EPSG',2936,'PROJCS["Pulkovo 1942 / CS63 zone A2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2937 : Pulkovo 1942 / CS63 zone A3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2937,'EPSG',2937,'PROJCS["Pulkovo 1942 / CS63 zone A3",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2937,'EPSG',2937,'PROJCS["Pulkovo 1942 / CS63 zone A3",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2938 : Pulkovo 1942 / CS63 zone A4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2938,'EPSG',2938,'PROJCS["Pulkovo 1942 / CS63 zone A4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2938,'EPSG',2938,'PROJCS["Pulkovo 1942 / CS63 zone A4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2939 : Pulkovo 1942 / CS63 zone K2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2939,'EPSG',2939,'PROJCS["Pulkovo 1942 / CS63 zone K2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2939,'EPSG',2939,'PROJCS["Pulkovo 1942 / CS63 zone K2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2940 : Pulkovo 1942 / CS63 zone K3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2940,'EPSG',2940,'PROJCS["Pulkovo 1942 / CS63 zone K3",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2940,'EPSG',2940,'PROJCS["Pulkovo 1942 / CS63 zone K3",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2941 : Pulkovo 1942 / CS63 zone K4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2941,'EPSG',2941,'PROJCS["Pulkovo 1942 / CS63 zone K4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2941,'EPSG',2941,'PROJCS["Pulkovo 1942 / CS63 zone K4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2942 : Porto Santo / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2942,'EPSG',2942,'PROJCS["Porto Santo / UTM zone 28N",GEOGCS["Porto Santo",DATUM["Porto_Santo_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-499,-249,314,0,0,0,0],AUTHORITY["EPSG","6615"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4615"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2942,'EPSG',2942,'PROJCS["Porto Santo / UTM zone 28N",GEOGCS["Porto Santo",DATUM["Porto_Santo_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-499,-249,314,0,0,0,0],AUTHORITY["EPSG","6615"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4615"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2943 : Selvagem Grande / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2943,'EPSG',2943,'PROJCS["Selvagem Grande / UTM zone 28N",GEOGCS["Selvagem Grande",DATUM["Selvagem_Grande",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-289,-124,60,0,0,0,0],AUTHORITY["EPSG","6616"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4616"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2943,'EPSG',2943,'PROJCS["Selvagem Grande / UTM zone 28N",GEOGCS["Selvagem Grande",DATUM["Selvagem_Grande",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-289,-124,60,0,0,0,0],AUTHORITY["EPSG","6616"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4616"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 2944 : NAD83(CSRS) / SCoPQ zone 2
+--- EPSG 2944 : NAD83(CSRS) / SCoPQ zone 2 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2944,'EPSG',2944,'PROJCS["NAD83(CSRS) / SCoPQ zone 2",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2944,'EPSG',2944,'PROJCS["NAD83(CSRS) / SCoPQ zone 2 (deprecated)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Tra [...]
 ---
 --- EPSG 2945 : NAD83(CSRS) / MTM zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2945,'EPSG',2945,'PROJCS["NAD83(CSRS) / MTM zone 3",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2945,'EPSG',2945,'PROJCS["NAD83(CSRS) / MTM zone 3",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2946 : NAD83(CSRS) / MTM zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2946,'EPSG',2946,'PROJCS["NAD83(CSRS) / MTM zone 4",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2946,'EPSG',2946,'PROJCS["NAD83(CSRS) / MTM zone 4",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2947 : NAD83(CSRS) / MTM zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2947,'EPSG',2947,'PROJCS["NAD83(CSRS) / MTM zone 5",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2947,'EPSG',2947,'PROJCS["NAD83(CSRS) / MTM zone 5",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2948 : NAD83(CSRS) / MTM zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2948,'EPSG',2948,'PROJCS["NAD83(CSRS) / MTM zone 6",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2948,'EPSG',2948,'PROJCS["NAD83(CSRS) / MTM zone 6",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2949 : NAD83(CSRS) / MTM zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2949,'EPSG',2949,'PROJCS["NAD83(CSRS) / MTM zone 7",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2949,'EPSG',2949,'PROJCS["NAD83(CSRS) / MTM zone 7",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2950 : NAD83(CSRS) / MTM zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2950,'EPSG',2950,'PROJCS["NAD83(CSRS) / MTM zone 8",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2950,'EPSG',2950,'PROJCS["NAD83(CSRS) / MTM zone 8",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2951 : NAD83(CSRS) / MTM zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2951,'EPSG',2951,'PROJCS["NAD83(CSRS) / MTM zone 9",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2951,'EPSG',2951,'PROJCS["NAD83(CSRS) / MTM zone 9",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2952 : NAD83(CSRS) / MTM zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2952,'EPSG',2952,'PROJCS["NAD83(CSRS) / MTM zone 10",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2952,'EPSG',2952,'PROJCS["NAD83(CSRS) / MTM zone 10",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 2953 : NAD83(CSRS) / New Brunswick Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2953,'EPSG',2953,'PROJCS["NAD83(CSRS) / New Brunswick Stereographic",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2953,'EPSG',2953,'PROJCS["NAD83(CSRS) / New Brunswick Stereographic",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["O [...]
 ---
 --- EPSG 2954 : NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2954,'EPSG',2954,'PROJCS["NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2954,'EPSG',2954,'PROJCS["NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]], [...]
 ---
 --- EPSG 2955 : NAD83(CSRS) / UTM zone 11N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2955,'EPSG',2955,'PROJCS["NAD83(CSRS) / UTM zone 11N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2955,'EPSG',2955,'PROJCS["NAD83(CSRS) / UTM zone 11N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2956 : NAD83(CSRS) / UTM zone 12N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2956,'EPSG',2956,'PROJCS["NAD83(CSRS) / UTM zone 12N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2956,'EPSG',2956,'PROJCS["NAD83(CSRS) / UTM zone 12N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2957 : NAD83(CSRS) / UTM zone 13N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2957,'EPSG',2957,'PROJCS["NAD83(CSRS) / UTM zone 13N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2957,'EPSG',2957,'PROJCS["NAD83(CSRS) / UTM zone 13N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2958 : NAD83(CSRS) / UTM zone 17N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2958,'EPSG',2958,'PROJCS["NAD83(CSRS) / UTM zone 17N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2958,'EPSG',2958,'PROJCS["NAD83(CSRS) / UTM zone 17N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2959 : NAD83(CSRS) / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2959,'EPSG',2959,'PROJCS["NAD83(CSRS) / UTM zone 18N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2959,'EPSG',2959,'PROJCS["NAD83(CSRS) / UTM zone 18N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2960 : NAD83(CSRS) / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2960,'EPSG',2960,'PROJCS["NAD83(CSRS) / UTM zone 19N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2960,'EPSG',2960,'PROJCS["NAD83(CSRS) / UTM zone 19N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2961 : NAD83(CSRS) / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2961,'EPSG',2961,'PROJCS["NAD83(CSRS) / UTM zone 20N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2961,'EPSG',2961,'PROJCS["NAD83(CSRS) / UTM zone 20N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2962 : NAD83(CSRS) / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2962,'EPSG',2962,'PROJCS["NAD83(CSRS) / UTM zone 21N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2962,'EPSG',2962,'PROJCS["NAD83(CSRS) / UTM zone 21N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 2963 : Lisbon 1890 (Lisbon) / Portugal Bonne
 ---
@@ -5674,83 +5726,83 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 2964 : NAD27 / Alaska Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2964,'EPSG',2964,'PROJCS["NAD27 / Alaska Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2964,'EPSG',2964,'PROJCS["NAD27 / Alaska Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_ [...]
 ---
 --- EPSG 2965 : NAD83 / Indiana East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2965,'EPSG',2965,'PROJCS["NAD83 / Indiana East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2965,'EPSG',2965,'PROJCS["NAD83 / Indiana East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 2966 : NAD83 / Indiana West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2966,'EPSG',2966,'PROJCS["NAD83 / Indiana West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2966,'EPSG',2966,'PROJCS["NAD83 / Indiana West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 2967 : NAD83(HARN) / Indiana East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2967,'EPSG',2967,'PROJCS["NAD83(HARN) / Indiana East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2967,'EPSG',2967,'PROJCS["NAD83(HARN) / Indiana East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2968 : NAD83(HARN) / Indiana West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2968,'EPSG',2968,'PROJCS["NAD83(HARN) / Indiana West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2968,'EPSG',2968,'PROJCS["NAD83(HARN) / Indiana West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 2969 : Fort Marigot / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2969,'EPSG',2969,'PROJCS["Fort Marigot / UTM zone 20N",GEOGCS["Fort Marigot",DATUM["Fort_Marigot",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[137,248,-430,0,0,0,0],AUTHORITY["EPSG","6621"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4621"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2969,'EPSG',2969,'PROJCS["Fort Marigot / UTM zone 20N",GEOGCS["Fort Marigot",DATUM["Fort_Marigot",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[137,248,-430,0,0,0,0],AUTHORITY["EPSG","6621"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4621"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 2970 : Guadeloupe 1948 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2970,'EPSG',2970,'PROJCS["Guadeloupe 1948 / UTM zone 20N",GEOGCS["Guadeloupe 1948",DATUM["Guadeloupe_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-467,-16,-300,0,0,0,0],AUTHORITY["EPSG","6622"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4622"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2970,'EPSG',2970,'PROJCS["Guadeloupe 1948 / UTM zone 20N",GEOGCS["Guadeloupe 1948",DATUM["Guadeloupe_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-467,-16,-300,0,0,0,0],AUTHORITY["EPSG","6622"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4622"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 2971 : CSG67 / UTM zone 22N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2971,'EPSG',2971,'PROJCS["CSG67 / UTM zone 22N",GEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2971,'EPSG',2971,'PROJCS["CSG67 / UTM zone 22N",GEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 2972 : RGFG95 / UTM zone 22N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2972,'EPSG',2972,'PROJCS["RGFG95 / UTM zone 22N",GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[2,2,-2,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2972,'EPSG',2972,'PROJCS["RGFG95 / UTM zone 22N",GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 2973 : Martinique 1938 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2973,'EPSG',2973,'PROJCS["Martinique 1938 / UTM zone 20N",GEOGCS["Martinique 1938",DATUM["Martinique_1938",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[186,482,151,0,0,0,0],AUTHORITY["EPSG","6625"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4625"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2973,'EPSG',2973,'PROJCS["Martinique 1938 / UTM zone 20N",GEOGCS["Martinique 1938",DATUM["Martinique_1938",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[186,482,151,0,0,0,0],AUTHORITY["EPSG","6625"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4625"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 2975 : RGR92 / UTM zone 40S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2975,'EPSG',2975,'PROJCS["RGR92 / UTM zone 40S",GEOGCS["RGR92",DATUM["Reseau_Geodesique_de_la_Reunion_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6627"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4627"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2975,'EPSG',2975,'PROJCS["RGR92 / UTM zone 40S",GEOGCS["RGR92",DATUM["Reseau_Geodesique_de_la_Reunion_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6627"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4627"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2976 : Tahiti 52 / UTM zone 6S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2976,'EPSG',2976,'PROJCS["Tahiti 52 / UTM zone 6S",GEOGCS["Tahiti 52",DATUM["Tahiti_52",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[162,117,154,0,0,0,0],AUTHORITY["EPSG","6628"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4628"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tran [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2976,'EPSG',2976,'PROJCS["Tahiti 52 / UTM zone 6S",GEOGCS["Tahiti 52",DATUM["Tahiti_52",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[162,117,154,0,0,0,0],AUTHORITY["EPSG","6628"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4628"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ [...]
 ---
 --- EPSG 2977 : Tahaa 54 / UTM zone 5S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2977,'EPSG',2977,'PROJCS["Tahaa 54 / UTM zone 5S",GEOGCS["Tahaa 54",DATUM["Tahaa_54",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[72.438,345.918,79.486,1.6045,0.8823,0.5565,1.3746],AUTHORITY["EPSG","6629"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4629"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2977,'EPSG',2977,'PROJCS["Tahaa 54 / UTM zone 5S",GEOGCS["Tahaa 54",DATUM["Tahaa_54",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[72.438,345.918,79.486,1.6045,0.8823,0.5565,1.3746],AUTHORITY["EPSG","6629"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4629"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 2978 : IGN72 Nuku Hiva / UTM zone 7S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2978,'EPSG',2978,'PROJCS["IGN72 Nuku Hiva / UTM zone 7S",GEOGCS["IGN72 Nuku Hiva",DATUM["IGN72_Nuku_Hiva",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[84,274,65,0,0,0,0],AUTHORITY["EPSG","6630"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4630"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2978,'EPSG',2978,'PROJCS["IGN72 Nuku Hiva / UTM zone 7S",GEOGCS["IGN72 Nuku Hiva",DATUM["IGN72_Nuku_Hiva",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[84,274,65,0,0,0,0],AUTHORITY["EPSG","6630"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4630"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 2979 : K0 1949 / UTM zone 42S (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2979,'EPSG',2979,'PROJCS["K0 1949 / UTM zone 42S (deprecated)",GEOGCS["K0 1949",DATUM["K0_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6631"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4631"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2979,'EPSG',2979,'PROJCS["K0 1949 / UTM zone 42S (deprecated)",GEOGCS["K0 1949",DATUM["K0_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6631"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4631"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 2980 : Combani 1950 / UTM zone 38S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2980,'EPSG',2980,'PROJCS["Combani 1950 / UTM zone 38S",GEOGCS["Combani 1950",DATUM["Combani_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY["EPSG","6632"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4632"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2980,'EPSG',2980,'PROJCS["Combani 1950 / UTM zone 38S",GEOGCS["Combani 1950",DATUM["Combani_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY["EPSG","6632"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4632"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
 --- EPSG 2981 : IGN56 Lifou / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2981,'EPSG',2981,'PROJCS["IGN56 Lifou / UTM zone 58S",GEOGCS["IGN56 Lifou",DATUM["IGN56_Lifou",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[335.47,222.58,-230.94,0,0,0,0],AUTHORITY["EPSG","6633"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4633"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2981,'EPSG',2981,'PROJCS["IGN56 Lifou / UTM zone 58S",GEOGCS["IGN56 Lifou",DATUM["IGN56_Lifou",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[335.47,222.58,-230.94,0,0,0,0],AUTHORITY["EPSG","6633"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4633"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 2982 : IGN72 Grand Terre / UTM zone 58S (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2982,'EPSG',2982,'PROJCS["IGN72 Grand Terre / UTM zone 58S (deprecated)",GEOGCS["IGN72 Grand Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4634"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2982,'EPSG',2982,'PROJCS["IGN72 Grand Terre / UTM zone 58S (deprecated)",GEOGCS["IGN72 Grand Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4634"]],PROJECTION["Trans [...]
 ---
 --- EPSG 2983 : ST87 Ouvea / UTM zone 58S (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2983,'EPSG',2983,'PROJCS["ST87 Ouvea / UTM zone 58S (deprecated)",GEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798],AUTHORITY["EPSG","6635"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4635"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2983,'EPSG',2983,'PROJCS["ST87 Ouvea / UTM zone 58S (deprecated)",GEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798],AUTHORITY["EPSG","6635"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4635"]],PROJ [...]
 ---
 --- EPSG 2984 : RGNC 1991 / Lambert New Caledonia (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2984,'EPSG',2984,'PROJCS["RGNC 1991 / Lambert New Caledonia (deprecated)",GEOGCS["RGNC 1991",DATUM["Reseau_Geodesique_Nouvelle_Caledonie_1991",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6645"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4645"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2984,'EPSG',2984,'PROJCS["RGNC 1991 / Lambert New Caledonia (deprecated)",GEOGCS["RGNC 1991",DATUM["Reseau_Geodesique_Nouvelle_Caledonie_1991",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6645"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4645"]],PROJECTI [...]
 ---
 --- EPSG 2985 : Petrels 1972 / Terre Adelie Polar Stereographic
 ---
@@ -5762,263 +5814,263 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 2987 : Saint Pierre et Miquelon 1950 / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2987,'EPSG',2987,'PROJCS["Saint Pierre et Miquelon 1950 / UTM zone 21N",GEOGCS["Saint Pierre et Miquelon 1950",DATUM["Saint_Pierre_et_Miquelon_1950",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[30,430,368,0,0,0,0],AUTHORITY["EPSG","6638"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2987,'EPSG',2987,'PROJCS["Saint Pierre et Miquelon 1950 / UTM zone 21N",GEOGCS["Saint Pierre et Miquelon 1950",DATUM["Saint_Pierre_et_Miquelon_1950",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[30,430,368,0,0,0,0],AUTHORITY["EPSG","6638"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
 --- EPSG 2988 : MOP78 / UTM zone 1S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2988,'EPSG',2988,'PROJCS["MOP78 / UTM zone 1S",GEOGCS["MOP78",DATUM["MOP78",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[253,-132,-127,0,0,0,0],AUTHORITY["EPSG","6639"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4639"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2988,'EPSG',2988,'PROJCS["MOP78 / UTM zone 1S",GEOGCS["MOP78",DATUM["MOP78",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[253,-132,-127,0,0,0,0],AUTHORITY["EPSG","6639"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4639"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 2989 : RRAF 1991 / UTM zone 20N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2989,'EPSG',2989,'PROJCS["RRAF 1991 / UTM zone 20N (deprecated)",GEOGCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6640"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4640"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2989,'EPSG',2989,'PROJCS["RRAF 1991 / UTM zone 20N (deprecated)",GEOGCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6640"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4640"]],PROJECTION[" [...]
 ---
 --- EPSG 2990 : Reunion 1947 / TM Reunion (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2990,'EPSG',2990,'PROJCS["Reunion 1947 / TM Reunion (deprecated)",GEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[94,-948,-1262,0,0,0,0],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2990,'EPSG',2990,'PROJCS["Reunion 1947 / TM Reunion (deprecated)",GEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[94,-948,-1262,0,0,0,0],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 2991 : NAD83 / Oregon Lambert
+--- EPSG 2991 : NAD83 / Oregon LCC (m)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2991,'EPSG',2991,'PROJCS["NAD83 / Oregon Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2991,'EPSG',2991,'PROJCS["NAD83 / Oregon LCC (m)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[ [...]
 ---
---- EPSG 2992 : NAD83 / Oregon Lambert (ft)
+--- EPSG 2992 : NAD83 / Oregon GIC Lambert (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2992,'EPSG',2992,'PROJCS["NAD83 / Oregon Lambert (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2992,'EPSG',2992,'PROJCS["NAD83 / Oregon GIC Lambert (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 2993 : NAD83(HARN) / Oregon Lambert
+--- EPSG 2993 : NAD83(HARN) / Oregon LCC (m)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2993,'EPSG',2993,'PROJCS["NAD83(HARN) / Oregon Lambert",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2993,'EPSG',2993,'PROJCS["NAD83(HARN) / Oregon LCC (m)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
---- EPSG 2994 : NAD83(HARN) / Oregon Lambert (ft)
+--- EPSG 2994 : NAD83(HARN) / Oregon GIC Lambert (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2994,'EPSG',2994,'PROJCS["NAD83(HARN) / Oregon Lambert (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2994,'EPSG',2994,'PROJCS["NAD83(HARN) / Oregon GIC Lambert (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert [...]
 ---
 --- EPSG 2995 : IGN53 Mare / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2995,'EPSG',2995,'PROJCS["IGN53 Mare / UTM zone 58S",GEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[287.58,177.78,-135.41,0,0,0,0],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2995,'EPSG',2995,'PROJCS["IGN53 Mare / UTM zone 58S",GEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[287.58,177.78,-135.41,0,0,0,0],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 2996 : ST84 Ile des Pins / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2996,'EPSG',2996,'PROJCS["ST84 Ile des Pins / UTM zone 58S",GEOGCS["ST84 Ile des Pins",DATUM["ST84_Ile_des_Pins",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORITY["EPSG","6642"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4642"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2996,'EPSG',2996,'PROJCS["ST84 Ile des Pins / UTM zone 58S",GEOGCS["ST84 Ile des Pins",DATUM["ST84_Ile_des_Pins",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORITY["EPSG","6642"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4642"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 2997 : ST71 Belep / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2997,'EPSG',2997,'PROJCS["ST71 Belep / UTM zone 58S",GEOGCS["ST71 Belep",DATUM["ST71_Belep",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7],AUTHORITY["EPSG","6643"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4643"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2997,'EPSG',2997,'PROJCS["ST71 Belep / UTM zone 58S",GEOGCS["ST71 Belep",DATUM["ST71_Belep",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002],AUTHORITY["EPSG","6643"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4643"]],PROJECTION["Tr [...]
 ---
 --- EPSG 2998 : NEA74 Noumea / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2998,'EPSG',2998,'PROJCS["NEA74 Noumea / UTM zone 58S",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2998,'EPSG',2998,'PROJCS["NEA74 Noumea / UTM zone 58S",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
 --- EPSG 2999 : Grand Comoros / UTM zone 38S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2999,'EPSG',2999,'PROJCS["Grand Comoros / UTM zone 38S",GEOGCS["Grand Comoros",DATUM["Grand_Comoros",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6646"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4646"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (2999,'EPSG',2999,'PROJCS["Grand Comoros / UTM zone 38S",GEOGCS["Grand Comoros",DATUM["Grand_Comoros",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-963,510,-359,0,0,0,0],AUTHORITY["EPSG","6646"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4646"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 3000 : Segara / NEIEZ
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3000,'EPSG',3000,'PROJCS["Segara / NEIEZ",GEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercato [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3000,'EPSG',3000,'PROJCS["Segara / NEIEZ",GEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110] [...]
 ---
 --- EPSG 3001 : Batavia / NEIEZ
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3001,'EPSG',3001,'PROJCS["Batavia / NEIEZ",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3001,'EPSG',3001,'PROJCS["Batavia / NEIEZ",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PA [...]
 ---
 --- EPSG 3002 : Makassar / NEIEZ
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3002,'EPSG',3002,'PROJCS["Makassar / NEIEZ",GEOGCS["Makassar",DATUM["Makassar",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6257"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4257"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3002,'EPSG',3002,'PROJCS["Makassar / NEIEZ",GEOGCS["Makassar",DATUM["Makassar",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6257"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4257"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridi [...]
 ---
 --- EPSG 3003 : Monte Mario / Italy zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3003,'EPSG',3003,'PROJCS["Monte Mario / Italy zone 1",GEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3003,'EPSG',3003,'PROJCS["Monte Mario / Italy zone 1",GEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 3004 : Monte Mario / Italy zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3004,'EPSG',3004,'PROJCS["Monte Mario / Italy zone 2",GEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3004,'EPSG',3004,'PROJCS["Monte Mario / Italy zone 2",GEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 3005 : NAD83 / BC Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3005,'EPSG',3005,'PROJCS["NAD83 / BC Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albe [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3005,'EPSG',3005,'PROJCS["NAD83 / BC Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard [...]
 ---
 --- EPSG 3006 : SWEREF99 TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3006,'EPSG',3006,'PROJCS["SWEREF99 TM",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PA [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3006,'EPSG',3006,'PROJCS["SWEREF99 TM",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER [...]
 ---
 --- EPSG 3007 : SWEREF99 12 00
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3007,'EPSG',3007,'PROJCS["SWEREF99 12 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3007,'EPSG',3007,'PROJCS["SWEREF99 12 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3008 : SWEREF99 13 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3008,'EPSG',3008,'PROJCS["SWEREF99 13 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3008,'EPSG',3008,'PROJCS["SWEREF99 13 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3009 : SWEREF99 15 00
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3009,'EPSG',3009,'PROJCS["SWEREF99 15 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3009,'EPSG',3009,'PROJCS["SWEREF99 15 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3010 : SWEREF99 16 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3010,'EPSG',3010,'PROJCS["SWEREF99 16 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3010,'EPSG',3010,'PROJCS["SWEREF99 16 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3011 : SWEREF99 18 00
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3011,'EPSG',3011,'PROJCS["SWEREF99 18 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3011,'EPSG',3011,'PROJCS["SWEREF99 18 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3012 : SWEREF99 14 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3012,'EPSG',3012,'PROJCS["SWEREF99 14 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3012,'EPSG',3012,'PROJCS["SWEREF99 14 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3013 : SWEREF99 15 45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3013,'EPSG',3013,'PROJCS["SWEREF99 15 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3013,'EPSG',3013,'PROJCS["SWEREF99 15 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3014 : SWEREF99 17 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3014,'EPSG',3014,'PROJCS["SWEREF99 17 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3014,'EPSG',3014,'PROJCS["SWEREF99 17 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3015 : SWEREF99 18 45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3015,'EPSG',3015,'PROJCS["SWEREF99 18 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3015,'EPSG',3015,'PROJCS["SWEREF99 18 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3016 : SWEREF99 20 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3016,'EPSG',3016,'PROJCS["SWEREF99 20 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3016,'EPSG',3016,'PROJCS["SWEREF99 20 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3017 : SWEREF99 21 45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3017,'EPSG',3017,'PROJCS["SWEREF99 21 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3017,'EPSG',3017,'PROJCS["SWEREF99 21 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3018 : SWEREF99 23 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3018,'EPSG',3018,'PROJCS["SWEREF99 23 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3018,'EPSG',3018,'PROJCS["SWEREF99 23 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
 --- EPSG 3019 : RT90 7.5 gon V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3019,'EPSG',3019,'PROJCS["RT90 7.5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3019,'EPSG',3019,'PROJCS["RT90 7.5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 3020 : RT90 5 gon V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3020,'EPSG',3020,'PROJCS["RT90 5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3020,'EPSG',3020,'PROJCS["RT90 5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 3021 : RT90 2.5 gon V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3021,'EPSG',3021,'PROJCS["RT90 2.5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3021,'EPSG',3021,'PROJCS["RT90 2.5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 3022 : RT90 0 gon
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3022,'EPSG',3022,'PROJCS["RT90 0 gon",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3022,'EPSG',3022,'PROJCS["RT90 0 gon",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 3023 : RT90 2.5 gon O
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3023,'EPSG',3023,'PROJCS["RT90 2.5 gon O",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3023,'EPSG',3023,'PROJCS["RT90 2.5 gon O",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 3024 : RT90 5 gon O
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3024,'EPSG',3024,'PROJCS["RT90 5 gon O",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3024,'EPSG',3024,'PROJCS["RT90 5 gon O",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 3025 : RT38 7.5 gon V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3025,'EPSG',3025,'PROJCS["RT38 7.5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3025,'EPSG',3025,'PROJCS["RT38 7.5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_mer [...]
 ---
 --- EPSG 3026 : RT38 5 gon V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3026,'EPSG',3026,'PROJCS["RT38 5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3026,'EPSG',3026,'PROJCS["RT38 5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
 --- EPSG 3027 : RT38 2.5 gon V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3027,'EPSG',3027,'PROJCS["RT38 2.5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3027,'EPSG',3027,'PROJCS["RT38 2.5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_mer [...]
 ---
 --- EPSG 3028 : RT38 0 gon
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3028,'EPSG',3028,'PROJCS["RT38 0 gon",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3028,'EPSG',3028,'PROJCS["RT38 0 gon",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridia [...]
 ---
 --- EPSG 3029 : RT38 2.5 gon O
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3029,'EPSG',3029,'PROJCS["RT38 2.5 gon O",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3029,'EPSG',3029,'PROJCS["RT38 2.5 gon O",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_mer [...]
 ---
 --- EPSG 3030 : RT38 5 gon O
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3030,'EPSG',3030,'PROJCS["RT38 5 gon O",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3030,'EPSG',3030,'PROJCS["RT38 5 gon O",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
 --- EPSG 3031 : WGS 84 / Antarctic Polar Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3031,'EPSG',3031,'PROJCS["WGS 84 / Antarctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PA [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3031,'EPSG',3031,'PROJCS["WGS 84 / Antarctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-71],PARAMET [...]
 ---
 --- EPSG 3032 : WGS 84 / Australian Antarctic Polar Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3032,'EPSG',3032,'PROJCS["WGS 84 / Australian Antarctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereog [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3032,'EPSG',3032,'PROJCS["WGS 84 / Australian Antarctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",- [...]
 ---
 --- EPSG 3033 : WGS 84 / Australian Antarctic Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3033,'EPSG',3033,'PROJCS["WGS 84 / Australian Antarctic Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3033,'EPSG',3033,'PROJCS["WGS 84 / Australian Antarctic Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68. [...]
 ---
---- EPSG 3034 : ETRS89 / ETRS-LCC
+--- EPSG 3034 : ETRS89 / LCC Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3034,'EPSG',3034,'PROJCS["ETRS89 / ETRS-LCC",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3034,'EPSG',3034,'PROJCS["ETRS89 / LCC Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 3035 : ETRS89 / ETRS-LAEA
+--- EPSG 3035 : ETRS89 / LAEA Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3035,'EPSG',3035,'PROJCS["ETRS89 / ETRS-LAEA",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3035,'EPSG',3035,'PROJCS["ETRS89 / LAEA Europe",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_ [...]
 ---
 --- EPSG 3036 : Moznet / UTM zone 36S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3036,'EPSG',3036,'PROJCS["Moznet / UTM zone 36S",GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3036,'EPSG',3036,'PROJCS["Moznet / UTM zone 36S",GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
 --- EPSG 3037 : Moznet / UTM zone 37S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3037,'EPSG',3037,'PROJCS["Moznet / UTM zone 37S",GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3037,'EPSG',3037,'PROJCS["Moznet / UTM zone 37S",GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 3038 : ETRS89 / ETRS-TM26
+--- EPSG 3038 : ETRS89 / TM26 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3038,'EPSG',3038,'PROJCS["ETRS89 / ETRS-TM26",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3038,'EPSG',3038,'PROJCS["ETRS89 / TM26 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 3039 : ETRS89 / ETRS-TM27
+--- EPSG 3039 : ETRS89 / TM27 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3039,'EPSG',3039,'PROJCS["ETRS89 / ETRS-TM27",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3039,'EPSG',3039,'PROJCS["ETRS89 / TM27 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 3040 : ETRS89 / ETRS-TM28
+--- EPSG 3040 : ETRS89 / UTM zone 28N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3040,'EPSG',3040,'PROJCS["ETRS89 / ETRS-TM28",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3040,'EPSG',3040,'PROJCS["ETRS89 / UTM zone 28N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3041 : ETRS89 / ETRS-TM29
+--- EPSG 3041 : ETRS89 / UTM zone 29N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3041,'EPSG',3041,'PROJCS["ETRS89 / ETRS-TM29",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3041,'EPSG',3041,'PROJCS["ETRS89 / UTM zone 29N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3042 : ETRS89 / ETRS-TM30
+--- EPSG 3042 : ETRS89 / UTM zone 30N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3042,'EPSG',3042,'PROJCS["ETRS89 / ETRS-TM30",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3042,'EPSG',3042,'PROJCS["ETRS89 / UTM zone 30N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3043 : ETRS89 / ETRS-TM31
+--- EPSG 3043 : ETRS89 / UTM zone 31N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3043,'EPSG',3043,'PROJCS["ETRS89 / ETRS-TM31",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3043,'EPSG',3043,'PROJCS["ETRS89 / UTM zone 31N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3044 : ETRS89 / ETRS-TM32
+--- EPSG 3044 : ETRS89 / UTM zone 32N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3044,'EPSG',3044,'PROJCS["ETRS89 / ETRS-TM32",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3044,'EPSG',3044,'PROJCS["ETRS89 / UTM zone 32N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3045 : ETRS89 / ETRS-TM33
+--- EPSG 3045 : ETRS89 / UTM zone 33N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3045,'EPSG',3045,'PROJCS["ETRS89 / ETRS-TM33",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3045,'EPSG',3045,'PROJCS["ETRS89 / UTM zone 33N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3046 : ETRS89 / ETRS-TM34
+--- EPSG 3046 : ETRS89 / UTM zone 34N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3046,'EPSG',3046,'PROJCS["ETRS89 / ETRS-TM34",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3046,'EPSG',3046,'PROJCS["ETRS89 / UTM zone 34N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3047 : ETRS89 / ETRS-TM35
+--- EPSG 3047 : ETRS89 / UTM zone 35N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3047,'EPSG',3047,'PROJCS["ETRS89 / ETRS-TM35",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3047,'EPSG',3047,'PROJCS["ETRS89 / UTM zone 35N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3048 : ETRS89 / ETRS-TM36
+--- EPSG 3048 : ETRS89 / UTM zone 36N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3048,'EPSG',3048,'PROJCS["ETRS89 / ETRS-TM36",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3048,'EPSG',3048,'PROJCS["ETRS89 / UTM zone 36N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3049 : ETRS89 / ETRS-TM37
+--- EPSG 3049 : ETRS89 / UTM zone 37N (N-E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3049,'EPSG',3049,'PROJCS["ETRS89 / ETRS-TM37",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3049,'EPSG',3049,'PROJCS["ETRS89 / UTM zone 37N (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3050 : ETRS89 / ETRS-TM38
+--- EPSG 3050 : ETRS89 / TM38 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3050,'EPSG',3050,'PROJCS["ETRS89 / ETRS-TM38",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3050,'EPSG',3050,'PROJCS["ETRS89 / TM38 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 3051 : ETRS89 / ETRS-TM39
+--- EPSG 3051 : ETRS89 / TM39 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3051,'EPSG',3051,'PROJCS["ETRS89 / ETRS-TM39",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3051,'EPSG',3051,'PROJCS["ETRS89 / TM39 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3052 : Reykjavik 1900 / Lambert 1900
 ---
@@ -6030,343 +6082,343 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 3054 : Hjorsey 1955 / UTM zone 26N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3054,'EPSG',3054,'PROJCS["Hjorsey 1955 / UTM zone 26N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3054,'EPSG',3054,'PROJCS["Hjorsey 1955 / UTM zone 26N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 3055 : Hjorsey 1955 / UTM zone 27N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3055,'EPSG',3055,'PROJCS["Hjorsey 1955 / UTM zone 27N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3055,'EPSG',3055,'PROJCS["Hjorsey 1955 / UTM zone 27N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 3056 : Hjorsey 1955 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3056,'EPSG',3056,'PROJCS["Hjorsey 1955 / UTM zone 28N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3056,'EPSG',3056,'PROJCS["Hjorsey 1955 / UTM zone 28N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 3057 : ISN93 / Lambert 1993
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3057,'EPSG',3057,'PROJCS["ISN93 / Lambert 1993",GEOGCS["ISN93",DATUM["Islands_Network_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4659"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lamber [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3057,'EPSG',3057,'PROJCS["ISN93 / Lambert 1993",GEOGCS["ISN93",DATUM["Islands_Net_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4659"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_p [...]
 ---
 --- EPSG 3058 : Helle 1954 / Jan Mayen Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3058,'EPSG',3058,'PROJCS["Helle 1954 / Jan Mayen Grid",GEOGCS["Helle 1954",DATUM["Helle_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[982.609,552.753,-540.873,6.68163,-31.6115,-19.8482,16.805],AUTHORITY["EPSG","6660"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4660"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3058,'EPSG',3058,'PROJCS["Helle 1954 / Jan Mayen Grid",GEOGCS["Helle 1954",DATUM["Helle_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[982.6087,552.753,-540.873,6.68162662527694,-31.6114924086422,-19.8481610048168,16.805],AUTHORITY["EPSG","6660"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY[" [...]
 ---
 --- EPSG 3059 : LKS92 / Latvia TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3059,'EPSG',3059,'PROJCS["LKS92 / Latvia TM",GEOGCS["LKS92",DATUM["Latvia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6661"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4661"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercato [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3059,'EPSG',3059,'PROJCS["LKS92 / Latvia TM",GEOGCS["LKS92",DATUM["Latvia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6661"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4661"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PAR [...]
 ---
 --- EPSG 3060 : IGN72 Grande Terre / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3060,'EPSG',3060,'PROJCS["IGN72 Grande Terre / UTM zone 58S",GEOGCS["IGN72 Grande Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-11.64,-348.6,291.98,0,0,0,0],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4662"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3060,'EPSG',3060,'PROJCS["IGN72 Grande Terre / UTM zone 58S",GEOGCS["IGN72 Grande Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-11.64,-348.6,291.98,0,0,0,0],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4662"]],PROJECTION["Transver [...]
 ---
 --- EPSG 3061 : Porto Santo 1995 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3061,'EPSG',3061,'PROJCS["Porto Santo 1995 / UTM zone 28N",GEOGCS["Porto Santo 1995",DATUM["Porto_Santo_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-502.862,-247.438,312.724,0,0,0,0],AUTHORITY["EPSG","6663"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4663"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3061,'EPSG',3061,'PROJCS["Porto Santo 1995 / UTM zone 28N",GEOGCS["Porto Santo 1995",DATUM["Porto_Santo_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-502.862,-247.438,312.724,0,0,0,0],AUTHORITY["EPSG","6663"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4663"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 3062 : Azores Oriental 1995 / UTM zone 26N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3062,'EPSG',3062,'PROJCS["Azores Oriental 1995 / UTM zone 26N",GEOGCS["Azores Oriental 1995",DATUM["Azores_Oriental_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-204.619,140.176,55.226,0,0,0,0],AUTHORITY["EPSG","6664"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4664"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3062,'EPSG',3062,'PROJCS["Azores Oriental 1995 / UTM zone 26N",GEOGCS["Azores Oriental 1995",DATUM["Azores_Oriental_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-204.619,140.176,55.226,0,0,0,0],AUTHORITY["EPSG","6664"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4664"]],PRO [...]
 ---
 --- EPSG 3063 : Azores Central 1995 / UTM zone 26N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3063,'EPSG',3063,'PROJCS["Azores Central 1995 / UTM zone 26N",GEOGCS["Azores Central 1995",DATUM["Azores_Central_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-106.226,166.366,-37.893,0,0,0,0],AUTHORITY["EPSG","6665"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4665"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3063,'EPSG',3063,'PROJCS["Azores Central 1995 / UTM zone 26N",GEOGCS["Azores Central 1995",DATUM["Azores_Central_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-106.226,166.366,-37.893,0,0,0,0],AUTHORITY["EPSG","6665"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4665"]],PROJE [...]
 ---
 --- EPSG 3064 : IGM95 / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3064,'EPSG',3064,'PROJCS["IGM95 / UTM zone 32N",GEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3064,'EPSG',3064,'PROJCS["IGM95 / UTM zone 32N",GEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3065 : IGM95 / UTM zone 33N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3065,'EPSG',3065,'PROJCS["IGM95 / UTM zone 33N",GEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3065,'EPSG',3065,'PROJCS["IGM95 / UTM zone 33N",GEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3066 : ED50 / Jordan TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3066,'EPSG',3066,'PROJCS["ED50 / Jordan TM",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Trans [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3066,'EPSG',3066,'PROJCS["ED50 / Jordan TM",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
 ---
---- EPSG 3067 : ETRS89 / ETRS-TM35FIN
+--- EPSG 3067 : ETRS89 / TM35FIN(E,N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3067,'EPSG',3067,'PROJCS["ETRS89 / ETRS-TM35FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3067,'EPSG',3067,'PROJCS["ETRS89 / TM35FIN(E,N)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3068 : DHDN / Soldner Berlin
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3068,'EPSG',3068,'PROJCS["DHDN / Soldner Berlin",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3068,'EPSG',3068,'PROJCS["DHDN / Soldner Berlin",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],PROJECTION["Cassini_S [...]
 ---
 --- EPSG 3069 : NAD27 / Wisconsin Transverse Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3069,'EPSG',3069,'PROJCS["NAD27 / Wisconsin Transverse Mercator",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3069,'EPSG',3069,'PROJCS["NAD27 / Wisconsin Transverse Mercator",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
 --- EPSG 3070 : NAD83 / Wisconsin Transverse Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3070,'EPSG',3070,'PROJCS["NAD83 / Wisconsin Transverse Mercator",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3070,'EPSG',3070,'PROJCS["NAD83 / Wisconsin Transverse Mercator",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
 --- EPSG 3071 : NAD83(HARN) / Wisconsin Transverse Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3071,'EPSG',3071,'PROJCS["NAD83(HARN) / Wisconsin Transverse Mercator",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3071,'EPSG',3071,'PROJCS["NAD83(HARN) / Wisconsin Transverse Mercator",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["T [...]
 ---
 --- EPSG 3072 : NAD83 / Maine CS2000 East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3072,'EPSG',3072,'PROJCS["NAD83 / Maine CS2000 East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3072,'EPSG',3072,'PROJCS["NAD83 / Maine CS2000 East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 3073 : NAD83 / Maine CS2000 Central (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3073,'EPSG',3073,'PROJCS["NAD83 / Maine CS2000 Central (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3073,'EPSG',3073,'PROJCS["NAD83 / Maine CS2000 Central (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 3074 : NAD83 / Maine CS2000 West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3074,'EPSG',3074,'PROJCS["NAD83 / Maine CS2000 West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3074,'EPSG',3074,'PROJCS["NAD83 / Maine CS2000 West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 3075 : NAD83(HARN) / Maine CS2000 East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3075,'EPSG',3075,'PROJCS["NAD83(HARN) / Maine CS2000 East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3075,'EPSG',3075,'PROJCS["NAD83(HARN) / Maine CS2000 East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 3076 : NAD83(HARN) / Maine CS2000 Central (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3076,'EPSG',3076,'PROJCS["NAD83(HARN) / Maine CS2000 Central (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3076,'EPSG',3076,'PROJCS["NAD83(HARN) / Maine CS2000 Central (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTIO [...]
 ---
 --- EPSG 3077 : NAD83(HARN) / Maine CS2000 West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3077,'EPSG',3077,'PROJCS["NAD83(HARN) / Maine CS2000 West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3077,'EPSG',3077,'PROJCS["NAD83(HARN) / Maine CS2000 West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 3078 : NAD83 / Michigan Oblique Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3078,'EPSG',3078,'PROJCS["NAD83 / Michigan Oblique Mercator",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3078,'EPSG',3078,'PROJCS["NAD83 / Michigan Oblique Mercator",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Hotine_Oblique_Mercator"],PAR [...]
 ---
 --- EPSG 3079 : NAD83(HARN) / Michigan Oblique Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3079,'EPSG',3079,'PROJCS["NAD83(HARN) / Michigan Oblique Mercator",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3079,'EPSG',3079,'PROJCS["NAD83(HARN) / Michigan Oblique Mercator",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Hotin [...]
 ---
 --- EPSG 3080 : NAD27 / Shackleford
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3080,'EPSG',3080,'PROJCS["NAD27 / Shackleford",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conf [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3080,'EPSG',3080,'PROJCS["NAD27 / Shackleford",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_paralle [...]
 ---
 --- EPSG 3081 : NAD83 / Texas State Mapping System
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3081,'EPSG',3081,'PROJCS["NAD83 / Texas State Mapping System",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3081,'EPSG',3081,'PROJCS["NAD83 / Texas State Mapping System",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
 --- EPSG 3082 : NAD83 / Texas Centric Lambert Conformal
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3082,'EPSG',3082,'PROJCS["NAD83 / Texas Centric Lambert Conformal",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3082,'EPSG',3082,'PROJCS["NAD83 / Texas Centric Lambert Conformal",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
 --- EPSG 3083 : NAD83 / Texas Centric Albers Equal Area
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3083,'EPSG',3083,'PROJCS["NAD83 / Texas Centric Albers Equal Area",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3083,'EPSG',3083,'PROJCS["NAD83 / Texas Centric Albers Equal Area",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area [...]
 ---
 --- EPSG 3084 : NAD83(HARN) / Texas Centric Lambert Conformal
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3084,'EPSG',3084,'PROJCS["NAD83(HARN) / Texas Centric Lambert Conformal",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3084,'EPSG',3084,'PROJCS["NAD83(HARN) / Texas Centric Lambert Conformal",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION[ [...]
 ---
 --- EPSG 3085 : NAD83(HARN) / Texas Centric Albers Equal Area
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3085,'EPSG',3085,'PROJCS["NAD83(HARN) / Texas Centric Albers Equal Area",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3085,'EPSG',3085,'PROJCS["NAD83(HARN) / Texas Centric Albers Equal Area",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION[ [...]
 ---
 --- EPSG 3086 : NAD83 / Florida GDL Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3086,'EPSG',3086,'PROJCS["NAD83 / Florida GDL Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3086,'EPSG',3086,'PROJCS["NAD83 / Florida GDL Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER[ [...]
 ---
 --- EPSG 3087 : NAD83(HARN) / Florida GDL Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3087,'EPSG',3087,'PROJCS["NAD83(HARN) / Florida GDL Albers",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3087,'EPSG',3087,'PROJCS["NAD83(HARN) / Florida GDL Albers",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Albers_Conic [...]
 ---
 --- EPSG 3088 : NAD83 / Kentucky Single Zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3088,'EPSG',3088,'PROJCS["NAD83 / Kentucky Single Zone",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3088,'EPSG',3088,'PROJCS["NAD83 / Kentucky Single Zone",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
 --- EPSG 3089 : NAD83 / Kentucky Single Zone (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3089,'EPSG',3089,'PROJCS["NAD83 / Kentucky Single Zone (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.304800609601219 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3089,'EPSG',3089,'PROJCS["NAD83 / Kentucky Single Zone (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
 --- EPSG 3090 : NAD83(HARN) / Kentucky Single Zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3090,'EPSG',3090,'PROJCS["NAD83(HARN) / Kentucky Single Zone",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3090,'EPSG',3090,'PROJCS["NAD83(HARN) / Kentucky Single Zone",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Co [...]
 ---
 --- EPSG 3091 : NAD83(HARN) / Kentucky Single Zone (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3091,'EPSG',3091,'PROJCS["NAD83(HARN) / Kentucky Single Zone (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3091,'EPSG',3091,'PROJCS["NAD83(HARN) / Kentucky Single Zone (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lam [...]
 ---
 --- EPSG 3092 : Tokyo / UTM zone 51N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3092,'EPSG',3092,'PROJCS["Tokyo / UTM zone 51N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transvers [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3092,'EPSG',3092,'PROJCS["Tokyo / UTM zone 51N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 3093 : Tokyo / UTM zone 52N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3093,'EPSG',3093,'PROJCS["Tokyo / UTM zone 52N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transvers [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3093,'EPSG',3093,'PROJCS["Tokyo / UTM zone 52N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 3094 : Tokyo / UTM zone 53N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3094,'EPSG',3094,'PROJCS["Tokyo / UTM zone 53N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transvers [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3094,'EPSG',3094,'PROJCS["Tokyo / UTM zone 53N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 3095 : Tokyo / UTM zone 54N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3095,'EPSG',3095,'PROJCS["Tokyo / UTM zone 54N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transvers [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3095,'EPSG',3095,'PROJCS["Tokyo / UTM zone 54N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 3096 : Tokyo / UTM zone 55N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3096,'EPSG',3096,'PROJCS["Tokyo / UTM zone 55N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transvers [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3096,'EPSG',3096,'PROJCS["Tokyo / UTM zone 55N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 3097 : JGD2000 / UTM zone 51N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3097,'EPSG',3097,'PROJCS["JGD2000 / UTM zone 51N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3097,'EPSG',3097,'PROJCS["JGD2000 / UTM zone 51N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3098 : JGD2000 / UTM zone 52N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3098,'EPSG',3098,'PROJCS["JGD2000 / UTM zone 52N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3098,'EPSG',3098,'PROJCS["JGD2000 / UTM zone 52N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3099 : JGD2000 / UTM zone 53N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3099,'EPSG',3099,'PROJCS["JGD2000 / UTM zone 53N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3099,'EPSG',3099,'PROJCS["JGD2000 / UTM zone 53N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3100 : JGD2000 / UTM zone 54N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3100,'EPSG',3100,'PROJCS["JGD2000 / UTM zone 54N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3100,'EPSG',3100,'PROJCS["JGD2000 / UTM zone 54N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3101 : JGD2000 / UTM zone 55N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3101,'EPSG',3101,'PROJCS["JGD2000 / UTM zone 55N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3101,'EPSG',3101,'PROJCS["JGD2000 / UTM zone 55N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3102 : American Samoa 1962 / American Samoa Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3102,'EPSG',3102,'PROJCS["American Samoa 1962 / American Samoa Lambert",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3102,'EPSG',3102,'PROJCS["American Samoa 1962 / American Samoa Lambert",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]],PROJEC [...]
 ---
 --- EPSG 3103 : Mauritania 1999 / UTM zone 28N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3103,'EPSG',3103,'PROJCS["Mauritania 1999 / UTM zone 28N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3103,'EPSG',3103,'PROJCS["Mauritania 1999 / UTM zone 28N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3104 : Mauritania 1999 / UTM zone 29N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3104,'EPSG',3104,'PROJCS["Mauritania 1999 / UTM zone 29N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3104,'EPSG',3104,'PROJCS["Mauritania 1999 / UTM zone 29N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3105 : Mauritania 1999 / UTM zone 30N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3105,'EPSG',3105,'PROJCS["Mauritania 1999 / UTM zone 30N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3105,'EPSG',3105,'PROJCS["Mauritania 1999 / UTM zone 30N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3106 : Gulshan 303 / Bangladesh Transverse Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3106,'EPSG',3106,'PROJCS["Gulshan 303 / Bangladesh Transverse Mercator",GEOGCS["Gulshan 303",DATUM["Gulshan_303",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[283.7,735.9,261.1,0,0,0,0],AUTHORITY["EPSG","6682"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4682"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3106,'EPSG',3106,'PROJCS["Gulshan 303 / Bangladesh Transverse Mercator",GEOGCS["Gulshan 303",DATUM["Gulshan_303",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[283.7,735.9,261.1,0,0,0,0],AUTHORITY["EPSG","6682"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4682"]],PROJE [...]
 ---
 --- EPSG 3107 : GDA94 / SA Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3107,'EPSG',3107,'PROJCS["GDA94 / SA Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3107,'EPSG',3107,'PROJCS["GDA94 / SA Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
 --- EPSG 3108 : ETRS89 / Guernsey Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3108,'EPSG',3108,'PROJCS["ETRS89 / Guernsey Grid",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3108,'EPSG',3108,'PROJCS["ETRS89 / Guernsey Grid",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"], [...]
 ---
 --- EPSG 3109 : ETRS89 / Jersey Transverse Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3109,'EPSG',3109,'PROJCS["ETRS89 / Jersey Transverse Mercator",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3109,'EPSG',3109,'PROJCS["ETRS89 / Jersey Transverse Mercator",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 3110 : AGD66 / Vicgrid66
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3110,'EPSG',3110,'PROJCS["AGD66 / Vicgrid66",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3110,'EPSG',3110,'PROJCS["AGD66 / Vicgrid66",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],PROJ [...]
 ---
 --- EPSG 3111 : GDA94 / Vicgrid94
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3111,'EPSG',3111,'PROJCS["GDA94 / Vicgrid94",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3111,'EPSG',3111,'PROJCS["GDA94 / Vicgrid94",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
 --- EPSG 3112 : GDA94 / Geoscience Australia Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3112,'EPSG',3112,'PROJCS["GDA94 / Geoscience Australia Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3112,'EPSG',3112,'PROJCS["GDA94 / Geoscience Australia Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Lambert_Conformal [...]
 ---
 --- EPSG 3113 : GDA94 / BCSG02
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3113,'EPSG',3113,'PROJCS["GDA94 / BCSG02",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3113,'EPSG',3113,'PROJCS["GDA94 / BCSG02",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
 --- EPSG 3114 : MAGNA-SIRGAS / Colombia Far West zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3114,'EPSG',3114,'PROJCS["MAGNA-SIRGAS / Colombia Far West zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3114,'EPSG',3114,'PROJCS["MAGNA-SIRGAS / Colombia Far West zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3115 : MAGNA-SIRGAS / Colombia West zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3115,'EPSG',3115,'PROJCS["MAGNA-SIRGAS / Colombia West zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3115,'EPSG',3115,'PROJCS["MAGNA-SIRGAS / Colombia West zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],PROJECTION["Transve [...]
 ---
 --- EPSG 3116 : MAGNA-SIRGAS / Colombia Bogota zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3116,'EPSG',3116,'PROJCS["MAGNA-SIRGAS / Colombia Bogota zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3116,'EPSG',3116,'PROJCS["MAGNA-SIRGAS / Colombia Bogota zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],PROJECTION["Trans [...]
 ---
 --- EPSG 3117 : MAGNA-SIRGAS / Colombia East Central zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3117,'EPSG',3117,'PROJCS["MAGNA-SIRGAS / Colombia East Central zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3117,'EPSG',3117,'PROJCS["MAGNA-SIRGAS / Colombia East Central zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],PROJECTION[ [...]
 ---
 --- EPSG 3118 : MAGNA-SIRGAS / Colombia East zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3118,'EPSG',3118,'PROJCS["MAGNA-SIRGAS / Colombia East zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3118,'EPSG',3118,'PROJCS["MAGNA-SIRGAS / Colombia East zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],PROJECTION["Transve [...]
 ---
 --- EPSG 3119 : Douala 1948 / AEF west
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3119,'EPSG',3119,'PROJCS["Douala 1948 / AEF west",GEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3119,'EPSG',3119,'PROJCS["Douala 1948 / AEF west",GEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 3120 : Pulkovo 1942(58) / Poland zone I
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3120,'EPSG',3120,'PROJCS["Pulkovo 1942(58) / Poland zone I",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3120,'EPSG',3120,'PROJCS["Pulkovo 1942(58) / Poland zone I",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJECTION[" [...]
 ---
 --- EPSG 3121 : PRS92 / Philippines zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3121,'EPSG',3121,'PROJCS["PRS92 / Philippines zone 1",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3121,'EPSG',3121,'PROJCS["PRS92 / Philippines zone 1",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
 ---
 --- EPSG 3122 : PRS92 / Philippines zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3122,'EPSG',3122,'PROJCS["PRS92 / Philippines zone 2",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3122,'EPSG',3122,'PROJCS["PRS92 / Philippines zone 2",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
 ---
 --- EPSG 3123 : PRS92 / Philippines zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3123,'EPSG',3123,'PROJCS["PRS92 / Philippines zone 3",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3123,'EPSG',3123,'PROJCS["PRS92 / Philippines zone 3",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
 ---
 --- EPSG 3124 : PRS92 / Philippines zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3124,'EPSG',3124,'PROJCS["PRS92 / Philippines zone 4",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3124,'EPSG',3124,'PROJCS["PRS92 / Philippines zone 4",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
 ---
 --- EPSG 3125 : PRS92 / Philippines zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3125,'EPSG',3125,'PROJCS["PRS92 / Philippines zone 5",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3125,'EPSG',3125,'PROJCS["PRS92 / Philippines zone 5",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]] [...]
 ---
 --- EPSG 3126 : ETRS89 / ETRS-GK19FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3126,'EPSG',3126,'PROJCS["ETRS89 / ETRS-GK19FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3126,'EPSG',3126,'PROJCS["ETRS89 / ETRS-GK19FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3127 : ETRS89 / ETRS-GK20FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3127,'EPSG',3127,'PROJCS["ETRS89 / ETRS-GK20FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3127,'EPSG',3127,'PROJCS["ETRS89 / ETRS-GK20FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3128 : ETRS89 / ETRS-GK21FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3128,'EPSG',3128,'PROJCS["ETRS89 / ETRS-GK21FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3128,'EPSG',3128,'PROJCS["ETRS89 / ETRS-GK21FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3129 : ETRS89 / ETRS-GK22FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3129,'EPSG',3129,'PROJCS["ETRS89 / ETRS-GK22FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3129,'EPSG',3129,'PROJCS["ETRS89 / ETRS-GK22FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3130 : ETRS89 / ETRS-GK23FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3130,'EPSG',3130,'PROJCS["ETRS89 / ETRS-GK23FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3130,'EPSG',3130,'PROJCS["ETRS89 / ETRS-GK23FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3131 : ETRS89 / ETRS-GK24FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3131,'EPSG',3131,'PROJCS["ETRS89 / ETRS-GK24FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3131,'EPSG',3131,'PROJCS["ETRS89 / ETRS-GK24FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3132 : ETRS89 / ETRS-GK25FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3132,'EPSG',3132,'PROJCS["ETRS89 / ETRS-GK25FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3132,'EPSG',3132,'PROJCS["ETRS89 / ETRS-GK25FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3133 : ETRS89 / ETRS-GK26FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3133,'EPSG',3133,'PROJCS["ETRS89 / ETRS-GK26FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3133,'EPSG',3133,'PROJCS["ETRS89 / ETRS-GK26FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3134 : ETRS89 / ETRS-GK27FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3134,'EPSG',3134,'PROJCS["ETRS89 / ETRS-GK27FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3134,'EPSG',3134,'PROJCS["ETRS89 / ETRS-GK27FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3135 : ETRS89 / ETRS-GK28FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3135,'EPSG',3135,'PROJCS["ETRS89 / ETRS-GK28FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3135,'EPSG',3135,'PROJCS["ETRS89 / ETRS-GK28FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3136 : ETRS89 / ETRS-GK29FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3136,'EPSG',3136,'PROJCS["ETRS89 / ETRS-GK29FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3136,'EPSG',3136,'PROJCS["ETRS89 / ETRS-GK29FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3137 : ETRS89 / ETRS-GK30FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3137,'EPSG',3137,'PROJCS["ETRS89 / ETRS-GK30FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3137,'EPSG',3137,'PROJCS["ETRS89 / ETRS-GK30FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3138 : ETRS89 / ETRS-GK31FIN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3138,'EPSG',3138,'PROJCS["ETRS89 / ETRS-GK31FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3138,'EPSG',3138,'PROJCS["ETRS89 / ETRS-GK31FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
 --- EPSG 3139 : Vanua Levu 1915 / Vanua Levu Grid
 ---
@@ -6374,19 +6426,19 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 3140 : Viti Levu 1912 / Viti Levu Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3140,'EPSG',3140,'PROJCS["Viti Levu 1912 / Viti Levu Grid",GEOGCS["Viti Levu 1912",DATUM["Viti_Levu_1912",SPHEROID["Clarke 1880 (international foot)",6378306.3696,293.4663076556349,AUTHORITY["EPSG","7055"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6752"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4752"]],UNIT["l [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3140,'EPSG',3140,'PROJCS["Viti Levu 1912 / Viti Levu Grid",GEOGCS["Viti Levu 1912",DATUM["Viti_Levu_1912",SPHEROID["Clarke 1880 (international foot)",6378306.3696,293.4663076556349,AUTHORITY["EPSG","7055"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6752"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4752"]],PROJECT [...]
 ---
 --- EPSG 3141 : Fiji 1956 / UTM zone 60S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3141,'EPSG',3141,'PROJCS["Fiji 1956 / UTM zone 60S",GEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3141,'EPSG',3141,'PROJCS["Fiji 1956 / UTM zone 60S",GEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 3142 : Fiji 1956 / UTM zone 1S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3142,'EPSG',3142,'PROJCS["Fiji 1956 / UTM zone 1S",GEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3142,'EPSG',3142,'PROJCS["Fiji 1956 / UTM zone 1S",GEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3143 : Fiji 1986 / Fiji Map Grid (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3143,'EPSG',3143,'PROJCS["Fiji 1986 / Fiji Map Grid (deprecated)",GEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3143,'EPSG',3143,'PROJCS["Fiji 1986 / Fiji Map Grid (deprecated)",GEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 3144 : FD54 / Faroe Lambert
 ---
@@ -6396,113 +6448,113 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 -- (unable to translate)
 ---
---- EPSG 3146 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 6
+--- EPSG 3146 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 6 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3146,'EPSG',3146,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3146,'EPSG',3146,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 6 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],P [...]
 ---
---- EPSG 3147 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E
+--- EPSG 3147 : Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3147,'EPSG',3147,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3147,'EPSG',3147,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],P [...]
 ---
 --- EPSG 3148 : Indian 1960 / UTM zone 48N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3148,'EPSG',3148,'PROJCS["Indian 1960 / UTM zone 48N",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3148,'EPSG',3148,'PROJCS["Indian 1960 / UTM zone 48N",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 3149 : Indian 1960 / UTM zone 49N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3149,'EPSG',3149,'PROJCS["Indian 1960 / UTM zone 49N",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3149,'EPSG',3149,'PROJCS["Indian 1960 / UTM zone 49N",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 3150 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 6
+--- EPSG 3150 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 6 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3150,'EPSG',3150,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3150,'EPSG',3150,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 6 (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PRO [...]
 ---
---- EPSG 3151 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E
+--- EPSG 3151 : Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3151,'EPSG',3151,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3151,'EPSG',3151,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PRO [...]
 ---
 --- EPSG 3152 : ST74
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3152,'EPSG',3152,'PROJCS["ST74",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3152,'EPSG',3152,'PROJCS["ST74",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["centr [...]
 ---
 --- EPSG 3153 : NAD83(CSRS) / BC Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3153,'EPSG',3153,'PROJCS["NAD83(CSRS) / BC Albers",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3153,'EPSG',3153,'PROJCS["NAD83(CSRS) / BC Albers",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Albers_Conic_Equal_ [...]
 ---
 --- EPSG 3154 : NAD83(CSRS) / UTM zone 7N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3154,'EPSG',3154,'PROJCS["NAD83(CSRS) / UTM zone 7N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3154,'EPSG',3154,'PROJCS["NAD83(CSRS) / UTM zone 7N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 3155 : NAD83(CSRS) / UTM zone 8N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3155,'EPSG',3155,'PROJCS["NAD83(CSRS) / UTM zone 8N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3155,'EPSG',3155,'PROJCS["NAD83(CSRS) / UTM zone 8N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 3156 : NAD83(CSRS) / UTM zone 9N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3156,'EPSG',3156,'PROJCS["NAD83(CSRS) / UTM zone 9N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3156,'EPSG',3156,'PROJCS["NAD83(CSRS) / UTM zone 9N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 3157 : NAD83(CSRS) / UTM zone 10N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3157,'EPSG',3157,'PROJCS["NAD83(CSRS) / UTM zone 10N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3157,'EPSG',3157,'PROJCS["NAD83(CSRS) / UTM zone 10N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3158 : NAD83(CSRS) / UTM zone 14N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3158,'EPSG',3158,'PROJCS["NAD83(CSRS) / UTM zone 14N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3158,'EPSG',3158,'PROJCS["NAD83(CSRS) / UTM zone 14N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3159 : NAD83(CSRS) / UTM zone 15N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3159,'EPSG',3159,'PROJCS["NAD83(CSRS) / UTM zone 15N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3159,'EPSG',3159,'PROJCS["NAD83(CSRS) / UTM zone 15N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3160 : NAD83(CSRS) / UTM zone 16N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3160,'EPSG',3160,'PROJCS["NAD83(CSRS) / UTM zone 16N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3160,'EPSG',3160,'PROJCS["NAD83(CSRS) / UTM zone 16N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3161 : NAD83 / Ontario MNR Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3161,'EPSG',3161,'PROJCS["NAD83 / Ontario MNR Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3161,'EPSG',3161,'PROJCS["NAD83 / Ontario MNR Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
 --- EPSG 3162 : NAD83(CSRS) / Ontario MNR Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3162,'EPSG',3162,'PROJCS["NAD83(CSRS) / Ontario MNR Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3162,'EPSG',3162,'PROJCS["NAD83(CSRS) / Ontario MNR Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 3163 : RGNC91-93 / Lambert New Caledonia
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3163,'EPSG',3163,'PROJCS["RGNC91-93 / Lambert New Caledonia",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3163,'EPSG',3163,'PROJCS["RGNC91-93 / Lambert New Caledonia",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],PROJECTION["Lambe [...]
 ---
 --- EPSG 3164 : ST87 Ouvea / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3164,'EPSG',3164,'PROJCS["ST87 Ouvea / UTM zone 58S",GEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-56.263,16.136,-22.856,0,0,0,0],AUTHORITY["EPSG","6750"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4750"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3164,'EPSG',3164,'PROJCS["ST87 Ouvea / UTM zone 58S",GEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-56.263,16.136,-22.856,0,0,0,0],AUTHORITY["EPSG","6750"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4750"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3165 : NEA74 Noumea / Noumea Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3165,'EPSG',3165,'PROJCS["NEA74 Noumea / Noumea Lambert",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3165,'EPSG',3165,'PROJCS["NEA74 Noumea / Noumea Lambert",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
 --- EPSG 3166 : NEA74 Noumea / Noumea Lambert 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3166,'EPSG',3166,'PROJCS["NEA74 Noumea / Noumea Lambert 2",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3166,'EPSG',3166,'PROJCS["NEA74 Noumea / Noumea Lambert 2",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],PROJECTION["Lambert_Conformal_Con [...]
 ---
 --- EPSG 3167 : Kertau (RSO) / RSO Malaya (ch)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3167,'EPSG',3167,'PROJCS["Kertau (RSO) / RSO Malaya (ch)",GEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]],UNIT["British chain (Sears 1922 truncated)",20.116756,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3167,'EPSG',3167,'PROJCS["Kertau (RSO) / RSO Malaya (ch)",GEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_ [...]
 ---
 --- EPSG 3168 : Kertau (RSO) / RSO Malaya (m)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3168,'EPSG',3168,'PROJCS["Kertau (RSO) / RSO Malaya (m)",GEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Ob [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3168,'EPSG',3168,'PROJCS["Kertau (RSO) / RSO Malaya (m)",GEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_c [...]
 ---
 --- EPSG 3169 : RGNC91-93 / UTM zone 57S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3169,'EPSG',3169,'PROJCS["RGNC91-93 / UTM zone 57S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3169,'EPSG',3169,'PROJCS["RGNC91-93 / UTM zone 57S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 3170 : RGNC91-93 / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3170,'EPSG',3170,'PROJCS["RGNC91-93 / UTM zone 58S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3170,'EPSG',3170,'PROJCS["RGNC91-93 / UTM zone 58S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 3171 : RGNC91-93 / UTM zone 59S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3171,'EPSG',3171,'PROJCS["RGNC91-93 / UTM zone 59S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3171,'EPSG',3171,'PROJCS["RGNC91-93 / UTM zone 59S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 3172 : IGN53 Mare / UTM zone 59S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3172,'EPSG',3172,'PROJCS["IGN53 Mare / UTM zone 59S",GEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[287.58,177.78,-135.41,0,0,0,0],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3172,'EPSG',3172,'PROJCS["IGN53 Mare / UTM zone 59S",GEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[287.58,177.78,-135.41,0,0,0,0],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 3173 : fk89 / Faroe Lambert FK89
 ---
@@ -6510,487 +6562,487 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 3174 : NAD83 / Great Lakes Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3174,'EPSG',3174,'PROJCS["NAD83 / Great Lakes Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3174,'EPSG',3174,'PROJCS["NAD83 / Great Lakes Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER[ [...]
 ---
 --- EPSG 3175 : NAD83 / Great Lakes and St Lawrence Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3175,'EPSG',3175,'PROJCS["NAD83 / Great Lakes and St Lawrence Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3175,'EPSG',3175,'PROJCS["NAD83 / Great Lakes and St Lawrence Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_A [...]
 ---
 --- EPSG 3176 : Indian 1960 / TM 106 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3176,'EPSG',3176,'PROJCS["Indian 1960 / TM 106 NE",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3176,'EPSG',3176,'PROJCS["Indian 1960 / TM 106 NE",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],PROJECTION["Transverse_Mercator" [...]
 ---
 --- EPSG 3177 : LGD2006 / Libya TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3177,'EPSG',3177,'PROJCS["LGD2006 / Libya TM",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3177,'EPSG',3177,'PROJCS["LGD2006 / Libya TM",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 3178 : GR96 / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3178,'EPSG',3178,'PROJCS["GR96 / UTM zone 18N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3178,'EPSG',3178,'PROJCS["GR96 / UTM zone 18N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3179 : GR96 / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3179,'EPSG',3179,'PROJCS["GR96 / UTM zone 19N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3179,'EPSG',3179,'PROJCS["GR96 / UTM zone 19N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3180 : GR96 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3180,'EPSG',3180,'PROJCS["GR96 / UTM zone 20N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3180,'EPSG',3180,'PROJCS["GR96 / UTM zone 20N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3181 : GR96 / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3181,'EPSG',3181,'PROJCS["GR96 / UTM zone 21N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3181,'EPSG',3181,'PROJCS["GR96 / UTM zone 21N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3182 : GR96 / UTM zone 22N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3182,'EPSG',3182,'PROJCS["GR96 / UTM zone 22N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3182,'EPSG',3182,'PROJCS["GR96 / UTM zone 22N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3183 : GR96 / UTM zone 23N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3183,'EPSG',3183,'PROJCS["GR96 / UTM zone 23N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3183,'EPSG',3183,'PROJCS["GR96 / UTM zone 23N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3184 : GR96 / UTM zone 24N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3184,'EPSG',3184,'PROJCS["GR96 / UTM zone 24N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3184,'EPSG',3184,'PROJCS["GR96 / UTM zone 24N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3185 : GR96 / UTM zone 25N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3185,'EPSG',3185,'PROJCS["GR96 / UTM zone 25N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3185,'EPSG',3185,'PROJCS["GR96 / UTM zone 25N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3186 : GR96 / UTM zone 26N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3186,'EPSG',3186,'PROJCS["GR96 / UTM zone 26N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3186,'EPSG',3186,'PROJCS["GR96 / UTM zone 26N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3187 : GR96 / UTM zone 27N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3187,'EPSG',3187,'PROJCS["GR96 / UTM zone 27N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3187,'EPSG',3187,'PROJCS["GR96 / UTM zone 27N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3188 : GR96 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3188,'EPSG',3188,'PROJCS["GR96 / UTM zone 28N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3188,'EPSG',3188,'PROJCS["GR96 / UTM zone 28N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3189 : GR96 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3189,'EPSG',3189,'PROJCS["GR96 / UTM zone 29N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3189,'EPSG',3189,'PROJCS["GR96 / UTM zone 29N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
 --- EPSG 3190 : LGD2006 / Libya TM zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3190,'EPSG',3190,'PROJCS["LGD2006 / Libya TM zone 5",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3190,'EPSG',3190,'PROJCS["LGD2006 / Libya TM zone 5",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 3191 : LGD2006 / Libya TM zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3191,'EPSG',3191,'PROJCS["LGD2006 / Libya TM zone 6",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3191,'EPSG',3191,'PROJCS["LGD2006 / Libya TM zone 6",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 3192 : LGD2006 / Libya TM zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3192,'EPSG',3192,'PROJCS["LGD2006 / Libya TM zone 7",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3192,'EPSG',3192,'PROJCS["LGD2006 / Libya TM zone 7",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 3193 : LGD2006 / Libya TM zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3193,'EPSG',3193,'PROJCS["LGD2006 / Libya TM zone 8",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3193,'EPSG',3193,'PROJCS["LGD2006 / Libya TM zone 8",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 3194 : LGD2006 / Libya TM zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3194,'EPSG',3194,'PROJCS["LGD2006 / Libya TM zone 9",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3194,'EPSG',3194,'PROJCS["LGD2006 / Libya TM zone 9",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_M [...]
 ---
 --- EPSG 3195 : LGD2006 / Libya TM zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3195,'EPSG',3195,'PROJCS["LGD2006 / Libya TM zone 10",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3195,'EPSG',3195,'PROJCS["LGD2006 / Libya TM zone 10",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 3196 : LGD2006 / Libya TM zone 11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3196,'EPSG',3196,'PROJCS["LGD2006 / Libya TM zone 11",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3196,'EPSG',3196,'PROJCS["LGD2006 / Libya TM zone 11",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 3197 : LGD2006 / Libya TM zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3197,'EPSG',3197,'PROJCS["LGD2006 / Libya TM zone 12",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3197,'EPSG',3197,'PROJCS["LGD2006 / Libya TM zone 12",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 3198 : LGD2006 / Libya TM zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3198,'EPSG',3198,'PROJCS["LGD2006 / Libya TM zone 13",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3198,'EPSG',3198,'PROJCS["LGD2006 / Libya TM zone 13",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 3199 : LGD2006 / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3199,'EPSG',3199,'PROJCS["LGD2006 / UTM zone 32N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3199,'EPSG',3199,'PROJCS["LGD2006 / UTM zone 32N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 3200 : FD58 / Iraq zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3200,'EPSG',3200,'PROJCS["FD58 / Iraq zone",GEOGCS["FD58",DATUM["Final_Datum_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-239.1,-170.02,397.5,0,0,0,0],AUTHORITY["EPSG","6132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4132"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3200,'EPSG',3200,'PROJCS["FD58 / Iraq zone",GEOGCS["FD58",DATUM["Final_Datum_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-241.54,-163.64,396.06,0,0,0,0],AUTHORITY["EPSG","6132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4132"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PA [...]
 ---
 --- EPSG 3201 : LGD2006 / UTM zone 33N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3201,'EPSG',3201,'PROJCS["LGD2006 / UTM zone 33N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3201,'EPSG',3201,'PROJCS["LGD2006 / UTM zone 33N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 3202 : LGD2006 / UTM zone 34N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3202,'EPSG',3202,'PROJCS["LGD2006 / UTM zone 34N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3202,'EPSG',3202,'PROJCS["LGD2006 / UTM zone 34N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 3203 : LGD2006 / UTM zone 35N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3203,'EPSG',3203,'PROJCS["LGD2006 / UTM zone 35N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3203,'EPSG',3203,'PROJCS["LGD2006 / UTM zone 35N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 3204 : WGS 84 / SCAR IMW SP19-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3204,'EPSG',3204,'PROJCS["WGS 84 / SCAR IMW SP19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3204,'EPSG',3204,'PROJCS["WGS 84 / SCAR IMW SP19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-60.666666666666 [...]
 ---
 --- EPSG 3205 : WGS 84 / SCAR IMW SP21-22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3205,'EPSG',3205,'PROJCS["WGS 84 / SCAR IMW SP21-22",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3205,'EPSG',3205,'PROJCS["WGS 84 / SCAR IMW SP21-22",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-60.666666666666 [...]
 ---
 --- EPSG 3206 : WGS 84 / SCAR IMW SP23-24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3206,'EPSG',3206,'PROJCS["WGS 84 / SCAR IMW SP23-24",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3206,'EPSG',3206,'PROJCS["WGS 84 / SCAR IMW SP23-24",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-60.666666666666 [...]
 ---
 --- EPSG 3207 : WGS 84 / SCAR IMW SQ01-02
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3207,'EPSG',3207,'PROJCS["WGS 84 / SCAR IMW SQ01-02",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3207,'EPSG',3207,'PROJCS["WGS 84 / SCAR IMW SQ01-02",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3208 : WGS 84 / SCAR IMW SQ19-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3208,'EPSG',3208,'PROJCS["WGS 84 / SCAR IMW SQ19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3208,'EPSG',3208,'PROJCS["WGS 84 / SCAR IMW SQ19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3209 : WGS 84 / SCAR IMW SQ21-22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3209,'EPSG',3209,'PROJCS["WGS 84 / SCAR IMW SQ21-22",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3209,'EPSG',3209,'PROJCS["WGS 84 / SCAR IMW SQ21-22",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3210 : WGS 84 / SCAR IMW SQ37-38
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3210,'EPSG',3210,'PROJCS["WGS 84 / SCAR IMW SQ37-38",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3210,'EPSG',3210,'PROJCS["WGS 84 / SCAR IMW SQ37-38",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3211 : WGS 84 / SCAR IMW SQ39-40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3211,'EPSG',3211,'PROJCS["WGS 84 / SCAR IMW SQ39-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3211,'EPSG',3211,'PROJCS["WGS 84 / SCAR IMW SQ39-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3212 : WGS 84 / SCAR IMW SQ41-42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3212,'EPSG',3212,'PROJCS["WGS 84 / SCAR IMW SQ41-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3212,'EPSG',3212,'PROJCS["WGS 84 / SCAR IMW SQ41-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3213 : WGS 84 / SCAR IMW SQ43-44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3213,'EPSG',3213,'PROJCS["WGS 84 / SCAR IMW SQ43-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3213,'EPSG',3213,'PROJCS["WGS 84 / SCAR IMW SQ43-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3214 : WGS 84 / SCAR IMW SQ45-46
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3214,'EPSG',3214,'PROJCS["WGS 84 / SCAR IMW SQ45-46",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3214,'EPSG',3214,'PROJCS["WGS 84 / SCAR IMW SQ45-46",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3215 : WGS 84 / SCAR IMW SQ47-48
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3215,'EPSG',3215,'PROJCS["WGS 84 / SCAR IMW SQ47-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3215,'EPSG',3215,'PROJCS["WGS 84 / SCAR IMW SQ47-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3216 : WGS 84 / SCAR IMW SQ49-50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3216,'EPSG',3216,'PROJCS["WGS 84 / SCAR IMW SQ49-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3216,'EPSG',3216,'PROJCS["WGS 84 / SCAR IMW SQ49-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3217 : WGS 84 / SCAR IMW SQ51-52
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3217,'EPSG',3217,'PROJCS["WGS 84 / SCAR IMW SQ51-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3217,'EPSG',3217,'PROJCS["WGS 84 / SCAR IMW SQ51-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3218 : WGS 84 / SCAR IMW SQ53-54
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3218,'EPSG',3218,'PROJCS["WGS 84 / SCAR IMW SQ53-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3218,'EPSG',3218,'PROJCS["WGS 84 / SCAR IMW SQ53-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3219 : WGS 84 / SCAR IMW SQ55-56
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3219,'EPSG',3219,'PROJCS["WGS 84 / SCAR IMW SQ55-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3219,'EPSG',3219,'PROJCS["WGS 84 / SCAR IMW SQ55-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3220 : WGS 84 / SCAR IMW SQ57-58
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3220,'EPSG',3220,'PROJCS["WGS 84 / SCAR IMW SQ57-58",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3220,'EPSG',3220,'PROJCS["WGS 84 / SCAR IMW SQ57-58",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.666666666666 [...]
 ---
 --- EPSG 3221 : WGS 84 / SCAR IMW SR13-14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3221,'EPSG',3221,'PROJCS["WGS 84 / SCAR IMW SR13-14",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3221,'EPSG',3221,'PROJCS["WGS 84 / SCAR IMW SR13-14",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3222 : WGS 84 / SCAR IMW SR15-16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3222,'EPSG',3222,'PROJCS["WGS 84 / SCAR IMW SR15-16",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3222,'EPSG',3222,'PROJCS["WGS 84 / SCAR IMW SR15-16",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3223 : WGS 84 / SCAR IMW SR17-18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3223,'EPSG',3223,'PROJCS["WGS 84 / SCAR IMW SR17-18",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3223,'EPSG',3223,'PROJCS["WGS 84 / SCAR IMW SR17-18",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3224 : WGS 84 / SCAR IMW SR19-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3224,'EPSG',3224,'PROJCS["WGS 84 / SCAR IMW SR19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3224,'EPSG',3224,'PROJCS["WGS 84 / SCAR IMW SR19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3225 : WGS 84 / SCAR IMW SR27-28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3225,'EPSG',3225,'PROJCS["WGS 84 / SCAR IMW SR27-28",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3225,'EPSG',3225,'PROJCS["WGS 84 / SCAR IMW SR27-28",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3226 : WGS 84 / SCAR IMW SR29-30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3226,'EPSG',3226,'PROJCS["WGS 84 / SCAR IMW SR29-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3226,'EPSG',3226,'PROJCS["WGS 84 / SCAR IMW SR29-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3227 : WGS 84 / SCAR IMW SR31-32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3227,'EPSG',3227,'PROJCS["WGS 84 / SCAR IMW SR31-32",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3227,'EPSG',3227,'PROJCS["WGS 84 / SCAR IMW SR31-32",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3228 : WGS 84 / SCAR IMW SR33-34
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3228,'EPSG',3228,'PROJCS["WGS 84 / SCAR IMW SR33-34",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3228,'EPSG',3228,'PROJCS["WGS 84 / SCAR IMW SR33-34",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3229 : WGS 84 / SCAR IMW SR35-36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3229,'EPSG',3229,'PROJCS["WGS 84 / SCAR IMW SR35-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3229,'EPSG',3229,'PROJCS["WGS 84 / SCAR IMW SR35-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3230 : WGS 84 / SCAR IMW SR37-38
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3230,'EPSG',3230,'PROJCS["WGS 84 / SCAR IMW SR37-38",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3230,'EPSG',3230,'PROJCS["WGS 84 / SCAR IMW SR37-38",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3231 : WGS 84 / SCAR IMW SR39-40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3231,'EPSG',3231,'PROJCS["WGS 84 / SCAR IMW SR39-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3231,'EPSG',3231,'PROJCS["WGS 84 / SCAR IMW SR39-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3232 : WGS 84 / SCAR IMW SR41-42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3232,'EPSG',3232,'PROJCS["WGS 84 / SCAR IMW SR41-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3232,'EPSG',3232,'PROJCS["WGS 84 / SCAR IMW SR41-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3233 : WGS 84 / SCAR IMW SR43-44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3233,'EPSG',3233,'PROJCS["WGS 84 / SCAR IMW SR43-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3233,'EPSG',3233,'PROJCS["WGS 84 / SCAR IMW SR43-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3234 : WGS 84 / SCAR IMW SR45-46
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3234,'EPSG',3234,'PROJCS["WGS 84 / SCAR IMW SR45-46",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3234,'EPSG',3234,'PROJCS["WGS 84 / SCAR IMW SR45-46",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3235 : WGS 84 / SCAR IMW SR47-48
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3235,'EPSG',3235,'PROJCS["WGS 84 / SCAR IMW SR47-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3235,'EPSG',3235,'PROJCS["WGS 84 / SCAR IMW SR47-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3236 : WGS 84 / SCAR IMW SR49-50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3236,'EPSG',3236,'PROJCS["WGS 84 / SCAR IMW SR49-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3236,'EPSG',3236,'PROJCS["WGS 84 / SCAR IMW SR49-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3237 : WGS 84 / SCAR IMW SR51-52
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3237,'EPSG',3237,'PROJCS["WGS 84 / SCAR IMW SR51-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3237,'EPSG',3237,'PROJCS["WGS 84 / SCAR IMW SR51-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3238 : WGS 84 / SCAR IMW SR53-54
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3238,'EPSG',3238,'PROJCS["WGS 84 / SCAR IMW SR53-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3238,'EPSG',3238,'PROJCS["WGS 84 / SCAR IMW SR53-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3239 : WGS 84 / SCAR IMW SR55-56
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3239,'EPSG',3239,'PROJCS["WGS 84 / SCAR IMW SR55-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3239,'EPSG',3239,'PROJCS["WGS 84 / SCAR IMW SR55-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3240 : WGS 84 / SCAR IMW SR57-58
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3240,'EPSG',3240,'PROJCS["WGS 84 / SCAR IMW SR57-58",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3240,'EPSG',3240,'PROJCS["WGS 84 / SCAR IMW SR57-58",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3241 : WGS 84 / SCAR IMW SR59-60
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3241,'EPSG',3241,'PROJCS["WGS 84 / SCAR IMW SR59-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3241,'EPSG',3241,'PROJCS["WGS 84 / SCAR IMW SR59-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.666666666666 [...]
 ---
 --- EPSG 3242 : WGS 84 / SCAR IMW SS04-06
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3242,'EPSG',3242,'PROJCS["WGS 84 / SCAR IMW SS04-06",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3242,'EPSG',3242,'PROJCS["WGS 84 / SCAR IMW SS04-06",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3243 : WGS 84 / SCAR IMW SS07-09
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3243,'EPSG',3243,'PROJCS["WGS 84 / SCAR IMW SS07-09",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3243,'EPSG',3243,'PROJCS["WGS 84 / SCAR IMW SS07-09",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3244 : WGS 84 / SCAR IMW SS10-12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3244,'EPSG',3244,'PROJCS["WGS 84 / SCAR IMW SS10-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3244,'EPSG',3244,'PROJCS["WGS 84 / SCAR IMW SS10-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3245 : WGS 84 / SCAR IMW SS13-15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3245,'EPSG',3245,'PROJCS["WGS 84 / SCAR IMW SS13-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3245,'EPSG',3245,'PROJCS["WGS 84 / SCAR IMW SS13-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3246 : WGS 84 / SCAR IMW SS16-18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3246,'EPSG',3246,'PROJCS["WGS 84 / SCAR IMW SS16-18",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3246,'EPSG',3246,'PROJCS["WGS 84 / SCAR IMW SS16-18",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3247 : WGS 84 / SCAR IMW SS19-21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3247,'EPSG',3247,'PROJCS["WGS 84 / SCAR IMW SS19-21",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3247,'EPSG',3247,'PROJCS["WGS 84 / SCAR IMW SS19-21",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3248 : WGS 84 / SCAR IMW SS25-27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3248,'EPSG',3248,'PROJCS["WGS 84 / SCAR IMW SS25-27",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3248,'EPSG',3248,'PROJCS["WGS 84 / SCAR IMW SS25-27",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3249 : WGS 84 / SCAR IMW SS28-30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3249,'EPSG',3249,'PROJCS["WGS 84 / SCAR IMW SS28-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3249,'EPSG',3249,'PROJCS["WGS 84 / SCAR IMW SS28-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3250 : WGS 84 / SCAR IMW SS31-33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3250,'EPSG',3250,'PROJCS["WGS 84 / SCAR IMW SS31-33",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3250,'EPSG',3250,'PROJCS["WGS 84 / SCAR IMW SS31-33",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3251 : WGS 84 / SCAR IMW SS34-36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3251,'EPSG',3251,'PROJCS["WGS 84 / SCAR IMW SS34-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3251,'EPSG',3251,'PROJCS["WGS 84 / SCAR IMW SS34-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3252 : WGS 84 / SCAR IMW SS37-39
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3252,'EPSG',3252,'PROJCS["WGS 84 / SCAR IMW SS37-39",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3252,'EPSG',3252,'PROJCS["WGS 84 / SCAR IMW SS37-39",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3253 : WGS 84 / SCAR IMW SS40-42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3253,'EPSG',3253,'PROJCS["WGS 84 / SCAR IMW SS40-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3253,'EPSG',3253,'PROJCS["WGS 84 / SCAR IMW SS40-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3254 : WGS 84 / SCAR IMW SS43-45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3254,'EPSG',3254,'PROJCS["WGS 84 / SCAR IMW SS43-45",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3254,'EPSG',3254,'PROJCS["WGS 84 / SCAR IMW SS43-45",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3255 : WGS 84 / SCAR IMW SS46-48
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3255,'EPSG',3255,'PROJCS["WGS 84 / SCAR IMW SS46-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3255,'EPSG',3255,'PROJCS["WGS 84 / SCAR IMW SS46-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3256 : WGS 84 / SCAR IMW SS49-51
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3256,'EPSG',3256,'PROJCS["WGS 84 / SCAR IMW SS49-51",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3256,'EPSG',3256,'PROJCS["WGS 84 / SCAR IMW SS49-51",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3257 : WGS 84 / SCAR IMW SS52-54
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3257,'EPSG',3257,'PROJCS["WGS 84 / SCAR IMW SS52-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3257,'EPSG',3257,'PROJCS["WGS 84 / SCAR IMW SS52-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3258 : WGS 84 / SCAR IMW SS55-57
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3258,'EPSG',3258,'PROJCS["WGS 84 / SCAR IMW SS55-57",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3258,'EPSG',3258,'PROJCS["WGS 84 / SCAR IMW SS55-57",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3259 : WGS 84 / SCAR IMW SS58-60
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3259,'EPSG',3259,'PROJCS["WGS 84 / SCAR IMW SS58-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3259,'EPSG',3259,'PROJCS["WGS 84 / SCAR IMW SS58-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.666666666666 [...]
 ---
 --- EPSG 3260 : WGS 84 / SCAR IMW ST01-04
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3260,'EPSG',3260,'PROJCS["WGS 84 / SCAR IMW ST01-04",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3260,'EPSG',3260,'PROJCS["WGS 84 / SCAR IMW ST01-04",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3261 : WGS 84 / SCAR IMW ST05-08
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3261,'EPSG',3261,'PROJCS["WGS 84 / SCAR IMW ST05-08",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3261,'EPSG',3261,'PROJCS["WGS 84 / SCAR IMW ST05-08",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3262 : WGS 84 / SCAR IMW ST09-12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3262,'EPSG',3262,'PROJCS["WGS 84 / SCAR IMW ST09-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3262,'EPSG',3262,'PROJCS["WGS 84 / SCAR IMW ST09-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3263 : WGS 84 / SCAR IMW ST13-16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3263,'EPSG',3263,'PROJCS["WGS 84 / SCAR IMW ST13-16",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3263,'EPSG',3263,'PROJCS["WGS 84 / SCAR IMW ST13-16",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3264 : WGS 84 / SCAR IMW ST17-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3264,'EPSG',3264,'PROJCS["WGS 84 / SCAR IMW ST17-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3264,'EPSG',3264,'PROJCS["WGS 84 / SCAR IMW ST17-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3265 : WGS 84 / SCAR IMW ST21-24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3265,'EPSG',3265,'PROJCS["WGS 84 / SCAR IMW ST21-24",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3265,'EPSG',3265,'PROJCS["WGS 84 / SCAR IMW ST21-24",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3266 : WGS 84 / SCAR IMW ST25-28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3266,'EPSG',3266,'PROJCS["WGS 84 / SCAR IMW ST25-28",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3266,'EPSG',3266,'PROJCS["WGS 84 / SCAR IMW ST25-28",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3267 : WGS 84 / SCAR IMW ST29-32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3267,'EPSG',3267,'PROJCS["WGS 84 / SCAR IMW ST29-32",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3267,'EPSG',3267,'PROJCS["WGS 84 / SCAR IMW ST29-32",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3268 : WGS 84 / SCAR IMW ST33-36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3268,'EPSG',3268,'PROJCS["WGS 84 / SCAR IMW ST33-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3268,'EPSG',3268,'PROJCS["WGS 84 / SCAR IMW ST33-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3269 : WGS 84 / SCAR IMW ST37-40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3269,'EPSG',3269,'PROJCS["WGS 84 / SCAR IMW ST37-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3269,'EPSG',3269,'PROJCS["WGS 84 / SCAR IMW ST37-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3270 : WGS 84 / SCAR IMW ST41-44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3270,'EPSG',3270,'PROJCS["WGS 84 / SCAR IMW ST41-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3270,'EPSG',3270,'PROJCS["WGS 84 / SCAR IMW ST41-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3271 : WGS 84 / SCAR IMW ST45-48
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3271,'EPSG',3271,'PROJCS["WGS 84 / SCAR IMW ST45-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3271,'EPSG',3271,'PROJCS["WGS 84 / SCAR IMW ST45-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3272 : WGS 84 / SCAR IMW ST49-52
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3272,'EPSG',3272,'PROJCS["WGS 84 / SCAR IMW ST49-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3272,'EPSG',3272,'PROJCS["WGS 84 / SCAR IMW ST49-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3273 : WGS 84 / SCAR IMW ST53-56
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3273,'EPSG',3273,'PROJCS["WGS 84 / SCAR IMW ST53-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3273,'EPSG',3273,'PROJCS["WGS 84 / SCAR IMW ST53-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3274 : WGS 84 / SCAR IMW ST57-60
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3274,'EPSG',3274,'PROJCS["WGS 84 / SCAR IMW ST57-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3274,'EPSG',3274,'PROJCS["WGS 84 / SCAR IMW ST57-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.666666666666 [...]
 ---
 --- EPSG 3275 : WGS 84 / SCAR IMW SU01-05
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3275,'EPSG',3275,'PROJCS["WGS 84 / SCAR IMW SU01-05",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3275,'EPSG',3275,'PROJCS["WGS 84 / SCAR IMW SU01-05",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3276 : WGS 84 / SCAR IMW SU06-10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3276,'EPSG',3276,'PROJCS["WGS 84 / SCAR IMW SU06-10",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3276,'EPSG',3276,'PROJCS["WGS 84 / SCAR IMW SU06-10",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3277 : WGS 84 / SCAR IMW SU11-15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3277,'EPSG',3277,'PROJCS["WGS 84 / SCAR IMW SU11-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3277,'EPSG',3277,'PROJCS["WGS 84 / SCAR IMW SU11-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3278 : WGS 84 / SCAR IMW SU16-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3278,'EPSG',3278,'PROJCS["WGS 84 / SCAR IMW SU16-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3278,'EPSG',3278,'PROJCS["WGS 84 / SCAR IMW SU16-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3279 : WGS 84 / SCAR IMW SU21-25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3279,'EPSG',3279,'PROJCS["WGS 84 / SCAR IMW SU21-25",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3279,'EPSG',3279,'PROJCS["WGS 84 / SCAR IMW SU21-25",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3280 : WGS 84 / SCAR IMW SU26-30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3280,'EPSG',3280,'PROJCS["WGS 84 / SCAR IMW SU26-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3280,'EPSG',3280,'PROJCS["WGS 84 / SCAR IMW SU26-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3281 : WGS 84 / SCAR IMW SU31-35
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3281,'EPSG',3281,'PROJCS["WGS 84 / SCAR IMW SU31-35",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3281,'EPSG',3281,'PROJCS["WGS 84 / SCAR IMW SU31-35",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3282 : WGS 84 / SCAR IMW SU36-40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3282,'EPSG',3282,'PROJCS["WGS 84 / SCAR IMW SU36-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3282,'EPSG',3282,'PROJCS["WGS 84 / SCAR IMW SU36-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3283 : WGS 84 / SCAR IMW SU41-45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3283,'EPSG',3283,'PROJCS["WGS 84 / SCAR IMW SU41-45",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3283,'EPSG',3283,'PROJCS["WGS 84 / SCAR IMW SU41-45",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3284 : WGS 84 / SCAR IMW SU46-50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3284,'EPSG',3284,'PROJCS["WGS 84 / SCAR IMW SU46-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3284,'EPSG',3284,'PROJCS["WGS 84 / SCAR IMW SU46-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3285 : WGS 84 / SCAR IMW SU51-55
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3285,'EPSG',3285,'PROJCS["WGS 84 / SCAR IMW SU51-55",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3285,'EPSG',3285,'PROJCS["WGS 84 / SCAR IMW SU51-55",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3286 : WGS 84 / SCAR IMW SU56-60
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3286,'EPSG',3286,'PROJCS["WGS 84 / SCAR IMW SU56-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3286,'EPSG',3286,'PROJCS["WGS 84 / SCAR IMW SU56-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3287 : WGS 84 / SCAR IMW SV01-10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3287,'EPSG',3287,'PROJCS["WGS 84 / SCAR IMW SV01-10",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3287,'EPSG',3287,'PROJCS["WGS 84 / SCAR IMW SV01-10",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3288 : WGS 84 / SCAR IMW SV11-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3288,'EPSG',3288,'PROJCS["WGS 84 / SCAR IMW SV11-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3288,'EPSG',3288,'PROJCS["WGS 84 / SCAR IMW SV11-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3289 : WGS 84 / SCAR IMW SV21-30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3289,'EPSG',3289,'PROJCS["WGS 84 / SCAR IMW SV21-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3289,'EPSG',3289,'PROJCS["WGS 84 / SCAR IMW SV21-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3290 : WGS 84 / SCAR IMW SV31-40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3290,'EPSG',3290,'PROJCS["WGS 84 / SCAR IMW SV31-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3290,'EPSG',3290,'PROJCS["WGS 84 / SCAR IMW SV31-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3291 : WGS 84 / SCAR IMW SV41-50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3291,'EPSG',3291,'PROJCS["WGS 84 / SCAR IMW SV41-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3291,'EPSG',3291,'PROJCS["WGS 84 / SCAR IMW SV41-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3292 : WGS 84 / SCAR IMW SV51-60
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3292,'EPSG',3292,'PROJCS["WGS 84 / SCAR IMW SV51-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3292,'EPSG',3292,'PROJCS["WGS 84 / SCAR IMW SV51-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3293 : WGS 84 / SCAR IMW SW01-60
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3293,'EPSG',3293,'PROJCS["WGS 84 / SCAR IMW SW01-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["lati [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3293,'EPSG',3293,'PROJCS["WGS 84 / SCAR IMW SW01-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAM [...]
 ---
 --- EPSG 3294 : WGS 84 / USGS Transantarctic Mountains
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3294,'EPSG',3294,'PROJCS["WGS 84 / USGS Transantarctic Mountains",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3294,'EPSG',3294,'PROJCS["WGS 84 / USGS Transantarctic Mountains",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76 [...]
 ---
 --- EPSG 3295 : Guam 1963 / Yap Islands
 ---
@@ -6998,2351 +7050,2351 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 3296 : RGPF / UTM zone 5S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3296,'EPSG',3296,'PROJCS["RGPF / UTM zone 5S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3296,'EPSG',3296,'PROJCS["RGPF / UTM zone 5S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],PRO [...]
 ---
 --- EPSG 3297 : RGPF / UTM zone 6S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3297,'EPSG',3297,'PROJCS["RGPF / UTM zone 6S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3297,'EPSG',3297,'PROJCS["RGPF / UTM zone 6S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],PRO [...]
 ---
 --- EPSG 3298 : RGPF / UTM zone 7S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3298,'EPSG',3298,'PROJCS["RGPF / UTM zone 7S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3298,'EPSG',3298,'PROJCS["RGPF / UTM zone 7S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],PRO [...]
 ---
 --- EPSG 3299 : RGPF / UTM zone 8S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3299,'EPSG',3299,'PROJCS["RGPF / UTM zone 8S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3299,'EPSG',3299,'PROJCS["RGPF / UTM zone 8S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],PRO [...]
 ---
 --- EPSG 3300 : Estonian Coordinate System of 1992
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3300,'EPSG',3300,'PROJCS["Estonian Coordinate System of 1992",GEOGCS["EST92",DATUM["Estonia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014],AUTHORITY["EPSG","6133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4133"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3300,'EPSG',3300,'PROJCS["Estonian Coordinate System of 1992",GEOGCS["EST92",DATUM["Estonia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014],AUTHORITY["EPSG","6133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4133"]],PROJECTION["Lamber [...]
 ---
 --- EPSG 3301 : Estonian Coordinate System of 1997
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3301,'EPSG',3301,'PROJCS["Estonian Coordinate System of 1997",GEOGCS["EST97",DATUM["Estonia_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6180"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4180"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3301,'EPSG',3301,'PROJCS["Estonian Coordinate System of 1997",GEOGCS["EST97",DATUM["Estonia_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6180"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4180"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[" [...]
 ---
 --- EPSG 3302 : IGN63 Hiva Oa / UTM zone 7S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3302,'EPSG',3302,'PROJCS["IGN63 Hiva Oa / UTM zone 7S",GEOGCS["IGN63 Hiva Oa",DATUM["IGN63_Hiva_Oa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[410.721,55.049,80.746,2.5779,2.3514,0.6664,17.3311],AUTHORITY["EPSG","6689"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4689"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3302,'EPSG',3302,'PROJCS["IGN63 Hiva Oa / UTM zone 7S",GEOGCS["IGN63 Hiva Oa",DATUM["IGN63_Hiva_Oa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[410.721,55.049,80.746,2.5779,2.3514,0.6664,17.3311],AUTHORITY["EPSG","6689"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4689"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3303 : Fatu Iva 72 / UTM zone 7S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3303,'EPSG',3303,'PROJCS["Fatu Iva 72 / UTM zone 7S",GEOGCS["Fatu Iva 72",DATUM["Fatu_Iva_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074],AUTHORITY["EPSG","6688"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4688"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3303,'EPSG',3303,'PROJCS["Fatu Iva 72 / UTM zone 7S",GEOGCS["Fatu Iva 72",DATUM["Fatu_Iva_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[347.103,1078.125,2623.922,-33.8875,70.6773,-9.3943,186.074],AUTHORITY["EPSG","6688"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4688"]],PROJECTION[" [...]
 ---
 --- EPSG 3304 : Tahiti 79 / UTM zone 6S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3304,'EPSG',3304,'PROJCS["Tahiti 79 / UTM zone 6S",GEOGCS["Tahiti 79",DATUM["Tahiti_79",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6690"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4690"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3304,'EPSG',3304,'PROJCS["Tahiti 79 / UTM zone 6S",GEOGCS["Tahiti 79",DATUM["Tahiti_79",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[221.525,152.948,176.768,-2.3847,-1.3896,-0.877,11.4741],AUTHORITY["EPSG","6690"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4690"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 3305 : Moorea 87 / UTM zone 6S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3305,'EPSG',3305,'PROJCS["Moorea 87 / UTM zone 6S",GEOGCS["Moorea 87",DATUM["Moorea_87",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773],AUTHORITY["EPSG","6691"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4691"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3305,'EPSG',3305,'PROJCS["Moorea 87 / UTM zone 6S",GEOGCS["Moorea 87",DATUM["Moorea_87",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773],AUTHORITY["EPSG","6691"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4691"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 3306 : Maupiti 83 / UTM zone 5S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3306,'EPSG',3306,'PROJCS["Maupiti 83 / UTM zone 5S",GEOGCS["Maupiti 83",DATUM["Maupiti_83",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[217.037,86.959,23.956,0,0,0,0],AUTHORITY["EPSG","6692"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4692"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3306,'EPSG',3306,'PROJCS["Maupiti 83 / UTM zone 5S",GEOGCS["Maupiti 83",DATUM["Maupiti_83",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[217.037,86.959,23.956,0,0,0,0],AUTHORITY["EPSG","6692"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4692"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3307 : Nakhl-e Ghanem / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3307,'EPSG',3307,'PROJCS["Nakhl-e Ghanem / UTM zone 39N",GEOGCS["Nakhl-e Ghanem",DATUM["Nakhl_e_Ghanem",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,-0.15,0.68,0,0,0,0],AUTHORITY["EPSG","6693"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4693"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3307,'EPSG',3307,'PROJCS["Nakhl-e Ghanem / UTM zone 39N",GEOGCS["Nakhl-e Ghanem",DATUM["Nakhl_e_Ghanem",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,-0.15,0.68,0,0,0,0],AUTHORITY["EPSG","6693"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4693"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 3308 : GDA94 / NSW Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3308,'EPSG',3308,'PROJCS["GDA94 / NSW Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3308,'EPSG',3308,'PROJCS["GDA94 / NSW Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
 --- EPSG 3309 : NAD27 / California Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3309,'EPSG',3309,'PROJCS["NAD27 / California Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Con [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3309,'EPSG',3309,'PROJCS["NAD27 / California Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_paral [...]
 ---
 --- EPSG 3310 : NAD83 / California Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3310,'EPSG',3310,'PROJCS["NAD83 / California Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3310,'EPSG',3310,'PROJCS["NAD83 / California Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER[" [...]
 ---
 --- EPSG 3311 : NAD83(HARN) / California Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3311,'EPSG',3311,'PROJCS["NAD83(HARN) / California Albers",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3311,'EPSG',3311,'PROJCS["NAD83(HARN) / California Albers",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Albers_Conic_ [...]
 ---
 --- EPSG 3312 : CSG67 / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3312,'EPSG',3312,'PROJCS["CSG67 / UTM zone 21N",GEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3312,'EPSG',3312,'PROJCS["CSG67 / UTM zone 21N",GEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3313 : RGFG95 / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3313,'EPSG',3313,'PROJCS["RGFG95 / UTM zone 21N",GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[2,2,-2,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3313,'EPSG',3313,'PROJCS["RGFG95 / UTM zone 21N",GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 3314 : Katanga 1955 / Katanga Lambert (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3314,'EPSG',3314,'PROJCS["Katanga 1955 / Katanga Lambert (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3314,'EPSG',3314,'PROJCS["Katanga 1955 / Katanga Lambert (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],PROJECTION [...]
 ---
 --- EPSG 3315 : Katanga 1955 / Katanga TM (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3315,'EPSG',3315,'PROJCS["Katanga 1955 / Katanga TM (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3315,'EPSG',3315,'PROJCS["Katanga 1955 / Katanga TM (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3316 : Kasai 1953 / Congo TM zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3316,'EPSG',3316,'PROJCS["Kasai 1953 / Congo TM zone 22",GEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercato [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3316,'EPSG',3316,'PROJCS["Kasai 1953 / Congo TM zone 22",GEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PAR [...]
 ---
 --- EPSG 3317 : Kasai 1953 / Congo TM zone 24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3317,'EPSG',3317,'PROJCS["Kasai 1953 / Congo TM zone 24",GEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercato [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3317,'EPSG',3317,'PROJCS["Kasai 1953 / Congo TM zone 24",GEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PAR [...]
 ---
 --- EPSG 3318 : IGC 1962 / Congo TM zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3318,'EPSG',3318,'PROJCS["IGC 1962 / Congo TM zone 12",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3318,'EPSG',3318,'PROJCS["IGC 1962 / Congo TM zone 12",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3319 : IGC 1962 / Congo TM zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3319,'EPSG',3319,'PROJCS["IGC 1962 / Congo TM zone 14",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3319,'EPSG',3319,'PROJCS["IGC 1962 / Congo TM zone 14",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3320 : IGC 1962 / Congo TM zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3320,'EPSG',3320,'PROJCS["IGC 1962 / Congo TM zone 16",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3320,'EPSG',3320,'PROJCS["IGC 1962 / Congo TM zone 16",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3321 : IGC 1962 / Congo TM zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3321,'EPSG',3321,'PROJCS["IGC 1962 / Congo TM zone 18",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3321,'EPSG',3321,'PROJCS["IGC 1962 / Congo TM zone 18",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3322 : IGC 1962 / Congo TM zone 20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3322,'EPSG',3322,'PROJCS["IGC 1962 / Congo TM zone 20",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3322,'EPSG',3322,'PROJCS["IGC 1962 / Congo TM zone 20",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3323 : IGC 1962 / Congo TM zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3323,'EPSG',3323,'PROJCS["IGC 1962 / Congo TM zone 22",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3323,'EPSG',3323,'PROJCS["IGC 1962 / Congo TM zone 22",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3324 : IGC 1962 / Congo TM zone 24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3324,'EPSG',3324,'PROJCS["IGC 1962 / Congo TM zone 24",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3324,'EPSG',3324,'PROJCS["IGC 1962 / Congo TM zone 24",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3325 : IGC 1962 / Congo TM zone 26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3325,'EPSG',3325,'PROJCS["IGC 1962 / Congo TM zone 26",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3325,'EPSG',3325,'PROJCS["IGC 1962 / Congo TM zone 26",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3326 : IGC 1962 / Congo TM zone 28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3326,'EPSG',3326,'PROJCS["IGC 1962 / Congo TM zone 28",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3326,'EPSG',3326,'PROJCS["IGC 1962 / Congo TM zone 28",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3327 : IGC 1962 / Congo TM zone 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3327,'EPSG',3327,'PROJCS["IGC 1962 / Congo TM zone 30",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3327,'EPSG',3327,'PROJCS["IGC 1962 / Congo TM zone 30",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3328 : Pulkovo 1942(58) / GUGiK-80
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3328,'EPSG',3328,'PROJCS["Pulkovo 1942(58) / GUGiK-80",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3328,'EPSG',3328,'PROJCS["Pulkovo 1942(58) / GUGiK-80",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJECTION["Obliq [...]
 ---
 --- EPSG 3329 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3329,'EPSG',3329,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3329,'EPSG',3329,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
 ---
 --- EPSG 3330 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3330,'EPSG',3330,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3330,'EPSG',3330,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
 ---
 --- EPSG 3331 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3331,'EPSG',3331,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3331,'EPSG',3331,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
 ---
 --- EPSG 3332 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3332,'EPSG',3332,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3332,'EPSG',3332,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
 ---
 --- EPSG 3333 : Pulkovo 1942(58) / Gauss-Kruger zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3333,'EPSG',3333,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3333,'EPSG',3333,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJEC [...]
 ---
 --- EPSG 3334 : Pulkovo 1942(58) / Gauss-Kruger zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3334,'EPSG',3334,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3334,'EPSG',3334,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJEC [...]
 ---
 --- EPSG 3335 : Pulkovo 1942(58) / Gauss-Kruger zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3335,'EPSG',3335,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3335,'EPSG',3335,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJEC [...]
 ---
 --- EPSG 3336 : IGN 1962 Kerguelen / UTM zone 42S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3336,'EPSG',3336,'PROJCS["IGN 1962 Kerguelen / UTM zone 42S",GEOGCS["IGN 1962 Kerguelen",DATUM["IGN_1962_Kerguelen",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6698"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4698"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3336,'EPSG',3336,'PROJCS["IGN 1962 Kerguelen / UTM zone 42S",GEOGCS["IGN 1962 Kerguelen",DATUM["IGN_1962_Kerguelen",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6698"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4698"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3337 : Le Pouce 1934 / Mauritius Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3337,'EPSG',3337,'PROJCS["Le Pouce 1934 / Mauritius Grid",GEOGCS["Le Pouce 1934",DATUM["Le_Pouce_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],AUTHORITY["EPSG","6699"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4699"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3337,'EPSG',3337,'PROJCS["Le Pouce 1934 / Mauritius Grid",GEOGCS["Le Pouce 1934",DATUM["Le_Pouce_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],AUTHORITY["EPSG","6699"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4699"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 3338 : NAD83 / Alaska Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3338,'EPSG',3338,'PROJCS["NAD83 / Alaska Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3338,'EPSG',3338,'PROJCS["NAD83 / Alaska Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["stan [...]
 ---
 --- EPSG 3339 : IGCB 1955 / Congo TM zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3339,'EPSG',3339,'PROJCS["IGCB 1955 / Congo TM zone 12",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3339,'EPSG',3339,'PROJCS["IGCB 1955 / Congo TM zone 12",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],PROJECT [...]
 ---
 --- EPSG 3340 : IGCB 1955 / Congo TM zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3340,'EPSG',3340,'PROJCS["IGCB 1955 / Congo TM zone 14",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3340,'EPSG',3340,'PROJCS["IGCB 1955 / Congo TM zone 14",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],PROJECT [...]
 ---
 --- EPSG 3341 : IGCB 1955 / Congo TM zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3341,'EPSG',3341,'PROJCS["IGCB 1955 / Congo TM zone 16",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3341,'EPSG',3341,'PROJCS["IGCB 1955 / Congo TM zone 16",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],PROJECT [...]
 ---
 --- EPSG 3342 : IGCB 1955 / UTM zone 33S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3342,'EPSG',3342,'PROJCS["IGCB 1955 / UTM zone 33S",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3342,'EPSG',3342,'PROJCS["IGCB 1955 / UTM zone 33S",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],PROJECTION[ [...]
 ---
 --- EPSG 3343 : Mauritania 1999 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3343,'EPSG',3343,'PROJCS["Mauritania 1999 / UTM zone 28N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3343,'EPSG',3343,'PROJCS["Mauritania 1999 / UTM zone 28N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3344 : Mauritania 1999 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3344,'EPSG',3344,'PROJCS["Mauritania 1999 / UTM zone 29N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3344,'EPSG',3344,'PROJCS["Mauritania 1999 / UTM zone 29N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3345 : Mauritania 1999 / UTM zone 30N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3345,'EPSG',3345,'PROJCS["Mauritania 1999 / UTM zone 30N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3345,'EPSG',3345,'PROJCS["Mauritania 1999 / UTM zone 30N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3346 : LKS94 / Lithuania TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3346,'EPSG',3346,'PROJCS["LKS94 / Lithuania TM",GEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Trans [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3346,'EPSG',3346,'PROJCS["LKS94 / Lithuania TM",GEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
 ---
 --- EPSG 3347 : NAD83 / Statistics Canada Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3347,'EPSG',3347,'PROJCS["NAD83 / Statistics Canada Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3347,'EPSG',3347,'PROJCS["NAD83 / Statistics Canada Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
 --- EPSG 3348 : NAD83(CSRS) / Statistics Canada Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3348,'EPSG',3348,'PROJCS["NAD83(CSRS) / Statistics Canada Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3348,'EPSG',3348,'PROJCS["NAD83(CSRS) / Statistics Canada Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lam [...]
 ---
 --- EPSG 3349 : WGS 84 / PDC Mercator (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3349,'EPSG',3349,'PROJCS["WGS 84 / PDC Mercator (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["ce [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3349,'EPSG',3349,'PROJCS["WGS 84 / PDC Mercator (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",-150],PARAMETER["scale_fa [...]
 ---
 --- EPSG 3350 : Pulkovo 1942 / CS63 zone C0
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3350,'EPSG',3350,'PROJCS["Pulkovo 1942 / CS63 zone C0",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3350,'EPSG',3350,'PROJCS["Pulkovo 1942 / CS63 zone C0",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3351 : Pulkovo 1942 / CS63 zone C1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3351,'EPSG',3351,'PROJCS["Pulkovo 1942 / CS63 zone C1",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3351,'EPSG',3351,'PROJCS["Pulkovo 1942 / CS63 zone C1",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3352 : Pulkovo 1942 / CS63 zone C2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3352,'EPSG',3352,'PROJCS["Pulkovo 1942 / CS63 zone C2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3352,'EPSG',3352,'PROJCS["Pulkovo 1942 / CS63 zone C2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3353 : Mhast (onshore) / UTM zone 32S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3353,'EPSG',3353,'PROJCS["Mhast (onshore) / UTM zone 32S",GEOGCS["Mhast (onshore)",DATUM["Mhast_onshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6704"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4704"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Merca [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3353,'EPSG',3353,'PROJCS["Mhast (onshore) / UTM zone 32S",GEOGCS["Mhast (onshore)",DATUM["Mhast_onshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6704"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4704"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],P [...]
 ---
 --- EPSG 3354 : Mhast (offshore) / UTM zone 32S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3354,'EPSG',3354,'PROJCS["Mhast (offshore) / UTM zone 32S",GEOGCS["Mhast (offshore)",DATUM["Mhast_offshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6705"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4705"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3354,'EPSG',3354,'PROJCS["Mhast (offshore) / UTM zone 32S",GEOGCS["Mhast (offshore)",DATUM["Mhast_offshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6705"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4705"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
 --- EPSG 3355 : Egypt Gulf of Suez S-650 TL / Red Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3355,'EPSG',3355,'PROJCS["Egypt Gulf of Suez S-650 TL / Red Belt",GEOGCS["Egypt Gulf of Suez S-650 TL",DATUM["Egypt_Gulf_of_Suez_S_650_TL",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-146.21,112.63,4.05,0,0,0,0],AUTHORITY["EPSG","6706"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4706"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3355,'EPSG',3355,'PROJCS["Egypt Gulf of Suez S-650 TL / Red Belt",GEOGCS["Egypt Gulf of Suez S-650 TL",DATUM["Egypt_Gulf_of_Suez_S_650_TL",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-146.21,112.63,4.05,0,0,0,0],AUTHORITY["EPSG","6706"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4706"]],PR [...]
 ---
---- EPSG 3356 : Grand Cayman 1959 / UTM zone 17N
+--- EPSG 3356 : Grand Cayman 1959 / UTM zone 17N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3356,'EPSG',3356,'PROJCS["Grand Cayman 1959 / UTM zone 17N",GEOGCS["Grand Cayman 1959",DATUM["Grand_Cayman_1959",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[67.8,106.1,138.8,0,0,0,0],AUTHORITY["EPSG","6723"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4723"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3356,'EPSG',3356,'PROJCS["Grand Cayman 1959 / UTM zone 17N (deprecated)",GEOGCS["GCGD59",DATUM["Grand_Cayman_Geodetic_Datum_1959",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-179.483,-69.379,-27.584,-7.862,8.163,6.042,-13.925],AUTHORITY["EPSG","6723"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], [...]
 ---
---- EPSG 3357 : Little Cayman 1961 / UTM zone 17N
+--- EPSG 3357 : Little Cayman 1961 / UTM zone 17N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3357,'EPSG',3357,'PROJCS["Little Cayman 1961 / UTM zone 17N",GEOGCS["Little Cayman 1961",DATUM["Little_Cayman_1961",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[42,124,147,0,0,0,0],AUTHORITY["EPSG","6726"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4726"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3357,'EPSG',3357,'PROJCS["Little Cayman 1961 / UTM zone 17N (deprecated)",GEOGCS["SIGD61",DATUM["Sister_Islands_Geodetic_Datum_1961",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[8.853,-52.644,180.304,-0.393,-2.323,2.96,-24.081],AUTHORITY["EPSG","6726"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], [...]
 ---
 --- EPSG 3358 : NAD83(HARN) / North Carolina
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3358,'EPSG',3358,'PROJCS["NAD83(HARN) / North Carolina",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3358,'EPSG',3358,'PROJCS["NAD83(HARN) / North Carolina",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 3359 : NAD83(HARN) / North Carolina (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3359,'EPSG',3359,'PROJCS["NAD83(HARN) / North Carolina (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3359,'EPSG',3359,'PROJCS["NAD83(HARN) / North Carolina (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTI [...]
 ---
 --- EPSG 3360 : NAD83(HARN) / South Carolina
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3360,'EPSG',3360,'PROJCS["NAD83(HARN) / South Carolina",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3360,'EPSG',3360,'PROJCS["NAD83(HARN) / South Carolina",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 3361 : NAD83(HARN) / South Carolina (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3361,'EPSG',3361,'PROJCS["NAD83(HARN) / South Carolina (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3361,'EPSG',3361,'PROJCS["NAD83(HARN) / South Carolina (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
 --- EPSG 3362 : NAD83(HARN) / Pennsylvania North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3362,'EPSG',3362,'PROJCS["NAD83(HARN) / Pennsylvania North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3362,'EPSG',3362,'PROJCS["NAD83(HARN) / Pennsylvania North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conf [...]
 ---
 --- EPSG 3363 : NAD83(HARN) / Pennsylvania North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3363,'EPSG',3363,'PROJCS["NAD83(HARN) / Pennsylvania North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey fo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3363,'EPSG',3363,'PROJCS["NAD83(HARN) / Pennsylvania North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambe [...]
 ---
 --- EPSG 3364 : NAD83(HARN) / Pennsylvania South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3364,'EPSG',3364,'PROJCS["NAD83(HARN) / Pennsylvania South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3364,'EPSG',3364,'PROJCS["NAD83(HARN) / Pennsylvania South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Conf [...]
 ---
 --- EPSG 3365 : NAD83(HARN) / Pennsylvania South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3365,'EPSG',3365,'PROJCS["NAD83(HARN) / Pennsylvania South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey fo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3365,'EPSG',3365,'PROJCS["NAD83(HARN) / Pennsylvania South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambe [...]
 ---
 --- EPSG 3366 : Hong Kong 1963 Grid System (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3366,'EPSG',3366,'PROJCS["Hong Kong 1963 Grid System (deprecated)",GEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3366,'EPSG',3366,'PROJCS["Hong Kong 1963 Grid System (deprecated)",GEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]],PROJECTION["Cassini_Soldner"],PARAMETER["la [...]
 ---
 --- EPSG 3367 : IGN Astro 1960 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3367,'EPSG',3367,'PROJCS["IGN Astro 1960 / UTM zone 28N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3367,'EPSG',3367,'PROJCS["IGN Astro 1960 / UTM zone 28N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 3368 : IGN Astro 1960 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3368,'EPSG',3368,'PROJCS["IGN Astro 1960 / UTM zone 29N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3368,'EPSG',3368,'PROJCS["IGN Astro 1960 / UTM zone 29N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 3369 : IGN Astro 1960 / UTM zone 30N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3369,'EPSG',3369,'PROJCS["IGN Astro 1960 / UTM zone 30N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3369,'EPSG',3369,'PROJCS["IGN Astro 1960 / UTM zone 30N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 3370 : NAD27 / UTM zone 59N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3370,'EPSG',3370,'PROJCS["NAD27 / UTM zone 59N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Merc [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3370,'EPSG',3370,'PROJCS["NAD27 / UTM zone 59N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0], [...]
 ---
 --- EPSG 3371 : NAD27 / UTM zone 60N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3371,'EPSG',3371,'PROJCS["NAD27 / UTM zone 60N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Merc [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3371,'EPSG',3371,'PROJCS["NAD27 / UTM zone 60N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0], [...]
 ---
 --- EPSG 3372 : NAD83 / UTM zone 59N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3372,'EPSG',3372,'PROJCS["NAD83 / UTM zone 59N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3372,'EPSG',3372,'PROJCS["NAD83 / UTM zone 59N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
 --- EPSG 3373 : NAD83 / UTM zone 60N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3373,'EPSG',3373,'PROJCS["NAD83 / UTM zone 60N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3373,'EPSG',3373,'PROJCS["NAD83 / UTM zone 60N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
 --- EPSG 3374 : FD54 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3374,'EPSG',3374,'PROJCS["FD54 / UTM zone 29N",GEOGCS["FD54",DATUM["Faroe_Datum_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6741"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4741"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3374,'EPSG',3374,'PROJCS["FD54 / UTM zone 29N",GEOGCS["FD54",DATUM["Faroe_Datum_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6741"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4741"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_m [...]
 ---
 --- EPSG 3375 : GDM2000 / Peninsula RSO
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3375,'EPSG',3375,'PROJCS["GDM2000 / Peninsula RSO",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Obliqu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3375,'EPSG',3375,'PROJCS["GDM2000 / Peninsula RSO",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_cente [...]
 ---
 --- EPSG 3376 : GDM2000 / East Malaysia BRSO
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3376,'EPSG',3376,'PROJCS["GDM2000 / East Malaysia BRSO",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_O [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3376,'EPSG',3376,'PROJCS["GDM2000 / East Malaysia BRSO",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_ [...]
 ---
 --- EPSG 3377 : GDM2000 / Johor Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3377,'EPSG',3377,'PROJCS["GDM2000 / Johor Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3377,'EPSG',3377,'PROJCS["GDM2000 / Johor Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",2.121679 [...]
 ---
 --- EPSG 3378 : GDM2000 / Sembilan and Melaka Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3378,'EPSG',3378,'PROJCS["GDM2000 / Sembilan and Melaka Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Ca [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3378,'EPSG',3378,'PROJCS["GDM2000 / Sembilan and Melaka Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_or [...]
 ---
 --- EPSG 3379 : GDM2000 / PahangGrid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3379,'EPSG',3379,'PROJCS["GDM2000 / PahangGrid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3379,'EPSG',3379,'PROJCS["GDM2000 / PahangGrid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",3.769388 [...]
 ---
 --- EPSG 3380 : GDM2000 / Selangor Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3380,'EPSG',3380,'PROJCS["GDM2000 / Selangor Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldn [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3380,'EPSG',3380,'PROJCS["GDM2000 / Selangor Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",3.684 [...]
 ---
 --- EPSG 3381 : GDM2000 / Terengganu Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3381,'EPSG',3381,'PROJCS["GDM2000 / Terengganu Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Sol [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3381,'EPSG',3381,'PROJCS["GDM2000 / Terengganu Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",4.9 [...]
 ---
 --- EPSG 3382 : GDM2000 / Pinang Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3382,'EPSG',3382,'PROJCS["GDM2000 / Pinang Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3382,'EPSG',3382,'PROJCS["GDM2000 / Pinang Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",5.42151 [...]
 ---
 --- EPSG 3383 : GDM2000 / Kedah and Perlis Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3383,'EPSG',3383,'PROJCS["GDM2000 / Kedah and Perlis Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassi [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3383,'EPSG',3383,'PROJCS["GDM2000 / Kedah and Perlis Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origi [...]
 ---
 --- EPSG 3384 : GDM2000 / Perak Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3384,'EPSG',3384,'PROJCS["GDM2000 / Perak Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3384,'EPSG',3384,'PROJCS["GDM2000 / Perak Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",4.859063 [...]
 ---
 --- EPSG 3385 : GDM2000 / Kelantan Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3385,'EPSG',3385,'PROJCS["GDM2000 / Kelantan Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldn [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3385,'EPSG',3385,'PROJCS["GDM2000 / Kelantan Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",5.972 [...]
 ---
 --- EPSG 3386 : KKJ / Finland zone 0
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3386,'EPSG',3386,'PROJCS["KKJ / Finland zone 0",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3386,'EPSG',3386,'PROJCS["KKJ / Finland zone 0",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],PROJECTIO [...]
 ---
 --- EPSG 3387 : KKJ / Finland zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3387,'EPSG',3387,'PROJCS["KKJ / Finland zone 5",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3387,'EPSG',3387,'PROJCS["KKJ / Finland zone 5",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],PROJECTIO [...]
 ---
 --- EPSG 3388 : Pulkovo 1942 / Caspian Sea Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3388,'EPSG',3388,'PROJCS["Pulkovo 1942 / Caspian Sea Mercator",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3388,'EPSG',3388,'PROJCS["Pulkovo 1942 / Caspian Sea Mercator",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Mercator_2 [...]
 ---
 --- EPSG 3389 : Pulkovo 1942 / 3-degree Gauss-Kruger zone 60
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3389,'EPSG',3389,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 60",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3389,'EPSG',3389,'PROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 60",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["T [...]
 ---
 --- EPSG 3390 : Pulkovo 1995 / 3-degree Gauss-Kruger zone 60
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3390,'EPSG',3390,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 60",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3390,'EPSG',3390,'PROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 60",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3391 : Karbala 1979 / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3391,'EPSG',3391,'PROJCS["Karbala 1979 / UTM zone 37N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3391,'EPSG',3391,'PROJCS["Karbala 1979 / UTM zone 37N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3392 : Karbala 1979 / UTM zone 38N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3392,'EPSG',3392,'PROJCS["Karbala 1979 / UTM zone 38N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3392,'EPSG',3392,'PROJCS["Karbala 1979 / UTM zone 38N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3393 : Karbala 1979 / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3393,'EPSG',3393,'PROJCS["Karbala 1979 / UTM zone 39N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3393,'EPSG',3393,'PROJCS["Karbala 1979 / UTM zone 39N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3394 : Nahrwan 1934 / Iraq zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3394,'EPSG',3394,'PROJCS["Nahrwan 1934 / Iraq zone",GEOGCS["Nahrwan 1934",DATUM["Nahrwan_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6744"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4744"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_C [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3394,'EPSG',3394,'PROJCS["Nahrwan 1934 / Iraq zone",GEOGCS["Nahrwan 1934",DATUM["Nahrwan_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6744"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4744"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 3395 : WGS 84 / World Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3395,'EPSG',3395,'PROJCS["WGS 84 / World Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_merid [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3395,'EPSG',3395,'PROJCS["WGS 84 / World Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAM [...]
 ---
 --- EPSG 3396 : PD/83 / 3-degree Gauss-Kruger zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3396,'EPSG',3396,'PROJCS["PD/83 / 3-degree Gauss-Kruger zone 3",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3396,'EPSG',3396,'PROJCS["PD/83 / 3-degree Gauss-Kruger zone 3",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
 --- EPSG 3397 : PD/83 / 3-degree Gauss-Kruger zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3397,'EPSG',3397,'PROJCS["PD/83 / 3-degree Gauss-Kruger zone 4",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3397,'EPSG',3397,'PROJCS["PD/83 / 3-degree Gauss-Kruger zone 4",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
 --- EPSG 3398 : RD/83 / 3-degree Gauss-Kruger zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3398,'EPSG',3398,'PROJCS["RD/83 / 3-degree Gauss-Kruger zone 4",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3398,'EPSG',3398,'PROJCS["RD/83 / 3-degree Gauss-Kruger zone 4",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 3399 : RD/83 / 3-degree Gauss-Kruger zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3399,'EPSG',3399,'PROJCS["RD/83 / 3-degree Gauss-Kruger zone 5",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3399,'EPSG',3399,'PROJCS["RD/83 / 3-degree Gauss-Kruger zone 5",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 3400 : NAD83 / Alberta 10-TM (Forest)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3400,'EPSG',3400,'PROJCS["NAD83 / Alberta 10-TM (Forest)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3400,'EPSG',3400,'PROJCS["NAD83 / Alberta 10-TM (Forest)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3401 : NAD83 / Alberta 10-TM (Resource)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3401,'EPSG',3401,'PROJCS["NAD83 / Alberta 10-TM (Resource)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3401,'EPSG',3401,'PROJCS["NAD83 / Alberta 10-TM (Resource)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 3402 : NAD83(CSRS) / Alberta 10-TM (Forest)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3402,'EPSG',3402,'PROJCS["NAD83(CSRS) / Alberta 10-TM (Forest)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3402,'EPSG',3402,'PROJCS["NAD83(CSRS) / Alberta 10-TM (Forest)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transv [...]
 ---
 --- EPSG 3403 : NAD83(CSRS) / Alberta 10-TM (Resource)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3403,'EPSG',3403,'PROJCS["NAD83(CSRS) / Alberta 10-TM (Resource)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3403,'EPSG',3403,'PROJCS["NAD83(CSRS) / Alberta 10-TM (Resource)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3404 : NAD83(HARN) / North Carolina (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3404,'EPSG',3404,'PROJCS["NAD83(HARN) / North Carolina (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3404,'EPSG',3404,'PROJCS["NAD83(HARN) / North Carolina (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 3405 : VN-2000 / UTM zone 48N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3405,'EPSG',3405,'PROJCS["VN-2000 / UTM zone 48N",GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3405,'EPSG',3405,'PROJCS["VN-2000 / UTM zone 48N",GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-192.873,-39.382,-111.202,-0.00205,-0.0005,0.00335,0.0188],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 3406 : VN-2000 / UTM zone 49N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3406,'EPSG',3406,'PROJCS["VN-2000 / UTM zone 49N",GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3406,'EPSG',3406,'PROJCS["VN-2000 / UTM zone 49N",GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-192.873,-39.382,-111.202,-0.00205,-0.0005,0.00335,0.0188],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 3407 : Hong Kong 1963 Grid System
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3407,'EPSG',3407,'PROJCS["Hong Kong 1963 Grid System",GEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]],UNIT["Clarke''s foot",0.3047972654,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3407,'EPSG',3407,'PROJCS["Hong Kong 1963 Grid System",GEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_ori [...]
 ---
---- EPSG 3408 : unnamed
+--- EPSG 3408 : NSIDC EASE-Grid North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3408,'EPSG',3408,'PROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6371228,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","3408"]]','+proj=laea +lat_0=90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3408,'EPSG',3408,'PROJCS["NSIDC EASE-Grid North",GEOGCS["Unspecified datum based upon the International 1924 Authalic Sphere",DATUM["Not_specified_based_on_International_1924_Authalic_Sphere",SPHEROID["International 1924 Authalic Sphere",6371228,0,AUTHORITY["EPSG","7057"]],AUTHORITY["EPSG","6053"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","91 [...]
 ---
---- EPSG 3409 : unnamed
+--- EPSG 3409 : NSIDC EASE-Grid South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3409,'EPSG',3409,'PROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6371228,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",-90],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","3409"]]','+proj=laea +lat_0=- [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3409,'EPSG',3409,'PROJCS["NSIDC EASE-Grid South",GEOGCS["Unspecified datum based upon the International 1924 Authalic Sphere",DATUM["Not_specified_based_on_International_1924_Authalic_Sphere",SPHEROID["International 1924 Authalic Sphere",6371228,0,AUTHORITY["EPSG","7057"]],AUTHORITY["EPSG","6053"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","91 [...]
 ---
 --- EPSG 3410 : NSIDC EASE-Grid Global
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3410,'EPSG',3410,'PROJCS["NSIDC EASE-Grid Global",GEOGCS["Unspecified datum based upon the International 1924 Authalic Sphere",DATUM["Not_specified_based_on_International_1924_Authalic_Sphere",SPHEROID["International 1924 Authalic Sphere",6371228,0,AUTHORITY["EPSG","7057"]],AUTHORITY["EPSG","6053"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3410,'EPSG',3410,'PROJCS["NSIDC EASE-Grid Global",GEOGCS["Unspecified datum based upon the International 1924 Authalic Sphere",DATUM["Not_specified_based_on_International_1924_Authalic_Sphere",SPHEROID["International 1924 Authalic Sphere",6371228,0,AUTHORITY["EPSG","7057"]],AUTHORITY["EPSG","6053"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9 [...]
 ---
 --- EPSG 3411 : NSIDC Sea Ice Polar Stereographic North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3411,'EPSG',3411,'PROJCS["NSIDC Sea Ice Polar Stereographic North",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3411,'EPSG',3411,'PROJCS["NSIDC Sea Ice Polar Stereographic North",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY[ [...]
 ---
 --- EPSG 3412 : NSIDC Sea Ice Polar Stereographic South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3412,'EPSG',3412,'PROJCS["NSIDC Sea Ice Polar Stereographic South",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3412,'EPSG',3412,'PROJCS["NSIDC Sea Ice Polar Stereographic South",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY[ [...]
 ---
 --- EPSG 3413 : WGS 84 / NSIDC Sea Ice Polar Stereographic North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3413,'EPSG',3413,'PROJCS["WGS 84 / NSIDC Sea Ice Polar Stereographic North",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereogr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3413,'EPSG',3413,'PROJCS["WGS 84 / NSIDC Sea Ice Polar Stereographic North",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",70 [...]
 ---
 --- EPSG 3414 : SVY21 / Singapore TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3414,'EPSG',3414,'PROJCS["SVY21 / Singapore TM",GEOGCS["SVY21",DATUM["SVY21",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6757"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4757"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3414,'EPSG',3414,'PROJCS["SVY21 / Singapore TM",GEOGCS["SVY21",DATUM["SVY21",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6757"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4757"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",1.366666666666667],PARAMETER["cent [...]
 ---
 --- EPSG 3415 : WGS 72BE / South China Sea Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3415,'EPSG',3415,'PROJCS["WGS 72BE / South China Sea Lambert",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3415,'EPSG',3415,'PROJCS["WGS 72BE / South China Sea Lambert",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 3416 : ETRS89 / Austria Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3416,'EPSG',3416,'PROJCS["ETRS89 / Austria Lambert",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3416,'EPSG',3416,'PROJCS["ETRS89 / Austria Lambert",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
---- EPSG 3417 : NAD83 / Iowa North (ft US)
+--- EPSG 3417 : NAD83 / Iowa North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3417,'EPSG',3417,'PROJCS["NAD83 / Iowa North (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3417,'EPSG',3417,'PROJCS["NAD83 / Iowa North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
---- EPSG 3418 : NAD83 / Iowa South (ft US)
+--- EPSG 3418 : NAD83 / Iowa South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3418,'EPSG',3418,'PROJCS["NAD83 / Iowa South (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3418,'EPSG',3418,'PROJCS["NAD83 / Iowa South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
---- EPSG 3419 : NAD83 / Kansas North (ft US)
+--- EPSG 3419 : NAD83 / Kansas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3419,'EPSG',3419,'PROJCS["NAD83 / Kansas North (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3419,'EPSG',3419,'PROJCS["NAD83 / Kansas North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
---- EPSG 3420 : NAD83 / Kansas South (ft US)
+--- EPSG 3420 : NAD83 / Kansas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3420,'EPSG',3420,'PROJCS["NAD83 / Kansas South (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3420,'EPSG',3420,'PROJCS["NAD83 / Kansas South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
---- EPSG 3421 : NAD83 / Nevada East (ft US)
+--- EPSG 3421 : NAD83 / Nevada East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3421,'EPSG',3421,'PROJCS["NAD83 / Nevada East (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3421,'EPSG',3421,'PROJCS["NAD83 / Nevada East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
---- EPSG 3422 : NAD83 / Nevada Central (ft US)
+--- EPSG 3422 : NAD83 / Nevada Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3422,'EPSG',3422,'PROJCS["NAD83 / Nevada Central (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3422,'EPSG',3422,'PROJCS["NAD83 / Nevada Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 3423 : NAD83 / Nevada West (ft US)
+--- EPSG 3423 : NAD83 / Nevada West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3423,'EPSG',3423,'PROJCS["NAD83 / Nevada West (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3423,'EPSG',3423,'PROJCS["NAD83 / Nevada West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
---- EPSG 3424 : NAD83 / New Jersey (ft US)
+--- EPSG 3424 : NAD83 / New Jersey (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3424,'EPSG',3424,'PROJCS["NAD83 / New Jersey (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3424,'EPSG',3424,'PROJCS["NAD83 / New Jersey (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 3425 : NAD83(HARN) / Iowa North (ft US)
+--- EPSG 3425 : NAD83(HARN) / Iowa North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3425,'EPSG',3425,'PROJCS["NAD83(HARN) / Iowa North (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3425,'EPSG',3425,'PROJCS["NAD83(HARN) / Iowa North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
---- EPSG 3426 : NAD83(HARN) / Iowa South (ft US)
+--- EPSG 3426 : NAD83(HARN) / Iowa South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3426,'EPSG',3426,'PROJCS["NAD83(HARN) / Iowa South (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3426,'EPSG',3426,'PROJCS["NAD83(HARN) / Iowa South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
---- EPSG 3427 : NAD83(HARN) / Kansas North (ft US)
+--- EPSG 3427 : NAD83(HARN) / Kansas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3427,'EPSG',3427,'PROJCS["NAD83(HARN) / Kansas North (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3427,'EPSG',3427,'PROJCS["NAD83(HARN) / Kansas North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
---- EPSG 3428 : NAD83(HARN) / Kansas South (ft US)
+--- EPSG 3428 : NAD83(HARN) / Kansas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3428,'EPSG',3428,'PROJCS["NAD83(HARN) / Kansas South (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3428,'EPSG',3428,'PROJCS["NAD83(HARN) / Kansas South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
---- EPSG 3429 : NAD83(HARN) / Nevada East (ft US)
+--- EPSG 3429 : NAD83(HARN) / Nevada East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3429,'EPSG',3429,'PROJCS["NAD83(HARN) / Nevada East (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3429,'EPSG',3429,'PROJCS["NAD83(HARN) / Nevada East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_M [...]
 ---
---- EPSG 3430 : NAD83(HARN) / Nevada Central (ft US)
+--- EPSG 3430 : NAD83(HARN) / Nevada Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3430,'EPSG',3430,'PROJCS["NAD83(HARN) / Nevada Central (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3430,'EPSG',3430,'PROJCS["NAD83(HARN) / Nevada Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transvers [...]
 ---
---- EPSG 3431 : NAD83(HARN) / Nevada West (ft US)
+--- EPSG 3431 : NAD83(HARN) / Nevada West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3431,'EPSG',3431,'PROJCS["NAD83(HARN) / Nevada West (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3431,'EPSG',3431,'PROJCS["NAD83(HARN) / Nevada West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_M [...]
 ---
---- EPSG 3432 : NAD83(HARN) / New Jersey (ft US)
+--- EPSG 3432 : NAD83(HARN) / New Jersey (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3432,'EPSG',3432,'PROJCS["NAD83(HARN) / New Jersey (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3432,'EPSG',3432,'PROJCS["NAD83(HARN) / New Jersey (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 3433 : NAD83 / Arkansas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3433,'EPSG',3433,'PROJCS["NAD83 / Arkansas North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3433,'EPSG',3433,'PROJCS["NAD83 / Arkansas North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 3434 : NAD83 / Arkansas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3434,'EPSG',3434,'PROJCS["NAD83 / Arkansas South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3434,'EPSG',3434,'PROJCS["NAD83 / Arkansas South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 3435 : NAD83 / Illinois East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3435,'EPSG',3435,'PROJCS["NAD83 / Illinois East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3435,'EPSG',3435,'PROJCS["NAD83 / Illinois East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 3436 : NAD83 / Illinois West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3436,'EPSG',3436,'PROJCS["NAD83 / Illinois West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3436,'EPSG',3436,'PROJCS["NAD83 / Illinois West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 3437 : NAD83 / New Hampshire (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3437,'EPSG',3437,'PROJCS["NAD83 / New Hampshire (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3437,'EPSG',3437,'PROJCS["NAD83 / New Hampshire (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 3438 : NAD83 / Rhode Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3438,'EPSG',3438,'PROJCS["NAD83 / Rhode Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3438,'EPSG',3438,'PROJCS["NAD83 / Rhode Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3439 : PSD93 / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3439,'EPSG',3439,'PROJCS["PSD93 / UTM zone 39N",GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.7101],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3439,'EPSG',3439,'PROJCS["PSD93 / UTM zone 39N",GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]],PROJECTION[ [...]
 ---
 --- EPSG 3440 : PSD93 / UTM zone 40N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3440,'EPSG',3440,'PROJCS["PSD93 / UTM zone 40N",GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.7101],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3440,'EPSG',3440,'PROJCS["PSD93 / UTM zone 40N",GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]],PROJECTION[ [...]
 ---
 --- EPSG 3441 : NAD83(HARN) / Arkansas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3441,'EPSG',3441,'PROJCS["NAD83(HARN) / Arkansas North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3441,'EPSG',3441,'PROJCS["NAD83(HARN) / Arkansas North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 3442 : NAD83(HARN) / Arkansas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3442,'EPSG',3442,'PROJCS["NAD83(HARN) / Arkansas South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3442,'EPSG',3442,'PROJCS["NAD83(HARN) / Arkansas South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_C [...]
 ---
 --- EPSG 3443 : NAD83(HARN) / Illinois East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3443,'EPSG',3443,'PROJCS["NAD83(HARN) / Illinois East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3443,'EPSG',3443,'PROJCS["NAD83(HARN) / Illinois East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 3444 : NAD83(HARN) / Illinois West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3444,'EPSG',3444,'PROJCS["NAD83(HARN) / Illinois West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3444,'EPSG',3444,'PROJCS["NAD83(HARN) / Illinois West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 3445 : NAD83(HARN) / New Hampshire (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3445,'EPSG',3445,'PROJCS["NAD83(HARN) / New Hampshire (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3445,'EPSG',3445,'PROJCS["NAD83(HARN) / New Hampshire (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 3446 : NAD83(HARN) / Rhode Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3446,'EPSG',3446,'PROJCS["NAD83(HARN) / Rhode Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3446,'EPSG',3446,'PROJCS["NAD83(HARN) / Rhode Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 3447 : ETRS89 / Belgian Lambert 2005
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3447,'EPSG',3447,'PROJCS["ETRS89 / Belgian Lambert 2005",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3447,'EPSG',3447,'PROJCS["ETRS89 / Belgian Lambert 2005",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 3448 : JAD2001 / Jamaica Metric Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3448,'EPSG',3448,'PROJCS["JAD2001 / Jamaica Metric Grid",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambe [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3448,'EPSG',3448,'PROJCS["JAD2001 / Jamaica Metric Grid",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latit [...]
 ---
 --- EPSG 3449 : JAD2001 / UTM zone 17N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3449,'EPSG',3449,'PROJCS["JAD2001 / UTM zone 17N",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3449,'EPSG',3449,'PROJCS["JAD2001 / UTM zone 17N",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
 --- EPSG 3450 : JAD2001 / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3450,'EPSG',3450,'PROJCS["JAD2001 / UTM zone 18N",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3450,'EPSG',3450,'PROJCS["JAD2001 / UTM zone 18N",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
 --- EPSG 3451 : NAD83 / Louisiana North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3451,'EPSG',3451,'PROJCS["NAD83 / Louisiana North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3451,'EPSG',3451,'PROJCS["NAD83 / Louisiana North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
 --- EPSG 3452 : NAD83 / Louisiana South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3452,'EPSG',3452,'PROJCS["NAD83 / Louisiana South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3452,'EPSG',3452,'PROJCS["NAD83 / Louisiana South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
 --- EPSG 3453 : NAD83 / Louisiana Offshore (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3453,'EPSG',3453,'PROJCS["NAD83 / Louisiana Offshore (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3453,'EPSG',3453,'PROJCS["NAD83 / Louisiana Offshore (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
 --- EPSG 3454 : NAD83 / South Dakota North (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3454,'EPSG',3454,'PROJCS["NAD83 / South Dakota North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3454,'EPSG',3454,'PROJCS["NAD83 / South Dakota North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conforma [...]
 ---
 --- EPSG 3455 : NAD83 / South Dakota South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3455,'EPSG',3455,'PROJCS["NAD83 / South Dakota South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3455,'EPSG',3455,'PROJCS["NAD83 / South Dakota South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
 --- EPSG 3456 : NAD83(HARN) / Louisiana North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3456,'EPSG',3456,'PROJCS["NAD83(HARN) / Louisiana North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3456,'EPSG',3456,'PROJCS["NAD83(HARN) / Louisiana North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_ [...]
 ---
 --- EPSG 3457 : NAD83(HARN) / Louisiana South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3457,'EPSG',3457,'PROJCS["NAD83(HARN) / Louisiana South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3457,'EPSG',3457,'PROJCS["NAD83(HARN) / Louisiana South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_ [...]
 ---
 --- EPSG 3458 : NAD83(HARN) / South Dakota North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3458,'EPSG',3458,'PROJCS["NAD83(HARN) / South Dakota North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey fo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3458,'EPSG',3458,'PROJCS["NAD83(HARN) / South Dakota North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambe [...]
 ---
 --- EPSG 3459 : NAD83(HARN) / South Dakota South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3459,'EPSG',3459,'PROJCS["NAD83(HARN) / South Dakota South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey fo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3459,'EPSG',3459,'PROJCS["NAD83(HARN) / South Dakota South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambe [...]
 ---
 --- EPSG 3460 : Fiji 1986 / Fiji Map Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3460,'EPSG',3460,'PROJCS["Fiji 1986 / Fiji Map Grid",GEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3460,'EPSG',3460,'PROJCS["Fiji 1986 / Fiji Map Grid",GEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3461 : Dabola 1981 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3461,'EPSG',3461,'PROJCS["Dabola 1981 / UTM zone 28N",GEOGCS["Dabola 1981",DATUM["Dabola_1981",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY["EPSG","6155"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4155"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3461,'EPSG',3461,'PROJCS["Dabola 1981 / UTM zone 28N",GEOGCS["Dabola 1981",DATUM["Dabola_1981",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY["EPSG","6155"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4155"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 3462 : Dabola 1981 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3462,'EPSG',3462,'PROJCS["Dabola 1981 / UTM zone 29N",GEOGCS["Dabola 1981",DATUM["Dabola_1981",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY["EPSG","6155"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4155"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3462,'EPSG',3462,'PROJCS["Dabola 1981 / UTM zone 29N",GEOGCS["Dabola 1981",DATUM["Dabola_1981",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY["EPSG","6155"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4155"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 3463 : NAD83 / Maine CS2000 Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3463,'EPSG',3463,'PROJCS["NAD83 / Maine CS2000 Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3463,'EPSG',3463,'PROJCS["NAD83 / Maine CS2000 Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 3464 : NAD83(HARN) / Maine CS2000 Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3464,'EPSG',3464,'PROJCS["NAD83(HARN) / Maine CS2000 Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3464,'EPSG',3464,'PROJCS["NAD83(HARN) / Maine CS2000 Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 3465 : NAD83(NSRS2007) / Alabama East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3465,'EPSG',3465,'PROJCS["NAD83(NSRS2007) / Alabama East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3465,'EPSG',3465,'PROJCS["NAD83(NSRS2007) / Alabama East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3466 : NAD83(NSRS2007) / Alabama West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3466,'EPSG',3466,'PROJCS["NAD83(NSRS2007) / Alabama West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3466,'EPSG',3466,'PROJCS["NAD83(NSRS2007) / Alabama West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3467 : NAD83(NSRS2007) / Alaska Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3467,'EPSG',3467,'PROJCS["NAD83(NSRS2007) / Alaska Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3467,'EPSG',3467,'PROJCS["NAD83(NSRS2007) / Alaska Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Al [...]
 ---
 --- EPSG 3468 : NAD83(NSRS2007) / Alaska zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3468,'EPSG',3468,'PROJCS["NAD83(NSRS2007) / Alaska zone 1",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3468,'EPSG',3468,'PROJCS["NAD83(NSRS2007) / Alaska zone 1",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Ho [...]
 ---
 --- EPSG 3469 : NAD83(NSRS2007) / Alaska zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3469,'EPSG',3469,'PROJCS["NAD83(NSRS2007) / Alaska zone 2",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3469,'EPSG',3469,'PROJCS["NAD83(NSRS2007) / Alaska zone 2",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3470 : NAD83(NSRS2007) / Alaska zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3470,'EPSG',3470,'PROJCS["NAD83(NSRS2007) / Alaska zone 3",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3470,'EPSG',3470,'PROJCS["NAD83(NSRS2007) / Alaska zone 3",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3471 : NAD83(NSRS2007) / Alaska zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3471,'EPSG',3471,'PROJCS["NAD83(NSRS2007) / Alaska zone 4",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3471,'EPSG',3471,'PROJCS["NAD83(NSRS2007) / Alaska zone 4",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3472 : NAD83(NSRS2007) / Alaska zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3472,'EPSG',3472,'PROJCS["NAD83(NSRS2007) / Alaska zone 5",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3472,'EPSG',3472,'PROJCS["NAD83(NSRS2007) / Alaska zone 5",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3473 : NAD83(NSRS2007) / Alaska zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3473,'EPSG',3473,'PROJCS["NAD83(NSRS2007) / Alaska zone 6",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3473,'EPSG',3473,'PROJCS["NAD83(NSRS2007) / Alaska zone 6",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3474 : NAD83(NSRS2007) / Alaska zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3474,'EPSG',3474,'PROJCS["NAD83(NSRS2007) / Alaska zone 7",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3474,'EPSG',3474,'PROJCS["NAD83(NSRS2007) / Alaska zone 7",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3475 : NAD83(NSRS2007) / Alaska zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3475,'EPSG',3475,'PROJCS["NAD83(NSRS2007) / Alaska zone 8",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3475,'EPSG',3475,'PROJCS["NAD83(NSRS2007) / Alaska zone 8",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3476 : NAD83(NSRS2007) / Alaska zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3476,'EPSG',3476,'PROJCS["NAD83(NSRS2007) / Alaska zone 9",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3476,'EPSG',3476,'PROJCS["NAD83(NSRS2007) / Alaska zone 9",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3477 : NAD83(NSRS2007) / Alaska zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3477,'EPSG',3477,'PROJCS["NAD83(NSRS2007) / Alaska zone 10",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3477,'EPSG',3477,'PROJCS["NAD83(NSRS2007) / Alaska zone 10",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3478 : NAD83(NSRS2007) / Arizona Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3478,'EPSG',3478,'PROJCS["NAD83(NSRS2007) / Arizona Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3478,'EPSG',3478,'PROJCS["NAD83(NSRS2007) / Arizona Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3479 : NAD83(NSRS2007) / Arizona Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3479,'EPSG',3479,'PROJCS["NAD83(NSRS2007) / Arizona Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["f [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3479,'EPSG',3479,'PROJCS["NAD83(NSRS2007) / Arizona Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3480 : NAD83(NSRS2007) / Arizona East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3480,'EPSG',3480,'PROJCS["NAD83(NSRS2007) / Arizona East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3480,'EPSG',3480,'PROJCS["NAD83(NSRS2007) / Arizona East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3481 : NAD83(NSRS2007) / Arizona East (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3481,'EPSG',3481,'PROJCS["NAD83(NSRS2007) / Arizona East (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3481,'EPSG',3481,'PROJCS["NAD83(NSRS2007) / Arizona East (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3482 : NAD83(NSRS2007) / Arizona West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3482,'EPSG',3482,'PROJCS["NAD83(NSRS2007) / Arizona West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3482,'EPSG',3482,'PROJCS["NAD83(NSRS2007) / Arizona West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3483 : NAD83(NSRS2007) / Arizona West (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3483,'EPSG',3483,'PROJCS["NAD83(NSRS2007) / Arizona West (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3483,'EPSG',3483,'PROJCS["NAD83(NSRS2007) / Arizona West (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3484 : NAD83(NSRS2007) / Arkansas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3484,'EPSG',3484,'PROJCS["NAD83(NSRS2007) / Arkansas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3484,'EPSG',3484,'PROJCS["NAD83(NSRS2007) / Arkansas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3485 : NAD83(NSRS2007) / Arkansas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3485,'EPSG',3485,'PROJCS["NAD83(NSRS2007) / Arkansas North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3485,'EPSG',3485,'PROJCS["NAD83(NSRS2007) / Arkansas North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3486 : NAD83(NSRS2007) / Arkansas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3486,'EPSG',3486,'PROJCS["NAD83(NSRS2007) / Arkansas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3486,'EPSG',3486,'PROJCS["NAD83(NSRS2007) / Arkansas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3487 : NAD83(NSRS2007) / Arkansas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3487,'EPSG',3487,'PROJCS["NAD83(NSRS2007) / Arkansas South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3487,'EPSG',3487,'PROJCS["NAD83(NSRS2007) / Arkansas South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3488 : NAD83(NSRS2007) / California Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3488,'EPSG',3488,'PROJCS["NAD83(NSRS2007) / California Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3488,'EPSG',3488,'PROJCS["NAD83(NSRS2007) / California Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3489 : NAD83(NSRS2007) / California zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3489,'EPSG',3489,'PROJCS["NAD83(NSRS2007) / California zone 1",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3489,'EPSG',3489,'PROJCS["NAD83(NSRS2007) / California zone 1",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3490 : NAD83(NSRS2007) / California zone 1 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3490,'EPSG',3490,'PROJCS["NAD83(NSRS2007) / California zone 1 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3490,'EPSG',3490,'PROJCS["NAD83(NSRS2007) / California zone 1 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
 ---
 --- EPSG 3491 : NAD83(NSRS2007) / California zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3491,'EPSG',3491,'PROJCS["NAD83(NSRS2007) / California zone 2",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3491,'EPSG',3491,'PROJCS["NAD83(NSRS2007) / California zone 2",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3492 : NAD83(NSRS2007) / California zone 2 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3492,'EPSG',3492,'PROJCS["NAD83(NSRS2007) / California zone 2 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3492,'EPSG',3492,'PROJCS["NAD83(NSRS2007) / California zone 2 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
 ---
 --- EPSG 3493 : NAD83(NSRS2007) / California zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3493,'EPSG',3493,'PROJCS["NAD83(NSRS2007) / California zone 3",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3493,'EPSG',3493,'PROJCS["NAD83(NSRS2007) / California zone 3",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3494 : NAD83(NSRS2007) / California zone 3 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3494,'EPSG',3494,'PROJCS["NAD83(NSRS2007) / California zone 3 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3494,'EPSG',3494,'PROJCS["NAD83(NSRS2007) / California zone 3 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
 ---
 --- EPSG 3495 : NAD83(NSRS2007) / California zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3495,'EPSG',3495,'PROJCS["NAD83(NSRS2007) / California zone 4",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3495,'EPSG',3495,'PROJCS["NAD83(NSRS2007) / California zone 4",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3496 : NAD83(NSRS2007) / California zone 4 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3496,'EPSG',3496,'PROJCS["NAD83(NSRS2007) / California zone 4 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3496,'EPSG',3496,'PROJCS["NAD83(NSRS2007) / California zone 4 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
 ---
 --- EPSG 3497 : NAD83(NSRS2007) / California zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3497,'EPSG',3497,'PROJCS["NAD83(NSRS2007) / California zone 5",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3497,'EPSG',3497,'PROJCS["NAD83(NSRS2007) / California zone 5",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3498 : NAD83(NSRS2007) / California zone 5 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3498,'EPSG',3498,'PROJCS["NAD83(NSRS2007) / California zone 5 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3498,'EPSG',3498,'PROJCS["NAD83(NSRS2007) / California zone 5 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
 ---
 --- EPSG 3499 : NAD83(NSRS2007) / California zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3499,'EPSG',3499,'PROJCS["NAD83(NSRS2007) / California zone 6",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3499,'EPSG',3499,'PROJCS["NAD83(NSRS2007) / California zone 6",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3500 : NAD83(NSRS2007) / California zone 6 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3500,'EPSG',3500,'PROJCS["NAD83(NSRS2007) / California zone 6 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3500,'EPSG',3500,'PROJCS["NAD83(NSRS2007) / California zone 6 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
 ---
 --- EPSG 3501 : NAD83(NSRS2007) / Colorado Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3501,'EPSG',3501,'PROJCS["NAD83(NSRS2007) / Colorado Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3501,'EPSG',3501,'PROJCS["NAD83(NSRS2007) / Colorado Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3502 : NAD83(NSRS2007) / Colorado Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3502,'EPSG',3502,'PROJCS["NAD83(NSRS2007) / Colorado Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3502,'EPSG',3502,'PROJCS["NAD83(NSRS2007) / Colorado Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJ [...]
 ---
 --- EPSG 3503 : NAD83(NSRS2007) / Colorado North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3503,'EPSG',3503,'PROJCS["NAD83(NSRS2007) / Colorado North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3503,'EPSG',3503,'PROJCS["NAD83(NSRS2007) / Colorado North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3504 : NAD83(NSRS2007) / Colorado North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3504,'EPSG',3504,'PROJCS["NAD83(NSRS2007) / Colorado North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3504,'EPSG',3504,'PROJCS["NAD83(NSRS2007) / Colorado North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3505 : NAD83(NSRS2007) / Colorado South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3505,'EPSG',3505,'PROJCS["NAD83(NSRS2007) / Colorado South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3505,'EPSG',3505,'PROJCS["NAD83(NSRS2007) / Colorado South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3506 : NAD83(NSRS2007) / Colorado South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3506,'EPSG',3506,'PROJCS["NAD83(NSRS2007) / Colorado South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3506,'EPSG',3506,'PROJCS["NAD83(NSRS2007) / Colorado South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3507 : NAD83(NSRS2007) / Connecticut
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3507,'EPSG',3507,'PROJCS["NAD83(NSRS2007) / Connecticut",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3507,'EPSG',3507,'PROJCS["NAD83(NSRS2007) / Connecticut",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lamb [...]
 ---
 --- EPSG 3508 : NAD83(NSRS2007) / Connecticut (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3508,'EPSG',3508,'PROJCS["NAD83(NSRS2007) / Connecticut (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3508,'EPSG',3508,'PROJCS["NAD83(NSRS2007) / Connecticut (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3509 : NAD83(NSRS2007) / Delaware
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3509,'EPSG',3509,'PROJCS["NAD83(NSRS2007) / Delaware",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3509,'EPSG',3509,'PROJCS["NAD83(NSRS2007) / Delaware",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Transve [...]
 ---
 --- EPSG 3510 : NAD83(NSRS2007) / Delaware (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3510,'EPSG',3510,'PROJCS["NAD83(NSRS2007) / Delaware (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US sur [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3510,'EPSG',3510,'PROJCS["NAD83(NSRS2007) / Delaware (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3511 : NAD83(NSRS2007) / Florida East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3511,'EPSG',3511,'PROJCS["NAD83(NSRS2007) / Florida East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3511,'EPSG',3511,'PROJCS["NAD83(NSRS2007) / Florida East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3512 : NAD83(NSRS2007) / Florida East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3512,'EPSG',3512,'PROJCS["NAD83(NSRS2007) / Florida East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3512,'EPSG',3512,'PROJCS["NAD83(NSRS2007) / Florida East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3513 : NAD83(NSRS2007) / Florida GDL Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3513,'EPSG',3513,'PROJCS["NAD83(NSRS2007) / Florida GDL Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3513,'EPSG',3513,'PROJCS["NAD83(NSRS2007) / Florida GDL Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3514 : NAD83(NSRS2007) / Florida North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3514,'EPSG',3514,'PROJCS["NAD83(NSRS2007) / Florida North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3514,'EPSG',3514,'PROJCS["NAD83(NSRS2007) / Florida North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["La [...]
 ---
 --- EPSG 3515 : NAD83(NSRS2007) / Florida North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3515,'EPSG',3515,'PROJCS["NAD83(NSRS2007) / Florida North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3515,'EPSG',3515,'PROJCS["NAD83(NSRS2007) / Florida North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3516 : NAD83(NSRS2007) / Florida West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3516,'EPSG',3516,'PROJCS["NAD83(NSRS2007) / Florida West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3516,'EPSG',3516,'PROJCS["NAD83(NSRS2007) / Florida West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3517 : NAD83(NSRS2007) / Florida West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3517,'EPSG',3517,'PROJCS["NAD83(NSRS2007) / Florida West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3517,'EPSG',3517,'PROJCS["NAD83(NSRS2007) / Florida West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3518 : NAD83(NSRS2007) / Georgia East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3518,'EPSG',3518,'PROJCS["NAD83(NSRS2007) / Georgia East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3518,'EPSG',3518,'PROJCS["NAD83(NSRS2007) / Georgia East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3519 : NAD83(NSRS2007) / Georgia East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3519,'EPSG',3519,'PROJCS["NAD83(NSRS2007) / Georgia East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3519,'EPSG',3519,'PROJCS["NAD83(NSRS2007) / Georgia East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3520 : NAD83(NSRS2007) / Georgia West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3520,'EPSG',3520,'PROJCS["NAD83(NSRS2007) / Georgia West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3520,'EPSG',3520,'PROJCS["NAD83(NSRS2007) / Georgia West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3521 : NAD83(NSRS2007) / Georgia West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3521,'EPSG',3521,'PROJCS["NAD83(NSRS2007) / Georgia West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3521,'EPSG',3521,'PROJCS["NAD83(NSRS2007) / Georgia West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3522 : NAD83(NSRS2007) / Idaho Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3522,'EPSG',3522,'PROJCS["NAD83(NSRS2007) / Idaho Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3522,'EPSG',3522,'PROJCS["NAD83(NSRS2007) / Idaho Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3523 : NAD83(NSRS2007) / Idaho Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3523,'EPSG',3523,'PROJCS["NAD83(NSRS2007) / Idaho Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3523,'EPSG',3523,'PROJCS["NAD83(NSRS2007) / Idaho Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3524 : NAD83(NSRS2007) / Idaho East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3524,'EPSG',3524,'PROJCS["NAD83(NSRS2007) / Idaho East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3524,'EPSG',3524,'PROJCS["NAD83(NSRS2007) / Idaho East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Trans [...]
 ---
 --- EPSG 3525 : NAD83(NSRS2007) / Idaho East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3525,'EPSG',3525,'PROJCS["NAD83(NSRS2007) / Idaho East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US s [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3525,'EPSG',3525,'PROJCS["NAD83(NSRS2007) / Idaho East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3526 : NAD83(NSRS2007) / Idaho West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3526,'EPSG',3526,'PROJCS["NAD83(NSRS2007) / Idaho West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3526,'EPSG',3526,'PROJCS["NAD83(NSRS2007) / Idaho West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Trans [...]
 ---
 --- EPSG 3527 : NAD83(NSRS2007) / Idaho West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3527,'EPSG',3527,'PROJCS["NAD83(NSRS2007) / Idaho West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US s [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3527,'EPSG',3527,'PROJCS["NAD83(NSRS2007) / Idaho West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3528 : NAD83(NSRS2007) / Illinois East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3528,'EPSG',3528,'PROJCS["NAD83(NSRS2007) / Illinois East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3528,'EPSG',3528,'PROJCS["NAD83(NSRS2007) / Illinois East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3529 : NAD83(NSRS2007) / Illinois East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3529,'EPSG',3529,'PROJCS["NAD83(NSRS2007) / Illinois East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3529,'EPSG',3529,'PROJCS["NAD83(NSRS2007) / Illinois East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3530 : NAD83(NSRS2007) / Illinois West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3530,'EPSG',3530,'PROJCS["NAD83(NSRS2007) / Illinois West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3530,'EPSG',3530,'PROJCS["NAD83(NSRS2007) / Illinois West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3531 : NAD83(NSRS2007) / Illinois West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3531,'EPSG',3531,'PROJCS["NAD83(NSRS2007) / Illinois West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3531,'EPSG',3531,'PROJCS["NAD83(NSRS2007) / Illinois West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3532 : NAD83(NSRS2007) / Indiana East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3532,'EPSG',3532,'PROJCS["NAD83(NSRS2007) / Indiana East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3532,'EPSG',3532,'PROJCS["NAD83(NSRS2007) / Indiana East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3533 : NAD83(NSRS2007) / Indiana East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3533,'EPSG',3533,'PROJCS["NAD83(NSRS2007) / Indiana East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3533,'EPSG',3533,'PROJCS["NAD83(NSRS2007) / Indiana East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3534 : NAD83(NSRS2007) / Indiana West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3534,'EPSG',3534,'PROJCS["NAD83(NSRS2007) / Indiana West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3534,'EPSG',3534,'PROJCS["NAD83(NSRS2007) / Indiana West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3535 : NAD83(NSRS2007) / Indiana West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3535,'EPSG',3535,'PROJCS["NAD83(NSRS2007) / Indiana West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3535,'EPSG',3535,'PROJCS["NAD83(NSRS2007) / Indiana West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3536 : NAD83(NSRS2007) / Iowa North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3536,'EPSG',3536,'PROJCS["NAD83(NSRS2007) / Iowa North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3536,'EPSG',3536,'PROJCS["NAD83(NSRS2007) / Iowa North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lambe [...]
 ---
---- EPSG 3537 : NAD83(NSRS2007) / Iowa North (ft US)
+--- EPSG 3537 : NAD83(NSRS2007) / Iowa North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3537,'EPSG',3537,'PROJCS["NAD83(NSRS2007) / Iowa North (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3537,'EPSG',3537,'PROJCS["NAD83(NSRS2007) / Iowa North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3538 : NAD83(NSRS2007) / Iowa South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3538,'EPSG',3538,'PROJCS["NAD83(NSRS2007) / Iowa South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3538,'EPSG',3538,'PROJCS["NAD83(NSRS2007) / Iowa South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lambe [...]
 ---
---- EPSG 3539 : NAD83(NSRS2007) / Iowa South (ft US)
+--- EPSG 3539 : NAD83(NSRS2007) / Iowa South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3539,'EPSG',3539,'PROJCS["NAD83(NSRS2007) / Iowa South (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3539,'EPSG',3539,'PROJCS["NAD83(NSRS2007) / Iowa South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3540 : NAD83(NSRS2007) / Kansas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3540,'EPSG',3540,'PROJCS["NAD83(NSRS2007) / Kansas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3540,'EPSG',3540,'PROJCS["NAD83(NSRS2007) / Kansas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lam [...]
 ---
---- EPSG 3541 : NAD83(NSRS2007) / Kansas North (ft US)
+--- EPSG 3541 : NAD83(NSRS2007) / Kansas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3541,'EPSG',3541,'PROJCS["NAD83(NSRS2007) / Kansas North (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3541,'EPSG',3541,'PROJCS["NAD83(NSRS2007) / Kansas North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3542 : NAD83(NSRS2007) / Kansas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3542,'EPSG',3542,'PROJCS["NAD83(NSRS2007) / Kansas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3542,'EPSG',3542,'PROJCS["NAD83(NSRS2007) / Kansas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lam [...]
 ---
---- EPSG 3543 : NAD83(NSRS2007) / Kansas South (ft US)
+--- EPSG 3543 : NAD83(NSRS2007) / Kansas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3543,'EPSG',3543,'PROJCS["NAD83(NSRS2007) / Kansas South (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3543,'EPSG',3543,'PROJCS["NAD83(NSRS2007) / Kansas South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3544 : NAD83(NSRS2007) / Kentucky North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3544,'EPSG',3544,'PROJCS["NAD83(NSRS2007) / Kentucky North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3544,'EPSG',3544,'PROJCS["NAD83(NSRS2007) / Kentucky North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3545 : NAD83(NSRS2007) / Kentucky North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3545,'EPSG',3545,'PROJCS["NAD83(NSRS2007) / Kentucky North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3545,'EPSG',3545,'PROJCS["NAD83(NSRS2007) / Kentucky North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3546 : NAD83(NSRS2007) / Kentucky Single Zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3546,'EPSG',3546,'PROJCS["NAD83(NSRS2007) / Kentucky Single Zone",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3546,'EPSG',3546,'PROJCS["NAD83(NSRS2007) / Kentucky Single Zone",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3547 : NAD83(NSRS2007) / Kentucky Single Zone (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3547,'EPSG',3547,'PROJCS["NAD83(NSRS2007) / Kentucky Single Zone (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3547,'EPSG',3547,'PROJCS["NAD83(NSRS2007) / Kentucky Single Zone (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
 ---
 --- EPSG 3548 : NAD83(NSRS2007) / Kentucky South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3548,'EPSG',3548,'PROJCS["NAD83(NSRS2007) / Kentucky South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3548,'EPSG',3548,'PROJCS["NAD83(NSRS2007) / Kentucky South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3549 : NAD83(NSRS2007) / Kentucky South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3549,'EPSG',3549,'PROJCS["NAD83(NSRS2007) / Kentucky South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3549,'EPSG',3549,'PROJCS["NAD83(NSRS2007) / Kentucky South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3550 : NAD83(NSRS2007) / Louisiana North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3550,'EPSG',3550,'PROJCS["NAD83(NSRS2007) / Louisiana North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3550,'EPSG',3550,'PROJCS["NAD83(NSRS2007) / Louisiana North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3551 : NAD83(NSRS2007) / Louisiana North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3551,'EPSG',3551,'PROJCS["NAD83(NSRS2007) / Louisiana North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3551,'EPSG',3551,'PROJCS["NAD83(NSRS2007) / Louisiana North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJE [...]
 ---
 --- EPSG 3552 : NAD83(NSRS2007) / Louisiana South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3552,'EPSG',3552,'PROJCS["NAD83(NSRS2007) / Louisiana South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3552,'EPSG',3552,'PROJCS["NAD83(NSRS2007) / Louisiana South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3553 : NAD83(NSRS2007) / Louisiana South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3553,'EPSG',3553,'PROJCS["NAD83(NSRS2007) / Louisiana South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3553,'EPSG',3553,'PROJCS["NAD83(NSRS2007) / Louisiana South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJE [...]
 ---
 --- EPSG 3554 : NAD83(NSRS2007) / Maine CS2000 Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3554,'EPSG',3554,'PROJCS["NAD83(NSRS2007) / Maine CS2000 Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3554,'EPSG',3554,'PROJCS["NAD83(NSRS2007) / Maine CS2000 Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3555 : NAD83(NSRS2007) / Maine CS2000 East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3555,'EPSG',3555,'PROJCS["NAD83(NSRS2007) / Maine CS2000 East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3555,'EPSG',3555,'PROJCS["NAD83(NSRS2007) / Maine CS2000 East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3556 : NAD83(NSRS2007) / Maine CS2000 West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3556,'EPSG',3556,'PROJCS["NAD83(NSRS2007) / Maine CS2000 West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3556,'EPSG',3556,'PROJCS["NAD83(NSRS2007) / Maine CS2000 West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3557 : NAD83(NSRS2007) / Maine East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3557,'EPSG',3557,'PROJCS["NAD83(NSRS2007) / Maine East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3557,'EPSG',3557,'PROJCS["NAD83(NSRS2007) / Maine East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Trans [...]
 ---
 --- EPSG 3558 : NAD83(NSRS2007) / Maine West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3558,'EPSG',3558,'PROJCS["NAD83(NSRS2007) / Maine West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3558,'EPSG',3558,'PROJCS["NAD83(NSRS2007) / Maine West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Trans [...]
 ---
 --- EPSG 3559 : NAD83(NSRS2007) / Maryland
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3559,'EPSG',3559,'PROJCS["NAD83(NSRS2007) / Maryland",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3559,'EPSG',3559,'PROJCS["NAD83(NSRS2007) / Maryland",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lambert [...]
 ---
 --- EPSG 3560 : NAD83 / Utah North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3560,'EPSG',3560,'PROJCS["NAD83 / Utah North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3560,'EPSG',3560,'PROJCS["NAD83 / Utah North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
 --- EPSG 3561 : Old Hawaiian / Hawaii zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3561,'EPSG',3561,'PROJCS["Old Hawaiian / Hawaii zone 1",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.304800609601 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3561,'EPSG',3561,'PROJCS["Old Hawaiian / Hawaii zone 1",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 3562 : Old Hawaiian / Hawaii zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3562,'EPSG',3562,'PROJCS["Old Hawaiian / Hawaii zone 2",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.304800609601 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3562,'EPSG',3562,'PROJCS["Old Hawaiian / Hawaii zone 2",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 3563 : Old Hawaiian / Hawaii zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3563,'EPSG',3563,'PROJCS["Old Hawaiian / Hawaii zone 3",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.304800609601 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3563,'EPSG',3563,'PROJCS["Old Hawaiian / Hawaii zone 3",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 3564 : Old Hawaiian / Hawaii zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3564,'EPSG',3564,'PROJCS["Old Hawaiian / Hawaii zone 4",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.304800609601 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3564,'EPSG',3564,'PROJCS["Old Hawaiian / Hawaii zone 4",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 3565 : Old Hawaiian / Hawaii zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3565,'EPSG',3565,'PROJCS["Old Hawaiian / Hawaii zone 5",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.304800609601 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3565,'EPSG',3565,'PROJCS["Old Hawaiian / Hawaii zone 5",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
 --- EPSG 3566 : NAD83 / Utah Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3566,'EPSG',3566,'PROJCS["NAD83 / Utah Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3566,'EPSG',3566,'PROJCS["NAD83 / Utah Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
 --- EPSG 3567 : NAD83 / Utah South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3567,'EPSG',3567,'PROJCS["NAD83 / Utah South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3567,'EPSG',3567,'PROJCS["NAD83 / Utah South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
 --- EPSG 3568 : NAD83(HARN) / Utah North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3568,'EPSG',3568,'PROJCS["NAD83(HARN) / Utah North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.30 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3568,'EPSG',3568,'PROJCS["NAD83(HARN) / Utah North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 3569 : NAD83(HARN) / Utah Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3569,'EPSG',3569,'PROJCS["NAD83(HARN) / Utah Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3569,'EPSG',3569,'PROJCS["NAD83(HARN) / Utah Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Con [...]
 ---
 --- EPSG 3570 : NAD83(HARN) / Utah South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3570,'EPSG',3570,'PROJCS["NAD83(HARN) / Utah South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.30 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3570,'EPSG',3570,'PROJCS["NAD83(HARN) / Utah South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 3571 : WGS 84 / North Pole LAEA Bering Sea
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3571,'EPSG',3571,'PROJCS["WGS 84 / North Pole LAEA Bering Sea",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Are [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3571,'EPSG',3571,'PROJCS["WGS 84 / North Pole LAEA Bering Sea",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PA [...]
 ---
 --- EPSG 3572 : WGS 84 / North Pole LAEA Alaska
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3572,'EPSG',3572,'PROJCS["WGS 84 / North Pole LAEA Alaska",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3572,'EPSG',3572,'PROJCS["WGS 84 / North Pole LAEA Alaska",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAME [...]
 ---
 --- EPSG 3573 : WGS 84 / North Pole LAEA Canada
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3573,'EPSG',3573,'PROJCS["WGS 84 / North Pole LAEA Canada",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3573,'EPSG',3573,'PROJCS["WGS 84 / North Pole LAEA Canada",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAME [...]
 ---
 --- EPSG 3574 : WGS 84 / North Pole LAEA Atlantic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3574,'EPSG',3574,'PROJCS["WGS 84 / North Pole LAEA Atlantic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3574,'EPSG',3574,'PROJCS["WGS 84 / North Pole LAEA Atlantic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARA [...]
 ---
 --- EPSG 3575 : WGS 84 / North Pole LAEA Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3575,'EPSG',3575,'PROJCS["WGS 84 / North Pole LAEA Europe",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3575,'EPSG',3575,'PROJCS["WGS 84 / North Pole LAEA Europe",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAME [...]
 ---
 --- EPSG 3576 : WGS 84 / North Pole LAEA Russia
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3576,'EPSG',3576,'PROJCS["WGS 84 / North Pole LAEA Russia",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3576,'EPSG',3576,'PROJCS["WGS 84 / North Pole LAEA Russia",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAME [...]
 ---
 --- EPSG 3577 : GDA94 / Australian Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3577,'EPSG',3577,'PROJCS["GDA94 / Australian Albers",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3577,'EPSG',3577,'PROJCS["GDA94 / Australian Albers",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Albers_Conic_Equal_Area"],PA [...]
 ---
 --- EPSG 3578 : NAD83 / Yukon Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3578,'EPSG',3578,'PROJCS["NAD83 / Yukon Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3578,'EPSG',3578,'PROJCS["NAD83 / Yukon Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["stand [...]
 ---
 --- EPSG 3579 : NAD83(CSRS) / Yukon Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3579,'EPSG',3579,'PROJCS["NAD83(CSRS) / Yukon Albers",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3579,'EPSG',3579,'PROJCS["NAD83(CSRS) / Yukon Albers",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Albers_Conic_Equ [...]
 ---
 --- EPSG 3580 : NAD83 / NWT Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3580,'EPSG',3580,'PROJCS["NAD83 / NWT Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["La [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3580,'EPSG',3580,'PROJCS["NAD83 / NWT Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["st [...]
 ---
 --- EPSG 3581 : NAD83(CSRS) / NWT Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3581,'EPSG',3581,'PROJCS["NAD83(CSRS) / NWT Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3581,'EPSG',3581,'PROJCS["NAD83(CSRS) / NWT Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert_Conformal [...]
 ---
 --- EPSG 3582 : NAD83(NSRS2007) / Maryland (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3582,'EPSG',3582,'PROJCS["NAD83(NSRS2007) / Maryland (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US sur [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3582,'EPSG',3582,'PROJCS["NAD83(NSRS2007) / Maryland (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3583 : NAD83(NSRS2007) / Massachusetts Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3583,'EPSG',3583,'PROJCS["NAD83(NSRS2007) / Massachusetts Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3583,'EPSG',3583,'PROJCS["NAD83(NSRS2007) / Massachusetts Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3584 : NAD83(NSRS2007) / Massachusetts Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3584,'EPSG',3584,'PROJCS["NAD83(NSRS2007) / Massachusetts Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3584,'EPSG',3584,'PROJCS["NAD83(NSRS2007) / Massachusetts Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
 ---
 --- EPSG 3585 : NAD83(NSRS2007) / Massachusetts Mainland
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3585,'EPSG',3585,'PROJCS["NAD83(NSRS2007) / Massachusetts Mainland",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3585,'EPSG',3585,'PROJCS["NAD83(NSRS2007) / Massachusetts Mainland",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJE [...]
 ---
 --- EPSG 3586 : NAD83(NSRS2007) / Massachusetts Mainland (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3586,'EPSG',3586,'PROJCS["NAD83(NSRS2007) / Massachusetts Mainland (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3586,'EPSG',3586,'PROJCS["NAD83(NSRS2007) / Massachusetts Mainland (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"] [...]
 ---
 --- EPSG 3587 : NAD83(NSRS2007) / Michigan Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3587,'EPSG',3587,'PROJCS["NAD83(NSRS2007) / Michigan Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3587,'EPSG',3587,'PROJCS["NAD83(NSRS2007) / Michigan Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3588 : NAD83(NSRS2007) / Michigan Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3588,'EPSG',3588,'PROJCS["NAD83(NSRS2007) / Michigan Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3588,'EPSG',3588,'PROJCS["NAD83(NSRS2007) / Michigan Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3589 : NAD83(NSRS2007) / Michigan North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3589,'EPSG',3589,'PROJCS["NAD83(NSRS2007) / Michigan North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3589,'EPSG',3589,'PROJCS["NAD83(NSRS2007) / Michigan North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3590 : NAD83(NSRS2007) / Michigan North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3590,'EPSG',3590,'PROJCS["NAD83(NSRS2007) / Michigan North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["fo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3590,'EPSG',3590,'PROJCS["NAD83(NSRS2007) / Michigan North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3591 : NAD83(NSRS2007) / Michigan Oblique Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3591,'EPSG',3591,'PROJCS["NAD83(NSRS2007) / Michigan Oblique Mercator",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3591,'EPSG',3591,'PROJCS["NAD83(NSRS2007) / Michigan Oblique Mercator",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PR [...]
 ---
 --- EPSG 3592 : NAD83(NSRS2007) / Michigan South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3592,'EPSG',3592,'PROJCS["NAD83(NSRS2007) / Michigan South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3592,'EPSG',3592,'PROJCS["NAD83(NSRS2007) / Michigan South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3593 : NAD83(NSRS2007) / Michigan South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3593,'EPSG',3593,'PROJCS["NAD83(NSRS2007) / Michigan South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["fo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3593,'EPSG',3593,'PROJCS["NAD83(NSRS2007) / Michigan South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3594 : NAD83(NSRS2007) / Minnesota Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3594,'EPSG',3594,'PROJCS["NAD83(NSRS2007) / Minnesota Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3594,'EPSG',3594,'PROJCS["NAD83(NSRS2007) / Minnesota Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3595 : NAD83(NSRS2007) / Minnesota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3595,'EPSG',3595,'PROJCS["NAD83(NSRS2007) / Minnesota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3595,'EPSG',3595,'PROJCS["NAD83(NSRS2007) / Minnesota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3596 : NAD83(NSRS2007) / Minnesota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3596,'EPSG',3596,'PROJCS["NAD83(NSRS2007) / Minnesota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3596,'EPSG',3596,'PROJCS["NAD83(NSRS2007) / Minnesota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3597 : NAD83(NSRS2007) / Mississippi East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3597,'EPSG',3597,'PROJCS["NAD83(NSRS2007) / Mississippi East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3597,'EPSG',3597,'PROJCS["NAD83(NSRS2007) / Mississippi East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3598 : NAD83(NSRS2007) / Mississippi East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3598,'EPSG',3598,'PROJCS["NAD83(NSRS2007) / Mississippi East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3598,'EPSG',3598,'PROJCS["NAD83(NSRS2007) / Mississippi East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJ [...]
 ---
 --- EPSG 3599 : NAD83(NSRS2007) / Mississippi West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3599,'EPSG',3599,'PROJCS["NAD83(NSRS2007) / Mississippi West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3599,'EPSG',3599,'PROJCS["NAD83(NSRS2007) / Mississippi West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3600 : NAD83(NSRS2007) / Mississippi West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3600,'EPSG',3600,'PROJCS["NAD83(NSRS2007) / Mississippi West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3600,'EPSG',3600,'PROJCS["NAD83(NSRS2007) / Mississippi West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJ [...]
 ---
 --- EPSG 3601 : NAD83(NSRS2007) / Missouri Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3601,'EPSG',3601,'PROJCS["NAD83(NSRS2007) / Missouri Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3601,'EPSG',3601,'PROJCS["NAD83(NSRS2007) / Missouri Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3602 : NAD83(NSRS2007) / Missouri East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3602,'EPSG',3602,'PROJCS["NAD83(NSRS2007) / Missouri East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3602,'EPSG',3602,'PROJCS["NAD83(NSRS2007) / Missouri East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3603 : NAD83(NSRS2007) / Missouri West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3603,'EPSG',3603,'PROJCS["NAD83(NSRS2007) / Missouri West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3603,'EPSG',3603,'PROJCS["NAD83(NSRS2007) / Missouri West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3604 : NAD83(NSRS2007) / Montana
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3604,'EPSG',3604,'PROJCS["NAD83(NSRS2007) / Montana",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3604,'EPSG',3604,'PROJCS["NAD83(NSRS2007) / Montana",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lambert_ [...]
 ---
 --- EPSG 3605 : NAD83(NSRS2007) / Montana (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3605,'EPSG',3605,'PROJCS["NAD83(NSRS2007) / Montana (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3605,'EPSG',3605,'PROJCS["NAD83(NSRS2007) / Montana (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lam [...]
 ---
 --- EPSG 3606 : NAD83(NSRS2007) / Nebraska
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3606,'EPSG',3606,'PROJCS["NAD83(NSRS2007) / Nebraska",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3606,'EPSG',3606,'PROJCS["NAD83(NSRS2007) / Nebraska",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lambert [...]
 ---
 --- EPSG 3607 : NAD83(NSRS2007) / Nevada Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3607,'EPSG',3607,'PROJCS["NAD83(NSRS2007) / Nevada Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3607,'EPSG',3607,'PROJCS["NAD83(NSRS2007) / Nevada Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["T [...]
 ---
---- EPSG 3608 : NAD83(NSRS2007) / Nevada Central (ft US)
+--- EPSG 3608 : NAD83(NSRS2007) / Nevada Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3608,'EPSG',3608,'PROJCS["NAD83(NSRS2007) / Nevada Central (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3608,'EPSG',3608,'PROJCS["NAD83(NSRS2007) / Nevada Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3609 : NAD83(NSRS2007) / Nevada East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3609,'EPSG',3609,'PROJCS["NAD83(NSRS2007) / Nevada East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3609,'EPSG',3609,'PROJCS["NAD83(NSRS2007) / Nevada East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
---- EPSG 3610 : NAD83(NSRS2007) / Nevada East (ft US)
+--- EPSG 3610 : NAD83(NSRS2007) / Nevada East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3610,'EPSG',3610,'PROJCS["NAD83(NSRS2007) / Nevada East (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3610,'EPSG',3610,'PROJCS["NAD83(NSRS2007) / Nevada East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3611 : NAD83(NSRS2007) / Nevada West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3611,'EPSG',3611,'PROJCS["NAD83(NSRS2007) / Nevada West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3611,'EPSG',3611,'PROJCS["NAD83(NSRS2007) / Nevada West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
---- EPSG 3612 : NAD83(NSRS2007) / Nevada West (ft US)
+--- EPSG 3612 : NAD83(NSRS2007) / Nevada West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3612,'EPSG',3612,'PROJCS["NAD83(NSRS2007) / Nevada West (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3612,'EPSG',3612,'PROJCS["NAD83(NSRS2007) / Nevada West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3613 : NAD83(NSRS2007) / New Hampshire
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3613,'EPSG',3613,'PROJCS["NAD83(NSRS2007) / New Hampshire",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3613,'EPSG',3613,'PROJCS["NAD83(NSRS2007) / New Hampshire",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3614 : NAD83(NSRS2007) / New Hampshire (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3614,'EPSG',3614,'PROJCS["NAD83(NSRS2007) / New Hampshire (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3614,'EPSG',3614,'PROJCS["NAD83(NSRS2007) / New Hampshire (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3615 : NAD83(NSRS2007) / New Jersey
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3615,'EPSG',3615,'PROJCS["NAD83(NSRS2007) / New Jersey",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3615,'EPSG',3615,'PROJCS["NAD83(NSRS2007) / New Jersey",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Trans [...]
 ---
---- EPSG 3616 : NAD83(NSRS2007) / New Jersey (ft US)
+--- EPSG 3616 : NAD83(NSRS2007) / New Jersey (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3616,'EPSG',3616,'PROJCS["NAD83(NSRS2007) / New Jersey (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3616,'EPSG',3616,'PROJCS["NAD83(NSRS2007) / New Jersey (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3617 : NAD83(NSRS2007) / New Mexico Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3617,'EPSG',3617,'PROJCS["NAD83(NSRS2007) / New Mexico Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3617,'EPSG',3617,'PROJCS["NAD83(NSRS2007) / New Mexico Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3618 : NAD83(NSRS2007) / New Mexico Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3618,'EPSG',3618,'PROJCS["NAD83(NSRS2007) / New Mexico Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3618,'EPSG',3618,'PROJCS["NAD83(NSRS2007) / New Mexico Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PR [...]
 ---
 --- EPSG 3619 : NAD83(NSRS2007) / New Mexico East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3619,'EPSG',3619,'PROJCS["NAD83(NSRS2007) / New Mexico East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3619,'EPSG',3619,'PROJCS["NAD83(NSRS2007) / New Mexico East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3620 : NAD83(NSRS2007) / New Mexico East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3620,'EPSG',3620,'PROJCS["NAD83(NSRS2007) / New Mexico East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3620,'EPSG',3620,'PROJCS["NAD83(NSRS2007) / New Mexico East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJE [...]
 ---
 --- EPSG 3621 : NAD83(NSRS2007) / New Mexico West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3621,'EPSG',3621,'PROJCS["NAD83(NSRS2007) / New Mexico West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3621,'EPSG',3621,'PROJCS["NAD83(NSRS2007) / New Mexico West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3622 : NAD83(NSRS2007) / New Mexico West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3622,'EPSG',3622,'PROJCS["NAD83(NSRS2007) / New Mexico West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3622,'EPSG',3622,'PROJCS["NAD83(NSRS2007) / New Mexico West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJE [...]
 ---
 --- EPSG 3623 : NAD83(NSRS2007) / New York Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3623,'EPSG',3623,'PROJCS["NAD83(NSRS2007) / New York Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3623,'EPSG',3623,'PROJCS["NAD83(NSRS2007) / New York Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3624 : NAD83(NSRS2007) / New York Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3624,'EPSG',3624,'PROJCS["NAD83(NSRS2007) / New York Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3624,'EPSG',3624,'PROJCS["NAD83(NSRS2007) / New York Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJ [...]
 ---
 --- EPSG 3625 : NAD83(NSRS2007) / New York East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3625,'EPSG',3625,'PROJCS["NAD83(NSRS2007) / New York East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3625,'EPSG',3625,'PROJCS["NAD83(NSRS2007) / New York East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3626 : NAD83(NSRS2007) / New York East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3626,'EPSG',3626,'PROJCS["NAD83(NSRS2007) / New York East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3626,'EPSG',3626,'PROJCS["NAD83(NSRS2007) / New York East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3627 : NAD83(NSRS2007) / New York Long Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3627,'EPSG',3627,'PROJCS["NAD83(NSRS2007) / New York Long Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3627,'EPSG',3627,'PROJCS["NAD83(NSRS2007) / New York Long Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3628 : NAD83(NSRS2007) / New York Long Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3628,'EPSG',3628,'PROJCS["NAD83(NSRS2007) / New York Long Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3628,'EPSG',3628,'PROJCS["NAD83(NSRS2007) / New York Long Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
 ---
 --- EPSG 3629 : NAD83(NSRS2007) / New York West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3629,'EPSG',3629,'PROJCS["NAD83(NSRS2007) / New York West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3629,'EPSG',3629,'PROJCS["NAD83(NSRS2007) / New York West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tr [...]
 ---
 --- EPSG 3630 : NAD83(NSRS2007) / New York West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3630,'EPSG',3630,'PROJCS["NAD83(NSRS2007) / New York West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3630,'EPSG',3630,'PROJCS["NAD83(NSRS2007) / New York West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3631 : NAD83(NSRS2007) / North Carolina
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3631,'EPSG',3631,'PROJCS["NAD83(NSRS2007) / North Carolina",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3631,'EPSG',3631,'PROJCS["NAD83(NSRS2007) / North Carolina",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3632 : NAD83(NSRS2007) / North Carolina (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3632,'EPSG',3632,'PROJCS["NAD83(NSRS2007) / North Carolina (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3632,'EPSG',3632,'PROJCS["NAD83(NSRS2007) / North Carolina (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3633 : NAD83(NSRS2007) / North Dakota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3633,'EPSG',3633,'PROJCS["NAD83(NSRS2007) / North Dakota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3633,'EPSG',3633,'PROJCS["NAD83(NSRS2007) / North Dakota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3634 : NAD83(NSRS2007) / North Dakota North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3634,'EPSG',3634,'PROJCS["NAD83(NSRS2007) / North Dakota North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3634,'EPSG',3634,'PROJCS["NAD83(NSRS2007) / North Dakota North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJ [...]
 ---
 --- EPSG 3635 : NAD83(NSRS2007) / North Dakota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3635,'EPSG',3635,'PROJCS["NAD83(NSRS2007) / North Dakota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3635,'EPSG',3635,'PROJCS["NAD83(NSRS2007) / North Dakota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3636 : NAD83(NSRS2007) / North Dakota South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3636,'EPSG',3636,'PROJCS["NAD83(NSRS2007) / North Dakota South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3636,'EPSG',3636,'PROJCS["NAD83(NSRS2007) / North Dakota South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJ [...]
 ---
 --- EPSG 3637 : NAD83(NSRS2007) / Ohio North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3637,'EPSG',3637,'PROJCS["NAD83(NSRS2007) / Ohio North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3637,'EPSG',3637,'PROJCS["NAD83(NSRS2007) / Ohio North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lambe [...]
 ---
 --- EPSG 3638 : NAD83(NSRS2007) / Ohio South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3638,'EPSG',3638,'PROJCS["NAD83(NSRS2007) / Ohio South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3638,'EPSG',3638,'PROJCS["NAD83(NSRS2007) / Ohio South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lambe [...]
 ---
 --- EPSG 3639 : NAD83(NSRS2007) / Oklahoma North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3639,'EPSG',3639,'PROJCS["NAD83(NSRS2007) / Oklahoma North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3639,'EPSG',3639,'PROJCS["NAD83(NSRS2007) / Oklahoma North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3640 : NAD83(NSRS2007) / Oklahoma North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3640,'EPSG',3640,'PROJCS["NAD83(NSRS2007) / Oklahoma North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3640,'EPSG',3640,'PROJCS["NAD83(NSRS2007) / Oklahoma North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3641 : NAD83(NSRS2007) / Oklahoma South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3641,'EPSG',3641,'PROJCS["NAD83(NSRS2007) / Oklahoma South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3641,'EPSG',3641,'PROJCS["NAD83(NSRS2007) / Oklahoma South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3642 : NAD83(NSRS2007) / Oklahoma South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3642,'EPSG',3642,'PROJCS["NAD83(NSRS2007) / Oklahoma South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3642,'EPSG',3642,'PROJCS["NAD83(NSRS2007) / Oklahoma South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
---- EPSG 3643 : NAD83(NSRS2007) / Oregon Lambert
+--- EPSG 3643 : NAD83(NSRS2007) / Oregon LCC (m)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3643,'EPSG',3643,'PROJCS["NAD83(NSRS2007) / Oregon Lambert",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3643,'EPSG',3643,'PROJCS["NAD83(NSRS2007) / Oregon LCC (m)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
---- EPSG 3644 : NAD83(NSRS2007) / Oregon Lambert (ft)
+--- EPSG 3644 : NAD83(NSRS2007) / Oregon GIC Lambert (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3644,'EPSG',3644,'PROJCS["NAD83(NSRS2007) / Oregon Lambert (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["fo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3644,'EPSG',3644,'PROJCS["NAD83(NSRS2007) / Oregon GIC Lambert (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJ [...]
 ---
 --- EPSG 3645 : NAD83(NSRS2007) / Oregon North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3645,'EPSG',3645,'PROJCS["NAD83(NSRS2007) / Oregon North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3645,'EPSG',3645,'PROJCS["NAD83(NSRS2007) / Oregon North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lam [...]
 ---
 --- EPSG 3646 : NAD83(NSRS2007) / Oregon North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3646,'EPSG',3646,'PROJCS["NAD83(NSRS2007) / Oregon North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3646,'EPSG',3646,'PROJCS["NAD83(NSRS2007) / Oregon North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3647 : NAD83(NSRS2007) / Oregon South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3647,'EPSG',3647,'PROJCS["NAD83(NSRS2007) / Oregon South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3647,'EPSG',3647,'PROJCS["NAD83(NSRS2007) / Oregon South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lam [...]
 ---
 --- EPSG 3648 : NAD83(NSRS2007) / Oregon South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3648,'EPSG',3648,'PROJCS["NAD83(NSRS2007) / Oregon South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3648,'EPSG',3648,'PROJCS["NAD83(NSRS2007) / Oregon South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3649 : NAD83(NSRS2007) / Pennsylvania North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3649,'EPSG',3649,'PROJCS["NAD83(NSRS2007) / Pennsylvania North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3649,'EPSG',3649,'PROJCS["NAD83(NSRS2007) / Pennsylvania North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3650 : NAD83(NSRS2007) / Pennsylvania North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3650,'EPSG',3650,'PROJCS["NAD83(NSRS2007) / Pennsylvania North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3650,'EPSG',3650,'PROJCS["NAD83(NSRS2007) / Pennsylvania North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PR [...]
 ---
 --- EPSG 3651 : NAD83(NSRS2007) / Pennsylvania South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3651,'EPSG',3651,'PROJCS["NAD83(NSRS2007) / Pennsylvania South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3651,'EPSG',3651,'PROJCS["NAD83(NSRS2007) / Pennsylvania South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3652 : NAD83(NSRS2007) / Pennsylvania South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3652,'EPSG',3652,'PROJCS["NAD83(NSRS2007) / Pennsylvania South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3652,'EPSG',3652,'PROJCS["NAD83(NSRS2007) / Pennsylvania South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PR [...]
 ---
 --- EPSG 3653 : NAD83(NSRS2007) / Rhode Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3653,'EPSG',3653,'PROJCS["NAD83(NSRS2007) / Rhode Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3653,'EPSG',3653,'PROJCS["NAD83(NSRS2007) / Rhode Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3654 : NAD83(NSRS2007) / Rhode Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3654,'EPSG',3654,'PROJCS["NAD83(NSRS2007) / Rhode Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3654,'EPSG',3654,'PROJCS["NAD83(NSRS2007) / Rhode Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3655 : NAD83(NSRS2007) / South Carolina
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3655,'EPSG',3655,'PROJCS["NAD83(NSRS2007) / South Carolina",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3655,'EPSG',3655,'PROJCS["NAD83(NSRS2007) / South Carolina",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3656 : NAD83(NSRS2007) / South Carolina (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3656,'EPSG',3656,'PROJCS["NAD83(NSRS2007) / South Carolina (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["fo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3656,'EPSG',3656,'PROJCS["NAD83(NSRS2007) / South Carolina (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3657 : NAD83(NSRS2007) / South Dakota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3657,'EPSG',3657,'PROJCS["NAD83(NSRS2007) / South Dakota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3657,'EPSG',3657,'PROJCS["NAD83(NSRS2007) / South Dakota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3658 : NAD83(NSRS2007) / South Dakota North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3658,'EPSG',3658,'PROJCS["NAD83(NSRS2007) / South Dakota North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3658,'EPSG',3658,'PROJCS["NAD83(NSRS2007) / South Dakota North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PR [...]
 ---
 --- EPSG 3659 : NAD83(NSRS2007) / South Dakota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3659,'EPSG',3659,'PROJCS["NAD83(NSRS2007) / South Dakota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3659,'EPSG',3659,'PROJCS["NAD83(NSRS2007) / South Dakota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3660 : NAD83(NSRS2007) / South Dakota South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3660,'EPSG',3660,'PROJCS["NAD83(NSRS2007) / South Dakota South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3660,'EPSG',3660,'PROJCS["NAD83(NSRS2007) / South Dakota South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PR [...]
 ---
 --- EPSG 3661 : NAD83(NSRS2007) / Tennessee
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3661,'EPSG',3661,'PROJCS["NAD83(NSRS2007) / Tennessee",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3661,'EPSG',3661,'PROJCS["NAD83(NSRS2007) / Tennessee",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lamber [...]
 ---
 --- EPSG 3662 : NAD83(NSRS2007) / Tennessee (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3662,'EPSG',3662,'PROJCS["NAD83(NSRS2007) / Tennessee (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US su [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3662,'EPSG',3662,'PROJCS["NAD83(NSRS2007) / Tennessee (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3663 : NAD83(NSRS2007) / Texas Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3663,'EPSG',3663,'PROJCS["NAD83(NSRS2007) / Texas Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3663,'EPSG',3663,'PROJCS["NAD83(NSRS2007) / Texas Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["La [...]
 ---
 --- EPSG 3664 : NAD83(NSRS2007) / Texas Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3664,'EPSG',3664,'PROJCS["NAD83(NSRS2007) / Texas Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3664,'EPSG',3664,'PROJCS["NAD83(NSRS2007) / Texas Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3665 : NAD83(NSRS2007) / Texas Centric Albers Equal Area
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3665,'EPSG',3665,'PROJCS["NAD83(NSRS2007) / Texas Centric Albers Equal Area",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3665,'EPSG',3665,'PROJCS["NAD83(NSRS2007) / Texas Centric Albers Equal Area",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759 [...]
 ---
 --- EPSG 3666 : NAD83(NSRS2007) / Texas Centric Lambert Conformal
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3666,'EPSG',3666,'PROJCS["NAD83(NSRS2007) / Texas Centric Lambert Conformal",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3666,'EPSG',3666,'PROJCS["NAD83(NSRS2007) / Texas Centric Lambert Conformal",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759 [...]
 ---
 --- EPSG 3667 : NAD83(NSRS2007) / Texas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3667,'EPSG',3667,'PROJCS["NAD83(NSRS2007) / Texas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3667,'EPSG',3667,'PROJCS["NAD83(NSRS2007) / Texas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lamb [...]
 ---
 --- EPSG 3668 : NAD83(NSRS2007) / Texas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3668,'EPSG',3668,'PROJCS["NAD83(NSRS2007) / Texas North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3668,'EPSG',3668,'PROJCS["NAD83(NSRS2007) / Texas North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3669 : NAD83(NSRS2007) / Texas North Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3669,'EPSG',3669,'PROJCS["NAD83(NSRS2007) / Texas North Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3669,'EPSG',3669,'PROJCS["NAD83(NSRS2007) / Texas North Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3670 : NAD83(NSRS2007) / Texas North Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3670,'EPSG',3670,'PROJCS["NAD83(NSRS2007) / Texas North Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3670,'EPSG',3670,'PROJCS["NAD83(NSRS2007) / Texas North Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],P [...]
 ---
 --- EPSG 3671 : NAD83(NSRS2007) / Texas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3671,'EPSG',3671,'PROJCS["NAD83(NSRS2007) / Texas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3671,'EPSG',3671,'PROJCS["NAD83(NSRS2007) / Texas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lamb [...]
 ---
 --- EPSG 3672 : NAD83(NSRS2007) / Texas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3672,'EPSG',3672,'PROJCS["NAD83(NSRS2007) / Texas South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3672,'EPSG',3672,'PROJCS["NAD83(NSRS2007) / Texas South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTIO [...]
 ---
 --- EPSG 3673 : NAD83(NSRS2007) / Texas South Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3673,'EPSG',3673,'PROJCS["NAD83(NSRS2007) / Texas South Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3673,'EPSG',3673,'PROJCS["NAD83(NSRS2007) / Texas South Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3674 : NAD83(NSRS2007) / Texas South Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3674,'EPSG',3674,'PROJCS["NAD83(NSRS2007) / Texas South Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3674,'EPSG',3674,'PROJCS["NAD83(NSRS2007) / Texas South Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],P [...]
 ---
 --- EPSG 3675 : NAD83(NSRS2007) / Utah Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3675,'EPSG',3675,'PROJCS["NAD83(NSRS2007) / Utah Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3675,'EPSG',3675,'PROJCS["NAD83(NSRS2007) / Utah Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lam [...]
 ---
 --- EPSG 3676 : NAD83(NSRS2007) / Utah Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3676,'EPSG',3676,'PROJCS["NAD83(NSRS2007) / Utah Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3676,'EPSG',3676,'PROJCS["NAD83(NSRS2007) / Utah Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3677 : NAD83(NSRS2007) / Utah Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3677,'EPSG',3677,'PROJCS["NAD83(NSRS2007) / Utah Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3677,'EPSG',3677,'PROJCS["NAD83(NSRS2007) / Utah Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3678 : NAD83(NSRS2007) / Utah North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3678,'EPSG',3678,'PROJCS["NAD83(NSRS2007) / Utah North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3678,'EPSG',3678,'PROJCS["NAD83(NSRS2007) / Utah North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lambe [...]
 ---
 --- EPSG 3679 : NAD83(NSRS2007) / Utah North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3679,'EPSG',3679,'PROJCS["NAD83(NSRS2007) / Utah North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3679,'EPSG',3679,'PROJCS["NAD83(NSRS2007) / Utah North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3680 : NAD83(NSRS2007) / Utah North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3680,'EPSG',3680,'PROJCS["NAD83(NSRS2007) / Utah North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US s [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3680,'EPSG',3680,'PROJCS["NAD83(NSRS2007) / Utah North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3681 : NAD83(NSRS2007) / Utah South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3681,'EPSG',3681,'PROJCS["NAD83(NSRS2007) / Utah South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3681,'EPSG',3681,'PROJCS["NAD83(NSRS2007) / Utah South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Lambe [...]
 ---
 --- EPSG 3682 : NAD83(NSRS2007) / Utah South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3682,'EPSG',3682,'PROJCS["NAD83(NSRS2007) / Utah South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3682,'EPSG',3682,'PROJCS["NAD83(NSRS2007) / Utah South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3683 : NAD83(NSRS2007) / Utah South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3683,'EPSG',3683,'PROJCS["NAD83(NSRS2007) / Utah South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US s [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3683,'EPSG',3683,'PROJCS["NAD83(NSRS2007) / Utah South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3684 : NAD83(NSRS2007) / Vermont
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3684,'EPSG',3684,'PROJCS["NAD83(NSRS2007) / Vermont",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3684,'EPSG',3684,'PROJCS["NAD83(NSRS2007) / Vermont",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Transver [...]
 ---
 --- EPSG 3685 : NAD83(NSRS2007) / Virginia North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3685,'EPSG',3685,'PROJCS["NAD83(NSRS2007) / Virginia North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3685,'EPSG',3685,'PROJCS["NAD83(NSRS2007) / Virginia North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3686 : NAD83(NSRS2007) / Virginia North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3686,'EPSG',3686,'PROJCS["NAD83(NSRS2007) / Virginia North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3686,'EPSG',3686,'PROJCS["NAD83(NSRS2007) / Virginia North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3687 : NAD83(NSRS2007) / Virginia South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3687,'EPSG',3687,'PROJCS["NAD83(NSRS2007) / Virginia South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3687,'EPSG',3687,'PROJCS["NAD83(NSRS2007) / Virginia South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["L [...]
 ---
 --- EPSG 3688 : NAD83(NSRS2007) / Virginia South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3688,'EPSG',3688,'PROJCS["NAD83(NSRS2007) / Virginia South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3688,'EPSG',3688,'PROJCS["NAD83(NSRS2007) / Virginia South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
 --- EPSG 3689 : NAD83(NSRS2007) / Washington North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3689,'EPSG',3689,'PROJCS["NAD83(NSRS2007) / Washington North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3689,'EPSG',3689,'PROJCS["NAD83(NSRS2007) / Washington North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3690 : NAD83(NSRS2007) / Washington North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3690,'EPSG',3690,'PROJCS["NAD83(NSRS2007) / Washington North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3690,'EPSG',3690,'PROJCS["NAD83(NSRS2007) / Washington North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJ [...]
 ---
 --- EPSG 3691 : NAD83(NSRS2007) / Washington South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3691,'EPSG',3691,'PROJCS["NAD83(NSRS2007) / Washington South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3691,'EPSG',3691,'PROJCS["NAD83(NSRS2007) / Washington South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3692 : NAD83(NSRS2007) / Washington South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3692,'EPSG',3692,'PROJCS["NAD83(NSRS2007) / Washington South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3692,'EPSG',3692,'PROJCS["NAD83(NSRS2007) / Washington South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJ [...]
 ---
 --- EPSG 3693 : NAD83(NSRS2007) / West Virginia North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3693,'EPSG',3693,'PROJCS["NAD83(NSRS2007) / West Virginia North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3693,'EPSG',3693,'PROJCS["NAD83(NSRS2007) / West Virginia North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3694 : NAD83(NSRS2007) / West Virginia South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3694,'EPSG',3694,'PROJCS["NAD83(NSRS2007) / West Virginia South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3694,'EPSG',3694,'PROJCS["NAD83(NSRS2007) / West Virginia South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3695 : NAD83(NSRS2007) / Wisconsin Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3695,'EPSG',3695,'PROJCS["NAD83(NSRS2007) / Wisconsin Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3695,'EPSG',3695,'PROJCS["NAD83(NSRS2007) / Wisconsin Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3696 : NAD83(NSRS2007) / Wisconsin Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3696,'EPSG',3696,'PROJCS["NAD83(NSRS2007) / Wisconsin Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3696,'EPSG',3696,'PROJCS["NAD83(NSRS2007) / Wisconsin Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
 ---
 --- EPSG 3697 : NAD83(NSRS2007) / Wisconsin North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3697,'EPSG',3697,'PROJCS["NAD83(NSRS2007) / Wisconsin North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3697,'EPSG',3697,'PROJCS["NAD83(NSRS2007) / Wisconsin North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3698 : NAD83(NSRS2007) / Wisconsin North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3698,'EPSG',3698,'PROJCS["NAD83(NSRS2007) / Wisconsin North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3698,'EPSG',3698,'PROJCS["NAD83(NSRS2007) / Wisconsin North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJE [...]
 ---
 --- EPSG 3699 : NAD83(NSRS2007) / Wisconsin South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3699,'EPSG',3699,'PROJCS["NAD83(NSRS2007) / Wisconsin South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3699,'EPSG',3699,'PROJCS["NAD83(NSRS2007) / Wisconsin South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[" [...]
 ---
 --- EPSG 3700 : NAD83(NSRS2007) / Wisconsin South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3700,'EPSG',3700,'PROJCS["NAD83(NSRS2007) / Wisconsin South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3700,'EPSG',3700,'PROJCS["NAD83(NSRS2007) / Wisconsin South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJE [...]
 ---
 --- EPSG 3701 : NAD83(NSRS2007) / Wisconsin Transverse Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3701,'EPSG',3701,'PROJCS["NAD83(NSRS2007) / Wisconsin Transverse Mercator",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3701,'EPSG',3701,'PROJCS["NAD83(NSRS2007) / Wisconsin Transverse Mercator",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"] [...]
 ---
 --- EPSG 3702 : NAD83(NSRS2007) / Wyoming East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3702,'EPSG',3702,'PROJCS["NAD83(NSRS2007) / Wyoming East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3702,'EPSG',3702,'PROJCS["NAD83(NSRS2007) / Wyoming East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3703 : NAD83(NSRS2007) / Wyoming East Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3703,'EPSG',3703,'PROJCS["NAD83(NSRS2007) / Wyoming East Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3703,'EPSG',3703,'PROJCS["NAD83(NSRS2007) / Wyoming East Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3704 : NAD83(NSRS2007) / Wyoming West Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3704,'EPSG',3704,'PROJCS["NAD83(NSRS2007) / Wyoming West Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3704,'EPSG',3704,'PROJCS["NAD83(NSRS2007) / Wyoming West Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECT [...]
 ---
 --- EPSG 3705 : NAD83(NSRS2007) / Wyoming West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3705,'EPSG',3705,'PROJCS["NAD83(NSRS2007) / Wyoming West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3705,'EPSG',3705,'PROJCS["NAD83(NSRS2007) / Wyoming West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3706 : NAD83(NSRS2007) / UTM zone 59N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3706,'EPSG',3706,'PROJCS["NAD83(NSRS2007) / UTM zone 59N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3706,'EPSG',3706,'PROJCS["NAD83(NSRS2007) / UTM zone 59N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3707 : NAD83(NSRS2007) / UTM zone 60N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3707,'EPSG',3707,'PROJCS["NAD83(NSRS2007) / UTM zone 60N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3707,'EPSG',3707,'PROJCS["NAD83(NSRS2007) / UTM zone 60N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3708 : NAD83(NSRS2007) / UTM zone 1N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3708,'EPSG',3708,'PROJCS["NAD83(NSRS2007) / UTM zone 1N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3708,'EPSG',3708,'PROJCS["NAD83(NSRS2007) / UTM zone 1N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3709 : NAD83(NSRS2007) / UTM zone 2N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3709,'EPSG',3709,'PROJCS["NAD83(NSRS2007) / UTM zone 2N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3709,'EPSG',3709,'PROJCS["NAD83(NSRS2007) / UTM zone 2N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3710 : NAD83(NSRS2007) / UTM zone 3N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3710,'EPSG',3710,'PROJCS["NAD83(NSRS2007) / UTM zone 3N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3710,'EPSG',3710,'PROJCS["NAD83(NSRS2007) / UTM zone 3N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3711 : NAD83(NSRS2007) / UTM zone 4N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3711,'EPSG',3711,'PROJCS["NAD83(NSRS2007) / UTM zone 4N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3711,'EPSG',3711,'PROJCS["NAD83(NSRS2007) / UTM zone 4N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3712 : NAD83(NSRS2007) / UTM zone 5N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3712,'EPSG',3712,'PROJCS["NAD83(NSRS2007) / UTM zone 5N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3712,'EPSG',3712,'PROJCS["NAD83(NSRS2007) / UTM zone 5N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3713 : NAD83(NSRS2007) / UTM zone 6N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3713,'EPSG',3713,'PROJCS["NAD83(NSRS2007) / UTM zone 6N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3713,'EPSG',3713,'PROJCS["NAD83(NSRS2007) / UTM zone 6N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3714 : NAD83(NSRS2007) / UTM zone 7N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3714,'EPSG',3714,'PROJCS["NAD83(NSRS2007) / UTM zone 7N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3714,'EPSG',3714,'PROJCS["NAD83(NSRS2007) / UTM zone 7N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3715 : NAD83(NSRS2007) / UTM zone 8N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3715,'EPSG',3715,'PROJCS["NAD83(NSRS2007) / UTM zone 8N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3715,'EPSG',3715,'PROJCS["NAD83(NSRS2007) / UTM zone 8N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3716 : NAD83(NSRS2007) / UTM zone 9N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3716,'EPSG',3716,'PROJCS["NAD83(NSRS2007) / UTM zone 9N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3716,'EPSG',3716,'PROJCS["NAD83(NSRS2007) / UTM zone 9N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tran [...]
 ---
 --- EPSG 3717 : NAD83(NSRS2007) / UTM zone 10N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3717,'EPSG',3717,'PROJCS["NAD83(NSRS2007) / UTM zone 10N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3717,'EPSG',3717,'PROJCS["NAD83(NSRS2007) / UTM zone 10N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3718 : NAD83(NSRS2007) / UTM zone 11N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3718,'EPSG',3718,'PROJCS["NAD83(NSRS2007) / UTM zone 11N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3718,'EPSG',3718,'PROJCS["NAD83(NSRS2007) / UTM zone 11N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3719 : NAD83(NSRS2007) / UTM zone 12N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3719,'EPSG',3719,'PROJCS["NAD83(NSRS2007) / UTM zone 12N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3719,'EPSG',3719,'PROJCS["NAD83(NSRS2007) / UTM zone 12N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3720 : NAD83(NSRS2007) / UTM zone 13N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3720,'EPSG',3720,'PROJCS["NAD83(NSRS2007) / UTM zone 13N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3720,'EPSG',3720,'PROJCS["NAD83(NSRS2007) / UTM zone 13N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3721 : NAD83(NSRS2007) / UTM zone 14N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3721,'EPSG',3721,'PROJCS["NAD83(NSRS2007) / UTM zone 14N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3721,'EPSG',3721,'PROJCS["NAD83(NSRS2007) / UTM zone 14N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3722 : NAD83(NSRS2007) / UTM zone 15N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3722,'EPSG',3722,'PROJCS["NAD83(NSRS2007) / UTM zone 15N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3722,'EPSG',3722,'PROJCS["NAD83(NSRS2007) / UTM zone 15N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3723 : NAD83(NSRS2007) / UTM zone 16N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3723,'EPSG',3723,'PROJCS["NAD83(NSRS2007) / UTM zone 16N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3723,'EPSG',3723,'PROJCS["NAD83(NSRS2007) / UTM zone 16N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3724 : NAD83(NSRS2007) / UTM zone 17N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3724,'EPSG',3724,'PROJCS["NAD83(NSRS2007) / UTM zone 17N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3724,'EPSG',3724,'PROJCS["NAD83(NSRS2007) / UTM zone 17N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3725 : NAD83(NSRS2007) / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3725,'EPSG',3725,'PROJCS["NAD83(NSRS2007) / UTM zone 18N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3725,'EPSG',3725,'PROJCS["NAD83(NSRS2007) / UTM zone 18N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3726 : NAD83(NSRS2007) / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3726,'EPSG',3726,'PROJCS["NAD83(NSRS2007) / UTM zone 19N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3726,'EPSG',3726,'PROJCS["NAD83(NSRS2007) / UTM zone 19N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3727 : Reunion 1947 / TM Reunion
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3727,'EPSG',3727,'PROJCS["Reunion 1947 / TM Reunion",GEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[94,-948,-1262,0,0,0,0],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3727,'EPSG',3727,'PROJCS["Reunion 1947 / TM Reunion",GEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[94,-948,-1262,0,0,0,0],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3728 : NAD83(NSRS2007) / Ohio North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3728,'EPSG',3728,'PROJCS["NAD83(NSRS2007) / Ohio North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US s [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3728,'EPSG',3728,'PROJCS["NAD83(NSRS2007) / Ohio North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3729 : NAD83(NSRS2007) / Ohio South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3729,'EPSG',3729,'PROJCS["NAD83(NSRS2007) / Ohio South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US s [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3729,'EPSG',3729,'PROJCS["NAD83(NSRS2007) / Ohio South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
 ---
 --- EPSG 3730 : NAD83(NSRS2007) / Wyoming East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3730,'EPSG',3730,'PROJCS["NAD83(NSRS2007) / Wyoming East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3730,'EPSG',3730,'PROJCS["NAD83(NSRS2007) / Wyoming East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3731 : NAD83(NSRS2007) / Wyoming East Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3731,'EPSG',3731,'PROJCS["NAD83(NSRS2007) / Wyoming East Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3731,'EPSG',3731,'PROJCS["NAD83(NSRS2007) / Wyoming East Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
 ---
 --- EPSG 3732 : NAD83(NSRS2007) / Wyoming West Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3732,'EPSG',3732,'PROJCS["NAD83(NSRS2007) / Wyoming West Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3732,'EPSG',3732,'PROJCS["NAD83(NSRS2007) / Wyoming West Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]], [...]
 ---
 --- EPSG 3733 : NAD83(NSRS2007) / Wyoming West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3733,'EPSG',3733,'PROJCS["NAD83(NSRS2007) / Wyoming West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3733,'EPSG',3733,'PROJCS["NAD83(NSRS2007) / Wyoming West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
 ---
 --- EPSG 3734 : NAD83 / Ohio North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3734,'EPSG',3734,'PROJCS["NAD83 / Ohio North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3734,'EPSG',3734,'PROJCS["NAD83 / Ohio North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
 --- EPSG 3735 : NAD83 / Ohio South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3735,'EPSG',3735,'PROJCS["NAD83 / Ohio South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3735,'EPSG',3735,'PROJCS["NAD83 / Ohio South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
 --- EPSG 3736 : NAD83 / Wyoming East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3736,'EPSG',3736,'PROJCS["NAD83 / Wyoming East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3736,'EPSG',3736,'PROJCS["NAD83 / Wyoming East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3737 : NAD83 / Wyoming East Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3737,'EPSG',3737,'PROJCS["NAD83 / Wyoming East Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.304800609601219 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3737,'EPSG',3737,'PROJCS["NAD83 / Wyoming East Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 3738 : NAD83 / Wyoming West Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3738,'EPSG',3738,'PROJCS["NAD83 / Wyoming West Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.304800609601219 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3738,'EPSG',3738,'PROJCS["NAD83 / Wyoming West Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 3739 : NAD83 / Wyoming West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3739,'EPSG',3739,'PROJCS["NAD83 / Wyoming West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3739,'EPSG',3739,'PROJCS["NAD83 / Wyoming West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
 --- EPSG 3740 : NAD83(HARN) / UTM zone 10N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3740,'EPSG',3740,'PROJCS["NAD83(HARN) / UTM zone 10N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3740,'EPSG',3740,'PROJCS["NAD83(HARN) / UTM zone 10N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3741 : NAD83(HARN) / UTM zone 11N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3741,'EPSG',3741,'PROJCS["NAD83(HARN) / UTM zone 11N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3741,'EPSG',3741,'PROJCS["NAD83(HARN) / UTM zone 11N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3742 : NAD83(HARN) / UTM zone 12N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3742,'EPSG',3742,'PROJCS["NAD83(HARN) / UTM zone 12N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3742,'EPSG',3742,'PROJCS["NAD83(HARN) / UTM zone 12N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3743 : NAD83(HARN) / UTM zone 13N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3743,'EPSG',3743,'PROJCS["NAD83(HARN) / UTM zone 13N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3743,'EPSG',3743,'PROJCS["NAD83(HARN) / UTM zone 13N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3744 : NAD83(HARN) / UTM zone 14N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3744,'EPSG',3744,'PROJCS["NAD83(HARN) / UTM zone 14N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3744,'EPSG',3744,'PROJCS["NAD83(HARN) / UTM zone 14N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3745 : NAD83(HARN) / UTM zone 15N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3745,'EPSG',3745,'PROJCS["NAD83(HARN) / UTM zone 15N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3745,'EPSG',3745,'PROJCS["NAD83(HARN) / UTM zone 15N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3746 : NAD83(HARN) / UTM zone 16N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3746,'EPSG',3746,'PROJCS["NAD83(HARN) / UTM zone 16N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3746,'EPSG',3746,'PROJCS["NAD83(HARN) / UTM zone 16N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3747 : NAD83(HARN) / UTM zone 17N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3747,'EPSG',3747,'PROJCS["NAD83(HARN) / UTM zone 17N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3747,'EPSG',3747,'PROJCS["NAD83(HARN) / UTM zone 17N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3748 : NAD83(HARN) / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3748,'EPSG',3748,'PROJCS["NAD83(HARN) / UTM zone 18N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3748,'EPSG',3748,'PROJCS["NAD83(HARN) / UTM zone 18N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3749 : NAD83(HARN) / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3749,'EPSG',3749,'PROJCS["NAD83(HARN) / UTM zone 19N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3749,'EPSG',3749,'PROJCS["NAD83(HARN) / UTM zone 19N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3750 : NAD83(HARN) / UTM zone 4N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3750,'EPSG',3750,'PROJCS["NAD83(HARN) / UTM zone 4N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3750,'EPSG',3750,'PROJCS["NAD83(HARN) / UTM zone 4N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 3751 : NAD83(HARN) / UTM zone 5N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3751,'EPSG',3751,'PROJCS["NAD83(HARN) / UTM zone 5N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3751,'EPSG',3751,'PROJCS["NAD83(HARN) / UTM zone 5N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 3752 : WGS 84 / Mercator 41 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3752,'EPSG',3752,'PROJCS["WGS 84 / Mercator 41 (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["lat [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3752,'EPSG',3752,'PROJCS["WGS 84 / Mercator 41 (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["latitude_of_origin",-41],PARAMETER["central_ [...]
 ---
 --- EPSG 3753 : NAD83(HARN) / Ohio North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3753,'EPSG',3753,'PROJCS["NAD83(HARN) / Ohio North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.30 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3753,'EPSG',3753,'PROJCS["NAD83(HARN) / Ohio North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 3754 : NAD83(HARN) / Ohio South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3754,'EPSG',3754,'PROJCS["NAD83(HARN) / Ohio South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.30 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3754,'EPSG',3754,'PROJCS["NAD83(HARN) / Ohio South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
 ---
 --- EPSG 3755 : NAD83(HARN) / Wyoming East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3755,'EPSG',3755,'PROJCS["NAD83(HARN) / Wyoming East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3755,'EPSG',3755,'PROJCS["NAD83(HARN) / Wyoming East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 3756 : NAD83(HARN) / Wyoming East Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3756,'EPSG',3756,'PROJCS["NAD83(HARN) / Wyoming East Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3756,'EPSG',3756,'PROJCS["NAD83(HARN) / Wyoming East Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3757 : NAD83(HARN) / Wyoming West Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3757,'EPSG',3757,'PROJCS["NAD83(HARN) / Wyoming West Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey  [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3757,'EPSG',3757,'PROJCS["NAD83(HARN) / Wyoming West Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Tra [...]
 ---
 --- EPSG 3758 : NAD83(HARN) / Wyoming West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3758,'EPSG',3758,'PROJCS["NAD83(HARN) / Wyoming West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3758,'EPSG',3758,'PROJCS["NAD83(HARN) / Wyoming West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 3759 : NAD83 / Hawaii zone 3 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3759,'EPSG',3759,'PROJCS["NAD83 / Hawaii zone 3 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3759,'EPSG',3759,'PROJCS["NAD83 / Hawaii zone 3 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 3760 : NAD83(HARN) / Hawaii zone 3 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3760,'EPSG',3760,'PROJCS["NAD83(HARN) / Hawaii zone 3 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3760,'EPSG',3760,'PROJCS["NAD83(HARN) / Hawaii zone 3 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse [...]
 ---
 --- EPSG 3761 : NAD83(CSRS) / UTM zone 22N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3761,'EPSG',3761,'PROJCS["NAD83(CSRS) / UTM zone 22N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3761,'EPSG',3761,'PROJCS["NAD83(CSRS) / UTM zone 22N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3762 : WGS 84 / South Georgia Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3762,'EPSG',3762,'PROJCS["WGS 84 / South Georgia Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3762,'EPSG',3762,'PROJCS["WGS 84 / South Georgia Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-54],PARAME [...]
 ---
 --- EPSG 3763 : ETRS89 / Portugal TM06
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3763,'EPSG',3763,'PROJCS["ETRS89 / Portugal TM06",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3763,'EPSG',3763,'PROJCS["ETRS89 / Portugal TM06",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"], [...]
 ---
 --- EPSG 3764 : NZGD2000 / Chatham Island Circuit 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3764,'EPSG',3764,'PROJCS["NZGD2000 / Chatham Island Circuit 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3764,'EPSG',3764,'PROJCS["NZGD2000 / Chatham Island Circuit 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Merc [...]
 ---
 --- EPSG 3765 : HTRS96 / Croatia TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3765,'EPSG',3765,'PROJCS["HTRS96 / Croatia TM",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3765,'EPSG',3765,'PROJCS["HTRS96 / Croatia TM",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 3766 : HTRS96 / Croatia LCC
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3766,'EPSG',3766,'PROJCS["HTRS96 / Croatia LCC",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3766,'EPSG',3766,'PROJCS["HTRS96 / Croatia LCC",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
 --- EPSG 3767 : HTRS96 / UTM zone 33N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3767,'EPSG',3767,'PROJCS["HTRS96 / UTM zone 33N",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3767,'EPSG',3767,'PROJCS["HTRS96 / UTM zone 33N",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 3768 : HTRS96 / UTM zone 34N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3768,'EPSG',3768,'PROJCS["HTRS96 / UTM zone 34N",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3768,'EPSG',3768,'PROJCS["HTRS96 / UTM zone 34N",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 3769 : Bermuda 1957 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3769,'EPSG',3769,'PROJCS["Bermuda 1957 / UTM zone 20N",GEOGCS["Bermuda 1957",DATUM["Bermuda_1957",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-73,213,296,0,0,0,0],AUTHORITY["EPSG","6216"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4216"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3769,'EPSG',3769,'PROJCS["Bermuda 1957 / UTM zone 20N",GEOGCS["Bermuda 1957",DATUM["Bermuda_1957",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-73,213,296,0,0,0,0],AUTHORITY["EPSG","6216"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4216"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
 --- EPSG 3770 : BDA2000 / Bermuda 2000 National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3770,'EPSG',3770,'PROJCS["BDA2000 / Bermuda 2000 National Grid",GEOGCS["BDA2000",DATUM["Bermuda_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6762"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4762"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3770,'EPSG',3770,'PROJCS["BDA2000 / Bermuda 2000 National Grid",GEOGCS["BDA2000",DATUM["Bermuda_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6762"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4762"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
 --- EPSG 3771 : NAD27 / Alberta 3TM ref merid 111 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3771,'EPSG',3771,'PROJCS["NAD27 / Alberta 3TM ref merid 111 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3771,'EPSG',3771,'PROJCS["NAD27 / Alberta 3TM ref merid 111 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 3772 : NAD27 / Alberta 3TM ref merid 114 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3772,'EPSG',3772,'PROJCS["NAD27 / Alberta 3TM ref merid 114 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3772,'EPSG',3772,'PROJCS["NAD27 / Alberta 3TM ref merid 114 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 3773 : NAD27 / Alberta 3TM ref merid 117 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3773,'EPSG',3773,'PROJCS["NAD27 / Alberta 3TM ref merid 117 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3773,'EPSG',3773,'PROJCS["NAD27 / Alberta 3TM ref merid 117 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 3774 : NAD27 / Alberta 3TM ref merid 120 W (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3774,'EPSG',3774,'PROJCS["NAD27 / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3774,'EPSG',3774,'PROJCS["NAD27 / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 3775 : NAD83 / Alberta 3TM ref merid 111 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3775,'EPSG',3775,'PROJCS["NAD83 / Alberta 3TM ref merid 111 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3775,'EPSG',3775,'PROJCS["NAD83 / Alberta 3TM ref merid 111 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 3776 : NAD83 / Alberta 3TM ref merid 114 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3776,'EPSG',3776,'PROJCS["NAD83 / Alberta 3TM ref merid 114 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3776,'EPSG',3776,'PROJCS["NAD83 / Alberta 3TM ref merid 114 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 3777 : NAD83 / Alberta 3TM ref merid 117 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3777,'EPSG',3777,'PROJCS["NAD83 / Alberta 3TM ref merid 117 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3777,'EPSG',3777,'PROJCS["NAD83 / Alberta 3TM ref merid 117 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 3778 : NAD83 / Alberta 3TM ref merid 120 W (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3778,'EPSG',3778,'PROJCS["NAD83 / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3778,'EPSG',3778,'PROJCS["NAD83 / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 3779 : NAD83(CSRS) / Alberta 3TM ref merid 111 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3779,'EPSG',3779,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 111 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3779,'EPSG',3779,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 111 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["T [...]
 ---
 --- EPSG 3780 : NAD83(CSRS) / Alberta 3TM ref merid 114 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3780,'EPSG',3780,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 114 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3780,'EPSG',3780,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 114 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["T [...]
 ---
 --- EPSG 3781 : NAD83(CSRS) / Alberta 3TM ref merid 117 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3781,'EPSG',3781,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 117 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3781,'EPSG',3781,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 117 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["T [...]
 ---
 --- EPSG 3782 : NAD83(CSRS) / Alberta 3TM ref merid 120 W (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3782,'EPSG',3782,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3782,'EPSG',3782,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]], [...]
 ---
 --- EPSG 3783 : Pitcairn 2006 / Pitcairn TM 2006
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3783,'EPSG',3783,'PROJCS["Pitcairn 2006 / Pitcairn TM 2006",GEOGCS["Pitcairn 2006",DATUM["Pitcairn_2006",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6763"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4763"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3783,'EPSG',3783,'PROJCS["Pitcairn 2006 / Pitcairn TM 2006",GEOGCS["Pitcairn 2006",DATUM["Pitcairn_2006",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6763"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4763"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 3784 : Pitcairn 1967 / UTM zone 9S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3784,'EPSG',3784,'PROJCS["Pitcairn 1967 / UTM zone 9S",GEOGCS["Pitcairn 1967",DATUM["Pitcairn_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[185,165,42,0,0,0,0],AUTHORITY["EPSG","6729"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4729"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3784,'EPSG',3784,'PROJCS["Pitcairn 1967 / UTM zone 9S",GEOGCS["Pitcairn 1967",DATUM["Pitcairn_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[185,165,42,0,0,0,0],AUTHORITY["EPSG","6729"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4729"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
 --- EPSG 3785 : Popular Visualisation CRS / Mercator (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3785,'EPSG',3785,'PROJCS["Popular Visualisation CRS / Mercator (deprecated)",GEOGCS["Popular Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","405 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3785,'EPSG',3785,'PROJCS["Popular Visualisation CRS / Mercator (deprecated)",GEOGCS["Popular Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","405 [...]
 ---
 --- EPSG 3786 : World Equidistant Cylindrical (Sphere) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3786,'EPSG',3786,'PROJCS["World Equidistant Cylindrical (Sphere) (deprecated)",GEOGCS["Unspecified datum based upon the GRS 1980 Authalic Sphere",DATUM["Not_specified_based_on_GRS_1980_Authalic_Sphere",SPHEROID["GRS 1980 Authalic Sphere",6371007,0,AUTHORITY["EPSG","7048"]],AUTHORITY["EPSG","6047"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","91 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3786,'EPSG',3786,'PROJCS["World Equidistant Cylindrical (Sphere) (deprecated)",GEOGCS["Unspecified datum based upon the GRS 1980 Authalic Sphere",DATUM["Not_specified_based_on_GRS_1980_Authalic_Sphere",SPHEROID["GRS 1980 Authalic Sphere",6371007,0,AUTHORITY["EPSG","7048"]],AUTHORITY["EPSG","6047"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","91 [...]
 ---
 --- EPSG 3787 : MGI / Slovene National Grid (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3787,'EPSG',3787,'PROJCS["MGI / Slovene National Grid (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3787,'EPSG',3787,'PROJCS["MGI / Slovene National Grid (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG", [...]
 ---
 --- EPSG 3788 : NZGD2000 / Auckland Islands TM 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3788,'EPSG',3788,'PROJCS["NZGD2000 / Auckland Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3788,'EPSG',3788,'PROJCS["NZGD2000 / Auckland Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3789 : NZGD2000 / Campbell Island TM 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3789,'EPSG',3789,'PROJCS["NZGD2000 / Campbell Island TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3789,'EPSG',3789,'PROJCS["NZGD2000 / Campbell Island TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 3790 : NZGD2000 / Antipodes Islands TM 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3790,'EPSG',3790,'PROJCS["NZGD2000 / Antipodes Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3790,'EPSG',3790,'PROJCS["NZGD2000 / Antipodes Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 3791 : NZGD2000 / Raoul Island TM 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3791,'EPSG',3791,'PROJCS["NZGD2000 / Raoul Island TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3791,'EPSG',3791,'PROJCS["NZGD2000 / Raoul Island TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"], [...]
 ---
 --- EPSG 3793 : NZGD2000 / Chatham Islands TM 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3793,'EPSG',3793,'PROJCS["NZGD2000 / Chatham Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3793,'EPSG',3793,'PROJCS["NZGD2000 / Chatham Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator [...]
 ---
 --- EPSG 3794 : Slovenia 1996 / Slovene National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3794,'EPSG',3794,'PROJCS["Slovenia 1996 / Slovene National Grid",GEOGCS["Slovenia 1996",DATUM["Slovenia_Geodetic_Datum_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6765"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4765"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3794,'EPSG',3794,'PROJCS["Slovenia 1996 / Slovene National Grid",GEOGCS["Slovenia 1996",DATUM["Slovenia_Geodetic_Datum_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6765"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4765"]],PROJECTION["Transverse_Mer [...]
 ---
 --- EPSG 3795 : NAD27 / Cuba Norte
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3795,'EPSG',3795,'PROJCS["NAD27 / Cuba Norte",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3795,'EPSG',3795,'PROJCS["NAD27 / Cuba Norte",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel [...]
 ---
 --- EPSG 3796 : NAD27 / Cuba Sur
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3796,'EPSG',3796,'PROJCS["NAD27 / Cuba Sur",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_C [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3796,'EPSG',3796,'PROJCS["NAD27 / Cuba Sur",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1 [...]
 ---
 --- EPSG 3797 : NAD27 / MTQ Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3797,'EPSG',3797,'PROJCS["NAD27 / MTQ Lambert",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conforma [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3797,'EPSG',3797,'PROJCS["NAD27 / MTQ Lambert",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_paralle [...]
 ---
 --- EPSG 3798 : NAD83 / MTQ Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3798,'EPSG',3798,'PROJCS["NAD83 / MTQ Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["La [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3798,'EPSG',3798,'PROJCS["NAD83 / MTQ Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["st [...]
 ---
 --- EPSG 3799 : NAD83(CSRS) / MTQ Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3799,'EPSG',3799,'PROJCS["NAD83(CSRS) / MTQ Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3799,'EPSG',3799,'PROJCS["NAD83(CSRS) / MTQ Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert_Conformal [...]
 ---
 --- EPSG 3800 : NAD27 / Alberta 3TM ref merid 120 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3800,'EPSG',3800,'PROJCS["NAD27 / Alberta 3TM ref merid 120 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3800,'EPSG',3800,'PROJCS["NAD27 / Alberta 3TM ref merid 120 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 3801 : NAD83 / Alberta 3TM ref merid 120 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3801,'EPSG',3801,'PROJCS["NAD83 / Alberta 3TM ref merid 120 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3801,'EPSG',3801,'PROJCS["NAD83 / Alberta 3TM ref merid 120 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
 --- EPSG 3802 : NAD83(CSRS) / Alberta 3TM ref merid 120 W
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3802,'EPSG',3802,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 120 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3802,'EPSG',3802,'PROJCS["NAD83(CSRS) / Alberta 3TM ref merid 120 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["T [...]
 ---
 --- EPSG 3812 : ETRS89 / Belgian Lambert 2008
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3812,'EPSG',3812,'PROJCS["ETRS89 / Belgian Lambert 2008",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3812,'EPSG',3812,'PROJCS["ETRS89 / Belgian Lambert 2008",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Conform [...]
 ---
 --- EPSG 3814 : NAD83 / Mississippi TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3814,'EPSG',3814,'PROJCS["NAD83 / Mississippi TM",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3814,'EPSG',3814,'PROJCS["NAD83 / Mississippi TM",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
 --- EPSG 3815 : NAD83(HARN) / Mississippi TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3815,'EPSG',3815,'PROJCS["NAD83(HARN) / Mississippi TM",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3815,'EPSG',3815,'PROJCS["NAD83(HARN) / Mississippi TM",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 3816 : NAD83(NSRS2007) / Mississippi TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3816,'EPSG',3816,'PROJCS["NAD83(NSRS2007) / Mississippi TM",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3816,'EPSG',3816,'PROJCS["NAD83(NSRS2007) / Mississippi TM",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["T [...]
 ---
 --- EPSG 3825 : TWD97 / TM2 zone 119
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3825,'EPSG',3825,'PROJCS["TWD97 / TM2 zone 119",GEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transvers [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3825,'EPSG',3825,'PROJCS["TWD97 / TM2 zone 119",GEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origi [...]
 ---
 --- EPSG 3826 : TWD97 / TM2 zone 121
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3826,'EPSG',3826,'PROJCS["TWD97 / TM2 zone 121",GEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transvers [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3826,'EPSG',3826,'PROJCS["TWD97 / TM2 zone 121",GEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origi [...]
 ---
 --- EPSG 3827 : TWD67 / TM2 zone 119
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3827,'EPSG',3827,'PROJCS["TWD67 / TM2 zone 119",GEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3827,'EPSG',3827,'PROJCS["TWD67 / TM2 zone 119",GEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
 --- EPSG 3828 : TWD67 / TM2 zone 121
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3828,'EPSG',3828,'PROJCS["TWD67 / TM2 zone 121",GEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3828,'EPSG',3828,'PROJCS["TWD67 / TM2 zone 121",GEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
---- EPSG 3829 : Hu Tzu Shan / UTM zone 51N
+--- EPSG 3829 : Hu Tzu Shan 1950 / UTM zone 51N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3829,'EPSG',3829,'PROJCS["Hu Tzu Shan / UTM zone 51N",GEOGCS["Hu Tzu Shan 1950",DATUM["Hu_Tzu_Shan_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-637,-549,-203,0,0,0,0],AUTHORITY["EPSG","6236"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4236"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3829,'EPSG',3829,'PROJCS["Hu Tzu Shan 1950 / UTM zone 51N",GEOGCS["Hu Tzu Shan 1950",DATUM["Hu_Tzu_Shan_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-637,-549,-203,0,0,0,0],AUTHORITY["EPSG","6236"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4236"]],PROJECTION["Transverse_Mercator" [...]
 ---
 --- EPSG 3832 : WGS 84 / PDC Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3832,'EPSG',3832,'PROJCS["WGS 84 / PDC Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridia [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3832,'EPSG',3832,'PROJCS["WGS 84 / PDC Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAM [...]
 ---
 --- EPSG 3833 : Pulkovo 1942(58) / Gauss-Kruger zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3833,'EPSG',3833,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 2",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3833,'EPSG',3833,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 2",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJEC [...]
 ---
 --- EPSG 3834 : Pulkovo 1942(83) / Gauss-Kruger zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3834,'EPSG',3834,'PROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 2",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3834,'EPSG',3834,'PROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 2",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3835 : Pulkovo 1942(83) / Gauss-Kruger zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3835,'EPSG',3835,'PROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3835,'EPSG',3835,'PROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3836 : Pulkovo 1942(83) / Gauss-Kruger zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3836,'EPSG',3836,'PROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3836,'EPSG',3836,'PROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transverse_Mercato [...]
 ---
 --- EPSG 3837 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3837,'EPSG',3837,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3837,'EPSG',3837,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
 ---
 --- EPSG 3838 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3838,'EPSG',3838,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3838,'EPSG',3838,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
 ---
 --- EPSG 3839 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3839,'EPSG',3839,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3839,'EPSG',3839,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179" [...]
 ---
 --- EPSG 3840 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3840,'EPSG',3840,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3840,'EPSG',3840,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179 [...]
 ---
 --- EPSG 3841 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3841,'EPSG',3841,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3841,'EPSG',3841,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 3842 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3842,'EPSG',3842,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3842,'EPSG',3842,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTI [...]
 ---
 --- EPSG 3843 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3843,'EPSG',3843,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3843,'EPSG',3843,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTI [...]
 ---
 --- EPSG 3844 : Pulkovo 1942(58) / Stereo70
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3844,'EPSG',3844,'PROJCS["Pulkovo 1942(58) / Stereo70",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[2.329,-147.042,-92.08,0.309,-0.325,-0.497,5.69],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3844,'EPSG',3844,'PROJCS["Pulkovo 1942(58) / Stereo70",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[2.329,-147.042,-92.08,0.309,-0.325,-0.497,5.69],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],PROJECTION["Ob [...]
 ---
 --- EPSG 3845 : SWEREF99 / RT90 7.5 gon V emulation
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3845,'EPSG',3845,'PROJCS["SWEREF99 / RT90 7.5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3845,'EPSG',3845,'PROJCS["SWEREF99 / RT90 7.5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 3846 : SWEREF99 / RT90 5 gon V emulation
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3846,'EPSG',3846,'PROJCS["SWEREF99 / RT90 5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3846,'EPSG',3846,'PROJCS["SWEREF99 / RT90 5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
 --- EPSG 3847 : SWEREF99 / RT90 2.5 gon V emulation
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3847,'EPSG',3847,'PROJCS["SWEREF99 / RT90 2.5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3847,'EPSG',3847,'PROJCS["SWEREF99 / RT90 2.5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 3848 : SWEREF99 / RT90 0 gon emulation
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3848,'EPSG',3848,'PROJCS["SWEREF99 / RT90 0 gon emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tran [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3848,'EPSG',3848,'PROJCS["SWEREF99 / RT90 0 gon emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ [...]
 ---
 --- EPSG 3849 : SWEREF99 / RT90 2.5 gon O emulation
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3849,'EPSG',3849,'PROJCS["SWEREF99 / RT90 2.5 gon O emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3849,'EPSG',3849,'PROJCS["SWEREF99 / RT90 2.5 gon O emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
 --- EPSG 3850 : SWEREF99 / RT90 5 gon O emulation
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3850,'EPSG',3850,'PROJCS["SWEREF99 / RT90 5 gon O emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3850,'EPSG',3850,'PROJCS["SWEREF99 / RT90 5 gon O emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
 --- EPSG 3851 : NZGD2000 / NZCS2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3851,'EPSG',3851,'PROJCS["NZGD2000 / NZCS2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3851,'EPSG',3851,'PROJCS["NZGD2000 / NZCS2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
 --- EPSG 3852 : RSRGD2000 / DGLC2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3852,'EPSG',3852,'PROJCS["RSRGD2000 / DGLC2000",GEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3852,'EPSG',3852,'PROJCS["RSRGD2000 / DGLC2000",GEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
 --- EPSG 3854 : County ST74
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3854,'EPSG',3854,'PROJCS["County ST74",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PA [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3854,'EPSG',3854,'PROJCS["County ST74",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER [...]
 ---
 --- EPSG 3857 : WGS 84 / Pseudo-Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3857,'EPSG',3857,'PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meri [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3857,'EPSG',3857,'PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARA [...]
 ---
---- EPSG 3873 : None
+--- EPSG 3873 : ETRS89 / GK19FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3873,'EPSG',3873,'PROJCS["ETRS89 / GK19FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3874 : None
+--- EPSG 3874 : ETRS89 / GK20FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3874,'EPSG',3874,'PROJCS["ETRS89 / GK20FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3875 : None
+--- EPSG 3875 : ETRS89 / GK21FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3875,'EPSG',3875,'PROJCS["ETRS89 / GK21FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3876 : None
+--- EPSG 3876 : ETRS89 / GK22FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3876,'EPSG',3876,'PROJCS["ETRS89 / GK22FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3877 : None
+--- EPSG 3877 : ETRS89 / GK23FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3877,'EPSG',3877,'PROJCS["ETRS89 / GK23FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3878 : None
+--- EPSG 3878 : ETRS89 / GK24FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3878,'EPSG',3878,'PROJCS["ETRS89 / GK24FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3879 : None
+--- EPSG 3879 : ETRS89 / GK25FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3879,'EPSG',3879,'PROJCS["ETRS89 / GK25FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3880 : None
+--- EPSG 3880 : ETRS89 / GK26FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3880,'EPSG',3880,'PROJCS["ETRS89 / GK26FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3881 : None
+--- EPSG 3881 : ETRS89 / GK27FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3881,'EPSG',3881,'PROJCS["ETRS89 / GK27FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3882 : None
+--- EPSG 3882 : ETRS89 / GK28FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3882,'EPSG',3882,'PROJCS["ETRS89 / GK28FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3883 : None
+--- EPSG 3883 : ETRS89 / GK29FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3883,'EPSG',3883,'PROJCS["ETRS89 / GK29FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3884 : None
+--- EPSG 3884 : ETRS89 / GK30FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3884,'EPSG',3884,'PROJCS["ETRS89 / GK30FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 3885 : None
+--- EPSG 3885 : ETRS89 / GK31FIN
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3885,'EPSG',3885,'PROJCS["ETRS89 / GK31FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 3890 : IGRS / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3890,'EPSG',3890,'PROJCS["IGRS / UTM zone 37N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3890,'EPSG',3890,'PROJCS["IGRS / UTM zone 37N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 3891 : IGRS / UTM zone 38N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3891,'EPSG',3891,'PROJCS["IGRS / UTM zone 38N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3891,'EPSG',3891,'PROJCS["IGRS / UTM zone 38N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 3892 : IGRS / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3892,'EPSG',3892,'PROJCS["IGRS / UTM zone 39N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3892,'EPSG',3892,'PROJCS["IGRS / UTM zone 39N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
 --- EPSG 3893 : ED50 / Iraq National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3893,'EPSG',3893,'PROJCS["ED50 / Iraq National Grid",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3893,'EPSG',3893,'PROJCS["ED50 / Iraq National Grid",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 3907 : MGI 1901 / Balkans zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3907,'EPSG',3907,'PROJCS["MGI 1901 / Balkans zone 5",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3907,'EPSG',3907,'PROJCS["MGI 1901 / Balkans zone 5",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
 --- EPSG 3908 : MGI 1901 / Balkans zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3908,'EPSG',3908,'PROJCS["MGI 1901 / Balkans zone 6",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3908,'EPSG',3908,'PROJCS["MGI 1901 / Balkans zone 6",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
 --- EPSG 3909 : MGI 1901 / Balkans zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3909,'EPSG',3909,'PROJCS["MGI 1901 / Balkans zone 7",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3909,'EPSG',3909,'PROJCS["MGI 1901 / Balkans zone 7",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
 --- EPSG 3910 : MGI 1901 / Balkans zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3910,'EPSG',3910,'PROJCS["MGI 1901 / Balkans zone 8",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3910,'EPSG',3910,'PROJCS["MGI 1901 / Balkans zone 8",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
 --- EPSG 3911 : MGI 1901 / Slovenia Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3911,'EPSG',3911,'PROJCS["MGI 1901 / Slovenia Grid",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3911,'EPSG',3911,'PROJCS["MGI 1901 / Slovenia Grid",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
 --- EPSG 3912 : MGI 1901 / Slovene National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3912,'EPSG',3912,'PROJCS["MGI 1901 / Slovene National Grid",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3912,'EPSG',3912,'PROJCS["MGI 1901 / Slovene National Grid",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
 --- EPSG 3920 : Puerto Rico / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3920,'EPSG',3920,'PROJCS["Puerto Rico / UTM zone 20N",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3920,'EPSG',3920,'PROJCS["Puerto Rico / UTM zone 20N",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 3942 : RGF93 / CC42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3942,'EPSG',3942,'PROJCS["RGF93 / CC42",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3942,'EPSG',3942,'PROJCS["RGF93 / CC42",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
 --- EPSG 3943 : RGF93 / CC43
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3943,'EPSG',3943,'PROJCS["RGF93 / CC43",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3943,'EPSG',3943,'PROJCS["RGF93 / CC43",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
 --- EPSG 3944 : RGF93 / CC44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3944,'EPSG',3944,'PROJCS["RGF93 / CC44",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3944,'EPSG',3944,'PROJCS["RGF93 / CC44",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
 --- EPSG 3945 : RGF93 / CC45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3945,'EPSG',3945,'PROJCS["RGF93 / CC45",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3945,'EPSG',3945,'PROJCS["RGF93 / CC45",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
 --- EPSG 3946 : RGF93 / CC46
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3946,'EPSG',3946,'PROJCS["RGF93 / CC46",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3946,'EPSG',3946,'PROJCS["RGF93 / CC46",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
 --- EPSG 3947 : RGF93 / CC47
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3947,'EPSG',3947,'PROJCS["RGF93 / CC47",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3947,'EPSG',3947,'PROJCS["RGF93 / CC47",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
 --- EPSG 3948 : RGF93 / CC48
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3948,'EPSG',3948,'PROJCS["RGF93 / CC48",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3948,'EPSG',3948,'PROJCS["RGF93 / CC48",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
 --- EPSG 3949 : RGF93 / CC49
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3949,'EPSG',3949,'PROJCS["RGF93 / CC49",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3949,'EPSG',3949,'PROJCS["RGF93 / CC49",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
 --- EPSG 3950 : RGF93 / CC50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3950,'EPSG',3950,'PROJCS["RGF93 / CC50",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3950,'EPSG',3950,'PROJCS["RGF93 / CC50",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
 --- EPSG 3968 : NAD83 / Virginia Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3968,'EPSG',3968,'PROJCS["NAD83 / Virginia Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3968,'EPSG',3968,'PROJCS["NAD83 / Virginia Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
 ---
 --- EPSG 3969 : NAD83(HARN) / Virginia Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3969,'EPSG',3969,'PROJCS["NAD83(HARN) / Virginia Lambert",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3969,'EPSG',3969,'PROJCS["NAD83(HARN) / Virginia Lambert",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confor [...]
 ---
 --- EPSG 3970 : NAD83(NSRS2007) / Virginia Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3970,'EPSG',3970,'PROJCS["NAD83(NSRS2007) / Virginia Lambert",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3970,'EPSG',3970,'PROJCS["NAD83(NSRS2007) / Virginia Lambert",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION[ [...]
 ---
 --- EPSG 3973 : WGS 84 / NSIDC EASE-Grid North
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3973,'EPSG',3973,'PROJCS["WGS 84 / NSIDC EASE-Grid North",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMET [...]
 ---
 --- EPSG 3974 : WGS 84 / NSIDC EASE-Grid South
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3974,'EPSG',3974,'PROJCS["WGS 84 / NSIDC EASE-Grid South",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",-90],PARAME [...]
 ---
 --- EPSG 3975 : WGS 84 / NSIDC EASE-Grid Global
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3975,'EPSG',3975,'PROJCS["WGS 84 / NSIDC EASE-Grid Global",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cylindrical_Equal_Area"],PARAME [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3975,'EPSG',3975,'PROJCS["WGS 84 / NSIDC EASE-Grid Global",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["standard_parallel_1",30],PARAMETER[" [...]
 ---
 --- EPSG 3976 : WGS 84 / NSIDC Sea Ice Polar Stereographic South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3976,'EPSG',3976,'PROJCS["WGS 84 / NSIDC Sea Ice Polar Stereographic South",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereogr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3976,'EPSG',3976,'PROJCS["WGS 84 / NSIDC Sea Ice Polar Stereographic South",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-7 [...]
 ---
 --- EPSG 3978 : NAD83 / Canada Atlas Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3978,'EPSG',3978,'PROJCS["NAD83 / Canada Atlas Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3978,'EPSG',3978,'PROJCS["NAD83 / Canada Atlas Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
 --- EPSG 3979 : NAD83(CSRS) / Canada Atlas Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3979,'EPSG',3979,'PROJCS["NAD83(CSRS) / Canada Atlas Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3979,'EPSG',3979,'PROJCS["NAD83(CSRS) / Canada Atlas Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert_ [...]
 ---
 --- EPSG 3985 : Katanga 1955 / Katanga Lambert (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3985,'EPSG',3985,'PROJCS["Katanga 1955 / Katanga Lambert (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3985,'EPSG',3985,'PROJCS["Katanga 1955 / Katanga Lambert (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],PROJECTION [...]
 ---
 --- EPSG 3986 : Katanga 1955 / Katanga Gauss zone A
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3986,'EPSG',3986,'PROJCS["Katanga 1955 / Katanga Gauss zone A",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3986,'EPSG',3986,'PROJCS["Katanga 1955 / Katanga Gauss zone A",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],PROJECTION["Transv [...]
 ---
 --- EPSG 3987 : Katanga 1955 / Katanga Gauss zone B
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3987,'EPSG',3987,'PROJCS["Katanga 1955 / Katanga Gauss zone B",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3987,'EPSG',3987,'PROJCS["Katanga 1955 / Katanga Gauss zone B",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],PROJECTION["Transv [...]
 ---
 --- EPSG 3988 : Katanga 1955 / Katanga Gauss zone C
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3988,'EPSG',3988,'PROJCS["Katanga 1955 / Katanga Gauss zone C",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3988,'EPSG',3988,'PROJCS["Katanga 1955 / Katanga Gauss zone C",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],PROJECTION["Transv [...]
 ---
 --- EPSG 3989 : Katanga 1955 / Katanga Gauss zone D
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3989,'EPSG',3989,'PROJCS["Katanga 1955 / Katanga Gauss zone D",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3989,'EPSG',3989,'PROJCS["Katanga 1955 / Katanga Gauss zone D",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],PROJECTION["Transv [...]
 ---
 --- EPSG 3991 : Puerto Rico State Plane CS of 1927
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3991,'EPSG',3991,'PROJCS["Puerto Rico State Plane CS of 1927",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],UNIT["US survey foot",0.3048006096 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3991,'EPSG',3991,'PROJCS["Puerto Rico State Plane CS of 1927",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
 --- EPSG 3992 : Puerto Rico / St. Croix
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3992,'EPSG',3992,'PROJCS["Puerto Rico / St. Croix",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3992,'EPSG',3992,'PROJCS["Puerto Rico / St. Croix",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
 --- EPSG 3993 : Guam 1963 / Guam SPCS
 ---
@@ -9350,7499 +9402,10915 @@ INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4tex
 ---
 --- EPSG 3994 : WGS 84 / Mercator 41
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3994,'EPSG',3994,'PROJCS["WGS 84 / Mercator 41",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_2SP"],PARAMETER["standard_paralle [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3994,'EPSG',3994,'PROJCS["WGS 84 / Mercator 41",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",-41],PARAMETER["central_meridian",10 [...]
 ---
 --- EPSG 3995 : WGS 84 / Arctic Polar Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3995,'EPSG',3995,'PROJCS["WGS 84 / Arctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAM [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3995,'EPSG',3995,'PROJCS["WGS 84 / Arctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",71],PARAMETER[" [...]
 ---
 --- EPSG 3996 : WGS 84 / IBCAO Polar Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3996,'EPSG',3996,'PROJCS["WGS 84 / IBCAO Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAME [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3996,'EPSG',3996,'PROJCS["WGS 84 / IBCAO Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",75],PARAMETER["c [...]
 ---
 --- EPSG 3997 : WGS 84 / Dubai Local TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3997,'EPSG',3997,'PROJCS["WGS 84 / Dubai Local TM",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3997,'EPSG',3997,'PROJCS["WGS 84 / Dubai Local TM",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
 --- EPSG 4026 : MOLDREF99 / Moldova TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4026,'EPSG',4026,'PROJCS["MOLDREF99 / Moldova TM",GEOGCS["MOLDREF99",DATUM["MOLDREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4023"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4026,'EPSG',4026,'PROJCS["MOLDREF99 / Moldova TM",GEOGCS["MOLDREF99",DATUM["MOLDREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4023"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4037 : WGS 84 / TMzn35N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4037,'EPSG',4037,'PROJCS["WGS 84 / TMzn35N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4037,'EPSG',4037,'PROJCS["WGS 84 / TMzn35N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27 [...]
 ---
 --- EPSG 4038 : WGS 84 / TMzn36N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4038,'EPSG',4038,'PROJCS["WGS 84 / TMzn36N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4038,'EPSG',4038,'PROJCS["WGS 84 / TMzn36N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33 [...]
 ---
 --- EPSG 4048 : RGRDC 2005 / Congo TM zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4048,'EPSG',4048,'PROJCS["RGRDC 2005 / Congo TM zone 12",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4048,'EPSG',4048,'PROJCS["RGRDC 2005 / Congo TM zone 12",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 4049 : RGRDC 2005 / Congo TM zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4049,'EPSG',4049,'PROJCS["RGRDC 2005 / Congo TM zone 14",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4049,'EPSG',4049,'PROJCS["RGRDC 2005 / Congo TM zone 14",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 4050 : RGRDC 2005 / Congo TM zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4050,'EPSG',4050,'PROJCS["RGRDC 2005 / Congo TM zone 16",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4050,'EPSG',4050,'PROJCS["RGRDC 2005 / Congo TM zone 16",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 4051 : RGRDC 2005 / Congo TM zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4051,'EPSG',4051,'PROJCS["RGRDC 2005 / Congo TM zone 18",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4051,'EPSG',4051,'PROJCS["RGRDC 2005 / Congo TM zone 18",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 4056 : RGRDC 2005 / Congo TM zone 20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4056,'EPSG',4056,'PROJCS["RGRDC 2005 / Congo TM zone 20",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4056,'EPSG',4056,'PROJCS["RGRDC 2005 / Congo TM zone 20",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 4057 : RGRDC 2005 / Congo TM zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4057,'EPSG',4057,'PROJCS["RGRDC 2005 / Congo TM zone 22",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4057,'EPSG',4057,'PROJCS["RGRDC 2005 / Congo TM zone 22",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 4058 : RGRDC 2005 / Congo TM zone 24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4058,'EPSG',4058,'PROJCS["RGRDC 2005 / Congo TM zone 24",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4058,'EPSG',4058,'PROJCS["RGRDC 2005 / Congo TM zone 24",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 4059 : RGRDC 2005 / Congo TM zone 26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4059,'EPSG',4059,'PROJCS["RGRDC 2005 / Congo TM zone 26",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4059,'EPSG',4059,'PROJCS["RGRDC 2005 / Congo TM zone 26",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 4060 : RGRDC 2005 / Congo TM zone 28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4060,'EPSG',4060,'PROJCS["RGRDC 2005 / Congo TM zone 28",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4060,'EPSG',4060,'PROJCS["RGRDC 2005 / Congo TM zone 28",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
 --- EPSG 4061 : RGRDC 2005 / UTM zone 33S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4061,'EPSG',4061,'PROJCS["RGRDC 2005 / UTM zone 33S",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4061,'EPSG',4061,'PROJCS["RGRDC 2005 / UTM zone 33S",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
 --- EPSG 4062 : RGRDC 2005 / UTM zone 34S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4062,'EPSG',4062,'PROJCS["RGRDC 2005 / UTM zone 34S",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4062,'EPSG',4062,'PROJCS["RGRDC 2005 / UTM zone 34S",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
 --- EPSG 4063 : RGRDC 2005 / UTM zone 35S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4063,'EPSG',4063,'PROJCS["RGRDC 2005 / UTM zone 35S",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4063,'EPSG',4063,'PROJCS["RGRDC 2005 / UTM zone 35S",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
 --- EPSG 4071 : Chua / UTM zone 23S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4071,'EPSG',4071,'PROJCS["Chua / UTM zone 23S",GEOGCS["Chua",DATUM["Chua",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-134,229,-29,0,0,0,0],AUTHORITY["EPSG","6224"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4224"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercat [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4071,'EPSG',4071,'PROJCS["Chua / UTM zone 23S",GEOGCS["Chua",DATUM["Chua",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143.87,243.37,-33.52,0,0,0,0],AUTHORITY["EPSG","6224"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4224"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_orig [...]
 ---
 --- EPSG 4082 : REGCAN95 / UTM zone 27N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4082,'EPSG',4082,'PROJCS["REGCAN95 / UTM zone 27N",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4082,'EPSG',4082,'PROJCS["REGCAN95 / UTM zone 27N",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 4083 : REGCAN95 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4083,'EPSG',4083,'PROJCS["REGCAN95 / UTM zone 28N",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4083,'EPSG',4083,'PROJCS["REGCAN95 / UTM zone 28N",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
 --- EPSG 4087 : WGS 84 / World Equidistant Cylindrical
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4087,'EPSG',4087,'PROJCS["WGS 84 / World Equidistant Cylindrical",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["ce [...]
 ---
 --- EPSG 4088 : World Equidistant Cylindrical (Sphere)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4088,'EPSG',4088,'PROJCS["World Equidistant Cylindrical (Sphere)",GEOGCS["Unspecified datum based upon the GRS 1980 Authalic Sphere",DATUM["Not_specified_based_on_GRS_1980_Authalic_Sphere",SPHEROID["GRS 1980 Authalic Sphere",6371007,0,AUTHORITY["EPSG","7048"]],AUTHORITY["EPSG","6047"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORI [...]
 ---
 --- EPSG 4093 : ETRS89 / DKTM1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4093,'EPSG',4093,'PROJCS["ETRS89 / DKTM1",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4093,'EPSG',4093,'PROJCS["ETRS89 / DKTM1",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 4094 : ETRS89 / DKTM2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4094,'EPSG',4094,'PROJCS["ETRS89 / DKTM2",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4094,'EPSG',4094,'PROJCS["ETRS89 / DKTM2",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 4095 : ETRS89 / DKTM3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4095,'EPSG',4095,'PROJCS["ETRS89 / DKTM3",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4095,'EPSG',4095,'PROJCS["ETRS89 / DKTM3",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
 --- EPSG 4096 : ETRS89 / DKTM4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4096,'EPSG',4096,'PROJCS["ETRS89 / DKTM4",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4096,'EPSG',4096,'PROJCS["ETRS89 / DKTM4",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 4217 : None
+--- EPSG 4217 : NAD83 / BLM 59N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4217,'EPSG',4217,'PROJCS["NAD83 / BLM 59N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 4399 : None
+--- EPSG 4399 : NAD27 / BLM 59N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4399,'EPSG',4399,'PROJCS["NAD27 / BLM 59N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 4400 : None
+--- EPSG 4400 : NAD27 / BLM 60N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4400,'EPSG',4400,'PROJCS["NAD27 / BLM 60N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 4401 : None
+--- EPSG 4401 : NAD27 / BLM 1N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4401,'EPSG',4401,'PROJCS["NAD27 / BLM 1N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 4402 : None
+--- EPSG 4402 : NAD27 / BLM 2N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4402,'EPSG',4402,'PROJCS["NAD27 / BLM 2N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 4403 : None
+--- EPSG 4403 : NAD27 / BLM 3N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4403,'EPSG',4403,'PROJCS["NAD27 / BLM 3N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 4404 : None
+--- EPSG 4404 : NAD27 / BLM 4N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4404,'EPSG',4404,'PROJCS["NAD27 / BLM 4N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 4405 : None
+--- EPSG 4405 : NAD27 / BLM 5N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4405,'EPSG',4405,'PROJCS["NAD27 / BLM 5N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 4406 : None
+--- EPSG 4406 : NAD27 / BLM 6N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4406,'EPSG',4406,'PROJCS["NAD27 / BLM 6N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 4407 : None
+--- EPSG 4407 : NAD27 / BLM 7N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4407,'EPSG',4407,'PROJCS["NAD27 / BLM 7N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 4408 : None
+--- EPSG 4408 : NAD27 / BLM 8N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4408,'EPSG',4408,'PROJCS["NAD27 / BLM 8N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 4409 : None
+--- EPSG 4409 : NAD27 / BLM 9N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4409,'EPSG',4409,'PROJCS["NAD27 / BLM 9N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 4410 : None
+--- EPSG 4410 : NAD27 / BLM 10N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4410,'EPSG',4410,'PROJCS["NAD27 / BLM 10N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 4411 : None
+--- EPSG 4411 : NAD27 / BLM 11N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4411,'EPSG',4411,'PROJCS["NAD27 / BLM 11N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 4412 : None
+--- EPSG 4412 : NAD27 / BLM 12N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4412,'EPSG',4412,'PROJCS["NAD27 / BLM 12N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 4413 : None
+--- EPSG 4413 : NAD27 / BLM 13N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4413,'EPSG',4413,'PROJCS["NAD27 / BLM 13N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
 --- EPSG 4414 : NAD83(HARN) / Guam Map Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4414,'EPSG',4414,'PROJCS["NAD83(HARN) / Guam Map Grid",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4414,'EPSG',4414,'PROJCS["NAD83(HARN) / Guam Map Grid",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercat [...]
 ---
 --- EPSG 4415 : Katanga 1955 / Katanga Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4415,'EPSG',4415,'PROJCS["Katanga 1955 / Katanga Lambert",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4415,'EPSG',4415,'PROJCS["Katanga 1955 / Katanga Lambert",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],PROJECTION["Lambert_Con [...]
 ---
 --- EPSG 4417 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4417,'EPSG',4417,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4417,'EPSG',4417,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transvers [...]
 ---
---- EPSG 4418 : None
+--- EPSG 4418 : NAD27 / BLM 18N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4418,'EPSG',4418,'PROJCS["NAD27 / BLM 18N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 4419 : None
+--- EPSG 4419 : NAD27 / BLM 19N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4419,'EPSG',4419,'PROJCS["NAD27 / BLM 19N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 4420 : None
+--- EPSG 4420 : NAD83 / BLM 60N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4420,'EPSG',4420,'PROJCS["NAD83 / BLM 60N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 4421 : None
+--- EPSG 4421 : NAD83 / BLM 1N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4421,'EPSG',4421,'PROJCS["NAD83 / BLM 1N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 4422 : None
+--- EPSG 4422 : NAD83 / BLM 2N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4422,'EPSG',4422,'PROJCS["NAD83 / BLM 2N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 4423 : None
+--- EPSG 4423 : NAD83 / BLM 3N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4423,'EPSG',4423,'PROJCS["NAD83 / BLM 3N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 4424 : None
+--- EPSG 4424 : NAD83 / BLM 4N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4424,'EPSG',4424,'PROJCS["NAD83 / BLM 4N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 4425 : None
+--- EPSG 4425 : NAD83 / BLM 5N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4425,'EPSG',4425,'PROJCS["NAD83 / BLM 5N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 4426 : None
+--- EPSG 4426 : NAD83 / BLM 6N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4426,'EPSG',4426,'PROJCS["NAD83 / BLM 6N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 4427 : None
+--- EPSG 4427 : NAD83 / BLM 7N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4427,'EPSG',4427,'PROJCS["NAD83 / BLM 7N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 4428 : None
+--- EPSG 4428 : NAD83 / BLM 8N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4428,'EPSG',4428,'PROJCS["NAD83 / BLM 8N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 4429 : None
+--- EPSG 4429 : NAD83 / BLM 9N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4429,'EPSG',4429,'PROJCS["NAD83 / BLM 9N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 4430 : None
+--- EPSG 4430 : NAD83 / BLM 10N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4430,'EPSG',4430,'PROJCS["NAD83 / BLM 10N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 4431 : None
+--- EPSG 4431 : NAD83 / BLM 11N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4431,'EPSG',4431,'PROJCS["NAD83 / BLM 11N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 4432 : None
+--- EPSG 4432 : NAD83 / BLM 12N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4432,'EPSG',4432,'PROJCS["NAD83 / BLM 12N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 4433 : None
+--- EPSG 4433 : NAD83 / BLM 13N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4433,'EPSG',4433,'PROJCS["NAD83 / BLM 13N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
 --- EPSG 4434 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4434,'EPSG',4434,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4434,'EPSG',4434,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transvers [...]
 ---
 --- EPSG 4437 : NAD83(NSRS2007) / Puerto Rico and Virgin Is.
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4437,'EPSG',4437,'PROJCS["NAD83(NSRS2007) / Puerto Rico and Virgin Is.",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4437,'EPSG',4437,'PROJCS["NAD83(NSRS2007) / Puerto Rico and Virgin Is.",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],P [...]
 ---
---- EPSG 4438 : None
+--- EPSG 4438 : NAD83 / BLM 18N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4438,'EPSG',4438,'PROJCS["NAD83 / BLM 18N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 4439 : None
+--- EPSG 4439 : NAD83 / BLM 19N (ftUS)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4439,'EPSG',4439,'PROJCS["NAD83 / BLM 19N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
 --- EPSG 4455 : NAD27 / Pennsylvania South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4455,'EPSG',4455,'PROJCS["NAD27 / Pennsylvania South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4455,'EPSG',4455,'PROJCS["NAD27 / Pennsylvania South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_ [...]
 ---
 --- EPSG 4456 : NAD27 / New York Long Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4456,'EPSG',4456,'PROJCS["NAD27 / New York Long Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4456,'EPSG',4456,'PROJCS["NAD27 / New York Long Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
 ---
 --- EPSG 4457 : NAD83 / South Dakota North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4457,'EPSG',4457,'PROJCS["NAD83 / South Dakota North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4457,'EPSG',4457,'PROJCS["NAD83 / South Dakota North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
 --- EPSG 4462 : WGS 84 / Australian Centre for Remote Sensing Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4462,'EPSG',4462,'PROJCS["WGS 84 / Australian Centre for Remote Sensing Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_C [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4462,'EPSG',4462,'PROJCS["WGS 84 / Australian Centre for Remote Sensing Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_ [...]
 ---
 --- EPSG 4467 : RGSPM06 / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4467,'EPSG',4467,'PROJCS["RGSPM06 / UTM zone 21N",GEOGCS["RGSPM06",DATUM["Reseau_Geodesique_de_Saint_Pierre_et_Miquelon_2006",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1038"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4463"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4467,'EPSG',4467,'PROJCS["RGSPM06 / UTM zone 21N",GEOGCS["RGSPM06",DATUM["Reseau_Geodesique_de_Saint_Pierre_et_Miquelon_2006",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1038"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4463"]],PROJECTION["Transverse_Me [...]
 ---
 --- EPSG 4471 : RGM04 / UTM zone 38S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4471,'EPSG',4471,'PROJCS["RGM04 / UTM zone 38S",GEOGCS["RGM04",DATUM["Reseau_Geodesique_de_Mayotte_2004",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1036"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4470"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4471,'EPSG',4471,'PROJCS["RGM04 / UTM zone 38S",GEOGCS["RGM04",DATUM["Reseau_Geodesique_de_Mayotte_2004",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1036"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4470"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 4474 : Cadastre 1997 / UTM zone 38S
+--- EPSG 4474 : Cadastre 1997 / UTM zone 38S (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4474,'EPSG',4474,'PROJCS["Cadastre 1997 / UTM zone 38S",GEOGCS["Combani 1950",DATUM["Combani_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY["EPSG","6632"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4632"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4474,'EPSG',4474,'PROJCS["Cadastre 1997 / UTM zone 38S (deprecated)",GEOGCS["Combani 1950",DATUM["Combani_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY["EPSG","6632"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4632"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 4484 : Mexican Datum of 1993 / UTM zone 11N
+--- EPSG 4484 : Mexico ITRF92 / UTM zone 11N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4484,'EPSG',4484,'PROJCS["Mexican Datum of 1993 / UTM zone 11N",GEOGCS["Mexican Datum of 1993",DATUM["Mexican_Datum_of_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4484,'EPSG',4484,'PROJCS["Mexico ITRF92 / UTM zone 11N",GEOGCS["Mexico ITRF92",DATUM["Mexico_ITRF92",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
---- EPSG 4485 : Mexican Datum of 1993 / UTM zone 12N
+--- EPSG 4485 : Mexico ITRF92 / UTM zone 12N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4485,'EPSG',4485,'PROJCS["Mexican Datum of 1993 / UTM zone 12N",GEOGCS["Mexican Datum of 1993",DATUM["Mexican_Datum_of_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4485,'EPSG',4485,'PROJCS["Mexico ITRF92 / UTM zone 12N",GEOGCS["Mexico ITRF92",DATUM["Mexico_ITRF92",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
---- EPSG 4486 : Mexican Datum of 1993 / UTM zone 13N
+--- EPSG 4486 : Mexico ITRF92 / UTM zone 13N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4486,'EPSG',4486,'PROJCS["Mexican Datum of 1993 / UTM zone 13N",GEOGCS["Mexican Datum of 1993",DATUM["Mexican_Datum_of_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4486,'EPSG',4486,'PROJCS["Mexico ITRF92 / UTM zone 13N",GEOGCS["Mexico ITRF92",DATUM["Mexico_ITRF92",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
---- EPSG 4487 : Mexican Datum of 1993 / UTM zone 14N
+--- EPSG 4487 : Mexico ITRF92 / UTM zone 14N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4487,'EPSG',4487,'PROJCS["Mexican Datum of 1993 / UTM zone 14N",GEOGCS["Mexican Datum of 1993",DATUM["Mexican_Datum_of_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4487,'EPSG',4487,'PROJCS["Mexico ITRF92 / UTM zone 14N",GEOGCS["Mexico ITRF92",DATUM["Mexico_ITRF92",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
---- EPSG 4488 : Mexican Datum of 1993 / UTM zone 15N
+--- EPSG 4488 : Mexico ITRF92 / UTM zone 15N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4488,'EPSG',4488,'PROJCS["Mexican Datum of 1993 / UTM zone 15N",GEOGCS["Mexican Datum of 1993",DATUM["Mexican_Datum_of_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4488,'EPSG',4488,'PROJCS["Mexico ITRF92 / UTM zone 15N",GEOGCS["Mexico ITRF92",DATUM["Mexico_ITRF92",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
---- EPSG 4489 : Mexican Datum of 1993 / UTM zone 16N
+--- EPSG 4489 : Mexico ITRF92 / UTM zone 16N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4489,'EPSG',4489,'PROJCS["Mexican Datum of 1993 / UTM zone 16N",GEOGCS["Mexican Datum of 1993",DATUM["Mexican_Datum_of_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4489,'EPSG',4489,'PROJCS["Mexico ITRF92 / UTM zone 16N",GEOGCS["Mexico ITRF92",DATUM["Mexico_ITRF92",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 4491 : CGCS2000 / Gauss-Kruger zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4491,'EPSG',4491,'PROJCS["CGCS2000 / Gauss-Kruger zone 13",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4491,'EPSG',4491,'PROJCS["CGCS2000 / Gauss-Kruger zone 13",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4492 : CGCS2000 / Gauss-Kruger zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4492,'EPSG',4492,'PROJCS["CGCS2000 / Gauss-Kruger zone 14",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4492,'EPSG',4492,'PROJCS["CGCS2000 / Gauss-Kruger zone 14",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4493 : CGCS2000 / Gauss-Kruger zone 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4493,'EPSG',4493,'PROJCS["CGCS2000 / Gauss-Kruger zone 15",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4493,'EPSG',4493,'PROJCS["CGCS2000 / Gauss-Kruger zone 15",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4494 : CGCS2000 / Gauss-Kruger zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4494,'EPSG',4494,'PROJCS["CGCS2000 / Gauss-Kruger zone 16",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4494,'EPSG',4494,'PROJCS["CGCS2000 / Gauss-Kruger zone 16",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4495 : CGCS2000 / Gauss-Kruger zone 17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4495,'EPSG',4495,'PROJCS["CGCS2000 / Gauss-Kruger zone 17",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4495,'EPSG',4495,'PROJCS["CGCS2000 / Gauss-Kruger zone 17",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4496 : CGCS2000 / Gauss-Kruger zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4496,'EPSG',4496,'PROJCS["CGCS2000 / Gauss-Kruger zone 18",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4496,'EPSG',4496,'PROJCS["CGCS2000 / Gauss-Kruger zone 18",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4497 : CGCS2000 / Gauss-Kruger zone 19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4497,'EPSG',4497,'PROJCS["CGCS2000 / Gauss-Kruger zone 19",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4497,'EPSG',4497,'PROJCS["CGCS2000 / Gauss-Kruger zone 19",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4498 : CGCS2000 / Gauss-Kruger zone 20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4498,'EPSG',4498,'PROJCS["CGCS2000 / Gauss-Kruger zone 20",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4498,'EPSG',4498,'PROJCS["CGCS2000 / Gauss-Kruger zone 20",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4499 : CGCS2000 / Gauss-Kruger zone 21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4499,'EPSG',4499,'PROJCS["CGCS2000 / Gauss-Kruger zone 21",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4499,'EPSG',4499,'PROJCS["CGCS2000 / Gauss-Kruger zone 21",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4500 : CGCS2000 / Gauss-Kruger zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4500,'EPSG',4500,'PROJCS["CGCS2000 / Gauss-Kruger zone 22",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4500,'EPSG',4500,'PROJCS["CGCS2000 / Gauss-Kruger zone 22",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4501 : CGCS2000 / Gauss-Kruger zone 23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4501,'EPSG',4501,'PROJCS["CGCS2000 / Gauss-Kruger zone 23",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4501,'EPSG',4501,'PROJCS["CGCS2000 / Gauss-Kruger zone 23",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4502 : CGCS2000 / Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4502,'EPSG',4502,'PROJCS["CGCS2000 / Gauss-Kruger CM 75E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4502,'EPSG',4502,'PROJCS["CGCS2000 / Gauss-Kruger CM 75E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 4503 : CGCS2000 / Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4503,'EPSG',4503,'PROJCS["CGCS2000 / Gauss-Kruger CM 81E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4503,'EPSG',4503,'PROJCS["CGCS2000 / Gauss-Kruger CM 81E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 4504 : CGCS2000 / Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4504,'EPSG',4504,'PROJCS["CGCS2000 / Gauss-Kruger CM 87E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4504,'EPSG',4504,'PROJCS["CGCS2000 / Gauss-Kruger CM 87E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 4505 : CGCS2000 / Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4505,'EPSG',4505,'PROJCS["CGCS2000 / Gauss-Kruger CM 93E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4505,'EPSG',4505,'PROJCS["CGCS2000 / Gauss-Kruger CM 93E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 4506 : CGCS2000 / Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4506,'EPSG',4506,'PROJCS["CGCS2000 / Gauss-Kruger CM 99E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4506,'EPSG',4506,'PROJCS["CGCS2000 / Gauss-Kruger CM 99E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
 --- EPSG 4507 : CGCS2000 / Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4507,'EPSG',4507,'PROJCS["CGCS2000 / Gauss-Kruger CM 105E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4507,'EPSG',4507,'PROJCS["CGCS2000 / Gauss-Kruger CM 105E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4508 : CGCS2000 / Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4508,'EPSG',4508,'PROJCS["CGCS2000 / Gauss-Kruger CM 111E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4508,'EPSG',4508,'PROJCS["CGCS2000 / Gauss-Kruger CM 111E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4509 : CGCS2000 / Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4509,'EPSG',4509,'PROJCS["CGCS2000 / Gauss-Kruger CM 117E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4509,'EPSG',4509,'PROJCS["CGCS2000 / Gauss-Kruger CM 117E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4510 : CGCS2000 / Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4510,'EPSG',4510,'PROJCS["CGCS2000 / Gauss-Kruger CM 123E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4510,'EPSG',4510,'PROJCS["CGCS2000 / Gauss-Kruger CM 123E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4511 : CGCS2000 / Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4511,'EPSG',4511,'PROJCS["CGCS2000 / Gauss-Kruger CM 129E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4511,'EPSG',4511,'PROJCS["CGCS2000 / Gauss-Kruger CM 129E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4512 : CGCS2000 / Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4512,'EPSG',4512,'PROJCS["CGCS2000 / Gauss-Kruger CM 135E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4512,'EPSG',4512,'PROJCS["CGCS2000 / Gauss-Kruger CM 135E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
 --- EPSG 4513 : CGCS2000 / 3-degree Gauss-Kruger zone 25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4513,'EPSG',4513,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 25",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4513,'EPSG',4513,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 25",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4514 : CGCS2000 / 3-degree Gauss-Kruger zone 26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4514,'EPSG',4514,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 26",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4514,'EPSG',4514,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 26",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4515 : CGCS2000 / 3-degree Gauss-Kruger zone 27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4515,'EPSG',4515,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 27",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4515,'EPSG',4515,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 27",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4516 : CGCS2000 / 3-degree Gauss-Kruger zone 28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4516,'EPSG',4516,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 28",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4516,'EPSG',4516,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 28",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4517 : CGCS2000 / 3-degree Gauss-Kruger zone 29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4517,'EPSG',4517,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 29",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4517,'EPSG',4517,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 29",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4518 : CGCS2000 / 3-degree Gauss-Kruger zone 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4518,'EPSG',4518,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 30",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4518,'EPSG',4518,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 30",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4519 : CGCS2000 / 3-degree Gauss-Kruger zone 31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4519,'EPSG',4519,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 31",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4519,'EPSG',4519,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 31",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4520 : CGCS2000 / 3-degree Gauss-Kruger zone 32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4520,'EPSG',4520,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 32",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4520,'EPSG',4520,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 32",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4521 : CGCS2000 / 3-degree Gauss-Kruger zone 33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4521,'EPSG',4521,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 33",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4521,'EPSG',4521,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 33",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4522 : CGCS2000 / 3-degree Gauss-Kruger zone 34
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4522,'EPSG',4522,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 34",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4522,'EPSG',4522,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 34",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4523 : CGCS2000 / 3-degree Gauss-Kruger zone 35
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4523,'EPSG',4523,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 35",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4523,'EPSG',4523,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 35",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4524 : CGCS2000 / 3-degree Gauss-Kruger zone 36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4524,'EPSG',4524,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 36",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4524,'EPSG',4524,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 36",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4525 : CGCS2000 / 3-degree Gauss-Kruger zone 37
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4525,'EPSG',4525,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 37",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4525,'EPSG',4525,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 37",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4526 : CGCS2000 / 3-degree Gauss-Kruger zone 38
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4526,'EPSG',4526,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 38",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4526,'EPSG',4526,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 38",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4527 : CGCS2000 / 3-degree Gauss-Kruger zone 39
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4527,'EPSG',4527,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 39",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4527,'EPSG',4527,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 39",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4528 : CGCS2000 / 3-degree Gauss-Kruger zone 40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4528,'EPSG',4528,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 40",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4528,'EPSG',4528,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 40",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4529 : CGCS2000 / 3-degree Gauss-Kruger zone 41
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4529,'EPSG',4529,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 41",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4529,'EPSG',4529,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 41",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4530 : CGCS2000 / 3-degree Gauss-Kruger zone 42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4530,'EPSG',4530,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 42",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4530,'EPSG',4530,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 42",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4531 : CGCS2000 / 3-degree Gauss-Kruger zone 43
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4531,'EPSG',4531,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 43",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4531,'EPSG',4531,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 43",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4532 : CGCS2000 / 3-degree Gauss-Kruger zone 44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4532,'EPSG',4532,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 44",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4532,'EPSG',4532,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 44",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4533 : CGCS2000 / 3-degree Gauss-Kruger zone 45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4533,'EPSG',4533,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 45",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4533,'EPSG',4533,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone 45",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4534 : CGCS2000 / 3-degree Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4534,'EPSG',4534,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 75E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4534,'EPSG',4534,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 75E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 4535 : CGCS2000 / 3-degree Gauss-Kruger CM 78E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4535,'EPSG',4535,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 78E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4535,'EPSG',4535,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 78E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 4536 : CGCS2000 / 3-degree Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4536,'EPSG',4536,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 81E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4536,'EPSG',4536,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 81E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 4537 : CGCS2000 / 3-degree Gauss-Kruger CM 84E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4537,'EPSG',4537,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 84E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4537,'EPSG',4537,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 84E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 4538 : CGCS2000 / 3-degree Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4538,'EPSG',4538,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 87E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4538,'EPSG',4538,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 87E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 4539 : CGCS2000 / 3-degree Gauss-Kruger CM 90E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4539,'EPSG',4539,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 90E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4539,'EPSG',4539,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 90E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 4540 : CGCS2000 / 3-degree Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4540,'EPSG',4540,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 93E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4540,'EPSG',4540,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 93E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 4541 : CGCS2000 / 3-degree Gauss-Kruger CM 96E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4541,'EPSG',4541,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 96E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4541,'EPSG',4541,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 96E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 4542 : CGCS2000 / 3-degree Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4542,'EPSG',4542,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 99E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4542,'EPSG',4542,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 99E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
 --- EPSG 4543 : CGCS2000 / 3-degree Gauss-Kruger CM 102E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4543,'EPSG',4543,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 102E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4543,'EPSG',4543,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 102E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4544 : CGCS2000 / 3-degree Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4544,'EPSG',4544,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 105E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4544,'EPSG',4544,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 105E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4545 : CGCS2000 / 3-degree Gauss-Kruger CM 108E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4545,'EPSG',4545,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 108E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4545,'EPSG',4545,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 108E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4546 : CGCS2000 / 3-degree Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4546,'EPSG',4546,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 111E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4546,'EPSG',4546,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 111E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4547 : CGCS2000 / 3-degree Gauss-Kruger CM 114E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4547,'EPSG',4547,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 114E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4547,'EPSG',4547,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 114E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4548 : CGCS2000 / 3-degree Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4548,'EPSG',4548,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 117E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4548,'EPSG',4548,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 117E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4549 : CGCS2000 / 3-degree Gauss-Kruger CM 120E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4549,'EPSG',4549,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 120E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4549,'EPSG',4549,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 120E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4550 : CGCS2000 / 3-degree Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4550,'EPSG',4550,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 123E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4550,'EPSG',4550,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 123E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4551 : CGCS2000 / 3-degree Gauss-Kruger CM 126E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4551,'EPSG',4551,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 126E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4551,'EPSG',4551,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 126E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4552 : CGCS2000 / 3-degree Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4552,'EPSG',4552,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 129E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4552,'EPSG',4552,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 129E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4553 : CGCS2000 / 3-degree Gauss-Kruger CM 132E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4553,'EPSG',4553,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 132E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4553,'EPSG',4553,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 132E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4554 : CGCS2000 / 3-degree Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4554,'EPSG',4554,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 135E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4554,'EPSG',4554,'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 135E",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
 --- EPSG 4559 : RRAF 1991 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4559,'EPSG',4559,'PROJCS["RRAF 1991 / UTM zone 20N",GEOGCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1047"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4558"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4559,'EPSG',4559,'PROJCS["RRAF 1991 / UTM zone 20N",GEOGCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1047"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4558"]],PROJECTION["Transverse_ [...]
 ---
 --- EPSG 4568 : New Beijing / Gauss-Kruger zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4568,'EPSG',4568,'PROJCS["New Beijing / Gauss-Kruger zone 13",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4568,'EPSG',4568,'PROJCS["New Beijing / Gauss-Kruger zone 13",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4569 : New Beijing / Gauss-Kruger zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4569,'EPSG',4569,'PROJCS["New Beijing / Gauss-Kruger zone 14",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4569,'EPSG',4569,'PROJCS["New Beijing / Gauss-Kruger zone 14",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4570 : New Beijing / Gauss-Kruger zone 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4570,'EPSG',4570,'PROJCS["New Beijing / Gauss-Kruger zone 15",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4570,'EPSG',4570,'PROJCS["New Beijing / Gauss-Kruger zone 15",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4571 : New Beijing / Gauss-Kruger zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4571,'EPSG',4571,'PROJCS["New Beijing / Gauss-Kruger zone 16",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4571,'EPSG',4571,'PROJCS["New Beijing / Gauss-Kruger zone 16",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4572 : New Beijing / Gauss-Kruger zone 17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4572,'EPSG',4572,'PROJCS["New Beijing / Gauss-Kruger zone 17",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4572,'EPSG',4572,'PROJCS["New Beijing / Gauss-Kruger zone 17",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4573 : New Beijing / Gauss-Kruger zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4573,'EPSG',4573,'PROJCS["New Beijing / Gauss-Kruger zone 18",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4573,'EPSG',4573,'PROJCS["New Beijing / Gauss-Kruger zone 18",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4574 : New Beijing / Gauss-Kruger zone 19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4574,'EPSG',4574,'PROJCS["New Beijing / Gauss-Kruger zone 19",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4574,'EPSG',4574,'PROJCS["New Beijing / Gauss-Kruger zone 19",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4575 : New Beijing / Gauss-Kruger zone 20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4575,'EPSG',4575,'PROJCS["New Beijing / Gauss-Kruger zone 20",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4575,'EPSG',4575,'PROJCS["New Beijing / Gauss-Kruger zone 20",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4576 : New Beijing / Gauss-Kruger zone 21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4576,'EPSG',4576,'PROJCS["New Beijing / Gauss-Kruger zone 21",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4576,'EPSG',4576,'PROJCS["New Beijing / Gauss-Kruger zone 21",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4577 : New Beijing / Gauss-Kruger zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4577,'EPSG',4577,'PROJCS["New Beijing / Gauss-Kruger zone 22",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4577,'EPSG',4577,'PROJCS["New Beijing / Gauss-Kruger zone 22",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4578 : New Beijing / Gauss-Kruger zone 23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4578,'EPSG',4578,'PROJCS["New Beijing / Gauss-Kruger zone 23",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4578,'EPSG',4578,'PROJCS["New Beijing / Gauss-Kruger zone 23",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4579 : New Beijing / Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4579,'EPSG',4579,'PROJCS["New Beijing / Gauss-Kruger CM 75E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4579,'EPSG',4579,'PROJCS["New Beijing / Gauss-Kruger CM 75E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAM [...]
 ---
 --- EPSG 4580 : New Beijing / Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4580,'EPSG',4580,'PROJCS["New Beijing / Gauss-Kruger CM 81E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4580,'EPSG',4580,'PROJCS["New Beijing / Gauss-Kruger CM 81E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAM [...]
 ---
 --- EPSG 4581 : New Beijing / Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4581,'EPSG',4581,'PROJCS["New Beijing / Gauss-Kruger CM 87E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4581,'EPSG',4581,'PROJCS["New Beijing / Gauss-Kruger CM 87E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAM [...]
 ---
 --- EPSG 4582 : New Beijing / Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4582,'EPSG',4582,'PROJCS["New Beijing / Gauss-Kruger CM 93E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4582,'EPSG',4582,'PROJCS["New Beijing / Gauss-Kruger CM 93E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAM [...]
 ---
 --- EPSG 4583 : New Beijing / Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4583,'EPSG',4583,'PROJCS["New Beijing / Gauss-Kruger CM 99E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4583,'EPSG',4583,'PROJCS["New Beijing / Gauss-Kruger CM 99E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAM [...]
 ---
 --- EPSG 4584 : New Beijing / Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4584,'EPSG',4584,'PROJCS["New Beijing / Gauss-Kruger CM 105E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4584,'EPSG',4584,'PROJCS["New Beijing / Gauss-Kruger CM 105E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4585 : New Beijing / Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4585,'EPSG',4585,'PROJCS["New Beijing / Gauss-Kruger CM 111E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4585,'EPSG',4585,'PROJCS["New Beijing / Gauss-Kruger CM 111E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4586 : New Beijing / Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4586,'EPSG',4586,'PROJCS["New Beijing / Gauss-Kruger CM 117E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4586,'EPSG',4586,'PROJCS["New Beijing / Gauss-Kruger CM 117E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4587 : New Beijing / Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4587,'EPSG',4587,'PROJCS["New Beijing / Gauss-Kruger CM 123E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4587,'EPSG',4587,'PROJCS["New Beijing / Gauss-Kruger CM 123E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4588 : New Beijing / Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4588,'EPSG',4588,'PROJCS["New Beijing / Gauss-Kruger CM 129E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4588,'EPSG',4588,'PROJCS["New Beijing / Gauss-Kruger CM 129E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
 --- EPSG 4589 : New Beijing / Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4589,'EPSG',4589,'PROJCS["New Beijing / Gauss-Kruger CM 135E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4589,'EPSG',4589,'PROJCS["New Beijing / Gauss-Kruger CM 135E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARA [...]
 ---
---- EPSG 4647 : ETRS89 / UTM zone N32
+--- EPSG 4647 : ETRS89 / UTM zone 32N (zE-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4647,'EPSG',4647,'PROJCS["ETRS89 / UTM zone N32",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4647,'EPSG',4647,'PROJCS["ETRS89 / UTM zone 32N (zE-N)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merca [...]
 ---
 --- EPSG 4652 : New Beijing / 3-degree Gauss-Kruger zone 25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4652,'EPSG',4652,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 25",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4652,'EPSG',4652,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 25",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4653 : New Beijing / 3-degree Gauss-Kruger zone 26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4653,'EPSG',4653,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 26",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4653,'EPSG',4653,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 26",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4654 : New Beijing / 3-degree Gauss-Kruger zone 27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4654,'EPSG',4654,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 27",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4654,'EPSG',4654,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 27",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4655 : New Beijing / 3-degree Gauss-Kruger zone 28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4655,'EPSG',4655,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 28",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4655,'EPSG',4655,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 28",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4656 : New Beijing / 3-degree Gauss-Kruger zone 29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4656,'EPSG',4656,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 29",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4656,'EPSG',4656,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 29",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4766 : New Beijing / 3-degree Gauss-Kruger zone 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4766,'EPSG',4766,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 30",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4766,'EPSG',4766,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 30",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4767 : New Beijing / 3-degree Gauss-Kruger zone 31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4767,'EPSG',4767,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 31",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4767,'EPSG',4767,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 31",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4768 : New Beijing / 3-degree Gauss-Kruger zone 32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4768,'EPSG',4768,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 32",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4768,'EPSG',4768,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 32",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4769 : New Beijing / 3-degree Gauss-Kruger zone 33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4769,'EPSG',4769,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 33",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4769,'EPSG',4769,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 33",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4770 : New Beijing / 3-degree Gauss-Kruger zone 34
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4770,'EPSG',4770,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 34",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4770,'EPSG',4770,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 34",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4771 : New Beijing / 3-degree Gauss-Kruger zone 35
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4771,'EPSG',4771,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 35",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4771,'EPSG',4771,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 35",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4772 : New Beijing / 3-degree Gauss-Kruger zone 36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4772,'EPSG',4772,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 36",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4772,'EPSG',4772,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 36",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4773 : New Beijing / 3-degree Gauss-Kruger zone 37
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4773,'EPSG',4773,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 37",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4773,'EPSG',4773,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 37",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4774 : New Beijing / 3-degree Gauss-Kruger zone 38
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4774,'EPSG',4774,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 38",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4774,'EPSG',4774,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 38",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4775 : New Beijing / 3-degree Gauss-Kruger zone 39
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4775,'EPSG',4775,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 39",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4775,'EPSG',4775,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 39",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4776 : New Beijing / 3-degree Gauss-Kruger zone 40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4776,'EPSG',4776,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 40",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4776,'EPSG',4776,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 40",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4777 : New Beijing / 3-degree Gauss-Kruger zone 41
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4777,'EPSG',4777,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 41",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4777,'EPSG',4777,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 41",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4778 : New Beijing / 3-degree Gauss-Kruger zone 42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4778,'EPSG',4778,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 42",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4778,'EPSG',4778,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 42",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4779 : New Beijing / 3-degree Gauss-Kruger zone 43
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4779,'EPSG',4779,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 43",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4779,'EPSG',4779,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 43",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4780 : New Beijing / 3-degree Gauss-Kruger zone 44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4780,'EPSG',4780,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 44",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4780,'EPSG',4780,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 44",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4781 : New Beijing / 3-degree Gauss-Kruger zone 45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4781,'EPSG',4781,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 45",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4781,'EPSG',4781,'PROJCS["New Beijing / 3-degree Gauss-Kruger zone 45",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4782 : New Beijing / 3-degree Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4782,'EPSG',4782,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 75E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4782,'EPSG',4782,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 75E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4783 : New Beijing / 3-degree Gauss-Kruger CM 78E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4783,'EPSG',4783,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 78E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4783,'EPSG',4783,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 78E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4784 : New Beijing / 3-degree Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4784,'EPSG',4784,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 81E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4784,'EPSG',4784,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 81E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4785 : New Beijing / 3-degree Gauss-Kruger CM 84E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4785,'EPSG',4785,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 84E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4785,'EPSG',4785,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 84E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4786 : New Beijing / 3-degree Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4786,'EPSG',4786,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 87E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4786,'EPSG',4786,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 87E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4787 : New Beijing / 3-degree Gauss-Kruger CM 90E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4787,'EPSG',4787,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 90E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4787,'EPSG',4787,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 90E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4788 : New Beijing / 3-degree Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4788,'EPSG',4788,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 93E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4788,'EPSG',4788,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 93E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4789 : New Beijing / 3-degree Gauss-Kruger CM 96E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4789,'EPSG',4789,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 96E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4789,'EPSG',4789,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 96E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4790 : New Beijing / 3-degree Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4790,'EPSG',4790,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 99E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4790,'EPSG',4790,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 99E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
 --- EPSG 4791 : New Beijing / 3-degree Gauss-Kruger CM 102E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4791,'EPSG',4791,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 102E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4791,'EPSG',4791,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 102E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4792 : New Beijing / 3-degree Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4792,'EPSG',4792,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 105E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4792,'EPSG',4792,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 105E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4793 : New Beijing / 3-degree Gauss-Kruger CM 108E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4793,'EPSG',4793,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 108E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4793,'EPSG',4793,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 108E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4794 : New Beijing / 3-degree Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4794,'EPSG',4794,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 111E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4794,'EPSG',4794,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 111E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4795 : New Beijing / 3-degree Gauss-Kruger CM 114E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4795,'EPSG',4795,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 114E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4795,'EPSG',4795,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 114E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4796 : New Beijing / 3-degree Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4796,'EPSG',4796,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 117E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4796,'EPSG',4796,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 117E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4797 : New Beijing / 3-degree Gauss-Kruger CM 120E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4797,'EPSG',4797,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 120E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4797,'EPSG',4797,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 120E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4798 : New Beijing / 3-degree Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4798,'EPSG',4798,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 123E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4798,'EPSG',4798,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 123E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4799 : New Beijing / 3-degree Gauss-Kruger CM 126E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4799,'EPSG',4799,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 126E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4799,'EPSG',4799,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 126E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4800 : New Beijing / 3-degree Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4800,'EPSG',4800,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 129E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4800,'EPSG',4800,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 129E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4812 : New Beijing / 3-degree Gauss-Kruger CM 132E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4812,'EPSG',4812,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 132E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4812,'EPSG',4812,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 132E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4822 : New Beijing / 3-degree Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4822,'EPSG',4822,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 135E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4822,'EPSG',4822,'PROJCS["New Beijing / 3-degree Gauss-Kruger CM 135E",GEOGCS["New Beijing",DATUM["New_Beijing",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4555"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
 --- EPSG 4826 : WGS 84 / Cape Verde National
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4826,'EPSG',4826,'PROJCS["WGS 84 / Cape Verde National",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4826,'EPSG',4826,'PROJCS["WGS 84 / Cape Verde National",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",15],PARAMETER [...]
 ---
---- EPSG 4839 : None
+--- EPSG 4839 : ETRS89 / LCC Germany (N-E)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4839,'EPSG',4839,'PROJCS["ETRS89 / LCC Germany (N-E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Conformal_ [...]
 ---
---- EPSG 4855 : None
+--- EPSG 4855 : ETRS89 / NTM zone 5 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4855,'EPSG',4855,'PROJCS["ETRS89 / NTM zone 5 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_M [...]
 ---
---- EPSG 4856 : None
+--- EPSG 4856 : ETRS89 / NTM zone 6 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4856,'EPSG',4856,'PROJCS["ETRS89 / NTM zone 6 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_M [...]
 ---
---- EPSG 4857 : None
+--- EPSG 4857 : ETRS89 / NTM zone 7 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4857,'EPSG',4857,'PROJCS["ETRS89 / NTM zone 7 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_M [...]
 ---
---- EPSG 4858 : None
+--- EPSG 4858 : ETRS89 / NTM zone 8 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4858,'EPSG',4858,'PROJCS["ETRS89 / NTM zone 8 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_M [...]
 ---
---- EPSG 4859 : None
+--- EPSG 4859 : ETRS89 / NTM zone 9 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4859,'EPSG',4859,'PROJCS["ETRS89 / NTM zone 9 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_M [...]
 ---
---- EPSG 4860 : None
+--- EPSG 4860 : ETRS89 / NTM zone 10 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4860,'EPSG',4860,'PROJCS["ETRS89 / NTM zone 10 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4861 : None
+--- EPSG 4861 : ETRS89 / NTM zone 11 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4861,'EPSG',4861,'PROJCS["ETRS89 / NTM zone 11 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4862 : None
+--- EPSG 4862 : ETRS89 / NTM zone 12 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4862,'EPSG',4862,'PROJCS["ETRS89 / NTM zone 12 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4863 : None
+--- EPSG 4863 : ETRS89 / NTM zone 13 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4863,'EPSG',4863,'PROJCS["ETRS89 / NTM zone 13 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4864 : None
+--- EPSG 4864 : ETRS89 / NTM zone 14 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4864,'EPSG',4864,'PROJCS["ETRS89 / NTM zone 14 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4865 : None
+--- EPSG 4865 : ETRS89 / NTM zone 15 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4865,'EPSG',4865,'PROJCS["ETRS89 / NTM zone 15 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4866 : None
+--- EPSG 4866 : ETRS89 / NTM zone 16 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4866,'EPSG',4866,'PROJCS["ETRS89 / NTM zone 16 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4867 : None
+--- EPSG 4867 : ETRS89 / NTM zone 17 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4867,'EPSG',4867,'PROJCS["ETRS89 / NTM zone 17 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4868 : None
+--- EPSG 4868 : ETRS89 / NTM zone 18 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4868,'EPSG',4868,'PROJCS["ETRS89 / NTM zone 18 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4869 : None
+--- EPSG 4869 : ETRS89 / NTM zone 19 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4869,'EPSG',4869,'PROJCS["ETRS89 / NTM zone 19 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4870 : None
+--- EPSG 4870 : ETRS89 / NTM zone 20 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4870,'EPSG',4870,'PROJCS["ETRS89 / NTM zone 20 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4871 : None
+--- EPSG 4871 : ETRS89 / NTM zone 21 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4871,'EPSG',4871,'PROJCS["ETRS89 / NTM zone 21 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4872 : None
+--- EPSG 4872 : ETRS89 / NTM zone 22 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4872,'EPSG',4872,'PROJCS["ETRS89 / NTM zone 22 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4873 : None
+--- EPSG 4873 : ETRS89 / NTM zone 23 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4873,'EPSG',4873,'PROJCS["ETRS89 / NTM zone 23 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4874 : None
+--- EPSG 4874 : ETRS89 / NTM zone 24 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4874,'EPSG',4874,'PROJCS["ETRS89 / NTM zone 24 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4875 : None
+--- EPSG 4875 : ETRS89 / NTM zone 25 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4875,'EPSG',4875,'PROJCS["ETRS89 / NTM zone 25 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4876 : None
+--- EPSG 4876 : ETRS89 / NTM zone 26 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4876,'EPSG',4876,'PROJCS["ETRS89 / NTM zone 26 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4877 : None
+--- EPSG 4877 : ETRS89 / NTM zone 27 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4877,'EPSG',4877,'PROJCS["ETRS89 / NTM zone 27 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4878 : None
+--- EPSG 4878 : ETRS89 / NTM zone 28 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4878,'EPSG',4878,'PROJCS["ETRS89 / NTM zone 28 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4879 : None
+--- EPSG 4879 : ETRS89 / NTM zone 29 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4879,'EPSG',4879,'PROJCS["ETRS89 / NTM zone 29 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 4880 : None
+--- EPSG 4880 : ETRS89 / NTM zone 30 (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4880,'EPSG',4880,'PROJCS["ETRS89 / NTM zone 30 (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 5014 : None
+--- EPSG 5014 : PTRA08 / UTM zone 25N
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5014,'EPSG',5014,'PROJCS["PTRA08 / UTM zone 25N",GEOGCS["PTRA08",DATUM["Autonomous_Regions_of_Portugal_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1041"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5013"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 5015 : None
+--- EPSG 5015 : PTRA08 / UTM zone 26N
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5015,'EPSG',5015,'PROJCS["PTRA08 / UTM zone 26N",GEOGCS["PTRA08",DATUM["Autonomous_Regions_of_Portugal_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1041"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5013"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 5016 : None
+--- EPSG 5016 : PTRA08 / UTM zone 28N
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5016,'EPSG',5016,'PROJCS["PTRA08 / UTM zone 28N",GEOGCS["PTRA08",DATUM["Autonomous_Regions_of_Portugal_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1041"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5013"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 5017 : None
+--- EPSG 5017 : Lisbon 1890 / Portugal Bonne New
 ---
 -- (unable to translate)
 ---
---- EPSG 5018 : None
+--- EPSG 5018 : Lisbon / Portuguese Grid New
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5018,'EPSG',5018,'PROJCS["Lisbon / Portuguese Grid New",GEOGCS["Lisbon",DATUM["Lisbon_1937",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY["EPSG","6207"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4207"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 5041 : None
+--- EPSG 5041 : WGS 84 / UPS North (E,N)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5041,'EPSG',5041,'PROJCS["WGS 84 / UPS North (E,N)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PARAMETER["central_mer [...]
 ---
---- EPSG 5042 : None
+--- EPSG 5042 : WGS 84 / UPS South (E,N)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5042,'EPSG',5042,'PROJCS["WGS 84 / UPS South (E,N)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_me [...]
 ---
---- EPSG 5048 : None
+--- EPSG 5048 : ETRS89 / TM35FIN(N,E)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5048,'EPSG',5048,'PROJCS["ETRS89 / TM35FIN(N,E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 5069 : None
+--- EPSG 5069 : NAD27 / Conus Albers
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5069,'EPSG',5069,'PROJCS["NAD27 / Conus Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1 [...]
 ---
---- EPSG 5070 : None
+--- EPSG 5070 : NAD83 / Conus Albers
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5070,'EPSG',5070,'PROJCS["NAD83 / Conus Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["stand [...]
 ---
---- EPSG 5071 : None
+--- EPSG 5071 : NAD83(HARN) / Conus Albers
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5071,'EPSG',5071,'PROJCS["NAD83(HARN) / Conus Albers",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Albers_Conic_Equal [...]
 ---
---- EPSG 5072 : None
+--- EPSG 5072 : NAD83(NSRS2007) / Conus Albers
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5072,'EPSG',5072,'PROJCS["NAD83(NSRS2007) / Conus Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["Alb [...]
 ---
---- EPSG 5105 : None
+--- EPSG 5105 : ETRS89 / NTM zone 5
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5105,'EPSG',5105,'PROJCS["ETRS89 / NTM zone 5",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 5106 : None
+--- EPSG 5106 : ETRS89 / NTM zone 6
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5106,'EPSG',5106,'PROJCS["ETRS89 / NTM zone 6",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 5107 : None
+--- EPSG 5107 : ETRS89 / NTM zone 7
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5107,'EPSG',5107,'PROJCS["ETRS89 / NTM zone 7",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 5108 : None
+--- EPSG 5108 : ETRS89 / NTM zone 8
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5108,'EPSG',5108,'PROJCS["ETRS89 / NTM zone 8",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 5109 : None
+--- EPSG 5109 : ETRS89 / NTM zone 9
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5109,'EPSG',5109,'PROJCS["ETRS89 / NTM zone 9",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 5110 : None
+--- EPSG 5110 : ETRS89 / NTM zone 10
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5110,'EPSG',5110,'PROJCS["ETRS89 / NTM zone 10",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5111 : None
+--- EPSG 5111 : ETRS89 / NTM zone 11
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5111,'EPSG',5111,'PROJCS["ETRS89 / NTM zone 11",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5112 : None
+--- EPSG 5112 : ETRS89 / NTM zone 12
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5112,'EPSG',5112,'PROJCS["ETRS89 / NTM zone 12",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5113 : None
+--- EPSG 5113 : ETRS89 / NTM zone 13
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5113,'EPSG',5113,'PROJCS["ETRS89 / NTM zone 13",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5114 : None
+--- EPSG 5114 : ETRS89 / NTM zone 14
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5114,'EPSG',5114,'PROJCS["ETRS89 / NTM zone 14",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5115 : None
+--- EPSG 5115 : ETRS89 / NTM zone 15
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5115,'EPSG',5115,'PROJCS["ETRS89 / NTM zone 15",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5116 : None
+--- EPSG 5116 : ETRS89 / NTM zone 16
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5116,'EPSG',5116,'PROJCS["ETRS89 / NTM zone 16",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5117 : None
+--- EPSG 5117 : ETRS89 / NTM zone 17
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5117,'EPSG',5117,'PROJCS["ETRS89 / NTM zone 17",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5118 : None
+--- EPSG 5118 : ETRS89 / NTM zone 18
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5118,'EPSG',5118,'PROJCS["ETRS89 / NTM zone 18",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5119 : None
+--- EPSG 5119 : ETRS89 / NTM zone 19
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5119,'EPSG',5119,'PROJCS["ETRS89 / NTM zone 19",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5120 : None
+--- EPSG 5120 : ETRS89 / NTM zone 20
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5120,'EPSG',5120,'PROJCS["ETRS89 / NTM zone 20",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5121 : None
+--- EPSG 5121 : ETRS89 / NTM zone 21
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5121,'EPSG',5121,'PROJCS["ETRS89 / NTM zone 21",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5122 : None
+--- EPSG 5122 : ETRS89 / NTM zone 22
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5122,'EPSG',5122,'PROJCS["ETRS89 / NTM zone 22",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5123 : None
+--- EPSG 5123 : ETRS89 / NTM zone 23
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5123,'EPSG',5123,'PROJCS["ETRS89 / NTM zone 23",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5124 : None
+--- EPSG 5124 : ETRS89 / NTM zone 24
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5124,'EPSG',5124,'PROJCS["ETRS89 / NTM zone 24",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5125 : None
+--- EPSG 5125 : ETRS89 / NTM zone 25
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5125,'EPSG',5125,'PROJCS["ETRS89 / NTM zone 25",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5126 : None
+--- EPSG 5126 : ETRS89 / NTM zone 26
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5126,'EPSG',5126,'PROJCS["ETRS89 / NTM zone 26",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5127 : None
+--- EPSG 5127 : ETRS89 / NTM zone 27
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5127,'EPSG',5127,'PROJCS["ETRS89 / NTM zone 27",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5128 : None
+--- EPSG 5128 : ETRS89 / NTM zone 28
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5128,'EPSG',5128,'PROJCS["ETRS89 / NTM zone 28",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5129 : None
+--- EPSG 5129 : ETRS89 / NTM zone 29
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5129,'EPSG',5129,'PROJCS["ETRS89 / NTM zone 29",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5130 : None
+--- EPSG 5130 : ETRS89 / NTM zone 30
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5130,'EPSG',5130,'PROJCS["ETRS89 / NTM zone 30",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 5167 : None
+--- EPSG 5167 : Korean 1985 / East Sea Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5167,'EPSG',5167,'PROJCS["Korean 1985 / East Sea Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38 [...]
 ---
---- EPSG 5168 : None
+--- EPSG 5168 : Korean 1985 / Central Belt Jeju
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5168,'EPSG',5168,'PROJCS["Korean 1985 / Central Belt Jeju",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
---- EPSG 5169 : None
+--- EPSG 5169 : Tokyo 1892 / Korea West Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5169,'EPSG',5169,'PROJCS["Tokyo 1892 / Korea West Belt",GEOGCS["Tokyo 1892",DATUM["Tokyo_1892",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1048"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5132"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAM [...]
 ---
---- EPSG 5170 : None
+--- EPSG 5170 : Tokyo 1892 / Korea Central Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5170,'EPSG',5170,'PROJCS["Tokyo 1892 / Korea Central Belt",GEOGCS["Tokyo 1892",DATUM["Tokyo_1892",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1048"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5132"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PA [...]
 ---
---- EPSG 5171 : None
+--- EPSG 5171 : Tokyo 1892 / Korea East Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5171,'EPSG',5171,'PROJCS["Tokyo 1892 / Korea East Belt",GEOGCS["Tokyo 1892",DATUM["Tokyo_1892",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1048"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5132"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAM [...]
 ---
---- EPSG 5172 : None
+--- EPSG 5172 : Tokyo 1892 / Korea East Sea Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5172,'EPSG',5172,'PROJCS["Tokyo 1892 / Korea East Sea Belt",GEOGCS["Tokyo 1892",DATUM["Tokyo_1892",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1048"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5132"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],P [...]
 ---
---- EPSG 5173 : None
+--- EPSG 5173 : Korean 1985 / Modified West Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5173,'EPSG',5173,'PROJCS["Korean 1985 / Modified West Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origi [...]
 ---
---- EPSG 5174 : None
+--- EPSG 5174 : Korean 1985 / Modified Central Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5174,'EPSG',5174,'PROJCS["Korean 1985 / Modified Central Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
---- EPSG 5175 : None
+--- EPSG 5175 : Korean 1985 / Modified Central Belt Jeju
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5175,'EPSG',5175,'PROJCS["Korean 1985 / Modified Central Belt Jeju",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
---- EPSG 5176 : None
+--- EPSG 5176 : Korean 1985 / Modified East Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5176,'EPSG',5176,'PROJCS["Korean 1985 / Modified East Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origi [...]
 ---
---- EPSG 5177 : None
+--- EPSG 5177 : Korean 1985 / Modified East Sea Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5177,'EPSG',5177,'PROJCS["Korean 1985 / Modified East Sea Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
 ---
---- EPSG 5178 : None
+--- EPSG 5178 : Korean 1985 / Unified CS
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5178,'EPSG',5178,'PROJCS["Korean 1985 / Unified CS",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],P [...]
 ---
---- EPSG 5179 : None
+--- EPSG 5179 : Korea 2000 / Unified CS
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5179,'EPSG',5179,'PROJCS["Korea 2000 / Unified CS",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 5180 : None
+--- EPSG 5180 : Korea 2000 / West Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5180,'EPSG',5180,'PROJCS["Korea 2000 / West Belt",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 5181 : None
+--- EPSG 5181 : Korea 2000 / Central Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5181,'EPSG',5181,'PROJCS["Korea 2000 / Central Belt",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 5182 : None
+--- EPSG 5182 : Korea 2000 / Central Belt Jeju
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5182,'EPSG',5182,'PROJCS["Korea 2000 / Central Belt Jeju",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 5183 : None
+--- EPSG 5183 : Korea 2000 / East Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5183,'EPSG',5183,'PROJCS["Korea 2000 / East Belt",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 5184 : None
+--- EPSG 5184 : Korea 2000 / East Sea Belt
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5184,'EPSG',5184,'PROJCS["Korea 2000 / East Sea Belt",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 5185 : None
+--- EPSG 5185 : Korea 2000 / West Belt 2010
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5185,'EPSG',5185,'PROJCS["Korea 2000 / West Belt 2010",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 5186 : None
+--- EPSG 5186 : Korea 2000 / Central Belt 2010
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5186,'EPSG',5186,'PROJCS["Korea 2000 / Central Belt 2010",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 5187 : None
+--- EPSG 5187 : Korea 2000 / East Belt 2010
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5187,'EPSG',5187,'PROJCS["Korea 2000 / East Belt 2010",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 5188 : None
+--- EPSG 5188 : Korea 2000 / East Sea Belt 2010
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5188,'EPSG',5188,'PROJCS["Korea 2000 / East Sea Belt 2010",GEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 5221 : None
+--- EPSG 5221 : S-JTSK (Ferro) / Krovak East North
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5221,'EPSG',5221,'PROJCS["S-JTSK (Ferro) / Krovak East North",GEOGCS["S-JTSK (Ferro)",DATUM["System_Jednotne_Trigonometricke_Site_Katastralni_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY["EPSG","6818"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHO [...]
 ---
---- EPSG 5223 : None
+--- EPSG 5223 : WGS 84 / Gabon TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5223,'EPSG',5223,'PROJCS["WGS 84 / Gabon TM",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",1 [...]
 ---
---- EPSG 5224 : None
+--- EPSG 5224 : S-JTSK/05 (Ferro) / Modified Krovak
 ---
 -- (unable to translate)
 ---
---- EPSG 5225 : None
+--- EPSG 5225 : S-JTSK/05 (Ferro) / Modified Krovak East North
 ---
 -- (unable to translate)
 ---
---- EPSG 5234 : None
+--- EPSG 5234 : Kandawala / Sri Lanka Grid
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5234,'EPSG',5234,'PROJCS["Kandawala / Sri Lanka Grid",GEOGCS["Kandawala",DATUM["Kandawala",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[-97,787,86,0,0,0,0],AUTHORITY["EPSG","6244"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4244"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 5235 : None
+--- EPSG 5235 : SLD99 / Sri Lanka Grid 1999
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5235,'EPSG',5235,'PROJCS["SLD99 / Sri Lanka Grid 1999",GEOGCS["SLD99",DATUM["Sri_Lanka_Datum_1999",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[-0.293,766.95,87.713,0.195704,1.695068,3.473016,-0.039338],AUTHORITY["EPSG","1053"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 5243 : None
+--- EPSG 5243 : ETRS89 / LCC Germany (E-N)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5243,'EPSG',5243,'PROJCS["ETRS89 / LCC Germany (E-N)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Conformal_ [...]
 ---
---- EPSG 5247 : None
+--- EPSG 5247 : GDBD2009 / Brunei BRSO
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5247,'EPSG',5247,'PROJCS["GDBD2009 / Brunei BRSO",GEOGCS["GDBD2009",DATUM["Geocentric_Datum_Brunei_Darussalam_2009",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1056"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5246"]],PROJECTION["Hotine_Oblique_Mercator [...]
 ---
---- EPSG 5253 : None
+--- EPSG 5253 : TUREF / TM27
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5253,'EPSG',5253,'PROJCS["TUREF / TM27",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5254 : None
+--- EPSG 5254 : TUREF / TM30
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5254,'EPSG',5254,'PROJCS["TUREF / TM30",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5255 : None
+--- EPSG 5255 : TUREF / TM33
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5255,'EPSG',5255,'PROJCS["TUREF / TM33",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5256 : None
+--- EPSG 5256 : TUREF / TM36
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5256,'EPSG',5256,'PROJCS["TUREF / TM36",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5257 : None
+--- EPSG 5257 : TUREF / TM39
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5257,'EPSG',5257,'PROJCS["TUREF / TM39",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5258 : None
+--- EPSG 5258 : TUREF / TM42
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5258,'EPSG',5258,'PROJCS["TUREF / TM42",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5259 : None
+--- EPSG 5259 : TUREF / TM45
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5259,'EPSG',5259,'PROJCS["TUREF / TM45",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5266 : None
+--- EPSG 5266 : DRUKREF 03 / Bhutan National Grid
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5266,'EPSG',5266,'PROJCS["DRUKREF 03 / Bhutan National Grid",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5269 : None
+--- EPSG 5269 : TUREF / 3-degree Gauss-Kruger zone 9
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5269,'EPSG',5269,'PROJCS["TUREF / 3-degree Gauss-Kruger zone 9",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5270 : None
+--- EPSG 5270 : TUREF / 3-degree Gauss-Kruger zone 10
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5270,'EPSG',5270,'PROJCS["TUREF / 3-degree Gauss-Kruger zone 10",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 5271 : None
+--- EPSG 5271 : TUREF / 3-degree Gauss-Kruger zone 11
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5271,'EPSG',5271,'PROJCS["TUREF / 3-degree Gauss-Kruger zone 11",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 5272 : None
+--- EPSG 5272 : TUREF / 3-degree Gauss-Kruger zone 12
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5272,'EPSG',5272,'PROJCS["TUREF / 3-degree Gauss-Kruger zone 12",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 5273 : None
+--- EPSG 5273 : TUREF / 3-degree Gauss-Kruger zone 13
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5273,'EPSG',5273,'PROJCS["TUREF / 3-degree Gauss-Kruger zone 13",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 5274 : None
+--- EPSG 5274 : TUREF / 3-degree Gauss-Kruger zone 14
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5274,'EPSG',5274,'PROJCS["TUREF / 3-degree Gauss-Kruger zone 14",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 5275 : None
+--- EPSG 5275 : TUREF / 3-degree Gauss-Kruger zone 15
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5275,'EPSG',5275,'PROJCS["TUREF / 3-degree Gauss-Kruger zone 15",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 5292 : None
+--- EPSG 5292 : DRUKREF 03 / Bumthang TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5292,'EPSG',5292,'PROJCS["DRUKREF 03 / Bumthang TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 5293 : None
+--- EPSG 5293 : DRUKREF 03 / Chhukha TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5293,'EPSG',5293,'PROJCS["DRUKREF 03 / Chhukha TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 5294 : None
+--- EPSG 5294 : DRUKREF 03 / Dagana TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5294,'EPSG',5294,'PROJCS["DRUKREF 03 / Dagana TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 5295 : None
+--- EPSG 5295 : DRUKREF 03 / Gasa TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5295,'EPSG',5295,'PROJCS["DRUKREF 03 / Gasa TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 5296 : None
+--- EPSG 5296 : DRUKREF 03 / Ha TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5296,'EPSG',5296,'PROJCS["DRUKREF 03 / Ha TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 5297 : None
+--- EPSG 5297 : DRUKREF 03 / Lhuentse TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5297,'EPSG',5297,'PROJCS["DRUKREF 03 / Lhuentse TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 5298 : None
+--- EPSG 5298 : DRUKREF 03 / Mongar TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5298,'EPSG',5298,'PROJCS["DRUKREF 03 / Mongar TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 5299 : None
+--- EPSG 5299 : DRUKREF 03 / Paro TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5299,'EPSG',5299,'PROJCS["DRUKREF 03 / Paro TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 5300 : None
+--- EPSG 5300 : DRUKREF 03 / Pemagatshel TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5300,'EPSG',5300,'PROJCS["DRUKREF 03 / Pemagatshel TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 5301 : None
+--- EPSG 5301 : DRUKREF 03 / Punakha TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5301,'EPSG',5301,'PROJCS["DRUKREF 03 / Punakha TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 5302 : None
+--- EPSG 5302 : DRUKREF 03 / Samdrup Jongkhar TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5302,'EPSG',5302,'PROJCS["DRUKREF 03 / Samdrup Jongkhar TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 5303 : None
+--- EPSG 5303 : DRUKREF 03 / Samtse TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5303,'EPSG',5303,'PROJCS["DRUKREF 03 / Samtse TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 5304 : None
+--- EPSG 5304 : DRUKREF 03 / Sarpang TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5304,'EPSG',5304,'PROJCS["DRUKREF 03 / Sarpang TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 5305 : None
+--- EPSG 5305 : DRUKREF 03 / Thimphu TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5305,'EPSG',5305,'PROJCS["DRUKREF 03 / Thimphu TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 5306 : None
+--- EPSG 5306 : DRUKREF 03 / Trashigang TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5306,'EPSG',5306,'PROJCS["DRUKREF 03 / Trashigang TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 5307 : None
+--- EPSG 5307 : DRUKREF 03 / Trongsa TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5307,'EPSG',5307,'PROJCS["DRUKREF 03 / Trongsa TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 5308 : None
+--- EPSG 5308 : DRUKREF 03 / Tsirang TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5308,'EPSG',5308,'PROJCS["DRUKREF 03 / Tsirang TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 5309 : None
+--- EPSG 5309 : DRUKREF 03 / Wangdue Phodrang TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5309,'EPSG',5309,'PROJCS["DRUKREF 03 / Wangdue Phodrang TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 5310 : None
+--- EPSG 5310 : DRUKREF 03 / Yangtse TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5310,'EPSG',5310,'PROJCS["DRUKREF 03 / Yangtse TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 5311 : None
+--- EPSG 5311 : DRUKREF 03 / Zhemgang TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5311,'EPSG',5311,'PROJCS["DRUKREF 03 / Zhemgang TM",GEOGCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5264"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 5316 : None
+--- EPSG 5316 : ETRS89 / Faroe TM
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5316,'EPSG',5316,'PROJCS["ETRS89 / Faroe TM",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 5320 : None
+--- EPSG 5320 : NAD83 / Teranet Ontario Lambert
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5320,'EPSG',5320,'PROJCS["NAD83 / Teranet Ontario Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 5321 : None
+--- EPSG 5321 : NAD83(CSRS) / Teranet Ontario Lambert
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5321,'EPSG',5321,'PROJCS["NAD83(CSRS) / Teranet Ontario Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambe [...]
 ---
---- EPSG 5325 : None
+--- EPSG 5325 : ISN2004 / Lambert 2004
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5325,'EPSG',5325,'PROJCS["ISN2004 / Lambert 2004",GEOGCS["ISN2004",DATUM["Islands_Net_2004",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1060"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5324"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standa [...]
 ---
---- EPSG 5329 : None
+--- EPSG 5329 : Segara (Jakarta) / NEIEZ
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5329,'EPSG',5329,'PROJCS["Segara (Jakarta) / NEIEZ",GEOGCS["Segara (Jakarta)",DATUM["Gunung_Segara_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY["EPSG","6820"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4820"]],PROJECTION["Mercat [...]
 ---
---- EPSG 5330 : None
+--- EPSG 5330 : Batavia (Jakarta) / NEIEZ
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5330,'EPSG',5330,'PROJCS["Batavia (Jakarta) / NEIEZ",GEOGCS["Batavia (Jakarta)",DATUM["Batavia_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6813"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4813"]],PROJECTION["Mercator_ [...]
 ---
---- EPSG 5331 : None
+--- EPSG 5331 : Makassar (Jakarta) / NEIEZ
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5331,'EPSG',5331,'PROJCS["Makassar (Jakarta) / NEIEZ",GEOGCS["Makassar (Jakarta)",DATUM["Makassar_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6804"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4804"]],PROJECTION [...]
 ---
---- EPSG 5337 : None
+--- EPSG 5337 : Aratu / UTM zone 25S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5337,'EPSG',5337,'PROJCS["Aratu / UTM zone 25S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-151.99,287.04,-147.45,0,0,0,0],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ [...]
 ---
---- EPSG 5343 : None
+--- EPSG 5343 : POSGAR 2007 / Argentina 1
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5343,'EPSG',5343,'PROJCS["POSGAR 2007 / Argentina 1",GEOGCS["POSGAR 2007",DATUM["Posiciones_Geodesicas_Argentinas_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1062"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5340"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5344 : None
+--- EPSG 5344 : POSGAR 2007 / Argentina 2
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5344,'EPSG',5344,'PROJCS["POSGAR 2007 / Argentina 2",GEOGCS["POSGAR 2007",DATUM["Posiciones_Geodesicas_Argentinas_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1062"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5340"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5345 : None
+--- EPSG 5345 : POSGAR 2007 / Argentina 3
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5345,'EPSG',5345,'PROJCS["POSGAR 2007 / Argentina 3",GEOGCS["POSGAR 2007",DATUM["Posiciones_Geodesicas_Argentinas_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1062"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5340"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5346 : None
+--- EPSG 5346 : POSGAR 2007 / Argentina 4
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5346,'EPSG',5346,'PROJCS["POSGAR 2007 / Argentina 4",GEOGCS["POSGAR 2007",DATUM["Posiciones_Geodesicas_Argentinas_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1062"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5340"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5347 : None
+--- EPSG 5347 : POSGAR 2007 / Argentina 5
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5347,'EPSG',5347,'PROJCS["POSGAR 2007 / Argentina 5",GEOGCS["POSGAR 2007",DATUM["Posiciones_Geodesicas_Argentinas_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1062"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5340"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5348 : None
+--- EPSG 5348 : POSGAR 2007 / Argentina 6
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5348,'EPSG',5348,'PROJCS["POSGAR 2007 / Argentina 6",GEOGCS["POSGAR 2007",DATUM["Posiciones_Geodesicas_Argentinas_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1062"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5340"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5349 : None
+--- EPSG 5349 : POSGAR 2007 / Argentina 7
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5349,'EPSG',5349,'PROJCS["POSGAR 2007 / Argentina 7",GEOGCS["POSGAR 2007",DATUM["Posiciones_Geodesicas_Argentinas_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1062"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5340"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5355 : None
+--- EPSG 5355 : MARGEN / UTM zone 20S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5355,'EPSG',5355,'PROJCS["MARGEN / UTM zone 20S",GEOGCS["MARGEN",DATUM["Marco_Geodesico_Nacional",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1063"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5354"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 5356 : None
+--- EPSG 5356 : MARGEN / UTM zone 19S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5356,'EPSG',5356,'PROJCS["MARGEN / UTM zone 19S",GEOGCS["MARGEN",DATUM["Marco_Geodesico_Nacional",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1063"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5354"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 5357 : None
+--- EPSG 5357 : MARGEN / UTM zone 21S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5357,'EPSG',5357,'PROJCS["MARGEN / UTM zone 21S",GEOGCS["MARGEN",DATUM["Marco_Geodesico_Nacional",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1063"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5354"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 5361 : None
+--- EPSG 5361 : SIRGAS-Chile / UTM zone 19S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5361,'EPSG',5361,'PROJCS["SIRGAS-Chile / UTM zone 19S",GEOGCS["SIRGAS-Chile",DATUM["SIRGAS_Chile",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1064"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5360"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 5362 : None
+--- EPSG 5362 : SIRGAS-Chile / UTM zone 18S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5362,'EPSG',5362,'PROJCS["SIRGAS-Chile / UTM zone 18S",GEOGCS["SIRGAS-Chile",DATUM["SIRGAS_Chile",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1064"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5360"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 5367 : None
+--- EPSG 5367 : CR05 / CRTM05
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5367,'EPSG',5367,'PROJCS["CR05 / CRTM05",GEOGCS["CR05",DATUM["Costa_Rica_2005",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1065"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5365"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAME [...]
 ---
---- EPSG 5382 : None
+--- EPSG 5382 : SIRGAS-ROU98 / UTM zone 21S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5382,'EPSG',5382,'PROJCS["SIRGAS-ROU98 / UTM zone 21S",GEOGCS["SIRGAS-ROU98",DATUM["SIRGAS_ROU98",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1068"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5381"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5383 : None
+--- EPSG 5383 : SIRGAS-ROU98 / UTM zone 22S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5383,'EPSG',5383,'PROJCS["SIRGAS-ROU98 / UTM zone 22S",GEOGCS["SIRGAS-ROU98",DATUM["SIRGAS_ROU98",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1068"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5381"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5387 : None
+--- EPSG 5387 : Peru96 / UTM zone 18S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5387,'EPSG',5387,'PROJCS["Peru96 / UTM zone 18S",GEOGCS["Peru96",DATUM["Peru96",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1067"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5373"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PAR [...]
 ---
---- EPSG 5388 : None
+--- EPSG 5388 : Peru96 / UTM zone 17S (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5388,'EPSG',5388,'PROJCS["Peru96 / UTM zone 17S (deprecated)",GEOGCS["Peru96",DATUM["Peru96",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1067"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5373"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
 ---
---- EPSG 5389 : None
+--- EPSG 5389 : Peru96 / UTM zone 19S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5389,'EPSG',5389,'PROJCS["Peru96 / UTM zone 19S",GEOGCS["Peru96",DATUM["Peru96",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1067"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5373"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PAR [...]
 ---
---- EPSG 5396 : None
+--- EPSG 5396 : SIRGAS 2000 / UTM zone 26S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5396,'EPSG',5396,'PROJCS["SIRGAS 2000 / UTM zone 26S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTION[ [...]
 ---
---- EPSG 5456 : None
+--- EPSG 5456 : Ocotepeque 1935 / Costa Rica Norte
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5456,'EPSG',5456,'PROJCS["Ocotepeque 1935 / Costa Rica Norte",GEOGCS["Ocotepeque 1935",DATUM["Ocotepeque_1935",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY["EPSG","1070"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5451"]],PROJECTION["Lambert_Confor [...]
 ---
---- EPSG 5457 : None
+--- EPSG 5457 : Ocotepeque 1935 / Costa Rica Sur
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5457,'EPSG',5457,'PROJCS["Ocotepeque 1935 / Costa Rica Sur",GEOGCS["Ocotepeque 1935",DATUM["Ocotepeque_1935",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY["EPSG","1070"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5451"]],PROJECTION["Lambert_Conforma [...]
 ---
---- EPSG 5458 : None
+--- EPSG 5458 : Ocotepeque 1935 / Guatemala Norte (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5458,'EPSG',5458,'PROJCS["Ocotepeque 1935 / Guatemala Norte (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_1SP"], [...]
 ---
---- EPSG 5459 : None
+--- EPSG 5459 : Ocotepeque 1935 / Guatemala Sur
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5459,'EPSG',5459,'PROJCS["Ocotepeque 1935 / Guatemala Sur",GEOGCS["Ocotepeque 1935",DATUM["Ocotepeque_1935",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY["EPSG","1070"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5451"]],PROJECTION["Lambert_Conformal [...]
 ---
---- EPSG 5460 : None
+--- EPSG 5460 : Ocotepeque 1935 / El Salvador Lambert
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5460,'EPSG',5460,'PROJCS["Ocotepeque 1935 / El Salvador Lambert",GEOGCS["Ocotepeque 1935",DATUM["Ocotepeque_1935",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY["EPSG","1070"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5451"]],PROJECTION["Lambert_Con [...]
 ---
---- EPSG 5461 : None
+--- EPSG 5461 : Ocotepeque 1935 / Nicaragua Norte
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5461,'EPSG',5461,'PROJCS["Ocotepeque 1935 / Nicaragua Norte",GEOGCS["Ocotepeque 1935",DATUM["Ocotepeque_1935",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY["EPSG","1070"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5451"]],PROJECTION["Lambert_Conform [...]
 ---
---- EPSG 5462 : None
+--- EPSG 5462 : Ocotepeque 1935 / Nicaragua Sur
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5462,'EPSG',5462,'PROJCS["Ocotepeque 1935 / Nicaragua Sur",GEOGCS["Ocotepeque 1935",DATUM["Ocotepeque_1935",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY["EPSG","1070"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5451"]],PROJECTION["Lambert_Conformal [...]
 ---
---- EPSG 5463 : None
+--- EPSG 5463 : SAD69 / UTM zone 17N
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5463,'EPSG',5463,'PROJCS["SAD69 / UTM zone 17N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 5466 : None
+--- EPSG 5466 : Sibun Gorge 1922 / Colony Grid (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5466,'EPSG',5466,'PROJCS["Sibun Gorge 1922 / Colony Grid (deprecated)",GEOGCS["Sibun Gorge 1922",DATUM["Sibun_Gorge_1922",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","1071"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5464"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 5469 : None
+--- EPSG 5469 : Panama-Colon 1911 / Panama Lambert
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5469,'EPSG',5469,'PROJCS["Panama-Colon 1911 / Panama Lambert",GEOGCS["Panama-Colon 1911",DATUM["Panama_Colon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","1072"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5467"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETE [...]
 ---
---- EPSG 5472 : None
+--- EPSG 5472 : Panama-Colon 1911 / Panama Polyconic
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5472,'EPSG',5472,'PROJCS["Panama-Colon 1911 / Panama Polyconic",GEOGCS["Panama-Colon 1911",DATUM["Panama_Colon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","1072"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5467"]],PROJECTION["Polyconic"],PARAMETER["latitude_of_o [...]
 ---
---- EPSG 5479 : None
+--- EPSG 5479 : RSRGD2000 / MSLC2000
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5479,'EPSG',5479,'PROJCS["RSRGD2000 / MSLC2000",GEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 5480 : None
+--- EPSG 5480 : RSRGD2000 / BCLC2000
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5480,'EPSG',5480,'PROJCS["RSRGD2000 / BCLC2000",GEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 5481 : None
+--- EPSG 5481 : RSRGD2000 / PCLC2000
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5481,'EPSG',5481,'PROJCS["RSRGD2000 / PCLC2000",GEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 5482 : None
+--- EPSG 5482 : RSRGD2000 / RSPS2000
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5482,'EPSG',5482,'PROJCS["RSRGD2000 / RSPS2000",GEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]],PROJECTION["Polar_Stereographic"],PARAME [...]
 ---
---- EPSG 5490 : None
+--- EPSG 5490 : RGAF09 / UTM zone 20N
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5490,'EPSG',5490,'PROJCS["RGAF09 / UTM zone 20N",GEOGCS["RGAF09",DATUM["Reseau_Geodesique_des_Antilles_Francaises_2009",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1073"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5489"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 5513 : None
+--- EPSG 5513 : S-JTSK / Krovak
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5513,'EPSG',5513,'PROJCS["S-JTSK / Krovak",GEOGCS["S-JTSK",DATUM["System_Jednotne_Trigonometricke_Site_Katastralni",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY["EPSG","6156"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4156"]],PROJECTION["Krovak"],PARA [...]
 ---
---- EPSG 5514 : None
+--- EPSG 5514 : S-JTSK / Krovak East North
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5514,'EPSG',5514,'PROJCS["S-JTSK / Krovak East North",GEOGCS["S-JTSK",DATUM["System_Jednotne_Trigonometricke_Site_Katastralni",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY["EPSG","6156"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4156"]],PROJECTION["Kr [...]
 ---
---- EPSG 5515 : None
+--- EPSG 5515 : S-JTSK/05 / Modified Krovak
 ---
 -- (unable to translate)
 ---
---- EPSG 5516 : None
+--- EPSG 5516 : S-JTSK/05 / Modified Krovak East North
 ---
 -- (unable to translate)
 ---
---- EPSG 5518 : None
+--- EPSG 5518 : CI1971 / Chatham Islands Map Grid
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5518,'EPSG',5518,'PROJCS["CI1971 / Chatham Islands Map Grid",GEOGCS["Chatham Islands 1971",DATUM["Chatham_Islands_Datum_1971",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[175,-38,113,0,0,0,0],AUTHORITY["EPSG","6672"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4672"]],PROJECTION["Transve [...]
 ---
---- EPSG 5519 : None
+--- EPSG 5519 : CI1979 / Chatham Islands Map Grid
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5519,'EPSG',5519,'PROJCS["CI1979 / Chatham Islands Map Grid",GEOGCS["Chatham Islands 1979",DATUM["Chatham_Islands_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[174.05,-25.49,112.57,0,0,0.554,0.2263],AUTHORITY["EPSG","6673"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4673"]],P [...]
 ---
---- EPSG 5520 : None
+--- EPSG 5520 : DHDN / 3-degree Gauss-Kruger zone 1
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5520,'EPSG',5520,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 1",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],PROJECT [...]
 ---
---- EPSG 5523 : None
+--- EPSG 5523 : WGS 84 / Gabon TM 2011
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5523,'EPSG',5523,'PROJCS["WGS 84 / Gabon TM 2011",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 5530 : None
+--- EPSG 5530 : SAD69(96) / Brazil Polyconic
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5530,'EPSG',5530,'PROJCS["SAD69(96) / Brazil Polyconic",GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]],PROJECTION["Polyconic"], [...]
 ---
---- EPSG 5531 : None
+--- EPSG 5531 : SAD69(96) / UTM zone 21S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5531,'EPSG',5531,'PROJCS["SAD69(96) / UTM zone 21S",GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 5532 : None
+--- EPSG 5532 : SAD69(96) / UTM zone 22S (deprecated)
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5532,'EPSG',5532,'PROJCS["SAD69(96) / UTM zone 22S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse [...]
 ---
---- EPSG 5533 : None
+--- EPSG 5533 : SAD69(96) / UTM zone 23S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5533,'EPSG',5533,'PROJCS["SAD69(96) / UTM zone 23S",GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 5534 : None
+--- EPSG 5534 : SAD69(96) / UTM zone 24S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5534,'EPSG',5534,'PROJCS["SAD69(96) / UTM zone 24S",GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 5535 : None
+--- EPSG 5535 : SAD69(96) / UTM zone 25S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5535,'EPSG',5535,'PROJCS["SAD69(96) / UTM zone 25S",GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 5536 : None
+--- EPSG 5536 : Corrego Alegre 1961 / UTM zone 21S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5536,'EPSG',5536,'PROJCS["Corrego Alegre 1961 / UTM zone 21S",GEOGCS["Corrego Alegre 1961",DATUM["Corrego_Alegre_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","1074"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5524"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5537 : None
+--- EPSG 5537 : Corrego Alegre 1961 / UTM zone 22S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5537,'EPSG',5537,'PROJCS["Corrego Alegre 1961 / UTM zone 22S",GEOGCS["Corrego Alegre 1961",DATUM["Corrego_Alegre_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","1074"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5524"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5538 : None
+--- EPSG 5538 : Corrego Alegre 1961 / UTM zone 23S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5538,'EPSG',5538,'PROJCS["Corrego Alegre 1961 / UTM zone 23S",GEOGCS["Corrego Alegre 1961",DATUM["Corrego_Alegre_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","1074"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5524"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5539 : None
+--- EPSG 5539 : Corrego Alegre 1961 / UTM zone 24S
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5539,'EPSG',5539,'PROJCS["Corrego Alegre 1961 / UTM zone 24S",GEOGCS["Corrego Alegre 1961",DATUM["Corrego_Alegre_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","1074"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5524"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 5550 : None
+--- EPSG 5550 : PNG94 / PNGMG94 zone 54
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5550,'EPSG',5550,'PROJCS["PNG94 / PNGMG94 zone 54",GEOGCS["PNG94",DATUM["Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1076"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5546"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 5551 : None
+--- EPSG 5551 : PNG94 / PNGMG94 zone 55
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5551,'EPSG',5551,'PROJCS["PNG94 / PNGMG94 zone 55",GEOGCS["PNG94",DATUM["Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1076"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5546"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 5552 : None
+--- EPSG 5552 : PNG94 / PNGMG94 zone 56
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5552,'EPSG',5552,'PROJCS["PNG94 / PNGMG94 zone 56",GEOGCS["PNG94",DATUM["Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1076"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5546"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 5559 : None
+--- EPSG 5559 : Ocotepeque 1935 / Guatemala Norte
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5559,'EPSG',5559,'PROJCS["Ocotepeque 1935 / Guatemala Norte",GEOGCS["Ocotepeque 1935",DATUM["Ocotepeque_1935",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY["EPSG","1070"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5451"]],PROJECTION["Lambert_Conform [...]
 ---
---- EPSG 5819 : EPSG topocentric example A
+--- EPSG 5562 : UCS-2000 / Gauss-Kruger zone 4
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5562,'EPSG',5562,'PROJCS["UCS-2000 / Gauss-Kruger zone 4",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 5820 : EPSG topocentric example B
+--- EPSG 5563 : UCS-2000 / Gauss-Kruger zone 5
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5563,'EPSG',5563,'PROJCS["UCS-2000 / Gauss-Kruger zone 5",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 5821 : EPSG vertical perspective example
+--- EPSG 5564 : UCS-2000 / Gauss-Kruger zone 6
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5564,'EPSG',5564,'PROJCS["UCS-2000 / Gauss-Kruger zone 6",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 20004 : Pulkovo 1995 / Gauss-Kruger zone 4
+--- EPSG 5565 : UCS-2000 / Gauss-Kruger zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20004,'EPSG',20004,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5565,'EPSG',5565,'PROJCS["UCS-2000 / Gauss-Kruger zone 7",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 20005 : Pulkovo 1995 / Gauss-Kruger zone 5
+--- EPSG 5566 : UCS-2000 / Gauss-Kruger CM 21E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20005,'EPSG',20005,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5566,'EPSG',5566,'PROJCS["UCS-2000 / Gauss-Kruger CM 21E",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 20006 : Pulkovo 1995 / Gauss-Kruger zone 6
+--- EPSG 5567 : UCS-2000 / Gauss-Kruger CM 27E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20006,'EPSG',20006,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 6",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5567,'EPSG',5567,'PROJCS["UCS-2000 / Gauss-Kruger CM 27E",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 20007 : Pulkovo 1995 / Gauss-Kruger zone 7
+--- EPSG 5568 : UCS-2000 / Gauss-Kruger CM 33E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20007,'EPSG',20007,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 7",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5568,'EPSG',5568,'PROJCS["UCS-2000 / Gauss-Kruger CM 33E",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 20008 : Pulkovo 1995 / Gauss-Kruger zone 8
+--- EPSG 5569 : UCS-2000 / Gauss-Kruger CM 39E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20008,'EPSG',20008,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 8",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5569,'EPSG',5569,'PROJCS["UCS-2000 / Gauss-Kruger CM 39E",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 20009 : Pulkovo 1995 / Gauss-Kruger zone 9
+--- EPSG 5570 : UCS-2000 / 3-degree Gauss-Kruger zone 7 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20009,'EPSG',20009,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 9",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5570,'EPSG',5570,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger zone 7 (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20010 : Pulkovo 1995 / Gauss-Kruger zone 10
+--- EPSG 5571 : UCS-2000 / 3-degree Gauss-Kruger zone 8 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20010,'EPSG',20010,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 10",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5571,'EPSG',5571,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger zone 8 (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20011 : Pulkovo 1995 / Gauss-Kruger zone 11
+--- EPSG 5572 : UCS-2000 / 3-degree Gauss-Kruger zone 9 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20011,'EPSG',20011,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 11",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5572,'EPSG',5572,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger zone 9 (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20012 : Pulkovo 1995 / Gauss-Kruger zone 12
+--- EPSG 5573 : UCS-2000 / 3-degree Gauss-Kruger zone 10 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20012,'EPSG',20012,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 12",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5573,'EPSG',5573,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger zone 10 (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Trans [...]
 ---
---- EPSG 20013 : Pulkovo 1995 / Gauss-Kruger zone 13
+--- EPSG 5574 : UCS-2000 / 3-degree Gauss-Kruger zone 11 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20013,'EPSG',20013,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 13",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5574,'EPSG',5574,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger zone 11 (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Trans [...]
 ---
---- EPSG 20014 : Pulkovo 1995 / Gauss-Kruger zone 14
+--- EPSG 5575 : UCS-2000 / 3-degree Gauss-Kruger zone 12 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20014,'EPSG',20014,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 14",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5575,'EPSG',5575,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger zone 12 (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Trans [...]
 ---
---- EPSG 20015 : Pulkovo 1995 / Gauss-Kruger zone 15
+--- EPSG 5576 : UCS-2000 / 3-degree Gauss-Kruger zone 13 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20015,'EPSG',20015,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 15",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5576,'EPSG',5576,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger zone 13 (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Trans [...]
 ---
---- EPSG 20016 : Pulkovo 1995 / Gauss-Kruger zone 16
+--- EPSG 5577 : UCS-2000 / 3-degree Gauss-Kruger CM 21E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20016,'EPSG',20016,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 16",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5577,'EPSG',5577,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger CM 21E (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20017 : Pulkovo 1995 / Gauss-Kruger zone 17
+--- EPSG 5578 : UCS-2000 / 3-degree Gauss-Kruger CM 24E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20017,'EPSG',20017,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 17",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5578,'EPSG',5578,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger CM 24E (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20018 : Pulkovo 1995 / Gauss-Kruger zone 18
+--- EPSG 5579 : UCS-2000 / 3-degree Gauss-Kruger CM 27E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20018,'EPSG',20018,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 18",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5579,'EPSG',5579,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger CM 27E (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20019 : Pulkovo 1995 / Gauss-Kruger zone 19
+--- EPSG 5580 : UCS-2000 / 3-degree Gauss-Kruger CM 30E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20019,'EPSG',20019,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 19",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5580,'EPSG',5580,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger CM 30E (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20020 : Pulkovo 1995 / Gauss-Kruger zone 20
+--- EPSG 5581 : UCS-2000 / 3-degree Gauss-Kruger CM 33E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20020,'EPSG',20020,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 20",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5581,'EPSG',5581,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger CM 33E (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20021 : Pulkovo 1995 / Gauss-Kruger zone 21
+--- EPSG 5582 : UCS-2000 / 3-degree Gauss-Kruger CM 36E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20021,'EPSG',20021,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 21",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5582,'EPSG',5582,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger CM 36E (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20022 : Pulkovo 1995 / Gauss-Kruger zone 22
+--- EPSG 5583 : UCS-2000 / 3-degree Gauss-Kruger CM 39E (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20022,'EPSG',20022,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 22",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5583,'EPSG',5583,'PROJCS["UCS-2000 / 3-degree Gauss-Kruger CM 39E (deprecated)",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transv [...]
 ---
---- EPSG 20023 : Pulkovo 1995 / Gauss-Kruger zone 23
+--- EPSG 5588 : NAD27 / New Brunswick Stereographic (NAD27)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20023,'EPSG',20023,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 23",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5588,'EPSG',5588,'PROJCS["NAD27 / New Brunswick Stereographic (NAD27)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Oblique_Stereographic"],PARAMETER [...]
 ---
---- EPSG 20024 : Pulkovo 1995 / Gauss-Kruger zone 24
+--- EPSG 5589 : Sibun Gorge 1922 / Colony Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20024,'EPSG',20024,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 24",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5589,'EPSG',5589,'PROJCS["Sibun Gorge 1922 / Colony Grid",GEOGCS["Sibun Gorge 1922",DATUM["Sibun_Gorge_1922",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","1071"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5464"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
---- EPSG 20025 : Pulkovo 1995 / Gauss-Kruger zone 25
+--- EPSG 5596 : FEH2010 / Fehmarnbelt TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20025,'EPSG',20025,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 25",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5596,'EPSG',5596,'PROJCS["FEH2010 / Fehmarnbelt TM",GEOGCS["FEH2010",DATUM["Fehmarnbelt_Datum_2010",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1078"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5593"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
---- EPSG 20026 : Pulkovo 1995 / Gauss-Kruger zone 26
+--- EPSG 5623 : NAD27 / Michigan East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20026,'EPSG',20026,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 26",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5623,'EPSG',5623,'PROJCS["NAD27 / Michigan East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41 [...]
 ---
---- EPSG 20027 : Pulkovo 1995 / Gauss-Kruger zone 27
+--- EPSG 5624 : NAD27 / Michigan Old Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20027,'EPSG',20027,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 27",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5624,'EPSG',5624,'PROJCS["NAD27 / Michigan Old Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ori [...]
 ---
---- EPSG 20028 : Pulkovo 1995 / Gauss-Kruger zone 28
+--- EPSG 5625 : NAD27 / Michigan West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20028,'EPSG',20028,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 28",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5625,'EPSG',5625,'PROJCS["NAD27 / Michigan West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41 [...]
 ---
---- EPSG 20029 : Pulkovo 1995 / Gauss-Kruger zone 29
+--- EPSG 5627 : ED50 / TM 6 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20029,'EPSG',20029,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 29",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5627,'EPSG',5627,'PROJCS["ED50 / TM 6 NE",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ori [...]
 ---
---- EPSG 20030 : Pulkovo 1995 / Gauss-Kruger zone 30
+--- EPSG 5629 : Moznet / UTM zone 38S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20030,'EPSG',20030,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 30",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5629,'EPSG',5629,'PROJCS["Moznet / UTM zone 38S",GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 20031 : Pulkovo 1995 / Gauss-Kruger zone 31
+--- EPSG 5631 : Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20031,'EPSG',20031,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 31",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5631,'EPSG',5631,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]], [...]
 ---
---- EPSG 20032 : Pulkovo 1995 / Gauss-Kruger zone 32
+--- EPSG 5632 : PTRA08 / LCC Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20032,'EPSG',20032,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 32",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5632,'EPSG',5632,'PROJCS["PTRA08 / LCC Europe",GEOGCS["PTRA08",DATUM["Autonomous_Regions_of_Portugal_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1041"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5013"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 20064 : Pulkovo 1995 / Gauss-Kruger 4N (deprecated)
+--- EPSG 5633 : PTRA08 / LAEA Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20064,'EPSG',20064,'PROJCS["Pulkovo 1995 / Gauss-Kruger 4N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5633,'EPSG',5633,'PROJCS["PTRA08 / LAEA Europe",GEOGCS["PTRA08",DATUM["Autonomous_Regions_of_Portugal_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1041"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5013"]],PROJECTION["Lambert_Azimuthal_Equal_Area"], [...]
 ---
---- EPSG 20065 : Pulkovo 1995 / Gauss-Kruger 5N (deprecated)
+--- EPSG 5634 : REGCAN95 / LCC Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20065,'EPSG',20065,'PROJCS["Pulkovo 1995 / Gauss-Kruger 5N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5634,'EPSG',5634,'PROJCS["REGCAN95 / LCC Europe",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
---- EPSG 20066 : Pulkovo 1995 / Gauss-Kruger 6N (deprecated)
+--- EPSG 5635 : REGCAN95 / LAEA Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20066,'EPSG',20066,'PROJCS["Pulkovo 1995 / Gauss-Kruger 6N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5635,'EPSG',5635,'PROJCS["REGCAN95 / LAEA Europe",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],P [...]
 ---
---- EPSG 20067 : Pulkovo 1995 / Gauss-Kruger 7N (deprecated)
+--- EPSG 5636 : TUREF / LAEA Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20067,'EPSG',20067,'PROJCS["Pulkovo 1995 / Gauss-Kruger 7N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5636,'EPSG',5636,'PROJCS["TUREF / LAEA Europe",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAM [...]
 ---
---- EPSG 20068 : Pulkovo 1995 / Gauss-Kruger 8N (deprecated)
+--- EPSG 5637 : TUREF / LCC Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20068,'EPSG',20068,'PROJCS["Pulkovo 1995 / Gauss-Kruger 8N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5637,'EPSG',5637,'PROJCS["TUREF / LCC Europe",GEOGCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5252"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
---- EPSG 20069 : Pulkovo 1995 / Gauss-Kruger 9N (deprecated)
+--- EPSG 5638 : ISN2004 / LAEA Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20069,'EPSG',20069,'PROJCS["Pulkovo 1995 / Gauss-Kruger 9N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5638,'EPSG',5638,'PROJCS["ISN2004 / LAEA Europe",GEOGCS["ISN2004",DATUM["Islands_Net_2004",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1060"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5324"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitu [...]
 ---
---- EPSG 20070 : Pulkovo 1995 / Gauss-Kruger 10N (deprecated)
+--- EPSG 5639 : ISN2004 / LCC Europe
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20070,'EPSG',20070,'PROJCS["Pulkovo 1995 / Gauss-Kruger 10N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5639,'EPSG',5639,'PROJCS["ISN2004 / LCC Europe",GEOGCS["ISN2004",DATUM["Islands_Net_2004",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1060"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5324"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard [...]
 ---
---- EPSG 20071 : Pulkovo 1995 / Gauss-Kruger 11N (deprecated)
+--- EPSG 5641 : SIRGAS 2000 / Brazil Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20071,'EPSG',20071,'PROJCS["Pulkovo 1995 / Gauss-Kruger 11N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5641,'EPSG',5641,'PROJCS["SIRGAS 2000 / Brazil Mercator",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTI [...]
 ---
---- EPSG 20072 : Pulkovo 1995 / Gauss-Kruger 12N (deprecated)
+--- EPSG 5643 : ED50 / SPBA LCC
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20072,'EPSG',20072,'PROJCS["Pulkovo 1995 / Gauss-Kruger 12N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5643,'EPSG',5643,'PROJCS["ED50 / SPBA LCC",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standa [...]
 ---
---- EPSG 20073 : Pulkovo 1995 / Gauss-Kruger 13N (deprecated)
+--- EPSG 5644 : RGR92 / UTM zone 39S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20073,'EPSG',20073,'PROJCS["Pulkovo 1995 / Gauss-Kruger 13N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5644,'EPSG',5644,'PROJCS["RGR92 / UTM zone 39S",GEOGCS["RGR92",DATUM["Reseau_Geodesique_de_la_Reunion_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6627"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4627"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 20074 : Pulkovo 1995 / Gauss-Kruger 14N (deprecated)
+--- EPSG 5646 : NAD83 / Vermont (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20074,'EPSG',20074,'PROJCS["Pulkovo 1995 / Gauss-Kruger 14N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5646,'EPSG',5646,'PROJCS["NAD83 / Vermont (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 20075 : Pulkovo 1995 / Gauss-Kruger 15N (deprecated)
+--- EPSG 5649 : ETRS89 / UTM zone 31N (zE-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20075,'EPSG',20075,'PROJCS["Pulkovo 1995 / Gauss-Kruger 15N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5649,'EPSG',5649,'PROJCS["ETRS89 / UTM zone 31N (zE-N)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20076 : Pulkovo 1995 / Gauss-Kruger 16N (deprecated)
+--- EPSG 5650 : ETRS89 / UTM zone 33N (zE-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20076,'EPSG',20076,'PROJCS["Pulkovo 1995 / Gauss-Kruger 16N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5650,'EPSG',5650,'PROJCS["ETRS89 / UTM zone 33N (zE-N)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20077 : Pulkovo 1995 / Gauss-Kruger 17N (deprecated)
+--- EPSG 5651 : ETRS89 / UTM zone 31N (N-zE)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20077,'EPSG',20077,'PROJCS["Pulkovo 1995 / Gauss-Kruger 17N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5651,'EPSG',5651,'PROJCS["ETRS89 / UTM zone 31N (N-zE)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20078 : Pulkovo 1995 / Gauss-Kruger 18N (deprecated)
+--- EPSG 5652 : ETRS89 / UTM zone 32N (N-zE)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20078,'EPSG',20078,'PROJCS["Pulkovo 1995 / Gauss-Kruger 18N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5652,'EPSG',5652,'PROJCS["ETRS89 / UTM zone 32N (N-zE)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20079 : Pulkovo 1995 / Gauss-Kruger 19N (deprecated)
+--- EPSG 5653 : ETRS89 / UTM zone 33N (N-zE)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20079,'EPSG',20079,'PROJCS["Pulkovo 1995 / Gauss-Kruger 19N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5653,'EPSG',5653,'PROJCS["ETRS89 / UTM zone 33N (N-zE)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20080 : Pulkovo 1995 / Gauss-Kruger 20N (deprecated)
+--- EPSG 5654 : NAD83(HARN) / Vermont (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20080,'EPSG',20080,'PROJCS["Pulkovo 1995 / Gauss-Kruger 20N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5654,'EPSG',5654,'PROJCS["NAD83(HARN) / Vermont (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20081 : Pulkovo 1995 / Gauss-Kruger 21N (deprecated)
+--- EPSG 5655 : NAD83(NSRS2007) / Vermont (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20081,'EPSG',20081,'PROJCS["Pulkovo 1995 / Gauss-Kruger 21N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5655,'EPSG',5655,'PROJCS["NAD83(NSRS2007) / Vermont (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION["T [...]
 ---
---- EPSG 20082 : Pulkovo 1995 / Gauss-Kruger 22N (deprecated)
+--- EPSG 5659 : Monte Mario / TM Emilia-Romagna
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20082,'EPSG',20082,'PROJCS["Pulkovo 1995 / Gauss-Kruger 22N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5659,'EPSG',5659,'PROJCS["Monte Mario / TM Emilia-Romagna",GEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]],PROJECTION["Transvers [...]
 ---
---- EPSG 20083 : Pulkovo 1995 / Gauss-Kruger 23N (deprecated)
+--- EPSG 5663 : Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20083,'EPSG',20083,'PROJCS["Pulkovo 1995 / Gauss-Kruger 23N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5663,'EPSG',5663,'PROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]], [...]
 ---
---- EPSG 20084 : Pulkovo 1995 / Gauss-Kruger 24N (deprecated)
+--- EPSG 5664 : Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20084,'EPSG',20084,'PROJCS["Pulkovo 1995 / Gauss-Kruger 24N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5664,'EPSG',5664,'PROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transverse_M [...]
 ---
---- EPSG 20085 : Pulkovo 1995 / Gauss-Kruger 25N (deprecated)
+--- EPSG 5665 : Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20085,'EPSG',20085,'PROJCS["Pulkovo 1995 / Gauss-Kruger 25N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5665,'EPSG',5665,'PROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Transverse_M [...]
 ---
---- EPSG 20086 : Pulkovo 1995 / Gauss-Kruger 26N (deprecated)
+--- EPSG 5666 : PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20086,'EPSG',20086,'PROJCS["Pulkovo 1995 / Gauss-Kruger 26N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5666,'EPSG',5666,'PROJCS["PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
---- EPSG 20087 : Pulkovo 1995 / Gauss-Kruger 27N (deprecated)
+--- EPSG 5667 : PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20087,'EPSG',20087,'PROJCS["Pulkovo 1995 / Gauss-Kruger 27N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5667,'EPSG',5667,'PROJCS["PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
---- EPSG 20088 : Pulkovo 1995 / Gauss-Kruger 28N (deprecated)
+--- EPSG 5668 : RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20088,'EPSG',20088,'PROJCS["Pulkovo 1995 / Gauss-Kruger 28N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5668,'EPSG',5668,'PROJCS["RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ [...]
 ---
---- EPSG 20089 : Pulkovo 1995 / Gauss-Kruger 29N (deprecated)
+--- EPSG 5669 : RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20089,'EPSG',20089,'PROJCS["Pulkovo 1995 / Gauss-Kruger 29N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5669,'EPSG',5669,'PROJCS["RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ [...]
 ---
---- EPSG 20090 : Pulkovo 1995 / Gauss-Kruger 30N (deprecated)
+--- EPSG 5670 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20090,'EPSG',20090,'PROJCS["Pulkovo 1995 / Gauss-Kruger 30N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5670,'EPSG',5670,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3 (E-N)",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG", [...]
 ---
---- EPSG 20091 : Pulkovo 1995 / Gauss-Kruger 31N (deprecated)
+--- EPSG 5671 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20091,'EPSG',20091,'PROJCS["Pulkovo 1995 / Gauss-Kruger 31N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5671,'EPSG',5671,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4 (E-N)",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG", [...]
 ---
---- EPSG 20092 : Pulkovo 1995 / Gauss-Kruger 32N (deprecated)
+--- EPSG 5672 : Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20092,'EPSG',20092,'PROJCS["Pulkovo 1995 / Gauss-Kruger 32N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5672,'EPSG',5672,'PROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 (E-N)",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG", [...]
 ---
---- EPSG 20135 : Adindan / UTM zone 35N
+--- EPSG 5673 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20135,'EPSG',20135,'PROJCS["Adindan / UTM zone 35N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5673,'EPSG',5673,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3 (E-N)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Tra [...]
 ---
---- EPSG 20136 : Adindan / UTM zone 36N
+--- EPSG 5674 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20136,'EPSG',20136,'PROJCS["Adindan / UTM zone 36N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5674,'EPSG',5674,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4 (E-N)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Tra [...]
 ---
---- EPSG 20137 : Adindan / UTM zone 37N
+--- EPSG 5675 : Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20137,'EPSG',20137,'PROJCS["Adindan / UTM zone 37N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5675,'EPSG',5675,'PROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5 (E-N)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],PROJECTION["Tra [...]
 ---
---- EPSG 20138 : Adindan / UTM zone 38N
+--- EPSG 5676 : DHDN / 3-degree Gauss-Kruger zone 2 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20138,'EPSG',20138,'PROJCS["Adindan / UTM zone 38N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5676,'EPSG',5676,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 2 (E-N)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],P [...]
 ---
---- EPSG 20248 : AGD66 / AMG zone 48
+--- EPSG 5677 : DHDN / 3-degree Gauss-Kruger zone 3 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20248,'EPSG',20248,'PROJCS["AGD66 / AMG zone 48",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5677,'EPSG',5677,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 3 (E-N)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],P [...]
 ---
---- EPSG 20249 : AGD66 / AMG zone 49
+--- EPSG 5678 : DHDN / 3-degree Gauss-Kruger zone 4 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20249,'EPSG',20249,'PROJCS["AGD66 / AMG zone 49",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5678,'EPSG',5678,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 4 (E-N)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],P [...]
 ---
---- EPSG 20250 : AGD66 / AMG zone 50
+--- EPSG 5679 : DHDN / 3-degree Gauss-Kruger zone 5 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20250,'EPSG',20250,'PROJCS["AGD66 / AMG zone 50",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5679,'EPSG',5679,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 5 (E-N)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],P [...]
 ---
---- EPSG 20251 : AGD66 / AMG zone 51
+--- EPSG 5680 : DHDN / 3-degree Gauss-Kruger zone 1 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20251,'EPSG',20251,'PROJCS["AGD66 / AMG zone 51",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5680,'EPSG',5680,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 1 (E-N)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],P [...]
 ---
---- EPSG 20252 : AGD66 / AMG zone 52
+--- EPSG 5682 : DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20252,'EPSG',20252,'PROJCS["AGD66 / AMG zone 52",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5682,'EPSG',5682,'PROJCS["DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)",GEOGCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5681"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 20253 : AGD66 / AMG zone 53
+--- EPSG 5683 : DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20253,'EPSG',20253,'PROJCS["AGD66 / AMG zone 53",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5683,'EPSG',5683,'PROJCS["DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)",GEOGCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5681"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 20254 : AGD66 / AMG zone 54
+--- EPSG 5684 : DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20254,'EPSG',20254,'PROJCS["AGD66 / AMG zone 54",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5684,'EPSG',5684,'PROJCS["DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)",GEOGCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5681"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 20255 : AGD66 / AMG zone 55
+--- EPSG 5685 : DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20255,'EPSG',20255,'PROJCS["AGD66 / AMG zone 55",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5685,'EPSG',5685,'PROJCS["DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)",GEOGCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5681"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 20256 : AGD66 / AMG zone 56
+--- EPSG 5700 : NZGD2000 / UTM zone 1S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20256,'EPSG',20256,'PROJCS["AGD66 / AMG zone 56",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5700,'EPSG',5700,'PROJCS["NZGD2000 / UTM zone 1S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 20257 : AGD66 / AMG zone 57
+--- EPSG 5819 : EPSG topocentric example A
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20257,'EPSG',20257,'PROJCS["AGD66 / AMG zone 57",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+-- (unable to translate)
 ---
---- EPSG 20258 : AGD66 / AMG zone 58
+--- EPSG 5820 : EPSG topocentric example B
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20258,'EPSG',20258,'PROJCS["AGD66 / AMG zone 58",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
+-- (unable to translate)
 ---
---- EPSG 20348 : AGD84 / AMG zone 48
+--- EPSG 5821 : EPSG vertical perspective example
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20348,'EPSG',20348,'PROJCS["AGD84 / AMG zone 48",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+-- (unable to translate)
 ---
---- EPSG 20349 : AGD84 / AMG zone 49
+--- EPSG 5825 : AGD66 / ACT Standard Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20349,'EPSG',20349,'PROJCS["AGD84 / AMG zone 49",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5825,'EPSG',5825,'PROJCS["AGD66 / ACT Standard Grid",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202 [...]
 ---
---- EPSG 20350 : AGD84 / AMG zone 50
+--- EPSG 5836 : Yemen NGN96 / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20350,'EPSG',20350,'PROJCS["AGD84 / AMG zone 50",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5836,'EPSG',5836,'PROJCS["Yemen NGN96 / UTM zone 37N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 20351 : AGD84 / AMG zone 51
+--- EPSG 5837 : Yemen NGN96 / UTM zone 40N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20351,'EPSG',20351,'PROJCS["AGD84 / AMG zone 51",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5837,'EPSG',5837,'PROJCS["Yemen NGN96 / UTM zone 40N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 20352 : AGD84 / AMG zone 52
+--- EPSG 5839 : Peru96 / UTM zone 17S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20352,'EPSG',20352,'PROJCS["AGD84 / AMG zone 52",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5839,'EPSG',5839,'PROJCS["Peru96 / UTM zone 17S",GEOGCS["Peru96",DATUM["Peru96",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1067"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5373"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PAR [...]
 ---
---- EPSG 20353 : AGD84 / AMG zone 53
+--- EPSG 5842 : WGS 84 / TM 12 SE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20353,'EPSG',20353,'PROJCS["AGD84 / AMG zone 53",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5842,'EPSG',5842,'PROJCS["WGS 84 / TM 12 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",1 [...]
 ---
---- EPSG 20354 : AGD84 / AMG zone 54
+--- EPSG 5844 : RGRDC 2005 / Congo TM zone 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20354,'EPSG',20354,'PROJCS["AGD84 / AMG zone 54",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5844,'EPSG',5844,'PROJCS["RGRDC 2005 / Congo TM zone 30",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 20355 : AGD84 / AMG zone 55
+--- EPSG 5858 : SAD69(96) / UTM zone 22S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20355,'EPSG',20355,'PROJCS["AGD84 / AMG zone 55",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5858,'EPSG',5858,'PROJCS["SAD69(96) / UTM zone 22S",GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20356 : AGD84 / AMG zone 56
+--- EPSG 5875 : SAD69(96) / UTM zone 18S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20356,'EPSG',20356,'PROJCS["AGD84 / AMG zone 56",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5875,'EPSG',5875,'PROJCS["SAD69(96) / UTM zone 18S",GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20357 : AGD84 / AMG zone 57
+--- EPSG 5876 : SAD69(96) / UTM zone 19S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20357,'EPSG',20357,'PROJCS["AGD84 / AMG zone 57",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5876,'EPSG',5876,'PROJCS["SAD69(96) / UTM zone 19S",GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20358 : AGD84 / AMG zone 58
+--- EPSG 5877 : SAD69(96) / UTM zone 20S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20358,'EPSG',20358,'PROJCS["AGD84 / AMG zone 58",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5877,'EPSG',5877,'PROJCS["SAD69(96) / UTM zone 20S",GEOGCS["SAD69(96)",DATUM["South_American_Datum_1969_96",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY["EPSG","1075"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5527"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 20436 : Ain el Abd / UTM zone 36N
+--- EPSG 5879 : Cadastre 1997 / UTM zone 38S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20436,'EPSG',20436,'PROJCS["Ain el Abd / UTM zone 36N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5879,'EPSG',5879,'PROJCS["Cadastre 1997 / UTM zone 38S",GEOGCS["Cadastre 1997",DATUM["Cadastre_1997",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-381.788,-57.501,-256.673,0,0,0,0],AUTHORITY["EPSG","1037"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4475"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 20437 : Ain el Abd / UTM zone 37N
+--- EPSG 5880 : SIRGAS 2000 / Brazil Polyconic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20437,'EPSG',20437,'PROJCS["Ain el Abd / UTM zone 37N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5880,'EPSG',5880,'PROJCS["SIRGAS 2000 / Brazil Polyconic",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECT [...]
 ---
---- EPSG 20438 : Ain el Abd / UTM zone 38N
+--- EPSG 5887 : TGD2005 / Tonga Map Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20438,'EPSG',20438,'PROJCS["Ain el Abd / UTM zone 38N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5887,'EPSG',5887,'PROJCS["TGD2005 / Tonga Map Grid",GEOGCS["TGD2005",DATUM["Tonga_Geodetic_Datum_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1095"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5886"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PAR [...]
 ---
---- EPSG 20439 : Ain el Abd / UTM zone 39N
+--- EPSG 5890 : JAXA Snow Depth Polar Stereographic North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20439,'EPSG',20439,'PROJCS["Ain el Abd / UTM zone 39N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5890,'EPSG',5890,'PROJCS["JAXA Snow Depth Polar Stereographic North",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORIT [...]
 ---
---- EPSG 20440 : Ain el Abd / UTM zone 40N
+--- EPSG 5921 : WGS 84 / EPSG Arctic Regional zone A1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20440,'EPSG',20440,'PROJCS["Ain el Abd / UTM zone 40N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5921,'EPSG',5921,'PROJCS["WGS 84 / EPSG Arctic Regional zone A1",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",85], [...]
 ---
---- EPSG 20499 : Ain el Abd / Bahrain Grid
+--- EPSG 5922 : WGS 84 / EPSG Arctic Regional zone A2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20499,'EPSG',20499,'PROJCS["Ain el Abd / Bahrain Grid",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5922,'EPSG',5922,'PROJCS["WGS 84 / EPSG Arctic Regional zone A2",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",85], [...]
 ---
---- EPSG 20538 : Afgooye / UTM zone 38N
+--- EPSG 5923 : WGS 84 / EPSG Arctic Regional zone A3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20538,'EPSG',20538,'PROJCS["Afgooye / UTM zone 38N",GEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transver [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5923,'EPSG',5923,'PROJCS["WGS 84 / EPSG Arctic Regional zone A3",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",85], [...]
 ---
---- EPSG 20539 : Afgooye / UTM zone 39N
+--- EPSG 5924 : WGS 84 / EPSG Arctic Regional zone A4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20539,'EPSG',20539,'PROJCS["Afgooye / UTM zone 39N",GEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transver [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5924,'EPSG',5924,'PROJCS["WGS 84 / EPSG Arctic Regional zone A4",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",85], [...]
 ---
---- EPSG 20790 : Lisbon (Lisbon) / Portuguese National Grid
+--- EPSG 5925 : WGS 84 / EPSG Arctic Regional zone A5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20790,'EPSG',20790,'PROJCS["Lisbon (Lisbon) / Portuguese National Grid",GEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","480 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5925,'EPSG',5925,'PROJCS["WGS 84 / EPSG Arctic Regional zone A5",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",85], [...]
 ---
---- EPSG 20791 : Lisbon (Lisbon) / Portuguese Grid
+--- EPSG 5926 : WGS 84 / EPSG Arctic Regional zone B1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20791,'EPSG',20791,'PROJCS["Lisbon (Lisbon) / Portuguese Grid",GEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4803"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5926,'EPSG',5926,'PROJCS["WGS 84 / EPSG Arctic Regional zone B1",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77], [...]
 ---
---- EPSG 20822 : Aratu / UTM zone 22S
+--- EPSG 5927 : WGS 84 / EPSG Arctic Regional zone B2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20822,'EPSG',20822,'PROJCS["Aratu / UTM zone 22S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-161,308,-142,0,0,0,0],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5927,'EPSG',5927,'PROJCS["WGS 84 / EPSG Arctic Regional zone B2",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77], [...]
 ---
---- EPSG 20823 : Aratu / UTM zone 23S
+--- EPSG 5928 : WGS 84 / EPSG Arctic Regional zone B3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20823,'EPSG',20823,'PROJCS["Aratu / UTM zone 23S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-161,308,-142,0,0,0,0],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5928,'EPSG',5928,'PROJCS["WGS 84 / EPSG Arctic Regional zone B3",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77], [...]
 ---
---- EPSG 20824 : Aratu / UTM zone 24S
+--- EPSG 5929 : WGS 84 / EPSG Arctic Regional zone B4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20824,'EPSG',20824,'PROJCS["Aratu / UTM zone 24S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-161,308,-142,0,0,0,0],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5929,'EPSG',5929,'PROJCS["WGS 84 / EPSG Arctic Regional zone B4",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77], [...]
 ---
---- EPSG 20934 : Arc 1950 / UTM zone 34S
+--- EPSG 5930 : WGS 84 / EPSG Arctic Regional zone B5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20934,'EPSG',20934,'PROJCS["Arc 1950 / UTM zone 34S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-143,-90,-294,0,0,0,0],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5930,'EPSG',5930,'PROJCS["WGS 84 / EPSG Arctic Regional zone B5",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77], [...]
 ---
---- EPSG 20935 : Arc 1950 / UTM zone 35S
+--- EPSG 5931 : WGS 84 / EPSG Arctic Regional zone C1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20935,'EPSG',20935,'PROJCS["Arc 1950 / UTM zone 35S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-143,-90,-294,0,0,0,0],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5931,'EPSG',5931,'PROJCS["WGS 84 / EPSG Arctic Regional zone C1",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",69], [...]
 ---
---- EPSG 20936 : Arc 1950 / UTM zone 36S
+--- EPSG 5932 : WGS 84 / EPSG Arctic Regional zone C2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20936,'EPSG',20936,'PROJCS["Arc 1950 / UTM zone 36S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-143,-90,-294,0,0,0,0],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5932,'EPSG',5932,'PROJCS["WGS 84 / EPSG Arctic Regional zone C2",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",69], [...]
 ---
---- EPSG 21035 : Arc 1960 / UTM zone 35S
+--- EPSG 5933 : WGS 84 / EPSG Arctic Regional zone C3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21035,'EPSG',21035,'PROJCS["Arc 1960 / UTM zone 35S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5933,'EPSG',5933,'PROJCS["WGS 84 / EPSG Arctic Regional zone C3",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",69], [...]
 ---
---- EPSG 21036 : Arc 1960 / UTM zone 36S
+--- EPSG 5934 : WGS 84 / EPSG Arctic Regional zone C4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21036,'EPSG',21036,'PROJCS["Arc 1960 / UTM zone 36S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5934,'EPSG',5934,'PROJCS["WGS 84 / EPSG Arctic Regional zone C4",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",69], [...]
 ---
---- EPSG 21037 : Arc 1960 / UTM zone 37S
+--- EPSG 5935 : WGS 84 / EPSG Arctic Regional zone C5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21037,'EPSG',21037,'PROJCS["Arc 1960 / UTM zone 37S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5935,'EPSG',5935,'PROJCS["WGS 84 / EPSG Arctic Regional zone C5",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",69], [...]
 ---
---- EPSG 21095 : Arc 1960 / UTM zone 35N
+--- EPSG 5936 : WGS 84 / EPSG Alaska Polar Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21095,'EPSG',21095,'PROJCS["Arc 1960 / UTM zone 35N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5936,'EPSG',5936,'PROJCS["WGS 84 / EPSG Alaska Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PARAME [...]
 ---
---- EPSG 21096 : Arc 1960 / UTM zone 36N
+--- EPSG 5937 : WGS 84 / EPSG Canada Polar Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21096,'EPSG',21096,'PROJCS["Arc 1960 / UTM zone 36N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5937,'EPSG',5937,'PROJCS["WGS 84 / EPSG Canada Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PARAME [...]
 ---
---- EPSG 21097 : Arc 1960 / UTM zone 37N
+--- EPSG 5938 : WGS 84 / EPSG Greenland Polar Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21097,'EPSG',21097,'PROJCS["Arc 1960 / UTM zone 37N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5938,'EPSG',5938,'PROJCS["WGS 84 / EPSG Greenland Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PAR [...]
 ---
---- EPSG 21100 : Batavia (Jakarta) / NEIEZ (deprecated)
+--- EPSG 5939 : WGS 84 / EPSG Norway Polar Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21100,'EPSG',21100,'PROJCS["Batavia (Jakarta) / NEIEZ (deprecated)",GEOGCS["Batavia (Jakarta)",DATUM["Batavia_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6813"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4813"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5939,'EPSG',5939,'PROJCS["WGS 84 / EPSG Norway Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PARAME [...]
 ---
---- EPSG 21148 : Batavia / UTM zone 48S
+--- EPSG 5940 : WGS 84 / EPSG Russia Polar Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21148,'EPSG',21148,'PROJCS["Batavia / UTM zone 48S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5940,'EPSG',5940,'PROJCS["WGS 84 / EPSG Russia Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PARAME [...]
 ---
---- EPSG 21149 : Batavia / UTM zone 49S
+--- EPSG 6050 : GR96 / EPSG Arctic zone 1-25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21149,'EPSG',21149,'PROJCS["Batavia / UTM zone 49S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6050,'EPSG',6050,'PROJCS["GR96 / EPSG Arctic zone 1-25",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21150 : Batavia / UTM zone 50S
+--- EPSG 6051 : GR96 / EPSG Arctic zone 2-18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21150,'EPSG',21150,'PROJCS["Batavia / UTM zone 50S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6051,'EPSG',6051,'PROJCS["GR96 / EPSG Arctic zone 2-18",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21291 : Barbados 1938 / British West Indies Grid
+--- EPSG 6052 : GR96 / EPSG Arctic zone 2-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21291,'EPSG',21291,'PROJCS["Barbados 1938 / British West Indies Grid",GEOGCS["Barbados 1938",DATUM["Barbados_1938",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORITY["EPSG","6212"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4212"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6052,'EPSG',6052,'PROJCS["GR96 / EPSG Arctic zone 2-20",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21292 : Barbados 1938 / Barbados National Grid
+--- EPSG 6053 : GR96 / EPSG Arctic zone 3-29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21292,'EPSG',21292,'PROJCS["Barbados 1938 / Barbados National Grid",GEOGCS["Barbados 1938",DATUM["Barbados_1938",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORITY["EPSG","6212"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4212"]],UNIT["metre",1,AU [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6053,'EPSG',6053,'PROJCS["GR96 / EPSG Arctic zone 3-29",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21413 : Beijing 1954 / Gauss-Kruger zone 13
+--- EPSG 6054 : GR96 / EPSG Arctic zone 3-31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21413,'EPSG',21413,'PROJCS["Beijing 1954 / Gauss-Kruger zone 13",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6054,'EPSG',6054,'PROJCS["GR96 / EPSG Arctic zone 3-31",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21414 : Beijing 1954 / Gauss-Kruger zone 14
+--- EPSG 6055 : GR96 / EPSG Arctic zone 3-33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21414,'EPSG',21414,'PROJCS["Beijing 1954 / Gauss-Kruger zone 14",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6055,'EPSG',6055,'PROJCS["GR96 / EPSG Arctic zone 3-33",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21415 : Beijing 1954 / Gauss-Kruger zone 15
+--- EPSG 6056 : GR96 / EPSG Arctic zone 4-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21415,'EPSG',21415,'PROJCS["Beijing 1954 / Gauss-Kruger zone 15",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6056,'EPSG',6056,'PROJCS["GR96 / EPSG Arctic zone 4-20",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21416 : Beijing 1954 / Gauss-Kruger zone 16
+--- EPSG 6057 : GR96 / EPSG Arctic zone 4-22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21416,'EPSG',21416,'PROJCS["Beijing 1954 / Gauss-Kruger zone 16",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6057,'EPSG',6057,'PROJCS["GR96 / EPSG Arctic zone 4-22",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21417 : Beijing 1954 / Gauss-Kruger zone 17
+--- EPSG 6058 : GR96 / EPSG Arctic zone 4-24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21417,'EPSG',21417,'PROJCS["Beijing 1954 / Gauss-Kruger zone 17",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6058,'EPSG',6058,'PROJCS["GR96 / EPSG Arctic zone 4-24",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21418 : Beijing 1954 / Gauss-Kruger zone 18
+--- EPSG 6059 : GR96 / EPSG Arctic zone 5-41
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21418,'EPSG',21418,'PROJCS["Beijing 1954 / Gauss-Kruger zone 18",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6059,'EPSG',6059,'PROJCS["GR96 / EPSG Arctic zone 5-41",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21419 : Beijing 1954 / Gauss-Kruger zone 19
+--- EPSG 6060 : GR96 / EPSG Arctic zone 5-43
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21419,'EPSG',21419,'PROJCS["Beijing 1954 / Gauss-Kruger zone 19",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6060,'EPSG',6060,'PROJCS["GR96 / EPSG Arctic zone 5-43",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21420 : Beijing 1954 / Gauss-Kruger zone 20
+--- EPSG 6061 : GR96 / EPSG Arctic zone 5-45
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21420,'EPSG',21420,'PROJCS["Beijing 1954 / Gauss-Kruger zone 20",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6061,'EPSG',6061,'PROJCS["GR96 / EPSG Arctic zone 5-45",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21421 : Beijing 1954 / Gauss-Kruger zone 21
+--- EPSG 6062 : GR96 / EPSG Arctic zone 6-26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21421,'EPSG',21421,'PROJCS["Beijing 1954 / Gauss-Kruger zone 21",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6062,'EPSG',6062,'PROJCS["GR96 / EPSG Arctic zone 6-26",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21422 : Beijing 1954 / Gauss-Kruger zone 22
+--- EPSG 6063 : GR96 / EPSG Arctic zone 6-28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21422,'EPSG',21422,'PROJCS["Beijing 1954 / Gauss-Kruger zone 22",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6063,'EPSG',6063,'PROJCS["GR96 / EPSG Arctic zone 6-28",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21423 : Beijing 1954 / Gauss-Kruger zone 23
+--- EPSG 6064 : GR96 / EPSG Arctic zone 6-30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21423,'EPSG',21423,'PROJCS["Beijing 1954 / Gauss-Kruger zone 23",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6064,'EPSG',6064,'PROJCS["GR96 / EPSG Arctic zone 6-30",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21453 : Beijing 1954 / Gauss-Kruger CM 75E
+--- EPSG 6065 : GR96 / EPSG Arctic zone 7-11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21453,'EPSG',21453,'PROJCS["Beijing 1954 / Gauss-Kruger CM 75E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6065,'EPSG',6065,'PROJCS["GR96 / EPSG Arctic zone 7-11",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21454 : Beijing 1954 / Gauss-Kruger CM 81E
+--- EPSG 6066 : GR96 / EPSG Arctic zone 7-13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21454,'EPSG',21454,'PROJCS["Beijing 1954 / Gauss-Kruger CM 81E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6066,'EPSG',6066,'PROJCS["GR96 / EPSG Arctic zone 7-13",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21455 : Beijing 1954 / Gauss-Kruger CM 87E
+--- EPSG 6067 : GR96 / EPSG Arctic zone 8-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21455,'EPSG',21455,'PROJCS["Beijing 1954 / Gauss-Kruger CM 87E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6067,'EPSG',6067,'PROJCS["GR96 / EPSG Arctic zone 8-20",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21456 : Beijing 1954 / Gauss-Kruger CM 93E
+--- EPSG 6068 : GR96 / EPSG Arctic zone 8-22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21456,'EPSG',21456,'PROJCS["Beijing 1954 / Gauss-Kruger CM 93E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6068,'EPSG',6068,'PROJCS["GR96 / EPSG Arctic zone 8-22",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 21457 : Beijing 1954 / Gauss-Kruger CM 99E
+--- EPSG 6069 : ETRS89 / EPSG Arctic zone 2-22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21457,'EPSG',21457,'PROJCS["Beijing 1954 / Gauss-Kruger CM 99E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6069,'EPSG',6069,'PROJCS["ETRS89 / EPSG Arctic zone 2-22",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Confor [...]
 ---
---- EPSG 21458 : Beijing 1954 / Gauss-Kruger CM 105E
+--- EPSG 6070 : ETRS89 / EPSG Arctic zone 3-11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21458,'EPSG',21458,'PROJCS["Beijing 1954 / Gauss-Kruger CM 105E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6070,'EPSG',6070,'PROJCS["ETRS89 / EPSG Arctic zone 3-11",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Confor [...]
 ---
---- EPSG 21459 : Beijing 1954 / Gauss-Kruger CM 111E
+--- EPSG 6071 : ETRS89 / EPSG Arctic zone 4-26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21459,'EPSG',21459,'PROJCS["Beijing 1954 / Gauss-Kruger CM 111E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6071,'EPSG',6071,'PROJCS["ETRS89 / EPSG Arctic zone 4-26",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Confor [...]
 ---
---- EPSG 21460 : Beijing 1954 / Gauss-Kruger CM 117E
+--- EPSG 6072 : ETRS89 / EPSG Arctic zone 4-28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21460,'EPSG',21460,'PROJCS["Beijing 1954 / Gauss-Kruger CM 117E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6072,'EPSG',6072,'PROJCS["ETRS89 / EPSG Arctic zone 4-28",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Confor [...]
 ---
---- EPSG 21461 : Beijing 1954 / Gauss-Kruger CM 123E
+--- EPSG 6073 : ETRS89 / EPSG Arctic zone 5-11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21461,'EPSG',21461,'PROJCS["Beijing 1954 / Gauss-Kruger CM 123E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6073,'EPSG',6073,'PROJCS["ETRS89 / EPSG Arctic zone 5-11",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Confor [...]
 ---
---- EPSG 21462 : Beijing 1954 / Gauss-Kruger CM 129E
+--- EPSG 6074 : ETRS89 / EPSG Arctic zone 5-13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21462,'EPSG',21462,'PROJCS["Beijing 1954 / Gauss-Kruger CM 129E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6074,'EPSG',6074,'PROJCS["ETRS89 / EPSG Arctic zone 5-13",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Confor [...]
 ---
---- EPSG 21463 : Beijing 1954 / Gauss-Kruger CM 135E
+--- EPSG 6075 : WGS 84 / EPSG Arctic zone 2-24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21463,'EPSG',21463,'PROJCS["Beijing 1954 / Gauss-Kruger CM 135E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6075,'EPSG',6075,'PROJCS["WGS 84 / EPSG Arctic zone 2-24",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",83.66666666 [...]
 ---
---- EPSG 21473 : Beijing 1954 / Gauss-Kruger 13N (deprecated)
+--- EPSG 6076 : WGS 84 / EPSG Arctic zone 2-26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21473,'EPSG',21473,'PROJCS["Beijing 1954 / Gauss-Kruger 13N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6076,'EPSG',6076,'PROJCS["WGS 84 / EPSG Arctic zone 2-26",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",83.66666666 [...]
 ---
---- EPSG 21474 : Beijing 1954 / Gauss-Kruger 14N (deprecated)
+--- EPSG 6077 : WGS 84 / EPSG Arctic zone 3-13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21474,'EPSG',21474,'PROJCS["Beijing 1954 / Gauss-Kruger 14N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6077,'EPSG',6077,'PROJCS["WGS 84 / EPSG Arctic zone 3-13",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",80.33333333 [...]
 ---
---- EPSG 21475 : Beijing 1954 / Gauss-Kruger 15N (deprecated)
+--- EPSG 6078 : WGS 84 / EPSG Arctic zone 3-15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21475,'EPSG',21475,'PROJCS["Beijing 1954 / Gauss-Kruger 15N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6078,'EPSG',6078,'PROJCS["WGS 84 / EPSG Arctic zone 3-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",80.33333333 [...]
 ---
---- EPSG 21476 : Beijing 1954 / Gauss-Kruger 16N (deprecated)
+--- EPSG 6079 : WGS 84 / EPSG Arctic zone 3-17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21476,'EPSG',21476,'PROJCS["Beijing 1954 / Gauss-Kruger 16N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6079,'EPSG',6079,'PROJCS["WGS 84 / EPSG Arctic zone 3-17",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",80.33333333 [...]
 ---
---- EPSG 21477 : Beijing 1954 / Gauss-Kruger 17N (deprecated)
+--- EPSG 6080 : WGS 84 / EPSG Arctic zone 3-19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21477,'EPSG',21477,'PROJCS["Beijing 1954 / Gauss-Kruger 17N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6080,'EPSG',6080,'PROJCS["WGS 84 / EPSG Arctic zone 3-19",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",80.33333333 [...]
 ---
---- EPSG 21478 : Beijing 1954 / Gauss-Kruger 18N (deprecated)
+--- EPSG 6081 : WGS 84 / EPSG Arctic zone 4-30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21478,'EPSG',21478,'PROJCS["Beijing 1954 / Gauss-Kruger 18N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6081,'EPSG',6081,'PROJCS["WGS 84 / EPSG Arctic zone 4-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77],PARAMET [...]
 ---
---- EPSG 21479 : Beijing 1954 / Gauss-Kruger 19N (deprecated)
+--- EPSG 6082 : WGS 84 / EPSG Arctic zone 4-32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21479,'EPSG',21479,'PROJCS["Beijing 1954 / Gauss-Kruger 19N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6082,'EPSG',6082,'PROJCS["WGS 84 / EPSG Arctic zone 4-32",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77],PARAMET [...]
 ---
---- EPSG 21480 : Beijing 1954 / Gauss-Kruger 20N (deprecated)
+--- EPSG 6083 : WGS 84 / EPSG Arctic zone 4-34
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21480,'EPSG',21480,'PROJCS["Beijing 1954 / Gauss-Kruger 20N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6083,'EPSG',6083,'PROJCS["WGS 84 / EPSG Arctic zone 4-34",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77],PARAMET [...]
 ---
---- EPSG 21481 : Beijing 1954 / Gauss-Kruger 21N (deprecated)
+--- EPSG 6084 : WGS 84 / EPSG Arctic zone 4-36
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21481,'EPSG',21481,'PROJCS["Beijing 1954 / Gauss-Kruger 21N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6084,'EPSG',6084,'PROJCS["WGS 84 / EPSG Arctic zone 4-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77],PARAMET [...]
 ---
---- EPSG 21482 : Beijing 1954 / Gauss-Kruger 22N (deprecated)
+--- EPSG 6085 : WGS 84 / EPSG Arctic zone 4-38
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21482,'EPSG',21482,'PROJCS["Beijing 1954 / Gauss-Kruger 22N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6085,'EPSG',6085,'PROJCS["WGS 84 / EPSG Arctic zone 4-38",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77],PARAMET [...]
 ---
---- EPSG 21483 : Beijing 1954 / Gauss-Kruger 23N (deprecated)
+--- EPSG 6086 : WGS 84 / EPSG Arctic zone 4-40
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21483,'EPSG',21483,'PROJCS["Beijing 1954 / Gauss-Kruger 23N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6086,'EPSG',6086,'PROJCS["WGS 84 / EPSG Arctic zone 4-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77],PARAMET [...]
 ---
---- EPSG 21500 : Belge 1950 (Brussels) / Belge Lambert 50
+--- EPSG 6087 : WGS 84 / EPSG Arctic zone 5-15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21500,'EPSG',21500,'PROJCS["Belge 1950 (Brussels) / Belge Lambert 50",GEOGCS["Belge 1950 (Brussels)",DATUM["Reseau_National_Belge_1950_Brussels",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6809"]],PRIMEM["Brussels",4.367975,AUTHORITY["EPSG","8910"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4809"]],UNIT["metre",1,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6087,'EPSG',6087,'PROJCS["WGS 84 / EPSG Arctic zone 5-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",73.66666666 [...]
 ---
---- EPSG 21780 : Bern 1898 (Bern) / LV03C
+--- EPSG 6088 : WGS 84 / EPSG Arctic zone 5-17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21780,'EPSG',21780,'PROJCS["Bern 1898 (Bern) / LV03C",GEOGCS["Bern 1898 (Bern)",DATUM["CH1903_Bern",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY["EPSG","6801"]],PRIMEM["Bern",7.439583333333333,AUTHORITY["EPSG","8907"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4801"]],UNIT["metre",1,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6088,'EPSG',6088,'PROJCS["WGS 84 / EPSG Arctic zone 5-17",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",73.66666666 [...]
 ---
---- EPSG 21781 : CH1903 / LV03
+--- EPSG 6089 : WGS 84 / EPSG Arctic zone 5-19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21781,'EPSG',21781,'PROJCS["CH1903 / LV03",GEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_O [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6089,'EPSG',6089,'PROJCS["WGS 84 / EPSG Arctic zone 5-19",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",73.66666666 [...]
 ---
---- EPSG 21782 : CH1903 / LV03C-G
+--- EPSG 6090 : WGS 84 / EPSG Arctic zone 5-21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21782,'EPSG',21782,'PROJCS["CH1903 / LV03C-G",GEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotin [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6090,'EPSG',6090,'PROJCS["WGS 84 / EPSG Arctic zone 5-21",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",73.66666666 [...]
 ---
---- EPSG 21817 : Bogota 1975 / UTM zone 17N (deprecated)
+--- EPSG 6091 : WGS 84 / EPSG Arctic zone 5-23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21817,'EPSG',21817,'PROJCS["Bogota 1975 / UTM zone 17N (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6091,'EPSG',6091,'PROJCS["WGS 84 / EPSG Arctic zone 5-23",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",73.66666666 [...]
 ---
---- EPSG 21818 : Bogota 1975 / UTM zone 18N
+--- EPSG 6092 : WGS 84 / EPSG Arctic zone 5-25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21818,'EPSG',21818,'PROJCS["Bogota 1975 / UTM zone 18N",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6092,'EPSG',6092,'PROJCS["WGS 84 / EPSG Arctic zone 5-25",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",73.66666666 [...]
 ---
---- EPSG 21891 : Bogota 1975 / Colombia West zone (deprecated)
+--- EPSG 6093 : WGS 84 / EPSG Arctic zone 5-27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21891,'EPSG',21891,'PROJCS["Bogota 1975 / Colombia West zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6093,'EPSG',6093,'PROJCS["WGS 84 / EPSG Arctic zone 5-27",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",73.66666666 [...]
 ---
---- EPSG 21892 : Bogota 1975 / Colombia Bogota zone (deprecated)
+--- EPSG 6094 : NAD83(NSRS2007) / EPSG Arctic zone 5-29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21892,'EPSG',21892,'PROJCS["Bogota 1975 / Colombia Bogota zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6094,'EPSG',6094,'PROJCS["NAD83(NSRS2007) / EPSG Arctic zone 5-29",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
---- EPSG 21893 : Bogota 1975 / Colombia East Central zone (deprecated)
+--- EPSG 6095 : NAD83(NSRS2007) / EPSG Arctic zone 5-31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21893,'EPSG',21893,'PROJCS["Bogota 1975 / Colombia East Central zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6095,'EPSG',6095,'PROJCS["NAD83(NSRS2007) / EPSG Arctic zone 5-31",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
---- EPSG 21894 : Bogota 1975 / Colombia East (deprecated)
+--- EPSG 6096 : NAD83(NSRS2007) / EPSG Arctic zone 6-14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21894,'EPSG',21894,'PROJCS["Bogota 1975 / Colombia East (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6096,'EPSG',6096,'PROJCS["NAD83(NSRS2007) / EPSG Arctic zone 6-14",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
---- EPSG 21896 : Bogota 1975 / Colombia West zone
+--- EPSG 6097 : NAD83(NSRS2007) / EPSG Arctic zone 6-16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21896,'EPSG',21896,'PROJCS["Bogota 1975 / Colombia West zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6097,'EPSG',6097,'PROJCS["NAD83(NSRS2007) / EPSG Arctic zone 6-16",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJEC [...]
 ---
---- EPSG 21897 : Bogota 1975 / Colombia Bogota zone
+--- EPSG 6098 : NAD83(CSRS) / EPSG Arctic zone 1-23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21897,'EPSG',21897,'PROJCS["Bogota 1975 / Colombia Bogota zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6098,'EPSG',6098,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 1-23",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 21898 : Bogota 1975 / Colombia East Central zone
+--- EPSG 6099 : NAD83(CSRS) / EPSG Arctic zone 2-14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21898,'EPSG',21898,'PROJCS["Bogota 1975 / Colombia East Central zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6099,'EPSG',6099,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 2-14",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 21899 : Bogota 1975 / Colombia East
+--- EPSG 6100 : NAD83(CSRS) / EPSG Arctic zone 2-16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21899,'EPSG',21899,'PROJCS["Bogota 1975 / Colombia East",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6100,'EPSG',6100,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 2-16",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22032 : Camacupa / UTM zone 32S
+--- EPSG 6101 : NAD83(CSRS) / EPSG Arctic zone 3-25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22032,'EPSG',22032,'PROJCS["Camacupa / UTM zone 32S",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6101,'EPSG',6101,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 3-25",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22033 : Camacupa / UTM zone 33S
+--- EPSG 6102 : NAD83(CSRS) / EPSG Arctic zone 3-27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22033,'EPSG',22033,'PROJCS["Camacupa / UTM zone 33S",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6102,'EPSG',6102,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 3-27",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22091 : Camacupa / TM 11.30 SE
+--- EPSG 6103 : NAD83(CSRS) / EPSG Arctic zone 3-29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22091,'EPSG',22091,'PROJCS["Camacupa / TM 11.30 SE",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6103,'EPSG',6103,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 3-29",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22092 : Camacupa / TM 12 SE
+--- EPSG 6104 : NAD83(CSRS) / EPSG Arctic zone 4-14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22092,'EPSG',22092,'PROJCS["Camacupa / TM 12 SE",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6104,'EPSG',6104,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 4-14",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22171 : POSGAR 98 / Argentina 1
+--- EPSG 6105 : NAD83(CSRS) / EPSG Arctic zone 4-16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22171,'EPSG',22171,'PROJCS["POSGAR 98 / Argentina 1",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6105,'EPSG',6105,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 4-16",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22172 : POSGAR 98 / Argentina 2
+--- EPSG 6106 : NAD83(CSRS) / EPSG Arctic zone 4-18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22172,'EPSG',22172,'PROJCS["POSGAR 98 / Argentina 2",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6106,'EPSG',6106,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 4-18",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22173 : POSGAR 98 / Argentina 3
+--- EPSG 6107 : NAD83(CSRS) / EPSG Arctic zone 5-33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22173,'EPSG',22173,'PROJCS["POSGAR 98 / Argentina 3",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6107,'EPSG',6107,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 5-33",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22174 : POSGAR 98 / Argentina 4
+--- EPSG 6108 : NAD83(CSRS) / EPSG Arctic zone 5-35
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22174,'EPSG',22174,'PROJCS["POSGAR 98 / Argentina 4",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6108,'EPSG',6108,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 5-35",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22175 : POSGAR 98 / Argentina 5
+--- EPSG 6109 : NAD83(CSRS) / EPSG Arctic zone 5-37
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22175,'EPSG',22175,'PROJCS["POSGAR 98 / Argentina 5",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6109,'EPSG',6109,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 5-37",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22176 : POSGAR 98 / Argentina 6
+--- EPSG 6110 : NAD83(CSRS) / EPSG Arctic zone 5-39
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22176,'EPSG',22176,'PROJCS["POSGAR 98 / Argentina 6",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6110,'EPSG',6110,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 5-39",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22177 : POSGAR 98 / Argentina 7
+--- EPSG 6111 : NAD83(CSRS) / EPSG Arctic zone 6-18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22177,'EPSG',22177,'PROJCS["POSGAR 98 / Argentina 7",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6111,'EPSG',6111,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 6-18",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22181 : POSGAR 94 / Argentina 1
+--- EPSG 6112 : NAD83(CSRS) / EPSG Arctic zone 6-20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22181,'EPSG',22181,'PROJCS["POSGAR 94 / Argentina 1",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6112,'EPSG',6112,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 6-20",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22182 : POSGAR 94 / Argentina 2
+--- EPSG 6113 : NAD83(CSRS) / EPSG Arctic zone 6-22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22182,'EPSG',22182,'PROJCS["POSGAR 94 / Argentina 2",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6113,'EPSG',6113,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 6-22",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22183 : POSGAR 94 / Argentina 3
+--- EPSG 6114 : NAD83(CSRS) / EPSG Arctic zone 6-24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22183,'EPSG',22183,'PROJCS["POSGAR 94 / Argentina 3",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6114,'EPSG',6114,'PROJCS["NAD83(CSRS) / EPSG Arctic zone 6-24",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert [...]
 ---
---- EPSG 22184 : POSGAR 94 / Argentina 4
+--- EPSG 6115 : WGS 84 / EPSG Arctic zone 1-27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22184,'EPSG',22184,'PROJCS["POSGAR 94 / Argentina 4",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6115,'EPSG',6115,'PROJCS["WGS 84 / EPSG Arctic zone 1-27",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",87],PARAMET [...]
 ---
---- EPSG 22185 : POSGAR 94 / Argentina 5
+--- EPSG 6116 : WGS 84 / EPSG Arctic zone 1-29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22185,'EPSG',22185,'PROJCS["POSGAR 94 / Argentina 5",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6116,'EPSG',6116,'PROJCS["WGS 84 / EPSG Arctic zone 1-29",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",87],PARAMET [...]
 ---
---- EPSG 22186 : POSGAR 94 / Argentina 6
+--- EPSG 6117 : WGS 84 / EPSG Arctic zone 1-31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22186,'EPSG',22186,'PROJCS["POSGAR 94 / Argentina 6",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6117,'EPSG',6117,'PROJCS["WGS 84 / EPSG Arctic zone 1-31",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",87],PARAMET [...]
 ---
---- EPSG 22187 : POSGAR 94 / Argentina 7
+--- EPSG 6118 : WGS 84 / EPSG Arctic zone 1-21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22187,'EPSG',22187,'PROJCS["POSGAR 94 / Argentina 7",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6118,'EPSG',6118,'PROJCS["WGS 84 / EPSG Arctic zone 1-21",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",87],PARAMET [...]
 ---
---- EPSG 22191 : Campo Inchauspe / Argentina 1
+--- EPSG 6119 : WGS 84 / EPSG Arctic zone 2-28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22191,'EPSG',22191,'PROJCS["Campo Inchauspe / Argentina 1",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6119,'EPSG',6119,'PROJCS["WGS 84 / EPSG Arctic zone 2-28",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",83.66666666 [...]
 ---
---- EPSG 22192 : Campo Inchauspe / Argentina 2
+--- EPSG 6120 : WGS 84 / EPSG Arctic zone 2-10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22192,'EPSG',22192,'PROJCS["Campo Inchauspe / Argentina 2",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6120,'EPSG',6120,'PROJCS["WGS 84 / EPSG Arctic zone 2-10",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",83.66666666 [...]
 ---
---- EPSG 22193 : Campo Inchauspe / Argentina 3
+--- EPSG 6121 : WGS 84 / EPSG Arctic zone 2-12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22193,'EPSG',22193,'PROJCS["Campo Inchauspe / Argentina 3",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6121,'EPSG',6121,'PROJCS["WGS 84 / EPSG Arctic zone 2-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",83.66666666 [...]
 ---
---- EPSG 22194 : Campo Inchauspe / Argentina 4
+--- EPSG 6122 : WGS 84 / EPSG Arctic zone 3-21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22194,'EPSG',22194,'PROJCS["Campo Inchauspe / Argentina 4",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6122,'EPSG',6122,'PROJCS["WGS 84 / EPSG Arctic zone 3-21",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",80.33333333 [...]
 ---
---- EPSG 22195 : Campo Inchauspe / Argentina 5
+--- EPSG 6123 : WGS 84 / EPSG Arctic zone 3-23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22195,'EPSG',22195,'PROJCS["Campo Inchauspe / Argentina 5",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6123,'EPSG',6123,'PROJCS["WGS 84 / EPSG Arctic zone 3-23",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",80.33333333 [...]
 ---
---- EPSG 22196 : Campo Inchauspe / Argentina 6
+--- EPSG 6124 : WGS 84 / EPSG Arctic zone 4-12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22196,'EPSG',22196,'PROJCS["Campo Inchauspe / Argentina 6",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6124,'EPSG',6124,'PROJCS["WGS 84 / EPSG Arctic zone 4-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",77],PARAMET [...]
 ---
---- EPSG 22197 : Campo Inchauspe / Argentina 7
+--- EPSG 6125 : ETRS89 / EPSG Arctic zone 5-47
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22197,'EPSG',22197,'PROJCS["Campo Inchauspe / Argentina 7",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6125,'EPSG',6125,'PROJCS["ETRS89 / EPSG Arctic zone 5-47",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Confor [...]
 ---
---- EPSG 22234 : Cape / UTM zone 34S
+--- EPSG 6128 : Grand Cayman National Grid 1959
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22234,'EPSG',22234,'PROJCS["Cape / UTM zone 34S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6128,'EPSG',6128,'PROJCS["Grand Cayman National Grid 1959",GEOGCS["GCGD59",DATUM["Grand_Cayman_Geodetic_Datum_1959",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-179.483,-69.379,-27.584,-7.862,8.163,6.042,-13.925],AUTHORITY["EPSG","6723"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 22235 : Cape / UTM zone 35S
+--- EPSG 6129 : Sister Islands National Grid 1961
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22235,'EPSG',22235,'PROJCS["Cape / UTM zone 35S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6129,'EPSG',6129,'PROJCS["Sister Islands National Grid 1961",GEOGCS["SIGD61",DATUM["Sister_Islands_Geodetic_Datum_1961",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[8.853,-52.644,180.304,-0.393,-2.323,2.96,-24.081],AUTHORITY["EPSG","6726"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 22236 : Cape / UTM zone 36S
+--- EPSG 6141 : Cayman Islands National Grid 2011 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22236,'EPSG',22236,'PROJCS["Cape / UTM zone 36S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6141,'EPSG',6141,'PROJCS["Cayman Islands National Grid 2011 (deprecated)",GEOGCS["CIGD11",DATUM["Cayman_Islands_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1100"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6135"]],PROJECTION["Lamber [...]
 ---
---- EPSG 22275 : Cape / Lo15
+--- EPSG 6200 : NAD27 / Michigan North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22275,'EPSG',22275,'PROJCS["Cape / Lo15",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+-- (unable to translate)
 ---
---- EPSG 22277 : Cape / Lo17
+--- EPSG 6201 : NAD27 / Michigan Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22277,'EPSG',22277,'PROJCS["Cape / Lo17",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+-- (unable to translate)
 ---
---- EPSG 22279 : Cape / Lo19
+--- EPSG 6202 : NAD27 / Michigan South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22279,'EPSG',22279,'PROJCS["Cape / Lo19",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+-- (unable to translate)
 ---
---- EPSG 22281 : Cape / Lo21
+--- EPSG 6204 : Macedonian State Coordinate System
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22281,'EPSG',22281,'PROJCS["Cape / Lo21",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6204,'EPSG',6204,'PROJCS["Macedonian State Coordinate System",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 22283 : Cape / Lo23
+--- EPSG 6210 : SIRGAS 2000 / UTM zone 23N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22283,'EPSG',22283,'PROJCS["Cape / Lo23",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6210,'EPSG',6210,'PROJCS["SIRGAS 2000 / UTM zone 23N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTION[ [...]
 ---
---- EPSG 22285 : Cape / Lo25
+--- EPSG 6211 : SIRGAS 2000 / UTM zone 24N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22285,'EPSG',22285,'PROJCS["Cape / Lo25",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6211,'EPSG',6211,'PROJCS["SIRGAS 2000 / UTM zone 24N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTION[ [...]
 ---
---- EPSG 22287 : Cape / Lo27
+--- EPSG 6244 : MAGNA-SIRGAS / Arauca urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22287,'EPSG',22287,'PROJCS["Cape / Lo27",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+-- (unable to translate)
 ---
---- EPSG 22289 : Cape / Lo29
+--- EPSG 6245 : MAGNA-SIRGAS / Armenia urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22289,'EPSG',22289,'PROJCS["Cape / Lo29",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+-- (unable to translate)
 ---
---- EPSG 22291 : Cape / Lo31
+--- EPSG 6246 : MAGNA-SIRGAS / Barranquilla urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22291,'EPSG',22291,'PROJCS["Cape / Lo31",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+-- (unable to translate)
 ---
---- EPSG 22293 : Cape / Lo33
+--- EPSG 6247 : MAGNA-SIRGAS / Bogota urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22293,'EPSG',22293,'PROJCS["Cape / Lo33",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse [...]
+-- (unable to translate)
 ---
---- EPSG 22300 : Carthage (Paris) / Tunisia Mining Grid
+--- EPSG 6248 : MAGNA-SIRGAS / Bucaramanga urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22300,'EPSG',22300,'PROJCS["Carthage (Paris) / Tunisia Mining Grid",GEOGCS["Carthage (Paris)",DATUM["Carthage_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6816"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4816"]],UNIT["kilo [...]
+-- (unable to translate)
 ---
---- EPSG 22332 : Carthage / UTM zone 32N
+--- EPSG 6249 : MAGNA-SIRGAS / Cali urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22332,'EPSG',22332,'PROJCS["Carthage / UTM zone 32N",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+-- (unable to translate)
 ---
---- EPSG 22391 : Carthage / Nord Tunisie
+--- EPSG 6250 : MAGNA-SIRGAS / Cartagena urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22391,'EPSG',22391,'PROJCS["Carthage / Nord Tunisie",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+-- (unable to translate)
 ---
---- EPSG 22392 : Carthage / Sud Tunisie
+--- EPSG 6251 : MAGNA-SIRGAS / Cucuta urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22392,'EPSG',22392,'PROJCS["Carthage / Sud Tunisie",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+-- (unable to translate)
 ---
---- EPSG 22521 : Corrego Alegre / UTM zone 21S
+--- EPSG 6252 : MAGNA-SIRGAS / Florencia urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22521,'EPSG',22521,'PROJCS["Corrego Alegre / UTM zone 21S",GEOGCS["Corrego Alegre",DATUM["Corrego_Alegre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+-- (unable to translate)
 ---
---- EPSG 22522 : Corrego Alegre / UTM zone 22S
+--- EPSG 6253 : MAGNA-SIRGAS / Ibague urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22522,'EPSG',22522,'PROJCS["Corrego Alegre / UTM zone 22S",GEOGCS["Corrego Alegre",DATUM["Corrego_Alegre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+-- (unable to translate)
 ---
---- EPSG 22523 : Corrego Alegre / UTM zone 23S
+--- EPSG 6254 : MAGNA-SIRGAS / Inirida urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22523,'EPSG',22523,'PROJCS["Corrego Alegre / UTM zone 23S",GEOGCS["Corrego Alegre",DATUM["Corrego_Alegre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+-- (unable to translate)
 ---
---- EPSG 22524 : Corrego Alegre / UTM zone 24S
+--- EPSG 6255 : MAGNA-SIRGAS / Leticia urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22524,'EPSG',22524,'PROJCS["Corrego Alegre / UTM zone 24S",GEOGCS["Corrego Alegre",DATUM["Corrego_Alegre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+-- (unable to translate)
 ---
---- EPSG 22525 : Corrego Alegre / UTM zone 25S
+--- EPSG 6256 : MAGNA-SIRGAS / Manizales urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22525,'EPSG',22525,'PROJCS["Corrego Alegre / UTM zone 25S",GEOGCS["Corrego Alegre",DATUM["Corrego_Alegre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],UNIT["metre",1,AUTHORITY["EPSG","9001"] [...]
+-- (unable to translate)
 ---
---- EPSG 22700 : Deir ez Zor / Levant Zone
+--- EPSG 6257 : MAGNA-SIRGAS / Medellin urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22700,'EPSG',22700,'PROJCS["Deir ez Zor / Levant Zone",GEOGCS["Deir ez Zor",DATUM["Deir_ez_Zor",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY["EPSG","6227"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4227"]],UNIT["metre",1,AUTHORITY [...]
+-- (unable to translate)
 ---
---- EPSG 22770 : Deir ez Zor / Syria Lambert
+--- EPSG 6258 : MAGNA-SIRGAS / Mitu urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22770,'EPSG',22770,'PROJCS["Deir ez Zor / Syria Lambert",GEOGCS["Deir ez Zor",DATUM["Deir_ez_Zor",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY["EPSG","6227"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4227"]],UNIT["metre",1,AUTHORI [...]
+-- (unable to translate)
 ---
---- EPSG 22780 : Deir ez Zor / Levant Stereographic
+--- EPSG 6259 : MAGNA-SIRGAS / Mocoa urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22780,'EPSG',22780,'PROJCS["Deir ez Zor / Levant Stereographic",GEOGCS["Deir ez Zor",DATUM["Deir_ez_Zor",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY["EPSG","6227"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4227"]],UNIT["metre",1, [...]
+-- (unable to translate)
 ---
---- EPSG 22832 : Douala / UTM zone 32N (deprecated)
+--- EPSG 6260 : MAGNA-SIRGAS / Monteria urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22832,'EPSG',22832,'PROJCS["Douala / UTM zone 32N (deprecated)",GEOGCS["Douala",DATUM["Douala",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6228"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4228"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+-- (unable to translate)
 ---
---- EPSG 22991 : Egypt 1907 / Blue Belt
+--- EPSG 6261 : MAGNA-SIRGAS / Neiva urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22991,'EPSG',22991,'PROJCS["Egypt 1907 / Blue Belt",GEOGCS["Egypt 1907",DATUM["Egypt_1907",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY["EPSG","6229"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4229"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tran [...]
+-- (unable to translate)
 ---
---- EPSG 22992 : Egypt 1907 / Red Belt
+--- EPSG 6262 : MAGNA-SIRGAS / Pasto urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22992,'EPSG',22992,'PROJCS["Egypt 1907 / Red Belt",GEOGCS["Egypt 1907",DATUM["Egypt_1907",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY["EPSG","6229"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4229"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Trans [...]
+-- (unable to translate)
 ---
---- EPSG 22993 : Egypt 1907 / Purple Belt
+--- EPSG 6263 : MAGNA-SIRGAS / Pereira urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22993,'EPSG',22993,'PROJCS["Egypt 1907 / Purple Belt",GEOGCS["Egypt 1907",DATUM["Egypt_1907",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY["EPSG","6229"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4229"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+-- (unable to translate)
 ---
---- EPSG 22994 : Egypt 1907 / Extended Purple Belt
+--- EPSG 6264 : MAGNA-SIRGAS / Popayan urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22994,'EPSG',22994,'PROJCS["Egypt 1907 / Extended Purple Belt",GEOGCS["Egypt 1907",DATUM["Egypt_1907",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY["EPSG","6229"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4229"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+-- (unable to translate)
 ---
---- EPSG 23028 : ED50 / UTM zone 28N
+--- EPSG 6265 : MAGNA-SIRGAS / Puerto Carreno urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23028,'EPSG',23028,'PROJCS["ED50 / UTM zone 28N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23029 : ED50 / UTM zone 29N
+--- EPSG 6266 : MAGNA-SIRGAS / Quibdo urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23029,'EPSG',23029,'PROJCS["ED50 / UTM zone 29N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23030 : ED50 / UTM zone 30N
+--- EPSG 6267 : MAGNA-SIRGAS / Riohacha urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23030,'EPSG',23030,'PROJCS["ED50 / UTM zone 30N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23031 : ED50 / UTM zone 31N
+--- EPSG 6268 : MAGNA-SIRGAS / San Andres urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23031,'EPSG',23031,'PROJCS["ED50 / UTM zone 31N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23032 : ED50 / UTM zone 32N
+--- EPSG 6269 : MAGNA-SIRGAS / San Jose del Guaviare urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23032,'EPSG',23032,'PROJCS["ED50 / UTM zone 32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23033 : ED50 / UTM zone 33N
+--- EPSG 6270 : MAGNA-SIRGAS / Santa Marta urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23033,'EPSG',23033,'PROJCS["ED50 / UTM zone 33N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23034 : ED50 / UTM zone 34N
+--- EPSG 6271 : MAGNA-SIRGAS / Sucre urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23034,'EPSG',23034,'PROJCS["ED50 / UTM zone 34N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23035 : ED50 / UTM zone 35N
+--- EPSG 6272 : MAGNA-SIRGAS / Tunja urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23035,'EPSG',23035,'PROJCS["ED50 / UTM zone 35N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23036 : ED50 / UTM zone 36N
+--- EPSG 6273 : MAGNA-SIRGAS / Valledupar urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23036,'EPSG',23036,'PROJCS["ED50 / UTM zone 36N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23037 : ED50 / UTM zone 37N
+--- EPSG 6274 : MAGNA-SIRGAS / Villavicencio urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23037,'EPSG',23037,'PROJCS["ED50 / UTM zone 37N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23038 : ED50 / UTM zone 38N
+--- EPSG 6275 : MAGNA-SIRGAS / Yopal urban grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23038,'EPSG',23038,'PROJCS["ED50 / UTM zone 38N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+-- (unable to translate)
 ---
---- EPSG 23090 : ED50 / TM 0 N
+--- EPSG 6316 : Macedonia State Coordinate System zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23090,'EPSG',23090,'PROJCS["ED50 / TM 0 N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transv [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6316,'EPSG',6316,'PROJCS["Macedonia State Coordinate System zone 7",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 23095 : ED50 / TM 5 NE
+--- EPSG 6328 : NAD83(2011) / UTM zone 59N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23095,'EPSG',23095,'PROJCS["ED50 / TM 5 NE",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Trans [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6328,'EPSG',6328,'PROJCS["NAD83(2011) / UTM zone 59N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23239 : Fahud / UTM zone 39N
+--- EPSG 6329 : NAD83(2011) / UTM zone 60N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23239,'EPSG',23239,'PROJCS["Fahud / UTM zone 39N",GEOGCS["Fahud",DATUM["Fahud",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-346,-1,224,0,0,0,0],AUTHORITY["EPSG","6232"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4232"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transv [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6329,'EPSG',6329,'PROJCS["NAD83(2011) / UTM zone 60N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23240 : Fahud / UTM zone 40N
+--- EPSG 6330 : NAD83(2011) / UTM zone 1N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23240,'EPSG',23240,'PROJCS["Fahud / UTM zone 40N",GEOGCS["Fahud",DATUM["Fahud",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-346,-1,224,0,0,0,0],AUTHORITY["EPSG","6232"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4232"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transv [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6330,'EPSG',6330,'PROJCS["NAD83(2011) / UTM zone 1N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 23433 : Garoua / UTM zone 33N (deprecated)
+--- EPSG 6331 : NAD83(2011) / UTM zone 2N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23433,'EPSG',23433,'PROJCS["Garoua / UTM zone 33N (deprecated)",GEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6234"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4234"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6331,'EPSG',6331,'PROJCS["NAD83(2011) / UTM zone 2N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 23700 : HD72 / EOV
+--- EPSG 6332 : NAD83(2011) / UTM zone 3N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23700,'EPSG',23700,'PROJCS["HD72 / EOV",GEOGCS["HD72",DATUM["Hungarian_Datum_1972",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[52.17,-71.82,-14.9,0,0,0,0],AUTHORITY["EPSG","6237"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4237"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Ho [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6332,'EPSG',6332,'PROJCS["NAD83(2011) / UTM zone 3N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 23830 : DGN95 / Indonesia TM-3 zone 46.2
+--- EPSG 6333 : NAD83(2011) / UTM zone 4N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23830,'EPSG',23830,'PROJCS["DGN95 / Indonesia TM-3 zone 46.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6333,'EPSG',6333,'PROJCS["NAD83(2011) / UTM zone 4N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 23831 : DGN95 / Indonesia TM-3 zone 47.1
+--- EPSG 6334 : NAD83(2011) / UTM zone 5N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23831,'EPSG',23831,'PROJCS["DGN95 / Indonesia TM-3 zone 47.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6334,'EPSG',6334,'PROJCS["NAD83(2011) / UTM zone 5N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 23832 : DGN95 / Indonesia TM-3 zone 47.2
+--- EPSG 6335 : NAD83(2011) / UTM zone 6N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23832,'EPSG',23832,'PROJCS["DGN95 / Indonesia TM-3 zone 47.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6335,'EPSG',6335,'PROJCS["NAD83(2011) / UTM zone 6N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 23833 : DGN95 / Indonesia TM-3 zone 48.1
+--- EPSG 6336 : NAD83(2011) / UTM zone 7N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23833,'EPSG',23833,'PROJCS["DGN95 / Indonesia TM-3 zone 48.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6336,'EPSG',6336,'PROJCS["NAD83(2011) / UTM zone 7N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 23834 : DGN95 / Indonesia TM-3 zone 48.2
+--- EPSG 6337 : NAD83(2011) / UTM zone 8N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23834,'EPSG',23834,'PROJCS["DGN95 / Indonesia TM-3 zone 48.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6337,'EPSG',6337,'PROJCS["NAD83(2011) / UTM zone 8N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 23835 : DGN95 / Indonesia TM-3 zone 49.1
+--- EPSG 6338 : NAD83(2011) / UTM zone 9N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23835,'EPSG',23835,'PROJCS["DGN95 / Indonesia TM-3 zone 49.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6338,'EPSG',6338,'PROJCS["NAD83(2011) / UTM zone 9N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 23836 : DGN95 / Indonesia TM-3 zone 49.2
+--- EPSG 6339 : NAD83(2011) / UTM zone 10N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23836,'EPSG',23836,'PROJCS["DGN95 / Indonesia TM-3 zone 49.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6339,'EPSG',6339,'PROJCS["NAD83(2011) / UTM zone 10N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23837 : DGN95 / Indonesia TM-3 zone 50.1
+--- EPSG 6340 : NAD83(2011) / UTM zone 11N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23837,'EPSG',23837,'PROJCS["DGN95 / Indonesia TM-3 zone 50.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6340,'EPSG',6340,'PROJCS["NAD83(2011) / UTM zone 11N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23838 : DGN95 / Indonesia TM-3 zone 50.2
+--- EPSG 6341 : NAD83(2011) / UTM zone 12N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23838,'EPSG',23838,'PROJCS["DGN95 / Indonesia TM-3 zone 50.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6341,'EPSG',6341,'PROJCS["NAD83(2011) / UTM zone 12N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23839 : DGN95 / Indonesia TM-3 zone 51.1
+--- EPSG 6342 : NAD83(2011) / UTM zone 13N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23839,'EPSG',23839,'PROJCS["DGN95 / Indonesia TM-3 zone 51.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6342,'EPSG',6342,'PROJCS["NAD83(2011) / UTM zone 13N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23840 : DGN95 / Indonesia TM-3 zone 51.2
+--- EPSG 6343 : NAD83(2011) / UTM zone 14N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23840,'EPSG',23840,'PROJCS["DGN95 / Indonesia TM-3 zone 51.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6343,'EPSG',6343,'PROJCS["NAD83(2011) / UTM zone 14N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23841 : DGN95 / Indonesia TM-3 zone 52.1
+--- EPSG 6344 : NAD83(2011) / UTM zone 15N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23841,'EPSG',23841,'PROJCS["DGN95 / Indonesia TM-3 zone 52.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6344,'EPSG',6344,'PROJCS["NAD83(2011) / UTM zone 15N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23842 : DGN95 / Indonesia TM-3 zone 52.2
+--- EPSG 6345 : NAD83(2011) / UTM zone 16N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23842,'EPSG',23842,'PROJCS["DGN95 / Indonesia TM-3 zone 52.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6345,'EPSG',6345,'PROJCS["NAD83(2011) / UTM zone 16N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23843 : DGN95 / Indonesia TM-3 zone 53.1
+--- EPSG 6346 : NAD83(2011) / UTM zone 17N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23843,'EPSG',23843,'PROJCS["DGN95 / Indonesia TM-3 zone 53.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6346,'EPSG',6346,'PROJCS["NAD83(2011) / UTM zone 17N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23844 : DGN95 / Indonesia TM-3 zone 53.2
+--- EPSG 6347 : NAD83(2011) / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23844,'EPSG',23844,'PROJCS["DGN95 / Indonesia TM-3 zone 53.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6347,'EPSG',6347,'PROJCS["NAD83(2011) / UTM zone 18N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23845 : DGN95 / Indonesia TM-3 zone 54.1
+--- EPSG 6348 : NAD83(2011) / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23845,'EPSG',23845,'PROJCS["DGN95 / Indonesia TM-3 zone 54.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6348,'EPSG',6348,'PROJCS["NAD83(2011) / UTM zone 19N",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23846 : ID74 / UTM zone 46N
+--- EPSG 6350 : NAD83(2011) / Conus Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23846,'EPSG',23846,'PROJCS["ID74 / UTM zone 46N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6350,'EPSG',6350,'PROJCS["NAD83(2011) / Conus Albers",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETE [...]
 ---
---- EPSG 23847 : ID74 / UTM zone 47N
+--- EPSG 6351 : NAD83(2011) / EPSG Arctic zone 5-29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23847,'EPSG',23847,'PROJCS["ID74 / UTM zone 47N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6351,'EPSG',6351,'PROJCS["NAD83(2011) / EPSG Arctic zone 5-29",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 23848 : ID74 / UTM zone 48N
+--- EPSG 6352 : NAD83(2011) / EPSG Arctic zone 5-31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23848,'EPSG',23848,'PROJCS["ID74 / UTM zone 48N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6352,'EPSG',6352,'PROJCS["NAD83(2011) / EPSG Arctic zone 5-31",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 23849 : ID74 / UTM zone 49N
+--- EPSG 6353 : NAD83(2011) / EPSG Arctic zone 6-14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23849,'EPSG',23849,'PROJCS["ID74 / UTM zone 49N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6353,'EPSG',6353,'PROJCS["NAD83(2011) / EPSG Arctic zone 6-14",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 23850 : ID74 / UTM zone 50N
+--- EPSG 6354 : NAD83(2011) / EPSG Arctic zone 6-16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23850,'EPSG',23850,'PROJCS["ID74 / UTM zone 50N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6354,'EPSG',6354,'PROJCS["NAD83(2011) / EPSG Arctic zone 6-16",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 23851 : ID74 / UTM zone 51N
+--- EPSG 6355 : NAD83(2011) / Alabama East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23851,'EPSG',23851,'PROJCS["ID74 / UTM zone 51N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6355,'EPSG',6355,'PROJCS["NAD83(2011) / Alabama East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23852 : ID74 / UTM zone 52N
+--- EPSG 6356 : NAD83(2011) / Alabama West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23852,'EPSG',23852,'PROJCS["ID74 / UTM zone 52N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6356,'EPSG',6356,'PROJCS["NAD83(2011) / Alabama West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 23853 : ID74 / UTM zone 53N (deprecated)
+--- EPSG 6362 : Mexico ITRF92 / LCC
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23853,'EPSG',23853,'PROJCS["ID74 / UTM zone 53N (deprecated)",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6362,'EPSG',6362,'PROJCS["Mexico ITRF92 / LCC",GEOGCS["Mexico ITRF92",DATUM["Mexico_ITRF92",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4483"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standa [...]
 ---
---- EPSG 23866 : DGN95 / UTM zone 46N
+--- EPSG 6366 : Mexico ITRF2008 / UTM zone 11N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23866,'EPSG',23866,'PROJCS["DGN95 / UTM zone 46N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6366,'EPSG',6366,'PROJCS["Mexico ITRF2008 / UTM zone 11N",GEOGCS["Mexico ITRF2008",DATUM["Mexico_ITRF2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6365"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 23867 : DGN95 / UTM zone 47N
+--- EPSG 6367 : Mexico ITRF2008 / UTM zone 12N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23867,'EPSG',23867,'PROJCS["DGN95 / UTM zone 47N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6367,'EPSG',6367,'PROJCS["Mexico ITRF2008 / UTM zone 12N",GEOGCS["Mexico ITRF2008",DATUM["Mexico_ITRF2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6365"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 23868 : DGN95 / UTM zone 48N
+--- EPSG 6368 : Mexico ITRF2008 / UTM zone 13N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23868,'EPSG',23868,'PROJCS["DGN95 / UTM zone 48N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6368,'EPSG',6368,'PROJCS["Mexico ITRF2008 / UTM zone 13N",GEOGCS["Mexico ITRF2008",DATUM["Mexico_ITRF2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6365"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 23869 : DGN95 / UTM zone 49N
+--- EPSG 6369 : Mexico ITRF2008 / UTM zone 14N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23869,'EPSG',23869,'PROJCS["DGN95 / UTM zone 49N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6369,'EPSG',6369,'PROJCS["Mexico ITRF2008 / UTM zone 14N",GEOGCS["Mexico ITRF2008",DATUM["Mexico_ITRF2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6365"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 23870 : DGN95 / UTM zone 50N
+--- EPSG 6370 : Mexico ITRF2008 / UTM zone 15N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23870,'EPSG',23870,'PROJCS["DGN95 / UTM zone 50N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6370,'EPSG',6370,'PROJCS["Mexico ITRF2008 / UTM zone 15N",GEOGCS["Mexico ITRF2008",DATUM["Mexico_ITRF2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6365"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 23871 : DGN95 / UTM zone 51N
+--- EPSG 6371 : Mexico ITRF2008 / UTM zone 16N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23871,'EPSG',23871,'PROJCS["DGN95 / UTM zone 51N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6371,'EPSG',6371,'PROJCS["Mexico ITRF2008 / UTM zone 16N",GEOGCS["Mexico ITRF2008",DATUM["Mexico_ITRF2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6365"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 23872 : DGN95 / UTM zone 52N
+--- EPSG 6372 : Mexico ITRF2008 / LCC
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23872,'EPSG',23872,'PROJCS["DGN95 / UTM zone 52N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6372,'EPSG',6372,'PROJCS["Mexico ITRF2008 / LCC",GEOGCS["Mexico ITRF2008",DATUM["Mexico_ITRF2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6365"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[" [...]
 ---
---- EPSG 23877 : DGN95 / UTM zone 47S
+--- EPSG 6381 : UCS-2000 / Ukraine TM zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23877,'EPSG',23877,'PROJCS["DGN95 / UTM zone 47S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6381,'EPSG',6381,'PROJCS["UCS-2000 / Ukraine TM zone 7",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 23878 : DGN95 / UTM zone 48S
+--- EPSG 6382 : UCS-2000 / Ukraine TM zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23878,'EPSG',23878,'PROJCS["DGN95 / UTM zone 48S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6382,'EPSG',6382,'PROJCS["UCS-2000 / Ukraine TM zone 8",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 23879 : DGN95 / UTM zone 49S
+--- EPSG 6383 : UCS-2000 / Ukraine TM zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23879,'EPSG',23879,'PROJCS["DGN95 / UTM zone 49S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6383,'EPSG',6383,'PROJCS["UCS-2000 / Ukraine TM zone 9",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 23880 : DGN95 / UTM zone 50S
+--- EPSG 6384 : UCS-2000 / Ukraine TM zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23880,'EPSG',23880,'PROJCS["DGN95 / UTM zone 50S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6384,'EPSG',6384,'PROJCS["UCS-2000 / Ukraine TM zone 10",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 23881 : DGN95 / UTM zone 51S
+--- EPSG 6385 : UCS-2000 / Ukraine TM zone 11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23881,'EPSG',23881,'PROJCS["DGN95 / UTM zone 51S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6385,'EPSG',6385,'PROJCS["UCS-2000 / Ukraine TM zone 11",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 23882 : DGN95 / UTM zone 52S
+--- EPSG 6386 : UCS-2000 / Ukraine TM zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23882,'EPSG',23882,'PROJCS["DGN95 / UTM zone 52S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6386,'EPSG',6386,'PROJCS["UCS-2000 / Ukraine TM zone 12",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 23883 : DGN95 / UTM zone 53S
+--- EPSG 6387 : UCS-2000 / Ukraine TM zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23883,'EPSG',23883,'PROJCS["DGN95 / UTM zone 53S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6387,'EPSG',6387,'PROJCS["UCS-2000 / Ukraine TM zone 13",GEOGCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5561"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 23884 : DGN95 / UTM zone 54S
+--- EPSG 6391 : Cayman Islands National Grid 2011
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23884,'EPSG',23884,'PROJCS["DGN95 / UTM zone 54S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6391,'EPSG',6391,'PROJCS["Cayman Islands National Grid 2011",GEOGCS["CIGD11",DATUM["Cayman_Islands_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1100"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6135"]],PROJECTION["Lambert_Conformal_C [...]
 ---
---- EPSG 23886 : ID74 / UTM zone 46S (deprecated)
+--- EPSG 6393 : NAD83(2011) / Alaska Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23886,'EPSG',23886,'PROJCS["ID74 / UTM zone 46S (deprecated)",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6393,'EPSG',6393,'PROJCS["NAD83(2011) / Alaska Albers",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMET [...]
 ---
---- EPSG 23887 : ID74 / UTM zone 47S
+--- EPSG 6394 : NAD83(2011) / Alaska zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23887,'EPSG',23887,'PROJCS["ID74 / UTM zone 47S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6394,'EPSG',6394,'PROJCS["NAD83(2011) / Alaska zone 1",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMET [...]
 ---
---- EPSG 23888 : ID74 / UTM zone 48S
+--- EPSG 6395 : NAD83(2011) / Alaska zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23888,'EPSG',23888,'PROJCS["ID74 / UTM zone 48S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6395,'EPSG',6395,'PROJCS["NAD83(2011) / Alaska zone 2",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 23889 : ID74 / UTM zone 49S
+--- EPSG 6396 : NAD83(2011) / Alaska zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23889,'EPSG',23889,'PROJCS["ID74 / UTM zone 49S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6396,'EPSG',6396,'PROJCS["NAD83(2011) / Alaska zone 3",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 23890 : ID74 / UTM zone 50S
+--- EPSG 6397 : NAD83(2011) / Alaska zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23890,'EPSG',23890,'PROJCS["ID74 / UTM zone 50S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6397,'EPSG',6397,'PROJCS["NAD83(2011) / Alaska zone 4",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 23891 : ID74 / UTM zone 51S
+--- EPSG 6398 : NAD83(2011) / Alaska zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23891,'EPSG',23891,'PROJCS["ID74 / UTM zone 51S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6398,'EPSG',6398,'PROJCS["NAD83(2011) / Alaska zone 5",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 23892 : ID74 / UTM zone 52S
+--- EPSG 6399 : NAD83(2011) / Alaska zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23892,'EPSG',23892,'PROJCS["ID74 / UTM zone 52S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6399,'EPSG',6399,'PROJCS["NAD83(2011) / Alaska zone 6",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 23893 : ID74 / UTM zone 53S
+--- EPSG 6400 : NAD83(2011) / Alaska zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23893,'EPSG',23893,'PROJCS["ID74 / UTM zone 53S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6400,'EPSG',6400,'PROJCS["NAD83(2011) / Alaska zone 7",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 23894 : ID74 / UTM zone 54S
+--- EPSG 6401 : NAD83(2011) / Alaska zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23894,'EPSG',23894,'PROJCS["ID74 / UTM zone 54S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6401,'EPSG',6401,'PROJCS["NAD83(2011) / Alaska zone 8",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 23946 : Indian 1954 / UTM zone 46N
+--- EPSG 6402 : NAD83(2011) / Alaska zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23946,'EPSG',23946,'PROJCS["Indian 1954 / UTM zone 46N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6402,'EPSG',6402,'PROJCS["NAD83(2011) / Alaska zone 9",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 23947 : Indian 1954 / UTM zone 47N
+--- EPSG 6403 : NAD83(2011) / Alaska zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23947,'EPSG',23947,'PROJCS["Indian 1954 / UTM zone 47N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6403,'EPSG',6403,'PROJCS["NAD83(2011) / Alaska zone 10",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 23948 : Indian 1954 / UTM zone 48N
+--- EPSG 6404 : NAD83(2011) / Arizona Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23948,'EPSG',23948,'PROJCS["Indian 1954 / UTM zone 48N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6404,'EPSG',6404,'PROJCS["NAD83(2011) / Arizona Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 24047 : Indian 1975 / UTM zone 47N
+--- EPSG 6405 : NAD83(2011) / Arizona Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24047,'EPSG',24047,'PROJCS["Indian 1975 / UTM zone 47N",GEOGCS["Indian 1975",DATUM["Indian_1975",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY["EPSG","6240"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4240"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6405,'EPSG',6405,'PROJCS["NAD83(2011) / Arizona Central (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 24048 : Indian 1975 / UTM zone 48N
+--- EPSG 6406 : NAD83(2011) / Arizona East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24048,'EPSG',24048,'PROJCS["Indian 1975 / UTM zone 48N",GEOGCS["Indian 1975",DATUM["Indian_1975",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY["EPSG","6240"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4240"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6406,'EPSG',6406,'PROJCS["NAD83(2011) / Arizona East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 24100 : Jamaica 1875 / Jamaica (Old Grid)
+--- EPSG 6407 : NAD83(2011) / Arizona East (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24100,'EPSG',24100,'PROJCS["Jamaica 1875 / Jamaica (Old Grid)",GEOGCS["Jamaica 1875",DATUM["Jamaica_1875",SPHEROID["Clarke 1880",6378249.144808011,293.4663076556349,AUTHORITY["EPSG","7034"]],AUTHORITY["EPSG","6241"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4241"]],UNIT["Clarke''s foot",0.3047972654,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6407,'EPSG',6407,'PROJCS["NAD83(2011) / Arizona East (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 24200 : JAD69 / Jamaica National Grid
+--- EPSG 6408 : NAD83(2011) / Arizona West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24200,'EPSG',24200,'PROJCS["JAD69 / Jamaica National Grid",GEOGCS["JAD69",DATUM["Jamaica_1969",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[70,207,389.5,0,0,0,0],AUTHORITY["EPSG","6242"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4242"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6408,'EPSG',6408,'PROJCS["NAD83(2011) / Arizona West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 24305 : Kalianpur 1937 / UTM zone 45N
+--- EPSG 6409 : NAD83(2011) / Arizona West (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24305,'EPSG',24305,'PROJCS["Kalianpur 1937 / UTM zone 45N",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6409,'EPSG',6409,'PROJCS["NAD83(2011) / Arizona West (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 24306 : Kalianpur 1937 / UTM zone 46N
+--- EPSG 6410 : NAD83(2011) / Arkansas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24306,'EPSG',24306,'PROJCS["Kalianpur 1937 / UTM zone 46N",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6410,'EPSG',6410,'PROJCS["NAD83(2011) / Arkansas North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 24311 : Kalianpur 1962 / UTM zone 41N
+--- EPSG 6411 : NAD83(2011) / Arkansas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24311,'EPSG',24311,'PROJCS["Kalianpur 1962 / UTM zone 41N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6411,'EPSG',6411,'PROJCS["NAD83(2011) / Arkansas North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 24312 : Kalianpur 1962 / UTM zone 42N
+--- EPSG 6412 : NAD83(2011) / Arkansas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24312,'EPSG',24312,'PROJCS["Kalianpur 1962 / UTM zone 42N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6412,'EPSG',6412,'PROJCS["NAD83(2011) / Arkansas South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 24313 : Kalianpur 1962 / UTM zone 43N
+--- EPSG 6413 : NAD83(2011) / Arkansas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24313,'EPSG',24313,'PROJCS["Kalianpur 1962 / UTM zone 43N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6413,'EPSG',6413,'PROJCS["NAD83(2011) / Arkansas South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 24342 : Kalianpur 1975 / UTM zone 42N
+--- EPSG 6414 : NAD83(2011) / California Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24342,'EPSG',24342,'PROJCS["Kalianpur 1975 / UTM zone 42N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6414,'EPSG',6414,'PROJCS["NAD83(2011) / California Albers",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Albers_Conic_Equal_Area"],PAR [...]
 ---
---- EPSG 24343 : Kalianpur 1975 / UTM zone 43N
+--- EPSG 6415 : NAD83(2011) / California zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24343,'EPSG',24343,'PROJCS["Kalianpur 1975 / UTM zone 43N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6415,'EPSG',6415,'PROJCS["NAD83(2011) / California zone 1",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 24344 : Kalianpur 1975 / UTM zone 44N
+--- EPSG 6416 : NAD83(2011) / California zone 1 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24344,'EPSG',24344,'PROJCS["Kalianpur 1975 / UTM zone 44N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6416,'EPSG',6416,'PROJCS["NAD83(2011) / California zone 1 (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
---- EPSG 24345 : Kalianpur 1975 / UTM zone 45N
+--- EPSG 6417 : NAD83(2011) / California zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24345,'EPSG',24345,'PROJCS["Kalianpur 1975 / UTM zone 45N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6417,'EPSG',6417,'PROJCS["NAD83(2011) / California zone 2",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 24346 : Kalianpur 1975 / UTM zone 46N
+--- EPSG 6418 : NAD83(2011) / California zone 2 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24346,'EPSG',24346,'PROJCS["Kalianpur 1975 / UTM zone 46N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6418,'EPSG',6418,'PROJCS["NAD83(2011) / California zone 2 (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
---- EPSG 24347 : Kalianpur 1975 / UTM zone 47N
+--- EPSG 6419 : NAD83(2011) / California zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24347,'EPSG',24347,'PROJCS["Kalianpur 1975 / UTM zone 47N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6419,'EPSG',6419,'PROJCS["NAD83(2011) / California zone 3",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 24370 : Kalianpur 1880 / India zone 0
+--- EPSG 6420 : NAD83(2011) / California zone 3 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24370,'EPSG',24370,'PROJCS["Kalianpur 1880 / India zone 0",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6420,'EPSG',6420,'PROJCS["NAD83(2011) / California zone 3 (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
---- EPSG 24371 : Kalianpur 1880 / India zone I
+--- EPSG 6421 : NAD83(2011) / California zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24371,'EPSG',24371,'PROJCS["Kalianpur 1880 / India zone I",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6421,'EPSG',6421,'PROJCS["NAD83(2011) / California zone 4",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 24372 : Kalianpur 1880 / India zone IIa
+--- EPSG 6422 : NAD83(2011) / California zone 4 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24372,'EPSG',24372,'PROJCS["Kalianpur 1880 / India zone IIa",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.914398530744440 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6422,'EPSG',6422,'PROJCS["NAD83(2011) / California zone 4 (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
---- EPSG 24373 : Kalianpur 1880 / India zone III
+--- EPSG 6423 : NAD83(2011) / California zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24373,'EPSG',24373,'PROJCS["Kalianpur 1880 / India zone III",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.914398530744440 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6423,'EPSG',6423,'PROJCS["NAD83(2011) / California zone 5",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 24374 : Kalianpur 1880 / India zone IV
+--- EPSG 6424 : NAD83(2011) / California zone 5 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24374,'EPSG',24374,'PROJCS["Kalianpur 1880 / India zone IV",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6424,'EPSG',6424,'PROJCS["NAD83(2011) / California zone 5 (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
---- EPSG 24375 : Kalianpur 1937 / India zone IIb
+--- EPSG 6425 : NAD83(2011) / California zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24375,'EPSG',24375,'PROJCS["Kalianpur 1937 / India zone IIb",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[282,726,254,0,0,0,0],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6425,'EPSG',6425,'PROJCS["NAD83(2011) / California zone 6",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 24376 : Kalianpur 1962 / India zone I
+--- EPSG 6426 : NAD83(2011) / California zone 6 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24376,'EPSG',24376,'PROJCS["Kalianpur 1962 / India zone I",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6426,'EPSG',6426,'PROJCS["NAD83(2011) / California zone 6 (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
---- EPSG 24377 : Kalianpur 1962 / India zone IIa
+--- EPSG 6427 : NAD83(2011) / Colorado Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24377,'EPSG',24377,'PROJCS["Kalianpur 1962 / India zone IIa",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6427,'EPSG',6427,'PROJCS["NAD83(2011) / Colorado Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
---- EPSG 24378 : Kalianpur 1975 / India zone I
+--- EPSG 6428 : NAD83(2011) / Colorado Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24378,'EPSG',24378,'PROJCS["Kalianpur 1975 / India zone I",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6428,'EPSG',6428,'PROJCS["NAD83(2011) / Colorado Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
---- EPSG 24379 : Kalianpur 1975 / India zone IIa
+--- EPSG 6429 : NAD83(2011) / Colorado North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24379,'EPSG',24379,'PROJCS["Kalianpur 1975 / India zone IIa",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6429,'EPSG',6429,'PROJCS["NAD83(2011) / Colorado North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 24380 : Kalianpur 1975 / India zone IIb
+--- EPSG 6430 : NAD83(2011) / Colorado North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24380,'EPSG',24380,'PROJCS["Kalianpur 1975 / India zone IIb",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6430,'EPSG',6430,'PROJCS["NAD83(2011) / Colorado North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 24381 : Kalianpur 1975 / India zone III
+--- EPSG 6431 : NAD83(2011) / Colorado South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24381,'EPSG',24381,'PROJCS["Kalianpur 1975 / India zone III",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6431,'EPSG',6431,'PROJCS["NAD83(2011) / Colorado South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 24382 : Kalianpur 1880 / India zone IIb
+--- EPSG 6432 : NAD83(2011) / Colorado South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24382,'EPSG',24382,'PROJCS["Kalianpur 1880 / India zone IIb",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.914398530744440 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6432,'EPSG',6432,'PROJCS["NAD83(2011) / Colorado South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 24383 : Kalianpur 1975 / India zone IV
+--- EPSG 6433 : NAD83(2011) / Connecticut
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24383,'EPSG',24383,'PROJCS["Kalianpur 1975 / India zone IV",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6433,'EPSG',6433,'PROJCS["NAD83(2011) / Connecticut",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
---- EPSG 24500 : Kertau 1968 / Singapore Grid
+--- EPSG 6434 : NAD83(2011) / Connecticut (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24500,'EPSG',24500,'PROJCS["Kertau 1968 / Singapore Grid",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6434,'EPSG',6434,'PROJCS["NAD83(2011) / Connecticut (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 24547 : Kertau 1968 / UTM zone 47N
+--- EPSG 6435 : NAD83(2011) / Delaware
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24547,'EPSG',24547,'PROJCS["Kertau 1968 / UTM zone 47N",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6435,'EPSG',6435,'PROJCS["NAD83(2011) / Delaware",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
---- EPSG 24548 : Kertau 1968 / UTM zone 48N
+--- EPSG 6436 : NAD83(2011) / Delaware (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24548,'EPSG',24548,'PROJCS["Kertau 1968 / UTM zone 48N",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["metre",1,AUTHORITY["EPSG","9001" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6436,'EPSG',6436,'PROJCS["NAD83(2011) / Delaware (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 24571 : Kertau / R.S.O. Malaya (ch) (deprecated)
+--- EPSG 6437 : NAD83(2011) / Florida East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24571,'EPSG',24571,'PROJCS["Kertau / R.S.O. Malaya (ch) (deprecated)",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["British chain (Ben [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6437,'EPSG',6437,'PROJCS["NAD83(2011) / Florida East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 24600 : KOC Lambert
+--- EPSG 6438 : NAD83(2011) / Florida East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24600,'EPSG',24600,'PROJCS["KOC Lambert",GEOGCS["KOC",DATUM["Kuwait_Oil_Company",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-294.7,-200.1,525.5,0,0,0,0],AUTHORITY["EPSG","6246"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4246"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6438,'EPSG',6438,'PROJCS["NAD83(2011) / Florida East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 24718 : La Canoa / UTM zone 18N
+--- EPSG 6439 : NAD83(2011) / Florida GDL Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24718,'EPSG',24718,'PROJCS["La Canoa / UTM zone 18N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6439,'EPSG',6439,'PROJCS["NAD83(2011) / Florida GDL Albers",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Albers_Conic_Equal_Area"],PA [...]
 ---
---- EPSG 24719 : La Canoa / UTM zone 19N
+--- EPSG 6440 : NAD83(2011) / Florida North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24719,'EPSG',24719,'PROJCS["La Canoa / UTM zone 19N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6440,'EPSG',6440,'PROJCS["NAD83(2011) / Florida North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
---- EPSG 24720 : La Canoa / UTM zone 20N
+--- EPSG 6441 : NAD83(2011) / Florida North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24720,'EPSG',24720,'PROJCS["La Canoa / UTM zone 20N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6441,'EPSG',6441,'PROJCS["NAD83(2011) / Florida North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2S [...]
 ---
---- EPSG 24817 : PSAD56 / UTM zone 17N
+--- EPSG 6442 : NAD83(2011) / Florida West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24817,'EPSG',24817,'PROJCS["PSAD56 / UTM zone 17N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6442,'EPSG',6442,'PROJCS["NAD83(2011) / Florida West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 24818 : PSAD56 / UTM zone 18N
+--- EPSG 6443 : NAD83(2011) / Florida West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24818,'EPSG',24818,'PROJCS["PSAD56 / UTM zone 18N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6443,'EPSG',6443,'PROJCS["NAD83(2011) / Florida West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 24819 : PSAD56 / UTM zone 19N
+--- EPSG 6444 : NAD83(2011) / Georgia East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24819,'EPSG',24819,'PROJCS["PSAD56 / UTM zone 19N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6444,'EPSG',6444,'PROJCS["NAD83(2011) / Georgia East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 24820 : PSAD56 / UTM zone 20N
+--- EPSG 6445 : NAD83(2011) / Georgia East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24820,'EPSG',24820,'PROJCS["PSAD56 / UTM zone 20N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6445,'EPSG',6445,'PROJCS["NAD83(2011) / Georgia East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 24821 : PSAD56 / UTM zone 21N
+--- EPSG 6446 : NAD83(2011) / Georgia West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24821,'EPSG',24821,'PROJCS["PSAD56 / UTM zone 21N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6446,'EPSG',6446,'PROJCS["NAD83(2011) / Georgia West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 24877 : PSAD56 / UTM zone 17S
+--- EPSG 6447 : NAD83(2011) / Georgia West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24877,'EPSG',24877,'PROJCS["PSAD56 / UTM zone 17S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6447,'EPSG',6447,'PROJCS["NAD83(2011) / Georgia West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 24878 : PSAD56 / UTM zone 18S
+--- EPSG 6448 : NAD83(2011) / Idaho Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24878,'EPSG',24878,'PROJCS["PSAD56 / UTM zone 18S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6448,'EPSG',6448,'PROJCS["NAD83(2011) / Idaho Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 24879 : PSAD56 / UTM zone 19S
+--- EPSG 6449 : NAD83(2011) / Idaho Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24879,'EPSG',24879,'PROJCS["PSAD56 / UTM zone 19S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6449,'EPSG',6449,'PROJCS["NAD83(2011) / Idaho Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 24880 : PSAD56 / UTM zone 20S
+--- EPSG 6450 : NAD83(2011) / Idaho East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24880,'EPSG',24880,'PROJCS["PSAD56 / UTM zone 20S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6450,'EPSG',6450,'PROJCS["NAD83(2011) / Idaho East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
---- EPSG 24881 : PSAD56 / UTM zone 21S
+--- EPSG 6451 : NAD83(2011) / Idaho East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24881,'EPSG',24881,'PROJCS["PSAD56 / UTM zone 21S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6451,'EPSG',6451,'PROJCS["NAD83(2011) / Idaho East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 24882 : PSAD56 / UTM zone 22S
+--- EPSG 6452 : NAD83(2011) / Idaho West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24882,'EPSG',24882,'PROJCS["PSAD56 / UTM zone 22S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6452,'EPSG',6452,'PROJCS["NAD83(2011) / Idaho West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
---- EPSG 24891 : PSAD56 / Peru west zone
+--- EPSG 6453 : NAD83(2011) / Idaho West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24891,'EPSG',24891,'PROJCS["PSAD56 / Peru west zone",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6453,'EPSG',6453,'PROJCS["NAD83(2011) / Idaho West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 24892 : PSAD56 / Peru central zone
+--- EPSG 6454 : NAD83(2011) / Illinois East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24892,'EPSG',24892,'PROJCS["PSAD56 / Peru central zone",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6454,'EPSG',6454,'PROJCS["NAD83(2011) / Illinois East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 24893 : PSAD56 / Peru east zone
+--- EPSG 6455 : NAD83(2011) / Illinois East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24893,'EPSG',24893,'PROJCS["PSAD56 / Peru east zone",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6455,'EPSG',6455,'PROJCS["NAD83(2011) / Illinois East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 25000 : Leigon / Ghana Metre Grid
+--- EPSG 6456 : NAD83(2011) / Illinois West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25000,'EPSG',25000,'PROJCS["Leigon / Ghana Metre Grid",GEOGCS["Leigon",DATUM["Leigon",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-130,29,364,0,0,0,0],AUTHORITY["EPSG","6250"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4250"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6456,'EPSG',6456,'PROJCS["NAD83(2011) / Illinois West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 25231 : Lome / UTM zone 31N
+--- EPSG 6457 : NAD83(2011) / Illinois West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25231,'EPSG',25231,'PROJCS["Lome / UTM zone 31N",GEOGCS["Lome",DATUM["Lome",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6252"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4252"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6457,'EPSG',6457,'PROJCS["NAD83(2011) / Illinois West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 25391 : Luzon 1911 / Philippines zone I
+--- EPSG 6458 : NAD83(2011) / Indiana East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25391,'EPSG',25391,'PROJCS["Luzon 1911 / Philippines zone I",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6458,'EPSG',6458,'PROJCS["NAD83(2011) / Indiana East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 25392 : Luzon 1911 / Philippines zone II
+--- EPSG 6459 : NAD83(2011) / Indiana East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25392,'EPSG',25392,'PROJCS["Luzon 1911 / Philippines zone II",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6459,'EPSG',6459,'PROJCS["NAD83(2011) / Indiana East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 25393 : Luzon 1911 / Philippines zone III
+--- EPSG 6460 : NAD83(2011) / Indiana West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25393,'EPSG',25393,'PROJCS["Luzon 1911 / Philippines zone III",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6460,'EPSG',6460,'PROJCS["NAD83(2011) / Indiana West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 25394 : Luzon 1911 / Philippines zone IV
+--- EPSG 6461 : NAD83(2011) / Indiana West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25394,'EPSG',25394,'PROJCS["Luzon 1911 / Philippines zone IV",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6461,'EPSG',6461,'PROJCS["NAD83(2011) / Indiana West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 25395 : Luzon 1911 / Philippines zone V
+--- EPSG 6462 : NAD83(2011) / Iowa North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25395,'EPSG',25395,'PROJCS["Luzon 1911 / Philippines zone V",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6462,'EPSG',6462,'PROJCS["NAD83(2011) / Iowa North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
---- EPSG 25700 : Makassar (Jakarta) / NEIEZ (deprecated)
+--- EPSG 6463 : NAD83(2011) / Iowa North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25700,'EPSG',25700,'PROJCS["Makassar (Jakarta) / NEIEZ (deprecated)",GEOGCS["Makassar (Jakarta)",DATUM["Makassar_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6804"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","480 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6463,'EPSG',6463,'PROJCS["NAD83(2011) / Iowa North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 25828 : ETRS89 / UTM zone 28N
+--- EPSG 6464 : NAD83(2011) / Iowa South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25828,'EPSG',25828,'PROJCS["ETRS89 / UTM zone 28N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6464,'EPSG',6464,'PROJCS["NAD83(2011) / Iowa South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
---- EPSG 25829 : ETRS89 / UTM zone 29N
+--- EPSG 6465 : NAD83(2011) / Iowa South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25829,'EPSG',25829,'PROJCS["ETRS89 / UTM zone 29N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6465,'EPSG',6465,'PROJCS["NAD83(2011) / Iowa South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 25830 : ETRS89 / UTM zone 30N
+--- EPSG 6466 : NAD83(2011) / Kansas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25830,'EPSG',25830,'PROJCS["ETRS89 / UTM zone 30N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6466,'EPSG',6466,'PROJCS["NAD83(2011) / Kansas North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
---- EPSG 25831 : ETRS89 / UTM zone 31N
+--- EPSG 6467 : NAD83(2011) / Kansas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25831,'EPSG',25831,'PROJCS["ETRS89 / UTM zone 31N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6467,'EPSG',6467,'PROJCS["NAD83(2011) / Kansas North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 25832 : ETRS89 / UTM zone 32N
+--- EPSG 6468 : NAD83(2011) / Kansas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25832,'EPSG',25832,'PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6468,'EPSG',6468,'PROJCS["NAD83(2011) / Kansas South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
---- EPSG 25833 : ETRS89 / UTM zone 33N
+--- EPSG 6469 : NAD83(2011) / Kansas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25833,'EPSG',25833,'PROJCS["ETRS89 / UTM zone 33N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6469,'EPSG',6469,'PROJCS["NAD83(2011) / Kansas South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 25834 : ETRS89 / UTM zone 34N
+--- EPSG 6470 : NAD83(2011) / Kentucky North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25834,'EPSG',25834,'PROJCS["ETRS89 / UTM zone 34N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6470,'EPSG',6470,'PROJCS["NAD83(2011) / Kentucky North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 25835 : ETRS89 / UTM zone 35N
+--- EPSG 6471 : NAD83(2011) / Kentucky North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25835,'EPSG',25835,'PROJCS["ETRS89 / UTM zone 35N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6471,'EPSG',6471,'PROJCS["NAD83(2011) / Kentucky North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 25836 : ETRS89 / UTM zone 36N
+--- EPSG 6472 : NAD83(2011) / Kentucky Single Zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25836,'EPSG',25836,'PROJCS["ETRS89 / UTM zone 36N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6472,'EPSG',6472,'PROJCS["NAD83(2011) / Kentucky Single Zone",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2S [...]
 ---
---- EPSG 25837 : ETRS89 / UTM zone 37N
+--- EPSG 6473 : NAD83(2011) / Kentucky Single Zone (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25837,'EPSG',25837,'PROJCS["ETRS89 / UTM zone 37N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6473,'EPSG',6473,'PROJCS["NAD83(2011) / Kentucky Single Zone (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_C [...]
 ---
---- EPSG 25838 : ETRS89 / UTM zone 38N
+--- EPSG 6474 : NAD83(2011) / Kentucky South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25838,'EPSG',25838,'PROJCS["ETRS89 / UTM zone 38N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6474,'EPSG',6474,'PROJCS["NAD83(2011) / Kentucky South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 25884 : ETRS89 / TM Baltic93
+--- EPSG 6475 : NAD83(2011) / Kentucky South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25884,'EPSG',25884,'PROJCS["ETRS89 / TM Baltic93",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6475,'EPSG',6475,'PROJCS["NAD83(2011) / Kentucky South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 25932 : Malongo 1987 / UTM zone 32S
+--- EPSG 6476 : NAD83(2011) / Louisiana North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25932,'EPSG',25932,'PROJCS["Malongo 1987 / UTM zone 32S",GEOGCS["Malongo 1987",DATUM["Malongo_1987",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY["EPSG","6259"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4259"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6476,'EPSG',6476,'PROJCS["NAD83(2011) / Louisiana North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 26191 : Merchich / Nord Maroc
+--- EPSG 6477 : NAD83(2011) / Louisiana North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26191,'EPSG',26191,'PROJCS["Merchich / Nord Maroc",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6477,'EPSG',6477,'PROJCS["NAD83(2011) / Louisiana North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 26192 : Merchich / Sud Maroc
+--- EPSG 6478 : NAD83(2011) / Louisiana South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26192,'EPSG',26192,'PROJCS["Merchich / Sud Maroc",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6478,'EPSG',6478,'PROJCS["NAD83(2011) / Louisiana South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 26193 : Merchich / Sahara (deprecated)
+--- EPSG 6479 : NAD83(2011) / Louisiana South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26193,'EPSG',26193,'PROJCS["Merchich / Sahara (deprecated)",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6479,'EPSG',6479,'PROJCS["NAD83(2011) / Louisiana South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 26194 : Merchich / Sahara Nord
+--- EPSG 6480 : NAD83(2011) / Maine CS2000 Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26194,'EPSG',26194,'PROJCS["Merchich / Sahara Nord",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6480,'EPSG',6480,'PROJCS["NAD83(2011) / Maine CS2000 Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 26195 : Merchich / Sahara Sud
+--- EPSG 6481 : NAD83(2011) / Maine CS2000 East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26195,'EPSG',26195,'PROJCS["Merchich / Sahara Sud",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6481,'EPSG',6481,'PROJCS["NAD83(2011) / Maine CS2000 East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 26237 : Massawa / UTM zone 37N
+--- EPSG 6482 : NAD83(2011) / Maine CS2000 West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26237,'EPSG',26237,'PROJCS["Massawa / UTM zone 37N",GEOGCS["Massawa",DATUM["Massawa",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[639,405,60,0,0,0,0],AUTHORITY["EPSG","6262"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4262"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6482,'EPSG',6482,'PROJCS["NAD83(2011) / Maine CS2000 West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 26331 : Minna / UTM zone 31N
+--- EPSG 6483 : NAD83(2011) / Maine East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26331,'EPSG',26331,'PROJCS["Minna / UTM zone 31N",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transv [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6483,'EPSG',6483,'PROJCS["NAD83(2011) / Maine East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
---- EPSG 26332 : Minna / UTM zone 32N
+--- EPSG 6484 : NAD83(2011) / Maine East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26332,'EPSG',26332,'PROJCS["Minna / UTM zone 32N",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transv [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6484,'EPSG',6484,'PROJCS["NAD83(2011) / Maine East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 26391 : Minna / Nigeria West Belt
+--- EPSG 6485 : NAD83(2011) / Maine West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26391,'EPSG',26391,'PROJCS["Minna / Nigeria West Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6485,'EPSG',6485,'PROJCS["NAD83(2011) / Maine West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
---- EPSG 26392 : Minna / Nigeria Mid Belt
+--- EPSG 6486 : NAD83(2011) / Maine West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26392,'EPSG',26392,'PROJCS["Minna / Nigeria Mid Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6486,'EPSG',6486,'PROJCS["NAD83(2011) / Maine West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 26393 : Minna / Nigeria East Belt
+--- EPSG 6487 : NAD83(2011) / Maryland
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26393,'EPSG',26393,'PROJCS["Minna / Nigeria East Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6487,'EPSG',6487,'PROJCS["NAD83(2011) / Maryland",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
 ---
---- EPSG 26432 : Mhast / UTM zone 32S (deprecated)
+--- EPSG 6488 : NAD83(2011) / Maryland (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26432,'EPSG',26432,'PROJCS["Mhast / UTM zone 32S (deprecated)",GEOGCS["Mhast",DATUM["Mhast",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-252.95,-4.11,-96.38,0,0,0,0],AUTHORITY["EPSG","6264"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4264"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6488,'EPSG',6488,'PROJCS["NAD83(2011) / Maryland (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 26591 : Monte Mario (Rome) / Italy zone 1 (deprecated)
+--- EPSG 6489 : NAD83(2011) / Massachusetts Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26591,'EPSG',26591,'PROJCS["Monte Mario (Rome) / Italy zone 1 (deprecated)",GEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6489,'EPSG',6489,'PROJCS["NAD83(2011) / Massachusetts Island",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2S [...]
 ---
---- EPSG 26592 : Monte Mario (Rome) / Italy zone 2 (deprecated)
+--- EPSG 6490 : NAD83(2011) / Massachusetts Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26592,'EPSG',26592,'PROJCS["Monte Mario (Rome) / Italy zone 2 (deprecated)",GEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6490,'EPSG',6490,'PROJCS["NAD83(2011) / Massachusetts Island (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_C [...]
 ---
---- EPSG 26632 : M'poraloko / UTM zone 32N
+--- EPSG 6491 : NAD83(2011) / Massachusetts Mainland
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26632,'EPSG',26632,'PROJCS["M''poraloko / UTM zone 32N",GEOGCS["M''poraloko",DATUM["M_poraloko",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY["EPSG","6266"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4266"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6491,'EPSG',6491,'PROJCS["NAD83(2011) / Massachusetts Mainland",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 26692 : M'poraloko / UTM zone 32S
+--- EPSG 6492 : NAD83(2011) / Massachusetts Mainland (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26692,'EPSG',26692,'PROJCS["M''poraloko / UTM zone 32S",GEOGCS["M''poraloko",DATUM["M_poraloko",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY["EPSG","6266"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4266"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6492,'EPSG',6492,'PROJCS["NAD83(2011) / Massachusetts Mainland (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal [...]
 ---
---- EPSG 26701 : NAD27 / UTM zone 1N
+--- EPSG 6493 : NAD83(2011) / Michigan Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26701,'EPSG',26701,'PROJCS["NAD27 / UTM zone 1N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6493,'EPSG',6493,'PROJCS["NAD83(2011) / Michigan Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
---- EPSG 26702 : NAD27 / UTM zone 2N
+--- EPSG 6494 : NAD83(2011) / Michigan Central (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26702,'EPSG',26702,'PROJCS["NAD27 / UTM zone 2N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6494,'EPSG',6494,'PROJCS["NAD83(2011) / Michigan Central (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 26703 : NAD27 / UTM zone 3N
+--- EPSG 6495 : NAD83(2011) / Michigan North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26703,'EPSG',26703,'PROJCS["NAD27 / UTM zone 3N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6495,'EPSG',6495,'PROJCS["NAD83(2011) / Michigan North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 26704 : NAD27 / UTM zone 4N
+--- EPSG 6496 : NAD83(2011) / Michigan North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26704,'EPSG',26704,'PROJCS["NAD27 / UTM zone 4N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6496,'EPSG',6496,'PROJCS["NAD83(2011) / Michigan North (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 26705 : NAD27 / UTM zone 5N
+--- EPSG 6497 : NAD83(2011) / Michigan Oblique Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26705,'EPSG',26705,'PROJCS["NAD27 / UTM zone 5N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6497,'EPSG',6497,'PROJCS["NAD83(2011) / Michigan Oblique Mercator",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Hotine_Oblique_Mercat [...]
 ---
---- EPSG 26706 : NAD27 / UTM zone 6N
+--- EPSG 6498 : NAD83(2011) / Michigan South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26706,'EPSG',26706,'PROJCS["NAD27 / UTM zone 6N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6498,'EPSG',6498,'PROJCS["NAD83(2011) / Michigan South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 26707 : NAD27 / UTM zone 7N
+--- EPSG 6499 : NAD83(2011) / Michigan South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26707,'EPSG',26707,'PROJCS["NAD27 / UTM zone 7N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6499,'EPSG',6499,'PROJCS["NAD83(2011) / Michigan South (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 26708 : NAD27 / UTM zone 8N
+--- EPSG 6500 : NAD83(2011) / Minnesota Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26708,'EPSG',26708,'PROJCS["NAD27 / UTM zone 8N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6500,'EPSG',6500,'PROJCS["NAD83(2011) / Minnesota Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 26709 : NAD27 / UTM zone 9N
+--- EPSG 6501 : NAD83(2011) / Minnesota Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26709,'EPSG',26709,'PROJCS["NAD27 / UTM zone 9N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6501,'EPSG',6501,'PROJCS["NAD83(2011) / Minnesota Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
---- EPSG 26710 : NAD27 / UTM zone 10N
+--- EPSG 6502 : NAD83(2011) / Minnesota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26710,'EPSG',26710,'PROJCS["NAD27 / UTM zone 10N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6502,'EPSG',6502,'PROJCS["NAD83(2011) / Minnesota North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 26711 : NAD27 / UTM zone 11N
+--- EPSG 6503 : NAD83(2011) / Minnesota North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26711,'EPSG',26711,'PROJCS["NAD27 / UTM zone 11N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6503,'EPSG',6503,'PROJCS["NAD83(2011) / Minnesota North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 26712 : NAD27 / UTM zone 12N
+--- EPSG 6504 : NAD83(2011) / Minnesota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26712,'EPSG',26712,'PROJCS["NAD27 / UTM zone 12N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6504,'EPSG',6504,'PROJCS["NAD83(2011) / Minnesota South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 26713 : NAD27 / UTM zone 13N
+--- EPSG 6505 : NAD83(2011) / Minnesota South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26713,'EPSG',26713,'PROJCS["NAD27 / UTM zone 13N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6505,'EPSG',6505,'PROJCS["NAD83(2011) / Minnesota South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 26714 : NAD27 / UTM zone 14N
+--- EPSG 6506 : NAD83(2011) / Mississippi East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26714,'EPSG',26714,'PROJCS["NAD27 / UTM zone 14N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6506,'EPSG',6506,'PROJCS["NAD83(2011) / Mississippi East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 26715 : NAD27 / UTM zone 15N
+--- EPSG 6507 : NAD83(2011) / Mississippi East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26715,'EPSG',26715,'PROJCS["NAD27 / UTM zone 15N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6507,'EPSG',6507,'PROJCS["NAD83(2011) / Mississippi East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 26716 : NAD27 / UTM zone 16N
+--- EPSG 6508 : NAD83(2011) / Mississippi TM
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26716,'EPSG',26716,'PROJCS["NAD27 / UTM zone 16N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6508,'EPSG',6508,'PROJCS["NAD83(2011) / Mississippi TM",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 26717 : NAD27 / UTM zone 17N
+--- EPSG 6509 : NAD83(2011) / Mississippi West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26717,'EPSG',26717,'PROJCS["NAD27 / UTM zone 17N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6509,'EPSG',6509,'PROJCS["NAD83(2011) / Mississippi West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 26718 : NAD27 / UTM zone 18N
+--- EPSG 6510 : NAD83(2011) / Mississippi West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26718,'EPSG',26718,'PROJCS["NAD27 / UTM zone 18N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6510,'EPSG',6510,'PROJCS["NAD83(2011) / Mississippi West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 26719 : NAD27 / UTM zone 19N
+--- EPSG 6511 : NAD83(2011) / Missouri Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26719,'EPSG',26719,'PROJCS["NAD27 / UTM zone 19N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6511,'EPSG',6511,'PROJCS["NAD83(2011) / Missouri Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 26720 : NAD27 / UTM zone 20N
+--- EPSG 6512 : NAD83(2011) / Missouri East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26720,'EPSG',26720,'PROJCS["NAD27 / UTM zone 20N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6512,'EPSG',6512,'PROJCS["NAD83(2011) / Missouri East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26721 : NAD27 / UTM zone 21N
+--- EPSG 6513 : NAD83(2011) / Missouri West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26721,'EPSG',26721,'PROJCS["NAD27 / UTM zone 21N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6513,'EPSG',6513,'PROJCS["NAD83(2011) / Missouri West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26722 : NAD27 / UTM zone 22N
+--- EPSG 6514 : NAD83(2011) / Montana
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26722,'EPSG',26722,'PROJCS["NAD27 / UTM zone 22N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6514,'EPSG',6514,'PROJCS["NAD83(2011) / Montana",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER [...]
 ---
---- EPSG 26729 : NAD27 / Alabama East
+--- EPSG 6515 : NAD83(2011) / Montana (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26729,'EPSG',26729,'PROJCS["NAD27 / Alabama East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6515,'EPSG',6515,'PROJCS["NAD83(2011) / Montana (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
---- EPSG 26730 : NAD27 / Alabama West
+--- EPSG 6516 : NAD83(2011) / Nebraska
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26730,'EPSG',26730,'PROJCS["NAD27 / Alabama West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6516,'EPSG',6516,'PROJCS["NAD83(2011) / Nebraska",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
 ---
---- EPSG 26731 : NAD27 / Alaska zone 1
+--- EPSG 6517 : NAD83(2011) / Nebraska (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26731,'EPSG',26731,'PROJCS["NAD27 / Alaska zone 1",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6517,'EPSG',6517,'PROJCS["NAD83(2011) / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
 ---
---- EPSG 26732 : NAD27 / Alaska zone 2
+--- EPSG 6518 : NAD83(2011) / Nevada Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26732,'EPSG',26732,'PROJCS["NAD27 / Alaska zone 2",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6518,'EPSG',6518,'PROJCS["NAD83(2011) / Nevada Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 26733 : NAD27 / Alaska zone 3
+--- EPSG 6519 : NAD83(2011) / Nevada Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26733,'EPSG',26733,'PROJCS["NAD27 / Alaska zone 3",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6519,'EPSG',6519,'PROJCS["NAD83(2011) / Nevada Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 26734 : NAD27 / Alaska zone 4
+--- EPSG 6520 : NAD83(2011) / Nevada East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26734,'EPSG',26734,'PROJCS["NAD27 / Alaska zone 4",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6520,'EPSG',6520,'PROJCS["NAD83(2011) / Nevada East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 26735 : NAD27 / Alaska zone 5
+--- EPSG 6521 : NAD83(2011) / Nevada East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26735,'EPSG',26735,'PROJCS["NAD27 / Alaska zone 5",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6521,'EPSG',6521,'PROJCS["NAD83(2011) / Nevada East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 26736 : NAD27 / Alaska zone 6
+--- EPSG 6522 : NAD83(2011) / Nevada West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26736,'EPSG',26736,'PROJCS["NAD27 / Alaska zone 6",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6522,'EPSG',6522,'PROJCS["NAD83(2011) / Nevada West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 26737 : NAD27 / Alaska zone 7
+--- EPSG 6523 : NAD83(2011) / Nevada West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26737,'EPSG',26737,'PROJCS["NAD27 / Alaska zone 7",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6523,'EPSG',6523,'PROJCS["NAD83(2011) / Nevada West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 26738 : NAD27 / Alaska zone 8
+--- EPSG 6524 : NAD83(2011) / New Hampshire
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26738,'EPSG',26738,'PROJCS["NAD27 / Alaska zone 8",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6524,'EPSG',6524,'PROJCS["NAD83(2011) / New Hampshire",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26739 : NAD27 / Alaska zone 9
+--- EPSG 6525 : NAD83(2011) / New Hampshire (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26739,'EPSG',26739,'PROJCS["NAD27 / Alaska zone 9",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6525,'EPSG',6525,'PROJCS["NAD83(2011) / New Hampshire (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 26740 : NAD27 / Alaska zone 10
+--- EPSG 6526 : NAD83(2011) / New Jersey
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26740,'EPSG',26740,'PROJCS["NAD27 / Alaska zone 10",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6526,'EPSG',6526,'PROJCS["NAD83(2011) / New Jersey",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
---- EPSG 26741 : NAD27 / California zone I
+--- EPSG 6527 : NAD83(2011) / New Jersey (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26741,'EPSG',26741,'PROJCS["NAD27 / California zone I",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6527,'EPSG',6527,'PROJCS["NAD83(2011) / New Jersey (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 26742 : NAD27 / California zone II
+--- EPSG 6528 : NAD83(2011) / New Mexico Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26742,'EPSG',26742,'PROJCS["NAD27 / California zone II",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6528,'EPSG',6528,'PROJCS["NAD83(2011) / New Mexico Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 26743 : NAD27 / California zone III
+--- EPSG 6529 : NAD83(2011) / New Mexico Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26743,'EPSG',26743,'PROJCS["NAD27 / California zone III",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6529,'EPSG',6529,'PROJCS["NAD83(2011) / New Mexico Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 26744 : NAD27 / California zone IV
+--- EPSG 6530 : NAD83(2011) / New Mexico East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26744,'EPSG',26744,'PROJCS["NAD27 / California zone IV",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6530,'EPSG',6530,'PROJCS["NAD83(2011) / New Mexico East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 26745 : NAD27 / California zone V
+--- EPSG 6531 : NAD83(2011) / New Mexico East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26745,'EPSG',26745,'PROJCS["NAD27 / California zone V",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6531,'EPSG',6531,'PROJCS["NAD83(2011) / New Mexico East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 26746 : NAD27 / California zone VI
+--- EPSG 6532 : NAD83(2011) / New Mexico West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26746,'EPSG',26746,'PROJCS["NAD27 / California zone VI",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6532,'EPSG',6532,'PROJCS["NAD83(2011) / New Mexico West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 26747 : NAD27 / California zone VII (deprecated)
+--- EPSG 6533 : NAD83(2011) / New Mexico West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26747,'EPSG',26747,'PROJCS["NAD27 / California zone VII (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6533,'EPSG',6533,'PROJCS["NAD83(2011) / New Mexico West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 26748 : NAD27 / Arizona East
+--- EPSG 6534 : NAD83(2011) / New York Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26748,'EPSG',26748,'PROJCS["NAD27 / Arizona East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6534,'EPSG',6534,'PROJCS["NAD83(2011) / New York Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 26749 : NAD27 / Arizona Central
+--- EPSG 6535 : NAD83(2011) / New York Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26749,'EPSG',26749,'PROJCS["NAD27 / Arizona Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6535,'EPSG',6535,'PROJCS["NAD83(2011) / New York Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 26750 : NAD27 / Arizona West
+--- EPSG 6536 : NAD83(2011) / New York East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26750,'EPSG',26750,'PROJCS["NAD27 / Arizona West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6536,'EPSG',6536,'PROJCS["NAD83(2011) / New York East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26751 : NAD27 / Arkansas North
+--- EPSG 6537 : NAD83(2011) / New York East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26751,'EPSG',26751,'PROJCS["NAD27 / Arkansas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6537,'EPSG',6537,'PROJCS["NAD83(2011) / New York East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 26752 : NAD27 / Arkansas South
+--- EPSG 6538 : NAD83(2011) / New York Long Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26752,'EPSG',26752,'PROJCS["NAD27 / Arkansas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6538,'EPSG',6538,'PROJCS["NAD83(2011) / New York Long Island",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2S [...]
 ---
---- EPSG 26753 : NAD27 / Colorado North
+--- EPSG 6539 : NAD83(2011) / New York Long Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26753,'EPSG',26753,'PROJCS["NAD27 / Colorado North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6539,'EPSG',6539,'PROJCS["NAD83(2011) / New York Long Island (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_C [...]
 ---
---- EPSG 26754 : NAD27 / Colorado Central
+--- EPSG 6540 : NAD83(2011) / New York West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26754,'EPSG',26754,'PROJCS["NAD27 / Colorado Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6540,'EPSG',6540,'PROJCS["NAD83(2011) / New York West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26755 : NAD27 / Colorado South
+--- EPSG 6541 : NAD83(2011) / New York West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26755,'EPSG',26755,'PROJCS["NAD27 / Colorado South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6541,'EPSG',6541,'PROJCS["NAD83(2011) / New York West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 26756 : NAD27 / Connecticut
+--- EPSG 6542 : NAD83(2011) / North Carolina
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26756,'EPSG',26756,'PROJCS["NAD27 / Connecticut",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6542,'EPSG',6542,'PROJCS["NAD83(2011) / North Carolina",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 26757 : NAD27 / Delaware
+--- EPSG 6543 : NAD83(2011) / North Carolina (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26757,'EPSG',26757,'PROJCS["NAD27 / Delaware",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6543,'EPSG',6543,'PROJCS["NAD83(2011) / North Carolina (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 26758 : NAD27 / Florida East
+--- EPSG 6544 : NAD83(2011) / North Dakota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26758,'EPSG',26758,'PROJCS["NAD27 / Florida East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6544,'EPSG',6544,'PROJCS["NAD83(2011) / North Dakota North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 26759 : NAD27 / Florida West
+--- EPSG 6545 : NAD83(2011) / North Dakota North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26759,'EPSG',26759,'PROJCS["NAD27 / Florida West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6545,'EPSG',6545,'PROJCS["NAD83(2011) / North Dakota North (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
---- EPSG 26760 : NAD27 / Florida North
+--- EPSG 6546 : NAD83(2011) / North Dakota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26760,'EPSG',26760,'PROJCS["NAD27 / Florida North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6546,'EPSG',6546,'PROJCS["NAD83(2011) / North Dakota South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 26766 : NAD27 / Georgia East
+--- EPSG 6547 : NAD83(2011) / North Dakota South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26766,'EPSG',26766,'PROJCS["NAD27 / Georgia East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6547,'EPSG',6547,'PROJCS["NAD83(2011) / North Dakota South (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
---- EPSG 26767 : NAD27 / Georgia West
+--- EPSG 6548 : NAD83(2011) / Ohio North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26767,'EPSG',26767,'PROJCS["NAD27 / Georgia West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6548,'EPSG',6548,'PROJCS["NAD83(2011) / Ohio North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
---- EPSG 26768 : NAD27 / Idaho East
+--- EPSG 6549 : NAD83(2011) / Ohio North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26768,'EPSG',26768,'PROJCS["NAD27 / Idaho East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6549,'EPSG',6549,'PROJCS["NAD83(2011) / Ohio North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 26769 : NAD27 / Idaho Central
+--- EPSG 6550 : NAD83(2011) / Ohio South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26769,'EPSG',26769,'PROJCS["NAD27 / Idaho Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6550,'EPSG',6550,'PROJCS["NAD83(2011) / Ohio South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
---- EPSG 26770 : NAD27 / Idaho West
+--- EPSG 6551 : NAD83(2011) / Ohio South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26770,'EPSG',26770,'PROJCS["NAD27 / Idaho West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6551,'EPSG',6551,'PROJCS["NAD83(2011) / Ohio South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 26771 : NAD27 / Illinois East
+--- EPSG 6552 : NAD83(2011) / Oklahoma North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26771,'EPSG',26771,'PROJCS["NAD27 / Illinois East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6552,'EPSG',6552,'PROJCS["NAD83(2011) / Oklahoma North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 26772 : NAD27 / Illinois West
+--- EPSG 6553 : NAD83(2011) / Oklahoma North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26772,'EPSG',26772,'PROJCS["NAD27 / Illinois West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6553,'EPSG',6553,'PROJCS["NAD83(2011) / Oklahoma North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 26773 : NAD27 / Indiana East
+--- EPSG 6554 : NAD83(2011) / Oklahoma South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26773,'EPSG',26773,'PROJCS["NAD27 / Indiana East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6554,'EPSG',6554,'PROJCS["NAD83(2011) / Oklahoma South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 26774 : NAD27 / Indiana West
+--- EPSG 6555 : NAD83(2011) / Oklahoma South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26774,'EPSG',26774,'PROJCS["NAD27 / Indiana West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6555,'EPSG',6555,'PROJCS["NAD83(2011) / Oklahoma South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 26775 : NAD27 / Iowa North
+--- EPSG 6556 : NAD83(2011) / Oregon LCC (m)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26775,'EPSG',26775,'PROJCS["NAD27 / Iowa North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6556,'EPSG',6556,'PROJCS["NAD83(2011) / Oregon LCC (m)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 26776 : NAD27 / Iowa South
+--- EPSG 6557 : NAD83(2011) / Oregon GIC Lambert (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26776,'EPSG',26776,'PROJCS["NAD27 / Iowa South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6557,'EPSG',6557,'PROJCS["NAD83(2011) / Oregon GIC Lambert (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
---- EPSG 26777 : NAD27 / Kansas North
+--- EPSG 6558 : NAD83(2011) / Oregon North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26777,'EPSG',26777,'PROJCS["NAD27 / Kansas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6558,'EPSG',6558,'PROJCS["NAD83(2011) / Oregon North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
---- EPSG 26778 : NAD27 / Kansas South
+--- EPSG 6559 : NAD83(2011) / Oregon North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26778,'EPSG',26778,'PROJCS["NAD27 / Kansas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6559,'EPSG',6559,'PROJCS["NAD83(2011) / Oregon North (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 26779 : NAD27 / Kentucky North
+--- EPSG 6560 : NAD83(2011) / Oregon South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26779,'EPSG',26779,'PROJCS["NAD27 / Kentucky North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6560,'EPSG',6560,'PROJCS["NAD83(2011) / Oregon South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
---- EPSG 26780 : NAD27 / Kentucky South
+--- EPSG 6561 : NAD83(2011) / Oregon South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26780,'EPSG',26780,'PROJCS["NAD27 / Kentucky South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6561,'EPSG',6561,'PROJCS["NAD83(2011) / Oregon South (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 26781 : NAD27 / Louisiana North
+--- EPSG 6562 : NAD83(2011) / Pennsylvania North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26781,'EPSG',26781,'PROJCS["NAD27 / Louisiana North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6562,'EPSG',6562,'PROJCS["NAD83(2011) / Pennsylvania North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 26782 : NAD27 / Louisiana South
+--- EPSG 6563 : NAD83(2011) / Pennsylvania North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26782,'EPSG',26782,'PROJCS["NAD27 / Louisiana South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6563,'EPSG',6563,'PROJCS["NAD83(2011) / Pennsylvania North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Con [...]
 ---
---- EPSG 26783 : NAD27 / Maine East
+--- EPSG 6564 : NAD83(2011) / Pennsylvania South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26783,'EPSG',26783,'PROJCS["NAD27 / Maine East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6564,'EPSG',6564,'PROJCS["NAD83(2011) / Pennsylvania South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 26784 : NAD27 / Maine West
+--- EPSG 6565 : NAD83(2011) / Pennsylvania South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26784,'EPSG',26784,'PROJCS["NAD27 / Maine West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6565,'EPSG',6565,'PROJCS["NAD83(2011) / Pennsylvania South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Con [...]
 ---
---- EPSG 26785 : NAD27 / Maryland
+--- EPSG 6566 : NAD83(2011) / Puerto Rico and Virgin Is.
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26785,'EPSG',26785,'PROJCS["NAD27 / Maryland",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6566,'EPSG',6566,'PROJCS["NAD83(2011) / Puerto Rico and Virgin Is.",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
---- EPSG 26786 : NAD27 / Massachusetts Mainland
+--- EPSG 6567 : NAD83(2011) / Rhode Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26786,'EPSG',26786,'PROJCS["NAD27 / Massachusetts Mainland",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6567,'EPSG',6567,'PROJCS["NAD83(2011) / Rhode Island",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26787 : NAD27 / Massachusetts Island
+--- EPSG 6568 : NAD83(2011) / Rhode Island (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26787,'EPSG',26787,'PROJCS["NAD27 / Massachusetts Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6568,'EPSG',6568,'PROJCS["NAD83(2011) / Rhode Island (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 26791 : NAD27 / Minnesota North
+--- EPSG 6569 : NAD83(2011) / South Carolina
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26791,'EPSG',26791,'PROJCS["NAD27 / Minnesota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6569,'EPSG',6569,'PROJCS["NAD83(2011) / South Carolina",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 26792 : NAD27 / Minnesota Central
+--- EPSG 6570 : NAD83(2011) / South Carolina (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26792,'EPSG',26792,'PROJCS["NAD27 / Minnesota Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6570,'EPSG',6570,'PROJCS["NAD83(2011) / South Carolina (ft)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 26793 : NAD27 / Minnesota South
+--- EPSG 6571 : NAD83(2011) / South Dakota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26793,'EPSG',26793,'PROJCS["NAD27 / Minnesota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6571,'EPSG',6571,'PROJCS["NAD83(2011) / South Dakota North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 26794 : NAD27 / Mississippi East
+--- EPSG 6572 : NAD83(2011) / South Dakota North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26794,'EPSG',26794,'PROJCS["NAD27 / Mississippi East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6572,'EPSG',6572,'PROJCS["NAD83(2011) / South Dakota North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Con [...]
 ---
---- EPSG 26795 : NAD27 / Mississippi West
+--- EPSG 6573 : NAD83(2011) / South Dakota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26795,'EPSG',26795,'PROJCS["NAD27 / Mississippi West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6573,'EPSG',6573,'PROJCS["NAD83(2011) / South Dakota South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 26796 : NAD27 / Missouri East
+--- EPSG 6574 : NAD83(2011) / South Dakota South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26796,'EPSG',26796,'PROJCS["NAD27 / Missouri East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6574,'EPSG',6574,'PROJCS["NAD83(2011) / South Dakota South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Con [...]
 ---
---- EPSG 26797 : NAD27 / Missouri Central
+--- EPSG 6575 : NAD83(2011) / Tennessee
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26797,'EPSG',26797,'PROJCS["NAD27 / Missouri Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6575,'EPSG',6575,'PROJCS["NAD83(2011) / Tennessee",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
 ---
---- EPSG 26798 : NAD27 / Missouri West
+--- EPSG 6576 : NAD83(2011) / Tennessee (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26798,'EPSG',26798,'PROJCS["NAD27 / Missouri West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6576,'EPSG',6576,'PROJCS["NAD83(2011) / Tennessee (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
---- EPSG 26799 : NAD27 / California zone VII
+--- EPSG 6577 : NAD83(2011) / Texas Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26799,'EPSG',26799,'PROJCS["NAD27 / California zone VII",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6577,'EPSG',6577,'PROJCS["NAD83(2011) / Texas Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
 ---
---- EPSG 26801 : NAD Michigan / Michigan East
+--- EPSG 6578 : NAD83(2011) / Texas Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26801,'EPSG',26801,'PROJCS["NAD Michigan / Michigan East",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6578,'EPSG',6578,'PROJCS["NAD83(2011) / Texas Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2S [...]
 ---
---- EPSG 26802 : NAD Michigan / Michigan Old Central
+--- EPSG 6579 : NAD83(2011) / Texas Centric Albers Equal Area
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26802,'EPSG',26802,'PROJCS["NAD Michigan / Michigan Old Central",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.30480060960121 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6579,'EPSG',6579,'PROJCS["NAD83(2011) / Texas Centric Albers Equal Area",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Albers_Conic_Eq [...]
 ---
---- EPSG 26803 : NAD Michigan / Michigan West
+--- EPSG 6580 : NAD83(2011) / Texas Centric Lambert Conformal
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26803,'EPSG',26803,'PROJCS["NAD Michigan / Michigan West",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6580,'EPSG',6580,'PROJCS["NAD83(2011) / Texas Centric Lambert Conformal",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conform [...]
 ---
---- EPSG 26811 : NAD Michigan / Michigan North
+--- EPSG 6581 : NAD83(2011) / Texas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26811,'EPSG',26811,'PROJCS["NAD Michigan / Michigan North",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6581,'EPSG',6581,'PROJCS["NAD83(2011) / Texas North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
---- EPSG 26812 : NAD Michigan / Michigan Central
+--- EPSG 6582 : NAD83(2011) / Texas North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26812,'EPSG',26812,'PROJCS["NAD Michigan / Michigan Central",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6582,'EPSG',6582,'PROJCS["NAD83(2011) / Texas North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 26813 : NAD Michigan / Michigan South
+--- EPSG 6583 : NAD83(2011) / Texas North Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26813,'EPSG',26813,'PROJCS["NAD Michigan / Michigan South",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6583,'EPSG',6583,'PROJCS["NAD83(2011) / Texas North Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 26814 : NAD83 / Maine East (ftUS) (deprecated)
+--- EPSG 6584 : NAD83(2011) / Texas North Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26814,'EPSG',26814,'PROJCS["NAD83 / Maine East (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6584,'EPSG',6584,'PROJCS["NAD83(2011) / Texas North Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
---- EPSG 26815 : NAD83 / Maine West (ftUS) (deprecated)
+--- EPSG 6585 : NAD83(2011) / Texas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26815,'EPSG',26815,'PROJCS["NAD83 / Maine West (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6585,'EPSG',6585,'PROJCS["NAD83(2011) / Texas South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
 ---
---- EPSG 26819 : NAD83 / Minnesota North (ftUS) (deprecated)
+--- EPSG 6586 : NAD83(2011) / Texas South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26819,'EPSG',26819,'PROJCS["NAD83 / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6586,'EPSG',6586,'PROJCS["NAD83(2011) / Texas South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
 ---
---- EPSG 26820 : NAD83 / Minnesota Central (ftUS) (deprecated)
+--- EPSG 6587 : NAD83(2011) / Texas South Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26820,'EPSG',26820,'PROJCS["NAD83 / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6587,'EPSG',6587,'PROJCS["NAD83(2011) / Texas South Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 26821 : NAD83 / Minnesota South (ftUS) (deprecated)
+--- EPSG 6588 : NAD83(2011) / Texas South Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26821,'EPSG',26821,'PROJCS["NAD83 / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6588,'EPSG',6588,'PROJCS["NAD83(2011) / Texas South Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
---- EPSG 26822 : NAD83 / Nebraska (ftUS) (deprecated)
+--- EPSG 6589 : NAD83(2011) / Vermont
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26822,'EPSG',26822,'PROJCS["NAD83 / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6589,'EPSG',6589,'PROJCS["NAD83(2011) / Vermont",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
---- EPSG 26823 : NAD83 / West Virginia North (ftUS) (deprecated)
+--- EPSG 6590 : NAD83(2011) / Vermont (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26823,'EPSG',26823,'PROJCS["NAD83 / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6590,'EPSG',6590,'PROJCS["NAD83(2011) / Vermont (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 26824 : NAD83 / West Virginia South (ftUS) (deprecated)
+--- EPSG 6591 : NAD83(2011) / Virginia Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26824,'EPSG',26824,'PROJCS["NAD83 / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6591,'EPSG',6591,'PROJCS["NAD83(2011) / Virginia Lambert",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
---- EPSG 26825 : NAD83(HARN) / Maine East (ftUS) (deprecated)
+--- EPSG 6592 : NAD83(2011) / Virginia North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26825,'EPSG',26825,'PROJCS["NAD83(HARN) / Maine East (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6592,'EPSG',6592,'PROJCS["NAD83(2011) / Virginia North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 26826 : NAD83(HARN) / Maine West (ftUS) (deprecated)
+--- EPSG 6593 : NAD83(2011) / Virginia North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26826,'EPSG',26826,'PROJCS["NAD83(HARN) / Maine West (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6593,'EPSG',6593,'PROJCS["NAD83(2011) / Virginia North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 26830 : NAD83(HARN) / Minnesota North (ftUS) (deprecated)
+--- EPSG 6594 : NAD83(2011) / Virginia South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26830,'EPSG',26830,'PROJCS["NAD83(HARN) / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6594,'EPSG',6594,'PROJCS["NAD83(2011) / Virginia South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
 ---
---- EPSG 26831 : NAD83(HARN) / Minnesota Central (ftUS) (deprecated)
+--- EPSG 6595 : NAD83(2011) / Virginia South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26831,'EPSG',26831,'PROJCS["NAD83(HARN) / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6595,'EPSG',6595,'PROJCS["NAD83(2011) / Virginia South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
 ---
---- EPSG 26832 : NAD83(HARN) / Minnesota South (ftUS) (deprecated)
+--- EPSG 6596 : NAD83(2011) / Washington North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26832,'EPSG',26832,'PROJCS["NAD83(HARN) / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6596,'EPSG',6596,'PROJCS["NAD83(2011) / Washington North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
---- EPSG 26833 : NAD83(HARN) / Nebraska (ftUS) (deprecated)
+--- EPSG 6597 : NAD83(2011) / Washington North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26833,'EPSG',26833,'PROJCS["NAD83(HARN) / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6597,'EPSG',6597,'PROJCS["NAD83(2011) / Washington North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
---- EPSG 26834 : NAD83(HARN) / West Virginia North (ftUS) (deprecated)
+--- EPSG 6598 : NAD83(2011) / Washington South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26834,'EPSG',26834,'PROJCS["NAD83(HARN) / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6598,'EPSG',6598,'PROJCS["NAD83(2011) / Washington South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
 ---
---- EPSG 26835 : NAD83(HARN) / West Virginia South (ftUS) (deprecated)
+--- EPSG 6599 : NAD83(2011) / Washington South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26835,'EPSG',26835,'PROJCS["NAD83(HARN) / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6599,'EPSG',6599,'PROJCS["NAD83(2011) / Washington South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
---- EPSG 26836 : NAD83(NSRS2007) / Maine East (ftUS) (deprecated)
+--- EPSG 6600 : NAD83(2011) / West Virginia North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26836,'EPSG',26836,'PROJCS["NAD83(NSRS2007) / Maine East (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","475 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6600,'EPSG',6600,'PROJCS["NAD83(2011) / West Virginia North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 26837 : NAD83(NSRS2007) / Maine West (ftUS) (deprecated)
+--- EPSG 6601 : NAD83(2011) / West Virginia North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26837,'EPSG',26837,'PROJCS["NAD83(NSRS2007) / Maine West (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","475 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6601,'EPSG',6601,'PROJCS["NAD83(2011) / West Virginia North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
---- EPSG 26841 : NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)
+--- EPSG 6602 : NAD83(2011) / West Virginia South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26841,'EPSG',26841,'PROJCS["NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6602,'EPSG',6602,'PROJCS["NAD83(2011) / West Virginia South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 26842 : NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)
+--- EPSG 6603 : NAD83(2011) / West Virginia South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26842,'EPSG',26842,'PROJCS["NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6603,'EPSG',6603,'PROJCS["NAD83(2011) / West Virginia South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Co [...]
 ---
---- EPSG 26843 : NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)
+--- EPSG 6604 : NAD83(2011) / Wisconsin Central (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26843,'EPSG',26843,'PROJCS["NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6604,'EPSG',6604,'PROJCS["NAD83(2011) / Wisconsin Central (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],P [...]
 ---
---- EPSG 26844 : NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)
+--- EPSG 6605 : NAD83(2011) / Wisconsin Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26844,'EPSG',26844,'PROJCS["NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6605,'EPSG',6605,'PROJCS["NAD83(2011) / Wisconsin Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Coni [...]
 ---
---- EPSG 26845 : NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)
+--- EPSG 6606 : NAD83(2011) / Wisconsin North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26845,'EPSG',26845,'PROJCS["NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6606,'EPSG',6606,'PROJCS["NAD83(2011) / Wisconsin North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 26846 : NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)
+--- EPSG 6607 : NAD83(2011) / Wisconsin North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26846,'EPSG',26846,'PROJCS["NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6607,'EPSG',6607,'PROJCS["NAD83(2011) / Wisconsin North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 26847 : NAD83 / Maine East (ftUS)
+--- EPSG 6608 : NAD83(2011) / Wisconsin South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26847,'EPSG',26847,'PROJCS["NAD83 / Maine East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6608,'EPSG',6608,'PROJCS["NAD83(2011) / Wisconsin South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 26848 : NAD83 / Maine West (ftUS)
+--- EPSG 6609 : NAD83(2011) / Wisconsin South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26848,'EPSG',26848,'PROJCS["NAD83 / Maine West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6609,'EPSG',6609,'PROJCS["NAD83(2011) / Wisconsin South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 26849 : NAD83 / Minnesota North (ftUS)
+--- EPSG 6610 : NAD83(2011) / Wisconsin Transverse Mercator
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26849,'EPSG',26849,'PROJCS["NAD83 / Minnesota North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6610,'EPSG',6610,'PROJCS["NAD83(2011) / Wisconsin Transverse Mercator",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercat [...]
 ---
---- EPSG 26850 : NAD83 / Minnesota Central (ftUS)
+--- EPSG 6611 : NAD83(2011) / Wyoming East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26850,'EPSG',26850,'PROJCS["NAD83 / Minnesota Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6611,'EPSG',6611,'PROJCS["NAD83(2011) / Wyoming East",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26851 : NAD83 / Minnesota South (ftUS)
+--- EPSG 6612 : NAD83(2011) / Wyoming East (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26851,'EPSG',26851,'PROJCS["NAD83 / Minnesota South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6612,'EPSG',6612,'PROJCS["NAD83(2011) / Wyoming East (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 26852 : NAD83 / Nebraska (ftUS)
+--- EPSG 6613 : NAD83(2011) / Wyoming East Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26852,'EPSG',26852,'PROJCS["NAD83 / Nebraska (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6613,'EPSG',6613,'PROJCS["NAD83(2011) / Wyoming East Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 26853 : NAD83 / West Virginia North (ftUS)
+--- EPSG 6614 : NAD83(2011) / Wyoming East Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26853,'EPSG',26853,'PROJCS["NAD83 / West Virginia North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.30480060960121 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6614,'EPSG',6614,'PROJCS["NAD83(2011) / Wyoming East Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 26854 : NAD83 / West Virginia South (ftUS)
+--- EPSG 6615 : NAD83(2011) / Wyoming West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26854,'EPSG',26854,'PROJCS["NAD83 / West Virginia South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.30480060960121 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6615,'EPSG',6615,'PROJCS["NAD83(2011) / Wyoming West",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26855 : NAD83(HARN) / Maine East (ftUS)
+--- EPSG 6616 : NAD83(2011) / Wyoming West (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26855,'EPSG',26855,'PROJCS["NAD83(HARN) / Maine East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6616,'EPSG',6616,'PROJCS["NAD83(2011) / Wyoming West (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 26856 : NAD83(HARN) / Maine West (ftUS)
+--- EPSG 6617 : NAD83(2011) / Wyoming West Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26856,'EPSG',26856,'PROJCS["NAD83(HARN) / Maine West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0. [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6617,'EPSG',6617,'PROJCS["NAD83(2011) / Wyoming West Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 26857 : NAD83(HARN) / Minnesota North (ftUS)
+--- EPSG 6618 : NAD83(2011) / Wyoming West Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26857,'EPSG',26857,'PROJCS["NAD83(HARN) / Minnesota North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6618,'EPSG',6618,'PROJCS["NAD83(2011) / Wyoming West Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator [...]
 ---
---- EPSG 26858 : NAD83(HARN) / Minnesota Central (ftUS)
+--- EPSG 6619 : NAD83(2011) / Utah Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26858,'EPSG',26858,'PROJCS["NAD83(HARN) / Minnesota Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey f [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6619,'EPSG',6619,'PROJCS["NAD83(2011) / Utah Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
---- EPSG 26859 : NAD83(HARN) / Minnesota South (ftUS)
+--- EPSG 6620 : NAD83(2011) / Utah North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26859,'EPSG',26859,'PROJCS["NAD83(HARN) / Minnesota South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foo [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6620,'EPSG',6620,'PROJCS["NAD83(2011) / Utah North",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
---- EPSG 26860 : NAD83(HARN) / Nebraska (ftUS)
+--- EPSG 6621 : NAD83(2011) / Utah South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26860,'EPSG',26860,'PROJCS["NAD83(HARN) / Nebraska (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.30 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6621,'EPSG',6621,'PROJCS["NAD83(2011) / Utah South",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
 ---
---- EPSG 26861 : NAD83(HARN) / West Virginia North (ftUS)
+--- EPSG 6622 : NAD83(CSRS) / Quebec Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26861,'EPSG',26861,'PROJCS["NAD83(HARN) / West Virginia North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6622,'EPSG',6622,'PROJCS["NAD83(CSRS) / Quebec Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Lambert_Confor [...]
 ---
---- EPSG 26862 : NAD83(HARN) / West Virginia South (ftUS)
+--- EPSG 6623 : NAD83 / Quebec Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26862,'EPSG',26862,'PROJCS["NAD83(HARN) / West Virginia South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6623,'EPSG',6623,'PROJCS["NAD83 / Quebec Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["stan [...]
 ---
---- EPSG 26863 : NAD83(NSRS2007) / Maine East (ftUS)
+--- EPSG 6624 : NAD83(CSRS) / Quebec Albers
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26863,'EPSG',26863,'PROJCS["NAD83(NSRS2007) / Maine East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6624,'EPSG',6624,'PROJCS["NAD83(CSRS) / Quebec Albers",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Albers_Conic_Eq [...]
 ---
---- EPSG 26864 : NAD83(NSRS2007) / Maine West (ftUS)
+--- EPSG 6625 : NAD83(2011) / Utah Central (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26864,'EPSG',26864,'PROJCS["NAD83(NSRS2007) / Maine West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6625,'EPSG',6625,'PROJCS["NAD83(2011) / Utah Central (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP [...]
 ---
---- EPSG 26865 : NAD83(NSRS2007) / Minnesota North (ftUS)
+--- EPSG 6626 : NAD83(2011) / Utah North (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26865,'EPSG',26865,'PROJCS["NAD83(NSRS2007) / Minnesota North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6626,'EPSG',6626,'PROJCS["NAD83(2011) / Utah North (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 26866 : NAD83(NSRS2007) / Minnesota Central (ftUS)
+--- EPSG 6627 : NAD83(2011) / Utah South (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26866,'EPSG',26866,'PROJCS["NAD83(NSRS2007) / Minnesota Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6627,'EPSG',6627,'PROJCS["NAD83(2011) / Utah South (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 26867 : NAD83(NSRS2007) / Minnesota South (ftUS)
+--- EPSG 6628 : NAD83(PA11) / Hawaii zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26867,'EPSG',26867,'PROJCS["NAD83(NSRS2007) / Minnesota South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6628,'EPSG',6628,'PROJCS["NAD83(PA11) / Hawaii zone 1",GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26868 : NAD83(NSRS2007) / Nebraska (ftUS)
+--- EPSG 6629 : NAD83(PA11) / Hawaii zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26868,'EPSG',26868,'PROJCS["NAD83(NSRS2007) / Nebraska (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US s [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6629,'EPSG',6629,'PROJCS["NAD83(PA11) / Hawaii zone 2",GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26869 : NAD83(NSRS2007) / West Virginia North (ftUS)
+--- EPSG 6630 : NAD83(PA11) / Hawaii zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26869,'EPSG',26869,'PROJCS["NAD83(NSRS2007) / West Virginia North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6630,'EPSG',6630,'PROJCS["NAD83(PA11) / Hawaii zone 3",GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26870 : NAD83(NSRS2007) / West Virginia South (ftUS)
+--- EPSG 6631 : NAD83(PA11) / Hawaii zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26870,'EPSG',26870,'PROJCS["NAD83(NSRS2007) / West Virginia South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6631,'EPSG',6631,'PROJCS["NAD83(PA11) / Hawaii zone 4",GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26891 : NAD83(CSRS) / MTM zone 11
+--- EPSG 6632 : NAD83(PA11) / Hawaii zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26891,'EPSG',26891,'PROJCS["NAD83(CSRS) / MTM zone 11",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6632,'EPSG',6632,'PROJCS["NAD83(PA11) / Hawaii zone 5",GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26892 : NAD83(CSRS) / MTM zone 12
+--- EPSG 6633 : NAD83(PA11) / Hawaii zone 3 (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26892,'EPSG',26892,'PROJCS["NAD83(CSRS) / MTM zone 12",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6633,'EPSG',6633,'PROJCS["NAD83(PA11) / Hawaii zone 3 (ftUS)",GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 26893 : NAD83(CSRS) / MTM zone 13
+--- EPSG 6634 : NAD83(PA11) / UTM zone 4N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26893,'EPSG',26893,'PROJCS["NAD83(CSRS) / MTM zone 13",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6634,'EPSG',6634,'PROJCS["NAD83(PA11) / UTM zone 4N",GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 26894 : NAD83(CSRS) / MTM zone 14
+--- EPSG 6635 : NAD83(PA11) / UTM zone 5N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26894,'EPSG',26894,'PROJCS["NAD83(CSRS) / MTM zone 14",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6635,'EPSG',6635,'PROJCS["NAD83(PA11) / UTM zone 5N",GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 26895 : NAD83(CSRS) / MTM zone 15
+--- EPSG 6636 : NAD83(PA11) / UTM zone 2S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26895,'EPSG',26895,'PROJCS["NAD83(CSRS) / MTM zone 15",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6636,'EPSG',6636,'PROJCS["NAD83(PA11) / UTM zone 2S",GEOGCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6322"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 26896 : NAD83(CSRS) / MTM zone 16
+--- EPSG 6637 : NAD83(MA11) / Guam Map Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26896,'EPSG',26896,'PROJCS["NAD83(CSRS) / MTM zone 16",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6637,'EPSG',6637,'PROJCS["NAD83(MA11) / Guam Map Grid",GEOGCS["NAD83(MA11)",DATUM["NAD83_National_Spatial_Reference_System_MA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1118"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6325"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 26897 : NAD83(CSRS) / MTM zone 17
+--- EPSG 6646 : Karbala 1979 / Iraq National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26897,'EPSG',26897,'PROJCS["NAD83(CSRS) / MTM zone 17",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6646,'EPSG',6646,'PROJCS["Karbala 1979 / Iraq National Grid",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26898 : NAD83(CSRS) / MTM zone 1
+--- EPSG 6669 : JGD2011 / Japan Plane Rectangular CS I
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26898,'EPSG',26898,'PROJCS["NAD83(CSRS) / MTM zone 1",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6669,'EPSG',6669,'PROJCS["JGD2011 / Japan Plane Rectangular CS I",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
---- EPSG 26899 : NAD83(CSRS) / MTM zone 2
+--- EPSG 6670 : JGD2011 / Japan Plane Rectangular CS II
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26899,'EPSG',26899,'PROJCS["NAD83(CSRS) / MTM zone 2",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6670,'EPSG',6670,'PROJCS["JGD2011 / Japan Plane Rectangular CS II",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 26901 : NAD83 / UTM zone 1N
+--- EPSG 6671 : JGD2011 / Japan Plane Rectangular CS III
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26901,'EPSG',26901,'PROJCS["NAD83 / UTM zone 1N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6671,'EPSG',6671,'PROJCS["JGD2011 / Japan Plane Rectangular CS III",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 26902 : NAD83 / UTM zone 2N
+--- EPSG 6672 : JGD2011 / Japan Plane Rectangular CS IV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26902,'EPSG',26902,'PROJCS["NAD83 / UTM zone 2N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6672,'EPSG',6672,'PROJCS["JGD2011 / Japan Plane Rectangular CS IV",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 26903 : NAD83 / UTM zone 3N
+--- EPSG 6673 : JGD2011 / Japan Plane Rectangular CS V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26903,'EPSG',26903,'PROJCS["NAD83 / UTM zone 3N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6673,'EPSG',6673,'PROJCS["JGD2011 / Japan Plane Rectangular CS V",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
---- EPSG 26904 : NAD83 / UTM zone 4N
+--- EPSG 6674 : JGD2011 / Japan Plane Rectangular CS VI
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26904,'EPSG',26904,'PROJCS["NAD83 / UTM zone 4N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6674,'EPSG',6674,'PROJCS["JGD2011 / Japan Plane Rectangular CS VI",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 26905 : NAD83 / UTM zone 5N
+--- EPSG 6675 : JGD2011 / Japan Plane Rectangular CS VII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26905,'EPSG',26905,'PROJCS["NAD83 / UTM zone 5N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6675,'EPSG',6675,'PROJCS["JGD2011 / Japan Plane Rectangular CS VII",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 26906 : NAD83 / UTM zone 6N
+--- EPSG 6676 : JGD2011 / Japan Plane Rectangular CS VIII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26906,'EPSG',26906,'PROJCS["NAD83 / UTM zone 6N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6676,'EPSG',6676,'PROJCS["JGD2011 / Japan Plane Rectangular CS VIII",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
---- EPSG 26907 : NAD83 / UTM zone 7N
+--- EPSG 6677 : JGD2011 / Japan Plane Rectangular CS IX
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26907,'EPSG',26907,'PROJCS["NAD83 / UTM zone 7N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6677,'EPSG',6677,'PROJCS["JGD2011 / Japan Plane Rectangular CS IX",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 26908 : NAD83 / UTM zone 8N
+--- EPSG 6678 : JGD2011 / Japan Plane Rectangular CS X
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26908,'EPSG',26908,'PROJCS["NAD83 / UTM zone 8N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6678,'EPSG',6678,'PROJCS["JGD2011 / Japan Plane Rectangular CS X",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
---- EPSG 26909 : NAD83 / UTM zone 9N
+--- EPSG 6679 : JGD2011 / Japan Plane Rectangular CS XI
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26909,'EPSG',26909,'PROJCS["NAD83 / UTM zone 9N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6679,'EPSG',6679,'PROJCS["JGD2011 / Japan Plane Rectangular CS XI",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 26910 : NAD83 / UTM zone 10N
+--- EPSG 6680 : JGD2011 / Japan Plane Rectangular CS XII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26910,'EPSG',26910,'PROJCS["NAD83 / UTM zone 10N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6680,'EPSG',6680,'PROJCS["JGD2011 / Japan Plane Rectangular CS XII",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 26911 : NAD83 / UTM zone 11N
+--- EPSG 6681 : JGD2011 / Japan Plane Rectangular CS XIII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26911,'EPSG',26911,'PROJCS["NAD83 / UTM zone 11N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6681,'EPSG',6681,'PROJCS["JGD2011 / Japan Plane Rectangular CS XIII",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
---- EPSG 26912 : NAD83 / UTM zone 12N
+--- EPSG 6682 : JGD2011 / Japan Plane Rectangular CS XIV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26912,'EPSG',26912,'PROJCS["NAD83 / UTM zone 12N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6682,'EPSG',6682,'PROJCS["JGD2011 / Japan Plane Rectangular CS XIV",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 26913 : NAD83 / UTM zone 13N
+--- EPSG 6683 : JGD2011 / Japan Plane Rectangular CS XV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26913,'EPSG',26913,'PROJCS["NAD83 / UTM zone 13N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6683,'EPSG',6683,'PROJCS["JGD2011 / Japan Plane Rectangular CS XV",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 26914 : NAD83 / UTM zone 14N
+--- EPSG 6684 : JGD2011 / Japan Plane Rectangular CS XVI
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26914,'EPSG',26914,'PROJCS["NAD83 / UTM zone 14N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6684,'EPSG',6684,'PROJCS["JGD2011 / Japan Plane Rectangular CS XVI",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 26915 : NAD83 / UTM zone 15N
+--- EPSG 6685 : JGD2011 / Japan Plane Rectangular CS XVII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26915,'EPSG',26915,'PROJCS["NAD83 / UTM zone 15N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6685,'EPSG',6685,'PROJCS["JGD2011 / Japan Plane Rectangular CS XVII",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
---- EPSG 26916 : NAD83 / UTM zone 16N
+--- EPSG 6686 : JGD2011 / Japan Plane Rectangular CS XVIII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26916,'EPSG',26916,'PROJCS["NAD83 / UTM zone 16N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6686,'EPSG',6686,'PROJCS["JGD2011 / Japan Plane Rectangular CS XVIII",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
 ---
---- EPSG 26917 : NAD83 / UTM zone 17N
+--- EPSG 6687 : JGD2011 / Japan Plane Rectangular CS XIX
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26917,'EPSG',26917,'PROJCS["NAD83 / UTM zone 17N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6687,'EPSG',6687,'PROJCS["JGD2011 / Japan Plane Rectangular CS XIX",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 26918 : NAD83 / UTM zone 18N
+--- EPSG 6688 : JGD2011 / UTM zone 51N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26918,'EPSG',26918,'PROJCS["NAD83 / UTM zone 18N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6688,'EPSG',6688,'PROJCS["JGD2011 / UTM zone 51N",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PA [...]
 ---
---- EPSG 26919 : NAD83 / UTM zone 19N
+--- EPSG 6689 : JGD2011 / UTM zone 52N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26919,'EPSG',26919,'PROJCS["NAD83 / UTM zone 19N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6689,'EPSG',6689,'PROJCS["JGD2011 / UTM zone 52N",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PA [...]
 ---
---- EPSG 26920 : NAD83 / UTM zone 20N
+--- EPSG 6690 : JGD2011 / UTM zone 53N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26920,'EPSG',26920,'PROJCS["NAD83 / UTM zone 20N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6690,'EPSG',6690,'PROJCS["JGD2011 / UTM zone 53N",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PA [...]
 ---
---- EPSG 26921 : NAD83 / UTM zone 21N
+--- EPSG 6691 : JGD2011 / UTM zone 54N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26921,'EPSG',26921,'PROJCS["NAD83 / UTM zone 21N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6691,'EPSG',6691,'PROJCS["JGD2011 / UTM zone 54N",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PA [...]
 ---
---- EPSG 26922 : NAD83 / UTM zone 22N
+--- EPSG 6692 : JGD2011 / UTM zone 55N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26922,'EPSG',26922,'PROJCS["NAD83 / UTM zone 22N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6692,'EPSG',6692,'PROJCS["JGD2011 / UTM zone 55N",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PA [...]
 ---
---- EPSG 26923 : NAD83 / UTM zone 23N
+--- EPSG 6703 : WGS 84 / TM 60 SW
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26923,'EPSG',26923,'PROJCS["NAD83 / UTM zone 23N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6703,'EPSG',6703,'PROJCS["WGS 84 / TM 60 SW",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",- [...]
 ---
---- EPSG 26929 : NAD83 / Alabama East
+--- EPSG 6707 : RDN2008 / TM32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26929,'EPSG',26929,'PROJCS["NAD83 / Alabama East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6707,'EPSG',6707,'PROJCS["RDN2008 / TM32",GEOGCS["RDN2008",DATUM["Rete_Dinamica_Nazionale_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6706"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 26930 : NAD83 / Alabama West
+--- EPSG 6708 : RDN2008 / TM33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26930,'EPSG',26930,'PROJCS["NAD83 / Alabama West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6708,'EPSG',6708,'PROJCS["RDN2008 / TM33",GEOGCS["RDN2008",DATUM["Rete_Dinamica_Nazionale_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6706"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 26931 : NAD83 / Alaska zone 1
+--- EPSG 6709 : RDN2008 / TM34
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26931,'EPSG',26931,'PROJCS["NAD83 / Alaska zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6709,'EPSG',6709,'PROJCS["RDN2008 / TM34",GEOGCS["RDN2008",DATUM["Rete_Dinamica_Nazionale_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6706"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 26932 : NAD83 / Alaska zone 2
+--- EPSG 6720 : WGS 84 / CIG92
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26932,'EPSG',26932,'PROJCS["NAD83 / Alaska zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6720,'EPSG',6720,'PROJCS["WGS 84 / CIG92",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105. [...]
 ---
---- EPSG 26933 : NAD83 / Alaska zone 3
+--- EPSG 6721 : GDA94 / CIG94
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26933,'EPSG',26933,'PROJCS["NAD83 / Alaska zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6721,'EPSG',6721,'PROJCS["GDA94 / CIG94",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 26934 : NAD83 / Alaska zone 4
+--- EPSG 6722 : WGS 84 / CKIG92
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26934,'EPSG',26934,'PROJCS["NAD83 / Alaska zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6722,'EPSG',6722,'PROJCS["WGS 84 / CKIG92",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96. [...]
 ---
---- EPSG 26935 : NAD83 / Alaska zone 5
+--- EPSG 6723 : GDA94 / CKIG94
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26935,'EPSG',26935,'PROJCS["NAD83 / Alaska zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6723,'EPSG',6723,'PROJCS["GDA94 / CKIG94",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
 ---
---- EPSG 26936 : NAD83 / Alaska zone 6
+--- EPSG 6732 : GDA94 / MGA zone 41
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26936,'EPSG',26936,'PROJCS["NAD83 / Alaska zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6732,'EPSG',6732,'PROJCS["GDA94 / MGA zone 41",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26937 : NAD83 / Alaska zone 7
+--- EPSG 6733 : GDA94 / MGA zone 42
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26937,'EPSG',26937,'PROJCS["NAD83 / Alaska zone 7",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6733,'EPSG',6733,'PROJCS["GDA94 / MGA zone 42",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26938 : NAD83 / Alaska zone 8
+--- EPSG 6734 : GDA94 / MGA zone 43
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26938,'EPSG',26938,'PROJCS["NAD83 / Alaska zone 8",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6734,'EPSG',6734,'PROJCS["GDA94 / MGA zone 43",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26939 : NAD83 / Alaska zone 9
+--- EPSG 6735 : GDA94 / MGA zone 44
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26939,'EPSG',26939,'PROJCS["NAD83 / Alaska zone 9",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6735,'EPSG',6735,'PROJCS["GDA94 / MGA zone 44",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26940 : NAD83 / Alaska zone 10
+--- EPSG 6736 : GDA94 / MGA zone 46
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26940,'EPSG',26940,'PROJCS["NAD83 / Alaska zone 10",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6736,'EPSG',6736,'PROJCS["GDA94 / MGA zone 46",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26941 : NAD83 / California zone 1
+--- EPSG 6737 : GDA94 / MGA zone 47
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26941,'EPSG',26941,'PROJCS["NAD83 / California zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6737,'EPSG',6737,'PROJCS["GDA94 / MGA zone 47",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26942 : NAD83 / California zone 2
+--- EPSG 6738 : GDA94 / MGA zone 59
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26942,'EPSG',26942,'PROJCS["NAD83 / California zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6738,'EPSG',6738,'PROJCS["GDA94 / MGA zone 59",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 26943 : NAD83 / California zone 3
+--- EPSG 6867 : NAD83(CORS96) / Oregon LCC (m)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26943,'EPSG',26943,'PROJCS["NAD83 / California zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6867,'EPSG',6867,'PROJCS["NAD83(CORS96) / Oregon LCC (m)",GEOGCS["NAD83(CORS96)",DATUM["NAD83_Continuously_Operating_Reference_Station_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6783"]],PROJECTION["Lambert_Conformal_Con [...]
 ---
---- EPSG 26944 : NAD83 / California zone 4
+--- EPSG 6868 : NAD83(CORS96) / Oregon GIC Lambert (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26944,'EPSG',26944,'PROJCS["NAD83 / California zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6868,'EPSG',6868,'PROJCS["NAD83(CORS96) / Oregon GIC Lambert (ft)",GEOGCS["NAD83(CORS96)",DATUM["NAD83_Continuously_Operating_Reference_Station_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6783"]],PROJECTION["Lambert_Conf [...]
 ---
---- EPSG 26945 : NAD83 / California zone 5
+--- EPSG 6870 : ETRS89 / Albania 2010
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26945,'EPSG',26945,'PROJCS["NAD83 / California zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6870,'EPSG',6870,'PROJCS["ETRS89 / Albania 2010",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 26946 : NAD83 / California zone 6
+--- EPSG 6875 : RDN2008 / Italy zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26946,'EPSG',26946,'PROJCS["NAD83 / California zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6875,'EPSG',6875,'PROJCS["RDN2008 / Italy zone",GEOGCS["RDN2008",DATUM["Rete_Dinamica_Nazionale_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6706"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 26948 : NAD83 / Arizona East
+--- EPSG 6876 : RDN2008 / Zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26948,'EPSG',26948,'PROJCS["NAD83 / Arizona East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6876,'EPSG',6876,'PROJCS["RDN2008 / Zone 12",GEOGCS["RDN2008",DATUM["Rete_Dinamica_Nazionale_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6706"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 26949 : NAD83 / Arizona Central
+--- EPSG 6879 : NAD83(2011) / Wisconsin Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26949,'EPSG',26949,'PROJCS["NAD83 / Arizona Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6879,'EPSG',6879,'PROJCS["NAD83(2011) / Wisconsin Central",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"] [...]
 ---
---- EPSG 26950 : NAD83 / Arizona West
+--- EPSG 6880 : NAD83(2011) / Nebraska (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26950,'EPSG',26950,'PROJCS["NAD83 / Arizona West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6880,'EPSG',6880,'PROJCS["NAD83(2011) / Nebraska (ftUS)",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Lambert_Conformal_Conic_2SP"],P [...]
 ---
---- EPSG 26951 : NAD83 / Arkansas North
+--- EPSG 6884 : NAD83(CORS96) / Oregon North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26951,'EPSG',26951,'PROJCS["NAD83 / Arkansas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6884,'EPSG',6884,'PROJCS["NAD83(CORS96) / Oregon North",GEOGCS["NAD83(CORS96)",DATUM["NAD83_Continuously_Operating_Reference_Station_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6783"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
---- EPSG 26952 : NAD83 / Arkansas South
+--- EPSG 6885 : NAD83(CORS96) / Oregon North (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26952,'EPSG',26952,'PROJCS["NAD83 / Arkansas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6885,'EPSG',6885,'PROJCS["NAD83(CORS96) / Oregon North (ft)",GEOGCS["NAD83(CORS96)",DATUM["NAD83_Continuously_Operating_Reference_Station_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6783"]],PROJECTION["Lambert_Conformal_ [...]
 ---
---- EPSG 26953 : NAD83 / Colorado North
+--- EPSG 6886 : NAD83(CORS96) / Oregon South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26953,'EPSG',26953,'PROJCS["NAD83 / Colorado North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6886,'EPSG',6886,'PROJCS["NAD83(CORS96) / Oregon South",GEOGCS["NAD83(CORS96)",DATUM["NAD83_Continuously_Operating_Reference_Station_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6783"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
---- EPSG 26954 : NAD83 / Colorado Central
+--- EPSG 6887 : NAD83(CORS96) / Oregon South (ft)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26954,'EPSG',26954,'PROJCS["NAD83 / Colorado Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6887,'EPSG',6887,'PROJCS["NAD83(CORS96) / Oregon South (ft)",GEOGCS["NAD83(CORS96)",DATUM["NAD83_Continuously_Operating_Reference_Station_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6783"]],PROJECTION["Lambert_Conformal_ [...]
 ---
---- EPSG 26955 : NAD83 / Colorado South
+--- EPSG 20004 : Pulkovo 1995 / Gauss-Kruger zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26955,'EPSG',26955,'PROJCS["NAD83 / Colorado South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20004,'EPSG',20004,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 26956 : NAD83 / Connecticut
+--- EPSG 20005 : Pulkovo 1995 / Gauss-Kruger zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26956,'EPSG',26956,'PROJCS["NAD83 / Connecticut",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20005,'EPSG',20005,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 26957 : NAD83 / Delaware
+--- EPSG 20006 : Pulkovo 1995 / Gauss-Kruger zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26957,'EPSG',26957,'PROJCS["NAD83 / Delaware",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20006,'EPSG',20006,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 6",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 26958 : NAD83 / Florida East
+--- EPSG 20007 : Pulkovo 1995 / Gauss-Kruger zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26958,'EPSG',26958,'PROJCS["NAD83 / Florida East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20007,'EPSG',20007,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 7",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 26959 : NAD83 / Florida West
+--- EPSG 20008 : Pulkovo 1995 / Gauss-Kruger zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26959,'EPSG',26959,'PROJCS["NAD83 / Florida West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20008,'EPSG',20008,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 8",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 26960 : NAD83 / Florida North
+--- EPSG 20009 : Pulkovo 1995 / Gauss-Kruger zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26960,'EPSG',26960,'PROJCS["NAD83 / Florida North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20009,'EPSG',20009,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 9",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 26961 : NAD83 / Hawaii zone 1
+--- EPSG 20010 : Pulkovo 1995 / Gauss-Kruger zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26961,'EPSG',26961,'PROJCS["NAD83 / Hawaii zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20010,'EPSG',20010,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 10",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26962 : NAD83 / Hawaii zone 2
+--- EPSG 20011 : Pulkovo 1995 / Gauss-Kruger zone 11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26962,'EPSG',26962,'PROJCS["NAD83 / Hawaii zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20011,'EPSG',20011,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 11",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26963 : NAD83 / Hawaii zone 3
+--- EPSG 20012 : Pulkovo 1995 / Gauss-Kruger zone 12
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26963,'EPSG',26963,'PROJCS["NAD83 / Hawaii zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20012,'EPSG',20012,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 12",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26964 : NAD83 / Hawaii zone 4
+--- EPSG 20013 : Pulkovo 1995 / Gauss-Kruger zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26964,'EPSG',26964,'PROJCS["NAD83 / Hawaii zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20013,'EPSG',20013,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 13",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26965 : NAD83 / Hawaii zone 5
+--- EPSG 20014 : Pulkovo 1995 / Gauss-Kruger zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26965,'EPSG',26965,'PROJCS["NAD83 / Hawaii zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20014,'EPSG',20014,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 14",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26966 : NAD83 / Georgia East
+--- EPSG 20015 : Pulkovo 1995 / Gauss-Kruger zone 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26966,'EPSG',26966,'PROJCS["NAD83 / Georgia East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20015,'EPSG',20015,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 15",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26967 : NAD83 / Georgia West
+--- EPSG 20016 : Pulkovo 1995 / Gauss-Kruger zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26967,'EPSG',26967,'PROJCS["NAD83 / Georgia West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20016,'EPSG',20016,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 16",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26968 : NAD83 / Idaho East
+--- EPSG 20017 : Pulkovo 1995 / Gauss-Kruger zone 17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26968,'EPSG',26968,'PROJCS["NAD83 / Idaho East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20017,'EPSG',20017,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 17",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26969 : NAD83 / Idaho Central
+--- EPSG 20018 : Pulkovo 1995 / Gauss-Kruger zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26969,'EPSG',26969,'PROJCS["NAD83 / Idaho Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20018,'EPSG',20018,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 18",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26970 : NAD83 / Idaho West
+--- EPSG 20019 : Pulkovo 1995 / Gauss-Kruger zone 19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26970,'EPSG',26970,'PROJCS["NAD83 / Idaho West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20019,'EPSG',20019,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 19",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26971 : NAD83 / Illinois East
+--- EPSG 20020 : Pulkovo 1995 / Gauss-Kruger zone 20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26971,'EPSG',26971,'PROJCS["NAD83 / Illinois East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20020,'EPSG',20020,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 20",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26972 : NAD83 / Illinois West
+--- EPSG 20021 : Pulkovo 1995 / Gauss-Kruger zone 21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26972,'EPSG',26972,'PROJCS["NAD83 / Illinois West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20021,'EPSG',20021,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 21",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26973 : NAD83 / Indiana East
+--- EPSG 20022 : Pulkovo 1995 / Gauss-Kruger zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26973,'EPSG',26973,'PROJCS["NAD83 / Indiana East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20022,'EPSG',20022,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 22",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26974 : NAD83 / Indiana West
+--- EPSG 20023 : Pulkovo 1995 / Gauss-Kruger zone 23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26974,'EPSG',26974,'PROJCS["NAD83 / Indiana West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20023,'EPSG',20023,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 23",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26975 : NAD83 / Iowa North
+--- EPSG 20024 : Pulkovo 1995 / Gauss-Kruger zone 24
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26975,'EPSG',26975,'PROJCS["NAD83 / Iowa North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["L [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20024,'EPSG',20024,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 24",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26976 : NAD83 / Iowa South
+--- EPSG 20025 : Pulkovo 1995 / Gauss-Kruger zone 25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26976,'EPSG',26976,'PROJCS["NAD83 / Iowa South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["L [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20025,'EPSG',20025,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 25",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26977 : NAD83 / Kansas North
+--- EPSG 20026 : Pulkovo 1995 / Gauss-Kruger zone 26
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26977,'EPSG',26977,'PROJCS["NAD83 / Kansas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20026,'EPSG',20026,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 26",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26978 : NAD83 / Kansas South
+--- EPSG 20027 : Pulkovo 1995 / Gauss-Kruger zone 27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26978,'EPSG',26978,'PROJCS["NAD83 / Kansas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20027,'EPSG',20027,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 27",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26979 : NAD83 / Kentucky North (deprecated)
+--- EPSG 20028 : Pulkovo 1995 / Gauss-Kruger zone 28
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26979,'EPSG',26979,'PROJCS["NAD83 / Kentucky North (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20028,'EPSG',20028,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 28",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26980 : NAD83 / Kentucky South
+--- EPSG 20029 : Pulkovo 1995 / Gauss-Kruger zone 29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26980,'EPSG',26980,'PROJCS["NAD83 / Kentucky South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20029,'EPSG',20029,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 29",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26981 : NAD83 / Louisiana North
+--- EPSG 20030 : Pulkovo 1995 / Gauss-Kruger zone 30
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26981,'EPSG',26981,'PROJCS["NAD83 / Louisiana North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20030,'EPSG',20030,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 30",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26982 : NAD83 / Louisiana South
+--- EPSG 20031 : Pulkovo 1995 / Gauss-Kruger zone 31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26982,'EPSG',26982,'PROJCS["NAD83 / Louisiana South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20031,'EPSG',20031,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 31",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26983 : NAD83 / Maine East
+--- EPSG 20032 : Pulkovo 1995 / Gauss-Kruger zone 32
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26983,'EPSG',26983,'PROJCS["NAD83 / Maine East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20032,'EPSG',20032,'PROJCS["Pulkovo 1995 / Gauss-Kruger zone 32",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Transverse [...]
 ---
---- EPSG 26984 : NAD83 / Maine West
+--- EPSG 20064 : Pulkovo 1995 / Gauss-Kruger 4N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26984,'EPSG',26984,'PROJCS["NAD83 / Maine West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20064,'EPSG',20064,'PROJCS["Pulkovo 1995 / Gauss-Kruger 4N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tr [...]
 ---
---- EPSG 26985 : NAD83 / Maryland
+--- EPSG 20065 : Pulkovo 1995 / Gauss-Kruger 5N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26985,'EPSG',26985,'PROJCS["NAD83 / Maryland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20065,'EPSG',20065,'PROJCS["Pulkovo 1995 / Gauss-Kruger 5N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tr [...]
 ---
---- EPSG 26986 : NAD83 / Massachusetts Mainland
+--- EPSG 20066 : Pulkovo 1995 / Gauss-Kruger 6N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26986,'EPSG',26986,'PROJCS["NAD83 / Massachusetts Mainland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20066,'EPSG',20066,'PROJCS["Pulkovo 1995 / Gauss-Kruger 6N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tr [...]
 ---
---- EPSG 26987 : NAD83 / Massachusetts Island
+--- EPSG 20067 : Pulkovo 1995 / Gauss-Kruger 7N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26987,'EPSG',26987,'PROJCS["NAD83 / Massachusetts Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20067,'EPSG',20067,'PROJCS["Pulkovo 1995 / Gauss-Kruger 7N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tr [...]
 ---
---- EPSG 26988 : NAD83 / Michigan North
+--- EPSG 20068 : Pulkovo 1995 / Gauss-Kruger 8N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26988,'EPSG',26988,'PROJCS["NAD83 / Michigan North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20068,'EPSG',20068,'PROJCS["Pulkovo 1995 / Gauss-Kruger 8N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tr [...]
 ---
---- EPSG 26989 : NAD83 / Michigan Central
+--- EPSG 20069 : Pulkovo 1995 / Gauss-Kruger 9N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26989,'EPSG',26989,'PROJCS["NAD83 / Michigan Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20069,'EPSG',20069,'PROJCS["Pulkovo 1995 / Gauss-Kruger 9N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["Tr [...]
 ---
---- EPSG 26990 : NAD83 / Michigan South
+--- EPSG 20070 : Pulkovo 1995 / Gauss-Kruger 10N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26990,'EPSG',26990,'PROJCS["NAD83 / Michigan South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20070,'EPSG',20070,'PROJCS["Pulkovo 1995 / Gauss-Kruger 10N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 26991 : NAD83 / Minnesota North
+--- EPSG 20071 : Pulkovo 1995 / Gauss-Kruger 11N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26991,'EPSG',26991,'PROJCS["NAD83 / Minnesota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20071,'EPSG',20071,'PROJCS["Pulkovo 1995 / Gauss-Kruger 11N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 26992 : NAD83 / Minnesota Central
+--- EPSG 20072 : Pulkovo 1995 / Gauss-Kruger 12N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26992,'EPSG',26992,'PROJCS["NAD83 / Minnesota Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20072,'EPSG',20072,'PROJCS["Pulkovo 1995 / Gauss-Kruger 12N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 26993 : NAD83 / Minnesota South
+--- EPSG 20073 : Pulkovo 1995 / Gauss-Kruger 13N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26993,'EPSG',26993,'PROJCS["NAD83 / Minnesota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20073,'EPSG',20073,'PROJCS["Pulkovo 1995 / Gauss-Kruger 13N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 26994 : NAD83 / Mississippi East
+--- EPSG 20074 : Pulkovo 1995 / Gauss-Kruger 14N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26994,'EPSG',26994,'PROJCS["NAD83 / Mississippi East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20074,'EPSG',20074,'PROJCS["Pulkovo 1995 / Gauss-Kruger 14N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 26995 : NAD83 / Mississippi West
+--- EPSG 20075 : Pulkovo 1995 / Gauss-Kruger 15N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26995,'EPSG',26995,'PROJCS["NAD83 / Mississippi West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20075,'EPSG',20075,'PROJCS["Pulkovo 1995 / Gauss-Kruger 15N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 26996 : NAD83 / Missouri East
+--- EPSG 20076 : Pulkovo 1995 / Gauss-Kruger 16N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26996,'EPSG',26996,'PROJCS["NAD83 / Missouri East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20076,'EPSG',20076,'PROJCS["Pulkovo 1995 / Gauss-Kruger 16N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 26997 : NAD83 / Missouri Central
+--- EPSG 20077 : Pulkovo 1995 / Gauss-Kruger 17N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26997,'EPSG',26997,'PROJCS["NAD83 / Missouri Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20077,'EPSG',20077,'PROJCS["Pulkovo 1995 / Gauss-Kruger 17N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 26998 : NAD83 / Missouri West
+--- EPSG 20078 : Pulkovo 1995 / Gauss-Kruger 18N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26998,'EPSG',26998,'PROJCS["NAD83 / Missouri West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20078,'EPSG',20078,'PROJCS["Pulkovo 1995 / Gauss-Kruger 18N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27037 : Nahrwan 1967 / UTM zone 37N
+--- EPSG 20079 : Pulkovo 1995 / Gauss-Kruger 19N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27037,'EPSG',27037,'PROJCS["Nahrwan 1967 / UTM zone 37N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-243,-192,477,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20079,'EPSG',20079,'PROJCS["Pulkovo 1995 / Gauss-Kruger 19N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27038 : Nahrwan 1967 / UTM zone 38N
+--- EPSG 20080 : Pulkovo 1995 / Gauss-Kruger 20N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27038,'EPSG',27038,'PROJCS["Nahrwan 1967 / UTM zone 38N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-243,-192,477,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20080,'EPSG',20080,'PROJCS["Pulkovo 1995 / Gauss-Kruger 20N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27039 : Nahrwan 1967 / UTM zone 39N
+--- EPSG 20081 : Pulkovo 1995 / Gauss-Kruger 21N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27039,'EPSG',27039,'PROJCS["Nahrwan 1967 / UTM zone 39N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-243,-192,477,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20081,'EPSG',20081,'PROJCS["Pulkovo 1995 / Gauss-Kruger 21N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27040 : Nahrwan 1967 / UTM zone 40N
+--- EPSG 20082 : Pulkovo 1995 / Gauss-Kruger 22N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27040,'EPSG',27040,'PROJCS["Nahrwan 1967 / UTM zone 40N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-243,-192,477,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20082,'EPSG',20082,'PROJCS["Pulkovo 1995 / Gauss-Kruger 22N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27120 : Naparima 1972 / UTM zone 20N
+--- EPSG 20083 : Pulkovo 1995 / Gauss-Kruger 23N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27120,'EPSG',27120,'PROJCS["Naparima 1972 / UTM zone 20N",GEOGCS["Naparima 1972",DATUM["Naparima_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-10,375,165,0,0,0,0],AUTHORITY["EPSG","6271"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4271"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20083,'EPSG',20083,'PROJCS["Pulkovo 1995 / Gauss-Kruger 23N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27200 : NZGD49 / New Zealand Map Grid
+--- EPSG 20084 : Pulkovo 1995 / Gauss-Kruger 24N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27200,'EPSG',27200,'PROJCS["NZGD49 / New Zealand Map Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20084,'EPSG',20084,'PROJCS["Pulkovo 1995 / Gauss-Kruger 24N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27205 : NZGD49 / Mount Eden Circuit
+--- EPSG 20085 : Pulkovo 1995 / Gauss-Kruger 25N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27205,'EPSG',27205,'PROJCS["NZGD49 / Mount Eden Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20085,'EPSG',20085,'PROJCS["Pulkovo 1995 / Gauss-Kruger 25N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27206 : NZGD49 / Bay of Plenty Circuit
+--- EPSG 20086 : Pulkovo 1995 / Gauss-Kruger 26N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27206,'EPSG',27206,'PROJCS["NZGD49 / Bay of Plenty Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20086,'EPSG',20086,'PROJCS["Pulkovo 1995 / Gauss-Kruger 26N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27207 : NZGD49 / Poverty Bay Circuit
+--- EPSG 20087 : Pulkovo 1995 / Gauss-Kruger 27N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27207,'EPSG',27207,'PROJCS["NZGD49 / Poverty Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20087,'EPSG',20087,'PROJCS["Pulkovo 1995 / Gauss-Kruger 27N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27208 : NZGD49 / Hawkes Bay Circuit
+--- EPSG 20088 : Pulkovo 1995 / Gauss-Kruger 28N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27208,'EPSG',27208,'PROJCS["NZGD49 / Hawkes Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20088,'EPSG',20088,'PROJCS["Pulkovo 1995 / Gauss-Kruger 28N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27209 : NZGD49 / Taranaki Circuit
+--- EPSG 20089 : Pulkovo 1995 / Gauss-Kruger 29N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27209,'EPSG',27209,'PROJCS["NZGD49 / Taranaki Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20089,'EPSG',20089,'PROJCS["Pulkovo 1995 / Gauss-Kruger 29N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27210 : NZGD49 / Tuhirangi Circuit
+--- EPSG 20090 : Pulkovo 1995 / Gauss-Kruger 30N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27210,'EPSG',27210,'PROJCS["NZGD49 / Tuhirangi Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20090,'EPSG',20090,'PROJCS["Pulkovo 1995 / Gauss-Kruger 30N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27211 : NZGD49 / Wanganui Circuit
+--- EPSG 20091 : Pulkovo 1995 / Gauss-Kruger 31N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27211,'EPSG',27211,'PROJCS["NZGD49 / Wanganui Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20091,'EPSG',20091,'PROJCS["Pulkovo 1995 / Gauss-Kruger 31N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27212 : NZGD49 / Wairarapa Circuit
+--- EPSG 20092 : Pulkovo 1995 / Gauss-Kruger 32N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27212,'EPSG',27212,'PROJCS["NZGD49 / Wairarapa Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20092,'EPSG',20092,'PROJCS["Pulkovo 1995 / Gauss-Kruger 32N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],PROJECTION["T [...]
 ---
---- EPSG 27213 : NZGD49 / Wellington Circuit
+--- EPSG 20135 : Adindan / UTM zone 35N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27213,'EPSG',27213,'PROJCS["NZGD49 / Wellington Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20135,'EPSG',20135,'PROJCS["Adindan / UTM zone 35N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 27214 : NZGD49 / Collingwood Circuit
+--- EPSG 20136 : Adindan / UTM zone 36N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27214,'EPSG',27214,'PROJCS["NZGD49 / Collingwood Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20136,'EPSG',20136,'PROJCS["Adindan / UTM zone 36N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 27215 : NZGD49 / Nelson Circuit
+--- EPSG 20137 : Adindan / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27215,'EPSG',27215,'PROJCS["NZGD49 / Nelson Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20137,'EPSG',20137,'PROJCS["Adindan / UTM zone 37N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 27216 : NZGD49 / Karamea Circuit
+--- EPSG 20138 : Adindan / UTM zone 38N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27216,'EPSG',27216,'PROJCS["NZGD49 / Karamea Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20138,'EPSG',20138,'PROJCS["Adindan / UTM zone 38N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 27217 : NZGD49 / Buller Circuit
+--- EPSG 20248 : AGD66 / AMG zone 48 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27217,'EPSG',27217,'PROJCS["NZGD49 / Buller Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20248,'EPSG',20248,'PROJCS["AGD66 / AMG zone 48 (deprecated)",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 27218 : NZGD49 / Grey Circuit
+--- EPSG 20249 : AGD66 / AMG zone 49
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27218,'EPSG',27218,'PROJCS["NZGD49 / Grey Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20249,'EPSG',20249,'PROJCS["AGD66 / AMG zone 49",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27219 : NZGD49 / Amuri Circuit
+--- EPSG 20250 : AGD66 / AMG zone 50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27219,'EPSG',27219,'PROJCS["NZGD49 / Amuri Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20250,'EPSG',20250,'PROJCS["AGD66 / AMG zone 50",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27220 : NZGD49 / Marlborough Circuit
+--- EPSG 20251 : AGD66 / AMG zone 51
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27220,'EPSG',27220,'PROJCS["NZGD49 / Marlborough Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20251,'EPSG',20251,'PROJCS["AGD66 / AMG zone 51",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27221 : NZGD49 / Hokitika Circuit
+--- EPSG 20252 : AGD66 / AMG zone 52
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27221,'EPSG',27221,'PROJCS["NZGD49 / Hokitika Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20252,'EPSG',20252,'PROJCS["AGD66 / AMG zone 52",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27222 : NZGD49 / Okarito Circuit
+--- EPSG 20253 : AGD66 / AMG zone 53
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27222,'EPSG',27222,'PROJCS["NZGD49 / Okarito Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20253,'EPSG',20253,'PROJCS["AGD66 / AMG zone 53",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27223 : NZGD49 / Jacksons Bay Circuit
+--- EPSG 20254 : AGD66 / AMG zone 54
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27223,'EPSG',27223,'PROJCS["NZGD49 / Jacksons Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20254,'EPSG',20254,'PROJCS["AGD66 / AMG zone 54",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27224 : NZGD49 / Mount Pleasant Circuit
+--- EPSG 20255 : AGD66 / AMG zone 55
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27224,'EPSG',27224,'PROJCS["NZGD49 / Mount Pleasant Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20255,'EPSG',20255,'PROJCS["AGD66 / AMG zone 55",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27225 : NZGD49 / Gawler Circuit
+--- EPSG 20256 : AGD66 / AMG zone 56
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27225,'EPSG',27225,'PROJCS["NZGD49 / Gawler Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20256,'EPSG',20256,'PROJCS["AGD66 / AMG zone 56",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27226 : NZGD49 / Timaru Circuit
+--- EPSG 20257 : AGD66 / AMG zone 57
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27226,'EPSG',27226,'PROJCS["NZGD49 / Timaru Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20257,'EPSG',20257,'PROJCS["AGD66 / AMG zone 57",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27227 : NZGD49 / Lindis Peak Circuit
+--- EPSG 20258 : AGD66 / AMG zone 58
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27227,'EPSG',27227,'PROJCS["NZGD49 / Lindis Peak Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20258,'EPSG',20258,'PROJCS["AGD66 / AMG zone 58",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]], [...]
 ---
---- EPSG 27228 : NZGD49 / Mount Nicholas Circuit
+--- EPSG 20348 : AGD84 / AMG zone 48 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27228,'EPSG',27228,'PROJCS["NZGD49 / Mount Nicholas Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20348,'EPSG',20348,'PROJCS["AGD84 / AMG zone 48 (deprecated)",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Tra [...]
 ---
---- EPSG 27229 : NZGD49 / Mount York Circuit
+--- EPSG 20349 : AGD84 / AMG zone 49
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27229,'EPSG',27229,'PROJCS["NZGD49 / Mount York Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20349,'EPSG',20349,'PROJCS["AGD84 / AMG zone 49",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 27230 : NZGD49 / Observation Point Circuit
+--- EPSG 20350 : AGD84 / AMG zone 50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27230,'EPSG',27230,'PROJCS["NZGD49 / Observation Point Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20350,'EPSG',20350,'PROJCS["AGD84 / AMG zone 50",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 27231 : NZGD49 / North Taieri Circuit
+--- EPSG 20351 : AGD84 / AMG zone 51
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27231,'EPSG',27231,'PROJCS["NZGD49 / North Taieri Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20351,'EPSG',20351,'PROJCS["AGD84 / AMG zone 51",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 27232 : NZGD49 / Bluff Circuit
+--- EPSG 20352 : AGD84 / AMG zone 52
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27232,'EPSG',27232,'PROJCS["NZGD49 / Bluff Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20352,'EPSG',20352,'PROJCS["AGD84 / AMG zone 52",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 27258 : NZGD49 / UTM zone 58S
+--- EPSG 20353 : AGD84 / AMG zone 53
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27258,'EPSG',27258,'PROJCS["NZGD49 / UTM zone 58S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20353,'EPSG',20353,'PROJCS["AGD84 / AMG zone 53",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 27259 : NZGD49 / UTM zone 59S
+--- EPSG 20354 : AGD84 / AMG zone 54
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27259,'EPSG',27259,'PROJCS["NZGD49 / UTM zone 59S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20354,'EPSG',20354,'PROJCS["AGD84 / AMG zone 54",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 27260 : NZGD49 / UTM zone 60S
+--- EPSG 20355 : AGD84 / AMG zone 55
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27260,'EPSG',27260,'PROJCS["NZGD49 / UTM zone 60S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1, [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20355,'EPSG',20355,'PROJCS["AGD84 / AMG zone 55",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 27291 : NZGD49 / North Island Grid
+--- EPSG 20356 : AGD84 / AMG zone 56
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27291,'EPSG',27291,'PROJCS["NZGD49 / North Island Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["Brit [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20356,'EPSG',20356,'PROJCS["AGD84 / AMG zone 56",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 27292 : NZGD49 / South Island Grid
+--- EPSG 20357 : AGD84 / AMG zone 57 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27292,'EPSG',27292,'PROJCS["NZGD49 / South Island Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["Brit [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20357,'EPSG',20357,'PROJCS["AGD84 / AMG zone 57 (deprecated)",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Tra [...]
 ---
---- EPSG 27391 : NGO 1948 (Oslo) / NGO zone I
+--- EPSG 20358 : AGD84 / AMG zone 58 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27391,'EPSG',27391,'PROJCS["NGO 1948 (Oslo) / NGO zone I",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20358,'EPSG',20358,'PROJCS["AGD84 / AMG zone 58 (deprecated)",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],PROJECTION["Tra [...]
 ---
---- EPSG 27392 : NGO 1948 (Oslo) / NGO zone II
+--- EPSG 20436 : Ain el Abd / UTM zone 36N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27392,'EPSG',27392,'PROJCS["NGO 1948 (Oslo) / NGO zone II",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20436,'EPSG',20436,'PROJCS["Ain el Abd / UTM zone 36N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 27393 : NGO 1948 (Oslo) / NGO zone III
+--- EPSG 20437 : Ain el Abd / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27393,'EPSG',27393,'PROJCS["NGO 1948 (Oslo) / NGO zone III",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20437,'EPSG',20437,'PROJCS["Ain el Abd / UTM zone 37N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 27394 : NGO 1948 (Oslo) / NGO zone IV
+--- EPSG 20438 : Ain el Abd / UTM zone 38N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27394,'EPSG',27394,'PROJCS["NGO 1948 (Oslo) / NGO zone IV",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20438,'EPSG',20438,'PROJCS["Ain el Abd / UTM zone 38N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 27395 : NGO 1948 (Oslo) / NGO zone V
+--- EPSG 20439 : Ain el Abd / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27395,'EPSG',27395,'PROJCS["NGO 1948 (Oslo) / NGO zone V",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20439,'EPSG',20439,'PROJCS["Ain el Abd / UTM zone 39N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 27396 : NGO 1948 (Oslo) / NGO zone VI
+--- EPSG 20440 : Ain el Abd / UTM zone 40N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27396,'EPSG',27396,'PROJCS["NGO 1948 (Oslo) / NGO zone VI",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UN [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20440,'EPSG',20440,'PROJCS["Ain el Abd / UTM zone 40N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 27397 : NGO 1948 (Oslo) / NGO zone VII
+--- EPSG 20499 : Ain el Abd / Bahrain Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27397,'EPSG',27397,'PROJCS["NGO 1948 (Oslo) / NGO zone VII",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],U [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20499,'EPSG',20499,'PROJCS["Ain el Abd / Bahrain Grid",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 27398 : NGO 1948 (Oslo) / NGO zone VIII
+--- EPSG 20538 : Afgooye / UTM zone 38N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27398,'EPSG',27398,'PROJCS["NGO 1948 (Oslo) / NGO zone VIII",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20538,'EPSG',20538,'PROJCS["Afgooye / UTM zone 38N",GEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_orig [...]
 ---
---- EPSG 27429 : Datum 73 / UTM zone 29N
+--- EPSG 20539 : Afgooye / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27429,'EPSG',27429,'PROJCS["Datum 73 / UTM zone 29N",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20539,'EPSG',20539,'PROJCS["Afgooye / UTM zone 39N",GEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_orig [...]
 ---
---- EPSG 27492 : Datum 73 / Modified Portuguese Grid (deprecated)
+--- EPSG 20790 : Lisbon (Lisbon) / Portuguese National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27492,'EPSG',27492,'PROJCS["Datum 73 / Modified Portuguese Grid (deprecated)",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20790,'EPSG',20790,'PROJCS["Lisbon (Lisbon) / Portuguese National Grid",GEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","480 [...]
 ---
---- EPSG 27493 : Datum 73 / Modified Portuguese Grid
+--- EPSG 20791 : Lisbon (Lisbon) / Portuguese Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27493,'EPSG',27493,'PROJCS["Datum 73 / Modified Portuguese Grid",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],UNIT["metre",1,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20791,'EPSG',20791,'PROJCS["Lisbon (Lisbon) / Portuguese Grid",GEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4803"]],PROJ [...]
 ---
---- EPSG 27500 : ATF (Paris) / Nord de Guerre
+--- EPSG 20822 : Aratu / UTM zone 22S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27500,'EPSG',27500,'PROJCS["ATF (Paris) / Nord de Guerre",GEOGCS["ATF (Paris)",DATUM["Ancienne_Triangulation_Francaise_Paris",SPHEROID["Plessis 1817",6376523,308.64,AUTHORITY["EPSG","7027"]],AUTHORITY["EPSG","6901"]],PRIMEM["Paris RGS",2.337208333333333,AUTHORITY["EPSG","8914"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4901"]],UNIT["metre",1,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20822,'EPSG',20822,'PROJCS["Aratu / UTM zone 22S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-151.99,287.04,-147.45,0,0,0,0],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 27561 : NTF (Paris) / Lambert Nord France
+--- EPSG 20823 : Aratu / UTM zone 23S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27561,'EPSG',27561,'PROJCS["NTF (Paris) / Lambert Nord France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","48 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20823,'EPSG',20823,'PROJCS["Aratu / UTM zone 23S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-151.99,287.04,-147.45,0,0,0,0],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 27562 : NTF (Paris) / Lambert Centre France
+--- EPSG 20824 : Aratu / UTM zone 24S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27562,'EPSG',27562,'PROJCS["NTF (Paris) / Lambert Centre France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20824,'EPSG',20824,'PROJCS["Aratu / UTM zone 24S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-151.99,287.04,-147.45,0,0,0,0],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 27563 : NTF (Paris) / Lambert Sud France
+--- EPSG 20934 : Arc 1950 / UTM zone 34S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27563,'EPSG',27563,'PROJCS["NTF (Paris) / Lambert Sud France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","480 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20934,'EPSG',20934,'PROJCS["Arc 1950 / UTM zone 34S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-143,-90,-294,0,0,0,0],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 27564 : NTF (Paris) / Lambert Corse
+--- EPSG 20935 : Arc 1950 / UTM zone 35S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27564,'EPSG',27564,'PROJCS["NTF (Paris) / Lambert Corse",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20935,'EPSG',20935,'PROJCS["Arc 1950 / UTM zone 35S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-143,-90,-294,0,0,0,0],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 27571 : NTF (Paris) / Lambert zone I
+--- EPSG 20936 : Arc 1950 / UTM zone 36S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27571,'EPSG',27571,'PROJCS["NTF (Paris) / Lambert zone I",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (20936,'EPSG',20936,'PROJCS["Arc 1950 / UTM zone 36S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-143,-90,-294,0,0,0,0],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 27572 : NTF (Paris) / Lambert zone II
+--- EPSG 21035 : Arc 1960 / UTM zone 35S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27572,'EPSG',27572,'PROJCS["NTF (Paris) / Lambert zone II",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21035,'EPSG',21035,'PROJCS["Arc 1960 / UTM zone 35S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 27573 : NTF (Paris) / Lambert zone III
+--- EPSG 21036 : Arc 1960 / UTM zone 36S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27573,'EPSG',27573,'PROJCS["NTF (Paris) / Lambert zone III",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21036,'EPSG',21036,'PROJCS["Arc 1960 / UTM zone 36S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 27574 : NTF (Paris) / Lambert zone IV
+--- EPSG 21037 : Arc 1960 / UTM zone 37S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27574,'EPSG',27574,'PROJCS["NTF (Paris) / Lambert zone IV",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21037,'EPSG',21037,'PROJCS["Arc 1960 / UTM zone 37S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 27581 : NTF (Paris) / France I (deprecated)
+--- EPSG 21095 : Arc 1960 / UTM zone 35N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27581,'EPSG',27581,'PROJCS["NTF (Paris) / France I (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21095,'EPSG',21095,'PROJCS["Arc 1960 / UTM zone 35N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 27582 : NTF (Paris) / France II (deprecated)
+--- EPSG 21096 : Arc 1960 / UTM zone 36N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27582,'EPSG',27582,'PROJCS["NTF (Paris) / France II (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21096,'EPSG',21096,'PROJCS["Arc 1960 / UTM zone 36N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 27583 : NTF (Paris) / France III (deprecated)
+--- EPSG 21097 : Arc 1960 / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27583,'EPSG',27583,'PROJCS["NTF (Paris) / France III (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21097,'EPSG',21097,'PROJCS["Arc 1960 / UTM zone 37N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 27584 : NTF (Paris) / France IV (deprecated)
+--- EPSG 21100 : Batavia (Jakarta) / NEIEZ (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27584,'EPSG',27584,'PROJCS["NTF (Paris) / France IV (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21100,'EPSG',21100,'PROJCS["Batavia (Jakarta) / NEIEZ (deprecated)",GEOGCS["Batavia (Jakarta)",DATUM["Batavia_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6813"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4813"]],PROJEC [...]
 ---
---- EPSG 27591 : NTF (Paris) / Nord France (deprecated)
+--- EPSG 21148 : Batavia / UTM zone 48S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27591,'EPSG',27591,'PROJCS["NTF (Paris) / Nord France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21148,'EPSG',21148,'PROJCS["Batavia / UTM zone 48S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
---- EPSG 27592 : NTF (Paris) / Centre France (deprecated)
+--- EPSG 21149 : Batavia / UTM zone 49S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27592,'EPSG',27592,'PROJCS["NTF (Paris) / Centre France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EP [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21149,'EPSG',21149,'PROJCS["Batavia / UTM zone 49S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
---- EPSG 27593 : NTF (Paris) / Sud France (deprecated)
+--- EPSG 21150 : Batavia / UTM zone 50S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27593,'EPSG',27593,'PROJCS["NTF (Paris) / Sud France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21150,'EPSG',21150,'PROJCS["Batavia / UTM zone 50S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
---- EPSG 27594 : NTF (Paris) / Corse (deprecated)
+--- EPSG 21291 : Barbados 1938 / British West Indies Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27594,'EPSG',27594,'PROJCS["NTF (Paris) / Corse (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","480 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21291,'EPSG',21291,'PROJCS["Barbados 1938 / British West Indies Grid",GEOGCS["Barbados 1938",DATUM["Barbados_1938",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORITY["EPSG","6212"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4212"]],PROJECTION["Tra [...]
 ---
---- EPSG 27700 : OSGB 1936 / British National Grid
+--- EPSG 21292 : Barbados 1938 / Barbados National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27700,'EPSG',27700,'PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21292,'EPSG',21292,'PROJCS["Barbados 1938 / Barbados National Grid",GEOGCS["Barbados 1938",DATUM["Barbados_1938",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORITY["EPSG","6212"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4212"]],PROJECTION["Trans [...]
 ---
---- EPSG 28191 : Palestine 1923 / Palestine Grid
+--- EPSG 21413 : Beijing 1954 / Gauss-Kruger zone 13
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28191,'EPSG',28191,'PROJCS["Palestine 1923 / Palestine Grid",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21413,'EPSG',21413,'PROJCS["Beijing 1954 / Gauss-Kruger zone 13",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28192 : Palestine 1923 / Palestine Belt
+--- EPSG 21414 : Beijing 1954 / Gauss-Kruger zone 14
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28192,'EPSG',28192,'PROJCS["Palestine 1923 / Palestine Belt",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21414,'EPSG',21414,'PROJCS["Beijing 1954 / Gauss-Kruger zone 14",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28193 : Palestine 1923 / Israeli CS Grid
+--- EPSG 21415 : Beijing 1954 / Gauss-Kruger zone 15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28193,'EPSG',28193,'PROJCS["Palestine 1923 / Israeli CS Grid",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21415,'EPSG',21415,'PROJCS["Beijing 1954 / Gauss-Kruger zone 15",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28232 : Pointe Noire / UTM zone 32S
+--- EPSG 21416 : Beijing 1954 / Gauss-Kruger zone 16
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28232,'EPSG',28232,'PROJCS["Pointe Noire / UTM zone 32S",GEOGCS["Pointe Noire",DATUM["Congo_1960_Pointe_Noire",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-148,51,-291,0,0,0,0],AUTHORITY["EPSG","6282"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4282"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21416,'EPSG',21416,'PROJCS["Beijing 1954 / Gauss-Kruger zone 16",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28348 : GDA94 / MGA zone 48
+--- EPSG 21417 : Beijing 1954 / Gauss-Kruger zone 17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28348,'EPSG',28348,'PROJCS["GDA94 / MGA zone 48",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21417,'EPSG',21417,'PROJCS["Beijing 1954 / Gauss-Kruger zone 17",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28349 : GDA94 / MGA zone 49
+--- EPSG 21418 : Beijing 1954 / Gauss-Kruger zone 18
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28349,'EPSG',28349,'PROJCS["GDA94 / MGA zone 49",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21418,'EPSG',21418,'PROJCS["Beijing 1954 / Gauss-Kruger zone 18",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28350 : GDA94 / MGA zone 50
+--- EPSG 21419 : Beijing 1954 / Gauss-Kruger zone 19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28350,'EPSG',28350,'PROJCS["GDA94 / MGA zone 50",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21419,'EPSG',21419,'PROJCS["Beijing 1954 / Gauss-Kruger zone 19",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28351 : GDA94 / MGA zone 51
+--- EPSG 21420 : Beijing 1954 / Gauss-Kruger zone 20
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28351,'EPSG',28351,'PROJCS["GDA94 / MGA zone 51",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21420,'EPSG',21420,'PROJCS["Beijing 1954 / Gauss-Kruger zone 20",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28352 : GDA94 / MGA zone 52
+--- EPSG 21421 : Beijing 1954 / Gauss-Kruger zone 21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28352,'EPSG',28352,'PROJCS["GDA94 / MGA zone 52",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21421,'EPSG',21421,'PROJCS["Beijing 1954 / Gauss-Kruger zone 21",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28353 : GDA94 / MGA zone 53
+--- EPSG 21422 : Beijing 1954 / Gauss-Kruger zone 22
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28353,'EPSG',28353,'PROJCS["GDA94 / MGA zone 53",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21422,'EPSG',21422,'PROJCS["Beijing 1954 / Gauss-Kruger zone 22",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28354 : GDA94 / MGA zone 54
+--- EPSG 21423 : Beijing 1954 / Gauss-Kruger zone 23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28354,'EPSG',28354,'PROJCS["GDA94 / MGA zone 54",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21423,'EPSG',21423,'PROJCS["Beijing 1954 / Gauss-Kruger zone 23",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28355 : GDA94 / MGA zone 55
+--- EPSG 21453 : Beijing 1954 / Gauss-Kruger CM 75E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28355,'EPSG',28355,'PROJCS["GDA94 / MGA zone 55",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21453,'EPSG',21453,'PROJCS["Beijing 1954 / Gauss-Kruger CM 75E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28356 : GDA94 / MGA zone 56
+--- EPSG 21454 : Beijing 1954 / Gauss-Kruger CM 81E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28356,'EPSG',28356,'PROJCS["GDA94 / MGA zone 56",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21454,'EPSG',21454,'PROJCS["Beijing 1954 / Gauss-Kruger CM 81E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28357 : GDA94 / MGA zone 57
+--- EPSG 21455 : Beijing 1954 / Gauss-Kruger CM 87E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28357,'EPSG',28357,'PROJCS["GDA94 / MGA zone 57",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21455,'EPSG',21455,'PROJCS["Beijing 1954 / Gauss-Kruger CM 87E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28358 : GDA94 / MGA zone 58
+--- EPSG 21456 : Beijing 1954 / Gauss-Kruger CM 93E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28358,'EPSG',28358,'PROJCS["GDA94 / MGA zone 58",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21456,'EPSG',21456,'PROJCS["Beijing 1954 / Gauss-Kruger CM 93E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28402 : Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)
+--- EPSG 21457 : Beijing 1954 / Gauss-Kruger CM 99E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28402,'EPSG',28402,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21457,'EPSG',21457,'PROJCS["Beijing 1954 / Gauss-Kruger CM 99E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28403 : Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)
+--- EPSG 21458 : Beijing 1954 / Gauss-Kruger CM 105E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28403,'EPSG',28403,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21458,'EPSG',21458,'PROJCS["Beijing 1954 / Gauss-Kruger CM 105E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28404 : Pulkovo 1942 / Gauss-Kruger zone 4
+--- EPSG 21459 : Beijing 1954 / Gauss-Kruger CM 111E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28404,'EPSG',28404,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21459,'EPSG',21459,'PROJCS["Beijing 1954 / Gauss-Kruger CM 111E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28405 : Pulkovo 1942 / Gauss-Kruger zone 5
+--- EPSG 21460 : Beijing 1954 / Gauss-Kruger CM 117E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28405,'EPSG',28405,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21460,'EPSG',21460,'PROJCS["Beijing 1954 / Gauss-Kruger CM 117E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28406 : Pulkovo 1942 / Gauss-Kruger zone 6
+--- EPSG 21461 : Beijing 1954 / Gauss-Kruger CM 123E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28406,'EPSG',28406,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21461,'EPSG',21461,'PROJCS["Beijing 1954 / Gauss-Kruger CM 123E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28407 : Pulkovo 1942 / Gauss-Kruger zone 7
+--- EPSG 21462 : Beijing 1954 / Gauss-Kruger CM 129E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28407,'EPSG',28407,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21462,'EPSG',21462,'PROJCS["Beijing 1954 / Gauss-Kruger CM 129E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28408 : Pulkovo 1942 / Gauss-Kruger zone 8
+--- EPSG 21463 : Beijing 1954 / Gauss-Kruger CM 135E
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28408,'EPSG',28408,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21463,'EPSG',21463,'PROJCS["Beijing 1954 / Gauss-Kruger CM 135E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 28409 : Pulkovo 1942 / Gauss-Kruger zone 9
+--- EPSG 21473 : Beijing 1954 / Gauss-Kruger 13N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28409,'EPSG',28409,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21473,'EPSG',21473,'PROJCS["Beijing 1954 / Gauss-Kruger 13N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28410 : Pulkovo 1942 / Gauss-Kruger zone 10
+--- EPSG 21474 : Beijing 1954 / Gauss-Kruger 14N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28410,'EPSG',28410,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21474,'EPSG',21474,'PROJCS["Beijing 1954 / Gauss-Kruger 14N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28411 : Pulkovo 1942 / Gauss-Kruger zone 11
+--- EPSG 21475 : Beijing 1954 / Gauss-Kruger 15N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28411,'EPSG',28411,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 11",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21475,'EPSG',21475,'PROJCS["Beijing 1954 / Gauss-Kruger 15N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28412 : Pulkovo 1942 / Gauss-Kruger zone 12
+--- EPSG 21476 : Beijing 1954 / Gauss-Kruger 16N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28412,'EPSG',28412,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 12",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21476,'EPSG',21476,'PROJCS["Beijing 1954 / Gauss-Kruger 16N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28413 : Pulkovo 1942 / Gauss-Kruger zone 13
+--- EPSG 21477 : Beijing 1954 / Gauss-Kruger 17N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28413,'EPSG',28413,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 13",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21477,'EPSG',21477,'PROJCS["Beijing 1954 / Gauss-Kruger 17N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28414 : Pulkovo 1942 / Gauss-Kruger zone 14
+--- EPSG 21478 : Beijing 1954 / Gauss-Kruger 18N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28414,'EPSG',28414,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 14",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21478,'EPSG',21478,'PROJCS["Beijing 1954 / Gauss-Kruger 18N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28415 : Pulkovo 1942 / Gauss-Kruger zone 15
+--- EPSG 21479 : Beijing 1954 / Gauss-Kruger 19N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28415,'EPSG',28415,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 15",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21479,'EPSG',21479,'PROJCS["Beijing 1954 / Gauss-Kruger 19N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28416 : Pulkovo 1942 / Gauss-Kruger zone 16
+--- EPSG 21480 : Beijing 1954 / Gauss-Kruger 20N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28416,'EPSG',28416,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 16",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21480,'EPSG',21480,'PROJCS["Beijing 1954 / Gauss-Kruger 20N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28417 : Pulkovo 1942 / Gauss-Kruger zone 17
+--- EPSG 21481 : Beijing 1954 / Gauss-Kruger 21N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28417,'EPSG',28417,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 17",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21481,'EPSG',21481,'PROJCS["Beijing 1954 / Gauss-Kruger 21N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28418 : Pulkovo 1942 / Gauss-Kruger zone 18
+--- EPSG 21482 : Beijing 1954 / Gauss-Kruger 22N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28418,'EPSG',28418,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 18",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21482,'EPSG',21482,'PROJCS["Beijing 1954 / Gauss-Kruger 22N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28419 : Pulkovo 1942 / Gauss-Kruger zone 19
+--- EPSG 21483 : Beijing 1954 / Gauss-Kruger 23N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28419,'EPSG',28419,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 19",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21483,'EPSG',21483,'PROJCS["Beijing 1954 / Gauss-Kruger 23N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 28420 : Pulkovo 1942 / Gauss-Kruger zone 20
+--- EPSG 21500 : Belge 1950 (Brussels) / Belge Lambert 50
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28420,'EPSG',28420,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 20",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21500,'EPSG',21500,'PROJCS["Belge 1950 (Brussels) / Belge Lambert 50",GEOGCS["Belge 1950 (Brussels)",DATUM["Reseau_National_Belge_1950_Brussels",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6809"]],PRIMEM["Brussels",4.367975,AUTHORITY["EPSG","8910"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4809"]],PROJECTION["Lambert_Con [...]
 ---
---- EPSG 28421 : Pulkovo 1942 / Gauss-Kruger zone 21
+--- EPSG 21780 : Bern 1898 (Bern) / LV03C
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28421,'EPSG',28421,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 21",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21780,'EPSG',21780,'PROJCS["Bern 1898 (Bern) / LV03C",GEOGCS["Bern 1898 (Bern)",DATUM["CH1903_Bern",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY["EPSG","6801"]],PRIMEM["Bern",7.439583333333333,AUTHORITY["EPSG","8907"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4801"]],PROJECTION["Hotine_Obliq [...]
 ---
---- EPSG 28422 : Pulkovo 1942 / Gauss-Kruger zone 22
+--- EPSG 21781 : CH1903 / LV03
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28422,'EPSG',28422,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 22",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21781,'EPSG',21781,'PROJCS["CH1903 / LV03",GEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAMETE [...]
 ---
---- EPSG 28423 : Pulkovo 1942 / Gauss-Kruger zone 23
+--- EPSG 21782 : CH1903 / LV03C-G
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28423,'EPSG',28423,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 23",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21782,'EPSG',21782,'PROJCS["CH1903 / LV03C-G",GEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAM [...]
 ---
---- EPSG 28424 : Pulkovo 1942 / Gauss-Kruger zone 24
+--- EPSG 21817 : Bogota 1975 / UTM zone 17N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28424,'EPSG',28424,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 24",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21817,'EPSG',21817,'PROJCS["Bogota 1975 / UTM zone 17N (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 28425 : Pulkovo 1942 / Gauss-Kruger zone 25
+--- EPSG 21818 : Bogota 1975 / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28425,'EPSG',28425,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 25",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21818,'EPSG',21818,'PROJCS["Bogota 1975 / UTM zone 18N",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
 ---
---- EPSG 28426 : Pulkovo 1942 / Gauss-Kruger zone 26
+--- EPSG 21891 : Bogota 1975 / Colombia West zone (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28426,'EPSG',28426,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 26",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21891,'EPSG',21891,'PROJCS["Bogota 1975 / Colombia West zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 28427 : Pulkovo 1942 / Gauss-Kruger zone 27
+--- EPSG 21892 : Bogota 1975 / Colombia Bogota zone (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28427,'EPSG',28427,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 27",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21892,'EPSG',21892,'PROJCS["Bogota 1975 / Colombia Bogota zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transverse_Mer [...]
 ---
---- EPSG 28428 : Pulkovo 1942 / Gauss-Kruger zone 28
+--- EPSG 21893 : Bogota 1975 / Colombia East Central zone (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28428,'EPSG',28428,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 28",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21893,'EPSG',21893,'PROJCS["Bogota 1975 / Colombia East Central zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transver [...]
 ---
---- EPSG 28429 : Pulkovo 1942 / Gauss-Kruger zone 29
+--- EPSG 21894 : Bogota 1975 / Colombia East (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28429,'EPSG',28429,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 29",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21894,'EPSG',21894,'PROJCS["Bogota 1975 / Colombia East (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28430 : Pulkovo 1942 / Gauss-Kruger zone 30
+--- EPSG 21896 : Bogota 1975 / Colombia West zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28430,'EPSG',28430,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 30",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21896,'EPSG',21896,'PROJCS["Bogota 1975 / Colombia West zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transverse_Mercator"],PARAMET [...]
 ---
---- EPSG 28431 : Pulkovo 1942 / Gauss-Kruger zone 31
+--- EPSG 21897 : Bogota 1975 / Colombia Bogota zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28431,'EPSG',28431,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 31",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21897,'EPSG',21897,'PROJCS["Bogota 1975 / Colombia Bogota zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transverse_Mercator"],PARAM [...]
 ---
---- EPSG 28432 : Pulkovo 1942 / Gauss-Kruger zone 32
+--- EPSG 21898 : Bogota 1975 / Colombia East Central zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28432,'EPSG',28432,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 32",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21898,'EPSG',21898,'PROJCS["Bogota 1975 / Colombia East Central zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28462 : Pulkovo 1942 / Gauss-Kruger 2N (deprecated)
+--- EPSG 21899 : Bogota 1975 / Colombia East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28462,'EPSG',28462,'PROJCS["Pulkovo 1942 / Gauss-Kruger 2N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (21899,'EPSG',21899,'PROJCS["Bogota 1975 / Colombia East",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 28463 : Pulkovo 1942 / Gauss-Kruger 3N (deprecated)
+--- EPSG 22032 : Camacupa / UTM zone 32S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28463,'EPSG',28463,'PROJCS["Pulkovo 1942 / Gauss-Kruger 3N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22032,'EPSG',22032,'PROJCS["Camacupa / UTM zone 32S",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 28464 : Pulkovo 1942 / Gauss-Kruger 4N (deprecated)
+--- EPSG 22033 : Camacupa / UTM zone 33S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28464,'EPSG',28464,'PROJCS["Pulkovo 1942 / Gauss-Kruger 4N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22033,'EPSG',22033,'PROJCS["Camacupa / UTM zone 33S",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 28465 : Pulkovo 1942 / Gauss-Kruger 5N (deprecated)
+--- EPSG 22091 : Camacupa / TM 11.30 SE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28465,'EPSG',28465,'PROJCS["Pulkovo 1942 / Gauss-Kruger 5N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22091,'EPSG',22091,'PROJCS["Camacupa / TM 11.30 SE",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
 ---
---- EPSG 28466 : Pulkovo 1942 / Gauss-Kruger 6N (deprecated)
+--- EPSG 22092 : Camacupa / TM 12 SE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28466,'EPSG',28466,'PROJCS["Pulkovo 1942 / Gauss-Kruger 6N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22092,'EPSG',22092,'PROJCS["Camacupa / TM 12 SE",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
 ---
---- EPSG 28467 : Pulkovo 1942 / Gauss-Kruger 7N (deprecated)
+--- EPSG 22171 : POSGAR 98 / Argentina 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28467,'EPSG',28467,'PROJCS["Pulkovo 1942 / Gauss-Kruger 7N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22171,'EPSG',22171,'PROJCS["POSGAR 98 / Argentina 1",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28468 : Pulkovo 1942 / Gauss-Kruger 8N (deprecated)
+--- EPSG 22172 : POSGAR 98 / Argentina 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28468,'EPSG',28468,'PROJCS["Pulkovo 1942 / Gauss-Kruger 8N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22172,'EPSG',22172,'PROJCS["POSGAR 98 / Argentina 2",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28469 : Pulkovo 1942 / Gauss-Kruger 9N (deprecated)
+--- EPSG 22173 : POSGAR 98 / Argentina 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28469,'EPSG',28469,'PROJCS["Pulkovo 1942 / Gauss-Kruger 9N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22173,'EPSG',22173,'PROJCS["POSGAR 98 / Argentina 3",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28470 : Pulkovo 1942 / Gauss-Kruger 10N (deprecated)
+--- EPSG 22174 : POSGAR 98 / Argentina 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28470,'EPSG',28470,'PROJCS["Pulkovo 1942 / Gauss-Kruger 10N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22174,'EPSG',22174,'PROJCS["POSGAR 98 / Argentina 4",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28471 : Pulkovo 1942 / Gauss-Kruger 11N (deprecated)
+--- EPSG 22175 : POSGAR 98 / Argentina 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28471,'EPSG',28471,'PROJCS["Pulkovo 1942 / Gauss-Kruger 11N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22175,'EPSG',22175,'PROJCS["POSGAR 98 / Argentina 5",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28472 : Pulkovo 1942 / Gauss-Kruger 12N (deprecated)
+--- EPSG 22176 : POSGAR 98 / Argentina 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28472,'EPSG',28472,'PROJCS["Pulkovo 1942 / Gauss-Kruger 12N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22176,'EPSG',22176,'PROJCS["POSGAR 98 / Argentina 6",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28473 : Pulkovo 1942 / Gauss-Kruger 13N (deprecated)
+--- EPSG 22177 : POSGAR 98 / Argentina 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28473,'EPSG',28473,'PROJCS["Pulkovo 1942 / Gauss-Kruger 13N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22177,'EPSG',22177,'PROJCS["POSGAR 98 / Argentina 7",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 28474 : Pulkovo 1942 / Gauss-Kruger 14N (deprecated)
+--- EPSG 22181 : POSGAR 94 / Argentina 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28474,'EPSG',28474,'PROJCS["Pulkovo 1942 / Gauss-Kruger 14N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22181,'EPSG',22181,'PROJCS["POSGAR 94 / Argentina 1",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 28475 : Pulkovo 1942 / Gauss-Kruger 15N (deprecated)
+--- EPSG 22182 : POSGAR 94 / Argentina 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28475,'EPSG',28475,'PROJCS["Pulkovo 1942 / Gauss-Kruger 15N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22182,'EPSG',22182,'PROJCS["POSGAR 94 / Argentina 2",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 28476 : Pulkovo 1942 / Gauss-Kruger 16N (deprecated)
+--- EPSG 22183 : POSGAR 94 / Argentina 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28476,'EPSG',28476,'PROJCS["Pulkovo 1942 / Gauss-Kruger 16N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22183,'EPSG',22183,'PROJCS["POSGAR 94 / Argentina 3",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 28477 : Pulkovo 1942 / Gauss-Kruger 17N (deprecated)
+--- EPSG 22184 : POSGAR 94 / Argentina 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28477,'EPSG',28477,'PROJCS["Pulkovo 1942 / Gauss-Kruger 17N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22184,'EPSG',22184,'PROJCS["POSGAR 94 / Argentina 4",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 28478 : Pulkovo 1942 / Gauss-Kruger 18N (deprecated)
+--- EPSG 22185 : POSGAR 94 / Argentina 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28478,'EPSG',28478,'PROJCS["Pulkovo 1942 / Gauss-Kruger 18N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22185,'EPSG',22185,'PROJCS["POSGAR 94 / Argentina 5",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 28479 : Pulkovo 1942 / Gauss-Kruger 19N (deprecated)
+--- EPSG 22186 : POSGAR 94 / Argentina 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28479,'EPSG',28479,'PROJCS["Pulkovo 1942 / Gauss-Kruger 19N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22186,'EPSG',22186,'PROJCS["POSGAR 94 / Argentina 6",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 28480 : Pulkovo 1942 / Gauss-Kruger 20N (deprecated)
+--- EPSG 22187 : POSGAR 94 / Argentina 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28480,'EPSG',28480,'PROJCS["Pulkovo 1942 / Gauss-Kruger 20N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22187,'EPSG',22187,'PROJCS["POSGAR 94 / Argentina 7",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 28481 : Pulkovo 1942 / Gauss-Kruger 21N (deprecated)
+--- EPSG 22191 : Campo Inchauspe / Argentina 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28481,'EPSG',28481,'PROJCS["Pulkovo 1942 / Gauss-Kruger 21N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22191,'EPSG',22191,'PROJCS["Campo Inchauspe / Argentina 1",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 28482 : Pulkovo 1942 / Gauss-Kruger 22N (deprecated)
+--- EPSG 22192 : Campo Inchauspe / Argentina 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28482,'EPSG',28482,'PROJCS["Pulkovo 1942 / Gauss-Kruger 22N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22192,'EPSG',22192,'PROJCS["Campo Inchauspe / Argentina 2",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 28483 : Pulkovo 1942 / Gauss-Kruger 23N (deprecated)
+--- EPSG 22193 : Campo Inchauspe / Argentina 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28483,'EPSG',28483,'PROJCS["Pulkovo 1942 / Gauss-Kruger 23N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22193,'EPSG',22193,'PROJCS["Campo Inchauspe / Argentina 3",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 28484 : Pulkovo 1942 / Gauss-Kruger 24N (deprecated)
+--- EPSG 22194 : Campo Inchauspe / Argentina 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28484,'EPSG',28484,'PROJCS["Pulkovo 1942 / Gauss-Kruger 24N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22194,'EPSG',22194,'PROJCS["Campo Inchauspe / Argentina 4",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 28485 : Pulkovo 1942 / Gauss-Kruger 25N (deprecated)
+--- EPSG 22195 : Campo Inchauspe / Argentina 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28485,'EPSG',28485,'PROJCS["Pulkovo 1942 / Gauss-Kruger 25N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22195,'EPSG',22195,'PROJCS["Campo Inchauspe / Argentina 5",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 28486 : Pulkovo 1942 / Gauss-Kruger 26N (deprecated)
+--- EPSG 22196 : Campo Inchauspe / Argentina 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28486,'EPSG',28486,'PROJCS["Pulkovo 1942 / Gauss-Kruger 26N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22196,'EPSG',22196,'PROJCS["Campo Inchauspe / Argentina 6",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 28487 : Pulkovo 1942 / Gauss-Kruger 27N (deprecated)
+--- EPSG 22197 : Campo Inchauspe / Argentina 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28487,'EPSG',28487,'PROJCS["Pulkovo 1942 / Gauss-Kruger 27N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22197,'EPSG',22197,'PROJCS["Campo Inchauspe / Argentina 7",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],PROJECTION["Transverse_Mercator"],PAR [...]
 ---
---- EPSG 28488 : Pulkovo 1942 / Gauss-Kruger 28N (deprecated)
+--- EPSG 22234 : Cape / UTM zone 34S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28488,'EPSG',28488,'PROJCS["Pulkovo 1942 / Gauss-Kruger 28N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22234,'EPSG',22234,'PROJCS["Cape / UTM zone 34S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 28489 : Pulkovo 1942 / Gauss-Kruger 29N (deprecated)
+--- EPSG 22235 : Cape / UTM zone 35S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28489,'EPSG',28489,'PROJCS["Pulkovo 1942 / Gauss-Kruger 29N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22235,'EPSG',22235,'PROJCS["Cape / UTM zone 35S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 28490 : Pulkovo 1942 / Gauss-Kruger 30N (deprecated)
+--- EPSG 22236 : Cape / UTM zone 36S (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28490,'EPSG',28490,'PROJCS["Pulkovo 1942 / Gauss-Kruger 30N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22236,'EPSG',22236,'PROJCS["Cape / UTM zone 36S (deprecated)",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
 ---
---- EPSG 28491 : Pulkovo 1942 / Gauss-Kruger 31N (deprecated)
+--- EPSG 22275 : Cape / Lo15
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28491,'EPSG',28491,'PROJCS["Pulkovo 1942 / Gauss-Kruger 31N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22275,'EPSG',22275,'PROJCS["Cape / Lo15",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 28492 : Pulkovo 1942 / Gauss-Kruger 32N (deprecated)
+--- EPSG 22277 : Cape / Lo17
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28492,'EPSG',28492,'PROJCS["Pulkovo 1942 / Gauss-Kruger 32N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,-0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22277,'EPSG',22277,'PROJCS["Cape / Lo17",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 28600 : Qatar 1974 / Qatar National Grid
+--- EPSG 22279 : Cape / Lo19
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28600,'EPSG',28600,'PROJCS["Qatar 1974 / Qatar National Grid",GEOGCS["Qatar 1974",DATUM["Qatar_1974",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-128,-283,22,0,0,0,0],AUTHORITY["EPSG","6285"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4285"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22279,'EPSG',22279,'PROJCS["Cape / Lo19",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 28991 : Amersfoort / RD Old
+--- EPSG 22281 : Cape / Lo21
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28991,'EPSG',28991,'PROJCS["Amersfoort / RD Old",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22281,'EPSG',22281,'PROJCS["Cape / Lo21",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 28992 : Amersfoort / RD New
+--- EPSG 22283 : Cape / Lo23
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28992,'EPSG',28992,'PROJCS["Amersfoort / RD New",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22283,'EPSG',22283,'PROJCS["Cape / Lo23",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 29100 : SAD69 / Brazil Polyconic (deprecated)
+--- EPSG 22285 : Cape / Lo25
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29100,'EPSG',29100,'PROJCS["SAD69 / Brazil Polyconic (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22285,'EPSG',22285,'PROJCS["Cape / Lo25",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 29101 : SAD69 / Brazil Polyconic
+--- EPSG 22287 : Cape / Lo27
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29101,'EPSG',29101,'PROJCS["SAD69 / Brazil Polyconic",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22287,'EPSG',22287,'PROJCS["Cape / Lo27",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 29118 : SAD69 / UTM zone 18N (deprecated)
+--- EPSG 22289 : Cape / Lo29
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29118,'EPSG',29118,'PROJCS["SAD69 / UTM zone 18N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22289,'EPSG',22289,'PROJCS["Cape / Lo29",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 29119 : SAD69 / UTM zone 19N (deprecated)
+--- EPSG 22291 : Cape / Lo31
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29119,'EPSG',29119,'PROJCS["SAD69 / UTM zone 19N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22291,'EPSG',22291,'PROJCS["Cape / Lo31",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 29120 : SAD69 / UTM zone 20N (deprecated)
+--- EPSG 22293 : Cape / Lo33
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29120,'EPSG',29120,'PROJCS["SAD69 / UTM zone 20N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22293,'EPSG',22293,'PROJCS["Cape / Lo33",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],PROJECTION["Transverse_Mercator_South_Orientated"],PARAMETER["l [...]
 ---
---- EPSG 29121 : SAD69 / UTM zone 21N (deprecated)
+--- EPSG 22300 : Carthage (Paris) / Tunisia Mining Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29121,'EPSG',29121,'PROJCS["SAD69 / UTM zone 21N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22300,'EPSG',22300,'PROJCS["Carthage (Paris) / Tunisia Mining Grid",GEOGCS["Carthage (Paris)",DATUM["Carthage_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6816"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4816"]],PROJECTION [...]
 ---
---- EPSG 29122 : SAD69 / UTM zone 22N (deprecated)
+--- EPSG 22332 : Carthage / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29122,'EPSG',29122,'PROJCS["SAD69 / UTM zone 22N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22332,'EPSG',22332,'PROJCS["Carthage / UTM zone 32N",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],PROJECTION["Transverse_Mercator"],PARAMETER [...]
 ---
---- EPSG 29168 : SAD69 / UTM zone 18N
+--- EPSG 22391 : Carthage / Nord Tunisie
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29168,'EPSG',29168,'PROJCS["SAD69 / UTM zone 18N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22391,'EPSG',22391,'PROJCS["Carthage / Nord Tunisie",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],PROJECTION["Lambert_Conformal_Conic_1SP"],P [...]
 ---
---- EPSG 29169 : SAD69 / UTM zone 19N
+--- EPSG 22392 : Carthage / Sud Tunisie
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29169,'EPSG',29169,'PROJCS["SAD69 / UTM zone 19N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22392,'EPSG',22392,'PROJCS["Carthage / Sud Tunisie",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PA [...]
 ---
---- EPSG 29170 : SAD69 / UTM zone 20N
+--- EPSG 22521 : Corrego Alegre 1970-72 / UTM zone 21S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29170,'EPSG',29170,'PROJCS["SAD69 / UTM zone 20N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22521,'EPSG',22521,'PROJCS["Corrego Alegre 1970-72 / UTM zone 21S",GEOGCS["Corrego Alegre 1970-72",DATUM["Corrego_Alegre_1970_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-205.57,168.77,-4.12,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],PROJEC [...]
 ---
---- EPSG 29171 : SAD69 / UTM zone 21N
+--- EPSG 22522 : Corrego Alegre 1970-72 / UTM zone 22S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29171,'EPSG',29171,'PROJCS["SAD69 / UTM zone 21N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22522,'EPSG',22522,'PROJCS["Corrego Alegre 1970-72 / UTM zone 22S",GEOGCS["Corrego Alegre 1970-72",DATUM["Corrego_Alegre_1970_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-205.57,168.77,-4.12,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],PROJEC [...]
 ---
---- EPSG 29172 : SAD69 / UTM zone 22N
+--- EPSG 22523 : Corrego Alegre 1970-72 / UTM zone 23S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29172,'EPSG',29172,'PROJCS["SAD69 / UTM zone 22N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22523,'EPSG',22523,'PROJCS["Corrego Alegre 1970-72 / UTM zone 23S",GEOGCS["Corrego Alegre 1970-72",DATUM["Corrego_Alegre_1970_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-205.57,168.77,-4.12,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],PROJEC [...]
 ---
---- EPSG 29177 : SAD69 / UTM zone 17S (deprecated)
+--- EPSG 22524 : Corrego Alegre 1970-72 / UTM zone 24S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29177,'EPSG',29177,'PROJCS["SAD69 / UTM zone 17S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22524,'EPSG',22524,'PROJCS["Corrego Alegre 1970-72 / UTM zone 24S",GEOGCS["Corrego Alegre 1970-72",DATUM["Corrego_Alegre_1970_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-205.57,168.77,-4.12,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],PROJEC [...]
 ---
---- EPSG 29178 : SAD69 / UTM zone 18S (deprecated)
+--- EPSG 22525 : Corrego Alegre 1970-72 / UTM zone 25S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29178,'EPSG',29178,'PROJCS["SAD69 / UTM zone 18S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22525,'EPSG',22525,'PROJCS["Corrego Alegre 1970-72 / UTM zone 25S",GEOGCS["Corrego Alegre 1970-72",DATUM["Corrego_Alegre_1970_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-205.57,168.77,-4.12,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]],PROJEC [...]
 ---
---- EPSG 29179 : SAD69 / UTM zone 19S (deprecated)
+--- EPSG 22700 : Deir ez Zor / Levant Zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29179,'EPSG',29179,'PROJCS["SAD69 / UTM zone 19S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22700,'EPSG',22700,'PROJCS["Deir ez Zor / Levant Zone",GEOGCS["Deir ez Zor",DATUM["Deir_ez_Zor",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY["EPSG","6227"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4227"]],PROJECTION["Lambert_Conf [...]
 ---
---- EPSG 29180 : SAD69 / UTM zone 20S (deprecated)
+--- EPSG 22770 : Deir ez Zor / Syria Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29180,'EPSG',29180,'PROJCS["SAD69 / UTM zone 20S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22770,'EPSG',22770,'PROJCS["Deir ez Zor / Syria Lambert",GEOGCS["Deir ez Zor",DATUM["Deir_ez_Zor",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY["EPSG","6227"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4227"]],PROJECTION["Lambert_Co [...]
 ---
---- EPSG 29181 : SAD69 / UTM zone 21S (deprecated)
+--- EPSG 22780 : Deir ez Zor / Levant Stereographic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29181,'EPSG',29181,'PROJCS["SAD69 / UTM zone 21S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22780,'EPSG',22780,'PROJCS["Deir ez Zor / Levant Stereographic",GEOGCS["Deir ez Zor",DATUM["Deir_ez_Zor",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY["EPSG","6227"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4227"]],PROJECTION["Obl [...]
 ---
---- EPSG 29182 : SAD69 / UTM zone 22S (deprecated)
+--- EPSG 22832 : Douala / UTM zone 32N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29182,'EPSG',29182,'PROJCS["SAD69 / UTM zone 22S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22832,'EPSG',22832,'PROJCS["Douala / UTM zone 32N (deprecated)",GEOGCS["Douala",DATUM["Douala",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6228"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4228"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
---- EPSG 29183 : SAD69 / UTM zone 23S (deprecated)
+--- EPSG 22991 : Egypt 1907 / Blue Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29183,'EPSG',29183,'PROJCS["SAD69 / UTM zone 23S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22991,'EPSG',22991,'PROJCS["Egypt 1907 / Blue Belt",GEOGCS["Egypt 1907",DATUM["Egypt_1907",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY["EPSG","6229"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4229"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ [...]
 ---
---- EPSG 29184 : SAD69 / UTM zone 24S (deprecated)
+--- EPSG 22992 : Egypt 1907 / Red Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29184,'EPSG',29184,'PROJCS["SAD69 / UTM zone 24S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22992,'EPSG',22992,'PROJCS["Egypt 1907 / Red Belt",GEOGCS["Egypt 1907",DATUM["Egypt_1907",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY["EPSG","6229"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4229"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
 ---
---- EPSG 29185 : SAD69 / UTM zone 25S (deprecated)
+--- EPSG 22993 : Egypt 1907 / Purple Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29185,'EPSG',29185,'PROJCS["SAD69 / UTM zone 25S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22993,'EPSG',22993,'PROJCS["Egypt 1907 / Purple Belt",GEOGCS["Egypt 1907",DATUM["Egypt_1907",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY["EPSG","6229"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4229"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 29187 : SAD69 / UTM zone 17S
+--- EPSG 22994 : Egypt 1907 / Extended Purple Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29187,'EPSG',29187,'PROJCS["SAD69 / UTM zone 17S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (22994,'EPSG',22994,'PROJCS["Egypt 1907 / Extended Purple Belt",GEOGCS["Egypt 1907",DATUM["Egypt_1907",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY["EPSG","6229"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4229"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
 ---
---- EPSG 29188 : SAD69 / UTM zone 18S
+--- EPSG 23028 : ED50 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29188,'EPSG',29188,'PROJCS["SAD69 / UTM zone 18S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23028,'EPSG',23028,'PROJCS["ED50 / UTM zone 28N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29189 : SAD69 / UTM zone 19S
+--- EPSG 23029 : ED50 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29189,'EPSG',29189,'PROJCS["SAD69 / UTM zone 19S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23029,'EPSG',23029,'PROJCS["ED50 / UTM zone 29N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29190 : SAD69 / UTM zone 20S
+--- EPSG 23030 : ED50 / UTM zone 30N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29190,'EPSG',29190,'PROJCS["SAD69 / UTM zone 20S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23030,'EPSG',23030,'PROJCS["ED50 / UTM zone 30N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29191 : SAD69 / UTM zone 21S
+--- EPSG 23031 : ED50 / UTM zone 31N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29191,'EPSG',29191,'PROJCS["SAD69 / UTM zone 21S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23031,'EPSG',23031,'PROJCS["ED50 / UTM zone 31N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29192 : SAD69 / UTM zone 22S
+--- EPSG 23032 : ED50 / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29192,'EPSG',29192,'PROJCS["SAD69 / UTM zone 22S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23032,'EPSG',23032,'PROJCS["ED50 / UTM zone 32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29193 : SAD69 / UTM zone 23S
+--- EPSG 23033 : ED50 / UTM zone 33N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29193,'EPSG',29193,'PROJCS["SAD69 / UTM zone 23S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23033,'EPSG',23033,'PROJCS["ED50 / UTM zone 33N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29194 : SAD69 / UTM zone 24S
+--- EPSG 23034 : ED50 / UTM zone 34N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29194,'EPSG',29194,'PROJCS["SAD69 / UTM zone 24S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23034,'EPSG',23034,'PROJCS["ED50 / UTM zone 34N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29195 : SAD69 / UTM zone 25S
+--- EPSG 23035 : ED50 / UTM zone 35N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29195,'EPSG',29195,'PROJCS["SAD69 / UTM zone 25S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23035,'EPSG',23035,'PROJCS["ED50 / UTM zone 35N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29220 : Sapper Hill 1943 / UTM zone 20S
+--- EPSG 23036 : ED50 / UTM zone 36N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29220,'EPSG',29220,'PROJCS["Sapper Hill 1943 / UTM zone 20S",GEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23036,'EPSG',23036,'PROJCS["ED50 / UTM zone 36N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29221 : Sapper Hill 1943 / UTM zone 21S
+--- EPSG 23037 : ED50 / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29221,'EPSG',29221,'PROJCS["Sapper Hill 1943 / UTM zone 21S",GEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23037,'EPSG',23037,'PROJCS["ED50 / UTM zone 37N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29333 : Schwarzeck / UTM zone 33S
+--- EPSG 23038 : ED50 / UTM zone 38N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29333,'EPSG',29333,'PROJCS["Schwarzeck / UTM zone 33S",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23038,'EPSG',23038,'PROJCS["ED50 / UTM zone 38N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
 ---
---- EPSG 29371 : Schwarzeck / Lo22/11
+--- EPSG 23090 : ED50 / TM 0 N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29371,'EPSG',29371,'PROJCS["Schwarzeck / Lo22/11",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["German legal metre",1.00001359 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23090,'EPSG',23090,'PROJCS["ED50 / TM 0 N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
---- EPSG 29373 : Schwarzeck / Lo22/13
+--- EPSG 23095 : ED50 / TM 5 NE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29373,'EPSG',29373,'PROJCS["Schwarzeck / Lo22/13",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["German legal metre",1.00001359 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23095,'EPSG',23095,'PROJCS["ED50 / TM 5 NE",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
 ---
---- EPSG 29375 : Schwarzeck / Lo22/15
+--- EPSG 23239 : Fahud / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29375,'EPSG',29375,'PROJCS["Schwarzeck / Lo22/15",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["German legal metre",1.00001359 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23239,'EPSG',23239,'PROJCS["Fahud / UTM zone 39N",GEOGCS["Fahud",DATUM["Fahud",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-346,-1,224,0,0,0,0],AUTHORITY["EPSG","6232"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4232"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
---- EPSG 29377 : Schwarzeck / Lo22/17
+--- EPSG 23240 : Fahud / UTM zone 40N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29377,'EPSG',29377,'PROJCS["Schwarzeck / Lo22/17",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["German legal metre",1.00001359 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23240,'EPSG',23240,'PROJCS["Fahud / UTM zone 40N",GEOGCS["Fahud",DATUM["Fahud",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-346,-1,224,0,0,0,0],AUTHORITY["EPSG","6232"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4232"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
---- EPSG 29379 : Schwarzeck / Lo22/19
+--- EPSG 23433 : Garoua / UTM zone 33N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29379,'EPSG',29379,'PROJCS["Schwarzeck / Lo22/19",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["German legal metre",1.00001359 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23433,'EPSG',23433,'PROJCS["Garoua / UTM zone 33N (deprecated)",GEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6234"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4234"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
 ---
---- EPSG 29381 : Schwarzeck / Lo22/21
+--- EPSG 23700 : HD72 / EOV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29381,'EPSG',29381,'PROJCS["Schwarzeck / Lo22/21",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["German legal metre",1.00001359 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23700,'EPSG',23700,'PROJCS["HD72 / EOV",GEOGCS["HD72",DATUM["Hungarian_Datum_1972",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[52.17,-71.82,-14.9,0,0,0,0],AUTHORITY["EPSG","6237"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4237"]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PA [...]
 ---
---- EPSG 29383 : Schwarzeck / Lo22/23
+--- EPSG 23830 : DGN95 / Indonesia TM-3 zone 46.2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29383,'EPSG',29383,'PROJCS["Schwarzeck / Lo22/23",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["German legal metre",1.00001359 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23830,'EPSG',23830,'PROJCS["DGN95 / Indonesia TM-3 zone 46.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29385 : Schwarzeck / Lo22/25
+--- EPSG 23831 : DGN95 / Indonesia TM-3 zone 47.1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29385,'EPSG',29385,'PROJCS["Schwarzeck / Lo22/25",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["German legal metre",1.00001359 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23831,'EPSG',23831,'PROJCS["DGN95 / Indonesia TM-3 zone 47.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29635 : Sudan / UTM zone 35N (deprecated)
+--- EPSG 23832 : DGN95 / Indonesia TM-3 zone 47.2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29635,'EPSG',29635,'PROJCS["Sudan / UTM zone 35N (deprecated)",GEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23832,'EPSG',23832,'PROJCS["DGN95 / Indonesia TM-3 zone 47.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29636 : Sudan / UTM zone 36N (deprecated)
+--- EPSG 23833 : DGN95 / Indonesia TM-3 zone 48.1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29636,'EPSG',29636,'PROJCS["Sudan / UTM zone 36N (deprecated)",GEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mer [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23833,'EPSG',23833,'PROJCS["DGN95 / Indonesia TM-3 zone 48.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29700 : Tananarive (Paris) / Laborde Grid (deprecated)
+--- EPSG 23834 : DGN95 / Indonesia TM-3 zone 48.2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29700,'EPSG',29700,'PROJCS["Tananarive (Paris) / Laborde Grid (deprecated)",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23834,'EPSG',23834,'PROJCS["DGN95 / Indonesia TM-3 zone 48.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29701 : Tananarive (Paris) / Laborde Grid
+--- EPSG 23835 : DGN95 / Indonesia TM-3 zone 49.1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29701,'EPSG',29701,'PROJCS["Tananarive (Paris) / Laborde Grid",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],UNIT["metre",1,AUT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23835,'EPSG',23835,'PROJCS["DGN95 / Indonesia TM-3 zone 49.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29702 : Tananarive (Paris) / Laborde Grid approximation
+--- EPSG 23836 : DGN95 / Indonesia TM-3 zone 49.2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29702,'EPSG',29702,'PROJCS["Tananarive (Paris) / Laborde Grid approximation",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],UNIT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23836,'EPSG',23836,'PROJCS["DGN95 / Indonesia TM-3 zone 49.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29738 : Tananarive / UTM zone 38S
+--- EPSG 23837 : DGN95 / Indonesia TM-3 zone 50.1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29738,'EPSG',29738,'PROJCS["Tananarive / UTM zone 38S",GEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23837,'EPSG',23837,'PROJCS["DGN95 / Indonesia TM-3 zone 50.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29739 : Tananarive / UTM zone 39S
+--- EPSG 23838 : DGN95 / Indonesia TM-3 zone 50.2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29739,'EPSG',29739,'PROJCS["Tananarive / UTM zone 39S",GEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23838,'EPSG',23838,'PROJCS["DGN95 / Indonesia TM-3 zone 50.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29849 : Timbalai 1948 / UTM zone 49N
+--- EPSG 23839 : DGN95 / Indonesia TM-3 zone 51.1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29849,'EPSG',29849,'PROJCS["Timbalai 1948 / UTM zone 49N",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23839,'EPSG',23839,'PROJCS["DGN95 / Indonesia TM-3 zone 51.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29850 : Timbalai 1948 / UTM zone 50N
+--- EPSG 23840 : DGN95 / Indonesia TM-3 zone 51.2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29850,'EPSG',29850,'PROJCS["Timbalai 1948 / UTM zone 50N",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23840,'EPSG',23840,'PROJCS["DGN95 / Indonesia TM-3 zone 51.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29871 : Timbalai 1948 / RSO Borneo (ch)
+--- EPSG 23841 : DGN95 / Indonesia TM-3 zone 52.1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29871,'EPSG',29871,'PROJCS["Timbalai 1948 / RSO Borneo (ch)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23841,'EPSG',23841,'PROJCS["DGN95 / Indonesia TM-3 zone 52.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29872 : Timbalai 1948 / RSO Borneo (ft)
+--- EPSG 23842 : DGN95 / Indonesia TM-3 zone 52.2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29872,'EPSG',29872,'PROJCS["Timbalai 1948 / RSO Borneo (ft)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23842,'EPSG',23842,'PROJCS["DGN95 / Indonesia TM-3 zone 52.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29873 : Timbalai 1948 / RSO Borneo (m)
+--- EPSG 23843 : DGN95 / Indonesia TM-3 zone 53.1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29873,'EPSG',29873,'PROJCS["Timbalai 1948 / RSO Borneo (m)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-533.4,669.2,-52.5,0,0,4.28,9.4],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23843,'EPSG',23843,'PROJCS["DGN95 / Indonesia TM-3 zone 53.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29900 : TM65 / Irish National Grid (deprecated)
+--- EPSG 23844 : DGN95 / Indonesia TM-3 zone 53.2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29900,'EPSG',29900,'PROJCS["TM65 / Irish National Grid (deprecated)",GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23844,'EPSG',23844,'PROJCS["DGN95 / Indonesia TM-3 zone 53.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29901 : OSNI 1952 / Irish National Grid
+--- EPSG 23845 : DGN95 / Indonesia TM-3 zone 54.1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29901,'EPSG',29901,'PROJCS["OSNI 1952 / Irish National Grid",GEOGCS["OSNI 1952",DATUM["OSNI_1952",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6188"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4188"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23845,'EPSG',23845,'PROJCS["DGN95 / Indonesia TM-3 zone 54.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29902 : TM65 / Irish Grid
+--- EPSG 23846 : ID74 / UTM zone 46N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29902,'EPSG',29902,'PROJCS["TM65 / Irish Grid",GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23846,'EPSG',23846,'PROJCS["ID74 / UTM zone 46N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 29903 : TM75 / Irish Grid
+--- EPSG 23847 : ID74 / UTM zone 47N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29903,'EPSG',29903,'PROJCS["TM75 / Irish Grid",GEOGCS["TM75",DATUM["Geodetic_Datum_of_1965",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6300"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4300"]],UNIT["metre",1,A [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23847,'EPSG',23847,'PROJCS["ID74 / UTM zone 47N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30161 : Tokyo / Japan Plane Rectangular CS I
+--- EPSG 23848 : ID74 / UTM zone 48N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30161,'EPSG',30161,'PROJCS["Tokyo / Japan Plane Rectangular CS I",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23848,'EPSG',23848,'PROJCS["ID74 / UTM zone 48N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30162 : Tokyo / Japan Plane Rectangular CS II
+--- EPSG 23849 : ID74 / UTM zone 49N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30162,'EPSG',30162,'PROJCS["Tokyo / Japan Plane Rectangular CS II",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23849,'EPSG',23849,'PROJCS["ID74 / UTM zone 49N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30163 : Tokyo / Japan Plane Rectangular CS III
+--- EPSG 23850 : ID74 / UTM zone 50N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30163,'EPSG',30163,'PROJCS["Tokyo / Japan Plane Rectangular CS III",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23850,'EPSG',23850,'PROJCS["ID74 / UTM zone 50N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30164 : Tokyo / Japan Plane Rectangular CS IV
+--- EPSG 23851 : ID74 / UTM zone 51N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30164,'EPSG',30164,'PROJCS["Tokyo / Japan Plane Rectangular CS IV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23851,'EPSG',23851,'PROJCS["ID74 / UTM zone 51N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30165 : Tokyo / Japan Plane Rectangular CS V
+--- EPSG 23852 : ID74 / UTM zone 52N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30165,'EPSG',30165,'PROJCS["Tokyo / Japan Plane Rectangular CS V",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23852,'EPSG',23852,'PROJCS["ID74 / UTM zone 52N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30166 : Tokyo / Japan Plane Rectangular CS VI
+--- EPSG 23853 : ID74 / UTM zone 53N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30166,'EPSG',30166,'PROJCS["Tokyo / Japan Plane Rectangular CS VI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23853,'EPSG',23853,'PROJCS["ID74 / UTM zone 53N (deprecated)",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Merc [...]
 ---
---- EPSG 30167 : Tokyo / Japan Plane Rectangular CS VII
+--- EPSG 23866 : DGN95 / UTM zone 46N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30167,'EPSG',30167,'PROJCS["Tokyo / Japan Plane Rectangular CS VII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23866,'EPSG',23866,'PROJCS["DGN95 / UTM zone 46N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30168 : Tokyo / Japan Plane Rectangular CS VIII
+--- EPSG 23867 : DGN95 / UTM zone 47N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30168,'EPSG',30168,'PROJCS["Tokyo / Japan Plane Rectangular CS VIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23867,'EPSG',23867,'PROJCS["DGN95 / UTM zone 47N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30169 : Tokyo / Japan Plane Rectangular CS IX
+--- EPSG 23868 : DGN95 / UTM zone 48N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30169,'EPSG',30169,'PROJCS["Tokyo / Japan Plane Rectangular CS IX",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23868,'EPSG',23868,'PROJCS["DGN95 / UTM zone 48N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30170 : Tokyo / Japan Plane Rectangular CS X
+--- EPSG 23869 : DGN95 / UTM zone 49N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30170,'EPSG',30170,'PROJCS["Tokyo / Japan Plane Rectangular CS X",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23869,'EPSG',23869,'PROJCS["DGN95 / UTM zone 49N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30171 : Tokyo / Japan Plane Rectangular CS XI
+--- EPSG 23870 : DGN95 / UTM zone 50N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30171,'EPSG',30171,'PROJCS["Tokyo / Japan Plane Rectangular CS XI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23870,'EPSG',23870,'PROJCS["DGN95 / UTM zone 50N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30172 : Tokyo / Japan Plane Rectangular CS XII
+--- EPSG 23871 : DGN95 / UTM zone 51N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30172,'EPSG',30172,'PROJCS["Tokyo / Japan Plane Rectangular CS XII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23871,'EPSG',23871,'PROJCS["DGN95 / UTM zone 51N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30173 : Tokyo / Japan Plane Rectangular CS XIII
+--- EPSG 23872 : DGN95 / UTM zone 52N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30173,'EPSG',30173,'PROJCS["Tokyo / Japan Plane Rectangular CS XIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23872,'EPSG',23872,'PROJCS["DGN95 / UTM zone 52N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30174 : Tokyo / Japan Plane Rectangular CS XIV
+--- EPSG 23877 : DGN95 / UTM zone 47S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30174,'EPSG',30174,'PROJCS["Tokyo / Japan Plane Rectangular CS XIV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23877,'EPSG',23877,'PROJCS["DGN95 / UTM zone 47S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30175 : Tokyo / Japan Plane Rectangular CS XV
+--- EPSG 23878 : DGN95 / UTM zone 48S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30175,'EPSG',30175,'PROJCS["Tokyo / Japan Plane Rectangular CS XV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23878,'EPSG',23878,'PROJCS["DGN95 / UTM zone 48S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30176 : Tokyo / Japan Plane Rectangular CS XVI
+--- EPSG 23879 : DGN95 / UTM zone 49S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30176,'EPSG',30176,'PROJCS["Tokyo / Japan Plane Rectangular CS XVI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23879,'EPSG',23879,'PROJCS["DGN95 / UTM zone 49S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30177 : Tokyo / Japan Plane Rectangular CS XVII
+--- EPSG 23880 : DGN95 / UTM zone 50S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30177,'EPSG',30177,'PROJCS["Tokyo / Japan Plane Rectangular CS XVII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23880,'EPSG',23880,'PROJCS["DGN95 / UTM zone 50S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30178 : Tokyo / Japan Plane Rectangular CS XVIII
+--- EPSG 23881 : DGN95 / UTM zone 51S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30178,'EPSG',30178,'PROJCS["Tokyo / Japan Plane Rectangular CS XVIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23881,'EPSG',23881,'PROJCS["DGN95 / UTM zone 51S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30179 : Tokyo / Japan Plane Rectangular CS XIX
+--- EPSG 23882 : DGN95 / UTM zone 52S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30179,'EPSG',30179,'PROJCS["Tokyo / Japan Plane Rectangular CS XIX",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23882,'EPSG',23882,'PROJCS["DGN95 / UTM zone 52S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30200 : Trinidad 1903 / Trinidad Grid
+--- EPSG 23883 : DGN95 / UTM zone 53S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30200,'EPSG',30200,'PROJCS["Trinidad 1903 / Trinidad Grid",GEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]],UNIT["Clarke [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23883,'EPSG',23883,'PROJCS["DGN95 / UTM zone 53S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30339 : TC(1948) / UTM zone 39N
+--- EPSG 23884 : DGN95 / UTM zone 54S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30339,'EPSG',30339,'PROJCS["TC(1948) / UTM zone 39N",GEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAM [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23884,'EPSG',23884,'PROJCS["DGN95 / UTM zone 54S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 30340 : TC(1948) / UTM zone 40N
+--- EPSG 23886 : ID74 / UTM zone 46S (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30340,'EPSG',30340,'PROJCS["TC(1948) / UTM zone 40N",GEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAM [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23886,'EPSG',23886,'PROJCS["ID74 / UTM zone 46S (deprecated)",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Merc [...]
 ---
---- EPSG 30491 : Voirol 1875 / Nord Algerie (ancienne)
+--- EPSG 23887 : ID74 / UTM zone 47S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30491,'EPSG',30491,'PROJCS["Voirol 1875 / Nord Algerie (ancienne)",GEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]],UNIT["metre",1,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23887,'EPSG',23887,'PROJCS["ID74 / UTM zone 47S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30492 : Voirol 1875 / Sud Algerie (ancienne)
+--- EPSG 23888 : ID74 / UTM zone 48S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30492,'EPSG',30492,'PROJCS["Voirol 1875 / Sud Algerie (ancienne)",GEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]],UNIT["metre",1,AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23888,'EPSG',23888,'PROJCS["ID74 / UTM zone 48S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30493 : Voirol 1879 / Nord Algerie (ancienne)
+--- EPSG 23889 : ID74 / UTM zone 49S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30493,'EPSG',30493,'PROJCS["Voirol 1879 / Nord Algerie (ancienne)",GEOGCS["Voirol 1879",DATUM["Voirol_1879",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6671"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4671"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23889,'EPSG',23889,'PROJCS["ID74 / UTM zone 49S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30494 : Voirol 1879 / Sud Algerie (ancienne)
+--- EPSG 23890 : ID74 / UTM zone 50S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30494,'EPSG',30494,'PROJCS["Voirol 1879 / Sud Algerie (ancienne)",GEOGCS["Voirol 1879",DATUM["Voirol_1879",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6671"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4671"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23890,'EPSG',23890,'PROJCS["ID74 / UTM zone 50S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30729 : Nord Sahara 1959 / UTM zone 29N
+--- EPSG 23891 : ID74 / UTM zone 51S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30729,'EPSG',30729,'PROJCS["Nord Sahara 1959 / UTM zone 29N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23891,'EPSG',23891,'PROJCS["ID74 / UTM zone 51S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30730 : Nord Sahara 1959 / UTM zone 30N
+--- EPSG 23892 : ID74 / UTM zone 52S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30730,'EPSG',30730,'PROJCS["Nord Sahara 1959 / UTM zone 30N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23892,'EPSG',23892,'PROJCS["ID74 / UTM zone 52S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30731 : Nord Sahara 1959 / UTM zone 31N
+--- EPSG 23893 : ID74 / UTM zone 53S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30731,'EPSG',30731,'PROJCS["Nord Sahara 1959 / UTM zone 31N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23893,'EPSG',23893,'PROJCS["ID74 / UTM zone 53S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30732 : Nord Sahara 1959 / UTM zone 32N
+--- EPSG 23894 : ID74 / UTM zone 54S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30732,'EPSG',30732,'PROJCS["Nord Sahara 1959 / UTM zone 32N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23894,'EPSG',23894,'PROJCS["ID74 / UTM zone 54S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],PROJECTION["Transverse_Mercator"],PARAME [...]
 ---
---- EPSG 30791 : Nord Sahara 1959 / Voirol Unifie Nord
+--- EPSG 23946 : Indian 1954 / UTM zone 46N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30791,'EPSG',30791,'PROJCS["Nord Sahara 1959 / Voirol Unifie Nord",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23946,'EPSG',23946,'PROJCS["Indian 1954 / UTM zone 46N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],PROJECTION["Transverse_Merc [...]
 ---
---- EPSG 30792 : Nord Sahara 1959 / Voirol Unifie Sud
+--- EPSG 23947 : Indian 1954 / UTM zone 47N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30792,'EPSG',30792,'PROJCS["Nord Sahara 1959 / Voirol Unifie Sud",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-186,-93,310,0,0,0,0],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23947,'EPSG',23947,'PROJCS["Indian 1954 / UTM zone 47N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],PROJECTION["Transverse_Merc [...]
 ---
---- EPSG 30800 : RT38 2.5 gon W (deprecated)
+--- EPSG 23948 : Indian 1954 / UTM zone 48N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30800,'EPSG',30800,'PROJCS["RT38 2.5 gon W (deprecated)",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (23948,'EPSG',23948,'PROJCS["Indian 1954 / UTM zone 48N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],PROJECTION["Transverse_Merc [...]
 ---
---- EPSG 31028 : Yoff / UTM zone 28N
+--- EPSG 24047 : Indian 1975 / UTM zone 47N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31028,'EPSG',31028,'PROJCS["Yoff / UTM zone 28N",GEOGCS["Yoff",DATUM["Yoff",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6310"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4310"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24047,'EPSG',24047,'PROJCS["Indian 1975 / UTM zone 47N",GEOGCS["Indian 1975",DATUM["Indian_1975",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY["EPSG","6240"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4240"]],PROJECTION["Transverse_Merc [...]
 ---
---- EPSG 31121 : Zanderij / UTM zone 21N
+--- EPSG 24048 : Indian 1975 / UTM zone 48N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31121,'EPSG',31121,'PROJCS["Zanderij / UTM zone 21N",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tr [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24048,'EPSG',24048,'PROJCS["Indian 1975 / UTM zone 48N",GEOGCS["Indian 1975",DATUM["Indian_1975",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY["EPSG","6240"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4240"]],PROJECTION["Transverse_Merc [...]
 ---
---- EPSG 31154 : Zanderij / TM 54 NW
+--- EPSG 24100 : Jamaica 1875 / Jamaica (Old Grid)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31154,'EPSG',31154,'PROJCS["Zanderij / TM 54 NW",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transv [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24100,'EPSG',24100,'PROJCS["Jamaica 1875 / Jamaica (Old Grid)",GEOGCS["Jamaica 1875",DATUM["Jamaica_1875",SPHEROID["Clarke 1880",6378249.144808011,293.4663076556349,AUTHORITY["EPSG","7034"]],AUTHORITY["EPSG","6241"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4241"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER [...]
 ---
---- EPSG 31170 : Zanderij / Suriname Old TM
+--- EPSG 24200 : JAD69 / Jamaica National Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31170,'EPSG',31170,'PROJCS["Zanderij / Suriname Old TM",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24200,'EPSG',24200,'PROJCS["JAD69 / Jamaica National Grid",GEOGCS["JAD69",DATUM["Jamaica_1969",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[70,207,389.5,0,0,0,0],AUTHORITY["EPSG","6242"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4242"]],PROJECTION["Lambert_Conformal_Conic_1SP" [...]
 ---
---- EPSG 31171 : Zanderij / Suriname TM
+--- EPSG 24305 : Kalianpur 1937 / UTM zone 45N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31171,'EPSG',31171,'PROJCS["Zanderij / Suriname TM",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tra [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24305,'EPSG',24305,'PROJCS["Kalianpur 1937 / UTM zone 45N",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],PROJECTION["Transv [...]
 ---
---- EPSG 31251 : MGI (Ferro) / Austria GK West Zone
+--- EPSG 24306 : Kalianpur 1937 / UTM zone 46N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31251,'EPSG',31251,'PROJCS["MGI (Ferro) / Austria GK West Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24306,'EPSG',24306,'PROJCS["Kalianpur 1937 / UTM zone 46N",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],PROJECTION["Transv [...]
 ---
---- EPSG 31252 : MGI (Ferro) / Austria GK Central Zone
+--- EPSG 24311 : Kalianpur 1962 / UTM zone 41N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31252,'EPSG',31252,'PROJCS["MGI (Ferro) / Austria GK Central Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24311,'EPSG',24311,'PROJCS["Kalianpur 1962 / UTM zone 41N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],PROJECTION["Tra [...]
 ---
---- EPSG 31253 : MGI (Ferro) / Austria GK East Zone
+--- EPSG 24312 : Kalianpur 1962 / UTM zone 42N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31253,'EPSG',31253,'PROJCS["MGI (Ferro) / Austria GK East Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24312,'EPSG',24312,'PROJCS["Kalianpur 1962 / UTM zone 42N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],PROJECTION["Tra [...]
 ---
---- EPSG 31254 : MGI / Austria GK West
+--- EPSG 24313 : Kalianpur 1962 / UTM zone 43N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31254,'EPSG',31254,'PROJCS["MGI / Austria GK West",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24313,'EPSG',24313,'PROJCS["Kalianpur 1962 / UTM zone 43N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],PROJECTION["Tra [...]
 ---
---- EPSG 31255 : MGI / Austria GK Central
+--- EPSG 24342 : Kalianpur 1975 / UTM zone 42N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31255,'EPSG',31255,'PROJCS["MGI / Austria GK Central",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24342,'EPSG',24342,'PROJCS["Kalianpur 1975 / UTM zone 42N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["Tra [...]
 ---
---- EPSG 31256 : MGI / Austria GK East
+--- EPSG 24343 : Kalianpur 1975 / UTM zone 43N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31256,'EPSG',31256,'PROJCS["MGI / Austria GK East",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24343,'EPSG',24343,'PROJCS["Kalianpur 1975 / UTM zone 43N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["Tra [...]
 ---
---- EPSG 31257 : MGI / Austria GK M28
+--- EPSG 24344 : Kalianpur 1975 / UTM zone 44N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31257,'EPSG',31257,'PROJCS["MGI / Austria GK M28",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24344,'EPSG',24344,'PROJCS["Kalianpur 1975 / UTM zone 44N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["Tra [...]
 ---
---- EPSG 31258 : MGI / Austria GK M31
+--- EPSG 24345 : Kalianpur 1975 / UTM zone 45N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31258,'EPSG',31258,'PROJCS["MGI / Austria GK M31",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24345,'EPSG',24345,'PROJCS["Kalianpur 1975 / UTM zone 45N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["Tra [...]
 ---
---- EPSG 31259 : MGI / Austria GK M34
+--- EPSG 24346 : Kalianpur 1975 / UTM zone 46N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31259,'EPSG',31259,'PROJCS["MGI / Austria GK M34",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["met [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24346,'EPSG',24346,'PROJCS["Kalianpur 1975 / UTM zone 46N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["Tra [...]
 ---
---- EPSG 31265 : MGI / 3-degree Gauss zone 5 (deprecated)
+--- EPSG 24347 : Kalianpur 1975 / UTM zone 47N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31265,'EPSG',31265,'PROJCS["MGI / 3-degree Gauss zone 5 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24347,'EPSG',24347,'PROJCS["Kalianpur 1975 / UTM zone 47N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["Tra [...]
 ---
---- EPSG 31266 : MGI / 3-degree Gauss zone 6 (deprecated)
+--- EPSG 24370 : Kalianpur 1880 / India zone 0
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31266,'EPSG',31266,'PROJCS["MGI / 3-degree Gauss zone 6 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24370,'EPSG',24370,'PROJCS["Kalianpur 1880 / India zone 0",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],PROJECTION["Lambert_Conformal_Conic_1S [...]
 ---
---- EPSG 31267 : MGI / 3-degree Gauss zone 7 (deprecated)
+--- EPSG 24371 : Kalianpur 1880 / India zone I
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31267,'EPSG',31267,'PROJCS["MGI / 3-degree Gauss zone 7 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24371,'EPSG',24371,'PROJCS["Kalianpur 1880 / India zone I",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],PROJECTION["Lambert_Conformal_Conic_1S [...]
 ---
---- EPSG 31268 : MGI / 3-degree Gauss zone 8 (deprecated)
+--- EPSG 24372 : Kalianpur 1880 / India zone IIa
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31268,'EPSG',31268,'PROJCS["MGI / 3-degree Gauss zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24372,'EPSG',24372,'PROJCS["Kalianpur 1880 / India zone IIa",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 31275 : MGI / Balkans zone 5 (deprecated)
+--- EPSG 24373 : Kalianpur 1880 / India zone IIIa
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31275,'EPSG',31275,'PROJCS["MGI / Balkans zone 5 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24373,'EPSG',24373,'PROJCS["Kalianpur 1880 / India zone IIIa",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],PROJECTION["Lambert_Conformal_Conic [...]
 ---
---- EPSG 31276 : MGI / Balkans zone 6 (deprecated)
+--- EPSG 24374 : Kalianpur 1880 / India zone IVa
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31276,'EPSG',31276,'PROJCS["MGI / Balkans zone 6 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24374,'EPSG',24374,'PROJCS["Kalianpur 1880 / India zone IVa",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 31277 : MGI / Balkans zone 7 (deprecated)
+--- EPSG 24375 : Kalianpur 1937 / India zone IIb
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31277,'EPSG',31277,'PROJCS["MGI / Balkans zone 7 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24375,'EPSG',24375,'PROJCS["Kalianpur 1937 / India zone IIb",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],PROJECTION["Lamb [...]
 ---
---- EPSG 31278 : MGI / Balkans zone 8 (deprecated)
+--- EPSG 24376 : Kalianpur 1962 / India zone I
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31278,'EPSG',31278,'PROJCS["MGI / Balkans zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24376,'EPSG',24376,'PROJCS["Kalianpur 1962 / India zone I",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],PROJECTION["Lam [...]
 ---
---- EPSG 31279 : MGI / Balkans zone 8 (deprecated)
+--- EPSG 24377 : Kalianpur 1962 / India zone IIa
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31279,'EPSG',31279,'PROJCS["MGI / Balkans zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24377,'EPSG',24377,'PROJCS["Kalianpur 1962 / India zone IIa",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],TOWGS84[283,682,231,0,0,0,0],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],PROJECTION["L [...]
 ---
---- EPSG 31281 : MGI (Ferro) / Austria West Zone
+--- EPSG 24378 : Kalianpur 1975 / India zone I
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31281,'EPSG',31281,'PROJCS["MGI (Ferro) / Austria West Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24378,'EPSG',24378,'PROJCS["Kalianpur 1975 / India zone I",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["Lam [...]
 ---
---- EPSG 31282 : MGI (Ferro) / Austria Central Zone
+--- EPSG 24379 : Kalianpur 1975 / India zone IIa
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31282,'EPSG',31282,'PROJCS["MGI (Ferro) / Austria Central Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24379,'EPSG',24379,'PROJCS["Kalianpur 1975 / India zone IIa",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["L [...]
 ---
---- EPSG 31283 : MGI (Ferro) / Austria East Zone
+--- EPSG 24380 : Kalianpur 1975 / India zone IIb
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31283,'EPSG',31283,'PROJCS["MGI (Ferro) / Austria East Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24380,'EPSG',24380,'PROJCS["Kalianpur 1975 / India zone IIb",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["L [...]
 ---
---- EPSG 31284 : MGI / Austria M28
+--- EPSG 24381 : Kalianpur 1975 / India zone IIIa
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31284,'EPSG',31284,'PROJCS["MGI / Austria M28",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24381,'EPSG',24381,'PROJCS["Kalianpur 1975 / India zone IIIa",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION[" [...]
 ---
---- EPSG 31285 : MGI / Austria M31
+--- EPSG 24382 : Kalianpur 1880 / India zone IIb
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31285,'EPSG',31285,'PROJCS["MGI / Austria M31",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24382,'EPSG',24382,'PROJCS["Kalianpur 1880 / India zone IIb",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],PROJECTION["Lambert_Conformal_Conic_ [...]
 ---
---- EPSG 31286 : MGI / Austria M34
+--- EPSG 24383 : Kalianpur 1975 / India zone IVa
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31286,'EPSG',31286,'PROJCS["MGI / Austria M34",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["metre" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24383,'EPSG',24383,'PROJCS["Kalianpur 1975 / India zone IVa",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],PROJECTION["L [...]
 ---
---- EPSG 31287 : MGI / Austria Lambert
+--- EPSG 24500 : Kertau 1968 / Singapore Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31287,'EPSG',31287,'PROJCS["MGI / Austria Lambert",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24500,'EPSG',24500,'PROJCS["Kertau 1968 / Singapore Grid",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],PROJECTION["Cassini_Soldner"],PARAME [...]
 ---
---- EPSG 31288 : MGI (Ferro) / M28
+--- EPSG 24547 : Kertau 1968 / UTM zone 47N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31288,'EPSG',31288,'PROJCS["MGI (Ferro) / M28",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24547,'EPSG',24547,'PROJCS["Kertau 1968 / UTM zone 47N",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 31289 : MGI (Ferro) / M31
+--- EPSG 24548 : Kertau 1968 / UTM zone 48N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31289,'EPSG',31289,'PROJCS["MGI (Ferro) / M31",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24548,'EPSG',24548,'PROJCS["Kertau 1968 / UTM zone 48N",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 31290 : MGI (Ferro) / M34
+--- EPSG 24571 : Kertau / R.S.O. Malaya (ch) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31290,'EPSG',31290,'PROJCS["MGI (Ferro) / M34",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24571,'EPSG',24571,'PROJCS["Kertau / R.S.O. Malaya (ch) (deprecated)",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],PROJECTION["Hotine_Obliq [...]
 ---
---- EPSG 31291 : MGI (Ferro) / Austria West Zone (deprecated)
+--- EPSG 24600 : KOC Lambert
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31291,'EPSG',31291,'PROJCS["MGI (Ferro) / Austria West Zone (deprecated)",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24600,'EPSG',24600,'PROJCS["KOC Lambert",GEOGCS["KOC",DATUM["Kuwait_Oil_Company",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-294.7,-200.1,525.5,0,0,0,0],AUTHORITY["EPSG","6246"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4246"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMET [...]
 ---
---- EPSG 31292 : MGI (Ferro) / Austria Central Zone (deprecated)
+--- EPSG 24718 : La Canoa / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31292,'EPSG',31292,'PROJCS["MGI (Ferro) / Austria Central Zone (deprecated)",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24718,'EPSG',24718,'PROJCS["La Canoa / UTM zone 18N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 31293 : MGI (Ferro) / Austria East Zone (deprecated)
+--- EPSG 24719 : La Canoa / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31293,'EPSG',31293,'PROJCS["MGI (Ferro) / Austria East Zone (deprecated)",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24719,'EPSG',24719,'PROJCS["La Canoa / UTM zone 19N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 31294 : MGI / M28 (deprecated)
+--- EPSG 24720 : La Canoa / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31294,'EPSG',31294,'PROJCS["MGI / M28 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24720,'EPSG',24720,'PROJCS["La Canoa / UTM zone 20N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
 ---
---- EPSG 31295 : MGI / M31 (deprecated)
+--- EPSG 24817 : PSAD56 / UTM zone 17N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31295,'EPSG',31295,'PROJCS["MGI / M31 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24817,'EPSG',24817,'PROJCS["PSAD56 / UTM zone 17N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31296 : MGI / M34 (deprecated)
+--- EPSG 24818 : PSAD56 / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31296,'EPSG',31296,'PROJCS["MGI / M34 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],UNIT["m [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24818,'EPSG',24818,'PROJCS["PSAD56 / UTM zone 18N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31297 : MGI / Austria Lambert (deprecated)
+--- EPSG 24819 : PSAD56 / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31297,'EPSG',31297,'PROJCS["MGI / Austria Lambert (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","431 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24819,'EPSG',24819,'PROJCS["PSAD56 / UTM zone 19N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31300 : Belge 1972 / Belge Lambert 72
+--- EPSG 24820 : PSAD56 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31300,'EPSG',31300,'PROJCS["Belge 1972 / Belge Lambert 72",GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-106.868628,52.297783,-103.723893,0.336570,-0.456955,1.842183,-1.2747],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24820,'EPSG',24820,'PROJCS["PSAD56 / UTM zone 20N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31370 : Belge 1972 / Belgian Lambert 72
+--- EPSG 24821 : PSAD56 / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31370,'EPSG',31370,'PROJCS["Belge 1972 / Belgian Lambert 72",GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-106.868628,52.297783,-103.723893,0.336570,-0.456955,1.842183,-1.2747],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24821,'EPSG',24821,'PROJCS["PSAD56 / UTM zone 21N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31461 : DHDN / 3-degree Gauss zone 1 (deprecated)
+--- EPSG 24877 : PSAD56 / UTM zone 17S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31461,'EPSG',31461,'PROJCS["DHDN / 3-degree Gauss zone 1 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24877,'EPSG',24877,'PROJCS["PSAD56 / UTM zone 17S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31462 : DHDN / 3-degree Gauss zone 2 (deprecated)
+--- EPSG 24878 : PSAD56 / UTM zone 18S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31462,'EPSG',31462,'PROJCS["DHDN / 3-degree Gauss zone 2 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24878,'EPSG',24878,'PROJCS["PSAD56 / UTM zone 18S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31463 : DHDN / 3-degree Gauss zone 3 (deprecated)
+--- EPSG 24879 : PSAD56 / UTM zone 19S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31463,'EPSG',31463,'PROJCS["DHDN / 3-degree Gauss zone 3 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24879,'EPSG',24879,'PROJCS["PSAD56 / UTM zone 19S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31464 : DHDN / 3-degree Gauss zone 4 (deprecated)
+--- EPSG 24880 : PSAD56 / UTM zone 20S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31464,'EPSG',31464,'PROJCS["DHDN / 3-degree Gauss zone 4 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24880,'EPSG',24880,'PROJCS["PSAD56 / UTM zone 20S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31465 : DHDN / 3-degree Gauss zone 5 (deprecated)
+--- EPSG 24881 : PSAD56 / UTM zone 21S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31465,'EPSG',31465,'PROJCS["DHDN / 3-degree Gauss zone 5 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24881,'EPSG',24881,'PROJCS["PSAD56 / UTM zone 21S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31466 : DHDN / 3-degree Gauss-Kruger zone 2
+--- EPSG 24882 : PSAD56 / UTM zone 22S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31466,'EPSG',31466,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 2",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24882,'EPSG',24882,'PROJCS["PSAD56 / UTM zone 22S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 31467 : DHDN / 3-degree Gauss-Kruger zone 3
+--- EPSG 24891 : PSAD56 / Peru west zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31467,'EPSG',31467,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 3",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24891,'EPSG',24891,'PROJCS["PSAD56 / Peru west zone",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 31468 : DHDN / 3-degree Gauss-Kruger zone 4
+--- EPSG 24892 : PSAD56 / Peru central zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31468,'EPSG',31468,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 4",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24892,'EPSG',24892,'PROJCS["PSAD56 / Peru central zone",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Me [...]
 ---
---- EPSG 31469 : DHDN / 3-degree Gauss-Kruger zone 5
+--- EPSG 24893 : PSAD56 / Peru east zone
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31469,'EPSG',31469,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 5",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (24893,'EPSG',24893,'PROJCS["PSAD56 / Peru east zone",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],PROJECTION["Transverse_Merca [...]
 ---
---- EPSG 31528 : Conakry 1905 / UTM zone 28N
+--- EPSG 25000 : Leigon / Ghana Metre Grid
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31528,'EPSG',31528,'PROJCS["Conakry 1905 / UTM zone 28N",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25000,'EPSG',25000,'PROJCS["Leigon / Ghana Metre Grid",GEOGCS["Leigon",DATUM["Leigon",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-130,29,364,0,0,0,0],AUTHORITY["EPSG","6250"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4250"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
 ---
---- EPSG 31529 : Conakry 1905 / UTM zone 29N
+--- EPSG 25231 : Lome / UTM zone 31N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31529,'EPSG',31529,'PROJCS["Conakry 1905 / UTM zone 29N",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25231,'EPSG',25231,'PROJCS["Lome / UTM zone 31N",GEOGCS["Lome",DATUM["Lome",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6252"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4252"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
---- EPSG 31600 : Dealul Piscului 1930 / Stereo 33
+--- EPSG 25391 : Luzon 1911 / Philippines zone I
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31600,'EPSG',31600,'PROJCS["Dealul Piscului 1930 / Stereo 33",GEOGCS["Dealul Piscului 1930",DATUM["Dealul_Piscului_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[103.25,-100.4,-307.19,0,0,0,0],AUTHORITY["EPSG","6316"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4316"]],UNIT["metre",1 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25391,'EPSG',25391,'PROJCS["Luzon 1911 / Philippines zone I",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 31700 : Dealul Piscului 1970/ Stereo 70 (deprecated)
+--- EPSG 25392 : Luzon 1911 / Philippines zone II
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31700,'EPSG',31700,'PROJCS["Dealul Piscului 1970/ Stereo 70 (deprecated)",GEOGCS["Dealul Piscului 1970",DATUM["Dealul_Piscului_1970",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[28,-121,-77,0,0,0,0],AUTHORITY["EPSG","6317"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4317"]],UNIT["metre", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25392,'EPSG',25392,'PROJCS["Luzon 1911 / Philippines zone II",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 31838 : NGN / UTM zone 38N
+--- EPSG 25393 : Luzon 1911 / Philippines zone III
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31838,'EPSG',31838,'PROJCS["NGN / UTM zone 38N",GEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25393,'EPSG',25393,'PROJCS["Luzon 1911 / Philippines zone III",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31839 : NGN / UTM zone 39N
+--- EPSG 25394 : Luzon 1911 / Philippines zone IV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31839,'EPSG',31839,'PROJCS["NGN / UTM zone 39N",GEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25394,'EPSG',25394,'PROJCS["Luzon 1911 / Philippines zone IV",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 31900 : KUDAMS / KTM (deprecated)
+--- EPSG 25395 : Luzon 1911 / Philippines zone V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31900,'EPSG',31900,'PROJCS["KUDAMS / KTM (deprecated)",GEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-20.8,11.3,2.4,0,0,0,0],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25395,'EPSG',25395,'PROJCS["Luzon 1911 / Philippines zone V",GEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
---- EPSG 31901 : KUDAMS / KTM
+--- EPSG 25700 : Makassar (Jakarta) / NEIEZ (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31901,'EPSG',31901,'PROJCS["KUDAMS / KTM",GEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-20.8,11.3,2.4,0,0,0,0],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transver [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25700,'EPSG',25700,'PROJCS["Makassar (Jakarta) / NEIEZ (deprecated)",GEOGCS["Makassar (Jakarta)",DATUM["Makassar_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6804"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","480 [...]
 ---
---- EPSG 31965 : SIRGAS 2000 / UTM zone 11N
+--- EPSG 25828 : ETRS89 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31965,'EPSG',31965,'PROJCS["SIRGAS 2000 / UTM zone 11N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25828,'EPSG',25828,'PROJCS["ETRS89 / UTM zone 28N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31966 : SIRGAS 2000 / UTM zone 12N
+--- EPSG 25829 : ETRS89 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31966,'EPSG',31966,'PROJCS["SIRGAS 2000 / UTM zone 12N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25829,'EPSG',25829,'PROJCS["ETRS89 / UTM zone 29N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31967 : SIRGAS 2000 / UTM zone 13N
+--- EPSG 25830 : ETRS89 / UTM zone 30N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31967,'EPSG',31967,'PROJCS["SIRGAS 2000 / UTM zone 13N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25830,'EPSG',25830,'PROJCS["ETRS89 / UTM zone 30N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31968 : SIRGAS 2000 / UTM zone 14N
+--- EPSG 25831 : ETRS89 / UTM zone 31N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31968,'EPSG',31968,'PROJCS["SIRGAS 2000 / UTM zone 14N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25831,'EPSG',25831,'PROJCS["ETRS89 / UTM zone 31N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31969 : SIRGAS 2000 / UTM zone 15N
+--- EPSG 25832 : ETRS89 / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31969,'EPSG',31969,'PROJCS["SIRGAS 2000 / UTM zone 15N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25832,'EPSG',25832,'PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31970 : SIRGAS 2000 / UTM zone 16N
+--- EPSG 25833 : ETRS89 / UTM zone 33N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31970,'EPSG',31970,'PROJCS["SIRGAS 2000 / UTM zone 16N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25833,'EPSG',25833,'PROJCS["ETRS89 / UTM zone 33N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31971 : SIRGAS 2000 / UTM zone 17N
+--- EPSG 25834 : ETRS89 / UTM zone 34N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31971,'EPSG',31971,'PROJCS["SIRGAS 2000 / UTM zone 17N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25834,'EPSG',25834,'PROJCS["ETRS89 / UTM zone 34N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31972 : SIRGAS 2000 / UTM zone 18N
+--- EPSG 25835 : ETRS89 / UTM zone 35N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31972,'EPSG',31972,'PROJCS["SIRGAS 2000 / UTM zone 18N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25835,'EPSG',25835,'PROJCS["ETRS89 / UTM zone 35N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31973 : SIRGAS 2000 / UTM zone 19N
+--- EPSG 25836 : ETRS89 / UTM zone 36N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31973,'EPSG',31973,'PROJCS["SIRGAS 2000 / UTM zone 19N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25836,'EPSG',25836,'PROJCS["ETRS89 / UTM zone 36N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31974 : SIRGAS 2000 / UTM zone 20N
+--- EPSG 25837 : ETRS89 / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31974,'EPSG',31974,'PROJCS["SIRGAS 2000 / UTM zone 20N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25837,'EPSG',25837,'PROJCS["ETRS89 / UTM zone 37N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"] [...]
 ---
---- EPSG 31975 : SIRGAS 2000 / UTM zone 21N
+--- EPSG 25838 : ETRS89 / UTM zone 38N (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31975,'EPSG',31975,'PROJCS["SIRGAS 2000 / UTM zone 21N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25838,'EPSG',25838,'PROJCS["ETRS89 / UTM zone 38N (deprecated)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transver [...]
 ---
---- EPSG 31976 : SIRGAS 2000 / UTM zone 22N
+--- EPSG 25884 : ETRS89 / TM Baltic93
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31976,'EPSG',31976,'PROJCS["SIRGAS 2000 / UTM zone 22N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25884,'EPSG',25884,'PROJCS["ETRS89 / TM Baltic93",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 31977 : SIRGAS 2000 / UTM zone 17S
+--- EPSG 25932 : Malongo 1987 / UTM zone 32S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31977,'EPSG',31977,'PROJCS["SIRGAS 2000 / UTM zone 17S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (25932,'EPSG',25932,'PROJCS["Malongo 1987 / UTM zone 32S",GEOGCS["Malongo 1987",DATUM["Malongo_1987",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY["EPSG","6259"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4259"]],PROJECTION["Transverse_Mercator"],PA [...]
 ---
---- EPSG 31978 : SIRGAS 2000 / UTM zone 18S
+--- EPSG 26191 : Merchich / Nord Maroc
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31978,'EPSG',31978,'PROJCS["SIRGAS 2000 / UTM zone 18S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26191,'EPSG',26191,'PROJCS["Merchich / Nord Maroc",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARA [...]
 ---
---- EPSG 31979 : SIRGAS 2000 / UTM zone 19S
+--- EPSG 26192 : Merchich / Sud Maroc
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31979,'EPSG',31979,'PROJCS["SIRGAS 2000 / UTM zone 19S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26192,'EPSG',26192,'PROJCS["Merchich / Sud Maroc",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAM [...]
 ---
---- EPSG 31980 : SIRGAS 2000 / UTM zone 20S
+--- EPSG 26193 : Merchich / Sahara (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31980,'EPSG',31980,'PROJCS["SIRGAS 2000 / UTM zone 20S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26193,'EPSG',26193,'PROJCS["Merchich / Sahara (deprecated)",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],PROJECTION["Lambert_Conformal_Conic_1 [...]
 ---
---- EPSG 31981 : SIRGAS 2000 / UTM zone 21S
+--- EPSG 26194 : Merchich / Sahara Nord
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31981,'EPSG',31981,'PROJCS["SIRGAS 2000 / UTM zone 21S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26194,'EPSG',26194,'PROJCS["Merchich / Sahara Nord",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PAR [...]
 ---
---- EPSG 31982 : SIRGAS 2000 / UTM zone 22S
+--- EPSG 26195 : Merchich / Sahara Sud
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31982,'EPSG',31982,'PROJCS["SIRGAS 2000 / UTM zone 22S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26195,'EPSG',26195,'PROJCS["Merchich / Sahara Sud",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARA [...]
 ---
---- EPSG 31983 : SIRGAS 2000 / UTM zone 23S
+--- EPSG 26237 : Massawa / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31983,'EPSG',31983,'PROJCS["SIRGAS 2000 / UTM zone 23S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26237,'EPSG',26237,'PROJCS["Massawa / UTM zone 37N",GEOGCS["Massawa",DATUM["Massawa",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[639,405,60,0,0,0,0],AUTHORITY["EPSG","6262"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4262"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
 ---
---- EPSG 31984 : SIRGAS 2000 / UTM zone 24S
+--- EPSG 26331 : Minna / UTM zone 31N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31984,'EPSG',31984,'PROJCS["SIRGAS 2000 / UTM zone 24S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26331,'EPSG',26331,'PROJCS["Minna / UTM zone 31N",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
---- EPSG 31985 : SIRGAS 2000 / UTM zone 25S
+--- EPSG 26332 : Minna / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31985,'EPSG',31985,'PROJCS["SIRGAS 2000 / UTM zone 25S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26332,'EPSG',26332,'PROJCS["Minna / UTM zone 32N",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
 ---
---- EPSG 31986 : SIRGAS 1995 / UTM zone 17N
+--- EPSG 26391 : Minna / Nigeria West Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31986,'EPSG',31986,'PROJCS["SIRGAS 1995 / UTM zone 17N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26391,'EPSG',26391,'PROJCS["Minna / Nigeria West Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
---- EPSG 31987 : SIRGAS 1995 / UTM zone 18N
+--- EPSG 26392 : Minna / Nigeria Mid Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31987,'EPSG',31987,'PROJCS["SIRGAS 1995 / UTM zone 18N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26392,'EPSG',26392,'PROJCS["Minna / Nigeria Mid Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
 ---
---- EPSG 31988 : SIRGAS 1995 / UTM zone 19N
+--- EPSG 26393 : Minna / Nigeria East Belt
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31988,'EPSG',31988,'PROJCS["SIRGAS 1995 / UTM zone 19N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26393,'EPSG',26393,'PROJCS["Minna / Nigeria East Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
 ---
---- EPSG 31989 : SIRGAS 1995 / UTM zone 20N
+--- EPSG 26432 : Mhast / UTM zone 32S (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31989,'EPSG',31989,'PROJCS["SIRGAS 1995 / UTM zone 20N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26432,'EPSG',26432,'PROJCS["Mhast / UTM zone 32S (deprecated)",GEOGCS["Mhast",DATUM["Mhast",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-252.95,-4.11,-96.38,0,0,0,0],AUTHORITY["EPSG","6264"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4264"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
 ---
---- EPSG 31990 : SIRGAS 1995 / UTM zone 21N
+--- EPSG 26591 : Monte Mario (Rome) / Italy zone 1 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31990,'EPSG',31990,'PROJCS["SIRGAS 1995 / UTM zone 21N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26591,'EPSG',26591,'PROJCS["Monte Mario (Rome) / Italy zone 1 (deprecated)",GEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORI [...]
 ---
---- EPSG 31991 : SIRGAS 1995 / UTM zone 22N
+--- EPSG 26592 : Monte Mario (Rome) / Italy zone 2 (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31991,'EPSG',31991,'PROJCS["SIRGAS 1995 / UTM zone 22N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26592,'EPSG',26592,'PROJCS["Monte Mario (Rome) / Italy zone 2 (deprecated)",GEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORI [...]
 ---
---- EPSG 31992 : SIRGAS 1995 / UTM zone 17S
+--- EPSG 26632 : M'poraloko / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31992,'EPSG',31992,'PROJCS["SIRGAS 1995 / UTM zone 17S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26632,'EPSG',26632,'PROJCS["M''poraloko / UTM zone 32N",GEOGCS["M''poraloko",DATUM["M_poraloko",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY["EPSG","6266"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4266"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 31993 : SIRGAS 1995 / UTM zone 18S
+--- EPSG 26692 : M'poraloko / UTM zone 32S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31993,'EPSG',31993,'PROJCS["SIRGAS 1995 / UTM zone 18S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26692,'EPSG',26692,'PROJCS["M''poraloko / UTM zone 32S",GEOGCS["M''poraloko",DATUM["M_poraloko",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY["EPSG","6266"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4266"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 31994 : SIRGAS 1995 / UTM zone 19S
+--- EPSG 26701 : NAD27 / UTM zone 1N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31994,'EPSG',31994,'PROJCS["SIRGAS 1995 / UTM zone 19S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26701,'EPSG',26701,'PROJCS["NAD27 / UTM zone 1N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 31995 : SIRGAS 1995 / UTM zone 20S
+--- EPSG 26702 : NAD27 / UTM zone 2N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31995,'EPSG',31995,'PROJCS["SIRGAS 1995 / UTM zone 20S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26702,'EPSG',26702,'PROJCS["NAD27 / UTM zone 2N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 31996 : SIRGAS 1995 / UTM zone 21S
+--- EPSG 26703 : NAD27 / UTM zone 3N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31996,'EPSG',31996,'PROJCS["SIRGAS 1995 / UTM zone 21S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26703,'EPSG',26703,'PROJCS["NAD27 / UTM zone 3N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 31997 : SIRGAS 1995 / UTM zone 22S
+--- EPSG 26704 : NAD27 / UTM zone 4N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31997,'EPSG',31997,'PROJCS["SIRGAS 1995 / UTM zone 22S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26704,'EPSG',26704,'PROJCS["NAD27 / UTM zone 4N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 31998 : SIRGAS 1995 / UTM zone 23S
+--- EPSG 26705 : NAD27 / UTM zone 5N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31998,'EPSG',31998,'PROJCS["SIRGAS 1995 / UTM zone 23S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26705,'EPSG',26705,'PROJCS["NAD27 / UTM zone 5N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 31999 : SIRGAS 1995 / UTM zone 24S
+--- EPSG 26706 : NAD27 / UTM zone 6N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31999,'EPSG',31999,'PROJCS["SIRGAS 1995 / UTM zone 24S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26706,'EPSG',26706,'PROJCS["NAD27 / UTM zone 6N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 32000 : SIRGAS 1995 / UTM zone 25S
+--- EPSG 26707 : NAD27 / UTM zone 7N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32000,'EPSG',32000,'PROJCS["SIRGAS 1995 / UTM zone 25S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26707,'EPSG',26707,'PROJCS["NAD27 / UTM zone 7N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 32001 : NAD27 / Montana North
+--- EPSG 26708 : NAD27 / UTM zone 8N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32001,'EPSG',32001,'PROJCS["NAD27 / Montana North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26708,'EPSG',26708,'PROJCS["NAD27 / UTM zone 8N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 32002 : NAD27 / Montana Central
+--- EPSG 26709 : NAD27 / UTM zone 9N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32002,'EPSG',32002,'PROJCS["NAD27 / Montana Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26709,'EPSG',26709,'PROJCS["NAD27 / UTM zone 9N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
 ---
---- EPSG 32003 : NAD27 / Montana South
+--- EPSG 26710 : NAD27 / UTM zone 10N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32003,'EPSG',32003,'PROJCS["NAD27 / Montana South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26710,'EPSG',26710,'PROJCS["NAD27 / UTM zone 10N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32005 : NAD27 / Nebraska North
+--- EPSG 26711 : NAD27 / UTM zone 11N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32005,'EPSG',32005,'PROJCS["NAD27 / Nebraska North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26711,'EPSG',26711,'PROJCS["NAD27 / UTM zone 11N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32006 : NAD27 / Nebraska South
+--- EPSG 26712 : NAD27 / UTM zone 12N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32006,'EPSG',32006,'PROJCS["NAD27 / Nebraska South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26712,'EPSG',26712,'PROJCS["NAD27 / UTM zone 12N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32007 : NAD27 / Nevada East
+--- EPSG 26713 : NAD27 / UTM zone 13N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32007,'EPSG',32007,'PROJCS["NAD27 / Nevada East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26713,'EPSG',26713,'PROJCS["NAD27 / UTM zone 13N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32008 : NAD27 / Nevada Central
+--- EPSG 26714 : NAD27 / UTM zone 14N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32008,'EPSG',32008,'PROJCS["NAD27 / Nevada Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26714,'EPSG',26714,'PROJCS["NAD27 / UTM zone 14N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32009 : NAD27 / Nevada West
+--- EPSG 26715 : NAD27 / UTM zone 15N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32009,'EPSG',32009,'PROJCS["NAD27 / Nevada West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26715,'EPSG',26715,'PROJCS["NAD27 / UTM zone 15N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32010 : NAD27 / New Hampshire
+--- EPSG 26716 : NAD27 / UTM zone 16N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32010,'EPSG',32010,'PROJCS["NAD27 / New Hampshire",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26716,'EPSG',26716,'PROJCS["NAD27 / UTM zone 16N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32011 : NAD27 / New Jersey
+--- EPSG 26717 : NAD27 / UTM zone 17N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32011,'EPSG',32011,'PROJCS["NAD27 / New Jersey",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26717,'EPSG',26717,'PROJCS["NAD27 / UTM zone 17N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32012 : NAD27 / New Mexico East
+--- EPSG 26718 : NAD27 / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32012,'EPSG',32012,'PROJCS["NAD27 / New Mexico East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26718,'EPSG',26718,'PROJCS["NAD27 / UTM zone 18N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32013 : NAD27 / New Mexico Central
+--- EPSG 26719 : NAD27 / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32013,'EPSG',32013,'PROJCS["NAD27 / New Mexico Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26719,'EPSG',26719,'PROJCS["NAD27 / UTM zone 19N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32014 : NAD27 / New Mexico West
+--- EPSG 26720 : NAD27 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32014,'EPSG',32014,'PROJCS["NAD27 / New Mexico West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26720,'EPSG',26720,'PROJCS["NAD27 / UTM zone 20N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32015 : NAD27 / New York East
+--- EPSG 26721 : NAD27 / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32015,'EPSG',32015,'PROJCS["NAD27 / New York East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26721,'EPSG',26721,'PROJCS["NAD27 / UTM zone 21N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32016 : NAD27 / New York Central
+--- EPSG 26722 : NAD27 / UTM zone 22N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32016,'EPSG',32016,'PROJCS["NAD27 / New York Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26722,'EPSG',26722,'PROJCS["NAD27 / UTM zone 22N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32017 : NAD27 / New York West
+--- EPSG 26729 : NAD27 / Alabama East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32017,'EPSG',32017,'PROJCS["NAD27 / New York West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26729,'EPSG',26729,'PROJCS["NAD27 / Alabama East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",3 [...]
 ---
---- EPSG 32018 : NAD27 / New York Long Island (deprecated)
+--- EPSG 26730 : NAD27 / Alabama West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32018,'EPSG',32018,'PROJCS["NAD27 / New York Long Island (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTH [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26730,'EPSG',26730,'PROJCS["NAD27 / Alabama West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",3 [...]
 ---
---- EPSG 32019 : NAD27 / North Carolina
+--- EPSG 26731 : NAD27 / Alaska zone 1
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32019,'EPSG',32019,'PROJCS["NAD27 / North Carolina",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26731,'EPSG',26731,'PROJCS["NAD27 / Alaska zone 1",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_cent [...]
 ---
---- EPSG 32020 : NAD27 / North Dakota North
+--- EPSG 26732 : NAD27 / Alaska zone 2
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32020,'EPSG',32020,'PROJCS["NAD27 / North Dakota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26732,'EPSG',26732,'PROJCS["NAD27 / Alaska zone 2",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32021 : NAD27 / North Dakota South
+--- EPSG 26733 : NAD27 / Alaska zone 3
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32021,'EPSG',32021,'PROJCS["NAD27 / North Dakota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26733,'EPSG',26733,'PROJCS["NAD27 / Alaska zone 3",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32022 : NAD27 / Ohio North
+--- EPSG 26734 : NAD27 / Alaska zone 4
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32022,'EPSG',32022,'PROJCS["NAD27 / Ohio North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26734,'EPSG',26734,'PROJCS["NAD27 / Alaska zone 4",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32023 : NAD27 / Ohio South
+--- EPSG 26735 : NAD27 / Alaska zone 5
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32023,'EPSG',32023,'PROJCS["NAD27 / Ohio South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26735,'EPSG',26735,'PROJCS["NAD27 / Alaska zone 5",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32024 : NAD27 / Oklahoma North
+--- EPSG 26736 : NAD27 / Alaska zone 6
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32024,'EPSG',32024,'PROJCS["NAD27 / Oklahoma North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26736,'EPSG',26736,'PROJCS["NAD27 / Alaska zone 6",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32025 : NAD27 / Oklahoma South
+--- EPSG 26737 : NAD27 / Alaska zone 7
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32025,'EPSG',32025,'PROJCS["NAD27 / Oklahoma South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26737,'EPSG',26737,'PROJCS["NAD27 / Alaska zone 7",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32026 : NAD27 / Oregon North
+--- EPSG 26738 : NAD27 / Alaska zone 8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32026,'EPSG',32026,'PROJCS["NAD27 / Oregon North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26738,'EPSG',26738,'PROJCS["NAD27 / Alaska zone 8",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32027 : NAD27 / Oregon South
+--- EPSG 26739 : NAD27 / Alaska zone 9
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32027,'EPSG',32027,'PROJCS["NAD27 / Oregon South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26739,'EPSG',26739,'PROJCS["NAD27 / Alaska zone 9",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32028 : NAD27 / Pennsylvania North
+--- EPSG 26740 : NAD27 / Alaska zone 10
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32028,'EPSG',32028,'PROJCS["NAD27 / Pennsylvania North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26740,'EPSG',26740,'PROJCS["NAD27 / Alaska zone 10",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
 ---
---- EPSG 32029 : NAD27 / Pennsylvania South (deprecated)
+--- EPSG 26741 : NAD27 / California zone I
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32029,'EPSG',32029,'PROJCS["NAD27 / Pennsylvania South (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHOR [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26741,'EPSG',26741,'PROJCS["NAD27 / California zone I",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard [...]
 ---
---- EPSG 32030 : NAD27 / Rhode Island
+--- EPSG 26742 : NAD27 / California zone II
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32030,'EPSG',32030,'PROJCS["NAD27 / Rhode Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26742,'EPSG',26742,'PROJCS["NAD27 / California zone II",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
 ---
---- EPSG 32031 : NAD27 / South Carolina North
+--- EPSG 26743 : NAD27 / California zone III
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32031,'EPSG',32031,'PROJCS["NAD27 / South Carolina North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26743,'EPSG',26743,'PROJCS["NAD27 / California zone III",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standa [...]
 ---
---- EPSG 32033 : NAD27 / South Carolina South
+--- EPSG 26744 : NAD27 / California zone IV
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32033,'EPSG',32033,'PROJCS["NAD27 / South Carolina South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26744,'EPSG',26744,'PROJCS["NAD27 / California zone IV",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
 ---
---- EPSG 32034 : NAD27 / South Dakota North
+--- EPSG 26745 : NAD27 / California zone V
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32034,'EPSG',32034,'PROJCS["NAD27 / South Dakota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26745,'EPSG',26745,'PROJCS["NAD27 / California zone V",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard [...]
 ---
---- EPSG 32035 : NAD27 / South Dakota South
+--- EPSG 26746 : NAD27 / California zone VI
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32035,'EPSG',32035,'PROJCS["NAD27 / South Dakota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26746,'EPSG',26746,'PROJCS["NAD27 / California zone VI",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
 ---
---- EPSG 32036 : NAD27 / Tennessee (deprecated)
+--- EPSG 26747 : NAD27 / California zone VII (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32036,'EPSG',32036,'PROJCS["NAD27 / Tennessee (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26747,'EPSG',26747,'PROJCS["NAD27 / California zone VII (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
---- EPSG 32037 : NAD27 / Texas North
+--- EPSG 26748 : NAD27 / Arizona East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32037,'EPSG',32037,'PROJCS["NAD27 / Texas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26748,'EPSG',26748,'PROJCS["NAD27 / Arizona East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",3 [...]
 ---
---- EPSG 32038 : NAD27 / Texas North Central
+--- EPSG 26749 : NAD27 / Arizona Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32038,'EPSG',32038,'PROJCS["NAD27 / Texas North Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26749,'EPSG',26749,'PROJCS["NAD27 / Arizona Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
 ---
---- EPSG 32039 : NAD27 / Texas Central
+--- EPSG 26750 : NAD27 / Arizona West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32039,'EPSG',32039,'PROJCS["NAD27 / Texas Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26750,'EPSG',26750,'PROJCS["NAD27 / Arizona West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",3 [...]
 ---
---- EPSG 32040 : NAD27 / Texas South Central
+--- EPSG 26751 : NAD27 / Arkansas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32040,'EPSG',32040,'PROJCS["NAD27 / Texas South Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26751,'EPSG',26751,'PROJCS["NAD27 / Arkansas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
 ---
---- EPSG 32041 : NAD27 / Texas South
+--- EPSG 26752 : NAD27 / Arkansas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32041,'EPSG',32041,'PROJCS["NAD27 / Texas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]], [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26752,'EPSG',26752,'PROJCS["NAD27 / Arkansas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
 ---
---- EPSG 32042 : NAD27 / Utah North
+--- EPSG 26753 : NAD27 / Colorado North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32042,'EPSG',32042,'PROJCS["NAD27 / Utah North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26753,'EPSG',26753,'PROJCS["NAD27 / Colorado North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
 ---
---- EPSG 32043 : NAD27 / Utah Central
+--- EPSG 26754 : NAD27 / Colorado Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32043,'EPSG',32043,'PROJCS["NAD27 / Utah Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26754,'EPSG',26754,'PROJCS["NAD27 / Colorado Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_ [...]
 ---
---- EPSG 32044 : NAD27 / Utah South
+--- EPSG 26755 : NAD27 / Colorado South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32044,'EPSG',32044,'PROJCS["NAD27 / Utah South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],P [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26755,'EPSG',26755,'PROJCS["NAD27 / Colorado South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
 ---
---- EPSG 32045 : NAD27 / Vermont
+--- EPSG 26756 : NAD27 / Connecticut
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32045,'EPSG',32045,'PROJCS["NAD27 / Vermont",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26756,'EPSG',26756,'PROJCS["NAD27 / Connecticut",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_paral [...]
 ---
---- EPSG 32046 : NAD27 / Virginia North
+--- EPSG 26757 : NAD27 / Delaware
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32046,'EPSG',32046,'PROJCS["NAD27 / Virginia North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26757,'EPSG',26757,'PROJCS["NAD27 / Delaware",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],P [...]
 ---
---- EPSG 32047 : NAD27 / Virginia South
+--- EPSG 26758 : NAD27 / Florida East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32047,'EPSG',32047,'PROJCS["NAD27 / Virginia South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26758,'EPSG',26758,'PROJCS["NAD27 / Florida East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",2 [...]
 ---
---- EPSG 32048 : NAD27 / Washington North
+--- EPSG 26759 : NAD27 / Florida West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32048,'EPSG',32048,'PROJCS["NAD27 / Washington North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26759,'EPSG',26759,'PROJCS["NAD27 / Florida West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",2 [...]
 ---
---- EPSG 32049 : NAD27 / Washington South
+--- EPSG 26760 : NAD27 / Florida North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32049,'EPSG',32049,'PROJCS["NAD27 / Washington South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","900 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26760,'EPSG',26760,'PROJCS["NAD27 / Florida North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_par [...]
 ---
---- EPSG 32050 : NAD27 / West Virginia North
+--- EPSG 26766 : NAD27 / Georgia East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32050,'EPSG',32050,'PROJCS["NAD27 / West Virginia North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26766,'EPSG',26766,'PROJCS["NAD27 / Georgia East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",3 [...]
 ---
---- EPSG 32051 : NAD27 / West Virginia South
+--- EPSG 26767 : NAD27 / Georgia West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32051,'EPSG',32051,'PROJCS["NAD27 / West Virginia South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG"," [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26767,'EPSG',26767,'PROJCS["NAD27 / Georgia West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",3 [...]
 ---
---- EPSG 32052 : NAD27 / Wisconsin North
+--- EPSG 26768 : NAD27 / Idaho East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32052,'EPSG',32052,'PROJCS["NAD27 / Wisconsin North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26768,'EPSG',26768,'PROJCS["NAD27 / Idaho East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41. [...]
 ---
---- EPSG 32053 : NAD27 / Wisconsin Central
+--- EPSG 26769 : NAD27 / Idaho Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32053,'EPSG',32053,'PROJCS["NAD27 / Wisconsin Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26769,'EPSG',26769,'PROJCS["NAD27 / Idaho Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32054 : NAD27 / Wisconsin South
+--- EPSG 26770 : NAD27 / Idaho West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32054,'EPSG',32054,'PROJCS["NAD27 / Wisconsin South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26770,'EPSG',26770,'PROJCS["NAD27 / Idaho West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41. [...]
 ---
---- EPSG 32055 : NAD27 / Wyoming East
+--- EPSG 26771 : NAD27 / Illinois East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32055,'EPSG',32055,'PROJCS["NAD27 / Wyoming East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26771,'EPSG',26771,'PROJCS["NAD27 / Illinois East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32056 : NAD27 / Wyoming East Central
+--- EPSG 26772 : NAD27 / Illinois West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32056,'EPSG',32056,'PROJCS["NAD27 / Wyoming East Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26772,'EPSG',26772,'PROJCS["NAD27 / Illinois West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32057 : NAD27 / Wyoming West Central
+--- EPSG 26773 : NAD27 / Indiana East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32057,'EPSG',32057,'PROJCS["NAD27 / Wyoming West Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG", [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26773,'EPSG',26773,'PROJCS["NAD27 / Indiana East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",3 [...]
 ---
---- EPSG 32058 : NAD27 / Wyoming West
+--- EPSG 26774 : NAD27 / Indiana West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32058,'EPSG',32058,'PROJCS["NAD27 / Wyoming West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26774,'EPSG',26774,'PROJCS["NAD27 / Indiana West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",3 [...]
 ---
---- EPSG 32061 : NAD27 / Guatemala Norte
+--- EPSG 26775 : NAD27 / Iowa North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32061,'EPSG',32061,'PROJCS["NAD27 / Guatemala Norte",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Co [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26775,'EPSG',26775,'PROJCS["NAD27 / Iowa North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parall [...]
 ---
---- EPSG 32062 : NAD27 / Guatemala Sur
+--- EPSG 26776 : NAD27 / Iowa South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32062,'EPSG',32062,'PROJCS["NAD27 / Guatemala Sur",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conf [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26776,'EPSG',26776,'PROJCS["NAD27 / Iowa South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parall [...]
 ---
---- EPSG 32064 : NAD27 / BLM 14N (ftUS)
+--- EPSG 26777 : NAD27 / Kansas North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32064,'EPSG',32064,'PROJCS["NAD27 / BLM 14N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26777,'EPSG',26777,'PROJCS["NAD27 / Kansas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_para [...]
 ---
---- EPSG 32065 : NAD27 / BLM 15N (ftUS)
+--- EPSG 26778 : NAD27 / Kansas South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32065,'EPSG',32065,'PROJCS["NAD27 / BLM 15N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26778,'EPSG',26778,'PROJCS["NAD27 / Kansas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_para [...]
 ---
---- EPSG 32066 : NAD27 / BLM 16N (ftUS)
+--- EPSG 26779 : NAD27 / Kentucky North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32066,'EPSG',32066,'PROJCS["NAD27 / BLM 16N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26779,'EPSG',26779,'PROJCS["NAD27 / Kentucky North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
 ---
---- EPSG 32067 : NAD27 / BLM 17N (ftUS)
+--- EPSG 26780 : NAD27 / Kentucky South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32067,'EPSG',32067,'PROJCS["NAD27 / BLM 17N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26780,'EPSG',26780,'PROJCS["NAD27 / Kentucky South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
 ---
---- EPSG 32074 : NAD27 / BLM 14N (feet) (deprecated)
+--- EPSG 26781 : NAD27 / Louisiana North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32074,'EPSG',32074,'PROJCS["NAD27 / BLM 14N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26781,'EPSG',26781,'PROJCS["NAD27 / Louisiana North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_p [...]
 ---
---- EPSG 32075 : NAD27 / BLM 15N (feet) (deprecated)
+--- EPSG 26782 : NAD27 / Louisiana South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32075,'EPSG',32075,'PROJCS["NAD27 / BLM 15N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26782,'EPSG',26782,'PROJCS["NAD27 / Louisiana South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_p [...]
 ---
---- EPSG 32076 : NAD27 / BLM 16N (feet) (deprecated)
+--- EPSG 26783 : NAD27 / Maine East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32076,'EPSG',32076,'PROJCS["NAD27 / BLM 16N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26783,'EPSG',26783,'PROJCS["NAD27 / Maine East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43. [...]
 ---
---- EPSG 32077 : NAD27 / BLM 17N (feet) (deprecated)
+--- EPSG 26784 : NAD27 / Maine West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32077,'EPSG',32077,'PROJCS["NAD27 / BLM 17N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26784,'EPSG',26784,'PROJCS["NAD27 / Maine West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42. [...]
 ---
---- EPSG 32081 : NAD27 / MTM zone 1
+--- EPSG 26785 : NAD27 / Maryland
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32081,'EPSG',32081,'PROJCS["NAD27 / MTM zone 1",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Merc [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26785,'EPSG',26785,'PROJCS["NAD27 / Maryland",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel [...]
 ---
---- EPSG 32082 : NAD27 / MTM zone 2
+--- EPSG 26786 : NAD27 / Massachusetts Mainland
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32082,'EPSG',32082,'PROJCS["NAD27 / MTM zone 2",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Merc [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26786,'EPSG',26786,'PROJCS["NAD27 / Massachusetts Mainland",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
 ---
---- EPSG 32083 : NAD27 / MTM zone 3
+--- EPSG 26787 : NAD27 / Massachusetts Island
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32083,'EPSG',32083,'PROJCS["NAD27 / MTM zone 3",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Merc [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26787,'EPSG',26787,'PROJCS["NAD27 / Massachusetts Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
 ---
---- EPSG 32084 : NAD27 / MTM zone 4
+--- EPSG 26791 : NAD27 / Minnesota North
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32084,'EPSG',32084,'PROJCS["NAD27 / MTM zone 4",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Merc [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26791,'EPSG',26791,'PROJCS["NAD27 / Minnesota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_p [...]
 ---
---- EPSG 32085 : NAD27 / MTM zone 5
+--- EPSG 26792 : NAD27 / Minnesota Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32085,'EPSG',32085,'PROJCS["NAD27 / MTM zone 5",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Merc [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26792,'EPSG',26792,'PROJCS["NAD27 / Minnesota Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard [...]
 ---
---- EPSG 32086 : NAD27 / MTM zone 6
+--- EPSG 26793 : NAD27 / Minnesota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32086,'EPSG',32086,'PROJCS["NAD27 / MTM zone 6",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Merc [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26793,'EPSG',26793,'PROJCS["NAD27 / Minnesota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_p [...]
 ---
---- EPSG 32098 : NAD27 / Quebec Lambert
+--- EPSG 26794 : NAD27 / Mississippi East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32098,'EPSG',32098,'PROJCS["NAD27 / Quebec Lambert",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Con [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26794,'EPSG',26794,'PROJCS["NAD27 / Mississippi East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origi [...]
 ---
---- EPSG 32099 : NAD27 / Louisiana Offshore
+--- EPSG 26795 : NAD27 / Mississippi West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32099,'EPSG',32099,'PROJCS["NAD27 / Louisiana Offshore",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26795,'EPSG',26795,'PROJCS["NAD27 / Mississippi West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origi [...]
 ---
---- EPSG 32100 : NAD83 / Montana
+--- EPSG 26796 : NAD27 / Missouri East
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32100,'EPSG',32100,'PROJCS["NAD83 / Montana",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lamb [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26796,'EPSG',26796,'PROJCS["NAD27 / Missouri East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32104 : NAD83 / Nebraska
+--- EPSG 26797 : NAD27 / Missouri Central
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32104,'EPSG',32104,'PROJCS["NAD83 / Nebraska",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lam [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26797,'EPSG',26797,'PROJCS["NAD27 / Missouri Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origi [...]
 ---
---- EPSG 32107 : NAD83 / Nevada East
+--- EPSG 26798 : NAD27 / Missouri West
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32107,'EPSG',32107,'PROJCS["NAD83 / Nevada East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26798,'EPSG',26798,'PROJCS["NAD27 / Missouri West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
 ---
---- EPSG 32108 : NAD83 / Nevada Central
+--- EPSG 26799 : NAD27 / California zone VII
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32108,'EPSG',32108,'PROJCS["NAD83 / Nevada Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26799,'EPSG',26799,'PROJCS["NAD27 / California zone VII",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standa [...]
 ---
---- EPSG 32109 : NAD83 / Nevada West
+--- EPSG 26801 : NAD Michigan / Michigan East (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32109,'EPSG',32109,'PROJCS["NAD83 / Nevada West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26801,'EPSG',26801,'PROJCS["NAD Michigan / Michigan East (deprecated)",GEOGCS["NAD27 Michigan",DATUM["NAD27_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 32110 : NAD83 / New Hampshire
+--- EPSG 26802 : NAD Michigan / Michigan Old Central (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32110,'EPSG',32110,'PROJCS["NAD83 / New Hampshire",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26802,'EPSG',26802,'PROJCS["NAD Michigan / Michigan Old Central (deprecated)",GEOGCS["NAD27 Michigan",DATUM["NAD27_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],PROJECTION["Transverse_ [...]
 ---
---- EPSG 32111 : NAD83 / New Jersey
+--- EPSG 26803 : NAD Michigan / Michigan West (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32111,'EPSG',32111,'PROJCS["NAD83 / New Jersey",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26803,'EPSG',26803,'PROJCS["NAD Michigan / Michigan West (deprecated)",GEOGCS["NAD27 Michigan",DATUM["NAD27_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],PROJECTION["Transverse_Mercato [...]
 ---
---- EPSG 32112 : NAD83 / New Mexico East
+--- EPSG 26811 : NAD Michigan / Michigan North (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32112,'EPSG',32112,'PROJCS["NAD83 / New Mexico East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26811,'EPSG',26811,'PROJCS["NAD Michigan / Michigan North (deprecated)",GEOGCS["NAD27 Michigan",DATUM["NAD27_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],PROJECTION["Lambert_Conformal [...]
 ---
---- EPSG 32113 : NAD83 / New Mexico Central
+--- EPSG 26812 : NAD Michigan / Michigan Central (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32113,'EPSG',32113,'PROJCS["NAD83 / New Mexico Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26812,'EPSG',26812,'PROJCS["NAD Michigan / Michigan Central (deprecated)",GEOGCS["NAD27 Michigan",DATUM["NAD27_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],PROJECTION["Lambert_Conform [...]
 ---
---- EPSG 32114 : NAD83 / New Mexico West
+--- EPSG 26813 : NAD Michigan / Michigan South (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32114,'EPSG',32114,'PROJCS["NAD83 / New Mexico West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26813,'EPSG',26813,'PROJCS["NAD Michigan / Michigan South (deprecated)",GEOGCS["NAD27 Michigan",DATUM["NAD27_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],PROJECTION["Lambert_Conformal [...]
 ---
---- EPSG 32115 : NAD83 / New York East
+--- EPSG 26814 : NAD83 / Maine East (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32115,'EPSG',32115,'PROJCS["NAD83 / New York East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26814,'EPSG',26814,'PROJCS["NAD83 / Maine East (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 32116 : NAD83 / New York Central
+--- EPSG 26815 : NAD83 / Maine West (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32116,'EPSG',32116,'PROJCS["NAD83 / New York Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26815,'EPSG',26815,'PROJCS["NAD83 / Maine West (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"], [...]
 ---
---- EPSG 32117 : NAD83 / New York West
+--- EPSG 26819 : NAD83 / Minnesota North (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32117,'EPSG',32117,'PROJCS["NAD83 / New York West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26819,'EPSG',26819,'PROJCS["NAD83 / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal [...]
 ---
---- EPSG 32118 : NAD83 / New York Long Island
+--- EPSG 26820 : NAD83 / Minnesota Central (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32118,'EPSG',32118,'PROJCS["NAD83 / New York Long Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26820,'EPSG',26820,'PROJCS["NAD83 / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conform [...]
 ---
---- EPSG 32119 : NAD83 / North Carolina
+--- EPSG 26821 : NAD83 / Minnesota South (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32119,'EPSG',32119,'PROJCS["NAD83 / North Carolina",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26821,'EPSG',26821,'PROJCS["NAD83 / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal [...]
 ---
---- EPSG 32120 : NAD83 / North Dakota North
+--- EPSG 26822 : NAD83 / Nebraska (ftUS) (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32120,'EPSG',32120,'PROJCS["NAD83 / North Dakota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26822,'EPSG',26822,'PROJCS["NAD83 / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_ [...]
+---
+--- EPSG 26823 : NAD83 / West Virginia North (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26823,'EPSG',26823,'PROJCS["NAD83 / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Confo [...]
+---
+--- EPSG 26824 : NAD83 / West Virginia South (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26824,'EPSG',26824,'PROJCS["NAD83 / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Confo [...]
+---
+--- EPSG 26825 : NAD83(HARN) / Maine East (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26825,'EPSG',26825,'PROJCS["NAD83(HARN) / Maine East (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION [...]
+---
+--- EPSG 26826 : NAD83(HARN) / Maine West (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26826,'EPSG',26826,'PROJCS["NAD83(HARN) / Maine West (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION [...]
+---
+--- EPSG 26830 : NAD83(HARN) / Minnesota North (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26830,'EPSG',26830,'PROJCS["NAD83(HARN) / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJE [...]
+---
+--- EPSG 26831 : NAD83(HARN) / Minnesota Central (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26831,'EPSG',26831,'PROJCS["NAD83(HARN) / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PRO [...]
+---
+--- EPSG 26832 : NAD83(HARN) / Minnesota South (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26832,'EPSG',26832,'PROJCS["NAD83(HARN) / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJE [...]
+---
+--- EPSG 26833 : NAD83(HARN) / Nebraska (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26833,'EPSG',26833,'PROJCS["NAD83(HARN) / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION[" [...]
+---
+--- EPSG 26834 : NAD83(HARN) / West Virginia North (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26834,'EPSG',26834,'PROJCS["NAD83(HARN) / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],P [...]
+---
+--- EPSG 26835 : NAD83(HARN) / West Virginia South (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26835,'EPSG',26835,'PROJCS["NAD83(HARN) / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],P [...]
+---
+--- EPSG 26836 : NAD83(NSRS2007) / Maine East (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26836,'EPSG',26836,'PROJCS["NAD83(NSRS2007) / Maine East (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","475 [...]
+---
+--- EPSG 26837 : NAD83(NSRS2007) / Maine West (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26837,'EPSG',26837,'PROJCS["NAD83(NSRS2007) / Maine West (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","475 [...]
+---
+--- EPSG 26841 : NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26841,'EPSG',26841,'PROJCS["NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
+---
+--- EPSG 26842 : NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26842,'EPSG',26842,'PROJCS["NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
+---
+--- EPSG 26843 : NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26843,'EPSG',26843,'PROJCS["NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
+---
+--- EPSG 26844 : NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26844,'EPSG',26844,'PROJCS["NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759" [...]
+---
+--- EPSG 26845 : NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26845,'EPSG',26845,'PROJCS["NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
+---
+--- EPSG 26846 : NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26846,'EPSG',26846,'PROJCS["NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
+---
+--- EPSG 26847 : NAD83 / Maine East (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26847,'EPSG',26847,'PROJCS["NAD83 / Maine East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
+---
+--- EPSG 26848 : NAD83 / Maine West (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26848,'EPSG',26848,'PROJCS["NAD83 / Maine West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["la [...]
+---
+--- EPSG 26849 : NAD83 / Minnesota North (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26849,'EPSG',26849,'PROJCS["NAD83 / Minnesota North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
+---
+--- EPSG 26850 : NAD83 / Minnesota Central (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26850,'EPSG',26850,'PROJCS["NAD83 / Minnesota Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
+---
+--- EPSG 26851 : NAD83 / Minnesota South (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26851,'EPSG',26851,'PROJCS["NAD83 / Minnesota South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
+---
+--- EPSG 26852 : NAD83 / Nebraska (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26852,'EPSG',26852,'PROJCS["NAD83 / Nebraska (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+---
+--- EPSG 26853 : NAD83 / West Virginia North (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26853,'EPSG',26853,'PROJCS["NAD83 / West Virginia North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2S [...]
+---
+--- EPSG 26854 : NAD83 / West Virginia South (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26854,'EPSG',26854,'PROJCS["NAD83 / West Virginia South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2S [...]
+---
+--- EPSG 26855 : NAD83(HARN) / Maine East (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26855,'EPSG',26855,'PROJCS["NAD83(HARN) / Maine East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
+---
+--- EPSG 26856 : NAD83(HARN) / Maine West (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26856,'EPSG',26856,'PROJCS["NAD83(HARN) / Maine West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_ [...]
+---
+--- EPSG 26857 : NAD83(HARN) / Minnesota North (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26857,'EPSG',26857,'PROJCS["NAD83(HARN) / Minnesota North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamber [...]
+---
+--- EPSG 26858 : NAD83(HARN) / Minnesota Central (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26858,'EPSG',26858,'PROJCS["NAD83(HARN) / Minnesota Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamb [...]
+---
+--- EPSG 26859 : NAD83(HARN) / Minnesota South (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26859,'EPSG',26859,'PROJCS["NAD83(HARN) / Minnesota South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lamber [...]
+---
+--- EPSG 26860 : NAD83(HARN) / Nebraska (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26860,'EPSG',26860,'PROJCS["NAD83(HARN) / Nebraska (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Lambert_Confo [...]
+---
+--- EPSG 26861 : NAD83(HARN) / West Virginia North (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26861,'EPSG',26861,'PROJCS["NAD83(HARN) / West Virginia North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["La [...]
+---
+--- EPSG 26862 : NAD83(HARN) / West Virginia South (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26862,'EPSG',26862,'PROJCS["NAD83(HARN) / West Virginia South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["La [...]
+---
+--- EPSG 26863 : NAD83(NSRS2007) / Maine East (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26863,'EPSG',26863,'PROJCS["NAD83(NSRS2007) / Maine East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
+---
+--- EPSG 26864 : NAD83(NSRS2007) / Maine West (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26864,'EPSG',26864,'PROJCS["NAD83(NSRS2007) / Maine West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTI [...]
+---
+--- EPSG 26865 : NAD83(NSRS2007) / Minnesota North (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26865,'EPSG',26865,'PROJCS["NAD83(NSRS2007) / Minnesota North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
+---
+--- EPSG 26866 : NAD83(NSRS2007) / Minnesota Central (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26866,'EPSG',26866,'PROJCS["NAD83(NSRS2007) / Minnesota Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],P [...]
+---
+--- EPSG 26867 : NAD83(NSRS2007) / Minnesota South (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26867,'EPSG',26867,'PROJCS["NAD83(NSRS2007) / Minnesota South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PRO [...]
+---
+--- EPSG 26868 : NAD83(NSRS2007) / Nebraska (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26868,'EPSG',26868,'PROJCS["NAD83(NSRS2007) / Nebraska (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],PROJECTION [...]
+---
+--- EPSG 26869 : NAD83(NSRS2007) / West Virginia North (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26869,'EPSG',26869,'PROJCS["NAD83(NSRS2007) / West Virginia North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]] [...]
+---
+--- EPSG 26870 : NAD83(NSRS2007) / West Virginia South (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26870,'EPSG',26870,'PROJCS["NAD83(NSRS2007) / West Virginia South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]] [...]
+---
+--- EPSG 26891 : NAD83(CSRS) / MTM zone 11
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26891,'EPSG',26891,'PROJCS["NAD83(CSRS) / MTM zone 11",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merc [...]
+---
+--- EPSG 26892 : NAD83(CSRS) / MTM zone 12
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26892,'EPSG',26892,'PROJCS["NAD83(CSRS) / MTM zone 12",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merc [...]
+---
+--- EPSG 26893 : NAD83(CSRS) / MTM zone 13
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26893,'EPSG',26893,'PROJCS["NAD83(CSRS) / MTM zone 13",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merc [...]
+---
+--- EPSG 26894 : NAD83(CSRS) / MTM zone 14
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26894,'EPSG',26894,'PROJCS["NAD83(CSRS) / MTM zone 14",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merc [...]
+---
+--- EPSG 26895 : NAD83(CSRS) / MTM zone 15
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26895,'EPSG',26895,'PROJCS["NAD83(CSRS) / MTM zone 15",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merc [...]
+---
+--- EPSG 26896 : NAD83(CSRS) / MTM zone 16
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26896,'EPSG',26896,'PROJCS["NAD83(CSRS) / MTM zone 16",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merc [...]
+---
+--- EPSG 26897 : NAD83(CSRS) / MTM zone 17
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26897,'EPSG',26897,'PROJCS["NAD83(CSRS) / MTM zone 17",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merc [...]
+---
+--- EPSG 26898 : NAD83(CSRS) / MTM zone 1
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26898,'EPSG',26898,'PROJCS["NAD83(CSRS) / MTM zone 1",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
+---
+--- EPSG 26899 : NAD83(CSRS) / MTM zone 2
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26899,'EPSG',26899,'PROJCS["NAD83(CSRS) / MTM zone 2",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],PROJECTION["Transverse_Merca [...]
+---
+--- EPSG 26901 : NAD83 / UTM zone 1N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26901,'EPSG',26901,'PROJCS["NAD83 / UTM zone 1N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 26902 : NAD83 / UTM zone 2N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26902,'EPSG',26902,'PROJCS["NAD83 / UTM zone 2N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 26903 : NAD83 / UTM zone 3N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26903,'EPSG',26903,'PROJCS["NAD83 / UTM zone 3N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 26904 : NAD83 / UTM zone 4N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26904,'EPSG',26904,'PROJCS["NAD83 / UTM zone 4N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 26905 : NAD83 / UTM zone 5N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26905,'EPSG',26905,'PROJCS["NAD83 / UTM zone 5N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 26906 : NAD83 / UTM zone 6N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26906,'EPSG',26906,'PROJCS["NAD83 / UTM zone 6N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 26907 : NAD83 / UTM zone 7N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26907,'EPSG',26907,'PROJCS["NAD83 / UTM zone 7N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 26908 : NAD83 / UTM zone 8N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26908,'EPSG',26908,'PROJCS["NAD83 / UTM zone 8N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 26909 : NAD83 / UTM zone 9N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26909,'EPSG',26909,'PROJCS["NAD83 / UTM zone 9N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 26910 : NAD83 / UTM zone 10N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26910,'EPSG',26910,'PROJCS["NAD83 / UTM zone 10N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26911 : NAD83 / UTM zone 11N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26911,'EPSG',26911,'PROJCS["NAD83 / UTM zone 11N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26912 : NAD83 / UTM zone 12N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26912,'EPSG',26912,'PROJCS["NAD83 / UTM zone 12N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26913 : NAD83 / UTM zone 13N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26913,'EPSG',26913,'PROJCS["NAD83 / UTM zone 13N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26914 : NAD83 / UTM zone 14N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26914,'EPSG',26914,'PROJCS["NAD83 / UTM zone 14N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26915 : NAD83 / UTM zone 15N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26915,'EPSG',26915,'PROJCS["NAD83 / UTM zone 15N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26916 : NAD83 / UTM zone 16N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26916,'EPSG',26916,'PROJCS["NAD83 / UTM zone 16N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26917 : NAD83 / UTM zone 17N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26917,'EPSG',26917,'PROJCS["NAD83 / UTM zone 17N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26918 : NAD83 / UTM zone 18N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26918,'EPSG',26918,'PROJCS["NAD83 / UTM zone 18N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26919 : NAD83 / UTM zone 19N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26919,'EPSG',26919,'PROJCS["NAD83 / UTM zone 19N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26920 : NAD83 / UTM zone 20N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26920,'EPSG',26920,'PROJCS["NAD83 / UTM zone 20N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26921 : NAD83 / UTM zone 21N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26921,'EPSG',26921,'PROJCS["NAD83 / UTM zone 21N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26922 : NAD83 / UTM zone 22N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26922,'EPSG',26922,'PROJCS["NAD83 / UTM zone 22N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26923 : NAD83 / UTM zone 23N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26923,'EPSG',26923,'PROJCS["NAD83 / UTM zone 23N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26929 : NAD83 / Alabama East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26929,'EPSG',26929,'PROJCS["NAD83 / Alabama East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26930 : NAD83 / Alabama West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26930,'EPSG',26930,'PROJCS["NAD83 / Alabama West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26931 : NAD83 / Alaska zone 1
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26931,'EPSG',26931,'PROJCS["NAD83 / Alaska zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["la [...]
+---
+--- EPSG 26932 : NAD83 / Alaska zone 2
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26932,'EPSG',26932,'PROJCS["NAD83 / Alaska zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26933 : NAD83 / Alaska zone 3
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26933,'EPSG',26933,'PROJCS["NAD83 / Alaska zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26934 : NAD83 / Alaska zone 4
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26934,'EPSG',26934,'PROJCS["NAD83 / Alaska zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26935 : NAD83 / Alaska zone 5
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26935,'EPSG',26935,'PROJCS["NAD83 / Alaska zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26936 : NAD83 / Alaska zone 6
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26936,'EPSG',26936,'PROJCS["NAD83 / Alaska zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26937 : NAD83 / Alaska zone 7
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26937,'EPSG',26937,'PROJCS["NAD83 / Alaska zone 7",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26938 : NAD83 / Alaska zone 8
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26938,'EPSG',26938,'PROJCS["NAD83 / Alaska zone 8",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26939 : NAD83 / Alaska zone 9
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26939,'EPSG',26939,'PROJCS["NAD83 / Alaska zone 9",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26940 : NAD83 / Alaska zone 10
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26940,'EPSG',26940,'PROJCS["NAD83 / Alaska zone 10",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 26941 : NAD83 / California zone 1
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26941,'EPSG',26941,'PROJCS["NAD83 / California zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
+---
+--- EPSG 26942 : NAD83 / California zone 2
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26942,'EPSG',26942,'PROJCS["NAD83 / California zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
+---
+--- EPSG 26943 : NAD83 / California zone 3
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26943,'EPSG',26943,'PROJCS["NAD83 / California zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
+---
+--- EPSG 26944 : NAD83 / California zone 4
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26944,'EPSG',26944,'PROJCS["NAD83 / California zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
+---
+--- EPSG 26945 : NAD83 / California zone 5
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26945,'EPSG',26945,'PROJCS["NAD83 / California zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
+---
+--- EPSG 26946 : NAD83 / California zone 6
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26946,'EPSG',26946,'PROJCS["NAD83 / California zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
+---
+--- EPSG 26948 : NAD83 / Arizona East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26948,'EPSG',26948,'PROJCS["NAD83 / Arizona East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26949 : NAD83 / Arizona Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26949,'EPSG',26949,'PROJCS["NAD83 / Arizona Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
+---
+--- EPSG 26950 : NAD83 / Arizona West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26950,'EPSG',26950,'PROJCS["NAD83 / Arizona West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26951 : NAD83 / Arkansas North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26951,'EPSG',26951,'PROJCS["NAD83 / Arkansas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 26952 : NAD83 / Arkansas South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26952,'EPSG',26952,'PROJCS["NAD83 / Arkansas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 26953 : NAD83 / Colorado North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26953,'EPSG',26953,'PROJCS["NAD83 / Colorado North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 26954 : NAD83 / Colorado Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26954,'EPSG',26954,'PROJCS["NAD83 / Colorado Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
+---
+--- EPSG 26955 : NAD83 / Colorado South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26955,'EPSG',26955,'PROJCS["NAD83 / Colorado South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 26956 : NAD83 / Connecticut
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26956,'EPSG',26956,'PROJCS["NAD83 / Connecticut",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[" [...]
+---
+--- EPSG 26957 : NAD83 / Delaware
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26957,'EPSG',26957,'PROJCS["NAD83 / Delaware",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
+---
+--- EPSG 26958 : NAD83 / Florida East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26958,'EPSG',26958,'PROJCS["NAD83 / Florida East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26959 : NAD83 / Florida West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26959,'EPSG',26959,'PROJCS["NAD83 / Florida West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26960 : NAD83 / Florida North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26960,'EPSG',26960,'PROJCS["NAD83 / Florida North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER [...]
+---
+--- EPSG 26961 : NAD83 / Hawaii zone 1
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26961,'EPSG',26961,'PROJCS["NAD83 / Hawaii zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26962 : NAD83 / Hawaii zone 2
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26962,'EPSG',26962,'PROJCS["NAD83 / Hawaii zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26963 : NAD83 / Hawaii zone 3
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26963,'EPSG',26963,'PROJCS["NAD83 / Hawaii zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26964 : NAD83 / Hawaii zone 4
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26964,'EPSG',26964,'PROJCS["NAD83 / Hawaii zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26965 : NAD83 / Hawaii zone 5
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26965,'EPSG',26965,'PROJCS["NAD83 / Hawaii zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26966 : NAD83 / Georgia East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26966,'EPSG',26966,'PROJCS["NAD83 / Georgia East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26967 : NAD83 / Georgia West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26967,'EPSG',26967,'PROJCS["NAD83 / Georgia West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26968 : NAD83 / Idaho East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26968,'EPSG',26968,'PROJCS["NAD83 / Idaho East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 26969 : NAD83 / Idaho Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26969,'EPSG',26969,'PROJCS["NAD83 / Idaho Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26970 : NAD83 / Idaho West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26970,'EPSG',26970,'PROJCS["NAD83 / Idaho West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 26971 : NAD83 / Illinois East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26971,'EPSG',26971,'PROJCS["NAD83 / Illinois East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26972 : NAD83 / Illinois West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26972,'EPSG',26972,'PROJCS["NAD83 / Illinois West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26973 : NAD83 / Indiana East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26973,'EPSG',26973,'PROJCS["NAD83 / Indiana East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26974 : NAD83 / Indiana West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26974,'EPSG',26974,'PROJCS["NAD83 / Indiana West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 26975 : NAD83 / Iowa North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26975,'EPSG',26975,'PROJCS["NAD83 / Iowa North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["s [...]
+---
+--- EPSG 26976 : NAD83 / Iowa South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26976,'EPSG',26976,'PROJCS["NAD83 / Iowa South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["s [...]
+---
+--- EPSG 26977 : NAD83 / Kansas North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26977,'EPSG',26977,'PROJCS["NAD83 / Kansas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[ [...]
+---
+--- EPSG 26978 : NAD83 / Kansas South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26978,'EPSG',26978,'PROJCS["NAD83 / Kansas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[ [...]
+---
+--- EPSG 26979 : NAD83 / Kentucky North (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26979,'EPSG',26979,'PROJCS["NAD83 / Kentucky North (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2 [...]
+---
+--- EPSG 26980 : NAD83 / Kentucky South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26980,'EPSG',26980,'PROJCS["NAD83 / Kentucky South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 26981 : NAD83 / Louisiana North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26981,'EPSG',26981,'PROJCS["NAD83 / Louisiana North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+---
+--- EPSG 26982 : NAD83 / Louisiana South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26982,'EPSG',26982,'PROJCS["NAD83 / Louisiana South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+---
+--- EPSG 26983 : NAD83 / Maine East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26983,'EPSG',26983,'PROJCS["NAD83 / Maine East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 26984 : NAD83 / Maine West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26984,'EPSG',26984,'PROJCS["NAD83 / Maine West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 26985 : NAD83 / Maryland
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26985,'EPSG',26985,'PROJCS["NAD83 / Maryland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
+---
+--- EPSG 26986 : NAD83 / Massachusetts Mainland
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26986,'EPSG',26986,'PROJCS["NAD83 / Massachusetts Mainland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"], [...]
+---
+--- EPSG 26987 : NAD83 / Massachusetts Island
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26987,'EPSG',26987,'PROJCS["NAD83 / Massachusetts Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
+---
+--- EPSG 26988 : NAD83 / Michigan North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26988,'EPSG',26988,'PROJCS["NAD83 / Michigan North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 26989 : NAD83 / Michigan Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26989,'EPSG',26989,'PROJCS["NAD83 / Michigan Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
+---
+--- EPSG 26990 : NAD83 / Michigan South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26990,'EPSG',26990,'PROJCS["NAD83 / Michigan South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 26991 : NAD83 / Minnesota North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26991,'EPSG',26991,'PROJCS["NAD83 / Minnesota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+---
+--- EPSG 26992 : NAD83 / Minnesota Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26992,'EPSG',26992,'PROJCS["NAD83 / Minnesota Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
+---
+--- EPSG 26993 : NAD83 / Minnesota South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26993,'EPSG',26993,'PROJCS["NAD83 / Minnesota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+---
+--- EPSG 26994 : NAD83 / Mississippi East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26994,'EPSG',26994,'PROJCS["NAD83 / Mississippi East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
+---
+--- EPSG 26995 : NAD83 / Mississippi West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26995,'EPSG',26995,'PROJCS["NAD83 / Mississippi West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
+---
+--- EPSG 26996 : NAD83 / Missouri East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26996,'EPSG',26996,'PROJCS["NAD83 / Missouri East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 26997 : NAD83 / Missouri Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26997,'EPSG',26997,'PROJCS["NAD83 / Missouri Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
+---
+--- EPSG 26998 : NAD83 / Missouri West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (26998,'EPSG',26998,'PROJCS["NAD83 / Missouri West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 27037 : Nahrwan 1967 / UTM zone 37N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27037,'EPSG',27037,'PROJCS["Nahrwan 1967 / UTM zone 37N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 27038 : Nahrwan 1967 / UTM zone 38N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27038,'EPSG',27038,'PROJCS["Nahrwan 1967 / UTM zone 38N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 27039 : Nahrwan 1967 / UTM zone 39N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27039,'EPSG',27039,'PROJCS["Nahrwan 1967 / UTM zone 39N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 27040 : Nahrwan 1967 / UTM zone 40N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27040,'EPSG',27040,'PROJCS["Nahrwan 1967 / UTM zone 40N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 27120 : Naparima 1972 / UTM zone 20N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27120,'EPSG',27120,'PROJCS["Naparima 1972 / UTM zone 20N",GEOGCS["Naparima 1972",DATUM["Naparima_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-10,375,165,0,0,0,0],AUTHORITY["EPSG","6271"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4271"]],PROJECTION["Transverse_Mercator"],PARAMETE [...]
+---
+--- EPSG 27200 : NZGD49 / New Zealand Map Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27200,'EPSG',27200,'PROJCS["NZGD49 / New Zealand Map Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECT [...]
+---
+--- EPSG 27205 : NZGD49 / Mount Eden Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27205,'EPSG',27205,'PROJCS["NZGD49 / Mount Eden Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTIO [...]
+---
+--- EPSG 27206 : NZGD49 / Bay of Plenty Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27206,'EPSG',27206,'PROJCS["NZGD49 / Bay of Plenty Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJEC [...]
+---
+--- EPSG 27207 : NZGD49 / Poverty Bay Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27207,'EPSG',27207,'PROJCS["NZGD49 / Poverty Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTI [...]
+---
+--- EPSG 27208 : NZGD49 / Hawkes Bay Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27208,'EPSG',27208,'PROJCS["NZGD49 / Hawkes Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTIO [...]
+---
+--- EPSG 27209 : NZGD49 / Taranaki Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27209,'EPSG',27209,'PROJCS["NZGD49 / Taranaki Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION[ [...]
+---
+--- EPSG 27210 : NZGD49 / Tuhirangi Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27210,'EPSG',27210,'PROJCS["NZGD49 / Tuhirangi Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION [...]
+---
+--- EPSG 27211 : NZGD49 / Wanganui Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27211,'EPSG',27211,'PROJCS["NZGD49 / Wanganui Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION[ [...]
+---
+--- EPSG 27212 : NZGD49 / Wairarapa Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27212,'EPSG',27212,'PROJCS["NZGD49 / Wairarapa Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION [...]
+---
+--- EPSG 27213 : NZGD49 / Wellington Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27213,'EPSG',27213,'PROJCS["NZGD49 / Wellington Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTIO [...]
+---
+--- EPSG 27214 : NZGD49 / Collingwood Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27214,'EPSG',27214,'PROJCS["NZGD49 / Collingwood Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTI [...]
+---
+--- EPSG 27215 : NZGD49 / Nelson Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27215,'EPSG',27215,'PROJCS["NZGD49 / Nelson Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["T [...]
+---
+--- EPSG 27216 : NZGD49 / Karamea Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27216,'EPSG',27216,'PROJCS["NZGD49 / Karamea Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION[" [...]
+---
+--- EPSG 27217 : NZGD49 / Buller Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27217,'EPSG',27217,'PROJCS["NZGD49 / Buller Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["T [...]
+---
+--- EPSG 27218 : NZGD49 / Grey Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27218,'EPSG',27218,'PROJCS["NZGD49 / Grey Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["Tra [...]
+---
+--- EPSG 27219 : NZGD49 / Amuri Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27219,'EPSG',27219,'PROJCS["NZGD49 / Amuri Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["Tr [...]
+---
+--- EPSG 27220 : NZGD49 / Marlborough Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27220,'EPSG',27220,'PROJCS["NZGD49 / Marlborough Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTI [...]
+---
+--- EPSG 27221 : NZGD49 / Hokitika Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27221,'EPSG',27221,'PROJCS["NZGD49 / Hokitika Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION[ [...]
+---
+--- EPSG 27222 : NZGD49 / Okarito Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27222,'EPSG',27222,'PROJCS["NZGD49 / Okarito Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION[" [...]
+---
+--- EPSG 27223 : NZGD49 / Jacksons Bay Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27223,'EPSG',27223,'PROJCS["NZGD49 / Jacksons Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECT [...]
+---
+--- EPSG 27224 : NZGD49 / Mount Pleasant Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27224,'EPSG',27224,'PROJCS["NZGD49 / Mount Pleasant Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJE [...]
+---
+--- EPSG 27225 : NZGD49 / Gawler Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27225,'EPSG',27225,'PROJCS["NZGD49 / Gawler Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["T [...]
+---
+--- EPSG 27226 : NZGD49 / Timaru Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27226,'EPSG',27226,'PROJCS["NZGD49 / Timaru Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["T [...]
+---
+--- EPSG 27227 : NZGD49 / Lindis Peak Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27227,'EPSG',27227,'PROJCS["NZGD49 / Lindis Peak Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTI [...]
+---
+--- EPSG 27228 : NZGD49 / Mount Nicholas Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27228,'EPSG',27228,'PROJCS["NZGD49 / Mount Nicholas Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJE [...]
+---
+--- EPSG 27229 : NZGD49 / Mount York Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27229,'EPSG',27229,'PROJCS["NZGD49 / Mount York Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTIO [...]
+---
+--- EPSG 27230 : NZGD49 / Observation Point Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27230,'EPSG',27230,'PROJCS["NZGD49 / Observation Point Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PR [...]
+---
+--- EPSG 27231 : NZGD49 / North Taieri Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27231,'EPSG',27231,'PROJCS["NZGD49 / North Taieri Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECT [...]
+---
+--- EPSG 27232 : NZGD49 / Bluff Circuit
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27232,'EPSG',27232,'PROJCS["NZGD49 / Bluff Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["Tr [...]
+---
+--- EPSG 27258 : NZGD49 / UTM zone 58S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27258,'EPSG',27258,'PROJCS["NZGD49 / UTM zone 58S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["Tra [...]
+---
+--- EPSG 27259 : NZGD49 / UTM zone 59S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27259,'EPSG',27259,'PROJCS["NZGD49 / UTM zone 59S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["Tra [...]
+---
+--- EPSG 27260 : NZGD49 / UTM zone 60S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27260,'EPSG',27260,'PROJCS["NZGD49 / UTM zone 60S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION["Tra [...]
+---
+--- EPSG 27291 : NZGD49 / North Island Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27291,'EPSG',27291,'PROJCS["NZGD49 / North Island Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION [...]
+---
+--- EPSG 27292 : NZGD49 / South Island Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27292,'EPSG',27292,'PROJCS["NZGD49 / South Island Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],PROJECTION [...]
+---
+--- EPSG 27391 : NGO 1948 (Oslo) / NGO zone I
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27391,'EPSG',27391,'PROJCS["NGO 1948 (Oslo) / NGO zone I",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],PRO [...]
+---
+--- EPSG 27392 : NGO 1948 (Oslo) / NGO zone II
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27392,'EPSG',27392,'PROJCS["NGO 1948 (Oslo) / NGO zone II",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],PR [...]
+---
+--- EPSG 27393 : NGO 1948 (Oslo) / NGO zone III
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27393,'EPSG',27393,'PROJCS["NGO 1948 (Oslo) / NGO zone III",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],P [...]
+---
+--- EPSG 27394 : NGO 1948 (Oslo) / NGO zone IV
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27394,'EPSG',27394,'PROJCS["NGO 1948 (Oslo) / NGO zone IV",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],PR [...]
+---
+--- EPSG 27395 : NGO 1948 (Oslo) / NGO zone V
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27395,'EPSG',27395,'PROJCS["NGO 1948 (Oslo) / NGO zone V",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],PRO [...]
+---
+--- EPSG 27396 : NGO 1948 (Oslo) / NGO zone VI
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27396,'EPSG',27396,'PROJCS["NGO 1948 (Oslo) / NGO zone VI",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],PR [...]
+---
+--- EPSG 27397 : NGO 1948 (Oslo) / NGO zone VII
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27397,'EPSG',27397,'PROJCS["NGO 1948 (Oslo) / NGO zone VII",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],P [...]
+---
+--- EPSG 27398 : NGO 1948 (Oslo) / NGO zone VIII
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27398,'EPSG',27398,'PROJCS["NGO 1948 (Oslo) / NGO zone VIII",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]], [...]
+---
+--- EPSG 27429 : Datum 73 / UTM zone 29N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27429,'EPSG',27429,'PROJCS["Datum 73 / UTM zone 29N",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],PROJECTION["Transverse_Mercator"],PARAMETER[" [...]
+---
+--- EPSG 27492 : Datum 73 / Modified Portuguese Grid (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27492,'EPSG',27492,'PROJCS["Datum 73 / Modified Portuguese Grid (deprecated)",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],PROJECTION["Transver [...]
+---
+--- EPSG 27493 : Datum 73 / Modified Portuguese Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27493,'EPSG',27493,'PROJCS["Datum 73 / Modified Portuguese Grid",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],PROJECTION["Transverse_Mercator"] [...]
+---
+--- EPSG 27500 : ATF (Paris) / Nord de Guerre
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27500,'EPSG',27500,'PROJCS["ATF (Paris) / Nord de Guerre",GEOGCS["ATF (Paris)",DATUM["Ancienne_Triangulation_Francaise_Paris",SPHEROID["Plessis 1817",6376523,308.64,AUTHORITY["EPSG","7027"]],AUTHORITY["EPSG","6901"]],PRIMEM["Paris RGS",2.337208333333333,AUTHORITY["EPSG","8914"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4901"]],PROJECTION["Lambert_Conformal_Conic_ [...]
+---
+--- EPSG 27561 : NTF (Paris) / Lambert Nord France
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27561,'EPSG',27561,'PROJCS["NTF (Paris) / Lambert Nord France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","48 [...]
+---
+--- EPSG 27562 : NTF (Paris) / Lambert Centre France
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27562,'EPSG',27562,'PROJCS["NTF (Paris) / Lambert Centre France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG"," [...]
+---
+--- EPSG 27563 : NTF (Paris) / Lambert Sud France
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27563,'EPSG',27563,'PROJCS["NTF (Paris) / Lambert Sud France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","480 [...]
+---
+--- EPSG 27564 : NTF (Paris) / Lambert Corse
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27564,'EPSG',27564,'PROJCS["NTF (Paris) / Lambert Corse",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]], [...]
+---
+--- EPSG 27571 : NTF (Paris) / Lambert zone I
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27571,'EPSG',27571,'PROJCS["NTF (Paris) / Lambert zone I",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]] [...]
+---
+--- EPSG 27572 : NTF (Paris) / Lambert zone II
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27572,'EPSG',27572,'PROJCS["NTF (Paris) / Lambert zone II",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"] [...]
+---
+--- EPSG 27573 : NTF (Paris) / Lambert zone III
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27573,'EPSG',27573,'PROJCS["NTF (Paris) / Lambert zone III",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807" [...]
+---
+--- EPSG 27574 : NTF (Paris) / Lambert zone IV
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27574,'EPSG',27574,'PROJCS["NTF (Paris) / Lambert zone IV",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"] [...]
+---
+--- EPSG 27581 : NTF (Paris) / France I (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27581,'EPSG',27581,'PROJCS["NTF (Paris) / France I (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG"," [...]
+---
+--- EPSG 27582 : NTF (Paris) / France II (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27582,'EPSG',27582,'PROJCS["NTF (Paris) / France II (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG", [...]
+---
+--- EPSG 27583 : NTF (Paris) / France III (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27583,'EPSG',27583,'PROJCS["NTF (Paris) / France III (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG" [...]
+---
+--- EPSG 27584 : NTF (Paris) / France IV (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27584,'EPSG',27584,'PROJCS["NTF (Paris) / France IV (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG", [...]
+---
+--- EPSG 27591 : NTF (Paris) / Nord France (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27591,'EPSG',27591,'PROJCS["NTF (Paris) / Nord France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 27592 : NTF (Paris) / Centre France (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27592,'EPSG',27592,'PROJCS["NTF (Paris) / Centre France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EP [...]
+---
+--- EPSG 27593 : NTF (Paris) / Sud France (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27593,'EPSG',27593,'PROJCS["NTF (Paris) / Sud France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG" [...]
+---
+--- EPSG 27594 : NTF (Paris) / Corse (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27594,'EPSG',27594,'PROJCS["NTF (Paris) / Corse (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","480 [...]
+---
+--- EPSG 27700 : OSGB 1936 / British National Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (27700,'EPSG',27700,'PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]],PROJECTION["T [...]
+---
+--- EPSG 28191 : Palestine 1923 / Palestine Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28191,'EPSG',28191,'PROJCS["Palestine 1923 / Palestine Grid",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
+---
+--- EPSG 28192 : Palestine 1923 / Palestine Belt
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28192,'EPSG',28192,'PROJCS["Palestine 1923 / Palestine Belt",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
+---
+--- EPSG 28193 : Palestine 1923 / Israeli CS Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28193,'EPSG',28193,'PROJCS["Palestine 1923 / Israeli CS Grid",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
+---
+--- EPSG 28232 : Pointe Noire / UTM zone 32S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28232,'EPSG',28232,'PROJCS["Pointe Noire / UTM zone 32S",GEOGCS["Pointe Noire",DATUM["Congo_1960_Pointe_Noire",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-148,51,-291,0,0,0,0],AUTHORITY["EPSG","6282"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4282"]],PROJECTION["Transv [...]
+---
+--- EPSG 28348 : GDA94 / MGA zone 48
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28348,'EPSG',28348,'PROJCS["GDA94 / MGA zone 48",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28349 : GDA94 / MGA zone 49
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28349,'EPSG',28349,'PROJCS["GDA94 / MGA zone 49",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28350 : GDA94 / MGA zone 50
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28350,'EPSG',28350,'PROJCS["GDA94 / MGA zone 50",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28351 : GDA94 / MGA zone 51
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28351,'EPSG',28351,'PROJCS["GDA94 / MGA zone 51",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28352 : GDA94 / MGA zone 52
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28352,'EPSG',28352,'PROJCS["GDA94 / MGA zone 52",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28353 : GDA94 / MGA zone 53
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28353,'EPSG',28353,'PROJCS["GDA94 / MGA zone 53",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28354 : GDA94 / MGA zone 54
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28354,'EPSG',28354,'PROJCS["GDA94 / MGA zone 54",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28355 : GDA94 / MGA zone 55
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28355,'EPSG',28355,'PROJCS["GDA94 / MGA zone 55",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28356 : GDA94 / MGA zone 56
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28356,'EPSG',28356,'PROJCS["GDA94 / MGA zone 56",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28357 : GDA94 / MGA zone 57
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28357,'EPSG',28357,'PROJCS["GDA94 / MGA zone 57",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28358 : GDA94 / MGA zone 58
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28358,'EPSG',28358,'PROJCS["GDA94 / MGA zone 58",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 28402 : Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28402,'EPSG',28402,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTI [...]
+---
+--- EPSG 28403 : Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28403,'EPSG',28403,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTI [...]
+---
+--- EPSG 28404 : Pulkovo 1942 / Gauss-Kruger zone 4
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28404,'EPSG',28404,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transvers [...]
+---
+--- EPSG 28405 : Pulkovo 1942 / Gauss-Kruger zone 5
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28405,'EPSG',28405,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transvers [...]
+---
+--- EPSG 28406 : Pulkovo 1942 / Gauss-Kruger zone 6
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28406,'EPSG',28406,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transvers [...]
+---
+--- EPSG 28407 : Pulkovo 1942 / Gauss-Kruger zone 7
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28407,'EPSG',28407,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transvers [...]
+---
+--- EPSG 28408 : Pulkovo 1942 / Gauss-Kruger zone 8
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28408,'EPSG',28408,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transvers [...]
+---
+--- EPSG 28409 : Pulkovo 1942 / Gauss-Kruger zone 9
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28409,'EPSG',28409,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transvers [...]
+---
+--- EPSG 28410 : Pulkovo 1942 / Gauss-Kruger zone 10
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28410,'EPSG',28410,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28411 : Pulkovo 1942 / Gauss-Kruger zone 11
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28411,'EPSG',28411,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 11",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28412 : Pulkovo 1942 / Gauss-Kruger zone 12
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28412,'EPSG',28412,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 12",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28413 : Pulkovo 1942 / Gauss-Kruger zone 13
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28413,'EPSG',28413,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 13",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28414 : Pulkovo 1942 / Gauss-Kruger zone 14
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28414,'EPSG',28414,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 14",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28415 : Pulkovo 1942 / Gauss-Kruger zone 15
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28415,'EPSG',28415,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 15",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28416 : Pulkovo 1942 / Gauss-Kruger zone 16
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28416,'EPSG',28416,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 16",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28417 : Pulkovo 1942 / Gauss-Kruger zone 17
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28417,'EPSG',28417,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 17",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28418 : Pulkovo 1942 / Gauss-Kruger zone 18
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28418,'EPSG',28418,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 18",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28419 : Pulkovo 1942 / Gauss-Kruger zone 19
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28419,'EPSG',28419,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 19",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28420 : Pulkovo 1942 / Gauss-Kruger zone 20
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28420,'EPSG',28420,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 20",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28421 : Pulkovo 1942 / Gauss-Kruger zone 21
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28421,'EPSG',28421,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 21",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28422 : Pulkovo 1942 / Gauss-Kruger zone 22
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28422,'EPSG',28422,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 22",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28423 : Pulkovo 1942 / Gauss-Kruger zone 23
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28423,'EPSG',28423,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 23",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28424 : Pulkovo 1942 / Gauss-Kruger zone 24
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28424,'EPSG',28424,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 24",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28425 : Pulkovo 1942 / Gauss-Kruger zone 25
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28425,'EPSG',28425,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 25",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28426 : Pulkovo 1942 / Gauss-Kruger zone 26
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28426,'EPSG',28426,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 26",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28427 : Pulkovo 1942 / Gauss-Kruger zone 27
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28427,'EPSG',28427,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 27",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28428 : Pulkovo 1942 / Gauss-Kruger zone 28
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28428,'EPSG',28428,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 28",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28429 : Pulkovo 1942 / Gauss-Kruger zone 29
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28429,'EPSG',28429,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 29",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28430 : Pulkovo 1942 / Gauss-Kruger zone 30
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28430,'EPSG',28430,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 30",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28431 : Pulkovo 1942 / Gauss-Kruger zone 31
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28431,'EPSG',28431,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 31",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28432 : Pulkovo 1942 / Gauss-Kruger zone 32
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28432,'EPSG',28432,'PROJCS["Pulkovo 1942 / Gauss-Kruger zone 32",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION["Transver [...]
+---
+--- EPSG 28462 : Pulkovo 1942 / Gauss-Kruger 2N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28462,'EPSG',28462,'PROJCS["Pulkovo 1942 / Gauss-Kruger 2N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[" [...]
+---
+--- EPSG 28463 : Pulkovo 1942 / Gauss-Kruger 3N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28463,'EPSG',28463,'PROJCS["Pulkovo 1942 / Gauss-Kruger 3N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[" [...]
+---
+--- EPSG 28464 : Pulkovo 1942 / Gauss-Kruger 4N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28464,'EPSG',28464,'PROJCS["Pulkovo 1942 / Gauss-Kruger 4N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[" [...]
+---
+--- EPSG 28465 : Pulkovo 1942 / Gauss-Kruger 5N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28465,'EPSG',28465,'PROJCS["Pulkovo 1942 / Gauss-Kruger 5N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[" [...]
+---
+--- EPSG 28466 : Pulkovo 1942 / Gauss-Kruger 6N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28466,'EPSG',28466,'PROJCS["Pulkovo 1942 / Gauss-Kruger 6N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[" [...]
+---
+--- EPSG 28467 : Pulkovo 1942 / Gauss-Kruger 7N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28467,'EPSG',28467,'PROJCS["Pulkovo 1942 / Gauss-Kruger 7N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[" [...]
+---
+--- EPSG 28468 : Pulkovo 1942 / Gauss-Kruger 8N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28468,'EPSG',28468,'PROJCS["Pulkovo 1942 / Gauss-Kruger 8N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[" [...]
+---
+--- EPSG 28469 : Pulkovo 1942 / Gauss-Kruger 9N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28469,'EPSG',28469,'PROJCS["Pulkovo 1942 / Gauss-Kruger 9N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[" [...]
+---
+--- EPSG 28470 : Pulkovo 1942 / Gauss-Kruger 10N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28470,'EPSG',28470,'PROJCS["Pulkovo 1942 / Gauss-Kruger 10N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28471 : Pulkovo 1942 / Gauss-Kruger 11N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28471,'EPSG',28471,'PROJCS["Pulkovo 1942 / Gauss-Kruger 11N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28472 : Pulkovo 1942 / Gauss-Kruger 12N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28472,'EPSG',28472,'PROJCS["Pulkovo 1942 / Gauss-Kruger 12N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28473 : Pulkovo 1942 / Gauss-Kruger 13N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28473,'EPSG',28473,'PROJCS["Pulkovo 1942 / Gauss-Kruger 13N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28474 : Pulkovo 1942 / Gauss-Kruger 14N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28474,'EPSG',28474,'PROJCS["Pulkovo 1942 / Gauss-Kruger 14N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28475 : Pulkovo 1942 / Gauss-Kruger 15N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28475,'EPSG',28475,'PROJCS["Pulkovo 1942 / Gauss-Kruger 15N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28476 : Pulkovo 1942 / Gauss-Kruger 16N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28476,'EPSG',28476,'PROJCS["Pulkovo 1942 / Gauss-Kruger 16N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28477 : Pulkovo 1942 / Gauss-Kruger 17N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28477,'EPSG',28477,'PROJCS["Pulkovo 1942 / Gauss-Kruger 17N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28478 : Pulkovo 1942 / Gauss-Kruger 18N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28478,'EPSG',28478,'PROJCS["Pulkovo 1942 / Gauss-Kruger 18N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28479 : Pulkovo 1942 / Gauss-Kruger 19N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28479,'EPSG',28479,'PROJCS["Pulkovo 1942 / Gauss-Kruger 19N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28480 : Pulkovo 1942 / Gauss-Kruger 20N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28480,'EPSG',28480,'PROJCS["Pulkovo 1942 / Gauss-Kruger 20N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28481 : Pulkovo 1942 / Gauss-Kruger 21N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28481,'EPSG',28481,'PROJCS["Pulkovo 1942 / Gauss-Kruger 21N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28482 : Pulkovo 1942 / Gauss-Kruger 22N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28482,'EPSG',28482,'PROJCS["Pulkovo 1942 / Gauss-Kruger 22N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28483 : Pulkovo 1942 / Gauss-Kruger 23N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28483,'EPSG',28483,'PROJCS["Pulkovo 1942 / Gauss-Kruger 23N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28484 : Pulkovo 1942 / Gauss-Kruger 24N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28484,'EPSG',28484,'PROJCS["Pulkovo 1942 / Gauss-Kruger 24N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28485 : Pulkovo 1942 / Gauss-Kruger 25N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28485,'EPSG',28485,'PROJCS["Pulkovo 1942 / Gauss-Kruger 25N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28486 : Pulkovo 1942 / Gauss-Kruger 26N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28486,'EPSG',28486,'PROJCS["Pulkovo 1942 / Gauss-Kruger 26N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28487 : Pulkovo 1942 / Gauss-Kruger 27N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28487,'EPSG',28487,'PROJCS["Pulkovo 1942 / Gauss-Kruger 27N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28488 : Pulkovo 1942 / Gauss-Kruger 28N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28488,'EPSG',28488,'PROJCS["Pulkovo 1942 / Gauss-Kruger 28N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28489 : Pulkovo 1942 / Gauss-Kruger 29N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28489,'EPSG',28489,'PROJCS["Pulkovo 1942 / Gauss-Kruger 29N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28490 : Pulkovo 1942 / Gauss-Kruger 30N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28490,'EPSG',28490,'PROJCS["Pulkovo 1942 / Gauss-Kruger 30N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28491 : Pulkovo 1942 / Gauss-Kruger 31N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28491,'EPSG',28491,'PROJCS["Pulkovo 1942 / Gauss-Kruger 31N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28492 : Pulkovo 1942 / Gauss-Kruger 32N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28492,'EPSG',28492,'PROJCS["Pulkovo 1942 / Gauss-Kruger 32N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],PROJECTION[ [...]
+---
+--- EPSG 28600 : Qatar 1974 / Qatar National Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28600,'EPSG',28600,'PROJCS["Qatar 1974 / Qatar National Grid",GEOGCS["Qatar 1974",DATUM["Qatar_1974",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY["EPSG","6285"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4285"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 28991 : Amersfoort / RD Old
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28991,'EPSG',28991,'PROJCS["Amersfoort / RD Old",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[565.4171,50.3319,465.5524,-0.398957388243134,0.343987817378283,-1.87740163998045,4.0725],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY[ [...]
+---
+--- EPSG 28992 : Amersfoort / RD New
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (28992,'EPSG',28992,'PROJCS["Amersfoort / RD New",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[565.4171,50.3319,465.5524,-0.398957388243134,0.343987817378283,-1.87740163998045,4.0725],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY[ [...]
+---
+--- EPSG 29100 : SAD69 / Brazil Polyconic (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29100,'EPSG',29100,'PROJCS["SAD69 / Brazil Polyconic (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Polyconic"],PARAMET [...]
+---
+--- EPSG 29101 : SAD69 / Brazil Polyconic
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29101,'EPSG',29101,'PROJCS["SAD69 / Brazil Polyconic",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Polyconic"],PARAMETER [...]
+---
+--- EPSG 29118 : SAD69 / UTM zone 18N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29118,'EPSG',29118,'PROJCS["SAD69 / UTM zone 18N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29119 : SAD69 / UTM zone 19N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29119,'EPSG',29119,'PROJCS["SAD69 / UTM zone 19N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29120 : SAD69 / UTM zone 20N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29120,'EPSG',29120,'PROJCS["SAD69 / UTM zone 20N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29121 : SAD69 / UTM zone 21N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29121,'EPSG',29121,'PROJCS["SAD69 / UTM zone 21N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29122 : SAD69 / UTM zone 22N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29122,'EPSG',29122,'PROJCS["SAD69 / UTM zone 22N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29168 : SAD69 / UTM zone 18N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29168,'EPSG',29168,'PROJCS["SAD69 / UTM zone 18N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29169 : SAD69 / UTM zone 19N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29169,'EPSG',29169,'PROJCS["SAD69 / UTM zone 19N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29170 : SAD69 / UTM zone 20N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29170,'EPSG',29170,'PROJCS["SAD69 / UTM zone 20N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29171 : SAD69 / UTM zone 21N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29171,'EPSG',29171,'PROJCS["SAD69 / UTM zone 21N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29172 : SAD69 / UTM zone 22N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29172,'EPSG',29172,'PROJCS["SAD69 / UTM zone 22N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29177 : SAD69 / UTM zone 17S (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29177,'EPSG',29177,'PROJCS["SAD69 / UTM zone 17S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29178 : SAD69 / UTM zone 18S (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29178,'EPSG',29178,'PROJCS["SAD69 / UTM zone 18S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29179 : SAD69 / UTM zone 19S (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29179,'EPSG',29179,'PROJCS["SAD69 / UTM zone 19S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29180 : SAD69 / UTM zone 20S (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29180,'EPSG',29180,'PROJCS["SAD69 / UTM zone 20S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29181 : SAD69 / UTM zone 21S (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29181,'EPSG',29181,'PROJCS["SAD69 / UTM zone 21S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29182 : SAD69 / UTM zone 22S (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29182,'EPSG',29182,'PROJCS["SAD69 / UTM zone 22S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29183 : SAD69 / UTM zone 23S (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29183,'EPSG',29183,'PROJCS["SAD69 / UTM zone 23S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29184 : SAD69 / UTM zone 24S (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29184,'EPSG',29184,'PROJCS["SAD69 / UTM zone 24S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29185 : SAD69 / UTM zone 25S (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29185,'EPSG',29185,'PROJCS["SAD69 / UTM zone 25S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 29187 : SAD69 / UTM zone 17S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29187,'EPSG',29187,'PROJCS["SAD69 / UTM zone 17S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29188 : SAD69 / UTM zone 18S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29188,'EPSG',29188,'PROJCS["SAD69 / UTM zone 18S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29189 : SAD69 / UTM zone 19S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29189,'EPSG',29189,'PROJCS["SAD69 / UTM zone 19S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29190 : SAD69 / UTM zone 20S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29190,'EPSG',29190,'PROJCS["SAD69 / UTM zone 20S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29191 : SAD69 / UTM zone 21S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29191,'EPSG',29191,'PROJCS["SAD69 / UTM zone 21S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29192 : SAD69 / UTM zone 22S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29192,'EPSG',29192,'PROJCS["SAD69 / UTM zone 22S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29193 : SAD69 / UTM zone 23S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29193,'EPSG',29193,'PROJCS["SAD69 / UTM zone 23S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29194 : SAD69 / UTM zone 24S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29194,'EPSG',29194,'PROJCS["SAD69 / UTM zone 24S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29195 : SAD69 / UTM zone 25S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29195,'EPSG',29195,'PROJCS["SAD69 / UTM zone 25S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],PROJECTION["Transverse_Mercator"],PAR [...]
+---
+--- EPSG 29220 : Sapper Hill 1943 / UTM zone 20S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29220,'EPSG',29220,'PROJCS["Sapper Hill 1943 / UTM zone 20S",GEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 29221 : Sapper Hill 1943 / UTM zone 21S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29221,'EPSG',29221,'PROJCS["Sapper Hill 1943 / UTM zone 21S",GEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 29333 : Schwarzeck / UTM zone 33S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29333,'EPSG',29333,'PROJCS["Schwarzeck / UTM zone 33S",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],PROJECTION["Transverse_Mercator [...]
+---
+--- EPSG 29371 : Schwarzeck / Lo22/11
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29371,'EPSG',29371,'PROJCS["Schwarzeck / Lo22/11",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],PROJECTION["Transverse_Mercator_Sout [...]
+---
+--- EPSG 29373 : Schwarzeck / Lo22/13
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29373,'EPSG',29373,'PROJCS["Schwarzeck / Lo22/13",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],PROJECTION["Transverse_Mercator_Sout [...]
+---
+--- EPSG 29375 : Schwarzeck / Lo22/15
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29375,'EPSG',29375,'PROJCS["Schwarzeck / Lo22/15",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],PROJECTION["Transverse_Mercator_Sout [...]
+---
+--- EPSG 29377 : Schwarzeck / Lo22/17
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29377,'EPSG',29377,'PROJCS["Schwarzeck / Lo22/17",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],PROJECTION["Transverse_Mercator_Sout [...]
+---
+--- EPSG 29379 : Schwarzeck / Lo22/19
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29379,'EPSG',29379,'PROJCS["Schwarzeck / Lo22/19",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],PROJECTION["Transverse_Mercator_Sout [...]
+---
+--- EPSG 29381 : Schwarzeck / Lo22/21
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29381,'EPSG',29381,'PROJCS["Schwarzeck / Lo22/21",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],PROJECTION["Transverse_Mercator_Sout [...]
+---
+--- EPSG 29383 : Schwarzeck / Lo22/23
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29383,'EPSG',29383,'PROJCS["Schwarzeck / Lo22/23",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],PROJECTION["Transverse_Mercator_Sout [...]
+---
+--- EPSG 29385 : Schwarzeck / Lo22/25
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29385,'EPSG',29385,'PROJCS["Schwarzeck / Lo22/25",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],PROJECTION["Transverse_Mercator_Sout [...]
+---
+--- EPSG 29635 : Sudan / UTM zone 35N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29635,'EPSG',29635,'PROJCS["Sudan / UTM zone 35N (deprecated)",GEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
+---
+--- EPSG 29636 : Sudan / UTM zone 36N (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29636,'EPSG',29636,'PROJCS["Sudan / UTM zone 36N (deprecated)",GEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0] [...]
+---
+--- EPSG 29700 : Tananarive (Paris) / Laborde Grid (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29700,'EPSG',29700,'PROJCS["Tananarive (Paris) / Laborde Grid (deprecated)",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],PROJE [...]
+---
+--- EPSG 29701 : Tananarive (Paris) / Laborde Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29701,'EPSG',29701,'PROJCS["Tananarive (Paris) / Laborde Grid",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],PROJECTION["Labord [...]
+---
+--- EPSG 29702 : Tananarive (Paris) / Laborde Grid approximation
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29702,'EPSG',29702,'PROJCS["Tananarive (Paris) / Laborde Grid approximation",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],PROJ [...]
+---
+--- EPSG 29738 : Tananarive / UTM zone 38S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29738,'EPSG',29738,'PROJCS["Tananarive / UTM zone 38S",GEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 29739 : Tananarive / UTM zone 39S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29739,'EPSG',29739,'PROJCS["Tananarive / UTM zone 39S",GEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 29849 : Timbalai 1948 / UTM zone 49N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29849,'EPSG',29849,'PROJCS["Timbalai 1948 / UTM zone 49N",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],PROJECTION["Transver [...]
+---
+--- EPSG 29850 : Timbalai 1948 / UTM zone 50N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29850,'EPSG',29850,'PROJCS["Timbalai 1948 / UTM zone 50N",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],PROJECTION["Transver [...]
+---
+--- EPSG 29871 : Timbalai 1948 / RSO Borneo (ch)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29871,'EPSG',29871,'PROJCS["Timbalai 1948 / RSO Borneo (ch)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],PROJECTION["Hotin [...]
+---
+--- EPSG 29872 : Timbalai 1948 / RSO Borneo (ft)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29872,'EPSG',29872,'PROJCS["Timbalai 1948 / RSO Borneo (ft)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],PROJECTION["Hotin [...]
+---
+--- EPSG 29873 : Timbalai 1948 / RSO Borneo (m)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29873,'EPSG',29873,'PROJCS["Timbalai 1948 / RSO Borneo (m)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],PROJECTION["Hotine [...]
+---
+--- EPSG 29900 : TM65 / Irish National Grid (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29900,'EPSG',29900,'PROJCS["TM65 / Irish National Grid (deprecated)",GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]],PROJECTION[" [...]
+---
+--- EPSG 29901 : OSNI 1952 / Irish National Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29901,'EPSG',29901,'PROJCS["OSNI 1952 / Irish National Grid",GEOGCS["OSNI 1952",DATUM["OSNI_1952",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6188"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4188"]],PROJECTION["Transve [...]
+---
+--- EPSG 29902 : TM65 / Irish Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29902,'EPSG',29902,'PROJCS["TM65 / Irish Grid",GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 29903 : TM75 / Irish Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (29903,'EPSG',29903,'PROJCS["TM75 / Irish Grid",GEOGCS["TM75",DATUM["Geodetic_Datum_of_1965",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6300"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4300"]],PROJECTION["Tran [...]
+---
+--- EPSG 30161 : Tokyo / Japan Plane Rectangular CS I
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30161,'EPSG',30161,'PROJCS["Tokyo / Japan Plane Rectangular CS I",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator" [...]
+---
+--- EPSG 30162 : Tokyo / Japan Plane Rectangular CS II
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30162,'EPSG',30162,'PROJCS["Tokyo / Japan Plane Rectangular CS II",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator [...]
+---
+--- EPSG 30163 : Tokyo / Japan Plane Rectangular CS III
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30163,'EPSG',30163,'PROJCS["Tokyo / Japan Plane Rectangular CS III",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 30164 : Tokyo / Japan Plane Rectangular CS IV
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30164,'EPSG',30164,'PROJCS["Tokyo / Japan Plane Rectangular CS IV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator [...]
+---
+--- EPSG 30165 : Tokyo / Japan Plane Rectangular CS V
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30165,'EPSG',30165,'PROJCS["Tokyo / Japan Plane Rectangular CS V",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator" [...]
+---
+--- EPSG 30166 : Tokyo / Japan Plane Rectangular CS VI
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30166,'EPSG',30166,'PROJCS["Tokyo / Japan Plane Rectangular CS VI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator [...]
+---
+--- EPSG 30167 : Tokyo / Japan Plane Rectangular CS VII
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30167,'EPSG',30167,'PROJCS["Tokyo / Japan Plane Rectangular CS VII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 30168 : Tokyo / Japan Plane Rectangular CS VIII
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30168,'EPSG',30168,'PROJCS["Tokyo / Japan Plane Rectangular CS VIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercat [...]
+---
+--- EPSG 30169 : Tokyo / Japan Plane Rectangular CS IX
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30169,'EPSG',30169,'PROJCS["Tokyo / Japan Plane Rectangular CS IX",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator [...]
+---
+--- EPSG 30170 : Tokyo / Japan Plane Rectangular CS X
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30170,'EPSG',30170,'PROJCS["Tokyo / Japan Plane Rectangular CS X",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator" [...]
+---
+--- EPSG 30171 : Tokyo / Japan Plane Rectangular CS XI
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30171,'EPSG',30171,'PROJCS["Tokyo / Japan Plane Rectangular CS XI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator [...]
+---
+--- EPSG 30172 : Tokyo / Japan Plane Rectangular CS XII
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30172,'EPSG',30172,'PROJCS["Tokyo / Japan Plane Rectangular CS XII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 30173 : Tokyo / Japan Plane Rectangular CS XIII
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30173,'EPSG',30173,'PROJCS["Tokyo / Japan Plane Rectangular CS XIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercat [...]
+---
+--- EPSG 30174 : Tokyo / Japan Plane Rectangular CS XIV
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30174,'EPSG',30174,'PROJCS["Tokyo / Japan Plane Rectangular CS XIV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 30175 : Tokyo / Japan Plane Rectangular CS XV
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30175,'EPSG',30175,'PROJCS["Tokyo / Japan Plane Rectangular CS XV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercator [...]
+---
+--- EPSG 30176 : Tokyo / Japan Plane Rectangular CS XVI
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30176,'EPSG',30176,'PROJCS["Tokyo / Japan Plane Rectangular CS XVI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 30177 : Tokyo / Japan Plane Rectangular CS XVII
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30177,'EPSG',30177,'PROJCS["Tokyo / Japan Plane Rectangular CS XVII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercat [...]
+---
+--- EPSG 30178 : Tokyo / Japan Plane Rectangular CS XVIII
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30178,'EPSG',30178,'PROJCS["Tokyo / Japan Plane Rectangular CS XVIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Merca [...]
+---
+--- EPSG 30179 : Tokyo / Japan Plane Rectangular CS XIX
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30179,'EPSG',30179,'PROJCS["Tokyo / Japan Plane Rectangular CS XIX",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],PROJECTION["Transverse_Mercato [...]
+---
+--- EPSG 30200 : Trinidad 1903 / Trinidad Grid
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30200,'EPSG',30200,'PROJCS["Trinidad 1903 / Trinidad Grid",GEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]],PROJECTION[" [...]
+---
+--- EPSG 30339 : TC(1948) / UTM zone 39N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30339,'EPSG',30339,'PROJCS["TC(1948) / UTM zone 39N",GEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["c [...]
+---
+--- EPSG 30340 : TC(1948) / UTM zone 40N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30340,'EPSG',30340,'PROJCS["TC(1948) / UTM zone 40N",GEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["c [...]
+---
+--- EPSG 30491 : Voirol 1875 / Nord Algerie (ancienne)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30491,'EPSG',30491,'PROJCS["Voirol 1875 / Nord Algerie (ancienne)",GEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]],PROJECTION["Lambert_C [...]
+---
+--- EPSG 30492 : Voirol 1875 / Sud Algerie (ancienne)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30492,'EPSG',30492,'PROJCS["Voirol 1875 / Sud Algerie (ancienne)",GEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]],PROJECTION["Lambert_Co [...]
+---
+--- EPSG 30493 : Voirol 1879 / Nord Algerie (ancienne)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30493,'EPSG',30493,'PROJCS["Voirol 1879 / Nord Algerie (ancienne)",GEOGCS["Voirol 1879",DATUM["Voirol_1879",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6671"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4671"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER [...]
+---
+--- EPSG 30494 : Voirol 1879 / Sud Algerie (ancienne)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30494,'EPSG',30494,'PROJCS["Voirol 1879 / Sud Algerie (ancienne)",GEOGCS["Voirol 1879",DATUM["Voirol_1879",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6671"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4671"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER[ [...]
+---
+--- EPSG 30729 : Nord Sahara 1959 / UTM zone 29N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30729,'EPSG',30729,'PROJCS["Nord Sahara 1959 / UTM zone 29N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 30730 : Nord Sahara 1959 / UTM zone 30N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30730,'EPSG',30730,'PROJCS["Nord Sahara 1959 / UTM zone 30N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 30731 : Nord Sahara 1959 / UTM zone 31N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30731,'EPSG',30731,'PROJCS["Nord Sahara 1959 / UTM zone 31N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 30732 : Nord Sahara 1959 / UTM zone 32N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30732,'EPSG',30732,'PROJCS["Nord Sahara 1959 / UTM zone 32N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 30791 : Nord Sahara 1959 / Nord Algerie
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30791,'EPSG',30791,'PROJCS["Nord Sahara 1959 / Nord Algerie",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 30792 : Nord Sahara 1959 / Sud Algerie
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30792,'EPSG',30792,'PROJCS["Nord Sahara 1959 / Sud Algerie",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
+---
+--- EPSG 30800 : RT38 2.5 gon W (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (30800,'EPSG',30800,'PROJCS["RT38 2.5 gon W (deprecated)",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMET [...]
+---
+--- EPSG 31028 : Yoff / UTM zone 28N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31028,'EPSG',31028,'PROJCS["Yoff / UTM zone 28N",GEOGCS["Yoff",DATUM["Yoff",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6310"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4310"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
+---
+--- EPSG 31121 : Zanderij / UTM zone 21N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31121,'EPSG',31121,'PROJCS["Zanderij / UTM zone 21N",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
+---
+--- EPSG 31154 : Zanderij / TM 54 NW
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31154,'EPSG',31154,'PROJCS["Zanderij / TM 54 NW",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_or [...]
+---
+--- EPSG 31170 : Zanderij / Suriname Old TM
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31170,'EPSG',31170,'PROJCS["Zanderij / Suriname Old TM",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 31171 : Zanderij / Suriname TM
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31171,'EPSG',31171,'PROJCS["Zanderij / Suriname TM",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of [...]
+---
+--- EPSG 31251 : MGI (Ferro) / Austria GK West Zone
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31251,'EPSG',31251,'PROJCS["MGI (Ferro) / Austria GK West Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805 [...]
+---
+--- EPSG 31252 : MGI (Ferro) / Austria GK Central Zone
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31252,'EPSG',31252,'PROJCS["MGI (Ferro) / Austria GK Central Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4 [...]
+---
+--- EPSG 31253 : MGI (Ferro) / Austria GK East Zone
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31253,'EPSG',31253,'PROJCS["MGI (Ferro) / Austria GK East Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805 [...]
+---
+--- EPSG 31254 : MGI / Austria GK West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31254,'EPSG',31254,'PROJCS["MGI / Austria GK West",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECTI [...]
+---
+--- EPSG 31255 : MGI / Austria GK Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31255,'EPSG',31255,'PROJCS["MGI / Austria GK Central",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJE [...]
+---
+--- EPSG 31256 : MGI / Austria GK East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31256,'EPSG',31256,'PROJCS["MGI / Austria GK East",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECTI [...]
+---
+--- EPSG 31257 : MGI / Austria GK M28
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31257,'EPSG',31257,'PROJCS["MGI / Austria GK M28",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECTIO [...]
+---
+--- EPSG 31258 : MGI / Austria GK M31
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31258,'EPSG',31258,'PROJCS["MGI / Austria GK M31",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECTIO [...]
+---
+--- EPSG 31259 : MGI / Austria GK M34
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31259,'EPSG',31259,'PROJCS["MGI / Austria GK M34",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECTIO [...]
+---
+--- EPSG 31265 : MGI / 3-degree Gauss zone 5 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31265,'EPSG',31265,'PROJCS["MGI / 3-degree Gauss zone 5 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 31266 : MGI / 3-degree Gauss zone 6 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31266,'EPSG',31266,'PROJCS["MGI / 3-degree Gauss zone 6 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 31267 : MGI / 3-degree Gauss zone 7 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31267,'EPSG',31267,'PROJCS["MGI / 3-degree Gauss zone 7 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 31268 : MGI / 3-degree Gauss zone 8 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31268,'EPSG',31268,'PROJCS["MGI / 3-degree Gauss zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
+---
+--- EPSG 31275 : MGI / Balkans zone 5 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31275,'EPSG',31275,'PROJCS["MGI / Balkans zone 5 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+---
+--- EPSG 31276 : MGI / Balkans zone 6 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31276,'EPSG',31276,'PROJCS["MGI / Balkans zone 6 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+---
+--- EPSG 31277 : MGI / Balkans zone 7 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31277,'EPSG',31277,'PROJCS["MGI / Balkans zone 7 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+---
+--- EPSG 31278 : MGI / Balkans zone 8 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31278,'EPSG',31278,'PROJCS["MGI / Balkans zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+---
+--- EPSG 31279 : MGI / Balkans zone 8 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31279,'EPSG',31279,'PROJCS["MGI / Balkans zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312 [...]
+---
+--- EPSG 31281 : MGI (Ferro) / Austria West Zone
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31281,'EPSG',31281,'PROJCS["MGI (Ferro) / Austria West Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]] [...]
+---
+--- EPSG 31282 : MGI (Ferro) / Austria Central Zone
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31282,'EPSG',31282,'PROJCS["MGI (Ferro) / Austria Central Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805 [...]
+---
+--- EPSG 31283 : MGI (Ferro) / Austria East Zone
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31283,'EPSG',31283,'PROJCS["MGI (Ferro) / Austria East Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]] [...]
+---
+--- EPSG 31284 : MGI / Austria M28
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31284,'EPSG',31284,'PROJCS["MGI / Austria M28",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECTION[" [...]
+---
+--- EPSG 31285 : MGI / Austria M31
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31285,'EPSG',31285,'PROJCS["MGI / Austria M31",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECTION[" [...]
+---
+--- EPSG 31286 : MGI / Austria M34
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31286,'EPSG',31286,'PROJCS["MGI / Austria M34",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECTION[" [...]
+---
+--- EPSG 31287 : MGI / Austria Lambert
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31287,'EPSG',31287,'PROJCS["MGI / Austria Lambert",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECTI [...]
+---
+--- EPSG 31288 : MGI (Ferro) / M28
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31288,'EPSG',31288,'PROJCS["MGI (Ferro) / M28",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],PROJECTION["T [...]
+---
+--- EPSG 31289 : MGI (Ferro) / M31
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31289,'EPSG',31289,'PROJCS["MGI (Ferro) / M31",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],PROJECTION["T [...]
+---
+--- EPSG 31290 : MGI (Ferro) / M34
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31290,'EPSG',31290,'PROJCS["MGI (Ferro) / M34",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],PROJECTION["T [...]
+---
+--- EPSG 31291 : MGI (Ferro) / Austria West Zone (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31291,'EPSG',31291,'PROJCS["MGI (Ferro) / Austria West Zone (deprecated)",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
+---
+--- EPSG 31292 : MGI (Ferro) / Austria Central Zone (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31292,'EPSG',31292,'PROJCS["MGI (Ferro) / Austria Central Zone (deprecated)",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY [...]
+---
+--- EPSG 31293 : MGI (Ferro) / Austria East Zone (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31293,'EPSG',31293,'PROJCS["MGI (Ferro) / Austria East Zone (deprecated)",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
+---
+--- EPSG 31294 : MGI / M28 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31294,'EPSG',31294,'PROJCS["MGI / M28 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECT [...]
+---
+--- EPSG 31295 : MGI / M31 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31295,'EPSG',31295,'PROJCS["MGI / M31 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECT [...]
+---
+--- EPSG 31296 : MGI / M34 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31296,'EPSG',31296,'PROJCS["MGI / M34 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4312"]],PROJECT [...]
+---
+--- EPSG 31297 : MGI / Austria Lambert (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31297,'EPSG',31297,'PROJCS["MGI / Austria Lambert (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","431 [...]
+---
+--- EPSG 31300 : Belge 1972 / Belge Lambert 72
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31300,'EPSG',31300,'PROJCS["Belge 1972 / Belge Lambert 72",GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-106.8686,52.2978,-103.7239,0.3366,-0.457,1.8422,-1.2747],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","43 [...]
+---
+--- EPSG 31370 : Belge 1972 / Belgian Lambert 72
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31370,'EPSG',31370,'PROJCS["Belge 1972 / Belgian Lambert 72",GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-106.8686,52.2978,-103.7239,0.3366,-0.457,1.8422,-1.2747],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG"," [...]
+---
+--- EPSG 31461 : DHDN / 3-degree Gauss zone 1 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31461,'EPSG',31461,'PROJCS["DHDN / 3-degree Gauss zone 1 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+---
+--- EPSG 31462 : DHDN / 3-degree Gauss zone 2 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31462,'EPSG',31462,'PROJCS["DHDN / 3-degree Gauss zone 2 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+---
+--- EPSG 31463 : DHDN / 3-degree Gauss zone 3 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31463,'EPSG',31463,'PROJCS["DHDN / 3-degree Gauss zone 3 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+---
+--- EPSG 31464 : DHDN / 3-degree Gauss zone 4 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31464,'EPSG',31464,'PROJCS["DHDN / 3-degree Gauss zone 4 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+---
+--- EPSG 31465 : DHDN / 3-degree Gauss zone 5 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31465,'EPSG',31465,'PROJCS["DHDN / 3-degree Gauss zone 5 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]] [...]
+---
+--- EPSG 31466 : DHDN / 3-degree Gauss-Kruger zone 2
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31466,'EPSG',31466,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 2",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],PROJE [...]
+---
+--- EPSG 31467 : DHDN / 3-degree Gauss-Kruger zone 3
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31467,'EPSG',31467,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 3",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],PROJE [...]
+---
+--- EPSG 31468 : DHDN / 3-degree Gauss-Kruger zone 4
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31468,'EPSG',31468,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 4",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],PROJE [...]
+---
+--- EPSG 31469 : DHDN / 3-degree Gauss-Kruger zone 5
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31469,'EPSG',31469,'PROJCS["DHDN / 3-degree Gauss-Kruger zone 5",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],PROJE [...]
+---
+--- EPSG 31528 : Conakry 1905 / UTM zone 28N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31528,'EPSG',31528,'PROJCS["Conakry 1905 / UTM zone 28N",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],PROJECTION["Transverse_Mercator [...]
+---
+--- EPSG 31529 : Conakry 1905 / UTM zone 29N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31529,'EPSG',31529,'PROJCS["Conakry 1905 / UTM zone 29N",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],PROJECTION["Transverse_Mercator [...]
+---
+--- EPSG 31600 : Dealul Piscului 1930 / Stereo 33
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31600,'EPSG',31600,'PROJCS["Dealul Piscului 1930 / Stereo 33",GEOGCS["Dealul Piscului 1930",DATUM["Dealul_Piscului_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[103.25,-100.4,-307.19,0,0,0,0],AUTHORITY["EPSG","6316"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4316"]],PROJECTION["Ob [...]
+---
+--- EPSG 31700 : Dealul Piscului 1970/ Stereo 70 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31700,'EPSG',31700,'PROJCS["Dealul Piscului 1970/ Stereo 70 (deprecated)",GEOGCS["Dealul Piscului 1970",DATUM["Dealul_Piscului_1970",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[28,-121,-77,0,0,0,0],AUTHORITY["EPSG","6317"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4317"]],PROJECTION["O [...]
+---
+--- EPSG 31838 : NGN / UTM zone 38N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31838,'EPSG',31838,'PROJCS["NGN / UTM zone 38N",GEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
+---
+--- EPSG 31839 : NGN / UTM zone 39N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31839,'EPSG',31839,'PROJCS["NGN / UTM zone 39N",GEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
+---
+--- EPSG 31900 : KUDAMS / KTM (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31900,'EPSG',31900,'PROJCS["KUDAMS / KTM (deprecated)",GEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-20.8,11.3,2.4,0,0,0,0],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
+---
+--- EPSG 31901 : KUDAMS / KTM
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31901,'EPSG',31901,'PROJCS["KUDAMS / KTM",GEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-20.8,11.3,2.4,0,0,0,0],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_orig [...]
+---
+--- EPSG 31965 : SIRGAS 2000 / UTM zone 11N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31965,'EPSG',31965,'PROJCS["SIRGAS 2000 / UTM zone 11N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31966 : SIRGAS 2000 / UTM zone 12N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31966,'EPSG',31966,'PROJCS["SIRGAS 2000 / UTM zone 12N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31967 : SIRGAS 2000 / UTM zone 13N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31967,'EPSG',31967,'PROJCS["SIRGAS 2000 / UTM zone 13N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31968 : SIRGAS 2000 / UTM zone 14N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31968,'EPSG',31968,'PROJCS["SIRGAS 2000 / UTM zone 14N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31969 : SIRGAS 2000 / UTM zone 15N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31969,'EPSG',31969,'PROJCS["SIRGAS 2000 / UTM zone 15N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31970 : SIRGAS 2000 / UTM zone 16N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31970,'EPSG',31970,'PROJCS["SIRGAS 2000 / UTM zone 16N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31971 : SIRGAS 2000 / UTM zone 17N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31971,'EPSG',31971,'PROJCS["SIRGAS 2000 / UTM zone 17N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31972 : SIRGAS 2000 / UTM zone 18N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31972,'EPSG',31972,'PROJCS["SIRGAS 2000 / UTM zone 18N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31973 : SIRGAS 2000 / UTM zone 19N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31973,'EPSG',31973,'PROJCS["SIRGAS 2000 / UTM zone 19N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31974 : SIRGAS 2000 / UTM zone 20N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31974,'EPSG',31974,'PROJCS["SIRGAS 2000 / UTM zone 20N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31975 : SIRGAS 2000 / UTM zone 21N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31975,'EPSG',31975,'PROJCS["SIRGAS 2000 / UTM zone 21N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31976 : SIRGAS 2000 / UTM zone 22N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31976,'EPSG',31976,'PROJCS["SIRGAS 2000 / UTM zone 22N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31977 : SIRGAS 2000 / UTM zone 17S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31977,'EPSG',31977,'PROJCS["SIRGAS 2000 / UTM zone 17S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31978 : SIRGAS 2000 / UTM zone 18S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31978,'EPSG',31978,'PROJCS["SIRGAS 2000 / UTM zone 18S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31979 : SIRGAS 2000 / UTM zone 19S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31979,'EPSG',31979,'PROJCS["SIRGAS 2000 / UTM zone 19S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31980 : SIRGAS 2000 / UTM zone 20S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31980,'EPSG',31980,'PROJCS["SIRGAS 2000 / UTM zone 20S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31981 : SIRGAS 2000 / UTM zone 21S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31981,'EPSG',31981,'PROJCS["SIRGAS 2000 / UTM zone 21S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31982 : SIRGAS 2000 / UTM zone 22S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31982,'EPSG',31982,'PROJCS["SIRGAS 2000 / UTM zone 22S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31983 : SIRGAS 2000 / UTM zone 23S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31983,'EPSG',31983,'PROJCS["SIRGAS 2000 / UTM zone 23S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31984 : SIRGAS 2000 / UTM zone 24S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31984,'EPSG',31984,'PROJCS["SIRGAS 2000 / UTM zone 24S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31985 : SIRGAS 2000 / UTM zone 25S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31985,'EPSG',31985,'PROJCS["SIRGAS 2000 / UTM zone 25S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],PROJECTIO [...]
+---
+--- EPSG 31986 : SIRGAS 1995 / UTM zone 17N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31986,'EPSG',31986,'PROJCS["SIRGAS 1995 / UTM zone 17N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31987 : SIRGAS 1995 / UTM zone 18N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31987,'EPSG',31987,'PROJCS["SIRGAS 1995 / UTM zone 18N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31988 : SIRGAS 1995 / UTM zone 19N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31988,'EPSG',31988,'PROJCS["SIRGAS 1995 / UTM zone 19N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31989 : SIRGAS 1995 / UTM zone 20N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31989,'EPSG',31989,'PROJCS["SIRGAS 1995 / UTM zone 20N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31990 : SIRGAS 1995 / UTM zone 21N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31990,'EPSG',31990,'PROJCS["SIRGAS 1995 / UTM zone 21N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31991 : SIRGAS 1995 / UTM zone 22N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31991,'EPSG',31991,'PROJCS["SIRGAS 1995 / UTM zone 22N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31992 : SIRGAS 1995 / UTM zone 17S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31992,'EPSG',31992,'PROJCS["SIRGAS 1995 / UTM zone 17S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31993 : SIRGAS 1995 / UTM zone 18S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31993,'EPSG',31993,'PROJCS["SIRGAS 1995 / UTM zone 18S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31994 : SIRGAS 1995 / UTM zone 19S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31994,'EPSG',31994,'PROJCS["SIRGAS 1995 / UTM zone 19S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31995 : SIRGAS 1995 / UTM zone 20S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31995,'EPSG',31995,'PROJCS["SIRGAS 1995 / UTM zone 20S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31996 : SIRGAS 1995 / UTM zone 21S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31996,'EPSG',31996,'PROJCS["SIRGAS 1995 / UTM zone 21S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31997 : SIRGAS 1995 / UTM zone 22S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31997,'EPSG',31997,'PROJCS["SIRGAS 1995 / UTM zone 22S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31998 : SIRGAS 1995 / UTM zone 23S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31998,'EPSG',31998,'PROJCS["SIRGAS 1995 / UTM zone 23S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 31999 : SIRGAS 1995 / UTM zone 24S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (31999,'EPSG',31999,'PROJCS["SIRGAS 1995 / UTM zone 24S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 32000 : SIRGAS 1995 / UTM zone 25S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32000,'EPSG',32000,'PROJCS["SIRGAS 1995 / UTM zone 25S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],PROJEC [...]
+---
+--- EPSG 32001 : NAD27 / Montana North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32001,'EPSG',32001,'PROJCS["NAD27 / Montana North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_par [...]
+---
+--- EPSG 32002 : NAD27 / Montana Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32002,'EPSG',32002,'PROJCS["NAD27 / Montana Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_p [...]
+---
+--- EPSG 32003 : NAD27 / Montana South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32003,'EPSG',32003,'PROJCS["NAD27 / Montana South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_par [...]
+---
+--- EPSG 32005 : NAD27 / Nebraska North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32005,'EPSG',32005,'PROJCS["NAD27 / Nebraska North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
+---
+--- EPSG 32006 : NAD27 / Nebraska South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32006,'EPSG',32006,'PROJCS["NAD27 / Nebraska South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
+---
+--- EPSG 32007 : NAD27 / Nevada East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32007,'EPSG',32007,'PROJCS["NAD27 / Nevada East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34 [...]
+---
+--- EPSG 32008 : NAD27 / Nevada Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32008,'EPSG',32008,'PROJCS["NAD27 / Nevada Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
+---
+--- EPSG 32009 : NAD27 / Nevada West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32009,'EPSG',32009,'PROJCS["NAD27 / Nevada West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34 [...]
+---
+--- EPSG 32010 : NAD27 / New Hampshire
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32010,'EPSG',32010,'PROJCS["NAD27 / New Hampshire",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32011 : NAD27 / New Jersey
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32011,'EPSG',32011,'PROJCS["NAD27 / New Jersey",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38. [...]
+---
+--- EPSG 32012 : NAD27 / New Mexico East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32012,'EPSG',32012,'PROJCS["NAD27 / New Mexico East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
+---
+--- EPSG 32013 : NAD27 / New Mexico Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32013,'EPSG',32013,'PROJCS["NAD27 / New Mexico Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ori [...]
+---
+--- EPSG 32014 : NAD27 / New Mexico West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32014,'EPSG',32014,'PROJCS["NAD27 / New Mexico West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin [...]
+---
+--- EPSG 32015 : NAD27 / New York East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32015,'EPSG',32015,'PROJCS["NAD27 / New York East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32016 : NAD27 / New York Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32016,'EPSG',32016,'PROJCS["NAD27 / New York Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origi [...]
+---
+--- EPSG 32017 : NAD27 / New York West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32017,'EPSG',32017,'PROJCS["NAD27 / New York West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32018 : NAD27 / New York Long Island (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32018,'EPSG',32018,'PROJCS["NAD27 / New York Long Island (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
+---
+--- EPSG 32019 : NAD27 / North Carolina
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32019,'EPSG',32019,'PROJCS["NAD27 / North Carolina",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
+---
+--- EPSG 32020 : NAD27 / North Dakota North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32020,'EPSG',32020,'PROJCS["NAD27 / North Dakota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
+---
+--- EPSG 32021 : NAD27 / North Dakota South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32021,'EPSG',32021,'PROJCS["NAD27 / North Dakota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
+---
+--- EPSG 32022 : NAD27 / Ohio North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32022,'EPSG',32022,'PROJCS["NAD27 / Ohio North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parall [...]
+---
+--- EPSG 32023 : NAD27 / Ohio South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32023,'EPSG',32023,'PROJCS["NAD27 / Ohio South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parall [...]
+---
+--- EPSG 32024 : NAD27 / Oklahoma North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32024,'EPSG',32024,'PROJCS["NAD27 / Oklahoma North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
+---
+--- EPSG 32025 : NAD27 / Oklahoma South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32025,'EPSG',32025,'PROJCS["NAD27 / Oklahoma South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
+---
+--- EPSG 32026 : NAD27 / Oregon North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32026,'EPSG',32026,'PROJCS["NAD27 / Oregon North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_para [...]
+---
+--- EPSG 32027 : NAD27 / Oregon South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32027,'EPSG',32027,'PROJCS["NAD27 / Oregon South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_para [...]
+---
+--- EPSG 32028 : NAD27 / Pennsylvania North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32028,'EPSG',32028,'PROJCS["NAD27 / Pennsylvania North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
+---
+--- EPSG 32029 : NAD27 / Pennsylvania South (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32029,'EPSG',32029,'PROJCS["NAD27 / Pennsylvania South (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
+---
+--- EPSG 32030 : NAD27 / Rhode Island
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32030,'EPSG',32030,'PROJCS["NAD27 / Rhode Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4 [...]
+---
+--- EPSG 32031 : NAD27 / South Carolina North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32031,'EPSG',32031,'PROJCS["NAD27 / South Carolina North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
+---
+--- EPSG 32033 : NAD27 / South Carolina South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32033,'EPSG',32033,'PROJCS["NAD27 / South Carolina South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stand [...]
+---
+--- EPSG 32034 : NAD27 / South Dakota North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32034,'EPSG',32034,'PROJCS["NAD27 / South Dakota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
+---
+--- EPSG 32035 : NAD27 / South Dakota South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32035,'EPSG',32035,'PROJCS["NAD27 / South Dakota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
+---
+--- EPSG 32036 : NAD27 / Tennessee (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32036,'EPSG',32036,'PROJCS["NAD27 / Tennessee (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
+---
+--- EPSG 32037 : NAD27 / Texas North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32037,'EPSG',32037,'PROJCS["NAD27 / Texas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_paral [...]
+---
+--- EPSG 32038 : NAD27 / Texas North Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32038,'EPSG',32038,'PROJCS["NAD27 / Texas North Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standa [...]
+---
+--- EPSG 32039 : NAD27 / Texas Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32039,'EPSG',32039,'PROJCS["NAD27 / Texas Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_par [...]
+---
+--- EPSG 32040 : NAD27 / Texas South Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32040,'EPSG',32040,'PROJCS["NAD27 / Texas South Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standa [...]
+---
+--- EPSG 32041 : NAD27 / Texas South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32041,'EPSG',32041,'PROJCS["NAD27 / Texas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_paral [...]
+---
+--- EPSG 32042 : NAD27 / Utah North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32042,'EPSG',32042,'PROJCS["NAD27 / Utah North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parall [...]
+---
+--- EPSG 32043 : NAD27 / Utah Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32043,'EPSG',32043,'PROJCS["NAD27 / Utah Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_para [...]
+---
+--- EPSG 32044 : NAD27 / Utah South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32044,'EPSG',32044,'PROJCS["NAD27 / Utah South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parall [...]
+---
+--- EPSG 32045 : NAD27 / Vermont
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32045,'EPSG',32045,'PROJCS["NAD27 / Vermont",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5], [...]
+---
+--- EPSG 32046 : NAD27 / Virginia North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32046,'EPSG',32046,'PROJCS["NAD27 / Virginia North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
+---
+--- EPSG 32047 : NAD27 / Virginia South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32047,'EPSG',32047,'PROJCS["NAD27 / Virginia South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
+---
+--- EPSG 32048 : NAD27 / Washington North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32048,'EPSG',32048,'PROJCS["NAD27 / Washington North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_ [...]
+---
+--- EPSG 32049 : NAD27 / Washington South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32049,'EPSG',32049,'PROJCS["NAD27 / Washington South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_ [...]
+---
+--- EPSG 32050 : NAD27 / West Virginia North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32050,'EPSG',32050,'PROJCS["NAD27 / West Virginia North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standa [...]
+---
+--- EPSG 32051 : NAD27 / West Virginia South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32051,'EPSG',32051,'PROJCS["NAD27 / West Virginia South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standa [...]
+---
+--- EPSG 32052 : NAD27 / Wisconsin North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32052,'EPSG',32052,'PROJCS["NAD27 / Wisconsin North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_p [...]
+---
+--- EPSG 32053 : NAD27 / Wisconsin Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32053,'EPSG',32053,'PROJCS["NAD27 / Wisconsin Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard [...]
+---
+--- EPSG 32054 : NAD27 / Wisconsin South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32054,'EPSG',32054,'PROJCS["NAD27 / Wisconsin South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_p [...]
+---
+--- EPSG 32055 : NAD27 / Wyoming East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32055,'EPSG',32055,'PROJCS["NAD27 / Wyoming East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4 [...]
+---
+--- EPSG 32056 : NAD27 / Wyoming East Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32056,'EPSG',32056,'PROJCS["NAD27 / Wyoming East Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
+---
+--- EPSG 32057 : NAD27 / Wyoming West Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32057,'EPSG',32057,'PROJCS["NAD27 / Wyoming West Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_o [...]
+---
+--- EPSG 32058 : NAD27 / Wyoming West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32058,'EPSG',32058,'PROJCS["NAD27 / Wyoming West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4 [...]
+---
+--- EPSG 32061 : NAD27 / Guatemala Norte (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32061,'EPSG',32061,'PROJCS["NAD27 / Guatemala Norte (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETE [...]
+---
+--- EPSG 32062 : NAD27 / Guatemala Sur (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32062,'EPSG',32062,'PROJCS["NAD27 / Guatemala Sur (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER[ [...]
+---
+--- EPSG 32064 : NAD27 / BLM 14N (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32064,'EPSG',32064,'PROJCS["NAD27 / BLM 14N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
+---
+--- EPSG 32065 : NAD27 / BLM 15N (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32065,'EPSG',32065,'PROJCS["NAD27 / BLM 15N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
+---
+--- EPSG 32066 : NAD27 / BLM 16N (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32066,'EPSG',32066,'PROJCS["NAD27 / BLM 16N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
+---
+--- EPSG 32067 : NAD27 / BLM 17N (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32067,'EPSG',32067,'PROJCS["NAD27 / BLM 17N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin" [...]
+---
+--- EPSG 32074 : NAD27 / BLM 14N (feet) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32074,'EPSG',32074,'PROJCS["NAD27 / BLM 14N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 32075 : NAD27 / BLM 15N (feet) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32075,'EPSG',32075,'PROJCS["NAD27 / BLM 15N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 32076 : NAD27 / BLM 16N (feet) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32076,'EPSG',32076,'PROJCS["NAD27 / BLM 16N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 32077 : NAD27 / BLM 17N (feet) (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32077,'EPSG',32077,'PROJCS["NAD27 / BLM 17N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 32081 : NAD27 / MTM zone 1
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32081,'EPSG',32081,'PROJCS["NAD27 / MTM zone 1",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0], [...]
+---
+--- EPSG 32082 : NAD27 / MTM zone 2
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32082,'EPSG',32082,'PROJCS["NAD27 / MTM zone 2",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0], [...]
+---
+--- EPSG 32083 : NAD27 / MTM zone 3
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32083,'EPSG',32083,'PROJCS["NAD27 / MTM zone 3",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0], [...]
+---
+--- EPSG 32084 : NAD27 / MTM zone 4
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32084,'EPSG',32084,'PROJCS["NAD27 / MTM zone 4",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0], [...]
+---
+--- EPSG 32085 : NAD27 / MTM zone 5
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32085,'EPSG',32085,'PROJCS["NAD27 / MTM zone 5",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0], [...]
+---
+--- EPSG 32086 : NAD27 / MTM zone 6
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32086,'EPSG',32086,'PROJCS["NAD27 / MTM zone 6",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0], [...]
+---
+--- EPSG 32098 : NAD27 / Quebec Lambert
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32098,'EPSG',32098,'PROJCS["NAD27 / Quebec Lambert",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_pa [...]
+---
+--- EPSG 32099 : NAD27 / Louisiana Offshore
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32099,'EPSG',32099,'PROJCS["NAD27 / Louisiana Offshore",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standar [...]
+---
+--- EPSG 32100 : NAD83 / Montana
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32100,'EPSG',32100,'PROJCS["NAD83 / Montana",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["stan [...]
+---
+--- EPSG 32104 : NAD83 / Nebraska
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32104,'EPSG',32104,'PROJCS["NAD83 / Nebraska",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["sta [...]
+---
+--- EPSG 32107 : NAD83 / Nevada East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32107,'EPSG',32107,'PROJCS["NAD83 / Nevada East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32108 : NAD83 / Nevada Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32108,'EPSG',32108,'PROJCS["NAD83 / Nevada Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
+---
+--- EPSG 32109 : NAD83 / Nevada West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32109,'EPSG',32109,'PROJCS["NAD83 / Nevada West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32110 : NAD83 / New Hampshire
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32110,'EPSG',32110,'PROJCS["NAD83 / New Hampshire",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 32111 : NAD83 / New Jersey
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32111,'EPSG',32111,'PROJCS["NAD83 / New Jersey",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32112 : NAD83 / New Mexico East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32112,'EPSG',32112,'PROJCS["NAD83 / New Mexico East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
+---
+--- EPSG 32113 : NAD83 / New Mexico Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32113,'EPSG',32113,'PROJCS["NAD83 / New Mexico Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["l [...]
+---
+--- EPSG 32114 : NAD83 / New Mexico West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32114,'EPSG',32114,'PROJCS["NAD83 / New Mexico West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lati [...]
+---
+--- EPSG 32115 : NAD83 / New York East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32115,'EPSG',32115,'PROJCS["NAD83 / New York East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 32116 : NAD83 / New York Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32116,'EPSG',32116,'PROJCS["NAD83 / New York Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["lat [...]
+---
+--- EPSG 32117 : NAD83 / New York West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32117,'EPSG',32117,'PROJCS["NAD83 / New York West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+---
+--- EPSG 32118 : NAD83 / New York Long Island
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32118,'EPSG',32118,'PROJCS["NAD83 / New York Long Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PA [...]
+---
+--- EPSG 32119 : NAD83 / North Carolina
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32119,'EPSG',32119,'PROJCS["NAD83 / North Carolina",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 32120 : NAD83 / North Dakota North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32120,'EPSG',32120,'PROJCS["NAD83 / North Dakota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
 ---
 --- EPSG 32121 : NAD83 / North Dakota South
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32121,'EPSG',32121,'PROJCS["NAD83 / North Dakota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32121,'EPSG',32121,'PROJCS["NAD83 / North Dakota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
+---
+--- EPSG 32122 : NAD83 / Ohio North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32122,'EPSG',32122,'PROJCS["NAD83 / Ohio North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["s [...]
+---
+--- EPSG 32123 : NAD83 / Ohio South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32123,'EPSG',32123,'PROJCS["NAD83 / Ohio South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["s [...]
+---
+--- EPSG 32124 : NAD83 / Oklahoma North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32124,'EPSG',32124,'PROJCS["NAD83 / Oklahoma North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 32125 : NAD83 / Oklahoma South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32125,'EPSG',32125,'PROJCS["NAD83 / Oklahoma South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 32126 : NAD83 / Oregon North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32126,'EPSG',32126,'PROJCS["NAD83 / Oregon North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[ [...]
+---
+--- EPSG 32127 : NAD83 / Oregon South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32127,'EPSG',32127,'PROJCS["NAD83 / Oregon South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[ [...]
+---
+--- EPSG 32128 : NAD83 / Pennsylvania North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32128,'EPSG',32128,'PROJCS["NAD83 / Pennsylvania North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
+---
+--- EPSG 32129 : NAD83 / Pennsylvania South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32129,'EPSG',32129,'PROJCS["NAD83 / Pennsylvania South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
+---
+--- EPSG 32130 : NAD83 / Rhode Island
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32130,'EPSG',32130,'PROJCS["NAD83 / Rhode Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 32133 : NAD83 / South Carolina
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32133,'EPSG',32133,'PROJCS["NAD83 / South Carolina",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 32134 : NAD83 / South Dakota North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32134,'EPSG',32134,'PROJCS["NAD83 / South Dakota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
+---
+--- EPSG 32135 : NAD83 / South Dakota South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32135,'EPSG',32135,'PROJCS["NAD83 / South Dakota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
+---
+--- EPSG 32136 : NAD83 / Tennessee
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32136,'EPSG',32136,'PROJCS["NAD83 / Tennessee",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["st [...]
+---
+--- EPSG 32137 : NAD83 / Texas North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32137,'EPSG',32137,'PROJCS["NAD83 / Texas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[" [...]
+---
+--- EPSG 32138 : NAD83 / Texas North Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32138,'EPSG',32138,'PROJCS["NAD83 / Texas North Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
+---
+--- EPSG 32139 : NAD83 / Texas Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32139,'EPSG',32139,'PROJCS["NAD83 / Texas Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER [...]
+---
+--- EPSG 32140 : NAD83 / Texas South Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32140,'EPSG',32140,'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
+---
+--- EPSG 32141 : NAD83 / Texas South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32141,'EPSG',32141,'PROJCS["NAD83 / Texas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[" [...]
+---
+--- EPSG 32142 : NAD83 / Utah North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32142,'EPSG',32142,'PROJCS["NAD83 / Utah North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["s [...]
+---
+--- EPSG 32143 : NAD83 / Utah Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32143,'EPSG',32143,'PROJCS["NAD83 / Utah Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER[ [...]
+---
+--- EPSG 32144 : NAD83 / Utah South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32144,'EPSG',32144,'PROJCS["NAD83 / Utah South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["s [...]
+---
+--- EPSG 32145 : NAD83 / Vermont
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32145,'EPSG',32145,'PROJCS["NAD83 / Vermont",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_ [...]
+---
+--- EPSG 32146 : NAD83 / Virginia North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32146,'EPSG',32146,'PROJCS["NAD83 / Virginia North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 32147 : NAD83 / Virginia South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32147,'EPSG',32147,'PROJCS["NAD83 / Virginia South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 32148 : NAD83 / Washington North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32148,'EPSG',32148,'PROJCS["NAD83 / Washington North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
+---
+--- EPSG 32149 : NAD83 / Washington South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32149,'EPSG',32149,'PROJCS["NAD83 / Washington South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAME [...]
+---
+--- EPSG 32150 : NAD83 / West Virginia North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32150,'EPSG',32150,'PROJCS["NAD83 / West Virginia North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
+---
+--- EPSG 32151 : NAD83 / West Virginia South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32151,'EPSG',32151,'PROJCS["NAD83 / West Virginia South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PAR [...]
+---
+--- EPSG 32152 : NAD83 / Wisconsin North
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32152,'EPSG',32152,'PROJCS["NAD83 / Wisconsin North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+---
+--- EPSG 32153 : NAD83 / Wisconsin Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32153,'EPSG',32153,'PROJCS["NAD83 / Wisconsin Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAM [...]
+---
+--- EPSG 32154 : NAD83 / Wisconsin South
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32154,'EPSG',32154,'PROJCS["NAD83 / Wisconsin South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMET [...]
+---
+--- EPSG 32155 : NAD83 / Wyoming East
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32155,'EPSG',32155,'PROJCS["NAD83 / Wyoming East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 32156 : NAD83 / Wyoming East Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32156,'EPSG',32156,'PROJCS["NAD83 / Wyoming East Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 32157 : NAD83 / Wyoming West Central
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32157,'EPSG',32157,'PROJCS["NAD83 / Wyoming West Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER[ [...]
+---
+--- EPSG 32158 : NAD83 / Wyoming West
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32158,'EPSG',32158,'PROJCS["NAD83 / Wyoming West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+---
+--- EPSG 32161 : NAD83 / Puerto Rico & Virgin Is.
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32161,'EPSG',32161,'PROJCS["NAD83 / Puerto Rico & Virgin Is.",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP" [...]
+---
+--- EPSG 32164 : NAD83 / BLM 14N (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32164,'EPSG',32164,'PROJCS["NAD83 / BLM 14N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
+---
+--- EPSG 32165 : NAD83 / BLM 15N (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32165,'EPSG',32165,'PROJCS["NAD83 / BLM 15N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
+---
+--- EPSG 32166 : NAD83 / BLM 16N (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32166,'EPSG',32166,'PROJCS["NAD83 / BLM 16N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
+---
+--- EPSG 32167 : NAD83 / BLM 17N (ftUS)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32167,'EPSG',32167,'PROJCS["NAD83 / BLM 17N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latit [...]
+---
+--- EPSG 32180 : NAD83 / SCoPQ zone 2 (deprecated)
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32180,'EPSG',32180,'PROJCS["NAD83 / SCoPQ zone 2 (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAM [...]
+---
+--- EPSG 32181 : NAD83 / MTM zone 1
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32181,'EPSG',32181,'PROJCS["NAD83 / MTM zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32182 : NAD83 / MTM zone 2
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32182,'EPSG',32182,'PROJCS["NAD83 / MTM zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32183 : NAD83 / MTM zone 3
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32183,'EPSG',32183,'PROJCS["NAD83 / MTM zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32184 : NAD83 / MTM zone 4
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32184,'EPSG',32184,'PROJCS["NAD83 / MTM zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32185 : NAD83 / MTM zone 5
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32185,'EPSG',32185,'PROJCS["NAD83 / MTM zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32186 : NAD83 / MTM zone 6
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32186,'EPSG',32186,'PROJCS["NAD83 / MTM zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32187 : NAD83 / MTM zone 7
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32187,'EPSG',32187,'PROJCS["NAD83 / MTM zone 7",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32188 : NAD83 / MTM zone 8
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32188,'EPSG',32188,'PROJCS["NAD83 / MTM zone 8",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32189 : NAD83 / MTM zone 9
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32189,'EPSG',32189,'PROJCS["NAD83 / MTM zone 9",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_ [...]
+---
+--- EPSG 32190 : NAD83 / MTM zone 10
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32190,'EPSG',32190,'PROJCS["NAD83 / MTM zone 10",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32191 : NAD83 / MTM zone 11
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32191,'EPSG',32191,'PROJCS["NAD83 / MTM zone 11",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32192 : NAD83 / MTM zone 12
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32192,'EPSG',32192,'PROJCS["NAD83 / MTM zone 12",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32193 : NAD83 / MTM zone 13
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32193,'EPSG',32193,'PROJCS["NAD83 / MTM zone 13",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32194 : NAD83 / MTM zone 14
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32194,'EPSG',32194,'PROJCS["NAD83 / MTM zone 14",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32195 : NAD83 / MTM zone 15
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32195,'EPSG',32195,'PROJCS["NAD83 / MTM zone 15",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32196 : NAD83 / MTM zone 16
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32196,'EPSG',32196,'PROJCS["NAD83 / MTM zone 16",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32197 : NAD83 / MTM zone 17
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32197,'EPSG',32197,'PROJCS["NAD83 / MTM zone 17",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude [...]
+---
+--- EPSG 32198 : NAD83 / Quebec Lambert
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32198,'EPSG',32198,'PROJCS["NAD83 / Quebec Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETE [...]
+---
+--- EPSG 32199 : NAD83 / Louisiana Offshore
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32199,'EPSG',32199,'PROJCS["NAD83 / Louisiana Offshore",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARA [...]
+---
+--- EPSG 32201 : WGS 72 / UTM zone 1N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32201,'EPSG',32201,'PROJCS["WGS 72 / UTM zone 1N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32202 : WGS 72 / UTM zone 2N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32202,'EPSG',32202,'PROJCS["WGS 72 / UTM zone 2N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32203 : WGS 72 / UTM zone 3N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32203,'EPSG',32203,'PROJCS["WGS 72 / UTM zone 3N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32204 : WGS 72 / UTM zone 4N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32204,'EPSG',32204,'PROJCS["WGS 72 / UTM zone 4N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32205 : WGS 72 / UTM zone 5N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32205,'EPSG',32205,'PROJCS["WGS 72 / UTM zone 5N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32206 : WGS 72 / UTM zone 6N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32206,'EPSG',32206,'PROJCS["WGS 72 / UTM zone 6N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32207 : WGS 72 / UTM zone 7N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32207,'EPSG',32207,'PROJCS["WGS 72 / UTM zone 7N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32208 : WGS 72 / UTM zone 8N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32208,'EPSG',32208,'PROJCS["WGS 72 / UTM zone 8N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32209 : WGS 72 / UTM zone 9N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32209,'EPSG',32209,'PROJCS["WGS 72 / UTM zone 9N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32210 : WGS 72 / UTM zone 10N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32210,'EPSG',32210,'PROJCS["WGS 72 / UTM zone 10N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32211 : WGS 72 / UTM zone 11N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32211,'EPSG',32211,'PROJCS["WGS 72 / UTM zone 11N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32212 : WGS 72 / UTM zone 12N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32212,'EPSG',32212,'PROJCS["WGS 72 / UTM zone 12N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32213 : WGS 72 / UTM zone 13N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32213,'EPSG',32213,'PROJCS["WGS 72 / UTM zone 13N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32214 : WGS 72 / UTM zone 14N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32214,'EPSG',32214,'PROJCS["WGS 72 / UTM zone 14N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32215 : WGS 72 / UTM zone 15N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32215,'EPSG',32215,'PROJCS["WGS 72 / UTM zone 15N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32216 : WGS 72 / UTM zone 16N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32216,'EPSG',32216,'PROJCS["WGS 72 / UTM zone 16N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32217 : WGS 72 / UTM zone 17N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32217,'EPSG',32217,'PROJCS["WGS 72 / UTM zone 17N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32218 : WGS 72 / UTM zone 18N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32218,'EPSG',32218,'PROJCS["WGS 72 / UTM zone 18N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32219 : WGS 72 / UTM zone 19N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32219,'EPSG',32219,'PROJCS["WGS 72 / UTM zone 19N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32220 : WGS 72 / UTM zone 20N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32220,'EPSG',32220,'PROJCS["WGS 72 / UTM zone 20N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32221 : WGS 72 / UTM zone 21N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32221,'EPSG',32221,'PROJCS["WGS 72 / UTM zone 21N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32222 : WGS 72 / UTM zone 22N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32222,'EPSG',32222,'PROJCS["WGS 72 / UTM zone 22N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32223 : WGS 72 / UTM zone 23N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32223,'EPSG',32223,'PROJCS["WGS 72 / UTM zone 23N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32224 : WGS 72 / UTM zone 24N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32224,'EPSG',32224,'PROJCS["WGS 72 / UTM zone 24N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32225 : WGS 72 / UTM zone 25N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32225,'EPSG',32225,'PROJCS["WGS 72 / UTM zone 25N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32226 : WGS 72 / UTM zone 26N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32226,'EPSG',32226,'PROJCS["WGS 72 / UTM zone 26N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32227 : WGS 72 / UTM zone 27N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32227,'EPSG',32227,'PROJCS["WGS 72 / UTM zone 27N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32228 : WGS 72 / UTM zone 28N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32228,'EPSG',32228,'PROJCS["WGS 72 / UTM zone 28N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32229 : WGS 72 / UTM zone 29N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32229,'EPSG',32229,'PROJCS["WGS 72 / UTM zone 29N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32230 : WGS 72 / UTM zone 30N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32230,'EPSG',32230,'PROJCS["WGS 72 / UTM zone 30N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32231 : WGS 72 / UTM zone 31N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32231,'EPSG',32231,'PROJCS["WGS 72 / UTM zone 31N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32232 : WGS 72 / UTM zone 32N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32232,'EPSG',32232,'PROJCS["WGS 72 / UTM zone 32N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32233 : WGS 72 / UTM zone 33N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32233,'EPSG',32233,'PROJCS["WGS 72 / UTM zone 33N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32234 : WGS 72 / UTM zone 34N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32234,'EPSG',32234,'PROJCS["WGS 72 / UTM zone 34N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32235 : WGS 72 / UTM zone 35N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32235,'EPSG',32235,'PROJCS["WGS 72 / UTM zone 35N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32236 : WGS 72 / UTM zone 36N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32236,'EPSG',32236,'PROJCS["WGS 72 / UTM zone 36N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32237 : WGS 72 / UTM zone 37N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32237,'EPSG',32237,'PROJCS["WGS 72 / UTM zone 37N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32238 : WGS 72 / UTM zone 38N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32238,'EPSG',32238,'PROJCS["WGS 72 / UTM zone 38N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32239 : WGS 72 / UTM zone 39N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32239,'EPSG',32239,'PROJCS["WGS 72 / UTM zone 39N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32240 : WGS 72 / UTM zone 40N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32240,'EPSG',32240,'PROJCS["WGS 72 / UTM zone 40N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32241 : WGS 72 / UTM zone 41N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32241,'EPSG',32241,'PROJCS["WGS 72 / UTM zone 41N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32242 : WGS 72 / UTM zone 42N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32242,'EPSG',32242,'PROJCS["WGS 72 / UTM zone 42N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32243 : WGS 72 / UTM zone 43N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32243,'EPSG',32243,'PROJCS["WGS 72 / UTM zone 43N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32244 : WGS 72 / UTM zone 44N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32244,'EPSG',32244,'PROJCS["WGS 72 / UTM zone 44N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32245 : WGS 72 / UTM zone 45N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32245,'EPSG',32245,'PROJCS["WGS 72 / UTM zone 45N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32246 : WGS 72 / UTM zone 46N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32246,'EPSG',32246,'PROJCS["WGS 72 / UTM zone 46N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32247 : WGS 72 / UTM zone 47N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32247,'EPSG',32247,'PROJCS["WGS 72 / UTM zone 47N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32248 : WGS 72 / UTM zone 48N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32248,'EPSG',32248,'PROJCS["WGS 72 / UTM zone 48N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32249 : WGS 72 / UTM zone 49N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32249,'EPSG',32249,'PROJCS["WGS 72 / UTM zone 49N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32250 : WGS 72 / UTM zone 50N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32250,'EPSG',32250,'PROJCS["WGS 72 / UTM zone 50N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32251 : WGS 72 / UTM zone 51N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32251,'EPSG',32251,'PROJCS["WGS 72 / UTM zone 51N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32252 : WGS 72 / UTM zone 52N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32252,'EPSG',32252,'PROJCS["WGS 72 / UTM zone 52N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32253 : WGS 72 / UTM zone 53N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32253,'EPSG',32253,'PROJCS["WGS 72 / UTM zone 53N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32254 : WGS 72 / UTM zone 54N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32254,'EPSG',32254,'PROJCS["WGS 72 / UTM zone 54N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32255 : WGS 72 / UTM zone 55N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32255,'EPSG',32255,'PROJCS["WGS 72 / UTM zone 55N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32256 : WGS 72 / UTM zone 56N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32256,'EPSG',32256,'PROJCS["WGS 72 / UTM zone 56N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32257 : WGS 72 / UTM zone 57N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32257,'EPSG',32257,'PROJCS["WGS 72 / UTM zone 57N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32258 : WGS 72 / UTM zone 58N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32258,'EPSG',32258,'PROJCS["WGS 72 / UTM zone 58N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32259 : WGS 72 / UTM zone 59N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32259,'EPSG',32259,'PROJCS["WGS 72 / UTM zone 59N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32260 : WGS 72 / UTM zone 60N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32260,'EPSG',32260,'PROJCS["WGS 72 / UTM zone 60N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32301 : WGS 72 / UTM zone 1S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32301,'EPSG',32301,'PROJCS["WGS 72 / UTM zone 1S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32302 : WGS 72 / UTM zone 2S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32302,'EPSG',32302,'PROJCS["WGS 72 / UTM zone 2S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32303 : WGS 72 / UTM zone 3S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32303,'EPSG',32303,'PROJCS["WGS 72 / UTM zone 3S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32304 : WGS 72 / UTM zone 4S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32304,'EPSG',32304,'PROJCS["WGS 72 / UTM zone 4S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32305 : WGS 72 / UTM zone 5S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32305,'EPSG',32305,'PROJCS["WGS 72 / UTM zone 5S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32306 : WGS 72 / UTM zone 6S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32306,'EPSG',32306,'PROJCS["WGS 72 / UTM zone 6S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32307 : WGS 72 / UTM zone 7S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32307,'EPSG',32307,'PROJCS["WGS 72 / UTM zone 7S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32308 : WGS 72 / UTM zone 8S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32308,'EPSG',32308,'PROJCS["WGS 72 / UTM zone 8S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32309 : WGS 72 / UTM zone 9S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32309,'EPSG',32309,'PROJCS["WGS 72 / UTM zone 9S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0 [...]
+---
+--- EPSG 32310 : WGS 72 / UTM zone 10S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32310,'EPSG',32310,'PROJCS["WGS 72 / UTM zone 10S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32311 : WGS 72 / UTM zone 11S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32311,'EPSG',32311,'PROJCS["WGS 72 / UTM zone 11S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32312 : WGS 72 / UTM zone 12S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32312,'EPSG',32312,'PROJCS["WGS 72 / UTM zone 12S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32313 : WGS 72 / UTM zone 13S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32313,'EPSG',32313,'PROJCS["WGS 72 / UTM zone 13S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32314 : WGS 72 / UTM zone 14S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32314,'EPSG',32314,'PROJCS["WGS 72 / UTM zone 14S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32315 : WGS 72 / UTM zone 15S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32315,'EPSG',32315,'PROJCS["WGS 72 / UTM zone 15S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32316 : WGS 72 / UTM zone 16S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32316,'EPSG',32316,'PROJCS["WGS 72 / UTM zone 16S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32317 : WGS 72 / UTM zone 17S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32317,'EPSG',32317,'PROJCS["WGS 72 / UTM zone 17S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32318 : WGS 72 / UTM zone 18S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32318,'EPSG',32318,'PROJCS["WGS 72 / UTM zone 18S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32319 : WGS 72 / UTM zone 19S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32319,'EPSG',32319,'PROJCS["WGS 72 / UTM zone 19S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32320 : WGS 72 / UTM zone 20S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32320,'EPSG',32320,'PROJCS["WGS 72 / UTM zone 20S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32321 : WGS 72 / UTM zone 21S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32321,'EPSG',32321,'PROJCS["WGS 72 / UTM zone 21S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32322 : WGS 72 / UTM zone 22S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32322,'EPSG',32322,'PROJCS["WGS 72 / UTM zone 22S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32323 : WGS 72 / UTM zone 23S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32323,'EPSG',32323,'PROJCS["WGS 72 / UTM zone 23S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32324 : WGS 72 / UTM zone 24S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32324,'EPSG',32324,'PROJCS["WGS 72 / UTM zone 24S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32325 : WGS 72 / UTM zone 25S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32325,'EPSG',32325,'PROJCS["WGS 72 / UTM zone 25S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32326 : WGS 72 / UTM zone 26S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32326,'EPSG',32326,'PROJCS["WGS 72 / UTM zone 26S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32327 : WGS 72 / UTM zone 27S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32327,'EPSG',32327,'PROJCS["WGS 72 / UTM zone 27S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32328 : WGS 72 / UTM zone 28S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32328,'EPSG',32328,'PROJCS["WGS 72 / UTM zone 28S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32329 : WGS 72 / UTM zone 29S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32329,'EPSG',32329,'PROJCS["WGS 72 / UTM zone 29S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32330 : WGS 72 / UTM zone 30S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32330,'EPSG',32330,'PROJCS["WGS 72 / UTM zone 30S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32331 : WGS 72 / UTM zone 31S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32331,'EPSG',32331,'PROJCS["WGS 72 / UTM zone 31S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32332 : WGS 72 / UTM zone 32S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32332,'EPSG',32332,'PROJCS["WGS 72 / UTM zone 32S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32333 : WGS 72 / UTM zone 33S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32333,'EPSG',32333,'PROJCS["WGS 72 / UTM zone 33S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32334 : WGS 72 / UTM zone 34S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32334,'EPSG',32334,'PROJCS["WGS 72 / UTM zone 34S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32335 : WGS 72 / UTM zone 35S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32335,'EPSG',32335,'PROJCS["WGS 72 / UTM zone 35S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32336 : WGS 72 / UTM zone 36S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32336,'EPSG',32336,'PROJCS["WGS 72 / UTM zone 36S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32337 : WGS 72 / UTM zone 37S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32337,'EPSG',32337,'PROJCS["WGS 72 / UTM zone 37S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32338 : WGS 72 / UTM zone 38S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32338,'EPSG',32338,'PROJCS["WGS 72 / UTM zone 38S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32339 : WGS 72 / UTM zone 39S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32339,'EPSG',32339,'PROJCS["WGS 72 / UTM zone 39S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32340 : WGS 72 / UTM zone 40S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32340,'EPSG',32340,'PROJCS["WGS 72 / UTM zone 40S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32341 : WGS 72 / UTM zone 41S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32341,'EPSG',32341,'PROJCS["WGS 72 / UTM zone 41S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32342 : WGS 72 / UTM zone 42S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32342,'EPSG',32342,'PROJCS["WGS 72 / UTM zone 42S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32343 : WGS 72 / UTM zone 43S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32343,'EPSG',32343,'PROJCS["WGS 72 / UTM zone 43S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32344 : WGS 72 / UTM zone 44S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32344,'EPSG',32344,'PROJCS["WGS 72 / UTM zone 44S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32345 : WGS 72 / UTM zone 45S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32345,'EPSG',32345,'PROJCS["WGS 72 / UTM zone 45S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32346 : WGS 72 / UTM zone 46S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32346,'EPSG',32346,'PROJCS["WGS 72 / UTM zone 46S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32347 : WGS 72 / UTM zone 47S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32347,'EPSG',32347,'PROJCS["WGS 72 / UTM zone 47S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32348 : WGS 72 / UTM zone 48S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32348,'EPSG',32348,'PROJCS["WGS 72 / UTM zone 48S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32349 : WGS 72 / UTM zone 49S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32349,'EPSG',32349,'PROJCS["WGS 72 / UTM zone 49S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32350 : WGS 72 / UTM zone 50S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32350,'EPSG',32350,'PROJCS["WGS 72 / UTM zone 50S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32351 : WGS 72 / UTM zone 51S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32351,'EPSG',32351,'PROJCS["WGS 72 / UTM zone 51S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32352 : WGS 72 / UTM zone 52S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32352,'EPSG',32352,'PROJCS["WGS 72 / UTM zone 52S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32353 : WGS 72 / UTM zone 53S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32353,'EPSG',32353,'PROJCS["WGS 72 / UTM zone 53S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32354 : WGS 72 / UTM zone 54S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32354,'EPSG',32354,'PROJCS["WGS 72 / UTM zone 54S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32355 : WGS 72 / UTM zone 55S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32355,'EPSG',32355,'PROJCS["WGS 72 / UTM zone 55S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32356 : WGS 72 / UTM zone 56S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32356,'EPSG',32356,'PROJCS["WGS 72 / UTM zone 56S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32357 : WGS 72 / UTM zone 57S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32357,'EPSG',32357,'PROJCS["WGS 72 / UTM zone 57S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32358 : WGS 72 / UTM zone 58S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32358,'EPSG',32358,'PROJCS["WGS 72 / UTM zone 58S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32359 : WGS 72 / UTM zone 59S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32359,'EPSG',32359,'PROJCS["WGS 72 / UTM zone 59S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32360 : WGS 72 / UTM zone 60S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32360,'EPSG',32360,'PROJCS["WGS 72 / UTM zone 60S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin", [...]
+---
+--- EPSG 32401 : WGS 72BE / UTM zone 1N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32401,'EPSG',32401,'PROJCS["WGS 72BE / UTM zone 1N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 32402 : WGS 72BE / UTM zone 2N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32402,'EPSG',32402,'PROJCS["WGS 72BE / UTM zone 2N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 32403 : WGS 72BE / UTM zone 3N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32403,'EPSG',32403,'PROJCS["WGS 72BE / UTM zone 3N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 32404 : WGS 72BE / UTM zone 4N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32404,'EPSG',32404,'PROJCS["WGS 72BE / UTM zone 4N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 32405 : WGS 72BE / UTM zone 5N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32405,'EPSG',32405,'PROJCS["WGS 72BE / UTM zone 5N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 32406 : WGS 72BE / UTM zone 6N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32406,'EPSG',32406,'PROJCS["WGS 72BE / UTM zone 6N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 32407 : WGS 72BE / UTM zone 7N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32407,'EPSG',32407,'PROJCS["WGS 72BE / UTM zone 7N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 32408 : WGS 72BE / UTM zone 8N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32408,'EPSG',32408,'PROJCS["WGS 72BE / UTM zone 8N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 32409 : WGS 72BE / UTM zone 9N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32409,'EPSG',32409,'PROJCS["WGS 72BE / UTM zone 9N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
+---
+--- EPSG 32410 : WGS 72BE / UTM zone 10N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32410,'EPSG',32410,'PROJCS["WGS 72BE / UTM zone 10N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32411 : WGS 72BE / UTM zone 11N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32411,'EPSG',32411,'PROJCS["WGS 72BE / UTM zone 11N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32412 : WGS 72BE / UTM zone 12N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32412,'EPSG',32412,'PROJCS["WGS 72BE / UTM zone 12N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32413 : WGS 72BE / UTM zone 13N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32413,'EPSG',32413,'PROJCS["WGS 72BE / UTM zone 13N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32414 : WGS 72BE / UTM zone 14N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32414,'EPSG',32414,'PROJCS["WGS 72BE / UTM zone 14N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32415 : WGS 72BE / UTM zone 15N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32415,'EPSG',32415,'PROJCS["WGS 72BE / UTM zone 15N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32416 : WGS 72BE / UTM zone 16N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32416,'EPSG',32416,'PROJCS["WGS 72BE / UTM zone 16N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32417 : WGS 72BE / UTM zone 17N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32417,'EPSG',32417,'PROJCS["WGS 72BE / UTM zone 17N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32418 : WGS 72BE / UTM zone 18N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32418,'EPSG',32418,'PROJCS["WGS 72BE / UTM zone 18N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32419 : WGS 72BE / UTM zone 19N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32419,'EPSG',32419,'PROJCS["WGS 72BE / UTM zone 19N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32420 : WGS 72BE / UTM zone 20N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32420,'EPSG',32420,'PROJCS["WGS 72BE / UTM zone 20N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32421 : WGS 72BE / UTM zone 21N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32421,'EPSG',32421,'PROJCS["WGS 72BE / UTM zone 21N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32422 : WGS 72BE / UTM zone 22N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32422,'EPSG',32422,'PROJCS["WGS 72BE / UTM zone 22N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32423 : WGS 72BE / UTM zone 23N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32423,'EPSG',32423,'PROJCS["WGS 72BE / UTM zone 23N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32424 : WGS 72BE / UTM zone 24N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32424,'EPSG',32424,'PROJCS["WGS 72BE / UTM zone 24N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32425 : WGS 72BE / UTM zone 25N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32425,'EPSG',32425,'PROJCS["WGS 72BE / UTM zone 25N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32426 : WGS 72BE / UTM zone 26N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32426,'EPSG',32426,'PROJCS["WGS 72BE / UTM zone 26N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32427 : WGS 72BE / UTM zone 27N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32427,'EPSG',32427,'PROJCS["WGS 72BE / UTM zone 27N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32428 : WGS 72BE / UTM zone 28N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32428,'EPSG',32428,'PROJCS["WGS 72BE / UTM zone 28N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32429 : WGS 72BE / UTM zone 29N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32429,'EPSG',32429,'PROJCS["WGS 72BE / UTM zone 29N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32430 : WGS 72BE / UTM zone 30N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32430,'EPSG',32430,'PROJCS["WGS 72BE / UTM zone 30N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32431 : WGS 72BE / UTM zone 31N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32431,'EPSG',32431,'PROJCS["WGS 72BE / UTM zone 31N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32432 : WGS 72BE / UTM zone 32N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32432,'EPSG',32432,'PROJCS["WGS 72BE / UTM zone 32N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32433 : WGS 72BE / UTM zone 33N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32433,'EPSG',32433,'PROJCS["WGS 72BE / UTM zone 33N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32434 : WGS 72BE / UTM zone 34N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32434,'EPSG',32434,'PROJCS["WGS 72BE / UTM zone 34N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32435 : WGS 72BE / UTM zone 35N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32435,'EPSG',32435,'PROJCS["WGS 72BE / UTM zone 35N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32436 : WGS 72BE / UTM zone 36N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32436,'EPSG',32436,'PROJCS["WGS 72BE / UTM zone 36N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32437 : WGS 72BE / UTM zone 37N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32437,'EPSG',32437,'PROJCS["WGS 72BE / UTM zone 37N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32438 : WGS 72BE / UTM zone 38N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32438,'EPSG',32438,'PROJCS["WGS 72BE / UTM zone 38N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32439 : WGS 72BE / UTM zone 39N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32439,'EPSG',32439,'PROJCS["WGS 72BE / UTM zone 39N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32440 : WGS 72BE / UTM zone 40N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32440,'EPSG',32440,'PROJCS["WGS 72BE / UTM zone 40N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32441 : WGS 72BE / UTM zone 41N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32441,'EPSG',32441,'PROJCS["WGS 72BE / UTM zone 41N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32442 : WGS 72BE / UTM zone 42N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32442,'EPSG',32442,'PROJCS["WGS 72BE / UTM zone 42N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32443 : WGS 72BE / UTM zone 43N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32443,'EPSG',32443,'PROJCS["WGS 72BE / UTM zone 43N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32444 : WGS 72BE / UTM zone 44N
 ---
---- EPSG 32122 : NAD83 / Ohio North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32444,'EPSG',32444,'PROJCS["WGS 72BE / UTM zone 44N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32122,'EPSG',32122,'PROJCS["NAD83 / Ohio North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["L [...]
+--- EPSG 32445 : WGS 72BE / UTM zone 45N
 ---
---- EPSG 32123 : NAD83 / Ohio South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32445,'EPSG',32445,'PROJCS["WGS 72BE / UTM zone 45N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32123,'EPSG',32123,'PROJCS["NAD83 / Ohio South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["L [...]
+--- EPSG 32446 : WGS 72BE / UTM zone 46N
 ---
---- EPSG 32124 : NAD83 / Oklahoma North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32446,'EPSG',32446,'PROJCS["WGS 72BE / UTM zone 46N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32124,'EPSG',32124,'PROJCS["NAD83 / Oklahoma North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+--- EPSG 32447 : WGS 72BE / UTM zone 47N
 ---
---- EPSG 32125 : NAD83 / Oklahoma South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32447,'EPSG',32447,'PROJCS["WGS 72BE / UTM zone 47N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32125,'EPSG',32125,'PROJCS["NAD83 / Oklahoma South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+--- EPSG 32448 : WGS 72BE / UTM zone 48N
 ---
---- EPSG 32126 : NAD83 / Oregon North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32448,'EPSG',32448,'PROJCS["WGS 72BE / UTM zone 48N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32126,'EPSG',32126,'PROJCS["NAD83 / Oregon North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+--- EPSG 32449 : WGS 72BE / UTM zone 49N
 ---
---- EPSG 32127 : NAD83 / Oregon South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32449,'EPSG',32449,'PROJCS["WGS 72BE / UTM zone 49N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32127,'EPSG',32127,'PROJCS["NAD83 / Oregon South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+--- EPSG 32450 : WGS 72BE / UTM zone 50N
 ---
---- EPSG 32128 : NAD83 / Pennsylvania North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32450,'EPSG',32450,'PROJCS["WGS 72BE / UTM zone 50N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32128,'EPSG',32128,'PROJCS["NAD83 / Pennsylvania North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+--- EPSG 32451 : WGS 72BE / UTM zone 51N
 ---
---- EPSG 32129 : NAD83 / Pennsylvania South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32451,'EPSG',32451,'PROJCS["WGS 72BE / UTM zone 51N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32129,'EPSG',32129,'PROJCS["NAD83 / Pennsylvania South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+--- EPSG 32452 : WGS 72BE / UTM zone 52N
 ---
---- EPSG 32130 : NAD83 / Rhode Island
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32452,'EPSG',32452,'PROJCS["WGS 72BE / UTM zone 52N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32130,'EPSG',32130,'PROJCS["NAD83 / Rhode Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+--- EPSG 32453 : WGS 72BE / UTM zone 53N
 ---
---- EPSG 32133 : NAD83 / South Carolina
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32453,'EPSG',32453,'PROJCS["WGS 72BE / UTM zone 53N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32133,'EPSG',32133,'PROJCS["NAD83 / South Carolina",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+--- EPSG 32454 : WGS 72BE / UTM zone 54N
 ---
---- EPSG 32134 : NAD83 / South Dakota North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32454,'EPSG',32454,'PROJCS["WGS 72BE / UTM zone 54N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32134,'EPSG',32134,'PROJCS["NAD83 / South Dakota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+--- EPSG 32455 : WGS 72BE / UTM zone 55N
 ---
---- EPSG 32135 : NAD83 / South Dakota South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32455,'EPSG',32455,'PROJCS["WGS 72BE / UTM zone 55N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32135,'EPSG',32135,'PROJCS["NAD83 / South Dakota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+--- EPSG 32456 : WGS 72BE / UTM zone 56N
 ---
---- EPSG 32136 : NAD83 / Tennessee
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32456,'EPSG',32456,'PROJCS["WGS 72BE / UTM zone 56N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32136,'EPSG',32136,'PROJCS["NAD83 / Tennessee",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["La [...]
+--- EPSG 32457 : WGS 72BE / UTM zone 57N
 ---
---- EPSG 32137 : NAD83 / Texas North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32457,'EPSG',32457,'PROJCS["WGS 72BE / UTM zone 57N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32137,'EPSG',32137,'PROJCS["NAD83 / Texas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+--- EPSG 32458 : WGS 72BE / UTM zone 58N
 ---
---- EPSG 32138 : NAD83 / Texas North Central
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32458,'EPSG',32458,'PROJCS["WGS 72BE / UTM zone 58N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32138,'EPSG',32138,'PROJCS["NAD83 / Texas North Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+--- EPSG 32459 : WGS 72BE / UTM zone 59N
 ---
---- EPSG 32139 : NAD83 / Texas Central
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32459,'EPSG',32459,'PROJCS["WGS 72BE / UTM zone 59N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32139,'EPSG',32139,'PROJCS["NAD83 / Texas Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION [...]
+--- EPSG 32460 : WGS 72BE / UTM zone 60N
 ---
---- EPSG 32140 : NAD83 / Texas South Central
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32460,'EPSG',32460,'PROJCS["WGS 72BE / UTM zone 60N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32140,'EPSG',32140,'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+--- EPSG 32501 : WGS 72BE / UTM zone 1S
 ---
---- EPSG 32141 : NAD83 / Texas South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32501,'EPSG',32501,'PROJCS["WGS 72BE / UTM zone 1S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32141,'EPSG',32141,'PROJCS["NAD83 / Texas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+--- EPSG 32502 : WGS 72BE / UTM zone 2S
 ---
---- EPSG 32142 : NAD83 / Utah North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32502,'EPSG',32502,'PROJCS["WGS 72BE / UTM zone 2S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32142,'EPSG',32142,'PROJCS["NAD83 / Utah North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["L [...]
+--- EPSG 32503 : WGS 72BE / UTM zone 3S
 ---
---- EPSG 32143 : NAD83 / Utah Central
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32503,'EPSG',32503,'PROJCS["WGS 72BE / UTM zone 3S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32143,'EPSG',32143,'PROJCS["NAD83 / Utah Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+--- EPSG 32504 : WGS 72BE / UTM zone 4S
 ---
---- EPSG 32144 : NAD83 / Utah South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32504,'EPSG',32504,'PROJCS["WGS 72BE / UTM zone 4S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32144,'EPSG',32144,'PROJCS["NAD83 / Utah South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["L [...]
+--- EPSG 32505 : WGS 72BE / UTM zone 5S
 ---
---- EPSG 32145 : NAD83 / Vermont
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32505,'EPSG',32505,'PROJCS["WGS 72BE / UTM zone 5S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32145,'EPSG',32145,'PROJCS["NAD83 / Vermont",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Tran [...]
+--- EPSG 32506 : WGS 72BE / UTM zone 6S
 ---
---- EPSG 32146 : NAD83 / Virginia North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32506,'EPSG',32506,'PROJCS["WGS 72BE / UTM zone 6S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32146,'EPSG',32146,'PROJCS["NAD83 / Virginia North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+--- EPSG 32507 : WGS 72BE / UTM zone 7S
 ---
---- EPSG 32147 : NAD83 / Virginia South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32507,'EPSG',32507,'PROJCS["WGS 72BE / UTM zone 7S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32147,'EPSG',32147,'PROJCS["NAD83 / Virginia South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+--- EPSG 32508 : WGS 72BE / UTM zone 8S
 ---
---- EPSG 32148 : NAD83 / Washington North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32508,'EPSG',32508,'PROJCS["WGS 72BE / UTM zone 8S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32148,'EPSG',32148,'PROJCS["NAD83 / Washington North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+--- EPSG 32509 : WGS 72BE / UTM zone 9S
 ---
---- EPSG 32149 : NAD83 / Washington South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32509,'EPSG',32509,'PROJCS["WGS 72BE / UTM zone 9S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"],P [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32149,'EPSG',32149,'PROJCS["NAD83 / Washington South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECT [...]
+--- EPSG 32510 : WGS 72BE / UTM zone 10S
 ---
---- EPSG 32150 : NAD83 / West Virginia North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32510,'EPSG',32510,'PROJCS["WGS 72BE / UTM zone 10S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32150,'EPSG',32150,'PROJCS["NAD83 / West Virginia North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+--- EPSG 32511 : WGS 72BE / UTM zone 11S
 ---
---- EPSG 32151 : NAD83 / West Virginia South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32511,'EPSG',32511,'PROJCS["WGS 72BE / UTM zone 11S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32151,'EPSG',32151,'PROJCS["NAD83 / West Virginia South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJ [...]
+--- EPSG 32512 : WGS 72BE / UTM zone 12S
 ---
---- EPSG 32152 : NAD83 / Wisconsin North
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32512,'EPSG',32512,'PROJCS["WGS 72BE / UTM zone 12S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32152,'EPSG',32152,'PROJCS["NAD83 / Wisconsin North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+--- EPSG 32513 : WGS 72BE / UTM zone 13S
 ---
---- EPSG 32153 : NAD83 / Wisconsin Central
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32513,'EPSG',32513,'PROJCS["WGS 72BE / UTM zone 13S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32153,'EPSG',32153,'PROJCS["NAD83 / Wisconsin Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJEC [...]
+--- EPSG 32514 : WGS 72BE / UTM zone 14S
 ---
---- EPSG 32154 : NAD83 / Wisconsin South
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32514,'EPSG',32514,'PROJCS["WGS 72BE / UTM zone 14S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32515 : WGS 72BE / UTM zone 15S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32515,'EPSG',32515,'PROJCS["WGS 72BE / UTM zone 15S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32516 : WGS 72BE / UTM zone 16S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32516,'EPSG',32516,'PROJCS["WGS 72BE / UTM zone 16S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32517 : WGS 72BE / UTM zone 17S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32517,'EPSG',32517,'PROJCS["WGS 72BE / UTM zone 17S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32518 : WGS 72BE / UTM zone 18S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32518,'EPSG',32518,'PROJCS["WGS 72BE / UTM zone 18S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32519 : WGS 72BE / UTM zone 19S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32519,'EPSG',32519,'PROJCS["WGS 72BE / UTM zone 19S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32520 : WGS 72BE / UTM zone 20S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32520,'EPSG',32520,'PROJCS["WGS 72BE / UTM zone 20S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32521 : WGS 72BE / UTM zone 21S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32521,'EPSG',32521,'PROJCS["WGS 72BE / UTM zone 21S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32522 : WGS 72BE / UTM zone 22S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32522,'EPSG',32522,'PROJCS["WGS 72BE / UTM zone 22S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32523 : WGS 72BE / UTM zone 23S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32523,'EPSG',32523,'PROJCS["WGS 72BE / UTM zone 23S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32524 : WGS 72BE / UTM zone 24S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32524,'EPSG',32524,'PROJCS["WGS 72BE / UTM zone 24S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32525 : WGS 72BE / UTM zone 25S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32525,'EPSG',32525,'PROJCS["WGS 72BE / UTM zone 25S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32526 : WGS 72BE / UTM zone 26S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32526,'EPSG',32526,'PROJCS["WGS 72BE / UTM zone 26S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32527 : WGS 72BE / UTM zone 27S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32527,'EPSG',32527,'PROJCS["WGS 72BE / UTM zone 27S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32528 : WGS 72BE / UTM zone 28S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32528,'EPSG',32528,'PROJCS["WGS 72BE / UTM zone 28S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32529 : WGS 72BE / UTM zone 29S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32529,'EPSG',32529,'PROJCS["WGS 72BE / UTM zone 29S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32530 : WGS 72BE / UTM zone 30S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32530,'EPSG',32530,'PROJCS["WGS 72BE / UTM zone 30S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32531 : WGS 72BE / UTM zone 31S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32531,'EPSG',32531,'PROJCS["WGS 72BE / UTM zone 31S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32532 : WGS 72BE / UTM zone 32S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32532,'EPSG',32532,'PROJCS["WGS 72BE / UTM zone 32S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32533 : WGS 72BE / UTM zone 33S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32533,'EPSG',32533,'PROJCS["WGS 72BE / UTM zone 33S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32534 : WGS 72BE / UTM zone 34S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32534,'EPSG',32534,'PROJCS["WGS 72BE / UTM zone 34S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32535 : WGS 72BE / UTM zone 35S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32535,'EPSG',32535,'PROJCS["WGS 72BE / UTM zone 35S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32536 : WGS 72BE / UTM zone 36S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32536,'EPSG',32536,'PROJCS["WGS 72BE / UTM zone 36S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32537 : WGS 72BE / UTM zone 37S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32537,'EPSG',32537,'PROJCS["WGS 72BE / UTM zone 37S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32538 : WGS 72BE / UTM zone 38S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32538,'EPSG',32538,'PROJCS["WGS 72BE / UTM zone 38S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32539 : WGS 72BE / UTM zone 39S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32539,'EPSG',32539,'PROJCS["WGS 72BE / UTM zone 39S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32540 : WGS 72BE / UTM zone 40S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32540,'EPSG',32540,'PROJCS["WGS 72BE / UTM zone 40S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32541 : WGS 72BE / UTM zone 41S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32541,'EPSG',32541,'PROJCS["WGS 72BE / UTM zone 41S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32542 : WGS 72BE / UTM zone 42S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32542,'EPSG',32542,'PROJCS["WGS 72BE / UTM zone 42S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32543 : WGS 72BE / UTM zone 43S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32543,'EPSG',32543,'PROJCS["WGS 72BE / UTM zone 43S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32544 : WGS 72BE / UTM zone 44S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32544,'EPSG',32544,'PROJCS["WGS 72BE / UTM zone 44S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32545 : WGS 72BE / UTM zone 45S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32545,'EPSG',32545,'PROJCS["WGS 72BE / UTM zone 45S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32546 : WGS 72BE / UTM zone 46S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32546,'EPSG',32546,'PROJCS["WGS 72BE / UTM zone 46S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32547 : WGS 72BE / UTM zone 47S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32547,'EPSG',32547,'PROJCS["WGS 72BE / UTM zone 47S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32548 : WGS 72BE / UTM zone 48S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32548,'EPSG',32548,'PROJCS["WGS 72BE / UTM zone 48S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32549 : WGS 72BE / UTM zone 49S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32549,'EPSG',32549,'PROJCS["WGS 72BE / UTM zone 49S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32550 : WGS 72BE / UTM zone 50S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32550,'EPSG',32550,'PROJCS["WGS 72BE / UTM zone 50S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32551 : WGS 72BE / UTM zone 51S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32551,'EPSG',32551,'PROJCS["WGS 72BE / UTM zone 51S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32552 : WGS 72BE / UTM zone 52S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32552,'EPSG',32552,'PROJCS["WGS 72BE / UTM zone 52S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32553 : WGS 72BE / UTM zone 53S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32553,'EPSG',32553,'PROJCS["WGS 72BE / UTM zone 53S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32554 : WGS 72BE / UTM zone 54S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32554,'EPSG',32554,'PROJCS["WGS 72BE / UTM zone 54S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32555 : WGS 72BE / UTM zone 55S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32555,'EPSG',32555,'PROJCS["WGS 72BE / UTM zone 55S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32556 : WGS 72BE / UTM zone 56S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32556,'EPSG',32556,'PROJCS["WGS 72BE / UTM zone 56S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32557 : WGS 72BE / UTM zone 57S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32557,'EPSG',32557,'PROJCS["WGS 72BE / UTM zone 57S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32558 : WGS 72BE / UTM zone 58S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32558,'EPSG',32558,'PROJCS["WGS 72BE / UTM zone 58S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32559 : WGS 72BE / UTM zone 59S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32559,'EPSG',32559,'PROJCS["WGS 72BE / UTM zone 59S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32560 : WGS 72BE / UTM zone 60S
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32560,'EPSG',32560,'PROJCS["WGS 72BE / UTM zone 60S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],PROJECTION["Transverse_Mercator"], [...]
+---
+--- EPSG 32600 : WGS 84 / UTM grid system (northern hemisphere)
+---
+-- (unable to translate)
+---
+--- EPSG 32601 : WGS 84 / UTM zone 1N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32601,'EPSG',32601,'PROJCS["WGS 84 / UTM zone 1N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
+---
+--- EPSG 32602 : WGS 84 / UTM zone 2N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32602,'EPSG',32602,'PROJCS["WGS 84 / UTM zone 2N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
+---
+--- EPSG 32603 : WGS 84 / UTM zone 3N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32603,'EPSG',32603,'PROJCS["WGS 84 / UTM zone 3N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
+---
+--- EPSG 32604 : WGS 84 / UTM zone 4N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32604,'EPSG',32604,'PROJCS["WGS 84 / UTM zone 4N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
+---
+--- EPSG 32605 : WGS 84 / UTM zone 5N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32605,'EPSG',32605,'PROJCS["WGS 84 / UTM zone 5N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
+---
+--- EPSG 32606 : WGS 84 / UTM zone 6N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32606,'EPSG',32606,'PROJCS["WGS 84 / UTM zone 6N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
+---
+--- EPSG 32607 : WGS 84 / UTM zone 7N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32607,'EPSG',32607,'PROJCS["WGS 84 / UTM zone 7N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
+---
+--- EPSG 32608 : WGS 84 / UTM zone 8N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32608,'EPSG',32608,'PROJCS["WGS 84 / UTM zone 8N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
+---
+--- EPSG 32609 : WGS 84 / UTM zone 9N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32609,'EPSG',32609,'PROJCS["WGS 84 / UTM zone 9N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
+---
+--- EPSG 32610 : WGS 84 / UTM zone 10N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32610,'EPSG',32610,'PROJCS["WGS 84 / UTM zone 10N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
+---
+--- EPSG 32611 : WGS 84 / UTM zone 11N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32611,'EPSG',32611,'PROJCS["WGS 84 / UTM zone 11N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
+---
+--- EPSG 32612 : WGS 84 / UTM zone 12N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32612,'EPSG',32612,'PROJCS["WGS 84 / UTM zone 12N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
+---
+--- EPSG 32613 : WGS 84 / UTM zone 13N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32613,'EPSG',32613,'PROJCS["WGS 84 / UTM zone 13N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
+---
+--- EPSG 32614 : WGS 84 / UTM zone 14N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32614,'EPSG',32614,'PROJCS["WGS 84 / UTM zone 14N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
+---
+--- EPSG 32615 : WGS 84 / UTM zone 15N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32615,'EPSG',32615,'PROJCS["WGS 84 / UTM zone 15N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
+---
+--- EPSG 32616 : WGS 84 / UTM zone 16N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32616,'EPSG',32616,'PROJCS["WGS 84 / UTM zone 16N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
+---
+--- EPSG 32617 : WGS 84 / UTM zone 17N
+---
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32617,'EPSG',32617,'PROJCS["WGS 84 / UTM zone 17N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
+---
+--- EPSG 32618 : WGS 84 / UTM zone 18N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32154,'EPSG',32154,'PROJCS["NAD83 / Wisconsin South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTI [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32618,'EPSG',32618,'PROJCS["WGS 84 / UTM zone 18N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32155 : NAD83 / Wyoming East
+--- EPSG 32619 : WGS 84 / UTM zone 19N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32155,'EPSG',32155,'PROJCS["NAD83 / Wyoming East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32619,'EPSG',32619,'PROJCS["WGS 84 / UTM zone 19N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32156 : NAD83 / Wyoming East Central
+--- EPSG 32620 : WGS 84 / UTM zone 20N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32156,'EPSG',32156,'PROJCS["NAD83 / Wyoming East Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32620,'EPSG',32620,'PROJCS["WGS 84 / UTM zone 20N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32157 : NAD83 / Wyoming West Central
+--- EPSG 32621 : WGS 84 / UTM zone 21N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32157,'EPSG',32157,'PROJCS["NAD83 / Wyoming West Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PRO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32621,'EPSG',32621,'PROJCS["WGS 84 / UTM zone 21N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32158 : NAD83 / Wyoming West
+--- EPSG 32622 : WGS 84 / UTM zone 22N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32158,'EPSG',32158,'PROJCS["NAD83 / Wyoming West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32622,'EPSG',32622,'PROJCS["WGS 84 / UTM zone 22N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32161 : NAD83 / Puerto Rico & Virgin Is.
+--- EPSG 32623 : WGS 84 / UTM zone 23N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32161,'EPSG',32161,'PROJCS["NAD83 / Puerto Rico & Virgin Is.",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32623,'EPSG',32623,'PROJCS["WGS 84 / UTM zone 23N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32164 : NAD83 / BLM 14N (ftUS)
+--- EPSG 32624 : WGS 84 / UTM zone 24N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32164,'EPSG',32164,'PROJCS["NAD83 / BLM 14N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32624,'EPSG',32624,'PROJCS["WGS 84 / UTM zone 24N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32165 : NAD83 / BLM 15N (ftUS)
+--- EPSG 32625 : WGS 84 / UTM zone 25N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32165,'EPSG',32165,'PROJCS["NAD83 / BLM 15N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32625,'EPSG',32625,'PROJCS["WGS 84 / UTM zone 25N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32166 : NAD83 / BLM 16N (ftUS)
+--- EPSG 32626 : WGS 84 / UTM zone 26N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32166,'EPSG',32166,'PROJCS["NAD83 / BLM 16N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32626,'EPSG',32626,'PROJCS["WGS 84 / UTM zone 26N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32167 : NAD83 / BLM 17N (ftUS)
+--- EPSG 32627 : WGS 84 / UTM zone 27N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32167,'EPSG',32167,'PROJCS["NAD83 / BLM 17N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32627,'EPSG',32627,'PROJCS["WGS 84 / UTM zone 27N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32180 : NAD83 / SCoPQ zone 2
+--- EPSG 32628 : WGS 84 / UTM zone 28N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32180,'EPSG',32180,'PROJCS["NAD83 / SCoPQ zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32628,'EPSG',32628,'PROJCS["WGS 84 / UTM zone 28N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32181 : NAD83 / MTM zone 1
+--- EPSG 32629 : WGS 84 / UTM zone 29N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32181,'EPSG',32181,'PROJCS["NAD83 / MTM zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32629,'EPSG',32629,'PROJCS["WGS 84 / UTM zone 29N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32182 : NAD83 / MTM zone 2
+--- EPSG 32630 : WGS 84 / UTM zone 30N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32182,'EPSG',32182,'PROJCS["NAD83 / MTM zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32630,'EPSG',32630,'PROJCS["WGS 84 / UTM zone 30N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32183 : NAD83 / MTM zone 3
+--- EPSG 32631 : WGS 84 / UTM zone 31N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32183,'EPSG',32183,'PROJCS["NAD83 / MTM zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32631,'EPSG',32631,'PROJCS["WGS 84 / UTM zone 31N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32184 : NAD83 / MTM zone 4
+--- EPSG 32632 : WGS 84 / UTM zone 32N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32184,'EPSG',32184,'PROJCS["NAD83 / MTM zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32632,'EPSG',32632,'PROJCS["WGS 84 / UTM zone 32N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32185 : NAD83 / MTM zone 5
+--- EPSG 32633 : WGS 84 / UTM zone 33N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32185,'EPSG',32185,'PROJCS["NAD83 / MTM zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32633,'EPSG',32633,'PROJCS["WGS 84 / UTM zone 33N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32186 : NAD83 / MTM zone 6
+--- EPSG 32634 : WGS 84 / UTM zone 34N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32186,'EPSG',32186,'PROJCS["NAD83 / MTM zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32634,'EPSG',32634,'PROJCS["WGS 84 / UTM zone 34N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32187 : NAD83 / MTM zone 7
+--- EPSG 32635 : WGS 84 / UTM zone 35N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32187,'EPSG',32187,'PROJCS["NAD83 / MTM zone 7",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32635,'EPSG',32635,'PROJCS["WGS 84 / UTM zone 35N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32188 : NAD83 / MTM zone 8
+--- EPSG 32636 : WGS 84 / UTM zone 36N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32188,'EPSG',32188,'PROJCS["NAD83 / MTM zone 8",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32636,'EPSG',32636,'PROJCS["WGS 84 / UTM zone 36N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32189 : NAD83 / MTM zone 9
+--- EPSG 32637 : WGS 84 / UTM zone 37N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32189,'EPSG',32189,'PROJCS["NAD83 / MTM zone 9",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["T [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32637,'EPSG',32637,'PROJCS["WGS 84 / UTM zone 37N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32190 : NAD83 / MTM zone 10
+--- EPSG 32638 : WGS 84 / UTM zone 38N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32190,'EPSG',32190,'PROJCS["NAD83 / MTM zone 10",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32638,'EPSG',32638,'PROJCS["WGS 84 / UTM zone 38N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32191 : NAD83 / MTM zone 11
+--- EPSG 32639 : WGS 84 / UTM zone 39N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32191,'EPSG',32191,'PROJCS["NAD83 / MTM zone 11",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32639,'EPSG',32639,'PROJCS["WGS 84 / UTM zone 39N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32192 : NAD83 / MTM zone 12
+--- EPSG 32640 : WGS 84 / UTM zone 40N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32192,'EPSG',32192,'PROJCS["NAD83 / MTM zone 12",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32640,'EPSG',32640,'PROJCS["WGS 84 / UTM zone 40N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32193 : NAD83 / MTM zone 13
+--- EPSG 32641 : WGS 84 / UTM zone 41N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32193,'EPSG',32193,'PROJCS["NAD83 / MTM zone 13",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32641,'EPSG',32641,'PROJCS["WGS 84 / UTM zone 41N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32194 : NAD83 / MTM zone 14
+--- EPSG 32642 : WGS 84 / UTM zone 42N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32194,'EPSG',32194,'PROJCS["NAD83 / MTM zone 14",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32642,'EPSG',32642,'PROJCS["WGS 84 / UTM zone 42N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32195 : NAD83 / MTM zone 15
+--- EPSG 32643 : WGS 84 / UTM zone 43N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32195,'EPSG',32195,'PROJCS["NAD83 / MTM zone 15",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32643,'EPSG',32643,'PROJCS["WGS 84 / UTM zone 43N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32196 : NAD83 / MTM zone 16
+--- EPSG 32644 : WGS 84 / UTM zone 44N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32196,'EPSG',32196,'PROJCS["NAD83 / MTM zone 16",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32644,'EPSG',32644,'PROJCS["WGS 84 / UTM zone 44N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32197 : NAD83 / MTM zone 17
+--- EPSG 32645 : WGS 84 / UTM zone 45N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32197,'EPSG',32197,'PROJCS["NAD83 / MTM zone 17",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION[" [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32645,'EPSG',32645,'PROJCS["WGS 84 / UTM zone 45N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32198 : NAD83 / Quebec Lambert
+--- EPSG 32646 : WGS 84 / UTM zone 46N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32198,'EPSG',32198,'PROJCS["NAD83 / Quebec Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTIO [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32646,'EPSG',32646,'PROJCS["WGS 84 / UTM zone 46N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32199 : NAD83 / Louisiana Offshore
+--- EPSG 32647 : WGS 84 / UTM zone 47N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32199,'EPSG',32199,'PROJCS["NAD83 / Louisiana Offshore",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32647,'EPSG',32647,'PROJCS["WGS 84 / UTM zone 47N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32201 : WGS 72 / UTM zone 1N
+--- EPSG 32648 : WGS 84 / UTM zone 48N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32201,'EPSG',32201,'PROJCS["WGS 72 / UTM zone 1N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32648,'EPSG',32648,'PROJCS["WGS 84 / UTM zone 48N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32202 : WGS 72 / UTM zone 2N
+--- EPSG 32649 : WGS 84 / UTM zone 49N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32202,'EPSG',32202,'PROJCS["WGS 72 / UTM zone 2N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32649,'EPSG',32649,'PROJCS["WGS 84 / UTM zone 49N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32203 : WGS 72 / UTM zone 3N
+--- EPSG 32650 : WGS 84 / UTM zone 50N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32203,'EPSG',32203,'PROJCS["WGS 72 / UTM zone 3N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32650,'EPSG',32650,'PROJCS["WGS 84 / UTM zone 50N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32204 : WGS 72 / UTM zone 4N
+--- EPSG 32651 : WGS 84 / UTM zone 51N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32204,'EPSG',32204,'PROJCS["WGS 72 / UTM zone 4N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32651,'EPSG',32651,'PROJCS["WGS 84 / UTM zone 51N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32205 : WGS 72 / UTM zone 5N
+--- EPSG 32652 : WGS 84 / UTM zone 52N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32205,'EPSG',32205,'PROJCS["WGS 72 / UTM zone 5N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32652,'EPSG',32652,'PROJCS["WGS 84 / UTM zone 52N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32206 : WGS 72 / UTM zone 6N
+--- EPSG 32653 : WGS 84 / UTM zone 53N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32206,'EPSG',32206,'PROJCS["WGS 72 / UTM zone 6N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32653,'EPSG',32653,'PROJCS["WGS 84 / UTM zone 53N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32207 : WGS 72 / UTM zone 7N
+--- EPSG 32654 : WGS 84 / UTM zone 54N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32207,'EPSG',32207,'PROJCS["WGS 72 / UTM zone 7N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32654,'EPSG',32654,'PROJCS["WGS 84 / UTM zone 54N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32208 : WGS 72 / UTM zone 8N
+--- EPSG 32655 : WGS 84 / UTM zone 55N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32208,'EPSG',32208,'PROJCS["WGS 72 / UTM zone 8N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32655,'EPSG',32655,'PROJCS["WGS 84 / UTM zone 55N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32209 : WGS 72 / UTM zone 9N
+--- EPSG 32656 : WGS 84 / UTM zone 56N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32209,'EPSG',32209,'PROJCS["WGS 72 / UTM zone 9N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32656,'EPSG',32656,'PROJCS["WGS 84 / UTM zone 56N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32210 : WGS 72 / UTM zone 10N
+--- EPSG 32657 : WGS 84 / UTM zone 57N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32210,'EPSG',32210,'PROJCS["WGS 72 / UTM zone 10N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32657,'EPSG',32657,'PROJCS["WGS 84 / UTM zone 57N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32211 : WGS 72 / UTM zone 11N
+--- EPSG 32658 : WGS 84 / UTM zone 58N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32211,'EPSG',32211,'PROJCS["WGS 72 / UTM zone 11N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32658,'EPSG',32658,'PROJCS["WGS 84 / UTM zone 58N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32212 : WGS 72 / UTM zone 12N
+--- EPSG 32659 : WGS 84 / UTM zone 59N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32212,'EPSG',32212,'PROJCS["WGS 72 / UTM zone 12N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32659,'EPSG',32659,'PROJCS["WGS 84 / UTM zone 59N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32213 : WGS 72 / UTM zone 13N
+--- EPSG 32660 : WGS 84 / UTM zone 60N
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32213,'EPSG',32213,'PROJCS["WGS 72 / UTM zone 13N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32660,'EPSG',32660,'PROJCS["WGS 84 / UTM zone 60N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32214 : WGS 72 / UTM zone 14N
+--- EPSG 32661 : WGS 84 / UPS North (N,E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32214,'EPSG',32214,'PROJCS["WGS 72 / UTM zone 14N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32661,'EPSG',32661,'PROJCS["WGS 84 / UPS North (N,E)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PARAMETER["central_m [...]
 ---
---- EPSG 32215 : WGS 72 / UTM zone 15N
+--- EPSG 32662 : WGS 84 / Plate Carree (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32215,'EPSG',32215,'PROJCS["WGS 72 / UTM zone 15N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32662,'EPSG',32662,'PROJCS["WGS 84 / Plate Carree (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["cent [...]
 ---
---- EPSG 32216 : WGS 72 / UTM zone 16N
+--- EPSG 32663 : WGS 84 / World Equidistant Cylindrical (deprecated)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32216,'EPSG',32216,'PROJCS["WGS 72 / UTM zone 16N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32663,'EPSG',32663,'PROJCS["WGS 84 / World Equidistant Cylindrical (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0 [...]
 ---
---- EPSG 32217 : WGS 72 / UTM zone 17N
+--- EPSG 32664 : WGS 84 / BLM 14N (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32217,'EPSG',32217,'PROJCS["WGS 72 / UTM zone 17N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32664,'EPSG',32664,'PROJCS["WGS 84 / BLM 14N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_mer [...]
 ---
---- EPSG 32218 : WGS 72 / UTM zone 18N
+--- EPSG 32665 : WGS 84 / BLM 15N (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32218,'EPSG',32218,'PROJCS["WGS 72 / UTM zone 18N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32665,'EPSG',32665,'PROJCS["WGS 84 / BLM 15N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_mer [...]
 ---
---- EPSG 32219 : WGS 72 / UTM zone 19N
+--- EPSG 32666 : WGS 84 / BLM 16N (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32219,'EPSG',32219,'PROJCS["WGS 72 / UTM zone 19N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32666,'EPSG',32666,'PROJCS["WGS 84 / BLM 16N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_mer [...]
 ---
---- EPSG 32220 : WGS 72 / UTM zone 20N
+--- EPSG 32667 : WGS 84 / BLM 17N (ftUS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32220,'EPSG',32220,'PROJCS["WGS 72 / UTM zone 20N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32667,'EPSG',32667,'PROJCS["WGS 84 / BLM 17N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_mer [...]
 ---
---- EPSG 32221 : WGS 72 / UTM zone 21N
+--- EPSG 32700 : WGS 84 / UTM grid system (southern hemisphere)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32221,'EPSG',32221,'PROJCS["WGS 72 / UTM zone 21N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+-- (unable to translate)
 ---
---- EPSG 32222 : WGS 72 / UTM zone 22N
+--- EPSG 32701 : WGS 84 / UTM zone 1S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32222,'EPSG',32222,'PROJCS["WGS 72 / UTM zone 22N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32701,'EPSG',32701,'PROJCS["WGS 84 / UTM zone 1S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 32223 : WGS 72 / UTM zone 23N
+--- EPSG 32702 : WGS 84 / UTM zone 2S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32223,'EPSG',32223,'PROJCS["WGS 72 / UTM zone 23N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32702,'EPSG',32702,'PROJCS["WGS 84 / UTM zone 2S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 32224 : WGS 72 / UTM zone 24N
+--- EPSG 32703 : WGS 84 / UTM zone 3S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32224,'EPSG',32224,'PROJCS["WGS 72 / UTM zone 24N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32703,'EPSG',32703,'PROJCS["WGS 84 / UTM zone 3S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 32225 : WGS 72 / UTM zone 25N
+--- EPSG 32704 : WGS 84 / UTM zone 4S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32225,'EPSG',32225,'PROJCS["WGS 72 / UTM zone 25N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32704,'EPSG',32704,'PROJCS["WGS 84 / UTM zone 4S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 32226 : WGS 72 / UTM zone 26N
+--- EPSG 32705 : WGS 84 / UTM zone 5S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32226,'EPSG',32226,'PROJCS["WGS 72 / UTM zone 26N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32705,'EPSG',32705,'PROJCS["WGS 84 / UTM zone 5S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 32227 : WGS 72 / UTM zone 27N
+--- EPSG 32706 : WGS 84 / UTM zone 6S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32227,'EPSG',32227,'PROJCS["WGS 72 / UTM zone 27N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32706,'EPSG',32706,'PROJCS["WGS 84 / UTM zone 6S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 32228 : WGS 72 / UTM zone 28N
+--- EPSG 32707 : WGS 84 / UTM zone 7S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32228,'EPSG',32228,'PROJCS["WGS 72 / UTM zone 28N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32707,'EPSG',32707,'PROJCS["WGS 84 / UTM zone 7S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 32229 : WGS 72 / UTM zone 29N
+--- EPSG 32708 : WGS 84 / UTM zone 8S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32229,'EPSG',32229,'PROJCS["WGS 72 / UTM zone 29N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32708,'EPSG',32708,'PROJCS["WGS 84 / UTM zone 8S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 32230 : WGS 72 / UTM zone 30N
+--- EPSG 32709 : WGS 84 / UTM zone 9S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32230,'EPSG',32230,'PROJCS["WGS 72 / UTM zone 30N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32709,'EPSG',32709,'PROJCS["WGS 84 / UTM zone 9S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridi [...]
 ---
---- EPSG 32231 : WGS 72 / UTM zone 31N
+--- EPSG 32710 : WGS 84 / UTM zone 10S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32231,'EPSG',32231,'PROJCS["WGS 72 / UTM zone 31N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32710,'EPSG',32710,'PROJCS["WGS 84 / UTM zone 10S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32232 : WGS 72 / UTM zone 32N
+--- EPSG 32711 : WGS 84 / UTM zone 11S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32232,'EPSG',32232,'PROJCS["WGS 72 / UTM zone 32N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32711,'EPSG',32711,'PROJCS["WGS 84 / UTM zone 11S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32233 : WGS 72 / UTM zone 33N
+--- EPSG 32712 : WGS 84 / UTM zone 12S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32233,'EPSG',32233,'PROJCS["WGS 72 / UTM zone 33N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32712,'EPSG',32712,'PROJCS["WGS 84 / UTM zone 12S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32234 : WGS 72 / UTM zone 34N
+--- EPSG 32713 : WGS 84 / UTM zone 13S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32234,'EPSG',32234,'PROJCS["WGS 72 / UTM zone 34N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32713,'EPSG',32713,'PROJCS["WGS 84 / UTM zone 13S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32235 : WGS 72 / UTM zone 35N
+--- EPSG 32714 : WGS 84 / UTM zone 14S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32235,'EPSG',32235,'PROJCS["WGS 72 / UTM zone 35N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32714,'EPSG',32714,'PROJCS["WGS 84 / UTM zone 14S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32236 : WGS 72 / UTM zone 36N
+--- EPSG 32715 : WGS 84 / UTM zone 15S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32236,'EPSG',32236,'PROJCS["WGS 72 / UTM zone 36N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32715,'EPSG',32715,'PROJCS["WGS 84 / UTM zone 15S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32237 : WGS 72 / UTM zone 37N
+--- EPSG 32716 : WGS 84 / UTM zone 16S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32237,'EPSG',32237,'PROJCS["WGS 72 / UTM zone 37N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32716,'EPSG',32716,'PROJCS["WGS 84 / UTM zone 16S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32238 : WGS 72 / UTM zone 38N
+--- EPSG 32717 : WGS 84 / UTM zone 17S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32238,'EPSG',32238,'PROJCS["WGS 72 / UTM zone 38N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32717,'EPSG',32717,'PROJCS["WGS 84 / UTM zone 17S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32239 : WGS 72 / UTM zone 39N
+--- EPSG 32718 : WGS 84 / UTM zone 18S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32239,'EPSG',32239,'PROJCS["WGS 72 / UTM zone 39N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32718,'EPSG',32718,'PROJCS["WGS 84 / UTM zone 18S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32240 : WGS 72 / UTM zone 40N
+--- EPSG 32719 : WGS 84 / UTM zone 19S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32240,'EPSG',32240,'PROJCS["WGS 72 / UTM zone 40N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32719,'EPSG',32719,'PROJCS["WGS 84 / UTM zone 19S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32241 : WGS 72 / UTM zone 41N
+--- EPSG 32720 : WGS 84 / UTM zone 20S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32241,'EPSG',32241,'PROJCS["WGS 72 / UTM zone 41N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32720,'EPSG',32720,'PROJCS["WGS 84 / UTM zone 20S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32242 : WGS 72 / UTM zone 42N
+--- EPSG 32721 : WGS 84 / UTM zone 21S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32242,'EPSG',32242,'PROJCS["WGS 72 / UTM zone 42N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32721,'EPSG',32721,'PROJCS["WGS 84 / UTM zone 21S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32243 : WGS 72 / UTM zone 43N
+--- EPSG 32722 : WGS 84 / UTM zone 22S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32243,'EPSG',32243,'PROJCS["WGS 72 / UTM zone 43N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32722,'EPSG',32722,'PROJCS["WGS 84 / UTM zone 22S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32244 : WGS 72 / UTM zone 44N
+--- EPSG 32723 : WGS 84 / UTM zone 23S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32244,'EPSG',32244,'PROJCS["WGS 72 / UTM zone 44N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32723,'EPSG',32723,'PROJCS["WGS 84 / UTM zone 23S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32245 : WGS 72 / UTM zone 45N
+--- EPSG 32724 : WGS 84 / UTM zone 24S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32245,'EPSG',32245,'PROJCS["WGS 72 / UTM zone 45N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32724,'EPSG',32724,'PROJCS["WGS 84 / UTM zone 24S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32246 : WGS 72 / UTM zone 46N
+--- EPSG 32725 : WGS 84 / UTM zone 25S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32246,'EPSG',32246,'PROJCS["WGS 72 / UTM zone 46N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32725,'EPSG',32725,'PROJCS["WGS 84 / UTM zone 25S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32247 : WGS 72 / UTM zone 47N
+--- EPSG 32726 : WGS 84 / UTM zone 26S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32247,'EPSG',32247,'PROJCS["WGS 72 / UTM zone 47N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32726,'EPSG',32726,'PROJCS["WGS 84 / UTM zone 26S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32248 : WGS 72 / UTM zone 48N
+--- EPSG 32727 : WGS 84 / UTM zone 27S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32248,'EPSG',32248,'PROJCS["WGS 72 / UTM zone 48N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32727,'EPSG',32727,'PROJCS["WGS 84 / UTM zone 27S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32249 : WGS 72 / UTM zone 49N
+--- EPSG 32728 : WGS 84 / UTM zone 28S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32249,'EPSG',32249,'PROJCS["WGS 72 / UTM zone 49N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32728,'EPSG',32728,'PROJCS["WGS 84 / UTM zone 28S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32250 : WGS 72 / UTM zone 50N
+--- EPSG 32729 : WGS 84 / UTM zone 29S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32250,'EPSG',32250,'PROJCS["WGS 72 / UTM zone 50N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32729,'EPSG',32729,'PROJCS["WGS 84 / UTM zone 29S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32251 : WGS 72 / UTM zone 51N
+--- EPSG 32730 : WGS 84 / UTM zone 30S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32251,'EPSG',32251,'PROJCS["WGS 72 / UTM zone 51N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32730,'EPSG',32730,'PROJCS["WGS 84 / UTM zone 30S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32252 : WGS 72 / UTM zone 52N
+--- EPSG 32731 : WGS 84 / UTM zone 31S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32252,'EPSG',32252,'PROJCS["WGS 72 / UTM zone 52N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32731,'EPSG',32731,'PROJCS["WGS 84 / UTM zone 31S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32253 : WGS 72 / UTM zone 53N
+--- EPSG 32732 : WGS 84 / UTM zone 32S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32253,'EPSG',32253,'PROJCS["WGS 72 / UTM zone 53N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32732,'EPSG',32732,'PROJCS["WGS 84 / UTM zone 32S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32254 : WGS 72 / UTM zone 54N
+--- EPSG 32733 : WGS 84 / UTM zone 33S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32254,'EPSG',32254,'PROJCS["WGS 72 / UTM zone 54N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32733,'EPSG',32733,'PROJCS["WGS 84 / UTM zone 33S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32255 : WGS 72 / UTM zone 55N
+--- EPSG 32734 : WGS 84 / UTM zone 34S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32255,'EPSG',32255,'PROJCS["WGS 72 / UTM zone 55N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32734,'EPSG',32734,'PROJCS["WGS 84 / UTM zone 34S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32256 : WGS 72 / UTM zone 56N
+--- EPSG 32735 : WGS 84 / UTM zone 35S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32256,'EPSG',32256,'PROJCS["WGS 72 / UTM zone 56N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32735,'EPSG',32735,'PROJCS["WGS 84 / UTM zone 35S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32257 : WGS 72 / UTM zone 57N
+--- EPSG 32736 : WGS 84 / UTM zone 36S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32257,'EPSG',32257,'PROJCS["WGS 72 / UTM zone 57N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32736,'EPSG',32736,'PROJCS["WGS 84 / UTM zone 36S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32258 : WGS 72 / UTM zone 58N
+--- EPSG 32737 : WGS 84 / UTM zone 37S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32258,'EPSG',32258,'PROJCS["WGS 72 / UTM zone 58N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32737,'EPSG',32737,'PROJCS["WGS 84 / UTM zone 37S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32259 : WGS 72 / UTM zone 59N
+--- EPSG 32738 : WGS 84 / UTM zone 38S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32259,'EPSG',32259,'PROJCS["WGS 72 / UTM zone 59N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32738,'EPSG',32738,'PROJCS["WGS 84 / UTM zone 38S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32260 : WGS 72 / UTM zone 60N
+--- EPSG 32739 : WGS 84 / UTM zone 39S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32260,'EPSG',32260,'PROJCS["WGS 72 / UTM zone 60N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32739,'EPSG',32739,'PROJCS["WGS 84 / UTM zone 39S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32301 : WGS 72 / UTM zone 1S
+--- EPSG 32740 : WGS 84 / UTM zone 40S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32301,'EPSG',32301,'PROJCS["WGS 72 / UTM zone 1S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32740,'EPSG',32740,'PROJCS["WGS 84 / UTM zone 40S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32302 : WGS 72 / UTM zone 2S
+--- EPSG 32741 : WGS 84 / UTM zone 41S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32302,'EPSG',32302,'PROJCS["WGS 72 / UTM zone 2S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32741,'EPSG',32741,'PROJCS["WGS 84 / UTM zone 41S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32303 : WGS 72 / UTM zone 3S
+--- EPSG 32742 : WGS 84 / UTM zone 42S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32303,'EPSG',32303,'PROJCS["WGS 72 / UTM zone 3S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32742,'EPSG',32742,'PROJCS["WGS 84 / UTM zone 42S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32304 : WGS 72 / UTM zone 4S
+--- EPSG 32743 : WGS 84 / UTM zone 43S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32304,'EPSG',32304,'PROJCS["WGS 72 / UTM zone 4S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32743,'EPSG',32743,'PROJCS["WGS 84 / UTM zone 43S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32305 : WGS 72 / UTM zone 5S
+--- EPSG 32744 : WGS 84 / UTM zone 44S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32305,'EPSG',32305,'PROJCS["WGS 72 / UTM zone 5S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32744,'EPSG',32744,'PROJCS["WGS 84 / UTM zone 44S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32306 : WGS 72 / UTM zone 6S
+--- EPSG 32745 : WGS 84 / UTM zone 45S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32306,'EPSG',32306,'PROJCS["WGS 72 / UTM zone 6S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32745,'EPSG',32745,'PROJCS["WGS 84 / UTM zone 45S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32307 : WGS 72 / UTM zone 7S
+--- EPSG 32746 : WGS 84 / UTM zone 46S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32307,'EPSG',32307,'PROJCS["WGS 72 / UTM zone 7S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32746,'EPSG',32746,'PROJCS["WGS 84 / UTM zone 46S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32308 : WGS 72 / UTM zone 8S
+--- EPSG 32747 : WGS 84 / UTM zone 47S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32308,'EPSG',32308,'PROJCS["WGS 72 / UTM zone 8S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32747,'EPSG',32747,'PROJCS["WGS 84 / UTM zone 47S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32309 : WGS 72 / UTM zone 9S
+--- EPSG 32748 : WGS 84 / UTM zone 48S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32309,'EPSG',32309,'PROJCS["WGS 72 / UTM zone 9S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Me [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32748,'EPSG',32748,'PROJCS["WGS 84 / UTM zone 48S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32310 : WGS 72 / UTM zone 10S
+--- EPSG 32749 : WGS 84 / UTM zone 49S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32310,'EPSG',32310,'PROJCS["WGS 72 / UTM zone 10S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32749,'EPSG',32749,'PROJCS["WGS 84 / UTM zone 49S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32311 : WGS 72 / UTM zone 11S
+--- EPSG 32750 : WGS 84 / UTM zone 50S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32311,'EPSG',32311,'PROJCS["WGS 72 / UTM zone 11S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32750,'EPSG',32750,'PROJCS["WGS 84 / UTM zone 50S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32312 : WGS 72 / UTM zone 12S
+--- EPSG 32751 : WGS 84 / UTM zone 51S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32312,'EPSG',32312,'PROJCS["WGS 72 / UTM zone 12S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32751,'EPSG',32751,'PROJCS["WGS 84 / UTM zone 51S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32313 : WGS 72 / UTM zone 13S
+--- EPSG 32752 : WGS 84 / UTM zone 52S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32313,'EPSG',32313,'PROJCS["WGS 72 / UTM zone 13S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32752,'EPSG',32752,'PROJCS["WGS 84 / UTM zone 52S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32314 : WGS 72 / UTM zone 14S
+--- EPSG 32753 : WGS 84 / UTM zone 53S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32314,'EPSG',32314,'PROJCS["WGS 72 / UTM zone 14S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32753,'EPSG',32753,'PROJCS["WGS 84 / UTM zone 53S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32315 : WGS 72 / UTM zone 15S
+--- EPSG 32754 : WGS 84 / UTM zone 54S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32315,'EPSG',32315,'PROJCS["WGS 72 / UTM zone 15S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32754,'EPSG',32754,'PROJCS["WGS 84 / UTM zone 54S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32316 : WGS 72 / UTM zone 16S
+--- EPSG 32755 : WGS 84 / UTM zone 55S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32316,'EPSG',32316,'PROJCS["WGS 72 / UTM zone 16S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32755,'EPSG',32755,'PROJCS["WGS 84 / UTM zone 55S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32317 : WGS 72 / UTM zone 17S
+--- EPSG 32756 : WGS 84 / UTM zone 56S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32317,'EPSG',32317,'PROJCS["WGS 72 / UTM zone 17S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32756,'EPSG',32756,'PROJCS["WGS 84 / UTM zone 56S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32318 : WGS 72 / UTM zone 18S
+--- EPSG 32757 : WGS 84 / UTM zone 57S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32318,'EPSG',32318,'PROJCS["WGS 72 / UTM zone 18S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32757,'EPSG',32757,'PROJCS["WGS 84 / UTM zone 57S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32319 : WGS 72 / UTM zone 19S
+--- EPSG 32758 : WGS 84 / UTM zone 58S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32319,'EPSG',32319,'PROJCS["WGS 72 / UTM zone 19S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32758,'EPSG',32758,'PROJCS["WGS 84 / UTM zone 58S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32320 : WGS 72 / UTM zone 20S
+--- EPSG 32759 : WGS 84 / UTM zone 59S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32320,'EPSG',32320,'PROJCS["WGS 72 / UTM zone 20S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32759,'EPSG',32759,'PROJCS["WGS 84 / UTM zone 59S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32321 : WGS 72 / UTM zone 21S
+--- EPSG 32760 : WGS 84 / UTM zone 60S
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32321,'EPSG',32321,'PROJCS["WGS 72 / UTM zone 21S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32760,'EPSG',32760,'PROJCS["WGS 84 / UTM zone 60S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_merid [...]
 ---
---- EPSG 32322 : WGS 72 / UTM zone 22S
+--- EPSG 32761 : WGS 84 / UPS South (N,E)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32322,'EPSG',32322,'PROJCS["WGS 72 / UTM zone 22S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32761,'EPSG',32761,'PROJCS["WGS 84 / UPS South (N,E)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_ [...]
 ---
---- EPSG 32323 : WGS 72 / UTM zone 23S
+--- EPSG 32766 : WGS 84 / TM 36 SE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32323,'EPSG',32323,'PROJCS["WGS 72 / UTM zone 23S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32766,'EPSG',32766,'PROJCS["WGS 84 / TM 36 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian" [...]
 ---
---- EPSG 32324 : WGS 72 / UTM zone 24S
+--- EPSG 3822 : TWD97
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32324,'EPSG',32324,'PROJCS["WGS 72 / UTM zone 24S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3822,'EPSG',3822,'GEOCCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","3822"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32325 : WGS 72 / UTM zone 25S
+--- EPSG 3887 : IGRS
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32325,'EPSG',32325,'PROJCS["WGS 72 / UTM zone 25S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3887,'EPSG',3887,'GEOCCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","3887"]]','+proj=geocent +ellps=GRS80 +units=m [...]
 ---
---- EPSG 32326 : WGS 72 / UTM zone 26S
+--- EPSG 4000 : MOLDREF99
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32326,'EPSG',32326,'PROJCS["WGS 72 / UTM zone 26S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4000,'EPSG',4000,'GEOCCS["MOLDREF99",DATUM["MOLDREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4000"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32327 : WGS 72 / UTM zone 27S
+--- EPSG 4039 : RGRDC 2005
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32327,'EPSG',32327,'PROJCS["WGS 72 / UTM zone 27S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4039,'EPSG',4039,'GEOCCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4039"]]','+proj=geocent +ellps=GRS80 +un [...]
 ---
---- EPSG 32328 : WGS 72 / UTM zone 28S
+--- EPSG 4073 : SREF98
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32328,'EPSG',32328,'PROJCS["WGS 72 / UTM zone 28S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4073,'EPSG',4073,'GEOCCS["SREF98",DATUM["Serbian_Reference_Network_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1034"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4073"]]','+proj=geocent +ellps=GRS80 +units=m  [...]
 ---
---- EPSG 32329 : WGS 72 / UTM zone 29S
+--- EPSG 4079 : REGCAN95
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32329,'EPSG',32329,'PROJCS["WGS 72 / UTM zone 29S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4079,'EPSG',4079,'GEOCCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4079"]]','+proj=geocent +ellps=GRS80 +units= [...]
 ---
---- EPSG 32330 : WGS 72 / UTM zone 30S
+--- EPSG 4328 : WGS 84 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32330,'EPSG',32330,'PROJCS["WGS 72 / UTM zone 30S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4328,'EPSG',4328,'GEOCCS["WGS 84 (geocentric)",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4328"]]','+proj=geocent +datum=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32331 : WGS 72 / UTM zone 31S
+--- EPSG 4330 : ITRF88 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32331,'EPSG',32331,'PROJCS["WGS 72 / UTM zone 31S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4330,'EPSG',4330,'GEOCCS["ITRF88 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_1988",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6647"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4330"]]','+proj=g [...]
 ---
---- EPSG 32332 : WGS 72 / UTM zone 32S
+--- EPSG 4331 : ITRF89 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32332,'EPSG',32332,'PROJCS["WGS 72 / UTM zone 32S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4331,'EPSG',4331,'GEOCCS["ITRF89 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6648"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4331"]]','+proj=g [...]
 ---
---- EPSG 32333 : WGS 72 / UTM zone 33S
+--- EPSG 4332 : ITRF90 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32333,'EPSG',32333,'PROJCS["WGS 72 / UTM zone 33S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4332,'EPSG',4332,'GEOCCS["ITRF90 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_1990",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6649"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4332"]]','+proj=g [...]
 ---
---- EPSG 32334 : WGS 72 / UTM zone 34S
+--- EPSG 4333 : ITRF91 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32334,'EPSG',32334,'PROJCS["WGS 72 / UTM zone 34S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4333,'EPSG',4333,'GEOCCS["ITRF91 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_1991",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6650"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4333"]]','+proj=g [...]
 ---
---- EPSG 32335 : WGS 72 / UTM zone 35S
+--- EPSG 4334 : ITRF92 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32335,'EPSG',32335,'PROJCS["WGS 72 / UTM zone 35S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4334,'EPSG',4334,'GEOCCS["ITRF92 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6651"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4334"]]','+proj=g [...]
 ---
---- EPSG 32336 : WGS 72 / UTM zone 36S
+--- EPSG 4335 : ITRF93 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32336,'EPSG',32336,'PROJCS["WGS 72 / UTM zone 36S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4335,'EPSG',4335,'GEOCCS["ITRF93 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6652"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4335"]]','+proj=g [...]
 ---
---- EPSG 32337 : WGS 72 / UTM zone 37S
+--- EPSG 4336 : ITRF94 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32337,'EPSG',32337,'PROJCS["WGS 72 / UTM zone 37S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4336,'EPSG',4336,'GEOCCS["ITRF94 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6653"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4336"]]','+proj=g [...]
 ---
---- EPSG 32338 : WGS 72 / UTM zone 38S
+--- EPSG 4337 : ITRF96 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32338,'EPSG',32338,'PROJCS["WGS 72 / UTM zone 38S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4337,'EPSG',4337,'GEOCCS["ITRF96 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6654"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4337"]]','+proj=g [...]
 ---
---- EPSG 32339 : WGS 72 / UTM zone 39S
+--- EPSG 4338 : ITRF97 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32339,'EPSG',32339,'PROJCS["WGS 72 / UTM zone 39S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4338,'EPSG',4338,'GEOCCS["ITRF97 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6655"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4338"]]','+proj=g [...]
 ---
---- EPSG 32340 : WGS 72 / UTM zone 40S
+--- EPSG 4340 : Australian Antarctic (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32340,'EPSG',32340,'PROJCS["WGS 72 / UTM zone 40S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4340,'EPSG',4340,'GEOCCS["Australian Antarctic (geocentric)",DATUM["Australian_Antarctic_Datum_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6176"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4340"]]','+proj=ge [...]
 ---
---- EPSG 32341 : WGS 72 / UTM zone 41S
+--- EPSG 4342 : EST97 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32341,'EPSG',32341,'PROJCS["WGS 72 / UTM zone 41S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4342,'EPSG',4342,'GEOCCS["EST97 (geocentric)",DATUM["Estonia_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6180"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4342"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32342 : WGS 72 / UTM zone 42S
+--- EPSG 4344 : CHTRF95 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32342,'EPSG',32342,'PROJCS["WGS 72 / UTM zone 42S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4344,'EPSG',4344,'GEOCCS["CHTRF95 (geocentric)",DATUM["Swiss_Terrestrial_Reference_Frame_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6151"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4344"]]','+proj=geocent  [...]
 ---
---- EPSG 32343 : WGS 72 / UTM zone 43S
+--- EPSG 4346 : ETRS89 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32343,'EPSG',32343,'PROJCS["WGS 72 / UTM zone 43S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4346,'EPSG',4346,'GEOCCS["ETRS89 (geocentric)",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4346"]]','+proj=geoce [...]
 ---
---- EPSG 32344 : WGS 72 / UTM zone 44S
+--- EPSG 4348 : GDA94 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32344,'EPSG',32344,'PROJCS["WGS 72 / UTM zone 44S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4348,'EPSG',4348,'GEOCCS["GDA94 (geocentric)",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4348"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32345 : WGS 72 / UTM zone 45S
+--- EPSG 4350 : Hartebeesthoek94 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32345,'EPSG',32345,'PROJCS["WGS 72 / UTM zone 45S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4350,'EPSG',4350,'GEOCCS["Hartebeesthoek94 (geocentric)",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4350"]]','+proj=geocent +ellps=WGS84 +u [...]
 ---
---- EPSG 32346 : WGS 72 / UTM zone 46S
+--- EPSG 4352 : IRENET95 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32346,'EPSG',32346,'PROJCS["WGS 72 / UTM zone 46S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4352,'EPSG',4352,'GEOCCS["IRENET95 (geocentric)",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4352"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32347 : WGS 72 / UTM zone 47S
+--- EPSG 4354 : JGD2000 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32347,'EPSG',32347,'PROJCS["WGS 72 / UTM zone 47S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4354,'EPSG',4354,'GEOCCS["JGD2000 (geocentric)",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4354"]]','+proj=geocent +ellps=GRS [...]
 ---
---- EPSG 32348 : WGS 72 / UTM zone 48S
+--- EPSG 4356 : LKS94 (ETRS89) (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32348,'EPSG',32348,'PROJCS["WGS 72 / UTM zone 48S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4356,'EPSG',4356,'GEOCCS["LKS94 (ETRS89) (geocentric)",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4356"]]','+proj=geocent +ellps=GRS [...]
 ---
---- EPSG 32349 : WGS 72 / UTM zone 49S
+--- EPSG 4358 : Moznet (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32349,'EPSG',32349,'PROJCS["WGS 72 / UTM zone 49S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4358,'EPSG',4358,'GEOCCS["Moznet (geocentric)",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4358"]]','+proj=geocent +ellps=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32350 : WGS 72 / UTM zone 50S
+--- EPSG 4360 : NAD83(CSRS) (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32350,'EPSG',32350,'PROJCS["WGS 72 / UTM zone 50S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4360,'EPSG',4360,'GEOCCS["NAD83(CSRS) (geocentric)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4360"]]','+proj=geo [...]
 ---
---- EPSG 32351 : WGS 72 / UTM zone 51S
+--- EPSG 4362 : NAD83(HARN) (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32351,'EPSG',32351,'PROJCS["WGS 72 / UTM zone 51S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4362,'EPSG',4362,'GEOCCS["NAD83(HARN) (geocentric)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4362"]]','+proj=geoce [...]
 ---
---- EPSG 32352 : WGS 72 / UTM zone 52S
+--- EPSG 4364 : NZGD2000 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32352,'EPSG',32352,'PROJCS["WGS 72 / UTM zone 52S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4364,'EPSG',4364,'GEOCCS["NZGD2000 (geocentric)",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4364"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32353 : WGS 72 / UTM zone 53S
+--- EPSG 4366 : POSGAR 98 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32353,'EPSG',32353,'PROJCS["WGS 72 / UTM zone 53S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4366,'EPSG',4366,'GEOCCS["POSGAR 98 (geocentric)",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4366"]]','+proj=geocent [...]
 ---
---- EPSG 32354 : WGS 72 / UTM zone 54S
+--- EPSG 4368 : REGVEN (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32354,'EPSG',32354,'PROJCS["WGS 72 / UTM zone 54S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4368,'EPSG',4368,'GEOCCS["REGVEN (geocentric)",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4368"]]','+proj=geocent +ellps=GRS80 +u [...]
 ---
---- EPSG 32355 : WGS 72 / UTM zone 55S
+--- EPSG 4370 : RGF93 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32355,'EPSG',32355,'PROJCS["WGS 72 / UTM zone 55S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4370,'EPSG',4370,'GEOCCS["RGF93 (geocentric)",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4370"]]','+proj=geocent +ellps=GR [...]
 ---
---- EPSG 32356 : WGS 72 / UTM zone 56S
+--- EPSG 4372 : RGFG95 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32356,'EPSG',32356,'PROJCS["WGS 72 / UTM zone 56S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4372,'EPSG',4372,'GEOCCS["RGFG95 (geocentric)",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4372"]]','+proj=geocent + [...]
 ---
---- EPSG 32357 : WGS 72 / UTM zone 57S
+--- EPSG 4374 : RGR92 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32357,'EPSG',32357,'PROJCS["WGS 72 / UTM zone 57S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4374,'EPSG',4374,'GEOCCS["RGR92 (geocentric)",DATUM["Reseau_Geodesique_de_la_Reunion_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6627"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4374"]]','+proj=geocent +ell [...]
 ---
---- EPSG 32358 : WGS 72 / UTM zone 58S
+--- EPSG 4376 : SIRGAS (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32358,'EPSG',32358,'PROJCS["WGS 72 / UTM zone 58S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4376,'EPSG',4376,'GEOCCS["SIRGAS (geocentric)",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4376 [...]
 ---
---- EPSG 32359 : WGS 72 / UTM zone 59S
+--- EPSG 4378 : SWEREF99 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32359,'EPSG',32359,'PROJCS["WGS 72 / UTM zone 59S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4378,'EPSG',4378,'GEOCCS["SWEREF99 (geocentric)",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4378"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32360 : WGS 72 / UTM zone 60S
+--- EPSG 4380 : Yemen NGN96 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32360,'EPSG',32360,'PROJCS["WGS 72 / UTM zone 60S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_M [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4380,'EPSG',4380,'GEOCCS["Yemen NGN96 (geocentric)",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4380"]]','+proj=geocent  [...]
 ---
---- EPSG 32401 : WGS 72BE / UTM zone 1N
+--- EPSG 4382 : RGNC 1991 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32401,'EPSG',32401,'PROJCS["WGS 72BE / UTM zone 1N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4382,'EPSG',4382,'GEOCCS["RGNC 1991 (geocentric)",DATUM["Reseau_Geodesique_Nouvelle_Caledonie_1991",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6645"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4382"]]','+proj=geo [...]
 ---
---- EPSG 32402 : WGS 72BE / UTM zone 2N
+--- EPSG 4384 : RRAF 1991 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32402,'EPSG',32402,'PROJCS["WGS 72BE / UTM zone 2N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4384,'EPSG',4384,'GEOCCS["RRAF 1991 (geocentric)",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6640"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4384"]]','+pro [...]
 ---
---- EPSG 32403 : WGS 72BE / UTM zone 3N
+--- EPSG 4385 : ITRF2000 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32403,'EPSG',32403,'PROJCS["WGS 72BE / UTM zone 3N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4385,'EPSG',4385,'GEOCCS["ITRF2000 (geocentric)",DATUM["International_Terrestrial_Reference_Frame_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6656"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4385"]]','+proj [...]
 ---
---- EPSG 32404 : WGS 72BE / UTM zone 4N
+--- EPSG 4387 : ISN93 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32404,'EPSG',32404,'PROJCS["WGS 72BE / UTM zone 4N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4387,'EPSG',4387,'GEOCCS["ISN93 (geocentric)",DATUM["Islands_Net_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4387"]]','+proj=geocent +ellps=GRS80 +units=m +n [...]
 ---
---- EPSG 32405 : WGS 72BE / UTM zone 5N
+--- EPSG 4389 : LKS92 (geocentric)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32405,'EPSG',32405,'PROJCS["WGS 72BE / UTM zone 5N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4389,'EPSG',4389,'GEOCCS["LKS92 (geocentric)",DATUM["Latvia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6661"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4389"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32406 : WGS 72BE / UTM zone 6N
+--- EPSG 4465 : RGSPM06
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32406,'EPSG',32406,'PROJCS["WGS 72BE / UTM zone 6N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4465,'EPSG',4465,'GEOCCS["RGSPM06",DATUM["Reseau_Geodesique_de_Saint_Pierre_et_Miquelon_2006",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1038"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4465"]]','+proj=geocent + [...]
 ---
---- EPSG 32407 : WGS 72BE / UTM zone 7N
+--- EPSG 4468 : RGM04
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32407,'EPSG',32407,'PROJCS["WGS 72BE / UTM zone 7N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4468,'EPSG',4468,'GEOCCS["RGM04",DATUM["Reseau_Geodesique_de_Mayotte_2004",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1036"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4468"]]','+proj=geocent +ellps=GRS80 +units= [...]
 ---
---- EPSG 32408 : WGS 72BE / UTM zone 8N
+--- EPSG 4473 : Cadastre 1997
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32408,'EPSG',32408,'PROJCS["WGS 72BE / UTM zone 8N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4473,'EPSG',4473,'GEOCCS["Cadastre 1997",DATUM["Cadastre_1997",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","1037"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4473"]]','+proj=geocent +ellps=intl +units=m +no_defs ');
 ---
---- EPSG 32409 : WGS 72BE / UTM zone 9N
+--- EPSG 4479 : China Geodetic Coordinate System 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32409,'EPSG',32409,'PROJCS["WGS 72BE / UTM zone 9N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4479,'EPSG',4479,'GEOCCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4479"]]','+proj=geocent +ellps=GRS8 [...]
 ---
---- EPSG 32410 : WGS 72BE / UTM zone 10N
+--- EPSG 4481 : Mexico ITRF92
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32410,'EPSG',32410,'PROJCS["WGS 72BE / UTM zone 10N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4481,'EPSG',4481,'GEOCCS["Mexico ITRF92",DATUM["Mexico_ITRF92",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4481"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32411 : WGS 72BE / UTM zone 11N
+--- EPSG 4556 : RRAF 1991
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32411,'EPSG',32411,'PROJCS["WGS 72BE / UTM zone 11N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4556,'EPSG',4556,'GEOCCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1047"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4556"]]','+proj=geocent + [...]
 ---
---- EPSG 32412 : WGS 72BE / UTM zone 12N
+--- EPSG 4882 : Slovenia 1996
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32412,'EPSG',32412,'PROJCS["WGS 72BE / UTM zone 12N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4882,'EPSG',4882,'GEOCCS["Slovenia 1996",DATUM["Slovenia_Geodetic_Datum_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6765"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4882"]]','+proj=geocent +ellps=GRS80 +uni [...]
 ---
---- EPSG 32413 : WGS 72BE / UTM zone 13N
+--- EPSG 4884 : RSRGD2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32413,'EPSG',32413,'PROJCS["WGS 72BE / UTM zone 13N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4884,'EPSG',4884,'GEOCCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4884"]]','+proj=geocent +ellps=GRS80 + [...]
 ---
---- EPSG 32414 : WGS 72BE / UTM zone 14N
+--- EPSG 4886 : BDA2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32414,'EPSG',32414,'PROJCS["WGS 72BE / UTM zone 14N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4886,'EPSG',4886,'GEOCCS["BDA2000",DATUM["Bermuda_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6762"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4886"]]','+proj=geocent +ellps=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32415 : WGS 72BE / UTM zone 15N
+--- EPSG 4888 : HTRS96
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32415,'EPSG',32415,'PROJCS["WGS 72BE / UTM zone 15N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4888,'EPSG',4888,'GEOCCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4888"]]','+proj=geocent +ellps=GRS80 +u [...]
 ---
---- EPSG 32416 : WGS 72BE / UTM zone 16N
+--- EPSG 4890 : WGS 66
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32416,'EPSG',32416,'PROJCS["WGS 72BE / UTM zone 16N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4890,'EPSG',4890,'GEOCCS["WGS 66",DATUM["World_Geodetic_System_1966",SPHEROID["NWL 9D",6378145,298.25,AUTHORITY["EPSG","7025"]],AUTHORITY["EPSG","6760"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4890"]]','+proj=geocent +ellps=WGS66 +units=m +no_defs ');
 ---
---- EPSG 32417 : WGS 72BE / UTM zone 17N
+--- EPSG 4892 : NAD83(NSRS2007)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32417,'EPSG',32417,'PROJCS["WGS 72BE / UTM zone 17N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4892,'EPSG',4892,'GEOCCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4892"]]','+proj=geocent [...]
 ---
---- EPSG 32418 : WGS 72BE / UTM zone 18N
+--- EPSG 4894 : JAD2001
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32418,'EPSG',32418,'PROJCS["WGS 72BE / UTM zone 18N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4894,'EPSG',4894,'GEOCCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4894"]]','+proj=geocent +ellps=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32419 : WGS 72BE / UTM zone 19N
+--- EPSG 4896 : ITRF2005
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32419,'EPSG',32419,'PROJCS["WGS 72BE / UTM zone 19N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4896,'EPSG',4896,'GEOCCS["ITRF2005",DATUM["International_Terrestrial_Reference_Frame_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6896"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4896"]]','+proj=geocent +ell [...]
 ---
---- EPSG 32420 : WGS 72BE / UTM zone 20N
+--- EPSG 4897 : DGN95
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32420,'EPSG',32420,'PROJCS["WGS 72BE / UTM zone 20N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4897,'EPSG',4897,'GEOCCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4897"]]','+proj=geocent +ellps=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32421 : WGS 72BE / UTM zone 21N
+--- EPSG 4899 : LGD2006
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32421,'EPSG',32421,'PROJCS["WGS 72BE / UTM zone 21N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4899,'EPSG',4899,'GEOCCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4899"]]','+proj=geocent +ellps=intl +units=m +no_ [...]
 ---
---- EPSG 32422 : WGS 72BE / UTM zone 22N
+--- EPSG 4906 : RGNC91-93
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32422,'EPSG',32422,'PROJCS["WGS 72BE / UTM zone 22N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4906,'EPSG',4906,'GEOCCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4906"]]','+proj=geocent +ell [...]
 ---
---- EPSG 32423 : WGS 72BE / UTM zone 23N
+--- EPSG 4908 : GR96
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32423,'EPSG',32423,'PROJCS["WGS 72BE / UTM zone 23N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4908,'EPSG',4908,'GEOCCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4908"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32424 : WGS 72BE / UTM zone 24N
+--- EPSG 4910 : ITRF88
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32424,'EPSG',32424,'PROJCS["WGS 72BE / UTM zone 24N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4910,'EPSG',4910,'GEOCCS["ITRF88",DATUM["International_Terrestrial_Reference_Frame_1988",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6647"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4910"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32425 : WGS 72BE / UTM zone 25N
+--- EPSG 4911 : ITRF89
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32425,'EPSG',32425,'PROJCS["WGS 72BE / UTM zone 25N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4911,'EPSG',4911,'GEOCCS["ITRF89",DATUM["International_Terrestrial_Reference_Frame_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6648"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4911"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32426 : WGS 72BE / UTM zone 26N
+--- EPSG 4912 : ITRF90
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32426,'EPSG',32426,'PROJCS["WGS 72BE / UTM zone 26N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4912,'EPSG',4912,'GEOCCS["ITRF90",DATUM["International_Terrestrial_Reference_Frame_1990",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6649"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4912"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32427 : WGS 72BE / UTM zone 27N
+--- EPSG 4913 : ITRF91
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32427,'EPSG',32427,'PROJCS["WGS 72BE / UTM zone 27N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4913,'EPSG',4913,'GEOCCS["ITRF91",DATUM["International_Terrestrial_Reference_Frame_1991",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6650"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4913"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32428 : WGS 72BE / UTM zone 28N
+--- EPSG 4914 : ITRF92
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32428,'EPSG',32428,'PROJCS["WGS 72BE / UTM zone 28N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4914,'EPSG',4914,'GEOCCS["ITRF92",DATUM["International_Terrestrial_Reference_Frame_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6651"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4914"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32429 : WGS 72BE / UTM zone 29N
+--- EPSG 4915 : ITRF93
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32429,'EPSG',32429,'PROJCS["WGS 72BE / UTM zone 29N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4915,'EPSG',4915,'GEOCCS["ITRF93",DATUM["International_Terrestrial_Reference_Frame_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6652"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4915"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32430 : WGS 72BE / UTM zone 30N
+--- EPSG 4916 : ITRF94
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32430,'EPSG',32430,'PROJCS["WGS 72BE / UTM zone 30N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4916,'EPSG',4916,'GEOCCS["ITRF94",DATUM["International_Terrestrial_Reference_Frame_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6653"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4916"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32431 : WGS 72BE / UTM zone 31N
+--- EPSG 4917 : ITRF96
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32431,'EPSG',32431,'PROJCS["WGS 72BE / UTM zone 31N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4917,'EPSG',4917,'GEOCCS["ITRF96",DATUM["International_Terrestrial_Reference_Frame_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6654"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4917"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32432 : WGS 72BE / UTM zone 32N
+--- EPSG 4918 : ITRF97
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32432,'EPSG',32432,'PROJCS["WGS 72BE / UTM zone 32N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4918,'EPSG',4918,'GEOCCS["ITRF97",DATUM["International_Terrestrial_Reference_Frame_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6655"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4918"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32433 : WGS 72BE / UTM zone 33N
+--- EPSG 4919 : ITRF2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32433,'EPSG',32433,'PROJCS["WGS 72BE / UTM zone 33N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4919,'EPSG',4919,'GEOCCS["ITRF2000",DATUM["International_Terrestrial_Reference_Frame_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6656"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4919"]]','+proj=geocent +ell [...]
 ---
---- EPSG 32434 : WGS 72BE / UTM zone 34N
+--- EPSG 4920 : GDM2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32434,'EPSG',32434,'PROJCS["WGS 72BE / UTM zone 34N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4920,'EPSG',4920,'GEOCCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4920"]]','+proj=geocent +ellps=GRS80 +units= [...]
 ---
---- EPSG 32435 : WGS 72BE / UTM zone 35N
+--- EPSG 4922 : PZ-90
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32435,'EPSG',32435,'PROJCS["WGS 72BE / UTM zone 35N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4922,'EPSG',4922,'GEOCCS["PZ-90",DATUM["Parametrop_Zemp_1990",SPHEROID["PZ-90",6378136,298.257839303,AUTHORITY["EPSG","7054"]],AUTHORITY["EPSG","6740"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4922"]]','+proj=geocent +a=6378136 +b=6356751.361745712 +uni [...]
 ---
---- EPSG 32436 : WGS 72BE / UTM zone 36N
+--- EPSG 4924 : Mauritania 1999
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32436,'EPSG',32436,'PROJCS["WGS 72BE / UTM zone 36N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4924,'EPSG',4924,'GEOCCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4924"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32437 : WGS 72BE / UTM zone 37N
+--- EPSG 4926 : Korea 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32437,'EPSG',32437,'PROJCS["WGS 72BE / UTM zone 37N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4926,'EPSG',4926,'GEOCCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4926"]]','+proj=geocent +ellps=GRS80 +units=m + [...]
 ---
---- EPSG 32438 : WGS 72BE / UTM zone 38N
+--- EPSG 4928 : POSGAR 94
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32438,'EPSG',32438,'PROJCS["WGS 72BE / UTM zone 38N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4928,'EPSG',4928,'GEOCCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4928"]]','+proj=geocent +ellps=WGS84 + [...]
 ---
---- EPSG 32439 : WGS 72BE / UTM zone 39N
+--- EPSG 4930 : Australian Antarctic
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32439,'EPSG',32439,'PROJCS["WGS 72BE / UTM zone 39N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4930,'EPSG',4930,'GEOCCS["Australian Antarctic",DATUM["Australian_Antarctic_Datum_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6176"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4930"]]','+proj=geocent +ellps= [...]
 ---
---- EPSG 32440 : WGS 72BE / UTM zone 40N
+--- EPSG 4932 : CHTRF95
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32440,'EPSG',32440,'PROJCS["WGS 72BE / UTM zone 40N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4932,'EPSG',4932,'GEOCCS["CHTRF95",DATUM["Swiss_Terrestrial_Reference_Frame_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6151"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4932"]]','+proj=geocent +ellps=GRS80  [...]
 ---
---- EPSG 32441 : WGS 72BE / UTM zone 41N
+--- EPSG 4934 : EST97
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32441,'EPSG',32441,'PROJCS["WGS 72BE / UTM zone 41N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4934,'EPSG',4934,'GEOCCS["EST97",DATUM["Estonia_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6180"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4934"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32442 : WGS 72BE / UTM zone 42N
+--- EPSG 4936 : ETRS89
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32442,'EPSG',32442,'PROJCS["WGS 72BE / UTM zone 42N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4936,'EPSG',4936,'GEOCCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4936"]]','+proj=geocent +ellps=GRS [...]
 ---
---- EPSG 32443 : WGS 72BE / UTM zone 43N
+--- EPSG 4938 : GDA94
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32443,'EPSG',32443,'PROJCS["WGS 72BE / UTM zone 43N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4938,'EPSG',4938,'GEOCCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4938"]]','+proj=geocent +ellps=GRS80 +units [...]
 ---
---- EPSG 32444 : WGS 72BE / UTM zone 44N
+--- EPSG 4940 : Hartebeesthoek94
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32444,'EPSG',32444,'PROJCS["WGS 72BE / UTM zone 44N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4940,'EPSG',4940,'GEOCCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4940"]]','+proj=geocent +ellps=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32445 : WGS 72BE / UTM zone 45N
+--- EPSG 4942 : IRENET95
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32445,'EPSG',32445,'PROJCS["WGS 72BE / UTM zone 45N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4942,'EPSG',4942,'GEOCCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4942"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32446 : WGS 72BE / UTM zone 46N
+--- EPSG 4944 : ISN93
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32446,'EPSG',32446,'PROJCS["WGS 72BE / UTM zone 46N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4944,'EPSG',4944,'GEOCCS["ISN93",DATUM["Islands_Net_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4944"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32447 : WGS 72BE / UTM zone 47N
+--- EPSG 4946 : JGD2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32447,'EPSG',32447,'PROJCS["WGS 72BE / UTM zone 47N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4946,'EPSG',4946,'GEOCCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4946"]]','+proj=geocent +ellps=GRS80 +units=m + [...]
 ---
---- EPSG 32448 : WGS 72BE / UTM zone 48N
+--- EPSG 4948 : LKS92
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32448,'EPSG',32448,'PROJCS["WGS 72BE / UTM zone 48N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4948,'EPSG',4948,'GEOCCS["LKS92",DATUM["Latvia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6661"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4948"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32449 : WGS 72BE / UTM zone 49N
+--- EPSG 4950 : LKS94
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32449,'EPSG',32449,'PROJCS["WGS 72BE / UTM zone 49N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4950,'EPSG',4950,'GEOCCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4950"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32450 : WGS 72BE / UTM zone 50N
+--- EPSG 4952 : Moznet
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32450,'EPSG',32450,'PROJCS["WGS 72BE / UTM zone 50N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4952,'EPSG',4952,'GEOCCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4952"]]','+proj=geocent +ellps=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32451 : WGS 72BE / UTM zone 51N
+--- EPSG 4954 : NAD83(CSRS)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32451,'EPSG',32451,'PROJCS["WGS 72BE / UTM zone 51N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4954,'EPSG',4954,'GEOCCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4954"]]','+proj=geocent +ellps=G [...]
 ---
---- EPSG 32452 : WGS 72BE / UTM zone 52N
+--- EPSG 4956 : NAD83(HARN)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32452,'EPSG',32452,'PROJCS["WGS 72BE / UTM zone 52N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4956,'EPSG',4956,'GEOCCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4956"]]','+proj=geocent +ellps=GRS [...]
 ---
---- EPSG 32453 : WGS 72BE / UTM zone 53N
+--- EPSG 4958 : NZGD2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32453,'EPSG',32453,'PROJCS["WGS 72BE / UTM zone 53N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4958,'EPSG',4958,'GEOCCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4958"]]','+proj=geocent +ellps=GRS80 +units [...]
 ---
---- EPSG 32454 : WGS 72BE / UTM zone 54N
+--- EPSG 4960 : POSGAR 98
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32454,'EPSG',32454,'PROJCS["WGS 72BE / UTM zone 54N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4960,'EPSG',4960,'GEOCCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4960"]]','+proj=geocent +ellps=GRS80 [...]
 ---
---- EPSG 32455 : WGS 72BE / UTM zone 55N
+--- EPSG 4962 : REGVEN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32455,'EPSG',32455,'PROJCS["WGS 72BE / UTM zone 55N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4962,'EPSG',4962,'GEOCCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4962"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32456 : WGS 72BE / UTM zone 56N
+--- EPSG 4964 : RGF93
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32456,'EPSG',32456,'PROJCS["WGS 72BE / UTM zone 56N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4964,'EPSG',4964,'GEOCCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4964"]]','+proj=geocent +ellps=GRS80 +units=m  [...]
 ---
---- EPSG 32457 : WGS 72BE / UTM zone 57N
+--- EPSG 4966 : RGFG95
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32457,'EPSG',32457,'PROJCS["WGS 72BE / UTM zone 57N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4966,'EPSG',4966,'GEOCCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4966"]]','+proj=geocent +ellps=GRS80 + [...]
 ---
---- EPSG 32458 : WGS 72BE / UTM zone 58N
+--- EPSG 4968 : RGNC 1991
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32458,'EPSG',32458,'PROJCS["WGS 72BE / UTM zone 58N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4968,'EPSG',4968,'GEOCCS["RGNC 1991",DATUM["Reseau_Geodesique_Nouvelle_Caledonie_1991",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6645"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4968"]]','+proj=geocent +ellps=i [...]
 ---
---- EPSG 32459 : WGS 72BE / UTM zone 59N
+--- EPSG 4970 : RGR92
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32459,'EPSG',32459,'PROJCS["WGS 72BE / UTM zone 59N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4970,'EPSG',4970,'GEOCCS["RGR92",DATUM["Reseau_Geodesique_de_la_Reunion_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6627"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4970"]]','+proj=geocent +ellps=GRS80 +uni [...]
 ---
---- EPSG 32460 : WGS 72BE / UTM zone 60N
+--- EPSG 4972 : RRAF 1991
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32460,'EPSG',32460,'PROJCS["WGS 72BE / UTM zone 60N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4972,'EPSG',4972,'GEOCCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6640"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4972"]]','+proj=geocent +el [...]
 ---
---- EPSG 32501 : WGS 72BE / UTM zone 1S
+--- EPSG 4974 : SIRGAS 1995
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32501,'EPSG',32501,'PROJCS["WGS 72BE / UTM zone 1S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4974,'EPSG',4974,'GEOCCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4974"]]','+p [...]
 ---
---- EPSG 32502 : WGS 72BE / UTM zone 2S
+--- EPSG 4976 : SWEREF99
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32502,'EPSG',32502,'PROJCS["WGS 72BE / UTM zone 2S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4976,'EPSG',4976,'GEOCCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4976"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32503 : WGS 72BE / UTM zone 3S
+--- EPSG 4978 : WGS 84
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32503,'EPSG',32503,'PROJCS["WGS 72BE / UTM zone 3S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4978,'EPSG',4978,'GEOCCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4978"]]','+proj=geocent +datum=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32504 : WGS 72BE / UTM zone 4S
+--- EPSG 4980 : Yemen NGN96
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32504,'EPSG',32504,'PROJCS["WGS 72BE / UTM zone 4S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4980,'EPSG',4980,'GEOCCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4980"]]','+proj=geocent +ellps=WGS84  [...]
 ---
---- EPSG 32505 : WGS 72BE / UTM zone 5S
+--- EPSG 4982 : IGM95
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32505,'EPSG',32505,'PROJCS["WGS 72BE / UTM zone 5S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4982,'EPSG',4982,'GEOCCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4982"]]','+proj=geocent +ellps=WGS84 +units=m [...]
 ---
---- EPSG 32506 : WGS 72BE / UTM zone 6S
+--- EPSG 4984 : WGS 72
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32506,'EPSG',32506,'PROJCS["WGS 72BE / UTM zone 6S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4984,'EPSG',4984,'GEOCCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4984"]]','+proj=geocent +ellps=WGS72 +units=m +no_defs ');
 ---
---- EPSG 32507 : WGS 72BE / UTM zone 7S
+--- EPSG 4986 : WGS 72BE
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32507,'EPSG',32507,'PROJCS["WGS 72BE / UTM zone 7S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4986,'EPSG',4986,'GEOCCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4986"]]','+proj=geocent +ellps=WGS72 +units=m + [...]
 ---
---- EPSG 32508 : WGS 72BE / UTM zone 8S
+--- EPSG 4988 : SIRGAS 2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32508,'EPSG',32508,'PROJCS["WGS 72BE / UTM zone 8S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4988,'EPSG',4988,'GEOCCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4988"]]','+proj [...]
 ---
---- EPSG 32509 : WGS 72BE / UTM zone 9S
+--- EPSG 4990 : Lao 1993
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32509,'EPSG',32509,'PROJCS["WGS 72BE / UTM zone 9S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","90 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4990,'EPSG',4990,'GEOCCS["Lao 1993",DATUM["Lao_1993",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6677"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4990"]]','+proj=geocent +ellps=krass +units=m +no_defs ');
 ---
---- EPSG 32510 : WGS 72BE / UTM zone 10S
+--- EPSG 4992 : Lao 1997
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32510,'EPSG',32510,'PROJCS["WGS 72BE / UTM zone 10S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4992,'EPSG',4992,'GEOCCS["Lao 1997",DATUM["Lao_National_Datum_1997",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6678"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4992"]]','+proj=geocent +ellps=krass +units=m +no_defs ');
 ---
---- EPSG 32511 : WGS 72BE / UTM zone 11S
+--- EPSG 4994 : PRS92
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32511,'EPSG',32511,'PROJCS["WGS 72BE / UTM zone 11S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4994,'EPSG',4994,'GEOCCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4994"]]','+proj=geocent +ellps=clrk6 [...]
 ---
---- EPSG 32512 : WGS 72BE / UTM zone 12S
+--- EPSG 4996 : MAGNA-SIRGAS
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32512,'EPSG',32512,'PROJCS["WGS 72BE / UTM zone 12S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4996,'EPSG',4996,'GEOCCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4996"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32513 : WGS 72BE / UTM zone 13S
+--- EPSG 4998 : RGPF
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32513,'EPSG',32513,'PROJCS["WGS 72BE / UTM zone 13S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4998,'EPSG',4998,'GEOCCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4998"]]','+proj=geocent +ellps=GRS8 [...]
 ---
---- EPSG 32514 : WGS 72BE / UTM zone 14S
+--- EPSG 5011 : PTRA08
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32514,'EPSG',32514,'PROJCS["WGS 72BE / UTM zone 14S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5011,'EPSG',5011,'GEOCCS["PTRA08",DATUM["Autonomous_Regions_of_Portugal_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1041"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5011"]]','+proj=geocent +ellps=GRS80 +uni [...]
 ---
---- EPSG 32515 : WGS 72BE / UTM zone 15S
+--- EPSG 5244 : GDBD2009
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32515,'EPSG',32515,'PROJCS["WGS 72BE / UTM zone 15S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5244,'EPSG',5244,'GEOCCS["GDBD2009",DATUM["Geocentric_Datum_Brunei_Darussalam_2009",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1056"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5244"]]','+proj=geocent +ellps=GRS8 [...]
 ---
---- EPSG 32516 : WGS 72BE / UTM zone 16S
+--- EPSG 5250 : TUREF
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32516,'EPSG',32516,'PROJCS["WGS 72BE / UTM zone 16S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5250,'EPSG',5250,'GEOCCS["TUREF",DATUM["Turkish_National_Reference_Frame",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1057"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5250"]]','+proj=geocent +ellps=GRS80 +units=m [...]
 ---
---- EPSG 32517 : WGS 72BE / UTM zone 17S
+--- EPSG 5262 : DRUKREF 03
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32517,'EPSG',32517,'PROJCS["WGS 72BE / UTM zone 17S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5262,'EPSG',5262,'GEOCCS["DRUKREF 03",DATUM["Bhutan_National_Geodetic_Datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1058"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5262"]]','+proj=geocent +ellps=GRS80 +unit [...]
 ---
---- EPSG 32518 : WGS 72BE / UTM zone 18S
+--- EPSG 5322 : ISN2004
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32518,'EPSG',32518,'PROJCS["WGS 72BE / UTM zone 18S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5322,'EPSG',5322,'GEOCCS["ISN2004",DATUM["Islands_Net_2004",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1060"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5322"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32519 : WGS 72BE / UTM zone 19S
+--- EPSG 5332 : ITRF2008
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32519,'EPSG',32519,'PROJCS["WGS 72BE / UTM zone 19S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5332,'EPSG',5332,'GEOCCS["ITRF2008",DATUM["International_Terrestrial_Reference_Frame_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1061"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5332"]]','+proj=geocent +ell [...]
 ---
---- EPSG 32520 : WGS 72BE / UTM zone 20S
+--- EPSG 5341 : POSGAR 2007
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32520,'EPSG',32520,'PROJCS["WGS 72BE / UTM zone 20S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5341,'EPSG',5341,'GEOCCS["POSGAR 2007",DATUM["Posiciones_Geodesicas_Argentinas_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1062"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5341"]]','+proj=geocent +ellps=GRS [...]
 ---
---- EPSG 32521 : WGS 72BE / UTM zone 21S
+--- EPSG 5352 : MARGEN
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32521,'EPSG',32521,'PROJCS["WGS 72BE / UTM zone 21S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5352,'EPSG',5352,'GEOCCS["MARGEN",DATUM["Marco_Geodesico_Nacional",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1063"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5352"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32522 : WGS 72BE / UTM zone 22S
+--- EPSG 5358 : SIRGAS-Chile
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32522,'EPSG',32522,'PROJCS["WGS 72BE / UTM zone 22S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5358,'EPSG',5358,'GEOCCS["SIRGAS-Chile",DATUM["SIRGAS_Chile",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1064"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5358"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32523 : WGS 72BE / UTM zone 23S
+--- EPSG 5363 : CR05
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32523,'EPSG',32523,'PROJCS["WGS 72BE / UTM zone 23S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5363,'EPSG',5363,'GEOCCS["CR05",DATUM["Costa_Rica_2005",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","1065"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5363"]]','+proj=geocent +ellps=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32524 : WGS 72BE / UTM zone 24S
+--- EPSG 5368 : MACARIO SOLIS
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32524,'EPSG',32524,'PROJCS["WGS 72BE / UTM zone 24S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5368,'EPSG',5368,'GEOCCS["MACARIO SOLIS",DATUM["Sistema_Geodesico_Nacional_de_Panama_MACARIO_SOLIS",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1066"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5368"]]','+proj=geo [...]
 ---
---- EPSG 32525 : WGS 72BE / UTM zone 25S
+--- EPSG 5369 : Peru96
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32525,'EPSG',32525,'PROJCS["WGS 72BE / UTM zone 25S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5369,'EPSG',5369,'GEOCCS["Peru96",DATUM["Peru96",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1067"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5369"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32526 : WGS 72BE / UTM zone 26S
+--- EPSG 5379 : SIRGAS-ROU98
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32526,'EPSG',32526,'PROJCS["WGS 72BE / UTM zone 26S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5379,'EPSG',5379,'GEOCCS["SIRGAS-ROU98",DATUM["SIRGAS_ROU98",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","1068"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5379"]]','+proj=geocent +ellps=WGS84 +units=m +no_defs ');
 ---
---- EPSG 32527 : WGS 72BE / UTM zone 27S
+--- EPSG 5391 : SIRGAS_ES2007.8
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32527,'EPSG',32527,'PROJCS["WGS 72BE / UTM zone 27S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5391,'EPSG',5391,'GEOCCS["SIRGAS_ES2007.8",DATUM["SIRGAS_ES2007_8",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1069"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5391"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32528 : WGS 72BE / UTM zone 28S
+--- EPSG 5487 : RGAF09
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32528,'EPSG',32528,'PROJCS["WGS 72BE / UTM zone 28S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5487,'EPSG',5487,'GEOCCS["RGAF09",DATUM["Reseau_Geodesique_des_Antilles_Francaises_2009",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1073"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5487"]]','+proj=geocent +ellps [...]
 ---
---- EPSG 32529 : WGS 72BE / UTM zone 29S
+--- EPSG 5544 : PNG94
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32529,'EPSG',32529,'PROJCS["WGS 72BE / UTM zone 29S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5544,'EPSG',5544,'GEOCCS["PNG94",DATUM["Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1076"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5544"]]','+proj=geocent +ellps=GRS80 +uni [...]
 ---
---- EPSG 32530 : WGS 72BE / UTM zone 30S
+--- EPSG 5558 : UCS-2000
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32530,'EPSG',32530,'PROJCS["WGS 72BE / UTM zone 30S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5558,'EPSG',5558,'GEOCCS["UCS-2000",DATUM["Ukraine_2000",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","1077"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5558"]]','+proj=geocent +ellps=krass +units=m +no_defs ');
 ---
---- EPSG 32531 : WGS 72BE / UTM zone 31S
+--- EPSG 5591 : FEH2010
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32531,'EPSG',32531,'PROJCS["WGS 72BE / UTM zone 31S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5591,'EPSG',5591,'GEOCCS["FEH2010",DATUM["Fehmarnbelt_Datum_2010",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1078"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5591"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32532 : WGS 72BE / UTM zone 32S
+--- EPSG 5828 : DB_REF
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32532,'EPSG',32532,'PROJCS["WGS 72BE / UTM zone 32S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5828,'EPSG',5828,'GEOCCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5828"]]','+proj=geocent +ellps=bessel +un [...]
 ---
---- EPSG 32533 : WGS 72BE / UTM zone 33S
+--- EPSG 5884 : TGD2005
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32533,'EPSG',32533,'PROJCS["WGS 72BE / UTM zone 33S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5884,'EPSG',5884,'GEOCCS["TGD2005",DATUM["Tonga_Geodetic_Datum_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1095"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","5884"]]','+proj=geocent +ellps=GRS80 +units=m +no_ [...]
 ---
---- EPSG 32534 : WGS 72BE / UTM zone 34S
+--- EPSG 6133 : CIGD11
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32534,'EPSG',32534,'PROJCS["WGS 72BE / UTM zone 34S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6133,'EPSG',6133,'GEOCCS["CIGD11",DATUM["Cayman_Islands_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1100"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","6133"]]','+proj=geocent +ellps=GRS80 +unit [...]
 ---
---- EPSG 32535 : WGS 72BE / UTM zone 35S
+--- EPSG 6317 : NAD83(2011)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32535,'EPSG',32535,'PROJCS["WGS 72BE / UTM zone 35S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6317,'EPSG',6317,'GEOCCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","6317"]]','+proj=geocent +el [...]
 ---
---- EPSG 32536 : WGS 72BE / UTM zone 36S
+--- EPSG 6320 : NAD83(PA11)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32536,'EPSG',32536,'PROJCS["WGS 72BE / UTM zone 36S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6320,'EPSG',6320,'GEOCCS["NAD83(PA11)",DATUM["NAD83_National_Spatial_Reference_System_PA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1117"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","6320"]]','+proj=geocent +el [...]
 ---
---- EPSG 32537 : WGS 72BE / UTM zone 37S
+--- EPSG 6323 : NAD83(MA11)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32537,'EPSG',32537,'PROJCS["WGS 72BE / UTM zone 37S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6323,'EPSG',6323,'GEOCCS["NAD83(MA11)",DATUM["NAD83_National_Spatial_Reference_System_MA11",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1118"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","6323"]]','+proj=geocent +el [...]
 ---
---- EPSG 32538 : WGS 72BE / UTM zone 38S
+--- EPSG 6363 : Mexico ITRF2008
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32538,'EPSG',32538,'PROJCS["WGS 72BE / UTM zone 38S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6363,'EPSG',6363,'GEOCCS["Mexico ITRF2008",DATUM["Mexico_ITRF2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","6363"]]','+proj=geocent +ellps=GRS80 +units=m +no_defs ');
 ---
---- EPSG 32539 : WGS 72BE / UTM zone 39S
+--- EPSG 6666 : JGD2011
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32539,'EPSG',32539,'PROJCS["WGS 72BE / UTM zone 39S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6666,'EPSG',6666,'GEOCCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","6666"]]','+proj=geocent +ellps=GRS80 +units=m + [...]
 ---
---- EPSG 32540 : WGS 72BE / UTM zone 40S
+--- EPSG 6704 : RDN2008
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32540,'EPSG',32540,'PROJCS["WGS 72BE / UTM zone 40S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6704,'EPSG',6704,'GEOCCS["RDN2008",DATUM["Rete_Dinamica_Nazionale_2008",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","6704"]]','+proj=geocent +ellps=GRS80 +units=m + [...]
 ---
---- EPSG 32541 : WGS 72BE / UTM zone 41S
+--- EPSG 6781 : NAD83(CORS96)
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32541,'EPSG',32541,'PROJCS["WGS 72BE / UTM zone 41S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6781,'EPSG',6781,'GEOCCS["NAD83(CORS96)",DATUM["NAD83_Continuously_Operating_Reference_Station_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",OTHER],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","6781"]]','+proj=ge [...]
 ---
---- EPSG 32542 : WGS 72BE / UTM zone 42S
+--- EPSG 3901 : KKJ / Finland Uniform Coordinate System + N60 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32542,'EPSG',32542,'PROJCS["WGS 72BE / UTM zone 42S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3901,'EPSG',3901,'COMPD_CS["KKJ / Finland Uniform Coordinate System + N60 height",PROJCS["KKJ / Finland Uniform Coordinate System",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degre [...]
 ---
---- EPSG 32543 : WGS 72BE / UTM zone 43S
+--- EPSG 3902 : ETRS89 / TM35FIN(N,E) + N60 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32543,'EPSG',32543,'PROJCS["WGS 72BE / UTM zone 43S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3902,'EPSG',3902,'COMPD_CS["ETRS89 / TM35FIN(N,E) + N60 height",PROJCS["ETRS89 / TM35FIN(N,E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
 ---
---- EPSG 32544 : WGS 72BE / UTM zone 44S
+--- EPSG 3903 : ETRS89 / TM35FIN(N,E) + N2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32544,'EPSG',32544,'PROJCS["WGS 72BE / UTM zone 44S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (3903,'EPSG',3903,'COMPD_CS["ETRS89 / TM35FIN(N,E) + N2000 height",PROJCS["ETRS89 / TM35FIN(N,E)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 32545 : WGS 72BE / UTM zone 45S
+--- EPSG 4097 : ETRS89 / DKTM1 + DVR90 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32545,'EPSG',32545,'PROJCS["WGS 72BE / UTM zone 45S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4097,'EPSG',4097,'COMPD_CS["ETRS89 / DKTM1 + DVR90 height",PROJCS["ETRS89 / DKTM1",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],P [...]
 ---
---- EPSG 32546 : WGS 72BE / UTM zone 46S
+--- EPSG 4098 : ETRS89 / DKTM2 + DVR90 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32546,'EPSG',32546,'PROJCS["WGS 72BE / UTM zone 46S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4098,'EPSG',4098,'COMPD_CS["ETRS89 / DKTM2 + DVR90 height",PROJCS["ETRS89 / DKTM2",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],P [...]
 ---
---- EPSG 32547 : WGS 72BE / UTM zone 47S
+--- EPSG 4099 : ETRS89 / DKTM3 + DVR90 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32547,'EPSG',32547,'PROJCS["WGS 72BE / UTM zone 47S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4099,'EPSG',4099,'COMPD_CS["ETRS89 / DKTM3 + DVR90 height",PROJCS["ETRS89 / DKTM3",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],P [...]
 ---
---- EPSG 32548 : WGS 72BE / UTM zone 48S
+--- EPSG 4100 : ETRS89 / DKTM4 + DVR90 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32548,'EPSG',32548,'PROJCS["WGS 72BE / UTM zone 48S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (4100,'EPSG',4100,'COMPD_CS["ETRS89 / DKTM4 + DVR90 height",PROJCS["ETRS89 / DKTM4",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],P [...]
 ---
---- EPSG 32549 : WGS 72BE / UTM zone 49S
+--- EPSG 5318 : ETRS89 / Faroe TM + FVR09 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32549,'EPSG',32549,'PROJCS["WGS 72BE / UTM zone 49S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5318,'EPSG',5318,'COMPD_CS["ETRS89 / Faroe TM + FVR09 height",PROJCS["ETRS89 / Faroe TM",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","425 [...]
 ---
---- EPSG 32550 : WGS 72BE / UTM zone 50S
+--- EPSG 5498 : NAD83 + NAVD88 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32550,'EPSG',32550,'PROJCS["WGS 72BE / UTM zone 50S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5498,'EPSG',5498,'COMPD_CS["NAD83 + NAVD88 height",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],VERT_CS["NAVD88 height",VERT_DATUM["North American  [...]
 ---
---- EPSG 32551 : WGS 72BE / UTM zone 51S
+--- EPSG 5499 : NAD83(HARN) + NAVD88 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32551,'EPSG',32551,'PROJCS["WGS 72BE / UTM zone 51S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5499,'EPSG',5499,'COMPD_CS["NAD83(HARN) + NAVD88 height",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Reference_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],VERT_CS["NAVD88 height",VER [...]
 ---
---- EPSG 32552 : WGS 72BE / UTM zone 52S
+--- EPSG 5500 : NAD83(NSRS2007) + NAVD88 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32552,'EPSG',32552,'PROJCS["WGS 72BE / UTM zone 52S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5500,'EPSG',5500,'COMPD_CS["NAD83(NSRS2007) + NAVD88 height",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],VERT_CS["NAV [...]
 ---
---- EPSG 32553 : WGS 72BE / UTM zone 53S
+--- EPSG 5554 : ETRS89 / UTM zone 31N + DHHN92 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32553,'EPSG',32553,'PROJCS["WGS 72BE / UTM zone 53S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5554,'EPSG',5554,'COMPD_CS["ETRS89 / UTM zone 31N + DHHN92 height",PROJCS["ETRS89 / UTM zone 31N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
 ---
---- EPSG 32554 : WGS 72BE / UTM zone 54S
+--- EPSG 5555 : ETRS89 / UTM zone 32N + DHHN92 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32554,'EPSG',32554,'PROJCS["WGS 72BE / UTM zone 54S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5555,'EPSG',5555,'COMPD_CS["ETRS89 / UTM zone 32N + DHHN92 height",PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
 ---
---- EPSG 32555 : WGS 72BE / UTM zone 55S
+--- EPSG 5556 : ETRS89 / UTM zone 33N + DHHN92 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32555,'EPSG',32555,'PROJCS["WGS 72BE / UTM zone 55S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5556,'EPSG',5556,'COMPD_CS["ETRS89 / UTM zone 33N + DHHN92 height",PROJCS["ETRS89 / UTM zone 33N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["E [...]
 ---
---- EPSG 32556 : WGS 72BE / UTM zone 56S
+--- EPSG 5598 : FEH2010 / Fehmarnbelt TM + FCSVR10 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32556,'EPSG',32556,'PROJCS["WGS 72BE / UTM zone 56S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5598,'EPSG',5598,'COMPD_CS["FEH2010 / Fehmarnbelt TM + FCSVR10 height",PROJCS["FEH2010 / Fehmarnbelt TM",GEOGCS["FEH2010",DATUM["Fehmarnbelt_Datum_2010",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1078"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","5593"] [...]
 ---
---- EPSG 32557 : WGS 72BE / UTM zone 57S
+--- EPSG 5628 : SWEREF99 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32557,'EPSG',32557,'PROJCS["WGS 72BE / UTM zone 57S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5628,'EPSG',5628,'COMPD_CS["SWEREF99 + RH2000 height",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],VERT_CS["RH2000 height",VERT_DATUM["Rikets hojdsystem 2000",20 [...]
 ---
---- EPSG 32558 : WGS 72BE / UTM zone 58S
+--- EPSG 5698 : RGF93 / Lambert-93 + NGF-IGN69 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32558,'EPSG',32558,'PROJCS["WGS 72BE / UTM zone 58S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5698,'EPSG',5698,'COMPD_CS["RGF93 / Lambert-93 + NGF-IGN69 height",PROJCS["RGF93 / Lambert-93",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],P [...]
 ---
---- EPSG 32559 : WGS 72BE / UTM zone 59S
+--- EPSG 5699 : RGF93 / Lambert-93 + NGF-IGN78 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32559,'EPSG',32559,'PROJCS["WGS 72BE / UTM zone 59S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5699,'EPSG',5699,'COMPD_CS["RGF93 / Lambert-93 + NGF-IGN78 height",PROJCS["RGF93 / Lambert-93",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],P [...]
 ---
---- EPSG 32560 : WGS 72BE / UTM zone 60S
+--- EPSG 5707 : NTF (Paris) / Lambert zone I + NGF-IGN69 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32560,'EPSG',32560,'PROJCS["WGS 72BE / UTM zone 60S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9 [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5707,'EPSG',5707,'COMPD_CS["NTF (Paris) / Lambert zone I + NGF-IGN69 height",PROJCS["NTF (Paris) / Lambert zone I",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.015707963267 [...]
 ---
---- EPSG 32600 : WGS 84 / UTM grid system (northern hemisphere)
+--- EPSG 5708 : NTF (Paris) / Lambert zone IV + NGF-IGN78 height
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5708,'EPSG',5708,'COMPD_CS["NTF (Paris) / Lambert zone IV + NGF-IGN78 height",PROJCS["NTF (Paris) / Lambert zone IV",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.0157079632 [...]
 ---
---- EPSG 32601 : WGS 84 / UTM zone 1N
+--- EPSG 5832 : DB_REF / 3-degree Gauss-Kruger zone 2 (E-N) + DHHN92 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32601,'EPSG',32601,'PROJCS["WGS 84 / UTM zone 1N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5832,'EPSG',5832,'COMPD_CS["DB_REF / 3-degree Gauss-Kruger zone 2 (E-N) + DHHN92 height",PROJCS["DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)",GEOGCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32602 : WGS 84 / UTM zone 2N
+--- EPSG 5833 : DB_REF / 3-degree Gauss-Kruger zone 3 (E-N) + DHHN92 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32602,'EPSG',32602,'PROJCS["WGS 84 / UTM zone 2N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5833,'EPSG',5833,'COMPD_CS["DB_REF / 3-degree Gauss-Kruger zone 3 (E-N) + DHHN92 height",PROJCS["DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)",GEOGCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32603 : WGS 84 / UTM zone 3N
+--- EPSG 5834 : DB_REF / 3-degree Gauss-Kruger zone 4 (E-N) + DHHN92 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32603,'EPSG',32603,'PROJCS["WGS 84 / UTM zone 3N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5834,'EPSG',5834,'COMPD_CS["DB_REF / 3-degree Gauss-Kruger zone 4 (E-N) + DHHN92 height",PROJCS["DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)",GEOGCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32604 : WGS 84 / UTM zone 4N
+--- EPSG 5835 : DB_REF / 3-degree Gauss-Kruger zone 5 (E-N) + DHHN92 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32604,'EPSG',32604,'PROJCS["WGS 84 / UTM zone 4N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5835,'EPSG',5835,'COMPD_CS["DB_REF / 3-degree Gauss-Kruger zone 5 (E-N) + DHHN92 height",PROJCS["DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)",GEOGCS["DB_REF",DATUM["Deutsche_Bahn_Reference_System",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1081"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32605 : WGS 84 / UTM zone 5N
+--- EPSG 5845 : SWEREF99 TM + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32605,'EPSG',32605,'PROJCS["WGS 84 / UTM zone 5N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5845,'EPSG',5845,'COMPD_CS["SWEREF99 TM + RH2000 height",PROJCS["SWEREF99 TM",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator"],PARA [...]
 ---
---- EPSG 32606 : WGS 84 / UTM zone 6N
+--- EPSG 5846 : SWEREF99 12 00 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32606,'EPSG',32606,'PROJCS["WGS 84 / UTM zone 6N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5846,'EPSG',5846,'COMPD_CS["SWEREF99 12 00 + RH2000 height",PROJCS["SWEREF99 12 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32607 : WGS 84 / UTM zone 7N
+--- EPSG 5847 : SWEREF99 13 30 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32607,'EPSG',32607,'PROJCS["WGS 84 / UTM zone 7N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5847,'EPSG',5847,'COMPD_CS["SWEREF99 13 30 + RH2000 height",PROJCS["SWEREF99 13 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32608 : WGS 84 / UTM zone 8N
+--- EPSG 5848 : SWEREF99 15 00 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32608,'EPSG',32608,'PROJCS["WGS 84 / UTM zone 8N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5848,'EPSG',5848,'COMPD_CS["SWEREF99 15 00 + RH2000 height",PROJCS["SWEREF99 15 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32609 : WGS 84 / UTM zone 9N
+--- EPSG 5849 : SWEREF99 16 30 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32609,'EPSG',32609,'PROJCS["WGS 84 / UTM zone 9N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5849,'EPSG',5849,'COMPD_CS["SWEREF99 16 30 + RH2000 height",PROJCS["SWEREF99 16 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32610 : WGS 84 / UTM zone 10N
+--- EPSG 5850 : SWEREF99 18 00 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32610,'EPSG',32610,'PROJCS["WGS 84 / UTM zone 10N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5850,'EPSG',5850,'COMPD_CS["SWEREF99 18 00 + RH2000 height",PROJCS["SWEREF99 18 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32611 : WGS 84 / UTM zone 11N
+--- EPSG 5851 : SWEREF99 14 15 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32611,'EPSG',32611,'PROJCS["WGS 84 / UTM zone 11N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5851,'EPSG',5851,'COMPD_CS["SWEREF99 14 15 + RH2000 height",PROJCS["SWEREF99 14 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32612 : WGS 84 / UTM zone 12N
+--- EPSG 5852 : SWEREF99 15 45 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32612,'EPSG',32612,'PROJCS["WGS 84 / UTM zone 12N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5852,'EPSG',5852,'COMPD_CS["SWEREF99 15 45 + RH2000 height",PROJCS["SWEREF99 15 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32613 : WGS 84 / UTM zone 13N
+--- EPSG 5853 : SWEREF99 17 15 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32613,'EPSG',32613,'PROJCS["WGS 84 / UTM zone 13N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5853,'EPSG',5853,'COMPD_CS["SWEREF99 17 15 + RH2000 height",PROJCS["SWEREF99 17 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32614 : WGS 84 / UTM zone 14N
+--- EPSG 5854 : SWEREF99 18 45 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32614,'EPSG',32614,'PROJCS["WGS 84 / UTM zone 14N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5854,'EPSG',5854,'COMPD_CS["SWEREF99 18 45 + RH2000 height",PROJCS["SWEREF99 18 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32615 : WGS 84 / UTM zone 15N
+--- EPSG 5855 : SWEREF99 20 15 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32615,'EPSG',32615,'PROJCS["WGS 84 / UTM zone 15N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5855,'EPSG',5855,'COMPD_CS["SWEREF99 20 15 + RH2000 height",PROJCS["SWEREF99 20 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32616 : WGS 84 / UTM zone 16N
+--- EPSG 5856 : SWEREF99 21 45 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32616,'EPSG',32616,'PROJCS["WGS 84 / UTM zone 16N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5856,'EPSG',5856,'COMPD_CS["SWEREF99 21 45 + RH2000 height",PROJCS["SWEREF99 21 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32617 : WGS 84 / UTM zone 17N
+--- EPSG 5857 : SWEREF99 23 15 + RH2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32617,'EPSG',32617,'PROJCS["WGS 84 / UTM zone 17N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5857,'EPSG',5857,'COMPD_CS["SWEREF99 23 15 + RH2000 height",PROJCS["SWEREF99 23 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],PROJECTION["Transverse_Mercator" [...]
 ---
---- EPSG 32618 : WGS 84 / UTM zone 18N
+--- EPSG 5942 : ETRS89 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32618,'EPSG',32618,'PROJCS["WGS 84 / UTM zone 18N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5942,'EPSG',5942,'COMPD_CS["ETRS89 + NN2000 height",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],VERT_CS["NN2000 height",VERT_DAT [...]
 ---
---- EPSG 32619 : WGS 84 / UTM zone 19N
+--- EPSG 5945 : ETRS89 / NTM zone 5 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32619,'EPSG',32619,'PROJCS["WGS 84 / UTM zone 19N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5945,'EPSG',5945,'COMPD_CS["ETRS89 / NTM zone 5 + NN2000 height",PROJCS["ETRS89 / NTM zone 5",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32620 : WGS 84 / UTM zone 20N
+--- EPSG 5946 : ETRS89 / NTM zone 6 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32620,'EPSG',32620,'PROJCS["WGS 84 / UTM zone 20N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5946,'EPSG',5946,'COMPD_CS["ETRS89 / NTM zone 6 + NN2000 height",PROJCS["ETRS89 / NTM zone 6",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32621 : WGS 84 / UTM zone 21N
+--- EPSG 5947 : ETRS89 / NTM zone 7 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32621,'EPSG',32621,'PROJCS["WGS 84 / UTM zone 21N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5947,'EPSG',5947,'COMPD_CS["ETRS89 / NTM zone 7 + NN2000 height",PROJCS["ETRS89 / NTM zone 7",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32622 : WGS 84 / UTM zone 22N
+--- EPSG 5948 : ETRS89 / NTM zone 8 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32622,'EPSG',32622,'PROJCS["WGS 84 / UTM zone 22N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5948,'EPSG',5948,'COMPD_CS["ETRS89 / NTM zone 8 + NN2000 height",PROJCS["ETRS89 / NTM zone 8",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32623 : WGS 84 / UTM zone 23N
+--- EPSG 5949 : ETRS89 / NTM zone 9 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32623,'EPSG',32623,'PROJCS["WGS 84 / UTM zone 23N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5949,'EPSG',5949,'COMPD_CS["ETRS89 / NTM zone 9 + NN2000 height",PROJCS["ETRS89 / NTM zone 9",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32624 : WGS 84 / UTM zone 24N
+--- EPSG 5950 : ETRS89 / NTM zone 10 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32624,'EPSG',32624,'PROJCS["WGS 84 / UTM zone 24N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5950,'EPSG',5950,'COMPD_CS["ETRS89 / NTM zone 10 + NN2000 height",PROJCS["ETRS89 / NTM zone 10",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32625 : WGS 84 / UTM zone 25N
+--- EPSG 5951 : ETRS89 / NTM zone 11 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32625,'EPSG',32625,'PROJCS["WGS 84 / UTM zone 25N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5951,'EPSG',5951,'COMPD_CS["ETRS89 / NTM zone 11 + NN2000 height",PROJCS["ETRS89 / NTM zone 11",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32626 : WGS 84 / UTM zone 26N
+--- EPSG 5952 : ETRS89 / NTM zone 12 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32626,'EPSG',32626,'PROJCS["WGS 84 / UTM zone 26N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5952,'EPSG',5952,'COMPD_CS["ETRS89 / NTM zone 12 + NN2000 height",PROJCS["ETRS89 / NTM zone 12",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32627 : WGS 84 / UTM zone 27N
+--- EPSG 5953 : ETRS89 / NTM zone 13 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32627,'EPSG',32627,'PROJCS["WGS 84 / UTM zone 27N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5953,'EPSG',5953,'COMPD_CS["ETRS89 / NTM zone 13 + NN2000 height",PROJCS["ETRS89 / NTM zone 13",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32628 : WGS 84 / UTM zone 28N
+--- EPSG 5954 : ETRS89 / NTM zone 14 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32628,'EPSG',32628,'PROJCS["WGS 84 / UTM zone 28N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5954,'EPSG',5954,'COMPD_CS["ETRS89 / NTM zone 14 + NN2000 height",PROJCS["ETRS89 / NTM zone 14",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32629 : WGS 84 / UTM zone 29N
+--- EPSG 5955 : ETRS89 / NTM zone 15 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32629,'EPSG',32629,'PROJCS["WGS 84 / UTM zone 29N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5955,'EPSG',5955,'COMPD_CS["ETRS89 / NTM zone 15 + NN2000 height",PROJCS["ETRS89 / NTM zone 15",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32630 : WGS 84 / UTM zone 30N
+--- EPSG 5956 : ETRS89 / NTM zone 16 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32630,'EPSG',32630,'PROJCS["WGS 84 / UTM zone 30N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5956,'EPSG',5956,'COMPD_CS["ETRS89 / NTM zone 16 + NN2000 height",PROJCS["ETRS89 / NTM zone 16",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32631 : WGS 84 / UTM zone 31N
+--- EPSG 5957 : ETRS89 / NTM zone 17 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32631,'EPSG',32631,'PROJCS["WGS 84 / UTM zone 31N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5957,'EPSG',5957,'COMPD_CS["ETRS89 / NTM zone 17 + NN2000 height",PROJCS["ETRS89 / NTM zone 17",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32632 : WGS 84 / UTM zone 32N
+--- EPSG 5958 : ETRS89 / NTM zone 18 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32632,'EPSG',32632,'PROJCS["WGS 84 / UTM zone 32N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5958,'EPSG',5958,'COMPD_CS["ETRS89 / NTM zone 18 + NN2000 height",PROJCS["ETRS89 / NTM zone 18",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32633 : WGS 84 / UTM zone 33N
+--- EPSG 5959 : ETRS89 / NTM zone 19 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32633,'EPSG',32633,'PROJCS["WGS 84 / UTM zone 33N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5959,'EPSG',5959,'COMPD_CS["ETRS89 / NTM zone 19 + NN2000 height",PROJCS["ETRS89 / NTM zone 19",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32634 : WGS 84 / UTM zone 34N
+--- EPSG 5960 : ETRS89 / NTM zone 20 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32634,'EPSG',32634,'PROJCS["WGS 84 / UTM zone 34N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5960,'EPSG',5960,'COMPD_CS["ETRS89 / NTM zone 20 + NN2000 height",PROJCS["ETRS89 / NTM zone 20",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32635 : WGS 84 / UTM zone 35N
+--- EPSG 5961 : ETRS89 / NTM zone 21 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32635,'EPSG',32635,'PROJCS["WGS 84 / UTM zone 35N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5961,'EPSG',5961,'COMPD_CS["ETRS89 / NTM zone 21 + NN2000 height",PROJCS["ETRS89 / NTM zone 21",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32636 : WGS 84 / UTM zone 36N
+--- EPSG 5962 : ETRS89 / NTM zone 22 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32636,'EPSG',32636,'PROJCS["WGS 84 / UTM zone 36N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5962,'EPSG',5962,'COMPD_CS["ETRS89 / NTM zone 22 + NN2000 height",PROJCS["ETRS89 / NTM zone 22",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32637 : WGS 84 / UTM zone 37N
+--- EPSG 5963 : ETRS89 / NTM zone 23 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32637,'EPSG',32637,'PROJCS["WGS 84 / UTM zone 37N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5963,'EPSG',5963,'COMPD_CS["ETRS89 / NTM zone 23 + NN2000 height",PROJCS["ETRS89 / NTM zone 23",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32638 : WGS 84 / UTM zone 38N
+--- EPSG 5964 : ETRS89 / NTM zone 24 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32638,'EPSG',32638,'PROJCS["WGS 84 / UTM zone 38N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5964,'EPSG',5964,'COMPD_CS["ETRS89 / NTM zone 24 + NN2000 height",PROJCS["ETRS89 / NTM zone 24",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32639 : WGS 84 / UTM zone 39N
+--- EPSG 5965 : ETRS89 / NTM zone 25 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32639,'EPSG',32639,'PROJCS["WGS 84 / UTM zone 39N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5965,'EPSG',5965,'COMPD_CS["ETRS89 / NTM zone 25 + NN2000 height",PROJCS["ETRS89 / NTM zone 25",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32640 : WGS 84 / UTM zone 40N
+--- EPSG 5966 : ETRS89 / NTM zone 26 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32640,'EPSG',32640,'PROJCS["WGS 84 / UTM zone 40N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5966,'EPSG',5966,'COMPD_CS["ETRS89 / NTM zone 26 + NN2000 height",PROJCS["ETRS89 / NTM zone 26",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32641 : WGS 84 / UTM zone 41N
+--- EPSG 5967 : ETRS89 / NTM zone 27 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32641,'EPSG',32641,'PROJCS["WGS 84 / UTM zone 41N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5967,'EPSG',5967,'COMPD_CS["ETRS89 / NTM zone 27 + NN2000 height",PROJCS["ETRS89 / NTM zone 27",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32642 : WGS 84 / UTM zone 42N
+--- EPSG 5968 : ETRS89 / NTM zone 28 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32642,'EPSG',32642,'PROJCS["WGS 84 / UTM zone 42N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5968,'EPSG',5968,'COMPD_CS["ETRS89 / NTM zone 28 + NN2000 height",PROJCS["ETRS89 / NTM zone 28",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32643 : WGS 84 / UTM zone 43N
+--- EPSG 5969 : ETRS89 / NTM zone 29 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32643,'EPSG',32643,'PROJCS["WGS 84 / UTM zone 43N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5969,'EPSG',5969,'COMPD_CS["ETRS89 / NTM zone 29 + NN2000 height",PROJCS["ETRS89 / NTM zone 29",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32644 : WGS 84 / UTM zone 44N
+--- EPSG 5970 : ETRS89 / NTM zone 30 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32644,'EPSG',32644,'PROJCS["WGS 84 / UTM zone 44N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5970,'EPSG',5970,'COMPD_CS["ETRS89 / NTM zone 30 + NN2000 height",PROJCS["ETRS89 / NTM zone 30",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPS [...]
 ---
---- EPSG 32645 : WGS 84 / UTM zone 45N
+--- EPSG 5971 : ETRS89 / UTM zone 31 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32645,'EPSG',32645,'PROJCS["WGS 84 / UTM zone 45N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5971,'EPSG',5971,'COMPD_CS["ETRS89 / UTM zone 31 + NN2000 height",PROJCS["ETRS89 / UTM zone 31N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 32646 : WGS 84 / UTM zone 46N
+--- EPSG 5972 : ETRS89 / UTM zone 32 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32646,'EPSG',32646,'PROJCS["WGS 84 / UTM zone 46N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5972,'EPSG',5972,'COMPD_CS["ETRS89 / UTM zone 32 + NN2000 height",PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 32647 : WGS 84 / UTM zone 47N
+--- EPSG 5973 : ETRS89 / UTM zone 33 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32647,'EPSG',32647,'PROJCS["WGS 84 / UTM zone 47N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5973,'EPSG',5973,'COMPD_CS["ETRS89 / UTM zone 33 + NN2000 height",PROJCS["ETRS89 / UTM zone 33N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 32648 : WGS 84 / UTM zone 48N
+--- EPSG 5974 : ETRS89 / UTM zone 34 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32648,'EPSG',32648,'PROJCS["WGS 84 / UTM zone 48N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5974,'EPSG',5974,'COMPD_CS["ETRS89 / UTM zone 34 + NN2000 height",PROJCS["ETRS89 / UTM zone 34N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 32649 : WGS 84 / UTM zone 49N
+--- EPSG 5975 : ETRS89 / UTM zone 35 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32649,'EPSG',32649,'PROJCS["WGS 84 / UTM zone 49N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5975,'EPSG',5975,'COMPD_CS["ETRS89 / UTM zone 35 + NN2000 height",PROJCS["ETRS89 / UTM zone 35N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 32650 : WGS 84 / UTM zone 50N
+--- EPSG 5976 : ETRS89 / UTM zone 36 + NN2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32650,'EPSG',32650,'PROJCS["WGS 84 / UTM zone 50N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (5976,'EPSG',5976,'COMPD_CS["ETRS89 / UTM zone 36 + NN2000 height",PROJCS["ETRS89 / UTM zone 36N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 32651 : WGS 84 / UTM zone 51N
+--- EPSG 6144 : ETRS89 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32651,'EPSG',32651,'PROJCS["WGS 84 / UTM zone 51N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6144,'EPSG',6144,'COMPD_CS["ETRS89 + NN54 height",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],VERT_CS["NN54 height",VERT_DATUM[" [...]
 ---
---- EPSG 32652 : WGS 84 / UTM zone 52N
+--- EPSG 6145 : ETRS89 / NTM zone 5 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32652,'EPSG',32652,'PROJCS["WGS 84 / UTM zone 52N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6145,'EPSG',6145,'COMPD_CS["ETRS89 / NTM zone 5 + NN54 height",PROJCS["ETRS89 / NTM zone 5",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG"," [...]
 ---
---- EPSG 32653 : WGS 84 / UTM zone 53N
+--- EPSG 6146 : ETRS89 / NTM zone 6 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32653,'EPSG',32653,'PROJCS["WGS 84 / UTM zone 53N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6146,'EPSG',6146,'COMPD_CS["ETRS89 / NTM zone 6 + NN54 height",PROJCS["ETRS89 / NTM zone 6",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG"," [...]
 ---
---- EPSG 32654 : WGS 84 / UTM zone 54N
+--- EPSG 6147 : ETRS89 / NTM zone 7 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32654,'EPSG',32654,'PROJCS["WGS 84 / UTM zone 54N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6147,'EPSG',6147,'COMPD_CS["ETRS89 / NTM zone 7 + NN54 height",PROJCS["ETRS89 / NTM zone 7",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG"," [...]
 ---
---- EPSG 32655 : WGS 84 / UTM zone 55N
+--- EPSG 6148 : ETRS89 / NTM zone 8 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32655,'EPSG',32655,'PROJCS["WGS 84 / UTM zone 55N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6148,'EPSG',6148,'COMPD_CS["ETRS89 / NTM zone 8 + NN54 height",PROJCS["ETRS89 / NTM zone 8",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG"," [...]
 ---
---- EPSG 32656 : WGS 84 / UTM zone 56N
+--- EPSG 6149 : ETRS89 / NTM zone 9 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32656,'EPSG',32656,'PROJCS["WGS 84 / UTM zone 56N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6149,'EPSG',6149,'COMPD_CS["ETRS89 / NTM zone 9 + NN54 height",PROJCS["ETRS89 / NTM zone 9",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG"," [...]
 ---
---- EPSG 32657 : WGS 84 / UTM zone 57N
+--- EPSG 6150 : ETRS89 / NTM zone 10 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32657,'EPSG',32657,'PROJCS["WGS 84 / UTM zone 57N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6150,'EPSG',6150,'COMPD_CS["ETRS89 / NTM zone 10 + NN54 height",PROJCS["ETRS89 / NTM zone 10",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32658 : WGS 84 / UTM zone 58N
+--- EPSG 6151 : ETRS89 / NTM zone 11 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32658,'EPSG',32658,'PROJCS["WGS 84 / UTM zone 58N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6151,'EPSG',6151,'COMPD_CS["ETRS89 / NTM zone 11 + NN54 height",PROJCS["ETRS89 / NTM zone 11",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32659 : WGS 84 / UTM zone 59N
+--- EPSG 6152 : ETRS89 / NTM zone 12 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32659,'EPSG',32659,'PROJCS["WGS 84 / UTM zone 59N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6152,'EPSG',6152,'COMPD_CS["ETRS89 / NTM zone 12 + NN54 height",PROJCS["ETRS89 / NTM zone 12",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32660 : WGS 84 / UTM zone 60N
+--- EPSG 6153 : ETRS89 / NTM zone 13 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32660,'EPSG',32660,'PROJCS["WGS 84 / UTM zone 60N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6153,'EPSG',6153,'COMPD_CS["ETRS89 / NTM zone 13 + NN54 height",PROJCS["ETRS89 / NTM zone 13",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32661 : WGS 84 / UPS North
+--- EPSG 6154 : ETRS89 / NTM zone 14 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32661,'EPSG',32661,'PROJCS["WGS 84 / UPS North",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6154,'EPSG',6154,'COMPD_CS["ETRS89 / NTM zone 14 + NN54 height",PROJCS["ETRS89 / NTM zone 14",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32662 : WGS 84 / Plate Carree (deprecated)
+--- EPSG 6155 : ETRS89 / NTM zone 15 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32662,'EPSG',32662,'PROJCS["WGS 84 / Plate Carree (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Equirectangular"],PARAMETE [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6155,'EPSG',6155,'COMPD_CS["ETRS89 / NTM zone 15 + NN54 height",PROJCS["ETRS89 / NTM zone 15",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32663 : WGS 84 / World Equidistant Cylindrical (deprecated)
+--- EPSG 6156 : ETRS89 / NTM zone 16 + NN54 height
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6156,'EPSG',6156,'COMPD_CS["ETRS89 / NTM zone 16 + NN54 height",PROJCS["ETRS89 / NTM zone 16",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32664 : WGS 84 / BLM 14N (ftUS)
+--- EPSG 6157 : ETRS89 / NTM zone 17 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32664,'EPSG',32664,'PROJCS["WGS 84 / BLM 14N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6157,'EPSG',6157,'COMPD_CS["ETRS89 / NTM zone 17 + NN54 height",PROJCS["ETRS89 / NTM zone 17",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32665 : WGS 84 / BLM 15N (ftUS)
+--- EPSG 6158 : ETRS89 / NTM zone 18 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32665,'EPSG',32665,'PROJCS["WGS 84 / BLM 15N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6158,'EPSG',6158,'COMPD_CS["ETRS89 / NTM zone 18 + NN54 height",PROJCS["ETRS89 / NTM zone 18",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32666 : WGS 84 / BLM 16N (ftUS)
+--- EPSG 6159 : ETRS89 / NTM zone 19 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32666,'EPSG',32666,'PROJCS["WGS 84 / BLM 16N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6159,'EPSG',6159,'COMPD_CS["ETRS89 / NTM zone 19 + NN54 height",PROJCS["ETRS89 / NTM zone 19",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32667 : WGS 84 / BLM 17N (ftUS)
+--- EPSG 6160 : ETRS89 / NTM zone 20 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32667,'EPSG',32667,'PROJCS["WGS 84 / BLM 17N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6160,'EPSG',6160,'COMPD_CS["ETRS89 / NTM zone 20 + NN54 height",PROJCS["ETRS89 / NTM zone 20",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32700 : WGS 84 / UTM grid system (southern hemisphere)
+--- EPSG 6161 : ETRS89 / NTM zone 21 + NN54 height
 ---
--- (unable to translate)
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6161,'EPSG',6161,'COMPD_CS["ETRS89 / NTM zone 21 + NN54 height",PROJCS["ETRS89 / NTM zone 21",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32701 : WGS 84 / UTM zone 1S
+--- EPSG 6162 : ETRS89 / NTM zone 22 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32701,'EPSG',32701,'PROJCS["WGS 84 / UTM zone 1S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6162,'EPSG',6162,'COMPD_CS["ETRS89 / NTM zone 22 + NN54 height",PROJCS["ETRS89 / NTM zone 22",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32702 : WGS 84 / UTM zone 2S
+--- EPSG 6163 : ETRS89 / NTM zone 23 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32702,'EPSG',32702,'PROJCS["WGS 84 / UTM zone 2S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6163,'EPSG',6163,'COMPD_CS["ETRS89 / NTM zone 23 + NN54 height",PROJCS["ETRS89 / NTM zone 23",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32703 : WGS 84 / UTM zone 3S
+--- EPSG 6164 : ETRS89 / NTM zone 24 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32703,'EPSG',32703,'PROJCS["WGS 84 / UTM zone 3S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6164,'EPSG',6164,'COMPD_CS["ETRS89 / NTM zone 24 + NN54 height",PROJCS["ETRS89 / NTM zone 24",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32704 : WGS 84 / UTM zone 4S
+--- EPSG 6165 : ETRS89 / NTM zone 25 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32704,'EPSG',32704,'PROJCS["WGS 84 / UTM zone 4S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6165,'EPSG',6165,'COMPD_CS["ETRS89 / NTM zone 25 + NN54 height",PROJCS["ETRS89 / NTM zone 25",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32705 : WGS 84 / UTM zone 5S
+--- EPSG 6166 : ETRS89 / NTM zone 26 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32705,'EPSG',32705,'PROJCS["WGS 84 / UTM zone 5S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6166,'EPSG',6166,'COMPD_CS["ETRS89 / NTM zone 26 + NN54 height",PROJCS["ETRS89 / NTM zone 26",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32706 : WGS 84 / UTM zone 6S
+--- EPSG 6167 : ETRS89 / NTM zone 27 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32706,'EPSG',32706,'PROJCS["WGS 84 / UTM zone 6S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6167,'EPSG',6167,'COMPD_CS["ETRS89 / NTM zone 27 + NN54 height",PROJCS["ETRS89 / NTM zone 27",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32707 : WGS 84 / UTM zone 7S
+--- EPSG 6168 : ETRS89 / NTM zone 28 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32707,'EPSG',32707,'PROJCS["WGS 84 / UTM zone 7S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6168,'EPSG',6168,'COMPD_CS["ETRS89 / NTM zone 28 + NN54 height",PROJCS["ETRS89 / NTM zone 28",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32708 : WGS 84 / UTM zone 8S
+--- EPSG 6169 : ETRS89 / NTM zone 29 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32708,'EPSG',32708,'PROJCS["WGS 84 / UTM zone 8S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6169,'EPSG',6169,'COMPD_CS["ETRS89 / NTM zone 29 + NN54 height",PROJCS["ETRS89 / NTM zone 29",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32709 : WGS 84 / UTM zone 9S
+--- EPSG 6170 : ETRS89 / NTM zone 30 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32709,'EPSG',32709,'PROJCS["WGS 84 / UTM zone 9S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitud [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6170,'EPSG',6170,'COMPD_CS["ETRS89 / NTM zone 30 + NN54 height",PROJCS["ETRS89 / NTM zone 30",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG" [...]
 ---
---- EPSG 32710 : WGS 84 / UTM zone 10S
+--- EPSG 6171 : ETRS89 / UTM zone 31 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32710,'EPSG',32710,'PROJCS["WGS 84 / UTM zone 10S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6171,'EPSG',6171,'COMPD_CS["ETRS89 / UTM zone 31 + NN54 height",PROJCS["ETRS89 / UTM zone 31N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
 ---
---- EPSG 32711 : WGS 84 / UTM zone 11S
+--- EPSG 6172 : ETRS89 / UTM zone 32 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32711,'EPSG',32711,'PROJCS["WGS 84 / UTM zone 11S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6172,'EPSG',6172,'COMPD_CS["ETRS89 / UTM zone 32 + NN54 height",PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
 ---
---- EPSG 32712 : WGS 84 / UTM zone 12S
+--- EPSG 6173 : ETRS89 / UTM zone 33 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32712,'EPSG',32712,'PROJCS["WGS 84 / UTM zone 12S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6173,'EPSG',6173,'COMPD_CS["ETRS89 / UTM zone 33 + NN54 height",PROJCS["ETRS89 / UTM zone 33N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
 ---
---- EPSG 32713 : WGS 84 / UTM zone 13S
+--- EPSG 6174 : ETRS89 / UTM zone 34 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32713,'EPSG',32713,'PROJCS["WGS 84 / UTM zone 13S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6174,'EPSG',6174,'COMPD_CS["ETRS89 / UTM zone 34 + NN54 height",PROJCS["ETRS89 / UTM zone 34N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
 ---
---- EPSG 32714 : WGS 84 / UTM zone 14S
+--- EPSG 6175 : ETRS89 / UTM zone 35 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32714,'EPSG',32714,'PROJCS["WGS 84 / UTM zone 14S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6175,'EPSG',6175,'COMPD_CS["ETRS89 / UTM zone 35 + NN54 height",PROJCS["ETRS89 / UTM zone 35N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
 ---
---- EPSG 32715 : WGS 84 / UTM zone 15S
+--- EPSG 6176 : ETRS89 / UTM zone 36 + NN54 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32715,'EPSG',32715,'PROJCS["WGS 84 / UTM zone 15S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6176,'EPSG',6176,'COMPD_CS["ETRS89 / UTM zone 36 + NN54 height",PROJCS["ETRS89 / UTM zone 36N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG [...]
 ---
---- EPSG 32716 : WGS 84 / UTM zone 16S
+--- EPSG 6190 : Belge 1972 / Belgian Lambert 72 + Ostend height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32716,'EPSG',32716,'PROJCS["WGS 84 / UTM zone 16S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6190,'EPSG',6190,'COMPD_CS["Belge 1972 / Belgian Lambert 72 + Ostend height",PROJCS["Belge 1972 / Belgian Lambert 72",GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-106.8686,52.2978,-103.7239,0.3366,-0.457,1.8422,-1.2747],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174 [...]
 ---
---- EPSG 32717 : WGS 84 / UTM zone 17S
+--- EPSG 6349 : NAD83(2011) + NAVD88 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32717,'EPSG',32717,'PROJCS["WGS 84 / UTM zone 17S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6349,'EPSG',6349,'COMPD_CS["NAD83(2011) + NAVD88 height",GEOGCS["NAD83(2011)",DATUM["NAD83_National_Spatial_Reference_System_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],VERT_CS["NAVD88 height",VERT_DATUM["North A [...]
 ---
---- EPSG 32718 : WGS 84 / UTM zone 18S
+--- EPSG 6649 : NAD83(CSRS) + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32718,'EPSG',32718,'PROJCS["WGS 84 / UTM zone 18S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6649,'EPSG',6649,'COMPD_CS["NAD83(CSRS) + CGVD2013 height",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],VERT_CS["CGVD2013 heigh [...]
 ---
---- EPSG 32719 : WGS 84 / UTM zone 19S
+--- EPSG 6650 : NAD83(CSRS) / UTM zone 7N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32719,'EPSG',32719,'PROJCS["WGS 84 / UTM zone 19S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6650,'EPSG',6650,'COMPD_CS["NAD83(CSRS) / UTM zone 7N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 7N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], [...]
 ---
---- EPSG 32720 : WGS 84 / UTM zone 20S
+--- EPSG 6651 : NAD83(CSRS) / UTM zone 8N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32720,'EPSG',32720,'PROJCS["WGS 84 / UTM zone 20S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6651,'EPSG',6651,'COMPD_CS["NAD83(CSRS) / UTM zone 8N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 8N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], [...]
 ---
---- EPSG 32721 : WGS 84 / UTM zone 21S
+--- EPSG 6652 : NAD83(CSRS) / UTM zone 9N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32721,'EPSG',32721,'PROJCS["WGS 84 / UTM zone 21S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6652,'EPSG',6652,'COMPD_CS["NAD83(CSRS) / UTM zone 9N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 9N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], [...]
 ---
---- EPSG 32722 : WGS 84 / UTM zone 22S
+--- EPSG 6653 : NAD83(CSRS) / UTM zone 10N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32722,'EPSG',32722,'PROJCS["WGS 84 / UTM zone 22S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6653,'EPSG',6653,'COMPD_CS["NAD83(CSRS) / UTM zone 10N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 10N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32723 : WGS 84 / UTM zone 23S
+--- EPSG 6654 : NAD83(CSRS) / UTM zone 11N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32723,'EPSG',32723,'PROJCS["WGS 84 / UTM zone 23S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6654,'EPSG',6654,'COMPD_CS["NAD83(CSRS) / UTM zone 11N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 11N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32724 : WGS 84 / UTM zone 24S
+--- EPSG 6655 : NAD83(CSRS) / UTM zone 12N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32724,'EPSG',32724,'PROJCS["WGS 84 / UTM zone 24S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6655,'EPSG',6655,'COMPD_CS["NAD83(CSRS) / UTM zone 12N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 12N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32725 : WGS 84 / UTM zone 25S
+--- EPSG 6656 : NAD83(CSRS) / UTM zone 13N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32725,'EPSG',32725,'PROJCS["WGS 84 / UTM zone 25S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6656,'EPSG',6656,'COMPD_CS["NAD83(CSRS) / UTM zone 13N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 13N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32726 : WGS 84 / UTM zone 26S
+--- EPSG 6657 : NAD83(CSRS) / UTM zone 14N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32726,'EPSG',32726,'PROJCS["WGS 84 / UTM zone 26S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6657,'EPSG',6657,'COMPD_CS["NAD83(CSRS) / UTM zone 14N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 14N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32727 : WGS 84 / UTM zone 27S
+--- EPSG 6658 : NAD83(CSRS) / UTM zone 15N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32727,'EPSG',32727,'PROJCS["WGS 84 / UTM zone 27S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6658,'EPSG',6658,'COMPD_CS["NAD83(CSRS) / UTM zone 15N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 15N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32728 : WGS 84 / UTM zone 28S
+--- EPSG 6659 : NAD83(CSRS) / UTM zone 16N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32728,'EPSG',32728,'PROJCS["WGS 84 / UTM zone 28S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6659,'EPSG',6659,'COMPD_CS["NAD83(CSRS) / UTM zone 16N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 16N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32729 : WGS 84 / UTM zone 29S
+--- EPSG 6660 : NAD83(CSRS) / UTM zone 17N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32729,'EPSG',32729,'PROJCS["WGS 84 / UTM zone 29S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6660,'EPSG',6660,'COMPD_CS["NAD83(CSRS) / UTM zone 17N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 17N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32730 : WGS 84 / UTM zone 30S
+--- EPSG 6661 : NAD83(CSRS) / UTM zone 18N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32730,'EPSG',32730,'PROJCS["WGS 84 / UTM zone 30S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6661,'EPSG',6661,'COMPD_CS["NAD83(CSRS) / UTM zone 18N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 18N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32731 : WGS 84 / UTM zone 31S
+--- EPSG 6662 : NAD83(CSRS) / UTM zone 19N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32731,'EPSG',32731,'PROJCS["WGS 84 / UTM zone 31S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6662,'EPSG',6662,'COMPD_CS["NAD83(CSRS) / UTM zone 19N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 19N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32732 : WGS 84 / UTM zone 32S
+--- EPSG 6663 : NAD83(CSRS) / UTM zone 20N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32732,'EPSG',32732,'PROJCS["WGS 84 / UTM zone 32S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6663,'EPSG',6663,'COMPD_CS["NAD83(CSRS) / UTM zone 20N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 20N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32733 : WGS 84 / UTM zone 33S
+--- EPSG 6664 : NAD83(CSRS) / UTM zone 21N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32733,'EPSG',32733,'PROJCS["WGS 84 / UTM zone 33S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6664,'EPSG',6664,'COMPD_CS["NAD83(CSRS) / UTM zone 21N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 21N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32734 : WGS 84 / UTM zone 34S
+--- EPSG 6665 : NAD83(CSRS) / UTM zone 22N + CGVD2013 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32734,'EPSG',32734,'PROJCS["WGS 84 / UTM zone 34S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6665,'EPSG',6665,'COMPD_CS["NAD83(CSRS) / UTM zone 22N + CGVD2013 height",PROJCS["NAD83(CSRS) / UTM zone 22N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"] [...]
 ---
---- EPSG 32735 : WGS 84 / UTM zone 35S
+--- EPSG 6696 : JGD2000 + JGD2000 (vertical) height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32735,'EPSG',32735,'PROJCS["WGS 84 / UTM zone 35S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6696,'EPSG',6696,'COMPD_CS["JGD2000 + JGD2000 (vertical) height",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],VERT_CS["JGD2000 (vertical) heig [...]
 ---
---- EPSG 32736 : WGS 84 / UTM zone 36S
+--- EPSG 6697 : JGD2011 + JGD2011 (vertical) height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32736,'EPSG',32736,'PROJCS["WGS 84 / UTM zone 36S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6697,'EPSG',6697,'COMPD_CS["JGD2011 + JGD2011 (vertical) height",GEOGCS["JGD2011",DATUM["Japanese_Geodetic_Datum_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6668"]],VERT_CS["JGD2011 (vertical) height",VERT_DATUM["Japanes [...]
 ---
---- EPSG 32737 : WGS 84 / UTM zone 37S
+--- EPSG 6700 : Tokyo + JSLD72 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32737,'EPSG',32737,'PROJCS["WGS 84 / UTM zone 37S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6700,'EPSG',6700,'COMPD_CS["Tokyo + JSLD72 height",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],VERT_CS["JSLD72 height",VERT_DATUM["Japanese St [...]
 ---
---- EPSG 32738 : WGS 84 / UTM zone 38S
+--- EPSG 6871 : WGS 84 / Pseudo-Mercator +  EGM2008 geoid height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32738,'EPSG',32738,'PROJCS["WGS 84 / UTM zone 38S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (6871,'EPSG',6871,'COMPD_CS["WGS 84 / Pseudo-Mercator +  EGM2008 geoid height",PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARA [...]
 ---
---- EPSG 32739 : WGS 84 / UTM zone 39S
+--- EPSG 7400 : NTF (Paris) + NGF IGN69 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32739,'EPSG',32739,'PROJCS["WGS 84 / UTM zone 39S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7400,'EPSG',7400,'COMPD_CS["NTF (Paris) + NGF IGN69 height",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807" [...]
 ---
---- EPSG 32740 : WGS 84 / UTM zone 40S
+--- EPSG 7401 : NTF (Paris) / France II + NGF Lallemand
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32740,'EPSG',32740,'PROJCS["WGS 84 / UTM zone 40S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7401,'EPSG',7401,'COMPD_CS["NTF (Paris) / France II + NGF Lallemand",PROJCS["NTF (Paris) / France II (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.015707963267 [...]
 ---
---- EPSG 32741 : WGS 84 / UTM zone 41S
+--- EPSG 7402 : NTF (Paris) / France II + NGF IGN69
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32741,'EPSG',32741,'PROJCS["WGS 84 / UTM zone 41S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7402,'EPSG',7402,'COMPD_CS["NTF (Paris) / France II + NGF IGN69",PROJCS["NTF (Paris) / France II (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.0157079632679489 [...]
 ---
---- EPSG 32742 : WGS 84 / UTM zone 42S
+--- EPSG 7403 : NTF (Paris) / France III + NGF IGN69
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32742,'EPSG',32742,'PROJCS["WGS 84 / UTM zone 42S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7403,'EPSG',7403,'COMPD_CS["NTF (Paris) / France III + NGF IGN69",PROJCS["NTF (Paris) / France III (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794 [...]
 ---
---- EPSG 32743 : WGS 84 / UTM zone 43S
+--- EPSG 7404 : RT90 + RH70 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32743,'EPSG',32743,'PROJCS["WGS 84 / UTM zone 43S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7404,'EPSG',7404,'COMPD_CS["RT90 + RH70 height",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],VERT_CS["RH70 height",V [...]
 ---
---- EPSG 32744 : WGS 84 / UTM zone 44S
+--- EPSG 7405 : OSGB 1936 / British National Grid + ODN height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32744,'EPSG',32744,'PROJCS["WGS 84 / UTM zone 44S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7405,'EPSG',7405,'COMPD_CS["OSGB 1936 / British National Grid + ODN height",PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY [...]
 ---
---- EPSG 32745 : WGS 84 / UTM zone 45S
+--- EPSG 7406 : NAD27 + NGVD29 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32745,'EPSG',32745,'PROJCS["WGS 84 / UTM zone 45S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7406,'EPSG',7406,'COMPD_CS["NAD27 + NGVD29 height",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],VERT_CS["NGVD29 height",VERT_DATUM["National Geodetic Vertical Da [...]
 ---
---- EPSG 32746 : WGS 84 / UTM zone 46S
+--- EPSG 7407 : NAD27 / Texas North + NGVD29 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32746,'EPSG',32746,'PROJCS["WGS 84 / UTM zone 46S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7407,'EPSG',7407,'COMPD_CS["NAD27 / Texas North + NGVD29 height",PROJCS["NAD27 / Texas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],PROJECTION["Lambert_Co [...]
 ---
---- EPSG 32747 : WGS 84 / UTM zone 47S
+--- EPSG 7408 : RD/NAP
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32747,'EPSG',32747,'PROJCS["WGS 84 / UTM zone 47S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7408,'EPSG',7408,'COMPD_CS["RD/NAP",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[565.4171,50.3319,465.5524,-0.398957388243134,0.343987817378283,-1.87740163998045,4.0725],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289" [...]
 ---
---- EPSG 32748 : WGS 84 / UTM zone 48S
+--- EPSG 7409 : ETRS89 + EVRF2000 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32748,'EPSG',32748,'PROJCS["WGS 84 / UTM zone 48S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7409,'EPSG',7409,'COMPD_CS["ETRS89 + EVRF2000 height",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],VERT_CS["EVRF2000 height",VERT [...]
 ---
---- EPSG 32749 : WGS 84 / UTM zone 49S
+--- EPSG 7410 : PSHD93
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32749,'EPSG',32749,'PROJCS["WGS 84 / UTM zone 49S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7410,'EPSG',7410,'COMPD_CS["PSHD93",GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]],VERT_CS["PHD93 height", [...]
 ---
---- EPSG 32750 : WGS 84 / UTM zone 50S
+--- EPSG 7411 : NTF (Paris) / Lambert zone II + NGF Lallemand height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32750,'EPSG',32750,'PROJCS["WGS 84 / UTM zone 50S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7411,'EPSG',7411,'COMPD_CS["NTF (Paris) / Lambert zone II + NGF Lallemand height",PROJCS["NTF (Paris) / Lambert zone II",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.015707 [...]
 ---
---- EPSG 32751 : WGS 84 / UTM zone 51S
+--- EPSG 7412 : NTF (Paris) / Lambert zone II + NGF IGN69
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32751,'EPSG',32751,'PROJCS["WGS 84 / UTM zone 51S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7412,'EPSG',7412,'COMPD_CS["NTF (Paris) / Lambert zone II + NGF IGN69",PROJCS["NTF (Paris) / Lambert zone II",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897 [...]
 ---
---- EPSG 32752 : WGS 84 / UTM zone 52S
+--- EPSG 7413 : NTF (Paris) / Lambert zone III + NGF IGN69
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32752,'EPSG',32752,'PROJCS["WGS 84 / UTM zone 52S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7413,'EPSG',7413,'COMPD_CS["NTF (Paris) / Lambert zone III + NGF IGN69",PROJCS["NTF (Paris) / Lambert zone III",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.015707963267948 [...]
 ---
---- EPSG 32753 : WGS 84 / UTM zone 53S
+--- EPSG 7414 : Tokyo + JSLD69 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32753,'EPSG',32753,'PROJCS["WGS 84 / UTM zone 53S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7414,'EPSG',7414,'COMPD_CS["Tokyo + JSLD69 height",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],VERT_CS["JSLD69 height",VERT_DATUM["Japanese St [...]
 ---
---- EPSG 32754 : WGS 84 / UTM zone 54S
+--- EPSG 7415 : Amersfoort / RD New + NAP height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32754,'EPSG',32754,'PROJCS["WGS 84 / UTM zone 54S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7415,'EPSG',7415,'COMPD_CS["Amersfoort / RD New + NAP height",PROJCS["Amersfoort / RD New",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[565.4171,50.3319,465.5524,-0.398957388243134,0.343987817378283,-1.87740163998045,4.0725],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251 [...]
 ---
---- EPSG 32755 : WGS 84 / UTM zone 55S
+--- EPSG 7416 : ETRS89 / UTM zone 32N + DVR90 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32755,'EPSG',32755,'PROJCS["WGS 84 / UTM zone 55S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7416,'EPSG',7416,'COMPD_CS["ETRS89 / UTM zone 32N + DVR90 height",PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 32756 : WGS 84 / UTM zone 56S
+--- EPSG 7417 : ETRS89 / UTM zone 33N + DVR90 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32756,'EPSG',32756,'PROJCS["WGS 84 / UTM zone 56S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7417,'EPSG',7417,'COMPD_CS["ETRS89 / UTM zone 33N + DVR90 height",PROJCS["ETRS89 / UTM zone 33N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EP [...]
 ---
---- EPSG 32757 : WGS 84 / UTM zone 57S
+--- EPSG 7418 : ETRS89 / Kp2000 Jutland + DVR90 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32757,'EPSG',32757,'PROJCS["WGS 84 / UTM zone 57S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7418,'EPSG',7418,'COMPD_CS["ETRS89 / Kp2000 Jutland + DVR90 height",PROJCS["ETRS89 / Kp2000 Jutland",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY [...]
 ---
---- EPSG 32758 : WGS 84 / UTM zone 58S
+--- EPSG 7419 : ETRS89 / Kp2000 Zealand + DVR90 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32758,'EPSG',32758,'PROJCS["WGS 84 / UTM zone 58S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7419,'EPSG',7419,'COMPD_CS["ETRS89 / Kp2000 Zealand + DVR90 height",PROJCS["ETRS89 / Kp2000 Zealand",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY [...]
 ---
---- EPSG 32759 : WGS 84 / UTM zone 59S
+--- EPSG 7420 : ETRS89 / Kp2000 Bornholm + DVR90 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32759,'EPSG',32759,'PROJCS["WGS 84 / UTM zone 59S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7420,'EPSG',7420,'COMPD_CS["ETRS89 / Kp2000 Bornholm + DVR90 height",PROJCS["ETRS89 / Kp2000 Bornholm",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORI [...]
 ---
---- EPSG 32760 : WGS 84 / UTM zone 60S
+--- EPSG 7421 : NTF (Paris) / Lambert zone II + NGF-IGN69 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32760,'EPSG',32760,'PROJCS["WGS 84 / UTM zone 60S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitu [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7421,'EPSG',7421,'COMPD_CS["NTF (Paris) / Lambert zone II + NGF-IGN69 height",PROJCS["NTF (Paris) / Lambert zone II",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.0157079632 [...]
 ---
---- EPSG 32761 : WGS 84 / UPS South
+--- EPSG 7422 : NTF (Paris) / Lambert zone III + NGF-IGN69 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32761,'EPSG',32761,'PROJCS["WGS 84 / UPS South",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_ [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7422,'EPSG',7422,'COMPD_CS["NTF (Paris) / Lambert zone III + NGF-IGN69 height",PROJCS["NTF (Paris) / Lambert zone III",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796 [...]
 ---
---- EPSG 32766 : WGS 84 / TM 36 SE
+--- EPSG 7423 : ETRS89 + EVRF2007 height
 ---
-INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (32766,'EPSG',32766,'PROJCS["WGS 84 / TM 36 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_o [...]
+INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (7423,'EPSG',7423,'COMPD_CS["ETRS89 + EVRF2007 height",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],VERT_CS["EVRF2007 height",VERT [...]
 ---
 --- Google Maps / Microsoft Maps
 ---
diff --git a/topology/Makefile.in b/topology/Makefile.in
index 0764878..4ae5a95 100644
--- a/topology/Makefile.in
+++ b/topology/Makefile.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id$
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
@@ -19,14 +18,11 @@
 
 POSTGIS_PGSQL_VERSION=@POSTGIS_PGSQL_VERSION@
 
-# NOTE: we can't use MODULE_big or PGXS insists in building a library...
-PGIS_MODULE_big=postgis- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@
-MODULEDIR=contrib/$(PGIS_MODULE_big)
-
-PGIS_MAJ_MIN=@POSTGIS_MAJOR_VERSION@@POSTGIS_MINOR_VERSION@
+MODULE_big=postgis_topology- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@
+MODULEDIR=contrib/$(MODULE_big)
 
 # Files to be copied to the contrib/ directory
-DATA_built=topology.sql topology_upgrade_$(PGIS_MAJ_MIN)_minor.sql uninstall_topology.sql
+DATA_built=topology.sql topology_upgrade.sql uninstall_topology.sql
 
 # SQL preprocessor
 SQLPP = @SQLPP@
@@ -38,28 +34,45 @@ SQL_OBJS = \
   topology_drop_before.sql \
   topology_drop_after.sql
 
+# Objects to build using PGXS
+OBJS = postgis_topology.o
+
+# Libraries to link into the module (proj, geos)
+#
+# Note: we specify liblwgeom.a directly in SHLIB_LINK rather than using
+# -L... -l options to prevent issues with some platforms trying to link
+# to an existing liblwgeom.so in the PostgreSQL $libdir supplied by an
+# older version of PostGIS, rather than with the static liblwgeom.a
+# supplied with newer versions of PostGIS
+PG_CPPFLAGS += -I../liblwgeom -I../libpgcommon @CPPFLAGS@ -fPIC
+SHLIB_LINK_F = ../libpgcommon/libpgcommon.a ../liblwgeom/.libs/liblwgeom.a @SHLIB_LINK@
+
+# Add SFCGAL Flags if defined
+ifeq (@SFCGAL@,sfcgal)
+PG_CPPFLAGS += @SFCGAL_CPPFLAGS@
+SHLIB_LINK_F += @SFCGAL_LDFLAGS@
+endif
+
+
 # Extra files to remove during 'make clean'
-EXTRA_CLEAN=$(SQL_OBJS)
+EXTRA_CLEAN=$(SQL_OBJS) topology_upgrade.sql.in
 
 # PGXS information
 PG_CONFIG = @PG_CONFIG@ 
 PGXS := @PGXS@
+# NO_TEMP_INSTALL is a workaround for a 9.5dev bug. See:
+# http://www.postgresql.org/message-id/CAB7nPqTsR5o3g-fBi6jbsVdhfPiLFWQ_0cGU5=94Rv_8W3qvFA@mail.gmail.com
+NO_TEMP_INSTALL=yes
 include $(PGXS)
 
 # Set PERL _after_ the include of PGXS
 PERL=@PERL@
 
-# PGXS override feature. The ability to allow PostGIS to install itself
-# in a versioned directory is only available in PostgreSQL >= 8.5. To
-# do this by default on older PostgreSQL versions, we need to override
-# the existing PGXS targets.
-#
-# Once PostgreSQL 8.5 becomes the minimum supported version, this entire
-# section and its associated Makefile.pgxs should be removed.
-PGXSOVERRIDE = @PGXSOVERRIDE@
-ifeq ($(PGXSOVERRIDE),1)
-	include ../postgis/Makefile.pgxs
-endif
+# This is to workaround a bug in PGXS 8.4 win32 link line,
+# see http://trac.osgeo.org/postgis/ticket/1158#comment:57
+SHLIB_LINK := $(SHLIB_LINK_F) $(SHLIB_LINK)
+
+$(OBJS): ../liblwgeom/.libs/liblwgeom.a ../libpgcommon/libpgcommon.a ../postgis_config.h
 
 # If REGRESS=1 passed as a parameter, change the default install paths
 # so that no prefix is included. This allows us to relocate to a temporary
@@ -75,14 +88,16 @@ endif
 
 # Generate any .sql file from .sql.in.c files by running them through the SQL pre-processor 
 %.sql: %.sql.in
-	$(SQLPP) $< | grep -v '^#' > $@
+	$(SQLPP) $< | grep -v '^#' | \
+	$(PERL) -lpe "s'MODULE_PATHNAME'\$$libdir/postgis_topology- at POSTGIS_MAJOR_VERSION@. at POSTGIS_MINOR_VERSION@'g" > $@
 
 #Generate upgrade script by stripping things that can't be reinstalled
 #e.g. don't bother with tables, types, triggers, and domains
-topology_upgrade.sql:  topology.sql
+# TODO: use postgis_proc_upgrade.pl
+topology_upgrade.sql.in:  topology.sql
 	$(PERL) -0777 -ne 's/^(CREATE|ALTER) (CAST|OPERATOR|TYPE|TABLE|SCHEMA|DOMAIN|TRIGGER).*?;//msg;print;' $< > $@
 
-topology_upgrade_$(PGIS_MAJ_MIN)_minor.sql:  topology_drop_before.sql topology_upgrade.sql topology_drop_after.sql
+topology_upgrade.sql: topology_drop_before.sql topology_upgrade.sql.in topology_drop_after.sql
 	cat $^ > $@
 
 topology.sql: sql/sqlmm.sql.in sql/populate.sql.in sql/polygonize.sql.in sql/export/gml.sql.in sql/export/TopoJSON.sql.in sql/query/getnodebypoint.sql.in sql/query/getedgebypoint.sql.in sql/query/getfacebypoint.sql.in sql/query/GetRingEdges.sql.in sql/query/GetNodeEdges.sql.in sql/manage/TopologySummary.sql.in sql/manage/CopyTopology.sql.in sql/manage/ManageHelper.sql.in sql/topoelement/topoelement_agg.sql.in sql/topogeometry/type.sql.in sql/topogeometry/totopogeom.sql.in sql/topogeometr [...]
diff --git a/topology/postgis_topology.c b/topology/postgis_topology.c
new file mode 100644
index 0000000..337b18e
--- /dev/null
+++ b/topology/postgis_topology.c
@@ -0,0 +1,4468 @@
+/**********************************************************************
+ *
+ * PostGIS - Spatial Types for PostgreSQL
+ * http://postgis.net
+ *
+ * Copyright (C) 2015 Sandro Santilli <strk at keybit.net>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the GNU General Public Licence. See the COPYING file.
+ *
+ **********************************************************************/
+
+#include "postgres.h"
+#include "fmgr.h"
+#include "utils/elog.h"
+#include "utils/memutils.h" /* for TopMemoryContext */
+#include "lib/stringinfo.h"
+#include "access/xact.h" /* for RegisterXactCallback */
+#include "funcapi.h" /* for FuncCallContext */
+#include "executor/spi.h" /* this is what you need to work with SPI */
+#include "inttypes.h" /* for PRId64 */
+
+#include "../postgis_config.h"
+
+#include "liblwgeom_internal.h" /* for gbox_clone */
+#include "liblwgeom_topo.h"
+
+/*#define POSTGIS_DEBUG_LEVEL 1*/
+#include "lwgeom_log.h"
+#include "lwgeom_pg.h"
+
+#include <stdarg.h>
+
+#ifndef __GNUC__
+# define __attribute__ (x)
+#endif
+
+#define ABS(x) (x<0?-x:x)
+
+#ifdef WIN32
+# define LWTFMT_ELEMID "lld"
+#else
+# define LWTFMT_ELEMID PRId64
+#endif
+
+/*
+ * This is required for builds against pgsql
+ */
+PG_MODULE_MAGIC;
+
+LWT_BE_IFACE* be_iface;
+
+/*
+ * Private data we'll use for this backend
+ */
+#define MAXERRLEN 256
+struct LWT_BE_DATA_T {
+  char lastErrorMsg[MAXERRLEN];
+  /*
+   * This flag will need to be set to false
+   * at top-level function enter and set true
+   * whenever an callback changes the data
+   * in the database.
+   * It will be used by SPI_execute calls to
+   * make sure to see any data change occurring
+   * doring operations.
+   */
+  bool data_changed;
+
+  int topoLoadFailMessageFlavor; /* 0:sql, 1:AddPoint */
+};
+
+LWT_BE_DATA be_data;
+
+struct LWT_BE_TOPOLOGY_T {
+  LWT_BE_DATA* be_data;
+  char *name;
+  int id;
+  int srid;
+  int precision;
+  int hasZ;
+};
+
+/* utility funx */
+
+static void cberror(const LWT_BE_DATA* be, const char *fmt, ...)
+  __attribute__ (( format(printf, 2, 3) ));
+
+static void
+cberror(const LWT_BE_DATA* be_in, const char *fmt, ...)
+{
+  LWT_BE_DATA *be = (LWT_BE_DATA*)be_in;/*const cast*/
+	va_list ap;
+
+	va_start(ap, fmt);
+
+	vsnprintf (be->lastErrorMsg, MAXERRLEN, fmt, ap);
+	be->lastErrorMsg[MAXERRLEN-1]='\0';
+
+	va_end(ap);
+}
+
+static void
+_lwtype_upper_name(int type, char *buf, size_t buflen)
+{
+  char *ptr;
+  snprintf(buf, buflen, "%s", lwtype_name(type));
+  buf[buflen-1] = '\0';
+  ptr = buf;
+  while (*ptr) {
+    *ptr = toupper(*ptr);
+    ++ptr;
+  }
+}
+
+/* Return lwalloc'ed hexwkb representation for a GBOX */
+static char *
+_box2d_to_hexwkb(const GBOX *bbox, int srid)
+{
+  POINTARRAY *pa = ptarray_construct(0, 0, 2);
+  POINT4D p;
+  LWLINE *line;
+  char *hex;
+  size_t sz;
+
+  p.x = bbox->xmin;
+  p.y = bbox->ymin;
+  ptarray_set_point4d(pa, 0, &p);
+  p.x = bbox->xmax;
+  p.y = bbox->ymax;
+  ptarray_set_point4d(pa, 1, &p);
+  line = lwline_construct(srid, NULL, pa);
+  hex = lwgeom_to_hexwkb( lwline_as_lwgeom(line), WKT_EXTENDED, &sz);
+  lwline_free(line);
+  assert(hex[sz-1] == '\0');
+  return hex;
+}
+
+/* Backend callbacks */
+
+static const char*
+cb_lastErrorMessage(const LWT_BE_DATA* be)
+{
+  return be->lastErrorMsg;
+}
+
+static LWT_BE_TOPOLOGY*
+cb_loadTopologyByName(const LWT_BE_DATA* be, const char *name)
+{
+  int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  Datum dat;
+  bool isnull;
+  LWT_BE_TOPOLOGY *topo;
+  MemoryContext oldcontext = CurrentMemoryContext;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "SELECT id,srid FROM topology.topology "
+                        "WHERE name = '%s'", name);
+  spi_result = SPI_execute(sql->data, !be->data_changed, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(be, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  return NULL;
+  }
+  if ( ! SPI_processed )
+  {
+    pfree(sqldata.data);
+		//cberror(be, "no topology named '%s' was found", name);
+    if ( be->topoLoadFailMessageFlavor == 1 ) {
+      cberror(be, "No topology with name \"%s\" in topology.topology", name);
+    } else {
+		  cberror(be, "SQL/MM Spatial exception - invalid topology name");
+    }
+	  return NULL;
+  }
+  if ( SPI_processed > 1 )
+  {
+    pfree(sqldata.data);
+		cberror(be, "multiple topologies named '%s' were found", name);
+	  return NULL;
+  }
+  pfree(sqldata.data);
+
+  topo = palloc(sizeof(LWT_BE_TOPOLOGY));
+  topo->be_data = (LWT_BE_DATA *)be; /* const cast.. */
+  topo->name = pstrdup(name);
+
+  dat = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull);
+  if ( isnull ) {
+		cberror(be, "Topology '%s' has null identifier", name);
+    return NULL;
+  }
+  topo->id = DatumGetInt32(dat);
+
+  dat = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 2, &isnull);
+  if ( isnull ) {
+		cberror(be, "Topology '%s' has null SRID", name);
+    return NULL;
+  }
+  topo->srid = DatumGetInt32(dat);
+  if ( topo->srid < 0 )
+  {
+    lwnotice("Topology SRID value %d converted to "
+             "the officially unknown SRID value %d", SRID_UNKNOWN);
+    topo->srid = SRID_UNKNOWN;
+  }
+
+  topo->precision = 0; /* needed ? */
+
+  POSTGIS_DEBUGF(1, "cb_loadTopologyByName: topo '%s' has id %d, srid %d",
+             name, topo->id, topo->srid);
+
+  return topo;
+}
+
+static int
+cb_topoGetSRID(const LWT_BE_TOPOLOGY* topo)
+{
+  return topo->srid;
+}
+
+static int
+cb_topoHasZ(const LWT_BE_TOPOLOGY* topo)
+{
+  return topo->hasZ;
+}
+
+static double
+cb_topoGetPrecision(const LWT_BE_TOPOLOGY* topo)
+{
+  return topo->precision;
+}
+
+static int
+cb_freeTopology(LWT_BE_TOPOLOGY* topo)
+{
+  pfree(topo->name);
+  pfree(topo);
+  return 1;
+}
+
+static void
+addEdgeFields(StringInfo str, int fields, int fullEdgeData)
+{
+  const char *sep = "";
+
+  if ( fields & LWT_COL_EDGE_EDGE_ID ) {
+    appendStringInfoString(str, "edge_id");
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_START_NODE ) {
+    appendStringInfo(str, "%sstart_node", sep);
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_END_NODE ) {
+    appendStringInfo(str, "%send_node", sep);
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_FACE_LEFT ) {
+    appendStringInfo(str, "%sleft_face", sep);
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_FACE_RIGHT ) {
+    appendStringInfo(str, "%sright_face", sep);
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_NEXT_LEFT ) {
+    appendStringInfo(str, "%snext_left_edge", sep);
+    if ( fullEdgeData ) appendStringInfoString(str, ", abs_next_left_edge");
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_NEXT_RIGHT ) {
+    appendStringInfo(str, "%snext_right_edge", sep);
+    if ( fullEdgeData ) appendStringInfoString(str, ", abs_next_right_edge");
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_GEOM ) {
+    appendStringInfo(str, "%sgeom", sep);
+  }
+}
+
+/* Add edge values in text form, include the parens */
+static void
+addEdgeValues(StringInfo str, const LWT_ISO_EDGE *edge, int fields, int fullEdgeData)
+{
+  size_t hexewkb_size;
+  char *hexewkb;
+  const char *sep = "";
+
+  appendStringInfoChar(str, '(');
+  if ( fields & LWT_COL_EDGE_EDGE_ID ) {
+    if ( edge->edge_id != -1 )
+      appendStringInfo(str, "%" LWTFMT_ELEMID, edge->edge_id);
+    else
+      appendStringInfoString(str, "DEFAULT");
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_START_NODE ) {
+    appendStringInfo(str, "%s%" LWTFMT_ELEMID, sep, edge->start_node);
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_END_NODE ) {
+    appendStringInfo(str, "%s%" LWTFMT_ELEMID, sep, edge->end_node);
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_FACE_LEFT ) {
+    appendStringInfo(str, "%s%" LWTFMT_ELEMID, sep, edge->face_left);
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_FACE_RIGHT ) {
+    appendStringInfo(str, "%s%" LWTFMT_ELEMID, sep, edge->face_right);
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_NEXT_LEFT ) {
+    appendStringInfo(str, "%s%" LWTFMT_ELEMID, sep, edge->next_left);
+    if ( fullEdgeData )
+      appendStringInfo(str, ",%" LWTFMT_ELEMID, ABS(edge->next_left));
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_NEXT_RIGHT ) {
+    appendStringInfo(str, "%s%" LWTFMT_ELEMID, sep, edge->next_right);
+    if ( fullEdgeData )
+      appendStringInfo(str, ",%" LWTFMT_ELEMID, ABS(edge->next_right));
+    sep = ",";
+  }
+  if ( fields & LWT_COL_EDGE_GEOM )
+  {
+    if ( edge->geom ) {
+      hexewkb = lwgeom_to_hexwkb(lwline_as_lwgeom(edge->geom),
+                                  WKB_EXTENDED, &hexewkb_size);
+      appendStringInfo(str, "%s'%s'::geometry", sep, hexewkb);
+      lwfree(hexewkb);
+    } else {
+      appendStringInfo(str, "%snull", sep);
+    }
+  }
+  appendStringInfoChar(str, ')');
+}
+
+enum UpdateType {
+  updSet,
+  updSel,
+  updNot
+};
+
+static void
+addEdgeUpdate(StringInfo str, const LWT_ISO_EDGE* edge, int fields,
+              int fullEdgeData, enum UpdateType updType)
+{
+  const char *sep = "";
+  const char *sep1;
+  const char *op;
+  size_t hexewkb_size;
+  char *hexewkb;
+
+  switch (updType)
+  {
+    case updSet:
+      op = "=";
+      sep1 = ",";
+      break;
+    case updSel:
+      op = "=";
+      sep1 = " AND ";
+      break;
+    case updNot:
+    default:
+      op = "!=";
+      sep1 = " AND ";
+      break;
+  }
+
+  if ( fields & LWT_COL_EDGE_EDGE_ID ) {
+    appendStringInfoString(str, "edge_id ");
+    appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, edge->edge_id);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_START_NODE ) {
+    appendStringInfo(str, "%sstart_node ", sep);
+    appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, edge->start_node);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_END_NODE ) {
+    appendStringInfo(str, "%send_node", sep);
+    appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, edge->end_node);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_FACE_LEFT ) {
+    appendStringInfo(str, "%sleft_face", sep);
+    appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, edge->face_left);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_FACE_RIGHT ) {
+    appendStringInfo(str, "%sright_face", sep);
+    appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, edge->face_right);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_NEXT_LEFT ) {
+    appendStringInfo(str, "%snext_left_edge", sep);
+    appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, edge->next_left);
+    sep = sep1;
+    if ( fullEdgeData ) {
+      appendStringInfo(str, "%s abs_next_left_edge", sep);
+      appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, ABS(edge->next_left));
+    }
+  }
+  if ( fields & LWT_COL_EDGE_NEXT_RIGHT ) {
+    appendStringInfo(str, "%snext_right_edge", sep);
+    appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, edge->next_right);
+    sep = sep1;
+    if ( fullEdgeData ) {
+      appendStringInfo(str, "%s abs_next_right_edge", sep);
+      appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, ABS(edge->next_right));
+    }
+  }
+  if ( fields & LWT_COL_EDGE_GEOM ) {
+    appendStringInfo(str, "%sgeom", sep);
+    hexewkb = lwgeom_to_hexwkb(lwline_as_lwgeom(edge->geom),
+                                WKB_EXTENDED, &hexewkb_size);
+    appendStringInfo(str, "%s'%s'::geometry", op, hexewkb);
+    lwfree(hexewkb);
+  }
+}
+
+static void
+addNodeUpdate(StringInfo str, const LWT_ISO_NODE* node, int fields,
+              int fullNodeData, enum UpdateType updType)
+{
+  const char *sep = "";
+  const char *sep1;
+  const char *op;
+  size_t hexewkb_size;
+  char *hexewkb;
+
+  switch (updType)
+  {
+    case updSet:
+      op = "=";
+      sep1 = ",";
+      break;
+    case updSel:
+      op = "=";
+      sep1 = " AND ";
+      break;
+    case updNot:
+    default:
+      op = "!=";
+      sep1 = " AND ";
+      break;
+  }
+
+  if ( fields & LWT_COL_NODE_NODE_ID ) {
+    appendStringInfoString(str, "node_id ");
+    appendStringInfo(str, "%s %" LWTFMT_ELEMID, op, node->node_id);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_NODE_CONTAINING_FACE ) {
+    appendStringInfo(str, "%scontaining_face %s", sep, op);
+    if ( node->containing_face != -1 ) {
+      appendStringInfo(str, "%" LWTFMT_ELEMID, node->containing_face);
+    } else {
+      appendStringInfoString(str, "null::int");
+    }
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_NODE_GEOM ) {
+    appendStringInfo(str, "%sgeom", sep);
+    hexewkb = lwgeom_to_hexwkb(lwpoint_as_lwgeom(node->geom),
+                                WKB_EXTENDED, &hexewkb_size);
+    appendStringInfo(str, "%s'%s'::geometry", op, hexewkb);
+    lwfree(hexewkb);
+  }
+}
+
+static void
+addNodeFields(StringInfo str, int fields)
+{
+  const char *sep = "";
+
+  if ( fields & LWT_COL_NODE_NODE_ID ) {
+    appendStringInfoString(str, "node_id");
+    sep = ",";
+  }
+  if ( fields & LWT_COL_NODE_CONTAINING_FACE ) {
+    appendStringInfo(str, "%scontaining_face", sep);
+    sep = ",";
+  }
+  if ( fields & LWT_COL_NODE_GEOM ) {
+    appendStringInfo(str, "%sgeom", sep);
+  }
+}
+
+static void
+addFaceFields(StringInfo str, int fields)
+{
+  const char *sep = "";
+
+  if ( fields & LWT_COL_FACE_FACE_ID ) {
+    appendStringInfoString(str, "face_id");
+    sep = ",";
+  }
+  if ( fields & LWT_COL_FACE_MBR ) {
+    appendStringInfo(str, "%smbr", sep);
+    sep = ",";
+  }
+}
+
+/* Add node values for an insert, in text form */
+static void
+addNodeValues(StringInfo str, const LWT_ISO_NODE *node, int fields)
+{
+  size_t hexewkb_size;
+  char *hexewkb;
+  const char *sep = "";
+
+  appendStringInfoChar(str, '(');
+
+  if ( fields & LWT_COL_NODE_NODE_ID ) {
+    if ( node->node_id != -1 )
+      appendStringInfo(str, "%" LWTFMT_ELEMID, node->node_id);
+    else
+      appendStringInfoString(str, "DEFAULT");
+    sep = ",";
+  }
+
+  if ( fields & LWT_COL_NODE_CONTAINING_FACE ) {
+    if ( node->containing_face != -1 )
+      appendStringInfo(str, "%s%" LWTFMT_ELEMID, sep, node->containing_face);
+    else appendStringInfo(str, "%snull::int", sep);
+  }
+
+  if ( fields & LWT_COL_NODE_GEOM ) {
+    if ( node->geom ) {
+      hexewkb = lwgeom_to_hexwkb(lwpoint_as_lwgeom(node->geom),
+                                  WKB_EXTENDED, &hexewkb_size);
+      appendStringInfo(str, "%s'%s'::geometry", sep, hexewkb);
+      lwfree(hexewkb);
+    } else {
+      appendStringInfo(str, "%snull::geometry", sep);
+    }
+  }
+
+  appendStringInfoChar(str, ')');
+}
+
+/* Add face values for an insert, in text form */
+static void
+addFaceValues(StringInfo str, LWT_ISO_FACE *face, int srid)
+{
+  if ( face->face_id != -1 )
+    appendStringInfo(str, "(%" LWTFMT_ELEMID, face->face_id);
+  else
+    appendStringInfoString(str, "(DEFAULT");
+
+  if ( face->mbr ) {{
+    char *hexbox;
+    hexbox = _box2d_to_hexwkb(face->mbr, srid);
+    appendStringInfo(str, ",ST_Envelope('%s'::geometry))", hexbox);
+    lwfree(hexbox);
+  }} else {
+    appendStringInfoString(str, ",null::geometry)");
+  }
+}
+
+static void
+fillEdgeFields(LWT_ISO_EDGE* edge, HeapTuple row, TupleDesc rowdesc, int fields)
+{
+  bool isnull;
+  Datum dat;
+  int val;
+  GSERIALIZED *geom;
+  int colno = 0;
+
+  POSTGIS_DEBUGF(2, "fillEdgeFields: got %d atts and fields %x",
+                    rowdesc->natts, fields);
+
+  if ( fields & LWT_COL_EDGE_EDGE_ID ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( isnull ) {
+      lwpgwarning("Found edge with NULL edge_id");
+      edge->edge_id = -1;
+    }
+    val = DatumGetInt32(dat);
+    POSTGIS_DEBUGF(2, "fillEdgeFields: colno%d (edge_id)"
+                      " has int32 val of %d",
+                      colno, val);
+    edge->edge_id = val;
+
+  }
+  if ( fields & LWT_COL_EDGE_START_NODE ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( isnull ) {
+      lwpgwarning("Found edge with NULL start_node");
+      edge->start_node = -1;
+    }
+    val = DatumGetInt32(dat);
+    edge->start_node = val;
+    POSTGIS_DEBUGF(2, "fillEdgeFields: colno%d (start_node)"
+                      " has int32 val of %d", colno, val);
+  }
+  if ( fields & LWT_COL_EDGE_END_NODE ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( isnull ) {
+      lwpgwarning("Found edge with NULL end_node");
+      edge->start_node = -1;
+    }
+    val = DatumGetInt32(dat);
+    edge->end_node = val;
+    POSTGIS_DEBUGF(2, "fillEdgeFields: colno%d (end_node)"
+                      " has int32 val of %d", colno, val);
+  }
+  if ( fields & LWT_COL_EDGE_FACE_LEFT ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( isnull ) {
+      lwpgwarning("Found edge with NULL face_left");
+      edge->start_node = -1;
+    }
+    val = DatumGetInt32(dat);
+    edge->face_left = val;
+    POSTGIS_DEBUGF(2, "fillEdgeFields: colno%d (face_left)"
+                      " has int32 val of %d", colno, val);
+  }
+#if POSTGIS_DEBUG_LEVEL > 1
+  else {
+    edge->face_left = 6767; /* debugging */
+  }
+#endif
+  if ( fields & LWT_COL_EDGE_FACE_RIGHT ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( isnull ) {
+      lwpgwarning("Found edge with NULL face_right");
+      edge->start_node = -1;
+    }
+    val = DatumGetInt32(dat);
+    edge->face_right = val;
+    POSTGIS_DEBUGF(2, "fillEdgeFields: colno%d (face_right)"
+                      " has int32 val of %d", colno, val);
+  }
+#if POSTGIS_DEBUG_LEVEL > 1
+  else {
+    edge->face_right = 6767; /* debugging */
+  }
+#endif
+  if ( fields & LWT_COL_EDGE_NEXT_LEFT ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( isnull ) {
+      lwpgwarning("Found edge with NULL next_left");
+      edge->start_node = -1;
+    }
+    val = DatumGetInt32(dat);
+    edge->next_left = val;
+    POSTGIS_DEBUGF(2, "fillEdgeFields: colno%d (next_left)"
+                      " has int32 val of %d", colno, val);
+  }
+  if ( fields & LWT_COL_EDGE_NEXT_RIGHT ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( isnull ) {
+      lwpgwarning("Found edge with NULL next_right");
+      edge->start_node = -1;
+    }
+    val = DatumGetInt32(dat);
+    edge->next_right = val;
+    POSTGIS_DEBUGF(2, "fillEdgeFields: colno%d (next_right)"
+                      " has int32 val of %d", colno, val);
+  }
+  if ( fields & LWT_COL_EDGE_GEOM ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( ! isnull ) {
+      geom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(dat);
+      edge->geom = lwgeom_as_lwline(lwgeom_from_gserialized(geom));
+    } else {
+      lwpgwarning("Found edge with NULL geometry !");
+      edge->geom = NULL;
+    }
+  }
+#if POSTGIS_DEBUG_LEVEL > 1
+  else {
+    edge->geom = (void*)0x67676767; /* debugging */
+  }
+#endif
+}
+
+static void
+fillNodeFields(LWT_ISO_NODE* node, HeapTuple row, TupleDesc rowdesc, int fields)
+{
+  bool isnull;
+  Datum dat;
+  GSERIALIZED *geom;
+  int colno = 0;
+
+  if ( fields & LWT_COL_NODE_NODE_ID ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    node->node_id = DatumGetInt32(dat);
+  }
+  if ( fields & LWT_COL_NODE_CONTAINING_FACE ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( isnull ) node->containing_face = -1;
+    else node->containing_face = DatumGetInt32(dat);
+  }
+  if ( fields & LWT_COL_NODE_GEOM ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( ! isnull ) {
+      geom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(dat);
+      node->geom = lwgeom_as_lwpoint(lwgeom_from_gserialized(geom));
+    } else {
+      lwpgnotice("Found node with NULL geometry !");
+      node->geom = NULL;
+    }
+  }
+#if POSTGIS_DEBUG_LEVEL > 1
+  else {
+    node->geom = (void*)0x67676767; /* debugging */
+  }
+#endif
+}
+
+static void
+fillFaceFields(LWT_ISO_FACE* face, HeapTuple row, TupleDesc rowdesc, int fields)
+{
+  bool isnull;
+  Datum dat;
+  GSERIALIZED *geom;
+  LWGEOM *g;
+  const GBOX *box;
+  int colno = 0;
+
+  if ( fields & LWT_COL_FACE_FACE_ID ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    face->face_id = DatumGetInt32(dat);
+  }
+  if ( fields & LWT_COL_FACE_MBR ) {
+    dat = SPI_getbinval(row, rowdesc, ++colno, &isnull);
+    if ( ! isnull ) {
+      /* NOTE: this is a geometry of which we want to take (and clone) the BBOX */
+      geom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(dat);
+      g = lwgeom_from_gserialized(geom);
+      box = lwgeom_get_bbox(g);
+      if ( box ) {
+        face->mbr = gbox_clone(box);
+      } else {
+        lwpgnotice("Found face with EMPTY MBR !");
+        face->mbr = NULL;
+      }
+    } else {
+      /* NOTE: perfectly fine for universe face */
+      POSTGIS_DEBUG(1, "Found face with NULL MBR");
+      face->mbr = NULL;
+    }
+  }
+#if POSTGIS_DEBUG_LEVEL > 1
+  else {
+    face->mbr = (void*)0x67676767; /* debugging */
+  }
+#endif
+}
+
+/* return 0 on failure (null) 1 otherwise */
+static int
+getNotNullInt32( HeapTuple row, TupleDesc desc, int col, int32 *val )
+{
+  bool isnull;
+  Datum dat = SPI_getbinval( row, desc, col, &isnull );
+  if ( isnull ) return 0;
+  *val = DatumGetInt32(dat);
+  return 1;
+}
+
+/* ----------------- Callbacks start here ------------------------ */
+
+static LWT_ISO_EDGE*
+cb_getEdgeById(const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields)
+{
+  LWT_ISO_EDGE *edges;
+	int spi_result;
+  MemoryContext oldcontext = CurrentMemoryContext;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+
+  initStringInfo(sql);
+  appendStringInfoString(sql, "SELECT ");
+  addEdgeFields(sql, fields, 0);
+  appendStringInfo(sql, " FROM \"%s\".edge_data", topo->name);
+  appendStringInfoString(sql, " WHERE edge_id IN (");
+  // add all identifiers here
+  for (i=0; i<*numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ")");
+  POSTGIS_DEBUGF(1, "cb_getEdgeById query: %s", sql->data);
+
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, *numelems);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getEdgeById: edge query returned %d rows", SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  edges = palloc( sizeof(LWT_ISO_EDGE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillEdgeFields(&edges[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return edges;
+}
+
+static LWT_ISO_EDGE*
+cb_getEdgeByNode(const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields)
+{
+  LWT_ISO_EDGE *edges;
+	int spi_result;
+
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+  MemoryContext oldcontext = CurrentMemoryContext;
+
+  initStringInfo(sql);
+  appendStringInfoString(sql, "SELECT ");
+  addEdgeFields(sql, fields, 0);
+  appendStringInfo(sql, " FROM \"%s\".edge_data", topo->name);
+  appendStringInfoString(sql, " WHERE start_node IN (");
+  // add all identifiers here
+  for (i=0; i<*numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ") OR end_node IN (");
+  // add all identifiers here
+  for (i=0; i<*numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ")");
+
+  POSTGIS_DEBUGF(1, "cb_getEdgeByNode query: %s", sql->data);
+  POSTGIS_DEBUGF(1, "data_changed is %d", topo->be_data->data_changed);
+
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getEdgeByNode: edge query returned %d rows", SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  edges = palloc( sizeof(LWT_ISO_EDGE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillEdgeFields(&edges[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return edges;
+}
+
+static LWT_ISO_EDGE*
+cb_getEdgeByFace(const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields)
+{
+  LWT_ISO_EDGE *edges;
+	int spi_result;
+  MemoryContext oldcontext = CurrentMemoryContext;
+
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+
+  initStringInfo(sql);
+  appendStringInfoString(sql, "SELECT ");
+  addEdgeFields(sql, fields, 0);
+  appendStringInfo(sql, " FROM \"%s\".edge_data", topo->name);
+  appendStringInfoString(sql, " WHERE left_face IN (");
+  // add all identifiers here
+  for (i=0; i<*numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ") OR right_face IN (");
+  // add all identifiers here
+  for (i=0; i<*numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ")");
+
+  POSTGIS_DEBUGF(1, "cb_getEdgeByFace query: %s", sql->data);
+  POSTGIS_DEBUGF(1, "data_changed is %d", topo->be_data->data_changed);
+
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getEdgeByFace: edge query returned %d rows", SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  edges = palloc( sizeof(LWT_ISO_EDGE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillEdgeFields(&edges[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return edges;
+}
+
+static LWT_ISO_FACE*
+cb_getFacesById(const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields)
+{
+  LWT_ISO_FACE *faces;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+  MemoryContext oldcontext = CurrentMemoryContext;
+
+  initStringInfo(sql);
+  appendStringInfoString(sql, "SELECT ");
+  addFaceFields(sql, fields);
+  appendStringInfo(sql, " FROM \"%s\".face", topo->name);
+  appendStringInfoString(sql, " WHERE face_id IN (");
+  // add all identifiers here
+  for (i=0; i<*numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ")");
+
+  POSTGIS_DEBUGF(1, "cb_getFaceById query: %s", sql->data);
+  POSTGIS_DEBUGF(1, "data_changed is %d", topo->be_data->data_changed);
+
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getFaceById: face query returned %d rows", SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  faces = palloc( sizeof(LWT_ISO_EDGE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillFaceFields(&faces[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return faces;
+}
+
+static LWT_ELEMID*
+cb_getRingEdges(const LWT_BE_TOPOLOGY* topo,
+      LWT_ELEMID edge, int* numelems, int limit)
+{
+  LWT_ELEMID *edges;
+	int spi_result;
+  TupleDesc rowdesc;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+  MemoryContext oldcontext = CurrentMemoryContext;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "WITH RECURSIVE edgering AS ( "
+    "SELECT %" LWTFMT_ELEMID
+    " as signed_edge_id, edge_id, next_left_edge, next_right_edge "
+    "FROM \"%s\".edge_data WHERE edge_id = %" LWTFMT_ELEMID " UNION "
+    "SELECT CASE WHEN "
+    "p.signed_edge_id < 0 THEN p.next_right_edge ELSE p.next_left_edge END, "
+    "e.edge_id, e.next_left_edge, e.next_right_edge "
+    "FROM \"%s\".edge_data e, edgering p WHERE "
+    "e.edge_id = CASE WHEN p.signed_edge_id < 0 THEN "
+    "abs(p.next_right_edge) ELSE abs(p.next_left_edge) END ) "
+    "SELECT * FROM edgering",
+    edge, topo->name, ABS(edge), topo->name);
+  if ( limit ) {
+    ++limit; /* so we know if we hit it */
+    appendStringInfo(sql, " LIMIT %d", limit);
+  }
+
+  POSTGIS_DEBUGF(1, "cb_getRingEdges query (limit %d): %s", limit, sql->data);
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, limit);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getRingEdges: edge query returned %d rows", SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+  if ( limit && SPI_processed == limit )
+  {
+    cberror(topo->be_data, "Max traversing limit hit: %d", limit-1);
+	  *numelems = -1; return NULL;
+  }
+
+  edges = palloc( sizeof(LWT_ELEMID) * SPI_processed );
+  rowdesc = SPI_tuptable->tupdesc;
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    bool isnull;
+    Datum dat;
+    int32 val;
+    dat = SPI_getbinval(row, rowdesc, 1, &isnull);
+    if ( isnull ) {
+      lwfree(edges);
+      cberror(topo->be_data, "Found edge with NULL edge_id");
+      *numelems = -1; return NULL;
+    }
+    val = DatumGetInt32(dat);
+    edges[i] = val;
+    POSTGIS_DEBUGF(1, "Component %d in ring of edge %" LWTFMT_ELEMID
+                      " is edge %d", i, edge, val);
+  }
+
+  return edges;
+}
+
+static LWT_ISO_NODE*
+cb_getNodeById(const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields)
+{
+  LWT_ISO_NODE *nodes;
+	int spi_result;
+
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+  MemoryContext oldcontext = CurrentMemoryContext;
+
+  initStringInfo(sql);
+  appendStringInfoString(sql, "SELECT ");
+  addNodeFields(sql, fields);
+  appendStringInfo(sql, " FROM \"%s\".node", topo->name);
+  appendStringInfoString(sql, " WHERE node_id IN (");
+  // add all identifiers here
+  for (i=0; i<*numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ")");
+  POSTGIS_DEBUGF(1, "cb_getNodeById query: %s", sql->data);
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, *numelems);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getNodeById: edge query returned %d rows", SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  nodes = palloc( sizeof(LWT_ISO_NODE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillNodeFields(&nodes[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return nodes;
+}
+
+static LWT_ISO_NODE*
+cb_getNodeByFace(const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int* numelems, int fields)
+{
+  LWT_ISO_NODE *nodes;
+	int spi_result;
+  MemoryContext oldcontext = CurrentMemoryContext;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+
+  initStringInfo(sql);
+  appendStringInfoString(sql, "SELECT ");
+  addNodeFields(sql, fields);
+  appendStringInfo(sql, " FROM \"%s\".node", topo->name);
+  appendStringInfoString(sql, " WHERE containing_face IN (");
+  // add all identifiers here
+  for (i=0; i<*numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ")");
+  POSTGIS_DEBUGF(1, "cb_getNodeByFace query: %s", sql->data);
+  POSTGIS_DEBUGF(1, "data_changed is %d", topo->be_data->data_changed);
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getNodeByFace: edge query returned %d rows", SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  nodes = palloc( sizeof(LWT_ISO_NODE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillNodeFields(&nodes[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return nodes;
+}
+
+static LWT_ISO_EDGE*
+cb_getEdgeWithinDistance2D(const LWT_BE_TOPOLOGY* topo,
+      const LWPOINT* pt, double dist, int* numelems,
+      int fields, int limit)
+{
+  LWT_ISO_EDGE *edges;
+	int spi_result;
+  int elems_requested = limit;
+  size_t hexewkb_size;
+  char *hexewkb;
+  MemoryContext oldcontext = CurrentMemoryContext;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+
+  initStringInfo(sql);
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, "SELECT EXISTS ( SELECT 1");
+  } else {
+    appendStringInfoString(sql, "SELECT ");
+    addEdgeFields(sql, fields, 0);
+  }
+  appendStringInfo(sql, " FROM \"%s\".edge_data", topo->name);
+  // TODO: use binary cursor here ?
+  hexewkb = lwgeom_to_hexwkb(lwpoint_as_lwgeom(pt), WKB_EXTENDED, &hexewkb_size);
+  if ( dist ) {
+    appendStringInfo(sql, " WHERE ST_DWithin('%s'::geometry, geom, %g)", hexewkb, dist);
+  } else {
+    appendStringInfo(sql, " WHERE ST_Within('%s'::geometry, geom)", hexewkb);
+  }
+  lwfree(hexewkb);
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, ")");
+  } else if ( elems_requested > 0 ) {
+    appendStringInfo(sql, " LIMIT %d", elems_requested);
+  }
+  POSTGIS_DEBUGF(1, "cb_getEdgeWithinDistance2D: query is: %s", sql->data);
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, limit >= 0 ? limit : 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getEdgeWithinDistance2D: edge query "
+             "(limited by %d) returned %d rows",
+             elems_requested, SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  if ( elems_requested == -1 )
+  {
+    /* This was an EXISTS query */
+    {
+      Datum dat;
+      bool isnull, exists;
+      dat = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull);
+      exists = DatumGetBool(dat);
+      *numelems = exists ? 1 : 0;
+      POSTGIS_DEBUGF(1, "cb_getEdgeWithinDistance2D: exists ? %d", *numelems);
+    }
+    return NULL;
+  }
+
+  edges = palloc( sizeof(LWT_ISO_EDGE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillEdgeFields(&edges[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return edges;
+}
+
+static LWT_ISO_NODE*
+cb_getNodeWithinDistance2D(const LWT_BE_TOPOLOGY* topo,
+      const LWPOINT* pt, double dist, int* numelems,
+      int fields, int limit)
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+  LWT_ISO_NODE *nodes;
+	int spi_result;
+  size_t hexewkb_size;
+  char *hexewkb;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int elems_requested = limit;
+  int i;
+
+  initStringInfo(sql);
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, "SELECT EXISTS ( SELECT 1");
+  } else {
+    appendStringInfoString(sql, "SELECT ");
+    if ( fields ) addNodeFields(sql, fields);
+    else {
+      lwpgwarning("liblwgeom-topo invoked 'getNodeWithinDistance2D' "
+                  "backend callback with limit=%d and no fields",
+                  elems_requested);
+      appendStringInfo(sql, "*");
+    }
+  }
+  appendStringInfo(sql, " FROM \"%s\".node", topo->name);
+  // TODO: use binary cursor here ?
+  hexewkb = lwgeom_to_hexwkb(lwpoint_as_lwgeom(pt), WKB_EXTENDED, &hexewkb_size);
+  if ( dist ) {
+    appendStringInfo(sql, " WHERE ST_DWithin(geom, '%s'::geometry, %g)",
+                     hexewkb, dist);
+  } else {
+    appendStringInfo(sql, " WHERE ST_Equals(geom, '%s'::geometry)", hexewkb);
+  }
+  lwfree(hexewkb);
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, ")");
+  } else if ( elems_requested > 0 ) {
+    appendStringInfo(sql, " LIMIT %d", elems_requested);
+  }
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, limit >= 0 ? limit : 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getNodeWithinDistance2D: node query "
+             "(limited by %d) returned %d rows",
+             elems_requested, SPI_processed);
+  if ( ! SPI_processed ) {
+    *numelems = 0; return NULL;
+  }
+
+  if ( elems_requested == -1 )
+  {
+    /* This was an EXISTS query */
+    {
+      Datum dat;
+      bool isnull, exists;
+      dat = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull);
+      exists = DatumGetBool(dat);
+      *numelems = exists ? 1 : 0;
+    }
+    return NULL;
+  }
+  else
+  {
+    nodes = palloc( sizeof(LWT_ISO_EDGE) * SPI_processed );
+    for ( i=0; i<SPI_processed; ++i )
+    {
+      HeapTuple row = SPI_tuptable->vals[i];
+      fillNodeFields(&nodes[i], row, SPI_tuptable->tupdesc, fields);
+    }
+    *numelems = SPI_processed;
+    return nodes;
+  }
+}
+
+static int
+cb_insertNodes( const LWT_BE_TOPOLOGY* topo,
+      LWT_ISO_NODE* nodes, int numelems )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "INSERT INTO \"%s\".node (", topo->name);
+  addNodeFields(sql, LWT_COL_NODE_ALL);
+  appendStringInfoString(sql, ") VALUES ");
+  for ( i=0; i<numelems; ++i ) {
+    if ( i ) appendStringInfoString(sql, ",");
+    // TODO: prepare and execute ?
+    addNodeValues(sql, &nodes[i], LWT_COL_NODE_ALL);
+  }
+  appendStringInfoString(sql, " RETURNING node_id");
+
+  POSTGIS_DEBUGF(1, "cb_insertNodes query: %s", sql->data);
+
+  spi_result = SPI_execute(sql->data, false, numelems);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_INSERT_RETURNING ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return 0;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  if ( SPI_processed != numelems ) {
+		cberror(topo->be_data, "processed %d rows, expected %d",
+            SPI_processed, numelems);
+	  return 0;
+  }
+
+  /* Set node_id (could skip this if none had it set to -1) */
+  /* TODO: check for -1 values in the first loop */
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    if ( nodes[i].node_id != -1 ) continue;
+    fillNodeFields(&nodes[i], SPI_tuptable->vals[i],
+      SPI_tuptable->tupdesc, LWT_COL_NODE_NODE_ID);
+  }
+
+  return 1;
+}
+
+static int
+cb_insertEdges( const LWT_BE_TOPOLOGY* topo,
+      LWT_ISO_EDGE* edges, int numelems )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+  int needsEdgeIdReturn = 0;
+
+  initStringInfo(sql);
+  /* NOTE: we insert into "edge", on which an insert rule is defined */
+  appendStringInfo(sql, "INSERT INTO \"%s\".edge_data (", topo->name);
+  addEdgeFields(sql, LWT_COL_EDGE_ALL, 1);
+  appendStringInfoString(sql, ") VALUES ");
+  for ( i=0; i<numelems; ++i ) {
+    if ( i ) appendStringInfoString(sql, ",");
+    // TODO: prepare and execute ?
+    addEdgeValues(sql, &edges[i], LWT_COL_EDGE_ALL, 1);
+    if ( edges[i].edge_id == -1 ) needsEdgeIdReturn = 1;
+  }
+  if ( needsEdgeIdReturn ) appendStringInfoString(sql, " RETURNING edge_id");
+
+  POSTGIS_DEBUGF(1, "cb_insertEdges query (%d elems): %s", numelems, sql->data);
+  spi_result = SPI_execute(sql->data, false, numelems);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != ( needsEdgeIdReturn ? SPI_OK_INSERT_RETURNING : SPI_OK_INSERT ) )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+  POSTGIS_DEBUGF(1, "cb_insertEdges query processed %d rows", SPI_processed);
+  if ( SPI_processed != numelems ) {
+		cberror(topo->be_data, "processed %d rows, expected %d",
+            SPI_processed, numelems);
+	  return -1;
+  }
+
+  if ( needsEdgeIdReturn )
+  {
+    /* Set node_id for items that need it */
+    for ( i=0; i<SPI_processed; ++i )
+    {
+      if ( edges[i].edge_id != -1 ) continue;
+      fillEdgeFields(&edges[i], SPI_tuptable->vals[i],
+        SPI_tuptable->tupdesc, LWT_COL_EDGE_EDGE_ID);
+    }
+  }
+
+  return SPI_processed;
+}
+
+static int
+cb_insertFaces( const LWT_BE_TOPOLOGY* topo,
+      LWT_ISO_FACE* faces, int numelems )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+  int needsFaceIdReturn = 0;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "INSERT INTO \"%s\".face (", topo->name);
+  addFaceFields(sql, LWT_COL_FACE_ALL);
+  appendStringInfoString(sql, ") VALUES ");
+  for ( i=0; i<numelems; ++i ) {
+    if ( i ) appendStringInfoString(sql, ",");
+    // TODO: prepare and execute ?
+    addFaceValues(sql, &faces[i], topo->srid);
+    if ( faces[i].face_id == -1 ) needsFaceIdReturn = 1;
+  }
+  if ( needsFaceIdReturn ) appendStringInfoString(sql, " RETURNING face_id");
+
+  POSTGIS_DEBUGF(1, "cb_insertFaces query (%d elems): %s", numelems, sql->data);
+  spi_result = SPI_execute(sql->data, false, numelems);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != ( needsFaceIdReturn ? SPI_OK_INSERT_RETURNING : SPI_OK_INSERT ) )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+  POSTGIS_DEBUGF(1, "cb_insertFaces query processed %d rows", SPI_processed);
+  if ( SPI_processed != numelems ) {
+		cberror(topo->be_data, "processed %d rows, expected %d",
+            SPI_processed, numelems);
+	  return -1;
+  }
+
+  if ( needsFaceIdReturn )
+  {
+    /* Set node_id for items that need it */
+    for ( i=0; i<SPI_processed; ++i )
+    {
+      if ( faces[i].face_id != -1 ) continue;
+      fillFaceFields(&faces[i], SPI_tuptable->vals[i],
+        SPI_tuptable->tupdesc, LWT_COL_FACE_FACE_ID);
+    }
+  }
+
+  return SPI_processed;
+}
+
+static int
+cb_updateEdges( const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_EDGE* sel_edge, int sel_fields,
+      const LWT_ISO_EDGE* upd_edge, int upd_fields,
+      const LWT_ISO_EDGE* exc_edge, int exc_fields )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "UPDATE \"%s\".edge_data SET ", topo->name);
+  addEdgeUpdate( sql, upd_edge, upd_fields, 1, updSet );
+  if ( exc_edge || sel_edge ) appendStringInfoString(sql, " WHERE ");
+  if ( sel_edge ) {
+    addEdgeUpdate( sql, sel_edge, sel_fields, 1, updSel );
+    if ( exc_edge ) appendStringInfoString(sql, " AND ");
+  }
+  if ( exc_edge ) {
+    addEdgeUpdate( sql, exc_edge, exc_fields, 1, updNot );
+  }
+
+  POSTGIS_DEBUGF(1, "cb_updateEdges query: %s", sql->data);
+
+  spi_result = SPI_execute( sql->data, false, 0 );
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_UPDATE )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  POSTGIS_DEBUGF(1, "cb_updateEdges: update query processed %d rows", SPI_processed);
+
+  return SPI_processed;
+}
+
+static int
+cb_updateNodes( const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_NODE* sel_node, int sel_fields,
+      const LWT_ISO_NODE* upd_node, int upd_fields,
+      const LWT_ISO_NODE* exc_node, int exc_fields )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "UPDATE \"%s\".node SET ", topo->name);
+  addNodeUpdate( sql, upd_node, upd_fields, 1, updSet );
+  if ( exc_node || sel_node ) appendStringInfoString(sql, " WHERE ");
+  if ( sel_node ) {
+    addNodeUpdate( sql, sel_node, sel_fields, 1, updSel );
+    if ( exc_node ) appendStringInfoString(sql, " AND ");
+  }
+  if ( exc_node ) {
+    addNodeUpdate( sql, exc_node, exc_fields, 1, updNot );
+  }
+
+  POSTGIS_DEBUGF(1, "cb_updateNodes: %s", sql->data);
+
+  spi_result = SPI_execute( sql->data, false, 0 );
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_UPDATE )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  POSTGIS_DEBUGF(1, "cb_updateNodes: update query processed %d rows", SPI_processed);
+
+  return SPI_processed;
+}
+
+static int
+cb_updateNodesById( const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_NODE* nodes, int numnodes, int fields )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+  int i;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  const char *sep = "";
+  const char *sep1 = ",";
+
+  if ( ! fields ) {
+		cberror(topo->be_data,
+            "updateNodesById callback called with no update fields!");
+	  return -1;
+  }
+
+  POSTGIS_DEBUGF(1, "cb_updateNodesById got %d nodes to update"
+                    " (fields:%d)",
+                    numnodes, fields);
+
+  initStringInfo(sql);
+  appendStringInfoString(sql, "WITH newnodes(node_id,");
+  addNodeFields(sql, fields);
+  appendStringInfoString(sql, ") AS ( VALUES ");
+  for (i=0; i<numnodes; ++i) {
+    const LWT_ISO_NODE* node = &(nodes[i]);
+    if ( i ) appendStringInfoString(sql, ",");
+    addNodeValues(sql, node, LWT_COL_NODE_NODE_ID|fields);
+  }
+  appendStringInfo(sql, " ) UPDATE \"%s\".node n SET ", topo->name);
+
+  /* TODO: turn the following into a function */
+  if ( fields & LWT_COL_NODE_NODE_ID ) {
+    appendStringInfo(sql, "%snode_id = o.node_id", sep);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_NODE_CONTAINING_FACE ) {
+    appendStringInfo(sql, "%scontaining_face = o.containing_face", sep);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_NODE_GEOM ) {
+    appendStringInfo(sql, "%sgeom = o.geom", sep);
+  }
+
+  appendStringInfo(sql, " FROM newnodes o WHERE n.node_id = o.node_id");
+
+  POSTGIS_DEBUGF(1, "cb_updateNodesById query: %s", sql->data);
+
+  spi_result = SPI_execute( sql->data, false, 0 );
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_UPDATE )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  POSTGIS_DEBUGF(1, "cb_updateNodesById: update query processed %d rows", SPI_processed);
+
+  return SPI_processed;
+}
+
+static int
+cb_updateFacesById( const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_FACE* faces, int numfaces )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+  int i;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+
+  initStringInfo(sql);
+  appendStringInfoString(sql, "WITH newfaces(id,mbr) AS ( VALUES ");
+  for (i=0; i<numfaces; ++i) {
+    const LWT_ISO_FACE* face = &(faces[i]);
+    char *hexbox = _box2d_to_hexwkb(face->mbr, topo->srid);
+
+    if ( i ) appendStringInfoChar(sql, ',');
+
+    appendStringInfo(sql, "(%" LWTFMT_ELEMID
+      ", ST_Envelope('%s'::geometry))",
+      face->face_id, hexbox);
+    lwfree(hexbox);
+  }
+  appendStringInfo(sql, ") UPDATE \"%s\".face o SET mbr = i.mbr "
+                        "FROM newfaces i WHERE o.face_id = i.id",
+                        topo->name);
+
+  POSTGIS_DEBUGF(1, "cb_updateFacesById query: %s", sql->data);
+
+  spi_result = SPI_execute( sql->data, false, 0 );
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_UPDATE )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  POSTGIS_DEBUGF(1, "cb_updateFacesById: update query processed %d rows", SPI_processed);
+
+  return SPI_processed;
+}
+
+static int
+cb_updateEdgesById( const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_EDGE* edges, int numedges, int fields )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+  int i;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  const char *sep = "";
+  const char *sep1 = ",";
+
+  if ( ! fields ) {
+		cberror(topo->be_data,
+            "updateEdgesById callback called with no update fields!");
+	  return -1;
+  }
+
+  initStringInfo(sql);
+  appendStringInfoString(sql, "WITH newedges(edge_id,");
+  addEdgeFields(sql, fields, 0);
+  appendStringInfoString(sql, ") AS ( VALUES ");
+  for (i=0; i<numedges; ++i) {
+    const LWT_ISO_EDGE* edge = &(edges[i]);
+    if ( i ) appendStringInfoString(sql, ",");
+    addEdgeValues(sql, edge, fields|LWT_COL_EDGE_EDGE_ID, 0);
+  }
+  appendStringInfo(sql, ") UPDATE \"%s\".edge_data e SET ", topo->name);
+
+  /* TODO: turn the following into a function */
+  if ( fields & LWT_COL_EDGE_START_NODE ) {
+    appendStringInfo(sql, "%sstart_node = o.start_node", sep);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_END_NODE ) {
+    appendStringInfo(sql, "%send_node = o.end_node", sep);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_FACE_LEFT ) {
+    appendStringInfo(sql, "%sleft_face = o.left_face", sep);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_FACE_RIGHT ) {
+    appendStringInfo(sql, "%sright_face = o.right_face", sep);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_NEXT_LEFT ) {
+    appendStringInfo(sql,
+      "%snext_left_edge = o.next_left_edge, "
+      "abs_next_left_edge = abs(o.next_left_edge)", sep);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_NEXT_RIGHT ) {
+    appendStringInfo(sql,
+      "%snext_right_edge = o.next_right_edge, "
+      "abs_next_right_edge = abs(o.next_right_edge)", sep);
+    sep = sep1;
+  }
+  if ( fields & LWT_COL_EDGE_GEOM ) {
+    appendStringInfo(sql, "%sgeom = o.geom", sep);
+  }
+
+  appendStringInfo(sql, " FROM newedges o WHERE e.edge_id = o.edge_id");
+
+  POSTGIS_DEBUGF(1, "cb_updateEdgesById query: %s", sql->data);
+
+  spi_result = SPI_execute( sql->data, false, 0 );
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_UPDATE )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  POSTGIS_DEBUGF(1, "cb_updateEdgesById: update query processed %d rows", SPI_processed);
+
+  return SPI_processed;
+}
+
+static int
+cb_deleteEdges( const LWT_BE_TOPOLOGY* topo,
+      const LWT_ISO_EDGE* sel_edge, int sel_fields )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "DELETE FROM \"%s\".edge_data WHERE ", topo->name);
+  addEdgeUpdate( sql, sel_edge, sel_fields, 0, updSel );
+
+  POSTGIS_DEBUGF(1, "cb_deleteEdges: %s", sql->data);
+
+  spi_result = SPI_execute( sql->data, false, 0 );
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_DELETE )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  POSTGIS_DEBUGF(1, "cb_deleteEdges: delete query processed %d rows", SPI_processed);
+
+  return SPI_processed;
+}
+
+static LWT_ELEMID
+cb_getNextEdgeId( const LWT_BE_TOPOLOGY* topo )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  bool isnull;
+  Datum dat;
+  LWT_ELEMID edge_id;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "SELECT nextval('\"%s\".edge_data_edge_id_seq')",
+    topo->name);
+  spi_result = SPI_execute(sql->data, false, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  if ( SPI_processed != 1 ) {
+		cberror(topo->be_data, "processed %d rows, expected 1", SPI_processed);
+	  return -1;
+  }
+
+  dat = SPI_getbinval( SPI_tuptable->vals[0],
+                       SPI_tuptable->tupdesc, 1, &isnull );
+  if ( isnull ) {
+		cberror(topo->be_data, "nextval for edge_id returned null");
+	  return -1;
+  }
+  edge_id = DatumGetInt64(dat); /* sequences return 64bit integers */
+  return edge_id;
+}
+
+static int
+cb_updateTopoGeomEdgeSplit ( const LWT_BE_TOPOLOGY* topo,
+  LWT_ELEMID split_edge, LWT_ELEMID new_edge1, LWT_ELEMID new_edge2 )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i, ntopogeoms;
+  const char *proj = "r.element_id, r.topogeo_id, r.layer_id, r.element_type";
+
+  initStringInfo(sql);
+  if ( new_edge2 == -1 ) {
+    appendStringInfo(sql, "SELECT %s", proj);
+  } else {
+    appendStringInfoString(sql, "DELETE");
+  }
+  appendStringInfo( sql, " FROM \"%s\".relation r %s topology.layer l WHERE "
+    "l.topology_id = %d AND l.level = 0 AND l.layer_id = r.layer_id "
+    "AND abs(r.element_id) = %" LWTFMT_ELEMID " AND r.element_type = 2",
+    topo->name, (new_edge2 == -1 ? "," : "USING" ), topo->id, split_edge );
+  if ( new_edge2 != -1 ) {
+    appendStringInfo(sql, " RETURNING %s", proj);
+  }
+
+  POSTGIS_DEBUGF(1, "cb_updateTopoGeomEdgeSplit query: %s", sql->data);
+
+  spi_result = SPI_execute(sql->data, new_edge2 == -1 ? !topo->be_data->data_changed : false, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != ( new_edge2 == -1 ? SPI_OK_SELECT : SPI_OK_DELETE_RETURNING ) ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return 0;
+  }
+
+  if ( spi_result == SPI_OK_DELETE_RETURNING && SPI_processed )
+  {
+    POSTGIS_DEBUGF(1, "cb_updateTopoGeomEdgeSplit: deleted %d faces", SPI_processed);
+    topo->be_data->data_changed = true;
+  }
+
+  ntopogeoms = SPI_processed;
+  for ( i=0; i<ntopogeoms; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    TupleDesc tdesc = SPI_tuptable->tupdesc;
+    int negate;
+    int element_id;
+    int topogeo_id;
+    int layer_id;
+    int element_type;
+
+    if ( ! getNotNullInt32( row, tdesc, 1, &element_id ) ) {
+		  cberror(topo->be_data,
+        "unexpected null element_id in \"%s\".relation",
+        topo->name);
+	    return 0;
+    }
+    negate = ( element_id < 0 );
+
+    if ( ! getNotNullInt32( row, tdesc, 2, &topogeo_id ) ) {
+		  cberror(topo->be_data,
+        "unexpected null topogeo_id in \"%s\".relation",
+        topo->name);
+	    return 0;
+    }
+
+    if ( ! getNotNullInt32( row, tdesc, 3, &layer_id ) ) {
+		  cberror(topo->be_data,
+        "unexpected null layer_id in \"%s\".relation",
+        topo->name);
+	    return 0;
+    }
+
+    if ( ! getNotNullInt32( row, tdesc, 4, &element_type ) ) {
+		  cberror(topo->be_data,
+        "unexpected null element_type in \"%s\".relation",
+        topo->name);
+	    return 0;
+    }
+
+    resetStringInfo(sql);
+    appendStringInfo(sql,
+      "INSERT INTO \"%s\".relation VALUES ("
+      "%d,%d,%" LWTFMT_ELEMID ",%d)", topo->name,
+      topogeo_id, layer_id, negate ? -new_edge1 : new_edge1, element_type);
+    spi_result = SPI_execute(sql->data, false, 0);
+    MemoryContextSwitchTo( oldcontext ); /* switch back */
+    if ( spi_result != SPI_OK_INSERT ) {
+      cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+              spi_result, sql->data);
+      pfree(sqldata.data);
+      return 0;
+    }
+    if ( SPI_processed ) topo->be_data->data_changed = true;
+    if ( new_edge2 != -1 ) {
+      resetStringInfo(sql);
+      appendStringInfo(sql,
+        "INSERT INTO FROM \"%s\".relation VALUES ("
+        "%d,%d,%" LWTFMT_ELEMID ",%d", topo->name,
+        topogeo_id, layer_id, negate ? -new_edge2 : new_edge2, element_type);
+      spi_result = SPI_execute(sql->data, false, 0);
+      MemoryContextSwitchTo( oldcontext ); /* switch back */
+      if ( spi_result != SPI_OK_INSERT ) {
+        cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+                spi_result, sql->data);
+        pfree(sqldata.data);
+        return 0;
+      }
+      if ( SPI_processed ) topo->be_data->data_changed = true;
+    }
+  }
+
+  /* TODO: release string info ! */
+
+  POSTGIS_DEBUGF(1, "cb_updateTopoGeomEdgeSplit: updated %d topogeoms", ntopogeoms);
+
+  return 1;
+}
+
+static int
+cb_updateTopoGeomFaceSplit ( const LWT_BE_TOPOLOGY* topo,
+  LWT_ELEMID split_face, LWT_ELEMID new_face1, LWT_ELEMID new_face2 )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i, ntopogeoms;
+  const char *proj = "r.element_id, r.topogeo_id, r.layer_id, r.element_type";
+
+  POSTGIS_DEBUGF(1, "cb_updateTopoGeomFaceSplit signalled "
+                    "split of face %" LWTFMT_ELEMID " into %"
+                    LWTFMT_ELEMID " and %" LWTFMT_ELEMID,
+                    split_face, new_face1, new_face2);
+
+  initStringInfo(sql);
+  if ( new_face2 == -1 ) {
+    appendStringInfo(sql, "SELECT %s", proj);
+  } else {
+    appendStringInfoString(sql, "DELETE");
+  }
+  appendStringInfo( sql, " FROM \"%s\".relation r %s topology.layer l WHERE "
+    "l.topology_id = %d AND l.level = 0 AND l.layer_id = r.layer_id "
+    "AND abs(r.element_id) = %" LWTFMT_ELEMID " AND r.element_type = 3",
+    topo->name, (new_face2 == -1 ? "," : "USING" ), topo->id, split_face );
+  if ( new_face2 != -1 ) {
+    appendStringInfo(sql, " RETURNING %s", proj);
+  }
+
+  POSTGIS_DEBUGF(1, "cb_updateTopoGeomFaceSplit query: %s", sql->data);
+
+  spi_result = SPI_execute(sql->data, new_face2 == -1 ? !topo->be_data->data_changed : false, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != ( new_face2 == -1 ? SPI_OK_SELECT : SPI_OK_DELETE_RETURNING ) ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return 0;
+  }
+
+  if ( spi_result == SPI_OK_DELETE_RETURNING && SPI_processed )
+  {
+    topo->be_data->data_changed = true;
+  }
+
+  ntopogeoms = SPI_processed;
+  for ( i=0; i<ntopogeoms; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    TupleDesc tdesc = SPI_tuptable->tupdesc;
+    int negate;
+    int element_id;
+    int topogeo_id;
+    int layer_id;
+    int element_type;
+
+    if ( ! getNotNullInt32( row, tdesc, 1, &element_id ) ) {
+		  cberror(topo->be_data,
+        "unexpected null element_id in \"%s\".relation",
+        topo->name);
+	    return 0;
+    }
+    negate = ( element_id < 0 );
+
+    if ( ! getNotNullInt32( row, tdesc, 2, &topogeo_id ) ) {
+		  cberror(topo->be_data,
+        "unexpected null topogeo_id in \"%s\".relation",
+        topo->name);
+	    return 0;
+    }
+
+    if ( ! getNotNullInt32( row, tdesc, 3, &layer_id ) ) {
+		  cberror(topo->be_data,
+        "unexpected null layer_id in \"%s\".relation",
+        topo->name);
+	    return 0;
+    }
+
+    if ( ! getNotNullInt32( row, tdesc, 4, &element_type ) ) {
+		  cberror(topo->be_data,
+        "unexpected null element_type in \"%s\".relation",
+        topo->name);
+	    return 0;
+    }
+
+    resetStringInfo(sql);
+    appendStringInfo(sql,
+      "INSERT INTO \"%s\".relation VALUES ("
+      "%d,%d,%" LWTFMT_ELEMID ",%d)", topo->name,
+      topogeo_id, layer_id, negate ? -new_face1 : new_face1, element_type);
+
+    POSTGIS_DEBUGF(1, "cb_updateTopoGeomFaceSplit query: %s", sql->data);
+
+    spi_result = SPI_execute(sql->data, false, 0);
+    MemoryContextSwitchTo( oldcontext ); /* switch back */
+    if ( spi_result != SPI_OK_INSERT ) {
+      cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+              spi_result, sql->data);
+      pfree(sqldata.data);
+      return 0;
+    }
+    if ( SPI_processed ) topo->be_data->data_changed = true;
+    if ( new_face2 != -1 ) {
+      resetStringInfo(sql);
+      appendStringInfo(sql,
+        "INSERT INTO \"%s\".relation VALUES ("
+        "%d,%d,%" LWTFMT_ELEMID ",%d)", topo->name,
+        topogeo_id, layer_id, negate ? -new_face2 : new_face2, element_type);
+
+      POSTGIS_DEBUGF(1, "cb_updateTopoGeomFaceSplit query: %s", sql->data);
+
+      spi_result = SPI_execute(sql->data, false, 0);
+      MemoryContextSwitchTo( oldcontext ); /* switch back */
+      if ( spi_result != SPI_OK_INSERT ) {
+        cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+                spi_result, sql->data);
+        pfree(sqldata.data);
+        return 0;
+      }
+      if ( SPI_processed ) topo->be_data->data_changed = true;
+    }
+  }
+
+  /* TODO: release string info */
+
+  POSTGIS_DEBUGF(1, "cb_updateTopoGeomFaceSplit: updated %d topogeoms", ntopogeoms);
+
+  return 1;
+}
+
+static int
+cb_checkTopoGeomRemEdge ( const LWT_BE_TOPOLOGY* topo,
+  LWT_ELEMID rem_edge, LWT_ELEMID face_left, LWT_ELEMID face_right )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  const char *tg_id, *layer_id;
+  const char *schema_name, *table_name, *col_name;
+  HeapTuple row;
+  TupleDesc tdesc;
+
+  POSTGIS_DEBUG(1, "cb_checkTopoGeomRemEdge enter ");
+
+  initStringInfo(sql);
+  appendStringInfo( sql, "SELECT r.topogeo_id, r.layer_id, "
+    "l.schema_name, l.table_name, l.feature_column FROM "
+    "topology.layer l INNER JOIN \"%s\".relation r "
+    "ON (l.layer_id = r.layer_id) WHERE l.level = 0 AND "
+    "l.feature_type = 2 AND l.topology_id = %d"
+    " AND abs(r.element_id) = %" LWTFMT_ELEMID,
+    topo->name, topo->id, rem_edge );
+
+  POSTGIS_DEBUGF(1, "cb_checkTopoGeomRemEdge query 1: %s", sql->data);
+
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+    cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+    return 0;
+  }
+
+  if ( SPI_processed )
+  {
+    row = SPI_tuptable->vals[0];
+    tdesc = SPI_tuptable->tupdesc;
+
+    tg_id = SPI_getvalue(row, tdesc, 1);
+    layer_id = SPI_getvalue(row, tdesc, 2);
+    schema_name = SPI_getvalue(row, tdesc, 3);
+    table_name = SPI_getvalue(row, tdesc, 4);
+    col_name = SPI_getvalue(row, tdesc, 5);
+
+    cberror(topo->be_data, "TopoGeom %s in layer %s "
+                           "(%s.%s.%s) cannot be represented "
+                           "dropping edge %" LWTFMT_ELEMID,
+            tg_id, layer_id, schema_name, table_name,
+            col_name, rem_edge);
+    return 0;
+  }
+
+  
+  if ( face_left != face_right )
+  {
+    POSTGIS_DEBUGF(1, "Deletion of edge %" LWTFMT_ELEMID " joins faces %"
+                      LWTFMT_ELEMID " and %" LWTFMT_ELEMID,
+                      rem_edge, face_left, face_right);
+    /*
+      check if any topo_geom is defined only by one of the
+      joined faces. In such case there would be no way to adapt
+      the definition in case of healing, so we'd have to bail out
+    */
+    initStringInfo(sql);
+    appendStringInfo( sql, "SELECT t.* FROM ( SELECT r.topogeo_id, "
+      "r.layer_id, l.schema_name, l.table_name, l.feature_column, "
+      "array_agg(r.element_id) as elems FROM topology.layer l "
+      " INNER JOIN \"%s\".relation r ON (l.layer_id = r.layer_id) "
+      "WHERE l.level = 0 and l.feature_type = 3 "
+      "AND l.topology_id = %d"
+      " AND r.element_id = ANY (ARRAY[%" LWTFMT_ELEMID ",%" LWTFMT_ELEMID
+      "]::int4[]) group by r.topogeo_id, r.layer_id, l.schema_name, "
+      "l.table_name, l.feature_column ) t WHERE NOT t.elems @> ARRAY[%"
+      LWTFMT_ELEMID ",%" LWTFMT_ELEMID "]::int4[]",
+
+      topo->name, topo->id,
+      face_left, face_right, face_left, face_right );
+
+    POSTGIS_DEBUGF(1, "cb_checkTopoGeomRemEdge query 2: %s", sql->data);
+    spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, 0);
+    MemoryContextSwitchTo( oldcontext ); /* switch back */
+
+    if ( spi_result != SPI_OK_SELECT ) {
+      cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+              spi_result, sql->data);
+      pfree(sqldata.data);
+      return 0;
+    }
+
+    if ( SPI_processed )
+    {
+      row = SPI_tuptable->vals[0];
+      tdesc = SPI_tuptable->tupdesc;
+
+      tg_id = SPI_getvalue(row, tdesc, 1);
+      layer_id = SPI_getvalue(row, tdesc, 2);
+      schema_name = SPI_getvalue(row, tdesc, 3);
+      table_name = SPI_getvalue(row, tdesc, 4);
+      col_name = SPI_getvalue(row, tdesc, 5);
+
+      cberror(topo->be_data, "TopoGeom %s in layer %s "
+                             "(%s.%s.%s) cannot be represented "
+                             "healing faces %" LWTFMT_ELEMID
+                             " and %" LWTFMT_ELEMID,
+              tg_id, layer_id, schema_name, table_name,
+              col_name, face_right, face_left);
+      return 0;
+    }
+  }
+
+  return 1;
+}
+
+static int
+cb_checkTopoGeomRemNode ( const LWT_BE_TOPOLOGY* topo,
+  LWT_ELEMID rem_node, LWT_ELEMID edge1, LWT_ELEMID edge2 )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  const char *tg_id, *layer_id;
+  const char *schema_name, *table_name, *col_name;
+  HeapTuple row;
+  TupleDesc tdesc;
+
+  initStringInfo(sql);
+  appendStringInfo( sql, "SELECT t.* FROM ( SELECT r.topogeo_id, "
+    "r.layer_id, l.schema_name, l.table_name, l.feature_column, "
+    "array_agg(abs(r.element_id)) as elems FROM topology.layer l "
+    " INNER JOIN \"%s\".relation r ON (l.layer_id = r.layer_id) "
+    "WHERE l.level = 0 and l.feature_type = 2 "
+    "AND l.topology_id = %d"
+    " AND abs(r.element_id) = ANY (ARRAY[%" LWTFMT_ELEMID ",%" LWTFMT_ELEMID
+    "]::int4[]) group by r.topogeo_id, r.layer_id, l.schema_name, "
+    "l.table_name, l.feature_column ) t WHERE NOT t.elems @> ARRAY[%"
+    LWTFMT_ELEMID ",%" LWTFMT_ELEMID "]::int4[]",
+    topo->name, topo->id,
+    edge1, edge2, edge1, edge2 );
+
+  POSTGIS_DEBUGF(1, "cb_checkTopoGeomRemNode query 1: %s", sql->data);
+
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+    cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+    return 0;
+  }
+
+  if ( SPI_processed )
+  {
+    row = SPI_tuptable->vals[0];
+    tdesc = SPI_tuptable->tupdesc;
+
+    tg_id = SPI_getvalue(row, tdesc, 1);
+    layer_id = SPI_getvalue(row, tdesc, 2);
+    schema_name = SPI_getvalue(row, tdesc, 3);
+    table_name = SPI_getvalue(row, tdesc, 4);
+    col_name = SPI_getvalue(row, tdesc, 5);
+
+    cberror(topo->be_data, "TopoGeom %s in layer %s "
+                           "(%s.%s.%s) cannot be represented "
+                           "healing edges %" LWTFMT_ELEMID
+                           " and %" LWTFMT_ELEMID,
+            tg_id, layer_id, schema_name, table_name,
+            col_name, edge1, edge2);
+    return 0;
+  }
+
+  /* TODO: check for TopoGeometry objects being defined by the common
+   * node, see https://trac.osgeo.org/postgis/ticket/3239 */
+
+  return 1;
+}
+
+static int
+cb_updateTopoGeomFaceHeal ( const LWT_BE_TOPOLOGY* topo,
+  LWT_ELEMID face1, LWT_ELEMID face2, LWT_ELEMID newface )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+
+  POSTGIS_DEBUG(1, "cb_updateTopoGeomFaceHeal enter ");
+
+  /* delete oldfaces (not equal to newface) from the
+   * set of primitives defining the TopoGeometries found before */
+
+  if ( newface == face1 || newface == face2 )
+  {
+    initStringInfo(sql);
+    /* this query can be optimized */
+    appendStringInfo( sql, "DELETE FROM \"%s\".relation r "
+      "USING topology.layer l WHERE l.level = 0 AND l.feature_type = 3"
+      " AND l.topology_id = %d AND l.layer_id = r.layer_id "
+      " AND abs(r.element_id) IN ( %" LWTFMT_ELEMID ",%" LWTFMT_ELEMID ")"
+      " AND abs(r.element_id) != %" LWTFMT_ELEMID,
+      topo->name, topo->id, face1, face2, newface );
+    POSTGIS_DEBUGF(1, "cb_updateTopoGeomFaceHeal query: %s", sql->data);
+
+    spi_result = SPI_execute(sql->data, false, 0);
+    MemoryContextSwitchTo( oldcontext ); /* switch back */
+    if ( spi_result != SPI_OK_DELETE ) {
+      cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+              spi_result, sql->data);
+      pfree(sqldata.data);
+      return 0;
+    }
+    if ( SPI_processed ) topo->be_data->data_changed = true;
+  }
+  else
+  {
+    initStringInfo(sql);
+    /* delete face1 */
+    appendStringInfo( sql, "DELETE FROM \"%s\".relation r "
+      "USING topology.layer l WHERE l.level = 0 AND l.feature_type = 3"
+      " AND l.topology_id = %d AND l.layer_id = r.layer_id "
+      " AND abs(r.element_id) = %" LWTFMT_ELEMID,
+      topo->name, topo->id, face1 );
+    POSTGIS_DEBUGF(1, "cb_updateTopoGeomFaceHeal query 1: %s", sql->data);
+
+    spi_result = SPI_execute(sql->data, false, 0);
+    MemoryContextSwitchTo( oldcontext ); /* switch back */
+    if ( spi_result != SPI_OK_DELETE ) {
+      cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+              spi_result, sql->data);
+      pfree(sqldata.data);
+      return 0;
+    }
+    if ( SPI_processed ) topo->be_data->data_changed = true;
+
+    initStringInfo(sql);
+    /* update face2 to newface */
+    appendStringInfo( sql, "UPDATE \"%s\".relation r "
+      "SET element_id = %" LWTFMT_ELEMID " FROM topology.layer l "
+      "WHERE l.level = 0 AND l.feature_type = 3 AND l.topology_id = %d"
+      " AND l.layer_id = r.layer_id AND r.element_id = %" LWTFMT_ELEMID,
+      topo->name, newface, topo->id, face2 );
+    POSTGIS_DEBUGF(1, "cb_updateTopoGeomFaceHeal query 2: %s", sql->data);
+
+    spi_result = SPI_execute(sql->data, false, 0);
+    MemoryContextSwitchTo( oldcontext ); /* switch back */
+    if ( spi_result != SPI_OK_UPDATE ) {
+      cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+              spi_result, sql->data);
+      pfree(sqldata.data);
+      return 0;
+    }
+    if ( SPI_processed ) topo->be_data->data_changed = true;
+  }
+
+  return 1;
+}
+
+static int
+cb_updateTopoGeomEdgeHeal ( const LWT_BE_TOPOLOGY* topo,
+  LWT_ELEMID edge1, LWT_ELEMID edge2, LWT_ELEMID newedge )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+
+  /* delete old edges (not equal to new edge) from the
+   * set of primitives defining the TopoGeometries found before */
+
+  if ( newedge == edge1 || newedge == edge2 )
+  {
+    initStringInfo(sql);
+    /* this query can be optimized */
+    appendStringInfo( sql, "DELETE FROM \"%s\".relation r "
+      "USING topology.layer l WHERE l.level = 0 AND l.feature_type = 2"
+      " AND l.topology_id = %d AND l.layer_id = r.layer_id "
+      " AND abs(r.element_id) IN ( %" LWTFMT_ELEMID ",%" LWTFMT_ELEMID ")"
+      " AND abs(r.element_id) != %" LWTFMT_ELEMID,
+      topo->name, topo->id, edge1, edge2, newedge );
+    POSTGIS_DEBUGF(1, "cb_updateTopoGeomEdgeHeal query: %s", sql->data);
+
+    spi_result = SPI_execute(sql->data, false, 0);
+    MemoryContextSwitchTo( oldcontext ); /* switch back */
+    if ( spi_result != SPI_OK_DELETE ) {
+      cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+              spi_result, sql->data);
+      pfree(sqldata.data);
+      return 0;
+    }
+    if ( SPI_processed ) topo->be_data->data_changed = true;
+  }
+  else
+  {
+    initStringInfo(sql);
+    /* delete edge1 */
+    appendStringInfo( sql, "DELETE FROM \"%s\".relation r "
+      "USING topology.layer l WHERE l.level = 0 AND l.feature_type = 2"
+      " AND l.topology_id = %d AND l.layer_id = r.layer_id "
+      " AND abs(r.element_id) = %" LWTFMT_ELEMID,
+      topo->name, topo->id, edge2 );
+    POSTGIS_DEBUGF(1, "cb_updateTopoGeomEdgeHeal query 1: %s", sql->data);
+
+    spi_result = SPI_execute(sql->data, false, 0);
+    MemoryContextSwitchTo( oldcontext ); /* switch back */
+    if ( spi_result != SPI_OK_DELETE ) {
+      cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+              spi_result, sql->data);
+      pfree(sqldata.data);
+      return 0;
+    }
+    if ( SPI_processed ) topo->be_data->data_changed = true;
+
+    initStringInfo(sql);
+    /* update edge2 to newedge */
+    appendStringInfo( sql, "UPDATE \"%s\".relation r "
+      "SET element_id = %" LWTFMT_ELEMID " *(element_id/%" LWTFMT_ELEMID
+      ") FROM topology.layer l "
+      "WHERE l.level = 0 AND l.feature_type = 2 AND l.topology_id = %d"
+      " AND l.layer_id = r.layer_id AND abs(r.element_id) = %" LWTFMT_ELEMID,
+      topo->name, newedge, edge1, topo->id, edge1 );
+    POSTGIS_DEBUGF(1, "cb_updateTopoGeomEdgeHeal query 2: %s", sql->data);
+
+    spi_result = SPI_execute(sql->data, false, 0);
+    MemoryContextSwitchTo( oldcontext ); /* switch back */
+    if ( spi_result != SPI_OK_UPDATE ) {
+      cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+              spi_result, sql->data);
+      pfree(sqldata.data);
+      return 0;
+    }
+    if ( SPI_processed ) topo->be_data->data_changed = true;
+  }
+
+  return 1;
+}
+
+static LWT_ELEMID
+cb_getFaceContainingPoint( const LWT_BE_TOPOLOGY* topo, const LWPOINT* pt )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  bool isnull;
+  Datum dat;
+  LWT_ELEMID face_id;
+  size_t hexewkb_size;
+  char *hexewkb;
+
+  initStringInfo(sql);
+
+  hexewkb = lwgeom_to_hexwkb(lwpoint_as_lwgeom(pt), WKB_EXTENDED, &hexewkb_size);
+  /* TODO: call GetFaceGeometry internally, avoiding the round-trip to sql */
+  appendStringInfo(sql, "SELECT face_id FROM \"%s\".face "
+                        "WHERE mbr && '%s'::geometry AND ST_Contains("
+     "topology.ST_GetFaceGeometry('%s', face_id), "
+     "'%s'::geometry) LIMIT 1",
+      topo->name, hexewkb, topo->name, hexewkb);
+  lwfree(hexewkb);
+
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, 1);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -2;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed != 1 ) {
+	  return -1; /* none found */
+  }
+
+  dat = SPI_getbinval( SPI_tuptable->vals[0],
+                       SPI_tuptable->tupdesc, 1, &isnull );
+  if ( isnull ) {
+		cberror(topo->be_data, "corrupted topology: face with NULL face_id");
+	  return -2;
+  }
+  face_id = DatumGetInt32(dat);
+  return face_id;
+}
+
+static int
+cb_deleteFacesById( const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int numelems )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result, i;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "DELETE FROM \"%s\".face WHERE face_id IN (", topo->name);
+  for (i=0; i<numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ")");
+
+  POSTGIS_DEBUGF(1, "cb_deleteFacesById query: %s", sql->data);
+
+  spi_result = SPI_execute( sql->data, false, 0 );
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_DELETE )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  POSTGIS_DEBUGF(1, "cb_deleteFacesById: delete query processed %d rows",
+                 SPI_processed);
+
+  return SPI_processed;
+}
+
+static int
+cb_deleteNodesById( const LWT_BE_TOPOLOGY* topo,
+      const LWT_ELEMID* ids, int numelems )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result, i;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+
+  initStringInfo(sql);
+  appendStringInfo(sql, "DELETE FROM \"%s\".node WHERE node_id IN (",
+                        topo->name);
+  for (i=0; i<numelems; ++i) {
+    appendStringInfo(sql, "%s%" LWTFMT_ELEMID, (i?",":""), ids[i]);
+  }
+  appendStringInfoString(sql, ")");
+
+  POSTGIS_DEBUGF(1, "cb_deleteNodesById query: %s", sql->data);
+
+  spi_result = SPI_execute( sql->data, false, 0 );
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_DELETE )
+  {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s",
+            spi_result, sql->data);
+    pfree(sqldata.data);
+	  return -1;
+  }
+  pfree(sqldata.data);
+
+  if ( SPI_processed ) topo->be_data->data_changed = true;
+
+  POSTGIS_DEBUGF(1, "cb_deleteNodesById: delete query processed %d rows",
+                 SPI_processed);
+
+  return SPI_processed;
+}
+
+static LWT_ISO_NODE* 
+cb_getNodeWithinBox2D ( const LWT_BE_TOPOLOGY* topo, const GBOX* box,
+                     int* numelems, int fields, int limit )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+  int elems_requested = limit;
+  LWT_ISO_NODE* nodes;
+  char *hexbox;
+
+  initStringInfo(sql);
+
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, "SELECT EXISTS ( SELECT 1");
+  } else {
+    appendStringInfoString(sql, "SELECT ");
+    addNodeFields(sql, fields);
+  }
+  hexbox = _box2d_to_hexwkb(box, topo->srid);
+  appendStringInfo(sql, " FROM \"%s\".node WHERE geom && '%s'::geometry",
+                        topo->name, hexbox);
+  lwfree(hexbox);
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, ")");
+  } else if ( elems_requested > 0 ) {
+    appendStringInfo(sql, " LIMIT %d", elems_requested);
+  }
+  POSTGIS_DEBUGF(1,"cb_getNodeWithinBox2D: query is: %s", sql->data);
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, limit >= 0 ? limit : 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getNodeWithinBox2D: edge query "
+             "(limited by %d) returned %d rows",
+             elems_requested, SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  if ( elems_requested == -1 )
+  {
+    /* This was an EXISTS query */
+    {
+      Datum dat;
+      bool isnull, exists;
+      dat = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull);
+      exists = DatumGetBool(dat);
+      *numelems = exists ? 1 : 0;
+      POSTGIS_DEBUGF(1, "cb_getNodeWithinBox2D: exists ? %d", *numelems);
+    }
+    return NULL;
+  }
+
+  nodes = palloc( sizeof(LWT_ISO_EDGE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillNodeFields(&nodes[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return nodes;
+}
+
+static LWT_ISO_EDGE* 
+cb_getEdgeWithinBox2D ( const LWT_BE_TOPOLOGY* topo, const GBOX* box,
+                     int* numelems, int fields, int limit )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+  int elems_requested = limit;
+  LWT_ISO_EDGE* edges;
+  char *hexbox;
+
+  initStringInfo(sql);
+
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, "SELECT EXISTS ( SELECT 1");
+  } else {
+    appendStringInfoString(sql, "SELECT ");
+    addEdgeFields(sql, fields, 0);
+  }
+  hexbox = _box2d_to_hexwkb(box, topo->srid);
+  appendStringInfo(sql, " FROM \"%s\".edge WHERE geom && '%s'::geometry",
+                        topo->name, hexbox);
+  lwfree(hexbox);
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, ")");
+  } else if ( elems_requested > 0 ) {
+    appendStringInfo(sql, " LIMIT %d", elems_requested);
+  }
+  POSTGIS_DEBUGF(1,"cb_getEdgeWithinBox2D: query is: %s", sql->data);
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, limit >= 0 ? limit : 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getEdgeWithinBox2D: edge query "
+             "(limited by %d) returned %d rows",
+             elems_requested, SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  if ( elems_requested == -1 )
+  {
+    /* This was an EXISTS query */
+    {
+      Datum dat;
+      bool isnull, exists;
+      dat = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull);
+      exists = DatumGetBool(dat);
+      *numelems = exists ? 1 : 0;
+      POSTGIS_DEBUGF(1, "cb_getEdgeWithinBox2D: exists ? %d", *numelems);
+    }
+    return NULL;
+  }
+
+  edges = palloc( sizeof(LWT_ISO_EDGE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillEdgeFields(&edges[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return edges;
+}
+
+static LWT_ISO_FACE* 
+cb_getFaceWithinBox2D ( const LWT_BE_TOPOLOGY* topo, const GBOX* box,
+                     int* numelems, int fields, int limit )
+{
+  MemoryContext oldcontext = CurrentMemoryContext;
+	int spi_result;
+  StringInfoData sqldata;
+  StringInfo sql = &sqldata;
+  int i;
+  int elems_requested = limit;
+  LWT_ISO_FACE* faces;
+  char *hexbox;
+
+  initStringInfo(sql);
+
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, "SELECT EXISTS ( SELECT 1");
+  } else {
+    appendStringInfoString(sql, "SELECT ");
+    addFaceFields(sql, fields);
+  }
+  hexbox = _box2d_to_hexwkb(box, topo->srid);
+  appendStringInfo(sql, " FROM \"%s\".face WHERE mbr && '%s'::geometry",
+                        topo->name, hexbox);
+  lwfree(hexbox);
+  if ( elems_requested == -1 ) {
+    appendStringInfoString(sql, ")");
+  } else if ( elems_requested > 0 ) {
+    appendStringInfo(sql, " LIMIT %d", elems_requested);
+  }
+  POSTGIS_DEBUGF(1,"cb_getFaceWithinBox2D: query is: %s", sql->data);
+  spi_result = SPI_execute(sql->data, !topo->be_data->data_changed, limit >= 0 ? limit : 0);
+  MemoryContextSwitchTo( oldcontext ); /* switch back */
+  if ( spi_result != SPI_OK_SELECT ) {
+		cberror(topo->be_data, "unexpected return (%d) from query execution: %s", spi_result, sql->data);
+    pfree(sqldata.data);
+	  *numelems = -1; return NULL;
+  }
+  pfree(sqldata.data);
+
+  POSTGIS_DEBUGF(1, "cb_getFaceWithinBox2D: face query "
+             "(limited by %d) returned %d rows",
+             elems_requested, SPI_processed);
+  *numelems = SPI_processed;
+  if ( ! SPI_processed ) {
+    return NULL;
+  }
+
+  if ( elems_requested == -1 )
+  {
+    /* This was an EXISTS query */
+    {
+      Datum dat;
+      bool isnull, exists;
+      dat = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull);
+      exists = DatumGetBool(dat);
+      *numelems = exists ? 1 : 0;
+      POSTGIS_DEBUGF(1, "cb_getFaceWithinBox2D: exists ? %d", *numelems);
+    }
+    return NULL;
+  }
+
+  faces = palloc( sizeof(LWT_ISO_EDGE) * SPI_processed );
+  for ( i=0; i<SPI_processed; ++i )
+  {
+    HeapTuple row = SPI_tuptable->vals[i];
+    fillFaceFields(&faces[i], row, SPI_tuptable->tupdesc, fields);
+  }
+
+  return faces;
+}
+
+
+static LWT_BE_CALLBACKS be_callbacks = {
+    cb_lastErrorMessage,
+    NULL, /* createTopology */
+    cb_loadTopologyByName,
+    cb_freeTopology,
+    cb_getNodeById,
+    cb_getNodeWithinDistance2D,
+    cb_insertNodes,
+    cb_getEdgeById,
+    cb_getEdgeWithinDistance2D,
+    cb_getNextEdgeId,
+    cb_insertEdges,
+    cb_updateEdges,
+    cb_getFacesById,
+    cb_getFaceContainingPoint,
+    cb_updateTopoGeomEdgeSplit,
+    cb_deleteEdges,
+    cb_getNodeWithinBox2D,
+    cb_getEdgeWithinBox2D,
+    cb_getEdgeByNode,
+    cb_updateNodes,
+    cb_updateTopoGeomFaceSplit,
+    cb_insertFaces,
+    cb_updateFacesById,
+    cb_getRingEdges,
+    cb_updateEdgesById,
+    cb_getEdgeByFace,
+    cb_getNodeByFace,
+    cb_updateNodesById,
+    cb_deleteFacesById,
+    cb_topoGetSRID,
+    cb_topoGetPrecision,
+    cb_topoHasZ,
+    cb_deleteNodesById,
+    cb_checkTopoGeomRemEdge,
+    cb_updateTopoGeomFaceHeal,
+    cb_checkTopoGeomRemNode,
+    cb_updateTopoGeomEdgeHeal,
+    cb_getFaceWithinBox2D
+};
+
+static void
+xact_callback(XactEvent event, void *arg)
+{
+  LWT_BE_DATA* data = (LWT_BE_DATA *)arg;
+  POSTGIS_DEBUGF(1, "xact_callback called with event %d", event);
+  data->data_changed = false;
+}
+
+
+/*
+ * Module load callback
+ */
+void _PG_init(void);
+void
+_PG_init(void)
+{
+  MemoryContext old_context;
+
+  /*
+   * install PostgreSQL handlers for liblwgeom
+   * NOTE: they may be already in place!
+   */
+  pg_install_lwgeom_handlers();
+
+  /* Switch to the top memory context so that the backend interface
+   * is valid for the whole backend lifetime */
+  old_context = MemoryContextSwitchTo( TopMemoryContext );
+
+  /* initialize backend data */
+  be_data.data_changed = false;
+  be_data.topoLoadFailMessageFlavor = 0;
+
+  /* hook on transaction end to reset data_changed */
+  RegisterXactCallback(xact_callback, &be_data);
+
+  /* register callbacks against liblwgeom-topo */
+  be_iface = lwt_CreateBackendIface(&be_data);
+  lwt_BackendIfaceRegisterCallbacks(be_iface, &be_callbacks);
+
+  /* Switch back to whatever memory context was in place
+   * at time of _PG_init enter.
+   * See http://www.postgresql.org/message-id/20150623114125.GD5835@localhost
+   */
+  MemoryContextSwitchTo(old_context);
+}
+
+/*
+ * Module unload callback
+ */
+void _PG_fini(void);
+void
+_PG_fini(void)
+{
+  elog(NOTICE, "Goodbye from PostGIS Topology %s", POSTGIS_VERSION);
+
+  UnregisterXactCallback(xact_callback, &be_data);
+  lwt_FreeBackendIface(be_iface);
+}
+
+/*  ST_ModEdgeSplit(atopology, anedge, apoint) */
+Datum ST_ModEdgeSplit(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_ModEdgeSplit);
+Datum ST_ModEdgeSplit(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  LWT_ELEMID edge_id;
+  LWT_ELEMID node_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWPOINT *pt;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  edge_id = PG_GETARG_INT32(1) ;
+
+  geom = PG_GETARG_GSERIALIZED_P(2);
+  lwgeom = lwgeom_from_gserialized(geom);
+  pt = lwgeom_as_lwpoint(lwgeom);
+  if ( ! pt ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 2);
+    lwpgerror("ST_ModEdgeSplit third argument must be a point geometry");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_ModEdgeSplit");
+  node_id = lwt_ModEdgeSplit(topo, edge_id, pt, 0);
+  POSTGIS_DEBUG(1, "lwt_ModEdgeSplit returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 3);
+  lwt_FreeTopology(topo);
+
+  if ( node_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(node_id);
+}
+
+/*  ST_NewEdgesSplit(atopology, anedge, apoint) */
+Datum ST_NewEdgesSplit(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_NewEdgesSplit);
+Datum ST_NewEdgesSplit(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  LWT_ELEMID edge_id;
+  LWT_ELEMID node_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWPOINT *pt;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  edge_id = PG_GETARG_INT32(1) ;
+
+  geom = PG_GETARG_GSERIALIZED_P(2);
+  lwgeom = lwgeom_from_gserialized(geom);
+  pt = lwgeom_as_lwpoint(lwgeom);
+  if ( ! pt ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 2);
+    lwpgerror("ST_NewEdgesSplit third argument must be a point geometry");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_NewEdgesSplit");
+  node_id = lwt_NewEdgesSplit(topo, edge_id, pt, 0);
+  POSTGIS_DEBUG(1, "lwt_NewEdgesSplit returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 3);
+  lwt_FreeTopology(topo);
+
+  if ( node_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(node_id);
+}
+
+/*  ST_AddIsoNode(atopology, aface, apoint) */
+Datum ST_AddIsoNode(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_AddIsoNode);
+Datum ST_AddIsoNode(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  LWT_ELEMID containing_face;
+  LWT_ELEMID node_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWPOINT *pt;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(2) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  if ( PG_ARGISNULL(1) ) containing_face = -1;
+  else {
+    containing_face = PG_GETARG_INT32(1);
+    if ( containing_face < 0 ) {
+      lwpgerror("SQL/MM Spatial exception - not within face");
+      PG_RETURN_NULL();
+    }
+  }
+
+  geom = PG_GETARG_GSERIALIZED_P(2);
+  lwgeom = lwgeom_from_gserialized(geom);
+  pt = lwgeom_as_lwpoint(lwgeom);
+  if ( ! pt ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 2);
+#if 0
+    lwpgerror("ST_AddIsoNode third argument must be a point geometry");
+#else
+    lwpgerror("SQL/MM Spatial exception - invalid point");
+#endif
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_AddIsoNode");
+  node_id = lwt_AddIsoNode(topo, containing_face, pt, 0);
+  POSTGIS_DEBUG(1, "lwt_AddIsoNode returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 2);
+  lwt_FreeTopology(topo);
+
+  if ( node_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(node_id);
+}
+
+/*  ST_AddIsoEdge(atopology, anode, anothernode, acurve) */
+Datum ST_AddIsoEdge(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_AddIsoEdge);
+Datum ST_AddIsoEdge(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  LWT_ELEMID edge_id;
+  LWT_ELEMID start_node, end_node;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWLINE *curve;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) ||
+       PG_ARGISNULL(2) || PG_ARGISNULL(3) )
+  {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  start_node = PG_GETARG_INT32(1);
+  end_node = PG_GETARG_INT32(2);
+
+  if ( start_node == end_node ) {
+    lwpgerror("Closed edges would not be isolated, try ST_AddEdgeNewFaces");
+    PG_RETURN_NULL();
+  }
+
+  geom = PG_GETARG_GSERIALIZED_P(3);
+  lwgeom = lwgeom_from_gserialized(geom);
+  curve = lwgeom_as_lwline(lwgeom);
+  if ( ! curve ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 3);
+    lwpgerror("SQL/MM Spatial exception - invalid curve");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_AddIsoEdge");
+  edge_id = lwt_AddIsoEdge(topo, start_node, end_node, curve);
+  POSTGIS_DEBUG(1, "lwt_AddIsoNode returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 3);
+  lwt_FreeTopology(topo);
+
+  if ( edge_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(edge_id);
+}
+
+/*  ST_AddEdgeModFace(atopology, snode, enode, line) */
+Datum ST_AddEdgeModFace(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_AddEdgeModFace);
+Datum ST_AddEdgeModFace(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  LWT_ELEMID startnode_id, endnode_id;
+  int edge_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWLINE *line;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) || PG_ARGISNULL(3) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  startnode_id = PG_GETARG_INT32(1) ;
+  endnode_id = PG_GETARG_INT32(2) ;
+
+  geom = PG_GETARG_GSERIALIZED_P(3);
+  lwgeom = lwgeom_from_gserialized(geom);
+  line = lwgeom_as_lwline(lwgeom);
+  if ( ! line ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 3);
+    lwpgerror("ST_AddEdgeModFace fourth argument must be a line geometry");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_AddEdgeModFace");
+  edge_id = lwt_AddEdgeModFace(topo, startnode_id, endnode_id, line, 0);
+  POSTGIS_DEBUG(1, "lwt_AddEdgeModFace returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 3);
+  lwt_FreeTopology(topo);
+
+  if ( edge_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(edge_id);
+}
+
+/*  ST_AddEdgeNewFaces(atopology, snode, enode, line) */
+Datum ST_AddEdgeNewFaces(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_AddEdgeNewFaces);
+Datum ST_AddEdgeNewFaces(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  LWT_ELEMID startnode_id, endnode_id;
+  int edge_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWLINE *line;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) || PG_ARGISNULL(3) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  startnode_id = PG_GETARG_INT32(1) ;
+  endnode_id = PG_GETARG_INT32(2) ;
+
+  geom = PG_GETARG_GSERIALIZED_P(3);
+  lwgeom = lwgeom_from_gserialized(geom);
+  line = lwgeom_as_lwline(lwgeom);
+  if ( ! line ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 3);
+    lwpgerror("ST_AddEdgeModFace fourth argument must be a line geometry");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_AddEdgeNewFaces");
+  edge_id = lwt_AddEdgeNewFaces(topo, startnode_id, endnode_id, line, 0);
+  POSTGIS_DEBUG(1, "lwt_AddEdgeNewFaces returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 3);
+  lwt_FreeTopology(topo);
+
+  if ( edge_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(edge_id);
+}
+
+/* ST_GetFaceGeometry(atopology, aface) */
+Datum ST_GetFaceGeometry(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_GetFaceGeometry);
+Datum ST_GetFaceGeometry(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  LWT_ELEMID face_id;
+  LWGEOM *lwgeom;
+  LWT_TOPOLOGY *topo;
+  GSERIALIZED *geom;
+  MemoryContext old_context;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  face_id = PG_GETARG_INT32(1) ;
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_GetFaceGeometry");
+  lwgeom = lwt_GetFaceGeometry(topo, face_id);
+  POSTGIS_DEBUG(1, "lwt_GetFaceGeometry returned");
+  lwt_FreeTopology(topo);
+
+  if ( lwgeom == NULL ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  /* Serialize in upper memory context (outside of SPI) */
+  /* TODO: use a narrower context to switch to */
+  old_context = MemoryContextSwitchTo( TopMemoryContext );
+  geom = geometry_serialize(lwgeom);
+  MemoryContextSwitchTo(old_context);
+
+  SPI_finish();
+
+  PG_RETURN_POINTER(geom);
+}
+
+typedef struct FACEEDGESSTATE
+{
+  LWT_ELEMID *elems;
+  int nelems;
+  int curr;
+}
+FACEEDGESSTATE;
+
+/* ST_GetFaceEdges(atopology, aface) */
+Datum ST_GetFaceEdges(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_GetFaceEdges);
+Datum ST_GetFaceEdges(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  LWT_ELEMID face_id;
+  int nelems;
+  LWT_ELEMID *elems;
+  LWT_TOPOLOGY *topo;
+  FuncCallContext *funcctx;
+  MemoryContext oldcontext, newcontext;
+	TupleDesc tupdesc;
+	HeapTuple tuple;
+	AttInMetadata *attinmeta;
+  FACEEDGESSTATE *state;
+  char buf[64];
+	char *values[2];
+	Datum result;
+
+  values[0] = buf;
+  values[1] = &(buf[32]);
+
+  if (SRF_IS_FIRSTCALL())
+  {
+
+    POSTGIS_DEBUG(1, "ST_GetFaceEdges first call");
+    funcctx = SRF_FIRSTCALL_INIT();
+    newcontext = funcctx->multi_call_memory_ctx;
+
+    if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) ) {
+      lwpgerror("SQL/MM Spatial exception - null argument");
+      PG_RETURN_NULL();
+    }
+
+    toponame_text = PG_GETARG_TEXT_P(0);
+    toponame = text2cstring(toponame_text);
+    PG_FREE_IF_COPY(toponame_text, 0);
+
+    face_id = PG_GETARG_INT32(1) ;
+
+    if ( SPI_OK_CONNECT != SPI_connect() ) {
+      lwpgerror("Could not connect to SPI");
+      PG_RETURN_NULL();
+    }
+
+    topo = lwt_LoadTopology(be_iface, toponame);
+    oldcontext = MemoryContextSwitchTo( newcontext );
+    pfree(toponame);
+    if ( ! topo ) {
+      /* should never reach this point, as lwerror would raise an exception */
+      SPI_finish();
+      PG_RETURN_NULL();
+    }
+
+    POSTGIS_DEBUG(1, "Calling lwt_GetFaceEdges");
+    nelems = lwt_GetFaceEdges(topo, face_id, &elems);
+    POSTGIS_DEBUGF(1, "lwt_GetFaceEdges returned %d", nelems);
+    lwt_FreeTopology(topo);
+
+    if ( nelems < 0 ) {
+      /* should never reach this point, as lwerror would raise an exception */
+      SPI_finish();
+      PG_RETURN_NULL();
+    }
+
+    state = lwalloc(sizeof(FACEEDGESSTATE));
+    state->elems = elems;
+    state->nelems = nelems;
+    state->curr = 0;
+    funcctx->user_fctx = state;
+
+    /*
+     * Build a tuple description for a
+     * getfaceedges_returntype tuple
+     */
+    tupdesc = RelationNameGetTupleDesc("topology.getfaceedges_returntype");
+
+    /*
+     * generate attribute metadata needed later to produce
+     * tuples from raw C strings
+     */
+    attinmeta = TupleDescGetAttInMetadata(tupdesc);
+    funcctx->attinmeta = attinmeta;
+
+    POSTGIS_DEBUG(1, "lwt_GetFaceEdges calling SPI_finish");
+
+    MemoryContextSwitchTo(oldcontext);
+
+    SPI_finish();
+  }
+
+  /* stuff done on every call of the function */
+  funcctx = SRF_PERCALL_SETUP();
+
+  /* get state */
+  state = funcctx->user_fctx;
+
+  if ( state->curr == state->nelems )
+  {
+    SRF_RETURN_DONE(funcctx);
+  }
+
+  if ( snprintf(values[0], 32, "%d", state->curr+1) >= 32 )
+  {
+    lwerror("Face edge sequence number does not fit 32 chars ?!: %d",
+            state->curr+1);
+  }
+  if ( snprintf(values[1], 32, "%" LWTFMT_ELEMID,
+              state->elems[state->curr]) >= 32 )
+  {
+    lwerror("Signed edge identifier does not fit 32 chars ?!: %"
+            LWTFMT_ELEMID, state->elems[state->curr]);
+  }
+
+  POSTGIS_DEBUGF(1, "ST_GetFaceEdges: cur:%d, val0:%s, val1:%s",
+                    state->curr, values[0], values[1]);
+
+  tuple = BuildTupleFromCStrings(funcctx->attinmeta, values);
+  result = HeapTupleGetDatum(tuple);
+  state->curr++;
+
+  SRF_RETURN_NEXT(funcctx, result);
+}
+
+/*  ST_ChangeEdgeGeom(atopology, anedge, acurve) */
+Datum ST_ChangeEdgeGeom(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_ChangeEdgeGeom);
+Datum ST_ChangeEdgeGeom(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char buf[64];
+  char* toponame;
+  int ret;
+  LWT_ELEMID edge_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWLINE *line;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  edge_id = PG_GETARG_INT32(1) ;
+
+  geom = PG_GETARG_GSERIALIZED_P(2);
+  lwgeom = lwgeom_from_gserialized(geom);
+  line = lwgeom_as_lwline(lwgeom);
+  if ( ! line ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 2);
+    lwpgerror("ST_ChangeEdgeGeom third argument must be a line geometry");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_ChangeEdgeGeom");
+  ret = lwt_ChangeEdgeGeom(topo, edge_id, line);
+  POSTGIS_DEBUG(1, "lwt_ChangeEdgeGeom returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 2);
+  lwt_FreeTopology(topo);
+
+  if ( ret == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+
+  if ( snprintf(buf, 64, "Edge %" LWTFMT_ELEMID " changed", edge_id) >= 64 )
+  {
+    buf[63] = '\0';
+  }
+  PG_RETURN_TEXT_P(cstring2text(buf));
+}
+
+/*  ST_RemoveIsoNode(atopology, anode) */
+Datum ST_RemoveIsoNode(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_RemoveIsoNode);
+Datum ST_RemoveIsoNode(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char buf[64];
+  char* toponame;
+  int ret;
+  LWT_ELEMID node_id;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  node_id = PG_GETARG_INT32(1) ;
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_RemoveIsoNode");
+  ret = lwt_RemoveIsoNode(topo, node_id);
+  POSTGIS_DEBUG(1, "lwt_RemoveIsoNode returned");
+  lwt_FreeTopology(topo);
+
+  if ( ret == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  /* TODO: check if any TopoGeometry exists including this point in
+   * its definition ! */
+
+  SPI_finish();
+
+  if ( snprintf(buf, 64, "Isolated node %" LWTFMT_ELEMID
+                         " removed", node_id) >= 64 )
+  {
+    buf[63] = '\0';
+  }
+  PG_RETURN_TEXT_P(cstring2text(buf));
+}
+
+/*  ST_RemIsoEdge(atopology, anedge) */
+Datum ST_RemIsoEdge(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_RemIsoEdge);
+Datum ST_RemIsoEdge(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char buf[64];
+  char* toponame;
+  int ret;
+  LWT_ELEMID node_id;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  node_id = PG_GETARG_INT32(1) ;
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_RemIsoEdge");
+  ret = lwt_RemIsoEdge(topo, node_id);
+  POSTGIS_DEBUG(1, "lwt_RemIsoEdge returned");
+  lwt_FreeTopology(topo);
+
+  if ( ret == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  /* TODO: check if any TopoGeometry exists including this point in
+   * its definition ! */
+
+  SPI_finish();
+
+  if ( snprintf(buf, 64, "Isolated edge %" LWTFMT_ELEMID
+                         " removed", node_id) >= 64 )
+  {
+    buf[63] = '\0';
+  }
+  PG_RETURN_TEXT_P(cstring2text(buf));
+}
+
+/*  ST_MoveIsoNode(atopology, anode, apoint) */
+Datum ST_MoveIsoNode(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_MoveIsoNode);
+Datum ST_MoveIsoNode(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char buf[64];
+  char* toponame;
+  int ret;
+  LWT_ELEMID node_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWPOINT *pt;
+  LWT_TOPOLOGY *topo;
+  POINT2D p;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  node_id = PG_GETARG_INT32(1) ;
+
+  geom = PG_GETARG_GSERIALIZED_P(2);
+  lwgeom = lwgeom_from_gserialized(geom);
+  pt = lwgeom_as_lwpoint(lwgeom);
+  if ( ! pt ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 2);
+    lwpgerror("SQL/MM Spatial exception - invalid point");
+    PG_RETURN_NULL();
+  }
+
+  if ( ! getPoint2d_p(pt->point, 0, &p) ) {
+    /* Do not let empty points in, see
+     * https://trac.osgeo.org/postgis/ticket/3234
+     */
+    lwpgerror("SQL/MM Spatial exception - empty point");
+    PG_RETURN_NULL();
+  }
+
+  /* TODO: check point for NaN values ? */
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_MoveIsoNode");
+  ret = lwt_MoveIsoNode(topo, node_id, pt);
+  POSTGIS_DEBUG(1, "lwt_MoveIsoNode returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 2);
+  lwt_FreeTopology(topo);
+
+  if ( ret == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+
+  if ( snprintf(buf, 64, "Isolated Node %" LWTFMT_ELEMID
+                         " moved to location %g,%g",
+                         node_id, p.x, p.y) >= 64 )
+  {
+    buf[63] = '\0';
+  }
+  PG_RETURN_TEXT_P(cstring2text(buf));
+}
+
+/*  ST_RemEdgeModFace(atopology, anedge) */
+Datum ST_RemEdgeModFace(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_RemEdgeModFace);
+Datum ST_RemEdgeModFace(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  int ret;
+  LWT_ELEMID node_id;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  node_id = PG_GETARG_INT32(1) ;
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_RemEdgeModFace");
+  ret = lwt_RemEdgeModFace(topo, node_id);
+  POSTGIS_DEBUG(1, "lwt_RemEdgeModFace returned");
+  lwt_FreeTopology(topo);
+
+  if ( ret == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+
+  PG_RETURN_INT32(ret);
+}
+
+/*  ST_RemEdgeNewFace(atopology, anedge) */
+Datum ST_RemEdgeNewFace(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_RemEdgeNewFace);
+Datum ST_RemEdgeNewFace(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  int ret;
+  LWT_ELEMID node_id;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  node_id = PG_GETARG_INT32(1) ;
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_RemEdgeNewFace");
+  ret = lwt_RemEdgeNewFace(topo, node_id);
+  POSTGIS_DEBUG(1, "lwt_RemEdgeNewFace returned");
+  lwt_FreeTopology(topo);
+  SPI_finish();
+
+  if ( ret <= 0 ) {
+    /* error or no face created */
+    PG_RETURN_NULL();
+  }
+
+  PG_RETURN_INT32(ret);
+}
+
+/*  ST_ModEdgeHeal(atopology, anedge, anotheredge) */
+Datum ST_ModEdgeHeal(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_ModEdgeHeal);
+Datum ST_ModEdgeHeal(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  int ret;
+  LWT_ELEMID eid1, eid2;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  eid1 = PG_GETARG_INT32(1) ;
+  eid2 = PG_GETARG_INT32(2) ;
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_ModEdgeHeal");
+  ret = lwt_ModEdgeHeal(topo, eid1, eid2);
+  POSTGIS_DEBUG(1, "lwt_ModEdgeHeal returned");
+  lwt_FreeTopology(topo);
+  SPI_finish();
+
+  if ( ret <= 0 ) {
+    /* error, should have sent message already */
+    PG_RETURN_NULL();
+  }
+
+  PG_RETURN_INT32(ret);
+}
+
+/*  ST_NewEdgeHeal(atopology, anedge, anotheredge) */
+Datum ST_NewEdgeHeal(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(ST_NewEdgeHeal);
+Datum ST_NewEdgeHeal(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  int ret;
+  LWT_ELEMID eid1, eid2;
+  LWT_TOPOLOGY *topo;
+
+  if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ) {
+    lwpgerror("SQL/MM Spatial exception - null argument");
+    PG_RETURN_NULL();
+  }
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  eid1 = PG_GETARG_INT32(1) ;
+  eid2 = PG_GETARG_INT32(2) ;
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_NewEdgeHeal");
+  ret = lwt_NewEdgeHeal(topo, eid1, eid2);
+  POSTGIS_DEBUG(1, "lwt_NewEdgeHeal returned");
+  lwt_FreeTopology(topo);
+  SPI_finish();
+
+  if ( ret <= 0 ) {
+    /* error, should have sent message already */
+    PG_RETURN_NULL();
+  }
+
+  PG_RETURN_INT32(ret);
+}
+
+/*  GetNodeByPoint(atopology, point, tolerance) */
+Datum GetNodeByPoint(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(GetNodeByPoint);
+Datum GetNodeByPoint(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  double tol;
+  LWT_ELEMID node_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWPOINT *pt;
+  LWT_TOPOLOGY *topo;
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  geom = PG_GETARG_GSERIALIZED_P(1);
+  lwgeom = lwgeom_from_gserialized(geom);
+  pt = lwgeom_as_lwpoint(lwgeom);
+  if ( ! pt ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 1);
+    lwpgerror("Node geometry must be a point");
+    PG_RETURN_NULL();
+  }
+
+  tol = PG_GETARG_FLOAT8(2);
+  if ( tol < 0 )
+  {
+	  PG_FREE_IF_COPY(geom, 1);
+    lwpgerror("Tolerance must be >=0");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_GetNodeByPoint");
+  node_id = lwt_GetNodeByPoint(topo, pt, tol);
+  POSTGIS_DEBUG(1, "lwt_GetNodeByPoint returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 1);
+  lwt_FreeTopology(topo);
+
+  if ( node_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(node_id);
+}
+
+/*  GetEdgeByPoint(atopology, point, tolerance) */
+Datum GetEdgeByPoint(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(GetEdgeByPoint);
+Datum GetEdgeByPoint(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  double tol;
+  LWT_ELEMID node_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWPOINT *pt;
+  LWT_TOPOLOGY *topo;
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  geom = PG_GETARG_GSERIALIZED_P(1);
+  lwgeom = lwgeom_from_gserialized(geom);
+  pt = lwgeom_as_lwpoint(lwgeom);
+  if ( ! pt ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 1);
+    lwpgerror("Node geometry must be a point");
+    PG_RETURN_NULL();
+  }
+
+  tol = PG_GETARG_FLOAT8(2);
+  if ( tol < 0 )
+  {
+	  PG_FREE_IF_COPY(geom, 1);
+    lwpgerror("Tolerance must be >=0");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_GetEdgeByPoint");
+  node_id = lwt_GetEdgeByPoint(topo, pt, tol);
+  POSTGIS_DEBUG(1, "lwt_GetEdgeByPoint returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 1);
+  lwt_FreeTopology(topo);
+
+  if ( node_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(node_id);
+}
+
+/*  GetFaceByPoint(atopology, point, tolerance) */
+Datum GetFaceByPoint(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(GetFaceByPoint);
+Datum GetFaceByPoint(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  double tol;
+  LWT_ELEMID node_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWPOINT *pt;
+  LWT_TOPOLOGY *topo;
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  geom = PG_GETARG_GSERIALIZED_P(1);
+  lwgeom = lwgeom_from_gserialized(geom);
+  pt = lwgeom_as_lwpoint(lwgeom);
+  if ( ! pt ) {
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 1);
+    lwpgerror("Node geometry must be a point");
+    PG_RETURN_NULL();
+  }
+
+  tol = PG_GETARG_FLOAT8(2);
+  if ( tol < 0 )
+  {
+	  PG_FREE_IF_COPY(geom, 1);
+    lwpgerror("Tolerance must be >=0");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  topo = lwt_LoadTopology(be_iface, toponame);
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_GetFaceByPoint");
+  node_id = lwt_GetFaceByPoint(topo, pt, tol);
+  POSTGIS_DEBUG(1, "lwt_GetFaceByPoint returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 1);
+  lwt_FreeTopology(topo);
+
+  if ( node_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(node_id);
+}
+
+/*  TopoGeo_AddPoint(atopology, point, tolerance) */
+Datum TopoGeo_AddPoint(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(TopoGeo_AddPoint);
+Datum TopoGeo_AddPoint(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  double tol;
+  LWT_ELEMID node_id;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWPOINT *pt;
+  LWT_TOPOLOGY *topo;
+
+  toponame_text = PG_GETARG_TEXT_P(0);
+  toponame = text2cstring(toponame_text);
+	PG_FREE_IF_COPY(toponame_text, 0);
+
+  geom = PG_GETARG_GSERIALIZED_P(1);
+  lwgeom = lwgeom_from_gserialized(geom);
+  pt = lwgeom_as_lwpoint(lwgeom);
+  if ( ! pt ) {{
+    char buf[32];
+    _lwtype_upper_name(lwgeom_get_type(lwgeom), buf, 32);
+    lwgeom_free(lwgeom);
+	  PG_FREE_IF_COPY(geom, 1);
+    lwpgerror("Invalid geometry type (%s) passed to TopoGeo_AddPoint"
+              ", expected POINT", buf );
+    PG_RETURN_NULL();
+  }}
+
+  tol = PG_GETARG_FLOAT8(2);
+  if ( tol < 0 )
+  {
+	  PG_FREE_IF_COPY(geom, 1);
+    lwpgerror("Tolerance must be >=0");
+    PG_RETURN_NULL();
+  }
+
+  if ( SPI_OK_CONNECT != SPI_connect() ) {
+    lwpgerror("Could not connect to SPI");
+    PG_RETURN_NULL();
+  }
+
+  {
+    int pre = be_data.topoLoadFailMessageFlavor;
+    be_data.topoLoadFailMessageFlavor = 1;
+    topo = lwt_LoadTopology(be_iface, toponame);
+    be_data.topoLoadFailMessageFlavor = pre;
+  }
+  pfree(toponame);
+  if ( ! topo ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  POSTGIS_DEBUG(1, "Calling lwt_AddPoint");
+  node_id = lwt_AddPoint(topo, pt, tol);
+  POSTGIS_DEBUG(1, "lwt_AddPoint returned");
+  lwgeom_free(lwgeom);
+  PG_FREE_IF_COPY(geom, 1);
+  lwt_FreeTopology(topo);
+
+  if ( node_id == -1 ) {
+    /* should never reach this point, as lwerror would raise an exception */
+    SPI_finish();
+    PG_RETURN_NULL();
+  }
+
+  SPI_finish();
+  PG_RETURN_INT32(node_id);
+}
+
+/*  TopoGeo_AddLinestring(atopology, point, tolerance) */
+Datum TopoGeo_AddLinestring(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(TopoGeo_AddLinestring);
+Datum TopoGeo_AddLinestring(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  double tol;
+  LWT_ELEMID *elems;
+  int nelems;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWLINE *ln;
+  LWT_TOPOLOGY *topo;
+  FuncCallContext *funcctx;
+  MemoryContext oldcontext, newcontext;
+  FACEEDGESSTATE *state;
+  Datum result;
+  LWT_ELEMID id;
+
+  if (SRF_IS_FIRSTCALL())
+  {
+    POSTGIS_DEBUG(1, "TopoGeo_AddLinestring first call");
+    funcctx = SRF_FIRSTCALL_INIT();
+    newcontext = funcctx->multi_call_memory_ctx;
+
+    if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ) {
+      lwpgerror("SQL/MM Spatial exception - null argument");
+      PG_RETURN_NULL();
+    }
+
+    toponame_text = PG_GETARG_TEXT_P(0);
+    toponame = text2cstring(toponame_text);
+    PG_FREE_IF_COPY(toponame_text, 0);
+
+    geom = PG_GETARG_GSERIALIZED_P(1);
+    lwgeom = lwgeom_from_gserialized(geom);
+    ln = lwgeom_as_lwline(lwgeom);
+    if ( ! ln ) {{
+      char buf[32];
+      _lwtype_upper_name(lwgeom_get_type(lwgeom), buf, 32);
+      lwgeom_free(lwgeom);
+      PG_FREE_IF_COPY(geom, 1);
+      lwpgerror("Invalid geometry type (%s) passed to "
+                "TopoGeo_AddLinestring, expected LINESTRING", buf);
+      PG_RETURN_NULL();
+    }}
+
+    tol = PG_GETARG_FLOAT8(2);
+    if ( tol < 0 )
+    {
+      PG_FREE_IF_COPY(geom, 1);
+      lwpgerror("Tolerance must be >=0");
+      PG_RETURN_NULL();
+    }
+
+    if ( SPI_OK_CONNECT != SPI_connect() ) {
+      lwpgerror("Could not connect to SPI");
+      PG_RETURN_NULL();
+    }
+
+    {
+      int pre = be_data.topoLoadFailMessageFlavor;
+      be_data.topoLoadFailMessageFlavor = 1;
+      topo = lwt_LoadTopology(be_iface, toponame);
+      be_data.topoLoadFailMessageFlavor = pre;
+    }
+    oldcontext = MemoryContextSwitchTo( newcontext );
+    pfree(toponame);
+    if ( ! topo ) {
+      /* should never reach this point, as lwerror would raise an exception */
+      SPI_finish();
+      PG_RETURN_NULL();
+    }
+
+    POSTGIS_DEBUG(1, "Calling lwt_AddLine");
+    elems = lwt_AddLine(topo, ln, tol, &nelems);
+    POSTGIS_DEBUG(1, "lwt_AddLine returned");
+    lwgeom_free(lwgeom);
+    PG_FREE_IF_COPY(geom, 1);
+    lwt_FreeTopology(topo);
+
+    if ( nelems < 0 ) {
+      /* should never reach this point, as lwerror would raise an exception */
+      SPI_finish();
+      PG_RETURN_NULL();
+    }
+
+    state = lwalloc(sizeof(FACEEDGESSTATE));
+    state->elems = elems;
+    state->nelems = nelems;
+    state->curr = 0;
+    funcctx->user_fctx = state;
+
+    POSTGIS_DEBUG(1, "TopoGeo_AddLinestring calling SPI_finish");
+
+    MemoryContextSwitchTo(oldcontext);
+
+    SPI_finish();
+  }
+
+  POSTGIS_DEBUG(1, "Per-call invocation");
+
+  /* stuff done on every call of the function */
+  funcctx = SRF_PERCALL_SETUP();
+
+  /* get state */
+  state = funcctx->user_fctx;
+
+  if ( state->curr == state->nelems )
+  {
+    POSTGIS_DEBUG(1, "We're done, cleaning up all");
+    SRF_RETURN_DONE(funcctx);
+  }
+
+  id = state->elems[state->curr++];
+  POSTGIS_DEBUGF(1, "TopoGeo_AddLinestring: cur:%d, val:%" LWTFMT_ELEMID,
+                    state->curr-1, id);
+
+  result = Int32GetDatum((int32)id);
+
+  SRF_RETURN_NEXT(funcctx, result);
+}
+
+/*  TopoGeo_AddPolygon(atopology, poly, tolerance) */
+Datum TopoGeo_AddPolygon(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(TopoGeo_AddPolygon);
+Datum TopoGeo_AddPolygon(PG_FUNCTION_ARGS)
+{
+  text* toponame_text;
+  char* toponame;
+  double tol;
+  LWT_ELEMID *elems;
+  int nelems;
+  GSERIALIZED *geom;
+  LWGEOM *lwgeom;
+  LWPOLY *pol;
+  LWT_TOPOLOGY *topo;
+  FuncCallContext *funcctx;
+  MemoryContext oldcontext, newcontext;
+  FACEEDGESSTATE *state;
+  Datum result;
+  LWT_ELEMID id;
+
+  if (SRF_IS_FIRSTCALL())
+  {
+    POSTGIS_DEBUG(1, "TopoGeo_AddPolygon first call");
+    funcctx = SRF_FIRSTCALL_INIT();
+    newcontext = funcctx->multi_call_memory_ctx;
+
+    if ( PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2) ) {
+      lwpgerror("SQL/MM Spatial exception - null argument");
+      PG_RETURN_NULL();
+    }
+
+    toponame_text = PG_GETARG_TEXT_P(0);
+    toponame = text2cstring(toponame_text);
+    PG_FREE_IF_COPY(toponame_text, 0);
+
+    geom = PG_GETARG_GSERIALIZED_P(1);
+    lwgeom = lwgeom_from_gserialized(geom);
+    pol = lwgeom_as_lwpoly(lwgeom);
+    if ( ! pol ) {{
+      char buf[32];
+      _lwtype_upper_name(lwgeom_get_type(lwgeom), buf, 32);
+      lwgeom_free(lwgeom);
+      PG_FREE_IF_COPY(geom, 1);
+      lwpgerror("Invalid geometry type (%s) passed to "
+                "TopoGeo_AddPolygon, expected POLYGON", buf);
+      PG_RETURN_NULL();
+    }}
+
+    tol = PG_GETARG_FLOAT8(2);
+    if ( tol < 0 )
+    {
+      PG_FREE_IF_COPY(geom, 1);
+      lwpgerror("Tolerance must be >=0");
+      PG_RETURN_NULL();
+    }
+
+    if ( SPI_OK_CONNECT != SPI_connect() ) {
+      lwpgerror("Could not connect to SPI");
+      PG_RETURN_NULL();
+    }
+
+    {
+      int pre = be_data.topoLoadFailMessageFlavor;
+      be_data.topoLoadFailMessageFlavor = 1;
+      topo = lwt_LoadTopology(be_iface, toponame);
+      be_data.topoLoadFailMessageFlavor = pre;
+    }
+    oldcontext = MemoryContextSwitchTo( newcontext );
+    pfree(toponame);
+    if ( ! topo ) {
+      /* should never reach this point, as lwerror would raise an exception */
+      SPI_finish();
+      PG_RETURN_NULL();
+    }
+
+    POSTGIS_DEBUG(1, "Calling lwt_AddPolygon");
+    elems = lwt_AddPolygon(topo, pol, tol, &nelems);
+    POSTGIS_DEBUG(1, "lwt_AddPolygon returned");
+    lwgeom_free(lwgeom);
+    PG_FREE_IF_COPY(geom, 1);
+    lwt_FreeTopology(topo);
+
+    if ( nelems < 0 ) {
+      /* should never reach this point, as lwerror would raise an exception */
+      SPI_finish();
+      PG_RETURN_NULL();
+    }
+
+    state = lwalloc(sizeof(FACEEDGESSTATE));
+    state->elems = elems;
+    state->nelems = nelems;
+    state->curr = 0;
+    funcctx->user_fctx = state;
+
+    POSTGIS_DEBUG(1, "TopoGeo_AddPolygon calling SPI_finish");
+
+    MemoryContextSwitchTo(oldcontext);
+
+    SPI_finish();
+  }
+
+  POSTGIS_DEBUG(1, "Per-call invocation");
+
+  /* stuff done on every call of the function */
+  funcctx = SRF_PERCALL_SETUP();
+
+  /* get state */
+  state = funcctx->user_fctx;
+
+  if ( state->curr == state->nelems )
+  {
+    POSTGIS_DEBUG(1, "We're done, cleaning up all");
+    SRF_RETURN_DONE(funcctx);
+  }
+
+  id = state->elems[state->curr++];
+  POSTGIS_DEBUGF(1, "TopoGeo_AddPolygon: cur:%d, val:%" LWTFMT_ELEMID,
+                    state->curr-1, id);
+
+  result = Int32GetDatum((int32)id);
+
+  SRF_RETURN_NEXT(funcctx, result);
+}
diff --git a/topology/sql/export/TopoJSON.sql.in b/topology/sql/export/TopoJSON.sql.in
index 877be33..847875c 100644
--- a/topology/sql/export/TopoJSON.sql.in
+++ b/topology/sql/export/TopoJSON.sql.in
@@ -67,27 +67,24 @@ BEGIN
     FOR rec IN SELECT (ST_Dump(topology.Geometry(tg))).geom
     LOOP -- {
 
-      sql := 'SELECT e.*, ST_LineLocatePoint('
-            || quote_literal(rec.geom::text)
+      sql := 'SELECT e.*, ST_LineLocatePoint($1'
             || ', ST_LineInterpolatePoint(e.geom, 0.2)) as pos'
-            || ', ST_LineLocatePoint('
-            || quote_literal(rec.geom::text)
+            || ', ST_LineLocatePoint($1'
             || ', ST_LineInterpolatePoint(e.geom, 0.8)) as pos2 FROM '
             || quote_ident(toponame)
-            || '.edge e WHERE ST_Covers('
-            || quote_literal(rec.geom::text)
+            || '.edge e WHERE ST_Covers($1'
             || ', e.geom) ORDER BY pos';
             -- TODO: add relation to the conditional, to reduce load ?
-      FOR rec2 IN EXECUTE sql
+      FOR rec2 IN EXECUTE sql USING rec.geom
       LOOP -- {
 
         IF edgeMapTable IS NOT NULL THEN
-          sql := 'SELECT arc_id-1 FROM ' || edgeMapTable::text || ' WHERE edge_id = ' || rec2.edge_id;
-          EXECUTE sql INTO arcid;
+          sql := 'SELECT arc_id-1 FROM ' || edgeMapTable::text || ' WHERE edge_id = $1';
+          EXECUTE sql INTO arcid USING rec2.edge_id;
           IF arcid IS NULL THEN
             EXECUTE 'INSERT INTO ' || edgeMapTable::text
-              || '(edge_id) VALUES (' || rec2.edge_id || ') RETURNING arc_id-1'
-            INTO arcid;
+              || '(edge_id) VALUES ($1) RETURNING arc_id-1'
+            INTO arcid USING rec2.edge_id;
           END IF;
         ELSE
           arcid := rec2.edge_id;
@@ -230,12 +227,12 @@ FROM _edgepath
         END IF;
 
         IF edgeMapTable IS NOT NULL THEN
-          sql := 'SELECT arc_id-1 FROM ' || edgeMapTable::text || ' WHERE edge_id = ' || rec.edge_id;
-          EXECUTE sql INTO arcid;
+          sql := 'SELECT arc_id-1 FROM ' || edgeMapTable::text || ' WHERE edge_id = $1';
+          EXECUTE sql INTO arcid USING rec.edge_id;
           IF arcid IS NULL THEN
             EXECUTE 'INSERT INTO ' || edgeMapTable::text
-              || '(edge_id) VALUES (' || rec.edge_id || ') RETURNING arc_id-1'
-            INTO arcid;
+              || '(edge_id) VALUES ($1) RETURNING arc_id-1'
+            INTO arcid USING rec.edge_id;
           END IF;
         ELSE
           arcid := rec.edge_id-1;
diff --git a/topology/sql/export/gml.sql.in b/topology/sql/export/gml.sql.in
index 7306507..17314d9 100644
--- a/topology/sql/export/gml.sql.in
+++ b/topology/sql/export/gml.sql.in
@@ -199,18 +199,16 @@ BEGIN
       bounds = ST_Boundary(rec.geom);
 
       FOR rec2 IN EXECUTE
-        'SELECT e.*, ST_LineLocatePoint('
-        || quote_literal(bounds::text)
+        'SELECT e.*, ST_LineLocatePoint($1'
         || ', ST_LineInterpolatePoint(e.geom, 0.2)) as pos'
-        || ', ST_LineLocatePoint('
-        || quote_literal(bounds::text)
+        || ', ST_LineLocatePoint($1'
         || ', ST_LineInterpolatePoint(e.geom, 0.8)) as pos2 FROM '
         || quote_ident(toponame)
-        || '.edge e WHERE ( e.left_face = ' || face_id
-        || ' OR e.right_face = ' || face_id
-        || ') AND ST_Covers('
-        || quote_literal(bounds::text)
+        || '.edge e WHERE ( e.left_face = $2'
+        || ' OR e.right_face = $2'
+        || ') AND ST_Covers($1'
         || ', e.geom) ORDER BY pos'
+        USING bounds, face_id
       LOOP
 
         gml = gml || '<' || nsprefix || 'directedEdge';
@@ -347,17 +345,15 @@ BEGIN
     FOR rec IN SELECT (ST_Dump(topology.Geometry(tg))).geom
     LOOP
       FOR rec2 IN EXECUTE
-        'SELECT e.*, ST_LineLocatePoint('
-        || quote_literal(rec.geom::text)
+        'SELECT e.*, ST_LineLocatePoint($1'
         || ', ST_LineInterpolatePoint(e.geom, 0.2)) as pos'
-        || ', ST_LineLocatePoint('
-        || quote_literal(rec.geom::text)
+        || ', ST_LineLocatePoint($1'
         || ', ST_LineInterpolatePoint(e.geom, 0.8)) as pos2 FROM '
         || quote_ident(toponame)
-        || '.edge e WHERE ST_Covers('
-        || quote_literal(rec.geom::text)
+        || '.edge e WHERE ST_Covers($1'
         || ', e.geom) ORDER BY pos'
         -- TODO: add relation to the conditional, to reduce load ?
+        USING rec.geom
       LOOP
 
         gml = gml || '<' || nsprefix || 'directedEdge';
diff --git a/topology/sql/manage/ManageHelper.sql.in b/topology/sql/manage/ManageHelper.sql.in
index 39150df..4e5178a 100644
--- a/topology/sql/manage/ManageHelper.sql.in
+++ b/topology/sql/manage/ManageHelper.sql.in
@@ -1,7 +1,7 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
 -- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
+-- http://www.postgis.net
 --
 -- Copyright (C) 2011 Regina Obe <lr at pcorp.us>
 --
@@ -29,9 +29,14 @@ BEGIN
 	IF var_cur_search_path LIKE '%' || quote_ident(a_schema_name) || '%' THEN
 		var_result := a_schema_name || ' already in database search_path';
 	ELSE
-		EXECUTE 'ALTER DATABASE ' || quote_ident(current_database()) || ' SET search_path = ' || var_cur_search_path || ', ' || quote_ident(a_schema_name); 
+		var_cur_search_path := var_cur_search_path || ', '
+                        || quote_ident(a_schema_name); 
+		EXECUTE 'ALTER DATABASE ' || quote_ident(current_database())
+                              || ' SET search_path = ' || var_cur_search_path;
 		var_result := a_schema_name || ' has been added to end of database search_path ';
 	END IF;
+
+	EXECUTE 'SET search_path = ' || var_cur_search_path;
   
   RETURN var_result;
 END
diff --git a/topology/sql/populate.sql.in b/topology/sql/populate.sql.in
index c36bc91..335a261 100644
--- a/topology/sql/populate.sql.in
+++ b/topology/sql/populate.sql.in
@@ -116,9 +116,8 @@ BEGIN
 	--
 	FOR rec IN EXECUTE 'SELECT node_id FROM '
 		|| quote_ident(atopology) || '.node ' ||
-		'WHERE geom && ' || quote_literal(apoint::text) || '::geometry'
-		||' AND ST_X(geom) = ST_X('||quote_literal(apoint::text)||'::geometry)'
-		||' AND ST_Y(geom) = ST_Y('||quote_literal(apoint::text)||'::geometry)'
+		'WHERE geom && $1 AND ST_X(geom) = ST_X($1) AND ST_Y(geom) = ST_Y($1)'
+    USING apoint
 	LOOP
 		RETURN  rec.node_id;
 	END LOOP;
@@ -129,13 +128,10 @@ BEGIN
 	--
 	FOR rec IN EXECUTE 'SELECT edge_id FROM '
 		|| quote_ident(atopology) || '.edge ' 
-		|| 'WHERE ST_DWithin('
-		|| quote_literal(apoint::text) 
-		|| ', geom, 0) AND NOT ST_Equals('
-		|| quote_literal(apoint::text)
-		|| ', ST_StartPoint(geom)) AND NOT ST_Equals('
-		|| quote_literal(apoint::text)
-		|| ', ST_EndPoint(geom))'
+		|| 'WHERE ST_DWithin($1, geom, 0) AND '
+    || 'NOT ST_Equals($1, ST_StartPoint(geom)) AND '
+    || 'NOT ST_Equals($1, ST_EndPoint(geom))'
+    USING apoint
 	LOOP
     IF allowEdgeSplitting THEN
       RETURN topology.ST_ModEdgeSplit(atopology, rec.edge_id, apoint);
@@ -169,8 +165,8 @@ BEGIN
 	--
 	EXECUTE 'INSERT INTO ' || quote_ident(atopology)
 		|| '.node(node_id, containing_face, geom) 
-		VALUES(' || nodeid || ',' || coalesce(containing_face::text, 'NULL') || ','
-    || quote_literal(apoint::text) || ')';
+		VALUES(' || nodeid || ',' || coalesce(containing_face::text, 'NULL')
+    || ',$1)' USING apoint;
 
 	RETURN nodeid;
 	
@@ -255,9 +251,8 @@ BEGIN
 	--
 	FOR rec IN EXECUTE 'SELECT node_id FROM '
 		|| quote_ident(atopology) || '.node '
-		|| 'WHERE ST_Crosses('
-		|| quote_literal(aline::text) || '::geometry, geom'
-		|| ')'
+		|| 'WHERE ST_Crosses($1, geom)'
+    USING aline
 	LOOP
 		RAISE EXCEPTION 'Edge crosses node %', rec.node_id;
 	END LOOP;
@@ -281,14 +276,9 @@ BEGIN
 	--    FF1 F0F 1F2
 	--    FF1 F** 1*2 <-- our match
 	--
-	FOR rec IN EXECUTE 'SELECT edge_id, geom, ST_Relate('
-		|| quote_literal(aline::text)
-		|| '::geometry, geom, 2) as im'
-		|| ' FROM '
-		|| quote_ident(atopology) || '.edge '
-		|| 'WHERE '
-		|| quote_literal(aline::text) || '::geometry && geom'
-
+	FOR rec IN EXECUTE 'SELECT edge_id, geom, ST_Relate($1, geom, 2) as im FROM '
+		|| quote_ident(atopology) || '.edge WHERE $1 && geom'
+    USING aline
 	LOOP
 
 	  IF ST_RelateMatch(rec.im, 'FF1F**1*2') THEN
@@ -343,16 +333,12 @@ BEGIN
 		-- start_node
 		|| 'topology.addNode('
 		|| quote_literal(atopology)
-		|| ', ST_StartPoint('
-		|| quote_literal(aline::text)
-		|| ')) ,'
+		|| ', ST_StartPoint($1)), '
 
 		-- end_node
 		|| 'topology.addNode('
 		|| quote_literal(atopology)
-		|| ', ST_EndPoint('
-		|| quote_literal(aline::text)
-		|| ')) ,'
+		|| ', ST_EndPoint($1)), '
 
 		-- next_left_edge
 		|| -edgeid ||','
@@ -367,8 +353,8 @@ BEGIN
 		|| '0,'
 
 		-- geom
-		||quote_literal(aline::text)
-		|| ')';
+		|| '$1)'
+    USING aline;
 
 	RETURN edgeid;
 	
@@ -459,15 +445,12 @@ BEGIN
     --
     bounds = ST_Boundary(rrec.geom);
 
-    sql := 'SELECT e.geom, e.edge_id, '
-      || 'e.left_face, e.right_face FROM '
-      || quote_ident(atopology) || '.edge e, (SELECT '
-      || quote_literal(bounds::text)
-      || '::geometry as geom) r WHERE '
-      || 'r.geom && e.geom'
+    sql := 'SELECT e.geom, e.edge_id, e.left_face, e.right_face FROM '
+      || quote_ident(atopology)
+      || '.edge e, (SELECT $1 as geom) r WHERE r.geom && e.geom'
     ;
     -- RAISE DEBUG 'SQL: %', sql;
-    FOR rec IN EXECUTE sql
+    FOR rec IN EXECUTE sql USING bounds
     LOOP -- {
       --RAISE DEBUG 'Edge % has bounding box intersection', rec.edge_id;
 
@@ -612,8 +595,8 @@ BEGIN
     -- face_id
     || faceid || ','
     -- minimum bounding rectangle
-    || quote_literal(ST_Envelope(apoly)::text)
-    || ')';
+    || '$1)'
+    USING ST_Envelope(apoly);
 
   --
   -- Update all edges having this face on the left
@@ -651,9 +634,8 @@ BEGIN
     || quote_literal(faceid)
     || ', left_face = '
     || quote_literal(faceid)
-    || ' WHERE ST_Contains('
-    || quote_literal(apoly::text)
-    || ', geom)';
+    || ' WHERE ST_Contains($1, geom)'
+    USING apoly;
 
   -- 
   -- Set containing_face of any contained node 
@@ -662,9 +644,8 @@ BEGIN
     || quote_ident(atopology)
     || '.node SET containing_face = '
     || quote_literal(faceid)
-    || ' WHERE containing_face IS NOT NULL AND ST_Contains('
-    || quote_literal(apoly::text)
-    || ', geom)';
+    || ' WHERE containing_face IS NOT NULL AND ST_Contains($1, geom)'
+    USING apoly;
 
   RETURN faceid;
 	
@@ -686,117 +667,8 @@ LANGUAGE 'plpgsql' VOLATILE;
 --
 CREATE OR REPLACE FUNCTION topology.TopoGeo_AddPoint(atopology varchar, apoint geometry, tolerance float8 DEFAULT 0)
 	RETURNS int AS
-$$
-DECLARE
-  id integer;
-  rec RECORD;
-  sql text;
-  prj GEOMETRY;
-  snapedge GEOMETRY;
-  snaptol FLOAT8;
-  tol FLOAT8;
-  z FLOAT8;
-BEGIN
-
-  -- 0. Check arguments
-  IF geometrytype(apoint) != 'POINT' THEN
-    RAISE EXCEPTION 'Invalid geometry type (%) passed to TopoGeo_AddPoint, expected POINT', geometrytype(apoint);
-  END IF;
-
-  -- Get tolerance, if 0 was given
-  tol := COALESCE( NULLIF(tolerance, 0), topology._st_mintolerance(atopology, apoint) );
-
-  -- 1. Check if any existing node is closer than the given precision
-  --    and if so pick the closest
-  sql := 'SELECT a.node_id FROM ' 
-    || quote_ident(atopology) 
-    || '.node as a WHERE ST_DWithin(a.geom,'
-    || quote_literal(apoint::text) || '::geometry,'
-    || tol || ') AND ST_Distance('
-    || quote_literal(apoint::text)
-    || '::geometry, a.geom) < ' || tol || ' ORDER BY ST_Distance('
-    || quote_literal(apoint::text)
-    || '::geometry, a.geom) LIMIT 1;';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG '%', sql;
-#endif
-  EXECUTE sql INTO id;
-  IF id IS NOT NULL THEN
-    RETURN id;
-  END IF;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'No existing node within tolerance distance';
-#endif
-
-  -- 2. Check if any existing edge falls within tolerance
-  --    and if so split it by a point projected on it
-  sql := 'SELECT a.edge_id, a.geom FROM ' 
-    || quote_ident(atopology) 
-    || '.edge as a WHERE ST_DWithin(a.geom,'
-    || quote_literal(apoint::text) || '::geometry,'
-    || tol || ') ORDER BY ST_Distance('
-    || quote_literal(apoint::text)
-    || '::geometry, a.geom) LIMIT 1;';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG '%', sql;
-#endif
-  EXECUTE sql INTO rec;
-  IF rec IS NOT NULL THEN
-    -- project point to line, split edge by point
-    prj := ST_ClosestPoint(rec.geom, apoint);
-    -- This is a workaround for ClosestPoint lack of Z support:
-    -- http://trac.osgeo.org/postgis/ticket/2033
-    z := ST_Z(apoint);
-    IF z IS NOT NULL THEN
-      prj := ST_Translate(ST_Force_3DZ(prj), 0, 0, z); -- no ST_SetZ ...
-    END IF;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Splitting edge % with closest point %', rec.edge_id, ST_AsText(prj);
-#endif
-    IF NOT ST_Contains(rec.geom, prj) THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG ' Snapping edge to contain closest point';
-#endif
-      -- The tolerance must be big enough for snapping to happen
-      -- and small enough to snap only to the projected point.
-      -- Unfortunately ST_Distance returns 0 because it also uses
-      -- a projected point internally, so we need another way.
-      snaptol := topology._st_mintolerance(prj);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'Tolerance for snapping to point % = %', ST_AsText(prj), snaptol;
-#endif
-      snapedge := ST_Snap(rec.geom, prj, snaptol);
-
-      -- Snapping currently snaps the first point below tolerance
-      -- so may possibly move first point. See ticket #1631
-      IF NOT ST_Equals(ST_StartPoint(rec.geom), ST_StartPoint(snapedge))
-      THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-        RAISE WARNING 'Snapping moved first edge vertex, fixing';
-#endif
-        snapedge := ST_MakeLine(ST_StartPoint(rec.geom), snapedge);
-      END IF;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      IF NOT ST_Contains(snapedge, prj) THEN -- or if equal ?
-        RAISE WARNING 'Edge within % distance from node still does not contain the node after snapping to it with tolerance %', tol, snaptol;
-      END IF;
-#endif
-      PERFORM topology.ST_ChangeEdgeGeom(atopology, rec.edge_id, snapedge);
-    END IF;
-    id := topology.ST_ModEdgeSplit(atopology, rec.edge_id, prj);
-  ELSE
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'No existing edge within tolerance distance';
-#endif
-    id := topology.ST_AddIsoNode(atopology, NULL, apoint);
-  END IF;
-
-  RETURN id;
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
+	'MODULE_PATHNAME', 'TopoGeo_AddPoint'
+  LANGUAGE 'c' VOLATILE;
 --} TopoGeo_AddPoint
 
 --{
@@ -807,211 +679,8 @@ LANGUAGE 'plpgsql' VOLATILE;
 -- }{
 CREATE OR REPLACE FUNCTION topology.TopoGeo_addLinestring(atopology varchar, aline geometry, tolerance float8 DEFAULT 0)
 	RETURNS SETOF int AS
-$$
-DECLARE
-  rec RECORD;
-  rec2 RECORD;
-  sql TEXT;
-  set1 GEOMETRY;
-  set2 GEOMETRY;
-  snapped GEOMETRY;
-  noded GEOMETRY;
-  start_node INTEGER;
-  end_node INTEGER;
-  id INTEGER; 
-  inodes GEOMETRY;
-  iedges GEOMETRY;
-  tol float8;
-BEGIN
-
-  -- 0. Check arguments
-  IF geometrytype(aline) != 'LINESTRING' THEN
-    RAISE EXCEPTION 'Invalid geometry type (%) passed to TopoGeo_AddLinestring, expected LINESTRING', geometrytype(aline);
-  END IF;
-
-  -- Get tolerance, if 0 was given
-  tol := COALESCE( NULLIF(tolerance, 0), topology._st_mintolerance(atopology, aline) );
-
-  -- 1. Self-node
-  noded := ST_UnaryUnion(aline);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Self-noded: %', ST_AsText(noded);
-#endif
-
-  -- 2. Node to edges falling within tol distance
-  sql := 'WITH nearby AS ( SELECT e.geom FROM '
-    || quote_ident(atopology) 
-    || '.edge e WHERE ST_DWithin(e.geom, '
-    || quote_literal(noded::text)
-    || '::geometry, '
-    || tol || ') ) SELECT st_collect(geom) FROM nearby;';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG '%', sql;
-#endif
-  EXECUTE sql INTO iedges;
-  IF iedges IS NOT NULL THEN
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Intersecting edges: %', ST_AsText(iedges);
-#endif
-
-    snapped := ST_Snap(noded, iedges, tol);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Snapped to edges: %', ST_AsText(snapped);
-#endif
-
-    noded := ST_Difference(snapped, iedges);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Difference: %', ST_AsText(noded);
-#endif
-
-    set1 := ST_Intersection(snapped, iedges);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Intersection: %', ST_AsText(set1);
-#endif
-
-    set2 := ST_LineMerge(set1);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'LineMerged intersection: %', ST_AsText(set2);
-#endif
-
-    noded := ST_Union(noded, set2);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Unioned: %', ST_AsText(noded);
-#endif
-
-  END IF;
-
-  -- 2.1. Node with existing nodes within tol
-  -- TODO: check if we should be only considering _isolated_ nodes!
-  sql := 'WITH nearby AS ( SELECT n.geom FROM '
-    || quote_ident(atopology) 
-    || '.node n WHERE ST_DWithin(n.geom, '
-    || quote_literal(noded::text)
-    || '::geometry, '
-    || tol || ') ) SELECT st_collect(geom) FROM nearby;';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG '%', sql;
-#endif
-  EXECUTE sql INTO inodes;
-
-  IF inodes IS NOT NULL THEN -- {
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Intersecting nodes: %', ST_AsText(inodes);
-#endif
-
-    -- TODO: consider snapping once against all elements
-    ---      (rather than once with edges and once with nodes)
-    noded := ST_Snap(noded, inodes, tol);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Snapped to nodes: %', ST_AsText(noded);
-#endif
-
-    FOR rec IN SELECT (ST_Dump(inodes)).geom
-    LOOP
-        -- Use the node to split edges
-        SELECT ST_Collect(geom) 
-        FROM ST_Dump(ST_Split(noded, rec.geom))
-        INTO STRICT noded;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-        RAISE DEBUG 'Split by %: %', ST_AsText(rec.geom), ST_AsText(noded);
-#endif
-    END LOOP;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Split: %', ST_AsText(noded);
-#endif
-
-    -- re-node to account for ST_Snap introduced self-intersections
-    -- See http://trac.osgeo.org/postgis/ticket/1714
-    -- TODO: consider running UnaryUnion once after all noding 
-    noded := ST_UnaryUnion(noded);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Self-unioned again: %', ST_AsText(noded);
-#endif
-  END IF; -- }
-
-  -- 3. For each (now-noded) segment, insert an edge
-  FOR rec IN SELECT (ST_Dump(noded)).geom LOOP
-
-    -- TODO: skip point elements ?
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Adding edge %', ST_AsText(rec.geom);
-#endif
-
-    start_node := topology.TopoGeo_AddPoint(atopology,
-                                          ST_StartPoint(rec.geom),
-                                          tol);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG ' Start Node: %', start_node;
-#endif
-
-    end_node := topology.TopoGeo_AddPoint(atopology,
-                                        ST_EndPoint(rec.geom),
-                                        tol);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG ' End Node: %', end_node;
-#endif
-
-    -- Added endpoints may have drifted due to tolerance, so
-    -- we need to re-snap the edge to the new nodes before adding it
-    sql := 'SELECT n1.geom as sn, n2.geom as en FROM ' || quote_ident(atopology)
-      || '.node n1, ' || quote_ident(atopology)
-      || '.node n2 WHERE n1.node_id = '
-      || start_node || ' AND n2.node_id = ' || end_node;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG '%', sql;
-#endif
-
-    EXECUTE sql INTO STRICT rec2;
-
-    snapped := ST_SetPoint(
-                 ST_SetPoint(rec.geom, ST_NPoints(rec.geom)-1, rec2.en),
-                 0, rec2.sn);
-
-    /* We might have introduced an invalidity (TODO: check this out) */
-    snapped := ST_CollectionExtract(ST_MakeValid(snapped), 2);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Cleaned edge: %', ST_AsText(snapped);
-#endif
-
-
-    -- Check if the so-snapped edge collapsed (see #1650)
-    IF ST_IsEmpty(snapped) THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'Edge collapsed';
-#endif
-      CONTINUE;
-    END IF;
-
-    -- Check if the so-snapped edge _now_ exists
-    sql := 'SELECT edge_id FROM ' || quote_ident(atopology)
-      || '.edge_data WHERE ST_Equals(geom, ' || quote_literal(snapped::text)
-      || '::geometry)';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG '%', sql;
-#endif
-    EXECUTE sql INTO id;
-    IF id IS NULL THEN
-      id := topology.ST_AddEdgeModFace(atopology, start_node, end_node,
-                                       snapped);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'New edge id: %', id;
-#endif
-    ELSE
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'Old edge id: %', id;
-#endif
-    END IF;
-
-    RETURN NEXT id;
-
-  END LOOP;
-
-  RETURN;
-END
-$$
-LANGUAGE 'plpgsql';
+	'MODULE_PATHNAME', 'TopoGeo_AddLinestring'
+  LANGUAGE 'c' VOLATILE;
 --} TopoGeo_addLinestring
 
 --{
@@ -1022,62 +691,8 @@ LANGUAGE 'plpgsql';
 -- }{
 CREATE OR REPLACE FUNCTION topology.TopoGeo_AddPolygon(atopology varchar, apoly geometry, tolerance float8 DEFAULT 0)
 	RETURNS SETOF int AS
-$$
-DECLARE
-  boundary GEOMETRY;
-  fgeom GEOMETRY;
-  rec RECORD;
-  edges INTEGER[];
-  sql TEXT;
-  tol FLOAT8;
-BEGIN
-
-  -- 0. Check arguments
-  IF geometrytype(apoly) != 'POLYGON' THEN
-    RAISE EXCEPTION 'Invalid geometry type (%) passed to TopoGeo_AddPolygon, expected POLYGON', geometrytype(apoly);
-  END IF;
-
-  -- Get tolerance, if 0 was given
-  tol := COALESCE( NULLIF(tolerance, 0), topology._st_mintolerance(atopology, apoly) );
-
-  -- 1. Extract boundary
-  boundary := ST_Boundary(apoly);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Boundary: %', ST_AsText(boundary);
-#endif
-
-  -- 2. Add boundaries as edges
-  FOR rec IN SELECT (ST_Dump(boundary)).geom LOOP
-    edges := array_cat(edges, array_agg(x)) FROM ( select topology.TopoGeo_addLinestring(atopology, rec.geom, tol) as x ) as foo;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'New edges: %', edges;
-#endif
-  END LOOP;
-
-  -- 3. Find faces covered by input polygon
-  --    NOTE: potential snapping changed polygon edges
-  sql := 'SELECT f.face_id FROM ' || quote_ident(atopology)
-    || '.face f WHERE f.mbr && '
-    || quote_literal(apoly::text)
-    || '::geometry';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG '%', sql;
-#endif
-  FOR rec IN EXECUTE sql LOOP
-    -- check for actual containment
-    fgeom := ST_PointOnSurface(topology.ST_GetFaceGeometry(atopology, rec.face_id));
-    IF NOT ST_Covers(apoly, fgeom) THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'Face % not covered by input polygon', rec.face_id;
-#endif
-      CONTINUE;
-    END IF;
-    RETURN NEXT rec.face_id;
-  END LOOP;
-
-END
-$$
-LANGUAGE 'plpgsql';
+	'MODULE_PATHNAME', 'TopoGeo_AddPolygon'
+  LANGUAGE 'c' VOLATILE;
 --} TopoGeo_AddPolygon
 
 --{
diff --git a/topology/sql/query/getedgebypoint.sql.in b/topology/sql/query/getedgebypoint.sql.in
index 2ac7064..06e97c8 100644
--- a/topology/sql/query/getedgebypoint.sql.in
+++ b/topology/sql/query/getedgebypoint.sql.in
@@ -30,62 +30,7 @@
 -- if near the point there are two or more edges it throw an exception.
 --
 CREATE OR REPLACE FUNCTION topology.GetEdgeByPoint(atopology varchar, apoint geometry, tol1 float8)
-	RETURNS int
-AS
-$$
-DECLARE
-	sql text;
-	idedge int;
-BEGIN
-	--
-	-- Atopology and apoint are required
-	-- 
-	IF atopology IS NULL OR apoint IS NULL THEN
-		RAISE EXCEPTION 'Invalid null argument';
-	END IF;
-
-	--
-	-- Apoint must be a point
-	--
-	IF substring(geometrytype(apoint), 1, 5) != 'POINT'
-	THEN
-		RAISE EXCEPTION 'Node geometry must be a point';
-	END IF;
-
-	--
-	-- Tolerance must be >= 0
-	--
-	IF tol1 < 0
-	THEN
-		RAISE EXCEPTION 'Tolerance must be >=0';
-	END IF;
-
-
-    if tol1 = 0 then
-    	sql := 'SELECT a.edge_id FROM ' 
-        || quote_ident(atopology) 
-        || '.edge_data as a WHERE '
-        || '(a.geom && ' || quote_literal(apoint::text)||'::geometry) '
-        || ' AND (ST_Intersects(a.geom,' || quote_literal(apoint::text)||'::geometry) );';
-    else
-    	sql := 'SELECT a.edge_id FROM ' 
-        || quote_ident(atopology) 
-        || '.edge_data as a WHERE '
-        || '(ST_DWithin(a.geom,' || quote_literal(apoint::text)||'::geometry,' || tol1::text || ') );';
-    end if;
-
-    BEGIN
-    EXECUTE sql INTO STRICT idedge;
-    EXCEPTION
-        WHEN NO_DATA_FOUND THEN
-            idedge = 0;
-        WHEN TOO_MANY_ROWS THEN
-            RAISE EXCEPTION 'Two or more edges found';
-    END;
-
-	RETURN idedge;
-	
-END
-$$
-LANGUAGE 'plpgsql' STABLE STRICT;
+	RETURNS int AS
+	'MODULE_PATHNAME', 'GetEdgeByPoint'
+	LANGUAGE 'c' STABLE STRICT;
 --} GetEdgeByPoint
diff --git a/topology/sql/query/getfacebypoint.sql.in b/topology/sql/query/getfacebypoint.sql.in
index fec5002..998792d 100644
--- a/topology/sql/query/getfacebypoint.sql.in
+++ b/topology/sql/query/getfacebypoint.sql.in
@@ -29,130 +29,8 @@
 -- if near the point there are two or more faces it throw an exception.
 --
 CREATE OR REPLACE FUNCTION topology.GetFaceByPoint(atopology varchar, apoint geometry, tol1 float8)
-	RETURNS int
-AS
-$$
-DECLARE
-	sql text;
-	idface int;
-BEGIN
-
-    idface := -1;
-
-	--
-	-- Atopology and apoint are required
-	-- 
-	IF atopology IS NULL OR apoint IS NULL THEN
-		RAISE EXCEPTION 'Invalid null argument';
-	END IF;
-
-	--
-	-- Apoint must be a point
-	--
-	IF substring(geometrytype(apoint), 1, 5) != 'POINT'
-	THEN
-		RAISE EXCEPTION 'Node geometry must be a point';
-	END IF;
-
-	--
-	-- Tolerance must be >= 0
-	--
-	IF tol1 < 0
-	THEN
-		RAISE EXCEPTION 'Tolerance must be >=0';
-	END IF;
-    --
-    -- first test is to check if there is inside an mbr
-    --
-    if tol1 = 0 then
-    	sql := 'SELECT a.face_id FROM ' 
-        || quote_ident(atopology) 
-        || '.face as a WHERE '
-        || '(a.mbr && ' || quote_literal(apoint::text)||'::geometry) '
-        || 'LIMIT 1;';
-    else
-    	sql := 'SELECT a.face_id FROM ' 
-        || quote_ident(atopology) 
-        || '.face as a WHERE '
-        || '(ST_DWithin(a.mbr,' || quote_literal(apoint::text)||'::geometry,' || tol1::text || ') ) '
-        || 'LIMIT 1;';
-    end if;
-
-    BEGIN
-    EXECUTE sql INTO STRICT idface;
-    EXCEPTION
-        WHEN NO_DATA_FOUND THEN
-            idface = 0;
-    END;
-
-    if idface > 0 then
-        --
-        -- probably there is something so now check the exact test
-        --
-
-    	if tol1 = 0 then
-        	sql := 'SELECT e.face_id FROM ('
-            || 'SELECT d.face_id,ST_BuildArea(ST_Union(geom)) as geom FROM ('
-    		|| 'SELECT b.edge_id as edge_id,b.left_face as face_id,b.geom as geom FROM '
-        	|| quote_ident(atopology) || '.edge_data as b,'
-            || '(SELECT a.face_id FROM '
-    		|| quote_ident(atopology) || '.face as a '
-        	|| 'WHERE ST_Intersects(a.mbr,' || quote_literal(apoint::text)||'::geometry)=true'
-            || ') as c '
-    		|| 'WHERE (b.left_face = c.face_id) '
-        	|| ' UNION ALL '
-            || 'SELECT b.edge_id as edge_id, b.right_face as face_id, b.geom as geom FROM '
-    		|| quote_ident(atopology) || '.edge_data as b,'
-        	|| '(SELECT a.face_id FROM '
-            || quote_ident(atopology) || '.face as a '
-    		|| 'WHERE ST_Intersects(a.mbr,' || quote_literal(apoint::text)||'::geometry)=true'
-        	|| ') as c '
-            || 'WHERE (b.right_face = c.face_id) '
-    		|| ') as d '
-        	|| 'GROUP BY face_id '
-            || ') as e '
-    		|| 'WHERE ST_Intersects(e.geom, ' || quote_literal(apoint::text)||'::geometry)=true;';
-        else
-        	sql := 'SELECT e.face_id FROM ('
-            || 'SELECT d.face_id,ST_BuildArea(ST_Union(geom)) as geom FROM ('
-    		|| 'SELECT b.edge_id as edge_id,b.left_face as face_id,b.geom as geom FROM '
-        	|| quote_ident(atopology) || '.edge_data as b,'
-            || '(SELECT a.face_id FROM '
-    		|| quote_ident(atopology) || '.face as a '
-        	|| 'WHERE ST_DWithin(a.mbr,' || quote_literal(apoint::text)||'::geometry,' || tol1::text || ')=true'
-            || ') as c '
-    		|| 'WHERE (b.left_face = c.face_id) '
-        	|| ' UNION ALL '
-            || 'SELECT b.edge_id as edge_id, b.right_face as face_id, b.geom as geom FROM '
-    		|| quote_ident(atopology) || '.edge_data as b,'
-        	|| '(SELECT a.face_id FROM '
-            || quote_ident(atopology) || '.face as a '
-    		|| 'WHERE ST_DWithin(a.mbr,' || quote_literal(apoint::text)||'::geometry,' || tol1::text || ')=true'
-        	|| ') as c '
-            || 'WHERE (b.right_face = c.face_id) '
-    		|| ') as d '
-        	|| 'GROUP BY face_id '
-            || ') as e '
-    		|| 'WHERE ST_DWithin(e.geom, ' || quote_literal(apoint::text)||'::geometry,' || tol1::text || ')=true;';
-        end if;
-	
-    	RAISE DEBUG ' ==> %',sql;
-
-        BEGIN
-            EXECUTE sql INTO STRICT idface;
-        	EXCEPTION
-        	    WHEN NO_DATA_FOUND THEN
-                    idface = 0;
-                WHEN TOO_MANY_ROWS THEN
-                    RAISE EXCEPTION 'Two or more faces found';
-            END;
-
-    end if;
-    
-    RETURN idface;
-	
-END
-$$
-LANGUAGE 'plpgsql' STABLE STRICT;
+	RETURNS int AS
+	'MODULE_PATHNAME', 'GetFaceByPoint'
+	LANGUAGE 'c' STABLE STRICT;
 --} GetFaceByPoint
 
diff --git a/topology/sql/query/getnodebypoint.sql.in b/topology/sql/query/getnodebypoint.sql.in
index f209103..8e994f3 100644
--- a/topology/sql/query/getnodebypoint.sql.in
+++ b/topology/sql/query/getnodebypoint.sql.in
@@ -27,63 +27,8 @@
 -- if near the point there are two or more nodes it throw an exception.
 --
 CREATE OR REPLACE FUNCTION topology.GetNodeByPoint(atopology varchar, apoint geometry, tol1 float8)
-	RETURNS int
-AS
-$$
-DECLARE
-	sql text;
-	idnode int;
-BEGIN
-	--
-	-- Atopology and apoint are required
-	-- 
-	IF atopology IS NULL OR apoint IS NULL THEN
-		RAISE EXCEPTION 'Invalid null argument';
-	END IF;
-
-	--
-	-- Apoint must be a point
-	--
-	IF substring(geometrytype(apoint), 1, 5) != 'POINT'
-	THEN
-		RAISE EXCEPTION 'Node geometry must be a point';
-	END IF;
-
-	--
-	-- Tolerance must be >= 0
-	--
-	IF tol1 < 0
-	THEN
-		RAISE EXCEPTION 'Tolerance must be >=0';
-	END IF;
-
-
-    if tol1 = 0 then
-    	sql := 'SELECT a.node_id FROM ' 
-        || quote_ident(atopology) 
-        || '.node as a WHERE '
-        || '(a.geom && ' || quote_literal(apoint::text)||'::geometry) '
-        || ' AND (ST_Intersects(a.geom,' || quote_literal(apoint::text)||'::geometry) );';
-    else
-    	sql := 'SELECT a.node_id FROM ' 
-        || quote_ident(atopology) 
-        || '.node as a WHERE '
-        || '(ST_DWithin(a.geom,' || quote_literal(apoint::text)||'::geometry,' || tol1::text || ') );';
-    end if;
-
-    BEGIN
-    EXECUTE sql INTO STRICT idnode;
-    EXCEPTION
-        WHEN NO_DATA_FOUND THEN
-            idnode = 0;
-        WHEN TOO_MANY_ROWS THEN
-            RAISE EXCEPTION 'Two or more nodes found';
-    END;
-
-	RETURN idnode;
-	
-END
-$$
-LANGUAGE 'plpgsql' STABLE STRICT;
+	RETURNS int AS
+	'MODULE_PATHNAME', 'GetNodeByPoint'
+	LANGUAGE 'c' STABLE STRICT;
 --} GetNodeByPoint
 
diff --git a/topology/sql/sqlmm.sql.in b/topology/sql/sqlmm.sql.in
index 126a675..2ec3c63 100644
--- a/topology/sql/sqlmm.sql.in
+++ b/topology/sql/sqlmm.sql.in
@@ -3,7 +3,7 @@
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
 --
--- Copyright (C) 2010, 2011, 2012, 2013 Sandro Santilli <strk at keybit.net>
+-- Copyright (C) 2010-2015 Sandro Santilli <strk at keybit.net>
 -- Copyright (C) 2005 Refractions Research Inc.
 --
 -- This is free software; you can redistribute and/or modify it under
@@ -40,108 +40,9 @@ CREATE TYPE topology.GetFaceEdges_ReturnType AS (
 --
 -- 
 CREATE OR REPLACE FUNCTION topology.ST_GetFaceEdges(toponame varchar, face_id integer)
-  RETURNS SETOF topology.GetFaceEdges_ReturnType
-AS
-$$
-DECLARE
-  rec RECORD;
-  bounds geometry;
-  retrec topology.GetFaceEdges_ReturnType;
-  n int;
-  sql TEXT;
-BEGIN
-  --
-  -- toponame and face_id are required
-  -- 
-  IF toponame IS NULL OR face_id IS NULL THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  IF NOT EXISTS(SELECT name FROM topology.topology WHERE name = toponame)  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END IF;
-
-  n := 1;
-
-  -- Construct the face geometry, then for each ring of each polygon:
-  sql := 'SELECT (ST_DumpRings((ST_Dump(ST_ForceRHR('
-    || 'ST_BuildArea(ST_Collect(geom))))).geom)).geom FROM '
-    || quote_ident(toponame) || '.edge_data WHERE left_face = '
-    || face_id || ' OR right_face = ' || face_id;
-  FOR rec IN EXECUTE sql 
-  LOOP -- {
-
-    -- Find the edges constituting its boundary
-    bounds = ST_Boundary(rec.geom);
-
-
-    sql := 'WITH er2 AS ( ' 
-      || 'WITH er AS ( SELECT ' 
-      || 'min(e.edge_id) over (), count(*) over () as cnt, e.edge_id, '
-      || 'ST_LineLocatePoint('
-      || quote_literal(bounds::text)
-      || ', ST_LineInterpolatePoint(e.geom, 0.2)) as pos'
-      || ', ST_LineLocatePoint('
-      || quote_literal(bounds::text)
-      || ', ST_LineInterpolatePoint(e.geom, 0.8)) as pos2 FROM '
-      || quote_ident(toponame)
-      || '.edge e WHERE ( e.left_face = ' || face_id
-      || ' OR e.right_face = ' || face_id
-      || ') AND ST_Covers('
-      || quote_literal(bounds::text)
-      || ', e.geom)';
-    IF face_id = 0 THEN
-      sql := sql || ' ORDER BY POS ASC) ';
-    ELSE
-      sql := sql || ' ORDER BY POS DESC) ';
-    END IF;
-
-    -- Reorder rows so to start with the one with smaller edge_id
-    sql := sql || 'SELECT row_number() over () - 1 as rn, * FROM er ) '
-               || 'SELECT *, ( rn + cnt - ( select rn FROM er2 WHERE edge_id = min ) ) % cnt AS reord FROM er2 ORDER BY reord';
-
-
-    --RAISE DEBUG 'SQL: %', sql;
-
-    FOR rec IN EXECUTE sql
-    LOOP
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'rn:%, n:%, edg:%, cnt:%, min:%, reord:%',
-         rec.rn, n, rec.edge_id, rec.cnt, rec.min, rec.reord;
-#endif
-
-      retrec.sequence = n;
-      retrec.edge = rec.edge_id;
-
-      IF face_id = 0 THEN
-        -- if this edge goes in opposite direction to the
-        --       ring bounds, make it with negative orientation
-        IF rec.pos2 < rec.pos THEN -- edge goes in opposite direction
-          retrec.edge = -retrec.edge;
-        END IF;
-      ELSE
-        -- if this edge goes in same direction to the
-        --       ring bounds, make it with negative orientation
-        IF rec.pos2 > rec.pos THEN -- edge goes in same direction
-          retrec.edge = -retrec.edge;
-        END IF;
-      END IF;
-
-      RETURN NEXT retrec;
-
-      n = n+1;
-
-    END LOOP;
-  END LOOP; -- }
-
-  RETURN;
-EXCEPTION
-  WHEN INVALID_SCHEMA_NAME THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-END
-$$
-LANGUAGE 'plpgsql' STABLE;
+  RETURNS SETOF topology.GetFaceEdges_ReturnType AS
+	'MODULE_PATHNAME', 'ST_GetFaceEdges'
+  LANGUAGE 'c' STABLE;
 --} ST_GetFaceEdges
 
 --{
@@ -158,303 +59,9 @@ LANGUAGE 'plpgsql' STABLE;
 -- * Update references in the Relation table.
 -- 
 CREATE OR REPLACE FUNCTION topology.ST_NewEdgeHeal(toponame varchar, e1id integer, e2id integer)
-  RETURNS int
-AS
-$$
-DECLARE
-  e1rec RECORD;
-  e2rec RECORD;
-  rec RECORD;
-  newedgeid int;
-  connectededges int[];
-  commonnode int;
-  caseno int;
-  topoid int;
-  sql text;
-  e2sign int;
-  eidary int[];
-BEGIN
-  --
-  -- toponame and face_id are required
-  -- 
-  IF toponame IS NULL OR e1id IS NULL OR e2id IS NULL THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  -- NOT IN THE SPECS: see if the same edge is given twice..
-  IF e1id = e2id THEN
-    RAISE EXCEPTION 'Cannot heal edge % with itself, try with another', e1id;
-  END IF;
-
-  -- Get topology id
-  BEGIN
-    SELECT id FROM topology.topology
-      INTO STRICT topoid WHERE name = toponame;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END;
-
-  BEGIN
-    EXECUTE 'SELECT * FROM ' || quote_ident(toponame)
-      || '.edge_data WHERE edge_id = ' || e1id
-      INTO STRICT e1rec;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent edge %', e1id;
-      WHEN INVALID_SCHEMA_NAME THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-      WHEN UNDEFINED_TABLE THEN
-        RAISE EXCEPTION 'corrupted topology "%" (missing edge_data table)',
-          toponame;
-  END;
-
-  BEGIN
-    EXECUTE 'SELECT * FROM ' || quote_ident(toponame)
-      || '.edge_data WHERE edge_id = ' || e2id
-      INTO STRICT e2rec;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent edge %', e2id;
-    -- NOTE: checks for INVALID_SCHEMA_NAME or UNDEFINED_TABLE done before
-  END;
-
-
-  -- NOT IN THE SPECS: See if any of the two edges are closed.
-  IF e1rec.start_node = e1rec.end_node THEN
-    RAISE EXCEPTION 'Edge % is closed, cannot heal to edge %', e1id, e2id;
-  END IF;
-  IF e2rec.start_node = e2rec.end_node THEN
-    RAISE EXCEPTION 'Edge % is closed, cannot heal to edge %', e2id, e1id;
-  END IF;
-
-  -- Find common node
-
-  IF e1rec.end_node = e2rec.start_node THEN
-    commonnode = e1rec.end_node;
-    caseno = 1;
-  ELSIF e1rec.end_node = e2rec.end_node THEN
-    commonnode = e1rec.end_node;
-    caseno = 2;
-  END IF;
-
-  -- Check if any other edge is connected to the common node
-  IF commonnode IS NOT NULL THEN
-    FOR rec IN EXECUTE 'SELECT edge_id FROM ' || quote_ident(toponame)
-      || '.edge_data WHERE ( edge_id != ' || e1id
-      || ' AND edge_id != ' || e2id || ') AND ( start_node = '
-      || commonnode || ' OR end_node = ' || commonnode || ' )'
-    LOOP
-      commonnode := NULL;
-      connectededges = connectededges || rec.edge_id;
-    END LOOP;
-  END IF;
-
-  IF commonnode IS NULL THEN
-    IF e1rec.start_node = e2rec.start_node THEN
-      commonnode = e1rec.start_node;
-      caseno = 3;
-    ELSIF e1rec.start_node = e2rec.end_node THEN
-      commonnode = e1rec.start_node;
-      caseno = 4;
-    END IF;
-
-    -- Check if any other edge is connected to the common node
-    IF commonnode IS NOT NULL THEN
-      FOR rec IN EXECUTE 'SELECT edge_id FROM ' || quote_ident(toponame)
-        || '.edge_data WHERE ( edge_id != ' || e1id
-        || ' AND edge_id != ' || e2id || ') AND ( start_node = '
-        || commonnode || ' OR end_node = ' || commonnode || ' )'
-      LOOP
-        commonnode := NULL;
-        connectededges = connectededges || rec.edge_id;
-      END LOOP;
-    END IF;
-  END IF;
-
-  IF commonnode IS NULL THEN
-    IF connectededges IS NOT NULL THEN
-      RAISE EXCEPTION 'SQL/MM Spatial exception - other edges connected (%)', array_to_string(connectededges, ',');
-    ELSE
-      RAISE EXCEPTION 'SQL/MM Spatial exception - non-connected edges';
-    END IF;
-  END IF;
-
-  -- NOT IN THE SPECS:
-  -- check if any topo_geom is defined only by one of the
-  -- input edges. In such case there would be no way to adapt
-  -- the definition in case of healing, so we'd have to bail out
-  eidary = ARRAY[e1id, e2id];
-  sql := 'SELECT t.* from ('
-    || 'SELECT r.topogeo_id, r.layer_id'
-    || ', l.schema_name, l.table_name, l.feature_column'
-    || ', array_agg(abs(r.element_id)) as elems '
-    || 'FROM topology.layer l INNER JOIN '
-    || quote_ident(toponame)
-    || '.relation r ON (l.layer_id = r.layer_id) '
-    || 'WHERE l.level = 0 AND l.feature_type = 2 '
-    || ' AND l.topology_id = ' || topoid
-    || ' AND abs(r.element_id) IN (' || e1id || ',' || e2id || ') '
-    || 'group by r.topogeo_id, r.layer_id, l.schema_name, l.table_name, '
-    || ' l.feature_column ) t WHERE NOT t.elems @> '
-    || quote_literal(eidary);
-  --RAISE DEBUG 'SQL: %', sql;
-  FOR rec IN EXECUTE sql LOOP
-    RAISE EXCEPTION 'TopoGeom % in layer % (%.%.%) cannot be represented healing edges % and %',
-          rec.topogeo_id, rec.layer_id,
-          rec.schema_name, rec.table_name, rec.feature_column,
-          e1id, e2id;
-  END LOOP;
-
-  -- Create new edge {
-  rec := e1rec;
-  IF caseno = 1 THEN -- e1.end = e2.start
-    rec.geom = ST_MakeLine(e1rec.geom, e2rec.geom);
-    rec.end_node = e2rec.end_node;
-    rec.next_left_edge = e2rec.next_left_edge;
-    e2sign = 1;
-  ELSIF caseno = 2 THEN -- e1.end = e2.end
-    rec.geom = ST_MakeLine(e1rec.geom, st_reverse(e2rec.geom));
-    rec.end_node = e2rec.start_node;
-    rec.next_left_edge = e2rec.next_right_edge;
-    e2sign = -1;
-  ELSIF caseno = 3 THEN -- e1.start = e2.start
-    rec.geom = ST_MakeLine(st_reverse(e2rec.geom), e1rec.geom);
-    rec.start_node = e2rec.end_node;
-    rec.next_right_edge = e2rec.next_left_edge;
-    e2sign = -1;
-  ELSIF caseno = 4 THEN -- e1.start = e2.end
-    rec.geom = ST_MakeLine(e2rec.geom, e1rec.geom);
-    rec.start_node = e2rec.start_node;
-    rec.next_right_edge = e2rec.next_right_edge;
-    e2sign = 1;
-  END IF;
-  -- }
-
-  -- Insert new edge {
-  EXECUTE 'SELECT nextval(' || quote_literal(
-      quote_ident(toponame) || '.edge_data_edge_id_seq'
-    ) || ')' INTO STRICT newedgeid;
-  EXECUTE 'INSERT INTO ' || quote_ident(toponame)
-    || '.edge VALUES(' || newedgeid
-    || ',' || rec.start_node
-    || ',' || rec.end_node
-    || ',' || rec.next_left_edge
-    || ',' || rec.next_right_edge
-    || ',' || rec.left_face
-    || ',' || rec.right_face
-    || ',' || quote_literal(rec.geom::text)
-    || ')';
-  -- End of new edge insertion }
-
-  -- Update next_left_edge/next_right_edge for
-  -- any edge having them still pointing at the edges being removed
-  -- (e2id)
-  --
-  -- NOTE:
-  -- *(next_XXX_edge/e2id) serves the purpose of extracting existing
-  -- sign from the value, while *e2sign changes that sign again if we
-  -- reverted edge2 direction
-  --
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET abs_next_left_edge = ' || newedgeid
-    || ', next_left_edge = ' || e2sign*newedgeid
-    || '*(next_left_edge/'
-    || e2id || ')  WHERE abs_next_left_edge = ' || e2id;
-  IF e2rec.start_node = commonnode THEN
-    sql := sql || ' AND end_node = ' || e2rec.end_node;
-  ELSE
-    sql := sql || ' AND end_node = ' || e2rec.start_node;
-  END IF;
-  --RAISE DEBUG 'SQL: %', sql;
-  EXECUTE sql;
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET abs_next_right_edge = ' || newedgeid
-    || ', next_right_edge = ' || e2sign*newedgeid
-    || '*(next_right_edge/'
-    || e2id || ') WHERE abs_next_right_edge = ' || e2id;
-  IF e2rec.start_node = commonnode THEN
-    sql := sql || ' AND start_node = ' || e2rec.end_node;
-  ELSE
-    sql := sql || ' AND start_node = ' || e2rec.start_node;
-  END IF;
-  --RAISE DEBUG 'SQL: %', sql;
-  EXECUTE sql;
-
-  -- New edge has the same direction as old edge 1
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET abs_next_left_edge = ' || newedgeid
-    || ', next_left_edge = ' || newedgeid
-    || '*(next_left_edge/'
-    || e1id || ')  WHERE abs_next_left_edge = ' || e1id;
-  IF e1rec.start_node = commonnode THEN
-    sql := sql || ' AND end_node = ' || e1rec.end_node;
-  ELSE
-    sql := sql || ' AND end_node = ' || e1rec.start_node;
-  END IF;
-  --RAISE DEBUG 'SQL: %', sql;
-  EXECUTE sql;
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET abs_next_right_edge = ' || newedgeid
-    || ', next_right_edge = ' || newedgeid
-    || '*(next_right_edge/'
-    || e1id || ') WHERE abs_next_right_edge = ' || e1id;
-  IF e1rec.start_node = commonnode THEN
-    sql := sql || ' AND start_node = ' || e1rec.end_node;
-  ELSE
-    sql := sql || ' AND start_node = ' || e1rec.start_node;
-  END IF;
-  --RAISE DEBUG 'SQL: %', sql;
-  EXECUTE sql;
-
-  --
-  -- NOT IN THE SPECS:
-  -- Replace composition rows involving the two
-  -- edges as one involving the new edge.
-  -- It takes a DELETE and an UPDATE to do all
-  sql := 'DELETE FROM ' || quote_ident(toponame)
-    || '.relation r USING topology.layer l '
-    || 'WHERE l.level = 0 AND l.feature_type = 2'
-    || ' AND l.topology_id = ' || topoid
-    || ' AND l.layer_id = r.layer_id AND abs(r.element_id) = '
-    || e2id;
-  --RAISE DEBUG 'SQL: %', sql;
-  EXECUTE sql;
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.relation r '
-    || ' SET element_id = ' || newedgeid || '*(element_id/'
-    || e1id
-    || ') FROM topology.layer l WHERE l.level = 0 AND l.feature_type = 2'
-    || ' AND l.topology_id = ' || topoid
-    || ' AND l.layer_id = r.layer_id AND abs(r.element_id) = '
-    || e1id
-  ;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'SQL: %', sql;
-#endif
-  EXECUTE sql;
-
-
-  -- Delete both edges
-  EXECUTE 'DELETE FROM ' || quote_ident(toponame)
-    || '.edge_data WHERE edge_id = ' || e2id;
-  EXECUTE 'DELETE FROM ' || quote_ident(toponame)
-    || '.edge_data WHERE edge_id = ' || e1id;
-
-  -- Delete the common node 
-  BEGIN
-    EXECUTE 'DELETE FROM ' || quote_ident(toponame)
-            || '.node WHERE node_id = ' || commonnode;
-    EXCEPTION
-      WHEN UNDEFINED_TABLE THEN
-        RAISE EXCEPTION 'corrupted topology "%" (missing node table)',
-          toponame;
-  END;
-
-  RETURN newedgeid;
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
+  RETURNS int AS
+  'MODULE_PATHNAME','ST_NewEdgeHeal'
+  LANGUAGE 'c' VOLATILE;
 --} ST_NewEdgeHeal
 
 --{
@@ -470,334 +77,13 @@ LANGUAGE 'plpgsql' VOLATILE;
 -- * Raise an exception if any TopoGeometry is defined by only one
 --   of the two edges
 -- * Update references in the Relation table.
--- 
+-- {
 CREATE OR REPLACE FUNCTION topology.ST_ModEdgeHeal(toponame varchar, e1id integer, e2id integer)
-  RETURNS int
-AS
-$$
-DECLARE
-  e1rec RECORD;
-  e2rec RECORD;
-  rec RECORD;
-  connectededges int[];
-  commonnode int;
-  caseno int;
-  topoid int;
-  sql text;
-  e2sign int;
-  eidary int[];
-BEGIN
-  --
-  -- toponame and face_id are required
-  -- 
-  IF toponame IS NULL OR e1id IS NULL OR e2id IS NULL THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  -- NOT IN THE SPECS: see if the same edge is given twice..
-  IF e1id = e2id THEN
-    RAISE EXCEPTION 'Cannot heal edge % with itself, try with another', e1id;
-  END IF;
-
-  -- Get topology id
-  BEGIN
-    SELECT id FROM topology.topology
-      INTO STRICT topoid WHERE name = toponame;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END;
-
-  BEGIN
-    EXECUTE 'SELECT * FROM ' || quote_ident(toponame)
-      || '.edge_data WHERE edge_id = ' || e1id
-      INTO STRICT e1rec;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent edge %', e1id;
-      WHEN INVALID_SCHEMA_NAME THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-      WHEN UNDEFINED_TABLE THEN
-        RAISE EXCEPTION 'corrupted topology "%" (missing edge_data table)',
-          toponame;
-  END;
-
-  BEGIN
-    EXECUTE 'SELECT * FROM ' || quote_ident(toponame)
-      || '.edge_data WHERE edge_id = ' || e2id
-      INTO STRICT e2rec;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent edge %', e2id;
-    -- NOTE: checks for INVALID_SCHEMA_NAME or UNDEFINED_TABLE done before
-  END;
-
-
-  -- NOT IN THE SPECS: See if any of the two edges are closed.
-  IF e1rec.start_node = e1rec.end_node THEN
-    RAISE EXCEPTION 'Edge % is closed, cannot heal to edge %', e1id, e2id;
-  END IF;
-  IF e2rec.start_node = e2rec.end_node THEN
-    RAISE EXCEPTION 'Edge % is closed, cannot heal to edge %', e2id, e1id;
-  END IF;
-
-  -- Find common node
-
-  IF e1rec.end_node = e2rec.start_node THEN
-    commonnode = e1rec.end_node;
-    caseno = 1;
-  ELSIF e1rec.end_node = e2rec.end_node THEN
-    commonnode = e1rec.end_node;
-    caseno = 2;
-  END IF;
-
-  -- Check if any other edge is connected to the common node
-  IF commonnode IS NOT NULL THEN
-    FOR rec IN EXECUTE 'SELECT edge_id FROM ' || quote_ident(toponame)
-      || '.edge_data WHERE ( edge_id != ' || e1id
-      || ' AND edge_id != ' || e2id || ') AND ( start_node = '
-      || commonnode || ' OR end_node = ' || commonnode || ' )'
-    LOOP
-      commonnode := NULL;
-      connectededges = connectededges || rec.edge_id;
-    END LOOP;
-  END IF;
-
-  IF commonnode IS NULL THEN
-    IF e1rec.start_node = e2rec.start_node THEN
-      commonnode = e1rec.start_node;
-      caseno = 3;
-    ELSIF e1rec.start_node = e2rec.end_node THEN
-      commonnode = e1rec.start_node;
-      caseno = 4;
-    END IF;
-
-    -- Check if any other edge is connected to the common node
-    IF commonnode IS NOT NULL THEN
-      FOR rec IN EXECUTE 'SELECT edge_id FROM ' || quote_ident(toponame)
-        || '.edge_data WHERE ( edge_id != ' || e1id
-        || ' AND edge_id != ' || e2id || ') AND ( start_node = '
-        || commonnode || ' OR end_node = ' || commonnode || ' )'
-      LOOP
-        commonnode := NULL;
-        connectededges = connectededges || rec.edge_id;
-      END LOOP;
-    END IF;
-  END IF;
-
-  IF commonnode IS NULL THEN
-    IF connectededges IS NOT NULL THEN
-      RAISE EXCEPTION 'SQL/MM Spatial exception - other edges connected (%)', array_to_string(connectededges, ',');
-    ELSE
-      RAISE EXCEPTION 'SQL/MM Spatial exception - non-connected edges';
-    END IF;
-  END IF;
-
-  -- NOT IN THE SPECS:
-  -- check if any topo_geom is defined only by one of the
-  -- input edges. In such case there would be no way to adapt
-  -- the definition in case of healing, so we'd have to bail out
-  eidary = ARRAY[e1id, e2id];
-  sql := 'SELECT t.* from ('
-    || 'SELECT r.topogeo_id, r.layer_id'
-    || ', l.schema_name, l.table_name, l.feature_column'
-    || ', array_agg(abs(r.element_id)) as elems '
-    || 'FROM topology.layer l INNER JOIN '
-    || quote_ident(toponame)
-    || '.relation r ON (l.layer_id = r.layer_id) '
-    || 'WHERE l.level = 0 AND l.feature_type = 2 '
-    || ' AND l.topology_id = ' || topoid
-    || ' AND abs(r.element_id) IN (' || e1id || ',' || e2id || ') '
-    || 'group by r.topogeo_id, r.layer_id, l.schema_name, l.table_name, '
-    || ' l.feature_column ) t WHERE NOT t.elems @> '
-    || quote_literal(eidary);
-  --RAISE DEBUG 'SQL: %', sql;
-  FOR rec IN EXECUTE sql LOOP
-    RAISE EXCEPTION 'TopoGeom % in layer % (%.%.%) cannot be represented healing edges % and %',
-          rec.topogeo_id, rec.layer_id,
-          rec.schema_name, rec.table_name, rec.feature_column,
-          e1id, e2id;
-  END LOOP;
-
-  -- Update data of the first edge {
-  rec := e1rec;
-  IF caseno = 1 THEN -- e1.end = e2.start
-    rec.geom = ST_MakeLine(e1rec.geom, e2rec.geom);
-    rec.end_node = e2rec.end_node;
-    rec.next_left_edge = e2rec.next_left_edge;
-    e2sign = 1;
-  ELSIF caseno = 2 THEN -- e1.end = e2.end
-    rec.geom = ST_MakeLine(e1rec.geom, st_reverse(e2rec.geom));
-    rec.end_node = e2rec.start_node;
-    rec.next_left_edge = e2rec.next_right_edge;
-    e2sign = -1;
-  ELSIF caseno = 3 THEN -- e1.start = e2.start
-    rec.geom = ST_MakeLine(st_reverse(e2rec.geom), e1rec.geom);
-    rec.start_node = e2rec.end_node;
-    rec.next_right_edge = e2rec.next_left_edge;
-    e2sign = -1;
-  ELSIF caseno = 4 THEN -- e1.start = e2.end
-    rec.geom = ST_MakeLine(e2rec.geom, e1rec.geom);
-    rec.start_node = e2rec.start_node;
-    rec.next_right_edge = e2rec.next_right_edge;
-    e2sign = 1;
-  END IF;
-  EXECUTE 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET geom = ' || quote_literal(rec.geom::text)
-    || ', start_node = ' || rec.start_node
-    || ', end_node = ' || rec.end_node
-    || ', next_left_edge = ' || rec.next_left_edge
-    || ', abs_next_left_edge = ' || abs(rec.next_left_edge)
-    || ', next_right_edge = ' || rec.next_right_edge
-    || ', abs_next_right_edge = ' || abs(rec.next_right_edge)
-    || ' WHERE edge_id = ' || e1id;
-  -- End of first edge update }
-
-  -- Update next_left_edge/next_right_edge for
-  -- any edge having them still pointing at the edge being removed (e2id)
-  --
-  -- NOTE:
-  -- *(next_XXX_edge/e2id) serves the purpose of extracting existing
-  -- sign from the value, while *e2sign changes that sign again if we
-  -- reverted edge2 direction
-  --
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET abs_next_left_edge = ' || e1id
-    || ', next_left_edge = ' || e2sign*e1id
-    || '*(next_left_edge/'
-    || e2id || ')  WHERE abs_next_left_edge = ' || e2id;
-  IF e2rec.start_node = commonnode THEN
-    sql := sql || ' AND end_node = ' || e2rec.end_node;
-  ELSE
-    sql := sql || ' AND end_node = ' || e2rec.start_node;
-  END IF;
-  --RAISE DEBUG 'SQL: %', sql;
-  EXECUTE sql;
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET abs_next_right_edge = ' || e1id
-    || ', next_right_edge = ' || e2sign*e1id
-    || '*(next_right_edge/'
-    || e2id || ') WHERE abs_next_right_edge = ' || e2id;
-  IF e2rec.start_node = commonnode THEN
-    sql := sql || ' AND start_node = ' || e2rec.end_node;
-  ELSE
-    sql := sql || ' AND start_node = ' || e2rec.start_node;
-  END IF;
-  --RAISE DEBUG 'SQL: %', sql;
-  EXECUTE sql;
-
-  -- Delete the second edge
-  EXECUTE 'DELETE FROM ' || quote_ident(toponame)
-    || '.edge_data WHERE edge_id = ' || e2id;
-
-  -- Delete the common node 
-  BEGIN
-    EXECUTE 'DELETE FROM ' || quote_ident(toponame)
-            || '.node WHERE node_id = ' || commonnode;
-    EXCEPTION
-      WHEN UNDEFINED_TABLE THEN
-        RAISE EXCEPTION 'corrupted topology "%" (missing node table)',
-          toponame;
-  END;
-
-  --
-  -- NOT IN THE SPECS:
-  -- Drop composition rows involving second
-  -- edge, as the first edge took its space,
-  -- and all affected TopoGeom have been previously checked
-  -- for being composed by both edges.
-  sql := 'DELETE FROM ' || quote_ident(toponame)
-    || '.relation r USING topology.layer l '
-    || 'WHERE l.level = 0 AND l.feature_type = 2'
-    || ' AND l.topology_id = ' || topoid
-    || ' AND l.layer_id = r.layer_id AND abs(r.element_id) = '
-    || e2id;
-  --RAISE DEBUG 'SQL: %', sql;
-  EXECUTE sql;
-
-  RETURN commonnode;
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
+  RETURNS int AS
+  'MODULE_PATHNAME','ST_ModEdgeHeal'
+  LANGUAGE 'c' VOLATILE;
 --} ST_ModEdgeHeal
 
--- {
--- _ST_RemEdgeCheck - check that the given edge is not needed
---                    by the definition of any TopoGeometry
---
-CREATE OR REPLACE FUNCTION topology._ST_RemEdgeCheck(tname varchar, tid integer, eid integer, lf integer, rf integer)
-RETURNS VOID
-AS
-$$
-DECLARE
-  sql text;
-  fidary int[];
-  rec RECORD;
-BEGIN
-  -- Check that no TopoGeometry references the edge being removed
-  sql := 'SELECT r.topogeo_id, r.layer_id'
-      || ', l.schema_name, l.table_name, l.feature_column '
-      || 'FROM topology.layer l INNER JOIN '
-      || quote_ident(tname)
-      || '.relation r ON (l.layer_id = r.layer_id) '
-      || 'WHERE l.level = 0 AND l.feature_type = 2 '
-      || ' AND l.topology_id = ' || tid
-      || ' AND abs(r.element_id) = ' || eid ;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Checking TopoGeometry definitions: %', sql;
-#endif
-  FOR rec IN EXECUTE sql LOOP
-    RAISE EXCEPTION 'TopoGeom % in layer % (%.%.%) cannot be represented dropping edge %',
-            rec.topogeo_id, rec.layer_id,
-            rec.schema_name, rec.table_name, rec.feature_column,
-            eid;
-  END LOOP;
-
-  IF lf != rf THEN -- {
-
-    RAISE NOTICE 'Deletion of edge % joins faces % and %',
-                    eid, lf, rf;
-
-    -- check if any topo_geom is defined only by one of the
-    -- joined faces. In such case there would be no way to adapt
-    -- the definition in case of healing, so we'd have to bail out
-    -- 
-    fidary = ARRAY[lf, rf];
-    sql := 'SELECT t.* from ('
-      || 'SELECT r.topogeo_id, r.layer_id'
-      || ', l.schema_name, l.table_name, l.feature_column'
-      || ', array_agg(r.element_id) as elems '
-      || 'FROM topology.layer l INNER JOIN '
-      || quote_ident(tname)
-      || '.relation r ON (l.layer_id = r.layer_id) '
-      || 'WHERE l.level = 0 AND l.feature_type = 3 '
-      || ' AND l.topology_id = ' || tid
-      || ' AND r.element_id = ANY (' || quote_literal(fidary)
-      || ') group by r.topogeo_id, r.layer_id, l.schema_name, l.table_name, '
-      || ' l.feature_column ) t';
-
-    -- No surface can be defined by universal face 
-    IF lf != 0 AND rf != 0 THEN -- {
-      sql := sql || ' WHERE NOT t.elems @> ' || quote_literal(fidary);
-    END IF; -- }
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'SQL: %', sql;
-#endif
-
-    FOR rec IN EXECUTE sql LOOP
-      RAISE EXCEPTION 'TopoGeom % in layer % (%.%.%) cannot be represented healing faces % and %',
-            rec.topogeo_id, rec.layer_id,
-            rec.schema_name, rec.table_name, rec.feature_column,
-            rf, lf;
-    END LOOP;
-
-  END IF; -- } two faces healed...
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} _ST_RemEdgeCheck
-
 --{
 -- Topo-Geo and Topo-Net 3: Routine Details
 -- X.3.14
@@ -815,3570 +101,442 @@ LANGUAGE 'plpgsql' VOLATILE;
 -- 
 -- }{
 CREATE OR REPLACE FUNCTION topology.ST_RemEdgeNewFace(toponame varchar, e1id integer)
-  RETURNS int
-AS
-$$
-DECLARE
-  e1rec RECORD;
-  rec RECORD;
-  fidary int[];
-  topoid int;
-  sql text;
-  newfaceid int;
-  newfacecreated bool;
-  elink int;
-BEGIN
-  --
-  -- toponame and face_id are required
-  -- 
-  IF toponame IS NULL OR e1id IS NULL THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  -- Get topology id
-  BEGIN
-    SELECT id FROM topology.topology
-      INTO STRICT topoid WHERE name = toponame;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END;
-
-  BEGIN
-    EXECUTE 'SELECT * FROM ' || quote_ident(toponame)
-      || '.edge_data WHERE edge_id = ' || e1id
-      INTO STRICT e1rec;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent edge %', e1id;
-      WHEN INVALID_SCHEMA_NAME THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-      WHEN UNDEFINED_TABLE THEN
-        RAISE EXCEPTION 'corrupted topology "%" (missing edge_data table)',
-          toponame;
-  END;
+  RETURNS int AS
+	'MODULE_PATHNAME','ST_RemEdgeNewFace'
+  LANGUAGE 'c' VOLATILE;
+--} ST_RemEdgeNewFace
 
-  -- NOT IN THE SPECS:
-  -- Check that no TopoGeometry references the edge being removed
-  PERFORM topology._ST_RemEdgeCheck(toponame, topoid, e1id, e1rec.left_face, e1rec.right_face);
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.15
+--
+--  ST_RemEdgeModFace(atopology, anedge)
+--
+-- Not in the specs:
+-- * Raise an exception if any TopoGeometry is defined by only one
+--   of the two faces that will dissolve.
+-- * Raise an exception if any TopoGeometry is defined by 
+--   the edge being removed.
+-- * Properly set containg_face on nodes that remains isolated by the drop
+-- * Update containg_face for isolated nodes in the dissolved faces
+-- * Update references in the Relation table
+-- * Return id of the face taking up the removed edge space
+--
+-- }{
+CREATE OR REPLACE FUNCTION topology.ST_RemEdgeModFace(toponame varchar, e1id integer)
+  RETURNS int AS
+	'MODULE_PATHNAME','ST_RemEdgeModFace'
+  LANGUAGE 'c' VOLATILE;
+--} ST_RemEdgeModFace
 
-  -- Update next_left_edge and next_right_edge face
-  -- for all edges bounding the new face
-  RAISE NOTICE 'Updating next_{right,left}_face of ring edges...';
 
-  -- TODO: reduce the following to 2 UPDATE rather than 4
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.16
+--
+--  ST_GetFaceGeometry(atopology, aface)
+-- 
+CREATE OR REPLACE FUNCTION topology.ST_GetFaceGeometry(toponame varchar, aface integer)
+  RETURNS GEOMETRY AS
+	'MODULE_PATHNAME', 'ST_GetFaceGeometry'
+  LANGUAGE 'c' STABLE;
+--} ST_GetFaceGeometry
 
-  -- Update next_left_edge of previous edges in left face -- {
 
-  elink := e1rec.next_left_edge;
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.1 
+--
+--  ST_AddIsoNode(atopology, aface, apoint)
+--
+CREATE OR REPLACE FUNCTION topology.ST_AddIsoNode(atopology varchar, aface integer, apoint geometry)
+  RETURNS INTEGER AS
+	'MODULE_PATHNAME','ST_AddIsoNode'
+  LANGUAGE 'c' VOLATILE;
+--} ST_AddIsoNode
 
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET next_left_edge = '
-    || elink
-    || ', abs_next_left_edge = '
-    || abs(elink)
-    || ' WHERE next_left_edge < 0 AND abs(next_left_edge) = '
-    || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'next_left_edge update: %', sql;
-#endif
-  EXECUTE sql;
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.2 
+--
+--  ST_MoveIsoNode(atopology, anode, apoint)
+--
+CREATE OR REPLACE FUNCTION topology.ST_MoveIsoNode(atopology character varying, anode integer, apoint geometry)
+  RETURNS text AS
+  'MODULE_PATHNAME','ST_MoveIsoNode'
+  LANGUAGE 'c' VOLATILE;
+--} ST_MoveIsoNode
 
-  -- If the edge being removed links to self,
-  -- we use the other face
-  IF e1rec.abs_next_right_edge = e1rec.edge_id THEN
-    elink := e1rec.next_left_edge;
-  ELSE
-    elink := e1rec.next_right_edge;
-  END IF;
-
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET next_left_edge = '
-    || elink
-    || ', abs_next_left_edge = '
-    || abs(elink)
-    || ' WHERE next_left_edge > 0 AND abs(next_left_edge) = '
-    || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'next_left_edge update: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- }
-
-  -- Update next_right_edge of previous edges in right face -- {
-
-  elink := e1rec.next_left_edge;
-
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET next_right_edge = '
-    || elink
-    || ', abs_next_right_edge = '
-    || abs(elink)
-    || ' WHERE next_right_edge < 0 AND abs(next_right_edge) = '
-    || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'next_right_edge update: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- If the edge being removed links to self,
-  -- we use the other face
-  IF e1rec.abs_next_right_edge = e1rec.edge_id THEN
-    elink := e1rec.next_left_edge;
-  ELSE
-    elink := e1rec.next_right_edge;
-  END IF;
-
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET next_right_edge = '
-    || elink
-    || ', abs_next_right_edge = '
-    || abs(elink)
-    || ' WHERE next_right_edge > 0 AND abs(next_right_edge) = '
-    || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'next_right_edge update: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- }
-
-  IF e1rec.left_face = e1rec.right_face THEN -- {
-
-    newfaceid := e1rec.left_face; -- TODO: or what should we return ?
-    newfacecreated := false;
-
-  ELSE -- }{
-
-    IF e1rec.left_face = 0 OR e1rec.right_face = 0 THEN -- {
-
-      --
-      -- We won't add any new face, but rather let the universe
-      -- flood the removed face.
-      --
-
-      newfaceid := 0;
-      newfacecreated := false;
-
-    ELSE -- }{
-
-      --
-      -- Insert the new face 
-      --
-
-      sql := 'SELECT nextval(' || quote_literal(
-          quote_ident(toponame) || '.face_face_id_seq'
-        ) || ')';
-
-      EXECUTE sql INTO STRICT newfaceid;
-      newfacecreated := true;
-
-      sql := 'INSERT INTO '
-        || quote_ident(toponame)
-        || '.face(face_id, mbr) SELECT '
-        -- face_id
-        || newfaceid  || ', '
-        -- minimum bounding rectangle is the union of the old faces mbr
-        -- (doing this without GEOS would be faster)
-        || 'ST_Envelope(ST_Union(mbr)) FROM '
-        || quote_ident(toponame)
-        || '.face WHERE face_id IN (' 
-        || e1rec.left_face || ',' || e1rec.right_face 
-        || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'SQL: %', sql;
-#endif
-      EXECUTE sql;
-
-    END IF; -- }
-
-    -- Update left_face for all edges still referencing old faces
-    sql := 'UPDATE ' || quote_ident(toponame)
-      || '.edge_data SET left_face = ' || newfaceid 
-      || ' WHERE left_face IN ('
-      || e1rec.left_face || ',' || e1rec.right_face 
-      || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'left_face update: %', sql;
-#endif
-    EXECUTE sql;
-
-    -- Update right_face for all edges still referencing old faces
-    sql := 'UPDATE ' || quote_ident(toponame)
-      || '.edge_data SET right_face = ' || newfaceid 
-      || ' WHERE right_face IN ('
-      || e1rec.left_face || ',' || e1rec.right_face 
-      || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'right_face update: %', sql;
-#endif
-    EXECUTE sql;
-
-    -- Update containing_face for all nodes still referencing old faces
-    sql := 'UPDATE ' || quote_ident(toponame)
-      || '.node SET containing_face = ' || newfaceid 
-      || ' WHERE containing_face IN ('
-      || e1rec.left_face || ',' || e1rec.right_face 
-      || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Isolated nodes update: %', sql;
-#endif
-    EXECUTE sql;
-
-    -- NOT IN THE SPECS:
-    -- Replace composition rows involving the two
-    -- faces as one involving the new face.
-    -- It takes a DELETE and an UPDATE to do all
-    sql := 'DELETE FROM ' || quote_ident(toponame)
-      || '.relation r USING topology.layer l '
-      || 'WHERE l.level = 0 AND l.feature_type = 3'
-      || ' AND l.topology_id = ' || topoid
-      || ' AND l.layer_id = r.layer_id AND abs(r.element_id) = '
-      || e1rec.left_face;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'SQL: %', sql;
-#endif
-    EXECUTE sql;
-    sql := 'UPDATE ' || quote_ident(toponame)
-      || '.relation r '
-      || ' SET element_id = ' || newfaceid 
-      || ' FROM topology.layer l WHERE l.level = 0 AND l.feature_type = 3'
-      || ' AND l.topology_id = ' || topoid
-      || ' AND l.layer_id = r.layer_id AND r.element_id = '
-      || e1rec.right_face;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'SQL: %', sql;
-#endif
-    EXECUTE sql;
-
-  END IF; -- } two faces healed...
-
-  -- Delete the edge
-  sql := 'DELETE FROM ' || quote_ident(toponame)
-    || '.edge_data WHERE edge_id = ' || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Edge deletion: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- Check if any of the edge nodes remains isolated, 
-  -- set containing_face  = newfaceid in that case
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.node n SET containing_face = ' || newfaceid
-    || ' WHERE node_id IN ('
-    || e1rec.start_node || ','
-    || e1rec.end_node || ') AND NOT EXISTS (SELECT edge_id FROM '
-    || quote_ident(toponame)
-    || '.edge_data WHERE start_node = n.node_id OR end_node = n.node_id)';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Checking for nodes left isolated: %', sql;
-#endif
-  EXECUTE sql;
-
-  IF e1rec.right_face != e1rec.left_face THEN -- {
-
-    -- Delete left face, if not universe
-    IF e1rec.left_face != 0 THEN
-      sql := 'DELETE FROM ' || quote_ident(toponame)
-        || '.face WHERE face_id = ' || e1rec.left_face; 
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'Left face deletion: %', sql;
-#endif
-      EXECUTE sql;
-    END IF;
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.3 
+--
+--  ST_RemoveIsoNode(atopology, anode)
+--
+CREATE OR REPLACE FUNCTION topology.ST_RemoveIsoNode(atopology varchar, anode integer)
+  RETURNS TEXT AS
+	'MODULE_PATHNAME','ST_RemoveIsoNode'
+  LANGUAGE 'c' VOLATILE;
+--} ST_RemoveIsoNode
 
-    -- Delete right face, if not universe
-    IF e1rec.right_face != 0
-    THEN
-      sql := 'DELETE FROM ' || quote_ident(toponame)
-        || '.face WHERE face_id = ' || e1rec.right_face;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'Right face deletion: %', sql;
-#endif
-      EXECUTE sql;
-    END IF;
+--{
+-- According to http://trac.osgeo.org/postgis/ticket/798
+-- ST_RemoveIsoNode was renamed to ST_RemIsoNode in the final ISO
+-- document
+--
+CREATE OR REPLACE FUNCTION topology.ST_RemIsoNode(varchar, integer)
+  RETURNS TEXT AS
+	'MODULE_PATHNAME','ST_RemoveIsoNode'
+  LANGUAGE 'c' VOLATILE;
+--} ST_RemIsoNode
 
-  END IF; -- }
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.7 
+--
+--  ST_RemoveIsoEdge(atopology, anedge)
+--
+CREATE OR REPLACE FUNCTION topology.ST_RemoveIsoEdge(atopology varchar, anedge integer)
+  RETURNS TEXT AS
+	'MODULE_PATHNAME','ST_RemIsoEdge'
+	LANGUAGE 'c' VOLATILE;
+--} ST_RemoveIsoEdge
 
-  IF newfacecreated THEN
-    RETURN newfaceid;
-  ELSE
-    RETURN NULL; -- -newfaceid;
-  END IF;
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_RemEdgeNewFace
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.8 
+--
+--  ST_NewEdgesSplit(atopology, anedge, apoint)
+--
+-- Not in the specs:
+-- * Update references in the Relation table.
+--
+CREATE OR REPLACE FUNCTION topology.ST_NewEdgesSplit(atopology varchar, anedge integer, apoint geometry)
+  RETURNS INTEGER AS
+  'MODULE_PATHNAME','ST_NewEdgesSplit'
+  LANGUAGE 'c' VOLATILE;
+--} ST_NewEdgesSplit
 
 --{
 -- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.15
+-- X.3.9 
 --
---  ST_RemEdgeModFace(atopology, anedge)
+--  ST_ModEdgeSplit(atopology, anedge, apoint)
 --
 -- Not in the specs:
--- * Raise an exception if any TopoGeometry is defined by only one
---   of the two faces that will dissolve.
--- * Raise an exception if any TopoGeometry is defined by 
---   the edge being removed.
--- * Properly set containg_face on nodes that remains isolated by the drop
--- * Update containg_face for isolated nodes in the dissolved faces
--- * Update references in the Relation table
--- * Return id of the face taking up the removed edge space
+-- * Update references in the Relation table.
+--
+CREATE OR REPLACE FUNCTION topology.ST_ModEdgeSplit(atopology varchar, anedge integer, apoint geometry)
+  RETURNS INTEGER AS
+	'MODULE_PATHNAME','ST_ModEdgeSplit'
+  LANGUAGE 'c' VOLATILE;
+--} ST_ModEdgesSplit
+
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.4 
+--
+--  ST_AddIsoEdge(atopology, anode, anothernode, acurve)
+-- 
+-- Not in the specs:
+-- * Reset containing_face for starting and ending point,
+--   as they stop being isolated nodes
+-- * Refuse to add a closed edge, as it would not be isolated
+--   (ie: would create a ring)
 --
 -- }{
-CREATE OR REPLACE FUNCTION topology.ST_RemEdgeModFace(toponame varchar, e1id integer)
-  RETURNS int
-AS
+--
+CREATE OR REPLACE FUNCTION topology.ST_AddIsoEdge(atopology varchar, anode integer, anothernode integer, acurve geometry)
+  RETURNS INTEGER AS
+	'MODULE_PATHNAME','ST_AddIsoEdge'
+  LANGUAGE 'c' VOLATILE;
+--} ST_AddIsoEdge
+
+-- Internal function used by ST_ChangeEdgeGeom to compare
+-- adjacent edges of an edge endpoint
+--
+-- @param anode the node to use edge end star of
+-- @param anedge the directed edge to get adjacents from
+--        if positive `anode' is assumed to be its start node
+--        if negative `anode' is assumed to be its end node
+--      
+-- @todo DROP, NOT NEEDED ANYMORE (might need to go in some _drop, I guess)
+-- {
+CREATE OR REPLACE FUNCTION topology._ST_AdjacentEdges(atopology varchar, anode integer, anedge integer)
+RETURNS integer[] AS
 $$
 DECLARE
-  e1rec RECORD;
-  rec RECORD;
-  fidary int[];
-  topoid int;
-  sql text;
-  floodfaceid int;
-  elink int;
+  ret integer[];
 BEGIN
-  --
-  -- toponame and face_id are required
-  -- 
-  IF toponame IS NULL OR e1id IS NULL THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  -- Get topology id
-  BEGIN
-    SELECT id FROM topology.topology
-      INTO STRICT topoid WHERE name = toponame;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END;
-
-  BEGIN
-    EXECUTE 'SELECT * FROM ' || quote_ident(toponame)
-      || '.edge_data WHERE edge_id = ' || e1id
-      INTO STRICT e1rec;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent edge %', e1id;
-      WHEN INVALID_SCHEMA_NAME THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-      WHEN UNDEFINED_TABLE THEN
-        RAISE EXCEPTION 'corrupted topology "%" (missing edge_data table)',
-          toponame;
-  END;
-
-  -- NOT IN THE SPECS:
-  -- Check that no TopoGeometry references the edge being removed
-  PERFORM topology._ST_RemEdgeCheck(toponame, topoid, e1id, e1rec.left_face, e1rec.right_face);
-
-  -- Update next_left_edge and next_right_edge face
-  -- for all edges bounding the new face
-  RAISE NOTICE 'Updating next_{right,left}_face of ring edges...';
-
-  -- TODO: reduce the following to 2 UPDATE rather than 4
-
-  -- Update next_left_edge of previous edges in left face -- {
-
-  elink := e1rec.next_left_edge;
-
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET next_left_edge = '
-    || elink
-    || ', abs_next_left_edge = '
-    || abs(elink)
-    || ' WHERE next_left_edge < 0 AND abs(next_left_edge) = '
-    || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'next_left_edge update: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- If the edge being removed links to self,
-  -- we use the other face
-  IF e1rec.abs_next_right_edge = e1rec.edge_id THEN
-    elink := e1rec.next_left_edge;
-  ELSE
-    elink := e1rec.next_right_edge;
-  END IF;
-
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET next_left_edge = '
-    || elink
-    || ', abs_next_left_edge = '
-    || abs(elink)
-    || ' WHERE next_left_edge > 0 AND abs(next_left_edge) = '
-    || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'next_left_edge update: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- }
-
-  -- Update next_right_edge of previous edges in right face -- {
-
-  elink := e1rec.next_left_edge;
-
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET next_right_edge = '
-    || elink
-    || ', abs_next_right_edge = '
-    || abs(elink)
-    || ' WHERE next_right_edge < 0 AND abs(next_right_edge) = '
-    || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'next_right_edge update: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- If the edge being removed links to self,
-  -- we use the other face
-  IF e1rec.abs_next_right_edge = e1rec.edge_id THEN
-    elink := e1rec.next_left_edge;
-  ELSE
-    elink := e1rec.next_right_edge;
-  END IF;
-
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.edge_data SET next_right_edge = '
-    || elink
-    || ', abs_next_right_edge = '
-    || abs(elink)
-    || ' WHERE next_right_edge > 0 AND abs(next_right_edge) = '
-    || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'next_right_edge update: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- }
-
-  IF e1rec.left_face = e1rec.right_face THEN -- {
-
-    floodfaceid = e1rec.left_face; 
-
-  ELSE -- }{
-
-    IF e1rec.left_face = 0 OR e1rec.right_face = 0 THEN -- {
-
-      --
-      -- We won't add any new face, but rather let the universe
-      -- flood the removed face.
-      --
-
-      floodfaceid = 0;
-
-    ELSE -- }{
-
-      -- we choose right face as the face that will remain
-      -- to be symmetric with ST_AddEdgeModFace 
-      floodfaceid = e1rec.right_face;
-
-      sql := 'UPDATE '
-        || quote_ident(toponame)
-        || '.face SET mbr = (SELECT '
-        -- minimum bounding rectangle is the union of the old faces mbr
-        -- (doing this without GEOS would be faster)
-        || 'ST_Envelope(ST_Union(mbr)) FROM '
-        || quote_ident(toponame)
-        || '.face WHERE face_id IN (' 
-        || e1rec.left_face || ',' || e1rec.right_face 
-        || ') ) WHERE face_id = ' || floodfaceid ;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'SQL: %', sql;
-#endif
-      EXECUTE sql;
-
-    END IF; -- }
-
-    -- Update left_face for all edges still referencing old faces
-    sql := 'UPDATE ' || quote_ident(toponame)
-      || '.edge_data SET left_face = ' || floodfaceid 
-      || ' WHERE left_face IN ('
-      || e1rec.left_face || ',' || e1rec.right_face 
-      || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'left_face update: %', sql;
-#endif
-    EXECUTE sql;
-
-    -- Update right_face for all edges still referencing old faces
-    sql := 'UPDATE ' || quote_ident(toponame)
-      || '.edge_data SET right_face = ' || floodfaceid 
-      || ' WHERE right_face IN ('
-      || e1rec.left_face || ',' || e1rec.right_face 
-      || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'right_face update: %', sql;
-#endif
-    EXECUTE sql;
-
-    -- Update containing_face for all nodes still referencing old faces
-    sql := 'UPDATE ' || quote_ident(toponame)
-      || '.node SET containing_face = ' || floodfaceid 
-      || ' WHERE containing_face IN ('
-      || e1rec.left_face || ',' || e1rec.right_face 
-      || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Isolated nodes update: %', sql;
-#endif
-    EXECUTE sql;
-
-    -- NOT IN THE SPECS:
-    -- Replace composition rows involving the two
-    -- faces as one involving the new face.
-    -- It takes a single DELETE to do that.
-    sql := 'DELETE FROM ' || quote_ident(toponame)
-      || '.relation r USING topology.layer l '
-      || 'WHERE l.level = 0 AND l.feature_type = 3'
-      || ' AND l.topology_id = ' || topoid
-      || ' AND l.layer_id = r.layer_id AND abs(r.element_id) IN ('
-      || e1rec.left_face || ',' || e1rec.right_face
-      || ') AND abs(r.element_id) != '
-      || floodfaceid; -- could be optimized..
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'SQL: %', sql;
-#endif
-    EXECUTE sql;
-
-  END IF; -- } two faces healed...
-
-  -- Delete the edge
-  sql := 'DELETE FROM ' || quote_ident(toponame)
-    || '.edge_data WHERE edge_id = ' || e1id;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Edge deletion: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- Check if any of the edge nodes remains isolated, 
-  -- set containing_face  = floodfaceid in that case
-  sql := 'UPDATE ' || quote_ident(toponame)
-    || '.node n SET containing_face = ' || floodfaceid
-    || ' WHERE node_id IN ('
-    || e1rec.start_node || ','
-    || e1rec.end_node || ') AND NOT EXISTS (SELECT edge_id FROM '
-    || quote_ident(toponame)
-    || '.edge_data WHERE start_node = n.node_id OR end_node = n.node_id)';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Checking for nodes left isolated: %', sql;
-#endif
-  EXECUTE sql;
-
-  IF e1rec.right_face != e1rec.left_face THEN -- {
-
-    -- Delete left face, if not universe and not "flood" face
-    IF e1rec.left_face != 0 AND e1rec.left_face != floodfaceid
-    THEN
-      sql := 'DELETE FROM ' || quote_ident(toponame)
-        || '.face WHERE face_id = ' || e1rec.left_face; 
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'Left face deletion: %', sql;
-#endif
-      EXECUTE sql;
-    END IF;
-
-    -- Delete right face, if not universe and not "flood" face
-    IF e1rec.right_face != 0 AND e1rec.right_face != floodfaceid
-    THEN
-      sql := 'DELETE FROM ' || quote_ident(toponame)
-        || '.face WHERE face_id = ' || e1rec.right_face;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'Right face deletion: %', sql;
-#endif
-      EXECUTE sql;
-    END IF;
-
-  END IF; -- }
+  WITH edgestar AS (
+    SELECT *, count(*) over () AS cnt
+    FROM topology.GetNodeEdges(atopology, anode)
+  )
+  SELECT ARRAY[ (
+      SELECT p.edge AS prev FROM edgestar p
+      WHERE p.sequence = CASE WHEN m.sequence-1 < 1 THEN cnt
+                         ELSE m.sequence-1 END
+    ), (
+      SELECT p.edge AS prev FROM edgestar p WHERE p.sequence = ((m.sequence)%cnt)+1
+    ) ]
+  FROM edgestar m
+  WHERE edge = anedge
+  INTO ret;
 
-  RETURN floodfaceid;
+  RETURN ret;
 END
 $$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_RemEdgeModFace
-
+LANGUAGE 'plpgsql' STABLE;
+--}
 
 --{
 -- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.16
+-- X.3.6
 --
---  ST_GetFaceGeometry(atopology, aface)
--- 
-CREATE OR REPLACE FUNCTION topology.ST_GetFaceGeometry(toponame varchar, aface integer)
-  RETURNS GEOMETRY AS
-$$
-DECLARE
-  rec RECORD;
-  sql TEXT;
-BEGIN
-
-  --
-  -- toponame and aface are required
-  -- 
-  IF toponame IS NULL OR aface IS NULL THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  IF NOT EXISTS(SELECT name FROM topology.topology WHERE name = toponame)  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END IF;
-
-  IF aface = 0 THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - universal face has no geometry';
-  END IF;
-
-  BEGIN
-
-    -- No such face
-    sql := 'SELECT NOT EXISTS (SELECT * from ' || quote_ident(toponame)
-      || '.face WHERE face_id = ' || aface
-      || ') as none';
-    EXECUTE sql INTO rec;
-    IF rec.none THEN
-      RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent face.';
-    END IF;
-
-    --
-    -- Construct face 
-    -- 
-    sql :=
-      'SELECT ST_BuildArea(ST_Collect(geom)) as geom FROM '
-      || quote_ident(toponame)
-      || '.edge_data WHERE left_face = ' || aface
-      || ' OR right_face = ' || aface;
-    FOR rec IN EXECUTE sql
-    LOOP
-      RETURN rec.geom;
-    END LOOP;
-
-  EXCEPTION
-    WHEN INVALID_SCHEMA_NAME THEN
-      RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-    WHEN UNDEFINED_TABLE THEN
-      RAISE EXCEPTION 'corrupted topology "%"', toponame;
-  END;
-
-  RETURN NULL;
-END
-$$
-LANGUAGE 'plpgsql' STABLE;
---} ST_GetFaceGeometry
-
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.1 
---
---  ST_AddIsoNode(atopology, aface, apoint)
---
-CREATE OR REPLACE FUNCTION topology.ST_AddIsoNode(atopology varchar, aface integer, apoint geometry)
-  RETURNS INTEGER AS
-$$
-DECLARE
-  rec RECORD;
-  nodeid integer;
-  sql text;
-  containingface integer;
-BEGIN
-
-  --
-  -- Atopology and apoint are required
-  -- 
-  IF atopology IS NULL OR apoint IS NULL THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  --
-  -- Atopology must  be registered
-  -- 
-  IF NOT EXISTS(SELECT name FROM topology.topology WHERE topology.name = atopology) THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - invalid topology name';
-  END IF;
-  --
-  -- Apoint must be a point
-  --
-  IF substring(geometrytype(apoint), 1, 5) != 'POINT'
-  THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - invalid point';
-  END IF;
-
-  --
-  -- Check if a coincident node already exists
-  -- 
-  -- We use index AND x/y equality
-  --
-  FOR rec IN EXECUTE 'SELECT node_id FROM '
-    || quote_ident(atopology) || '.node ' ||
-    'WHERE ST_Equals(geom, ' || quote_literal(apoint::text) || '::geometry)'
-  LOOP
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - coincident node';
-  END LOOP;
-
-  --
-  -- Check if any edge crosses (intersects) this node
-  -- I used _intersects_ here to include boundaries (endpoints)
-  --
-  FOR rec IN EXECUTE 'SELECT edge_id FROM '
-    || quote_ident(atopology) || '.edge ' 
-    || 'WHERE ST_Intersects(geom, ' || quote_literal(apoint::text)
-    || '::geometry)'
-  LOOP
-    RAISE EXCEPTION
-    'SQL/MM Spatial exception - edge crosses node.';
-  END LOOP;
-
-  -- retrieve the face that contains (eventually) the point
-  
-  --
-  -- first test is to check if there is inside an mbr (more fast)
-  --
-  sql := 'SELECT f.face_id FROM ' 
-        || quote_ident(atopology) 
-        || '.face f WHERE f.face_id > 0 AND f.mbr && '
-        || quote_literal(apoint::text)
-        || '::geometry AND ST_Contains(topology.ST_GetFaceGeometry('
-        || quote_literal(atopology) 
-        || ', f.face_id), '
-        || quote_literal(apoint::text)
-        || '::geometry)';
-  IF aface IS NOT NULL AND aface != 0 THEN
-    sql := sql || ' AND f.face_id = ' || aface;
-  END IF;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG '%', sql;
-#endif
-  EXECUTE sql INTO containingface;
-
-  -- If aface was specified, check that it was correct
-  IF aface IS NOT NULL THEN -- {
-    IF aface = 0 THEN -- {
-      IF containingface IS NOT NULL THEN -- {
-        RAISE EXCEPTION
-          'SQL/MM Spatial exception - within face % (not universe)',
-          containingface;
-      ELSE -- }{
-        containingface := 0;
-      END IF; -- }
-    ELSE -- }{ -- aface != 0
-      IF containingface IS NULL OR containingface != aface THEN -- {
-        RAISE EXCEPTION 'SQL/MM Spatial exception - not within face';
-      END IF; -- }
-    END IF; -- }
-  ELSE -- }{ -- aface is null
-    containingface := COALESCE(containingface, 0);
-  END IF; -- }
-
-  --
-  -- Insert the new row
-  --
-  sql := 'INSERT INTO '
-      || quote_ident(atopology)
-      || '.node(node_id, geom, containing_face) SELECT nextval('
-      || quote_literal( quote_ident(atopology) || '.node_node_id_seq' )
-      || '),'
-      ||quote_literal(apoint::text)
-      || '::geometry,' || containingface
-      || ' RETURNING node_id';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG '%', sql;
-#endif
-
-  EXECUTE sql INTO nodeid;
-
-  RETURN nodeid;
-EXCEPTION
-  -- TODO: avoid the EXCEPTION handling here ?
-  WHEN INVALID_SCHEMA_NAME THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_AddIsoNode
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.2 
---
---  ST_MoveIsoNode(atopology, anode, apoint)
---
-CREATE OR REPLACE FUNCTION topology.ST_MoveIsoNode(atopology character varying, anode integer, apoint geometry)
-  RETURNS text AS
-$$
-DECLARE
-  rec RECORD;
-BEGIN
-
-  --
-  -- All arguments are required
-  -- 
-  IF atopology IS NULL OR anode IS NULL OR apoint IS NULL THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  --
-  -- Apoint must be a point
-  --
-  IF substring(geometrytype(apoint), 1, 5) != 'POINT'
-  THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - invalid point';
-  END IF;
-
-  --
-  -- Check node isolation.
-  -- 
-  FOR rec IN EXECUTE 'SELECT edge_id FROM '
-    || quote_ident(atopology) || '.edge ' ||
-    ' WHERE start_node =  ' || anode ||
-    ' OR end_node = ' || anode 
-  LOOP
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - not isolated node';
-  END LOOP;
-
-  --
-  -- Check if a coincident node already exists
-  -- 
-  -- We use index AND x/y equality
-  --
-  FOR rec IN EXECUTE 'SELECT node_id FROM '
-    || quote_ident(atopology) || '.node ' ||
-    'WHERE geom && ' || quote_literal(apoint::text) || '::geometry'
-    ||' AND ST_X(geom) = ST_X('||quote_literal(apoint::text)||'::geometry)'
-    ||' AND ST_Y(geom) = ST_Y('||quote_literal(apoint::text)||'::geometry)'
-  LOOP
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - coincident node';
-  END LOOP;
-
-  --
-  -- Check if any edge crosses (intersects) this node
-  -- I used _intersects_ here to include boundaries (endpoints)
-  --
-  FOR rec IN EXECUTE 'SELECT edge_id FROM '
-    || quote_ident(atopology) || '.edge ' 
-    || 'WHERE geom && ' || quote_literal(apoint::text) 
-    || ' AND ST_Intersects(geom, ' || quote_literal(apoint::text)
-    || '::geometry)'
-  LOOP
-    RAISE EXCEPTION
-    'SQL/MM Spatial exception - edge crosses node.';
-  END LOOP;
-
-  --
-  -- Update node point
-  --
-  EXECUTE 'UPDATE ' || quote_ident(atopology) || '.node '
-    || ' SET geom = ' || quote_literal(apoint::text) 
-    || ' WHERE node_id = ' || anode;
-
-  RETURN 'Isolated Node ' || anode || ' moved to location '
-    || ST_X(apoint) || ',' || ST_Y(apoint);
-END
-$$
-  LANGUAGE plpgsql VOLATILE;
---} ST_MoveIsoNode
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.3 
+--  ST_ChangeEdgeGeom(atopology, anedge, acurve)
 --
---  ST_RemoveIsoNode(atopology, anode)
+-- Not in the specs:
+-- * Raise an exception if given a non-existent edge
+-- * Raise an exception if movement is not topologically isomorphic
 --
-CREATE OR REPLACE FUNCTION topology.ST_RemoveIsoNode(atopology varchar, anode integer)
+-- }{
+CREATE OR REPLACE FUNCTION topology.ST_ChangeEdgeGeom(atopology varchar, anedge integer, acurve geometry)
   RETURNS TEXT AS
-$$
-DECLARE
-  rec RECORD;
-BEGIN
-
-  --
-  -- Atopology and apoint are required
-  -- 
-  IF atopology IS NULL OR anode IS NULL THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  --
-  -- Check node isolation.
-  -- 
-  FOR rec IN EXECUTE 'SELECT edge_id FROM '
-    || quote_ident(atopology) || '.edge_data ' ||
-    ' WHERE start_node =  ' || anode ||
-    ' OR end_node = ' || anode 
-  LOOP
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - not isolated node';
-  END LOOP;
-
-  EXECUTE 'DELETE FROM ' || quote_ident(atopology) || '.node '
-    || ' WHERE node_id = ' || anode;
-
-  RETURN 'Isolated node ' || anode || ' removed';
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_RemoveIsoNode
+	'MODULE_PATHNAME','ST_ChangeEdgeGeom'
+  LANGUAGE 'c' VOLATILE;
+--} ST_ChangeEdgeGeom
 
---{
--- According to http://trac.osgeo.org/postgis/ticket/798
--- ST_RemoveIsoNode was renamed to ST_RemIsoNode in the final ISO
--- document
 --
-CREATE OR REPLACE FUNCTION topology.ST_RemIsoNode(varchar, integer)
-  RETURNS TEXT AS
-$$
-  SELECT topology.ST_RemoveIsoNode($1, $2)
-$$ LANGUAGE 'sql' VOLATILE;
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.7 
+-- _ST_AddFaceSplit
 --
---  ST_RemoveIsoEdge(atopology, anedge)
+-- Add a split face by walking on the edge side.
 --
-CREATE OR REPLACE FUNCTION topology.ST_RemoveIsoEdge(atopology varchar, anedge integer)
-  RETURNS TEXT AS
-$$
-DECLARE
-  edge RECORD;
-  rec RECORD;
-  ok BOOL;
-BEGIN
-
-  --
-  -- Atopology and anedge are required
-  -- 
-  IF atopology IS NULL OR anedge IS NULL THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  --
-  -- Check node existance
-  -- 
-  ok = false;
-  FOR edge IN EXECUTE 'SELECT * FROM '
-    || quote_ident(atopology) || '.edge_data ' ||
-    ' WHERE edge_id =  ' || anedge
-  LOOP
-    ok = true;
-  END LOOP;
-  IF NOT ok THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - non-existent edge';
-  END IF;
-
-  --
-  -- Check node isolation
-  -- 
-  IF edge.left_face != edge.right_face THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - not isolated edge';
-  END IF;
-
-  FOR rec IN EXECUTE 'SELECT * FROM '
-    || quote_ident(atopology) || '.edge_data ' 
-    || ' WHERE edge_id !=  ' || anedge
-    || ' AND ( start_node = ' || edge.start_node
-    || ' OR start_node = ' || edge.end_node
-    || ' OR end_node = ' || edge.start_node
-    || ' OR end_node = ' || edge.end_node
-    || ' ) '
-  LOOP
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - not isolated edge';
-  END LOOP;
-
-  --
-  -- Delete the edge
-  --
-  EXECUTE 'DELETE FROM ' || quote_ident(atopology) || '.edge_data '
-    || ' WHERE edge_id = ' || anedge;
-
-  RETURN 'Isolated edge ' || anedge || ' removed';
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_RemoveIsoEdge
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.8 
+-- @param atopology topology name
+-- @param anedge edge id and walking side (left:positive right:negative)
+-- @param oface the face in which the edge identifier is known to be
+-- @param mbr_only do not create a new face but update MBR of the current
 --
---  ST_NewEdgesSplit(atopology, anedge, apoint)
+-- The created face, if any, will be at the left hand of the walking path
 --
--- Not in the specs:
--- * Update references in the Relation table.
---
-CREATE OR REPLACE FUNCTION topology.ST_NewEdgesSplit(atopology varchar, anedge integer, apoint geometry)
-  RETURNS INTEGER AS
-$$
-DECLARE
-  oldedge RECORD;
-  rec RECORD;
-  tmp integer;
-  topoid integer;
-  nodeid integer;
-  nodepos float8;
-  edgeid1 integer;
-  edgeid2 integer;
-  edge1 geometry;
-  edge2 geometry;
-  ok BOOL;
-BEGIN
-
-  --
-  -- All args required
-  -- 
-  IF atopology IS NULL OR anedge IS NULL OR apoint IS NULL THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - null argument';
-  END IF;
-  
-  -- Get topology id
-  BEGIN
-    SELECT id FROM topology.topology
-      INTO STRICT topoid WHERE name = atopology;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END;
-
-  --
-  -- Check node existance
-  -- 
-  ok = false;
-  FOR oldedge IN EXECUTE 'SELECT * FROM '
-    || quote_ident(atopology) || '.edge_data ' ||
-    ' WHERE edge_id =  ' || anedge
-  LOOP
-    ok = true;
-  END LOOP;
-  IF NOT ok THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - non-existent edge';
-  END IF;
-
-  --
-  -- Check that given point is Within(anedge.geom)
-  -- 
-  IF NOT ST_Within(apoint, oldedge.geom) THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - point not on edge';
-  END IF;
-
-  --
-  -- Check if a coincident node already exists
-  --
-  FOR rec IN EXECUTE 'SELECT node_id FROM '
-    || quote_ident(atopology) || '.node '
-    || 'WHERE geom && '
-    || quote_literal(apoint::text) || '::geometry'
-    || ' AND ST_X(geom) = ST_X('
-    || quote_literal(apoint::text) || '::geometry)'
-    || ' AND ST_Y(geom) = ST_Y('
-    || quote_literal(apoint::text) || '::geometry)'
-  LOOP
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - coincident node';
-  END LOOP;
-
-  --
-  -- Get new node id
-  --
-  FOR rec IN EXECUTE 'SELECT nextval(''' ||
-    atopology || '.node_node_id_seq'')'
-  LOOP
-    nodeid = rec.nextval;
-  END LOOP;
-
-  --RAISE NOTICE 'Next node id = % ', nodeid;
-
-  --
-  -- Add the new node 
-  --
-  EXECUTE 'INSERT INTO ' || quote_ident(atopology)
-    || '.node(node_id, geom) 
-    VALUES(' || nodeid || ','
-    || quote_literal(apoint::text)
-    || ')';
-
-  --
-  -- Delete the old edge
-  --
-  EXECUTE 'DELETE FROM ' || quote_ident(atopology) || '.edge_data '
-    || ' WHERE edge_id = ' || anedge;
-
-  --
-  -- Compute new edges
-  --
-  edge2 := ST_Split(oldedge.geom, apoint);
-  edge1 := ST_GeometryN(edge2, 1);
-  edge2 := ST_GeometryN(edge2, 2);
-
-  --
-  -- Get ids for the new edges 
-  --
-  FOR rec IN EXECUTE 'SELECT nextval(''' ||
-    atopology || '.edge_data_edge_id_seq'')'
-  LOOP
-    edgeid1 = rec.nextval;
-  END LOOP;
-  FOR rec IN EXECUTE 'SELECT nextval(''' ||
-    atopology || '.edge_data_edge_id_seq'')'
-  LOOP
-    edgeid2 = rec.nextval;
-  END LOOP;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' inserting new edges % and % split from %', edgeid1, edgeid2, anedge;
-#endif
-
-  --RAISE NOTICE 'EdgeId1 % EdgeId2 %', edgeid1, edgeid2;
-
-  --RAISE DEBUG 'oldedge.next_left_edge: %', oldedge.next_left_edge;
-  --RAISE DEBUG 'oldedge.next_right_edge: %', oldedge.next_right_edge;
-
-  --
-  -- Insert the two new edges
-  --
-  EXECUTE 'INSERT INTO ' || quote_ident(atopology)
-    || '.edge VALUES('
-    || edgeid1                                -- edge_id
-    || ',' || oldedge.start_node              -- start_node
-    || ',' || nodeid                          -- end_node
-    || ',' || edgeid2                         -- next_left_edge
-    || ',' || CASE                            -- next_right_edge
-               WHEN 
-                oldedge.next_right_edge = anedge
-               THEN edgeid1
-               WHEN
-                oldedge.next_right_edge = -anedge
-               THEN -edgeid2
-               ELSE oldedge.next_right_edge
-              END
-    || ',' || oldedge.left_face               -- left_face
-    || ',' || oldedge.right_face              -- right_face
-    || ',' || quote_literal(edge1::text)      -- geom
-    ||')';
-
-  EXECUTE 'INSERT INTO ' || quote_ident(atopology)
-    || '.edge VALUES('
-    || edgeid2                                -- edge_id
-    || ',' || nodeid                          -- start_node
-    || ',' || oldedge.end_node                -- end_node
-    || ',' || CASE                            -- next_left_edge
-               WHEN 
-                oldedge.next_left_edge =
-                -anedge
-               THEN -edgeid2
-               WHEN 
-                oldedge.next_left_edge =
-                anedge
-               THEN edgeid1
-               ELSE oldedge.next_left_edge
-              END
-    || ',' || -edgeid1                        -- next_right_edge
-    || ',' || oldedge.left_face               -- left_face
-    || ',' || oldedge.right_face              -- right_face
-    || ',' || quote_literal(edge2::text)      -- geom
-    ||')';
-
-  --
-  -- Update all next edge references to match new layout
-  --
-
-  EXECUTE 'UPDATE ' || quote_ident(atopology)
-    || '.edge_data SET next_right_edge = '
-    || edgeid2
-    || ','
-    || ' abs_next_right_edge = ' || edgeid2
-    || ' WHERE next_right_edge = ' || anedge
-    || ' AND start_node = ' || oldedge.start_node
-    || ' AND edge_id NOT IN (' || edgeid1 || ',' || edgeid2 || ')'
-    ;
-  EXECUTE 'UPDATE ' || quote_ident(atopology)
-    || '.edge_data SET next_right_edge = '
-    || -edgeid1
-    || ','
-    || ' abs_next_right_edge = ' || edgeid1
-    || ' WHERE next_right_edge = ' || -anedge
-    || ' AND start_node = ' || oldedge.end_node
-    || ' AND edge_id NOT IN (' || edgeid1 || ',' || edgeid2 || ')'
-    ;
-
-  EXECUTE 'UPDATE ' || quote_ident(atopology)
-    || '.edge_data SET next_left_edge = '
-    || edgeid1
-    || ','
-    || ' abs_next_left_edge = ' || edgeid1
-    || ' WHERE next_left_edge = ' || anedge
-    || ' AND end_node = ' || oldedge.start_node
-    || ' AND edge_id NOT IN (' || edgeid1 || ',' || edgeid2 || ')'
-    ;
-  EXECUTE 'UPDATE ' || quote_ident(atopology)
-    || '.edge_data SET '
-    || ' next_left_edge = ' || -edgeid2
-    || ','
-    || ' abs_next_left_edge = ' || edgeid2
-    || ' WHERE next_left_edge = ' || -anedge
-    || ' AND end_node = ' || oldedge.end_node
-    || ' AND edge_id NOT IN (' || edgeid1 || ',' || edgeid2 || ')'
-    ;
-
-  --
-  -- Update references in the Relation table.
-  -- We only take into considerations non-hierarchical
-  -- TopoGeometry here, for obvious reasons.
-  --
-  FOR rec IN EXECUTE 'SELECT r.* FROM '
-    || quote_ident(atopology)
-    || '.relation r, topology.layer l '
-    || ' WHERE '
-    || ' l.topology_id = ' || topoid
-    || ' AND l.level = 0 '
-    || ' AND l.layer_id = r.layer_id '
-    || ' AND abs(r.element_id) = ' || anedge
-    || ' AND r.element_type = 2'
-  LOOP
-    --RAISE NOTICE 'TopoGeometry % in layer % contains the edge being split', rec.topogeo_id, rec.layer_id;
-
-    -- Delete old reference
-    EXECUTE 'DELETE FROM ' || quote_ident(atopology)
-      || '.relation '
-      || ' WHERE '
-      || 'layer_id = ' || rec.layer_id
-      || ' AND '
-      || 'topogeo_id = ' || rec.topogeo_id
-      || ' AND '
-      || 'element_type = ' || rec.element_type
-      || ' AND '
-      || 'abs(element_id) = ' || anedge;
-
-    -- Add new reference to edge1
-    IF rec.element_id < 0 THEN
-      tmp = -edgeid1;
-    ELSE
-      tmp = edgeid1;
-    END IF;
-    EXECUTE 'INSERT INTO ' || quote_ident(atopology)
-      || '.relation '
-      || ' VALUES( '
-      || rec.topogeo_id
-      || ','
-      || rec.layer_id
-      || ','
-      || tmp
-      || ','
-      || rec.element_type
-      || ')';
-
-    -- Add new reference to edge2
-    IF rec.element_id < 0 THEN
-      tmp = -edgeid2;
-    ELSE
-      tmp = edgeid2;
-    END IF;
-    EXECUTE 'INSERT INTO ' || quote_ident(atopology)
-      || '.relation '
-      || ' VALUES( '
-      || rec.topogeo_id
-      || ','
-      || rec.layer_id
-      || ','
-      || tmp
-      || ','
-      || rec.element_type
-      || ')';
-      
-  END LOOP;
-
-  --RAISE NOTICE 'Edge % split in edges % and % by node %',
-  --  anedge, edgeid1, edgeid2, nodeid;
-
-  RETURN nodeid; 
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_NewEdgesSplit
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.9 
---
---  ST_ModEdgeSplit(atopology, anedge, apoint)
---
--- Not in the specs:
--- * Update references in the Relation table.
---
-CREATE OR REPLACE FUNCTION topology.ST_ModEdgeSplit(atopology varchar, anedge integer, apoint geometry)
-  RETURNS INTEGER AS
-$$
-DECLARE
-  oldedge RECORD;
-  rec RECORD;
-  tmp integer;
-  topoid integer;
-  nodeid integer;
-  nodepos float8;
-  newedgeid integer;
-  newedge1 geometry;
-  newedge2 geometry;
-  query text;
-  ok BOOL;
-BEGIN
-
-  --
-  -- All args required
-  -- 
-  IF atopology IS NULL OR anedge IS NULL OR apoint IS NULL THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  -- Get topology id
-  BEGIN
-    SELECT id FROM topology.topology
-      INTO STRICT topoid WHERE name = atopology;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END;
-
-  --
-  -- Check node existance
-  -- 
-  ok = false;
-  FOR oldedge IN EXECUTE 'SELECT * FROM '
-    || quote_ident(atopology) || '.edge_data ' ||
-    ' WHERE edge_id =  ' || anedge
-  LOOP
-    ok = true;
-  END LOOP;
-  IF NOT ok THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - non-existent edge';
-  END IF;
-
-  --
-  -- Check that given point is Within(anedge.geom)
-  -- 
-  IF NOT ST_Within(apoint, oldedge.geom) THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - point not on edge';
-  END IF;
-
-  --
-  -- Check if a coincident node already exists
-  --
-  FOR rec IN EXECUTE 'SELECT node_id FROM '
-    || quote_ident(atopology) || '.node ' ||
-    'WHERE geom && '
-    || quote_literal(apoint::text) || '::geometry'
-    ||' AND ST_X(geom) = ST_X('
-    || quote_literal(apoint::text) || '::geometry)'
-    ||' AND ST_Y(geom) = ST_Y('
-    ||quote_literal(apoint::text)||'::geometry)'
-  LOOP
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - coincident node';
-  END LOOP;
-
-  --
-  -- Get new node id
-  --
-  FOR rec IN EXECUTE 'SELECT nextval(''' ||
-    atopology || '.node_node_id_seq'')'
-  LOOP
-    nodeid = rec.nextval;
-  END LOOP;
-
-  --RAISE NOTICE 'Next node id = % ', nodeid;
-
-  --
-  -- Add the new node 
-  --
-  EXECUTE 'INSERT INTO ' || quote_ident(atopology)
-    || '.node(node_id, geom) 
-    VALUES('||nodeid||','||quote_literal(apoint::text)||
-    ')';
-
-  --
-  -- Compute new edge
-  --
-  newedge2 := ST_Split(oldedge.geom, apoint);
-  newedge1 := ST_GeometryN(newedge2, 1);
-  newedge2 := ST_GeometryN(newedge2, 2);
-
-  --
-  -- Get ids for the new edge
-  --
-  FOR rec IN EXECUTE 'SELECT nextval(''' ||
-    atopology || '.edge_data_edge_id_seq'')'
-  LOOP
-    newedgeid = rec.nextval;
-  END LOOP;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' inserting new edge % split from %', newedgeid, anedge;
-#endif
-
-  --
-  -- Insert the new edge
-  --
-  EXECUTE 'INSERT INTO ' || quote_ident(atopology)
-    || '.edge '
-    || '(edge_id, start_node, end_node,'
-    || 'next_left_edge, next_right_edge,'
-    || 'left_face, right_face, geom) '
-    || 'VALUES('
-    || newedgeid
-    || ',' || nodeid
-    || ',' || oldedge.end_node
-    || ',' || COALESCE(                      -- next_left_edge
-                NULLIF(
-                  oldedge.next_left_edge,
-                  -anedge
-                ),
-                -newedgeid
-              )
-    || ',' || -anedge                        -- next_right_edge
-    || ',' || oldedge.left_face              -- left_face
-    || ',' || oldedge.right_face             -- right_face
-    || ',' || quote_literal(newedge2::text)  -- geom
-    ||')';
-
-  --
-  -- Update the old edge
-  --
-  EXECUTE 'UPDATE ' || quote_ident(atopology) || '.edge_data '
-    || ' SET geom = ' || quote_literal(newedge1::text)
-    || ','
-    || ' next_left_edge = ' || newedgeid
-    || ', abs_next_left_edge = ' || newedgeid
-    || ','
-    || ' end_node = ' || nodeid
-    || ' WHERE edge_id = ' || anedge;
-
-
-  --
-  -- Update all next edge references to match new layout
-  --
-
-  EXECUTE 'UPDATE ' || quote_ident(atopology)
-    || '.edge_data SET next_right_edge = '
-    || -newedgeid 
-    || ','
-    || ' abs_next_right_edge = ' || newedgeid
-    || ' WHERE edge_id != ' || newedgeid
-    || ' AND next_right_edge = ' || -anedge
-    || ' AND start_node = ' || oldedge.end_node;
-
-  EXECUTE 'UPDATE ' || quote_ident(atopology)
-    || '.edge_data SET '
-    || ' next_left_edge = ' || -newedgeid
-    || ','
-    || ' abs_next_left_edge = ' || newedgeid
-    || ' WHERE edge_id != ' || newedgeid
-    || ' AND next_left_edge = ' || -anedge
-    || ' AND end_node = ' || oldedge.end_node;
-
-  --
-  -- Update references in the Relation table.
-  -- We only take into considerations non-hierarchical
-  -- TopoGeometry here, for obvious reasons.
-  --
-  FOR rec IN EXECUTE 'SELECT r.* FROM '
-    || quote_ident(atopology)
-    || '.relation r, topology.layer l '
-    || ' WHERE '
-    || ' l.topology_id = ' || topoid
-    || ' AND l.level = 0 '
-    || ' AND l.layer_id = r.layer_id '
-    || ' AND abs(r.element_id) = ' || anedge
-    || ' AND r.element_type = 2'
-  LOOP
-    --RAISE NOTICE 'TopoGeometry % in layer % contains the edge being split (%) - updating to add new edge %', rec.topogeo_id, rec.layer_id, anedge, newedgeid;
-
-    -- Add new reference to edge1
-    IF rec.element_id < 0 THEN
-      tmp = -newedgeid;
-    ELSE
-      tmp = newedgeid;
-    END IF;
-    query = 'INSERT INTO ' || quote_ident(atopology)
-      || '.relation '
-      || ' VALUES( '
-      || rec.topogeo_id
-      || ','
-      || rec.layer_id
-      || ','
-      || tmp
-      || ','
-      || rec.element_type
-      || ')';
-
-    --RAISE NOTICE '%', query;
-    EXECUTE query;
-  END LOOP;
-
-  --RAISE NOTICE 'Edge % split in edges % and % by node %',
-  --  anedge, anedge, newedgeid, nodeid;
-
-  RETURN nodeid; 
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_ModEdgesSplit
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.4 
---
---  ST_AddIsoEdge(atopology, anode, anothernode, acurve)
--- 
--- Not in the specs:
--- * Reset containing_face for starting and ending point,
---   as they stop being isolated nodes
--- * Refuse to add a closed edge, as it would not be isolated
---   (ie: would create a ring)
---
--- }{
---
-CREATE OR REPLACE FUNCTION topology.ST_AddIsoEdge(atopology varchar, anode integer, anothernode integer, acurve geometry)
-  RETURNS INTEGER AS
-$$
-DECLARE
-  aface INTEGER;
-  face GEOMETRY;
-  snodegeom GEOMETRY;
-  enodegeom GEOMETRY;
-  count INTEGER;
-  rec RECORD;
-  edgeid INTEGER;
-BEGIN
-
-  --
-  -- All arguments required
-  -- 
-  IF atopology IS NULL
-     OR anode IS NULL
-     OR anothernode IS NULL
-     OR acurve IS NULL
-  THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  -- NOT IN THE SPECS:
-  -- A closed edge is never isolated (as it forms a face)
-  IF anode = anothernode THEN
-      RAISE EXCEPTION
-       'Closed edges would not be isolated, try ST_AddEdgeNewFaces';
-  END IF;
-
-  --
-  -- Acurve must be a LINESTRING
-  --
-  IF substring(geometrytype(acurve), 1, 4) != 'LINE'
-  THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - invalid curve';
-  END IF;
-
-  --
-  -- Acurve must be simple
-  --
-  IF NOT ST_IsSimple(acurve)
-  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - curve not simple';
-  END IF;
-
-  --
-  -- Check for:
-  --    existence of nodes
-  --    nodes faces match
-  -- Extract:
-  --    nodes face id
-  --    nodes geoms
-  --
-  aface := NULL;
-  count := 0;
-  FOR rec IN EXECUTE 'SELECT geom, containing_face, node_id FROM '
-    || quote_ident(atopology) || '.node
-    WHERE node_id = ' || anode ||
-    ' OR node_id = ' || anothernode
-  LOOP 
-
-    IF rec.containing_face IS NULL THEN
-      RAISE EXCEPTION 'SQL/MM Spatial exception - not isolated node';
-    END IF;
-
-    IF aface IS NULL THEN
-      aface := rec.containing_face;
-    ELSE
-      IF aface != rec.containing_face THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - nodes in different faces';
-      END IF;
-    END IF;
-
-    -- Get nodes geom
-    IF rec.node_id = anode THEN
-      snodegeom = rec.geom;
-    ELSE
-      enodegeom = rec.geom;
-    END IF;
-
-    count = count+1;
-
-  END LOOP;
-
-  -- TODO: don't need count, can do with snodegeom/enodegeom instead..
-  IF count < 2 THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent node';
-  END IF;
-
-
-  --
-  -- l) Check that start point of acurve match start node
-  -- geoms.
-  -- 
-  IF ST_X(snodegeom) != ST_X(ST_StartPoint(acurve)) OR
-     ST_Y(snodegeom) != ST_Y(ST_StartPoint(acurve))
-  THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - start node not geometry start point.';
-  END IF;
-
-  --
-  -- m) Check that end point of acurve match end node
-  -- geoms.
-  -- 
-  IF ST_X(enodegeom) != ST_X(ST_EndPoint(acurve)) OR
-     ST_Y(enodegeom) != ST_Y(ST_EndPoint(acurve))
-  THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - end node not geometry end point.';
-  END IF;
-
-  --
-  -- n) Check if curve crosses (contains) any node
-  -- I used _contains_ here to leave endpoints out
-  -- 
-  FOR rec IN EXECUTE 'SELECT node_id FROM '
-    || quote_ident(atopology) || '.node '
-    || ' WHERE geom && ' || quote_literal(acurve::text) 
-    || ' AND ST_Contains(' || quote_literal(acurve::text)
-    || ',geom)'
-  LOOP
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - geometry crosses a node';
-  END LOOP;
-
-  --
-  -- o) Check if curve intersects any other edge
-  -- 
-  FOR rec IN EXECUTE 'SELECT * FROM '
-    || quote_ident(atopology) || '.edge_data
-    WHERE ST_Intersects(geom, ' || quote_literal(acurve::text) || '::geometry)'
-  LOOP
-    RAISE EXCEPTION 'SQL/MM Spatial exception - geometry intersects an edge';
-  END LOOP;
-
-  --
-  -- Get new edge id from sequence
-  --
-  FOR rec IN EXECUTE 'SELECT nextval(''' ||
-    atopology || '.edge_data_edge_id_seq'')'
-  LOOP
-    edgeid = rec.nextval;
-  END LOOP;
-
-  -- TODO: this should likely be an exception instead !
-  IF aface IS NULL THEN
-    aface := 0;
-  END IF;
-
-  --
-  -- Insert the new row
-  --
-  EXECUTE 'INSERT INTO ' || quote_ident(atopology)
-    || '.edge VALUES(' || edgeid || ',' || anode
-    || ',' || anothernode || ',' || (-edgeid)
-    || ',' || edgeid || ','
-    || aface || ',' || aface || ','
-    || quote_literal(acurve::text) || ')';
-
-  --
-  -- Update Node containing_face values
-  --
-  -- the nodes anode and anothernode are no more isolated
-  -- because now there is an edge connecting them
-  -- 
-  EXECUTE 'UPDATE ' || quote_ident(atopology)
-    || '.node SET containing_face = NULL where (node_id ='
-    || anode
-    || ' OR node_id='
-    || anothernode
-    || ')';
-
-  RETURN edgeid;
-
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_AddIsoEdge
-
--- Internal function used by ST_ChangeEdgeGeom to compare
--- adjacent edges of an edge endpoint
---
--- @param anode the node to use edge end star of
--- @param anedge the directed edge to get adjacents from
---        if positive `anode' is assumed to be its start node
---        if negative `anode' is assumed to be its end node
---      
--- {
-CREATE OR REPLACE FUNCTION topology._ST_AdjacentEdges(atopology varchar, anode integer, anedge integer)
-RETURNS integer[] AS
-$$
-DECLARE
-  ret integer[];
-BEGIN
-  WITH edgestar AS (
-    SELECT *, count(*) over () AS cnt
-    FROM topology.GetNodeEdges(atopology, anode)
-  )
-  SELECT ARRAY[ (
-      SELECT p.edge AS prev FROM edgestar p
-      WHERE p.sequence = CASE WHEN m.sequence-1 < 1 THEN cnt
-                         ELSE m.sequence-1 END
-    ), (
-      SELECT p.edge AS prev FROM edgestar p WHERE p.sequence = ((m.sequence)%cnt)+1
-    ) ]
-  FROM edgestar m
-  WHERE edge = anedge
-  INTO ret;
-
-  RETURN ret;
-END
-$$
-LANGUAGE 'plpgsql' STABLE;
---}
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.6
---
---  ST_ChangeEdgeGeom(atopology, anedge, acurve)
---
--- Not in the specs:
--- * Raise an exception if given a non-existent edge
--- * Raise an exception if movement is not topologically isomorphic
---
--- }{
-CREATE OR REPLACE FUNCTION topology.ST_ChangeEdgeGeom(atopology varchar, anedge integer, acurve geometry)
-  RETURNS TEXT AS
-$$
-DECLARE
-  rec RECORD;
-  rng_info RECORD; -- movement range info
-  oldedge RECORD;
-  range GEOMETRY; -- movement range
-  tmp1 GEOMETRY;
-  snode_info RECORD;
-  enode_info RECORD;
-  sql TEXT;
-  iscw BOOLEAN;
-BEGIN
-
-  --
-  -- All arguments required
-  -- 
-  IF atopology IS NULL
-     OR anedge IS NULL
-     OR acurve IS NULL
-  THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  --
-  -- Acurve must be a LINESTRING
-  --
-  IF substring(geometrytype(acurve), 1, 4) != 'LINE'
-  THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - invalid curve';
-  END IF;
-
-  --
-  -- Acurve must be a simple
-  --
-  IF NOT ST_IsSimple(acurve)
-  THEN
-    RAISE EXCEPTION
-     'SQL/MM Spatial exception - curve not simple';
-  END IF;
-
-  --
-  -- Get data about existing edge
-  --
-  BEGIN
-    EXECUTE 'SELECT * FROM ' || quote_ident(atopology) || '.edge_data  '
-      || ' WHERE edge_id = ' || anedge
-    INTO STRICT oldedge;
-  EXCEPTION
-    -- NOT IN THE SPECS: check given edge existance
-    WHEN NO_DATA_FOUND THEN
-      RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent edge %', anedge;
-  END;
-
-  --
-  -- e) Check StartPoint consistency
-  --
-  IF NOT ST_Equals(ST_StartPoint(acurve), ST_StartPoint(oldedge.geom)) THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - start node not geometry start point.';
-  END IF;
-
-  IF oldedge.start_node = oldedge.end_node THEN -- {
-
-    -- Not in the specs:
-    -- if the edge is closed, check we didn't change winding !
-    --       (should be part of isomorphism checking)
-    range := ST_MakePolygon(oldedge.geom);
-    iscw := ST_OrderingEquals(range, ST_ForceRHR(range));
-
-    IF ST_NumPoints(ST_RemoveRepeatedPoints(acurve)) < 3 THEN
-      RAISE EXCEPTION 'Invalid edge (no two distinct vertices exist)';
-    END IF;
-    range := ST_MakePolygon(acurve);
-
-    IF iscw != ST_OrderingEquals(range, ST_ForceRHR(range)) THEN
-      RAISE EXCEPTION 'Edge twist at node %',
-        ST_AsText(ST_StartPoint(oldedge.geom));
-    END IF;
-
-  ELSE -- }{
-
-    --
-    -- f) Check EndPoint consistency
-    --
-    IF NOT ST_Equals(ST_EndPoint(acurve), ST_EndPoint(oldedge.geom)) THEN
-      RAISE EXCEPTION
-        'SQL/MM Spatial exception - end node not geometry end point.';
-    END IF;
-
-  END IF; -- }
-
-  --
-  -- g) Check if curve crosses any node
-  -- 
-  FOR rec IN EXECUTE
-    'SELECT node_id, ST_Relate(geom, '
-    || quote_literal(acurve::text) || '::geometry, 2) as relate FROM '
-    || quote_ident(atopology)
-    || '.node WHERE geom && '
-    || quote_literal(acurve::text)
-    || '::geometry AND node_id NOT IN ('
-    || oldedge.start_node || ',' || oldedge.end_node
-    || ')'
-  LOOP
-    IF ST_RelateMatch(rec.relate, 'T********') THEN
-      RAISE EXCEPTION 'SQL/MM Spatial exception - geometry crosses a node';
-    END IF;
-  END LOOP;
-
-  --
-  -- h) Check if this geometry has any interaction with any existing edge
-  --
-  sql := 'SELECT edge_id, ST_Relate(geom,' 
-    || quote_literal(acurve::text)
-    || '::geometry, 2) as im FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE edge_id != ' || anedge || ' AND geom && '
-    || quote_literal(acurve::text) || '::geometry';
-  FOR rec IN EXECUTE sql LOOP -- {
-
-    --RAISE DEBUG 'IM=%',rec.im;
-
-    IF ST_RelateMatch(rec.im, 'F********') THEN
-      CONTINUE; -- no interior-interior intersection
-    END IF;
-
-    IF ST_RelateMatch(rec.im, '1FFF*FFF2') THEN
-      RAISE EXCEPTION
-        'SQL/MM Spatial exception - coincident edge %', rec.edge_id;
-    END IF;
-
-    -- NOT IN THE SPECS: geometry touches an edge
-    IF ST_RelateMatch(rec.im, '1********') THEN
-      RAISE EXCEPTION
-        'Spatial exception - geometry intersects edge %', rec.edge_id;
-    END IF;
-
-    IF ST_RelateMatch(rec.im, 'T********') THEN
-      RAISE EXCEPTION
-        'SQL/MM Spatial exception - geometry crosses edge %', rec.edge_id;
-    END IF;
-
-  END LOOP; -- }
-
-  --
-  -- Not in the specs:
-  -- Check topological isomorphism 
-  --
-
-  -- Check that the "motion range" doesn't include any node 
-  --{
-
-  sql := 'SELECT ST_Collect(geom) as nodes, '
-    || 'null::geometry as r1, null::geometry as r2 FROM '
-    || quote_ident(atopology)
-    || '.node WHERE geom && '
-    || quote_literal(ST_Collect(ST_Envelope(oldedge.geom),
-                                ST_Envelope(acurve))::text)
-    || '::geometry AND node_id NOT IN ( '
-    || oldedge.start_node || ',' || oldedge.end_node || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG '%', sql;
-#endif
-  EXECUTE sql INTO rng_info;
-
-  -- There's no collision if there's no nodes in the combined
-  -- bbox of old and new edges.
-  --
-  IF NOT ST_IsEmpty(rng_info.nodes) THEN -- {
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG '% nodes in the edge movement range bbox: %',
-                              ST_NumGeometries(rng_info.nodes),
-                              ST_AsText(rng_info.nodes)
-                              ;
-#endif
-
-    tmp1 := ST_MakeLine(ST_EndPoint(oldedge.geom), ST_StartPoint(oldedge.geom));
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'end-to-start: %', ST_AsText(tmp1);
-#endif
-
-    rng_info.r1 := ST_MakeLine(oldedge.geom, tmp1);
-    IF ST_NumPoints(rng_info.r1) < 4 THEN
-      rng_info.r1 := ST_AddPoint(rng_info.r1, ST_StartPoint(oldedge.geom));
-    END IF;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Old-ring: %', ST_AsText(rng_info.r1);
-#endif
-    rng_info.r1 := ST_CollectionExtract(
-                       ST_MakeValid(ST_MakePolygon(rng_info.r1)), 3);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Old-ring (poly): %', ST_AsText(rng_info.r1);
-#endif
-
-    rng_info.r2 := ST_MakeLine(acurve, tmp1);
-    IF ST_NumPoints(rng_info.r2) < 4 THEN
-      rng_info.r2 := ST_AddPoint(rng_info.r2, ST_StartPoint(oldedge.geom));
-    END IF;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'New-ring: %', ST_AsText(rng_info.r2);
-#endif
-    rng_info.r2 := ST_CollectionExtract(
-                       ST_MakeValid(ST_MakePolygon(rng_info.r2)), 3);
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'New-ring (poly): %', ST_AsText(rng_info.r2);
-#endif
-
-    FOR rec IN WITH
-      nodes AS ( SELECT * FROM ST_Dump(rng_info.nodes) ),
-      inr1 AS ( SELECT path[1] FROM nodes WHERE ST_Contains(rng_info.r1, geom) ),
-      inr2 AS ( SELECT path[1] FROM nodes WHERE ST_Contains(rng_info.r2, geom) )
-      ( SELECT * FROM inr1
-          EXCEPT
-        SELECT * FROM inr2
-      ) UNION 
-      ( SELECT * FROM inr2
-          EXCEPT
-        SELECT * FROM inr1
-      )
-    LOOP
-      RAISE EXCEPTION 'Edge motion collision at %',
-                     ST_AsText(ST_GeometryN(rng_info.nodes, rec.path));
-    END LOOP;
-
-  END IF; -- }
-
-  --} motion range checking end
-
-  -- 
-  -- Check edge adjacency before
-  --{
-
-  SELECT topology._ST_AdjacentEdges(
-      atopology, oldedge.start_node, anedge
-    ) as pre, NULL::integer[] as post
-  INTO STRICT snode_info;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Bs:%', snode_info.pre;
-#endif
-
-  SELECT topology._ST_AdjacentEdges(
-      atopology, oldedge.end_node, -anedge
-    ) as pre, NULL::integer[] as post
-  INTO STRICT enode_info;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Be:%', enode_info.pre;
-#endif
-
-  --}
-
-  --
-  -- Update edge geometry
-  --
-  EXECUTE 'UPDATE ' || quote_ident(atopology) || '.edge_data '
-    || ' SET geom = ' || quote_literal(acurve::text) 
-    || ' WHERE edge_id = ' || anedge;
-
-  -- 
-  -- Check edge adjacency after
-  --{
-
-  snode_info.post := topology._ST_AdjacentEdges(
-      atopology, oldedge.start_node, anedge
-    );
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'As:%', snode_info.post;
-#endif
-
-  enode_info.post := topology._ST_AdjacentEdges(
-      atopology, oldedge.end_node, -anedge
-    );
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Ae:%', enode_info.post;
-#endif
-
-  IF snode_info.pre != snode_info.post THEN
-    RAISE EXCEPTION 'Edge changed disposition around start node %',
-      oldedge.start_node;
-  END IF;
-
-  IF enode_info.pre != enode_info.post THEN
-    RAISE EXCEPTION 'Edge changed disposition around end node %',
-      oldedge.end_node;
-  END IF;
-
-  --}
-
-  -- Update faces MBR of left and right faces
-  -- TODO: think about ways to optimize this part, like see if
-  --       the old edge geometry partecipated in the definition
-  --       of the current MBR (for shrinking) or the new edge MBR
-  --       would be larger than the old face MBR...
-  --
-  IF oldedge.left_face != 0 THEN
-    sql := 'UPDATE ' || quote_ident(atopology) || '.face '
-      || ' SET mbr = ' || quote_literal(
-        ST_Envelope(topology.ST_GetFaceGeometry(atopology, oldedge.left_face))::text
-        )
-      || '::geometry WHERE face_id = ' || oldedge.left_face;
-    EXECUTE sql;
-  END IF;
-  IF oldedge.right_face != 0 AND oldedge.right_face != oldedge.left_face THEN
-    sql := 'UPDATE ' || quote_ident(atopology) || '.face '
-      || ' SET mbr = ' || quote_literal(
-        ST_Envelope(topology.ST_GetFaceGeometry(atopology, oldedge.right_face))::text
-        )
-      || '::geometry WHERE face_id = ' || oldedge.right_face;
-    EXECUTE sql;
-  END IF;
-  
-
-  RETURN 'Edge ' || anedge || ' changed';
-
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_ChangeEdgeGeom
-
---
--- _ST_AddFaceSplit
---
--- Add a split face by walking on the edge side.
---
--- @param atopology topology name
--- @param anedge edge id and walking side (left:positive right:negative)
--- @param oface the face in which the edge identifier is known to be
--- @param mbr_only do not create a new face but update MBR of the current
---
--- The created face, if any, will be at the left hand of the walking path
---
--- Return:
---  NULL: if mbr_only was requested
---     0: if the edge does not form a ring
---  NULL: if it is impossible to create a face on the requested side
---        ( new face on the side is the universe )
---   >0 : id of newly added face
+-- Return:
+--  NULL: if mbr_only was requested
+--     0: if the edge does not form a ring
+--  NULL: if it is impossible to create a face on the requested side
+--        ( new face on the side is the universe )
+--   >0 : id of newly added face
 --
 -- {
 CREATE OR REPLACE FUNCTION topology._ST_AddFaceSplit(atopology varchar, anedge integer, oface integer, mbr_only bool)
   RETURNS INTEGER AS
 $$
 DECLARE
-  fan RECORD;
-  newface INTEGER;
-  sql TEXT;
-  isccw BOOLEAN;
-  ishole BOOLEAN;
-
-BEGIN
-
-  IF oface = 0 AND mbr_only THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Universal face has no MBR, doing nothing';
-#endif
-    RETURN NULL;
-  END IF;
-
-  SELECT null::int[] as newring_edges,
-         null::geometry as shell
-  INTO fan;
-
-  SELECT array_agg(edge)
-  FROM topology.getringedges(atopology, anedge)
-  INTO STRICT fan.newring_edges;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'ring: %', fan.newring_edges;
-#endif
-
-  -- You can't get to the other side of an edge forming a ring 
-  IF fan.newring_edges @> ARRAY[-anedge] THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'not a ring';
-#endif
-    RETURN 0;
-  END IF;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Edge % splitted face %', anedge, oface;
-#endif
-
-  sql := 'WITH ids as ( select row_number() over () as seq, edge from unnest('
-    || quote_literal(fan.newring_edges::text)
-    || '::int[] ) u(edge) ), edges AS ( select CASE WHEN i.edge < 0 THEN ST_Reverse(e.geom) ELSE e.geom END as g FROM ids i left join '
-    || quote_ident(atopology) || '.edge_data e ON(e.edge_id = abs(i.edge)) ORDER BY seq) SELECT ST_MakePolygon(ST_MakeLine(g.g)) FROM edges g;';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG '%', sql;
-#endif
-  EXECUTE sql INTO fan.shell;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'got shell'; 
-#endif
-
-  isccw := NOT ST_OrderingEquals(fan.shell, ST_ForceRHR(fan.shell));
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'winding: %', CASE WHEN isccw THEN 'CCW' ELSE 'CW' END;
-#endif
-
-  IF oface = 0 THEN
-    IF NOT isccw THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'Not considering CW ring in universe face';
-#endif
-      RETURN NULL;
-    END IF;
-  END IF;
-
-  IF mbr_only AND oface != 0 THEN
-    -- Update old face mbr (nothing to do if we're opening an hole)
-    IF isccw THEN -- {
-      sql := 'UPDATE '
-        || quote_ident(atopology) || '.face SET mbr = '
-        || quote_literal(ST_Envelope(fan.shell)::text)
-        || '::geometry WHERE face_id = ' || oface;
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    	RAISE DEBUG 'Updating old face mbr'; 
-#endif
-    	EXECUTE sql;
-    END IF; -- }
-    RETURN NULL;
-  END IF;
-
-  IF oface != 0 AND NOT isccw THEN -- {
-    -- Face created an hole in an outer face
-    sql := 'INSERT INTO '
-      || quote_ident(atopology) || '.face(mbr) SELECT mbr FROM '
-      || quote_ident(atopology)
-      || '.face WHERE face_id = ' || oface
-      || ' RETURNING face_id';
-  ELSE
-    sql := 'INSERT INTO '
-      || quote_ident(atopology) || '.face(mbr) VALUES ('
-      || quote_literal(ST_Envelope(fan.shell)::text)
-      || '::geometry) RETURNING face_id';
-  END IF; -- }
-
-  -- Insert new face
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Inserting new face'; 
-#endif
-  EXECUTE sql INTO STRICT newface;
-
-  -- Update forward edges
-  sql := 'UPDATE '
-    || quote_ident(atopology) || '.edge_data SET left_face = ' || newface
-    || ' WHERE left_face = ' || oface || ' AND edge_id = ANY ('
-    || quote_literal(array( select +(x) from unnest(fan.newring_edges) u(x) )::text)
-    || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Updating forward edges in new ring';
-#endif
-  EXECUTE sql;
-
-  -- Update backward edges
-  sql := 'UPDATE '
-    || quote_ident(atopology) || '.edge_data SET right_face = ' || newface
-    || ' WHERE right_face = ' || oface || ' AND edge_id = ANY ('
-    || quote_literal(array( select -(x) from unnest(fan.newring_edges) u(x) )::text)
-    || ')';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Updating backward edges in new ring';
-#endif
-  EXECUTE sql;
-
-  IF oface != 0 AND NOT isccw THEN -- {
-    -- face shrinked, must update all non-contained edges and nodes
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Updating rings in former shell';
-#endif
-    ishole := true;
-  ELSE
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Updating contained edges';
-#endif
-    ishole := false;
-  END IF; -- }
-
-  -- Update edges bounding the old face
-  sql := 'UPDATE '
-    || quote_ident(atopology)
-    || '.edge_data SET left_face = CASE WHEN left_face = '
-    || oface || ' THEN ' || newface
-    || ' ELSE left_face END, right_face = CASE WHEN right_face = '
-    || oface || ' THEN ' || newface
-    || ' ELSE right_face END WHERE ( left_face = ' || oface
-    || ' OR right_face = ' || oface
-    || ') AND NOT edge_id = ANY ('
-    || quote_literal( array(
-        select abs(x) from unnest(fan.newring_edges) u(x)
-       )::text )
-    || ') AND ';
-  IF ishole THEN sql := sql || 'NOT '; END IF;
-  sql := sql || '( ' || quote_literal(fan.shell::text)
-    || ' && geom AND _ST_Contains(' || quote_literal(fan.shell::text)
-    -- We only need to check a single point, but must not be an endpoint
-    || '::geometry, ST_LineInterpolatePoint(geom, 0.2)) )';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Updating edges bounding the old face: %', sql;
-#endif
-  EXECUTE sql;
-
-  -- Update isolated nodes in new new face 
-  sql := 'UPDATE '
-    || quote_ident(atopology) || '.node SET containing_face = ' || newface
-    || ' WHERE containing_face = ' || oface 
-    || ' AND ';
-  IF ishole THEN sql := sql || 'NOT '; END IF;
-  sql := sql || 'ST_Contains(' || quote_literal(fan.shell::text) || '::geometry, geom)';
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Updating isolated nodes in old face';
-#endif
-  EXECUTE sql;
-
-  RETURN newface;
-
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---}
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.12
---
---  ST_AddEdgeNewFaces(atopology, anode, anothernode, acurve)
---
--- Not in the specs:
--- * Reset containing_face for starting and ending point,
---   as they stop being isolated nodes
--- * Update references in the Relation table.
---
-CREATE OR REPLACE FUNCTION topology.ST_AddEdgeNewFaces(atopology varchar, anode integer, anothernode integer, acurve geometry)
-  RETURNS INTEGER AS
-$$
-DECLARE
-  rec RECORD;
-  i INTEGER;
-  topoid INTEGER;
-  az FLOAT8;
-  span RECORD; -- start point analysis data
-  epan RECORD; --   end point analysis data
-  fan RECORD; -- face analisys
-  newedge RECORD; -- informations about new edge
-  sql TEXT;
-  newfaces INTEGER[];
-  newface INTEGER;
-BEGIN
-
-  --
-  -- All args required
-  -- 
-  IF atopology IS NULL
-    OR anode IS NULL
-    OR anothernode IS NULL
-    OR acurve IS NULL
-  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  --
-  -- Acurve must be a LINESTRING
-  --
-  IF substring(geometrytype(acurve), 1, 4) != 'LINE'
-  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - invalid curve';
-  END IF;
-  
-  --
-  -- Curve must be simple
-  --
-  IF NOT ST_IsSimple(acurve) THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - curve not simple';
-  END IF;
-
-  --
-  -- Get topology id
-  --
-  BEGIN
-    SELECT id FROM topology.topology
-      INTO STRICT topoid WHERE name = atopology;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END;
-
-  -- Initialize new edge info (will be filled up more later)
-  SELECT anode as start_node, anothernode as end_node, acurve as geom,
-    NULL::int as next_left_edge, NULL::int as next_right_edge,
-    NULL::int as left_face, NULL::int as right_face, NULL::int as edge_id,
-    NULL::int as prev_left_edge, NULL::int as prev_right_edge, -- convenience
-    anode = anothernode as isclosed, -- convenience
-    false as start_node_isolated, -- convenience
-    false as end_node_isolated, -- convenience
-    NULL::geometry as start_node_geom, -- convenience
-    NULL::geometry as end_node_geom, -- convenience
-    ST_RemoveRepeatedPoints(acurve) as cleangeom -- convenience
-  INTO newedge;
-
-  -- Compute azimuth of first edge end on start node
-  SELECT null::int AS nextCW, null::int AS nextCCW,
-         null::float8 AS minaz, null::float8 AS maxaz,
-         false AS was_isolated,
-         ST_Azimuth(ST_StartPoint(newedge.cleangeom),
-                    ST_PointN(newedge.cleangeom, 2)) AS myaz
-  INTO span;
-  IF span.myaz IS NULL THEN
-    RAISE EXCEPTION 'Invalid edge (no two distinct vertices exist)';
-  END IF;
-
-  -- Compute azimuth of last edge end on end node
-  SELECT null::int AS nextCW, null::int AS nextCCW,
-         null::float8 AS minaz, null::float8 AS maxaz,
-         false AS was_isolated,
-         ST_Azimuth(ST_EndPoint(newedge.cleangeom),
-                    ST_PointN(newedge.cleangeom,
-                              ST_NumPoints(newedge.cleangeom)-1)) AS myaz
-  INTO epan;
-  IF epan.myaz IS NULL THEN
-    RAISE EXCEPTION 'Invalid edge (no two distinct vertices exist)';
-  END IF;
-
-
-  -- 
-  -- Check endpoints existance, match with Curve geometry
-  -- and get face information (if any)
-  --
-  i := 0;
-  FOR rec IN EXECUTE 'SELECT node_id, containing_face, geom FROM '
-    || quote_ident(atopology)
-    || '.node WHERE node_id IN ( '
-    || anode || ',' || anothernode
-    || ')'
-  LOOP
-    IF rec.containing_face IS NOT NULL THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG  'containing_face for node %:%',
-        rec.node_id, rec.containing_face;
-#endif
-      IF newedge.left_face IS NULL THEN
-        newedge.left_face := rec.containing_face;
-        newedge.right_face := rec.containing_face;
-      ELSE
-        IF newedge.left_face != rec.containing_face THEN
-          RAISE EXCEPTION
-            'SQL/MM Spatial exception - geometry crosses an edge (endnodes in faces % and %)', newedge.left_face, rec.containing_face;
-        END IF;
-      END IF;
-    END IF;
-
-    IF rec.node_id = anode THEN
-      newedge.start_node_geom = rec.geom;
-    END IF;
-
-    IF rec.node_id = anothernode THEN
-      newedge.end_node_geom = rec.geom;
-    END IF;
-
-    i := i + 1;
-  END LOOP;
-
-  IF newedge.start_node_geom IS NULL
-  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent node';
-  ELSIF NOT ST_Equals(newedge.start_node_geom, ST_StartPoint(acurve))
-  THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - start node not geometry start point.';
-  END IF;
-
-  IF newedge.end_node_geom IS NULL
-  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent node';
-  ELSIF NOT ST_Equals(newedge.end_node_geom, ST_EndPoint(acurve))
-  THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - end node not geometry end point.';
-  END IF;
-
-  RAISE DEBUG 'All Checked !';
-
-  --
-  -- Check if this geometry crosses any node
-  --
-  FOR rec IN EXECUTE
-    'SELECT node_id, ST_Relate(geom, '
-    || quote_literal(acurve::text) || '::geometry, 2) as relate FROM '
-    || quote_ident(atopology)
-    || '.node WHERE geom && '
-    || quote_literal(acurve::text)
-    || '::geometry'
-  LOOP
-    IF ST_RelateMatch(rec.relate, 'T********') THEN
-      RAISE EXCEPTION 'SQL/MM Spatial exception - geometry crosses a node';
-    END IF;
-  END LOOP;
-
-  --
-  -- Check if this geometry has any interaction with any existing edge
-  --
-  FOR rec IN EXECUTE 'SELECT edge_id, ST_Relate(geom,' 
-    || quote_literal(acurve::text)
-    || '::geometry, 2) as im FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE geom && '
-    || quote_literal(acurve::text) || '::geometry'
-  LOOP
-
-    --RAISE DEBUG 'IM=%',rec.im;
-
-    IF ST_RelateMatch(rec.im, 'F********') THEN
-      CONTINUE; -- no interior intersection
-    END IF;
-
-    IF ST_RelateMatch(rec.im, '1FFF*FFF2') THEN
-      RAISE EXCEPTION
-        'SQL/MM Spatial exception - coincident edge %', rec.edge_id;
-    END IF;
-
-    -- NOT IN THE SPECS: geometry touches an edge
-    IF ST_RelateMatch(rec.im, '1********') THEN
-      RAISE EXCEPTION
-        'Spatial exception - geometry intersects edge %', rec.edge_id;
-    END IF;
-
-    IF ST_RelateMatch(rec.im, 'T********') THEN
-      RAISE EXCEPTION
-        'SQL/MM Spatial exception - geometry crosses edge %', rec.edge_id;
-    END IF;
-
-  END LOOP;
-
-  ---------------------------------------------------------------
-  --
-  -- All checks passed, time to prepare the new edge
-  --
-  ---------------------------------------------------------------
-
-  EXECUTE 'SELECT nextval(' || quote_literal(
-      quote_ident(atopology) || '.edge_data_edge_id_seq') || ')'
-  INTO STRICT newedge.edge_id;
-
-
-  -- Find links on start node -- {
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'My start-segment azimuth: %', span.myaz;
-#endif
-
-  sql :=
-    'SELECT edge_id, -1 AS end_node, start_node, left_face, right_face, '
-    || 'ST_RemoveRepeatedPoints(geom) as geom FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE start_node = ' || anode
-    || ' UNION SELECT edge_id, end_node, -1, left_face, right_face, '
-    || 'ST_RemoveRepeatedPoints(geom) FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE end_node = ' || anode;
-  IF newedge.isclosed THEN
-    sql := sql || ' UNION SELECT '
-      || newedge.edge_id || ',' || newedge.end_node
-      || ',-1,0,0,' -- pretend we start elsewhere
-      || quote_literal(newedge.cleangeom::text);
-  END IF;
-  i := 0;
-  FOR rec IN EXECUTE sql
-  LOOP -- incident edges {
-
-    i := i + 1;
-
-    IF rec.start_node = anode THEN
-      --
-      -- Edge starts at our node, we compute
-      -- azimuth from node to its second point
-      --
-      az := ST_Azimuth(ST_StartPoint(rec.geom), ST_PointN(rec.geom, 2));
-
-    ELSE
-      --
-      -- Edge ends at our node, we compute
-      -- azimuth from node to its second-last point
-      --
-      az := ST_Azimuth(ST_EndPoint(rec.geom),
-                       ST_PointN(rec.geom, ST_NumPoints(rec.geom)-1));
-      rec.edge_id := -rec.edge_id;
-
-    END IF;
-
-    IF az IS NULL THEN
-      RAISE EXCEPTION 'Invalid edge % found (no two distinct nodes exist)',
-        rec.edge_id;
-    END IF;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Edge % - az % (%) - fl:% fr:%',
-      rec.edge_id, az, az - span.myaz, rec.left_face, rec.right_face;
-#endif
-
-    az = az - span.myaz;
-    IF az < 0 THEN
-      az := az + 2*PI();
-    END IF;
-
-    -- RAISE DEBUG ' normalized az %', az;
-
-    IF span.maxaz IS NULL OR az > span.maxaz THEN
-      span.maxaz := az;
-      span.nextCCW := rec.edge_id;
-      IF abs(rec.edge_id) != newedge.edge_id THEN
-        IF rec.edge_id < 0 THEN
-          -- TODO: check for mismatch ?
-          newedge.left_face := rec.left_face;
-        ELSE
-          -- TODO: check for mismatch ?
-          newedge.left_face := rec.right_face;
-        END IF;
-      END IF;
-    END IF;
-
-    IF span.minaz IS NULL OR az < span.minaz THEN
-      span.minaz := az;
-      span.nextCW := rec.edge_id;
-      IF abs(rec.edge_id) != newedge.edge_id THEN
-        IF rec.edge_id < 0 THEN
-          -- TODO: check for mismatch ?
-          newedge.right_face := rec.right_face;
-        ELSE
-          -- TODO: check for mismatch ?
-          newedge.right_face := rec.left_face;
-        END IF;
-      END IF;
-    END IF;
-
-    --RAISE DEBUG 'Closest edges: CW:%(%) CCW:%(%)', span.nextCW, span.minaz, span.nextCCW, span.maxaz;
-
-  END LOOP; -- incident edges }
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'span ROW_COUNT: %', i;
-#endif
-  IF newedge.isclosed THEN
-    IF i < 2 THEN span.was_isolated = true; END IF;
-  ELSE
-    IF i < 1 THEN span.was_isolated = true; END IF;
-  END IF;
-
-  IF span.nextCW IS NULL THEN
-    -- This happens if the destination node is isolated
-    newedge.next_right_edge := newedge.edge_id;
-    newedge.prev_left_edge := -newedge.edge_id;
-  ELSE
-    newedge.next_right_edge := span.nextCW;
-    newedge.prev_left_edge := -span.nextCCW;
-  END IF;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'edge:%', newedge.edge_id;
-#endif
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' left:%, next:%, prev:%',
-    newedge.left_face, newedge.next_left_edge, newedge.prev_left_edge;
-#endif
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' right:%, next:%, prev:%',
-    newedge.right_face, newedge.next_right_edge, newedge.prev_right_edge;
-#endif
-
-  -- } start_node analysis
-
-
-  -- Find links on end_node {
-      
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'My end-segment azimuth: %', epan.myaz;
-#endif
-
-  sql :=
-    'SELECT edge_id, -1 as end_node, start_node, left_face, right_face, '
-    || 'ST_RemoveRepeatedPoints(geom) as geom FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE start_node = ' || anothernode
-    || 'UNION SELECT edge_id, end_node, -1, left_face, right_face, '
-    || 'ST_RemoveRepeatedPoints(geom) FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE end_node = ' || anothernode;
-  IF newedge.isclosed THEN
-    sql := sql || ' UNION SELECT '
-      || newedge.edge_id || ',' || -1 -- pretend we end elsewhere
-      || ',' || newedge.start_node || ',0,0,'
-      || quote_literal(newedge.cleangeom::text);
-  END IF;
-  i := 0;
-  FOR rec IN EXECUTE sql
-  LOOP -- incident edges {
-
-    i := i + 1;
-
-    IF rec.start_node = anothernode THEN
-      --
-      -- Edge starts at our node, we compute
-      -- azimuth from node to its second point
-      --
-      az := ST_Azimuth(ST_StartPoint(rec.geom),
-                       ST_PointN(rec.geom, 2));
-
-    ELSE
-      --
-      -- Edge ends at our node, we compute
-      -- azimuth from node to its second-last point
-      --
-      az := ST_Azimuth(ST_EndPoint(rec.geom),
-        ST_PointN(rec.geom, ST_NumPoints(rec.geom)-1));
-      rec.edge_id := -rec.edge_id;
-
-    END IF;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Edge % - az % (%)', rec.edge_id, az, az - epan.myaz;
-#endif
-
-    az := az - epan.myaz;
-    IF az < 0 THEN
-      az := az + 2*PI();
-    END IF;
-
-    -- RAISE DEBUG ' normalized az %', az;
-
-    IF epan.maxaz IS NULL OR az > epan.maxaz THEN
-      epan.maxaz := az;
-      epan.nextCCW := rec.edge_id;
-      IF abs(rec.edge_id) != newedge.edge_id THEN
-        IF rec.edge_id < 0 THEN
-          -- TODO: check for mismatch ?
-          newedge.right_face := rec.left_face;
-        ELSE
-          -- TODO: check for mismatch ?
-          newedge.right_face := rec.right_face;
-        END IF;
-      END IF;
-    END IF;
-
-    IF epan.minaz IS NULL OR az < epan.minaz THEN
-      epan.minaz := az;
-      epan.nextCW := rec.edge_id;
-      IF abs(rec.edge_id) != newedge.edge_id THEN
-        IF rec.edge_id < 0 THEN
-          -- TODO: check for mismatch ?
-          newedge.left_face := rec.right_face;
-        ELSE
-          -- TODO: check for mismatch ?
-          newedge.left_face := rec.left_face;
-        END IF;
-      END IF;
-    END IF;
-
-    --RAISE DEBUG 'Closest edges: CW:%(%) CCW:%(%)', epan.nextCW, epan.minaz, epan.nextCCW, epan.maxaz;
-
-  END LOOP; -- incident edges }
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'epan ROW_COUNT: %', i;
-#endif
-  IF newedge.isclosed THEN
-    IF i < 2 THEN epan.was_isolated = true; END IF;
-  ELSE
-    IF i < 1 THEN epan.was_isolated = true; END IF;
-  END IF;
-
-  IF epan.nextCW IS NULL THEN
-    -- This happens if the destination node is isolated
-    newedge.next_left_edge := -newedge.edge_id;
-    newedge.prev_right_edge := newedge.edge_id;
-  ELSE
-    newedge.next_left_edge := epan.nextCW;
-    newedge.prev_right_edge := -epan.nextCCW;
-  END IF;
-
-  -- } end_node analysis
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'edge:%', newedge.edge_id;
-#endif
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' left:%, next:%, prev:%',
-    newedge.left_face, newedge.next_left_edge, newedge.prev_left_edge;
-#endif
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' right:%, next:%, prev:%',
-    newedge.right_face, newedge.next_right_edge, newedge.prev_right_edge;
-#endif
-
-  ----------------------------------------------------------------------
-  --
-  -- If we don't have faces setup by now we must have encountered
-  -- a malformed topology (no containing_face on isolated nodes, no
-  -- left/right faces on adjacent edges or mismatching values)
-  --
-  ----------------------------------------------------------------------
-  IF newedge.left_face != newedge.right_face THEN
-    RAISE EXCEPTION 'Left(%)/right(%) faces mismatch: invalid topology ?', 
-      newedge.left_face, newedge.right_face;
-  END IF;
-  IF newedge.left_face IS NULL THEN
-    RAISE EXCEPTION 'Could not derive edge face from linked primitives: invalid topology ?';
-  END IF;
-
-  ----------------------------------------------------------------------
-  --
-  -- Insert the new edge, and update all linking
-  --
-  ----------------------------------------------------------------------
-
-  -- Insert the new edge with what we have so far
-  EXECUTE 'INSERT INTO ' || quote_ident(atopology) 
-    || '.edge VALUES(' || newedge.edge_id
-    || ',' || newedge.start_node
-    || ',' || newedge.end_node
-    || ',' || newedge.next_left_edge
-    || ',' || newedge.next_right_edge
-    || ',' || newedge.left_face
-    || ',' || newedge.right_face
-    || ',' || quote_literal(newedge.geom::geometry::text)
-    || ')';
-
-  -- Link prev_left_edge to us 
-  -- (if it's not us already)
-  IF abs(newedge.prev_left_edge) != newedge.edge_id THEN
-    IF newedge.prev_left_edge > 0 THEN
-      -- its next_left_edge is us
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.edge_data SET next_left_edge = '
-        || newedge.edge_id
-        || ', abs_next_left_edge = '
-        || newedge.edge_id
-        || ' WHERE edge_id = ' 
-        || newedge.prev_left_edge;
-    ELSE
-      -- its next_right_edge is us
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.edge_data SET next_right_edge = '
-        || newedge.edge_id
-        || ', abs_next_right_edge = '
-        || newedge.edge_id
-        || ' WHERE edge_id = ' 
-        || -newedge.prev_left_edge;
-    END IF;
-  END IF;
-
-  -- Link prev_right_edge to us 
-  -- (if it's not us already)
-  IF abs(newedge.prev_right_edge) != newedge.edge_id THEN
-    IF newedge.prev_right_edge > 0 THEN
-      -- its next_left_edge is -us
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.edge_data SET next_left_edge = '
-        || -newedge.edge_id
-        || ', abs_next_left_edge = '
-        || newedge.edge_id
-        || ' WHERE edge_id = ' 
-        || newedge.prev_right_edge;
-    ELSE
-      -- its next_right_edge is -us
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.edge_data SET next_right_edge = '
-        || -newedge.edge_id
-        || ', abs_next_right_edge = '
-        || newedge.edge_id
-        || ' WHERE edge_id = ' 
-        || -newedge.prev_right_edge;
-    END IF;
-  END IF;
-
-  -- NOT IN THE SPECS...
-  -- set containing_face = null for start_node and end_node
-  -- if they where isolated 
-  IF span.was_isolated OR epan.was_isolated THEN
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.node SET containing_face = null WHERE node_id IN ('
-        || anode || ',' || anothernode || ')';
-  END IF;
-
-  --------------------------------------------
-  -- Check face splitting
-  --------------------------------------------
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Checking right face';
-#endif
-
-  SELECT topology._ST_AddFaceSplit(atopology, -newedge.edge_id, newedge.left_face, false)
-  INTO newface;
-
-  IF newface = 0 THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG ' No split';
-#endif
-    RETURN newedge.edge_id; 
-  END IF;
-
-  newfaces[1] := newface;
-
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Checking left face';
-#endif
-  SELECT topology._ST_AddFaceSplit(atopology, newedge.edge_id, newedge.left_face, false)
-  INTO newface;
-
-  newfaces[2] := newface;
-
-  IF newedge.left_face != 0 THEN -- {
-
-    -- NOT IN THE SPECS:
-    -- update TopoGeometry compositions to substitute oldface with newfaces
-    sql := 'UPDATE '
-      || quote_ident(atopology)
-      || '.relation r set element_id = ' || newfaces[1]
-      || ' FROM topology.layer l '
-      || ' WHERE l.topology_id = ' || topoid
-      || ' AND l.level = 0 '
-      || ' AND l.layer_id = r.layer_id '
-      || ' AND r.element_id = ' || newedge.left_face
-      || ' AND r.element_type = 3 RETURNING r.topogeo_id, r.layer_id';
-    --RAISE DEBUG 'SQL: %', sql;
-    FOR rec IN EXECUTE sql
-    LOOP
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'TopoGeometry % in layer % contained the face being split (%) - updating to contain both new faces %', rec.topogeo_id, rec.layer_id, newedge.left_face, newfaces;
-#endif
-
-      -- Add reference to the other face
-      sql := 'INSERT INTO ' || quote_ident(atopology)
-        || '.relation VALUES( ' || rec.topogeo_id
-        || ',' || rec.layer_id || ',' || newfaces[2] || ', 3)';
-      --RAISE DEBUG 'SQL: %', sql;
-      EXECUTE sql;
-
-    END LOOP;
-
-    -- drop old face from faces table
-    sql := 'DELETE FROM ' || quote_ident(atopology)
-      || '.face WHERE face_id = ' || newedge.left_face;
-    EXECUTE sql;
-
-  END IF; -- }
-
-  RETURN newedge.edge_id;
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE;
---} ST_AddEdgeNewFaces
-
---{
--- Topo-Geo and Topo-Net 3: Routine Details
--- X.3.13
---
---  ST_AddEdgeModFace(atopology, anode, anothernode, acurve)
---
--- Not in the specs:
--- * Reset containing_face for starting and ending point,
---   as they stop being isolated nodes
--- * Update references in the Relation table.
---
-CREATE OR REPLACE FUNCTION topology.ST_AddEdgeModFace(atopology varchar, anode integer, anothernode integer, acurve geometry)
-  RETURNS INTEGER AS
-$$
-DECLARE
-  rec RECORD;
-  rrec RECORD;
-  i INTEGER;
-  topoid INTEGER;
-  az FLOAT8;
-  span RECORD; -- start point analysis data
-  epan RECORD; --   end point analysis data
-  fan RECORD; -- face analisys
-  newedge RECORD; -- informations about new edge
-  sql TEXT;
-  newfaces INTEGER[];
+  fan RECORD;
   newface INTEGER;
-BEGIN
-
-  --
-  -- All args required
-  -- 
-  IF atopology IS NULL
-    OR anode IS NULL
-    OR anothernode IS NULL
-    OR acurve IS NULL
-  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - null argument';
-  END IF;
-
-  --
-  -- Acurve must be a LINESTRING
-  --
-  IF substring(geometrytype(acurve), 1, 4) != 'LINE'
-  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - invalid curve';
-  END IF;
-  
-  --
-  -- Curve must be simple
-  --
-  IF NOT ST_IsSimple(acurve) THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - curve not simple';
-  END IF;
-
-  --
-  -- Get topology id
-  --
-  BEGIN
-    SELECT id FROM topology.topology
-      INTO STRICT topoid WHERE name = atopology;
-    EXCEPTION
-      WHEN NO_DATA_FOUND THEN
-        RAISE EXCEPTION 'SQL/MM Spatial exception - invalid topology name';
-  END;
-
-  -- Initialize new edge info (will be filled up more later)
-  SELECT anode as start_node, anothernode as end_node, acurve as geom,
-    NULL::int as next_left_edge, NULL::int as next_right_edge,
-    NULL::int as left_face, NULL::int as right_face, NULL::int as edge_id,
-    NULL::int as prev_left_edge, NULL::int as prev_right_edge, -- convenience
-    anode = anothernode as isclosed, -- convenience
-    false as start_node_isolated, -- convenience
-    false as end_node_isolated, -- convenience
-    NULL::geometry as start_node_geom, -- convenience
-    NULL::geometry as end_node_geom, -- convenience
-    ST_RemoveRepeatedPoints(acurve) as cleangeom -- convenience
-  INTO newedge;
-
-  -- Compute azimut of first edge end on start node
-  SELECT null::int AS nextCW, null::int AS nextCCW,
-         null::float8 AS minaz, null::float8 AS maxaz,
-         false AS was_isolated,
-         ST_Azimuth(ST_StartPoint(newedge.cleangeom),
-                    ST_PointN(newedge.cleangeom, 2)) AS myaz
-  INTO span;
-  IF span.myaz IS NULL THEN
-    RAISE EXCEPTION 'Invalid edge (no two distinct vertices exist)';
-  END IF;
-
-  -- Compute azimuth of last edge end on end node
-  SELECT null::int AS nextCW, null::int AS nextCCW,
-         null::float8 AS minaz, null::float8 AS maxaz,
-         false AS was_isolated,
-         ST_Azimuth(ST_EndPoint(newedge.cleangeom),
-                    ST_PointN(newedge.cleangeom,
-                              ST_NumPoints(newedge.cleangeom)-1)) AS myaz
-  INTO epan;
-  IF epan.myaz IS NULL THEN
-    RAISE EXCEPTION 'Invalid edge (no two distinct vertices exist)';
-  END IF;
-
-
-  -- 
-  -- Check endpoints existance, match with Curve geometry
-  -- and get face information (if any)
-  --
-  i := 0;
-  FOR rec IN EXECUTE 'SELECT node_id, containing_face, geom FROM '
-    || quote_ident(atopology)
-    || '.node WHERE node_id IN ( '
-    || anode || ',' || anothernode
-    || ')'
-  LOOP
-    IF rec.containing_face IS NOT NULL THEN
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG  'containing_face for node %:%',
-        rec.node_id, rec.containing_face;
-#endif
-      IF newedge.left_face IS NULL THEN
-        newedge.left_face := rec.containing_face;
-        newedge.right_face := rec.containing_face;
-      ELSE
-        IF newedge.left_face != rec.containing_face THEN
-          RAISE EXCEPTION
-            'SQL/MM Spatial exception - geometry crosses an edge (endnodes in faces % and %)', newedge.left_face, rec.containing_face;
-        END IF;
-      END IF;
-    END IF;
-
-    IF rec.node_id = anode THEN
-      newedge.start_node_geom = rec.geom;
-    END IF;
-
-    IF rec.node_id = anothernode THEN
-      newedge.end_node_geom = rec.geom;
-    END IF;
-
-    i := i + 1;
-  END LOOP;
-
-  IF newedge.start_node_geom IS NULL
-  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent node';
-  ELSIF NOT ST_Equals(newedge.start_node_geom, ST_StartPoint(acurve))
-  THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - start node not geometry start point.';
-  END IF;
-
-  IF newedge.end_node_geom IS NULL
-  THEN
-    RAISE EXCEPTION 'SQL/MM Spatial exception - non-existent node';
-  ELSIF NOT ST_Equals(newedge.end_node_geom, ST_EndPoint(acurve))
-  THEN
-    RAISE EXCEPTION
-      'SQL/MM Spatial exception - end node not geometry end point.';
-  END IF;
-
-  --
-  -- Check if this geometry crosses any node
-  --
-  FOR rec IN EXECUTE
-    'SELECT node_id, ST_Relate(geom, '
-    || quote_literal(acurve::text) || '::geometry, 2) as relate FROM '
-    || quote_ident(atopology)
-    || '.node WHERE geom && '
-    || quote_literal(acurve::text)
-    || '::geometry'
-  LOOP
-    IF ST_RelateMatch(rec.relate, 'T********') THEN
-      RAISE EXCEPTION 'SQL/MM Spatial exception - geometry crosses a node';
-    END IF;
-  END LOOP;
-
-  --
-  -- Check if this geometry has any interaction with any existing edge
-  --
-  FOR rec IN EXECUTE 'SELECT edge_id, ST_Relate(geom,' 
-    || quote_literal(acurve::text)
-    || '::geometry, 2) as im FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE geom && '
-    || quote_literal(acurve::text) || '::geometry'
-  LOOP
-
-    --RAISE DEBUG 'IM=%',rec.im;
-
-    IF ST_RelateMatch(rec.im, 'F********') THEN
-      CONTINUE; -- no interior intersection
-    END IF;
-
-    IF ST_RelateMatch(rec.im, '1FFF*FFF2') THEN
-      RAISE EXCEPTION
-        'SQL/MM Spatial exception - coincident edge %', rec.edge_id;
-    END IF;
-
-    -- NOT IN THE SPECS: geometry touches an edge
-    IF ST_RelateMatch(rec.im, '1********') THEN
-      RAISE EXCEPTION
-        'Spatial exception - geometry intersects edge %', rec.edge_id;
-    END IF;
-
-    IF ST_RelateMatch(rec.im, 'T********') THEN
-      RAISE EXCEPTION
-        'SQL/MM Spatial exception - geometry crosses edge %', rec.edge_id;
-    END IF;
-
-  END LOOP;
-
-  ---------------------------------------------------------------
-  --
-  -- All checks passed, time to prepare the new edge
-  --
-  ---------------------------------------------------------------
-
-  EXECUTE 'SELECT nextval(' || quote_literal(
-      quote_ident(atopology) || '.edge_data_edge_id_seq') || ')'
-  INTO STRICT newedge.edge_id;
-
+  sql TEXT;
+  isccw BOOLEAN;
+  ishole BOOLEAN;
 
-  -- Find links on start node -- {
+BEGIN
 
+  IF oface = 0 AND mbr_only THEN
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'My start-segment azimuth: %', span.myaz;
+    RAISE DEBUG 'Universal face has no MBR, doing nothing';
 #endif
-
-  sql :=
-    'SELECT edge_id, -1 AS end_node, start_node, left_face, right_face, '
-    || 'ST_RemoveRepeatedPoints(geom) as geom FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE start_node = ' || anode
-    || ' UNION SELECT edge_id, end_node, -1, left_face, right_face, '
-    || 'ST_RemoveRepeatedPoints(geom) FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE end_node = ' || anode;
-  IF newedge.isclosed THEN
-    sql := sql || ' UNION SELECT '
-      || newedge.edge_id || ',' || newedge.end_node
-      || ',-1,0,0,' -- pretend we start elsewhere
-      || quote_literal(newedge.cleangeom::text);
+    RETURN NULL;
   END IF;
-  i := 0;
-  FOR rec IN EXECUTE sql
-  LOOP -- incident edges {
-
-    i := i + 1;
 
-    IF rec.start_node = anode THEN
-      --
-      -- Edge starts at our node, we compute
-      -- azimuth from node to its second point
-      --
-      az := ST_Azimuth(ST_StartPoint(rec.geom), ST_PointN(rec.geom, 2));
-
-    ELSE
-      --
-      -- Edge ends at our node, we compute
-      -- azimuth from node to its second-last point
-      --
-      az := ST_Azimuth(ST_EndPoint(rec.geom),
-                       ST_PointN(rec.geom, ST_NumPoints(rec.geom)-1));
-      rec.edge_id := -rec.edge_id;
-
-    END IF;
+  SELECT null::int[] as newring_edges,
+         null::geometry as shell
+  INTO fan;
 
-    IF az IS NULL THEN
-      RAISE EXCEPTION 'Invalid edge % found (no two distinct nodes exist)',
-        rec.edge_id;
-    END IF;
+  SELECT array_agg(edge)
+  FROM topology.getringedges(atopology, anedge)
+  INTO STRICT fan.newring_edges;
 
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Edge % - az % (%) - fl:% fr:%',
-      rec.edge_id, az, az - span.myaz, rec.left_face, rec.right_face;
+  RAISE DEBUG 'ring: %', fan.newring_edges;
 #endif
 
-    az = az - span.myaz;
-    IF az < 0 THEN
-      az := az + 2*PI();
-    END IF;
-
-    -- RAISE DEBUG ' normalized az %', az;
-
-    IF span.maxaz IS NULL OR az > span.maxaz THEN
-      span.maxaz := az;
-      span.nextCCW := rec.edge_id;
-      IF abs(rec.edge_id) != newedge.edge_id THEN
-        IF rec.edge_id < 0 THEN
-          -- TODO: check for mismatch ?
-          newedge.left_face := rec.left_face;
-        ELSE
-          -- TODO: check for mismatch ?
-          newedge.left_face := rec.right_face;
-        END IF;
-      END IF;
-    END IF;
-
-    IF span.minaz IS NULL OR az < span.minaz THEN
-      span.minaz := az;
-      span.nextCW := rec.edge_id;
-      IF abs(rec.edge_id) != newedge.edge_id THEN
-        IF rec.edge_id < 0 THEN
-          -- TODO: check for mismatch ?
-          newedge.right_face := rec.right_face;
-        ELSE
-          -- TODO: check for mismatch ?
-          newedge.right_face := rec.left_face;
-        END IF;
-      END IF;
-    END IF;
-
-    --RAISE DEBUG 'Closest edges: CW:%(%) CCW:%(%)', span.nextCW, span.minaz, span.nextCCW, span.maxaz;
-
-  END LOOP; -- incident edges }
-
+  -- You can't get to the other side of an edge forming a ring 
+  IF fan.newring_edges @> ARRAY[-anedge] THEN
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'span ROW_COUNT: %', i;
+    RAISE DEBUG 'not a ring';
 #endif
-  IF newedge.isclosed THEN
-    IF i < 2 THEN span.was_isolated = true; END IF;
-  ELSE
-    IF i < 1 THEN span.was_isolated = true; END IF;
-  END IF;
-
-  IF span.nextCW IS NULL THEN
-    -- This happens if the destination node is isolated
-    newedge.next_right_edge := newedge.edge_id;
-    newedge.prev_left_edge := -newedge.edge_id;
-  ELSE
-    newedge.next_right_edge := span.nextCW;
-    newedge.prev_left_edge := -span.nextCCW;
+    RETURN 0;
   END IF;
 
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'edge:%', newedge.edge_id;
+  RAISE DEBUG 'Edge % splitted face %', anedge, oface;
 #endif
+
+  sql := 'WITH ids as ( select row_number() over () as seq, edge '
+    || 'from unnest($1) u(edge) ), edges AS ( select CASE WHEN i.edge < 0 '
+    || 'THEN ST_Reverse(e.geom) ELSE e.geom END as g FROM ids i left join '
+    || quote_ident(atopology) || '.edge_data e ON(e.edge_id = abs(i.edge)) '
+    || 'ORDER BY seq) SELECT ST_MakePolygon(ST_MakeLine(g.g)) FROM edges g';
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' left:%, next:%, prev:%',
-    newedge.left_face, newedge.next_left_edge, newedge.prev_left_edge;
+  RAISE DEBUG '%', sql;
 #endif
+  EXECUTE sql INTO fan.shell USING
+    fan.newring_edges
+  ;
+
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' right:%, next:%, prev:%',
-    newedge.right_face, newedge.next_right_edge, newedge.prev_right_edge;
+  RAISE DEBUG 'got shell'; 
 #endif
 
-  -- } start_node analysis
-
+  isccw := NOT ST_OrderingEquals(fan.shell, ST_ForceRHR(fan.shell));
 
-  -- Find links on end_node {
-      
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'My end-segment azimuth: %', epan.myaz;
+  RAISE DEBUG 'winding: %', CASE WHEN isccw THEN 'CCW' ELSE 'CW' END;
 #endif
 
-  sql :=
-    'SELECT edge_id, -1 as end_node, start_node, left_face, right_face, '
-    || 'ST_RemoveRepeatedPoints(geom) as geom FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE start_node = ' || anothernode
-    || 'UNION SELECT edge_id, end_node, -1, left_face, right_face, '
-    || 'ST_RemoveRepeatedPoints(geom) FROM '
-    || quote_ident(atopology)
-    || '.edge_data WHERE end_node = ' || anothernode;
-  IF newedge.isclosed THEN
-    sql := sql || ' UNION SELECT '
-      || newedge.edge_id || ',' || -1 -- pretend we end elsewhere
-      || ',' || newedge.start_node || ',0,0,'
-      || quote_literal(newedge.cleangeom::text);
-  END IF;
-  i := 0;
-  FOR rec IN EXECUTE sql
-  LOOP -- incident edges {
-
-    i := i + 1;
-
-    IF rec.start_node = anothernode THEN
-      --
-      -- Edge starts at our node, we compute
-      -- azimuth from node to its second point
-      --
-      az := ST_Azimuth(ST_StartPoint(rec.geom),
-                       ST_PointN(rec.geom, 2));
-
-    ELSE
-      --
-      -- Edge ends at our node, we compute
-      -- azimuth from node to its second-last point
-      --
-      az := ST_Azimuth(ST_EndPoint(rec.geom),
-        ST_PointN(rec.geom, ST_NumPoints(rec.geom)-1));
-      rec.edge_id := -rec.edge_id;
-
-    END IF;
-
+  IF oface = 0 THEN
+    IF NOT isccw THEN
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Edge % - az % (%)', rec.edge_id, az, az - epan.myaz;
+      RAISE DEBUG 'Not considering CW ring in universe face';
 #endif
-
-    az := az - epan.myaz;
-    IF az < 0 THEN
-      az := az + 2*PI();
-    END IF;
-
-    -- RAISE DEBUG ' normalized az %', az;
-
-    IF epan.maxaz IS NULL OR az > epan.maxaz THEN
-      epan.maxaz := az;
-      epan.nextCCW := rec.edge_id;
-      IF abs(rec.edge_id) != newedge.edge_id THEN
-        IF rec.edge_id < 0 THEN
-          -- TODO: check for mismatch ?
-          newedge.right_face := rec.left_face;
-        ELSE
-          -- TODO: check for mismatch ?
-          newedge.right_face := rec.right_face;
-        END IF;
-      END IF;
-    END IF;
-
-    IF epan.minaz IS NULL OR az < epan.minaz THEN
-      epan.minaz := az;
-      epan.nextCW := rec.edge_id;
-      IF abs(rec.edge_id) != newedge.edge_id THEN
-        IF rec.edge_id < 0 THEN
-          -- TODO: check for mismatch ?
-          newedge.left_face := rec.right_face;
-        ELSE
-          -- TODO: check for mismatch ?
-          newedge.left_face := rec.left_face;
-        END IF;
-      END IF;
+      RETURN NULL;
     END IF;
+  END IF;
 
-    --RAISE DEBUG 'Closest edges: CW:%(%) CCW:%(%)', epan.nextCW, epan.minaz, epan.nextCCW, epan.maxaz;
-
-  END LOOP; -- incident edges }
-
+  IF mbr_only AND oface != 0 THEN
+    -- Update old face mbr (nothing to do if we're opening an hole)
+    IF isccw THEN -- {
+      sql := 'UPDATE '
+        || quote_ident(atopology)
+        || '.face SET mbr = $1 WHERE face_id = $2';
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'epan ROW_COUNT: %', i;
+    	RAISE DEBUG 'Updating old face mbr'; 
 #endif
-  IF newedge.isclosed THEN
-    IF i < 2 THEN epan.was_isolated = true; END IF;
-  ELSE
-    IF i < 1 THEN epan.was_isolated = true; END IF;
+    	EXECUTE sql USING
+        ST_Envelope(fan.shell),
+        oface
+      ;
+    END IF; -- }
+    RETURN NULL;
   END IF;
 
-  IF epan.nextCW IS NULL THEN
-    -- This happens if the destination node is isolated
-    newedge.next_left_edge := -newedge.edge_id;
-    newedge.prev_right_edge := newedge.edge_id;
+  IF oface != 0 AND NOT isccw THEN -- {
+    -- Face created an hole in an outer face
+    sql := 'INSERT INTO '
+      || quote_ident(atopology) || '.face(mbr) SELECT mbr FROM '
+      || quote_ident(atopology)
+      || '.face WHERE face_id = ' || oface
+      || ' RETURNING face_id';
   ELSE
-    newedge.next_left_edge := epan.nextCW;
-    newedge.prev_right_edge := -epan.nextCCW;
-  END IF;
-
-  -- } end_node analysis
+    sql := 'INSERT INTO '
+      || quote_ident(atopology) || '.face(mbr) VALUES ($1) RETURNING face_id';
+  END IF; -- }
 
+  -- Insert new face
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'edge:%', newedge.edge_id;
-#endif
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' left:%, next:%, prev:%',
-    newedge.left_face, newedge.next_left_edge, newedge.prev_left_edge;
-#endif
-#ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG ' right:%, next:%, prev:%',
-    newedge.right_face, newedge.next_right_edge, newedge.prev_right_edge;
+  RAISE DEBUG 'Inserting new face'; 
 #endif
+  EXECUTE sql INTO STRICT newface USING ST_Envelope(fan.shell);
 
-  ----------------------------------------------------------------------
-  --
-  -- If we don't have faces setup by now we must have encountered
-  -- a malformed topology (no containing_face on isolated nodes, no
-  -- left/right faces on adjacent edges or mismatching values)
-  --
-  ----------------------------------------------------------------------
-  IF newedge.left_face != newedge.right_face THEN
-    RAISE EXCEPTION 'Left(%)/right(%) faces mismatch: invalid topology ?', 
-      newedge.left_face, newedge.right_face;
-  END IF;
-  IF newedge.left_face IS NULL THEN
-    RAISE EXCEPTION 'Could not derive edge face from linked primitives: invalid topology ?';
-  END IF;
-
-  ----------------------------------------------------------------------
-  --
-  -- Insert the new edge, and update all linking
-  --
-  ----------------------------------------------------------------------
-
-  -- Insert the new edge with what we have so far
-  EXECUTE 'INSERT INTO ' || quote_ident(atopology) 
-    || '.edge VALUES(' || newedge.edge_id
-    || ',' || newedge.start_node
-    || ',' || newedge.end_node
-    || ',' || newedge.next_left_edge
-    || ',' || newedge.next_right_edge
-    || ',' || newedge.left_face
-    || ',' || newedge.right_face
-    || ',' || quote_literal(newedge.geom::geometry::text)
-    || ')';
-
-  -- Link prev_left_edge to us 
-  -- (if it's not us already)
-  IF abs(newedge.prev_left_edge) != newedge.edge_id THEN
-    IF newedge.prev_left_edge > 0 THEN
-      -- its next_left_edge is us
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.edge_data SET next_left_edge = '
-        || newedge.edge_id
-        || ', abs_next_left_edge = '
-        || newedge.edge_id
-        || ' WHERE edge_id = ' 
-        || newedge.prev_left_edge;
-    ELSE
-      -- its next_right_edge is us
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.edge_data SET next_right_edge = '
-        || newedge.edge_id
-        || ', abs_next_right_edge = '
-        || newedge.edge_id
-        || ' WHERE edge_id = ' 
-        || -newedge.prev_left_edge;
-    END IF;
-  END IF;
-
-  -- Link prev_right_edge to us 
-  -- (if it's not us already)
-  IF abs(newedge.prev_right_edge) != newedge.edge_id THEN
-    IF newedge.prev_right_edge > 0 THEN
-      -- its next_left_edge is -us
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.edge_data SET next_left_edge = '
-        || -newedge.edge_id
-        || ', abs_next_left_edge = '
-        || newedge.edge_id
-        || ' WHERE edge_id = ' 
-        || newedge.prev_right_edge;
-    ELSE
-      -- its next_right_edge is -us
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.edge_data SET next_right_edge = '
-        || -newedge.edge_id
-        || ', abs_next_right_edge = '
-        || newedge.edge_id
-        || ' WHERE edge_id = ' 
-        || -newedge.prev_right_edge;
-    END IF;
-  END IF;
-
-  -- NOT IN THE SPECS...
-  -- set containing_face = null for start_node and end_node
-  -- if they where isolated 
-  IF span.was_isolated OR epan.was_isolated THEN
-      EXECUTE 'UPDATE ' || quote_ident(atopology)
-        || '.node SET containing_face = null WHERE node_id IN ('
-        || anode || ',' || anothernode || ')';
-  END IF;
-
-  --------------------------------------------
-  -- Check face splitting
-  --------------------------------------------
-
+  -- Update forward edges
+  sql := 'UPDATE ' || quote_ident(atopology) ||
+    '.edge_data SET left_face = $1 WHERE edge_id = ANY($3)'
+  ;
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Checking left face for a split';
+  RAISE DEBUG 'Updating backward and forward edges in new ring: %', sql;
 #endif
-  SELECT topology._ST_AddFaceSplit(atopology, newedge.edge_id, newedge.left_face, false)
-  INTO newface;
-  IF newface = 0 THEN
+  EXECUTE sql USING newface, oface,
+    array(select +x from unnest(fan.newring_edges) u(x) where x > 0)
+  ;
+
+  -- Update backward edges
+  sql := 'UPDATE ' || quote_ident(atopology) ||
+    '.edge_data SET right_face = $1 WHERE edge_id = ANY($3)'
+  ;
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG ' No split';
+  RAISE DEBUG 'Updating backward edges in new ring: %', sql;
 #endif
-    RETURN newedge.edge_id; 
-  END IF;
+  EXECUTE sql USING newface, oface,
+    array(select -x from unnest(fan.newring_edges) u(x) where x < 0)
+  ;
 
-  IF newface IS NULL THEN -- must be forming a maximal ring in universal face
+  IF oface != 0 AND NOT isccw THEN -- {
+    -- face shrinked, must update all non-contained edges and nodes
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Checking right face';
+    RAISE DEBUG 'Updating rings in former shell';
 #endif
-    SELECT topology._ST_AddFaceSplit(atopology, -newedge.edge_id, newedge.left_face, false)
-    INTO newface;
+    ishole := true;
   ELSE
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG 'Updating right face mbr';
+    RAISE DEBUG 'Updating contained edges';
 #endif
-    PERFORM topology._ST_AddFaceSplit(atopology, -newedge.edge_id, newedge.left_face, true);
-  END IF;
+    ishole := false;
+  END IF; -- }
 
-  IF newface IS NULL THEN
+  -- Update edges bounding the old face
+  sql := 'UPDATE '
+    || quote_ident(atopology)
+    || '.edge_data SET left_face = CASE WHEN left_face = $2 THEN $3'
+    || ' ELSE left_face END, right_face = CASE WHEN right_face = $2 '
+    || ' THEN $3 ELSE right_face END WHERE ( left_face = $2 '
+    || ' OR right_face = $2 ) AND NOT edge_id = ANY ($4) AND ';
+  IF ishole THEN sql := sql || 'NOT '; END IF;
+  sql := sql || '($1 && geom AND _ST_Contains($1'
+    -- We only need to check a single point, but must not be an endpoint
+    || ', ST_LineInterpolatePoint(geom, 0.2)) )';
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-    RAISE DEBUG ' No split';
+  RAISE DEBUG 'Updating edges bounding the old face: %', sql;
 #endif
-    RETURN newedge.edge_id; 
-  END IF;
-
-  --------------------------------------------
-  -- Update topogeometries, if needed
-  --------------------------------------------
+  EXECUTE sql USING fan.shell, oface, newface,
+    array(select abs(x) from unnest(fan.newring_edges) u(x));
 
-  IF newedge.left_face != 0 THEN -- {
-
-    -- NOT IN THE SPECS:
-    -- update TopoGeometry compositions to add newface
-    sql := 'SELECT r.topogeo_id, r.layer_id FROM '
-      || quote_ident(atopology)
-      || '.relation r, topology.layer l '
-      || ' WHERE l.topology_id = ' || topoid
-      || ' AND l.level = 0 '
-      || ' AND l.layer_id = r.layer_id '
-      || ' AND r.element_id = ' || newedge.left_face
-      || ' AND r.element_type = 3 ';
-    --RAISE DEBUG 'SQL: %', sql;
-    FOR rec IN EXECUTE sql
-    LOOP
+  -- Update isolated nodes in new new face 
+  sql := 'UPDATE '
+    || quote_ident(atopology) || '.node SET containing_face = $2 '
+    || ' WHERE containing_face = $3 AND ';
+  IF ishole THEN sql := sql || 'NOT '; END IF;
+  sql := sql || 'ST_Contains($1, geom)';
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-      RAISE DEBUG 'TopoGeometry % in layer % contained the face being split (%) - updating to contain also new face %', rec.topogeo_id, rec.layer_id, newedge.left_face, newface;
+  RAISE DEBUG 'Updating isolated nodes in old face';
 #endif
+  EXECUTE sql USING fan.shell, newface, oface;
 
-      -- Add reference to the other face
-      sql := 'INSERT INTO ' || quote_ident(atopology)
-        || '.relation VALUES( ' || rec.topogeo_id
-        || ',' || rec.layer_id || ',' || newface || ', 3)';
-      --RAISE DEBUG 'SQL: %', sql;
-      EXECUTE sql;
-
-    END LOOP;
-
-  END IF; -- }
+  RETURN newface;
 
-  RETURN newedge.edge_id;
 END
 $$
 LANGUAGE 'plpgsql' VOLATILE;
+--}
+
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.12
+--
+--  ST_AddEdgeNewFaces(atopology, anode, anothernode, acurve)
+--
+-- Not in the specs:
+-- * Reset containing_face for starting and ending point,
+--   as they stop being isolated nodes
+-- * Update references in the Relation table.
+--
+CREATE OR REPLACE FUNCTION topology.ST_AddEdgeNewFaces(atopology varchar, anode integer, anothernode integer, acurve geometry)
+  RETURNS INTEGER AS
+	'MODULE_PATHNAME','ST_AddEdgeNewFaces'
+  LANGUAGE 'c' VOLATILE;
+--} ST_AddEdgeNewFaces
+
+--{
+-- Topo-Geo and Topo-Net 3: Routine Details
+-- X.3.13
+--
+--  ST_AddEdgeModFace(atopology, anode, anothernode, acurve)
+--
+-- Not in the specs:
+-- * Reset containing_face for starting and ending point,
+--   as they stop being isolated nodes
+-- * Update references in the Relation table.
+--
+CREATE OR REPLACE FUNCTION topology.ST_AddEdgeModFace(atopology varchar, anode integer, anothernode integer, acurve geometry)
+  RETURNS INTEGER AS
+	'MODULE_PATHNAME','ST_AddEdgeModFace'
+  LANGUAGE 'c' VOLATILE;
 --} ST_AddEdgeModFace
 
 --{
diff --git a/topology/sql/topogeometry/totopogeom.sql.in b/topology/sql/topogeometry/totopogeom.sql.in
index e49d9c3..3b7d33e 100644
--- a/topology/sql/topogeometry/totopogeom.sql.in
+++ b/topology/sql/topogeometry/totopogeom.sql.in
@@ -144,7 +144,9 @@ DECLARE
   atopology TEXT;
 BEGIN
 
-  RAISE NOTICE 'TopoGeometry is "%", its topology_id is "%"', tg, topology_id(tg);
+#ifdef POSTGIS_TOPOLOGY_DEBUG
+  RAISE DEBUG 'TopoGeometry is "%", its topology_id is "%"', tg, topology_id(tg);
+#endif
 
   -- Get topology information
   SELECT id, name FROM topology.topology
diff --git a/topology/test/regress/addtopogeometrycolumn.sql b/topology/test/regress/addtopogeometrycolumn.sql
index 628e273..b5223ff 100644
--- a/topology/test/regress/addtopogeometrycolumn.sql
+++ b/topology/test/regress/addtopogeometrycolumn.sql
@@ -1,6 +1,7 @@
 set client_min_messages to WARNING;
 \set VERBOSITY terse
 
+select addtopogeometrycolumn('tt','public','feature','tg','POINT'); -- fail
 select createtopology('tt') > 0;
 select addtopogeometrycolumn('tt','public','feature','tg','POINT'); -- fail
 create table feature(id integer);
diff --git a/topology/test/regress/addtopogeometrycolumn_expected b/topology/test/regress/addtopogeometrycolumn_expected
index c893a24..38f786e 100644
--- a/topology/test/regress/addtopogeometrycolumn_expected
+++ b/topology/test/regress/addtopogeometrycolumn_expected
@@ -1,3 +1,4 @@
+ERROR:  Topology 'tt' does not exist
 t
 ERROR:  relation "public.feature" does not exist
 ERROR:  Layer type must be one of POINT,LINE,POLYGON,COLLECTION
diff --git a/topology/test/regress/createtopology.sql b/topology/test/regress/createtopology.sql
index fc44176..9ac06b6 100644
--- a/topology/test/regress/createtopology.sql
+++ b/topology/test/regress/createtopology.sql
@@ -26,3 +26,7 @@ SELECT topology.AddNode('2d', 'POINT(2 2)');
 SELECT topology.DropTopology('2d');
 SELECT topology.DropTopology('2dAgain');
 SELECT topology.DropTopology('3d');
+
+-- Exceptions
+SELECT topology.CreateTopology('public');
+SELECT topology.CreateTopology('topology');
diff --git a/topology/test/regress/createtopology_expected b/topology/test/regress/createtopology_expected
index 5f39466..e08c967 100644
--- a/topology/test/regress/createtopology_expected
+++ b/topology/test/regress/createtopology_expected
@@ -14,3 +14,5 @@ ERROR:  Geometry has Z dimension but column does not
 Topology '2d' dropped
 Topology '2dAgain' dropped
 Topology '3d' dropped
+ERROR:  schema "public" already exists
+ERROR:  schema "topology" already exists
diff --git a/topology/test/regress/droptopology.sql b/topology/test/regress/droptopology.sql
index ec578a9..84f2ca4 100644
--- a/topology/test/regress/droptopology.sql
+++ b/topology/test/regress/droptopology.sql
@@ -13,3 +13,7 @@ SELECT topology.DropTopology('t1');
 SELECT topology.DropTopology('t2');
 DROP TABLE t2f;
 DROP TABLE t1f;
+
+-- Exceptions
+SELECT topology.DropTopology('topology');
+SELECT topology.DropTopology('doesnotexist');
diff --git a/topology/test/regress/droptopology_expected b/topology/test/regress/droptopology_expected
index c590ed3..e8ef689 100644
--- a/topology/test/regress/droptopology_expected
+++ b/topology/test/regress/droptopology_expected
@@ -4,3 +4,5 @@ t
 t
 Topology 't1' dropped
 Topology 't2' dropped
+ERROR:  Topology 'topology' does not exist
+ERROR:  Topology 'doesnotexist' does not exist
diff --git a/topology/test/regress/getfacebypoint.sql b/topology/test/regress/getfacebypoint.sql
index 04af5d9..8c5bf6c 100644
--- a/topology/test/regress/getfacebypoint.sql
+++ b/topology/test/regress/getfacebypoint.sql
@@ -30,25 +30,25 @@ select topology.addFace('schema_topo', 'POLYGON((1 5, 1 12, 7 12, 8 12, 10 12, 1
 
 
 -- ask for a Point with tolerance zero
-select topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(7 7)'), 0::float8)::int;
-select topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(6 7)'), 0::float8)::int;
-select topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(5 7)'), 0::float8)::int;
+select 't1', topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(7 7)'), 0::float8)::int;
+select 't2', topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(6 7)'), 0::float8)::int;
+select 't3', topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(5 7)'), 0::float8)::int;
 
 -- ask for a Point where there isn't a Face
-select topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(9 13)'), 0::float8)::int;
-select topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(5 8)'), 0::float8)::int;
+select 't4', topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(9 13)'), 0::float8)::int;
+select 't5', topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(5 8)'), 0::float8)::int;
 
 -- Ask for a point outside from an face but with a tolerance sufficient to include one face
-select topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(8.5 13)'), 0.5::float8)::int;
-select topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(5 8)'), 1::float8)::int;
+select 't6', topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(8.5 13)'), 0.5::float8)::int;
+select 't7', topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(5 8)'), 1::float8)::int;
 
 -- Failing cases (should all raise exceptions) -------
 
 -- Ask for Point in a Node (2 or more faces)
-select topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(1 5)'), 0::float8)::int;
+select 'e1', topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(1 5)'), 0::float8)::int;
 
 -- Ask for a Point with a tollerance too high (2 or more faces)
-select topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(9 13)'), 1::float8)::int;
+select 'e2', topology.GetFaceByPoint('schema_topo',ST_GeomFromText('POINT(9 13)'), 1::float8)::int;
 
 
 SELECT topology.DropTopology('schema_topo');
diff --git a/topology/test/regress/getfacebypoint_expected b/topology/test/regress/getfacebypoint_expected
index 9802948..4c63cd7 100644
--- a/topology/test/regress/getfacebypoint_expected
+++ b/topology/test/regress/getfacebypoint_expected
@@ -23,13 +23,13 @@ t
 2
 3
 4
-4
-4
-4
-0
-0
-3
-4
+t1|4
+t2|4
+t3|4
+t4|0
+t5|0
+t6|3
+t7|4
 ERROR:  Two or more faces found
 ERROR:  Two or more faces found
 Topology 'schema_topo' dropped
diff --git a/topology/test/regress/legacy_invalid_expected b/topology/test/regress/legacy_invalid_expected
index 67e0404..b4d5754 100644
--- a/topology/test/regress/legacy_invalid_expected
+++ b/topology/test/regress/legacy_invalid_expected
@@ -1,8 +1,8 @@
 BEGIN
 t
 coincident nodes|1|23
-edge crosses node|23|1
-edge crosses node|14|27
+edge crosses node|1|23
+edge crosses node|27|14
 edge not simple|28|
 invalid edge|33|
 edge crosses edge|2|28
diff --git a/topology/test/regress/sqlmm.sql b/topology/test/regress/sqlmm.sql
index ae58e63..6b8199f 100644
--- a/topology/test/regress/sqlmm.sql
+++ b/topology/test/regress/sqlmm.sql
@@ -104,7 +104,7 @@ SELECT topology.ST_AddIsoNode('sqlmm_topology', NULL, 'POINT(5 9.5)');
 SELECT '-- ST_RemoveIsoNode  ------------------------';
 
 -- Isolated node
-SELECT topology.ST_RemoveIsoNode('sqlmm_topology', 1);
+SELECT topology.ST_RemoveIsoNode('sqlmm_topology', 3);
 
 -- Non isolated node (is used by an edge);
 SELECT topology.ST_RemoveIsoNode('sqlmm_topology', 4);
@@ -116,8 +116,9 @@ SELECT topology.ST_RemoveIsoNode('sqlmm_topology', 4);
 SELECT '-- ST_MoveIsoNode  ------------------------';
 
 -- Isolated node to invalid location (coincident)
-SELECT topology.ST_MoveIsoNode('sqlmm_topology', 2, 'POINT(5 10)');
-SELECT topology.ST_MoveIsoNode('sqlmm_topology', 2, 'POINT(4 4)');
+SELECT topology.ST_MoveIsoNode('sqlmm_topology', 8, 'POINT(5 10)');
+-- Isolated node to invalid location (edge-crossing)
+SELECT topology.ST_MoveIsoNode('sqlmm_topology', 8, 'POINT(5 9)');
 
 -- Non isolated node (is used by an edge);
 SELECT topology.ST_MoveIsoNode('sqlmm_topology', 4, 'POINT(5 4)');
@@ -125,6 +126,10 @@ SELECT topology.ST_MoveIsoNode('sqlmm_topology', 4, 'POINT(5 4)');
 -- Invalid point
 SELECT topology.ST_MoveIsoNode('sqlmm_topology', 2, 'MULTIPOINT(5 4)');
 
+-- Valid move
+SELECT topology.ST_MoveIsoNode('sqlmm_topology', 8, 'POINT(7 11)');
+SELECT topology.ST_MoveIsoNode('sqlmm_topology', 8, 'POINT(7 10)');
+
 -------------------------------------------------------------
 -- ST_RemoveIsoEdge
 -------------------------------------------------------------
diff --git a/topology/test/regress/sqlmm_expected b/topology/test/regress/sqlmm_expected
index 0408f37..24df34b 100644
--- a/topology/test/regress/sqlmm_expected
+++ b/topology/test/regress/sqlmm_expected
@@ -37,13 +37,15 @@ ERROR:  SQL/MM Spatial exception - not isolated node
 -- ST_AddIsoNode(2) ------------------------
 ERROR:  SQL/MM Spatial exception - edge crosses node.
 -- ST_RemoveIsoNode  ------------------------
-ERROR:  SQL/MM Spatial exception - not isolated node
+Isolated node 3 removed
 ERROR:  SQL/MM Spatial exception - not isolated node
 -- ST_MoveIsoNode  ------------------------
-ERROR:  SQL/MM Spatial exception - not isolated node
-ERROR:  SQL/MM Spatial exception - not isolated node
+ERROR:  SQL/MM Spatial exception - coincident node
+ERROR:  SQL/MM Spatial exception - edge crosses node.
 ERROR:  SQL/MM Spatial exception - not isolated node
 ERROR:  SQL/MM Spatial exception - invalid point
+Isolated Node 8 moved to location 7,11
+Isolated Node 8 moved to location 7,10
 -- ST_RemoveIsoEdge ---------------------
 Isolated edge 1 removed
 -- ST_NewEdgesSplit  ---------------------
diff --git a/topology/test/regress/st_addisoedge_expected b/topology/test/regress/st_addisoedge_expected
index 182dc6a..f1ae4f0 100644
--- a/topology/test/regress/st_addisoedge_expected
+++ b/topology/test/regress/st_addisoedge_expected
@@ -29,5 +29,5 @@ ERROR:  SQL/MM Spatial exception - not isolated node
 ERROR:  SQL/MM Spatial exception - not isolated node
 ERROR:  Closed edges would not be isolated, try ST_AddEdgeNewFaces
 ERROR:  SQL/MM Spatial exception - not isolated node
-ERROR:  SQL/MM Spatial exception - geometry intersects an edge
+ERROR:  SQL/MM Spatial exception - geometry crosses edge 2
 Topology 'tt' dropped
diff --git a/topology/test/regress/st_getfaceedges.sql b/topology/test/regress/st_getfaceedges.sql
index 2927d79..6ff65b4 100644
--- a/topology/test/regress/st_getfaceedges.sql
+++ b/topology/test/regress/st_getfaceedges.sql
@@ -28,5 +28,17 @@ SELECT 'F2', (topology.ST_GetFaceEdges('tt', 2)).*;
 
 SELECT 'F0', (topology.ST_GetFaceEdges('tt', 0)).*;
 
+SELECT topology.DropTopology('tt');
 
+-- See https://trac.osgeo.org/postgis/ticket/3265
+SELECT topology.CreateTopology('tt') > 0;
+SELECT '#3265.1', 'E'||topology.TopoGeo_addLinestring('tt',
+  'LINESTRING(150 150, 180 150, 180 180)');
+SELECT '#3265.2', 'E'||topology.TopoGeo_addLinestring('tt',
+  'LINESTRING(150 150, 180 180)');
+SELECT '#3265.3', 'E'||topology.TopoGeo_addLinestring('tt',
+  'LINESTRING(178 170, 178 161, 170 161, 178 170)');
+SELECT '#3265.4', 0, ST_GetFaceEdges('tt', 0);
+SELECT '#3265.5', 1, ST_GetFaceEdges('tt', 1);
+SELECT '#3265.6', 2, ST_GetFaceEdges('tt', 2);
 SELECT topology.DropTopology('tt');
diff --git a/topology/test/regress/st_getfaceedges_expected b/topology/test/regress/st_getfaceedges_expected
index 556a240..08d619f 100644
--- a/topology/test/regress/st_getfaceedges_expected
+++ b/topology/test/regress/st_getfaceedges_expected
@@ -28,3 +28,14 @@ F0|2|6
 F0|3|-7
 F0|4|-5
 Topology 'tt' dropped
+t
+#3265.1|E1
+#3265.2|E2
+#3265.3|E3
+#3265.4|0|(1,-1)
+#3265.4|0|(2,2)
+#3265.5|1|(1,-3)
+#3265.6|2|(1,1)
+#3265.6|2|(2,-2)
+#3265.6|2|(3,3)
+Topology 'tt' dropped
diff --git a/topology/test/regress/st_modedgesplit.sql b/topology/test/regress/st_modedgesplit.sql
index 80abf19..b4747a8 100644
--- a/topology/test/regress/st_modedgesplit.sql
+++ b/topology/test/regress/st_modedgesplit.sql
@@ -2,8 +2,10 @@
 \set VERBOSITY terse
 set client_min_messages to WARNING;
 
+INSERT INTO spatial_ref_sys ( auth_name, auth_srid, srid, proj4text ) VALUES ( 'EPSG', 4326, 4326, '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' );
+
 -- Import city_data
-\i load_topology.sql
+\i load_topology-4326.sql
 
 -- Save max node id
 select 'node'::text as what, max(node_id) INTO city_data.limits FROM city_data.node;
@@ -62,32 +64,32 @@ $$ LANGUAGE 'plpgsql';
 -- }
 
 -- Invalid calls
-SELECT 'invalid', ST_ModEdgeSplit('city_data', 999, 'POINT(36 26, 38 30)');
-SELECT 'invalid', ST_ModEdgeSplit('city_data', 10, 'POINT(28 15)');
-SELECT 'invalid', ST_ModEdgeSplit('', 10, 'POINT(28 14)');
-SELECT 'invalid', ST_ModEdgeSplit(NULL, 10, 'POINT(28 14)');
-SELECT 'invalid', ST_ModEdgeSplit('city_data', NULL, 'POINT(28 14)');
+SELECT 'invalid', ST_ModEdgeSplit('city_data', 999, 'SRID=4326;POINT(36 26, 38 30)');
+SELECT 'invalid', ST_ModEdgeSplit('city_data', 10, 'SRID=4326;POINT(28 15)');
+SELECT 'invalid', ST_ModEdgeSplit('', 10, 'SRID=4326;POINT(28 14)');
+SELECT 'invalid', ST_ModEdgeSplit(NULL, 10, 'SRID=4326;POINT(28 14)');
+SELECT 'invalid', ST_ModEdgeSplit('city_data', NULL, 'SRID=4326;POINT(28 14)');
 SELECT 'invalid', ST_ModEdgeSplit('city_data', 10, NULL);
-SELECT 'invalid', ST_ModEdgeSplit('fake', 10, 'POINT(28 14)');
+SELECT 'invalid', ST_ModEdgeSplit('fake', 10, 'SRID=4326;POINT(28 14)');
 
 -- Non-isolated edge 
-SELECT 'noniso', ST_ModEdgeSplit('city_data', 10, 'POINT(28 14)');
+SELECT 'noniso', ST_ModEdgeSplit('city_data', 10, 'SRID=4326;POINT(28 14)');
 SELECT check_changes();
 
 -- Isolated edge
-SELECT 'iso', ST_ModEdgeSplit('city_data', 25, 'POINT(11 35)');
+SELECT 'iso', ST_ModEdgeSplit('city_data', 25, 'SRID=4326;POINT(11 35)');
 SELECT check_changes();
 
 -- Dangling on end point 
-SELECT 'dangling_end', ST_ModEdgeSplit('city_data', 3, 'POINT(25 32)');
+SELECT 'dangling_end', ST_ModEdgeSplit('city_data', 3, 'SRID=4326;POINT(25 32)');
 SELECT check_changes();
 
 -- Dangling on start point 
-SELECT 'dangling_start', ST_ModEdgeSplit('city_data', 4, 'POINT(45 32)');
+SELECT 'dangling_start', ST_ModEdgeSplit('city_data', 4, 'SRID=4326;POINT(45 32)');
 SELECT check_changes();
 
 -- Splitting closed edge
-SELECT 'closed', ST_ModEdgeSplit('city_data', 1, 'POINT(3 38)');
+SELECT 'closed', ST_ModEdgeSplit('city_data', 1, 'SRID=4326;POINT(3 38)');
 SELECT check_changes();
 
 -- Robustness of edge splitting (#1711)
@@ -99,10 +101,12 @@ DELETE FROM city_data.face where face_id > 0;
 
 CREATE TEMP TABLE t AS
 SELECT
+ST_SetSRID(
 '01020000000400000000000000000034400000000000002440000000000000244000000000000024400000000000002240000000000000284000000000000024400000000000003440'
-::geometry as line, 
+::geometry, 4326) as line, 
+ST_SetSRID(
 '010100000000000000000022400000000000002840'
-::geometry as point,
+::geometry, 4326) as point,
 null::int as edge_id,
 null::int as node_id
 ;
@@ -125,3 +129,4 @@ DROP TABLE t;
 
 DROP FUNCTION check_changes();
 SELECT DropTopology('city_data');
+DELETE FROM spatial_ref_sys where srid = 4326;
diff --git a/topology/test/regress/st_newedgessplit.sql b/topology/test/regress/st_newedgessplit.sql
index 7759834..42a1489 100644
--- a/topology/test/regress/st_newedgessplit.sql
+++ b/topology/test/regress/st_newedgessplit.sql
@@ -2,8 +2,10 @@
 \set VERBOSITY terse
 set client_min_messages to ERROR;
 
+INSERT INTO spatial_ref_sys ( auth_name, auth_srid, srid, proj4text ) VALUES ( 'EPSG', 4326, 4326, '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' );
+
 -- Import city_data
-\i load_topology.sql
+\i load_topology-4326.sql
 
 -- Save max node id
 select 'node'::text as what, max(node_id) INTO city_data.limits FROM city_data.node;
@@ -62,32 +64,32 @@ $$ LANGUAGE 'plpgsql';
 -- }
 
 -- Invalid calls
-SELECT 'invalid', ST_NewEdgesSplit('city_data', 999, 'POINT(36 26, 38 30)');
-SELECT 'invalid', ST_NewEdgesSplit('city_data', 10, 'POINT(28 15)');
-SELECT 'invalid', ST_NewEdgesSplit('', 10, 'POINT(28 14)');
-SELECT 'invalid', ST_NewEdgesSplit(NULL, 10, 'POINT(28 14)');
-SELECT 'invalid', ST_NewEdgesSplit('city_data', NULL, 'POINT(28 14)');
+SELECT 'invalid', ST_NewEdgesSplit('city_data', 999, 'SRID=4326;POINT(36 26, 38 30)');
+SELECT 'invalid', ST_NewEdgesSplit('city_data', 10, 'SRID=4326;POINT(28 15)');
+SELECT 'invalid', ST_NewEdgesSplit('', 10, 'SRID=4326;POINT(28 14)');
+SELECT 'invalid', ST_NewEdgesSplit(NULL, 10, 'SRID=4326;POINT(28 14)');
+SELECT 'invalid', ST_NewEdgesSplit('city_data', NULL, 'SRID=4326;POINT(28 14)');
 SELECT 'invalid', ST_NewEdgesSplit('city_data', 10, NULL);
-SELECT 'invalid', ST_NewEdgesSplit('fake', 10, 'POINT(28 14)');
+SELECT 'invalid', ST_NewEdgesSplit('fake', 10, 'SRID=4326;POINT(28 14)');
 
 -- Non-isolated edge 
-SELECT 'noniso', ST_NewEdgesSplit('city_data', 10, 'POINT(28 14)');
+SELECT 'noniso', ST_NewEdgesSplit('city_data', 10, 'SRID=4326;POINT(28 14)');
 SELECT check_changes();
 
 -- Isolated edge
-SELECT 'iso', ST_NewEdgesSplit('city_data', 25, 'POINT(11 35)');
+SELECT 'iso', ST_NewEdgesSplit('city_data', 25, 'SRID=4326;POINT(11 35)');
 SELECT check_changes();
 
 -- Dangling on end point 
-SELECT 'dangling_end', ST_NewEdgesSplit('city_data', 3, 'POINT(25 32)');
+SELECT 'dangling_end', ST_NewEdgesSplit('city_data', 3, 'SRID=4326;POINT(25 32)');
 SELECT check_changes();
 
 -- Dangling on start point 
-SELECT 'dangling_start', ST_NewEdgesSplit('city_data', 4, 'POINT(45 32)');
+SELECT 'dangling_start', ST_NewEdgesSplit('city_data', 4, 'SRID=4326;POINT(45 32)');
 SELECT check_changes();
 
 -- Splitting closed edge
-SELECT 'closed', ST_NewEdgesSplit('city_data', 1, 'POINT(3 38)');
+SELECT 'closed', ST_NewEdgesSplit('city_data', 1, 'SRID=4326;POINT(3 38)');
 SELECT check_changes();
 
 -- Robustness of edge splitting (#1711)
@@ -99,10 +101,12 @@ DELETE FROM city_data.face where face_id > 0;
 
 CREATE TEMP TABLE t AS
 SELECT
+ST_SetSRID(
 '01020000000400000000000000000034400000000000002440000000000000244000000000000024400000000000002240000000000000284000000000000024400000000000003440'
-::geometry as line, 
+::geometry, 4326) as line, 
+ST_SetSRID(
 '010100000000000000000022400000000000002840'
-::geometry as point,
+::geometry, 4326) as point,
 null::int as edge_id,
 null::int as node_id
 ;
@@ -124,3 +128,4 @@ DROP TABLE t;
 
 DROP FUNCTION check_changes();
 SELECT DropTopology('city_data');
+DELETE FROM spatial_ref_sys where srid = 4326;
diff --git a/topology/test/regress/st_remedgenewface.sql b/topology/test/regress/st_remedgenewface.sql
index a55c905..eec922c 100644
--- a/topology/test/regress/st_remedgenewface.sql
+++ b/topology/test/regress/st_remedgenewface.sql
@@ -391,8 +391,8 @@ SELECT 'RN(11)', 'relations_after:', count(*) FROM city_data.relation;
 
 -- Land parcel P3 is now defined by face 10, so we can't drop
 -- any edge which would destroy that face.
-SELECT '*RM(8)', topology.ST_RemEdgeModFace('city_data', 8); -- face_right=10
-SELECT '*RM(15)', topology.ST_RemEdgeModFace('city_data', 15); -- face_left=10
+SELECT '*RM(8)', topology.ST_RemEdgeNewFace('city_data', 8); -- face_right=10
+SELECT '*RM(15)', topology.ST_RemEdgeNewFace('city_data', 15); -- face_left=10
 
 -- Check that no land_parcel objects had topology changed
 SELECT 'RN(11)', feature_name, 
diff --git a/topology/test/regress/st_simplify.sql b/topology/test/regress/st_simplify.sql
index f13a627..638cae2 100644
--- a/topology/test/regress/st_simplify.sql
+++ b/topology/test/regress/st_simplify.sql
@@ -35,8 +35,8 @@ INSERT INTO tt.bigareas (tg) SELECT
     TopoElementArray_agg(ARRAY[r.topogeo_id, r.layer_id]))
   FROM tt.relation r, _test_layers l1
   WHERE r.layer_id = l1.layer_id AND l1.id = 1
-  GROUP BY r.topogeo_id;
-UPDATE tt.bigareas SET g = tg;
+  GROUP BY r.topogeo_id ORDER BY r.topogeo_id;
+UPDATE tt.bigareas a SET g = st_multi(o.g) FROM tt.areas o WHERE a.id = o.id;
 
 SELECT 'HS1',
   -- Point 1 3 is removed when simplifying the simple (unconstrained) geometry
diff --git a/topology/test/regress/topogeo_addlinestring.sql b/topology/test/regress/topogeo_addlinestring.sql
index 5f4c946..9da3e8b 100644
--- a/topology/test/regress/topogeo_addlinestring.sql
+++ b/topology/test/regress/topogeo_addlinestring.sql
@@ -1,7 +1,9 @@
 \set VERBOSITY terse
 set client_min_messages to ERROR;
 
-\i load_topology.sql
+INSERT INTO spatial_ref_sys ( auth_name, auth_srid, srid, proj4text ) VALUES ( 'EPSG', 4326, 4326, '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' );
+
+\i load_topology-4326.sql
 
 -- Save max node id
 select 'node'::text as what, max(node_id) INTO city_data.limits FROM city_data.node;
@@ -56,75 +58,75 @@ $$ LANGUAGE 'plpgsql';
 
 
 -- Invalid calls
-SELECT 'invalid', TopoGeo_addLineString('city_data', 'MULTILINESTRING((36 26, 38 30))');
-SELECT 'invalid', TopoGeo_addLineString('city_data', 'POINT(36 26)');
-SELECT 'invalid', TopoGeo_addLineString('invalid', 'LINESTRING(36 26, 0 0)');
+SELECT 'invalid', TopoGeo_addLineString('city_data', 'SRID=4326;MULTILINESTRING((36 26, 38 30))');
+SELECT 'invalid', TopoGeo_addLineString('city_data', 'SRID=4326;POINT(36 26)');
+SELECT 'invalid', TopoGeo_addLineString('invalid', 'SRID=4326;LINESTRING(36 26, 0 0)');
 
 -- Isolated edge in universal face
-SELECT 'iso_uni', TopoGeo_addLineString('city_data', 'LINESTRING(36 26, 38 30)');
+SELECT 'iso_uni', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(36 26, 38 30)');
 SELECT check_changes();
 
 -- Isolated edge in face 5
-SELECT 'iso_f5', TopoGeo_addLineString('city_data', 'LINESTRING(37 20, 43 19, 41 16)');
+SELECT 'iso_f5', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(37 20, 43 19, 41 16)');
 SELECT check_changes();
 
 -- Existing isolated edge
-SELECT 'iso_ex', TopoGeo_addLineString('city_data', 'LINESTRING(36 26, 38 30)');
+SELECT 'iso_ex', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(36 26, 38 30)');
 SELECT check_changes();
 
 -- Existing isolated edge within tolerance
-SELECT 'iso_ex_tol', TopoGeo_addLineString('city_data', 'LINESTRING(36 27, 38 31)', 2);
+SELECT 'iso_ex_tol', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(36 27, 38 31)', 2);
 SELECT check_changes();
 
 -- Existing non-isolated edge
-SELECT 'noniso_ex', TopoGeo_addLineString('city_data', 'LINESTRING(35 6, 35 14)');
+SELECT 'noniso_ex', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(35 6, 35 14)');
 SELECT check_changes();
 
 -- Existing non-isolated edge within tolerance 
-SELECT 'noniso_ex_tol', TopoGeo_addLineString('city_data', 'LINESTRING(35 7, 35 13)', 2);
+SELECT 'noniso_ex_tol', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(35 7, 35 13)', 2);
 SELECT check_changes();
 
 -- Fully contained
-SELECT 'contained', TopoGeo_addLineString('city_data', 'LINESTRING(35 8, 35 12)');
+SELECT 'contained', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(35 8, 35 12)');
 SELECT check_changes();
 
 -- Overlapping 
-SELECT 'overlap', TopoGeo_addLineString('city_data', 'LINESTRING(45 22, 49 22)') ORDER BY 2;
+SELECT 'overlap', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(45 22, 49 22)') ORDER BY 2;
 SELECT check_changes();
 
 -- Crossing
-SELECT 'cross', TopoGeo_addLineString('city_data', 'LINESTRING(49 18, 44 17)') ORDER BY 2;
+SELECT 'cross', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(49 18, 44 17)') ORDER BY 2;
 SELECT check_changes();
 
 -- Snapping (and splitting a face)
-SELECT 'snap', TopoGeo_addLineString('city_data', 'LINESTRING(18 22.2, 22.5 22.2, 21.2 20.5)', 1) ORDER BY 2;
+SELECT 'snap', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(18 22.2, 22.5 22.2, 21.2 20.5)', 1) ORDER BY 2;
 SELECT check_changes();
-SELECT 'snap_again', TopoGeo_addLineString('city_data', 'LINESTRING(18 22.2, 22.5 22.2, 21.2 20.5)', 1) ORDER BY 2;
+SELECT 'snap_again', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(18 22.2, 22.5 22.2, 21.2 20.5)', 1) ORDER BY 2;
 SELECT check_changes();
 
 -- A mix of crossing and overlapping, splitting another face
-SELECT 'crossover', TopoGeo_addLineString('city_data', 'LINESTRING(9 18, 9 20, 21 10, 21 7)') ORDER BY 2;
+SELECT 'crossover', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(9 18, 9 20, 21 10, 21 7)') ORDER BY 2;
 SELECT check_changes();
-SELECT 'crossover_again', TopoGeo_addLineString('city_data', 'LINESTRING(9 18, 9 20, 21 10, 21 7)') ORDER BY 2;
+SELECT 'crossover_again', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(9 18, 9 20, 21 10, 21 7)') ORDER BY 2;
 SELECT check_changes();
 
 -- Fully containing
-SELECT 'contains', TopoGeo_addLineString('city_data', 'LINESTRING(14 34, 13 35, 10 35, 9 35, 7 36)') ORDER BY 2;
+SELECT 'contains', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(14 34, 13 35, 10 35, 9 35, 7 36)') ORDER BY 2;
 SELECT check_changes();
 
 -- Crossing a node
-SELECT 'nodecross', TopoGeo_addLineString('city_data', 'LINESTRING(18 37, 22 37)') ORDER BY 2;
+SELECT 'nodecross', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(18 37, 22 37)') ORDER BY 2;
 SELECT check_changes();
 
 -- Existing isolated edge with 2 segments
-SELECT 'iso_ex_2segs', TopoGeo_addLineString('city_data', 'LINESTRING(37 20, 43 19, 41 16)');
+SELECT 'iso_ex_2segs', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(37 20, 43 19, 41 16)');
 SELECT check_changes();
 
 -- See http://trac.osgeo.org/postgis/attachment/ticket/1613
 
-SELECT '#1613.1', TopoGeo_addLineString('city_data', 'LINESTRING(556267.562954 144887.066638, 556267 144887.4)') ORDER BY 2;
+SELECT '#1613.1', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(556267.562954 144887.066638, 556267 144887.4)') ORDER BY 2;
 SELECT check_changes();
-SELECT '#1613.2', TopoGeo_addLineString('city_data', 'LINESTRING(556250 144887, 556267 144887.07, 556310.04 144887)') ORDER BY 2;
+SELECT '#1613.2', TopoGeo_addLineString('city_data', 'SRID=4326;LINESTRING(556250 144887, 556267 144887.07, 556310.04 144887)') ORDER BY 2;
 SELECT check_changes();
 
 -- Consistency check
@@ -138,11 +140,11 @@ DELETE FROM city_data.node;
 DELETE FROM city_data.face where face_id > 0; 
 
 SELECT '#1631.1', TopoGeo_addLineString('city_data',
-  'LINESTRING(556267.56295432 144887.06663814,556267.566 144888)'
+  'SRID=4326;LINESTRING(556267.56295432 144887.06663814,556267.566 144888)'
 ) ORDER BY 2;
 SELECT check_changes();
 SELECT '#1631.2', TopoGeo_addLineString('city_data',
-  'LINESTRING(556254.67 144886.62, 556267.66 144887.07)'
+  'SRID=4326;LINESTRING(556254.67 144886.62, 556267.66 144887.07)'
 ) ORDER BY 2;
 SELECT check_changes();
 
@@ -156,12 +158,12 @@ DELETE FROM city_data.edge_data; DELETE FROM city_data.node;
 DELETE FROM city_data.face where face_id > 0; 
 
 SELECT '#1641.1', TopoGeo_addLineString('city_data',
-  'LINESTRING(-0.223586 0.474301, 0.142550 0.406124)' 
+  'SRID=4326;LINESTRING(-0.223586 0.474301, 0.142550 0.406124)' 
 ) ORDER BY 2;
 SELECT check_changes();
 -- Use a tolerance
 SELECT '#1641.2', TopoGeo_addLineString('city_data',
-  'LINESTRING(0.095989 0.113619, -0.064646 0.470149)'
+  'SRID=4326;LINESTRING(0.095989 0.113619, -0.064646 0.470149)'
   , 1e-16
 ) ORDER BY 2;
 SELECT check_changes();
@@ -175,11 +177,11 @@ DELETE FROM city_data.edge_data; DELETE FROM city_data.node;
 DELETE FROM city_data.face where face_id > 0; 
 
 SELECT '#1641.3', TopoGeo_addLineString('city_data',
-  'LINESTRING(-0.223586 0.474301, 0.142550 0.406124)' 
+  'SRID=4326;LINESTRING(-0.223586 0.474301, 0.142550 0.406124)' 
 ) ORDER BY 2;
 SELECT check_changes();
 SELECT '#1641.4', TopoGeo_addLineString('city_data',
-  'LINESTRING(0.095989 0.113619, -0.064646 0.470149)'
+  'SRID=4326;LINESTRING(0.095989 0.113619, -0.064646 0.470149)'
 ) ORDER BY 2;
 SELECT check_changes();
 
@@ -193,12 +195,12 @@ DELETE FROM city_data.face where face_id > 0;
 
 SELECT '#1650.1' UNION ALL
 SELECT '#1650.2' || TopoGeo_addLineString('city_data',
-  'LINESTRING(0 0, 0 1)'
+  'SRID=4326;LINESTRING(0 0, 0 1)'
 , 2)::text;
 SELECT check_changes();
 
 SELECT '#1650.3', TopoGeo_addLineString('city_data',
-  'LINESTRING(-1 0, 10 0)'
+  'SRID=4326;LINESTRING(-1 0, 10 0)'
 , 2) ORDER BY 2;
 SELECT check_changes();
 
@@ -211,10 +213,10 @@ SELECT * FROM ValidateTopology('city_data');
 DELETE FROM city_data.edge_data; DELETE FROM city_data.node; 
 DELETE FROM city_data.face where face_id > 0; 
 
-SELECT '#1654.1', 'N', ST_AddIsoNode('city_data', 0, 'POINT(0 0)');
+SELECT '#1654.1', 'N', ST_AddIsoNode('city_data', 0, 'SRID=4326;POINT(0 0)');
 SELECT check_changes();
 SELECT '#1654.2', TopoGeo_addLineString('city_data',
-  'LINESTRING(-10 1, 10 1)'
+  'SRID=4326;LINESTRING(-10 1, 10 1)'
 , 2) ORDER BY 2;
 SELECT check_changes();
 
@@ -228,11 +230,11 @@ DELETE FROM city_data.edge_data; DELETE FROM city_data.node;
 DELETE FROM city_data.face where face_id > 0; 
 
 SELECT '#1706.1', 'E', TopoGeo_AddLineString('city_data',
- 'LINESTRING(20 10, 10 10, 9 12, 10 20)');
+ 'SRID=4326;LINESTRING(20 10, 10 10, 9 12, 10 20)');
 SELECT check_changes();
 
 SELECT '#1706.2', 'E*', TopoGeo_addLineString('city_data',
- 'LINESTRING(10 0, 10 10, 15 10, 20 10)'
+ 'SRID=4326;LINESTRING(10 0, 10 10, 15 10, 20 10)'
 , 4) ORDER BY 3;
 SELECT check_changes();
 
@@ -245,11 +247,11 @@ SELECT * FROM ValidateTopology('city_data');
 DELETE FROM city_data.edge_data; DELETE FROM city_data.node; 
 DELETE FROM city_data.face where face_id > 0; 
 
-SELECT '#1714.1', 'N', AddNode('city_data', 'POINT(10 0)', false, true);
+SELECT '#1714.1', 'N', AddNode('city_data', 'SRID=4326;POINT(10 0)', false, true);
 SELECT check_changes();
 
 SELECT '#1714.2', 'E*', TopoGeo_addLineString('city_data',
- 'LINESTRING(10 0, 0 20, 0 0, 10 0)'
+ 'SRID=4326;LINESTRING(10 0, 0 20, 0 0, 10 0)'
 , 12) ORDER BY 3;
 SELECT check_changes();
 
@@ -259,3 +261,4 @@ SELECT * FROM ValidateTopology('city_data');
 -- Cleanups
 DROP FUNCTION check_changes();
 SELECT DropTopology('city_data');
+DELETE FROM spatial_ref_sys where srid = 4326;
diff --git a/topology/topology.sql.in b/topology/topology.sql.in
index 6b5b3a2..a0979ab 100644
--- a/topology/topology.sql.in
+++ b/topology/topology.sql.in
@@ -1,6 +1,5 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id: topology.sql.in 13213 2015-02-12 17:03:31Z strk $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.net
@@ -252,11 +251,11 @@ BEGIN
     AND text(a.attname) = OLD.feature_column
   LOOP
     query = 'SELECT * '
-      || ' FROM ' || quote_ident(OLD.schema_name)
+         ' FROM ' || quote_ident(OLD.schema_name)
       || '.' || quote_ident(OLD.table_name)
       || ' WHERE layer_id('
       || quote_ident(OLD.feature_column)||') '
-      || '=' || OLD.layer_id
+         '=' || OLD.layer_id
       || ' LIMIT 1';
     --RAISE NOTICE '%', query;
     FOR rec IN EXECUTE query
@@ -282,9 +281,9 @@ BEGIN
           AND c.relname = 'relation'
   LOOP
     query = 'SELECT * '
-      || ' FROM ' || quote_ident(toponame)
+         ' FROM ' || quote_ident(toponame)
       || '.relation '
-      || ' WHERE layer_id = '|| OLD.layer_id
+         ' WHERE layer_id = '|| OLD.layer_id
       || ' LIMIT 1';
     --RAISE NOTICE '%', query;
     FOR rec IN EXECUTE query
@@ -422,10 +421,10 @@ BEGIN
   -- Get layer info (and verify it exists)
   ok = false;
   FOR plyr IN EXECUTE 'SELECT * FROM topology.layer '
-    || 'WHERE '
-    || ' topology_id = ' || topoid
+       'WHERE '
+       ' topology_id = ' || topoid
     || ' AND'
-    || ' layer_id = ' || NEW.layer_id
+       ' layer_id = ' || NEW.layer_id
   LOOP
     ok = true;
     EXIT;
@@ -448,7 +447,7 @@ BEGIN
     ok = false;
     FOR rec IN EXECUTE 'SELECT topogeo_id FROM '
       || quote_ident(toponame) || '.relation '
-      || ' WHERE layer_id = ' || plyr.child_id 
+         ' WHERE layer_id = ' || plyr.child_id
       || ' AND topogeo_id = ' || NEW.element_id
     LOOP
       ok = true;
@@ -482,7 +481,7 @@ BEGIN
       ok = false;
       FOR rec IN EXECUTE 'SELECT node_id FROM '
         || quote_ident(toponame) || '.node '
-        || ' WHERE node_id = ' || NEW.element_id
+           ' WHERE node_id = ' || NEW.element_id
       LOOP
         ok = true;
         EXIT;
@@ -500,7 +499,7 @@ BEGIN
       ok = false;
       FOR rec IN EXECUTE 'SELECT edge_id FROM '
         || quote_ident(toponame) || '.edge_data '
-        || ' WHERE edge_id = ' || abs(NEW.element_id)
+           ' WHERE edge_id = ' || abs(NEW.element_id)
       LOOP
         ok = true;
         EXIT;
@@ -522,7 +521,7 @@ BEGIN
       ok = false;
       FOR rec IN EXECUTE 'SELECT face_id FROM '
         || quote_ident(toponame) || '.face '
-        || ' WHERE face_id = ' || NEW.element_id
+           ' WHERE face_id = ' || NEW.element_id
       LOOP
         ok = true;
         EXIT;
@@ -561,12 +560,12 @@ DECLARE
   query text;
 BEGIN
 
-        -- Get topology id
-        SELECT id FROM topology.topology into topoid
-                WHERE name = toponame;
+  -- Get topology id
+  SELECT id INTO topoid
+    FROM topology.topology WHERE name = toponame;
 
-  IF topoid IS NULL THEN
-    RAISE EXCEPTION 'Topology % does not exist', toponame;
+  IF NOT FOUND THEN
+    RAISE EXCEPTION 'Topology % does not exist', quote_literal(toponame);
   END IF;
 
   IF ltype ILIKE '%POINT%' OR ltype ILIKE 'PUNTAL' THEN
@@ -611,10 +610,10 @@ BEGIN
     ) || ')' INTO STRICT newlayer_id;
 
   EXECUTE 'INSERT INTO ' 
-    || 'topology.layer(topology_id, '
-    || 'layer_id, level, child_id, schema_name, '
-    || 'table_name, feature_column, feature_type) '
-    || 'VALUES ('
+       'topology.layer(topology_id, '
+       'layer_id, level, child_id, schema_name, '
+       'table_name, feature_column, feature_type) '
+       'VALUES ('
     || topoid || ','
     || newlayer_id || ',' || COALESCE(newlevel, 0) || ','
     || COALESCE(child::text, 'NULL') || ','
@@ -636,30 +635,30 @@ BEGIN
   EXECUTE 'ALTER TABLE ' || quote_ident(schema)
     || '.' || quote_ident(tbl) 
     || ' ADD CONSTRAINT "check_topogeom_' || col || '" CHECK ('
-    || 'topology_id(' || quote_ident(col) || ') = ' || topoid
+       'topology_id(' || quote_ident(col) || ') = ' || topoid
     || ' AND '
-    || 'layer_id(' || quote_ident(col) || ') = ' || newlayer_id
+       'layer_id(' || quote_ident(col) || ') = ' || newlayer_id
     || ' AND '
-    || 'type(' || quote_ident(col) || ') = ' || intltype
+       'type(' || quote_ident(col) || ') = ' || intltype
     || ');';
 
   --
   -- Add dependency of the feature column on the topology schema
   --
   query = 'INSERT INTO pg_catalog.pg_depend SELECT '
-    || 'fcat.oid, fobj.oid, fsub.attnum, tcat.oid, '
-    || 'tobj.oid, 0, ''n'' '
-    || 'FROM pg_class fcat, pg_namespace fnsp, '
-    || ' pg_class fobj, pg_attribute fsub, '
-    || ' pg_class tcat, pg_namespace tobj '
-    || ' WHERE fcat.relname = ''pg_class'' '
-    || ' AND fnsp.nspname = ' || quote_literal(schema)
+       'fcat.oid, fobj.oid, fsub.attnum, tcat.oid, '
+       'tobj.oid, 0, ''n'' '
+       'FROM pg_class fcat, pg_namespace fnsp, '
+       ' pg_class fobj, pg_attribute fsub, '
+       ' pg_class tcat, pg_namespace tobj '
+       ' WHERE fcat.relname = ''pg_class'' '
+       ' AND fnsp.nspname = ' || quote_literal(schema)
     || ' AND fobj.relnamespace = fnsp.oid '
-    || ' AND fobj.relname = ' || quote_literal(tbl)
+       ' AND fobj.relname = ' || quote_literal(tbl)
     || ' AND fsub.attrelid = fobj.oid '
-    || ' AND fsub.attname = ' || quote_literal(col)
+       ' AND fsub.attname = ' || quote_literal(col)
     || ' AND tcat.relname = ''pg_namespace'' '
-    || ' AND tobj.nspname = ' || quote_literal(toponame);
+       ' AND tobj.nspname = ' || quote_literal(toponame);
 
 --
 -- The only reason to add this dependency is to avoid
@@ -673,23 +672,23 @@ BEGIN
   -- This is a dirty hack ...
   --
   query = 'INSERT INTO pg_catalog.pg_depend SELECT '
-    || 'scat.oid, sobj.oid, 0, fcat.oid, '
-    || 'fobj.oid, fsub.attnum, ''n'' '
-    || 'FROM pg_class fcat, pg_namespace fnsp, '
-    || ' pg_class fobj, pg_attribute fsub, '
-    || ' pg_class scat, pg_class sobj, '
-    || ' pg_namespace snsp '
-    || ' WHERE fcat.relname = ''pg_class'' '
-    || ' AND fnsp.nspname = ' || quote_literal(schema)
+       'scat.oid, sobj.oid, 0, fcat.oid, '
+       'fobj.oid, fsub.attnum, ''n'' '
+       'FROM pg_class fcat, pg_namespace fnsp, '
+       ' pg_class fobj, pg_attribute fsub, '
+       ' pg_class scat, pg_class sobj, '
+       ' pg_namespace snsp '
+       ' WHERE fcat.relname = ''pg_class'' '
+       ' AND fnsp.nspname = ' || quote_literal(schema)
     || ' AND fobj.relnamespace = fnsp.oid '
-    || ' AND fobj.relname = ' || quote_literal(tbl)
+       ' AND fobj.relname = ' || quote_literal(tbl)
     || ' AND fsub.attrelid = fobj.oid '
-    || ' AND fsub.attname = ' || quote_literal(col)
+       ' AND fsub.attname = ' || quote_literal(col)
     || ' AND scat.relname = ''pg_class'' '
-    || ' AND snsp.nspname = ' || quote_literal(toponame)
+       ' AND snsp.nspname = ' || quote_literal(toponame)
     || ' AND sobj.relnamespace = snsp.oid ' 
-    || ' AND sobj.relname = '
-    || ' ''topogeo_s_' || newlayer_id || ''' ';
+       ' AND sobj.relname = '
+       ' ''topogeo_s_' || newlayer_id || ''' ';
 
   RAISE NOTICE '%', query;
   EXECUTE query;
@@ -733,9 +732,9 @@ BEGIN
         -- Get layer and topology info
   ok = false;
   FOR rec IN EXECUTE 'SELECT t.name as toponame, l.* FROM '
-    || 'topology.topology t, topology.layer l '
-    || ' WHERE l.topology_id = t.id'
-    || ' AND l.schema_name = ' || quote_literal(schema)
+       'topology.topology t, topology.layer l '
+       ' WHERE l.topology_id = t.id'
+       ' AND l.schema_name = ' || quote_literal(schema)
     || ' AND l.table_name = ' || quote_literal(tbl)
     || ' AND l.feature_column = ' || quote_literal(col)
   LOOP
@@ -754,8 +753,8 @@ BEGIN
     -- Cleanup the relation table
     EXECUTE 'DELETE FROM ' || quote_ident(lyrinfo.toponame)
       || '.relation '
-      || ' WHERE '
-      || 'layer_id = ' || lyrinfo.layer_id;
+         ' WHERE '
+         'layer_id = ' || lyrinfo.layer_id;
 
     -- Drop the sequence for topogeoms in this layer
     EXECUTE 'DROP SEQUENCE ' || quote_ident(lyrinfo.toponame)
@@ -791,7 +790,7 @@ BEGIN
 
   -- Delete the layer record
   EXECUTE 'DELETE FROM topology.layer '
-    || ' WHERE topology_id = ' || lyrinfo.topology_id
+       ' WHERE topology_id = ' || lyrinfo.topology_id
     || ' AND layer_id = ' || lyrinfo.layer_id;
 
   IF ok THEN
@@ -862,15 +861,19 @@ BEGIN
   END IF;
 
   -- Get topology id into return TopoGeometry
-  SELECT id FROM topology.topology into ret.topology_id
-    WHERE name = toponame;
+  SELECT id INTO ret.topology_id
+    FROM topology.topology WHERE name = toponame;
+
+  IF NOT FOUND THEN
+    RAISE EXCEPTION 'Topology % does not exist', quote_literal(toponame);
+  END IF;
 
   --
   -- Get layer info
   --
   layertype := NULL;
   FOR rec IN EXECUTE 'SELECT * FROM topology.layer'
-    || ' WHERE topology_id = ' || ret.topology_id
+       ' WHERE topology_id = ' || ret.topology_id
     || ' AND layer_id = ' || layer_id
   LOOP
     layertype = rec.feature_type;
@@ -935,8 +938,8 @@ BEGIN
       --
       EXECUTE 'INSERT INTO '||quote_ident(toponame)
         || '.relation(topogeo_id, layer_id, '
-        || 'element_id,element_type) '
-        || ' VALUES ('||ret.id
+           'element_id,element_type) '
+           ' VALUES ('||ret.id
         ||','||ret.layer_id
         || ',' || obj_id || ',' || obj_type || ');';
     END IF;
@@ -996,8 +999,13 @@ $$
 DECLARE
   ret integer;
 BEGIN
-        SELECT id FROM topology.topology into ret
-                WHERE name = toponame;
+  SELECT id INTO ret
+    FROM topology.topology WHERE name = toponame;
+
+  IF NOT FOUND THEN
+    RAISE EXCEPTION 'Topology % does not exist', quote_literal(toponame);
+  END IF;
+
   RETURN ret;
 END
 $$
@@ -1102,8 +1110,8 @@ BEGIN
   -- Get layer info
   ok = false;
   FOR rec IN EXECUTE 'SELECT * FROM '
-    || ' topology.layer '
-    || ' WHERE layer_id = ' || layerid
+       ' topology.layer '
+       ' WHERE layer_id = ' || layerid
   LOOP
     lyr = rec;
     ok = true;
@@ -1116,7 +1124,7 @@ BEGIN
 
   query = 'SELECT abs(element_id) as element_id, element_type FROM '
     || quote_ident(toponame) || '.relation WHERE '
-    || ' layer_id = ' || layerid
+       ' layer_id = ' || layerid
     || ' AND topogeo_id = ' || quote_literal(tgid)
     || ' ORDER BY element_type, element_id';
 
@@ -1225,15 +1233,15 @@ BEGIN
       || quote_ident(clyr.schema_name) || '.'
       || quote_ident(clyr.table_name)
       || ', ' || quote_ident(toponame) || '.relation pr'
-      || ' WHERE '
-      || ' pr.topogeo_id = ' || topogeom.id
+         ' WHERE '
+         ' pr.topogeo_id = ' || topogeom.id
       || ' AND '
-      || ' pr.layer_id = ' || topogeom.layer_id
+         ' pr.layer_id = ' || topogeom.layer_id
       || ' AND '
-      || ' id('||quote_ident(clyr.feature_column)
+         ' id('||quote_ident(clyr.feature_column)
       || ') = pr.element_id '
-      || ' AND '
-      || 'layer_id('||quote_ident(clyr.feature_column)
+         ' AND '
+         'layer_id('||quote_ident(clyr.feature_column)
       || ') = pr.element_type ';
     --RAISE DEBUG '%', query;
     EXECUTE sql INTO geom;
@@ -1241,7 +1249,7 @@ BEGIN
   ELSIF topogeom.type = 3 THEN -- [multi]polygon -- }{
 
     sql := 'SELECT st_multi(st_union('
-      || 'topology.ST_GetFaceGeometry('
+         'topology.ST_GetFaceGeometry('
       || quote_literal(toponame) || ','
       || 'element_id))) as g FROM ' 
       || quote_ident(toponame)
@@ -1256,10 +1264,10 @@ BEGIN
       'SELECT st_multi(ST_LineMerge(ST_Collect(e.geom))) as g FROM '
       || quote_ident(toponame) || '.edge e, '
       || quote_ident(toponame) || '.relation r '
-      || ' WHERE r.topogeo_id = ' || topogeom.id
+         ' WHERE r.topogeo_id = ' || topogeom.id
       || ' AND r.layer_id = ' || topogeom.layer_id
       || ' AND r.element_type = 2 '
-      || ' AND abs(r.element_id) = e.edge_id';
+         ' AND abs(r.element_id) = e.edge_id';
     EXECUTE sql INTO geom;
   
   ELSIF topogeom.type = 1 THEN -- [multi]point -- }{
@@ -1268,39 +1276,39 @@ BEGIN
       'SELECT st_multi(st_union(n.geom)) as g FROM '
       || quote_ident(toponame) || '.node n, '
       || quote_ident(toponame) || '.relation r '
-      || ' WHERE r.topogeo_id = ' || topogeom.id
+         ' WHERE r.topogeo_id = ' || topogeom.id
       || ' AND r.layer_id = ' || topogeom.layer_id
       || ' AND r.element_type = 1 '
-      || ' AND r.element_id = n.node_id';
+         ' AND r.element_id = n.node_id';
     EXECUTE sql INTO geom;
 
   ELSIF topogeom.type = 4 THEN -- mixed collection -- }{
 
     sql := 'WITH areas AS ( SELECT ST_Union('
-      || 'topology.ST_GetFaceGeometry('
+         'topology.ST_GetFaceGeometry('
       || quote_literal(toponame) || ','
       || 'element_id)) as g FROM ' 
       || quote_ident(toponame)
       || '.relation WHERE topogeo_id = '
       || topogeom.id || ' AND layer_id = '
       || topogeom.layer_id || ' AND element_type = 3), '
-      || 'lines AS ( SELECT ST_LineMerge(ST_Collect(e.geom)) as g FROM '
+         'lines AS ( SELECT ST_LineMerge(ST_Collect(e.geom)) as g FROM '
       || quote_ident(toponame) || '.edge e, '
       || quote_ident(toponame) || '.relation r '
-      || ' WHERE r.topogeo_id = ' || topogeom.id
+         ' WHERE r.topogeo_id = ' || topogeom.id
       || ' AND r.layer_id = ' || topogeom.layer_id
       || ' AND r.element_type = 2 '
-      || ' AND abs(r.element_id) = e.edge_id ), '
-      || ' points as ( SELECT st_union(n.geom) as g FROM '
+         ' AND abs(r.element_id) = e.edge_id ), '
+         ' points as ( SELECT st_union(n.geom) as g FROM '
       || quote_ident(toponame) || '.node n, '
       || quote_ident(toponame) || '.relation r '
-      || ' WHERE r.topogeo_id = ' || topogeom.id
+         ' WHERE r.topogeo_id = ' || topogeom.id
       || ' AND r.layer_id = ' || topogeom.layer_id
       || ' AND r.element_type = 1 '
-      || ' AND r.element_id = n.node_id ), '
-      || ' un as ( SELECT g FROM areas UNION ALL SELECT g FROM lines '
-      || '          UNION ALL SELECT g FROM points ) '
-      || 'SELECT ST_Multi(ST_Collect(g)) FROM un';
+         ' AND r.element_id = n.node_id ), '
+         ' un as ( SELECT g FROM areas UNION ALL SELECT g FROM lines '
+         '          UNION ALL SELECT g FROM points ) '
+         'SELECT ST_Multi(ST_Collect(g)) FROM un';
     EXECUTE sql INTO geom;
 
   ELSE -- }{
@@ -1354,8 +1362,8 @@ BEGIN
   FOR rec IN EXECUTE 'SELECT a.node_id as id1, b.node_id as id2 FROM '
     || quote_ident(toponame) || '.node a, '
     || quote_ident(toponame) || '.node b '
-    || 'WHERE a.node_id < b.node_id '
-    || ' AND ST_DWithin(a.geom, b.geom, 0)' -- NOTE: see #1625 and #1789
+       'WHERE a.node_id < b.node_id '
+       ' AND ST_DWithin(a.geom, b.geom, 0)' -- NOTE: see #1625 and #1789
   LOOP
     retrec.error = 'coincident nodes';
     retrec.id1 = rec.id1;
@@ -1365,16 +1373,16 @@ BEGIN
 
   -- Check for edge crossed nodes
   -- TODO: do this in the single edge loop
-  FOR rec IN EXECUTE 'SELECT n.node_id as id1, e.edge_id as id2 FROM '
+  FOR rec IN EXECUTE 'SELECT n.node_id as nid, e.edge_id as eid FROM '
     || quote_ident(toponame) || '.node n, '
     || quote_ident(toponame) || '.edge e '
-    || 'WHERE e.start_node != n.node_id '
-    || 'AND e.end_node != n.node_id '
-    || 'AND ST_Within(n.geom, e.geom)'
+       'WHERE e.start_node != n.node_id '
+       'AND e.end_node != n.node_id '
+       'AND ST_Within(n.geom, e.geom)'
   LOOP
     retrec.error = 'edge crosses node';
-    retrec.id1 = rec.id1;
-    retrec.id2 = rec.id2;
+    retrec.id1 = rec.eid; -- edge_id
+    retrec.id2 = rec.nid; -- node_id
     RETURN NEXT retrec;
   END LOOP;
 
@@ -1418,12 +1426,12 @@ BEGIN
 
   -- Check for edge crossing
   sql := 'SELECT e1.edge_id as id1, e2.edge_id as id2, '
-    || ' e1.geom as g1, e2.geom as g2, '
-    || 'ST_Relate(e1.geom, e2.geom) as im FROM '
+       ' e1.geom as g1, e2.geom as g2, '
+       'ST_Relate(e1.geom, e2.geom) as im FROM '
     || quote_ident(toponame) || '.edge e1, '
     || quote_ident(toponame) || '.edge e2 '
-    || 'WHERE e1.edge_id < e2.edge_id '
-    || ' AND e1.geom && e2.geom ';
+       'WHERE e1.edge_id < e2.edge_id '
+       ' AND e1.geom && e2.geom ';
   IF invalid_edges IS NOT NULL THEN
     sql := sql || ' AND NOT e1.edge_id = ANY ('
                || quote_literal(invalid_edges) || ')'
@@ -1433,9 +1441,9 @@ BEGIN
 
   FOR rec IN EXECUTE sql
   LOOP
+
     IF ST_RelateMatch(rec.im, 'FF1F**1*2') THEN
       CONTINUE; -- no interior intersection
-    END IF;
 
     --
     -- Closed lines have no boundary, so endpoint
@@ -1444,7 +1452,7 @@ BEGIN
     -- See also full explanation in topology.AddEdge
     --
 
-    IF ST_RelateMatch(rec.im, 'FF10F01F2') THEN
+    ELSIF ST_RelateMatch(rec.im, 'FF10F01F2') THEN
       -- first line (g1) is open, second (g2) is closed
       -- first boundary has puntual intersection with second interior
       --
@@ -1454,9 +1462,8 @@ BEGIN
       THEN
         CONTINUE;
       END IF;
-    END IF;
 
-    IF ST_RelateMatch(rec.im, 'F01FFF102') THEN
+    ELSIF ST_RelateMatch(rec.im, 'F01FFF102') THEN
       -- second line (g2) is open, first (g1) is closed
       -- second boundary has puntual intersection with first interior
       -- 
@@ -1466,9 +1473,8 @@ BEGIN
       THEN
         CONTINUE;
       END IF;
-    END IF;
 
-    IF ST_RelateMatch(rec.im, '0F1FFF1F2') THEN
+    ELSIF ST_RelateMatch(rec.im, '0F1FFF1F2') THEN
       -- both lines are closed (boundary intersects nothing)
       -- they have puntual intersection between interiors
       -- 
@@ -1480,6 +1486,7 @@ BEGIN
       THEN
         CONTINUE;
       END IF;
+
     END IF;
 
     retrec.error = 'edge crosses edge';
@@ -1493,8 +1500,8 @@ BEGIN
   FOR rec IN EXECUTE 'SELECT e.edge_id as id1, n.node_id as id2 FROM '
     || quote_ident(toponame) || '.edge e, '
     || quote_ident(toponame) || '.node n '
-    || 'WHERE e.start_node = n.node_id '
-    || 'AND NOT ST_Equals(ST_StartPoint(e.geom), n.geom)'
+       'WHERE e.start_node = n.node_id '
+       'AND NOT ST_Equals(ST_StartPoint(e.geom), n.geom)'
   LOOP
     retrec.error = 'edge start node geometry mis-match';
     retrec.id1 = rec.id1;
@@ -1507,8 +1514,8 @@ BEGIN
   FOR rec IN EXECUTE 'SELECT e.edge_id as id1, n.node_id as id2 FROM '
     || quote_ident(toponame) || '.edge e, '
     || quote_ident(toponame) || '.node n '
-    || 'WHERE e.end_node = n.node_id '
-    || 'AND NOT ST_Equals(ST_EndPoint(e.geom), n.geom)'
+       'WHERE e.end_node = n.node_id '
+       'AND NOT ST_Equals(ST_EndPoint(e.geom), n.geom)'
   LOOP
     retrec.error = 'edge end node geometry mis-match';
     retrec.id1 = rec.id1;
@@ -1535,7 +1542,7 @@ BEGIN
   -- for checking their consistency
 
   sql := 'CREATE TEMP TABLE face_check ON COMMIT DROP AS '
-    || 'SELECT face_id, topology.ST_GetFaceGeometry('
+       'SELECT face_id, topology.ST_GetFaceGeometry('
     || quote_literal(toponame) || ', face_id) as geom, mbr FROM '
     || quote_ident(toponame) || '.face WHERE face_id > 0';
   IF invalid_faces IS NOT NULL THEN
@@ -1546,16 +1553,16 @@ BEGIN
 
   -- Build a gist index on geom
   EXECUTE 'CREATE INDEX "face_check_gist" ON '
-    || 'face_check USING gist (geom);';
+       'face_check USING gist (geom);';
 
   -- Build a btree index on id
   EXECUTE 'CREATE INDEX "face_check_bt" ON ' 
-    || 'face_check (face_id);';
+       'face_check (face_id);';
 
   -- Scan the table looking for NULL geometries
   FOR rec IN EXECUTE
     'SELECT f1.face_id FROM '
-    || 'face_check f1 WHERE f1.geom IS NULL'
+       'face_check f1 WHERE f1.geom IS NULL OR ST_IsEmpty(f1.geom)'
   LOOP
     -- Face missing !
     retrec.error := 'face has no rings';
@@ -1569,12 +1576,12 @@ BEGIN
   -- TODO: also check for MBR consistency
   FOR rec IN EXECUTE
     'SELECT f1.geom, f1.face_id as id1, f2.face_id as id2, '
-    || ' ST_Relate(f1.geom, f2.geom) as im'
-    || ' FROM '
-    || 'face_check f1, '
-    || 'face_check f2 '
-    || 'WHERE f1.face_id < f2.face_id'
-    || ' AND f1.geom && f2.geom'
+       ' ST_Relate(f1.geom, f2.geom) as im'
+       ' FROM '
+       'face_check f1, '
+       'face_check f2 '
+       'WHERE f1.face_id < f2.face_id'
+       ' AND f1.geom && f2.geom'
   LOOP
 
     -- Face overlap
@@ -1608,7 +1615,7 @@ BEGIN
   FOR rec in EXECUTE
     'SELECT count(*) FROM ( getSRID(geom) FROM '
     || quote_ident(toponame) || '.edge '
-    || ' UNION '
+       ' UNION '
     'SELECT getSRID(geom) FROM '
     || quote_ident(toponame) || '.node )'
   LOOP
@@ -1666,9 +1673,9 @@ BEGIN
   -------------{ face CREATION
   EXECUTE 
   'CREATE TABLE ' || quote_ident(atopology) || '.face ('
-  || 'face_id SERIAL,'
-  || ' CONSTRAINT face_primary_key PRIMARY KEY(face_id)'
-  || ');';
+     'face_id SERIAL,'
+     ' CONSTRAINT face_primary_key PRIMARY KEY(face_id)'
+     ');';
 
   -- Add mbr column to the face table 
   EXECUTE
@@ -1683,19 +1690,19 @@ BEGIN
 
   EXECUTE 
   'CREATE TABLE ' || quote_ident(atopology) || '.node ('
-  || 'node_id SERIAL,'
+     'node_id SERIAL,'
   --|| 'geom GEOMETRY,'
-  || 'containing_face INTEGER,'
+     'containing_face INTEGER,'
 
-  || 'CONSTRAINT node_primary_key PRIMARY KEY(node_id),'
+     'CONSTRAINT node_primary_key PRIMARY KEY(node_id),'
 
   --|| 'CONSTRAINT node_geometry_type CHECK '
   --|| '( GeometryType(geom) = ''POINT'' ),'
 
-  || 'CONSTRAINT face_exists FOREIGN KEY(containing_face) '
-  || 'REFERENCES ' || quote_ident(atopology) || '.face(face_id)'
+     'CONSTRAINT face_exists FOREIGN KEY(containing_face) '
+     'REFERENCES ' || quote_ident(atopology) || '.face(face_id)'
 
-  || ');';
+     ');';
 
   -- Add geometry column to the node table 
   EXECUTE
@@ -1710,43 +1717,43 @@ BEGIN
   -- edge_data table
   EXECUTE 
   'CREATE TABLE ' || quote_ident(atopology) || '.edge_data ('
-  || 'edge_id SERIAL NOT NULL PRIMARY KEY,'
-  || 'start_node INTEGER NOT NULL,'
-  || 'end_node INTEGER NOT NULL,'
-  || 'next_left_edge INTEGER NOT NULL,'
-  || 'abs_next_left_edge INTEGER NOT NULL,'
-  || 'next_right_edge INTEGER NOT NULL,'
-  || 'abs_next_right_edge INTEGER NOT NULL,'
-  || 'left_face INTEGER NOT NULL,'
-  || 'right_face INTEGER NOT NULL,'
-  --|| 'geom GEOMETRY NOT NULL,'
-
-  --|| 'CONSTRAINT edge_geometry_type CHECK '
-  --|| '( GeometryType(geom) = ''LINESTRING'' ),'
-
-  || 'CONSTRAINT start_node_exists FOREIGN KEY(start_node)'
-  || ' REFERENCES ' || quote_ident(atopology) || '.node(node_id),'
-
-  || 'CONSTRAINT end_node_exists FOREIGN KEY(end_node) '
-  || ' REFERENCES ' || quote_ident(atopology) || '.node(node_id),'
-
-  || 'CONSTRAINT left_face_exists FOREIGN KEY(left_face) '
-  || 'REFERENCES ' || quote_ident(atopology) || '.face(face_id),'
-
-  || 'CONSTRAINT right_face_exists FOREIGN KEY(right_face) '
-  || 'REFERENCES ' || quote_ident(atopology) || '.face(face_id),'
-
-  || 'CONSTRAINT next_left_edge_exists FOREIGN KEY(abs_next_left_edge)'
-  || ' REFERENCES ' || quote_ident(atopology)
+     'edge_id SERIAL NOT NULL PRIMARY KEY,'
+     'start_node INTEGER NOT NULL,'
+     'end_node INTEGER NOT NULL,'
+     'next_left_edge INTEGER NOT NULL,'
+     'abs_next_left_edge INTEGER NOT NULL,'
+     'next_right_edge INTEGER NOT NULL,'
+     'abs_next_right_edge INTEGER NOT NULL,'
+     'left_face INTEGER NOT NULL,'
+     'right_face INTEGER NOT NULL,'
+  --   'geom GEOMETRY NOT NULL,'
+
+  --   'CONSTRAINT edge_geometry_type CHECK '
+  --   '( GeometryType(geom) = ''LINESTRING'' ),'
+
+     'CONSTRAINT start_node_exists FOREIGN KEY(start_node)'
+     ' REFERENCES ' || quote_ident(atopology) || '.node(node_id),'
+
+     'CONSTRAINT end_node_exists FOREIGN KEY(end_node) '
+     ' REFERENCES ' || quote_ident(atopology) || '.node(node_id),'
+
+     'CONSTRAINT left_face_exists FOREIGN KEY(left_face) '
+     'REFERENCES ' || quote_ident(atopology) || '.face(face_id),'
+
+     'CONSTRAINT right_face_exists FOREIGN KEY(right_face) '
+     'REFERENCES ' || quote_ident(atopology) || '.face(face_id),'
+
+     'CONSTRAINT next_left_edge_exists FOREIGN KEY(abs_next_left_edge)'
+     ' REFERENCES ' || quote_ident(atopology)
   || '.edge_data(edge_id)'
-  || ' DEFERRABLE INITIALLY DEFERRED,'
+     ' DEFERRABLE INITIALLY DEFERRED,'
 
-  || 'CONSTRAINT next_right_edge_exists '
-  || 'FOREIGN KEY(abs_next_right_edge)'
-  || ' REFERENCES ' || quote_ident(atopology)
+     'CONSTRAINT next_right_edge_exists '
+     'FOREIGN KEY(abs_next_right_edge)'
+     ' REFERENCES ' || quote_ident(atopology)
   || '.edge_data(edge_id) '
-  || ' DEFERRABLE INITIALLY DEFERRED'
-  || ');';
+     ' DEFERRABLE INITIALLY DEFERRED'
+     ');';
 
   -- Add geometry column to the edge_data table 
   EXECUTE
@@ -1758,50 +1765,50 @@ BEGIN
   -- edge standard view (select rule)
   EXECUTE 'CREATE VIEW ' || quote_ident(atopology)
     || '.edge AS SELECT '
-    || ' edge_id, start_node, end_node, next_left_edge, '
-    || ' next_right_edge, '
-    || ' left_face, right_face, geom FROM '
+       ' edge_id, start_node, end_node, next_left_edge, '
+       ' next_right_edge, '
+       ' left_face, right_face, geom FROM '
     || quote_ident(atopology) || '.edge_data';
 
   -- edge standard view description
   EXECUTE 'COMMENT ON VIEW ' || quote_ident(atopology)
     || '.edge IS '
-    || '''Contains edge topology primitives''';
+       '''Contains edge topology primitives''';
   EXECUTE 'COMMENT ON COLUMN ' || quote_ident(atopology)
     || '.edge.edge_id IS '
-    || '''Unique identifier of the edge''';
+       '''Unique identifier of the edge''';
   EXECUTE 'COMMENT ON COLUMN ' || quote_ident(atopology)
     || '.edge.start_node IS '
-    || '''Unique identifier of the node at the start of the edge''';
+       '''Unique identifier of the node at the start of the edge''';
   EXECUTE 'COMMENT ON COLUMN ' || quote_ident(atopology)
     || '.edge.end_node IS '
-    || '''Unique identifier of the node at the end of the edge''';
+       '''Unique identifier of the node at the end of the edge''';
   EXECUTE 'COMMENT ON COLUMN ' || quote_ident(atopology)
     || '.edge.next_left_edge IS '
-    || '''Unique identifier of the next edge of the face on the left (when looking in the direction from START_NODE to END_NODE), moving counterclockwise around the face boundary''';
+       '''Unique identifier of the next edge of the face on the left (when looking in the direction from START_NODE to END_NODE), moving counterclockwise around the face boundary''';
   EXECUTE 'COMMENT ON COLUMN ' || quote_ident(atopology)
     || '.edge.next_right_edge IS '
-    || '''Unique identifier of the next edge of the face on the right (when looking in the direction from START_NODE to END_NODE), moving counterclockwise around the face boundary''';
+       '''Unique identifier of the next edge of the face on the right (when looking in the direction from START_NODE to END_NODE), moving counterclockwise around the face boundary''';
   EXECUTE 'COMMENT ON COLUMN ' || quote_ident(atopology)
     || '.edge.left_face IS '
-    || '''Unique identifier of the face on the left side of the edge when looking in the direction from START_NODE to END_NODE''';
+       '''Unique identifier of the face on the left side of the edge when looking in the direction from START_NODE to END_NODE''';
   EXECUTE 'COMMENT ON COLUMN ' || quote_ident(atopology)
     || '.edge.right_face IS '
-    || '''Unique identifier of the face on the right side of the edge when looking in the direction from START_NODE to END_NODE''';
+       '''Unique identifier of the face on the right side of the edge when looking in the direction from START_NODE to END_NODE''';
   EXECUTE 'COMMENT ON COLUMN ' || quote_ident(atopology)
     || '.edge.geom IS '
-    || '''The geometry of the edge''';
+       '''The geometry of the edge''';
 
   -- edge standard view (insert rule)
   EXECUTE 'CREATE RULE edge_insert_rule AS ON INSERT '
-          || 'TO ' || quote_ident(atopology)
+             'TO ' || quote_ident(atopology)
     || '.edge DO INSTEAD '
-                || ' INSERT into ' || quote_ident(atopology)
+                   ' INSERT into ' || quote_ident(atopology)
     || '.edge_data '
-                || ' VALUES (NEW.edge_id, NEW.start_node, NEW.end_node, '
-    || ' NEW.next_left_edge, abs(NEW.next_left_edge), '
-    || ' NEW.next_right_edge, abs(NEW.next_right_edge), '
-    || ' NEW.left_face, NEW.right_face, NEW.geom);';
+                   ' VALUES (NEW.edge_id, NEW.start_node, NEW.end_node, '
+       ' NEW.next_left_edge, abs(NEW.next_left_edge), '
+       ' NEW.next_right_edge, abs(NEW.next_right_edge), '
+       ' NEW.left_face, NEW.right_face, NEW.geom);';
 
   --------------} END OF edge CREATION
 
@@ -1814,17 +1821,17 @@ BEGIN
   --
   EXECUTE 
   'CREATE TABLE ' || quote_ident(atopology) || '.relation ('
-  || ' topogeo_id integer NOT NULL, '
-  || ' layer_id integer NOT NULL, ' 
-  || ' element_id integer NOT NULL, '
-  || ' element_type integer NOT NULL, '
-  || ' UNIQUE(layer_id,topogeo_id,element_id,element_type));';
+     ' topogeo_id integer NOT NULL, '
+     ' layer_id integer NOT NULL, '
+     ' element_id integer NOT NULL, '
+     ' element_type integer NOT NULL, '
+     ' UNIQUE(layer_id,topogeo_id,element_id,element_type));';
 
   EXECUTE 
   'CREATE TRIGGER relation_integrity_checks '
-  ||'BEFORE UPDATE OR INSERT ON '
+     'BEFORE UPDATE OR INSERT ON '
   || quote_ident(atopology) || '.relation FOR EACH ROW '
-  || ' EXECUTE PROCEDURE topology.RelationTrigger('
+     ' EXECUTE PROCEDURE topology.RelationTrigger('
   ||topology_id||','||quote_literal(atopology)||')';
   --------------} END OF relation CREATION
 
@@ -1922,37 +1929,34 @@ DECLARE
   topoid integer;
   rec RECORD;
 BEGIN
-
   -- Get topology id
-        SELECT id FROM topology.topology into topoid
-                WHERE name = atopology;
-
-
-  IF topoid IS NOT NULL THEN
+  SELECT id INTO topoid
+    FROM topology.topology WHERE name = atopology;
 
-    RAISE NOTICE 'Dropping all layers from topology % (%)',
-      atopology, topoid;
-
-    -- Drop all layers in the topology
-    FOR rec IN EXECUTE 'SELECT * FROM topology.layer WHERE '
-      || ' topology_id = ' || topoid
-    LOOP
+  IF NOT FOUND THEN
+    RAISE EXCEPTION 'Topology % does not exist', quote_literal(atopology);
+  END IF;
 
-      EXECUTE 'SELECT topology.DropTopoGeometryColumn('
-        || quote_literal(rec.schema_name)
-        || ','
-        || quote_literal(rec.table_name)
-        || ','
-        || quote_literal(rec.feature_column)
-        || ')';
-    END LOOP;
+  RAISE NOTICE 'Dropping all layers from topology % (%)',
+    quote_literal(atopology), topoid;
 
-    -- Delete record from topology.topology
-    EXECUTE 'DELETE FROM topology.topology WHERE id = '
-      || topoid;
+  -- Drop all layers in the topology
+  FOR rec IN EXECUTE 'SELECT * FROM topology.layer WHERE '
+    || ' topology_id = ' || topoid
+  LOOP
 
-  END IF;
+    EXECUTE 'SELECT topology.DropTopoGeometryColumn('
+      || quote_literal(rec.schema_name)
+      || ','
+      || quote_literal(rec.table_name)
+      || ','
+      || quote_literal(rec.feature_column)
+      || ')';
+  END LOOP;
 
+  -- Delete record from topology.topology
+  EXECUTE 'DELETE FROM topology.topology WHERE id = '
+    || topoid;
 
   -- Drop the schema (if it exists)
   FOR rec IN SELECT * FROM pg_namespace WHERE text(nspname) = atopology
diff --git a/topology/topology_drop_after.sql.in b/topology/topology_drop_after.sql.in
index 1d696af..8895218 100644
--- a/topology/topology_drop_after.sql.in
+++ b/topology/topology_drop_after.sql.in
@@ -1,6 +1,5 @@
--- $Id: topology_drop_after.sql.in 11180 2013-03-19 09:53:17Z strk $
 -- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
+-- http://postgis.net
 --
 -- Copyright (C) 2012 Regina Obe <lr at pcorp.us>
 -- This is free software; you can redistribute and/or modify it under
diff --git a/topology/topology_drop_before.sql.in b/topology/topology_drop_before.sql.in
index e907003..d5063b7 100644
--- a/topology/topology_drop_before.sql.in
+++ b/topology/topology_drop_before.sql.in
@@ -1,6 +1,5 @@
--- $Id: topology_drop_before.sql.in 12013 2013-10-09 06:45:26Z strk $
 -- PostGIS - Spatial Types for PostgreSQL
--- http://www.postgis.org
+-- http://postgis.net
 --
 -- Copyright (C) 2012 Regina Obe <lr at pcorp.us>
 -- This is free software; you can redistribute and/or modify it under
diff --git a/utils/Makefile.in b/utils/Makefile.in
index 86c736a..323e28d 100644
--- a/utils/Makefile.in
+++ b/utils/Makefile.in
@@ -1,5 +1,4 @@
 # **********************************************************************
-# * $Id$
 # *
 # * PostGIS - Spatial Types for PostgreSQL
 # * http://postgis.net
@@ -44,6 +43,32 @@ SRID_USER_MAXIMUM = @SRID_USR_MAX@
 all: postgis_restore.pl
 	chmod +x $(SCRIPTS)
 
+DROP_FILES = \
+  ../raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in \
+  ../raster/rt_pg/rtpostgis_drop.sql.in \
+  ../postgis/postgis_drop_after.sql \
+  ../postgis/postgis_drop_before.sql
+
+update-restore:
+	tac postgis_restore.pl.in | sed '/^__END__/q' | grep -v '^__END__' \
+    > postgis_restore_data
+	grep '^DROP FUNCTION IF EXISTS' $(DROP_FILES) | \
+    cut -d: -f2 | sed 's/^DROP FUNCTION IF EXISTS //' | \
+    sed 's/ *, */,/g' | \
+    sed 's/ *( */(/g' | \
+    sed 's/ *) */)/g' | \
+    tr '[A-Z]' '[a-z]' | \
+    sed 's/varchar/character varying/g' | \
+    sed 's/float8/double precision/g' | \
+    sed 's/\<int\>/integer/g' | \
+    sed 's/\<int4\>/integer/g' | \
+    sed 's/\<int8\>/bigint/g' | \
+    sed 's/\(.*\); *\(--.*\)\?/FUNCTION \1/' >> postgis_restore_data
+	cat postgis_restore.pl.in | sed '/^__END__/q' > postgis_restore.pl.in.new
+	cat postgis_restore_data | sort -u >> postgis_restore.pl.in.new
+	mv postgis_restore.pl.in.new postgis_restore.pl.in
+	rm -f postgis_restore_data
+
 postgis_restore.pl: postgis_restore.pl.in
 	sed 's, at SRID_MAXIMUM@,$(SRID_MAXIMUM),g;s, at SRID_USER_MAXIMUM@,$(SRID_USER_MAXIMUM),' $< >$@
 
diff --git a/utils/create_undef.pl b/utils/create_undef.pl
index 7ec6568..6ab7bd2 100755
--- a/utils/create_undef.pl
+++ b/utils/create_undef.pl
@@ -224,6 +224,8 @@ foreach my $fn (@funcs)
 	{
 		my $fn_nm = $1;
 		my $fn_arg = $2;
+		$fn_arg =~ s/\-\-.*\n//g;
+		$fn_arg =~ s/\n//g;
 
 		$fn_arg = strip_default($fn_arg);
 		if ( ! exists($type_funcs{$fn_nm}) )
diff --git a/utils/create_unpackaged.pl b/utils/create_unpackaged.pl
new file mode 100755
index 0000000..e321277
--- /dev/null
+++ b/utils/create_unpackaged.pl
@@ -0,0 +1,288 @@
+#!/usr/bin/perl
+
+#
+# PostGIS - Spatial Types for PostgreSQL
+# http://postgis.net
+#
+# Copyright (C) 2013 Sandro Santilli <strk at keybit.net>
+#
+# This is free software; you can redistribute and/or modify it under
+# the terms of the GNU General Public Licence. See the COPYING file.
+#
+
+use warnings;
+use strict;
+use POSIX 'strftime';
+
+eval "exec perl -w $0 $@"
+	if (0);
+
+
+die "Usage: perl $0 <extname> [<sql>]\n"
+  . "  Prints SQL to add objects created by given SQL\n"
+  . "  to extension with given name.\n"
+unless @ARGV;
+
+my $extname = shift(@ARGV);
+
+# drops are in the following order:
+#	1. Indexing system stuff
+#	2. Meta datatables <not done>
+#	3. Aggregates 
+#	3. Casts
+#	4. Operators 
+#	5. Functions
+#	6. Types
+#	7. Tables
+
+my @aggs = ();
+my @casts = ();
+my @funcs = ();
+my @types = ();
+my %type_funcs = ();
+my @ops = ();
+my @opcs = ();
+my @views = ();
+my @tables = ();
+my @schemas = ();
+
+sub strip_default {
+	my $line = shift;
+	# strip quotes first
+	$line =~ s/'[^']*'//ig;
+	# drop default then
+	$line =~ s/DEFAULT [^,)]*//ig;
+	return $line;
+}
+
+while( my $line = <>)
+{
+	if ($line =~ /^create (or replace )?function/i) {
+		my $defn = $line;
+		while( not $defn =~ /\)/ ) {
+			$defn .= <>;
+		}
+		push (@funcs, $defn)
+	}
+	elsif ($line =~ /^create or replace view\s*(\w+)/i) {
+		push (@views, $1);
+	}
+	elsif ($line =~ /^create table \s*([\w\.]+)/i) {
+		push (@tables, $1);
+	}
+	elsif ($line =~ /^create schema \s*([\w\.]+)/i) {
+		push (@schemas, $1);
+	}
+	elsif ( $line =~ /^create operator class (\w+)/i ) {
+		my $opcname = $1;
+		my $am = '';
+		while( not $line =~ /;\s*$/ ) {
+			if ( $line =~ /( USING (\w+))/ ) {
+				$am = $1;
+				last;
+			}
+			$line .= <>;
+		}
+		if ( $am eq '' ) {
+			die "Couldn't parse CREATE OPERATOR CLASS $opcname\n";
+		} else {
+			$opcname .= $am;
+		}
+		push (@opcs, $opcname)
+	}
+	elsif ($line =~ /^create operator.*\(/i) {
+		my $defn = $line;
+		while( not $defn =~ /;\s*$/ ) {
+			$defn .= <>;
+		}
+		push (@ops, $defn)
+	}
+	elsif ($line =~ /^create aggregate/i) {
+		my $defn = $line;
+		while( not $defn =~ /;\s*$/ ) {
+			$defn .= <>;
+		}
+		push (@aggs, $defn)
+	}
+	elsif ($line =~ /^create type ([\w\.]+)/i) {
+		push (@types, $1);
+		while( not $line =~ /;\s*$/ ) {
+			$line = <>;
+			if ( $line =~ /(input|output|send|receive|typmod_in|typmod_out|analyze)\s*=\s*(\w+)/ ) {
+        my $role = ${1};
+        my $fname = ${2};
+				$type_funcs{$fname} = $role;
+			}
+		}
+	}
+	elsif ($line =~ /^create domain ([\w\.]+)/i) {
+		push (@types, $1);
+	}
+	elsif ($line =~ /^create cast/i) {
+		push (@casts, $line)
+	}
+}
+
+#close( INPUT );
+
+my $addprefix = "ALTER EXTENSION $extname ADD";
+
+my $time = POSIX::strftime("%c", localtime);
+print "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --\n";
+print "-- \n";
+print "-- PostGIS - Spatial Types for PostgreSQL \n";
+print "-- http://postgis.net \n";
+print "-- \n";
+print "-- This is free software; you can redistribute and/or modify it under \n";
+print "-- the terms of the GNU General Public Licence. See the COPYING file. \n";
+print "-- \n";
+print "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --\n";
+print "-- \n";
+print "-- Generated on: " . $time . "\n";
+print "--           by: " . $0 . "\n";
+print "--          for: " . $extname . "\n";
+print "--         from: " . ( @ARGV ? $ARGV[0] : '-' ) . "\n";
+print "-- \n";
+print "-- Do not edit manually, your changes will be lost.\n";
+print "-- \n";
+print "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --\n";
+print "\n";
+
+print "-- complain if script is sourced in psql\n";
+print '\echo Use "CREATE EXTENSION ' . ${extname} .
+      '" to load this file. \quit';
+print "\n\n";
+
+print "-- Register all views.\n";
+foreach my $view (@views)
+{
+	print "$addprefix VIEW $view;\n";
+}
+
+print "-- Register all tables.\n";
+# we reverse table definitions so foreign key constraints
+# are more likely not to get in our way
+ at tables = reverse(@tables);
+foreach my $table (@tables)
+{
+	print "$addprefix TABLE $table;\n";
+}
+
+
+print "-- Register all aggregates.\n";
+foreach my $agg (@aggs)
+{
+	if ( $agg =~ /create aggregate\s*([\w\.]+)\s*\(\s*.*basetype = ([\w\.]+)/ism )
+	{
+		print "$addprefix AGGREGATE $1 ($2);\n";
+	}
+	elsif ( $agg =~ /create aggregate\s*([\w\.]+)\s*\(\s*([\w,\.\s\[\]]+)\s*\)/ism )
+	{
+		print "$addprefix AGGREGATE $1 ($2);\n";
+	}
+	else 
+	{
+		die "Couldn't parse AGGREGATE line: $agg\n";
+	}
+}
+
+print "-- Register all operators classes and families.\n";
+foreach my $opc (@opcs)
+{
+	print "$addprefix OPERATOR CLASS $opc;\n";
+	print "$addprefix OPERATOR FAMILY $opc;\n";
+}
+
+print "-- Register all operators.\n";
+foreach my $op (@ops)
+{
+	if ($op =~ /create operator ([^(]+)\s*\(.*LEFTARG\s*=\s*(\w+),\s*RIGHTARG\s*=\s*(\w+).*/ism )
+	{
+		print "$addprefix OPERATOR $1 ($2,$3);\n";
+	}
+	else
+	{
+		die "Couldn't parse OPERATOR line: $op\n";
+	}
+}
+
+	
+print "-- Register all casts.\n";
+foreach my $cast (@casts)
+{
+	if ($cast =~ /create cast\s*\((.+?)\)/i )
+	{
+		print "$addprefix CAST ($1);\n";
+	}
+	else
+	{
+		die "Couldn't parse CAST line: $cast\n";
+	}
+}
+
+print "-- Register all functions except " . (keys %type_funcs) . " needed for type definition.\n";
+my @type_funcs= (); # function to drop _after_ type drop
+foreach my $fn (@funcs)
+{
+	if ($fn =~ /.* function ([^(]+)\((.*)\)/is ) # can be multiline
+	{
+		my $fn_nm = $1;
+		my $fn_arg = $2;
+
+		$fn_arg = strip_default($fn_arg);
+		if ( ! exists($type_funcs{$fn_nm}) )
+		{
+			print "$addprefix FUNCTION $fn_nm ($fn_arg);\n";
+		} 
+		else
+		{
+			push(@type_funcs, $fn);
+		}
+	}
+	else
+	{
+		die "Couldn't parse FUNCTION line: $fn\n";
+	}
+}
+
+print "-- Add all functions needed for types definition (needed?).\n";
+foreach my $fn (@type_funcs)
+{
+	if ($fn =~ /.* function ([^(]+)\((.*)\)/i )
+	{
+		my $fn_nm = $1;
+		my $fn_arg = $2;
+
+		$fn_arg =~ s/DEFAULT [\w']+//ig;
+
+		print "$addprefix FUNCTION $fn_nm ($fn_arg);\n";
+	}
+	else
+	{
+		die "Couldn't parse line: $fn\n";
+	}
+}
+
+print "-- Register all types.\n";
+foreach my $type (@types)
+{
+	print "$addprefix TYPE $type;\n";
+}
+
+
+# NOTE:  cannot add schema "topology" to extension "postgis_topology"
+#        because the schema contains the extension
+#
+#print "-- Register all schemas.\n";
+#if (@schemas)
+#{
+#  foreach my $schema (@schemas)
+#  {
+#    print "$addprefix SCHEMA \"$schema\";\n";
+#  }
+#}
+
+
+print "\n";
+
+1;
diff --git a/utils/postgis_proc_upgrade.pl b/utils/postgis_proc_upgrade.pl
index 075345f..1dd3097 100755
--- a/utils/postgis_proc_upgrade.pl
+++ b/utils/postgis_proc_upgrade.pl
@@ -1,9 +1,10 @@
-#!/usr/bin/perl
+#!/usr/bin/perl -w
 
 #
 # PostGIS - Spatial Types for PostgreSQL
 # http://postgis.net
 #
+# Copyright (C) 2014 Sandro Santilli <strk at keybit.net>
 # Copyright (C) 2009-2010 Paul Ramsey <pramsey at opengeo.org>
 # Copyright (C) 2005 Refractions Research Inc.
 #
@@ -52,32 +53,10 @@ my $objs = {
 			"st_makeline(geometry)" => 1
 		}
 	},
- 	"104" => { 
-		"types" => {
-			"box3d_extent" => 1,
-			"pgis_abs" => 1
-		}
-	},
  	"105" => { 
-		"operators" => {
-			"geography >" => 1,
-			"geography >=" => 1,
-			"geography =" => 1,
-			"geography <=" => 1,
-			"geography <" => 1,
-			"geography &&" => 1 
-		},
-		"opclasses" => {
-			"gist_geography_ops" => 1,
-			"btree_geography_ops" => 1
-		},
 		"views" => {
 			"geography_columns" => 1
 		},
-		"types" => {
-			"geography" => 1,
-			"gidx" => 1
-		}
 	},
  	"200" => { 
 		"aggregates" => {
@@ -93,16 +72,52 @@ my $objs = {
 			"st_union(raster,integer)" => 1,
 			"st_union(raster)" => 1,
 			"st_union(raster,text)" => 1
-		},
-		"operators" => {
-			"raster =" => 1
-		},
-		"opclasses" => {
-			"hash_raster_ops" => 1
-		},
+		}
+	},
+ 	"202" => { 
+		"aggregates" => {
+			"st_summarystatsagg(raster,integer,boolean,double precision)" => 1,
+			"st_summarystatsagg(raster,boolean,double precision)" => 1,
+			"st_summarystatsagg(raster,integer)" => 1,
+			"st_countagg(raster,integer,boolean,double precision)" => 1,
+			"st_countagg(raster,integer,boolean)" => 1,
+			"st_countagg(raster,boolean)" => 1
+		}
 	}
 };
 
+sub find_last_updated
+{
+  my $type = shift;
+  my $sig = shift;
+  for my $ver ( sort { $b cmp $a } keys %$objs ) {
+    if ( $objs->{$ver}->{$type}->{$sig} ) {
+      return $ver;
+    }
+  }
+  return 0;
+}
+
+sub parse_last_updated
+{
+  my $comment = shift;
+  if ( $comment =~ m/.*(?:Availability|Changed|Updated):\s([^\.])\.([^.]*)/s ) {
+    return $1*100 + $2;
+  }
+  return 0;
+}
+
+sub parse_missing
+{
+  my $comment = shift;
+  my @missing = ();
+  if ( $comment =~ m/.*(?:Missing in):\s([^\.])\.([^.]*)/s ) {
+    push(@missing, $1*100 + $2);
+  }
+  return join(',', at missing);
+}
+
+
 #
 # Commandline argument handling
 #
@@ -112,6 +127,7 @@ die "Usage: perl postgis_proc_upgrade.pl <postgis.sql> <version_from> [<schema>]
 
 my $sql_file = $ARGV[0];
 my $module = 'postgis';
+my $soname = '';
 my $version_to = "";
 my $version_to_num = 0;
 my $version_from = $ARGV[1];
@@ -119,15 +135,6 @@ my $version_from_num = 0;
 my $schema = "";
 $schema = $ARGV[2] if @ARGV > 2;
 
-if ( $version_from =~ /^(\d+)\.(\d+)/ )
-{
-	$version_from_num = 100 * $1 + $2; 
-}
-else
-{
-	die "Version from number invalid, must be of form X.X\n";
-}
-
 die "Unable to open input SQL file $sql_file\n"
 	if ( ! -f $sql_file );
 
@@ -144,12 +151,16 @@ while(<INPUT>)
 	if (/INSTALL VERSION: (.*)/)
 	{
 				$version_to = $1;
-				last;
+				#last;
 	}
 	elsif (/TYPE raster/)
 	{
         $module = 'postgis_raster';
 	}
+	elsif (m@('\$libdir/[^']*')@)
+	{
+        $soname = $1;
+	}
 }
 close(INPUT); 
 
@@ -168,12 +179,14 @@ else
 
 print qq{
 --
--- UPGRADE SCRIPT FROM PostGIS $version_from TO PostGIS $version_to
+-- UPGRADE SCRIPT TO PostGIS $version_to
 --
 
 };
 
-print "BEGIN;\n";
+print "LOAD $soname;\n" if ($soname);
+
+#print "BEGIN;\n";
 print "SET search_path TO $schema;\n" if $schema;
 
 #
@@ -192,17 +205,21 @@ while(<DATA>)
 # applied to an existing, loaded database: types and operators
 # and operator classes that have already been defined.
 #
+my $comment = '';
 open( INPUT, $sql_file ) || die "Couldn't open file: $sql_file\n";
 while(<INPUT>)
 {
 
-	next if ( /^\-\-/ );
+	if ( /^\-\-/ ) {
+		$comment .= $_;
+		next;
+	}
 
 	#
 	# Allow through deprecations from postgis_drop.sql
 	#
-	print if ( /^drop function if exists/i );
-	print if ( /^drop aggregate if exists/i );
+	print if ( /^drop function /i );
+	print if ( /^drop aggregate /i );
 
 	if ( /^create or replace function/i )
 	{
@@ -225,16 +242,29 @@ while(<INPUT>)
 			$def .= $_;
 			last if /\)/;
 		}
-		my $ver = $version_from_num + 1;
-		while( $version_from_num < $version_to_num && $ver <= $version_to_num )
-		{
-			if( $objs->{$ver}->{"types"}->{$newtype} )
-			{
-				print $def;
-				last;
-			}
-			$ver++;
-		}
+
+    my $last_updated = parse_last_updated($comment);
+    if ( ! $last_updated ) {
+      print STDERR "WARNING: no last updated info for type '${newtype}'\n";
+      $last_updated = find_last_updated("types", $newtype);
+    }
+    my $missing = parse_missing($comment);
+    print "-- Type ${newtype} -- LastUpdated: ${last_updated}\n";
+      print <<"EOF";
+DO LANGUAGE 'plpgsql'
+\$postgis_proc_upgrade\$
+BEGIN
+  IF $last_updated > version_from_num
+EOF
+      print "OR version_from_num IN ( ${missing} )" if ( $missing );
+      print <<"EOF";
+     FROM _postgis_upgrade_info
+  THEN
+      EXECUTE \$postgis_proc_upgrade_parsed_def\$ $def \$postgis_proc_upgrade_parsed_def\$;
+  END IF;
+END
+\$postgis_proc_upgrade\$;
+EOF
 	}
 
 	if ( /^do *language .*\$\$/i )
@@ -282,17 +312,28 @@ while(<INPUT>)
 			last if /\);/;
 		}
 		my $aggsig = "$aggname($aggtype)";
-		my $ver = $version_from_num + 1;
-    #print "-- Checking ${aggsig} -- From: ${version_from_num} -- To: ${version_to_num}\n";
-		while( $version_from_num < $version_to_num && $ver <= $version_to_num )
-		{
-			if( $objs->{$ver}->{"aggregates"}->{$aggsig} )
-			{
-        print "DROP AGGREGATE IF EXISTS $aggsig;\n";
-        print $def;
-			}
-			$ver++;
-		}
+
+    #print "-- Checking comment $comment\n";
+    my $last_updated = parse_last_updated($comment);
+    if ( ! $last_updated ) {
+      print STDERR "WARNING: no last updated info for aggregate '${aggsig}'\n";
+      $last_updated = find_last_updated("aggregates", $aggsig);
+    }
+    print "-- Aggregate ${aggsig} -- LastUpdated: ${last_updated}\n";
+      print <<"EOF";
+DO LANGUAGE 'plpgsql'
+\$postgis_proc_upgrade\$
+BEGIN
+  IF $last_updated > version_from_num OR (
+      $last_updated = version_from_num AND version_from_isdev
+    ) FROM _postgis_upgrade_info
+  THEN
+    EXECUTE 'DROP AGGREGATE IF EXISTS $aggsig';
+    EXECUTE \$postgis_proc_upgrade_parsed_def\$ $def \$postgis_proc_upgrade_parsed_def\$;
+  END IF;
+END
+\$postgis_proc_upgrade\$;
+EOF
 	}
 	
 	# This code handles operators by creating them if we are doing a major upgrade
@@ -308,16 +349,23 @@ while(<INPUT>)
 			last if /\);/;
 		}
 		my $opsig = $optype . " " . $opname;
-		my $ver = $version_from_num + 1;
-		while( $version_from_num < $version_to_num && $ver <= $version_to_num )
-		{
-			if( $objs->{$ver}->{"operators"}->{$opsig} )
-			{
-				print $def;
-				last;
-			}
-			$ver++;
-		}
+
+    my $last_updated = parse_last_updated($comment);
+    if ( ! $last_updated ) {
+      print STDERR "WARNING: no last updated info for operator '${opsig}'\n";
+      $last_updated = find_last_updated("operators", $opsig);
+    }
+    print "-- Operator ${opsig} -- LastUpdated: ${last_updated}\n";
+      print <<"EOF";
+DO LANGUAGE 'plpgsql'
+\$postgis_proc_upgrade\$
+BEGIN
+  IF $last_updated > version_from_num FROM _postgis_upgrade_info THEN
+    EXECUTE \$postgis_proc_upgrade_parsed_def\$ $def \$postgis_proc_upgrade_parsed_def\$;
+  END IF;
+END
+\$postgis_proc_upgrade\$;
+EOF
 	}
 
 	# Always output create ore replace view (see ticket #1097)
@@ -349,31 +397,93 @@ while(<INPUT>)
 		my $opctype = 'unknown';
 		my $opcidx = 'unknown';
 		my $def = $_;
+		my $last_updated;
+		my $subcomment = '';
+		my @subobjects; # minversion, definition
 		while(<INPUT>)
 		{
+			if ( /^\s*\-\-/ ) {
+				$subcomment .= $_;
+				next;
+			}
+
 			$def .= $_;
 			$opctype = $1 if ( /for type (\w+) /i );
 			$opcidx = $1 if ( /using (\w+) /i );
+
+			# Support adding members at later versions
+			if ( /\s+(OPERATOR|FUNCTION)\s+[0-9]+\s+ / )
+			{
+				my $last_updated = parse_last_updated($subcomment);
+				if ( $last_updated )
+				{
+					my $subdefn = $_;
+					chop $subdefn;
+					$subdefn =~ s/[,;]$//; # strip ending comma or semicolon
+					# argument types must be specified in ALTER OPERATOR FAMILY
+					if ( $subdefn =~ m/\s+(OPERATOR.*)(FOR.*)/ )
+					{
+						$subdefn = $1.'('.$opctype.','.$opctype.') '.$2;
+					}
+					elsif ( $subdefn =~ m/\s+(FUNCTION\s+[0-9]+ )(.*)/ )
+					{
+						$subdefn = $1.'('.$opctype.','.$opctype.') '.$2;
+					}
+					push @subobjects, [$last_updated, $subdefn];
+				}
+				$subcomment = '';
+			}
 			last if /\);/;
 		}
 		$opctype =~ tr/A-Z/a-z/;
 		$opcidx =~ tr/A-Z/a-z/;
-		my $ver = $version_from_num + 1;
-		while( $version_from_num < $version_to_num && $ver <= $version_to_num )
-		{
-			if( $objs->{$ver}->{"opclasses"}->{$opclassname} )
-			{
-				print $def;
-				last;
-			}
-			$ver++;
-		}
+
+    $last_updated = parse_last_updated($comment);
+    if ( ! $last_updated ) {
+      print STDERR "WARNING: no last updated info for operator class '${opclassname}'\n";
+      $last_updated = find_last_updated("opclasses", $opclassname);
+    }
+    print "-- Operator class ${opclassname} -- LastUpdated: ${last_updated}\n";
+    print <<"EOF";
+DO LANGUAGE 'plpgsql'
+\$postgis_proc_upgrade\$
+BEGIN
+  IF $last_updated > version_from_num FROM _postgis_upgrade_info THEN
+    EXECUTE \$postgis_proc_upgrade_parsed_def\$
+    $def    \$postgis_proc_upgrade_parsed_def\$;
+EOF
+    my $ELSE="ELSE -- version_from >= $last_updated";
+    for my $subobj ( @subobjects )
+    {
+      $last_updated = @{$subobj}[0];
+      $def = @{$subobj}[1];
+      print <<"EOF";
+  $ELSE
+    -- Last Updated: ${last_updated}
+    IF $last_updated > version_from_num FROM _postgis_upgrade_info THEN
+      EXECUTE \$postgis_proc_upgrade_parsed_def\$
+        ALTER OPERATOR FAMILY ${opclassname} USING ${opcidx}
+          ADD $def;
+      \$postgis_proc_upgrade_parsed_def\$;
+    END IF;
+EOF
+      $ELSE="";
+    }
+    print <<"EOF";
+  END IF; -- version_from >= $last_updated
+END
+\$postgis_proc_upgrade\$;
+EOF
 	}
+
+	$comment = '';
 }
 
 close( INPUT );
 
-print "COMMIT;\n";
+print "DROP TABLE _postgis_upgrade_info;\n";
+
+#print "COMMIT;\n";
 
 1;
 
@@ -390,24 +500,22 @@ DECLARE
 BEGIN
 	--
 	-- This uses postgis_lib_version() rather then
-	-- postgis_scripts_installed() as in 1.0 because
+	-- MODULE_scripts_installed() as in 1.0 because
 	-- in the 1.0 => 1.1 transition that would result
 	-- in an impossible upgrade:
 	--
 	--   from 0.3.0 to 1.1.0
 	--
 	-- Next releases will still be ok as
-	-- postgis_lib_version() and postgis_scripts_installed()
+	-- postgis_lib_version() and MODULE_scripts_installed()
 	-- would both return actual PostGIS release number.
 	-- 
-
 	BEGIN
 		SELECT into old_scripts MODULE_lib_version();
 	EXCEPTION WHEN OTHERS THEN
 		RAISE DEBUG ''Got %'', SQLERRM;
 		SELECT into old_scripts MODULE_scripts_installed();
 	END;
-
 	SELECT into new_scripts ''NEWVERSION'';
 	SELECT into old_maj substring(old_scripts from 1 for 2);
 	SELECT into new_maj substring(new_scripts from 1 for 2);
@@ -424,3 +532,21 @@ LANGUAGE 'plpgsql';
 SELECT postgis_major_version_check();
 
 DROP FUNCTION postgis_major_version_check();
+
+CREATE TEMPORARY TABLE _postgis_upgrade_info AS WITH versions AS (
+  SELECT 'NEWVERSION'::text as upgraded,
+  MODULE_scripts_installed() as installed
+) SELECT
+  upgraded as scripts_upgraded,
+  installed as scripts_installed,
+  substring(upgraded from '([0-9]*)\.')::int * 100 +
+  substring(upgraded from '[0-9]*\.([0-9]*)\.')::int
+    as version_to_num,
+  substring(installed from '([0-9]*)\.')::int * 100 +
+  substring(installed from '[0-9]*\.([0-9]*)\.')::int
+    as version_from_num,
+  position('dev' in  installed)::bool
+    as version_from_isdev
+  FROM versions
+;
+ 
diff --git a/utils/postgis_restore.pl.in b/utils/postgis_restore.pl.in
old mode 100755
new mode 100644
index 2cd1e70..4ad401b
--- a/utils/postgis_restore.pl.in
+++ b/utils/postgis_restore.pl.in
@@ -54,7 +54,7 @@ my $DEBUG = 0;
 my $POSTGIS_SCHEMA;
 
 # NOTE: the SRID limits here are being discussed:
-# http://postgis.refractions.net/pipermail/postgis-devel/2012-February/018463.html
+# http://lists.osgeo.org/pipermail/postgis-devel/2012-February/018440.html
 my $SRID_MAXIMUM = @SRID_MAXIMUM@;
 my $SRID_USER_MAXIMUM = @SRID_USER_MAXIMUM@; 
 
@@ -486,14 +486,14 @@ AGGREGATE st_polygonize(geometry)
 AGGREGATE st_union(geometry)
 AGGREGATE st_union_old(geometry)
 AGGREGATE st_union(raster)
-AGGREGATE st_union(raster, integer)
-AGGREGATE st_union(raster, integer, text)
-AGGREGATE st_union(raster, text)
-AGGREGATE st_union(raster, text, text)
-AGGREGATE st_union(raster, text, text, text)
-AGGREGATE st_union(raster, text, text, text, double precision)
-AGGREGATE st_union(raster, text, text, text, double precision, text, text, text, double precision)
-AGGREGATE st_union(raster, text, text, text, double precision, text, text, text, double precision, text, text, text, double precision)
+AGGREGATE st_union(raster,integer)
+AGGREGATE st_union(raster,integer,text)
+AGGREGATE st_union(raster,text)
+AGGREGATE st_union(raster,text,text)
+AGGREGATE st_union(raster,text,text,text)
+AGGREGATE st_union(raster,text,text,text,double precision)
+AGGREGATE st_union(raster,text,text,text,double precision,text,text,text,double precision)
+AGGREGATE st_union(raster,text,text,text,double precision,text,text,text,double precision,text,text,text,double precision)
 AGGREGATE topoelementarray_agg(topoelement)
 CAST CAST (boolean AS text)
 CAST CAST (bytea AS public.geography)
@@ -537,96 +537,96 @@ COMMENT AGGREGATE st_memunion(geometry)
 COMMENT AGGREGATE st_polygonize(geometry)
 COMMENT AGGREGATE st_union(geometry)
 COMMENT AGGREGATE st_union(raster)
-COMMENT AGGREGATE st_union(raster, integer)
-COMMENT AGGREGATE st_union(raster, integer, text)
-COMMENT AGGREGATE st_union(raster, text)
+COMMENT AGGREGATE st_union(raster,integer)
+COMMENT AGGREGATE st_union(raster,integer,text)
+COMMENT AGGREGATE st_union(raster,text)
 COMMENT AGGREGATE topoelementarray_agg(topoelement)
 COMMENT DOMAIN topoelement
 COMMENT DOMAIN topoelementarray
 COMMENT FUNCTION addauth(text)
-COMMENT FUNCTION addedge(atopology character varying, aline public.geometry)
-COMMENT FUNCTION addedge(character varying, public.geometry)
-COMMENT FUNCTION addface(atopology character varying, apoly public.geometry, force_new boolean)
-COMMENT FUNCTION addgeometrycolumn(catalog_namecharacter varying, schema_namecharacter varying, table_namecharacter varying, column_namecharacter varying, new_srid_ininteger, new_typecharacter varying, new_diminteger, use_typmodboolean)
-COMMENT FUNCTION addgeometrycolumn(character varying, character varying, character varying, character varying, integer, character varying, integer)
-COMMENT FUNCTION addgeometrycolumn(character varying, character varying, character varying, integer, character varying, integer)
-COMMENT FUNCTION addgeometrycolumn(character varying, character varying, integer, character varying, integer)
-COMMENT FUNCTION addgeometrycolumn(schema_name character varying, table_name character varying, column_name character varying, new_srid integer, new_type character varying, new_dim integer, use_typmod boolean)
-COMMENT FUNCTION addgeometrycolumn(table_name character varying, column_name character varying, new_srid integer, new_type character varying, new_dim integer, use_typmod boolean)
-COMMENT FUNCTION addnode(atopology character varying, apoint public.geometry, allowedgesplitting boolean, setcontainingface boolean)
-COMMENT FUNCTION addnode(character varying, public.geometry)
-COMMENT FUNCTION addrasterconstraints(rastschema name, rasttable name, rastcolumn name, srid boolean, scale_x boolean, scale_y boolean, blocksize_x boolean, blocksize_y boolean, same_alignment boolean, regular_blocking boolean, num_bands boolean, pixel_types boolean, nodata_values boolean, extent boolean)
-COMMENT FUNCTION addrasterconstraints(rastschema name, rasttable name, rastcolumn name, VARIADIC constraints text[])
-COMMENT FUNCTION addrasterconstraints(rasttable name, rastcolumn name, srid boolean, scale_x boolean, scale_y boolean, blocksize_x boolean, blocksize_y boolean, same_alignment boolean, regular_blocking boolean, num_bands boolean, pixel_types boolean, nodata_values boolean, extent boolean)
-COMMENT FUNCTION addrasterconstraints(rasttable name, rastcolumn name, VARIADIC constraints text[])
-COMMENT FUNCTION addtopogeometrycolumn(character varying, character varying, character varying, character varying, character varying)
-COMMENT FUNCTION addtopogeometrycolumn(character varying, character varying, character varying, character varying, character varying, integer)
-COMMENT FUNCTION addtopogeometrycolumn(toponame character varying, schema character varying, tbl character varying, col character varying, ltype character varying, child integer)
+COMMENT FUNCTION addedge(atopology character varying,aline public.geometry)
+COMMENT FUNCTION addedge(character varying,public.geometry)
+COMMENT FUNCTION addface(atopology character varying,apoly public.geometry,force_new boolean)
+COMMENT FUNCTION addgeometrycolumn(catalog_namecharacter varying,schema_namecharacter varying,table_namecharacter varying,column_namecharacter varying,new_srid_ininteger,new_typecharacter varying,new_diminteger,use_typmodboolean)
+COMMENT FUNCTION addgeometrycolumn(character varying,character varying,character varying,character varying,integer,character varying,integer)
+COMMENT FUNCTION addgeometrycolumn(character varying,character varying,character varying,integer,character varying,integer)
+COMMENT FUNCTION addgeometrycolumn(character varying,character varying,integer,character varying,integer)
+COMMENT FUNCTION addgeometrycolumn(schema_name character varying,table_name character varying,column_name character varying,new_srid integer,new_type character varying,new_dim integer,use_typmod boolean)
+COMMENT FUNCTION addgeometrycolumn(table_name character varying,column_name character varying,new_srid integer,new_type character varying,new_dim integer,use_typmod boolean)
+COMMENT FUNCTION addnode(atopology character varying,apoint public.geometry,allowedgesplitting boolean,setcontainingface boolean)
+COMMENT FUNCTION addnode(character varying,public.geometry)
+COMMENT FUNCTION addrasterconstraints(rastschema name,rasttable name,rastcolumn name,srid boolean,scale_x boolean,scale_y boolean,blocksize_x boolean,blocksize_y boolean,same_alignment boolean,regular_blocking boolean,num_bands boolean,pixel_types boolean,nodata_values boolean,extent boolean)
+COMMENT FUNCTION addrasterconstraints(rastschema name,rasttable name,rastcolumn name,variadic constraints text[])
+COMMENT FUNCTION addrasterconstraints(rasttable name,rastcolumn name,srid boolean,scale_x boolean,scale_y boolean,blocksize_x boolean,blocksize_y boolean,same_alignment boolean,regular_blocking boolean,num_bands boolean,pixel_types boolean,nodata_values boolean,extent boolean)
+COMMENT FUNCTION addrasterconstraints(rasttable name,rastcolumn name,variadic constraints text[])
+COMMENT FUNCTION addtopogeometrycolumn(character varying,character varying,character varying,character varying,character varying)
+COMMENT FUNCTION addtopogeometrycolumn(character varying,character varying,character varying,character varying,character varying,integer)
+COMMENT FUNCTION addtopogeometrycolumn(toponame character varying,schema character varying,tbl character varying,col character varying,ltype character varying,child integer)
 COMMENT FUNCTION asgml(tgtopogeometry)
-COMMENT FUNCTION asgml(tgtopogeometry, nsprefix_in text, precision_in integer, options_in integer, visitedtable regclass, idprefix text, gmlver integer)
-COMMENT FUNCTION asgml(tgtopogeometry, nsprefix text)
-COMMENT FUNCTION asgml(tgtopogeometry, nsprefix text, prec integer, options integer, visitedtable regclass, idprefix text)
-COMMENT FUNCTION asgml(tgtopogeometry, nsprefix text, prec integer, options integer, vis regclass)
-COMMENT FUNCTION asgml(tgtopogeometry, nsprefix text, prec integer, opts integer)
-COMMENT FUNCTION asgml(tgtopogeometry, visitedtable regclass)
-COMMENT FUNCTION asgml(tgtopogeometry, visitedtable regclass, nsprefix text)
+COMMENT FUNCTION asgml(tgtopogeometry,nsprefix_in text,precision_in integer,options_in integer,visitedtable regclass,idprefix text,gmlver integer)
+COMMENT FUNCTION asgml(tgtopogeometry,nsprefix text)
+COMMENT FUNCTION asgml(tgtopogeometry,nsprefix text,prec integer,options integer,visitedtable regclass,idprefix text)
+COMMENT FUNCTION asgml(tgtopogeometry,nsprefix text,prec integer,options integer,vis regclass)
+COMMENT FUNCTION asgml(tgtopogeometry,nsprefix text,prec integer,opts integer)
+COMMENT FUNCTION asgml(tgtopogeometry,visitedtable regclass)
+COMMENT FUNCTION asgml(tgtopogeometry,visitedtable regclass,nsprefix text)
 COMMENT FUNCTION box2d(geometry)
 COMMENT FUNCTION box3d(geometry)
 COMMENT FUNCTION box3d(raster)
-COMMENT FUNCTION checkauth(text, text)
-COMMENT FUNCTION checkauth(text, text, text)
-COMMENT FUNCTION copytopology(atopologycharacter varying, newtopocharacter varying)
-COMMENT FUNCTION createtopogeom(character varying, integer, integer, topoelementarray)
-COMMENT FUNCTION createtopogeom(toponame character varying, tg_type integer, layer_id integer)
-COMMENT FUNCTION createtopogeom(toponame character varying, tg_type integer, layer_id integer, tg_objs topoelementarray)
-COMMENT FUNCTION createtopology(atopology character varying, srid integer, prec double precision, hasz boolean)
+COMMENT FUNCTION checkauth(text,text)
+COMMENT FUNCTION checkauth(text,text,text)
+COMMENT FUNCTION copytopology(atopologycharacter varying,newtopocharacter varying)
+COMMENT FUNCTION createtopogeom(character varying,integer,integer,topoelementarray)
+COMMENT FUNCTION createtopogeom(toponame character varying,tg_type integer,layer_id integer)
+COMMENT FUNCTION createtopogeom(toponame character varying,tg_type integer,layer_id integer,tg_objs topoelementarray)
+COMMENT FUNCTION createtopology(atopology character varying,srid integer,prec double precision,hasz boolean)
 COMMENT FUNCTION createtopology(character varying)
-COMMENT FUNCTION createtopology(character varying, integer)
-COMMENT FUNCTION createtopology(toponame character varying, sridinteger, precdouble precision)
+COMMENT FUNCTION createtopology(character varying,integer)
+COMMENT FUNCTION createtopology(toponame character varying,sridinteger,precdouble precision)
 COMMENT FUNCTION disablelongtransactions()
-COMMENT FUNCTION dropgeometrycolumn(catalog_namecharacter varying, schema_namecharacter varying, table_namecharacter varying, column_namecharacter varying)
-COMMENT FUNCTION dropgeometrycolumn(character varying, character varying)
-COMMENT FUNCTION dropgeometrycolumn(character varying, character varying, character varying)
-COMMENT FUNCTION dropgeometrycolumn(character varying, character varying, character varying, character varying)
-COMMENT FUNCTION dropgeometrycolumn(schema_namecharacter varying, table_namecharacter varying, column_namecharacter varying)
-COMMENT FUNCTION dropgeometrycolumn(table_namecharacter varying, column_namecharacter varying)
-COMMENT FUNCTION dropgeometrytable(catalog_namecharacter varying, schema_namecharacter varying, table_namecharacter varying)
+COMMENT FUNCTION dropgeometrycolumn(catalog_namecharacter varying,schema_namecharacter varying,table_namecharacter varying,column_namecharacter varying)
+COMMENT FUNCTION dropgeometrycolumn(character varying,character varying)
+COMMENT FUNCTION dropgeometrycolumn(character varying,character varying,character varying)
+COMMENT FUNCTION dropgeometrycolumn(character varying,character varying,character varying,character varying)
+COMMENT FUNCTION dropgeometrycolumn(schema_namecharacter varying,table_namecharacter varying,column_namecharacter varying)
+COMMENT FUNCTION dropgeometrycolumn(table_namecharacter varying,column_namecharacter varying)
+COMMENT FUNCTION dropgeometrytable(catalog_namecharacter varying,schema_namecharacter varying,table_namecharacter varying)
 COMMENT FUNCTION dropgeometrytable(character varying)
-COMMENT FUNCTION dropgeometrytable(character varying, character varying)
-COMMENT FUNCTION dropgeometrytable(character varying, character varying, character varying)
-COMMENT FUNCTION dropgeometrytable(schema_namecharacter varying, table_namecharacter varying)
+COMMENT FUNCTION dropgeometrytable(character varying,character varying)
+COMMENT FUNCTION dropgeometrytable(character varying,character varying,character varying)
+COMMENT FUNCTION dropgeometrytable(schema_namecharacter varying,table_namecharacter varying)
 COMMENT FUNCTION dropgeometrytable(table_namecharacter varying)
-COMMENT FUNCTION droprasterconstraints(rastschema name, rasttable name, rastcolumn name, VARIADIC constraints text[])
-COMMENT FUNCTION droprasterconstraints(rasttablename, rastcolumnname, sridboolean, scale_xboolean, scale_yboolean, blocksize_xboolean, blocksize_yboolean, same_alignmentboolean, regular_blockingboolean, num_bandsboolean, pixel_typesboolean, nodata_valuesboolean, extentboolean)
-COMMENT FUNCTION droptopogeometrycolumn(character varying, character varying, character varying)
-COMMENT FUNCTION droptopogeometrycolumn(schema character varying, tbl character varying, col character varying)
+COMMENT FUNCTION droprasterconstraints(rastschema name,rasttable name,rastcolumn name,variadic constraints text[])
+COMMENT FUNCTION droprasterconstraints(rasttablename,rastcolumnname,sridboolean,scale_xboolean,scale_yboolean,blocksize_xboolean,blocksize_yboolean,same_alignmentboolean,regular_blockingboolean,num_bandsboolean,pixel_typesboolean,nodata_valuesboolean,extentboolean)
+COMMENT FUNCTION droptopogeometrycolumn(character varying,character varying,character varying)
+COMMENT FUNCTION droptopogeometrycolumn(schema character varying,tbl character varying,col character varying)
 COMMENT FUNCTION droptopology(atopology character varying)
 COMMENT FUNCTION droptopology(character varying)
 COMMENT FUNCTION enablelongtransactions()
-COMMENT FUNCTION find_srid(character varying, character varying, character varying)
+COMMENT FUNCTION find_srid(character varying,character varying,character varying)
 COMMENT FUNCTION geometrytype(geometry)
-COMMENT FUNCTION getedgebypoint(atopologycharacter varying, apointpublic.geometry, tol1double precision)
-COMMENT FUNCTION getfacebypoint(atopologycharacter varying, apointpublic.geometry, tol1double precision)
-COMMENT FUNCTION getnodebypoint(atopologycharacter varying, apointpublic.geometry, tol1double precision)
-COMMENT FUNCTION gettopogeomelementarray(character varying, integer, integer)
+COMMENT FUNCTION getedgebypoint(atopologycharacter varying,apointpublic.geometry,tol1double precision)
+COMMENT FUNCTION getfacebypoint(atopologycharacter varying,apointpublic.geometry,tol1double precision)
+COMMENT FUNCTION getnodebypoint(atopologycharacter varying,apointpublic.geometry,tol1double precision)
+COMMENT FUNCTION gettopogeomelementarray(character varying,integer,integer)
 COMMENT FUNCTION gettopogeomelementarray(tg topogeometry)
 COMMENT FUNCTION gettopogeomelementarray(topogeometry)
-COMMENT FUNCTION gettopogeomelementarray(toponame character varying, layer_id integer, tgid integer)
-COMMENT FUNCTION gettopogeomelements(character varying, integer, integer)
+COMMENT FUNCTION gettopogeomelementarray(toponame character varying,layer_id integer,tgid integer)
+COMMENT FUNCTION gettopogeomelements(character varying,integer,integer)
 COMMENT FUNCTION gettopogeomelements(tg topogeometry)
 COMMENT FUNCTION gettopogeomelements(topogeometry)
-COMMENT FUNCTION gettopogeomelements(toponame character varying, layerid integer, tgid integer)
+COMMENT FUNCTION gettopogeomelements(toponame character varying,layerid integer,tgid integer)
 COMMENT FUNCTION gettopologyid(character varying)
 COMMENT FUNCTION gettopologyid(toponame character varying)
 COMMENT FUNCTION gettopologyname(integer)
 COMMENT FUNCTION gettopologyname(topoid integer)
-COMMENT FUNCTION lockrow(text, text, text)
-COMMENT FUNCTION lockrow(text, text, text, text, timestampwithouttimezone)
-COMMENT FUNCTION lockrow(text, text, text, timestampwithouttimezone)
+COMMENT FUNCTION lockrow(text,text,text)
+COMMENT FUNCTION lockrow(text,text,text,text,timestampwithouttimezone)
+COMMENT FUNCTION lockrow(text,text,text,timestampwithouttimezone)
 COMMENT FUNCTION polygonize(toponame character varying)
 COMMENT FUNCTION populate_geometry_columns()
 COMMENT FUNCTION populate_geometry_columns(tbl_oidoid)
-COMMENT FUNCTION populate_geometry_columns(tbl_oidoid, use_typmodboolean)
+COMMENT FUNCTION populate_geometry_columns(tbl_oidoid,use_typmodboolean)
 COMMENT FUNCTION populate_geometry_columns(use_typmodboolean)
 COMMENT FUNCTION postgis_addbbox(geometry)
 COMMENT FUNCTION postgis_dropbbox(geometry)
@@ -645,240 +645,242 @@ COMMENT FUNCTION postgis_scripts_released()
 COMMENT FUNCTION postgis_uses_stats()
 COMMENT FUNCTION postgis_version()
 COMMENT FUNCTION probe_geometry_columns()
-COMMENT FUNCTION st_3dclosestpoint(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_3dclosestpoint(geometry, geometry)
-COMMENT FUNCTION st_3ddfullywithin(geom1 geometry, geom2 geometry, double precision)
-COMMENT FUNCTION st_3ddfullywithin(geometry, geometry, double precision)
-COMMENT FUNCTION st_3ddistance(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_3ddistance(geometry, geometry)
-COMMENT FUNCTION st_3ddwithin(geom1 geometry, geom2 geometry, double precision)
-COMMENT FUNCTION st_3ddwithin(geometry, geometry, double precision)
-COMMENT FUNCTION st_3dintersects(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_3dintersects(geometry, geometry)
+COMMENT FUNCTION st_3dclosestpoint(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_3dclosestpoint(geometry,geometry)
+COMMENT FUNCTION st_3ddfullywithin(geom1 geometry,geom2 geometry,double precision)
+COMMENT FUNCTION st_3ddfullywithin(geometry,geometry,double precision)
+COMMENT FUNCTION st_3ddistance(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_3ddistance(geometry,geometry)
+COMMENT FUNCTION st_3ddwithin(geom1 geometry,geom2 geometry,double precision)
+COMMENT FUNCTION st_3ddwithin(geometry,geometry,double precision)
+COMMENT FUNCTION st_3dintersects(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_3dintersects(geometry,geometry)
 COMMENT FUNCTION st_3dlength(geometry)
-COMMENT FUNCTION st_3dlength_spheroid(geometry, spheroid)
-COMMENT FUNCTION st_3dlongestline(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_3dlongestline(geometry, geometry)
-COMMENT FUNCTION st_3dmakebox(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_3dmakebox(geometry, geometry)
-COMMENT FUNCTION st_3dmaxdistance(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_3dmaxdistance(geometry, geometry)
+COMMENT FUNCTION st_3dlength_spheroid(geometry,spheroid)
+COMMENT FUNCTION st_3dlongestline(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_3dlongestline(geometry,geometry)
+COMMENT FUNCTION st_3dmakebox(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_3dmakebox(geometry,geometry)
+COMMENT FUNCTION st_3dmaxdistance(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_3dmaxdistance(geometry,geometry)
 COMMENT FUNCTION st_3dperimeter(geometry)
-COMMENT FUNCTION st_3dshortestline(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_3dshortestline(geometry, geometry)
-COMMENT FUNCTION st_addband(rast raster, indexinteger, pixeltypetext, initialvaluedouble precision, nodatavaldouble precision)
-COMMENT FUNCTION st_addband(rast raster, pixeltypetext, initialvaluedouble precision, nodatavaldouble precision)
-COMMENT FUNCTION st_addband(torast raster, fromrast raster, frombandinteger, torastindexinteger)
-COMMENT FUNCTION st_addband(torast raster, fromrastsraster[], frombandinteger)
+COMMENT FUNCTION st_3dshortestline(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_3dshortestline(geometry,geometry)
+COMMENT FUNCTION st_addband(rast raster,indexinteger,pixeltypetext,initialvaluedouble precision,nodatavaldouble precision)
+COMMENT FUNCTION st_addband(rast raster,pixeltypetext,initialvaluedouble precision,nodatavaldouble precision)
+COMMENT FUNCTION st_addband(torast raster,fromrast raster,frombandinteger,torastindexinteger)
+COMMENT FUNCTION st_addband(torast raster,fromrastsraster[],frombandinteger)
 COMMENT FUNCTION st_addbbox(geometry)
-COMMENT FUNCTION st_addedgemodface(atopologycharacter varying, anodeinteger, anothernodeinteger, acurvepublic.geometry)
-COMMENT FUNCTION st_addedgenewfaces(atopologycharacter varying, anodeinteger, anothernodeinteger, acurvepublic.geometry)
-COMMENT FUNCTION st_addisoedge(atopologycharacter varying, anodeinteger, anothernodeinteger, acurvepublic.geometry)
-COMMENT FUNCTION st_addisonode(atopology character varying, aface integer, apoint public.geometry)
-COMMENT FUNCTION st_addisonode(character varying, integer, public.geometry)
-COMMENT FUNCTION st_addmeasure(geometry, double precision, double precision)
-COMMENT FUNCTION st_addpoint(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_addpoint(geom1 geometry, geom2 geometry, integer)
-COMMENT FUNCTION st_addpoint(geometry, geometry)
-COMMENT FUNCTION st_addpoint(geometry, geometry, integer)
-COMMENT FUNCTION st_affine(geometry, double precision, double precision, double precision, double precision, double precision, double precision)
-COMMENT FUNCTION st_affine(geometry, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision)
-COMMENT FUNCTION st_area(geoggeography, use_spheroidboolean)
+COMMENT FUNCTION st_addedgemodface(atopologycharacter varying,anodeinteger,anothernodeinteger,acurvepublic.geometry)
+COMMENT FUNCTION st_addedgenewfaces(atopologycharacter varying,anodeinteger,anothernodeinteger,acurvepublic.geometry)
+COMMENT FUNCTION st_addisoedge(atopologycharacter varying,anodeinteger,anothernodeinteger,acurvepublic.geometry)
+COMMENT FUNCTION st_addisonode(atopology character varying,aface integer,apoint public.geometry)
+COMMENT FUNCTION st_addisonode(character varying,integer,public.geometry)
+COMMENT FUNCTION st_addmeasure(geometry,double precision,double precision)
+COMMENT FUNCTION st_addpoint(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_addpoint(geom1 geometry,geom2 geometry,integer)
+COMMENT FUNCTION st_addpoint(geometry,geometry)
+COMMENT FUNCTION st_addpoint(geometry,geometry,integer)
+COMMENT FUNCTION st_affine(geometry,double precision,double precision,double precision,double precision,double precision,double precision)
+COMMENT FUNCTION st_affine(geometry,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision)
+COMMENT FUNCTION st_area(geoggeography,use_spheroidboolean)
 COMMENT FUNCTION st_area(geography)
-COMMENT FUNCTION st_area(geography, boolean)
+COMMENT FUNCTION st_area(geography,boolean)
 COMMENT FUNCTION st_area(geometry)
 COMMENT FUNCTION st_asbinary(geography)
-COMMENT FUNCTION st_asbinary(geography, text)
+COMMENT FUNCTION st_asbinary(geography,text)
 COMMENT FUNCTION st_asbinary(geometry)
-COMMENT FUNCTION st_asbinary(geometry, text)
+COMMENT FUNCTION st_asbinary(geometry,text)
 COMMENT FUNCTION st_asbinary(raster)
+COMMENT FUNCTION st_asencodedpolyline(geometry)
+COMMENT FUNCTION st_asencodedpolyline(geometry,integer)
 COMMENT FUNCTION st_asewkb(geometry)
-COMMENT FUNCTION st_asewkb(geometry, text)
+COMMENT FUNCTION st_asewkb(geometry,text)
 COMMENT FUNCTION st_asewkt(geometry)
-COMMENT FUNCTION st_asgdalraster(rast raster, formattext, optionstext[], sridinteger)
-COMMENT FUNCTION st_asgeojson(geog geography, maxdecimaldigits integer, options integer)
+COMMENT FUNCTION st_asgdalraster(rast raster,formattext,optionstext[],sridinteger)
+COMMENT FUNCTION st_asgeojson(geog geography,maxdecimaldigits integer,options integer)
 COMMENT FUNCTION st_asgeojson(geography)
-COMMENT FUNCTION st_asgeojson(geography, integer)
-COMMENT FUNCTION st_asgeojson(geography, integer, integer)
+COMMENT FUNCTION st_asgeojson(geography,integer)
+COMMENT FUNCTION st_asgeojson(geography,integer,integer)
 COMMENT FUNCTION st_asgeojson(geometry)
-COMMENT FUNCTION st_asgeojson(geometry, integer)
-COMMENT FUNCTION st_asgeojson(geometry, integer, integer)
-COMMENT FUNCTION st_asgeojson(geom geometry, maxdecimaldigits integer, options integer)
-COMMENT FUNCTION st_asgeojson(gj_version integer, geog geography, maxdecimaldigits integer, options integer)
-COMMENT FUNCTION st_asgeojson(gj_version integer, geom geometry, maxdecimaldigits integer, options integer)
-COMMENT FUNCTION st_asgeojson(integer, geography)
-COMMENT FUNCTION st_asgeojson(integer, geography, integer)
-COMMENT FUNCTION st_asgeojson(integer, geography, integer, integer)
-COMMENT FUNCTION st_asgeojson(integer, geometry)
-COMMENT FUNCTION st_asgeojson(integer, geometry, integer)
-COMMENT FUNCTION st_asgeojson(integer, geometry, integer, integer)
-COMMENT FUNCTION st_asgml(geog geography, maxdecimaldigits integer, options integer)
+COMMENT FUNCTION st_asgeojson(geometry,integer)
+COMMENT FUNCTION st_asgeojson(geometry,integer,integer)
+COMMENT FUNCTION st_asgeojson(geom geometry,maxdecimaldigits integer,options integer)
+COMMENT FUNCTION st_asgeojson(gj_version integer,geog geography,maxdecimaldigits integer,options integer)
+COMMENT FUNCTION st_asgeojson(gj_version integer,geom geometry,maxdecimaldigits integer,options integer)
+COMMENT FUNCTION st_asgeojson(integer,geography)
+COMMENT FUNCTION st_asgeojson(integer,geography,integer)
+COMMENT FUNCTION st_asgeojson(integer,geography,integer,integer)
+COMMENT FUNCTION st_asgeojson(integer,geometry)
+COMMENT FUNCTION st_asgeojson(integer,geometry,integer)
+COMMENT FUNCTION st_asgeojson(integer,geometry,integer,integer)
+COMMENT FUNCTION st_asgml(geog geography,maxdecimaldigits integer,options integer)
 COMMENT FUNCTION st_asgml(geography)
-COMMENT FUNCTION st_asgml(geography, integer)
-COMMENT FUNCTION st_asgml(geography, integer, integer)
+COMMENT FUNCTION st_asgml(geography,integer)
+COMMENT FUNCTION st_asgml(geography,integer,integer)
 COMMENT FUNCTION st_asgml(geometry)
-COMMENT FUNCTION st_asgml(geometry, integer)
-COMMENT FUNCTION st_asgml(geometry, integer, integer)
-COMMENT FUNCTION st_asgml(geom geometry, maxdecimaldigits integer, options integer)
-COMMENT FUNCTION st_asgml(integer, geography)
-COMMENT FUNCTION st_asgml(integer, geography, integer)
-COMMENT FUNCTION st_asgml(integer, geography, integer, integer)
-COMMENT FUNCTION st_asgml(integer, geography, integer, integer, text)
-COMMENT FUNCTION st_asgml(integer, geometry)
-COMMENT FUNCTION st_asgml(integer, geometry, integer)
-COMMENT FUNCTION st_asgml(integer, geometry, integer, integer)
-COMMENT FUNCTION st_asgml(integer, geometry, integer, integer, text)
-COMMENT FUNCTION st_asgml(version integer, geog geography, maxdecimaldigits integer, options integer, nprefix text)
-COMMENT FUNCTION st_asgml(version integer, geom geometry, maxdecimaldigits integer, options integer, nprefix text)
+COMMENT FUNCTION st_asgml(geometry,integer)
+COMMENT FUNCTION st_asgml(geometry,integer,integer)
+COMMENT FUNCTION st_asgml(geom geometry,maxdecimaldigits integer,options integer)
+COMMENT FUNCTION st_asgml(integer,geography)
+COMMENT FUNCTION st_asgml(integer,geography,integer)
+COMMENT FUNCTION st_asgml(integer,geography,integer,integer)
+COMMENT FUNCTION st_asgml(integer,geography,integer,integer,text)
+COMMENT FUNCTION st_asgml(integer,geometry)
+COMMENT FUNCTION st_asgml(integer,geometry,integer)
+COMMENT FUNCTION st_asgml(integer,geometry,integer,integer)
+COMMENT FUNCTION st_asgml(integer,geometry,integer,integer,text)
+COMMENT FUNCTION st_asgml(version integer,geog geography,maxdecimaldigits integer,options integer,nprefix text)
+COMMENT FUNCTION st_asgml(version integer,geom geometry,maxdecimaldigits integer,options integer,nprefix text)
 COMMENT FUNCTION st_ashexewkb(geometry)
-COMMENT FUNCTION st_ashexewkb(geometry, text)
-COMMENT FUNCTION st_asjpeg(rast raster, nband integer, optionstext[])
-COMMENT FUNCTION st_asjpeg(rast raster, nband integer, qualityinteger)
-COMMENT FUNCTION st_asjpeg(rast raster, nbands integer[], optionstext[])
-COMMENT FUNCTION st_asjpeg(rast raster, nbands integer[], qualityinteger)
-COMMENT FUNCTION st_asjpeg(rast raster, optionstext[])
-COMMENT FUNCTION st_askml(geog geography, maxdecimaldigits integer)
+COMMENT FUNCTION st_ashexewkb(geometry,text)
+COMMENT FUNCTION st_asjpeg(rast raster,nband integer,optionstext[])
+COMMENT FUNCTION st_asjpeg(rast raster,nband integer,qualityinteger)
+COMMENT FUNCTION st_asjpeg(rast raster,nbands integer[],optionstext[])
+COMMENT FUNCTION st_asjpeg(rast raster,nbands integer[],qualityinteger)
+COMMENT FUNCTION st_asjpeg(rast raster,optionstext[])
+COMMENT FUNCTION st_askml(geog geography,maxdecimaldigits integer)
 COMMENT FUNCTION st_askml(geography)
-COMMENT FUNCTION st_askml(geography, integer)
+COMMENT FUNCTION st_askml(geography,integer)
 COMMENT FUNCTION st_askml(geometry)
-COMMENT FUNCTION st_askml(geometry, integer)
-COMMENT FUNCTION st_askml(geom geometry, maxdecimaldigits integer)
-COMMENT FUNCTION st_askml(integer, geography)
-COMMENT FUNCTION st_askml(integer, geography, integer)
-COMMENT FUNCTION st_askml(integer, geography, integer, text)
-COMMENT FUNCTION st_askml(integer, geometry)
-COMMENT FUNCTION st_askml(integer, geometry, integer)
-COMMENT FUNCTION st_askml(integer, geometry, integer, text)
-COMMENT FUNCTION st_askml(version integer, geog geography, maxdecimaldigits integer, nprefix text)
-COMMENT FUNCTION st_askml(version integer, geom geometry, maxdecimaldigits integer, nprefix text)
+COMMENT FUNCTION st_askml(geometry,integer)
+COMMENT FUNCTION st_askml(geom geometry,maxdecimaldigits integer)
+COMMENT FUNCTION st_askml(integer,geography)
+COMMENT FUNCTION st_askml(integer,geography,integer)
+COMMENT FUNCTION st_askml(integer,geography,integer,text)
+COMMENT FUNCTION st_askml(integer,geometry)
+COMMENT FUNCTION st_askml(integer,geometry,integer)
+COMMENT FUNCTION st_askml(integer,geometry,integer,text)
+COMMENT FUNCTION st_askml(version integer,geog geography,maxdecimaldigits integer,nprefix text)
+COMMENT FUNCTION st_askml(version integer,geom geometry,maxdecimaldigits integer,nprefix text)
 COMMENT FUNCTION st_aslatlontext(geometry)
-COMMENT FUNCTION st_aslatlontext(geometry, text)
-COMMENT FUNCTION st_aspng(rast raster, nband integer, compressioninteger)
-COMMENT FUNCTION st_aspng(rast raster, nband integer, optionstext[])
-COMMENT FUNCTION st_aspng(rast raster, nbands integer[], compressioninteger)
-COMMENT FUNCTION st_aspng(rast raster, nbands integer[], optionstext[])
-COMMENT FUNCTION st_aspng(rast raster, optionstext[])
-COMMENT FUNCTION st_asraster(geomgeometry, refraster, pixeltypetext, valuedouble precision, nodatavaldouble precision, touchedboolean)
-COMMENT FUNCTION st_asraster(geomgeometry, refraster, pixeltypetext[], valuedouble precision[], nodatavaldouble precision[], touchedboolean)
-COMMENT FUNCTION st_asraster(geomgeometry, scalexdouble precision, scaleydouble precision, gridxdouble precision, gridydouble precision, pixeltypetext, valuedouble precision, nodatavaldouble precision, skewxdouble precision, skewydouble precision, touchedboolean)
-COMMENT FUNCTION st_asraster(geomgeometry, scalexdouble precision, scaleydouble precision, gridxdouble precision, gridydouble precision, pixeltypetext[], valuedouble precision[], nodatavaldouble precision[], skewxdouble precision, skewydouble precision, touchedboolean)
-COMMENT FUNCTION st_asraster(geomgeometry, scalexdouble precision, scaleydouble precision, pixeltypetext, valuedouble precision, nodatavaldouble precision, upperleftxdouble precision, upperleftydouble precision, skewxdouble precision, skewydouble precision, touchedboolean)
-COMMENT FUNCTION st_asraster(geomgeometry, widthinteger, heightinteger, gridxdouble precision, gridydouble precision, pixeltypetext, valuedouble precision, nodatavaldouble precision, skewxdouble precision, skewydouble precision, touchedboolean)
-COMMENT FUNCTION st_asraster(geomgeometry, widthinteger, heightinteger, gridxdouble precision, gridydouble precision, pixeltypetext[], valuedouble precision[], nodatavaldouble precision[], skewxdouble precision, skewydouble precision, touchedboolean)
-COMMENT FUNCTION st_asraster(geomgeometry, widthinteger, heightinteger, pixeltypetext, valuedouble precision, nodatavaldouble precision, upperleftxdouble precision, upperleftydouble precision, skewxdouble precision, skewydouble precision, touchedboolean)
-COMMENT FUNCTION st_asraster(geomgeometry, widthinteger, heightinteger, pixeltypetext[], valuedouble precision[], nodatavaldouble precision[], upperleftxdouble precision, upperleftydouble precision, skewxdouble precision, skewydouble precision, touchedboolean)
-COMMENT FUNCTION st_assvg(geog geography, rel integer, maxdecimaldigits integer)
+COMMENT FUNCTION st_aslatlontext(geometry,text)
+COMMENT FUNCTION st_aspng(rast raster,nband integer,compressioninteger)
+COMMENT FUNCTION st_aspng(rast raster,nband integer,optionstext[])
+COMMENT FUNCTION st_aspng(rast raster,nbands integer[],compressioninteger)
+COMMENT FUNCTION st_aspng(rast raster,nbands integer[],optionstext[])
+COMMENT FUNCTION st_aspng(rast raster,optionstext[])
+COMMENT FUNCTION st_asraster(geomgeometry,refraster,pixeltypetext,valuedouble precision,nodatavaldouble precision,touchedboolean)
+COMMENT FUNCTION st_asraster(geomgeometry,refraster,pixeltypetext[],valuedouble precision[],nodatavaldouble precision[],touchedboolean)
+COMMENT FUNCTION st_asraster(geomgeometry,scalexdouble precision,scaleydouble precision,gridxdouble precision,gridydouble precision,pixeltypetext,valuedouble precision,nodatavaldouble precision,skewxdouble precision,skewydouble precision,touchedboolean)
+COMMENT FUNCTION st_asraster(geomgeometry,scalexdouble precision,scaleydouble precision,gridxdouble precision,gridydouble precision,pixeltypetext[],valuedouble precision[],nodatavaldouble precision[],skewxdouble precision,skewydouble precision,touchedboolean)
+COMMENT FUNCTION st_asraster(geomgeometry,scalexdouble precision,scaleydouble precision,pixeltypetext,valuedouble precision,nodatavaldouble precision,upperleftxdouble precision,upperleftydouble precision,skewxdouble precision,skewydouble precision,touchedboolean)
+COMMENT FUNCTION st_asraster(geomgeometry,widthinteger,heightinteger,gridxdouble precision,gridydouble precision,pixeltypetext,valuedouble precision,nodatavaldouble precision,skewxdouble precision,skewydouble precision,touchedboolean)
+COMMENT FUNCTION st_asraster(geomgeometry,widthinteger,heightinteger,gridxdouble precision,gridydouble precision,pixeltypetext[],valuedouble precision[],nodatavaldouble precision[],skewxdouble precision,skewydouble precision,touchedboolean)
+COMMENT FUNCTION st_asraster(geomgeometry,widthinteger,heightinteger,pixeltypetext,valuedouble precision,nodatavaldouble precision,upperleftxdouble precision,upperleftydouble precision,skewxdouble precision,skewydouble precision,touchedboolean)
+COMMENT FUNCTION st_asraster(geomgeometry,widthinteger,heightinteger,pixeltypetext[],valuedouble precision[],nodatavaldouble precision[],upperleftxdouble precision,upperleftydouble precision,skewxdouble precision,skewydouble precision,touchedboolean)
+COMMENT FUNCTION st_assvg(geog geography,rel integer,maxdecimaldigits integer)
 COMMENT FUNCTION st_assvg(geography)
-COMMENT FUNCTION st_assvg(geography, integer)
-COMMENT FUNCTION st_assvg(geography, integer, integer)
+COMMENT FUNCTION st_assvg(geography,integer)
+COMMENT FUNCTION st_assvg(geography,integer,integer)
 COMMENT FUNCTION st_assvg(geometry)
-COMMENT FUNCTION st_assvg(geometry, integer)
-COMMENT FUNCTION st_assvg(geometry, integer, integer)
-COMMENT FUNCTION st_assvg(geom geometry, rel integer, maxdecimaldigits integer)
+COMMENT FUNCTION st_assvg(geometry,integer)
+COMMENT FUNCTION st_assvg(geometry,integer,integer)
+COMMENT FUNCTION st_assvg(geom geometry,rel integer,maxdecimaldigits integer)
 COMMENT FUNCTION st_astext(geography)
 COMMENT FUNCTION st_astext(geometry)
-COMMENT FUNCTION st_astiff(rast raster, compressiontext, sridinteger)
-COMMENT FUNCTION st_astiff(rast raster, nbands integer[], compressiontext, sridinteger)
-COMMENT FUNCTION st_astiff(rast raster, nbands integer[], optionstext[], sridinteger)
-COMMENT FUNCTION st_astiff(rast raster, optionstext[], sridinteger)
-COMMENT FUNCTION st_asx3d(geom geometry, maxdecimaldigits integer, options integer)
-COMMENT FUNCTION st_asx3d(geomgeometry, precinteger)
-COMMENT FUNCTION st_azimuth(geog1 geography, geog2 geography)
-COMMENT FUNCTION st_azimuth(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_azimuth(geometry, geometry)
-COMMENT FUNCTION st_bandisnodata(rast raster, bandinteger, forcecheckingboolean)
-COMMENT FUNCTION st_bandisnodata(rast raster, forcechecking boolean)
-COMMENT FUNCTION st_bandmetadata(rast raster, bandinteger, OUT pixeltype text, OUT hasnodata boolean, OUT nodatavalue double precision, OUT isoutdb boolean, OUT path text)
-COMMENT FUNCTION st_bandnodatavalue(rast raster, bandinteger)
-COMMENT FUNCTION st_bandpath(rast raster, bandinteger)
-COMMENT FUNCTION st_bandpixeltype(rast raster, bandinteger)
-COMMENT FUNCTION st_band(rast raster, nband integer)
-COMMENT FUNCTION st_band(rast raster, nbands integer[])
-COMMENT FUNCTION st_band(rast raster, nbandstext, delimitercharacter)
-COMMENT FUNCTION st_bdmpolyfromtext(text, integer)
-COMMENT FUNCTION st_bdpolyfromtext(text, integer)
+COMMENT FUNCTION st_astiff(rast raster,compressiontext,sridinteger)
+COMMENT FUNCTION st_astiff(rast raster,nbands integer[],compressiontext,sridinteger)
+COMMENT FUNCTION st_astiff(rast raster,nbands integer[],optionstext[],sridinteger)
+COMMENT FUNCTION st_astiff(rast raster,optionstext[],sridinteger)
+COMMENT FUNCTION st_asx3d(geom geometry,maxdecimaldigits integer,options integer)
+COMMENT FUNCTION st_asx3d(geomgeometry,precinteger)
+COMMENT FUNCTION st_azimuth(geog1 geography,geog2 geography)
+COMMENT FUNCTION st_azimuth(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_azimuth(geometry,geometry)
+COMMENT FUNCTION st_bandisnodata(rast raster,bandinteger,forcecheckingboolean)
+COMMENT FUNCTION st_bandisnodata(rast raster,forcechecking boolean)
+COMMENT FUNCTION st_bandmetadata(rast raster,bandinteger,OUT pixeltype text,OUT hasnodata boolean,OUT nodatavalue double precision,OUT isoutdb boolean,OUT path text)
+COMMENT FUNCTION st_bandnodatavalue(rast raster,bandinteger)
+COMMENT FUNCTION st_bandpath(rast raster,bandinteger)
+COMMENT FUNCTION st_bandpixeltype(rast raster,bandinteger)
+COMMENT FUNCTION st_band(rast raster,nband integer)
+COMMENT FUNCTION st_band(rast raster,nbands integer[])
+COMMENT FUNCTION st_band(rast raster,nbandstext,delimitercharacter)
+COMMENT FUNCTION st_bdmpolyfromtext(text,integer)
+COMMENT FUNCTION st_bdpolyfromtext(text,integer)
 COMMENT FUNCTION st_boundary(geometry)
-COMMENT FUNCTION st_box2d(geometry)
 COMMENT FUNCTION st_box2dfromgeohash(text)
-COMMENT FUNCTION st_box2dfromgeohash(text, integer)
+COMMENT FUNCTION st_box2dfromgeohash(text,integer)
+COMMENT FUNCTION st_box2d(geometry)
 COMMENT FUNCTION st_box3d(geometry)
-COMMENT FUNCTION st_buffer(geography, double precision)
-COMMENT FUNCTION st_buffer(geometry, double precision)
-COMMENT FUNCTION st_buffer(geometry, double precision, integer)
-COMMENT FUNCTION st_buffer(geometry, double precision, text)
+COMMENT FUNCTION st_buffer(geography,double precision)
+COMMENT FUNCTION st_buffer(geometry,double precision)
+COMMENT FUNCTION st_buffer(geometry,double precision,integer)
+COMMENT FUNCTION st_buffer(geometry,double precision,text)
 COMMENT FUNCTION st_buildarea(geometry)
 COMMENT FUNCTION st_centroid(geometry)
-COMMENT FUNCTION st_changeedgegeom(atopologycharacter varying, anedgeinteger, acurvepublic.geometry)
-COMMENT FUNCTION st_clip(rast raster, band integer, geom geometry, crop boolean)
-COMMENT FUNCTION st_clip(rast raster, band integer, geom geometry, nodata double precision, trimraster boolean)
-COMMENT FUNCTION st_clip(rast raster, band integer, geom geometry, trimraster boolean)
-COMMENT FUNCTION st_clip(rast raster, geom geometry, crop boolean)
-COMMENT FUNCTION st_clip(rast raster, geom geometry, nodata double precision, trimraster boolean)
-COMMENT FUNCTION st_clip(rast raster, geom geometry, trimraster boolean)
-COMMENT FUNCTION st_closestpoint(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_closestpoint(geometry, geometry)
-COMMENT FUNCTION st_collect(geom1 geometry, geom2 geometry)
+COMMENT FUNCTION st_changeedgegeom(atopologycharacter varying,anedgeinteger,acurvepublic.geometry)
+COMMENT FUNCTION st_clip(rast raster,band integer,geom geometry,crop boolean)
+COMMENT FUNCTION st_clip(rast raster,band integer,geom geometry,nodata double precision,trimraster boolean)
+COMMENT FUNCTION st_clip(rast raster,band integer,geom geometry,trimraster boolean)
+COMMENT FUNCTION st_clip(rast raster,geom geometry,crop boolean)
+COMMENT FUNCTION st_clip(rast raster,geom geometry,nodata double precision,trimraster boolean)
+COMMENT FUNCTION st_clip(rast raster,geom geometry,trimraster boolean)
+COMMENT FUNCTION st_closestpoint(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_closestpoint(geometry,geometry)
+COMMENT FUNCTION st_collect(geom1 geometry,geom2 geometry)
 COMMENT FUNCTION st_collect(geometry[])
-COMMENT FUNCTION st_collect(geometry, geometry)
-COMMENT FUNCTION st_collectionextract(geometry, integer)
-COMMENT FUNCTION st_concavehull(param_geomgeometry, param_pctconvexdouble precision, param_allow_holesboolean)
-COMMENT FUNCTION st_contains(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_contains(geometry, geometry)
-COMMENT FUNCTION st_containsproperly(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_containsproperly(geometry, geometry)
+COMMENT FUNCTION st_collect(geometry,geometry)
+COMMENT FUNCTION st_collectionextract(geometry,integer)
+COMMENT FUNCTION st_concavehull(param_geomgeometry,param_pctconvexdouble precision,param_allow_holesboolean)
+COMMENT FUNCTION st_contains(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_contains(geometry,geometry)
+COMMENT FUNCTION st_containsproperly(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_containsproperly(geometry,geometry)
 COMMENT FUNCTION st_convexhull(geometry)
 COMMENT FUNCTION st_convexhull(raster)
 COMMENT FUNCTION st_coorddim(geometry)
 COMMENT FUNCTION st_coorddim(geometry geometry)
-COMMENT FUNCTION st_count(rastertabletext, rastercolumntext, exclude_nodata_valueboolean)
-COMMENT FUNCTION st_count(rastertabletext, rastercolumntext, nband integer, exclude_nodata_valueboolean)
-COMMENT FUNCTION st_count(rast raster, exclude_nodata_valueboolean)
-COMMENT FUNCTION st_count(rast raster, nband integer, exclude_nodata_valueboolean)
-COMMENT FUNCTION st_coveredby(geography, geography)
-COMMENT FUNCTION st_coveredby(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_coveredby(geometry, geometry)
-COMMENT FUNCTION st_covers(geography, geography)
-COMMENT FUNCTION st_covers(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_covers(geometry, geometry)
-COMMENT FUNCTION st_createtopogeo(atopologycharacter varying, acollectionpublic.geometry)
-COMMENT FUNCTION st_crosses(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_crosses(geometry, geometry)
+COMMENT FUNCTION st_count(rastertabletext,rastercolumntext,exclude_nodata_valueboolean)
+COMMENT FUNCTION st_count(rastertabletext,rastercolumntext,nband integer,exclude_nodata_valueboolean)
+COMMENT FUNCTION st_count(rast raster,exclude_nodata_valueboolean)
+COMMENT FUNCTION st_count(rast raster,nband integer,exclude_nodata_valueboolean)
+COMMENT FUNCTION st_coveredby(geography,geography)
+COMMENT FUNCTION st_coveredby(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_coveredby(geometry,geometry)
+COMMENT FUNCTION st_covers(geography,geography)
+COMMENT FUNCTION st_covers(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_covers(geometry,geometry)
+COMMENT FUNCTION st_createtopogeo(atopologycharacter varying,acollectionpublic.geometry)
+COMMENT FUNCTION st_crosses(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_crosses(geometry,geometry)
 COMMENT FUNCTION st_curvetoline(geometry)
-COMMENT FUNCTION st_curvetoline(geometry, integer)
-COMMENT FUNCTION st_dfullywithin(geom1 geometry, geom2 geometry, double precision)
-COMMENT FUNCTION st_dfullywithin(geometry, geometry, double precision)
-COMMENT FUNCTION st_difference(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_difference(geometry, geometry)
+COMMENT FUNCTION st_curvetoline(geometry,integer)
+COMMENT FUNCTION st_dfullywithin(geom1 geometry,geom2 geometry,double precision)
+COMMENT FUNCTION st_dfullywithin(geometry,geometry,double precision)
+COMMENT FUNCTION st_difference(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_difference(geometry,geometry)
 COMMENT FUNCTION st_dimension(geometry)
-COMMENT FUNCTION st_disjoint(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_disjoint(geometry, geometry)
-COMMENT FUNCTION st_distance(geography, geography)
-COMMENT FUNCTION st_distance(geography, geography, boolean)
-COMMENT FUNCTION st_distance(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_distance(geometry, geometry)
-COMMENT FUNCTION st_distance_sphere(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_distance_sphere(geometry, geometry)
-COMMENT FUNCTION st_distance_spheroid(geom1 geometry, geom2 geometry, spheroid)
-COMMENT FUNCTION st_distance_spheroid(geometry, geometry, spheroid)
+COMMENT FUNCTION st_disjoint(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_disjoint(geometry,geometry)
+COMMENT FUNCTION st_distance(geography,geography)
+COMMENT FUNCTION st_distance(geography,geography,boolean)
+COMMENT FUNCTION st_distance(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_distance(geometry,geometry)
+COMMENT FUNCTION st_distance_sphere(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_distance_sphere(geometry,geometry)
+COMMENT FUNCTION st_distance_spheroid(geom1 geometry,geom2 geometry,spheroid)
+COMMENT FUNCTION st_distance_spheroid(geometry,geometry,spheroid)
 COMMENT FUNCTION st_dropbbox(geometry)
-COMMENT FUNCTION st_dumpaspolygons(rast raster, bandinteger)
+COMMENT FUNCTION st_dumpaspolygons(rast raster,bandinteger)
 COMMENT FUNCTION st_dump(geometry)
 COMMENT FUNCTION st_dumppoints(geometry)
 COMMENT FUNCTION st_dumprings(geometry)
-COMMENT FUNCTION st_dwithin(geography, geography, double precision)
-COMMENT FUNCTION st_dwithin(geography, geography, double precision, boolean)
-COMMENT FUNCTION st_dwithin(geom1 geometry, geom2 geometry, double precision)
-COMMENT FUNCTION st_dwithin(geometry, geometry, double precision)
+COMMENT FUNCTION st_dwithin(geography,geography,double precision)
+COMMENT FUNCTION st_dwithin(geography,geography,double precision,boolean)
+COMMENT FUNCTION st_dwithin(geom1 geometry,geom2 geometry,double precision)
+COMMENT FUNCTION st_dwithin(geometry,geometry,double precision)
 COMMENT FUNCTION st_endpoint(geometry)
 COMMENT FUNCTION st_envelope(geometry)
 COMMENT FUNCTION st_envelope(raster)
-COMMENT FUNCTION st_equals(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_equals(geometry, geometry)
-COMMENT FUNCTION st_estimated_extent(text, text)
-COMMENT FUNCTION st_estimated_extent(text, text, text)
-COMMENT FUNCTION st_expand(box2d, double precision)
-COMMENT FUNCTION st_expand(box3d, double precision)
-COMMENT FUNCTION st_expand(geometry, double precision)
+COMMENT FUNCTION st_equals(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_equals(geometry,geometry)
+COMMENT FUNCTION st_estimated_extent(text,text)
+COMMENT FUNCTION st_estimated_extent(text,text,text)
+COMMENT FUNCTION st_expand(box2d,double precision)
+COMMENT FUNCTION st_expand(box3d,double precision)
+COMMENT FUNCTION st_expand(geometry,double precision)
 COMMENT FUNCTION st_exteriorring(geometry)
 COMMENT FUNCTION st_flipcoordinates(geometry)
 COMMENT FUNCTION st_force_2d(geometry)
@@ -888,71 +890,71 @@ COMMENT FUNCTION st_force_3dz(geometry)
 COMMENT FUNCTION st_force_4d(geometry)
 COMMENT FUNCTION st_force_collection(geometry)
 COMMENT FUNCTION st_forcerhr(geometry)
-COMMENT FUNCTION st_gdaldrivers(OUTidxinteger, OUTshort_nametext, OUTlong_nametext, OUTcreate_optionstext)
+COMMENT FUNCTION st_gdaldrivers(OUTidxinteger,OUTshort_nametext,OUTlong_nametext,OUTcreate_optionstext)
 COMMENT FUNCTION st_geogfromtext(text)
 COMMENT FUNCTION st_geogfromwkb(bytea)
 COMMENT FUNCTION st_geographyfromtext(text)
 COMMENT FUNCTION st_geohash(geometry)
-COMMENT FUNCTION st_geohash(geometry, integer)
-COMMENT FUNCTION st_geohash(geom geometry, maxchars integer)
+COMMENT FUNCTION st_geohash(geometry,integer)
+COMMENT FUNCTION st_geohash(geom geometry,maxchars integer)
 COMMENT FUNCTION st_geomcollfromtext(text)
-COMMENT FUNCTION st_geomcollfromtext(text, integer)
+COMMENT FUNCTION st_geomcollfromtext(text,integer)
 COMMENT FUNCTION st_geometryfromtext(text)
-COMMENT FUNCTION st_geometryfromtext(text, integer)
-COMMENT FUNCTION st_geometryn(geometry, integer)
+COMMENT FUNCTION st_geometryfromtext(text,integer)
+COMMENT FUNCTION st_geometryn(geometry,integer)
 COMMENT FUNCTION st_geometrytype(geometry)
 COMMENT FUNCTION st_geomfromewkb(bytea)
 COMMENT FUNCTION st_geomfromewkt(text)
-COMMENT FUNCTION st_geomfromgeojson(text)
 COMMENT FUNCTION st_geomfromgeohash(text)
-COMMENT FUNCTION st_geomfromgeohash(text, integer)
+COMMENT FUNCTION st_geomfromgeohash(text,integer)
+COMMENT FUNCTION st_geomfromgeojson(text)
 COMMENT FUNCTION st_geomfromgml(text)
-COMMENT FUNCTION st_geomfromgml(text, integer)
+COMMENT FUNCTION st_geomfromgml(text,integer)
 COMMENT FUNCTION st_geomfromkml(text)
 COMMENT FUNCTION st_geomfromtext(text)
-COMMENT FUNCTION st_geomfromtext(text, integer)
+COMMENT FUNCTION st_geomfromtext(text,integer)
 COMMENT FUNCTION st_geomfromwkb(bytea)
-COMMENT FUNCTION st_geomfromwkb(bytea, integer)
-COMMENT FUNCTION st_georeference(rast raster, formattext)
-COMMENT FUNCTION st_getfaceedges(toponame character varying, face_idinteger)
-COMMENT FUNCTION st_getfacegeometry(toponame character varying, afaceinteger)
+COMMENT FUNCTION st_geomfromwkb(bytea,integer)
+COMMENT FUNCTION st_georeference(rast raster,formattext)
+COMMENT FUNCTION st_getfaceedges(toponame character varying,face_idinteger)
+COMMENT FUNCTION st_getfacegeometry(toponame character varying,afaceinteger)
 COMMENT FUNCTION st_gmltosql(text)
-COMMENT FUNCTION st_gmltosql(text, integer)
+COMMENT FUNCTION st_gmltosql(text,integer)
 COMMENT FUNCTION st_hasarc(geometry)
 COMMENT FUNCTION st_hasarc(geometry geometry)
 COMMENT FUNCTION st_hasbbox(geometry)
-COMMENT FUNCTION st_hasnoband(rast raster, nband integer)
-COMMENT FUNCTION st_hausdorffdistance(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_hausdorffdistance(geom1 geometry, geom2 geometry, double precision)
-COMMENT FUNCTION st_hausdorffdistance(geometry, geometry)
-COMMENT FUNCTION st_hausdorffdistance(geometry, geometry, double precision)
+COMMENT FUNCTION st_hasnoband(rast raster,nband integer)
+COMMENT FUNCTION st_hausdorffdistance(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_hausdorffdistance(geom1 geometry,geom2 geometry,double precision)
+COMMENT FUNCTION st_hausdorffdistance(geometry,geometry)
+COMMENT FUNCTION st_hausdorffdistance(geometry,geometry,double precision)
 COMMENT FUNCTION st_height(raster)
-COMMENT FUNCTION st_hillshade(rast raster, band integer, pixeltype text, azimuth double precision, altitude double precision, max_bright double precision, elevation_scale double precision)
-COMMENT FUNCTION st_histogram(rastertabletext, rastercolumntext, nband integer, binsinteger, "right"boolean)
-COMMENT FUNCTION st_histogram(rastertabletext, rastercolumntext, nband integer, binsinteger, widthdouble precision[], "right"boolean)
-COMMENT FUNCTION st_histogram(rastertabletext, rastercolumntext, nband integer, exclude_nodata_valueboolean, binsinteger, "right"boolean)
-COMMENT FUNCTION st_histogram(rastertabletext, rastercolumntext, nband integer, exclude_nodata_valueboolean, binsinteger, widthdouble precision[], "right"boolean)
-COMMENT FUNCTION st_histogram(rast raster, nband integer, binsinteger, "right"boolean)
-COMMENT FUNCTION st_histogram(rast raster, nband integer, binsinteger, widthdouble precision[], "right"boolean)
-COMMENT FUNCTION st_histogram(rast raster, nband integer, exclude_nodata_valueboolean, binsinteger, "right"boolean)
-COMMENT FUNCTION st_histogram(rast raster, nband integer, exclude_nodata_valueboolean, binsinteger, widthdouble precision[], "right"boolean)
+COMMENT FUNCTION st_hillshade(rast raster,band integer,pixeltype text,azimuth double precision,altitude double precision,max_bright double precision,elevation_scale double precision)
+COMMENT FUNCTION st_histogram(rastertabletext,rastercolumntext,nband integer,binsinteger,"right"boolean)
+COMMENT FUNCTION st_histogram(rastertabletext,rastercolumntext,nband integer,binsinteger,widthdouble precision[],"right"boolean)
+COMMENT FUNCTION st_histogram(rastertabletext,rastercolumntext,nband integer,exclude_nodata_valueboolean,binsinteger,"right"boolean)
+COMMENT FUNCTION st_histogram(rastertabletext,rastercolumntext,nband integer,exclude_nodata_valueboolean,binsinteger,widthdouble precision[],"right"boolean)
+COMMENT FUNCTION st_histogram(rast raster,nband integer,binsinteger,"right"boolean)
+COMMENT FUNCTION st_histogram(rast raster,nband integer,binsinteger,widthdouble precision[],"right"boolean)
+COMMENT FUNCTION st_histogram(rast raster,nband integer,exclude_nodata_valueboolean,binsinteger,"right"boolean)
+COMMENT FUNCTION st_histogram(rast raster,nband integer,exclude_nodata_valueboolean,binsinteger,widthdouble precision[],"right"boolean)
 COMMENT FUNCTION st_inittopogeo(atopologycharacter varying)
-COMMENT FUNCTION st_interiorringn(geometry, integer)
-COMMENT FUNCTION st_intersection(geography, geography)
-COMMENT FUNCTION st_intersection(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_intersection(geometry, geometry)
-COMMENT FUNCTION st_intersection(geomingeometry, rast raster, bandinteger)
-COMMENT FUNCTION st_intersection(rast1raster, band1integer, geomgeometry, extenttypetext, otheruserfuncregprocedure)
-COMMENT FUNCTION st_intersection(rast1raster, band1integer, geomgeometry, otheruserfuncregprocedure)
-COMMENT FUNCTION st_intersection(rast1raster, geomgeometry, extenttypetext, otheruserfuncregprocedure)
-COMMENT FUNCTION st_intersection(rast1raster, geomgeometry, otheruserfuncregprocedure)
-COMMENT FUNCTION st_intersects(geography, geography)
-COMMENT FUNCTION st_intersects(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_intersects(geometry, geometry)
-COMMENT FUNCTION st_intersects(geomgeometry, rast raster, nband integer)
-COMMENT FUNCTION st_intersects(rast1raster, nband1integer, rast2raster, nband2integer)
-COMMENT FUNCTION st_intersects(rast1raster, rast2raster)
-COMMENT FUNCTION st_intersects(rast raster, nband integer, geomgeometry)
+COMMENT FUNCTION st_interiorringn(geometry,integer)
+COMMENT FUNCTION st_intersection(geography,geography)
+COMMENT FUNCTION st_intersection(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_intersection(geometry,geometry)
+COMMENT FUNCTION st_intersection(geomingeometry,rast raster,bandinteger)
+COMMENT FUNCTION st_intersection(rast1raster,band1integer,geomgeometry,extenttypetext,otheruserfuncregprocedure)
+COMMENT FUNCTION st_intersection(rast1raster,band1integer,geomgeometry,otheruserfuncregprocedure)
+COMMENT FUNCTION st_intersection(rast1raster,geomgeometry,extenttypetext,otheruserfuncregprocedure)
+COMMENT FUNCTION st_intersection(rast1raster,geomgeometry,otheruserfuncregprocedure)
+COMMENT FUNCTION st_intersects(geography,geography)
+COMMENT FUNCTION st_intersects(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_intersects(geometry,geometry)
+COMMENT FUNCTION st_intersects(geomgeometry,rast raster,nband integer)
+COMMENT FUNCTION st_intersects(rast1raster,nband1integer,rast2raster,nband2integer)
+COMMENT FUNCTION st_intersects(rast1raster,rast2raster)
+COMMENT FUNCTION st_intersects(rast raster,nband integer,geomgeometry)
 COMMENT FUNCTION st_isclosed(geometry)
 COMMENT FUNCTION st_iscollection(geometry)
 COMMENT FUNCTION st_isempty(geometry)
@@ -960,98 +962,100 @@ COMMENT FUNCTION st_isempty(rast raster)
 COMMENT FUNCTION st_isring(geometry)
 COMMENT FUNCTION st_issimple(geometry)
 COMMENT FUNCTION st_isvaliddetail(geometry)
-COMMENT FUNCTION st_isvaliddetail(geometry, integer)
+COMMENT FUNCTION st_isvaliddetail(geometry,integer)
 COMMENT FUNCTION st_isvalid(geometry)
-COMMENT FUNCTION st_isvalid(geometry, integer)
+COMMENT FUNCTION st_isvalid(geometry,integer)
 COMMENT FUNCTION st_isvalidreason(geometry)
-COMMENT FUNCTION st_isvalidreason(geometry, integer)
+COMMENT FUNCTION st_isvalidreason(geometry,integer)
 COMMENT FUNCTION st_length2d(geometry)
-COMMENT FUNCTION st_length2d_spheroid(geometry, spheroid)
+COMMENT FUNCTION st_length2d_spheroid(geometry,spheroid)
 COMMENT FUNCTION st_length3d(geometry)
-COMMENT FUNCTION st_length3d_spheroid(geometry, spheroid)
-COMMENT FUNCTION st_length(geoggeography, use_spheroidboolean)
+COMMENT FUNCTION st_length3d_spheroid(geometry,spheroid)
+COMMENT FUNCTION st_length(geoggeography,use_spheroidboolean)
 COMMENT FUNCTION st_length(geography)
-COMMENT FUNCTION st_length(geography, boolean)
+COMMENT FUNCTION st_length(geography,boolean)
 COMMENT FUNCTION st_length(geometry)
-COMMENT FUNCTION st_length_spheroid(geometry, spheroid)
-COMMENT FUNCTION st_linecrossingdirection(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_linecrossingdirection(geometry, geometry)
+COMMENT FUNCTION st_length_spheroid(geometry,spheroid)
+COMMENT FUNCTION st_linecrossingdirection(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_linecrossingdirection(geometry,geometry)
+COMMENT FUNCTION st_linefromencodedpolyline(text)
+COMMENT FUNCTION st_linefromencodedpolyline(text,integer)
 COMMENT FUNCTION st_linefrommultipoint(geometry)
 COMMENT FUNCTION st_linefromtext(text)
-COMMENT FUNCTION st_linefromtext(text, integer)
+COMMENT FUNCTION st_linefromtext(text,integer)
 COMMENT FUNCTION st_linefromwkb(bytea)
-COMMENT FUNCTION st_linefromwkb(bytea, integer)
-COMMENT FUNCTION st_line_interpolate_point(geometry, double precision)
-COMMENT FUNCTION st_line_locate_point(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_line_locate_point(geometry, geometry)
+COMMENT FUNCTION st_linefromwkb(bytea,integer)
+COMMENT FUNCTION st_line_interpolate_point(geometry,double precision)
+COMMENT FUNCTION st_line_locate_point(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_line_locate_point(geometry,geometry)
 COMMENT FUNCTION st_linemerge(geometry)
 COMMENT FUNCTION st_linestringfromwkb(bytea)
-COMMENT FUNCTION st_linestringfromwkb(bytea, integer)
-COMMENT FUNCTION st_line_substring(geometry, double precision, double precision)
+COMMENT FUNCTION st_linestringfromwkb(bytea,integer)
+COMMENT FUNCTION st_line_substring(geometry,double precision,double precision)
 COMMENT FUNCTION st_linetocurve(geometry)
 COMMENT FUNCTION st_linetocurve(geometry geometry)
-COMMENT FUNCTION st_locate_along_measure(geometry, double precision)
-COMMENT FUNCTION st_locatebetweenelevations(geometry, double precision, double precision)
-COMMENT FUNCTION st_locatebetweenelevations(geometry geometry, fromelevation double precision, toelevation double precision)
-COMMENT FUNCTION st_locate_between_measures(geometry, double precision, double precision)
-COMMENT FUNCTION st_longestline(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_longestline(geometry, geometry)
-COMMENT FUNCTION st_makebox2d(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_makebox2d(geometry, geometry)
-COMMENT FUNCTION st_makebox3d(geometry, geometry)
+COMMENT FUNCTION st_locate_along_measure(geometry,double precision)
+COMMENT FUNCTION st_locatebetweenelevations(geometry,double precision,double precision)
+COMMENT FUNCTION st_locatebetweenelevations(geometry geometry,fromelevation double precision,toelevation double precision)
+COMMENT FUNCTION st_locate_between_measures(geometry,double precision,double precision)
+COMMENT FUNCTION st_longestline(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_longestline(geometry,geometry)
+COMMENT FUNCTION st_makebox2d(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_makebox2d(geometry,geometry)
+COMMENT FUNCTION st_makebox3d(geometry,geometry)
 COMMENT FUNCTION st_makeemptyraster(rast raster)
-COMMENT FUNCTION st_makeemptyraster(widthinteger, heightinteger, upperleftxdouble precision, upperleftydouble precision, pixelsizedouble precision)
-COMMENT FUNCTION st_makeemptyraster(widthinteger, heightinteger, upperleftxdouble precision, upperleftydouble precision, scalexdouble precision, scaleydouble precision, skewxdouble precision, skewydouble precision, sridinteger)
-COMMENT FUNCTION st_makeenvelope(double precision, double precision, double precision, double precision, integer)
-COMMENT FUNCTION st_makeline(geom1 geometry, geom2 geometry)
+COMMENT FUNCTION st_makeemptyraster(widthinteger,heightinteger,upperleftxdouble precision,upperleftydouble precision,pixelsizedouble precision)
+COMMENT FUNCTION st_makeemptyraster(widthinteger,heightinteger,upperleftxdouble precision,upperleftydouble precision,scalexdouble precision,scaleydouble precision,skewxdouble precision,skewydouble precision,sridinteger)
+COMMENT FUNCTION st_makeenvelope(double precision,double precision,double precision,double precision,integer)
+COMMENT FUNCTION st_makeline(geom1 geometry,geom2 geometry)
 COMMENT FUNCTION st_makeline(geometry[])
-COMMENT FUNCTION st_makeline(geometry, geometry)
-COMMENT FUNCTION st_makepoint(double precision, double precision)
-COMMENT FUNCTION st_makepoint(double precision, double precision, double precision)
-COMMENT FUNCTION st_makepoint(double precision, double precision, double precision, double precision)
-COMMENT FUNCTION st_makepointm(double precision, double precision, double precision)
+COMMENT FUNCTION st_makeline(geometry,geometry)
+COMMENT FUNCTION st_makepoint(double precision,double precision)
+COMMENT FUNCTION st_makepoint(double precision,double precision,double precision)
+COMMENT FUNCTION st_makepoint(double precision,double precision,double precision,double precision)
+COMMENT FUNCTION st_makepointm(double precision,double precision,double precision)
 COMMENT FUNCTION st_makepolygon(geometry)
-COMMENT FUNCTION st_makepolygon(geometry, geometry[])
+COMMENT FUNCTION st_makepolygon(geometry,geometry[])
 COMMENT FUNCTION st_makevalid(geometry)
-COMMENT FUNCTION st_mapalgebraexpr(rast1raster, band1integer, rast2raster, band2integer, expressiontext, pixeltypetext, extenttypetext, nodata1exprtext, nodata2exprtext, nodatanodatavaldouble precision)
-COMMENT FUNCTION st_mapalgebraexpr(rast1raster, rast2raster, expressiontext, pixeltypetext, extenttypetext, nodata1exprtext, nodata2exprtext, nodatanodatavaldouble precision)
-COMMENT FUNCTION st_mapalgebraexpr(rast raster, bandinteger, pixeltypetext, expressiontext, nodatavaldouble precision)
-COMMENT FUNCTION st_mapalgebraexpr(rast raster, pixeltypetext, expressiontext, nodatavaldouble precision)
-COMMENT FUNCTION st_mapalgebrafctngb(rast raster, bandinteger, pixeltypetext, ngbwidthinteger, ngbheightinteger, onerastngbuserfuncregprocedure, nodatamodetext, VARIADICargstext[])
-COMMENT FUNCTION st_mapalgebrafct(rast1raster, band1integer, rast2raster, band2integer, tworastuserfuncregprocedure, pixeltypetext, extenttypetext, VARIADICuserargstext[])
-COMMENT FUNCTION st_mapalgebrafct(rast1raster, rast2raster, tworastuserfuncregprocedure, pixeltypetext, extenttypetext, VARIADICuserargstext[])
-COMMENT FUNCTION st_mapalgebrafct(rast raster, bandinteger, onerastuserfuncregprocedure)
-COMMENT FUNCTION st_mapalgebrafct(rast raster, bandinteger, onerastuserfuncregprocedure, VARIADICargstext[])
-COMMENT FUNCTION st_mapalgebrafct(rast raster, bandinteger, pixeltypetext, onerastuserfuncregprocedure)
-COMMENT FUNCTION st_mapalgebrafct(rast raster, bandinteger, pixeltypetext, onerastuserfuncregprocedure, VARIADICargstext[])
-COMMENT FUNCTION st_mapalgebrafct(rast raster, onerastuserfuncregprocedure)
-COMMENT FUNCTION st_mapalgebrafct(rast raster, onerastuserfuncregprocedure, VARIADICargstext[])
-COMMENT FUNCTION st_mapalgebrafct(rast raster, pixeltypetext, onerastuserfuncregprocedure)
-COMMENT FUNCTION st_mapalgebrafct(rast raster, pixeltypetext, onerastuserfuncregprocedure, VARIADICargstext[])
-COMMENT FUNCTION st_maxdistance(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_max_distance(geometry, geometry)
-COMMENT FUNCTION st_maxdistance(geometry, geometry)
+COMMENT FUNCTION st_mapalgebraexpr(rast1raster,band1integer,rast2raster,band2integer,expressiontext,pixeltypetext,extenttypetext,nodata1exprtext,nodata2exprtext,nodatanodatavaldouble precision)
+COMMENT FUNCTION st_mapalgebraexpr(rast1raster,rast2raster,expressiontext,pixeltypetext,extenttypetext,nodata1exprtext,nodata2exprtext,nodatanodatavaldouble precision)
+COMMENT FUNCTION st_mapalgebraexpr(rast raster,bandinteger,pixeltypetext,expressiontext,nodatavaldouble precision)
+COMMENT FUNCTION st_mapalgebraexpr(rast raster,pixeltypetext,expressiontext,nodatavaldouble precision)
+COMMENT FUNCTION st_mapalgebrafctngb(rast raster,bandinteger,pixeltypetext,ngbwidthinteger,ngbheightinteger,onerastngbuserfuncregprocedure,nodatamodetext,variadicargstext[])
+COMMENT FUNCTION st_mapalgebrafct(rast1raster,band1integer,rast2raster,band2integer,tworastuserfuncregprocedure,pixeltypetext,extenttypetext,variadicuserargstext[])
+COMMENT FUNCTION st_mapalgebrafct(rast1raster,rast2raster,tworastuserfuncregprocedure,pixeltypetext,extenttypetext,variadicuserargstext[])
+COMMENT FUNCTION st_mapalgebrafct(rast raster,bandinteger,onerastuserfuncregprocedure)
+COMMENT FUNCTION st_mapalgebrafct(rast raster,bandinteger,onerastuserfuncregprocedure,variadicargstext[])
+COMMENT FUNCTION st_mapalgebrafct(rast raster,bandinteger,pixeltypetext,onerastuserfuncregprocedure)
+COMMENT FUNCTION st_mapalgebrafct(rast raster,bandinteger,pixeltypetext,onerastuserfuncregprocedure,variadicargstext[])
+COMMENT FUNCTION st_mapalgebrafct(rast raster,onerastuserfuncregprocedure)
+COMMENT FUNCTION st_mapalgebrafct(rast raster,onerastuserfuncregprocedure,variadicargstext[])
+COMMENT FUNCTION st_mapalgebrafct(rast raster,pixeltypetext,onerastuserfuncregprocedure)
+COMMENT FUNCTION st_mapalgebrafct(rast raster,pixeltypetext,onerastuserfuncregprocedure,variadicargstext[])
+COMMENT FUNCTION st_maxdistance(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_max_distance(geometry,geometry)
+COMMENT FUNCTION st_maxdistance(geometry,geometry)
 COMMENT FUNCTION st_mem_size(geometry)
-COMMENT FUNCTION st_metadata(rast raster, OUTupperleftxdouble precision, OUTupperleftydouble precision, OUTwidthinteger, OUTheightinteger, OUTscalexdouble precision, OUTscaleydouble precision, OUTskewxdouble precision, OUTskewydouble precision, OUTsridinteger, OUTnumbandsinteger)
+COMMENT FUNCTION st_metadata(rast raster,OUTupperleftxdouble precision,OUTupperleftydouble precision,OUTwidthinteger,OUTheightinteger,OUTscalexdouble precision,OUTscaleydouble precision,OUTskewxdouble precision,OUTskewydouble precision,OUTsridinteger,OUTnumbandsinteger)
 COMMENT FUNCTION st_m(geometry)
 COMMENT FUNCTION st_minimumboundingcircle(geometry)
-COMMENT FUNCTION st_minimumboundingcircle(inputgeomgeometry, segs_per_quarterinteger)
+COMMENT FUNCTION st_minimumboundingcircle(inputgeomgeometry,segs_per_quarterinteger)
 COMMENT FUNCTION st_mlinefromtext(text)
-COMMENT FUNCTION st_mlinefromtext(text, integer)
-COMMENT FUNCTION st_modedgeheal(toponame character varying, e1idinteger, e2idinteger)
-COMMENT FUNCTION st_modedgesplit(atopology character varying, anedge integer, apoint public.geometry)
-COMMENT FUNCTION st_modedgesplit(character varying, integer, public.geometry)
-COMMENT FUNCTION st_moveisonode(atopology character varying, anode integer, apoint public.geometry)
-COMMENT FUNCTION st_moveisonode(character varying, integer, public.geometry)
+COMMENT FUNCTION st_mlinefromtext(text,integer)
+COMMENT FUNCTION st_modedgeheal(toponame character varying,e1idinteger,e2idinteger)
+COMMENT FUNCTION st_modedgesplit(atopology character varying,anedge integer,apoint public.geometry)
+COMMENT FUNCTION st_modedgesplit(character varying,integer,public.geometry)
+COMMENT FUNCTION st_moveisonode(atopology character varying,anode integer,apoint public.geometry)
+COMMENT FUNCTION st_moveisonode(character varying,integer,public.geometry)
 COMMENT FUNCTION st_mpointfromtext(text)
-COMMENT FUNCTION st_mpointfromtext(text, integer)
+COMMENT FUNCTION st_mpointfromtext(text,integer)
 COMMENT FUNCTION st_mpolyfromtext(text)
-COMMENT FUNCTION st_mpolyfromtext(text, integer)
+COMMENT FUNCTION st_mpolyfromtext(text,integer)
 COMMENT FUNCTION st_multi(geometry)
 COMMENT FUNCTION st_ndims(geometry)
-COMMENT FUNCTION st_newedgeheal(toponame character varying, e1idinteger, e2idinteger)
-COMMENT FUNCTION st_newedgessplit(atopology character varying, anedge integer, apoint public.geometry)
-COMMENT FUNCTION st_newedgessplit(character varying, integer, public.geometry)
+COMMENT FUNCTION st_newedgeheal(toponame character varying,e1idinteger,e2idinteger)
+COMMENT FUNCTION st_newedgessplit(atopology character varying,anedge integer,apoint public.geometry)
+COMMENT FUNCTION st_newedgessplit(character varying,integer,public.geometry)
 COMMENT FUNCTION st_node(ggeometry)
 COMMENT FUNCTION st_npoints(geometry)
 COMMENT FUNCTION st_nrings(geometry)
@@ -1061,167 +1065,167 @@ COMMENT FUNCTION st_numinteriorring(geometry)
 COMMENT FUNCTION st_numinteriorrings(geometry)
 COMMENT FUNCTION st_numpatches(geometry)
 COMMENT FUNCTION st_numpoints(geometry)
-COMMENT FUNCTION st_offsetcurve(linegeometry, distancedouble precision, paramstext)
-COMMENT FUNCTION st_orderingequals(geometrya geometry, geometryb geometry)
-COMMENT FUNCTION st_orderingequals(geometry, geometry)
-COMMENT FUNCTION st_overlaps(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_overlaps(geometry, geometry)
-COMMENT FUNCTION st_patchn(geometry, integer)
+COMMENT FUNCTION st_offsetcurve(linegeometry,distancedouble precision,paramstext)
+COMMENT FUNCTION st_orderingequals(geometrya geometry,geometryb geometry)
+COMMENT FUNCTION st_orderingequals(geometry,geometry)
+COMMENT FUNCTION st_overlaps(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_overlaps(geometry,geometry)
+COMMENT FUNCTION st_patchn(geometry,integer)
 COMMENT FUNCTION st_perimeter2d(geometry)
 COMMENT FUNCTION st_perimeter3d(geometry)
-COMMENT FUNCTION st_perimeter(geoggeography, use_spheroidboolean)
+COMMENT FUNCTION st_perimeter(geoggeography,use_spheroidboolean)
 COMMENT FUNCTION st_perimeter(geometry)
-COMMENT FUNCTION st_pixelaspolygon(rast raster, bandinteger, xinteger, yinteger)
-COMMENT FUNCTION st_pixelaspolygon(rast raster, xinteger, yinteger)
+COMMENT FUNCTION st_pixelaspolygon(rast raster,bandinteger,xinteger,yinteger)
+COMMENT FUNCTION st_pixelaspolygon(rast raster,xinteger,yinteger)
 COMMENT FUNCTION st_pixelheight(raster)
 COMMENT FUNCTION st_pixelwidth(raster)
-COMMENT FUNCTION st_point(double precision, double precision)
+COMMENT FUNCTION st_point(double precision,double precision)
 COMMENT FUNCTION st_pointfromgeohash(text)
-COMMENT FUNCTION st_pointfromgeohash(text, integer)
+COMMENT FUNCTION st_pointfromgeohash(text,integer)
 COMMENT FUNCTION st_pointfromtext(text)
-COMMENT FUNCTION st_pointfromtext(text, integer)
-COMMENT FUNCTION st_point_inside_circle(geometry, double precision, double precision, double precision)
-COMMENT FUNCTION st_pointn(geometry, integer)
+COMMENT FUNCTION st_pointfromtext(text,integer)
+COMMENT FUNCTION st_point_inside_circle(geometry,double precision,double precision,double precision)
+COMMENT FUNCTION st_pointn(geometry,integer)
 COMMENT FUNCTION st_pointonsurface(geometry)
 COMMENT FUNCTION st_polygonfromtext(text)
-COMMENT FUNCTION st_polygonfromtext(text, integer)
-COMMENT FUNCTION st_polygon(geometry, integer)
+COMMENT FUNCTION st_polygonfromtext(text,integer)
+COMMENT FUNCTION st_polygon(geometry,integer)
 COMMENT FUNCTION st_polygonize(geometry[])
-COMMENT FUNCTION st_polygon(rast raster, bandinteger)
-COMMENT FUNCTION st_project(geog geography, distance double precision, azimuth double precision)
-COMMENT FUNCTION st_quantile(rast raster, exclude_nodata_valueboolean, quantiledouble precision)
-COMMENT FUNCTION st_quantile(rast raster, nband integer, exclude_nodata_valueboolean, quantiledouble precision)
-COMMENT FUNCTION st_quantile(rast raster, nband integer, exclude_nodata_valueboolean, quantilesdouble precision[])
-COMMENT FUNCTION st_quantile(rast raster, nband integer, quantiledouble precision)
-COMMENT FUNCTION st_quantile(rast raster, nband integer, quantilesdouble precision[])
-COMMENT FUNCTION st_quantile(rast raster, quantiledouble precision)
-COMMENT FUNCTION st_quantile(rast raster, quantilesdouble precision[])
-COMMENT FUNCTION st_raster2worldcoordx(rast raster, xrinteger)
-COMMENT FUNCTION st_raster2worldcoordx(rast raster, xrinteger, yrinteger)
-COMMENT FUNCTION st_raster2worldcoordy(rast raster, xrinteger, yrinteger)
-COMMENT FUNCTION st_raster2worldcoordy(rast raster, yrinteger)
-COMMENT FUNCTION st_reclass(rast raster, nband integer, reclassexprtext, pixeltypetext, nodatavaldouble precision)
-COMMENT FUNCTION st_reclass(rast raster, reclassexprtext, pixeltypetext)
-COMMENT FUNCTION st_reclass(rast raster, VARIADICreclassargsetreclassarg[])
-COMMENT FUNCTION st_relate(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_relate(geom1 geometry, geom2 geometry, integer)
-COMMENT FUNCTION st_relate(geom1 geometry, geom2 geometry, text)
-COMMENT FUNCTION st_relate(geometry, geometry)
-COMMENT FUNCTION st_relate(geometry, geometry, integer)
-COMMENT FUNCTION st_relate(geometry, geometry, text)
-COMMENT FUNCTION st_relatematch(text, text)
-COMMENT FUNCTION st_remedgemodface(toponame character varying, e1id integer)
-COMMENT FUNCTION st_remedgenewface(toponame character varying, e1id integer)
-COMMENT FUNCTION st_removeisonode(atopology character varying, anode integer)
-COMMENT FUNCTION st_removeisonode(character varying, integer)
-COMMENT FUNCTION st_removepoint(geometry, integer)
+COMMENT FUNCTION st_polygon(rast raster,bandinteger)
+COMMENT FUNCTION st_project(geog geography,distance double precision,azimuth double precision)
+COMMENT FUNCTION st_quantile(rast raster,exclude_nodata_valueboolean,quantiledouble precision)
+COMMENT FUNCTION st_quantile(rast raster,nband integer,exclude_nodata_valueboolean,quantiledouble precision)
+COMMENT FUNCTION st_quantile(rast raster,nband integer,exclude_nodata_valueboolean,quantilesdouble precision[])
+COMMENT FUNCTION st_quantile(rast raster,nband integer,quantiledouble precision)
+COMMENT FUNCTION st_quantile(rast raster,nband integer,quantilesdouble precision[])
+COMMENT FUNCTION st_quantile(rast raster,quantiledouble precision)
+COMMENT FUNCTION st_quantile(rast raster,quantilesdouble precision[])
+COMMENT FUNCTION st_raster2worldcoordx(rast raster,xrinteger)
+COMMENT FUNCTION st_raster2worldcoordx(rast raster,xrinteger,yrinteger)
+COMMENT FUNCTION st_raster2worldcoordy(rast raster,xrinteger,yrinteger)
+COMMENT FUNCTION st_raster2worldcoordy(rast raster,yrinteger)
+COMMENT FUNCTION st_reclass(rast raster,nband integer,reclassexprtext,pixeltypetext,nodatavaldouble precision)
+COMMENT FUNCTION st_reclass(rast raster,reclassexprtext,pixeltypetext)
+COMMENT FUNCTION st_reclass(rast raster,variadicreclassargsetreclassarg[])
+COMMENT FUNCTION st_relate(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_relate(geom1 geometry,geom2 geometry,integer)
+COMMENT FUNCTION st_relate(geom1 geometry,geom2 geometry,text)
+COMMENT FUNCTION st_relate(geometry,geometry)
+COMMENT FUNCTION st_relate(geometry,geometry,integer)
+COMMENT FUNCTION st_relate(geometry,geometry,text)
+COMMENT FUNCTION st_relatematch(text,text)
+COMMENT FUNCTION st_remedgemodface(toponame character varying,e1id integer)
+COMMENT FUNCTION st_remedgenewface(toponame character varying,e1id integer)
+COMMENT FUNCTION st_removeisonode(atopology character varying,anode integer)
+COMMENT FUNCTION st_removeisonode(character varying,integer)
+COMMENT FUNCTION st_removepoint(geometry,integer)
 COMMENT FUNCTION st_removerepeatedpoints(geometry)
-COMMENT FUNCTION st_resample(rast raster, refraster, algorithmtext, maxerrdouble precision, usescaleboolean)
-COMMENT FUNCTION st_resample(rast raster, refraster, usescaleboolean, algorithmtext, maxerrdouble precision)
-COMMENT FUNCTION st_resample(rast raster, sridinteger, scalexdouble precision, scaleydouble precision, gridxdouble precision, gridydouble precision, skewxdouble precision, skewydouble precision, algorithmtext, maxerrdouble precision)
-COMMENT FUNCTION st_resample(rast raster, widthinteger, heightinteger, sridinteger, gridxdouble precision, gridydouble precision, skewxdouble precision, skewydouble precision, algorithmtext, maxerrdouble precision)
-COMMENT FUNCTION st_rescale(rast raster, scalexdouble precision, scaleydouble precision, algorithmtext, maxerrdouble precision)
-COMMENT FUNCTION st_rescale(rast raster, scalexydouble precision, algorithmtext, maxerrdouble precision)
+COMMENT FUNCTION st_resample(rast raster,refraster,algorithmtext,maxerrdouble precision,usescaleboolean)
+COMMENT FUNCTION st_resample(rast raster,refraster,usescaleboolean,algorithmtext,maxerrdouble precision)
+COMMENT FUNCTION st_resample(rast raster,sridinteger,scalexdouble precision,scaleydouble precision,gridxdouble precision,gridydouble precision,skewxdouble precision,skewydouble precision,algorithmtext,maxerrdouble precision)
+COMMENT FUNCTION st_resample(rast raster,widthinteger,heightinteger,sridinteger,gridxdouble precision,gridydouble precision,skewxdouble precision,skewydouble precision,algorithmtext,maxerrdouble precision)
+COMMENT FUNCTION st_rescale(rast raster,scalexdouble precision,scaleydouble precision,algorithmtext,maxerrdouble precision)
+COMMENT FUNCTION st_rescale(rast raster,scalexydouble precision,algorithmtext,maxerrdouble precision)
 COMMENT FUNCTION st_reverse(geometry)
-COMMENT FUNCTION st_rotate(geometry, double precision)
-COMMENT FUNCTION st_rotatex(geometry, double precision)
-COMMENT FUNCTION st_rotatey(geometry, double precision)
-COMMENT FUNCTION st_rotatez(geometry, double precision)
+COMMENT FUNCTION st_rotate(geometry,double precision)
+COMMENT FUNCTION st_rotatex(geometry,double precision)
+COMMENT FUNCTION st_rotatey(geometry,double precision)
+COMMENT FUNCTION st_rotatez(geometry,double precision)
 COMMENT FUNCTION st_rotation(raster)
-COMMENT FUNCTION st_samealignment(rast1raster, rast2raster)
-COMMENT FUNCTION st_samealignment(ulx1double precision, uly1double precision, scalex1double precision, scaley1double precision, skewx1double precision, skewy1double precision, ulx2double precision, uly2double precision, scalex2double precision, scaley2double precision, skewx2double precision, skewy2double precision)
-COMMENT FUNCTION st_scale(geometry, double precision, double precision)
-COMMENT FUNCTION st_scale(geometry, double precision, double precision, double precision)
+COMMENT FUNCTION st_samealignment(rast1raster,rast2raster)
+COMMENT FUNCTION st_samealignment(ulx1double precision,uly1double precision,scalex1double precision,scaley1double precision,skewx1double precision,skewy1double precision,ulx2double precision,uly2double precision,scalex2double precision,scaley2double precision,skewx2double precision,skewy2double precision)
+COMMENT FUNCTION st_scale(geometry,double precision,double precision)
+COMMENT FUNCTION st_scale(geometry,double precision,double precision,double precision)
 COMMENT FUNCTION st_scalex(raster)
 COMMENT FUNCTION st_scaley(raster)
-COMMENT FUNCTION st_segmentize(geometry, double precision)
-COMMENT FUNCTION st_setbandisnodata(rast raster, bandinteger)
-COMMENT FUNCTION st_setbandnodatavalue(rast raster, bandinteger, nodatavaluedouble precision, forcecheckingboolean)
-COMMENT FUNCTION st_setbandnodatavalue(rast raster, nodatavaluedouble precision)
-COMMENT FUNCTION st_setgeoreference(rast raster, georeftext, formattext)
-COMMENT FUNCTION st_setpoint(geometry, integer, geometry)
-COMMENT FUNCTION st_setrotation(rast raster, rotationdouble precision)
-COMMENT FUNCTION st_setscale(rast raster, scaledouble precision)
-COMMENT FUNCTION st_setscale(rast raster, scalexdouble precision, scaleydouble precision)
-COMMENT FUNCTION st_setskew(rast raster, skewdouble precision)
-COMMENT FUNCTION st_setskew(rast raster, skewxdouble precision, skewydouble precision)
-COMMENT FUNCTION st_setsrid(geometry, integer)
-COMMENT FUNCTION st_setsrid(rast raster, sridinteger)
-COMMENT FUNCTION st_setupperleft(rast raster, upperleftxdouble precision, upperleftydouble precision)
-COMMENT FUNCTION st_setvalue(rast raster, bandinteger, ptgeometry, newvaluedouble precision)
-COMMENT FUNCTION st_setvalue(rast raster, bandinteger, xinteger, yinteger, newvaluedouble precision)
-COMMENT FUNCTION st_setvalue(rast raster, ptgeometry, newvaluedouble precision)
-COMMENT FUNCTION st_setvalue(rast raster, xinteger, yinteger, newvaluedouble precision)
-COMMENT FUNCTION st_sharedpaths(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_sharedpaths(geometry, geometry)
+COMMENT FUNCTION st_segmentize(geometry,double precision)
+COMMENT FUNCTION st_setbandisnodata(rast raster,bandinteger)
+COMMENT FUNCTION st_setbandnodatavalue(rast raster,bandinteger,nodatavaluedouble precision,forcecheckingboolean)
+COMMENT FUNCTION st_setbandnodatavalue(rast raster,nodatavaluedouble precision)
+COMMENT FUNCTION st_setgeoreference(rast raster,georeftext,formattext)
+COMMENT FUNCTION st_setpoint(geometry,integer,geometry)
+COMMENT FUNCTION st_setrotation(rast raster,rotationdouble precision)
+COMMENT FUNCTION st_setscale(rast raster,scaledouble precision)
+COMMENT FUNCTION st_setscale(rast raster,scalexdouble precision,scaleydouble precision)
+COMMENT FUNCTION st_setskew(rast raster,skewdouble precision)
+COMMENT FUNCTION st_setskew(rast raster,skewxdouble precision,skewydouble precision)
+COMMENT FUNCTION st_setsrid(geometry,integer)
+COMMENT FUNCTION st_setsrid(rast raster,sridinteger)
+COMMENT FUNCTION st_setupperleft(rast raster,upperleftxdouble precision,upperleftydouble precision)
+COMMENT FUNCTION st_setvalue(rast raster,bandinteger,ptgeometry,newvaluedouble precision)
+COMMENT FUNCTION st_setvalue(rast raster,bandinteger,xinteger,yinteger,newvaluedouble precision)
+COMMENT FUNCTION st_setvalue(rast raster,ptgeometry,newvaluedouble precision)
+COMMENT FUNCTION st_setvalue(rast raster,xinteger,yinteger,newvaluedouble precision)
+COMMENT FUNCTION st_sharedpaths(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_sharedpaths(geometry,geometry)
 COMMENT FUNCTION st_shift_longitude(geometry)
-COMMENT FUNCTION st_shortestline(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_shortestline(geometry, geometry)
-COMMENT FUNCTION st_simplify(geometry, double precision)
-COMMENT FUNCTION st_simplifypreservetopology(geometry, double precision)
+COMMENT FUNCTION st_shortestline(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_shortestline(geometry,geometry)
+COMMENT FUNCTION st_simplify(geometry,double precision)
+COMMENT FUNCTION st_simplifypreservetopology(geometry,double precision)
 COMMENT FUNCTION st_skewx(raster)
 COMMENT FUNCTION st_skewy(raster)
-COMMENT FUNCTION st_snap(geom1 geometry, geom2 geometry, double precision)
-COMMENT FUNCTION st_snap(geometry, geometry, double precision)
-COMMENT FUNCTION st_snaptogrid(geom1 geometry, geom2 geometry, double precision, double precision, double precision, double precision)
-COMMENT FUNCTION st_snaptogrid(geometry, double precision)
-COMMENT FUNCTION st_snaptogrid(geometry, double precision, double precision)
-COMMENT FUNCTION st_snaptogrid(geometry, double precision, double precision, double precision, double precision)
-COMMENT FUNCTION st_snaptogrid(geometry, geometry, double precision, double precision, double precision, double precision)
-COMMENT FUNCTION st_split(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_split(geometry, geometry)
+COMMENT FUNCTION st_snap(geom1 geometry,geom2 geometry,double precision)
+COMMENT FUNCTION st_snap(geometry,geometry,double precision)
+COMMENT FUNCTION st_snaptogrid(geom1 geometry,geom2 geometry,double precision,double precision,double precision,double precision)
+COMMENT FUNCTION st_snaptogrid(geometry,double precision)
+COMMENT FUNCTION st_snaptogrid(geometry,double precision,double precision)
+COMMENT FUNCTION st_snaptogrid(geometry,double precision,double precision,double precision,double precision)
+COMMENT FUNCTION st_snaptogrid(geometry,geometry,double precision,double precision,double precision,double precision)
+COMMENT FUNCTION st_split(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_split(geometry,geometry)
 COMMENT FUNCTION st_srid(geometry)
 COMMENT FUNCTION st_srid(raster)
 COMMENT FUNCTION st_startpoint(geometry)
 COMMENT FUNCTION st_summary(geometry)
-COMMENT FUNCTION st_summarystats(rastertabletext, rastercolumntext, exclude_nodata_valueboolean)
-COMMENT FUNCTION st_summarystats(rastertabletext, rastercolumntext, nband integer, exclude_nodata_valueboolean)
-COMMENT FUNCTION st_summarystats(rast raster, exclude_nodata_valueboolean)
-COMMENT FUNCTION st_summarystats(rast raster, nband integer, exclude_nodata_valueboolean)
-COMMENT FUNCTION st_symdifference(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_symdifference(geometry, geometry)
-COMMENT FUNCTION st_touches(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_touches(geometry, geometry)
-COMMENT FUNCTION st_transform(geometry, integer)
-COMMENT FUNCTION st_transform(rast raster, sridinteger, algorithmtext, maxerrdouble precision, scalexdouble precision, scaleydouble precision)
-COMMENT FUNCTION st_transform(rast raster, sridinteger, scalexdouble precision, scaleydouble precision, algorithmtext, maxerrdouble precision)
-COMMENT FUNCTION st_translate(geometry, double precision, double precision)
-COMMENT FUNCTION st_translate(geometry, double precision, double precision, double precision)
-COMMENT FUNCTION st_transscale(geometry, double precision, double precision, double precision, double precision)
+COMMENT FUNCTION st_summarystats(rastertabletext,rastercolumntext,exclude_nodata_valueboolean)
+COMMENT FUNCTION st_summarystats(rastertabletext,rastercolumntext,nband integer,exclude_nodata_valueboolean)
+COMMENT FUNCTION st_summarystats(rast raster,exclude_nodata_valueboolean)
+COMMENT FUNCTION st_summarystats(rast raster,nband integer,exclude_nodata_valueboolean)
+COMMENT FUNCTION st_symdifference(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_symdifference(geometry,geometry)
+COMMENT FUNCTION st_touches(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_touches(geometry,geometry)
+COMMENT FUNCTION st_transform(geometry,integer)
+COMMENT FUNCTION st_transform(rast raster,sridinteger,algorithmtext,maxerrdouble precision,scalexdouble precision,scaleydouble precision)
+COMMENT FUNCTION st_transform(rast raster,sridinteger,scalexdouble precision,scaleydouble precision,algorithmtext,maxerrdouble precision)
+COMMENT FUNCTION st_translate(geometry,double precision,double precision)
+COMMENT FUNCTION st_translate(geometry,double precision,double precision,double precision)
+COMMENT FUNCTION st_transscale(geometry,double precision,double precision,double precision,double precision)
 COMMENT FUNCTION st_unaryunion(geometry)
-COMMENT FUNCTION st_union(geom1 geometry, geom2 geometry)
+COMMENT FUNCTION st_union(geom1 geometry,geom2 geometry)
 COMMENT FUNCTION st_union(geometry[])
-COMMENT FUNCTION st_union(geometry, geometry)
+COMMENT FUNCTION st_union(geometry,geometry)
 COMMENT FUNCTION st_upperleftx(raster)
 COMMENT FUNCTION st_upperlefty(raster)
-COMMENT FUNCTION st_valuecount(rastertabletext, rastercolumntext, nband integer, exclude_nodata_valueboolean, searchvaluedouble precision, roundtodouble precision)
-COMMENT FUNCTION st_valuecount(rastertabletext, rastercolumntext, nband integer, exclude_nodata_valueboolean, searchvaluesdouble precision[], roundtodouble precision, OUTvaluedouble precision, OUTcountinteger)
-COMMENT FUNCTION st_valuecount(rastertabletext, rastercolumntext, nband integer, searchvaluedouble precision, roundtodouble precision)
-COMMENT FUNCTION st_valuecount(rastertabletext, rastercolumntext, nband integer, searchvaluesdouble precision[], roundtodouble precision, OUTvaluedouble precision, OUTcountinteger)
-COMMENT FUNCTION st_valuecount(rastertabletext, rastercolumntext, searchvaluedouble precision, roundtodouble precision)
-COMMENT FUNCTION st_valuecount(rastertabletext, rastercolumntext, searchvaluesdouble precision[], roundtodouble precision, OUTvaluedouble precision, OUTcountinteger)
-COMMENT FUNCTION st_valuecount(rast raster, nband integer, exclude_nodata_valueboolean, searchvaluedouble precision, roundtodouble precision)
-COMMENT FUNCTION st_valuecount(rast raster, nband integer, exclude_nodata_valueboolean, searchvaluesdouble precision[], roundtodouble precision, OUTvaluedouble precision, OUTcountinteger)
-COMMENT FUNCTION st_valuecount(rast raster, nband integer, searchvaluedouble precision, roundtodouble precision)
-COMMENT FUNCTION st_valuecount(rast raster, nband integer, searchvaluesdouble precision[], roundtodouble precision, OUTvaluedouble precision, OUTcountinteger)
-COMMENT FUNCTION st_valuecount(rast raster, searchvaluedouble precision, roundtodouble precision)
-COMMENT FUNCTION st_valuecount(rast raster, searchvaluesdouble precision[], roundtodouble precision, OUTvaluedouble precision, OUTcountinteger)
-COMMENT FUNCTION st_value(rast raster, bandinteger, ptgeometry, hasnodataboolean)
-COMMENT FUNCTION st_value(rast raster, bandinteger, xinteger, yinteger, hasnodataboolean)
-COMMENT FUNCTION st_value(rast raster, ptgeometry, hasnodataboolean)
-COMMENT FUNCTION st_value(rast raster, xinteger, yinteger, hasnodataboolean)
+COMMENT FUNCTION st_valuecount(rastertabletext,rastercolumntext,nband integer,exclude_nodata_valueboolean,searchvaluedouble precision,roundtodouble precision)
+COMMENT FUNCTION st_valuecount(rastertabletext,rastercolumntext,nband integer,exclude_nodata_valueboolean,searchvaluesdouble precision[],roundtodouble precision,OUTvaluedouble precision,OUTcountinteger)
+COMMENT FUNCTION st_valuecount(rastertabletext,rastercolumntext,nband integer,searchvaluedouble precision,roundtodouble precision)
+COMMENT FUNCTION st_valuecount(rastertabletext,rastercolumntext,nband integer,searchvaluesdouble precision[],roundtodouble precision,OUTvaluedouble precision,OUTcountinteger)
+COMMENT FUNCTION st_valuecount(rastertabletext,rastercolumntext,searchvaluedouble precision,roundtodouble precision)
+COMMENT FUNCTION st_valuecount(rastertabletext,rastercolumntext,searchvaluesdouble precision[],roundtodouble precision,OUTvaluedouble precision,OUTcountinteger)
+COMMENT FUNCTION st_valuecount(rast raster,nband integer,exclude_nodata_valueboolean,searchvaluedouble precision,roundtodouble precision)
+COMMENT FUNCTION st_valuecount(rast raster,nband integer,exclude_nodata_valueboolean,searchvaluesdouble precision[],roundtodouble precision,OUTvaluedouble precision,OUTcountinteger)
+COMMENT FUNCTION st_valuecount(rast raster,nband integer,searchvaluedouble precision,roundtodouble precision)
+COMMENT FUNCTION st_valuecount(rast raster,nband integer,searchvaluesdouble precision[],roundtodouble precision,OUTvaluedouble precision,OUTcountinteger)
+COMMENT FUNCTION st_valuecount(rast raster,searchvaluedouble precision,roundtodouble precision)
+COMMENT FUNCTION st_valuecount(rast raster,searchvaluesdouble precision[],roundtodouble precision,OUTvaluedouble precision,OUTcountinteger)
+COMMENT FUNCTION st_value(rast raster,bandinteger,ptgeometry,hasnodataboolean)
+COMMENT FUNCTION st_value(rast raster,bandinteger,xinteger,yinteger,hasnodataboolean)
+COMMENT FUNCTION st_value(rast raster,ptgeometry,hasnodataboolean)
+COMMENT FUNCTION st_value(rast raster,xinteger,yinteger,hasnodataboolean)
 COMMENT FUNCTION st_width(raster)
-COMMENT FUNCTION st_within(geom1 geometry, geom2 geometry)
-COMMENT FUNCTION st_within(geometry, geometry)
+COMMENT FUNCTION st_within(geom1 geometry,geom2 geometry)
+COMMENT FUNCTION st_within(geometry,geometry)
 COMMENT FUNCTION st_wkbtosql(bytea)
 COMMENT FUNCTION st_wkbtosql(wkb bytea)
 COMMENT FUNCTION st_wkttosql(text)
-COMMENT FUNCTION st_world2rastercoordx(rast raster, ptgeometry)
-COMMENT FUNCTION st_world2rastercoordx(rast raster, xwdouble precision)
-COMMENT FUNCTION st_world2rastercoordx(rast raster, xwdouble precision, ywdouble precision)
-COMMENT FUNCTION st_world2rastercoordy(rast raster, ptgeometry)
-COMMENT FUNCTION st_world2rastercoordy(rast raster, xwdouble precision, ywdouble precision)
-COMMENT FUNCTION st_world2rastercoordy(rast raster, ywdouble precision)
+COMMENT FUNCTION st_world2rastercoordx(rast raster,ptgeometry)
+COMMENT FUNCTION st_world2rastercoordx(rast raster,xwdouble precision)
+COMMENT FUNCTION st_world2rastercoordx(rast raster,xwdouble precision,ywdouble precision)
+COMMENT FUNCTION st_world2rastercoordy(rast raster,ptgeometry)
+COMMENT FUNCTION st_world2rastercoordy(rast raster,xwdouble precision,ywdouble precision)
+COMMENT FUNCTION st_world2rastercoordy(rast raster,ywdouble precision)
 COMMENT FUNCTION st_x(geometry)
 COMMENT FUNCTION st_xmax(box3d)
 COMMENT FUNCTION st_xmin(box3d)
@@ -1232,16 +1236,16 @@ COMMENT FUNCTION st_z(geometry)
 COMMENT FUNCTION st_zmax(box3d)
 COMMENT FUNCTION st_zmflag(geometry)
 COMMENT FUNCTION st_zmin(box3d)
-COMMENT FUNCTION topogeo_addlinestring(atopology character varying, aline public.geometry, tolerance double precision)
-COMMENT FUNCTION topogeo_addpoint(atopology character varying, apoint public.geometry, tolerance double precision)
-COMMENT FUNCTION topogeo_addpolygon(atopology character varying, apoly public.geometry, tolerance double precision)
+COMMENT FUNCTION topogeo_addlinestring(atopology character varying,aline public.geometry,tolerance double precision)
+COMMENT FUNCTION topogeo_addpoint(atopology character varying,apoint public.geometry,tolerance double precision)
+COMMENT FUNCTION topogeo_addpolygon(atopology character varying,apoly public.geometry,tolerance double precision)
 COMMENT FUNCTION topologysummary(atopologycharacter varying)
-COMMENT FUNCTION totopogeom(ageom public.geometry, atopology character varying, alayer integer, atolerance double precision)
+COMMENT FUNCTION totopogeom(ageom public.geometry,atopology character varying,alayer integer,atolerance double precision)
 COMMENT FUNCTION unlockrows(text)
-COMMENT FUNCTION updategeometrysrid(catalogn_namecharacter varying, schema_namecharacter varying, table_namecharacter varying, column_namecharacter varying, new_sridinteger)
-COMMENT FUNCTION updategeometrysrid(character varying, character varying, character varying, character varying, integer)
-COMMENT FUNCTION updategeometrysrid(character varying, character varying, character varying, integer)
-COMMENT FUNCTION updategeometrysrid(character varying, character varying, integer)
+COMMENT FUNCTION updategeometrysrid(catalogn_namecharacter varying,schema_namecharacter varying,table_namecharacter varying,column_namecharacter varying,new_sridinteger)
+COMMENT FUNCTION updategeometrysrid(character varying,character varying,character varying,character varying,integer)
+COMMENT FUNCTION updategeometrysrid(character varying,character varying,character varying,integer)
+COMMENT FUNCTION updategeometrysrid(character varying,character varying,integer)
 COMMENT FUNCTION validatetopology(character varying)
 COMMENT FUNCTION validatetopology(toponame character varying)
 COMMENT TYPE box2d
@@ -1272,110 +1276,110 @@ DOMAIN topogeomelementarray
 FKCONSTRAINT layer_topology_id_fkey
 FUNCTION addauth(text)
 FUNCTION addbbox(geometry)
-FUNCTION addedge(character varying, public.geometry)
-FUNCTION addface(character varying, public.geometry, boolean)
-FUNCTION addgeometrycolumn(character varying, character varying, character varying, character varying, integer, character varying, integer)
-FUNCTION addgeometrycolumn(character varying, character varying, character varying, character varying, integer, character varying, integer, boolean)
-FUNCTION addgeometrycolumn(character varying, character varying, character varying, integer, character varying, integer)
-FUNCTION addgeometrycolumn(character varying, character varying, character varying, integer, character varying, integer, boolean)
-FUNCTION addgeometrycolumn(character varying, character varying, integer, character varying, integer)
-FUNCTION addgeometrycolumn(character varying, character varying, integer, character varying, integer, boolean)
-FUNCTION addnode(character varying, public.geometry)
-FUNCTION addnode(character varying, public.geometry, boolean, boolean)
-FUNCTION _add_overview_constraint(name, name, name, name, name, name, integer)
-FUNCTION addoverviewconstraints(name, name, name, name, integer)
-FUNCTION addoverviewconstraints(name, name, name, name, name, name, integer)
-FUNCTION addpoint(geometry, geometry)
-FUNCTION addpoint(geometry, geometry, integer)
-FUNCTION addrastercolumn(character varying, character varying, character varying, character varying, integer, character varying[], boolean, boolean, double precision[], double precision, double precision, integer, integer, geometry)
-FUNCTION addrastercolumn(character varying, character varying, character varying, integer, character varying[], boolean, boolean, double precision[], double precision, double precision, integer, integer, geometry)
-FUNCTION addrastercolumn(character varying, character varying, integer, character varying[], boolean, boolean, double precision[], double precision, double precision, integer, integer, geometry)
-FUNCTION _add_raster_constraint_alignment(name, name, name)
-FUNCTION _add_raster_constraint_blocksize(name, name, name, text)
-FUNCTION _add_raster_constraint_extent(name, name, name)
-FUNCTION _add_raster_constraint(name, text)
-FUNCTION _add_raster_constraint_nodata_values(name, name, name)
-FUNCTION _add_raster_constraint_num_bands(name, name, name)
-FUNCTION _add_raster_constraint_out_db(name, name, name)
-FUNCTION _add_raster_constraint_pixel_types(name, name, name)
-FUNCTION _add_raster_constraint_regular_blocking(name, name, name)
-FUNCTION _add_raster_constraint_scale(name, name, name, character)
-FUNCTION addrasterconstraints(name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)
-FUNCTION addrasterconstraints(name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)
-FUNCTION addrasterconstraints(name, name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)
-FUNCTION addrasterconstraints(name, name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)
-FUNCTION addrasterconstraints(name, name, name, text[])
-FUNCTION addrasterconstraints(name, name, text[])
-FUNCTION _add_raster_constraint_srid(name, name, name)
-FUNCTION addtopogeometrycolumn(character varying, character varying, character varying, character varying, character varying)
-FUNCTION addtopogeometrycolumn(character varying, character varying, character varying, character varying, character varying, integer)
+FUNCTION addedge(character varying,public.geometry)
+FUNCTION addface(character varying,public.geometry,boolean)
+FUNCTION addgeometrycolumn(character varying,character varying,character varying,character varying,integer,character varying,integer)
+FUNCTION addgeometrycolumn(character varying,character varying,character varying,character varying,integer,character varying,integer,boolean)
+FUNCTION addgeometrycolumn(character varying,character varying,character varying,integer,character varying,integer)
+FUNCTION addgeometrycolumn(character varying,character varying,character varying,integer,character varying,integer,boolean)
+FUNCTION addgeometrycolumn(character varying,character varying,integer,character varying,integer)
+FUNCTION addgeometrycolumn(character varying,character varying,integer,character varying,integer,boolean)
+FUNCTION addnode(character varying,public.geometry)
+FUNCTION addnode(character varying,public.geometry,boolean,boolean)
+FUNCTION _add_overview_constraint(name,name,name,name,name,name,integer)
+FUNCTION addoverviewconstraints(name,name,name,name,integer)
+FUNCTION addoverviewconstraints(name,name,name,name,name,name,integer)
+FUNCTION addpoint(geometry,geometry)
+FUNCTION addpoint(geometry,geometry,integer)
+FUNCTION addrastercolumn(character varying,character varying,character varying,character varying,integer,character varying[],boolean,boolean,double precision[],double precision,double precision,integer,integer,geometry)
+FUNCTION addrastercolumn(character varying,character varying,character varying,integer,character varying[],boolean,boolean,double precision[],double precision,double precision,integer,integer,geometry)
+FUNCTION addrastercolumn(character varying,character varying,integer,character varying[],boolean,boolean,double precision[],double precision,double precision,integer,integer,geometry)
+FUNCTION _add_raster_constraint_alignment(name,name,name)
+FUNCTION _add_raster_constraint_blocksize(name,name,name,text)
+FUNCTION _add_raster_constraint_extent(name,name,name)
+FUNCTION _add_raster_constraint(name,text)
+FUNCTION _add_raster_constraint_nodata_values(name,name,name)
+FUNCTION _add_raster_constraint_num_bands(name,name,name)
+FUNCTION _add_raster_constraint_out_db(name,name,name)
+FUNCTION _add_raster_constraint_pixel_types(name,name,name)
+FUNCTION _add_raster_constraint_regular_blocking(name,name,name)
+FUNCTION _add_raster_constraint_scale(name,name,name,character)
+FUNCTION addrasterconstraints(name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
+FUNCTION addrasterconstraints(name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
+FUNCTION addrasterconstraints(name,name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
+FUNCTION addrasterconstraints(name,name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
+FUNCTION addrasterconstraints(name,name,name,text[])
+FUNCTION addrasterconstraints(name,name,text[])
+FUNCTION _add_raster_constraint_srid(name,name,name)
+FUNCTION addtopogeometrycolumn(character varying,character varying,character varying,character varying,character varying)
+FUNCTION addtopogeometrycolumn(character varying,character varying,character varying,character varying,character varying,integer)
 FUNCTION addtosearchpath(character varying)
-FUNCTION affine(geometry, double precision, double precision, double precision, double precision, double precision, double precision)
-FUNCTION affine(geometry, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision)
+FUNCTION affine(geometry,double precision,double precision,double precision,double precision,double precision,double precision)
+FUNCTION affine(geometry,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision)
 FUNCTION area2d(geometry)
 FUNCTION area(geometry)
 FUNCTION asbinary(geometry)
-FUNCTION asbinary(geometry, text)
+FUNCTION asbinary(geometry,text)
 FUNCTION asewkb(geometry)
-FUNCTION asewkb(geometry, text)
+FUNCTION asewkb(geometry,text)
 FUNCTION asewkt(geometry)
-FUNCTION _asgmledge(integer, integer, integer, public.geometry, regclass, text, integer, integer)
-FUNCTION _asgmledge(integer, integer, integer, public.geometry, regclass, text, integer, integer, text)
-FUNCTION _asgmledge(integer, integer, integer, public.geometry, regclass, text, integer, integer, text, integer)
-FUNCTION _asgmledge(integer, integer, integer, public.geometry, text)
-FUNCTION asgmledge(integer, integer, integer, public.geometry, text)
-FUNCTION _asgmledge(integer, integer, integer, public.geometry, text, integer, integer)
-FUNCTION _asgmlface(text, integer, regclass, text, integer, integer, text, integer)
+FUNCTION _asgmledge(integer,integer,integer,public.geometry,regclass,text,integer,integer)
+FUNCTION _asgmledge(integer,integer,integer,public.geometry,regclass,text,integer,integer,text)
+FUNCTION _asgmledge(integer,integer,integer,public.geometry,regclass,text,integer,integer,text,integer)
+FUNCTION _asgmledge(integer,integer,integer,public.geometry,text)
+FUNCTION asgmledge(integer,integer,integer,public.geometry,text)
+FUNCTION _asgmledge(integer,integer,integer,public.geometry,text,integer,integer)
+FUNCTION _asgmlface(text,integer,regclass,text,integer,integer,text,integer)
 FUNCTION asgml(geometry)
-FUNCTION asgml(geometry, integer)
-FUNCTION asgml(geometry, integer, integer)
-FUNCTION _asgmlnode(integer, public.geometry, text)
-FUNCTION asgmlnode(integer, public.geometry, text)
-FUNCTION _asgmlnode(integer, public.geometry, text, integer, integer)
-FUNCTION _asgmlnode(integer, public.geometry, text, integer, integer, text)
-FUNCTION _asgmlnode(integer, public.geometry, text, integer, integer, text, integer)
+FUNCTION asgml(geometry,integer)
+FUNCTION asgml(geometry,integer,integer)
+FUNCTION _asgmlnode(integer,public.geometry,text)
+FUNCTION asgmlnode(integer,public.geometry,text)
+FUNCTION _asgmlnode(integer,public.geometry,text,integer,integer)
+FUNCTION _asgmlnode(integer,public.geometry,text,integer,integer,text)
+FUNCTION _asgmlnode(integer,public.geometry,text,integer,integer,text,integer)
 FUNCTION asgml(topogeometry)
-FUNCTION asgml(topogeometry, regclass)
-FUNCTION asgml(topogeometry, regclass, text)
-FUNCTION asgml(topogeometry, text)
-FUNCTION asgml(topogeometry, text, integer, integer)
-FUNCTION asgml(topogeometry, text, integer, integer, regclass)
-FUNCTION asgml(topogeometry, text, integer, integer, regclass, text)
-FUNCTION asgml(topogeometry, text, integer, integer, regclass, text, integer)
+FUNCTION asgml(topogeometry,regclass)
+FUNCTION asgml(topogeometry,regclass,text)
+FUNCTION asgml(topogeometry,text)
+FUNCTION asgml(topogeometry,text,integer,integer)
+FUNCTION asgml(topogeometry,text,integer,integer,regclass)
+FUNCTION asgml(topogeometry,text,integer,integer,regclass,text)
+FUNCTION asgml(topogeometry,text,integer,integer,regclass,text,integer)
 FUNCTION ashexewkb(geometry)
-FUNCTION ashexewkb(geometry, text)
+FUNCTION ashexewkb(geometry,text)
 FUNCTION askml(geometry)
-FUNCTION askml(geometry, integer)
-FUNCTION askml(geometry, integer, integer)
-FUNCTION askml(integer, geometry, integer)
+FUNCTION askml(geometry,integer)
+FUNCTION askml(geometry,integer,integer)
+FUNCTION askml(integer,geometry,integer)
 FUNCTION assvg(geometry)
-FUNCTION assvg(geometry, integer)
-FUNCTION assvg(geometry, integer, integer)
+FUNCTION assvg(geometry,integer)
+FUNCTION assvg(geometry,integer,integer)
 FUNCTION astext(geometry)
 FUNCTION asukml(geometry)
-FUNCTION asukml(geometry, integer)
-FUNCTION asukml(geometry, integer, integer)
-FUNCTION azimuth(geometry, geometry)
-FUNCTION bdmpolyfromtext(text, integer)
-FUNCTION bdpolyfromtext(text, integer)
+FUNCTION asukml(geometry,integer)
+FUNCTION asukml(geometry,integer,integer)
+FUNCTION azimuth(geometry,geometry)
+FUNCTION bdmpolyfromtext(text,integer)
+FUNCTION bdpolyfromtext(text,integer)
 FUNCTION boundary(geometry)
 FUNCTION box2d(box3d)
 FUNCTION box2d(box3d_extent)
-FUNCTION box2d_contain(box2d, box2d)
-FUNCTION box2d_contained(box2d, box2d)
+FUNCTION box2d_contain(box2d,box2d)
+FUNCTION box2d_contained(box2d,box2d)
 FUNCTION box2df_in(cstring)
 FUNCTION box2df_out(box2df)
 FUNCTION box2d(geometry)
 FUNCTION box2d_in(cstring)
-FUNCTION box2d_intersects(box2d, box2d)
-FUNCTION box2d_left(box2d, box2d)
+FUNCTION box2d_intersects(box2d,box2d)
+FUNCTION box2d_left(box2d,box2d)
 FUNCTION box2d_out(box2d)
-FUNCTION box2d_overlap(box2d, box2d)
-FUNCTION box2d_overleft(box2d, box2d)
-FUNCTION box2d_overright(box2d, box2d)
+FUNCTION box2d_overlap(box2d,box2d)
+FUNCTION box2d_overleft(box2d,box2d)
+FUNCTION box2d_overright(box2d,box2d)
 FUNCTION box2d(raster)
-FUNCTION box2d_right(box2d, box2d)
-FUNCTION box2d_same(box2d, box2d)
+FUNCTION box2d_right(box2d,box2d)
+FUNCTION box2d_same(box2d,box2d)
 FUNCTION box3d(box2d)
 FUNCTION box3d_extent(box3d_extent)
 FUNCTION box3d_extent_in(cstring)
@@ -1387,103 +1391,103 @@ FUNCTION box3d(raster)
 FUNCTION box3dtobox(box3d)
 FUNCTION box(box3d)
 FUNCTION box(geometry)
-FUNCTION buffer(geometry, double precision)
-FUNCTION buffer(geometry, double precision, integer)
+FUNCTION buffer(geometry,double precision)
+FUNCTION buffer(geometry,double precision,integer)
 FUNCTION buildarea(geometry)
-FUNCTION build_histogram2d(histogram2d, text, text)
-FUNCTION build_histogram2d(histogram2d, text, text, text)
+FUNCTION build_histogram2d(histogram2d,text,text)
+FUNCTION build_histogram2d(histogram2d,text,text,text)
 FUNCTION bytea(geography)
 FUNCTION bytea(geometry)
 FUNCTION bytea(raster)
 FUNCTION cache_bbox()
 FUNCTION centroid(geometry)
-FUNCTION checkauth(text, text)
-FUNCTION checkauth(text, text, text)
+FUNCTION checkauth(text,text)
+FUNCTION checkauth(text,text,text)
 FUNCTION checkauthtrigger()
 FUNCTION chip_in(cstring)
 FUNCTION chip_out(chip)
 FUNCTION collect_garray(geometry[])
-FUNCTION collect(geometry, geometry)
-FUNCTION collector(geometry, geometry)
-FUNCTION combine_bbox(box2d, geometry)
-FUNCTION combine_bbox(box3d_extent, geometry)
-FUNCTION combine_bbox(box3d, geometry)
+FUNCTION collect(geometry,geometry)
+FUNCTION collector(geometry,geometry)
+FUNCTION combine_bbox(box2d,geometry)
+FUNCTION combine_bbox(box3d_extent,geometry)
+FUNCTION combine_bbox(box3d,geometry)
 FUNCTION compression(chip)
-FUNCTION contains(geometry, geometry)
+FUNCTION contains(geometry,geometry)
 FUNCTION convexhull(geometry)
-FUNCTION copytopology(character varying, character varying)
-FUNCTION create_histogram2d(box2d, integer)
-FUNCTION createtopogeom(character varying, integer, integer)
-FUNCTION createtopogeom(character varying, integer, integer, topoelementarray)
+FUNCTION copytopology(character varying,character varying)
+FUNCTION create_histogram2d(box2d,integer)
+FUNCTION createtopogeom(character varying,integer,integer)
+FUNCTION createtopogeom(character varying,integer,integer,topoelementarray)
 FUNCTION createtopology(character varying)
-FUNCTION createtopology(character varying, integer)
-FUNCTION createtopology(character varying, integer, double precision)
-FUNCTION createtopology(character varying, integer, double precision, boolean)
-FUNCTION crosses(geometry, geometry)
+FUNCTION createtopology(character varying,integer)
+FUNCTION createtopology(character varying,integer,double precision)
+FUNCTION createtopology(character varying,integer,double precision,boolean)
+FUNCTION crosses(geometry,geometry)
 FUNCTION datatype(chip)
-FUNCTION difference(geometry, geometry)
+FUNCTION difference(geometry,geometry)
 FUNCTION dimension(geometry)
 FUNCTION disablelongtransactions()
-FUNCTION disjoint(geometry, geometry)
-FUNCTION distance(geometry, geometry)
-FUNCTION distance_sphere(geometry, geometry)
-FUNCTION distance_spheroid(geometry, geometry, spheroid)
+FUNCTION disjoint(geometry,geometry)
+FUNCTION distance(geometry,geometry)
+FUNCTION distance_sphere(geometry,geometry)
+FUNCTION distance_spheroid(geometry,geometry,spheroid)
 FUNCTION dropbbox(geometry)
-FUNCTION dropgeometrycolumn(character varying, character varying)
-FUNCTION dropgeometrycolumn(character varying, character varying, character varying)
-FUNCTION dropgeometrycolumn(character varying, character varying, character varying, character varying)
+FUNCTION dropgeometrycolumn(character varying,character varying)
+FUNCTION dropgeometrycolumn(character varying,character varying,character varying)
+FUNCTION dropgeometrycolumn(character varying,character varying,character varying,character varying)
 FUNCTION dropgeometrytable(character varying)
-FUNCTION dropgeometrytable(character varying, character varying)
-FUNCTION dropgeometrytable(character varying, character varying, character varying)
-FUNCTION _drop_overview_constraint(name, name, name)
-FUNCTION dropoverviewconstraints(name, name)
-FUNCTION dropoverviewconstraints(name, name, name)
-FUNCTION droprastercolumn(character varying, character varying)
-FUNCTION droprastercolumn(character varying, character varying, character varying)
-FUNCTION droprastercolumn(character varying, character varying, character varying, character varying)
-FUNCTION _drop_raster_constraint_alignment(name, name, name)
-FUNCTION _drop_raster_constraint_blocksize(name, name, name, text)
-FUNCTION _drop_raster_constraint_extent(name, name, name)
-FUNCTION _drop_raster_constraint(name, name, name)
-FUNCTION _drop_raster_constraint_nodata_values(name, name, name)
-FUNCTION _drop_raster_constraint_num_bands(name, name, name)
-FUNCTION _drop_raster_constraint_out_db(name, name, name)
-FUNCTION _drop_raster_constraint_pixel_types(name, name, name)
-FUNCTION _drop_raster_constraint_regular_blocking(name, name, name)
-FUNCTION _drop_raster_constraint_scale(name, name, name, character)
-FUNCTION droprasterconstraints(name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)
-FUNCTION droprasterconstraints(name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)
-FUNCTION droprasterconstraints(name, name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)
-FUNCTION droprasterconstraints(name, name, name, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)
-FUNCTION droprasterconstraints(name, name, name, text[])
-FUNCTION droprasterconstraints(name, name, text[])
-FUNCTION _drop_raster_constraint_srid(name, name, name)
+FUNCTION dropgeometrytable(character varying,character varying)
+FUNCTION dropgeometrytable(character varying,character varying,character varying)
+FUNCTION _drop_overview_constraint(name,name,name)
+FUNCTION dropoverviewconstraints(name,name)
+FUNCTION dropoverviewconstraints(name,name,name)
+FUNCTION droprastercolumn(character varying,character varying)
+FUNCTION droprastercolumn(character varying,character varying,character varying)
+FUNCTION droprastercolumn(character varying,character varying,character varying,character varying)
+FUNCTION _drop_raster_constraint_alignment(name,name,name)
+FUNCTION _drop_raster_constraint_blocksize(name,name,name,text)
+FUNCTION _drop_raster_constraint_extent(name,name,name)
+FUNCTION _drop_raster_constraint(name,name,name)
+FUNCTION _drop_raster_constraint_nodata_values(name,name,name)
+FUNCTION _drop_raster_constraint_num_bands(name,name,name)
+FUNCTION _drop_raster_constraint_out_db(name,name,name)
+FUNCTION _drop_raster_constraint_pixel_types(name,name,name)
+FUNCTION _drop_raster_constraint_regular_blocking(name,name,name)
+FUNCTION _drop_raster_constraint_scale(name,name,name,character)
+FUNCTION droprasterconstraints(name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
+FUNCTION droprasterconstraints(name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
+FUNCTION droprasterconstraints(name,name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
+FUNCTION droprasterconstraints(name,name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
+FUNCTION droprasterconstraints(name,name,name,text[])
+FUNCTION droprasterconstraints(name,name,text[])
+FUNCTION _drop_raster_constraint_srid(name,name,name)
 FUNCTION droprastertable(character varying)
-FUNCTION droprastertable(character varying, character varying)
-FUNCTION droprastertable(character varying, character varying, character varying)
-FUNCTION droptopogeometrycolumn(character varying, character varying, character varying)
+FUNCTION droprastertable(character varying,character varying)
+FUNCTION droprastertable(character varying,character varying,character varying)
+FUNCTION droptopogeometrycolumn(character varying,character varying,character varying)
 FUNCTION droptopology(character varying)
-FUNCTION dumpaswktpolygons(raster, integer)
+FUNCTION dumpaswktpolygons(raster,integer)
 FUNCTION dump(geometry)
 FUNCTION dumprings(geometry)
 FUNCTION enablelongtransactions()
 FUNCTION endpoint(geometry)
 FUNCTION envelope(geometry)
 FUNCTION envelope(topogeometry)
-FUNCTION equals(geometry, geometry)
-FUNCTION equals(topogeometry, topogeometry)
-FUNCTION estimated_extent(text, text)
-FUNCTION estimated_extent(text, text, text)
-FUNCTION estimate_histogram2d(histogram2d, box2d)
-FUNCTION expand(box2d, double precision)
-FUNCTION expand(box3d, double precision)
-FUNCTION expand(geometry, double precision)
-FUNCTION explode_histogram2d(histogram2d, text)
+FUNCTION equals(geometry,geometry)
+FUNCTION equals(topogeometry,topogeometry)
+FUNCTION estimated_extent(text,text)
+FUNCTION estimated_extent(text,text,text)
+FUNCTION estimate_histogram2d(histogram2d,box2d)
+FUNCTION expand(box2d,double precision)
+FUNCTION expand(box3d,double precision)
+FUNCTION expand(geometry,double precision)
+FUNCTION explode_histogram2d(histogram2d,text)
 FUNCTION exteriorring(geometry)
 FUNCTION factor(chip)
-FUNCTION find_extent(text, text)
-FUNCTION find_extent(text, text, text)
-FUNCTION find_srid(character varying, character varying, character varying)
+FUNCTION find_extent(text,text)
+FUNCTION find_extent(text,text,text)
+FUNCTION find_srid(character varying,character varying,character varying)
 FUNCTION fix_geometry_columns()
 FUNCTION force_2d(geometry)
 FUNCTION force_3d(geometry)
@@ -1494,98 +1498,98 @@ FUNCTION force_collection(geometry)
 FUNCTION forcerhr(geometry)
 FUNCTION geography_analyze(internal)
 FUNCTION geography(bytea)
-FUNCTION geography_cmp(geography, geography)
-FUNCTION geography_eq(geography, geography)
-FUNCTION geography_ge(geography, geography)
-FUNCTION geography(geography, integer, boolean)
+FUNCTION geography_cmp(geography,geography)
+FUNCTION geography_eq(geography,geography)
+FUNCTION geography_ge(geography,geography)
+FUNCTION geography(geography,integer,boolean)
 FUNCTION geography(geometry)
 FUNCTION geography_gist_compress(internal)
-FUNCTION geography_gist_consistent(internal, geography, integer)
-FUNCTION geography_gist_consistent(internal, geometry, integer)
+FUNCTION geography_gist_consistent(internal,geography,integer)
+FUNCTION geography_gist_consistent(internal,geometry,integer)
 FUNCTION geography_gist_decompress(internal)
-FUNCTION geography_gist_join_selectivity(internal, oid, internal, smallint)
-FUNCTION geography_gist_penalty(internal, internal, internal)
-FUNCTION geography_gist_picksplit(internal, internal)
-FUNCTION geography_gist_same(box2d, box2d, internal)
-FUNCTION geography_gist_selectivity(internal, oid, internal, integer)
-FUNCTION geography_gist_union(bytea, internal)
-FUNCTION geography_gt(geography, geography)
-FUNCTION geography_in(cstring, oid, integer)
-FUNCTION geography_le(geography, geography)
-FUNCTION geography_lt(geography, geography)
+FUNCTION geography_gist_join_selectivity(internal,oid,internal,smallint)
+FUNCTION geography_gist_penalty(internal,internal,internal)
+FUNCTION geography_gist_picksplit(internal,internal)
+FUNCTION geography_gist_same(box2d,box2d,internal)
+FUNCTION geography_gist_selectivity(internal,oid,internal,integer)
+FUNCTION geography_gist_union(bytea,internal)
+FUNCTION geography_gt(geography,geography)
+FUNCTION geography_in(cstring,oid,integer)
+FUNCTION geography_le(geography,geography)
+FUNCTION geography_lt(geography,geography)
 FUNCTION geography_out(geography)
-FUNCTION geography_overlaps(geography, geography)
-FUNCTION geography_recv(internal, oid, integer)
+FUNCTION geography_overlaps(geography,geography)
+FUNCTION geography_recv(internal,oid,integer)
 FUNCTION geography_send(geography)
 FUNCTION geography_typmod_dims(integer)
 FUNCTION geography_typmod_in(cstring[])
 FUNCTION geography_typmod_out(integer)
 FUNCTION geography_typmod_srid(integer)
 FUNCTION geography_typmod_type(integer)
-FUNCTION geom_accum(geometry[], geometry)
+FUNCTION geom_accum(geometry[],geometry)
 FUNCTION geomcollfromtext(text)
-FUNCTION geomcollfromtext(text, integer)
+FUNCTION geomcollfromtext(text,integer)
 FUNCTION geomcollfromwkb(bytea)
-FUNCTION geomcollfromwkb(bytea, integer)
-FUNCTION geometry_above(geometry, geometry)
+FUNCTION geomcollfromwkb(bytea,integer)
+FUNCTION geometry_above(geometry,geometry)
 FUNCTION geometry_analyze(internal)
-FUNCTION geometry_below(geometry, geometry)
+FUNCTION geometry_below(geometry,geometry)
 FUNCTION geometry(box2d)
 FUNCTION geometry(box3d)
 FUNCTION geometry(box3d_extent)
 FUNCTION geometry(bytea)
 FUNCTION geometry(chip)
-FUNCTION geometry_cmp(geometry, geometry)
-FUNCTION geometry_contained(geometry, geometry)
-FUNCTION geometry_contain(geometry, geometry)
-FUNCTION geometry_contains(geometry, geometry)
-FUNCTION geometry_distance_box(geometry, geometry)
-FUNCTION geometry_distance_centroid(geometry, geometry)
-FUNCTION geometry_eq(geometry, geometry)
+FUNCTION geometry_cmp(geometry,geometry)
+FUNCTION geometry_contained(geometry,geometry)
+FUNCTION geometry_contain(geometry,geometry)
+FUNCTION geometry_contains(geometry,geometry)
+FUNCTION geometry_distance_box(geometry,geometry)
+FUNCTION geometry_distance_centroid(geometry,geometry)
+FUNCTION geometry_eq(geometry,geometry)
 FUNCTION geometryfromtext(text)
-FUNCTION geometryfromtext(text, integer)
-FUNCTION geometry_ge(geometry, geometry)
+FUNCTION geometryfromtext(text,integer)
+FUNCTION geometry_ge(geometry,geometry)
 FUNCTION geometry(geography)
-FUNCTION geometry(geometry, integer, boolean)
+FUNCTION geometry(geometry,integer,boolean)
 FUNCTION geometry_gist_compress_2d(internal)
 FUNCTION geometry_gist_compress_nd(internal)
-FUNCTION geometry_gist_consistent_2d(internal, geometry, integer)
-FUNCTION geometry_gist_consistent_nd(internal, geometry, integer)
+FUNCTION geometry_gist_consistent_2d(internal,geometry,integer)
+FUNCTION geometry_gist_consistent_nd(internal,geometry,integer)
 FUNCTION geometry_gist_decompress_2d(internal)
 FUNCTION geometry_gist_decompress_nd(internal)
-FUNCTION geometry_gist_distance_2d(internal, geometry, integer)
-FUNCTION geometry_gist_joinsel_2d(internal, oid, internal, smallint)
-FUNCTION geometry_gist_joinsel(internal, oid, internal, smallint)
-FUNCTION geometry_gist_penalty_2d(internal, internal, internal)
-FUNCTION geometry_gist_penalty_nd(internal, internal, internal)
-FUNCTION geometry_gist_picksplit_2d(internal, internal)
-FUNCTION geometry_gist_picksplit_nd(internal, internal)
-FUNCTION geometry_gist_same_2d(geometry, geometry, internal)
-FUNCTION geometry_gist_same_nd(geometry, geometry, internal)
-FUNCTION geometry_gist_sel_2d(internal, oid, internal, integer)
-FUNCTION geometry_gist_sel(internal, oid, internal, integer)
-FUNCTION geometry_gist_union_2d(bytea, internal)
-FUNCTION geometry_gist_union_nd(bytea, internal)
-FUNCTION geometry_gt(geometry, geometry)
+FUNCTION geometry_gist_distance_2d(internal,geometry,integer)
+FUNCTION geometry_gist_joinsel_2d(internal,oid,internal,smallint)
+FUNCTION geometry_gist_joinsel(internal,oid,internal,smallint)
+FUNCTION geometry_gist_penalty_2d(internal,internal,internal)
+FUNCTION geometry_gist_penalty_nd(internal,internal,internal)
+FUNCTION geometry_gist_picksplit_2d(internal,internal)
+FUNCTION geometry_gist_picksplit_nd(internal,internal)
+FUNCTION geometry_gist_same_2d(geometry,geometry,internal)
+FUNCTION geometry_gist_same_nd(geometry,geometry,internal)
+FUNCTION geometry_gist_sel_2d(internal,oid,internal,integer)
+FUNCTION geometry_gist_sel(internal,oid,internal,integer)
+FUNCTION geometry_gist_union_2d(bytea,internal)
+FUNCTION geometry_gist_union_nd(bytea,internal)
+FUNCTION geometry_gt(geometry,geometry)
 FUNCTION geometry_in(cstring)
-FUNCTION geometry_left(geometry, geometry)
-FUNCTION geometry_le(geometry, geometry)
-FUNCTION geometry_lt(geometry, geometry)
-FUNCTION geometryn(geometry, integer)
+FUNCTION geometry_left(geometry,geometry)
+FUNCTION geometry_le(geometry,geometry)
+FUNCTION geometry_lt(geometry,geometry)
+FUNCTION geometryn(geometry,integer)
 FUNCTION geometry_out(geometry)
-FUNCTION geometry_overabove(geometry, geometry)
-FUNCTION geometry_overbelow(geometry, geometry)
-FUNCTION geometry_overlap(geometry, geometry)
-FUNCTION geometry_overlaps(geometry, geometry)
-FUNCTION geometry_overlaps_nd(geometry, geometry)
-FUNCTION geometry_overleft(geometry, geometry)
-FUNCTION geometry_overright(geometry, geometry)
-FUNCTION geometry_raster_contain(geometry, raster)
-FUNCTION geometry_raster_overlap(geometry, raster)
+FUNCTION geometry_overabove(geometry,geometry)
+FUNCTION geometry_overbelow(geometry,geometry)
+FUNCTION geometry_overlap(geometry,geometry)
+FUNCTION geometry_overlaps(geometry,geometry)
+FUNCTION geometry_overlaps_nd(geometry,geometry)
+FUNCTION geometry_overleft(geometry,geometry)
+FUNCTION geometry_overright(geometry,geometry)
+FUNCTION geometry_raster_contain(geometry,raster)
+FUNCTION geometry_raster_overlap(geometry,raster)
 FUNCTION geometry_recv(internal)
-FUNCTION geometry_right(geometry, geometry)
-FUNCTION geometry_samebox(geometry, geometry)
-FUNCTION geometry_same(geometry, geometry)
+FUNCTION geometry_right(geometry,geometry)
+FUNCTION geometry_samebox(geometry,geometry)
+FUNCTION geometry_same(geometry,geometry)
 FUNCTION geometry_send(geometry)
 FUNCTION geometry(text)
 FUNCTION geometry(topogeometry)
@@ -1594,25 +1598,25 @@ FUNCTION geometrytype(geometry)
 FUNCTION geometrytype(topogeometry)
 FUNCTION geometry_typmod_in(cstring[])
 FUNCTION geometry_typmod_out(integer)
-FUNCTION geometry_within(geometry, geometry)
+FUNCTION geometry_within(geometry,geometry)
 FUNCTION geomfromewkb(bytea)
 FUNCTION geomfromewkt(text)
 FUNCTION geomfromtext(text)
-FUNCTION geomfromtext(text, integer)
+FUNCTION geomfromtext(text,integer)
 FUNCTION geomfromwkb(bytea)
-FUNCTION geomfromwkb(bytea, integer)
-FUNCTION geomunion(geometry, geometry)
+FUNCTION geomfromwkb(bytea,integer)
+FUNCTION geomunion(geometry,geometry)
 FUNCTION geosnoop(geometry)
 FUNCTION getbbox(geometry)
-FUNCTION getedgebypoint(character varying, public.geometry, double precision)
-FUNCTION getfacebypoint(character varying, public.geometry, double precision)
-FUNCTION getnodebypoint(character varying, public.geometry, double precision)
+FUNCTION getedgebypoint(character varying,public.geometry,double precision)
+FUNCTION getfacebypoint(character varying,public.geometry,double precision)
+FUNCTION getnodebypoint(character varying,public.geometry,double precision)
 FUNCTION get_proj4_from_srid(integer)
-FUNCTION getringedges(character varying, integer, integer)
+FUNCTION getringedges(character varying,integer,integer)
 FUNCTION getsrid(geometry)
-FUNCTION gettopogeomelementarray(character varying, integer, integer)
+FUNCTION gettopogeomelementarray(character varying,integer,integer)
 FUNCTION gettopogeomelementarray(topogeometry)
-FUNCTION gettopogeomelements(character varying, integer, integer)
+FUNCTION gettopogeomelements(character varying,integer,integer)
 FUNCTION gettopogeomelements(topogeometry)
 FUNCTION gettopologyid(character varying)
 FUNCTION gettopologyname(integer)
@@ -1623,10 +1627,10 @@ FUNCTION hasbbox(geometry)
 FUNCTION height(chip)
 FUNCTION histogram2d_in(cstring)
 FUNCTION histogram2d_out(histogram2d)
-FUNCTION interiorringn(geometry, integer)
-FUNCTION intersection(geometry, geometry)
-FUNCTION intersects(geometry, geometry)
-FUNCTION intersects(topogeometry, topogeometry)
+FUNCTION interiorringn(geometry,integer)
+FUNCTION intersection(geometry,geometry)
+FUNCTION intersects(geometry,geometry)
+FUNCTION intersects(topogeometry,topogeometry)
 FUNCTION isclosed(geometry)
 FUNCTION isempty(geometry)
 FUNCTION isring(geometry)
@@ -1635,86 +1639,86 @@ FUNCTION isvalid(geometry)
 FUNCTION jtsnoop(geometry)
 FUNCTION layertrigger()
 FUNCTION length2d(geometry)
-FUNCTION length2d_spheroid(geometry, spheroid)
+FUNCTION length2d_spheroid(geometry,spheroid)
 FUNCTION length3d(geometry)
-FUNCTION length3d_spheroid(geometry, spheroid)
+FUNCTION length3d_spheroid(geometry,spheroid)
 FUNCTION length(geometry)
-FUNCTION length_spheroid(geometry, spheroid)
+FUNCTION length_spheroid(geometry,spheroid)
 FUNCTION linefrommultipoint(geometry)
 FUNCTION linefromtext(text)
-FUNCTION linefromtext(text, integer)
+FUNCTION linefromtext(text,integer)
 FUNCTION linefromwkb(bytea)
-FUNCTION linefromwkb(bytea, integer)
-FUNCTION line_interpolate_point(geometry, double precision)
-FUNCTION line_locate_point(geometry, geometry)
+FUNCTION linefromwkb(bytea,integer)
+FUNCTION line_interpolate_point(geometry,double precision)
+FUNCTION line_locate_point(geometry,geometry)
 FUNCTION linemerge(geometry)
 FUNCTION linestringfromtext(text)
-FUNCTION linestringfromtext(text, integer)
+FUNCTION linestringfromtext(text,integer)
 FUNCTION linestringfromwkb(bytea)
-FUNCTION linestringfromwkb(bytea, integer)
-FUNCTION line_substring(geometry, double precision, double precision)
-FUNCTION locate_along_measure(geometry, double precision)
-FUNCTION locate_between_measures(geometry, double precision, double precision)
-FUNCTION lockrow(text, text, text)
-FUNCTION lockrow(text, text, text, text)
-FUNCTION lockrow(text, text, text, text, timestamp without time zone)
-FUNCTION lockrow(text, text, text, timestamp without time zone)
+FUNCTION linestringfromwkb(bytea,integer)
+FUNCTION line_substring(geometry,double precision,double precision)
+FUNCTION locate_along_measure(geometry,double precision)
+FUNCTION locate_between_measures(geometry,double precision,double precision)
+FUNCTION lockrow(text,text,text)
+FUNCTION lockrow(text,text,text,text)
+FUNCTION lockrow(text,text,text,text,timestamp without time zone)
+FUNCTION lockrow(text,text,text,timestamp without time zone)
 FUNCTION longtransactionsenabled()
 FUNCTION lwgeom_gist_compress(internal)
-FUNCTION lwgeom_gist_consistent(internal, geometry, integer)
+FUNCTION lwgeom_gist_consistent(internal,geometry,integer)
 FUNCTION lwgeom_gist_decompress(internal)
-FUNCTION lwgeom_gist_penalty(internal, internal, internal)
-FUNCTION lwgeom_gist_picksplit(internal, internal)
-FUNCTION lwgeom_gist_same(box2d, box2d, internal)
-FUNCTION lwgeom_gist_union(bytea, internal)
-FUNCTION makebox2d(geometry, geometry)
-FUNCTION makebox3d(geometry, geometry)
+FUNCTION lwgeom_gist_penalty(internal,internal,internal)
+FUNCTION lwgeom_gist_picksplit(internal,internal)
+FUNCTION lwgeom_gist_same(box2d,box2d,internal)
+FUNCTION lwgeom_gist_union(bytea,internal)
+FUNCTION makebox2d(geometry,geometry)
+FUNCTION makebox3d(geometry,geometry)
 FUNCTION makeline_garray(geometry[])
-FUNCTION makeline(geometry, geometry)
-FUNCTION makepoint(double precision, double precision)
-FUNCTION makepoint(double precision, double precision, double precision)
-FUNCTION makepoint(double precision, double precision, double precision, double precision)
-FUNCTION makepointm(double precision, double precision, double precision)
+FUNCTION makeline(geometry,geometry)
+FUNCTION makepoint(double precision,double precision)
+FUNCTION makepoint(double precision,double precision,double precision)
+FUNCTION makepoint(double precision,double precision,double precision,double precision)
+FUNCTION makepointm(double precision,double precision,double precision)
 FUNCTION makepolygon(geometry)
-FUNCTION makepolygon(geometry, geometry[])
+FUNCTION makepolygon(geometry,geometry[])
 FUNCTION mapalgebra4unionfinal1(rastexpr)
 FUNCTION mapalgebra4unionfinal3(rastexpr)
-FUNCTION mapalgebra4unionstate(raster, raster, text, text, text, double precision, text, text, text, double precision)
-FUNCTION mapalgebra4unionstate(rastexpr, raster)
-FUNCTION mapalgebra4unionstate(rastexpr, raster, text)
-FUNCTION mapalgebra4unionstate(rastexpr, raster, text, text)
-FUNCTION mapalgebra4unionstate(rastexpr, raster, text, text, text)
-FUNCTION mapalgebra4unionstate(rastexpr, raster, text, text, text, double precision)
-FUNCTION mapalgebra4unionstate(rastexpr, raster, text, text, text, double precision, text, text, text, double precision)
-FUNCTION mapalgebra4unionstate(rastexpr, raster, text, text, text, double precision, text, text, text, double precision, text, text, text, double precision)
-FUNCTION max_distance(geometry, geometry)
+FUNCTION mapalgebra4unionstate(raster,raster,text,text,text,double precision,text,text,text,double precision)
+FUNCTION mapalgebra4unionstate(rastexpr,raster)
+FUNCTION mapalgebra4unionstate(rastexpr,raster,text)
+FUNCTION mapalgebra4unionstate(rastexpr,raster,text,text)
+FUNCTION mapalgebra4unionstate(rastexpr,raster,text,text,text)
+FUNCTION mapalgebra4unionstate(rastexpr,raster,text,text,text,double precision)
+FUNCTION mapalgebra4unionstate(rastexpr,raster,text,text,text,double precision,text,text,text,double precision)
+FUNCTION mapalgebra4unionstate(rastexpr,raster,text,text,text,double precision,text,text,text,double precision,text,text,text,double precision)
+FUNCTION max_distance(geometry,geometry)
 FUNCTION mem_size(geometry)
 FUNCTION m(geometry)
 FUNCTION mlinefromtext(text)
-FUNCTION mlinefromtext(text, integer)
+FUNCTION mlinefromtext(text,integer)
 FUNCTION mlinefromwkb(bytea)
-FUNCTION mlinefromwkb(bytea, integer)
+FUNCTION mlinefromwkb(bytea,integer)
 FUNCTION mpointfromtext(text)
-FUNCTION mpointfromtext(text, integer)
+FUNCTION mpointfromtext(text,integer)
 FUNCTION mpointfromwkb(bytea)
-FUNCTION mpointfromwkb(bytea, integer)
+FUNCTION mpointfromwkb(bytea,integer)
 FUNCTION mpolyfromtext(text)
-FUNCTION mpolyfromtext(text, integer)
+FUNCTION mpolyfromtext(text,integer)
 FUNCTION mpolyfromwkb(bytea)
-FUNCTION mpolyfromwkb(bytea, integer)
+FUNCTION mpolyfromwkb(bytea,integer)
 FUNCTION multi(geometry)
 FUNCTION multilinefromwkb(bytea)
-FUNCTION multilinefromwkb(bytea, integer)
+FUNCTION multilinefromwkb(bytea,integer)
 FUNCTION multilinestringfromtext(text)
-FUNCTION multilinestringfromtext(text, integer)
+FUNCTION multilinestringfromtext(text,integer)
 FUNCTION multipointfromtext(text)
-FUNCTION multipointfromtext(text, integer)
+FUNCTION multipointfromtext(text,integer)
 FUNCTION multipointfromwkb(bytea)
-FUNCTION multipointfromwkb(bytea, integer)
+FUNCTION multipointfromwkb(bytea,integer)
 FUNCTION multipolyfromwkb(bytea)
-FUNCTION multipolyfromwkb(bytea, integer)
+FUNCTION multipolyfromwkb(bytea,integer)
 FUNCTION multipolygonfromtext(text)
-FUNCTION multipolygonfromtext(text, integer)
+FUNCTION multipolygonfromtext(text,integer)
 FUNCTION ndims(geometry)
 FUNCTION noop(geometry)
 FUNCTION npoints(geometry)
@@ -1723,59 +1727,59 @@ FUNCTION numgeometries(geometry)
 FUNCTION numinteriorring(geometry)
 FUNCTION numinteriorrings(geometry)
 FUNCTION numpoints(geometry)
-FUNCTION overlaps(geometry, geometry)
-FUNCTION _overview_constraint_info(name, name, name)
-FUNCTION _overview_constraint(raster, integer, name, name, name)
+FUNCTION overlaps(geometry,geometry)
+FUNCTION _overview_constraint_info(name,name,name)
+FUNCTION _overview_constraint(raster,integer,name,name,name)
 FUNCTION perimeter2d(geometry)
 FUNCTION perimeter3d(geometry)
 FUNCTION perimeter(geometry)
 FUNCTION pgis_abs_in(cstring)
 FUNCTION pgis_abs_out(pgis_abs)
 FUNCTION pgis_geometry_accum_finalfn(pgis_abs)
-FUNCTION pgis_geometry_accum_transfn(pgis_abs, geometry)
+FUNCTION pgis_geometry_accum_transfn(pgis_abs,geometry)
 FUNCTION pgis_geometry_collect_finalfn(pgis_abs)
 FUNCTION pgis_geometry_makeline_finalfn(pgis_abs)
 FUNCTION pgis_geometry_polygonize_finalfn(pgis_abs)
 FUNCTION pgis_geometry_union_finalfn(pgis_abs)
 FUNCTION pointfromtext(text)
-FUNCTION pointfromtext(text, integer)
+FUNCTION pointfromtext(text,integer)
 FUNCTION pointfromwkb(bytea)
-FUNCTION pointfromwkb(bytea, integer)
-FUNCTION point_inside_circle(geometry, double precision, double precision, double precision)
-FUNCTION pointn(geometry, integer)
+FUNCTION pointfromwkb(bytea,integer)
+FUNCTION point_inside_circle(geometry,double precision,double precision,double precision)
+FUNCTION pointn(geometry,integer)
 FUNCTION pointonsurface(geometry)
 FUNCTION polyfromtext(text)
-FUNCTION polyfromtext(text, integer)
+FUNCTION polyfromtext(text,integer)
 FUNCTION polyfromwkb(bytea)
-FUNCTION polyfromwkb(bytea, integer)
+FUNCTION polyfromwkb(bytea,integer)
 FUNCTION polygonfromtext(text)
-FUNCTION polygonfromtext(text, integer)
+FUNCTION polygonfromtext(text,integer)
 FUNCTION polygonfromwkb(bytea)
-FUNCTION polygonfromwkb(bytea, integer)
+FUNCTION polygonfromwkb(bytea,integer)
 FUNCTION polygonize(character varying)
 FUNCTION polygonize_garray(geometry[])
 FUNCTION populate_geometry_columns()
 FUNCTION populate_geometry_columns(boolean)
 FUNCTION populate_geometry_columns(oid)
-FUNCTION populate_geometry_columns(oid, boolean)
+FUNCTION populate_geometry_columns(oid,boolean)
 FUNCTION postgis_addbbox(geometry)
 FUNCTION postgis_cache_bbox()
-FUNCTION postgis_constraint_dims(text, text, text)
-FUNCTION postgis_constraint_srid(text, text, text)
-FUNCTION postgis_constraint_type(text, text, text)
+FUNCTION postgis_constraint_dims(text,text,text)
+FUNCTION postgis_constraint_srid(text,text,text)
+FUNCTION postgis_constraint_type(text,text,text)
 FUNCTION postgis_dropbbox(geometry)
 FUNCTION postgis_full_version()
 FUNCTION postgis_gdal_version()
 FUNCTION postgis_geos_version()
 FUNCTION postgis_getbbox(geometry)
-FUNCTION postgis_gist_joinsel(internal, oid, internal, smallint)
-FUNCTION postgis_gist_sel(internal, oid, internal, integer)
+FUNCTION postgis_gist_joinsel(internal,oid,internal,smallint)
+FUNCTION postgis_gist_sel(internal,oid,internal,integer)
 FUNCTION postgis_hasbbox(geometry)
 FUNCTION postgis_jts_version()
 FUNCTION postgis_lib_build_date()
+FUNCTION postgis_libjson_version()
 FUNCTION postgis_lib_version()
 FUNCTION postgis_libxml_version()
-FUNCTION postgis_libjson_version()
 FUNCTION postgis_noop(geometry)
 FUNCTION postgis_proj_version()
 FUNCTION postgis_raster_lib_build_date()
@@ -1785,313 +1789,331 @@ FUNCTION postgis_scripts_build_date()
 FUNCTION postgis_scripts_installed()
 FUNCTION postgis_scripts_released()
 FUNCTION postgis_topology_scripts_installed()
-FUNCTION postgis_transform_geometry(geometry, text, text, integer)
-FUNCTION postgis_type_name(character varying, integer, boolean)
+FUNCTION postgis_transform_geometry(geometry,text,text,integer)
+FUNCTION postgis_type_name(character varying,integer,boolean)
 FUNCTION postgis_typmod_dims(integer)
 FUNCTION postgis_typmod_srid(integer)
 FUNCTION postgis_typmod_type(integer)
 FUNCTION postgis_uses_stats()
 FUNCTION postgis_version()
 FUNCTION probe_geometry_columns()
-FUNCTION raster_above(raster, raster)
-FUNCTION raster_below(raster, raster)
-FUNCTION _raster_constraint_info_alignment(name, name, name)
-FUNCTION _raster_constraint_info_blocksize(name, name, name, text)
-FUNCTION _raster_constraint_info_extent(name, name, name)
-FUNCTION _raster_constraint_info_nodata_values(name, name, name)
-FUNCTION _raster_constraint_info_num_bands(name, name, name)
-FUNCTION _raster_constraint_info_out_db(name, name, name)
-FUNCTION _raster_constraint_info_pixel_types(name, name, name)
-FUNCTION _raster_constraint_info_regular_blocking(name, name, name)
-FUNCTION _raster_constraint_info_scale(name, name, name, character)
-FUNCTION _raster_constraint_info_srid(name, name, name)
+FUNCTION raster_above(raster,raster)
+FUNCTION raster_below(raster,raster)
+FUNCTION _raster_constraint_info_alignment(name,name,name)
+FUNCTION _raster_constraint_info_blocksize(name,name,name,text)
+FUNCTION _raster_constraint_info_extent(name,name,name)
+FUNCTION _raster_constraint_info_nodata_values(name,name,name)
+FUNCTION _raster_constraint_info_num_bands(name,name,name)
+FUNCTION _raster_constraint_info_out_db(name,name,name)
+FUNCTION _raster_constraint_info_pixel_types(name,name,name)
+FUNCTION _raster_constraint_info_regular_blocking(name,name,name)
+FUNCTION _raster_constraint_info_scale(name,name,name,character)
+FUNCTION _raster_constraint_info_srid(name,name,name)
 FUNCTION _raster_constraint_nodata_values(raster)
 FUNCTION _raster_constraint_out_db(raster)
 FUNCTION _raster_constraint_pixel_types(raster)
-FUNCTION raster_contained(raster, raster)
-FUNCTION raster_contain(raster, raster)
-FUNCTION raster_geometry_contain(raster, geometry)
-FUNCTION raster_geometry_overlap(raster, geometry)
+FUNCTION raster_contained(raster,raster)
+FUNCTION raster_contain(raster,raster)
+FUNCTION raster_geometry_contain(raster,geometry)
+FUNCTION raster_geometry_overlap(raster,geometry)
 FUNCTION raster_in(cstring)
-FUNCTION raster_left(raster, raster)
+FUNCTION raster_left(raster,raster)
 FUNCTION raster_out(raster)
-FUNCTION raster_overabove(raster, raster)
-FUNCTION raster_overbelow(raster, raster)
-FUNCTION raster_overlap(raster, raster)
-FUNCTION raster_overleft(raster, raster)
-FUNCTION raster_overright(raster, raster)
-FUNCTION raster_right(raster, raster)
-FUNCTION raster_same(raster, raster)
-FUNCTION relate(geometry, geometry)
-FUNCTION relate(geometry, geometry, text)
+FUNCTION raster_overabove(raster,raster)
+FUNCTION raster_overbelow(raster,raster)
+FUNCTION raster_overlap(raster,raster)
+FUNCTION raster_overleft(raster,raster)
+FUNCTION raster_overright(raster,raster)
+FUNCTION raster_right(raster,raster)
+FUNCTION raster_same(raster,raster)
+FUNCTION relate(geometry,geometry)
+FUNCTION relate(geometry,geometry,text)
 FUNCTION relationtrigger()
-FUNCTION removepoint(geometry, integer)
+FUNCTION removepoint(geometry,integer)
 FUNCTION rename_geometry_table_constraints()
+FUNCTION _rename_raster_tables()
 FUNCTION reverse(geometry)
-FUNCTION rotate(geometry, double precision)
-FUNCTION rotatex(geometry, double precision)
-FUNCTION rotatey(geometry, double precision)
-FUNCTION rotatez(geometry, double precision)
-FUNCTION scale(geometry, double precision, double precision)
-FUNCTION scale(geometry, double precision, double precision, double precision)
-FUNCTION se_envelopesintersect(geometry, geometry)
-FUNCTION segmentize(geometry, double precision)
+FUNCTION rotate(geometry,double precision)
+FUNCTION rotatex(geometry,double precision)
+FUNCTION rotatey(geometry,double precision)
+FUNCTION rotatez(geometry,double precision)
+FUNCTION scale(geometry,double precision,double precision)
+FUNCTION scale(geometry,double precision,double precision,double precision)
+FUNCTION se_envelopesintersect(geometry,geometry)
+FUNCTION segmentize(geometry,double precision)
 FUNCTION se_is3d(geometry)
 FUNCTION se_ismeasured(geometry)
-FUNCTION se_locatealong(geometry, double precision)
-FUNCTION se_locatebetween(geometry, double precision, double precision)
+FUNCTION se_locatealong(geometry,double precision)
+FUNCTION se_locatebetween(geometry,double precision,double precision)
 FUNCTION se_m(geometry)
-FUNCTION setfactor(chip, real)
-FUNCTION setpoint(geometry, integer, geometry)
-FUNCTION setsrid(chip, integer)
-FUNCTION setsrid(geometry, integer)
+FUNCTION setfactor(chip,real)
+FUNCTION setpoint(geometry,integer,geometry)
+FUNCTION setsrid(chip,integer)
+FUNCTION setsrid(geometry,integer)
 FUNCTION se_z(geometry)
 FUNCTION shift_longitude(geometry)
-FUNCTION simplify(geometry, double precision)
-FUNCTION snaptogrid(geometry, double precision)
-FUNCTION snaptogrid(geometry, double precision, double precision)
-FUNCTION snaptogrid(geometry, double precision, double precision, double precision, double precision)
-FUNCTION snaptogrid(geometry, geometry, double precision, double precision, double precision, double precision)
+FUNCTION simplify(geometry,double precision)
+FUNCTION snaptogrid(geometry,double precision)
+FUNCTION snaptogrid(geometry,double precision,double precision)
+FUNCTION snaptogrid(geometry,double precision,double precision,double precision,double precision)
+FUNCTION snaptogrid(geometry,geometry,double precision,double precision,double precision,double precision)
 FUNCTION spheroid_in(cstring)
 FUNCTION spheroid_out(spheroid)
 FUNCTION srid(chip)
 FUNCTION srid(geometry)
-FUNCTION st_3dclosestpoint(geometry, geometry)
-FUNCTION _st_3ddfullywithin(geometry, geometry, double precision)
-FUNCTION st_3ddfullywithin(geometry, geometry, double precision)
-FUNCTION st_3ddistance(geometry, geometry)
-FUNCTION _st_3ddwithin(geometry, geometry, double precision)
-FUNCTION st_3ddwithin(geometry, geometry, double precision)
-FUNCTION st_3dintersects(geometry, geometry)
+FUNCTION st_3dclosestpoint(geometry,geometry)
+FUNCTION _st_3ddfullywithin(geometry,geometry,double precision)
+FUNCTION st_3ddfullywithin(geometry,geometry,double precision)
+FUNCTION st_3ddistance(geometry,geometry)
+FUNCTION _st_3ddwithin(geometry,geometry,double precision)
+FUNCTION st_3ddwithin(geometry,geometry,double precision)
+FUNCTION st_3dintersects(geometry,geometry)
 FUNCTION st_3dlength(geometry)
-FUNCTION st_3dlength_spheroid(geometry, spheroid)
-FUNCTION st_3dlongestline(geometry, geometry)
-FUNCTION st_3dmakebox(geometry, geometry)
-FUNCTION ST_3DMakeBox(geometry, geometry)
-FUNCTION st_3dmaxdistance(geometry, geometry)
+FUNCTION st_3dlength_spheroid(geometry,spheroid)
+FUNCTION st_3dlongestline(geometry,geometry)
+FUNCTION st_3dmakebox(geometry,geometry)
+FUNCTION ST_3DMakeBox(geometry,geometry)
+FUNCTION st_3dmaxdistance(geometry,geometry)
 FUNCTION st_3dperimeter(geometry)
 FUNCTION ST_3DPerimeter(geometry)
-FUNCTION st_3dshortestline(geometry, geometry)
-FUNCTION st_above(raster, raster)
-FUNCTION st_addband(raster, integer, text)
-FUNCTION st_addband(raster, integer, text, double precision)
-FUNCTION st_addband(raster, integer, text, double precision, double precision)
-FUNCTION st_addband(raster, raster)
-FUNCTION st_addband(raster, raster, integer)
-FUNCTION st_addband(raster, raster[], integer)
-FUNCTION st_addband(raster, raster, integer, integer)
-FUNCTION st_addband(raster, text)
-FUNCTION st_addband(raster, text, double precision)
-FUNCTION st_addband(raster, text, double precision, double precision)
+FUNCTION st_3dshortestline(geometry,geometry)
+FUNCTION st_above(raster,raster)
+FUNCTION st_addband(raster,integer,text)
+FUNCTION st_addband(raster,integer,text,double precision)
+FUNCTION st_addband(raster,integer,text,double precision,double precision)
+FUNCTION st_addband(raster,raster)
+FUNCTION st_addband(raster,raster,integer)
+FUNCTION st_addband(raster,raster[],integer)
+FUNCTION st_addband(raster,raster,integer,integer)
+FUNCTION st_addband(raster,text)
+FUNCTION st_addband(raster,text,double precision)
+FUNCTION st_addband(raster,text,double precision,double precision)
 FUNCTION st_addbbox(geometry)
-FUNCTION st_addedgemodface(character varying, integer, integer, public.geometry)
-FUNCTION st_addedgenewfaces(character varying, integer, integer, public.geometry)
-FUNCTION st_addisoedge(character varying, integer, integer, public.geometry)
-FUNCTION st_addisonode(character varying, integer, public.geometry)
-FUNCTION st_addmeasure(geometry, double precision, double precision)
-FUNCTION st_addpoint(geometry, geometry)
-FUNCTION st_addpoint(geometry, geometry, integer)
-FUNCTION st_affine(geometry, double precision, double precision, double precision, double precision, double precision, double precision)
-FUNCTION st_affine(geometry, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision)
-FUNCTION st_approxcount(raster, boolean, double precision)
-FUNCTION st_approxcount(raster, double precision)
-FUNCTION st_approxcount(raster, integer, boolean, double precision)
-FUNCTION st_approxcount(raster, integer, double precision)
-FUNCTION st_approxcount(text, text, boolean, double precision)
-FUNCTION st_approxcount(text, text, double precision)
-FUNCTION st_approxcount(text, text, integer, boolean, double precision)
-FUNCTION st_approxcount(text, text, integer, double precision)
-FUNCTION st_approxhistogram(raster, double precision)
-FUNCTION st_approxhistogram(raster, integer, boolean, double precision, integer, boolean)
-FUNCTION st_approxhistogram(raster, integer, boolean, double precision, integer, double precision[], boolean)
-FUNCTION st_approxhistogram(raster, integer, double precision)
-FUNCTION st_approxhistogram(raster, integer, double precision, integer, boolean)
-FUNCTION st_approxhistogram(raster, integer, double precision, integer, double precision[], boolean)
-FUNCTION st_approxhistogram(text, text, double precision)
-FUNCTION st_approxhistogram(text, text, integer, boolean, double precision, integer, boolean)
-FUNCTION st_approxhistogram(text, text, integer, boolean, double precision, integer, double precision[], boolean)
-FUNCTION st_approxhistogram(text, text, integer, double precision)
-FUNCTION st_approxhistogram(text, text, integer, double precision, integer, boolean)
-FUNCTION st_approxhistogram(text, text, integer, double precision, integer, double precision[], boolean)
-FUNCTION st_approxquantile(raster, boolean, double precision)
-FUNCTION st_approxquantile(raster, double precision)
-FUNCTION st_approxquantile(raster, double precision[])
-FUNCTION st_approxquantile(raster, double precision, double precision)
-FUNCTION st_approxquantile(raster, double precision, double precision[])
-FUNCTION st_approxquantile(raster, integer, boolean, double precision, double precision)
-FUNCTION st_approxquantile(raster, integer, boolean, double precision, double precision[])
-FUNCTION st_approxquantile(raster, integer, double precision, double precision)
-FUNCTION st_approxquantile(raster, integer, double precision, double precision[])
-FUNCTION st_approxquantile(text, text, boolean, double precision)
-FUNCTION st_approxquantile(text, text, double precision)
-FUNCTION st_approxquantile(text, text, double precision[])
-FUNCTION st_approxquantile(text, text, double precision, double precision)
-FUNCTION st_approxquantile(text, text, double precision, double precision[])
-FUNCTION st_approxquantile(text, text, integer, boolean, double precision, double precision)
-FUNCTION st_approxquantile(text, text, integer, boolean, double precision, double precision[])
-FUNCTION st_approxquantile(text, text, integer, double precision, double precision)
-FUNCTION st_approxquantile(text, text, integer, double precision, double precision[])
-FUNCTION st_approxsummarystats(raster, boolean, double precision)
-FUNCTION st_approxsummarystats(raster, double precision)
-FUNCTION st_approxsummarystats(raster, integer, boolean, double precision)
-FUNCTION st_approxsummarystats(raster, integer, double precision)
-FUNCTION st_approxsummarystats(text, text, boolean)
-FUNCTION st_approxsummarystats(text, text, double precision)
-FUNCTION st_approxsummarystats(text, text, integer, boolean, double precision)
-FUNCTION st_approxsummarystats(text, text, integer, double precision)
+FUNCTION st_addedgemodface(character varying,integer,integer,public.geometry)
+FUNCTION st_addedgenewfaces(character varying,integer,integer,public.geometry)
+FUNCTION st_addisoedge(character varying,integer,integer,public.geometry)
+FUNCTION st_addisonode(character varying,integer,public.geometry)
+FUNCTION st_addmeasure(geometry,double precision,double precision)
+FUNCTION st_addpoint(geometry,geometry)
+FUNCTION st_addpoint(geometry,geometry,integer)
+FUNCTION st_affine(geometry,double precision,double precision,double precision,double precision,double precision,double precision)
+FUNCTION st_affine(geometry,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision)
+FUNCTION st_approxcount(raster,boolean,double precision)
+FUNCTION st_approxcount(raster,double precision)
+FUNCTION st_approxcount(raster,integer,boolean,double precision)
+FUNCTION st_approxcount(raster,integer,double precision)
+FUNCTION st_approxcount(text,text,boolean,double precision)
+FUNCTION st_approxcount(text,text,double precision)
+FUNCTION st_approxcount(text,text,integer,boolean,double precision)
+FUNCTION st_approxcount(text,text,integer,double precision)
+FUNCTION st_approxhistogram(raster,double precision)
+FUNCTION st_approxhistogram(raster,integer,boolean,double precision,integer,boolean)
+FUNCTION st_approxhistogram(raster,integer,boolean,double precision,integer,double precision[],boolean)
+FUNCTION st_approxhistogram(raster,integer,double precision)
+FUNCTION st_approxhistogram(raster,integer,double precision,integer,boolean)
+FUNCTION st_approxhistogram(raster,integer,double precision,integer,double precision[],boolean)
+FUNCTION st_approxhistogram(text,text,double precision)
+FUNCTION st_approxhistogram(text,text,integer,boolean,double precision,integer,boolean)
+FUNCTION st_approxhistogram(text,text,integer,boolean,double precision,integer,double precision[],boolean)
+FUNCTION st_approxhistogram(text,text,integer,double precision)
+FUNCTION st_approxhistogram(text,text,integer,double precision,integer,boolean)
+FUNCTION st_approxhistogram(text,text,integer,double precision,integer,double precision[],boolean)
+FUNCTION st_approxquantile(raster,boolean,double precision)
+FUNCTION st_approxquantile(raster,double precision)
+FUNCTION st_approxquantile(raster,double precision[])
+FUNCTION st_approxquantile(raster,double precision,double precision)
+FUNCTION st_approxquantile(raster,double precision,double precision[])
+FUNCTION st_approxquantile(raster,integer,boolean,double precision,double precision)
+FUNCTION st_approxquantile(raster,integer,boolean,double precision,double precision[])
+FUNCTION st_approxquantile(raster,integer,double precision,double precision)
+FUNCTION st_approxquantile(raster,integer,double precision,double precision[])
+FUNCTION st_approxquantile(text,text,boolean,double precision)
+FUNCTION st_approxquantile(text,text,double precision)
+FUNCTION st_approxquantile(text,text,double precision[])
+FUNCTION st_approxquantile(text,text,double precision,double precision)
+FUNCTION st_approxquantile(text,text,double precision,double precision[])
+FUNCTION st_approxquantile(text,text,integer,boolean,double precision,double precision)
+FUNCTION st_approxquantile(text,text,integer,boolean,double precision,double precision[])
+FUNCTION st_approxquantile(text,text,integer,double precision,double precision)
+FUNCTION st_approxquantile(text,text,integer,double precision,double precision[])
+FUNCTION st_approxsummarystats(raster,boolean,double precision)
+FUNCTION st_approxsummarystats(raster,double precision)
+FUNCTION st_approxsummarystats(raster,integer,boolean,double precision)
+FUNCTION st_approxsummarystats(raster,integer,double precision)
+FUNCTION st_approxsummarystats(text,text,boolean)
+FUNCTION st_approxsummarystats(text,text,double precision)
+FUNCTION st_approxsummarystats(text,text,integer,boolean,double precision)
+FUNCTION st_approxsummarystats(text,text,integer,double precision)
 FUNCTION st_area2d(geometry)
 FUNCTION st_area(geography)
-FUNCTION st_area(geography, boolean)
+FUNCTION st_area(geography,boolean)
 FUNCTION st_area(geometry)
 FUNCTION st_area(text)
 FUNCTION startpoint(geometry)
 FUNCTION st_asbinary(geography)
-FUNCTION st_asbinary(geography, text)
+FUNCTION st_asbinary(geography,text)
 FUNCTION st_asbinary(geometry)
-FUNCTION st_asbinary(geometry, text)
+FUNCTION st_asbinary(geometry,text)
 FUNCTION st_asbinary(raster)
 FUNCTION st_asbinary(text)
+FUNCTION st_asencodedpolyline(geometry)
+FUNCTION st_asencodedpolyline(geometry,integer)
 FUNCTION st_asewkb(geometry)
-FUNCTION st_asewkb(geometry, text)
+FUNCTION st_asewkb(geometry,text)
 FUNCTION st_asewkt(geography)
 FUNCTION st_asewkt(geometry)
 FUNCTION st_asewkt(text)
-FUNCTION st_asgdalraster(raster, text, text[], integer)
+FUNCTION st_asgdalraster(raster,text,text[],integer)
 FUNCTION st_asgeojson(geography)
-FUNCTION st_asgeojson(geography, integer)
-FUNCTION st_asgeojson(geography, integer, integer)
+FUNCTION st_asgeojson(geography,integer)
+FUNCTION st_asgeojson(geography,integer,integer)
 FUNCTION st_asgeojson(geometry)
-FUNCTION st_asgeojson(geometry, integer)
-FUNCTION st_asgeojson(geometry, integer, integer)
-FUNCTION st_asgeojson(integer, geography)
-FUNCTION st_asgeojson(integer, geography, integer)
-FUNCTION _st_asgeojson(integer, geography, integer, integer)
-FUNCTION st_asgeojson(integer, geography, integer, integer)
-FUNCTION st_asgeojson(integer, geometry)
-FUNCTION st_asgeojson(integer, geometry, integer)
-FUNCTION _st_asgeojson(integer, geometry, integer, integer)
-FUNCTION st_asgeojson(integer, geometry, integer, integer)
+FUNCTION st_asgeojson(geometry,integer)
+FUNCTION st_asgeojson(geometry,integer,integer)
+FUNCTION st_asgeojson(integer,geography)
+FUNCTION st_asgeojson(integer,geography,integer)
+FUNCTION _st_asgeojson(integer,geography,integer,integer)
+FUNCTION st_asgeojson(integer,geography,integer,integer)
+FUNCTION st_asgeojson(integer,geometry)
+FUNCTION st_asgeojson(integer,geometry,integer)
+FUNCTION _st_asgeojson(integer,geometry,integer,integer)
+FUNCTION st_asgeojson(integer,geometry,integer,integer)
 FUNCTION st_asgeojson(text)
 FUNCTION st_asgml(geography)
-FUNCTION st_asgml(geography, integer)
-FUNCTION st_asgml(geography, integer, integer)
+FUNCTION st_asgml(geography,integer)
+FUNCTION st_asgml(geography,integer,integer)
 FUNCTION st_asgml(geometry)
-FUNCTION st_asgml(geometry, integer)
-FUNCTION st_asgml(geometry, integer, integer)
-FUNCTION st_asgml(integer, geography)
-FUNCTION st_asgml(integer, geography, integer)
-FUNCTION _st_asgml(integer, geography, integer, integer)
-FUNCTION st_asgml(integer, geography, integer, integer)
-FUNCTION _st_asgml(integer, geography, integer, integer, text)
-FUNCTION st_asgml(integer, geography, integer, integer, text)
-FUNCTION st_asgml(integer, geometry)
-FUNCTION _st_asgml(integer, geometry, integer)
-FUNCTION st_asgml(integer, geometry, integer)
-FUNCTION _st_asgml(integer, geometry, integer, integer)
-FUNCTION st_asgml(integer, geometry, integer, integer)
-FUNCTION _st_asgml(integer, geometry, integer, integer, text)
-FUNCTION st_asgml(integer, geometry, integer, integer, text)
+FUNCTION st_asgml(geometry,integer)
+FUNCTION st_asgml(geometry,integer,integer)
+FUNCTION st_asgml(integer,geography)
+FUNCTION st_asgml(integer,geography,integer)
+FUNCTION _st_asgml(integer,geography,integer,integer)
+FUNCTION st_asgml(integer,geography,integer,integer)
+FUNCTION _st_asgml(integer,geography,integer,integer,text)
+FUNCTION st_asgml(integer,geography,integer,integer,text)
+FUNCTION st_asgml(integer,geometry)
+FUNCTION _st_asgml(integer,geometry,integer)
+FUNCTION st_asgml(integer,geometry,integer)
+FUNCTION _st_asgml(integer,geometry,integer,integer)
+FUNCTION st_asgml(integer,geometry,integer,integer)
+FUNCTION _st_asgml(integer,geometry,integer,integer,text)
+FUNCTION st_asgml(integer,geometry,integer,integer,text)
 FUNCTION st_asgml(text)
 FUNCTION st_ashexewkb(geometry)
-FUNCTION st_ashexewkb(geometry, text)
-FUNCTION st_asjpeg(raster, integer, integer)
-FUNCTION st_asjpeg(raster, integer[], integer)
-FUNCTION st_asjpeg(raster, integer, text[])
-FUNCTION st_asjpeg(raster, integer[], text[])
-FUNCTION st_asjpeg(raster, text[])
+FUNCTION st_ashexewkb(geometry,text)
+FUNCTION st_asjpeg(raster,integer,integer)
+FUNCTION st_asjpeg(raster,integer[],integer)
+FUNCTION st_asjpeg(raster,integer,text[])
+FUNCTION st_asjpeg(raster,integer[],text[])
+FUNCTION st_asjpeg(raster,text[])
 FUNCTION st_askml(geography)
-FUNCTION st_askml(geography, integer)
+FUNCTION st_askml(geography,integer)
 FUNCTION st_askml(geometry)
-FUNCTION st_askml(geometry, integer)
-FUNCTION st_askml(integer, geography)
-FUNCTION _st_askml(integer, geography, integer)
-FUNCTION st_askml(integer, geography, integer)
-FUNCTION _st_askml(integer, geography, integer, text)
-FUNCTION st_askml(integer, geography, integer, text)
-FUNCTION st_askml(integer, geometry)
-FUNCTION _st_askml(integer, geometry, integer)
-FUNCTION st_askml(integer, geometry, integer)
-FUNCTION _st_askml(integer, geometry, integer, text)
-FUNCTION st_askml(integer, geometry, integer, text)
+FUNCTION st_askml(geometry,integer)
+FUNCTION st_askml(integer,geography)
+FUNCTION _st_askml(integer,geography,integer)
+FUNCTION st_askml(integer,geography,integer)
+FUNCTION _st_askml(integer,geography,integer,text)
+FUNCTION st_askml(integer,geography,integer,text)
+FUNCTION st_askml(integer,geometry)
+FUNCTION _st_askml(integer,geometry,integer)
+FUNCTION st_askml(integer,geometry,integer)
+FUNCTION _st_askml(integer,geometry,integer,text)
+FUNCTION st_askml(integer,geometry,integer,text)
 FUNCTION st_askml(text)
 FUNCTION st_aslatlontext(geometry)
-FUNCTION st_aslatlontext(geometry, text)
-FUNCTION _st_aspect4ma(double precision[], text, text[])
-FUNCTION st_aspect(raster, integer, text)
-FUNCTION st_aspng(raster, integer, integer)
-FUNCTION st_aspng(raster, integer[], integer)
-FUNCTION st_aspng(raster, integer, text[])
-FUNCTION st_aspng(raster, integer[], text[])
-FUNCTION st_aspng(raster, text[])
-FUNCTION st_asraster(geometry, double precision, double precision, double precision, double precision, text, double precision, double precision, double precision, double precision, boolean)
-FUNCTION st_asraster(geometry, double precision, double precision, double precision, double precision, text[], double precision[], double precision[], double precision, double precision, boolean)
-FUNCTION _st_asraster(geometry, double precision, double precision, integer, integer, text[], double precision[], double precision[], double precision, double precision, double precision, double precision, double precision, double precision, boolean)
-FUNCTION st_asraster(geometry, double precision, double precision, text, double precision, double precision, double precision, double precision, double precision, double precision, boolean)
-FUNCTION st_asraster(geometry, double precision, double precision, text[], double precision[], double precision[], double precision, double precision, double precision, double precision, boolean)
-FUNCTION st_asraster(geometry, integer, integer, double precision, double precision, text, double precision, double precision, double precision, double precision, boolean)
-FUNCTION st_asraster(geometry, integer, integer, double precision, double precision, text[], double precision[], double precision[], double precision, double precision, boolean)
-FUNCTION st_asraster(geometry, integer, integer, text, double precision, double precision, double precision, double precision, double precision, double precision, boolean)
-FUNCTION st_asraster(geometry, integer, integer, text[], double precision[], double precision[], double precision, double precision, double precision, double precision, boolean)
-FUNCTION st_asraster(geometry, raster, text, double precision, double precision, boolean)
-FUNCTION st_asraster(geometry, raster, text[], double precision[], double precision[], boolean)
+FUNCTION st_aslatlontext(geometry,text)
+FUNCTION _st_aspect4ma(double precision[],text,text[])
+FUNCTION st_aspect(raster,integer,text)
+FUNCTION st_aspect(raster,integer,text,boolean)
+FUNCTION st_aspect(raster,integer,text,text,boolean)
+FUNCTION st_aspng(raster,integer,integer)
+FUNCTION st_aspng(raster,integer[],integer)
+FUNCTION st_aspng(raster,integer,text[])
+FUNCTION st_aspng(raster,integer[],text[])
+FUNCTION st_aspng(raster,text[])
+FUNCTION st_asraster(geometry,double precision,double precision,double precision,double precision,text,double precision,double precision,double precision,double precision,boolean)
+FUNCTION st_asraster(geometry,double precision,double precision,double precision,double precision,text[],double precision[],double precision[],double precision,double precision,boolean)
+FUNCTION _st_asraster(geometry,double precision,double precision,integer,integer,text[],double precision[],double precision[],double precision,double precision,double precision,double precision,double precision,double precision,boolean)
+FUNCTION _st_asraster(geometry,double precision,double precision,integer,integer,text[],double precision[],double precision[],double precision,double precision,double precision,double precision,double precision,double precision,touched boolean)
+FUNCTION st_asraster(geometry,double precision,double precision,text,double precision,double precision,double precision,double precision,double precision,double precision)
+FUNCTION st_asraster(geometry,double precision,double precision,text,double precision,double precision,double precision,double precision,double precision,double precision,boolean)
+FUNCTION st_asraster(geometry,double precision,double precision,text[],double precision[],double precision[],double precision,double precision,double precision,double precision,boolean)
+FUNCTION st_asraster(geometry,integer,integer,double precision,double precision,text,double precision,double precision,double precision,double precision)
+FUNCTION st_asraster(geometry,integer,integer,double precision,double precision,text[],double precision[],double precision[],double precision,double precision)
+FUNCTION st_asraster(geometry,integer,integer,double precision,double precision,text,double precision,double precision,double precision,double precision,boolean)
+FUNCTION st_asraster(geometry,integer,integer,double precision,double precision,text[],double precision[],double precision[],double precision,double precision,boolean)
+FUNCTION st_asraster(geometry,integer,integer,text,double precision,double precision,double precision,double precision,double precision,double precision)
+FUNCTION st_asraster(geometry,integer,integer,text[],double precision[],double precision[],double precision,double precision,double precision,double precision)
+FUNCTION st_asraster(geometry,integer,integer,text,double precision,double precision,double precision,double precision,double precision,double precision,boolean)
+FUNCTION st_asraster(geometry,integer,integer,text[],double precision[],double precision[],double precision,double precision,double precision,double precision,boolean)
+FUNCTION st_asraster(geometry,raster,text,double precision,double precision)
+FUNCTION st_asraster(geometry,raster,text,double precision,double precision,boolean)
+FUNCTION st_asraster(geometry,raster,text[],double precision[],double precision[],boolean)
 FUNCTION st_assvg(geography)
-FUNCTION st_assvg(geography, integer)
-FUNCTION st_assvg(geography, integer, integer)
+FUNCTION st_assvg(geography,integer)
+FUNCTION st_assvg(geography,integer,integer)
 FUNCTION st_assvg(geometry)
-FUNCTION st_assvg(geometry, integer)
-FUNCTION st_assvg(geometry, integer, integer)
+FUNCTION st_assvg(geometry,integer)
+FUNCTION st_assvg(geometry,integer,integer)
 FUNCTION st_assvg(text)
 FUNCTION st_astext(geography)
 FUNCTION st_astext(geometry)
 FUNCTION st_astext(text)
-FUNCTION st_astiff(raster, integer[], text, integer)
-FUNCTION st_astiff(raster, integer[], text[], integer)
-FUNCTION st_astiff(raster, text, integer)
-FUNCTION st_astiff(raster, text[], integer)
+FUNCTION st_astiff(raster,integer[],text,integer)
+FUNCTION st_astiff(raster,integer[],text[],integer)
+FUNCTION st_astiff(raster,text,integer)
+FUNCTION st_astiff(raster,text[],integer)
+FUNCTION st_astwkb(geometry,integer)
+FUNCTION st_astwkb(geometry,integer,bigint)
+FUNCTION st_astwkb(geometry,integer,bigint,boolean)
 FUNCTION st_asukml(geometry)
-FUNCTION st_asukml(geometry, integer)
-FUNCTION st_asukml(geometry, integer, integer)
-FUNCTION st_asx3d(geometry, integer)
-FUNCTION st_asx3d(geometry, integer, integer)
-FUNCTION _st_asx3d(integer, geometry, integer, integer, text)
-FUNCTION st_azimuth(geography, geography)
-FUNCTION st_azimuth(geometry, geometry)
+FUNCTION st_asukml(geometry,integer)
+FUNCTION st_asukml(geometry,integer,integer)
+FUNCTION st_asx3d(geometry)
+FUNCTION st_asx3d(geometry,integer)
+FUNCTION st_asx3d(geometry,integer,integer)
+FUNCTION _st_asx3d(integer,geometry,integer,integer,text)
+FUNCTION st_azimuth(geography,geography)
+FUNCTION st_azimuth(geometry,geometry)
 FUNCTION st_bandisnodata(raster)
-FUNCTION st_bandisnodata(raster, boolean)
-FUNCTION st_bandisnodata(raster, integer)
-FUNCTION st_bandisnodata(raster, integer, boolean)
+FUNCTION st_bandisnodata(raster,boolean)
+FUNCTION st_bandisnodata(raster,integer)
+FUNCTION st_bandisnodata(raster,integer,boolean)
 FUNCTION st_bandmetadata(raster)
-FUNCTION st_bandmetadata(raster, integer)
-FUNCTION st_bandmetadata(raster, integer[])
+FUNCTION st_bandmetadata(raster,integer)
+FUNCTION st_bandmetadata(raster,integer[])
+FUNCTION st_bandmetadata(raster,variadic integer[])
 FUNCTION st_bandnodatavalue(raster)
-FUNCTION st_bandnodatavalue(raster, integer)
+FUNCTION st_bandnodatavalue(raster,integer)
 FUNCTION st_bandpath(raster)
-FUNCTION st_bandpath(raster, integer)
+FUNCTION st_bandpath(raster,integer)
 FUNCTION st_bandpixeltype(raster)
-FUNCTION st_bandpixeltype(raster, integer)
-FUNCTION st_band(raster, integer)
-FUNCTION st_band(raster, integer[])
-FUNCTION st_band(raster, text, character)
-FUNCTION st_bdmpolyfromtext(text, integer)
-FUNCTION st_bdpolyfromtext(text, integer)
-FUNCTION st_below(raster, raster)
+FUNCTION st_bandpixeltype(raster,integer)
+FUNCTION st_band(raster,integer)
+FUNCTION st_band(raster,integer[])
+FUNCTION st_band(raster,text,character)
+FUNCTION st_bandsurface(raster,integer)
+FUNCTION st_bdmpolyfromtext(text,integer)
+FUNCTION st_bdpolyfromtext(text,integer)
+FUNCTION st_below(raster,raster)
 FUNCTION _st_bestsrid(geography)
-FUNCTION _st_bestsrid(geography, geography)
+FUNCTION _st_bestsrid(geography,geography)
 FUNCTION st_boundary(geometry)
 FUNCTION st_box2d(box3d)
 FUNCTION st_box2d(box3d_extent)
-FUNCTION st_box2d_contain(box2d, box2d)
-FUNCTION st_box2d_contained(box2d, box2d)
+FUNCTION st_box2d_contain(box2d,box2d)
+FUNCTION st_box2d_contained(box2d,box2d)
 FUNCTION st_box2d(geometry)
 FUNCTION st_box2d_in(cstring)
-FUNCTION st_box2d_intersects(box2d, box2d)
-FUNCTION st_box2d_left(box2d, box2d)
+FUNCTION st_box2d_intersects(box2d,box2d)
+FUNCTION st_box2d_left(box2d,box2d)
 FUNCTION st_box2d_out(box2d)
-FUNCTION st_box2d_overlap(box2d, box2d)
-FUNCTION st_box2d_overleft(box2d, box2d)
-FUNCTION st_box2d_overright(box2d, box2d)
-FUNCTION st_box2d_right(box2d, box2d)
-FUNCTION st_box2d_same(box2d, box2d)
+FUNCTION st_box2d_overlap(box2d,box2d)
+FUNCTION st_box2d_overleft(box2d,box2d)
+FUNCTION st_box2d_overright(box2d,box2d)
+FUNCTION st_box2d_right(box2d,box2d)
+FUNCTION st_box2d_same(box2d,box2d)
 FUNCTION st_box3d(box2d)
 FUNCTION st_box3d_extent(box3d_extent)
 FUNCTION st_box3d(geometry)
@@ -2099,118 +2121,125 @@ FUNCTION st_box3d_in(cstring)
 FUNCTION st_box3d_out(box3d)
 FUNCTION st_box(box3d)
 FUNCTION st_box(geometry)
-FUNCTION st_buffer(geography, double precision)
-FUNCTION st_buffer(geometry, double precision)
-FUNCTION _st_buffer(geometry, double precision, cstring)
-FUNCTION st_buffer(geometry, double precision, integer)
-FUNCTION st_buffer(geometry, double precision, text)
-FUNCTION st_buffer(text, double precision)
+FUNCTION st_buffer(geography,double precision)
+FUNCTION st_buffer(geometry,double precision)
+FUNCTION _st_buffer(geometry,double precision,cstring)
+FUNCTION st_buffer(geometry,double precision,integer)
+FUNCTION st_buffer(geometry,double precision,text)
+FUNCTION st_buffer(text,double precision)
 FUNCTION st_buildarea(geometry)
-FUNCTION st_build_histogram2d(histogram2d, text, text)
-FUNCTION st_build_histogram2d(histogram2d, text, text, text)
+FUNCTION st_build_histogram2d(histogram2d,text,text)
+FUNCTION st_build_histogram2d(histogram2d,text,text,text)
 FUNCTION st_bytea(geometry)
 FUNCTION st_bytea(raster)
 FUNCTION st_cache_bbox()
 FUNCTION st_centroid(geometry)
-FUNCTION _st_changeedgegeom_adjacent_edges(character varying, integer, integer)
-FUNCTION st_changeedgegeom(character varying, integer, public.geometry)
+FUNCTION _st_changeedgegeom_adjacent_edges(character varying,integer,integer)
+FUNCTION st_changeedgegeom(character varying,integer,public.geometry)
 FUNCTION st_chip_in(cstring)
 FUNCTION st_chip_out(chip)
 FUNCTION st_cleangeometry(geometry)
-FUNCTION st_clip(raster, geometry, boolean)
-FUNCTION st_clip(raster, geometry, double precision, boolean)
-FUNCTION st_clip(raster, geometry, double precision[], boolean)
-FUNCTION st_clip(raster, integer, geometry, boolean)
-FUNCTION st_clip(raster, integer, geometry, double precision, boolean)
-FUNCTION st_clip(raster, integer, geometry, double precision[], boolean)
-FUNCTION st_closestpoint(geometry, geometry)
+FUNCTION st_clip(raster,geometry,boolean)
+FUNCTION st_clip(raster,geometry,double precision,boolean)
+FUNCTION st_clip(raster,geometry,double precision[],boolean)
+FUNCTION st_clip(raster,integer,geometry,boolean)
+FUNCTION st_clip(raster,integer,geometry,double precision,boolean)
+FUNCTION st_clip(raster,integer,geometry,double precision[],boolean)
+FUNCTION st_closestpoint(geometry,geometry)
 FUNCTION st_collect_garray(geometry[])
 FUNCTION st_collect(geometry[])
-FUNCTION st_collect(geometry, geometry)
-FUNCTION st_collectionextract(geometry, integer)
+FUNCTION st_collect(geometry,geometry)
+FUNCTION st_collectionextract(geometry,integer)
 FUNCTION st_collectionhomogenize(geometry)
-FUNCTION st_collector(geometry, geometry)
-FUNCTION st_combine_bbox(box2d, geometry)
-FUNCTION st_combine_bbox(box3d_extent, geometry)
-FUNCTION st_combine_bbox(box3d, geometry)
+FUNCTION st_collector(geometry,geometry)
+FUNCTION st_combine_bbox(box2d,geometry)
+FUNCTION st_combine_bbox(box3d_extent,geometry)
+FUNCTION st_combine_bbox(box3d,geometry)
 FUNCTION st_compression(chip)
 FUNCTION _st_concavehull(geometry)
-FUNCTION st_concavehull(geometry, double precision, boolean)
+FUNCTION st_concavehull(geometry,double precision,boolean)
+FUNCTION st_concavehull(geometry,float)
 FUNCTION _st_concvehull(geometry)
-FUNCTION st_contained(raster, raster)
-FUNCTION st_contain(raster, raster)
-FUNCTION _st_contains(geometry, geometry)
-FUNCTION st_contains(geometry, geometry)
-FUNCTION _st_containsproperly(geometry, geometry)
-FUNCTION st_containsproperly(geometry, geometry)
+FUNCTION st_contained(raster,raster)
+FUNCTION st_contain(raster,raster)
+FUNCTION st_contain(raster,raster)**/
+FUNCTION _st_contains(geometry,geometry)
+FUNCTION st_contains(geometry,geometry)
+FUNCTION _st_contains(geometry,raster,integer)
+FUNCTION st_contains(geometry,raster,integer)
+FUNCTION _st_containsproperly(geometry,geometry)
+FUNCTION st_containsproperly(geometry,geometry)
+FUNCTION _st_contains(raster,geometry,integer)
+FUNCTION st_contains(raster,geometry,integer)
+FUNCTION st_contains(raster,integer,geometry)
 FUNCTION st_convexhull(geometry)
 FUNCTION st_convexhull(raster)
 FUNCTION st_coorddim(geometry)
-FUNCTION st_count(raster, boolean)
-FUNCTION st_count(raster, integer, boolean)
-FUNCTION _st_count(raster, integer, boolean, double precision)
-FUNCTION st_count(text, text, boolean)
-FUNCTION st_count(text, text, integer, boolean)
-FUNCTION _st_count(text, text, integer, boolean, double precision)
-FUNCTION st_coveredby(geography, geography)
-FUNCTION _st_coveredby(geometry, geometry)
-FUNCTION st_coveredby(geometry, geometry)
-FUNCTION st_coveredby(text, text)
-FUNCTION _st_covers(geography, geography)
-FUNCTION st_covers(geography, geography)
-FUNCTION _st_covers(geometry, geometry)
-FUNCTION st_covers(geometry, geometry)
-FUNCTION st_covers(text, text)
-FUNCTION st_create_histogram2d(box2d, integer)
-FUNCTION st_createtopogeo(character varying, public.geometry)
-FUNCTION _st_crosses(geometry, geometry)
-FUNCTION st_crosses(geometry, geometry)
+FUNCTION st_count(raster,boolean)
+FUNCTION st_count(raster,integer,boolean)
+FUNCTION _st_count(raster,integer,boolean,double precision)
+FUNCTION st_count(text,text,boolean)
+FUNCTION st_count(text,text,integer,boolean)
+FUNCTION _st_count(text,text,integer,boolean,double precision)
+FUNCTION st_coveredby(geography,geography)
+FUNCTION _st_coveredby(geometry,geometry)
+FUNCTION st_coveredby(geometry,geometry)
+FUNCTION st_coveredby(text,text)
+FUNCTION _st_covers(geography,geography)
+FUNCTION st_covers(geography,geography)
+FUNCTION _st_covers(geometry,geometry)
+FUNCTION st_covers(geometry,geometry)
+FUNCTION st_covers(text,text)
+FUNCTION st_create_histogram2d(box2d,integer)
+FUNCTION st_createtopogeo(character varying,public.geometry)
+FUNCTION _st_crosses(geometry,geometry)
+FUNCTION st_crosses(geometry,geometry)
 FUNCTION st_curvetoline(geometry)
-FUNCTION st_curvetoline(geometry, integer)
+FUNCTION st_curvetoline(geometry,integer)
 FUNCTION st_datatype(chip)
-FUNCTION _st_dfullywithin(geometry, geometry, double precision)
-FUNCTION st_dfullywithin(geometry, geometry, double precision)
-FUNCTION st_difference(geometry, geometry)
+FUNCTION _st_dfullywithin(geometry,geometry,double precision)
+FUNCTION st_dfullywithin(geometry,geometry,double precision)
+FUNCTION st_difference(geometry,geometry)
 FUNCTION st_dimension(geometry)
-FUNCTION st_disjoint(geometry, geometry)
-FUNCTION st_distance(geography, geography)
-FUNCTION st_distance(geography, geography, boolean)
-FUNCTION _st_distance(geography, geography, double precision, boolean)
-FUNCTION st_distance(geometry, geometry)
-FUNCTION st_distance_sphere(geometry, geometry)
-FUNCTION st_distance_spheroid(geometry, geometry, spheroid)
-FUNCTION st_distance(text, text)
+FUNCTION st_disjoint(geometry,geometry)
+FUNCTION st_distance(geography,geography)
+FUNCTION st_distance(geography,geography,boolean)
+FUNCTION _st_distance(geography,geography,double precision,boolean)
+FUNCTION st_distance(geometry,geometry)
+FUNCTION st_distance_sphere(geometry,geometry)
+FUNCTION st_distance_spheroid(geometry,geometry,spheroid)
+FUNCTION st_distance(text,text)
 FUNCTION st_dropbbox(geometry)
 FUNCTION st_dumpaspolygons(raster)
-FUNCTION st_dumpaspolygons(raster, integer)
-FUNCTION _st_dumpaswktpolygons(raster, integer)
+FUNCTION st_dumpaspolygons(raster,integer)
+FUNCTION _st_dumpaswktpolygons(raster,integer)
 FUNCTION st_dump(geometry)
 FUNCTION st_dumppoints(geometry)
-FUNCTION _st_dumppoints(geometry, integer[])
+FUNCTION _st_dumppoints(geometry,integer[])
 FUNCTION st_dumprings(geometry)
-FUNCTION st_dwithin(geography, geography, double precision)
-FUNCTION _st_dwithin(geography, geography, double precision, boolean)
-FUNCTION st_dwithin(geography, geography, double precision, boolean)
-FUNCTION _st_dwithin(geometry, geometry, double precision)
-FUNCTION st_dwithin(geometry, geometry, double precision)
-FUNCTION st_dwithin(text, text, double precision)
+FUNCTION st_dwithin(geography,geography,double precision)
+FUNCTION _st_dwithin(geography,geography,double precision,boolean)
+FUNCTION st_dwithin(geography,geography,double precision,boolean)
+FUNCTION _st_dwithin(geometry,geometry,double precision)
+FUNCTION st_dwithin(geometry,geometry,double precision)
+FUNCTION st_dwithin(text,text,double precision)
 FUNCTION st_endpoint(geometry)
 FUNCTION st_envelope(geometry)
 FUNCTION st_envelope(raster)
-FUNCTION _st_equals(geometry, geometry)
-FUNCTION st_equals(geometry, geometry)
-FUNCTION st_estimated_extent(text, text)
-FUNCTION st_estimated_extent(text, text, text)
-FUNCTION st_estimate_histogram2d(histogram2d, box2d)
-FUNCTION st_expand(box2d, double precision)
-FUNCTION st_expand(box3d, double precision)
-FUNCTION _st_expand(geography, double precision)
-FUNCTION st_expand(geometry, double precision)
-FUNCTION st_explode_histogram2d(histogram2d, text)
+FUNCTION _st_equals(geometry,geometry)
+FUNCTION st_equals(geometry,geometry)
+FUNCTION st_estimated_extent(text,text)
+FUNCTION st_estimated_extent(text,text,text)
+FUNCTION st_estimate_histogram2d(histogram2d,box2d)
+FUNCTION st_expand(box2d,double precision)
+FUNCTION st_expand(box3d,double precision)
+FUNCTION _st_expand(geography,double precision)
+FUNCTION st_expand(geometry,double precision)
+FUNCTION st_explode_histogram2d(histogram2d,text)
 FUNCTION st_exteriorring(geometry)
 FUNCTION st_factor(chip)
-FUNCTION st_find_extent(text, text)
-FUNCTION st_find_extent(text, text, text)
+FUNCTION st_find_extent(text,text)
+FUNCTION st_find_extent(text,text,text)
 FUNCTION st_flipcoordinates(geometry)
 FUNCTION st_force_2d(geometry)
 FUNCTION st_force_3d(geometry)
@@ -2224,42 +2253,42 @@ FUNCTION st_geogfromtext(text)
 FUNCTION st_geogfromwkb(bytea)
 FUNCTION st_geographyfromtext(text)
 FUNCTION st_geohash(geometry)
-FUNCTION st_geohash(geometry, integer)
-FUNCTION st_geom_accum(geometry[], geometry)
+FUNCTION st_geohash(geometry,integer)
+FUNCTION st_geom_accum(geometry[],geometry)
 FUNCTION st_geomcollfromtext(text)
-FUNCTION st_geomcollfromtext(text, integer)
+FUNCTION st_geomcollfromtext(text,integer)
 FUNCTION st_geomcollfromwkb(bytea)
-FUNCTION st_geomcollfromwkb(bytea, integer)
-FUNCTION st_geometry_above(geometry, geometry)
+FUNCTION st_geomcollfromwkb(bytea,integer)
+FUNCTION st_geometry_above(geometry,geometry)
 FUNCTION st_geometry_analyze(internal)
-FUNCTION st_geometry_below(geometry, geometry)
+FUNCTION st_geometry_below(geometry,geometry)
 FUNCTION st_geometry(box2d)
 FUNCTION st_geometry(box3d)
 FUNCTION st_geometry(box3d_extent)
 FUNCTION st_geometry(bytea)
 FUNCTION st_geometry(chip)
-FUNCTION st_geometry_cmp(geometry, geometry)
-FUNCTION st_geometry_contained(geometry, geometry)
-FUNCTION st_geometry_contain(geometry, geometry)
-FUNCTION st_geometry_eq(geometry, geometry)
+FUNCTION st_geometry_cmp(geometry,geometry)
+FUNCTION st_geometry_contained(geometry,geometry)
+FUNCTION st_geometry_contain(geometry,geometry)
+FUNCTION st_geometry_eq(geometry,geometry)
 FUNCTION st_geometryfromtext(text)
-FUNCTION st_geometryfromtext(text, integer)
-FUNCTION st_geometry_ge(geometry, geometry)
-FUNCTION st_geometry_gt(geometry, geometry)
+FUNCTION st_geometryfromtext(text,integer)
+FUNCTION st_geometry_ge(geometry,geometry)
+FUNCTION st_geometry_gt(geometry,geometry)
 FUNCTION st_geometry_in(cstring)
-FUNCTION st_geometry_left(geometry, geometry)
-FUNCTION st_geometry_le(geometry, geometry)
-FUNCTION st_geometry_lt(geometry, geometry)
-FUNCTION st_geometryn(geometry, integer)
+FUNCTION st_geometry_left(geometry,geometry)
+FUNCTION st_geometry_le(geometry,geometry)
+FUNCTION st_geometry_lt(geometry,geometry)
+FUNCTION st_geometryn(geometry,integer)
 FUNCTION st_geometry_out(geometry)
-FUNCTION st_geometry_overabove(geometry, geometry)
-FUNCTION st_geometry_overbelow(geometry, geometry)
-FUNCTION st_geometry_overlap(geometry, geometry)
-FUNCTION st_geometry_overleft(geometry, geometry)
-FUNCTION st_geometry_overright(geometry, geometry)
+FUNCTION st_geometry_overabove(geometry,geometry)
+FUNCTION st_geometry_overbelow(geometry,geometry)
+FUNCTION st_geometry_overlap(geometry,geometry)
+FUNCTION st_geometry_overleft(geometry,geometry)
+FUNCTION st_geometry_overright(geometry,geometry)
 FUNCTION st_geometry_recv(internal)
-FUNCTION st_geometry_right(geometry, geometry)
-FUNCTION st_geometry_same(geometry, geometry)
+FUNCTION st_geometry_right(geometry,geometry)
+FUNCTION st_geometry_same(geometry,geometry)
 FUNCTION st_geometry_send(geometry)
 FUNCTION st_geometry(text)
 FUNCTION st_geometrytype(geometry)
@@ -2268,89 +2297,93 @@ FUNCTION st_geomfromewkb(bytea)
 FUNCTION st_geomfromewkt(text)
 FUNCTION st_geomfromgeojson(text)
 FUNCTION st_geomfromgml(text)
-FUNCTION _st_geomfromgml(text, integer)
-FUNCTION st_geomfromgml(text, integer)
+FUNCTION _st_geomfromgml(text,integer)
+FUNCTION st_geomfromgml(text,integer)
 FUNCTION st_geomfromkml(text)
 FUNCTION st_geomfromtext(text)
-FUNCTION st_geomfromtext(text, integer)
+FUNCTION st_geomfromtext(text,integer)
 FUNCTION st_geomfromwkb(bytea)
-FUNCTION st_geomfromwkb(bytea, integer)
+FUNCTION st_geomfromwkb(bytea,integer)
 FUNCTION st_georeference(raster)
-FUNCTION st_georeference(raster, text)
+FUNCTION st_georeference(raster,text)
 FUNCTION st_geotransform(raster)
-FUNCTION st_getfaceedges(character varying, integer)
-FUNCTION _st_getfacegeometry(character varying, integer)
-FUNCTION st_getfacegeometry(character varying, integer)
+FUNCTION st_getfaceedges(character varying,integer)
+FUNCTION _st_getfacegeometry(character varying,integer)
+FUNCTION st_getfacegeometry(character varying,integer)
 FUNCTION st_gmltosql(text)
-FUNCTION st_gmltosql(text, integer)
+FUNCTION st_gmltosql(text,integer)
 FUNCTION st_hasarc(geometry)
 FUNCTION st_hasbbox(geometry)
 FUNCTION st_hasnoband(raster)
-FUNCTION st_hasnoband(raster, integer)
-FUNCTION st_hausdorffdistance(geometry, geometry)
-FUNCTION st_hausdorffdistance(geometry, geometry, double precision)
+FUNCTION st_hasnoband(raster,integer)
+FUNCTION st_hausdorffdistance(geometry,geometry)
+FUNCTION st_hausdorffdistance(geometry,geometry,double precision)
 FUNCTION st_height(chip)
 FUNCTION st_height(raster)
-FUNCTION _st_hillshade4ma(double precision[], text, text[])
-FUNCTION st_hillshade(raster, integer, text, double precision, double precision, double precision, double precision)
+FUNCTION _st_hillshade4ma(double precision[],text,text[])
+FUNCTION st_hillshade(raster,integer,text,double precision,double precision,double precision,double precision)
+FUNCTION st_hillshade(raster,integer,text,double precision,double precision,double precision,double precision,boolean)
+FUNCTION st_hillshade(raster,integer,text,float,float,float,float)
+FUNCTION st_hillshade(raster,integer,text,float,float,float,float,boolean)
 FUNCTION st_histogram2d_in(cstring)
 FUNCTION st_histogram2d_out(histogram2d)
-FUNCTION _st_histogram(raster, integer, boolean, double precision, integer, double precision[], boolean, double precision, double precision)
-FUNCTION st_histogram(raster, integer, boolean, integer, boolean)
-FUNCTION st_histogram(raster, integer, boolean, integer, double precision[], boolean)
-FUNCTION st_histogram(raster, integer, integer, boolean)
-FUNCTION st_histogram(raster, integer, integer, double precision[], boolean)
-FUNCTION _st_histogram(text, text, integer, boolean, double precision, integer, double precision[], boolean)
-FUNCTION st_histogram(text, text, integer, boolean, integer, boolean)
-FUNCTION st_histogram(text, text, integer, boolean, integer, double precision[], boolean)
-FUNCTION st_histogram(text, text, integer, integer, boolean)
-FUNCTION st_histogram(text, text, integer, integer, double precision[], boolean)
+FUNCTION _st_histogram(raster,integer,boolean,double precision,integer,double precision[],boolean,double precision,double precision)
+FUNCTION st_histogram(raster,integer,boolean,integer,boolean)
+FUNCTION st_histogram(raster,integer,boolean,integer,double precision[],boolean)
+FUNCTION st_histogram(raster,integer,integer,boolean)
+FUNCTION st_histogram(raster,integer,integer,double precision[],boolean)
+FUNCTION _st_histogram(text,text,integer,boolean,double precision,integer,double precision[],boolean)
+FUNCTION st_histogram(text,text,integer,boolean,integer,boolean)
+FUNCTION st_histogram(text,text,integer,boolean,integer,double precision[],boolean)
+FUNCTION st_histogram(text,text,integer,integer,boolean)
+FUNCTION st_histogram(text,text,integer,integer,double precision[],boolean)
 FUNCTION st_inittopogeo(character varying)
-FUNCTION st_interiorringn(geometry, integer)
-FUNCTION st_interpolatepoint(geometry, geometry)
-FUNCTION st_intersection(geography, geography)
-FUNCTION st_intersection(geometry, geometry)
-FUNCTION st_intersection(geometry, raster)
-FUNCTION st_intersection(geometry, raster, integer)
-FUNCTION st_intersection(raster, geometry)
-FUNCTION st_intersection(raster, geometry, regprocedure)
-FUNCTION st_intersection(raster, geometry, text, regprocedure)
-FUNCTION st_intersection(raster, integer, geometry)
-FUNCTION st_intersection(raster, integer, geometry, regprocedure)
-FUNCTION st_intersection(raster, integer, geometry, text, regprocedure)
-FUNCTION st_intersection(raster, integer, raster, integer, double precision)
-FUNCTION st_intersection(raster, integer, raster, integer, double precision[])
-FUNCTION st_intersection(raster, integer, raster, integer, regprocedure)
-FUNCTION st_intersection(raster, integer, raster, integer, text, double precision)
-FUNCTION st_intersection(raster, integer, raster, integer, text, double precision[])
-FUNCTION st_intersection(raster, integer, raster, integer, text, regprocedure)
-FUNCTION _st_intersection(raster, integer, raster, integer, text, text, regprocedure)
-FUNCTION st_intersection(raster, raster, double precision)
-FUNCTION st_intersection(raster, raster, double precision[])
-FUNCTION st_intersection(raster, raster, regprocedure)
-FUNCTION st_intersection(raster, raster, text, double precision)
-FUNCTION st_intersection(raster, raster, text, double precision[])
-FUNCTION st_intersection(raster, raster, text, regprocedure)
-FUNCTION st_intersection(text, text)
-FUNCTION st_intersects(geography, geography)
-FUNCTION _st_intersects(geometry, geometry)
-FUNCTION st_intersects(geometry, geometry)
-FUNCTION st_intersects(geometry, raster)
-FUNCTION st_intersects(geometry, raster, boolean)
-FUNCTION _st_intersects(geometry, raster, integer)
-FUNCTION st_intersects(geometry, raster, integer)
-FUNCTION _st_intersects(geometry, raster, integer, boolean)
-FUNCTION st_intersects(geometry, raster, integer, boolean)
-FUNCTION st_intersects(raster, boolean, geometry)
-FUNCTION st_intersects(raster, geometry)
-FUNCTION _st_intersects(raster, geometry, integer)
-FUNCTION st_intersects(raster, geometry, integer)
-FUNCTION st_intersects(raster, integer, boolean, geometry)
-FUNCTION st_intersects(raster, integer, geometry)
-FUNCTION _st_intersects(raster, integer, raster, integer)
-FUNCTION st_intersects(raster, integer, raster, integer)
-FUNCTION st_intersects(raster, raster)
-FUNCTION st_intersects(text, text)
+FUNCTION st_interiorringn(geometry,integer)
+FUNCTION st_interpolatepoint(geometry,geometry)
+FUNCTION st_intersection(geography,geography)
+FUNCTION st_intersection(geometry,geometry)
+FUNCTION st_intersection(geometry,raster)
+FUNCTION st_intersection(geometry,raster,integer)
+FUNCTION st_intersection(raster,geometry)
+FUNCTION st_intersection(raster,geometry,regprocedure)
+FUNCTION st_intersection(raster,geometry,text,regprocedure)
+FUNCTION st_intersection(raster,integer,geometry)
+FUNCTION st_intersection(raster,integer,geometry,regprocedure)
+FUNCTION st_intersection(raster,integer,geometry,text,regprocedure)
+FUNCTION st_intersection(raster,integer,raster,integer,double precision)
+FUNCTION st_intersection(raster,integer,raster,integer,double precision[])
+FUNCTION st_intersection(raster,integer,raster,integer,regprocedure)
+FUNCTION st_intersection(raster,integer,raster,integer,text,double precision)
+FUNCTION st_intersection(raster,integer,raster,integer,text,double precision[])
+FUNCTION st_intersection(raster,integer,raster,integer,text,regprocedure)
+FUNCTION _st_intersection(raster,integer,raster,integer,text,text,regprocedure)
+FUNCTION st_intersection(raster,raster,double precision)
+FUNCTION st_intersection(raster,raster,double precision[])
+FUNCTION st_intersection(raster,raster,integer,integer)
+FUNCTION st_intersection(raster,raster,regprocedure)
+FUNCTION st_intersection(raster,raster,text,double precision)
+FUNCTION st_intersection(raster,raster,text,double precision[])
+FUNCTION st_intersection(raster,raster,text,regprocedure)
+FUNCTION st_intersection(text,text)
+FUNCTION st_intersects(geography,geography)
+FUNCTION _st_intersects(geometry,geometry)
+FUNCTION st_intersects(geometry,geometry)
+FUNCTION st_intersects(geometry,raster)
+FUNCTION st_intersects(geometry,raster,boolean)
+FUNCTION _st_intersects(geometry,raster,integer)
+FUNCTION st_intersects(geometry,raster,integer)
+FUNCTION _st_intersects(geometry,raster,integer,boolean)
+FUNCTION st_intersects(geometry,raster,integer,boolean)
+FUNCTION st_intersects(raster,boolean,geometry)
+FUNCTION st_intersects(raster,geometry)
+FUNCTION _st_intersects(raster,geometry,integer)
+FUNCTION st_intersects(raster,geometry,integer)
+FUNCTION st_intersects(raster,integer,boolean,geometry)
+FUNCTION st_intersects(raster,integer,geometry)
+FUNCTION _st_intersects(raster,integer,raster,integer)
+FUNCTION st_intersects(raster,integer,raster,integer)
+FUNCTION st_intersects(raster,raster)
+FUNCTION st_intersects(text,text)
 FUNCTION st_isclosed(geometry)
 FUNCTION st_iscollection(geometry)
 FUNCTION st_isempty(geometry)
@@ -2358,134 +2391,153 @@ FUNCTION st_isempty(raster)
 FUNCTION st_isring(geometry)
 FUNCTION st_issimple(geometry)
 FUNCTION st_isvaliddetail(geometry)
-FUNCTION st_isvaliddetail(geometry, integer)
+FUNCTION st_isvaliddetail(geometry,integer)
 FUNCTION st_isvalid(geometry)
-FUNCTION st_isvalid(geometry, integer)
+FUNCTION st_isvalid(geometry,integer)
 FUNCTION st_isvalidreason(geometry)
-FUNCTION st_isvalidreason(geometry, integer)
-FUNCTION st_left(raster, raster)
+FUNCTION st_isvalidreason(geometry,integer)
+FUNCTION st_left(raster,raster)
 FUNCTION st_length2d(geometry)
-FUNCTION st_length2d_spheroid(geometry, spheroid)
+FUNCTION st_length2d_spheroid(geometry,spheroid)
 FUNCTION st_length3d(geometry)
-FUNCTION st_length3d_spheroid(geometry, spheroid)
+FUNCTION st_length3d_spheroid(geometry,spheroid)
 FUNCTION st_length(geography)
-FUNCTION st_length(geography, boolean)
+FUNCTION st_length(geography,boolean)
 FUNCTION st_length(geometry)
-FUNCTION st_length_spheroid(geometry, spheroid)
+FUNCTION st_length_spheroid(geometry,spheroid)
 FUNCTION st_length(text)
-FUNCTION _st_linecrossingdirection(geometry, geometry)
-FUNCTION st_linecrossingdirection(geometry, geometry)
+FUNCTION _st_linecrossingdirection(geometry,geometry)
+FUNCTION st_linecrossingdirection(geometry,geometry)
+FUNCTION st_linefromencodedpolyline(text)
+FUNCTION st_linefromencodedpolyline(text,integer)
 FUNCTION st_linefrommultipoint(geometry)
 FUNCTION st_linefromtext(text)
-FUNCTION st_linefromtext(text, integer)
+FUNCTION st_linefromtext(text,integer)
 FUNCTION st_linefromwkb(bytea)
-FUNCTION st_linefromwkb(bytea, integer)
-FUNCTION st_line_interpolate_point(geometry, double precision)
-FUNCTION st_line_locate_point(geometry, geometry)
+FUNCTION st_linefromwkb(bytea,integer)
+FUNCTION st_line_interpolate_point(geometry,double precision)
+FUNCTION st_line_locate_point(geometry,geometry)
 FUNCTION st_linemerge(geometry)
 FUNCTION st_linestringfromwkb(bytea)
-FUNCTION st_linestringfromwkb(bytea, integer)
-FUNCTION st_line_substring(geometry, double precision, double precision)
+FUNCTION st_linestringfromwkb(bytea,integer)
+FUNCTION st_line_substring(geometry,double precision,double precision)
 FUNCTION st_linetocurve(geometry)
-FUNCTION st_locatealong(geometry, double precision)
-FUNCTION st_locatealong(geometry, double precision, double precision)
-FUNCTION st_locate_along_measure(geometry, double precision)
-FUNCTION st_locatebetweenelevations(geometry, double precision, double precision)
-FUNCTION st_locatebetween(geometry, double precision, double precision)
-FUNCTION st_locatebetween(geometry, double precision, double precision, double precision)
-FUNCTION st_locate_between_measures(geometry, double precision, double precision)
-FUNCTION _st_longestline(geometry, geometry)
-FUNCTION st_longestline(geometry, geometry)
-FUNCTION st_makebox2d(geometry, geometry)
-FUNCTION st_makebox3d(geometry, geometry)
-FUNCTION st_makeemptyraster(integer, integer, double precision, double precision, double precision)
-FUNCTION st_makeemptyraster(integer, integer, double precision, double precision, double precision, double precision, double precision, double precision)
-FUNCTION st_makeemptyraster(integer, integer, double precision, double precision, double precision, double precision, double precision, double precision, integer)
+FUNCTION st_locatealong(geometry,double precision)
+FUNCTION st_locatealong(geometry,double precision,double precision)
+FUNCTION st_locate_along_measure(geometry,double precision)
+FUNCTION st_locatebetweenelevations(geometry,double precision,double precision)
+FUNCTION st_locatebetween(geometry,double precision,double precision)
+FUNCTION st_locatebetween(geometry,double precision,double precision,double precision)
+FUNCTION st_locate_between_measures(geometry,double precision,double precision)
+FUNCTION _st_longestline(geometry,geometry)
+FUNCTION st_longestline(geometry,geometry)
+FUNCTION st_makebox2d(geometry,geometry)
+FUNCTION st_makebox3d(geometry,geometry)
+FUNCTION st_makeemptyraster(integer,integer,double precision,double precision,double precision)
+FUNCTION st_makeemptyraster(integer,integer,double precision,double precision,double precision,double precision,double precision,double precision)
+FUNCTION st_makeemptyraster(integer,integer,double precision,double precision,double precision,double precision,double precision,double precision,integer)
 FUNCTION st_makeemptyraster(raster)
-FUNCTION st_makeenvelope(double precision, double precision, double precision, double precision)
-FUNCTION st_makeenvelope(double precision, double precision, double precision, double precision, integer)
+FUNCTION st_makeenvelope(double precision,double precision,double precision,double precision)
+FUNCTION st_makeenvelope(double precision,double precision,double precision,double precision,integer)
 FUNCTION st_makeline_garray(geometry[])
 FUNCTION st_makeline(geometry[])
-FUNCTION st_makeline(geometry, geometry)
-FUNCTION st_makepoint(double precision, double precision)
-FUNCTION st_makepoint(double precision, double precision, double precision)
-FUNCTION st_makepoint(double precision, double precision, double precision, double precision)
-FUNCTION st_makepointm(double precision, double precision, double precision)
+FUNCTION st_makeline(geometry,geometry)
+FUNCTION st_makepoint(double precision,double precision)
+FUNCTION st_makepoint(double precision,double precision,double precision)
+FUNCTION st_makepoint(double precision,double precision,double precision,double precision)
+FUNCTION st_makepointm(double precision,double precision,double precision)
 FUNCTION st_makepolygon(geometry)
-FUNCTION st_makepolygon(geometry, geometry[])
+FUNCTION st_makepolygon(geometry,geometry[])
 FUNCTION st_makevalid(geometry)
 FUNCTION _st_mapalgebra4unionfinal1(raster)
-FUNCTION _st_mapalgebra4unionstate(raster, raster)
-FUNCTION _st_mapalgebra4unionstate(raster, raster, integer)
-FUNCTION _st_mapalgebra4unionstate(raster, raster, integer, text)
-FUNCTION _st_mapalgebra4unionstate(raster, raster, text)
-FUNCTION _st_mapalgebra4unionstate(raster, raster, text, text, text, double precision, text, text, text, double precision)
-FUNCTION st_mapalgebraexpr(raster, integer, raster, integer, text, text, text, text, text, double precision)
-FUNCTION st_mapalgebraexpr(raster, integer, text, text, double precision)
-FUNCTION st_mapalgebraexpr(raster, integer, text, text, text)
-FUNCTION st_mapalgebraexpr(raster, raster, text, text, text, text, text, double precision)
-FUNCTION st_mapalgebraexpr(raster, text, text, double precision)
-FUNCTION st_mapalgebraexpr(raster, text, text, text)
-FUNCTION st_mapalgebrafctngb(raster, integer, text, integer, integer, regprocedure, text, text[])
-FUNCTION st_mapalgebrafct(raster, integer, raster, integer, regprocedure, text, text, text[])
-FUNCTION st_mapalgebrafct(raster, integer, regprocedure)
-FUNCTION st_mapalgebrafct(raster, integer, regprocedure, text[])
-FUNCTION st_mapalgebrafct(raster, integer, text, regprocedure)
-FUNCTION st_mapalgebrafct(raster, integer, text, regprocedure, text[])
-FUNCTION st_mapalgebrafct(raster, raster, regprocedure, text, text, text[])
-FUNCTION st_mapalgebrafct(raster, regprocedure)
-FUNCTION st_mapalgebrafct(raster, regprocedure, text[])
-FUNCTION st_mapalgebrafct(raster, text, regprocedure)
-FUNCTION st_mapalgebrafct(raster, text, regprocedure, text[])
-FUNCTION st_mapalgebra(raster, integer, text)
-FUNCTION st_mapalgebra(raster, integer, text, text)
-FUNCTION st_mapalgebra(raster, integer, text, text, text)
-FUNCTION st_mapalgebra(raster, text)
-FUNCTION st_mapalgebra(raster, text, text)
-FUNCTION st_mapalgebra(raster, text, text, text)
-FUNCTION st_max4ma(double precision[], text, text[])
-FUNCTION _st_maxdistance(geometry, geometry)
-FUNCTION st_max_distance(geometry, geometry)
-FUNCTION st_maxdistance(geometry, geometry)
-FUNCTION st_mean4ma(double precision[], text, text[])
+FUNCTION _st_mapalgebra4unionstate(raster,raster)
+FUNCTION _st_mapalgebra4unionstate(raster,raster,integer)
+FUNCTION _st_mapalgebra4unionstate(raster,raster,integer,text)
+FUNCTION _st_mapalgebra4unionstate(raster,raster,text)
+FUNCTION _st_mapalgebra4unionstate(raster,raster,text,text,text,double precision,text,text,text,double precision)
+FUNCTION st_mapalgebraexpr(raster,integer,raster,integer,text,text,text,text,text,double precision)
+FUNCTION st_mapalgebraexpr(raster,integer,text,text,double precision)
+FUNCTION st_mapalgebraexpr(raster,integer,text,text,text)
+FUNCTION st_mapalgebraexpr(raster,raster,text,text,text,text,text,double precision)
+FUNCTION st_mapalgebraexpr(raster,text,text,double precision)
+FUNCTION st_mapalgebraexpr(raster,text,text,text)
+FUNCTION st_mapalgebrafctngb(raster,integer,text,integer,integer,regprocedure,text,text[])
+FUNCTION st_mapalgebrafctngb(raster,integer,text,integer,integer,regprocedure,text,variadic text[])
+FUNCTION st_mapalgebrafct(raster,integer,raster,integer,regprocedure,text,text,text[])
+FUNCTION st_mapalgebrafct(raster,integer,raster,integer,regprocedure,text,text,variadic text[])
+FUNCTION st_mapalgebrafct(raster,integer,regprocedure)
+FUNCTION st_mapalgebrafct(raster,integer,regprocedure,text[])
+FUNCTION st_mapalgebrafct(raster,integer,regprocedure,variadic text[])
+FUNCTION st_mapalgebrafct(raster,integer,text,regprocedure)
+FUNCTION st_mapalgebrafct(raster,integer,text,regprocedure,text[])
+FUNCTION st_mapalgebrafct(raster,integer,text,regprocedure,variadic text[])
+FUNCTION st_mapalgebrafct(raster,raster,regprocedure,text,text,text[])
+FUNCTION st_mapalgebrafct(raster,raster,regprocedure,text,text,variadic text[])
+FUNCTION  st_mapalgebrafct(raster,raster,regprocedure,variadic text[])
+FUNCTION st_mapalgebrafct(raster,regprocedure)
+FUNCTION st_mapalgebrafct(raster,regprocedure,text[])
+FUNCTION st_mapalgebrafct(raster,regprocedure,variadic text[])
+FUNCTION st_mapalgebrafct(raster,text,regprocedure)
+FUNCTION st_mapalgebrafct(raster,text,regprocedure,text[])
+FUNCTION st_mapalgebrafct(raster,text,regprocedure,variadic text[])
+FUNCTION st_mapalgebra(raster,integer,text)
+FUNCTION st_mapalgebra(raster,integer,text,text)
+FUNCTION st_mapalgebra(raster,integer,text,text,nodatavaluerepl text)
+FUNCTION st_mapalgebra(raster,integer,text,text,text)
+FUNCTION st_mapalgebra(raster,pixeltype text,expression text,nodatavaluerepl text)
+FUNCTION st_mapalgebra(raster,text)
+FUNCTION st_mapalgebra(raster,text,text)
+FUNCTION st_mapalgebra(raster,text,text,text)
+FUNCTION st_max4ma(double precision[],text,text[])
+FUNCTION _st_maxdistance(geometry,geometry)
+FUNCTION st_max_distance(geometry,geometry)
+FUNCTION st_maxdistance(geometry,geometry)
+FUNCTION st_mean4ma(double precision[],text,text[])
 FUNCTION st_mem_size(geometry)
 FUNCTION st_metadata(raster)
 FUNCTION st_m(geometry)
-FUNCTION st_min4ma(double precision[], text, text[])
+FUNCTION st_min4ma(double precision[],text,text[])
+FUNCTION  st_minimumboundingcircle(geometry)
 FUNCTION st_minimumboundingcircle(geometry)
-FUNCTION st_minimumboundingcircle(geometry, integer)
+FUNCTION st_minimumboundingcircle(geometry,integer)
 FUNCTION st_minpossibleval(text)
 FUNCTION st_minpossiblevalue(text)
 FUNCTION st_mlinefromtext(text)
-FUNCTION st_mlinefromtext(text, integer)
+FUNCTION st_mlinefromtext(text,integer)
 FUNCTION st_mlinefromwkb(bytea)
-FUNCTION st_mlinefromwkb(bytea, integer)
-FUNCTION st_modedgeheal(character varying, integer, integer)
-FUNCTION st_modedgesplit(character varying, integer, public.geometry)
-FUNCTION st_modedgessplit(character varying, integer, public.geometry)
-FUNCTION st_moveisonode(character varying, integer, public.geometry)
+FUNCTION st_mlinefromwkb(bytea,integer)
+FUNCTION st_modedgeheal(character varying,integer,integer)
+FUNCTION st_modedgesplit(character varying,integer,public.geometry)
+FUNCTION st_modedgessplit(character varying,integer,public.geometry)
+FUNCTION st_moveisonode(character varying,integer,public.geometry)
 FUNCTION st_mpointfromtext(text)
-FUNCTION st_mpointfromtext(text, integer)
+FUNCTION st_mpointfromtext(text,integer)
 FUNCTION st_mpointfromwkb(bytea)
-FUNCTION st_mpointfromwkb(bytea, integer)
+FUNCTION st_mpointfromwkb(bytea,integer)
 FUNCTION st_mpolyfromtext(text)
-FUNCTION st_mpolyfromtext(text, integer)
+FUNCTION st_mpolyfromtext(text,integer)
 FUNCTION st_mpolyfromwkb(bytea)
-FUNCTION st_mpolyfromwkb(bytea, integer)
+FUNCTION st_mpolyfromwkb(bytea,integer)
 FUNCTION st_multi(geometry)
 FUNCTION st_multilinefromwkb(bytea)
 FUNCTION st_multilinestringfromtext(text)
-FUNCTION st_multilinestringfromtext(text, integer)
+FUNCTION st_multilinestringfromtext(text,integer)
 FUNCTION st_multipointfromtext(text)
 FUNCTION st_multipointfromwkb(bytea)
-FUNCTION st_multipointfromwkb(bytea, integer)
+FUNCTION st_multipointfromwkb(bytea,integer)
 FUNCTION st_multipolyfromwkb(bytea)
-FUNCTION st_multipolyfromwkb(bytea, integer)
+FUNCTION st_multipolyfromwkb(bytea,integer)
 FUNCTION st_multipolygonfromtext(text)
-FUNCTION st_multipolygonfromtext(text, integer)
+FUNCTION st_multipolygonfromtext(text,integer)
 FUNCTION st_ndims(geometry)
-FUNCTION st_newedgeheal(character varying, integer, integer)
-FUNCTION st_newedgessplit(character varying, integer, public.geometry)
+FUNCTION st_nearestvalue(raster,integer,integer,boolean)
+FUNCTION st_nearestvalue(raster,integer,integer,integer,boolean)
+FUNCTION st_neighborhood(raster,geometry,integer,boolean)
+FUNCTION st_neighborhood(raster,integer,geometry,integer,boolean)
+FUNCTION st_neighborhood(raster,integer,integer,integer,boolean)
+FUNCTION st_neighborhood(raster,integer,integer,integer,integer,boolean)
+FUNCTION st_newedgeheal(character varying,integer,integer)
+FUNCTION st_newedgessplit(character varying,integer,public.geometry)
 FUNCTION st_node(geometry)
 FUNCTION st_noop(geometry)
 FUNCTION st_npoints(geometry)
@@ -2496,238 +2548,264 @@ FUNCTION st_numinteriorring(geometry)
 FUNCTION st_numinteriorrings(geometry)
 FUNCTION st_numpatches(geometry)
 FUNCTION st_numpoints(geometry)
-FUNCTION st_offsetcurve(geometry, double precision, cstring)
-FUNCTION st_offsetcurve(geometry, double precision, text)
-FUNCTION _st_orderingequals(geometry, geometry)
-FUNCTION st_orderingequals(geometry, geometry)
-FUNCTION st_overabove(raster, raster)
-FUNCTION st_overbelow(raster, raster)
-FUNCTION st_overlap(raster, raster)
-FUNCTION _st_overlaps(geometry, geometry)
-FUNCTION st_overlaps(geometry, geometry)
-FUNCTION st_overleft(raster, raster)
-FUNCTION st_overright(raster, raster)
-FUNCTION st_patchn(geometry, integer)
+FUNCTION st_offsetcurve(geometry,double precision,cstring)
+FUNCTION st_offsetcurve(geometry,double precision,text)
+FUNCTION _st_orderingequals(geometry,geometry)
+FUNCTION st_orderingequals(geometry,geometry)
+FUNCTION st_overabove(raster,raster)
+FUNCTION st_overbelow(raster,raster)
+FUNCTION st_overlap(raster,raster)
+FUNCTION _st_overlaps(geometry,geometry)
+FUNCTION st_overlaps(geometry,geometry)
+FUNCTION _st_overlaps(geometry,raster,integer)
+FUNCTION st_overlaps(geometry,raster,integer)
+FUNCTION _st_overlaps(raster,geometry,integer)
+FUNCTION st_overlaps(raster,geometry,integer)
+FUNCTION st_overlaps(raster,integer,geometry)
+FUNCTION st_overleft(raster,raster)
+FUNCTION st_overright(raster,raster)
+FUNCTION st_patchn(geometry,integer)
 FUNCTION st_perimeter2d(geometry)
 FUNCTION st_perimeter3d(geometry)
-FUNCTION st_perimeter(geography, boolean)
+FUNCTION st_perimeter(geography)
+FUNCTION st_perimeter(geography,boolean)
 FUNCTION st_perimeter(geometry)
-FUNCTION st_pixelaspolygon(raster, integer, integer)
-FUNCTION st_pixelaspolygon(raster, integer, integer, integer)
-FUNCTION st_pixelaspolygons(raster, integer)
+FUNCTION st_pixelaspolygon(raster,integer,integer)
+FUNCTION st_pixelaspolygon(raster,integer,integer,integer)
+FUNCTION st_pixelaspolygons(raster)
+FUNCTION st_pixelaspolygons(raster,integer)
 FUNCTION st_pixelheight(raster)
 FUNCTION st_pixelwidth(raster)
-FUNCTION st_point(double precision, double precision)
+FUNCTION st_point(double precision,double precision)
 FUNCTION st_pointfromtext(text)
-FUNCTION st_pointfromtext(text, integer)
+FUNCTION st_pointfromtext(text,integer)
 FUNCTION st_pointfromwkb(bytea)
-FUNCTION st_pointfromwkb(bytea, integer)
-FUNCTION st_point_inside_circle(geometry, double precision, double precision, double precision)
+FUNCTION st_pointfromwkb(bytea,integer)
+FUNCTION st_point_inside_circle(geometry,double precision,double precision,double precision)
 FUNCTION st_pointn(geometry)
-FUNCTION st_pointn(geometry, integer)
+FUNCTION st_pointn(geometry,integer)
 FUNCTION st_pointonsurface(geometry)
 FUNCTION _st_pointoutside(geography)
 FUNCTION st_polyfromtext(text)
-FUNCTION st_polyfromtext(text, integer)
+FUNCTION st_polyfromtext(text,integer)
 FUNCTION st_polyfromwkb(bytea)
-FUNCTION st_polyfromwkb(bytea, integer)
+FUNCTION st_polyfromwkb(bytea,integer)
 FUNCTION st_polygonfromtext(text)
-FUNCTION st_polygonfromtext(text, integer)
+FUNCTION st_polygonfromtext(text,integer)
 FUNCTION st_polygonfromwkb(bytea)
-FUNCTION st_polygonfromwkb(bytea, integer)
-FUNCTION st_polygon(geometry, integer)
+FUNCTION st_polygonfromwkb(bytea,integer)
+FUNCTION st_polygon(geometry,integer)
 FUNCTION st_polygonize_garray(geometry[])
 FUNCTION st_polygonize(geometry[])
 FUNCTION st_polygon(raster)
-FUNCTION st_polygon(raster, integer)
-FUNCTION st_postgis_gist_joinsel(internal, oid, internal, smallint)
-FUNCTION st_postgis_gist_sel(internal, oid, internal, integer)
-FUNCTION st_project(geography, double precision, double precision)
-FUNCTION st_quantile(raster, boolean, double precision)
-FUNCTION st_quantile(raster, double precision)
-FUNCTION st_quantile(raster, double precision[])
-FUNCTION st_quantile(raster, integer, boolean, double precision)
-FUNCTION st_quantile(raster, integer, boolean, double precision[])
-FUNCTION _st_quantile(raster, integer, boolean, double precision, double precision[])
-FUNCTION st_quantile(raster, integer, double precision)
-FUNCTION st_quantile(raster, integer, double precision[])
-FUNCTION st_quantile(text, text, boolean, double precision)
-FUNCTION st_quantile(text, text, double precision)
-FUNCTION st_quantile(text, text, double precision[])
-FUNCTION st_quantile(text, text, integer, boolean, double precision)
-FUNCTION st_quantile(text, text, integer, boolean, double precision[])
-FUNCTION _st_quantile(text, text, integer, boolean, double precision, double precision[])
-FUNCTION st_quantile(text, text, integer, double precision)
-FUNCTION st_quantile(text, text, integer, double precision[])
-FUNCTION st_range4ma(double precision[], text, text[])
-FUNCTION st_raster2worldcoordx(raster, integer)
-FUNCTION st_raster2worldcoordx(raster, integer, integer)
-FUNCTION st_raster2worldcoordy(raster, integer)
-FUNCTION st_raster2worldcoordy(raster, integer, integer)
-FUNCTION st_reclass(raster, integer, text, text, double precision)
-FUNCTION _st_reclass(raster, reclassarg[])
-FUNCTION st_reclass(raster, reclassarg[])
-FUNCTION st_reclass(raster, text, text)
-FUNCTION st_relate(geometry, geometry)
-FUNCTION st_relate(geometry, geometry, integer)
-FUNCTION st_relate(geometry, geometry, text)
-FUNCTION st_relatematch(text, text)
-FUNCTION st_remedgemodface(character varying, integer)
-FUNCTION st_remedgenewface(character varying, integer)
-FUNCTION st_remisonode(character varying, integer)
-FUNCTION st_removeisoedge(character varying, integer)
-FUNCTION st_removeisonode(character varying, integer)
-FUNCTION st_removepoint(geometry, integer)
+FUNCTION st_polygon(raster,integer)
+FUNCTION st_postgis_gist_joinsel(internal,oid,internal,smallint)
+FUNCTION st_postgis_gist_sel(internal,oid,internal,integer)
+FUNCTION st_project(geography,double precision,double precision)
+FUNCTION st_quantile(raster,boolean,double precision)
+FUNCTION st_quantile(raster,double precision)
+FUNCTION st_quantile(raster,double precision[])
+FUNCTION st_quantile(raster,integer,boolean,double precision)
+FUNCTION st_quantile(raster,integer,boolean,double precision[])
+FUNCTION _st_quantile(raster,integer,boolean,double precision,double precision[])
+FUNCTION st_quantile(raster,integer,double precision)
+FUNCTION st_quantile(raster,integer,double precision[])
+FUNCTION st_quantile(text,text,boolean,double precision)
+FUNCTION st_quantile(text,text,double precision)
+FUNCTION st_quantile(text,text,double precision[])
+FUNCTION st_quantile(text,text,integer,boolean,double precision)
+FUNCTION st_quantile(text,text,integer,boolean,double precision[])
+FUNCTION _st_quantile(text,text,integer,boolean,double precision,double precision[])
+FUNCTION st_quantile(text,text,integer,double precision)
+FUNCTION st_quantile(text,text,integer,double precision[])
+FUNCTION st_range4ma(double precision[],text,text[])
+FUNCTION _st_raster2worldcoord(raster,integer,integer)
+FUNCTION st_raster2worldcoord(raster,integer,integer)
+FUNCTION st_raster2worldcoordx(raster,integer)
+FUNCTION st_raster2worldcoordx(raster,integer,integer)
+FUNCTION st_raster2worldcoordy(raster,integer)
+FUNCTION st_raster2worldcoordy(raster,integer,integer)
+FUNCTION st_reclass(raster,integer,text,text,double precision)
+FUNCTION _st_reclass(raster,reclassarg[])
+FUNCTION st_reclass(raster,reclassarg[])
+FUNCTION st_reclass(raster,text,text)
+FUNCTION st_relate(geometry,geometry)
+FUNCTION st_relate(geometry,geometry,integer)
+FUNCTION st_relate(geometry,geometry,text)
+FUNCTION st_relatematch(text,text)
+FUNCTION st_remedgemodface(character varying,integer)
+FUNCTION st_remedgenewface(character varying,integer)
+FUNCTION st_remisonode(character varying,integer)
+FUNCTION st_removeisoedge(character varying,integer)
+FUNCTION st_removeisonode(character varying,integer)
+FUNCTION st_removepoint(geometry,integer)
 FUNCTION st_removerepeatedpoints(geometry)
-FUNCTION st_resample(raster, integer, double precision, double precision, double precision, double precision, double precision, double precision, text, double precision)
-FUNCTION st_resample(raster, integer, integer, integer, double precision, double precision, double precision, double precision, text, double precision)
-FUNCTION st_resample(raster, raster, boolean, text, double precision)
-FUNCTION st_resample(raster, raster, text, double precision)
-FUNCTION st_resample(raster, raster, text, double precision, boolean)
-FUNCTION _st_resample(raster, text, double precision, integer, double precision, double precision, double precision, double precision, double precision, double precision)
-FUNCTION _st_resample(raster, text, double precision, integer, double precision, double precision, double precision, double precision, double precision, double precision, integer, integer)
-FUNCTION st_rescale(raster, double precision, double precision, text, double precision)
-FUNCTION st_rescale(raster, double precision, text, double precision)
-FUNCTION st_reskew(raster, double precision, double precision, text, double precision)
-FUNCTION st_reskew(raster, double precision, text, double precision)
+FUNCTION st_resample(raster,integer,double precision,double precision,double precision,double precision,double precision,double precision,text,double precision)
+FUNCTION st_resample(raster,integer,integer,integer,double precision,double precision,double precision,double precision,text,double precision)
+FUNCTION st_resample(raster,raster,boolean,text,double precision)
+FUNCTION st_resample(raster,raster,text,double precision)
+FUNCTION st_resample(raster,raster,text,double precision,boolean)
+FUNCTION _st_resample(raster,text,double precision,integer,double precision,double precision,double precision,double precision,double precision,double precision)
+FUNCTION _st_resample(raster,text,double precision,integer,double precision,double precision,double precision,double precision,double precision,double precision,integer,integer)
+FUNCTION st_rescale(raster,double precision,double precision,text,double precision)
+FUNCTION st_rescale(raster,double precision,text,double precision)
+FUNCTION st_reskew(raster,double precision,double precision,text,double precision)
+FUNCTION st_reskew(raster,double precision,text,double precision)
 FUNCTION st_reverse(geometry)
-FUNCTION st_right(raster, raster)
-FUNCTION st_rotate(geometry, double precision)
-FUNCTION st_rotate(geometry, double precision, double precision, double precision)
-FUNCTION st_rotate(geometry, double precision, geometry)
-FUNCTION st_rotatex(geometry, double precision)
-FUNCTION st_rotatey(geometry, double precision)
-FUNCTION st_rotatez(geometry, double precision)
+FUNCTION st_right(raster,raster)
+FUNCTION st_rotate(geometry,double precision)
+FUNCTION st_rotate(geometry,double precision,double precision,double precision)
+FUNCTION st_rotate(geometry,double precision,geometry)
+FUNCTION st_rotatex(geometry,double precision)
+FUNCTION st_rotatey(geometry,double precision)
+FUNCTION st_rotatez(geometry,double precision)
 FUNCTION st_rotation(raster)
-FUNCTION st_samealignment(double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision)
-FUNCTION st_samealignment(raster, raster)
-FUNCTION st_same(raster, raster)
-FUNCTION st_scale(geometry, double precision, double precision)
-FUNCTION st_scale(geometry, double precision, double precision, double precision)
+FUNCTION st_samealignment(double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision,double precision)
+FUNCTION st_samealignment(raster,raster)
+FUNCTION st_same(raster,raster)
+FUNCTION st_scale(geometry,double precision,double precision)
+FUNCTION st_scale(geometry,double precision,double precision,double precision)
 FUNCTION st_scalex(raster)
 FUNCTION st_scaley(raster)
-FUNCTION st_segmentize(geometry, double precision)
+FUNCTION st_segmentize(geometry,double precision)
 FUNCTION st_setbandisnodata(raster)
-FUNCTION st_setbandisnodata(raster, integer)
-FUNCTION st_setbandnodatavalue(raster, double precision)
-FUNCTION st_setbandnodatavalue(raster, integer, double precision)
-FUNCTION st_setbandnodatavalue(raster, integer, double precision, boolean)
-FUNCTION st_setfactor(chip, real)
-FUNCTION st_setgeoreference(raster, text)
-FUNCTION st_setgeoreference(raster, text, text)
-FUNCTION st_setgeotransform(raster, double precision, double precision, double precision, double precision, double precision, double precision)
-FUNCTION st_setpoint(geometry, integer, geometry)
-FUNCTION st_setrotation(raster, double precision)
-FUNCTION st_setscale(raster, double precision)
-FUNCTION st_setscale(raster, double precision, double precision)
-FUNCTION st_setskew(raster, double precision)
-FUNCTION st_setskew(raster, double precision, double precision)
-FUNCTION st_setsrid(geometry, integer)
-FUNCTION st_setsrid(raster, integer)
-FUNCTION st_setupperleft(raster, double precision, double precision)
-FUNCTION st_setvalue(raster, geometry, double precision)
-FUNCTION st_setvalue(raster, integer, geometry, double precision)
-FUNCTION st_setvalue(raster, integer, integer, double precision)
-FUNCTION st_setvalue(raster, integer, integer, integer, double precision)
-FUNCTION st_sharedpaths(geometry, geometry)
+FUNCTION st_setbandisnodata(raster,integer)
+FUNCTION st_setbandnodatavalue(raster,double precision)
+FUNCTION st_setbandnodatavalue(raster,integer,double precision)
+FUNCTION st_setbandnodatavalue(raster,integer,double precision,boolean)
+FUNCTION st_setfactor(chip,real)
+FUNCTION st_setgeoreference(raster,text)
+FUNCTION st_setgeoreference(raster,text,text)
+FUNCTION st_setgeotransform(raster,double precision,double precision,double precision,double precision,double precision,double precision)
+FUNCTION st_setpoint(geometry,integer,geometry)
+FUNCTION st_setrotation(raster,double precision)
+FUNCTION st_setscale(raster,double precision)
+FUNCTION st_setscale(raster,double precision,double precision)
+FUNCTION st_setskew(raster,double precision)
+FUNCTION st_setskew(raster,double precision,double precision)
+FUNCTION st_setsrid(geometry,integer)
+FUNCTION st_setsrid(raster,integer)
+FUNCTION st_setupperleft(raster,double precision,double precision)
+FUNCTION st_setvalue(raster,geometry,double precision)
+FUNCTION st_setvalue(raster,integer,geometry,double precision)
+FUNCTION st_setvalue(raster,integer,integer,double precision)
+FUNCTION st_setvalue(raster,integer,integer,integer,double precision)
+FUNCTION st_sharedpaths(geometry,geometry)
 FUNCTION st_shift_longitude(geometry)
-FUNCTION st_shortestline(geometry, geometry)
-FUNCTION st_simplify(geometry, double precision)
-FUNCTION st_simplifypreservetopology(geometry, double precision)
+FUNCTION st_shortestline(geometry,geometry)
+FUNCTION st_simplify(geometry,double precision)
+FUNCTION st_simplifypreservetopology(geometry,double precision)
 FUNCTION st_skewx(raster)
 FUNCTION st_skewy(raster)
-FUNCTION _st_slope4ma(double precision[], text, text[])
-FUNCTION st_slope(raster, integer, text)
-FUNCTION st_snap(geometry, geometry, double precision)
-FUNCTION st_snaptogrid(geometry, double precision)
-FUNCTION st_snaptogrid(geometry, double precision, double precision)
-FUNCTION st_snaptogrid(geometry, double precision, double precision, double precision, double precision)
-FUNCTION st_snaptogrid(geometry, geometry, double precision, double precision, double precision, double precision)
-FUNCTION st_snaptogrid(raster, double precision, double precision, double precision, double precision, text, double precision)
-FUNCTION st_snaptogrid(raster, double precision, double precision, double precision, text, double precision)
-FUNCTION st_snaptogrid(raster, double precision, double precision, text, double precision, double precision, double precision)
+FUNCTION _st_slope4ma(double precision[],text,text[])
+FUNCTION st_slope(raster,integer,text)
+FUNCTION st_slope(raster,integer,text,boolean)
+FUNCTION st_slope(raster,integer,text,text,double precision,boolean)
+FUNCTION st_snap(geometry,geometry,double precision)
+FUNCTION st_snaptogrid(geometry,double precision)
+FUNCTION st_snaptogrid(geometry,double precision,double precision)
+FUNCTION st_snaptogrid(geometry,double precision,double precision,double precision,double precision)
+FUNCTION st_snaptogrid(geometry,geometry,double precision,double precision,double precision,double precision)
+FUNCTION st_snaptogrid(raster,double precision,double precision,double precision,double precision,text,double precision)
+FUNCTION st_snaptogrid(raster,double precision,double precision,double precision,text,double precision)
+FUNCTION st_snaptogrid(raster,double precision,double precision,text,double precision,double precision,double precision)
 FUNCTION st_spheroid_in(cstring)
 FUNCTION st_spheroid_out(spheroid)
-FUNCTION st_split(geometry, geometry)
+FUNCTION st_split(geometry,geometry)
 FUNCTION st_srid(chip)
 FUNCTION st_srid(geometry)
 FUNCTION st_srid(raster)
 FUNCTION st_startpoint(geometry)
-FUNCTION st_sum4ma(double precision[], text, text[])
+FUNCTION st_sum4ma(double precision[],text,text[])
 FUNCTION st_summary(geography)
 FUNCTION st_summary(geometry)
-FUNCTION st_summarystats(raster, boolean)
-FUNCTION st_summarystats(raster, integer, boolean)
-FUNCTION _st_summarystats(raster, integer, boolean, double precision)
-FUNCTION st_summarystats(text, text, boolean)
-FUNCTION st_summarystats(text, text, integer, boolean)
-FUNCTION _st_summarystats(text, text, integer, boolean, double precision)
-FUNCTION st_symdifference(geometry, geometry)
-FUNCTION st_symmetricdifference(geometry, geometry)
-FUNCTION st_testraster(double precision, double precision, double precision)
+FUNCTION st_summarystats(raster,boolean)
+FUNCTION st_summarystats(raster,integer,boolean)
+FUNCTION _st_summarystats(raster,integer,boolean,double precision)
+FUNCTION st_summarystats(text,text,boolean)
+FUNCTION st_summarystats(text,text,integer,boolean)
+FUNCTION _st_summarystats(text,text,integer,boolean,double precision)
+FUNCTION st_symdifference(geometry,geometry)
+FUNCTION st_symmetricdifference(geometry,geometry)
+FUNCTION st_testraster(double precision,double precision,double precision)
 FUNCTION st_text(boolean)
 FUNCTION st_text(geometry)
-FUNCTION _st_touches(geometry, geometry)
-FUNCTION st_touches(geometry, geometry)
-FUNCTION st_transform(geometry, integer)
-FUNCTION st_transform(raster, integer, double precision, double precision, text, double precision)
-FUNCTION st_transform(raster, integer, double precision, text, double precision)
-FUNCTION st_transform(raster, integer, text, double precision, double precision, double precision)
-FUNCTION st_translate(geometry, double precision, double precision)
-FUNCTION st_translate(geometry, double precision, double precision, double precision)
-FUNCTION st_transscale(geometry, double precision, double precision, double precision, double precision)
+FUNCTION st_tile(raster,integer,integer)
+FUNCTION _st_tile(raster,integer,integer,integer[])
+FUNCTION st_tile(raster,integer,integer,integer)
+FUNCTION st_tile(raster,integer,integer,integer[])
+FUNCTION st_tile(raster,integer[],integer,integer)
+FUNCTION _st_touches(geometry,geometry)
+FUNCTION st_touches(geometry,geometry)
+FUNCTION _st_touches(geometry,raster,integer)
+FUNCTION st_touches(geometry,raster,integer)
+FUNCTION _st_touches(raster,geometry,integer)
+FUNCTION st_touches(raster,geometry,integer)
+FUNCTION st_touches(raster,integer,geometry)
+FUNCTION st_transform(geometry,integer)
+FUNCTION st_transform(raster,integer,double precision,double precision,text,double precision)
+FUNCTION st_transform(raster,integer,double precision,text,double precision)
+FUNCTION st_transform(raster,integer,text,double precision,double precision,double precision)
+FUNCTION st_translate(geometry,double precision,double precision)
+FUNCTION st_translate(geometry,double precision,double precision,double precision)
+FUNCTION st_transscale(geometry,double precision,double precision,double precision,double precision)
 FUNCTION st_unaryunion(geometry)
 FUNCTION st_union(geometry[])
-FUNCTION st_union(geometry, geometry)
+FUNCTION st_union(geometry,geometry)
 FUNCTION st_unite_garray(geometry[])
 FUNCTION st_upperleftx(raster)
 FUNCTION st_upperlefty(raster)
-FUNCTION st_valuecount(raster, double precision, double precision)
-FUNCTION st_valuecount(raster, double precision[], double precision)
-FUNCTION _st_valuecount(raster, integer, boolean, double precision[], double precision)
-FUNCTION st_valuecount(raster, integer, boolean, double precision, double precision)
-FUNCTION st_valuecount(raster, integer, boolean, double precision[], double precision)
-FUNCTION st_valuecount(raster, integer, double precision, double precision)
-FUNCTION st_valuecount(raster, integer, double precision[], double precision)
-FUNCTION st_valuecount(text, text, double precision, double precision)
-FUNCTION st_valuecount(text, text, double precision[], double precision)
-FUNCTION _st_valuecount(text, text, integer, boolean, double precision[], double precision)
-FUNCTION st_valuecount(text, text, integer, boolean, double precision, double precision)
-FUNCTION st_valuecount(text, text, integer, boolean, double precision[], double precision)
-FUNCTION st_valuecount(text, text, integer, double precision, double precision)
-FUNCTION st_valuecount(text, text, integer, double precision[], double precision)
-FUNCTION st_valuepercent(raster, double precision, double precision)
-FUNCTION st_valuepercent(raster, double precision[], double precision)
-FUNCTION st_valuepercent(raster, integer, boolean, double precision, double precision)
-FUNCTION st_valuepercent(raster, integer, boolean, double precision[], double precision)
-FUNCTION st_valuepercent(raster, integer, double precision, double precision)
-FUNCTION st_valuepercent(raster, integer, double precision[], double precision)
-FUNCTION st_valuepercent(text, text, double precision, double precision)
-FUNCTION st_valuepercent(text, text, double precision[], double precision)
-FUNCTION st_valuepercent(text, text, integer, boolean, double precision, double precision)
-FUNCTION st_valuepercent(text, text, integer, boolean, double precision[], double precision)
-FUNCTION st_valuepercent(text, text, integer, double precision, double precision)
-FUNCTION st_valuepercent(text, text, integer, double precision[], double precision)
-FUNCTION st_value(raster, geometry)
-FUNCTION st_value(raster, geometry, boolean)
-FUNCTION st_value(raster, integer, geometry)
-FUNCTION st_value(raster, integer, geometry, boolean)
-FUNCTION st_value(raster, integer, integer)
-FUNCTION st_value(raster, integer, integer, boolean)
-FUNCTION st_value(raster, integer, integer, integer)
-FUNCTION st_value(raster, integer, integer, integer, boolean)
+FUNCTION st_valuecount(raster,double precision,double precision)
+FUNCTION st_valuecount(raster,double precision[],double precision)
+FUNCTION _st_valuecount(raster,integer,boolean,double precision[],double precision)
+FUNCTION st_valuecount(raster,integer,boolean,double precision,double precision)
+FUNCTION st_valuecount(raster,integer,boolean,double precision[],double precision)
+FUNCTION st_valuecount(raster,integer,double precision,double precision)
+FUNCTION st_valuecount(raster,integer,double precision[],double precision)
+FUNCTION st_valuecount(text,text,double precision,double precision)
+FUNCTION st_valuecount(text,text,double precision[],double precision)
+FUNCTION _st_valuecount(text,text,integer,boolean,double precision[],double precision)
+FUNCTION st_valuecount(text,text,integer,boolean,double precision,double precision)
+FUNCTION st_valuecount(text,text,integer,boolean,double precision[],double precision)
+FUNCTION st_valuecount(text,text,integer,double precision,double precision)
+FUNCTION st_valuecount(text,text,integer,double precision[],double precision)
+FUNCTION st_valuepercent(raster,double precision,double precision)
+FUNCTION st_valuepercent(raster,double precision[],double precision)
+FUNCTION st_valuepercent(raster,integer,boolean,double precision,double precision)
+FUNCTION st_valuepercent(raster,integer,boolean,double precision[],double precision)
+FUNCTION st_valuepercent(raster,integer,double precision,double precision)
+FUNCTION st_valuepercent(raster,integer,double precision[],double precision)
+FUNCTION st_valuepercent(text,text,double precision,double precision)
+FUNCTION st_valuepercent(text,text,double precision[],double precision)
+FUNCTION st_valuepercent(text,text,integer,boolean,double precision,double precision)
+FUNCTION st_valuepercent(text,text,integer,boolean,double precision[],double precision)
+FUNCTION st_valuepercent(text,text,integer,double precision,double precision)
+FUNCTION st_valuepercent(text,text,integer,double precision[],double precision)
+FUNCTION st_value(raster,geometry)
+FUNCTION st_value(raster,geometry,boolean)
+FUNCTION st_value(raster,geometry,double precision)
+FUNCTION st_value(raster,integer,geometry)
+FUNCTION st_value(raster,integer,geometry,boolean)
+FUNCTION st_value(raster,integer,geometry,double precision)
+FUNCTION st_value(raster,integer,integer)
+FUNCTION st_value(raster,integer,integer,boolean)
+FUNCTION st_value(raster,integer,integer,integer)
+FUNCTION st_value(raster,integer,integer,integer,boolean)
 FUNCTION st_width(chip)
 FUNCTION st_width(raster)
-FUNCTION _st_within(geometry, geometry)
-FUNCTION st_within(geometry, geometry)
+FUNCTION _st_within(geometry,geometry)
+FUNCTION st_within(geometry,geometry)
 FUNCTION st_wkbtosql(bytea)
 FUNCTION st_wkttosql(text)
-FUNCTION st_world2rastercoordx(raster, double precision)
-FUNCTION st_world2rastercoordx(raster, double precision, double precision)
-FUNCTION st_world2rastercoordx(raster, geometry)
-FUNCTION st_world2rastercoordy(raster, double precision)
-FUNCTION st_world2rastercoordy(raster, double precision, double precision)
-FUNCTION st_world2rastercoordy(raster, geometry)
+FUNCTION _st_world2rastercoord(raster,double precision,double precision)
+FUNCTION st_world2rastercoord(raster,double precision,double precision)
+FUNCTION st_world2rastercoord(raster,geometry)
+FUNCTION st_world2rastercoordx(raster,double precision)
+FUNCTION st_world2rastercoordx(raster,double precision,double precision)
+FUNCTION st_world2rastercoordx(raster,geometry)
+FUNCTION st_world2rastercoordy(raster,double precision)
+FUNCTION st_world2rastercoordy(raster,double precision,double precision)
+FUNCTION st_world2rastercoordy(raster,geometry)
 FUNCTION st_x(geometry)
 FUNCTION st_xmax(box3d)
 FUNCTION st_xmin(box3d)
@@ -2739,37 +2817,37 @@ FUNCTION st_zmax(box3d)
 FUNCTION st_zmflag(geometry)
 FUNCTION st_zmin(box3d)
 FUNCTION summary(geometry)
-FUNCTION symdifference(geometry, geometry)
-FUNCTION symmetricdifference(geometry, geometry)
+FUNCTION symdifference(geometry,geometry)
+FUNCTION symmetricdifference(geometry,geometry)
 FUNCTION text(boolean)
 FUNCTION text(geometry)
-FUNCTION topoelementarray_append(topoelementarray, topoelement)
-FUNCTION topogeo_addgeometry(character varying, public.geometry, double precision)
-FUNCTION topogeo_addlinestring(character varying, public.geometry)
-FUNCTION topogeo_addlinestring(character varying, public.geometry, double precision)
-FUNCTION topogeo_addpoint(character varying, public.geometry, double precision)
-FUNCTION topogeo_addpoint(character varying, public.geometry, integer, integer)
-FUNCTION topogeo_addpolygon(character varying, public.geometry)
-FUNCTION topogeo_addpolygon(character varying, public.geometry, double precision)
+FUNCTION topoelementarray_append(topoelementarray,topoelement)
+FUNCTION topogeo_addgeometry(character varying,public.geometry,double precision)
+FUNCTION topogeo_addlinestring(character varying,public.geometry)
+FUNCTION topogeo_addlinestring(character varying,public.geometry,double precision)
+FUNCTION topogeo_addpoint(character varying,public.geometry,double precision)
+FUNCTION topogeo_addpoint(character varying,public.geometry,integer,integer)
+FUNCTION topogeo_addpolygon(character varying,public.geometry)
+FUNCTION topogeo_addpolygon(character varying,public.geometry,double precision)
 FUNCTION topologysummary(character varying)
-FUNCTION totopogeom(public.geometry, character varying, integer, double precision)
-FUNCTION touches(geometry, geometry)
-FUNCTION transform_geometry(geometry, text, text, integer)
-FUNCTION transform(geometry, integer)
-FUNCTION translate(geometry, double precision, double precision)
-FUNCTION translate(geometry, double precision, double precision, double precision)
-FUNCTION transscale(geometry, double precision, double precision, double precision, double precision)
+FUNCTION totopogeom(public.geometry,character varying,integer,double precision)
+FUNCTION touches(geometry,geometry)
+FUNCTION transform_geometry(geometry,text,text,integer)
+FUNCTION transform(geometry,integer)
+FUNCTION translate(geometry,double precision,double precision)
+FUNCTION translate(geometry,double precision,double precision,double precision)
+FUNCTION transscale(geometry,double precision,double precision,double precision,double precision)
 FUNCTION unite_garray(geometry[])
 FUNCTION unlockrows(text)
-FUNCTION updategeometrysrid(character varying, character varying, character varying, character varying, integer)
-FUNCTION updategeometrysrid(character varying, character varying, character varying, integer)
-FUNCTION updategeometrysrid(character varying, character varying, integer)
+FUNCTION updategeometrysrid(character varying,character varying,character varying,character varying,integer)
+FUNCTION updategeometrysrid(character varying,character varying,character varying,integer)
+FUNCTION updategeometrysrid(character varying,character varying,integer)
 FUNCTION update_geometry_stats()
-FUNCTION update_geometry_stats(character varying, character varying)
+FUNCTION update_geometry_stats(character varying,character varying)
 FUNCTION update_the_geom_webmercator()
 FUNCTION validatetopology(character varying)
 FUNCTION width(chip)
-FUNCTION within(geometry, geometry)
+FUNCTION within(geometry,geometry)
 FUNCTION x(geometry)
 FUNCTION xmax(box2d)
 FUNCTION xmax(box3d)
@@ -2790,60 +2868,60 @@ OPERATOR CLASS gist_geography_ops
 OPERATOR CLASS gist_geometry_ops
 OPERATOR CLASS gist_geometry_ops_2d
 OPERATOR CLASS gist_geometry_ops_nd
-OPERATOR ~=(geography, geography)
-OPERATOR ~(geography, geography)
-OPERATOR <<|(geography, geography)
-OPERATOR <<(geography, geography)
-OPERATOR <=(geography, geography)
-OPERATOR <(geography, geography)
-OPERATOR =(geography, geography)
-OPERATOR >=(geography, geography)
-OPERATOR >>(geography, geography)
-OPERATOR >(geography, geography)
-OPERATOR |>>(geography, geography)
-OPERATOR |&>(geography, geography)
-OPERATOR @(geography, geography)
-OPERATOR &<|(geography, geography)
-OPERATOR &<(geography, geography)
-OPERATOR &>(geography, geography)
-OPERATOR &&(geography, geography)
-OPERATOR &&&(geography, geography)
-OPERATOR ~=(geometry, geometry)
-OPERATOR ~(geometry, geometry)
-OPERATOR <<|(geometry, geometry)
-OPERATOR <<(geometry, geometry)
-OPERATOR <=(geometry, geometry)
-OPERATOR <(geometry, geometry)
-OPERATOR =(geometry, geometry)
-OPERATOR >=(geometry, geometry)
-OPERATOR >>(geometry, geometry)
-OPERATOR >(geometry, geometry)
-OPERATOR |>>(geometry, geometry)
-OPERATOR |&>(geometry, geometry)
-OPERATOR @(geometry, geometry)
-OPERATOR &<|(geometry, geometry)
-OPERATOR &<(geometry, geometry)
-OPERATOR &>(geometry, geometry)
-OPERATOR &&(geometry, geometry)
-OPERATOR &&&(geometry, geometry)
-OPERATOR ~(geometry, raster)
-OPERATOR &&(geometry, raster)
-OPERATOR <#>(geometry, geometry)
-OPERATOR <->(geometry, geometry)
-OPERATOR ~(raster, geometry)
-OPERATOR &&(raster, geometry)
-OPERATOR ~=(raster, raster)
-OPERATOR ~(raster, raster)
-OPERATOR <<|(raster, raster)
-OPERATOR <<(raster, raster)
-OPERATOR >>(raster, raster)
-OPERATOR |>>(raster, raster)
-OPERATOR |&>(raster, raster)
-OPERATOR @(raster, raster)
-OPERATOR &<|(raster, raster)
-OPERATOR &<(raster, raster)
-OPERATOR &>(raster, raster)
-OPERATOR &&(raster, raster)
+OPERATOR ~=(geography,geography)
+OPERATOR ~(geography,geography)
+OPERATOR <<|(geography,geography)
+OPERATOR <<(geography,geography)
+OPERATOR <=(geography,geography)
+OPERATOR <(geography,geography)
+OPERATOR =(geography,geography)
+OPERATOR >=(geography,geography)
+OPERATOR >>(geography,geography)
+OPERATOR >(geography,geography)
+OPERATOR |>>(geography,geography)
+OPERATOR |&>(geography,geography)
+OPERATOR @(geography,geography)
+OPERATOR &<|(geography,geography)
+OPERATOR &<(geography,geography)
+OPERATOR &>(geography,geography)
+OPERATOR &&(geography,geography)
+OPERATOR &&&(geography,geography)
+OPERATOR ~=(geometry,geometry)
+OPERATOR ~(geometry,geometry)
+OPERATOR <<|(geometry,geometry)
+OPERATOR <<(geometry,geometry)
+OPERATOR <=(geometry,geometry)
+OPERATOR <->(geometry,geometry)
+OPERATOR <(geometry,geometry)
+OPERATOR <#>(geometry,geometry)
+OPERATOR =(geometry,geometry)
+OPERATOR >=(geometry,geometry)
+OPERATOR >>(geometry,geometry)
+OPERATOR >(geometry,geometry)
+OPERATOR |>>(geometry,geometry)
+OPERATOR |&>(geometry,geometry)
+OPERATOR @(geometry,geometry)
+OPERATOR &<|(geometry,geometry)
+OPERATOR &<(geometry,geometry)
+OPERATOR &>(geometry,geometry)
+OPERATOR &&(geometry,geometry)
+OPERATOR &&&(geometry,geometry)
+OPERATOR ~(geometry,raster)
+OPERATOR &&(geometry,raster)
+OPERATOR ~(raster,geometry)
+OPERATOR &&(raster,geometry)
+OPERATOR ~=(raster,raster)
+OPERATOR ~(raster,raster)
+OPERATOR <<|(raster,raster)
+OPERATOR <<(raster,raster)
+OPERATOR >>(raster,raster)
+OPERATOR |>>(raster,raster)
+OPERATOR |&>(raster,raster)
+OPERATOR @(raster,raster)
+OPERATOR &<|(raster,raster)
+OPERATOR &<(raster,raster)
+OPERATOR &>(raster,raster)
+OPERATOR &&(raster,raster)
 PROCEDURALLANGUAGE plpgsql
 RULE geometry_columns_delete
 RULE geometry_columns_insert
diff --git a/utils/profile_intersects.pl b/utils/profile_intersects.pl
index 7abd04b..e0dbf4c 100755
--- a/utils/profile_intersects.pl
+++ b/utils/profile_intersects.pl
@@ -1,6 +1,5 @@
 #!/usr/bin/perl -w
 
-# $Id: profile_intersects.pl 9324 2012-02-27 22:08:12Z pramsey $
 # 
 # TODO:
 #
diff --git a/utils/read_scripts_version.pl b/utils/read_scripts_version.pl
index e9dab74..dced639 100755
--- a/utils/read_scripts_version.pl
+++ b/utils/read_scripts_version.pl
@@ -19,7 +19,7 @@ foreach $f (@files)
 		open(F, $file);
 		while(<F>)
 		{
-			$r = $1 if /\$Id: \S+ (\d+) /;
+            $r = $1 if /\$Id: \S+ (\d+) /;
 		}
 		print "$f got revision $r\n" if $debug && $r;
   		$rev = $r if $r > $rev; 
diff --git a/utils/test_estimation.pl b/utils/test_estimation.pl
index f05acae..07b0aad 100755
--- a/utils/test_estimation.pl
+++ b/utils/test_estimation.pl
@@ -1,6 +1,5 @@
 #!/usr/bin/perl -w
 
-# $Id: test_estimation.pl 9324 2012-02-27 22:08:12Z pramsey $
 # 
 # TODO:
 #
diff --git a/utils/test_geography_estimation.pl b/utils/test_geography_estimation.pl
index 1ba134f..b697281 100755
--- a/utils/test_geography_estimation.pl
+++ b/utils/test_geography_estimation.pl
@@ -1,6 +1,5 @@
 #!/usr/bin/perl -w
 
-# $Id: test_estimation.pl 1631 2005-04-18 13:30:25Z strk $
 # 
 # TODO:
 #
diff --git a/utils/test_geography_joinestimation.pl b/utils/test_geography_joinestimation.pl
index bdbf372..c5bbecc 100755
--- a/utils/test_geography_joinestimation.pl
+++ b/utils/test_geography_joinestimation.pl
@@ -1,6 +1,5 @@
 #!/usr/bin/perl -w
 
-# $Id: test_joinestimation.pl 1633 2005-04-18 13:50:14Z strk $
 # 
 # TODO:
 #
diff --git a/utils/test_joinestimation.pl b/utils/test_joinestimation.pl
index c27e11a..b46c3ce 100755
--- a/utils/test_joinestimation.pl
+++ b/utils/test_joinestimation.pl
@@ -1,6 +1,5 @@
 #!/usr/bin/perl -w
 
-# $Id: test_joinestimation.pl 9324 2012-02-27 22:08:12Z pramsey $
 # 
 # TODO:
 #

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



More information about the Pkg-grass-devel mailing list